From 71176a185600874dcf440afdb820b00409ae9292 Mon Sep 17 00:00:00 2001 From: Juergen Kunz Date: Tue, 24 Feb 2026 19:41:52 +0000 Subject: [PATCH] feat(webhook): add webhook endpoint and client push notifications, auto-refresh UI, and gitea id mapping fixes --- .gitignore | 2 + changelog.md | 10 + package.json | 4 +- readme.todo.md | 3 + ts/00_commitinfo_data.ts | 2 +- ts/opsserver/classes.opsserver.ts | 7 + ts/opsserver/handlers/index.ts | 1 + ts/opsserver/handlers/webhook.handler.ts | 62 + ts/providers/classes.giteaprovider.ts | 4 +- ts_bundled/bundle.js | 166543 ------------------ ts_bundled/bundle.js.map | 7 - ts_bundled/bundle.ts | 2 +- ts_interfaces/requests/index.ts | 1 + ts_interfaces/requests/webhook.ts | 18 + ts_web/00_commitinfo_data.ts | 2 +- ts_web/appstate.ts | 6 + ts_web/elements/gitops-dashboard.ts | 139 + ts_web/elements/views/buildlog/index.ts | 14 + ts_web/elements/views/connections/index.ts | 14 + ts_web/elements/views/groups/index.ts | 14 + ts_web/elements/views/overview/index.ts | 14 + ts_web/elements/views/pipelines/index.ts | 14 + ts_web/elements/views/projects/index.ts | 14 + ts_web/elements/views/secrets/index.ts | 14 + 24 files changed, 354 insertions(+), 166557 deletions(-) create mode 100644 readme.todo.md create mode 100644 ts/opsserver/handlers/webhook.handler.ts delete mode 100644 ts_bundled/bundle.js delete mode 100644 ts_bundled/bundle.js.map create mode 100644 ts_interfaces/requests/webhook.ts diff --git a/.gitignore b/.gitignore index 41372df..76eaedb 100644 --- a/.gitignore +++ b/.gitignore @@ -7,6 +7,8 @@ node_modules/ # Build outputs # ts_bundled/ is committed (embedded frontend bundle) +ts_bundled/bundle.js +ts_bundled/bundle.js.map # Development .nogit/ diff --git a/changelog.md b/changelog.md index dbe3f5f..80994cc 100644 --- a/changelog.md +++ b/changelog.md @@ -1,5 +1,15 @@ # Changelog +## 2026-02-24 - 2.6.0 - feat(webhook) +add webhook endpoint and client push notifications, auto-refresh UI, and gitea id mapping fixes + +- Add WebhookHandler with POST /webhook/:connectionId that parses provider-specific headers and broadcasts webhookNotification via TypedSocket to connected clients +- Frontend: add auto-refresh toggle, refresh-interval action, dashboard auto-refresh timer, and views subscribing to gitops-auto-refresh events to refresh data +- Frontend: add WebSocket client with reconnect logic to receive push notifications and trigger auto-refresh on webhook events +- Gitea provider: prefer repository full_name and organization name when mapping project and group ids to ensure stable identifiers +- Bump devDependencies: @git.zone/tsbundle ^2.9.0 and @git.zone/tswatch ^3.2.0 +- Add ts_bundled/bundle.js and bundle.js.map to .gitignore + ## 2026-02-24 - 2.5.0 - feat(gitea-provider) auto-paginate Gitea repository and organization listing; respect explicit page option and default perPage to 50 diff --git a/package.json b/package.json index 929e987..f45c675 100644 --- a/package.json +++ b/package.json @@ -18,7 +18,7 @@ "@design.estate/dees-element": "^2.1.6" }, "devDependencies": { - "@git.zone/tsbundle": "^2.8.4", - "@git.zone/tswatch": "^3.1.0" + "@git.zone/tsbundle": "^2.9.0", + "@git.zone/tswatch": "^3.2.0" } } diff --git a/readme.todo.md b/readme.todo.md new file mode 100644 index 0000000..6cb449d --- /dev/null +++ b/readme.todo.md @@ -0,0 +1,3 @@ +# GitOps TODOs + +- [ ] Webhook HMAC signature verification (X-Gitea-Signature / X-Gitlab-Token) — currently accepts all POSTs diff --git a/ts/00_commitinfo_data.ts b/ts/00_commitinfo_data.ts index 5f20a63..0dde4d7 100644 --- a/ts/00_commitinfo_data.ts +++ b/ts/00_commitinfo_data.ts @@ -3,6 +3,6 @@ */ export const commitinfo = { name: '@serve.zone/gitops', - version: '2.5.0', + version: '2.6.0', description: 'GitOps management app for Gitea and GitLab - manage secrets, browse projects, view CI pipelines, and stream build logs' } diff --git a/ts/opsserver/classes.opsserver.ts b/ts/opsserver/classes.opsserver.ts index de5d0f8..d5f0fdf 100644 --- a/ts/opsserver/classes.opsserver.ts +++ b/ts/opsserver/classes.opsserver.ts @@ -17,16 +17,23 @@ export class OpsServer { public secretsHandler!: handlers.SecretsHandler; public pipelinesHandler!: handlers.PipelinesHandler; public logsHandler!: handlers.LogsHandler; + public webhookHandler!: handlers.WebhookHandler; constructor(gitopsAppRef: GitopsApp) { this.gitopsAppRef = gitopsAppRef; } public async start(port = 3000) { + // Create webhook handler before server so routes register via addCustomRoutes + this.webhookHandler = new handlers.WebhookHandler(this); + this.server = new plugins.typedserver.utilityservers.UtilityWebsiteServer({ domain: 'localhost', feedMetadata: undefined, bundledContent: bundledFiles, + addCustomRoutes: async (typedserver) => { + this.webhookHandler.registerRoutes(typedserver); + }, }); // Chain typedrouters diff --git a/ts/opsserver/handlers/index.ts b/ts/opsserver/handlers/index.ts index a778c41..9861ca5 100644 --- a/ts/opsserver/handlers/index.ts +++ b/ts/opsserver/handlers/index.ts @@ -5,3 +5,4 @@ export { GroupsHandler } from './groups.handler.ts'; export { SecretsHandler } from './secrets.handler.ts'; export { PipelinesHandler } from './pipelines.handler.ts'; export { LogsHandler } from './logs.handler.ts'; +export { WebhookHandler } from './webhook.handler.ts'; diff --git a/ts/opsserver/handlers/webhook.handler.ts b/ts/opsserver/handlers/webhook.handler.ts new file mode 100644 index 0000000..ec040cc --- /dev/null +++ b/ts/opsserver/handlers/webhook.handler.ts @@ -0,0 +1,62 @@ +import * as plugins from '../../plugins.ts'; +import { logger } from '../../logging.ts'; +import type { OpsServer } from '../classes.opsserver.ts'; +import * as interfaces from '../../../ts_interfaces/index.ts'; + +export class WebhookHandler { + constructor(private opsServerRef: OpsServer) {} + + public registerRoutes(typedserver: plugins.typedserver.TypedServer): void { + typedserver.addRoute('/webhook/:connectionId', 'POST', async (ctx) => { + const connectionId = ctx.params.connectionId; + + // Validate connection exists + const connection = this.opsServerRef.gitopsAppRef.connectionManager.getConnection(connectionId); + if (!connection) { + return new Response(JSON.stringify({ error: 'Connection not found' }), { + status: 404, + headers: { 'Content-Type': 'application/json' }, + }); + } + + // Parse event type from provider-specific headers + const giteaEvent = ctx.headers.get('X-Gitea-Event'); + const gitlabEvent = ctx.headers.get('X-Gitlab-Event'); + const event = giteaEvent || gitlabEvent || 'unknown'; + const provider = giteaEvent ? 'gitea' : gitlabEvent ? 'gitlab' : 'unknown'; + + logger.info(`Webhook received: ${provider}/${event} for connection ${connection.name} (${connectionId})`); + + // Broadcast to all connected frontends via TypedSocket + try { + const typedsocket = this.opsServerRef.server.typedserver.typedsocket; + if (typedsocket) { + const connections = await typedsocket.findAllTargetConnectionsByTag('allClients'); + for (const conn of connections) { + const req = typedsocket.createTypedRequest( + 'webhookNotification', + conn, + ); + req.fire({ + connectionId, + provider, + event, + timestamp: Date.now(), + }).catch((err: any) => { + logger.warn(`Failed to notify client: ${err.message || err}`); + }); + } + } + } catch (err: any) { + logger.warn(`Failed to broadcast webhook event: ${err.message || err}`); + } + + return new Response(JSON.stringify({ ok: true }), { + status: 200, + headers: { 'Content-Type': 'application/json' }, + }); + }); + + logger.info('WebhookHandler routes registered'); + } +} diff --git a/ts/providers/classes.giteaprovider.ts b/ts/providers/classes.giteaprovider.ts index ae831fe..f674207 100644 --- a/ts/providers/classes.giteaprovider.ts +++ b/ts/providers/classes.giteaprovider.ts @@ -149,7 +149,7 @@ export class GiteaProvider extends BaseProvider { private mapProject(r: plugins.giteaClient.IGiteaRepository): interfaces.data.IProject { return { - id: String(r.id), + id: r.full_name || String(r.id), name: r.name || '', fullPath: r.full_name || '', description: r.description || '', @@ -164,7 +164,7 @@ export class GiteaProvider extends BaseProvider { private mapGroup(o: plugins.giteaClient.IGiteaOrganization): interfaces.data.IGroup { return { - id: String(o.id || o.name), + id: o.name || String(o.id), name: o.name || '', fullPath: o.name || '', description: o.description || '', diff --git a/ts_bundled/bundle.js b/ts_bundled/bundle.js deleted file mode 100644 index b4dfbe9..0000000 --- a/ts_bundled/bundle.js +++ /dev/null @@ -1,166543 +0,0 @@ -var __create = Object.create; -var __freeze = Object.freeze; -var __defProp = Object.defineProperty; -var __getOwnPropDesc = Object.getOwnPropertyDescriptor; -var __getOwnPropNames = Object.getOwnPropertyNames; -var __getProtoOf = Object.getPrototypeOf; -var __hasOwnProp = Object.prototype.hasOwnProperty; -var __knownSymbol = (name, symbol) => (symbol = Symbol[name]) ? symbol : /* @__PURE__ */ Symbol.for("Symbol." + name); -var __typeError = (msg) => { - throw TypeError(msg); -}; -var __defNormalProp = (obj, key2, value2) => key2 in obj ? __defProp(obj, key2, { enumerable: true, configurable: true, writable: true, value: value2 }) : obj[key2] = value2; -var __name = (target, value2) => __defProp(target, "name", { value: value2, configurable: true }); -var __require = /* @__PURE__ */ ((x4) => typeof require !== "undefined" ? require : typeof Proxy !== "undefined" ? new Proxy(x4, { - get: (a5, b5) => (typeof require !== "undefined" ? require : a5)[b5] -}) : x4)(function(x4) { - if (typeof require !== "undefined") return require.apply(this, arguments); - throw Error('Dynamic require of "' + x4 + '" is not supported'); -}); -var __esm = (fn, res) => function __init() { - return fn && (res = (0, fn[__getOwnPropNames(fn)[0]])(fn = 0)), res; -}; -var __commonJS = (cb, mod) => function __require2() { - return mod || (0, cb[__getOwnPropNames(cb)[0]])((mod = { exports: {} }).exports, mod), mod.exports; -}; -var __export = (target, all3) => { - for (var name in all3) - __defProp(target, name, { get: all3[name], enumerable: true }); -}; -var __copyProps = (to, from2, except, desc) => { - if (from2 && typeof from2 === "object" || typeof from2 === "function") { - for (let key2 of __getOwnPropNames(from2)) - if (!__hasOwnProp.call(to, key2) && key2 !== except) - __defProp(to, key2, { get: () => from2[key2], enumerable: !(desc = __getOwnPropDesc(from2, key2)) || desc.enumerable }); - } - return to; -}; -var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps( - // If the importer is in node compatibility mode or this is not an ESM - // file that has been converted to a CommonJS file using a Babel- - // compatible transform (i.e. "__esModule" has not been set), then set - // "default" to the CommonJS "module.exports" for node compatibility. - isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target, - mod -)); -var __decoratorStart = (base) => [, , , __create(base?.[__knownSymbol("metadata")] ?? null)]; -var __decoratorStrings = ["class", "method", "getter", "setter", "accessor", "field", "value", "get", "set"]; -var __expectFn = (fn) => fn !== void 0 && typeof fn !== "function" ? __typeError("Function expected") : fn; -var __decoratorContext = (kind, name, done, metadata, fns) => ({ kind: __decoratorStrings[kind], name, metadata, addInitializer: (fn) => done._ ? __typeError("Already initialized") : fns.push(__expectFn(fn || null)) }); -var __decoratorMetadata = (array, target) => __defNormalProp(target, __knownSymbol("metadata"), array[3]); -var __runInitializers = (array, flags, self2, value2) => { - for (var i11 = 0, fns = array[flags >> 1], n12 = fns && fns.length; i11 < n12; i11++) flags & 1 ? fns[i11].call(self2) : value2 = fns[i11].call(self2, value2); - return value2; -}; -var __decorateElement = (array, flags, name, decorators, target, extra) => { - var fn, it, done, ctx, access, k4 = flags & 7, s10 = !!(flags & 8), p7 = !!(flags & 16); - var j4 = k4 > 3 ? array.length + 1 : k4 ? s10 ? 1 : 2 : 0, key2 = __decoratorStrings[k4 + 5]; - var initializers = k4 > 3 && (array[j4 - 1] = []), extraInitializers = array[j4] || (array[j4] = []); - var desc = k4 && (!p7 && !s10 && (target = target.prototype), k4 < 5 && (k4 > 3 || !p7) && __getOwnPropDesc(k4 < 4 ? target : { get [name]() { - return __privateGet(this, extra); - }, set [name](x4) { - return __privateSet(this, extra, x4); - } }, name)); - k4 ? p7 && k4 < 4 && __name(extra, (k4 > 2 ? "set " : k4 > 1 ? "get " : "") + name) : __name(target, name); - for (var i11 = decorators.length - 1; i11 >= 0; i11--) { - ctx = __decoratorContext(k4, name, done = {}, array[3], extraInitializers); - if (k4) { - ctx.static = s10, ctx.private = p7, access = ctx.access = { has: p7 ? (x4) => __privateIn(target, x4) : (x4) => name in x4 }; - if (k4 ^ 3) access.get = p7 ? (x4) => (k4 ^ 1 ? __privateGet : __privateMethod)(x4, target, k4 ^ 4 ? extra : desc.get) : (x4) => x4[name]; - if (k4 > 2) access.set = p7 ? (x4, y4) => __privateSet(x4, target, y4, k4 ^ 4 ? extra : desc.set) : (x4, y4) => x4[name] = y4; - } - it = (0, decorators[i11])(k4 ? k4 < 4 ? p7 ? extra : desc[key2] : k4 > 4 ? void 0 : { get: desc.get, set: desc.set } : target, ctx), done._ = 1; - if (k4 ^ 4 || it === void 0) __expectFn(it) && (k4 > 4 ? initializers.unshift(it) : k4 ? p7 ? extra = it : desc[key2] = it : target = it); - else if (typeof it !== "object" || it === null) __typeError("Object expected"); - else __expectFn(fn = it.get) && (desc.get = fn), __expectFn(fn = it.set) && (desc.set = fn), __expectFn(fn = it.init) && initializers.unshift(fn); - } - return k4 || __decoratorMetadata(array, target), desc && __defProp(target, name, desc), p7 ? k4 ^ 4 ? extra : desc : target; -}; -var __publicField = (obj, key2, value2) => __defNormalProp(obj, typeof key2 !== "symbol" ? key2 + "" : key2, value2); -var __accessCheck = (obj, member, msg) => member.has(obj) || __typeError("Cannot " + msg); -var __privateIn = (member, obj) => Object(obj) !== obj ? __typeError('Cannot use the "in" operator on this value') : member.has(obj); -var __privateGet = (obj, member, getter) => (__accessCheck(obj, member, "read from private field"), getter ? getter.call(obj) : member.get(obj)); -var __privateAdd = (obj, member, value2) => member.has(obj) ? __typeError("Cannot add the same private member more than once") : member instanceof WeakSet ? member.add(obj) : member.set(obj, value2); -var __privateSet = (obj, member, value2, setter) => (__accessCheck(obj, member, "write to private field"), setter ? setter.call(obj, value2) : member.set(obj, value2), value2); -var __privateMethod = (obj, member, method) => (__accessCheck(obj, member, "access private method"), method); -var __template = (cooked, raw2) => __freeze(__defProp(cooked, "raw", { value: __freeze(raw2 || cooked.slice()) })); - -// node_modules/.pnpm/@lit+reactive-element@2.1.2/node_modules/@lit/reactive-element/css-tag.js -var t, e, s, o, n, r, i, S, c; -var init_css_tag = __esm({ - "node_modules/.pnpm/@lit+reactive-element@2.1.2/node_modules/@lit/reactive-element/css-tag.js"() { - t = globalThis, e = t.ShadowRoot && (void 0 === t.ShadyCSS || t.ShadyCSS.nativeShadow) && "adoptedStyleSheets" in Document.prototype && "replace" in CSSStyleSheet.prototype, s = /* @__PURE__ */ Symbol(), o = /* @__PURE__ */ new WeakMap(); - n = class { - constructor(t9, e11, o13) { - if (this._$cssResult$ = true, o13 !== s) throw Error("CSSResult is not constructable. Use `unsafeCSS` or `css` instead."); - this.cssText = t9, this.t = e11; - } - get styleSheet() { - let t9 = this.o; - const s10 = this.t; - if (e && void 0 === t9) { - const e11 = void 0 !== s10 && 1 === s10.length; - e11 && (t9 = o.get(s10)), void 0 === t9 && ((this.o = t9 = new CSSStyleSheet()).replaceSync(this.cssText), e11 && o.set(s10, t9)); - } - return t9; - } - toString() { - return this.cssText; - } - }; - r = (t9) => new n("string" == typeof t9 ? t9 : t9 + "", void 0, s), i = (t9, ...e11) => { - const o13 = 1 === t9.length ? t9[0] : e11.reduce((e12, s10, o14) => e12 + ((t10) => { - if (true === t10._$cssResult$) return t10.cssText; - if ("number" == typeof t10) return t10; - throw Error("Value passed to 'css' function must be a 'css' function result: " + t10 + ". Use 'unsafeCSS' to pass non-literal values, but take care to ensure page security."); - })(s10) + t9[o14 + 1], t9[0]); - return new n(o13, t9, s); - }, S = (s10, o13) => { - if (e) s10.adoptedStyleSheets = o13.map((t9) => t9 instanceof CSSStyleSheet ? t9 : t9.styleSheet); - else for (const e11 of o13) { - const o14 = document.createElement("style"), n12 = t.litNonce; - void 0 !== n12 && o14.setAttribute("nonce", n12), o14.textContent = e11.cssText, s10.appendChild(o14); - } - }, c = e ? (t9) => t9 : (t9) => t9 instanceof CSSStyleSheet ? ((t10) => { - let e11 = ""; - for (const s10 of t10.cssRules) e11 += s10.cssText; - return r(e11); - })(t9) : t9; - } -}); - -// node_modules/.pnpm/@lit+reactive-element@2.1.2/node_modules/@lit/reactive-element/reactive-element.js -var i2, e2, h, r2, o2, n2, a, c2, l, p, d, u, f, b, y; -var init_reactive_element = __esm({ - "node_modules/.pnpm/@lit+reactive-element@2.1.2/node_modules/@lit/reactive-element/reactive-element.js"() { - init_css_tag(); - init_css_tag(); - ({ is: i2, defineProperty: e2, getOwnPropertyDescriptor: h, getOwnPropertyNames: r2, getOwnPropertySymbols: o2, getPrototypeOf: n2 } = Object), a = globalThis, c2 = a.trustedTypes, l = c2 ? c2.emptyScript : "", p = a.reactiveElementPolyfillSupport, d = (t9, s10) => t9, u = { toAttribute(t9, s10) { - switch (s10) { - case Boolean: - t9 = t9 ? l : null; - break; - case Object: - case Array: - t9 = null == t9 ? t9 : JSON.stringify(t9); - } - return t9; - }, fromAttribute(t9, s10) { - let i11 = t9; - switch (s10) { - case Boolean: - i11 = null !== t9; - break; - case Number: - i11 = null === t9 ? null : Number(t9); - break; - case Object: - case Array: - try { - i11 = JSON.parse(t9); - } catch (t10) { - i11 = null; - } - } - return i11; - } }, f = (t9, s10) => !i2(t9, s10), b = { attribute: true, type: String, converter: u, reflect: false, useDefault: false, hasChanged: f }; - Symbol.metadata ??= /* @__PURE__ */ Symbol("metadata"), a.litPropertyMetadata ??= /* @__PURE__ */ new WeakMap(); - y = class extends HTMLElement { - static addInitializer(t9) { - this._$Ei(), (this.l ??= []).push(t9); - } - static get observedAttributes() { - return this.finalize(), this._$Eh && [...this._$Eh.keys()]; - } - static createProperty(t9, s10 = b) { - if (s10.state && (s10.attribute = false), this._$Ei(), this.prototype.hasOwnProperty(t9) && ((s10 = Object.create(s10)).wrapped = true), this.elementProperties.set(t9, s10), !s10.noAccessor) { - const i11 = /* @__PURE__ */ Symbol(), h8 = this.getPropertyDescriptor(t9, i11, s10); - void 0 !== h8 && e2(this.prototype, t9, h8); - } - } - static getPropertyDescriptor(t9, s10, i11) { - const { get: e11, set: r11 } = h(this.prototype, t9) ?? { get() { - return this[s10]; - }, set(t10) { - this[s10] = t10; - } }; - return { get: e11, set(s11) { - const h8 = e11?.call(this); - r11?.call(this, s11), this.requestUpdate(t9, h8, i11); - }, configurable: true, enumerable: true }; - } - static getPropertyOptions(t9) { - return this.elementProperties.get(t9) ?? b; - } - static _$Ei() { - if (this.hasOwnProperty(d("elementProperties"))) return; - const t9 = n2(this); - t9.finalize(), void 0 !== t9.l && (this.l = [...t9.l]), this.elementProperties = new Map(t9.elementProperties); - } - static finalize() { - if (this.hasOwnProperty(d("finalized"))) return; - if (this.finalized = true, this._$Ei(), this.hasOwnProperty(d("properties"))) { - const t10 = this.properties, s10 = [...r2(t10), ...o2(t10)]; - for (const i11 of s10) this.createProperty(i11, t10[i11]); - } - const t9 = this[Symbol.metadata]; - if (null !== t9) { - const s10 = litPropertyMetadata.get(t9); - if (void 0 !== s10) for (const [t10, i11] of s10) this.elementProperties.set(t10, i11); - } - this._$Eh = /* @__PURE__ */ new Map(); - for (const [t10, s10] of this.elementProperties) { - const i11 = this._$Eu(t10, s10); - void 0 !== i11 && this._$Eh.set(i11, t10); - } - this.elementStyles = this.finalizeStyles(this.styles); - } - static finalizeStyles(s10) { - const i11 = []; - if (Array.isArray(s10)) { - const e11 = new Set(s10.flat(1 / 0).reverse()); - for (const s11 of e11) i11.unshift(c(s11)); - } else void 0 !== s10 && i11.push(c(s10)); - return i11; - } - static _$Eu(t9, s10) { - const i11 = s10.attribute; - return false === i11 ? void 0 : "string" == typeof i11 ? i11 : "string" == typeof t9 ? t9.toLowerCase() : void 0; - } - constructor() { - super(), this._$Ep = void 0, this.isUpdatePending = false, this.hasUpdated = false, this._$Em = null, this._$Ev(); - } - _$Ev() { - this._$ES = new Promise((t9) => this.enableUpdating = t9), this._$AL = /* @__PURE__ */ new Map(), this._$E_(), this.requestUpdate(), this.constructor.l?.forEach((t9) => t9(this)); - } - addController(t9) { - (this._$EO ??= /* @__PURE__ */ new Set()).add(t9), void 0 !== this.renderRoot && this.isConnected && t9.hostConnected?.(); - } - removeController(t9) { - this._$EO?.delete(t9); - } - _$E_() { - const t9 = /* @__PURE__ */ new Map(), s10 = this.constructor.elementProperties; - for (const i11 of s10.keys()) this.hasOwnProperty(i11) && (t9.set(i11, this[i11]), delete this[i11]); - t9.size > 0 && (this._$Ep = t9); - } - createRenderRoot() { - const t9 = this.shadowRoot ?? this.attachShadow(this.constructor.shadowRootOptions); - return S(t9, this.constructor.elementStyles), t9; - } - connectedCallback() { - this.renderRoot ??= this.createRenderRoot(), this.enableUpdating(true), this._$EO?.forEach((t9) => t9.hostConnected?.()); - } - enableUpdating(t9) { - } - disconnectedCallback() { - this._$EO?.forEach((t9) => t9.hostDisconnected?.()); - } - attributeChangedCallback(t9, s10, i11) { - this._$AK(t9, i11); - } - _$ET(t9, s10) { - const i11 = this.constructor.elementProperties.get(t9), e11 = this.constructor._$Eu(t9, i11); - if (void 0 !== e11 && true === i11.reflect) { - const h8 = (void 0 !== i11.converter?.toAttribute ? i11.converter : u).toAttribute(s10, i11.type); - this._$Em = t9, null == h8 ? this.removeAttribute(e11) : this.setAttribute(e11, h8), this._$Em = null; - } - } - _$AK(t9, s10) { - const i11 = this.constructor, e11 = i11._$Eh.get(t9); - if (void 0 !== e11 && this._$Em !== e11) { - const t10 = i11.getPropertyOptions(e11), h8 = "function" == typeof t10.converter ? { fromAttribute: t10.converter } : void 0 !== t10.converter?.fromAttribute ? t10.converter : u; - this._$Em = e11; - const r11 = h8.fromAttribute(s10, t10.type); - this[e11] = r11 ?? this._$Ej?.get(e11) ?? r11, this._$Em = null; - } - } - requestUpdate(t9, s10, i11, e11 = false, h8) { - if (void 0 !== t9) { - const r11 = this.constructor; - if (false === e11 && (h8 = this[t9]), i11 ??= r11.getPropertyOptions(t9), !((i11.hasChanged ?? f)(h8, s10) || i11.useDefault && i11.reflect && h8 === this._$Ej?.get(t9) && !this.hasAttribute(r11._$Eu(t9, i11)))) return; - this.C(t9, s10, i11); - } - false === this.isUpdatePending && (this._$ES = this._$EP()); - } - C(t9, s10, { useDefault: i11, reflect: e11, wrapped: h8 }, r11) { - i11 && !(this._$Ej ??= /* @__PURE__ */ new Map()).has(t9) && (this._$Ej.set(t9, r11 ?? s10 ?? this[t9]), true !== h8 || void 0 !== r11) || (this._$AL.has(t9) || (this.hasUpdated || i11 || (s10 = void 0), this._$AL.set(t9, s10)), true === e11 && this._$Em !== t9 && (this._$Eq ??= /* @__PURE__ */ new Set()).add(t9)); - } - async _$EP() { - this.isUpdatePending = true; - try { - await this._$ES; - } catch (t10) { - Promise.reject(t10); - } - const t9 = this.scheduleUpdate(); - return null != t9 && await t9, !this.isUpdatePending; - } - scheduleUpdate() { - return this.performUpdate(); - } - performUpdate() { - if (!this.isUpdatePending) return; - if (!this.hasUpdated) { - if (this.renderRoot ??= this.createRenderRoot(), this._$Ep) { - for (const [t11, s11] of this._$Ep) this[t11] = s11; - this._$Ep = void 0; - } - const t10 = this.constructor.elementProperties; - if (t10.size > 0) for (const [s11, i11] of t10) { - const { wrapped: t11 } = i11, e11 = this[s11]; - true !== t11 || this._$AL.has(s11) || void 0 === e11 || this.C(s11, void 0, i11, e11); - } - } - let t9 = false; - const s10 = this._$AL; - try { - t9 = this.shouldUpdate(s10), t9 ? (this.willUpdate(s10), this._$EO?.forEach((t10) => t10.hostUpdate?.()), this.update(s10)) : this._$EM(); - } catch (s11) { - throw t9 = false, this._$EM(), s11; - } - t9 && this._$AE(s10); - } - willUpdate(t9) { - } - _$AE(t9) { - this._$EO?.forEach((t10) => t10.hostUpdated?.()), this.hasUpdated || (this.hasUpdated = true, this.firstUpdated(t9)), this.updated(t9); - } - _$EM() { - this._$AL = /* @__PURE__ */ new Map(), this.isUpdatePending = false; - } - get updateComplete() { - return this.getUpdateComplete(); - } - getUpdateComplete() { - return this._$ES; - } - shouldUpdate(t9) { - return true; - } - update(t9) { - this._$Eq &&= this._$Eq.forEach((t10) => this._$ET(t10, this[t10])), this._$EM(); - } - updated(t9) { - } - firstUpdated(t9) { - } - }; - y.elementStyles = [], y.shadowRootOptions = { mode: "open" }, y[d("elementProperties")] = /* @__PURE__ */ new Map(), y[d("finalized")] = /* @__PURE__ */ new Map(), p?.({ ReactiveElement: y }), (a.reactiveElementVersions ??= []).push("2.1.2"); - } -}); - -// node_modules/.pnpm/lit-html@3.3.2/node_modules/lit-html/lit-html.js -function V(t9, i11) { - if (!u2(t9) || !t9.hasOwnProperty("raw")) throw Error("invalid template strings array"); - return void 0 !== e3 ? e3.createHTML(i11) : i11; -} -function M(t9, i11, s10 = t9, e11) { - if (i11 === E) return i11; - let h8 = void 0 !== e11 ? s10._$Co?.[e11] : s10._$Cl; - const o13 = a2(i11) ? void 0 : i11._$litDirective$; - return h8?.constructor !== o13 && (h8?._$AO?.(false), void 0 === o13 ? h8 = void 0 : (h8 = new o13(t9), h8._$AT(t9, s10, e11)), void 0 !== e11 ? (s10._$Co ??= [])[e11] = h8 : s10._$Cl = h8), void 0 !== h8 && (i11 = M(t9, h8._$AS(t9, i11.values), h8, e11)), i11; -} -var t2, i3, s2, e3, h2, o3, n3, r3, l2, c3, a2, u2, d2, f2, v, _, m, p2, g, $, y2, x, b2, w, T, E, A, C, P, N, S2, R, k, H, I, L, z, Z, j, B, D; -var init_lit_html = __esm({ - "node_modules/.pnpm/lit-html@3.3.2/node_modules/lit-html/lit-html.js"() { - t2 = globalThis, i3 = (t9) => t9, s2 = t2.trustedTypes, e3 = s2 ? s2.createPolicy("lit-html", { createHTML: (t9) => t9 }) : void 0, h2 = "$lit$", o3 = `lit$${Math.random().toFixed(9).slice(2)}$`, n3 = "?" + o3, r3 = `<${n3}>`, l2 = document, c3 = () => l2.createComment(""), a2 = (t9) => null === t9 || "object" != typeof t9 && "function" != typeof t9, u2 = Array.isArray, d2 = (t9) => u2(t9) || "function" == typeof t9?.[Symbol.iterator], f2 = "[ \n\f\r]", v = /<(?:(!--|\/[^a-zA-Z])|(\/?[a-zA-Z][^>\s]*)|(\/?$))/g, _ = /-->/g, m = />/g, p2 = RegExp(`>|${f2}(?:([^\\s"'>=/]+)(${f2}*=${f2}*(?:[^ -\f\r"'\`<>=]|("|')|))|$)`, "g"), g = /'/g, $ = /"/g, y2 = /^(?:script|style|textarea|title)$/i, x = (t9) => (i11, ...s10) => ({ _$litType$: t9, strings: i11, values: s10 }), b2 = x(1), w = x(2), T = x(3), E = /* @__PURE__ */ Symbol.for("lit-noChange"), A = /* @__PURE__ */ Symbol.for("lit-nothing"), C = /* @__PURE__ */ new WeakMap(), P = l2.createTreeWalker(l2, 129); - N = (t9, i11) => { - const s10 = t9.length - 1, e11 = []; - let n12, l6 = 2 === i11 ? "" : 3 === i11 ? "" : "", c11 = v; - for (let i12 = 0; i12 < s10; i12++) { - const s11 = t9[i12]; - let a5, u7, d5 = -1, f7 = 0; - for (; f7 < s11.length && (c11.lastIndex = f7, u7 = c11.exec(s11), null !== u7); ) f7 = c11.lastIndex, c11 === v ? "!--" === u7[1] ? c11 = _ : void 0 !== u7[1] ? c11 = m : void 0 !== u7[2] ? (y2.test(u7[2]) && (n12 = RegExp("" === u7[0] ? (c11 = n12 ?? v, d5 = -1) : void 0 === u7[1] ? d5 = -2 : (d5 = c11.lastIndex - u7[2].length, a5 = u7[1], c11 = void 0 === u7[3] ? p2 : '"' === u7[3] ? $ : g) : c11 === $ || c11 === g ? c11 = p2 : c11 === _ || c11 === m ? c11 = v : (c11 = p2, n12 = void 0); - const x4 = c11 === p2 && t9[i12 + 1].startsWith("/>") ? " " : ""; - l6 += c11 === v ? s11 + r3 : d5 >= 0 ? (e11.push(a5), s11.slice(0, d5) + h2 + s11.slice(d5) + o3 + x4) : s11 + o3 + (-2 === d5 ? i12 : x4); - } - return [V(t9, l6 + (t9[s10] || "") + (2 === i11 ? "" : 3 === i11 ? "" : "")), e11]; - }; - S2 = class _S { - constructor({ strings: t9, _$litType$: i11 }, e11) { - let r11; - this.parts = []; - let l6 = 0, a5 = 0; - const u7 = t9.length - 1, d5 = this.parts, [f7, v5] = N(t9, i11); - if (this.el = _S.createElement(f7, e11), P.currentNode = this.el.content, 2 === i11 || 3 === i11) { - const t10 = this.el.content.firstChild; - t10.replaceWith(...t10.childNodes); - } - for (; null !== (r11 = P.nextNode()) && d5.length < u7; ) { - if (1 === r11.nodeType) { - if (r11.hasAttributes()) for (const t10 of r11.getAttributeNames()) if (t10.endsWith(h2)) { - const i12 = v5[a5++], s10 = r11.getAttribute(t10).split(o3), e12 = /([.?@])?(.*)/.exec(i12); - d5.push({ type: 1, index: l6, name: e12[2], strings: s10, ctor: "." === e12[1] ? I : "?" === e12[1] ? L : "@" === e12[1] ? z : H }), r11.removeAttribute(t10); - } else t10.startsWith(o3) && (d5.push({ type: 6, index: l6 }), r11.removeAttribute(t10)); - if (y2.test(r11.tagName)) { - const t10 = r11.textContent.split(o3), i12 = t10.length - 1; - if (i12 > 0) { - r11.textContent = s2 ? s2.emptyScript : ""; - for (let s10 = 0; s10 < i12; s10++) r11.append(t10[s10], c3()), P.nextNode(), d5.push({ type: 2, index: ++l6 }); - r11.append(t10[i12], c3()); - } - } - } else if (8 === r11.nodeType) if (r11.data === n3) d5.push({ type: 2, index: l6 }); - else { - let t10 = -1; - for (; -1 !== (t10 = r11.data.indexOf(o3, t10 + 1)); ) d5.push({ type: 7, index: l6 }), t10 += o3.length - 1; - } - l6++; - } - } - static createElement(t9, i11) { - const s10 = l2.createElement("template"); - return s10.innerHTML = t9, s10; - } - }; - R = class { - constructor(t9, i11) { - this._$AV = [], this._$AN = void 0, this._$AD = t9, this._$AM = i11; - } - get parentNode() { - return this._$AM.parentNode; - } - get _$AU() { - return this._$AM._$AU; - } - u(t9) { - const { el: { content: i11 }, parts: s10 } = this._$AD, e11 = (t9?.creationScope ?? l2).importNode(i11, true); - P.currentNode = e11; - let h8 = P.nextNode(), o13 = 0, n12 = 0, r11 = s10[0]; - for (; void 0 !== r11; ) { - if (o13 === r11.index) { - let i12; - 2 === r11.type ? i12 = new k(h8, h8.nextSibling, this, t9) : 1 === r11.type ? i12 = new r11.ctor(h8, r11.name, r11.strings, this, t9) : 6 === r11.type && (i12 = new Z(h8, this, t9)), this._$AV.push(i12), r11 = s10[++n12]; - } - o13 !== r11?.index && (h8 = P.nextNode(), o13++); - } - return P.currentNode = l2, e11; - } - p(t9) { - let i11 = 0; - for (const s10 of this._$AV) void 0 !== s10 && (void 0 !== s10.strings ? (s10._$AI(t9, s10, i11), i11 += s10.strings.length - 2) : s10._$AI(t9[i11])), i11++; - } - }; - k = class _k { - get _$AU() { - return this._$AM?._$AU ?? this._$Cv; - } - constructor(t9, i11, s10, e11) { - this.type = 2, this._$AH = A, this._$AN = void 0, this._$AA = t9, this._$AB = i11, this._$AM = s10, this.options = e11, this._$Cv = e11?.isConnected ?? true; - } - get parentNode() { - let t9 = this._$AA.parentNode; - const i11 = this._$AM; - return void 0 !== i11 && 11 === t9?.nodeType && (t9 = i11.parentNode), t9; - } - get startNode() { - return this._$AA; - } - get endNode() { - return this._$AB; - } - _$AI(t9, i11 = this) { - t9 = M(this, t9, i11), a2(t9) ? t9 === A || null == t9 || "" === t9 ? (this._$AH !== A && this._$AR(), this._$AH = A) : t9 !== this._$AH && t9 !== E && this._(t9) : void 0 !== t9._$litType$ ? this.$(t9) : void 0 !== t9.nodeType ? this.T(t9) : d2(t9) ? this.k(t9) : this._(t9); - } - O(t9) { - return this._$AA.parentNode.insertBefore(t9, this._$AB); - } - T(t9) { - this._$AH !== t9 && (this._$AR(), this._$AH = this.O(t9)); - } - _(t9) { - this._$AH !== A && a2(this._$AH) ? this._$AA.nextSibling.data = t9 : this.T(l2.createTextNode(t9)), this._$AH = t9; - } - $(t9) { - const { values: i11, _$litType$: s10 } = t9, e11 = "number" == typeof s10 ? this._$AC(t9) : (void 0 === s10.el && (s10.el = S2.createElement(V(s10.h, s10.h[0]), this.options)), s10); - if (this._$AH?._$AD === e11) this._$AH.p(i11); - else { - const t10 = new R(e11, this), s11 = t10.u(this.options); - t10.p(i11), this.T(s11), this._$AH = t10; - } - } - _$AC(t9) { - let i11 = C.get(t9.strings); - return void 0 === i11 && C.set(t9.strings, i11 = new S2(t9)), i11; - } - k(t9) { - u2(this._$AH) || (this._$AH = [], this._$AR()); - const i11 = this._$AH; - let s10, e11 = 0; - for (const h8 of t9) e11 === i11.length ? i11.push(s10 = new _k(this.O(c3()), this.O(c3()), this, this.options)) : s10 = i11[e11], s10._$AI(h8), e11++; - e11 < i11.length && (this._$AR(s10 && s10._$AB.nextSibling, e11), i11.length = e11); - } - _$AR(t9 = this._$AA.nextSibling, s10) { - for (this._$AP?.(false, true, s10); t9 !== this._$AB; ) { - const s11 = i3(t9).nextSibling; - i3(t9).remove(), t9 = s11; - } - } - setConnected(t9) { - void 0 === this._$AM && (this._$Cv = t9, this._$AP?.(t9)); - } - }; - H = class { - get tagName() { - return this.element.tagName; - } - get _$AU() { - return this._$AM._$AU; - } - constructor(t9, i11, s10, e11, h8) { - this.type = 1, this._$AH = A, this._$AN = void 0, this.element = t9, this.name = i11, this._$AM = e11, this.options = h8, s10.length > 2 || "" !== s10[0] || "" !== s10[1] ? (this._$AH = Array(s10.length - 1).fill(new String()), this.strings = s10) : this._$AH = A; - } - _$AI(t9, i11 = this, s10, e11) { - const h8 = this.strings; - let o13 = false; - if (void 0 === h8) t9 = M(this, t9, i11, 0), o13 = !a2(t9) || t9 !== this._$AH && t9 !== E, o13 && (this._$AH = t9); - else { - const e12 = t9; - let n12, r11; - for (t9 = h8[0], n12 = 0; n12 < h8.length - 1; n12++) r11 = M(this, e12[s10 + n12], i11, n12), r11 === E && (r11 = this._$AH[n12]), o13 ||= !a2(r11) || r11 !== this._$AH[n12], r11 === A ? t9 = A : t9 !== A && (t9 += (r11 ?? "") + h8[n12 + 1]), this._$AH[n12] = r11; - } - o13 && !e11 && this.j(t9); - } - j(t9) { - t9 === A ? this.element.removeAttribute(this.name) : this.element.setAttribute(this.name, t9 ?? ""); - } - }; - I = class extends H { - constructor() { - super(...arguments), this.type = 3; - } - j(t9) { - this.element[this.name] = t9 === A ? void 0 : t9; - } - }; - L = class extends H { - constructor() { - super(...arguments), this.type = 4; - } - j(t9) { - this.element.toggleAttribute(this.name, !!t9 && t9 !== A); - } - }; - z = class extends H { - constructor(t9, i11, s10, e11, h8) { - super(t9, i11, s10, e11, h8), this.type = 5; - } - _$AI(t9, i11 = this) { - if ((t9 = M(this, t9, i11, 0) ?? A) === E) return; - const s10 = this._$AH, e11 = t9 === A && s10 !== A || t9.capture !== s10.capture || t9.once !== s10.once || t9.passive !== s10.passive, h8 = t9 !== A && (s10 === A || e11); - e11 && this.element.removeEventListener(this.name, this, s10), h8 && this.element.addEventListener(this.name, this, t9), this._$AH = t9; - } - handleEvent(t9) { - "function" == typeof this._$AH ? this._$AH.call(this.options?.host ?? this.element, t9) : this._$AH.handleEvent(t9); - } - }; - Z = class { - constructor(t9, i11, s10) { - this.element = t9, this.type = 6, this._$AN = void 0, this._$AM = i11, this.options = s10; - } - get _$AU() { - return this._$AM._$AU; - } - _$AI(t9) { - M(this, t9); - } - }; - j = { M: h2, P: o3, A: n3, C: 1, L: N, R, D: d2, V: M, I: k, H, N: L, U: z, B: I, F: Z }, B = t2.litHtmlPolyfillSupport; - B?.(S2, k), (t2.litHtmlVersions ??= []).push("3.3.2"); - D = (t9, i11, s10) => { - const e11 = s10?.renderBefore ?? i11; - let h8 = e11._$litPart$; - if (void 0 === h8) { - const t10 = s10?.renderBefore ?? null; - e11._$litPart$ = h8 = new k(i11.insertBefore(c3(), t10), t10, void 0, s10 ?? {}); - } - return h8._$AI(t9), h8; - }; - } -}); - -// node_modules/.pnpm/lit-element@4.2.2/node_modules/lit-element/lit-element.js -var s3, i4, o4, n4; -var init_lit_element = __esm({ - "node_modules/.pnpm/lit-element@4.2.2/node_modules/lit-element/lit-element.js"() { - init_reactive_element(); - init_reactive_element(); - init_lit_html(); - init_lit_html(); - s3 = globalThis; - i4 = class extends y { - constructor() { - super(...arguments), this.renderOptions = { host: this }, this._$Do = void 0; - } - createRenderRoot() { - const t9 = super.createRenderRoot(); - return this.renderOptions.renderBefore ??= t9.firstChild, t9; - } - update(t9) { - const r11 = this.render(); - this.hasUpdated || (this.renderOptions.isConnected = this.isConnected), super.update(t9), this._$Do = D(r11, this.renderRoot, this.renderOptions); - } - connectedCallback() { - super.connectedCallback(), this._$Do?.setConnected(true); - } - disconnectedCallback() { - super.disconnectedCallback(), this._$Do?.setConnected(false); - } - render() { - return E; - } - }; - i4._$litElement$ = true, i4["finalized"] = true, s3.litElementHydrateSupport?.({ LitElement: i4 }); - o4 = s3.litElementPolyfillSupport; - o4?.({ LitElement: i4 }); - n4 = { _$AK: (t9, e11, r11) => { - t9._$AK(e11, r11); - }, _$AL: (t9) => t9._$AL }; - (s3.litElementVersions ??= []).push("4.2.2"); - } -}); - -// node_modules/.pnpm/lit-html@3.3.2/node_modules/lit-html/is-server.js -var o5; -var init_is_server = __esm({ - "node_modules/.pnpm/lit-html@3.3.2/node_modules/lit-html/is-server.js"() { - o5 = false; - } -}); - -// node_modules/.pnpm/lit@3.3.2/node_modules/lit/index.js -var init_lit = __esm({ - "node_modules/.pnpm/lit@3.3.2/node_modules/lit/index.js"() { - init_reactive_element(); - init_lit_html(); - init_lit_element(); - init_is_server(); - } -}); - -// node_modules/.pnpm/@push.rocks+isounique@1.0.5/node_modules/@push.rocks/isounique/dist_ts/index.js -var require_dist_ts = __commonJS({ - "node_modules/.pnpm/@push.rocks+isounique@1.0.5/node_modules/@push.rocks/isounique/dist_ts/index.js"(exports) { - "use strict"; - Object.defineProperty(exports, "__esModule", { value: true }); - exports.uni = void 0; - var uni3 = (prefix4 = "uni") => { - return `${prefix4}_${`xxxxxxxxxxxxxxxxxxxxxxxx`.replace(/[xy]/g, (c11) => { - const r11 = Math.random() * 16 | 0; - const v5 = c11 === "x" ? r11 : r11 & 3 | 8; - return v5.toString(16); - })}`; - }; - exports.uni = uni3; - } -}); - -// node_modules/.pnpm/@push.rocks+smartpromise@4.2.3/node_modules/@push.rocks/smartpromise/dist_ts/smartpromise.classes.deferred.js -var Deferred, defer; -var init_smartpromise_classes_deferred = __esm({ - "node_modules/.pnpm/@push.rocks+smartpromise@4.2.3/node_modules/@push.rocks/smartpromise/dist_ts/smartpromise.classes.deferred.js"() { - Deferred = class { - claim() { - if (this.claimed) { - throw new Error("Deferred already claimed"); - } - this.claimed = true; - } - get duration() { - if (this.stoppedAt) { - return this.stoppedAt - this.startedAt; - } else { - return Date.now() - this.startedAt; - } - } - constructor() { - this.claimed = false; - this.promise = new Promise((resolve2, reject) => { - this.resolve = (valueArg) => { - this.status = "fulfilled"; - this.stoppedAt = Date.now(); - resolve2(valueArg); - }; - this.reject = (reason) => { - this.status = "rejected"; - this.stoppedAt = Date.now(); - reject(reason); - }; - this.startedAt = Date.now(); - this.status = "pending"; - }); - } - }; - defer = () => { - return new Deferred(); - }; - } -}); - -// node_modules/.pnpm/@push.rocks+smartpromise@4.2.3/node_modules/@push.rocks/smartpromise/dist_ts/smartpromise.classes.cumulativedeferred.js -var CumulativeDeferred, cumulativeDefer; -var init_smartpromise_classes_cumulativedeferred = __esm({ - "node_modules/.pnpm/@push.rocks+smartpromise@4.2.3/node_modules/@push.rocks/smartpromise/dist_ts/smartpromise.classes.cumulativedeferred.js"() { - init_smartpromise_classes_deferred(); - CumulativeDeferred = class { - constructor() { - this.accumulatedPromises = []; - this.deferred = defer(); - this.promise = this.deferred.promise; - setTimeout(async () => { - while (this.accumulatedPromises.length > 0) { - const poppedPromise = this.accumulatedPromises.shift(); - await poppedPromise; - } - this.deferred.resolve(); - }, 0); - } - subDefer() { - const done = defer(); - this.addPromise(done.promise); - return done; - } - addPromise(promiseArg) { - this.accumulatedPromises.push(promiseArg); - } - }; - cumulativeDefer = () => { - return new CumulativeDeferred(); - }; - } -}); - -// node_modules/.pnpm/@push.rocks+smartpromise@4.2.3/node_modules/@push.rocks/smartpromise/dist_ts/index.js -var dist_ts_exports = {}; -__export(dist_ts_exports, { - CumulativeDeferred: () => CumulativeDeferred, - Deferred: () => Deferred, - cumulativeDefer: () => cumulativeDefer, - defer: () => defer, - fromCallback: () => fromCallback, - getFirstTrueOrFalse: () => getFirstTrueOrFalse, - map: () => map, - rejectedPromise: () => rejectedPromise, - resolvedPromise: () => resolvedPromise, - timeoutAndContinue: () => timeoutAndContinue, - timeoutWrap: () => timeoutWrap -}); -var resolvedPromise, rejectedPromise, map, timeoutWrap, timeoutAndContinue, getFirstTrueOrFalse, fromCallback; -var init_dist_ts = __esm({ - "node_modules/.pnpm/@push.rocks+smartpromise@4.2.3/node_modules/@push.rocks/smartpromise/dist_ts/index.js"() { - init_smartpromise_classes_deferred(); - init_smartpromise_classes_cumulativedeferred(); - init_smartpromise_classes_deferred(); - resolvedPromise = (value2) => { - return Promise.resolve(value2); - }; - rejectedPromise = (err) => { - return Promise.reject(err); - }; - map = async (inputArg, functionArg) => { - const promiseArray = []; - const resultArray = []; - for (const item of inputArg) { - const promise = functionArg(item); - promiseArray.push(promise); - promise.then((x4) => { - resultArray.push(x4); - }); - } - await Promise.all(promiseArray); - return resultArray; - }; - timeoutWrap = async (promiseArg, timeoutInMsArg, rejectArg = true) => { - return new Promise((resolve2, reject) => { - setTimeout(() => { - if (rejectArg) { - reject(new Error("timeout")); - } else { - resolve2(null); - } - }, timeoutInMsArg); - promiseArg.then(resolve2, reject); - }); - }; - timeoutAndContinue = async (promiseArg, timeoutInMsArg = 6e4) => { - return timeoutWrap(promiseArg, timeoutInMsArg, false); - }; - getFirstTrueOrFalse = async (promisesArg) => { - const done = defer(); - for (const promiseArg of promisesArg) { - promiseArg.then((resultArg) => { - if (resultArg === true) { - done.resolve(true); - } - }); - } - Promise.all(promisesArg).then(() => { - done.resolve(false); - }); - return done.promise; - }; - fromCallback = (fn) => { - return new Promise((resolve2, reject) => { - fn((err, result) => { - if (err) { - reject(err); - } else { - resolve2(result); - } - }); - }); - }; - } -}); - -// node_modules/.pnpm/@push.rocks+smartrx@3.0.10/node_modules/@push.rocks/smartrx/dist_ts/smartrx.plugins.js -var init_smartrx_plugins = __esm({ - "node_modules/.pnpm/@push.rocks+smartrx@3.0.10/node_modules/@push.rocks/smartrx/dist_ts/smartrx.plugins.js"() { - init_dist_ts(); - } -}); - -// node_modules/.pnpm/tslib@2.8.1/node_modules/tslib/tslib.es6.mjs -function __extends(d5, b5) { - if (typeof b5 !== "function" && b5 !== null) - throw new TypeError("Class extends value " + String(b5) + " is not a constructor or null"); - extendStatics(d5, b5); - function __() { - this.constructor = d5; - } - d5.prototype = b5 === null ? Object.create(b5) : (__.prototype = b5.prototype, new __()); -} -function __rest(s10, e11) { - var t9 = {}; - for (var p7 in s10) if (Object.prototype.hasOwnProperty.call(s10, p7) && e11.indexOf(p7) < 0) - t9[p7] = s10[p7]; - if (s10 != null && typeof Object.getOwnPropertySymbols === "function") - for (var i11 = 0, p7 = Object.getOwnPropertySymbols(s10); i11 < p7.length; i11++) { - if (e11.indexOf(p7[i11]) < 0 && Object.prototype.propertyIsEnumerable.call(s10, p7[i11])) - t9[p7[i11]] = s10[p7[i11]]; - } - return t9; -} -function __decorate(decorators, target, key2, desc) { - var c11 = arguments.length, r11 = c11 < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key2) : desc, d5; - if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r11 = Reflect.decorate(decorators, target, key2, desc); - else for (var i11 = decorators.length - 1; i11 >= 0; i11--) if (d5 = decorators[i11]) r11 = (c11 < 3 ? d5(r11) : c11 > 3 ? d5(target, key2, r11) : d5(target, key2)) || r11; - return c11 > 3 && r11 && Object.defineProperty(target, key2, r11), r11; -} -function __param(paramIndex, decorator) { - return function(target, key2) { - decorator(target, key2, paramIndex); - }; -} -function __esDecorate(ctor, descriptorIn, decorators, contextIn, initializers, extraInitializers) { - function accept(f7) { - if (f7 !== void 0 && typeof f7 !== "function") throw new TypeError("Function expected"); - return f7; - } - var kind = contextIn.kind, key2 = kind === "getter" ? "get" : kind === "setter" ? "set" : "value"; - var target = !descriptorIn && ctor ? contextIn["static"] ? ctor : ctor.prototype : null; - var descriptor = descriptorIn || (target ? Object.getOwnPropertyDescriptor(target, contextIn.name) : {}); - var _4, done = false; - for (var i11 = decorators.length - 1; i11 >= 0; i11--) { - var context2 = {}; - for (var p7 in contextIn) context2[p7] = p7 === "access" ? {} : contextIn[p7]; - for (var p7 in contextIn.access) context2.access[p7] = contextIn.access[p7]; - context2.addInitializer = function(f7) { - if (done) throw new TypeError("Cannot add initializers after decoration has completed"); - extraInitializers.push(accept(f7 || null)); - }; - var result = (0, decorators[i11])(kind === "accessor" ? { get: descriptor.get, set: descriptor.set } : descriptor[key2], context2); - if (kind === "accessor") { - if (result === void 0) continue; - if (result === null || typeof result !== "object") throw new TypeError("Object expected"); - if (_4 = accept(result.get)) descriptor.get = _4; - if (_4 = accept(result.set)) descriptor.set = _4; - if (_4 = accept(result.init)) initializers.unshift(_4); - } else if (_4 = accept(result)) { - if (kind === "field") initializers.unshift(_4); - else descriptor[key2] = _4; - } - } - if (target) Object.defineProperty(target, contextIn.name, descriptor); - done = true; -} -function __runInitializers2(thisArg, initializers, value2) { - var useValue = arguments.length > 2; - for (var i11 = 0; i11 < initializers.length; i11++) { - value2 = useValue ? initializers[i11].call(thisArg, value2) : initializers[i11].call(thisArg); - } - return useValue ? value2 : void 0; -} -function __propKey(x4) { - return typeof x4 === "symbol" ? x4 : "".concat(x4); -} -function __setFunctionName(f7, name, prefix4) { - if (typeof name === "symbol") name = name.description ? "[".concat(name.description, "]") : ""; - return Object.defineProperty(f7, "name", { configurable: true, value: prefix4 ? "".concat(prefix4, " ", name) : name }); -} -function __metadata(metadataKey, metadataValue) { - if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(metadataKey, metadataValue); -} -function __awaiter(thisArg, _arguments, P4, generator) { - function adopt(value2) { - return value2 instanceof P4 ? value2 : new P4(function(resolve2) { - resolve2(value2); - }); - } - return new (P4 || (P4 = Promise))(function(resolve2, reject) { - function fulfilled(value2) { - try { - step(generator.next(value2)); - } catch (e11) { - reject(e11); - } - } - function rejected(value2) { - try { - step(generator["throw"](value2)); - } catch (e11) { - reject(e11); - } - } - function step(result) { - result.done ? resolve2(result.value) : adopt(result.value).then(fulfilled, rejected); - } - step((generator = generator.apply(thisArg, _arguments || [])).next()); - }); -} -function __generator(thisArg, body3) { - var _4 = { label: 0, sent: function() { - if (t9[0] & 1) throw t9[1]; - return t9[1]; - }, trys: [], ops: [] }, f7, y4, t9, g4 = Object.create((typeof Iterator === "function" ? Iterator : Object).prototype); - return g4.next = verb(0), g4["throw"] = verb(1), g4["return"] = verb(2), typeof Symbol === "function" && (g4[Symbol.iterator] = function() { - return this; - }), g4; - function verb(n12) { - return function(v5) { - return step([n12, v5]); - }; - } - function step(op) { - if (f7) throw new TypeError("Generator is already executing."); - while (g4 && (g4 = 0, op[0] && (_4 = 0)), _4) try { - if (f7 = 1, y4 && (t9 = op[0] & 2 ? y4["return"] : op[0] ? y4["throw"] || ((t9 = y4["return"]) && t9.call(y4), 0) : y4.next) && !(t9 = t9.call(y4, op[1])).done) return t9; - if (y4 = 0, t9) op = [op[0] & 2, t9.value]; - switch (op[0]) { - case 0: - case 1: - t9 = op; - break; - case 4: - _4.label++; - return { value: op[1], done: false }; - case 5: - _4.label++; - y4 = op[1]; - op = [0]; - continue; - case 7: - op = _4.ops.pop(); - _4.trys.pop(); - continue; - default: - if (!(t9 = _4.trys, t9 = t9.length > 0 && t9[t9.length - 1]) && (op[0] === 6 || op[0] === 2)) { - _4 = 0; - continue; - } - if (op[0] === 3 && (!t9 || op[1] > t9[0] && op[1] < t9[3])) { - _4.label = op[1]; - break; - } - if (op[0] === 6 && _4.label < t9[1]) { - _4.label = t9[1]; - t9 = op; - break; - } - if (t9 && _4.label < t9[2]) { - _4.label = t9[2]; - _4.ops.push(op); - break; - } - if (t9[2]) _4.ops.pop(); - _4.trys.pop(); - continue; - } - op = body3.call(thisArg, _4); - } catch (e11) { - op = [6, e11]; - y4 = 0; - } finally { - f7 = t9 = 0; - } - if (op[0] & 5) throw op[1]; - return { value: op[0] ? op[1] : void 0, done: true }; - } -} -function __exportStar(m6, o13) { - for (var p7 in m6) if (p7 !== "default" && !Object.prototype.hasOwnProperty.call(o13, p7)) __createBinding(o13, m6, p7); -} -function __values(o13) { - var s10 = typeof Symbol === "function" && Symbol.iterator, m6 = s10 && o13[s10], i11 = 0; - if (m6) return m6.call(o13); - if (o13 && typeof o13.length === "number") return { - next: function() { - if (o13 && i11 >= o13.length) o13 = void 0; - return { value: o13 && o13[i11++], done: !o13 }; - } - }; - throw new TypeError(s10 ? "Object is not iterable." : "Symbol.iterator is not defined."); -} -function __read(o13, n12) { - var m6 = typeof Symbol === "function" && o13[Symbol.iterator]; - if (!m6) return o13; - var i11 = m6.call(o13), r11, ar = [], e11; - try { - while ((n12 === void 0 || n12-- > 0) && !(r11 = i11.next()).done) ar.push(r11.value); - } catch (error) { - e11 = { error }; - } finally { - try { - if (r11 && !r11.done && (m6 = i11["return"])) m6.call(i11); - } finally { - if (e11) throw e11.error; - } - } - return ar; -} -function __spread() { - for (var ar = [], i11 = 0; i11 < arguments.length; i11++) - ar = ar.concat(__read(arguments[i11])); - return ar; -} -function __spreadArrays() { - for (var s10 = 0, i11 = 0, il = arguments.length; i11 < il; i11++) s10 += arguments[i11].length; - for (var r11 = Array(s10), k4 = 0, i11 = 0; i11 < il; i11++) - for (var a5 = arguments[i11], j4 = 0, jl = a5.length; j4 < jl; j4++, k4++) - r11[k4] = a5[j4]; - return r11; -} -function __spreadArray(to, from2, pack) { - if (pack || arguments.length === 2) for (var i11 = 0, l6 = from2.length, ar; i11 < l6; i11++) { - if (ar || !(i11 in from2)) { - if (!ar) ar = Array.prototype.slice.call(from2, 0, i11); - ar[i11] = from2[i11]; - } - } - return to.concat(ar || Array.prototype.slice.call(from2)); -} -function __await(v5) { - return this instanceof __await ? (this.v = v5, this) : new __await(v5); -} -function __asyncGenerator(thisArg, _arguments, generator) { - if (!Symbol.asyncIterator) throw new TypeError("Symbol.asyncIterator is not defined."); - var g4 = generator.apply(thisArg, _arguments || []), i11, q = []; - return i11 = Object.create((typeof AsyncIterator === "function" ? AsyncIterator : Object).prototype), verb("next"), verb("throw"), verb("return", awaitReturn), i11[Symbol.asyncIterator] = function() { - return this; - }, i11; - function awaitReturn(f7) { - return function(v5) { - return Promise.resolve(v5).then(f7, reject); - }; - } - function verb(n12, f7) { - if (g4[n12]) { - i11[n12] = function(v5) { - return new Promise(function(a5, b5) { - q.push([n12, v5, a5, b5]) > 1 || resume(n12, v5); - }); - }; - if (f7) i11[n12] = f7(i11[n12]); - } - } - function resume(n12, v5) { - try { - step(g4[n12](v5)); - } catch (e11) { - settle(q[0][3], e11); - } - } - function step(r11) { - r11.value instanceof __await ? Promise.resolve(r11.value.v).then(fulfill, reject) : settle(q[0][2], r11); - } - function fulfill(value2) { - resume("next", value2); - } - function reject(value2) { - resume("throw", value2); - } - function settle(f7, v5) { - if (f7(v5), q.shift(), q.length) resume(q[0][0], q[0][1]); - } -} -function __asyncDelegator(o13) { - var i11, p7; - return i11 = {}, verb("next"), verb("throw", function(e11) { - throw e11; - }), verb("return"), i11[Symbol.iterator] = function() { - return this; - }, i11; - function verb(n12, f7) { - i11[n12] = o13[n12] ? function(v5) { - return (p7 = !p7) ? { value: __await(o13[n12](v5)), done: false } : f7 ? f7(v5) : v5; - } : f7; - } -} -function __asyncValues(o13) { - if (!Symbol.asyncIterator) throw new TypeError("Symbol.asyncIterator is not defined."); - var m6 = o13[Symbol.asyncIterator], i11; - return m6 ? m6.call(o13) : (o13 = typeof __values === "function" ? __values(o13) : o13[Symbol.iterator](), i11 = {}, verb("next"), verb("throw"), verb("return"), i11[Symbol.asyncIterator] = function() { - return this; - }, i11); - function verb(n12) { - i11[n12] = o13[n12] && function(v5) { - return new Promise(function(resolve2, reject) { - v5 = o13[n12](v5), settle(resolve2, reject, v5.done, v5.value); - }); - }; - } - function settle(resolve2, reject, d5, v5) { - Promise.resolve(v5).then(function(v6) { - resolve2({ value: v6, done: d5 }); - }, reject); - } -} -function __makeTemplateObject(cooked, raw2) { - if (Object.defineProperty) { - Object.defineProperty(cooked, "raw", { value: raw2 }); - } else { - cooked.raw = raw2; - } - return cooked; -} -function __importStar(mod) { - if (mod && mod.__esModule) return mod; - var result = {}; - if (mod != null) { - for (var k4 = ownKeys(mod), i11 = 0; i11 < k4.length; i11++) if (k4[i11] !== "default") __createBinding(result, mod, k4[i11]); - } - __setModuleDefault(result, mod); - return result; -} -function __importDefault(mod) { - return mod && mod.__esModule ? mod : { default: mod }; -} -function __classPrivateFieldGet(receiver, state, kind, f7) { - if (kind === "a" && !f7) throw new TypeError("Private accessor was defined without a getter"); - if (typeof state === "function" ? receiver !== state || !f7 : !state.has(receiver)) throw new TypeError("Cannot read private member from an object whose class did not declare it"); - return kind === "m" ? f7 : kind === "a" ? f7.call(receiver) : f7 ? f7.value : state.get(receiver); -} -function __classPrivateFieldSet(receiver, state, value2, kind, f7) { - if (kind === "m") throw new TypeError("Private method is not writable"); - if (kind === "a" && !f7) throw new TypeError("Private accessor was defined without a setter"); - if (typeof state === "function" ? receiver !== state || !f7 : !state.has(receiver)) throw new TypeError("Cannot write private member to an object whose class did not declare it"); - return kind === "a" ? f7.call(receiver, value2) : f7 ? f7.value = value2 : state.set(receiver, value2), value2; -} -function __classPrivateFieldIn(state, receiver) { - if (receiver === null || typeof receiver !== "object" && typeof receiver !== "function") throw new TypeError("Cannot use 'in' operator on non-object"); - return typeof state === "function" ? receiver === state : state.has(receiver); -} -function __addDisposableResource(env2, value2, async2) { - if (value2 !== null && value2 !== void 0) { - if (typeof value2 !== "object" && typeof value2 !== "function") throw new TypeError("Object expected."); - var dispose, inner; - if (async2) { - if (!Symbol.asyncDispose) throw new TypeError("Symbol.asyncDispose is not defined."); - dispose = value2[Symbol.asyncDispose]; - } - if (dispose === void 0) { - if (!Symbol.dispose) throw new TypeError("Symbol.dispose is not defined."); - dispose = value2[Symbol.dispose]; - if (async2) inner = dispose; - } - if (typeof dispose !== "function") throw new TypeError("Object not disposable."); - if (inner) dispose = function() { - try { - inner.call(this); - } catch (e11) { - return Promise.reject(e11); - } - }; - env2.stack.push({ value: value2, dispose, async: async2 }); - } else if (async2) { - env2.stack.push({ async: true }); - } - return value2; -} -function __disposeResources(env2) { - function fail(e11) { - env2.error = env2.hasError ? new _SuppressedError(e11, env2.error, "An error was suppressed during disposal.") : e11; - env2.hasError = true; - } - var r11, s10 = 0; - function next2() { - while (r11 = env2.stack.pop()) { - try { - if (!r11.async && s10 === 1) return s10 = 0, env2.stack.push(r11), Promise.resolve().then(next2); - if (r11.dispose) { - var result = r11.dispose.call(r11.value); - if (r11.async) return s10 |= 2, Promise.resolve(result).then(next2, function(e11) { - fail(e11); - return next2(); - }); - } else s10 |= 1; - } catch (e11) { - fail(e11); - } - } - if (s10 === 1) return env2.hasError ? Promise.reject(env2.error) : Promise.resolve(); - if (env2.hasError) throw env2.error; - } - return next2(); -} -function __rewriteRelativeImportExtension(path2, preserveJsx) { - if (typeof path2 === "string" && /^\.\.?\//.test(path2)) { - return path2.replace(/\.(tsx)$|((?:\.d)?)((?:\.[^./]+?)?)\.([cm]?)ts$/i, function(m6, tsx, d5, ext, cm) { - return tsx ? preserveJsx ? ".jsx" : ".js" : d5 && (!ext || !cm) ? m6 : d5 + ext + "." + cm.toLowerCase() + "js"; - }); - } - return path2; -} -var extendStatics, __assign, __createBinding, __setModuleDefault, ownKeys, _SuppressedError, tslib_es6_default; -var init_tslib_es6 = __esm({ - "node_modules/.pnpm/tslib@2.8.1/node_modules/tslib/tslib.es6.mjs"() { - extendStatics = function(d5, b5) { - extendStatics = Object.setPrototypeOf || { __proto__: [] } instanceof Array && function(d6, b6) { - d6.__proto__ = b6; - } || function(d6, b6) { - for (var p7 in b6) if (Object.prototype.hasOwnProperty.call(b6, p7)) d6[p7] = b6[p7]; - }; - return extendStatics(d5, b5); - }; - __assign = function() { - __assign = Object.assign || function __assign2(t9) { - for (var s10, i11 = 1, n12 = arguments.length; i11 < n12; i11++) { - s10 = arguments[i11]; - for (var p7 in s10) if (Object.prototype.hasOwnProperty.call(s10, p7)) t9[p7] = s10[p7]; - } - return t9; - }; - return __assign.apply(this, arguments); - }; - ; - ; - ; - ; - __createBinding = Object.create ? (function(o13, m6, k4, k22) { - if (k22 === void 0) k22 = k4; - var desc = Object.getOwnPropertyDescriptor(m6, k4); - if (!desc || ("get" in desc ? !m6.__esModule : desc.writable || desc.configurable)) { - desc = { enumerable: true, get: function() { - return m6[k4]; - } }; - } - Object.defineProperty(o13, k22, desc); - }) : (function(o13, m6, k4, k22) { - if (k22 === void 0) k22 = k4; - o13[k22] = m6[k4]; - }); - ; - __setModuleDefault = Object.create ? (function(o13, v5) { - Object.defineProperty(o13, "default", { enumerable: true, value: v5 }); - }) : function(o13, v5) { - o13["default"] = v5; - }; - ownKeys = function(o13) { - ownKeys = Object.getOwnPropertyNames || function(o14) { - var ar = []; - for (var k4 in o14) if (Object.prototype.hasOwnProperty.call(o14, k4)) ar[ar.length] = k4; - return ar; - }; - return ownKeys(o13); - }; - _SuppressedError = typeof SuppressedError === "function" ? SuppressedError : function(error, suppressed, message2) { - var e11 = new Error(message2); - return e11.name = "SuppressedError", e11.error = error, e11.suppressed = suppressed, e11; - }; - tslib_es6_default = { - __extends, - __assign, - __rest, - __decorate, - __param, - __esDecorate, - __runInitializers: __runInitializers2, - __propKey, - __setFunctionName, - __metadata, - __awaiter, - __generator, - __createBinding, - __exportStar, - __values, - __read, - __spread, - __spreadArrays, - __spreadArray, - __await, - __asyncGenerator, - __asyncDelegator, - __asyncValues, - __makeTemplateObject, - __importStar, - __importDefault, - __classPrivateFieldGet, - __classPrivateFieldSet, - __classPrivateFieldIn, - __addDisposableResource, - __disposeResources, - __rewriteRelativeImportExtension - }; - } -}); - -// node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/util/isFunction.js -function isFunction(value2) { - return typeof value2 === "function"; -} -var init_isFunction = __esm({ - "node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/util/isFunction.js"() { - } -}); - -// node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/util/createErrorClass.js -function createErrorClass(createImpl) { - var _super = function(instance) { - Error.call(instance); - instance.stack = new Error().stack; - }; - var ctorFunc = createImpl(_super); - ctorFunc.prototype = Object.create(Error.prototype); - ctorFunc.prototype.constructor = ctorFunc; - return ctorFunc; -} -var init_createErrorClass = __esm({ - "node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/util/createErrorClass.js"() { - } -}); - -// node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/util/UnsubscriptionError.js -var UnsubscriptionError; -var init_UnsubscriptionError = __esm({ - "node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/util/UnsubscriptionError.js"() { - init_createErrorClass(); - UnsubscriptionError = createErrorClass(function(_super) { - return function UnsubscriptionErrorImpl(errors) { - _super(this); - this.message = errors ? errors.length + " errors occurred during unsubscription:\n" + errors.map(function(err, i11) { - return i11 + 1 + ") " + err.toString(); - }).join("\n ") : ""; - this.name = "UnsubscriptionError"; - this.errors = errors; - }; - }); - } -}); - -// node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/util/arrRemove.js -function arrRemove(arr, item) { - if (arr) { - var index2 = arr.indexOf(item); - 0 <= index2 && arr.splice(index2, 1); - } -} -var init_arrRemove = __esm({ - "node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/util/arrRemove.js"() { - } -}); - -// node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/Subscription.js -function isSubscription(value2) { - return value2 instanceof Subscription || value2 && "closed" in value2 && isFunction(value2.remove) && isFunction(value2.add) && isFunction(value2.unsubscribe); -} -function execFinalizer(finalizer) { - if (isFunction(finalizer)) { - finalizer(); - } else { - finalizer.unsubscribe(); - } -} -var Subscription, EMPTY_SUBSCRIPTION; -var init_Subscription = __esm({ - "node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/Subscription.js"() { - init_tslib_es6(); - init_isFunction(); - init_UnsubscriptionError(); - init_arrRemove(); - Subscription = (function() { - function Subscription2(initialTeardown) { - this.initialTeardown = initialTeardown; - this.closed = false; - this._parentage = null; - this._finalizers = null; - } - Subscription2.prototype.unsubscribe = function() { - var e_1, _a12, e_2, _b; - var errors; - if (!this.closed) { - this.closed = true; - var _parentage = this._parentage; - if (_parentage) { - this._parentage = null; - if (Array.isArray(_parentage)) { - try { - for (var _parentage_1 = __values(_parentage), _parentage_1_1 = _parentage_1.next(); !_parentage_1_1.done; _parentage_1_1 = _parentage_1.next()) { - var parent_1 = _parentage_1_1.value; - parent_1.remove(this); - } - } catch (e_1_1) { - e_1 = { error: e_1_1 }; - } finally { - try { - if (_parentage_1_1 && !_parentage_1_1.done && (_a12 = _parentage_1.return)) _a12.call(_parentage_1); - } finally { - if (e_1) throw e_1.error; - } - } - } else { - _parentage.remove(this); - } - } - var initialFinalizer = this.initialTeardown; - if (isFunction(initialFinalizer)) { - try { - initialFinalizer(); - } catch (e11) { - errors = e11 instanceof UnsubscriptionError ? e11.errors : [e11]; - } - } - var _finalizers = this._finalizers; - if (_finalizers) { - this._finalizers = null; - try { - for (var _finalizers_1 = __values(_finalizers), _finalizers_1_1 = _finalizers_1.next(); !_finalizers_1_1.done; _finalizers_1_1 = _finalizers_1.next()) { - var finalizer = _finalizers_1_1.value; - try { - execFinalizer(finalizer); - } catch (err) { - errors = errors !== null && errors !== void 0 ? errors : []; - if (err instanceof UnsubscriptionError) { - errors = __spreadArray(__spreadArray([], __read(errors)), __read(err.errors)); - } else { - errors.push(err); - } - } - } - } catch (e_2_1) { - e_2 = { error: e_2_1 }; - } finally { - try { - if (_finalizers_1_1 && !_finalizers_1_1.done && (_b = _finalizers_1.return)) _b.call(_finalizers_1); - } finally { - if (e_2) throw e_2.error; - } - } - } - if (errors) { - throw new UnsubscriptionError(errors); - } - } - }; - Subscription2.prototype.add = function(teardown) { - var _a12; - if (teardown && teardown !== this) { - if (this.closed) { - execFinalizer(teardown); - } else { - if (teardown instanceof Subscription2) { - if (teardown.closed || teardown._hasParent(this)) { - return; - } - teardown._addParent(this); - } - (this._finalizers = (_a12 = this._finalizers) !== null && _a12 !== void 0 ? _a12 : []).push(teardown); - } - } - }; - Subscription2.prototype._hasParent = function(parent) { - var _parentage = this._parentage; - return _parentage === parent || Array.isArray(_parentage) && _parentage.includes(parent); - }; - Subscription2.prototype._addParent = function(parent) { - var _parentage = this._parentage; - this._parentage = Array.isArray(_parentage) ? (_parentage.push(parent), _parentage) : _parentage ? [_parentage, parent] : parent; - }; - Subscription2.prototype._removeParent = function(parent) { - var _parentage = this._parentage; - if (_parentage === parent) { - this._parentage = null; - } else if (Array.isArray(_parentage)) { - arrRemove(_parentage, parent); - } - }; - Subscription2.prototype.remove = function(teardown) { - var _finalizers = this._finalizers; - _finalizers && arrRemove(_finalizers, teardown); - if (teardown instanceof Subscription2) { - teardown._removeParent(this); - } - }; - Subscription2.EMPTY = (function() { - var empty4 = new Subscription2(); - empty4.closed = true; - return empty4; - })(); - return Subscription2; - })(); - EMPTY_SUBSCRIPTION = Subscription.EMPTY; - } -}); - -// node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/config.js -var config; -var init_config = __esm({ - "node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/config.js"() { - config = { - onUnhandledError: null, - onStoppedNotification: null, - Promise: void 0, - useDeprecatedSynchronousErrorHandling: false, - useDeprecatedNextContext: false - }; - } -}); - -// node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/scheduler/timeoutProvider.js -var timeoutProvider; -var init_timeoutProvider = __esm({ - "node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/scheduler/timeoutProvider.js"() { - init_tslib_es6(); - timeoutProvider = { - setTimeout: function(handler2, timeout2) { - var args = []; - for (var _i = 2; _i < arguments.length; _i++) { - args[_i - 2] = arguments[_i]; - } - var delegate = timeoutProvider.delegate; - if (delegate === null || delegate === void 0 ? void 0 : delegate.setTimeout) { - return delegate.setTimeout.apply(delegate, __spreadArray([handler2, timeout2], __read(args))); - } - return setTimeout.apply(void 0, __spreadArray([handler2, timeout2], __read(args))); - }, - clearTimeout: function(handle3) { - var delegate = timeoutProvider.delegate; - return ((delegate === null || delegate === void 0 ? void 0 : delegate.clearTimeout) || clearTimeout)(handle3); - }, - delegate: void 0 - }; - } -}); - -// node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/util/reportUnhandledError.js -function reportUnhandledError(err) { - timeoutProvider.setTimeout(function() { - var onUnhandledError = config.onUnhandledError; - if (onUnhandledError) { - onUnhandledError(err); - } else { - throw err; - } - }); -} -var init_reportUnhandledError = __esm({ - "node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/util/reportUnhandledError.js"() { - init_config(); - init_timeoutProvider(); - } -}); - -// node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/util/noop.js -function noop() { -} -var init_noop = __esm({ - "node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/util/noop.js"() { - } -}); - -// node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/NotificationFactories.js -function errorNotification(error) { - return createNotification("E", void 0, error); -} -function nextNotification(value2) { - return createNotification("N", value2, void 0); -} -function createNotification(kind, value2, error) { - return { - kind, - value: value2, - error - }; -} -var COMPLETE_NOTIFICATION; -var init_NotificationFactories = __esm({ - "node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/NotificationFactories.js"() { - COMPLETE_NOTIFICATION = (function() { - return createNotification("C", void 0, void 0); - })(); - } -}); - -// node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/util/errorContext.js -function errorContext(cb) { - if (config.useDeprecatedSynchronousErrorHandling) { - var isRoot = !context; - if (isRoot) { - context = { errorThrown: false, error: null }; - } - cb(); - if (isRoot) { - var _a12 = context, errorThrown = _a12.errorThrown, error = _a12.error; - context = null; - if (errorThrown) { - throw error; - } - } - } else { - cb(); - } -} -function captureError(err) { - if (config.useDeprecatedSynchronousErrorHandling && context) { - context.errorThrown = true; - context.error = err; - } -} -var context; -var init_errorContext = __esm({ - "node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/util/errorContext.js"() { - init_config(); - context = null; - } -}); - -// node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/Subscriber.js -function bind(fn, thisArg) { - return _bind.call(fn, thisArg); -} -function handleUnhandledError(error) { - if (config.useDeprecatedSynchronousErrorHandling) { - captureError(error); - } else { - reportUnhandledError(error); - } -} -function defaultErrorHandler(err) { - throw err; -} -function handleStoppedNotification(notification, subscriber) { - var onStoppedNotification = config.onStoppedNotification; - onStoppedNotification && timeoutProvider.setTimeout(function() { - return onStoppedNotification(notification, subscriber); - }); -} -var Subscriber, _bind, ConsumerObserver, SafeSubscriber, EMPTY_OBSERVER; -var init_Subscriber = __esm({ - "node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/Subscriber.js"() { - init_tslib_es6(); - init_isFunction(); - init_Subscription(); - init_config(); - init_reportUnhandledError(); - init_noop(); - init_NotificationFactories(); - init_timeoutProvider(); - init_errorContext(); - Subscriber = (function(_super) { - __extends(Subscriber2, _super); - function Subscriber2(destination) { - var _this = _super.call(this) || this; - _this.isStopped = false; - if (destination) { - _this.destination = destination; - if (isSubscription(destination)) { - destination.add(_this); - } - } else { - _this.destination = EMPTY_OBSERVER; - } - return _this; - } - Subscriber2.create = function(next2, error, complete) { - return new SafeSubscriber(next2, error, complete); - }; - Subscriber2.prototype.next = function(value2) { - if (this.isStopped) { - handleStoppedNotification(nextNotification(value2), this); - } else { - this._next(value2); - } - }; - Subscriber2.prototype.error = function(err) { - if (this.isStopped) { - handleStoppedNotification(errorNotification(err), this); - } else { - this.isStopped = true; - this._error(err); - } - }; - Subscriber2.prototype.complete = function() { - if (this.isStopped) { - handleStoppedNotification(COMPLETE_NOTIFICATION, this); - } else { - this.isStopped = true; - this._complete(); - } - }; - Subscriber2.prototype.unsubscribe = function() { - if (!this.closed) { - this.isStopped = true; - _super.prototype.unsubscribe.call(this); - this.destination = null; - } - }; - Subscriber2.prototype._next = function(value2) { - this.destination.next(value2); - }; - Subscriber2.prototype._error = function(err) { - try { - this.destination.error(err); - } finally { - this.unsubscribe(); - } - }; - Subscriber2.prototype._complete = function() { - try { - this.destination.complete(); - } finally { - this.unsubscribe(); - } - }; - return Subscriber2; - })(Subscription); - _bind = Function.prototype.bind; - ConsumerObserver = (function() { - function ConsumerObserver2(partialObserver) { - this.partialObserver = partialObserver; - } - ConsumerObserver2.prototype.next = function(value2) { - var partialObserver = this.partialObserver; - if (partialObserver.next) { - try { - partialObserver.next(value2); - } catch (error) { - handleUnhandledError(error); - } - } - }; - ConsumerObserver2.prototype.error = function(err) { - var partialObserver = this.partialObserver; - if (partialObserver.error) { - try { - partialObserver.error(err); - } catch (error) { - handleUnhandledError(error); - } - } else { - handleUnhandledError(err); - } - }; - ConsumerObserver2.prototype.complete = function() { - var partialObserver = this.partialObserver; - if (partialObserver.complete) { - try { - partialObserver.complete(); - } catch (error) { - handleUnhandledError(error); - } - } - }; - return ConsumerObserver2; - })(); - SafeSubscriber = (function(_super) { - __extends(SafeSubscriber2, _super); - function SafeSubscriber2(observerOrNext, error, complete) { - var _this = _super.call(this) || this; - var partialObserver; - if (isFunction(observerOrNext) || !observerOrNext) { - partialObserver = { - next: observerOrNext !== null && observerOrNext !== void 0 ? observerOrNext : void 0, - error: error !== null && error !== void 0 ? error : void 0, - complete: complete !== null && complete !== void 0 ? complete : void 0 - }; - } else { - var context_1; - if (_this && config.useDeprecatedNextContext) { - context_1 = Object.create(observerOrNext); - context_1.unsubscribe = function() { - return _this.unsubscribe(); - }; - partialObserver = { - next: observerOrNext.next && bind(observerOrNext.next, context_1), - error: observerOrNext.error && bind(observerOrNext.error, context_1), - complete: observerOrNext.complete && bind(observerOrNext.complete, context_1) - }; - } else { - partialObserver = observerOrNext; - } - } - _this.destination = new ConsumerObserver(partialObserver); - return _this; - } - return SafeSubscriber2; - })(Subscriber); - EMPTY_OBSERVER = { - closed: true, - next: noop, - error: defaultErrorHandler, - complete: noop - }; - } -}); - -// node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/symbol/observable.js -var observable; -var init_observable = __esm({ - "node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/symbol/observable.js"() { - observable = (function() { - return typeof Symbol === "function" && Symbol.observable || "@@observable"; - })(); - } -}); - -// node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/util/identity.js -function identity(x4) { - return x4; -} -var init_identity = __esm({ - "node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/util/identity.js"() { - } -}); - -// node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/util/pipe.js -function pipe() { - var fns = []; - for (var _i = 0; _i < arguments.length; _i++) { - fns[_i] = arguments[_i]; - } - return pipeFromArray(fns); -} -function pipeFromArray(fns) { - if (fns.length === 0) { - return identity; - } - if (fns.length === 1) { - return fns[0]; - } - return function piped(input) { - return fns.reduce(function(prev, fn) { - return fn(prev); - }, input); - }; -} -var init_pipe = __esm({ - "node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/util/pipe.js"() { - init_identity(); - } -}); - -// node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/Observable.js -function getPromiseCtor(promiseCtor) { - var _a12; - return (_a12 = promiseCtor !== null && promiseCtor !== void 0 ? promiseCtor : config.Promise) !== null && _a12 !== void 0 ? _a12 : Promise; -} -function isObserver(value2) { - return value2 && isFunction(value2.next) && isFunction(value2.error) && isFunction(value2.complete); -} -function isSubscriber(value2) { - return value2 && value2 instanceof Subscriber || isObserver(value2) && isSubscription(value2); -} -var Observable; -var init_Observable = __esm({ - "node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/Observable.js"() { - init_Subscriber(); - init_Subscription(); - init_observable(); - init_pipe(); - init_config(); - init_isFunction(); - init_errorContext(); - Observable = (function() { - function Observable2(subscribe2) { - if (subscribe2) { - this._subscribe = subscribe2; - } - } - Observable2.prototype.lift = function(operator) { - var observable2 = new Observable2(); - observable2.source = this; - observable2.operator = operator; - return observable2; - }; - Observable2.prototype.subscribe = function(observerOrNext, error, complete) { - var _this = this; - var subscriber = isSubscriber(observerOrNext) ? observerOrNext : new SafeSubscriber(observerOrNext, error, complete); - errorContext(function() { - var _a12 = _this, operator = _a12.operator, source = _a12.source; - subscriber.add(operator ? operator.call(subscriber, source) : source ? _this._subscribe(subscriber) : _this._trySubscribe(subscriber)); - }); - return subscriber; - }; - Observable2.prototype._trySubscribe = function(sink) { - try { - return this._subscribe(sink); - } catch (err) { - sink.error(err); - } - }; - Observable2.prototype.forEach = function(next2, promiseCtor) { - var _this = this; - promiseCtor = getPromiseCtor(promiseCtor); - return new promiseCtor(function(resolve2, reject) { - var subscriber = new SafeSubscriber({ - next: function(value2) { - try { - next2(value2); - } catch (err) { - reject(err); - subscriber.unsubscribe(); - } - }, - error: reject, - complete: resolve2 - }); - _this.subscribe(subscriber); - }); - }; - Observable2.prototype._subscribe = function(subscriber) { - var _a12; - return (_a12 = this.source) === null || _a12 === void 0 ? void 0 : _a12.subscribe(subscriber); - }; - Observable2.prototype[observable] = function() { - return this; - }; - Observable2.prototype.pipe = function() { - var operations = []; - for (var _i = 0; _i < arguments.length; _i++) { - operations[_i] = arguments[_i]; - } - return pipeFromArray(operations)(this); - }; - Observable2.prototype.toPromise = function(promiseCtor) { - var _this = this; - promiseCtor = getPromiseCtor(promiseCtor); - return new promiseCtor(function(resolve2, reject) { - var value2; - _this.subscribe(function(x4) { - return value2 = x4; - }, function(err) { - return reject(err); - }, function() { - return resolve2(value2); - }); - }); - }; - Observable2.create = function(subscribe2) { - return new Observable2(subscribe2); - }; - return Observable2; - })(); - } -}); - -// node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/util/lift.js -function hasLift(source) { - return isFunction(source === null || source === void 0 ? void 0 : source.lift); -} -function operate(init) { - return function(source) { - if (hasLift(source)) { - return source.lift(function(liftedSource) { - try { - return init(liftedSource, this); - } catch (err) { - this.error(err); - } - }); - } - throw new TypeError("Unable to lift unknown Observable type"); - }; -} -var init_lift = __esm({ - "node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/util/lift.js"() { - init_isFunction(); - } -}); - -// node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/operators/OperatorSubscriber.js -function createOperatorSubscriber(destination, onNext, onComplete, onError, onFinalize) { - return new OperatorSubscriber(destination, onNext, onComplete, onError, onFinalize); -} -var OperatorSubscriber; -var init_OperatorSubscriber = __esm({ - "node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/operators/OperatorSubscriber.js"() { - init_tslib_es6(); - init_Subscriber(); - OperatorSubscriber = (function(_super) { - __extends(OperatorSubscriber2, _super); - function OperatorSubscriber2(destination, onNext, onComplete, onError, onFinalize, shouldUnsubscribe) { - var _this = _super.call(this, destination) || this; - _this.onFinalize = onFinalize; - _this.shouldUnsubscribe = shouldUnsubscribe; - _this._next = onNext ? function(value2) { - try { - onNext(value2); - } catch (err) { - destination.error(err); - } - } : _super.prototype._next; - _this._error = onError ? function(err) { - try { - onError(err); - } catch (err2) { - destination.error(err2); - } finally { - this.unsubscribe(); - } - } : _super.prototype._error; - _this._complete = onComplete ? function() { - try { - onComplete(); - } catch (err) { - destination.error(err); - } finally { - this.unsubscribe(); - } - } : _super.prototype._complete; - return _this; - } - OperatorSubscriber2.prototype.unsubscribe = function() { - var _a12; - if (!this.shouldUnsubscribe || this.shouldUnsubscribe()) { - var closed_1 = this.closed; - _super.prototype.unsubscribe.call(this); - !closed_1 && ((_a12 = this.onFinalize) === null || _a12 === void 0 ? void 0 : _a12.call(this)); - } - }; - return OperatorSubscriber2; - })(Subscriber); - } -}); - -// node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/operators/refCount.js -function refCount() { - return operate(function(source, subscriber) { - var connection = null; - source._refCount++; - var refCounter = createOperatorSubscriber(subscriber, void 0, void 0, void 0, function() { - if (!source || source._refCount <= 0 || 0 < --source._refCount) { - connection = null; - return; - } - var sharedConnection = source._connection; - var conn = connection; - connection = null; - if (sharedConnection && (!conn || sharedConnection === conn)) { - sharedConnection.unsubscribe(); - } - subscriber.unsubscribe(); - }); - source.subscribe(refCounter); - if (!refCounter.closed) { - connection = source.connect(); - } - }); -} -var init_refCount = __esm({ - "node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/operators/refCount.js"() { - init_lift(); - init_OperatorSubscriber(); - } -}); - -// node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/observable/ConnectableObservable.js -var ConnectableObservable; -var init_ConnectableObservable = __esm({ - "node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/observable/ConnectableObservable.js"() { - init_tslib_es6(); - init_Observable(); - init_Subscription(); - init_refCount(); - init_OperatorSubscriber(); - init_lift(); - ConnectableObservable = (function(_super) { - __extends(ConnectableObservable2, _super); - function ConnectableObservable2(source, subjectFactory) { - var _this = _super.call(this) || this; - _this.source = source; - _this.subjectFactory = subjectFactory; - _this._subject = null; - _this._refCount = 0; - _this._connection = null; - if (hasLift(source)) { - _this.lift = source.lift; - } - return _this; - } - ConnectableObservable2.prototype._subscribe = function(subscriber) { - return this.getSubject().subscribe(subscriber); - }; - ConnectableObservable2.prototype.getSubject = function() { - var subject = this._subject; - if (!subject || subject.isStopped) { - this._subject = this.subjectFactory(); - } - return this._subject; - }; - ConnectableObservable2.prototype._teardown = function() { - this._refCount = 0; - var _connection = this._connection; - this._subject = this._connection = null; - _connection === null || _connection === void 0 ? void 0 : _connection.unsubscribe(); - }; - ConnectableObservable2.prototype.connect = function() { - var _this = this; - var connection = this._connection; - if (!connection) { - connection = this._connection = new Subscription(); - var subject_1 = this.getSubject(); - connection.add(this.source.subscribe(createOperatorSubscriber(subject_1, void 0, function() { - _this._teardown(); - subject_1.complete(); - }, function(err) { - _this._teardown(); - subject_1.error(err); - }, function() { - return _this._teardown(); - }))); - if (connection.closed) { - this._connection = null; - connection = Subscription.EMPTY; - } - } - return connection; - }; - ConnectableObservable2.prototype.refCount = function() { - return refCount()(this); - }; - return ConnectableObservable2; - })(Observable); - } -}); - -// node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/scheduler/performanceTimestampProvider.js -var performanceTimestampProvider; -var init_performanceTimestampProvider = __esm({ - "node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/scheduler/performanceTimestampProvider.js"() { - performanceTimestampProvider = { - now: function() { - return (performanceTimestampProvider.delegate || performance).now(); - }, - delegate: void 0 - }; - } -}); - -// node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/scheduler/animationFrameProvider.js -var animationFrameProvider; -var init_animationFrameProvider = __esm({ - "node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/scheduler/animationFrameProvider.js"() { - init_tslib_es6(); - init_Subscription(); - animationFrameProvider = { - schedule: function(callback) { - var request = requestAnimationFrame; - var cancel = cancelAnimationFrame; - var delegate = animationFrameProvider.delegate; - if (delegate) { - request = delegate.requestAnimationFrame; - cancel = delegate.cancelAnimationFrame; - } - var handle3 = request(function(timestamp2) { - cancel = void 0; - callback(timestamp2); - }); - return new Subscription(function() { - return cancel === null || cancel === void 0 ? void 0 : cancel(handle3); - }); - }, - requestAnimationFrame: function() { - var args = []; - for (var _i = 0; _i < arguments.length; _i++) { - args[_i] = arguments[_i]; - } - var delegate = animationFrameProvider.delegate; - return ((delegate === null || delegate === void 0 ? void 0 : delegate.requestAnimationFrame) || requestAnimationFrame).apply(void 0, __spreadArray([], __read(args))); - }, - cancelAnimationFrame: function() { - var args = []; - for (var _i = 0; _i < arguments.length; _i++) { - args[_i] = arguments[_i]; - } - var delegate = animationFrameProvider.delegate; - return ((delegate === null || delegate === void 0 ? void 0 : delegate.cancelAnimationFrame) || cancelAnimationFrame).apply(void 0, __spreadArray([], __read(args))); - }, - delegate: void 0 - }; - } -}); - -// node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/observable/dom/animationFrames.js -function animationFrames(timestampProvider) { - return timestampProvider ? animationFramesFactory(timestampProvider) : DEFAULT_ANIMATION_FRAMES; -} -function animationFramesFactory(timestampProvider) { - return new Observable(function(subscriber) { - var provider = timestampProvider || performanceTimestampProvider; - var start = provider.now(); - var id = 0; - var run = function() { - if (!subscriber.closed) { - id = animationFrameProvider.requestAnimationFrame(function(timestamp2) { - id = 0; - var now2 = provider.now(); - subscriber.next({ - timestamp: timestampProvider ? now2 : timestamp2, - elapsed: now2 - start - }); - run(); - }); - } - }; - run(); - return function() { - if (id) { - animationFrameProvider.cancelAnimationFrame(id); - } - }; - }); -} -var DEFAULT_ANIMATION_FRAMES; -var init_animationFrames = __esm({ - "node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/observable/dom/animationFrames.js"() { - init_Observable(); - init_performanceTimestampProvider(); - init_animationFrameProvider(); - DEFAULT_ANIMATION_FRAMES = animationFramesFactory(); - } -}); - -// node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/util/ObjectUnsubscribedError.js -var ObjectUnsubscribedError; -var init_ObjectUnsubscribedError = __esm({ - "node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/util/ObjectUnsubscribedError.js"() { - init_createErrorClass(); - ObjectUnsubscribedError = createErrorClass(function(_super) { - return function ObjectUnsubscribedErrorImpl() { - _super(this); - this.name = "ObjectUnsubscribedError"; - this.message = "object unsubscribed"; - }; - }); - } -}); - -// node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/Subject.js -var Subject, AnonymousSubject; -var init_Subject = __esm({ - "node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/Subject.js"() { - init_tslib_es6(); - init_Observable(); - init_Subscription(); - init_ObjectUnsubscribedError(); - init_arrRemove(); - init_errorContext(); - Subject = (function(_super) { - __extends(Subject2, _super); - function Subject2() { - var _this = _super.call(this) || this; - _this.closed = false; - _this.currentObservers = null; - _this.observers = []; - _this.isStopped = false; - _this.hasError = false; - _this.thrownError = null; - return _this; - } - Subject2.prototype.lift = function(operator) { - var subject = new AnonymousSubject(this, this); - subject.operator = operator; - return subject; - }; - Subject2.prototype._throwIfClosed = function() { - if (this.closed) { - throw new ObjectUnsubscribedError(); - } - }; - Subject2.prototype.next = function(value2) { - var _this = this; - errorContext(function() { - var e_1, _a12; - _this._throwIfClosed(); - if (!_this.isStopped) { - if (!_this.currentObservers) { - _this.currentObservers = Array.from(_this.observers); - } - try { - for (var _b = __values(_this.currentObservers), _c = _b.next(); !_c.done; _c = _b.next()) { - var observer = _c.value; - observer.next(value2); - } - } catch (e_1_1) { - e_1 = { error: e_1_1 }; - } finally { - try { - if (_c && !_c.done && (_a12 = _b.return)) _a12.call(_b); - } finally { - if (e_1) throw e_1.error; - } - } - } - }); - }; - Subject2.prototype.error = function(err) { - var _this = this; - errorContext(function() { - _this._throwIfClosed(); - if (!_this.isStopped) { - _this.hasError = _this.isStopped = true; - _this.thrownError = err; - var observers = _this.observers; - while (observers.length) { - observers.shift().error(err); - } - } - }); - }; - Subject2.prototype.complete = function() { - var _this = this; - errorContext(function() { - _this._throwIfClosed(); - if (!_this.isStopped) { - _this.isStopped = true; - var observers = _this.observers; - while (observers.length) { - observers.shift().complete(); - } - } - }); - }; - Subject2.prototype.unsubscribe = function() { - this.isStopped = this.closed = true; - this.observers = this.currentObservers = null; - }; - Object.defineProperty(Subject2.prototype, "observed", { - get: function() { - var _a12; - return ((_a12 = this.observers) === null || _a12 === void 0 ? void 0 : _a12.length) > 0; - }, - enumerable: false, - configurable: true - }); - Subject2.prototype._trySubscribe = function(subscriber) { - this._throwIfClosed(); - return _super.prototype._trySubscribe.call(this, subscriber); - }; - Subject2.prototype._subscribe = function(subscriber) { - this._throwIfClosed(); - this._checkFinalizedStatuses(subscriber); - return this._innerSubscribe(subscriber); - }; - Subject2.prototype._innerSubscribe = function(subscriber) { - var _this = this; - var _a12 = this, hasError = _a12.hasError, isStopped = _a12.isStopped, observers = _a12.observers; - if (hasError || isStopped) { - return EMPTY_SUBSCRIPTION; - } - this.currentObservers = null; - observers.push(subscriber); - return new Subscription(function() { - _this.currentObservers = null; - arrRemove(observers, subscriber); - }); - }; - Subject2.prototype._checkFinalizedStatuses = function(subscriber) { - var _a12 = this, hasError = _a12.hasError, thrownError = _a12.thrownError, isStopped = _a12.isStopped; - if (hasError) { - subscriber.error(thrownError); - } else if (isStopped) { - subscriber.complete(); - } - }; - Subject2.prototype.asObservable = function() { - var observable2 = new Observable(); - observable2.source = this; - return observable2; - }; - Subject2.create = function(destination, source) { - return new AnonymousSubject(destination, source); - }; - return Subject2; - })(Observable); - AnonymousSubject = (function(_super) { - __extends(AnonymousSubject2, _super); - function AnonymousSubject2(destination, source) { - var _this = _super.call(this) || this; - _this.destination = destination; - _this.source = source; - return _this; - } - AnonymousSubject2.prototype.next = function(value2) { - var _a12, _b; - (_b = (_a12 = this.destination) === null || _a12 === void 0 ? void 0 : _a12.next) === null || _b === void 0 ? void 0 : _b.call(_a12, value2); - }; - AnonymousSubject2.prototype.error = function(err) { - var _a12, _b; - (_b = (_a12 = this.destination) === null || _a12 === void 0 ? void 0 : _a12.error) === null || _b === void 0 ? void 0 : _b.call(_a12, err); - }; - AnonymousSubject2.prototype.complete = function() { - var _a12, _b; - (_b = (_a12 = this.destination) === null || _a12 === void 0 ? void 0 : _a12.complete) === null || _b === void 0 ? void 0 : _b.call(_a12); - }; - AnonymousSubject2.prototype._subscribe = function(subscriber) { - var _a12, _b; - return (_b = (_a12 = this.source) === null || _a12 === void 0 ? void 0 : _a12.subscribe(subscriber)) !== null && _b !== void 0 ? _b : EMPTY_SUBSCRIPTION; - }; - return AnonymousSubject2; - })(Subject); - } -}); - -// node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/BehaviorSubject.js -var BehaviorSubject; -var init_BehaviorSubject = __esm({ - "node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/BehaviorSubject.js"() { - init_tslib_es6(); - init_Subject(); - BehaviorSubject = (function(_super) { - __extends(BehaviorSubject2, _super); - function BehaviorSubject2(_value) { - var _this = _super.call(this) || this; - _this._value = _value; - return _this; - } - Object.defineProperty(BehaviorSubject2.prototype, "value", { - get: function() { - return this.getValue(); - }, - enumerable: false, - configurable: true - }); - BehaviorSubject2.prototype._subscribe = function(subscriber) { - var subscription = _super.prototype._subscribe.call(this, subscriber); - !subscription.closed && subscriber.next(this._value); - return subscription; - }; - BehaviorSubject2.prototype.getValue = function() { - var _a12 = this, hasError = _a12.hasError, thrownError = _a12.thrownError, _value = _a12._value; - if (hasError) { - throw thrownError; - } - this._throwIfClosed(); - return _value; - }; - BehaviorSubject2.prototype.next = function(value2) { - _super.prototype.next.call(this, this._value = value2); - }; - return BehaviorSubject2; - })(Subject); - } -}); - -// node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/scheduler/dateTimestampProvider.js -var dateTimestampProvider; -var init_dateTimestampProvider = __esm({ - "node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/scheduler/dateTimestampProvider.js"() { - dateTimestampProvider = { - now: function() { - return (dateTimestampProvider.delegate || Date).now(); - }, - delegate: void 0 - }; - } -}); - -// node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/ReplaySubject.js -var ReplaySubject; -var init_ReplaySubject = __esm({ - "node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/ReplaySubject.js"() { - init_tslib_es6(); - init_Subject(); - init_dateTimestampProvider(); - ReplaySubject = (function(_super) { - __extends(ReplaySubject2, _super); - function ReplaySubject2(_bufferSize, _windowTime, _timestampProvider) { - if (_bufferSize === void 0) { - _bufferSize = Infinity; - } - if (_windowTime === void 0) { - _windowTime = Infinity; - } - if (_timestampProvider === void 0) { - _timestampProvider = dateTimestampProvider; - } - var _this = _super.call(this) || this; - _this._bufferSize = _bufferSize; - _this._windowTime = _windowTime; - _this._timestampProvider = _timestampProvider; - _this._buffer = []; - _this._infiniteTimeWindow = true; - _this._infiniteTimeWindow = _windowTime === Infinity; - _this._bufferSize = Math.max(1, _bufferSize); - _this._windowTime = Math.max(1, _windowTime); - return _this; - } - ReplaySubject2.prototype.next = function(value2) { - var _a12 = this, isStopped = _a12.isStopped, _buffer = _a12._buffer, _infiniteTimeWindow = _a12._infiniteTimeWindow, _timestampProvider = _a12._timestampProvider, _windowTime = _a12._windowTime; - if (!isStopped) { - _buffer.push(value2); - !_infiniteTimeWindow && _buffer.push(_timestampProvider.now() + _windowTime); - } - this._trimBuffer(); - _super.prototype.next.call(this, value2); - }; - ReplaySubject2.prototype._subscribe = function(subscriber) { - this._throwIfClosed(); - this._trimBuffer(); - var subscription = this._innerSubscribe(subscriber); - var _a12 = this, _infiniteTimeWindow = _a12._infiniteTimeWindow, _buffer = _a12._buffer; - var copy = _buffer.slice(); - for (var i11 = 0; i11 < copy.length && !subscriber.closed; i11 += _infiniteTimeWindow ? 1 : 2) { - subscriber.next(copy[i11]); - } - this._checkFinalizedStatuses(subscriber); - return subscription; - }; - ReplaySubject2.prototype._trimBuffer = function() { - var _a12 = this, _bufferSize = _a12._bufferSize, _timestampProvider = _a12._timestampProvider, _buffer = _a12._buffer, _infiniteTimeWindow = _a12._infiniteTimeWindow; - var adjustedBufferSize = (_infiniteTimeWindow ? 1 : 2) * _bufferSize; - _bufferSize < Infinity && adjustedBufferSize < _buffer.length && _buffer.splice(0, _buffer.length - adjustedBufferSize); - if (!_infiniteTimeWindow) { - var now2 = _timestampProvider.now(); - var last3 = 0; - for (var i11 = 1; i11 < _buffer.length && _buffer[i11] <= now2; i11 += 2) { - last3 = i11; - } - last3 && _buffer.splice(0, last3 + 1); - } - }; - return ReplaySubject2; - })(Subject); - } -}); - -// node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/AsyncSubject.js -var AsyncSubject; -var init_AsyncSubject = __esm({ - "node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/AsyncSubject.js"() { - init_tslib_es6(); - init_Subject(); - AsyncSubject = (function(_super) { - __extends(AsyncSubject2, _super); - function AsyncSubject2() { - var _this = _super !== null && _super.apply(this, arguments) || this; - _this._value = null; - _this._hasValue = false; - _this._isComplete = false; - return _this; - } - AsyncSubject2.prototype._checkFinalizedStatuses = function(subscriber) { - var _a12 = this, hasError = _a12.hasError, _hasValue = _a12._hasValue, _value = _a12._value, thrownError = _a12.thrownError, isStopped = _a12.isStopped, _isComplete = _a12._isComplete; - if (hasError) { - subscriber.error(thrownError); - } else if (isStopped || _isComplete) { - _hasValue && subscriber.next(_value); - subscriber.complete(); - } - }; - AsyncSubject2.prototype.next = function(value2) { - if (!this.isStopped) { - this._value = value2; - this._hasValue = true; - } - }; - AsyncSubject2.prototype.complete = function() { - var _a12 = this, _hasValue = _a12._hasValue, _value = _a12._value, _isComplete = _a12._isComplete; - if (!_isComplete) { - this._isComplete = true; - _hasValue && _super.prototype.next.call(this, _value); - _super.prototype.complete.call(this); - } - }; - return AsyncSubject2; - })(Subject); - } -}); - -// node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/scheduler/Action.js -var Action; -var init_Action = __esm({ - "node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/scheduler/Action.js"() { - init_tslib_es6(); - init_Subscription(); - Action = (function(_super) { - __extends(Action2, _super); - function Action2(scheduler, work) { - return _super.call(this) || this; - } - Action2.prototype.schedule = function(state, delay2) { - if (delay2 === void 0) { - delay2 = 0; - } - return this; - }; - return Action2; - })(Subscription); - } -}); - -// node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/scheduler/intervalProvider.js -var intervalProvider; -var init_intervalProvider = __esm({ - "node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/scheduler/intervalProvider.js"() { - init_tslib_es6(); - intervalProvider = { - setInterval: function(handler2, timeout2) { - var args = []; - for (var _i = 2; _i < arguments.length; _i++) { - args[_i - 2] = arguments[_i]; - } - var delegate = intervalProvider.delegate; - if (delegate === null || delegate === void 0 ? void 0 : delegate.setInterval) { - return delegate.setInterval.apply(delegate, __spreadArray([handler2, timeout2], __read(args))); - } - return setInterval.apply(void 0, __spreadArray([handler2, timeout2], __read(args))); - }, - clearInterval: function(handle3) { - var delegate = intervalProvider.delegate; - return ((delegate === null || delegate === void 0 ? void 0 : delegate.clearInterval) || clearInterval)(handle3); - }, - delegate: void 0 - }; - } -}); - -// node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/scheduler/AsyncAction.js -var AsyncAction; -var init_AsyncAction = __esm({ - "node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/scheduler/AsyncAction.js"() { - init_tslib_es6(); - init_Action(); - init_intervalProvider(); - init_arrRemove(); - AsyncAction = (function(_super) { - __extends(AsyncAction2, _super); - function AsyncAction2(scheduler, work) { - var _this = _super.call(this, scheduler, work) || this; - _this.scheduler = scheduler; - _this.work = work; - _this.pending = false; - return _this; - } - AsyncAction2.prototype.schedule = function(state, delay2) { - var _a12; - if (delay2 === void 0) { - delay2 = 0; - } - if (this.closed) { - return this; - } - this.state = state; - var id = this.id; - var scheduler = this.scheduler; - if (id != null) { - this.id = this.recycleAsyncId(scheduler, id, delay2); - } - this.pending = true; - this.delay = delay2; - this.id = (_a12 = this.id) !== null && _a12 !== void 0 ? _a12 : this.requestAsyncId(scheduler, this.id, delay2); - return this; - }; - AsyncAction2.prototype.requestAsyncId = function(scheduler, _id, delay2) { - if (delay2 === void 0) { - delay2 = 0; - } - return intervalProvider.setInterval(scheduler.flush.bind(scheduler, this), delay2); - }; - AsyncAction2.prototype.recycleAsyncId = function(_scheduler, id, delay2) { - if (delay2 === void 0) { - delay2 = 0; - } - if (delay2 != null && this.delay === delay2 && this.pending === false) { - return id; - } - if (id != null) { - intervalProvider.clearInterval(id); - } - return void 0; - }; - AsyncAction2.prototype.execute = function(state, delay2) { - if (this.closed) { - return new Error("executing a cancelled action"); - } - this.pending = false; - var error = this._execute(state, delay2); - if (error) { - return error; - } else if (this.pending === false && this.id != null) { - this.id = this.recycleAsyncId(this.scheduler, this.id, null); - } - }; - AsyncAction2.prototype._execute = function(state, _delay) { - var errored = false; - var errorValue; - try { - this.work(state); - } catch (e11) { - errored = true; - errorValue = e11 ? e11 : new Error("Scheduled action threw falsy error"); - } - if (errored) { - this.unsubscribe(); - return errorValue; - } - }; - AsyncAction2.prototype.unsubscribe = function() { - if (!this.closed) { - var _a12 = this, id = _a12.id, scheduler = _a12.scheduler; - var actions = scheduler.actions; - this.work = this.state = this.scheduler = null; - this.pending = false; - arrRemove(actions, this); - if (id != null) { - this.id = this.recycleAsyncId(scheduler, id, null); - } - this.delay = null; - _super.prototype.unsubscribe.call(this); - } - }; - return AsyncAction2; - })(Action); - } -}); - -// node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/util/Immediate.js -function findAndClearHandle(handle3) { - if (handle3 in activeHandles) { - delete activeHandles[handle3]; - return true; - } - return false; -} -var nextHandle, resolved, activeHandles, Immediate, TestTools; -var init_Immediate = __esm({ - "node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/util/Immediate.js"() { - nextHandle = 1; - activeHandles = {}; - Immediate = { - setImmediate: function(cb) { - var handle3 = nextHandle++; - activeHandles[handle3] = true; - if (!resolved) { - resolved = Promise.resolve(); - } - resolved.then(function() { - return findAndClearHandle(handle3) && cb(); - }); - return handle3; - }, - clearImmediate: function(handle3) { - findAndClearHandle(handle3); - } - }; - TestTools = { - pending: function() { - return Object.keys(activeHandles).length; - } - }; - } -}); - -// node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/scheduler/immediateProvider.js -var setImmediate, clearImmediate, immediateProvider; -var init_immediateProvider = __esm({ - "node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/scheduler/immediateProvider.js"() { - init_tslib_es6(); - init_Immediate(); - setImmediate = Immediate.setImmediate, clearImmediate = Immediate.clearImmediate; - immediateProvider = { - setImmediate: function() { - var args = []; - for (var _i = 0; _i < arguments.length; _i++) { - args[_i] = arguments[_i]; - } - var delegate = immediateProvider.delegate; - return ((delegate === null || delegate === void 0 ? void 0 : delegate.setImmediate) || setImmediate).apply(void 0, __spreadArray([], __read(args))); - }, - clearImmediate: function(handle3) { - var delegate = immediateProvider.delegate; - return ((delegate === null || delegate === void 0 ? void 0 : delegate.clearImmediate) || clearImmediate)(handle3); - }, - delegate: void 0 - }; - } -}); - -// node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/scheduler/AsapAction.js -var AsapAction; -var init_AsapAction = __esm({ - "node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/scheduler/AsapAction.js"() { - init_tslib_es6(); - init_AsyncAction(); - init_immediateProvider(); - AsapAction = (function(_super) { - __extends(AsapAction2, _super); - function AsapAction2(scheduler, work) { - var _this = _super.call(this, scheduler, work) || this; - _this.scheduler = scheduler; - _this.work = work; - return _this; - } - AsapAction2.prototype.requestAsyncId = function(scheduler, id, delay2) { - if (delay2 === void 0) { - delay2 = 0; - } - if (delay2 !== null && delay2 > 0) { - return _super.prototype.requestAsyncId.call(this, scheduler, id, delay2); - } - scheduler.actions.push(this); - return scheduler._scheduled || (scheduler._scheduled = immediateProvider.setImmediate(scheduler.flush.bind(scheduler, void 0))); - }; - AsapAction2.prototype.recycleAsyncId = function(scheduler, id, delay2) { - var _a12; - if (delay2 === void 0) { - delay2 = 0; - } - if (delay2 != null ? delay2 > 0 : this.delay > 0) { - return _super.prototype.recycleAsyncId.call(this, scheduler, id, delay2); - } - var actions = scheduler.actions; - if (id != null && ((_a12 = actions[actions.length - 1]) === null || _a12 === void 0 ? void 0 : _a12.id) !== id) { - immediateProvider.clearImmediate(id); - if (scheduler._scheduled === id) { - scheduler._scheduled = void 0; - } - } - return void 0; - }; - return AsapAction2; - })(AsyncAction); - } -}); - -// node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/Scheduler.js -var Scheduler; -var init_Scheduler = __esm({ - "node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/Scheduler.js"() { - init_dateTimestampProvider(); - Scheduler = (function() { - function Scheduler2(schedulerActionCtor, now2) { - if (now2 === void 0) { - now2 = Scheduler2.now; - } - this.schedulerActionCtor = schedulerActionCtor; - this.now = now2; - } - Scheduler2.prototype.schedule = function(work, delay2, state) { - if (delay2 === void 0) { - delay2 = 0; - } - return new this.schedulerActionCtor(this, work).schedule(state, delay2); - }; - Scheduler2.now = dateTimestampProvider.now; - return Scheduler2; - })(); - } -}); - -// node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/scheduler/AsyncScheduler.js -var AsyncScheduler; -var init_AsyncScheduler = __esm({ - "node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/scheduler/AsyncScheduler.js"() { - init_tslib_es6(); - init_Scheduler(); - AsyncScheduler = (function(_super) { - __extends(AsyncScheduler2, _super); - function AsyncScheduler2(SchedulerAction, now2) { - if (now2 === void 0) { - now2 = Scheduler.now; - } - var _this = _super.call(this, SchedulerAction, now2) || this; - _this.actions = []; - _this._active = false; - return _this; - } - AsyncScheduler2.prototype.flush = function(action) { - var actions = this.actions; - if (this._active) { - actions.push(action); - return; - } - var error; - this._active = true; - do { - if (error = action.execute(action.state, action.delay)) { - break; - } - } while (action = actions.shift()); - this._active = false; - if (error) { - while (action = actions.shift()) { - action.unsubscribe(); - } - throw error; - } - }; - return AsyncScheduler2; - })(Scheduler); - } -}); - -// node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/scheduler/AsapScheduler.js -var AsapScheduler; -var init_AsapScheduler = __esm({ - "node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/scheduler/AsapScheduler.js"() { - init_tslib_es6(); - init_AsyncScheduler(); - AsapScheduler = (function(_super) { - __extends(AsapScheduler2, _super); - function AsapScheduler2() { - return _super !== null && _super.apply(this, arguments) || this; - } - AsapScheduler2.prototype.flush = function(action) { - this._active = true; - var flushId = this._scheduled; - this._scheduled = void 0; - var actions = this.actions; - var error; - action = action || actions.shift(); - do { - if (error = action.execute(action.state, action.delay)) { - break; - } - } while ((action = actions[0]) && action.id === flushId && actions.shift()); - this._active = false; - if (error) { - while ((action = actions[0]) && action.id === flushId && actions.shift()) { - action.unsubscribe(); - } - throw error; - } - }; - return AsapScheduler2; - })(AsyncScheduler); - } -}); - -// node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/scheduler/asap.js -var asapScheduler, asap; -var init_asap = __esm({ - "node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/scheduler/asap.js"() { - init_AsapAction(); - init_AsapScheduler(); - asapScheduler = new AsapScheduler(AsapAction); - asap = asapScheduler; - } -}); - -// node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/scheduler/async.js -var asyncScheduler, async; -var init_async = __esm({ - "node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/scheduler/async.js"() { - init_AsyncAction(); - init_AsyncScheduler(); - asyncScheduler = new AsyncScheduler(AsyncAction); - async = asyncScheduler; - } -}); - -// node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/scheduler/QueueAction.js -var QueueAction; -var init_QueueAction = __esm({ - "node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/scheduler/QueueAction.js"() { - init_tslib_es6(); - init_AsyncAction(); - QueueAction = (function(_super) { - __extends(QueueAction2, _super); - function QueueAction2(scheduler, work) { - var _this = _super.call(this, scheduler, work) || this; - _this.scheduler = scheduler; - _this.work = work; - return _this; - } - QueueAction2.prototype.schedule = function(state, delay2) { - if (delay2 === void 0) { - delay2 = 0; - } - if (delay2 > 0) { - return _super.prototype.schedule.call(this, state, delay2); - } - this.delay = delay2; - this.state = state; - this.scheduler.flush(this); - return this; - }; - QueueAction2.prototype.execute = function(state, delay2) { - return delay2 > 0 || this.closed ? _super.prototype.execute.call(this, state, delay2) : this._execute(state, delay2); - }; - QueueAction2.prototype.requestAsyncId = function(scheduler, id, delay2) { - if (delay2 === void 0) { - delay2 = 0; - } - if (delay2 != null && delay2 > 0 || delay2 == null && this.delay > 0) { - return _super.prototype.requestAsyncId.call(this, scheduler, id, delay2); - } - scheduler.flush(this); - return 0; - }; - return QueueAction2; - })(AsyncAction); - } -}); - -// node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/scheduler/QueueScheduler.js -var QueueScheduler; -var init_QueueScheduler = __esm({ - "node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/scheduler/QueueScheduler.js"() { - init_tslib_es6(); - init_AsyncScheduler(); - QueueScheduler = (function(_super) { - __extends(QueueScheduler2, _super); - function QueueScheduler2() { - return _super !== null && _super.apply(this, arguments) || this; - } - return QueueScheduler2; - })(AsyncScheduler); - } -}); - -// node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/scheduler/queue.js -var queueScheduler, queue; -var init_queue = __esm({ - "node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/scheduler/queue.js"() { - init_QueueAction(); - init_QueueScheduler(); - queueScheduler = new QueueScheduler(QueueAction); - queue = queueScheduler; - } -}); - -// node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/scheduler/AnimationFrameAction.js -var AnimationFrameAction; -var init_AnimationFrameAction = __esm({ - "node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/scheduler/AnimationFrameAction.js"() { - init_tslib_es6(); - init_AsyncAction(); - init_animationFrameProvider(); - AnimationFrameAction = (function(_super) { - __extends(AnimationFrameAction2, _super); - function AnimationFrameAction2(scheduler, work) { - var _this = _super.call(this, scheduler, work) || this; - _this.scheduler = scheduler; - _this.work = work; - return _this; - } - AnimationFrameAction2.prototype.requestAsyncId = function(scheduler, id, delay2) { - if (delay2 === void 0) { - delay2 = 0; - } - if (delay2 !== null && delay2 > 0) { - return _super.prototype.requestAsyncId.call(this, scheduler, id, delay2); - } - scheduler.actions.push(this); - return scheduler._scheduled || (scheduler._scheduled = animationFrameProvider.requestAnimationFrame(function() { - return scheduler.flush(void 0); - })); - }; - AnimationFrameAction2.prototype.recycleAsyncId = function(scheduler, id, delay2) { - var _a12; - if (delay2 === void 0) { - delay2 = 0; - } - if (delay2 != null ? delay2 > 0 : this.delay > 0) { - return _super.prototype.recycleAsyncId.call(this, scheduler, id, delay2); - } - var actions = scheduler.actions; - if (id != null && id === scheduler._scheduled && ((_a12 = actions[actions.length - 1]) === null || _a12 === void 0 ? void 0 : _a12.id) !== id) { - animationFrameProvider.cancelAnimationFrame(id); - scheduler._scheduled = void 0; - } - return void 0; - }; - return AnimationFrameAction2; - })(AsyncAction); - } -}); - -// node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/scheduler/AnimationFrameScheduler.js -var AnimationFrameScheduler; -var init_AnimationFrameScheduler = __esm({ - "node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/scheduler/AnimationFrameScheduler.js"() { - init_tslib_es6(); - init_AsyncScheduler(); - AnimationFrameScheduler = (function(_super) { - __extends(AnimationFrameScheduler2, _super); - function AnimationFrameScheduler2() { - return _super !== null && _super.apply(this, arguments) || this; - } - AnimationFrameScheduler2.prototype.flush = function(action) { - this._active = true; - var flushId; - if (action) { - flushId = action.id; - } else { - flushId = this._scheduled; - this._scheduled = void 0; - } - var actions = this.actions; - var error; - action = action || actions.shift(); - do { - if (error = action.execute(action.state, action.delay)) { - break; - } - } while ((action = actions[0]) && action.id === flushId && actions.shift()); - this._active = false; - if (error) { - while ((action = actions[0]) && action.id === flushId && actions.shift()) { - action.unsubscribe(); - } - throw error; - } - }; - return AnimationFrameScheduler2; - })(AsyncScheduler); - } -}); - -// node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/scheduler/animationFrame.js -var animationFrameScheduler, animationFrame; -var init_animationFrame = __esm({ - "node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/scheduler/animationFrame.js"() { - init_AnimationFrameAction(); - init_AnimationFrameScheduler(); - animationFrameScheduler = new AnimationFrameScheduler(AnimationFrameAction); - animationFrame = animationFrameScheduler; - } -}); - -// node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/scheduler/VirtualTimeScheduler.js -var VirtualTimeScheduler, VirtualAction; -var init_VirtualTimeScheduler = __esm({ - "node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/scheduler/VirtualTimeScheduler.js"() { - init_tslib_es6(); - init_AsyncAction(); - init_Subscription(); - init_AsyncScheduler(); - VirtualTimeScheduler = (function(_super) { - __extends(VirtualTimeScheduler2, _super); - function VirtualTimeScheduler2(schedulerActionCtor, maxFrames) { - if (schedulerActionCtor === void 0) { - schedulerActionCtor = VirtualAction; - } - if (maxFrames === void 0) { - maxFrames = Infinity; - } - var _this = _super.call(this, schedulerActionCtor, function() { - return _this.frame; - }) || this; - _this.maxFrames = maxFrames; - _this.frame = 0; - _this.index = -1; - return _this; - } - VirtualTimeScheduler2.prototype.flush = function() { - var _a12 = this, actions = _a12.actions, maxFrames = _a12.maxFrames; - var error; - var action; - while ((action = actions[0]) && action.delay <= maxFrames) { - actions.shift(); - this.frame = action.delay; - if (error = action.execute(action.state, action.delay)) { - break; - } - } - if (error) { - while (action = actions.shift()) { - action.unsubscribe(); - } - throw error; - } - }; - VirtualTimeScheduler2.frameTimeFactor = 10; - return VirtualTimeScheduler2; - })(AsyncScheduler); - VirtualAction = (function(_super) { - __extends(VirtualAction2, _super); - function VirtualAction2(scheduler, work, index2) { - if (index2 === void 0) { - index2 = scheduler.index += 1; - } - var _this = _super.call(this, scheduler, work) || this; - _this.scheduler = scheduler; - _this.work = work; - _this.index = index2; - _this.active = true; - _this.index = scheduler.index = index2; - return _this; - } - VirtualAction2.prototype.schedule = function(state, delay2) { - if (delay2 === void 0) { - delay2 = 0; - } - if (Number.isFinite(delay2)) { - if (!this.id) { - return _super.prototype.schedule.call(this, state, delay2); - } - this.active = false; - var action = new VirtualAction2(this.scheduler, this.work); - this.add(action); - return action.schedule(state, delay2); - } else { - return Subscription.EMPTY; - } - }; - VirtualAction2.prototype.requestAsyncId = function(scheduler, id, delay2) { - if (delay2 === void 0) { - delay2 = 0; - } - this.delay = scheduler.frame + delay2; - var actions = scheduler.actions; - actions.push(this); - actions.sort(VirtualAction2.sortActions); - return 1; - }; - VirtualAction2.prototype.recycleAsyncId = function(scheduler, id, delay2) { - if (delay2 === void 0) { - delay2 = 0; - } - return void 0; - }; - VirtualAction2.prototype._execute = function(state, delay2) { - if (this.active === true) { - return _super.prototype._execute.call(this, state, delay2); - } - }; - VirtualAction2.sortActions = function(a5, b5) { - if (a5.delay === b5.delay) { - if (a5.index === b5.index) { - return 0; - } else if (a5.index > b5.index) { - return 1; - } else { - return -1; - } - } else if (a5.delay > b5.delay) { - return 1; - } else { - return -1; - } - }; - return VirtualAction2; - })(AsyncAction); - } -}); - -// node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/observable/empty.js -function empty(scheduler) { - return scheduler ? emptyScheduled(scheduler) : EMPTY; -} -function emptyScheduled(scheduler) { - return new Observable(function(subscriber) { - return scheduler.schedule(function() { - return subscriber.complete(); - }); - }); -} -var EMPTY; -var init_empty = __esm({ - "node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/observable/empty.js"() { - init_Observable(); - EMPTY = new Observable(function(subscriber) { - return subscriber.complete(); - }); - } -}); - -// node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/util/isScheduler.js -function isScheduler(value2) { - return value2 && isFunction(value2.schedule); -} -var init_isScheduler = __esm({ - "node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/util/isScheduler.js"() { - init_isFunction(); - } -}); - -// node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/util/args.js -function last(arr) { - return arr[arr.length - 1]; -} -function popResultSelector(args) { - return isFunction(last(args)) ? args.pop() : void 0; -} -function popScheduler(args) { - return isScheduler(last(args)) ? args.pop() : void 0; -} -function popNumber(args, defaultValue) { - return typeof last(args) === "number" ? args.pop() : defaultValue; -} -var init_args = __esm({ - "node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/util/args.js"() { - init_isFunction(); - init_isScheduler(); - } -}); - -// node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/util/isArrayLike.js -var isArrayLike; -var init_isArrayLike = __esm({ - "node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/util/isArrayLike.js"() { - isArrayLike = (function(x4) { - return x4 && typeof x4.length === "number" && typeof x4 !== "function"; - }); - } -}); - -// node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/util/isPromise.js -function isPromise(value2) { - return isFunction(value2 === null || value2 === void 0 ? void 0 : value2.then); -} -var init_isPromise = __esm({ - "node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/util/isPromise.js"() { - init_isFunction(); - } -}); - -// node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/util/isInteropObservable.js -function isInteropObservable(input) { - return isFunction(input[observable]); -} -var init_isInteropObservable = __esm({ - "node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/util/isInteropObservable.js"() { - init_observable(); - init_isFunction(); - } -}); - -// node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/util/isAsyncIterable.js -function isAsyncIterable(obj) { - return Symbol.asyncIterator && isFunction(obj === null || obj === void 0 ? void 0 : obj[Symbol.asyncIterator]); -} -var init_isAsyncIterable = __esm({ - "node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/util/isAsyncIterable.js"() { - init_isFunction(); - } -}); - -// node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/util/throwUnobservableError.js -function createInvalidObservableTypeError(input) { - return new TypeError("You provided " + (input !== null && typeof input === "object" ? "an invalid object" : "'" + input + "'") + " where a stream was expected. You can provide an Observable, Promise, ReadableStream, Array, AsyncIterable, or Iterable."); -} -var init_throwUnobservableError = __esm({ - "node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/util/throwUnobservableError.js"() { - } -}); - -// node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/symbol/iterator.js -function getSymbolIterator() { - if (typeof Symbol !== "function" || !Symbol.iterator) { - return "@@iterator"; - } - return Symbol.iterator; -} -var iterator; -var init_iterator = __esm({ - "node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/symbol/iterator.js"() { - iterator = getSymbolIterator(); - } -}); - -// node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/util/isIterable.js -function isIterable(input) { - return isFunction(input === null || input === void 0 ? void 0 : input[iterator]); -} -var init_isIterable = __esm({ - "node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/util/isIterable.js"() { - init_iterator(); - init_isFunction(); - } -}); - -// node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/util/isReadableStreamLike.js -function readableStreamLikeToAsyncGenerator(readableStream) { - return __asyncGenerator(this, arguments, function readableStreamLikeToAsyncGenerator_1() { - var reader, _a12, value2, done; - return __generator(this, function(_b) { - switch (_b.label) { - case 0: - reader = readableStream.getReader(); - _b.label = 1; - case 1: - _b.trys.push([1, , 9, 10]); - _b.label = 2; - case 2: - if (false) return [3, 8]; - return [4, __await(reader.read())]; - case 3: - _a12 = _b.sent(), value2 = _a12.value, done = _a12.done; - if (!done) return [3, 5]; - return [4, __await(void 0)]; - case 4: - return [2, _b.sent()]; - case 5: - return [4, __await(value2)]; - case 6: - return [4, _b.sent()]; - case 7: - _b.sent(); - return [3, 2]; - case 8: - return [3, 10]; - case 9: - reader.releaseLock(); - return [7]; - case 10: - return [2]; - } - }); - }); -} -function isReadableStreamLike(obj) { - return isFunction(obj === null || obj === void 0 ? void 0 : obj.getReader); -} -var init_isReadableStreamLike = __esm({ - "node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/util/isReadableStreamLike.js"() { - init_tslib_es6(); - init_isFunction(); - } -}); - -// node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/observable/innerFrom.js -function innerFrom(input) { - if (input instanceof Observable) { - return input; - } - if (input != null) { - if (isInteropObservable(input)) { - return fromInteropObservable(input); - } - if (isArrayLike(input)) { - return fromArrayLike(input); - } - if (isPromise(input)) { - return fromPromise(input); - } - if (isAsyncIterable(input)) { - return fromAsyncIterable(input); - } - if (isIterable(input)) { - return fromIterable(input); - } - if (isReadableStreamLike(input)) { - return fromReadableStreamLike(input); - } - } - throw createInvalidObservableTypeError(input); -} -function fromInteropObservable(obj) { - return new Observable(function(subscriber) { - var obs = obj[observable](); - if (isFunction(obs.subscribe)) { - return obs.subscribe(subscriber); - } - throw new TypeError("Provided object does not correctly implement Symbol.observable"); - }); -} -function fromArrayLike(array) { - return new Observable(function(subscriber) { - for (var i11 = 0; i11 < array.length && !subscriber.closed; i11++) { - subscriber.next(array[i11]); - } - subscriber.complete(); - }); -} -function fromPromise(promise) { - return new Observable(function(subscriber) { - promise.then(function(value2) { - if (!subscriber.closed) { - subscriber.next(value2); - subscriber.complete(); - } - }, function(err) { - return subscriber.error(err); - }).then(null, reportUnhandledError); - }); -} -function fromIterable(iterable) { - return new Observable(function(subscriber) { - var e_1, _a12; - try { - for (var iterable_1 = __values(iterable), iterable_1_1 = iterable_1.next(); !iterable_1_1.done; iterable_1_1 = iterable_1.next()) { - var value2 = iterable_1_1.value; - subscriber.next(value2); - if (subscriber.closed) { - return; - } - } - } catch (e_1_1) { - e_1 = { error: e_1_1 }; - } finally { - try { - if (iterable_1_1 && !iterable_1_1.done && (_a12 = iterable_1.return)) _a12.call(iterable_1); - } finally { - if (e_1) throw e_1.error; - } - } - subscriber.complete(); - }); -} -function fromAsyncIterable(asyncIterable) { - return new Observable(function(subscriber) { - process2(asyncIterable, subscriber).catch(function(err) { - return subscriber.error(err); - }); - }); -} -function fromReadableStreamLike(readableStream) { - return fromAsyncIterable(readableStreamLikeToAsyncGenerator(readableStream)); -} -function process2(asyncIterable, subscriber) { - var asyncIterable_1, asyncIterable_1_1; - var e_2, _a12; - return __awaiter(this, void 0, void 0, function() { - var value2, e_2_1; - return __generator(this, function(_b) { - switch (_b.label) { - case 0: - _b.trys.push([0, 5, 6, 11]); - asyncIterable_1 = __asyncValues(asyncIterable); - _b.label = 1; - case 1: - return [4, asyncIterable_1.next()]; - case 2: - if (!(asyncIterable_1_1 = _b.sent(), !asyncIterable_1_1.done)) return [3, 4]; - value2 = asyncIterable_1_1.value; - subscriber.next(value2); - if (subscriber.closed) { - return [2]; - } - _b.label = 3; - case 3: - return [3, 1]; - case 4: - return [3, 11]; - case 5: - e_2_1 = _b.sent(); - e_2 = { error: e_2_1 }; - return [3, 11]; - case 6: - _b.trys.push([6, , 9, 10]); - if (!(asyncIterable_1_1 && !asyncIterable_1_1.done && (_a12 = asyncIterable_1.return))) return [3, 8]; - return [4, _a12.call(asyncIterable_1)]; - case 7: - _b.sent(); - _b.label = 8; - case 8: - return [3, 10]; - case 9: - if (e_2) throw e_2.error; - return [7]; - case 10: - return [7]; - case 11: - subscriber.complete(); - return [2]; - } - }); - }); -} -var init_innerFrom = __esm({ - "node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/observable/innerFrom.js"() { - init_tslib_es6(); - init_isArrayLike(); - init_isPromise(); - init_Observable(); - init_isInteropObservable(); - init_isAsyncIterable(); - init_throwUnobservableError(); - init_isIterable(); - init_isReadableStreamLike(); - init_isFunction(); - init_reportUnhandledError(); - init_observable(); - } -}); - -// node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/util/executeSchedule.js -function executeSchedule(parentSubscription, scheduler, work, delay2, repeat3) { - if (delay2 === void 0) { - delay2 = 0; - } - if (repeat3 === void 0) { - repeat3 = false; - } - var scheduleSubscription = scheduler.schedule(function() { - work(); - if (repeat3) { - parentSubscription.add(this.schedule(null, delay2)); - } else { - this.unsubscribe(); - } - }, delay2); - parentSubscription.add(scheduleSubscription); - if (!repeat3) { - return scheduleSubscription; - } -} -var init_executeSchedule = __esm({ - "node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/util/executeSchedule.js"() { - } -}); - -// node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/operators/observeOn.js -function observeOn(scheduler, delay2) { - if (delay2 === void 0) { - delay2 = 0; - } - return operate(function(source, subscriber) { - source.subscribe(createOperatorSubscriber(subscriber, function(value2) { - return executeSchedule(subscriber, scheduler, function() { - return subscriber.next(value2); - }, delay2); - }, function() { - return executeSchedule(subscriber, scheduler, function() { - return subscriber.complete(); - }, delay2); - }, function(err) { - return executeSchedule(subscriber, scheduler, function() { - return subscriber.error(err); - }, delay2); - })); - }); -} -var init_observeOn = __esm({ - "node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/operators/observeOn.js"() { - init_executeSchedule(); - init_lift(); - init_OperatorSubscriber(); - } -}); - -// node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/operators/subscribeOn.js -function subscribeOn(scheduler, delay2) { - if (delay2 === void 0) { - delay2 = 0; - } - return operate(function(source, subscriber) { - subscriber.add(scheduler.schedule(function() { - return source.subscribe(subscriber); - }, delay2)); - }); -} -var init_subscribeOn = __esm({ - "node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/operators/subscribeOn.js"() { - init_lift(); - } -}); - -// node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/scheduled/scheduleObservable.js -function scheduleObservable(input, scheduler) { - return innerFrom(input).pipe(subscribeOn(scheduler), observeOn(scheduler)); -} -var init_scheduleObservable = __esm({ - "node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/scheduled/scheduleObservable.js"() { - init_innerFrom(); - init_observeOn(); - init_subscribeOn(); - } -}); - -// node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/scheduled/schedulePromise.js -function schedulePromise(input, scheduler) { - return innerFrom(input).pipe(subscribeOn(scheduler), observeOn(scheduler)); -} -var init_schedulePromise = __esm({ - "node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/scheduled/schedulePromise.js"() { - init_innerFrom(); - init_observeOn(); - init_subscribeOn(); - } -}); - -// node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/scheduled/scheduleArray.js -function scheduleArray(input, scheduler) { - return new Observable(function(subscriber) { - var i11 = 0; - return scheduler.schedule(function() { - if (i11 === input.length) { - subscriber.complete(); - } else { - subscriber.next(input[i11++]); - if (!subscriber.closed) { - this.schedule(); - } - } - }); - }); -} -var init_scheduleArray = __esm({ - "node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/scheduled/scheduleArray.js"() { - init_Observable(); - } -}); - -// node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/scheduled/scheduleIterable.js -function scheduleIterable(input, scheduler) { - return new Observable(function(subscriber) { - var iterator2; - executeSchedule(subscriber, scheduler, function() { - iterator2 = input[iterator](); - executeSchedule(subscriber, scheduler, function() { - var _a12; - var value2; - var done; - try { - _a12 = iterator2.next(), value2 = _a12.value, done = _a12.done; - } catch (err) { - subscriber.error(err); - return; - } - if (done) { - subscriber.complete(); - } else { - subscriber.next(value2); - } - }, 0, true); - }); - return function() { - return isFunction(iterator2 === null || iterator2 === void 0 ? void 0 : iterator2.return) && iterator2.return(); - }; - }); -} -var init_scheduleIterable = __esm({ - "node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/scheduled/scheduleIterable.js"() { - init_Observable(); - init_iterator(); - init_isFunction(); - init_executeSchedule(); - } -}); - -// node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/scheduled/scheduleAsyncIterable.js -function scheduleAsyncIterable(input, scheduler) { - if (!input) { - throw new Error("Iterable cannot be null"); - } - return new Observable(function(subscriber) { - executeSchedule(subscriber, scheduler, function() { - var iterator2 = input[Symbol.asyncIterator](); - executeSchedule(subscriber, scheduler, function() { - iterator2.next().then(function(result) { - if (result.done) { - subscriber.complete(); - } else { - subscriber.next(result.value); - } - }); - }, 0, true); - }); - }); -} -var init_scheduleAsyncIterable = __esm({ - "node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/scheduled/scheduleAsyncIterable.js"() { - init_Observable(); - init_executeSchedule(); - } -}); - -// node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/scheduled/scheduleReadableStreamLike.js -function scheduleReadableStreamLike(input, scheduler) { - return scheduleAsyncIterable(readableStreamLikeToAsyncGenerator(input), scheduler); -} -var init_scheduleReadableStreamLike = __esm({ - "node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/scheduled/scheduleReadableStreamLike.js"() { - init_scheduleAsyncIterable(); - init_isReadableStreamLike(); - } -}); - -// node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/scheduled/scheduled.js -function scheduled(input, scheduler) { - if (input != null) { - if (isInteropObservable(input)) { - return scheduleObservable(input, scheduler); - } - if (isArrayLike(input)) { - return scheduleArray(input, scheduler); - } - if (isPromise(input)) { - return schedulePromise(input, scheduler); - } - if (isAsyncIterable(input)) { - return scheduleAsyncIterable(input, scheduler); - } - if (isIterable(input)) { - return scheduleIterable(input, scheduler); - } - if (isReadableStreamLike(input)) { - return scheduleReadableStreamLike(input, scheduler); - } - } - throw createInvalidObservableTypeError(input); -} -var init_scheduled = __esm({ - "node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/scheduled/scheduled.js"() { - init_scheduleObservable(); - init_schedulePromise(); - init_scheduleArray(); - init_scheduleIterable(); - init_scheduleAsyncIterable(); - init_isInteropObservable(); - init_isPromise(); - init_isArrayLike(); - init_isIterable(); - init_isAsyncIterable(); - init_throwUnobservableError(); - init_isReadableStreamLike(); - init_scheduleReadableStreamLike(); - } -}); - -// node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/observable/from.js -function from(input, scheduler) { - return scheduler ? scheduled(input, scheduler) : innerFrom(input); -} -var init_from = __esm({ - "node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/observable/from.js"() { - init_scheduled(); - init_innerFrom(); - } -}); - -// node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/observable/of.js -function of() { - var args = []; - for (var _i = 0; _i < arguments.length; _i++) { - args[_i] = arguments[_i]; - } - var scheduler = popScheduler(args); - return from(args, scheduler); -} -var init_of = __esm({ - "node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/observable/of.js"() { - init_args(); - init_from(); - } -}); - -// node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/observable/throwError.js -function throwError(errorOrErrorFactory, scheduler) { - var errorFactory = isFunction(errorOrErrorFactory) ? errorOrErrorFactory : function() { - return errorOrErrorFactory; - }; - var init = function(subscriber) { - return subscriber.error(errorFactory()); - }; - return new Observable(scheduler ? function(subscriber) { - return scheduler.schedule(init, 0, subscriber); - } : init); -} -var init_throwError = __esm({ - "node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/observable/throwError.js"() { - init_Observable(); - init_isFunction(); - } -}); - -// node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/Notification.js -function observeNotification(notification, observer) { - var _a12, _b, _c; - var _d = notification, kind = _d.kind, value2 = _d.value, error = _d.error; - if (typeof kind !== "string") { - throw new TypeError('Invalid notification, missing "kind"'); - } - kind === "N" ? (_a12 = observer.next) === null || _a12 === void 0 ? void 0 : _a12.call(observer, value2) : kind === "E" ? (_b = observer.error) === null || _b === void 0 ? void 0 : _b.call(observer, error) : (_c = observer.complete) === null || _c === void 0 ? void 0 : _c.call(observer); -} -var NotificationKind, Notification; -var init_Notification = __esm({ - "node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/Notification.js"() { - init_empty(); - init_of(); - init_throwError(); - init_isFunction(); - (function(NotificationKind2) { - NotificationKind2["NEXT"] = "N"; - NotificationKind2["ERROR"] = "E"; - NotificationKind2["COMPLETE"] = "C"; - })(NotificationKind || (NotificationKind = {})); - Notification = (function() { - function Notification2(kind, value2, error) { - this.kind = kind; - this.value = value2; - this.error = error; - this.hasValue = kind === "N"; - } - Notification2.prototype.observe = function(observer) { - return observeNotification(this, observer); - }; - Notification2.prototype.do = function(nextHandler, errorHandler, completeHandler) { - var _a12 = this, kind = _a12.kind, value2 = _a12.value, error = _a12.error; - return kind === "N" ? nextHandler === null || nextHandler === void 0 ? void 0 : nextHandler(value2) : kind === "E" ? errorHandler === null || errorHandler === void 0 ? void 0 : errorHandler(error) : completeHandler === null || completeHandler === void 0 ? void 0 : completeHandler(); - }; - Notification2.prototype.accept = function(nextOrObserver, error, complete) { - var _a12; - return isFunction((_a12 = nextOrObserver) === null || _a12 === void 0 ? void 0 : _a12.next) ? this.observe(nextOrObserver) : this.do(nextOrObserver, error, complete); - }; - Notification2.prototype.toObservable = function() { - var _a12 = this, kind = _a12.kind, value2 = _a12.value, error = _a12.error; - var result = kind === "N" ? of(value2) : kind === "E" ? throwError(function() { - return error; - }) : kind === "C" ? EMPTY : 0; - if (!result) { - throw new TypeError("Unexpected notification kind " + kind); - } - return result; - }; - Notification2.createNext = function(value2) { - return new Notification2("N", value2); - }; - Notification2.createError = function(err) { - return new Notification2("E", void 0, err); - }; - Notification2.createComplete = function() { - return Notification2.completeNotification; - }; - Notification2.completeNotification = new Notification2("C"); - return Notification2; - })(); - } -}); - -// node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/util/isObservable.js -var init_isObservable = __esm({ - "node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/util/isObservable.js"() { - } -}); - -// node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/util/EmptyError.js -var EmptyError; -var init_EmptyError = __esm({ - "node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/util/EmptyError.js"() { - init_createErrorClass(); - EmptyError = createErrorClass(function(_super) { - return function EmptyErrorImpl() { - _super(this); - this.name = "EmptyError"; - this.message = "no elements in sequence"; - }; - }); - } -}); - -// node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/lastValueFrom.js -var init_lastValueFrom = __esm({ - "node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/lastValueFrom.js"() { - } -}); - -// node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/firstValueFrom.js -var init_firstValueFrom = __esm({ - "node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/firstValueFrom.js"() { - } -}); - -// node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/util/ArgumentOutOfRangeError.js -var ArgumentOutOfRangeError; -var init_ArgumentOutOfRangeError = __esm({ - "node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/util/ArgumentOutOfRangeError.js"() { - init_createErrorClass(); - ArgumentOutOfRangeError = createErrorClass(function(_super) { - return function ArgumentOutOfRangeErrorImpl() { - _super(this); - this.name = "ArgumentOutOfRangeError"; - this.message = "argument out of range"; - }; - }); - } -}); - -// node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/util/NotFoundError.js -var NotFoundError; -var init_NotFoundError = __esm({ - "node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/util/NotFoundError.js"() { - init_createErrorClass(); - NotFoundError = createErrorClass(function(_super) { - return function NotFoundErrorImpl(message2) { - _super(this); - this.name = "NotFoundError"; - this.message = message2; - }; - }); - } -}); - -// node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/util/SequenceError.js -var SequenceError; -var init_SequenceError = __esm({ - "node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/util/SequenceError.js"() { - init_createErrorClass(); - SequenceError = createErrorClass(function(_super) { - return function SequenceErrorImpl(message2) { - _super(this); - this.name = "SequenceError"; - this.message = message2; - }; - }); - } -}); - -// node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/util/isDate.js -function isValidDate(value2) { - return value2 instanceof Date && !isNaN(value2); -} -var init_isDate = __esm({ - "node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/util/isDate.js"() { - } -}); - -// node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/operators/timeout.js -function timeout(config3, schedulerArg) { - var _a12 = isValidDate(config3) ? { first: config3 } : typeof config3 === "number" ? { each: config3 } : config3, first2 = _a12.first, each = _a12.each, _b = _a12.with, _with = _b === void 0 ? timeoutErrorFactory : _b, _c = _a12.scheduler, scheduler = _c === void 0 ? schedulerArg !== null && schedulerArg !== void 0 ? schedulerArg : asyncScheduler : _c, _d = _a12.meta, meta = _d === void 0 ? null : _d; - if (first2 == null && each == null) { - throw new TypeError("No timeout provided."); - } - return operate(function(source, subscriber) { - var originalSourceSubscription; - var timerSubscription; - var lastValue = null; - var seen = 0; - var startTimer = function(delay2) { - timerSubscription = executeSchedule(subscriber, scheduler, function() { - try { - originalSourceSubscription.unsubscribe(); - innerFrom(_with({ - meta, - lastValue, - seen - })).subscribe(subscriber); - } catch (err) { - subscriber.error(err); - } - }, delay2); - }; - originalSourceSubscription = source.subscribe(createOperatorSubscriber(subscriber, function(value2) { - timerSubscription === null || timerSubscription === void 0 ? void 0 : timerSubscription.unsubscribe(); - seen++; - subscriber.next(lastValue = value2); - each > 0 && startTimer(each); - }, void 0, void 0, function() { - if (!(timerSubscription === null || timerSubscription === void 0 ? void 0 : timerSubscription.closed)) { - timerSubscription === null || timerSubscription === void 0 ? void 0 : timerSubscription.unsubscribe(); - } - lastValue = null; - })); - !seen && startTimer(first2 != null ? typeof first2 === "number" ? first2 : +first2 - scheduler.now() : each); - }); -} -function timeoutErrorFactory(info) { - throw new TimeoutError(info); -} -var TimeoutError; -var init_timeout = __esm({ - "node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/operators/timeout.js"() { - init_async(); - init_isDate(); - init_lift(); - init_innerFrom(); - init_createErrorClass(); - init_OperatorSubscriber(); - init_executeSchedule(); - TimeoutError = createErrorClass(function(_super) { - return function TimeoutErrorImpl(info) { - if (info === void 0) { - info = null; - } - _super(this); - this.message = "Timeout has occurred"; - this.name = "TimeoutError"; - this.info = info; - }; - }); - } -}); - -// node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/operators/map.js -function map2(project, thisArg) { - return operate(function(source, subscriber) { - var index2 = 0; - source.subscribe(createOperatorSubscriber(subscriber, function(value2) { - subscriber.next(project.call(thisArg, value2, index2++)); - })); - }); -} -var init_map = __esm({ - "node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/operators/map.js"() { - init_lift(); - init_OperatorSubscriber(); - } -}); - -// node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/util/mapOneOrManyArgs.js -function callOrApply(fn, args) { - return isArray(args) ? fn.apply(void 0, __spreadArray([], __read(args))) : fn(args); -} -function mapOneOrManyArgs(fn) { - return map2(function(args) { - return callOrApply(fn, args); - }); -} -var isArray; -var init_mapOneOrManyArgs = __esm({ - "node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/util/mapOneOrManyArgs.js"() { - init_tslib_es6(); - init_map(); - isArray = Array.isArray; - } -}); - -// node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/observable/bindCallback.js -var init_bindCallback = __esm({ - "node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/observable/bindCallback.js"() { - } -}); - -// node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/observable/bindNodeCallback.js -var init_bindNodeCallback = __esm({ - "node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/observable/bindNodeCallback.js"() { - } -}); - -// node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/observable/combineLatest.js -var init_combineLatest = __esm({ - "node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/observable/combineLatest.js"() { - } -}); - -// node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/operators/mergeInternals.js -function mergeInternals(source, subscriber, project, concurrent, onBeforeNext, expand2, innerSubScheduler, additionalFinalizer) { - var buffer2 = []; - var active = 0; - var index2 = 0; - var isComplete = false; - var checkComplete = function() { - if (isComplete && !buffer2.length && !active) { - subscriber.complete(); - } - }; - var outerNext = function(value2) { - return active < concurrent ? doInnerSub(value2) : buffer2.push(value2); - }; - var doInnerSub = function(value2) { - expand2 && subscriber.next(value2); - active++; - var innerComplete = false; - innerFrom(project(value2, index2++)).subscribe(createOperatorSubscriber(subscriber, function(innerValue) { - onBeforeNext === null || onBeforeNext === void 0 ? void 0 : onBeforeNext(innerValue); - if (expand2) { - outerNext(innerValue); - } else { - subscriber.next(innerValue); - } - }, function() { - innerComplete = true; - }, void 0, function() { - if (innerComplete) { - try { - active--; - var _loop_1 = function() { - var bufferedValue = buffer2.shift(); - if (innerSubScheduler) { - executeSchedule(subscriber, innerSubScheduler, function() { - return doInnerSub(bufferedValue); - }); - } else { - doInnerSub(bufferedValue); - } - }; - while (buffer2.length && active < concurrent) { - _loop_1(); - } - checkComplete(); - } catch (err) { - subscriber.error(err); - } - } - })); - }; - source.subscribe(createOperatorSubscriber(subscriber, outerNext, function() { - isComplete = true; - checkComplete(); - })); - return function() { - additionalFinalizer === null || additionalFinalizer === void 0 ? void 0 : additionalFinalizer(); - }; -} -var init_mergeInternals = __esm({ - "node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/operators/mergeInternals.js"() { - init_innerFrom(); - init_executeSchedule(); - init_OperatorSubscriber(); - } -}); - -// node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/operators/mergeMap.js -function mergeMap(project, resultSelector, concurrent) { - if (concurrent === void 0) { - concurrent = Infinity; - } - if (isFunction(resultSelector)) { - return mergeMap(function(a5, i11) { - return map2(function(b5, ii) { - return resultSelector(a5, b5, i11, ii); - })(innerFrom(project(a5, i11))); - }, concurrent); - } else if (typeof resultSelector === "number") { - concurrent = resultSelector; - } - return operate(function(source, subscriber) { - return mergeInternals(source, subscriber, project, concurrent); - }); -} -var init_mergeMap = __esm({ - "node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/operators/mergeMap.js"() { - init_map(); - init_innerFrom(); - init_lift(); - init_mergeInternals(); - init_isFunction(); - } -}); - -// node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/operators/mergeAll.js -function mergeAll(concurrent) { - if (concurrent === void 0) { - concurrent = Infinity; - } - return mergeMap(identity, concurrent); -} -var init_mergeAll = __esm({ - "node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/operators/mergeAll.js"() { - init_mergeMap(); - init_identity(); - } -}); - -// node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/operators/concatAll.js -function concatAll() { - return mergeAll(1); -} -var init_concatAll = __esm({ - "node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/operators/concatAll.js"() { - init_mergeAll(); - } -}); - -// node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/observable/concat.js -function concat() { - var args = []; - for (var _i = 0; _i < arguments.length; _i++) { - args[_i] = arguments[_i]; - } - return concatAll()(from(args, popScheduler(args))); -} -var init_concat = __esm({ - "node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/observable/concat.js"() { - init_concatAll(); - init_args(); - init_from(); - } -}); - -// node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/observable/defer.js -var init_defer = __esm({ - "node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/observable/defer.js"() { - } -}); - -// node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/observable/connectable.js -var init_connectable = __esm({ - "node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/observable/connectable.js"() { - } -}); - -// node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/observable/forkJoin.js -var init_forkJoin = __esm({ - "node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/observable/forkJoin.js"() { - } -}); - -// node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/observable/fromEvent.js -function fromEvent(target, eventName, options, resultSelector) { - if (isFunction(options)) { - resultSelector = options; - options = void 0; - } - if (resultSelector) { - return fromEvent(target, eventName, options).pipe(mapOneOrManyArgs(resultSelector)); - } - var _a12 = __read(isEventTarget(target) ? eventTargetMethods.map(function(methodName) { - return function(handler2) { - return target[methodName](eventName, handler2, options); - }; - }) : isNodeStyleEventEmitter(target) ? nodeEventEmitterMethods.map(toCommonHandlerRegistry(target, eventName)) : isJQueryStyleEventEmitter(target) ? jqueryMethods.map(toCommonHandlerRegistry(target, eventName)) : [], 2), add3 = _a12[0], remove2 = _a12[1]; - if (!add3) { - if (isArrayLike(target)) { - return mergeMap(function(subTarget) { - return fromEvent(subTarget, eventName, options); - })(innerFrom(target)); - } - } - if (!add3) { - throw new TypeError("Invalid event target"); - } - return new Observable(function(subscriber) { - var handler2 = function() { - var args = []; - for (var _i = 0; _i < arguments.length; _i++) { - args[_i] = arguments[_i]; - } - return subscriber.next(1 < args.length ? args : args[0]); - }; - add3(handler2); - return function() { - return remove2(handler2); - }; - }); -} -function toCommonHandlerRegistry(target, eventName) { - return function(methodName) { - return function(handler2) { - return target[methodName](eventName, handler2); - }; - }; -} -function isNodeStyleEventEmitter(target) { - return isFunction(target.addListener) && isFunction(target.removeListener); -} -function isJQueryStyleEventEmitter(target) { - return isFunction(target.on) && isFunction(target.off); -} -function isEventTarget(target) { - return isFunction(target.addEventListener) && isFunction(target.removeEventListener); -} -var nodeEventEmitterMethods, eventTargetMethods, jqueryMethods; -var init_fromEvent = __esm({ - "node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/observable/fromEvent.js"() { - init_tslib_es6(); - init_innerFrom(); - init_Observable(); - init_mergeMap(); - init_isArrayLike(); - init_isFunction(); - init_mapOneOrManyArgs(); - nodeEventEmitterMethods = ["addListener", "removeListener"]; - eventTargetMethods = ["addEventListener", "removeEventListener"]; - jqueryMethods = ["on", "off"]; - } -}); - -// node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/observable/fromEventPattern.js -var init_fromEventPattern = __esm({ - "node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/observable/fromEventPattern.js"() { - } -}); - -// node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/observable/generate.js -var init_generate = __esm({ - "node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/observable/generate.js"() { - } -}); - -// node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/observable/iif.js -var init_iif = __esm({ - "node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/observable/iif.js"() { - } -}); - -// node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/observable/timer.js -function timer(dueTime, intervalOrScheduler, scheduler) { - if (dueTime === void 0) { - dueTime = 0; - } - if (scheduler === void 0) { - scheduler = async; - } - var intervalDuration = -1; - if (intervalOrScheduler != null) { - if (isScheduler(intervalOrScheduler)) { - scheduler = intervalOrScheduler; - } else { - intervalDuration = intervalOrScheduler; - } - } - return new Observable(function(subscriber) { - var due = isValidDate(dueTime) ? +dueTime - scheduler.now() : dueTime; - if (due < 0) { - due = 0; - } - var n12 = 0; - return scheduler.schedule(function() { - if (!subscriber.closed) { - subscriber.next(n12++); - if (0 <= intervalDuration) { - this.schedule(void 0, intervalDuration); - } else { - subscriber.complete(); - } - } - }, due); - }); -} -var init_timer = __esm({ - "node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/observable/timer.js"() { - init_Observable(); - init_async(); - init_isScheduler(); - init_isDate(); - } -}); - -// node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/observable/interval.js -var init_interval = __esm({ - "node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/observable/interval.js"() { - } -}); - -// node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/observable/merge.js -var init_merge = __esm({ - "node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/observable/merge.js"() { - } -}); - -// node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/observable/never.js -function never() { - return NEVER; -} -var NEVER; -var init_never = __esm({ - "node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/observable/never.js"() { - init_Observable(); - init_noop(); - NEVER = new Observable(noop); - } -}); - -// node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/observable/onErrorResumeNext.js -var init_onErrorResumeNext = __esm({ - "node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/observable/onErrorResumeNext.js"() { - } -}); - -// node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/observable/pairs.js -var init_pairs = __esm({ - "node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/observable/pairs.js"() { - } -}); - -// node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/operators/filter.js -function filter(predicate, thisArg) { - return operate(function(source, subscriber) { - var index2 = 0; - source.subscribe(createOperatorSubscriber(subscriber, function(value2) { - return predicate.call(thisArg, value2, index2++) && subscriber.next(value2); - })); - }); -} -var init_filter = __esm({ - "node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/operators/filter.js"() { - init_lift(); - init_OperatorSubscriber(); - } -}); - -// node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/observable/partition.js -var init_partition = __esm({ - "node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/observable/partition.js"() { - } -}); - -// node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/observable/race.js -var init_race = __esm({ - "node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/observable/race.js"() { - } -}); - -// node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/observable/range.js -var init_range = __esm({ - "node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/observable/range.js"() { - } -}); - -// node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/observable/using.js -var init_using = __esm({ - "node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/observable/using.js"() { - } -}); - -// node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/observable/zip.js -var init_zip = __esm({ - "node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/observable/zip.js"() { - } -}); - -// node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/types.js -var init_types = __esm({ - "node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/types.js"() { - } -}); - -// node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/operators/audit.js -var init_audit = __esm({ - "node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/operators/audit.js"() { - } -}); - -// node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/operators/auditTime.js -var init_auditTime = __esm({ - "node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/operators/auditTime.js"() { - } -}); - -// node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/operators/buffer.js -function buffer(closingNotifier) { - return operate(function(source, subscriber) { - var currentBuffer = []; - source.subscribe(createOperatorSubscriber(subscriber, function(value2) { - return currentBuffer.push(value2); - }, function() { - subscriber.next(currentBuffer); - subscriber.complete(); - })); - innerFrom(closingNotifier).subscribe(createOperatorSubscriber(subscriber, function() { - var b5 = currentBuffer; - currentBuffer = []; - subscriber.next(b5); - }, noop)); - return function() { - currentBuffer = null; - }; - }); -} -var init_buffer = __esm({ - "node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/operators/buffer.js"() { - init_lift(); - init_noop(); - init_OperatorSubscriber(); - init_innerFrom(); - } -}); - -// node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/operators/bufferCount.js -function bufferCount(bufferSize, startBufferEvery) { - if (startBufferEvery === void 0) { - startBufferEvery = null; - } - startBufferEvery = startBufferEvery !== null && startBufferEvery !== void 0 ? startBufferEvery : bufferSize; - return operate(function(source, subscriber) { - var buffers = []; - var count2 = 0; - source.subscribe(createOperatorSubscriber(subscriber, function(value2) { - var e_1, _a12, e_2, _b; - var toEmit = null; - if (count2++ % startBufferEvery === 0) { - buffers.push([]); - } - try { - for (var buffers_1 = __values(buffers), buffers_1_1 = buffers_1.next(); !buffers_1_1.done; buffers_1_1 = buffers_1.next()) { - var buffer2 = buffers_1_1.value; - buffer2.push(value2); - if (bufferSize <= buffer2.length) { - toEmit = toEmit !== null && toEmit !== void 0 ? toEmit : []; - toEmit.push(buffer2); - } - } - } catch (e_1_1) { - e_1 = { error: e_1_1 }; - } finally { - try { - if (buffers_1_1 && !buffers_1_1.done && (_a12 = buffers_1.return)) _a12.call(buffers_1); - } finally { - if (e_1) throw e_1.error; - } - } - if (toEmit) { - try { - for (var toEmit_1 = __values(toEmit), toEmit_1_1 = toEmit_1.next(); !toEmit_1_1.done; toEmit_1_1 = toEmit_1.next()) { - var buffer2 = toEmit_1_1.value; - arrRemove(buffers, buffer2); - subscriber.next(buffer2); - } - } catch (e_2_1) { - e_2 = { error: e_2_1 }; - } finally { - try { - if (toEmit_1_1 && !toEmit_1_1.done && (_b = toEmit_1.return)) _b.call(toEmit_1); - } finally { - if (e_2) throw e_2.error; - } - } - } - }, function() { - var e_3, _a12; - try { - for (var buffers_2 = __values(buffers), buffers_2_1 = buffers_2.next(); !buffers_2_1.done; buffers_2_1 = buffers_2.next()) { - var buffer2 = buffers_2_1.value; - subscriber.next(buffer2); - } - } catch (e_3_1) { - e_3 = { error: e_3_1 }; - } finally { - try { - if (buffers_2_1 && !buffers_2_1.done && (_a12 = buffers_2.return)) _a12.call(buffers_2); - } finally { - if (e_3) throw e_3.error; - } - } - subscriber.complete(); - }, void 0, function() { - buffers = null; - })); - }); -} -var init_bufferCount = __esm({ - "node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/operators/bufferCount.js"() { - init_tslib_es6(); - init_lift(); - init_OperatorSubscriber(); - init_arrRemove(); - } -}); - -// node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/operators/bufferTime.js -function bufferTime(bufferTimeSpan) { - var _a12, _b; - var otherArgs = []; - for (var _i = 1; _i < arguments.length; _i++) { - otherArgs[_i - 1] = arguments[_i]; - } - var scheduler = (_a12 = popScheduler(otherArgs)) !== null && _a12 !== void 0 ? _a12 : asyncScheduler; - var bufferCreationInterval = (_b = otherArgs[0]) !== null && _b !== void 0 ? _b : null; - var maxBufferSize = otherArgs[1] || Infinity; - return operate(function(source, subscriber) { - var bufferRecords = []; - var restartOnEmit = false; - var emit = function(record) { - var buffer2 = record.buffer, subs = record.subs; - subs.unsubscribe(); - arrRemove(bufferRecords, record); - subscriber.next(buffer2); - restartOnEmit && startBuffer(); - }; - var startBuffer = function() { - if (bufferRecords) { - var subs = new Subscription(); - subscriber.add(subs); - var buffer2 = []; - var record_1 = { - buffer: buffer2, - subs - }; - bufferRecords.push(record_1); - executeSchedule(subs, scheduler, function() { - return emit(record_1); - }, bufferTimeSpan); - } - }; - if (bufferCreationInterval !== null && bufferCreationInterval >= 0) { - executeSchedule(subscriber, scheduler, startBuffer, bufferCreationInterval, true); - } else { - restartOnEmit = true; - } - startBuffer(); - var bufferTimeSubscriber = createOperatorSubscriber(subscriber, function(value2) { - var e_1, _a13; - var recordsCopy = bufferRecords.slice(); - try { - for (var recordsCopy_1 = __values(recordsCopy), recordsCopy_1_1 = recordsCopy_1.next(); !recordsCopy_1_1.done; recordsCopy_1_1 = recordsCopy_1.next()) { - var record = recordsCopy_1_1.value; - var buffer2 = record.buffer; - buffer2.push(value2); - maxBufferSize <= buffer2.length && emit(record); - } - } catch (e_1_1) { - e_1 = { error: e_1_1 }; - } finally { - try { - if (recordsCopy_1_1 && !recordsCopy_1_1.done && (_a13 = recordsCopy_1.return)) _a13.call(recordsCopy_1); - } finally { - if (e_1) throw e_1.error; - } - } - }, function() { - while (bufferRecords === null || bufferRecords === void 0 ? void 0 : bufferRecords.length) { - subscriber.next(bufferRecords.shift().buffer); - } - bufferTimeSubscriber === null || bufferTimeSubscriber === void 0 ? void 0 : bufferTimeSubscriber.unsubscribe(); - subscriber.complete(); - subscriber.unsubscribe(); - }, void 0, function() { - return bufferRecords = null; - }); - source.subscribe(bufferTimeSubscriber); - }); -} -var init_bufferTime = __esm({ - "node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/operators/bufferTime.js"() { - init_tslib_es6(); - init_Subscription(); - init_lift(); - init_OperatorSubscriber(); - init_arrRemove(); - init_async(); - init_args(); - init_executeSchedule(); - } -}); - -// node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/operators/bufferToggle.js -var init_bufferToggle = __esm({ - "node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/operators/bufferToggle.js"() { - } -}); - -// node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/operators/bufferWhen.js -var init_bufferWhen = __esm({ - "node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/operators/bufferWhen.js"() { - } -}); - -// node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/operators/catchError.js -var init_catchError = __esm({ - "node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/operators/catchError.js"() { - } -}); - -// node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/operators/reduce.js -var init_reduce = __esm({ - "node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/operators/reduce.js"() { - } -}); - -// node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/operators/toArray.js -var init_toArray = __esm({ - "node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/operators/toArray.js"() { - } -}); - -// node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/operators/combineLatestAll.js -var init_combineLatestAll = __esm({ - "node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/operators/combineLatestAll.js"() { - } -}); - -// node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/operators/combineAll.js -var init_combineAll = __esm({ - "node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/operators/combineAll.js"() { - } -}); - -// node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/operators/combineLatest.js -var init_combineLatest2 = __esm({ - "node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/operators/combineLatest.js"() { - } -}); - -// node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/operators/combineLatestWith.js -var init_combineLatestWith = __esm({ - "node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/operators/combineLatestWith.js"() { - } -}); - -// node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/operators/concatMap.js -var init_concatMap = __esm({ - "node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/operators/concatMap.js"() { - } -}); - -// node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/operators/concatMapTo.js -var init_concatMapTo = __esm({ - "node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/operators/concatMapTo.js"() { - } -}); - -// node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/operators/concat.js -var init_concat2 = __esm({ - "node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/operators/concat.js"() { - } -}); - -// node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/operators/concatWith.js -var init_concatWith = __esm({ - "node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/operators/concatWith.js"() { - } -}); - -// node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/operators/connect.js -var init_connect = __esm({ - "node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/operators/connect.js"() { - } -}); - -// node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/operators/count.js -var init_count = __esm({ - "node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/operators/count.js"() { - } -}); - -// node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/operators/debounce.js -function debounce(durationSelector) { - return operate(function(source, subscriber) { - var hasValue = false; - var lastValue = null; - var durationSubscriber = null; - var emit = function() { - durationSubscriber === null || durationSubscriber === void 0 ? void 0 : durationSubscriber.unsubscribe(); - durationSubscriber = null; - if (hasValue) { - hasValue = false; - var value2 = lastValue; - lastValue = null; - subscriber.next(value2); - } - }; - source.subscribe(createOperatorSubscriber(subscriber, function(value2) { - durationSubscriber === null || durationSubscriber === void 0 ? void 0 : durationSubscriber.unsubscribe(); - hasValue = true; - lastValue = value2; - durationSubscriber = createOperatorSubscriber(subscriber, emit, noop); - innerFrom(durationSelector(value2)).subscribe(durationSubscriber); - }, function() { - emit(); - subscriber.complete(); - }, void 0, function() { - lastValue = durationSubscriber = null; - })); - }); -} -var init_debounce = __esm({ - "node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/operators/debounce.js"() { - init_lift(); - init_noop(); - init_OperatorSubscriber(); - init_innerFrom(); - } -}); - -// node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/operators/debounceTime.js -function debounceTime(dueTime, scheduler) { - if (scheduler === void 0) { - scheduler = asyncScheduler; - } - return operate(function(source, subscriber) { - var activeTask = null; - var lastValue = null; - var lastTime = null; - var emit = function() { - if (activeTask) { - activeTask.unsubscribe(); - activeTask = null; - var value2 = lastValue; - lastValue = null; - subscriber.next(value2); - } - }; - function emitWhenIdle() { - var targetTime = lastTime + dueTime; - var now2 = scheduler.now(); - if (now2 < targetTime) { - activeTask = this.schedule(void 0, targetTime - now2); - subscriber.add(activeTask); - return; - } - emit(); - } - source.subscribe(createOperatorSubscriber(subscriber, function(value2) { - lastValue = value2; - lastTime = scheduler.now(); - if (!activeTask) { - activeTask = scheduler.schedule(emitWhenIdle, dueTime); - subscriber.add(activeTask); - } - }, function() { - emit(); - subscriber.complete(); - }, void 0, function() { - lastValue = activeTask = null; - })); - }); -} -var init_debounceTime = __esm({ - "node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/operators/debounceTime.js"() { - init_async(); - init_lift(); - init_OperatorSubscriber(); - } -}); - -// node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/operators/defaultIfEmpty.js -var init_defaultIfEmpty = __esm({ - "node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/operators/defaultIfEmpty.js"() { - } -}); - -// node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/operators/take.js -var init_take = __esm({ - "node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/operators/take.js"() { - } -}); - -// node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/operators/ignoreElements.js -var init_ignoreElements = __esm({ - "node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/operators/ignoreElements.js"() { - } -}); - -// node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/operators/mapTo.js -var init_mapTo = __esm({ - "node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/operators/mapTo.js"() { - } -}); - -// node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/operators/delayWhen.js -var init_delayWhen = __esm({ - "node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/operators/delayWhen.js"() { - } -}); - -// node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/operators/delay.js -var init_delay = __esm({ - "node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/operators/delay.js"() { - } -}); - -// node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/operators/dematerialize.js -var init_dematerialize = __esm({ - "node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/operators/dematerialize.js"() { - } -}); - -// node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/operators/distinct.js -var init_distinct = __esm({ - "node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/operators/distinct.js"() { - } -}); - -// node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/operators/distinctUntilChanged.js -var init_distinctUntilChanged = __esm({ - "node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/operators/distinctUntilChanged.js"() { - } -}); - -// node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/operators/distinctUntilKeyChanged.js -var init_distinctUntilKeyChanged = __esm({ - "node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/operators/distinctUntilKeyChanged.js"() { - } -}); - -// node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/operators/throwIfEmpty.js -var init_throwIfEmpty = __esm({ - "node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/operators/throwIfEmpty.js"() { - } -}); - -// node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/operators/elementAt.js -var init_elementAt = __esm({ - "node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/operators/elementAt.js"() { - } -}); - -// node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/operators/endWith.js -var init_endWith = __esm({ - "node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/operators/endWith.js"() { - } -}); - -// node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/operators/every.js -var init_every = __esm({ - "node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/operators/every.js"() { - } -}); - -// node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/operators/exhaustMap.js -var init_exhaustMap = __esm({ - "node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/operators/exhaustMap.js"() { - } -}); - -// node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/operators/exhaustAll.js -var init_exhaustAll = __esm({ - "node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/operators/exhaustAll.js"() { - } -}); - -// node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/operators/exhaust.js -var init_exhaust = __esm({ - "node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/operators/exhaust.js"() { - } -}); - -// node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/operators/expand.js -var init_expand = __esm({ - "node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/operators/expand.js"() { - } -}); - -// node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/operators/finalize.js -var init_finalize = __esm({ - "node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/operators/finalize.js"() { - } -}); - -// node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/operators/find.js -var init_find = __esm({ - "node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/operators/find.js"() { - } -}); - -// node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/operators/findIndex.js -var init_findIndex = __esm({ - "node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/operators/findIndex.js"() { - } -}); - -// node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/operators/first.js -var init_first = __esm({ - "node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/operators/first.js"() { - } -}); - -// node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/operators/groupBy.js -var init_groupBy = __esm({ - "node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/operators/groupBy.js"() { - } -}); - -// node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/operators/isEmpty.js -var init_isEmpty = __esm({ - "node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/operators/isEmpty.js"() { - } -}); - -// node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/operators/takeLast.js -var init_takeLast = __esm({ - "node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/operators/takeLast.js"() { - } -}); - -// node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/operators/last.js -var init_last = __esm({ - "node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/operators/last.js"() { - } -}); - -// node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/operators/materialize.js -var init_materialize = __esm({ - "node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/operators/materialize.js"() { - } -}); - -// node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/operators/max.js -var init_max = __esm({ - "node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/operators/max.js"() { - } -}); - -// node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/operators/flatMap.js -var init_flatMap = __esm({ - "node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/operators/flatMap.js"() { - } -}); - -// node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/operators/mergeMapTo.js -var init_mergeMapTo = __esm({ - "node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/operators/mergeMapTo.js"() { - } -}); - -// node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/operators/mergeScan.js -var init_mergeScan = __esm({ - "node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/operators/mergeScan.js"() { - } -}); - -// node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/operators/merge.js -var init_merge2 = __esm({ - "node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/operators/merge.js"() { - } -}); - -// node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/operators/mergeWith.js -var init_mergeWith = __esm({ - "node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/operators/mergeWith.js"() { - } -}); - -// node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/operators/min.js -var init_min = __esm({ - "node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/operators/min.js"() { - } -}); - -// node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/operators/multicast.js -var init_multicast = __esm({ - "node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/operators/multicast.js"() { - } -}); - -// node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/operators/onErrorResumeNextWith.js -var init_onErrorResumeNextWith = __esm({ - "node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/operators/onErrorResumeNextWith.js"() { - } -}); - -// node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/operators/pairwise.js -var init_pairwise = __esm({ - "node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/operators/pairwise.js"() { - } -}); - -// node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/operators/pluck.js -var init_pluck = __esm({ - "node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/operators/pluck.js"() { - } -}); - -// node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/operators/publish.js -var init_publish = __esm({ - "node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/operators/publish.js"() { - } -}); - -// node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/operators/publishBehavior.js -var init_publishBehavior = __esm({ - "node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/operators/publishBehavior.js"() { - } -}); - -// node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/operators/publishLast.js -var init_publishLast = __esm({ - "node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/operators/publishLast.js"() { - } -}); - -// node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/operators/publishReplay.js -var init_publishReplay = __esm({ - "node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/operators/publishReplay.js"() { - } -}); - -// node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/operators/raceWith.js -var init_raceWith = __esm({ - "node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/operators/raceWith.js"() { - } -}); - -// node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/operators/repeat.js -var init_repeat = __esm({ - "node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/operators/repeat.js"() { - } -}); - -// node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/operators/repeatWhen.js -var init_repeatWhen = __esm({ - "node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/operators/repeatWhen.js"() { - } -}); - -// node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/operators/retry.js -var init_retry = __esm({ - "node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/operators/retry.js"() { - } -}); - -// node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/operators/retryWhen.js -var init_retryWhen = __esm({ - "node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/operators/retryWhen.js"() { - } -}); - -// node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/operators/sample.js -var init_sample = __esm({ - "node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/operators/sample.js"() { - } -}); - -// node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/operators/sampleTime.js -var init_sampleTime = __esm({ - "node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/operators/sampleTime.js"() { - } -}); - -// node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/operators/scan.js -var init_scan = __esm({ - "node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/operators/scan.js"() { - } -}); - -// node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/operators/sequenceEqual.js -var init_sequenceEqual = __esm({ - "node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/operators/sequenceEqual.js"() { - } -}); - -// node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/operators/share.js -var init_share = __esm({ - "node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/operators/share.js"() { - } -}); - -// node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/operators/shareReplay.js -var init_shareReplay = __esm({ - "node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/operators/shareReplay.js"() { - } -}); - -// node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/operators/single.js -var init_single = __esm({ - "node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/operators/single.js"() { - } -}); - -// node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/operators/skip.js -var init_skip = __esm({ - "node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/operators/skip.js"() { - } -}); - -// node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/operators/skipLast.js -var init_skipLast = __esm({ - "node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/operators/skipLast.js"() { - } -}); - -// node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/operators/skipUntil.js -var init_skipUntil = __esm({ - "node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/operators/skipUntil.js"() { - } -}); - -// node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/operators/skipWhile.js -var init_skipWhile = __esm({ - "node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/operators/skipWhile.js"() { - } -}); - -// node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/operators/startWith.js -function startWith() { - var values = []; - for (var _i = 0; _i < arguments.length; _i++) { - values[_i] = arguments[_i]; - } - var scheduler = popScheduler(values); - return operate(function(source, subscriber) { - (scheduler ? concat(values, source, scheduler) : concat(values, source)).subscribe(subscriber); - }); -} -var init_startWith = __esm({ - "node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/operators/startWith.js"() { - init_concat(); - init_args(); - init_lift(); - } -}); - -// node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/operators/switchMap.js -var init_switchMap = __esm({ - "node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/operators/switchMap.js"() { - } -}); - -// node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/operators/switchAll.js -var init_switchAll = __esm({ - "node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/operators/switchAll.js"() { - } -}); - -// node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/operators/switchMapTo.js -var init_switchMapTo = __esm({ - "node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/operators/switchMapTo.js"() { - } -}); - -// node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/operators/switchScan.js -var init_switchScan = __esm({ - "node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/operators/switchScan.js"() { - } -}); - -// node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/operators/takeUntil.js -function takeUntil(notifier) { - return operate(function(source, subscriber) { - innerFrom(notifier).subscribe(createOperatorSubscriber(subscriber, function() { - return subscriber.complete(); - }, noop)); - !subscriber.closed && source.subscribe(subscriber); - }); -} -var init_takeUntil = __esm({ - "node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/operators/takeUntil.js"() { - init_lift(); - init_OperatorSubscriber(); - init_innerFrom(); - init_noop(); - } -}); - -// node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/operators/takeWhile.js -var init_takeWhile = __esm({ - "node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/operators/takeWhile.js"() { - } -}); - -// node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/operators/tap.js -var init_tap = __esm({ - "node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/operators/tap.js"() { - } -}); - -// node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/operators/throttle.js -function throttle(durationSelector, config3) { - return operate(function(source, subscriber) { - var _a12 = config3 !== null && config3 !== void 0 ? config3 : {}, _b = _a12.leading, leading = _b === void 0 ? true : _b, _c = _a12.trailing, trailing = _c === void 0 ? false : _c; - var hasValue = false; - var sendValue = null; - var throttled = null; - var isComplete = false; - var endThrottling = function() { - throttled === null || throttled === void 0 ? void 0 : throttled.unsubscribe(); - throttled = null; - if (trailing) { - send(); - isComplete && subscriber.complete(); - } - }; - var cleanupThrottling = function() { - throttled = null; - isComplete && subscriber.complete(); - }; - var startThrottle = function(value2) { - return throttled = innerFrom(durationSelector(value2)).subscribe(createOperatorSubscriber(subscriber, endThrottling, cleanupThrottling)); - }; - var send = function() { - if (hasValue) { - hasValue = false; - var value2 = sendValue; - sendValue = null; - subscriber.next(value2); - !isComplete && startThrottle(value2); - } - }; - source.subscribe(createOperatorSubscriber(subscriber, function(value2) { - hasValue = true; - sendValue = value2; - !(throttled && !throttled.closed) && (leading ? send() : startThrottle(value2)); - }, function() { - isComplete = true; - !(trailing && hasValue && throttled && !throttled.closed) && subscriber.complete(); - })); - }); -} -var init_throttle = __esm({ - "node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/operators/throttle.js"() { - init_lift(); - init_OperatorSubscriber(); - init_innerFrom(); - } -}); - -// node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/operators/throttleTime.js -function throttleTime(duration, scheduler, config3) { - if (scheduler === void 0) { - scheduler = asyncScheduler; - } - var duration$ = timer(duration, scheduler); - return throttle(function() { - return duration$; - }, config3); -} -var init_throttleTime = __esm({ - "node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/operators/throttleTime.js"() { - init_async(); - init_throttle(); - init_timer(); - } -}); - -// node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/operators/timeInterval.js -var init_timeInterval = __esm({ - "node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/operators/timeInterval.js"() { - } -}); - -// node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/operators/timeoutWith.js -var init_timeoutWith = __esm({ - "node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/operators/timeoutWith.js"() { - } -}); - -// node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/operators/timestamp.js -var init_timestamp = __esm({ - "node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/operators/timestamp.js"() { - } -}); - -// node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/operators/window.js -var init_window = __esm({ - "node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/operators/window.js"() { - } -}); - -// node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/operators/windowCount.js -var init_windowCount = __esm({ - "node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/operators/windowCount.js"() { - } -}); - -// node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/operators/windowTime.js -var init_windowTime = __esm({ - "node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/operators/windowTime.js"() { - } -}); - -// node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/operators/windowToggle.js -var init_windowToggle = __esm({ - "node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/operators/windowToggle.js"() { - } -}); - -// node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/operators/windowWhen.js -var init_windowWhen = __esm({ - "node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/operators/windowWhen.js"() { - } -}); - -// node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/operators/withLatestFrom.js -var init_withLatestFrom = __esm({ - "node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/operators/withLatestFrom.js"() { - } -}); - -// node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/operators/zipAll.js -var init_zipAll = __esm({ - "node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/operators/zipAll.js"() { - } -}); - -// node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/operators/zip.js -var init_zip2 = __esm({ - "node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/operators/zip.js"() { - } -}); - -// node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/operators/zipWith.js -var init_zipWith = __esm({ - "node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/operators/zipWith.js"() { - } -}); - -// node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/index.js -var init_esm5 = __esm({ - "node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/index.js"() { - init_Observable(); - init_ConnectableObservable(); - init_observable(); - init_animationFrames(); - init_Subject(); - init_BehaviorSubject(); - init_ReplaySubject(); - init_AsyncSubject(); - init_asap(); - init_async(); - init_queue(); - init_animationFrame(); - init_VirtualTimeScheduler(); - init_Scheduler(); - init_Subscription(); - init_Subscriber(); - init_Notification(); - init_pipe(); - init_noop(); - init_identity(); - init_isObservable(); - init_lastValueFrom(); - init_firstValueFrom(); - init_ArgumentOutOfRangeError(); - init_EmptyError(); - init_NotFoundError(); - init_ObjectUnsubscribedError(); - init_SequenceError(); - init_timeout(); - init_UnsubscriptionError(); - init_bindCallback(); - init_bindNodeCallback(); - init_combineLatest(); - init_concat(); - init_connectable(); - init_defer(); - init_empty(); - init_forkJoin(); - init_from(); - init_fromEvent(); - init_fromEventPattern(); - init_generate(); - init_iif(); - init_interval(); - init_merge(); - init_never(); - init_of(); - init_onErrorResumeNext(); - init_pairs(); - init_partition(); - init_race(); - init_range(); - init_throwError(); - init_timer(); - init_using(); - init_zip(); - init_scheduled(); - init_empty(); - init_never(); - init_types(); - init_config(); - init_audit(); - init_auditTime(); - init_buffer(); - init_bufferCount(); - init_bufferTime(); - init_bufferToggle(); - init_bufferWhen(); - init_catchError(); - init_combineAll(); - init_combineLatestAll(); - init_combineLatestWith(); - init_concatAll(); - init_concatMap(); - init_concatMapTo(); - init_concatWith(); - init_connect(); - init_count(); - init_debounce(); - init_debounceTime(); - init_defaultIfEmpty(); - init_delay(); - init_delayWhen(); - init_dematerialize(); - init_distinct(); - init_distinctUntilChanged(); - init_distinctUntilKeyChanged(); - init_elementAt(); - init_endWith(); - init_every(); - init_exhaust(); - init_exhaustAll(); - init_exhaustMap(); - init_expand(); - init_filter(); - init_finalize(); - init_find(); - init_findIndex(); - init_first(); - init_groupBy(); - init_ignoreElements(); - init_isEmpty(); - init_last(); - init_map(); - init_mapTo(); - init_materialize(); - init_max(); - init_mergeAll(); - init_flatMap(); - init_mergeMap(); - init_mergeMapTo(); - init_mergeScan(); - init_mergeWith(); - init_min(); - init_multicast(); - init_observeOn(); - init_onErrorResumeNextWith(); - init_pairwise(); - init_pluck(); - init_publish(); - init_publishBehavior(); - init_publishLast(); - init_publishReplay(); - init_raceWith(); - init_reduce(); - init_repeat(); - init_repeatWhen(); - init_retry(); - init_retryWhen(); - init_refCount(); - init_sample(); - init_sampleTime(); - init_scan(); - init_sequenceEqual(); - init_share(); - init_shareReplay(); - init_single(); - init_skip(); - init_skipLast(); - init_skipUntil(); - init_skipWhile(); - init_startWith(); - init_subscribeOn(); - init_switchAll(); - init_switchMap(); - init_switchMapTo(); - init_switchScan(); - init_take(); - init_takeLast(); - init_takeUntil(); - init_takeWhile(); - init_tap(); - init_throttle(); - init_throttleTime(); - init_throwIfEmpty(); - init_timeInterval(); - init_timeout(); - init_timeoutWith(); - init_timestamp(); - init_toArray(); - init_window(); - init_windowCount(); - init_windowTime(); - init_windowToggle(); - init_windowWhen(); - init_withLatestFrom(); - init_zipAll(); - init_zipWith(); - } -}); - -// node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/operators/partition.js -var init_partition2 = __esm({ - "node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/operators/partition.js"() { - } -}); - -// node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/operators/race.js -var init_race2 = __esm({ - "node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/operators/race.js"() { - } -}); - -// node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/operators/index.js -var init_operators = __esm({ - "node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/operators/index.js"() { - init_audit(); - init_auditTime(); - init_buffer(); - init_bufferCount(); - init_bufferTime(); - init_bufferToggle(); - init_bufferWhen(); - init_catchError(); - init_combineAll(); - init_combineLatestAll(); - init_combineLatest2(); - init_combineLatestWith(); - init_concat2(); - init_concatAll(); - init_concatMap(); - init_concatMapTo(); - init_concatWith(); - init_connect(); - init_count(); - init_debounce(); - init_debounceTime(); - init_defaultIfEmpty(); - init_delay(); - init_delayWhen(); - init_dematerialize(); - init_distinct(); - init_distinctUntilChanged(); - init_distinctUntilKeyChanged(); - init_elementAt(); - init_endWith(); - init_every(); - init_exhaust(); - init_exhaustAll(); - init_exhaustMap(); - init_expand(); - init_filter(); - init_finalize(); - init_find(); - init_findIndex(); - init_first(); - init_groupBy(); - init_ignoreElements(); - init_isEmpty(); - init_last(); - init_map(); - init_mapTo(); - init_materialize(); - init_max(); - init_merge2(); - init_mergeAll(); - init_flatMap(); - init_mergeMap(); - init_mergeMapTo(); - init_mergeScan(); - init_mergeWith(); - init_min(); - init_multicast(); - init_observeOn(); - init_onErrorResumeNextWith(); - init_pairwise(); - init_partition2(); - init_pluck(); - init_publish(); - init_publishBehavior(); - init_publishLast(); - init_publishReplay(); - init_race2(); - init_raceWith(); - init_reduce(); - init_repeat(); - init_repeatWhen(); - init_retry(); - init_retryWhen(); - init_refCount(); - init_sample(); - init_sampleTime(); - init_scan(); - init_sequenceEqual(); - init_share(); - init_shareReplay(); - init_single(); - init_skip(); - init_skipLast(); - init_skipUntil(); - init_skipWhile(); - init_startWith(); - init_subscribeOn(); - init_switchAll(); - init_switchMap(); - init_switchMapTo(); - init_switchScan(); - init_take(); - init_takeLast(); - init_takeUntil(); - init_takeWhile(); - init_tap(); - init_throttle(); - init_throttleTime(); - init_throwIfEmpty(); - init_timeInterval(); - init_timeout(); - init_timeoutWith(); - init_timestamp(); - init_toArray(); - init_window(); - init_windowCount(); - init_windowTime(); - init_windowToggle(); - init_windowWhen(); - init_withLatestFrom(); - init_zip2(); - init_zipAll(); - init_zipWith(); - } -}); - -// node_modules/.pnpm/@push.rocks+smartrx@3.0.10/node_modules/@push.rocks/smartrx/dist_ts/smartrx.plugins.rxjs.js -var smartrx_plugins_rxjs_exports = {}; -__export(smartrx_plugins_rxjs_exports, { - Observable: () => Observable, - ReplaySubject: () => ReplaySubject, - Subject: () => Subject, - Subscription: () => Subscription, - from: () => from, - fromEvent: () => fromEvent, - of: () => of, - ops: () => ops -}); -var ops; -var init_smartrx_plugins_rxjs = __esm({ - "node_modules/.pnpm/@push.rocks+smartrx@3.0.10/node_modules/@push.rocks/smartrx/dist_ts/smartrx.plugins.rxjs.js"() { - init_esm5(); - init_operators(); - ops = { - buffer, - bufferCount, - bufferTime, - debounce, - debounceTime, - filter, - map: map2, - startWith, - takeUntil, - throttleTime - }; - } -}); - -// node_modules/.pnpm/@push.rocks+smartrx@3.0.10/node_modules/@push.rocks/smartrx/dist_ts/smartrx.classes.observablemap.js -var Observablemap; -var init_smartrx_classes_observablemap = __esm({ - "node_modules/.pnpm/@push.rocks+smartrx@3.0.10/node_modules/@push.rocks/smartrx/dist_ts/smartrx.classes.observablemap.js"() { - init_smartrx_plugins(); - init_smartrx_plugins_rxjs(); - Observablemap = class { - constructor() { - this.observableEventEmitterBundleArray = new Array(); - this.observableEventTargetBundleArray = new Array(); - } - /** - * creates a hot subject if not yet registered for the event. - * In case event has been registered before the same observable is returned. - */ - getSubjectForEmitterEvent(emitterArg, eventArg) { - const existingBundle = this.observableEventEmitterBundleArray.find((bundleArg) => { - return bundleArg.eventRef === emitterArg && bundleArg.event === eventArg; - }); - if (existingBundle) { - return existingBundle.subject; - } else { - const emitterObservable = fromEvent(emitterArg, eventArg); - const emitterSubject = new Subject(); - emitterObservable.subscribe(emitterSubject); - const newBundle = { - subject: emitterSubject, - eventRef: emitterArg, - event: eventArg - }; - this.observableEventEmitterBundleArray.push(newBundle); - return newBundle.subject; - } - } - getSubjectForEventTarget(eventTargetArg, eventNameArg) { - const existingBundle = this.observableEventTargetBundleArray.find((bundleArg) => { - return bundleArg.eventRef === eventTargetArg && bundleArg.event === eventNameArg; - }); - if (existingBundle) { - return existingBundle.subject; - } else { - const emitterSubject = new Subject(); - const newBundle = { - subject: emitterSubject, - eventRef: eventTargetArg, - event: eventNameArg - }; - this.observableEventTargetBundleArray.push(newBundle); - return newBundle.subject; - } - } - }; - } -}); - -// node_modules/.pnpm/@push.rocks+smartrx@3.0.10/node_modules/@push.rocks/smartrx/dist_ts/smartrx.classes.observableintake.js -var ObservableIntake; -var init_smartrx_classes_observableintake = __esm({ - "node_modules/.pnpm/@push.rocks+smartrx@3.0.10/node_modules/@push.rocks/smartrx/dist_ts/smartrx.classes.observableintake.js"() { - init_smartrx_plugins(); - init_smartrx_plugins_rxjs(); - ObservableIntake = class { - constructor() { - this.observableFunctions = { - next: (payloadArg) => { - }, - complete: (payloadArg) => { - } - }; - this.generator = null; - this.buffered = false; - this.payloadBuffer = []; - this.observable = new Observable((observerArg) => { - this.observableFunctions.next = (...args) => { - return observerArg.next(args); - }; - this.observableFunctions.complete = () => { - this.completedDeffered.resolve(); - return observerArg.complete(); - }; - }); - this.completedDeffered = dist_ts_exports.defer(); - this.completed = this.completedDeffered.promise; - } - setObservable(observableFunc) { - this.observable = observableFunc; - } - push(payloadArg) { - if (this.buffered) { - this.payloadBuffer.push(payloadArg); - } else { - this.internalPush(payloadArg); - } - } - /** - * pushes many payloads as array - * @param payloadArgArray - */ - pushMany(payloadArgArray) { - for (const item of payloadArgArray) { - this.push(item); - } - } - /** - * sets a generator to query the next pushed value - * @param generatorArg - */ - setGenerator(generatorArg) { - this.generator = generatorArg; - } - makeBuffered() { - this.buffered = true; - } - subscribe(...args) { - return this.observable.subscribe(...args); - } - /** - * request the next values in the quantity specified - * @param howManyArg if a generator is set, of a buffer exists, this allows retrieving values - */ - request(howManyArg) { - if (howManyArg === 0) { - return; - } else { - for (let i11 = 0; i11 !== howManyArg; i11++) { - if (this.payloadBuffer.length > 0) { - this.internalPush(this.payloadBuffer.shift()); - } else { - const nextPayload = this.generator.next(); - this.internalPush(nextPayload.value); - } - } - } - } - /** - * signals the completion of this observable - */ - signalComplete() { - this.observableFunctions.complete(); - } - internalPush(payloadArg) { - this.observableFunctions.next(payloadArg); - } - }; - } -}); - -// node_modules/.pnpm/@push.rocks+smartrx@3.0.10/node_modules/@push.rocks/smartrx/dist_ts/smartrx.functions.js -function fromStreamWithBackpressure(stream) { - return new Observable((subscriber) => { - const pauseStream = () => stream.pause(); - const resumeStream = () => process.nextTick(() => stream.resume()); - const onData = (data8) => { - pauseStream(); - subscriber.next(data8); - resumeStream(); - }; - stream.on("data", onData); - stream.on("error", (error) => subscriber.error(error)); - stream.on("end", () => subscriber.complete()); - stream.on("close", () => subscriber.complete()); - return () => { - stream.removeListener("data", onData); - stream.removeListener("error", subscriber.error); - stream.removeListener("end", subscriber.complete); - stream.removeListener("close", subscriber.complete); - }; - }); -} -var init_smartrx_functions = __esm({ - "node_modules/.pnpm/@push.rocks+smartrx@3.0.10/node_modules/@push.rocks/smartrx/dist_ts/smartrx.functions.js"() { - init_esm5(); - } -}); - -// node_modules/.pnpm/@push.rocks+smartrx@3.0.10/node_modules/@push.rocks/smartrx/dist_ts/index.js -var dist_ts_exports2 = {}; -__export(dist_ts_exports2, { - ObservableIntake: () => ObservableIntake, - Observablemap: () => Observablemap, - fromStreamWithBackpressure: () => fromStreamWithBackpressure, - rxjs: () => smartrx_plugins_rxjs_exports -}); -var init_dist_ts2 = __esm({ - "node_modules/.pnpm/@push.rocks+smartrx@3.0.10/node_modules/@push.rocks/smartrx/dist_ts/index.js"() { - init_smartrx_plugins(); - init_smartrx_classes_observablemap(); - init_smartrx_classes_observableintake(); - init_smartrx_functions(); - init_smartrx_plugins_rxjs(); - } -}); - -// node_modules/.pnpm/@lit+reactive-element@2.1.2/node_modules/@lit/reactive-element/decorators/property.js -function n5(t9) { - return (e11, o13) => "object" == typeof o13 ? r4(t9, e11, o13) : ((t10, e12, o14) => { - const r11 = e12.hasOwnProperty(o14); - return e12.constructor.createProperty(o14, t10), r11 ? Object.getOwnPropertyDescriptor(e12, o14) : void 0; - })(t9, e11, o13); -} -var o6, r4; -var init_property = __esm({ - "node_modules/.pnpm/@lit+reactive-element@2.1.2/node_modules/@lit/reactive-element/decorators/property.js"() { - init_reactive_element(); - o6 = { attribute: true, type: String, converter: u, reflect: false, hasChanged: f }, r4 = (t9 = o6, e11, r11) => { - const { kind: n12, metadata: i11 } = r11; - let s10 = globalThis.litPropertyMetadata.get(i11); - if (void 0 === s10 && globalThis.litPropertyMetadata.set(i11, s10 = /* @__PURE__ */ new Map()), "setter" === n12 && ((t9 = Object.create(t9)).wrapped = true), s10.set(r11.name, t9), "accessor" === n12) { - const { name: o13 } = r11; - return { set(r12) { - const n13 = e11.get.call(this); - e11.set.call(this, r12), this.requestUpdate(o13, n13, t9, true, r12); - }, init(e12) { - return void 0 !== e12 && this.C(o13, void 0, t9, e12), e12; - } }; - } - if ("setter" === n12) { - const { name: o13 } = r11; - return function(r12) { - const n13 = this[o13]; - e11.call(this, r12), this.requestUpdate(o13, n13, t9, true, r12); - }; - } - throw Error("Unsupported decorator location: " + n12); - }; - } -}); - -// node_modules/.pnpm/lit@3.3.2/node_modules/lit/decorators/property.js -var init_property2 = __esm({ - "node_modules/.pnpm/lit@3.3.2/node_modules/lit/decorators/property.js"() { - init_property(); - } -}); - -// node_modules/.pnpm/@design.estate+dees-domtools@2.3.8/node_modules/@design.estate/dees-domtools/dist_ts/domtools.colors.js -var init_domtools_colors = __esm({ - "node_modules/.pnpm/@design.estate+dees-domtools@2.3.8/node_modules/@design.estate/dees-domtools/dist_ts/domtools.colors.js"() { - } -}); - -// node_modules/.pnpm/@push.rocks+smartdelay@3.0.5/node_modules/@push.rocks/smartdelay/dist_ts/index.js -var dist_ts_exports3 = {}; -__export(dist_ts_exports3, { - Timeout: () => Timeout, - delayFor: () => delayFor, - delayForRandom: () => delayForRandom -}); -var delayFor, delayForRandom, Timeout; -var init_dist_ts3 = __esm({ - "node_modules/.pnpm/@push.rocks+smartdelay@3.0.5/node_modules/@push.rocks/smartdelay/dist_ts/index.js"() { - init_dist_ts(); - delayFor = async (timeInMillisecondArg, passOnArg, unrefedArg = false) => { - const timeout2 = new Timeout(timeInMillisecondArg, null, unrefedArg); - await timeout2.promise; - return passOnArg; - }; - delayForRandom = async (timeMinInMillisecondArg, timeMaxInMillisecondArg, passOnArg, unrefedArg = false) => { - await delayFor(Math.random() * (timeMaxInMillisecondArg - timeMinInMillisecondArg) + timeMinInMillisecondArg, null, unrefedArg); - return passOnArg; - }; - Timeout = class { - constructor(timeInMillisecondArg, passOn, unrefedArg = false) { - this._cancelled = false; - this.timeoutInMillis = timeInMillisecondArg; - this._deferred = defer(); - this.promise = this._deferred.promise; - this._timeout = setTimeout(() => { - if (!this._cancelled) { - this._deferred.resolve(passOn); - } - }, timeInMillisecondArg); - this.started = Date.now(); - if (unrefedArg) { - this.makeUnrefed(); - } - } - /** - * unreffing a timeout causes the node process to not wait for completion before exit - */ - makeUnrefed() { - this._timeout.unref(); - } - /** - * cancels the timer - */ - cancel() { - this._cancelled = true; - clearTimeout(this._timeout); - } - getTimeLeft() { - const result = this.started + this.timeoutInMillis - Date.now(); - return result > 0 ? result : 0; - } - }; - } -}); - -// node_modules/.pnpm/@api.global+typedrequest-interfaces@3.0.19/node_modules/@api.global/typedrequest-interfaces/dist_ts/index.js -var dist_ts_exports4 = {}; -var init_dist_ts4 = __esm({ - "node_modules/.pnpm/@api.global+typedrequest-interfaces@3.0.19/node_modules/@api.global/typedrequest-interfaces/dist_ts/index.js"() { - } -}); - -// node_modules/.pnpm/escape-string-regexp@5.0.0/node_modules/escape-string-regexp/index.js -function escapeStringRegexp(string3) { - if (typeof string3 !== "string") { - throw new TypeError("Expected a string"); - } - return string3.replace(/[|\\{}()[\]^$+*?.]/g, "\\$&").replace(/-/g, "\\x2d"); -} -var init_escape_string_regexp = __esm({ - "node_modules/.pnpm/escape-string-regexp@5.0.0/node_modules/escape-string-regexp/index.js"() { - } -}); - -// node_modules/.pnpm/matcher@5.0.0/node_modules/matcher/index.js -var matcher_exports = {}; -__export(matcher_exports, { - isMatch: () => isMatch, - matcher: () => matcher -}); -function matcher(inputs, patterns2, options) { - return baseMatcher(inputs, patterns2, options, false); -} -function isMatch(inputs, patterns2, options) { - return baseMatcher(inputs, patterns2, options, true).length > 0; -} -var regexpCache, sanitizeArray, makeRegexp, baseMatcher; -var init_matcher = __esm({ - "node_modules/.pnpm/matcher@5.0.0/node_modules/matcher/index.js"() { - init_escape_string_regexp(); - regexpCache = /* @__PURE__ */ new Map(); - sanitizeArray = (input, inputName) => { - if (!Array.isArray(input)) { - switch (typeof input) { - case "string": - input = [input]; - break; - case "undefined": - input = []; - break; - default: - throw new TypeError(`Expected '${inputName}' to be a string or an array, but got a type of '${typeof input}'`); - } - } - return input.filter((string3) => { - if (typeof string3 !== "string") { - if (typeof string3 === "undefined") { - return false; - } - throw new TypeError(`Expected '${inputName}' to be an array of strings, but found a type of '${typeof string3}' in the array`); - } - return true; - }); - }; - makeRegexp = (pattern, options) => { - options = { - caseSensitive: false, - ...options - }; - const cacheKey = pattern + JSON.stringify(options); - if (regexpCache.has(cacheKey)) { - return regexpCache.get(cacheKey); - } - const negated = pattern[0] === "!"; - if (negated) { - pattern = pattern.slice(1); - } - pattern = escapeStringRegexp(pattern).replace(/\\\*/g, "[\\s\\S]*"); - const regexp = new RegExp(`^${pattern}$`, options.caseSensitive ? "" : "i"); - regexp.negated = negated; - regexpCache.set(cacheKey, regexp); - return regexp; - }; - baseMatcher = (inputs, patterns2, options, firstMatchOnly) => { - inputs = sanitizeArray(inputs, "inputs"); - patterns2 = sanitizeArray(patterns2, "patterns"); - if (patterns2.length === 0) { - return []; - } - patterns2 = patterns2.map((pattern) => makeRegexp(pattern, options)); - const { allPatterns } = options || {}; - const result = []; - for (const input of inputs) { - let matches; - const didFit = [...patterns2].fill(false); - for (const [index2, pattern] of patterns2.entries()) { - if (pattern.test(input)) { - didFit[index2] = true; - matches = !pattern.negated; - if (!matches) { - break; - } - } - } - if (!(matches === false || matches === void 0 && patterns2.some((pattern) => !pattern.negated) || allPatterns && didFit.some((yes, index2) => !yes && !patterns2[index2].negated))) { - result.push(input); - if (firstMatchOnly) { - break; - } - } - } - return result; - }; - } -}); - -// node_modules/.pnpm/@push.rocks+smartmatch@2.0.0/node_modules/@push.rocks/smartmatch/dist_ts/smartmatch.plugins.js -var init_smartmatch_plugins = __esm({ - "node_modules/.pnpm/@push.rocks+smartmatch@2.0.0/node_modules/@push.rocks/smartmatch/dist_ts/smartmatch.plugins.js"() { - init_matcher(); - } -}); - -// node_modules/.pnpm/@push.rocks+smartmatch@2.0.0/node_modules/@push.rocks/smartmatch/dist_ts/index.js -var dist_ts_exports5 = {}; -__export(dist_ts_exports5, { - SmartMatch: () => SmartMatch -}); -var SmartMatch; -var init_dist_ts5 = __esm({ - "node_modules/.pnpm/@push.rocks+smartmatch@2.0.0/node_modules/@push.rocks/smartmatch/dist_ts/index.js"() { - init_smartmatch_plugins(); - SmartMatch = class { - constructor(wildcardArg) { - this.wildcard = wildcardArg; - } - match(matchStringArg) { - return matcher_exports.isMatch(matchStringArg, this.wildcard); - } - }; - } -}); - -// node_modules/.pnpm/croner@10.0.1/node_modules/croner/dist/croner.js -var croner_exports = {}; -__export(croner_exports, { - Cron: () => E2, - CronDate: () => m2, - CronPattern: () => C2, - scheduledJobs: () => w2 -}); -function T2(s10) { - return Date.UTC(s10.y, s10.m - 1, s10.d, s10.h, s10.i, s10.s); -} -function D2(s10, e11) { - return s10.y === e11.y && s10.m === e11.m && s10.d === e11.d && s10.h === e11.h && s10.i === e11.i && s10.s === e11.s; -} -function A2(s10, e11) { - let t9 = new Date(Date.parse(s10)); - if (isNaN(t9)) throw new Error("Invalid ISO8601 passed to timezone parser."); - let r11 = s10.substring(9); - return r11.includes("Z") || r11.includes("+") || r11.includes("-") ? b3(t9.getUTCFullYear(), t9.getUTCMonth() + 1, t9.getUTCDate(), t9.getUTCHours(), t9.getUTCMinutes(), t9.getUTCSeconds(), "Etc/UTC") : b3(t9.getFullYear(), t9.getMonth() + 1, t9.getDate(), t9.getHours(), t9.getMinutes(), t9.getSeconds(), e11); -} -function v2(s10, e11, t9) { - return k2(A2(s10, e11), t9); -} -function k2(s10, e11) { - let t9 = new Date(T2(s10)), r11 = g2(t9, s10.tz), n12 = T2(s10), i11 = T2(r11), a5 = n12 - i11, o13 = new Date(t9.getTime() + a5), h8 = g2(o13, s10.tz); - if (D2(h8, s10)) { - let u7 = new Date(o13.getTime() - 36e5), d5 = g2(u7, s10.tz); - return D2(d5, s10) ? u7 : o13; - } - let l6 = new Date(o13.getTime() + T2(s10) - T2(h8)), y4 = g2(l6, s10.tz); - if (D2(y4, s10)) return l6; - if (e11) throw new Error("Invalid date passed to fromTZ()"); - return o13.getTime() > l6.getTime() ? o13 : l6; -} -function g2(s10, e11) { - let t9, r11; - try { - t9 = new Intl.DateTimeFormat("en-US", { timeZone: e11, year: "numeric", month: "numeric", day: "numeric", hour: "numeric", minute: "numeric", second: "numeric", hour12: false }), r11 = t9.formatToParts(s10); - } catch (i11) { - let a5 = i11 instanceof Error ? i11.message : String(i11); - throw new RangeError(`toTZ: Invalid timezone '${e11}' or date. Please provide a valid IANA timezone (e.g., 'America/New_York', 'Europe/Stockholm'). Original error: ${a5}`); - } - let n12 = { year: 0, month: 0, day: 0, hour: 0, minute: 0, second: 0 }; - for (let i11 of r11) (i11.type === "year" || i11.type === "month" || i11.type === "day" || i11.type === "hour" || i11.type === "minute" || i11.type === "second") && (n12[i11.type] = parseInt(i11.value, 10)); - if (isNaN(n12.year) || isNaN(n12.month) || isNaN(n12.day) || isNaN(n12.hour) || isNaN(n12.minute) || isNaN(n12.second)) throw new Error(`toTZ: Failed to parse all date components from timezone '${e11}'. This may indicate an invalid date or timezone configuration. Parsed components: ${JSON.stringify(n12)}`); - return n12.hour === 24 && (n12.hour = 0), { y: n12.year, m: n12.month, d: n12.day, h: n12.hour, i: n12.minute, s: n12.second, tz: e11 }; -} -function b3(s10, e11, t9, r11, n12, i11, a5) { - return { y: s10, m: e11, d: t9, h: r11, i: n12, s: i11, tz: a5 }; -} -function R2(s10) { - if (s10 === void 0 && (s10 = {}), delete s10.name, s10.legacyMode !== void 0 && s10.domAndDow === void 0 ? s10.domAndDow = !s10.legacyMode : s10.domAndDow === void 0 && (s10.domAndDow = false), s10.legacyMode = !s10.domAndDow, s10.paused = s10.paused === void 0 ? false : s10.paused, s10.maxRuns = s10.maxRuns === void 0 ? 1 / 0 : s10.maxRuns, s10.catch = s10.catch === void 0 ? false : s10.catch, s10.interval = s10.interval === void 0 ? 0 : parseInt(s10.interval.toString(), 10), s10.utcOffset = s10.utcOffset === void 0 ? void 0 : parseInt(s10.utcOffset.toString(), 10), s10.dayOffset = s10.dayOffset === void 0 ? 0 : parseInt(s10.dayOffset.toString(), 10), s10.unref = s10.unref === void 0 ? false : s10.unref, s10.mode = s10.mode === void 0 ? "auto" : s10.mode, s10.alternativeWeekdays = s10.alternativeWeekdays === void 0 ? false : s10.alternativeWeekdays, s10.sloppyRanges = s10.sloppyRanges === void 0 ? false : s10.sloppyRanges, !["auto", "5-part", "6-part", "7-part", "5-or-6-parts", "6-or-7-parts"].includes(s10.mode)) throw new Error("CronOptions: mode must be one of 'auto', '5-part', '6-part', '7-part', '5-or-6-parts', or '6-or-7-parts'."); - if (s10.startAt && (s10.startAt = new m2(s10.startAt, s10.timezone)), s10.stopAt && (s10.stopAt = new m2(s10.stopAt, s10.timezone)), s10.interval !== null) { - if (isNaN(s10.interval)) throw new Error("CronOptions: Supplied value for interval is not a number"); - if (s10.interval < 0) throw new Error("CronOptions: Supplied value for interval can not be negative"); - } - if (s10.utcOffset !== void 0) { - if (isNaN(s10.utcOffset)) throw new Error("CronOptions: Invalid value passed for utcOffset, should be number representing minutes offset from UTC."); - if (s10.utcOffset < -870 || s10.utcOffset > 870) throw new Error("CronOptions: utcOffset out of bounds."); - if (s10.utcOffset !== void 0 && s10.timezone) throw new Error("CronOptions: Combining 'utcOffset' with 'timezone' is not allowed."); - } - if (s10.unref !== true && s10.unref !== false) throw new Error("CronOptions: Unref should be either true, false or undefined(false)."); - if (s10.dayOffset !== void 0 && s10.dayOffset !== 0 && isNaN(s10.dayOffset)) throw new Error("CronOptions: Invalid value passed for dayOffset, should be a number representing days to offset."); - return s10; -} -function p3(s10) { - return Object.prototype.toString.call(s10) === "[object Function]" || typeof s10 == "function" || s10 instanceof Function; -} -function _2(s10) { - return p3(s10); -} -function x2(s10) { - typeof Deno < "u" && typeof Deno.unrefTimer < "u" ? Deno.unrefTimer(s10) : s10 && typeof s10.unref < "u" && s10.unref(); -} -var O, C2, P2, f3, m2, W, w2, E2; -var init_croner = __esm({ - "node_modules/.pnpm/croner@10.0.1/node_modules/croner/dist/croner.js"() { - O = [1, 2, 4, 8, 16], C2 = class { - pattern; - timezone; - mode; - alternativeWeekdays; - sloppyRanges; - second; - minute; - hour; - day; - month; - dayOfWeek; - year; - lastDayOfMonth; - lastWeekday; - nearestWeekdays; - starDOM; - starDOW; - starYear; - useAndLogic; - constructor(e11, t9, r11) { - this.pattern = e11, this.timezone = t9, this.mode = r11?.mode ?? "auto", this.alternativeWeekdays = r11?.alternativeWeekdays ?? false, this.sloppyRanges = r11?.sloppyRanges ?? false, this.second = Array(60).fill(0), this.minute = Array(60).fill(0), this.hour = Array(24).fill(0), this.day = Array(31).fill(0), this.month = Array(12).fill(0), this.dayOfWeek = Array(7).fill(0), this.year = Array(1e4).fill(0), this.lastDayOfMonth = false, this.lastWeekday = false, this.nearestWeekdays = Array(31).fill(0), this.starDOM = false, this.starDOW = false, this.starYear = false, this.useAndLogic = false, this.parse(); - } - parse() { - if (!(typeof this.pattern == "string" || this.pattern instanceof String)) throw new TypeError("CronPattern: Pattern has to be of type string."); - this.pattern.indexOf("@") >= 0 && (this.pattern = this.handleNicknames(this.pattern).trim()); - let e11 = this.pattern.match(/\S+/g) || [""], t9 = e11.length; - if (e11.length < 5 || e11.length > 7) throw new TypeError("CronPattern: invalid configuration format ('" + this.pattern + "'), exactly five, six, or seven space separated parts are required."); - if (this.mode !== "auto") { - let n12; - switch (this.mode) { - case "5-part": - n12 = 5; - break; - case "6-part": - n12 = 6; - break; - case "7-part": - n12 = 7; - break; - case "5-or-6-parts": - n12 = [5, 6]; - break; - case "6-or-7-parts": - n12 = [6, 7]; - break; - default: - n12 = 0; - } - if (!(Array.isArray(n12) ? n12.includes(t9) : t9 === n12)) { - let a5 = Array.isArray(n12) ? n12.join(" or ") : n12.toString(); - throw new TypeError(`CronPattern: mode '${this.mode}' requires exactly ${a5} parts, but pattern '${this.pattern}' has ${t9} parts.`); - } - } - if (e11.length === 5 && e11.unshift("0"), e11.length === 6 && e11.push("*"), e11[3].toUpperCase() === "LW" ? (this.lastWeekday = true, e11[3] = "") : e11[3].toUpperCase().indexOf("L") >= 0 && (e11[3] = e11[3].replace(/L/gi, ""), this.lastDayOfMonth = true), e11[3] == "*" && (this.starDOM = true), e11[6] == "*" && (this.starYear = true), e11[4].length >= 3 && (e11[4] = this.replaceAlphaMonths(e11[4])), e11[5].length >= 3 && (e11[5] = this.alternativeWeekdays ? this.replaceAlphaDaysQuartz(e11[5]) : this.replaceAlphaDays(e11[5])), e11[5].startsWith("+") && (this.useAndLogic = true, e11[5] = e11[5].substring(1), e11[5] === "")) throw new TypeError("CronPattern: Day-of-week field cannot be empty after '+' modifier."); - switch (e11[5] == "*" && (this.starDOW = true), this.pattern.indexOf("?") >= 0 && (e11[0] = e11[0].replace(/\?/g, "*"), e11[1] = e11[1].replace(/\?/g, "*"), e11[2] = e11[2].replace(/\?/g, "*"), e11[3] = e11[3].replace(/\?/g, "*"), e11[4] = e11[4].replace(/\?/g, "*"), e11[5] = e11[5].replace(/\?/g, "*"), e11[6] && (e11[6] = e11[6].replace(/\?/g, "*"))), this.mode) { - case "5-part": - e11[0] = "0", e11[6] = "*"; - break; - case "6-part": - e11[6] = "*"; - break; - case "5-or-6-parts": - e11[6] = "*"; - break; - case "6-or-7-parts": - break; - case "7-part": - case "auto": - break; - } - this.throwAtIllegalCharacters(e11), this.partToArray("second", e11[0], 0, 1), this.partToArray("minute", e11[1], 0, 1), this.partToArray("hour", e11[2], 0, 1), this.partToArray("day", e11[3], -1, 1), this.partToArray("month", e11[4], -1, 1); - let r11 = this.alternativeWeekdays ? -1 : 0; - this.partToArray("dayOfWeek", e11[5], r11, 63), this.partToArray("year", e11[6], 0, 1), !this.alternativeWeekdays && this.dayOfWeek[7] && (this.dayOfWeek[0] = this.dayOfWeek[7]); - } - partToArray(e11, t9, r11, n12) { - let i11 = this[e11], a5 = e11 === "day" && this.lastDayOfMonth, o13 = e11 === "day" && this.lastWeekday; - if (t9 === "" && !a5 && !o13) throw new TypeError("CronPattern: configuration entry " + e11 + " (" + t9 + ") is empty, check for trailing spaces."); - if (t9 === "*") return i11.fill(n12); - let h8 = t9.split(","); - if (h8.length > 1) for (let l6 = 0; l6 < h8.length; l6++) this.partToArray(e11, h8[l6], r11, n12); - else t9.indexOf("-") !== -1 && t9.indexOf("/") !== -1 ? this.handleRangeWithStepping(t9, e11, r11, n12) : t9.indexOf("-") !== -1 ? this.handleRange(t9, e11, r11, n12) : t9.indexOf("/") !== -1 ? this.handleStepping(t9, e11, r11, n12) : t9 !== "" && this.handleNumber(t9, e11, r11, n12); - } - throwAtIllegalCharacters(e11) { - for (let t9 = 0; t9 < e11.length; t9++) if ((t9 === 3 ? /[^/*0-9,\-WwLl]+/ : t9 === 5 ? /[^/*0-9,\-#Ll]+/ : /[^/*0-9,\-]+/).test(e11[t9])) throw new TypeError("CronPattern: configuration entry " + t9 + " (" + e11[t9] + ") contains illegal characters."); - } - handleNumber(e11, t9, r11, n12) { - let i11 = this.extractNth(e11, t9), a5 = e11.toUpperCase().includes("W"); - if (t9 !== "day" && a5) throw new TypeError("CronPattern: Nearest weekday modifier (W) only allowed in day-of-month."); - a5 && (t9 = "nearestWeekdays"); - let o13 = parseInt(i11[0], 10) + r11; - if (isNaN(o13)) throw new TypeError("CronPattern: " + t9 + " is not a number: '" + e11 + "'"); - this.setPart(t9, o13, i11[1] || n12); - } - setPart(e11, t9, r11) { - if (!Object.prototype.hasOwnProperty.call(this, e11)) throw new TypeError("CronPattern: Invalid part specified: " + e11); - if (e11 === "dayOfWeek") { - if (t9 === 7 && (t9 = 0), t9 < 0 || t9 > 6) throw new RangeError("CronPattern: Invalid value for dayOfWeek: " + t9); - this.setNthWeekdayOfMonth(t9, r11); - return; - } - if (e11 === "second" || e11 === "minute") { - if (t9 < 0 || t9 >= 60) throw new RangeError("CronPattern: Invalid value for " + e11 + ": " + t9); - } else if (e11 === "hour") { - if (t9 < 0 || t9 >= 24) throw new RangeError("CronPattern: Invalid value for " + e11 + ": " + t9); - } else if (e11 === "day" || e11 === "nearestWeekdays") { - if (t9 < 0 || t9 >= 31) throw new RangeError("CronPattern: Invalid value for " + e11 + ": " + t9); - } else if (e11 === "month") { - if (t9 < 0 || t9 >= 12) throw new RangeError("CronPattern: Invalid value for " + e11 + ": " + t9); - } else if (e11 === "year" && (t9 < 1 || t9 >= 1e4)) throw new RangeError("CronPattern: Invalid value for " + e11 + ": " + t9 + " (supported range: 1-9999)"); - this[e11][t9] = r11; - } - validateNotNaN(e11, t9) { - if (isNaN(e11)) throw new TypeError(t9); - } - validateRange(e11, t9, r11, n12, i11) { - if (e11 > t9) throw new TypeError("CronPattern: From value is larger than to value: '" + i11 + "'"); - if (r11 !== void 0) { - if (r11 === 0) throw new TypeError("CronPattern: Syntax error, illegal stepping: 0"); - if (r11 > this[n12].length) throw new TypeError("CronPattern: Syntax error, steps cannot be greater than maximum value of part (" + this[n12].length + ")"); - } - } - handleRangeWithStepping(e11, t9, r11, n12) { - if (e11.toUpperCase().includes("W")) throw new TypeError("CronPattern: Syntax error, W is not allowed in ranges with stepping."); - let i11 = this.extractNth(e11, t9), a5 = i11[0].match(/^(\d+)-(\d+)\/(\d+)$/); - if (a5 === null) throw new TypeError("CronPattern: Syntax error, illegal range with stepping: '" + e11 + "'"); - let [, o13, h8, l6] = a5, y4 = parseInt(o13, 10) + r11, u7 = parseInt(h8, 10) + r11, d5 = parseInt(l6, 10); - this.validateNotNaN(y4, "CronPattern: Syntax error, illegal lower range (NaN)"), this.validateNotNaN(u7, "CronPattern: Syntax error, illegal upper range (NaN)"), this.validateNotNaN(d5, "CronPattern: Syntax error, illegal stepping: (NaN)"), this.validateRange(y4, u7, d5, t9, e11); - for (let c11 = y4; c11 <= u7; c11 += d5) this.setPart(t9, c11, i11[1] || n12); - } - extractNth(e11, t9) { - let r11 = e11, n12; - if (r11.includes("#")) { - if (t9 !== "dayOfWeek") throw new Error("CronPattern: nth (#) only allowed in day-of-week field"); - n12 = r11.split("#")[1], r11 = r11.split("#")[0]; - } else if (r11.toUpperCase().endsWith("L")) { - if (t9 !== "dayOfWeek") throw new Error("CronPattern: L modifier only allowed in day-of-week field (use L alone for day-of-month)"); - n12 = "L", r11 = r11.slice(0, -1); - } - return [r11, n12]; - } - handleRange(e11, t9, r11, n12) { - if (e11.toUpperCase().includes("W")) throw new TypeError("CronPattern: Syntax error, W is not allowed in a range."); - let i11 = this.extractNth(e11, t9), a5 = i11[0].split("-"); - if (a5.length !== 2) throw new TypeError("CronPattern: Syntax error, illegal range: '" + e11 + "'"); - let o13 = parseInt(a5[0], 10) + r11, h8 = parseInt(a5[1], 10) + r11; - this.validateNotNaN(o13, "CronPattern: Syntax error, illegal lower range (NaN)"), this.validateNotNaN(h8, "CronPattern: Syntax error, illegal upper range (NaN)"), this.validateRange(o13, h8, void 0, t9, e11); - for (let l6 = o13; l6 <= h8; l6++) this.setPart(t9, l6, i11[1] || n12); - } - handleStepping(e11, t9, r11, n12) { - if (e11.toUpperCase().includes("W")) throw new TypeError("CronPattern: Syntax error, W is not allowed in parts with stepping."); - let i11 = this.extractNth(e11, t9), a5 = i11[0].split("/"); - if (a5.length !== 2) throw new TypeError("CronPattern: Syntax error, illegal stepping: '" + e11 + "'"); - if (this.sloppyRanges) a5[0] === "" && (a5[0] = "*"); - else { - if (a5[0] === "") throw new TypeError("CronPattern: Syntax error, stepping with missing prefix ('" + e11 + "') is not allowed. Use wildcard (*/step) or range (min-max/step) instead."); - if (a5[0] !== "*") throw new TypeError("CronPattern: Syntax error, stepping with numeric prefix ('" + e11 + "') is not allowed. Use wildcard (*/step) or range (min-max/step) instead."); - } - let o13 = 0; - a5[0] !== "*" && (o13 = parseInt(a5[0], 10) + r11); - let h8 = parseInt(a5[1], 10); - this.validateNotNaN(h8, "CronPattern: Syntax error, illegal stepping: (NaN)"), this.validateRange(0, this[t9].length - 1, h8, t9, e11); - for (let l6 = o13; l6 < this[t9].length; l6 += h8) this.setPart(t9, l6, i11[1] || n12); - } - replaceAlphaDays(e11) { - return e11.replace(/-sun/gi, "-7").replace(/sun/gi, "0").replace(/mon/gi, "1").replace(/tue/gi, "2").replace(/wed/gi, "3").replace(/thu/gi, "4").replace(/fri/gi, "5").replace(/sat/gi, "6"); - } - replaceAlphaDaysQuartz(e11) { - return e11.replace(/sun/gi, "1").replace(/mon/gi, "2").replace(/tue/gi, "3").replace(/wed/gi, "4").replace(/thu/gi, "5").replace(/fri/gi, "6").replace(/sat/gi, "7"); - } - replaceAlphaMonths(e11) { - return e11.replace(/jan/gi, "1").replace(/feb/gi, "2").replace(/mar/gi, "3").replace(/apr/gi, "4").replace(/may/gi, "5").replace(/jun/gi, "6").replace(/jul/gi, "7").replace(/aug/gi, "8").replace(/sep/gi, "9").replace(/oct/gi, "10").replace(/nov/gi, "11").replace(/dec/gi, "12"); - } - handleNicknames(e11) { - let t9 = e11.trim().toLowerCase(); - if (t9 === "@yearly" || t9 === "@annually") return "0 0 1 1 *"; - if (t9 === "@monthly") return "0 0 1 * *"; - if (t9 === "@weekly") return "0 0 * * 0"; - if (t9 === "@daily" || t9 === "@midnight") return "0 0 * * *"; - if (t9 === "@hourly") return "0 * * * *"; - if (t9 === "@reboot") throw new TypeError("CronPattern: @reboot is not supported in this environment. This is an event-based trigger that requires system startup detection."); - return e11; - } - setNthWeekdayOfMonth(e11, t9) { - if (typeof t9 != "number" && t9.toUpperCase() === "L") this.dayOfWeek[e11] = this.dayOfWeek[e11] | 32; - else if (t9 === 63) this.dayOfWeek[e11] = 63; - else if (t9 < 6 && t9 > 0) this.dayOfWeek[e11] = this.dayOfWeek[e11] | O[t9 - 1]; - else throw new TypeError(`CronPattern: nth weekday out of range, should be 1-5 or L. Value: ${t9}, Type: ${typeof t9}`); - } - }; - P2 = [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31], f3 = [["month", "year", 0], ["day", "month", -1], ["hour", "day", 0], ["minute", "hour", 0], ["second", "minute", 0]], m2 = class s4 { - tz; - ms; - second; - minute; - hour; - day; - month; - year; - constructor(e11, t9) { - if (this.tz = t9, e11 && e11 instanceof Date) if (!isNaN(e11)) this.fromDate(e11); - else throw new TypeError("CronDate: Invalid date passed to CronDate constructor"); - else if (e11 == null) this.fromDate(/* @__PURE__ */ new Date()); - else if (e11 && typeof e11 == "string") this.fromString(e11); - else if (e11 instanceof s4) this.fromCronDate(e11); - else throw new TypeError("CronDate: Invalid type (" + typeof e11 + ") passed to CronDate constructor"); - } - getLastDayOfMonth(e11, t9) { - return t9 !== 1 ? P2[t9] : new Date(Date.UTC(e11, t9 + 1, 0)).getUTCDate(); - } - getLastWeekday(e11, t9) { - let r11 = this.getLastDayOfMonth(e11, t9), i11 = new Date(Date.UTC(e11, t9, r11)).getUTCDay(); - return i11 === 0 ? r11 - 2 : i11 === 6 ? r11 - 1 : r11; - } - getNearestWeekday(e11, t9, r11) { - let n12 = this.getLastDayOfMonth(e11, t9); - if (r11 > n12) return -1; - let a5 = new Date(Date.UTC(e11, t9, r11)).getUTCDay(); - return a5 === 0 ? r11 === n12 ? r11 - 2 : r11 + 1 : a5 === 6 ? r11 === 1 ? r11 + 2 : r11 - 1 : r11; - } - isNthWeekdayOfMonth(e11, t9, r11, n12) { - let a5 = new Date(Date.UTC(e11, t9, r11)).getUTCDay(), o13 = 0; - for (let h8 = 1; h8 <= r11; h8++) new Date(Date.UTC(e11, t9, h8)).getUTCDay() === a5 && o13++; - if (n12 & 63 && O[o13 - 1] & n12) return true; - if (n12 & 32) { - let h8 = this.getLastDayOfMonth(e11, t9); - for (let l6 = r11 + 1; l6 <= h8; l6++) if (new Date(Date.UTC(e11, t9, l6)).getUTCDay() === a5) return false; - return true; - } - return false; - } - fromDate(e11) { - if (this.tz !== void 0) if (typeof this.tz == "number") this.ms = e11.getUTCMilliseconds(), this.second = e11.getUTCSeconds(), this.minute = e11.getUTCMinutes() + this.tz, this.hour = e11.getUTCHours(), this.day = e11.getUTCDate(), this.month = e11.getUTCMonth(), this.year = e11.getUTCFullYear(), this.apply(); - else try { - let t9 = g2(e11, this.tz); - this.ms = e11.getMilliseconds(), this.second = t9.s, this.minute = t9.i, this.hour = t9.h, this.day = t9.d, this.month = t9.m - 1, this.year = t9.y; - } catch (t9) { - let r11 = t9 instanceof Error ? t9.message : String(t9); - throw new TypeError(`CronDate: Failed to convert date to timezone '${this.tz}'. This may happen with invalid timezone names or dates. Original error: ${r11}`); - } - else this.ms = e11.getMilliseconds(), this.second = e11.getSeconds(), this.minute = e11.getMinutes(), this.hour = e11.getHours(), this.day = e11.getDate(), this.month = e11.getMonth(), this.year = e11.getFullYear(); - } - fromCronDate(e11) { - this.tz = e11.tz, this.year = e11.year, this.month = e11.month, this.day = e11.day, this.hour = e11.hour, this.minute = e11.minute, this.second = e11.second, this.ms = e11.ms; - } - apply() { - if (this.month > 11 || this.month < 0 || this.day > P2[this.month] || this.day < 1 || this.hour > 59 || this.minute > 59 || this.second > 59 || this.hour < 0 || this.minute < 0 || this.second < 0) { - let e11 = new Date(Date.UTC(this.year, this.month, this.day, this.hour, this.minute, this.second, this.ms)); - return this.ms = e11.getUTCMilliseconds(), this.second = e11.getUTCSeconds(), this.minute = e11.getUTCMinutes(), this.hour = e11.getUTCHours(), this.day = e11.getUTCDate(), this.month = e11.getUTCMonth(), this.year = e11.getUTCFullYear(), true; - } else return false; - } - fromString(e11) { - if (typeof this.tz == "number") { - let t9 = v2(e11); - this.ms = t9.getUTCMilliseconds(), this.second = t9.getUTCSeconds(), this.minute = t9.getUTCMinutes(), this.hour = t9.getUTCHours(), this.day = t9.getUTCDate(), this.month = t9.getUTCMonth(), this.year = t9.getUTCFullYear(), this.apply(); - } else return this.fromDate(v2(e11, this.tz)); - } - findNext(e11, t9, r11, n12) { - return this._findMatch(e11, t9, r11, n12, 1); - } - _findMatch(e11, t9, r11, n12, i11) { - let a5 = this[t9], o13; - r11.lastDayOfMonth && (o13 = this.getLastDayOfMonth(this.year, this.month)); - let h8 = !r11.starDOW && t9 == "day" ? new Date(Date.UTC(this.year, this.month, 1, 0, 0, 0, 0)).getUTCDay() : void 0, l6 = this[t9] + n12, y4 = i11 === 1 ? (u7) => u7 < r11[t9].length : (u7) => u7 >= 0; - for (let u7 = l6; y4(u7); u7 += i11) { - let d5 = r11[t9][u7]; - if (t9 === "day" && !d5) { - for (let c11 = 0; c11 < r11.nearestWeekdays.length; c11++) if (r11.nearestWeekdays[c11]) { - let M4 = this.getNearestWeekday(this.year, this.month, c11 - n12); - if (M4 === -1) continue; - if (M4 === u7 - n12) { - d5 = 1; - break; - } - } - } - if (t9 === "day" && r11.lastWeekday) { - let c11 = this.getLastWeekday(this.year, this.month); - u7 - n12 === c11 && (d5 = 1); - } - if (t9 === "day" && r11.lastDayOfMonth && u7 - n12 == o13 && (d5 = 1), t9 === "day" && !r11.starDOW) { - let c11 = r11.dayOfWeek[(h8 + (u7 - n12 - 1)) % 7]; - if (c11 && c11 & 63) c11 = this.isNthWeekdayOfMonth(this.year, this.month, u7 - n12, c11) ? 1 : 0; - else if (c11) throw new Error(`CronDate: Invalid value for dayOfWeek encountered. ${c11}`); - r11.useAndLogic ? d5 = d5 && c11 : !e11.domAndDow && !r11.starDOM ? d5 = d5 || c11 : d5 = d5 && c11; - } - if (d5) return this[t9] = u7 - n12, a5 !== this[t9] ? 2 : 1; - } - return 3; - } - recurse(e11, t9, r11) { - if (r11 === 0 && !e11.starYear) { - if (this.year >= 0 && this.year < e11.year.length && e11.year[this.year] === 0) { - let i11 = -1; - for (let a5 = this.year + 1; a5 < e11.year.length && a5 < 1e4; a5++) if (e11.year[a5] === 1) { - i11 = a5; - break; - } - if (i11 === -1) return null; - this.year = i11, this.month = 0, this.day = 1, this.hour = 0, this.minute = 0, this.second = 0, this.ms = 0; - } - if (this.year >= 1e4) return null; - } - let n12 = this.findNext(t9, f3[r11][0], e11, f3[r11][2]); - if (n12 > 1) { - let i11 = r11 + 1; - for (; i11 < f3.length; ) this[f3[i11][0]] = -f3[i11][2], i11++; - if (n12 === 3) { - if (this[f3[r11][1]]++, this[f3[r11][0]] = -f3[r11][2], this.apply(), r11 === 0 && !e11.starYear) { - for (; this.year >= 0 && this.year < e11.year.length && e11.year[this.year] === 0 && this.year < 1e4; ) this.year++; - if (this.year >= 1e4 || this.year >= e11.year.length) return null; - } - return this.recurse(e11, t9, 0); - } else if (this.apply()) return this.recurse(e11, t9, r11 - 1); - } - return r11 += 1, r11 >= f3.length ? this : (e11.starYear ? this.year >= 3e3 : this.year >= 1e4) ? null : this.recurse(e11, t9, r11); - } - increment(e11, t9, r11) { - return this.second += t9.interval !== void 0 && t9.interval > 1 && r11 ? t9.interval : 1, this.ms = 0, this.apply(), this.recurse(e11, t9, 0); - } - decrement(e11, t9) { - return this.second -= t9.interval !== void 0 && t9.interval > 1 ? t9.interval : 1, this.ms = 0, this.apply(), this.recurseBackward(e11, t9, 0, 0); - } - recurseBackward(e11, t9, r11, n12 = 0) { - if (n12 > 1e4) return null; - if (r11 === 0 && !e11.starYear) { - if (this.year >= 0 && this.year < e11.year.length && e11.year[this.year] === 0) { - let a5 = -1; - for (let o13 = this.year - 1; o13 >= 0; o13--) if (e11.year[o13] === 1) { - a5 = o13; - break; - } - if (a5 === -1) return null; - this.year = a5, this.month = 11, this.day = 31, this.hour = 23, this.minute = 59, this.second = 59, this.ms = 0; - } - if (this.year < 0) return null; - } - let i11 = this.findPrevious(t9, f3[r11][0], e11, f3[r11][2]); - if (i11 > 1) { - let a5 = r11 + 1; - for (; a5 < f3.length; ) { - let o13 = f3[a5][0], h8 = f3[a5][2], l6 = this.getMaxPatternValue(o13, e11, h8); - this[o13] = l6, a5++; - } - if (i11 === 3) { - if (this[f3[r11][1]]--, r11 === 0) { - let y4 = this.getLastDayOfMonth(this.year, this.month); - this.day > y4 && (this.day = y4); - } - if (r11 === 1) if (this.day <= 0) this.day = 1; - else { - let y4 = this.year, u7 = this.month; - for (; u7 < 0; ) u7 += 12, y4--; - for (; u7 > 11; ) u7 -= 12, y4++; - let d5 = u7 !== 1 ? P2[u7] : new Date(Date.UTC(y4, u7 + 1, 0)).getUTCDate(); - this.day > d5 && (this.day = d5); - } - this.apply(); - let o13 = f3[r11][0], h8 = f3[r11][2], l6 = this.getMaxPatternValue(o13, e11, h8); - if (o13 === "day") { - let y4 = this.getLastDayOfMonth(this.year, this.month); - this[o13] = Math.min(l6, y4); - } else this[o13] = l6; - if (this.apply(), r11 === 0) { - let y4 = f3[1][2], u7 = this.getMaxPatternValue("day", e11, y4), d5 = this.getLastDayOfMonth(this.year, this.month), c11 = Math.min(u7, d5); - c11 !== this.day && (this.day = c11, this.hour = this.getMaxPatternValue("hour", e11, f3[2][2]), this.minute = this.getMaxPatternValue("minute", e11, f3[3][2]), this.second = this.getMaxPatternValue("second", e11, f3[4][2])); - } - if (r11 === 0 && !e11.starYear) { - for (; this.year >= 0 && this.year < e11.year.length && e11.year[this.year] === 0; ) this.year--; - if (this.year < 0) return null; - } - return this.recurseBackward(e11, t9, 0, n12 + 1); - } else if (this.apply()) return this.recurseBackward(e11, t9, r11 - 1, n12 + 1); - } - return r11 += 1, r11 >= f3.length ? this : this.year < 0 ? null : this.recurseBackward(e11, t9, r11, n12 + 1); - } - getMaxPatternValue(e11, t9, r11) { - if (e11 === "day" && t9.lastDayOfMonth) return this.getLastDayOfMonth(this.year, this.month); - if (e11 === "day" && !t9.starDOW) return this.getLastDayOfMonth(this.year, this.month); - for (let n12 = t9[e11].length - 1; n12 >= 0; n12--) if (t9[e11][n12]) return n12 - r11; - return t9[e11].length - 1 - r11; - } - findPrevious(e11, t9, r11, n12) { - return this._findMatch(e11, t9, r11, n12, -1); - } - getDate(e11) { - return e11 || this.tz === void 0 ? new Date(this.year, this.month, this.day, this.hour, this.minute, this.second, this.ms) : typeof this.tz == "number" ? new Date(Date.UTC(this.year, this.month, this.day, this.hour, this.minute - this.tz, this.second, this.ms)) : k2(b3(this.year, this.month + 1, this.day, this.hour, this.minute, this.second, this.tz), false); - } - getTime() { - return this.getDate(false).getTime(); - } - match(e11, t9) { - if (!e11.starYear && (this.year < 0 || this.year >= e11.year.length || e11.year[this.year] === 0)) return false; - for (let r11 = 0; r11 < f3.length; r11++) { - let n12 = f3[r11][0], i11 = f3[r11][2], a5 = this[n12]; - if (a5 + i11 < 0 || a5 + i11 >= e11[n12].length) return false; - let o13 = e11[n12][a5 + i11]; - if (n12 === "day") { - if (!o13) { - for (let h8 = 0; h8 < e11.nearestWeekdays.length; h8++) if (e11.nearestWeekdays[h8]) { - let l6 = this.getNearestWeekday(this.year, this.month, h8 - i11); - if (l6 !== -1 && l6 === a5) { - o13 = 1; - break; - } - } - } - if (e11.lastWeekday) { - let h8 = this.getLastWeekday(this.year, this.month); - a5 === h8 && (o13 = 1); - } - if (e11.lastDayOfMonth) { - let h8 = this.getLastDayOfMonth(this.year, this.month); - a5 === h8 && (o13 = 1); - } - if (!e11.starDOW) { - let h8 = new Date(Date.UTC(this.year, this.month, 1, 0, 0, 0, 0)).getUTCDay(), l6 = e11.dayOfWeek[(h8 + (a5 - 1)) % 7]; - l6 && l6 & 63 && (l6 = this.isNthWeekdayOfMonth(this.year, this.month, a5, l6) ? 1 : 0), e11.useAndLogic ? o13 = o13 && l6 : !t9.domAndDow && !e11.starDOM ? o13 = o13 || l6 : o13 = o13 && l6; - } - } - if (!o13) return false; - } - return true; - } - }; - W = 30 * 1e3, w2 = [], E2 = class { - name; - options; - _states; - fn; - getTz() { - return this.options.timezone || this.options.utcOffset; - } - applyDayOffset(e11) { - if (this.options.dayOffset !== void 0 && this.options.dayOffset !== 0) { - let t9 = this.options.dayOffset * 24 * 60 * 60 * 1e3; - return new Date(e11.getTime() + t9); - } - return e11; - } - constructor(e11, t9, r11) { - let n12, i11; - if (p3(t9)) i11 = t9; - else if (typeof t9 == "object") n12 = t9; - else if (t9 !== void 0) throw new Error("Cron: Invalid argument passed for optionsIn. Should be one of function, or object (options)."); - if (p3(r11)) i11 = r11; - else if (typeof r11 == "object") n12 = r11; - else if (r11 !== void 0) throw new Error("Cron: Invalid argument passed for funcIn. Should be one of function, or object (options)."); - if (this.name = n12?.name, this.options = R2(n12), this._states = { kill: false, blocking: false, previousRun: void 0, currentRun: void 0, once: void 0, currentTimeout: void 0, maxRuns: n12 ? n12.maxRuns : void 0, paused: n12 ? n12.paused : false, pattern: new C2("* * * * *", void 0, { mode: "auto" }) }, e11 && (e11 instanceof Date || typeof e11 == "string" && e11.indexOf(":") > 0) ? this._states.once = new m2(e11, this.getTz()) : this._states.pattern = new C2(e11, this.options.timezone, { mode: this.options.mode, alternativeWeekdays: this.options.alternativeWeekdays, sloppyRanges: this.options.sloppyRanges }), this.name) { - if (w2.find((o13) => o13.name === this.name)) throw new Error("Cron: Tried to initialize new named job '" + this.name + "', but name already taken."); - w2.push(this); - } - return i11 !== void 0 && _2(i11) && (this.fn = i11, this.schedule()), this; - } - nextRun(e11) { - let t9 = this._next(e11); - return t9 ? this.applyDayOffset(t9.getDate(false)) : null; - } - nextRuns(e11, t9) { - this._states.maxRuns !== void 0 && e11 > this._states.maxRuns && (e11 = this._states.maxRuns); - let r11 = t9 || this._states.currentRun || void 0; - return this._enumerateRuns(e11, r11, "next"); - } - previousRuns(e11, t9) { - return this._enumerateRuns(e11, t9 || void 0, "previous"); - } - _enumerateRuns(e11, t9, r11) { - let n12 = [], i11 = t9 ? new m2(t9, this.getTz()) : null, a5 = r11 === "next" ? this._next : this._previous; - for (; e11--; ) { - let o13 = a5.call(this, i11); - if (!o13) break; - let h8 = o13.getDate(false); - n12.push(this.applyDayOffset(h8)), i11 = o13; - } - return n12; - } - match(e11) { - if (this._states.once) { - let r11 = new m2(e11, this.getTz()); - r11.ms = 0; - let n12 = new m2(this._states.once, this.getTz()); - return n12.ms = 0, r11.getTime() === n12.getTime(); - } - let t9 = new m2(e11, this.getTz()); - return t9.ms = 0, t9.match(this._states.pattern, this.options); - } - getPattern() { - if (!this._states.once) return this._states.pattern ? this._states.pattern.pattern : void 0; - } - getOnce() { - return this._states.once ? this._states.once.getDate() : null; - } - isRunning() { - let e11 = this.nextRun(this._states.currentRun), t9 = !this._states.paused, r11 = this.fn !== void 0, n12 = !this._states.kill; - return t9 && r11 && n12 && e11 !== null; - } - isStopped() { - return this._states.kill; - } - isBusy() { - return this._states.blocking; - } - currentRun() { - return this._states.currentRun ? this._states.currentRun.getDate() : null; - } - previousRun() { - return this._states.previousRun ? this._states.previousRun.getDate() : null; - } - msToNext(e11) { - let t9 = this._next(e11); - return t9 ? e11 instanceof m2 || e11 instanceof Date ? t9.getTime() - e11.getTime() : t9.getTime() - new m2(e11).getTime() : null; - } - stop() { - this._states.kill = true, this._states.currentTimeout && clearTimeout(this._states.currentTimeout); - let e11 = w2.indexOf(this); - e11 >= 0 && w2.splice(e11, 1); - } - pause() { - return this._states.paused = true, !this._states.kill; - } - resume() { - return this._states.paused = false, !this._states.kill; - } - schedule(e11) { - if (e11 && this.fn) throw new Error("Cron: It is not allowed to schedule two functions using the same Croner instance."); - e11 && (this.fn = e11); - let t9 = this.msToNext(), r11 = this.nextRun(this._states.currentRun); - return t9 == null || isNaN(t9) || r11 === null ? this : (t9 > W && (t9 = W), this._states.currentTimeout = setTimeout(() => this._checkTrigger(r11), t9), this._states.currentTimeout && this.options.unref && x2(this._states.currentTimeout), this); - } - async _trigger(e11) { - this._states.blocking = true, this._states.currentRun = new m2(void 0, this.getTz()); - try { - if (this.options.catch) try { - this.fn !== void 0 && await this.fn(this, this.options.context); - } catch (t9) { - if (p3(this.options.catch)) try { - this.options.catch(t9, this); - } catch { - } - } - else this.fn !== void 0 && await this.fn(this, this.options.context); - } finally { - this._states.previousRun = new m2(e11, this.getTz()), this._states.blocking = false; - } - } - async trigger() { - await this._trigger(); - } - runsLeft() { - return this._states.maxRuns; - } - _checkTrigger(e11) { - let t9 = /* @__PURE__ */ new Date(), r11 = !this._states.paused && t9.getTime() >= e11.getTime(), n12 = this._states.blocking && this.options.protect; - r11 && !n12 ? (this._states.maxRuns !== void 0 && this._states.maxRuns--, this._trigger()) : r11 && n12 && p3(this.options.protect) && setTimeout(() => this.options.protect(this), 0), this.schedule(); - } - _next(e11) { - let t9 = !!(e11 || this._states.currentRun), r11 = false; - !e11 && this.options.startAt && this.options.interval && ([e11, t9] = this._calculatePreviousRun(e11, t9), r11 = !e11), e11 = new m2(e11, this.getTz()), this.options.startAt && e11 && e11.getTime() < this.options.startAt.getTime() && (e11 = this.options.startAt); - let n12 = this._states.once || new m2(e11, this.getTz()); - return !r11 && n12 !== this._states.once && (n12 = n12.increment(this._states.pattern, this.options, t9)), this._states.once && this._states.once.getTime() <= e11.getTime() || n12 === null || this._states.maxRuns !== void 0 && this._states.maxRuns <= 0 || this._states.kill || this.options.stopAt && n12.getTime() >= this.options.stopAt.getTime() ? null : n12; - } - _previous(e11) { - let t9 = new m2(e11, this.getTz()); - this.options.stopAt && t9.getTime() > this.options.stopAt.getTime() && (t9 = this.options.stopAt); - let r11 = new m2(t9, this.getTz()); - return this._states.once ? this._states.once.getTime() < t9.getTime() ? this._states.once : null : (r11 = r11.decrement(this._states.pattern, this.options), r11 === null || this.options.startAt && r11.getTime() < this.options.startAt.getTime() ? null : r11); - } - _calculatePreviousRun(e11, t9) { - let r11 = new m2(void 0, this.getTz()), n12 = e11; - if (this.options.startAt.getTime() <= r11.getTime()) { - n12 = this.options.startAt; - let i11 = n12.getTime() + this.options.interval * 1e3; - for (; i11 <= r11.getTime(); ) n12 = new m2(n12, this.getTz()).increment(this._states.pattern, this.options, true), i11 = n12.getTime() + this.options.interval * 1e3; - t9 = true; - } - return n12 === null && (n12 = void 0), [n12, t9]; - } - }; - } -}); - -// node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/constants.js -var daysInWeek, daysInYear, maxTime, minTime, millisecondsInWeek, millisecondsInDay, millisecondsInMinute, millisecondsInHour, millisecondsInSecond, minutesInYear, minutesInMonth, minutesInDay, minutesInHour, monthsInQuarter, monthsInYear, quartersInYear, secondsInHour, secondsInMinute, secondsInDay, secondsInWeek, secondsInYear, secondsInMonth, secondsInQuarter, constructFromSymbol; -var init_constants = __esm({ - "node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/constants.js"() { - daysInWeek = 7; - daysInYear = 365.2425; - maxTime = Math.pow(10, 8) * 24 * 60 * 60 * 1e3; - minTime = -maxTime; - millisecondsInWeek = 6048e5; - millisecondsInDay = 864e5; - millisecondsInMinute = 6e4; - millisecondsInHour = 36e5; - millisecondsInSecond = 1e3; - minutesInYear = 525600; - minutesInMonth = 43200; - minutesInDay = 1440; - minutesInHour = 60; - monthsInQuarter = 3; - monthsInYear = 12; - quartersInYear = 4; - secondsInHour = 3600; - secondsInMinute = 60; - secondsInDay = secondsInHour * 24; - secondsInWeek = secondsInDay * 7; - secondsInYear = secondsInDay * daysInYear; - secondsInMonth = secondsInYear / 12; - secondsInQuarter = secondsInMonth * 3; - constructFromSymbol = /* @__PURE__ */ Symbol.for("constructDateFrom"); - } -}); - -// node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/constructFrom.js -function constructFrom(date, value2) { - if (typeof date === "function") return date(value2); - if (date && typeof date === "object" && constructFromSymbol in date) - return date[constructFromSymbol](value2); - if (date instanceof Date) return new date.constructor(value2); - return new Date(value2); -} -var constructFrom_default; -var init_constructFrom = __esm({ - "node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/constructFrom.js"() { - init_constants(); - constructFrom_default = constructFrom; - } -}); - -// node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/toDate.js -function toDate(argument, context2) { - return constructFrom(context2 || argument, argument); -} -var toDate_default; -var init_toDate = __esm({ - "node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/toDate.js"() { - init_constructFrom(); - toDate_default = toDate; - } -}); - -// node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/addDays.js -function addDays(date, amount, options) { - const _date = toDate(date, options?.in); - if (isNaN(amount)) return constructFrom(options?.in || date, NaN); - if (!amount) return _date; - _date.setDate(_date.getDate() + amount); - return _date; -} -var addDays_default; -var init_addDays = __esm({ - "node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/addDays.js"() { - init_constructFrom(); - init_toDate(); - addDays_default = addDays; - } -}); - -// node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/addMonths.js -function addMonths(date, amount, options) { - const _date = toDate(date, options?.in); - if (isNaN(amount)) return constructFrom(options?.in || date, NaN); - if (!amount) { - return _date; - } - const dayOfMonth = _date.getDate(); - const endOfDesiredMonth = constructFrom(options?.in || date, _date.getTime()); - endOfDesiredMonth.setMonth(_date.getMonth() + amount + 1, 0); - const daysInMonth = endOfDesiredMonth.getDate(); - if (dayOfMonth >= daysInMonth) { - return endOfDesiredMonth; - } else { - _date.setFullYear( - endOfDesiredMonth.getFullYear(), - endOfDesiredMonth.getMonth(), - dayOfMonth - ); - return _date; - } -} -var addMonths_default; -var init_addMonths = __esm({ - "node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/addMonths.js"() { - init_constructFrom(); - init_toDate(); - addMonths_default = addMonths; - } -}); - -// node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/add.js -function add(date, duration, options) { - const { - years = 0, - months: months2 = 0, - weeks = 0, - days: days2 = 0, - hours = 0, - minutes = 0, - seconds = 0 - } = duration; - const _date = toDate(date, options?.in); - const dateWithMonths = months2 || years ? addMonths(_date, months2 + years * 12) : _date; - const dateWithDays = days2 || weeks ? addDays(dateWithMonths, days2 + weeks * 7) : dateWithMonths; - const minutesToAdd = minutes + hours * 60; - const secondsToAdd = seconds + minutesToAdd * 60; - const msToAdd = secondsToAdd * 1e3; - return constructFrom(options?.in || date, +dateWithDays + msToAdd); -} -var add_default; -var init_add = __esm({ - "node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/add.js"() { - init_addDays(); - init_addMonths(); - init_constructFrom(); - init_toDate(); - add_default = add; - } -}); - -// node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/isSaturday.js -function isSaturday(date, options) { - return toDate(date, options?.in).getDay() === 6; -} -var isSaturday_default; -var init_isSaturday = __esm({ - "node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/isSaturday.js"() { - init_toDate(); - isSaturday_default = isSaturday; - } -}); - -// node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/isSunday.js -function isSunday(date, options) { - return toDate(date, options?.in).getDay() === 0; -} -var isSunday_default; -var init_isSunday = __esm({ - "node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/isSunday.js"() { - init_toDate(); - isSunday_default = isSunday; - } -}); - -// node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/isWeekend.js -function isWeekend(date, options) { - const day = toDate(date, options?.in).getDay(); - return day === 0 || day === 6; -} -var isWeekend_default; -var init_isWeekend = __esm({ - "node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/isWeekend.js"() { - init_toDate(); - isWeekend_default = isWeekend; - } -}); - -// node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/addBusinessDays.js -function addBusinessDays(date, amount, options) { - const _date = toDate(date, options?.in); - const startedOnWeekend = isWeekend(_date, options); - if (isNaN(amount)) return constructFrom(options?.in, NaN); - const hours = _date.getHours(); - const sign = amount < 0 ? -1 : 1; - const fullWeeks = Math.trunc(amount / 5); - _date.setDate(_date.getDate() + fullWeeks * 7); - let restDays = Math.abs(amount % 5); - while (restDays > 0) { - _date.setDate(_date.getDate() + sign); - if (!isWeekend(_date, options)) restDays -= 1; - } - if (startedOnWeekend && isWeekend(_date, options) && amount !== 0) { - if (isSaturday(_date, options)) - _date.setDate(_date.getDate() + (sign < 0 ? 2 : -1)); - if (isSunday(_date, options)) - _date.setDate(_date.getDate() + (sign < 0 ? 1 : -2)); - } - _date.setHours(hours); - return _date; -} -var addBusinessDays_default; -var init_addBusinessDays = __esm({ - "node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/addBusinessDays.js"() { - init_constructFrom(); - init_isSaturday(); - init_isSunday(); - init_isWeekend(); - init_toDate(); - addBusinessDays_default = addBusinessDays; - } -}); - -// node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/addMilliseconds.js -function addMilliseconds(date, amount, options) { - return constructFrom(options?.in || date, +toDate(date) + amount); -} -var addMilliseconds_default; -var init_addMilliseconds = __esm({ - "node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/addMilliseconds.js"() { - init_constructFrom(); - init_toDate(); - addMilliseconds_default = addMilliseconds; - } -}); - -// node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/addHours.js -function addHours(date, amount, options) { - return addMilliseconds(date, amount * millisecondsInHour, options); -} -var addHours_default; -var init_addHours = __esm({ - "node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/addHours.js"() { - init_addMilliseconds(); - init_constants(); - addHours_default = addHours; - } -}); - -// node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/_lib/defaultOptions.js -function getDefaultOptions() { - return defaultOptions; -} -function setDefaultOptions(newOptions) { - defaultOptions = newOptions; -} -var defaultOptions; -var init_defaultOptions = __esm({ - "node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/_lib/defaultOptions.js"() { - defaultOptions = {}; - } -}); - -// node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/startOfWeek.js -function startOfWeek(date, options) { - const defaultOptions2 = getDefaultOptions(); - const weekStartsOn = options?.weekStartsOn ?? options?.locale?.options?.weekStartsOn ?? defaultOptions2.weekStartsOn ?? defaultOptions2.locale?.options?.weekStartsOn ?? 0; - const _date = toDate(date, options?.in); - const day = _date.getDay(); - const diff = (day < weekStartsOn ? 7 : 0) + day - weekStartsOn; - _date.setDate(_date.getDate() - diff); - _date.setHours(0, 0, 0, 0); - return _date; -} -var startOfWeek_default; -var init_startOfWeek = __esm({ - "node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/startOfWeek.js"() { - init_defaultOptions(); - init_toDate(); - startOfWeek_default = startOfWeek; - } -}); - -// node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/startOfISOWeek.js -function startOfISOWeek(date, options) { - return startOfWeek(date, { ...options, weekStartsOn: 1 }); -} -var startOfISOWeek_default; -var init_startOfISOWeek = __esm({ - "node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/startOfISOWeek.js"() { - init_startOfWeek(); - startOfISOWeek_default = startOfISOWeek; - } -}); - -// node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/getISOWeekYear.js -function getISOWeekYear(date, options) { - const _date = toDate(date, options?.in); - const year = _date.getFullYear(); - const fourthOfJanuaryOfNextYear = constructFrom(_date, 0); - fourthOfJanuaryOfNextYear.setFullYear(year + 1, 0, 4); - fourthOfJanuaryOfNextYear.setHours(0, 0, 0, 0); - const startOfNextYear = startOfISOWeek(fourthOfJanuaryOfNextYear); - const fourthOfJanuaryOfThisYear = constructFrom(_date, 0); - fourthOfJanuaryOfThisYear.setFullYear(year, 0, 4); - fourthOfJanuaryOfThisYear.setHours(0, 0, 0, 0); - const startOfThisYear = startOfISOWeek(fourthOfJanuaryOfThisYear); - if (_date.getTime() >= startOfNextYear.getTime()) { - return year + 1; - } else if (_date.getTime() >= startOfThisYear.getTime()) { - return year; - } else { - return year - 1; - } -} -var getISOWeekYear_default; -var init_getISOWeekYear = __esm({ - "node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/getISOWeekYear.js"() { - init_constructFrom(); - init_startOfISOWeek(); - init_toDate(); - getISOWeekYear_default = getISOWeekYear; - } -}); - -// node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/_lib/getTimezoneOffsetInMilliseconds.js -function getTimezoneOffsetInMilliseconds(date) { - const _date = toDate(date); - const utcDate = new Date( - Date.UTC( - _date.getFullYear(), - _date.getMonth(), - _date.getDate(), - _date.getHours(), - _date.getMinutes(), - _date.getSeconds(), - _date.getMilliseconds() - ) - ); - utcDate.setUTCFullYear(_date.getFullYear()); - return +date - +utcDate; -} -var init_getTimezoneOffsetInMilliseconds = __esm({ - "node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/_lib/getTimezoneOffsetInMilliseconds.js"() { - init_toDate(); - } -}); - -// node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/_lib/normalizeDates.js -function normalizeDates(context2, ...dates) { - const normalize4 = constructFrom.bind( - null, - context2 || dates.find((date) => typeof date === "object") - ); - return dates.map(normalize4); -} -var init_normalizeDates = __esm({ - "node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/_lib/normalizeDates.js"() { - init_constructFrom(); - } -}); - -// node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/startOfDay.js -function startOfDay(date, options) { - const _date = toDate(date, options?.in); - _date.setHours(0, 0, 0, 0); - return _date; -} -var startOfDay_default; -var init_startOfDay = __esm({ - "node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/startOfDay.js"() { - init_toDate(); - startOfDay_default = startOfDay; - } -}); - -// node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/differenceInCalendarDays.js -function differenceInCalendarDays(laterDate, earlierDate, options) { - const [laterDate_, earlierDate_] = normalizeDates( - options?.in, - laterDate, - earlierDate - ); - const laterStartOfDay = startOfDay(laterDate_); - const earlierStartOfDay = startOfDay(earlierDate_); - const laterTimestamp = +laterStartOfDay - getTimezoneOffsetInMilliseconds(laterStartOfDay); - const earlierTimestamp = +earlierStartOfDay - getTimezoneOffsetInMilliseconds(earlierStartOfDay); - return Math.round((laterTimestamp - earlierTimestamp) / millisecondsInDay); -} -var differenceInCalendarDays_default; -var init_differenceInCalendarDays = __esm({ - "node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/differenceInCalendarDays.js"() { - init_getTimezoneOffsetInMilliseconds(); - init_normalizeDates(); - init_constants(); - init_startOfDay(); - differenceInCalendarDays_default = differenceInCalendarDays; - } -}); - -// node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/startOfISOWeekYear.js -function startOfISOWeekYear(date, options) { - const year = getISOWeekYear(date, options); - const fourthOfJanuary = constructFrom(options?.in || date, 0); - fourthOfJanuary.setFullYear(year, 0, 4); - fourthOfJanuary.setHours(0, 0, 0, 0); - return startOfISOWeek(fourthOfJanuary); -} -var startOfISOWeekYear_default; -var init_startOfISOWeekYear = __esm({ - "node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/startOfISOWeekYear.js"() { - init_constructFrom(); - init_getISOWeekYear(); - init_startOfISOWeek(); - startOfISOWeekYear_default = startOfISOWeekYear; - } -}); - -// node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/setISOWeekYear.js -function setISOWeekYear(date, weekYear, options) { - let _date = toDate(date, options?.in); - const diff = differenceInCalendarDays( - _date, - startOfISOWeekYear(_date, options) - ); - const fourthOfJanuary = constructFrom(options?.in || date, 0); - fourthOfJanuary.setFullYear(weekYear, 0, 4); - fourthOfJanuary.setHours(0, 0, 0, 0); - _date = startOfISOWeekYear(fourthOfJanuary); - _date.setDate(_date.getDate() + diff); - return _date; -} -var setISOWeekYear_default; -var init_setISOWeekYear = __esm({ - "node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/setISOWeekYear.js"() { - init_constructFrom(); - init_differenceInCalendarDays(); - init_startOfISOWeekYear(); - init_toDate(); - setISOWeekYear_default = setISOWeekYear; - } -}); - -// node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/addISOWeekYears.js -function addISOWeekYears(date, amount, options) { - return setISOWeekYear(date, getISOWeekYear(date, options) + amount, options); -} -var addISOWeekYears_default; -var init_addISOWeekYears = __esm({ - "node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/addISOWeekYears.js"() { - init_getISOWeekYear(); - init_setISOWeekYear(); - addISOWeekYears_default = addISOWeekYears; - } -}); - -// node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/addMinutes.js -function addMinutes(date, amount, options) { - const _date = toDate(date, options?.in); - _date.setTime(_date.getTime() + amount * millisecondsInMinute); - return _date; -} -var addMinutes_default; -var init_addMinutes = __esm({ - "node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/addMinutes.js"() { - init_constants(); - init_toDate(); - addMinutes_default = addMinutes; - } -}); - -// node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/addQuarters.js -function addQuarters(date, amount, options) { - return addMonths(date, amount * 3, options); -} -var addQuarters_default; -var init_addQuarters = __esm({ - "node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/addQuarters.js"() { - init_addMonths(); - addQuarters_default = addQuarters; - } -}); - -// node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/addSeconds.js -function addSeconds(date, amount, options) { - return addMilliseconds(date, amount * 1e3, options); -} -var addSeconds_default; -var init_addSeconds = __esm({ - "node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/addSeconds.js"() { - init_addMilliseconds(); - addSeconds_default = addSeconds; - } -}); - -// node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/addWeeks.js -function addWeeks(date, amount, options) { - return addDays(date, amount * 7, options); -} -var addWeeks_default; -var init_addWeeks = __esm({ - "node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/addWeeks.js"() { - init_addDays(); - addWeeks_default = addWeeks; - } -}); - -// node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/addYears.js -function addYears(date, amount, options) { - return addMonths(date, amount * 12, options); -} -var addYears_default; -var init_addYears = __esm({ - "node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/addYears.js"() { - init_addMonths(); - addYears_default = addYears; - } -}); - -// node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/areIntervalsOverlapping.js -function areIntervalsOverlapping(intervalLeft, intervalRight, options) { - const [leftStartTime, leftEndTime] = [ - +toDate(intervalLeft.start, options?.in), - +toDate(intervalLeft.end, options?.in) - ].sort((a5, b5) => a5 - b5); - const [rightStartTime, rightEndTime] = [ - +toDate(intervalRight.start, options?.in), - +toDate(intervalRight.end, options?.in) - ].sort((a5, b5) => a5 - b5); - if (options?.inclusive) - return leftStartTime <= rightEndTime && rightStartTime <= leftEndTime; - return leftStartTime < rightEndTime && rightStartTime < leftEndTime; -} -var areIntervalsOverlapping_default; -var init_areIntervalsOverlapping = __esm({ - "node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/areIntervalsOverlapping.js"() { - init_toDate(); - areIntervalsOverlapping_default = areIntervalsOverlapping; - } -}); - -// node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/max.js -function max2(dates, options) { - let result; - let context2 = options?.in; - dates.forEach((date) => { - if (!context2 && typeof date === "object") - context2 = constructFrom.bind(null, date); - const date_ = toDate(date, context2); - if (!result || result < date_ || isNaN(+date_)) result = date_; - }); - return constructFrom(context2, result || NaN); -} -var max_default; -var init_max2 = __esm({ - "node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/max.js"() { - init_constructFrom(); - init_toDate(); - max_default = max2; - } -}); - -// node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/min.js -function min2(dates, options) { - let result; - let context2 = options?.in; - dates.forEach((date) => { - if (!context2 && typeof date === "object") - context2 = constructFrom.bind(null, date); - const date_ = toDate(date, context2); - if (!result || result > date_ || isNaN(+date_)) result = date_; - }); - return constructFrom(context2, result || NaN); -} -var min_default; -var init_min2 = __esm({ - "node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/min.js"() { - init_constructFrom(); - init_toDate(); - min_default = min2; - } -}); - -// node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/clamp.js -function clamp(date, interval3, options) { - const [date_, start, end3] = normalizeDates( - options?.in, - date, - interval3.start, - interval3.end - ); - return min2([max2([date_, start], options), end3], options); -} -var clamp_default; -var init_clamp = __esm({ - "node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/clamp.js"() { - init_normalizeDates(); - init_max2(); - init_min2(); - clamp_default = clamp; - } -}); - -// node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/closestIndexTo.js -function closestIndexTo(dateToCompare, dates) { - const timeToCompare = +toDate(dateToCompare); - if (isNaN(timeToCompare)) return NaN; - let result; - let minDistance; - dates.forEach((date, index2) => { - const date_ = toDate(date); - if (isNaN(+date_)) { - result = NaN; - minDistance = NaN; - return; - } - const distance = Math.abs(timeToCompare - +date_); - if (result == null || distance < minDistance) { - result = index2; - minDistance = distance; - } - }); - return result; -} -var closestIndexTo_default; -var init_closestIndexTo = __esm({ - "node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/closestIndexTo.js"() { - init_toDate(); - closestIndexTo_default = closestIndexTo; - } -}); - -// node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/closestTo.js -function closestTo(dateToCompare, dates, options) { - const [dateToCompare_, ...dates_] = normalizeDates( - options?.in, - dateToCompare, - ...dates - ); - const index2 = closestIndexTo(dateToCompare_, dates_); - if (typeof index2 === "number" && isNaN(index2)) - return constructFrom(dateToCompare_, NaN); - if (index2 !== void 0) return dates_[index2]; -} -var closestTo_default; -var init_closestTo = __esm({ - "node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/closestTo.js"() { - init_normalizeDates(); - init_closestIndexTo(); - init_constructFrom(); - closestTo_default = closestTo; - } -}); - -// node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/compareAsc.js -function compareAsc(dateLeft, dateRight) { - const diff = +toDate(dateLeft) - +toDate(dateRight); - if (diff < 0) return -1; - else if (diff > 0) return 1; - return diff; -} -var compareAsc_default; -var init_compareAsc = __esm({ - "node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/compareAsc.js"() { - init_toDate(); - compareAsc_default = compareAsc; - } -}); - -// node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/compareDesc.js -function compareDesc(dateLeft, dateRight) { - const diff = +toDate(dateLeft) - +toDate(dateRight); - if (diff > 0) return -1; - else if (diff < 0) return 1; - return diff; -} -var compareDesc_default; -var init_compareDesc = __esm({ - "node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/compareDesc.js"() { - init_toDate(); - compareDesc_default = compareDesc; - } -}); - -// node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/constructNow.js -function constructNow(date) { - return constructFrom(date, Date.now()); -} -var constructNow_default; -var init_constructNow = __esm({ - "node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/constructNow.js"() { - init_constructFrom(); - constructNow_default = constructNow; - } -}); - -// node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/daysToWeeks.js -function daysToWeeks(days2) { - const result = Math.trunc(days2 / daysInWeek); - return result === 0 ? 0 : result; -} -var daysToWeeks_default; -var init_daysToWeeks = __esm({ - "node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/daysToWeeks.js"() { - init_constants(); - daysToWeeks_default = daysToWeeks; - } -}); - -// node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/isSameDay.js -function isSameDay(laterDate, earlierDate, options) { - const [dateLeft_, dateRight_] = normalizeDates( - options?.in, - laterDate, - earlierDate - ); - return +startOfDay(dateLeft_) === +startOfDay(dateRight_); -} -var isSameDay_default; -var init_isSameDay = __esm({ - "node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/isSameDay.js"() { - init_normalizeDates(); - init_startOfDay(); - isSameDay_default = isSameDay; - } -}); - -// node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/isDate.js -function isDate(value2) { - return value2 instanceof Date || typeof value2 === "object" && Object.prototype.toString.call(value2) === "[object Date]"; -} -var isDate_default; -var init_isDate2 = __esm({ - "node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/isDate.js"() { - isDate_default = isDate; - } -}); - -// node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/isValid.js -function isValid(date) { - return !(!isDate(date) && typeof date !== "number" || isNaN(+toDate(date))); -} -var isValid_default; -var init_isValid = __esm({ - "node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/isValid.js"() { - init_isDate2(); - init_toDate(); - isValid_default = isValid; - } -}); - -// node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/differenceInBusinessDays.js -function differenceInBusinessDays(laterDate, earlierDate, options) { - const [laterDate_, earlierDate_] = normalizeDates( - options?.in, - laterDate, - earlierDate - ); - if (!isValid(laterDate_) || !isValid(earlierDate_)) return NaN; - const diff = differenceInCalendarDays(laterDate_, earlierDate_); - const sign = diff < 0 ? -1 : 1; - const weeks = Math.trunc(diff / 7); - let result = weeks * 5; - let movingDate = addDays(earlierDate_, weeks * 7); - while (!isSameDay(laterDate_, movingDate)) { - result += isWeekend(movingDate, options) ? 0 : sign; - movingDate = addDays(movingDate, sign); - } - return result === 0 ? 0 : result; -} -var differenceInBusinessDays_default; -var init_differenceInBusinessDays = __esm({ - "node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/differenceInBusinessDays.js"() { - init_normalizeDates(); - init_addDays(); - init_differenceInCalendarDays(); - init_isSameDay(); - init_isValid(); - init_isWeekend(); - differenceInBusinessDays_default = differenceInBusinessDays; - } -}); - -// node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/differenceInCalendarISOWeekYears.js -function differenceInCalendarISOWeekYears(laterDate, earlierDate, options) { - const [laterDate_, earlierDate_] = normalizeDates( - options?.in, - laterDate, - earlierDate - ); - return getISOWeekYear(laterDate_, options) - getISOWeekYear(earlierDate_, options); -} -var differenceInCalendarISOWeekYears_default; -var init_differenceInCalendarISOWeekYears = __esm({ - "node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/differenceInCalendarISOWeekYears.js"() { - init_normalizeDates(); - init_getISOWeekYear(); - differenceInCalendarISOWeekYears_default = differenceInCalendarISOWeekYears; - } -}); - -// node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/differenceInCalendarISOWeeks.js -function differenceInCalendarISOWeeks(laterDate, earlierDate, options) { - const [laterDate_, earlierDate_] = normalizeDates( - options?.in, - laterDate, - earlierDate - ); - const startOfISOWeekLeft = startOfISOWeek(laterDate_); - const startOfISOWeekRight = startOfISOWeek(earlierDate_); - const timestampLeft = +startOfISOWeekLeft - getTimezoneOffsetInMilliseconds(startOfISOWeekLeft); - const timestampRight = +startOfISOWeekRight - getTimezoneOffsetInMilliseconds(startOfISOWeekRight); - return Math.round((timestampLeft - timestampRight) / millisecondsInWeek); -} -var differenceInCalendarISOWeeks_default; -var init_differenceInCalendarISOWeeks = __esm({ - "node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/differenceInCalendarISOWeeks.js"() { - init_getTimezoneOffsetInMilliseconds(); - init_normalizeDates(); - init_constants(); - init_startOfISOWeek(); - differenceInCalendarISOWeeks_default = differenceInCalendarISOWeeks; - } -}); - -// node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/differenceInCalendarMonths.js -function differenceInCalendarMonths(laterDate, earlierDate, options) { - const [laterDate_, earlierDate_] = normalizeDates( - options?.in, - laterDate, - earlierDate - ); - const yearsDiff = laterDate_.getFullYear() - earlierDate_.getFullYear(); - const monthsDiff = laterDate_.getMonth() - earlierDate_.getMonth(); - return yearsDiff * 12 + monthsDiff; -} -var differenceInCalendarMonths_default; -var init_differenceInCalendarMonths = __esm({ - "node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/differenceInCalendarMonths.js"() { - init_normalizeDates(); - differenceInCalendarMonths_default = differenceInCalendarMonths; - } -}); - -// node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/getQuarter.js -function getQuarter(date, options) { - const _date = toDate(date, options?.in); - const quarter = Math.trunc(_date.getMonth() / 3) + 1; - return quarter; -} -var getQuarter_default; -var init_getQuarter = __esm({ - "node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/getQuarter.js"() { - init_toDate(); - getQuarter_default = getQuarter; - } -}); - -// node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/differenceInCalendarQuarters.js -function differenceInCalendarQuarters(laterDate, earlierDate, options) { - const [laterDate_, earlierDate_] = normalizeDates( - options?.in, - laterDate, - earlierDate - ); - const yearsDiff = laterDate_.getFullYear() - earlierDate_.getFullYear(); - const quartersDiff = getQuarter(laterDate_) - getQuarter(earlierDate_); - return yearsDiff * 4 + quartersDiff; -} -var differenceInCalendarQuarters_default; -var init_differenceInCalendarQuarters = __esm({ - "node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/differenceInCalendarQuarters.js"() { - init_normalizeDates(); - init_getQuarter(); - differenceInCalendarQuarters_default = differenceInCalendarQuarters; - } -}); - -// node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/differenceInCalendarWeeks.js -function differenceInCalendarWeeks(laterDate, earlierDate, options) { - const [laterDate_, earlierDate_] = normalizeDates( - options?.in, - laterDate, - earlierDate - ); - const laterStartOfWeek = startOfWeek(laterDate_, options); - const earlierStartOfWeek = startOfWeek(earlierDate_, options); - const laterTimestamp = +laterStartOfWeek - getTimezoneOffsetInMilliseconds(laterStartOfWeek); - const earlierTimestamp = +earlierStartOfWeek - getTimezoneOffsetInMilliseconds(earlierStartOfWeek); - return Math.round((laterTimestamp - earlierTimestamp) / millisecondsInWeek); -} -var differenceInCalendarWeeks_default; -var init_differenceInCalendarWeeks = __esm({ - "node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/differenceInCalendarWeeks.js"() { - init_getTimezoneOffsetInMilliseconds(); - init_normalizeDates(); - init_constants(); - init_startOfWeek(); - differenceInCalendarWeeks_default = differenceInCalendarWeeks; - } -}); - -// node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/differenceInCalendarYears.js -function differenceInCalendarYears(laterDate, earlierDate, options) { - const [laterDate_, earlierDate_] = normalizeDates( - options?.in, - laterDate, - earlierDate - ); - return laterDate_.getFullYear() - earlierDate_.getFullYear(); -} -var differenceInCalendarYears_default; -var init_differenceInCalendarYears = __esm({ - "node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/differenceInCalendarYears.js"() { - init_normalizeDates(); - differenceInCalendarYears_default = differenceInCalendarYears; - } -}); - -// node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/differenceInDays.js -function differenceInDays(laterDate, earlierDate, options) { - const [laterDate_, earlierDate_] = normalizeDates( - options?.in, - laterDate, - earlierDate - ); - const sign = compareLocalAsc(laterDate_, earlierDate_); - const difference = Math.abs( - differenceInCalendarDays(laterDate_, earlierDate_) - ); - laterDate_.setDate(laterDate_.getDate() - sign * difference); - const isLastDayNotFull = Number( - compareLocalAsc(laterDate_, earlierDate_) === -sign - ); - const result = sign * (difference - isLastDayNotFull); - return result === 0 ? 0 : result; -} -function compareLocalAsc(laterDate, earlierDate) { - const diff = laterDate.getFullYear() - earlierDate.getFullYear() || laterDate.getMonth() - earlierDate.getMonth() || laterDate.getDate() - earlierDate.getDate() || laterDate.getHours() - earlierDate.getHours() || laterDate.getMinutes() - earlierDate.getMinutes() || laterDate.getSeconds() - earlierDate.getSeconds() || laterDate.getMilliseconds() - earlierDate.getMilliseconds(); - if (diff < 0) return -1; - if (diff > 0) return 1; - return diff; -} -var differenceInDays_default; -var init_differenceInDays = __esm({ - "node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/differenceInDays.js"() { - init_normalizeDates(); - init_differenceInCalendarDays(); - differenceInDays_default = differenceInDays; - } -}); - -// node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/_lib/getRoundingMethod.js -function getRoundingMethod(method) { - return (number2) => { - const round = method ? Math[method] : Math.trunc; - const result = round(number2); - return result === 0 ? 0 : result; - }; -} -var init_getRoundingMethod = __esm({ - "node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/_lib/getRoundingMethod.js"() { - } -}); - -// node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/differenceInHours.js -function differenceInHours(laterDate, earlierDate, options) { - const [laterDate_, earlierDate_] = normalizeDates( - options?.in, - laterDate, - earlierDate - ); - const diff = (+laterDate_ - +earlierDate_) / millisecondsInHour; - return getRoundingMethod(options?.roundingMethod)(diff); -} -var differenceInHours_default; -var init_differenceInHours = __esm({ - "node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/differenceInHours.js"() { - init_getRoundingMethod(); - init_normalizeDates(); - init_constants(); - differenceInHours_default = differenceInHours; - } -}); - -// node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/subISOWeekYears.js -function subISOWeekYears(date, amount, options) { - return addISOWeekYears(date, -amount, options); -} -var subISOWeekYears_default; -var init_subISOWeekYears = __esm({ - "node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/subISOWeekYears.js"() { - init_addISOWeekYears(); - subISOWeekYears_default = subISOWeekYears; - } -}); - -// node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/differenceInISOWeekYears.js -function differenceInISOWeekYears(laterDate, earlierDate, options) { - const [laterDate_, earlierDate_] = normalizeDates( - options?.in, - laterDate, - earlierDate - ); - const sign = compareAsc(laterDate_, earlierDate_); - const diff = Math.abs( - differenceInCalendarISOWeekYears(laterDate_, earlierDate_, options) - ); - const adjustedDate = subISOWeekYears(laterDate_, sign * diff, options); - const isLastISOWeekYearNotFull = Number( - compareAsc(adjustedDate, earlierDate_) === -sign - ); - const result = sign * (diff - isLastISOWeekYearNotFull); - return result === 0 ? 0 : result; -} -var differenceInISOWeekYears_default; -var init_differenceInISOWeekYears = __esm({ - "node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/differenceInISOWeekYears.js"() { - init_normalizeDates(); - init_compareAsc(); - init_differenceInCalendarISOWeekYears(); - init_subISOWeekYears(); - differenceInISOWeekYears_default = differenceInISOWeekYears; - } -}); - -// node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/differenceInMilliseconds.js -function differenceInMilliseconds(laterDate, earlierDate) { - return +toDate(laterDate) - +toDate(earlierDate); -} -var differenceInMilliseconds_default; -var init_differenceInMilliseconds = __esm({ - "node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/differenceInMilliseconds.js"() { - init_toDate(); - differenceInMilliseconds_default = differenceInMilliseconds; - } -}); - -// node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/differenceInMinutes.js -function differenceInMinutes(dateLeft, dateRight, options) { - const diff = differenceInMilliseconds(dateLeft, dateRight) / millisecondsInMinute; - return getRoundingMethod(options?.roundingMethod)(diff); -} -var differenceInMinutes_default; -var init_differenceInMinutes = __esm({ - "node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/differenceInMinutes.js"() { - init_getRoundingMethod(); - init_constants(); - init_differenceInMilliseconds(); - differenceInMinutes_default = differenceInMinutes; - } -}); - -// node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/endOfDay.js -function endOfDay(date, options) { - const _date = toDate(date, options?.in); - _date.setHours(23, 59, 59, 999); - return _date; -} -var endOfDay_default; -var init_endOfDay = __esm({ - "node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/endOfDay.js"() { - init_toDate(); - endOfDay_default = endOfDay; - } -}); - -// node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/endOfMonth.js -function endOfMonth(date, options) { - const _date = toDate(date, options?.in); - const month = _date.getMonth(); - _date.setFullYear(_date.getFullYear(), month + 1, 0); - _date.setHours(23, 59, 59, 999); - return _date; -} -var endOfMonth_default; -var init_endOfMonth = __esm({ - "node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/endOfMonth.js"() { - init_toDate(); - endOfMonth_default = endOfMonth; - } -}); - -// node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/isLastDayOfMonth.js -function isLastDayOfMonth(date, options) { - const _date = toDate(date, options?.in); - return +endOfDay(_date, options) === +endOfMonth(_date, options); -} -var isLastDayOfMonth_default; -var init_isLastDayOfMonth = __esm({ - "node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/isLastDayOfMonth.js"() { - init_endOfDay(); - init_endOfMonth(); - init_toDate(); - isLastDayOfMonth_default = isLastDayOfMonth; - } -}); - -// node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/differenceInMonths.js -function differenceInMonths(laterDate, earlierDate, options) { - const [laterDate_, workingLaterDate, earlierDate_] = normalizeDates( - options?.in, - laterDate, - laterDate, - earlierDate - ); - const sign = compareAsc(workingLaterDate, earlierDate_); - const difference = Math.abs( - differenceInCalendarMonths(workingLaterDate, earlierDate_) - ); - if (difference < 1) return 0; - if (workingLaterDate.getMonth() === 1 && workingLaterDate.getDate() > 27) - workingLaterDate.setDate(30); - workingLaterDate.setMonth(workingLaterDate.getMonth() - sign * difference); - let isLastMonthNotFull = compareAsc(workingLaterDate, earlierDate_) === -sign; - if (isLastDayOfMonth(laterDate_) && difference === 1 && compareAsc(laterDate_, earlierDate_) === 1) { - isLastMonthNotFull = false; - } - const result = sign * (difference - +isLastMonthNotFull); - return result === 0 ? 0 : result; -} -var differenceInMonths_default; -var init_differenceInMonths = __esm({ - "node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/differenceInMonths.js"() { - init_normalizeDates(); - init_compareAsc(); - init_differenceInCalendarMonths(); - init_isLastDayOfMonth(); - differenceInMonths_default = differenceInMonths; - } -}); - -// node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/differenceInQuarters.js -function differenceInQuarters(laterDate, earlierDate, options) { - const diff = differenceInMonths(laterDate, earlierDate, options) / 3; - return getRoundingMethod(options?.roundingMethod)(diff); -} -var differenceInQuarters_default; -var init_differenceInQuarters = __esm({ - "node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/differenceInQuarters.js"() { - init_getRoundingMethod(); - init_differenceInMonths(); - differenceInQuarters_default = differenceInQuarters; - } -}); - -// node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/differenceInSeconds.js -function differenceInSeconds(laterDate, earlierDate, options) { - const diff = differenceInMilliseconds(laterDate, earlierDate) / 1e3; - return getRoundingMethod(options?.roundingMethod)(diff); -} -var differenceInSeconds_default; -var init_differenceInSeconds = __esm({ - "node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/differenceInSeconds.js"() { - init_getRoundingMethod(); - init_differenceInMilliseconds(); - differenceInSeconds_default = differenceInSeconds; - } -}); - -// node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/differenceInWeeks.js -function differenceInWeeks(laterDate, earlierDate, options) { - const diff = differenceInDays(laterDate, earlierDate, options) / 7; - return getRoundingMethod(options?.roundingMethod)(diff); -} -var differenceInWeeks_default; -var init_differenceInWeeks = __esm({ - "node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/differenceInWeeks.js"() { - init_getRoundingMethod(); - init_differenceInDays(); - differenceInWeeks_default = differenceInWeeks; - } -}); - -// node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/differenceInYears.js -function differenceInYears(laterDate, earlierDate, options) { - const [laterDate_, earlierDate_] = normalizeDates( - options?.in, - laterDate, - earlierDate - ); - const sign = compareAsc(laterDate_, earlierDate_); - const diff = Math.abs(differenceInCalendarYears(laterDate_, earlierDate_)); - laterDate_.setFullYear(1584); - earlierDate_.setFullYear(1584); - const partial = compareAsc(laterDate_, earlierDate_) === -sign; - const result = sign * (diff - +partial); - return result === 0 ? 0 : result; -} -var differenceInYears_default; -var init_differenceInYears = __esm({ - "node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/differenceInYears.js"() { - init_normalizeDates(); - init_compareAsc(); - init_differenceInCalendarYears(); - differenceInYears_default = differenceInYears; - } -}); - -// node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/_lib/normalizeInterval.js -function normalizeInterval(context2, interval3) { - const [start, end3] = normalizeDates(context2, interval3.start, interval3.end); - return { start, end: end3 }; -} -var init_normalizeInterval = __esm({ - "node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/_lib/normalizeInterval.js"() { - init_normalizeDates(); - } -}); - -// node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/eachDayOfInterval.js -function eachDayOfInterval(interval3, options) { - const { start, end: end3 } = normalizeInterval(options?.in, interval3); - let reversed = +start > +end3; - const endTime = reversed ? +start : +end3; - const date = reversed ? end3 : start; - date.setHours(0, 0, 0, 0); - let step = options?.step ?? 1; - if (!step) return []; - if (step < 0) { - step = -step; - reversed = !reversed; - } - const dates = []; - while (+date <= endTime) { - dates.push(constructFrom(start, date)); - date.setDate(date.getDate() + step); - date.setHours(0, 0, 0, 0); - } - return reversed ? dates.reverse() : dates; -} -var eachDayOfInterval_default; -var init_eachDayOfInterval = __esm({ - "node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/eachDayOfInterval.js"() { - init_normalizeInterval(); - init_constructFrom(); - eachDayOfInterval_default = eachDayOfInterval; - } -}); - -// node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/eachHourOfInterval.js -function eachHourOfInterval(interval3, options) { - const { start, end: end3 } = normalizeInterval(options?.in, interval3); - let reversed = +start > +end3; - const endTime = reversed ? +start : +end3; - const date = reversed ? end3 : start; - date.setMinutes(0, 0, 0); - let step = options?.step ?? 1; - if (!step) return []; - if (step < 0) { - step = -step; - reversed = !reversed; - } - const dates = []; - while (+date <= endTime) { - dates.push(constructFrom(start, date)); - date.setHours(date.getHours() + step); - } - return reversed ? dates.reverse() : dates; -} -var eachHourOfInterval_default; -var init_eachHourOfInterval = __esm({ - "node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/eachHourOfInterval.js"() { - init_normalizeInterval(); - init_constructFrom(); - eachHourOfInterval_default = eachHourOfInterval; - } -}); - -// node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/eachMinuteOfInterval.js -function eachMinuteOfInterval(interval3, options) { - const { start, end: end3 } = normalizeInterval(options?.in, interval3); - start.setSeconds(0, 0); - let reversed = +start > +end3; - const endTime = reversed ? +start : +end3; - let date = reversed ? end3 : start; - let step = options?.step ?? 1; - if (!step) return []; - if (step < 0) { - step = -step; - reversed = !reversed; - } - const dates = []; - while (+date <= endTime) { - dates.push(constructFrom(start, date)); - date = addMinutes(date, step); - } - return reversed ? dates.reverse() : dates; -} -var eachMinuteOfInterval_default; -var init_eachMinuteOfInterval = __esm({ - "node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/eachMinuteOfInterval.js"() { - init_normalizeInterval(); - init_addMinutes(); - init_constructFrom(); - eachMinuteOfInterval_default = eachMinuteOfInterval; - } -}); - -// node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/eachMonthOfInterval.js -function eachMonthOfInterval(interval3, options) { - const { start, end: end3 } = normalizeInterval(options?.in, interval3); - let reversed = +start > +end3; - const endTime = reversed ? +start : +end3; - const date = reversed ? end3 : start; - date.setHours(0, 0, 0, 0); - date.setDate(1); - let step = options?.step ?? 1; - if (!step) return []; - if (step < 0) { - step = -step; - reversed = !reversed; - } - const dates = []; - while (+date <= endTime) { - dates.push(constructFrom(start, date)); - date.setMonth(date.getMonth() + step); - } - return reversed ? dates.reverse() : dates; -} -var eachMonthOfInterval_default; -var init_eachMonthOfInterval = __esm({ - "node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/eachMonthOfInterval.js"() { - init_normalizeInterval(); - init_constructFrom(); - eachMonthOfInterval_default = eachMonthOfInterval; - } -}); - -// node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/startOfQuarter.js -function startOfQuarter(date, options) { - const _date = toDate(date, options?.in); - const currentMonth = _date.getMonth(); - const month = currentMonth - currentMonth % 3; - _date.setMonth(month, 1); - _date.setHours(0, 0, 0, 0); - return _date; -} -var startOfQuarter_default; -var init_startOfQuarter = __esm({ - "node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/startOfQuarter.js"() { - init_toDate(); - startOfQuarter_default = startOfQuarter; - } -}); - -// node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/eachQuarterOfInterval.js -function eachQuarterOfInterval(interval3, options) { - const { start, end: end3 } = normalizeInterval(options?.in, interval3); - let reversed = +start > +end3; - const endTime = reversed ? +startOfQuarter(start) : +startOfQuarter(end3); - let date = reversed ? startOfQuarter(end3) : startOfQuarter(start); - let step = options?.step ?? 1; - if (!step) return []; - if (step < 0) { - step = -step; - reversed = !reversed; - } - const dates = []; - while (+date <= endTime) { - dates.push(constructFrom(start, date)); - date = addQuarters(date, step); - } - return reversed ? dates.reverse() : dates; -} -var eachQuarterOfInterval_default; -var init_eachQuarterOfInterval = __esm({ - "node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/eachQuarterOfInterval.js"() { - init_normalizeInterval(); - init_addQuarters(); - init_constructFrom(); - init_startOfQuarter(); - eachQuarterOfInterval_default = eachQuarterOfInterval; - } -}); - -// node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/eachWeekOfInterval.js -function eachWeekOfInterval(interval3, options) { - const { start, end: end3 } = normalizeInterval(options?.in, interval3); - let reversed = +start > +end3; - const startDateWeek = reversed ? startOfWeek(end3, options) : startOfWeek(start, options); - const endDateWeek = reversed ? startOfWeek(start, options) : startOfWeek(end3, options); - startDateWeek.setHours(15); - endDateWeek.setHours(15); - const endTime = +endDateWeek.getTime(); - let currentDate = startDateWeek; - let step = options?.step ?? 1; - if (!step) return []; - if (step < 0) { - step = -step; - reversed = !reversed; - } - const dates = []; - while (+currentDate <= endTime) { - currentDate.setHours(0); - dates.push(constructFrom(start, currentDate)); - currentDate = addWeeks(currentDate, step); - currentDate.setHours(15); - } - return reversed ? dates.reverse() : dates; -} -var eachWeekOfInterval_default; -var init_eachWeekOfInterval = __esm({ - "node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/eachWeekOfInterval.js"() { - init_normalizeInterval(); - init_addWeeks(); - init_constructFrom(); - init_startOfWeek(); - eachWeekOfInterval_default = eachWeekOfInterval; - } -}); - -// node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/eachWeekendOfInterval.js -function eachWeekendOfInterval(interval3, options) { - const { start, end: end3 } = normalizeInterval(options?.in, interval3); - const dateInterval = eachDayOfInterval({ start, end: end3 }, options); - const weekends = []; - let index2 = 0; - while (index2 < dateInterval.length) { - const date = dateInterval[index2++]; - if (isWeekend(date)) weekends.push(constructFrom(start, date)); - } - return weekends; -} -var eachWeekendOfInterval_default; -var init_eachWeekendOfInterval = __esm({ - "node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/eachWeekendOfInterval.js"() { - init_normalizeInterval(); - init_constructFrom(); - init_eachDayOfInterval(); - init_isWeekend(); - eachWeekendOfInterval_default = eachWeekendOfInterval; - } -}); - -// node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/startOfMonth.js -function startOfMonth(date, options) { - const _date = toDate(date, options?.in); - _date.setDate(1); - _date.setHours(0, 0, 0, 0); - return _date; -} -var startOfMonth_default; -var init_startOfMonth = __esm({ - "node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/startOfMonth.js"() { - init_toDate(); - startOfMonth_default = startOfMonth; - } -}); - -// node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/eachWeekendOfMonth.js -function eachWeekendOfMonth(date, options) { - const start = startOfMonth(date, options); - const end3 = endOfMonth(date, options); - return eachWeekendOfInterval({ start, end: end3 }, options); -} -var eachWeekendOfMonth_default; -var init_eachWeekendOfMonth = __esm({ - "node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/eachWeekendOfMonth.js"() { - init_eachWeekendOfInterval(); - init_endOfMonth(); - init_startOfMonth(); - eachWeekendOfMonth_default = eachWeekendOfMonth; - } -}); - -// node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/endOfYear.js -function endOfYear(date, options) { - const _date = toDate(date, options?.in); - const year = _date.getFullYear(); - _date.setFullYear(year + 1, 0, 0); - _date.setHours(23, 59, 59, 999); - return _date; -} -var endOfYear_default; -var init_endOfYear = __esm({ - "node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/endOfYear.js"() { - init_toDate(); - endOfYear_default = endOfYear; - } -}); - -// node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/startOfYear.js -function startOfYear(date, options) { - const date_ = toDate(date, options?.in); - date_.setFullYear(date_.getFullYear(), 0, 1); - date_.setHours(0, 0, 0, 0); - return date_; -} -var startOfYear_default; -var init_startOfYear = __esm({ - "node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/startOfYear.js"() { - init_toDate(); - startOfYear_default = startOfYear; - } -}); - -// node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/eachWeekendOfYear.js -function eachWeekendOfYear(date, options) { - const start = startOfYear(date, options); - const end3 = endOfYear(date, options); - return eachWeekendOfInterval({ start, end: end3 }, options); -} -var eachWeekendOfYear_default; -var init_eachWeekendOfYear = __esm({ - "node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/eachWeekendOfYear.js"() { - init_eachWeekendOfInterval(); - init_endOfYear(); - init_startOfYear(); - eachWeekendOfYear_default = eachWeekendOfYear; - } -}); - -// node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/eachYearOfInterval.js -function eachYearOfInterval(interval3, options) { - const { start, end: end3 } = normalizeInterval(options?.in, interval3); - let reversed = +start > +end3; - const endTime = reversed ? +start : +end3; - const date = reversed ? end3 : start; - date.setHours(0, 0, 0, 0); - date.setMonth(0, 1); - let step = options?.step ?? 1; - if (!step) return []; - if (step < 0) { - step = -step; - reversed = !reversed; - } - const dates = []; - while (+date <= endTime) { - dates.push(constructFrom(start, date)); - date.setFullYear(date.getFullYear() + step); - } - return reversed ? dates.reverse() : dates; -} -var eachYearOfInterval_default; -var init_eachYearOfInterval = __esm({ - "node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/eachYearOfInterval.js"() { - init_normalizeInterval(); - init_constructFrom(); - eachYearOfInterval_default = eachYearOfInterval; - } -}); - -// node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/endOfDecade.js -function endOfDecade(date, options) { - const _date = toDate(date, options?.in); - const year = _date.getFullYear(); - const decade = 9 + Math.floor(year / 10) * 10; - _date.setFullYear(decade, 11, 31); - _date.setHours(23, 59, 59, 999); - return _date; -} -var endOfDecade_default; -var init_endOfDecade = __esm({ - "node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/endOfDecade.js"() { - init_toDate(); - endOfDecade_default = endOfDecade; - } -}); - -// node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/endOfHour.js -function endOfHour(date, options) { - const _date = toDate(date, options?.in); - _date.setMinutes(59, 59, 999); - return _date; -} -var endOfHour_default; -var init_endOfHour = __esm({ - "node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/endOfHour.js"() { - init_toDate(); - endOfHour_default = endOfHour; - } -}); - -// node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/endOfWeek.js -function endOfWeek(date, options) { - const defaultOptions2 = getDefaultOptions(); - const weekStartsOn = options?.weekStartsOn ?? options?.locale?.options?.weekStartsOn ?? defaultOptions2.weekStartsOn ?? defaultOptions2.locale?.options?.weekStartsOn ?? 0; - const _date = toDate(date, options?.in); - const day = _date.getDay(); - const diff = (day < weekStartsOn ? -7 : 0) + 6 - (day - weekStartsOn); - _date.setDate(_date.getDate() + diff); - _date.setHours(23, 59, 59, 999); - return _date; -} -var endOfWeek_default; -var init_endOfWeek = __esm({ - "node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/endOfWeek.js"() { - init_defaultOptions(); - init_toDate(); - endOfWeek_default = endOfWeek; - } -}); - -// node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/endOfISOWeek.js -function endOfISOWeek(date, options) { - return endOfWeek(date, { ...options, weekStartsOn: 1 }); -} -var endOfISOWeek_default; -var init_endOfISOWeek = __esm({ - "node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/endOfISOWeek.js"() { - init_endOfWeek(); - endOfISOWeek_default = endOfISOWeek; - } -}); - -// node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/endOfISOWeekYear.js -function endOfISOWeekYear(date, options) { - const year = getISOWeekYear(date, options); - const fourthOfJanuaryOfNextYear = constructFrom(options?.in || date, 0); - fourthOfJanuaryOfNextYear.setFullYear(year + 1, 0, 4); - fourthOfJanuaryOfNextYear.setHours(0, 0, 0, 0); - const _date = startOfISOWeek(fourthOfJanuaryOfNextYear, options); - _date.setMilliseconds(_date.getMilliseconds() - 1); - return _date; -} -var endOfISOWeekYear_default; -var init_endOfISOWeekYear = __esm({ - "node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/endOfISOWeekYear.js"() { - init_constructFrom(); - init_getISOWeekYear(); - init_startOfISOWeek(); - endOfISOWeekYear_default = endOfISOWeekYear; - } -}); - -// node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/endOfMinute.js -function endOfMinute(date, options) { - const _date = toDate(date, options?.in); - _date.setSeconds(59, 999); - return _date; -} -var endOfMinute_default; -var init_endOfMinute = __esm({ - "node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/endOfMinute.js"() { - init_toDate(); - endOfMinute_default = endOfMinute; - } -}); - -// node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/endOfQuarter.js -function endOfQuarter(date, options) { - const _date = toDate(date, options?.in); - const currentMonth = _date.getMonth(); - const month = currentMonth - currentMonth % 3 + 3; - _date.setMonth(month, 0); - _date.setHours(23, 59, 59, 999); - return _date; -} -var endOfQuarter_default; -var init_endOfQuarter = __esm({ - "node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/endOfQuarter.js"() { - init_toDate(); - endOfQuarter_default = endOfQuarter; - } -}); - -// node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/endOfSecond.js -function endOfSecond(date, options) { - const _date = toDate(date, options?.in); - _date.setMilliseconds(999); - return _date; -} -var endOfSecond_default; -var init_endOfSecond = __esm({ - "node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/endOfSecond.js"() { - init_toDate(); - endOfSecond_default = endOfSecond; - } -}); - -// node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/endOfToday.js -function endOfToday(options) { - return endOfDay(Date.now(), options); -} -var endOfToday_default; -var init_endOfToday = __esm({ - "node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/endOfToday.js"() { - init_endOfDay(); - endOfToday_default = endOfToday; - } -}); - -// node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/endOfTomorrow.js -function endOfTomorrow(options) { - const now2 = constructNow(options?.in); - const year = now2.getFullYear(); - const month = now2.getMonth(); - const day = now2.getDate(); - const date = constructNow(options?.in); - date.setFullYear(year, month, day + 1); - date.setHours(23, 59, 59, 999); - return options?.in ? options.in(date) : date; -} -var endOfTomorrow_default; -var init_endOfTomorrow = __esm({ - "node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/endOfTomorrow.js"() { - init_constructNow(); - endOfTomorrow_default = endOfTomorrow; - } -}); - -// node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/endOfYesterday.js -function endOfYesterday(options) { - const now2 = constructNow(options?.in); - const date = constructFrom(options?.in, 0); - date.setFullYear(now2.getFullYear(), now2.getMonth(), now2.getDate() - 1); - date.setHours(23, 59, 59, 999); - return date; -} -var endOfYesterday_default; -var init_endOfYesterday = __esm({ - "node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/endOfYesterday.js"() { - init_constructFrom(); - init_constructNow(); - endOfYesterday_default = endOfYesterday; - } -}); - -// node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/locale/en-US/_lib/formatDistance.js -var formatDistanceLocale, formatDistance; -var init_formatDistance = __esm({ - "node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/locale/en-US/_lib/formatDistance.js"() { - formatDistanceLocale = { - lessThanXSeconds: { - one: "less than a second", - other: "less than {{count}} seconds" - }, - xSeconds: { - one: "1 second", - other: "{{count}} seconds" - }, - halfAMinute: "half a minute", - lessThanXMinutes: { - one: "less than a minute", - other: "less than {{count}} minutes" - }, - xMinutes: { - one: "1 minute", - other: "{{count}} minutes" - }, - aboutXHours: { - one: "about 1 hour", - other: "about {{count}} hours" - }, - xHours: { - one: "1 hour", - other: "{{count}} hours" - }, - xDays: { - one: "1 day", - other: "{{count}} days" - }, - aboutXWeeks: { - one: "about 1 week", - other: "about {{count}} weeks" - }, - xWeeks: { - one: "1 week", - other: "{{count}} weeks" - }, - aboutXMonths: { - one: "about 1 month", - other: "about {{count}} months" - }, - xMonths: { - one: "1 month", - other: "{{count}} months" - }, - aboutXYears: { - one: "about 1 year", - other: "about {{count}} years" - }, - xYears: { - one: "1 year", - other: "{{count}} years" - }, - overXYears: { - one: "over 1 year", - other: "over {{count}} years" - }, - almostXYears: { - one: "almost 1 year", - other: "almost {{count}} years" - } - }; - formatDistance = (token, count2, options) => { - let result; - const tokenValue = formatDistanceLocale[token]; - if (typeof tokenValue === "string") { - result = tokenValue; - } else if (count2 === 1) { - result = tokenValue.one; - } else { - result = tokenValue.other.replace("{{count}}", count2.toString()); - } - if (options?.addSuffix) { - if (options.comparison && options.comparison > 0) { - return "in " + result; - } else { - return result + " ago"; - } - } - return result; - }; - } -}); - -// node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/locale/_lib/buildFormatLongFn.js -function buildFormatLongFn(args) { - return (options = {}) => { - const width = options.width ? String(options.width) : args.defaultWidth; - const format2 = args.formats[width] || args.formats[args.defaultWidth]; - return format2; - }; -} -var init_buildFormatLongFn = __esm({ - "node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/locale/_lib/buildFormatLongFn.js"() { - } -}); - -// node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/locale/en-US/_lib/formatLong.js -var dateFormats, timeFormats, dateTimeFormats, formatLong; -var init_formatLong = __esm({ - "node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/locale/en-US/_lib/formatLong.js"() { - init_buildFormatLongFn(); - dateFormats = { - full: "EEEE, MMMM do, y", - long: "MMMM do, y", - medium: "MMM d, y", - short: "MM/dd/yyyy" - }; - timeFormats = { - full: "h:mm:ss a zzzz", - long: "h:mm:ss a z", - medium: "h:mm:ss a", - short: "h:mm a" - }; - dateTimeFormats = { - full: "{{date}} 'at' {{time}}", - long: "{{date}} 'at' {{time}}", - medium: "{{date}}, {{time}}", - short: "{{date}}, {{time}}" - }; - formatLong = { - date: buildFormatLongFn({ - formats: dateFormats, - defaultWidth: "full" - }), - time: buildFormatLongFn({ - formats: timeFormats, - defaultWidth: "full" - }), - dateTime: buildFormatLongFn({ - formats: dateTimeFormats, - defaultWidth: "full" - }) - }; - } -}); - -// node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/locale/en-US/_lib/formatRelative.js -var formatRelativeLocale, formatRelative; -var init_formatRelative = __esm({ - "node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/locale/en-US/_lib/formatRelative.js"() { - formatRelativeLocale = { - lastWeek: "'last' eeee 'at' p", - yesterday: "'yesterday at' p", - today: "'today at' p", - tomorrow: "'tomorrow at' p", - nextWeek: "eeee 'at' p", - other: "P" - }; - formatRelative = (token, _date, _baseDate, _options) => formatRelativeLocale[token]; - } -}); - -// node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/locale/_lib/buildLocalizeFn.js -function buildLocalizeFn(args) { - return (value2, options) => { - const context2 = options?.context ? String(options.context) : "standalone"; - let valuesArray; - if (context2 === "formatting" && args.formattingValues) { - const defaultWidth = args.defaultFormattingWidth || args.defaultWidth; - const width = options?.width ? String(options.width) : defaultWidth; - valuesArray = args.formattingValues[width] || args.formattingValues[defaultWidth]; - } else { - const defaultWidth = args.defaultWidth; - const width = options?.width ? String(options.width) : args.defaultWidth; - valuesArray = args.values[width] || args.values[defaultWidth]; - } - const index2 = args.argumentCallback ? args.argumentCallback(value2) : value2; - return valuesArray[index2]; - }; -} -var init_buildLocalizeFn = __esm({ - "node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/locale/_lib/buildLocalizeFn.js"() { - } -}); - -// node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/locale/en-US/_lib/localize.js -var eraValues, quarterValues, monthValues, dayValues, dayPeriodValues, formattingDayPeriodValues, ordinalNumber, localize; -var init_localize = __esm({ - "node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/locale/en-US/_lib/localize.js"() { - init_buildLocalizeFn(); - eraValues = { - narrow: ["B", "A"], - abbreviated: ["BC", "AD"], - wide: ["Before Christ", "Anno Domini"] - }; - quarterValues = { - narrow: ["1", "2", "3", "4"], - abbreviated: ["Q1", "Q2", "Q3", "Q4"], - wide: ["1st quarter", "2nd quarter", "3rd quarter", "4th quarter"] - }; - monthValues = { - narrow: ["J", "F", "M", "A", "M", "J", "J", "A", "S", "O", "N", "D"], - abbreviated: [ - "Jan", - "Feb", - "Mar", - "Apr", - "May", - "Jun", - "Jul", - "Aug", - "Sep", - "Oct", - "Nov", - "Dec" - ], - wide: [ - "January", - "February", - "March", - "April", - "May", - "June", - "July", - "August", - "September", - "October", - "November", - "December" - ] - }; - dayValues = { - narrow: ["S", "M", "T", "W", "T", "F", "S"], - short: ["Su", "Mo", "Tu", "We", "Th", "Fr", "Sa"], - abbreviated: ["Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"], - wide: [ - "Sunday", - "Monday", - "Tuesday", - "Wednesday", - "Thursday", - "Friday", - "Saturday" - ] - }; - dayPeriodValues = { - narrow: { - am: "a", - pm: "p", - midnight: "mi", - noon: "n", - morning: "morning", - afternoon: "afternoon", - evening: "evening", - night: "night" - }, - abbreviated: { - am: "AM", - pm: "PM", - midnight: "midnight", - noon: "noon", - morning: "morning", - afternoon: "afternoon", - evening: "evening", - night: "night" - }, - wide: { - am: "a.m.", - pm: "p.m.", - midnight: "midnight", - noon: "noon", - morning: "morning", - afternoon: "afternoon", - evening: "evening", - night: "night" - } - }; - formattingDayPeriodValues = { - narrow: { - am: "a", - pm: "p", - midnight: "mi", - noon: "n", - morning: "in the morning", - afternoon: "in the afternoon", - evening: "in the evening", - night: "at night" - }, - abbreviated: { - am: "AM", - pm: "PM", - midnight: "midnight", - noon: "noon", - morning: "in the morning", - afternoon: "in the afternoon", - evening: "in the evening", - night: "at night" - }, - wide: { - am: "a.m.", - pm: "p.m.", - midnight: "midnight", - noon: "noon", - morning: "in the morning", - afternoon: "in the afternoon", - evening: "in the evening", - night: "at night" - } - }; - ordinalNumber = (dirtyNumber, _options) => { - const number2 = Number(dirtyNumber); - const rem100 = number2 % 100; - if (rem100 > 20 || rem100 < 10) { - switch (rem100 % 10) { - case 1: - return number2 + "st"; - case 2: - return number2 + "nd"; - case 3: - return number2 + "rd"; - } - } - return number2 + "th"; - }; - localize = { - ordinalNumber, - era: buildLocalizeFn({ - values: eraValues, - defaultWidth: "wide" - }), - quarter: buildLocalizeFn({ - values: quarterValues, - defaultWidth: "wide", - argumentCallback: (quarter) => quarter - 1 - }), - month: buildLocalizeFn({ - values: monthValues, - defaultWidth: "wide" - }), - day: buildLocalizeFn({ - values: dayValues, - defaultWidth: "wide" - }), - dayPeriod: buildLocalizeFn({ - values: dayPeriodValues, - defaultWidth: "wide", - formattingValues: formattingDayPeriodValues, - defaultFormattingWidth: "wide" - }) - }; - } -}); - -// node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/locale/_lib/buildMatchFn.js -function buildMatchFn(args) { - return (string3, options = {}) => { - const width = options.width; - const matchPattern = width && args.matchPatterns[width] || args.matchPatterns[args.defaultMatchWidth]; - const matchResult = string3.match(matchPattern); - if (!matchResult) { - return null; - } - const matchedString = matchResult[0]; - const parsePatterns = width && args.parsePatterns[width] || args.parsePatterns[args.defaultParseWidth]; - const key2 = Array.isArray(parsePatterns) ? findIndex2(parsePatterns, (pattern) => pattern.test(matchedString)) : ( - // [TODO] -- I challenge you to fix the type - findKey(parsePatterns, (pattern) => pattern.test(matchedString)) - ); - let value2; - value2 = args.valueCallback ? args.valueCallback(key2) : key2; - value2 = options.valueCallback ? ( - // [TODO] -- I challenge you to fix the type - options.valueCallback(value2) - ) : value2; - const rest = string3.slice(matchedString.length); - return { value: value2, rest }; - }; -} -function findKey(object, predicate) { - for (const key2 in object) { - if (Object.prototype.hasOwnProperty.call(object, key2) && predicate(object[key2])) { - return key2; - } - } - return void 0; -} -function findIndex2(array, predicate) { - for (let key2 = 0; key2 < array.length; key2++) { - if (predicate(array[key2])) { - return key2; - } - } - return void 0; -} -var init_buildMatchFn = __esm({ - "node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/locale/_lib/buildMatchFn.js"() { - } -}); - -// node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/locale/_lib/buildMatchPatternFn.js -function buildMatchPatternFn(args) { - return (string3, options = {}) => { - const matchResult = string3.match(args.matchPattern); - if (!matchResult) return null; - const matchedString = matchResult[0]; - const parseResult = string3.match(args.parsePattern); - if (!parseResult) return null; - let value2 = args.valueCallback ? args.valueCallback(parseResult[0]) : parseResult[0]; - value2 = options.valueCallback ? options.valueCallback(value2) : value2; - const rest = string3.slice(matchedString.length); - return { value: value2, rest }; - }; -} -var init_buildMatchPatternFn = __esm({ - "node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/locale/_lib/buildMatchPatternFn.js"() { - } -}); - -// node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/locale/en-US/_lib/match.js -var matchOrdinalNumberPattern, parseOrdinalNumberPattern, matchEraPatterns, parseEraPatterns, matchQuarterPatterns, parseQuarterPatterns, matchMonthPatterns, parseMonthPatterns, matchDayPatterns, parseDayPatterns, matchDayPeriodPatterns, parseDayPeriodPatterns, match; -var init_match = __esm({ - "node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/locale/en-US/_lib/match.js"() { - init_buildMatchFn(); - init_buildMatchPatternFn(); - matchOrdinalNumberPattern = /^(\d+)(th|st|nd|rd)?/i; - parseOrdinalNumberPattern = /\d+/i; - matchEraPatterns = { - narrow: /^(b|a)/i, - abbreviated: /^(b\.?\s?c\.?|b\.?\s?c\.?\s?e\.?|a\.?\s?d\.?|c\.?\s?e\.?)/i, - wide: /^(before christ|before common era|anno domini|common era)/i - }; - parseEraPatterns = { - any: [/^b/i, /^(a|c)/i] - }; - matchQuarterPatterns = { - narrow: /^[1234]/i, - abbreviated: /^q[1234]/i, - wide: /^[1234](th|st|nd|rd)? quarter/i - }; - parseQuarterPatterns = { - any: [/1/i, /2/i, /3/i, /4/i] - }; - matchMonthPatterns = { - narrow: /^[jfmasond]/i, - abbreviated: /^(jan|feb|mar|apr|may|jun|jul|aug|sep|oct|nov|dec)/i, - wide: /^(january|february|march|april|may|june|july|august|september|october|november|december)/i - }; - parseMonthPatterns = { - narrow: [ - /^j/i, - /^f/i, - /^m/i, - /^a/i, - /^m/i, - /^j/i, - /^j/i, - /^a/i, - /^s/i, - /^o/i, - /^n/i, - /^d/i - ], - any: [ - /^ja/i, - /^f/i, - /^mar/i, - /^ap/i, - /^may/i, - /^jun/i, - /^jul/i, - /^au/i, - /^s/i, - /^o/i, - /^n/i, - /^d/i - ] - }; - matchDayPatterns = { - narrow: /^[smtwf]/i, - short: /^(su|mo|tu|we|th|fr|sa)/i, - abbreviated: /^(sun|mon|tue|wed|thu|fri|sat)/i, - wide: /^(sunday|monday|tuesday|wednesday|thursday|friday|saturday)/i - }; - parseDayPatterns = { - narrow: [/^s/i, /^m/i, /^t/i, /^w/i, /^t/i, /^f/i, /^s/i], - any: [/^su/i, /^m/i, /^tu/i, /^w/i, /^th/i, /^f/i, /^sa/i] - }; - matchDayPeriodPatterns = { - narrow: /^(a|p|mi|n|(in the|at) (morning|afternoon|evening|night))/i, - any: /^([ap]\.?\s?m\.?|midnight|noon|(in the|at) (morning|afternoon|evening|night))/i - }; - parseDayPeriodPatterns = { - any: { - am: /^a/i, - pm: /^p/i, - midnight: /^mi/i, - noon: /^no/i, - morning: /morning/i, - afternoon: /afternoon/i, - evening: /evening/i, - night: /night/i - } - }; - match = { - ordinalNumber: buildMatchPatternFn({ - matchPattern: matchOrdinalNumberPattern, - parsePattern: parseOrdinalNumberPattern, - valueCallback: (value2) => parseInt(value2, 10) - }), - era: buildMatchFn({ - matchPatterns: matchEraPatterns, - defaultMatchWidth: "wide", - parsePatterns: parseEraPatterns, - defaultParseWidth: "any" - }), - quarter: buildMatchFn({ - matchPatterns: matchQuarterPatterns, - defaultMatchWidth: "wide", - parsePatterns: parseQuarterPatterns, - defaultParseWidth: "any", - valueCallback: (index2) => index2 + 1 - }), - month: buildMatchFn({ - matchPatterns: matchMonthPatterns, - defaultMatchWidth: "wide", - parsePatterns: parseMonthPatterns, - defaultParseWidth: "any" - }), - day: buildMatchFn({ - matchPatterns: matchDayPatterns, - defaultMatchWidth: "wide", - parsePatterns: parseDayPatterns, - defaultParseWidth: "any" - }), - dayPeriod: buildMatchFn({ - matchPatterns: matchDayPeriodPatterns, - defaultMatchWidth: "any", - parsePatterns: parseDayPeriodPatterns, - defaultParseWidth: "any" - }) - }; - } -}); - -// node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/locale/en-US.js -var enUS, en_US_default; -var init_en_US = __esm({ - "node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/locale/en-US.js"() { - init_formatDistance(); - init_formatLong(); - init_formatRelative(); - init_localize(); - init_match(); - enUS = { - code: "en-US", - formatDistance, - formatLong, - formatRelative, - localize, - match, - options: { - weekStartsOn: 0, - firstWeekContainsDate: 1 - } - }; - en_US_default = enUS; - } -}); - -// node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/_lib/defaultLocale.js -var init_defaultLocale = __esm({ - "node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/_lib/defaultLocale.js"() { - init_en_US(); - } -}); - -// node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/getDayOfYear.js -function getDayOfYear(date, options) { - const _date = toDate(date, options?.in); - const diff = differenceInCalendarDays(_date, startOfYear(_date)); - const dayOfYear = diff + 1; - return dayOfYear; -} -var getDayOfYear_default; -var init_getDayOfYear = __esm({ - "node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/getDayOfYear.js"() { - init_differenceInCalendarDays(); - init_startOfYear(); - init_toDate(); - getDayOfYear_default = getDayOfYear; - } -}); - -// node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/getISOWeek.js -function getISOWeek(date, options) { - const _date = toDate(date, options?.in); - const diff = +startOfISOWeek(_date) - +startOfISOWeekYear(_date); - return Math.round(diff / millisecondsInWeek) + 1; -} -var getISOWeek_default; -var init_getISOWeek = __esm({ - "node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/getISOWeek.js"() { - init_constants(); - init_startOfISOWeek(); - init_startOfISOWeekYear(); - init_toDate(); - getISOWeek_default = getISOWeek; - } -}); - -// node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/getWeekYear.js -function getWeekYear(date, options) { - const _date = toDate(date, options?.in); - const year = _date.getFullYear(); - const defaultOptions2 = getDefaultOptions(); - const firstWeekContainsDate = options?.firstWeekContainsDate ?? options?.locale?.options?.firstWeekContainsDate ?? defaultOptions2.firstWeekContainsDate ?? defaultOptions2.locale?.options?.firstWeekContainsDate ?? 1; - const firstWeekOfNextYear = constructFrom(options?.in || date, 0); - firstWeekOfNextYear.setFullYear(year + 1, 0, firstWeekContainsDate); - firstWeekOfNextYear.setHours(0, 0, 0, 0); - const startOfNextYear = startOfWeek(firstWeekOfNextYear, options); - const firstWeekOfThisYear = constructFrom(options?.in || date, 0); - firstWeekOfThisYear.setFullYear(year, 0, firstWeekContainsDate); - firstWeekOfThisYear.setHours(0, 0, 0, 0); - const startOfThisYear = startOfWeek(firstWeekOfThisYear, options); - if (+_date >= +startOfNextYear) { - return year + 1; - } else if (+_date >= +startOfThisYear) { - return year; - } else { - return year - 1; - } -} -var getWeekYear_default; -var init_getWeekYear = __esm({ - "node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/getWeekYear.js"() { - init_defaultOptions(); - init_constructFrom(); - init_startOfWeek(); - init_toDate(); - getWeekYear_default = getWeekYear; - } -}); - -// node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/startOfWeekYear.js -function startOfWeekYear(date, options) { - const defaultOptions2 = getDefaultOptions(); - const firstWeekContainsDate = options?.firstWeekContainsDate ?? options?.locale?.options?.firstWeekContainsDate ?? defaultOptions2.firstWeekContainsDate ?? defaultOptions2.locale?.options?.firstWeekContainsDate ?? 1; - const year = getWeekYear(date, options); - const firstWeek = constructFrom(options?.in || date, 0); - firstWeek.setFullYear(year, 0, firstWeekContainsDate); - firstWeek.setHours(0, 0, 0, 0); - const _date = startOfWeek(firstWeek, options); - return _date; -} -var startOfWeekYear_default; -var init_startOfWeekYear = __esm({ - "node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/startOfWeekYear.js"() { - init_defaultOptions(); - init_constructFrom(); - init_getWeekYear(); - init_startOfWeek(); - startOfWeekYear_default = startOfWeekYear; - } -}); - -// node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/getWeek.js -function getWeek(date, options) { - const _date = toDate(date, options?.in); - const diff = +startOfWeek(_date, options) - +startOfWeekYear(_date, options); - return Math.round(diff / millisecondsInWeek) + 1; -} -var getWeek_default; -var init_getWeek = __esm({ - "node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/getWeek.js"() { - init_constants(); - init_startOfWeek(); - init_startOfWeekYear(); - init_toDate(); - getWeek_default = getWeek; - } -}); - -// node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/_lib/addLeadingZeros.js -function addLeadingZeros(number2, targetLength) { - const sign = number2 < 0 ? "-" : ""; - const output = Math.abs(number2).toString().padStart(targetLength, "0"); - return sign + output; -} -var init_addLeadingZeros = __esm({ - "node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/_lib/addLeadingZeros.js"() { - } -}); - -// node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/_lib/format/lightFormatters.js -var lightFormatters; -var init_lightFormatters = __esm({ - "node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/_lib/format/lightFormatters.js"() { - init_addLeadingZeros(); - lightFormatters = { - // Year - y(date, token) { - const signedYear = date.getFullYear(); - const year = signedYear > 0 ? signedYear : 1 - signedYear; - return addLeadingZeros(token === "yy" ? year % 100 : year, token.length); - }, - // Month - M(date, token) { - const month = date.getMonth(); - return token === "M" ? String(month + 1) : addLeadingZeros(month + 1, 2); - }, - // Day of the month - d(date, token) { - return addLeadingZeros(date.getDate(), token.length); - }, - // AM or PM - a(date, token) { - const dayPeriodEnumValue = date.getHours() / 12 >= 1 ? "pm" : "am"; - switch (token) { - case "a": - case "aa": - return dayPeriodEnumValue.toUpperCase(); - case "aaa": - return dayPeriodEnumValue; - case "aaaaa": - return dayPeriodEnumValue[0]; - case "aaaa": - default: - return dayPeriodEnumValue === "am" ? "a.m." : "p.m."; - } - }, - // Hour [1-12] - h(date, token) { - return addLeadingZeros(date.getHours() % 12 || 12, token.length); - }, - // Hour [0-23] - H(date, token) { - return addLeadingZeros(date.getHours(), token.length); - }, - // Minute - m(date, token) { - return addLeadingZeros(date.getMinutes(), token.length); - }, - // Second - s(date, token) { - return addLeadingZeros(date.getSeconds(), token.length); - }, - // Fraction of second - S(date, token) { - const numberOfDigits = token.length; - const milliseconds2 = date.getMilliseconds(); - const fractionalSeconds = Math.trunc( - milliseconds2 * Math.pow(10, numberOfDigits - 3) - ); - return addLeadingZeros(fractionalSeconds, token.length); - } - }; - } -}); - -// node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/_lib/format/formatters.js -function formatTimezoneShort(offset, delimiter = "") { - const sign = offset > 0 ? "-" : "+"; - const absOffset = Math.abs(offset); - const hours = Math.trunc(absOffset / 60); - const minutes = absOffset % 60; - if (minutes === 0) { - return sign + String(hours); - } - return sign + String(hours) + delimiter + addLeadingZeros(minutes, 2); -} -function formatTimezoneWithOptionalMinutes(offset, delimiter) { - if (offset % 60 === 0) { - const sign = offset > 0 ? "-" : "+"; - return sign + addLeadingZeros(Math.abs(offset) / 60, 2); - } - return formatTimezone(offset, delimiter); -} -function formatTimezone(offset, delimiter = "") { - const sign = offset > 0 ? "-" : "+"; - const absOffset = Math.abs(offset); - const hours = addLeadingZeros(Math.trunc(absOffset / 60), 2); - const minutes = addLeadingZeros(absOffset % 60, 2); - return sign + hours + delimiter + minutes; -} -var dayPeriodEnum, formatters; -var init_formatters = __esm({ - "node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/_lib/format/formatters.js"() { - init_getDayOfYear(); - init_getISOWeek(); - init_getISOWeekYear(); - init_getWeek(); - init_getWeekYear(); - init_addLeadingZeros(); - init_lightFormatters(); - dayPeriodEnum = { - am: "am", - pm: "pm", - midnight: "midnight", - noon: "noon", - morning: "morning", - afternoon: "afternoon", - evening: "evening", - night: "night" - }; - formatters = { - // Era - G: function(date, token, localize2) { - const era = date.getFullYear() > 0 ? 1 : 0; - switch (token) { - // AD, BC - case "G": - case "GG": - case "GGG": - return localize2.era(era, { width: "abbreviated" }); - // A, B - case "GGGGG": - return localize2.era(era, { width: "narrow" }); - // Anno Domini, Before Christ - case "GGGG": - default: - return localize2.era(era, { width: "wide" }); - } - }, - // Year - y: function(date, token, localize2) { - if (token === "yo") { - const signedYear = date.getFullYear(); - const year = signedYear > 0 ? signedYear : 1 - signedYear; - return localize2.ordinalNumber(year, { unit: "year" }); - } - return lightFormatters.y(date, token); - }, - // Local week-numbering year - Y: function(date, token, localize2, options) { - const signedWeekYear = getWeekYear(date, options); - const weekYear = signedWeekYear > 0 ? signedWeekYear : 1 - signedWeekYear; - if (token === "YY") { - const twoDigitYear = weekYear % 100; - return addLeadingZeros(twoDigitYear, 2); - } - if (token === "Yo") { - return localize2.ordinalNumber(weekYear, { unit: "year" }); - } - return addLeadingZeros(weekYear, token.length); - }, - // ISO week-numbering year - R: function(date, token) { - const isoWeekYear = getISOWeekYear(date); - return addLeadingZeros(isoWeekYear, token.length); - }, - // Extended year. This is a single number designating the year of this calendar system. - // The main difference between `y` and `u` localizers are B.C. years: - // | Year | `y` | `u` | - // |------|-----|-----| - // | AC 1 | 1 | 1 | - // | BC 1 | 1 | 0 | - // | BC 2 | 2 | -1 | - // Also `yy` always returns the last two digits of a year, - // while `uu` pads single digit years to 2 characters and returns other years unchanged. - u: function(date, token) { - const year = date.getFullYear(); - return addLeadingZeros(year, token.length); - }, - // Quarter - Q: function(date, token, localize2) { - const quarter = Math.ceil((date.getMonth() + 1) / 3); - switch (token) { - // 1, 2, 3, 4 - case "Q": - return String(quarter); - // 01, 02, 03, 04 - case "QQ": - return addLeadingZeros(quarter, 2); - // 1st, 2nd, 3rd, 4th - case "Qo": - return localize2.ordinalNumber(quarter, { unit: "quarter" }); - // Q1, Q2, Q3, Q4 - case "QQQ": - return localize2.quarter(quarter, { - width: "abbreviated", - context: "formatting" - }); - // 1, 2, 3, 4 (narrow quarter; could be not numerical) - case "QQQQQ": - return localize2.quarter(quarter, { - width: "narrow", - context: "formatting" - }); - // 1st quarter, 2nd quarter, ... - case "QQQQ": - default: - return localize2.quarter(quarter, { - width: "wide", - context: "formatting" - }); - } - }, - // Stand-alone quarter - q: function(date, token, localize2) { - const quarter = Math.ceil((date.getMonth() + 1) / 3); - switch (token) { - // 1, 2, 3, 4 - case "q": - return String(quarter); - // 01, 02, 03, 04 - case "qq": - return addLeadingZeros(quarter, 2); - // 1st, 2nd, 3rd, 4th - case "qo": - return localize2.ordinalNumber(quarter, { unit: "quarter" }); - // Q1, Q2, Q3, Q4 - case "qqq": - return localize2.quarter(quarter, { - width: "abbreviated", - context: "standalone" - }); - // 1, 2, 3, 4 (narrow quarter; could be not numerical) - case "qqqqq": - return localize2.quarter(quarter, { - width: "narrow", - context: "standalone" - }); - // 1st quarter, 2nd quarter, ... - case "qqqq": - default: - return localize2.quarter(quarter, { - width: "wide", - context: "standalone" - }); - } - }, - // Month - M: function(date, token, localize2) { - const month = date.getMonth(); - switch (token) { - case "M": - case "MM": - return lightFormatters.M(date, token); - // 1st, 2nd, ..., 12th - case "Mo": - return localize2.ordinalNumber(month + 1, { unit: "month" }); - // Jan, Feb, ..., Dec - case "MMM": - return localize2.month(month, { - width: "abbreviated", - context: "formatting" - }); - // J, F, ..., D - case "MMMMM": - return localize2.month(month, { - width: "narrow", - context: "formatting" - }); - // January, February, ..., December - case "MMMM": - default: - return localize2.month(month, { width: "wide", context: "formatting" }); - } - }, - // Stand-alone month - L: function(date, token, localize2) { - const month = date.getMonth(); - switch (token) { - // 1, 2, ..., 12 - case "L": - return String(month + 1); - // 01, 02, ..., 12 - case "LL": - return addLeadingZeros(month + 1, 2); - // 1st, 2nd, ..., 12th - case "Lo": - return localize2.ordinalNumber(month + 1, { unit: "month" }); - // Jan, Feb, ..., Dec - case "LLL": - return localize2.month(month, { - width: "abbreviated", - context: "standalone" - }); - // J, F, ..., D - case "LLLLL": - return localize2.month(month, { - width: "narrow", - context: "standalone" - }); - // January, February, ..., December - case "LLLL": - default: - return localize2.month(month, { width: "wide", context: "standalone" }); - } - }, - // Local week of year - w: function(date, token, localize2, options) { - const week = getWeek(date, options); - if (token === "wo") { - return localize2.ordinalNumber(week, { unit: "week" }); - } - return addLeadingZeros(week, token.length); - }, - // ISO week of year - I: function(date, token, localize2) { - const isoWeek = getISOWeek(date); - if (token === "Io") { - return localize2.ordinalNumber(isoWeek, { unit: "week" }); - } - return addLeadingZeros(isoWeek, token.length); - }, - // Day of the month - d: function(date, token, localize2) { - if (token === "do") { - return localize2.ordinalNumber(date.getDate(), { unit: "date" }); - } - return lightFormatters.d(date, token); - }, - // Day of year - D: function(date, token, localize2) { - const dayOfYear = getDayOfYear(date); - if (token === "Do") { - return localize2.ordinalNumber(dayOfYear, { unit: "dayOfYear" }); - } - return addLeadingZeros(dayOfYear, token.length); - }, - // Day of week - E: function(date, token, localize2) { - const dayOfWeek = date.getDay(); - switch (token) { - // Tue - case "E": - case "EE": - case "EEE": - return localize2.day(dayOfWeek, { - width: "abbreviated", - context: "formatting" - }); - // T - case "EEEEE": - return localize2.day(dayOfWeek, { - width: "narrow", - context: "formatting" - }); - // Tu - case "EEEEEE": - return localize2.day(dayOfWeek, { - width: "short", - context: "formatting" - }); - // Tuesday - case "EEEE": - default: - return localize2.day(dayOfWeek, { - width: "wide", - context: "formatting" - }); - } - }, - // Local day of week - e: function(date, token, localize2, options) { - const dayOfWeek = date.getDay(); - const localDayOfWeek = (dayOfWeek - options.weekStartsOn + 8) % 7 || 7; - switch (token) { - // Numerical value (Nth day of week with current locale or weekStartsOn) - case "e": - return String(localDayOfWeek); - // Padded numerical value - case "ee": - return addLeadingZeros(localDayOfWeek, 2); - // 1st, 2nd, ..., 7th - case "eo": - return localize2.ordinalNumber(localDayOfWeek, { unit: "day" }); - case "eee": - return localize2.day(dayOfWeek, { - width: "abbreviated", - context: "formatting" - }); - // T - case "eeeee": - return localize2.day(dayOfWeek, { - width: "narrow", - context: "formatting" - }); - // Tu - case "eeeeee": - return localize2.day(dayOfWeek, { - width: "short", - context: "formatting" - }); - // Tuesday - case "eeee": - default: - return localize2.day(dayOfWeek, { - width: "wide", - context: "formatting" - }); - } - }, - // Stand-alone local day of week - c: function(date, token, localize2, options) { - const dayOfWeek = date.getDay(); - const localDayOfWeek = (dayOfWeek - options.weekStartsOn + 8) % 7 || 7; - switch (token) { - // Numerical value (same as in `e`) - case "c": - return String(localDayOfWeek); - // Padded numerical value - case "cc": - return addLeadingZeros(localDayOfWeek, token.length); - // 1st, 2nd, ..., 7th - case "co": - return localize2.ordinalNumber(localDayOfWeek, { unit: "day" }); - case "ccc": - return localize2.day(dayOfWeek, { - width: "abbreviated", - context: "standalone" - }); - // T - case "ccccc": - return localize2.day(dayOfWeek, { - width: "narrow", - context: "standalone" - }); - // Tu - case "cccccc": - return localize2.day(dayOfWeek, { - width: "short", - context: "standalone" - }); - // Tuesday - case "cccc": - default: - return localize2.day(dayOfWeek, { - width: "wide", - context: "standalone" - }); - } - }, - // ISO day of week - i: function(date, token, localize2) { - const dayOfWeek = date.getDay(); - const isoDayOfWeek = dayOfWeek === 0 ? 7 : dayOfWeek; - switch (token) { - // 2 - case "i": - return String(isoDayOfWeek); - // 02 - case "ii": - return addLeadingZeros(isoDayOfWeek, token.length); - // 2nd - case "io": - return localize2.ordinalNumber(isoDayOfWeek, { unit: "day" }); - // Tue - case "iii": - return localize2.day(dayOfWeek, { - width: "abbreviated", - context: "formatting" - }); - // T - case "iiiii": - return localize2.day(dayOfWeek, { - width: "narrow", - context: "formatting" - }); - // Tu - case "iiiiii": - return localize2.day(dayOfWeek, { - width: "short", - context: "formatting" - }); - // Tuesday - case "iiii": - default: - return localize2.day(dayOfWeek, { - width: "wide", - context: "formatting" - }); - } - }, - // AM or PM - a: function(date, token, localize2) { - const hours = date.getHours(); - const dayPeriodEnumValue = hours / 12 >= 1 ? "pm" : "am"; - switch (token) { - case "a": - case "aa": - return localize2.dayPeriod(dayPeriodEnumValue, { - width: "abbreviated", - context: "formatting" - }); - case "aaa": - return localize2.dayPeriod(dayPeriodEnumValue, { - width: "abbreviated", - context: "formatting" - }).toLowerCase(); - case "aaaaa": - return localize2.dayPeriod(dayPeriodEnumValue, { - width: "narrow", - context: "formatting" - }); - case "aaaa": - default: - return localize2.dayPeriod(dayPeriodEnumValue, { - width: "wide", - context: "formatting" - }); - } - }, - // AM, PM, midnight, noon - b: function(date, token, localize2) { - const hours = date.getHours(); - let dayPeriodEnumValue; - if (hours === 12) { - dayPeriodEnumValue = dayPeriodEnum.noon; - } else if (hours === 0) { - dayPeriodEnumValue = dayPeriodEnum.midnight; - } else { - dayPeriodEnumValue = hours / 12 >= 1 ? "pm" : "am"; - } - switch (token) { - case "b": - case "bb": - return localize2.dayPeriod(dayPeriodEnumValue, { - width: "abbreviated", - context: "formatting" - }); - case "bbb": - return localize2.dayPeriod(dayPeriodEnumValue, { - width: "abbreviated", - context: "formatting" - }).toLowerCase(); - case "bbbbb": - return localize2.dayPeriod(dayPeriodEnumValue, { - width: "narrow", - context: "formatting" - }); - case "bbbb": - default: - return localize2.dayPeriod(dayPeriodEnumValue, { - width: "wide", - context: "formatting" - }); - } - }, - // in the morning, in the afternoon, in the evening, at night - B: function(date, token, localize2) { - const hours = date.getHours(); - let dayPeriodEnumValue; - if (hours >= 17) { - dayPeriodEnumValue = dayPeriodEnum.evening; - } else if (hours >= 12) { - dayPeriodEnumValue = dayPeriodEnum.afternoon; - } else if (hours >= 4) { - dayPeriodEnumValue = dayPeriodEnum.morning; - } else { - dayPeriodEnumValue = dayPeriodEnum.night; - } - switch (token) { - case "B": - case "BB": - case "BBB": - return localize2.dayPeriod(dayPeriodEnumValue, { - width: "abbreviated", - context: "formatting" - }); - case "BBBBB": - return localize2.dayPeriod(dayPeriodEnumValue, { - width: "narrow", - context: "formatting" - }); - case "BBBB": - default: - return localize2.dayPeriod(dayPeriodEnumValue, { - width: "wide", - context: "formatting" - }); - } - }, - // Hour [1-12] - h: function(date, token, localize2) { - if (token === "ho") { - let hours = date.getHours() % 12; - if (hours === 0) hours = 12; - return localize2.ordinalNumber(hours, { unit: "hour" }); - } - return lightFormatters.h(date, token); - }, - // Hour [0-23] - H: function(date, token, localize2) { - if (token === "Ho") { - return localize2.ordinalNumber(date.getHours(), { unit: "hour" }); - } - return lightFormatters.H(date, token); - }, - // Hour [0-11] - K: function(date, token, localize2) { - const hours = date.getHours() % 12; - if (token === "Ko") { - return localize2.ordinalNumber(hours, { unit: "hour" }); - } - return addLeadingZeros(hours, token.length); - }, - // Hour [1-24] - k: function(date, token, localize2) { - let hours = date.getHours(); - if (hours === 0) hours = 24; - if (token === "ko") { - return localize2.ordinalNumber(hours, { unit: "hour" }); - } - return addLeadingZeros(hours, token.length); - }, - // Minute - m: function(date, token, localize2) { - if (token === "mo") { - return localize2.ordinalNumber(date.getMinutes(), { unit: "minute" }); - } - return lightFormatters.m(date, token); - }, - // Second - s: function(date, token, localize2) { - if (token === "so") { - return localize2.ordinalNumber(date.getSeconds(), { unit: "second" }); - } - return lightFormatters.s(date, token); - }, - // Fraction of second - S: function(date, token) { - return lightFormatters.S(date, token); - }, - // Timezone (ISO-8601. If offset is 0, output is always `'Z'`) - X: function(date, token, _localize) { - const timezoneOffset = date.getTimezoneOffset(); - if (timezoneOffset === 0) { - return "Z"; - } - switch (token) { - // Hours and optional minutes - case "X": - return formatTimezoneWithOptionalMinutes(timezoneOffset); - // Hours, minutes and optional seconds without `:` delimiter - // Note: neither ISO-8601 nor JavaScript supports seconds in timezone offsets - // so this token always has the same output as `XX` - case "XXXX": - case "XX": - return formatTimezone(timezoneOffset); - // Hours, minutes and optional seconds with `:` delimiter - // Note: neither ISO-8601 nor JavaScript supports seconds in timezone offsets - // so this token always has the same output as `XXX` - case "XXXXX": - case "XXX": - // Hours and minutes with `:` delimiter - default: - return formatTimezone(timezoneOffset, ":"); - } - }, - // Timezone (ISO-8601. If offset is 0, output is `'+00:00'` or equivalent) - x: function(date, token, _localize) { - const timezoneOffset = date.getTimezoneOffset(); - switch (token) { - // Hours and optional minutes - case "x": - return formatTimezoneWithOptionalMinutes(timezoneOffset); - // Hours, minutes and optional seconds without `:` delimiter - // Note: neither ISO-8601 nor JavaScript supports seconds in timezone offsets - // so this token always has the same output as `xx` - case "xxxx": - case "xx": - return formatTimezone(timezoneOffset); - // Hours, minutes and optional seconds with `:` delimiter - // Note: neither ISO-8601 nor JavaScript supports seconds in timezone offsets - // so this token always has the same output as `xxx` - case "xxxxx": - case "xxx": - // Hours and minutes with `:` delimiter - default: - return formatTimezone(timezoneOffset, ":"); - } - }, - // Timezone (GMT) - O: function(date, token, _localize) { - const timezoneOffset = date.getTimezoneOffset(); - switch (token) { - // Short - case "O": - case "OO": - case "OOO": - return "GMT" + formatTimezoneShort(timezoneOffset, ":"); - // Long - case "OOOO": - default: - return "GMT" + formatTimezone(timezoneOffset, ":"); - } - }, - // Timezone (specific non-location) - z: function(date, token, _localize) { - const timezoneOffset = date.getTimezoneOffset(); - switch (token) { - // Short - case "z": - case "zz": - case "zzz": - return "GMT" + formatTimezoneShort(timezoneOffset, ":"); - // Long - case "zzzz": - default: - return "GMT" + formatTimezone(timezoneOffset, ":"); - } - }, - // Seconds timestamp - t: function(date, token, _localize) { - const timestamp2 = Math.trunc(+date / 1e3); - return addLeadingZeros(timestamp2, token.length); - }, - // Milliseconds timestamp - T: function(date, token, _localize) { - return addLeadingZeros(+date, token.length); - } - }; - } -}); - -// node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/_lib/format/longFormatters.js -var dateLongFormatter, timeLongFormatter, dateTimeLongFormatter, longFormatters; -var init_longFormatters = __esm({ - "node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/_lib/format/longFormatters.js"() { - dateLongFormatter = (pattern, formatLong2) => { - switch (pattern) { - case "P": - return formatLong2.date({ width: "short" }); - case "PP": - return formatLong2.date({ width: "medium" }); - case "PPP": - return formatLong2.date({ width: "long" }); - case "PPPP": - default: - return formatLong2.date({ width: "full" }); - } - }; - timeLongFormatter = (pattern, formatLong2) => { - switch (pattern) { - case "p": - return formatLong2.time({ width: "short" }); - case "pp": - return formatLong2.time({ width: "medium" }); - case "ppp": - return formatLong2.time({ width: "long" }); - case "pppp": - default: - return formatLong2.time({ width: "full" }); - } - }; - dateTimeLongFormatter = (pattern, formatLong2) => { - const matchResult = pattern.match(/(P+)(p+)?/) || []; - const datePattern = matchResult[1]; - const timePattern = matchResult[2]; - if (!timePattern) { - return dateLongFormatter(pattern, formatLong2); - } - let dateTimeFormat; - switch (datePattern) { - case "P": - dateTimeFormat = formatLong2.dateTime({ width: "short" }); - break; - case "PP": - dateTimeFormat = formatLong2.dateTime({ width: "medium" }); - break; - case "PPP": - dateTimeFormat = formatLong2.dateTime({ width: "long" }); - break; - case "PPPP": - default: - dateTimeFormat = formatLong2.dateTime({ width: "full" }); - break; - } - return dateTimeFormat.replace("{{date}}", dateLongFormatter(datePattern, formatLong2)).replace("{{time}}", timeLongFormatter(timePattern, formatLong2)); - }; - longFormatters = { - p: timeLongFormatter, - P: dateTimeLongFormatter - }; - } -}); - -// node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/_lib/protectedTokens.js -function isProtectedDayOfYearToken(token) { - return dayOfYearTokenRE.test(token); -} -function isProtectedWeekYearToken(token) { - return weekYearTokenRE.test(token); -} -function warnOrThrowProtectedError(token, format2, input) { - const _message = message(token, format2, input); - console.warn(_message); - if (throwTokens.includes(token)) throw new RangeError(_message); -} -function message(token, format2, input) { - const subject = token[0] === "Y" ? "years" : "days of the month"; - return `Use \`${token.toLowerCase()}\` instead of \`${token}\` (in \`${format2}\`) for formatting ${subject} to the input \`${input}\`; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md`; -} -var dayOfYearTokenRE, weekYearTokenRE, throwTokens; -var init_protectedTokens = __esm({ - "node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/_lib/protectedTokens.js"() { - dayOfYearTokenRE = /^D+$/; - weekYearTokenRE = /^Y+$/; - throwTokens = ["D", "DD", "YY", "YYYY"]; - } -}); - -// node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/format.js -function format(date, formatStr, options) { - const defaultOptions2 = getDefaultOptions(); - const locale = options?.locale ?? defaultOptions2.locale ?? enUS; - const firstWeekContainsDate = options?.firstWeekContainsDate ?? options?.locale?.options?.firstWeekContainsDate ?? defaultOptions2.firstWeekContainsDate ?? defaultOptions2.locale?.options?.firstWeekContainsDate ?? 1; - const weekStartsOn = options?.weekStartsOn ?? options?.locale?.options?.weekStartsOn ?? defaultOptions2.weekStartsOn ?? defaultOptions2.locale?.options?.weekStartsOn ?? 0; - const originalDate = toDate(date, options?.in); - if (!isValid(originalDate)) { - throw new RangeError("Invalid time value"); - } - let parts = formatStr.match(longFormattingTokensRegExp).map((substring) => { - const firstCharacter = substring[0]; - if (firstCharacter === "p" || firstCharacter === "P") { - const longFormatter = longFormatters[firstCharacter]; - return longFormatter(substring, locale.formatLong); - } - return substring; - }).join("").match(formattingTokensRegExp).map((substring) => { - if (substring === "''") { - return { isToken: false, value: "'" }; - } - const firstCharacter = substring[0]; - if (firstCharacter === "'") { - return { isToken: false, value: cleanEscapedString(substring) }; - } - if (formatters[firstCharacter]) { - return { isToken: true, value: substring }; - } - if (firstCharacter.match(unescapedLatinCharacterRegExp)) { - throw new RangeError( - "Format string contains an unescaped latin alphabet character `" + firstCharacter + "`" - ); - } - return { isToken: false, value: substring }; - }); - if (locale.localize.preprocessor) { - parts = locale.localize.preprocessor(originalDate, parts); - } - const formatterOptions = { - firstWeekContainsDate, - weekStartsOn, - locale - }; - return parts.map((part) => { - if (!part.isToken) return part.value; - const token = part.value; - if (!options?.useAdditionalWeekYearTokens && isProtectedWeekYearToken(token) || !options?.useAdditionalDayOfYearTokens && isProtectedDayOfYearToken(token)) { - warnOrThrowProtectedError(token, formatStr, String(date)); - } - const formatter2 = formatters[token[0]]; - return formatter2(originalDate, token, locale.localize, formatterOptions); - }).join(""); -} -function cleanEscapedString(input) { - const matched = input.match(escapedStringRegExp); - if (!matched) { - return input; - } - return matched[1].replace(doubleQuoteRegExp, "'"); -} -var formattingTokensRegExp, longFormattingTokensRegExp, escapedStringRegExp, doubleQuoteRegExp, unescapedLatinCharacterRegExp, format_default; -var init_format = __esm({ - "node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/format.js"() { - init_defaultLocale(); - init_defaultOptions(); - init_formatters(); - init_longFormatters(); - init_protectedTokens(); - init_isValid(); - init_toDate(); - formattingTokensRegExp = /[yYQqMLwIdDecihHKkms]o|(\w)\1*|''|'(''|[^'])+('|$)|./g; - longFormattingTokensRegExp = /P+p+|P+|p+|''|'(''|[^'])+('|$)|./g; - escapedStringRegExp = /^'([^]*?)'?$/; - doubleQuoteRegExp = /''/g; - unescapedLatinCharacterRegExp = /[a-zA-Z]/; - format_default = format; - } -}); - -// node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/formatDistance.js -function formatDistance2(laterDate, earlierDate, options) { - const defaultOptions2 = getDefaultOptions(); - const locale = options?.locale ?? defaultOptions2.locale ?? enUS; - const minutesInAlmostTwoDays = 2520; - const comparison = compareAsc(laterDate, earlierDate); - if (isNaN(comparison)) throw new RangeError("Invalid time value"); - const localizeOptions = Object.assign({}, options, { - addSuffix: options?.addSuffix, - comparison - }); - const [laterDate_, earlierDate_] = normalizeDates( - options?.in, - ...comparison > 0 ? [earlierDate, laterDate] : [laterDate, earlierDate] - ); - const seconds = differenceInSeconds(earlierDate_, laterDate_); - const offsetInSeconds = (getTimezoneOffsetInMilliseconds(earlierDate_) - getTimezoneOffsetInMilliseconds(laterDate_)) / 1e3; - const minutes = Math.round((seconds - offsetInSeconds) / 60); - let months2; - if (minutes < 2) { - if (options?.includeSeconds) { - if (seconds < 5) { - return locale.formatDistance("lessThanXSeconds", 5, localizeOptions); - } else if (seconds < 10) { - return locale.formatDistance("lessThanXSeconds", 10, localizeOptions); - } else if (seconds < 20) { - return locale.formatDistance("lessThanXSeconds", 20, localizeOptions); - } else if (seconds < 40) { - return locale.formatDistance("halfAMinute", 0, localizeOptions); - } else if (seconds < 60) { - return locale.formatDistance("lessThanXMinutes", 1, localizeOptions); - } else { - return locale.formatDistance("xMinutes", 1, localizeOptions); - } - } else { - if (minutes === 0) { - return locale.formatDistance("lessThanXMinutes", 1, localizeOptions); - } else { - return locale.formatDistance("xMinutes", minutes, localizeOptions); - } - } - } else if (minutes < 45) { - return locale.formatDistance("xMinutes", minutes, localizeOptions); - } else if (minutes < 90) { - return locale.formatDistance("aboutXHours", 1, localizeOptions); - } else if (minutes < minutesInDay) { - const hours = Math.round(minutes / 60); - return locale.formatDistance("aboutXHours", hours, localizeOptions); - } else if (minutes < minutesInAlmostTwoDays) { - return locale.formatDistance("xDays", 1, localizeOptions); - } else if (minutes < minutesInMonth) { - const days2 = Math.round(minutes / minutesInDay); - return locale.formatDistance("xDays", days2, localizeOptions); - } else if (minutes < minutesInMonth * 2) { - months2 = Math.round(minutes / minutesInMonth); - return locale.formatDistance("aboutXMonths", months2, localizeOptions); - } - months2 = differenceInMonths(earlierDate_, laterDate_); - if (months2 < 12) { - const nearestMonth = Math.round(minutes / minutesInMonth); - return locale.formatDistance("xMonths", nearestMonth, localizeOptions); - } else { - const monthsSinceStartOfYear = months2 % 12; - const years = Math.trunc(months2 / 12); - if (monthsSinceStartOfYear < 3) { - return locale.formatDistance("aboutXYears", years, localizeOptions); - } else if (monthsSinceStartOfYear < 9) { - return locale.formatDistance("overXYears", years, localizeOptions); - } else { - return locale.formatDistance("almostXYears", years + 1, localizeOptions); - } - } -} -var formatDistance_default; -var init_formatDistance2 = __esm({ - "node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/formatDistance.js"() { - init_defaultLocale(); - init_defaultOptions(); - init_getTimezoneOffsetInMilliseconds(); - init_normalizeDates(); - init_compareAsc(); - init_constants(); - init_differenceInMonths(); - init_differenceInSeconds(); - formatDistance_default = formatDistance2; - } -}); - -// node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/formatDistanceStrict.js -function formatDistanceStrict(laterDate, earlierDate, options) { - const defaultOptions2 = getDefaultOptions(); - const locale = options?.locale ?? defaultOptions2.locale ?? enUS; - const comparison = compareAsc(laterDate, earlierDate); - if (isNaN(comparison)) { - throw new RangeError("Invalid time value"); - } - const localizeOptions = Object.assign({}, options, { - addSuffix: options?.addSuffix, - comparison - }); - const [laterDate_, earlierDate_] = normalizeDates( - options?.in, - ...comparison > 0 ? [earlierDate, laterDate] : [laterDate, earlierDate] - ); - const roundingMethod = getRoundingMethod(options?.roundingMethod ?? "round"); - const milliseconds2 = earlierDate_.getTime() - laterDate_.getTime(); - const minutes = milliseconds2 / millisecondsInMinute; - const timezoneOffset = getTimezoneOffsetInMilliseconds(earlierDate_) - getTimezoneOffsetInMilliseconds(laterDate_); - const dstNormalizedMinutes = (milliseconds2 - timezoneOffset) / millisecondsInMinute; - const defaultUnit = options?.unit; - let unit; - if (!defaultUnit) { - if (minutes < 1) { - unit = "second"; - } else if (minutes < 60) { - unit = "minute"; - } else if (minutes < minutesInDay) { - unit = "hour"; - } else if (dstNormalizedMinutes < minutesInMonth) { - unit = "day"; - } else if (dstNormalizedMinutes < minutesInYear) { - unit = "month"; - } else { - unit = "year"; - } - } else { - unit = defaultUnit; - } - if (unit === "second") { - const seconds = roundingMethod(milliseconds2 / 1e3); - return locale.formatDistance("xSeconds", seconds, localizeOptions); - } else if (unit === "minute") { - const roundedMinutes = roundingMethod(minutes); - return locale.formatDistance("xMinutes", roundedMinutes, localizeOptions); - } else if (unit === "hour") { - const hours = roundingMethod(minutes / 60); - return locale.formatDistance("xHours", hours, localizeOptions); - } else if (unit === "day") { - const days2 = roundingMethod(dstNormalizedMinutes / minutesInDay); - return locale.formatDistance("xDays", days2, localizeOptions); - } else if (unit === "month") { - const months2 = roundingMethod(dstNormalizedMinutes / minutesInMonth); - return months2 === 12 && defaultUnit !== "month" ? locale.formatDistance("xYears", 1, localizeOptions) : locale.formatDistance("xMonths", months2, localizeOptions); - } else { - const years = roundingMethod(dstNormalizedMinutes / minutesInYear); - return locale.formatDistance("xYears", years, localizeOptions); - } -} -var formatDistanceStrict_default; -var init_formatDistanceStrict = __esm({ - "node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/formatDistanceStrict.js"() { - init_defaultLocale(); - init_defaultOptions(); - init_getRoundingMethod(); - init_getTimezoneOffsetInMilliseconds(); - init_normalizeDates(); - init_compareAsc(); - init_constants(); - formatDistanceStrict_default = formatDistanceStrict; - } -}); - -// node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/formatDistanceToNow.js -function formatDistanceToNow(date, options) { - return formatDistance2(date, constructNow(date), options); -} -var formatDistanceToNow_default; -var init_formatDistanceToNow = __esm({ - "node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/formatDistanceToNow.js"() { - init_constructNow(); - init_formatDistance2(); - formatDistanceToNow_default = formatDistanceToNow; - } -}); - -// node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/formatDistanceToNowStrict.js -function formatDistanceToNowStrict(date, options) { - return formatDistanceStrict(date, constructNow(date), options); -} -var formatDistanceToNowStrict_default; -var init_formatDistanceToNowStrict = __esm({ - "node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/formatDistanceToNowStrict.js"() { - init_constructNow(); - init_formatDistanceStrict(); - formatDistanceToNowStrict_default = formatDistanceToNowStrict; - } -}); - -// node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/formatDuration.js -function formatDuration(duration, options) { - const defaultOptions2 = getDefaultOptions(); - const locale = options?.locale ?? defaultOptions2.locale ?? enUS; - const format2 = options?.format ?? defaultFormat; - const zero = options?.zero ?? false; - const delimiter = options?.delimiter ?? " "; - if (!locale.formatDistance) { - return ""; - } - const result = format2.reduce((acc, unit) => { - const token = `x${unit.replace(/(^.)/, (m6) => m6.toUpperCase())}`; - const value2 = duration[unit]; - if (value2 !== void 0 && (zero || duration[unit])) { - return acc.concat(locale.formatDistance(token, value2)); - } - return acc; - }, []).join(delimiter); - return result; -} -var defaultFormat, formatDuration_default; -var init_formatDuration = __esm({ - "node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/formatDuration.js"() { - init_defaultLocale(); - init_defaultOptions(); - defaultFormat = [ - "years", - "months", - "weeks", - "days", - "hours", - "minutes", - "seconds" - ]; - formatDuration_default = formatDuration; - } -}); - -// node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/formatISO.js -function formatISO(date, options) { - const date_ = toDate(date, options?.in); - if (isNaN(+date_)) { - throw new RangeError("Invalid time value"); - } - const format2 = options?.format ?? "extended"; - const representation = options?.representation ?? "complete"; - let result = ""; - let tzOffset = ""; - const dateDelimiter = format2 === "extended" ? "-" : ""; - const timeDelimiter = format2 === "extended" ? ":" : ""; - if (representation !== "time") { - const day = addLeadingZeros(date_.getDate(), 2); - const month = addLeadingZeros(date_.getMonth() + 1, 2); - const year = addLeadingZeros(date_.getFullYear(), 4); - result = `${year}${dateDelimiter}${month}${dateDelimiter}${day}`; - } - if (representation !== "date") { - const offset = date_.getTimezoneOffset(); - if (offset !== 0) { - const absoluteOffset = Math.abs(offset); - const hourOffset = addLeadingZeros(Math.trunc(absoluteOffset / 60), 2); - const minuteOffset = addLeadingZeros(absoluteOffset % 60, 2); - const sign = offset < 0 ? "+" : "-"; - tzOffset = `${sign}${hourOffset}:${minuteOffset}`; - } else { - tzOffset = "Z"; - } - const hour = addLeadingZeros(date_.getHours(), 2); - const minute = addLeadingZeros(date_.getMinutes(), 2); - const second = addLeadingZeros(date_.getSeconds(), 2); - const separator = result === "" ? "" : "T"; - const time = [hour, minute, second].join(timeDelimiter); - result = `${result}${separator}${time}${tzOffset}`; - } - return result; -} -var formatISO_default; -var init_formatISO = __esm({ - "node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/formatISO.js"() { - init_addLeadingZeros(); - init_toDate(); - formatISO_default = formatISO; - } -}); - -// node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/formatISO9075.js -function formatISO9075(date, options) { - const date_ = toDate(date, options?.in); - if (!isValid(date_)) { - throw new RangeError("Invalid time value"); - } - const format2 = options?.format ?? "extended"; - const representation = options?.representation ?? "complete"; - let result = ""; - const dateDelimiter = format2 === "extended" ? "-" : ""; - const timeDelimiter = format2 === "extended" ? ":" : ""; - if (representation !== "time") { - const day = addLeadingZeros(date_.getDate(), 2); - const month = addLeadingZeros(date_.getMonth() + 1, 2); - const year = addLeadingZeros(date_.getFullYear(), 4); - result = `${year}${dateDelimiter}${month}${dateDelimiter}${day}`; - } - if (representation !== "date") { - const hour = addLeadingZeros(date_.getHours(), 2); - const minute = addLeadingZeros(date_.getMinutes(), 2); - const second = addLeadingZeros(date_.getSeconds(), 2); - const separator = result === "" ? "" : " "; - result = `${result}${separator}${hour}${timeDelimiter}${minute}${timeDelimiter}${second}`; - } - return result; -} -var formatISO9075_default; -var init_formatISO9075 = __esm({ - "node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/formatISO9075.js"() { - init_addLeadingZeros(); - init_isValid(); - init_toDate(); - formatISO9075_default = formatISO9075; - } -}); - -// node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/formatISODuration.js -function formatISODuration(duration) { - const { - years = 0, - months: months2 = 0, - days: days2 = 0, - hours = 0, - minutes = 0, - seconds = 0 - } = duration; - return `P${years}Y${months2}M${days2}DT${hours}H${minutes}M${seconds}S`; -} -var formatISODuration_default; -var init_formatISODuration = __esm({ - "node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/formatISODuration.js"() { - formatISODuration_default = formatISODuration; - } -}); - -// node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/formatRFC3339.js -function formatRFC3339(date, options) { - const date_ = toDate(date, options?.in); - if (!isValid(date_)) { - throw new RangeError("Invalid time value"); - } - const fractionDigits = options?.fractionDigits ?? 0; - const day = addLeadingZeros(date_.getDate(), 2); - const month = addLeadingZeros(date_.getMonth() + 1, 2); - const year = date_.getFullYear(); - const hour = addLeadingZeros(date_.getHours(), 2); - const minute = addLeadingZeros(date_.getMinutes(), 2); - const second = addLeadingZeros(date_.getSeconds(), 2); - let fractionalSecond = ""; - if (fractionDigits > 0) { - const milliseconds2 = date_.getMilliseconds(); - const fractionalSeconds = Math.trunc( - milliseconds2 * Math.pow(10, fractionDigits - 3) - ); - fractionalSecond = "." + addLeadingZeros(fractionalSeconds, fractionDigits); - } - let offset = ""; - const tzOffset = date_.getTimezoneOffset(); - if (tzOffset !== 0) { - const absoluteOffset = Math.abs(tzOffset); - const hourOffset = addLeadingZeros(Math.trunc(absoluteOffset / 60), 2); - const minuteOffset = addLeadingZeros(absoluteOffset % 60, 2); - const sign = tzOffset < 0 ? "+" : "-"; - offset = `${sign}${hourOffset}:${minuteOffset}`; - } else { - offset = "Z"; - } - return `${year}-${month}-${day}T${hour}:${minute}:${second}${fractionalSecond}${offset}`; -} -var formatRFC3339_default; -var init_formatRFC3339 = __esm({ - "node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/formatRFC3339.js"() { - init_addLeadingZeros(); - init_isValid(); - init_toDate(); - formatRFC3339_default = formatRFC3339; - } -}); - -// node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/formatRFC7231.js -function formatRFC7231(date) { - const _date = toDate(date); - if (!isValid(_date)) { - throw new RangeError("Invalid time value"); - } - const dayName = days[_date.getUTCDay()]; - const dayOfMonth = addLeadingZeros(_date.getUTCDate(), 2); - const monthName = months[_date.getUTCMonth()]; - const year = _date.getUTCFullYear(); - const hour = addLeadingZeros(_date.getUTCHours(), 2); - const minute = addLeadingZeros(_date.getUTCMinutes(), 2); - const second = addLeadingZeros(_date.getUTCSeconds(), 2); - return `${dayName}, ${dayOfMonth} ${monthName} ${year} ${hour}:${minute}:${second} GMT`; -} -var days, months, formatRFC7231_default; -var init_formatRFC7231 = __esm({ - "node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/formatRFC7231.js"() { - init_addLeadingZeros(); - init_isValid(); - init_toDate(); - days = ["Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"]; - months = [ - "Jan", - "Feb", - "Mar", - "Apr", - "May", - "Jun", - "Jul", - "Aug", - "Sep", - "Oct", - "Nov", - "Dec" - ]; - formatRFC7231_default = formatRFC7231; - } -}); - -// node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/formatRelative.js -function formatRelative2(date, baseDate, options) { - const [date_, baseDate_] = normalizeDates(options?.in, date, baseDate); - const defaultOptions2 = getDefaultOptions(); - const locale = options?.locale ?? defaultOptions2.locale ?? enUS; - const weekStartsOn = options?.weekStartsOn ?? options?.locale?.options?.weekStartsOn ?? defaultOptions2.weekStartsOn ?? defaultOptions2.locale?.options?.weekStartsOn ?? 0; - const diff = differenceInCalendarDays(date_, baseDate_); - if (isNaN(diff)) { - throw new RangeError("Invalid time value"); - } - let token; - if (diff < -6) { - token = "other"; - } else if (diff < -1) { - token = "lastWeek"; - } else if (diff < 0) { - token = "yesterday"; - } else if (diff < 1) { - token = "today"; - } else if (diff < 2) { - token = "tomorrow"; - } else if (diff < 7) { - token = "nextWeek"; - } else { - token = "other"; - } - const formatStr = locale.formatRelative(token, date_, baseDate_, { - locale, - weekStartsOn - }); - return format(date_, formatStr, { locale, weekStartsOn }); -} -var formatRelative_default; -var init_formatRelative2 = __esm({ - "node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/formatRelative.js"() { - init_defaultLocale(); - init_defaultOptions(); - init_normalizeDates(); - init_differenceInCalendarDays(); - init_format(); - formatRelative_default = formatRelative2; - } -}); - -// node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/fromUnixTime.js -function fromUnixTime(unixTime, options) { - return toDate(unixTime * 1e3, options?.in); -} -var fromUnixTime_default; -var init_fromUnixTime = __esm({ - "node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/fromUnixTime.js"() { - init_toDate(); - fromUnixTime_default = fromUnixTime; - } -}); - -// node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/getDate.js -function getDate(date, options) { - return toDate(date, options?.in).getDate(); -} -var getDate_default; -var init_getDate = __esm({ - "node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/getDate.js"() { - init_toDate(); - getDate_default = getDate; - } -}); - -// node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/getDay.js -function getDay(date, options) { - return toDate(date, options?.in).getDay(); -} -var getDay_default; -var init_getDay = __esm({ - "node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/getDay.js"() { - init_toDate(); - getDay_default = getDay; - } -}); - -// node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/getDaysInMonth.js -function getDaysInMonth(date, options) { - const _date = toDate(date, options?.in); - const year = _date.getFullYear(); - const monthIndex = _date.getMonth(); - const lastDayOfMonth2 = constructFrom(_date, 0); - lastDayOfMonth2.setFullYear(year, monthIndex + 1, 0); - lastDayOfMonth2.setHours(0, 0, 0, 0); - return lastDayOfMonth2.getDate(); -} -var getDaysInMonth_default; -var init_getDaysInMonth = __esm({ - "node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/getDaysInMonth.js"() { - init_constructFrom(); - init_toDate(); - getDaysInMonth_default = getDaysInMonth; - } -}); - -// node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/isLeapYear.js -function isLeapYear(date, options) { - const _date = toDate(date, options?.in); - const year = _date.getFullYear(); - return year % 400 === 0 || year % 4 === 0 && year % 100 !== 0; -} -var isLeapYear_default; -var init_isLeapYear = __esm({ - "node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/isLeapYear.js"() { - init_toDate(); - isLeapYear_default = isLeapYear; - } -}); - -// node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/getDaysInYear.js -function getDaysInYear(date, options) { - const _date = toDate(date, options?.in); - if (Number.isNaN(+_date)) return NaN; - return isLeapYear(_date) ? 366 : 365; -} -var getDaysInYear_default; -var init_getDaysInYear = __esm({ - "node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/getDaysInYear.js"() { - init_isLeapYear(); - init_toDate(); - getDaysInYear_default = getDaysInYear; - } -}); - -// node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/getDecade.js -function getDecade(date, options) { - const _date = toDate(date, options?.in); - const year = _date.getFullYear(); - const decade = Math.floor(year / 10) * 10; - return decade; -} -var getDecade_default; -var init_getDecade = __esm({ - "node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/getDecade.js"() { - init_toDate(); - getDecade_default = getDecade; - } -}); - -// node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/getDefaultOptions.js -function getDefaultOptions2() { - return Object.assign({}, getDefaultOptions()); -} -var getDefaultOptions_default; -var init_getDefaultOptions = __esm({ - "node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/getDefaultOptions.js"() { - init_defaultOptions(); - getDefaultOptions_default = getDefaultOptions2; - } -}); - -// node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/getHours.js -function getHours(date, options) { - return toDate(date, options?.in).getHours(); -} -var getHours_default; -var init_getHours = __esm({ - "node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/getHours.js"() { - init_toDate(); - getHours_default = getHours; - } -}); - -// node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/getISODay.js -function getISODay(date, options) { - const day = toDate(date, options?.in).getDay(); - return day === 0 ? 7 : day; -} -var getISODay_default; -var init_getISODay = __esm({ - "node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/getISODay.js"() { - init_toDate(); - getISODay_default = getISODay; - } -}); - -// node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/getISOWeeksInYear.js -function getISOWeeksInYear(date, options) { - const thisYear = startOfISOWeekYear(date, options); - const nextYear = startOfISOWeekYear(addWeeks(thisYear, 60)); - const diff = +nextYear - +thisYear; - return Math.round(diff / millisecondsInWeek); -} -var getISOWeeksInYear_default; -var init_getISOWeeksInYear = __esm({ - "node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/getISOWeeksInYear.js"() { - init_addWeeks(); - init_constants(); - init_startOfISOWeekYear(); - getISOWeeksInYear_default = getISOWeeksInYear; - } -}); - -// node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/getMilliseconds.js -function getMilliseconds(date) { - return toDate(date).getMilliseconds(); -} -var getMilliseconds_default; -var init_getMilliseconds = __esm({ - "node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/getMilliseconds.js"() { - init_toDate(); - getMilliseconds_default = getMilliseconds; - } -}); - -// node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/getMinutes.js -function getMinutes(date, options) { - return toDate(date, options?.in).getMinutes(); -} -var getMinutes_default; -var init_getMinutes = __esm({ - "node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/getMinutes.js"() { - init_toDate(); - getMinutes_default = getMinutes; - } -}); - -// node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/getMonth.js -function getMonth(date, options) { - return toDate(date, options?.in).getMonth(); -} -var getMonth_default; -var init_getMonth = __esm({ - "node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/getMonth.js"() { - init_toDate(); - getMonth_default = getMonth; - } -}); - -// node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/getOverlappingDaysInIntervals.js -function getOverlappingDaysInIntervals(intervalLeft, intervalRight) { - const [leftStart, leftEnd] = [ - +toDate(intervalLeft.start), - +toDate(intervalLeft.end) - ].sort((a5, b5) => a5 - b5); - const [rightStart, rightEnd] = [ - +toDate(intervalRight.start), - +toDate(intervalRight.end) - ].sort((a5, b5) => a5 - b5); - const isOverlapping = leftStart < rightEnd && rightStart < leftEnd; - if (!isOverlapping) return 0; - const overlapLeft = rightStart < leftStart ? leftStart : rightStart; - const left = overlapLeft - getTimezoneOffsetInMilliseconds(overlapLeft); - const overlapRight = rightEnd > leftEnd ? leftEnd : rightEnd; - const right = overlapRight - getTimezoneOffsetInMilliseconds(overlapRight); - return Math.ceil((right - left) / millisecondsInDay); -} -var getOverlappingDaysInIntervals_default; -var init_getOverlappingDaysInIntervals = __esm({ - "node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/getOverlappingDaysInIntervals.js"() { - init_getTimezoneOffsetInMilliseconds(); - init_constants(); - init_toDate(); - getOverlappingDaysInIntervals_default = getOverlappingDaysInIntervals; - } -}); - -// node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/getSeconds.js -function getSeconds(date) { - return toDate(date).getSeconds(); -} -var getSeconds_default; -var init_getSeconds = __esm({ - "node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/getSeconds.js"() { - init_toDate(); - getSeconds_default = getSeconds; - } -}); - -// node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/getTime.js -function getTime(date) { - return +toDate(date); -} -var getTime_default; -var init_getTime = __esm({ - "node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/getTime.js"() { - init_toDate(); - getTime_default = getTime; - } -}); - -// node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/getUnixTime.js -function getUnixTime(date) { - return Math.trunc(+toDate(date) / 1e3); -} -var getUnixTime_default; -var init_getUnixTime = __esm({ - "node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/getUnixTime.js"() { - init_toDate(); - getUnixTime_default = getUnixTime; - } -}); - -// node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/getWeekOfMonth.js -function getWeekOfMonth(date, options) { - const defaultOptions2 = getDefaultOptions(); - const weekStartsOn = options?.weekStartsOn ?? options?.locale?.options?.weekStartsOn ?? defaultOptions2.weekStartsOn ?? defaultOptions2.locale?.options?.weekStartsOn ?? 0; - const currentDayOfMonth = getDate(toDate(date, options?.in)); - if (isNaN(currentDayOfMonth)) return NaN; - const startWeekDay = getDay(startOfMonth(date, options)); - let lastDayOfFirstWeek = weekStartsOn - startWeekDay; - if (lastDayOfFirstWeek <= 0) lastDayOfFirstWeek += 7; - const remainingDaysAfterFirstWeek = currentDayOfMonth - lastDayOfFirstWeek; - return Math.ceil(remainingDaysAfterFirstWeek / 7) + 1; -} -var getWeekOfMonth_default; -var init_getWeekOfMonth = __esm({ - "node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/getWeekOfMonth.js"() { - init_defaultOptions(); - init_getDate(); - init_getDay(); - init_startOfMonth(); - init_toDate(); - getWeekOfMonth_default = getWeekOfMonth; - } -}); - -// node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/lastDayOfMonth.js -function lastDayOfMonth(date, options) { - const _date = toDate(date, options?.in); - const month = _date.getMonth(); - _date.setFullYear(_date.getFullYear(), month + 1, 0); - _date.setHours(0, 0, 0, 0); - return toDate(_date, options?.in); -} -var lastDayOfMonth_default; -var init_lastDayOfMonth = __esm({ - "node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/lastDayOfMonth.js"() { - init_toDate(); - lastDayOfMonth_default = lastDayOfMonth; - } -}); - -// node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/getWeeksInMonth.js -function getWeeksInMonth(date, options) { - const contextDate = toDate(date, options?.in); - return differenceInCalendarWeeks( - lastDayOfMonth(contextDate, options), - startOfMonth(contextDate, options), - options - ) + 1; -} -var getWeeksInMonth_default; -var init_getWeeksInMonth = __esm({ - "node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/getWeeksInMonth.js"() { - init_differenceInCalendarWeeks(); - init_lastDayOfMonth(); - init_startOfMonth(); - init_toDate(); - getWeeksInMonth_default = getWeeksInMonth; - } -}); - -// node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/getYear.js -function getYear(date, options) { - return toDate(date, options?.in).getFullYear(); -} -var getYear_default; -var init_getYear = __esm({ - "node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/getYear.js"() { - init_toDate(); - getYear_default = getYear; - } -}); - -// node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/hoursToMilliseconds.js -function hoursToMilliseconds(hours) { - return Math.trunc(hours * millisecondsInHour); -} -var hoursToMilliseconds_default; -var init_hoursToMilliseconds = __esm({ - "node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/hoursToMilliseconds.js"() { - init_constants(); - hoursToMilliseconds_default = hoursToMilliseconds; - } -}); - -// node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/hoursToMinutes.js -function hoursToMinutes(hours) { - return Math.trunc(hours * minutesInHour); -} -var hoursToMinutes_default; -var init_hoursToMinutes = __esm({ - "node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/hoursToMinutes.js"() { - init_constants(); - hoursToMinutes_default = hoursToMinutes; - } -}); - -// node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/hoursToSeconds.js -function hoursToSeconds(hours) { - return Math.trunc(hours * secondsInHour); -} -var hoursToSeconds_default; -var init_hoursToSeconds = __esm({ - "node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/hoursToSeconds.js"() { - init_constants(); - hoursToSeconds_default = hoursToSeconds; - } -}); - -// node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/interval.js -function interval2(start, end3, options) { - const [_start, _end] = normalizeDates(options?.in, start, end3); - if (isNaN(+_start)) throw new TypeError("Start date is invalid"); - if (isNaN(+_end)) throw new TypeError("End date is invalid"); - if (options?.assertPositive && +_start > +_end) - throw new TypeError("End date must be after start date"); - return { start: _start, end: _end }; -} -var interval_default; -var init_interval2 = __esm({ - "node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/interval.js"() { - init_normalizeDates(); - interval_default = interval2; - } -}); - -// node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/intervalToDuration.js -function intervalToDuration(interval3, options) { - const { start, end: end3 } = normalizeInterval(options?.in, interval3); - const duration = {}; - const years = differenceInYears(end3, start); - if (years) duration.years = years; - const remainingMonths = add(start, { years: duration.years }); - const months2 = differenceInMonths(end3, remainingMonths); - if (months2) duration.months = months2; - const remainingDays = add(remainingMonths, { months: duration.months }); - const days2 = differenceInDays(end3, remainingDays); - if (days2) duration.days = days2; - const remainingHours = add(remainingDays, { days: duration.days }); - const hours = differenceInHours(end3, remainingHours); - if (hours) duration.hours = hours; - const remainingMinutes = add(remainingHours, { hours: duration.hours }); - const minutes = differenceInMinutes(end3, remainingMinutes); - if (minutes) duration.minutes = minutes; - const remainingSeconds = add(remainingMinutes, { minutes: duration.minutes }); - const seconds = differenceInSeconds(end3, remainingSeconds); - if (seconds) duration.seconds = seconds; - return duration; -} -var intervalToDuration_default; -var init_intervalToDuration = __esm({ - "node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/intervalToDuration.js"() { - init_normalizeInterval(); - init_add(); - init_differenceInDays(); - init_differenceInHours(); - init_differenceInMinutes(); - init_differenceInMonths(); - init_differenceInSeconds(); - init_differenceInYears(); - intervalToDuration_default = intervalToDuration; - } -}); - -// node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/intlFormat.js -function intlFormat(date, formatOrLocale, localeOptions) { - let formatOptions; - if (isFormatOptions(formatOrLocale)) { - formatOptions = formatOrLocale; - } else { - localeOptions = formatOrLocale; - } - return new Intl.DateTimeFormat(localeOptions?.locale, formatOptions).format( - toDate(date) - ); -} -function isFormatOptions(opts) { - return opts !== void 0 && !("locale" in opts); -} -var intlFormat_default; -var init_intlFormat = __esm({ - "node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/intlFormat.js"() { - init_toDate(); - intlFormat_default = intlFormat; - } -}); - -// node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/intlFormatDistance.js -function intlFormatDistance(laterDate, earlierDate, options) { - let value2 = 0; - let unit; - const [laterDate_, earlierDate_] = normalizeDates( - options?.in, - laterDate, - earlierDate - ); - if (!options?.unit) { - const diffInSeconds = differenceInSeconds(laterDate_, earlierDate_); - if (Math.abs(diffInSeconds) < secondsInMinute) { - value2 = differenceInSeconds(laterDate_, earlierDate_); - unit = "second"; - } else if (Math.abs(diffInSeconds) < secondsInHour) { - value2 = differenceInMinutes(laterDate_, earlierDate_); - unit = "minute"; - } else if (Math.abs(diffInSeconds) < secondsInDay && Math.abs(differenceInCalendarDays(laterDate_, earlierDate_)) < 1) { - value2 = differenceInHours(laterDate_, earlierDate_); - unit = "hour"; - } else if (Math.abs(diffInSeconds) < secondsInWeek && (value2 = differenceInCalendarDays(laterDate_, earlierDate_)) && Math.abs(value2) < 7) { - unit = "day"; - } else if (Math.abs(diffInSeconds) < secondsInMonth) { - value2 = differenceInCalendarWeeks(laterDate_, earlierDate_); - unit = "week"; - } else if (Math.abs(diffInSeconds) < secondsInQuarter) { - value2 = differenceInCalendarMonths(laterDate_, earlierDate_); - unit = "month"; - } else if (Math.abs(diffInSeconds) < secondsInYear) { - if (differenceInCalendarQuarters(laterDate_, earlierDate_) < 4) { - value2 = differenceInCalendarQuarters(laterDate_, earlierDate_); - unit = "quarter"; - } else { - value2 = differenceInCalendarYears(laterDate_, earlierDate_); - unit = "year"; - } - } else { - value2 = differenceInCalendarYears(laterDate_, earlierDate_); - unit = "year"; - } - } else { - unit = options?.unit; - if (unit === "second") { - value2 = differenceInSeconds(laterDate_, earlierDate_); - } else if (unit === "minute") { - value2 = differenceInMinutes(laterDate_, earlierDate_); - } else if (unit === "hour") { - value2 = differenceInHours(laterDate_, earlierDate_); - } else if (unit === "day") { - value2 = differenceInCalendarDays(laterDate_, earlierDate_); - } else if (unit === "week") { - value2 = differenceInCalendarWeeks(laterDate_, earlierDate_); - } else if (unit === "month") { - value2 = differenceInCalendarMonths(laterDate_, earlierDate_); - } else if (unit === "quarter") { - value2 = differenceInCalendarQuarters(laterDate_, earlierDate_); - } else if (unit === "year") { - value2 = differenceInCalendarYears(laterDate_, earlierDate_); - } - } - const rtf = new Intl.RelativeTimeFormat(options?.locale, { - numeric: "auto", - ...options - }); - return rtf.format(value2, unit); -} -var intlFormatDistance_default; -var init_intlFormatDistance = __esm({ - "node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/intlFormatDistance.js"() { - init_normalizeDates(); - init_constants(); - init_differenceInCalendarDays(); - init_differenceInCalendarMonths(); - init_differenceInCalendarQuarters(); - init_differenceInCalendarWeeks(); - init_differenceInCalendarYears(); - init_differenceInHours(); - init_differenceInMinutes(); - init_differenceInSeconds(); - intlFormatDistance_default = intlFormatDistance; - } -}); - -// node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/isAfter.js -function isAfter(date, dateToCompare) { - return +toDate(date) > +toDate(dateToCompare); -} -var isAfter_default; -var init_isAfter = __esm({ - "node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/isAfter.js"() { - init_toDate(); - isAfter_default = isAfter; - } -}); - -// node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/isBefore.js -function isBefore(date, dateToCompare) { - return +toDate(date) < +toDate(dateToCompare); -} -var isBefore_default; -var init_isBefore = __esm({ - "node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/isBefore.js"() { - init_toDate(); - isBefore_default = isBefore; - } -}); - -// node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/isEqual.js -function isEqual(leftDate, rightDate) { - return +toDate(leftDate) === +toDate(rightDate); -} -var isEqual_default; -var init_isEqual = __esm({ - "node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/isEqual.js"() { - init_toDate(); - isEqual_default = isEqual; - } -}); - -// node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/isExists.js -function isExists(year, month, day) { - const date = new Date(year, month, day); - return date.getFullYear() === year && date.getMonth() === month && date.getDate() === day; -} -var isExists_default; -var init_isExists = __esm({ - "node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/isExists.js"() { - isExists_default = isExists; - } -}); - -// node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/isFirstDayOfMonth.js -function isFirstDayOfMonth(date, options) { - return toDate(date, options?.in).getDate() === 1; -} -var isFirstDayOfMonth_default; -var init_isFirstDayOfMonth = __esm({ - "node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/isFirstDayOfMonth.js"() { - init_toDate(); - isFirstDayOfMonth_default = isFirstDayOfMonth; - } -}); - -// node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/isFriday.js -function isFriday(date, options) { - return toDate(date, options?.in).getDay() === 5; -} -var isFriday_default; -var init_isFriday = __esm({ - "node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/isFriday.js"() { - init_toDate(); - isFriday_default = isFriday; - } -}); - -// node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/isFuture.js -function isFuture(date) { - return +toDate(date) > Date.now(); -} -var isFuture_default; -var init_isFuture = __esm({ - "node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/isFuture.js"() { - init_toDate(); - isFuture_default = isFuture; - } -}); - -// node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/transpose.js -function transpose(date, constructor) { - const date_ = isConstructor(constructor) ? new constructor(0) : constructFrom(constructor, 0); - date_.setFullYear(date.getFullYear(), date.getMonth(), date.getDate()); - date_.setHours( - date.getHours(), - date.getMinutes(), - date.getSeconds(), - date.getMilliseconds() - ); - return date_; -} -function isConstructor(constructor) { - return typeof constructor === "function" && constructor.prototype?.constructor === constructor; -} -var transpose_default; -var init_transpose = __esm({ - "node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/transpose.js"() { - init_constructFrom(); - transpose_default = transpose; - } -}); - -// node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/parse/_lib/Setter.js -var TIMEZONE_UNIT_PRIORITY, Setter, ValueSetter, DateTimezoneSetter; -var init_Setter = __esm({ - "node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/parse/_lib/Setter.js"() { - init_constructFrom(); - init_transpose(); - TIMEZONE_UNIT_PRIORITY = 10; - Setter = class { - subPriority = 0; - validate(_utcDate, _options) { - return true; - } - }; - ValueSetter = class extends Setter { - constructor(value2, validateValue, setValue, priority, subPriority) { - super(); - this.value = value2; - this.validateValue = validateValue; - this.setValue = setValue; - this.priority = priority; - if (subPriority) { - this.subPriority = subPriority; - } - } - validate(date, options) { - return this.validateValue(date, this.value, options); - } - set(date, flags, options) { - return this.setValue(date, flags, this.value, options); - } - }; - DateTimezoneSetter = class extends Setter { - priority = TIMEZONE_UNIT_PRIORITY; - subPriority = -1; - constructor(context2, reference) { - super(); - this.context = context2 || ((date) => constructFrom(reference, date)); - } - set(date, flags) { - if (flags.timestampIsSet) return date; - return constructFrom(date, transpose(date, this.context)); - } - }; - } -}); - -// node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/parse/_lib/Parser.js -var Parser; -var init_Parser = __esm({ - "node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/parse/_lib/Parser.js"() { - init_Setter(); - Parser = class { - run(dateString, token, match2, options) { - const result = this.parse(dateString, token, match2, options); - if (!result) { - return null; - } - return { - setter: new ValueSetter( - result.value, - this.validate, - this.set, - this.priority, - this.subPriority - ), - rest: result.rest - }; - } - validate(_utcDate, _value, _options) { - return true; - } - }; - } -}); - -// node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/parse/_lib/parsers/EraParser.js -var EraParser; -var init_EraParser = __esm({ - "node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/parse/_lib/parsers/EraParser.js"() { - init_Parser(); - EraParser = class extends Parser { - priority = 140; - parse(dateString, token, match2) { - switch (token) { - // AD, BC - case "G": - case "GG": - case "GGG": - return match2.era(dateString, { width: "abbreviated" }) || match2.era(dateString, { width: "narrow" }); - // A, B - case "GGGGG": - return match2.era(dateString, { width: "narrow" }); - // Anno Domini, Before Christ - case "GGGG": - default: - return match2.era(dateString, { width: "wide" }) || match2.era(dateString, { width: "abbreviated" }) || match2.era(dateString, { width: "narrow" }); - } - } - set(date, flags, value2) { - flags.era = value2; - date.setFullYear(value2, 0, 1); - date.setHours(0, 0, 0, 0); - return date; - } - incompatibleTokens = ["R", "u", "t", "T"]; - }; - } -}); - -// node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/parse/_lib/constants.js -var numericPatterns, timezonePatterns; -var init_constants2 = __esm({ - "node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/parse/_lib/constants.js"() { - numericPatterns = { - month: /^(1[0-2]|0?\d)/, - // 0 to 12 - date: /^(3[0-1]|[0-2]?\d)/, - // 0 to 31 - dayOfYear: /^(36[0-6]|3[0-5]\d|[0-2]?\d?\d)/, - // 0 to 366 - week: /^(5[0-3]|[0-4]?\d)/, - // 0 to 53 - hour23h: /^(2[0-3]|[0-1]?\d)/, - // 0 to 23 - hour24h: /^(2[0-4]|[0-1]?\d)/, - // 0 to 24 - hour11h: /^(1[0-1]|0?\d)/, - // 0 to 11 - hour12h: /^(1[0-2]|0?\d)/, - // 0 to 12 - minute: /^[0-5]?\d/, - // 0 to 59 - second: /^[0-5]?\d/, - // 0 to 59 - singleDigit: /^\d/, - // 0 to 9 - twoDigits: /^\d{1,2}/, - // 0 to 99 - threeDigits: /^\d{1,3}/, - // 0 to 999 - fourDigits: /^\d{1,4}/, - // 0 to 9999 - anyDigitsSigned: /^-?\d+/, - singleDigitSigned: /^-?\d/, - // 0 to 9, -0 to -9 - twoDigitsSigned: /^-?\d{1,2}/, - // 0 to 99, -0 to -99 - threeDigitsSigned: /^-?\d{1,3}/, - // 0 to 999, -0 to -999 - fourDigitsSigned: /^-?\d{1,4}/ - // 0 to 9999, -0 to -9999 - }; - timezonePatterns = { - basicOptionalMinutes: /^([+-])(\d{2})(\d{2})?|Z/, - basic: /^([+-])(\d{2})(\d{2})|Z/, - basicOptionalSeconds: /^([+-])(\d{2})(\d{2})((\d{2}))?|Z/, - extended: /^([+-])(\d{2}):(\d{2})|Z/, - extendedOptionalSeconds: /^([+-])(\d{2}):(\d{2})(:(\d{2}))?|Z/ - }; - } -}); - -// node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/parse/_lib/utils.js -function mapValue(parseFnResult, mapFn) { - if (!parseFnResult) { - return parseFnResult; - } - return { - value: mapFn(parseFnResult.value), - rest: parseFnResult.rest - }; -} -function parseNumericPattern(pattern, dateString) { - const matchResult = dateString.match(pattern); - if (!matchResult) { - return null; - } - return { - value: parseInt(matchResult[0], 10), - rest: dateString.slice(matchResult[0].length) - }; -} -function parseTimezonePattern(pattern, dateString) { - const matchResult = dateString.match(pattern); - if (!matchResult) { - return null; - } - if (matchResult[0] === "Z") { - return { - value: 0, - rest: dateString.slice(1) - }; - } - const sign = matchResult[1] === "+" ? 1 : -1; - const hours = matchResult[2] ? parseInt(matchResult[2], 10) : 0; - const minutes = matchResult[3] ? parseInt(matchResult[3], 10) : 0; - const seconds = matchResult[5] ? parseInt(matchResult[5], 10) : 0; - return { - value: sign * (hours * millisecondsInHour + minutes * millisecondsInMinute + seconds * millisecondsInSecond), - rest: dateString.slice(matchResult[0].length) - }; -} -function parseAnyDigitsSigned(dateString) { - return parseNumericPattern(numericPatterns.anyDigitsSigned, dateString); -} -function parseNDigits(n12, dateString) { - switch (n12) { - case 1: - return parseNumericPattern(numericPatterns.singleDigit, dateString); - case 2: - return parseNumericPattern(numericPatterns.twoDigits, dateString); - case 3: - return parseNumericPattern(numericPatterns.threeDigits, dateString); - case 4: - return parseNumericPattern(numericPatterns.fourDigits, dateString); - default: - return parseNumericPattern(new RegExp("^\\d{1," + n12 + "}"), dateString); - } -} -function parseNDigitsSigned(n12, dateString) { - switch (n12) { - case 1: - return parseNumericPattern(numericPatterns.singleDigitSigned, dateString); - case 2: - return parseNumericPattern(numericPatterns.twoDigitsSigned, dateString); - case 3: - return parseNumericPattern(numericPatterns.threeDigitsSigned, dateString); - case 4: - return parseNumericPattern(numericPatterns.fourDigitsSigned, dateString); - default: - return parseNumericPattern(new RegExp("^-?\\d{1," + n12 + "}"), dateString); - } -} -function dayPeriodEnumToHours(dayPeriod) { - switch (dayPeriod) { - case "morning": - return 4; - case "evening": - return 17; - case "pm": - case "noon": - case "afternoon": - return 12; - case "am": - case "midnight": - case "night": - default: - return 0; - } -} -function normalizeTwoDigitYear(twoDigitYear, currentYear) { - const isCommonEra = currentYear > 0; - const absCurrentYear = isCommonEra ? currentYear : 1 - currentYear; - let result; - if (absCurrentYear <= 50) { - result = twoDigitYear || 100; - } else { - const rangeEnd = absCurrentYear + 50; - const rangeEndCentury = Math.trunc(rangeEnd / 100) * 100; - const isPreviousCentury = twoDigitYear >= rangeEnd % 100; - result = twoDigitYear + rangeEndCentury - (isPreviousCentury ? 100 : 0); - } - return isCommonEra ? result : 1 - result; -} -function isLeapYearIndex(year) { - return year % 400 === 0 || year % 4 === 0 && year % 100 !== 0; -} -var init_utils = __esm({ - "node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/parse/_lib/utils.js"() { - init_constants(); - init_constants2(); - } -}); - -// node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/parse/_lib/parsers/YearParser.js -var YearParser; -var init_YearParser = __esm({ - "node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/parse/_lib/parsers/YearParser.js"() { - init_Parser(); - init_utils(); - YearParser = class extends Parser { - priority = 130; - incompatibleTokens = ["Y", "R", "u", "w", "I", "i", "e", "c", "t", "T"]; - parse(dateString, token, match2) { - const valueCallback = (year) => ({ - year, - isTwoDigitYear: token === "yy" - }); - switch (token) { - case "y": - return mapValue(parseNDigits(4, dateString), valueCallback); - case "yo": - return mapValue( - match2.ordinalNumber(dateString, { - unit: "year" - }), - valueCallback - ); - default: - return mapValue(parseNDigits(token.length, dateString), valueCallback); - } - } - validate(_date, value2) { - return value2.isTwoDigitYear || value2.year > 0; - } - set(date, flags, value2) { - const currentYear = date.getFullYear(); - if (value2.isTwoDigitYear) { - const normalizedTwoDigitYear = normalizeTwoDigitYear( - value2.year, - currentYear - ); - date.setFullYear(normalizedTwoDigitYear, 0, 1); - date.setHours(0, 0, 0, 0); - return date; - } - const year = !("era" in flags) || flags.era === 1 ? value2.year : 1 - value2.year; - date.setFullYear(year, 0, 1); - date.setHours(0, 0, 0, 0); - return date; - } - }; - } -}); - -// node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/parse/_lib/parsers/LocalWeekYearParser.js -var LocalWeekYearParser; -var init_LocalWeekYearParser = __esm({ - "node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/parse/_lib/parsers/LocalWeekYearParser.js"() { - init_getWeekYear(); - init_startOfWeek(); - init_Parser(); - init_utils(); - LocalWeekYearParser = class extends Parser { - priority = 130; - parse(dateString, token, match2) { - const valueCallback = (year) => ({ - year, - isTwoDigitYear: token === "YY" - }); - switch (token) { - case "Y": - return mapValue(parseNDigits(4, dateString), valueCallback); - case "Yo": - return mapValue( - match2.ordinalNumber(dateString, { - unit: "year" - }), - valueCallback - ); - default: - return mapValue(parseNDigits(token.length, dateString), valueCallback); - } - } - validate(_date, value2) { - return value2.isTwoDigitYear || value2.year > 0; - } - set(date, flags, value2, options) { - const currentYear = getWeekYear(date, options); - if (value2.isTwoDigitYear) { - const normalizedTwoDigitYear = normalizeTwoDigitYear( - value2.year, - currentYear - ); - date.setFullYear( - normalizedTwoDigitYear, - 0, - options.firstWeekContainsDate - ); - date.setHours(0, 0, 0, 0); - return startOfWeek(date, options); - } - const year = !("era" in flags) || flags.era === 1 ? value2.year : 1 - value2.year; - date.setFullYear(year, 0, options.firstWeekContainsDate); - date.setHours(0, 0, 0, 0); - return startOfWeek(date, options); - } - incompatibleTokens = [ - "y", - "R", - "u", - "Q", - "q", - "M", - "L", - "I", - "d", - "D", - "i", - "t", - "T" - ]; - }; - } -}); - -// node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/parse/_lib/parsers/ISOWeekYearParser.js -var ISOWeekYearParser; -var init_ISOWeekYearParser = __esm({ - "node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/parse/_lib/parsers/ISOWeekYearParser.js"() { - init_startOfISOWeek(); - init_constructFrom(); - init_Parser(); - init_utils(); - ISOWeekYearParser = class extends Parser { - priority = 130; - parse(dateString, token) { - if (token === "R") { - return parseNDigitsSigned(4, dateString); - } - return parseNDigitsSigned(token.length, dateString); - } - set(date, _flags, value2) { - const firstWeekOfYear = constructFrom(date, 0); - firstWeekOfYear.setFullYear(value2, 0, 4); - firstWeekOfYear.setHours(0, 0, 0, 0); - return startOfISOWeek(firstWeekOfYear); - } - incompatibleTokens = [ - "G", - "y", - "Y", - "u", - "Q", - "q", - "M", - "L", - "w", - "d", - "D", - "e", - "c", - "t", - "T" - ]; - }; - } -}); - -// node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/parse/_lib/parsers/ExtendedYearParser.js -var ExtendedYearParser; -var init_ExtendedYearParser = __esm({ - "node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/parse/_lib/parsers/ExtendedYearParser.js"() { - init_Parser(); - init_utils(); - ExtendedYearParser = class extends Parser { - priority = 130; - parse(dateString, token) { - if (token === "u") { - return parseNDigitsSigned(4, dateString); - } - return parseNDigitsSigned(token.length, dateString); - } - set(date, _flags, value2) { - date.setFullYear(value2, 0, 1); - date.setHours(0, 0, 0, 0); - return date; - } - incompatibleTokens = ["G", "y", "Y", "R", "w", "I", "i", "e", "c", "t", "T"]; - }; - } -}); - -// node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/parse/_lib/parsers/QuarterParser.js -var QuarterParser; -var init_QuarterParser = __esm({ - "node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/parse/_lib/parsers/QuarterParser.js"() { - init_Parser(); - init_utils(); - QuarterParser = class extends Parser { - priority = 120; - parse(dateString, token, match2) { - switch (token) { - // 1, 2, 3, 4 - case "Q": - case "QQ": - return parseNDigits(token.length, dateString); - // 1st, 2nd, 3rd, 4th - case "Qo": - return match2.ordinalNumber(dateString, { unit: "quarter" }); - // Q1, Q2, Q3, Q4 - case "QQQ": - return match2.quarter(dateString, { - width: "abbreviated", - context: "formatting" - }) || match2.quarter(dateString, { - width: "narrow", - context: "formatting" - }); - // 1, 2, 3, 4 (narrow quarter; could be not numerical) - case "QQQQQ": - return match2.quarter(dateString, { - width: "narrow", - context: "formatting" - }); - // 1st quarter, 2nd quarter, ... - case "QQQQ": - default: - return match2.quarter(dateString, { - width: "wide", - context: "formatting" - }) || match2.quarter(dateString, { - width: "abbreviated", - context: "formatting" - }) || match2.quarter(dateString, { - width: "narrow", - context: "formatting" - }); - } - } - validate(_date, value2) { - return value2 >= 1 && value2 <= 4; - } - set(date, _flags, value2) { - date.setMonth((value2 - 1) * 3, 1); - date.setHours(0, 0, 0, 0); - return date; - } - incompatibleTokens = [ - "Y", - "R", - "q", - "M", - "L", - "w", - "I", - "d", - "D", - "i", - "e", - "c", - "t", - "T" - ]; - }; - } -}); - -// node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/parse/_lib/parsers/StandAloneQuarterParser.js -var StandAloneQuarterParser; -var init_StandAloneQuarterParser = __esm({ - "node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/parse/_lib/parsers/StandAloneQuarterParser.js"() { - init_Parser(); - init_utils(); - StandAloneQuarterParser = class extends Parser { - priority = 120; - parse(dateString, token, match2) { - switch (token) { - // 1, 2, 3, 4 - case "q": - case "qq": - return parseNDigits(token.length, dateString); - // 1st, 2nd, 3rd, 4th - case "qo": - return match2.ordinalNumber(dateString, { unit: "quarter" }); - // Q1, Q2, Q3, Q4 - case "qqq": - return match2.quarter(dateString, { - width: "abbreviated", - context: "standalone" - }) || match2.quarter(dateString, { - width: "narrow", - context: "standalone" - }); - // 1, 2, 3, 4 (narrow quarter; could be not numerical) - case "qqqqq": - return match2.quarter(dateString, { - width: "narrow", - context: "standalone" - }); - // 1st quarter, 2nd quarter, ... - case "qqqq": - default: - return match2.quarter(dateString, { - width: "wide", - context: "standalone" - }) || match2.quarter(dateString, { - width: "abbreviated", - context: "standalone" - }) || match2.quarter(dateString, { - width: "narrow", - context: "standalone" - }); - } - } - validate(_date, value2) { - return value2 >= 1 && value2 <= 4; - } - set(date, _flags, value2) { - date.setMonth((value2 - 1) * 3, 1); - date.setHours(0, 0, 0, 0); - return date; - } - incompatibleTokens = [ - "Y", - "R", - "Q", - "M", - "L", - "w", - "I", - "d", - "D", - "i", - "e", - "c", - "t", - "T" - ]; - }; - } -}); - -// node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/parse/_lib/parsers/MonthParser.js -var MonthParser; -var init_MonthParser = __esm({ - "node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/parse/_lib/parsers/MonthParser.js"() { - init_constants2(); - init_Parser(); - init_utils(); - MonthParser = class extends Parser { - incompatibleTokens = [ - "Y", - "R", - "q", - "Q", - "L", - "w", - "I", - "D", - "i", - "e", - "c", - "t", - "T" - ]; - priority = 110; - parse(dateString, token, match2) { - const valueCallback = (value2) => value2 - 1; - switch (token) { - // 1, 2, ..., 12 - case "M": - return mapValue( - parseNumericPattern(numericPatterns.month, dateString), - valueCallback - ); - // 01, 02, ..., 12 - case "MM": - return mapValue(parseNDigits(2, dateString), valueCallback); - // 1st, 2nd, ..., 12th - case "Mo": - return mapValue( - match2.ordinalNumber(dateString, { - unit: "month" - }), - valueCallback - ); - // Jan, Feb, ..., Dec - case "MMM": - return match2.month(dateString, { - width: "abbreviated", - context: "formatting" - }) || match2.month(dateString, { width: "narrow", context: "formatting" }); - // J, F, ..., D - case "MMMMM": - return match2.month(dateString, { - width: "narrow", - context: "formatting" - }); - // January, February, ..., December - case "MMMM": - default: - return match2.month(dateString, { width: "wide", context: "formatting" }) || match2.month(dateString, { - width: "abbreviated", - context: "formatting" - }) || match2.month(dateString, { width: "narrow", context: "formatting" }); - } - } - validate(_date, value2) { - return value2 >= 0 && value2 <= 11; - } - set(date, _flags, value2) { - date.setMonth(value2, 1); - date.setHours(0, 0, 0, 0); - return date; - } - }; - } -}); - -// node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/parse/_lib/parsers/StandAloneMonthParser.js -var StandAloneMonthParser; -var init_StandAloneMonthParser = __esm({ - "node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/parse/_lib/parsers/StandAloneMonthParser.js"() { - init_constants2(); - init_Parser(); - init_utils(); - StandAloneMonthParser = class extends Parser { - priority = 110; - parse(dateString, token, match2) { - const valueCallback = (value2) => value2 - 1; - switch (token) { - // 1, 2, ..., 12 - case "L": - return mapValue( - parseNumericPattern(numericPatterns.month, dateString), - valueCallback - ); - // 01, 02, ..., 12 - case "LL": - return mapValue(parseNDigits(2, dateString), valueCallback); - // 1st, 2nd, ..., 12th - case "Lo": - return mapValue( - match2.ordinalNumber(dateString, { - unit: "month" - }), - valueCallback - ); - // Jan, Feb, ..., Dec - case "LLL": - return match2.month(dateString, { - width: "abbreviated", - context: "standalone" - }) || match2.month(dateString, { width: "narrow", context: "standalone" }); - // J, F, ..., D - case "LLLLL": - return match2.month(dateString, { - width: "narrow", - context: "standalone" - }); - // January, February, ..., December - case "LLLL": - default: - return match2.month(dateString, { width: "wide", context: "standalone" }) || match2.month(dateString, { - width: "abbreviated", - context: "standalone" - }) || match2.month(dateString, { width: "narrow", context: "standalone" }); - } - } - validate(_date, value2) { - return value2 >= 0 && value2 <= 11; - } - set(date, _flags, value2) { - date.setMonth(value2, 1); - date.setHours(0, 0, 0, 0); - return date; - } - incompatibleTokens = [ - "Y", - "R", - "q", - "Q", - "M", - "w", - "I", - "D", - "i", - "e", - "c", - "t", - "T" - ]; - }; - } -}); - -// node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/setWeek.js -function setWeek(date, week, options) { - const date_ = toDate(date, options?.in); - const diff = getWeek(date_, options) - week; - date_.setDate(date_.getDate() - diff * 7); - return toDate(date_, options?.in); -} -var setWeek_default; -var init_setWeek = __esm({ - "node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/setWeek.js"() { - init_getWeek(); - init_toDate(); - setWeek_default = setWeek; - } -}); - -// node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/parse/_lib/parsers/LocalWeekParser.js -var LocalWeekParser; -var init_LocalWeekParser = __esm({ - "node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/parse/_lib/parsers/LocalWeekParser.js"() { - init_setWeek(); - init_startOfWeek(); - init_constants2(); - init_Parser(); - init_utils(); - LocalWeekParser = class extends Parser { - priority = 100; - parse(dateString, token, match2) { - switch (token) { - case "w": - return parseNumericPattern(numericPatterns.week, dateString); - case "wo": - return match2.ordinalNumber(dateString, { unit: "week" }); - default: - return parseNDigits(token.length, dateString); - } - } - validate(_date, value2) { - return value2 >= 1 && value2 <= 53; - } - set(date, _flags, value2, options) { - return startOfWeek(setWeek(date, value2, options), options); - } - incompatibleTokens = [ - "y", - "R", - "u", - "q", - "Q", - "M", - "L", - "I", - "d", - "D", - "i", - "t", - "T" - ]; - }; - } -}); - -// node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/setISOWeek.js -function setISOWeek(date, week, options) { - const _date = toDate(date, options?.in); - const diff = getISOWeek(_date, options) - week; - _date.setDate(_date.getDate() - diff * 7); - return _date; -} -var setISOWeek_default; -var init_setISOWeek = __esm({ - "node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/setISOWeek.js"() { - init_getISOWeek(); - init_toDate(); - setISOWeek_default = setISOWeek; - } -}); - -// node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/parse/_lib/parsers/ISOWeekParser.js -var ISOWeekParser; -var init_ISOWeekParser = __esm({ - "node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/parse/_lib/parsers/ISOWeekParser.js"() { - init_setISOWeek(); - init_startOfISOWeek(); - init_constants2(); - init_Parser(); - init_utils(); - ISOWeekParser = class extends Parser { - priority = 100; - parse(dateString, token, match2) { - switch (token) { - case "I": - return parseNumericPattern(numericPatterns.week, dateString); - case "Io": - return match2.ordinalNumber(dateString, { unit: "week" }); - default: - return parseNDigits(token.length, dateString); - } - } - validate(_date, value2) { - return value2 >= 1 && value2 <= 53; - } - set(date, _flags, value2) { - return startOfISOWeek(setISOWeek(date, value2)); - } - incompatibleTokens = [ - "y", - "Y", - "u", - "q", - "Q", - "M", - "L", - "w", - "d", - "D", - "e", - "c", - "t", - "T" - ]; - }; - } -}); - -// node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/parse/_lib/parsers/DateParser.js -var DAYS_IN_MONTH, DAYS_IN_MONTH_LEAP_YEAR, DateParser; -var init_DateParser = __esm({ - "node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/parse/_lib/parsers/DateParser.js"() { - init_constants2(); - init_Parser(); - init_utils(); - DAYS_IN_MONTH = [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31]; - DAYS_IN_MONTH_LEAP_YEAR = [ - 31, - 29, - 31, - 30, - 31, - 30, - 31, - 31, - 30, - 31, - 30, - 31 - ]; - DateParser = class extends Parser { - priority = 90; - subPriority = 1; - parse(dateString, token, match2) { - switch (token) { - case "d": - return parseNumericPattern(numericPatterns.date, dateString); - case "do": - return match2.ordinalNumber(dateString, { unit: "date" }); - default: - return parseNDigits(token.length, dateString); - } - } - validate(date, value2) { - const year = date.getFullYear(); - const isLeapYear2 = isLeapYearIndex(year); - const month = date.getMonth(); - if (isLeapYear2) { - return value2 >= 1 && value2 <= DAYS_IN_MONTH_LEAP_YEAR[month]; - } else { - return value2 >= 1 && value2 <= DAYS_IN_MONTH[month]; - } - } - set(date, _flags, value2) { - date.setDate(value2); - date.setHours(0, 0, 0, 0); - return date; - } - incompatibleTokens = [ - "Y", - "R", - "q", - "Q", - "w", - "I", - "D", - "i", - "e", - "c", - "t", - "T" - ]; - }; - } -}); - -// node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/parse/_lib/parsers/DayOfYearParser.js -var DayOfYearParser; -var init_DayOfYearParser = __esm({ - "node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/parse/_lib/parsers/DayOfYearParser.js"() { - init_constants2(); - init_Parser(); - init_utils(); - DayOfYearParser = class extends Parser { - priority = 90; - subpriority = 1; - parse(dateString, token, match2) { - switch (token) { - case "D": - case "DD": - return parseNumericPattern(numericPatterns.dayOfYear, dateString); - case "Do": - return match2.ordinalNumber(dateString, { unit: "date" }); - default: - return parseNDigits(token.length, dateString); - } - } - validate(date, value2) { - const year = date.getFullYear(); - const isLeapYear2 = isLeapYearIndex(year); - if (isLeapYear2) { - return value2 >= 1 && value2 <= 366; - } else { - return value2 >= 1 && value2 <= 365; - } - } - set(date, _flags, value2) { - date.setMonth(0, value2); - date.setHours(0, 0, 0, 0); - return date; - } - incompatibleTokens = [ - "Y", - "R", - "q", - "Q", - "M", - "L", - "w", - "I", - "d", - "E", - "i", - "e", - "c", - "t", - "T" - ]; - }; - } -}); - -// node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/setDay.js -function setDay(date, day, options) { - const defaultOptions2 = getDefaultOptions(); - const weekStartsOn = options?.weekStartsOn ?? options?.locale?.options?.weekStartsOn ?? defaultOptions2.weekStartsOn ?? defaultOptions2.locale?.options?.weekStartsOn ?? 0; - const date_ = toDate(date, options?.in); - const currentDay = date_.getDay(); - const remainder = day % 7; - const dayIndex = (remainder + 7) % 7; - const delta = 7 - weekStartsOn; - const diff = day < 0 || day > 6 ? day - (currentDay + delta) % 7 : (dayIndex + delta) % 7 - (currentDay + delta) % 7; - return addDays(date_, diff, options); -} -var setDay_default; -var init_setDay = __esm({ - "node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/setDay.js"() { - init_defaultOptions(); - init_addDays(); - init_toDate(); - setDay_default = setDay; - } -}); - -// node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/parse/_lib/parsers/DayParser.js -var DayParser; -var init_DayParser = __esm({ - "node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/parse/_lib/parsers/DayParser.js"() { - init_setDay(); - init_Parser(); - DayParser = class extends Parser { - priority = 90; - parse(dateString, token, match2) { - switch (token) { - // Tue - case "E": - case "EE": - case "EEE": - return match2.day(dateString, { - width: "abbreviated", - context: "formatting" - }) || match2.day(dateString, { width: "short", context: "formatting" }) || match2.day(dateString, { width: "narrow", context: "formatting" }); - // T - case "EEEEE": - return match2.day(dateString, { - width: "narrow", - context: "formatting" - }); - // Tu - case "EEEEEE": - return match2.day(dateString, { width: "short", context: "formatting" }) || match2.day(dateString, { width: "narrow", context: "formatting" }); - // Tuesday - case "EEEE": - default: - return match2.day(dateString, { width: "wide", context: "formatting" }) || match2.day(dateString, { - width: "abbreviated", - context: "formatting" - }) || match2.day(dateString, { width: "short", context: "formatting" }) || match2.day(dateString, { width: "narrow", context: "formatting" }); - } - } - validate(_date, value2) { - return value2 >= 0 && value2 <= 6; - } - set(date, _flags, value2, options) { - date = setDay(date, value2, options); - date.setHours(0, 0, 0, 0); - return date; - } - incompatibleTokens = ["D", "i", "e", "c", "t", "T"]; - }; - } -}); - -// node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/parse/_lib/parsers/LocalDayParser.js -var LocalDayParser; -var init_LocalDayParser = __esm({ - "node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/parse/_lib/parsers/LocalDayParser.js"() { - init_setDay(); - init_Parser(); - init_utils(); - LocalDayParser = class extends Parser { - priority = 90; - parse(dateString, token, match2, options) { - const valueCallback = (value2) => { - const wholeWeekDays = Math.floor((value2 - 1) / 7) * 7; - return (value2 + options.weekStartsOn + 6) % 7 + wholeWeekDays; - }; - switch (token) { - // 3 - case "e": - case "ee": - return mapValue(parseNDigits(token.length, dateString), valueCallback); - // 3rd - case "eo": - return mapValue( - match2.ordinalNumber(dateString, { - unit: "day" - }), - valueCallback - ); - // Tue - case "eee": - return match2.day(dateString, { - width: "abbreviated", - context: "formatting" - }) || match2.day(dateString, { width: "short", context: "formatting" }) || match2.day(dateString, { width: "narrow", context: "formatting" }); - // T - case "eeeee": - return match2.day(dateString, { - width: "narrow", - context: "formatting" - }); - // Tu - case "eeeeee": - return match2.day(dateString, { width: "short", context: "formatting" }) || match2.day(dateString, { width: "narrow", context: "formatting" }); - // Tuesday - case "eeee": - default: - return match2.day(dateString, { width: "wide", context: "formatting" }) || match2.day(dateString, { - width: "abbreviated", - context: "formatting" - }) || match2.day(dateString, { width: "short", context: "formatting" }) || match2.day(dateString, { width: "narrow", context: "formatting" }); - } - } - validate(_date, value2) { - return value2 >= 0 && value2 <= 6; - } - set(date, _flags, value2, options) { - date = setDay(date, value2, options); - date.setHours(0, 0, 0, 0); - return date; - } - incompatibleTokens = [ - "y", - "R", - "u", - "q", - "Q", - "M", - "L", - "I", - "d", - "D", - "E", - "i", - "c", - "t", - "T" - ]; - }; - } -}); - -// node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/parse/_lib/parsers/StandAloneLocalDayParser.js -var StandAloneLocalDayParser; -var init_StandAloneLocalDayParser = __esm({ - "node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/parse/_lib/parsers/StandAloneLocalDayParser.js"() { - init_setDay(); - init_Parser(); - init_utils(); - StandAloneLocalDayParser = class extends Parser { - priority = 90; - parse(dateString, token, match2, options) { - const valueCallback = (value2) => { - const wholeWeekDays = Math.floor((value2 - 1) / 7) * 7; - return (value2 + options.weekStartsOn + 6) % 7 + wholeWeekDays; - }; - switch (token) { - // 3 - case "c": - case "cc": - return mapValue(parseNDigits(token.length, dateString), valueCallback); - // 3rd - case "co": - return mapValue( - match2.ordinalNumber(dateString, { - unit: "day" - }), - valueCallback - ); - // Tue - case "ccc": - return match2.day(dateString, { - width: "abbreviated", - context: "standalone" - }) || match2.day(dateString, { width: "short", context: "standalone" }) || match2.day(dateString, { width: "narrow", context: "standalone" }); - // T - case "ccccc": - return match2.day(dateString, { - width: "narrow", - context: "standalone" - }); - // Tu - case "cccccc": - return match2.day(dateString, { width: "short", context: "standalone" }) || match2.day(dateString, { width: "narrow", context: "standalone" }); - // Tuesday - case "cccc": - default: - return match2.day(dateString, { width: "wide", context: "standalone" }) || match2.day(dateString, { - width: "abbreviated", - context: "standalone" - }) || match2.day(dateString, { width: "short", context: "standalone" }) || match2.day(dateString, { width: "narrow", context: "standalone" }); - } - } - validate(_date, value2) { - return value2 >= 0 && value2 <= 6; - } - set(date, _flags, value2, options) { - date = setDay(date, value2, options); - date.setHours(0, 0, 0, 0); - return date; - } - incompatibleTokens = [ - "y", - "R", - "u", - "q", - "Q", - "M", - "L", - "I", - "d", - "D", - "E", - "i", - "e", - "t", - "T" - ]; - }; - } -}); - -// node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/setISODay.js -function setISODay(date, day, options) { - const date_ = toDate(date, options?.in); - const currentDay = getISODay(date_, options); - const diff = day - currentDay; - return addDays(date_, diff, options); -} -var setISODay_default; -var init_setISODay = __esm({ - "node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/setISODay.js"() { - init_addDays(); - init_getISODay(); - init_toDate(); - setISODay_default = setISODay; - } -}); - -// node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/parse/_lib/parsers/ISODayParser.js -var ISODayParser; -var init_ISODayParser = __esm({ - "node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/parse/_lib/parsers/ISODayParser.js"() { - init_setISODay(); - init_Parser(); - init_utils(); - ISODayParser = class extends Parser { - priority = 90; - parse(dateString, token, match2) { - const valueCallback = (value2) => { - if (value2 === 0) { - return 7; - } - return value2; - }; - switch (token) { - // 2 - case "i": - case "ii": - return parseNDigits(token.length, dateString); - // 2nd - case "io": - return match2.ordinalNumber(dateString, { unit: "day" }); - // Tue - case "iii": - return mapValue( - match2.day(dateString, { - width: "abbreviated", - context: "formatting" - }) || match2.day(dateString, { - width: "short", - context: "formatting" - }) || match2.day(dateString, { - width: "narrow", - context: "formatting" - }), - valueCallback - ); - // T - case "iiiii": - return mapValue( - match2.day(dateString, { - width: "narrow", - context: "formatting" - }), - valueCallback - ); - // Tu - case "iiiiii": - return mapValue( - match2.day(dateString, { - width: "short", - context: "formatting" - }) || match2.day(dateString, { - width: "narrow", - context: "formatting" - }), - valueCallback - ); - // Tuesday - case "iiii": - default: - return mapValue( - match2.day(dateString, { - width: "wide", - context: "formatting" - }) || match2.day(dateString, { - width: "abbreviated", - context: "formatting" - }) || match2.day(dateString, { - width: "short", - context: "formatting" - }) || match2.day(dateString, { - width: "narrow", - context: "formatting" - }), - valueCallback - ); - } - } - validate(_date, value2) { - return value2 >= 1 && value2 <= 7; - } - set(date, _flags, value2) { - date = setISODay(date, value2); - date.setHours(0, 0, 0, 0); - return date; - } - incompatibleTokens = [ - "y", - "Y", - "u", - "q", - "Q", - "M", - "L", - "w", - "d", - "D", - "E", - "e", - "c", - "t", - "T" - ]; - }; - } -}); - -// node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/parse/_lib/parsers/AMPMParser.js -var AMPMParser; -var init_AMPMParser = __esm({ - "node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/parse/_lib/parsers/AMPMParser.js"() { - init_Parser(); - init_utils(); - AMPMParser = class extends Parser { - priority = 80; - parse(dateString, token, match2) { - switch (token) { - case "a": - case "aa": - case "aaa": - return match2.dayPeriod(dateString, { - width: "abbreviated", - context: "formatting" - }) || match2.dayPeriod(dateString, { - width: "narrow", - context: "formatting" - }); - case "aaaaa": - return match2.dayPeriod(dateString, { - width: "narrow", - context: "formatting" - }); - case "aaaa": - default: - return match2.dayPeriod(dateString, { - width: "wide", - context: "formatting" - }) || match2.dayPeriod(dateString, { - width: "abbreviated", - context: "formatting" - }) || match2.dayPeriod(dateString, { - width: "narrow", - context: "formatting" - }); - } - } - set(date, _flags, value2) { - date.setHours(dayPeriodEnumToHours(value2), 0, 0, 0); - return date; - } - incompatibleTokens = ["b", "B", "H", "k", "t", "T"]; - }; - } -}); - -// node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/parse/_lib/parsers/AMPMMidnightParser.js -var AMPMMidnightParser; -var init_AMPMMidnightParser = __esm({ - "node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/parse/_lib/parsers/AMPMMidnightParser.js"() { - init_Parser(); - init_utils(); - AMPMMidnightParser = class extends Parser { - priority = 80; - parse(dateString, token, match2) { - switch (token) { - case "b": - case "bb": - case "bbb": - return match2.dayPeriod(dateString, { - width: "abbreviated", - context: "formatting" - }) || match2.dayPeriod(dateString, { - width: "narrow", - context: "formatting" - }); - case "bbbbb": - return match2.dayPeriod(dateString, { - width: "narrow", - context: "formatting" - }); - case "bbbb": - default: - return match2.dayPeriod(dateString, { - width: "wide", - context: "formatting" - }) || match2.dayPeriod(dateString, { - width: "abbreviated", - context: "formatting" - }) || match2.dayPeriod(dateString, { - width: "narrow", - context: "formatting" - }); - } - } - set(date, _flags, value2) { - date.setHours(dayPeriodEnumToHours(value2), 0, 0, 0); - return date; - } - incompatibleTokens = ["a", "B", "H", "k", "t", "T"]; - }; - } -}); - -// node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/parse/_lib/parsers/DayPeriodParser.js -var DayPeriodParser; -var init_DayPeriodParser = __esm({ - "node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/parse/_lib/parsers/DayPeriodParser.js"() { - init_Parser(); - init_utils(); - DayPeriodParser = class extends Parser { - priority = 80; - parse(dateString, token, match2) { - switch (token) { - case "B": - case "BB": - case "BBB": - return match2.dayPeriod(dateString, { - width: "abbreviated", - context: "formatting" - }) || match2.dayPeriod(dateString, { - width: "narrow", - context: "formatting" - }); - case "BBBBB": - return match2.dayPeriod(dateString, { - width: "narrow", - context: "formatting" - }); - case "BBBB": - default: - return match2.dayPeriod(dateString, { - width: "wide", - context: "formatting" - }) || match2.dayPeriod(dateString, { - width: "abbreviated", - context: "formatting" - }) || match2.dayPeriod(dateString, { - width: "narrow", - context: "formatting" - }); - } - } - set(date, _flags, value2) { - date.setHours(dayPeriodEnumToHours(value2), 0, 0, 0); - return date; - } - incompatibleTokens = ["a", "b", "t", "T"]; - }; - } -}); - -// node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/parse/_lib/parsers/Hour1to12Parser.js -var Hour1to12Parser; -var init_Hour1to12Parser = __esm({ - "node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/parse/_lib/parsers/Hour1to12Parser.js"() { - init_constants2(); - init_Parser(); - init_utils(); - Hour1to12Parser = class extends Parser { - priority = 70; - parse(dateString, token, match2) { - switch (token) { - case "h": - return parseNumericPattern(numericPatterns.hour12h, dateString); - case "ho": - return match2.ordinalNumber(dateString, { unit: "hour" }); - default: - return parseNDigits(token.length, dateString); - } - } - validate(_date, value2) { - return value2 >= 1 && value2 <= 12; - } - set(date, _flags, value2) { - const isPM = date.getHours() >= 12; - if (isPM && value2 < 12) { - date.setHours(value2 + 12, 0, 0, 0); - } else if (!isPM && value2 === 12) { - date.setHours(0, 0, 0, 0); - } else { - date.setHours(value2, 0, 0, 0); - } - return date; - } - incompatibleTokens = ["H", "K", "k", "t", "T"]; - }; - } -}); - -// node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/parse/_lib/parsers/Hour0to23Parser.js -var Hour0to23Parser; -var init_Hour0to23Parser = __esm({ - "node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/parse/_lib/parsers/Hour0to23Parser.js"() { - init_constants2(); - init_Parser(); - init_utils(); - Hour0to23Parser = class extends Parser { - priority = 70; - parse(dateString, token, match2) { - switch (token) { - case "H": - return parseNumericPattern(numericPatterns.hour23h, dateString); - case "Ho": - return match2.ordinalNumber(dateString, { unit: "hour" }); - default: - return parseNDigits(token.length, dateString); - } - } - validate(_date, value2) { - return value2 >= 0 && value2 <= 23; - } - set(date, _flags, value2) { - date.setHours(value2, 0, 0, 0); - return date; - } - incompatibleTokens = ["a", "b", "h", "K", "k", "t", "T"]; - }; - } -}); - -// node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/parse/_lib/parsers/Hour0To11Parser.js -var Hour0To11Parser; -var init_Hour0To11Parser = __esm({ - "node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/parse/_lib/parsers/Hour0To11Parser.js"() { - init_constants2(); - init_Parser(); - init_utils(); - Hour0To11Parser = class extends Parser { - priority = 70; - parse(dateString, token, match2) { - switch (token) { - case "K": - return parseNumericPattern(numericPatterns.hour11h, dateString); - case "Ko": - return match2.ordinalNumber(dateString, { unit: "hour" }); - default: - return parseNDigits(token.length, dateString); - } - } - validate(_date, value2) { - return value2 >= 0 && value2 <= 11; - } - set(date, _flags, value2) { - const isPM = date.getHours() >= 12; - if (isPM && value2 < 12) { - date.setHours(value2 + 12, 0, 0, 0); - } else { - date.setHours(value2, 0, 0, 0); - } - return date; - } - incompatibleTokens = ["h", "H", "k", "t", "T"]; - }; - } -}); - -// node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/parse/_lib/parsers/Hour1To24Parser.js -var Hour1To24Parser; -var init_Hour1To24Parser = __esm({ - "node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/parse/_lib/parsers/Hour1To24Parser.js"() { - init_constants2(); - init_Parser(); - init_utils(); - Hour1To24Parser = class extends Parser { - priority = 70; - parse(dateString, token, match2) { - switch (token) { - case "k": - return parseNumericPattern(numericPatterns.hour24h, dateString); - case "ko": - return match2.ordinalNumber(dateString, { unit: "hour" }); - default: - return parseNDigits(token.length, dateString); - } - } - validate(_date, value2) { - return value2 >= 1 && value2 <= 24; - } - set(date, _flags, value2) { - const hours = value2 <= 24 ? value2 % 24 : value2; - date.setHours(hours, 0, 0, 0); - return date; - } - incompatibleTokens = ["a", "b", "h", "H", "K", "t", "T"]; - }; - } -}); - -// node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/parse/_lib/parsers/MinuteParser.js -var MinuteParser; -var init_MinuteParser = __esm({ - "node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/parse/_lib/parsers/MinuteParser.js"() { - init_constants2(); - init_Parser(); - init_utils(); - MinuteParser = class extends Parser { - priority = 60; - parse(dateString, token, match2) { - switch (token) { - case "m": - return parseNumericPattern(numericPatterns.minute, dateString); - case "mo": - return match2.ordinalNumber(dateString, { unit: "minute" }); - default: - return parseNDigits(token.length, dateString); - } - } - validate(_date, value2) { - return value2 >= 0 && value2 <= 59; - } - set(date, _flags, value2) { - date.setMinutes(value2, 0, 0); - return date; - } - incompatibleTokens = ["t", "T"]; - }; - } -}); - -// node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/parse/_lib/parsers/SecondParser.js -var SecondParser; -var init_SecondParser = __esm({ - "node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/parse/_lib/parsers/SecondParser.js"() { - init_constants2(); - init_Parser(); - init_utils(); - SecondParser = class extends Parser { - priority = 50; - parse(dateString, token, match2) { - switch (token) { - case "s": - return parseNumericPattern(numericPatterns.second, dateString); - case "so": - return match2.ordinalNumber(dateString, { unit: "second" }); - default: - return parseNDigits(token.length, dateString); - } - } - validate(_date, value2) { - return value2 >= 0 && value2 <= 59; - } - set(date, _flags, value2) { - date.setSeconds(value2, 0); - return date; - } - incompatibleTokens = ["t", "T"]; - }; - } -}); - -// node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/parse/_lib/parsers/FractionOfSecondParser.js -var FractionOfSecondParser; -var init_FractionOfSecondParser = __esm({ - "node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/parse/_lib/parsers/FractionOfSecondParser.js"() { - init_Parser(); - init_utils(); - FractionOfSecondParser = class extends Parser { - priority = 30; - parse(dateString, token) { - const valueCallback = (value2) => Math.trunc(value2 * Math.pow(10, -token.length + 3)); - return mapValue(parseNDigits(token.length, dateString), valueCallback); - } - set(date, _flags, value2) { - date.setMilliseconds(value2); - return date; - } - incompatibleTokens = ["t", "T"]; - }; - } -}); - -// node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/parse/_lib/parsers/ISOTimezoneWithZParser.js -var ISOTimezoneWithZParser; -var init_ISOTimezoneWithZParser = __esm({ - "node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/parse/_lib/parsers/ISOTimezoneWithZParser.js"() { - init_constructFrom(); - init_getTimezoneOffsetInMilliseconds(); - init_constants2(); - init_Parser(); - init_utils(); - ISOTimezoneWithZParser = class extends Parser { - priority = 10; - parse(dateString, token) { - switch (token) { - case "X": - return parseTimezonePattern( - timezonePatterns.basicOptionalMinutes, - dateString - ); - case "XX": - return parseTimezonePattern(timezonePatterns.basic, dateString); - case "XXXX": - return parseTimezonePattern( - timezonePatterns.basicOptionalSeconds, - dateString - ); - case "XXXXX": - return parseTimezonePattern( - timezonePatterns.extendedOptionalSeconds, - dateString - ); - case "XXX": - default: - return parseTimezonePattern(timezonePatterns.extended, dateString); - } - } - set(date, flags, value2) { - if (flags.timestampIsSet) return date; - return constructFrom( - date, - date.getTime() - getTimezoneOffsetInMilliseconds(date) - value2 - ); - } - incompatibleTokens = ["t", "T", "x"]; - }; - } -}); - -// node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/parse/_lib/parsers/ISOTimezoneParser.js -var ISOTimezoneParser; -var init_ISOTimezoneParser = __esm({ - "node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/parse/_lib/parsers/ISOTimezoneParser.js"() { - init_constructFrom(); - init_getTimezoneOffsetInMilliseconds(); - init_constants2(); - init_Parser(); - init_utils(); - ISOTimezoneParser = class extends Parser { - priority = 10; - parse(dateString, token) { - switch (token) { - case "x": - return parseTimezonePattern( - timezonePatterns.basicOptionalMinutes, - dateString - ); - case "xx": - return parseTimezonePattern(timezonePatterns.basic, dateString); - case "xxxx": - return parseTimezonePattern( - timezonePatterns.basicOptionalSeconds, - dateString - ); - case "xxxxx": - return parseTimezonePattern( - timezonePatterns.extendedOptionalSeconds, - dateString - ); - case "xxx": - default: - return parseTimezonePattern(timezonePatterns.extended, dateString); - } - } - set(date, flags, value2) { - if (flags.timestampIsSet) return date; - return constructFrom( - date, - date.getTime() - getTimezoneOffsetInMilliseconds(date) - value2 - ); - } - incompatibleTokens = ["t", "T", "X"]; - }; - } -}); - -// node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/parse/_lib/parsers/TimestampSecondsParser.js -var TimestampSecondsParser; -var init_TimestampSecondsParser = __esm({ - "node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/parse/_lib/parsers/TimestampSecondsParser.js"() { - init_constructFrom(); - init_Parser(); - init_utils(); - TimestampSecondsParser = class extends Parser { - priority = 40; - parse(dateString) { - return parseAnyDigitsSigned(dateString); - } - set(date, _flags, value2) { - return [constructFrom(date, value2 * 1e3), { timestampIsSet: true }]; - } - incompatibleTokens = "*"; - }; - } -}); - -// node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/parse/_lib/parsers/TimestampMillisecondsParser.js -var TimestampMillisecondsParser; -var init_TimestampMillisecondsParser = __esm({ - "node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/parse/_lib/parsers/TimestampMillisecondsParser.js"() { - init_constructFrom(); - init_Parser(); - init_utils(); - TimestampMillisecondsParser = class extends Parser { - priority = 20; - parse(dateString) { - return parseAnyDigitsSigned(dateString); - } - set(date, _flags, value2) { - return [constructFrom(date, value2), { timestampIsSet: true }]; - } - incompatibleTokens = "*"; - }; - } -}); - -// node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/parse/_lib/parsers.js -var parsers; -var init_parsers = __esm({ - "node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/parse/_lib/parsers.js"() { - init_EraParser(); - init_YearParser(); - init_LocalWeekYearParser(); - init_ISOWeekYearParser(); - init_ExtendedYearParser(); - init_QuarterParser(); - init_StandAloneQuarterParser(); - init_MonthParser(); - init_StandAloneMonthParser(); - init_LocalWeekParser(); - init_ISOWeekParser(); - init_DateParser(); - init_DayOfYearParser(); - init_DayParser(); - init_LocalDayParser(); - init_StandAloneLocalDayParser(); - init_ISODayParser(); - init_AMPMParser(); - init_AMPMMidnightParser(); - init_DayPeriodParser(); - init_Hour1to12Parser(); - init_Hour0to23Parser(); - init_Hour0To11Parser(); - init_Hour1To24Parser(); - init_MinuteParser(); - init_SecondParser(); - init_FractionOfSecondParser(); - init_ISOTimezoneWithZParser(); - init_ISOTimezoneParser(); - init_TimestampSecondsParser(); - init_TimestampMillisecondsParser(); - parsers = { - G: new EraParser(), - y: new YearParser(), - Y: new LocalWeekYearParser(), - R: new ISOWeekYearParser(), - u: new ExtendedYearParser(), - Q: new QuarterParser(), - q: new StandAloneQuarterParser(), - M: new MonthParser(), - L: new StandAloneMonthParser(), - w: new LocalWeekParser(), - I: new ISOWeekParser(), - d: new DateParser(), - D: new DayOfYearParser(), - E: new DayParser(), - e: new LocalDayParser(), - c: new StandAloneLocalDayParser(), - i: new ISODayParser(), - a: new AMPMParser(), - b: new AMPMMidnightParser(), - B: new DayPeriodParser(), - h: new Hour1to12Parser(), - H: new Hour0to23Parser(), - K: new Hour0To11Parser(), - k: new Hour1To24Parser(), - m: new MinuteParser(), - s: new SecondParser(), - S: new FractionOfSecondParser(), - X: new ISOTimezoneWithZParser(), - x: new ISOTimezoneParser(), - t: new TimestampSecondsParser(), - T: new TimestampMillisecondsParser() - }; - } -}); - -// node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/parse.js -function parse(dateStr, formatStr, referenceDate, options) { - const invalidDate = () => constructFrom(options?.in || referenceDate, NaN); - const defaultOptions2 = getDefaultOptions2(); - const locale = options?.locale ?? defaultOptions2.locale ?? enUS; - const firstWeekContainsDate = options?.firstWeekContainsDate ?? options?.locale?.options?.firstWeekContainsDate ?? defaultOptions2.firstWeekContainsDate ?? defaultOptions2.locale?.options?.firstWeekContainsDate ?? 1; - const weekStartsOn = options?.weekStartsOn ?? options?.locale?.options?.weekStartsOn ?? defaultOptions2.weekStartsOn ?? defaultOptions2.locale?.options?.weekStartsOn ?? 0; - if (!formatStr) - return dateStr ? invalidDate() : toDate(referenceDate, options?.in); - const subFnOptions = { - firstWeekContainsDate, - weekStartsOn, - locale - }; - const setters = [new DateTimezoneSetter(options?.in, referenceDate)]; - const tokens = formatStr.match(longFormattingTokensRegExp2).map((substring) => { - const firstCharacter = substring[0]; - if (firstCharacter in longFormatters) { - const longFormatter = longFormatters[firstCharacter]; - return longFormatter(substring, locale.formatLong); - } - return substring; - }).join("").match(formattingTokensRegExp2); - const usedTokens = []; - for (let token of tokens) { - if (!options?.useAdditionalWeekYearTokens && isProtectedWeekYearToken(token)) { - warnOrThrowProtectedError(token, formatStr, dateStr); - } - if (!options?.useAdditionalDayOfYearTokens && isProtectedDayOfYearToken(token)) { - warnOrThrowProtectedError(token, formatStr, dateStr); - } - const firstCharacter = token[0]; - const parser = parsers[firstCharacter]; - if (parser) { - const { incompatibleTokens } = parser; - if (Array.isArray(incompatibleTokens)) { - const incompatibleToken = usedTokens.find( - (usedToken) => incompatibleTokens.includes(usedToken.token) || usedToken.token === firstCharacter - ); - if (incompatibleToken) { - throw new RangeError( - `The format string mustn't contain \`${incompatibleToken.fullToken}\` and \`${token}\` at the same time` - ); - } - } else if (parser.incompatibleTokens === "*" && usedTokens.length > 0) { - throw new RangeError( - `The format string mustn't contain \`${token}\` and any other token at the same time` - ); - } - usedTokens.push({ token: firstCharacter, fullToken: token }); - const parseResult = parser.run( - dateStr, - token, - locale.match, - subFnOptions - ); - if (!parseResult) { - return invalidDate(); - } - setters.push(parseResult.setter); - dateStr = parseResult.rest; - } else { - if (firstCharacter.match(unescapedLatinCharacterRegExp2)) { - throw new RangeError( - "Format string contains an unescaped latin alphabet character `" + firstCharacter + "`" - ); - } - if (token === "''") { - token = "'"; - } else if (firstCharacter === "'") { - token = cleanEscapedString2(token); - } - if (dateStr.indexOf(token) === 0) { - dateStr = dateStr.slice(token.length); - } else { - return invalidDate(); - } - } - } - if (dateStr.length > 0 && notWhitespaceRegExp.test(dateStr)) { - return invalidDate(); - } - const uniquePrioritySetters = setters.map((setter) => setter.priority).sort((a5, b5) => b5 - a5).filter((priority, index2, array) => array.indexOf(priority) === index2).map( - (priority) => setters.filter((setter) => setter.priority === priority).sort((a5, b5) => b5.subPriority - a5.subPriority) - ).map((setterArray) => setterArray[0]); - let date = toDate(referenceDate, options?.in); - if (isNaN(+date)) return invalidDate(); - const flags = {}; - for (const setter of uniquePrioritySetters) { - if (!setter.validate(date, subFnOptions)) { - return invalidDate(); - } - const result = setter.set(date, flags, subFnOptions); - if (Array.isArray(result)) { - date = result[0]; - Object.assign(flags, result[1]); - } else { - date = result; - } - } - return date; -} -function cleanEscapedString2(input) { - return input.match(escapedStringRegExp2)[1].replace(doubleQuoteRegExp2, "'"); -} -var formattingTokensRegExp2, longFormattingTokensRegExp2, escapedStringRegExp2, doubleQuoteRegExp2, notWhitespaceRegExp, unescapedLatinCharacterRegExp2, parse_default; -var init_parse = __esm({ - "node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/parse.js"() { - init_defaultLocale(); - init_longFormatters(); - init_protectedTokens(); - init_constructFrom(); - init_getDefaultOptions(); - init_toDate(); - init_Setter(); - init_parsers(); - formattingTokensRegExp2 = /[yYQqMLwIdDecihHKkms]o|(\w)\1*|''|'(''|[^'])+('|$)|./g; - longFormattingTokensRegExp2 = /P+p+|P+|p+|''|'(''|[^'])+('|$)|./g; - escapedStringRegExp2 = /^'([^]*?)'?$/; - doubleQuoteRegExp2 = /''/g; - notWhitespaceRegExp = /\S/; - unescapedLatinCharacterRegExp2 = /[a-zA-Z]/; - parse_default = parse; - } -}); - -// node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/isMatch.js -function isMatch2(dateStr, formatStr, options) { - return isValid(parse(dateStr, formatStr, /* @__PURE__ */ new Date(), options)); -} -var isMatch_default; -var init_isMatch = __esm({ - "node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/isMatch.js"() { - init_isValid(); - init_parse(); - isMatch_default = isMatch2; - } -}); - -// node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/isMonday.js -function isMonday(date, options) { - return toDate(date, options?.in).getDay() === 1; -} -var isMonday_default; -var init_isMonday = __esm({ - "node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/isMonday.js"() { - init_toDate(); - isMonday_default = isMonday; - } -}); - -// node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/isPast.js -function isPast(date) { - return +toDate(date) < Date.now(); -} -var isPast_default; -var init_isPast = __esm({ - "node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/isPast.js"() { - init_toDate(); - isPast_default = isPast; - } -}); - -// node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/startOfHour.js -function startOfHour(date, options) { - const _date = toDate(date, options?.in); - _date.setMinutes(0, 0, 0); - return _date; -} -var startOfHour_default; -var init_startOfHour = __esm({ - "node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/startOfHour.js"() { - init_toDate(); - startOfHour_default = startOfHour; - } -}); - -// node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/isSameHour.js -function isSameHour(dateLeft, dateRight, options) { - const [dateLeft_, dateRight_] = normalizeDates( - options?.in, - dateLeft, - dateRight - ); - return +startOfHour(dateLeft_) === +startOfHour(dateRight_); -} -var isSameHour_default; -var init_isSameHour = __esm({ - "node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/isSameHour.js"() { - init_normalizeDates(); - init_startOfHour(); - isSameHour_default = isSameHour; - } -}); - -// node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/isSameWeek.js -function isSameWeek(laterDate, earlierDate, options) { - const [laterDate_, earlierDate_] = normalizeDates( - options?.in, - laterDate, - earlierDate - ); - return +startOfWeek(laterDate_, options) === +startOfWeek(earlierDate_, options); -} -var isSameWeek_default; -var init_isSameWeek = __esm({ - "node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/isSameWeek.js"() { - init_normalizeDates(); - init_startOfWeek(); - isSameWeek_default = isSameWeek; - } -}); - -// node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/isSameISOWeek.js -function isSameISOWeek(laterDate, earlierDate, options) { - return isSameWeek(laterDate, earlierDate, { ...options, weekStartsOn: 1 }); -} -var isSameISOWeek_default; -var init_isSameISOWeek = __esm({ - "node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/isSameISOWeek.js"() { - init_isSameWeek(); - isSameISOWeek_default = isSameISOWeek; - } -}); - -// node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/isSameISOWeekYear.js -function isSameISOWeekYear(laterDate, earlierDate, options) { - const [laterDate_, earlierDate_] = normalizeDates( - options?.in, - laterDate, - earlierDate - ); - return +startOfISOWeekYear(laterDate_) === +startOfISOWeekYear(earlierDate_); -} -var isSameISOWeekYear_default; -var init_isSameISOWeekYear = __esm({ - "node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/isSameISOWeekYear.js"() { - init_startOfISOWeekYear(); - init_normalizeDates(); - isSameISOWeekYear_default = isSameISOWeekYear; - } -}); - -// node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/startOfMinute.js -function startOfMinute(date, options) { - const date_ = toDate(date, options?.in); - date_.setSeconds(0, 0); - return date_; -} -var startOfMinute_default; -var init_startOfMinute = __esm({ - "node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/startOfMinute.js"() { - init_toDate(); - startOfMinute_default = startOfMinute; - } -}); - -// node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/isSameMinute.js -function isSameMinute(laterDate, earlierDate) { - return +startOfMinute(laterDate) === +startOfMinute(earlierDate); -} -var isSameMinute_default; -var init_isSameMinute = __esm({ - "node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/isSameMinute.js"() { - init_startOfMinute(); - isSameMinute_default = isSameMinute; - } -}); - -// node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/isSameMonth.js -function isSameMonth(laterDate, earlierDate, options) { - const [laterDate_, earlierDate_] = normalizeDates( - options?.in, - laterDate, - earlierDate - ); - return laterDate_.getFullYear() === earlierDate_.getFullYear() && laterDate_.getMonth() === earlierDate_.getMonth(); -} -var isSameMonth_default; -var init_isSameMonth = __esm({ - "node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/isSameMonth.js"() { - init_normalizeDates(); - isSameMonth_default = isSameMonth; - } -}); - -// node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/isSameQuarter.js -function isSameQuarter(laterDate, earlierDate, options) { - const [dateLeft_, dateRight_] = normalizeDates( - options?.in, - laterDate, - earlierDate - ); - return +startOfQuarter(dateLeft_) === +startOfQuarter(dateRight_); -} -var isSameQuarter_default; -var init_isSameQuarter = __esm({ - "node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/isSameQuarter.js"() { - init_normalizeDates(); - init_startOfQuarter(); - isSameQuarter_default = isSameQuarter; - } -}); - -// node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/startOfSecond.js -function startOfSecond(date, options) { - const date_ = toDate(date, options?.in); - date_.setMilliseconds(0); - return date_; -} -var startOfSecond_default; -var init_startOfSecond = __esm({ - "node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/startOfSecond.js"() { - init_toDate(); - startOfSecond_default = startOfSecond; - } -}); - -// node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/isSameSecond.js -function isSameSecond(laterDate, earlierDate) { - return +startOfSecond(laterDate) === +startOfSecond(earlierDate); -} -var isSameSecond_default; -var init_isSameSecond = __esm({ - "node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/isSameSecond.js"() { - init_startOfSecond(); - isSameSecond_default = isSameSecond; - } -}); - -// node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/isSameYear.js -function isSameYear(laterDate, earlierDate, options) { - const [laterDate_, earlierDate_] = normalizeDates( - options?.in, - laterDate, - earlierDate - ); - return laterDate_.getFullYear() === earlierDate_.getFullYear(); -} -var isSameYear_default; -var init_isSameYear = __esm({ - "node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/isSameYear.js"() { - init_normalizeDates(); - isSameYear_default = isSameYear; - } -}); - -// node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/isThisHour.js -function isThisHour(date, options) { - return isSameHour( - toDate(date, options?.in), - constructNow(options?.in || date) - ); -} -var isThisHour_default; -var init_isThisHour = __esm({ - "node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/isThisHour.js"() { - init_constructNow(); - init_isSameHour(); - init_toDate(); - isThisHour_default = isThisHour; - } -}); - -// node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/isThisISOWeek.js -function isThisISOWeek(date, options) { - return isSameISOWeek( - constructFrom(options?.in || date, date), - constructNow(options?.in || date) - ); -} -var isThisISOWeek_default; -var init_isThisISOWeek = __esm({ - "node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/isThisISOWeek.js"() { - init_constructFrom(); - init_constructNow(); - init_isSameISOWeek(); - isThisISOWeek_default = isThisISOWeek; - } -}); - -// node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/isThisMinute.js -function isThisMinute(date) { - return isSameMinute(date, constructNow(date)); -} -var isThisMinute_default; -var init_isThisMinute = __esm({ - "node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/isThisMinute.js"() { - init_constructNow(); - init_isSameMinute(); - isThisMinute_default = isThisMinute; - } -}); - -// node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/isThisMonth.js -function isThisMonth(date, options) { - return isSameMonth( - constructFrom(options?.in || date, date), - constructNow(options?.in || date) - ); -} -var isThisMonth_default; -var init_isThisMonth = __esm({ - "node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/isThisMonth.js"() { - init_constructFrom(); - init_constructNow(); - init_isSameMonth(); - isThisMonth_default = isThisMonth; - } -}); - -// node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/isThisQuarter.js -function isThisQuarter(date, options) { - return isSameQuarter( - constructFrom(options?.in || date, date), - constructNow(options?.in || date) - ); -} -var isThisQuarter_default; -var init_isThisQuarter = __esm({ - "node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/isThisQuarter.js"() { - init_constructFrom(); - init_constructNow(); - init_isSameQuarter(); - isThisQuarter_default = isThisQuarter; - } -}); - -// node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/isThisSecond.js -function isThisSecond(date) { - return isSameSecond(date, constructNow(date)); -} -var isThisSecond_default; -var init_isThisSecond = __esm({ - "node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/isThisSecond.js"() { - init_constructNow(); - init_isSameSecond(); - isThisSecond_default = isThisSecond; - } -}); - -// node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/isThisWeek.js -function isThisWeek(date, options) { - return isSameWeek( - constructFrom(options?.in || date, date), - constructNow(options?.in || date), - options - ); -} -var isThisWeek_default; -var init_isThisWeek = __esm({ - "node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/isThisWeek.js"() { - init_constructFrom(); - init_constructNow(); - init_isSameWeek(); - isThisWeek_default = isThisWeek; - } -}); - -// node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/isThisYear.js -function isThisYear(date, options) { - return isSameYear( - constructFrom(options?.in || date, date), - constructNow(options?.in || date) - ); -} -var isThisYear_default; -var init_isThisYear = __esm({ - "node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/isThisYear.js"() { - init_constructFrom(); - init_constructNow(); - init_isSameYear(); - isThisYear_default = isThisYear; - } -}); - -// node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/isThursday.js -function isThursday(date, options) { - return toDate(date, options?.in).getDay() === 4; -} -var isThursday_default; -var init_isThursday = __esm({ - "node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/isThursday.js"() { - init_toDate(); - isThursday_default = isThursday; - } -}); - -// node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/isToday.js -function isToday(date, options) { - return isSameDay( - constructFrom(options?.in || date, date), - constructNow(options?.in || date) - ); -} -var isToday_default; -var init_isToday = __esm({ - "node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/isToday.js"() { - init_constructFrom(); - init_constructNow(); - init_isSameDay(); - isToday_default = isToday; - } -}); - -// node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/isTomorrow.js -function isTomorrow(date, options) { - return isSameDay( - date, - addDays(constructNow(options?.in || date), 1), - options - ); -} -var isTomorrow_default; -var init_isTomorrow = __esm({ - "node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/isTomorrow.js"() { - init_addDays(); - init_constructNow(); - init_isSameDay(); - isTomorrow_default = isTomorrow; - } -}); - -// node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/isTuesday.js -function isTuesday(date, options) { - return toDate(date, options?.in).getDay() === 2; -} -var isTuesday_default; -var init_isTuesday = __esm({ - "node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/isTuesday.js"() { - init_toDate(); - isTuesday_default = isTuesday; - } -}); - -// node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/isWednesday.js -function isWednesday(date, options) { - return toDate(date, options?.in).getDay() === 3; -} -var isWednesday_default; -var init_isWednesday = __esm({ - "node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/isWednesday.js"() { - init_toDate(); - isWednesday_default = isWednesday; - } -}); - -// node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/isWithinInterval.js -function isWithinInterval(date, interval3, options) { - const time = +toDate(date, options?.in); - const [startTime, endTime] = [ - +toDate(interval3.start, options?.in), - +toDate(interval3.end, options?.in) - ].sort((a5, b5) => a5 - b5); - return time >= startTime && time <= endTime; -} -var isWithinInterval_default; -var init_isWithinInterval = __esm({ - "node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/isWithinInterval.js"() { - init_toDate(); - isWithinInterval_default = isWithinInterval; - } -}); - -// node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/subDays.js -function subDays(date, amount, options) { - return addDays(date, -amount, options); -} -var subDays_default; -var init_subDays = __esm({ - "node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/subDays.js"() { - init_addDays(); - subDays_default = subDays; - } -}); - -// node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/isYesterday.js -function isYesterday(date, options) { - return isSameDay( - constructFrom(options?.in || date, date), - subDays(constructNow(options?.in || date), 1) - ); -} -var isYesterday_default; -var init_isYesterday = __esm({ - "node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/isYesterday.js"() { - init_constructFrom(); - init_constructNow(); - init_isSameDay(); - init_subDays(); - isYesterday_default = isYesterday; - } -}); - -// node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/lastDayOfDecade.js -function lastDayOfDecade(date, options) { - const _date = toDate(date, options?.in); - const year = _date.getFullYear(); - const decade = 9 + Math.floor(year / 10) * 10; - _date.setFullYear(decade + 1, 0, 0); - _date.setHours(0, 0, 0, 0); - return toDate(_date, options?.in); -} -var lastDayOfDecade_default; -var init_lastDayOfDecade = __esm({ - "node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/lastDayOfDecade.js"() { - init_toDate(); - lastDayOfDecade_default = lastDayOfDecade; - } -}); - -// node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/lastDayOfWeek.js -function lastDayOfWeek(date, options) { - const defaultOptions2 = getDefaultOptions(); - const weekStartsOn = options?.weekStartsOn ?? options?.locale?.options?.weekStartsOn ?? defaultOptions2.weekStartsOn ?? defaultOptions2.locale?.options?.weekStartsOn ?? 0; - const _date = toDate(date, options?.in); - const day = _date.getDay(); - const diff = (day < weekStartsOn ? -7 : 0) + 6 - (day - weekStartsOn); - _date.setHours(0, 0, 0, 0); - _date.setDate(_date.getDate() + diff); - return _date; -} -var lastDayOfWeek_default; -var init_lastDayOfWeek = __esm({ - "node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/lastDayOfWeek.js"() { - init_defaultOptions(); - init_toDate(); - lastDayOfWeek_default = lastDayOfWeek; - } -}); - -// node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/lastDayOfISOWeek.js -function lastDayOfISOWeek(date, options) { - return lastDayOfWeek(date, { ...options, weekStartsOn: 1 }); -} -var lastDayOfISOWeek_default; -var init_lastDayOfISOWeek = __esm({ - "node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/lastDayOfISOWeek.js"() { - init_lastDayOfWeek(); - lastDayOfISOWeek_default = lastDayOfISOWeek; - } -}); - -// node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/lastDayOfISOWeekYear.js -function lastDayOfISOWeekYear(date, options) { - const year = getISOWeekYear(date, options); - const fourthOfJanuary = constructFrom(options?.in || date, 0); - fourthOfJanuary.setFullYear(year + 1, 0, 4); - fourthOfJanuary.setHours(0, 0, 0, 0); - const date_ = startOfISOWeek(fourthOfJanuary, options); - date_.setDate(date_.getDate() - 1); - return date_; -} -var lastDayOfISOWeekYear_default; -var init_lastDayOfISOWeekYear = __esm({ - "node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/lastDayOfISOWeekYear.js"() { - init_constructFrom(); - init_getISOWeekYear(); - init_startOfISOWeek(); - lastDayOfISOWeekYear_default = lastDayOfISOWeekYear; - } -}); - -// node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/lastDayOfQuarter.js -function lastDayOfQuarter(date, options) { - const date_ = toDate(date, options?.in); - const currentMonth = date_.getMonth(); - const month = currentMonth - currentMonth % 3 + 3; - date_.setMonth(month, 0); - date_.setHours(0, 0, 0, 0); - return date_; -} -var lastDayOfQuarter_default; -var init_lastDayOfQuarter = __esm({ - "node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/lastDayOfQuarter.js"() { - init_toDate(); - lastDayOfQuarter_default = lastDayOfQuarter; - } -}); - -// node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/lastDayOfYear.js -function lastDayOfYear(date, options) { - const date_ = toDate(date, options?.in); - const year = date_.getFullYear(); - date_.setFullYear(year + 1, 0, 0); - date_.setHours(0, 0, 0, 0); - return date_; -} -var lastDayOfYear_default; -var init_lastDayOfYear = __esm({ - "node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/lastDayOfYear.js"() { - init_toDate(); - lastDayOfYear_default = lastDayOfYear; - } -}); - -// node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/lightFormat.js -function lightFormat(date, formatStr) { - const date_ = toDate(date); - if (!isValid(date_)) { - throw new RangeError("Invalid time value"); - } - const tokens = formatStr.match(formattingTokensRegExp3); - if (!tokens) return ""; - const result = tokens.map((substring) => { - if (substring === "''") { - return "'"; - } - const firstCharacter = substring[0]; - if (firstCharacter === "'") { - return cleanEscapedString3(substring); - } - const formatter2 = lightFormatters[firstCharacter]; - if (formatter2) { - return formatter2(date_, substring); - } - if (firstCharacter.match(unescapedLatinCharacterRegExp3)) { - throw new RangeError( - "Format string contains an unescaped latin alphabet character `" + firstCharacter + "`" - ); - } - return substring; - }).join(""); - return result; -} -function cleanEscapedString3(input) { - const matches = input.match(escapedStringRegExp3); - if (!matches) return input; - return matches[1].replace(doubleQuoteRegExp3, "'"); -} -var formattingTokensRegExp3, escapedStringRegExp3, doubleQuoteRegExp3, unescapedLatinCharacterRegExp3, lightFormat_default; -var init_lightFormat = __esm({ - "node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/lightFormat.js"() { - init_lightFormatters(); - init_isValid(); - init_toDate(); - formattingTokensRegExp3 = /(\w)\1*|''|'(''|[^'])+('|$)|./g; - escapedStringRegExp3 = /^'([^]*?)'?$/; - doubleQuoteRegExp3 = /''/g; - unescapedLatinCharacterRegExp3 = /[a-zA-Z]/; - lightFormat_default = lightFormat; - } -}); - -// node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/milliseconds.js -function milliseconds({ - years, - months: months2, - weeks, - days: days2, - hours, - minutes, - seconds -}) { - let totalDays = 0; - if (years) totalDays += years * daysInYear; - if (months2) totalDays += months2 * (daysInYear / 12); - if (weeks) totalDays += weeks * 7; - if (days2) totalDays += days2; - let totalSeconds = totalDays * 24 * 60 * 60; - if (hours) totalSeconds += hours * 60 * 60; - if (minutes) totalSeconds += minutes * 60; - if (seconds) totalSeconds += seconds; - return Math.trunc(totalSeconds * 1e3); -} -var milliseconds_default; -var init_milliseconds = __esm({ - "node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/milliseconds.js"() { - init_constants(); - milliseconds_default = milliseconds; - } -}); - -// node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/millisecondsToHours.js -function millisecondsToHours(milliseconds2) { - const hours = milliseconds2 / millisecondsInHour; - return Math.trunc(hours); -} -var millisecondsToHours_default; -var init_millisecondsToHours = __esm({ - "node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/millisecondsToHours.js"() { - init_constants(); - millisecondsToHours_default = millisecondsToHours; - } -}); - -// node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/millisecondsToMinutes.js -function millisecondsToMinutes(milliseconds2) { - const minutes = milliseconds2 / millisecondsInMinute; - return Math.trunc(minutes); -} -var millisecondsToMinutes_default; -var init_millisecondsToMinutes = __esm({ - "node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/millisecondsToMinutes.js"() { - init_constants(); - millisecondsToMinutes_default = millisecondsToMinutes; - } -}); - -// node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/millisecondsToSeconds.js -function millisecondsToSeconds(milliseconds2) { - const seconds = milliseconds2 / millisecondsInSecond; - return Math.trunc(seconds); -} -var millisecondsToSeconds_default; -var init_millisecondsToSeconds = __esm({ - "node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/millisecondsToSeconds.js"() { - init_constants(); - millisecondsToSeconds_default = millisecondsToSeconds; - } -}); - -// node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/minutesToHours.js -function minutesToHours(minutes) { - const hours = minutes / minutesInHour; - return Math.trunc(hours); -} -var minutesToHours_default; -var init_minutesToHours = __esm({ - "node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/minutesToHours.js"() { - init_constants(); - minutesToHours_default = minutesToHours; - } -}); - -// node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/minutesToMilliseconds.js -function minutesToMilliseconds(minutes) { - return Math.trunc(minutes * millisecondsInMinute); -} -var minutesToMilliseconds_default; -var init_minutesToMilliseconds = __esm({ - "node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/minutesToMilliseconds.js"() { - init_constants(); - minutesToMilliseconds_default = minutesToMilliseconds; - } -}); - -// node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/minutesToSeconds.js -function minutesToSeconds(minutes) { - return Math.trunc(minutes * secondsInMinute); -} -var minutesToSeconds_default; -var init_minutesToSeconds = __esm({ - "node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/minutesToSeconds.js"() { - init_constants(); - minutesToSeconds_default = minutesToSeconds; - } -}); - -// node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/monthsToQuarters.js -function monthsToQuarters(months2) { - const quarters = months2 / monthsInQuarter; - return Math.trunc(quarters); -} -var monthsToQuarters_default; -var init_monthsToQuarters = __esm({ - "node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/monthsToQuarters.js"() { - init_constants(); - monthsToQuarters_default = monthsToQuarters; - } -}); - -// node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/monthsToYears.js -function monthsToYears(months2) { - const years = months2 / monthsInYear; - return Math.trunc(years); -} -var monthsToYears_default; -var init_monthsToYears = __esm({ - "node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/monthsToYears.js"() { - init_constants(); - monthsToYears_default = monthsToYears; - } -}); - -// node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/nextDay.js -function nextDay(date, day, options) { - let delta = day - getDay(date, options); - if (delta <= 0) delta += 7; - return addDays(date, delta, options); -} -var nextDay_default; -var init_nextDay = __esm({ - "node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/nextDay.js"() { - init_addDays(); - init_getDay(); - nextDay_default = nextDay; - } -}); - -// node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/nextFriday.js -function nextFriday(date, options) { - return nextDay(date, 5, options); -} -var nextFriday_default; -var init_nextFriday = __esm({ - "node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/nextFriday.js"() { - init_nextDay(); - nextFriday_default = nextFriday; - } -}); - -// node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/nextMonday.js -function nextMonday(date, options) { - return nextDay(date, 1, options); -} -var nextMonday_default; -var init_nextMonday = __esm({ - "node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/nextMonday.js"() { - init_nextDay(); - nextMonday_default = nextMonday; - } -}); - -// node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/nextSaturday.js -function nextSaturday(date, options) { - return nextDay(date, 6, options); -} -var nextSaturday_default; -var init_nextSaturday = __esm({ - "node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/nextSaturday.js"() { - init_nextDay(); - nextSaturday_default = nextSaturday; - } -}); - -// node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/nextSunday.js -function nextSunday(date, options) { - return nextDay(date, 0, options); -} -var nextSunday_default; -var init_nextSunday = __esm({ - "node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/nextSunday.js"() { - init_nextDay(); - nextSunday_default = nextSunday; - } -}); - -// node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/nextThursday.js -function nextThursday(date, options) { - return nextDay(date, 4, options); -} -var nextThursday_default; -var init_nextThursday = __esm({ - "node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/nextThursday.js"() { - init_nextDay(); - nextThursday_default = nextThursday; - } -}); - -// node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/nextTuesday.js -function nextTuesday(date, options) { - return nextDay(date, 2, options); -} -var nextTuesday_default; -var init_nextTuesday = __esm({ - "node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/nextTuesday.js"() { - init_nextDay(); - nextTuesday_default = nextTuesday; - } -}); - -// node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/nextWednesday.js -function nextWednesday(date, options) { - return nextDay(date, 3, options); -} -var nextWednesday_default; -var init_nextWednesday = __esm({ - "node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/nextWednesday.js"() { - init_nextDay(); - nextWednesday_default = nextWednesday; - } -}); - -// node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/parseISO.js -function parseISO(argument, options) { - const invalidDate = () => constructFrom(options?.in, NaN); - const additionalDigits = options?.additionalDigits ?? 2; - const dateStrings = splitDateString(argument); - let date; - if (dateStrings.date) { - const parseYearResult = parseYear(dateStrings.date, additionalDigits); - date = parseDate(parseYearResult.restDateString, parseYearResult.year); - } - if (!date || isNaN(+date)) return invalidDate(); - const timestamp2 = +date; - let time = 0; - let offset; - if (dateStrings.time) { - time = parseTime(dateStrings.time); - if (isNaN(time)) return invalidDate(); - } - if (dateStrings.timezone) { - offset = parseTimezone(dateStrings.timezone); - if (isNaN(offset)) return invalidDate(); - } else { - const tmpDate = new Date(timestamp2 + time); - const result = toDate(0, options?.in); - result.setFullYear( - tmpDate.getUTCFullYear(), - tmpDate.getUTCMonth(), - tmpDate.getUTCDate() - ); - result.setHours( - tmpDate.getUTCHours(), - tmpDate.getUTCMinutes(), - tmpDate.getUTCSeconds(), - tmpDate.getUTCMilliseconds() - ); - return result; - } - return toDate(timestamp2 + time + offset, options?.in); -} -function splitDateString(dateString) { - const dateStrings = {}; - const array = dateString.split(patterns.dateTimeDelimiter); - let timeString; - if (array.length > 2) { - return dateStrings; - } - if (/:/.test(array[0])) { - timeString = array[0]; - } else { - dateStrings.date = array[0]; - timeString = array[1]; - if (patterns.timeZoneDelimiter.test(dateStrings.date)) { - dateStrings.date = dateString.split(patterns.timeZoneDelimiter)[0]; - timeString = dateString.substr( - dateStrings.date.length, - dateString.length - ); - } - } - if (timeString) { - const token = patterns.timezone.exec(timeString); - if (token) { - dateStrings.time = timeString.replace(token[1], ""); - dateStrings.timezone = token[1]; - } else { - dateStrings.time = timeString; - } - } - return dateStrings; -} -function parseYear(dateString, additionalDigits) { - const regex = new RegExp( - "^(?:(\\d{4}|[+-]\\d{" + (4 + additionalDigits) + "})|(\\d{2}|[+-]\\d{" + (2 + additionalDigits) + "})$)" - ); - const captures = dateString.match(regex); - if (!captures) return { year: NaN, restDateString: "" }; - const year = captures[1] ? parseInt(captures[1]) : null; - const century = captures[2] ? parseInt(captures[2]) : null; - return { - year: century === null ? year : century * 100, - restDateString: dateString.slice((captures[1] || captures[2]).length) - }; -} -function parseDate(dateString, year) { - if (year === null) return /* @__PURE__ */ new Date(NaN); - const captures = dateString.match(dateRegex); - if (!captures) return /* @__PURE__ */ new Date(NaN); - const isWeekDate = !!captures[4]; - const dayOfYear = parseDateUnit(captures[1]); - const month = parseDateUnit(captures[2]) - 1; - const day = parseDateUnit(captures[3]); - const week = parseDateUnit(captures[4]); - const dayOfWeek = parseDateUnit(captures[5]) - 1; - if (isWeekDate) { - if (!validateWeekDate(year, week, dayOfWeek)) { - return /* @__PURE__ */ new Date(NaN); - } - return dayOfISOWeekYear(year, week, dayOfWeek); - } else { - const date = /* @__PURE__ */ new Date(0); - if (!validateDate(year, month, day) || !validateDayOfYearDate(year, dayOfYear)) { - return /* @__PURE__ */ new Date(NaN); - } - date.setUTCFullYear(year, month, Math.max(dayOfYear, day)); - return date; - } -} -function parseDateUnit(value2) { - return value2 ? parseInt(value2) : 1; -} -function parseTime(timeString) { - const captures = timeString.match(timeRegex); - if (!captures) return NaN; - const hours = parseTimeUnit(captures[1]); - const minutes = parseTimeUnit(captures[2]); - const seconds = parseTimeUnit(captures[3]); - if (!validateTime(hours, minutes, seconds)) { - return NaN; - } - return hours * millisecondsInHour + minutes * millisecondsInMinute + seconds * 1e3; -} -function parseTimeUnit(value2) { - return value2 && parseFloat(value2.replace(",", ".")) || 0; -} -function parseTimezone(timezoneString) { - if (timezoneString === "Z") return 0; - const captures = timezoneString.match(timezoneRegex); - if (!captures) return 0; - const sign = captures[1] === "+" ? -1 : 1; - const hours = parseInt(captures[2]); - const minutes = captures[3] && parseInt(captures[3]) || 0; - if (!validateTimezone(hours, minutes)) { - return NaN; - } - return sign * (hours * millisecondsInHour + minutes * millisecondsInMinute); -} -function dayOfISOWeekYear(isoWeekYear, week, day) { - const date = /* @__PURE__ */ new Date(0); - date.setUTCFullYear(isoWeekYear, 0, 4); - const fourthOfJanuaryDay = date.getUTCDay() || 7; - const diff = (week - 1) * 7 + day + 1 - fourthOfJanuaryDay; - date.setUTCDate(date.getUTCDate() + diff); - return date; -} -function isLeapYearIndex2(year) { - return year % 400 === 0 || year % 4 === 0 && year % 100 !== 0; -} -function validateDate(year, month, date) { - return month >= 0 && month <= 11 && date >= 1 && date <= (daysInMonths[month] || (isLeapYearIndex2(year) ? 29 : 28)); -} -function validateDayOfYearDate(year, dayOfYear) { - return dayOfYear >= 1 && dayOfYear <= (isLeapYearIndex2(year) ? 366 : 365); -} -function validateWeekDate(_year, week, day) { - return week >= 1 && week <= 53 && day >= 0 && day <= 6; -} -function validateTime(hours, minutes, seconds) { - if (hours === 24) { - return minutes === 0 && seconds === 0; - } - return seconds >= 0 && seconds < 60 && minutes >= 0 && minutes < 60 && hours >= 0 && hours < 25; -} -function validateTimezone(_hours, minutes) { - return minutes >= 0 && minutes <= 59; -} -var patterns, dateRegex, timeRegex, timezoneRegex, daysInMonths, parseISO_default; -var init_parseISO = __esm({ - "node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/parseISO.js"() { - init_constants(); - init_constructFrom(); - init_toDate(); - patterns = { - dateTimeDelimiter: /[T ]/, - timeZoneDelimiter: /[Z ]/i, - timezone: /([Z+-].*)$/ - }; - dateRegex = /^-?(?:(\d{3})|(\d{2})(?:-?(\d{2}))?|W(\d{2})(?:-?(\d{1}))?|)$/; - timeRegex = /^(\d{2}(?:[.,]\d*)?)(?::?(\d{2}(?:[.,]\d*)?))?(?::?(\d{2}(?:[.,]\d*)?))?$/; - timezoneRegex = /^([+-])(\d{2})(?::?(\d{2}))?$/; - daysInMonths = [31, null, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31]; - parseISO_default = parseISO; - } -}); - -// node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/parseJSON.js -function parseJSON(dateStr, options) { - const parts = dateStr.match( - /(\d{4})-(\d{2})-(\d{2})[T ](\d{2}):(\d{2}):(\d{2})(?:\.(\d{0,7}))?(?:Z|(.)(\d{2}):?(\d{2})?)?/ - ); - if (!parts) return toDate(NaN, options?.in); - return toDate( - Date.UTC( - +parts[1], - +parts[2] - 1, - +parts[3], - +parts[4] - (+parts[9] || 0) * (parts[8] == "-" ? -1 : 1), - +parts[5] - (+parts[10] || 0) * (parts[8] == "-" ? -1 : 1), - +parts[6], - +((parts[7] || "0") + "00").substring(0, 3) - ), - options?.in - ); -} -var parseJSON_default; -var init_parseJSON = __esm({ - "node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/parseJSON.js"() { - init_toDate(); - parseJSON_default = parseJSON; - } -}); - -// node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/previousDay.js -function previousDay(date, day, options) { - let delta = getDay(date, options) - day; - if (delta <= 0) delta += 7; - return subDays(date, delta, options); -} -var previousDay_default; -var init_previousDay = __esm({ - "node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/previousDay.js"() { - init_getDay(); - init_subDays(); - previousDay_default = previousDay; - } -}); - -// node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/previousFriday.js -function previousFriday(date, options) { - return previousDay(date, 5, options); -} -var previousFriday_default; -var init_previousFriday = __esm({ - "node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/previousFriday.js"() { - init_previousDay(); - previousFriday_default = previousFriday; - } -}); - -// node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/previousMonday.js -function previousMonday(date, options) { - return previousDay(date, 1, options); -} -var previousMonday_default; -var init_previousMonday = __esm({ - "node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/previousMonday.js"() { - init_previousDay(); - previousMonday_default = previousMonday; - } -}); - -// node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/previousSaturday.js -function previousSaturday(date, options) { - return previousDay(date, 6, options); -} -var previousSaturday_default; -var init_previousSaturday = __esm({ - "node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/previousSaturday.js"() { - init_previousDay(); - previousSaturday_default = previousSaturday; - } -}); - -// node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/previousSunday.js -function previousSunday(date, options) { - return previousDay(date, 0, options); -} -var previousSunday_default; -var init_previousSunday = __esm({ - "node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/previousSunday.js"() { - init_previousDay(); - previousSunday_default = previousSunday; - } -}); - -// node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/previousThursday.js -function previousThursday(date, options) { - return previousDay(date, 4, options); -} -var previousThursday_default; -var init_previousThursday = __esm({ - "node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/previousThursday.js"() { - init_previousDay(); - previousThursday_default = previousThursday; - } -}); - -// node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/previousTuesday.js -function previousTuesday(date, options) { - return previousDay(date, 2, options); -} -var previousTuesday_default; -var init_previousTuesday = __esm({ - "node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/previousTuesday.js"() { - init_previousDay(); - previousTuesday_default = previousTuesday; - } -}); - -// node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/previousWednesday.js -function previousWednesday(date, options) { - return previousDay(date, 3, options); -} -var previousWednesday_default; -var init_previousWednesday = __esm({ - "node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/previousWednesday.js"() { - init_previousDay(); - previousWednesday_default = previousWednesday; - } -}); - -// node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/quartersToMonths.js -function quartersToMonths(quarters) { - return Math.trunc(quarters * monthsInQuarter); -} -var quartersToMonths_default; -var init_quartersToMonths = __esm({ - "node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/quartersToMonths.js"() { - init_constants(); - quartersToMonths_default = quartersToMonths; - } -}); - -// node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/quartersToYears.js -function quartersToYears(quarters) { - const years = quarters / quartersInYear; - return Math.trunc(years); -} -var quartersToYears_default; -var init_quartersToYears = __esm({ - "node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/quartersToYears.js"() { - init_constants(); - quartersToYears_default = quartersToYears; - } -}); - -// node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/roundToNearestHours.js -function roundToNearestHours(date, options) { - const nearestTo = options?.nearestTo ?? 1; - if (nearestTo < 1 || nearestTo > 12) - return constructFrom(options?.in || date, NaN); - const date_ = toDate(date, options?.in); - const fractionalMinutes = date_.getMinutes() / 60; - const fractionalSeconds = date_.getSeconds() / 60 / 60; - const fractionalMilliseconds = date_.getMilliseconds() / 1e3 / 60 / 60; - const hours = date_.getHours() + fractionalMinutes + fractionalSeconds + fractionalMilliseconds; - const method = options?.roundingMethod ?? "round"; - const roundingMethod = getRoundingMethod(method); - const roundedHours = roundingMethod(hours / nearestTo) * nearestTo; - date_.setHours(roundedHours, 0, 0, 0); - return date_; -} -var roundToNearestHours_default; -var init_roundToNearestHours = __esm({ - "node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/roundToNearestHours.js"() { - init_getRoundingMethod(); - init_constructFrom(); - init_toDate(); - roundToNearestHours_default = roundToNearestHours; - } -}); - -// node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/roundToNearestMinutes.js -function roundToNearestMinutes(date, options) { - const nearestTo = options?.nearestTo ?? 1; - if (nearestTo < 1 || nearestTo > 30) return constructFrom(date, NaN); - const date_ = toDate(date, options?.in); - const fractionalSeconds = date_.getSeconds() / 60; - const fractionalMilliseconds = date_.getMilliseconds() / 1e3 / 60; - const minutes = date_.getMinutes() + fractionalSeconds + fractionalMilliseconds; - const method = options?.roundingMethod ?? "round"; - const roundingMethod = getRoundingMethod(method); - const roundedMinutes = roundingMethod(minutes / nearestTo) * nearestTo; - date_.setMinutes(roundedMinutes, 0, 0); - return date_; -} -var roundToNearestMinutes_default; -var init_roundToNearestMinutes = __esm({ - "node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/roundToNearestMinutes.js"() { - init_getRoundingMethod(); - init_constructFrom(); - init_toDate(); - roundToNearestMinutes_default = roundToNearestMinutes; - } -}); - -// node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/secondsToHours.js -function secondsToHours(seconds) { - const hours = seconds / secondsInHour; - return Math.trunc(hours); -} -var secondsToHours_default; -var init_secondsToHours = __esm({ - "node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/secondsToHours.js"() { - init_constants(); - secondsToHours_default = secondsToHours; - } -}); - -// node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/secondsToMilliseconds.js -function secondsToMilliseconds(seconds) { - return seconds * millisecondsInSecond; -} -var secondsToMilliseconds_default; -var init_secondsToMilliseconds = __esm({ - "node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/secondsToMilliseconds.js"() { - init_constants(); - secondsToMilliseconds_default = secondsToMilliseconds; - } -}); - -// node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/secondsToMinutes.js -function secondsToMinutes(seconds) { - const minutes = seconds / secondsInMinute; - return Math.trunc(minutes); -} -var secondsToMinutes_default; -var init_secondsToMinutes = __esm({ - "node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/secondsToMinutes.js"() { - init_constants(); - secondsToMinutes_default = secondsToMinutes; - } -}); - -// node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/setMonth.js -function setMonth(date, month, options) { - const _date = toDate(date, options?.in); - const year = _date.getFullYear(); - const day = _date.getDate(); - const midMonth = constructFrom(options?.in || date, 0); - midMonth.setFullYear(year, month, 15); - midMonth.setHours(0, 0, 0, 0); - const daysInMonth = getDaysInMonth(midMonth); - _date.setMonth(month, Math.min(day, daysInMonth)); - return _date; -} -var setMonth_default; -var init_setMonth = __esm({ - "node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/setMonth.js"() { - init_constructFrom(); - init_getDaysInMonth(); - init_toDate(); - setMonth_default = setMonth; - } -}); - -// node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/set.js -function set(date, values, options) { - let _date = toDate(date, options?.in); - if (isNaN(+_date)) return constructFrom(options?.in || date, NaN); - if (values.year != null) _date.setFullYear(values.year); - if (values.month != null) _date = setMonth(_date, values.month); - if (values.date != null) _date.setDate(values.date); - if (values.hours != null) _date.setHours(values.hours); - if (values.minutes != null) _date.setMinutes(values.minutes); - if (values.seconds != null) _date.setSeconds(values.seconds); - if (values.milliseconds != null) _date.setMilliseconds(values.milliseconds); - return _date; -} -var set_default; -var init_set = __esm({ - "node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/set.js"() { - init_constructFrom(); - init_setMonth(); - init_toDate(); - set_default = set; - } -}); - -// node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/setDate.js -function setDate(date, dayOfMonth, options) { - const _date = toDate(date, options?.in); - _date.setDate(dayOfMonth); - return _date; -} -var setDate_default; -var init_setDate = __esm({ - "node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/setDate.js"() { - init_toDate(); - setDate_default = setDate; - } -}); - -// node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/setDayOfYear.js -function setDayOfYear(date, dayOfYear, options) { - const date_ = toDate(date, options?.in); - date_.setMonth(0); - date_.setDate(dayOfYear); - return date_; -} -var setDayOfYear_default; -var init_setDayOfYear = __esm({ - "node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/setDayOfYear.js"() { - init_toDate(); - setDayOfYear_default = setDayOfYear; - } -}); - -// node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/setDefaultOptions.js -function setDefaultOptions2(options) { - const result = {}; - const defaultOptions2 = getDefaultOptions(); - for (const property in defaultOptions2) { - if (Object.prototype.hasOwnProperty.call(defaultOptions2, property)) { - result[property] = defaultOptions2[property]; - } - } - for (const property in options) { - if (Object.prototype.hasOwnProperty.call(options, property)) { - if (options[property] === void 0) { - delete result[property]; - } else { - result[property] = options[property]; - } - } - } - setDefaultOptions(result); -} -var setDefaultOptions_default; -var init_setDefaultOptions = __esm({ - "node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/setDefaultOptions.js"() { - init_defaultOptions(); - setDefaultOptions_default = setDefaultOptions2; - } -}); - -// node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/setHours.js -function setHours(date, hours, options) { - const _date = toDate(date, options?.in); - _date.setHours(hours); - return _date; -} -var setHours_default; -var init_setHours = __esm({ - "node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/setHours.js"() { - init_toDate(); - setHours_default = setHours; - } -}); - -// node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/setMilliseconds.js -function setMilliseconds(date, milliseconds2, options) { - const _date = toDate(date, options?.in); - _date.setMilliseconds(milliseconds2); - return _date; -} -var setMilliseconds_default; -var init_setMilliseconds = __esm({ - "node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/setMilliseconds.js"() { - init_toDate(); - setMilliseconds_default = setMilliseconds; - } -}); - -// node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/setMinutes.js -function setMinutes(date, minutes, options) { - const date_ = toDate(date, options?.in); - date_.setMinutes(minutes); - return date_; -} -var setMinutes_default; -var init_setMinutes = __esm({ - "node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/setMinutes.js"() { - init_toDate(); - setMinutes_default = setMinutes; - } -}); - -// node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/setQuarter.js -function setQuarter(date, quarter, options) { - const date_ = toDate(date, options?.in); - const oldQuarter = Math.trunc(date_.getMonth() / 3) + 1; - const diff = quarter - oldQuarter; - return setMonth(date_, date_.getMonth() + diff * 3); -} -var setQuarter_default; -var init_setQuarter = __esm({ - "node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/setQuarter.js"() { - init_setMonth(); - init_toDate(); - setQuarter_default = setQuarter; - } -}); - -// node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/setSeconds.js -function setSeconds(date, seconds, options) { - const _date = toDate(date, options?.in); - _date.setSeconds(seconds); - return _date; -} -var setSeconds_default; -var init_setSeconds = __esm({ - "node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/setSeconds.js"() { - init_toDate(); - setSeconds_default = setSeconds; - } -}); - -// node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/setWeekYear.js -function setWeekYear(date, weekYear, options) { - const defaultOptions2 = getDefaultOptions(); - const firstWeekContainsDate = options?.firstWeekContainsDate ?? options?.locale?.options?.firstWeekContainsDate ?? defaultOptions2.firstWeekContainsDate ?? defaultOptions2.locale?.options?.firstWeekContainsDate ?? 1; - const diff = differenceInCalendarDays( - toDate(date, options?.in), - startOfWeekYear(date, options), - options - ); - const firstWeek = constructFrom(options?.in || date, 0); - firstWeek.setFullYear(weekYear, 0, firstWeekContainsDate); - firstWeek.setHours(0, 0, 0, 0); - const date_ = startOfWeekYear(firstWeek, options); - date_.setDate(date_.getDate() + diff); - return date_; -} -var setWeekYear_default; -var init_setWeekYear = __esm({ - "node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/setWeekYear.js"() { - init_defaultOptions(); - init_constructFrom(); - init_differenceInCalendarDays(); - init_startOfWeekYear(); - init_toDate(); - setWeekYear_default = setWeekYear; - } -}); - -// node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/setYear.js -function setYear(date, year, options) { - const date_ = toDate(date, options?.in); - if (isNaN(+date_)) return constructFrom(options?.in || date, NaN); - date_.setFullYear(year); - return date_; -} -var setYear_default; -var init_setYear = __esm({ - "node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/setYear.js"() { - init_constructFrom(); - init_toDate(); - setYear_default = setYear; - } -}); - -// node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/startOfDecade.js -function startOfDecade(date, options) { - const _date = toDate(date, options?.in); - const year = _date.getFullYear(); - const decade = Math.floor(year / 10) * 10; - _date.setFullYear(decade, 0, 1); - _date.setHours(0, 0, 0, 0); - return _date; -} -var startOfDecade_default; -var init_startOfDecade = __esm({ - "node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/startOfDecade.js"() { - init_toDate(); - startOfDecade_default = startOfDecade; - } -}); - -// node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/startOfToday.js -function startOfToday(options) { - return startOfDay(Date.now(), options); -} -var startOfToday_default; -var init_startOfToday = __esm({ - "node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/startOfToday.js"() { - init_startOfDay(); - startOfToday_default = startOfToday; - } -}); - -// node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/startOfTomorrow.js -function startOfTomorrow(options) { - const now2 = constructNow(options?.in); - const year = now2.getFullYear(); - const month = now2.getMonth(); - const day = now2.getDate(); - const date = constructFrom(options?.in, 0); - date.setFullYear(year, month, day + 1); - date.setHours(0, 0, 0, 0); - return date; -} -var startOfTomorrow_default; -var init_startOfTomorrow = __esm({ - "node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/startOfTomorrow.js"() { - init_constructFrom(); - init_constructNow(); - startOfTomorrow_default = startOfTomorrow; - } -}); - -// node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/startOfYesterday.js -function startOfYesterday(options) { - const now2 = constructNow(options?.in); - const year = now2.getFullYear(); - const month = now2.getMonth(); - const day = now2.getDate(); - const date = constructNow(options?.in); - date.setFullYear(year, month, day - 1); - date.setHours(0, 0, 0, 0); - return date; -} -var startOfYesterday_default; -var init_startOfYesterday = __esm({ - "node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/startOfYesterday.js"() { - init_constructNow(); - startOfYesterday_default = startOfYesterday; - } -}); - -// node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/subMonths.js -function subMonths(date, amount, options) { - return addMonths(date, -amount, options); -} -var subMonths_default; -var init_subMonths = __esm({ - "node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/subMonths.js"() { - init_addMonths(); - subMonths_default = subMonths; - } -}); - -// node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/sub.js -function sub(date, duration, options) { - const { - years = 0, - months: months2 = 0, - weeks = 0, - days: days2 = 0, - hours = 0, - minutes = 0, - seconds = 0 - } = duration; - const withoutMonths = subMonths(date, months2 + years * 12, options); - const withoutDays = subDays(withoutMonths, days2 + weeks * 7, options); - const minutesToSub = minutes + hours * 60; - const secondsToSub = seconds + minutesToSub * 60; - const msToSub = secondsToSub * 1e3; - return constructFrom(options?.in || date, +withoutDays - msToSub); -} -var sub_default; -var init_sub = __esm({ - "node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/sub.js"() { - init_constructFrom(); - init_subDays(); - init_subMonths(); - sub_default = sub; - } -}); - -// node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/subBusinessDays.js -function subBusinessDays(date, amount, options) { - return addBusinessDays(date, -amount, options); -} -var subBusinessDays_default; -var init_subBusinessDays = __esm({ - "node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/subBusinessDays.js"() { - init_addBusinessDays(); - subBusinessDays_default = subBusinessDays; - } -}); - -// node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/subHours.js -function subHours(date, amount, options) { - return addHours(date, -amount, options); -} -var subHours_default; -var init_subHours = __esm({ - "node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/subHours.js"() { - init_addHours(); - subHours_default = subHours; - } -}); - -// node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/subMilliseconds.js -function subMilliseconds(date, amount, options) { - return addMilliseconds(date, -amount, options); -} -var subMilliseconds_default; -var init_subMilliseconds = __esm({ - "node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/subMilliseconds.js"() { - init_addMilliseconds(); - subMilliseconds_default = subMilliseconds; - } -}); - -// node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/subMinutes.js -function subMinutes(date, amount, options) { - return addMinutes(date, -amount, options); -} -var subMinutes_default; -var init_subMinutes = __esm({ - "node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/subMinutes.js"() { - init_addMinutes(); - subMinutes_default = subMinutes; - } -}); - -// node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/subQuarters.js -function subQuarters(date, amount, options) { - return addQuarters(date, -amount, options); -} -var subQuarters_default; -var init_subQuarters = __esm({ - "node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/subQuarters.js"() { - init_addQuarters(); - subQuarters_default = subQuarters; - } -}); - -// node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/subSeconds.js -function subSeconds(date, amount, options) { - return addSeconds(date, -amount, options); -} -var subSeconds_default; -var init_subSeconds = __esm({ - "node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/subSeconds.js"() { - init_addSeconds(); - subSeconds_default = subSeconds; - } -}); - -// node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/subWeeks.js -function subWeeks(date, amount, options) { - return addWeeks(date, -amount, options); -} -var subWeeks_default; -var init_subWeeks = __esm({ - "node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/subWeeks.js"() { - init_addWeeks(); - subWeeks_default = subWeeks; - } -}); - -// node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/subYears.js -function subYears(date, amount, options) { - return addYears(date, -amount, options); -} -var subYears_default; -var init_subYears = __esm({ - "node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/subYears.js"() { - init_addYears(); - subYears_default = subYears; - } -}); - -// node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/weeksToDays.js -function weeksToDays(weeks) { - return Math.trunc(weeks * daysInWeek); -} -var weeksToDays_default; -var init_weeksToDays = __esm({ - "node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/weeksToDays.js"() { - init_constants(); - weeksToDays_default = weeksToDays; - } -}); - -// node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/yearsToDays.js -function yearsToDays(years) { - return Math.trunc(years * daysInYear); -} -var yearsToDays_default; -var init_yearsToDays = __esm({ - "node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/yearsToDays.js"() { - init_constants(); - yearsToDays_default = yearsToDays; - } -}); - -// node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/yearsToMonths.js -function yearsToMonths(years) { - return Math.trunc(years * monthsInYear); -} -var yearsToMonths_default; -var init_yearsToMonths = __esm({ - "node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/yearsToMonths.js"() { - init_constants(); - yearsToMonths_default = yearsToMonths; - } -}); - -// node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/yearsToQuarters.js -function yearsToQuarters(years) { - return Math.trunc(years * quartersInYear); -} -var yearsToQuarters_default; -var init_yearsToQuarters = __esm({ - "node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/yearsToQuarters.js"() { - init_constants(); - yearsToQuarters_default = yearsToQuarters; - } -}); - -// node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/index.js -var date_fns_exports = {}; -__export(date_fns_exports, { - add: () => add, - addBusinessDays: () => addBusinessDays, - addDays: () => addDays, - addHours: () => addHours, - addISOWeekYears: () => addISOWeekYears, - addMilliseconds: () => addMilliseconds, - addMinutes: () => addMinutes, - addMonths: () => addMonths, - addQuarters: () => addQuarters, - addSeconds: () => addSeconds, - addWeeks: () => addWeeks, - addYears: () => addYears, - areIntervalsOverlapping: () => areIntervalsOverlapping, - clamp: () => clamp, - closestIndexTo: () => closestIndexTo, - closestTo: () => closestTo, - compareAsc: () => compareAsc, - compareDesc: () => compareDesc, - constructFrom: () => constructFrom, - constructNow: () => constructNow, - daysToWeeks: () => daysToWeeks, - differenceInBusinessDays: () => differenceInBusinessDays, - differenceInCalendarDays: () => differenceInCalendarDays, - differenceInCalendarISOWeekYears: () => differenceInCalendarISOWeekYears, - differenceInCalendarISOWeeks: () => differenceInCalendarISOWeeks, - differenceInCalendarMonths: () => differenceInCalendarMonths, - differenceInCalendarQuarters: () => differenceInCalendarQuarters, - differenceInCalendarWeeks: () => differenceInCalendarWeeks, - differenceInCalendarYears: () => differenceInCalendarYears, - differenceInDays: () => differenceInDays, - differenceInHours: () => differenceInHours, - differenceInISOWeekYears: () => differenceInISOWeekYears, - differenceInMilliseconds: () => differenceInMilliseconds, - differenceInMinutes: () => differenceInMinutes, - differenceInMonths: () => differenceInMonths, - differenceInQuarters: () => differenceInQuarters, - differenceInSeconds: () => differenceInSeconds, - differenceInWeeks: () => differenceInWeeks, - differenceInYears: () => differenceInYears, - eachDayOfInterval: () => eachDayOfInterval, - eachHourOfInterval: () => eachHourOfInterval, - eachMinuteOfInterval: () => eachMinuteOfInterval, - eachMonthOfInterval: () => eachMonthOfInterval, - eachQuarterOfInterval: () => eachQuarterOfInterval, - eachWeekOfInterval: () => eachWeekOfInterval, - eachWeekendOfInterval: () => eachWeekendOfInterval, - eachWeekendOfMonth: () => eachWeekendOfMonth, - eachWeekendOfYear: () => eachWeekendOfYear, - eachYearOfInterval: () => eachYearOfInterval, - endOfDay: () => endOfDay, - endOfDecade: () => endOfDecade, - endOfHour: () => endOfHour, - endOfISOWeek: () => endOfISOWeek, - endOfISOWeekYear: () => endOfISOWeekYear, - endOfMinute: () => endOfMinute, - endOfMonth: () => endOfMonth, - endOfQuarter: () => endOfQuarter, - endOfSecond: () => endOfSecond, - endOfToday: () => endOfToday, - endOfTomorrow: () => endOfTomorrow, - endOfWeek: () => endOfWeek, - endOfYear: () => endOfYear, - endOfYesterday: () => endOfYesterday, - format: () => format, - formatDate: () => format, - formatDistance: () => formatDistance2, - formatDistanceStrict: () => formatDistanceStrict, - formatDistanceToNow: () => formatDistanceToNow, - formatDistanceToNowStrict: () => formatDistanceToNowStrict, - formatDuration: () => formatDuration, - formatISO: () => formatISO, - formatISO9075: () => formatISO9075, - formatISODuration: () => formatISODuration, - formatRFC3339: () => formatRFC3339, - formatRFC7231: () => formatRFC7231, - formatRelative: () => formatRelative2, - formatters: () => formatters, - fromUnixTime: () => fromUnixTime, - getDate: () => getDate, - getDay: () => getDay, - getDayOfYear: () => getDayOfYear, - getDaysInMonth: () => getDaysInMonth, - getDaysInYear: () => getDaysInYear, - getDecade: () => getDecade, - getDefaultOptions: () => getDefaultOptions2, - getHours: () => getHours, - getISODay: () => getISODay, - getISOWeek: () => getISOWeek, - getISOWeekYear: () => getISOWeekYear, - getISOWeeksInYear: () => getISOWeeksInYear, - getMilliseconds: () => getMilliseconds, - getMinutes: () => getMinutes, - getMonth: () => getMonth, - getOverlappingDaysInIntervals: () => getOverlappingDaysInIntervals, - getQuarter: () => getQuarter, - getSeconds: () => getSeconds, - getTime: () => getTime, - getUnixTime: () => getUnixTime, - getWeek: () => getWeek, - getWeekOfMonth: () => getWeekOfMonth, - getWeekYear: () => getWeekYear, - getWeeksInMonth: () => getWeeksInMonth, - getYear: () => getYear, - hoursToMilliseconds: () => hoursToMilliseconds, - hoursToMinutes: () => hoursToMinutes, - hoursToSeconds: () => hoursToSeconds, - interval: () => interval2, - intervalToDuration: () => intervalToDuration, - intlFormat: () => intlFormat, - intlFormatDistance: () => intlFormatDistance, - isAfter: () => isAfter, - isBefore: () => isBefore, - isDate: () => isDate, - isEqual: () => isEqual, - isExists: () => isExists, - isFirstDayOfMonth: () => isFirstDayOfMonth, - isFriday: () => isFriday, - isFuture: () => isFuture, - isLastDayOfMonth: () => isLastDayOfMonth, - isLeapYear: () => isLeapYear, - isMatch: () => isMatch2, - isMonday: () => isMonday, - isPast: () => isPast, - isSameDay: () => isSameDay, - isSameHour: () => isSameHour, - isSameISOWeek: () => isSameISOWeek, - isSameISOWeekYear: () => isSameISOWeekYear, - isSameMinute: () => isSameMinute, - isSameMonth: () => isSameMonth, - isSameQuarter: () => isSameQuarter, - isSameSecond: () => isSameSecond, - isSameWeek: () => isSameWeek, - isSameYear: () => isSameYear, - isSaturday: () => isSaturday, - isSunday: () => isSunday, - isThisHour: () => isThisHour, - isThisISOWeek: () => isThisISOWeek, - isThisMinute: () => isThisMinute, - isThisMonth: () => isThisMonth, - isThisQuarter: () => isThisQuarter, - isThisSecond: () => isThisSecond, - isThisWeek: () => isThisWeek, - isThisYear: () => isThisYear, - isThursday: () => isThursday, - isToday: () => isToday, - isTomorrow: () => isTomorrow, - isTuesday: () => isTuesday, - isValid: () => isValid, - isWednesday: () => isWednesday, - isWeekend: () => isWeekend, - isWithinInterval: () => isWithinInterval, - isYesterday: () => isYesterday, - lastDayOfDecade: () => lastDayOfDecade, - lastDayOfISOWeek: () => lastDayOfISOWeek, - lastDayOfISOWeekYear: () => lastDayOfISOWeekYear, - lastDayOfMonth: () => lastDayOfMonth, - lastDayOfQuarter: () => lastDayOfQuarter, - lastDayOfWeek: () => lastDayOfWeek, - lastDayOfYear: () => lastDayOfYear, - lightFormat: () => lightFormat, - lightFormatters: () => lightFormatters, - longFormatters: () => longFormatters, - max: () => max2, - milliseconds: () => milliseconds, - millisecondsToHours: () => millisecondsToHours, - millisecondsToMinutes: () => millisecondsToMinutes, - millisecondsToSeconds: () => millisecondsToSeconds, - min: () => min2, - minutesToHours: () => minutesToHours, - minutesToMilliseconds: () => minutesToMilliseconds, - minutesToSeconds: () => minutesToSeconds, - monthsToQuarters: () => monthsToQuarters, - monthsToYears: () => monthsToYears, - nextDay: () => nextDay, - nextFriday: () => nextFriday, - nextMonday: () => nextMonday, - nextSaturday: () => nextSaturday, - nextSunday: () => nextSunday, - nextThursday: () => nextThursday, - nextTuesday: () => nextTuesday, - nextWednesday: () => nextWednesday, - parse: () => parse, - parseISO: () => parseISO, - parseJSON: () => parseJSON, - parsers: () => parsers, - previousDay: () => previousDay, - previousFriday: () => previousFriday, - previousMonday: () => previousMonday, - previousSaturday: () => previousSaturday, - previousSunday: () => previousSunday, - previousThursday: () => previousThursday, - previousTuesday: () => previousTuesday, - previousWednesday: () => previousWednesday, - quartersToMonths: () => quartersToMonths, - quartersToYears: () => quartersToYears, - roundToNearestHours: () => roundToNearestHours, - roundToNearestMinutes: () => roundToNearestMinutes, - secondsToHours: () => secondsToHours, - secondsToMilliseconds: () => secondsToMilliseconds, - secondsToMinutes: () => secondsToMinutes, - set: () => set, - setDate: () => setDate, - setDay: () => setDay, - setDayOfYear: () => setDayOfYear, - setDefaultOptions: () => setDefaultOptions2, - setHours: () => setHours, - setISODay: () => setISODay, - setISOWeek: () => setISOWeek, - setISOWeekYear: () => setISOWeekYear, - setMilliseconds: () => setMilliseconds, - setMinutes: () => setMinutes, - setMonth: () => setMonth, - setQuarter: () => setQuarter, - setSeconds: () => setSeconds, - setWeek: () => setWeek, - setWeekYear: () => setWeekYear, - setYear: () => setYear, - startOfDay: () => startOfDay, - startOfDecade: () => startOfDecade, - startOfHour: () => startOfHour, - startOfISOWeek: () => startOfISOWeek, - startOfISOWeekYear: () => startOfISOWeekYear, - startOfMinute: () => startOfMinute, - startOfMonth: () => startOfMonth, - startOfQuarter: () => startOfQuarter, - startOfSecond: () => startOfSecond, - startOfToday: () => startOfToday, - startOfTomorrow: () => startOfTomorrow, - startOfWeek: () => startOfWeek, - startOfWeekYear: () => startOfWeekYear, - startOfYear: () => startOfYear, - startOfYesterday: () => startOfYesterday, - sub: () => sub, - subBusinessDays: () => subBusinessDays, - subDays: () => subDays, - subHours: () => subHours, - subISOWeekYears: () => subISOWeekYears, - subMilliseconds: () => subMilliseconds, - subMinutes: () => subMinutes, - subMonths: () => subMonths, - subQuarters: () => subQuarters, - subSeconds: () => subSeconds, - subWeeks: () => subWeeks, - subYears: () => subYears, - toDate: () => toDate, - transpose: () => transpose, - weeksToDays: () => weeksToDays, - yearsToDays: () => yearsToDays, - yearsToMonths: () => yearsToMonths, - yearsToQuarters: () => yearsToQuarters -}); -var init_date_fns = __esm({ - "node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/index.js"() { - init_add(); - init_addBusinessDays(); - init_addDays(); - init_addHours(); - init_addISOWeekYears(); - init_addMilliseconds(); - init_addMinutes(); - init_addMonths(); - init_addQuarters(); - init_addSeconds(); - init_addWeeks(); - init_addYears(); - init_areIntervalsOverlapping(); - init_clamp(); - init_closestIndexTo(); - init_closestTo(); - init_compareAsc(); - init_compareDesc(); - init_constructFrom(); - init_constructNow(); - init_daysToWeeks(); - init_differenceInBusinessDays(); - init_differenceInCalendarDays(); - init_differenceInCalendarISOWeekYears(); - init_differenceInCalendarISOWeeks(); - init_differenceInCalendarMonths(); - init_differenceInCalendarQuarters(); - init_differenceInCalendarWeeks(); - init_differenceInCalendarYears(); - init_differenceInDays(); - init_differenceInHours(); - init_differenceInISOWeekYears(); - init_differenceInMilliseconds(); - init_differenceInMinutes(); - init_differenceInMonths(); - init_differenceInQuarters(); - init_differenceInSeconds(); - init_differenceInWeeks(); - init_differenceInYears(); - init_eachDayOfInterval(); - init_eachHourOfInterval(); - init_eachMinuteOfInterval(); - init_eachMonthOfInterval(); - init_eachQuarterOfInterval(); - init_eachWeekOfInterval(); - init_eachWeekendOfInterval(); - init_eachWeekendOfMonth(); - init_eachWeekendOfYear(); - init_eachYearOfInterval(); - init_endOfDay(); - init_endOfDecade(); - init_endOfHour(); - init_endOfISOWeek(); - init_endOfISOWeekYear(); - init_endOfMinute(); - init_endOfMonth(); - init_endOfQuarter(); - init_endOfSecond(); - init_endOfToday(); - init_endOfTomorrow(); - init_endOfWeek(); - init_endOfYear(); - init_endOfYesterday(); - init_format(); - init_formatDistance2(); - init_formatDistanceStrict(); - init_formatDistanceToNow(); - init_formatDistanceToNowStrict(); - init_formatDuration(); - init_formatISO(); - init_formatISO9075(); - init_formatISODuration(); - init_formatRFC3339(); - init_formatRFC7231(); - init_formatRelative2(); - init_fromUnixTime(); - init_getDate(); - init_getDay(); - init_getDayOfYear(); - init_getDaysInMonth(); - init_getDaysInYear(); - init_getDecade(); - init_getDefaultOptions(); - init_getHours(); - init_getISODay(); - init_getISOWeek(); - init_getISOWeekYear(); - init_getISOWeeksInYear(); - init_getMilliseconds(); - init_getMinutes(); - init_getMonth(); - init_getOverlappingDaysInIntervals(); - init_getQuarter(); - init_getSeconds(); - init_getTime(); - init_getUnixTime(); - init_getWeek(); - init_getWeekOfMonth(); - init_getWeekYear(); - init_getWeeksInMonth(); - init_getYear(); - init_hoursToMilliseconds(); - init_hoursToMinutes(); - init_hoursToSeconds(); - init_interval2(); - init_intervalToDuration(); - init_intlFormat(); - init_intlFormatDistance(); - init_isAfter(); - init_isBefore(); - init_isDate2(); - init_isEqual(); - init_isExists(); - init_isFirstDayOfMonth(); - init_isFriday(); - init_isFuture(); - init_isLastDayOfMonth(); - init_isLeapYear(); - init_isMatch(); - init_isMonday(); - init_isPast(); - init_isSameDay(); - init_isSameHour(); - init_isSameISOWeek(); - init_isSameISOWeekYear(); - init_isSameMinute(); - init_isSameMonth(); - init_isSameQuarter(); - init_isSameSecond(); - init_isSameWeek(); - init_isSameYear(); - init_isSaturday(); - init_isSunday(); - init_isThisHour(); - init_isThisISOWeek(); - init_isThisMinute(); - init_isThisMonth(); - init_isThisQuarter(); - init_isThisSecond(); - init_isThisWeek(); - init_isThisYear(); - init_isThursday(); - init_isToday(); - init_isTomorrow(); - init_isTuesday(); - init_isValid(); - init_isWednesday(); - init_isWeekend(); - init_isWithinInterval(); - init_isYesterday(); - init_lastDayOfDecade(); - init_lastDayOfISOWeek(); - init_lastDayOfISOWeekYear(); - init_lastDayOfMonth(); - init_lastDayOfQuarter(); - init_lastDayOfWeek(); - init_lastDayOfYear(); - init_lightFormat(); - init_max2(); - init_milliseconds(); - init_millisecondsToHours(); - init_millisecondsToMinutes(); - init_millisecondsToSeconds(); - init_min2(); - init_minutesToHours(); - init_minutesToMilliseconds(); - init_minutesToSeconds(); - init_monthsToQuarters(); - init_monthsToYears(); - init_nextDay(); - init_nextFriday(); - init_nextMonday(); - init_nextSaturday(); - init_nextSunday(); - init_nextThursday(); - init_nextTuesday(); - init_nextWednesday(); - init_parse(); - init_parseISO(); - init_parseJSON(); - init_previousDay(); - init_previousFriday(); - init_previousMonday(); - init_previousSaturday(); - init_previousSunday(); - init_previousThursday(); - init_previousTuesday(); - init_previousWednesday(); - init_quartersToMonths(); - init_quartersToYears(); - init_roundToNearestHours(); - init_roundToNearestMinutes(); - init_secondsToHours(); - init_secondsToMilliseconds(); - init_secondsToMinutes(); - init_set(); - init_setDate(); - init_setDay(); - init_setDayOfYear(); - init_setDefaultOptions(); - init_setHours(); - init_setISODay(); - init_setISOWeek(); - init_setISOWeekYear(); - init_setMilliseconds(); - init_setMinutes(); - init_setMonth(); - init_setQuarter(); - init_setSeconds(); - init_setWeek(); - init_setWeekYear(); - init_setYear(); - init_startOfDay(); - init_startOfDecade(); - init_startOfHour(); - init_startOfISOWeek(); - init_startOfISOWeekYear(); - init_startOfMinute(); - init_startOfMonth(); - init_startOfQuarter(); - init_startOfSecond(); - init_startOfToday(); - init_startOfTomorrow(); - init_startOfWeek(); - init_startOfWeekYear(); - init_startOfYear(); - init_startOfYesterday(); - init_sub(); - init_subBusinessDays(); - init_subDays(); - init_subHours(); - init_subISOWeekYears(); - init_subMilliseconds(); - init_subMinutes(); - init_subMonths(); - init_subQuarters(); - init_subSeconds(); - init_subWeeks(); - init_subYears(); - init_toDate(); - init_transpose(); - init_weeksToDays(); - init_yearsToDays(); - init_yearsToMonths(); - init_yearsToQuarters(); - } -}); - -// node_modules/.pnpm/dayjs@1.11.19/node_modules/dayjs/dayjs.min.js -var require_dayjs_min = __commonJS({ - "node_modules/.pnpm/dayjs@1.11.19/node_modules/dayjs/dayjs.min.js"(exports, module) { - !(function(t9, e11) { - "object" == typeof exports && "undefined" != typeof module ? module.exports = e11() : "function" == typeof define && define.amd ? define(e11) : (t9 = "undefined" != typeof globalThis ? globalThis : t9 || self).dayjs = e11(); - })(exports, (function() { - "use strict"; - var t9 = 1e3, e11 = 6e4, n12 = 36e5, r11 = "millisecond", i11 = "second", s10 = "minute", u7 = "hour", a5 = "day", o13 = "week", c11 = "month", f7 = "quarter", h8 = "year", d5 = "date", l6 = "Invalid Date", $4 = /^(\d{4})[-/]?(\d{1,2})?[-/]?(\d{0,2})[Tt\s]*(\d{1,2})?:?(\d{1,2})?:?(\d{1,2})?[.:]?(\d+)?$/, y4 = /\[([^\]]+)]|Y{1,4}|M{1,4}|D{1,2}|d{1,4}|H{1,2}|h{1,2}|a|A|m{1,2}|s{1,2}|Z{1,2}|SSS/g, M4 = { name: "en", weekdays: "Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"), months: "January_February_March_April_May_June_July_August_September_October_November_December".split("_"), ordinal: function(t10) { - var e12 = ["th", "st", "nd", "rd"], n13 = t10 % 100; - return "[" + t10 + (e12[(n13 - 20) % 10] || e12[n13] || e12[0]) + "]"; - } }, m6 = function(t10, e12, n13) { - var r12 = String(t10); - return !r12 || r12.length >= e12 ? t10 : "" + Array(e12 + 1 - r12.length).join(n13) + t10; - }, v5 = { s: m6, z: function(t10) { - var e12 = -t10.utcOffset(), n13 = Math.abs(e12), r12 = Math.floor(n13 / 60), i12 = n13 % 60; - return (e12 <= 0 ? "+" : "-") + m6(r12, 2, "0") + ":" + m6(i12, 2, "0"); - }, m: function t10(e12, n13) { - if (e12.date() < n13.date()) return -t10(n13, e12); - var r12 = 12 * (n13.year() - e12.year()) + (n13.month() - e12.month()), i12 = e12.clone().add(r12, c11), s11 = n13 - i12 < 0, u8 = e12.clone().add(r12 + (s11 ? -1 : 1), c11); - return +(-(r12 + (n13 - i12) / (s11 ? i12 - u8 : u8 - i12)) || 0); - }, a: function(t10) { - return t10 < 0 ? Math.ceil(t10) || 0 : Math.floor(t10); - }, p: function(t10) { - return { M: c11, y: h8, w: o13, d: a5, D: d5, h: u7, m: s10, s: i11, ms: r11, Q: f7 }[t10] || String(t10 || "").toLowerCase().replace(/s$/, ""); - }, u: function(t10) { - return void 0 === t10; - } }, g4 = "en", D4 = {}; - D4[g4] = M4; - var p7 = "$isDayjsObject", S4 = function(t10) { - return t10 instanceof _4 || !(!t10 || !t10[p7]); - }, w4 = function t10(e12, n13, r12) { - var i12; - if (!e12) return g4; - if ("string" == typeof e12) { - var s11 = e12.toLowerCase(); - D4[s11] && (i12 = s11), n13 && (D4[s11] = n13, i12 = s11); - var u8 = e12.split("-"); - if (!i12 && u8.length > 1) return t10(u8[0]); - } else { - var a6 = e12.name; - D4[a6] = e12, i12 = a6; - } - return !r12 && i12 && (g4 = i12), i12 || !r12 && g4; - }, O3 = function(t10, e12) { - if (S4(t10)) return t10.clone(); - var n13 = "object" == typeof e12 ? e12 : {}; - return n13.date = t10, n13.args = arguments, new _4(n13); - }, b5 = v5; - b5.l = w4, b5.i = S4, b5.w = function(t10, e12) { - return O3(t10, { locale: e12.$L, utc: e12.$u, x: e12.$x, $offset: e12.$offset }); - }; - var _4 = (function() { - function M5(t10) { - this.$L = w4(t10.locale, null, true), this.parse(t10), this.$x = this.$x || t10.x || {}, this[p7] = true; - } - var m7 = M5.prototype; - return m7.parse = function(t10) { - this.$d = (function(t11) { - var e12 = t11.date, n13 = t11.utc; - if (null === e12) return /* @__PURE__ */ new Date(NaN); - if (b5.u(e12)) return /* @__PURE__ */ new Date(); - if (e12 instanceof Date) return new Date(e12); - if ("string" == typeof e12 && !/Z$/i.test(e12)) { - var r12 = e12.match($4); - if (r12) { - var i12 = r12[2] - 1 || 0, s11 = (r12[7] || "0").substring(0, 3); - return n13 ? new Date(Date.UTC(r12[1], i12, r12[3] || 1, r12[4] || 0, r12[5] || 0, r12[6] || 0, s11)) : new Date(r12[1], i12, r12[3] || 1, r12[4] || 0, r12[5] || 0, r12[6] || 0, s11); - } - } - return new Date(e12); - })(t10), this.init(); - }, m7.init = function() { - var t10 = this.$d; - this.$y = t10.getFullYear(), this.$M = t10.getMonth(), this.$D = t10.getDate(), this.$W = t10.getDay(), this.$H = t10.getHours(), this.$m = t10.getMinutes(), this.$s = t10.getSeconds(), this.$ms = t10.getMilliseconds(); - }, m7.$utils = function() { - return b5; - }, m7.isValid = function() { - return !(this.$d.toString() === l6); - }, m7.isSame = function(t10, e12) { - var n13 = O3(t10); - return this.startOf(e12) <= n13 && n13 <= this.endOf(e12); - }, m7.isAfter = function(t10, e12) { - return O3(t10) < this.startOf(e12); - }, m7.isBefore = function(t10, e12) { - return this.endOf(e12) < O3(t10); - }, m7.$g = function(t10, e12, n13) { - return b5.u(t10) ? this[e12] : this.set(n13, t10); - }, m7.unix = function() { - return Math.floor(this.valueOf() / 1e3); - }, m7.valueOf = function() { - return this.$d.getTime(); - }, m7.startOf = function(t10, e12) { - var n13 = this, r12 = !!b5.u(e12) || e12, f8 = b5.p(t10), l7 = function(t11, e13) { - var i12 = b5.w(n13.$u ? Date.UTC(n13.$y, e13, t11) : new Date(n13.$y, e13, t11), n13); - return r12 ? i12 : i12.endOf(a5); - }, $5 = function(t11, e13) { - return b5.w(n13.toDate()[t11].apply(n13.toDate("s"), (r12 ? [0, 0, 0, 0] : [23, 59, 59, 999]).slice(e13)), n13); - }, y5 = this.$W, M6 = this.$M, m8 = this.$D, v6 = "set" + (this.$u ? "UTC" : ""); - switch (f8) { - case h8: - return r12 ? l7(1, 0) : l7(31, 11); - case c11: - return r12 ? l7(1, M6) : l7(0, M6 + 1); - case o13: - var g5 = this.$locale().weekStart || 0, D5 = (y5 < g5 ? y5 + 7 : y5) - g5; - return l7(r12 ? m8 - D5 : m8 + (6 - D5), M6); - case a5: - case d5: - return $5(v6 + "Hours", 0); - case u7: - return $5(v6 + "Minutes", 1); - case s10: - return $5(v6 + "Seconds", 2); - case i11: - return $5(v6 + "Milliseconds", 3); - default: - return this.clone(); - } - }, m7.endOf = function(t10) { - return this.startOf(t10, false); - }, m7.$set = function(t10, e12) { - var n13, o14 = b5.p(t10), f8 = "set" + (this.$u ? "UTC" : ""), l7 = (n13 = {}, n13[a5] = f8 + "Date", n13[d5] = f8 + "Date", n13[c11] = f8 + "Month", n13[h8] = f8 + "FullYear", n13[u7] = f8 + "Hours", n13[s10] = f8 + "Minutes", n13[i11] = f8 + "Seconds", n13[r11] = f8 + "Milliseconds", n13)[o14], $5 = o14 === a5 ? this.$D + (e12 - this.$W) : e12; - if (o14 === c11 || o14 === h8) { - var y5 = this.clone().set(d5, 1); - y5.$d[l7]($5), y5.init(), this.$d = y5.set(d5, Math.min(this.$D, y5.daysInMonth())).$d; - } else l7 && this.$d[l7]($5); - return this.init(), this; - }, m7.set = function(t10, e12) { - return this.clone().$set(t10, e12); - }, m7.get = function(t10) { - return this[b5.p(t10)](); - }, m7.add = function(r12, f8) { - var d6, l7 = this; - r12 = Number(r12); - var $5 = b5.p(f8), y5 = function(t10) { - var e12 = O3(l7); - return b5.w(e12.date(e12.date() + Math.round(t10 * r12)), l7); - }; - if ($5 === c11) return this.set(c11, this.$M + r12); - if ($5 === h8) return this.set(h8, this.$y + r12); - if ($5 === a5) return y5(1); - if ($5 === o13) return y5(7); - var M6 = (d6 = {}, d6[s10] = e11, d6[u7] = n12, d6[i11] = t9, d6)[$5] || 1, m8 = this.$d.getTime() + r12 * M6; - return b5.w(m8, this); - }, m7.subtract = function(t10, e12) { - return this.add(-1 * t10, e12); - }, m7.format = function(t10) { - var e12 = this, n13 = this.$locale(); - if (!this.isValid()) return n13.invalidDate || l6; - var r12 = t10 || "YYYY-MM-DDTHH:mm:ssZ", i12 = b5.z(this), s11 = this.$H, u8 = this.$m, a6 = this.$M, o14 = n13.weekdays, c12 = n13.months, f8 = n13.meridiem, h9 = function(t11, n14, i13, s12) { - return t11 && (t11[n14] || t11(e12, r12)) || i13[n14].slice(0, s12); - }, d6 = function(t11) { - return b5.s(s11 % 12 || 12, t11, "0"); - }, $5 = f8 || function(t11, e13, n14) { - var r13 = t11 < 12 ? "AM" : "PM"; - return n14 ? r13.toLowerCase() : r13; - }; - return r12.replace(y4, (function(t11, r13) { - return r13 || (function(t12) { - switch (t12) { - case "YY": - return String(e12.$y).slice(-2); - case "YYYY": - return b5.s(e12.$y, 4, "0"); - case "M": - return a6 + 1; - case "MM": - return b5.s(a6 + 1, 2, "0"); - case "MMM": - return h9(n13.monthsShort, a6, c12, 3); - case "MMMM": - return h9(c12, a6); - case "D": - return e12.$D; - case "DD": - return b5.s(e12.$D, 2, "0"); - case "d": - return String(e12.$W); - case "dd": - return h9(n13.weekdaysMin, e12.$W, o14, 2); - case "ddd": - return h9(n13.weekdaysShort, e12.$W, o14, 3); - case "dddd": - return o14[e12.$W]; - case "H": - return String(s11); - case "HH": - return b5.s(s11, 2, "0"); - case "h": - return d6(1); - case "hh": - return d6(2); - case "a": - return $5(s11, u8, true); - case "A": - return $5(s11, u8, false); - case "m": - return String(u8); - case "mm": - return b5.s(u8, 2, "0"); - case "s": - return String(e12.$s); - case "ss": - return b5.s(e12.$s, 2, "0"); - case "SSS": - return b5.s(e12.$ms, 3, "0"); - case "Z": - return i12; - } - return null; - })(t11) || i12.replace(":", ""); - })); - }, m7.utcOffset = function() { - return 15 * -Math.round(this.$d.getTimezoneOffset() / 15); - }, m7.diff = function(r12, d6, l7) { - var $5, y5 = this, M6 = b5.p(d6), m8 = O3(r12), v6 = (m8.utcOffset() - this.utcOffset()) * e11, g5 = this - m8, D5 = function() { - return b5.m(y5, m8); - }; - switch (M6) { - case h8: - $5 = D5() / 12; - break; - case c11: - $5 = D5(); - break; - case f7: - $5 = D5() / 3; - break; - case o13: - $5 = (g5 - v6) / 6048e5; - break; - case a5: - $5 = (g5 - v6) / 864e5; - break; - case u7: - $5 = g5 / n12; - break; - case s10: - $5 = g5 / e11; - break; - case i11: - $5 = g5 / t9; - break; - default: - $5 = g5; - } - return l7 ? $5 : b5.a($5); - }, m7.daysInMonth = function() { - return this.endOf(c11).$D; - }, m7.$locale = function() { - return D4[this.$L]; - }, m7.locale = function(t10, e12) { - if (!t10) return this.$L; - var n13 = this.clone(), r12 = w4(t10, e12, true); - return r12 && (n13.$L = r12), n13; - }, m7.clone = function() { - return b5.w(this.$d, this); - }, m7.toDate = function() { - return new Date(this.valueOf()); - }, m7.toJSON = function() { - return this.isValid() ? this.toISOString() : null; - }, m7.toISOString = function() { - return this.$d.toISOString(); - }, m7.toString = function() { - return this.$d.toUTCString(); - }, M5; - })(), k4 = _4.prototype; - return O3.prototype = k4, [["$ms", r11], ["$s", i11], ["$m", s10], ["$H", u7], ["$W", a5], ["$M", c11], ["$y", h8], ["$D", d5]].forEach((function(t10) { - k4[t10[1]] = function(e12) { - return this.$g(e12, t10[0], t10[1]); - }; - })), O3.extend = function(t10, e12) { - return t10.$i || (t10(e12, _4, O3), t10.$i = true), O3; - }, O3.locale = w4, O3.isDayjs = S4, O3.unix = function(t10) { - return O3(1e3 * t10); - }, O3.en = D4[g4], O3.Ls = D4, O3.p = {}, O3; - })); - } -}); - -// node_modules/.pnpm/dayjs@1.11.19/node_modules/dayjs/plugin/isToday.js -var require_isToday = __commonJS({ - "node_modules/.pnpm/dayjs@1.11.19/node_modules/dayjs/plugin/isToday.js"(exports, module) { - !(function(e11, o13) { - "object" == typeof exports && "undefined" != typeof module ? module.exports = o13() : "function" == typeof define && define.amd ? define(o13) : (e11 = "undefined" != typeof globalThis ? globalThis : e11 || self).dayjs_plugin_isToday = o13(); - })(exports, (function() { - "use strict"; - return function(e11, o13, t9) { - o13.prototype.isToday = function() { - var e12 = "YYYY-MM-DD", o14 = t9(); - return this.format(e12) === o14.format(e12); - }; - }; - })); - } -}); - -// node_modules/.pnpm/parse-ms@4.0.0/node_modules/parse-ms/index.js -function parseNumber(milliseconds2) { - return { - days: Math.trunc(milliseconds2 / 864e5), - hours: Math.trunc(milliseconds2 / 36e5 % 24), - minutes: Math.trunc(milliseconds2 / 6e4 % 60), - seconds: Math.trunc(milliseconds2 / 1e3 % 60), - milliseconds: Math.trunc(milliseconds2 % 1e3), - microseconds: Math.trunc(toZeroIfInfinity(milliseconds2 * 1e3) % 1e3), - nanoseconds: Math.trunc(toZeroIfInfinity(milliseconds2 * 1e6) % 1e3) - }; -} -function parseBigint(milliseconds2) { - return { - days: milliseconds2 / 86400000n, - hours: milliseconds2 / 3600000n % 24n, - minutes: milliseconds2 / 60000n % 60n, - seconds: milliseconds2 / 1000n % 60n, - milliseconds: milliseconds2 % 1000n, - microseconds: 0n, - nanoseconds: 0n - }; -} -function parseMilliseconds(milliseconds2) { - switch (typeof milliseconds2) { - case "number": { - if (Number.isFinite(milliseconds2)) { - return parseNumber(milliseconds2); - } - break; - } - case "bigint": { - return parseBigint(milliseconds2); - } - } - throw new TypeError("Expected a finite number or bigint"); -} -var toZeroIfInfinity; -var init_parse_ms = __esm({ - "node_modules/.pnpm/parse-ms@4.0.0/node_modules/parse-ms/index.js"() { - toZeroIfInfinity = (value2) => Number.isFinite(value2) ? value2 : 0; - } -}); - -// node_modules/.pnpm/pretty-ms@9.3.0/node_modules/pretty-ms/index.js -function prettyMilliseconds(milliseconds2, options) { - const isBigInt = typeof milliseconds2 === "bigint"; - if (!isBigInt && !Number.isFinite(milliseconds2)) { - throw new TypeError("Expected a finite number or bigint"); - } - options = { ...options }; - const sign = milliseconds2 < 0 ? "-" : ""; - milliseconds2 = milliseconds2 < 0 ? -milliseconds2 : milliseconds2; - if (options.colonNotation) { - options.compact = false; - options.formatSubMilliseconds = false; - options.separateMilliseconds = false; - options.verbose = false; - } - if (options.compact) { - options.unitCount = 1; - options.secondsDecimalDigits = 0; - options.millisecondsDecimalDigits = 0; - } - let result = []; - const floorDecimals = (value2, decimalDigits) => { - const flooredInterimValue = Math.floor(value2 * 10 ** decimalDigits + SECOND_ROUNDING_EPSILON); - const flooredValue = Math.round(flooredInterimValue) / 10 ** decimalDigits; - return flooredValue.toFixed(decimalDigits); - }; - const add3 = (value2, long, short, valueString) => { - if ((result.length === 0 || !options.colonNotation) && isZero(value2) && !(options.colonNotation && short === "m")) { - return; - } - valueString ??= String(value2); - if (options.colonNotation) { - const wholeDigits = valueString.includes(".") ? valueString.split(".")[0].length : valueString.length; - const minLength = result.length > 0 ? 2 : 1; - valueString = "0".repeat(Math.max(0, minLength - wholeDigits)) + valueString; - } else { - valueString += options.verbose ? " " + pluralize(long, value2) : short; - } - result.push(valueString); - }; - const parsed = parseMilliseconds(milliseconds2); - const days2 = BigInt(parsed.days); - if (options.hideYearAndDays) { - add3(BigInt(days2) * 24n + BigInt(parsed.hours), "hour", "h"); - } else { - if (options.hideYear) { - add3(days2, "day", "d"); - } else { - add3(days2 / 365n, "year", "y"); - add3(days2 % 365n, "day", "d"); - } - add3(Number(parsed.hours), "hour", "h"); - } - add3(Number(parsed.minutes), "minute", "m"); - if (!options.hideSeconds) { - if (options.separateMilliseconds || options.formatSubMilliseconds || !options.colonNotation && milliseconds2 < 1e3 && !options.subSecondsAsDecimals) { - const seconds = Number(parsed.seconds); - const milliseconds3 = Number(parsed.milliseconds); - const microseconds = Number(parsed.microseconds); - const nanoseconds = Number(parsed.nanoseconds); - add3(seconds, "second", "s"); - if (options.formatSubMilliseconds) { - add3(milliseconds3, "millisecond", "ms"); - add3(microseconds, "microsecond", "\xB5s"); - add3(nanoseconds, "nanosecond", "ns"); - } else { - const millisecondsAndBelow = milliseconds3 + microseconds / 1e3 + nanoseconds / 1e6; - const millisecondsDecimalDigits = typeof options.millisecondsDecimalDigits === "number" ? options.millisecondsDecimalDigits : 0; - const roundedMilliseconds = millisecondsAndBelow >= 1 ? Math.round(millisecondsAndBelow) : Math.ceil(millisecondsAndBelow); - const millisecondsString = millisecondsDecimalDigits ? millisecondsAndBelow.toFixed(millisecondsDecimalDigits) : roundedMilliseconds; - add3( - Number.parseFloat(millisecondsString), - "millisecond", - "ms", - millisecondsString - ); - } - } else { - const seconds = (isBigInt ? Number(milliseconds2 % ONE_DAY_IN_MILLISECONDS) : milliseconds2) / 1e3 % 60; - const secondsDecimalDigits = typeof options.secondsDecimalDigits === "number" ? options.secondsDecimalDigits : 1; - const secondsFixed = floorDecimals(seconds, secondsDecimalDigits); - const secondsString = options.keepDecimalsOnWholeSeconds ? secondsFixed : secondsFixed.replace(/\.0+$/, ""); - add3(Number.parseFloat(secondsString), "second", "s", secondsString); - } - } - if (result.length === 0) { - return sign + "0" + (options.verbose ? " milliseconds" : "ms"); - } - const separator = options.colonNotation ? ":" : " "; - if (typeof options.unitCount === "number") { - result = result.slice(0, Math.max(options.unitCount, 1)); - } - return sign + result.join(separator); -} -var isZero, pluralize, SECOND_ROUNDING_EPSILON, ONE_DAY_IN_MILLISECONDS; -var init_pretty_ms = __esm({ - "node_modules/.pnpm/pretty-ms@9.3.0/node_modules/pretty-ms/index.js"() { - init_parse_ms(); - isZero = (value2) => value2 === 0 || value2 === 0n; - pluralize = (word, count2) => count2 === 1 || count2 === 1n ? word : `${word}s`; - SECOND_ROUNDING_EPSILON = 1e-7; - ONE_DAY_IN_MILLISECONDS = 24n * 60n * 60n * 1000n; - } -}); - -// node_modules/.pnpm/@push.rocks+smarttime@4.2.3/node_modules/@push.rocks/smarttime/dist_ts/smarttime.plugins.js -var import_dayjs, import_isToday; -var init_smarttime_plugins = __esm({ - "node_modules/.pnpm/@push.rocks+smarttime@4.2.3/node_modules/@push.rocks/smarttime/dist_ts/smarttime.plugins.js"() { - init_dist_ts7(); - init_dist_ts3(); - init_dist_ts(); - init_croner(); - init_date_fns(); - import_dayjs = __toESM(require_dayjs_min(), 1); - import_isToday = __toESM(require_isToday(), 1); - init_pretty_ms(); - import_dayjs.default.extend(import_isToday.default); - } -}); - -// node_modules/.pnpm/@push.rocks+smarttime@4.2.3/node_modules/@push.rocks/smarttime/dist_ts/smarttime.classes.cronjob.js -var CronJob; -var init_smarttime_classes_cronjob = __esm({ - "node_modules/.pnpm/@push.rocks+smarttime@4.2.3/node_modules/@push.rocks/smarttime/dist_ts/smarttime.classes.cronjob.js"() { - init_smarttime_plugins(); - init_smarttime_classes_cronmanager(); - CronJob = class { - constructor(cronManager, cronExpressionArg, jobFunction) { - this.status = "initial"; - this.nextExecutionUnix = 0; - this.cronExpression = cronExpressionArg; - this.jobFunction = jobFunction; - this.cronParser = new croner_exports.Cron(cronExpressionArg); - } - /** - * checks wether the cronjob needs to be executed - */ - checkExecution() { - if (this.status === "stopped") { - return this.nextExecutionUnix; - } - if (this.nextExecutionUnix === 0) { - this.getNextExecutionTime(); - } - if (Date.now() > this.nextExecutionUnix) { - const maybePromise = this.jobFunction(this.nextExecutionUnix); - if (maybePromise instanceof Promise) { - maybePromise.catch((e11) => console.log(e11)); - } - this.nextExecutionUnix = this.getNextExecutionTime(); - } - return this.nextExecutionUnix; - } - getNextExecutionTime() { - return this.nextExecutionUnix = Date.now() + this.getTimeToNextExecution(); - } - /** - * gets the time to next execution - */ - getTimeToNextExecution() { - return this.cronParser.msToNext(); - } - start() { - this.status = "started"; - } - stop() { - this.status = "stopped"; - } - }; - } -}); - -// node_modules/.pnpm/@push.rocks+smarttime@4.2.3/node_modules/@push.rocks/smarttime/dist_ts/smarttime.classes.cronmanager.js -var CronManager; -var init_smarttime_classes_cronmanager = __esm({ - "node_modules/.pnpm/@push.rocks+smarttime@4.2.3/node_modules/@push.rocks/smarttime/dist_ts/smarttime.classes.cronmanager.js"() { - init_smarttime_plugins(); - init_smarttime_classes_cronjob(); - CronManager = class { - constructor() { - this.status = "stopped"; - this.cronjobs = new dist_ts_exports6.ObjectMap(); - this.cycleWakeDeferred = null; - } - /** - * Resolves the current wake deferred, causing the sleeping cycle - * to immediately recalculate instead of waiting for its timeout. - */ - wakeCycle() { - if (this.cycleWakeDeferred && this.cycleWakeDeferred.status === "pending") { - this.cycleWakeDeferred.resolve(); - } - } - addCronjob(cronIdentifierArg, cronFunctionArg) { - const newCronJob = new CronJob(this, cronIdentifierArg, cronFunctionArg); - this.cronjobs.add(newCronJob); - if (this.status === "started") { - newCronJob.start(); - this.wakeCycle(); - } - return newCronJob; - } - removeCronjob(cronjobArg) { - cronjobArg.stop(); - this.cronjobs.remove(cronjobArg); - if (this.status === "started") { - this.wakeCycle(); - } - } - /** - * starts the cronjob - */ - start() { - if (this.status !== "started") { - this.status = "started"; - for (const cronJob of this.cronjobs.getArray()) { - cronJob.start(); - } - this.runCronCycle(); - } - } - async runCronCycle() { - while (this.status === "started") { - this.cycleWakeDeferred = new dist_ts_exports.Deferred(); - let soonestMs = Infinity; - for (const cronJob of this.cronjobs.getArray()) { - cronJob.checkExecution(); - const msToNext = cronJob.getTimeToNextExecution(); - if (msToNext < soonestMs) { - soonestMs = msToNext; - } - } - if (soonestMs < Infinity && soonestMs > 0) { - this.executionTimeout = new dist_ts_exports3.Timeout(soonestMs); - await Promise.race([ - this.executionTimeout.promise, - this.cycleWakeDeferred.promise - ]); - this.executionTimeout.cancel(); - } else if (soonestMs <= 0) { - continue; - } else { - await this.cycleWakeDeferred.promise; - } - } - this.cycleWakeDeferred = null; - } - /** - * stops all cronjobs - */ - stop() { - if (this.status === "started") { - this.status = "stopped"; - if (this.executionTimeout) { - this.executionTimeout.cancel(); - } - this.wakeCycle(); - } - for (const cron of this.cronjobs.getArray()) { - cron.stop(); - } - } - }; - } -}); - -// node_modules/.pnpm/@push.rocks+smarttime@4.2.3/node_modules/@push.rocks/smarttime/dist_ts/smarttime.units.js -var units, getMilliSecondsFromUnits, getMilliSecondsAsHumanReadableString, getMilliSecondsAsHumanReadableAgoTime; -var init_smarttime_units = __esm({ - "node_modules/.pnpm/@push.rocks+smarttime@4.2.3/node_modules/@push.rocks/smarttime/dist_ts/smarttime.units.js"() { - init_smarttime_plugins(); - units = { - years: (timesArg = 1) => { - return timesArg * 3154e7; - }, - months: (timesArg = 1) => { - return timesArg * 2628e6; - }, - weeks: (timesArg = 1) => { - return timesArg * 6048e5; - }, - days: (timesArg = 1) => { - return timesArg * 864e5; - }, - hours: (timesArg = 1) => { - return timesArg * 36e5; - }, - minutes: (timesArg = 1) => { - return timesArg * 6e4; - }, - seconds: (timesArg = 1) => { - return timesArg * 1e3; - } - }; - getMilliSecondsFromUnits = (combinationArg) => { - let timeInMilliseconds = 0; - let addMilliSeconds = (milliSecondsArg) => { - timeInMilliseconds = timeInMilliseconds + milliSecondsArg; - }; - if (combinationArg.years) { - addMilliSeconds(units.years(combinationArg.years)); - } - if (combinationArg.months) { - addMilliSeconds(units.months(combinationArg.months)); - } - if (combinationArg.weeks) { - addMilliSeconds(units.weeks(combinationArg.weeks)); - } - if (combinationArg.days) { - addMilliSeconds(units.days(combinationArg.days)); - } - if (combinationArg.hours) { - addMilliSeconds(units.hours(combinationArg.hours)); - } - if (combinationArg.minutes) { - addMilliSeconds(units.minutes(combinationArg.minutes)); - } - if (combinationArg.seconds) { - addMilliSeconds(units.seconds(combinationArg.seconds)); - } - return timeInMilliseconds; - }; - getMilliSecondsAsHumanReadableString = (milliSecondsArg) => { - return prettyMilliseconds(milliSecondsArg); - }; - getMilliSecondsAsHumanReadableAgoTime = (timeStampArg) => { - return date_fns_exports.formatDistanceToNow(new Date(timeStampArg)); - }; - } -}); - -// node_modules/.pnpm/@push.rocks+smarttime@4.2.3/node_modules/@push.rocks/smarttime/dist_ts/smarttime.classes.extendeddate.js -var ExtendedDate; -var init_smarttime_classes_extendeddate = __esm({ - "node_modules/.pnpm/@push.rocks+smarttime@4.2.3/node_modules/@push.rocks/smarttime/dist_ts/smarttime.classes.extendeddate.js"() { - init_smarttime_plugins(); - init_smarttime_units(); - ExtendedDate = class _ExtendedDate extends Date { - // STATIC factories - static fromMillis(milliSeconds) { - return new _ExtendedDate(milliSeconds); - } - static fromDate(dateArg) { - return new _ExtendedDate(dateArg.getTime()); - } - static fromEuropeanDate(europeanDate) { - const dateArray = /(.*)\.(.*)\.(.*)/.exec(europeanDate); - const date = new Date( - parseFloat(dateArray[3]), - // year - parseFloat(dateArray[2]) - 1, - // month - parseFloat(dateArray[1]) - // day - ); - const unixMilli = date.getTime(); - return new _ExtendedDate(unixMilli); - } - /** - * creates an Extended date from a hypedDate like "2018-03-28" - * @param dateString - */ - static fromHyphedDate(dateString) { - const dateMillis = new Date(dateString).getTime(); - return new _ExtendedDate(dateMillis); - } - /** - * Same as .fromEuropeanDate(), but accepts additional timeArg and zoneArg - */ - static fromEuropeanDateAndTime(europeanDateArg, timeArg = "12:00:00", zoneArg = "Europe/Berlin") { - const dateArray = /(.*)\.(.*)\.(.*)/.exec(europeanDateArg); - const sliceDate = (dateString) => { - return `0${dateString}`.slice(-2); - }; - const dateTimeString = `${dateArray[3]}-${sliceDate(dateArray[2])}-${sliceDate(dateArray[1])}T${timeArg}`; - const date = import_dayjs.default(dateTimeString); - const unixMilli = date.toDate().getTime(); - return new _ExtendedDate(unixMilli); - } - constructor(unixMilli = Date.now()) { - super(unixMilli); - } - // - exportToEuropeanDate() { - const units2 = this.exportToUnits(); - return `${units2.dayString}.${units2.monthString}.${units2.yearString}`; - } - exportToHyphedSortableDate() { - const units2 = this.exportToUnits(); - return `${units2.yearString}-${units2.monthString}-${units2.dayString}`; - } - /** - * exports units - */ - exportToUnits() { - const monthsArray = [ - "January", - "February", - "March", - "April", - "May", - "June", - "July", - "August", - "September", - "October", - "November", - "December" - ]; - const daysArray = [ - "Monday", - "Tuesday", - "Wednesday", - "Thursday", - "Friday", - "Saturday", - "Sunday" - ]; - return { - year: this.getFullYear(), - yearString: `${this.getFullYear()}`, - month: this.getMonth() + 1, - monthString: ("0" + (this.getMonth() + 1)).slice(-2), - monthName: monthsArray[this.getMonth()], - day: this.getDate(), - dayString: ("0" + this.getDate()).slice(-2), - dayOfTheWeek: this.getDay(), - dayOfTheWeekName: daysArray[this.getDay()] - }; - } - format(formatArg) { - return import_dayjs.default(this.getTime()).format(formatArg); - } - /** - * boolean checks - */ - isToday() { - return import_dayjs.default(this.getTime()).isToday(); - } - lessTimePassedToNow(unitArgs) { - const maxPassedUnixTime = getMilliSecondsFromUnits(unitArgs); - const actualPassedUnixTime = Date.now() - this.getTime(); - return actualPassedUnixTime < maxPassedUnixTime; - } - moreTimePassedToNow(unitArgs) { - return !this.lessTimePassedToNow(unitArgs); - } - }; - } -}); - -// node_modules/.pnpm/@push.rocks+smarttime@4.2.3/node_modules/@push.rocks/smarttime/dist_ts/smarttime.classes.hrtmeasurement.js -var HrtMeasurement; -var init_smarttime_classes_hrtmeasurement = __esm({ - "node_modules/.pnpm/@push.rocks+smarttime@4.2.3/node_modules/@push.rocks/smarttime/dist_ts/smarttime.classes.hrtmeasurement.js"() { - HrtMeasurement = class { - constructor() { - this.nanoSeconds = null; - this.milliSeconds = null; - this._milliStart = null; - this._milliDiff = null; - this._started = false; - } - /** - * start the measurement - */ - start() { - this._started = true; - this._milliStart = Date.now(); - } - /** - * stop the measurement - */ - stop() { - if (this._started === false) { - console.log("Hasn't started yet"); - return; - } - this._milliDiff = Date.now() - this._milliStart; - this.nanoSeconds = this._milliDiff * 1e3; - this.milliSeconds = this._milliDiff; - return this; - } - /** - * reset the measurement - */ - reset() { - this.nanoSeconds = null; - this.milliSeconds = null; - this._milliStart = null; - this._milliDiff = null; - this._started = false; - } - }; - } -}); - -// node_modules/.pnpm/@push.rocks+smarttime@4.2.3/node_modules/@push.rocks/smarttime/dist_ts/smarttime.classes.interval.js -var Interval; -var init_smarttime_classes_interval = __esm({ - "node_modules/.pnpm/@push.rocks+smarttime@4.2.3/node_modules/@push.rocks/smarttime/dist_ts/smarttime.classes.interval.js"() { - init_smarttime_plugins(); - Interval = class { - constructor(intervalMillisencondsArg) { - this.status = "initial"; - this.statusAuthorization = null; - this.intervalJobs = []; - this.intervalMilliseconds = intervalMillisencondsArg; - } - start() { - this.status = "started"; - const statusAuth = /* @__PURE__ */ new Date(); - this.statusAuthorization = statusAuth; - const runInterval = async () => { - while (this.status === "started" && this.statusAuthorization === statusAuth) { - await dist_ts_exports3.delayFor(this.intervalMilliseconds); - this.executeIntervalJobs(); - } - }; - runInterval(); - } - stop() { - this.status = "stopped"; - this.statusAuthorization = null; - } - addIntervalJob(funcArg) { - this.intervalJobs.push(funcArg); - } - executeIntervalJobs() { - for (const funcArg of this.intervalJobs) { - funcArg(); - } - } - }; - } -}); - -// node_modules/.pnpm/@push.rocks+smarttime@4.2.3/node_modules/@push.rocks/smarttime/dist_ts/smarttime.classes.timestamp.js -var TimeStamp; -var init_smarttime_classes_timestamp = __esm({ - "node_modules/.pnpm/@push.rocks+smarttime@4.2.3/node_modules/@push.rocks/smarttime/dist_ts/smarttime.classes.timestamp.js"() { - init_smarttime_plugins(); - TimeStamp = class _TimeStamp { - /** - * returns new TimeStamp from milliseconds - */ - static fromMilliSeconds(milliSecondsArg) { - return new _TimeStamp(milliSecondsArg); - } - /** - * returns new TimeStamp for now with change set - * @param timeStampArg - */ - static fromTimeStamp(timeStampArg) { - const localTimeStamp = new _TimeStamp(); - localTimeStamp.change = localTimeStamp.milliSeconds - timeStampArg.milliSeconds; - return localTimeStamp; - } - constructor(creatorArg) { - this.change = null; - if (!creatorArg) { - this.date = /* @__PURE__ */ new Date(); - } else if (typeof creatorArg === "number") { - this.date = new Date(creatorArg); - } - this.milliSeconds = this.date.getTime(); - this.epochtime = Math.floor(this.milliSeconds / 1e3); - } - /** - * returns a boolean for wether the timestamp is older than another timestamp - * @param TimeStampArg - * @param tresholdTimeArg - */ - isOlderThanOtherTimeStamp(TimeStampArg, tresholdTimeArg = 0) { - if (this.milliSeconds < TimeStampArg.milliSeconds - tresholdTimeArg) { - return true; - } else { - return false; - } - } - /** - * Is the current instance older than the argument - * @param TimeStampArg - */ - isOlderThan(TimeStampArg, tresholdTimeArg = 0) { - if (this.milliSeconds + tresholdTimeArg < TimeStampArg.milliSeconds) { - return true; - } else { - return false; - } - } - /** - * returns a boolean for wether the timestamp is younger than another timestamp - * @param TimeStampArg - * @param tresholdTimeArg - */ - isYoungerThanOtherTimeStamp(TimeStampArg, tresholdTimeArg = 0) { - if (this.milliSeconds > TimeStampArg.milliSeconds + tresholdTimeArg) { - return true; - } else { - return false; - } - } - isYoungerThanMilliSeconds(millisecondArg) { - const nowTimeStamp = new _TimeStamp(); - const compareEpochTime = nowTimeStamp.epochtime - millisecondArg; - const compareTimeStamp = new _TimeStamp(compareEpochTime); - return this.isYoungerThanOtherTimeStamp(compareTimeStamp); - } - }; - } -}); - -// node_modules/.pnpm/@push.rocks+smarttime@4.2.3/node_modules/@push.rocks/smarttime/dist_ts/smarttime.classes.timer.js -var Timer; -var init_smarttime_classes_timer = __esm({ - "node_modules/.pnpm/@push.rocks+smarttime@4.2.3/node_modules/@push.rocks/smarttime/dist_ts/smarttime.classes.timer.js"() { - init_smarttime_plugins(); - init_smarttime_classes_timestamp(); - Timer = class { - get timeLeft() { - return this.timeInMilliseconds - this.pausedAt.change; - } - constructor(timeInMillisecondsArg) { - this.state = "initiated"; - this.completedDeferred = dist_ts_exports.defer(); - this.timeInMilliseconds = timeInMillisecondsArg; - this.completed = this.completedDeferred.promise; - } - /** - * starts the timer - */ - start() { - if (!this.startedAt) { - this.currentTimeout = setTimeout(() => { - this.completedDeferred.resolve(); - }, this.timeInMilliseconds); - this.startedAt = new TimeStamp(); - } else { - throw new Error("timer has been started before. Please use resume instead"); - } - } - pause() { - if (this.startedAt) { - clearTimeout(this.currentTimeout); - this.currentTimeout = null; - this.pausedAt = TimeStamp.fromTimeStamp(this.startedAt); - } - } - resume() { - if (this.startedAt) { - this.currentTimeout = setTimeout(() => { - this.completedDeferred.resolve(); - }, this.timeLeft); - } else { - throw new Error("timer has NOT been started before. Please use .start() instead"); - } - } - reset() { - this.pause(); - this.startedAt = null; - this.pausedAt = null; - } - }; - } -}); - -// node_modules/.pnpm/@push.rocks+smarttime@4.2.3/node_modules/@push.rocks/smarttime/dist_ts/index.js -var dist_ts_exports7 = {}; -__export(dist_ts_exports7, { - CronJob: () => CronJob, - CronManager: () => CronManager, - ExtendedDate: () => ExtendedDate, - HrtMeasurement: () => HrtMeasurement, - Interval: () => Interval, - TimeStamp: () => TimeStamp, - Timer: () => Timer, - getMilliSecondsAsHumanReadableAgoTime: () => getMilliSecondsAsHumanReadableAgoTime, - getMilliSecondsAsHumanReadableString: () => getMilliSecondsAsHumanReadableString, - getMilliSecondsFromUnits: () => getMilliSecondsFromUnits, - units: () => units -}); -var init_dist_ts6 = __esm({ - "node_modules/.pnpm/@push.rocks+smarttime@4.2.3/node_modules/@push.rocks/smarttime/dist_ts/index.js"() { - init_smarttime_classes_cronmanager(); - init_smarttime_classes_cronjob(); - init_smarttime_classes_extendeddate(); - init_smarttime_classes_hrtmeasurement(); - init_smarttime_classes_interval(); - init_smarttime_classes_timer(); - init_smarttime_classes_timestamp(); - init_smarttime_units(); - } -}); - -// node_modules/.pnpm/symbol-tree@3.2.4/node_modules/symbol-tree/lib/SymbolTreeNode.js -var require_SymbolTreeNode = __commonJS({ - "node_modules/.pnpm/symbol-tree@3.2.4/node_modules/symbol-tree/lib/SymbolTreeNode.js"(exports, module) { - "use strict"; - module.exports = class SymbolTreeNode { - constructor() { - this.parent = null; - this.previousSibling = null; - this.nextSibling = null; - this.firstChild = null; - this.lastChild = null; - this.childrenVersion = 0; - this.childIndexCachedUpTo = null; - this.cachedIndex = -1; - this.cachedIndexVersion = NaN; - } - get isAttached() { - return Boolean(this.parent || this.previousSibling || this.nextSibling); - } - get hasChildren() { - return Boolean(this.firstChild); - } - childrenChanged() { - this.childrenVersion = this.childrenVersion + 1 & 4294967295; - this.childIndexCachedUpTo = null; - } - getCachedIndex(parentNode) { - if (this.cachedIndexVersion !== parentNode.childrenVersion) { - this.cachedIndexVersion = NaN; - return -1; - } - return this.cachedIndex; - } - setCachedIndex(parentNode, index2) { - this.cachedIndexVersion = parentNode.childrenVersion; - this.cachedIndex = index2; - } - }; - } -}); - -// node_modules/.pnpm/symbol-tree@3.2.4/node_modules/symbol-tree/lib/TreePosition.js -var require_TreePosition = __commonJS({ - "node_modules/.pnpm/symbol-tree@3.2.4/node_modules/symbol-tree/lib/TreePosition.js"(exports, module) { - "use strict"; - module.exports = Object.freeze({ - // same as DOM DOCUMENT_POSITION_ - DISCONNECTED: 1, - PRECEDING: 2, - FOLLOWING: 4, - CONTAINS: 8, - CONTAINED_BY: 16 - }); - } -}); - -// node_modules/.pnpm/symbol-tree@3.2.4/node_modules/symbol-tree/lib/TreeIterator.js -var require_TreeIterator = __commonJS({ - "node_modules/.pnpm/symbol-tree@3.2.4/node_modules/symbol-tree/lib/TreeIterator.js"(exports, module) { - "use strict"; - var TREE = /* @__PURE__ */ Symbol(); - var ROOT = /* @__PURE__ */ Symbol(); - var NEXT = /* @__PURE__ */ Symbol(); - var ITERATE_FUNC = /* @__PURE__ */ Symbol(); - var TreeIterator = class { - constructor(tree, root6, firstResult, iterateFunction) { - this[TREE] = tree; - this[ROOT] = root6; - this[NEXT] = firstResult; - this[ITERATE_FUNC] = iterateFunction; - } - next() { - const tree = this[TREE]; - const iterateFunc = this[ITERATE_FUNC]; - const root6 = this[ROOT]; - if (!this[NEXT]) { - return { - done: true, - value: root6 - }; - } - const value2 = this[NEXT]; - if (iterateFunc === 1) { - this[NEXT] = tree._node(value2).previousSibling; - } else if (iterateFunc === 2) { - this[NEXT] = tree._node(value2).nextSibling; - } else if (iterateFunc === 3) { - this[NEXT] = tree._node(value2).parent; - } else if (iterateFunc === 4) { - this[NEXT] = tree.preceding(value2, { root: root6 }); - } else { - this[NEXT] = tree.following(value2, { root: root6 }); - } - return { - done: false, - value: value2 - }; - } - }; - Object.defineProperty(TreeIterator.prototype, Symbol.iterator, { - value: function() { - return this; - }, - writable: false - }); - TreeIterator.PREV = 1; - TreeIterator.NEXT = 2; - TreeIterator.PARENT = 3; - TreeIterator.PRECEDING = 4; - TreeIterator.FOLLOWING = 5; - Object.freeze(TreeIterator); - Object.freeze(TreeIterator.prototype); - module.exports = TreeIterator; - } -}); - -// node_modules/.pnpm/symbol-tree@3.2.4/node_modules/symbol-tree/lib/SymbolTree.js -var require_SymbolTree = __commonJS({ - "node_modules/.pnpm/symbol-tree@3.2.4/node_modules/symbol-tree/lib/SymbolTree.js"(exports, module) { - "use strict"; - var SymbolTreeNode = require_SymbolTreeNode(); - var TreePosition = require_TreePosition(); - var TreeIterator = require_TreeIterator(); - function returnTrue() { - return true; - } - function reverseArrayIndex(array, reverseIndex) { - return array[array.length - 1 - reverseIndex]; - } - var SymbolTree = class { - /** - * @constructor - * @alias module:symbol-tree - * @param {string} [description='SymbolTree data'] Description used for the Symbol - */ - constructor(description) { - this.symbol = Symbol(description || "SymbolTree data"); - } - /** - * You can use this function to (optionally) initialize an object right after its creation, - * to take advantage of V8's fast properties. Also useful if you would like to - * freeze your object. - * - * `O(1)` - * - * @method - * @alias module:symbol-tree#initialize - * @param {Object} object - * @return {Object} object - */ - initialize(object) { - this._node(object); - return object; - } - _node(object) { - if (!object) { - return null; - } - const node2 = object[this.symbol]; - if (node2) { - return node2; - } - return object[this.symbol] = new SymbolTreeNode(); - } - /** - * Returns `true` if the object has any children. Otherwise it returns `false`. - * - * * `O(1)` - * - * @method hasChildren - * @memberOf module:symbol-tree# - * @param {Object} object - * @return {Boolean} - */ - hasChildren(object) { - return this._node(object).hasChildren; - } - /** - * Returns the first child of the given object. - * - * * `O(1)` - * - * @method firstChild - * @memberOf module:symbol-tree# - * @param {Object} object - * @return {Object} - */ - firstChild(object) { - return this._node(object).firstChild; - } - /** - * Returns the last child of the given object. - * - * * `O(1)` - * - * @method lastChild - * @memberOf module:symbol-tree# - * @param {Object} object - * @return {Object} - */ - lastChild(object) { - return this._node(object).lastChild; - } - /** - * Returns the previous sibling of the given object. - * - * * `O(1)` - * - * @method previousSibling - * @memberOf module:symbol-tree# - * @param {Object} object - * @return {Object} - */ - previousSibling(object) { - return this._node(object).previousSibling; - } - /** - * Returns the next sibling of the given object. - * - * * `O(1)` - * - * @method nextSibling - * @memberOf module:symbol-tree# - * @param {Object} object - * @return {Object} - */ - nextSibling(object) { - return this._node(object).nextSibling; - } - /** - * Return the parent of the given object. - * - * * `O(1)` - * - * @method parent - * @memberOf module:symbol-tree# - * @param {Object} object - * @return {Object} - */ - parent(object) { - return this._node(object).parent; - } - /** - * Find the inclusive descendant that is last in tree order of the given object. - * - * * `O(n)` (worst case) where `n` is the depth of the subtree of `object` - * - * @method lastInclusiveDescendant - * @memberOf module:symbol-tree# - * @param {Object} object - * @return {Object} - */ - lastInclusiveDescendant(object) { - let lastChild; - let current = object; - while (lastChild = this._node(current).lastChild) { - current = lastChild; - } - return current; - } - /** - * Find the preceding object (A) of the given object (B). - * An object A is preceding an object B if A and B are in the same tree - * and A comes before B in tree order. - * - * * `O(n)` (worst case) - * * `O(1)` (amortized when walking the entire tree) - * - * @method preceding - * @memberOf module:symbol-tree# - * @param {Object} object - * @param {Object} [options] - * @param {Object} [options.root] If set, `root` must be an inclusive ancestor - * of the return value (or else null is returned). This check _assumes_ - * that `root` is also an inclusive ancestor of the given `object` - * @return {?Object} - */ - preceding(object, options) { - const treeRoot = options && options.root; - if (object === treeRoot) { - return null; - } - const previousSibling = this._node(object).previousSibling; - if (previousSibling) { - return this.lastInclusiveDescendant(previousSibling); - } - return this._node(object).parent; - } - /** - * Find the following object (A) of the given object (B). - * An object A is following an object B if A and B are in the same tree - * and A comes after B in tree order. - * - * * `O(n)` (worst case) where `n` is the amount of objects in the entire tree - * * `O(1)` (amortized when walking the entire tree) - * - * @method following - * @memberOf module:symbol-tree# - * @param {!Object} object - * @param {Object} [options] - * @param {Object} [options.root] If set, `root` must be an inclusive ancestor - * of the return value (or else null is returned). This check _assumes_ - * that `root` is also an inclusive ancestor of the given `object` - * @param {Boolean} [options.skipChildren=false] If set, ignore the children of `object` - * @return {?Object} - */ - following(object, options) { - const treeRoot = options && options.root; - const skipChildren = options && options.skipChildren; - const firstChild = !skipChildren && this._node(object).firstChild; - if (firstChild) { - return firstChild; - } - let current = object; - do { - if (current === treeRoot) { - return null; - } - const nextSibling = this._node(current).nextSibling; - if (nextSibling) { - return nextSibling; - } - current = this._node(current).parent; - } while (current); - return null; - } - /** - * Append all children of the given object to an array. - * - * * `O(n)` where `n` is the amount of children of the given `parent` - * - * @method childrenToArray - * @memberOf module:symbol-tree# - * @param {Object} parent - * @param {Object} [options] - * @param {Object[]} [options.array=[]] - * @param {Function} [options.filter] Function to test each object before it is added to the array. - * Invoked with arguments (object). Should return `true` if an object - * is to be included. - * @param {*} [options.thisArg] Value to use as `this` when executing `filter`. - * @return {Object[]} - */ - childrenToArray(parent, options) { - const array = options && options.array || []; - const filter2 = options && options.filter || returnTrue; - const thisArg = options && options.thisArg || void 0; - const parentNode = this._node(parent); - let object = parentNode.firstChild; - let index2 = 0; - while (object) { - const node2 = this._node(object); - node2.setCachedIndex(parentNode, index2); - if (filter2.call(thisArg, object)) { - array.push(object); - } - object = node2.nextSibling; - ++index2; - } - return array; - } - /** - * Append all inclusive ancestors of the given object to an array. - * - * * `O(n)` where `n` is the amount of ancestors of the given `object` - * - * @method ancestorsToArray - * @memberOf module:symbol-tree# - * @param {Object} object - * @param {Object} [options] - * @param {Object[]} [options.array=[]] - * @param {Function} [options.filter] Function to test each object before it is added to the array. - * Invoked with arguments (object). Should return `true` if an object - * is to be included. - * @param {*} [options.thisArg] Value to use as `this` when executing `filter`. - * @return {Object[]} - */ - ancestorsToArray(object, options) { - const array = options && options.array || []; - const filter2 = options && options.filter || returnTrue; - const thisArg = options && options.thisArg || void 0; - let ancestor = object; - while (ancestor) { - if (filter2.call(thisArg, ancestor)) { - array.push(ancestor); - } - ancestor = this._node(ancestor).parent; - } - return array; - } - /** - * Append all descendants of the given object to an array (in tree order). - * - * * `O(n)` where `n` is the amount of objects in the sub-tree of the given `object` - * - * @method treeToArray - * @memberOf module:symbol-tree# - * @param {Object} root - * @param {Object} [options] - * @param {Object[]} [options.array=[]] - * @param {Function} [options.filter] Function to test each object before it is added to the array. - * Invoked with arguments (object). Should return `true` if an object - * is to be included. - * @param {*} [options.thisArg] Value to use as `this` when executing `filter`. - * @return {Object[]} - */ - treeToArray(root6, options) { - const array = options && options.array || []; - const filter2 = options && options.filter || returnTrue; - const thisArg = options && options.thisArg || void 0; - let object = root6; - while (object) { - if (filter2.call(thisArg, object)) { - array.push(object); - } - object = this.following(object, { root: root6 }); - } - return array; - } - /** - * Iterate over all children of the given object - * - * * `O(1)` for a single iteration - * - * @method childrenIterator - * @memberOf module:symbol-tree# - * @param {Object} parent - * @param {Object} [options] - * @param {Boolean} [options.reverse=false] - * @return {Object} An iterable iterator (ES6) - */ - childrenIterator(parent, options) { - const reverse = options && options.reverse; - const parentNode = this._node(parent); - return new TreeIterator( - this, - parent, - reverse ? parentNode.lastChild : parentNode.firstChild, - reverse ? TreeIterator.PREV : TreeIterator.NEXT - ); - } - /** - * Iterate over all the previous siblings of the given object. (in reverse tree order) - * - * * `O(1)` for a single iteration - * - * @method previousSiblingsIterator - * @memberOf module:symbol-tree# - * @param {Object} object - * @return {Object} An iterable iterator (ES6) - */ - previousSiblingsIterator(object) { - return new TreeIterator( - this, - object, - this._node(object).previousSibling, - TreeIterator.PREV - ); - } - /** - * Iterate over all the next siblings of the given object. (in tree order) - * - * * `O(1)` for a single iteration - * - * @method nextSiblingsIterator - * @memberOf module:symbol-tree# - * @param {Object} object - * @return {Object} An iterable iterator (ES6) - */ - nextSiblingsIterator(object) { - return new TreeIterator( - this, - object, - this._node(object).nextSibling, - TreeIterator.NEXT - ); - } - /** - * Iterate over all inclusive ancestors of the given object - * - * * `O(1)` for a single iteration - * - * @method ancestorsIterator - * @memberOf module:symbol-tree# - * @param {Object} object - * @return {Object} An iterable iterator (ES6) - */ - ancestorsIterator(object) { - return new TreeIterator( - this, - object, - object, - TreeIterator.PARENT - ); - } - /** - * Iterate over all descendants of the given object (in tree order). - * - * Where `n` is the amount of objects in the sub-tree of the given `root`: - * - * * `O(n)` (worst case for a single iteration) - * * `O(n)` (amortized, when completing the iterator) - * - * @method treeIterator - * @memberOf module:symbol-tree# - * @param {Object} root - * @param {Object} options - * @param {Boolean} [options.reverse=false] - * @return {Object} An iterable iterator (ES6) - */ - treeIterator(root6, options) { - const reverse = options && options.reverse; - return new TreeIterator( - this, - root6, - reverse ? this.lastInclusiveDescendant(root6) : root6, - reverse ? TreeIterator.PRECEDING : TreeIterator.FOLLOWING - ); - } - /** - * Find the index of the given object (the number of preceding siblings). - * - * * `O(n)` where `n` is the amount of preceding siblings - * * `O(1)` (amortized, if the tree is not modified) - * - * @method index - * @memberOf module:symbol-tree# - * @param {Object} child - * @return {Number} The number of preceding siblings, or -1 if the object has no parent - */ - index(child) { - const childNode = this._node(child); - const parentNode = this._node(childNode.parent); - if (!parentNode) { - return -1; - } - let currentIndex = childNode.getCachedIndex(parentNode); - if (currentIndex >= 0) { - return currentIndex; - } - currentIndex = 0; - let object = parentNode.firstChild; - if (parentNode.childIndexCachedUpTo) { - const cachedUpToNode = this._node(parentNode.childIndexCachedUpTo); - object = cachedUpToNode.nextSibling; - currentIndex = cachedUpToNode.getCachedIndex(parentNode) + 1; - } - while (object) { - const node2 = this._node(object); - node2.setCachedIndex(parentNode, currentIndex); - if (object === child) { - break; - } - ++currentIndex; - object = node2.nextSibling; - } - parentNode.childIndexCachedUpTo = child; - return currentIndex; - } - /** - * Calculate the number of children. - * - * * `O(n)` where `n` is the amount of children - * * `O(1)` (amortized, if the tree is not modified) - * - * @method childrenCount - * @memberOf module:symbol-tree# - * @param {Object} parent - * @return {Number} - */ - childrenCount(parent) { - const parentNode = this._node(parent); - if (!parentNode.lastChild) { - return 0; - } - return this.index(parentNode.lastChild) + 1; - } - /** - * Compare the position of an object relative to another object. A bit set is returned: - * - * - * - * The semantics are the same as compareDocumentPosition in DOM, with the exception that - * DISCONNECTED never occurs with any other bit. - * - * where `n` and `m` are the amount of ancestors of `left` and `right`; - * where `o` is the amount of children of the lowest common ancestor of `left` and `right`: - * - * * `O(n + m + o)` (worst case) - * * `O(n + m)` (amortized, if the tree is not modified) - * - * @method compareTreePosition - * @memberOf module:symbol-tree# - * @param {Object} left - * @param {Object} right - * @return {Number} - */ - compareTreePosition(left, right) { - if (left === right) { - return 0; - } - const leftAncestors = []; - { - let leftAncestor = left; - while (leftAncestor) { - if (leftAncestor === right) { - return TreePosition.CONTAINS | TreePosition.PRECEDING; - } - leftAncestors.push(leftAncestor); - leftAncestor = this.parent(leftAncestor); - } - } - const rightAncestors = []; - { - let rightAncestor = right; - while (rightAncestor) { - if (rightAncestor === left) { - return TreePosition.CONTAINED_BY | TreePosition.FOLLOWING; - } - rightAncestors.push(rightAncestor); - rightAncestor = this.parent(rightAncestor); - } - } - const root6 = reverseArrayIndex(leftAncestors, 0); - if (!root6 || root6 !== reverseArrayIndex(rightAncestors, 0)) { - return TreePosition.DISCONNECTED; - } - let commonAncestorIndex = 0; - const ancestorsMinLength = Math.min(leftAncestors.length, rightAncestors.length); - for (let i11 = 0; i11 < ancestorsMinLength; ++i11) { - const leftAncestor = reverseArrayIndex(leftAncestors, i11); - const rightAncestor = reverseArrayIndex(rightAncestors, i11); - if (leftAncestor !== rightAncestor) { - break; - } - commonAncestorIndex = i11; - } - const leftIndex = this.index(reverseArrayIndex(leftAncestors, commonAncestorIndex + 1)); - const rightIndex = this.index(reverseArrayIndex(rightAncestors, commonAncestorIndex + 1)); - return rightIndex < leftIndex ? TreePosition.PRECEDING : TreePosition.FOLLOWING; - } - /** - * Remove the object from this tree. - * Has no effect if already removed. - * - * * `O(1)` - * - * @method remove - * @memberOf module:symbol-tree# - * @param {Object} removeObject - * @return {Object} removeObject - */ - remove(removeObject) { - const removeNode = this._node(removeObject); - const parentNode = this._node(removeNode.parent); - const prevNode = this._node(removeNode.previousSibling); - const nextNode = this._node(removeNode.nextSibling); - if (parentNode) { - if (parentNode.firstChild === removeObject) { - parentNode.firstChild = removeNode.nextSibling; - } - if (parentNode.lastChild === removeObject) { - parentNode.lastChild = removeNode.previousSibling; - } - } - if (prevNode) { - prevNode.nextSibling = removeNode.nextSibling; - } - if (nextNode) { - nextNode.previousSibling = removeNode.previousSibling; - } - removeNode.parent = null; - removeNode.previousSibling = null; - removeNode.nextSibling = null; - removeNode.cachedIndex = -1; - removeNode.cachedIndexVersion = NaN; - if (parentNode) { - parentNode.childrenChanged(); - } - return removeObject; - } - /** - * Insert the given object before the reference object. - * `newObject` is now the previous sibling of `referenceObject`. - * - * * `O(1)` - * - * @method insertBefore - * @memberOf module:symbol-tree# - * @param {Object} referenceObject - * @param {Object} newObject - * @throws {Error} If the newObject is already present in this SymbolTree - * @return {Object} newObject - */ - insertBefore(referenceObject, newObject) { - const referenceNode = this._node(referenceObject); - const prevNode = this._node(referenceNode.previousSibling); - const newNode = this._node(newObject); - const parentNode = this._node(referenceNode.parent); - if (newNode.isAttached) { - throw Error("Given object is already present in this SymbolTree, remove it first"); - } - newNode.parent = referenceNode.parent; - newNode.previousSibling = referenceNode.previousSibling; - newNode.nextSibling = referenceObject; - referenceNode.previousSibling = newObject; - if (prevNode) { - prevNode.nextSibling = newObject; - } - if (parentNode && parentNode.firstChild === referenceObject) { - parentNode.firstChild = newObject; - } - if (parentNode) { - parentNode.childrenChanged(); - } - return newObject; - } - /** - * Insert the given object after the reference object. - * `newObject` is now the next sibling of `referenceObject`. - * - * * `O(1)` - * - * @method insertAfter - * @memberOf module:symbol-tree# - * @param {Object} referenceObject - * @param {Object} newObject - * @throws {Error} If the newObject is already present in this SymbolTree - * @return {Object} newObject - */ - insertAfter(referenceObject, newObject) { - const referenceNode = this._node(referenceObject); - const nextNode = this._node(referenceNode.nextSibling); - const newNode = this._node(newObject); - const parentNode = this._node(referenceNode.parent); - if (newNode.isAttached) { - throw Error("Given object is already present in this SymbolTree, remove it first"); - } - newNode.parent = referenceNode.parent; - newNode.previousSibling = referenceObject; - newNode.nextSibling = referenceNode.nextSibling; - referenceNode.nextSibling = newObject; - if (nextNode) { - nextNode.previousSibling = newObject; - } - if (parentNode && parentNode.lastChild === referenceObject) { - parentNode.lastChild = newObject; - } - if (parentNode) { - parentNode.childrenChanged(); - } - return newObject; - } - /** - * Insert the given object as the first child of the given reference object. - * `newObject` is now the first child of `referenceObject`. - * - * * `O(1)` - * - * @method prependChild - * @memberOf module:symbol-tree# - * @param {Object} referenceObject - * @param {Object} newObject - * @throws {Error} If the newObject is already present in this SymbolTree - * @return {Object} newObject - */ - prependChild(referenceObject, newObject) { - const referenceNode = this._node(referenceObject); - const newNode = this._node(newObject); - if (newNode.isAttached) { - throw Error("Given object is already present in this SymbolTree, remove it first"); - } - if (referenceNode.hasChildren) { - this.insertBefore(referenceNode.firstChild, newObject); - } else { - newNode.parent = referenceObject; - referenceNode.firstChild = newObject; - referenceNode.lastChild = newObject; - referenceNode.childrenChanged(); - } - return newObject; - } - /** - * Insert the given object as the last child of the given reference object. - * `newObject` is now the last child of `referenceObject`. - * - * * `O(1)` - * - * @method appendChild - * @memberOf module:symbol-tree# - * @param {Object} referenceObject - * @param {Object} newObject - * @throws {Error} If the newObject is already present in this SymbolTree - * @return {Object} newObject - */ - appendChild(referenceObject, newObject) { - const referenceNode = this._node(referenceObject); - const newNode = this._node(newObject); - if (newNode.isAttached) { - throw Error("Given object is already present in this SymbolTree, remove it first"); - } - if (referenceNode.hasChildren) { - this.insertAfter(referenceNode.lastChild, newObject); - } else { - newNode.parent = referenceObject; - referenceNode.firstChild = newObject; - referenceNode.lastChild = newObject; - referenceNode.childrenChanged(); - } - return newObject; - } - }; - module.exports = SymbolTree; - SymbolTree.TreePosition = TreePosition; - } -}); - -// node_modules/.pnpm/@push.rocks+lik@6.2.2/node_modules/@push.rocks/lik/dist_ts/classes.plugins.js -var import_symbol_tree; -var init_classes_plugins = __esm({ - "node_modules/.pnpm/@push.rocks+lik@6.2.2/node_modules/@push.rocks/lik/dist_ts/classes.plugins.js"() { - init_dist_ts3(); - init_dist_ts5(); - init_dist_ts(); - init_dist_ts2(); - init_dist_ts6(); - import_symbol_tree = __toESM(require_SymbolTree(), 1); - } -}); - -// node_modules/.pnpm/@push.rocks+lik@6.2.2/node_modules/@push.rocks/lik/dist_ts/classes.asyncexecutionstack.js -var AsyncExecutionStack; -var init_classes_asyncexecutionstack = __esm({ - "node_modules/.pnpm/@push.rocks+lik@6.2.2/node_modules/@push.rocks/lik/dist_ts/classes.asyncexecutionstack.js"() { - init_classes_plugins(); - AsyncExecutionStack = class { - constructor() { - this.executionSlots = []; - this.isProcessing = false; - this.nonExclusiveMaxConcurrency = Infinity; - this.nonExclusiveCurrentCount = 0; - this.nonExclusivePendingQueue = []; - } - async getExclusiveExecutionSlot(funcArg, timeoutArg) { - const executionDeferred = dist_ts_exports.defer(); - const executionSlot = { - funcToExecute: funcArg, - executionDeferred, - timeout: timeoutArg, - mode: "exclusive" - }; - this.executionSlots.push(executionSlot); - this.processExecutionSlots(); - return executionDeferred.promise; - } - async getNonExclusiveExecutionSlot(funcArg, timeoutArg) { - const executionDeferred = dist_ts_exports.defer(); - const executionSlot = { - funcToExecute: funcArg, - executionDeferred, - timeout: timeoutArg, - mode: "nonexclusive" - }; - this.executionSlots.push(executionSlot); - this.processExecutionSlots(); - return executionDeferred.promise; - } - /** - * Set the maximum number of concurrent non-exclusive tasks. - * @param concurrency minimum 1 (Infinity means unlimited) - */ - setNonExclusiveMaxConcurrency(concurrency) { - if (!Number.isFinite(concurrency) || concurrency < 1) { - throw new Error("nonExclusiveMaxConcurrency must be a finite number >= 1"); - } - this.nonExclusiveMaxConcurrency = concurrency; - } - /** Get the configured max concurrency for non-exclusive tasks */ - getNonExclusiveMaxConcurrency() { - return this.nonExclusiveMaxConcurrency; - } - /** Number of non-exclusive tasks currently running */ - getActiveNonExclusiveCount() { - return this.nonExclusiveCurrentCount; - } - /** Number of non-exclusive tasks waiting for a free slot */ - getPendingNonExclusiveCount() { - return this.nonExclusivePendingQueue.length; - } - async processExecutionSlots() { - if (this.isProcessing) { - return; - } - this.isProcessing = true; - while (this.executionSlots.length > 0) { - const currentSlot = this.executionSlots[0]; - if (currentSlot.mode === "exclusive") { - await this.executeExclusiveSlot(currentSlot); - this.executionSlots.shift(); - } else { - const nonExclusiveSlots = []; - while (this.executionSlots.length > 0 && this.executionSlots[0].mode === "nonexclusive") { - nonExclusiveSlots.push(this.executionSlots.shift()); - } - await this.executeNonExclusiveSlots(nonExclusiveSlots); - } - } - this.isProcessing = false; - } - async executeExclusiveSlot(slot) { - try { - if (slot.timeout) { - const result = await Promise.race([ - slot.funcToExecute(), - dist_ts_exports3.delayFor(slot.timeout).then(() => { - throw new Error("Timeout reached"); - }) - ]); - slot.executionDeferred.resolve(result); - } else { - const result = await slot.funcToExecute(); - slot.executionDeferred.resolve(result); - } - } catch (error) { - slot.executionDeferred.reject(error); - } - } - async executeNonExclusiveSlots(slots) { - const promises = slots.map(async (slot) => { - await this.waitForNonExclusiveSlot(); - try { - if (slot.timeout) { - const result = await Promise.race([ - slot.funcToExecute(), - dist_ts_exports3.delayFor(slot.timeout).then(() => { - throw new Error("Timeout reached"); - }) - ]); - slot.executionDeferred.resolve(result); - } else { - const result = await slot.funcToExecute(); - slot.executionDeferred.resolve(result); - } - } catch (error) { - slot.executionDeferred.reject(error); - } finally { - this.releaseNonExclusiveSlot(); - } - }); - await Promise.all(promises); - } - /** - * Wait until a non-exclusive slot is available (respects max concurrency). - */ - waitForNonExclusiveSlot() { - if (this.nonExclusiveCurrentCount < this.nonExclusiveMaxConcurrency) { - this.nonExclusiveCurrentCount++; - return Promise.resolve(); - } - return new Promise((resolve2) => { - this.nonExclusivePendingQueue.push(() => { - this.nonExclusiveCurrentCount++; - resolve2(); - }); - }); - } - /** Release a non-exclusive slot and wake the next waiter, if any. */ - releaseNonExclusiveSlot() { - this.nonExclusiveCurrentCount--; - const next2 = this.nonExclusivePendingQueue.shift(); - if (next2) { - next2(); - } - } - }; - } -}); - -// node_modules/.pnpm/@push.rocks+lik@6.2.2/node_modules/@push.rocks/lik/dist_ts/classes.backpressuredarray.js -var BackpressuredArray; -var init_classes_backpressuredarray = __esm({ - "node_modules/.pnpm/@push.rocks+lik@6.2.2/node_modules/@push.rocks/lik/dist_ts/classes.backpressuredarray.js"() { - init_classes_plugins(); - BackpressuredArray = class { - constructor(highWaterMark = 16) { - this.hasSpace = new dist_ts_exports2.rxjs.Subject(); - this.itemsAvailable = new dist_ts_exports2.rxjs.Subject(); - this.data = []; - this.highWaterMark = highWaterMark; - } - push(item) { - this.data.push(item); - this.itemsAvailable.next("itemsAvailable"); - const spaceAvailable = this.checkSpaceAvailable(); - if (spaceAvailable) { - this.hasSpace.next("hasSpace"); - } - return spaceAvailable; - } - shift() { - const item = this.data.shift(); - if (this.checkSpaceAvailable()) { - this.hasSpace.next("hasSpace"); - } - return item; - } - checkSpaceAvailable() { - return this.data.length < this.highWaterMark; - } - checkHasItems() { - return this.data.length > 0; - } - waitForSpace() { - return new Promise((resolve2) => { - if (this.checkSpaceAvailable()) { - resolve2(); - } else { - const subscription = this.hasSpace.subscribe(() => { - subscription.unsubscribe(); - resolve2(); - }); - } - }); - } - waitForItems() { - return new Promise((resolve2) => { - if (this.data.length > 0) { - resolve2(); - } else { - const subscription = this.itemsAvailable.subscribe(() => { - subscription.unsubscribe(); - resolve2(); - }); - } - }); - } - }; - } -}); - -// node_modules/.pnpm/@push.rocks+lik@6.2.2/node_modules/@push.rocks/lik/dist_ts/classes.fastmap.js -var FastMap; -var init_classes_fastmap = __esm({ - "node_modules/.pnpm/@push.rocks+lik@6.2.2/node_modules/@push.rocks/lik/dist_ts/classes.fastmap.js"() { - init_classes_plugins(); - FastMap = class _FastMap { - constructor() { - this.mapObject = {}; - } - isUniqueKey(keyArg) { - return this.mapObject[keyArg] ? false : true; - } - addToMap(keyArg, objectArg, optionsArg) { - if (this.isUniqueKey(keyArg) || optionsArg && optionsArg.force) { - this.mapObject[keyArg] = objectArg; - return true; - } else { - return false; - } - } - getByKey(keyArg) { - return this.mapObject[keyArg]; - } - removeFromMap(keyArg) { - const removedItem = this.getByKey(keyArg); - delete this.mapObject[keyArg]; - return removedItem; - } - getKeys() { - const keys2 = []; - for (const keyArg in this.mapObject) { - if (this.mapObject[keyArg]) { - keys2.push(keyArg); - } - } - return keys2; - } - clean() { - this.mapObject = {}; - } - /** - * returns a new Fastmap that includes all values from this and all from the fastmap in the argument - */ - concat(fastMapArg) { - const concatedFastmap = new _FastMap(); - for (const key2 of this.getKeys()) { - concatedFastmap.addToMap(key2, this.getByKey(key2)); - } - for (const key2 of fastMapArg.getKeys()) { - concatedFastmap.addToMap(key2, fastMapArg.getByKey(key2), { - force: true - }); - } - return concatedFastmap; - } - /** - * tries to merge another Fastmap - * Note: uniqueKeyCollisions will cause overwrite - * @param fastMapArg - */ - addAllFromOther(fastMapArg) { - for (const key2 of fastMapArg.getKeys()) { - this.addToMap(key2, fastMapArg.getByKey(key2), { - force: true - }); - } - } - async find(findFunctionArg) { - for (const key2 of this.getKeys()) { - const item = this.getByKey(key2); - const findFunctionResult = await findFunctionArg(item); - if (findFunctionResult) { - return item; - } - } - } - }; - } -}); - -// node_modules/.pnpm/@push.rocks+lik@6.2.2/node_modules/@push.rocks/lik/dist_ts/classes.objectmap.js -var uni, ObjectMap; -var init_classes_objectmap = __esm({ - "node_modules/.pnpm/@push.rocks+lik@6.2.2/node_modules/@push.rocks/lik/dist_ts/classes.objectmap.js"() { - init_classes_plugins(); - init_classes_fastmap(); - uni = (prefix4 = "uni") => { - return `${prefix4}xxxxxxxxxxx`.replace(/[xy]/g, (c11) => { - const r11 = Math.random() * 16 | 0; - const v5 = c11 === "x" ? r11 : r11 & 3 | 8; - return v5.toString(16); - }); - }; - ObjectMap = class _ObjectMap { - /** - * returns a new instance - */ - constructor() { - this.fastMap = new FastMap(); - this.eventSubject = new dist_ts_exports2.rxjs.Subject(); - } - /** - * adds an object mapped to a string - * the string must be unique - */ - addMappedUnique(uniqueKeyArg, objectArg) { - this.fastMap.addToMap(uniqueKeyArg, objectArg); - } - /** - * fastest way to get an object from the map - * @param uniqueKey - */ - getMappedUnique(uniqueKeyArg) { - return this.fastMap.getByKey(uniqueKeyArg); - } - /** - * remove key - * @param functionArg - */ - removeMappedUnique(uniqueKey) { - const object = this.getMappedUnique(uniqueKey); - } - /** - * add object to Objectmap - * returns false if the object is already in the map - * returns true if the object was added successfully - */ - add(objectArg) { - for (const keyArg of this.fastMap.getKeys()) { - const object = this.fastMap.getByKey(keyArg); - if (object === objectArg) { - return keyArg; - } - } - const uniqueKey = uni("key"); - this.addMappedUnique(uniqueKey, objectArg); - this.eventSubject.next({ - operation: "add", - payload: objectArg - }); - return uniqueKey; - } - /** - * like .add but adds an whole array of objects - */ - addArray(objectArrayArg) { - for (const item of objectArrayArg) { - this.add(item); - } - } - /** - * check if object is in Objectmap - */ - checkForObject(objectArg) { - return !!this.getKeyForObject(objectArg); - } - /** - * get key for object - * @param findFunction - */ - getKeyForObject(objectArg) { - let foundKey = null; - for (const keyArg of this.fastMap.getKeys()) { - if (!foundKey && this.fastMap.getByKey(keyArg) === objectArg) { - foundKey = keyArg; - } else { - continue; - } - } - return foundKey; - } - /** - * find object - */ - async find(findFunction) { - return this.fastMap.find(findFunction); - } - findSync(findFunction) { - for (const keyArg of this.fastMap.getKeys()) { - if (findFunction(this.fastMap.getByKey(keyArg))) { - return this.getMappedUnique(keyArg); - } - } - } - /** - * finds a specific element and then removes it - */ - async findOneAndRemove(findFunction) { - const foundElement = await this.find(findFunction); - if (foundElement) { - this.remove(foundElement); - } - return foundElement; - } - findOneAndRemoveSync(findFunction) { - const foundElement = this.findSync(findFunction); - if (foundElement) { - this.remove(foundElement); - } - return foundElement; - } - /** - * run function for each item in Objectmap - */ - async forEach(functionArg) { - for (const keyArg of this.fastMap.getKeys()) { - await functionArg(this.fastMap.getByKey(keyArg)); - } - } - /** - * gets an object in the Observablemap and removes it, so it can't be retrieved again - */ - getOneAndRemove() { - const keys2 = this.fastMap.getKeys(); - if (keys2.length === 0) { - return null; - } else { - const keyToUse = keys2[0]; - const removedItem = this.fastMap.removeFromMap(keyToUse); - this.eventSubject.next({ - operation: "remove", - payload: removedItem - }); - return removedItem; - } - } - /** - * returns a cloned array of all the objects currently in the Objectmap - */ - getArray() { - const returnArray = []; - for (const keyArg of this.fastMap.getKeys()) { - returnArray.push(this.fastMap.getByKey(keyArg)); - } - return returnArray; - } - /** - * check if Objectmap ist empty - */ - isEmpty() { - return this.fastMap.getKeys().length === 0; - } - /** - * remove object from Objectmap - */ - remove(objectArg) { - if (this.checkForObject(objectArg)) { - const keyArg = this.getKeyForObject(objectArg); - const removedObject = this.fastMap.removeFromMap(keyArg); - this.eventSubject.next({ - operation: "remove", - payload: removedObject - }); - return removedObject; - } - return null; - } - /** - * wipe Objectmap - */ - wipe() { - for (const keyArg of this.fastMap.getKeys()) { - this.fastMap.removeFromMap(keyArg); - } - } - /** - * returns a new Objectmap that includes - */ - concat(objectMapArg) { - const concattedObjectMap = new _ObjectMap(); - concattedObjectMap.fastMap.addAllFromOther(this.fastMap); - concattedObjectMap.fastMap.addAllFromOther(objectMapArg.fastMap); - return concattedObjectMap; - } - /** - * tries to merge another Objectmap - * Note: uniqueKeyCollisions will cause overwrite - * @param objectMapArg - */ - addAllFromOther(objectMapArg) { - this.fastMap.addAllFromOther(objectMapArg.fastMap); - } - }; - } -}); - -// node_modules/.pnpm/@push.rocks+lik@6.2.2/node_modules/@push.rocks/lik/dist_ts/classes.interestmap.interest.js -var Interest; -var init_classes_interestmap_interest = __esm({ - "node_modules/.pnpm/@push.rocks+lik@6.2.2/node_modules/@push.rocks/lik/dist_ts/classes.interestmap.interest.js"() { - init_classes_plugins(); - init_classes_interestmap(); - Interest = class { - /** - * quick access to a string that makes the interest comparable for checking for similar interests - */ - get comparisonString() { - return this.comparisonFunc(this.originalInterest); - } - /** - * fullfill the interest - */ - fullfillInterest(objectArg) { - this.isFullfilled = true; - this.fullfillmentStore = []; - this.interestDeferred.resolve(objectArg); - } - /** - * - */ - constructor(interestMapArg, interestArg, comparisonFuncArg, optionsArg) { - this.destructionTimer = new dist_ts_exports7.Timer(1e4); - this.isFullfilled = false; - this.fullfillmentStore = []; - this.interestDeferred = new dist_ts_exports.Deferred(); - this.interestFullfilled = this.interestDeferred.promise; - this.interestMapRef = interestMapArg; - this.originalInterest = interestArg; - this.comparisonFunc = comparisonFuncArg; - this.options = optionsArg; - this.destructionTimer.completed.then(() => { - this.destroy(); - }); - if (this.options?.markLostAfterDefault) { - dist_ts_exports3.delayFor(this.options.markLostAfterDefault).then(this.markLost); - } - } - // =============================== - // LIFECYCLE MANAGEMENT - // =============================== - /** - * self destructs the interest - */ - destroy() { - this.interestMapRef.removeInterest(this); - if (!this.isFullfilled && this.options.defaultFullfillment) { - this.fullfillInterest(this.options.defaultFullfillment); - } - } - /** - * notifies the interest that the interest in it has been lost - */ - markLost() { - this.destructionTimer.start(); - } - /** - * notifies the interest that the interest in it has been restored - */ - renew() { - this.destructionTimer.reset(); - } - }; - } -}); - -// node_modules/.pnpm/@push.rocks+lik@6.2.2/node_modules/@push.rocks/lik/dist_ts/classes.interestmap.js -var InterestMap; -var init_classes_interestmap = __esm({ - "node_modules/.pnpm/@push.rocks+lik@6.2.2/node_modules/@push.rocks/lik/dist_ts/classes.interestmap.js"() { - init_classes_plugins(); - init_classes_objectmap(); - init_classes_interestmap_interest(); - InterestMap = class { - constructor(comparisonFuncArg, optionsArg = {}) { - this.interestObjectMap = new ObjectMap(); - this.interestObservable = new dist_ts_exports2.ObservableIntake(); - this.comparisonFunc = comparisonFuncArg; - this.options = optionsArg; - } - /** - * adds an interest to the InterestMap - * @param interestId - */ - async addInterest(interestId, defaultFullfillmentArg) { - const comparisonString = this.comparisonFunc(interestId); - let returnInterest; - const newInterest = new Interest(this, interestId, this.comparisonFunc, { - markLostAfterDefault: this.options.markLostAfterDefault, - defaultFullfillment: defaultFullfillmentArg - }); - let interestExists = false; - await this.interestObjectMap.forEach((interestArg) => { - if (!interestExists && interestArg.comparisonString === newInterest.comparisonString) { - console.log("info", `interest already exists for ${newInterest.comparisonString}`); - interestExists = true; - returnInterest = interestArg; - returnInterest.renew(); - } - }); - if (!returnInterest) { - returnInterest = newInterest; - this.interestObjectMap.add(returnInterest); - } - this.interestObservable.push(returnInterest); - return returnInterest; - } - /** - * removes an interest from the interest map - */ - removeInterest(interestArg) { - const interestToRemove = this.interestObjectMap.findOneAndRemoveSync((interestArg2) => { - return interestArg.comparisonString === interestArg2.comparisonString; - }); - } - /** - * check interest - */ - checkInterest(objectArg) { - const comparisonString = this.comparisonFunc(objectArg); - return this.checkInterestByString(comparisonString); - } - /** - * checks an interest - * @param comparisonStringArg - */ - checkInterestByString(comparisonStringArg) { - const foundInterest = this.interestObjectMap.findSync((interest) => { - return interest.comparisonString === comparisonStringArg; - }); - if (foundInterest) { - return true; - } else { - return false; - } - } - /** - * inform lost interest - * @param interestId - */ - informLostInterest(interestId) { - const wantedInterest = this.findInterest(interestId); - if (wantedInterest) { - wantedInterest.markLost(); - } - } - /** - * finds an interest - * @param interestId - */ - findInterest(interestId) { - const comparableString = this.comparisonFunc(interestId); - const interest = this.interestObjectMap.findSync((interestArg) => { - return interestArg.comparisonString === comparableString; - }); - return interest; - } - }; - } -}); - -// node_modules/.pnpm/@push.rocks+lik@6.2.2/node_modules/@push.rocks/lik/dist_ts/classes.limitedarray.js -var LimitedArray; -var init_classes_limitedarray = __esm({ - "node_modules/.pnpm/@push.rocks+lik@6.2.2/node_modules/@push.rocks/lik/dist_ts/classes.limitedarray.js"() { - init_classes_plugins(); - LimitedArray = class { - constructor(limitArg) { - this.array = []; - this.arrayLimit = limitArg; - } - addOne(objectArg) { - this.array.unshift(objectArg); - if (this.array.length > this.arrayLimit) { - this.array.length = this.arrayLimit; - } - } - addMany(objectArrayArg) { - for (let objectArg of objectArrayArg) { - this.addOne(objectArg); - } - } - setLimit(limitArg) { - this.arrayLimit = limitArg; - if (this.array.length > this.arrayLimit) { - this.array.length = this.arrayLimit; - } - } - getAverage() { - if (typeof this.array[0] === "number") { - let sum = 0; - for (let localNumber of this.array) { - let localNumberAny = localNumber; - sum = sum + localNumberAny; - } - return sum / this.array.length; - } else { - return null; - } - } - }; - } -}); - -// node_modules/.pnpm/@push.rocks+lik@6.2.2/node_modules/@push.rocks/lik/dist_ts/classes.looptracker.js -var LoopTracker; -var init_classes_looptracker = __esm({ - "node_modules/.pnpm/@push.rocks+lik@6.2.2/node_modules/@push.rocks/lik/dist_ts/classes.looptracker.js"() { - init_classes_plugins(); - init_classes_objectmap(); - LoopTracker = class { - constructor() { - this.referenceObjectMap = new ObjectMap(); - } - /** - * checks and tracks an object - * @param objectArg - */ - checkAndTrack(objectArg) { - if (!this.referenceObjectMap.checkForObject(objectArg)) { - this.referenceObjectMap.add(objectArg); - return true; - } else { - return false; - } - } - }; - } -}); - -// node_modules/.pnpm/@push.rocks+lik@6.2.2/node_modules/@push.rocks/lik/dist_ts/classes.stringmap.js -var Stringmap; -var init_classes_stringmap = __esm({ - "node_modules/.pnpm/@push.rocks+lik@6.2.2/node_modules/@push.rocks/lik/dist_ts/classes.stringmap.js"() { - init_classes_plugins(); - Stringmap = class { - constructor() { - this._stringArray = []; - this._triggerUntilTrueFunctionArray = []; - } - /** - * add a string to the Stringmap - */ - addString(stringArg) { - this._stringArray.push(stringArg); - this.notifyTrigger(); - } - /** - * like addString, but accepts an array of strings - */ - addStringArray(stringArrayArg) { - for (const stringItem of stringArrayArg) { - this.addString(stringItem); - } - } - /** - * removes a string from Stringmap - */ - removeString(stringArg) { - for (const keyArg in this._stringArray) { - if (this._stringArray[keyArg] === stringArg) { - this._stringArray.splice(parseInt(keyArg), 1); - } - } - this.notifyTrigger(); - } - /** - * wipes the Stringmap - */ - wipe() { - this._stringArray = []; - this.notifyTrigger(); - } - /** - * check if string is in Stringmap - */ - checkString(stringArg) { - return this._stringArray.indexOf(stringArg) !== -1; - } - /** - * checks stringPresence with minimatch - */ - checkMinimatch(miniMatchStringArg) { - const smartMatchInstance = new dist_ts_exports5.SmartMatch(miniMatchStringArg); - let foundMatch = false; - for (const stringItem of this._stringArray) { - if (smartMatchInstance.match(stringItem)) { - foundMatch = true; - } - } - return foundMatch; - } - /** - * checks if the Stringmap is empty - */ - checkIsEmpty() { - return this._stringArray.length === 0; - } - /** - * gets a cloned copy of the current string Array - */ - getStringArray() { - const returnArray = []; - for (const stringItem of this._stringArray) { - returnArray.push(stringItem); - } - return returnArray; - } - // trigger registering - /** - * register a new trigger - */ - registerUntilTrue(functionArg, callbackArg) { - const trueDeferred = dist_ts_exports.defer(); - this._triggerUntilTrueFunctionArray.push(() => { - const result = functionArg(this.getStringArray()); - if (result === true) { - if (callbackArg) { - callbackArg(); - } - trueDeferred.resolve(); - } - return result; - }); - this.notifyTrigger(); - return trueDeferred.promise; - } - /** - * notifies triggers - */ - notifyTrigger() { - const filteredArray = this._triggerUntilTrueFunctionArray.filter((functionArg) => { - return !functionArg(); - }); - this._triggerUntilTrueFunctionArray = filteredArray; - } - }; - } -}); - -// node_modules/.pnpm/@push.rocks+lik@6.2.2/node_modules/@push.rocks/lik/dist_ts/classes.timedaggregator.js -var TimedAggregtor; -var init_classes_timedaggregator = __esm({ - "node_modules/.pnpm/@push.rocks+lik@6.2.2/node_modules/@push.rocks/lik/dist_ts/classes.timedaggregator.js"() { - init_classes_plugins(); - TimedAggregtor = class { - constructor(optionsArg) { - this.storageArray = []; - this.options = optionsArg; - } - checkAggregationStatus() { - const addAggregationTimer = () => { - this.aggregationTimer = new dist_ts_exports7.Timer(this.options.aggregationIntervalInMillis); - this.aggregationTimer.completed.then(() => { - const aggregateForProcessing = this.storageArray; - if (aggregateForProcessing.length === 0) { - this.aggregationTimer = null; - return; - } - this.storageArray = []; - addAggregationTimer(); - this.options.functionForAggregation(aggregateForProcessing); - }); - this.aggregationTimer.start(); - }; - if (!this.aggregationTimer) { - addAggregationTimer(); - } - } - add(aggregationArg) { - this.storageArray.push(aggregationArg); - this.checkAggregationStatus(); - } - }; - } -}); - -// node_modules/.pnpm/@push.rocks+lik@6.2.2/node_modules/@push.rocks/lik/dist_ts/classes.tree.js -var Tree; -var init_classes_tree = __esm({ - "node_modules/.pnpm/@push.rocks+lik@6.2.2/node_modules/@push.rocks/lik/dist_ts/classes.tree.js"() { - init_classes_plugins(); - Tree = class { - constructor() { - this.symbolTree = new import_symbol_tree.default(); - } - // ======================================= - // Functions that map to the functionality of symbol-tree - // ======================================= - /** - * - * @param objectArg - */ - initialize(objectArg) { - return this.symbolTree.initialize(objectArg); - } - hasChildren(objectArg) { - return this.symbolTree.hasChildren(objectArg); - } - firstChild(objectArg) { - return this.symbolTree.firstChild(objectArg); - } - lastChild(objectArg) { - return this.symbolTree.lastChild(objectArg); - } - previousSibling(objectArg) { - return this.symbolTree.previousSibling(objectArg); - } - nextSibling(objectArg) { - return this.symbolTree.nextSibling(objectArg); - } - parent(objectArg) { - return this.symbolTree.parent(objectArg); - } - lastInclusiveDescendant(objectArg) { - return this.symbolTree.lastInclusiveDescendant(objectArg); - } - preceding(objectArg, optionsArg) { - return this.symbolTree.preceding(objectArg, optionsArg); - } - following(object, optionsArg) { - return this.symbolTree.following(object, optionsArg); - } - childrenToArray(parentArg, optionsArg) { - return this.symbolTree.childrenToArray(parentArg, optionsArg); - } - ancestorsToArray(objectArg, optionsArg) { - return this.symbolTree.ancestorsToArray(objectArg, optionsArg); - } - treeToArray(rootArg, optionsArg) { - return this.symbolTree.treeToArray(rootArg, optionsArg); - } - childrenIterator(parentArg, optionsArg) { - return this.symbolTree.childrenIterator(parentArg, optionsArg); - } - previousSiblingsIterator(objectArg) { - return this.symbolTree.previousSiblingsIterator(objectArg); - } - nextSiblingsIterator(objectArg) { - return this.symbolTree.nextSiblingsIterator(); - } - ancestorsIterator(objectArg) { - this.symbolTree.ancestorsIterator(); - } - treeIterator(rootArg, optionsArg) { - return this.symbolTree.treeIterator(rootArg); - } - index(childArg) { - return this.symbolTree.index(childArg); - } - childrenCount(parentArg) { - return this.symbolTree.childrenCount(parentArg); - } - compareTreePosition(leftArg, rightArg) { - return this.compareTreePosition(leftArg, rightArg); - } - remove(removeObjectArg) { - return this.symbolTree.remove(removeObjectArg); - } - insertBefore(referenceObjectArg, newObjectArg) { - return this.symbolTree.insertBefore(referenceObjectArg, newObjectArg); - } - insertAfter(referenceObject, newObjectArg) { - return this.symbolTree.insertAfter(referenceObject, newObjectArg); - } - prependChild(referenceObjectArg, newObjectArg) { - return this.symbolTree.prependChild(referenceObjectArg, newObjectArg); - } - appendChild(referenceObjectArg, newObjectArg) { - return this.symbolTree.appendChild(referenceObjectArg, newObjectArg); - } - // =========================================== - // Functionionality that extends symbol-tree - // =========================================== - /** - * returns a branch of the tree as JSON - * can be user - */ - toJsonWithHierachy(rootElement) { - const treeIterable = this.treeIterator(rootElement, {}); - for (const treeItem of treeIterable) { - console.log(treeItem); - } - } - /** - * builds a tree from a JSON with hierachy - * @param rootElement - */ - fromJsonWithHierachy(rootElement) { - } - }; - } -}); - -// node_modules/.pnpm/@push.rocks+lik@6.2.2/node_modules/@push.rocks/lik/dist_ts/index.js -var dist_ts_exports6 = {}; -__export(dist_ts_exports6, { - AsyncExecutionStack: () => AsyncExecutionStack, - BackpressuredArray: () => BackpressuredArray, - FastMap: () => FastMap, - Interest: () => Interest, - InterestMap: () => InterestMap, - LimitedArray: () => LimitedArray, - LoopTracker: () => LoopTracker, - ObjectMap: () => ObjectMap, - Stringmap: () => Stringmap, - TimedAggregtor: () => TimedAggregtor, - Tree: () => Tree, - uni: () => uni -}); -var init_dist_ts7 = __esm({ - "node_modules/.pnpm/@push.rocks+lik@6.2.2/node_modules/@push.rocks/lik/dist_ts/index.js"() { - init_classes_asyncexecutionstack(); - init_classes_backpressuredarray(); - init_classes_fastmap(); - init_classes_interestmap(); - init_classes_interestmap_interest(); - init_classes_limitedarray(); - init_classes_looptracker(); - init_classes_objectmap(); - init_classes_stringmap(); - init_classes_timedaggregator(); - init_classes_tree(); - } -}); - -// node_modules/.pnpm/uint8array-extras@1.5.0/node_modules/uint8array-extras/index.js -var uint8array_extras_exports = {}; -__export(uint8array_extras_exports, { - areUint8ArraysEqual: () => areUint8ArraysEqual, - assertUint8Array: () => assertUint8Array, - assertUint8ArrayOrArrayBuffer: () => assertUint8ArrayOrArrayBuffer, - base64ToString: () => base64ToString, - base64ToUint8Array: () => base64ToUint8Array, - compareUint8Arrays: () => compareUint8Arrays, - concatUint8Arrays: () => concatUint8Arrays, - getUintBE: () => getUintBE, - hexToUint8Array: () => hexToUint8Array, - includes: () => includes, - indexOf: () => indexOf, - isUint8Array: () => isUint8Array, - stringToBase64: () => stringToBase64, - stringToUint8Array: () => stringToUint8Array, - toUint8Array: () => toUint8Array, - uint8ArrayToBase64: () => uint8ArrayToBase64, - uint8ArrayToHex: () => uint8ArrayToHex, - uint8ArrayToString: () => uint8ArrayToString -}); -function isType(value2, typeConstructor, typeStringified) { - if (!value2) { - return false; - } - if (value2.constructor === typeConstructor) { - return true; - } - return objectToString.call(value2) === typeStringified; -} -function isUint8Array(value2) { - return isType(value2, Uint8Array, uint8ArrayStringified); -} -function isArrayBuffer(value2) { - return isType(value2, ArrayBuffer, arrayBufferStringified); -} -function isUint8ArrayOrArrayBuffer(value2) { - return isUint8Array(value2) || isArrayBuffer(value2); -} -function assertUint8Array(value2) { - if (!isUint8Array(value2)) { - throw new TypeError(`Expected \`Uint8Array\`, got \`${typeof value2}\``); - } -} -function assertUint8ArrayOrArrayBuffer(value2) { - if (!isUint8ArrayOrArrayBuffer(value2)) { - throw new TypeError(`Expected \`Uint8Array\` or \`ArrayBuffer\`, got \`${typeof value2}\``); - } -} -function toUint8Array(value2) { - if (value2 instanceof ArrayBuffer) { - return new Uint8Array(value2); - } - if (ArrayBuffer.isView(value2)) { - return new Uint8Array(value2.buffer, value2.byteOffset, value2.byteLength); - } - throw new TypeError(`Unsupported value, got \`${typeof value2}\`.`); -} -function concatUint8Arrays(arrays, totalLength) { - if (arrays.length === 0) { - return new Uint8Array(0); - } - totalLength ??= arrays.reduce((accumulator, currentValue) => accumulator + currentValue.length, 0); - const returnValue = new Uint8Array(totalLength); - let offset = 0; - for (const array of arrays) { - assertUint8Array(array); - returnValue.set(array, offset); - offset += array.length; - } - return returnValue; -} -function areUint8ArraysEqual(a5, b5) { - assertUint8Array(a5); - assertUint8Array(b5); - if (a5 === b5) { - return true; - } - if (a5.length !== b5.length) { - return false; - } - for (let index2 = 0; index2 < a5.length; index2++) { - if (a5[index2] !== b5[index2]) { - return false; - } - } - return true; -} -function compareUint8Arrays(a5, b5) { - assertUint8Array(a5); - assertUint8Array(b5); - const length = Math.min(a5.length, b5.length); - for (let index2 = 0; index2 < length; index2++) { - const diff = a5[index2] - b5[index2]; - if (diff !== 0) { - return Math.sign(diff); - } - } - return Math.sign(a5.length - b5.length); -} -function uint8ArrayToString(array, encoding = "utf8") { - assertUint8ArrayOrArrayBuffer(array); - cachedDecoders[encoding] ??= new globalThis.TextDecoder(encoding); - return cachedDecoders[encoding].decode(array); -} -function assertString(value2) { - if (typeof value2 !== "string") { - throw new TypeError(`Expected \`string\`, got \`${typeof value2}\``); - } -} -function stringToUint8Array(string3) { - assertString(string3); - return cachedEncoder.encode(string3); -} -function base64ToBase64Url(base642) { - return base642.replaceAll("+", "-").replaceAll("/", "_").replace(/=+$/, ""); -} -function base64UrlToBase64(base64url) { - const base642 = base64url.replaceAll("-", "+").replaceAll("_", "/"); - const padding = (4 - base642.length % 4) % 4; - return base642 + "=".repeat(padding); -} -function uint8ArrayToBase64(array, { urlSafe = false } = {}) { - assertUint8Array(array); - let base642 = ""; - for (let index2 = 0; index2 < array.length; index2 += MAX_BLOCK_SIZE) { - const chunk = array.subarray(index2, index2 + MAX_BLOCK_SIZE); - base642 += globalThis.btoa(String.fromCodePoint.apply(void 0, chunk)); - } - return urlSafe ? base64ToBase64Url(base642) : base642; -} -function base64ToUint8Array(base64String) { - assertString(base64String); - return Uint8Array.from(globalThis.atob(base64UrlToBase64(base64String)), (x4) => x4.codePointAt(0)); -} -function stringToBase64(string3, { urlSafe = false } = {}) { - assertString(string3); - return uint8ArrayToBase64(stringToUint8Array(string3), { urlSafe }); -} -function base64ToString(base64String) { - assertString(base64String); - return uint8ArrayToString(base64ToUint8Array(base64String)); -} -function uint8ArrayToHex(array) { - assertUint8Array(array); - let hexString = ""; - for (let index2 = 0; index2 < array.length; index2++) { - hexString += byteToHexLookupTable[array[index2]]; - } - return hexString; -} -function hexToUint8Array(hexString) { - assertString(hexString); - if (hexString.length % 2 !== 0) { - throw new Error("Invalid Hex string length."); - } - const resultLength = hexString.length / 2; - const bytes = new Uint8Array(resultLength); - for (let index2 = 0; index2 < resultLength; index2++) { - const highNibble = hexToDecimalLookupTable[hexString[index2 * 2]]; - const lowNibble = hexToDecimalLookupTable[hexString[index2 * 2 + 1]]; - if (highNibble === void 0 || lowNibble === void 0) { - throw new Error(`Invalid Hex character encountered at position ${index2 * 2}`); - } - bytes[index2] = highNibble << 4 | lowNibble; - } - return bytes; -} -function getUintBE(view) { - const { byteLength } = view; - if (byteLength === 6) { - return view.getUint16(0) * 2 ** 32 + view.getUint32(2); - } - if (byteLength === 5) { - return view.getUint8(0) * 2 ** 32 + view.getUint32(1); - } - if (byteLength === 4) { - return view.getUint32(0); - } - if (byteLength === 3) { - return view.getUint8(0) * 2 ** 16 + view.getUint16(1); - } - if (byteLength === 2) { - return view.getUint16(0); - } - if (byteLength === 1) { - return view.getUint8(0); - } -} -function indexOf(array, value2) { - const arrayLength = array.length; - const valueLength = value2.length; - if (valueLength === 0) { - return -1; - } - if (valueLength > arrayLength) { - return -1; - } - const validOffsetLength = arrayLength - valueLength; - for (let index2 = 0; index2 <= validOffsetLength; index2++) { - let isMatch3 = true; - for (let index22 = 0; index22 < valueLength; index22++) { - if (array[index2 + index22] !== value2[index22]) { - isMatch3 = false; - break; - } - } - if (isMatch3) { - return index2; - } - } - return -1; -} -function includes(array, value2) { - return indexOf(array, value2) !== -1; -} -var objectToString, uint8ArrayStringified, arrayBufferStringified, cachedDecoders, cachedEncoder, MAX_BLOCK_SIZE, byteToHexLookupTable, hexToDecimalLookupTable; -var init_uint8array_extras = __esm({ - "node_modules/.pnpm/uint8array-extras@1.5.0/node_modules/uint8array-extras/index.js"() { - objectToString = Object.prototype.toString; - uint8ArrayStringified = "[object Uint8Array]"; - arrayBufferStringified = "[object ArrayBuffer]"; - cachedDecoders = { - utf8: new globalThis.TextDecoder("utf8") - }; - cachedEncoder = new globalThis.TextEncoder(); - MAX_BLOCK_SIZE = 65535; - byteToHexLookupTable = Array.from({ length: 256 }, (_4, index2) => index2.toString(16).padStart(2, "0")); - hexToDecimalLookupTable = { - 0: 0, - 1: 1, - 2: 2, - 3: 3, - 4: 4, - 5: 5, - 6: 6, - 7: 7, - 8: 8, - 9: 9, - a: 10, - b: 11, - c: 12, - d: 13, - e: 14, - f: 15, - A: 10, - B: 11, - C: 12, - D: 13, - E: 14, - F: 15 - }; - } -}); - -// node_modules/.pnpm/@push.rocks+smartbuffer@3.0.5/node_modules/@push.rocks/smartbuffer/dist_ts/smartbuffer.plugins.js -var init_smartbuffer_plugins = __esm({ - "node_modules/.pnpm/@push.rocks+smartbuffer@3.0.5/node_modules/@push.rocks/smartbuffer/dist_ts/smartbuffer.plugins.js"() { - init_uint8array_extras(); - } -}); - -// node_modules/.pnpm/@push.rocks+smartbuffer@3.0.5/node_modules/@push.rocks/smartbuffer/dist_ts/index.js -var dist_ts_exports8 = {}; -__export(dist_ts_exports8, { - base64ToUint8Array: () => base64ToUint8Array2, - ensurePureUint8Array: () => ensurePureUint8Array, - isBufferLike: () => isBufferLike, - isUint8Array: () => isUint8Array2, - uInt8ArrayExtras: () => uInt8ArrayExtras, - uInt8ArrayToBase64: () => uInt8ArrayToBase64 -}); -function uInt8ArrayToBase64(uInt8Array) { - return uint8array_extras_exports.uint8ArrayToBase64(uInt8Array); -} -function base64ToUint8Array2(base642) { - return uint8array_extras_exports.base64ToUint8Array(base642); -} -function isBufferLike(obj) { - if (obj && typeof obj.byteLength === "number") { - return true; - } - if (typeof Buffer !== "undefined" && Buffer.isBuffer) { - return Buffer.isBuffer(obj); - } - return false; -} -function ensurePureUint8Array(bufferArg) { - const uint8Array = new Uint8Array(bufferArg.length); - uint8Array.set(bufferArg); - return uint8Array; -} -var uInt8ArrayExtras, isUint8Array2; -var init_dist_ts8 = __esm({ - "node_modules/.pnpm/@push.rocks+smartbuffer@3.0.5/node_modules/@push.rocks/smartbuffer/dist_ts/index.js"() { - init_smartbuffer_plugins(); - uInt8ArrayExtras = uint8array_extras_exports; - isUint8Array2 = (obj) => { - return uint8array_extras_exports.isUint8Array(obj); - }; - } -}); - -// node_modules/.pnpm/@push.rocks+smartguard@3.1.0/node_modules/@push.rocks/smartguard/dist_ts/smartguard.plugins.js -var init_smartguard_plugins = __esm({ - "node_modules/.pnpm/@push.rocks+smartguard@3.1.0/node_modules/@push.rocks/smartguard/dist_ts/smartguard.plugins.js"() { - init_dist_ts(); - } -}); - -// node_modules/.pnpm/@push.rocks+smartguard@3.1.0/node_modules/@push.rocks/smartguard/dist_ts/classes.guard.js -var Guard; -var init_classes_guard = __esm({ - "node_modules/.pnpm/@push.rocks+smartguard@3.1.0/node_modules/@push.rocks/smartguard/dist_ts/classes.guard.js"() { - init_smartguard_plugins(); - Guard = class { - constructor(guardFunctionArg, optionsArg) { - this.guardFunction = guardFunctionArg; - this.options = optionsArg; - } - /** - * executes the guard against a data argument; - * @param dataArg - */ - async exec(dataArg) { - const result = await this.guardFunction(dataArg); - return result; - } - async getFailedHint(dataArg) { - const result = await this.exec(dataArg); - if (!result) { - return this.options.failedHint; - } else { - return null; - } - } - }; - } -}); - -// node_modules/.pnpm/@push.rocks+smartguard@3.1.0/node_modules/@push.rocks/smartguard/dist_ts/classes.guarderror.js -var GuardError; -var init_classes_guarderror = __esm({ - "node_modules/.pnpm/@push.rocks+smartguard@3.1.0/node_modules/@push.rocks/smartguard/dist_ts/classes.guarderror.js"() { - init_smartguard_plugins(); - GuardError = class extends Error { - constructor(message2) { - super(message2); - this.name = "GuardError"; - } - }; - } -}); - -// node_modules/.pnpm/@push.rocks+smartguard@3.1.0/node_modules/@push.rocks/smartguard/dist_ts/classes.guardset.js -var GuardSet; -var init_classes_guardset = __esm({ - "node_modules/.pnpm/@push.rocks+smartguard@3.1.0/node_modules/@push.rocks/smartguard/dist_ts/classes.guardset.js"() { - init_smartguard_plugins(); - init_classes_guard(); - GuardSet = class extends Guard { - constructor(guardArray = []) { - super(async (dataArg) => { - return this.allGuardsPass(dataArg); - }); - this.guards = guardArray; - } - /** - * executes all guards in all guardSets against a data argument - * @param dataArg - */ - async execAllWithData(dataArg, optionsArg = { - mode: "parallel", - stopOnFail: false - }) { - const resultPromises = []; - for (const guard of this.guards) { - const guardResultPromise = guard.exec(dataArg); - if (optionsArg.mode === "serial") { - await guardResultPromise; - } - resultPromises.push(guardResultPromise); - if (optionsArg.stopOnFail) { - if (!await guardResultPromise) { - return await Promise.all(resultPromises); - } - } - } - const results = await Promise.all(resultPromises); - return results; - } - /** - * checks if all guards pass - * @param dataArg - */ - async allGuardsPass(dataArg, optionsArg = { - mode: "parallel", - stopOnFail: false - }) { - const results = await this.execAllWithData(dataArg, optionsArg); - return results.every((result) => result); - } - /** - * checks if any guard passes - * @param dataArg - */ - async anyGuardsPass(dataArg) { - const results = await this.execAllWithData(dataArg, { - mode: "parallel", - stopOnFail: false - }); - return results.some((result) => result); - } - /** - * returns the first reason for why something fails - * @param dataArg - * @returns - */ - getFailedHint(dataArg) { - for (const guard of this.guards) { - const failedHint = guard.getFailedHint(dataArg); - if (failedHint) { - return failedHint; - } - } - } - }; - } -}); - -// node_modules/.pnpm/@push.rocks+smartguard@3.1.0/node_modules/@push.rocks/smartguard/dist_ts/index.js -var dist_ts_exports9 = {}; -__export(dist_ts_exports9, { - Guard: () => Guard, - GuardError: () => GuardError, - GuardSet: () => GuardSet, - passGuardsOrReject: () => passGuardsOrReject -}); -var passGuardsOrReject; -var init_dist_ts9 = __esm({ - "node_modules/.pnpm/@push.rocks+smartguard@3.1.0/node_modules/@push.rocks/smartguard/dist_ts/index.js"() { - init_smartguard_plugins(); - init_classes_guard(); - init_classes_guarderror(); - init_classes_guard(); - init_classes_guardset(); - init_classes_guardset(); - init_classes_guarderror(); - passGuardsOrReject = async (dataArg, guards) => { - const guardSet = new GuardSet(guards); - const result = await guardSet.allGuardsPass(dataArg); - if (!result) { - const failedHint = await guardSet.getFailedHint(dataArg); - throw new GuardError(`Guards failed: -${failedHint} - `); - } - return; - }; - } -}); - -// node_modules/.pnpm/@push.rocks+webrequest@4.0.2/node_modules/@push.rocks/webrequest/dist_ts/interceptors/interceptor.manager.js -var InterceptorManager; -var init_interceptor_manager = __esm({ - "node_modules/.pnpm/@push.rocks+webrequest@4.0.2/node_modules/@push.rocks/webrequest/dist_ts/interceptors/interceptor.manager.js"() { - InterceptorManager = class { - constructor() { - this.requestInterceptors = []; - this.responseInterceptors = []; - this.errorInterceptors = []; - } - /** - * Add a request interceptor - */ - addRequestInterceptor(interceptor) { - this.requestInterceptors.push(interceptor); - } - /** - * Add a response interceptor - */ - addResponseInterceptor(interceptor) { - this.responseInterceptors.push(interceptor); - } - /** - * Add an error interceptor - */ - addErrorInterceptor(interceptor) { - this.errorInterceptors.push(interceptor); - } - /** - * Remove a request interceptor - */ - removeRequestInterceptor(interceptor) { - const index2 = this.requestInterceptors.indexOf(interceptor); - if (index2 > -1) { - this.requestInterceptors.splice(index2, 1); - } - } - /** - * Remove a response interceptor - */ - removeResponseInterceptor(interceptor) { - const index2 = this.responseInterceptors.indexOf(interceptor); - if (index2 > -1) { - this.responseInterceptors.splice(index2, 1); - } - } - /** - * Remove an error interceptor - */ - removeErrorInterceptor(interceptor) { - const index2 = this.errorInterceptors.indexOf(interceptor); - if (index2 > -1) { - this.errorInterceptors.splice(index2, 1); - } - } - /** - * Clear all interceptors - */ - clearAll() { - this.requestInterceptors = []; - this.responseInterceptors = []; - this.errorInterceptors = []; - } - /** - * Process request through all request interceptors - */ - async processRequest(request) { - let processedRequest = request; - for (const interceptor of this.requestInterceptors) { - try { - processedRequest = await interceptor(processedRequest); - } catch (error) { - throw await this.processError(error instanceof Error ? error : new Error(String(error))); - } - } - return processedRequest; - } - /** - * Process response through all response interceptors - */ - async processResponse(response) { - let processedResponse = response; - for (const interceptor of this.responseInterceptors) { - try { - processedResponse = await interceptor(processedResponse); - } catch (error) { - throw await this.processError(error instanceof Error ? error : new Error(String(error))); - } - } - return processedResponse; - } - /** - * Process error through all error interceptors - */ - async processError(error) { - let processedError = error; - for (const interceptor of this.errorInterceptors) { - try { - processedError = await interceptor(processedError); - } catch (newError) { - processedError = newError instanceof Error ? newError : new Error(String(newError)); - } - } - return processedError; - } - /** - * Get count of registered interceptors - */ - getInterceptorCounts() { - return { - request: this.requestInterceptors.length, - response: this.responseInterceptors.length, - error: this.errorInterceptors.length - }; - } - }; - } -}); - -// node_modules/.pnpm/@push.rocks+smartenv@5.0.13/node_modules/@push.rocks/smartenv/dist_ts/smartenv.plugins.js -var init_smartenv_plugins = __esm({ - "node_modules/.pnpm/@push.rocks+smartenv@5.0.13/node_modules/@push.rocks/smartenv/dist_ts/smartenv.plugins.js"() { - init_dist_ts(); - } -}); - -// node_modules/.pnpm/@push.rocks+smartenv@5.0.13/node_modules/@push.rocks/smartenv/dist_ts/interfaces/index.js -var init_interfaces = __esm({ - "node_modules/.pnpm/@push.rocks+smartenv@5.0.13/node_modules/@push.rocks/smartenv/dist_ts/interfaces/index.js"() { - } -}); - -// node_modules/.pnpm/@push.rocks+smartenv@5.0.13/node_modules/@push.rocks/smartenv/dist_ts/smartenv.classes.smartenv.js -var Smartenv; -var init_smartenv_classes_smartenv = __esm({ - "node_modules/.pnpm/@push.rocks+smartenv@5.0.13/node_modules/@push.rocks/smartenv/dist_ts/smartenv.classes.smartenv.js"() { - init_smartenv_plugins(); - init_interfaces(); - Smartenv = class { - constructor() { - this.loadedScripts = []; - } - async getEnvAwareModule(optionsArg) { - if (this.isNode) { - const moduleResult = await this.getSafeNodeModule(optionsArg.nodeModuleName); - return moduleResult; - } else if (this.isBrowser) { - const moduleResult = await this.getSafeWebModule(optionsArg.webUrlArg, optionsArg.getFunction); - return moduleResult; - } else { - console.error("platform for loading not supported by smartenv"); - } - } - async getSafeNodeModule(moduleNameArg, runAfterFunc) { - if (!this.isNode) { - console.error(`You tried to load a node module in a wrong context: ${moduleNameArg}. This does not throw.`); - return; - } - const returnValue = await new Function(`return import('${moduleNameArg}')`)(); - if (runAfterFunc) { - await runAfterFunc(returnValue); - } - return returnValue; - } - async getSafeWebModule(urlArg, getFunctionArg) { - if (!this.isBrowser) { - console.error("You tried to load a web module in a wrong context"); - return; - } - if (this.loadedScripts.includes(urlArg)) { - return getFunctionArg(); - } else { - this.loadedScripts.push(urlArg); - } - const done = dist_ts_exports.defer(); - if (globalThis.importScripts) { - globalThis.importScripts(urlArg); - done.resolve(); - } else { - const script = document.createElement("script"); - script.onload = () => { - done.resolve(); - }; - script.src = urlArg; - document.head.appendChild(script); - } - await done.promise; - return getFunctionArg(); - } - get runtimeEnv() { - if (typeof process !== "undefined") { - return "node"; - } else { - return "browser"; - } - } - get isBrowser() { - return !this.isNode; - } - get userAgent() { - if (this.isBrowser) { - return navigator.userAgent; - } else { - return "undefined"; - } - } - get isNode() { - return this.runtimeEnv === "node"; - } - get nodeVersion() { - return process.version; - } - get isCI() { - if (this.isNode) { - if (process.env.CI) { - return true; - } else { - return false; - } - } else { - return false; - } - } - async isMacAsync() { - if (this.isNode) { - const os = await this.getSafeNodeModule("os"); - return os.platform() === "darwin"; - } else { - return false; - } - } - async isWindowsAsync() { - if (this.isNode) { - const os = await this.getSafeNodeModule("os"); - return os.platform() === "win32"; - } else { - return false; - } - } - async isLinuxAsync() { - if (this.isNode) { - const os = await this.getSafeNodeModule("os"); - return os.platform() === "linux"; - } else { - return false; - } - } - /** - * prints the environment to console - */ - async printEnv() { - if (this.isNode) { - console.log("running on NODE"); - console.log("node version is " + this.nodeVersion); - } else { - console.log("running on BROWSER"); - console.log("browser is " + this.userAgent); - } - } - }; - } -}); - -// node_modules/.pnpm/@push.rocks+smartenv@5.0.13/node_modules/@push.rocks/smartenv/dist_ts/index.js -var dist_ts_exports10 = {}; -__export(dist_ts_exports10, { - Smartenv: () => Smartenv -}); -var init_dist_ts10 = __esm({ - "node_modules/.pnpm/@push.rocks+smartenv@5.0.13/node_modules/@push.rocks/smartenv/dist_ts/index.js"() { - init_smartenv_classes_smartenv(); - } -}); - -// node_modules/.pnpm/@push.rocks+smartstring@4.1.0/node_modules/@push.rocks/smartstring/dist_ts/smartstring.plugins.js -var isounique; -var init_smartstring_plugins = __esm({ - "node_modules/.pnpm/@push.rocks+smartstring@4.1.0/node_modules/@push.rocks/smartstring/dist_ts/smartstring.plugins.js"() { - isounique = __toESM(require_dist_ts(), 1); - } -}); - -// node_modules/.pnpm/@push.rocks+smartstring@4.1.0/node_modules/@push.rocks/smartstring/dist_ts/smartstring.create.js -var smartstring_create_exports = {}; -__export(smartstring_create_exports, { - createCryptoRandomString: () => createCryptoRandomString, - createRandomString: () => createRandomString -}); -var getRandomInt, customRandomatic, createRandomString, createCryptoRandomString; -var init_smartstring_create = __esm({ - "node_modules/.pnpm/@push.rocks+smartstring@4.1.0/node_modules/@push.rocks/smartstring/dist_ts/smartstring.create.js"() { - init_smartstring_plugins(); - getRandomInt = (min3, max3) => { - if (typeof globalThis !== "undefined" && globalThis.crypto && globalThis.crypto.getRandomValues) { - const range2 = max3 - min3; - const array = new Uint32Array(1); - globalThis.crypto.getRandomValues(array); - return min3 + array[0] % range2; - } else { - return Math.floor(Math.random() * (max3 - min3)) + min3; - } - }; - customRandomatic = (pattern, length, options) => { - const charSets = { - "A": "ABCDEFGHIJKLMNOPQRSTUVWXYZ", - "a": "abcdefghijklmnopqrstuvwxyz", - "0": "0123456789", - "!": "!@#$%^&*()_+-=[]{}|;:,.<>?", - "*": "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789!@#$%^&*()_+-=[]{}|;:,.<>?" - }; - let actualPattern = pattern; - if (length && length > pattern.length) { - actualPattern = pattern.repeat(Math.ceil(length / pattern.length)).slice(0, length); - } else if (length) { - actualPattern = pattern.slice(0, length); - } - let result = ""; - for (const char of actualPattern) { - if (charSets[char]) { - const charSet = charSets[char]; - const randomIndex = getRandomInt(0, charSet.length); - result += charSet[randomIndex]; - } else { - result += char; - } - } - return result; - }; - createRandomString = (patternArg, lengthArg, optionsArg) => { - return customRandomatic(patternArg, lengthArg, optionsArg); - }; - createCryptoRandomString = () => { - return isounique.uni(); - }; - } -}); - -// node_modules/.pnpm/@push.rocks+smartstring@4.1.0/node_modules/@push.rocks/smartstring/dist_ts/smartstring.docker.js -var smartstring_docker_exports = {}; -__export(smartstring_docker_exports, { - makeEnvObject: () => makeEnvObject -}); -var makeEnvObject; -var init_smartstring_docker = __esm({ - "node_modules/.pnpm/@push.rocks+smartstring@4.1.0/node_modules/@push.rocks/smartstring/dist_ts/smartstring.docker.js"() { - init_smartstring_plugins(); - makeEnvObject = function(envArrayArg) { - let returnObject = {}; - let regexString = /(.*)=(.*)/; - if (typeof envArrayArg !== "undefined") { - for (let envKey in envArrayArg) { - let regexMatches = regexString.exec(envArrayArg[envKey]); - returnObject[regexMatches[1]] = regexMatches[2]; - } - } - return returnObject; - }; - } -}); - -// node_modules/.pnpm/@push.rocks+smartstring@4.1.0/node_modules/@push.rocks/smartstring/dist_ts/smartstring.indent.js -var smartstring_indent_exports = {}; -__export(smartstring_indent_exports, { - indent: () => indent, - indentWithPrefix: () => indentWithPrefix, - normalize: () => normalize -}); -var splitStringAtLineBreak, joinStringWithLineBreaks, cleanStringArray, indent, indentWithPrefix, normalize; -var init_smartstring_indent = __esm({ - "node_modules/.pnpm/@push.rocks+smartstring@4.1.0/node_modules/@push.rocks/smartstring/dist_ts/smartstring.indent.js"() { - init_smartstring_plugins(); - splitStringAtLineBreak = (stringArg) => { - let resultArray = stringArg.split("\n"); - return cleanStringArray(resultArray); - }; - joinStringWithLineBreaks = (stringArrayArg) => { - let resultString = ""; - for (let line of stringArrayArg) { - resultString = resultString + line + "\n"; - } - return resultString; - }; - cleanStringArray = (stringArrayArg) => { - let testRegex = /^[\s]*$/; - if (testRegex.test(stringArrayArg[0])) { - stringArrayArg.shift(); - } - if (testRegex.test(stringArrayArg[stringArrayArg.length - 1])) { - stringArrayArg.pop(); - } - return stringArrayArg; - }; - indent = (stringArg, spaceAmount) => { - let localStringArray = splitStringAtLineBreak(stringArg); - for (let stringArg2 of localStringArray) { - stringArg2 = " ".repeat(spaceAmount) + stringArg2; - } - let resultString = joinStringWithLineBreaks(localStringArray); - return resultString; - }; - indentWithPrefix = (stringArg, prefixArg) => { - let resultString; - let stringArray = splitStringAtLineBreak(stringArg); - let resultArray = []; - for (let stringItem of stringArray) { - resultArray.push(prefixArg + stringItem); - } - resultString = joinStringWithLineBreaks(resultArray); - return resultString; - }; - normalize = (stringArg) => { - let resultString; - let splitStringArray = splitStringAtLineBreak(stringArg); - let minCommonLeftOffset; - const deIndentRegex = /^(\s*)/; - const emptyLineRegex = /^(\s*)$/; - for (let stringItem of splitStringArray) { - let offsetString = deIndentRegex.exec(stringItem)[1]; - if ((typeof minCommonLeftOffset === "undefined" || offsetString.length < minCommonLeftOffset) && !emptyLineRegex.test(stringItem)) { - minCommonLeftOffset = offsetString.length; - } - } - let resultSplitStringArray = []; - for (let stringItem of splitStringArray) { - resultSplitStringArray.push(stringItem.substr(minCommonLeftOffset)); - } - resultString = joinStringWithLineBreaks(resultSplitStringArray); - return resultString; - }; - } -}); - -// node_modules/.pnpm/@push.rocks+smartstring@4.1.0/node_modules/@push.rocks/smartstring/dist_ts/smartstring.normalize.js -var smartstring_normalize_exports = {}; -__export(smartstring_normalize_exports, { - replaceAll: () => replaceAll, - standard: () => standard -}); -var replaceAll, stripIndent, standard; -var init_smartstring_normalize = __esm({ - "node_modules/.pnpm/@push.rocks+smartstring@4.1.0/node_modules/@push.rocks/smartstring/dist_ts/smartstring.normalize.js"() { - replaceAll = (stringArg, searchPattern, replacementString) => { - return stringArg.replace(new RegExp(searchPattern, "g"), replacementString); - }; - stripIndent = (str) => { - const lines = str.split("\n"); - let minIndent = Infinity; - for (const line of lines) { - if (line.trim().length > 0) { - const match2 = line.match(/^(\s*)/); - if (match2) { - minIndent = Math.min(minIndent, match2[1].length); - } - } - } - if (minIndent === Infinity || minIndent === 0) { - return str; - } - return lines.map((line) => { - if (line.length >= minIndent) { - return line.slice(minIndent); - } - return line; - }).join("\n"); - }; - standard = (stringArg, options) => { - let result = stringArg; - if (!options || options.stripIndent) { - result = stripIndent(result); - } - if (!options || options.normalizeNewline) { - result = result.replace(/\r\n/g, "\n"); - } - if (!options || options.replaceTabs) { - result = replaceAll(result, " /", " "); - } - if (!options || options.stripLeadingTrailingEmptyLines) { - result = result.replace(/^\s*[\r\n]/gm, "").replace(/\s*[\r\n]$/gm, ""); - } - if (!options || options.stripAllEmptyLines) { - result = result.replace(/^\s*[\r\n]/gm, ""); - } - return result; - }; - } -}); - -// node_modules/.pnpm/@push.rocks+smartstring@4.1.0/node_modules/@push.rocks/smartstring/dist_ts/smartstring.base64.js -var universalBase64, Base64, base64; -var init_smartstring_base64 = __esm({ - "node_modules/.pnpm/@push.rocks+smartstring@4.1.0/node_modules/@push.rocks/smartstring/dist_ts/smartstring.base64.js"() { - universalBase64 = { - encode: (str) => { - if (typeof Buffer !== "undefined") { - return Buffer.from(str, "utf8").toString("base64"); - } else if (typeof btoa !== "undefined") { - const utf8Bytes = new TextEncoder().encode(str); - const binaryString = Array.from(utf8Bytes, (byte) => String.fromCharCode(byte)).join(""); - return btoa(binaryString); - } else { - const chars = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"; - const bytes = new TextEncoder().encode(str); - let result = ""; - let i11 = 0; - while (i11 < bytes.length) { - const a5 = bytes[i11++]; - const b5 = i11 < bytes.length ? bytes[i11++] : 0; - const c11 = i11 < bytes.length ? bytes[i11++] : 0; - const bitmap = a5 << 16 | b5 << 8 | c11; - result += chars.charAt(bitmap >> 18 & 63); - result += chars.charAt(bitmap >> 12 & 63); - result += i11 - 2 < bytes.length ? chars.charAt(bitmap >> 6 & 63) : "="; - result += i11 - 1 < bytes.length ? chars.charAt(bitmap & 63) : "="; - } - return result; - } - }, - decode: (str) => { - const base64String = str.replace(/-/g, "+").replace(/_/g, "/").padEnd(str.length + (4 - str.length % 4) % 4, "="); - if (typeof Buffer !== "undefined") { - return Buffer.from(base64String, "base64").toString("utf8"); - } else if (typeof atob !== "undefined") { - const binaryString = atob(base64String); - const bytes = new Uint8Array(binaryString.length); - for (let i11 = 0; i11 < binaryString.length; i11++) { - bytes[i11] = binaryString.charCodeAt(i11); - } - return new TextDecoder().decode(bytes); - } else { - const chars = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"; - let bytes = []; - let i11 = 0; - while (i11 < base64String.length) { - const encoded1 = chars.indexOf(base64String.charAt(i11++)); - const encoded2 = chars.indexOf(base64String.charAt(i11++)); - const encoded3 = chars.indexOf(base64String.charAt(i11++)); - const encoded4 = chars.indexOf(base64String.charAt(i11++)); - const bitmap = encoded1 << 18 | encoded2 << 12 | encoded3 << 6 | encoded4; - bytes.push(bitmap >> 16 & 255); - if (encoded3 !== 64) - bytes.push(bitmap >> 8 & 255); - if (encoded4 !== 64) - bytes.push(bitmap & 255); - } - return new TextDecoder().decode(new Uint8Array(bytes)); - } - } - }; - Base64 = class { - constructor(inputStringArg, typeArg) { - switch (typeArg) { - case "string": - this.refString = inputStringArg; - break; - case "base64": - this.refString = base64.decode(inputStringArg); - break; - case "base64uri": - this.refString = base64.decode(inputStringArg); - } - } - /** - * the simple string (unencoded) - */ - get simpleString() { - return this.refString; - } - /** - * the base64 encoded version of the original string - */ - get base64String() { - return base64.encode(this.refString); - } - /** - * the base64uri encoded version of the original string - */ - get base64UriString() { - return base64.encodeUri(this.refString); - } - }; - base64 = { - /** - * encodes the string - */ - encode: (stringArg) => { - return universalBase64.encode(stringArg); - }, - /** - * encodes a stringArg to base64 uri style - */ - encodeUri: (stringArg) => { - return universalBase64.encode(stringArg).replace(/\+/g, "-").replace(/\//g, "_").replace(/=/g, ""); - }, - /** - * decodes a base64 encoded string - */ - decode: (stringArg) => { - return universalBase64.decode(stringArg); - }, - /** - * - * @param stringArg - * checks wether the string is base64 encoded - */ - isBase64: (stringArg) => { - const regex = /^([A-Za-z0-9+/]{4})*([A-Za-z0-9+/]{3}=|[A-Za-z0-9+/]{2}==)?$/; - return regex.test(stringArg); - } - }; - } -}); - -// node_modules/.pnpm/@push.rocks+smartstring@4.1.0/node_modules/@push.rocks/smartstring/dist_ts/smartstring.type.js -var smartstring_type_exports = {}; -__export(smartstring_type_exports, { - isBase64: () => isBase64, - isUtf8: () => isUtf8 -}); -var isUtf8, isBase64; -var init_smartstring_type = __esm({ - "node_modules/.pnpm/@push.rocks+smartstring@4.1.0/node_modules/@push.rocks/smartstring/dist_ts/smartstring.type.js"() { - init_smartstring_plugins(); - init_smartstring_base64(); - isUtf8 = (stringArg) => { - const encoder2 = new TextEncoder(); - const bytes = encoder2.encode(stringArg); - let i11 = 0; - while (i11 < bytes.length) { - if ( - // ASCII - bytes[i11] === 9 || bytes[i11] === 10 || bytes[i11] === 13 || 32 <= bytes[i11] && bytes[i11] <= 126 - ) { - i11 += 1; - continue; - } - if ( - // non-overlong 2-byte - 194 <= bytes[i11] && bytes[i11] <= 223 && 128 <= bytes[i11 + 1] && bytes[i11 + 1] <= 191 - ) { - i11 += 2; - continue; - } - if ( - // excluding overlongs - bytes[i11] === 224 && 160 <= bytes[i11 + 1] && bytes[i11 + 1] <= 191 && 128 <= bytes[i11 + 2] && bytes[i11 + 2] <= 191 || // straight 3-byte - (225 <= bytes[i11] && bytes[i11] <= 236 || bytes[i11] === 238 || bytes[i11] === 239) && 128 <= bytes[i11 + 1] && bytes[i11 + 1] <= 191 && 128 <= bytes[i11 + 2] && bytes[i11 + 2] <= 191 || // excluding surrogates - bytes[i11] === 237 && 128 <= bytes[i11 + 1] && bytes[i11 + 1] <= 159 && 128 <= bytes[i11 + 2] && bytes[i11 + 2] <= 191 - ) { - i11 += 3; - continue; - } - if ( - // planes 1-3 - bytes[i11] === 240 && 144 <= bytes[i11 + 1] && bytes[i11 + 1] <= 191 && 128 <= bytes[i11 + 2] && bytes[i11 + 2] <= 191 && 128 <= bytes[i11 + 3] && bytes[i11 + 3] <= 191 || // planes 4-15 - 241 <= bytes[i11] && bytes[i11] <= 243 && 128 <= bytes[i11 + 1] && bytes[i11 + 1] <= 191 && 128 <= bytes[i11 + 2] && bytes[i11 + 2] <= 191 && 128 <= bytes[i11 + 3] && bytes[i11 + 3] <= 191 || // plane 16 - bytes[i11] === 244 && 128 <= bytes[i11 + 1] && bytes[i11 + 1] <= 143 && 128 <= bytes[i11 + 2] && bytes[i11 + 2] <= 191 && 128 <= bytes[i11 + 3] && bytes[i11 + 3] <= 191 - ) { - i11 += 4; - continue; - } - return false; - } - return true; - }; - isBase64 = (stringArg) => { - const notBase64 = /[^A-Z0-9+\/=]/i; - const len = stringArg.length; - if (!len || len % 4 !== 0 || notBase64.test(stringArg)) { - return false; - } - const firstPaddingChar = stringArg.indexOf("="); - return firstPaddingChar === -1 || firstPaddingChar === len - 1 || firstPaddingChar === len - 2 && stringArg[len - 1] === "="; - }; - } -}); - -// node_modules/.pnpm/@push.rocks+smartstring@4.1.0/node_modules/@push.rocks/smartstring/dist_ts/smartstring.domain.js -var Domain; -var init_smartstring_domain = __esm({ - "node_modules/.pnpm/@push.rocks+smartstring@4.1.0/node_modules/@push.rocks/smartstring/dist_ts/smartstring.domain.js"() { - Domain = class { - constructor(domainStringArg) { - this.protocol = this._protocolRegex(domainStringArg); - if (!this.protocol) { - domainStringArg = `https://${domainStringArg}`; - } - this.nodeParsedUrl = new URL(domainStringArg); - this.port = this.nodeParsedUrl.port; - const regexMatches = this._domainRegex(domainStringArg.replace(this.nodeParsedUrl.pathname, "")); - this.fullName = ""; - for (let i11 = 1; i11 <= 5; i11++) { - if (regexMatches[i11 - 1]) { - const localMatch = regexMatches[i11 - 1]; - this["level" + i11.toString()] = localMatch; - if (this.fullName === "") { - this.fullName = localMatch; - } else { - this.fullName = localMatch + "." + this.fullName; - } - } else { - this["level" + i11.toString()] = void 0; - } - } - this.zoneName = this.level2 + "." + this.level1; - this.topLevel = this.level1; - this.domainName = this.level2; - this.subDomain = this.level3; - } - // helper functions - /** */ - _domainRegex(stringArg) { - const regexString = /([a-zA-Z0-9\-\_]*)\.{0,1}([a-zA-Z0-9\-\_]*)\.{0,1}([a-zA-Z0-9\-\_]*)\.{0,1}([a-zA-Z0-9\-\_]*)\.{0,1}([a-zA-Z0-9\-\_]*)\.{0,1}$/; - const regexMatches = regexString.exec(stringArg); - regexMatches.reverse(); - regexMatches.pop(); - const regexMatchesFiltered = regexMatches.filter(function(stringArg2) { - return stringArg2 !== ""; - }); - return regexMatchesFiltered; - } - _protocolRegex(stringArg) { - const regexString = /^([a-zA-Z0-9]*):\/\//; - const regexMatches = regexString.exec(stringArg); - if (regexMatches) { - return regexMatches[1]; - } else { - return void 0; - } - } - _portRegex(stringArg) { - const regexString = /^([a-zA-Z0-9]*):\/\//; - const regexMatches = regexString.exec(stringArg); - if (regexMatches) { - return regexMatches[1]; - } else { - return void 0; - } - } - }; - } -}); - -// node_modules/.pnpm/@push.rocks+smartstring@4.1.0/node_modules/@push.rocks/smartstring/dist_ts/smartstring.git.js -var GitRepo, gitRegex, gitLink; -var init_smartstring_git = __esm({ - "node_modules/.pnpm/@push.rocks+smartstring@4.1.0/node_modules/@push.rocks/smartstring/dist_ts/smartstring.git.js"() { - init_smartstring_plugins(); - GitRepo = class { - constructor(stringArg, tokenArg) { - let regexMatches = gitRegex(stringArg); - this.host = regexMatches[1]; - this.user = regexMatches[2]; - this.repo = regexMatches[3]; - this.accessToken = tokenArg; - this.sshUrl = gitLink(this.host, this.user, this.repo, this.accessToken, "ssh"); - this.httpsUrl = gitLink(this.host, this.user, this.repo, this.accessToken, "https"); - } - }; - gitRegex = function(stringArg) { - const regexString = /([a-zA-Z0-9\-_\.]*)(?:\/|\:)([a-zA-Z0-9\-_\.]*)(?:\/)([a-zA-Z0-9\-_\.]*)(?:\.git)/; - let regexMatches = regexString.exec(stringArg); - return regexMatches; - }; - gitLink = function(hostArg, userArg, repoArg, tokenArg = "", linkTypeArg) { - let returnString; - if (tokenArg !== "") { - tokenArg = tokenArg + "@"; - } - switch (linkTypeArg) { - case "https": - returnString = "https://" + tokenArg + hostArg + "/" + userArg + "/" + repoArg + ".git"; - break; - case "ssh": - returnString = "git@" + hostArg + ":" + userArg + "/" + repoArg + ".git"; - break; - default: - console.error("Link Type " + linkTypeArg + " not known"); - break; - } - return returnString; - }; - } -}); - -// node_modules/.pnpm/@push.rocks+smartstring@4.1.0/node_modules/@push.rocks/smartstring/dist_ts/index.js -var dist_ts_exports11 = {}; -__export(dist_ts_exports11, { - Base64: () => Base64, - Domain: () => Domain, - GitRepo: () => GitRepo, - base64: () => base64, - create: () => smartstring_create_exports, - docker: () => smartstring_docker_exports, - indent: () => smartstring_indent_exports, - normalize: () => smartstring_normalize_exports, - type: () => smartstring_type_exports -}); -var init_dist_ts11 = __esm({ - "node_modules/.pnpm/@push.rocks+smartstring@4.1.0/node_modules/@push.rocks/smartstring/dist_ts/index.js"() { - init_smartstring_create(); - init_smartstring_docker(); - init_smartstring_indent(); - init_smartstring_normalize(); - init_smartstring_type(); - init_smartstring_base64(); - init_smartstring_domain(); - init_smartstring_git(); - } -}); - -// node_modules/.pnpm/lodash.clonedeep@4.5.0/node_modules/lodash.clonedeep/index.js -var require_lodash = __commonJS({ - "node_modules/.pnpm/lodash.clonedeep@4.5.0/node_modules/lodash.clonedeep/index.js"(exports, module) { - var LARGE_ARRAY_SIZE = 200; - var HASH_UNDEFINED = "__lodash_hash_undefined__"; - var MAX_SAFE_INTEGER = 9007199254740991; - var argsTag = "[object Arguments]", arrayTag = "[object Array]", boolTag = "[object Boolean]", dateTag = "[object Date]", errorTag = "[object Error]", funcTag = "[object Function]", genTag = "[object GeneratorFunction]", mapTag = "[object Map]", numberTag = "[object Number]", objectTag = "[object Object]", promiseTag = "[object Promise]", regexpTag = "[object RegExp]", setTag = "[object Set]", stringTag = "[object String]", symbolTag = "[object Symbol]", weakMapTag = "[object WeakMap]"; - var arrayBufferTag = "[object ArrayBuffer]", dataViewTag = "[object DataView]", float32Tag = "[object Float32Array]", float64Tag = "[object Float64Array]", int8Tag = "[object Int8Array]", int16Tag = "[object Int16Array]", int32Tag = "[object Int32Array]", uint8Tag = "[object Uint8Array]", uint8ClampedTag = "[object Uint8ClampedArray]", uint16Tag = "[object Uint16Array]", uint32Tag = "[object Uint32Array]"; - var reRegExpChar = /[\\^$.*+?()[\]{}|]/g; - var reFlags = /\w*$/; - var reIsHostCtor = /^\[object .+?Constructor\]$/; - var reIsUint = /^(?:0|[1-9]\d*)$/; - var cloneableTags = {}; - cloneableTags[argsTag] = cloneableTags[arrayTag] = cloneableTags[arrayBufferTag] = cloneableTags[dataViewTag] = cloneableTags[boolTag] = cloneableTags[dateTag] = cloneableTags[float32Tag] = cloneableTags[float64Tag] = cloneableTags[int8Tag] = cloneableTags[int16Tag] = cloneableTags[int32Tag] = cloneableTags[mapTag] = cloneableTags[numberTag] = cloneableTags[objectTag] = cloneableTags[regexpTag] = cloneableTags[setTag] = cloneableTags[stringTag] = cloneableTags[symbolTag] = cloneableTags[uint8Tag] = cloneableTags[uint8ClampedTag] = cloneableTags[uint16Tag] = cloneableTags[uint32Tag] = true; - cloneableTags[errorTag] = cloneableTags[funcTag] = cloneableTags[weakMapTag] = false; - var freeGlobal = typeof global == "object" && global && global.Object === Object && global; - var freeSelf = typeof self == "object" && self && self.Object === Object && self; - var root6 = freeGlobal || freeSelf || Function("return this")(); - var freeExports = typeof exports == "object" && exports && !exports.nodeType && exports; - var freeModule = freeExports && typeof module == "object" && module && !module.nodeType && module; - var moduleExports = freeModule && freeModule.exports === freeExports; - function addMapEntry(map7, pair) { - map7.set(pair[0], pair[1]); - return map7; - } - function addSetEntry(set3, value2) { - set3.add(value2); - return set3; - } - function arrayEach(array, iteratee) { - var index2 = -1, length = array ? array.length : 0; - while (++index2 < length) { - if (iteratee(array[index2], index2, array) === false) { - break; - } - } - return array; - } - function arrayPush(array, values) { - var index2 = -1, length = values.length, offset = array.length; - while (++index2 < length) { - array[offset + index2] = values[index2]; - } - return array; - } - function arrayReduce(array, iteratee, accumulator, initAccum) { - var index2 = -1, length = array ? array.length : 0; - if (initAccum && length) { - accumulator = array[++index2]; - } - while (++index2 < length) { - accumulator = iteratee(accumulator, array[index2], index2, array); - } - return accumulator; - } - function baseTimes(n12, iteratee) { - var index2 = -1, result = Array(n12); - while (++index2 < n12) { - result[index2] = iteratee(index2); - } - return result; - } - function getValue(object, key2) { - return object == null ? void 0 : object[key2]; - } - function isHostObject(value2) { - var result = false; - if (value2 != null && typeof value2.toString != "function") { - try { - result = !!(value2 + ""); - } catch (e11) { - } - } - return result; - } - function mapToArray(map7) { - var index2 = -1, result = Array(map7.size); - map7.forEach(function(value2, key2) { - result[++index2] = [key2, value2]; - }); - return result; - } - function overArg(func, transform2) { - return function(arg) { - return func(transform2(arg)); - }; - } - function setToArray(set3) { - var index2 = -1, result = Array(set3.size); - set3.forEach(function(value2) { - result[++index2] = value2; - }); - return result; - } - var arrayProto = Array.prototype, funcProto = Function.prototype, objectProto = Object.prototype; - var coreJsData = root6["__core-js_shared__"]; - var maskSrcKey = (function() { - var uid = /[^.]+$/.exec(coreJsData && coreJsData.keys && coreJsData.keys.IE_PROTO || ""); - return uid ? "Symbol(src)_1." + uid : ""; - })(); - var funcToString = funcProto.toString; - var hasOwnProperty3 = objectProto.hasOwnProperty; - var objectToString2 = objectProto.toString; - var reIsNative = RegExp( - "^" + funcToString.call(hasOwnProperty3).replace(reRegExpChar, "\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g, "$1.*?") + "$" - ); - var Buffer2 = moduleExports ? root6.Buffer : void 0, Symbol2 = root6.Symbol, Uint8Array2 = root6.Uint8Array, getPrototype = overArg(Object.getPrototypeOf, Object), objectCreate = Object.create, propertyIsEnumerable = objectProto.propertyIsEnumerable, splice2 = arrayProto.splice; - var nativeGetSymbols = Object.getOwnPropertySymbols, nativeIsBuffer = Buffer2 ? Buffer2.isBuffer : void 0, nativeKeys = overArg(Object.keys, Object); - var DataView2 = getNative(root6, "DataView"), Map2 = getNative(root6, "Map"), Promise2 = getNative(root6, "Promise"), Set2 = getNative(root6, "Set"), WeakMap2 = getNative(root6, "WeakMap"), nativeCreate = getNative(Object, "create"); - var dataViewCtorString = toSource(DataView2), mapCtorString = toSource(Map2), promiseCtorString = toSource(Promise2), setCtorString = toSource(Set2), weakMapCtorString = toSource(WeakMap2); - var symbolProto = Symbol2 ? Symbol2.prototype : void 0, symbolValueOf = symbolProto ? symbolProto.valueOf : void 0; - function Hash(entries) { - var index2 = -1, length = entries ? entries.length : 0; - this.clear(); - while (++index2 < length) { - var entry = entries[index2]; - this.set(entry[0], entry[1]); - } - } - function hashClear() { - this.__data__ = nativeCreate ? nativeCreate(null) : {}; - } - function hashDelete(key2) { - return this.has(key2) && delete this.__data__[key2]; - } - function hashGet(key2) { - var data8 = this.__data__; - if (nativeCreate) { - var result = data8[key2]; - return result === HASH_UNDEFINED ? void 0 : result; - } - return hasOwnProperty3.call(data8, key2) ? data8[key2] : void 0; - } - function hashHas(key2) { - var data8 = this.__data__; - return nativeCreate ? data8[key2] !== void 0 : hasOwnProperty3.call(data8, key2); - } - function hashSet(key2, value2) { - var data8 = this.__data__; - data8[key2] = nativeCreate && value2 === void 0 ? HASH_UNDEFINED : value2; - return this; - } - Hash.prototype.clear = hashClear; - Hash.prototype["delete"] = hashDelete; - Hash.prototype.get = hashGet; - Hash.prototype.has = hashHas; - Hash.prototype.set = hashSet; - function ListCache(entries) { - var index2 = -1, length = entries ? entries.length : 0; - this.clear(); - while (++index2 < length) { - var entry = entries[index2]; - this.set(entry[0], entry[1]); - } - } - function listCacheClear() { - this.__data__ = []; - } - function listCacheDelete(key2) { - var data8 = this.__data__, index2 = assocIndexOf(data8, key2); - if (index2 < 0) { - return false; - } - var lastIndex = data8.length - 1; - if (index2 == lastIndex) { - data8.pop(); - } else { - splice2.call(data8, index2, 1); - } - return true; - } - function listCacheGet(key2) { - var data8 = this.__data__, index2 = assocIndexOf(data8, key2); - return index2 < 0 ? void 0 : data8[index2][1]; - } - function listCacheHas(key2) { - return assocIndexOf(this.__data__, key2) > -1; - } - function listCacheSet(key2, value2) { - var data8 = this.__data__, index2 = assocIndexOf(data8, key2); - if (index2 < 0) { - data8.push([key2, value2]); - } else { - data8[index2][1] = value2; - } - return this; - } - ListCache.prototype.clear = listCacheClear; - ListCache.prototype["delete"] = listCacheDelete; - ListCache.prototype.get = listCacheGet; - ListCache.prototype.has = listCacheHas; - ListCache.prototype.set = listCacheSet; - function MapCache(entries) { - var index2 = -1, length = entries ? entries.length : 0; - this.clear(); - while (++index2 < length) { - var entry = entries[index2]; - this.set(entry[0], entry[1]); - } - } - function mapCacheClear() { - this.__data__ = { - "hash": new Hash(), - "map": new (Map2 || ListCache)(), - "string": new Hash() - }; - } - function mapCacheDelete(key2) { - return getMapData(this, key2)["delete"](key2); - } - function mapCacheGet(key2) { - return getMapData(this, key2).get(key2); - } - function mapCacheHas(key2) { - return getMapData(this, key2).has(key2); - } - function mapCacheSet(key2, value2) { - getMapData(this, key2).set(key2, value2); - return this; - } - MapCache.prototype.clear = mapCacheClear; - MapCache.prototype["delete"] = mapCacheDelete; - MapCache.prototype.get = mapCacheGet; - MapCache.prototype.has = mapCacheHas; - MapCache.prototype.set = mapCacheSet; - function Stack(entries) { - this.__data__ = new ListCache(entries); - } - function stackClear() { - this.__data__ = new ListCache(); - } - function stackDelete(key2) { - return this.__data__["delete"](key2); - } - function stackGet(key2) { - return this.__data__.get(key2); - } - function stackHas(key2) { - return this.__data__.has(key2); - } - function stackSet(key2, value2) { - var cache = this.__data__; - if (cache instanceof ListCache) { - var pairs2 = cache.__data__; - if (!Map2 || pairs2.length < LARGE_ARRAY_SIZE - 1) { - pairs2.push([key2, value2]); - return this; - } - cache = this.__data__ = new MapCache(pairs2); - } - cache.set(key2, value2); - return this; - } - Stack.prototype.clear = stackClear; - Stack.prototype["delete"] = stackDelete; - Stack.prototype.get = stackGet; - Stack.prototype.has = stackHas; - Stack.prototype.set = stackSet; - function arrayLikeKeys(value2, inherited) { - var result = isArray4(value2) || isArguments(value2) ? baseTimes(value2.length, String) : []; - var length = result.length, skipIndexes = !!length; - for (var key2 in value2) { - if ((inherited || hasOwnProperty3.call(value2, key2)) && !(skipIndexes && (key2 == "length" || isIndex(key2, length)))) { - result.push(key2); - } - } - return result; - } - function assignValue(object, key2, value2) { - var objValue = object[key2]; - if (!(hasOwnProperty3.call(object, key2) && eq(objValue, value2)) || value2 === void 0 && !(key2 in object)) { - object[key2] = value2; - } - } - function assocIndexOf(array, key2) { - var length = array.length; - while (length--) { - if (eq(array[length][0], key2)) { - return length; - } - } - return -1; - } - function baseAssign(object, source) { - return object && copyObject(source, keys2(source), object); - } - function baseClone(value2, isDeep, isFull, customizer, key2, object, stack) { - var result; - if (customizer) { - result = object ? customizer(value2, key2, object, stack) : customizer(value2); - } - if (result !== void 0) { - return result; - } - if (!isObject4(value2)) { - return value2; - } - var isArr = isArray4(value2); - if (isArr) { - result = initCloneArray(value2); - if (!isDeep) { - return copyArray(value2, result); - } - } else { - var tag = getTag(value2), isFunc = tag == funcTag || tag == genTag; - if (isBuffer(value2)) { - return cloneBuffer(value2, isDeep); - } - if (tag == objectTag || tag == argsTag || isFunc && !object) { - if (isHostObject(value2)) { - return object ? value2 : {}; - } - result = initCloneObject(isFunc ? {} : value2); - if (!isDeep) { - return copySymbols(value2, baseAssign(result, value2)); - } - } else { - if (!cloneableTags[tag]) { - return object ? value2 : {}; - } - result = initCloneByTag(value2, tag, baseClone, isDeep); - } - } - stack || (stack = new Stack()); - var stacked = stack.get(value2); - if (stacked) { - return stacked; - } - stack.set(value2, result); - if (!isArr) { - var props = isFull ? getAllKeys(value2) : keys2(value2); - } - arrayEach(props || value2, function(subValue, key3) { - if (props) { - key3 = subValue; - subValue = value2[key3]; - } - assignValue(result, key3, baseClone(subValue, isDeep, isFull, customizer, key3, value2, stack)); - }); - return result; - } - function baseCreate(proto) { - return isObject4(proto) ? objectCreate(proto) : {}; - } - function baseGetAllKeys(object, keysFunc, symbolsFunc) { - var result = keysFunc(object); - return isArray4(object) ? result : arrayPush(result, symbolsFunc(object)); - } - function baseGetTag(value2) { - return objectToString2.call(value2); - } - function baseIsNative(value2) { - if (!isObject4(value2) || isMasked(value2)) { - return false; - } - var pattern = isFunction2(value2) || isHostObject(value2) ? reIsNative : reIsHostCtor; - return pattern.test(toSource(value2)); - } - function baseKeys(object) { - if (!isPrototype(object)) { - return nativeKeys(object); - } - var result = []; - for (var key2 in Object(object)) { - if (hasOwnProperty3.call(object, key2) && key2 != "constructor") { - result.push(key2); - } - } - return result; - } - function cloneBuffer(buffer2, isDeep) { - if (isDeep) { - return buffer2.slice(); - } - var result = new buffer2.constructor(buffer2.length); - buffer2.copy(result); - return result; - } - function cloneArrayBuffer(arrayBuffer) { - var result = new arrayBuffer.constructor(arrayBuffer.byteLength); - new Uint8Array2(result).set(new Uint8Array2(arrayBuffer)); - return result; - } - function cloneDataView(dataView, isDeep) { - var buffer2 = isDeep ? cloneArrayBuffer(dataView.buffer) : dataView.buffer; - return new dataView.constructor(buffer2, dataView.byteOffset, dataView.byteLength); - } - function cloneMap(map7, isDeep, cloneFunc) { - var array = isDeep ? cloneFunc(mapToArray(map7), true) : mapToArray(map7); - return arrayReduce(array, addMapEntry, new map7.constructor()); - } - function cloneRegExp(regexp) { - var result = new regexp.constructor(regexp.source, reFlags.exec(regexp)); - result.lastIndex = regexp.lastIndex; - return result; - } - function cloneSet(set3, isDeep, cloneFunc) { - var array = isDeep ? cloneFunc(setToArray(set3), true) : setToArray(set3); - return arrayReduce(array, addSetEntry, new set3.constructor()); - } - function cloneSymbol(symbol) { - return symbolValueOf ? Object(symbolValueOf.call(symbol)) : {}; - } - function cloneTypedArray(typedArray, isDeep) { - var buffer2 = isDeep ? cloneArrayBuffer(typedArray.buffer) : typedArray.buffer; - return new typedArray.constructor(buffer2, typedArray.byteOffset, typedArray.length); - } - function copyArray(source, array) { - var index2 = -1, length = source.length; - array || (array = Array(length)); - while (++index2 < length) { - array[index2] = source[index2]; - } - return array; - } - function copyObject(source, props, object, customizer) { - object || (object = {}); - var index2 = -1, length = props.length; - while (++index2 < length) { - var key2 = props[index2]; - var newValue = customizer ? customizer(object[key2], source[key2], key2, object, source) : void 0; - assignValue(object, key2, newValue === void 0 ? source[key2] : newValue); - } - return object; - } - function copySymbols(source, object) { - return copyObject(source, getSymbols(source), object); - } - function getAllKeys(object) { - return baseGetAllKeys(object, keys2, getSymbols); - } - function getMapData(map7, key2) { - var data8 = map7.__data__; - return isKeyable(key2) ? data8[typeof key2 == "string" ? "string" : "hash"] : data8.map; - } - function getNative(object, key2) { - var value2 = getValue(object, key2); - return baseIsNative(value2) ? value2 : void 0; - } - var getSymbols = nativeGetSymbols ? overArg(nativeGetSymbols, Object) : stubArray; - var getTag = baseGetTag; - if (DataView2 && getTag(new DataView2(new ArrayBuffer(1))) != dataViewTag || Map2 && getTag(new Map2()) != mapTag || Promise2 && getTag(Promise2.resolve()) != promiseTag || Set2 && getTag(new Set2()) != setTag || WeakMap2 && getTag(new WeakMap2()) != weakMapTag) { - getTag = function(value2) { - var result = objectToString2.call(value2), Ctor = result == objectTag ? value2.constructor : void 0, ctorString = Ctor ? toSource(Ctor) : void 0; - if (ctorString) { - switch (ctorString) { - case dataViewCtorString: - return dataViewTag; - case mapCtorString: - return mapTag; - case promiseCtorString: - return promiseTag; - case setCtorString: - return setTag; - case weakMapCtorString: - return weakMapTag; - } - } - return result; - }; - } - function initCloneArray(array) { - var length = array.length, result = array.constructor(length); - if (length && typeof array[0] == "string" && hasOwnProperty3.call(array, "index")) { - result.index = array.index; - result.input = array.input; - } - return result; - } - function initCloneObject(object) { - return typeof object.constructor == "function" && !isPrototype(object) ? baseCreate(getPrototype(object)) : {}; - } - function initCloneByTag(object, tag, cloneFunc, isDeep) { - var Ctor = object.constructor; - switch (tag) { - case arrayBufferTag: - return cloneArrayBuffer(object); - case boolTag: - case dateTag: - return new Ctor(+object); - case dataViewTag: - return cloneDataView(object, isDeep); - case float32Tag: - case float64Tag: - case int8Tag: - case int16Tag: - case int32Tag: - case uint8Tag: - case uint8ClampedTag: - case uint16Tag: - case uint32Tag: - return cloneTypedArray(object, isDeep); - case mapTag: - return cloneMap(object, isDeep, cloneFunc); - case numberTag: - case stringTag: - return new Ctor(object); - case regexpTag: - return cloneRegExp(object); - case setTag: - return cloneSet(object, isDeep, cloneFunc); - case symbolTag: - return cloneSymbol(object); - } - } - function isIndex(value2, length) { - length = length == null ? MAX_SAFE_INTEGER : length; - return !!length && (typeof value2 == "number" || reIsUint.test(value2)) && (value2 > -1 && value2 % 1 == 0 && value2 < length); - } - function isKeyable(value2) { - var type5 = typeof value2; - return type5 == "string" || type5 == "number" || type5 == "symbol" || type5 == "boolean" ? value2 !== "__proto__" : value2 === null; - } - function isMasked(func) { - return !!maskSrcKey && maskSrcKey in func; - } - function isPrototype(value2) { - var Ctor = value2 && value2.constructor, proto = typeof Ctor == "function" && Ctor.prototype || objectProto; - return value2 === proto; - } - function toSource(func) { - if (func != null) { - try { - return funcToString.call(func); - } catch (e11) { - } - try { - return func + ""; - } catch (e11) { - } - } - return ""; - } - function cloneDeep(value2) { - return baseClone(value2, true, true); - } - function eq(value2, other) { - return value2 === other || value2 !== value2 && other !== other; - } - function isArguments(value2) { - return isArrayLikeObject(value2) && hasOwnProperty3.call(value2, "callee") && (!propertyIsEnumerable.call(value2, "callee") || objectToString2.call(value2) == argsTag); - } - var isArray4 = Array.isArray; - function isArrayLike2(value2) { - return value2 != null && isLength(value2.length) && !isFunction2(value2); - } - function isArrayLikeObject(value2) { - return isObjectLike(value2) && isArrayLike2(value2); - } - var isBuffer = nativeIsBuffer || stubFalse; - function isFunction2(value2) { - var tag = isObject4(value2) ? objectToString2.call(value2) : ""; - return tag == funcTag || tag == genTag; - } - function isLength(value2) { - return typeof value2 == "number" && value2 > -1 && value2 % 1 == 0 && value2 <= MAX_SAFE_INTEGER; - } - function isObject4(value2) { - var type5 = typeof value2; - return !!value2 && (type5 == "object" || type5 == "function"); - } - function isObjectLike(value2) { - return !!value2 && typeof value2 == "object"; - } - function keys2(object) { - return isArrayLike2(object) ? arrayLikeKeys(object) : baseKeys(object); - } - function stubArray() { - return []; - } - function stubFalse() { - return false; - } - module.exports = cloneDeep; - } -}); - -// node_modules/.pnpm/fast-json-stable-stringify@2.1.0/node_modules/fast-json-stable-stringify/index.js -var require_fast_json_stable_stringify = __commonJS({ - "node_modules/.pnpm/fast-json-stable-stringify@2.1.0/node_modules/fast-json-stable-stringify/index.js"(exports, module) { - "use strict"; - module.exports = function(data8, opts) { - if (!opts) opts = {}; - if (typeof opts === "function") opts = { cmp: opts }; - var cycles = typeof opts.cycles === "boolean" ? opts.cycles : false; - var cmp = opts.cmp && /* @__PURE__ */ (function(f7) { - return function(node2) { - return function(a5, b5) { - var aobj = { key: a5, value: node2[a5] }; - var bobj = { key: b5, value: node2[b5] }; - return f7(aobj, bobj); - }; - }; - })(opts.cmp); - var seen = []; - return (function stringify7(node2) { - if (node2 && node2.toJSON && typeof node2.toJSON === "function") { - node2 = node2.toJSON(); - } - if (node2 === void 0) return; - if (typeof node2 == "number") return isFinite(node2) ? "" + node2 : "null"; - if (typeof node2 !== "object") return JSON.stringify(node2); - var i11, out; - if (Array.isArray(node2)) { - out = "["; - for (i11 = 0; i11 < node2.length; i11++) { - if (i11) out += ","; - out += stringify7(node2[i11]) || "null"; - } - return out + "]"; - } - if (node2 === null) return "null"; - if (seen.indexOf(node2) !== -1) { - if (cycles) return JSON.stringify("__cycle__"); - throw new TypeError("Converting circular structure to JSON"); - } - var seenIndex = seen.push(node2) - 1; - var keys2 = Object.keys(node2).sort(cmp && cmp(node2)); - out = ""; - for (i11 = 0; i11 < keys2.length; i11++) { - var key2 = keys2[i11]; - var value2 = stringify7(node2[key2]); - if (!value2) continue; - if (out) out += ","; - out += JSON.stringify(key2) + ":" + value2; - } - seen.splice(seenIndex, 1); - return "{" + out + "}"; - })(data8); - }; - } -}); - -// node_modules/.pnpm/@push.rocks+smartjson@5.2.0/node_modules/@push.rocks/smartjson/dist_ts/smartjson.plugins.js -var import_lodash, import_fast_json_stable_stringify, stableJson; -var init_smartjson_plugins = __esm({ - "node_modules/.pnpm/@push.rocks+smartjson@5.2.0/node_modules/@push.rocks/smartjson/dist_ts/smartjson.plugins.js"() { - init_dist_ts10(); - init_dist_ts11(); - import_lodash = __toESM(require_lodash(), 1); - import_fast_json_stable_stringify = __toESM(require_fast_json_stable_stringify(), 1); - stableJson = import_fast_json_stable_stringify.default; - } -}); - -// node_modules/.pnpm/@push.rocks+smartjson@5.2.0/node_modules/@push.rocks/smartjson/dist_ts/bufferhandling.js -function base64Encode(data8) { - if (typeof Buffer !== "undefined") { - return Buffer.from(data8).toString("base64"); - } - return btoa(String.fromCharCode(...data8)); -} -function base64Decode(str) { - if (typeof Buffer !== "undefined") { - const buf = Buffer.from(str, "base64"); - return new Uint8Array(buf.buffer, buf.byteOffset, buf.byteLength); - } - return new Uint8Array(Array.from(atob(str)).map((char) => char.charCodeAt(0))); -} -function stringify(value2, space2) { - return JSON.stringify(value2, replacer, space2); -} -function parse2(text9) { - return JSON.parse(text9, reviver); -} -function isEncodedBuffer(x4) { - return isObject(x4) && x4.type === "EncodedBuffer" && isString(x4.data); -} -function isBufferLike2(x4) { - return isObject(x4) && (x4.type === "Buffer" && (isArray2(x4.data) || isString(x4.data))) || x4 instanceof Uint8Array; -} -function isArray2(x4) { - return Array.isArray(x4); -} -function isString(x4) { - return typeof x4 === "string"; -} -function isObject(x4) { - return typeof x4 === "object" && x4 !== null; -} -var replacer, reviver; -var init_bufferhandling = __esm({ - "node_modules/.pnpm/@push.rocks+smartjson@5.2.0/node_modules/@push.rocks/smartjson/dist_ts/bufferhandling.js"() { - init_smartjson_plugins(); - replacer = (key2, value2) => { - if (isBufferLike2(value2)) { - let bufferData; - if ("data" in value2 && isArray2(value2.data)) { - bufferData = new Uint8Array(value2.data); - } else if (value2 instanceof Uint8Array) { - bufferData = value2; - } else { - return value2; - } - const base64Data = "base64:" + base64Encode(bufferData); - return { - type: "EncodedBuffer", - data: base64Data - }; - } - return value2; - }; - reviver = (key2, value2) => { - if (isEncodedBuffer(value2)) { - if (isString(value2.data) && value2.data.startsWith("base64:")) { - const base64Data = value2.data.slice(7); - const buffer2 = base64Decode(base64Data); - return buffer2; - } - } - return value2; - }; - } -}); - -// node_modules/.pnpm/@push.rocks+smartjson@5.2.0/node_modules/@push.rocks/smartjson/dist_ts/index.js -var dist_ts_exports12 = {}; -__export(dist_ts_exports12, { - Smartjson: () => Smartjson, - deepEqualJsonLStrings: () => deepEqualJsonLStrings, - deepEqualObjects: () => deepEqualObjects, - foldDec: () => foldDec, - parse: () => parse3, - parseBase64: () => parseBase64, - parseJsonL: () => parseJsonL, - stableOneWayStringify: () => stableOneWayStringify, - stringify: () => stringify2, - stringifyBase64: () => stringifyBase64, - stringifyJsonL: () => stringifyJsonL, - stringifyPretty: () => stringifyPretty -}); -var parse3, parseJsonL, stringifyJsonL, stableOneWayStringify, stringify2, stringifyPretty, stringifyBase64, parseBase64, Smartjson, foldDec, deepEqualObjects, deepEqualJsonLStrings; -var init_dist_ts12 = __esm({ - "node_modules/.pnpm/@push.rocks+smartjson@5.2.0/node_modules/@push.rocks/smartjson/dist_ts/index.js"() { - init_smartjson_plugins(); - init_bufferhandling(); - parse3 = parse2; - parseJsonL = (jsonlData) => { - const lines = jsonlData.split("\n"); - const parsedData = lines.reduce((acc, line) => { - const trimmed = line.trim(); - if (trimmed.length > 0) { - acc.push(parse3(trimmed)); - } - return acc; - }, []); - return parsedData; - }; - stringifyJsonL = (items) => { - return items.map((item) => stringify2(item)).join("\n"); - }; - stableOneWayStringify = (objArg, simpleOrderArray, optionsArg = {}) => { - const visited = /* @__PURE__ */ new WeakSet(); - const sanitize2 = (val) => { - if (val === null || typeof val !== "object") { - return val; - } - const replaced = replacer("", val); - if (replaced && replaced.type === "EncodedBuffer" && typeof replaced.data === "string") { - return replaced; - } - if (visited.has(val)) { - return "__cycle__"; - } - visited.add(val); - if (Array.isArray(val)) { - return val.map((item) => sanitize2(item)); - } - const out = {}; - for (const key2 of Object.keys(val)) { - try { - out[key2] = sanitize2(val[key2]); - } catch (e11) { - out[key2] = "__unserializable__"; - } - } - return out; - }; - const obj = sanitize2(objArg); - const options = { - ...optionsArg, - cycles: true - }; - if (simpleOrderArray && !options.cmp) { - const order2 = /* @__PURE__ */ new Map(); - simpleOrderArray.forEach((key2, idx) => order2.set(key2, idx)); - options.cmp = (a5, b5) => { - const aIdx = order2.has(a5.key) ? order2.get(a5.key) : Number.POSITIVE_INFINITY; - const bIdx = order2.has(b5.key) ? order2.get(b5.key) : Number.POSITIVE_INFINITY; - if (aIdx !== bIdx) - return aIdx - bIdx; - return a5.key < b5.key ? -1 : a5.key > b5.key ? 1 : 0; - }; - } - return stableJson(obj, options); - }; - stringify2 = (objArg, simpleOrderArray, optionsArg = {}) => { - const bufferedJson = stringify(objArg); - objArg = JSON.parse(bufferedJson); - let options = { ...optionsArg }; - if (simpleOrderArray && !options.cmp) { - const order2 = /* @__PURE__ */ new Map(); - simpleOrderArray.forEach((key2, idx) => order2.set(key2, idx)); - options.cmp = (a5, b5) => { - const aIdx = order2.has(a5.key) ? order2.get(a5.key) : Number.POSITIVE_INFINITY; - const bIdx = order2.has(b5.key) ? order2.get(b5.key) : Number.POSITIVE_INFINITY; - if (aIdx !== bIdx) - return aIdx - bIdx; - return a5.key < b5.key ? -1 : a5.key > b5.key ? 1 : 0; - }; - } - let returnJson = stableJson(objArg, options); - return returnJson; - }; - stringifyPretty = (objectArg) => { - const stringified = stringify2(objectArg); - const object = JSON.parse(stringified); - return JSON.stringify(object, null, 2); - }; - stringifyBase64 = (...args) => { - const stringifiedResult = stringify2(...args); - return dist_ts_exports11.base64.encodeUri(stringifiedResult); - }; - parseBase64 = (base64JsonStringArg) => { - const base642 = dist_ts_exports11.base64; - const decodeFn = base642.decodeUri || base642.decode; - const simpleStringified = decodeFn(base64JsonStringArg); - return parse3(simpleStringified); - }; - Smartjson = class _Smartjson { - /** - * enfolds data from an object - */ - static enfoldFromObject(objectArg) { - const newInstance = new this(); - const saveables = newInstance.saveableProperties || []; - for (const keyName in objectArg) { - if (saveables.indexOf(keyName) !== -1) { - newInstance[keyName] = objectArg[keyName]; - } - } - return newInstance; - } - /** - * enfold from json - */ - static enfoldFromJson(jsonArg) { - const objectFromJson = parse3(jsonArg); - return this.enfoldFromObject(objectFromJson); - } - /** - * folds a class into an object - */ - foldToObject() { - const trackSet = /* @__PURE__ */ new Set(); - trackSet.add(this); - return this.foldToObjectInternal(trackSet); - } - foldToObjectInternal(trackSet) { - const result = {}; - const foldValue = (val) => { - if (val instanceof _Smartjson) { - if (trackSet.has(val)) { - throw new Error("cycle detected"); - } - trackSet.add(val); - return val.foldToObjectInternal(trackSet); - } - if (Array.isArray(val)) { - return val.map((item) => foldValue(item)); - } - return import_lodash.default(val); - }; - const props = this.saveableProperties || []; - for (const keyName of props) { - const value2 = this[keyName]; - result[keyName] = foldValue(value2); - } - return result; - } - /** - * folds a class into an object - */ - foldToJson() { - const foldedObject = this.foldToObject(); - return stringify2(foldedObject); - } - }; - foldDec = () => { - return (target, key2) => { - if (!target.saveableProperties) { - target.saveableProperties = []; - } - target.saveableProperties.push(key2); - }; - }; - deepEqualObjects = (object1, object2) => { - const object1String = stringify2(object1); - const object2String = stringify2(object2); - return object1String === object2String; - }; - deepEqualJsonLStrings = (jsonLString1, jsonLString2) => { - const firstArray = parseJsonL(jsonLString1); - const secondArray = parseJsonL(jsonLString2); - return deepEqualObjects(firstArray, secondArray); - }; - } -}); - -// node_modules/.pnpm/@tempfix+idb@8.0.3/node_modules/@tempfix/idb/build/index.js -var build_exports = {}; -__export(build_exports, { - deleteDB: () => deleteDB, - openDB: () => openDB, - unwrap: () => unwrap, - wrap: () => wrap -}); -function getIdbProxyableTypes() { - return idbProxyableTypes || (idbProxyableTypes = [ - IDBDatabase, - IDBObjectStore, - IDBIndex, - IDBCursor, - IDBTransaction - ]); -} -function getCursorAdvanceMethods() { - return cursorAdvanceMethods || (cursorAdvanceMethods = [ - IDBCursor.prototype.advance, - IDBCursor.prototype.continue, - IDBCursor.prototype.continuePrimaryKey - ]); -} -function promisifyRequest(request) { - const promise = new Promise((resolve2, reject) => { - const unlisten = () => { - request.removeEventListener("success", success); - request.removeEventListener("error", error); - }; - const success = () => { - resolve2(wrap(request.result)); - unlisten(); - }; - const error = () => { - reject(request.error); - unlisten(); - }; - request.addEventListener("success", success); - request.addEventListener("error", error); - }); - reverseTransformCache.set(promise, request); - return promise; -} -function cacheDonePromiseForTransaction(tx) { - if (transactionDoneMap.has(tx)) - return; - const done = new Promise((resolve2, reject) => { - const unlisten = () => { - tx.removeEventListener("complete", complete); - tx.removeEventListener("error", error); - tx.removeEventListener("abort", error); - }; - const complete = () => { - resolve2(); - unlisten(); - }; - const error = () => { - reject(tx.error || new DOMException("AbortError", "AbortError")); - unlisten(); - }; - tx.addEventListener("complete", complete); - tx.addEventListener("error", error); - tx.addEventListener("abort", error); - }); - transactionDoneMap.set(tx, done); -} -function replaceTraps(callback) { - idbProxyTraps = callback(idbProxyTraps); -} -function wrapFunction(func) { - if (getCursorAdvanceMethods().includes(func)) { - return function(...args) { - func.apply(unwrap(this), args); - return wrap(this.request); - }; - } - return function(...args) { - return wrap(func.apply(unwrap(this), args)); - }; -} -function transformCachableValue(value2) { - if (typeof value2 === "function") - return wrapFunction(value2); - if (value2 instanceof IDBTransaction) - cacheDonePromiseForTransaction(value2); - if (instanceOfAny(value2, getIdbProxyableTypes())) - return new Proxy(value2, idbProxyTraps); - return value2; -} -function wrap(value2) { - if (value2 instanceof IDBRequest) - return promisifyRequest(value2); - if (transformCache.has(value2)) - return transformCache.get(value2); - const newValue = transformCachableValue(value2); - if (newValue !== value2) { - transformCache.set(value2, newValue); - reverseTransformCache.set(newValue, value2); - } - return newValue; -} -function openDB(name, version2, { blocked, upgrade, blocking, terminated } = {}) { - const request = indexedDB.open(name, version2); - const openPromise = wrap(request); - if (upgrade) { - request.addEventListener("upgradeneeded", (event) => { - upgrade(wrap(request.result), event.oldVersion, event.newVersion, wrap(request.transaction), event); - }); - } - if (blocked) { - request.addEventListener("blocked", (event) => blocked( - // Casting due to https://github.com/microsoft/TypeScript-DOM-lib-generator/pull/1405 - event.oldVersion, - event.newVersion, - event - )); - } - openPromise.then((db) => { - if (terminated) - db.addEventListener("close", () => terminated()); - if (blocking) { - db.addEventListener("versionchange", (event) => blocking(event.oldVersion, event.newVersion, event)); - } - }).catch(() => { - }); - return openPromise; -} -function deleteDB(name, { blocked } = {}) { - const request = indexedDB.deleteDatabase(name); - if (blocked) { - request.addEventListener("blocked", (event) => blocked( - // Casting due to https://github.com/microsoft/TypeScript-DOM-lib-generator/pull/1405 - event.oldVersion, - event - )); - } - return wrap(request).then(() => void 0); -} -function getMethod(target, prop) { - if (!(target instanceof IDBDatabase && !(prop in target) && typeof prop === "string")) { - return; - } - if (cachedMethods.get(prop)) - return cachedMethods.get(prop); - const targetFuncName = prop.replace(/FromIndex$/, ""); - const useIndex = prop !== targetFuncName; - const isWrite = writeMethods.includes(targetFuncName); - if ( - // Bail if the target doesn't exist on the target. Eg, getAll isn't in Edge. - !(targetFuncName in (useIndex ? IDBIndex : IDBObjectStore).prototype) || !(isWrite || readMethods.includes(targetFuncName)) - ) { - return; - } - const method = async function(storeName, ...args) { - const tx = this.transaction(storeName, isWrite ? "readwrite" : "readonly"); - let target2 = tx.store; - if (useIndex) - target2 = target2.index(args.shift()); - return (await Promise.all([ - target2[targetFuncName](...args), - isWrite && tx.done - ]))[0]; - }; - cachedMethods.set(prop, method); - return method; -} -async function* iterate(...args) { - let cursor = this; - if (!(cursor instanceof IDBCursor)) { - cursor = await cursor.openCursor(...args); - } - if (!cursor) - return; - cursor = cursor; - const proxiedCursor = new Proxy(cursor, cursorIteratorTraps); - ittrProxiedCursorToOriginalProxy.set(proxiedCursor, cursor); - reverseTransformCache.set(proxiedCursor, unwrap(cursor)); - while (cursor) { - yield proxiedCursor; - cursor = await (advanceResults.get(proxiedCursor) || cursor.continue()); - advanceResults.delete(proxiedCursor); - } -} -function isIteratorProp(target, prop) { - return prop === Symbol.asyncIterator && instanceOfAny(target, [IDBIndex, IDBObjectStore, IDBCursor]) || prop === "iterate" && instanceOfAny(target, [IDBIndex, IDBObjectStore]); -} -var instanceOfAny, idbProxyableTypes, cursorAdvanceMethods, transactionDoneMap, transformCache, reverseTransformCache, idbProxyTraps, unwrap, readMethods, writeMethods, cachedMethods, advanceMethodProps, methodMap, advanceResults, ittrProxiedCursorToOriginalProxy, cursorIteratorTraps; -var init_build = __esm({ - "node_modules/.pnpm/@tempfix+idb@8.0.3/node_modules/@tempfix/idb/build/index.js"() { - instanceOfAny = (object, constructors) => constructors.some((c11) => object instanceof c11); - transactionDoneMap = /* @__PURE__ */ new WeakMap(); - transformCache = /* @__PURE__ */ new WeakMap(); - reverseTransformCache = /* @__PURE__ */ new WeakMap(); - idbProxyTraps = { - get(target, prop, receiver) { - if (target instanceof IDBTransaction) { - if (prop === "done") - return transactionDoneMap.get(target); - if (prop === "store") { - return receiver.objectStoreNames[1] ? void 0 : receiver.objectStore(receiver.objectStoreNames[0]); - } - } - return wrap(target[prop]); - }, - set(target, prop, value2) { - target[prop] = value2; - return true; - }, - has(target, prop) { - if (target instanceof IDBTransaction && (prop === "done" || prop === "store")) { - return true; - } - return prop in target; - } - }; - unwrap = (value2) => reverseTransformCache.get(value2); - readMethods = ["get", "getKey", "getAll", "getAllKeys", "count"]; - writeMethods = ["put", "add", "delete", "clear"]; - cachedMethods = /* @__PURE__ */ new Map(); - replaceTraps((oldTraps) => ({ - ...oldTraps, - get: (target, prop, receiver) => getMethod(target, prop) || oldTraps.get(target, prop, receiver), - has: (target, prop) => !!getMethod(target, prop) || oldTraps.has(target, prop) - })); - advanceMethodProps = ["continue", "continuePrimaryKey", "advance"]; - methodMap = {}; - advanceResults = /* @__PURE__ */ new WeakMap(); - ittrProxiedCursorToOriginalProxy = /* @__PURE__ */ new WeakMap(); - cursorIteratorTraps = { - get(target, prop) { - if (!advanceMethodProps.includes(prop)) - return target[prop]; - let cachedFunc = methodMap[prop]; - if (!cachedFunc) { - cachedFunc = methodMap[prop] = function(...args) { - advanceResults.set(this, ittrProxiedCursorToOriginalProxy.get(this)[prop](...args)); - }; - } - return cachedFunc; - } - }; - replaceTraps((oldTraps) => ({ - ...oldTraps, - get(target, prop, receiver) { - if (isIteratorProp(target, prop)) - return iterate; - return oldTraps.get(target, prop, receiver); - }, - has(target, prop) { - return isIteratorProp(target, prop) || oldTraps.has(target, prop); - } - })); - } -}); - -// node_modules/.pnpm/@push.rocks+webstore@2.0.20/node_modules/@push.rocks/webstore/dist_ts/webstore.plugins.js -var init_webstore_plugins = __esm({ - "node_modules/.pnpm/@push.rocks+webstore@2.0.20/node_modules/@push.rocks/webstore/dist_ts/webstore.plugins.js"() { - init_dist_ts7(); - init_dist_ts10(); - init_dist_ts12(); - init_dist_ts(); - init_dist_ts2(); - init_dist_ts4(); - init_build(); - } -}); - -// node_modules/.pnpm/@push.rocks+webstore@2.0.20/node_modules/@push.rocks/webstore/dist_ts/webstore.classes.webstore.js -var WebStore; -var init_webstore_classes_webstore = __esm({ - "node_modules/.pnpm/@push.rocks+webstore@2.0.20/node_modules/@push.rocks/webstore/dist_ts/webstore.classes.webstore.js"() { - init_webstore_plugins(); - WebStore = class { - constructor(optionsArg) { - this.initCalled = false; - this.readyDeferred = dist_ts_exports.defer(); - this.options = optionsArg; - } - async init() { - if (this.initCalled) { - await this.readyDeferred.promise; - return; - } - this.initCalled = true; - const smartenv = new dist_ts_exports10.Smartenv(); - if (!smartenv.isBrowser && !globalThis.indexedDB) { - console.log("hey"); - console.log(globalThis.indexedDB); - await smartenv.getSafeNodeModule("fake-indexeddb/auto"); - if (!globalThis.indexedDB) { - const mod = await smartenv.getSafeNodeModule("fake-indexeddb"); - globalThis.indexedDB = new mod.IDBFactory(); - } - } - this.db = await build_exports.openDB(this.options.dbName, 1, { - upgrade: (db) => { - db.createObjectStore(this.options.storeName); - } - }); - this.readyDeferred.resolve(); - return; - } - async get(key2) { - await this.init(); - return this.db.get(this.options.storeName, key2); - } - async check(keyArg) { - await this.init(); - const result = await this.get(keyArg); - return !!result; - } - async set(key2, val) { - await this.init(); - return this.db.put(this.options.storeName, val, key2); - } - async delete(key2) { - await this.init(); - return this.db.delete(this.options.storeName, key2); - } - async clear() { - await this.init(); - return this.db.clear(this.options.storeName); - } - async keys() { - await this.init(); - return this.db.getAllKeys(this.options.storeName); - } - }; - } -}); - -// node_modules/.pnpm/@push.rocks+webstore@2.0.20/node_modules/@push.rocks/webstore/dist_ts/webstore.classes.typedrequestcache.js -var TypedrequestCache; -var init_webstore_classes_typedrequestcache = __esm({ - "node_modules/.pnpm/@push.rocks+webstore@2.0.20/node_modules/@push.rocks/webstore/dist_ts/webstore.classes.typedrequestcache.js"() { - init_webstore_classes_webstore(); - init_webstore_plugins(); - TypedrequestCache = class { - constructor(domainArg = "default") { - this.webstore = new WebStore({ - dbName: "trStore", - storeName: `trStore-${domainArg}` - }); - } - buildKey(requestArg) { - return dist_ts_exports12.stringify({ - method: requestArg.method, - request: requestArg.request - }); - } - /** - * stores by request - * @param typedrequestarg - */ - async setByRequest(typedrequestArg) { - if (!typedrequestArg.response) { - throw new Error("You cannot store requests without a response present"); - } - await this.webstore.set(this.buildKey(typedrequestArg), typedrequestArg); - } - /** - * get by full tyoedrequest by partial typedrequest - * @param typedrequestarg - */ - async getByRequest(typedrequestArg) { - const result = await this.webstore.get(this.buildKey(typedrequestArg)); - return result; - } - }; - } -}); - -// node_modules/.pnpm/@push.rocks+webstore@2.0.20/node_modules/@push.rocks/webstore/dist_ts/index.js -var dist_ts_exports13 = {}; -__export(dist_ts_exports13, { - TypedrequestCache: () => TypedrequestCache, - WebStore: () => WebStore -}); -var init_dist_ts13 = __esm({ - "node_modules/.pnpm/@push.rocks+webstore@2.0.20/node_modules/@push.rocks/webstore/dist_ts/index.js"() { - init_webstore_classes_typedrequestcache(); - init_webstore_classes_webstore(); - } -}); - -// node_modules/.pnpm/@push.rocks+webrequest@4.0.2/node_modules/@push.rocks/webrequest/dist_ts/webrequest.plugins.js -var init_webrequest_plugins = __esm({ - "node_modules/.pnpm/@push.rocks+webrequest@4.0.2/node_modules/@push.rocks/webrequest/dist_ts/webrequest.plugins.js"() { - init_dist_ts3(); - init_dist_ts10(); - init_dist_ts12(); - init_dist_ts(); - init_dist_ts13(); - } -}); - -// node_modules/.pnpm/@push.rocks+webrequest@4.0.2/node_modules/@push.rocks/webrequest/dist_ts/cache/cache.store.js -var CacheStore; -var init_cache_store = __esm({ - "node_modules/.pnpm/@push.rocks+webrequest@4.0.2/node_modules/@push.rocks/webrequest/dist_ts/cache/cache.store.js"() { - init_webrequest_plugins(); - CacheStore = class { - constructor(dbName = "webrequest-v4", storeName = "cache") { - this.webstore = new dist_ts_exports13.WebStore({ - dbName, - storeName - }); - this.initPromise = this.init(); - } - /** - * Initialize the store - */ - async init() { - } - /** - * Generate a cache key from a request - */ - generateCacheKey(request) { - const url = request.url; - const method = request.method; - if (method === "GET") { - return url; - } - return `${method}:${url}`; - } - /** - * Store a response in the cache - */ - async set(cacheKey, entry) { - await this.initPromise; - await this.webstore.set(cacheKey, entry); - } - /** - * Retrieve a cached response - */ - async get(cacheKey) { - await this.initPromise; - try { - const entry = await this.webstore.get(cacheKey); - return entry || null; - } catch (error) { - return null; - } - } - /** - * Check if a cache entry exists - */ - async has(cacheKey) { - await this.initPromise; - return await this.webstore.check(cacheKey); - } - /** - * Delete a cache entry - */ - async delete(cacheKey) { - await this.initPromise; - await this.webstore.delete(cacheKey); - } - /** - * Clear all cache entries - */ - async clear() { - await this.initPromise; - await this.webstore.clear(); - } - /** - * Create a Response object from a cache entry - */ - responseFromCacheEntry(entry) { - const headers = new Headers(entry.headers); - return new Response(entry.response, { - status: entry.status, - statusText: entry.statusText, - headers - }); - } - /** - * Create a cache entry from a Response object - */ - async cacheEntryFromResponse(url, response, metadata) { - const clonedResponse = response.clone(); - const buffer2 = await clonedResponse.arrayBuffer(); - const headers = {}; - clonedResponse.headers.forEach((value2, key2) => { - headers[key2] = value2; - }); - return { - response: buffer2, - headers, - timestamp: Date.now(), - etag: metadata?.etag || clonedResponse.headers.get("etag") || void 0, - lastModified: metadata?.lastModified || clonedResponse.headers.get("last-modified") || void 0, - maxAge: metadata?.maxAge, - url, - status: clonedResponse.status, - statusText: clonedResponse.statusText - }; - } - /** - * Prune expired entries (garbage collection) - * Returns the number of entries deleted - */ - async pruneExpired() { - await this.initPromise; - return 0; - } - }; - } -}); - -// node_modules/.pnpm/@push.rocks+webrequest@4.0.2/node_modules/@push.rocks/webrequest/dist_ts/cache/cache.headers.js -function parseCacheControl(cacheControlHeader) { - const metadata = { - maxAge: 0, - immutable: false, - noCache: false, - noStore: false, - mustRevalidate: false - }; - if (!cacheControlHeader) { - return metadata; - } - const directives = cacheControlHeader.toLowerCase().split(",").map((d5) => d5.trim()); - for (const directive of directives) { - if (directive === "no-cache") { - metadata.noCache = true; - } else if (directive === "no-store") { - metadata.noStore = true; - } else if (directive === "immutable") { - metadata.immutable = true; - } else if (directive === "must-revalidate") { - metadata.mustRevalidate = true; - } else if (directive.startsWith("max-age=")) { - const maxAge = parseInt(directive.split("=")[1], 10); - if (!isNaN(maxAge)) { - metadata.maxAge = maxAge * 1e3; - } - } - } - return metadata; -} -function parseExpires(expiresHeader) { - if (!expiresHeader) { - return void 0; - } - try { - const date = new Date(expiresHeader); - return date.getTime(); - } catch { - return void 0; - } -} -function extractCacheMetadata(headers) { - const cacheControl = headers.get("cache-control"); - const expires = headers.get("expires"); - const etag = headers.get("etag"); - const lastModified = headers.get("last-modified"); - const metadata = parseCacheControl(cacheControl); - if (metadata.maxAge === 0 && expires) { - const expiresTime = parseExpires(expires); - if (expiresTime) { - metadata.maxAge = Math.max(0, expiresTime - Date.now()); - } - } - return { - maxAge: metadata.maxAge || 0, - etag: etag || void 0, - lastModified: lastModified || void 0, - immutable: metadata.immutable || false, - noCache: metadata.noCache || false, - noStore: metadata.noStore || false, - mustRevalidate: metadata.mustRevalidate || false - }; -} -function isFresh(cacheEntry, metadata) { - if (metadata.noStore) { - return false; - } - if (metadata.immutable) { - return true; - } - const age = Date.now() - cacheEntry.timestamp; - const maxAge = cacheEntry.maxAge || metadata.maxAge || 0; - if (maxAge === 0) { - return false; - } - return age < maxAge; -} -function requiresRevalidation(metadata) { - return metadata.noCache || metadata.mustRevalidate; -} -function createConditionalHeaders(cacheEntry) { - const headers = {}; - if (cacheEntry.etag) { - headers["if-none-match"] = cacheEntry.etag; - } - if (cacheEntry.lastModified) { - headers["if-modified-since"] = cacheEntry.lastModified; - } - return headers; -} -function headersToObject(headers) { - const obj = {}; - headers.forEach((value2, key2) => { - obj[key2] = value2; - }); - return obj; -} -function objectToHeaders(obj) { - const headers = new Headers(); - Object.entries(obj).forEach(([key2, value2]) => { - headers.set(key2, value2); - }); - return headers; -} -var init_cache_headers = __esm({ - "node_modules/.pnpm/@push.rocks+webrequest@4.0.2/node_modules/@push.rocks/webrequest/dist_ts/cache/cache.headers.js"() { - } -}); - -// node_modules/.pnpm/@push.rocks+webrequest@4.0.2/node_modules/@push.rocks/webrequest/dist_ts/cache/cache.strategies.js -function getStrategyHandler(strategy) { - switch (strategy) { - case "network-first": - return new NetworkFirstStrategy(); - case "cache-first": - return new CacheFirstStrategy(); - case "stale-while-revalidate": - return new StaleWhileRevalidateStrategy(); - case "network-only": - return new NetworkOnlyStrategy(); - case "cache-only": - return new CacheOnlyStrategy(); - default: - return new NetworkFirstStrategy(); - } -} -var NetworkFirstStrategy, CacheFirstStrategy, StaleWhileRevalidateStrategy, NetworkOnlyStrategy, CacheOnlyStrategy; -var init_cache_strategies = __esm({ - "node_modules/.pnpm/@push.rocks+webrequest@4.0.2/node_modules/@push.rocks/webrequest/dist_ts/cache/cache.strategies.js"() { - init_cache_store(); - init_cache_headers(); - NetworkFirstStrategy = class { - async execute(context2) { - try { - const response = await context2.fetchFn(context2.request); - if (response.ok) { - await this.cacheResponse(context2, response); - } - return { - response, - fromCache: false, - revalidated: false - }; - } catch (error) { - if (context2.logging) { - console.log("[webrequest] Network failed, trying cache:", error); - } - const cachedEntry = await context2.cacheStore.get(context2.cacheKey); - if (cachedEntry) { - return { - response: context2.cacheStore.responseFromCacheEntry(cachedEntry), - fromCache: true, - revalidated: false - }; - } - throw error; - } - } - async cacheResponse(context2, response) { - const metadata = extractCacheMetadata(response.headers); - if (metadata.noStore) { - return; - } - const entry = await context2.cacheStore.cacheEntryFromResponse(context2.request.url, response, metadata); - await context2.cacheStore.set(context2.cacheKey, entry); - } - }; - CacheFirstStrategy = class { - async execute(context2) { - const cachedEntry = await context2.cacheStore.get(context2.cacheKey); - if (cachedEntry) { - const metadata2 = extractCacheMetadata(new Headers(cachedEntry.headers)); - if (isFresh(cachedEntry, metadata2)) { - if (context2.logging) { - console.log("[webrequest] Cache hit (fresh):", context2.request.url); - } - return { - response: context2.cacheStore.responseFromCacheEntry(cachedEntry), - fromCache: true, - revalidated: false - }; - } - if (requiresRevalidation(metadata2) && (cachedEntry.etag || cachedEntry.lastModified)) { - return await this.revalidate(context2, cachedEntry); - } - } - if (context2.logging) { - console.log("[webrequest] Cache miss, fetching:", context2.request.url); - } - const response = await context2.fetchFn(context2.request); - const metadata = extractCacheMetadata(response.headers); - if (!metadata.noStore) { - const entry = await context2.cacheStore.cacheEntryFromResponse(context2.request.url, response, metadata); - await context2.cacheStore.set(context2.cacheKey, entry); - } - return { - response, - fromCache: false, - revalidated: false - }; - } - async revalidate(context2, cachedEntry) { - const conditionalHeaders = createConditionalHeaders(cachedEntry); - const revalidateRequest = new Request(context2.request.url, { - method: context2.request.method, - headers: { - ...headersToObject(context2.request.headers), - ...conditionalHeaders - } - }); - try { - const response = await context2.fetchFn(revalidateRequest); - if (response.status === 304) { - if (context2.logging) { - console.log("[webrequest] Cache revalidated (304):", context2.request.url); - } - cachedEntry.timestamp = Date.now(); - await context2.cacheStore.set(context2.cacheKey, cachedEntry); - return { - response: context2.cacheStore.responseFromCacheEntry(cachedEntry), - fromCache: true, - revalidated: true - }; - } - if (response.ok) { - const metadata = extractCacheMetadata(response.headers); - if (!metadata.noStore) { - const entry = await context2.cacheStore.cacheEntryFromResponse(context2.request.url, response, metadata); - await context2.cacheStore.set(context2.cacheKey, entry); - } - } - return { - response, - fromCache: false, - revalidated: true - }; - } catch (error) { - if (context2.logging) { - console.log("[webrequest] Revalidation failed, using cache:", error); - } - return { - response: context2.cacheStore.responseFromCacheEntry(cachedEntry), - fromCache: true, - revalidated: false - }; - } - } - }; - StaleWhileRevalidateStrategy = class { - async execute(context2) { - const cachedEntry = await context2.cacheStore.get(context2.cacheKey); - if (cachedEntry) { - const cachedResponse = context2.cacheStore.responseFromCacheEntry(cachedEntry); - this.revalidateInBackground(context2, cachedEntry).catch((error) => { - if (context2.logging) { - console.warn("[webrequest] Background revalidation failed:", error); - } - }); - return { - response: cachedResponse, - fromCache: true, - revalidated: false - }; - } - const response = await context2.fetchFn(context2.request); - const metadata = extractCacheMetadata(response.headers); - if (!metadata.noStore && response.ok) { - const entry = await context2.cacheStore.cacheEntryFromResponse(context2.request.url, response, metadata); - await context2.cacheStore.set(context2.cacheKey, entry); - } - return { - response, - fromCache: false, - revalidated: false - }; - } - async revalidateInBackground(context2, cachedEntry) { - const metadata = extractCacheMetadata(new Headers(cachedEntry.headers)); - if (isFresh(cachedEntry, metadata) && !requiresRevalidation(metadata)) { - return; - } - try { - const response = await context2.fetchFn(context2.request); - if (response.ok) { - const newMetadata = extractCacheMetadata(response.headers); - if (!newMetadata.noStore) { - const entry = await context2.cacheStore.cacheEntryFromResponse(context2.request.url, response, newMetadata); - await context2.cacheStore.set(context2.cacheKey, entry); - if (context2.logging) { - console.log("[webrequest] Background revalidation complete:", context2.request.url); - } - } - } - } catch (error) { - if (context2.logging) { - console.warn("[webrequest] Background revalidation failed:", error); - } - } - } - }; - NetworkOnlyStrategy = class { - async execute(context2) { - const response = await context2.fetchFn(context2.request); - return { - response, - fromCache: false, - revalidated: false - }; - } - }; - CacheOnlyStrategy = class { - async execute(context2) { - const cachedEntry = await context2.cacheStore.get(context2.cacheKey); - if (!cachedEntry) { - throw new Error(`Cache miss for ${context2.request.url} (cache-only mode)`); - } - return { - response: context2.cacheStore.responseFromCacheEntry(cachedEntry), - fromCache: true, - revalidated: false - }; - } - }; - } -}); - -// node_modules/.pnpm/@push.rocks+webrequest@4.0.2/node_modules/@push.rocks/webrequest/dist_ts/cache/cache.manager.js -var CacheManager; -var init_cache_manager = __esm({ - "node_modules/.pnpm/@push.rocks+webrequest@4.0.2/node_modules/@push.rocks/webrequest/dist_ts/cache/cache.manager.js"() { - init_cache_store(); - init_cache_strategies(); - init_cache_headers(); - CacheManager = class { - constructor(dbName, storeName) { - this.cacheStore = new CacheStore(dbName, storeName); - } - /** - * Execute a request with caching - */ - async execute(request, options, fetchFn) { - const strategy = this.determineStrategy(request, options); - if (strategy === "network-only") { - const response = await fetchFn(request); - return { - response, - fromCache: false, - revalidated: false - }; - } - const cacheKey = this.generateCacheKey(request, options); - const handler2 = getStrategyHandler(strategy); - const context2 = { - request, - cacheKey, - cacheStore: this.cacheStore, - fetchFn, - logging: options.logging - }; - return await handler2.execute(context2); - } - /** - * Determine the caching strategy based on options and request - */ - determineStrategy(request, options) { - if (options.cacheStrategy) { - return options.cacheStrategy; - } - if (options.cache) { - return this.mapCacheModeToStrategy(options.cache); - } - if (request.cache) { - return this.mapCacheModeToStrategy(request.cache); - } - return "network-first"; - } - /** - * Map standard fetch cache modes to our strategies - */ - mapCacheModeToStrategy(cacheMode) { - switch (cacheMode) { - case "default": - return "network-first"; - case "no-store": - case "reload": - return "network-only"; - case "no-cache": - return "network-first"; - // Will use revalidation - case "force-cache": - return "cache-first"; - case "only-if-cached": - return "cache-only"; - default: - return "network-first"; - } - } - /** - * Generate cache key - */ - generateCacheKey(request, options) { - if (options.cacheKey) { - if (typeof options.cacheKey === "function") { - return options.cacheKey(request); - } - return options.cacheKey; - } - return this.cacheStore.generateCacheKey(request); - } - /** - * Clear the cache - */ - async clear() { - await this.cacheStore.clear(); - } - /** - * Delete a specific cache entry - */ - async delete(cacheKey) { - await this.cacheStore.delete(cacheKey); - } - /** - * Check if a cache entry exists - */ - async has(cacheKey) { - return await this.cacheStore.has(cacheKey); - } - /** - * Get the underlying cache store - */ - getStore() { - return this.cacheStore; - } - }; - } -}); - -// node_modules/.pnpm/@push.rocks+webrequest@4.0.2/node_modules/@push.rocks/webrequest/dist_ts/retry/retry.strategies.js -function getBackoffCalculator(strategy) { - switch (strategy) { - case "exponential": - return new ExponentialBackoff(); - case "linear": - return new LinearBackoff(); - case "constant": - return new ConstantBackoff(); - default: - return new ExponentialBackoff(); - } -} -function addJitter(delay2, jitterFactor = 0.1) { - const jitter = delay2 * jitterFactor * Math.random(); - return delay2 + jitter; -} -var ExponentialBackoff, LinearBackoff, ConstantBackoff; -var init_retry_strategies = __esm({ - "node_modules/.pnpm/@push.rocks+webrequest@4.0.2/node_modules/@push.rocks/webrequest/dist_ts/retry/retry.strategies.js"() { - ExponentialBackoff = class { - calculate(attempt, initialDelay, maxDelay) { - const delay2 = initialDelay * Math.pow(2, attempt - 1); - return Math.min(delay2, maxDelay); - } - }; - LinearBackoff = class { - calculate(attempt, initialDelay, maxDelay) { - const delay2 = initialDelay * attempt; - return Math.min(delay2, maxDelay); - } - }; - ConstantBackoff = class { - calculate(attempt, initialDelay, maxDelay) { - return Math.min(initialDelay, maxDelay); - } - }; - } -}); - -// node_modules/.pnpm/@push.rocks+webrequest@4.0.2/node_modules/@push.rocks/webrequest/dist_ts/retry/retry.manager.js -var RetryManager; -var init_retry_manager = __esm({ - "node_modules/.pnpm/@push.rocks+webrequest@4.0.2/node_modules/@push.rocks/webrequest/dist_ts/retry/retry.manager.js"() { - init_webrequest_plugins(); - init_retry_strategies(); - RetryManager = class { - constructor(options = {}) { - this.options = { - maxAttempts: options.maxAttempts ?? 3, - backoff: options.backoff ?? "exponential", - initialDelay: options.initialDelay ?? 1e3, - maxDelay: options.maxDelay ?? 3e4, - retryOn: options.retryOn ?? [408, 429, 500, 502, 503, 504], - onRetry: options.onRetry ?? (() => { - }) - }; - } - /** - * Execute a request with retry logic - */ - async execute(executeFn, shouldRetryFn) { - let lastError; - let lastResponse; - for (let attempt = 1; attempt <= this.options.maxAttempts; attempt++) { - try { - const result = await executeFn(); - if (result instanceof Response) { - if (this.shouldRetryResponse(result)) { - lastResponse = result; - if (attempt === this.options.maxAttempts) { - return result; - } - const delay2 = this.calculateDelay(attempt); - this.options.onRetry(attempt, new Error(`HTTP ${result.status}`), delay2); - await this.delay(delay2); - continue; - } - } - return result; - } catch (error) { - lastError = error instanceof Error ? error : new Error(String(error)); - const shouldRetry = shouldRetryFn ? shouldRetryFn(error, attempt) : this.shouldRetryError(error); - if (attempt === this.options.maxAttempts || !shouldRetry) { - throw lastError; - } - const delay2 = this.calculateDelay(attempt); - this.options.onRetry(attempt, lastError, delay2); - await this.delay(delay2); - } - } - throw lastError || new Error("Max retry attempts reached"); - } - /** - * Execute with multiple fallback URLs - */ - async executeWithFallbacks(urls, requestInit, fetchFn) { - if (urls.length === 0) { - throw new Error("No URLs provided for fallback execution"); - } - let lastError; - const failedUrls = []; - for (const url of urls) { - try { - const response = await this.execute(async () => { - return await fetchFn(url, requestInit); - }); - if (response.status < 400) { - return response; - } - if (response.status >= 400 && response.status < 500 && response.status !== 408) { - return response; - } - failedUrls.push(url); - lastError = new Error(`Request failed with status ${response.status}`); - } catch (error) { - failedUrls.push(url); - lastError = error instanceof Error ? error : new Error(String(error)); - } - } - throw new Error(`All URLs failed: ${failedUrls.join(", ")}. Last error: ${lastError?.message || "Unknown error"}`); - } - /** - * Check if we should retry based on response status - */ - shouldRetryResponse(response) { - const retryOn = this.options.retryOn; - if (typeof retryOn === "function") { - return retryOn(response); - } - if (Array.isArray(retryOn)) { - return retryOn.includes(response.status); - } - return false; - } - /** - * Check if we should retry based on error - */ - shouldRetryError(error) { - if (error instanceof TypeError && error.message.includes("fetch")) { - return true; - } - if (error.name === "AbortError" || error.message.includes("timeout")) { - return true; - } - const retryOn = this.options.retryOn; - if (typeof retryOn === "function") { - return retryOn(void 0, error); - } - return false; - } - /** - * Calculate delay for next retry - */ - calculateDelay(attempt) { - const calculator = getBackoffCalculator(this.options.backoff); - const baseDelay = calculator.calculate(attempt, this.options.initialDelay, this.options.maxDelay); - return addJitter(baseDelay); - } - /** - * Delay execution - */ - async delay(ms) { - await dist_ts_exports3.delayFor(ms); - } - }; - } -}); - -// node_modules/.pnpm/@push.rocks+webrequest@4.0.2/node_modules/@push.rocks/webrequest/dist_ts/utils/deduplicator.js -var RequestDeduplicator; -var init_deduplicator = __esm({ - "node_modules/.pnpm/@push.rocks+webrequest@4.0.2/node_modules/@push.rocks/webrequest/dist_ts/utils/deduplicator.js"() { - init_webrequest_plugins(); - RequestDeduplicator = class { - constructor() { - this.inFlightRequests = /* @__PURE__ */ new Map(); - } - /** - * Generate a deduplication key from a request - */ - generateKey(request) { - const url = request.url; - const method = request.method; - if (method === "GET" || method === "HEAD") { - return `${method}:${url}`; - } - return `${method}:${url}:${Date.now()}`; - } - /** - * Execute a request with deduplication - */ - async execute(key2, executeFn) { - const existingDeferred = this.inFlightRequests.get(key2); - if (existingDeferred) { - const response = await existingDeferred.promise; - return { - response: response.clone(), - wasDeduplicated: true - }; - } - const deferred2 = dist_ts_exports.defer(); - this.inFlightRequests.set(key2, deferred2); - try { - const response = await executeFn(); - deferred2.resolve(response); - this.inFlightRequests.delete(key2); - return { - response, - wasDeduplicated: false - }; - } catch (error) { - deferred2.reject(error); - this.inFlightRequests.delete(key2); - throw error; - } - } - /** - * Check if a request is currently in flight - */ - isInFlight(key2) { - return this.inFlightRequests.has(key2); - } - /** - * Get the number of in-flight requests - */ - getInFlightCount() { - return this.inFlightRequests.size; - } - /** - * Clear all in-flight requests - */ - clear() { - this.inFlightRequests.clear(); - } - }; - } -}); - -// node_modules/.pnpm/@push.rocks+webrequest@4.0.2/node_modules/@push.rocks/webrequest/dist_ts/utils/timeout.js -function createTimeoutController(timeoutMs) { - const controller = new AbortController(); - const timeout2 = new dist_ts_exports3.Timeout(timeoutMs, null); - timeout2.promise.then(() => { - controller.abort(); - }); - const cleanup = () => { - timeout2.cancel(); - }; - return { controller, cleanup }; -} -async function fetchWithTimeout(url, init, timeoutMs) { - const { controller, cleanup } = createTimeoutController(timeoutMs); - try { - const response = await fetch(url, { - ...init, - signal: controller.signal - }); - cleanup(); - return response; - } catch (error) { - cleanup(); - if (error instanceof Error && error.name === "AbortError") { - throw new Error(`Request timeout after ${timeoutMs}ms: ${url}`); - } - throw error; - } -} -var init_timeout2 = __esm({ - "node_modules/.pnpm/@push.rocks+webrequest@4.0.2/node_modules/@push.rocks/webrequest/dist_ts/utils/timeout.js"() { - init_webrequest_plugins(); - } -}); - -// node_modules/.pnpm/@push.rocks+webrequest@4.0.2/node_modules/@push.rocks/webrequest/dist_ts/webrequest.client.js -var WebrequestClient; -var init_webrequest_client = __esm({ - "node_modules/.pnpm/@push.rocks+webrequest@4.0.2/node_modules/@push.rocks/webrequest/dist_ts/webrequest.client.js"() { - init_interceptor_manager(); - init_cache_manager(); - init_retry_manager(); - init_deduplicator(); - init_timeout2(); - WebrequestClient = class { - constructor(options = {}) { - this.defaultOptions = options; - this.interceptorManager = new InterceptorManager(); - this.cacheManager = new CacheManager(); - this.deduplicator = new RequestDeduplicator(); - } - /** - * Add a global request interceptor - */ - addRequestInterceptor(interceptor) { - this.interceptorManager.addRequestInterceptor(interceptor); - } - /** - * Add a global response interceptor - */ - addResponseInterceptor(interceptor) { - this.interceptorManager.addResponseInterceptor(interceptor); - } - /** - * Add a global error interceptor - */ - addErrorInterceptor(interceptor) { - this.interceptorManager.addErrorInterceptor(interceptor); - } - /** - * Remove a request interceptor - */ - removeRequestInterceptor(interceptor) { - this.interceptorManager.removeRequestInterceptor(interceptor); - } - /** - * Remove a response interceptor - */ - removeResponseInterceptor(interceptor) { - this.interceptorManager.removeResponseInterceptor(interceptor); - } - /** - * Remove an error interceptor - */ - removeErrorInterceptor(interceptor) { - this.interceptorManager.removeErrorInterceptor(interceptor); - } - /** - * Clear all interceptors - */ - clearInterceptors() { - this.interceptorManager.clearAll(); - } - /** - * Clear the cache - */ - async clearCache() { - await this.cacheManager.clear(); - } - /** - * Execute a request with all configured features - */ - async request(url, options = {}) { - const mergedOptions = { - ...this.defaultOptions, - ...options - }; - let request; - if (typeof url === "string") { - request = new Request(url, mergedOptions); - } else { - request = url; - } - request = await this.interceptorManager.processRequest(request); - if (mergedOptions.interceptors?.request) { - for (const interceptor of mergedOptions.interceptors.request) { - request = await interceptor(request); - } - } - const deduplicate = mergedOptions.deduplicate ?? false; - if (deduplicate) { - const dedupeKey = this.deduplicator.generateKey(request); - const result = await this.deduplicator.execute(dedupeKey, async () => { - return await this.executeRequest(request, mergedOptions); - }); - return result.response; - } - return await this.executeRequest(request, mergedOptions); - } - /** - * Internal request execution with caching and retry - */ - async executeRequest(request, options) { - try { - const retryOptions = typeof options.retry === "object" ? options.retry : options.retry ? {} : void 0; - const fetchFnForRequest = async (req) => { - const timeout2 = options.timeout ?? 6e4; - return await fetchWithTimeout(req.url, { - method: req.method, - headers: req.headers, - body: req.body, - ...options - }, timeout2); - }; - const fetchFnForFallbacks = async (url, init) => { - const timeout2 = options.timeout ?? 6e4; - return await fetchWithTimeout(url, init, timeout2); - }; - let response; - if (retryOptions) { - const retryManager = new RetryManager(retryOptions); - if (options.fallbackUrls && options.fallbackUrls.length > 0) { - const allUrls = [request.url, ...options.fallbackUrls]; - response = await retryManager.executeWithFallbacks(allUrls, { - method: request.method, - headers: request.headers, - body: request.body, - ...options - }, fetchFnForFallbacks); - } else { - response = await retryManager.execute(async () => { - const result = await this.cacheManager.execute(request, options, fetchFnForRequest); - return result.response; - }); - } - } else { - const result = await this.cacheManager.execute(request, options, fetchFnForRequest); - response = result.response; - } - response = await this.interceptorManager.processResponse(response); - if (options.interceptors?.response) { - for (const interceptor of options.interceptors.response) { - response = await interceptor(response); - } - } - return response; - } catch (error) { - const processedError = await this.interceptorManager.processError(error instanceof Error ? error : new Error(String(error))); - throw processedError; - } - } - /** - * Convenience method: GET request returning JSON - */ - async getJson(url, options = {}) { - const response = await this.request(url, { - ...options, - method: "GET", - headers: { - Accept: "application/json", - ...options.headers || {} - } - }); - if (!response.ok) { - throw new Error(`HTTP ${response.status}: ${response.statusText}`); - } - return await response.json(); - } - /** - * Convenience method: POST request with JSON body - */ - async postJson(url, data8, options = {}) { - const response = await this.request(url, { - ...options, - method: "POST", - headers: { - "Content-Type": "application/json", - Accept: "application/json", - ...options.headers || {} - }, - body: JSON.stringify(data8) - }); - if (!response.ok) { - throw new Error(`HTTP ${response.status}: ${response.statusText}`); - } - return await response.json(); - } - /** - * Convenience method: PUT request with JSON body - */ - async putJson(url, data8, options = {}) { - const response = await this.request(url, { - ...options, - method: "PUT", - headers: { - "Content-Type": "application/json", - Accept: "application/json", - ...options.headers || {} - }, - body: JSON.stringify(data8) - }); - if (!response.ok) { - throw new Error(`HTTP ${response.status}: ${response.statusText}`); - } - return await response.json(); - } - /** - * Convenience method: DELETE request - */ - async deleteJson(url, options = {}) { - const response = await this.request(url, { - ...options, - method: "DELETE", - headers: { - Accept: "application/json", - ...options.headers || {} - } - }); - if (!response.ok) { - throw new Error(`HTTP ${response.status}: ${response.statusText}`); - } - return await response.json(); - } - }; - } -}); - -// node_modules/.pnpm/@push.rocks+webrequest@4.0.2/node_modules/@push.rocks/webrequest/dist_ts/webrequest.function.js -async function webrequest(input, init) { - const url = input instanceof Request ? input.url : String(input); - const request = input instanceof Request ? input : new Request(url, init); - return await defaultClient.request(request, init); -} -var defaultClient; -var init_webrequest_function = __esm({ - "node_modules/.pnpm/@push.rocks+webrequest@4.0.2/node_modules/@push.rocks/webrequest/dist_ts/webrequest.function.js"() { - init_webrequest_client(); - defaultClient = new WebrequestClient(); - webrequest.getJson = async function(url, options) { - return await defaultClient.getJson(url, options); - }; - webrequest.postJson = async function(url, data8, options) { - return await defaultClient.postJson(url, data8, options); - }; - webrequest.putJson = async function(url, data8, options) { - return await defaultClient.putJson(url, data8, options); - }; - webrequest.deleteJson = async function(url, options) { - return await defaultClient.deleteJson(url, options); - }; - webrequest.addRequestInterceptor = function(interceptor) { - defaultClient.addRequestInterceptor(interceptor); - }; - webrequest.addResponseInterceptor = function(interceptor) { - defaultClient.addResponseInterceptor(interceptor); - }; - webrequest.addErrorInterceptor = function(interceptor) { - defaultClient.addErrorInterceptor(interceptor); - }; - webrequest.clearInterceptors = function() { - defaultClient.clearInterceptors(); - }; - webrequest.clearCache = async function() { - await defaultClient.clearCache(); - }; - webrequest.createClient = function(options) { - return new WebrequestClient(options); - }; - webrequest.getDefaultClient = function() { - return defaultClient; - }; - } -}); - -// node_modules/.pnpm/@push.rocks+webrequest@4.0.2/node_modules/@push.rocks/webrequest/dist_ts/index.js -var dist_ts_exports14 = {}; -__export(dist_ts_exports14, { - CacheManager: () => CacheManager, - CacheStore: () => CacheStore, - InterceptorManager: () => InterceptorManager, - RequestDeduplicator: () => RequestDeduplicator, - RetryManager: () => RetryManager, - WebrequestClient: () => WebrequestClient, - createConditionalHeaders: () => createConditionalHeaders, - extractCacheMetadata: () => extractCacheMetadata, - headersToObject: () => headersToObject, - isFresh: () => isFresh, - objectToHeaders: () => objectToHeaders, - requiresRevalidation: () => requiresRevalidation, - webrequest: () => webrequest -}); -var init_dist_ts14 = __esm({ - "node_modules/.pnpm/@push.rocks+webrequest@4.0.2/node_modules/@push.rocks/webrequest/dist_ts/index.js"() { - init_webrequest_function(); - init_webrequest_client(); - init_cache_manager(); - init_cache_store(); - init_retry_manager(); - init_interceptor_manager(); - init_deduplicator(); - init_cache_headers(); - } -}); - -// node_modules/.pnpm/@api.global+typedrequest@3.2.6/node_modules/@api.global/typedrequest/dist_ts/plugins.js -var isounique2; -var init_plugins = __esm({ - "node_modules/.pnpm/@api.global+typedrequest@3.2.6/node_modules/@api.global/typedrequest/dist_ts/plugins.js"() { - init_dist_ts4(); - isounique2 = __toESM(require_dist_ts(), 1); - init_dist_ts7(); - init_dist_ts8(); - init_dist_ts3(); - init_dist_ts9(); - init_dist_ts(); - init_dist_ts14(); - } -}); - -// node_modules/.pnpm/@api.global+typedrequest@3.2.6/node_modules/@api.global/typedrequest/dist_ts/classes.typedresponseerror.js -var TypedResponseError; -var init_classes_typedresponseerror = __esm({ - "node_modules/.pnpm/@api.global+typedrequest@3.2.6/node_modules/@api.global/typedrequest/dist_ts/classes.typedresponseerror.js"() { - init_plugins(); - TypedResponseError = class { - constructor(errorTextArg, errorDataArg) { - this.errorText = errorTextArg; - this.errorData = errorDataArg; - } - }; - } -}); - -// node_modules/.pnpm/@api.global+typedrequest@3.2.6/node_modules/@api.global/typedrequest/dist_ts/classes.typedtools.js -var TypedTools; -var init_classes_typedtools = __esm({ - "node_modules/.pnpm/@api.global+typedrequest@3.2.6/node_modules/@api.global/typedrequest/dist_ts/classes.typedtools.js"() { - init_classes_typedresponseerror(); - init_plugins(); - TypedTools = class { - constructor() { - this.localData = {}; - } - async passGuards(guardsArg, dataArg) { - const guardSet = new dist_ts_exports9.GuardSet(guardsArg); - const guardResult = await guardSet.allGuardsPass(dataArg); - if (!guardResult) { - const failedHint = await guardSet.getFailedHint(dataArg); - throw new TypedResponseError(`guard failed: ${failedHint}`, { failedHint }); - } - } - }; - } -}); - -// node_modules/.pnpm/@api.global+typedrequest@3.2.6/node_modules/@api.global/typedrequest/dist_ts/classes.typedhandler.js -var TypedHandler; -var init_classes_typedhandler = __esm({ - "node_modules/.pnpm/@api.global+typedrequest@3.2.6/node_modules/@api.global/typedrequest/dist_ts/classes.typedhandler.js"() { - init_plugins(); - init_classes_typedresponseerror(); - init_classes_typedtools(); - TypedHandler = class { - constructor(methodArg, handlerFunctionArg) { - this.method = methodArg; - this.handlerFunction = handlerFunctionArg; - } - /** - * adds a response to the typedRequest - * @param typedRequestArg - */ - async addResponse(typedRequestArg) { - if (typedRequestArg.method !== this.method) { - throw new Error("this handler has been given a wrong method to answer to. Please use a TypedRouter to filter requests"); - } - let typedResponseError; - const typedtoolsInstance = new TypedTools(); - if (typedRequestArg.localData) { - typedtoolsInstance.localData = typedRequestArg.localData; - } - const response = await this.handlerFunction(typedRequestArg.request, typedtoolsInstance).catch((e11) => { - if (e11 instanceof TypedResponseError) { - typedResponseError = e11; - } else { - console.log(e11); - } - }); - if (typedResponseError) { - typedRequestArg.error = { - text: typedResponseError.errorText, - data: typedResponseError.errorData - }; - } - if (response) { - typedRequestArg.response = response; - } - typedRequestArg?.correlation?.phase ? typedRequestArg.correlation.phase = "response" : null; - return typedRequestArg; - } - }; - } -}); - -// node_modules/.pnpm/@api.global+typedrequest@3.2.6/node_modules/@api.global/typedrequest/dist_ts/classes.typedrouter.js -var TypedRouter; -var init_classes_typedrouter = __esm({ - "node_modules/.pnpm/@api.global+typedrequest@3.2.6/node_modules/@api.global/typedrequest/dist_ts/classes.typedrouter.js"() { - init_plugins(); - init_classes_virtualstream(); - init_classes_typedhandler(); - init_classes_typedrequest(); - TypedRouter = class _TypedRouter { - constructor() { - this.hooks = {}; - this.routerMap = new dist_ts_exports6.ObjectMap(); - this.handlerMap = new dist_ts_exports6.ObjectMap(); - this.registeredVirtualStreams = new dist_ts_exports6.ObjectMap(); - this.fireEventInterestMap = new dist_ts_exports6.InterestMap((correlationId) => correlationId); - } - // Use globalThis for cross-bundle hook sharing - static get globalHooks() { - if (!globalThis.__typedRouterGlobalHooks) { - globalThis.__typedRouterGlobalHooks = {}; - } - return globalThis.__typedRouterGlobalHooks; - } - static set globalHooks(value2) { - globalThis.__typedRouterGlobalHooks = value2; - } - /** - * Set global hooks for monitoring all TypedRequest traffic - * Hooks are shared across all bundles via globalThis - */ - static setGlobalHooks(hooks8) { - const current = _TypedRouter.globalHooks; - _TypedRouter.globalHooks = { ...current, ...hooks8 }; - } - /** - * Clear all global hooks - */ - static clearGlobalHooks() { - globalThis.__typedRouterGlobalHooks = {}; - } - /** - * Set instance-level hooks for monitoring traffic through this router - */ - setHooks(hooks8) { - this.hooks = { ...this.hooks, ...hooks8 }; - } - /** - * Helper to call both global and instance hooks - */ - callHook(hookName, entry) { - try { - _TypedRouter.globalHooks[hookName]?.(entry); - this.hooks[hookName]?.(entry); - } catch (err) { - console.error(`TypedRouter hook error (${hookName}):`, err); - } - } - /** - * adds the handler to the routing map - * @param typedHandlerArg - */ - addTypedHandler(typedHandlerArg) { - const existingTypedHandler = this.getTypedHandlerForMethod(typedHandlerArg.method); - if (existingTypedHandler) { - throw new Error(`a TypedHandler for ${typedHandlerArg.method} alredy exists! Can't add another one.`); - } - this.handlerMap.add(typedHandlerArg); - } - /** - * adds another sub typedRouter - * @param typedRequest - */ - addTypedRouter(typedRouterArg) { - const routerExists = this.routerMap.findSync((routerArg) => routerArg === typedRouterArg); - if (!routerExists) { - this.routerMap.add(typedRouterArg); - typedRouterArg.addTypedRouter(this); - } - } - checkForTypedHandler(methodArg) { - return !!this.getTypedHandlerForMethod(methodArg); - } - /** - * gets a typed Router from the router chain, upstream and downstream - * @param methodArg - * @param checkUpstreamRouter - */ - getTypedHandlerForMethod(methodArg, checkedRouters = []) { - checkedRouters.push(this); - let typedHandler; - typedHandler = this.handlerMap.findSync((handler2) => { - return handler2.method === methodArg; - }); - if (!typedHandler) { - this.routerMap.getArray().forEach((typedRouterArg) => { - if (!typedHandler && !checkedRouters.includes(typedRouterArg)) { - typedHandler = typedRouterArg.getTypedHandlerForMethod(methodArg, checkedRouters); - } - }); - } - return typedHandler; - } - static { - this.defaultRouteOptions = { - localRequest: false, - skipHooks: false - }; - } - /** - * if typedrequest object has correlation.phase === 'request' -> routes a typed request object to a handler - * if typedrequest object has correlation.phase === 'response' -> routes a typed request object to request fire event - * @param typedRequestArg - * @param optionsArg - Options object with: - * - localRequest: treat as local request (default: false) - * - skipHooks: skip calling hooks for this routing (default: false, use for broadcast-received messages) - */ - async routeAndAddResponse(typedRequestArg, optionsArg = {}) { - const options = { ..._TypedRouter.defaultRouteOptions, ...optionsArg }; - typedRequestArg = VirtualStream.decodePayloadFromNetwork(typedRequestArg, { - typedrouter: this - }); - typedRequestArg.localData = typedRequestArg.localData || {}; - typedRequestArg.localData.firstTypedrouter = this; - if (typedRequestArg.method === "##VirtualStream##") { - const result = await this.handleStreamTypedRequest(typedRequestArg); - result.localData = null; - return result; - } - if (typedRequestArg?.correlation?.phase === "request" || options.localRequest) { - const requestStartTime = Date.now(); - if (!options.skipHooks) { - this.callHook("onIncomingRequest", { - correlationId: typedRequestArg.correlation?.id || "unknown", - method: typedRequestArg.method, - direction: "incoming", - phase: "request", - timestamp: requestStartTime, - payload: typedRequestArg.request - }); - } - const typedHandler = this.getTypedHandlerForMethod(typedRequestArg.method); - if (!typedHandler) { - console.log(`Cannot find handler for methodname ${typedRequestArg.method}`); - typedRequestArg.error = { - text: "There is no available method for this call on the server side", - data: {} - }; - typedRequestArg.correlation.phase = "response"; - typedRequestArg.localData = null; - typedRequestArg = VirtualStream.encodePayloadForNetwork(typedRequestArg, { - typedrouter: this - }); - if (!options.skipHooks) { - this.callHook("onOutgoingResponse", { - correlationId: typedRequestArg.correlation?.id || "unknown", - method: typedRequestArg.method, - direction: "outgoing", - phase: "response", - timestamp: Date.now(), - durationMs: Date.now() - requestStartTime, - payload: typedRequestArg.response, - error: typedRequestArg.error?.text - }); - } - return typedRequestArg; - } - typedRequestArg = await typedHandler.addResponse(typedRequestArg); - typedRequestArg.localData = null; - typedRequestArg = VirtualStream.encodePayloadForNetwork(typedRequestArg, { - typedrouter: this - }); - if (!options.skipHooks) { - this.callHook("onOutgoingResponse", { - correlationId: typedRequestArg.correlation?.id || "unknown", - method: typedRequestArg.method, - direction: "outgoing", - phase: "response", - timestamp: Date.now(), - durationMs: Date.now() - requestStartTime, - payload: typedRequestArg.response, - error: typedRequestArg.error?.text - }); - } - return typedRequestArg; - } else if (typedRequestArg?.correlation?.phase === "response") { - if (!options.skipHooks) { - this.callHook("onIncomingResponse", { - correlationId: typedRequestArg.correlation?.id || "unknown", - method: typedRequestArg.method, - direction: "incoming", - phase: "response", - timestamp: Date.now(), - payload: typedRequestArg.response, - error: typedRequestArg.error?.text - }); - } - this.fireEventInterestMap.findInterest(typedRequestArg.correlation.id)?.fullfillInterest(typedRequestArg); - return null; - } else { - console.log("received weirdly shaped request"); - console.log(typedRequestArg); - return null; - } - } - /** - * handle streaming - * @param streamTrArg - */ - async handleStreamTypedRequest(streamTrArg) { - const relevantVirtualStream = await this.registeredVirtualStreams.find(async (virtualStreamArg) => { - return virtualStreamArg.streamId === streamTrArg.request.streamId; - }); - if (!relevantVirtualStream) { - console.log(`no relevant virtual stream found for stream with id ${streamTrArg.request.streamId}`); - console.log(this.registeredVirtualStreams.getArray()); - return streamTrArg; - } else { - console.log(`success: found relevant virtual stream with id ${streamTrArg.request.streamId}`); - } - const result = await relevantVirtualStream.handleStreamTr(streamTrArg); - return result; - } - }; - } -}); - -// node_modules/.pnpm/@api.global+typedrequest@3.2.6/node_modules/@api.global/typedrequest/dist_ts/classes.virtualstream.js -var closingBit, VirtualStream; -var init_classes_virtualstream = __esm({ - "node_modules/.pnpm/@api.global+typedrequest@3.2.6/node_modules/@api.global/typedrequest/dist_ts/classes.virtualstream.js"() { - init_plugins(); - init_classes_typedrouter(); - closingBit = "#############CLOSING BIT#############"; - VirtualStream = class _VirtualStream { - // STATIC - static encodePayloadForNetwork(objectPayload, commFunctions, originalPayload, path2 = []) { - if (!objectPayload) { - return objectPayload; - } - if (dist_ts_exports8.isBufferLike(objectPayload)) { - return objectPayload; - } - if (objectPayload instanceof _VirtualStream) { - if (!objectPayload.side && commFunctions.sendMethod) { - objectPayload.side = "requesting"; - objectPayload.sendMethod = commFunctions.sendMethod; - } - if (!objectPayload.side && commFunctions.typedrouter) { - objectPayload.side = "responding"; - objectPayload.typedrouter = commFunctions.typedrouter; - commFunctions.typedrouter.registeredVirtualStreams.add(objectPayload); - } - if (!originalPayload.response || path2.includes("response")) { - objectPayload.startKeepAliveLoop(); - return { - _isVirtualStream: true, - streamId: objectPayload.streamId - }; - } else { - return { - _OBMITTED_VIRTUAL_STREAM: true, - reason: "path is under .request: obmitted for deduplication reasons in response cycle." - }; - } - } else if (Array.isArray(objectPayload)) { - return objectPayload.map((item, index2) => _VirtualStream.encodePayloadForNetwork( - item, - commFunctions, - originalPayload || objectPayload, - path2.concat(String(index2)) - // Convert index to string and concatenate to path - )); - } else if (objectPayload !== null && typeof objectPayload === "object") { - return Object.entries(objectPayload).reduce((acc, [key2, value2]) => { - const newPath = path2.concat(key2); - acc[key2] = _VirtualStream.encodePayloadForNetwork(value2, commFunctions, originalPayload || objectPayload, newPath); - return acc; - }, {}); - } else { - return objectPayload; - } - } - static decodePayloadFromNetwork(objectPayload, commFunctions) { - if (dist_ts_exports8.isBufferLike(objectPayload) || objectPayload instanceof TypedRouter) { - return objectPayload; - } - if (objectPayload !== null && typeof objectPayload === "object") { - if (objectPayload instanceof Set || objectPayload instanceof Map || objectPayload instanceof Date || objectPayload instanceof RegExp || objectPayload instanceof Error || objectPayload instanceof Promise || typeof objectPayload.then === "function") { - return objectPayload; - } - if (objectPayload._isVirtualStream) { - const virtualStream = new _VirtualStream(); - virtualStream.streamId = objectPayload.streamId; - if (!virtualStream.side && commFunctions.sendMethod) { - virtualStream.side = "requesting"; - virtualStream.sendMethod = commFunctions.sendMethod; - } - if (!virtualStream.side && commFunctions.typedrouter) { - virtualStream.side = "responding"; - virtualStream.typedrouter = commFunctions.typedrouter; - commFunctions.typedrouter.registeredVirtualStreams.add(virtualStream); - } - virtualStream.startKeepAliveLoop(); - return virtualStream; - } else if (Array.isArray(objectPayload)) { - const returnArray = []; - for (const item of objectPayload) { - returnArray.push(_VirtualStream.decodePayloadFromNetwork(item, commFunctions)); - } - return returnArray; - } else { - return Object.keys(objectPayload).reduce((acc, key2) => { - acc[key2] = _VirtualStream.decodePayloadFromNetwork(objectPayload[key2], commFunctions); - return acc; - }, {}); - } - } else { - return objectPayload; - } - } - constructor() { - this.streamId = isounique2.uni(); - this.keepAlive = true; - this.sendBackpressuredArray = new dist_ts_exports6.BackpressuredArray(16); - this.receiveBackpressuredArray = new dist_ts_exports6.BackpressuredArray(16); - } - /** - * takes care of sending - */ - async workOnQueue() { - if (this.workingDeferred) { - return this.workingDeferred.promise; - } else { - this.workingDeferred = dist_ts_exports.defer(); - } - if (this.side === "requesting") { - let thisSideIsBackpressured = !this.receiveBackpressuredArray.checkSpaceAvailable(); - let otherSideHasNext = false; - let otherSideIsBackpressured = false; - const getFeedback = async () => { - const streamTr = await this.sendMethod({ - method: "##VirtualStream##", - request: { - streamId: this.streamId, - cycleId: isounique2.uni(), - cycle: "request", - mainPurpose: "feedback", - next: this.sendBackpressuredArray.data.length > 0, - backpressure: !this.receiveBackpressuredArray.checkSpaceAvailable() - }, - response: null - }).catch(() => { - console.log("stream ended immaturely"); - this.keepAlive = false; - }); - if (streamTr && streamTr.response) { - otherSideIsBackpressured = streamTr.response.backpressure; - otherSideHasNext = streamTr.response.next; - } - }; - await getFeedback(); - while (this.sendBackpressuredArray.data.length > 0 || otherSideHasNext) { - if (otherSideIsBackpressured) { - while (otherSideIsBackpressured) { - console.log("waiting for feedback because of backpressure..."); - await dist_ts_exports3.delayFor(50); - await getFeedback(); - } - } - let dataArg; - if (this.sendBackpressuredArray.data.length > 0) { - dataArg = this.sendBackpressuredArray.shift(); - } - let streamTr; - streamTr = await this.sendMethod({ - method: "##VirtualStream##", - request: { - streamId: this.streamId, - cycleId: isounique2.uni(), - cycle: "request", - mainPurpose: dataArg ? "chunk" : "read", - backpressure: thisSideIsBackpressured, - next: this.sendBackpressuredArray.data.length > 0, - ...dataArg ? { chunkData: dataArg } : {} - }, - response: null - }).catch(() => { - console.log("stream ended immaturely"); - this.keepAlive = false; - return null; - }); - if (streamTr && streamTr.response && streamTr.response.chunkData) { - this.receiveBackpressuredArray.push(streamTr.response.chunkData); - } - otherSideIsBackpressured = streamTr && streamTr.response && streamTr.response.backpressure; - thisSideIsBackpressured = !this.receiveBackpressuredArray.checkSpaceAvailable(); - otherSideHasNext = streamTr && streamTr.response && streamTr.response.next; - } - } - this.workingDeferred.resolve(); - this.workingDeferred = null; - } - /** - * This method handles the stream only on the responding side - * @param streamTrArg - * @returns - */ - async handleStreamTr(streamTrArg) { - if (streamTrArg.request.keepAlive === true && this.keepAlive === true) { - this.lastKeepAliveEvent = Date.now(); - } else if (streamTrArg.request.keepAlive === false) { - this.keepAlive = false; - } - if (streamTrArg.request.mainPurpose === "keepAlive") { - streamTrArg.response = { - streamId: this.streamId, - cycleId: streamTrArg.request.cycleId, - cycle: "response", - mainPurpose: "keepAlive", - keepAlive: this.keepAlive, - next: this.sendBackpressuredArray.data.length > 0, - backpressure: !this.receiveBackpressuredArray.checkSpaceAvailable() - }; - } - if (streamTrArg.request.mainPurpose === "feedback") { - streamTrArg.response = { - streamId: this.streamId, - cycleId: streamTrArg.request.cycleId, - cycle: "response", - mainPurpose: "feedback", - next: this.sendBackpressuredArray.data.length > 0, - backpressure: !this.receiveBackpressuredArray.checkSpaceAvailable() - }; - } - if (streamTrArg.request.mainPurpose === "chunk") { - this.receiveBackpressuredArray.push(streamTrArg.request.chunkData); - if (this.sendBackpressuredArray.data.length > 0 && streamTrArg.response.backpressure === false) { - const dataArg = this.sendBackpressuredArray.shift(); - streamTrArg.response = { - streamId: this.streamId, - cycleId: streamTrArg.request.cycleId, - cycle: "response", - mainPurpose: "chunk", - next: this.sendBackpressuredArray.data.length > 1, - // 1 and not 0 because we call shift a few lines down - backpressure: !this.receiveBackpressuredArray.checkSpaceAvailable(), - chunkData: this.sendBackpressuredArray.shift() - }; - } else { - streamTrArg.response = { - streamId: this.streamId, - cycleId: streamTrArg.request.cycleId, - cycle: "response", - mainPurpose: "feedback", - next: this.sendBackpressuredArray.data.length > 0, - backpressure: !this.receiveBackpressuredArray.checkSpaceAvailable() - }; - } - streamTrArg.request = null; - } - return streamTrArg; - } - // lifecycle methods - /** - * closes the virtual stream - */ - async cleanup() { - if (this.typedrouter) { - this.typedrouter.registeredVirtualStreams.remove(this); - } - } - /** - * a keepAlive loop that works across technologies - */ - async startKeepAliveLoop() { - if (this.side === "responding") { - return; - } - await dist_ts_exports3.delayFor(0); - console.log(`starting keepalive loop on side ${this.side}`); - let counter2 = 0; - keepAliveLoop: while (this.keepAlive) { - await this.triggerKeepAlive(); - await dist_ts_exports3.delayFor(1e3); - } - await dist_ts_exports3.delayFor(1e3); - await this.cleanup(); - console.log(`cleaned up for stream ${this.streamId}`); - } - async triggerKeepAlive() { - if (this.side === "requesting") { - console.log(`keepalive sent.`); - const streamTr = await this.sendMethod({ - method: "##VirtualStream##", - request: { - streamId: this.streamId, - cycleId: isounique2.uni(), - cycle: "request", - mainPurpose: "keepAlive", - keepAlive: this.keepAlive - }, - response: null - }).catch(() => { - this.keepAlive = false; - }); - if (streamTr && streamTr.response && streamTr.response.keepAlive === false) { - this.keepAlive = false; - } else { - this.lastKeepAliveEvent = Date.now(); - } - if (streamTr && streamTr.response && streamTr.response.next) { - this.workOnQueue(); - } - } - if (Date.now() - this.lastKeepAliveEvent > 1e4) { - console.log(`closing stream for ${this.streamId}`); - this.keepAlive = false; - } - } - // Data sending and receiving - async sendData(dataArg) { - this.sendBackpressuredArray.push(dataArg); - this.workOnQueue(); - await this.sendBackpressuredArray.waitForSpace(); - } - async fetchData() { - if (this.receiveBackpressuredArray.hasSpace) { - } - await this.receiveBackpressuredArray.waitForItems(); - const dataPackage = this.receiveBackpressuredArray.shift(); - return dataPackage; - } - /** - * reads from a Readable and sends it to the other side - * @param readableStreamArg - */ - async readFromWebstream(readableStreamArg, closeAfterReading = true) { - const reader = readableStreamArg.getReader(); - let streamIsDone = false; - while (!streamIsDone) { - const { value: value2, done } = await reader.read(); - if (value2) { - await this.sendData(value2); - } - streamIsDone = done; - } - if (closeAfterReading) { - await this.close(true); - } - } - async writeToWebstream(writableStreamArg) { - const writer = writableStreamArg.getWriter(); - while (this.keepAlive || this.receiveBackpressuredArray.checkHasItems()) { - const value2 = await this.fetchData(); - if (value2 === closingBit) { - writer.releaseLock(); - await writableStreamArg.close(); - break; - } - await writer.write(value2); - } - } - /** - * closes the stream - * if sendClosingBitArg is true, the stream will send a closing bit - * @param sendClosingBitArg - */ - async close(sendClosingBitArg = false) { - if (sendClosingBitArg) { - this.sendData(closingBit); - } - this.keepAlive = false; - } - }; - } -}); - -// node_modules/.pnpm/@api.global+typedrequest@3.2.6/node_modules/@api.global/typedrequest/dist_ts/classes.typedtarget.js -var TypedTarget; -var init_classes_typedtarget = __esm({ - "node_modules/.pnpm/@api.global+typedrequest@3.2.6/node_modules/@api.global/typedrequest/dist_ts/classes.typedtarget.js"() { - init_classes_typedrouter(); - init_plugins(); - TypedTarget = class { - constructor(optionsArg) { - if (optionsArg.postMethodWithTypedRouter && !optionsArg.typedRouterRef) { - throw new Error("you have to specify a typedrouter when using postmethod with typedrouter"); - } - this.options = optionsArg; - } - async post(payloadArg) { - let responseInterest; - if (this.options.typedRouterRef) { - responseInterest = await this.options.typedRouterRef.fireEventInterestMap.addInterest(payloadArg.correlation.id, payloadArg); - } - const postMethod = this.options.postMethod || this.options.postMethodWithTypedRouter; - const postMethodReturnValue = await postMethod(payloadArg); - let responseBody; - if (responseInterest) { - responseBody = await responseInterest.interestFullfilled; - } else if (postMethodReturnValue) { - responseBody = postMethodReturnValue; - } else { - responseBody = payloadArg; - } - return responseBody; - } - }; - } -}); - -// node_modules/.pnpm/@api.global+typedrequest@3.2.6/node_modules/@api.global/typedrequest/dist_ts/classes.typedrequest.js -function callGlobalHook(hookName, entry) { - try { - TypedRouter.globalHooks[hookName]?.(entry); - } catch (err) { - console.error(`TypedRequest hook error (${hookName}):`, err); - } -} -var webrequestInstance, TypedRequest; -var init_classes_typedrequest = __esm({ - "node_modules/.pnpm/@api.global+typedrequest@3.2.6/node_modules/@api.global/typedrequest/dist_ts/classes.typedrequest.js"() { - init_plugins(); - init_classes_virtualstream(); - init_classes_typedresponseerror(); - init_classes_typedrouter(); - init_classes_typedtarget(); - webrequestInstance = new dist_ts_exports14.WebrequestClient(); - TypedRequest = class { - /** - * @param postEndPointArg - * @param methodArg - */ - constructor(postTarget, methodArg) { - this.skipHooks = false; - if (typeof postTarget === "string") { - this.urlEndPoint = postTarget; - } else { - this.typedTarget = postTarget; - } - this.method = methodArg; - } - /** - * fires the request - */ - async fire(fireArg, useCacheArg = false) { - const requestStartTime = Date.now(); - let payloadSending = { - method: this.method, - request: fireArg, - response: null, - correlation: { - id: isounique2.uni(), - phase: "request" - } - }; - payloadSending = VirtualStream.encodePayloadForNetwork(payloadSending, { - sendMethod: (payloadArg) => { - return this.postTrObject(payloadArg); - } - }); - if (!this.skipHooks) { - callGlobalHook("onOutgoingRequest", { - correlationId: payloadSending.correlation.id, - method: this.method, - direction: "outgoing", - phase: "request", - timestamp: requestStartTime, - payload: fireArg - }); - } - let payloadReceiving; - payloadReceiving = await this.postTrObject(payloadSending, useCacheArg); - payloadReceiving = VirtualStream.decodePayloadFromNetwork(payloadReceiving, { - sendMethod: (payloadArg) => { - return this.postTrObject(payloadArg); - } - }); - if (!this.skipHooks) { - callGlobalHook("onIncomingResponse", { - correlationId: payloadSending.correlation.id, - method: this.method, - direction: "incoming", - phase: "response", - timestamp: Date.now(), - durationMs: Date.now() - requestStartTime, - payload: payloadReceiving?.response, - error: payloadReceiving?.error?.text - }); - } - return payloadReceiving.response; - } - async postTrObject(payloadSendingArg, useCacheArg = false) { - let payloadReceiving; - if (this.urlEndPoint) { - const response = await webrequestInstance.postJson(this.urlEndPoint, payloadSendingArg, useCacheArg ? { cacheStrategy: "cache-first" } : {}); - payloadReceiving = response; - } else { - payloadReceiving = await this.typedTarget.post(payloadSendingArg); - } - if (payloadReceiving.error) { - console.error(`method: >>${this.method}<< got an ERROR: "${payloadReceiving.error.text}" with data ${JSON.stringify(payloadReceiving.error.data, null, 2)}`); - if (!payloadReceiving.retry) { - throw new TypedResponseError(payloadReceiving.error.text, payloadReceiving.error.data); - } - return null; - } - if (payloadReceiving.retry) { - console.log(`server requested retry for the following reason: ${payloadReceiving.retry.reason}`); - await dist_ts_exports3.delayFor(payloadReceiving.retry.waitForMs); - payloadReceiving = await this.postTrObject(payloadSendingArg, useCacheArg); - } - return payloadReceiving; - } - }; - } -}); - -// node_modules/.pnpm/@api.global+typedrequest@3.2.6/node_modules/@api.global/typedrequest/dist_ts/index.js -var dist_ts_exports15 = {}; -__export(dist_ts_exports15, { - TypedHandler: () => TypedHandler, - TypedRequest: () => TypedRequest, - TypedResponseError: () => TypedResponseError, - TypedRouter: () => TypedRouter, - TypedTarget: () => TypedTarget, - VirtualStream: () => VirtualStream -}); -var init_dist_ts15 = __esm({ - "node_modules/.pnpm/@api.global+typedrequest@3.2.6/node_modules/@api.global/typedrequest/dist_ts/index.js"() { - init_classes_typedrequest(); - init_classes_typedhandler(); - init_classes_typedrouter(); - init_classes_typedresponseerror(); - init_classes_typedtarget(); - init_classes_virtualstream(); - } -}); - -// node_modules/.pnpm/broadcast-channel@7.3.0/node_modules/broadcast-channel/dist/esbrowser/util.js -function isPromise2(obj) { - return obj && typeof obj.then === "function"; -} -function sleep(time, resolveWith) { - if (!time) time = 0; - return new Promise(function(res) { - return setTimeout(function() { - return res(resolveWith); - }, time); - }); -} -function randomInt(min3, max3) { - return Math.floor(Math.random() * (max3 - min3 + 1) + min3); -} -function randomToken() { - return Math.random().toString(36).substring(2); -} -function microSeconds() { - var ret = Date.now() * 1e3; - if (ret <= lastMs) { - ret = lastMs + 1; - } - lastMs = ret; - return ret; -} -function supportsWebLockAPI() { - if (typeof navigator !== "undefined" && typeof navigator.locks !== "undefined" && typeof navigator.locks.request === "function") { - return true; - } else { - return false; - } -} -var PROMISE_RESOLVED_FALSE, PROMISE_RESOLVED_TRUE, PROMISE_RESOLVED_VOID, lastMs; -var init_util = __esm({ - "node_modules/.pnpm/broadcast-channel@7.3.0/node_modules/broadcast-channel/dist/esbrowser/util.js"() { - PROMISE_RESOLVED_FALSE = Promise.resolve(false); - PROMISE_RESOLVED_TRUE = Promise.resolve(true); - PROMISE_RESOLVED_VOID = Promise.resolve(); - lastMs = 0; - } -}); - -// node_modules/.pnpm/broadcast-channel@7.3.0/node_modules/broadcast-channel/dist/esbrowser/methods/native.js -function create(channelName) { - var state = { - time: microSeconds(), - messagesCallback: null, - bc: new BroadcastChannel(channelName), - subFns: [] - // subscriberFunctions - }; - state.bc.onmessage = function(msgEvent) { - if (state.messagesCallback) { - state.messagesCallback(msgEvent.data); - } - }; - return state; -} -function close(channelState) { - channelState.bc.close(); - channelState.subFns = []; -} -function postMessage(channelState, messageJson) { - try { - channelState.bc.postMessage(messageJson, false); - return PROMISE_RESOLVED_VOID; - } catch (err) { - return Promise.reject(err); - } -} -function onMessage(channelState, fn) { - channelState.messagesCallback = fn; -} -function canBeUsed() { - if (typeof globalThis !== "undefined" && globalThis.Deno && globalThis.Deno.args) { - return true; - } - if ((typeof window !== "undefined" || typeof self !== "undefined") && typeof BroadcastChannel === "function") { - if (BroadcastChannel._pubkey) { - throw new Error("BroadcastChannel: Do not overwrite window.BroadcastChannel with this module, this is not a polyfill"); - } - return true; - } else { - return false; - } -} -function averageResponseTime() { - return 150; -} -var microSeconds2, type, NativeMethod; -var init_native = __esm({ - "node_modules/.pnpm/broadcast-channel@7.3.0/node_modules/broadcast-channel/dist/esbrowser/methods/native.js"() { - init_util(); - microSeconds2 = microSeconds; - type = "native"; - NativeMethod = { - create, - close, - onMessage, - postMessage, - canBeUsed, - type, - averageResponseTime, - microSeconds: microSeconds2 - }; - } -}); - -// node_modules/.pnpm/oblivious-set@2.0.0/node_modules/oblivious-set/dist/esm/src/index.js -function removeTooOldValues(obliviousSet) { - const olderThen = now() - obliviousSet.ttl; - const iterator2 = obliviousSet.map[Symbol.iterator](); - while (true) { - const next2 = iterator2.next().value; - if (!next2) { - break; - } - const value2 = next2[0]; - const time = next2[1]; - if (time < olderThen) { - obliviousSet.map.delete(value2); - } else { - break; - } - } -} -function now() { - return Date.now(); -} -var ObliviousSet; -var init_src = __esm({ - "node_modules/.pnpm/oblivious-set@2.0.0/node_modules/oblivious-set/dist/esm/src/index.js"() { - ObliviousSet = class { - ttl; - map = /* @__PURE__ */ new Map(); - /** - * Creating calls to setTimeout() is expensive, - * so we only do that if there is not timeout already open. - */ - _to = false; - constructor(ttl) { - this.ttl = ttl; - } - has(value2) { - const valueTime = this.map.get(value2); - if (typeof valueTime === "undefined") { - return false; - } - if (valueTime < now() - this.ttl) { - this.map.delete(value2); - return false; - } - return true; - } - add(value2) { - this.map.delete(value2); - this.map.set(value2, now()); - if (!this._to) { - this._to = true; - setTimeout(() => { - this._to = false; - removeTooOldValues(this); - }, 0); - } - } - clear() { - this.map.clear(); - } - }; - } -}); - -// node_modules/.pnpm/broadcast-channel@7.3.0/node_modules/broadcast-channel/dist/esbrowser/options.js -function fillOptionsWithDefaults() { - var originalOptions = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : {}; - var options = JSON.parse(JSON.stringify(originalOptions)); - if (typeof options.webWorkerSupport === "undefined") options.webWorkerSupport = true; - if (!options.idb) options.idb = {}; - if (!options.idb.ttl) options.idb.ttl = 1e3 * 45; - if (!options.idb.fallbackInterval) options.idb.fallbackInterval = 150; - if (originalOptions.idb && typeof originalOptions.idb.onclose === "function") options.idb.onclose = originalOptions.idb.onclose; - if (!options.localstorage) options.localstorage = {}; - if (!options.localstorage.removeTimeout) options.localstorage.removeTimeout = 1e3 * 60; - if (originalOptions.methods) options.methods = originalOptions.methods; - if (!options.node) options.node = {}; - if (!options.node.ttl) options.node.ttl = 1e3 * 60 * 2; - if (!options.node.maxParallelWrites) options.node.maxParallelWrites = 2048; - if (typeof options.node.useFastPath === "undefined") options.node.useFastPath = true; - return options; -} -var init_options = __esm({ - "node_modules/.pnpm/broadcast-channel@7.3.0/node_modules/broadcast-channel/dist/esbrowser/options.js"() { - } -}); - -// node_modules/.pnpm/broadcast-channel@7.3.0/node_modules/broadcast-channel/dist/esbrowser/methods/indexed-db.js -function getIdb() { - if (typeof indexedDB !== "undefined") return indexedDB; - if (typeof window !== "undefined") { - if (typeof window.mozIndexedDB !== "undefined") return window.mozIndexedDB; - if (typeof window.webkitIndexedDB !== "undefined") return window.webkitIndexedDB; - if (typeof window.msIndexedDB !== "undefined") return window.msIndexedDB; - } - return false; -} -function commitIndexedDBTransaction(tx) { - if (tx.commit) { - tx.commit(); - } -} -function createDatabase(channelName) { - var IndexedDB = getIdb(); - var dbName = DB_PREFIX + channelName; - var openRequest = IndexedDB.open(dbName); - openRequest.onupgradeneeded = function(ev) { - var db = ev.target.result; - db.createObjectStore(OBJECT_STORE_ID, { - keyPath: "id", - autoIncrement: true - }); - }; - return new Promise(function(res, rej) { - openRequest.onerror = function(ev) { - return rej(ev); - }; - openRequest.onsuccess = function() { - res(openRequest.result); - }; - }); -} -function writeMessage(db, readerUuid, messageJson) { - var time = Date.now(); - var writeObject = { - uuid: readerUuid, - time, - data: messageJson - }; - var tx = db.transaction([OBJECT_STORE_ID], "readwrite", TRANSACTION_SETTINGS); - return new Promise(function(res, rej) { - tx.oncomplete = function() { - return res(); - }; - tx.onerror = function(ev) { - return rej(ev); - }; - var objectStore = tx.objectStore(OBJECT_STORE_ID); - objectStore.add(writeObject); - commitIndexedDBTransaction(tx); - }); -} -function getAllMessages(db) { - var tx = db.transaction(OBJECT_STORE_ID, "readonly", TRANSACTION_SETTINGS); - var objectStore = tx.objectStore(OBJECT_STORE_ID); - var ret = []; - return new Promise(function(res) { - objectStore.openCursor().onsuccess = function(ev) { - var cursor = ev.target.result; - if (cursor) { - ret.push(cursor.value); - cursor["continue"](); - } else { - commitIndexedDBTransaction(tx); - res(ret); - } - }; - }); -} -function getMessagesHigherThan(db, lastCursorId) { - var tx = db.transaction(OBJECT_STORE_ID, "readonly", TRANSACTION_SETTINGS); - var objectStore = tx.objectStore(OBJECT_STORE_ID); - var ret = []; - var keyRangeValue = IDBKeyRange.bound(lastCursorId + 1, Infinity); - if (objectStore.getAll) { - var getAllRequest = objectStore.getAll(keyRangeValue); - return new Promise(function(res, rej) { - getAllRequest.onerror = function(err) { - return rej(err); - }; - getAllRequest.onsuccess = function(e11) { - res(e11.target.result); - }; - }); - } - function openCursor() { - try { - keyRangeValue = IDBKeyRange.bound(lastCursorId + 1, Infinity); - return objectStore.openCursor(keyRangeValue); - } catch (e11) { - return objectStore.openCursor(); - } - } - return new Promise(function(res, rej) { - var openCursorRequest = openCursor(); - openCursorRequest.onerror = function(err) { - return rej(err); - }; - openCursorRequest.onsuccess = function(ev) { - var cursor = ev.target.result; - if (cursor) { - if (cursor.value.id < lastCursorId + 1) { - cursor["continue"](lastCursorId + 1); - } else { - ret.push(cursor.value); - cursor["continue"](); - } - } else { - commitIndexedDBTransaction(tx); - res(ret); - } - }; - }); -} -function removeMessagesById(channelState, ids) { - if (channelState.closed) { - return Promise.resolve([]); - } - var tx = channelState.db.transaction(OBJECT_STORE_ID, "readwrite", TRANSACTION_SETTINGS); - var objectStore = tx.objectStore(OBJECT_STORE_ID); - return Promise.all(ids.map(function(id) { - var deleteRequest = objectStore["delete"](id); - return new Promise(function(res) { - deleteRequest.onsuccess = function() { - return res(); - }; - }); - })); -} -function getOldMessages(db, ttl) { - var olderThen = Date.now() - ttl; - var tx = db.transaction(OBJECT_STORE_ID, "readonly", TRANSACTION_SETTINGS); - var objectStore = tx.objectStore(OBJECT_STORE_ID); - var ret = []; - return new Promise(function(res) { - objectStore.openCursor().onsuccess = function(ev) { - var cursor = ev.target.result; - if (cursor) { - var msgObk = cursor.value; - if (msgObk.time < olderThen) { - ret.push(msgObk); - cursor["continue"](); - } else { - commitIndexedDBTransaction(tx); - res(ret); - } - } else { - res(ret); - } - }; - }); -} -function cleanOldMessages(channelState) { - return getOldMessages(channelState.db, channelState.options.idb.ttl).then(function(tooOld) { - return removeMessagesById(channelState, tooOld.map(function(msg) { - return msg.id; - })); - }); -} -function create2(channelName, options) { - options = fillOptionsWithDefaults(options); - return createDatabase(channelName).then(function(db) { - var state = { - closed: false, - lastCursorId: 0, - channelName, - options, - uuid: randomToken(), - /** - * emittedMessagesIds - * contains all messages that have been emitted before - * @type {ObliviousSet} - */ - eMIs: new ObliviousSet(options.idb.ttl * 2), - // ensures we do not read messages in parallel - writeBlockPromise: PROMISE_RESOLVED_VOID, - messagesCallback: null, - readQueuePromises: [], - db - }; - db.onclose = function() { - state.closed = true; - if (options.idb.onclose) options.idb.onclose(); - }; - _readLoop(state); - return state; - }); -} -function _readLoop(state) { - if (state.closed) return; - readNewMessages(state).then(function() { - return sleep(state.options.idb.fallbackInterval); - }).then(function() { - return _readLoop(state); - }); -} -function _filterMessage(msgObj, state) { - if (msgObj.uuid === state.uuid) return false; - if (state.eMIs.has(msgObj.id)) return false; - if (msgObj.data.time < state.messagesCallbackTime) return false; - return true; -} -function readNewMessages(state) { - if (state.closed) return PROMISE_RESOLVED_VOID; - if (!state.messagesCallback) return PROMISE_RESOLVED_VOID; - return getMessagesHigherThan(state.db, state.lastCursorId).then(function(newerMessages) { - var useMessages = newerMessages.filter(function(msgObj) { - return !!msgObj; - }).map(function(msgObj) { - if (msgObj.id > state.lastCursorId) { - state.lastCursorId = msgObj.id; - } - return msgObj; - }).filter(function(msgObj) { - return _filterMessage(msgObj, state); - }).sort(function(msgObjA, msgObjB) { - return msgObjA.time - msgObjB.time; - }); - useMessages.forEach(function(msgObj) { - if (state.messagesCallback) { - state.eMIs.add(msgObj.id); - state.messagesCallback(msgObj.data); - } - }); - return PROMISE_RESOLVED_VOID; - }); -} -function close2(channelState) { - channelState.closed = true; - channelState.db.close(); -} -function postMessage2(channelState, messageJson) { - channelState.writeBlockPromise = channelState.writeBlockPromise.then(function() { - return writeMessage(channelState.db, channelState.uuid, messageJson); - }).then(function() { - if (randomInt(0, 10) === 0) { - cleanOldMessages(channelState); - } - }); - return channelState.writeBlockPromise; -} -function onMessage2(channelState, fn, time) { - channelState.messagesCallbackTime = time; - channelState.messagesCallback = fn; - readNewMessages(channelState); -} -function canBeUsed2() { - return !!getIdb(); -} -function averageResponseTime2(options) { - return options.idb.fallbackInterval * 2; -} -var microSeconds3, DB_PREFIX, OBJECT_STORE_ID, TRANSACTION_SETTINGS, type2, IndexedDBMethod; -var init_indexed_db = __esm({ - "node_modules/.pnpm/broadcast-channel@7.3.0/node_modules/broadcast-channel/dist/esbrowser/methods/indexed-db.js"() { - init_util(); - init_src(); - init_options(); - microSeconds3 = microSeconds; - DB_PREFIX = "pubkey.broadcast-channel-0-"; - OBJECT_STORE_ID = "messages"; - TRANSACTION_SETTINGS = { - durability: "relaxed" - }; - type2 = "idb"; - IndexedDBMethod = { - create: create2, - close: close2, - onMessage: onMessage2, - postMessage: postMessage2, - canBeUsed: canBeUsed2, - type: type2, - averageResponseTime: averageResponseTime2, - microSeconds: microSeconds3 - }; - } -}); - -// node_modules/.pnpm/broadcast-channel@7.3.0/node_modules/broadcast-channel/dist/esbrowser/methods/localstorage.js -function getLocalStorage() { - var localStorage2; - if (typeof window === "undefined") return null; - try { - localStorage2 = window.localStorage; - localStorage2 = window["ie8-eventlistener/storage"] || window.localStorage; - } catch (e11) { - } - return localStorage2; -} -function storageKey(channelName) { - return KEY_PREFIX + channelName; -} -function postMessage3(channelState, messageJson) { - return new Promise(function(res) { - sleep().then(function() { - var key2 = storageKey(channelState.channelName); - var writeObj = { - token: randomToken(), - time: Date.now(), - data: messageJson, - uuid: channelState.uuid - }; - var value2 = JSON.stringify(writeObj); - getLocalStorage().setItem(key2, value2); - var ev = document.createEvent("Event"); - ev.initEvent("storage", true, true); - ev.key = key2; - ev.newValue = value2; - window.dispatchEvent(ev); - res(); - }); - }); -} -function addStorageEventListener(channelName, fn) { - var key2 = storageKey(channelName); - var listener2 = function listener3(ev) { - if (ev.key === key2) { - fn(JSON.parse(ev.newValue)); - } - }; - window.addEventListener("storage", listener2); - return listener2; -} -function removeStorageEventListener(listener2) { - window.removeEventListener("storage", listener2); -} -function create3(channelName, options) { - options = fillOptionsWithDefaults(options); - if (!canBeUsed3()) { - throw new Error("BroadcastChannel: localstorage cannot be used"); - } - var uuid = randomToken(); - var eMIs = new ObliviousSet(options.localstorage.removeTimeout); - var state = { - channelName, - uuid, - eMIs - // emittedMessagesIds - }; - state.listener = addStorageEventListener(channelName, function(msgObj) { - if (!state.messagesCallback) return; - if (msgObj.uuid === uuid) return; - if (!msgObj.token || eMIs.has(msgObj.token)) return; - if (msgObj.data.time && msgObj.data.time < state.messagesCallbackTime) return; - eMIs.add(msgObj.token); - state.messagesCallback(msgObj.data); - }); - return state; -} -function close3(channelState) { - removeStorageEventListener(channelState.listener); -} -function onMessage3(channelState, fn, time) { - channelState.messagesCallbackTime = time; - channelState.messagesCallback = fn; -} -function canBeUsed3() { - var ls = getLocalStorage(); - if (!ls) return false; - try { - var key2 = "__broadcastchannel_check"; - ls.setItem(key2, "works"); - ls.removeItem(key2); - } catch (e11) { - return false; - } - return true; -} -function averageResponseTime3() { - var defaultTime = 120; - var userAgent2 = navigator.userAgent.toLowerCase(); - if (userAgent2.includes("safari") && !userAgent2.includes("chrome")) { - return defaultTime * 2; - } - return defaultTime; -} -var microSeconds4, KEY_PREFIX, type3, LocalstorageMethod; -var init_localstorage = __esm({ - "node_modules/.pnpm/broadcast-channel@7.3.0/node_modules/broadcast-channel/dist/esbrowser/methods/localstorage.js"() { - init_src(); - init_options(); - init_util(); - microSeconds4 = microSeconds; - KEY_PREFIX = "pubkey.broadcastChannel-"; - type3 = "localstorage"; - LocalstorageMethod = { - create: create3, - close: close3, - onMessage: onMessage3, - postMessage: postMessage3, - canBeUsed: canBeUsed3, - type: type3, - averageResponseTime: averageResponseTime3, - microSeconds: microSeconds4 - }; - } -}); - -// node_modules/.pnpm/broadcast-channel@7.3.0/node_modules/broadcast-channel/dist/esbrowser/methods/simulate.js -function create4(channelName) { - var state = { - time: microSeconds5(), - name: channelName, - messagesCallback: null - }; - SIMULATE_CHANNELS.add(state); - return state; -} -function close4(channelState) { - SIMULATE_CHANNELS["delete"](channelState); -} -function postMessage4(channelState, messageJson) { - return new Promise(function(res) { - return setTimeout(function() { - var channelArray = Array.from(SIMULATE_CHANNELS); - channelArray.forEach(function(channel) { - if (channel.name === channelState.name && // has same name - channel !== channelState && // not own channel - !!channel.messagesCallback && // has subscribers - channel.time < messageJson.time) { - channel.messagesCallback(messageJson); - } - }); - res(); - }, SIMULATE_DELAY_TIME); - }); -} -function onMessage4(channelState, fn) { - channelState.messagesCallback = fn; -} -function canBeUsed4() { - return true; -} -function averageResponseTime4() { - return SIMULATE_DELAY_TIME; -} -var microSeconds5, type4, SIMULATE_CHANNELS, SIMULATE_DELAY_TIME, SimulateMethod; -var init_simulate = __esm({ - "node_modules/.pnpm/broadcast-channel@7.3.0/node_modules/broadcast-channel/dist/esbrowser/methods/simulate.js"() { - init_util(); - microSeconds5 = microSeconds; - type4 = "simulate"; - SIMULATE_CHANNELS = /* @__PURE__ */ new Set(); - SIMULATE_DELAY_TIME = 5; - SimulateMethod = { - create: create4, - close: close4, - onMessage: onMessage4, - postMessage: postMessage4, - canBeUsed: canBeUsed4, - type: type4, - averageResponseTime: averageResponseTime4, - microSeconds: microSeconds5 - }; - } -}); - -// node_modules/.pnpm/broadcast-channel@7.3.0/node_modules/broadcast-channel/dist/esbrowser/method-chooser.js -function chooseMethod(options) { - var chooseMethods = [].concat(options.methods, METHODS).filter(Boolean); - if (options.type) { - if (options.type === "simulate") { - return SimulateMethod; - } - var ret = chooseMethods.find(function(m6) { - return m6.type === options.type; - }); - if (!ret) throw new Error("method-type " + options.type + " not found"); - else return ret; - } - if (!options.webWorkerSupport) { - chooseMethods = chooseMethods.filter(function(m6) { - return m6.type !== "idb"; - }); - } - var useMethod = chooseMethods.find(function(method) { - return method.canBeUsed(); - }); - if (!useMethod) { - throw new Error("No usable method found in " + JSON.stringify(METHODS.map(function(m6) { - return m6.type; - }))); - } else { - return useMethod; - } -} -var METHODS; -var init_method_chooser = __esm({ - "node_modules/.pnpm/broadcast-channel@7.3.0/node_modules/broadcast-channel/dist/esbrowser/method-chooser.js"() { - init_native(); - init_indexed_db(); - init_localstorage(); - init_simulate(); - METHODS = [ - NativeMethod, - // fastest - IndexedDBMethod, - LocalstorageMethod - ]; - } -}); - -// node_modules/.pnpm/broadcast-channel@7.3.0/node_modules/broadcast-channel/dist/esbrowser/broadcast-channel.js -function clearNodeFolder(options) { - options = fillOptionsWithDefaults(options); - var method = chooseMethod(options); - if (method.type === "node") { - return method.clearNodeFolder().then(function() { - return true; - }); - } else { - return PROMISE_RESOLVED_FALSE; - } -} -function enforceOptions(options) { - ENFORCED_OPTIONS = options; -} -function _post(broadcastChannel, type5, msg) { - var time = broadcastChannel.method.microSeconds(); - var msgObj = { - time, - type: type5, - data: msg - }; - var awaitPrepare = broadcastChannel._prepP ? broadcastChannel._prepP : PROMISE_RESOLVED_VOID; - return awaitPrepare.then(function() { - var sendPromise = broadcastChannel.method.postMessage(broadcastChannel._state, msgObj); - broadcastChannel._uMP.add(sendPromise); - sendPromise["catch"]().then(function() { - return broadcastChannel._uMP["delete"](sendPromise); - }); - return sendPromise; - }); -} -function _prepareChannel(channel) { - var maybePromise = channel.method.create(channel.name, channel.options); - if (isPromise2(maybePromise)) { - channel._prepP = maybePromise; - maybePromise.then(function(s10) { - channel._state = s10; - }); - } else { - channel._state = maybePromise; - } -} -function _hasMessageListeners(channel) { - if (channel._addEL.message.length > 0) return true; - if (channel._addEL.internal.length > 0) return true; - return false; -} -function _addListenerObject(channel, type5, obj) { - channel._addEL[type5].push(obj); - _startListening(channel); -} -function _removeListenerObject(channel, type5, obj) { - channel._addEL[type5] = channel._addEL[type5].filter(function(o13) { - return o13 !== obj; - }); - _stopListening(channel); -} -function _startListening(channel) { - if (!channel._iL && _hasMessageListeners(channel)) { - var listenerFn = function listenerFn2(msgObj) { - channel._addEL[msgObj.type].forEach(function(listenerObject) { - if (msgObj.time >= listenerObject.time) { - listenerObject.fn(msgObj.data); - } - }); - }; - var time = channel.method.microSeconds(); - if (channel._prepP) { - channel._prepP.then(function() { - channel._iL = true; - channel.method.onMessage(channel._state, listenerFn, time); - }); - } else { - channel._iL = true; - channel.method.onMessage(channel._state, listenerFn, time); - } - } -} -function _stopListening(channel) { - if (channel._iL && !_hasMessageListeners(channel)) { - channel._iL = false; - var time = channel.method.microSeconds(); - channel.method.onMessage(channel._state, null, time); - } -} -var OPEN_BROADCAST_CHANNELS, lastId, BroadcastChannel2, ENFORCED_OPTIONS; -var init_broadcast_channel = __esm({ - "node_modules/.pnpm/broadcast-channel@7.3.0/node_modules/broadcast-channel/dist/esbrowser/broadcast-channel.js"() { - init_util(); - init_method_chooser(); - init_options(); - OPEN_BROADCAST_CHANNELS = /* @__PURE__ */ new Set(); - lastId = 0; - BroadcastChannel2 = function BroadcastChannel3(name, options) { - this.id = lastId++; - OPEN_BROADCAST_CHANNELS.add(this); - this.name = name; - if (ENFORCED_OPTIONS) { - options = ENFORCED_OPTIONS; - } - this.options = fillOptionsWithDefaults(options); - this.method = chooseMethod(this.options); - this._iL = false; - this._onML = null; - this._addEL = { - message: [], - internal: [] - }; - this._uMP = /* @__PURE__ */ new Set(); - this._befC = []; - this._prepP = null; - _prepareChannel(this); - }; - BroadcastChannel2._pubkey = true; - BroadcastChannel2.prototype = { - postMessage: function postMessage5(msg) { - if (this.closed) { - throw new Error("BroadcastChannel.postMessage(): Cannot post message after channel has closed " + /** - * In the past when this error appeared, it was really hard to debug. - * So now we log the msg together with the error so it at least - * gives some clue about where in your application this happens. - */ - JSON.stringify(msg)); - } - return _post(this, "message", msg); - }, - postInternal: function postInternal(msg) { - return _post(this, "internal", msg); - }, - set onmessage(fn) { - var time = this.method.microSeconds(); - var listenObj = { - time, - fn - }; - _removeListenerObject(this, "message", this._onML); - if (fn && typeof fn === "function") { - this._onML = listenObj; - _addListenerObject(this, "message", listenObj); - } else { - this._onML = null; - } - }, - addEventListener: function addEventListener(type5, fn) { - var time = this.method.microSeconds(); - var listenObj = { - time, - fn - }; - _addListenerObject(this, type5, listenObj); - }, - removeEventListener: function removeEventListener(type5, fn) { - var obj = this._addEL[type5].find(function(obj2) { - return obj2.fn === fn; - }); - _removeListenerObject(this, type5, obj); - }, - close: function close5() { - var _this = this; - if (this.closed) { - return; - } - OPEN_BROADCAST_CHANNELS["delete"](this); - this.closed = true; - var awaitPrepare = this._prepP ? this._prepP : PROMISE_RESOLVED_VOID; - this._onML = null; - this._addEL.message = []; - return awaitPrepare.then(function() { - return Promise.all(Array.from(_this._uMP)); - }).then(function() { - return Promise.all(_this._befC.map(function(fn) { - return fn(); - })); - }).then(function() { - return _this.method.close(_this._state); - }); - }, - get type() { - return this.method.type; - }, - get isClosed() { - return this.closed; - } - }; - } -}); - -// node_modules/.pnpm/unload@2.4.1/node_modules/unload/dist/es/browser.js -function addBrowser(fn) { - if (typeof WorkerGlobalScope === "function" && self instanceof WorkerGlobalScope) { - var oldClose = self.close.bind(self); - self.close = function() { - fn(); - return oldClose(); - }; - } else { - if (typeof window.addEventListener !== "function") { - return; - } - window.addEventListener("beforeunload", function() { - fn(); - }, true); - window.addEventListener("unload", function() { - fn(); - }, true); - } -} -var init_browser = __esm({ - "node_modules/.pnpm/unload@2.4.1/node_modules/unload/dist/es/browser.js"() { - } -}); - -// node_modules/.pnpm/unload@2.4.1/node_modules/unload/dist/es/node.js -function addNode(fn) { - process.on("exit", function() { - return fn(); - }); - process.on("beforeExit", function() { - return fn().then(function() { - return process.exit(); - }); - }); - process.on("SIGINT", function() { - return fn().then(function() { - return process.exit(); - }); - }); - process.on("uncaughtException", function(err) { - return fn().then(function() { - console.trace(err); - process.exit(101); - }); - }); -} -var init_node = __esm({ - "node_modules/.pnpm/unload@2.4.1/node_modules/unload/dist/es/node.js"() { - } -}); - -// node_modules/.pnpm/unload@2.4.1/node_modules/unload/dist/es/index.js -function startListening() { - if (startedListening) { - return; - } - startedListening = true; - USE_METHOD(runAll); -} -function add2(fn) { - startListening(); - if (typeof fn !== "function") { - throw new Error("Listener is no function"); - } - LISTENERS.add(fn); - var addReturn = { - remove: function remove2() { - return LISTENERS["delete"](fn); - }, - run: function run() { - LISTENERS["delete"](fn); - return fn(); - } - }; - return addReturn; -} -function runAll() { - var promises = []; - LISTENERS.forEach(function(fn) { - promises.push(fn()); - LISTENERS["delete"](fn); - }); - return Promise.all(promises); -} -function removeAll() { - LISTENERS.clear(); -} -function getSize() { - return LISTENERS.size; -} -var isNode, USE_METHOD, LISTENERS, startedListening; -var init_es = __esm({ - "node_modules/.pnpm/unload@2.4.1/node_modules/unload/dist/es/index.js"() { - init_browser(); - init_node(); - isNode = Object.prototype.toString.call(typeof process !== "undefined" ? process : 0) === "[object process]"; - USE_METHOD = isNode ? addNode : addBrowser; - LISTENERS = /* @__PURE__ */ new Set(); - startedListening = false; - } -}); - -// node_modules/.pnpm/broadcast-channel@7.3.0/node_modules/broadcast-channel/dist/esbrowser/leader-election-util.js -function sendLeaderMessage(leaderElector, action) { - var msgJson = { - context: "leader", - action, - token: leaderElector.token - }; - return leaderElector.broadcastChannel.postInternal(msgJson); -} -function beLeader(leaderElector) { - leaderElector.isLeader = true; - leaderElector._hasLeader = true; - var unloadFn = add2(function() { - return leaderElector.die(); - }); - leaderElector._unl.push(unloadFn); - var isLeaderListener = function isLeaderListener2(msg) { - if (msg.context === "leader" && msg.action === "apply") { - sendLeaderMessage(leaderElector, "tell"); - } - if (msg.context === "leader" && msg.action === "tell" && !leaderElector._dpLC) { - leaderElector._dpLC = true; - leaderElector._dpL(); - sendLeaderMessage(leaderElector, "tell"); - } - }; - leaderElector.broadcastChannel.addEventListener("internal", isLeaderListener); - leaderElector._lstns.push(isLeaderListener); - return sendLeaderMessage(leaderElector, "tell"); -} -var init_leader_election_util = __esm({ - "node_modules/.pnpm/broadcast-channel@7.3.0/node_modules/broadcast-channel/dist/esbrowser/leader-election-util.js"() { - init_es(); - } -}); - -// node_modules/.pnpm/broadcast-channel@7.3.0/node_modules/broadcast-channel/dist/esbrowser/leader-election-web-lock.js -var LeaderElectionWebLock, LEADER_DIE_ABORT_SIGNAL_MESSAGE; -var init_leader_election_web_lock = __esm({ - "node_modules/.pnpm/broadcast-channel@7.3.0/node_modules/broadcast-channel/dist/esbrowser/leader-election-web-lock.js"() { - init_util(); - init_leader_election_util(); - LeaderElectionWebLock = function LeaderElectionWebLock2(broadcastChannel, options) { - var _this = this; - this.broadcastChannel = broadcastChannel; - broadcastChannel._befC.push(function() { - return _this.die(); - }); - this._options = options; - this.isLeader = false; - this.isDead = false; - this.token = randomToken(); - this._lstns = []; - this._unl = []; - this._dpL = function() { - }; - this._dpLC = false; - this._wKMC = {}; - this.lN = "pubkey-bc||" + broadcastChannel.method.type + "||" + broadcastChannel.name; - }; - LEADER_DIE_ABORT_SIGNAL_MESSAGE = "LeaderElectionWebLock.die() called"; - LeaderElectionWebLock.prototype = { - hasLeader: function hasLeader() { - var _this2 = this; - return navigator.locks.query().then(function(locks) { - var relevantLocks = locks.held ? locks.held.filter(function(lock) { - return lock.name === _this2.lN; - }) : []; - if (relevantLocks && relevantLocks.length > 0) { - return true; - } else { - return false; - } - }); - }, - awaitLeadership: function awaitLeadership() { - var _this3 = this; - if (!this._wLMP) { - this._wKMC.c = new AbortController(); - var returnPromise = new Promise(function(res, rej) { - _this3._wKMC.res = res; - _this3._wKMC.rej = rej; - }); - this._wLMP = new Promise(function(res, reject) { - navigator.locks.request(_this3.lN, { - signal: _this3._wKMC.c.signal - }, function() { - _this3._wKMC.c = void 0; - beLeader(_this3); - res(); - return returnPromise; - })["catch"](function(err) { - if (err.message && err.message === LEADER_DIE_ABORT_SIGNAL_MESSAGE) { - } else { - if (_this3._wKMC.rej) { - _this3._wKMC.rej(err); - } - reject(err); - } - }); - }); - } - return this._wLMP; - }, - set onduplicate(_fn) { - }, - die: function die() { - var _this4 = this; - this._lstns.forEach(function(listener2) { - return _this4.broadcastChannel.removeEventListener("internal", listener2); - }); - this._lstns = []; - this._unl.forEach(function(uFn) { - return uFn.remove(); - }); - this._unl = []; - if (this.isLeader) { - this.isLeader = false; - } - this.isDead = true; - if (this._wKMC.res) { - this._wKMC.res(); - } - if (this._wKMC.c) { - this._wKMC.c.abort(new Error(LEADER_DIE_ABORT_SIGNAL_MESSAGE)); - } - return sendLeaderMessage(this, "death"); - } - }; - } -}); - -// node_modules/.pnpm/broadcast-channel@7.3.0/node_modules/broadcast-channel/dist/esbrowser/leader-election.js -function _awaitLeadershipOnce(leaderElector) { - if (leaderElector.isLeader) { - return PROMISE_RESOLVED_VOID; - } - return new Promise(function(res) { - var resolved2 = false; - function finish() { - if (resolved2) { - return; - } - resolved2 = true; - leaderElector.broadcastChannel.removeEventListener("internal", whenDeathListener); - res(true); - } - leaderElector.applyOnce().then(function() { - if (leaderElector.isLeader) { - finish(); - } - }); - var _tryOnFallBack = function tryOnFallBack() { - return sleep(leaderElector._options.fallbackInterval).then(function() { - if (leaderElector.isDead || resolved2) { - return; - } - if (leaderElector.isLeader) { - finish(); - } else { - return leaderElector.applyOnce(true).then(function() { - if (leaderElector.isLeader) { - finish(); - } else { - _tryOnFallBack(); - } - }); - } - }); - }; - _tryOnFallBack(); - var whenDeathListener = function whenDeathListener2(msg) { - if (msg.context === "leader" && msg.action === "death") { - leaderElector._hasLeader = false; - leaderElector.applyOnce().then(function() { - if (leaderElector.isLeader) { - finish(); - } - }); - } - }; - leaderElector.broadcastChannel.addEventListener("internal", whenDeathListener); - leaderElector._lstns.push(whenDeathListener); - }); -} -function fillOptionsWithDefaults2(options, channel) { - if (!options) options = {}; - options = JSON.parse(JSON.stringify(options)); - if (!options.fallbackInterval) { - options.fallbackInterval = 3e3; - } - if (!options.responseTime) { - options.responseTime = channel.method.averageResponseTime(channel.options); - } - return options; -} -function createLeaderElection(channel, options) { - if (channel._leaderElector) { - throw new Error("BroadcastChannel already has a leader-elector"); - } - options = fillOptionsWithDefaults2(options, channel); - var elector = supportsWebLockAPI() ? new LeaderElectionWebLock(channel, options) : new LeaderElection(channel, options); - channel._befC.push(function() { - return elector.die(); - }); - channel._leaderElector = elector; - return elector; -} -var LeaderElection; -var init_leader_election = __esm({ - "node_modules/.pnpm/broadcast-channel@7.3.0/node_modules/broadcast-channel/dist/esbrowser/leader-election.js"() { - init_util(); - init_leader_election_util(); - init_leader_election_web_lock(); - LeaderElection = function LeaderElection2(broadcastChannel, options) { - var _this = this; - this.broadcastChannel = broadcastChannel; - this._options = options; - this.isLeader = false; - this._hasLeader = false; - this.isDead = false; - this.token = randomToken(); - this._aplQ = PROMISE_RESOLVED_VOID; - this._aplQC = 0; - this._unl = []; - this._lstns = []; - this._dpL = function() { - }; - this._dpLC = false; - var hasLeaderListener = function hasLeaderListener2(msg) { - if (msg.context === "leader") { - if (msg.action === "death") { - _this._hasLeader = false; - } - if (msg.action === "tell") { - _this._hasLeader = true; - } - } - }; - this.broadcastChannel.addEventListener("internal", hasLeaderListener); - this._lstns.push(hasLeaderListener); - }; - LeaderElection.prototype = { - hasLeader: function hasLeader2() { - return Promise.resolve(this._hasLeader); - }, - /** - * Returns true if the instance is leader, - * false if not. - * @async - */ - applyOnce: function applyOnce(isFromFallbackInterval) { - var _this2 = this; - if (this.isLeader) { - return sleep(0, true); - } - if (this.isDead) { - return sleep(0, false); - } - if (this._aplQC > 1) { - return this._aplQ; - } - var applyRun = function applyRun2() { - if (_this2.isLeader) { - return PROMISE_RESOLVED_TRUE; - } - var stopCriteria = false; - var stopCriteriaPromiseResolve; - var stopCriteriaPromise = new Promise(function(res) { - stopCriteriaPromiseResolve = function stopCriteriaPromiseResolve2() { - stopCriteria = true; - res(); - }; - }); - var handleMessage = function handleMessage2(msg) { - if (msg.context === "leader" && msg.token != _this2.token) { - if (msg.action === "apply") { - if (msg.token > _this2.token) { - stopCriteriaPromiseResolve(); - } - } - if (msg.action === "tell") { - stopCriteriaPromiseResolve(); - _this2._hasLeader = true; - } - } - }; - _this2.broadcastChannel.addEventListener("internal", handleMessage); - var waitForAnswerTime = isFromFallbackInterval ? _this2._options.responseTime * 4 : _this2._options.responseTime; - return sendLeaderMessage(_this2, "apply").then(function() { - return Promise.race([sleep(waitForAnswerTime), stopCriteriaPromise.then(function() { - return Promise.reject(new Error()); - })]); - }).then(function() { - return sendLeaderMessage(_this2, "apply"); - }).then(function() { - return Promise.race([sleep(waitForAnswerTime), stopCriteriaPromise.then(function() { - return Promise.reject(new Error()); - })]); - })["catch"](function() { - }).then(function() { - _this2.broadcastChannel.removeEventListener("internal", handleMessage); - if (!stopCriteria) { - return beLeader(_this2).then(function() { - return true; - }); - } else { - return false; - } - }); - }; - this._aplQC = this._aplQC + 1; - this._aplQ = this._aplQ.then(function() { - return applyRun(); - }).then(function() { - _this2._aplQC = _this2._aplQC - 1; - }); - return this._aplQ.then(function() { - return _this2.isLeader; - }); - }, - awaitLeadership: function awaitLeadership2() { - if ( - /* _awaitLeadershipPromise */ - !this._aLP - ) { - this._aLP = _awaitLeadershipOnce(this); - } - return this._aLP; - }, - set onduplicate(fn) { - this._dpL = fn; - }, - die: function die2() { - var _this3 = this; - this._lstns.forEach(function(listener2) { - return _this3.broadcastChannel.removeEventListener("internal", listener2); - }); - this._lstns = []; - this._unl.forEach(function(uFn) { - return uFn.remove(); - }); - this._unl = []; - if (this.isLeader) { - this._hasLeader = false; - this.isLeader = false; - } - this.isDead = true; - return sendLeaderMessage(this, "death"); - } - }; - } -}); - -// node_modules/.pnpm/broadcast-channel@7.3.0/node_modules/broadcast-channel/dist/esbrowser/index.js -var init_esbrowser = __esm({ - "node_modules/.pnpm/broadcast-channel@7.3.0/node_modules/broadcast-channel/dist/esbrowser/index.js"() { - init_broadcast_channel(); - init_leader_election(); - init_leader_election_util(); - } -}); - -// node_modules/.pnpm/@design.estate+dees-comms@1.0.30/node_modules/@design.estate/dees-comms/dist_ts/dees-comms.plugins.js -var init_dees_comms_plugins = __esm({ - "node_modules/.pnpm/@design.estate+dees-comms@1.0.30/node_modules/@design.estate/dees-comms/dist_ts/dees-comms.plugins.js"() { - init_dist_ts3(); - init_dist_ts4(); - init_dist_ts15(); - init_esbrowser(); - } -}); - -// node_modules/.pnpm/@design.estate+dees-comms@1.0.30/node_modules/@design.estate/dees-comms/dist_ts/dees-comms.classes.deescomms.js -var BroadcastChannel4, DeesComms; -var init_dees_comms_classes_deescomms = __esm({ - "node_modules/.pnpm/@design.estate+dees-comms@1.0.30/node_modules/@design.estate/dees-comms/dist_ts/dees-comms.classes.deescomms.js"() { - init_dees_comms_plugins(); - BroadcastChannel4 = globalThis.BroadcastChannel; - if (!BroadcastChannel4) { - BroadcastChannel4 = BroadcastChannel2; - } - DeesComms = class { - // receiving messages - constructor() { - this.broadcastChannel = new BroadcastChannel4("dees-comms"); - this.typedrouter = new dist_ts_exports15.TypedRouter(); - this.typedtarget = new dist_ts_exports15.TypedTarget({ - postMethodWithTypedRouter: async (messageArg) => { - this.postMessage(messageArg); - }, - typedRouterRef: this.typedrouter - }); - this.broadcastChannel.onmessage = async (eventArg) => { - const message2 = eventArg.method ? eventArg : eventArg.data; - console.log(JSON.stringify(message2)); - const response = await this.typedrouter.routeAndAddResponse(message2, { skipHooks: true }); - if (response && !response.error) { - this.postMessage(response); - } else { - } - }; - } - /** - * creates a typedrequest with this classes postMessage as postMethod - */ - createTypedRequest(methodName) { - const typedrequest = new dist_ts_exports15.TypedRequest(this.typedtarget, methodName); - return typedrequest; - } - /** - * posts a typedrequestmessage - */ - async postMessage(messageArg) { - this.broadcastChannel.postMessage(messageArg); - } - /** - * subscribe to messages - */ - async createTypedHandler(methodArg, handlerFunction) { - this.typedrouter.addTypedHandler(new dist_ts_exports15.TypedHandler(methodArg, handlerFunction)); - } - }; - } -}); - -// node_modules/.pnpm/@design.estate+dees-comms@1.0.30/node_modules/@design.estate/dees-comms/dist_ts/index.js -var dist_ts_exports16 = {}; -__export(dist_ts_exports16, { - DeesComms: () => DeesComms -}); -var init_dist_ts16 = __esm({ - "node_modules/.pnpm/@design.estate+dees-comms@1.0.30/node_modules/@design.estate/dees-comms/dist_ts/index.js"() { - init_dees_comms_classes_deescomms(); - } -}); - -// node_modules/.pnpm/js-yaml@3.14.2/node_modules/js-yaml/lib/js-yaml/common.js -var require_common = __commonJS({ - "node_modules/.pnpm/js-yaml@3.14.2/node_modules/js-yaml/lib/js-yaml/common.js"(exports, module) { - "use strict"; - function isNothing(subject) { - return typeof subject === "undefined" || subject === null; - } - function isObject4(subject) { - return typeof subject === "object" && subject !== null; - } - function toArray3(sequence) { - if (Array.isArray(sequence)) return sequence; - else if (isNothing(sequence)) return []; - return [sequence]; - } - function extend3(target, source) { - var index2, length, key2, sourceKeys; - if (source) { - sourceKeys = Object.keys(source); - for (index2 = 0, length = sourceKeys.length; index2 < length; index2 += 1) { - key2 = sourceKeys[index2]; - target[key2] = source[key2]; - } - } - return target; - } - function repeat3(string3, count2) { - var result = "", cycle; - for (cycle = 0; cycle < count2; cycle += 1) { - result += string3; - } - return result; - } - function isNegativeZero(number2) { - return number2 === 0 && Number.NEGATIVE_INFINITY === 1 / number2; - } - module.exports.isNothing = isNothing; - module.exports.isObject = isObject4; - module.exports.toArray = toArray3; - module.exports.repeat = repeat3; - module.exports.isNegativeZero = isNegativeZero; - module.exports.extend = extend3; - } -}); - -// node_modules/.pnpm/js-yaml@3.14.2/node_modules/js-yaml/lib/js-yaml/exception.js -var require_exception = __commonJS({ - "node_modules/.pnpm/js-yaml@3.14.2/node_modules/js-yaml/lib/js-yaml/exception.js"(exports, module) { - "use strict"; - function YAMLException(reason, mark2) { - Error.call(this); - this.name = "YAMLException"; - this.reason = reason; - this.mark = mark2; - this.message = (this.reason || "(unknown reason)") + (this.mark ? " " + this.mark.toString() : ""); - if (Error.captureStackTrace) { - Error.captureStackTrace(this, this.constructor); - } else { - this.stack = new Error().stack || ""; - } - } - YAMLException.prototype = Object.create(Error.prototype); - YAMLException.prototype.constructor = YAMLException; - YAMLException.prototype.toString = function toString3(compact) { - var result = this.name + ": "; - result += this.reason || "(unknown reason)"; - if (!compact && this.mark) { - result += " " + this.mark.toString(); - } - return result; - }; - module.exports = YAMLException; - } -}); - -// node_modules/.pnpm/js-yaml@3.14.2/node_modules/js-yaml/lib/js-yaml/mark.js -var require_mark = __commonJS({ - "node_modules/.pnpm/js-yaml@3.14.2/node_modules/js-yaml/lib/js-yaml/mark.js"(exports, module) { - "use strict"; - var common = require_common(); - function Mark(name, buffer2, position3, line, column) { - this.name = name; - this.buffer = buffer2; - this.position = position3; - this.line = line; - this.column = column; - } - Mark.prototype.getSnippet = function getSnippet(indent3, maxLength) { - var head2, start, tail, end3, snippet; - if (!this.buffer) return null; - indent3 = indent3 || 4; - maxLength = maxLength || 75; - head2 = ""; - start = this.position; - while (start > 0 && "\0\r\n\x85\u2028\u2029".indexOf(this.buffer.charAt(start - 1)) === -1) { - start -= 1; - if (this.position - start > maxLength / 2 - 1) { - head2 = " ... "; - start += 5; - break; - } - } - tail = ""; - end3 = this.position; - while (end3 < this.buffer.length && "\0\r\n\x85\u2028\u2029".indexOf(this.buffer.charAt(end3)) === -1) { - end3 += 1; - if (end3 - this.position > maxLength / 2 - 1) { - tail = " ... "; - end3 -= 5; - break; - } - } - snippet = this.buffer.slice(start, end3); - return common.repeat(" ", indent3) + head2 + snippet + tail + "\n" + common.repeat(" ", indent3 + this.position - start + head2.length) + "^"; - }; - Mark.prototype.toString = function toString3(compact) { - var snippet, where = ""; - if (this.name) { - where += 'in "' + this.name + '" '; - } - where += "at line " + (this.line + 1) + ", column " + (this.column + 1); - if (!compact) { - snippet = this.getSnippet(); - if (snippet) { - where += ":\n" + snippet; - } - } - return where; - }; - module.exports = Mark; - } -}); - -// node_modules/.pnpm/js-yaml@3.14.2/node_modules/js-yaml/lib/js-yaml/type.js -var require_type = __commonJS({ - "node_modules/.pnpm/js-yaml@3.14.2/node_modules/js-yaml/lib/js-yaml/type.js"(exports, module) { - "use strict"; - var YAMLException = require_exception(); - var TYPE_CONSTRUCTOR_OPTIONS = [ - "kind", - "resolve", - "construct", - "instanceOf", - "predicate", - "represent", - "defaultStyle", - "styleAliases" - ]; - var YAML_NODE_KINDS = [ - "scalar", - "sequence", - "mapping" - ]; - function compileStyleAliases(map7) { - var result = {}; - if (map7 !== null) { - Object.keys(map7).forEach(function(style) { - map7[style].forEach(function(alias) { - result[String(alias)] = style; - }); - }); - } - return result; - } - function Type(tag, options) { - options = options || {}; - Object.keys(options).forEach(function(name) { - if (TYPE_CONSTRUCTOR_OPTIONS.indexOf(name) === -1) { - throw new YAMLException('Unknown option "' + name + '" is met in definition of "' + tag + '" YAML type.'); - } - }); - this.tag = tag; - this.kind = options["kind"] || null; - this.resolve = options["resolve"] || function() { - return true; - }; - this.construct = options["construct"] || function(data8) { - return data8; - }; - this.instanceOf = options["instanceOf"] || null; - this.predicate = options["predicate"] || null; - this.represent = options["represent"] || null; - this.defaultStyle = options["defaultStyle"] || null; - this.styleAliases = compileStyleAliases(options["styleAliases"] || null); - if (YAML_NODE_KINDS.indexOf(this.kind) === -1) { - throw new YAMLException('Unknown kind "' + this.kind + '" is specified for "' + tag + '" YAML type.'); - } - } - module.exports = Type; - } -}); - -// node_modules/.pnpm/js-yaml@3.14.2/node_modules/js-yaml/lib/js-yaml/schema.js -var require_schema = __commonJS({ - "node_modules/.pnpm/js-yaml@3.14.2/node_modules/js-yaml/lib/js-yaml/schema.js"(exports, module) { - "use strict"; - var common = require_common(); - var YAMLException = require_exception(); - var Type = require_type(); - function compileList(schema, name, result) { - var exclude = []; - schema.include.forEach(function(includedSchema) { - result = compileList(includedSchema, name, result); - }); - schema[name].forEach(function(currentType) { - result.forEach(function(previousType, previousIndex) { - if (previousType.tag === currentType.tag && previousType.kind === currentType.kind) { - exclude.push(previousIndex); - } - }); - result.push(currentType); - }); - return result.filter(function(type5, index2) { - return exclude.indexOf(index2) === -1; - }); - } - function compileMap() { - var result = { - scalar: {}, - sequence: {}, - mapping: {}, - fallback: {} - }, index2, length; - function collectType(type5) { - result[type5.kind][type5.tag] = result["fallback"][type5.tag] = type5; - } - for (index2 = 0, length = arguments.length; index2 < length; index2 += 1) { - arguments[index2].forEach(collectType); - } - return result; - } - function Schema2(definition3) { - this.include = definition3.include || []; - this.implicit = definition3.implicit || []; - this.explicit = definition3.explicit || []; - this.implicit.forEach(function(type5) { - if (type5.loadKind && type5.loadKind !== "scalar") { - throw new YAMLException("There is a non-scalar type in the implicit list of a schema. Implicit resolving of such types is not supported."); - } - }); - this.compiledImplicit = compileList(this, "implicit", []); - this.compiledExplicit = compileList(this, "explicit", []); - this.compiledTypeMap = compileMap(this.compiledImplicit, this.compiledExplicit); - } - Schema2.DEFAULT = null; - Schema2.create = function createSchema() { - var schemas, types; - switch (arguments.length) { - case 1: - schemas = Schema2.DEFAULT; - types = arguments[0]; - break; - case 2: - schemas = arguments[0]; - types = arguments[1]; - break; - default: - throw new YAMLException("Wrong number of arguments for Schema.create function"); - } - schemas = common.toArray(schemas); - types = common.toArray(types); - if (!schemas.every(function(schema) { - return schema instanceof Schema2; - })) { - throw new YAMLException("Specified list of super schemas (or a single Schema object) contains a non-Schema object."); - } - if (!types.every(function(type5) { - return type5 instanceof Type; - })) { - throw new YAMLException("Specified list of YAML types (or a single Type object) contains a non-Type object."); - } - return new Schema2({ - include: schemas, - explicit: types - }); - }; - module.exports = Schema2; - } -}); - -// node_modules/.pnpm/js-yaml@3.14.2/node_modules/js-yaml/lib/js-yaml/type/str.js -var require_str = __commonJS({ - "node_modules/.pnpm/js-yaml@3.14.2/node_modules/js-yaml/lib/js-yaml/type/str.js"(exports, module) { - "use strict"; - var Type = require_type(); - module.exports = new Type("tag:yaml.org,2002:str", { - kind: "scalar", - construct: function(data8) { - return data8 !== null ? data8 : ""; - } - }); - } -}); - -// node_modules/.pnpm/js-yaml@3.14.2/node_modules/js-yaml/lib/js-yaml/type/seq.js -var require_seq = __commonJS({ - "node_modules/.pnpm/js-yaml@3.14.2/node_modules/js-yaml/lib/js-yaml/type/seq.js"(exports, module) { - "use strict"; - var Type = require_type(); - module.exports = new Type("tag:yaml.org,2002:seq", { - kind: "sequence", - construct: function(data8) { - return data8 !== null ? data8 : []; - } - }); - } -}); - -// node_modules/.pnpm/js-yaml@3.14.2/node_modules/js-yaml/lib/js-yaml/type/map.js -var require_map = __commonJS({ - "node_modules/.pnpm/js-yaml@3.14.2/node_modules/js-yaml/lib/js-yaml/type/map.js"(exports, module) { - "use strict"; - var Type = require_type(); - module.exports = new Type("tag:yaml.org,2002:map", { - kind: "mapping", - construct: function(data8) { - return data8 !== null ? data8 : {}; - } - }); - } -}); - -// node_modules/.pnpm/js-yaml@3.14.2/node_modules/js-yaml/lib/js-yaml/schema/failsafe.js -var require_failsafe = __commonJS({ - "node_modules/.pnpm/js-yaml@3.14.2/node_modules/js-yaml/lib/js-yaml/schema/failsafe.js"(exports, module) { - "use strict"; - var Schema2 = require_schema(); - module.exports = new Schema2({ - explicit: [ - require_str(), - require_seq(), - require_map() - ] - }); - } -}); - -// node_modules/.pnpm/js-yaml@3.14.2/node_modules/js-yaml/lib/js-yaml/type/null.js -var require_null = __commonJS({ - "node_modules/.pnpm/js-yaml@3.14.2/node_modules/js-yaml/lib/js-yaml/type/null.js"(exports, module) { - "use strict"; - var Type = require_type(); - function resolveYamlNull(data8) { - if (data8 === null) return true; - var max3 = data8.length; - return max3 === 1 && data8 === "~" || max3 === 4 && (data8 === "null" || data8 === "Null" || data8 === "NULL"); - } - function constructYamlNull() { - return null; - } - function isNull(object) { - return object === null; - } - module.exports = new Type("tag:yaml.org,2002:null", { - kind: "scalar", - resolve: resolveYamlNull, - construct: constructYamlNull, - predicate: isNull, - represent: { - canonical: function() { - return "~"; - }, - lowercase: function() { - return "null"; - }, - uppercase: function() { - return "NULL"; - }, - camelcase: function() { - return "Null"; - } - }, - defaultStyle: "lowercase" - }); - } -}); - -// node_modules/.pnpm/js-yaml@3.14.2/node_modules/js-yaml/lib/js-yaml/type/bool.js -var require_bool = __commonJS({ - "node_modules/.pnpm/js-yaml@3.14.2/node_modules/js-yaml/lib/js-yaml/type/bool.js"(exports, module) { - "use strict"; - var Type = require_type(); - function resolveYamlBoolean(data8) { - if (data8 === null) return false; - var max3 = data8.length; - return max3 === 4 && (data8 === "true" || data8 === "True" || data8 === "TRUE") || max3 === 5 && (data8 === "false" || data8 === "False" || data8 === "FALSE"); - } - function constructYamlBoolean(data8) { - return data8 === "true" || data8 === "True" || data8 === "TRUE"; - } - function isBoolean(object) { - return Object.prototype.toString.call(object) === "[object Boolean]"; - } - module.exports = new Type("tag:yaml.org,2002:bool", { - kind: "scalar", - resolve: resolveYamlBoolean, - construct: constructYamlBoolean, - predicate: isBoolean, - represent: { - lowercase: function(object) { - return object ? "true" : "false"; - }, - uppercase: function(object) { - return object ? "TRUE" : "FALSE"; - }, - camelcase: function(object) { - return object ? "True" : "False"; - } - }, - defaultStyle: "lowercase" - }); - } -}); - -// node_modules/.pnpm/js-yaml@3.14.2/node_modules/js-yaml/lib/js-yaml/type/int.js -var require_int = __commonJS({ - "node_modules/.pnpm/js-yaml@3.14.2/node_modules/js-yaml/lib/js-yaml/type/int.js"(exports, module) { - "use strict"; - var common = require_common(); - var Type = require_type(); - function isHexCode(c11) { - return 48 <= c11 && c11 <= 57 || 65 <= c11 && c11 <= 70 || 97 <= c11 && c11 <= 102; - } - function isOctCode(c11) { - return 48 <= c11 && c11 <= 55; - } - function isDecCode(c11) { - return 48 <= c11 && c11 <= 57; - } - function resolveYamlInteger(data8) { - if (data8 === null) return false; - var max3 = data8.length, index2 = 0, hasDigits = false, ch; - if (!max3) return false; - ch = data8[index2]; - if (ch === "-" || ch === "+") { - ch = data8[++index2]; - } - if (ch === "0") { - if (index2 + 1 === max3) return true; - ch = data8[++index2]; - if (ch === "b") { - index2++; - for (; index2 < max3; index2++) { - ch = data8[index2]; - if (ch === "_") continue; - if (ch !== "0" && ch !== "1") return false; - hasDigits = true; - } - return hasDigits && ch !== "_"; - } - if (ch === "x") { - index2++; - for (; index2 < max3; index2++) { - ch = data8[index2]; - if (ch === "_") continue; - if (!isHexCode(data8.charCodeAt(index2))) return false; - hasDigits = true; - } - return hasDigits && ch !== "_"; - } - for (; index2 < max3; index2++) { - ch = data8[index2]; - if (ch === "_") continue; - if (!isOctCode(data8.charCodeAt(index2))) return false; - hasDigits = true; - } - return hasDigits && ch !== "_"; - } - if (ch === "_") return false; - for (; index2 < max3; index2++) { - ch = data8[index2]; - if (ch === "_") continue; - if (ch === ":") break; - if (!isDecCode(data8.charCodeAt(index2))) { - return false; - } - hasDigits = true; - } - if (!hasDigits || ch === "_") return false; - if (ch !== ":") return true; - return /^(:[0-5]?[0-9])+$/.test(data8.slice(index2)); - } - function constructYamlInteger(data8) { - var value2 = data8, sign = 1, ch, base, digits = []; - if (value2.indexOf("_") !== -1) { - value2 = value2.replace(/_/g, ""); - } - ch = value2[0]; - if (ch === "-" || ch === "+") { - if (ch === "-") sign = -1; - value2 = value2.slice(1); - ch = value2[0]; - } - if (value2 === "0") return 0; - if (ch === "0") { - if (value2[1] === "b") return sign * parseInt(value2.slice(2), 2); - if (value2[1] === "x") return sign * parseInt(value2, 16); - return sign * parseInt(value2, 8); - } - if (value2.indexOf(":") !== -1) { - value2.split(":").forEach(function(v5) { - digits.unshift(parseInt(v5, 10)); - }); - value2 = 0; - base = 1; - digits.forEach(function(d5) { - value2 += d5 * base; - base *= 60; - }); - return sign * value2; - } - return sign * parseInt(value2, 10); - } - function isInteger(object) { - return Object.prototype.toString.call(object) === "[object Number]" && (object % 1 === 0 && !common.isNegativeZero(object)); - } - module.exports = new Type("tag:yaml.org,2002:int", { - kind: "scalar", - resolve: resolveYamlInteger, - construct: constructYamlInteger, - predicate: isInteger, - represent: { - binary: function(obj) { - return obj >= 0 ? "0b" + obj.toString(2) : "-0b" + obj.toString(2).slice(1); - }, - octal: function(obj) { - return obj >= 0 ? "0" + obj.toString(8) : "-0" + obj.toString(8).slice(1); - }, - decimal: function(obj) { - return obj.toString(10); - }, - /* eslint-disable max-len */ - hexadecimal: function(obj) { - return obj >= 0 ? "0x" + obj.toString(16).toUpperCase() : "-0x" + obj.toString(16).toUpperCase().slice(1); - } - }, - defaultStyle: "decimal", - styleAliases: { - binary: [2, "bin"], - octal: [8, "oct"], - decimal: [10, "dec"], - hexadecimal: [16, "hex"] - } - }); - } -}); - -// node_modules/.pnpm/js-yaml@3.14.2/node_modules/js-yaml/lib/js-yaml/type/float.js -var require_float = __commonJS({ - "node_modules/.pnpm/js-yaml@3.14.2/node_modules/js-yaml/lib/js-yaml/type/float.js"(exports, module) { - "use strict"; - var common = require_common(); - var Type = require_type(); - var YAML_FLOAT_PATTERN = new RegExp( - // 2.5e4, 2.5 and integers - "^(?:[-+]?(?:0|[1-9][0-9_]*)(?:\\.[0-9_]*)?(?:[eE][-+]?[0-9]+)?|\\.[0-9_]+(?:[eE][-+]?[0-9]+)?|[-+]?[0-9][0-9_]*(?::[0-5]?[0-9])+\\.[0-9_]*|[-+]?\\.(?:inf|Inf|INF)|\\.(?:nan|NaN|NAN))$" - ); - function resolveYamlFloat(data8) { - if (data8 === null) return false; - if (!YAML_FLOAT_PATTERN.test(data8) || // Quick hack to not allow integers end with `_` - // Probably should update regexp & check speed - data8[data8.length - 1] === "_") { - return false; - } - return true; - } - function constructYamlFloat(data8) { - var value2, sign, base, digits; - value2 = data8.replace(/_/g, "").toLowerCase(); - sign = value2[0] === "-" ? -1 : 1; - digits = []; - if ("+-".indexOf(value2[0]) >= 0) { - value2 = value2.slice(1); - } - if (value2 === ".inf") { - return sign === 1 ? Number.POSITIVE_INFINITY : Number.NEGATIVE_INFINITY; - } else if (value2 === ".nan") { - return NaN; - } else if (value2.indexOf(":") >= 0) { - value2.split(":").forEach(function(v5) { - digits.unshift(parseFloat(v5, 10)); - }); - value2 = 0; - base = 1; - digits.forEach(function(d5) { - value2 += d5 * base; - base *= 60; - }); - return sign * value2; - } - return sign * parseFloat(value2, 10); - } - var SCIENTIFIC_WITHOUT_DOT = /^[-+]?[0-9]+e/; - function representYamlFloat(object, style) { - var res; - if (isNaN(object)) { - switch (style) { - case "lowercase": - return ".nan"; - case "uppercase": - return ".NAN"; - case "camelcase": - return ".NaN"; - } - } else if (Number.POSITIVE_INFINITY === object) { - switch (style) { - case "lowercase": - return ".inf"; - case "uppercase": - return ".INF"; - case "camelcase": - return ".Inf"; - } - } else if (Number.NEGATIVE_INFINITY === object) { - switch (style) { - case "lowercase": - return "-.inf"; - case "uppercase": - return "-.INF"; - case "camelcase": - return "-.Inf"; - } - } else if (common.isNegativeZero(object)) { - return "-0.0"; - } - res = object.toString(10); - return SCIENTIFIC_WITHOUT_DOT.test(res) ? res.replace("e", ".e") : res; - } - function isFloat(object) { - return Object.prototype.toString.call(object) === "[object Number]" && (object % 1 !== 0 || common.isNegativeZero(object)); - } - module.exports = new Type("tag:yaml.org,2002:float", { - kind: "scalar", - resolve: resolveYamlFloat, - construct: constructYamlFloat, - predicate: isFloat, - represent: representYamlFloat, - defaultStyle: "lowercase" - }); - } -}); - -// node_modules/.pnpm/js-yaml@3.14.2/node_modules/js-yaml/lib/js-yaml/schema/json.js -var require_json = __commonJS({ - "node_modules/.pnpm/js-yaml@3.14.2/node_modules/js-yaml/lib/js-yaml/schema/json.js"(exports, module) { - "use strict"; - var Schema2 = require_schema(); - module.exports = new Schema2({ - include: [ - require_failsafe() - ], - implicit: [ - require_null(), - require_bool(), - require_int(), - require_float() - ] - }); - } -}); - -// node_modules/.pnpm/js-yaml@3.14.2/node_modules/js-yaml/lib/js-yaml/schema/core.js -var require_core = __commonJS({ - "node_modules/.pnpm/js-yaml@3.14.2/node_modules/js-yaml/lib/js-yaml/schema/core.js"(exports, module) { - "use strict"; - var Schema2 = require_schema(); - module.exports = new Schema2({ - include: [ - require_json() - ] - }); - } -}); - -// node_modules/.pnpm/js-yaml@3.14.2/node_modules/js-yaml/lib/js-yaml/type/timestamp.js -var require_timestamp = __commonJS({ - "node_modules/.pnpm/js-yaml@3.14.2/node_modules/js-yaml/lib/js-yaml/type/timestamp.js"(exports, module) { - "use strict"; - var Type = require_type(); - var YAML_DATE_REGEXP = new RegExp( - "^([0-9][0-9][0-9][0-9])-([0-9][0-9])-([0-9][0-9])$" - ); - var YAML_TIMESTAMP_REGEXP = new RegExp( - "^([0-9][0-9][0-9][0-9])-([0-9][0-9]?)-([0-9][0-9]?)(?:[Tt]|[ \\t]+)([0-9][0-9]?):([0-9][0-9]):([0-9][0-9])(?:\\.([0-9]*))?(?:[ \\t]*(Z|([-+])([0-9][0-9]?)(?::([0-9][0-9]))?))?$" - ); - function resolveYamlTimestamp(data8) { - if (data8 === null) return false; - if (YAML_DATE_REGEXP.exec(data8) !== null) return true; - if (YAML_TIMESTAMP_REGEXP.exec(data8) !== null) return true; - return false; - } - function constructYamlTimestamp(data8) { - var match2, year, month, day, hour, minute, second, fraction = 0, delta = null, tz_hour, tz_minute, date; - match2 = YAML_DATE_REGEXP.exec(data8); - if (match2 === null) match2 = YAML_TIMESTAMP_REGEXP.exec(data8); - if (match2 === null) throw new Error("Date resolve error"); - year = +match2[1]; - month = +match2[2] - 1; - day = +match2[3]; - if (!match2[4]) { - return new Date(Date.UTC(year, month, day)); - } - hour = +match2[4]; - minute = +match2[5]; - second = +match2[6]; - if (match2[7]) { - fraction = match2[7].slice(0, 3); - while (fraction.length < 3) { - fraction += "0"; - } - fraction = +fraction; - } - if (match2[9]) { - tz_hour = +match2[10]; - tz_minute = +(match2[11] || 0); - delta = (tz_hour * 60 + tz_minute) * 6e4; - if (match2[9] === "-") delta = -delta; - } - date = new Date(Date.UTC(year, month, day, hour, minute, second, fraction)); - if (delta) date.setTime(date.getTime() - delta); - return date; - } - function representYamlTimestamp(object) { - return object.toISOString(); - } - module.exports = new Type("tag:yaml.org,2002:timestamp", { - kind: "scalar", - resolve: resolveYamlTimestamp, - construct: constructYamlTimestamp, - instanceOf: Date, - represent: representYamlTimestamp - }); - } -}); - -// node_modules/.pnpm/js-yaml@3.14.2/node_modules/js-yaml/lib/js-yaml/type/merge.js -var require_merge = __commonJS({ - "node_modules/.pnpm/js-yaml@3.14.2/node_modules/js-yaml/lib/js-yaml/type/merge.js"(exports, module) { - "use strict"; - var Type = require_type(); - function resolveYamlMerge(data8) { - return data8 === "<<" || data8 === null; - } - module.exports = new Type("tag:yaml.org,2002:merge", { - kind: "scalar", - resolve: resolveYamlMerge - }); - } -}); - -// node_modules/.pnpm/js-yaml@3.14.2/node_modules/js-yaml/lib/js-yaml/type/binary.js -var require_binary = __commonJS({ - "node_modules/.pnpm/js-yaml@3.14.2/node_modules/js-yaml/lib/js-yaml/type/binary.js"(exports, module) { - "use strict"; - var NodeBuffer; - try { - _require = __require; - NodeBuffer = _require("buffer").Buffer; - } catch (__) { - } - var Type = require_type(); - var BASE64_MAP = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=\n\r"; - function resolveYamlBinary(data8) { - if (data8 === null) return false; - var code4, idx, bitlen = 0, max3 = data8.length, map7 = BASE64_MAP; - for (idx = 0; idx < max3; idx++) { - code4 = map7.indexOf(data8.charAt(idx)); - if (code4 > 64) continue; - if (code4 < 0) return false; - bitlen += 6; - } - return bitlen % 8 === 0; - } - function constructYamlBinary(data8) { - var idx, tailbits, input = data8.replace(/[\r\n=]/g, ""), max3 = input.length, map7 = BASE64_MAP, bits = 0, result = []; - for (idx = 0; idx < max3; idx++) { - if (idx % 4 === 0 && idx) { - result.push(bits >> 16 & 255); - result.push(bits >> 8 & 255); - result.push(bits & 255); - } - bits = bits << 6 | map7.indexOf(input.charAt(idx)); - } - tailbits = max3 % 4 * 6; - if (tailbits === 0) { - result.push(bits >> 16 & 255); - result.push(bits >> 8 & 255); - result.push(bits & 255); - } else if (tailbits === 18) { - result.push(bits >> 10 & 255); - result.push(bits >> 2 & 255); - } else if (tailbits === 12) { - result.push(bits >> 4 & 255); - } - if (NodeBuffer) { - return NodeBuffer.from ? NodeBuffer.from(result) : new NodeBuffer(result); - } - return result; - } - function representYamlBinary(object) { - var result = "", bits = 0, idx, tail, max3 = object.length, map7 = BASE64_MAP; - for (idx = 0; idx < max3; idx++) { - if (idx % 3 === 0 && idx) { - result += map7[bits >> 18 & 63]; - result += map7[bits >> 12 & 63]; - result += map7[bits >> 6 & 63]; - result += map7[bits & 63]; - } - bits = (bits << 8) + object[idx]; - } - tail = max3 % 3; - if (tail === 0) { - result += map7[bits >> 18 & 63]; - result += map7[bits >> 12 & 63]; - result += map7[bits >> 6 & 63]; - result += map7[bits & 63]; - } else if (tail === 2) { - result += map7[bits >> 10 & 63]; - result += map7[bits >> 4 & 63]; - result += map7[bits << 2 & 63]; - result += map7[64]; - } else if (tail === 1) { - result += map7[bits >> 2 & 63]; - result += map7[bits << 4 & 63]; - result += map7[64]; - result += map7[64]; - } - return result; - } - function isBinary(object) { - return NodeBuffer && NodeBuffer.isBuffer(object); - } - module.exports = new Type("tag:yaml.org,2002:binary", { - kind: "scalar", - resolve: resolveYamlBinary, - construct: constructYamlBinary, - predicate: isBinary, - represent: representYamlBinary - }); - var _require; - } -}); - -// node_modules/.pnpm/js-yaml@3.14.2/node_modules/js-yaml/lib/js-yaml/type/omap.js -var require_omap = __commonJS({ - "node_modules/.pnpm/js-yaml@3.14.2/node_modules/js-yaml/lib/js-yaml/type/omap.js"(exports, module) { - "use strict"; - var Type = require_type(); - var _hasOwnProperty = Object.prototype.hasOwnProperty; - var _toString = Object.prototype.toString; - function resolveYamlOmap(data8) { - if (data8 === null) return true; - var objectKeys = [], index2, length, pair, pairKey, pairHasKey, object = data8; - for (index2 = 0, length = object.length; index2 < length; index2 += 1) { - pair = object[index2]; - pairHasKey = false; - if (_toString.call(pair) !== "[object Object]") return false; - for (pairKey in pair) { - if (_hasOwnProperty.call(pair, pairKey)) { - if (!pairHasKey) pairHasKey = true; - else return false; - } - } - if (!pairHasKey) return false; - if (objectKeys.indexOf(pairKey) === -1) objectKeys.push(pairKey); - else return false; - } - return true; - } - function constructYamlOmap(data8) { - return data8 !== null ? data8 : []; - } - module.exports = new Type("tag:yaml.org,2002:omap", { - kind: "sequence", - resolve: resolveYamlOmap, - construct: constructYamlOmap - }); - } -}); - -// node_modules/.pnpm/js-yaml@3.14.2/node_modules/js-yaml/lib/js-yaml/type/pairs.js -var require_pairs = __commonJS({ - "node_modules/.pnpm/js-yaml@3.14.2/node_modules/js-yaml/lib/js-yaml/type/pairs.js"(exports, module) { - "use strict"; - var Type = require_type(); - var _toString = Object.prototype.toString; - function resolveYamlPairs(data8) { - if (data8 === null) return true; - var index2, length, pair, keys2, result, object = data8; - result = new Array(object.length); - for (index2 = 0, length = object.length; index2 < length; index2 += 1) { - pair = object[index2]; - if (_toString.call(pair) !== "[object Object]") return false; - keys2 = Object.keys(pair); - if (keys2.length !== 1) return false; - result[index2] = [keys2[0], pair[keys2[0]]]; - } - return true; - } - function constructYamlPairs(data8) { - if (data8 === null) return []; - var index2, length, pair, keys2, result, object = data8; - result = new Array(object.length); - for (index2 = 0, length = object.length; index2 < length; index2 += 1) { - pair = object[index2]; - keys2 = Object.keys(pair); - result[index2] = [keys2[0], pair[keys2[0]]]; - } - return result; - } - module.exports = new Type("tag:yaml.org,2002:pairs", { - kind: "sequence", - resolve: resolveYamlPairs, - construct: constructYamlPairs - }); - } -}); - -// node_modules/.pnpm/js-yaml@3.14.2/node_modules/js-yaml/lib/js-yaml/type/set.js -var require_set = __commonJS({ - "node_modules/.pnpm/js-yaml@3.14.2/node_modules/js-yaml/lib/js-yaml/type/set.js"(exports, module) { - "use strict"; - var Type = require_type(); - var _hasOwnProperty = Object.prototype.hasOwnProperty; - function resolveYamlSet(data8) { - if (data8 === null) return true; - var key2, object = data8; - for (key2 in object) { - if (_hasOwnProperty.call(object, key2)) { - if (object[key2] !== null) return false; - } - } - return true; - } - function constructYamlSet(data8) { - return data8 !== null ? data8 : {}; - } - module.exports = new Type("tag:yaml.org,2002:set", { - kind: "mapping", - resolve: resolveYamlSet, - construct: constructYamlSet - }); - } -}); - -// node_modules/.pnpm/js-yaml@3.14.2/node_modules/js-yaml/lib/js-yaml/schema/default_safe.js -var require_default_safe = __commonJS({ - "node_modules/.pnpm/js-yaml@3.14.2/node_modules/js-yaml/lib/js-yaml/schema/default_safe.js"(exports, module) { - "use strict"; - var Schema2 = require_schema(); - module.exports = new Schema2({ - include: [ - require_core() - ], - implicit: [ - require_timestamp(), - require_merge() - ], - explicit: [ - require_binary(), - require_omap(), - require_pairs(), - require_set() - ] - }); - } -}); - -// node_modules/.pnpm/js-yaml@3.14.2/node_modules/js-yaml/lib/js-yaml/type/js/undefined.js -var require_undefined = __commonJS({ - "node_modules/.pnpm/js-yaml@3.14.2/node_modules/js-yaml/lib/js-yaml/type/js/undefined.js"(exports, module) { - "use strict"; - var Type = require_type(); - function resolveJavascriptUndefined() { - return true; - } - function constructJavascriptUndefined() { - return void 0; - } - function representJavascriptUndefined() { - return ""; - } - function isUndefined(object) { - return typeof object === "undefined"; - } - module.exports = new Type("tag:yaml.org,2002:js/undefined", { - kind: "scalar", - resolve: resolveJavascriptUndefined, - construct: constructJavascriptUndefined, - predicate: isUndefined, - represent: representJavascriptUndefined - }); - } -}); - -// node_modules/.pnpm/js-yaml@3.14.2/node_modules/js-yaml/lib/js-yaml/type/js/regexp.js -var require_regexp = __commonJS({ - "node_modules/.pnpm/js-yaml@3.14.2/node_modules/js-yaml/lib/js-yaml/type/js/regexp.js"(exports, module) { - "use strict"; - var Type = require_type(); - function resolveJavascriptRegExp(data8) { - if (data8 === null) return false; - if (data8.length === 0) return false; - var regexp = data8, tail = /\/([gim]*)$/.exec(data8), modifiers = ""; - if (regexp[0] === "/") { - if (tail) modifiers = tail[1]; - if (modifiers.length > 3) return false; - if (regexp[regexp.length - modifiers.length - 1] !== "/") return false; - } - return true; - } - function constructJavascriptRegExp(data8) { - var regexp = data8, tail = /\/([gim]*)$/.exec(data8), modifiers = ""; - if (regexp[0] === "/") { - if (tail) modifiers = tail[1]; - regexp = regexp.slice(1, regexp.length - modifiers.length - 1); - } - return new RegExp(regexp, modifiers); - } - function representJavascriptRegExp(object) { - var result = "/" + object.source + "/"; - if (object.global) result += "g"; - if (object.multiline) result += "m"; - if (object.ignoreCase) result += "i"; - return result; - } - function isRegExp(object) { - return Object.prototype.toString.call(object) === "[object RegExp]"; - } - module.exports = new Type("tag:yaml.org,2002:js/regexp", { - kind: "scalar", - resolve: resolveJavascriptRegExp, - construct: constructJavascriptRegExp, - predicate: isRegExp, - represent: representJavascriptRegExp - }); - } -}); - -// node_modules/.pnpm/js-yaml@3.14.2/node_modules/js-yaml/lib/js-yaml/type/js/function.js -var require_function = __commonJS({ - "node_modules/.pnpm/js-yaml@3.14.2/node_modules/js-yaml/lib/js-yaml/type/js/function.js"(exports, module) { - "use strict"; - var esprima; - try { - _require = __require; - esprima = _require("esprima"); - } catch (_4) { - if (typeof window !== "undefined") esprima = window.esprima; - } - var Type = require_type(); - function resolveJavascriptFunction(data8) { - if (data8 === null) return false; - try { - var source = "(" + data8 + ")", ast = esprima.parse(source, { range: true }); - if (ast.type !== "Program" || ast.body.length !== 1 || ast.body[0].type !== "ExpressionStatement" || ast.body[0].expression.type !== "ArrowFunctionExpression" && ast.body[0].expression.type !== "FunctionExpression") { - return false; - } - return true; - } catch (err) { - return false; - } - } - function constructJavascriptFunction(data8) { - var source = "(" + data8 + ")", ast = esprima.parse(source, { range: true }), params2 = [], body3; - if (ast.type !== "Program" || ast.body.length !== 1 || ast.body[0].type !== "ExpressionStatement" || ast.body[0].expression.type !== "ArrowFunctionExpression" && ast.body[0].expression.type !== "FunctionExpression") { - throw new Error("Failed to resolve function"); - } - ast.body[0].expression.params.forEach(function(param) { - params2.push(param.name); - }); - body3 = ast.body[0].expression.body.range; - if (ast.body[0].expression.body.type === "BlockStatement") { - return new Function(params2, source.slice(body3[0] + 1, body3[1] - 1)); - } - return new Function(params2, "return " + source.slice(body3[0], body3[1])); - } - function representJavascriptFunction(object) { - return object.toString(); - } - function isFunction2(object) { - return Object.prototype.toString.call(object) === "[object Function]"; - } - module.exports = new Type("tag:yaml.org,2002:js/function", { - kind: "scalar", - resolve: resolveJavascriptFunction, - construct: constructJavascriptFunction, - predicate: isFunction2, - represent: representJavascriptFunction - }); - var _require; - } -}); - -// node_modules/.pnpm/js-yaml@3.14.2/node_modules/js-yaml/lib/js-yaml/schema/default_full.js -var require_default_full = __commonJS({ - "node_modules/.pnpm/js-yaml@3.14.2/node_modules/js-yaml/lib/js-yaml/schema/default_full.js"(exports, module) { - "use strict"; - var Schema2 = require_schema(); - module.exports = Schema2.DEFAULT = new Schema2({ - include: [ - require_default_safe() - ], - explicit: [ - require_undefined(), - require_regexp(), - require_function() - ] - }); - } -}); - -// node_modules/.pnpm/js-yaml@3.14.2/node_modules/js-yaml/lib/js-yaml/loader.js -var require_loader = __commonJS({ - "node_modules/.pnpm/js-yaml@3.14.2/node_modules/js-yaml/lib/js-yaml/loader.js"(exports, module) { - "use strict"; - var common = require_common(); - var YAMLException = require_exception(); - var Mark = require_mark(); - var DEFAULT_SAFE_SCHEMA = require_default_safe(); - var DEFAULT_FULL_SCHEMA = require_default_full(); - var _hasOwnProperty = Object.prototype.hasOwnProperty; - var CONTEXT_FLOW_IN = 1; - var CONTEXT_FLOW_OUT = 2; - var CONTEXT_BLOCK_IN = 3; - var CONTEXT_BLOCK_OUT = 4; - var CHOMPING_CLIP = 1; - var CHOMPING_STRIP = 2; - var CHOMPING_KEEP = 3; - var PATTERN_NON_PRINTABLE = /[\x00-\x08\x0B\x0C\x0E-\x1F\x7F-\x84\x86-\x9F\uFFFE\uFFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF]/; - var PATTERN_NON_ASCII_LINE_BREAKS = /[\x85\u2028\u2029]/; - var PATTERN_FLOW_INDICATORS = /[,\[\]\{\}]/; - var PATTERN_TAG_HANDLE = /^(?:!|!!|![a-z\-]+!)$/i; - var PATTERN_TAG_URI = /^(?:!|[^,\[\]\{\}])(?:%[0-9a-f]{2}|[0-9a-z\-#;\/\?:@&=\+\$,_\.!~\*'\(\)\[\]])*$/i; - function _class(obj) { - return Object.prototype.toString.call(obj); - } - function is_EOL(c11) { - return c11 === 10 || c11 === 13; - } - function is_WHITE_SPACE(c11) { - return c11 === 9 || c11 === 32; - } - function is_WS_OR_EOL(c11) { - return c11 === 9 || c11 === 32 || c11 === 10 || c11 === 13; - } - function is_FLOW_INDICATOR(c11) { - return c11 === 44 || c11 === 91 || c11 === 93 || c11 === 123 || c11 === 125; - } - function fromHexCode(c11) { - var lc; - if (48 <= c11 && c11 <= 57) { - return c11 - 48; - } - lc = c11 | 32; - if (97 <= lc && lc <= 102) { - return lc - 97 + 10; - } - return -1; - } - function escapedHexLen(c11) { - if (c11 === 120) { - return 2; - } - if (c11 === 117) { - return 4; - } - if (c11 === 85) { - return 8; - } - return 0; - } - function fromDecimalCode(c11) { - if (48 <= c11 && c11 <= 57) { - return c11 - 48; - } - return -1; - } - function simpleEscapeSequence(c11) { - return c11 === 48 ? "\0" : c11 === 97 ? "\x07" : c11 === 98 ? "\b" : c11 === 116 ? " " : c11 === 9 ? " " : c11 === 110 ? "\n" : c11 === 118 ? "\v" : c11 === 102 ? "\f" : c11 === 114 ? "\r" : c11 === 101 ? "\x1B" : c11 === 32 ? " " : c11 === 34 ? '"' : c11 === 47 ? "/" : c11 === 92 ? "\\" : c11 === 78 ? "\x85" : c11 === 95 ? "\xA0" : c11 === 76 ? "\u2028" : c11 === 80 ? "\u2029" : ""; - } - function charFromCodepoint(c11) { - if (c11 <= 65535) { - return String.fromCharCode(c11); - } - return String.fromCharCode( - (c11 - 65536 >> 10) + 55296, - (c11 - 65536 & 1023) + 56320 - ); - } - function setProperty(object, key2, value2) { - if (key2 === "__proto__") { - Object.defineProperty(object, key2, { - configurable: true, - enumerable: true, - writable: true, - value: value2 - }); - } else { - object[key2] = value2; - } - } - var simpleEscapeCheck = new Array(256); - var simpleEscapeMap = new Array(256); - for (i11 = 0; i11 < 256; i11++) { - simpleEscapeCheck[i11] = simpleEscapeSequence(i11) ? 1 : 0; - simpleEscapeMap[i11] = simpleEscapeSequence(i11); - } - function State(input, options) { - this.input = input; - this.filename = options["filename"] || null; - this.schema = options["schema"] || DEFAULT_FULL_SCHEMA; - this.onWarning = options["onWarning"] || null; - this.legacy = options["legacy"] || false; - this.json = options["json"] || false; - this.listener = options["listener"] || null; - this.implicitTypes = this.schema.compiledImplicit; - this.typeMap = this.schema.compiledTypeMap; - this.length = input.length; - this.position = 0; - this.line = 0; - this.lineStart = 0; - this.lineIndent = 0; - this.documents = []; - } - function generateError(state, message2) { - return new YAMLException( - message2, - new Mark(state.filename, state.input, state.position, state.line, state.position - state.lineStart) - ); - } - function throwError2(state, message2) { - throw generateError(state, message2); - } - function throwWarning(state, message2) { - if (state.onWarning) { - state.onWarning.call(null, generateError(state, message2)); - } - } - var directiveHandlers = { - YAML: function handleYamlDirective(state, name, args) { - var match2, major, minor; - if (state.version !== null) { - throwError2(state, "duplication of %YAML directive"); - } - if (args.length !== 1) { - throwError2(state, "YAML directive accepts exactly one argument"); - } - match2 = /^([0-9]+)\.([0-9]+)$/.exec(args[0]); - if (match2 === null) { - throwError2(state, "ill-formed argument of the YAML directive"); - } - major = parseInt(match2[1], 10); - minor = parseInt(match2[2], 10); - if (major !== 1) { - throwError2(state, "unacceptable YAML version of the document"); - } - state.version = args[0]; - state.checkLineBreaks = minor < 2; - if (minor !== 1 && minor !== 2) { - throwWarning(state, "unsupported YAML version of the document"); - } - }, - TAG: function handleTagDirective(state, name, args) { - var handle3, prefix4; - if (args.length !== 2) { - throwError2(state, "TAG directive accepts exactly two arguments"); - } - handle3 = args[0]; - prefix4 = args[1]; - if (!PATTERN_TAG_HANDLE.test(handle3)) { - throwError2(state, "ill-formed tag handle (first argument) of the TAG directive"); - } - if (_hasOwnProperty.call(state.tagMap, handle3)) { - throwError2(state, 'there is a previously declared suffix for "' + handle3 + '" tag handle'); - } - if (!PATTERN_TAG_URI.test(prefix4)) { - throwError2(state, "ill-formed tag prefix (second argument) of the TAG directive"); - } - state.tagMap[handle3] = prefix4; - } - }; - function captureSegment(state, start, end3, checkJson) { - var _position, _length, _character, _result; - if (start < end3) { - _result = state.input.slice(start, end3); - if (checkJson) { - for (_position = 0, _length = _result.length; _position < _length; _position += 1) { - _character = _result.charCodeAt(_position); - if (!(_character === 9 || 32 <= _character && _character <= 1114111)) { - throwError2(state, "expected valid JSON character"); - } - } - } else if (PATTERN_NON_PRINTABLE.test(_result)) { - throwError2(state, "the stream contains non-printable characters"); - } - state.result += _result; - } - } - function mergeMappings(state, destination, source, overridableKeys) { - var sourceKeys, key2, index2, quantity; - if (!common.isObject(source)) { - throwError2(state, "cannot merge mappings; the provided source object is unacceptable"); - } - sourceKeys = Object.keys(source); - for (index2 = 0, quantity = sourceKeys.length; index2 < quantity; index2 += 1) { - key2 = sourceKeys[index2]; - if (!_hasOwnProperty.call(destination, key2)) { - setProperty(destination, key2, source[key2]); - overridableKeys[key2] = true; - } - } - } - function storeMappingPair(state, _result, overridableKeys, keyTag, keyNode, valueNode, startLine, startPos) { - var index2, quantity; - if (Array.isArray(keyNode)) { - keyNode = Array.prototype.slice.call(keyNode); - for (index2 = 0, quantity = keyNode.length; index2 < quantity; index2 += 1) { - if (Array.isArray(keyNode[index2])) { - throwError2(state, "nested arrays are not supported inside keys"); - } - if (typeof keyNode === "object" && _class(keyNode[index2]) === "[object Object]") { - keyNode[index2] = "[object Object]"; - } - } - } - if (typeof keyNode === "object" && _class(keyNode) === "[object Object]") { - keyNode = "[object Object]"; - } - keyNode = String(keyNode); - if (_result === null) { - _result = {}; - } - if (keyTag === "tag:yaml.org,2002:merge") { - if (Array.isArray(valueNode)) { - for (index2 = 0, quantity = valueNode.length; index2 < quantity; index2 += 1) { - mergeMappings(state, _result, valueNode[index2], overridableKeys); - } - } else { - mergeMappings(state, _result, valueNode, overridableKeys); - } - } else { - if (!state.json && !_hasOwnProperty.call(overridableKeys, keyNode) && _hasOwnProperty.call(_result, keyNode)) { - state.line = startLine || state.line; - state.position = startPos || state.position; - throwError2(state, "duplicated mapping key"); - } - setProperty(_result, keyNode, valueNode); - delete overridableKeys[keyNode]; - } - return _result; - } - function readLineBreak(state) { - var ch; - ch = state.input.charCodeAt(state.position); - if (ch === 10) { - state.position++; - } else if (ch === 13) { - state.position++; - if (state.input.charCodeAt(state.position) === 10) { - state.position++; - } - } else { - throwError2(state, "a line break is expected"); - } - state.line += 1; - state.lineStart = state.position; - } - function skipSeparationSpace(state, allowComments, checkIndent) { - var lineBreaks = 0, ch = state.input.charCodeAt(state.position); - while (ch !== 0) { - while (is_WHITE_SPACE(ch)) { - ch = state.input.charCodeAt(++state.position); - } - if (allowComments && ch === 35) { - do { - ch = state.input.charCodeAt(++state.position); - } while (ch !== 10 && ch !== 13 && ch !== 0); - } - if (is_EOL(ch)) { - readLineBreak(state); - ch = state.input.charCodeAt(state.position); - lineBreaks++; - state.lineIndent = 0; - while (ch === 32) { - state.lineIndent++; - ch = state.input.charCodeAt(++state.position); - } - } else { - break; - } - } - if (checkIndent !== -1 && lineBreaks !== 0 && state.lineIndent < checkIndent) { - throwWarning(state, "deficient indentation"); - } - return lineBreaks; - } - function testDocumentSeparator(state) { - var _position = state.position, ch; - ch = state.input.charCodeAt(_position); - if ((ch === 45 || ch === 46) && ch === state.input.charCodeAt(_position + 1) && ch === state.input.charCodeAt(_position + 2)) { - _position += 3; - ch = state.input.charCodeAt(_position); - if (ch === 0 || is_WS_OR_EOL(ch)) { - return true; - } - } - return false; - } - function writeFoldedLines(state, count2) { - if (count2 === 1) { - state.result += " "; - } else if (count2 > 1) { - state.result += common.repeat("\n", count2 - 1); - } - } - function readPlainScalar(state, nodeIndent, withinFlowCollection) { - var preceding, following, captureStart, captureEnd, hasPendingContent, _line, _lineStart, _lineIndent, _kind = state.kind, _result = state.result, ch; - ch = state.input.charCodeAt(state.position); - if (is_WS_OR_EOL(ch) || is_FLOW_INDICATOR(ch) || ch === 35 || ch === 38 || ch === 42 || ch === 33 || ch === 124 || ch === 62 || ch === 39 || ch === 34 || ch === 37 || ch === 64 || ch === 96) { - return false; - } - if (ch === 63 || ch === 45) { - following = state.input.charCodeAt(state.position + 1); - if (is_WS_OR_EOL(following) || withinFlowCollection && is_FLOW_INDICATOR(following)) { - return false; - } - } - state.kind = "scalar"; - state.result = ""; - captureStart = captureEnd = state.position; - hasPendingContent = false; - while (ch !== 0) { - if (ch === 58) { - following = state.input.charCodeAt(state.position + 1); - if (is_WS_OR_EOL(following) || withinFlowCollection && is_FLOW_INDICATOR(following)) { - break; - } - } else if (ch === 35) { - preceding = state.input.charCodeAt(state.position - 1); - if (is_WS_OR_EOL(preceding)) { - break; - } - } else if (state.position === state.lineStart && testDocumentSeparator(state) || withinFlowCollection && is_FLOW_INDICATOR(ch)) { - break; - } else if (is_EOL(ch)) { - _line = state.line; - _lineStart = state.lineStart; - _lineIndent = state.lineIndent; - skipSeparationSpace(state, false, -1); - if (state.lineIndent >= nodeIndent) { - hasPendingContent = true; - ch = state.input.charCodeAt(state.position); - continue; - } else { - state.position = captureEnd; - state.line = _line; - state.lineStart = _lineStart; - state.lineIndent = _lineIndent; - break; - } - } - if (hasPendingContent) { - captureSegment(state, captureStart, captureEnd, false); - writeFoldedLines(state, state.line - _line); - captureStart = captureEnd = state.position; - hasPendingContent = false; - } - if (!is_WHITE_SPACE(ch)) { - captureEnd = state.position + 1; - } - ch = state.input.charCodeAt(++state.position); - } - captureSegment(state, captureStart, captureEnd, false); - if (state.result) { - return true; - } - state.kind = _kind; - state.result = _result; - return false; - } - function readSingleQuotedScalar(state, nodeIndent) { - var ch, captureStart, captureEnd; - ch = state.input.charCodeAt(state.position); - if (ch !== 39) { - return false; - } - state.kind = "scalar"; - state.result = ""; - state.position++; - captureStart = captureEnd = state.position; - while ((ch = state.input.charCodeAt(state.position)) !== 0) { - if (ch === 39) { - captureSegment(state, captureStart, state.position, true); - ch = state.input.charCodeAt(++state.position); - if (ch === 39) { - captureStart = state.position; - state.position++; - captureEnd = state.position; - } else { - return true; - } - } else if (is_EOL(ch)) { - captureSegment(state, captureStart, captureEnd, true); - writeFoldedLines(state, skipSeparationSpace(state, false, nodeIndent)); - captureStart = captureEnd = state.position; - } else if (state.position === state.lineStart && testDocumentSeparator(state)) { - throwError2(state, "unexpected end of the document within a single quoted scalar"); - } else { - state.position++; - captureEnd = state.position; - } - } - throwError2(state, "unexpected end of the stream within a single quoted scalar"); - } - function readDoubleQuotedScalar(state, nodeIndent) { - var captureStart, captureEnd, hexLength, hexResult, tmp, ch; - ch = state.input.charCodeAt(state.position); - if (ch !== 34) { - return false; - } - state.kind = "scalar"; - state.result = ""; - state.position++; - captureStart = captureEnd = state.position; - while ((ch = state.input.charCodeAt(state.position)) !== 0) { - if (ch === 34) { - captureSegment(state, captureStart, state.position, true); - state.position++; - return true; - } else if (ch === 92) { - captureSegment(state, captureStart, state.position, true); - ch = state.input.charCodeAt(++state.position); - if (is_EOL(ch)) { - skipSeparationSpace(state, false, nodeIndent); - } else if (ch < 256 && simpleEscapeCheck[ch]) { - state.result += simpleEscapeMap[ch]; - state.position++; - } else if ((tmp = escapedHexLen(ch)) > 0) { - hexLength = tmp; - hexResult = 0; - for (; hexLength > 0; hexLength--) { - ch = state.input.charCodeAt(++state.position); - if ((tmp = fromHexCode(ch)) >= 0) { - hexResult = (hexResult << 4) + tmp; - } else { - throwError2(state, "expected hexadecimal character"); - } - } - state.result += charFromCodepoint(hexResult); - state.position++; - } else { - throwError2(state, "unknown escape sequence"); - } - captureStart = captureEnd = state.position; - } else if (is_EOL(ch)) { - captureSegment(state, captureStart, captureEnd, true); - writeFoldedLines(state, skipSeparationSpace(state, false, nodeIndent)); - captureStart = captureEnd = state.position; - } else if (state.position === state.lineStart && testDocumentSeparator(state)) { - throwError2(state, "unexpected end of the document within a double quoted scalar"); - } else { - state.position++; - captureEnd = state.position; - } - } - throwError2(state, "unexpected end of the stream within a double quoted scalar"); - } - function readFlowCollection(state, nodeIndent) { - var readNext = true, _line, _tag = state.tag, _result, _anchor = state.anchor, following, terminator, isPair, isExplicitPair, isMapping, overridableKeys = {}, keyNode, keyTag, valueNode, ch; - ch = state.input.charCodeAt(state.position); - if (ch === 91) { - terminator = 93; - isMapping = false; - _result = []; - } else if (ch === 123) { - terminator = 125; - isMapping = true; - _result = {}; - } else { - return false; - } - if (state.anchor !== null) { - state.anchorMap[state.anchor] = _result; - } - ch = state.input.charCodeAt(++state.position); - while (ch !== 0) { - skipSeparationSpace(state, true, nodeIndent); - ch = state.input.charCodeAt(state.position); - if (ch === terminator) { - state.position++; - state.tag = _tag; - state.anchor = _anchor; - state.kind = isMapping ? "mapping" : "sequence"; - state.result = _result; - return true; - } else if (!readNext) { - throwError2(state, "missed comma between flow collection entries"); - } - keyTag = keyNode = valueNode = null; - isPair = isExplicitPair = false; - if (ch === 63) { - following = state.input.charCodeAt(state.position + 1); - if (is_WS_OR_EOL(following)) { - isPair = isExplicitPair = true; - state.position++; - skipSeparationSpace(state, true, nodeIndent); - } - } - _line = state.line; - composeNode(state, nodeIndent, CONTEXT_FLOW_IN, false, true); - keyTag = state.tag; - keyNode = state.result; - skipSeparationSpace(state, true, nodeIndent); - ch = state.input.charCodeAt(state.position); - if ((isExplicitPair || state.line === _line) && ch === 58) { - isPair = true; - ch = state.input.charCodeAt(++state.position); - skipSeparationSpace(state, true, nodeIndent); - composeNode(state, nodeIndent, CONTEXT_FLOW_IN, false, true); - valueNode = state.result; - } - if (isMapping) { - storeMappingPair(state, _result, overridableKeys, keyTag, keyNode, valueNode); - } else if (isPair) { - _result.push(storeMappingPair(state, null, overridableKeys, keyTag, keyNode, valueNode)); - } else { - _result.push(keyNode); - } - skipSeparationSpace(state, true, nodeIndent); - ch = state.input.charCodeAt(state.position); - if (ch === 44) { - readNext = true; - ch = state.input.charCodeAt(++state.position); - } else { - readNext = false; - } - } - throwError2(state, "unexpected end of the stream within a flow collection"); - } - function readBlockScalar(state, nodeIndent) { - var captureStart, folding, chomping = CHOMPING_CLIP, didReadContent = false, detectedIndent = false, textIndent = nodeIndent, emptyLines = 0, atMoreIndented = false, tmp, ch; - ch = state.input.charCodeAt(state.position); - if (ch === 124) { - folding = false; - } else if (ch === 62) { - folding = true; - } else { - return false; - } - state.kind = "scalar"; - state.result = ""; - while (ch !== 0) { - ch = state.input.charCodeAt(++state.position); - if (ch === 43 || ch === 45) { - if (CHOMPING_CLIP === chomping) { - chomping = ch === 43 ? CHOMPING_KEEP : CHOMPING_STRIP; - } else { - throwError2(state, "repeat of a chomping mode identifier"); - } - } else if ((tmp = fromDecimalCode(ch)) >= 0) { - if (tmp === 0) { - throwError2(state, "bad explicit indentation width of a block scalar; it cannot be less than one"); - } else if (!detectedIndent) { - textIndent = nodeIndent + tmp - 1; - detectedIndent = true; - } else { - throwError2(state, "repeat of an indentation width identifier"); - } - } else { - break; - } - } - if (is_WHITE_SPACE(ch)) { - do { - ch = state.input.charCodeAt(++state.position); - } while (is_WHITE_SPACE(ch)); - if (ch === 35) { - do { - ch = state.input.charCodeAt(++state.position); - } while (!is_EOL(ch) && ch !== 0); - } - } - while (ch !== 0) { - readLineBreak(state); - state.lineIndent = 0; - ch = state.input.charCodeAt(state.position); - while ((!detectedIndent || state.lineIndent < textIndent) && ch === 32) { - state.lineIndent++; - ch = state.input.charCodeAt(++state.position); - } - if (!detectedIndent && state.lineIndent > textIndent) { - textIndent = state.lineIndent; - } - if (is_EOL(ch)) { - emptyLines++; - continue; - } - if (state.lineIndent < textIndent) { - if (chomping === CHOMPING_KEEP) { - state.result += common.repeat("\n", didReadContent ? 1 + emptyLines : emptyLines); - } else if (chomping === CHOMPING_CLIP) { - if (didReadContent) { - state.result += "\n"; - } - } - break; - } - if (folding) { - if (is_WHITE_SPACE(ch)) { - atMoreIndented = true; - state.result += common.repeat("\n", didReadContent ? 1 + emptyLines : emptyLines); - } else if (atMoreIndented) { - atMoreIndented = false; - state.result += common.repeat("\n", emptyLines + 1); - } else if (emptyLines === 0) { - if (didReadContent) { - state.result += " "; - } - } else { - state.result += common.repeat("\n", emptyLines); - } - } else { - state.result += common.repeat("\n", didReadContent ? 1 + emptyLines : emptyLines); - } - didReadContent = true; - detectedIndent = true; - emptyLines = 0; - captureStart = state.position; - while (!is_EOL(ch) && ch !== 0) { - ch = state.input.charCodeAt(++state.position); - } - captureSegment(state, captureStart, state.position, false); - } - return true; - } - function readBlockSequence(state, nodeIndent) { - var _line, _tag = state.tag, _anchor = state.anchor, _result = [], following, detected = false, ch; - if (state.anchor !== null) { - state.anchorMap[state.anchor] = _result; - } - ch = state.input.charCodeAt(state.position); - while (ch !== 0) { - if (ch !== 45) { - break; - } - following = state.input.charCodeAt(state.position + 1); - if (!is_WS_OR_EOL(following)) { - break; - } - detected = true; - state.position++; - if (skipSeparationSpace(state, true, -1)) { - if (state.lineIndent <= nodeIndent) { - _result.push(null); - ch = state.input.charCodeAt(state.position); - continue; - } - } - _line = state.line; - composeNode(state, nodeIndent, CONTEXT_BLOCK_IN, false, true); - _result.push(state.result); - skipSeparationSpace(state, true, -1); - ch = state.input.charCodeAt(state.position); - if ((state.line === _line || state.lineIndent > nodeIndent) && ch !== 0) { - throwError2(state, "bad indentation of a sequence entry"); - } else if (state.lineIndent < nodeIndent) { - break; - } - } - if (detected) { - state.tag = _tag; - state.anchor = _anchor; - state.kind = "sequence"; - state.result = _result; - return true; - } - return false; - } - function readBlockMapping(state, nodeIndent, flowIndent) { - var following, allowCompact, _line, _pos, _tag = state.tag, _anchor = state.anchor, _result = {}, overridableKeys = {}, keyTag = null, keyNode = null, valueNode = null, atExplicitKey = false, detected = false, ch; - if (state.anchor !== null) { - state.anchorMap[state.anchor] = _result; - } - ch = state.input.charCodeAt(state.position); - while (ch !== 0) { - following = state.input.charCodeAt(state.position + 1); - _line = state.line; - _pos = state.position; - if ((ch === 63 || ch === 58) && is_WS_OR_EOL(following)) { - if (ch === 63) { - if (atExplicitKey) { - storeMappingPair(state, _result, overridableKeys, keyTag, keyNode, null); - keyTag = keyNode = valueNode = null; - } - detected = true; - atExplicitKey = true; - allowCompact = true; - } else if (atExplicitKey) { - atExplicitKey = false; - allowCompact = true; - } else { - throwError2(state, "incomplete explicit mapping pair; a key node is missed; or followed by a non-tabulated empty line"); - } - state.position += 1; - ch = following; - } else if (composeNode(state, flowIndent, CONTEXT_FLOW_OUT, false, true)) { - if (state.line === _line) { - ch = state.input.charCodeAt(state.position); - while (is_WHITE_SPACE(ch)) { - ch = state.input.charCodeAt(++state.position); - } - if (ch === 58) { - ch = state.input.charCodeAt(++state.position); - if (!is_WS_OR_EOL(ch)) { - throwError2(state, "a whitespace character is expected after the key-value separator within a block mapping"); - } - if (atExplicitKey) { - storeMappingPair(state, _result, overridableKeys, keyTag, keyNode, null); - keyTag = keyNode = valueNode = null; - } - detected = true; - atExplicitKey = false; - allowCompact = false; - keyTag = state.tag; - keyNode = state.result; - } else if (detected) { - throwError2(state, "can not read an implicit mapping pair; a colon is missed"); - } else { - state.tag = _tag; - state.anchor = _anchor; - return true; - } - } else if (detected) { - throwError2(state, "can not read a block mapping entry; a multiline key may not be an implicit key"); - } else { - state.tag = _tag; - state.anchor = _anchor; - return true; - } - } else { - break; - } - if (state.line === _line || state.lineIndent > nodeIndent) { - if (composeNode(state, nodeIndent, CONTEXT_BLOCK_OUT, true, allowCompact)) { - if (atExplicitKey) { - keyNode = state.result; - } else { - valueNode = state.result; - } - } - if (!atExplicitKey) { - storeMappingPair(state, _result, overridableKeys, keyTag, keyNode, valueNode, _line, _pos); - keyTag = keyNode = valueNode = null; - } - skipSeparationSpace(state, true, -1); - ch = state.input.charCodeAt(state.position); - } - if (state.lineIndent > nodeIndent && ch !== 0) { - throwError2(state, "bad indentation of a mapping entry"); - } else if (state.lineIndent < nodeIndent) { - break; - } - } - if (atExplicitKey) { - storeMappingPair(state, _result, overridableKeys, keyTag, keyNode, null); - } - if (detected) { - state.tag = _tag; - state.anchor = _anchor; - state.kind = "mapping"; - state.result = _result; - } - return detected; - } - function readTagProperty(state) { - var _position, isVerbatim = false, isNamed = false, tagHandle, tagName, ch; - ch = state.input.charCodeAt(state.position); - if (ch !== 33) return false; - if (state.tag !== null) { - throwError2(state, "duplication of a tag property"); - } - ch = state.input.charCodeAt(++state.position); - if (ch === 60) { - isVerbatim = true; - ch = state.input.charCodeAt(++state.position); - } else if (ch === 33) { - isNamed = true; - tagHandle = "!!"; - ch = state.input.charCodeAt(++state.position); - } else { - tagHandle = "!"; - } - _position = state.position; - if (isVerbatim) { - do { - ch = state.input.charCodeAt(++state.position); - } while (ch !== 0 && ch !== 62); - if (state.position < state.length) { - tagName = state.input.slice(_position, state.position); - ch = state.input.charCodeAt(++state.position); - } else { - throwError2(state, "unexpected end of the stream within a verbatim tag"); - } - } else { - while (ch !== 0 && !is_WS_OR_EOL(ch)) { - if (ch === 33) { - if (!isNamed) { - tagHandle = state.input.slice(_position - 1, state.position + 1); - if (!PATTERN_TAG_HANDLE.test(tagHandle)) { - throwError2(state, "named tag handle cannot contain such characters"); - } - isNamed = true; - _position = state.position + 1; - } else { - throwError2(state, "tag suffix cannot contain exclamation marks"); - } - } - ch = state.input.charCodeAt(++state.position); - } - tagName = state.input.slice(_position, state.position); - if (PATTERN_FLOW_INDICATORS.test(tagName)) { - throwError2(state, "tag suffix cannot contain flow indicator characters"); - } - } - if (tagName && !PATTERN_TAG_URI.test(tagName)) { - throwError2(state, "tag name cannot contain such characters: " + tagName); - } - if (isVerbatim) { - state.tag = tagName; - } else if (_hasOwnProperty.call(state.tagMap, tagHandle)) { - state.tag = state.tagMap[tagHandle] + tagName; - } else if (tagHandle === "!") { - state.tag = "!" + tagName; - } else if (tagHandle === "!!") { - state.tag = "tag:yaml.org,2002:" + tagName; - } else { - throwError2(state, 'undeclared tag handle "' + tagHandle + '"'); - } - return true; - } - function readAnchorProperty(state) { - var _position, ch; - ch = state.input.charCodeAt(state.position); - if (ch !== 38) return false; - if (state.anchor !== null) { - throwError2(state, "duplication of an anchor property"); - } - ch = state.input.charCodeAt(++state.position); - _position = state.position; - while (ch !== 0 && !is_WS_OR_EOL(ch) && !is_FLOW_INDICATOR(ch)) { - ch = state.input.charCodeAt(++state.position); - } - if (state.position === _position) { - throwError2(state, "name of an anchor node must contain at least one character"); - } - state.anchor = state.input.slice(_position, state.position); - return true; - } - function readAlias(state) { - var _position, alias, ch; - ch = state.input.charCodeAt(state.position); - if (ch !== 42) return false; - ch = state.input.charCodeAt(++state.position); - _position = state.position; - while (ch !== 0 && !is_WS_OR_EOL(ch) && !is_FLOW_INDICATOR(ch)) { - ch = state.input.charCodeAt(++state.position); - } - if (state.position === _position) { - throwError2(state, "name of an alias node must contain at least one character"); - } - alias = state.input.slice(_position, state.position); - if (!_hasOwnProperty.call(state.anchorMap, alias)) { - throwError2(state, 'unidentified alias "' + alias + '"'); - } - state.result = state.anchorMap[alias]; - skipSeparationSpace(state, true, -1); - return true; - } - function composeNode(state, parentIndent, nodeContext, allowToSeek, allowCompact) { - var allowBlockStyles, allowBlockScalars, allowBlockCollections, indentStatus = 1, atNewLine = false, hasContent = false, typeIndex, typeQuantity, type5, flowIndent, blockIndent; - if (state.listener !== null) { - state.listener("open", state); - } - state.tag = null; - state.anchor = null; - state.kind = null; - state.result = null; - allowBlockStyles = allowBlockScalars = allowBlockCollections = CONTEXT_BLOCK_OUT === nodeContext || CONTEXT_BLOCK_IN === nodeContext; - if (allowToSeek) { - if (skipSeparationSpace(state, true, -1)) { - atNewLine = true; - if (state.lineIndent > parentIndent) { - indentStatus = 1; - } else if (state.lineIndent === parentIndent) { - indentStatus = 0; - } else if (state.lineIndent < parentIndent) { - indentStatus = -1; - } - } - } - if (indentStatus === 1) { - while (readTagProperty(state) || readAnchorProperty(state)) { - if (skipSeparationSpace(state, true, -1)) { - atNewLine = true; - allowBlockCollections = allowBlockStyles; - if (state.lineIndent > parentIndent) { - indentStatus = 1; - } else if (state.lineIndent === parentIndent) { - indentStatus = 0; - } else if (state.lineIndent < parentIndent) { - indentStatus = -1; - } - } else { - allowBlockCollections = false; - } - } - } - if (allowBlockCollections) { - allowBlockCollections = atNewLine || allowCompact; - } - if (indentStatus === 1 || CONTEXT_BLOCK_OUT === nodeContext) { - if (CONTEXT_FLOW_IN === nodeContext || CONTEXT_FLOW_OUT === nodeContext) { - flowIndent = parentIndent; - } else { - flowIndent = parentIndent + 1; - } - blockIndent = state.position - state.lineStart; - if (indentStatus === 1) { - if (allowBlockCollections && (readBlockSequence(state, blockIndent) || readBlockMapping(state, blockIndent, flowIndent)) || readFlowCollection(state, flowIndent)) { - hasContent = true; - } else { - if (allowBlockScalars && readBlockScalar(state, flowIndent) || readSingleQuotedScalar(state, flowIndent) || readDoubleQuotedScalar(state, flowIndent)) { - hasContent = true; - } else if (readAlias(state)) { - hasContent = true; - if (state.tag !== null || state.anchor !== null) { - throwError2(state, "alias node should not have any properties"); - } - } else if (readPlainScalar(state, flowIndent, CONTEXT_FLOW_IN === nodeContext)) { - hasContent = true; - if (state.tag === null) { - state.tag = "?"; - } - } - if (state.anchor !== null) { - state.anchorMap[state.anchor] = state.result; - } - } - } else if (indentStatus === 0) { - hasContent = allowBlockCollections && readBlockSequence(state, blockIndent); - } - } - if (state.tag !== null && state.tag !== "!") { - if (state.tag === "?") { - if (state.result !== null && state.kind !== "scalar") { - throwError2(state, 'unacceptable node kind for ! tag; it should be "scalar", not "' + state.kind + '"'); - } - for (typeIndex = 0, typeQuantity = state.implicitTypes.length; typeIndex < typeQuantity; typeIndex += 1) { - type5 = state.implicitTypes[typeIndex]; - if (type5.resolve(state.result)) { - state.result = type5.construct(state.result); - state.tag = type5.tag; - if (state.anchor !== null) { - state.anchorMap[state.anchor] = state.result; - } - break; - } - } - } else if (_hasOwnProperty.call(state.typeMap[state.kind || "fallback"], state.tag)) { - type5 = state.typeMap[state.kind || "fallback"][state.tag]; - if (state.result !== null && type5.kind !== state.kind) { - throwError2(state, "unacceptable node kind for !<" + state.tag + '> tag; it should be "' + type5.kind + '", not "' + state.kind + '"'); - } - if (!type5.resolve(state.result)) { - throwError2(state, "cannot resolve a node with !<" + state.tag + "> explicit tag"); - } else { - state.result = type5.construct(state.result); - if (state.anchor !== null) { - state.anchorMap[state.anchor] = state.result; - } - } - } else { - throwError2(state, "unknown tag !<" + state.tag + ">"); - } - } - if (state.listener !== null) { - state.listener("close", state); - } - return state.tag !== null || state.anchor !== null || hasContent; - } - function readDocument(state) { - var documentStart = state.position, _position, directiveName, directiveArgs, hasDirectives = false, ch; - state.version = null; - state.checkLineBreaks = state.legacy; - state.tagMap = {}; - state.anchorMap = {}; - while ((ch = state.input.charCodeAt(state.position)) !== 0) { - skipSeparationSpace(state, true, -1); - ch = state.input.charCodeAt(state.position); - if (state.lineIndent > 0 || ch !== 37) { - break; - } - hasDirectives = true; - ch = state.input.charCodeAt(++state.position); - _position = state.position; - while (ch !== 0 && !is_WS_OR_EOL(ch)) { - ch = state.input.charCodeAt(++state.position); - } - directiveName = state.input.slice(_position, state.position); - directiveArgs = []; - if (directiveName.length < 1) { - throwError2(state, "directive name must not be less than one character in length"); - } - while (ch !== 0) { - while (is_WHITE_SPACE(ch)) { - ch = state.input.charCodeAt(++state.position); - } - if (ch === 35) { - do { - ch = state.input.charCodeAt(++state.position); - } while (ch !== 0 && !is_EOL(ch)); - break; - } - if (is_EOL(ch)) break; - _position = state.position; - while (ch !== 0 && !is_WS_OR_EOL(ch)) { - ch = state.input.charCodeAt(++state.position); - } - directiveArgs.push(state.input.slice(_position, state.position)); - } - if (ch !== 0) readLineBreak(state); - if (_hasOwnProperty.call(directiveHandlers, directiveName)) { - directiveHandlers[directiveName](state, directiveName, directiveArgs); - } else { - throwWarning(state, 'unknown document directive "' + directiveName + '"'); - } - } - skipSeparationSpace(state, true, -1); - if (state.lineIndent === 0 && state.input.charCodeAt(state.position) === 45 && state.input.charCodeAt(state.position + 1) === 45 && state.input.charCodeAt(state.position + 2) === 45) { - state.position += 3; - skipSeparationSpace(state, true, -1); - } else if (hasDirectives) { - throwError2(state, "directives end mark is expected"); - } - composeNode(state, state.lineIndent - 1, CONTEXT_BLOCK_OUT, false, true); - skipSeparationSpace(state, true, -1); - if (state.checkLineBreaks && PATTERN_NON_ASCII_LINE_BREAKS.test(state.input.slice(documentStart, state.position))) { - throwWarning(state, "non-ASCII line breaks are interpreted as content"); - } - state.documents.push(state.result); - if (state.position === state.lineStart && testDocumentSeparator(state)) { - if (state.input.charCodeAt(state.position) === 46) { - state.position += 3; - skipSeparationSpace(state, true, -1); - } - return; - } - if (state.position < state.length - 1) { - throwError2(state, "end of the stream or a document separator is expected"); - } else { - return; - } - } - function loadDocuments(input, options) { - input = String(input); - options = options || {}; - if (input.length !== 0) { - if (input.charCodeAt(input.length - 1) !== 10 && input.charCodeAt(input.length - 1) !== 13) { - input += "\n"; - } - if (input.charCodeAt(0) === 65279) { - input = input.slice(1); - } - } - var state = new State(input, options); - var nullpos = input.indexOf("\0"); - if (nullpos !== -1) { - state.position = nullpos; - throwError2(state, "null byte is not allowed in input"); - } - state.input += "\0"; - while (state.input.charCodeAt(state.position) === 32) { - state.lineIndent += 1; - state.position += 1; - } - while (state.position < state.length - 1) { - readDocument(state); - } - return state.documents; - } - function loadAll(input, iterator2, options) { - if (iterator2 !== null && typeof iterator2 === "object" && typeof options === "undefined") { - options = iterator2; - iterator2 = null; - } - var documents = loadDocuments(input, options); - if (typeof iterator2 !== "function") { - return documents; - } - for (var index2 = 0, length = documents.length; index2 < length; index2 += 1) { - iterator2(documents[index2]); - } - } - function load(input, options) { - var documents = loadDocuments(input, options); - if (documents.length === 0) { - return void 0; - } else if (documents.length === 1) { - return documents[0]; - } - throw new YAMLException("expected a single document in the stream, but found more"); - } - function safeLoadAll(input, iterator2, options) { - if (typeof iterator2 === "object" && iterator2 !== null && typeof options === "undefined") { - options = iterator2; - iterator2 = null; - } - return loadAll(input, iterator2, common.extend({ schema: DEFAULT_SAFE_SCHEMA }, options)); - } - function safeLoad(input, options) { - return load(input, common.extend({ schema: DEFAULT_SAFE_SCHEMA }, options)); - } - module.exports.loadAll = loadAll; - module.exports.load = load; - module.exports.safeLoadAll = safeLoadAll; - module.exports.safeLoad = safeLoad; - var i11; - } -}); - -// node_modules/.pnpm/js-yaml@3.14.2/node_modules/js-yaml/lib/js-yaml/dumper.js -var require_dumper = __commonJS({ - "node_modules/.pnpm/js-yaml@3.14.2/node_modules/js-yaml/lib/js-yaml/dumper.js"(exports, module) { - "use strict"; - var common = require_common(); - var YAMLException = require_exception(); - var DEFAULT_FULL_SCHEMA = require_default_full(); - var DEFAULT_SAFE_SCHEMA = require_default_safe(); - var _toString = Object.prototype.toString; - var _hasOwnProperty = Object.prototype.hasOwnProperty; - var CHAR_TAB = 9; - var CHAR_LINE_FEED = 10; - var CHAR_CARRIAGE_RETURN = 13; - var CHAR_SPACE = 32; - var CHAR_EXCLAMATION = 33; - var CHAR_DOUBLE_QUOTE = 34; - var CHAR_SHARP = 35; - var CHAR_PERCENT = 37; - var CHAR_AMPERSAND = 38; - var CHAR_SINGLE_QUOTE = 39; - var CHAR_ASTERISK = 42; - var CHAR_COMMA = 44; - var CHAR_MINUS = 45; - var CHAR_COLON = 58; - var CHAR_EQUALS = 61; - var CHAR_GREATER_THAN = 62; - var CHAR_QUESTION = 63; - var CHAR_COMMERCIAL_AT = 64; - var CHAR_LEFT_SQUARE_BRACKET = 91; - var CHAR_RIGHT_SQUARE_BRACKET = 93; - var CHAR_GRAVE_ACCENT = 96; - var CHAR_LEFT_CURLY_BRACKET = 123; - var CHAR_VERTICAL_LINE = 124; - var CHAR_RIGHT_CURLY_BRACKET = 125; - var ESCAPE_SEQUENCES = {}; - ESCAPE_SEQUENCES[0] = "\\0"; - ESCAPE_SEQUENCES[7] = "\\a"; - ESCAPE_SEQUENCES[8] = "\\b"; - ESCAPE_SEQUENCES[9] = "\\t"; - ESCAPE_SEQUENCES[10] = "\\n"; - ESCAPE_SEQUENCES[11] = "\\v"; - ESCAPE_SEQUENCES[12] = "\\f"; - ESCAPE_SEQUENCES[13] = "\\r"; - ESCAPE_SEQUENCES[27] = "\\e"; - ESCAPE_SEQUENCES[34] = '\\"'; - ESCAPE_SEQUENCES[92] = "\\\\"; - ESCAPE_SEQUENCES[133] = "\\N"; - ESCAPE_SEQUENCES[160] = "\\_"; - ESCAPE_SEQUENCES[8232] = "\\L"; - ESCAPE_SEQUENCES[8233] = "\\P"; - var DEPRECATED_BOOLEANS_SYNTAX = [ - "y", - "Y", - "yes", - "Yes", - "YES", - "on", - "On", - "ON", - "n", - "N", - "no", - "No", - "NO", - "off", - "Off", - "OFF" - ]; - function compileStyleMap(schema, map7) { - var result, keys2, index2, length, tag, style, type5; - if (map7 === null) return {}; - result = {}; - keys2 = Object.keys(map7); - for (index2 = 0, length = keys2.length; index2 < length; index2 += 1) { - tag = keys2[index2]; - style = String(map7[tag]); - if (tag.slice(0, 2) === "!!") { - tag = "tag:yaml.org,2002:" + tag.slice(2); - } - type5 = schema.compiledTypeMap["fallback"][tag]; - if (type5 && _hasOwnProperty.call(type5.styleAliases, style)) { - style = type5.styleAliases[style]; - } - result[tag] = style; - } - return result; - } - function encodeHex(character) { - var string3, handle3, length; - string3 = character.toString(16).toUpperCase(); - if (character <= 255) { - handle3 = "x"; - length = 2; - } else if (character <= 65535) { - handle3 = "u"; - length = 4; - } else if (character <= 4294967295) { - handle3 = "U"; - length = 8; - } else { - throw new YAMLException("code point within a string may not be greater than 0xFFFFFFFF"); - } - return "\\" + handle3 + common.repeat("0", length - string3.length) + string3; - } - function State(options) { - this.schema = options["schema"] || DEFAULT_FULL_SCHEMA; - this.indent = Math.max(1, options["indent"] || 2); - this.noArrayIndent = options["noArrayIndent"] || false; - this.skipInvalid = options["skipInvalid"] || false; - this.flowLevel = common.isNothing(options["flowLevel"]) ? -1 : options["flowLevel"]; - this.styleMap = compileStyleMap(this.schema, options["styles"] || null); - this.sortKeys = options["sortKeys"] || false; - this.lineWidth = options["lineWidth"] || 80; - this.noRefs = options["noRefs"] || false; - this.noCompatMode = options["noCompatMode"] || false; - this.condenseFlow = options["condenseFlow"] || false; - this.implicitTypes = this.schema.compiledImplicit; - this.explicitTypes = this.schema.compiledExplicit; - this.tag = null; - this.result = ""; - this.duplicates = []; - this.usedDuplicates = null; - } - function indentString(string3, spaces) { - var ind = common.repeat(" ", spaces), position3 = 0, next2 = -1, result = "", line, length = string3.length; - while (position3 < length) { - next2 = string3.indexOf("\n", position3); - if (next2 === -1) { - line = string3.slice(position3); - position3 = length; - } else { - line = string3.slice(position3, next2 + 1); - position3 = next2 + 1; - } - if (line.length && line !== "\n") result += ind; - result += line; - } - return result; - } - function generateNextLine(state, level) { - return "\n" + common.repeat(" ", state.indent * level); - } - function testImplicitResolving(state, str) { - var index2, length, type5; - for (index2 = 0, length = state.implicitTypes.length; index2 < length; index2 += 1) { - type5 = state.implicitTypes[index2]; - if (type5.resolve(str)) { - return true; - } - } - return false; - } - function isWhitespace(c11) { - return c11 === CHAR_SPACE || c11 === CHAR_TAB; - } - function isPrintable(c11) { - return 32 <= c11 && c11 <= 126 || 161 <= c11 && c11 <= 55295 && c11 !== 8232 && c11 !== 8233 || 57344 <= c11 && c11 <= 65533 && c11 !== 65279 || 65536 <= c11 && c11 <= 1114111; - } - function isNsChar(c11) { - return isPrintable(c11) && !isWhitespace(c11) && c11 !== 65279 && c11 !== CHAR_CARRIAGE_RETURN && c11 !== CHAR_LINE_FEED; - } - function isPlainSafe(c11, prev) { - return isPrintable(c11) && c11 !== 65279 && c11 !== CHAR_COMMA && c11 !== CHAR_LEFT_SQUARE_BRACKET && c11 !== CHAR_RIGHT_SQUARE_BRACKET && c11 !== CHAR_LEFT_CURLY_BRACKET && c11 !== CHAR_RIGHT_CURLY_BRACKET && c11 !== CHAR_COLON && (c11 !== CHAR_SHARP || prev && isNsChar(prev)); - } - function isPlainSafeFirst(c11) { - return isPrintable(c11) && c11 !== 65279 && !isWhitespace(c11) && c11 !== CHAR_MINUS && c11 !== CHAR_QUESTION && c11 !== CHAR_COLON && c11 !== CHAR_COMMA && c11 !== CHAR_LEFT_SQUARE_BRACKET && c11 !== CHAR_RIGHT_SQUARE_BRACKET && c11 !== CHAR_LEFT_CURLY_BRACKET && c11 !== CHAR_RIGHT_CURLY_BRACKET && c11 !== CHAR_SHARP && c11 !== CHAR_AMPERSAND && c11 !== CHAR_ASTERISK && c11 !== CHAR_EXCLAMATION && c11 !== CHAR_VERTICAL_LINE && c11 !== CHAR_EQUALS && c11 !== CHAR_GREATER_THAN && c11 !== CHAR_SINGLE_QUOTE && c11 !== CHAR_DOUBLE_QUOTE && c11 !== CHAR_PERCENT && c11 !== CHAR_COMMERCIAL_AT && c11 !== CHAR_GRAVE_ACCENT; - } - function needIndentIndicator(string3) { - var leadingSpaceRe = /^\n* /; - return leadingSpaceRe.test(string3); - } - var STYLE_PLAIN = 1, STYLE_SINGLE = 2, STYLE_LITERAL = 3, STYLE_FOLDED = 4, STYLE_DOUBLE = 5; - function chooseScalarStyle(string3, singleLineOnly, indentPerLevel, lineWidth, testAmbiguousType) { - var i11; - var char, prev_char; - var hasLineBreak = false; - var hasFoldableLine = false; - var shouldTrackWidth = lineWidth !== -1; - var previousLineBreak = -1; - var plain = isPlainSafeFirst(string3.charCodeAt(0)) && !isWhitespace(string3.charCodeAt(string3.length - 1)); - if (singleLineOnly) { - for (i11 = 0; i11 < string3.length; i11++) { - char = string3.charCodeAt(i11); - if (!isPrintable(char)) { - return STYLE_DOUBLE; - } - prev_char = i11 > 0 ? string3.charCodeAt(i11 - 1) : null; - plain = plain && isPlainSafe(char, prev_char); - } - } else { - for (i11 = 0; i11 < string3.length; i11++) { - char = string3.charCodeAt(i11); - if (char === CHAR_LINE_FEED) { - hasLineBreak = true; - if (shouldTrackWidth) { - hasFoldableLine = hasFoldableLine || // Foldable line = too long, and not more-indented. - i11 - previousLineBreak - 1 > lineWidth && string3[previousLineBreak + 1] !== " "; - previousLineBreak = i11; - } - } else if (!isPrintable(char)) { - return STYLE_DOUBLE; - } - prev_char = i11 > 0 ? string3.charCodeAt(i11 - 1) : null; - plain = plain && isPlainSafe(char, prev_char); - } - hasFoldableLine = hasFoldableLine || shouldTrackWidth && (i11 - previousLineBreak - 1 > lineWidth && string3[previousLineBreak + 1] !== " "); - } - if (!hasLineBreak && !hasFoldableLine) { - return plain && !testAmbiguousType(string3) ? STYLE_PLAIN : STYLE_SINGLE; - } - if (indentPerLevel > 9 && needIndentIndicator(string3)) { - return STYLE_DOUBLE; - } - return hasFoldableLine ? STYLE_FOLDED : STYLE_LITERAL; - } - function writeScalar(state, string3, level, iskey) { - state.dump = (function() { - if (string3.length === 0) { - return "''"; - } - if (!state.noCompatMode && DEPRECATED_BOOLEANS_SYNTAX.indexOf(string3) !== -1) { - return "'" + string3 + "'"; - } - var indent3 = state.indent * Math.max(1, level); - var lineWidth = state.lineWidth === -1 ? -1 : Math.max(Math.min(state.lineWidth, 40), state.lineWidth - indent3); - var singleLineOnly = iskey || state.flowLevel > -1 && level >= state.flowLevel; - function testAmbiguity(string4) { - return testImplicitResolving(state, string4); - } - switch (chooseScalarStyle(string3, singleLineOnly, state.indent, lineWidth, testAmbiguity)) { - case STYLE_PLAIN: - return string3; - case STYLE_SINGLE: - return "'" + string3.replace(/'/g, "''") + "'"; - case STYLE_LITERAL: - return "|" + blockHeader(string3, state.indent) + dropEndingNewline(indentString(string3, indent3)); - case STYLE_FOLDED: - return ">" + blockHeader(string3, state.indent) + dropEndingNewline(indentString(foldString(string3, lineWidth), indent3)); - case STYLE_DOUBLE: - return '"' + escapeString(string3, lineWidth) + '"'; - default: - throw new YAMLException("impossible error: invalid scalar style"); - } - })(); - } - function blockHeader(string3, indentPerLevel) { - var indentIndicator = needIndentIndicator(string3) ? String(indentPerLevel) : ""; - var clip = string3[string3.length - 1] === "\n"; - var keep = clip && (string3[string3.length - 2] === "\n" || string3 === "\n"); - var chomp = keep ? "+" : clip ? "" : "-"; - return indentIndicator + chomp + "\n"; - } - function dropEndingNewline(string3) { - return string3[string3.length - 1] === "\n" ? string3.slice(0, -1) : string3; - } - function foldString(string3, width) { - var lineRe = /(\n+)([^\n]*)/g; - var result = (function() { - var nextLF = string3.indexOf("\n"); - nextLF = nextLF !== -1 ? nextLF : string3.length; - lineRe.lastIndex = nextLF; - return foldLine(string3.slice(0, nextLF), width); - })(); - var prevMoreIndented = string3[0] === "\n" || string3[0] === " "; - var moreIndented; - var match2; - while (match2 = lineRe.exec(string3)) { - var prefix4 = match2[1], line = match2[2]; - moreIndented = line[0] === " "; - result += prefix4 + (!prevMoreIndented && !moreIndented && line !== "" ? "\n" : "") + foldLine(line, width); - prevMoreIndented = moreIndented; - } - return result; - } - function foldLine(line, width) { - if (line === "" || line[0] === " ") return line; - var breakRe = / [^ ]/g; - var match2; - var start = 0, end3, curr = 0, next2 = 0; - var result = ""; - while (match2 = breakRe.exec(line)) { - next2 = match2.index; - if (next2 - start > width) { - end3 = curr > start ? curr : next2; - result += "\n" + line.slice(start, end3); - start = end3 + 1; - } - curr = next2; - } - result += "\n"; - if (line.length - start > width && curr > start) { - result += line.slice(start, curr) + "\n" + line.slice(curr + 1); - } else { - result += line.slice(start); - } - return result.slice(1); - } - function escapeString(string3) { - var result = ""; - var char, nextChar; - var escapeSeq; - for (var i11 = 0; i11 < string3.length; i11++) { - char = string3.charCodeAt(i11); - if (char >= 55296 && char <= 56319) { - nextChar = string3.charCodeAt(i11 + 1); - if (nextChar >= 56320 && nextChar <= 57343) { - result += encodeHex((char - 55296) * 1024 + nextChar - 56320 + 65536); - i11++; - continue; - } - } - escapeSeq = ESCAPE_SEQUENCES[char]; - result += !escapeSeq && isPrintable(char) ? string3[i11] : escapeSeq || encodeHex(char); - } - return result; - } - function writeFlowSequence(state, level, object) { - var _result = "", _tag = state.tag, index2, length; - for (index2 = 0, length = object.length; index2 < length; index2 += 1) { - if (writeNode(state, level, object[index2], false, false)) { - if (index2 !== 0) _result += "," + (!state.condenseFlow ? " " : ""); - _result += state.dump; - } - } - state.tag = _tag; - state.dump = "[" + _result + "]"; - } - function writeBlockSequence(state, level, object, compact) { - var _result = "", _tag = state.tag, index2, length; - for (index2 = 0, length = object.length; index2 < length; index2 += 1) { - if (writeNode(state, level + 1, object[index2], true, true)) { - if (!compact || index2 !== 0) { - _result += generateNextLine(state, level); - } - if (state.dump && CHAR_LINE_FEED === state.dump.charCodeAt(0)) { - _result += "-"; - } else { - _result += "- "; - } - _result += state.dump; - } - } - state.tag = _tag; - state.dump = _result || "[]"; - } - function writeFlowMapping(state, level, object) { - var _result = "", _tag = state.tag, objectKeyList = Object.keys(object), index2, length, objectKey, objectValue, pairBuffer; - for (index2 = 0, length = objectKeyList.length; index2 < length; index2 += 1) { - pairBuffer = ""; - if (index2 !== 0) pairBuffer += ", "; - if (state.condenseFlow) pairBuffer += '"'; - objectKey = objectKeyList[index2]; - objectValue = object[objectKey]; - if (!writeNode(state, level, objectKey, false, false)) { - continue; - } - if (state.dump.length > 1024) pairBuffer += "? "; - pairBuffer += state.dump + (state.condenseFlow ? '"' : "") + ":" + (state.condenseFlow ? "" : " "); - if (!writeNode(state, level, objectValue, false, false)) { - continue; - } - pairBuffer += state.dump; - _result += pairBuffer; - } - state.tag = _tag; - state.dump = "{" + _result + "}"; - } - function writeBlockMapping(state, level, object, compact) { - var _result = "", _tag = state.tag, objectKeyList = Object.keys(object), index2, length, objectKey, objectValue, explicitPair, pairBuffer; - if (state.sortKeys === true) { - objectKeyList.sort(); - } else if (typeof state.sortKeys === "function") { - objectKeyList.sort(state.sortKeys); - } else if (state.sortKeys) { - throw new YAMLException("sortKeys must be a boolean or a function"); - } - for (index2 = 0, length = objectKeyList.length; index2 < length; index2 += 1) { - pairBuffer = ""; - if (!compact || index2 !== 0) { - pairBuffer += generateNextLine(state, level); - } - objectKey = objectKeyList[index2]; - objectValue = object[objectKey]; - if (!writeNode(state, level + 1, objectKey, true, true, true)) { - continue; - } - explicitPair = state.tag !== null && state.tag !== "?" || state.dump && state.dump.length > 1024; - if (explicitPair) { - if (state.dump && CHAR_LINE_FEED === state.dump.charCodeAt(0)) { - pairBuffer += "?"; - } else { - pairBuffer += "? "; - } - } - pairBuffer += state.dump; - if (explicitPair) { - pairBuffer += generateNextLine(state, level); - } - if (!writeNode(state, level + 1, objectValue, true, explicitPair)) { - continue; - } - if (state.dump && CHAR_LINE_FEED === state.dump.charCodeAt(0)) { - pairBuffer += ":"; - } else { - pairBuffer += ": "; - } - pairBuffer += state.dump; - _result += pairBuffer; - } - state.tag = _tag; - state.dump = _result || "{}"; - } - function detectType(state, object, explicit) { - var _result, typeList, index2, length, type5, style; - typeList = explicit ? state.explicitTypes : state.implicitTypes; - for (index2 = 0, length = typeList.length; index2 < length; index2 += 1) { - type5 = typeList[index2]; - if ((type5.instanceOf || type5.predicate) && (!type5.instanceOf || typeof object === "object" && object instanceof type5.instanceOf) && (!type5.predicate || type5.predicate(object))) { - state.tag = explicit ? type5.tag : "?"; - if (type5.represent) { - style = state.styleMap[type5.tag] || type5.defaultStyle; - if (_toString.call(type5.represent) === "[object Function]") { - _result = type5.represent(object, style); - } else if (_hasOwnProperty.call(type5.represent, style)) { - _result = type5.represent[style](object, style); - } else { - throw new YAMLException("!<" + type5.tag + '> tag resolver accepts not "' + style + '" style'); - } - state.dump = _result; - } - return true; - } - } - return false; - } - function writeNode(state, level, object, block, compact, iskey) { - state.tag = null; - state.dump = object; - if (!detectType(state, object, false)) { - detectType(state, object, true); - } - var type5 = _toString.call(state.dump); - if (block) { - block = state.flowLevel < 0 || state.flowLevel > level; - } - var objectOrArray = type5 === "[object Object]" || type5 === "[object Array]", duplicateIndex, duplicate; - if (objectOrArray) { - duplicateIndex = state.duplicates.indexOf(object); - duplicate = duplicateIndex !== -1; - } - if (state.tag !== null && state.tag !== "?" || duplicate || state.indent !== 2 && level > 0) { - compact = false; - } - if (duplicate && state.usedDuplicates[duplicateIndex]) { - state.dump = "*ref_" + duplicateIndex; - } else { - if (objectOrArray && duplicate && !state.usedDuplicates[duplicateIndex]) { - state.usedDuplicates[duplicateIndex] = true; - } - if (type5 === "[object Object]") { - if (block && Object.keys(state.dump).length !== 0) { - writeBlockMapping(state, level, state.dump, compact); - if (duplicate) { - state.dump = "&ref_" + duplicateIndex + state.dump; - } - } else { - writeFlowMapping(state, level, state.dump); - if (duplicate) { - state.dump = "&ref_" + duplicateIndex + " " + state.dump; - } - } - } else if (type5 === "[object Array]") { - var arrayLevel = state.noArrayIndent && level > 0 ? level - 1 : level; - if (block && state.dump.length !== 0) { - writeBlockSequence(state, arrayLevel, state.dump, compact); - if (duplicate) { - state.dump = "&ref_" + duplicateIndex + state.dump; - } - } else { - writeFlowSequence(state, arrayLevel, state.dump); - if (duplicate) { - state.dump = "&ref_" + duplicateIndex + " " + state.dump; - } - } - } else if (type5 === "[object String]") { - if (state.tag !== "?") { - writeScalar(state, state.dump, level, iskey); - } - } else { - if (state.skipInvalid) return false; - throw new YAMLException("unacceptable kind of an object to dump " + type5); - } - if (state.tag !== null && state.tag !== "?") { - state.dump = "!<" + state.tag + "> " + state.dump; - } - } - return true; - } - function getDuplicateReferences(object, state) { - var objects = [], duplicatesIndexes = [], index2, length; - inspectNode(object, objects, duplicatesIndexes); - for (index2 = 0, length = duplicatesIndexes.length; index2 < length; index2 += 1) { - state.duplicates.push(objects[duplicatesIndexes[index2]]); - } - state.usedDuplicates = new Array(length); - } - function inspectNode(object, objects, duplicatesIndexes) { - var objectKeyList, index2, length; - if (object !== null && typeof object === "object") { - index2 = objects.indexOf(object); - if (index2 !== -1) { - if (duplicatesIndexes.indexOf(index2) === -1) { - duplicatesIndexes.push(index2); - } - } else { - objects.push(object); - if (Array.isArray(object)) { - for (index2 = 0, length = object.length; index2 < length; index2 += 1) { - inspectNode(object[index2], objects, duplicatesIndexes); - } - } else { - objectKeyList = Object.keys(object); - for (index2 = 0, length = objectKeyList.length; index2 < length; index2 += 1) { - inspectNode(object[objectKeyList[index2]], objects, duplicatesIndexes); - } - } - } - } - } - function dump(input, options) { - options = options || {}; - var state = new State(options); - if (!state.noRefs) getDuplicateReferences(input, state); - if (writeNode(state, 0, input, true, true)) return state.dump + "\n"; - return ""; - } - function safeDump(input, options) { - return dump(input, common.extend({ schema: DEFAULT_SAFE_SCHEMA }, options)); - } - module.exports.dump = dump; - module.exports.safeDump = safeDump; - } -}); - -// node_modules/.pnpm/js-yaml@3.14.2/node_modules/js-yaml/lib/js-yaml.js -var require_js_yaml = __commonJS({ - "node_modules/.pnpm/js-yaml@3.14.2/node_modules/js-yaml/lib/js-yaml.js"(exports, module) { - "use strict"; - var loader = require_loader(); - var dumper = require_dumper(); - function deprecated(name) { - return function() { - throw new Error("Function " + name + " is deprecated and cannot be used."); - }; - } - module.exports.Type = require_type(); - module.exports.Schema = require_schema(); - module.exports.FAILSAFE_SCHEMA = require_failsafe(); - module.exports.JSON_SCHEMA = require_json(); - module.exports.CORE_SCHEMA = require_core(); - module.exports.DEFAULT_SAFE_SCHEMA = require_default_safe(); - module.exports.DEFAULT_FULL_SCHEMA = require_default_full(); - module.exports.load = loader.load; - module.exports.loadAll = loader.loadAll; - module.exports.safeLoad = loader.safeLoad; - module.exports.safeLoadAll = loader.safeLoadAll; - module.exports.dump = dumper.dump; - module.exports.safeDump = dumper.safeDump; - module.exports.YAMLException = require_exception(); - module.exports.MINIMAL_SCHEMA = require_failsafe(); - module.exports.SAFE_SCHEMA = require_default_safe(); - module.exports.DEFAULT_SCHEMA = require_default_full(); - module.exports.scan = deprecated("scan"); - module.exports.parse = deprecated("parse"); - module.exports.compose = deprecated("compose"); - module.exports.addConstructor = deprecated("addConstructor"); - } -}); - -// node_modules/.pnpm/js-yaml@3.14.2/node_modules/js-yaml/index.js -var require_js_yaml2 = __commonJS({ - "node_modules/.pnpm/js-yaml@3.14.2/node_modules/js-yaml/index.js"(exports, module) { - "use strict"; - var yaml = require_js_yaml(); - module.exports = yaml; - } -}); - -// node_modules/.pnpm/@push.rocks+smartyaml@2.0.5/node_modules/@push.rocks/smartyaml/dist_ts/smartyaml.plugins.js -var require_smartyaml_plugins = __commonJS({ - "node_modules/.pnpm/@push.rocks+smartyaml@2.0.5/node_modules/@push.rocks/smartyaml/dist_ts/smartyaml.plugins.js"(exports) { - "use strict"; - var __createBinding2 = exports && exports.__createBinding || (Object.create ? (function(o13, m6, k4, k22) { - if (k22 === void 0) k22 = k4; - Object.defineProperty(o13, k22, { enumerable: true, get: function() { - return m6[k4]; - } }); - }) : (function(o13, m6, k4, k22) { - if (k22 === void 0) k22 = k4; - o13[k22] = m6[k4]; - })); - var __setModuleDefault2 = exports && exports.__setModuleDefault || (Object.create ? (function(o13, v5) { - Object.defineProperty(o13, "default", { enumerable: true, value: v5 }); - }) : function(o13, v5) { - o13["default"] = v5; - }); - var __importStar2 = exports && exports.__importStar || function(mod) { - if (mod && mod.__esModule) return mod; - var result = {}; - if (mod != null) { - for (var k4 in mod) if (k4 !== "default" && Object.hasOwnProperty.call(mod, k4)) __createBinding2(result, mod, k4); - } - __setModuleDefault2(result, mod); - return result; - }; - Object.defineProperty(exports, "__esModule", { value: true }); - exports.jsYaml = void 0; - var jsYaml = __importStar2(require_js_yaml2()); - exports.jsYaml = jsYaml; - } -}); - -// node_modules/.pnpm/@push.rocks+smartyaml@2.0.5/node_modules/@push.rocks/smartyaml/dist_ts/index.js -var require_dist_ts2 = __commonJS({ - "node_modules/.pnpm/@push.rocks+smartyaml@2.0.5/node_modules/@push.rocks/smartyaml/dist_ts/index.js"(exports) { - "use strict"; - var __createBinding2 = exports && exports.__createBinding || (Object.create ? (function(o13, m6, k4, k22) { - if (k22 === void 0) k22 = k4; - Object.defineProperty(o13, k22, { enumerable: true, get: function() { - return m6[k4]; - } }); - }) : (function(o13, m6, k4, k22) { - if (k22 === void 0) k22 = k4; - o13[k22] = m6[k4]; - })); - var __setModuleDefault2 = exports && exports.__setModuleDefault || (Object.create ? (function(o13, v5) { - Object.defineProperty(o13, "default", { enumerable: true, value: v5 }); - }) : function(o13, v5) { - o13["default"] = v5; - }); - var __importStar2 = exports && exports.__importStar || function(mod) { - if (mod && mod.__esModule) return mod; - var result = {}; - if (mod != null) { - for (var k4 in mod) if (k4 !== "default" && Object.hasOwnProperty.call(mod, k4)) __createBinding2(result, mod, k4); - } - __setModuleDefault2(result, mod); - return result; - }; - Object.defineProperty(exports, "__esModule", { value: true }); - exports.objectToYamlString = exports.yamlStringToObject = void 0; - var plugins13 = __importStar2(require_smartyaml_plugins()); - exports.yamlStringToObject = async (yamlStringArg, optionsArg = {}) => { - return plugins13.jsYaml.safeLoad(yamlStringArg); - }; - exports.objectToYamlString = async (objectArg, optionsArg = {}) => { - return plugins13.jsYaml.safeDump(objectArg); - }; - } -}); - -// node_modules/.pnpm/bail@2.0.2/node_modules/bail/index.js -function bail(error) { - if (error) { - throw error; - } -} -var init_bail = __esm({ - "node_modules/.pnpm/bail@2.0.2/node_modules/bail/index.js"() { - } -}); - -// node_modules/.pnpm/extend@3.0.2/node_modules/extend/index.js -var require_extend = __commonJS({ - "node_modules/.pnpm/extend@3.0.2/node_modules/extend/index.js"(exports, module) { - "use strict"; - var hasOwn = Object.prototype.hasOwnProperty; - var toStr = Object.prototype.toString; - var defineProperty = Object.defineProperty; - var gOPD = Object.getOwnPropertyDescriptor; - var isArray4 = function isArray5(arr) { - if (typeof Array.isArray === "function") { - return Array.isArray(arr); - } - return toStr.call(arr) === "[object Array]"; - }; - var isPlainObject2 = function isPlainObject3(obj) { - if (!obj || toStr.call(obj) !== "[object Object]") { - return false; - } - var hasOwnConstructor = hasOwn.call(obj, "constructor"); - var hasIsPrototypeOf = obj.constructor && obj.constructor.prototype && hasOwn.call(obj.constructor.prototype, "isPrototypeOf"); - if (obj.constructor && !hasOwnConstructor && !hasIsPrototypeOf) { - return false; - } - var key2; - for (key2 in obj) { - } - return typeof key2 === "undefined" || hasOwn.call(obj, key2); - }; - var setProperty = function setProperty2(target, options) { - if (defineProperty && options.name === "__proto__") { - defineProperty(target, options.name, { - enumerable: true, - configurable: true, - value: options.newValue, - writable: true - }); - } else { - target[options.name] = options.newValue; - } - }; - var getProperty = function getProperty2(obj, name) { - if (name === "__proto__") { - if (!hasOwn.call(obj, name)) { - return void 0; - } else if (gOPD) { - return gOPD(obj, name).value; - } - } - return obj[name]; - }; - module.exports = function extend3() { - var options, name, src, copy, copyIsArray, clone; - var target = arguments[0]; - var i11 = 1; - var length = arguments.length; - var deep = false; - if (typeof target === "boolean") { - deep = target; - target = arguments[1] || {}; - i11 = 2; - } - if (target == null || typeof target !== "object" && typeof target !== "function") { - target = {}; - } - for (; i11 < length; ++i11) { - options = arguments[i11]; - if (options != null) { - for (name in options) { - src = getProperty(target, name); - copy = getProperty(options, name); - if (target !== copy) { - if (deep && copy && (isPlainObject2(copy) || (copyIsArray = isArray4(copy)))) { - if (copyIsArray) { - copyIsArray = false; - clone = src && isArray4(src) ? src : []; - } else { - clone = src && isPlainObject2(src) ? src : {}; - } - setProperty(target, { name, newValue: extend3(deep, clone, copy) }); - } else if (typeof copy !== "undefined") { - setProperty(target, { name, newValue: copy }); - } - } - } - } - } - return target; - }; - } -}); - -// node_modules/.pnpm/devlop@1.1.0/node_modules/devlop/lib/default.js -function deprecate(fn) { - return fn; -} -function equal() { -} -function ok() { -} -function unreachable() { -} -var init_default = __esm({ - "node_modules/.pnpm/devlop@1.1.0/node_modules/devlop/lib/default.js"() { - } -}); - -// node_modules/.pnpm/is-plain-obj@4.1.0/node_modules/is-plain-obj/index.js -function isPlainObject(value2) { - if (typeof value2 !== "object" || value2 === null) { - return false; - } - const prototype = Object.getPrototypeOf(value2); - return (prototype === null || prototype === Object.prototype || Object.getPrototypeOf(prototype) === null) && !(Symbol.toStringTag in value2) && !(Symbol.iterator in value2); -} -var init_is_plain_obj = __esm({ - "node_modules/.pnpm/is-plain-obj@4.1.0/node_modules/is-plain-obj/index.js"() { - } -}); - -// node_modules/.pnpm/trough@2.2.0/node_modules/trough/lib/index.js -function trough() { - const fns = []; - const pipeline = { run, use }; - return pipeline; - function run(...values) { - let middlewareIndex = -1; - const callback = values.pop(); - if (typeof callback !== "function") { - throw new TypeError("Expected function as last argument, not " + callback); - } - next2(null, ...values); - function next2(error, ...output) { - const fn = fns[++middlewareIndex]; - let index2 = -1; - if (error) { - callback(error); - return; - } - while (++index2 < values.length) { - if (output[index2] === null || output[index2] === void 0) { - output[index2] = values[index2]; - } - } - values = output; - if (fn) { - wrap2(fn, next2)(...output); - } else { - callback(null, ...output); - } - } - } - function use(middelware) { - if (typeof middelware !== "function") { - throw new TypeError( - "Expected `middelware` to be a function, not " + middelware - ); - } - fns.push(middelware); - return pipeline; - } -} -function wrap2(middleware, callback) { - let called; - return wrapped; - function wrapped(...parameters) { - const fnExpectsCallback = middleware.length > parameters.length; - let result; - if (fnExpectsCallback) { - parameters.push(done); - } - try { - result = middleware.apply(this, parameters); - } catch (error) { - const exception = ( - /** @type {Error} */ - error - ); - if (fnExpectsCallback && called) { - throw exception; - } - return done(exception); - } - if (!fnExpectsCallback) { - if (result && result.then && typeof result.then === "function") { - result.then(then, done); - } else if (result instanceof Error) { - done(result); - } else { - then(result); - } - } - } - function done(error, ...output) { - if (!called) { - called = true; - callback(error, ...output); - } - } - function then(value2) { - done(null, value2); - } -} -var init_lib = __esm({ - "node_modules/.pnpm/trough@2.2.0/node_modules/trough/lib/index.js"() { - } -}); - -// node_modules/.pnpm/trough@2.2.0/node_modules/trough/index.js -var init_trough = __esm({ - "node_modules/.pnpm/trough@2.2.0/node_modules/trough/index.js"() { - init_lib(); - } -}); - -// node_modules/.pnpm/unist-util-stringify-position@4.0.0/node_modules/unist-util-stringify-position/lib/index.js -function stringifyPosition(value2) { - if (!value2 || typeof value2 !== "object") { - return ""; - } - if ("position" in value2 || "type" in value2) { - return position(value2.position); - } - if ("start" in value2 || "end" in value2) { - return position(value2); - } - if ("line" in value2 || "column" in value2) { - return point(value2); - } - return ""; -} -function point(point4) { - return index(point4 && point4.line) + ":" + index(point4 && point4.column); -} -function position(pos) { - return point(pos && pos.start) + "-" + point(pos && pos.end); -} -function index(value2) { - return value2 && typeof value2 === "number" ? value2 : 1; -} -var init_lib2 = __esm({ - "node_modules/.pnpm/unist-util-stringify-position@4.0.0/node_modules/unist-util-stringify-position/lib/index.js"() { - } -}); - -// node_modules/.pnpm/unist-util-stringify-position@4.0.0/node_modules/unist-util-stringify-position/index.js -var init_unist_util_stringify_position = __esm({ - "node_modules/.pnpm/unist-util-stringify-position@4.0.0/node_modules/unist-util-stringify-position/index.js"() { - init_lib2(); - } -}); - -// node_modules/.pnpm/vfile-message@4.0.3/node_modules/vfile-message/lib/index.js -var VFileMessage; -var init_lib3 = __esm({ - "node_modules/.pnpm/vfile-message@4.0.3/node_modules/vfile-message/lib/index.js"() { - init_unist_util_stringify_position(); - VFileMessage = class extends Error { - /** - * Create a message for `reason`. - * - * > 🪦 **Note**: also has obsolete signatures. - * - * @overload - * @param {string} reason - * @param {Options | null | undefined} [options] - * @returns - * - * @overload - * @param {string} reason - * @param {Node | NodeLike | null | undefined} parent - * @param {string | null | undefined} [origin] - * @returns - * - * @overload - * @param {string} reason - * @param {Point | Position | null | undefined} place - * @param {string | null | undefined} [origin] - * @returns - * - * @overload - * @param {string} reason - * @param {string | null | undefined} [origin] - * @returns - * - * @overload - * @param {Error | VFileMessage} cause - * @param {Node | NodeLike | null | undefined} parent - * @param {string | null | undefined} [origin] - * @returns - * - * @overload - * @param {Error | VFileMessage} cause - * @param {Point | Position | null | undefined} place - * @param {string | null | undefined} [origin] - * @returns - * - * @overload - * @param {Error | VFileMessage} cause - * @param {string | null | undefined} [origin] - * @returns - * - * @param {Error | VFileMessage | string} causeOrReason - * Reason for message, should use markdown. - * @param {Node | NodeLike | Options | Point | Position | string | null | undefined} [optionsOrParentOrPlace] - * Configuration (optional). - * @param {string | null | undefined} [origin] - * Place in code where the message originates (example: - * `'my-package:my-rule'` or `'my-rule'`). - * @returns - * Instance of `VFileMessage`. - */ - // eslint-disable-next-line complexity - constructor(causeOrReason, optionsOrParentOrPlace, origin) { - super(); - if (typeof optionsOrParentOrPlace === "string") { - origin = optionsOrParentOrPlace; - optionsOrParentOrPlace = void 0; - } - let reason = ""; - let options = {}; - let legacyCause = false; - if (optionsOrParentOrPlace) { - if ("line" in optionsOrParentOrPlace && "column" in optionsOrParentOrPlace) { - options = { place: optionsOrParentOrPlace }; - } else if ("start" in optionsOrParentOrPlace && "end" in optionsOrParentOrPlace) { - options = { place: optionsOrParentOrPlace }; - } else if ("type" in optionsOrParentOrPlace) { - options = { - ancestors: [optionsOrParentOrPlace], - place: optionsOrParentOrPlace.position - }; - } else { - options = { ...optionsOrParentOrPlace }; - } - } - if (typeof causeOrReason === "string") { - reason = causeOrReason; - } else if (!options.cause && causeOrReason) { - legacyCause = true; - reason = causeOrReason.message; - options.cause = causeOrReason; - } - if (!options.ruleId && !options.source && typeof origin === "string") { - const index2 = origin.indexOf(":"); - if (index2 === -1) { - options.ruleId = origin; - } else { - options.source = origin.slice(0, index2); - options.ruleId = origin.slice(index2 + 1); - } - } - if (!options.place && options.ancestors && options.ancestors) { - const parent = options.ancestors[options.ancestors.length - 1]; - if (parent) { - options.place = parent.position; - } - } - const start = options.place && "start" in options.place ? options.place.start : options.place; - this.ancestors = options.ancestors || void 0; - this.cause = options.cause || void 0; - this.column = start ? start.column : void 0; - this.fatal = void 0; - this.file = ""; - this.message = reason; - this.line = start ? start.line : void 0; - this.name = stringifyPosition(options.place) || "1:1"; - this.place = options.place || void 0; - this.reason = this.message; - this.ruleId = options.ruleId || void 0; - this.source = options.source || void 0; - this.stack = legacyCause && options.cause && typeof options.cause.stack === "string" ? options.cause.stack : ""; - this.actual = void 0; - this.expected = void 0; - this.note = void 0; - this.url = void 0; - } - }; - VFileMessage.prototype.file = ""; - VFileMessage.prototype.name = ""; - VFileMessage.prototype.reason = ""; - VFileMessage.prototype.message = ""; - VFileMessage.prototype.stack = ""; - VFileMessage.prototype.column = void 0; - VFileMessage.prototype.line = void 0; - VFileMessage.prototype.ancestors = void 0; - VFileMessage.prototype.cause = void 0; - VFileMessage.prototype.fatal = void 0; - VFileMessage.prototype.place = void 0; - VFileMessage.prototype.ruleId = void 0; - VFileMessage.prototype.source = void 0; - } -}); - -// node_modules/.pnpm/vfile-message@4.0.3/node_modules/vfile-message/index.js -var init_vfile_message = __esm({ - "node_modules/.pnpm/vfile-message@4.0.3/node_modules/vfile-message/index.js"() { - init_lib3(); - } -}); - -// node_modules/.pnpm/vfile@6.0.3/node_modules/vfile/lib/minpath.browser.js -function basename(path2, extname2) { - if (extname2 !== void 0 && typeof extname2 !== "string") { - throw new TypeError('"ext" argument must be a string'); - } - assertPath(path2); - let start = 0; - let end3 = -1; - let index2 = path2.length; - let seenNonSlash; - if (extname2 === void 0 || extname2.length === 0 || extname2.length > path2.length) { - while (index2--) { - if (path2.codePointAt(index2) === 47) { - if (seenNonSlash) { - start = index2 + 1; - break; - } - } else if (end3 < 0) { - seenNonSlash = true; - end3 = index2 + 1; - } - } - return end3 < 0 ? "" : path2.slice(start, end3); - } - if (extname2 === path2) { - return ""; - } - let firstNonSlashEnd = -1; - let extnameIndex = extname2.length - 1; - while (index2--) { - if (path2.codePointAt(index2) === 47) { - if (seenNonSlash) { - start = index2 + 1; - break; - } - } else { - if (firstNonSlashEnd < 0) { - seenNonSlash = true; - firstNonSlashEnd = index2 + 1; - } - if (extnameIndex > -1) { - if (path2.codePointAt(index2) === extname2.codePointAt(extnameIndex--)) { - if (extnameIndex < 0) { - end3 = index2; - } - } else { - extnameIndex = -1; - end3 = firstNonSlashEnd; - } - } - } - } - if (start === end3) { - end3 = firstNonSlashEnd; - } else if (end3 < 0) { - end3 = path2.length; - } - return path2.slice(start, end3); -} -function dirname(path2) { - assertPath(path2); - if (path2.length === 0) { - return "."; - } - let end3 = -1; - let index2 = path2.length; - let unmatchedSlash; - while (--index2) { - if (path2.codePointAt(index2) === 47) { - if (unmatchedSlash) { - end3 = index2; - break; - } - } else if (!unmatchedSlash) { - unmatchedSlash = true; - } - } - return end3 < 0 ? path2.codePointAt(0) === 47 ? "/" : "." : end3 === 1 && path2.codePointAt(0) === 47 ? "//" : path2.slice(0, end3); -} -function extname(path2) { - assertPath(path2); - let index2 = path2.length; - let end3 = -1; - let startPart = 0; - let startDot = -1; - let preDotState = 0; - let unmatchedSlash; - while (index2--) { - const code4 = path2.codePointAt(index2); - if (code4 === 47) { - if (unmatchedSlash) { - startPart = index2 + 1; - break; - } - continue; - } - if (end3 < 0) { - unmatchedSlash = true; - end3 = index2 + 1; - } - if (code4 === 46) { - if (startDot < 0) { - startDot = index2; - } else if (preDotState !== 1) { - preDotState = 1; - } - } else if (startDot > -1) { - preDotState = -1; - } - } - if (startDot < 0 || end3 < 0 || // We saw a non-dot character immediately before the dot. - preDotState === 0 || // The (right-most) trimmed path component is exactly `..`. - preDotState === 1 && startDot === end3 - 1 && startDot === startPart + 1) { - return ""; - } - return path2.slice(startDot, end3); -} -function join(...segments) { - let index2 = -1; - let joined; - while (++index2 < segments.length) { - assertPath(segments[index2]); - if (segments[index2]) { - joined = joined === void 0 ? segments[index2] : joined + "/" + segments[index2]; - } - } - return joined === void 0 ? "." : normalize2(joined); -} -function normalize2(path2) { - assertPath(path2); - const absolute = path2.codePointAt(0) === 47; - let value2 = normalizeString(path2, !absolute); - if (value2.length === 0 && !absolute) { - value2 = "."; - } - if (value2.length > 0 && path2.codePointAt(path2.length - 1) === 47) { - value2 += "/"; - } - return absolute ? "/" + value2 : value2; -} -function normalizeString(path2, allowAboveRoot) { - let result = ""; - let lastSegmentLength = 0; - let lastSlash = -1; - let dots = 0; - let index2 = -1; - let code4; - let lastSlashIndex; - while (++index2 <= path2.length) { - if (index2 < path2.length) { - code4 = path2.codePointAt(index2); - } else if (code4 === 47) { - break; - } else { - code4 = 47; - } - if (code4 === 47) { - if (lastSlash === index2 - 1 || dots === 1) { - } else if (lastSlash !== index2 - 1 && dots === 2) { - if (result.length < 2 || lastSegmentLength !== 2 || result.codePointAt(result.length - 1) !== 46 || result.codePointAt(result.length - 2) !== 46) { - if (result.length > 2) { - lastSlashIndex = result.lastIndexOf("/"); - if (lastSlashIndex !== result.length - 1) { - if (lastSlashIndex < 0) { - result = ""; - lastSegmentLength = 0; - } else { - result = result.slice(0, lastSlashIndex); - lastSegmentLength = result.length - 1 - result.lastIndexOf("/"); - } - lastSlash = index2; - dots = 0; - continue; - } - } else if (result.length > 0) { - result = ""; - lastSegmentLength = 0; - lastSlash = index2; - dots = 0; - continue; - } - } - if (allowAboveRoot) { - result = result.length > 0 ? result + "/.." : ".."; - lastSegmentLength = 2; - } - } else { - if (result.length > 0) { - result += "/" + path2.slice(lastSlash + 1, index2); - } else { - result = path2.slice(lastSlash + 1, index2); - } - lastSegmentLength = index2 - lastSlash - 1; - } - lastSlash = index2; - dots = 0; - } else if (code4 === 46 && dots > -1) { - dots++; - } else { - dots = -1; - } - } - return result; -} -function assertPath(path2) { - if (typeof path2 !== "string") { - throw new TypeError( - "Path must be a string. Received " + JSON.stringify(path2) - ); - } -} -var minpath; -var init_minpath_browser = __esm({ - "node_modules/.pnpm/vfile@6.0.3/node_modules/vfile/lib/minpath.browser.js"() { - minpath = { basename, dirname, extname, join, sep: "/" }; - } -}); - -// node_modules/.pnpm/vfile@6.0.3/node_modules/vfile/lib/minproc.browser.js -function cwd() { - return "/"; -} -var minproc; -var init_minproc_browser = __esm({ - "node_modules/.pnpm/vfile@6.0.3/node_modules/vfile/lib/minproc.browser.js"() { - minproc = { cwd }; - } -}); - -// node_modules/.pnpm/vfile@6.0.3/node_modules/vfile/lib/minurl.shared.js -function isUrl(fileUrlOrPath) { - return Boolean( - fileUrlOrPath !== null && typeof fileUrlOrPath === "object" && "href" in fileUrlOrPath && fileUrlOrPath.href && "protocol" in fileUrlOrPath && fileUrlOrPath.protocol && // @ts-expect-error: indexing is fine. - fileUrlOrPath.auth === void 0 - ); -} -var init_minurl_shared = __esm({ - "node_modules/.pnpm/vfile@6.0.3/node_modules/vfile/lib/minurl.shared.js"() { - } -}); - -// node_modules/.pnpm/vfile@6.0.3/node_modules/vfile/lib/minurl.browser.js -function urlToPath(path2) { - if (typeof path2 === "string") { - path2 = new URL(path2); - } else if (!isUrl(path2)) { - const error = new TypeError( - 'The "path" argument must be of type string or an instance of URL. Received `' + path2 + "`" - ); - error.code = "ERR_INVALID_ARG_TYPE"; - throw error; - } - if (path2.protocol !== "file:") { - const error = new TypeError("The URL must be of scheme file"); - error.code = "ERR_INVALID_URL_SCHEME"; - throw error; - } - return getPathFromURLPosix(path2); -} -function getPathFromURLPosix(url) { - if (url.hostname !== "") { - const error = new TypeError( - 'File URL host must be "localhost" or empty on darwin' - ); - error.code = "ERR_INVALID_FILE_URL_HOST"; - throw error; - } - const pathname = url.pathname; - let index2 = -1; - while (++index2 < pathname.length) { - if (pathname.codePointAt(index2) === 37 && pathname.codePointAt(index2 + 1) === 50) { - const third = pathname.codePointAt(index2 + 2); - if (third === 70 || third === 102) { - const error = new TypeError( - "File URL path must not include encoded / characters" - ); - error.code = "ERR_INVALID_FILE_URL_PATH"; - throw error; - } - } - } - return decodeURIComponent(pathname); -} -var init_minurl_browser = __esm({ - "node_modules/.pnpm/vfile@6.0.3/node_modules/vfile/lib/minurl.browser.js"() { - init_minurl_shared(); - init_minurl_shared(); - } -}); - -// node_modules/.pnpm/vfile@6.0.3/node_modules/vfile/lib/index.js -function assertPart(part, name) { - if (part && part.includes(minpath.sep)) { - throw new Error( - "`" + name + "` cannot be a path: did not expect `" + minpath.sep + "`" - ); - } -} -function assertNonEmpty(part, name) { - if (!part) { - throw new Error("`" + name + "` cannot be empty"); - } -} -function assertPath2(path2, name) { - if (!path2) { - throw new Error("Setting `" + name + "` requires `path` to be set too"); - } -} -function isUint8Array3(value2) { - return Boolean( - value2 && typeof value2 === "object" && "byteLength" in value2 && "byteOffset" in value2 - ); -} -var order, VFile; -var init_lib4 = __esm({ - "node_modules/.pnpm/vfile@6.0.3/node_modules/vfile/lib/index.js"() { - init_vfile_message(); - init_minpath_browser(); - init_minproc_browser(); - init_minurl_browser(); - order = /** @type {const} */ - [ - "history", - "path", - "basename", - "stem", - "extname", - "dirname" - ]; - VFile = class { - /** - * Create a new virtual file. - * - * `options` is treated as: - * - * * `string` or `Uint8Array` — `{value: options}` - * * `URL` — `{path: options}` - * * `VFile` — shallow copies its data over to the new file - * * `object` — all fields are shallow copied over to the new file - * - * Path related fields are set in the following order (least specific to - * most specific): `history`, `path`, `basename`, `stem`, `extname`, - * `dirname`. - * - * You cannot set `dirname` or `extname` without setting either `history`, - * `path`, `basename`, or `stem` too. - * - * @param {Compatible | null | undefined} [value] - * File value. - * @returns - * New instance. - */ - constructor(value2) { - let options; - if (!value2) { - options = {}; - } else if (isUrl(value2)) { - options = { path: value2 }; - } else if (typeof value2 === "string" || isUint8Array3(value2)) { - options = { value: value2 }; - } else { - options = value2; - } - this.cwd = "cwd" in options ? "" : minproc.cwd(); - this.data = {}; - this.history = []; - this.messages = []; - this.value; - this.map; - this.result; - this.stored; - let index2 = -1; - while (++index2 < order.length) { - const field2 = order[index2]; - if (field2 in options && options[field2] !== void 0 && options[field2] !== null) { - this[field2] = field2 === "history" ? [...options[field2]] : options[field2]; - } - } - let field; - for (field in options) { - if (!order.includes(field)) { - this[field] = options[field]; - } - } - } - /** - * Get the basename (including extname) (example: `'index.min.js'`). - * - * @returns {string | undefined} - * Basename. - */ - get basename() { - return typeof this.path === "string" ? minpath.basename(this.path) : void 0; - } - /** - * Set basename (including extname) (`'index.min.js'`). - * - * Cannot contain path separators (`'/'` on unix, macOS, and browsers, `'\'` - * on windows). - * Cannot be nullified (use `file.path = file.dirname` instead). - * - * @param {string} basename - * Basename. - * @returns {undefined} - * Nothing. - */ - set basename(basename2) { - assertNonEmpty(basename2, "basename"); - assertPart(basename2, "basename"); - this.path = minpath.join(this.dirname || "", basename2); - } - /** - * Get the parent path (example: `'~'`). - * - * @returns {string | undefined} - * Dirname. - */ - get dirname() { - return typeof this.path === "string" ? minpath.dirname(this.path) : void 0; - } - /** - * Set the parent path (example: `'~'`). - * - * Cannot be set if there’s no `path` yet. - * - * @param {string | undefined} dirname - * Dirname. - * @returns {undefined} - * Nothing. - */ - set dirname(dirname2) { - assertPath2(this.basename, "dirname"); - this.path = minpath.join(dirname2 || "", this.basename); - } - /** - * Get the extname (including dot) (example: `'.js'`). - * - * @returns {string | undefined} - * Extname. - */ - get extname() { - return typeof this.path === "string" ? minpath.extname(this.path) : void 0; - } - /** - * Set the extname (including dot) (example: `'.js'`). - * - * Cannot contain path separators (`'/'` on unix, macOS, and browsers, `'\'` - * on windows). - * Cannot be set if there’s no `path` yet. - * - * @param {string | undefined} extname - * Extname. - * @returns {undefined} - * Nothing. - */ - set extname(extname2) { - assertPart(extname2, "extname"); - assertPath2(this.dirname, "extname"); - if (extname2) { - if (extname2.codePointAt(0) !== 46) { - throw new Error("`extname` must start with `.`"); - } - if (extname2.includes(".", 1)) { - throw new Error("`extname` cannot contain multiple dots"); - } - } - this.path = minpath.join(this.dirname, this.stem + (extname2 || "")); - } - /** - * Get the full path (example: `'~/index.min.js'`). - * - * @returns {string} - * Path. - */ - get path() { - return this.history[this.history.length - 1]; - } - /** - * Set the full path (example: `'~/index.min.js'`). - * - * Cannot be nullified. - * You can set a file URL (a `URL` object with a `file:` protocol) which will - * be turned into a path with `url.fileURLToPath`. - * - * @param {URL | string} path - * Path. - * @returns {undefined} - * Nothing. - */ - set path(path2) { - if (isUrl(path2)) { - path2 = urlToPath(path2); - } - assertNonEmpty(path2, "path"); - if (this.path !== path2) { - this.history.push(path2); - } - } - /** - * Get the stem (basename w/o extname) (example: `'index.min'`). - * - * @returns {string | undefined} - * Stem. - */ - get stem() { - return typeof this.path === "string" ? minpath.basename(this.path, this.extname) : void 0; - } - /** - * Set the stem (basename w/o extname) (example: `'index.min'`). - * - * Cannot contain path separators (`'/'` on unix, macOS, and browsers, `'\'` - * on windows). - * Cannot be nullified (use `file.path = file.dirname` instead). - * - * @param {string} stem - * Stem. - * @returns {undefined} - * Nothing. - */ - set stem(stem) { - assertNonEmpty(stem, "stem"); - assertPart(stem, "stem"); - this.path = minpath.join(this.dirname || "", stem + (this.extname || "")); - } - // Normal prototypal methods. - /** - * Create a fatal message for `reason` associated with the file. - * - * The `fatal` field of the message is set to `true` (error; file not usable) - * and the `file` field is set to the current file path. - * The message is added to the `messages` field on `file`. - * - * > 🪦 **Note**: also has obsolete signatures. - * - * @overload - * @param {string} reason - * @param {MessageOptions | null | undefined} [options] - * @returns {never} - * - * @overload - * @param {string} reason - * @param {Node | NodeLike | null | undefined} parent - * @param {string | null | undefined} [origin] - * @returns {never} - * - * @overload - * @param {string} reason - * @param {Point | Position | null | undefined} place - * @param {string | null | undefined} [origin] - * @returns {never} - * - * @overload - * @param {string} reason - * @param {string | null | undefined} [origin] - * @returns {never} - * - * @overload - * @param {Error | VFileMessage} cause - * @param {Node | NodeLike | null | undefined} parent - * @param {string | null | undefined} [origin] - * @returns {never} - * - * @overload - * @param {Error | VFileMessage} cause - * @param {Point | Position | null | undefined} place - * @param {string | null | undefined} [origin] - * @returns {never} - * - * @overload - * @param {Error | VFileMessage} cause - * @param {string | null | undefined} [origin] - * @returns {never} - * - * @param {Error | VFileMessage | string} causeOrReason - * Reason for message, should use markdown. - * @param {Node | NodeLike | MessageOptions | Point | Position | string | null | undefined} [optionsOrParentOrPlace] - * Configuration (optional). - * @param {string | null | undefined} [origin] - * Place in code where the message originates (example: - * `'my-package:my-rule'` or `'my-rule'`). - * @returns {never} - * Never. - * @throws {VFileMessage} - * Message. - */ - fail(causeOrReason, optionsOrParentOrPlace, origin) { - const message2 = this.message(causeOrReason, optionsOrParentOrPlace, origin); - message2.fatal = true; - throw message2; - } - /** - * Create an info message for `reason` associated with the file. - * - * The `fatal` field of the message is set to `undefined` (info; change - * likely not needed) and the `file` field is set to the current file path. - * The message is added to the `messages` field on `file`. - * - * > 🪦 **Note**: also has obsolete signatures. - * - * @overload - * @param {string} reason - * @param {MessageOptions | null | undefined} [options] - * @returns {VFileMessage} - * - * @overload - * @param {string} reason - * @param {Node | NodeLike | null | undefined} parent - * @param {string | null | undefined} [origin] - * @returns {VFileMessage} - * - * @overload - * @param {string} reason - * @param {Point | Position | null | undefined} place - * @param {string | null | undefined} [origin] - * @returns {VFileMessage} - * - * @overload - * @param {string} reason - * @param {string | null | undefined} [origin] - * @returns {VFileMessage} - * - * @overload - * @param {Error | VFileMessage} cause - * @param {Node | NodeLike | null | undefined} parent - * @param {string | null | undefined} [origin] - * @returns {VFileMessage} - * - * @overload - * @param {Error | VFileMessage} cause - * @param {Point | Position | null | undefined} place - * @param {string | null | undefined} [origin] - * @returns {VFileMessage} - * - * @overload - * @param {Error | VFileMessage} cause - * @param {string | null | undefined} [origin] - * @returns {VFileMessage} - * - * @param {Error | VFileMessage | string} causeOrReason - * Reason for message, should use markdown. - * @param {Node | NodeLike | MessageOptions | Point | Position | string | null | undefined} [optionsOrParentOrPlace] - * Configuration (optional). - * @param {string | null | undefined} [origin] - * Place in code where the message originates (example: - * `'my-package:my-rule'` or `'my-rule'`). - * @returns {VFileMessage} - * Message. - */ - info(causeOrReason, optionsOrParentOrPlace, origin) { - const message2 = this.message(causeOrReason, optionsOrParentOrPlace, origin); - message2.fatal = void 0; - return message2; - } - /** - * Create a message for `reason` associated with the file. - * - * The `fatal` field of the message is set to `false` (warning; change may be - * needed) and the `file` field is set to the current file path. - * The message is added to the `messages` field on `file`. - * - * > 🪦 **Note**: also has obsolete signatures. - * - * @overload - * @param {string} reason - * @param {MessageOptions | null | undefined} [options] - * @returns {VFileMessage} - * - * @overload - * @param {string} reason - * @param {Node | NodeLike | null | undefined} parent - * @param {string | null | undefined} [origin] - * @returns {VFileMessage} - * - * @overload - * @param {string} reason - * @param {Point | Position | null | undefined} place - * @param {string | null | undefined} [origin] - * @returns {VFileMessage} - * - * @overload - * @param {string} reason - * @param {string | null | undefined} [origin] - * @returns {VFileMessage} - * - * @overload - * @param {Error | VFileMessage} cause - * @param {Node | NodeLike | null | undefined} parent - * @param {string | null | undefined} [origin] - * @returns {VFileMessage} - * - * @overload - * @param {Error | VFileMessage} cause - * @param {Point | Position | null | undefined} place - * @param {string | null | undefined} [origin] - * @returns {VFileMessage} - * - * @overload - * @param {Error | VFileMessage} cause - * @param {string | null | undefined} [origin] - * @returns {VFileMessage} - * - * @param {Error | VFileMessage | string} causeOrReason - * Reason for message, should use markdown. - * @param {Node | NodeLike | MessageOptions | Point | Position | string | null | undefined} [optionsOrParentOrPlace] - * Configuration (optional). - * @param {string | null | undefined} [origin] - * Place in code where the message originates (example: - * `'my-package:my-rule'` or `'my-rule'`). - * @returns {VFileMessage} - * Message. - */ - message(causeOrReason, optionsOrParentOrPlace, origin) { - const message2 = new VFileMessage( - // @ts-expect-error: the overloads are fine. - causeOrReason, - optionsOrParentOrPlace, - origin - ); - if (this.path) { - message2.name = this.path + ":" + message2.name; - message2.file = this.path; - } - message2.fatal = false; - this.messages.push(message2); - return message2; - } - /** - * Serialize the file. - * - * > **Note**: which encodings are supported depends on the engine. - * > For info on Node.js, see: - * > . - * - * @param {string | null | undefined} [encoding='utf8'] - * Character encoding to understand `value` as when it’s a `Uint8Array` - * (default: `'utf-8'`). - * @returns {string} - * Serialized file. - */ - toString(encoding) { - if (this.value === void 0) { - return ""; - } - if (typeof this.value === "string") { - return this.value; - } - const decoder2 = new TextDecoder(encoding || void 0); - return decoder2.decode(this.value); - } - }; - } -}); - -// node_modules/.pnpm/vfile@6.0.3/node_modules/vfile/index.js -var init_vfile = __esm({ - "node_modules/.pnpm/vfile@6.0.3/node_modules/vfile/index.js"() { - init_lib4(); - } -}); - -// node_modules/.pnpm/unified@11.0.5/node_modules/unified/lib/callable-instance.js -var CallableInstance; -var init_callable_instance = __esm({ - "node_modules/.pnpm/unified@11.0.5/node_modules/unified/lib/callable-instance.js"() { - CallableInstance = /** - * @type {new , Result>(property: string | symbol) => (...parameters: Parameters) => Result} - */ - /** @type {unknown} */ - /** - * @this {Function} - * @param {string | symbol} property - * @returns {(...parameters: Array) => unknown} - */ - (function(property) { - const self2 = this; - const constr = self2.constructor; - const proto = ( - /** @type {Record} */ - // Prototypes do exist. - // type-coverage:ignore-next-line - constr.prototype - ); - const value2 = proto[property]; - const apply = function() { - return value2.apply(apply, arguments); - }; - Object.setPrototypeOf(apply, proto); - return apply; - }); - } -}); - -// node_modules/.pnpm/unified@11.0.5/node_modules/unified/lib/index.js -function assertParser(name, value2) { - if (typeof value2 !== "function") { - throw new TypeError("Cannot `" + name + "` without `parser`"); - } -} -function assertCompiler(name, value2) { - if (typeof value2 !== "function") { - throw new TypeError("Cannot `" + name + "` without `compiler`"); - } -} -function assertUnfrozen(name, frozen) { - if (frozen) { - throw new Error( - "Cannot call `" + name + "` on a frozen processor.\nCreate a new processor first, by calling it: use `processor()` instead of `processor`." - ); - } -} -function assertNode(node2) { - if (!isPlainObject(node2) || typeof node2.type !== "string") { - throw new TypeError("Expected node, got `" + node2 + "`"); - } -} -function assertDone(name, asyncName, complete) { - if (!complete) { - throw new Error( - "`" + name + "` finished async. Use `" + asyncName + "` instead" - ); - } -} -function vfile(value2) { - return looksLikeAVFile(value2) ? value2 : new VFile(value2); -} -function looksLikeAVFile(value2) { - return Boolean( - value2 && typeof value2 === "object" && "message" in value2 && "messages" in value2 - ); -} -function looksLikeAValue(value2) { - return typeof value2 === "string" || isUint8Array4(value2); -} -function isUint8Array4(value2) { - return Boolean( - value2 && typeof value2 === "object" && "byteLength" in value2 && "byteOffset" in value2 - ); -} -var import_extend, own, Processor, unified; -var init_lib5 = __esm({ - "node_modules/.pnpm/unified@11.0.5/node_modules/unified/lib/index.js"() { - init_bail(); - import_extend = __toESM(require_extend(), 1); - init_default(); - init_is_plain_obj(); - init_trough(); - init_vfile(); - init_callable_instance(); - own = {}.hasOwnProperty; - Processor = class _Processor extends CallableInstance { - /** - * Create a processor. - */ - constructor() { - super("copy"); - this.Compiler = void 0; - this.Parser = void 0; - this.attachers = []; - this.compiler = void 0; - this.freezeIndex = -1; - this.frozen = void 0; - this.namespace = {}; - this.parser = void 0; - this.transformers = trough(); - } - /** - * Copy a processor. - * - * @deprecated - * This is a private internal method and should not be used. - * @returns {Processor} - * New *unfrozen* processor ({@linkcode Processor}) that is - * configured to work the same as its ancestor. - * When the descendant processor is configured in the future it does not - * affect the ancestral processor. - */ - copy() { - const destination = ( - /** @type {Processor} */ - new _Processor() - ); - let index2 = -1; - while (++index2 < this.attachers.length) { - const attacher = this.attachers[index2]; - destination.use(...attacher); - } - destination.data((0, import_extend.default)(true, {}, this.namespace)); - return destination; - } - /** - * Configure the processor with info available to all plugins. - * Information is stored in an object. - * - * Typically, options can be given to a specific plugin, but sometimes it - * makes sense to have information shared with several plugins. - * For example, a list of HTML elements that are self-closing, which is - * needed during all phases. - * - * > **Note**: setting information cannot occur on *frozen* processors. - * > Call the processor first to create a new unfrozen processor. - * - * > **Note**: to register custom data in TypeScript, augment the - * > {@linkcode Data} interface. - * - * @example - * This example show how to get and set info: - * - * ```js - * import {unified} from 'unified' - * - * const processor = unified().data('alpha', 'bravo') - * - * processor.data('alpha') // => 'bravo' - * - * processor.data() // => {alpha: 'bravo'} - * - * processor.data({charlie: 'delta'}) - * - * processor.data() // => {charlie: 'delta'} - * ``` - * - * @template {keyof Data} Key - * - * @overload - * @returns {Data} - * - * @overload - * @param {Data} dataset - * @returns {Processor} - * - * @overload - * @param {Key} key - * @returns {Data[Key]} - * - * @overload - * @param {Key} key - * @param {Data[Key]} value - * @returns {Processor} - * - * @param {Data | Key} [key] - * Key to get or set, or entire dataset to set, or nothing to get the - * entire dataset (optional). - * @param {Data[Key]} [value] - * Value to set (optional). - * @returns {unknown} - * The current processor when setting, the value at `key` when getting, or - * the entire dataset when getting without key. - */ - data(key2, value2) { - if (typeof key2 === "string") { - if (arguments.length === 2) { - assertUnfrozen("data", this.frozen); - this.namespace[key2] = value2; - return this; - } - return own.call(this.namespace, key2) && this.namespace[key2] || void 0; - } - if (key2) { - assertUnfrozen("data", this.frozen); - this.namespace = key2; - return this; - } - return this.namespace; - } - /** - * Freeze a processor. - * - * Frozen processors are meant to be extended and not to be configured - * directly. - * - * When a processor is frozen it cannot be unfrozen. - * New processors working the same way can be created by calling the - * processor. - * - * It’s possible to freeze processors explicitly by calling `.freeze()`. - * Processors freeze automatically when `.parse()`, `.run()`, `.runSync()`, - * `.stringify()`, `.process()`, or `.processSync()` are called. - * - * @returns {Processor} - * The current processor. - */ - freeze() { - if (this.frozen) { - return this; - } - const self2 = ( - /** @type {Processor} */ - /** @type {unknown} */ - this - ); - while (++this.freezeIndex < this.attachers.length) { - const [attacher, ...options] = this.attachers[this.freezeIndex]; - if (options[0] === false) { - continue; - } - if (options[0] === true) { - options[0] = void 0; - } - const transformer = attacher.call(self2, ...options); - if (typeof transformer === "function") { - this.transformers.use(transformer); - } - } - this.frozen = true; - this.freezeIndex = Number.POSITIVE_INFINITY; - return this; - } - /** - * Parse text to a syntax tree. - * - * > **Note**: `parse` freezes the processor if not already *frozen*. - * - * > **Note**: `parse` performs the parse phase, not the run phase or other - * > phases. - * - * @param {Compatible | undefined} [file] - * file to parse (optional); typically `string` or `VFile`; any value - * accepted as `x` in `new VFile(x)`. - * @returns {ParseTree extends undefined ? Node : ParseTree} - * Syntax tree representing `file`. - */ - parse(file) { - this.freeze(); - const realFile = vfile(file); - const parser = this.parser || this.Parser; - assertParser("parse", parser); - return parser(String(realFile), realFile); - } - /** - * Process the given file as configured on the processor. - * - * > **Note**: `process` freezes the processor if not already *frozen*. - * - * > **Note**: `process` performs the parse, run, and stringify phases. - * - * @overload - * @param {Compatible | undefined} file - * @param {ProcessCallback>} done - * @returns {undefined} - * - * @overload - * @param {Compatible | undefined} [file] - * @returns {Promise>} - * - * @param {Compatible | undefined} [file] - * File (optional); typically `string` or `VFile`]; any value accepted as - * `x` in `new VFile(x)`. - * @param {ProcessCallback> | undefined} [done] - * Callback (optional). - * @returns {Promise | undefined} - * Nothing if `done` is given. - * Otherwise a promise, rejected with a fatal error or resolved with the - * processed file. - * - * The parsed, transformed, and compiled value is available at - * `file.value` (see note). - * - * > **Note**: unified typically compiles by serializing: most - * > compilers return `string` (or `Uint8Array`). - * > Some compilers, such as the one configured with - * > [`rehype-react`][rehype-react], return other values (in this case, a - * > React tree). - * > If you’re using a compiler that doesn’t serialize, expect different - * > result values. - * > - * > To register custom results in TypeScript, add them to - * > {@linkcode CompileResultMap}. - * - * [rehype-react]: https://github.com/rehypejs/rehype-react - */ - process(file, done) { - const self2 = this; - this.freeze(); - assertParser("process", this.parser || this.Parser); - assertCompiler("process", this.compiler || this.Compiler); - return done ? executor(void 0, done) : new Promise(executor); - function executor(resolve2, reject) { - const realFile = vfile(file); - const parseTree = ( - /** @type {HeadTree extends undefined ? Node : HeadTree} */ - /** @type {unknown} */ - self2.parse(realFile) - ); - self2.run(parseTree, realFile, function(error, tree, file2) { - if (error || !tree || !file2) { - return realDone(error); - } - const compileTree = ( - /** @type {CompileTree extends undefined ? Node : CompileTree} */ - /** @type {unknown} */ - tree - ); - const compileResult = self2.stringify(compileTree, file2); - if (looksLikeAValue(compileResult)) { - file2.value = compileResult; - } else { - file2.result = compileResult; - } - realDone( - error, - /** @type {VFileWithOutput} */ - file2 - ); - }); - function realDone(error, file2) { - if (error || !file2) { - reject(error); - } else if (resolve2) { - resolve2(file2); - } else { - ok(done, "`done` is defined if `resolve` is not"); - done(void 0, file2); - } - } - } - } - /** - * Process the given file as configured on the processor. - * - * An error is thrown if asynchronous transforms are configured. - * - * > **Note**: `processSync` freezes the processor if not already *frozen*. - * - * > **Note**: `processSync` performs the parse, run, and stringify phases. - * - * @param {Compatible | undefined} [file] - * File (optional); typically `string` or `VFile`; any value accepted as - * `x` in `new VFile(x)`. - * @returns {VFileWithOutput} - * The processed file. - * - * The parsed, transformed, and compiled value is available at - * `file.value` (see note). - * - * > **Note**: unified typically compiles by serializing: most - * > compilers return `string` (or `Uint8Array`). - * > Some compilers, such as the one configured with - * > [`rehype-react`][rehype-react], return other values (in this case, a - * > React tree). - * > If you’re using a compiler that doesn’t serialize, expect different - * > result values. - * > - * > To register custom results in TypeScript, add them to - * > {@linkcode CompileResultMap}. - * - * [rehype-react]: https://github.com/rehypejs/rehype-react - */ - processSync(file) { - let complete = false; - let result; - this.freeze(); - assertParser("processSync", this.parser || this.Parser); - assertCompiler("processSync", this.compiler || this.Compiler); - this.process(file, realDone); - assertDone("processSync", "process", complete); - ok(result, "we either bailed on an error or have a tree"); - return result; - function realDone(error, file2) { - complete = true; - bail(error); - result = file2; - } - } - /** - * Run *transformers* on a syntax tree. - * - * > **Note**: `run` freezes the processor if not already *frozen*. - * - * > **Note**: `run` performs the run phase, not other phases. - * - * @overload - * @param {HeadTree extends undefined ? Node : HeadTree} tree - * @param {RunCallback} done - * @returns {undefined} - * - * @overload - * @param {HeadTree extends undefined ? Node : HeadTree} tree - * @param {Compatible | undefined} file - * @param {RunCallback} done - * @returns {undefined} - * - * @overload - * @param {HeadTree extends undefined ? Node : HeadTree} tree - * @param {Compatible | undefined} [file] - * @returns {Promise} - * - * @param {HeadTree extends undefined ? Node : HeadTree} tree - * Tree to transform and inspect. - * @param {( - * RunCallback | - * Compatible - * )} [file] - * File associated with `node` (optional); any value accepted as `x` in - * `new VFile(x)`. - * @param {RunCallback} [done] - * Callback (optional). - * @returns {Promise | undefined} - * Nothing if `done` is given. - * Otherwise, a promise rejected with a fatal error or resolved with the - * transformed tree. - */ - run(tree, file, done) { - assertNode(tree); - this.freeze(); - const transformers = this.transformers; - if (!done && typeof file === "function") { - done = file; - file = void 0; - } - return done ? executor(void 0, done) : new Promise(executor); - function executor(resolve2, reject) { - ok( - typeof file !== "function", - "`file` can\u2019t be a `done` anymore, we checked" - ); - const realFile = vfile(file); - transformers.run(tree, realFile, realDone); - function realDone(error, outputTree, file2) { - const resultingTree = ( - /** @type {TailTree extends undefined ? Node : TailTree} */ - outputTree || tree - ); - if (error) { - reject(error); - } else if (resolve2) { - resolve2(resultingTree); - } else { - ok(done, "`done` is defined if `resolve` is not"); - done(void 0, resultingTree, file2); - } - } - } - } - /** - * Run *transformers* on a syntax tree. - * - * An error is thrown if asynchronous transforms are configured. - * - * > **Note**: `runSync` freezes the processor if not already *frozen*. - * - * > **Note**: `runSync` performs the run phase, not other phases. - * - * @param {HeadTree extends undefined ? Node : HeadTree} tree - * Tree to transform and inspect. - * @param {Compatible | undefined} [file] - * File associated with `node` (optional); any value accepted as `x` in - * `new VFile(x)`. - * @returns {TailTree extends undefined ? Node : TailTree} - * Transformed tree. - */ - runSync(tree, file) { - let complete = false; - let result; - this.run(tree, file, realDone); - assertDone("runSync", "run", complete); - ok(result, "we either bailed on an error or have a tree"); - return result; - function realDone(error, tree2) { - bail(error); - result = tree2; - complete = true; - } - } - /** - * Compile a syntax tree. - * - * > **Note**: `stringify` freezes the processor if not already *frozen*. - * - * > **Note**: `stringify` performs the stringify phase, not the run phase - * > or other phases. - * - * @param {CompileTree extends undefined ? Node : CompileTree} tree - * Tree to compile. - * @param {Compatible | undefined} [file] - * File associated with `node` (optional); any value accepted as `x` in - * `new VFile(x)`. - * @returns {CompileResult extends undefined ? Value : CompileResult} - * Textual representation of the tree (see note). - * - * > **Note**: unified typically compiles by serializing: most compilers - * > return `string` (or `Uint8Array`). - * > Some compilers, such as the one configured with - * > [`rehype-react`][rehype-react], return other values (in this case, a - * > React tree). - * > If you’re using a compiler that doesn’t serialize, expect different - * > result values. - * > - * > To register custom results in TypeScript, add them to - * > {@linkcode CompileResultMap}. - * - * [rehype-react]: https://github.com/rehypejs/rehype-react - */ - stringify(tree, file) { - this.freeze(); - const realFile = vfile(file); - const compiler2 = this.compiler || this.Compiler; - assertCompiler("stringify", compiler2); - assertNode(tree); - return compiler2(tree, realFile); - } - /** - * Configure the processor to use a plugin, a list of usable values, or a - * preset. - * - * If the processor is already using a plugin, the previous plugin - * configuration is changed based on the options that are passed in. - * In other words, the plugin is not added a second time. - * - * > **Note**: `use` cannot be called on *frozen* processors. - * > Call the processor first to create a new unfrozen processor. - * - * @example - * There are many ways to pass plugins to `.use()`. - * This example gives an overview: - * - * ```js - * import {unified} from 'unified' - * - * unified() - * // Plugin with options: - * .use(pluginA, {x: true, y: true}) - * // Passing the same plugin again merges configuration (to `{x: true, y: false, z: true}`): - * .use(pluginA, {y: false, z: true}) - * // Plugins: - * .use([pluginB, pluginC]) - * // Two plugins, the second with options: - * .use([pluginD, [pluginE, {}]]) - * // Preset with plugins and settings: - * .use({plugins: [pluginF, [pluginG, {}]], settings: {position: false}}) - * // Settings only: - * .use({settings: {position: false}}) - * ``` - * - * @template {Array} [Parameters=[]] - * @template {Node | string | undefined} [Input=undefined] - * @template [Output=Input] - * - * @overload - * @param {Preset | null | undefined} [preset] - * @returns {Processor} - * - * @overload - * @param {PluggableList} list - * @returns {Processor} - * - * @overload - * @param {Plugin} plugin - * @param {...(Parameters | [boolean])} parameters - * @returns {UsePlugin} - * - * @param {PluggableList | Plugin | Preset | null | undefined} value - * Usable value. - * @param {...unknown} parameters - * Parameters, when a plugin is given as a usable value. - * @returns {Processor} - * Current processor. - */ - use(value2, ...parameters) { - const attachers = this.attachers; - const namespace2 = this.namespace; - assertUnfrozen("use", this.frozen); - if (value2 === null || value2 === void 0) { - } else if (typeof value2 === "function") { - addPlugin(value2, parameters); - } else if (typeof value2 === "object") { - if (Array.isArray(value2)) { - addList(value2); - } else { - addPreset(value2); - } - } else { - throw new TypeError("Expected usable value, not `" + value2 + "`"); - } - return this; - function add3(value3) { - if (typeof value3 === "function") { - addPlugin(value3, []); - } else if (typeof value3 === "object") { - if (Array.isArray(value3)) { - const [plugin, ...parameters2] = ( - /** @type {PluginTuple>} */ - value3 - ); - addPlugin(plugin, parameters2); - } else { - addPreset(value3); - } - } else { - throw new TypeError("Expected usable value, not `" + value3 + "`"); - } - } - function addPreset(result) { - if (!("plugins" in result) && !("settings" in result)) { - throw new Error( - "Expected usable value but received an empty preset, which is probably a mistake: presets typically come with `plugins` and sometimes with `settings`, but this has neither" - ); - } - addList(result.plugins); - if (result.settings) { - namespace2.settings = (0, import_extend.default)(true, namespace2.settings, result.settings); - } - } - function addList(plugins13) { - let index2 = -1; - if (plugins13 === null || plugins13 === void 0) { - } else if (Array.isArray(plugins13)) { - while (++index2 < plugins13.length) { - const thing = plugins13[index2]; - add3(thing); - } - } else { - throw new TypeError("Expected a list of plugins, not `" + plugins13 + "`"); - } - } - function addPlugin(plugin, parameters2) { - let index2 = -1; - let entryIndex = -1; - while (++index2 < attachers.length) { - if (attachers[index2][0] === plugin) { - entryIndex = index2; - break; - } - } - if (entryIndex === -1) { - attachers.push([plugin, ...parameters2]); - } else if (parameters2.length > 0) { - let [primary, ...rest] = parameters2; - const currentPrimary = attachers[entryIndex][1]; - if (isPlainObject(currentPrimary) && isPlainObject(primary)) { - primary = (0, import_extend.default)(true, currentPrimary, primary); - } - attachers[entryIndex] = [plugin, primary, ...rest]; - } - } - } - }; - unified = new Processor().freeze(); - } -}); - -// node_modules/.pnpm/unified@11.0.5/node_modules/unified/index.js -var init_unified = __esm({ - "node_modules/.pnpm/unified@11.0.5/node_modules/unified/index.js"() { - init_lib5(); - } -}); - -// node_modules/.pnpm/ccount@2.0.1/node_modules/ccount/index.js -function ccount(value2, character) { - const source = String(value2); - if (typeof character !== "string") { - throw new TypeError("Expected character"); - } - let count2 = 0; - let index2 = source.indexOf(character); - while (index2 !== -1) { - count2++; - index2 = source.indexOf(character, index2 + character.length); - } - return count2; -} -var init_ccount = __esm({ - "node_modules/.pnpm/ccount@2.0.1/node_modules/ccount/index.js"() { - } -}); - -// node_modules/.pnpm/micromark-util-character@2.1.1/node_modules/micromark-util-character/index.js -function asciiControl(code4) { - return ( - // Special whitespace codes (which have negative values), C0 and Control - // character DEL - code4 !== null && (code4 < 32 || code4 === 127) - ); -} -function markdownLineEnding(code4) { - return code4 !== null && code4 < -2; -} -function markdownLineEndingOrSpace(code4) { - return code4 !== null && (code4 < 0 || code4 === 32); -} -function markdownSpace(code4) { - return code4 === -2 || code4 === -1 || code4 === 32; -} -function regexCheck(regex) { - return check; - function check(code4) { - return code4 !== null && code4 > -1 && regex.test(String.fromCharCode(code4)); - } -} -var asciiAlpha, asciiAlphanumeric, asciiAtext, asciiDigit, asciiHexDigit, asciiPunctuation, unicodePunctuation, unicodeWhitespace; -var init_micromark_util_character = __esm({ - "node_modules/.pnpm/micromark-util-character@2.1.1/node_modules/micromark-util-character/index.js"() { - asciiAlpha = regexCheck(/[A-Za-z]/); - asciiAlphanumeric = regexCheck(/[\dA-Za-z]/); - asciiAtext = regexCheck(/[#-'*+\--9=?A-Z^-~]/); - asciiDigit = regexCheck(/\d/); - asciiHexDigit = regexCheck(/[\dA-Fa-f]/); - asciiPunctuation = regexCheck(/[!-/:-@[-`{-~]/); - unicodePunctuation = regexCheck(/\p{P}|\p{S}/u); - unicodeWhitespace = regexCheck(/\s/); - } -}); - -// node_modules/.pnpm/unist-util-is@6.0.1/node_modules/unist-util-is/lib/index.js -function anyFactory(tests) { - const checks2 = []; - let index2 = -1; - while (++index2 < tests.length) { - checks2[index2] = convert(tests[index2]); - } - return castFactory(any); - function any(...parameters) { - let index3 = -1; - while (++index3 < checks2.length) { - if (checks2[index3].apply(this, parameters)) return true; - } - return false; - } -} -function propertiesFactory(check) { - const checkAsRecord = ( - /** @type {Record} */ - check - ); - return castFactory(all3); - function all3(node2) { - const nodeAsRecord = ( - /** @type {Record} */ - /** @type {unknown} */ - node2 - ); - let key2; - for (key2 in check) { - if (nodeAsRecord[key2] !== checkAsRecord[key2]) return false; - } - return true; - } -} -function typeFactory(check) { - return castFactory(type5); - function type5(node2) { - return node2 && node2.type === check; - } -} -function castFactory(testFunction) { - return check; - function check(value2, index2, parent) { - return Boolean( - looksLikeANode(value2) && testFunction.call( - this, - value2, - typeof index2 === "number" ? index2 : void 0, - parent || void 0 - ) - ); - } -} -function ok2() { - return true; -} -function looksLikeANode(value2) { - return value2 !== null && typeof value2 === "object" && "type" in value2; -} -var is, convert; -var init_lib6 = __esm({ - "node_modules/.pnpm/unist-util-is@6.0.1/node_modules/unist-util-is/lib/index.js"() { - is = // Note: overloads in JSDoc can’t yet use different `@template`s. - /** - * @type {( - * (>(node: unknown, test: Condition, index?: number | null | undefined, parent?: Parent | null | undefined, context?: unknown) => node is Node & {type: Condition[number]}) & - * (>(node: unknown, test: Condition, index?: number | null | undefined, parent?: Parent | null | undefined, context?: unknown) => node is Node & {type: Condition[number]}) & - * ((node: unknown, test: Condition, index?: number | null | undefined, parent?: Parent | null | undefined, context?: unknown) => node is Node & {type: Condition}) & - * ((node: unknown, test: Condition, index?: number | null | undefined, parent?: Parent | null | undefined, context?: unknown) => node is Node & Condition) & - * ((node: unknown, test: Condition, index?: number | null | undefined, parent?: Parent | null | undefined, context?: unknown) => node is Node & Predicate) & - * ((node?: null | undefined) => false) & - * ((node: unknown, test?: null | undefined, index?: number | null | undefined, parent?: Parent | null | undefined, context?: unknown) => node is Node) & - * ((node: unknown, test?: Test, index?: number | null | undefined, parent?: Parent | null | undefined, context?: unknown) => boolean) - * )} - */ - /** - * @param {unknown} [node] - * @param {Test} [test] - * @param {number | null | undefined} [index] - * @param {Parent | null | undefined} [parent] - * @param {unknown} [context] - * @returns {boolean} - */ - // eslint-disable-next-line max-params - (function(node2, test, index2, parent, context2) { - const check = convert(test); - if (index2 !== void 0 && index2 !== null && (typeof index2 !== "number" || index2 < 0 || index2 === Number.POSITIVE_INFINITY)) { - throw new Error("Expected positive finite index"); - } - if (parent !== void 0 && parent !== null && (!is(parent) || !parent.children)) { - throw new Error("Expected parent node"); - } - if ((parent === void 0 || parent === null) !== (index2 === void 0 || index2 === null)) { - throw new Error("Expected both parent and index"); - } - return looksLikeANode(node2) ? check.call(context2, node2, index2, parent) : false; - }); - convert = // Note: overloads in JSDoc can’t yet use different `@template`s. - /** - * @type {( - * ((test: Condition) => (node: unknown, index?: number | null | undefined, parent?: Parent | null | undefined, context?: unknown) => node is Node & {type: Condition}) & - * ((test: Condition) => (node: unknown, index?: number | null | undefined, parent?: Parent | null | undefined, context?: unknown) => node is Node & Condition) & - * ((test: Condition) => (node: unknown, index?: number | null | undefined, parent?: Parent | null | undefined, context?: unknown) => node is Node & Predicate) & - * ((test?: null | undefined) => (node?: unknown, index?: number | null | undefined, parent?: Parent | null | undefined, context?: unknown) => node is Node) & - * ((test?: Test) => Check) - * )} - */ - /** - * @param {Test} [test] - * @returns {Check} - */ - (function(test) { - if (test === null || test === void 0) { - return ok2; - } - if (typeof test === "function") { - return castFactory(test); - } - if (typeof test === "object") { - return Array.isArray(test) ? anyFactory(test) : ( - // Cast because `ReadonlyArray` goes into the above but `isArray` - // narrows to `Array`. - propertiesFactory( - /** @type {Props} */ - test - ) - ); - } - if (typeof test === "string") { - return typeFactory(test); - } - throw new Error("Expected function, string, or object as test"); - }); - } -}); - -// node_modules/.pnpm/unist-util-is@6.0.1/node_modules/unist-util-is/index.js -var init_unist_util_is = __esm({ - "node_modules/.pnpm/unist-util-is@6.0.1/node_modules/unist-util-is/index.js"() { - init_lib6(); - } -}); - -// node_modules/.pnpm/unist-util-visit-parents@6.0.2/node_modules/unist-util-visit-parents/lib/color.js -function color(d5) { - return d5; -} -var init_color = __esm({ - "node_modules/.pnpm/unist-util-visit-parents@6.0.2/node_modules/unist-util-visit-parents/lib/color.js"() { - } -}); - -// node_modules/.pnpm/unist-util-visit-parents@6.0.2/node_modules/unist-util-visit-parents/lib/index.js -function visitParents(tree, test, visitor, reverse) { - let check; - if (typeof test === "function" && typeof visitor !== "function") { - reverse = visitor; - visitor = test; - } else { - check = test; - } - const is3 = convert(check); - const step = reverse ? -1 : 1; - factory(tree, void 0, [])(); - function factory(node2, index2, parents) { - const value2 = ( - /** @type {Record} */ - node2 && typeof node2 === "object" ? node2 : {} - ); - if (typeof value2.type === "string") { - const name = ( - // `hast` - typeof value2.tagName === "string" ? value2.tagName : ( - // `xast` - typeof value2.name === "string" ? value2.name : void 0 - ) - ); - Object.defineProperty(visit2, "name", { - value: "node (" + color(node2.type + (name ? "<" + name + ">" : "")) + ")" - }); - } - return visit2; - function visit2() { - let result = empty2; - let subresult; - let offset; - let grandparents; - if (!test || is3(node2, index2, parents[parents.length - 1] || void 0)) { - result = toResult(visitor(node2, parents)); - if (result[0] === EXIT) { - return result; - } - } - if ("children" in node2 && node2.children) { - const nodeAsParent = ( - /** @type {UnistParent} */ - node2 - ); - if (nodeAsParent.children && result[0] !== SKIP) { - offset = (reverse ? nodeAsParent.children.length : -1) + step; - grandparents = parents.concat(nodeAsParent); - while (offset > -1 && offset < nodeAsParent.children.length) { - const child = nodeAsParent.children[offset]; - subresult = factory(child, offset, grandparents)(); - if (subresult[0] === EXIT) { - return subresult; - } - offset = typeof subresult[1] === "number" ? subresult[1] : offset + step; - } - } - } - return result; - } - } -} -function toResult(value2) { - if (Array.isArray(value2)) { - return value2; - } - if (typeof value2 === "number") { - return [CONTINUE, value2]; - } - return value2 === null || value2 === void 0 ? empty2 : [value2]; -} -var empty2, CONTINUE, EXIT, SKIP; -var init_lib7 = __esm({ - "node_modules/.pnpm/unist-util-visit-parents@6.0.2/node_modules/unist-util-visit-parents/lib/index.js"() { - init_unist_util_is(); - init_color(); - empty2 = []; - CONTINUE = true; - EXIT = false; - SKIP = "skip"; - } -}); - -// node_modules/.pnpm/unist-util-visit-parents@6.0.2/node_modules/unist-util-visit-parents/index.js -var init_unist_util_visit_parents = __esm({ - "node_modules/.pnpm/unist-util-visit-parents@6.0.2/node_modules/unist-util-visit-parents/index.js"() { - init_lib7(); - } -}); - -// node_modules/.pnpm/mdast-util-find-and-replace@3.0.2/node_modules/mdast-util-find-and-replace/lib/index.js -function findAndReplace(tree, list5, options) { - const settings = options || {}; - const ignored = convert(settings.ignore || []); - const pairs2 = toPairs(list5); - let pairIndex = -1; - while (++pairIndex < pairs2.length) { - visitParents(tree, "text", visitor); - } - function visitor(node2, parents) { - let index2 = -1; - let grandparent; - while (++index2 < parents.length) { - const parent = parents[index2]; - const siblings2 = grandparent ? grandparent.children : void 0; - if (ignored( - parent, - siblings2 ? siblings2.indexOf(parent) : void 0, - grandparent - )) { - return; - } - grandparent = parent; - } - if (grandparent) { - return handler2(node2, parents); - } - } - function handler2(node2, parents) { - const parent = parents[parents.length - 1]; - const find3 = pairs2[pairIndex][0]; - const replace5 = pairs2[pairIndex][1]; - let start = 0; - const siblings2 = parent.children; - const index2 = siblings2.indexOf(node2); - let change = false; - let nodes = []; - find3.lastIndex = 0; - let match2 = find3.exec(node2.value); - while (match2) { - const position3 = match2.index; - const matchObject = { - index: match2.index, - input: match2.input, - stack: [...parents, node2] - }; - let value2 = replace5(...match2, matchObject); - if (typeof value2 === "string") { - value2 = value2.length > 0 ? { type: "text", value: value2 } : void 0; - } - if (value2 === false) { - find3.lastIndex = position3 + 1; - } else { - if (start !== position3) { - nodes.push({ - type: "text", - value: node2.value.slice(start, position3) - }); - } - if (Array.isArray(value2)) { - nodes.push(...value2); - } else if (value2) { - nodes.push(value2); - } - start = position3 + match2[0].length; - change = true; - } - if (!find3.global) { - break; - } - match2 = find3.exec(node2.value); - } - if (change) { - if (start < node2.value.length) { - nodes.push({ type: "text", value: node2.value.slice(start) }); - } - parent.children.splice(index2, 1, ...nodes); - } else { - nodes = [node2]; - } - return index2 + nodes.length; - } -} -function toPairs(tupleOrList) { - const result = []; - if (!Array.isArray(tupleOrList)) { - throw new TypeError("Expected find and replace tuple or list of tuples"); - } - const list5 = !tupleOrList[0] || Array.isArray(tupleOrList[0]) ? tupleOrList : [tupleOrList]; - let index2 = -1; - while (++index2 < list5.length) { - const tuple = list5[index2]; - result.push([toExpression(tuple[0]), toFunction(tuple[1])]); - } - return result; -} -function toExpression(find3) { - return typeof find3 === "string" ? new RegExp(escapeStringRegexp(find3), "g") : find3; -} -function toFunction(replace5) { - return typeof replace5 === "function" ? replace5 : function() { - return replace5; - }; -} -var init_lib8 = __esm({ - "node_modules/.pnpm/mdast-util-find-and-replace@3.0.2/node_modules/mdast-util-find-and-replace/lib/index.js"() { - init_escape_string_regexp(); - init_unist_util_visit_parents(); - init_unist_util_is(); - } -}); - -// node_modules/.pnpm/mdast-util-find-and-replace@3.0.2/node_modules/mdast-util-find-and-replace/index.js -var init_mdast_util_find_and_replace = __esm({ - "node_modules/.pnpm/mdast-util-find-and-replace@3.0.2/node_modules/mdast-util-find-and-replace/index.js"() { - init_lib8(); - } -}); - -// node_modules/.pnpm/mdast-util-gfm-autolink-literal@2.0.1/node_modules/mdast-util-gfm-autolink-literal/lib/index.js -function gfmAutolinkLiteralFromMarkdown() { - return { - transforms: [transformGfmAutolinkLiterals], - enter: { - literalAutolink: enterLiteralAutolink, - literalAutolinkEmail: enterLiteralAutolinkValue, - literalAutolinkHttp: enterLiteralAutolinkValue, - literalAutolinkWww: enterLiteralAutolinkValue - }, - exit: { - literalAutolink: exitLiteralAutolink, - literalAutolinkEmail: exitLiteralAutolinkEmail, - literalAutolinkHttp: exitLiteralAutolinkHttp, - literalAutolinkWww: exitLiteralAutolinkWww - } - }; -} -function gfmAutolinkLiteralToMarkdown() { - return { - unsafe: [ - { - character: "@", - before: "[+\\-.\\w]", - after: "[\\-.\\w]", - inConstruct, - notInConstruct - }, - { - character: ".", - before: "[Ww]", - after: "[\\-.\\w]", - inConstruct, - notInConstruct - }, - { - character: ":", - before: "[ps]", - after: "\\/", - inConstruct, - notInConstruct - } - ] - }; -} -function enterLiteralAutolink(token) { - this.enter({ type: "link", title: null, url: "", children: [] }, token); -} -function enterLiteralAutolinkValue(token) { - this.config.enter.autolinkProtocol.call(this, token); -} -function exitLiteralAutolinkHttp(token) { - this.config.exit.autolinkProtocol.call(this, token); -} -function exitLiteralAutolinkWww(token) { - this.config.exit.data.call(this, token); - const node2 = this.stack[this.stack.length - 1]; - ok(node2.type === "link"); - node2.url = "http://" + this.sliceSerialize(token); -} -function exitLiteralAutolinkEmail(token) { - this.config.exit.autolinkEmail.call(this, token); -} -function exitLiteralAutolink(token) { - this.exit(token); -} -function transformGfmAutolinkLiterals(tree) { - findAndReplace( - tree, - [ - [/(https?:\/\/|www(?=\.))([-.\w]+)([^ \t\r\n]*)/gi, findUrl], - [/(?<=^|\s|\p{P}|\p{S})([-.\w+]+)@([-\w]+(?:\.[-\w]+)+)/gu, findEmail] - ], - { ignore: ["link", "linkReference"] } - ); -} -function findUrl(_4, protocol, domain2, path2, match2) { - let prefix4 = ""; - if (!previous(match2)) { - return false; - } - if (/^w/i.test(protocol)) { - domain2 = protocol + domain2; - protocol = ""; - prefix4 = "http://"; - } - if (!isCorrectDomain(domain2)) { - return false; - } - const parts = splitUrl(domain2 + path2); - if (!parts[0]) return false; - const result = { - type: "link", - title: null, - url: prefix4 + protocol + parts[0], - children: [{ type: "text", value: protocol + parts[0] }] - }; - if (parts[1]) { - return [result, { type: "text", value: parts[1] }]; - } - return result; -} -function findEmail(_4, atext, label, match2) { - if ( - // Not an expected previous character. - !previous(match2, true) || // Label ends in not allowed character. - /[-\d_]$/.test(label) - ) { - return false; - } - return { - type: "link", - title: null, - url: "mailto:" + atext + "@" + label, - children: [{ type: "text", value: atext + "@" + label }] - }; -} -function isCorrectDomain(domain2) { - const parts = domain2.split("."); - if (parts.length < 2 || parts[parts.length - 1] && (/_/.test(parts[parts.length - 1]) || !/[a-zA-Z\d]/.test(parts[parts.length - 1])) || parts[parts.length - 2] && (/_/.test(parts[parts.length - 2]) || !/[a-zA-Z\d]/.test(parts[parts.length - 2]))) { - return false; - } - return true; -} -function splitUrl(url) { - const trailExec = /[!"&'),.:;<>?\]}]+$/.exec(url); - if (!trailExec) { - return [url, void 0]; - } - url = url.slice(0, trailExec.index); - let trail2 = trailExec[0]; - let closingParenIndex = trail2.indexOf(")"); - const openingParens = ccount(url, "("); - let closingParens = ccount(url, ")"); - while (closingParenIndex !== -1 && openingParens > closingParens) { - url += trail2.slice(0, closingParenIndex + 1); - trail2 = trail2.slice(closingParenIndex + 1); - closingParenIndex = trail2.indexOf(")"); - closingParens++; - } - return [url, trail2]; -} -function previous(match2, email) { - const code4 = match2.input.charCodeAt(match2.index - 1); - return (match2.index === 0 || unicodeWhitespace(code4) || unicodePunctuation(code4)) && // If it’s an email, the previous character should not be a slash. - (!email || code4 !== 47); -} -var inConstruct, notInConstruct; -var init_lib9 = __esm({ - "node_modules/.pnpm/mdast-util-gfm-autolink-literal@2.0.1/node_modules/mdast-util-gfm-autolink-literal/lib/index.js"() { - init_ccount(); - init_default(); - init_micromark_util_character(); - init_mdast_util_find_and_replace(); - inConstruct = "phrasing"; - notInConstruct = ["autolink", "link", "image", "label"]; - } -}); - -// node_modules/.pnpm/mdast-util-gfm-autolink-literal@2.0.1/node_modules/mdast-util-gfm-autolink-literal/index.js -var init_mdast_util_gfm_autolink_literal = __esm({ - "node_modules/.pnpm/mdast-util-gfm-autolink-literal@2.0.1/node_modules/mdast-util-gfm-autolink-literal/index.js"() { - init_lib9(); - } -}); - -// node_modules/.pnpm/micromark-util-normalize-identifier@2.0.1/node_modules/micromark-util-normalize-identifier/index.js -function normalizeIdentifier(value2) { - return value2.replace(/[\t\n\r ]+/g, " ").replace(/^ | $/g, "").toLowerCase().toUpperCase(); -} -var init_micromark_util_normalize_identifier = __esm({ - "node_modules/.pnpm/micromark-util-normalize-identifier@2.0.1/node_modules/micromark-util-normalize-identifier/index.js"() { - } -}); - -// node_modules/.pnpm/mdast-util-gfm-footnote@2.1.0/node_modules/mdast-util-gfm-footnote/lib/index.js -function enterFootnoteCallString() { - this.buffer(); -} -function enterFootnoteCall(token) { - this.enter({ type: "footnoteReference", identifier: "", label: "" }, token); -} -function enterFootnoteDefinitionLabelString() { - this.buffer(); -} -function enterFootnoteDefinition(token) { - this.enter( - { type: "footnoteDefinition", identifier: "", label: "", children: [] }, - token - ); -} -function exitFootnoteCallString(token) { - const label = this.resume(); - const node2 = this.stack[this.stack.length - 1]; - ok(node2.type === "footnoteReference"); - node2.identifier = normalizeIdentifier( - this.sliceSerialize(token) - ).toLowerCase(); - node2.label = label; -} -function exitFootnoteCall(token) { - this.exit(token); -} -function exitFootnoteDefinitionLabelString(token) { - const label = this.resume(); - const node2 = this.stack[this.stack.length - 1]; - ok(node2.type === "footnoteDefinition"); - node2.identifier = normalizeIdentifier( - this.sliceSerialize(token) - ).toLowerCase(); - node2.label = label; -} -function exitFootnoteDefinition(token) { - this.exit(token); -} -function footnoteReferencePeek() { - return "["; -} -function footnoteReference(node2, _4, state, info) { - const tracker = state.createTracker(info); - let value2 = tracker.move("[^"); - const exit3 = state.enter("footnoteReference"); - const subexit = state.enter("reference"); - value2 += tracker.move( - state.safe(state.associationId(node2), { after: "]", before: value2 }) - ); - subexit(); - exit3(); - value2 += tracker.move("]"); - return value2; -} -function gfmFootnoteFromMarkdown() { - return { - enter: { - gfmFootnoteCallString: enterFootnoteCallString, - gfmFootnoteCall: enterFootnoteCall, - gfmFootnoteDefinitionLabelString: enterFootnoteDefinitionLabelString, - gfmFootnoteDefinition: enterFootnoteDefinition - }, - exit: { - gfmFootnoteCallString: exitFootnoteCallString, - gfmFootnoteCall: exitFootnoteCall, - gfmFootnoteDefinitionLabelString: exitFootnoteDefinitionLabelString, - gfmFootnoteDefinition: exitFootnoteDefinition - } - }; -} -function gfmFootnoteToMarkdown(options) { - let firstLineBlank = false; - if (options && options.firstLineBlank) { - firstLineBlank = true; - } - return { - handlers: { footnoteDefinition, footnoteReference }, - // This is on by default already. - unsafe: [{ character: "[", inConstruct: ["label", "phrasing", "reference"] }] - }; - function footnoteDefinition(node2, _4, state, info) { - const tracker = state.createTracker(info); - let value2 = tracker.move("[^"); - const exit3 = state.enter("footnoteDefinition"); - const subexit = state.enter("label"); - value2 += tracker.move( - state.safe(state.associationId(node2), { before: value2, after: "]" }) - ); - subexit(); - value2 += tracker.move("]:"); - if (node2.children && node2.children.length > 0) { - tracker.shift(4); - value2 += tracker.move( - (firstLineBlank ? "\n" : " ") + state.indentLines( - state.containerFlow(node2, tracker.current()), - firstLineBlank ? mapAll : mapExceptFirst - ) - ); - } - exit3(); - return value2; - } -} -function mapExceptFirst(line, index2, blank) { - return index2 === 0 ? line : mapAll(line, index2, blank); -} -function mapAll(line, index2, blank) { - return (blank ? "" : " ") + line; -} -var init_lib10 = __esm({ - "node_modules/.pnpm/mdast-util-gfm-footnote@2.1.0/node_modules/mdast-util-gfm-footnote/lib/index.js"() { - init_default(); - init_micromark_util_normalize_identifier(); - footnoteReference.peek = footnoteReferencePeek; - } -}); - -// node_modules/.pnpm/mdast-util-gfm-footnote@2.1.0/node_modules/mdast-util-gfm-footnote/index.js -var init_mdast_util_gfm_footnote = __esm({ - "node_modules/.pnpm/mdast-util-gfm-footnote@2.1.0/node_modules/mdast-util-gfm-footnote/index.js"() { - init_lib10(); - } -}); - -// node_modules/.pnpm/mdast-util-gfm-strikethrough@2.0.0/node_modules/mdast-util-gfm-strikethrough/lib/index.js -function gfmStrikethroughFromMarkdown() { - return { - canContainEols: ["delete"], - enter: { strikethrough: enterStrikethrough }, - exit: { strikethrough: exitStrikethrough } - }; -} -function gfmStrikethroughToMarkdown() { - return { - unsafe: [ - { - character: "~", - inConstruct: "phrasing", - notInConstruct: constructsWithoutStrikethrough - } - ], - handlers: { delete: handleDelete } - }; -} -function enterStrikethrough(token) { - this.enter({ type: "delete", children: [] }, token); -} -function exitStrikethrough(token) { - this.exit(token); -} -function handleDelete(node2, _4, state, info) { - const tracker = state.createTracker(info); - const exit3 = state.enter("strikethrough"); - let value2 = tracker.move("~~"); - value2 += state.containerPhrasing(node2, { - ...tracker.current(), - before: value2, - after: "~" - }); - value2 += tracker.move("~~"); - exit3(); - return value2; -} -function peekDelete() { - return "~"; -} -var constructsWithoutStrikethrough; -var init_lib11 = __esm({ - "node_modules/.pnpm/mdast-util-gfm-strikethrough@2.0.0/node_modules/mdast-util-gfm-strikethrough/lib/index.js"() { - constructsWithoutStrikethrough = [ - "autolink", - "destinationLiteral", - "destinationRaw", - "reference", - "titleQuote", - "titleApostrophe" - ]; - handleDelete.peek = peekDelete; - } -}); - -// node_modules/.pnpm/mdast-util-gfm-strikethrough@2.0.0/node_modules/mdast-util-gfm-strikethrough/index.js -var init_mdast_util_gfm_strikethrough = __esm({ - "node_modules/.pnpm/mdast-util-gfm-strikethrough@2.0.0/node_modules/mdast-util-gfm-strikethrough/index.js"() { - init_lib11(); - } -}); - -// node_modules/.pnpm/markdown-table@3.0.4/node_modules/markdown-table/index.js -function defaultStringLength(value2) { - return value2.length; -} -function markdownTable(table2, options) { - const settings = options || {}; - const align = (settings.align || []).concat(); - const stringLength = settings.stringLength || defaultStringLength; - const alignments = []; - const cellMatrix = []; - const sizeMatrix = []; - const longestCellByColumn = []; - let mostCellsPerRow = 0; - let rowIndex = -1; - while (++rowIndex < table2.length) { - const row2 = []; - const sizes2 = []; - let columnIndex2 = -1; - if (table2[rowIndex].length > mostCellsPerRow) { - mostCellsPerRow = table2[rowIndex].length; - } - while (++columnIndex2 < table2[rowIndex].length) { - const cell2 = serialize(table2[rowIndex][columnIndex2]); - if (settings.alignDelimiters !== false) { - const size = stringLength(cell2); - sizes2[columnIndex2] = size; - if (longestCellByColumn[columnIndex2] === void 0 || size > longestCellByColumn[columnIndex2]) { - longestCellByColumn[columnIndex2] = size; - } - } - row2.push(cell2); - } - cellMatrix[rowIndex] = row2; - sizeMatrix[rowIndex] = sizes2; - } - let columnIndex = -1; - if (typeof align === "object" && "length" in align) { - while (++columnIndex < mostCellsPerRow) { - alignments[columnIndex] = toAlignment(align[columnIndex]); - } - } else { - const code4 = toAlignment(align); - while (++columnIndex < mostCellsPerRow) { - alignments[columnIndex] = code4; - } - } - columnIndex = -1; - const row = []; - const sizes = []; - while (++columnIndex < mostCellsPerRow) { - const code4 = alignments[columnIndex]; - let before = ""; - let after = ""; - if (code4 === 99) { - before = ":"; - after = ":"; - } else if (code4 === 108) { - before = ":"; - } else if (code4 === 114) { - after = ":"; - } - let size = settings.alignDelimiters === false ? 1 : Math.max( - 1, - longestCellByColumn[columnIndex] - before.length - after.length - ); - const cell2 = before + "-".repeat(size) + after; - if (settings.alignDelimiters !== false) { - size = before.length + size + after.length; - if (size > longestCellByColumn[columnIndex]) { - longestCellByColumn[columnIndex] = size; - } - sizes[columnIndex] = size; - } - row[columnIndex] = cell2; - } - cellMatrix.splice(1, 0, row); - sizeMatrix.splice(1, 0, sizes); - rowIndex = -1; - const lines = []; - while (++rowIndex < cellMatrix.length) { - const row2 = cellMatrix[rowIndex]; - const sizes2 = sizeMatrix[rowIndex]; - columnIndex = -1; - const line = []; - while (++columnIndex < mostCellsPerRow) { - const cell2 = row2[columnIndex] || ""; - let before = ""; - let after = ""; - if (settings.alignDelimiters !== false) { - const size = longestCellByColumn[columnIndex] - (sizes2[columnIndex] || 0); - const code4 = alignments[columnIndex]; - if (code4 === 114) { - before = " ".repeat(size); - } else if (code4 === 99) { - if (size % 2) { - before = " ".repeat(size / 2 + 0.5); - after = " ".repeat(size / 2 - 0.5); - } else { - before = " ".repeat(size / 2); - after = before; - } - } else { - after = " ".repeat(size); - } - } - if (settings.delimiterStart !== false && !columnIndex) { - line.push("|"); - } - if (settings.padding !== false && // Don’t add the opening space if we’re not aligning and the cell is - // empty: there will be a closing space. - !(settings.alignDelimiters === false && cell2 === "") && (settings.delimiterStart !== false || columnIndex)) { - line.push(" "); - } - if (settings.alignDelimiters !== false) { - line.push(before); - } - line.push(cell2); - if (settings.alignDelimiters !== false) { - line.push(after); - } - if (settings.padding !== false) { - line.push(" "); - } - if (settings.delimiterEnd !== false || columnIndex !== mostCellsPerRow - 1) { - line.push("|"); - } - } - lines.push( - settings.delimiterEnd === false ? line.join("").replace(/ +$/, "") : line.join("") - ); - } - return lines.join("\n"); -} -function serialize(value2) { - return value2 === null || value2 === void 0 ? "" : String(value2); -} -function toAlignment(value2) { - const code4 = typeof value2 === "string" ? value2.codePointAt(0) : 0; - return code4 === 67 || code4 === 99 ? 99 : code4 === 76 || code4 === 108 ? 108 : code4 === 82 || code4 === 114 ? 114 : 0; -} -var init_markdown_table = __esm({ - "node_modules/.pnpm/markdown-table@3.0.4/node_modules/markdown-table/index.js"() { - } -}); - -// node_modules/.pnpm/zwitch@2.0.4/node_modules/zwitch/index.js -function zwitch(key2, options) { - const settings = options || {}; - function one3(value2, ...parameters) { - let fn = one3.invalid; - const handlers2 = one3.handlers; - if (value2 && own2.call(value2, key2)) { - const id = String(value2[key2]); - fn = own2.call(handlers2, id) ? handlers2[id] : one3.unknown; - } - if (fn) { - return fn.call(this, value2, ...parameters); - } - } - one3.handlers = settings.handlers || {}; - one3.invalid = settings.invalid; - one3.unknown = settings.unknown; - return one3; -} -var own2; -var init_zwitch = __esm({ - "node_modules/.pnpm/zwitch@2.0.4/node_modules/zwitch/index.js"() { - own2 = {}.hasOwnProperty; - } -}); - -// node_modules/.pnpm/mdast-util-to-markdown@2.1.2/node_modules/mdast-util-to-markdown/lib/configure.js -function configure(base, extension2) { - let index2 = -1; - let key2; - if (extension2.extensions) { - while (++index2 < extension2.extensions.length) { - configure(base, extension2.extensions[index2]); - } - } - for (key2 in extension2) { - if (own3.call(extension2, key2)) { - switch (key2) { - case "extensions": { - break; - } - /* c8 ignore next 4 */ - case "unsafe": { - list(base[key2], extension2[key2]); - break; - } - case "join": { - list(base[key2], extension2[key2]); - break; - } - case "handlers": { - map3(base[key2], extension2[key2]); - break; - } - default: { - base.options[key2] = extension2[key2]; - } - } - } - } - return base; -} -function list(left, right) { - if (right) { - left.push(...right); - } -} -function map3(left, right) { - if (right) { - Object.assign(left, right); - } -} -var own3; -var init_configure = __esm({ - "node_modules/.pnpm/mdast-util-to-markdown@2.1.2/node_modules/mdast-util-to-markdown/lib/configure.js"() { - own3 = {}.hasOwnProperty; - } -}); - -// node_modules/.pnpm/mdast-util-to-markdown@2.1.2/node_modules/mdast-util-to-markdown/lib/handle/blockquote.js -function blockquote(node2, _4, state, info) { - const exit3 = state.enter("blockquote"); - const tracker = state.createTracker(info); - tracker.move("> "); - tracker.shift(2); - const value2 = state.indentLines( - state.containerFlow(node2, tracker.current()), - map4 - ); - exit3(); - return value2; -} -function map4(line, _4, blank) { - return ">" + (blank ? "" : " ") + line; -} -var init_blockquote = __esm({ - "node_modules/.pnpm/mdast-util-to-markdown@2.1.2/node_modules/mdast-util-to-markdown/lib/handle/blockquote.js"() { - } -}); - -// node_modules/.pnpm/mdast-util-to-markdown@2.1.2/node_modules/mdast-util-to-markdown/lib/util/pattern-in-scope.js -function patternInScope(stack, pattern) { - return listInScope(stack, pattern.inConstruct, true) && !listInScope(stack, pattern.notInConstruct, false); -} -function listInScope(stack, list5, none) { - if (typeof list5 === "string") { - list5 = [list5]; - } - if (!list5 || list5.length === 0) { - return none; - } - let index2 = -1; - while (++index2 < list5.length) { - if (stack.includes(list5[index2])) { - return true; - } - } - return false; -} -var init_pattern_in_scope = __esm({ - "node_modules/.pnpm/mdast-util-to-markdown@2.1.2/node_modules/mdast-util-to-markdown/lib/util/pattern-in-scope.js"() { - } -}); - -// node_modules/.pnpm/mdast-util-to-markdown@2.1.2/node_modules/mdast-util-to-markdown/lib/handle/break.js -function hardBreak(_4, _1, state, info) { - let index2 = -1; - while (++index2 < state.unsafe.length) { - if (state.unsafe[index2].character === "\n" && patternInScope(state.stack, state.unsafe[index2])) { - return /[ \t]/.test(info.before) ? "" : " "; - } - } - return "\\\n"; -} -var init_break = __esm({ - "node_modules/.pnpm/mdast-util-to-markdown@2.1.2/node_modules/mdast-util-to-markdown/lib/handle/break.js"() { - init_pattern_in_scope(); - } -}); - -// node_modules/.pnpm/longest-streak@3.1.0/node_modules/longest-streak/index.js -function longestStreak(value2, substring) { - const source = String(value2); - let index2 = source.indexOf(substring); - let expected = index2; - let count2 = 0; - let max3 = 0; - if (typeof substring !== "string") { - throw new TypeError("Expected substring"); - } - while (index2 !== -1) { - if (index2 === expected) { - if (++count2 > max3) { - max3 = count2; - } - } else { - count2 = 1; - } - expected = index2 + substring.length; - index2 = source.indexOf(substring, expected); - } - return max3; -} -var init_longest_streak = __esm({ - "node_modules/.pnpm/longest-streak@3.1.0/node_modules/longest-streak/index.js"() { - } -}); - -// node_modules/.pnpm/mdast-util-to-markdown@2.1.2/node_modules/mdast-util-to-markdown/lib/util/format-code-as-indented.js -function formatCodeAsIndented(node2, state) { - return Boolean( - state.options.fences === false && node2.value && // If there’s no info… - !node2.lang && // And there’s a non-whitespace character… - /[^ \r\n]/.test(node2.value) && // And the value doesn’t start or end in a blank… - !/^[\t ]*(?:[\r\n]|$)|(?:^|[\r\n])[\t ]*$/.test(node2.value) - ); -} -var init_format_code_as_indented = __esm({ - "node_modules/.pnpm/mdast-util-to-markdown@2.1.2/node_modules/mdast-util-to-markdown/lib/util/format-code-as-indented.js"() { - } -}); - -// node_modules/.pnpm/mdast-util-to-markdown@2.1.2/node_modules/mdast-util-to-markdown/lib/util/check-fence.js -function checkFence(state) { - const marker = state.options.fence || "`"; - if (marker !== "`" && marker !== "~") { - throw new Error( - "Cannot serialize code with `" + marker + "` for `options.fence`, expected `` ` `` or `~`" - ); - } - return marker; -} -var init_check_fence = __esm({ - "node_modules/.pnpm/mdast-util-to-markdown@2.1.2/node_modules/mdast-util-to-markdown/lib/util/check-fence.js"() { - } -}); - -// node_modules/.pnpm/mdast-util-to-markdown@2.1.2/node_modules/mdast-util-to-markdown/lib/handle/code.js -function code(node2, _4, state, info) { - const marker = checkFence(state); - const raw2 = node2.value || ""; - const suffix = marker === "`" ? "GraveAccent" : "Tilde"; - if (formatCodeAsIndented(node2, state)) { - const exit4 = state.enter("codeIndented"); - const value3 = state.indentLines(raw2, map5); - exit4(); - return value3; - } - const tracker = state.createTracker(info); - const sequence = marker.repeat(Math.max(longestStreak(raw2, marker) + 1, 3)); - const exit3 = state.enter("codeFenced"); - let value2 = tracker.move(sequence); - if (node2.lang) { - const subexit = state.enter(`codeFencedLang${suffix}`); - value2 += tracker.move( - state.safe(node2.lang, { - before: value2, - after: " ", - encode: ["`"], - ...tracker.current() - }) - ); - subexit(); - } - if (node2.lang && node2.meta) { - const subexit = state.enter(`codeFencedMeta${suffix}`); - value2 += tracker.move(" "); - value2 += tracker.move( - state.safe(node2.meta, { - before: value2, - after: "\n", - encode: ["`"], - ...tracker.current() - }) - ); - subexit(); - } - value2 += tracker.move("\n"); - if (raw2) { - value2 += tracker.move(raw2 + "\n"); - } - value2 += tracker.move(sequence); - exit3(); - return value2; -} -function map5(line, _4, blank) { - return (blank ? "" : " ") + line; -} -var init_code = __esm({ - "node_modules/.pnpm/mdast-util-to-markdown@2.1.2/node_modules/mdast-util-to-markdown/lib/handle/code.js"() { - init_longest_streak(); - init_format_code_as_indented(); - init_check_fence(); - } -}); - -// node_modules/.pnpm/mdast-util-to-markdown@2.1.2/node_modules/mdast-util-to-markdown/lib/util/check-quote.js -function checkQuote(state) { - const marker = state.options.quote || '"'; - if (marker !== '"' && marker !== "'") { - throw new Error( - "Cannot serialize title with `" + marker + "` for `options.quote`, expected `\"`, or `'`" - ); - } - return marker; -} -var init_check_quote = __esm({ - "node_modules/.pnpm/mdast-util-to-markdown@2.1.2/node_modules/mdast-util-to-markdown/lib/util/check-quote.js"() { - } -}); - -// node_modules/.pnpm/mdast-util-to-markdown@2.1.2/node_modules/mdast-util-to-markdown/lib/handle/definition.js -function definition(node2, _4, state, info) { - const quote = checkQuote(state); - const suffix = quote === '"' ? "Quote" : "Apostrophe"; - const exit3 = state.enter("definition"); - let subexit = state.enter("label"); - const tracker = state.createTracker(info); - let value2 = tracker.move("["); - value2 += tracker.move( - state.safe(state.associationId(node2), { - before: value2, - after: "]", - ...tracker.current() - }) - ); - value2 += tracker.move("]: "); - subexit(); - if ( - // If there’s no url, or… - !node2.url || // If there are control characters or whitespace. - /[\0- \u007F]/.test(node2.url) - ) { - subexit = state.enter("destinationLiteral"); - value2 += tracker.move("<"); - value2 += tracker.move( - state.safe(node2.url, { before: value2, after: ">", ...tracker.current() }) - ); - value2 += tracker.move(">"); - } else { - subexit = state.enter("destinationRaw"); - value2 += tracker.move( - state.safe(node2.url, { - before: value2, - after: node2.title ? " " : "\n", - ...tracker.current() - }) - ); - } - subexit(); - if (node2.title) { - subexit = state.enter(`title${suffix}`); - value2 += tracker.move(" " + quote); - value2 += tracker.move( - state.safe(node2.title, { - before: value2, - after: quote, - ...tracker.current() - }) - ); - value2 += tracker.move(quote); - subexit(); - } - exit3(); - return value2; -} -var init_definition = __esm({ - "node_modules/.pnpm/mdast-util-to-markdown@2.1.2/node_modules/mdast-util-to-markdown/lib/handle/definition.js"() { - init_check_quote(); - } -}); - -// node_modules/.pnpm/mdast-util-to-markdown@2.1.2/node_modules/mdast-util-to-markdown/lib/util/check-emphasis.js -function checkEmphasis(state) { - const marker = state.options.emphasis || "*"; - if (marker !== "*" && marker !== "_") { - throw new Error( - "Cannot serialize emphasis with `" + marker + "` for `options.emphasis`, expected `*`, or `_`" - ); - } - return marker; -} -var init_check_emphasis = __esm({ - "node_modules/.pnpm/mdast-util-to-markdown@2.1.2/node_modules/mdast-util-to-markdown/lib/util/check-emphasis.js"() { - } -}); - -// node_modules/.pnpm/mdast-util-to-markdown@2.1.2/node_modules/mdast-util-to-markdown/lib/util/encode-character-reference.js -function encodeCharacterReference(code4) { - return "&#x" + code4.toString(16).toUpperCase() + ";"; -} -var init_encode_character_reference = __esm({ - "node_modules/.pnpm/mdast-util-to-markdown@2.1.2/node_modules/mdast-util-to-markdown/lib/util/encode-character-reference.js"() { - } -}); - -// node_modules/.pnpm/micromark-util-classify-character@2.0.1/node_modules/micromark-util-classify-character/index.js -function classifyCharacter(code4) { - if (code4 === null || markdownLineEndingOrSpace(code4) || unicodeWhitespace(code4)) { - return 1; - } - if (unicodePunctuation(code4)) { - return 2; - } -} -var init_micromark_util_classify_character = __esm({ - "node_modules/.pnpm/micromark-util-classify-character@2.0.1/node_modules/micromark-util-classify-character/index.js"() { - init_micromark_util_character(); - } -}); - -// node_modules/.pnpm/mdast-util-to-markdown@2.1.2/node_modules/mdast-util-to-markdown/lib/util/encode-info.js -function encodeInfo(outside, inside, marker) { - const outsideKind = classifyCharacter(outside); - const insideKind = classifyCharacter(inside); - if (outsideKind === void 0) { - return insideKind === void 0 ? ( - // Letter inside: - // we have to encode *both* letters for `_` as it is looser. - // it already forms for `*` (and GFMs `~`). - marker === "_" ? { inside: true, outside: true } : { inside: false, outside: false } - ) : insideKind === 1 ? ( - // Whitespace inside: encode both (letter, whitespace). - { inside: true, outside: true } - ) : ( - // Punctuation inside: encode outer (letter) - { inside: false, outside: true } - ); - } - if (outsideKind === 1) { - return insideKind === void 0 ? ( - // Letter inside: already forms. - { inside: false, outside: false } - ) : insideKind === 1 ? ( - // Whitespace inside: encode both (whitespace). - { inside: true, outside: true } - ) : ( - // Punctuation inside: already forms. - { inside: false, outside: false } - ); - } - return insideKind === void 0 ? ( - // Letter inside: already forms. - { inside: false, outside: false } - ) : insideKind === 1 ? ( - // Whitespace inside: encode inner (whitespace). - { inside: true, outside: false } - ) : ( - // Punctuation inside: already forms. - { inside: false, outside: false } - ); -} -var init_encode_info = __esm({ - "node_modules/.pnpm/mdast-util-to-markdown@2.1.2/node_modules/mdast-util-to-markdown/lib/util/encode-info.js"() { - init_micromark_util_classify_character(); - } -}); - -// node_modules/.pnpm/mdast-util-to-markdown@2.1.2/node_modules/mdast-util-to-markdown/lib/handle/emphasis.js -function emphasis(node2, _4, state, info) { - const marker = checkEmphasis(state); - const exit3 = state.enter("emphasis"); - const tracker = state.createTracker(info); - const before = tracker.move(marker); - let between2 = tracker.move( - state.containerPhrasing(node2, { - after: marker, - before, - ...tracker.current() - }) - ); - const betweenHead = between2.charCodeAt(0); - const open = encodeInfo( - info.before.charCodeAt(info.before.length - 1), - betweenHead, - marker - ); - if (open.inside) { - between2 = encodeCharacterReference(betweenHead) + between2.slice(1); - } - const betweenTail = between2.charCodeAt(between2.length - 1); - const close7 = encodeInfo(info.after.charCodeAt(0), betweenTail, marker); - if (close7.inside) { - between2 = between2.slice(0, -1) + encodeCharacterReference(betweenTail); - } - const after = tracker.move(marker); - exit3(); - state.attentionEncodeSurroundingInfo = { - after: close7.outside, - before: open.outside - }; - return before + between2 + after; -} -function emphasisPeek(_4, _1, state) { - return state.options.emphasis || "*"; -} -var init_emphasis = __esm({ - "node_modules/.pnpm/mdast-util-to-markdown@2.1.2/node_modules/mdast-util-to-markdown/lib/handle/emphasis.js"() { - init_check_emphasis(); - init_encode_character_reference(); - init_encode_info(); - emphasis.peek = emphasisPeek; - } -}); - -// node_modules/.pnpm/unist-util-visit@5.1.0/node_modules/unist-util-visit/lib/index.js -function visit(tree, testOrVisitor, visitorOrReverse, maybeReverse) { - let reverse; - let test; - let visitor; - if (typeof testOrVisitor === "function" && typeof visitorOrReverse !== "function") { - test = void 0; - visitor = testOrVisitor; - reverse = visitorOrReverse; - } else { - test = testOrVisitor; - visitor = visitorOrReverse; - reverse = maybeReverse; - } - visitParents(tree, test, overload, reverse); - function overload(node2, parents) { - const parent = parents[parents.length - 1]; - const index2 = parent ? parent.children.indexOf(node2) : void 0; - return visitor(node2, index2, parent); - } -} -var init_lib12 = __esm({ - "node_modules/.pnpm/unist-util-visit@5.1.0/node_modules/unist-util-visit/lib/index.js"() { - init_unist_util_visit_parents(); - init_unist_util_visit_parents(); - } -}); - -// node_modules/.pnpm/unist-util-visit@5.1.0/node_modules/unist-util-visit/index.js -var init_unist_util_visit = __esm({ - "node_modules/.pnpm/unist-util-visit@5.1.0/node_modules/unist-util-visit/index.js"() { - init_lib12(); - } -}); - -// node_modules/.pnpm/mdast-util-to-string@4.0.0/node_modules/mdast-util-to-string/lib/index.js -function toString(value2, options) { - const settings = options || emptyOptions; - const includeImageAlt = typeof settings.includeImageAlt === "boolean" ? settings.includeImageAlt : true; - const includeHtml = typeof settings.includeHtml === "boolean" ? settings.includeHtml : true; - return one(value2, includeImageAlt, includeHtml); -} -function one(value2, includeImageAlt, includeHtml) { - if (node(value2)) { - if ("value" in value2) { - return value2.type === "html" && !includeHtml ? "" : value2.value; - } - if (includeImageAlt && "alt" in value2 && value2.alt) { - return value2.alt; - } - if ("children" in value2) { - return all(value2.children, includeImageAlt, includeHtml); - } - } - if (Array.isArray(value2)) { - return all(value2, includeImageAlt, includeHtml); - } - return ""; -} -function all(values, includeImageAlt, includeHtml) { - const result = []; - let index2 = -1; - while (++index2 < values.length) { - result[index2] = one(values[index2], includeImageAlt, includeHtml); - } - return result.join(""); -} -function node(value2) { - return Boolean(value2 && typeof value2 === "object"); -} -var emptyOptions; -var init_lib13 = __esm({ - "node_modules/.pnpm/mdast-util-to-string@4.0.0/node_modules/mdast-util-to-string/lib/index.js"() { - emptyOptions = {}; - } -}); - -// node_modules/.pnpm/mdast-util-to-string@4.0.0/node_modules/mdast-util-to-string/index.js -var init_mdast_util_to_string = __esm({ - "node_modules/.pnpm/mdast-util-to-string@4.0.0/node_modules/mdast-util-to-string/index.js"() { - init_lib13(); - } -}); - -// node_modules/.pnpm/mdast-util-to-markdown@2.1.2/node_modules/mdast-util-to-markdown/lib/util/format-heading-as-setext.js -function formatHeadingAsSetext(node2, state) { - let literalWithBreak = false; - visit(node2, function(node3) { - if ("value" in node3 && /\r?\n|\r/.test(node3.value) || node3.type === "break") { - literalWithBreak = true; - return EXIT; - } - }); - return Boolean( - (!node2.depth || node2.depth < 3) && toString(node2) && (state.options.setext || literalWithBreak) - ); -} -var init_format_heading_as_setext = __esm({ - "node_modules/.pnpm/mdast-util-to-markdown@2.1.2/node_modules/mdast-util-to-markdown/lib/util/format-heading-as-setext.js"() { - init_unist_util_visit(); - init_mdast_util_to_string(); - } -}); - -// node_modules/.pnpm/mdast-util-to-markdown@2.1.2/node_modules/mdast-util-to-markdown/lib/handle/heading.js -function heading(node2, _4, state, info) { - const rank = Math.max(Math.min(6, node2.depth || 1), 1); - const tracker = state.createTracker(info); - if (formatHeadingAsSetext(node2, state)) { - const exit4 = state.enter("headingSetext"); - const subexit2 = state.enter("phrasing"); - const value3 = state.containerPhrasing(node2, { - ...tracker.current(), - before: "\n", - after: "\n" - }); - subexit2(); - exit4(); - return value3 + "\n" + (rank === 1 ? "=" : "-").repeat( - // The whole size… - value3.length - // Minus the position of the character after the last EOL (or - // 0 if there is none)… - (Math.max(value3.lastIndexOf("\r"), value3.lastIndexOf("\n")) + 1) - ); - } - const sequence = "#".repeat(rank); - const exit3 = state.enter("headingAtx"); - const subexit = state.enter("phrasing"); - tracker.move(sequence + " "); - let value2 = state.containerPhrasing(node2, { - before: "# ", - after: "\n", - ...tracker.current() - }); - if (/^[\t ]/.test(value2)) { - value2 = encodeCharacterReference(value2.charCodeAt(0)) + value2.slice(1); - } - value2 = value2 ? sequence + " " + value2 : sequence; - if (state.options.closeAtx) { - value2 += " " + sequence; - } - subexit(); - exit3(); - return value2; -} -var init_heading = __esm({ - "node_modules/.pnpm/mdast-util-to-markdown@2.1.2/node_modules/mdast-util-to-markdown/lib/handle/heading.js"() { - init_encode_character_reference(); - init_format_heading_as_setext(); - } -}); - -// node_modules/.pnpm/mdast-util-to-markdown@2.1.2/node_modules/mdast-util-to-markdown/lib/handle/html.js -function html(node2) { - return node2.value || ""; -} -function htmlPeek() { - return "<"; -} -var init_html = __esm({ - "node_modules/.pnpm/mdast-util-to-markdown@2.1.2/node_modules/mdast-util-to-markdown/lib/handle/html.js"() { - html.peek = htmlPeek; - } -}); - -// node_modules/.pnpm/mdast-util-to-markdown@2.1.2/node_modules/mdast-util-to-markdown/lib/handle/image.js -function image(node2, _4, state, info) { - const quote = checkQuote(state); - const suffix = quote === '"' ? "Quote" : "Apostrophe"; - const exit3 = state.enter("image"); - let subexit = state.enter("label"); - const tracker = state.createTracker(info); - let value2 = tracker.move("!["); - value2 += tracker.move( - state.safe(node2.alt, { before: value2, after: "]", ...tracker.current() }) - ); - value2 += tracker.move("]("); - subexit(); - if ( - // If there’s no url but there is a title… - !node2.url && node2.title || // If there are control characters or whitespace. - /[\0- \u007F]/.test(node2.url) - ) { - subexit = state.enter("destinationLiteral"); - value2 += tracker.move("<"); - value2 += tracker.move( - state.safe(node2.url, { before: value2, after: ">", ...tracker.current() }) - ); - value2 += tracker.move(">"); - } else { - subexit = state.enter("destinationRaw"); - value2 += tracker.move( - state.safe(node2.url, { - before: value2, - after: node2.title ? " " : ")", - ...tracker.current() - }) - ); - } - subexit(); - if (node2.title) { - subexit = state.enter(`title${suffix}`); - value2 += tracker.move(" " + quote); - value2 += tracker.move( - state.safe(node2.title, { - before: value2, - after: quote, - ...tracker.current() - }) - ); - value2 += tracker.move(quote); - subexit(); - } - value2 += tracker.move(")"); - exit3(); - return value2; -} -function imagePeek() { - return "!"; -} -var init_image = __esm({ - "node_modules/.pnpm/mdast-util-to-markdown@2.1.2/node_modules/mdast-util-to-markdown/lib/handle/image.js"() { - init_check_quote(); - image.peek = imagePeek; - } -}); - -// node_modules/.pnpm/mdast-util-to-markdown@2.1.2/node_modules/mdast-util-to-markdown/lib/handle/image-reference.js -function imageReference(node2, _4, state, info) { - const type5 = node2.referenceType; - const exit3 = state.enter("imageReference"); - let subexit = state.enter("label"); - const tracker = state.createTracker(info); - let value2 = tracker.move("!["); - const alt = state.safe(node2.alt, { - before: value2, - after: "]", - ...tracker.current() - }); - value2 += tracker.move(alt + "]["); - subexit(); - const stack = state.stack; - state.stack = []; - subexit = state.enter("reference"); - const reference = state.safe(state.associationId(node2), { - before: value2, - after: "]", - ...tracker.current() - }); - subexit(); - state.stack = stack; - exit3(); - if (type5 === "full" || !alt || alt !== reference) { - value2 += tracker.move(reference + "]"); - } else if (type5 === "shortcut") { - value2 = value2.slice(0, -1); - } else { - value2 += tracker.move("]"); - } - return value2; -} -function imageReferencePeek() { - return "!"; -} -var init_image_reference = __esm({ - "node_modules/.pnpm/mdast-util-to-markdown@2.1.2/node_modules/mdast-util-to-markdown/lib/handle/image-reference.js"() { - imageReference.peek = imageReferencePeek; - } -}); - -// node_modules/.pnpm/mdast-util-to-markdown@2.1.2/node_modules/mdast-util-to-markdown/lib/handle/inline-code.js -function inlineCode(node2, _4, state) { - let value2 = node2.value || ""; - let sequence = "`"; - let index2 = -1; - while (new RegExp("(^|[^`])" + sequence + "([^`]|$)").test(value2)) { - sequence += "`"; - } - if (/[^ \r\n]/.test(value2) && (/^[ \r\n]/.test(value2) && /[ \r\n]$/.test(value2) || /^`|`$/.test(value2))) { - value2 = " " + value2 + " "; - } - while (++index2 < state.unsafe.length) { - const pattern = state.unsafe[index2]; - const expression = state.compilePattern(pattern); - let match2; - if (!pattern.atBreak) continue; - while (match2 = expression.exec(value2)) { - let position3 = match2.index; - if (value2.charCodeAt(position3) === 10 && value2.charCodeAt(position3 - 1) === 13) { - position3--; - } - value2 = value2.slice(0, position3) + " " + value2.slice(match2.index + 1); - } - } - return sequence + value2 + sequence; -} -function inlineCodePeek() { - return "`"; -} -var init_inline_code = __esm({ - "node_modules/.pnpm/mdast-util-to-markdown@2.1.2/node_modules/mdast-util-to-markdown/lib/handle/inline-code.js"() { - inlineCode.peek = inlineCodePeek; - } -}); - -// node_modules/.pnpm/mdast-util-to-markdown@2.1.2/node_modules/mdast-util-to-markdown/lib/util/format-link-as-autolink.js -function formatLinkAsAutolink(node2, state) { - const raw2 = toString(node2); - return Boolean( - !state.options.resourceLink && // If there’s a url… - node2.url && // And there’s a no title… - !node2.title && // And the content of `node` is a single text node… - node2.children && node2.children.length === 1 && node2.children[0].type === "text" && // And if the url is the same as the content… - (raw2 === node2.url || "mailto:" + raw2 === node2.url) && // And that starts w/ a protocol… - /^[a-z][a-z+.-]+:/i.test(node2.url) && // And that doesn’t contain ASCII control codes (character escapes and - // references don’t work), space, or angle brackets… - !/[\0- <>\u007F]/.test(node2.url) - ); -} -var init_format_link_as_autolink = __esm({ - "node_modules/.pnpm/mdast-util-to-markdown@2.1.2/node_modules/mdast-util-to-markdown/lib/util/format-link-as-autolink.js"() { - init_mdast_util_to_string(); - } -}); - -// node_modules/.pnpm/mdast-util-to-markdown@2.1.2/node_modules/mdast-util-to-markdown/lib/handle/link.js -function link(node2, _4, state, info) { - const quote = checkQuote(state); - const suffix = quote === '"' ? "Quote" : "Apostrophe"; - const tracker = state.createTracker(info); - let exit3; - let subexit; - if (formatLinkAsAutolink(node2, state)) { - const stack = state.stack; - state.stack = []; - exit3 = state.enter("autolink"); - let value3 = tracker.move("<"); - value3 += tracker.move( - state.containerPhrasing(node2, { - before: value3, - after: ">", - ...tracker.current() - }) - ); - value3 += tracker.move(">"); - exit3(); - state.stack = stack; - return value3; - } - exit3 = state.enter("link"); - subexit = state.enter("label"); - let value2 = tracker.move("["); - value2 += tracker.move( - state.containerPhrasing(node2, { - before: value2, - after: "](", - ...tracker.current() - }) - ); - value2 += tracker.move("]("); - subexit(); - if ( - // If there’s no url but there is a title… - !node2.url && node2.title || // If there are control characters or whitespace. - /[\0- \u007F]/.test(node2.url) - ) { - subexit = state.enter("destinationLiteral"); - value2 += tracker.move("<"); - value2 += tracker.move( - state.safe(node2.url, { before: value2, after: ">", ...tracker.current() }) - ); - value2 += tracker.move(">"); - } else { - subexit = state.enter("destinationRaw"); - value2 += tracker.move( - state.safe(node2.url, { - before: value2, - after: node2.title ? " " : ")", - ...tracker.current() - }) - ); - } - subexit(); - if (node2.title) { - subexit = state.enter(`title${suffix}`); - value2 += tracker.move(" " + quote); - value2 += tracker.move( - state.safe(node2.title, { - before: value2, - after: quote, - ...tracker.current() - }) - ); - value2 += tracker.move(quote); - subexit(); - } - value2 += tracker.move(")"); - exit3(); - return value2; -} -function linkPeek(node2, _4, state) { - return formatLinkAsAutolink(node2, state) ? "<" : "["; -} -var init_link = __esm({ - "node_modules/.pnpm/mdast-util-to-markdown@2.1.2/node_modules/mdast-util-to-markdown/lib/handle/link.js"() { - init_check_quote(); - init_format_link_as_autolink(); - link.peek = linkPeek; - } -}); - -// node_modules/.pnpm/mdast-util-to-markdown@2.1.2/node_modules/mdast-util-to-markdown/lib/handle/link-reference.js -function linkReference(node2, _4, state, info) { - const type5 = node2.referenceType; - const exit3 = state.enter("linkReference"); - let subexit = state.enter("label"); - const tracker = state.createTracker(info); - let value2 = tracker.move("["); - const text9 = state.containerPhrasing(node2, { - before: value2, - after: "]", - ...tracker.current() - }); - value2 += tracker.move(text9 + "]["); - subexit(); - const stack = state.stack; - state.stack = []; - subexit = state.enter("reference"); - const reference = state.safe(state.associationId(node2), { - before: value2, - after: "]", - ...tracker.current() - }); - subexit(); - state.stack = stack; - exit3(); - if (type5 === "full" || !text9 || text9 !== reference) { - value2 += tracker.move(reference + "]"); - } else if (type5 === "shortcut") { - value2 = value2.slice(0, -1); - } else { - value2 += tracker.move("]"); - } - return value2; -} -function linkReferencePeek() { - return "["; -} -var init_link_reference = __esm({ - "node_modules/.pnpm/mdast-util-to-markdown@2.1.2/node_modules/mdast-util-to-markdown/lib/handle/link-reference.js"() { - linkReference.peek = linkReferencePeek; - } -}); - -// node_modules/.pnpm/mdast-util-to-markdown@2.1.2/node_modules/mdast-util-to-markdown/lib/util/check-bullet.js -function checkBullet(state) { - const marker = state.options.bullet || "*"; - if (marker !== "*" && marker !== "+" && marker !== "-") { - throw new Error( - "Cannot serialize items with `" + marker + "` for `options.bullet`, expected `*`, `+`, or `-`" - ); - } - return marker; -} -var init_check_bullet = __esm({ - "node_modules/.pnpm/mdast-util-to-markdown@2.1.2/node_modules/mdast-util-to-markdown/lib/util/check-bullet.js"() { - } -}); - -// node_modules/.pnpm/mdast-util-to-markdown@2.1.2/node_modules/mdast-util-to-markdown/lib/util/check-bullet-other.js -function checkBulletOther(state) { - const bullet = checkBullet(state); - const bulletOther = state.options.bulletOther; - if (!bulletOther) { - return bullet === "*" ? "-" : "*"; - } - if (bulletOther !== "*" && bulletOther !== "+" && bulletOther !== "-") { - throw new Error( - "Cannot serialize items with `" + bulletOther + "` for `options.bulletOther`, expected `*`, `+`, or `-`" - ); - } - if (bulletOther === bullet) { - throw new Error( - "Expected `bullet` (`" + bullet + "`) and `bulletOther` (`" + bulletOther + "`) to be different" - ); - } - return bulletOther; -} -var init_check_bullet_other = __esm({ - "node_modules/.pnpm/mdast-util-to-markdown@2.1.2/node_modules/mdast-util-to-markdown/lib/util/check-bullet-other.js"() { - init_check_bullet(); - } -}); - -// node_modules/.pnpm/mdast-util-to-markdown@2.1.2/node_modules/mdast-util-to-markdown/lib/util/check-bullet-ordered.js -function checkBulletOrdered(state) { - const marker = state.options.bulletOrdered || "."; - if (marker !== "." && marker !== ")") { - throw new Error( - "Cannot serialize items with `" + marker + "` for `options.bulletOrdered`, expected `.` or `)`" - ); - } - return marker; -} -var init_check_bullet_ordered = __esm({ - "node_modules/.pnpm/mdast-util-to-markdown@2.1.2/node_modules/mdast-util-to-markdown/lib/util/check-bullet-ordered.js"() { - } -}); - -// node_modules/.pnpm/mdast-util-to-markdown@2.1.2/node_modules/mdast-util-to-markdown/lib/util/check-rule.js -function checkRule(state) { - const marker = state.options.rule || "*"; - if (marker !== "*" && marker !== "-" && marker !== "_") { - throw new Error( - "Cannot serialize rules with `" + marker + "` for `options.rule`, expected `*`, `-`, or `_`" - ); - } - return marker; -} -var init_check_rule = __esm({ - "node_modules/.pnpm/mdast-util-to-markdown@2.1.2/node_modules/mdast-util-to-markdown/lib/util/check-rule.js"() { - } -}); - -// node_modules/.pnpm/mdast-util-to-markdown@2.1.2/node_modules/mdast-util-to-markdown/lib/handle/list.js -function list2(node2, parent, state, info) { - const exit3 = state.enter("list"); - const bulletCurrent = state.bulletCurrent; - let bullet = node2.ordered ? checkBulletOrdered(state) : checkBullet(state); - const bulletOther = node2.ordered ? bullet === "." ? ")" : "." : checkBulletOther(state); - let useDifferentMarker = parent && state.bulletLastUsed ? bullet === state.bulletLastUsed : false; - if (!node2.ordered) { - const firstListItem = node2.children ? node2.children[0] : void 0; - if ( - // Bullet could be used as a thematic break marker: - (bullet === "*" || bullet === "-") && // Empty first list item: - firstListItem && (!firstListItem.children || !firstListItem.children[0]) && // Directly in two other list items: - state.stack[state.stack.length - 1] === "list" && state.stack[state.stack.length - 2] === "listItem" && state.stack[state.stack.length - 3] === "list" && state.stack[state.stack.length - 4] === "listItem" && // That are each the first child. - state.indexStack[state.indexStack.length - 1] === 0 && state.indexStack[state.indexStack.length - 2] === 0 && state.indexStack[state.indexStack.length - 3] === 0 - ) { - useDifferentMarker = true; - } - if (checkRule(state) === bullet && firstListItem) { - let index2 = -1; - while (++index2 < node2.children.length) { - const item = node2.children[index2]; - if (item && item.type === "listItem" && item.children && item.children[0] && item.children[0].type === "thematicBreak") { - useDifferentMarker = true; - break; - } - } - } - } - if (useDifferentMarker) { - bullet = bulletOther; - } - state.bulletCurrent = bullet; - const value2 = state.containerFlow(node2, info); - state.bulletLastUsed = bullet; - state.bulletCurrent = bulletCurrent; - exit3(); - return value2; -} -var init_list = __esm({ - "node_modules/.pnpm/mdast-util-to-markdown@2.1.2/node_modules/mdast-util-to-markdown/lib/handle/list.js"() { - init_check_bullet(); - init_check_bullet_other(); - init_check_bullet_ordered(); - init_check_rule(); - } -}); - -// node_modules/.pnpm/mdast-util-to-markdown@2.1.2/node_modules/mdast-util-to-markdown/lib/util/check-list-item-indent.js -function checkListItemIndent(state) { - const style = state.options.listItemIndent || "one"; - if (style !== "tab" && style !== "one" && style !== "mixed") { - throw new Error( - "Cannot serialize items with `" + style + "` for `options.listItemIndent`, expected `tab`, `one`, or `mixed`" - ); - } - return style; -} -var init_check_list_item_indent = __esm({ - "node_modules/.pnpm/mdast-util-to-markdown@2.1.2/node_modules/mdast-util-to-markdown/lib/util/check-list-item-indent.js"() { - } -}); - -// node_modules/.pnpm/mdast-util-to-markdown@2.1.2/node_modules/mdast-util-to-markdown/lib/handle/list-item.js -function listItem(node2, parent, state, info) { - const listItemIndent = checkListItemIndent(state); - let bullet = state.bulletCurrent || checkBullet(state); - if (parent && parent.type === "list" && parent.ordered) { - bullet = (typeof parent.start === "number" && parent.start > -1 ? parent.start : 1) + (state.options.incrementListMarker === false ? 0 : parent.children.indexOf(node2)) + bullet; - } - let size = bullet.length + 1; - if (listItemIndent === "tab" || listItemIndent === "mixed" && (parent && parent.type === "list" && parent.spread || node2.spread)) { - size = Math.ceil(size / 4) * 4; - } - const tracker = state.createTracker(info); - tracker.move(bullet + " ".repeat(size - bullet.length)); - tracker.shift(size); - const exit3 = state.enter("listItem"); - const value2 = state.indentLines( - state.containerFlow(node2, tracker.current()), - map7 - ); - exit3(); - return value2; - function map7(line, index2, blank) { - if (index2) { - return (blank ? "" : " ".repeat(size)) + line; - } - return (blank ? bullet : bullet + " ".repeat(size - bullet.length)) + line; - } -} -var init_list_item = __esm({ - "node_modules/.pnpm/mdast-util-to-markdown@2.1.2/node_modules/mdast-util-to-markdown/lib/handle/list-item.js"() { - init_check_bullet(); - init_check_list_item_indent(); - } -}); - -// node_modules/.pnpm/mdast-util-to-markdown@2.1.2/node_modules/mdast-util-to-markdown/lib/handle/paragraph.js -function paragraph(node2, _4, state, info) { - const exit3 = state.enter("paragraph"); - const subexit = state.enter("phrasing"); - const value2 = state.containerPhrasing(node2, info); - subexit(); - exit3(); - return value2; -} -var init_paragraph = __esm({ - "node_modules/.pnpm/mdast-util-to-markdown@2.1.2/node_modules/mdast-util-to-markdown/lib/handle/paragraph.js"() { - } -}); - -// node_modules/.pnpm/mdast-util-phrasing@4.1.0/node_modules/mdast-util-phrasing/lib/index.js -var phrasing; -var init_lib14 = __esm({ - "node_modules/.pnpm/mdast-util-phrasing@4.1.0/node_modules/mdast-util-phrasing/lib/index.js"() { - init_unist_util_is(); - phrasing = /** @type {(node?: unknown) => node is Exclude} */ - convert([ - "break", - "delete", - "emphasis", - // To do: next major: removed since footnotes were added to GFM. - "footnote", - "footnoteReference", - "image", - "imageReference", - "inlineCode", - // Enabled by `mdast-util-math`: - "inlineMath", - "link", - "linkReference", - // Enabled by `mdast-util-mdx`: - "mdxJsxTextElement", - // Enabled by `mdast-util-mdx`: - "mdxTextExpression", - "strong", - "text", - // Enabled by `mdast-util-directive`: - "textDirective" - ]); - } -}); - -// node_modules/.pnpm/mdast-util-phrasing@4.1.0/node_modules/mdast-util-phrasing/index.js -var init_mdast_util_phrasing = __esm({ - "node_modules/.pnpm/mdast-util-phrasing@4.1.0/node_modules/mdast-util-phrasing/index.js"() { - init_lib14(); - } -}); - -// node_modules/.pnpm/mdast-util-to-markdown@2.1.2/node_modules/mdast-util-to-markdown/lib/handle/root.js -function root(node2, _4, state, info) { - const hasPhrasing = node2.children.some(function(d5) { - return phrasing(d5); - }); - const container = hasPhrasing ? state.containerPhrasing : state.containerFlow; - return container.call(state, node2, info); -} -var init_root = __esm({ - "node_modules/.pnpm/mdast-util-to-markdown@2.1.2/node_modules/mdast-util-to-markdown/lib/handle/root.js"() { - init_mdast_util_phrasing(); - } -}); - -// node_modules/.pnpm/mdast-util-to-markdown@2.1.2/node_modules/mdast-util-to-markdown/lib/util/check-strong.js -function checkStrong(state) { - const marker = state.options.strong || "*"; - if (marker !== "*" && marker !== "_") { - throw new Error( - "Cannot serialize strong with `" + marker + "` for `options.strong`, expected `*`, or `_`" - ); - } - return marker; -} -var init_check_strong = __esm({ - "node_modules/.pnpm/mdast-util-to-markdown@2.1.2/node_modules/mdast-util-to-markdown/lib/util/check-strong.js"() { - } -}); - -// node_modules/.pnpm/mdast-util-to-markdown@2.1.2/node_modules/mdast-util-to-markdown/lib/handle/strong.js -function strong(node2, _4, state, info) { - const marker = checkStrong(state); - const exit3 = state.enter("strong"); - const tracker = state.createTracker(info); - const before = tracker.move(marker + marker); - let between2 = tracker.move( - state.containerPhrasing(node2, { - after: marker, - before, - ...tracker.current() - }) - ); - const betweenHead = between2.charCodeAt(0); - const open = encodeInfo( - info.before.charCodeAt(info.before.length - 1), - betweenHead, - marker - ); - if (open.inside) { - between2 = encodeCharacterReference(betweenHead) + between2.slice(1); - } - const betweenTail = between2.charCodeAt(between2.length - 1); - const close7 = encodeInfo(info.after.charCodeAt(0), betweenTail, marker); - if (close7.inside) { - between2 = between2.slice(0, -1) + encodeCharacterReference(betweenTail); - } - const after = tracker.move(marker + marker); - exit3(); - state.attentionEncodeSurroundingInfo = { - after: close7.outside, - before: open.outside - }; - return before + between2 + after; -} -function strongPeek(_4, _1, state) { - return state.options.strong || "*"; -} -var init_strong = __esm({ - "node_modules/.pnpm/mdast-util-to-markdown@2.1.2/node_modules/mdast-util-to-markdown/lib/handle/strong.js"() { - init_check_strong(); - init_encode_character_reference(); - init_encode_info(); - strong.peek = strongPeek; - } -}); - -// node_modules/.pnpm/mdast-util-to-markdown@2.1.2/node_modules/mdast-util-to-markdown/lib/handle/text.js -function text(node2, _4, state, info) { - return state.safe(node2.value, info); -} -var init_text = __esm({ - "node_modules/.pnpm/mdast-util-to-markdown@2.1.2/node_modules/mdast-util-to-markdown/lib/handle/text.js"() { - } -}); - -// node_modules/.pnpm/mdast-util-to-markdown@2.1.2/node_modules/mdast-util-to-markdown/lib/util/check-rule-repetition.js -function checkRuleRepetition(state) { - const repetition = state.options.ruleRepetition || 3; - if (repetition < 3) { - throw new Error( - "Cannot serialize rules with repetition `" + repetition + "` for `options.ruleRepetition`, expected `3` or more" - ); - } - return repetition; -} -var init_check_rule_repetition = __esm({ - "node_modules/.pnpm/mdast-util-to-markdown@2.1.2/node_modules/mdast-util-to-markdown/lib/util/check-rule-repetition.js"() { - } -}); - -// node_modules/.pnpm/mdast-util-to-markdown@2.1.2/node_modules/mdast-util-to-markdown/lib/handle/thematic-break.js -function thematicBreak(_4, _1, state) { - const value2 = (checkRule(state) + (state.options.ruleSpaces ? " " : "")).repeat(checkRuleRepetition(state)); - return state.options.ruleSpaces ? value2.slice(0, -1) : value2; -} -var init_thematic_break = __esm({ - "node_modules/.pnpm/mdast-util-to-markdown@2.1.2/node_modules/mdast-util-to-markdown/lib/handle/thematic-break.js"() { - init_check_rule_repetition(); - init_check_rule(); - } -}); - -// node_modules/.pnpm/mdast-util-to-markdown@2.1.2/node_modules/mdast-util-to-markdown/lib/handle/index.js -var handle; -var init_handle = __esm({ - "node_modules/.pnpm/mdast-util-to-markdown@2.1.2/node_modules/mdast-util-to-markdown/lib/handle/index.js"() { - init_blockquote(); - init_break(); - init_code(); - init_definition(); - init_emphasis(); - init_heading(); - init_html(); - init_image(); - init_image_reference(); - init_inline_code(); - init_link(); - init_link_reference(); - init_list(); - init_list_item(); - init_paragraph(); - init_root(); - init_strong(); - init_text(); - init_thematic_break(); - handle = { - blockquote, - break: hardBreak, - code, - definition, - emphasis, - hardBreak, - heading, - html, - image, - imageReference, - inlineCode, - link, - linkReference, - list: list2, - listItem, - paragraph, - root, - strong, - text, - thematicBreak - }; - } -}); - -// node_modules/.pnpm/mdast-util-to-markdown@2.1.2/node_modules/mdast-util-to-markdown/lib/join.js -function joinDefaults(left, right, parent, state) { - if (right.type === "code" && formatCodeAsIndented(right, state) && (left.type === "list" || left.type === right.type && formatCodeAsIndented(left, state))) { - return false; - } - if ("spread" in parent && typeof parent.spread === "boolean") { - if (left.type === "paragraph" && // Two paragraphs. - (left.type === right.type || right.type === "definition" || // Paragraph followed by a setext heading. - right.type === "heading" && formatHeadingAsSetext(right, state))) { - return; - } - return parent.spread ? 1 : 0; - } -} -var join2; -var init_join = __esm({ - "node_modules/.pnpm/mdast-util-to-markdown@2.1.2/node_modules/mdast-util-to-markdown/lib/join.js"() { - init_format_code_as_indented(); - init_format_heading_as_setext(); - join2 = [joinDefaults]; - } -}); - -// node_modules/.pnpm/mdast-util-to-markdown@2.1.2/node_modules/mdast-util-to-markdown/lib/unsafe.js -var fullPhrasingSpans, unsafe; -var init_unsafe = __esm({ - "node_modules/.pnpm/mdast-util-to-markdown@2.1.2/node_modules/mdast-util-to-markdown/lib/unsafe.js"() { - fullPhrasingSpans = [ - "autolink", - "destinationLiteral", - "destinationRaw", - "reference", - "titleQuote", - "titleApostrophe" - ]; - unsafe = [ - { character: " ", after: "[\\r\\n]", inConstruct: "phrasing" }, - { character: " ", before: "[\\r\\n]", inConstruct: "phrasing" }, - { - character: " ", - inConstruct: ["codeFencedLangGraveAccent", "codeFencedLangTilde"] - }, - { - character: "\r", - inConstruct: [ - "codeFencedLangGraveAccent", - "codeFencedLangTilde", - "codeFencedMetaGraveAccent", - "codeFencedMetaTilde", - "destinationLiteral", - "headingAtx" - ] - }, - { - character: "\n", - inConstruct: [ - "codeFencedLangGraveAccent", - "codeFencedLangTilde", - "codeFencedMetaGraveAccent", - "codeFencedMetaTilde", - "destinationLiteral", - "headingAtx" - ] - }, - { character: " ", after: "[\\r\\n]", inConstruct: "phrasing" }, - { character: " ", before: "[\\r\\n]", inConstruct: "phrasing" }, - { - character: " ", - inConstruct: ["codeFencedLangGraveAccent", "codeFencedLangTilde"] - }, - // An exclamation mark can start an image, if it is followed by a link or - // a link reference. - { - character: "!", - after: "\\[", - inConstruct: "phrasing", - notInConstruct: fullPhrasingSpans - }, - // A quote can break out of a title. - { character: '"', inConstruct: "titleQuote" }, - // A number sign could start an ATX heading if it starts a line. - { atBreak: true, character: "#" }, - { character: "#", inConstruct: "headingAtx", after: "(?:[\r\n]|$)" }, - // Dollar sign and percentage are not used in markdown. - // An ampersand could start a character reference. - { character: "&", after: "[#A-Za-z]", inConstruct: "phrasing" }, - // An apostrophe can break out of a title. - { character: "'", inConstruct: "titleApostrophe" }, - // A left paren could break out of a destination raw. - { character: "(", inConstruct: "destinationRaw" }, - // A left paren followed by `]` could make something into a link or image. - { - before: "\\]", - character: "(", - inConstruct: "phrasing", - notInConstruct: fullPhrasingSpans - }, - // A right paren could start a list item or break out of a destination - // raw. - { atBreak: true, before: "\\d+", character: ")" }, - { character: ")", inConstruct: "destinationRaw" }, - // An asterisk can start thematic breaks, list items, emphasis, strong. - { atBreak: true, character: "*", after: "(?:[ \r\n*])" }, - { character: "*", inConstruct: "phrasing", notInConstruct: fullPhrasingSpans }, - // A plus sign could start a list item. - { atBreak: true, character: "+", after: "(?:[ \r\n])" }, - // A dash can start thematic breaks, list items, and setext heading - // underlines. - { atBreak: true, character: "-", after: "(?:[ \r\n-])" }, - // A dot could start a list item. - { atBreak: true, before: "\\d+", character: ".", after: "(?:[ \r\n]|$)" }, - // Slash, colon, and semicolon are not used in markdown for constructs. - // A less than can start html (flow or text) or an autolink. - // HTML could start with an exclamation mark (declaration, cdata, comment), - // slash (closing tag), question mark (instruction), or a letter (tag). - // An autolink also starts with a letter. - // Finally, it could break out of a destination literal. - { atBreak: true, character: "<", after: "[!/?A-Za-z]" }, - { - character: "<", - after: "[!/?A-Za-z]", - inConstruct: "phrasing", - notInConstruct: fullPhrasingSpans - }, - { character: "<", inConstruct: "destinationLiteral" }, - // An equals to can start setext heading underlines. - { atBreak: true, character: "=" }, - // A greater than can start block quotes and it can break out of a - // destination literal. - { atBreak: true, character: ">" }, - { character: ">", inConstruct: "destinationLiteral" }, - // Question mark and at sign are not used in markdown for constructs. - // A left bracket can start definitions, references, labels, - { atBreak: true, character: "[" }, - { character: "[", inConstruct: "phrasing", notInConstruct: fullPhrasingSpans }, - { character: "[", inConstruct: ["label", "reference"] }, - // A backslash can start an escape (when followed by punctuation) or a - // hard break (when followed by an eol). - // Note: typical escapes are handled in `safe`! - { character: "\\", after: "[\\r\\n]", inConstruct: "phrasing" }, - // A right bracket can exit labels. - { character: "]", inConstruct: ["label", "reference"] }, - // Caret is not used in markdown for constructs. - // An underscore can start emphasis, strong, or a thematic break. - { atBreak: true, character: "_" }, - { character: "_", inConstruct: "phrasing", notInConstruct: fullPhrasingSpans }, - // A grave accent can start code (fenced or text), or it can break out of - // a grave accent code fence. - { atBreak: true, character: "`" }, - { - character: "`", - inConstruct: ["codeFencedLangGraveAccent", "codeFencedMetaGraveAccent"] - }, - { character: "`", inConstruct: "phrasing", notInConstruct: fullPhrasingSpans }, - // Left brace, vertical bar, right brace are not used in markdown for - // constructs. - // A tilde can start code (fenced). - { atBreak: true, character: "~" } - ]; - } -}); - -// node_modules/.pnpm/decode-named-character-reference@1.3.0/node_modules/decode-named-character-reference/index.dom.js -function decodeNamedCharacterReference(value2) { - const characterReference2 = "&" + value2 + ";"; - element.innerHTML = characterReference2; - const character = element.textContent; - if (character.charCodeAt(character.length - 1) === 59 && value2 !== "semi") { - return false; - } - return character === characterReference2 ? false : character; -} -var element; -var init_index_dom = __esm({ - "node_modules/.pnpm/decode-named-character-reference@1.3.0/node_modules/decode-named-character-reference/index.dom.js"() { - element = document.createElement("i"); - } -}); - -// node_modules/.pnpm/micromark-util-decode-numeric-character-reference@2.0.2/node_modules/micromark-util-decode-numeric-character-reference/index.js -function decodeNumericCharacterReference(value2, base) { - const code4 = Number.parseInt(value2, base); - if ( - // C0 except for HT, LF, FF, CR, space. - code4 < 9 || code4 === 11 || code4 > 13 && code4 < 32 || // Control character (DEL) of C0, and C1 controls. - code4 > 126 && code4 < 160 || // Lone high surrogates and low surrogates. - code4 > 55295 && code4 < 57344 || // Noncharacters. - code4 > 64975 && code4 < 65008 || /* eslint-disable no-bitwise */ - (code4 & 65535) === 65535 || (code4 & 65535) === 65534 || /* eslint-enable no-bitwise */ - // Out of range - code4 > 1114111 - ) { - return "\uFFFD"; - } - return String.fromCodePoint(code4); -} -var init_micromark_util_decode_numeric_character_reference = __esm({ - "node_modules/.pnpm/micromark-util-decode-numeric-character-reference@2.0.2/node_modules/micromark-util-decode-numeric-character-reference/index.js"() { - } -}); - -// node_modules/.pnpm/micromark-util-decode-string@2.0.1/node_modules/micromark-util-decode-string/index.js -function decodeString(value2) { - return value2.replace(characterEscapeOrReference, decode); -} -function decode($0, $1, $22) { - if ($1) { - return $1; - } - const head2 = $22.charCodeAt(0); - if (head2 === 35) { - const head3 = $22.charCodeAt(1); - const hex2 = head3 === 120 || head3 === 88; - return decodeNumericCharacterReference($22.slice(hex2 ? 2 : 1), hex2 ? 16 : 10); - } - return decodeNamedCharacterReference($22) || $0; -} -var characterEscapeOrReference; -var init_micromark_util_decode_string = __esm({ - "node_modules/.pnpm/micromark-util-decode-string@2.0.1/node_modules/micromark-util-decode-string/index.js"() { - init_index_dom(); - init_micromark_util_decode_numeric_character_reference(); - characterEscapeOrReference = /\\([!-/:-@[-`{-~])|&(#(?:\d{1,7}|x[\da-f]{1,6})|[\da-z]{1,31});/gi; - } -}); - -// node_modules/.pnpm/mdast-util-to-markdown@2.1.2/node_modules/mdast-util-to-markdown/lib/util/association.js -function association(node2) { - if (node2.label || !node2.identifier) { - return node2.label || ""; - } - return decodeString(node2.identifier); -} -var init_association = __esm({ - "node_modules/.pnpm/mdast-util-to-markdown@2.1.2/node_modules/mdast-util-to-markdown/lib/util/association.js"() { - init_micromark_util_decode_string(); - } -}); - -// node_modules/.pnpm/mdast-util-to-markdown@2.1.2/node_modules/mdast-util-to-markdown/lib/util/compile-pattern.js -function compilePattern(pattern) { - if (!pattern._compiled) { - const before = (pattern.atBreak ? "[\\r\\n][\\t ]*" : "") + (pattern.before ? "(?:" + pattern.before + ")" : ""); - pattern._compiled = new RegExp( - (before ? "(" + before + ")" : "") + (/[|\\{}()[\]^$+*?.-]/.test(pattern.character) ? "\\" : "") + pattern.character + (pattern.after ? "(?:" + pattern.after + ")" : ""), - "g" - ); - } - return pattern._compiled; -} -var init_compile_pattern = __esm({ - "node_modules/.pnpm/mdast-util-to-markdown@2.1.2/node_modules/mdast-util-to-markdown/lib/util/compile-pattern.js"() { - } -}); - -// node_modules/.pnpm/mdast-util-to-markdown@2.1.2/node_modules/mdast-util-to-markdown/lib/util/container-phrasing.js -function containerPhrasing(parent, state, info) { - const indexStack = state.indexStack; - const children2 = parent.children || []; - const results = []; - let index2 = -1; - let before = info.before; - let encodeAfter; - indexStack.push(-1); - let tracker = state.createTracker(info); - while (++index2 < children2.length) { - const child = children2[index2]; - let after; - indexStack[indexStack.length - 1] = index2; - if (index2 + 1 < children2.length) { - let handle3 = state.handle.handlers[children2[index2 + 1].type]; - if (handle3 && handle3.peek) handle3 = handle3.peek; - after = handle3 ? handle3(children2[index2 + 1], parent, state, { - before: "", - after: "", - ...tracker.current() - }).charAt(0) : ""; - } else { - after = info.after; - } - if (results.length > 0 && (before === "\r" || before === "\n") && child.type === "html") { - results[results.length - 1] = results[results.length - 1].replace( - /(\r?\n|\r)$/, - " " - ); - before = " "; - tracker = state.createTracker(info); - tracker.move(results.join("")); - } - let value2 = state.handle(child, parent, state, { - ...tracker.current(), - after, - before - }); - if (encodeAfter && encodeAfter === value2.slice(0, 1)) { - value2 = encodeCharacterReference(encodeAfter.charCodeAt(0)) + value2.slice(1); - } - const encodingInfo = state.attentionEncodeSurroundingInfo; - state.attentionEncodeSurroundingInfo = void 0; - encodeAfter = void 0; - if (encodingInfo) { - if (results.length > 0 && encodingInfo.before && before === results[results.length - 1].slice(-1)) { - results[results.length - 1] = results[results.length - 1].slice(0, -1) + encodeCharacterReference(before.charCodeAt(0)); - } - if (encodingInfo.after) encodeAfter = after; - } - tracker.move(value2); - results.push(value2); - before = value2.slice(-1); - } - indexStack.pop(); - return results.join(""); -} -var init_container_phrasing = __esm({ - "node_modules/.pnpm/mdast-util-to-markdown@2.1.2/node_modules/mdast-util-to-markdown/lib/util/container-phrasing.js"() { - init_encode_character_reference(); - } -}); - -// node_modules/.pnpm/mdast-util-to-markdown@2.1.2/node_modules/mdast-util-to-markdown/lib/util/container-flow.js -function containerFlow(parent, state, info) { - const indexStack = state.indexStack; - const children2 = parent.children || []; - const tracker = state.createTracker(info); - const results = []; - let index2 = -1; - indexStack.push(-1); - while (++index2 < children2.length) { - const child = children2[index2]; - indexStack[indexStack.length - 1] = index2; - results.push( - tracker.move( - state.handle(child, parent, state, { - before: "\n", - after: "\n", - ...tracker.current() - }) - ) - ); - if (child.type !== "list") { - state.bulletLastUsed = void 0; - } - if (index2 < children2.length - 1) { - results.push( - tracker.move(between(child, children2[index2 + 1], parent, state)) - ); - } - } - indexStack.pop(); - return results.join(""); -} -function between(left, right, parent, state) { - let index2 = state.join.length; - while (index2--) { - const result = state.join[index2](left, right, parent, state); - if (result === true || result === 1) { - break; - } - if (typeof result === "number") { - return "\n".repeat(1 + result); - } - if (result === false) { - return "\n\n\n\n"; - } - } - return "\n\n"; -} -var init_container_flow = __esm({ - "node_modules/.pnpm/mdast-util-to-markdown@2.1.2/node_modules/mdast-util-to-markdown/lib/util/container-flow.js"() { - } -}); - -// node_modules/.pnpm/mdast-util-to-markdown@2.1.2/node_modules/mdast-util-to-markdown/lib/util/indent-lines.js -function indentLines(value2, map7) { - const result = []; - let start = 0; - let line = 0; - let match2; - while (match2 = eol.exec(value2)) { - one3(value2.slice(start, match2.index)); - result.push(match2[0]); - start = match2.index + match2[0].length; - line++; - } - one3(value2.slice(start)); - return result.join(""); - function one3(value3) { - result.push(map7(value3, line, !value3)); - } -} -var eol; -var init_indent_lines = __esm({ - "node_modules/.pnpm/mdast-util-to-markdown@2.1.2/node_modules/mdast-util-to-markdown/lib/util/indent-lines.js"() { - eol = /\r?\n|\r/g; - } -}); - -// node_modules/.pnpm/mdast-util-to-markdown@2.1.2/node_modules/mdast-util-to-markdown/lib/util/safe.js -function safe(state, input, config3) { - const value2 = (config3.before || "") + (input || "") + (config3.after || ""); - const positions = []; - const result = []; - const infos = {}; - let index2 = -1; - while (++index2 < state.unsafe.length) { - const pattern = state.unsafe[index2]; - if (!patternInScope(state.stack, pattern)) { - continue; - } - const expression = state.compilePattern(pattern); - let match2; - while (match2 = expression.exec(value2)) { - const before = "before" in pattern || Boolean(pattern.atBreak); - const after = "after" in pattern; - const position3 = match2.index + (before ? match2[1].length : 0); - if (positions.includes(position3)) { - if (infos[position3].before && !before) { - infos[position3].before = false; - } - if (infos[position3].after && !after) { - infos[position3].after = false; - } - } else { - positions.push(position3); - infos[position3] = { before, after }; - } - } - } - positions.sort(numerical); - let start = config3.before ? config3.before.length : 0; - const end3 = value2.length - (config3.after ? config3.after.length : 0); - index2 = -1; - while (++index2 < positions.length) { - const position3 = positions[index2]; - if (position3 < start || position3 >= end3) { - continue; - } - if (position3 + 1 < end3 && positions[index2 + 1] === position3 + 1 && infos[position3].after && !infos[position3 + 1].before && !infos[position3 + 1].after || positions[index2 - 1] === position3 - 1 && infos[position3].before && !infos[position3 - 1].before && !infos[position3 - 1].after) { - continue; - } - if (start !== position3) { - result.push(escapeBackslashes(value2.slice(start, position3), "\\")); - } - start = position3; - if (/[!-/:-@[-`{-~]/.test(value2.charAt(position3)) && (!config3.encode || !config3.encode.includes(value2.charAt(position3)))) { - result.push("\\"); - } else { - result.push(encodeCharacterReference(value2.charCodeAt(position3))); - start++; - } - } - result.push(escapeBackslashes(value2.slice(start, end3), config3.after)); - return result.join(""); -} -function numerical(a5, b5) { - return a5 - b5; -} -function escapeBackslashes(value2, after) { - const expression = /\\(?=[!-/:-@[-`{-~])/g; - const positions = []; - const results = []; - const whole = value2 + after; - let index2 = -1; - let start = 0; - let match2; - while (match2 = expression.exec(whole)) { - positions.push(match2.index); - } - while (++index2 < positions.length) { - if (start !== positions[index2]) { - results.push(value2.slice(start, positions[index2])); - } - results.push("\\"); - start = positions[index2]; - } - results.push(value2.slice(start)); - return results.join(""); -} -var init_safe = __esm({ - "node_modules/.pnpm/mdast-util-to-markdown@2.1.2/node_modules/mdast-util-to-markdown/lib/util/safe.js"() { - init_encode_character_reference(); - init_pattern_in_scope(); - } -}); - -// node_modules/.pnpm/mdast-util-to-markdown@2.1.2/node_modules/mdast-util-to-markdown/lib/util/track.js -function track(config3) { - const options = config3 || {}; - const now2 = options.now || {}; - let lineShift = options.lineShift || 0; - let line = now2.line || 1; - let column = now2.column || 1; - return { move, current, shift }; - function current() { - return { now: { line, column }, lineShift }; - } - function shift(value2) { - lineShift += value2; - } - function move(input) { - const value2 = input || ""; - const chunks = value2.split(/\r?\n|\r/g); - const tail = chunks[chunks.length - 1]; - line += chunks.length - 1; - column = chunks.length === 1 ? column + tail.length : 1 + tail.length + lineShift; - return value2; - } -} -var init_track = __esm({ - "node_modules/.pnpm/mdast-util-to-markdown@2.1.2/node_modules/mdast-util-to-markdown/lib/util/track.js"() { - } -}); - -// node_modules/.pnpm/mdast-util-to-markdown@2.1.2/node_modules/mdast-util-to-markdown/lib/index.js -function toMarkdown(tree, options) { - const settings = options || {}; - const state = { - associationId: association, - containerPhrasing: containerPhrasingBound, - containerFlow: containerFlowBound, - createTracker: track, - compilePattern, - enter, - // @ts-expect-error: GFM / frontmatter are typed in `mdast` but not defined - // here. - handlers: { ...handle }, - // @ts-expect-error: add `handle` in a second. - handle: void 0, - indentLines, - indexStack: [], - join: [...join2], - options: {}, - safe: safeBound, - stack: [], - unsafe: [...unsafe] - }; - configure(state, settings); - if (state.options.tightDefinitions) { - state.join.push(joinDefinition); - } - state.handle = zwitch("type", { - invalid, - unknown, - handlers: state.handlers - }); - let result = state.handle(tree, void 0, state, { - before: "\n", - after: "\n", - now: { line: 1, column: 1 }, - lineShift: 0 - }); - if (result && result.charCodeAt(result.length - 1) !== 10 && result.charCodeAt(result.length - 1) !== 13) { - result += "\n"; - } - return result; - function enter(name) { - state.stack.push(name); - return exit3; - function exit3() { - state.stack.pop(); - } - } -} -function invalid(value2) { - throw new Error("Cannot handle value `" + value2 + "`, expected node"); -} -function unknown(value2) { - const node2 = ( - /** @type {Nodes} */ - value2 - ); - throw new Error("Cannot handle unknown node `" + node2.type + "`"); -} -function joinDefinition(left, right) { - if (left.type === "definition" && left.type === right.type) { - return 0; - } -} -function containerPhrasingBound(parent, info) { - return containerPhrasing(parent, this, info); -} -function containerFlowBound(parent, info) { - return containerFlow(parent, this, info); -} -function safeBound(value2, config3) { - return safe(this, value2, config3); -} -var init_lib15 = __esm({ - "node_modules/.pnpm/mdast-util-to-markdown@2.1.2/node_modules/mdast-util-to-markdown/lib/index.js"() { - init_zwitch(); - init_configure(); - init_handle(); - init_join(); - init_unsafe(); - init_association(); - init_compile_pattern(); - init_container_phrasing(); - init_container_flow(); - init_indent_lines(); - init_safe(); - init_track(); - } -}); - -// node_modules/.pnpm/mdast-util-to-markdown@2.1.2/node_modules/mdast-util-to-markdown/index.js -var init_mdast_util_to_markdown = __esm({ - "node_modules/.pnpm/mdast-util-to-markdown@2.1.2/node_modules/mdast-util-to-markdown/index.js"() { - init_lib15(); - init_handle(); - } -}); - -// node_modules/.pnpm/mdast-util-gfm-table@2.0.0/node_modules/mdast-util-gfm-table/lib/index.js -function gfmTableFromMarkdown() { - return { - enter: { - table: enterTable, - tableData: enterCell, - tableHeader: enterCell, - tableRow: enterRow - }, - exit: { - codeText: exitCodeText, - table: exitTable, - tableData: exit, - tableHeader: exit, - tableRow: exit - } - }; -} -function enterTable(token) { - const align = token._align; - ok(align, "expected `_align` on table"); - this.enter( - { - type: "table", - align: align.map(function(d5) { - return d5 === "none" ? null : d5; - }), - children: [] - }, - token - ); - this.data.inTable = true; -} -function exitTable(token) { - this.exit(token); - this.data.inTable = void 0; -} -function enterRow(token) { - this.enter({ type: "tableRow", children: [] }, token); -} -function exit(token) { - this.exit(token); -} -function enterCell(token) { - this.enter({ type: "tableCell", children: [] }, token); -} -function exitCodeText(token) { - let value2 = this.resume(); - if (this.data.inTable) { - value2 = value2.replace(/\\([\\|])/g, replace); - } - const node2 = this.stack[this.stack.length - 1]; - ok(node2.type === "inlineCode"); - node2.value = value2; - this.exit(token); -} -function replace($0, $1) { - return $1 === "|" ? $1 : $0; -} -function gfmTableToMarkdown(options) { - const settings = options || {}; - const padding = settings.tableCellPadding; - const alignDelimiters = settings.tablePipeAlign; - const stringLength = settings.stringLength; - const around = padding ? " " : "|"; - return { - unsafe: [ - { character: "\r", inConstruct: "tableCell" }, - { character: "\n", inConstruct: "tableCell" }, - // A pipe, when followed by a tab or space (padding), or a dash or colon - // (unpadded delimiter row), could result in a table. - { atBreak: true, character: "|", after: "[ :-]" }, - // A pipe in a cell must be encoded. - { character: "|", inConstruct: "tableCell" }, - // A colon must be followed by a dash, in which case it could start a - // delimiter row. - { atBreak: true, character: ":", after: "-" }, - // A delimiter row can also start with a dash, when followed by more - // dashes, a colon, or a pipe. - // This is a stricter version than the built in check for lists, thematic - // breaks, and setex heading underlines though: - // - { atBreak: true, character: "-", after: "[:|-]" } - ], - handlers: { - inlineCode: inlineCodeWithTable, - table: handleTable, - tableCell: handleTableCell, - tableRow: handleTableRow - } - }; - function handleTable(node2, _4, state, info) { - return serializeData(handleTableAsData(node2, state, info), node2.align); - } - function handleTableRow(node2, _4, state, info) { - const row = handleTableRowAsData(node2, state, info); - const value2 = serializeData([row]); - return value2.slice(0, value2.indexOf("\n")); - } - function handleTableCell(node2, _4, state, info) { - const exit3 = state.enter("tableCell"); - const subexit = state.enter("phrasing"); - const value2 = state.containerPhrasing(node2, { - ...info, - before: around, - after: around - }); - subexit(); - exit3(); - return value2; - } - function serializeData(matrix, align) { - return markdownTable(matrix, { - align, - // @ts-expect-error: `markdown-table` types should support `null`. - alignDelimiters, - // @ts-expect-error: `markdown-table` types should support `null`. - padding, - // @ts-expect-error: `markdown-table` types should support `null`. - stringLength - }); - } - function handleTableAsData(node2, state, info) { - const children2 = node2.children; - let index2 = -1; - const result = []; - const subexit = state.enter("table"); - while (++index2 < children2.length) { - result[index2] = handleTableRowAsData(children2[index2], state, info); - } - subexit(); - return result; - } - function handleTableRowAsData(node2, state, info) { - const children2 = node2.children; - let index2 = -1; - const result = []; - const subexit = state.enter("tableRow"); - while (++index2 < children2.length) { - result[index2] = handleTableCell(children2[index2], node2, state, info); - } - subexit(); - return result; - } - function inlineCodeWithTable(node2, parent, state) { - let value2 = handle.inlineCode(node2, parent, state); - if (state.stack.includes("tableCell")) { - value2 = value2.replace(/\|/g, "\\$&"); - } - return value2; - } -} -var init_lib16 = __esm({ - "node_modules/.pnpm/mdast-util-gfm-table@2.0.0/node_modules/mdast-util-gfm-table/lib/index.js"() { - init_default(); - init_markdown_table(); - init_mdast_util_to_markdown(); - } -}); - -// node_modules/.pnpm/mdast-util-gfm-table@2.0.0/node_modules/mdast-util-gfm-table/index.js -var init_mdast_util_gfm_table = __esm({ - "node_modules/.pnpm/mdast-util-gfm-table@2.0.0/node_modules/mdast-util-gfm-table/index.js"() { - init_lib16(); - } -}); - -// node_modules/.pnpm/mdast-util-gfm-task-list-item@2.0.0/node_modules/mdast-util-gfm-task-list-item/lib/index.js -function gfmTaskListItemFromMarkdown() { - return { - exit: { - taskListCheckValueChecked: exitCheck, - taskListCheckValueUnchecked: exitCheck, - paragraph: exitParagraphWithTaskListItem - } - }; -} -function gfmTaskListItemToMarkdown() { - return { - unsafe: [{ atBreak: true, character: "-", after: "[:|-]" }], - handlers: { listItem: listItemWithTaskListItem } - }; -} -function exitCheck(token) { - const node2 = this.stack[this.stack.length - 2]; - ok(node2.type === "listItem"); - node2.checked = token.type === "taskListCheckValueChecked"; -} -function exitParagraphWithTaskListItem(token) { - const parent = this.stack[this.stack.length - 2]; - if (parent && parent.type === "listItem" && typeof parent.checked === "boolean") { - const node2 = this.stack[this.stack.length - 1]; - ok(node2.type === "paragraph"); - const head2 = node2.children[0]; - if (head2 && head2.type === "text") { - const siblings2 = parent.children; - let index2 = -1; - let firstParaghraph; - while (++index2 < siblings2.length) { - const sibling = siblings2[index2]; - if (sibling.type === "paragraph") { - firstParaghraph = sibling; - break; - } - } - if (firstParaghraph === node2) { - head2.value = head2.value.slice(1); - if (head2.value.length === 0) { - node2.children.shift(); - } else if (node2.position && head2.position && typeof head2.position.start.offset === "number") { - head2.position.start.column++; - head2.position.start.offset++; - node2.position.start = Object.assign({}, head2.position.start); - } - } - } - } - this.exit(token); -} -function listItemWithTaskListItem(node2, parent, state, info) { - const head2 = node2.children[0]; - const checkable = typeof node2.checked === "boolean" && head2 && head2.type === "paragraph"; - const checkbox = "[" + (node2.checked ? "x" : " ") + "] "; - const tracker = state.createTracker(info); - if (checkable) { - tracker.move(checkbox); - } - let value2 = handle.listItem(node2, parent, state, { - ...info, - ...tracker.current() - }); - if (checkable) { - value2 = value2.replace(/^(?:[*+-]|\d+\.)([\r\n]| {1,3})/, check); - } - return value2; - function check($0) { - return $0 + checkbox; - } -} -var init_lib17 = __esm({ - "node_modules/.pnpm/mdast-util-gfm-task-list-item@2.0.0/node_modules/mdast-util-gfm-task-list-item/lib/index.js"() { - init_default(); - init_mdast_util_to_markdown(); - } -}); - -// node_modules/.pnpm/mdast-util-gfm-task-list-item@2.0.0/node_modules/mdast-util-gfm-task-list-item/index.js -var init_mdast_util_gfm_task_list_item = __esm({ - "node_modules/.pnpm/mdast-util-gfm-task-list-item@2.0.0/node_modules/mdast-util-gfm-task-list-item/index.js"() { - init_lib17(); - } -}); - -// node_modules/.pnpm/mdast-util-gfm@3.1.0/node_modules/mdast-util-gfm/lib/index.js -function gfmFromMarkdown() { - return [ - gfmAutolinkLiteralFromMarkdown(), - gfmFootnoteFromMarkdown(), - gfmStrikethroughFromMarkdown(), - gfmTableFromMarkdown(), - gfmTaskListItemFromMarkdown() - ]; -} -function gfmToMarkdown(options) { - return { - extensions: [ - gfmAutolinkLiteralToMarkdown(), - gfmFootnoteToMarkdown(options), - gfmStrikethroughToMarkdown(), - gfmTableToMarkdown(options), - gfmTaskListItemToMarkdown() - ] - }; -} -var init_lib18 = __esm({ - "node_modules/.pnpm/mdast-util-gfm@3.1.0/node_modules/mdast-util-gfm/lib/index.js"() { - init_mdast_util_gfm_autolink_literal(); - init_mdast_util_gfm_footnote(); - init_mdast_util_gfm_strikethrough(); - init_mdast_util_gfm_table(); - init_mdast_util_gfm_task_list_item(); - } -}); - -// node_modules/.pnpm/mdast-util-gfm@3.1.0/node_modules/mdast-util-gfm/index.js -var init_mdast_util_gfm = __esm({ - "node_modules/.pnpm/mdast-util-gfm@3.1.0/node_modules/mdast-util-gfm/index.js"() { - init_lib18(); - } -}); - -// node_modules/.pnpm/micromark-util-chunked@2.0.1/node_modules/micromark-util-chunked/index.js -function splice(list5, start, remove2, items) { - const end3 = list5.length; - let chunkStart = 0; - let parameters; - if (start < 0) { - start = -start > end3 ? 0 : end3 + start; - } else { - start = start > end3 ? end3 : start; - } - remove2 = remove2 > 0 ? remove2 : 0; - if (items.length < 1e4) { - parameters = Array.from(items); - parameters.unshift(start, remove2); - list5.splice(...parameters); - } else { - if (remove2) list5.splice(start, remove2); - while (chunkStart < items.length) { - parameters = items.slice(chunkStart, chunkStart + 1e4); - parameters.unshift(start, 0); - list5.splice(...parameters); - chunkStart += 1e4; - start += 1e4; - } - } -} -function push(list5, items) { - if (list5.length > 0) { - splice(list5, list5.length, 0, items); - return list5; - } - return items; -} -var init_micromark_util_chunked = __esm({ - "node_modules/.pnpm/micromark-util-chunked@2.0.1/node_modules/micromark-util-chunked/index.js"() { - } -}); - -// node_modules/.pnpm/micromark-util-combine-extensions@2.0.1/node_modules/micromark-util-combine-extensions/index.js -function combineExtensions(extensions) { - const all3 = {}; - let index2 = -1; - while (++index2 < extensions.length) { - syntaxExtension(all3, extensions[index2]); - } - return all3; -} -function syntaxExtension(all3, extension2) { - let hook; - for (hook in extension2) { - const maybe = hasOwnProperty.call(all3, hook) ? all3[hook] : void 0; - const left = maybe || (all3[hook] = {}); - const right = extension2[hook]; - let code4; - if (right) { - for (code4 in right) { - if (!hasOwnProperty.call(left, code4)) left[code4] = []; - const value2 = right[code4]; - constructs( - // @ts-expect-error Looks like a list. - left[code4], - Array.isArray(value2) ? value2 : value2 ? [value2] : [] - ); - } - } - } -} -function constructs(existing, list5) { - let index2 = -1; - const before = []; - while (++index2 < list5.length) { - ; - (list5[index2].add === "after" ? existing : before).push(list5[index2]); - } - splice(existing, 0, 0, before); -} -function combineHtmlExtensions(htmlExtensions) { - const handlers2 = {}; - let index2 = -1; - while (++index2 < htmlExtensions.length) { - htmlExtension(handlers2, htmlExtensions[index2]); - } - return handlers2; -} -function htmlExtension(all3, extension2) { - let hook; - for (hook in extension2) { - const maybe = hasOwnProperty.call(all3, hook) ? all3[hook] : void 0; - const left = maybe || (all3[hook] = {}); - const right = extension2[hook]; - let type5; - if (right) { - for (type5 in right) { - left[type5] = right[type5]; - } - } - } -} -var hasOwnProperty; -var init_micromark_util_combine_extensions = __esm({ - "node_modules/.pnpm/micromark-util-combine-extensions@2.0.1/node_modules/micromark-util-combine-extensions/index.js"() { - init_micromark_util_chunked(); - hasOwnProperty = {}.hasOwnProperty; - } -}); - -// node_modules/.pnpm/micromark-extension-gfm-autolink-literal@2.1.0/node_modules/micromark-extension-gfm-autolink-literal/lib/syntax.js -function gfmAutolinkLiteral() { - return { - text: text2 - }; -} -function tokenizeEmailAutolink(effects, ok3, nok) { - const self2 = this; - let dot; - let data8; - return start; - function start(code4) { - if (!gfmAtext(code4) || !previousEmail.call(self2, self2.previous) || previousUnbalanced(self2.events)) { - return nok(code4); - } - effects.enter("literalAutolink"); - effects.enter("literalAutolinkEmail"); - return atext(code4); - } - function atext(code4) { - if (gfmAtext(code4)) { - effects.consume(code4); - return atext; - } - if (code4 === 64) { - effects.consume(code4); - return emailDomain; - } - return nok(code4); - } - function emailDomain(code4) { - if (code4 === 46) { - return effects.check(emailDomainDotTrail, emailDomainAfter, emailDomainDot)(code4); - } - if (code4 === 45 || code4 === 95 || asciiAlphanumeric(code4)) { - data8 = true; - effects.consume(code4); - return emailDomain; - } - return emailDomainAfter(code4); - } - function emailDomainDot(code4) { - effects.consume(code4); - dot = true; - return emailDomain; - } - function emailDomainAfter(code4) { - if (data8 && dot && asciiAlpha(self2.previous)) { - effects.exit("literalAutolinkEmail"); - effects.exit("literalAutolink"); - return ok3(code4); - } - return nok(code4); - } -} -function tokenizeWwwAutolink(effects, ok3, nok) { - const self2 = this; - return wwwStart; - function wwwStart(code4) { - if (code4 !== 87 && code4 !== 119 || !previousWww.call(self2, self2.previous) || previousUnbalanced(self2.events)) { - return nok(code4); - } - effects.enter("literalAutolink"); - effects.enter("literalAutolinkWww"); - return effects.check(wwwPrefix, effects.attempt(domain, effects.attempt(path, wwwAfter), nok), nok)(code4); - } - function wwwAfter(code4) { - effects.exit("literalAutolinkWww"); - effects.exit("literalAutolink"); - return ok3(code4); - } -} -function tokenizeProtocolAutolink(effects, ok3, nok) { - const self2 = this; - let buffer2 = ""; - let seen = false; - return protocolStart; - function protocolStart(code4) { - if ((code4 === 72 || code4 === 104) && previousProtocol.call(self2, self2.previous) && !previousUnbalanced(self2.events)) { - effects.enter("literalAutolink"); - effects.enter("literalAutolinkHttp"); - buffer2 += String.fromCodePoint(code4); - effects.consume(code4); - return protocolPrefixInside; - } - return nok(code4); - } - function protocolPrefixInside(code4) { - if (asciiAlpha(code4) && buffer2.length < 5) { - buffer2 += String.fromCodePoint(code4); - effects.consume(code4); - return protocolPrefixInside; - } - if (code4 === 58) { - const protocol = buffer2.toLowerCase(); - if (protocol === "http" || protocol === "https") { - effects.consume(code4); - return protocolSlashesInside; - } - } - return nok(code4); - } - function protocolSlashesInside(code4) { - if (code4 === 47) { - effects.consume(code4); - if (seen) { - return afterProtocol; - } - seen = true; - return protocolSlashesInside; - } - return nok(code4); - } - function afterProtocol(code4) { - return code4 === null || asciiControl(code4) || markdownLineEndingOrSpace(code4) || unicodeWhitespace(code4) || unicodePunctuation(code4) ? nok(code4) : effects.attempt(domain, effects.attempt(path, protocolAfter), nok)(code4); - } - function protocolAfter(code4) { - effects.exit("literalAutolinkHttp"); - effects.exit("literalAutolink"); - return ok3(code4); - } -} -function tokenizeWwwPrefix(effects, ok3, nok) { - let size = 0; - return wwwPrefixInside; - function wwwPrefixInside(code4) { - if ((code4 === 87 || code4 === 119) && size < 3) { - size++; - effects.consume(code4); - return wwwPrefixInside; - } - if (code4 === 46 && size === 3) { - effects.consume(code4); - return wwwPrefixAfter; - } - return nok(code4); - } - function wwwPrefixAfter(code4) { - return code4 === null ? nok(code4) : ok3(code4); - } -} -function tokenizeDomain(effects, ok3, nok) { - let underscoreInLastSegment; - let underscoreInLastLastSegment; - let seen; - return domainInside; - function domainInside(code4) { - if (code4 === 46 || code4 === 95) { - return effects.check(trail, domainAfter, domainAtPunctuation)(code4); - } - if (code4 === null || markdownLineEndingOrSpace(code4) || unicodeWhitespace(code4) || code4 !== 45 && unicodePunctuation(code4)) { - return domainAfter(code4); - } - seen = true; - effects.consume(code4); - return domainInside; - } - function domainAtPunctuation(code4) { - if (code4 === 95) { - underscoreInLastSegment = true; - } else { - underscoreInLastLastSegment = underscoreInLastSegment; - underscoreInLastSegment = void 0; - } - effects.consume(code4); - return domainInside; - } - function domainAfter(code4) { - if (underscoreInLastLastSegment || underscoreInLastSegment || !seen) { - return nok(code4); - } - return ok3(code4); - } -} -function tokenizePath(effects, ok3) { - let sizeOpen = 0; - let sizeClose = 0; - return pathInside; - function pathInside(code4) { - if (code4 === 40) { - sizeOpen++; - effects.consume(code4); - return pathInside; - } - if (code4 === 41 && sizeClose < sizeOpen) { - return pathAtPunctuation(code4); - } - if (code4 === 33 || code4 === 34 || code4 === 38 || code4 === 39 || code4 === 41 || code4 === 42 || code4 === 44 || code4 === 46 || code4 === 58 || code4 === 59 || code4 === 60 || code4 === 63 || code4 === 93 || code4 === 95 || code4 === 126) { - return effects.check(trail, ok3, pathAtPunctuation)(code4); - } - if (code4 === null || markdownLineEndingOrSpace(code4) || unicodeWhitespace(code4)) { - return ok3(code4); - } - effects.consume(code4); - return pathInside; - } - function pathAtPunctuation(code4) { - if (code4 === 41) { - sizeClose++; - } - effects.consume(code4); - return pathInside; - } -} -function tokenizeTrail(effects, ok3, nok) { - return trail2; - function trail2(code4) { - if (code4 === 33 || code4 === 34 || code4 === 39 || code4 === 41 || code4 === 42 || code4 === 44 || code4 === 46 || code4 === 58 || code4 === 59 || code4 === 63 || code4 === 95 || code4 === 126) { - effects.consume(code4); - return trail2; - } - if (code4 === 38) { - effects.consume(code4); - return trailCharacterReferenceStart; - } - if (code4 === 93) { - effects.consume(code4); - return trailBracketAfter; - } - if ( - // `<` is an end. - code4 === 60 || // So is whitespace. - code4 === null || markdownLineEndingOrSpace(code4) || unicodeWhitespace(code4) - ) { - return ok3(code4); - } - return nok(code4); - } - function trailBracketAfter(code4) { - if (code4 === null || code4 === 40 || code4 === 91 || markdownLineEndingOrSpace(code4) || unicodeWhitespace(code4)) { - return ok3(code4); - } - return trail2(code4); - } - function trailCharacterReferenceStart(code4) { - return asciiAlpha(code4) ? trailCharacterReferenceInside(code4) : nok(code4); - } - function trailCharacterReferenceInside(code4) { - if (code4 === 59) { - effects.consume(code4); - return trail2; - } - if (asciiAlpha(code4)) { - effects.consume(code4); - return trailCharacterReferenceInside; - } - return nok(code4); - } -} -function tokenizeEmailDomainDotTrail(effects, ok3, nok) { - return start; - function start(code4) { - effects.consume(code4); - return after; - } - function after(code4) { - return asciiAlphanumeric(code4) ? nok(code4) : ok3(code4); - } -} -function previousWww(code4) { - return code4 === null || code4 === 40 || code4 === 42 || code4 === 95 || code4 === 91 || code4 === 93 || code4 === 126 || markdownLineEndingOrSpace(code4); -} -function previousProtocol(code4) { - return !asciiAlpha(code4); -} -function previousEmail(code4) { - return !(code4 === 47 || gfmAtext(code4)); -} -function gfmAtext(code4) { - return code4 === 43 || code4 === 45 || code4 === 46 || code4 === 95 || asciiAlphanumeric(code4); -} -function previousUnbalanced(events) { - let index2 = events.length; - let result = false; - while (index2--) { - const token = events[index2][1]; - if ((token.type === "labelLink" || token.type === "labelImage") && !token._balanced) { - result = true; - break; - } - if (token._gfmAutolinkLiteralWalkedInto) { - result = false; - break; - } - } - if (events.length > 0 && !result) { - events[events.length - 1][1]._gfmAutolinkLiteralWalkedInto = true; - } - return result; -} -var wwwPrefix, domain, path, trail, emailDomainDotTrail, wwwAutolink, protocolAutolink, emailAutolink, text2, code2; -var init_syntax = __esm({ - "node_modules/.pnpm/micromark-extension-gfm-autolink-literal@2.1.0/node_modules/micromark-extension-gfm-autolink-literal/lib/syntax.js"() { - init_micromark_util_character(); - wwwPrefix = { - tokenize: tokenizeWwwPrefix, - partial: true - }; - domain = { - tokenize: tokenizeDomain, - partial: true - }; - path = { - tokenize: tokenizePath, - partial: true - }; - trail = { - tokenize: tokenizeTrail, - partial: true - }; - emailDomainDotTrail = { - tokenize: tokenizeEmailDomainDotTrail, - partial: true - }; - wwwAutolink = { - name: "wwwAutolink", - tokenize: tokenizeWwwAutolink, - previous: previousWww - }; - protocolAutolink = { - name: "protocolAutolink", - tokenize: tokenizeProtocolAutolink, - previous: previousProtocol - }; - emailAutolink = { - name: "emailAutolink", - tokenize: tokenizeEmailAutolink, - previous: previousEmail - }; - text2 = {}; - code2 = 48; - while (code2 < 123) { - text2[code2] = emailAutolink; - code2++; - if (code2 === 58) code2 = 65; - else if (code2 === 91) code2 = 97; - } - text2[43] = emailAutolink; - text2[45] = emailAutolink; - text2[46] = emailAutolink; - text2[95] = emailAutolink; - text2[72] = [emailAutolink, protocolAutolink]; - text2[104] = [emailAutolink, protocolAutolink]; - text2[87] = [emailAutolink, wwwAutolink]; - text2[119] = [emailAutolink, wwwAutolink]; - } -}); - -// node_modules/.pnpm/micromark-util-encode@2.0.1/node_modules/micromark-util-encode/index.js -function encode(value2) { - return value2.replace(/["&<>]/g, replace5); - function replace5(value3) { - return "&" + characterReferences[ - /** @type {keyof typeof characterReferences} */ - value3 - ] + ";"; - } -} -var characterReferences; -var init_micromark_util_encode = __esm({ - "node_modules/.pnpm/micromark-util-encode@2.0.1/node_modules/micromark-util-encode/index.js"() { - characterReferences = { '"': "quot", "&": "amp", "<": "lt", ">": "gt" }; - } -}); - -// node_modules/.pnpm/micromark-util-sanitize-uri@2.0.1/node_modules/micromark-util-sanitize-uri/index.js -function sanitizeUri(url, protocol) { - const value2 = encode(normalizeUri(url || "")); - if (!protocol) { - return value2; - } - const colon = value2.indexOf(":"); - const questionMark = value2.indexOf("?"); - const numberSign = value2.indexOf("#"); - const slash = value2.indexOf("/"); - if ( - // If there is no protocol, it’s relative. - colon < 0 || // If the first colon is after a `?`, `#`, or `/`, it’s not a protocol. - slash > -1 && colon > slash || questionMark > -1 && colon > questionMark || numberSign > -1 && colon > numberSign || // It is a protocol, it should be allowed. - protocol.test(value2.slice(0, colon)) - ) { - return value2; - } - return ""; -} -function normalizeUri(value2) { - const result = []; - let index2 = -1; - let start = 0; - let skip2 = 0; - while (++index2 < value2.length) { - const code4 = value2.charCodeAt(index2); - let replace5 = ""; - if (code4 === 37 && asciiAlphanumeric(value2.charCodeAt(index2 + 1)) && asciiAlphanumeric(value2.charCodeAt(index2 + 2))) { - skip2 = 2; - } else if (code4 < 128) { - if (!/[!#$&-;=?-Z_a-z~]/.test(String.fromCharCode(code4))) { - replace5 = String.fromCharCode(code4); - } - } else if (code4 > 55295 && code4 < 57344) { - const next2 = value2.charCodeAt(index2 + 1); - if (code4 < 56320 && next2 > 56319 && next2 < 57344) { - replace5 = String.fromCharCode(code4, next2); - skip2 = 1; - } else { - replace5 = "\uFFFD"; - } - } else { - replace5 = String.fromCharCode(code4); - } - if (replace5) { - result.push(value2.slice(start, index2), encodeURIComponent(replace5)); - start = index2 + skip2 + 1; - replace5 = ""; - } - if (skip2) { - index2 += skip2; - skip2 = 0; - } - } - return result.join("") + value2.slice(start); -} -var init_micromark_util_sanitize_uri = __esm({ - "node_modules/.pnpm/micromark-util-sanitize-uri@2.0.1/node_modules/micromark-util-sanitize-uri/index.js"() { - init_micromark_util_character(); - init_micromark_util_encode(); - } -}); - -// node_modules/.pnpm/micromark-extension-gfm-autolink-literal@2.1.0/node_modules/micromark-extension-gfm-autolink-literal/lib/html.js -function gfmAutolinkLiteralHtml() { - return { - exit: { - literalAutolinkEmail, - literalAutolinkHttp, - literalAutolinkWww - } - }; -} -function literalAutolinkWww(token) { - anchorFromToken.call(this, token, "http://"); -} -function literalAutolinkEmail(token) { - anchorFromToken.call(this, token, "mailto:"); -} -function literalAutolinkHttp(token) { - anchorFromToken.call(this, token); -} -function anchorFromToken(token, protocol) { - const url = this.sliceSerialize(token); - this.tag(''); - this.raw(this.encode(url)); - this.tag(""); -} -var init_html2 = __esm({ - "node_modules/.pnpm/micromark-extension-gfm-autolink-literal@2.1.0/node_modules/micromark-extension-gfm-autolink-literal/lib/html.js"() { - init_micromark_util_sanitize_uri(); - } -}); - -// node_modules/.pnpm/micromark-extension-gfm-autolink-literal@2.1.0/node_modules/micromark-extension-gfm-autolink-literal/index.js -var init_micromark_extension_gfm_autolink_literal = __esm({ - "node_modules/.pnpm/micromark-extension-gfm-autolink-literal@2.1.0/node_modules/micromark-extension-gfm-autolink-literal/index.js"() { - init_syntax(); - init_html2(); - } -}); - -// node_modules/.pnpm/micromark-util-resolve-all@2.0.1/node_modules/micromark-util-resolve-all/index.js -function resolveAll(constructs2, events, context2) { - const called = []; - let index2 = -1; - while (++index2 < constructs2.length) { - const resolve2 = constructs2[index2].resolveAll; - if (resolve2 && !called.includes(resolve2)) { - events = resolve2(events, context2); - called.push(resolve2); - } - } - return events; -} -var init_micromark_util_resolve_all = __esm({ - "node_modules/.pnpm/micromark-util-resolve-all@2.0.1/node_modules/micromark-util-resolve-all/index.js"() { - } -}); - -// node_modules/.pnpm/micromark-core-commonmark@2.0.3/node_modules/micromark-core-commonmark/lib/attention.js -function resolveAllAttention(events, context2) { - let index2 = -1; - let open; - let group; - let text9; - let openingSequence; - let closingSequence; - let use; - let nextEvents; - let offset; - while (++index2 < events.length) { - if (events[index2][0] === "enter" && events[index2][1].type === "attentionSequence" && events[index2][1]._close) { - open = index2; - while (open--) { - if (events[open][0] === "exit" && events[open][1].type === "attentionSequence" && events[open][1]._open && // If the markers are the same: - context2.sliceSerialize(events[open][1]).charCodeAt(0) === context2.sliceSerialize(events[index2][1]).charCodeAt(0)) { - if ((events[open][1]._close || events[index2][1]._open) && (events[index2][1].end.offset - events[index2][1].start.offset) % 3 && !((events[open][1].end.offset - events[open][1].start.offset + events[index2][1].end.offset - events[index2][1].start.offset) % 3)) { - continue; - } - use = events[open][1].end.offset - events[open][1].start.offset > 1 && events[index2][1].end.offset - events[index2][1].start.offset > 1 ? 2 : 1; - const start = { - ...events[open][1].end - }; - const end3 = { - ...events[index2][1].start - }; - movePoint(start, -use); - movePoint(end3, use); - openingSequence = { - type: use > 1 ? "strongSequence" : "emphasisSequence", - start, - end: { - ...events[open][1].end - } - }; - closingSequence = { - type: use > 1 ? "strongSequence" : "emphasisSequence", - start: { - ...events[index2][1].start - }, - end: end3 - }; - text9 = { - type: use > 1 ? "strongText" : "emphasisText", - start: { - ...events[open][1].end - }, - end: { - ...events[index2][1].start - } - }; - group = { - type: use > 1 ? "strong" : "emphasis", - start: { - ...openingSequence.start - }, - end: { - ...closingSequence.end - } - }; - events[open][1].end = { - ...openingSequence.start - }; - events[index2][1].start = { - ...closingSequence.end - }; - nextEvents = []; - if (events[open][1].end.offset - events[open][1].start.offset) { - nextEvents = push(nextEvents, [["enter", events[open][1], context2], ["exit", events[open][1], context2]]); - } - nextEvents = push(nextEvents, [["enter", group, context2], ["enter", openingSequence, context2], ["exit", openingSequence, context2], ["enter", text9, context2]]); - nextEvents = push(nextEvents, resolveAll(context2.parser.constructs.insideSpan.null, events.slice(open + 1, index2), context2)); - nextEvents = push(nextEvents, [["exit", text9, context2], ["enter", closingSequence, context2], ["exit", closingSequence, context2], ["exit", group, context2]]); - if (events[index2][1].end.offset - events[index2][1].start.offset) { - offset = 2; - nextEvents = push(nextEvents, [["enter", events[index2][1], context2], ["exit", events[index2][1], context2]]); - } else { - offset = 0; - } - splice(events, open - 1, index2 - open + 3, nextEvents); - index2 = open + nextEvents.length - offset - 2; - break; - } - } - } - } - index2 = -1; - while (++index2 < events.length) { - if (events[index2][1].type === "attentionSequence") { - events[index2][1].type = "data"; - } - } - return events; -} -function tokenizeAttention(effects, ok3) { - const attentionMarkers2 = this.parser.constructs.attentionMarkers.null; - const previous3 = this.previous; - const before = classifyCharacter(previous3); - let marker; - return start; - function start(code4) { - marker = code4; - effects.enter("attentionSequence"); - return inside(code4); - } - function inside(code4) { - if (code4 === marker) { - effects.consume(code4); - return inside; - } - const token = effects.exit("attentionSequence"); - const after = classifyCharacter(code4); - const open = !after || after === 2 && before || attentionMarkers2.includes(code4); - const close7 = !before || before === 2 && after || attentionMarkers2.includes(previous3); - token._open = Boolean(marker === 42 ? open : open && (before || !close7)); - token._close = Boolean(marker === 42 ? close7 : close7 && (after || !open)); - return ok3(code4); - } -} -function movePoint(point4, offset) { - point4.column += offset; - point4.offset += offset; - point4._bufferIndex += offset; -} -var attention; -var init_attention = __esm({ - "node_modules/.pnpm/micromark-core-commonmark@2.0.3/node_modules/micromark-core-commonmark/lib/attention.js"() { - init_micromark_util_chunked(); - init_micromark_util_classify_character(); - init_micromark_util_resolve_all(); - attention = { - name: "attention", - resolveAll: resolveAllAttention, - tokenize: tokenizeAttention - }; - } -}); - -// node_modules/.pnpm/micromark-core-commonmark@2.0.3/node_modules/micromark-core-commonmark/lib/autolink.js -function tokenizeAutolink(effects, ok3, nok) { - let size = 0; - return start; - function start(code4) { - effects.enter("autolink"); - effects.enter("autolinkMarker"); - effects.consume(code4); - effects.exit("autolinkMarker"); - effects.enter("autolinkProtocol"); - return open; - } - function open(code4) { - if (asciiAlpha(code4)) { - effects.consume(code4); - return schemeOrEmailAtext; - } - if (code4 === 64) { - return nok(code4); - } - return emailAtext(code4); - } - function schemeOrEmailAtext(code4) { - if (code4 === 43 || code4 === 45 || code4 === 46 || asciiAlphanumeric(code4)) { - size = 1; - return schemeInsideOrEmailAtext(code4); - } - return emailAtext(code4); - } - function schemeInsideOrEmailAtext(code4) { - if (code4 === 58) { - effects.consume(code4); - size = 0; - return urlInside; - } - if ((code4 === 43 || code4 === 45 || code4 === 46 || asciiAlphanumeric(code4)) && size++ < 32) { - effects.consume(code4); - return schemeInsideOrEmailAtext; - } - size = 0; - return emailAtext(code4); - } - function urlInside(code4) { - if (code4 === 62) { - effects.exit("autolinkProtocol"); - effects.enter("autolinkMarker"); - effects.consume(code4); - effects.exit("autolinkMarker"); - effects.exit("autolink"); - return ok3; - } - if (code4 === null || code4 === 32 || code4 === 60 || asciiControl(code4)) { - return nok(code4); - } - effects.consume(code4); - return urlInside; - } - function emailAtext(code4) { - if (code4 === 64) { - effects.consume(code4); - return emailAtSignOrDot; - } - if (asciiAtext(code4)) { - effects.consume(code4); - return emailAtext; - } - return nok(code4); - } - function emailAtSignOrDot(code4) { - return asciiAlphanumeric(code4) ? emailLabel(code4) : nok(code4); - } - function emailLabel(code4) { - if (code4 === 46) { - effects.consume(code4); - size = 0; - return emailAtSignOrDot; - } - if (code4 === 62) { - effects.exit("autolinkProtocol").type = "autolinkEmail"; - effects.enter("autolinkMarker"); - effects.consume(code4); - effects.exit("autolinkMarker"); - effects.exit("autolink"); - return ok3; - } - return emailValue(code4); - } - function emailValue(code4) { - if ((code4 === 45 || asciiAlphanumeric(code4)) && size++ < 63) { - const next2 = code4 === 45 ? emailValue : emailLabel; - effects.consume(code4); - return next2; - } - return nok(code4); - } -} -var autolink; -var init_autolink = __esm({ - "node_modules/.pnpm/micromark-core-commonmark@2.0.3/node_modules/micromark-core-commonmark/lib/autolink.js"() { - init_micromark_util_character(); - autolink = { - name: "autolink", - tokenize: tokenizeAutolink - }; - } -}); - -// node_modules/.pnpm/micromark-factory-space@2.0.1/node_modules/micromark-factory-space/index.js -function factorySpace(effects, ok3, type5, max3) { - const limit = max3 ? max3 - 1 : Number.POSITIVE_INFINITY; - let size = 0; - return start; - function start(code4) { - if (markdownSpace(code4)) { - effects.enter(type5); - return prefix4(code4); - } - return ok3(code4); - } - function prefix4(code4) { - if (markdownSpace(code4) && size++ < limit) { - effects.consume(code4); - return prefix4; - } - effects.exit(type5); - return ok3(code4); - } -} -var init_micromark_factory_space = __esm({ - "node_modules/.pnpm/micromark-factory-space@2.0.1/node_modules/micromark-factory-space/index.js"() { - init_micromark_util_character(); - } -}); - -// node_modules/.pnpm/micromark-core-commonmark@2.0.3/node_modules/micromark-core-commonmark/lib/blank-line.js -function tokenizeBlankLine(effects, ok3, nok) { - return start; - function start(code4) { - return markdownSpace(code4) ? factorySpace(effects, after, "linePrefix")(code4) : after(code4); - } - function after(code4) { - return code4 === null || markdownLineEnding(code4) ? ok3(code4) : nok(code4); - } -} -var blankLine; -var init_blank_line = __esm({ - "node_modules/.pnpm/micromark-core-commonmark@2.0.3/node_modules/micromark-core-commonmark/lib/blank-line.js"() { - init_micromark_factory_space(); - init_micromark_util_character(); - blankLine = { - partial: true, - tokenize: tokenizeBlankLine - }; - } -}); - -// node_modules/.pnpm/micromark-core-commonmark@2.0.3/node_modules/micromark-core-commonmark/lib/block-quote.js -function tokenizeBlockQuoteStart(effects, ok3, nok) { - const self2 = this; - return start; - function start(code4) { - if (code4 === 62) { - const state = self2.containerState; - if (!state.open) { - effects.enter("blockQuote", { - _container: true - }); - state.open = true; - } - effects.enter("blockQuotePrefix"); - effects.enter("blockQuoteMarker"); - effects.consume(code4); - effects.exit("blockQuoteMarker"); - return after; - } - return nok(code4); - } - function after(code4) { - if (markdownSpace(code4)) { - effects.enter("blockQuotePrefixWhitespace"); - effects.consume(code4); - effects.exit("blockQuotePrefixWhitespace"); - effects.exit("blockQuotePrefix"); - return ok3; - } - effects.exit("blockQuotePrefix"); - return ok3(code4); - } -} -function tokenizeBlockQuoteContinuation(effects, ok3, nok) { - const self2 = this; - return contStart; - function contStart(code4) { - if (markdownSpace(code4)) { - return factorySpace(effects, contBefore, "linePrefix", self2.parser.constructs.disable.null.includes("codeIndented") ? void 0 : 4)(code4); - } - return contBefore(code4); - } - function contBefore(code4) { - return effects.attempt(blockQuote, ok3, nok)(code4); - } -} -function exit2(effects) { - effects.exit("blockQuote"); -} -var blockQuote; -var init_block_quote = __esm({ - "node_modules/.pnpm/micromark-core-commonmark@2.0.3/node_modules/micromark-core-commonmark/lib/block-quote.js"() { - init_micromark_factory_space(); - init_micromark_util_character(); - blockQuote = { - continuation: { - tokenize: tokenizeBlockQuoteContinuation - }, - exit: exit2, - name: "blockQuote", - tokenize: tokenizeBlockQuoteStart - }; - } -}); - -// node_modules/.pnpm/micromark-core-commonmark@2.0.3/node_modules/micromark-core-commonmark/lib/character-escape.js -function tokenizeCharacterEscape(effects, ok3, nok) { - return start; - function start(code4) { - effects.enter("characterEscape"); - effects.enter("escapeMarker"); - effects.consume(code4); - effects.exit("escapeMarker"); - return inside; - } - function inside(code4) { - if (asciiPunctuation(code4)) { - effects.enter("characterEscapeValue"); - effects.consume(code4); - effects.exit("characterEscapeValue"); - effects.exit("characterEscape"); - return ok3; - } - return nok(code4); - } -} -var characterEscape; -var init_character_escape = __esm({ - "node_modules/.pnpm/micromark-core-commonmark@2.0.3/node_modules/micromark-core-commonmark/lib/character-escape.js"() { - init_micromark_util_character(); - characterEscape = { - name: "characterEscape", - tokenize: tokenizeCharacterEscape - }; - } -}); - -// node_modules/.pnpm/micromark-core-commonmark@2.0.3/node_modules/micromark-core-commonmark/lib/character-reference.js -function tokenizeCharacterReference(effects, ok3, nok) { - const self2 = this; - let size = 0; - let max3; - let test; - return start; - function start(code4) { - effects.enter("characterReference"); - effects.enter("characterReferenceMarker"); - effects.consume(code4); - effects.exit("characterReferenceMarker"); - return open; - } - function open(code4) { - if (code4 === 35) { - effects.enter("characterReferenceMarkerNumeric"); - effects.consume(code4); - effects.exit("characterReferenceMarkerNumeric"); - return numeric; - } - effects.enter("characterReferenceValue"); - max3 = 31; - test = asciiAlphanumeric; - return value2(code4); - } - function numeric(code4) { - if (code4 === 88 || code4 === 120) { - effects.enter("characterReferenceMarkerHexadecimal"); - effects.consume(code4); - effects.exit("characterReferenceMarkerHexadecimal"); - effects.enter("characterReferenceValue"); - max3 = 6; - test = asciiHexDigit; - return value2; - } - effects.enter("characterReferenceValue"); - max3 = 7; - test = asciiDigit; - return value2(code4); - } - function value2(code4) { - if (code4 === 59 && size) { - const token = effects.exit("characterReferenceValue"); - if (test === asciiAlphanumeric && !decodeNamedCharacterReference(self2.sliceSerialize(token))) { - return nok(code4); - } - effects.enter("characterReferenceMarker"); - effects.consume(code4); - effects.exit("characterReferenceMarker"); - effects.exit("characterReference"); - return ok3; - } - if (test(code4) && size++ < max3) { - effects.consume(code4); - return value2; - } - return nok(code4); - } -} -var characterReference; -var init_character_reference = __esm({ - "node_modules/.pnpm/micromark-core-commonmark@2.0.3/node_modules/micromark-core-commonmark/lib/character-reference.js"() { - init_index_dom(); - init_micromark_util_character(); - characterReference = { - name: "characterReference", - tokenize: tokenizeCharacterReference - }; - } -}); - -// node_modules/.pnpm/micromark-core-commonmark@2.0.3/node_modules/micromark-core-commonmark/lib/code-fenced.js -function tokenizeCodeFenced(effects, ok3, nok) { - const self2 = this; - const closeStart = { - partial: true, - tokenize: tokenizeCloseStart - }; - let initialPrefix = 0; - let sizeOpen = 0; - let marker; - return start; - function start(code4) { - return beforeSequenceOpen(code4); - } - function beforeSequenceOpen(code4) { - const tail = self2.events[self2.events.length - 1]; - initialPrefix = tail && tail[1].type === "linePrefix" ? tail[2].sliceSerialize(tail[1], true).length : 0; - marker = code4; - effects.enter("codeFenced"); - effects.enter("codeFencedFence"); - effects.enter("codeFencedFenceSequence"); - return sequenceOpen(code4); - } - function sequenceOpen(code4) { - if (code4 === marker) { - sizeOpen++; - effects.consume(code4); - return sequenceOpen; - } - if (sizeOpen < 3) { - return nok(code4); - } - effects.exit("codeFencedFenceSequence"); - return markdownSpace(code4) ? factorySpace(effects, infoBefore, "whitespace")(code4) : infoBefore(code4); - } - function infoBefore(code4) { - if (code4 === null || markdownLineEnding(code4)) { - effects.exit("codeFencedFence"); - return self2.interrupt ? ok3(code4) : effects.check(nonLazyContinuation, atNonLazyBreak, after)(code4); - } - effects.enter("codeFencedFenceInfo"); - effects.enter("chunkString", { - contentType: "string" - }); - return info(code4); - } - function info(code4) { - if (code4 === null || markdownLineEnding(code4)) { - effects.exit("chunkString"); - effects.exit("codeFencedFenceInfo"); - return infoBefore(code4); - } - if (markdownSpace(code4)) { - effects.exit("chunkString"); - effects.exit("codeFencedFenceInfo"); - return factorySpace(effects, metaBefore, "whitespace")(code4); - } - if (code4 === 96 && code4 === marker) { - return nok(code4); - } - effects.consume(code4); - return info; - } - function metaBefore(code4) { - if (code4 === null || markdownLineEnding(code4)) { - return infoBefore(code4); - } - effects.enter("codeFencedFenceMeta"); - effects.enter("chunkString", { - contentType: "string" - }); - return meta(code4); - } - function meta(code4) { - if (code4 === null || markdownLineEnding(code4)) { - effects.exit("chunkString"); - effects.exit("codeFencedFenceMeta"); - return infoBefore(code4); - } - if (code4 === 96 && code4 === marker) { - return nok(code4); - } - effects.consume(code4); - return meta; - } - function atNonLazyBreak(code4) { - return effects.attempt(closeStart, after, contentBefore)(code4); - } - function contentBefore(code4) { - effects.enter("lineEnding"); - effects.consume(code4); - effects.exit("lineEnding"); - return contentStart; - } - function contentStart(code4) { - return initialPrefix > 0 && markdownSpace(code4) ? factorySpace(effects, beforeContentChunk, "linePrefix", initialPrefix + 1)(code4) : beforeContentChunk(code4); - } - function beforeContentChunk(code4) { - if (code4 === null || markdownLineEnding(code4)) { - return effects.check(nonLazyContinuation, atNonLazyBreak, after)(code4); - } - effects.enter("codeFlowValue"); - return contentChunk(code4); - } - function contentChunk(code4) { - if (code4 === null || markdownLineEnding(code4)) { - effects.exit("codeFlowValue"); - return beforeContentChunk(code4); - } - effects.consume(code4); - return contentChunk; - } - function after(code4) { - effects.exit("codeFenced"); - return ok3(code4); - } - function tokenizeCloseStart(effects2, ok4, nok2) { - let size = 0; - return startBefore; - function startBefore(code4) { - effects2.enter("lineEnding"); - effects2.consume(code4); - effects2.exit("lineEnding"); - return start2; - } - function start2(code4) { - effects2.enter("codeFencedFence"); - return markdownSpace(code4) ? factorySpace(effects2, beforeSequenceClose, "linePrefix", self2.parser.constructs.disable.null.includes("codeIndented") ? void 0 : 4)(code4) : beforeSequenceClose(code4); - } - function beforeSequenceClose(code4) { - if (code4 === marker) { - effects2.enter("codeFencedFenceSequence"); - return sequenceClose(code4); - } - return nok2(code4); - } - function sequenceClose(code4) { - if (code4 === marker) { - size++; - effects2.consume(code4); - return sequenceClose; - } - if (size >= sizeOpen) { - effects2.exit("codeFencedFenceSequence"); - return markdownSpace(code4) ? factorySpace(effects2, sequenceCloseAfter, "whitespace")(code4) : sequenceCloseAfter(code4); - } - return nok2(code4); - } - function sequenceCloseAfter(code4) { - if (code4 === null || markdownLineEnding(code4)) { - effects2.exit("codeFencedFence"); - return ok4(code4); - } - return nok2(code4); - } - } -} -function tokenizeNonLazyContinuation(effects, ok3, nok) { - const self2 = this; - return start; - function start(code4) { - if (code4 === null) { - return nok(code4); - } - effects.enter("lineEnding"); - effects.consume(code4); - effects.exit("lineEnding"); - return lineStart; - } - function lineStart(code4) { - return self2.parser.lazy[self2.now().line] ? nok(code4) : ok3(code4); - } -} -var nonLazyContinuation, codeFenced; -var init_code_fenced = __esm({ - "node_modules/.pnpm/micromark-core-commonmark@2.0.3/node_modules/micromark-core-commonmark/lib/code-fenced.js"() { - init_micromark_factory_space(); - init_micromark_util_character(); - nonLazyContinuation = { - partial: true, - tokenize: tokenizeNonLazyContinuation - }; - codeFenced = { - concrete: true, - name: "codeFenced", - tokenize: tokenizeCodeFenced - }; - } -}); - -// node_modules/.pnpm/micromark-core-commonmark@2.0.3/node_modules/micromark-core-commonmark/lib/code-indented.js -function tokenizeCodeIndented(effects, ok3, nok) { - const self2 = this; - return start; - function start(code4) { - effects.enter("codeIndented"); - return factorySpace(effects, afterPrefix, "linePrefix", 4 + 1)(code4); - } - function afterPrefix(code4) { - const tail = self2.events[self2.events.length - 1]; - return tail && tail[1].type === "linePrefix" && tail[2].sliceSerialize(tail[1], true).length >= 4 ? atBreak(code4) : nok(code4); - } - function atBreak(code4) { - if (code4 === null) { - return after(code4); - } - if (markdownLineEnding(code4)) { - return effects.attempt(furtherStart, atBreak, after)(code4); - } - effects.enter("codeFlowValue"); - return inside(code4); - } - function inside(code4) { - if (code4 === null || markdownLineEnding(code4)) { - effects.exit("codeFlowValue"); - return atBreak(code4); - } - effects.consume(code4); - return inside; - } - function after(code4) { - effects.exit("codeIndented"); - return ok3(code4); - } -} -function tokenizeFurtherStart(effects, ok3, nok) { - const self2 = this; - return furtherStart2; - function furtherStart2(code4) { - if (self2.parser.lazy[self2.now().line]) { - return nok(code4); - } - if (markdownLineEnding(code4)) { - effects.enter("lineEnding"); - effects.consume(code4); - effects.exit("lineEnding"); - return furtherStart2; - } - return factorySpace(effects, afterPrefix, "linePrefix", 4 + 1)(code4); - } - function afterPrefix(code4) { - const tail = self2.events[self2.events.length - 1]; - return tail && tail[1].type === "linePrefix" && tail[2].sliceSerialize(tail[1], true).length >= 4 ? ok3(code4) : markdownLineEnding(code4) ? furtherStart2(code4) : nok(code4); - } -} -var codeIndented, furtherStart; -var init_code_indented = __esm({ - "node_modules/.pnpm/micromark-core-commonmark@2.0.3/node_modules/micromark-core-commonmark/lib/code-indented.js"() { - init_micromark_factory_space(); - init_micromark_util_character(); - codeIndented = { - name: "codeIndented", - tokenize: tokenizeCodeIndented - }; - furtherStart = { - partial: true, - tokenize: tokenizeFurtherStart - }; - } -}); - -// node_modules/.pnpm/micromark-core-commonmark@2.0.3/node_modules/micromark-core-commonmark/lib/code-text.js -function resolveCodeText(events) { - let tailExitIndex = events.length - 4; - let headEnterIndex = 3; - let index2; - let enter; - if ((events[headEnterIndex][1].type === "lineEnding" || events[headEnterIndex][1].type === "space") && (events[tailExitIndex][1].type === "lineEnding" || events[tailExitIndex][1].type === "space")) { - index2 = headEnterIndex; - while (++index2 < tailExitIndex) { - if (events[index2][1].type === "codeTextData") { - events[headEnterIndex][1].type = "codeTextPadding"; - events[tailExitIndex][1].type = "codeTextPadding"; - headEnterIndex += 2; - tailExitIndex -= 2; - break; - } - } - } - index2 = headEnterIndex - 1; - tailExitIndex++; - while (++index2 <= tailExitIndex) { - if (enter === void 0) { - if (index2 !== tailExitIndex && events[index2][1].type !== "lineEnding") { - enter = index2; - } - } else if (index2 === tailExitIndex || events[index2][1].type === "lineEnding") { - events[enter][1].type = "codeTextData"; - if (index2 !== enter + 2) { - events[enter][1].end = events[index2 - 1][1].end; - events.splice(enter + 2, index2 - enter - 2); - tailExitIndex -= index2 - enter - 2; - index2 = enter + 2; - } - enter = void 0; - } - } - return events; -} -function previous2(code4) { - return code4 !== 96 || this.events[this.events.length - 1][1].type === "characterEscape"; -} -function tokenizeCodeText(effects, ok3, nok) { - const self2 = this; - let sizeOpen = 0; - let size; - let token; - return start; - function start(code4) { - effects.enter("codeText"); - effects.enter("codeTextSequence"); - return sequenceOpen(code4); - } - function sequenceOpen(code4) { - if (code4 === 96) { - effects.consume(code4); - sizeOpen++; - return sequenceOpen; - } - effects.exit("codeTextSequence"); - return between2(code4); - } - function between2(code4) { - if (code4 === null) { - return nok(code4); - } - if (code4 === 32) { - effects.enter("space"); - effects.consume(code4); - effects.exit("space"); - return between2; - } - if (code4 === 96) { - token = effects.enter("codeTextSequence"); - size = 0; - return sequenceClose(code4); - } - if (markdownLineEnding(code4)) { - effects.enter("lineEnding"); - effects.consume(code4); - effects.exit("lineEnding"); - return between2; - } - effects.enter("codeTextData"); - return data8(code4); - } - function data8(code4) { - if (code4 === null || code4 === 32 || code4 === 96 || markdownLineEnding(code4)) { - effects.exit("codeTextData"); - return between2(code4); - } - effects.consume(code4); - return data8; - } - function sequenceClose(code4) { - if (code4 === 96) { - effects.consume(code4); - size++; - return sequenceClose; - } - if (size === sizeOpen) { - effects.exit("codeTextSequence"); - effects.exit("codeText"); - return ok3(code4); - } - token.type = "codeTextData"; - return data8(code4); - } -} -var codeText; -var init_code_text = __esm({ - "node_modules/.pnpm/micromark-core-commonmark@2.0.3/node_modules/micromark-core-commonmark/lib/code-text.js"() { - init_micromark_util_character(); - codeText = { - name: "codeText", - previous: previous2, - resolve: resolveCodeText, - tokenize: tokenizeCodeText - }; - } -}); - -// node_modules/.pnpm/micromark-util-subtokenize@2.1.0/node_modules/micromark-util-subtokenize/lib/splice-buffer.js -function chunkedPush(list5, right) { - let chunkStart = 0; - if (right.length < 1e4) { - list5.push(...right); - } else { - while (chunkStart < right.length) { - list5.push(...right.slice(chunkStart, chunkStart + 1e4)); - chunkStart += 1e4; - } - } -} -var SpliceBuffer; -var init_splice_buffer = __esm({ - "node_modules/.pnpm/micromark-util-subtokenize@2.1.0/node_modules/micromark-util-subtokenize/lib/splice-buffer.js"() { - SpliceBuffer = class { - /** - * @param {ReadonlyArray | null | undefined} [initial] - * Initial items (optional). - * @returns - * Splice buffer. - */ - constructor(initial2) { - this.left = initial2 ? [...initial2] : []; - this.right = []; - } - /** - * Array access; - * does not move the cursor. - * - * @param {number} index - * Index. - * @return {T} - * Item. - */ - get(index2) { - if (index2 < 0 || index2 >= this.left.length + this.right.length) { - throw new RangeError("Cannot access index `" + index2 + "` in a splice buffer of size `" + (this.left.length + this.right.length) + "`"); - } - if (index2 < this.left.length) return this.left[index2]; - return this.right[this.right.length - index2 + this.left.length - 1]; - } - /** - * The length of the splice buffer, one greater than the largest index in the - * array. - */ - get length() { - return this.left.length + this.right.length; - } - /** - * Remove and return `list[0]`; - * moves the cursor to `0`. - * - * @returns {T | undefined} - * Item, optional. - */ - shift() { - this.setCursor(0); - return this.right.pop(); - } - /** - * Slice the buffer to get an array; - * does not move the cursor. - * - * @param {number} start - * Start. - * @param {number | null | undefined} [end] - * End (optional). - * @returns {Array} - * Array of items. - */ - slice(start, end3) { - const stop = end3 === null || end3 === void 0 ? Number.POSITIVE_INFINITY : end3; - if (stop < this.left.length) { - return this.left.slice(start, stop); - } - if (start > this.left.length) { - return this.right.slice(this.right.length - stop + this.left.length, this.right.length - start + this.left.length).reverse(); - } - return this.left.slice(start).concat(this.right.slice(this.right.length - stop + this.left.length).reverse()); - } - /** - * Mimics the behavior of Array.prototype.splice() except for the change of - * interface necessary to avoid segfaults when patching in very large arrays. - * - * This operation moves cursor is moved to `start` and results in the cursor - * placed after any inserted items. - * - * @param {number} start - * Start; - * zero-based index at which to start changing the array; - * negative numbers count backwards from the end of the array and values - * that are out-of bounds are clamped to the appropriate end of the array. - * @param {number | null | undefined} [deleteCount=0] - * Delete count (default: `0`); - * maximum number of elements to delete, starting from start. - * @param {Array | null | undefined} [items=[]] - * Items to include in place of the deleted items (default: `[]`). - * @return {Array} - * Any removed items. - */ - splice(start, deleteCount, items) { - const count2 = deleteCount || 0; - this.setCursor(Math.trunc(start)); - const removed = this.right.splice(this.right.length - count2, Number.POSITIVE_INFINITY); - if (items) chunkedPush(this.left, items); - return removed.reverse(); - } - /** - * Remove and return the highest-numbered item in the array, so - * `list[list.length - 1]`; - * Moves the cursor to `length`. - * - * @returns {T | undefined} - * Item, optional. - */ - pop() { - this.setCursor(Number.POSITIVE_INFINITY); - return this.left.pop(); - } - /** - * Inserts a single item to the high-numbered side of the array; - * moves the cursor to `length`. - * - * @param {T} item - * Item. - * @returns {undefined} - * Nothing. - */ - push(item) { - this.setCursor(Number.POSITIVE_INFINITY); - this.left.push(item); - } - /** - * Inserts many items to the high-numbered side of the array. - * Moves the cursor to `length`. - * - * @param {Array} items - * Items. - * @returns {undefined} - * Nothing. - */ - pushMany(items) { - this.setCursor(Number.POSITIVE_INFINITY); - chunkedPush(this.left, items); - } - /** - * Inserts a single item to the low-numbered side of the array; - * Moves the cursor to `0`. - * - * @param {T} item - * Item. - * @returns {undefined} - * Nothing. - */ - unshift(item) { - this.setCursor(0); - this.right.push(item); - } - /** - * Inserts many items to the low-numbered side of the array; - * moves the cursor to `0`. - * - * @param {Array} items - * Items. - * @returns {undefined} - * Nothing. - */ - unshiftMany(items) { - this.setCursor(0); - chunkedPush(this.right, items.reverse()); - } - /** - * Move the cursor to a specific position in the array. Requires - * time proportional to the distance moved. - * - * If `n < 0`, the cursor will end up at the beginning. - * If `n > length`, the cursor will end up at the end. - * - * @param {number} n - * Position. - * @return {undefined} - * Nothing. - */ - setCursor(n12) { - if (n12 === this.left.length || n12 > this.left.length && this.right.length === 0 || n12 < 0 && this.left.length === 0) return; - if (n12 < this.left.length) { - const removed = this.left.splice(n12, Number.POSITIVE_INFINITY); - chunkedPush(this.right, removed.reverse()); - } else { - const removed = this.right.splice(this.left.length + this.right.length - n12, Number.POSITIVE_INFINITY); - chunkedPush(this.left, removed.reverse()); - } - } - }; - } -}); - -// node_modules/.pnpm/micromark-util-subtokenize@2.1.0/node_modules/micromark-util-subtokenize/index.js -function subtokenize(eventsArray) { - const jumps = {}; - let index2 = -1; - let event; - let lineIndex; - let otherIndex; - let otherEvent; - let parameters; - let subevents; - let more; - const events = new SpliceBuffer(eventsArray); - while (++index2 < events.length) { - while (index2 in jumps) { - index2 = jumps[index2]; - } - event = events.get(index2); - if (index2 && event[1].type === "chunkFlow" && events.get(index2 - 1)[1].type === "listItemPrefix") { - subevents = event[1]._tokenizer.events; - otherIndex = 0; - if (otherIndex < subevents.length && subevents[otherIndex][1].type === "lineEndingBlank") { - otherIndex += 2; - } - if (otherIndex < subevents.length && subevents[otherIndex][1].type === "content") { - while (++otherIndex < subevents.length) { - if (subevents[otherIndex][1].type === "content") { - break; - } - if (subevents[otherIndex][1].type === "chunkText") { - subevents[otherIndex][1]._isInFirstContentOfListItem = true; - otherIndex++; - } - } - } - } - if (event[0] === "enter") { - if (event[1].contentType) { - Object.assign(jumps, subcontent(events, index2)); - index2 = jumps[index2]; - more = true; - } - } else if (event[1]._container) { - otherIndex = index2; - lineIndex = void 0; - while (otherIndex--) { - otherEvent = events.get(otherIndex); - if (otherEvent[1].type === "lineEnding" || otherEvent[1].type === "lineEndingBlank") { - if (otherEvent[0] === "enter") { - if (lineIndex) { - events.get(lineIndex)[1].type = "lineEndingBlank"; - } - otherEvent[1].type = "lineEnding"; - lineIndex = otherIndex; - } - } else if (otherEvent[1].type === "linePrefix" || otherEvent[1].type === "listItemIndent") { - } else { - break; - } - } - if (lineIndex) { - event[1].end = { - ...events.get(lineIndex)[1].start - }; - parameters = events.slice(lineIndex, index2); - parameters.unshift(event); - events.splice(lineIndex, index2 - lineIndex + 1, parameters); - } - } - } - splice(eventsArray, 0, Number.POSITIVE_INFINITY, events.slice(0)); - return !more; -} -function subcontent(events, eventIndex) { - const token = events.get(eventIndex)[1]; - const context2 = events.get(eventIndex)[2]; - let startPosition = eventIndex - 1; - const startPositions = []; - let tokenizer = token._tokenizer; - if (!tokenizer) { - tokenizer = context2.parser[token.contentType](token.start); - if (token._contentTypeTextTrailing) { - tokenizer._contentTypeTextTrailing = true; - } - } - const childEvents = tokenizer.events; - const jumps = []; - const gaps = {}; - let stream; - let previous3; - let index2 = -1; - let current = token; - let adjust = 0; - let start = 0; - const breaks = [start]; - while (current) { - while (events.get(++startPosition)[1] !== current) { - } - startPositions.push(startPosition); - if (!current._tokenizer) { - stream = context2.sliceStream(current); - if (!current.next) { - stream.push(null); - } - if (previous3) { - tokenizer.defineSkip(current.start); - } - if (current._isInFirstContentOfListItem) { - tokenizer._gfmTasklistFirstContentOfListItem = true; - } - tokenizer.write(stream); - if (current._isInFirstContentOfListItem) { - tokenizer._gfmTasklistFirstContentOfListItem = void 0; - } - } - previous3 = current; - current = current.next; - } - current = token; - while (++index2 < childEvents.length) { - if ( - // Find a void token that includes a break. - childEvents[index2][0] === "exit" && childEvents[index2 - 1][0] === "enter" && childEvents[index2][1].type === childEvents[index2 - 1][1].type && childEvents[index2][1].start.line !== childEvents[index2][1].end.line - ) { - start = index2 + 1; - breaks.push(start); - current._tokenizer = void 0; - current.previous = void 0; - current = current.next; - } - } - tokenizer.events = []; - if (current) { - current._tokenizer = void 0; - current.previous = void 0; - } else { - breaks.pop(); - } - index2 = breaks.length; - while (index2--) { - const slice = childEvents.slice(breaks[index2], breaks[index2 + 1]); - const start2 = startPositions.pop(); - jumps.push([start2, start2 + slice.length - 1]); - events.splice(start2, 2, slice); - } - jumps.reverse(); - index2 = -1; - while (++index2 < jumps.length) { - gaps[adjust + jumps[index2][0]] = adjust + jumps[index2][1]; - adjust += jumps[index2][1] - jumps[index2][0] - 1; - } - return gaps; -} -var init_micromark_util_subtokenize = __esm({ - "node_modules/.pnpm/micromark-util-subtokenize@2.1.0/node_modules/micromark-util-subtokenize/index.js"() { - init_micromark_util_chunked(); - init_splice_buffer(); - init_splice_buffer(); - } -}); - -// node_modules/.pnpm/micromark-core-commonmark@2.0.3/node_modules/micromark-core-commonmark/lib/content.js -function resolveContent(events) { - subtokenize(events); - return events; -} -function tokenizeContent(effects, ok3) { - let previous3; - return chunkStart; - function chunkStart(code4) { - effects.enter("content"); - previous3 = effects.enter("chunkContent", { - contentType: "content" - }); - return chunkInside(code4); - } - function chunkInside(code4) { - if (code4 === null) { - return contentEnd(code4); - } - if (markdownLineEnding(code4)) { - return effects.check(continuationConstruct, contentContinue, contentEnd)(code4); - } - effects.consume(code4); - return chunkInside; - } - function contentEnd(code4) { - effects.exit("chunkContent"); - effects.exit("content"); - return ok3(code4); - } - function contentContinue(code4) { - effects.consume(code4); - effects.exit("chunkContent"); - previous3.next = effects.enter("chunkContent", { - contentType: "content", - previous: previous3 - }); - previous3 = previous3.next; - return chunkInside; - } -} -function tokenizeContinuation(effects, ok3, nok) { - const self2 = this; - return startLookahead; - function startLookahead(code4) { - effects.exit("chunkContent"); - effects.enter("lineEnding"); - effects.consume(code4); - effects.exit("lineEnding"); - return factorySpace(effects, prefixed, "linePrefix"); - } - function prefixed(code4) { - if (code4 === null || markdownLineEnding(code4)) { - return nok(code4); - } - const tail = self2.events[self2.events.length - 1]; - if (!self2.parser.constructs.disable.null.includes("codeIndented") && tail && tail[1].type === "linePrefix" && tail[2].sliceSerialize(tail[1], true).length >= 4) { - return ok3(code4); - } - return effects.interrupt(self2.parser.constructs.flow, nok, ok3)(code4); - } -} -var content, continuationConstruct; -var init_content = __esm({ - "node_modules/.pnpm/micromark-core-commonmark@2.0.3/node_modules/micromark-core-commonmark/lib/content.js"() { - init_micromark_factory_space(); - init_micromark_util_character(); - init_micromark_util_subtokenize(); - content = { - resolve: resolveContent, - tokenize: tokenizeContent - }; - continuationConstruct = { - partial: true, - tokenize: tokenizeContinuation - }; - } -}); - -// node_modules/.pnpm/micromark-factory-destination@2.0.1/node_modules/micromark-factory-destination/index.js -function factoryDestination(effects, ok3, nok, type5, literalType, literalMarkerType, rawType, stringType, max3) { - const limit = max3 || Number.POSITIVE_INFINITY; - let balance = 0; - return start; - function start(code4) { - if (code4 === 60) { - effects.enter(type5); - effects.enter(literalType); - effects.enter(literalMarkerType); - effects.consume(code4); - effects.exit(literalMarkerType); - return enclosedBefore; - } - if (code4 === null || code4 === 32 || code4 === 41 || asciiControl(code4)) { - return nok(code4); - } - effects.enter(type5); - effects.enter(rawType); - effects.enter(stringType); - effects.enter("chunkString", { - contentType: "string" - }); - return raw2(code4); - } - function enclosedBefore(code4) { - if (code4 === 62) { - effects.enter(literalMarkerType); - effects.consume(code4); - effects.exit(literalMarkerType); - effects.exit(literalType); - effects.exit(type5); - return ok3; - } - effects.enter(stringType); - effects.enter("chunkString", { - contentType: "string" - }); - return enclosed(code4); - } - function enclosed(code4) { - if (code4 === 62) { - effects.exit("chunkString"); - effects.exit(stringType); - return enclosedBefore(code4); - } - if (code4 === null || code4 === 60 || markdownLineEnding(code4)) { - return nok(code4); - } - effects.consume(code4); - return code4 === 92 ? enclosedEscape : enclosed; - } - function enclosedEscape(code4) { - if (code4 === 60 || code4 === 62 || code4 === 92) { - effects.consume(code4); - return enclosed; - } - return enclosed(code4); - } - function raw2(code4) { - if (!balance && (code4 === null || code4 === 41 || markdownLineEndingOrSpace(code4))) { - effects.exit("chunkString"); - effects.exit(stringType); - effects.exit(rawType); - effects.exit(type5); - return ok3(code4); - } - if (balance < limit && code4 === 40) { - effects.consume(code4); - balance++; - return raw2; - } - if (code4 === 41) { - effects.consume(code4); - balance--; - return raw2; - } - if (code4 === null || code4 === 32 || code4 === 40 || asciiControl(code4)) { - return nok(code4); - } - effects.consume(code4); - return code4 === 92 ? rawEscape : raw2; - } - function rawEscape(code4) { - if (code4 === 40 || code4 === 41 || code4 === 92) { - effects.consume(code4); - return raw2; - } - return raw2(code4); - } -} -var init_micromark_factory_destination = __esm({ - "node_modules/.pnpm/micromark-factory-destination@2.0.1/node_modules/micromark-factory-destination/index.js"() { - init_micromark_util_character(); - } -}); - -// node_modules/.pnpm/micromark-factory-label@2.0.1/node_modules/micromark-factory-label/index.js -function factoryLabel(effects, ok3, nok, type5, markerType, stringType) { - const self2 = this; - let size = 0; - let seen; - return start; - function start(code4) { - effects.enter(type5); - effects.enter(markerType); - effects.consume(code4); - effects.exit(markerType); - effects.enter(stringType); - return atBreak; - } - function atBreak(code4) { - if (size > 999 || code4 === null || code4 === 91 || code4 === 93 && !seen || // To do: remove in the future once we’ve switched from - // `micromark-extension-footnote` to `micromark-extension-gfm-footnote`, - // which doesn’t need this. - // Hidden footnotes hook. - /* c8 ignore next 3 */ - code4 === 94 && !size && "_hiddenFootnoteSupport" in self2.parser.constructs) { - return nok(code4); - } - if (code4 === 93) { - effects.exit(stringType); - effects.enter(markerType); - effects.consume(code4); - effects.exit(markerType); - effects.exit(type5); - return ok3; - } - if (markdownLineEnding(code4)) { - effects.enter("lineEnding"); - effects.consume(code4); - effects.exit("lineEnding"); - return atBreak; - } - effects.enter("chunkString", { - contentType: "string" - }); - return labelInside(code4); - } - function labelInside(code4) { - if (code4 === null || code4 === 91 || code4 === 93 || markdownLineEnding(code4) || size++ > 999) { - effects.exit("chunkString"); - return atBreak(code4); - } - effects.consume(code4); - if (!seen) seen = !markdownSpace(code4); - return code4 === 92 ? labelEscape : labelInside; - } - function labelEscape(code4) { - if (code4 === 91 || code4 === 92 || code4 === 93) { - effects.consume(code4); - size++; - return labelInside; - } - return labelInside(code4); - } -} -var init_micromark_factory_label = __esm({ - "node_modules/.pnpm/micromark-factory-label@2.0.1/node_modules/micromark-factory-label/index.js"() { - init_micromark_util_character(); - } -}); - -// node_modules/.pnpm/micromark-factory-title@2.0.1/node_modules/micromark-factory-title/index.js -function factoryTitle(effects, ok3, nok, type5, markerType, stringType) { - let marker; - return start; - function start(code4) { - if (code4 === 34 || code4 === 39 || code4 === 40) { - effects.enter(type5); - effects.enter(markerType); - effects.consume(code4); - effects.exit(markerType); - marker = code4 === 40 ? 41 : code4; - return begin3; - } - return nok(code4); - } - function begin3(code4) { - if (code4 === marker) { - effects.enter(markerType); - effects.consume(code4); - effects.exit(markerType); - effects.exit(type5); - return ok3; - } - effects.enter(stringType); - return atBreak(code4); - } - function atBreak(code4) { - if (code4 === marker) { - effects.exit(stringType); - return begin3(marker); - } - if (code4 === null) { - return nok(code4); - } - if (markdownLineEnding(code4)) { - effects.enter("lineEnding"); - effects.consume(code4); - effects.exit("lineEnding"); - return factorySpace(effects, atBreak, "linePrefix"); - } - effects.enter("chunkString", { - contentType: "string" - }); - return inside(code4); - } - function inside(code4) { - if (code4 === marker || code4 === null || markdownLineEnding(code4)) { - effects.exit("chunkString"); - return atBreak(code4); - } - effects.consume(code4); - return code4 === 92 ? escape : inside; - } - function escape(code4) { - if (code4 === marker || code4 === 92) { - effects.consume(code4); - return inside; - } - return inside(code4); - } -} -var init_micromark_factory_title = __esm({ - "node_modules/.pnpm/micromark-factory-title@2.0.1/node_modules/micromark-factory-title/index.js"() { - init_micromark_factory_space(); - init_micromark_util_character(); - } -}); - -// node_modules/.pnpm/micromark-factory-whitespace@2.0.1/node_modules/micromark-factory-whitespace/index.js -function factoryWhitespace(effects, ok3) { - let seen; - return start; - function start(code4) { - if (markdownLineEnding(code4)) { - effects.enter("lineEnding"); - effects.consume(code4); - effects.exit("lineEnding"); - seen = true; - return start; - } - if (markdownSpace(code4)) { - return factorySpace(effects, start, seen ? "linePrefix" : "lineSuffix")(code4); - } - return ok3(code4); - } -} -var init_micromark_factory_whitespace = __esm({ - "node_modules/.pnpm/micromark-factory-whitespace@2.0.1/node_modules/micromark-factory-whitespace/index.js"() { - init_micromark_factory_space(); - init_micromark_util_character(); - } -}); - -// node_modules/.pnpm/micromark-core-commonmark@2.0.3/node_modules/micromark-core-commonmark/lib/definition.js -function tokenizeDefinition(effects, ok3, nok) { - const self2 = this; - let identifier; - return start; - function start(code4) { - effects.enter("definition"); - return before(code4); - } - function before(code4) { - return factoryLabel.call( - self2, - effects, - labelAfter, - // Note: we don’t need to reset the way `markdown-rs` does. - nok, - "definitionLabel", - "definitionLabelMarker", - "definitionLabelString" - )(code4); - } - function labelAfter(code4) { - identifier = normalizeIdentifier(self2.sliceSerialize(self2.events[self2.events.length - 1][1]).slice(1, -1)); - if (code4 === 58) { - effects.enter("definitionMarker"); - effects.consume(code4); - effects.exit("definitionMarker"); - return markerAfter; - } - return nok(code4); - } - function markerAfter(code4) { - return markdownLineEndingOrSpace(code4) ? factoryWhitespace(effects, destinationBefore)(code4) : destinationBefore(code4); - } - function destinationBefore(code4) { - return factoryDestination( - effects, - destinationAfter, - // Note: we don’t need to reset the way `markdown-rs` does. - nok, - "definitionDestination", - "definitionDestinationLiteral", - "definitionDestinationLiteralMarker", - "definitionDestinationRaw", - "definitionDestinationString" - )(code4); - } - function destinationAfter(code4) { - return effects.attempt(titleBefore, after, after)(code4); - } - function after(code4) { - return markdownSpace(code4) ? factorySpace(effects, afterWhitespace, "whitespace")(code4) : afterWhitespace(code4); - } - function afterWhitespace(code4) { - if (code4 === null || markdownLineEnding(code4)) { - effects.exit("definition"); - self2.parser.defined.push(identifier); - return ok3(code4); - } - return nok(code4); - } -} -function tokenizeTitleBefore(effects, ok3, nok) { - return titleBefore2; - function titleBefore2(code4) { - return markdownLineEndingOrSpace(code4) ? factoryWhitespace(effects, beforeMarker)(code4) : nok(code4); - } - function beforeMarker(code4) { - return factoryTitle(effects, titleAfter, nok, "definitionTitle", "definitionTitleMarker", "definitionTitleString")(code4); - } - function titleAfter(code4) { - return markdownSpace(code4) ? factorySpace(effects, titleAfterOptionalWhitespace, "whitespace")(code4) : titleAfterOptionalWhitespace(code4); - } - function titleAfterOptionalWhitespace(code4) { - return code4 === null || markdownLineEnding(code4) ? ok3(code4) : nok(code4); - } -} -var definition2, titleBefore; -var init_definition2 = __esm({ - "node_modules/.pnpm/micromark-core-commonmark@2.0.3/node_modules/micromark-core-commonmark/lib/definition.js"() { - init_micromark_factory_destination(); - init_micromark_factory_label(); - init_micromark_factory_space(); - init_micromark_factory_title(); - init_micromark_factory_whitespace(); - init_micromark_util_character(); - init_micromark_util_normalize_identifier(); - definition2 = { - name: "definition", - tokenize: tokenizeDefinition - }; - titleBefore = { - partial: true, - tokenize: tokenizeTitleBefore - }; - } -}); - -// node_modules/.pnpm/micromark-core-commonmark@2.0.3/node_modules/micromark-core-commonmark/lib/hard-break-escape.js -function tokenizeHardBreakEscape(effects, ok3, nok) { - return start; - function start(code4) { - effects.enter("hardBreakEscape"); - effects.consume(code4); - return after; - } - function after(code4) { - if (markdownLineEnding(code4)) { - effects.exit("hardBreakEscape"); - return ok3(code4); - } - return nok(code4); - } -} -var hardBreakEscape; -var init_hard_break_escape = __esm({ - "node_modules/.pnpm/micromark-core-commonmark@2.0.3/node_modules/micromark-core-commonmark/lib/hard-break-escape.js"() { - init_micromark_util_character(); - hardBreakEscape = { - name: "hardBreakEscape", - tokenize: tokenizeHardBreakEscape - }; - } -}); - -// node_modules/.pnpm/micromark-core-commonmark@2.0.3/node_modules/micromark-core-commonmark/lib/heading-atx.js -function resolveHeadingAtx(events, context2) { - let contentEnd = events.length - 2; - let contentStart = 3; - let content3; - let text9; - if (events[contentStart][1].type === "whitespace") { - contentStart += 2; - } - if (contentEnd - 2 > contentStart && events[contentEnd][1].type === "whitespace") { - contentEnd -= 2; - } - if (events[contentEnd][1].type === "atxHeadingSequence" && (contentStart === contentEnd - 1 || contentEnd - 4 > contentStart && events[contentEnd - 2][1].type === "whitespace")) { - contentEnd -= contentStart + 1 === contentEnd ? 2 : 4; - } - if (contentEnd > contentStart) { - content3 = { - type: "atxHeadingText", - start: events[contentStart][1].start, - end: events[contentEnd][1].end - }; - text9 = { - type: "chunkText", - start: events[contentStart][1].start, - end: events[contentEnd][1].end, - contentType: "text" - }; - splice(events, contentStart, contentEnd - contentStart + 1, [["enter", content3, context2], ["enter", text9, context2], ["exit", text9, context2], ["exit", content3, context2]]); - } - return events; -} -function tokenizeHeadingAtx(effects, ok3, nok) { - let size = 0; - return start; - function start(code4) { - effects.enter("atxHeading"); - return before(code4); - } - function before(code4) { - effects.enter("atxHeadingSequence"); - return sequenceOpen(code4); - } - function sequenceOpen(code4) { - if (code4 === 35 && size++ < 6) { - effects.consume(code4); - return sequenceOpen; - } - if (code4 === null || markdownLineEndingOrSpace(code4)) { - effects.exit("atxHeadingSequence"); - return atBreak(code4); - } - return nok(code4); - } - function atBreak(code4) { - if (code4 === 35) { - effects.enter("atxHeadingSequence"); - return sequenceFurther(code4); - } - if (code4 === null || markdownLineEnding(code4)) { - effects.exit("atxHeading"); - return ok3(code4); - } - if (markdownSpace(code4)) { - return factorySpace(effects, atBreak, "whitespace")(code4); - } - effects.enter("atxHeadingText"); - return data8(code4); - } - function sequenceFurther(code4) { - if (code4 === 35) { - effects.consume(code4); - return sequenceFurther; - } - effects.exit("atxHeadingSequence"); - return atBreak(code4); - } - function data8(code4) { - if (code4 === null || code4 === 35 || markdownLineEndingOrSpace(code4)) { - effects.exit("atxHeadingText"); - return atBreak(code4); - } - effects.consume(code4); - return data8; - } -} -var headingAtx; -var init_heading_atx = __esm({ - "node_modules/.pnpm/micromark-core-commonmark@2.0.3/node_modules/micromark-core-commonmark/lib/heading-atx.js"() { - init_micromark_factory_space(); - init_micromark_util_character(); - init_micromark_util_chunked(); - headingAtx = { - name: "headingAtx", - resolve: resolveHeadingAtx, - tokenize: tokenizeHeadingAtx - }; - } -}); - -// node_modules/.pnpm/micromark-util-html-tag-name@2.0.1/node_modules/micromark-util-html-tag-name/index.js -var htmlBlockNames, htmlRawNames; -var init_micromark_util_html_tag_name = __esm({ - "node_modules/.pnpm/micromark-util-html-tag-name@2.0.1/node_modules/micromark-util-html-tag-name/index.js"() { - htmlBlockNames = [ - "address", - "article", - "aside", - "base", - "basefont", - "blockquote", - "body", - "caption", - "center", - "col", - "colgroup", - "dd", - "details", - "dialog", - "dir", - "div", - "dl", - "dt", - "fieldset", - "figcaption", - "figure", - "footer", - "form", - "frame", - "frameset", - "h1", - "h2", - "h3", - "h4", - "h5", - "h6", - "head", - "header", - "hr", - "html", - "iframe", - "legend", - "li", - "link", - "main", - "menu", - "menuitem", - "nav", - "noframes", - "ol", - "optgroup", - "option", - "p", - "param", - "search", - "section", - "summary", - "table", - "tbody", - "td", - "tfoot", - "th", - "thead", - "title", - "tr", - "track", - "ul" - ]; - htmlRawNames = ["pre", "script", "style", "textarea"]; - } -}); - -// node_modules/.pnpm/micromark-core-commonmark@2.0.3/node_modules/micromark-core-commonmark/lib/html-flow.js -function resolveToHtmlFlow(events) { - let index2 = events.length; - while (index2--) { - if (events[index2][0] === "enter" && events[index2][1].type === "htmlFlow") { - break; - } - } - if (index2 > 1 && events[index2 - 2][1].type === "linePrefix") { - events[index2][1].start = events[index2 - 2][1].start; - events[index2 + 1][1].start = events[index2 - 2][1].start; - events.splice(index2 - 2, 2); - } - return events; -} -function tokenizeHtmlFlow(effects, ok3, nok) { - const self2 = this; - let marker; - let closingTag; - let buffer2; - let index2; - let markerB; - return start; - function start(code4) { - return before(code4); - } - function before(code4) { - effects.enter("htmlFlow"); - effects.enter("htmlFlowData"); - effects.consume(code4); - return open; - } - function open(code4) { - if (code4 === 33) { - effects.consume(code4); - return declarationOpen; - } - if (code4 === 47) { - effects.consume(code4); - closingTag = true; - return tagCloseStart; - } - if (code4 === 63) { - effects.consume(code4); - marker = 3; - return self2.interrupt ? ok3 : continuationDeclarationInside; - } - if (asciiAlpha(code4)) { - effects.consume(code4); - buffer2 = String.fromCharCode(code4); - return tagName; - } - return nok(code4); - } - function declarationOpen(code4) { - if (code4 === 45) { - effects.consume(code4); - marker = 2; - return commentOpenInside; - } - if (code4 === 91) { - effects.consume(code4); - marker = 5; - index2 = 0; - return cdataOpenInside; - } - if (asciiAlpha(code4)) { - effects.consume(code4); - marker = 4; - return self2.interrupt ? ok3 : continuationDeclarationInside; - } - return nok(code4); - } - function commentOpenInside(code4) { - if (code4 === 45) { - effects.consume(code4); - return self2.interrupt ? ok3 : continuationDeclarationInside; - } - return nok(code4); - } - function cdataOpenInside(code4) { - const value2 = "CDATA["; - if (code4 === value2.charCodeAt(index2++)) { - effects.consume(code4); - if (index2 === value2.length) { - return self2.interrupt ? ok3 : continuation; - } - return cdataOpenInside; - } - return nok(code4); - } - function tagCloseStart(code4) { - if (asciiAlpha(code4)) { - effects.consume(code4); - buffer2 = String.fromCharCode(code4); - return tagName; - } - return nok(code4); - } - function tagName(code4) { - if (code4 === null || code4 === 47 || code4 === 62 || markdownLineEndingOrSpace(code4)) { - const slash = code4 === 47; - const name = buffer2.toLowerCase(); - if (!slash && !closingTag && htmlRawNames.includes(name)) { - marker = 1; - return self2.interrupt ? ok3(code4) : continuation(code4); - } - if (htmlBlockNames.includes(buffer2.toLowerCase())) { - marker = 6; - if (slash) { - effects.consume(code4); - return basicSelfClosing; - } - return self2.interrupt ? ok3(code4) : continuation(code4); - } - marker = 7; - return self2.interrupt && !self2.parser.lazy[self2.now().line] ? nok(code4) : closingTag ? completeClosingTagAfter(code4) : completeAttributeNameBefore(code4); - } - if (code4 === 45 || asciiAlphanumeric(code4)) { - effects.consume(code4); - buffer2 += String.fromCharCode(code4); - return tagName; - } - return nok(code4); - } - function basicSelfClosing(code4) { - if (code4 === 62) { - effects.consume(code4); - return self2.interrupt ? ok3 : continuation; - } - return nok(code4); - } - function completeClosingTagAfter(code4) { - if (markdownSpace(code4)) { - effects.consume(code4); - return completeClosingTagAfter; - } - return completeEnd(code4); - } - function completeAttributeNameBefore(code4) { - if (code4 === 47) { - effects.consume(code4); - return completeEnd; - } - if (code4 === 58 || code4 === 95 || asciiAlpha(code4)) { - effects.consume(code4); - return completeAttributeName; - } - if (markdownSpace(code4)) { - effects.consume(code4); - return completeAttributeNameBefore; - } - return completeEnd(code4); - } - function completeAttributeName(code4) { - if (code4 === 45 || code4 === 46 || code4 === 58 || code4 === 95 || asciiAlphanumeric(code4)) { - effects.consume(code4); - return completeAttributeName; - } - return completeAttributeNameAfter(code4); - } - function completeAttributeNameAfter(code4) { - if (code4 === 61) { - effects.consume(code4); - return completeAttributeValueBefore; - } - if (markdownSpace(code4)) { - effects.consume(code4); - return completeAttributeNameAfter; - } - return completeAttributeNameBefore(code4); - } - function completeAttributeValueBefore(code4) { - if (code4 === null || code4 === 60 || code4 === 61 || code4 === 62 || code4 === 96) { - return nok(code4); - } - if (code4 === 34 || code4 === 39) { - effects.consume(code4); - markerB = code4; - return completeAttributeValueQuoted; - } - if (markdownSpace(code4)) { - effects.consume(code4); - return completeAttributeValueBefore; - } - return completeAttributeValueUnquoted(code4); - } - function completeAttributeValueQuoted(code4) { - if (code4 === markerB) { - effects.consume(code4); - markerB = null; - return completeAttributeValueQuotedAfter; - } - if (code4 === null || markdownLineEnding(code4)) { - return nok(code4); - } - effects.consume(code4); - return completeAttributeValueQuoted; - } - function completeAttributeValueUnquoted(code4) { - if (code4 === null || code4 === 34 || code4 === 39 || code4 === 47 || code4 === 60 || code4 === 61 || code4 === 62 || code4 === 96 || markdownLineEndingOrSpace(code4)) { - return completeAttributeNameAfter(code4); - } - effects.consume(code4); - return completeAttributeValueUnquoted; - } - function completeAttributeValueQuotedAfter(code4) { - if (code4 === 47 || code4 === 62 || markdownSpace(code4)) { - return completeAttributeNameBefore(code4); - } - return nok(code4); - } - function completeEnd(code4) { - if (code4 === 62) { - effects.consume(code4); - return completeAfter; - } - return nok(code4); - } - function completeAfter(code4) { - if (code4 === null || markdownLineEnding(code4)) { - return continuation(code4); - } - if (markdownSpace(code4)) { - effects.consume(code4); - return completeAfter; - } - return nok(code4); - } - function continuation(code4) { - if (code4 === 45 && marker === 2) { - effects.consume(code4); - return continuationCommentInside; - } - if (code4 === 60 && marker === 1) { - effects.consume(code4); - return continuationRawTagOpen; - } - if (code4 === 62 && marker === 4) { - effects.consume(code4); - return continuationClose; - } - if (code4 === 63 && marker === 3) { - effects.consume(code4); - return continuationDeclarationInside; - } - if (code4 === 93 && marker === 5) { - effects.consume(code4); - return continuationCdataInside; - } - if (markdownLineEnding(code4) && (marker === 6 || marker === 7)) { - effects.exit("htmlFlowData"); - return effects.check(blankLineBefore, continuationAfter, continuationStart)(code4); - } - if (code4 === null || markdownLineEnding(code4)) { - effects.exit("htmlFlowData"); - return continuationStart(code4); - } - effects.consume(code4); - return continuation; - } - function continuationStart(code4) { - return effects.check(nonLazyContinuationStart, continuationStartNonLazy, continuationAfter)(code4); - } - function continuationStartNonLazy(code4) { - effects.enter("lineEnding"); - effects.consume(code4); - effects.exit("lineEnding"); - return continuationBefore; - } - function continuationBefore(code4) { - if (code4 === null || markdownLineEnding(code4)) { - return continuationStart(code4); - } - effects.enter("htmlFlowData"); - return continuation(code4); - } - function continuationCommentInside(code4) { - if (code4 === 45) { - effects.consume(code4); - return continuationDeclarationInside; - } - return continuation(code4); - } - function continuationRawTagOpen(code4) { - if (code4 === 47) { - effects.consume(code4); - buffer2 = ""; - return continuationRawEndTag; - } - return continuation(code4); - } - function continuationRawEndTag(code4) { - if (code4 === 62) { - const name = buffer2.toLowerCase(); - if (htmlRawNames.includes(name)) { - effects.consume(code4); - return continuationClose; - } - return continuation(code4); - } - if (asciiAlpha(code4) && buffer2.length < 8) { - effects.consume(code4); - buffer2 += String.fromCharCode(code4); - return continuationRawEndTag; - } - return continuation(code4); - } - function continuationCdataInside(code4) { - if (code4 === 93) { - effects.consume(code4); - return continuationDeclarationInside; - } - return continuation(code4); - } - function continuationDeclarationInside(code4) { - if (code4 === 62) { - effects.consume(code4); - return continuationClose; - } - if (code4 === 45 && marker === 2) { - effects.consume(code4); - return continuationDeclarationInside; - } - return continuation(code4); - } - function continuationClose(code4) { - if (code4 === null || markdownLineEnding(code4)) { - effects.exit("htmlFlowData"); - return continuationAfter(code4); - } - effects.consume(code4); - return continuationClose; - } - function continuationAfter(code4) { - effects.exit("htmlFlow"); - return ok3(code4); - } -} -function tokenizeNonLazyContinuationStart(effects, ok3, nok) { - const self2 = this; - return start; - function start(code4) { - if (markdownLineEnding(code4)) { - effects.enter("lineEnding"); - effects.consume(code4); - effects.exit("lineEnding"); - return after; - } - return nok(code4); - } - function after(code4) { - return self2.parser.lazy[self2.now().line] ? nok(code4) : ok3(code4); - } -} -function tokenizeBlankLineBefore(effects, ok3, nok) { - return start; - function start(code4) { - effects.enter("lineEnding"); - effects.consume(code4); - effects.exit("lineEnding"); - return effects.attempt(blankLine, ok3, nok); - } -} -var htmlFlow, blankLineBefore, nonLazyContinuationStart; -var init_html_flow = __esm({ - "node_modules/.pnpm/micromark-core-commonmark@2.0.3/node_modules/micromark-core-commonmark/lib/html-flow.js"() { - init_micromark_util_character(); - init_micromark_util_html_tag_name(); - init_blank_line(); - htmlFlow = { - concrete: true, - name: "htmlFlow", - resolveTo: resolveToHtmlFlow, - tokenize: tokenizeHtmlFlow - }; - blankLineBefore = { - partial: true, - tokenize: tokenizeBlankLineBefore - }; - nonLazyContinuationStart = { - partial: true, - tokenize: tokenizeNonLazyContinuationStart - }; - } -}); - -// node_modules/.pnpm/micromark-core-commonmark@2.0.3/node_modules/micromark-core-commonmark/lib/html-text.js -function tokenizeHtmlText(effects, ok3, nok) { - const self2 = this; - let marker; - let index2; - let returnState; - return start; - function start(code4) { - effects.enter("htmlText"); - effects.enter("htmlTextData"); - effects.consume(code4); - return open; - } - function open(code4) { - if (code4 === 33) { - effects.consume(code4); - return declarationOpen; - } - if (code4 === 47) { - effects.consume(code4); - return tagCloseStart; - } - if (code4 === 63) { - effects.consume(code4); - return instruction; - } - if (asciiAlpha(code4)) { - effects.consume(code4); - return tagOpen; - } - return nok(code4); - } - function declarationOpen(code4) { - if (code4 === 45) { - effects.consume(code4); - return commentOpenInside; - } - if (code4 === 91) { - effects.consume(code4); - index2 = 0; - return cdataOpenInside; - } - if (asciiAlpha(code4)) { - effects.consume(code4); - return declaration; - } - return nok(code4); - } - function commentOpenInside(code4) { - if (code4 === 45) { - effects.consume(code4); - return commentEnd; - } - return nok(code4); - } - function comment3(code4) { - if (code4 === null) { - return nok(code4); - } - if (code4 === 45) { - effects.consume(code4); - return commentClose; - } - if (markdownLineEnding(code4)) { - returnState = comment3; - return lineEndingBefore(code4); - } - effects.consume(code4); - return comment3; - } - function commentClose(code4) { - if (code4 === 45) { - effects.consume(code4); - return commentEnd; - } - return comment3(code4); - } - function commentEnd(code4) { - return code4 === 62 ? end3(code4) : code4 === 45 ? commentClose(code4) : comment3(code4); - } - function cdataOpenInside(code4) { - const value2 = "CDATA["; - if (code4 === value2.charCodeAt(index2++)) { - effects.consume(code4); - return index2 === value2.length ? cdata : cdataOpenInside; - } - return nok(code4); - } - function cdata(code4) { - if (code4 === null) { - return nok(code4); - } - if (code4 === 93) { - effects.consume(code4); - return cdataClose; - } - if (markdownLineEnding(code4)) { - returnState = cdata; - return lineEndingBefore(code4); - } - effects.consume(code4); - return cdata; - } - function cdataClose(code4) { - if (code4 === 93) { - effects.consume(code4); - return cdataEnd; - } - return cdata(code4); - } - function cdataEnd(code4) { - if (code4 === 62) { - return end3(code4); - } - if (code4 === 93) { - effects.consume(code4); - return cdataEnd; - } - return cdata(code4); - } - function declaration(code4) { - if (code4 === null || code4 === 62) { - return end3(code4); - } - if (markdownLineEnding(code4)) { - returnState = declaration; - return lineEndingBefore(code4); - } - effects.consume(code4); - return declaration; - } - function instruction(code4) { - if (code4 === null) { - return nok(code4); - } - if (code4 === 63) { - effects.consume(code4); - return instructionClose; - } - if (markdownLineEnding(code4)) { - returnState = instruction; - return lineEndingBefore(code4); - } - effects.consume(code4); - return instruction; - } - function instructionClose(code4) { - return code4 === 62 ? end3(code4) : instruction(code4); - } - function tagCloseStart(code4) { - if (asciiAlpha(code4)) { - effects.consume(code4); - return tagClose; - } - return nok(code4); - } - function tagClose(code4) { - if (code4 === 45 || asciiAlphanumeric(code4)) { - effects.consume(code4); - return tagClose; - } - return tagCloseBetween(code4); - } - function tagCloseBetween(code4) { - if (markdownLineEnding(code4)) { - returnState = tagCloseBetween; - return lineEndingBefore(code4); - } - if (markdownSpace(code4)) { - effects.consume(code4); - return tagCloseBetween; - } - return end3(code4); - } - function tagOpen(code4) { - if (code4 === 45 || asciiAlphanumeric(code4)) { - effects.consume(code4); - return tagOpen; - } - if (code4 === 47 || code4 === 62 || markdownLineEndingOrSpace(code4)) { - return tagOpenBetween(code4); - } - return nok(code4); - } - function tagOpenBetween(code4) { - if (code4 === 47) { - effects.consume(code4); - return end3; - } - if (code4 === 58 || code4 === 95 || asciiAlpha(code4)) { - effects.consume(code4); - return tagOpenAttributeName; - } - if (markdownLineEnding(code4)) { - returnState = tagOpenBetween; - return lineEndingBefore(code4); - } - if (markdownSpace(code4)) { - effects.consume(code4); - return tagOpenBetween; - } - return end3(code4); - } - function tagOpenAttributeName(code4) { - if (code4 === 45 || code4 === 46 || code4 === 58 || code4 === 95 || asciiAlphanumeric(code4)) { - effects.consume(code4); - return tagOpenAttributeName; - } - return tagOpenAttributeNameAfter(code4); - } - function tagOpenAttributeNameAfter(code4) { - if (code4 === 61) { - effects.consume(code4); - return tagOpenAttributeValueBefore; - } - if (markdownLineEnding(code4)) { - returnState = tagOpenAttributeNameAfter; - return lineEndingBefore(code4); - } - if (markdownSpace(code4)) { - effects.consume(code4); - return tagOpenAttributeNameAfter; - } - return tagOpenBetween(code4); - } - function tagOpenAttributeValueBefore(code4) { - if (code4 === null || code4 === 60 || code4 === 61 || code4 === 62 || code4 === 96) { - return nok(code4); - } - if (code4 === 34 || code4 === 39) { - effects.consume(code4); - marker = code4; - return tagOpenAttributeValueQuoted; - } - if (markdownLineEnding(code4)) { - returnState = tagOpenAttributeValueBefore; - return lineEndingBefore(code4); - } - if (markdownSpace(code4)) { - effects.consume(code4); - return tagOpenAttributeValueBefore; - } - effects.consume(code4); - return tagOpenAttributeValueUnquoted; - } - function tagOpenAttributeValueQuoted(code4) { - if (code4 === marker) { - effects.consume(code4); - marker = void 0; - return tagOpenAttributeValueQuotedAfter; - } - if (code4 === null) { - return nok(code4); - } - if (markdownLineEnding(code4)) { - returnState = tagOpenAttributeValueQuoted; - return lineEndingBefore(code4); - } - effects.consume(code4); - return tagOpenAttributeValueQuoted; - } - function tagOpenAttributeValueUnquoted(code4) { - if (code4 === null || code4 === 34 || code4 === 39 || code4 === 60 || code4 === 61 || code4 === 96) { - return nok(code4); - } - if (code4 === 47 || code4 === 62 || markdownLineEndingOrSpace(code4)) { - return tagOpenBetween(code4); - } - effects.consume(code4); - return tagOpenAttributeValueUnquoted; - } - function tagOpenAttributeValueQuotedAfter(code4) { - if (code4 === 47 || code4 === 62 || markdownLineEndingOrSpace(code4)) { - return tagOpenBetween(code4); - } - return nok(code4); - } - function end3(code4) { - if (code4 === 62) { - effects.consume(code4); - effects.exit("htmlTextData"); - effects.exit("htmlText"); - return ok3; - } - return nok(code4); - } - function lineEndingBefore(code4) { - effects.exit("htmlTextData"); - effects.enter("lineEnding"); - effects.consume(code4); - effects.exit("lineEnding"); - return lineEndingAfter; - } - function lineEndingAfter(code4) { - return markdownSpace(code4) ? factorySpace(effects, lineEndingAfterPrefix, "linePrefix", self2.parser.constructs.disable.null.includes("codeIndented") ? void 0 : 4)(code4) : lineEndingAfterPrefix(code4); - } - function lineEndingAfterPrefix(code4) { - effects.enter("htmlTextData"); - return returnState(code4); - } -} -var htmlText; -var init_html_text = __esm({ - "node_modules/.pnpm/micromark-core-commonmark@2.0.3/node_modules/micromark-core-commonmark/lib/html-text.js"() { - init_micromark_factory_space(); - init_micromark_util_character(); - htmlText = { - name: "htmlText", - tokenize: tokenizeHtmlText - }; - } -}); - -// node_modules/.pnpm/micromark-core-commonmark@2.0.3/node_modules/micromark-core-commonmark/lib/label-end.js -function resolveAllLabelEnd(events) { - let index2 = -1; - const newEvents = []; - while (++index2 < events.length) { - const token = events[index2][1]; - newEvents.push(events[index2]); - if (token.type === "labelImage" || token.type === "labelLink" || token.type === "labelEnd") { - const offset = token.type === "labelImage" ? 4 : 2; - token.type = "data"; - index2 += offset; - } - } - if (events.length !== newEvents.length) { - splice(events, 0, events.length, newEvents); - } - return events; -} -function resolveToLabelEnd(events, context2) { - let index2 = events.length; - let offset = 0; - let token; - let open; - let close7; - let media; - while (index2--) { - token = events[index2][1]; - if (open) { - if (token.type === "link" || token.type === "labelLink" && token._inactive) { - break; - } - if (events[index2][0] === "enter" && token.type === "labelLink") { - token._inactive = true; - } - } else if (close7) { - if (events[index2][0] === "enter" && (token.type === "labelImage" || token.type === "labelLink") && !token._balanced) { - open = index2; - if (token.type !== "labelLink") { - offset = 2; - break; - } - } - } else if (token.type === "labelEnd") { - close7 = index2; - } - } - const group = { - type: events[open][1].type === "labelLink" ? "link" : "image", - start: { - ...events[open][1].start - }, - end: { - ...events[events.length - 1][1].end - } - }; - const label = { - type: "label", - start: { - ...events[open][1].start - }, - end: { - ...events[close7][1].end - } - }; - const text9 = { - type: "labelText", - start: { - ...events[open + offset + 2][1].end - }, - end: { - ...events[close7 - 2][1].start - } - }; - media = [["enter", group, context2], ["enter", label, context2]]; - media = push(media, events.slice(open + 1, open + offset + 3)); - media = push(media, [["enter", text9, context2]]); - media = push(media, resolveAll(context2.parser.constructs.insideSpan.null, events.slice(open + offset + 4, close7 - 3), context2)); - media = push(media, [["exit", text9, context2], events[close7 - 2], events[close7 - 1], ["exit", label, context2]]); - media = push(media, events.slice(close7 + 1)); - media = push(media, [["exit", group, context2]]); - splice(events, open, events.length, media); - return events; -} -function tokenizeLabelEnd(effects, ok3, nok) { - const self2 = this; - let index2 = self2.events.length; - let labelStart; - let defined; - while (index2--) { - if ((self2.events[index2][1].type === "labelImage" || self2.events[index2][1].type === "labelLink") && !self2.events[index2][1]._balanced) { - labelStart = self2.events[index2][1]; - break; - } - } - return start; - function start(code4) { - if (!labelStart) { - return nok(code4); - } - if (labelStart._inactive) { - return labelEndNok(code4); - } - defined = self2.parser.defined.includes(normalizeIdentifier(self2.sliceSerialize({ - start: labelStart.end, - end: self2.now() - }))); - effects.enter("labelEnd"); - effects.enter("labelMarker"); - effects.consume(code4); - effects.exit("labelMarker"); - effects.exit("labelEnd"); - return after; - } - function after(code4) { - if (code4 === 40) { - return effects.attempt(resourceConstruct, labelEndOk, defined ? labelEndOk : labelEndNok)(code4); - } - if (code4 === 91) { - return effects.attempt(referenceFullConstruct, labelEndOk, defined ? referenceNotFull : labelEndNok)(code4); - } - return defined ? labelEndOk(code4) : labelEndNok(code4); - } - function referenceNotFull(code4) { - return effects.attempt(referenceCollapsedConstruct, labelEndOk, labelEndNok)(code4); - } - function labelEndOk(code4) { - return ok3(code4); - } - function labelEndNok(code4) { - labelStart._balanced = true; - return nok(code4); - } -} -function tokenizeResource(effects, ok3, nok) { - return resourceStart; - function resourceStart(code4) { - effects.enter("resource"); - effects.enter("resourceMarker"); - effects.consume(code4); - effects.exit("resourceMarker"); - return resourceBefore; - } - function resourceBefore(code4) { - return markdownLineEndingOrSpace(code4) ? factoryWhitespace(effects, resourceOpen)(code4) : resourceOpen(code4); - } - function resourceOpen(code4) { - if (code4 === 41) { - return resourceEnd(code4); - } - return factoryDestination(effects, resourceDestinationAfter, resourceDestinationMissing, "resourceDestination", "resourceDestinationLiteral", "resourceDestinationLiteralMarker", "resourceDestinationRaw", "resourceDestinationString", 32)(code4); - } - function resourceDestinationAfter(code4) { - return markdownLineEndingOrSpace(code4) ? factoryWhitespace(effects, resourceBetween)(code4) : resourceEnd(code4); - } - function resourceDestinationMissing(code4) { - return nok(code4); - } - function resourceBetween(code4) { - if (code4 === 34 || code4 === 39 || code4 === 40) { - return factoryTitle(effects, resourceTitleAfter, nok, "resourceTitle", "resourceTitleMarker", "resourceTitleString")(code4); - } - return resourceEnd(code4); - } - function resourceTitleAfter(code4) { - return markdownLineEndingOrSpace(code4) ? factoryWhitespace(effects, resourceEnd)(code4) : resourceEnd(code4); - } - function resourceEnd(code4) { - if (code4 === 41) { - effects.enter("resourceMarker"); - effects.consume(code4); - effects.exit("resourceMarker"); - effects.exit("resource"); - return ok3; - } - return nok(code4); - } -} -function tokenizeReferenceFull(effects, ok3, nok) { - const self2 = this; - return referenceFull; - function referenceFull(code4) { - return factoryLabel.call(self2, effects, referenceFullAfter, referenceFullMissing, "reference", "referenceMarker", "referenceString")(code4); - } - function referenceFullAfter(code4) { - return self2.parser.defined.includes(normalizeIdentifier(self2.sliceSerialize(self2.events[self2.events.length - 1][1]).slice(1, -1))) ? ok3(code4) : nok(code4); - } - function referenceFullMissing(code4) { - return nok(code4); - } -} -function tokenizeReferenceCollapsed(effects, ok3, nok) { - return referenceCollapsedStart; - function referenceCollapsedStart(code4) { - effects.enter("reference"); - effects.enter("referenceMarker"); - effects.consume(code4); - effects.exit("referenceMarker"); - return referenceCollapsedOpen; - } - function referenceCollapsedOpen(code4) { - if (code4 === 93) { - effects.enter("referenceMarker"); - effects.consume(code4); - effects.exit("referenceMarker"); - effects.exit("reference"); - return ok3; - } - return nok(code4); - } -} -var labelEnd, resourceConstruct, referenceFullConstruct, referenceCollapsedConstruct; -var init_label_end = __esm({ - "node_modules/.pnpm/micromark-core-commonmark@2.0.3/node_modules/micromark-core-commonmark/lib/label-end.js"() { - init_micromark_factory_destination(); - init_micromark_factory_label(); - init_micromark_factory_title(); - init_micromark_factory_whitespace(); - init_micromark_util_character(); - init_micromark_util_chunked(); - init_micromark_util_normalize_identifier(); - init_micromark_util_resolve_all(); - labelEnd = { - name: "labelEnd", - resolveAll: resolveAllLabelEnd, - resolveTo: resolveToLabelEnd, - tokenize: tokenizeLabelEnd - }; - resourceConstruct = { - tokenize: tokenizeResource - }; - referenceFullConstruct = { - tokenize: tokenizeReferenceFull - }; - referenceCollapsedConstruct = { - tokenize: tokenizeReferenceCollapsed - }; - } -}); - -// node_modules/.pnpm/micromark-core-commonmark@2.0.3/node_modules/micromark-core-commonmark/lib/label-start-image.js -function tokenizeLabelStartImage(effects, ok3, nok) { - const self2 = this; - return start; - function start(code4) { - effects.enter("labelImage"); - effects.enter("labelImageMarker"); - effects.consume(code4); - effects.exit("labelImageMarker"); - return open; - } - function open(code4) { - if (code4 === 91) { - effects.enter("labelMarker"); - effects.consume(code4); - effects.exit("labelMarker"); - effects.exit("labelImage"); - return after; - } - return nok(code4); - } - function after(code4) { - return code4 === 94 && "_hiddenFootnoteSupport" in self2.parser.constructs ? nok(code4) : ok3(code4); - } -} -var labelStartImage; -var init_label_start_image = __esm({ - "node_modules/.pnpm/micromark-core-commonmark@2.0.3/node_modules/micromark-core-commonmark/lib/label-start-image.js"() { - init_label_end(); - labelStartImage = { - name: "labelStartImage", - resolveAll: labelEnd.resolveAll, - tokenize: tokenizeLabelStartImage - }; - } -}); - -// node_modules/.pnpm/micromark-core-commonmark@2.0.3/node_modules/micromark-core-commonmark/lib/label-start-link.js -function tokenizeLabelStartLink(effects, ok3, nok) { - const self2 = this; - return start; - function start(code4) { - effects.enter("labelLink"); - effects.enter("labelMarker"); - effects.consume(code4); - effects.exit("labelMarker"); - effects.exit("labelLink"); - return after; - } - function after(code4) { - return code4 === 94 && "_hiddenFootnoteSupport" in self2.parser.constructs ? nok(code4) : ok3(code4); - } -} -var labelStartLink; -var init_label_start_link = __esm({ - "node_modules/.pnpm/micromark-core-commonmark@2.0.3/node_modules/micromark-core-commonmark/lib/label-start-link.js"() { - init_label_end(); - labelStartLink = { - name: "labelStartLink", - resolveAll: labelEnd.resolveAll, - tokenize: tokenizeLabelStartLink - }; - } -}); - -// node_modules/.pnpm/micromark-core-commonmark@2.0.3/node_modules/micromark-core-commonmark/lib/line-ending.js -function tokenizeLineEnding(effects, ok3) { - return start; - function start(code4) { - effects.enter("lineEnding"); - effects.consume(code4); - effects.exit("lineEnding"); - return factorySpace(effects, ok3, "linePrefix"); - } -} -var lineEnding; -var init_line_ending = __esm({ - "node_modules/.pnpm/micromark-core-commonmark@2.0.3/node_modules/micromark-core-commonmark/lib/line-ending.js"() { - init_micromark_factory_space(); - init_micromark_util_character(); - lineEnding = { - name: "lineEnding", - tokenize: tokenizeLineEnding - }; - } -}); - -// node_modules/.pnpm/micromark-core-commonmark@2.0.3/node_modules/micromark-core-commonmark/lib/thematic-break.js -function tokenizeThematicBreak(effects, ok3, nok) { - let size = 0; - let marker; - return start; - function start(code4) { - effects.enter("thematicBreak"); - return before(code4); - } - function before(code4) { - marker = code4; - return atBreak(code4); - } - function atBreak(code4) { - if (code4 === marker) { - effects.enter("thematicBreakSequence"); - return sequence(code4); - } - if (size >= 3 && (code4 === null || markdownLineEnding(code4))) { - effects.exit("thematicBreak"); - return ok3(code4); - } - return nok(code4); - } - function sequence(code4) { - if (code4 === marker) { - effects.consume(code4); - size++; - return sequence; - } - effects.exit("thematicBreakSequence"); - return markdownSpace(code4) ? factorySpace(effects, atBreak, "whitespace")(code4) : atBreak(code4); - } -} -var thematicBreak2; -var init_thematic_break2 = __esm({ - "node_modules/.pnpm/micromark-core-commonmark@2.0.3/node_modules/micromark-core-commonmark/lib/thematic-break.js"() { - init_micromark_factory_space(); - init_micromark_util_character(); - thematicBreak2 = { - name: "thematicBreak", - tokenize: tokenizeThematicBreak - }; - } -}); - -// node_modules/.pnpm/micromark-core-commonmark@2.0.3/node_modules/micromark-core-commonmark/lib/list.js -function tokenizeListStart(effects, ok3, nok) { - const self2 = this; - const tail = self2.events[self2.events.length - 1]; - let initialSize = tail && tail[1].type === "linePrefix" ? tail[2].sliceSerialize(tail[1], true).length : 0; - let size = 0; - return start; - function start(code4) { - const kind = self2.containerState.type || (code4 === 42 || code4 === 43 || code4 === 45 ? "listUnordered" : "listOrdered"); - if (kind === "listUnordered" ? !self2.containerState.marker || code4 === self2.containerState.marker : asciiDigit(code4)) { - if (!self2.containerState.type) { - self2.containerState.type = kind; - effects.enter(kind, { - _container: true - }); - } - if (kind === "listUnordered") { - effects.enter("listItemPrefix"); - return code4 === 42 || code4 === 45 ? effects.check(thematicBreak2, nok, atMarker)(code4) : atMarker(code4); - } - if (!self2.interrupt || code4 === 49) { - effects.enter("listItemPrefix"); - effects.enter("listItemValue"); - return inside(code4); - } - } - return nok(code4); - } - function inside(code4) { - if (asciiDigit(code4) && ++size < 10) { - effects.consume(code4); - return inside; - } - if ((!self2.interrupt || size < 2) && (self2.containerState.marker ? code4 === self2.containerState.marker : code4 === 41 || code4 === 46)) { - effects.exit("listItemValue"); - return atMarker(code4); - } - return nok(code4); - } - function atMarker(code4) { - effects.enter("listItemMarker"); - effects.consume(code4); - effects.exit("listItemMarker"); - self2.containerState.marker = self2.containerState.marker || code4; - return effects.check( - blankLine, - // Can’t be empty when interrupting. - self2.interrupt ? nok : onBlank, - effects.attempt(listItemPrefixWhitespaceConstruct, endOfPrefix, otherPrefix) - ); - } - function onBlank(code4) { - self2.containerState.initialBlankLine = true; - initialSize++; - return endOfPrefix(code4); - } - function otherPrefix(code4) { - if (markdownSpace(code4)) { - effects.enter("listItemPrefixWhitespace"); - effects.consume(code4); - effects.exit("listItemPrefixWhitespace"); - return endOfPrefix; - } - return nok(code4); - } - function endOfPrefix(code4) { - self2.containerState.size = initialSize + self2.sliceSerialize(effects.exit("listItemPrefix"), true).length; - return ok3(code4); - } -} -function tokenizeListContinuation(effects, ok3, nok) { - const self2 = this; - self2.containerState._closeFlow = void 0; - return effects.check(blankLine, onBlank, notBlank); - function onBlank(code4) { - self2.containerState.furtherBlankLines = self2.containerState.furtherBlankLines || self2.containerState.initialBlankLine; - return factorySpace(effects, ok3, "listItemIndent", self2.containerState.size + 1)(code4); - } - function notBlank(code4) { - if (self2.containerState.furtherBlankLines || !markdownSpace(code4)) { - self2.containerState.furtherBlankLines = void 0; - self2.containerState.initialBlankLine = void 0; - return notInCurrentItem(code4); - } - self2.containerState.furtherBlankLines = void 0; - self2.containerState.initialBlankLine = void 0; - return effects.attempt(indentConstruct, ok3, notInCurrentItem)(code4); - } - function notInCurrentItem(code4) { - self2.containerState._closeFlow = true; - self2.interrupt = void 0; - return factorySpace(effects, effects.attempt(list3, ok3, nok), "linePrefix", self2.parser.constructs.disable.null.includes("codeIndented") ? void 0 : 4)(code4); - } -} -function tokenizeIndent(effects, ok3, nok) { - const self2 = this; - return factorySpace(effects, afterPrefix, "listItemIndent", self2.containerState.size + 1); - function afterPrefix(code4) { - const tail = self2.events[self2.events.length - 1]; - return tail && tail[1].type === "listItemIndent" && tail[2].sliceSerialize(tail[1], true).length === self2.containerState.size ? ok3(code4) : nok(code4); - } -} -function tokenizeListEnd(effects) { - effects.exit(this.containerState.type); -} -function tokenizeListItemPrefixWhitespace(effects, ok3, nok) { - const self2 = this; - return factorySpace(effects, afterPrefix, "listItemPrefixWhitespace", self2.parser.constructs.disable.null.includes("codeIndented") ? void 0 : 4 + 1); - function afterPrefix(code4) { - const tail = self2.events[self2.events.length - 1]; - return !markdownSpace(code4) && tail && tail[1].type === "listItemPrefixWhitespace" ? ok3(code4) : nok(code4); - } -} -var list3, listItemPrefixWhitespaceConstruct, indentConstruct; -var init_list2 = __esm({ - "node_modules/.pnpm/micromark-core-commonmark@2.0.3/node_modules/micromark-core-commonmark/lib/list.js"() { - init_micromark_factory_space(); - init_micromark_util_character(); - init_blank_line(); - init_thematic_break2(); - list3 = { - continuation: { - tokenize: tokenizeListContinuation - }, - exit: tokenizeListEnd, - name: "list", - tokenize: tokenizeListStart - }; - listItemPrefixWhitespaceConstruct = { - partial: true, - tokenize: tokenizeListItemPrefixWhitespace - }; - indentConstruct = { - partial: true, - tokenize: tokenizeIndent - }; - } -}); - -// node_modules/.pnpm/micromark-core-commonmark@2.0.3/node_modules/micromark-core-commonmark/lib/setext-underline.js -function resolveToSetextUnderline(events, context2) { - let index2 = events.length; - let content3; - let text9; - let definition3; - while (index2--) { - if (events[index2][0] === "enter") { - if (events[index2][1].type === "content") { - content3 = index2; - break; - } - if (events[index2][1].type === "paragraph") { - text9 = index2; - } - } else { - if (events[index2][1].type === "content") { - events.splice(index2, 1); - } - if (!definition3 && events[index2][1].type === "definition") { - definition3 = index2; - } - } - } - const heading3 = { - type: "setextHeading", - start: { - ...events[content3][1].start - }, - end: { - ...events[events.length - 1][1].end - } - }; - events[text9][1].type = "setextHeadingText"; - if (definition3) { - events.splice(text9, 0, ["enter", heading3, context2]); - events.splice(definition3 + 1, 0, ["exit", events[content3][1], context2]); - events[content3][1].end = { - ...events[definition3][1].end - }; - } else { - events[content3][1] = heading3; - } - events.push(["exit", heading3, context2]); - return events; -} -function tokenizeSetextUnderline(effects, ok3, nok) { - const self2 = this; - let marker; - return start; - function start(code4) { - let index2 = self2.events.length; - let paragraph3; - while (index2--) { - if (self2.events[index2][1].type !== "lineEnding" && self2.events[index2][1].type !== "linePrefix" && self2.events[index2][1].type !== "content") { - paragraph3 = self2.events[index2][1].type === "paragraph"; - break; - } - } - if (!self2.parser.lazy[self2.now().line] && (self2.interrupt || paragraph3)) { - effects.enter("setextHeadingLine"); - marker = code4; - return before(code4); - } - return nok(code4); - } - function before(code4) { - effects.enter("setextHeadingLineSequence"); - return inside(code4); - } - function inside(code4) { - if (code4 === marker) { - effects.consume(code4); - return inside; - } - effects.exit("setextHeadingLineSequence"); - return markdownSpace(code4) ? factorySpace(effects, after, "lineSuffix")(code4) : after(code4); - } - function after(code4) { - if (code4 === null || markdownLineEnding(code4)) { - effects.exit("setextHeadingLine"); - return ok3(code4); - } - return nok(code4); - } -} -var setextUnderline; -var init_setext_underline = __esm({ - "node_modules/.pnpm/micromark-core-commonmark@2.0.3/node_modules/micromark-core-commonmark/lib/setext-underline.js"() { - init_micromark_factory_space(); - init_micromark_util_character(); - setextUnderline = { - name: "setextUnderline", - resolveTo: resolveToSetextUnderline, - tokenize: tokenizeSetextUnderline - }; - } -}); - -// node_modules/.pnpm/micromark-core-commonmark@2.0.3/node_modules/micromark-core-commonmark/index.js -var init_micromark_core_commonmark = __esm({ - "node_modules/.pnpm/micromark-core-commonmark@2.0.3/node_modules/micromark-core-commonmark/index.js"() { - init_attention(); - init_autolink(); - init_blank_line(); - init_block_quote(); - init_character_escape(); - init_character_reference(); - init_code_fenced(); - init_code_indented(); - init_code_text(); - init_content(); - init_definition2(); - init_hard_break_escape(); - init_heading_atx(); - init_html_flow(); - init_html_text(); - init_label_end(); - init_label_start_image(); - init_label_start_link(); - init_line_ending(); - init_list2(); - init_setext_underline(); - init_thematic_break2(); - } -}); - -// node_modules/.pnpm/micromark-extension-gfm-footnote@2.1.0/node_modules/micromark-extension-gfm-footnote/lib/syntax.js -function gfmFootnote() { - return { - document: { - [91]: { - name: "gfmFootnoteDefinition", - tokenize: tokenizeDefinitionStart, - continuation: { - tokenize: tokenizeDefinitionContinuation - }, - exit: gfmFootnoteDefinitionEnd - } - }, - text: { - [91]: { - name: "gfmFootnoteCall", - tokenize: tokenizeGfmFootnoteCall - }, - [93]: { - name: "gfmPotentialFootnoteCall", - add: "after", - tokenize: tokenizePotentialGfmFootnoteCall, - resolveTo: resolveToPotentialGfmFootnoteCall - } - } - }; -} -function tokenizePotentialGfmFootnoteCall(effects, ok3, nok) { - const self2 = this; - let index2 = self2.events.length; - const defined = self2.parser.gfmFootnotes || (self2.parser.gfmFootnotes = []); - let labelStart; - while (index2--) { - const token = self2.events[index2][1]; - if (token.type === "labelImage") { - labelStart = token; - break; - } - if (token.type === "gfmFootnoteCall" || token.type === "labelLink" || token.type === "label" || token.type === "image" || token.type === "link") { - break; - } - } - return start; - function start(code4) { - if (!labelStart || !labelStart._balanced) { - return nok(code4); - } - const id = normalizeIdentifier(self2.sliceSerialize({ - start: labelStart.end, - end: self2.now() - })); - if (id.codePointAt(0) !== 94 || !defined.includes(id.slice(1))) { - return nok(code4); - } - effects.enter("gfmFootnoteCallLabelMarker"); - effects.consume(code4); - effects.exit("gfmFootnoteCallLabelMarker"); - return ok3(code4); - } -} -function resolveToPotentialGfmFootnoteCall(events, context2) { - let index2 = events.length; - let labelStart; - while (index2--) { - if (events[index2][1].type === "labelImage" && events[index2][0] === "enter") { - labelStart = events[index2][1]; - break; - } - } - events[index2 + 1][1].type = "data"; - events[index2 + 3][1].type = "gfmFootnoteCallLabelMarker"; - const call = { - type: "gfmFootnoteCall", - start: Object.assign({}, events[index2 + 3][1].start), - end: Object.assign({}, events[events.length - 1][1].end) - }; - const marker = { - type: "gfmFootnoteCallMarker", - start: Object.assign({}, events[index2 + 3][1].end), - end: Object.assign({}, events[index2 + 3][1].end) - }; - marker.end.column++; - marker.end.offset++; - marker.end._bufferIndex++; - const string3 = { - type: "gfmFootnoteCallString", - start: Object.assign({}, marker.end), - end: Object.assign({}, events[events.length - 1][1].start) - }; - const chunk = { - type: "chunkString", - contentType: "string", - start: Object.assign({}, string3.start), - end: Object.assign({}, string3.end) - }; - const replacement = [ - // Take the `labelImageMarker` (now `data`, the `!`) - events[index2 + 1], - events[index2 + 2], - ["enter", call, context2], - // The `[` - events[index2 + 3], - events[index2 + 4], - // The `^`. - ["enter", marker, context2], - ["exit", marker, context2], - // Everything in between. - ["enter", string3, context2], - ["enter", chunk, context2], - ["exit", chunk, context2], - ["exit", string3, context2], - // The ending (`]`, properly parsed and labelled). - events[events.length - 2], - events[events.length - 1], - ["exit", call, context2] - ]; - events.splice(index2, events.length - index2 + 1, ...replacement); - return events; -} -function tokenizeGfmFootnoteCall(effects, ok3, nok) { - const self2 = this; - const defined = self2.parser.gfmFootnotes || (self2.parser.gfmFootnotes = []); - let size = 0; - let data8; - return start; - function start(code4) { - effects.enter("gfmFootnoteCall"); - effects.enter("gfmFootnoteCallLabelMarker"); - effects.consume(code4); - effects.exit("gfmFootnoteCallLabelMarker"); - return callStart; - } - function callStart(code4) { - if (code4 !== 94) return nok(code4); - effects.enter("gfmFootnoteCallMarker"); - effects.consume(code4); - effects.exit("gfmFootnoteCallMarker"); - effects.enter("gfmFootnoteCallString"); - effects.enter("chunkString").contentType = "string"; - return callData; - } - function callData(code4) { - if ( - // Too long. - size > 999 || // Closing brace with nothing. - code4 === 93 && !data8 || // Space or tab is not supported by GFM for some reason. - // `\n` and `[` not being supported makes sense. - code4 === null || code4 === 91 || markdownLineEndingOrSpace(code4) - ) { - return nok(code4); - } - if (code4 === 93) { - effects.exit("chunkString"); - const token = effects.exit("gfmFootnoteCallString"); - if (!defined.includes(normalizeIdentifier(self2.sliceSerialize(token)))) { - return nok(code4); - } - effects.enter("gfmFootnoteCallLabelMarker"); - effects.consume(code4); - effects.exit("gfmFootnoteCallLabelMarker"); - effects.exit("gfmFootnoteCall"); - return ok3; - } - if (!markdownLineEndingOrSpace(code4)) { - data8 = true; - } - size++; - effects.consume(code4); - return code4 === 92 ? callEscape : callData; - } - function callEscape(code4) { - if (code4 === 91 || code4 === 92 || code4 === 93) { - effects.consume(code4); - size++; - return callData; - } - return callData(code4); - } -} -function tokenizeDefinitionStart(effects, ok3, nok) { - const self2 = this; - const defined = self2.parser.gfmFootnotes || (self2.parser.gfmFootnotes = []); - let identifier; - let size = 0; - let data8; - return start; - function start(code4) { - effects.enter("gfmFootnoteDefinition")._container = true; - effects.enter("gfmFootnoteDefinitionLabel"); - effects.enter("gfmFootnoteDefinitionLabelMarker"); - effects.consume(code4); - effects.exit("gfmFootnoteDefinitionLabelMarker"); - return labelAtMarker; - } - function labelAtMarker(code4) { - if (code4 === 94) { - effects.enter("gfmFootnoteDefinitionMarker"); - effects.consume(code4); - effects.exit("gfmFootnoteDefinitionMarker"); - effects.enter("gfmFootnoteDefinitionLabelString"); - effects.enter("chunkString").contentType = "string"; - return labelInside; - } - return nok(code4); - } - function labelInside(code4) { - if ( - // Too long. - size > 999 || // Closing brace with nothing. - code4 === 93 && !data8 || // Space or tab is not supported by GFM for some reason. - // `\n` and `[` not being supported makes sense. - code4 === null || code4 === 91 || markdownLineEndingOrSpace(code4) - ) { - return nok(code4); - } - if (code4 === 93) { - effects.exit("chunkString"); - const token = effects.exit("gfmFootnoteDefinitionLabelString"); - identifier = normalizeIdentifier(self2.sliceSerialize(token)); - effects.enter("gfmFootnoteDefinitionLabelMarker"); - effects.consume(code4); - effects.exit("gfmFootnoteDefinitionLabelMarker"); - effects.exit("gfmFootnoteDefinitionLabel"); - return labelAfter; - } - if (!markdownLineEndingOrSpace(code4)) { - data8 = true; - } - size++; - effects.consume(code4); - return code4 === 92 ? labelEscape : labelInside; - } - function labelEscape(code4) { - if (code4 === 91 || code4 === 92 || code4 === 93) { - effects.consume(code4); - size++; - return labelInside; - } - return labelInside(code4); - } - function labelAfter(code4) { - if (code4 === 58) { - effects.enter("definitionMarker"); - effects.consume(code4); - effects.exit("definitionMarker"); - if (!defined.includes(identifier)) { - defined.push(identifier); - } - return factorySpace(effects, whitespaceAfter, "gfmFootnoteDefinitionWhitespace"); - } - return nok(code4); - } - function whitespaceAfter(code4) { - return ok3(code4); - } -} -function tokenizeDefinitionContinuation(effects, ok3, nok) { - return effects.check(blankLine, ok3, effects.attempt(indent2, ok3, nok)); -} -function gfmFootnoteDefinitionEnd(effects) { - effects.exit("gfmFootnoteDefinition"); -} -function tokenizeIndent2(effects, ok3, nok) { - const self2 = this; - return factorySpace(effects, afterPrefix, "gfmFootnoteDefinitionIndent", 4 + 1); - function afterPrefix(code4) { - const tail = self2.events[self2.events.length - 1]; - return tail && tail[1].type === "gfmFootnoteDefinitionIndent" && tail[2].sliceSerialize(tail[1], true).length === 4 ? ok3(code4) : nok(code4); - } -} -var indent2; -var init_syntax2 = __esm({ - "node_modules/.pnpm/micromark-extension-gfm-footnote@2.1.0/node_modules/micromark-extension-gfm-footnote/lib/syntax.js"() { - init_micromark_core_commonmark(); - init_micromark_factory_space(); - init_micromark_util_character(); - init_micromark_util_normalize_identifier(); - indent2 = { - tokenize: tokenizeIndent2, - partial: true - }; - } -}); - -// node_modules/.pnpm/micromark-extension-gfm-footnote@2.1.0/node_modules/micromark-extension-gfm-footnote/lib/html.js -function defaultBackLabel(referenceIndex, rereferenceIndex) { - return "Back to reference " + (referenceIndex + 1) + (rereferenceIndex > 1 ? "-" + rereferenceIndex : ""); -} -function gfmFootnoteHtml(options) { - const config3 = options || emptyOptions2; - const label = config3.label || "Footnotes"; - const labelTagName = config3.labelTagName || "h2"; - const labelAttributes = config3.labelAttributes === null || config3.labelAttributes === void 0 ? 'class="sr-only"' : config3.labelAttributes; - const backLabel = config3.backLabel || defaultBackLabel; - const clobberPrefix = config3.clobberPrefix === null || config3.clobberPrefix === void 0 ? "user-content-" : config3.clobberPrefix; - return { - enter: { - gfmFootnoteDefinition() { - const stack = this.getData("tightStack"); - stack.push(false); - }, - gfmFootnoteDefinitionLabelString() { - this.buffer(); - }, - gfmFootnoteCallString() { - this.buffer(); - } - }, - exit: { - gfmFootnoteDefinition() { - let definitions = this.getData("gfmFootnoteDefinitions"); - const footnoteStack = this.getData("gfmFootnoteDefinitionStack"); - const tightStack = this.getData("tightStack"); - const current = footnoteStack.pop(); - const value2 = this.resume(); - if (!definitions) { - this.setData("gfmFootnoteDefinitions", definitions = {}); - } - if (!own4.call(definitions, current)) definitions[current] = value2; - tightStack.pop(); - this.setData("slurpOneLineEnding", true); - this.setData("lastWasTag"); - }, - gfmFootnoteDefinitionLabelString(token) { - let footnoteStack = this.getData("gfmFootnoteDefinitionStack"); - if (!footnoteStack) { - this.setData("gfmFootnoteDefinitionStack", footnoteStack = []); - } - footnoteStack.push(normalizeIdentifier(this.sliceSerialize(token))); - this.resume(); - this.buffer(); - }, - gfmFootnoteCallString(token) { - let calls = this.getData("gfmFootnoteCallOrder"); - let counts = this.getData("gfmFootnoteCallCounts"); - const id = normalizeIdentifier(this.sliceSerialize(token)); - let counter2; - this.resume(); - if (!calls) this.setData("gfmFootnoteCallOrder", calls = []); - if (!counts) this.setData("gfmFootnoteCallCounts", counts = {}); - const index2 = calls.indexOf(id); - const safeId = sanitizeUri(id.toLowerCase()); - if (index2 === -1) { - calls.push(id); - counts[id] = 1; - counter2 = calls.length; - } else { - counts[id]++; - counter2 = index2 + 1; - } - const reuseCounter = counts[id]; - this.tag(' 1 ? "-" + reuseCounter : "") + '" data-footnote-ref="" aria-describedby="footnote-label">' + String(counter2) + ""); - }, - null() { - const calls = this.getData("gfmFootnoteCallOrder") || []; - const counts = this.getData("gfmFootnoteCallCounts") || {}; - const definitions = this.getData("gfmFootnoteDefinitions") || {}; - let index2 = -1; - if (calls.length > 0) { - this.lineEndingIfNeeded(); - this.tag('
<' + labelTagName + ' id="footnote-label"' + (labelAttributes ? " " + labelAttributes : "") + ">"); - this.raw(this.encode(label)); - this.tag(""); - this.lineEndingIfNeeded(); - this.tag("
    "); - } - while (++index2 < calls.length) { - const id = calls[index2]; - const safeId = sanitizeUri(id.toLowerCase()); - let referenceIndex = 0; - const references = []; - while (++referenceIndex <= counts[id]) { - references.push(' 1 ? "-" + referenceIndex : "") + '" data-footnote-backref="" aria-label="' + this.encode(typeof backLabel === "string" ? backLabel : backLabel(index2, referenceIndex)) + '" class="data-footnote-backref">\u21A9' + (referenceIndex > 1 ? "" + referenceIndex + "" : "") + ""); - } - const reference = references.join(" "); - let injected = false; - this.lineEndingIfNeeded(); - this.tag('
  1. '); - this.lineEndingIfNeeded(); - this.tag(definitions[id].replace(/<\/p>(?:\r?\n|\r)?$/, function($0) { - injected = true; - return " " + reference + $0; - })); - if (!injected) { - this.lineEndingIfNeeded(); - this.tag(reference); - } - this.lineEndingIfNeeded(); - this.tag("
  2. "); - } - if (calls.length > 0) { - this.lineEndingIfNeeded(); - this.tag("
"); - this.lineEndingIfNeeded(); - this.tag("
"); - } - } - } - }; -} -var own4, emptyOptions2; -var init_html3 = __esm({ - "node_modules/.pnpm/micromark-extension-gfm-footnote@2.1.0/node_modules/micromark-extension-gfm-footnote/lib/html.js"() { - init_micromark_util_normalize_identifier(); - init_micromark_util_sanitize_uri(); - own4 = {}.hasOwnProperty; - emptyOptions2 = {}; - } -}); - -// node_modules/.pnpm/micromark-extension-gfm-footnote@2.1.0/node_modules/micromark-extension-gfm-footnote/index.js -var init_micromark_extension_gfm_footnote = __esm({ - "node_modules/.pnpm/micromark-extension-gfm-footnote@2.1.0/node_modules/micromark-extension-gfm-footnote/index.js"() { - init_syntax2(); - init_html3(); - } -}); - -// node_modules/.pnpm/micromark-extension-gfm-strikethrough@2.1.0/node_modules/micromark-extension-gfm-strikethrough/lib/html.js -function gfmStrikethroughHtml() { - return { - enter: { - strikethrough() { - this.tag(""); - } - }, - exit: { - strikethrough() { - this.tag(""); - } - } - }; -} -var init_html4 = __esm({ - "node_modules/.pnpm/micromark-extension-gfm-strikethrough@2.1.0/node_modules/micromark-extension-gfm-strikethrough/lib/html.js"() { - } -}); - -// node_modules/.pnpm/micromark-extension-gfm-strikethrough@2.1.0/node_modules/micromark-extension-gfm-strikethrough/lib/syntax.js -function gfmStrikethrough(options) { - const options_ = options || {}; - let single2 = options_.singleTilde; - const tokenizer = { - name: "strikethrough", - tokenize: tokenizeStrikethrough, - resolveAll: resolveAllStrikethrough - }; - if (single2 === null || single2 === void 0) { - single2 = true; - } - return { - text: { - [126]: tokenizer - }, - insideSpan: { - null: [tokenizer] - }, - attentionMarkers: { - null: [126] - } - }; - function resolveAllStrikethrough(events, context2) { - let index2 = -1; - while (++index2 < events.length) { - if (events[index2][0] === "enter" && events[index2][1].type === "strikethroughSequenceTemporary" && events[index2][1]._close) { - let open = index2; - while (open--) { - if (events[open][0] === "exit" && events[open][1].type === "strikethroughSequenceTemporary" && events[open][1]._open && // If the sizes are the same: - events[index2][1].end.offset - events[index2][1].start.offset === events[open][1].end.offset - events[open][1].start.offset) { - events[index2][1].type = "strikethroughSequence"; - events[open][1].type = "strikethroughSequence"; - const strikethrough3 = { - type: "strikethrough", - start: Object.assign({}, events[open][1].start), - end: Object.assign({}, events[index2][1].end) - }; - const text9 = { - type: "strikethroughText", - start: Object.assign({}, events[open][1].end), - end: Object.assign({}, events[index2][1].start) - }; - const nextEvents = [["enter", strikethrough3, context2], ["enter", events[open][1], context2], ["exit", events[open][1], context2], ["enter", text9, context2]]; - const insideSpan2 = context2.parser.constructs.insideSpan.null; - if (insideSpan2) { - splice(nextEvents, nextEvents.length, 0, resolveAll(insideSpan2, events.slice(open + 1, index2), context2)); - } - splice(nextEvents, nextEvents.length, 0, [["exit", text9, context2], ["enter", events[index2][1], context2], ["exit", events[index2][1], context2], ["exit", strikethrough3, context2]]); - splice(events, open - 1, index2 - open + 3, nextEvents); - index2 = open + nextEvents.length - 2; - break; - } - } - } - } - index2 = -1; - while (++index2 < events.length) { - if (events[index2][1].type === "strikethroughSequenceTemporary") { - events[index2][1].type = "data"; - } - } - return events; - } - function tokenizeStrikethrough(effects, ok3, nok) { - const previous3 = this.previous; - const events = this.events; - let size = 0; - return start; - function start(code4) { - if (previous3 === 126 && events[events.length - 1][1].type !== "characterEscape") { - return nok(code4); - } - effects.enter("strikethroughSequenceTemporary"); - return more(code4); - } - function more(code4) { - const before = classifyCharacter(previous3); - if (code4 === 126) { - if (size > 1) return nok(code4); - effects.consume(code4); - size++; - return more; - } - if (size < 2 && !single2) return nok(code4); - const token = effects.exit("strikethroughSequenceTemporary"); - const after = classifyCharacter(code4); - token._open = !after || after === 2 && Boolean(before); - token._close = !before || before === 2 && Boolean(after); - return ok3(code4); - } - } -} -var init_syntax3 = __esm({ - "node_modules/.pnpm/micromark-extension-gfm-strikethrough@2.1.0/node_modules/micromark-extension-gfm-strikethrough/lib/syntax.js"() { - init_micromark_util_chunked(); - init_micromark_util_classify_character(); - init_micromark_util_resolve_all(); - } -}); - -// node_modules/.pnpm/micromark-extension-gfm-strikethrough@2.1.0/node_modules/micromark-extension-gfm-strikethrough/index.js -var init_micromark_extension_gfm_strikethrough = __esm({ - "node_modules/.pnpm/micromark-extension-gfm-strikethrough@2.1.0/node_modules/micromark-extension-gfm-strikethrough/index.js"() { - init_html4(); - init_syntax3(); - } -}); - -// node_modules/.pnpm/micromark-extension-gfm-table@2.1.1/node_modules/micromark-extension-gfm-table/lib/html.js -function gfmTableHtml() { - return { - enter: { - table(token) { - const tableAlign = token._align; - this.lineEndingIfNeeded(); - this.tag(""); - this.setData("tableAlign", tableAlign); - }, - tableBody() { - this.tag(""); - }, - tableData() { - const tableAlign = this.getData("tableAlign"); - const tableColumn = this.getData("tableColumn"); - const align = alignment[tableAlign[tableColumn]]; - if (align === void 0) { - this.buffer(); - } else { - this.lineEndingIfNeeded(); - this.tag(""); - } - }, - tableHead() { - this.lineEndingIfNeeded(); - this.tag(""); - }, - tableHeader() { - const tableAlign = this.getData("tableAlign"); - const tableColumn = this.getData("tableColumn"); - const align = alignment[tableAlign[tableColumn]]; - this.lineEndingIfNeeded(); - this.tag(""); - }, - tableRow() { - this.setData("tableColumn", 0); - this.lineEndingIfNeeded(); - this.tag(""); - } - }, - exit: { - // Overwrite the default code text data handler to unescape escaped pipes when - // they are in tables. - codeTextData(token) { - let value2 = this.sliceSerialize(token); - if (this.getData("tableAlign")) { - value2 = value2.replace(/\\([\\|])/g, replace2); - } - this.raw(this.encode(value2)); - }, - table() { - this.setData("tableAlign"); - this.setData("slurpAllLineEndings"); - this.lineEndingIfNeeded(); - this.tag("
"); - }, - tableBody() { - this.lineEndingIfNeeded(); - this.tag(""); - }, - tableData() { - const tableAlign = this.getData("tableAlign"); - const tableColumn = this.getData("tableColumn"); - if (tableColumn in tableAlign) { - this.tag(""); - this.setData("tableColumn", tableColumn + 1); - } else { - this.resume(); - } - }, - tableHead() { - this.lineEndingIfNeeded(); - this.tag(""); - }, - tableHeader() { - const tableColumn = this.getData("tableColumn"); - this.tag(""); - this.setData("tableColumn", tableColumn + 1); - }, - tableRow() { - const tableAlign = this.getData("tableAlign"); - let tableColumn = this.getData("tableColumn"); - while (tableColumn < tableAlign.length) { - this.lineEndingIfNeeded(); - this.tag(""); - tableColumn++; - } - this.setData("tableColumn", tableColumn); - this.lineEndingIfNeeded(); - this.tag(""); - } - } - }; -} -function replace2($0, $1) { - return $1 === "|" ? $1 : $0; -} -var alignment; -var init_html5 = __esm({ - "node_modules/.pnpm/micromark-extension-gfm-table@2.1.1/node_modules/micromark-extension-gfm-table/lib/html.js"() { - alignment = { - none: "", - left: ' align="left"', - right: ' align="right"', - center: ' align="center"' - }; - } -}); - -// node_modules/.pnpm/micromark-extension-gfm-table@2.1.1/node_modules/micromark-extension-gfm-table/lib/edit-map.js -function addImplementation(editMap, at, remove2, add3) { - let index2 = 0; - if (remove2 === 0 && add3.length === 0) { - return; - } - while (index2 < editMap.map.length) { - if (editMap.map[index2][0] === at) { - editMap.map[index2][1] += remove2; - editMap.map[index2][2].push(...add3); - return; - } - index2 += 1; - } - editMap.map.push([at, remove2, add3]); -} -var EditMap; -var init_edit_map = __esm({ - "node_modules/.pnpm/micromark-extension-gfm-table@2.1.1/node_modules/micromark-extension-gfm-table/lib/edit-map.js"() { - EditMap = class { - /** - * Create a new edit map. - */ - constructor() { - this.map = []; - } - /** - * Create an edit: a remove and/or add at a certain place. - * - * @param {number} index - * @param {number} remove - * @param {Array} add - * @returns {undefined} - */ - add(index2, remove2, add3) { - addImplementation(this, index2, remove2, add3); - } - // To do: add this when moving to `micromark`. - // /** - // * Create an edit: but insert `add` before existing additions. - // * - // * @param {number} index - // * @param {number} remove - // * @param {Array} add - // * @returns {undefined} - // */ - // addBefore(index, remove, add) { - // addImplementation(this, index, remove, add, true) - // } - /** - * Done, change the events. - * - * @param {Array} events - * @returns {undefined} - */ - consume(events) { - this.map.sort(function(a5, b5) { - return a5[0] - b5[0]; - }); - if (this.map.length === 0) { - return; - } - let index2 = this.map.length; - const vecs = []; - while (index2 > 0) { - index2 -= 1; - vecs.push(events.slice(this.map[index2][0] + this.map[index2][1]), this.map[index2][2]); - events.length = this.map[index2][0]; - } - vecs.push(events.slice()); - events.length = 0; - let slice = vecs.pop(); - while (slice) { - for (const element4 of slice) { - events.push(element4); - } - slice = vecs.pop(); - } - this.map.length = 0; - } - }; - } -}); - -// node_modules/.pnpm/micromark-extension-gfm-table@2.1.1/node_modules/micromark-extension-gfm-table/lib/infer.js -function gfmTableAlign(events, index2) { - let inDelimiterRow = false; - const align = []; - while (index2 < events.length) { - const event = events[index2]; - if (inDelimiterRow) { - if (event[0] === "enter") { - if (event[1].type === "tableContent") { - align.push(events[index2 + 1][1].type === "tableDelimiterMarker" ? "left" : "none"); - } - } else if (event[1].type === "tableContent") { - if (events[index2 - 1][1].type === "tableDelimiterMarker") { - const alignIndex = align.length - 1; - align[alignIndex] = align[alignIndex] === "left" ? "center" : "right"; - } - } else if (event[1].type === "tableDelimiterRow") { - break; - } - } else if (event[0] === "enter" && event[1].type === "tableDelimiterRow") { - inDelimiterRow = true; - } - index2 += 1; - } - return align; -} -var init_infer = __esm({ - "node_modules/.pnpm/micromark-extension-gfm-table@2.1.1/node_modules/micromark-extension-gfm-table/lib/infer.js"() { - } -}); - -// node_modules/.pnpm/micromark-extension-gfm-table@2.1.1/node_modules/micromark-extension-gfm-table/lib/syntax.js -function gfmTable() { - return { - flow: { - null: { - name: "table", - tokenize: tokenizeTable, - resolveAll: resolveTable - } - } - }; -} -function tokenizeTable(effects, ok3, nok) { - const self2 = this; - let size = 0; - let sizeB = 0; - let seen; - return start; - function start(code4) { - let index2 = self2.events.length - 1; - while (index2 > -1) { - const type5 = self2.events[index2][1].type; - if (type5 === "lineEnding" || // Note: markdown-rs uses `whitespace` instead of `linePrefix` - type5 === "linePrefix") index2--; - else break; - } - const tail = index2 > -1 ? self2.events[index2][1].type : null; - const next2 = tail === "tableHead" || tail === "tableRow" ? bodyRowStart : headRowBefore; - if (next2 === bodyRowStart && self2.parser.lazy[self2.now().line]) { - return nok(code4); - } - return next2(code4); - } - function headRowBefore(code4) { - effects.enter("tableHead"); - effects.enter("tableRow"); - return headRowStart(code4); - } - function headRowStart(code4) { - if (code4 === 124) { - return headRowBreak(code4); - } - seen = true; - sizeB += 1; - return headRowBreak(code4); - } - function headRowBreak(code4) { - if (code4 === null) { - return nok(code4); - } - if (markdownLineEnding(code4)) { - if (sizeB > 1) { - sizeB = 0; - self2.interrupt = true; - effects.exit("tableRow"); - effects.enter("lineEnding"); - effects.consume(code4); - effects.exit("lineEnding"); - return headDelimiterStart; - } - return nok(code4); - } - if (markdownSpace(code4)) { - return factorySpace(effects, headRowBreak, "whitespace")(code4); - } - sizeB += 1; - if (seen) { - seen = false; - size += 1; - } - if (code4 === 124) { - effects.enter("tableCellDivider"); - effects.consume(code4); - effects.exit("tableCellDivider"); - seen = true; - return headRowBreak; - } - effects.enter("data"); - return headRowData(code4); - } - function headRowData(code4) { - if (code4 === null || code4 === 124 || markdownLineEndingOrSpace(code4)) { - effects.exit("data"); - return headRowBreak(code4); - } - effects.consume(code4); - return code4 === 92 ? headRowEscape : headRowData; - } - function headRowEscape(code4) { - if (code4 === 92 || code4 === 124) { - effects.consume(code4); - return headRowData; - } - return headRowData(code4); - } - function headDelimiterStart(code4) { - self2.interrupt = false; - if (self2.parser.lazy[self2.now().line]) { - return nok(code4); - } - effects.enter("tableDelimiterRow"); - seen = false; - if (markdownSpace(code4)) { - return factorySpace(effects, headDelimiterBefore, "linePrefix", self2.parser.constructs.disable.null.includes("codeIndented") ? void 0 : 4)(code4); - } - return headDelimiterBefore(code4); - } - function headDelimiterBefore(code4) { - if (code4 === 45 || code4 === 58) { - return headDelimiterValueBefore(code4); - } - if (code4 === 124) { - seen = true; - effects.enter("tableCellDivider"); - effects.consume(code4); - effects.exit("tableCellDivider"); - return headDelimiterCellBefore; - } - return headDelimiterNok(code4); - } - function headDelimiterCellBefore(code4) { - if (markdownSpace(code4)) { - return factorySpace(effects, headDelimiterValueBefore, "whitespace")(code4); - } - return headDelimiterValueBefore(code4); - } - function headDelimiterValueBefore(code4) { - if (code4 === 58) { - sizeB += 1; - seen = true; - effects.enter("tableDelimiterMarker"); - effects.consume(code4); - effects.exit("tableDelimiterMarker"); - return headDelimiterLeftAlignmentAfter; - } - if (code4 === 45) { - sizeB += 1; - return headDelimiterLeftAlignmentAfter(code4); - } - if (code4 === null || markdownLineEnding(code4)) { - return headDelimiterCellAfter(code4); - } - return headDelimiterNok(code4); - } - function headDelimiterLeftAlignmentAfter(code4) { - if (code4 === 45) { - effects.enter("tableDelimiterFiller"); - return headDelimiterFiller(code4); - } - return headDelimiterNok(code4); - } - function headDelimiterFiller(code4) { - if (code4 === 45) { - effects.consume(code4); - return headDelimiterFiller; - } - if (code4 === 58) { - seen = true; - effects.exit("tableDelimiterFiller"); - effects.enter("tableDelimiterMarker"); - effects.consume(code4); - effects.exit("tableDelimiterMarker"); - return headDelimiterRightAlignmentAfter; - } - effects.exit("tableDelimiterFiller"); - return headDelimiterRightAlignmentAfter(code4); - } - function headDelimiterRightAlignmentAfter(code4) { - if (markdownSpace(code4)) { - return factorySpace(effects, headDelimiterCellAfter, "whitespace")(code4); - } - return headDelimiterCellAfter(code4); - } - function headDelimiterCellAfter(code4) { - if (code4 === 124) { - return headDelimiterBefore(code4); - } - if (code4 === null || markdownLineEnding(code4)) { - if (!seen || size !== sizeB) { - return headDelimiterNok(code4); - } - effects.exit("tableDelimiterRow"); - effects.exit("tableHead"); - return ok3(code4); - } - return headDelimiterNok(code4); - } - function headDelimiterNok(code4) { - return nok(code4); - } - function bodyRowStart(code4) { - effects.enter("tableRow"); - return bodyRowBreak(code4); - } - function bodyRowBreak(code4) { - if (code4 === 124) { - effects.enter("tableCellDivider"); - effects.consume(code4); - effects.exit("tableCellDivider"); - return bodyRowBreak; - } - if (code4 === null || markdownLineEnding(code4)) { - effects.exit("tableRow"); - return ok3(code4); - } - if (markdownSpace(code4)) { - return factorySpace(effects, bodyRowBreak, "whitespace")(code4); - } - effects.enter("data"); - return bodyRowData(code4); - } - function bodyRowData(code4) { - if (code4 === null || code4 === 124 || markdownLineEndingOrSpace(code4)) { - effects.exit("data"); - return bodyRowBreak(code4); - } - effects.consume(code4); - return code4 === 92 ? bodyRowEscape : bodyRowData; - } - function bodyRowEscape(code4) { - if (code4 === 92 || code4 === 124) { - effects.consume(code4); - return bodyRowData; - } - return bodyRowData(code4); - } -} -function resolveTable(events, context2) { - let index2 = -1; - let inFirstCellAwaitingPipe = true; - let rowKind = 0; - let lastCell = [0, 0, 0, 0]; - let cell2 = [0, 0, 0, 0]; - let afterHeadAwaitingFirstBodyRow = false; - let lastTableEnd = 0; - let currentTable; - let currentBody; - let currentCell; - const map7 = new EditMap(); - while (++index2 < events.length) { - const event = events[index2]; - const token = event[1]; - if (event[0] === "enter") { - if (token.type === "tableHead") { - afterHeadAwaitingFirstBodyRow = false; - if (lastTableEnd !== 0) { - flushTableEnd(map7, context2, lastTableEnd, currentTable, currentBody); - currentBody = void 0; - lastTableEnd = 0; - } - currentTable = { - type: "table", - start: Object.assign({}, token.start), - // Note: correct end is set later. - end: Object.assign({}, token.end) - }; - map7.add(index2, 0, [["enter", currentTable, context2]]); - } else if (token.type === "tableRow" || token.type === "tableDelimiterRow") { - inFirstCellAwaitingPipe = true; - currentCell = void 0; - lastCell = [0, 0, 0, 0]; - cell2 = [0, index2 + 1, 0, 0]; - if (afterHeadAwaitingFirstBodyRow) { - afterHeadAwaitingFirstBodyRow = false; - currentBody = { - type: "tableBody", - start: Object.assign({}, token.start), - // Note: correct end is set later. - end: Object.assign({}, token.end) - }; - map7.add(index2, 0, [["enter", currentBody, context2]]); - } - rowKind = token.type === "tableDelimiterRow" ? 2 : currentBody ? 3 : 1; - } else if (rowKind && (token.type === "data" || token.type === "tableDelimiterMarker" || token.type === "tableDelimiterFiller")) { - inFirstCellAwaitingPipe = false; - if (cell2[2] === 0) { - if (lastCell[1] !== 0) { - cell2[0] = cell2[1]; - currentCell = flushCell(map7, context2, lastCell, rowKind, void 0, currentCell); - lastCell = [0, 0, 0, 0]; - } - cell2[2] = index2; - } - } else if (token.type === "tableCellDivider") { - if (inFirstCellAwaitingPipe) { - inFirstCellAwaitingPipe = false; - } else { - if (lastCell[1] !== 0) { - cell2[0] = cell2[1]; - currentCell = flushCell(map7, context2, lastCell, rowKind, void 0, currentCell); - } - lastCell = cell2; - cell2 = [lastCell[1], index2, 0, 0]; - } - } - } else if (token.type === "tableHead") { - afterHeadAwaitingFirstBodyRow = true; - lastTableEnd = index2; - } else if (token.type === "tableRow" || token.type === "tableDelimiterRow") { - lastTableEnd = index2; - if (lastCell[1] !== 0) { - cell2[0] = cell2[1]; - currentCell = flushCell(map7, context2, lastCell, rowKind, index2, currentCell); - } else if (cell2[1] !== 0) { - currentCell = flushCell(map7, context2, cell2, rowKind, index2, currentCell); - } - rowKind = 0; - } else if (rowKind && (token.type === "data" || token.type === "tableDelimiterMarker" || token.type === "tableDelimiterFiller")) { - cell2[3] = index2; - } - } - if (lastTableEnd !== 0) { - flushTableEnd(map7, context2, lastTableEnd, currentTable, currentBody); - } - map7.consume(context2.events); - index2 = -1; - while (++index2 < context2.events.length) { - const event = context2.events[index2]; - if (event[0] === "enter" && event[1].type === "table") { - event[1]._align = gfmTableAlign(context2.events, index2); - } - } - return events; -} -function flushCell(map7, context2, range2, rowKind, rowEnd, previousCell) { - const groupName = rowKind === 1 ? "tableHeader" : rowKind === 2 ? "tableDelimiter" : "tableData"; - const valueName = "tableContent"; - if (range2[0] !== 0) { - previousCell.end = Object.assign({}, getPoint(context2.events, range2[0])); - map7.add(range2[0], 0, [["exit", previousCell, context2]]); - } - const now2 = getPoint(context2.events, range2[1]); - previousCell = { - type: groupName, - start: Object.assign({}, now2), - // Note: correct end is set later. - end: Object.assign({}, now2) - }; - map7.add(range2[1], 0, [["enter", previousCell, context2]]); - if (range2[2] !== 0) { - const relatedStart = getPoint(context2.events, range2[2]); - const relatedEnd = getPoint(context2.events, range2[3]); - const valueToken = { - type: valueName, - start: Object.assign({}, relatedStart), - end: Object.assign({}, relatedEnd) - }; - map7.add(range2[2], 0, [["enter", valueToken, context2]]); - if (rowKind !== 2) { - const start = context2.events[range2[2]]; - const end3 = context2.events[range2[3]]; - start[1].end = Object.assign({}, end3[1].end); - start[1].type = "chunkText"; - start[1].contentType = "text"; - if (range2[3] > range2[2] + 1) { - const a5 = range2[2] + 1; - const b5 = range2[3] - range2[2] - 1; - map7.add(a5, b5, []); - } - } - map7.add(range2[3] + 1, 0, [["exit", valueToken, context2]]); - } - if (rowEnd !== void 0) { - previousCell.end = Object.assign({}, getPoint(context2.events, rowEnd)); - map7.add(rowEnd, 0, [["exit", previousCell, context2]]); - previousCell = void 0; - } - return previousCell; -} -function flushTableEnd(map7, context2, index2, table2, tableBody) { - const exits = []; - const related = getPoint(context2.events, index2); - if (tableBody) { - tableBody.end = Object.assign({}, related); - exits.push(["exit", tableBody, context2]); - } - table2.end = Object.assign({}, related); - exits.push(["exit", table2, context2]); - map7.add(index2 + 1, 0, exits); -} -function getPoint(events, index2) { - const event = events[index2]; - const side = event[0] === "enter" ? "start" : "end"; - return event[1][side]; -} -var init_syntax4 = __esm({ - "node_modules/.pnpm/micromark-extension-gfm-table@2.1.1/node_modules/micromark-extension-gfm-table/lib/syntax.js"() { - init_micromark_factory_space(); - init_micromark_util_character(); - init_edit_map(); - init_infer(); - } -}); - -// node_modules/.pnpm/micromark-extension-gfm-table@2.1.1/node_modules/micromark-extension-gfm-table/index.js -var init_micromark_extension_gfm_table = __esm({ - "node_modules/.pnpm/micromark-extension-gfm-table@2.1.1/node_modules/micromark-extension-gfm-table/index.js"() { - init_html5(); - init_syntax4(); - } -}); - -// node_modules/.pnpm/micromark-extension-gfm-tagfilter@2.0.0/node_modules/micromark-extension-gfm-tagfilter/lib/index.js -function gfmTagfilterHtml() { - return { - exit: { - htmlFlowData(token) { - exitHtmlData.call(this, token, reFlow); - }, - htmlTextData(token) { - exitHtmlData.call(this, token, reText); - } - } - }; -} -function exitHtmlData(token, filter2) { - let value2 = this.sliceSerialize(token); - if (this.options.allowDangerousHtml) { - value2 = value2.replace(filter2, "<$1$2"); - } - this.raw(this.encode(value2)); -} -var reFlow, reText; -var init_lib19 = __esm({ - "node_modules/.pnpm/micromark-extension-gfm-tagfilter@2.0.0/node_modules/micromark-extension-gfm-tagfilter/lib/index.js"() { - reFlow = /<(\/?)(iframe|noembed|noframes|plaintext|script|style|title|textarea|xmp)(?=[\t\n\f\r />])/gi; - reText = new RegExp("^" + reFlow.source, "i"); - } -}); - -// node_modules/.pnpm/micromark-extension-gfm-tagfilter@2.0.0/node_modules/micromark-extension-gfm-tagfilter/index.js -var init_micromark_extension_gfm_tagfilter = __esm({ - "node_modules/.pnpm/micromark-extension-gfm-tagfilter@2.0.0/node_modules/micromark-extension-gfm-tagfilter/index.js"() { - init_lib19(); - } -}); - -// node_modules/.pnpm/micromark-extension-gfm-task-list-item@2.1.0/node_modules/micromark-extension-gfm-task-list-item/lib/html.js -function gfmTaskListItemHtml() { - return { - enter: { - taskListCheck() { - this.tag('"); - }, - taskListCheckValueChecked() { - this.tag('checked="" '); - } - } - }; -} -var init_html6 = __esm({ - "node_modules/.pnpm/micromark-extension-gfm-task-list-item@2.1.0/node_modules/micromark-extension-gfm-task-list-item/lib/html.js"() { - } -}); - -// node_modules/.pnpm/micromark-extension-gfm-task-list-item@2.1.0/node_modules/micromark-extension-gfm-task-list-item/lib/syntax.js -function gfmTaskListItem() { - return { - text: { - [91]: tasklistCheck - } - }; -} -function tokenizeTasklistCheck(effects, ok3, nok) { - const self2 = this; - return open; - function open(code4) { - if ( - // Exit if there’s stuff before. - self2.previous !== null || // Exit if not in the first content that is the first child of a list - // item. - !self2._gfmTasklistFirstContentOfListItem - ) { - return nok(code4); - } - effects.enter("taskListCheck"); - effects.enter("taskListCheckMarker"); - effects.consume(code4); - effects.exit("taskListCheckMarker"); - return inside; - } - function inside(code4) { - if (markdownLineEndingOrSpace(code4)) { - effects.enter("taskListCheckValueUnchecked"); - effects.consume(code4); - effects.exit("taskListCheckValueUnchecked"); - return close7; - } - if (code4 === 88 || code4 === 120) { - effects.enter("taskListCheckValueChecked"); - effects.consume(code4); - effects.exit("taskListCheckValueChecked"); - return close7; - } - return nok(code4); - } - function close7(code4) { - if (code4 === 93) { - effects.enter("taskListCheckMarker"); - effects.consume(code4); - effects.exit("taskListCheckMarker"); - effects.exit("taskListCheck"); - return after; - } - return nok(code4); - } - function after(code4) { - if (markdownLineEnding(code4)) { - return ok3(code4); - } - if (markdownSpace(code4)) { - return effects.check({ - tokenize: spaceThenNonSpace - }, ok3, nok)(code4); - } - return nok(code4); - } -} -function spaceThenNonSpace(effects, ok3, nok) { - return factorySpace(effects, after, "whitespace"); - function after(code4) { - return code4 === null ? nok(code4) : ok3(code4); - } -} -var tasklistCheck; -var init_syntax5 = __esm({ - "node_modules/.pnpm/micromark-extension-gfm-task-list-item@2.1.0/node_modules/micromark-extension-gfm-task-list-item/lib/syntax.js"() { - init_micromark_factory_space(); - init_micromark_util_character(); - tasklistCheck = { - name: "tasklistCheck", - tokenize: tokenizeTasklistCheck - }; - } -}); - -// node_modules/.pnpm/micromark-extension-gfm-task-list-item@2.1.0/node_modules/micromark-extension-gfm-task-list-item/index.js -var init_micromark_extension_gfm_task_list_item = __esm({ - "node_modules/.pnpm/micromark-extension-gfm-task-list-item@2.1.0/node_modules/micromark-extension-gfm-task-list-item/index.js"() { - init_html6(); - init_syntax5(); - } -}); - -// node_modules/.pnpm/micromark-extension-gfm@3.0.0/node_modules/micromark-extension-gfm/index.js -function gfm(options) { - return combineExtensions([ - gfmAutolinkLiteral(), - gfmFootnote(), - gfmStrikethrough(options), - gfmTable(), - gfmTaskListItem() - ]); -} -function gfmHtml(options) { - return combineHtmlExtensions([ - gfmAutolinkLiteralHtml(), - gfmFootnoteHtml(options), - gfmStrikethroughHtml(), - gfmTableHtml(), - gfmTagfilterHtml(), - gfmTaskListItemHtml() - ]); -} -var init_micromark_extension_gfm = __esm({ - "node_modules/.pnpm/micromark-extension-gfm@3.0.0/node_modules/micromark-extension-gfm/index.js"() { - init_micromark_util_combine_extensions(); - init_micromark_extension_gfm_autolink_literal(); - init_micromark_extension_gfm_footnote(); - init_micromark_extension_gfm_strikethrough(); - init_micromark_extension_gfm_table(); - init_micromark_extension_gfm_tagfilter(); - init_micromark_extension_gfm_task_list_item(); - } -}); - -// node_modules/.pnpm/remark-gfm@4.0.1/node_modules/remark-gfm/lib/index.js -function remarkGfm(options) { - const self2 = ( - /** @type {Processor} */ - this - ); - const settings = options || emptyOptions3; - const data8 = self2.data(); - const micromarkExtensions = data8.micromarkExtensions || (data8.micromarkExtensions = []); - const fromMarkdownExtensions = data8.fromMarkdownExtensions || (data8.fromMarkdownExtensions = []); - const toMarkdownExtensions = data8.toMarkdownExtensions || (data8.toMarkdownExtensions = []); - micromarkExtensions.push(gfm(settings)); - fromMarkdownExtensions.push(gfmFromMarkdown()); - toMarkdownExtensions.push(gfmToMarkdown(settings)); -} -var emptyOptions3; -var init_lib20 = __esm({ - "node_modules/.pnpm/remark-gfm@4.0.1/node_modules/remark-gfm/lib/index.js"() { - init_mdast_util_gfm(); - init_micromark_extension_gfm(); - emptyOptions3 = {}; - } -}); - -// node_modules/.pnpm/remark-gfm@4.0.1/node_modules/remark-gfm/index.js -var init_remark_gfm = __esm({ - "node_modules/.pnpm/remark-gfm@4.0.1/node_modules/remark-gfm/index.js"() { - init_lib20(); - } -}); - -// node_modules/.pnpm/micromark@4.0.2/node_modules/micromark/lib/compile.js -function compile(options) { - const settings = options || {}; - let tags = true; - const definitions = {}; - const buffers = [[]]; - const mediaStack = []; - const tightStack = []; - const defaultHandlers = { - enter: { - blockQuote: onenterblockquote, - codeFenced: onentercodefenced, - codeFencedFenceInfo: buffer2, - codeFencedFenceMeta: buffer2, - codeIndented: onentercodeindented, - codeText: onentercodetext, - content: onentercontent, - definition: onenterdefinition, - definitionDestinationString: onenterdefinitiondestinationstring, - definitionLabelString: buffer2, - definitionTitleString: buffer2, - emphasis: onenteremphasis, - htmlFlow: onenterhtmlflow, - htmlText: onenterhtml, - image: onenterimage, - label: buffer2, - link: onenterlink, - listItemMarker: onenterlistitemmarker, - listItemValue: onenterlistitemvalue, - listOrdered: onenterlistordered, - listUnordered: onenterlistunordered, - paragraph: onenterparagraph, - reference: buffer2, - resource: onenterresource, - resourceDestinationString: onenterresourcedestinationstring, - resourceTitleString: buffer2, - setextHeading: onentersetextheading, - strong: onenterstrong - }, - exit: { - atxHeading: onexitatxheading, - atxHeadingSequence: onexitatxheadingsequence, - autolinkEmail: onexitautolinkemail, - autolinkProtocol: onexitautolinkprotocol, - blockQuote: onexitblockquote, - characterEscapeValue: onexitdata, - characterReferenceMarkerHexadecimal: onexitcharacterreferencemarker, - characterReferenceMarkerNumeric: onexitcharacterreferencemarker, - characterReferenceValue: onexitcharacterreferencevalue, - codeFenced: onexitflowcode, - codeFencedFence: onexitcodefencedfence, - codeFencedFenceInfo: onexitcodefencedfenceinfo, - codeFencedFenceMeta: onresumedrop, - codeFlowValue: onexitcodeflowvalue, - codeIndented: onexitflowcode, - codeText: onexitcodetext, - codeTextData: onexitdata, - data: onexitdata, - definition: onexitdefinition, - definitionDestinationString: onexitdefinitiondestinationstring, - definitionLabelString: onexitdefinitionlabelstring, - definitionTitleString: onexitdefinitiontitlestring, - emphasis: onexitemphasis, - hardBreakEscape: onexithardbreak, - hardBreakTrailing: onexithardbreak, - htmlFlow: onexithtml, - htmlFlowData: onexitdata, - htmlText: onexithtml, - htmlTextData: onexitdata, - image: onexitmedia, - label: onexitlabel, - labelText: onexitlabeltext, - lineEnding: onexitlineending, - link: onexitmedia, - listOrdered: onexitlistordered, - listUnordered: onexitlistunordered, - paragraph: onexitparagraph, - reference: onresumedrop, - referenceString: onexitreferencestring, - resource: onresumedrop, - resourceDestinationString: onexitresourcedestinationstring, - resourceTitleString: onexitresourcetitlestring, - setextHeading: onexitsetextheading, - setextHeadingLineSequence: onexitsetextheadinglinesequence, - setextHeadingText: onexitsetextheadingtext, - strong: onexitstrong, - thematicBreak: onexitthematicbreak - } - }; - const handlers2 = ( - /** @type {NormalizedHtmlExtension} */ - combineHtmlExtensions([defaultHandlers, ...settings.htmlExtensions || []]) - ); - const data8 = { - definitions, - tightStack - }; - const context2 = { - buffer: buffer2, - encode: encode2, - getData, - lineEndingIfNeeded, - options: settings, - raw: raw2, - resume, - setData, - tag - }; - let lineEndingStyle = settings.defaultLineEnding; - return compile2; - function compile2(events) { - let index2 = -1; - let start = 0; - const listStack = []; - let head2 = []; - let body3 = []; - while (++index2 < events.length) { - if (!lineEndingStyle && (events[index2][1].type === "lineEnding" || events[index2][1].type === "lineEndingBlank")) { - lineEndingStyle = /** @type {LineEnding} */ - events[index2][2].sliceSerialize(events[index2][1]); - } - if (events[index2][1].type === "listOrdered" || events[index2][1].type === "listUnordered") { - if (events[index2][0] === "enter") { - listStack.push(index2); - } else { - prepareList(events.slice(listStack.pop(), index2)); - } - } - if (events[index2][1].type === "definition") { - if (events[index2][0] === "enter") { - body3 = push(body3, events.slice(start, index2)); - start = index2; - } else { - head2 = push(head2, events.slice(start, index2 + 1)); - start = index2 + 1; - } - } - } - head2 = push(head2, body3); - head2 = push(head2, events.slice(start)); - index2 = -1; - const result = head2; - if (handlers2.enter.null) { - handlers2.enter.null.call(context2); - } - while (++index2 < events.length) { - const handles = handlers2[result[index2][0]]; - const kind = result[index2][1].type; - const handle3 = handles[kind]; - if (hasOwnProperty2.call(handles, kind) && handle3) { - handle3.call({ - sliceSerialize: result[index2][2].sliceSerialize, - ...context2 - }, result[index2][1]); - } - } - if (handlers2.exit.null) { - handlers2.exit.null.call(context2); - } - return buffers[0].join(""); - } - function prepareList(slice) { - const length = slice.length; - let index2 = 0; - let containerBalance = 0; - let loose = false; - let atMarker; - while (++index2 < length) { - const event = slice[index2]; - if (event[1]._container) { - atMarker = void 0; - if (event[0] === "enter") { - containerBalance++; - } else { - containerBalance--; - } - } else switch (event[1].type) { - case "listItemPrefix": { - if (event[0] === "exit") { - atMarker = true; - } - break; - } - case "linePrefix": { - break; - } - case "lineEndingBlank": { - if (event[0] === "enter" && !containerBalance) { - if (atMarker) { - atMarker = void 0; - } else { - loose = true; - } - } - break; - } - default: { - atMarker = void 0; - } - } - } - slice[0][1]._loose = loose; - } - function setData(key2, value2) { - data8[key2] = value2; - } - function getData(key2) { - return data8[key2]; - } - function buffer2() { - buffers.push([]); - } - function resume() { - const buf = buffers.pop(); - return buf.join(""); - } - function tag(value2) { - if (!tags) return; - setData("lastWasTag", true); - buffers[buffers.length - 1].push(value2); - } - function raw2(value2) { - setData("lastWasTag"); - buffers[buffers.length - 1].push(value2); - } - function lineEnding2() { - raw2(lineEndingStyle || "\n"); - } - function lineEndingIfNeeded() { - const buffer3 = buffers[buffers.length - 1]; - const slice = buffer3[buffer3.length - 1]; - const previous3 = slice ? slice.charCodeAt(slice.length - 1) : null; - if (previous3 === 10 || previous3 === 13 || previous3 === null) { - return; - } - lineEnding2(); - } - function encode2(value2) { - return getData("ignoreEncode") ? value2 : encode(value2); - } - function onresumedrop() { - resume(); - } - function onenterlistordered(token) { - tightStack.push(!token._loose); - lineEndingIfNeeded(); - tag(""); - } else { - onexitlistitem(); - } - lineEndingIfNeeded(); - tag("
  • "); - setData("expectFirstItem"); - setData("lastWasTag"); - } - function onexitlistordered() { - onexitlistitem(); - tightStack.pop(); - lineEnding2(); - tag(""); - } - function onexitlistunordered() { - onexitlistitem(); - tightStack.pop(); - lineEnding2(); - tag(""); - } - function onexitlistitem() { - if (getData("lastWasTag") && !getData("slurpAllLineEndings")) { - lineEndingIfNeeded(); - } - tag("
  • "); - setData("slurpAllLineEndings"); - } - function onenterblockquote() { - tightStack.push(false); - lineEndingIfNeeded(); - tag("
    "); - } - function onexitblockquote() { - tightStack.pop(); - lineEndingIfNeeded(); - tag("
    "); - setData("slurpAllLineEndings"); - } - function onenterparagraph() { - if (!tightStack[tightStack.length - 1]) { - lineEndingIfNeeded(); - tag("

    "); - } - setData("slurpAllLineEndings"); - } - function onexitparagraph() { - if (tightStack[tightStack.length - 1]) { - setData("slurpAllLineEndings", true); - } else { - tag("

    "); - } - } - function onentercodefenced() { - lineEndingIfNeeded(); - tag("
    ");
    -      setData("slurpOneLineEnding", true);
    -    }
    -    setData("fencesCount", count2 + 1);
    -  }
    -  function onentercodeindented() {
    -    lineEndingIfNeeded();
    -    tag("
    ");
    -  }
    -  function onexitflowcode() {
    -    const count2 = getData("fencesCount");
    -    if (count2 !== void 0 && count2 < 2 && data8.tightStack.length > 0 && !getData("lastWasTag")) {
    -      lineEnding2();
    -    }
    -    if (getData("flowCodeSeenData")) {
    -      lineEndingIfNeeded();
    -    }
    -    tag("
    "); - if (count2 !== void 0 && count2 < 2) lineEndingIfNeeded(); - setData("flowCodeSeenData"); - setData("fencesCount"); - setData("slurpOneLineEnding"); - } - function onenterimage() { - mediaStack.push({ - image: true - }); - tags = void 0; - } - function onenterlink() { - mediaStack.push({}); - } - function onexitlabeltext(token) { - mediaStack[mediaStack.length - 1].labelId = this.sliceSerialize(token); - } - function onexitlabel() { - mediaStack[mediaStack.length - 1].label = resume(); - } - function onexitreferencestring(token) { - mediaStack[mediaStack.length - 1].referenceId = this.sliceSerialize(token); - } - function onenterresource() { - buffer2(); - mediaStack[mediaStack.length - 1].destination = ""; - } - function onenterresourcedestinationstring() { - buffer2(); - setData("ignoreEncode", true); - } - function onexitresourcedestinationstring() { - mediaStack[mediaStack.length - 1].destination = resume(); - setData("ignoreEncode"); - } - function onexitresourcetitlestring() { - mediaStack[mediaStack.length - 1].title = resume(); - } - function onexitmedia() { - let index2 = mediaStack.length - 1; - const media = mediaStack[index2]; - const id = media.referenceId || media.labelId; - const context3 = media.destination === void 0 ? definitions[normalizeIdentifier(id)] : media; - tags = true; - while (index2--) { - if (mediaStack[index2].image) { - tags = void 0; - break; - } - } - if (media.image) { - tag('');
-      raw2(media.label);
-      tag('"); - } else { - tag(">"); - raw2(media.label); - tag(""); - } - mediaStack.pop(); - } - function onenterdefinition() { - buffer2(); - mediaStack.push({}); - } - function onexitdefinitionlabelstring(token) { - resume(); - mediaStack[mediaStack.length - 1].labelId = this.sliceSerialize(token); - } - function onenterdefinitiondestinationstring() { - buffer2(); - setData("ignoreEncode", true); - } - function onexitdefinitiondestinationstring() { - mediaStack[mediaStack.length - 1].destination = resume(); - setData("ignoreEncode"); - } - function onexitdefinitiontitlestring() { - mediaStack[mediaStack.length - 1].title = resume(); - } - function onexitdefinition() { - const media = mediaStack[mediaStack.length - 1]; - const id = normalizeIdentifier(media.labelId); - resume(); - if (!hasOwnProperty2.call(definitions, id)) { - definitions[id] = mediaStack[mediaStack.length - 1]; - } - mediaStack.pop(); - } - function onentercontent() { - setData("slurpAllLineEndings", true); - } - function onexitatxheadingsequence(token) { - if (getData("headingRank")) return; - setData("headingRank", this.sliceSerialize(token).length); - lineEndingIfNeeded(); - tag(""); - } - function onentersetextheading() { - buffer2(); - setData("slurpAllLineEndings"); - } - function onexitsetextheadingtext() { - setData("slurpAllLineEndings", true); - } - function onexitatxheading() { - tag(""); - setData("headingRank"); - } - function onexitsetextheadinglinesequence(token) { - setData("headingRank", this.sliceSerialize(token).charCodeAt(0) === 61 ? 1 : 2); - } - function onexitsetextheading() { - const value2 = resume(); - lineEndingIfNeeded(); - tag(""); - raw2(value2); - tag(""); - setData("slurpAllLineEndings"); - setData("headingRank"); - } - function onexitdata(token) { - raw2(encode2(this.sliceSerialize(token))); - } - function onexitlineending(token) { - if (getData("slurpAllLineEndings")) { - return; - } - if (getData("slurpOneLineEnding")) { - setData("slurpOneLineEnding"); - return; - } - if (getData("inCodeText")) { - raw2(" "); - return; - } - raw2(encode2(this.sliceSerialize(token))); - } - function onexitcodeflowvalue(token) { - raw2(encode2(this.sliceSerialize(token))); - setData("flowCodeSeenData", true); - } - function onexithardbreak() { - tag("
    "); - } - function onenterhtmlflow() { - lineEndingIfNeeded(); - onenterhtml(); - } - function onexithtml() { - setData("ignoreEncode"); - } - function onenterhtml() { - if (settings.allowDangerousHtml) { - setData("ignoreEncode", true); - } - } - function onenteremphasis() { - tag(""); - } - function onenterstrong() { - tag(""); - } - function onentercodetext() { - setData("inCodeText", true); - tag(""); - } - function onexitcodetext() { - setData("inCodeText"); - tag(""); - } - function onexitemphasis() { - tag(""); - } - function onexitstrong() { - tag(""); - } - function onexitthematicbreak() { - lineEndingIfNeeded(); - tag("
    "); - } - function onexitcharacterreferencemarker(token) { - setData("characterReferenceType", token.type); - } - function onexitcharacterreferencevalue(token) { - const value2 = this.sliceSerialize(token); - const decoded = getData("characterReferenceType") ? decodeNumericCharacterReference(value2, getData("characterReferenceType") === "characterReferenceMarkerNumeric" ? 10 : 16) : decodeNamedCharacterReference(value2); - raw2(encode2( - /** @type {string} */ - decoded - )); - setData("characterReferenceType"); - } - function onexitautolinkprotocol(token) { - const uri = this.sliceSerialize(token); - tag(''); - raw2(encode2(uri)); - tag(""); - } - function onexitautolinkemail(token) { - const uri = this.sliceSerialize(token); - tag(''); - raw2(encode2(uri)); - tag(""); - } -} -var hasOwnProperty2, protocolHref, protocolSource; -var init_compile = __esm({ - "node_modules/.pnpm/micromark@4.0.2/node_modules/micromark/lib/compile.js"() { - init_index_dom(); - init_micromark_util_chunked(); - init_micromark_util_combine_extensions(); - init_micromark_util_decode_numeric_character_reference(); - init_micromark_util_encode(); - init_micromark_util_normalize_identifier(); - init_micromark_util_sanitize_uri(); - hasOwnProperty2 = {}.hasOwnProperty; - protocolHref = /^(https?|ircs?|mailto|xmpp)$/i; - protocolSource = /^https?$/i; - } -}); - -// node_modules/.pnpm/micromark@4.0.2/node_modules/micromark/lib/initialize/content.js -function initializeContent(effects) { - const contentStart = effects.attempt(this.parser.constructs.contentInitial, afterContentStartConstruct, paragraphInitial); - let previous3; - return contentStart; - function afterContentStartConstruct(code4) { - if (code4 === null) { - effects.consume(code4); - return; - } - effects.enter("lineEnding"); - effects.consume(code4); - effects.exit("lineEnding"); - return factorySpace(effects, contentStart, "linePrefix"); - } - function paragraphInitial(code4) { - effects.enter("paragraph"); - return lineStart(code4); - } - function lineStart(code4) { - const token = effects.enter("chunkText", { - contentType: "text", - previous: previous3 - }); - if (previous3) { - previous3.next = token; - } - previous3 = token; - return data8(code4); - } - function data8(code4) { - if (code4 === null) { - effects.exit("chunkText"); - effects.exit("paragraph"); - effects.consume(code4); - return; - } - if (markdownLineEnding(code4)) { - effects.consume(code4); - effects.exit("chunkText"); - return lineStart; - } - effects.consume(code4); - return data8; - } -} -var content2; -var init_content2 = __esm({ - "node_modules/.pnpm/micromark@4.0.2/node_modules/micromark/lib/initialize/content.js"() { - init_micromark_factory_space(); - init_micromark_util_character(); - content2 = { - tokenize: initializeContent - }; - } -}); - -// node_modules/.pnpm/micromark@4.0.2/node_modules/micromark/lib/initialize/document.js -function initializeDocument(effects) { - const self2 = this; - const stack = []; - let continued = 0; - let childFlow; - let childToken; - let lineStartOffset; - return start; - function start(code4) { - if (continued < stack.length) { - const item = stack[continued]; - self2.containerState = item[1]; - return effects.attempt(item[0].continuation, documentContinue, checkNewContainers)(code4); - } - return checkNewContainers(code4); - } - function documentContinue(code4) { - continued++; - if (self2.containerState._closeFlow) { - self2.containerState._closeFlow = void 0; - if (childFlow) { - closeFlow(); - } - const indexBeforeExits = self2.events.length; - let indexBeforeFlow = indexBeforeExits; - let point4; - while (indexBeforeFlow--) { - if (self2.events[indexBeforeFlow][0] === "exit" && self2.events[indexBeforeFlow][1].type === "chunkFlow") { - point4 = self2.events[indexBeforeFlow][1].end; - break; - } - } - exitContainers(continued); - let index2 = indexBeforeExits; - while (index2 < self2.events.length) { - self2.events[index2][1].end = { - ...point4 - }; - index2++; - } - splice(self2.events, indexBeforeFlow + 1, 0, self2.events.slice(indexBeforeExits)); - self2.events.length = index2; - return checkNewContainers(code4); - } - return start(code4); - } - function checkNewContainers(code4) { - if (continued === stack.length) { - if (!childFlow) { - return documentContinued(code4); - } - if (childFlow.currentConstruct && childFlow.currentConstruct.concrete) { - return flowStart(code4); - } - self2.interrupt = Boolean(childFlow.currentConstruct && !childFlow._gfmTableDynamicInterruptHack); - } - self2.containerState = {}; - return effects.check(containerConstruct, thereIsANewContainer, thereIsNoNewContainer)(code4); - } - function thereIsANewContainer(code4) { - if (childFlow) closeFlow(); - exitContainers(continued); - return documentContinued(code4); - } - function thereIsNoNewContainer(code4) { - self2.parser.lazy[self2.now().line] = continued !== stack.length; - lineStartOffset = self2.now().offset; - return flowStart(code4); - } - function documentContinued(code4) { - self2.containerState = {}; - return effects.attempt(containerConstruct, containerContinue, flowStart)(code4); - } - function containerContinue(code4) { - continued++; - stack.push([self2.currentConstruct, self2.containerState]); - return documentContinued(code4); - } - function flowStart(code4) { - if (code4 === null) { - if (childFlow) closeFlow(); - exitContainers(0); - effects.consume(code4); - return; - } - childFlow = childFlow || self2.parser.flow(self2.now()); - effects.enter("chunkFlow", { - _tokenizer: childFlow, - contentType: "flow", - previous: childToken - }); - return flowContinue(code4); - } - function flowContinue(code4) { - if (code4 === null) { - writeToChild(effects.exit("chunkFlow"), true); - exitContainers(0); - effects.consume(code4); - return; - } - if (markdownLineEnding(code4)) { - effects.consume(code4); - writeToChild(effects.exit("chunkFlow")); - continued = 0; - self2.interrupt = void 0; - return start; - } - effects.consume(code4); - return flowContinue; - } - function writeToChild(token, endOfFile) { - const stream = self2.sliceStream(token); - if (endOfFile) stream.push(null); - token.previous = childToken; - if (childToken) childToken.next = token; - childToken = token; - childFlow.defineSkip(token.start); - childFlow.write(stream); - if (self2.parser.lazy[token.start.line]) { - let index2 = childFlow.events.length; - while (index2--) { - if ( - // The token starts before the line ending… - childFlow.events[index2][1].start.offset < lineStartOffset && // …and either is not ended yet… - (!childFlow.events[index2][1].end || // …or ends after it. - childFlow.events[index2][1].end.offset > lineStartOffset) - ) { - return; - } - } - const indexBeforeExits = self2.events.length; - let indexBeforeFlow = indexBeforeExits; - let seen; - let point4; - while (indexBeforeFlow--) { - if (self2.events[indexBeforeFlow][0] === "exit" && self2.events[indexBeforeFlow][1].type === "chunkFlow") { - if (seen) { - point4 = self2.events[indexBeforeFlow][1].end; - break; - } - seen = true; - } - } - exitContainers(continued); - index2 = indexBeforeExits; - while (index2 < self2.events.length) { - self2.events[index2][1].end = { - ...point4 - }; - index2++; - } - splice(self2.events, indexBeforeFlow + 1, 0, self2.events.slice(indexBeforeExits)); - self2.events.length = index2; - } - } - function exitContainers(size) { - let index2 = stack.length; - while (index2-- > size) { - const entry = stack[index2]; - self2.containerState = entry[1]; - entry[0].exit.call(self2, effects); - } - stack.length = size; - } - function closeFlow() { - childFlow.write([null]); - childToken = void 0; - childFlow = void 0; - self2.containerState._closeFlow = void 0; - } -} -function tokenizeContainer(effects, ok3, nok) { - return factorySpace(effects, effects.attempt(this.parser.constructs.document, ok3, nok), "linePrefix", this.parser.constructs.disable.null.includes("codeIndented") ? void 0 : 4); -} -var document2, containerConstruct; -var init_document = __esm({ - "node_modules/.pnpm/micromark@4.0.2/node_modules/micromark/lib/initialize/document.js"() { - init_micromark_factory_space(); - init_micromark_util_character(); - init_micromark_util_chunked(); - document2 = { - tokenize: initializeDocument - }; - containerConstruct = { - tokenize: tokenizeContainer - }; - } -}); - -// node_modules/.pnpm/micromark@4.0.2/node_modules/micromark/lib/initialize/flow.js -function initializeFlow(effects) { - const self2 = this; - const initial2 = effects.attempt( - // Try to parse a blank line. - blankLine, - atBlankEnding, - // Try to parse initial flow (essentially, only code). - effects.attempt(this.parser.constructs.flowInitial, afterConstruct, factorySpace(effects, effects.attempt(this.parser.constructs.flow, afterConstruct, effects.attempt(content, afterConstruct)), "linePrefix")) - ); - return initial2; - function atBlankEnding(code4) { - if (code4 === null) { - effects.consume(code4); - return; - } - effects.enter("lineEndingBlank"); - effects.consume(code4); - effects.exit("lineEndingBlank"); - self2.currentConstruct = void 0; - return initial2; - } - function afterConstruct(code4) { - if (code4 === null) { - effects.consume(code4); - return; - } - effects.enter("lineEnding"); - effects.consume(code4); - effects.exit("lineEnding"); - self2.currentConstruct = void 0; - return initial2; - } -} -var flow; -var init_flow = __esm({ - "node_modules/.pnpm/micromark@4.0.2/node_modules/micromark/lib/initialize/flow.js"() { - init_micromark_core_commonmark(); - init_micromark_factory_space(); - init_micromark_util_character(); - flow = { - tokenize: initializeFlow - }; - } -}); - -// node_modules/.pnpm/micromark@4.0.2/node_modules/micromark/lib/initialize/text.js -function initializeFactory(field) { - return { - resolveAll: createResolver(field === "text" ? resolveAllLineSuffixes : void 0), - tokenize: initializeText - }; - function initializeText(effects) { - const self2 = this; - const constructs2 = this.parser.constructs[field]; - const text9 = effects.attempt(constructs2, start, notText); - return start; - function start(code4) { - return atBreak(code4) ? text9(code4) : notText(code4); - } - function notText(code4) { - if (code4 === null) { - effects.consume(code4); - return; - } - effects.enter("data"); - effects.consume(code4); - return data8; - } - function data8(code4) { - if (atBreak(code4)) { - effects.exit("data"); - return text9(code4); - } - effects.consume(code4); - return data8; - } - function atBreak(code4) { - if (code4 === null) { - return true; - } - const list5 = constructs2[code4]; - let index2 = -1; - if (list5) { - while (++index2 < list5.length) { - const item = list5[index2]; - if (!item.previous || item.previous.call(self2, self2.previous)) { - return true; - } - } - } - return false; - } - } -} -function createResolver(extraResolver) { - return resolveAllText; - function resolveAllText(events, context2) { - let index2 = -1; - let enter; - while (++index2 <= events.length) { - if (enter === void 0) { - if (events[index2] && events[index2][1].type === "data") { - enter = index2; - index2++; - } - } else if (!events[index2] || events[index2][1].type !== "data") { - if (index2 !== enter + 2) { - events[enter][1].end = events[index2 - 1][1].end; - events.splice(enter + 2, index2 - enter - 2); - index2 = enter + 2; - } - enter = void 0; - } - } - return extraResolver ? extraResolver(events, context2) : events; - } -} -function resolveAllLineSuffixes(events, context2) { - let eventIndex = 0; - while (++eventIndex <= events.length) { - if ((eventIndex === events.length || events[eventIndex][1].type === "lineEnding") && events[eventIndex - 1][1].type === "data") { - const data8 = events[eventIndex - 1][1]; - const chunks = context2.sliceStream(data8); - let index2 = chunks.length; - let bufferIndex = -1; - let size = 0; - let tabs; - while (index2--) { - const chunk = chunks[index2]; - if (typeof chunk === "string") { - bufferIndex = chunk.length; - while (chunk.charCodeAt(bufferIndex - 1) === 32) { - size++; - bufferIndex--; - } - if (bufferIndex) break; - bufferIndex = -1; - } else if (chunk === -2) { - tabs = true; - size++; - } else if (chunk === -1) { - } else { - index2++; - break; - } - } - if (context2._contentTypeTextTrailing && eventIndex === events.length) { - size = 0; - } - if (size) { - const token = { - type: eventIndex === events.length || tabs || size < 2 ? "lineSuffix" : "hardBreakTrailing", - start: { - _bufferIndex: index2 ? bufferIndex : data8.start._bufferIndex + bufferIndex, - _index: data8.start._index + index2, - line: data8.end.line, - column: data8.end.column - size, - offset: data8.end.offset - size - }, - end: { - ...data8.end - } - }; - data8.end = { - ...token.start - }; - if (data8.start.offset === data8.end.offset) { - Object.assign(data8, token); - } else { - events.splice(eventIndex, 0, ["enter", token, context2], ["exit", token, context2]); - eventIndex += 2; - } - } - eventIndex++; - } - } - return events; -} -var resolver, string, text3; -var init_text2 = __esm({ - "node_modules/.pnpm/micromark@4.0.2/node_modules/micromark/lib/initialize/text.js"() { - resolver = { - resolveAll: createResolver() - }; - string = initializeFactory("string"); - text3 = initializeFactory("text"); - } -}); - -// node_modules/.pnpm/micromark@4.0.2/node_modules/micromark/lib/constructs.js -var constructs_exports = {}; -__export(constructs_exports, { - attentionMarkers: () => attentionMarkers, - contentInitial: () => contentInitial, - disable: () => disable, - document: () => document3, - flow: () => flow2, - flowInitial: () => flowInitial, - insideSpan: () => insideSpan, - string: () => string2, - text: () => text4 -}); -var document3, contentInitial, flowInitial, flow2, string2, text4, insideSpan, attentionMarkers, disable; -var init_constructs = __esm({ - "node_modules/.pnpm/micromark@4.0.2/node_modules/micromark/lib/constructs.js"() { - init_micromark_core_commonmark(); - init_text2(); - document3 = { - [42]: list3, - [43]: list3, - [45]: list3, - [48]: list3, - [49]: list3, - [50]: list3, - [51]: list3, - [52]: list3, - [53]: list3, - [54]: list3, - [55]: list3, - [56]: list3, - [57]: list3, - [62]: blockQuote - }; - contentInitial = { - [91]: definition2 - }; - flowInitial = { - [-2]: codeIndented, - [-1]: codeIndented, - [32]: codeIndented - }; - flow2 = { - [35]: headingAtx, - [42]: thematicBreak2, - [45]: [setextUnderline, thematicBreak2], - [60]: htmlFlow, - [61]: setextUnderline, - [95]: thematicBreak2, - [96]: codeFenced, - [126]: codeFenced - }; - string2 = { - [38]: characterReference, - [92]: characterEscape - }; - text4 = { - [-5]: lineEnding, - [-4]: lineEnding, - [-3]: lineEnding, - [33]: labelStartImage, - [38]: characterReference, - [42]: attention, - [60]: [autolink, htmlText], - [91]: labelStartLink, - [92]: [hardBreakEscape, characterEscape], - [93]: labelEnd, - [95]: attention, - [96]: codeText - }; - insideSpan = { - null: [attention, resolver] - }; - attentionMarkers = { - null: [42, 95] - }; - disable = { - null: [] - }; - } -}); - -// node_modules/.pnpm/micromark@4.0.2/node_modules/micromark/lib/create-tokenizer.js -function createTokenizer(parser, initialize, from2) { - let point4 = { - _bufferIndex: -1, - _index: 0, - line: from2 && from2.line || 1, - column: from2 && from2.column || 1, - offset: from2 && from2.offset || 0 - }; - const columnStart = {}; - const resolveAllConstructs = []; - let chunks = []; - let stack = []; - let consumed = true; - const effects = { - attempt: constructFactory(onsuccessfulconstruct), - check: constructFactory(onsuccessfulcheck), - consume, - enter, - exit: exit3, - interrupt: constructFactory(onsuccessfulcheck, { - interrupt: true - }) - }; - const context2 = { - code: null, - containerState: {}, - defineSkip, - events: [], - now: now2, - parser, - previous: null, - sliceSerialize, - sliceStream, - write - }; - let state = initialize.tokenize.call(context2, effects); - let expectedCode; - if (initialize.resolveAll) { - resolveAllConstructs.push(initialize); - } - return context2; - function write(slice) { - chunks = push(chunks, slice); - main(); - if (chunks[chunks.length - 1] !== null) { - return []; - } - addResult(initialize, 0); - context2.events = resolveAll(resolveAllConstructs, context2.events, context2); - return context2.events; - } - function sliceSerialize(token, expandTabs) { - return serializeChunks(sliceStream(token), expandTabs); - } - function sliceStream(token) { - return sliceChunks(chunks, token); - } - function now2() { - const { - _bufferIndex, - _index, - line, - column, - offset - } = point4; - return { - _bufferIndex, - _index, - line, - column, - offset - }; - } - function defineSkip(value2) { - columnStart[value2.line] = value2.column; - accountForPotentialSkip(); - } - function main() { - let chunkIndex; - while (point4._index < chunks.length) { - const chunk = chunks[point4._index]; - if (typeof chunk === "string") { - chunkIndex = point4._index; - if (point4._bufferIndex < 0) { - point4._bufferIndex = 0; - } - while (point4._index === chunkIndex && point4._bufferIndex < chunk.length) { - go(chunk.charCodeAt(point4._bufferIndex)); - } - } else { - go(chunk); - } - } - } - function go(code4) { - consumed = void 0; - expectedCode = code4; - state = state(code4); - } - function consume(code4) { - if (markdownLineEnding(code4)) { - point4.line++; - point4.column = 1; - point4.offset += code4 === -3 ? 2 : 1; - accountForPotentialSkip(); - } else if (code4 !== -1) { - point4.column++; - point4.offset++; - } - if (point4._bufferIndex < 0) { - point4._index++; - } else { - point4._bufferIndex++; - if (point4._bufferIndex === // Points w/ non-negative `_bufferIndex` reference - // strings. - /** @type {string} */ - chunks[point4._index].length) { - point4._bufferIndex = -1; - point4._index++; - } - } - context2.previous = code4; - consumed = true; - } - function enter(type5, fields) { - const token = fields || {}; - token.type = type5; - token.start = now2(); - context2.events.push(["enter", token, context2]); - stack.push(token); - return token; - } - function exit3(type5) { - const token = stack.pop(); - token.end = now2(); - context2.events.push(["exit", token, context2]); - return token; - } - function onsuccessfulconstruct(construct, info) { - addResult(construct, info.from); - } - function onsuccessfulcheck(_4, info) { - info.restore(); - } - function constructFactory(onreturn, fields) { - return hook; - function hook(constructs2, returnState, bogusState) { - let listOfConstructs; - let constructIndex; - let currentConstruct; - let info; - return Array.isArray(constructs2) ? ( - /* c8 ignore next 1 */ - handleListOfConstructs(constructs2) - ) : "tokenize" in constructs2 ? ( - // Looks like a construct. - handleListOfConstructs([ - /** @type {Construct} */ - constructs2 - ]) - ) : handleMapOfConstructs(constructs2); - function handleMapOfConstructs(map7) { - return start; - function start(code4) { - const left = code4 !== null && map7[code4]; - const all3 = code4 !== null && map7.null; - const list5 = [ - // To do: add more extension tests. - /* c8 ignore next 2 */ - ...Array.isArray(left) ? left : left ? [left] : [], - ...Array.isArray(all3) ? all3 : all3 ? [all3] : [] - ]; - return handleListOfConstructs(list5)(code4); - } - } - function handleListOfConstructs(list5) { - listOfConstructs = list5; - constructIndex = 0; - if (list5.length === 0) { - return bogusState; - } - return handleConstruct(list5[constructIndex]); - } - function handleConstruct(construct) { - return start; - function start(code4) { - info = store(); - currentConstruct = construct; - if (!construct.partial) { - context2.currentConstruct = construct; - } - if (construct.name && context2.parser.constructs.disable.null.includes(construct.name)) { - return nok(code4); - } - return construct.tokenize.call( - // If we do have fields, create an object w/ `context` as its - // prototype. - // This allows a “live binding”, which is needed for `interrupt`. - fields ? Object.assign(Object.create(context2), fields) : context2, - effects, - ok3, - nok - )(code4); - } - } - function ok3(code4) { - consumed = true; - onreturn(currentConstruct, info); - return returnState; - } - function nok(code4) { - consumed = true; - info.restore(); - if (++constructIndex < listOfConstructs.length) { - return handleConstruct(listOfConstructs[constructIndex]); - } - return bogusState; - } - } - } - function addResult(construct, from3) { - if (construct.resolveAll && !resolveAllConstructs.includes(construct)) { - resolveAllConstructs.push(construct); - } - if (construct.resolve) { - splice(context2.events, from3, context2.events.length - from3, construct.resolve(context2.events.slice(from3), context2)); - } - if (construct.resolveTo) { - context2.events = construct.resolveTo(context2.events, context2); - } - } - function store() { - const startPoint = now2(); - const startPrevious = context2.previous; - const startCurrentConstruct = context2.currentConstruct; - const startEventsIndex = context2.events.length; - const startStack = Array.from(stack); - return { - from: startEventsIndex, - restore - }; - function restore() { - point4 = startPoint; - context2.previous = startPrevious; - context2.currentConstruct = startCurrentConstruct; - context2.events.length = startEventsIndex; - stack = startStack; - accountForPotentialSkip(); - } - } - function accountForPotentialSkip() { - if (point4.line in columnStart && point4.column < 2) { - point4.column = columnStart[point4.line]; - point4.offset += columnStart[point4.line] - 1; - } - } -} -function sliceChunks(chunks, token) { - const startIndex = token.start._index; - const startBufferIndex = token.start._bufferIndex; - const endIndex = token.end._index; - const endBufferIndex = token.end._bufferIndex; - let view; - if (startIndex === endIndex) { - view = [chunks[startIndex].slice(startBufferIndex, endBufferIndex)]; - } else { - view = chunks.slice(startIndex, endIndex); - if (startBufferIndex > -1) { - const head2 = view[0]; - if (typeof head2 === "string") { - view[0] = head2.slice(startBufferIndex); - } else { - view.shift(); - } - } - if (endBufferIndex > 0) { - view.push(chunks[endIndex].slice(0, endBufferIndex)); - } - } - return view; -} -function serializeChunks(chunks, expandTabs) { - let index2 = -1; - const result = []; - let atTab; - while (++index2 < chunks.length) { - const chunk = chunks[index2]; - let value2; - if (typeof chunk === "string") { - value2 = chunk; - } else switch (chunk) { - case -5: { - value2 = "\r"; - break; - } - case -4: { - value2 = "\n"; - break; - } - case -3: { - value2 = "\r\n"; - break; - } - case -2: { - value2 = expandTabs ? " " : " "; - break; - } - case -1: { - if (!expandTabs && atTab) continue; - value2 = " "; - break; - } - default: { - value2 = String.fromCharCode(chunk); - } - } - atTab = chunk === -2; - result.push(value2); - } - return result.join(""); -} -var init_create_tokenizer = __esm({ - "node_modules/.pnpm/micromark@4.0.2/node_modules/micromark/lib/create-tokenizer.js"() { - init_micromark_util_character(); - init_micromark_util_chunked(); - init_micromark_util_resolve_all(); - } -}); - -// node_modules/.pnpm/micromark@4.0.2/node_modules/micromark/lib/parse.js -function parse4(options) { - const settings = options || {}; - const constructs2 = ( - /** @type {FullNormalizedExtension} */ - combineExtensions([constructs_exports, ...settings.extensions || []]) - ); - const parser = { - constructs: constructs2, - content: create7(content2), - defined: [], - document: create7(document2), - flow: create7(flow), - lazy: {}, - string: create7(string), - text: create7(text3) - }; - return parser; - function create7(initial2) { - return creator; - function creator(from2) { - return createTokenizer(parser, initial2, from2); - } - } -} -var init_parse2 = __esm({ - "node_modules/.pnpm/micromark@4.0.2/node_modules/micromark/lib/parse.js"() { - init_micromark_util_combine_extensions(); - init_content2(); - init_document(); - init_flow(); - init_text2(); - init_constructs(); - init_create_tokenizer(); - } -}); - -// node_modules/.pnpm/micromark@4.0.2/node_modules/micromark/lib/postprocess.js -function postprocess(events) { - while (!subtokenize(events)) { - } - return events; -} -var init_postprocess = __esm({ - "node_modules/.pnpm/micromark@4.0.2/node_modules/micromark/lib/postprocess.js"() { - init_micromark_util_subtokenize(); - } -}); - -// node_modules/.pnpm/micromark@4.0.2/node_modules/micromark/lib/preprocess.js -function preprocess() { - let column = 1; - let buffer2 = ""; - let start = true; - let atCarriageReturn; - return preprocessor; - function preprocessor(value2, encoding, end3) { - const chunks = []; - let match2; - let next2; - let startPosition; - let endPosition; - let code4; - value2 = buffer2 + (typeof value2 === "string" ? value2.toString() : new TextDecoder(encoding || void 0).decode(value2)); - startPosition = 0; - buffer2 = ""; - if (start) { - if (value2.charCodeAt(0) === 65279) { - startPosition++; - } - start = void 0; - } - while (startPosition < value2.length) { - search.lastIndex = startPosition; - match2 = search.exec(value2); - endPosition = match2 && match2.index !== void 0 ? match2.index : value2.length; - code4 = value2.charCodeAt(endPosition); - if (!match2) { - buffer2 = value2.slice(startPosition); - break; - } - if (code4 === 10 && startPosition === endPosition && atCarriageReturn) { - chunks.push(-3); - atCarriageReturn = void 0; - } else { - if (atCarriageReturn) { - chunks.push(-5); - atCarriageReturn = void 0; - } - if (startPosition < endPosition) { - chunks.push(value2.slice(startPosition, endPosition)); - column += endPosition - startPosition; - } - switch (code4) { - case 0: { - chunks.push(65533); - column++; - break; - } - case 9: { - next2 = Math.ceil(column / 4) * 4; - chunks.push(-2); - while (column++ < next2) chunks.push(-1); - break; - } - case 10: { - chunks.push(-4); - column = 1; - break; - } - default: { - atCarriageReturn = true; - column = 1; - } - } - } - startPosition = endPosition + 1; - } - if (end3) { - if (atCarriageReturn) chunks.push(-5); - if (buffer2) chunks.push(buffer2); - chunks.push(null); - } - return chunks; - } -} -var search; -var init_preprocess = __esm({ - "node_modules/.pnpm/micromark@4.0.2/node_modules/micromark/lib/preprocess.js"() { - search = /[\0\t\n\r]/g; - } -}); - -// node_modules/.pnpm/micromark@4.0.2/node_modules/micromark/index.js -function micromark(value2, encoding, options) { - if (typeof encoding !== "string") { - options = encoding; - encoding = void 0; - } - return compile(options)(postprocess(parse4(options).document().write(preprocess()(value2, encoding, true)))); -} -var init_micromark = __esm({ - "node_modules/.pnpm/micromark@4.0.2/node_modules/micromark/index.js"() { - init_compile(); - init_parse2(); - init_postprocess(); - init_preprocess(); - init_compile(); - init_parse2(); - init_postprocess(); - init_preprocess(); - } -}); - -// node_modules/.pnpm/mdast-util-from-markdown@2.0.3/node_modules/mdast-util-from-markdown/lib/index.js -function fromMarkdown(value2, encoding, options) { - if (encoding && typeof encoding === "object") { - options = encoding; - encoding = void 0; - } - return compiler(options)(postprocess(parse4(options).document().write(preprocess()(value2, encoding, true)))); -} -function compiler(options) { - const config3 = { - transforms: [], - canContainEols: ["emphasis", "fragment", "heading", "paragraph", "strong"], - enter: { - autolink: opener2(link3), - autolinkProtocol: onenterdata, - autolinkEmail: onenterdata, - atxHeading: opener2(heading3), - blockQuote: opener2(blockQuote2), - characterEscape: onenterdata, - characterReference: onenterdata, - codeFenced: opener2(codeFlow), - codeFencedFenceInfo: buffer2, - codeFencedFenceMeta: buffer2, - codeIndented: opener2(codeFlow, buffer2), - codeText: opener2(codeText2, buffer2), - codeTextData: onenterdata, - data: onenterdata, - codeFlowValue: onenterdata, - definition: opener2(definition3), - definitionDestinationString: buffer2, - definitionLabelString: buffer2, - definitionTitleString: buffer2, - emphasis: opener2(emphasis3), - hardBreakEscape: opener2(hardBreak3), - hardBreakTrailing: opener2(hardBreak3), - htmlFlow: opener2(html7, buffer2), - htmlFlowData: onenterdata, - htmlText: opener2(html7, buffer2), - htmlTextData: onenterdata, - image: opener2(image3), - label: buffer2, - link: opener2(link3), - listItem: opener2(listItem3), - listItemValue: onenterlistitemvalue, - listOrdered: opener2(list5, onenterlistordered), - listUnordered: opener2(list5), - paragraph: opener2(paragraph3), - reference: onenterreference, - referenceString: buffer2, - resourceDestinationString: buffer2, - resourceTitleString: buffer2, - setextHeading: opener2(heading3), - strong: opener2(strong3), - thematicBreak: opener2(thematicBreak4) - }, - exit: { - atxHeading: closer(), - atxHeadingSequence: onexitatxheadingsequence, - autolink: closer(), - autolinkEmail: onexitautolinkemail, - autolinkProtocol: onexitautolinkprotocol, - blockQuote: closer(), - characterEscapeValue: onexitdata, - characterReferenceMarkerHexadecimal: onexitcharacterreferencemarker, - characterReferenceMarkerNumeric: onexitcharacterreferencemarker, - characterReferenceValue: onexitcharacterreferencevalue, - characterReference: onexitcharacterreference, - codeFenced: closer(onexitcodefenced), - codeFencedFence: onexitcodefencedfence, - codeFencedFenceInfo: onexitcodefencedfenceinfo, - codeFencedFenceMeta: onexitcodefencedfencemeta, - codeFlowValue: onexitdata, - codeIndented: closer(onexitcodeindented), - codeText: closer(onexitcodetext), - codeTextData: onexitdata, - data: onexitdata, - definition: closer(), - definitionDestinationString: onexitdefinitiondestinationstring, - definitionLabelString: onexitdefinitionlabelstring, - definitionTitleString: onexitdefinitiontitlestring, - emphasis: closer(), - hardBreakEscape: closer(onexithardbreak), - hardBreakTrailing: closer(onexithardbreak), - htmlFlow: closer(onexithtmlflow), - htmlFlowData: onexitdata, - htmlText: closer(onexithtmltext), - htmlTextData: onexitdata, - image: closer(onexitimage), - label: onexitlabel, - labelText: onexitlabeltext, - lineEnding: onexitlineending, - link: closer(onexitlink), - listItem: closer(), - listOrdered: closer(), - listUnordered: closer(), - paragraph: closer(), - referenceString: onexitreferencestring, - resourceDestinationString: onexitresourcedestinationstring, - resourceTitleString: onexitresourcetitlestring, - resource: onexitresource, - setextHeading: closer(onexitsetextheading), - setextHeadingLineSequence: onexitsetextheadinglinesequence, - setextHeadingText: onexitsetextheadingtext, - strong: closer(), - thematicBreak: closer() - } - }; - configure2(config3, (options || {}).mdastExtensions || []); - const data8 = {}; - return compile2; - function compile2(events) { - let tree = { - type: "root", - children: [] - }; - const context2 = { - stack: [tree], - tokenStack: [], - config: config3, - enter, - exit: exit3, - buffer: buffer2, - resume, - data: data8 - }; - const listStack = []; - let index2 = -1; - while (++index2 < events.length) { - if (events[index2][1].type === "listOrdered" || events[index2][1].type === "listUnordered") { - if (events[index2][0] === "enter") { - listStack.push(index2); - } else { - const tail = listStack.pop(); - index2 = prepareList(events, tail, index2); - } - } - } - index2 = -1; - while (++index2 < events.length) { - const handler2 = config3[events[index2][0]]; - if (own5.call(handler2, events[index2][1].type)) { - handler2[events[index2][1].type].call(Object.assign({ - sliceSerialize: events[index2][2].sliceSerialize - }, context2), events[index2][1]); - } - } - if (context2.tokenStack.length > 0) { - const tail = context2.tokenStack[context2.tokenStack.length - 1]; - const handler2 = tail[1] || defaultOnError; - handler2.call(context2, void 0, tail[0]); - } - tree.position = { - start: point2(events.length > 0 ? events[0][1].start : { - line: 1, - column: 1, - offset: 0 - }), - end: point2(events.length > 0 ? events[events.length - 2][1].end : { - line: 1, - column: 1, - offset: 0 - }) - }; - index2 = -1; - while (++index2 < config3.transforms.length) { - tree = config3.transforms[index2](tree) || tree; - } - return tree; - } - function prepareList(events, start, length) { - let index2 = start - 1; - let containerBalance = -1; - let listSpread = false; - let listItem4; - let lineIndex; - let firstBlankLineIndex; - let atMarker; - while (++index2 <= length) { - const event = events[index2]; - switch (event[1].type) { - case "listUnordered": - case "listOrdered": - case "blockQuote": { - if (event[0] === "enter") { - containerBalance++; - } else { - containerBalance--; - } - atMarker = void 0; - break; - } - case "lineEndingBlank": { - if (event[0] === "enter") { - if (listItem4 && !atMarker && !containerBalance && !firstBlankLineIndex) { - firstBlankLineIndex = index2; - } - atMarker = void 0; - } - break; - } - case "linePrefix": - case "listItemValue": - case "listItemMarker": - case "listItemPrefix": - case "listItemPrefixWhitespace": { - break; - } - default: { - atMarker = void 0; - } - } - if (!containerBalance && event[0] === "enter" && event[1].type === "listItemPrefix" || containerBalance === -1 && event[0] === "exit" && (event[1].type === "listUnordered" || event[1].type === "listOrdered")) { - if (listItem4) { - let tailIndex = index2; - lineIndex = void 0; - while (tailIndex--) { - const tailEvent = events[tailIndex]; - if (tailEvent[1].type === "lineEnding" || tailEvent[1].type === "lineEndingBlank") { - if (tailEvent[0] === "exit") continue; - if (lineIndex) { - events[lineIndex][1].type = "lineEndingBlank"; - listSpread = true; - } - tailEvent[1].type = "lineEnding"; - lineIndex = tailIndex; - } else if (tailEvent[1].type === "linePrefix" || tailEvent[1].type === "blockQuotePrefix" || tailEvent[1].type === "blockQuotePrefixWhitespace" || tailEvent[1].type === "blockQuoteMarker" || tailEvent[1].type === "listItemIndent") { - } else { - break; - } - } - if (firstBlankLineIndex && (!lineIndex || firstBlankLineIndex < lineIndex)) { - listItem4._spread = true; - } - listItem4.end = Object.assign({}, lineIndex ? events[lineIndex][1].start : event[1].end); - events.splice(lineIndex || index2, 0, ["exit", listItem4, event[2]]); - index2++; - length++; - } - if (event[1].type === "listItemPrefix") { - const item = { - type: "listItem", - _spread: false, - start: Object.assign({}, event[1].start), - // @ts-expect-error: we’ll add `end` in a second. - end: void 0 - }; - listItem4 = item; - events.splice(index2, 0, ["enter", item, event[2]]); - index2++; - length++; - firstBlankLineIndex = void 0; - atMarker = true; - } - } - } - events[start][1]._spread = listSpread; - return length; - } - function opener2(create7, and) { - return open; - function open(token) { - enter.call(this, create7(token), token); - if (and) and.call(this, token); - } - } - function buffer2() { - this.stack.push({ - type: "fragment", - children: [] - }); - } - function enter(node2, token, errorHandler) { - const parent = this.stack[this.stack.length - 1]; - const siblings2 = parent.children; - siblings2.push(node2); - this.stack.push(node2); - this.tokenStack.push([token, errorHandler || void 0]); - node2.position = { - start: point2(token.start), - // @ts-expect-error: `end` will be patched later. - end: void 0 - }; - } - function closer(and) { - return close7; - function close7(token) { - if (and) and.call(this, token); - exit3.call(this, token); - } - } - function exit3(token, onExitError) { - const node2 = this.stack.pop(); - const open = this.tokenStack.pop(); - if (!open) { - throw new Error("Cannot close `" + token.type + "` (" + stringifyPosition({ - start: token.start, - end: token.end - }) + "): it\u2019s not open"); - } else if (open[0].type !== token.type) { - if (onExitError) { - onExitError.call(this, token, open[0]); - } else { - const handler2 = open[1] || defaultOnError; - handler2.call(this, token, open[0]); - } - } - node2.position.end = point2(token.end); - } - function resume() { - return toString(this.stack.pop()); - } - function onenterlistordered() { - this.data.expectingFirstListItemValue = true; - } - function onenterlistitemvalue(token) { - if (this.data.expectingFirstListItemValue) { - const ancestor = this.stack[this.stack.length - 2]; - ancestor.start = Number.parseInt(this.sliceSerialize(token), 10); - this.data.expectingFirstListItemValue = void 0; - } - } - function onexitcodefencedfenceinfo() { - const data9 = this.resume(); - const node2 = this.stack[this.stack.length - 1]; - node2.lang = data9; - } - function onexitcodefencedfencemeta() { - const data9 = this.resume(); - const node2 = this.stack[this.stack.length - 1]; - node2.meta = data9; - } - function onexitcodefencedfence() { - if (this.data.flowCodeInside) return; - this.buffer(); - this.data.flowCodeInside = true; - } - function onexitcodefenced() { - const data9 = this.resume(); - const node2 = this.stack[this.stack.length - 1]; - node2.value = data9.replace(/^(\r?\n|\r)|(\r?\n|\r)$/g, ""); - this.data.flowCodeInside = void 0; - } - function onexitcodeindented() { - const data9 = this.resume(); - const node2 = this.stack[this.stack.length - 1]; - node2.value = data9.replace(/(\r?\n|\r)$/g, ""); - } - function onexitdefinitionlabelstring(token) { - const label = this.resume(); - const node2 = this.stack[this.stack.length - 1]; - node2.label = label; - node2.identifier = normalizeIdentifier(this.sliceSerialize(token)).toLowerCase(); - } - function onexitdefinitiontitlestring() { - const data9 = this.resume(); - const node2 = this.stack[this.stack.length - 1]; - node2.title = data9; - } - function onexitdefinitiondestinationstring() { - const data9 = this.resume(); - const node2 = this.stack[this.stack.length - 1]; - node2.url = data9; - } - function onexitatxheadingsequence(token) { - const node2 = this.stack[this.stack.length - 1]; - if (!node2.depth) { - const depth = this.sliceSerialize(token).length; - node2.depth = depth; - } - } - function onexitsetextheadingtext() { - this.data.setextHeadingSlurpLineEnding = true; - } - function onexitsetextheadinglinesequence(token) { - const node2 = this.stack[this.stack.length - 1]; - node2.depth = this.sliceSerialize(token).codePointAt(0) === 61 ? 1 : 2; - } - function onexitsetextheading() { - this.data.setextHeadingSlurpLineEnding = void 0; - } - function onenterdata(token) { - const node2 = this.stack[this.stack.length - 1]; - const siblings2 = node2.children; - let tail = siblings2[siblings2.length - 1]; - if (!tail || tail.type !== "text") { - tail = text9(); - tail.position = { - start: point2(token.start), - // @ts-expect-error: we’ll add `end` later. - end: void 0 - }; - siblings2.push(tail); - } - this.stack.push(tail); - } - function onexitdata(token) { - const tail = this.stack.pop(); - tail.value += this.sliceSerialize(token); - tail.position.end = point2(token.end); - } - function onexitlineending(token) { - const context2 = this.stack[this.stack.length - 1]; - if (this.data.atHardBreak) { - const tail = context2.children[context2.children.length - 1]; - tail.position.end = point2(token.end); - this.data.atHardBreak = void 0; - return; - } - if (!this.data.setextHeadingSlurpLineEnding && config3.canContainEols.includes(context2.type)) { - onenterdata.call(this, token); - onexitdata.call(this, token); - } - } - function onexithardbreak() { - this.data.atHardBreak = true; - } - function onexithtmlflow() { - const data9 = this.resume(); - const node2 = this.stack[this.stack.length - 1]; - node2.value = data9; - } - function onexithtmltext() { - const data9 = this.resume(); - const node2 = this.stack[this.stack.length - 1]; - node2.value = data9; - } - function onexitcodetext() { - const data9 = this.resume(); - const node2 = this.stack[this.stack.length - 1]; - node2.value = data9; - } - function onexitlink() { - const node2 = this.stack[this.stack.length - 1]; - if (this.data.inReference) { - const referenceType = this.data.referenceType || "shortcut"; - node2.type += "Reference"; - node2.referenceType = referenceType; - delete node2.url; - delete node2.title; - } else { - delete node2.identifier; - delete node2.label; - } - this.data.referenceType = void 0; - } - function onexitimage() { - const node2 = this.stack[this.stack.length - 1]; - if (this.data.inReference) { - const referenceType = this.data.referenceType || "shortcut"; - node2.type += "Reference"; - node2.referenceType = referenceType; - delete node2.url; - delete node2.title; - } else { - delete node2.identifier; - delete node2.label; - } - this.data.referenceType = void 0; - } - function onexitlabeltext(token) { - const string3 = this.sliceSerialize(token); - const ancestor = this.stack[this.stack.length - 2]; - ancestor.label = decodeString(string3); - ancestor.identifier = normalizeIdentifier(string3).toLowerCase(); - } - function onexitlabel() { - const fragment = this.stack[this.stack.length - 1]; - const value2 = this.resume(); - const node2 = this.stack[this.stack.length - 1]; - this.data.inReference = true; - if (node2.type === "link") { - const children2 = fragment.children; - node2.children = children2; - } else { - node2.alt = value2; - } - } - function onexitresourcedestinationstring() { - const data9 = this.resume(); - const node2 = this.stack[this.stack.length - 1]; - node2.url = data9; - } - function onexitresourcetitlestring() { - const data9 = this.resume(); - const node2 = this.stack[this.stack.length - 1]; - node2.title = data9; - } - function onexitresource() { - this.data.inReference = void 0; - } - function onenterreference() { - this.data.referenceType = "collapsed"; - } - function onexitreferencestring(token) { - const label = this.resume(); - const node2 = this.stack[this.stack.length - 1]; - node2.label = label; - node2.identifier = normalizeIdentifier(this.sliceSerialize(token)).toLowerCase(); - this.data.referenceType = "full"; - } - function onexitcharacterreferencemarker(token) { - this.data.characterReferenceType = token.type; - } - function onexitcharacterreferencevalue(token) { - const data9 = this.sliceSerialize(token); - const type5 = this.data.characterReferenceType; - let value2; - if (type5) { - value2 = decodeNumericCharacterReference(data9, type5 === "characterReferenceMarkerNumeric" ? 10 : 16); - this.data.characterReferenceType = void 0; - } else { - const result = decodeNamedCharacterReference(data9); - value2 = result; - } - const tail = this.stack[this.stack.length - 1]; - tail.value += value2; - } - function onexitcharacterreference(token) { - const tail = this.stack.pop(); - tail.position.end = point2(token.end); - } - function onexitautolinkprotocol(token) { - onexitdata.call(this, token); - const node2 = this.stack[this.stack.length - 1]; - node2.url = this.sliceSerialize(token); - } - function onexitautolinkemail(token) { - onexitdata.call(this, token); - const node2 = this.stack[this.stack.length - 1]; - node2.url = "mailto:" + this.sliceSerialize(token); - } - function blockQuote2() { - return { - type: "blockquote", - children: [] - }; - } - function codeFlow() { - return { - type: "code", - lang: null, - meta: null, - value: "" - }; - } - function codeText2() { - return { - type: "inlineCode", - value: "" - }; - } - function definition3() { - return { - type: "definition", - identifier: "", - label: null, - title: null, - url: "" - }; - } - function emphasis3() { - return { - type: "emphasis", - children: [] - }; - } - function heading3() { - return { - type: "heading", - // @ts-expect-error `depth` will be set later. - depth: 0, - children: [] - }; - } - function hardBreak3() { - return { - type: "break" - }; - } - function html7() { - return { - type: "html", - value: "" - }; - } - function image3() { - return { - type: "image", - title: null, - url: "", - alt: null - }; - } - function link3() { - return { - type: "link", - title: null, - url: "", - children: [] - }; - } - function list5(token) { - return { - type: "list", - ordered: token.type === "listOrdered", - start: null, - spread: token._spread, - children: [] - }; - } - function listItem3(token) { - return { - type: "listItem", - spread: token._spread, - checked: null, - children: [] - }; - } - function paragraph3() { - return { - type: "paragraph", - children: [] - }; - } - function strong3() { - return { - type: "strong", - children: [] - }; - } - function text9() { - return { - type: "text", - value: "" - }; - } - function thematicBreak4() { - return { - type: "thematicBreak" - }; - } -} -function point2(d5) { - return { - line: d5.line, - column: d5.column, - offset: d5.offset - }; -} -function configure2(combined, extensions) { - let index2 = -1; - while (++index2 < extensions.length) { - const value2 = extensions[index2]; - if (Array.isArray(value2)) { - configure2(combined, value2); - } else { - extension(combined, value2); - } - } -} -function extension(combined, extension2) { - let key2; - for (key2 in extension2) { - if (own5.call(extension2, key2)) { - switch (key2) { - case "canContainEols": { - const right = extension2[key2]; - if (right) { - combined[key2].push(...right); - } - break; - } - case "transforms": { - const right = extension2[key2]; - if (right) { - combined[key2].push(...right); - } - break; - } - case "enter": - case "exit": { - const right = extension2[key2]; - if (right) { - Object.assign(combined[key2], right); - } - break; - } - } - } - } -} -function defaultOnError(left, right) { - if (left) { - throw new Error("Cannot close `" + left.type + "` (" + stringifyPosition({ - start: left.start, - end: left.end - }) + "): a different token (`" + right.type + "`, " + stringifyPosition({ - start: right.start, - end: right.end - }) + ") is open"); - } else { - throw new Error("Cannot close document, a token (`" + right.type + "`, " + stringifyPosition({ - start: right.start, - end: right.end - }) + ") is still open"); - } -} -var own5; -var init_lib21 = __esm({ - "node_modules/.pnpm/mdast-util-from-markdown@2.0.3/node_modules/mdast-util-from-markdown/lib/index.js"() { - init_mdast_util_to_string(); - init_micromark(); - init_micromark_util_decode_numeric_character_reference(); - init_micromark_util_decode_string(); - init_micromark_util_normalize_identifier(); - init_index_dom(); - init_unist_util_stringify_position(); - own5 = {}.hasOwnProperty; - } -}); - -// node_modules/.pnpm/mdast-util-from-markdown@2.0.3/node_modules/mdast-util-from-markdown/index.js -var init_mdast_util_from_markdown = __esm({ - "node_modules/.pnpm/mdast-util-from-markdown@2.0.3/node_modules/mdast-util-from-markdown/index.js"() { - init_lib21(); - } -}); - -// node_modules/.pnpm/remark-parse@11.0.0/node_modules/remark-parse/lib/index.js -function remarkParse(options) { - const self2 = this; - self2.parser = parser; - function parser(doc) { - return fromMarkdown(doc, { - ...self2.data("settings"), - ...options, - // Note: these options are not in the readme. - // The goal is for them to be set by plugins on `data` instead of being - // passed by users. - extensions: self2.data("micromarkExtensions") || [], - mdastExtensions: self2.data("fromMarkdownExtensions") || [] - }); - } -} -var init_lib22 = __esm({ - "node_modules/.pnpm/remark-parse@11.0.0/node_modules/remark-parse/lib/index.js"() { - init_mdast_util_from_markdown(); - } -}); - -// node_modules/.pnpm/remark-parse@11.0.0/node_modules/remark-parse/index.js -var init_remark_parse = __esm({ - "node_modules/.pnpm/remark-parse@11.0.0/node_modules/remark-parse/index.js"() { - init_lib22(); - } -}); - -// node_modules/.pnpm/format@0.2.2/node_modules/format/format.js -var require_format = __commonJS({ - "node_modules/.pnpm/format@0.2.2/node_modules/format/format.js"(exports, module) { - ; - (function() { - var namespace2; - if (typeof module !== "undefined") { - namespace2 = module.exports = format2; - } else { - namespace2 = (function() { - return this || (1, eval)("this"); - })(); - } - namespace2.format = format2; - namespace2.vsprintf = vsprintf; - if (typeof console !== "undefined" && typeof console.log === "function") { - namespace2.printf = printf; - } - function printf() { - console.log(format2.apply(null, arguments)); - } - function vsprintf(fmt, replacements) { - return format2.apply(null, [fmt].concat(replacements)); - } - function format2(fmt) { - var argIndex = 1, args = [].slice.call(arguments), i11 = 0, n12 = fmt.length, result = "", c11, escaped = false, arg, tmp, leadingZero = false, precision, nextArg = function() { - return args[argIndex++]; - }, slurpNumber = function() { - var digits = ""; - while (/\d/.test(fmt[i11])) { - digits += fmt[i11++]; - c11 = fmt[i11]; - } - return digits.length > 0 ? parseInt(digits) : null; - }; - for (; i11 < n12; ++i11) { - c11 = fmt[i11]; - if (escaped) { - escaped = false; - if (c11 == ".") { - leadingZero = false; - c11 = fmt[++i11]; - } else if (c11 == "0" && fmt[i11 + 1] == ".") { - leadingZero = true; - i11 += 2; - c11 = fmt[i11]; - } else { - leadingZero = true; - } - precision = slurpNumber(); - switch (c11) { - case "b": - result += parseInt(nextArg(), 10).toString(2); - break; - case "c": - arg = nextArg(); - if (typeof arg === "string" || arg instanceof String) - result += arg; - else - result += String.fromCharCode(parseInt(arg, 10)); - break; - case "d": - result += parseInt(nextArg(), 10); - break; - case "f": - tmp = String(parseFloat(nextArg()).toFixed(precision || 6)); - result += leadingZero ? tmp : tmp.replace(/^0/, ""); - break; - case "j": - result += JSON.stringify(nextArg()); - break; - case "o": - result += "0" + parseInt(nextArg(), 10).toString(8); - break; - case "s": - result += nextArg(); - break; - case "x": - result += "0x" + parseInt(nextArg(), 10).toString(16); - break; - case "X": - result += "0x" + parseInt(nextArg(), 10).toString(16).toUpperCase(); - break; - default: - result += c11; - break; - } - } else if (c11 === "%") { - escaped = true; - } else { - result += c11; - } - } - return result; - } - })(); - } -}); - -// node_modules/.pnpm/fault@2.0.1/node_modules/fault/index.js -function create5(Constructor) { - FormattedError.displayName = Constructor.displayName || Constructor.name; - return FormattedError; - function FormattedError(format2, ...values) { - const reason = format2 ? (0, import_format2.default)(format2, ...values) : format2; - return new Constructor(reason); - } -} -var import_format2, fault; -var init_fault = __esm({ - "node_modules/.pnpm/fault@2.0.1/node_modules/fault/index.js"() { - import_format2 = __toESM(require_format(), 1); - fault = Object.assign(create5(Error), { - eval: create5(EvalError), - range: create5(RangeError), - reference: create5(ReferenceError), - syntax: create5(SyntaxError), - type: create5(TypeError), - uri: create5(URIError) - }); - } -}); - -// node_modules/.pnpm/micromark-extension-frontmatter@2.0.0/node_modules/micromark-extension-frontmatter/lib/to-matters.js -function toMatters(options) { - const result = []; - let index2 = -1; - const presetsOrMatters = Array.isArray(options) ? options : options ? [options] : ["yaml"]; - while (++index2 < presetsOrMatters.length) { - result[index2] = matter(presetsOrMatters[index2]); - } - return result; -} -function matter(option2) { - let result = option2; - if (typeof result === "string") { - if (!own6.call(markers, result)) { - throw fault("Missing matter definition for `%s`", result); - } - result = { - type: result, - marker: markers[result] - }; - } else if (typeof result !== "object") { - throw fault("Expected matter to be an object, not `%j`", result); - } - if (!own6.call(result, "type")) { - throw fault("Missing `type` in matter `%j`", result); - } - if (!own6.call(result, "fence") && !own6.call(result, "marker")) { - throw fault("Missing `marker` or `fence` in matter `%j`", result); - } - return result; -} -var own6, markers; -var init_to_matters = __esm({ - "node_modules/.pnpm/micromark-extension-frontmatter@2.0.0/node_modules/micromark-extension-frontmatter/lib/to-matters.js"() { - init_fault(); - own6 = {}.hasOwnProperty; - markers = { - yaml: "-", - toml: "+" - }; - } -}); - -// node_modules/.pnpm/micromark-extension-frontmatter@2.0.0/node_modules/micromark-extension-frontmatter/lib/syntax.js -function frontmatter(options) { - const matters = toMatters(options); - const flow3 = {}; - let index2 = -1; - while (++index2 < matters.length) { - const matter2 = matters[index2]; - const code4 = fence(matter2, "open").charCodeAt(0); - const construct = createConstruct(matter2); - const existing = flow3[code4]; - if (Array.isArray(existing)) { - existing.push(construct); - } else { - flow3[code4] = [construct]; - } - } - return { - flow: flow3 - }; -} -function createConstruct(matter2) { - const anywhere = matter2.anywhere; - const frontmatterType = ( - /** @type {TokenType} */ - matter2.type - ); - const fenceType = ( - /** @type {TokenType} */ - frontmatterType + "Fence" - ); - const sequenceType = ( - /** @type {TokenType} */ - fenceType + "Sequence" - ); - const valueType = ( - /** @type {TokenType} */ - frontmatterType + "Value" - ); - const closingFenceConstruct = { - tokenize: tokenizeClosingFence, - partial: true - }; - let buffer2; - let bufferIndex = 0; - return { - tokenize: tokenizeFrontmatter, - concrete: true - }; - function tokenizeFrontmatter(effects, ok3, nok) { - const self2 = this; - return start; - function start(code4) { - const position3 = self2.now(); - if ( - // Indent not allowed. - position3.column === 1 && // Normally, only allowed in first line. - (position3.line === 1 || anywhere) - ) { - buffer2 = fence(matter2, "open"); - bufferIndex = 0; - if (code4 === buffer2.charCodeAt(bufferIndex)) { - effects.enter(frontmatterType); - effects.enter(fenceType); - effects.enter(sequenceType); - return openSequence(code4); - } - } - return nok(code4); - } - function openSequence(code4) { - if (bufferIndex === buffer2.length) { - effects.exit(sequenceType); - if (markdownSpace(code4)) { - effects.enter("whitespace"); - return openSequenceWhitespace(code4); - } - return openAfter(code4); - } - if (code4 === buffer2.charCodeAt(bufferIndex++)) { - effects.consume(code4); - return openSequence; - } - return nok(code4); - } - function openSequenceWhitespace(code4) { - if (markdownSpace(code4)) { - effects.consume(code4); - return openSequenceWhitespace; - } - effects.exit("whitespace"); - return openAfter(code4); - } - function openAfter(code4) { - if (markdownLineEnding(code4)) { - effects.exit(fenceType); - effects.enter("lineEnding"); - effects.consume(code4); - effects.exit("lineEnding"); - buffer2 = fence(matter2, "close"); - bufferIndex = 0; - return effects.attempt(closingFenceConstruct, after, contentStart); - } - return nok(code4); - } - function contentStart(code4) { - if (code4 === null || markdownLineEnding(code4)) { - return contentEnd(code4); - } - effects.enter(valueType); - return contentInside(code4); - } - function contentInside(code4) { - if (code4 === null || markdownLineEnding(code4)) { - effects.exit(valueType); - return contentEnd(code4); - } - effects.consume(code4); - return contentInside; - } - function contentEnd(code4) { - if (code4 === null) { - return nok(code4); - } - effects.enter("lineEnding"); - effects.consume(code4); - effects.exit("lineEnding"); - return effects.attempt(closingFenceConstruct, after, contentStart); - } - function after(code4) { - effects.exit(frontmatterType); - return ok3(code4); - } - } - function tokenizeClosingFence(effects, ok3, nok) { - let bufferIndex2 = 0; - return closeStart; - function closeStart(code4) { - if (code4 === buffer2.charCodeAt(bufferIndex2)) { - effects.enter(fenceType); - effects.enter(sequenceType); - return closeSequence(code4); - } - return nok(code4); - } - function closeSequence(code4) { - if (bufferIndex2 === buffer2.length) { - effects.exit(sequenceType); - if (markdownSpace(code4)) { - effects.enter("whitespace"); - return closeSequenceWhitespace(code4); - } - return closeAfter(code4); - } - if (code4 === buffer2.charCodeAt(bufferIndex2++)) { - effects.consume(code4); - return closeSequence; - } - return nok(code4); - } - function closeSequenceWhitespace(code4) { - if (markdownSpace(code4)) { - effects.consume(code4); - return closeSequenceWhitespace; - } - effects.exit("whitespace"); - return closeAfter(code4); - } - function closeAfter(code4) { - if (code4 === null || markdownLineEnding(code4)) { - effects.exit(fenceType); - return ok3(code4); - } - return nok(code4); - } - } -} -function fence(matter2, prop) { - return matter2.marker ? pick(matter2.marker, prop).repeat(3) : ( - // @ts-expect-error: They’re mutually exclusive. - pick(matter2.fence, prop) - ); -} -function pick(schema, prop) { - return typeof schema === "string" ? schema : schema[prop]; -} -var init_syntax6 = __esm({ - "node_modules/.pnpm/micromark-extension-frontmatter@2.0.0/node_modules/micromark-extension-frontmatter/lib/syntax.js"() { - init_micromark_util_character(); - init_to_matters(); - } -}); - -// node_modules/.pnpm/micromark-extension-frontmatter@2.0.0/node_modules/micromark-extension-frontmatter/lib/html.js -var init_html7 = __esm({ - "node_modules/.pnpm/micromark-extension-frontmatter@2.0.0/node_modules/micromark-extension-frontmatter/lib/html.js"() { - } -}); - -// node_modules/.pnpm/micromark-extension-frontmatter@2.0.0/node_modules/micromark-extension-frontmatter/index.js -var init_micromark_extension_frontmatter = __esm({ - "node_modules/.pnpm/micromark-extension-frontmatter@2.0.0/node_modules/micromark-extension-frontmatter/index.js"() { - init_syntax6(); - init_html7(); - init_to_matters(); - } -}); - -// node_modules/.pnpm/mdast-util-frontmatter@2.0.1/node_modules/mdast-util-frontmatter/lib/index.js -function frontmatterFromMarkdown(options) { - const matters = toMatters(options); - const enter = {}; - const exit3 = {}; - let index2 = -1; - while (++index2 < matters.length) { - const matter2 = matters[index2]; - enter[matter2.type] = opener(matter2); - exit3[matter2.type] = close6; - exit3[matter2.type + "Value"] = value; - } - return { enter, exit: exit3 }; -} -function opener(matter2) { - return open; - function open(token) { - this.enter({ type: matter2.type, value: "" }, token); - this.buffer(); - } -} -function close6(token) { - const data8 = this.resume(); - const node2 = this.stack[this.stack.length - 1]; - ok("value" in node2); - this.exit(token); - node2.value = data8.replace(/^(\r?\n|\r)|(\r?\n|\r)$/g, ""); -} -function value(token) { - this.config.enter.data.call(this, token); - this.config.exit.data.call(this, token); -} -function frontmatterToMarkdown(options) { - const unsafe2 = []; - const handlers2 = {}; - const matters = toMatters(options); - let index2 = -1; - while (++index2 < matters.length) { - const matter2 = matters[index2]; - handlers2[matter2.type] = handler(matter2); - const open = fence2(matter2, "open"); - unsafe2.push({ - atBreak: true, - character: open.charAt(0), - after: escapeStringRegexp(open.charAt(1)) - }); - } - return { unsafe: unsafe2, handlers: handlers2 }; -} -function handler(matter2) { - const open = fence2(matter2, "open"); - const close7 = fence2(matter2, "close"); - return handle3; - function handle3(node2) { - return open + (node2.value ? "\n" + node2.value : "") + "\n" + close7; - } -} -function fence2(matter2, prop) { - return matter2.marker ? pick2(matter2.marker, prop).repeat(3) : ( - // @ts-expect-error: They’re mutually exclusive. - pick2(matter2.fence, prop) - ); -} -function pick2(schema, prop) { - return typeof schema === "string" ? schema : schema[prop]; -} -var init_lib23 = __esm({ - "node_modules/.pnpm/mdast-util-frontmatter@2.0.1/node_modules/mdast-util-frontmatter/lib/index.js"() { - init_default(); - init_micromark_extension_frontmatter(); - init_escape_string_regexp(); - } -}); - -// node_modules/.pnpm/mdast-util-frontmatter@2.0.1/node_modules/mdast-util-frontmatter/index.js -var init_mdast_util_frontmatter = __esm({ - "node_modules/.pnpm/mdast-util-frontmatter@2.0.1/node_modules/mdast-util-frontmatter/index.js"() { - init_lib23(); - } -}); - -// node_modules/.pnpm/remark-frontmatter@5.0.0/node_modules/remark-frontmatter/lib/index.js -function remarkFrontmatter(options) { - const self2 = ( - /** @type {Processor} */ - this - ); - const settings = options || emptyOptions4; - const data8 = self2.data(); - const micromarkExtensions = data8.micromarkExtensions || (data8.micromarkExtensions = []); - const fromMarkdownExtensions = data8.fromMarkdownExtensions || (data8.fromMarkdownExtensions = []); - const toMarkdownExtensions = data8.toMarkdownExtensions || (data8.toMarkdownExtensions = []); - micromarkExtensions.push(frontmatter(settings)); - fromMarkdownExtensions.push(frontmatterFromMarkdown(settings)); - toMarkdownExtensions.push(frontmatterToMarkdown(settings)); -} -var emptyOptions4; -var init_lib24 = __esm({ - "node_modules/.pnpm/remark-frontmatter@5.0.0/node_modules/remark-frontmatter/lib/index.js"() { - init_mdast_util_frontmatter(); - init_micromark_extension_frontmatter(); - emptyOptions4 = "yaml"; - } -}); - -// node_modules/.pnpm/remark-frontmatter@5.0.0/node_modules/remark-frontmatter/index.js -var init_remark_frontmatter = __esm({ - "node_modules/.pnpm/remark-frontmatter@5.0.0/node_modules/remark-frontmatter/index.js"() { - init_lib24(); - } -}); - -// node_modules/.pnpm/@ungap+structured-clone@1.3.0/node_modules/@ungap/structured-clone/esm/types.js -var VOID, PRIMITIVE, ARRAY, OBJECT, DATE, REGEXP, MAP, SET, ERROR, BIGINT; -var init_types2 = __esm({ - "node_modules/.pnpm/@ungap+structured-clone@1.3.0/node_modules/@ungap/structured-clone/esm/types.js"() { - VOID = -1; - PRIMITIVE = 0; - ARRAY = 1; - OBJECT = 2; - DATE = 3; - REGEXP = 4; - MAP = 5; - SET = 6; - ERROR = 7; - BIGINT = 8; - } -}); - -// node_modules/.pnpm/@ungap+structured-clone@1.3.0/node_modules/@ungap/structured-clone/esm/deserialize.js -var env, deserializer, deserialize; -var init_deserialize = __esm({ - "node_modules/.pnpm/@ungap+structured-clone@1.3.0/node_modules/@ungap/structured-clone/esm/deserialize.js"() { - init_types2(); - env = typeof self === "object" ? self : globalThis; - deserializer = ($4, _4) => { - const as = (out, index2) => { - $4.set(index2, out); - return out; - }; - const unpair = (index2) => { - if ($4.has(index2)) - return $4.get(index2); - const [type5, value2] = _4[index2]; - switch (type5) { - case PRIMITIVE: - case VOID: - return as(value2, index2); - case ARRAY: { - const arr = as([], index2); - for (const index3 of value2) - arr.push(unpair(index3)); - return arr; - } - case OBJECT: { - const object = as({}, index2); - for (const [key2, index3] of value2) - object[unpair(key2)] = unpair(index3); - return object; - } - case DATE: - return as(new Date(value2), index2); - case REGEXP: { - const { source, flags } = value2; - return as(new RegExp(source, flags), index2); - } - case MAP: { - const map7 = as(/* @__PURE__ */ new Map(), index2); - for (const [key2, index3] of value2) - map7.set(unpair(key2), unpair(index3)); - return map7; - } - case SET: { - const set3 = as(/* @__PURE__ */ new Set(), index2); - for (const index3 of value2) - set3.add(unpair(index3)); - return set3; - } - case ERROR: { - const { name, message: message2 } = value2; - return as(new env[name](message2), index2); - } - case BIGINT: - return as(BigInt(value2), index2); - case "BigInt": - return as(Object(BigInt(value2)), index2); - case "ArrayBuffer": - return as(new Uint8Array(value2).buffer, value2); - case "DataView": { - const { buffer: buffer2 } = new Uint8Array(value2); - return as(new DataView(buffer2), value2); - } - } - return as(new env[type5](value2), index2); - }; - return unpair; - }; - deserialize = (serialized) => deserializer(/* @__PURE__ */ new Map(), serialized)(0); - } -}); - -// node_modules/.pnpm/@ungap+structured-clone@1.3.0/node_modules/@ungap/structured-clone/esm/serialize.js -var EMPTY2, toString2, keys, typeOf, shouldSkip, serializer, serialize2; -var init_serialize = __esm({ - "node_modules/.pnpm/@ungap+structured-clone@1.3.0/node_modules/@ungap/structured-clone/esm/serialize.js"() { - init_types2(); - EMPTY2 = ""; - ({ toString: toString2 } = {}); - ({ keys } = Object); - typeOf = (value2) => { - const type5 = typeof value2; - if (type5 !== "object" || !value2) - return [PRIMITIVE, type5]; - const asString = toString2.call(value2).slice(8, -1); - switch (asString) { - case "Array": - return [ARRAY, EMPTY2]; - case "Object": - return [OBJECT, EMPTY2]; - case "Date": - return [DATE, EMPTY2]; - case "RegExp": - return [REGEXP, EMPTY2]; - case "Map": - return [MAP, EMPTY2]; - case "Set": - return [SET, EMPTY2]; - case "DataView": - return [ARRAY, asString]; - } - if (asString.includes("Array")) - return [ARRAY, asString]; - if (asString.includes("Error")) - return [ERROR, asString]; - return [OBJECT, asString]; - }; - shouldSkip = ([TYPE, type5]) => TYPE === PRIMITIVE && (type5 === "function" || type5 === "symbol"); - serializer = (strict, json, $4, _4) => { - const as = (out, value2) => { - const index2 = _4.push(out) - 1; - $4.set(value2, index2); - return index2; - }; - const pair = (value2) => { - if ($4.has(value2)) - return $4.get(value2); - let [TYPE, type5] = typeOf(value2); - switch (TYPE) { - case PRIMITIVE: { - let entry = value2; - switch (type5) { - case "bigint": - TYPE = BIGINT; - entry = value2.toString(); - break; - case "function": - case "symbol": - if (strict) - throw new TypeError("unable to serialize " + type5); - entry = null; - break; - case "undefined": - return as([VOID], value2); - } - return as([TYPE, entry], value2); - } - case ARRAY: { - if (type5) { - let spread = value2; - if (type5 === "DataView") { - spread = new Uint8Array(value2.buffer); - } else if (type5 === "ArrayBuffer") { - spread = new Uint8Array(value2); - } - return as([type5, [...spread]], value2); - } - const arr = []; - const index2 = as([TYPE, arr], value2); - for (const entry of value2) - arr.push(pair(entry)); - return index2; - } - case OBJECT: { - if (type5) { - switch (type5) { - case "BigInt": - return as([type5, value2.toString()], value2); - case "Boolean": - case "Number": - case "String": - return as([type5, value2.valueOf()], value2); - } - } - if (json && "toJSON" in value2) - return pair(value2.toJSON()); - const entries = []; - const index2 = as([TYPE, entries], value2); - for (const key2 of keys(value2)) { - if (strict || !shouldSkip(typeOf(value2[key2]))) - entries.push([pair(key2), pair(value2[key2])]); - } - return index2; - } - case DATE: - return as([TYPE, value2.toISOString()], value2); - case REGEXP: { - const { source, flags } = value2; - return as([TYPE, { source, flags }], value2); - } - case MAP: { - const entries = []; - const index2 = as([TYPE, entries], value2); - for (const [key2, entry] of value2) { - if (strict || !(shouldSkip(typeOf(key2)) || shouldSkip(typeOf(entry)))) - entries.push([pair(key2), pair(entry)]); - } - return index2; - } - case SET: { - const entries = []; - const index2 = as([TYPE, entries], value2); - for (const entry of value2) { - if (strict || !shouldSkip(typeOf(entry))) - entries.push(pair(entry)); - } - return index2; - } - } - const { message: message2 } = value2; - return as([TYPE, { name: type5, message: message2 }], value2); - }; - return pair; - }; - serialize2 = (value2, { json, lossy } = {}) => { - const _4 = []; - return serializer(!(json || lossy), !!json, /* @__PURE__ */ new Map(), _4)(value2), _4; - }; - } -}); - -// node_modules/.pnpm/@ungap+structured-clone@1.3.0/node_modules/@ungap/structured-clone/esm/index.js -var esm_default; -var init_esm = __esm({ - "node_modules/.pnpm/@ungap+structured-clone@1.3.0/node_modules/@ungap/structured-clone/esm/index.js"() { - init_deserialize(); - init_serialize(); - esm_default = typeof structuredClone === "function" ? ( - /* c8 ignore start */ - (any, options) => options && ("json" in options || "lossy" in options) ? deserialize(serialize2(any, options)) : structuredClone(any) - ) : (any, options) => deserialize(serialize2(any, options)); - } -}); - -// node_modules/.pnpm/unist-util-position@5.0.0/node_modules/unist-util-position/lib/index.js -function point3(type5) { - return point4; - function point4(node2) { - const point5 = node2 && node2.position && node2.position[type5] || {}; - if (typeof point5.line === "number" && point5.line > 0 && typeof point5.column === "number" && point5.column > 0) { - return { - line: point5.line, - column: point5.column, - offset: typeof point5.offset === "number" && point5.offset > -1 ? point5.offset : void 0 - }; - } - } -} -function position2(node2) { - const start = pointStart(node2); - const end3 = pointEnd(node2); - if (start && end3) { - return { start, end: end3 }; - } -} -var pointEnd, pointStart; -var init_lib25 = __esm({ - "node_modules/.pnpm/unist-util-position@5.0.0/node_modules/unist-util-position/lib/index.js"() { - pointEnd = point3("end"); - pointStart = point3("start"); - } -}); - -// node_modules/.pnpm/unist-util-position@5.0.0/node_modules/unist-util-position/index.js -var init_unist_util_position = __esm({ - "node_modules/.pnpm/unist-util-position@5.0.0/node_modules/unist-util-position/index.js"() { - init_lib25(); - } -}); - -// node_modules/.pnpm/hast-util-sanitize@5.0.2/node_modules/hast-util-sanitize/lib/schema.js -var aria, defaultSchema; -var init_schema = __esm({ - "node_modules/.pnpm/hast-util-sanitize@5.0.2/node_modules/hast-util-sanitize/lib/schema.js"() { - aria = ["ariaDescribedBy", "ariaLabel", "ariaLabelledBy"]; - defaultSchema = { - ancestors: { - tbody: ["table"], - td: ["table"], - th: ["table"], - thead: ["table"], - tfoot: ["table"], - tr: ["table"] - }, - attributes: { - a: [ - ...aria, - // Note: these 3 are used by GFM footnotes, they do work on all links. - "dataFootnoteBackref", - "dataFootnoteRef", - ["className", "data-footnote-backref"], - "href" - ], - blockquote: ["cite"], - // Note: this class is not normally allowed by GH, when manually writing - // `code` as HTML in markdown, they adds it some other way. - // We can’t do that, so we have to allow it. - code: [["className", /^language-./]], - del: ["cite"], - div: ["itemScope", "itemType"], - dl: [...aria], - // Note: this is used by GFM footnotes. - h2: [["className", "sr-only"]], - img: [...aria, "longDesc", "src"], - // Note: `input` is not normally allowed by GH, when manually writing - // it in markdown, they add it from tasklists some other way. - // We can’t do that, so we have to allow it. - input: [ - ["disabled", true], - ["type", "checkbox"] - ], - ins: ["cite"], - // Note: this class is not normally allowed by GH, when manually writing - // `li` as HTML in markdown, they adds it some other way. - // We can’t do that, so we have to allow it. - li: [["className", "task-list-item"]], - // Note: this class is not normally allowed by GH, when manually writing - // `ol` as HTML in markdown, they adds it some other way. - // We can’t do that, so we have to allow it. - ol: [...aria, ["className", "contains-task-list"]], - q: ["cite"], - section: ["dataFootnotes", ["className", "footnotes"]], - source: ["srcSet"], - summary: [...aria], - table: [...aria], - // Note: this class is not normally allowed by GH, when manually writing - // `ol` as HTML in markdown, they adds it some other way. - // We can’t do that, so we have to allow it. - ul: [...aria, ["className", "contains-task-list"]], - "*": [ - "abbr", - "accept", - "acceptCharset", - "accessKey", - "action", - "align", - "alt", - "axis", - "border", - "cellPadding", - "cellSpacing", - "char", - "charOff", - "charSet", - "checked", - "clear", - "colSpan", - "color", - "cols", - "compact", - "coords", - "dateTime", - "dir", - // Note: `disabled` is technically allowed on all elements by GH. - // But it is useless on everything except `input`. - // Because `input`s are normally not allowed, but we allow them for - // checkboxes due to tasklists, we allow `disabled` only there. - "encType", - "frame", - "hSpace", - "headers", - "height", - "hrefLang", - "htmlFor", - "id", - "isMap", - "itemProp", - "label", - "lang", - "maxLength", - "media", - "method", - "multiple", - "name", - "noHref", - "noShade", - "noWrap", - "open", - "prompt", - "readOnly", - "rev", - "rowSpan", - "rows", - "rules", - "scope", - "selected", - "shape", - "size", - "span", - "start", - "summary", - "tabIndex", - "title", - "useMap", - "vAlign", - "value", - "width" - ] - }, - clobber: ["ariaDescribedBy", "ariaLabelledBy", "id", "name"], - clobberPrefix: "user-content-", - protocols: { - cite: ["http", "https"], - href: ["http", "https", "irc", "ircs", "mailto", "xmpp"], - longDesc: ["http", "https"], - src: ["http", "https"] - }, - required: { - input: { disabled: true, type: "checkbox" } - }, - strip: ["script"], - tagNames: [ - "a", - "b", - "blockquote", - "br", - "code", - "dd", - "del", - "details", - "div", - "dl", - "dt", - "em", - "h1", - "h2", - "h3", - "h4", - "h5", - "h6", - "hr", - "i", - "img", - // Note: `input` is not normally allowed by GH, when manually writing - // it in markdown, they add it from tasklists some other way. - // We can’t do that, so we have to allow it. - "input", - "ins", - "kbd", - "li", - "ol", - "p", - "picture", - "pre", - "q", - "rp", - "rt", - "ruby", - "s", - "samp", - "section", - "source", - "span", - "strike", - "strong", - "sub", - "summary", - "sup", - "table", - "tbody", - "td", - "tfoot", - "th", - "thead", - "tr", - "tt", - "ul", - "var" - ] - }; - } -}); - -// node_modules/.pnpm/hast-util-sanitize@5.0.2/node_modules/hast-util-sanitize/lib/index.js -function sanitize(node2, options) { - let result = { type: "root", children: [] }; - const state = { - schema: options ? { ...defaultSchema, ...options } : defaultSchema, - stack: [] - }; - const replace5 = transform(state, node2); - if (replace5) { - if (Array.isArray(replace5)) { - if (replace5.length === 1) { - result = replace5[0]; - } else { - result.children = replace5; - } - } else { - result = replace5; - } - } - return result; -} -function transform(state, node2) { - if (node2 && typeof node2 === "object") { - const unsafe2 = ( - /** @type {Record>} */ - node2 - ); - const type5 = typeof unsafe2.type === "string" ? unsafe2.type : ""; - switch (type5) { - case "comment": { - return comment(state, unsafe2); - } - case "doctype": { - return doctype(state, unsafe2); - } - case "element": { - return element2(state, unsafe2); - } - case "root": { - return root2(state, unsafe2); - } - case "text": { - return text5(state, unsafe2); - } - default: - } - } -} -function comment(state, unsafe2) { - if (state.schema.allowComments) { - const result = typeof unsafe2.value === "string" ? unsafe2.value : ""; - const index2 = result.indexOf("-->"); - const value2 = index2 < 0 ? result : result.slice(0, index2); - const node2 = { type: "comment", value: value2 }; - patch(node2, unsafe2); - return node2; - } -} -function doctype(state, unsafe2) { - if (state.schema.allowDoctypes) { - const node2 = { type: "doctype" }; - patch(node2, unsafe2); - return node2; - } -} -function element2(state, unsafe2) { - const name = typeof unsafe2.tagName === "string" ? unsafe2.tagName : ""; - state.stack.push(name); - const content3 = ( - /** @type {Array} */ - children(state, unsafe2.children) - ); - const properties_ = properties(state, unsafe2.properties); - state.stack.pop(); - let safeElement = false; - if (name && name !== "*" && (!state.schema.tagNames || state.schema.tagNames.includes(name))) { - safeElement = true; - if (state.schema.ancestors && own7.call(state.schema.ancestors, name)) { - const ancestors = state.schema.ancestors[name]; - let index2 = -1; - safeElement = false; - while (++index2 < ancestors.length) { - if (state.stack.includes(ancestors[index2])) { - safeElement = true; - } - } - } - } - if (!safeElement) { - return state.schema.strip && !state.schema.strip.includes(name) ? content3 : void 0; - } - const node2 = { - type: "element", - tagName: name, - properties: properties_, - children: content3 - }; - patch(node2, unsafe2); - return node2; -} -function root2(state, unsafe2) { - const content3 = ( - /** @type {Array} */ - children(state, unsafe2.children) - ); - const node2 = { type: "root", children: content3 }; - patch(node2, unsafe2); - return node2; -} -function text5(_4, unsafe2) { - const value2 = typeof unsafe2.value === "string" ? unsafe2.value : ""; - const node2 = { type: "text", value: value2 }; - patch(node2, unsafe2); - return node2; -} -function children(state, children2) { - const results = []; - if (Array.isArray(children2)) { - const childrenUnknown = ( - /** @type {Array>} */ - children2 - ); - let index2 = -1; - while (++index2 < childrenUnknown.length) { - const value2 = transform(state, childrenUnknown[index2]); - if (value2) { - if (Array.isArray(value2)) { - results.push(...value2); - } else { - results.push(value2); - } - } - } - } - return results; -} -function properties(state, properties2) { - const tagName = state.stack[state.stack.length - 1]; - const attributes = state.schema.attributes; - const required = state.schema.required; - const specific = attributes && own7.call(attributes, tagName) ? attributes[tagName] : void 0; - const defaults = attributes && own7.call(attributes, "*") ? attributes["*"] : void 0; - const properties_ = ( - /** @type {Readonly>>} */ - properties2 && typeof properties2 === "object" ? properties2 : {} - ); - const result = {}; - let key2; - for (key2 in properties_) { - if (own7.call(properties_, key2)) { - const unsafe2 = properties_[key2]; - let safe2 = propertyValue( - state, - findDefinition(specific, key2), - key2, - unsafe2 - ); - if (safe2 === null || safe2 === void 0) { - safe2 = propertyValue(state, findDefinition(defaults, key2), key2, unsafe2); - } - if (safe2 !== null && safe2 !== void 0) { - result[key2] = safe2; - } - } - } - if (required && own7.call(required, tagName)) { - const properties3 = required[tagName]; - for (key2 in properties3) { - if (own7.call(properties3, key2) && !own7.call(result, key2)) { - result[key2] = properties3[key2]; - } - } - } - return result; -} -function propertyValue(state, definition3, key2, value2) { - return definition3 ? Array.isArray(value2) ? propertyValueMany(state, definition3, key2, value2) : propertyValuePrimitive(state, definition3, key2, value2) : void 0; -} -function propertyValueMany(state, definition3, key2, values) { - let index2 = -1; - const result = []; - while (++index2 < values.length) { - const value2 = propertyValuePrimitive(state, definition3, key2, values[index2]); - if (typeof value2 === "number" || typeof value2 === "string") { - result.push(value2); - } - } - return result; -} -function propertyValuePrimitive(state, definition3, key2, value2) { - if (typeof value2 !== "boolean" && typeof value2 !== "number" && typeof value2 !== "string") { - return; - } - if (!safeProtocol(state, key2, value2)) { - return; - } - if (typeof definition3 === "object" && definition3.length > 1) { - let ok3 = false; - let index2 = 0; - while (++index2 < definition3.length) { - const allowed = definition3[index2]; - if (allowed && typeof allowed === "object" && "flags" in allowed) { - if (allowed.test(String(value2))) { - ok3 = true; - break; - } - } else if (allowed === value2) { - ok3 = true; - break; - } - } - if (!ok3) return; - } - return state.schema.clobber && state.schema.clobberPrefix && state.schema.clobber.includes(key2) ? state.schema.clobberPrefix + value2 : value2; -} -function safeProtocol(state, key2, value2) { - const protocols = state.schema.protocols && own7.call(state.schema.protocols, key2) ? state.schema.protocols[key2] : void 0; - if (!protocols || protocols.length === 0) { - return true; - } - const url = String(value2); - const colon = url.indexOf(":"); - const questionMark = url.indexOf("?"); - const numberSign = url.indexOf("#"); - const slash = url.indexOf("/"); - if (colon < 0 || // If the first colon is after a `?`, `#`, or `/`, it’s not a protocol. - slash > -1 && colon > slash || questionMark > -1 && colon > questionMark || numberSign > -1 && colon > numberSign) { - return true; - } - let index2 = -1; - while (++index2 < protocols.length) { - const protocol = protocols[index2]; - if (colon === protocol.length && url.slice(0, protocol.length) === protocol) { - return true; - } - } - return false; -} -function patch(node2, unsafe2) { - const cleanPosition = position2( - // @ts-expect-error: looks like a node. - unsafe2 - ); - if (unsafe2.data) { - node2.data = esm_default(unsafe2.data); - } - if (cleanPosition) node2.position = cleanPosition; -} -function findDefinition(definitions, key2) { - let dataDefault; - let index2 = -1; - if (definitions) { - while (++index2 < definitions.length) { - const entry = definitions[index2]; - const name = typeof entry === "string" ? entry : entry[0]; - if (name === key2) { - return entry; - } - if (name === "data*") dataDefault = entry; - } - } - if (key2.length > 4 && key2.slice(0, 4).toLowerCase() === "data") { - return dataDefault; - } -} -var own7; -var init_lib26 = __esm({ - "node_modules/.pnpm/hast-util-sanitize@5.0.2/node_modules/hast-util-sanitize/lib/index.js"() { - init_esm(); - init_unist_util_position(); - init_schema(); - own7 = {}.hasOwnProperty; - } -}); - -// node_modules/.pnpm/hast-util-sanitize@5.0.2/node_modules/hast-util-sanitize/index.js -var init_hast_util_sanitize = __esm({ - "node_modules/.pnpm/hast-util-sanitize@5.0.2/node_modules/hast-util-sanitize/index.js"() { - init_lib26(); - init_schema(); - } -}); - -// node_modules/.pnpm/mdast-util-to-hast@13.2.1/node_modules/mdast-util-to-hast/lib/handlers/blockquote.js -function blockquote2(state, node2) { - const result = { - type: "element", - tagName: "blockquote", - properties: {}, - children: state.wrap(state.all(node2), true) - }; - state.patch(node2, result); - return state.applyData(node2, result); -} -var init_blockquote2 = __esm({ - "node_modules/.pnpm/mdast-util-to-hast@13.2.1/node_modules/mdast-util-to-hast/lib/handlers/blockquote.js"() { - } -}); - -// node_modules/.pnpm/mdast-util-to-hast@13.2.1/node_modules/mdast-util-to-hast/lib/handlers/break.js -function hardBreak2(state, node2) { - const result = { type: "element", tagName: "br", properties: {}, children: [] }; - state.patch(node2, result); - return [state.applyData(node2, result), { type: "text", value: "\n" }]; -} -var init_break2 = __esm({ - "node_modules/.pnpm/mdast-util-to-hast@13.2.1/node_modules/mdast-util-to-hast/lib/handlers/break.js"() { - } -}); - -// node_modules/.pnpm/mdast-util-to-hast@13.2.1/node_modules/mdast-util-to-hast/lib/handlers/code.js -function code3(state, node2) { - const value2 = node2.value ? node2.value + "\n" : ""; - const properties2 = {}; - const language = node2.lang ? node2.lang.split(/\s+/) : []; - if (language.length > 0) { - properties2.className = ["language-" + language[0]]; - } - let result = { - type: "element", - tagName: "code", - properties: properties2, - children: [{ type: "text", value: value2 }] - }; - if (node2.meta) { - result.data = { meta: node2.meta }; - } - state.patch(node2, result); - result = state.applyData(node2, result); - result = { type: "element", tagName: "pre", properties: {}, children: [result] }; - state.patch(node2, result); - return result; -} -var init_code2 = __esm({ - "node_modules/.pnpm/mdast-util-to-hast@13.2.1/node_modules/mdast-util-to-hast/lib/handlers/code.js"() { - } -}); - -// node_modules/.pnpm/mdast-util-to-hast@13.2.1/node_modules/mdast-util-to-hast/lib/handlers/delete.js -function strikethrough(state, node2) { - const result = { - type: "element", - tagName: "del", - properties: {}, - children: state.all(node2) - }; - state.patch(node2, result); - return state.applyData(node2, result); -} -var init_delete = __esm({ - "node_modules/.pnpm/mdast-util-to-hast@13.2.1/node_modules/mdast-util-to-hast/lib/handlers/delete.js"() { - } -}); - -// node_modules/.pnpm/mdast-util-to-hast@13.2.1/node_modules/mdast-util-to-hast/lib/handlers/emphasis.js -function emphasis2(state, node2) { - const result = { - type: "element", - tagName: "em", - properties: {}, - children: state.all(node2) - }; - state.patch(node2, result); - return state.applyData(node2, result); -} -var init_emphasis2 = __esm({ - "node_modules/.pnpm/mdast-util-to-hast@13.2.1/node_modules/mdast-util-to-hast/lib/handlers/emphasis.js"() { - } -}); - -// node_modules/.pnpm/mdast-util-to-hast@13.2.1/node_modules/mdast-util-to-hast/lib/handlers/footnote-reference.js -function footnoteReference2(state, node2) { - const clobberPrefix = typeof state.options.clobberPrefix === "string" ? state.options.clobberPrefix : "user-content-"; - const id = String(node2.identifier).toUpperCase(); - const safeId = normalizeUri(id.toLowerCase()); - const index2 = state.footnoteOrder.indexOf(id); - let counter2; - let reuseCounter = state.footnoteCounts.get(id); - if (reuseCounter === void 0) { - reuseCounter = 0; - state.footnoteOrder.push(id); - counter2 = state.footnoteOrder.length; - } else { - counter2 = index2 + 1; - } - reuseCounter += 1; - state.footnoteCounts.set(id, reuseCounter); - const link3 = { - type: "element", - tagName: "a", - properties: { - href: "#" + clobberPrefix + "fn-" + safeId, - id: clobberPrefix + "fnref-" + safeId + (reuseCounter > 1 ? "-" + reuseCounter : ""), - dataFootnoteRef: true, - ariaDescribedBy: ["footnote-label"] - }, - children: [{ type: "text", value: String(counter2) }] - }; - state.patch(node2, link3); - const sup = { - type: "element", - tagName: "sup", - properties: {}, - children: [link3] - }; - state.patch(node2, sup); - return state.applyData(node2, sup); -} -var init_footnote_reference = __esm({ - "node_modules/.pnpm/mdast-util-to-hast@13.2.1/node_modules/mdast-util-to-hast/lib/handlers/footnote-reference.js"() { - init_micromark_util_sanitize_uri(); - } -}); - -// node_modules/.pnpm/mdast-util-to-hast@13.2.1/node_modules/mdast-util-to-hast/lib/handlers/heading.js -function heading2(state, node2) { - const result = { - type: "element", - tagName: "h" + node2.depth, - properties: {}, - children: state.all(node2) - }; - state.patch(node2, result); - return state.applyData(node2, result); -} -var init_heading2 = __esm({ - "node_modules/.pnpm/mdast-util-to-hast@13.2.1/node_modules/mdast-util-to-hast/lib/handlers/heading.js"() { - } -}); - -// node_modules/.pnpm/mdast-util-to-hast@13.2.1/node_modules/mdast-util-to-hast/lib/handlers/html.js -function html2(state, node2) { - if (state.options.allowDangerousHtml) { - const result = { type: "raw", value: node2.value }; - state.patch(node2, result); - return state.applyData(node2, result); - } - return void 0; -} -var init_html8 = __esm({ - "node_modules/.pnpm/mdast-util-to-hast@13.2.1/node_modules/mdast-util-to-hast/lib/handlers/html.js"() { - } -}); - -// node_modules/.pnpm/mdast-util-to-hast@13.2.1/node_modules/mdast-util-to-hast/lib/revert.js -function revert(state, node2) { - const subtype = node2.referenceType; - let suffix = "]"; - if (subtype === "collapsed") { - suffix += "[]"; - } else if (subtype === "full") { - suffix += "[" + (node2.label || node2.identifier) + "]"; - } - if (node2.type === "imageReference") { - return [{ type: "text", value: "![" + node2.alt + suffix }]; - } - const contents = state.all(node2); - const head2 = contents[0]; - if (head2 && head2.type === "text") { - head2.value = "[" + head2.value; - } else { - contents.unshift({ type: "text", value: "[" }); - } - const tail = contents[contents.length - 1]; - if (tail && tail.type === "text") { - tail.value += suffix; - } else { - contents.push({ type: "text", value: suffix }); - } - return contents; -} -var init_revert = __esm({ - "node_modules/.pnpm/mdast-util-to-hast@13.2.1/node_modules/mdast-util-to-hast/lib/revert.js"() { - } -}); - -// node_modules/.pnpm/mdast-util-to-hast@13.2.1/node_modules/mdast-util-to-hast/lib/handlers/image-reference.js -function imageReference2(state, node2) { - const id = String(node2.identifier).toUpperCase(); - const definition3 = state.definitionById.get(id); - if (!definition3) { - return revert(state, node2); - } - const properties2 = { src: normalizeUri(definition3.url || ""), alt: node2.alt }; - if (definition3.title !== null && definition3.title !== void 0) { - properties2.title = definition3.title; - } - const result = { type: "element", tagName: "img", properties: properties2, children: [] }; - state.patch(node2, result); - return state.applyData(node2, result); -} -var init_image_reference2 = __esm({ - "node_modules/.pnpm/mdast-util-to-hast@13.2.1/node_modules/mdast-util-to-hast/lib/handlers/image-reference.js"() { - init_micromark_util_sanitize_uri(); - init_revert(); - } -}); - -// node_modules/.pnpm/mdast-util-to-hast@13.2.1/node_modules/mdast-util-to-hast/lib/handlers/image.js -function image2(state, node2) { - const properties2 = { src: normalizeUri(node2.url) }; - if (node2.alt !== null && node2.alt !== void 0) { - properties2.alt = node2.alt; - } - if (node2.title !== null && node2.title !== void 0) { - properties2.title = node2.title; - } - const result = { type: "element", tagName: "img", properties: properties2, children: [] }; - state.patch(node2, result); - return state.applyData(node2, result); -} -var init_image2 = __esm({ - "node_modules/.pnpm/mdast-util-to-hast@13.2.1/node_modules/mdast-util-to-hast/lib/handlers/image.js"() { - init_micromark_util_sanitize_uri(); - } -}); - -// node_modules/.pnpm/mdast-util-to-hast@13.2.1/node_modules/mdast-util-to-hast/lib/handlers/inline-code.js -function inlineCode2(state, node2) { - const text9 = { type: "text", value: node2.value.replace(/\r?\n|\r/g, " ") }; - state.patch(node2, text9); - const result = { - type: "element", - tagName: "code", - properties: {}, - children: [text9] - }; - state.patch(node2, result); - return state.applyData(node2, result); -} -var init_inline_code2 = __esm({ - "node_modules/.pnpm/mdast-util-to-hast@13.2.1/node_modules/mdast-util-to-hast/lib/handlers/inline-code.js"() { - } -}); - -// node_modules/.pnpm/mdast-util-to-hast@13.2.1/node_modules/mdast-util-to-hast/lib/handlers/link-reference.js -function linkReference2(state, node2) { - const id = String(node2.identifier).toUpperCase(); - const definition3 = state.definitionById.get(id); - if (!definition3) { - return revert(state, node2); - } - const properties2 = { href: normalizeUri(definition3.url || "") }; - if (definition3.title !== null && definition3.title !== void 0) { - properties2.title = definition3.title; - } - const result = { - type: "element", - tagName: "a", - properties: properties2, - children: state.all(node2) - }; - state.patch(node2, result); - return state.applyData(node2, result); -} -var init_link_reference2 = __esm({ - "node_modules/.pnpm/mdast-util-to-hast@13.2.1/node_modules/mdast-util-to-hast/lib/handlers/link-reference.js"() { - init_micromark_util_sanitize_uri(); - init_revert(); - } -}); - -// node_modules/.pnpm/mdast-util-to-hast@13.2.1/node_modules/mdast-util-to-hast/lib/handlers/link.js -function link2(state, node2) { - const properties2 = { href: normalizeUri(node2.url) }; - if (node2.title !== null && node2.title !== void 0) { - properties2.title = node2.title; - } - const result = { - type: "element", - tagName: "a", - properties: properties2, - children: state.all(node2) - }; - state.patch(node2, result); - return state.applyData(node2, result); -} -var init_link2 = __esm({ - "node_modules/.pnpm/mdast-util-to-hast@13.2.1/node_modules/mdast-util-to-hast/lib/handlers/link.js"() { - init_micromark_util_sanitize_uri(); - } -}); - -// node_modules/.pnpm/mdast-util-to-hast@13.2.1/node_modules/mdast-util-to-hast/lib/handlers/list-item.js -function listItem2(state, node2, parent) { - const results = state.all(node2); - const loose = parent ? listLoose(parent) : listItemLoose(node2); - const properties2 = {}; - const children2 = []; - if (typeof node2.checked === "boolean") { - const head2 = results[0]; - let paragraph3; - if (head2 && head2.type === "element" && head2.tagName === "p") { - paragraph3 = head2; - } else { - paragraph3 = { type: "element", tagName: "p", properties: {}, children: [] }; - results.unshift(paragraph3); - } - if (paragraph3.children.length > 0) { - paragraph3.children.unshift({ type: "text", value: " " }); - } - paragraph3.children.unshift({ - type: "element", - tagName: "input", - properties: { type: "checkbox", checked: node2.checked, disabled: true }, - children: [] - }); - properties2.className = ["task-list-item"]; - } - let index2 = -1; - while (++index2 < results.length) { - const child = results[index2]; - if (loose || index2 !== 0 || child.type !== "element" || child.tagName !== "p") { - children2.push({ type: "text", value: "\n" }); - } - if (child.type === "element" && child.tagName === "p" && !loose) { - children2.push(...child.children); - } else { - children2.push(child); - } - } - const tail = results[results.length - 1]; - if (tail && (loose || tail.type !== "element" || tail.tagName !== "p")) { - children2.push({ type: "text", value: "\n" }); - } - const result = { type: "element", tagName: "li", properties: properties2, children: children2 }; - state.patch(node2, result); - return state.applyData(node2, result); -} -function listLoose(node2) { - let loose = false; - if (node2.type === "list") { - loose = node2.spread || false; - const children2 = node2.children; - let index2 = -1; - while (!loose && ++index2 < children2.length) { - loose = listItemLoose(children2[index2]); - } - } - return loose; -} -function listItemLoose(node2) { - const spread = node2.spread; - return spread === null || spread === void 0 ? node2.children.length > 1 : spread; -} -var init_list_item2 = __esm({ - "node_modules/.pnpm/mdast-util-to-hast@13.2.1/node_modules/mdast-util-to-hast/lib/handlers/list-item.js"() { - } -}); - -// node_modules/.pnpm/mdast-util-to-hast@13.2.1/node_modules/mdast-util-to-hast/lib/handlers/list.js -function list4(state, node2) { - const properties2 = {}; - const results = state.all(node2); - let index2 = -1; - if (typeof node2.start === "number" && node2.start !== 1) { - properties2.start = node2.start; - } - while (++index2 < results.length) { - const child = results[index2]; - if (child.type === "element" && child.tagName === "li" && child.properties && Array.isArray(child.properties.className) && child.properties.className.includes("task-list-item")) { - properties2.className = ["contains-task-list"]; - break; - } - } - const result = { - type: "element", - tagName: node2.ordered ? "ol" : "ul", - properties: properties2, - children: state.wrap(results, true) - }; - state.patch(node2, result); - return state.applyData(node2, result); -} -var init_list3 = __esm({ - "node_modules/.pnpm/mdast-util-to-hast@13.2.1/node_modules/mdast-util-to-hast/lib/handlers/list.js"() { - } -}); - -// node_modules/.pnpm/mdast-util-to-hast@13.2.1/node_modules/mdast-util-to-hast/lib/handlers/paragraph.js -function paragraph2(state, node2) { - const result = { - type: "element", - tagName: "p", - properties: {}, - children: state.all(node2) - }; - state.patch(node2, result); - return state.applyData(node2, result); -} -var init_paragraph2 = __esm({ - "node_modules/.pnpm/mdast-util-to-hast@13.2.1/node_modules/mdast-util-to-hast/lib/handlers/paragraph.js"() { - } -}); - -// node_modules/.pnpm/mdast-util-to-hast@13.2.1/node_modules/mdast-util-to-hast/lib/handlers/root.js -function root3(state, node2) { - const result = { type: "root", children: state.wrap(state.all(node2)) }; - state.patch(node2, result); - return state.applyData(node2, result); -} -var init_root2 = __esm({ - "node_modules/.pnpm/mdast-util-to-hast@13.2.1/node_modules/mdast-util-to-hast/lib/handlers/root.js"() { - } -}); - -// node_modules/.pnpm/mdast-util-to-hast@13.2.1/node_modules/mdast-util-to-hast/lib/handlers/strong.js -function strong2(state, node2) { - const result = { - type: "element", - tagName: "strong", - properties: {}, - children: state.all(node2) - }; - state.patch(node2, result); - return state.applyData(node2, result); -} -var init_strong2 = __esm({ - "node_modules/.pnpm/mdast-util-to-hast@13.2.1/node_modules/mdast-util-to-hast/lib/handlers/strong.js"() { - } -}); - -// node_modules/.pnpm/mdast-util-to-hast@13.2.1/node_modules/mdast-util-to-hast/lib/handlers/table.js -function table(state, node2) { - const rows = state.all(node2); - const firstRow = rows.shift(); - const tableContent = []; - if (firstRow) { - const head2 = { - type: "element", - tagName: "thead", - properties: {}, - children: state.wrap([firstRow], true) - }; - state.patch(node2.children[0], head2); - tableContent.push(head2); - } - if (rows.length > 0) { - const body3 = { - type: "element", - tagName: "tbody", - properties: {}, - children: state.wrap(rows, true) - }; - const start = pointStart(node2.children[1]); - const end3 = pointEnd(node2.children[node2.children.length - 1]); - if (start && end3) body3.position = { start, end: end3 }; - tableContent.push(body3); - } - const result = { - type: "element", - tagName: "table", - properties: {}, - children: state.wrap(tableContent, true) - }; - state.patch(node2, result); - return state.applyData(node2, result); -} -var init_table = __esm({ - "node_modules/.pnpm/mdast-util-to-hast@13.2.1/node_modules/mdast-util-to-hast/lib/handlers/table.js"() { - init_unist_util_position(); - } -}); - -// node_modules/.pnpm/mdast-util-to-hast@13.2.1/node_modules/mdast-util-to-hast/lib/handlers/table-row.js -function tableRow(state, node2, parent) { - const siblings2 = parent ? parent.children : void 0; - const rowIndex = siblings2 ? siblings2.indexOf(node2) : 1; - const tagName = rowIndex === 0 ? "th" : "td"; - const align = parent && parent.type === "table" ? parent.align : void 0; - const length = align ? align.length : node2.children.length; - let cellIndex = -1; - const cells2 = []; - while (++cellIndex < length) { - const cell2 = node2.children[cellIndex]; - const properties2 = {}; - const alignValue = align ? align[cellIndex] : void 0; - if (alignValue) { - properties2.align = alignValue; - } - let result2 = { type: "element", tagName, properties: properties2, children: [] }; - if (cell2) { - result2.children = state.all(cell2); - state.patch(cell2, result2); - result2 = state.applyData(cell2, result2); - } - cells2.push(result2); - } - const result = { - type: "element", - tagName: "tr", - properties: {}, - children: state.wrap(cells2, true) - }; - state.patch(node2, result); - return state.applyData(node2, result); -} -var init_table_row = __esm({ - "node_modules/.pnpm/mdast-util-to-hast@13.2.1/node_modules/mdast-util-to-hast/lib/handlers/table-row.js"() { - } -}); - -// node_modules/.pnpm/mdast-util-to-hast@13.2.1/node_modules/mdast-util-to-hast/lib/handlers/table-cell.js -function tableCell(state, node2) { - const result = { - type: "element", - tagName: "td", - // Assume body cell. - properties: {}, - children: state.all(node2) - }; - state.patch(node2, result); - return state.applyData(node2, result); -} -var init_table_cell = __esm({ - "node_modules/.pnpm/mdast-util-to-hast@13.2.1/node_modules/mdast-util-to-hast/lib/handlers/table-cell.js"() { - } -}); - -// node_modules/.pnpm/trim-lines@3.0.1/node_modules/trim-lines/index.js -function trimLines(value2) { - const source = String(value2); - const search2 = /\r?\n|\r/g; - let match2 = search2.exec(source); - let last3 = 0; - const lines = []; - while (match2) { - lines.push( - trimLine(source.slice(last3, match2.index), last3 > 0, true), - match2[0] - ); - last3 = match2.index + match2[0].length; - match2 = search2.exec(source); - } - lines.push(trimLine(source.slice(last3), last3 > 0, false)); - return lines.join(""); -} -function trimLine(value2, start, end3) { - let startIndex = 0; - let endIndex = value2.length; - if (start) { - let code4 = value2.codePointAt(startIndex); - while (code4 === tab || code4 === space) { - startIndex++; - code4 = value2.codePointAt(startIndex); - } - } - if (end3) { - let code4 = value2.codePointAt(endIndex - 1); - while (code4 === tab || code4 === space) { - endIndex--; - code4 = value2.codePointAt(endIndex - 1); - } - } - return endIndex > startIndex ? value2.slice(startIndex, endIndex) : ""; -} -var tab, space; -var init_trim_lines = __esm({ - "node_modules/.pnpm/trim-lines@3.0.1/node_modules/trim-lines/index.js"() { - tab = 9; - space = 32; - } -}); - -// node_modules/.pnpm/mdast-util-to-hast@13.2.1/node_modules/mdast-util-to-hast/lib/handlers/text.js -function text6(state, node2) { - const result = { type: "text", value: trimLines(String(node2.value)) }; - state.patch(node2, result); - return state.applyData(node2, result); -} -var init_text3 = __esm({ - "node_modules/.pnpm/mdast-util-to-hast@13.2.1/node_modules/mdast-util-to-hast/lib/handlers/text.js"() { - init_trim_lines(); - } -}); - -// node_modules/.pnpm/mdast-util-to-hast@13.2.1/node_modules/mdast-util-to-hast/lib/handlers/thematic-break.js -function thematicBreak3(state, node2) { - const result = { - type: "element", - tagName: "hr", - properties: {}, - children: [] - }; - state.patch(node2, result); - return state.applyData(node2, result); -} -var init_thematic_break3 = __esm({ - "node_modules/.pnpm/mdast-util-to-hast@13.2.1/node_modules/mdast-util-to-hast/lib/handlers/thematic-break.js"() { - } -}); - -// node_modules/.pnpm/mdast-util-to-hast@13.2.1/node_modules/mdast-util-to-hast/lib/handlers/index.js -function ignore() { - return void 0; -} -var handlers; -var init_handlers = __esm({ - "node_modules/.pnpm/mdast-util-to-hast@13.2.1/node_modules/mdast-util-to-hast/lib/handlers/index.js"() { - init_blockquote2(); - init_break2(); - init_code2(); - init_delete(); - init_emphasis2(); - init_footnote_reference(); - init_heading2(); - init_html8(); - init_image_reference2(); - init_image2(); - init_inline_code2(); - init_link_reference2(); - init_link2(); - init_list_item2(); - init_list3(); - init_paragraph2(); - init_root2(); - init_strong2(); - init_table(); - init_table_row(); - init_table_cell(); - init_text3(); - init_thematic_break3(); - handlers = { - blockquote: blockquote2, - break: hardBreak2, - code: code3, - delete: strikethrough, - emphasis: emphasis2, - footnoteReference: footnoteReference2, - heading: heading2, - html: html2, - imageReference: imageReference2, - image: image2, - inlineCode: inlineCode2, - linkReference: linkReference2, - link: link2, - listItem: listItem2, - list: list4, - paragraph: paragraph2, - // @ts-expect-error: root is different, but hard to type. - root: root3, - strong: strong2, - table, - tableCell, - tableRow, - text: text6, - thematicBreak: thematicBreak3, - toml: ignore, - yaml: ignore, - definition: ignore, - footnoteDefinition: ignore - }; - } -}); - -// node_modules/.pnpm/mdast-util-to-hast@13.2.1/node_modules/mdast-util-to-hast/lib/footer.js -function defaultFootnoteBackContent(_4, rereferenceIndex) { - const result = [{ type: "text", value: "\u21A9" }]; - if (rereferenceIndex > 1) { - result.push({ - type: "element", - tagName: "sup", - properties: {}, - children: [{ type: "text", value: String(rereferenceIndex) }] - }); - } - return result; -} -function defaultFootnoteBackLabel(referenceIndex, rereferenceIndex) { - return "Back to reference " + (referenceIndex + 1) + (rereferenceIndex > 1 ? "-" + rereferenceIndex : ""); -} -function footer(state) { - const clobberPrefix = typeof state.options.clobberPrefix === "string" ? state.options.clobberPrefix : "user-content-"; - const footnoteBackContent = state.options.footnoteBackContent || defaultFootnoteBackContent; - const footnoteBackLabel = state.options.footnoteBackLabel || defaultFootnoteBackLabel; - const footnoteLabel = state.options.footnoteLabel || "Footnotes"; - const footnoteLabelTagName = state.options.footnoteLabelTagName || "h2"; - const footnoteLabelProperties = state.options.footnoteLabelProperties || { - className: ["sr-only"] - }; - const listItems = []; - let referenceIndex = -1; - while (++referenceIndex < state.footnoteOrder.length) { - const definition3 = state.footnoteById.get( - state.footnoteOrder[referenceIndex] - ); - if (!definition3) { - continue; - } - const content3 = state.all(definition3); - const id = String(definition3.identifier).toUpperCase(); - const safeId = normalizeUri(id.toLowerCase()); - let rereferenceIndex = 0; - const backReferences = []; - const counts = state.footnoteCounts.get(id); - while (counts !== void 0 && ++rereferenceIndex <= counts) { - if (backReferences.length > 0) { - backReferences.push({ type: "text", value: " " }); - } - let children2 = typeof footnoteBackContent === "string" ? footnoteBackContent : footnoteBackContent(referenceIndex, rereferenceIndex); - if (typeof children2 === "string") { - children2 = { type: "text", value: children2 }; - } - backReferences.push({ - type: "element", - tagName: "a", - properties: { - href: "#" + clobberPrefix + "fnref-" + safeId + (rereferenceIndex > 1 ? "-" + rereferenceIndex : ""), - dataFootnoteBackref: "", - ariaLabel: typeof footnoteBackLabel === "string" ? footnoteBackLabel : footnoteBackLabel(referenceIndex, rereferenceIndex), - className: ["data-footnote-backref"] - }, - children: Array.isArray(children2) ? children2 : [children2] - }); - } - const tail = content3[content3.length - 1]; - if (tail && tail.type === "element" && tail.tagName === "p") { - const tailTail = tail.children[tail.children.length - 1]; - if (tailTail && tailTail.type === "text") { - tailTail.value += " "; - } else { - tail.children.push({ type: "text", value: " " }); - } - tail.children.push(...backReferences); - } else { - content3.push(...backReferences); - } - const listItem3 = { - type: "element", - tagName: "li", - properties: { id: clobberPrefix + "fn-" + safeId }, - children: state.wrap(content3, true) - }; - state.patch(definition3, listItem3); - listItems.push(listItem3); - } - if (listItems.length === 0) { - return; - } - return { - type: "element", - tagName: "section", - properties: { dataFootnotes: true, className: ["footnotes"] }, - children: [ - { - type: "element", - tagName: footnoteLabelTagName, - properties: { - ...esm_default(footnoteLabelProperties), - id: "footnote-label" - }, - children: [{ type: "text", value: footnoteLabel }] - }, - { type: "text", value: "\n" }, - { - type: "element", - tagName: "ol", - properties: {}, - children: state.wrap(listItems, true) - }, - { type: "text", value: "\n" } - ] - }; -} -var init_footer = __esm({ - "node_modules/.pnpm/mdast-util-to-hast@13.2.1/node_modules/mdast-util-to-hast/lib/footer.js"() { - init_esm(); - init_micromark_util_sanitize_uri(); - } -}); - -// node_modules/.pnpm/mdast-util-to-hast@13.2.1/node_modules/mdast-util-to-hast/lib/state.js -function createState(tree, options) { - const settings = options || emptyOptions5; - const definitionById = /* @__PURE__ */ new Map(); - const footnoteById = /* @__PURE__ */ new Map(); - const footnoteCounts = /* @__PURE__ */ new Map(); - const handlers2 = { ...handlers, ...settings.handlers }; - const state = { - all: all3, - applyData, - definitionById, - footnoteById, - footnoteCounts, - footnoteOrder: [], - handlers: handlers2, - one: one3, - options: settings, - patch: patch2, - wrap: wrap3 - }; - visit(tree, function(node2) { - if (node2.type === "definition" || node2.type === "footnoteDefinition") { - const map7 = node2.type === "definition" ? definitionById : footnoteById; - const id = String(node2.identifier).toUpperCase(); - if (!map7.has(id)) { - map7.set(id, node2); - } - } - }); - return state; - function one3(node2, parent) { - const type5 = node2.type; - const handle3 = state.handlers[type5]; - if (own8.call(state.handlers, type5) && handle3) { - return handle3(state, node2, parent); - } - if (state.options.passThrough && state.options.passThrough.includes(type5)) { - if ("children" in node2) { - const { children: children2, ...shallow } = node2; - const result = esm_default(shallow); - result.children = state.all(node2); - return result; - } - return esm_default(node2); - } - const unknown3 = state.options.unknownHandler || defaultUnknownHandler; - return unknown3(state, node2, parent); - } - function all3(parent) { - const values = []; - if ("children" in parent) { - const nodes = parent.children; - let index2 = -1; - while (++index2 < nodes.length) { - const result = state.one(nodes[index2], parent); - if (result) { - if (index2 && nodes[index2 - 1].type === "break") { - if (!Array.isArray(result) && result.type === "text") { - result.value = trimMarkdownSpaceStart(result.value); - } - if (!Array.isArray(result) && result.type === "element") { - const head2 = result.children[0]; - if (head2 && head2.type === "text") { - head2.value = trimMarkdownSpaceStart(head2.value); - } - } - } - if (Array.isArray(result)) { - values.push(...result); - } else { - values.push(result); - } - } - } - } - return values; - } -} -function patch2(from2, to) { - if (from2.position) to.position = position2(from2); -} -function applyData(from2, to) { - let result = to; - if (from2 && from2.data) { - const hName = from2.data.hName; - const hChildren = from2.data.hChildren; - const hProperties = from2.data.hProperties; - if (typeof hName === "string") { - if (result.type === "element") { - result.tagName = hName; - } else { - const children2 = "children" in result ? result.children : [result]; - result = { type: "element", tagName: hName, properties: {}, children: children2 }; - } - } - if (result.type === "element" && hProperties) { - Object.assign(result.properties, esm_default(hProperties)); - } - if ("children" in result && result.children && hChildren !== null && hChildren !== void 0) { - result.children = hChildren; - } - } - return result; -} -function defaultUnknownHandler(state, node2) { - const data8 = node2.data || {}; - const result = "value" in node2 && !(own8.call(data8, "hProperties") || own8.call(data8, "hChildren")) ? { type: "text", value: node2.value } : { - type: "element", - tagName: "div", - properties: {}, - children: state.all(node2) - }; - state.patch(node2, result); - return state.applyData(node2, result); -} -function wrap3(nodes, loose) { - const result = []; - let index2 = -1; - if (loose) { - result.push({ type: "text", value: "\n" }); - } - while (++index2 < nodes.length) { - if (index2) result.push({ type: "text", value: "\n" }); - result.push(nodes[index2]); - } - if (loose && nodes.length > 0) { - result.push({ type: "text", value: "\n" }); - } - return result; -} -function trimMarkdownSpaceStart(value2) { - let index2 = 0; - let code4 = value2.charCodeAt(index2); - while (code4 === 9 || code4 === 32) { - index2++; - code4 = value2.charCodeAt(index2); - } - return value2.slice(index2); -} -var own8, emptyOptions5; -var init_state = __esm({ - "node_modules/.pnpm/mdast-util-to-hast@13.2.1/node_modules/mdast-util-to-hast/lib/state.js"() { - init_esm(); - init_unist_util_visit(); - init_unist_util_position(); - init_handlers(); - own8 = {}.hasOwnProperty; - emptyOptions5 = {}; - } -}); - -// node_modules/.pnpm/mdast-util-to-hast@13.2.1/node_modules/mdast-util-to-hast/lib/index.js -function toHast(tree, options) { - const state = createState(tree, options); - const node2 = state.one(tree, void 0); - const foot = footer(state); - const result = Array.isArray(node2) ? { type: "root", children: node2 } : node2 || { type: "root", children: [] }; - if (foot) { - ok("children" in result); - result.children.push({ type: "text", value: "\n" }, foot); - } - return result; -} -var init_lib27 = __esm({ - "node_modules/.pnpm/mdast-util-to-hast@13.2.1/node_modules/mdast-util-to-hast/lib/index.js"() { - init_default(); - init_footer(); - init_state(); - } -}); - -// node_modules/.pnpm/mdast-util-to-hast@13.2.1/node_modules/mdast-util-to-hast/index.js -var init_mdast_util_to_hast = __esm({ - "node_modules/.pnpm/mdast-util-to-hast@13.2.1/node_modules/mdast-util-to-hast/index.js"() { - init_handlers(); - init_lib27(); - init_footer(); - } -}); - -// node_modules/.pnpm/html-void-elements@3.0.0/node_modules/html-void-elements/index.js -var htmlVoidElements; -var init_html_void_elements = __esm({ - "node_modules/.pnpm/html-void-elements@3.0.0/node_modules/html-void-elements/index.js"() { - htmlVoidElements = [ - "area", - "base", - "basefont", - "bgsound", - "br", - "col", - "command", - "embed", - "frame", - "hr", - "image", - "img", - "input", - "keygen", - "link", - "meta", - "param", - "source", - "track", - "wbr" - ]; - } -}); - -// node_modules/.pnpm/property-information@7.1.0/node_modules/property-information/lib/util/schema.js -var Schema; -var init_schema2 = __esm({ - "node_modules/.pnpm/property-information@7.1.0/node_modules/property-information/lib/util/schema.js"() { - Schema = class { - /** - * @param {SchemaType['property']} property - * Property. - * @param {SchemaType['normal']} normal - * Normal. - * @param {Space | undefined} [space] - * Space. - * @returns - * Schema. - */ - constructor(property, normal, space2) { - this.normal = normal; - this.property = property; - if (space2) { - this.space = space2; - } - } - }; - Schema.prototype.normal = {}; - Schema.prototype.property = {}; - Schema.prototype.space = void 0; - } -}); - -// node_modules/.pnpm/property-information@7.1.0/node_modules/property-information/lib/util/merge.js -function merge3(definitions, space2) { - const property = {}; - const normal = {}; - for (const definition3 of definitions) { - Object.assign(property, definition3.property); - Object.assign(normal, definition3.normal); - } - return new Schema(property, normal, space2); -} -var init_merge3 = __esm({ - "node_modules/.pnpm/property-information@7.1.0/node_modules/property-information/lib/util/merge.js"() { - init_schema2(); - } -}); - -// node_modules/.pnpm/property-information@7.1.0/node_modules/property-information/lib/normalize.js -function normalize3(value2) { - return value2.toLowerCase(); -} -var init_normalize = __esm({ - "node_modules/.pnpm/property-information@7.1.0/node_modules/property-information/lib/normalize.js"() { - } -}); - -// node_modules/.pnpm/property-information@7.1.0/node_modules/property-information/lib/util/info.js -var Info; -var init_info = __esm({ - "node_modules/.pnpm/property-information@7.1.0/node_modules/property-information/lib/util/info.js"() { - Info = class { - /** - * @param {string} property - * Property. - * @param {string} attribute - * Attribute. - * @returns - * Info. - */ - constructor(property, attribute) { - this.attribute = attribute; - this.property = property; - } - }; - Info.prototype.attribute = ""; - Info.prototype.booleanish = false; - Info.prototype.boolean = false; - Info.prototype.commaOrSpaceSeparated = false; - Info.prototype.commaSeparated = false; - Info.prototype.defined = false; - Info.prototype.mustUseProperty = false; - Info.prototype.number = false; - Info.prototype.overloadedBoolean = false; - Info.prototype.property = ""; - Info.prototype.spaceSeparated = false; - Info.prototype.space = void 0; - } -}); - -// node_modules/.pnpm/property-information@7.1.0/node_modules/property-information/lib/util/types.js -var types_exports = {}; -__export(types_exports, { - boolean: () => boolean, - booleanish: () => booleanish, - commaOrSpaceSeparated: () => commaOrSpaceSeparated, - commaSeparated: () => commaSeparated, - number: () => number, - overloadedBoolean: () => overloadedBoolean, - spaceSeparated: () => spaceSeparated -}); -function increment() { - return 2 ** ++powers; -} -var powers, boolean, booleanish, overloadedBoolean, number, spaceSeparated, commaSeparated, commaOrSpaceSeparated; -var init_types3 = __esm({ - "node_modules/.pnpm/property-information@7.1.0/node_modules/property-information/lib/util/types.js"() { - powers = 0; - boolean = increment(); - booleanish = increment(); - overloadedBoolean = increment(); - number = increment(); - spaceSeparated = increment(); - commaSeparated = increment(); - commaOrSpaceSeparated = increment(); - } -}); - -// node_modules/.pnpm/property-information@7.1.0/node_modules/property-information/lib/util/defined-info.js -function mark(values, key2, value2) { - if (value2) { - values[key2] = value2; - } -} -var checks, DefinedInfo; -var init_defined_info = __esm({ - "node_modules/.pnpm/property-information@7.1.0/node_modules/property-information/lib/util/defined-info.js"() { - init_info(); - init_types3(); - checks = /** @type {ReadonlyArray} */ - Object.keys(types_exports); - DefinedInfo = class extends Info { - /** - * @constructor - * @param {string} property - * Property. - * @param {string} attribute - * Attribute. - * @param {number | null | undefined} [mask] - * Mask. - * @param {Space | undefined} [space] - * Space. - * @returns - * Info. - */ - constructor(property, attribute, mask, space2) { - let index2 = -1; - super(property, attribute); - mark(this, "space", space2); - if (typeof mask === "number") { - while (++index2 < checks.length) { - const check = checks[index2]; - mark(this, checks[index2], (mask & types_exports[check]) === types_exports[check]); - } - } - } - }; - DefinedInfo.prototype.defined = true; - } -}); - -// node_modules/.pnpm/property-information@7.1.0/node_modules/property-information/lib/util/create.js -function create6(definition3) { - const properties2 = {}; - const normals = {}; - for (const [property, value2] of Object.entries(definition3.properties)) { - const info = new DefinedInfo( - property, - definition3.transform(definition3.attributes || {}, property), - value2, - definition3.space - ); - if (definition3.mustUseProperty && definition3.mustUseProperty.includes(property)) { - info.mustUseProperty = true; - } - properties2[property] = info; - normals[normalize3(property)] = property; - normals[normalize3(info.attribute)] = property; - } - return new Schema(properties2, normals, definition3.space); -} -var init_create = __esm({ - "node_modules/.pnpm/property-information@7.1.0/node_modules/property-information/lib/util/create.js"() { - init_normalize(); - init_defined_info(); - init_schema2(); - } -}); - -// node_modules/.pnpm/property-information@7.1.0/node_modules/property-information/lib/aria.js -var aria2; -var init_aria = __esm({ - "node_modules/.pnpm/property-information@7.1.0/node_modules/property-information/lib/aria.js"() { - init_create(); - init_types3(); - aria2 = create6({ - properties: { - ariaActiveDescendant: null, - ariaAtomic: booleanish, - ariaAutoComplete: null, - ariaBusy: booleanish, - ariaChecked: booleanish, - ariaColCount: number, - ariaColIndex: number, - ariaColSpan: number, - ariaControls: spaceSeparated, - ariaCurrent: null, - ariaDescribedBy: spaceSeparated, - ariaDetails: null, - ariaDisabled: booleanish, - ariaDropEffect: spaceSeparated, - ariaErrorMessage: null, - ariaExpanded: booleanish, - ariaFlowTo: spaceSeparated, - ariaGrabbed: booleanish, - ariaHasPopup: null, - ariaHidden: booleanish, - ariaInvalid: null, - ariaKeyShortcuts: null, - ariaLabel: null, - ariaLabelledBy: spaceSeparated, - ariaLevel: number, - ariaLive: null, - ariaModal: booleanish, - ariaMultiLine: booleanish, - ariaMultiSelectable: booleanish, - ariaOrientation: null, - ariaOwns: spaceSeparated, - ariaPlaceholder: null, - ariaPosInSet: number, - ariaPressed: booleanish, - ariaReadOnly: booleanish, - ariaRelevant: null, - ariaRequired: booleanish, - ariaRoleDescription: spaceSeparated, - ariaRowCount: number, - ariaRowIndex: number, - ariaRowSpan: number, - ariaSelected: booleanish, - ariaSetSize: number, - ariaSort: null, - ariaValueMax: number, - ariaValueMin: number, - ariaValueNow: number, - ariaValueText: null, - role: null - }, - transform(_4, property) { - return property === "role" ? property : "aria-" + property.slice(4).toLowerCase(); - } - }); - } -}); - -// node_modules/.pnpm/property-information@7.1.0/node_modules/property-information/lib/util/case-sensitive-transform.js -function caseSensitiveTransform(attributes, attribute) { - return attribute in attributes ? attributes[attribute] : attribute; -} -var init_case_sensitive_transform = __esm({ - "node_modules/.pnpm/property-information@7.1.0/node_modules/property-information/lib/util/case-sensitive-transform.js"() { - } -}); - -// node_modules/.pnpm/property-information@7.1.0/node_modules/property-information/lib/util/case-insensitive-transform.js -function caseInsensitiveTransform(attributes, property) { - return caseSensitiveTransform(attributes, property.toLowerCase()); -} -var init_case_insensitive_transform = __esm({ - "node_modules/.pnpm/property-information@7.1.0/node_modules/property-information/lib/util/case-insensitive-transform.js"() { - init_case_sensitive_transform(); - } -}); - -// node_modules/.pnpm/property-information@7.1.0/node_modules/property-information/lib/html.js -var html3; -var init_html9 = __esm({ - "node_modules/.pnpm/property-information@7.1.0/node_modules/property-information/lib/html.js"() { - init_case_insensitive_transform(); - init_create(); - init_types3(); - html3 = create6({ - attributes: { - acceptcharset: "accept-charset", - classname: "class", - htmlfor: "for", - httpequiv: "http-equiv" - }, - mustUseProperty: ["checked", "multiple", "muted", "selected"], - properties: { - // Standard Properties. - abbr: null, - accept: commaSeparated, - acceptCharset: spaceSeparated, - accessKey: spaceSeparated, - action: null, - allow: null, - allowFullScreen: boolean, - allowPaymentRequest: boolean, - allowUserMedia: boolean, - alt: null, - as: null, - async: boolean, - autoCapitalize: null, - autoComplete: spaceSeparated, - autoFocus: boolean, - autoPlay: boolean, - blocking: spaceSeparated, - capture: null, - charSet: null, - checked: boolean, - cite: null, - className: spaceSeparated, - cols: number, - colSpan: null, - content: null, - contentEditable: booleanish, - controls: boolean, - controlsList: spaceSeparated, - coords: number | commaSeparated, - crossOrigin: null, - data: null, - dateTime: null, - decoding: null, - default: boolean, - defer: boolean, - dir: null, - dirName: null, - disabled: boolean, - download: overloadedBoolean, - draggable: booleanish, - encType: null, - enterKeyHint: null, - fetchPriority: null, - form: null, - formAction: null, - formEncType: null, - formMethod: null, - formNoValidate: boolean, - formTarget: null, - headers: spaceSeparated, - height: number, - hidden: overloadedBoolean, - high: number, - href: null, - hrefLang: null, - htmlFor: spaceSeparated, - httpEquiv: spaceSeparated, - id: null, - imageSizes: null, - imageSrcSet: null, - inert: boolean, - inputMode: null, - integrity: null, - is: null, - isMap: boolean, - itemId: null, - itemProp: spaceSeparated, - itemRef: spaceSeparated, - itemScope: boolean, - itemType: spaceSeparated, - kind: null, - label: null, - lang: null, - language: null, - list: null, - loading: null, - loop: boolean, - low: number, - manifest: null, - max: null, - maxLength: number, - media: null, - method: null, - min: null, - minLength: number, - multiple: boolean, - muted: boolean, - name: null, - nonce: null, - noModule: boolean, - noValidate: boolean, - onAbort: null, - onAfterPrint: null, - onAuxClick: null, - onBeforeMatch: null, - onBeforePrint: null, - onBeforeToggle: null, - onBeforeUnload: null, - onBlur: null, - onCancel: null, - onCanPlay: null, - onCanPlayThrough: null, - onChange: null, - onClick: null, - onClose: null, - onContextLost: null, - onContextMenu: null, - onContextRestored: null, - onCopy: null, - onCueChange: null, - onCut: null, - onDblClick: null, - onDrag: null, - onDragEnd: null, - onDragEnter: null, - onDragExit: null, - onDragLeave: null, - onDragOver: null, - onDragStart: null, - onDrop: null, - onDurationChange: null, - onEmptied: null, - onEnded: null, - onError: null, - onFocus: null, - onFormData: null, - onHashChange: null, - onInput: null, - onInvalid: null, - onKeyDown: null, - onKeyPress: null, - onKeyUp: null, - onLanguageChange: null, - onLoad: null, - onLoadedData: null, - onLoadedMetadata: null, - onLoadEnd: null, - onLoadStart: null, - onMessage: null, - onMessageError: null, - onMouseDown: null, - onMouseEnter: null, - onMouseLeave: null, - onMouseMove: null, - onMouseOut: null, - onMouseOver: null, - onMouseUp: null, - onOffline: null, - onOnline: null, - onPageHide: null, - onPageShow: null, - onPaste: null, - onPause: null, - onPlay: null, - onPlaying: null, - onPopState: null, - onProgress: null, - onRateChange: null, - onRejectionHandled: null, - onReset: null, - onResize: null, - onScroll: null, - onScrollEnd: null, - onSecurityPolicyViolation: null, - onSeeked: null, - onSeeking: null, - onSelect: null, - onSlotChange: null, - onStalled: null, - onStorage: null, - onSubmit: null, - onSuspend: null, - onTimeUpdate: null, - onToggle: null, - onUnhandledRejection: null, - onUnload: null, - onVolumeChange: null, - onWaiting: null, - onWheel: null, - open: boolean, - optimum: number, - pattern: null, - ping: spaceSeparated, - placeholder: null, - playsInline: boolean, - popover: null, - popoverTarget: null, - popoverTargetAction: null, - poster: null, - preload: null, - readOnly: boolean, - referrerPolicy: null, - rel: spaceSeparated, - required: boolean, - reversed: boolean, - rows: number, - rowSpan: number, - sandbox: spaceSeparated, - scope: null, - scoped: boolean, - seamless: boolean, - selected: boolean, - shadowRootClonable: boolean, - shadowRootDelegatesFocus: boolean, - shadowRootMode: null, - shape: null, - size: number, - sizes: null, - slot: null, - span: number, - spellCheck: booleanish, - src: null, - srcDoc: null, - srcLang: null, - srcSet: null, - start: number, - step: null, - style: null, - tabIndex: number, - target: null, - title: null, - translate: null, - type: null, - typeMustMatch: boolean, - useMap: null, - value: booleanish, - width: number, - wrap: null, - writingSuggestions: null, - // Legacy. - // See: https://html.spec.whatwg.org/#other-elements,-attributes-and-apis - align: null, - // Several. Use CSS `text-align` instead, - aLink: null, - // ``. Use CSS `a:active {color}` instead - archive: spaceSeparated, - // ``. List of URIs to archives - axis: null, - // `` and ``. Use `scope` on `` - background: null, - // ``. Use CSS `background-image` instead - bgColor: null, - // `` and table elements. Use CSS `background-color` instead - border: number, - // ``. Use CSS `border-width` instead, - borderColor: null, - // `
    `. Use CSS `border-color` instead, - bottomMargin: number, - // `` - cellPadding: null, - // `
    ` - cellSpacing: null, - // `
    ` - char: null, - // Several table elements. When `align=char`, sets the character to align on - charOff: null, - // Several table elements. When `char`, offsets the alignment - classId: null, - // `` - clear: null, - // `
    `. Use CSS `clear` instead - code: null, - // `` - codeBase: null, - // `` - codeType: null, - // `` - color: null, - // `` and `
    `. Use CSS instead - compact: boolean, - // Lists. Use CSS to reduce space between items instead - declare: boolean, - // `` - event: null, - // `\n * ```\n * @nocollapse\n * @category styles\n */\n static styles?: CSSResultGroup;\n\n /**\n * Returns a list of attributes corresponding to the registered properties.\n * @nocollapse\n * @category attributes\n */\n static get observedAttributes() {\n // Ensure we've created all properties\n this.finalize();\n // this.__attributeToPropertyMap is only undefined after finalize() in\n // ReactiveElement itself. ReactiveElement.observedAttributes is only\n // accessed with ReactiveElement as the receiver when a subclass or mixin\n // calls super.observedAttributes\n return (\n this.__attributeToPropertyMap && [...this.__attributeToPropertyMap.keys()]\n );\n }\n\n private __instanceProperties?: PropertyValues = undefined;\n\n /**\n * Creates a property accessor on the element prototype if one does not exist\n * and stores a {@linkcode PropertyDeclaration} for the property with the\n * given options. The property setter calls the property's `hasChanged`\n * property option or uses a strict identity check to determine whether or not\n * to request an update.\n *\n * This method may be overridden to customize properties; however,\n * when doing so, it's important to call `super.createProperty` to ensure\n * the property is setup correctly. This method calls\n * `getPropertyDescriptor` internally to get a descriptor to install.\n * To customize what properties do when they are get or set, override\n * `getPropertyDescriptor`. To customize the options for a property,\n * implement `createProperty` like this:\n *\n * ```ts\n * static createProperty(name, options) {\n * options = Object.assign(options, {myOption: true});\n * super.createProperty(name, options);\n * }\n * ```\n *\n * @nocollapse\n * @category properties\n */\n static createProperty(\n name: PropertyKey,\n options: PropertyDeclaration = defaultPropertyDeclaration\n ) {\n // If this is a state property, force the attribute to false.\n if (options.state) {\n (options as Mutable).attribute = false;\n }\n this.__prepare();\n // Whether this property is wrapping accessors.\n // Helps control the initial value change and reflection logic.\n if (this.prototype.hasOwnProperty(name)) {\n options = Object.create(options);\n options.wrapped = true;\n }\n this.elementProperties.set(name, options);\n if (!options.noAccessor) {\n const key = DEV_MODE\n ? // Use Symbol.for in dev mode to make it easier to maintain state\n // when doing HMR.\n Symbol.for(`${String(name)} (@property() cache)`)\n : Symbol();\n const descriptor = this.getPropertyDescriptor(name, key, options);\n if (descriptor !== undefined) {\n defineProperty(this.prototype, name, descriptor);\n }\n }\n }\n\n /**\n * Returns a property descriptor to be defined on the given named property.\n * If no descriptor is returned, the property will not become an accessor.\n * For example,\n *\n * ```ts\n * class MyElement extends LitElement {\n * static getPropertyDescriptor(name, key, options) {\n * const defaultDescriptor =\n * super.getPropertyDescriptor(name, key, options);\n * const setter = defaultDescriptor.set;\n * return {\n * get: defaultDescriptor.get,\n * set(value) {\n * setter.call(this, value);\n * // custom action.\n * },\n * configurable: true,\n * enumerable: true\n * }\n * }\n * }\n * ```\n *\n * @nocollapse\n * @category properties\n */\n protected static getPropertyDescriptor(\n name: PropertyKey,\n key: string | symbol,\n options: PropertyDeclaration\n ): PropertyDescriptor | undefined {\n const {get, set} = getOwnPropertyDescriptor(this.prototype, name) ?? {\n get(this: ReactiveElement) {\n return this[key as keyof typeof this];\n },\n set(this: ReactiveElement, v: unknown) {\n (this as unknown as Record)[key] = v;\n },\n };\n if (DEV_MODE && get == null) {\n if ('value' in (getOwnPropertyDescriptor(this.prototype, name) ?? {})) {\n throw new Error(\n `Field ${JSON.stringify(String(name))} on ` +\n `${this.name} was declared as a reactive property ` +\n `but it's actually declared as a value on the prototype. ` +\n `Usually this is due to using @property or @state on a method.`\n );\n }\n issueWarning(\n 'reactive-property-without-getter',\n `Field ${JSON.stringify(String(name))} on ` +\n `${this.name} was declared as a reactive property ` +\n `but it does not have a getter. This will be an error in a ` +\n `future version of Lit.`\n );\n }\n return {\n get,\n set(this: ReactiveElement, value: unknown) {\n const oldValue = get?.call(this);\n set?.call(this, value);\n this.requestUpdate(name, oldValue, options);\n },\n configurable: true,\n enumerable: true,\n };\n }\n\n /**\n * Returns the property options associated with the given property.\n * These options are defined with a `PropertyDeclaration` via the `properties`\n * object or the `@property` decorator and are registered in\n * `createProperty(...)`.\n *\n * Note, this method should be considered \"final\" and not overridden. To\n * customize the options for a given property, override\n * {@linkcode createProperty}.\n *\n * @nocollapse\n * @final\n * @category properties\n */\n static getPropertyOptions(name: PropertyKey) {\n return this.elementProperties.get(name) ?? defaultPropertyDeclaration;\n }\n\n // Temporary, until google3 is on TypeScript 5.2\n declare static [Symbol.metadata]: object & Record;\n\n /**\n * Initializes static own properties of the class used in bookkeeping\n * for element properties, initializers, etc.\n *\n * Can be called multiple times by code that needs to ensure these\n * properties exist before using them.\n *\n * This method ensures the superclass is finalized so that inherited\n * property metadata can be copied down.\n * @nocollapse\n */\n private static __prepare() {\n if (\n this.hasOwnProperty(JSCompiler_renameProperty('elementProperties', this))\n ) {\n // Already prepared\n return;\n }\n // Finalize any superclasses\n const superCtor = getPrototypeOf(this) as typeof ReactiveElement;\n superCtor.finalize();\n\n // Create own set of initializers for this class if any exist on the\n // superclass and copy them down. Note, for a small perf boost, avoid\n // creating initializers unless needed.\n if (superCtor._initializers !== undefined) {\n this._initializers = [...superCtor._initializers];\n }\n // Initialize elementProperties from the superclass\n this.elementProperties = new Map(superCtor.elementProperties);\n }\n\n /**\n * Finishes setting up the class so that it's ready to be registered\n * as a custom element and instantiated.\n *\n * This method is called by the ReactiveElement.observedAttributes getter.\n * If you override the observedAttributes getter, you must either call\n * super.observedAttributes to trigger finalization, or call finalize()\n * yourself.\n *\n * @nocollapse\n */\n protected static finalize() {\n if (this.hasOwnProperty(JSCompiler_renameProperty('finalized', this))) {\n return;\n }\n this.finalized = true;\n this.__prepare();\n\n // Create properties from the static properties block:\n if (this.hasOwnProperty(JSCompiler_renameProperty('properties', this))) {\n const props = this.properties;\n const propKeys = [\n ...getOwnPropertyNames(props),\n ...getOwnPropertySymbols(props),\n ] as Array;\n for (const p of propKeys) {\n this.createProperty(p, props[p]);\n }\n }\n\n // Create properties from standard decorator metadata:\n const metadata = this[Symbol.metadata];\n if (metadata !== null) {\n const properties = litPropertyMetadata.get(metadata);\n if (properties !== undefined) {\n for (const [p, options] of properties) {\n this.elementProperties.set(p, options);\n }\n }\n }\n\n // Create the attribute-to-property map\n this.__attributeToPropertyMap = new Map();\n for (const [p, options] of this.elementProperties) {\n const attr = this.__attributeNameForProperty(p, options);\n if (attr !== undefined) {\n this.__attributeToPropertyMap.set(attr, p);\n }\n }\n\n this.elementStyles = this.finalizeStyles(this.styles);\n\n if (DEV_MODE) {\n if (this.hasOwnProperty('createProperty')) {\n issueWarning(\n 'no-override-create-property',\n 'Overriding ReactiveElement.createProperty() is deprecated. ' +\n 'The override will not be called with standard decorators'\n );\n }\n if (this.hasOwnProperty('getPropertyDescriptor')) {\n issueWarning(\n 'no-override-get-property-descriptor',\n 'Overriding ReactiveElement.getPropertyDescriptor() is deprecated. ' +\n 'The override will not be called with standard decorators'\n );\n }\n }\n }\n\n /**\n * Options used when calling `attachShadow`. Set this property to customize\n * the options for the shadowRoot; for example, to create a closed\n * shadowRoot: `{mode: 'closed'}`.\n *\n * Note, these options are used in `createRenderRoot`. If this method\n * is customized, options should be respected if possible.\n * @nocollapse\n * @category rendering\n */\n static shadowRootOptions: ShadowRootInit = {mode: 'open'};\n\n /**\n * Takes the styles the user supplied via the `static styles` property and\n * returns the array of styles to apply to the element.\n * Override this method to integrate into a style management system.\n *\n * Styles are deduplicated preserving the _last_ instance in the list. This\n * is a performance optimization to avoid duplicated styles that can occur\n * especially when composing via subclassing. The last item is kept to try\n * to preserve the cascade order with the assumption that it's most important\n * that last added styles override previous styles.\n *\n * @nocollapse\n * @category styles\n */\n protected static finalizeStyles(\n styles?: CSSResultGroup\n ): Array {\n const elementStyles = [];\n if (Array.isArray(styles)) {\n // Dedupe the flattened array in reverse order to preserve the last items.\n // Casting to Array works around TS error that\n // appears to come from trying to flatten a type CSSResultArray.\n const set = new Set((styles as Array).flat(Infinity).reverse());\n // Then preserve original order by adding the set items in reverse order.\n for (const s of set) {\n elementStyles.unshift(getCompatibleStyle(s as CSSResultOrNative));\n }\n } else if (styles !== undefined) {\n elementStyles.push(getCompatibleStyle(styles));\n }\n return elementStyles;\n }\n\n /**\n * Node or ShadowRoot into which element DOM should be rendered. Defaults\n * to an open shadowRoot.\n * @category rendering\n */\n readonly renderRoot!: HTMLElement | DocumentFragment;\n\n /**\n * Returns the property name for the given attribute `name`.\n * @nocollapse\n */\n private static __attributeNameForProperty(\n name: PropertyKey,\n options: PropertyDeclaration\n ) {\n const attribute = options.attribute;\n return attribute === false\n ? undefined\n : typeof attribute === 'string'\n ? attribute\n : typeof name === 'string'\n ? name.toLowerCase()\n : undefined;\n }\n\n // Initialize to an unresolved Promise so we can make sure the element has\n // connected before first update.\n private __updatePromise!: Promise;\n\n /**\n * True if there is a pending update as a result of calling `requestUpdate()`.\n * Should only be read.\n * @category updates\n */\n isUpdatePending = false;\n\n /**\n * Is set to `true` after the first update. The element code cannot assume\n * that `renderRoot` exists before the element `hasUpdated`.\n * @category updates\n */\n hasUpdated = false;\n\n /**\n * Map with keys for any properties that have changed since the last\n * update cycle with previous values.\n *\n * @internal\n */\n _$changedProperties!: PropertyValues;\n\n /**\n * Records property default values when the\n * `useDefault` option is used.\n */\n private __defaultValues?: Map;\n\n /**\n * Properties that should be reflected when updated.\n */\n private __reflectingProperties?: Set;\n\n /**\n * Name of currently reflecting property\n */\n private __reflectingProperty: PropertyKey | null = null;\n\n /**\n * Set of controllers.\n */\n private __controllers?: Set;\n\n constructor() {\n super();\n this.__initialize();\n }\n\n /**\n * Internal only override point for customizing work done when elements\n * are constructed.\n */\n private __initialize() {\n this.__updatePromise = new Promise(\n (res) => (this.enableUpdating = res)\n );\n this._$changedProperties = new Map();\n // This enqueues a microtask that must run before the first update, so it\n // must be called before requestUpdate()\n this.__saveInstanceProperties();\n // ensures first update will be caught by an early access of\n // `updateComplete`\n this.requestUpdate();\n (this.constructor as typeof ReactiveElement)._initializers?.forEach((i) =>\n i(this)\n );\n }\n\n /**\n * Registers a `ReactiveController` to participate in the element's reactive\n * update cycle. The element automatically calls into any registered\n * controllers during its lifecycle callbacks.\n *\n * If the element is connected when `addController()` is called, the\n * controller's `hostConnected()` callback will be immediately called.\n * @category controllers\n */\n addController(controller: ReactiveController) {\n (this.__controllers ??= new Set()).add(controller);\n // If a controller is added after the element has been connected,\n // call hostConnected. Note, re-using existence of `renderRoot` here\n // (which is set in connectedCallback) to avoid the need to track a\n // first connected state.\n if (this.renderRoot !== undefined && this.isConnected) {\n controller.hostConnected?.();\n }\n }\n\n /**\n * Removes a `ReactiveController` from the element.\n * @category controllers\n */\n removeController(controller: ReactiveController) {\n this.__controllers?.delete(controller);\n }\n\n /**\n * Fixes any properties set on the instance before upgrade time.\n * Otherwise these would shadow the accessor and break these properties.\n * The properties are stored in a Map which is played back after the\n * constructor runs.\n */\n private __saveInstanceProperties() {\n const instanceProperties = new Map();\n const elementProperties = (this.constructor as typeof ReactiveElement)\n .elementProperties;\n for (const p of elementProperties.keys() as IterableIterator) {\n if (this.hasOwnProperty(p)) {\n instanceProperties.set(p, this[p]);\n delete this[p];\n }\n }\n if (instanceProperties.size > 0) {\n this.__instanceProperties = instanceProperties;\n }\n }\n\n /**\n * Returns the node into which the element should render and by default\n * creates and returns an open shadowRoot. Implement to customize where the\n * element's DOM is rendered. For example, to render into the element's\n * childNodes, return `this`.\n *\n * @return Returns a node into which to render.\n * @category rendering\n */\n protected createRenderRoot(): HTMLElement | DocumentFragment {\n const renderRoot =\n this.shadowRoot ??\n this.attachShadow(\n (this.constructor as typeof ReactiveElement).shadowRootOptions\n );\n adoptStyles(\n renderRoot,\n (this.constructor as typeof ReactiveElement).elementStyles\n );\n return renderRoot;\n }\n\n /**\n * On first connection, creates the element's renderRoot, sets up\n * element styling, and enables updating.\n * @category lifecycle\n */\n connectedCallback() {\n // Create renderRoot before controllers `hostConnected`\n (this as Mutable).renderRoot ??=\n this.createRenderRoot();\n this.enableUpdating(true);\n this.__controllers?.forEach((c) => c.hostConnected?.());\n }\n\n /**\n * Note, this method should be considered final and not overridden. It is\n * overridden on the element instance with a function that triggers the first\n * update.\n * @category updates\n */\n protected enableUpdating(_requestedUpdate: boolean) {}\n\n /**\n * Allows for `super.disconnectedCallback()` in extensions while\n * reserving the possibility of making non-breaking feature additions\n * when disconnecting at some point in the future.\n * @category lifecycle\n */\n disconnectedCallback() {\n this.__controllers?.forEach((c) => c.hostDisconnected?.());\n }\n\n /**\n * Synchronizes property values when attributes change.\n *\n * Specifically, when an attribute is set, the corresponding property is set.\n * You should rarely need to implement this callback. If this method is\n * overridden, `super.attributeChangedCallback(name, _old, value)` must be\n * called.\n *\n * See [responding to attribute changes](https://developer.mozilla.org/en-US/docs/Web/API/Web_components/Using_custom_elements#responding_to_attribute_changes)\n * on MDN for more information about the `attributeChangedCallback`.\n * @category attributes\n */\n attributeChangedCallback(\n name: string,\n _old: string | null,\n value: string | null\n ) {\n this._$attributeToProperty(name, value);\n }\n\n private __propertyToAttribute(name: PropertyKey, value: unknown) {\n const elemProperties: PropertyDeclarationMap = (\n this.constructor as typeof ReactiveElement\n ).elementProperties;\n const options = elemProperties.get(name)!;\n const attr = (\n this.constructor as typeof ReactiveElement\n ).__attributeNameForProperty(name, options);\n if (attr !== undefined && options.reflect === true) {\n const converter =\n (options.converter as ComplexAttributeConverter)?.toAttribute !==\n undefined\n ? (options.converter as ComplexAttributeConverter)\n : defaultConverter;\n const attrValue = converter.toAttribute!(value, options.type);\n if (\n DEV_MODE &&\n (this.constructor as typeof ReactiveElement).enabledWarnings!.includes(\n 'migration'\n ) &&\n attrValue === undefined\n ) {\n issueWarning(\n 'undefined-attribute-value',\n `The attribute value for the ${name as string} property is ` +\n `undefined on element ${this.localName}. The attribute will be ` +\n `removed, but in the previous version of \\`ReactiveElement\\`, ` +\n `the attribute would not have changed.`\n );\n }\n // Track if the property is being reflected to avoid\n // setting the property again via `attributeChangedCallback`. Note:\n // 1. this takes advantage of the fact that the callback is synchronous.\n // 2. will behave incorrectly if multiple attributes are in the reaction\n // stack at time of calling. However, since we process attributes\n // in `update` this should not be possible (or an extreme corner case\n // that we'd like to discover).\n // mark state reflecting\n this.__reflectingProperty = name;\n if (attrValue == null) {\n this.removeAttribute(attr);\n } else {\n this.setAttribute(attr, attrValue as string);\n }\n // mark state not reflecting\n this.__reflectingProperty = null;\n }\n }\n\n /** @internal */\n _$attributeToProperty(name: string, value: string | null) {\n const ctor = this.constructor as typeof ReactiveElement;\n // Note, hint this as an `AttributeMap` so closure clearly understands\n // the type; it has issues with tracking types through statics\n const propName = (ctor.__attributeToPropertyMap as AttributeMap).get(name);\n // Use tracking info to avoid reflecting a property value to an attribute\n // if it was just set because the attribute changed.\n if (propName !== undefined && this.__reflectingProperty !== propName) {\n const options = ctor.getPropertyOptions(propName);\n const converter =\n typeof options.converter === 'function'\n ? {fromAttribute: options.converter}\n : options.converter?.fromAttribute !== undefined\n ? options.converter\n : defaultConverter;\n // mark state reflecting\n this.__reflectingProperty = propName;\n const convertedValue = converter.fromAttribute!(value, options.type);\n this[propName as keyof this] =\n convertedValue ??\n this.__defaultValues?.get(propName) ??\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n (convertedValue as any);\n // mark state not reflecting\n this.__reflectingProperty = null;\n }\n }\n\n /**\n * Requests an update which is processed asynchronously. This should be called\n * when an element should update based on some state not triggered by setting\n * a reactive property. In this case, pass no arguments. It should also be\n * called when manually implementing a property setter. In this case, pass the\n * property `name` and `oldValue` to ensure that any configured property\n * options are honored.\n *\n * @param name name of requesting property\n * @param oldValue old value of requesting property\n * @param options property options to use instead of the previously\n * configured options\n * @param useNewValue if true, the newValue argument is used instead of\n * reading the property value. This is important to use if the reactive\n * property is a standard private accessor, as opposed to a plain\n * property, since private members can't be dynamically read by name.\n * @param newValue the new value of the property. This is only used if\n * `useNewValue` is true.\n * @category updates\n */\n requestUpdate(\n name?: PropertyKey,\n oldValue?: unknown,\n options?: PropertyDeclaration,\n useNewValue = false,\n newValue?: unknown\n ): void {\n // If we have a property key, perform property update steps.\n if (name !== undefined) {\n if (DEV_MODE && (name as unknown) instanceof Event) {\n issueWarning(\n ``,\n `The requestUpdate() method was called with an Event as the property name. This is probably a mistake caused by binding this.requestUpdate as an event listener. Instead bind a function that will call it with no arguments: () => this.requestUpdate()`\n );\n }\n const ctor = this.constructor as typeof ReactiveElement;\n if (useNewValue === false) {\n newValue = this[name as keyof this];\n }\n options ??= ctor.getPropertyOptions(name);\n const changed =\n (options.hasChanged ?? notEqual)(newValue, oldValue) ||\n // When there is no change, check a corner case that can occur when\n // 1. there's a initial value which was not reflected\n // 2. the property is subsequently set to this value.\n // For example, `prop: {useDefault: true, reflect: true}`\n // and el.prop = 'foo'. This should be considered a change if the\n // attribute is not set because we will now reflect the property to the attribute.\n (options.useDefault &&\n options.reflect &&\n newValue === this.__defaultValues?.get(name) &&\n !this.hasAttribute(ctor.__attributeNameForProperty(name, options)!));\n if (changed) {\n this._$changeProperty(name, oldValue, options);\n } else {\n // Abort the request if the property should not be considered changed.\n return;\n }\n }\n if (this.isUpdatePending === false) {\n this.__updatePromise = this.__enqueueUpdate();\n }\n }\n\n /**\n * @internal\n */\n _$changeProperty(\n name: PropertyKey,\n oldValue: unknown,\n {useDefault, reflect, wrapped}: PropertyDeclaration,\n initializeValue?: unknown\n ) {\n // Record default value when useDefault is used. This allows us to\n // restore this value when the attribute is removed.\n if (useDefault && !(this.__defaultValues ??= new Map()).has(name)) {\n this.__defaultValues.set(\n name,\n initializeValue ?? oldValue ?? this[name as keyof this]\n );\n // if this is not wrapping an accessor, it must be an initial setting\n // and in this case we do not want to record the change or reflect.\n if (wrapped !== true || initializeValue !== undefined) {\n return;\n }\n }\n // TODO (justinfagnani): Create a benchmark of Map.has() + Map.set(\n // vs just Map.set()\n if (!this._$changedProperties.has(name)) {\n // On the initial change, the old value should be `undefined`, except\n // with `useDefault`\n if (!this.hasUpdated && !useDefault) {\n oldValue = undefined;\n }\n this._$changedProperties.set(name, oldValue);\n }\n // Add to reflecting properties set.\n // Note, it's important that every change has a chance to add the\n // property to `__reflectingProperties`. This ensures setting\n // attribute + property reflects correctly.\n if (reflect === true && this.__reflectingProperty !== name) {\n (this.__reflectingProperties ??= new Set()).add(name);\n }\n }\n\n /**\n * Sets up the element to asynchronously update.\n */\n private async __enqueueUpdate() {\n this.isUpdatePending = true;\n try {\n // Ensure any previous update has resolved before updating.\n // This `await` also ensures that property changes are batched.\n await this.__updatePromise;\n } catch (e) {\n // Refire any previous errors async so they do not disrupt the update\n // cycle. Errors are refired so developers have a chance to observe\n // them, and this can be done by implementing\n // `window.onunhandledrejection`.\n Promise.reject(e);\n }\n const result = this.scheduleUpdate();\n // If `scheduleUpdate` returns a Promise, we await it. This is done to\n // enable coordinating updates with a scheduler. Note, the result is\n // checked to avoid delaying an additional microtask unless we need to.\n if (result != null) {\n await result;\n }\n return !this.isUpdatePending;\n }\n\n /**\n * Schedules an element update. You can override this method to change the\n * timing of updates by returning a Promise. The update will await the\n * returned Promise, and you should resolve the Promise to allow the update\n * to proceed. If this method is overridden, `super.scheduleUpdate()`\n * must be called.\n *\n * For instance, to schedule updates to occur just before the next frame:\n *\n * ```ts\n * override protected async scheduleUpdate(): Promise {\n * await new Promise((resolve) => requestAnimationFrame(() => resolve()));\n * super.scheduleUpdate();\n * }\n * ```\n * @category updates\n */\n protected scheduleUpdate(): void | Promise {\n const result = this.performUpdate();\n if (\n DEV_MODE &&\n (this.constructor as typeof ReactiveElement).enabledWarnings!.includes(\n 'async-perform-update'\n ) &&\n typeof (result as unknown as Promise | undefined)?.then ===\n 'function'\n ) {\n issueWarning(\n 'async-perform-update',\n `Element ${this.localName} returned a Promise from performUpdate(). ` +\n `This behavior is deprecated and will be removed in a future ` +\n `version of ReactiveElement.`\n );\n }\n return result;\n }\n\n /**\n * Performs an element update. Note, if an exception is thrown during the\n * update, `firstUpdated` and `updated` will not be called.\n *\n * Call `performUpdate()` to immediately process a pending update. This should\n * generally not be needed, but it can be done in rare cases when you need to\n * update synchronously.\n *\n * @category updates\n */\n protected performUpdate(): void {\n // Abort any update if one is not pending when this is called.\n // This can happen if `performUpdate` is called early to \"flush\"\n // the update.\n if (!this.isUpdatePending) {\n return;\n }\n debugLogEvent?.({kind: 'update'});\n if (!this.hasUpdated) {\n // Create renderRoot before first update. This occurs in `connectedCallback`\n // but is done here to support out of tree calls to `enableUpdating`/`performUpdate`.\n (this as Mutable).renderRoot ??=\n this.createRenderRoot();\n if (DEV_MODE) {\n // Produce warning if any reactive properties on the prototype are\n // shadowed by class fields. Instance fields set before upgrade are\n // deleted by this point, so any own property is caused by class field\n // initialization in the constructor.\n const ctor = this.constructor as typeof ReactiveElement;\n const shadowedProperties = [...ctor.elementProperties.keys()].filter(\n (p) => this.hasOwnProperty(p) && p in getPrototypeOf(this)\n );\n if (shadowedProperties.length) {\n throw new Error(\n `The following properties on element ${this.localName} will not ` +\n `trigger updates as expected because they are set using class ` +\n `fields: ${shadowedProperties.join(', ')}. ` +\n `Native class fields and some compiled output will overwrite ` +\n `accessors used for detecting changes. See ` +\n `https://lit.dev/msg/class-field-shadowing ` +\n `for more information.`\n );\n }\n }\n // Mixin instance properties once, if they exist.\n if (this.__instanceProperties) {\n // TODO (justinfagnani): should we use the stored value? Could a new value\n // have been set since we stored the own property value?\n for (const [p, value] of this.__instanceProperties) {\n this[p as keyof this] = value as this[keyof this];\n }\n this.__instanceProperties = undefined;\n }\n // Trigger initial value reflection and populate the initial\n // `changedProperties` map, but only for the case of properties created\n // via `createProperty` on accessors, which will not have already\n // populated the `changedProperties` map since they are not set.\n // We can't know if these accessors had initializers, so we just set\n // them anyway - a difference from experimental decorators on fields and\n // standard decorators on auto-accessors.\n // For context see:\n // https://github.com/lit/lit/pull/4183#issuecomment-1711959635\n const elementProperties = (this.constructor as typeof ReactiveElement)\n .elementProperties;\n if (elementProperties.size > 0) {\n for (const [p, options] of elementProperties) {\n const {wrapped} = options;\n const value = this[p as keyof this];\n if (\n wrapped === true &&\n !this._$changedProperties.has(p) &&\n value !== undefined\n ) {\n this._$changeProperty(p, undefined, options, value);\n }\n }\n }\n }\n let shouldUpdate = false;\n const changedProperties = this._$changedProperties;\n try {\n shouldUpdate = this.shouldUpdate(changedProperties);\n if (shouldUpdate) {\n this.willUpdate(changedProperties);\n this.__controllers?.forEach((c) => c.hostUpdate?.());\n this.update(changedProperties);\n } else {\n this.__markUpdated();\n }\n } catch (e) {\n // Prevent `firstUpdated` and `updated` from running when there's an\n // update exception.\n shouldUpdate = false;\n // Ensure element can accept additional updates after an exception.\n this.__markUpdated();\n throw e;\n }\n // The update is no longer considered pending and further updates are now allowed.\n if (shouldUpdate) {\n this._$didUpdate(changedProperties);\n }\n }\n\n /**\n * Invoked before `update()` to compute values needed during the update.\n *\n * Implement `willUpdate` to compute property values that depend on other\n * properties and are used in the rest of the update process.\n *\n * ```ts\n * willUpdate(changedProperties) {\n * // only need to check changed properties for an expensive computation.\n * if (changedProperties.has('firstName') || changedProperties.has('lastName')) {\n * this.sha = computeSHA(`${this.firstName} ${this.lastName}`);\n * }\n * }\n *\n * render() {\n * return html`SHA: ${this.sha}`;\n * }\n * ```\n *\n * @category updates\n */\n protected willUpdate(_changedProperties: PropertyValues): void {}\n\n // Note, this is an override point for polyfill-support.\n // @internal\n _$didUpdate(changedProperties: PropertyValues) {\n this.__controllers?.forEach((c) => c.hostUpdated?.());\n if (!this.hasUpdated) {\n this.hasUpdated = true;\n this.firstUpdated(changedProperties);\n }\n this.updated(changedProperties);\n if (\n DEV_MODE &&\n this.isUpdatePending &&\n (this.constructor as typeof ReactiveElement).enabledWarnings!.includes(\n 'change-in-update'\n )\n ) {\n issueWarning(\n 'change-in-update',\n `Element ${this.localName} scheduled an update ` +\n `(generally because a property was set) ` +\n `after an update completed, causing a new update to be scheduled. ` +\n `This is inefficient and should be avoided unless the next update ` +\n `can only be scheduled as a side effect of the previous update.`\n );\n }\n }\n\n private __markUpdated() {\n this._$changedProperties = new Map();\n this.isUpdatePending = false;\n }\n\n /**\n * Returns a Promise that resolves when the element has completed updating.\n * The Promise value is a boolean that is `true` if the element completed the\n * update without triggering another update. The Promise result is `false` if\n * a property was set inside `updated()`. If the Promise is rejected, an\n * exception was thrown during the update.\n *\n * To await additional asynchronous work, override the `getUpdateComplete`\n * method. For example, it is sometimes useful to await a rendered element\n * before fulfilling this Promise. To do this, first await\n * `super.getUpdateComplete()`, then any subsequent state.\n *\n * @return A promise of a boolean that resolves to true if the update completed\n * without triggering another update.\n * @category updates\n */\n get updateComplete(): Promise {\n return this.getUpdateComplete();\n }\n\n /**\n * Override point for the `updateComplete` promise.\n *\n * It is not safe to override the `updateComplete` getter directly due to a\n * limitation in TypeScript which means it is not possible to call a\n * superclass getter (e.g. `super.updateComplete.then(...)`) when the target\n * language is ES5 (https://github.com/microsoft/TypeScript/issues/338).\n * This method should be overridden instead. For example:\n *\n * ```ts\n * class MyElement extends LitElement {\n * override async getUpdateComplete() {\n * const result = await super.getUpdateComplete();\n * await this._myChild.updateComplete;\n * return result;\n * }\n * }\n * ```\n *\n * @return A promise of a boolean that resolves to true if the update completed\n * without triggering another update.\n * @category updates\n */\n protected getUpdateComplete(): Promise {\n return this.__updatePromise;\n }\n\n /**\n * Controls whether or not `update()` should be called when the element requests\n * an update. By default, this method always returns `true`, but this can be\n * customized to control when to update.\n *\n * @param _changedProperties Map of changed properties with old values\n * @category updates\n */\n protected shouldUpdate(_changedProperties: PropertyValues): boolean {\n return true;\n }\n\n /**\n * Updates the element. This method reflects property values to attributes.\n * It can be overridden to render and keep updated element DOM.\n * Setting properties inside this method will *not* trigger\n * another update.\n *\n * @param _changedProperties Map of changed properties with old values\n * @category updates\n */\n protected update(_changedProperties: PropertyValues) {\n // The forEach() expression will only run when __reflectingProperties is\n // defined, and it returns undefined, setting __reflectingProperties to\n // undefined\n this.__reflectingProperties &&= this.__reflectingProperties.forEach((p) =>\n this.__propertyToAttribute(p, this[p as keyof this])\n ) as undefined;\n this.__markUpdated();\n }\n\n /**\n * Invoked whenever the element is updated. Implement to perform\n * post-updating tasks via DOM APIs, for example, focusing an element.\n *\n * Setting properties inside this method will trigger the element to update\n * again after this update cycle completes.\n *\n * @param _changedProperties Map of changed properties with old values\n * @category updates\n */\n protected updated(_changedProperties: PropertyValues) {}\n\n /**\n * Invoked when the element is first updated. Implement to perform one time\n * work on the element after update.\n *\n * ```ts\n * firstUpdated() {\n * this.renderRoot.getElementById('my-text-area').focus();\n * }\n * ```\n *\n * Setting properties inside this method will trigger the element to update\n * again after this update cycle completes.\n *\n * @param _changedProperties Map of changed properties with old values\n * @category updates\n */\n protected firstUpdated(_changedProperties: PropertyValues) {}\n}\n// Assigned here to work around a jscompiler bug with static fields\n// when compiling to ES5.\n// https://github.com/google/closure-compiler/issues/3177\n(ReactiveElement as unknown as Record)[\n JSCompiler_renameProperty('elementProperties', ReactiveElement)\n] = new Map();\n(ReactiveElement as unknown as Record)[\n JSCompiler_renameProperty('finalized', ReactiveElement)\n] = new Map();\n\n// Apply polyfills if available\npolyfillSupport?.({ReactiveElement});\n\n// Dev mode warnings...\nif (DEV_MODE) {\n // Default warning set.\n ReactiveElement.enabledWarnings = [\n 'change-in-update',\n 'async-perform-update',\n ];\n const ensureOwnWarnings = function (ctor: typeof ReactiveElement) {\n if (\n !ctor.hasOwnProperty(JSCompiler_renameProperty('enabledWarnings', ctor))\n ) {\n ctor.enabledWarnings = ctor.enabledWarnings!.slice();\n }\n };\n ReactiveElement.enableWarning = function (\n this: typeof ReactiveElement,\n warning: WarningKind\n ) {\n ensureOwnWarnings(this);\n if (!this.enabledWarnings!.includes(warning)) {\n this.enabledWarnings!.push(warning);\n }\n };\n ReactiveElement.disableWarning = function (\n this: typeof ReactiveElement,\n warning: WarningKind\n ) {\n ensureOwnWarnings(this);\n const i = this.enabledWarnings!.indexOf(warning);\n if (i >= 0) {\n this.enabledWarnings!.splice(i, 1);\n }\n };\n}\n\n// IMPORTANT: do not change the property name or the assignment expression.\n// This line will be used in regexes to search for ReactiveElement usage.\n(global.reactiveElementVersions ??= []).push('2.1.2');\nif (DEV_MODE && global.reactiveElementVersions.length > 1) {\n queueMicrotask(() => {\n issueWarning!(\n 'multiple-versions',\n `Multiple versions of Lit loaded. Loading multiple versions ` +\n `is not recommended.`\n );\n });\n}\n", "/**\n * @license\n * Copyright 2017 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */\n\n// IMPORTANT: these imports must be type-only\nimport type {Directive, DirectiveResult, PartInfo} from './directive.js';\nimport type {TrustedHTML, TrustedTypesWindow} from 'trusted-types/lib/index.js';\n\nconst DEV_MODE = true;\nconst ENABLE_EXTRA_SECURITY_HOOKS = true;\nconst ENABLE_SHADYDOM_NOPATCH = true;\nconst NODE_MODE = false;\n\n// Allows minifiers to rename references to globalThis\nconst global = globalThis;\n\n/**\n * Contains types that are part of the unstable debug API.\n *\n * Everything in this API is not stable and may change or be removed in the future,\n * even on patch releases.\n */\n// eslint-disable-next-line @typescript-eslint/no-namespace\nexport namespace LitUnstable {\n /**\n * When Lit is running in dev mode and `window.emitLitDebugLogEvents` is true,\n * we will emit 'lit-debug' events to window, with live details about the update and render\n * lifecycle. These can be useful for writing debug tooling and visualizations.\n *\n * Please be aware that running with window.emitLitDebugLogEvents has performance overhead,\n * making certain operations that are normally very cheap (like a no-op render) much slower,\n * because we must copy data and dispatch events.\n */\n // eslint-disable-next-line @typescript-eslint/no-namespace\n export namespace DebugLog {\n export type Entry =\n | TemplatePrep\n | TemplateInstantiated\n | TemplateInstantiatedAndUpdated\n | TemplateUpdating\n | BeginRender\n | EndRender\n | CommitPartEntry\n | SetPartValue;\n export interface TemplatePrep {\n kind: 'template prep';\n template: Template;\n strings: TemplateStringsArray;\n clonableTemplate: HTMLTemplateElement;\n parts: TemplatePart[];\n }\n export interface BeginRender {\n kind: 'begin render';\n id: number;\n value: unknown;\n container: RenderRootNode;\n options: RenderOptions | undefined;\n part: ChildPart | undefined;\n }\n export interface EndRender {\n kind: 'end render';\n id: number;\n value: unknown;\n container: RenderRootNode;\n options: RenderOptions | undefined;\n part: ChildPart;\n }\n export interface TemplateInstantiated {\n kind: 'template instantiated';\n template: Template | CompiledTemplate;\n instance: TemplateInstance;\n options: RenderOptions | undefined;\n fragment: Node;\n parts: Array;\n values: unknown[];\n }\n export interface TemplateInstantiatedAndUpdated {\n kind: 'template instantiated and updated';\n template: Template | CompiledTemplate;\n instance: TemplateInstance;\n options: RenderOptions | undefined;\n fragment: Node;\n parts: Array;\n values: unknown[];\n }\n export interface TemplateUpdating {\n kind: 'template updating';\n template: Template | CompiledTemplate;\n instance: TemplateInstance;\n options: RenderOptions | undefined;\n parts: Array;\n values: unknown[];\n }\n export interface SetPartValue {\n kind: 'set part';\n part: Part;\n value: unknown;\n valueIndex: number;\n values: unknown[];\n templateInstance: TemplateInstance;\n }\n\n export type CommitPartEntry =\n | CommitNothingToChildEntry\n | CommitText\n | CommitNode\n | CommitAttribute\n | CommitProperty\n | CommitBooleanAttribute\n | CommitEventListener\n | CommitToElementBinding;\n\n export interface CommitNothingToChildEntry {\n kind: 'commit nothing to child';\n start: ChildNode;\n end: ChildNode | null;\n parent: Disconnectable | undefined;\n options: RenderOptions | undefined;\n }\n\n export interface CommitText {\n kind: 'commit text';\n node: Text;\n value: unknown;\n options: RenderOptions | undefined;\n }\n\n export interface CommitNode {\n kind: 'commit node';\n start: Node;\n parent: Disconnectable | undefined;\n value: Node;\n options: RenderOptions | undefined;\n }\n\n export interface CommitAttribute {\n kind: 'commit attribute';\n element: Element;\n name: string;\n value: unknown;\n options: RenderOptions | undefined;\n }\n\n export interface CommitProperty {\n kind: 'commit property';\n element: Element;\n name: string;\n value: unknown;\n options: RenderOptions | undefined;\n }\n\n export interface CommitBooleanAttribute {\n kind: 'commit boolean attribute';\n element: Element;\n name: string;\n value: boolean;\n options: RenderOptions | undefined;\n }\n\n export interface CommitEventListener {\n kind: 'commit event listener';\n element: Element;\n name: string;\n value: unknown;\n oldListener: unknown;\n options: RenderOptions | undefined;\n // True if we're removing the old event listener (e.g. because settings changed, or value is nothing)\n removeListener: boolean;\n // True if we're adding a new event listener (e.g. because first render, or settings changed)\n addListener: boolean;\n }\n\n export interface CommitToElementBinding {\n kind: 'commit to element binding';\n element: Element;\n value: unknown;\n options: RenderOptions | undefined;\n }\n }\n}\n\ninterface DebugLoggingWindow {\n // Even in dev mode, we generally don't want to emit these events, as that's\n // another level of cost, so only emit them when DEV_MODE is true _and_ when\n // window.emitLitDebugEvents is true.\n emitLitDebugLogEvents?: boolean;\n}\n\n/**\n * Useful for visualizing and logging insights into what the Lit template system is doing.\n *\n * Compiled out of prod mode builds.\n */\nconst debugLogEvent = DEV_MODE\n ? (event: LitUnstable.DebugLog.Entry) => {\n const shouldEmit = (global as unknown as DebugLoggingWindow)\n .emitLitDebugLogEvents;\n if (!shouldEmit) {\n return;\n }\n global.dispatchEvent(\n new CustomEvent('lit-debug', {\n detail: event,\n })\n );\n }\n : undefined;\n// Used for connecting beginRender and endRender events when there are nested\n// renders when errors are thrown preventing an endRender event from being\n// called.\nlet debugLogRenderId = 0;\n\nlet issueWarning: (code: string, warning: string) => void;\n\nif (DEV_MODE) {\n global.litIssuedWarnings ??= new Set();\n\n /**\n * Issue a warning if we haven't already, based either on `code` or `warning`.\n * Warnings are disabled automatically only by `warning`; disabling via `code`\n * can be done by users.\n */\n issueWarning = (code: string, warning: string) => {\n warning += code\n ? ` See https://lit.dev/msg/${code} for more information.`\n : '';\n if (\n !global.litIssuedWarnings!.has(warning) &&\n !global.litIssuedWarnings!.has(code)\n ) {\n console.warn(warning);\n global.litIssuedWarnings!.add(warning);\n }\n };\n\n queueMicrotask(() => {\n issueWarning(\n 'dev-mode',\n `Lit is in dev mode. Not recommended for production!`\n );\n });\n}\n\nconst wrap =\n ENABLE_SHADYDOM_NOPATCH &&\n global.ShadyDOM?.inUse &&\n global.ShadyDOM?.noPatch === true\n ? (global.ShadyDOM!.wrap as (node: T) => T)\n : (node: T) => node;\n\nconst trustedTypes = (global as unknown as TrustedTypesWindow).trustedTypes;\n\n/**\n * Our TrustedTypePolicy for HTML which is declared using the html template\n * tag function.\n *\n * That HTML is a developer-authored constant, and is parsed with innerHTML\n * before any untrusted expressions have been mixed in. Therefor it is\n * considered safe by construction.\n */\nconst policy = trustedTypes\n ? trustedTypes.createPolicy('lit-html', {\n createHTML: (s) => s,\n })\n : undefined;\n\n/**\n * Used to sanitize any value before it is written into the DOM. This can be\n * used to implement a security policy of allowed and disallowed values in\n * order to prevent XSS attacks.\n *\n * One way of using this callback would be to check attributes and properties\n * against a list of high risk fields, and require that values written to such\n * fields be instances of a class which is safe by construction. Closure's Safe\n * HTML Types is one implementation of this technique (\n * https://github.com/google/safe-html-types/blob/master/doc/safehtml-types.md).\n * The TrustedTypes polyfill in API-only mode could also be used as a basis\n * for this technique (https://github.com/WICG/trusted-types).\n *\n * @param node The HTML node (usually either a #text node or an Element) that\n * is being written to. Note that this is just an exemplar node, the write\n * may take place against another instance of the same class of node.\n * @param name The name of an attribute or property (for example, 'href').\n * @param type Indicates whether the write that's about to be performed will\n * be to a property or a node.\n * @return A function that will sanitize this class of writes.\n */\nexport type SanitizerFactory = (\n node: Node,\n name: string,\n type: 'property' | 'attribute'\n) => ValueSanitizer;\n\n/**\n * A function which can sanitize values that will be written to a specific kind\n * of DOM sink.\n *\n * See SanitizerFactory.\n *\n * @param value The value to sanitize. Will be the actual value passed into\n * the lit-html template literal, so this could be of any type.\n * @return The value to write to the DOM. Usually the same as the input value,\n * unless sanitization is needed.\n */\nexport type ValueSanitizer = (value: unknown) => unknown;\n\nconst identityFunction: ValueSanitizer = (value: unknown) => value;\nconst noopSanitizer: SanitizerFactory = (\n _node: Node,\n _name: string,\n _type: 'property' | 'attribute'\n) => identityFunction;\n\n/** Sets the global sanitizer factory. */\nconst setSanitizer = (newSanitizer: SanitizerFactory) => {\n if (!ENABLE_EXTRA_SECURITY_HOOKS) {\n return;\n }\n if (sanitizerFactoryInternal !== noopSanitizer) {\n throw new Error(\n `Attempted to overwrite existing lit-html security policy.` +\n ` setSanitizeDOMValueFactory should be called at most once.`\n );\n }\n sanitizerFactoryInternal = newSanitizer;\n};\n\n/**\n * Only used in internal tests, not a part of the public API.\n */\nconst _testOnlyClearSanitizerFactoryDoNotCallOrElse = () => {\n sanitizerFactoryInternal = noopSanitizer;\n};\n\nconst createSanitizer: SanitizerFactory = (node, name, type) => {\n return sanitizerFactoryInternal(node, name, type);\n};\n\n// Added to an attribute name to mark the attribute as bound so we can find\n// it easily.\nconst boundAttributeSuffix = '$lit$';\n\n// This marker is used in many syntactic positions in HTML, so it must be\n// a valid element name and attribute name. We don't support dynamic names (yet)\n// but this at least ensures that the parse tree is closer to the template\n// intention.\nconst marker = `lit$${Math.random().toFixed(9).slice(2)}$`;\n\n// String used to tell if a comment is a marker comment\nconst markerMatch = '?' + marker;\n\n// Text used to insert a comment marker node. We use processing instruction\n// syntax because it's slightly smaller, but parses as a comment node.\nconst nodeMarker = `<${markerMatch}>`;\n\nconst d =\n NODE_MODE && global.document === undefined\n ? ({\n createTreeWalker() {\n return {};\n },\n } as unknown as Document)\n : document;\n\n// Creates a dynamic marker. We never have to search for these in the DOM.\nconst createMarker = () => d.createComment('');\n\n// https://tc39.github.io/ecma262/#sec-typeof-operator\ntype Primitive = null | undefined | boolean | number | string | symbol | bigint;\nconst isPrimitive = (value: unknown): value is Primitive =>\n value === null || (typeof value != 'object' && typeof value != 'function');\nconst isArray = Array.isArray;\nconst isIterable = (value: unknown): value is Iterable =>\n isArray(value) ||\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n typeof (value as any)?.[Symbol.iterator] === 'function';\n\nconst SPACE_CHAR = `[ \\t\\n\\f\\r]`;\nconst ATTR_VALUE_CHAR = `[^ \\t\\n\\f\\r\"'\\`<>=]`;\nconst NAME_CHAR = `[^\\\\s\"'>=/]`;\n\n// These regexes represent the five parsing states that we care about in the\n// Template's HTML scanner. They match the *end* of the state they're named\n// after.\n// Depending on the match, we transition to a new state. If there's no match,\n// we stay in the same state.\n// Note that the regexes are stateful. We utilize lastIndex and sync it\n// across the multiple regexes used. In addition to the five regexes below\n// we also dynamically create a regex to find the matching end tags for raw\n// text elements.\n\n/**\n * End of text is: `<` followed by:\n * (comment start) or (tag) or (dynamic tag binding)\n */\nconst textEndRegex = /<(?:(!--|\\/[^a-zA-Z])|(\\/?[a-zA-Z][^>\\s]*)|(\\/?$))/g;\nconst COMMENT_START = 1;\nconst TAG_NAME = 2;\nconst DYNAMIC_TAG_NAME = 3;\n\nconst commentEndRegex = /-->/g;\n/**\n * Comments not started with 'refCount 1' -----> etc\n * // All subscriptions will receive the same value and the tap (and\n * // every other operator) before the `publish` operator will be executed\n * // only once per event independently of the number of subscriptions.\n *\n * publishedInterval.subscribe();\n * // Nothing happens until you call .connect() on the observable.\n * ```\n *\n * @return A function that returns an Observable that automates the connection\n * to ConnectableObservable.\n * @see {@link ConnectableObservable}\n * @see {@link share}\n * @see {@link publish}\n * @deprecated Replaced with the {@link share} operator. How `share` is used\n * will depend on the connectable observable you created just prior to the\n * `refCount` operator.\n * Details: https://rxjs.dev/deprecations/multicasting\n */\nexport function refCount(): MonoTypeOperatorFunction {\n return operate((source, subscriber) => {\n let connection: Subscription | null = null;\n\n (source as any)._refCount++;\n\n const refCounter = createOperatorSubscriber(subscriber, undefined, undefined, undefined, () => {\n if (!source || (source as any)._refCount <= 0 || 0 < --(source as any)._refCount) {\n connection = null;\n return;\n }\n\n ///\n // Compare the local RefCountSubscriber's connection Subscription to the\n // connection Subscription on the shared ConnectableObservable. In cases\n // where the ConnectableObservable source synchronously emits values, and\n // the RefCountSubscriber's downstream Observers synchronously unsubscribe,\n // execution continues to here before the RefCountOperator has a chance to\n // supply the RefCountSubscriber with the shared connection Subscription.\n // For example:\n // ```\n // range(0, 10).pipe(\n // publish(),\n // refCount(),\n // take(5),\n // )\n // .subscribe();\n // ```\n // In order to account for this case, RefCountSubscriber should only dispose\n // the ConnectableObservable's shared connection Subscription if the\n // connection Subscription exists, *and* either:\n // a. RefCountSubscriber doesn't have a reference to the shared connection\n // Subscription yet, or,\n // b. RefCountSubscriber's connection Subscription reference is identical\n // to the shared connection Subscription\n ///\n\n const sharedConnection = (source as any)._connection;\n const conn = connection;\n connection = null;\n\n if (sharedConnection && (!conn || sharedConnection === conn)) {\n sharedConnection.unsubscribe();\n }\n\n subscriber.unsubscribe();\n });\n\n source.subscribe(refCounter);\n\n if (!refCounter.closed) {\n connection = (source as ConnectableObservable).connect();\n }\n });\n}\n", "import { Subject } from '../Subject';\nimport { Observable } from '../Observable';\nimport { Subscriber } from '../Subscriber';\nimport { Subscription } from '../Subscription';\nimport { refCount as higherOrderRefCount } from '../operators/refCount';\nimport { createOperatorSubscriber } from '../operators/OperatorSubscriber';\nimport { hasLift } from '../util/lift';\n\n/**\n * @class ConnectableObservable\n * @deprecated Will be removed in v8. Use {@link connectable} to create a connectable observable.\n * If you are using the `refCount` method of `ConnectableObservable`, use the {@link share} operator\n * instead.\n * Details: https://rxjs.dev/deprecations/multicasting\n */\nexport class ConnectableObservable extends Observable {\n protected _subject: Subject | null = null;\n protected _refCount: number = 0;\n protected _connection: Subscription | null = null;\n\n /**\n * @param source The source observable\n * @param subjectFactory The factory that creates the subject used internally.\n * @deprecated Will be removed in v8. Use {@link connectable} to create a connectable observable.\n * `new ConnectableObservable(source, factory)` is equivalent to\n * `connectable(source, { connector: factory })`.\n * When the `refCount()` method is needed, the {@link share} operator should be used instead:\n * `new ConnectableObservable(source, factory).refCount()` is equivalent to\n * `source.pipe(share({ connector: factory }))`.\n * Details: https://rxjs.dev/deprecations/multicasting\n */\n constructor(public source: Observable, protected subjectFactory: () => Subject) {\n super();\n // If we have lift, monkey patch that here. This is done so custom observable\n // types will compose through multicast. Otherwise the resulting observable would\n // simply be an instance of `ConnectableObservable`.\n if (hasLift(source)) {\n this.lift = source.lift;\n }\n }\n\n /** @internal */\n protected _subscribe(subscriber: Subscriber) {\n return this.getSubject().subscribe(subscriber);\n }\n\n protected getSubject(): Subject {\n const subject = this._subject;\n if (!subject || subject.isStopped) {\n this._subject = this.subjectFactory();\n }\n return this._subject!;\n }\n\n protected _teardown() {\n this._refCount = 0;\n const { _connection } = this;\n this._subject = this._connection = null;\n _connection?.unsubscribe();\n }\n\n /**\n * @deprecated {@link ConnectableObservable} will be removed in v8. Use {@link connectable} instead.\n * Details: https://rxjs.dev/deprecations/multicasting\n */\n connect(): Subscription {\n let connection = this._connection;\n if (!connection) {\n connection = this._connection = new Subscription();\n const subject = this.getSubject();\n connection.add(\n this.source.subscribe(\n createOperatorSubscriber(\n subject as any,\n undefined,\n () => {\n this._teardown();\n subject.complete();\n },\n (err) => {\n this._teardown();\n subject.error(err);\n },\n () => this._teardown()\n )\n )\n );\n\n if (connection.closed) {\n this._connection = null;\n connection = Subscription.EMPTY;\n }\n }\n return connection;\n }\n\n /**\n * @deprecated {@link ConnectableObservable} will be removed in v8. Use the {@link share} operator instead.\n * Details: https://rxjs.dev/deprecations/multicasting\n */\n refCount(): Observable {\n return higherOrderRefCount()(this) as Observable;\n }\n}\n", "import { TimestampProvider } from '../types';\n\ninterface PerformanceTimestampProvider extends TimestampProvider {\n delegate: TimestampProvider | undefined;\n}\n\nexport const performanceTimestampProvider: PerformanceTimestampProvider = {\n now() {\n // Use the variable rather than `this` so that the function can be called\n // without being bound to the provider.\n return (performanceTimestampProvider.delegate || performance).now();\n },\n delegate: undefined,\n};\n", "import { Subscription } from '../Subscription';\n\ninterface AnimationFrameProvider {\n schedule(callback: FrameRequestCallback): Subscription;\n requestAnimationFrame: typeof requestAnimationFrame;\n cancelAnimationFrame: typeof cancelAnimationFrame;\n delegate:\n | {\n requestAnimationFrame: typeof requestAnimationFrame;\n cancelAnimationFrame: typeof cancelAnimationFrame;\n }\n | undefined;\n}\n\nexport const animationFrameProvider: AnimationFrameProvider = {\n // When accessing the delegate, use the variable rather than `this` so that\n // the functions can be called without being bound to the provider.\n schedule(callback) {\n let request = requestAnimationFrame;\n let cancel: typeof cancelAnimationFrame | undefined = cancelAnimationFrame;\n const { delegate } = animationFrameProvider;\n if (delegate) {\n request = delegate.requestAnimationFrame;\n cancel = delegate.cancelAnimationFrame;\n }\n const handle = request((timestamp) => {\n // Clear the cancel function. The request has been fulfilled, so\n // attempting to cancel the request upon unsubscription would be\n // pointless.\n cancel = undefined;\n callback(timestamp);\n });\n return new Subscription(() => cancel?.(handle));\n },\n requestAnimationFrame(...args) {\n const { delegate } = animationFrameProvider;\n return (delegate?.requestAnimationFrame || requestAnimationFrame)(...args);\n },\n cancelAnimationFrame(...args) {\n const { delegate } = animationFrameProvider;\n return (delegate?.cancelAnimationFrame || cancelAnimationFrame)(...args);\n },\n delegate: undefined,\n};\n", "import { Observable } from '../../Observable';\nimport { TimestampProvider } from '../../types';\nimport { performanceTimestampProvider } from '../../scheduler/performanceTimestampProvider';\nimport { animationFrameProvider } from '../../scheduler/animationFrameProvider';\n\n/**\n * An observable of animation frames\n *\n * Emits the amount of time elapsed since subscription and the timestamp on each animation frame.\n * Defaults to milliseconds provided to the requestAnimationFrame's callback. Does not end on its own.\n *\n * Every subscription will start a separate animation loop. Since animation frames are always scheduled\n * by the browser to occur directly before a repaint, scheduling more than one animation frame synchronously\n * should not be much different or have more overhead than looping over an array of events during\n * a single animation frame. However, if for some reason the developer would like to ensure the\n * execution of animation-related handlers are all executed during the same task by the engine,\n * the `share` operator can be used.\n *\n * This is useful for setting up animations with RxJS.\n *\n * ## Examples\n *\n * Tweening a div to move it on the screen\n *\n * ```ts\n * import { animationFrames, map, takeWhile, endWith } from 'rxjs';\n *\n * function tween(start: number, end: number, duration: number) {\n * const diff = end - start;\n * return animationFrames().pipe(\n * // Figure out what percentage of time has passed\n * map(({ elapsed }) => elapsed / duration),\n * // Take the vector while less than 100%\n * takeWhile(v => v < 1),\n * // Finish with 100%\n * endWith(1),\n * // Calculate the distance traveled between start and end\n * map(v => v * diff + start)\n * );\n * }\n *\n * // Setup a div for us to move around\n * const div = document.createElement('div');\n * document.body.appendChild(div);\n * div.style.position = 'absolute';\n * div.style.width = '40px';\n * div.style.height = '40px';\n * div.style.backgroundColor = 'lime';\n * div.style.transform = 'translate3d(10px, 0, 0)';\n *\n * tween(10, 200, 4000).subscribe(x => {\n * div.style.transform = `translate3d(${ x }px, 0, 0)`;\n * });\n * ```\n *\n * Providing a custom timestamp provider\n *\n * ```ts\n * import { animationFrames, TimestampProvider } from 'rxjs';\n *\n * // A custom timestamp provider\n * let now = 0;\n * const customTSProvider: TimestampProvider = {\n * now() { return now++; }\n * };\n *\n * const source$ = animationFrames(customTSProvider);\n *\n * // Log increasing numbers 0...1...2... on every animation frame.\n * source$.subscribe(({ elapsed }) => console.log(elapsed));\n * ```\n *\n * @param timestampProvider An object with a `now` method that provides a numeric timestamp\n */\nexport function animationFrames(timestampProvider?: TimestampProvider) {\n return timestampProvider ? animationFramesFactory(timestampProvider) : DEFAULT_ANIMATION_FRAMES;\n}\n\n/**\n * Does the work of creating the observable for `animationFrames`.\n * @param timestampProvider The timestamp provider to use to create the observable\n */\nfunction animationFramesFactory(timestampProvider?: TimestampProvider) {\n return new Observable<{ timestamp: number; elapsed: number }>((subscriber) => {\n // If no timestamp provider is specified, use performance.now() - as it\n // will return timestamps 'compatible' with those passed to the run\n // callback and won't be affected by NTP adjustments, etc.\n const provider = timestampProvider || performanceTimestampProvider;\n\n // Capture the start time upon subscription, as the run callback can remain\n // queued for a considerable period of time and the elapsed time should\n // represent the time elapsed since subscription - not the time since the\n // first rendered animation frame.\n const start = provider.now();\n\n let id = 0;\n const run = () => {\n if (!subscriber.closed) {\n id = animationFrameProvider.requestAnimationFrame((timestamp: DOMHighResTimeStamp | number) => {\n id = 0;\n // Use the provider's timestamp to calculate the elapsed time. Note that\n // this means - if the caller hasn't passed a provider - that\n // performance.now() will be used instead of the timestamp that was\n // passed to the run callback. The reason for this is that the timestamp\n // passed to the callback can be earlier than the start time, as it\n // represents the time at which the browser decided it would render any\n // queued frames - and that time can be earlier the captured start time.\n const now = provider.now();\n subscriber.next({\n timestamp: timestampProvider ? now : timestamp,\n elapsed: now - start,\n });\n run();\n });\n }\n };\n\n run();\n\n return () => {\n if (id) {\n animationFrameProvider.cancelAnimationFrame(id);\n }\n };\n });\n}\n\n/**\n * In the common case, where the timestamp provided by the rAF API is used,\n * we use this shared observable to reduce overhead.\n */\nconst DEFAULT_ANIMATION_FRAMES = animationFramesFactory();\n", "import { createErrorClass } from './createErrorClass';\n\nexport interface ObjectUnsubscribedError extends Error {}\n\nexport interface ObjectUnsubscribedErrorCtor {\n /**\n * @deprecated Internal implementation detail. Do not construct error instances.\n * Cannot be tagged as internal: https://github.com/ReactiveX/rxjs/issues/6269\n */\n new (): ObjectUnsubscribedError;\n}\n\n/**\n * An error thrown when an action is invalid because the object has been\n * unsubscribed.\n *\n * @see {@link Subject}\n * @see {@link BehaviorSubject}\n *\n * @class ObjectUnsubscribedError\n */\nexport const ObjectUnsubscribedError: ObjectUnsubscribedErrorCtor = createErrorClass(\n (_super) =>\n function ObjectUnsubscribedErrorImpl(this: any) {\n _super(this);\n this.name = 'ObjectUnsubscribedError';\n this.message = 'object unsubscribed';\n }\n);\n", "import { Operator } from './Operator';\nimport { Observable } from './Observable';\nimport { Subscriber } from './Subscriber';\nimport { Subscription, EMPTY_SUBSCRIPTION } from './Subscription';\nimport { Observer, SubscriptionLike, TeardownLogic } from './types';\nimport { ObjectUnsubscribedError } from './util/ObjectUnsubscribedError';\nimport { arrRemove } from './util/arrRemove';\nimport { errorContext } from './util/errorContext';\n\n/**\n * A Subject is a special type of Observable that allows values to be\n * multicasted to many Observers. Subjects are like EventEmitters.\n *\n * Every Subject is an Observable and an Observer. You can subscribe to a\n * Subject, and you can call next to feed values as well as error and complete.\n */\nexport class Subject extends Observable implements SubscriptionLike {\n closed = false;\n\n private currentObservers: Observer[] | null = null;\n\n /** @deprecated Internal implementation detail, do not use directly. Will be made internal in v8. */\n observers: Observer[] = [];\n /** @deprecated Internal implementation detail, do not use directly. Will be made internal in v8. */\n isStopped = false;\n /** @deprecated Internal implementation detail, do not use directly. Will be made internal in v8. */\n hasError = false;\n /** @deprecated Internal implementation detail, do not use directly. Will be made internal in v8. */\n thrownError: any = null;\n\n /**\n * Creates a \"subject\" by basically gluing an observer to an observable.\n *\n * @deprecated Recommended you do not use. Will be removed at some point in the future. Plans for replacement still under discussion.\n */\n static create: (...args: any[]) => any = (destination: Observer, source: Observable): AnonymousSubject => {\n return new AnonymousSubject(destination, source);\n };\n\n constructor() {\n // NOTE: This must be here to obscure Observable's constructor.\n super();\n }\n\n /** @deprecated Internal implementation detail, do not use directly. Will be made internal in v8. */\n lift(operator: Operator): Observable {\n const subject = new AnonymousSubject(this, this);\n subject.operator = operator as any;\n return subject as any;\n }\n\n /** @internal */\n protected _throwIfClosed() {\n if (this.closed) {\n throw new ObjectUnsubscribedError();\n }\n }\n\n next(value: T) {\n errorContext(() => {\n this._throwIfClosed();\n if (!this.isStopped) {\n if (!this.currentObservers) {\n this.currentObservers = Array.from(this.observers);\n }\n for (const observer of this.currentObservers) {\n observer.next(value);\n }\n }\n });\n }\n\n error(err: any) {\n errorContext(() => {\n this._throwIfClosed();\n if (!this.isStopped) {\n this.hasError = this.isStopped = true;\n this.thrownError = err;\n const { observers } = this;\n while (observers.length) {\n observers.shift()!.error(err);\n }\n }\n });\n }\n\n complete() {\n errorContext(() => {\n this._throwIfClosed();\n if (!this.isStopped) {\n this.isStopped = true;\n const { observers } = this;\n while (observers.length) {\n observers.shift()!.complete();\n }\n }\n });\n }\n\n unsubscribe() {\n this.isStopped = this.closed = true;\n this.observers = this.currentObservers = null!;\n }\n\n get observed() {\n return this.observers?.length > 0;\n }\n\n /** @internal */\n protected _trySubscribe(subscriber: Subscriber): TeardownLogic {\n this._throwIfClosed();\n return super._trySubscribe(subscriber);\n }\n\n /** @internal */\n protected _subscribe(subscriber: Subscriber): Subscription {\n this._throwIfClosed();\n this._checkFinalizedStatuses(subscriber);\n return this._innerSubscribe(subscriber);\n }\n\n /** @internal */\n protected _innerSubscribe(subscriber: Subscriber) {\n const { hasError, isStopped, observers } = this;\n if (hasError || isStopped) {\n return EMPTY_SUBSCRIPTION;\n }\n this.currentObservers = null;\n observers.push(subscriber);\n return new Subscription(() => {\n this.currentObservers = null;\n arrRemove(observers, subscriber);\n });\n }\n\n /** @internal */\n protected _checkFinalizedStatuses(subscriber: Subscriber) {\n const { hasError, thrownError, isStopped } = this;\n if (hasError) {\n subscriber.error(thrownError);\n } else if (isStopped) {\n subscriber.complete();\n }\n }\n\n /**\n * Creates a new Observable with this Subject as the source. You can do this\n * to create custom Observer-side logic of the Subject and conceal it from\n * code that uses the Observable.\n * @return Observable that this Subject casts to.\n */\n asObservable(): Observable {\n const observable: any = new Observable();\n observable.source = this;\n return observable;\n }\n}\n\nexport class AnonymousSubject extends Subject {\n constructor(\n /** @deprecated Internal implementation detail, do not use directly. Will be made internal in v8. */\n public destination?: Observer,\n source?: Observable\n ) {\n super();\n this.source = source;\n }\n\n next(value: T) {\n this.destination?.next?.(value);\n }\n\n error(err: any) {\n this.destination?.error?.(err);\n }\n\n complete() {\n this.destination?.complete?.();\n }\n\n /** @internal */\n protected _subscribe(subscriber: Subscriber): Subscription {\n return this.source?.subscribe(subscriber) ?? EMPTY_SUBSCRIPTION;\n }\n}\n", "import { Subject } from './Subject';\nimport { Subscriber } from './Subscriber';\nimport { Subscription } from './Subscription';\n\n/**\n * A variant of Subject that requires an initial value and emits its current\n * value whenever it is subscribed to.\n */\nexport class BehaviorSubject extends Subject {\n constructor(private _value: T) {\n super();\n }\n\n get value(): T {\n return this.getValue();\n }\n\n /** @internal */\n protected _subscribe(subscriber: Subscriber): Subscription {\n const subscription = super._subscribe(subscriber);\n !subscription.closed && subscriber.next(this._value);\n return subscription;\n }\n\n getValue(): T {\n const { hasError, thrownError, _value } = this;\n if (hasError) {\n throw thrownError;\n }\n this._throwIfClosed();\n return _value;\n }\n\n next(value: T): void {\n super.next((this._value = value));\n }\n}\n", "import { TimestampProvider } from '../types';\n\ninterface DateTimestampProvider extends TimestampProvider {\n delegate: TimestampProvider | undefined;\n}\n\nexport const dateTimestampProvider: DateTimestampProvider = {\n now() {\n // Use the variable rather than `this` so that the function can be called\n // without being bound to the provider.\n return (dateTimestampProvider.delegate || Date).now();\n },\n delegate: undefined,\n};\n", "import { Subject } from './Subject';\nimport { TimestampProvider } from './types';\nimport { Subscriber } from './Subscriber';\nimport { Subscription } from './Subscription';\nimport { dateTimestampProvider } from './scheduler/dateTimestampProvider';\n\n/**\n * A variant of {@link Subject} that \"replays\" old values to new subscribers by emitting them when they first subscribe.\n *\n * `ReplaySubject` has an internal buffer that will store a specified number of values that it has observed. Like `Subject`,\n * `ReplaySubject` \"observes\" values by having them passed to its `next` method. When it observes a value, it will store that\n * value for a time determined by the configuration of the `ReplaySubject`, as passed to its constructor.\n *\n * When a new subscriber subscribes to the `ReplaySubject` instance, it will synchronously emit all values in its buffer in\n * a First-In-First-Out (FIFO) manner. The `ReplaySubject` will also complete, if it has observed completion; and it will\n * error if it has observed an error.\n *\n * There are two main configuration items to be concerned with:\n *\n * 1. `bufferSize` - This will determine how many items are stored in the buffer, defaults to infinite.\n * 2. `windowTime` - The amount of time to hold a value in the buffer before removing it from the buffer.\n *\n * Both configurations may exist simultaneously. So if you would like to buffer a maximum of 3 values, as long as the values\n * are less than 2 seconds old, you could do so with a `new ReplaySubject(3, 2000)`.\n *\n * ### Differences with BehaviorSubject\n *\n * `BehaviorSubject` is similar to `new ReplaySubject(1)`, with a couple of exceptions:\n *\n * 1. `BehaviorSubject` comes \"primed\" with a single value upon construction.\n * 2. `ReplaySubject` will replay values, even after observing an error, where `BehaviorSubject` will not.\n *\n * @see {@link Subject}\n * @see {@link BehaviorSubject}\n * @see {@link shareReplay}\n */\nexport class ReplaySubject extends Subject {\n private _buffer: (T | number)[] = [];\n private _infiniteTimeWindow = true;\n\n /**\n * @param _bufferSize The size of the buffer to replay on subscription\n * @param _windowTime The amount of time the buffered items will stay buffered\n * @param _timestampProvider An object with a `now()` method that provides the current timestamp. This is used to\n * calculate the amount of time something has been buffered.\n */\n constructor(\n private _bufferSize = Infinity,\n private _windowTime = Infinity,\n private _timestampProvider: TimestampProvider = dateTimestampProvider\n ) {\n super();\n this._infiniteTimeWindow = _windowTime === Infinity;\n this._bufferSize = Math.max(1, _bufferSize);\n this._windowTime = Math.max(1, _windowTime);\n }\n\n next(value: T): void {\n const { isStopped, _buffer, _infiniteTimeWindow, _timestampProvider, _windowTime } = this;\n if (!isStopped) {\n _buffer.push(value);\n !_infiniteTimeWindow && _buffer.push(_timestampProvider.now() + _windowTime);\n }\n this._trimBuffer();\n super.next(value);\n }\n\n /** @internal */\n protected _subscribe(subscriber: Subscriber): Subscription {\n this._throwIfClosed();\n this._trimBuffer();\n\n const subscription = this._innerSubscribe(subscriber);\n\n const { _infiniteTimeWindow, _buffer } = this;\n // We use a copy here, so reentrant code does not mutate our array while we're\n // emitting it to a new subscriber.\n const copy = _buffer.slice();\n for (let i = 0; i < copy.length && !subscriber.closed; i += _infiniteTimeWindow ? 1 : 2) {\n subscriber.next(copy[i] as T);\n }\n\n this._checkFinalizedStatuses(subscriber);\n\n return subscription;\n }\n\n private _trimBuffer() {\n const { _bufferSize, _timestampProvider, _buffer, _infiniteTimeWindow } = this;\n // If we don't have an infinite buffer size, and we're over the length,\n // use splice to truncate the old buffer values off. Note that we have to\n // double the size for instances where we're not using an infinite time window\n // because we're storing the values and the timestamps in the same array.\n const adjustedBufferSize = (_infiniteTimeWindow ? 1 : 2) * _bufferSize;\n _bufferSize < Infinity && adjustedBufferSize < _buffer.length && _buffer.splice(0, _buffer.length - adjustedBufferSize);\n\n // Now, if we're not in an infinite time window, remove all values where the time is\n // older than what is allowed.\n if (!_infiniteTimeWindow) {\n const now = _timestampProvider.now();\n let last = 0;\n // Search the array for the first timestamp that isn't expired and\n // truncate the buffer up to that point.\n for (let i = 1; i < _buffer.length && (_buffer[i] as number) <= now; i += 2) {\n last = i;\n }\n last && _buffer.splice(0, last + 1);\n }\n }\n}\n", "import { Subject } from './Subject';\nimport { Subscriber } from './Subscriber';\n\n/**\n * A variant of Subject that only emits a value when it completes. It will emit\n * its latest value to all its observers on completion.\n */\nexport class AsyncSubject extends Subject {\n private _value: T | null = null;\n private _hasValue = false;\n private _isComplete = false;\n\n /** @internal */\n protected _checkFinalizedStatuses(subscriber: Subscriber) {\n const { hasError, _hasValue, _value, thrownError, isStopped, _isComplete } = this;\n if (hasError) {\n subscriber.error(thrownError);\n } else if (isStopped || _isComplete) {\n _hasValue && subscriber.next(_value!);\n subscriber.complete();\n }\n }\n\n next(value: T): void {\n if (!this.isStopped) {\n this._value = value;\n this._hasValue = true;\n }\n }\n\n complete(): void {\n const { _hasValue, _value, _isComplete } = this;\n if (!_isComplete) {\n this._isComplete = true;\n _hasValue && super.next(_value!);\n super.complete();\n }\n }\n}\n", "import { Scheduler } from '../Scheduler';\nimport { Subscription } from '../Subscription';\nimport { SchedulerAction } from '../types';\n\n/**\n * A unit of work to be executed in a `scheduler`. An action is typically\n * created from within a {@link SchedulerLike} and an RxJS user does not need to concern\n * themselves about creating and manipulating an Action.\n *\n * ```ts\n * class Action extends Subscription {\n * new (scheduler: Scheduler, work: (state?: T) => void);\n * schedule(state?: T, delay: number = 0): Subscription;\n * }\n * ```\n */\nexport class Action extends Subscription {\n constructor(scheduler: Scheduler, work: (this: SchedulerAction, state?: T) => void) {\n super();\n }\n /**\n * Schedules this action on its parent {@link SchedulerLike} for execution. May be passed\n * some context object, `state`. May happen at some point in the future,\n * according to the `delay` parameter, if specified.\n * @param state Some contextual data that the `work` function uses when called by the\n * Scheduler.\n * @param delay Time to wait before executing the work, where the time unit is implicit\n * and defined by the Scheduler.\n * @return A subscription in order to be able to unsubscribe the scheduled work.\n */\n public schedule(state?: T, delay: number = 0): Subscription {\n return this;\n }\n}\n", "import type { TimerHandle } from './timerHandle';\ntype SetIntervalFunction = (handler: () => void, timeout?: number, ...args: any[]) => TimerHandle;\ntype ClearIntervalFunction = (handle: TimerHandle) => void;\n\ninterface IntervalProvider {\n setInterval: SetIntervalFunction;\n clearInterval: ClearIntervalFunction;\n delegate:\n | {\n setInterval: SetIntervalFunction;\n clearInterval: ClearIntervalFunction;\n }\n | undefined;\n}\n\nexport const intervalProvider: IntervalProvider = {\n // When accessing the delegate, use the variable rather than `this` so that\n // the functions can be called without being bound to the provider.\n setInterval(handler: () => void, timeout?: number, ...args) {\n const { delegate } = intervalProvider;\n if (delegate?.setInterval) {\n return delegate.setInterval(handler, timeout, ...args);\n }\n return setInterval(handler, timeout, ...args);\n },\n clearInterval(handle) {\n const { delegate } = intervalProvider;\n return (delegate?.clearInterval || clearInterval)(handle as any);\n },\n delegate: undefined,\n};\n", "import { Action } from './Action';\nimport { SchedulerAction } from '../types';\nimport { Subscription } from '../Subscription';\nimport { AsyncScheduler } from './AsyncScheduler';\nimport { intervalProvider } from './intervalProvider';\nimport { arrRemove } from '../util/arrRemove';\nimport { TimerHandle } from './timerHandle';\n\nexport class AsyncAction extends Action {\n public id: TimerHandle | undefined;\n public state?: T;\n // @ts-ignore: Property has no initializer and is not definitely assigned\n public delay: number;\n protected pending: boolean = false;\n\n constructor(protected scheduler: AsyncScheduler, protected work: (this: SchedulerAction, state?: T) => void) {\n super(scheduler, work);\n }\n\n public schedule(state?: T, delay: number = 0): Subscription {\n if (this.closed) {\n return this;\n }\n\n // Always replace the current state with the new state.\n this.state = state;\n\n const id = this.id;\n const scheduler = this.scheduler;\n\n //\n // Important implementation note:\n //\n // Actions only execute once by default, unless rescheduled from within the\n // scheduled callback. This allows us to implement single and repeat\n // actions via the same code path, without adding API surface area, as well\n // as mimic traditional recursion but across asynchronous boundaries.\n //\n // However, JS runtimes and timers distinguish between intervals achieved by\n // serial `setTimeout` calls vs. a single `setInterval` call. An interval of\n // serial `setTimeout` calls can be individually delayed, which delays\n // scheduling the next `setTimeout`, and so on. `setInterval` attempts to\n // guarantee the interval callback will be invoked more precisely to the\n // interval period, regardless of load.\n //\n // Therefore, we use `setInterval` to schedule single and repeat actions.\n // If the action reschedules itself with the same delay, the interval is not\n // canceled. If the action doesn't reschedule, or reschedules with a\n // different delay, the interval will be canceled after scheduled callback\n // execution.\n //\n if (id != null) {\n this.id = this.recycleAsyncId(scheduler, id, delay);\n }\n\n // Set the pending flag indicating that this action has been scheduled, or\n // has recursively rescheduled itself.\n this.pending = true;\n\n this.delay = delay;\n // If this action has already an async Id, don't request a new one.\n this.id = this.id ?? this.requestAsyncId(scheduler, this.id, delay);\n\n return this;\n }\n\n protected requestAsyncId(scheduler: AsyncScheduler, _id?: TimerHandle, delay: number = 0): TimerHandle {\n return intervalProvider.setInterval(scheduler.flush.bind(scheduler, this), delay);\n }\n\n protected recycleAsyncId(_scheduler: AsyncScheduler, id?: TimerHandle, delay: number | null = 0): TimerHandle | undefined {\n // If this action is rescheduled with the same delay time, don't clear the interval id.\n if (delay != null && this.delay === delay && this.pending === false) {\n return id;\n }\n // Otherwise, if the action's delay time is different from the current delay,\n // or the action has been rescheduled before it's executed, clear the interval id\n if (id != null) {\n intervalProvider.clearInterval(id);\n }\n\n return undefined;\n }\n\n /**\n * Immediately executes this action and the `work` it contains.\n */\n public execute(state: T, delay: number): any {\n if (this.closed) {\n return new Error('executing a cancelled action');\n }\n\n this.pending = false;\n const error = this._execute(state, delay);\n if (error) {\n return error;\n } else if (this.pending === false && this.id != null) {\n // Dequeue if the action didn't reschedule itself. Don't call\n // unsubscribe(), because the action could reschedule later.\n // For example:\n // ```\n // scheduler.schedule(function doWork(counter) {\n // /* ... I'm a busy worker bee ... */\n // var originalAction = this;\n // /* wait 100ms before rescheduling the action */\n // setTimeout(function () {\n // originalAction.schedule(counter + 1);\n // }, 100);\n // }, 1000);\n // ```\n this.id = this.recycleAsyncId(this.scheduler, this.id, null);\n }\n }\n\n protected _execute(state: T, _delay: number): any {\n let errored: boolean = false;\n let errorValue: any;\n try {\n this.work(state);\n } catch (e) {\n errored = true;\n // HACK: Since code elsewhere is relying on the \"truthiness\" of the\n // return here, we can't have it return \"\" or 0 or false.\n // TODO: Clean this up when we refactor schedulers mid-version-8 or so.\n errorValue = e ? e : new Error('Scheduled action threw falsy error');\n }\n if (errored) {\n this.unsubscribe();\n return errorValue;\n }\n }\n\n unsubscribe() {\n if (!this.closed) {\n const { id, scheduler } = this;\n const { actions } = scheduler;\n\n this.work = this.state = this.scheduler = null!;\n this.pending = false;\n\n arrRemove(actions, this);\n if (id != null) {\n this.id = this.recycleAsyncId(scheduler, id, null);\n }\n\n this.delay = null!;\n super.unsubscribe();\n }\n }\n}\n", "let nextHandle = 1;\n// The promise needs to be created lazily otherwise it won't be patched by Zones\nlet resolved: Promise;\nconst activeHandles: { [key: number]: any } = {};\n\n/**\n * Finds the handle in the list of active handles, and removes it.\n * Returns `true` if found, `false` otherwise. Used both to clear\n * Immediate scheduled tasks, and to identify if a task should be scheduled.\n */\nfunction findAndClearHandle(handle: number): boolean {\n if (handle in activeHandles) {\n delete activeHandles[handle];\n return true;\n }\n return false;\n}\n\n/**\n * Helper functions to schedule and unschedule microtasks.\n */\nexport const Immediate = {\n setImmediate(cb: () => void): number {\n const handle = nextHandle++;\n activeHandles[handle] = true;\n if (!resolved) {\n resolved = Promise.resolve();\n }\n resolved.then(() => findAndClearHandle(handle) && cb());\n return handle;\n },\n\n clearImmediate(handle: number): void {\n findAndClearHandle(handle);\n },\n};\n\n/**\n * Used for internal testing purposes only. Do not export from library.\n */\nexport const TestTools = {\n pending() {\n return Object.keys(activeHandles).length;\n }\n};\n", "import { Immediate } from '../util/Immediate';\nimport type { TimerHandle } from './timerHandle';\nconst { setImmediate, clearImmediate } = Immediate;\n\ntype SetImmediateFunction = (handler: () => void, ...args: any[]) => TimerHandle;\ntype ClearImmediateFunction = (handle: TimerHandle) => void;\n\ninterface ImmediateProvider {\n setImmediate: SetImmediateFunction;\n clearImmediate: ClearImmediateFunction;\n delegate:\n | {\n setImmediate: SetImmediateFunction;\n clearImmediate: ClearImmediateFunction;\n }\n | undefined;\n}\n\nexport const immediateProvider: ImmediateProvider = {\n // When accessing the delegate, use the variable rather than `this` so that\n // the functions can be called without being bound to the provider.\n setImmediate(...args) {\n const { delegate } = immediateProvider;\n return (delegate?.setImmediate || setImmediate)(...args);\n },\n clearImmediate(handle) {\n const { delegate } = immediateProvider;\n return (delegate?.clearImmediate || clearImmediate)(handle as any);\n },\n delegate: undefined,\n};\n", "import { AsyncAction } from './AsyncAction';\nimport { AsapScheduler } from './AsapScheduler';\nimport { SchedulerAction } from '../types';\nimport { immediateProvider } from './immediateProvider';\nimport { TimerHandle } from './timerHandle';\n\nexport class AsapAction extends AsyncAction {\n constructor(protected scheduler: AsapScheduler, protected work: (this: SchedulerAction, state?: T) => void) {\n super(scheduler, work);\n }\n\n protected requestAsyncId(scheduler: AsapScheduler, id?: TimerHandle, delay: number = 0): TimerHandle {\n // If delay is greater than 0, request as an async action.\n if (delay !== null && delay > 0) {\n return super.requestAsyncId(scheduler, id, delay);\n }\n // Push the action to the end of the scheduler queue.\n scheduler.actions.push(this);\n // If a microtask has already been scheduled, don't schedule another\n // one. If a microtask hasn't been scheduled yet, schedule one now. Return\n // the current scheduled microtask id.\n return scheduler._scheduled || (scheduler._scheduled = immediateProvider.setImmediate(scheduler.flush.bind(scheduler, undefined)));\n }\n\n protected recycleAsyncId(scheduler: AsapScheduler, id?: TimerHandle, delay: number = 0): TimerHandle | undefined {\n // If delay exists and is greater than 0, or if the delay is null (the\n // action wasn't rescheduled) but was originally scheduled as an async\n // action, then recycle as an async action.\n if (delay != null ? delay > 0 : this.delay > 0) {\n return super.recycleAsyncId(scheduler, id, delay);\n }\n // If the scheduler queue has no remaining actions with the same async id,\n // cancel the requested microtask and set the scheduled flag to undefined\n // so the next AsapAction will request its own.\n const { actions } = scheduler;\n if (id != null && actions[actions.length - 1]?.id !== id) {\n immediateProvider.clearImmediate(id);\n if (scheduler._scheduled === id) {\n scheduler._scheduled = undefined;\n }\n }\n // Return undefined so the action knows to request a new async id if it's rescheduled.\n return undefined;\n }\n}\n", "import { Action } from './scheduler/Action';\nimport { Subscription } from './Subscription';\nimport { SchedulerLike, SchedulerAction } from './types';\nimport { dateTimestampProvider } from './scheduler/dateTimestampProvider';\n\n/**\n * An execution context and a data structure to order tasks and schedule their\n * execution. Provides a notion of (potentially virtual) time, through the\n * `now()` getter method.\n *\n * Each unit of work in a Scheduler is called an `Action`.\n *\n * ```ts\n * class Scheduler {\n * now(): number;\n * schedule(work, delay?, state?): Subscription;\n * }\n * ```\n *\n * @deprecated Scheduler is an internal implementation detail of RxJS, and\n * should not be used directly. Rather, create your own class and implement\n * {@link SchedulerLike}. Will be made internal in v8.\n */\nexport class Scheduler implements SchedulerLike {\n public static now: () => number = dateTimestampProvider.now;\n\n constructor(private schedulerActionCtor: typeof Action, now: () => number = Scheduler.now) {\n this.now = now;\n }\n\n /**\n * A getter method that returns a number representing the current time\n * (at the time this function was called) according to the scheduler's own\n * internal clock.\n * @return A number that represents the current time. May or may not\n * have a relation to wall-clock time. May or may not refer to a time unit\n * (e.g. milliseconds).\n */\n public now: () => number;\n\n /**\n * Schedules a function, `work`, for execution. May happen at some point in\n * the future, according to the `delay` parameter, if specified. May be passed\n * some context object, `state`, which will be passed to the `work` function.\n *\n * The given arguments will be processed an stored as an Action object in a\n * queue of actions.\n *\n * @param work A function representing a task, or some unit of work to be\n * executed by the Scheduler.\n * @param delay Time to wait before executing the work, where the time unit is\n * implicit and defined by the Scheduler itself.\n * @param state Some contextual data that the `work` function uses when called\n * by the Scheduler.\n * @return A subscription in order to be able to unsubscribe the scheduled work.\n */\n public schedule(work: (this: SchedulerAction, state?: T) => void, delay: number = 0, state?: T): Subscription {\n return new this.schedulerActionCtor(this, work).schedule(state, delay);\n }\n}\n", "import { Scheduler } from '../Scheduler';\nimport { Action } from './Action';\nimport { AsyncAction } from './AsyncAction';\nimport { TimerHandle } from './timerHandle';\n\nexport class AsyncScheduler extends Scheduler {\n public actions: Array> = [];\n /**\n * A flag to indicate whether the Scheduler is currently executing a batch of\n * queued actions.\n * @internal\n */\n public _active: boolean = false;\n /**\n * An internal ID used to track the latest asynchronous task such as those\n * coming from `setTimeout`, `setInterval`, `requestAnimationFrame`, and\n * others.\n * @internal\n */\n public _scheduled: TimerHandle | undefined;\n\n constructor(SchedulerAction: typeof Action, now: () => number = Scheduler.now) {\n super(SchedulerAction, now);\n }\n\n public flush(action: AsyncAction): void {\n const { actions } = this;\n\n if (this._active) {\n actions.push(action);\n return;\n }\n\n let error: any;\n this._active = true;\n\n do {\n if ((error = action.execute(action.state, action.delay))) {\n break;\n }\n } while ((action = actions.shift()!)); // exhaust the scheduler queue\n\n this._active = false;\n\n if (error) {\n while ((action = actions.shift()!)) {\n action.unsubscribe();\n }\n throw error;\n }\n }\n}\n", "import { AsyncAction } from './AsyncAction';\nimport { AsyncScheduler } from './AsyncScheduler';\n\nexport class AsapScheduler extends AsyncScheduler {\n public flush(action?: AsyncAction): void {\n this._active = true;\n // The async id that effects a call to flush is stored in _scheduled.\n // Before executing an action, it's necessary to check the action's async\n // id to determine whether it's supposed to be executed in the current\n // flush.\n // Previous implementations of this method used a count to determine this,\n // but that was unsound, as actions that are unsubscribed - i.e. cancelled -\n // are removed from the actions array and that can shift actions that are\n // scheduled to be executed in a subsequent flush into positions at which\n // they are executed within the current flush.\n const flushId = this._scheduled;\n this._scheduled = undefined;\n\n const { actions } = this;\n let error: any;\n action = action || actions.shift()!;\n\n do {\n if ((error = action.execute(action.state, action.delay))) {\n break;\n }\n } while ((action = actions[0]) && action.id === flushId && actions.shift());\n\n this._active = false;\n\n if (error) {\n while ((action = actions[0]) && action.id === flushId && actions.shift()) {\n action.unsubscribe();\n }\n throw error;\n }\n }\n}\n", "import { AsapAction } from './AsapAction';\nimport { AsapScheduler } from './AsapScheduler';\n\n/**\n *\n * Asap Scheduler\n *\n * Perform task as fast as it can be performed asynchronously\n *\n * `asap` scheduler behaves the same as {@link asyncScheduler} scheduler when you use it to delay task\n * in time. If however you set delay to `0`, `asap` will wait for current synchronously executing\n * code to end and then it will try to execute given task as fast as possible.\n *\n * `asap` scheduler will do its best to minimize time between end of currently executing code\n * and start of scheduled task. This makes it best candidate for performing so called \"deferring\".\n * Traditionally this was achieved by calling `setTimeout(deferredTask, 0)`, but that technique involves\n * some (although minimal) unwanted delay.\n *\n * Note that using `asap` scheduler does not necessarily mean that your task will be first to process\n * after currently executing code. In particular, if some task was also scheduled with `asap` before,\n * that task will execute first. That being said, if you need to schedule task asynchronously, but\n * as soon as possible, `asap` scheduler is your best bet.\n *\n * ## Example\n * Compare async and asap scheduler<\n * ```ts\n * import { asapScheduler, asyncScheduler } from 'rxjs';\n *\n * asyncScheduler.schedule(() => console.log('async')); // scheduling 'async' first...\n * asapScheduler.schedule(() => console.log('asap'));\n *\n * // Logs:\n * // \"asap\"\n * // \"async\"\n * // ... but 'asap' goes first!\n * ```\n */\n\nexport const asapScheduler = new AsapScheduler(AsapAction);\n\n/**\n * @deprecated Renamed to {@link asapScheduler}. Will be removed in v8.\n */\nexport const asap = asapScheduler;\n", "import { AsyncAction } from './AsyncAction';\nimport { AsyncScheduler } from './AsyncScheduler';\n\n/**\n *\n * Async Scheduler\n *\n * Schedule task as if you used setTimeout(task, duration)\n *\n * `async` scheduler schedules tasks asynchronously, by putting them on the JavaScript\n * event loop queue. It is best used to delay tasks in time or to schedule tasks repeating\n * in intervals.\n *\n * If you just want to \"defer\" task, that is to perform it right after currently\n * executing synchronous code ends (commonly achieved by `setTimeout(deferredTask, 0)`),\n * better choice will be the {@link asapScheduler} scheduler.\n *\n * ## Examples\n * Use async scheduler to delay task\n * ```ts\n * import { asyncScheduler } from 'rxjs';\n *\n * const task = () => console.log('it works!');\n *\n * asyncScheduler.schedule(task, 2000);\n *\n * // After 2 seconds logs:\n * // \"it works!\"\n * ```\n *\n * Use async scheduler to repeat task in intervals\n * ```ts\n * import { asyncScheduler } from 'rxjs';\n *\n * function task(state) {\n * console.log(state);\n * this.schedule(state + 1, 1000); // `this` references currently executing Action,\n * // which we reschedule with new state and delay\n * }\n *\n * asyncScheduler.schedule(task, 3000, 0);\n *\n * // Logs:\n * // 0 after 3s\n * // 1 after 4s\n * // 2 after 5s\n * // 3 after 6s\n * ```\n */\n\nexport const asyncScheduler = new AsyncScheduler(AsyncAction);\n\n/**\n * @deprecated Renamed to {@link asyncScheduler}. Will be removed in v8.\n */\nexport const async = asyncScheduler;\n", "import { AsyncAction } from './AsyncAction';\nimport { Subscription } from '../Subscription';\nimport { QueueScheduler } from './QueueScheduler';\nimport { SchedulerAction } from '../types';\nimport { TimerHandle } from './timerHandle';\n\nexport class QueueAction extends AsyncAction {\n constructor(protected scheduler: QueueScheduler, protected work: (this: SchedulerAction, state?: T) => void) {\n super(scheduler, work);\n }\n\n public schedule(state?: T, delay: number = 0): Subscription {\n if (delay > 0) {\n return super.schedule(state, delay);\n }\n this.delay = delay;\n this.state = state;\n this.scheduler.flush(this);\n return this;\n }\n\n public execute(state: T, delay: number): any {\n return delay > 0 || this.closed ? super.execute(state, delay) : this._execute(state, delay);\n }\n\n protected requestAsyncId(scheduler: QueueScheduler, id?: TimerHandle, delay: number = 0): TimerHandle {\n // If delay exists and is greater than 0, or if the delay is null (the\n // action wasn't rescheduled) but was originally scheduled as an async\n // action, then recycle as an async action.\n\n if ((delay != null && delay > 0) || (delay == null && this.delay > 0)) {\n return super.requestAsyncId(scheduler, id, delay);\n }\n\n // Otherwise flush the scheduler starting with this action.\n scheduler.flush(this);\n\n // HACK: In the past, this was returning `void`. However, `void` isn't a valid\n // `TimerHandle`, and generally the return value here isn't really used. So the\n // compromise is to return `0` which is both \"falsy\" and a valid `TimerHandle`,\n // as opposed to refactoring every other instanceo of `requestAsyncId`.\n return 0;\n }\n}\n", "import { AsyncScheduler } from './AsyncScheduler';\n\nexport class QueueScheduler extends AsyncScheduler {\n}\n", "import { QueueAction } from './QueueAction';\nimport { QueueScheduler } from './QueueScheduler';\n\n/**\n *\n * Queue Scheduler\n *\n * Put every next task on a queue, instead of executing it immediately\n *\n * `queue` scheduler, when used with delay, behaves the same as {@link asyncScheduler} scheduler.\n *\n * When used without delay, it schedules given task synchronously - executes it right when\n * it is scheduled. However when called recursively, that is when inside the scheduled task,\n * another task is scheduled with queue scheduler, instead of executing immediately as well,\n * that task will be put on a queue and wait for current one to finish.\n *\n * This means that when you execute task with `queue` scheduler, you are sure it will end\n * before any other task scheduled with that scheduler will start.\n *\n * ## Examples\n * Schedule recursively first, then do something\n * ```ts\n * import { queueScheduler } from 'rxjs';\n *\n * queueScheduler.schedule(() => {\n * queueScheduler.schedule(() => console.log('second')); // will not happen now, but will be put on a queue\n *\n * console.log('first');\n * });\n *\n * // Logs:\n * // \"first\"\n * // \"second\"\n * ```\n *\n * Reschedule itself recursively\n * ```ts\n * import { queueScheduler } from 'rxjs';\n *\n * queueScheduler.schedule(function(state) {\n * if (state !== 0) {\n * console.log('before', state);\n * this.schedule(state - 1); // `this` references currently executing Action,\n * // which we reschedule with new state\n * console.log('after', state);\n * }\n * }, 0, 3);\n *\n * // In scheduler that runs recursively, you would expect:\n * // \"before\", 3\n * // \"before\", 2\n * // \"before\", 1\n * // \"after\", 1\n * // \"after\", 2\n * // \"after\", 3\n *\n * // But with queue it logs:\n * // \"before\", 3\n * // \"after\", 3\n * // \"before\", 2\n * // \"after\", 2\n * // \"before\", 1\n * // \"after\", 1\n * ```\n */\n\nexport const queueScheduler = new QueueScheduler(QueueAction);\n\n/**\n * @deprecated Renamed to {@link queueScheduler}. Will be removed in v8.\n */\nexport const queue = queueScheduler;\n", "import { AsyncAction } from './AsyncAction';\nimport { AnimationFrameScheduler } from './AnimationFrameScheduler';\nimport { SchedulerAction } from '../types';\nimport { animationFrameProvider } from './animationFrameProvider';\nimport { TimerHandle } from './timerHandle';\n\nexport class AnimationFrameAction extends AsyncAction {\n constructor(protected scheduler: AnimationFrameScheduler, protected work: (this: SchedulerAction, state?: T) => void) {\n super(scheduler, work);\n }\n\n protected requestAsyncId(scheduler: AnimationFrameScheduler, id?: TimerHandle, delay: number = 0): TimerHandle {\n // If delay is greater than 0, request as an async action.\n if (delay !== null && delay > 0) {\n return super.requestAsyncId(scheduler, id, delay);\n }\n // Push the action to the end of the scheduler queue.\n scheduler.actions.push(this);\n // If an animation frame has already been requested, don't request another\n // one. If an animation frame hasn't been requested yet, request one. Return\n // the current animation frame request id.\n return scheduler._scheduled || (scheduler._scheduled = animationFrameProvider.requestAnimationFrame(() => scheduler.flush(undefined)));\n }\n\n protected recycleAsyncId(scheduler: AnimationFrameScheduler, id?: TimerHandle, delay: number = 0): TimerHandle | undefined {\n // If delay exists and is greater than 0, or if the delay is null (the\n // action wasn't rescheduled) but was originally scheduled as an async\n // action, then recycle as an async action.\n if (delay != null ? delay > 0 : this.delay > 0) {\n return super.recycleAsyncId(scheduler, id, delay);\n }\n // If the scheduler queue has no remaining actions with the same async id,\n // cancel the requested animation frame and set the scheduled flag to\n // undefined so the next AnimationFrameAction will request its own.\n const { actions } = scheduler;\n if (id != null && id === scheduler._scheduled && actions[actions.length - 1]?.id !== id) {\n animationFrameProvider.cancelAnimationFrame(id as number);\n scheduler._scheduled = undefined;\n }\n // Return undefined so the action knows to request a new async id if it's rescheduled.\n return undefined;\n }\n}\n", "import { AsyncAction } from './AsyncAction';\nimport { AsyncScheduler } from './AsyncScheduler';\n\nexport class AnimationFrameScheduler extends AsyncScheduler {\n public flush(action?: AsyncAction): void {\n this._active = true;\n // The async id that effects a call to flush is stored in _scheduled.\n // Before executing an action, it's necessary to check the action's async\n // id to determine whether it's supposed to be executed in the current\n // flush.\n // Previous implementations of this method used a count to determine this,\n // but that was unsound, as actions that are unsubscribed - i.e. cancelled -\n // are removed from the actions array and that can shift actions that are\n // scheduled to be executed in a subsequent flush into positions at which\n // they are executed within the current flush.\n let flushId;\n if (action) {\n flushId = action.id;\n } else {\n flushId = this._scheduled;\n this._scheduled = undefined;\n }\n\n const { actions } = this;\n let error: any;\n action = action || actions.shift()!;\n\n do {\n if ((error = action.execute(action.state, action.delay))) {\n break;\n }\n } while ((action = actions[0]) && action.id === flushId && actions.shift());\n\n this._active = false;\n\n if (error) {\n while ((action = actions[0]) && action.id === flushId && actions.shift()) {\n action.unsubscribe();\n }\n throw error;\n }\n }\n}\n", "import { AnimationFrameAction } from './AnimationFrameAction';\nimport { AnimationFrameScheduler } from './AnimationFrameScheduler';\n\n/**\n *\n * Animation Frame Scheduler\n *\n * Perform task when `window.requestAnimationFrame` would fire\n *\n * When `animationFrame` scheduler is used with delay, it will fall back to {@link asyncScheduler} scheduler\n * behaviour.\n *\n * Without delay, `animationFrame` scheduler can be used to create smooth browser animations.\n * It makes sure scheduled task will happen just before next browser content repaint,\n * thus performing animations as efficiently as possible.\n *\n * ## Example\n * Schedule div height animation\n * ```ts\n * // html:
    \n * import { animationFrameScheduler } from 'rxjs';\n *\n * const div = document.querySelector('div');\n *\n * animationFrameScheduler.schedule(function(height) {\n * div.style.height = height + \"px\";\n *\n * this.schedule(height + 1); // `this` references currently executing Action,\n * // which we reschedule with new state\n * }, 0, 0);\n *\n * // You will see a div element growing in height\n * ```\n */\n\nexport const animationFrameScheduler = new AnimationFrameScheduler(AnimationFrameAction);\n\n/**\n * @deprecated Renamed to {@link animationFrameScheduler}. Will be removed in v8.\n */\nexport const animationFrame = animationFrameScheduler;\n", "import { AsyncAction } from './AsyncAction';\nimport { Subscription } from '../Subscription';\nimport { AsyncScheduler } from './AsyncScheduler';\nimport { SchedulerAction } from '../types';\nimport { TimerHandle } from './timerHandle';\n\nexport class VirtualTimeScheduler extends AsyncScheduler {\n /** @deprecated Not used in VirtualTimeScheduler directly. Will be removed in v8. */\n static frameTimeFactor = 10;\n\n /**\n * The current frame for the state of the virtual scheduler instance. The difference\n * between two \"frames\" is synonymous with the passage of \"virtual time units\". So if\n * you record `scheduler.frame` to be `1`, then later, observe `scheduler.frame` to be at `11`,\n * that means `10` virtual time units have passed.\n */\n public frame: number = 0;\n\n /**\n * Used internally to examine the current virtual action index being processed.\n * @deprecated Internal implementation detail, do not use directly. Will be made internal in v8.\n */\n public index: number = -1;\n\n /**\n * This creates an instance of a `VirtualTimeScheduler`. Experts only. The signature of\n * this constructor is likely to change in the long run.\n *\n * @param schedulerActionCtor The type of Action to initialize when initializing actions during scheduling.\n * @param maxFrames The maximum number of frames to process before stopping. Used to prevent endless flush cycles.\n */\n constructor(schedulerActionCtor: typeof AsyncAction = VirtualAction as any, public maxFrames: number = Infinity) {\n super(schedulerActionCtor, () => this.frame);\n }\n\n /**\n * Prompt the Scheduler to execute all of its queued actions, therefore\n * clearing its queue.\n */\n public flush(): void {\n const { actions, maxFrames } = this;\n let error: any;\n let action: AsyncAction | undefined;\n\n while ((action = actions[0]) && action.delay <= maxFrames) {\n actions.shift();\n this.frame = action.delay;\n\n if ((error = action.execute(action.state, action.delay))) {\n break;\n }\n }\n\n if (error) {\n while ((action = actions.shift())) {\n action.unsubscribe();\n }\n throw error;\n }\n }\n}\n\nexport class VirtualAction extends AsyncAction {\n protected active: boolean = true;\n\n constructor(\n protected scheduler: VirtualTimeScheduler,\n protected work: (this: SchedulerAction, state?: T) => void,\n protected index: number = (scheduler.index += 1)\n ) {\n super(scheduler, work);\n this.index = scheduler.index = index;\n }\n\n public schedule(state?: T, delay: number = 0): Subscription {\n if (Number.isFinite(delay)) {\n if (!this.id) {\n return super.schedule(state, delay);\n }\n this.active = false;\n // If an action is rescheduled, we save allocations by mutating its state,\n // pushing it to the end of the scheduler queue, and recycling the action.\n // But since the VirtualTimeScheduler is used for testing, VirtualActions\n // must be immutable so they can be inspected later.\n const action = new VirtualAction(this.scheduler, this.work);\n this.add(action);\n return action.schedule(state, delay);\n } else {\n // If someone schedules something with Infinity, it'll never happen. So we\n // don't even schedule it.\n return Subscription.EMPTY;\n }\n }\n\n protected requestAsyncId(scheduler: VirtualTimeScheduler, id?: any, delay: number = 0): TimerHandle {\n this.delay = scheduler.frame + delay;\n const { actions } = scheduler;\n actions.push(this);\n (actions as Array>).sort(VirtualAction.sortActions);\n return 1;\n }\n\n protected recycleAsyncId(scheduler: VirtualTimeScheduler, id?: any, delay: number = 0): TimerHandle | undefined {\n return undefined;\n }\n\n protected _execute(state: T, delay: number): any {\n if (this.active === true) {\n return super._execute(state, delay);\n }\n }\n\n private static sortActions(a: VirtualAction, b: VirtualAction) {\n if (a.delay === b.delay) {\n if (a.index === b.index) {\n return 0;\n } else if (a.index > b.index) {\n return 1;\n } else {\n return -1;\n }\n } else if (a.delay > b.delay) {\n return 1;\n } else {\n return -1;\n }\n }\n}\n", "import { Observable } from '../Observable';\nimport { SchedulerLike } from '../types';\n\n/**\n * A simple Observable that emits no items to the Observer and immediately\n * emits a complete notification.\n *\n * Just emits 'complete', and nothing else.\n *\n * ![](empty.png)\n *\n * A simple Observable that only emits the complete notification. It can be used\n * for composing with other Observables, such as in a {@link mergeMap}.\n *\n * ## Examples\n *\n * Log complete notification\n *\n * ```ts\n * import { EMPTY } from 'rxjs';\n *\n * EMPTY.subscribe({\n * next: () => console.log('Next'),\n * complete: () => console.log('Complete!')\n * });\n *\n * // Outputs\n * // Complete!\n * ```\n *\n * Emit the number 7, then complete\n *\n * ```ts\n * import { EMPTY, startWith } from 'rxjs';\n *\n * const result = EMPTY.pipe(startWith(7));\n * result.subscribe(x => console.log(x));\n *\n * // Outputs\n * // 7\n * ```\n *\n * Map and flatten only odd numbers to the sequence `'a'`, `'b'`, `'c'`\n *\n * ```ts\n * import { interval, mergeMap, of, EMPTY } from 'rxjs';\n *\n * const interval$ = interval(1000);\n * const result = interval$.pipe(\n * mergeMap(x => x % 2 === 1 ? of('a', 'b', 'c') : EMPTY),\n * );\n * result.subscribe(x => console.log(x));\n *\n * // Results in the following to the console:\n * // x is equal to the count on the interval, e.g. (0, 1, 2, 3, ...)\n * // x will occur every 1000ms\n * // if x % 2 is equal to 1, print a, b, c (each on its own)\n * // if x % 2 is not equal to 1, nothing will be output\n * ```\n *\n * @see {@link Observable}\n * @see {@link NEVER}\n * @see {@link of}\n * @see {@link throwError}\n */\nexport const EMPTY = new Observable((subscriber) => subscriber.complete());\n\n/**\n * @param scheduler A {@link SchedulerLike} to use for scheduling\n * the emission of the complete notification.\n * @deprecated Replaced with the {@link EMPTY} constant or {@link scheduled} (e.g. `scheduled([], scheduler)`). Will be removed in v8.\n */\nexport function empty(scheduler?: SchedulerLike) {\n return scheduler ? emptyScheduled(scheduler) : EMPTY;\n}\n\nfunction emptyScheduled(scheduler: SchedulerLike) {\n return new Observable((subscriber) => scheduler.schedule(() => subscriber.complete()));\n}\n", "import { SchedulerLike } from '../types';\nimport { isFunction } from './isFunction';\n\nexport function isScheduler(value: any): value is SchedulerLike {\n return value && isFunction(value.schedule);\n}\n", "import { SchedulerLike } from '../types';\nimport { isFunction } from './isFunction';\nimport { isScheduler } from './isScheduler';\n\nfunction last(arr: T[]): T | undefined {\n return arr[arr.length - 1];\n}\n\nexport function popResultSelector(args: any[]): ((...args: unknown[]) => unknown) | undefined {\n return isFunction(last(args)) ? args.pop() : undefined;\n}\n\nexport function popScheduler(args: any[]): SchedulerLike | undefined {\n return isScheduler(last(args)) ? args.pop() : undefined;\n}\n\nexport function popNumber(args: any[], defaultValue: number): number {\n return typeof last(args) === 'number' ? args.pop()! : defaultValue;\n}\n", "export const isArrayLike = ((x: any): x is ArrayLike => x && typeof x.length === 'number' && typeof x !== 'function');", "import { isFunction } from \"./isFunction\";\n\n/**\n * Tests to see if the object is \"thennable\".\n * @param value the object to test\n */\nexport function isPromise(value: any): value is PromiseLike {\n return isFunction(value?.then);\n}\n", "import { InteropObservable } from '../types';\nimport { observable as Symbol_observable } from '../symbol/observable';\nimport { isFunction } from './isFunction';\n\n/** Identifies an input as being Observable (but not necessary an Rx Observable) */\nexport function isInteropObservable(input: any): input is InteropObservable {\n return isFunction(input[Symbol_observable]);\n}\n", "import { isFunction } from './isFunction';\n\nexport function isAsyncIterable(obj: any): obj is AsyncIterable {\n return Symbol.asyncIterator && isFunction(obj?.[Symbol.asyncIterator]);\n}\n", "/**\n * Creates the TypeError to throw if an invalid object is passed to `from` or `scheduled`.\n * @param input The object that was passed.\n */\nexport function createInvalidObservableTypeError(input: any) {\n // TODO: We should create error codes that can be looked up, so this can be less verbose.\n return new TypeError(\n `You provided ${\n input !== null && typeof input === 'object' ? 'an invalid object' : `'${input}'`\n } where a stream was expected. You can provide an Observable, Promise, ReadableStream, Array, AsyncIterable, or Iterable.`\n );\n}\n", "export function getSymbolIterator(): symbol {\n if (typeof Symbol !== 'function' || !Symbol.iterator) {\n return '@@iterator' as any;\n }\n\n return Symbol.iterator;\n}\n\nexport const iterator = getSymbolIterator();\n", "import { iterator as Symbol_iterator } from '../symbol/iterator';\nimport { isFunction } from './isFunction';\n\n/** Identifies an input as being an Iterable */\nexport function isIterable(input: any): input is Iterable {\n return isFunction(input?.[Symbol_iterator]);\n}\n", "import { ReadableStreamLike } from '../types';\nimport { isFunction } from './isFunction';\n\nexport async function* readableStreamLikeToAsyncGenerator(readableStream: ReadableStreamLike): AsyncGenerator {\n const reader = readableStream.getReader();\n try {\n while (true) {\n const { value, done } = await reader.read();\n if (done) {\n return;\n }\n yield value!;\n }\n } finally {\n reader.releaseLock();\n }\n}\n\nexport function isReadableStreamLike(obj: any): obj is ReadableStreamLike {\n // We don't want to use instanceof checks because they would return\n // false for instances from another Realm, like an `;\n }\n return '';\n case 'markdown':\n // Return the raw markdown content wrapped in a div\n return `
    ${this.escapeHtml(block.content)}
    `;\n case 'html':\n // Return the raw HTML content (already HTML)\n return block.content;\n case 'attachment':\n const files = block.metadata?.files || [];\n if (files.length > 0) {\n return `
    ${files.map((file: any) => \n `
    \n ${this.escapeHtml(file.name)}\n (${this.formatFileSize(file.size)})\n
    `\n ).join('')}
    `;\n }\n return '';\n default:\n return `

    ${content}

    `;\n }\n }).filter(html => html !== '').join('\\n');\n }\n\n static getMarkdownOutput(blocks: IBlock[]): string {\n return blocks.map(block => {\n switch (block.type) {\n case 'paragraph':\n return block.content;\n case 'heading-1':\n return `# ${block.content}`;\n case 'heading-2':\n return `## ${block.content}`;\n case 'heading-3':\n return `### ${block.content}`;\n case 'quote':\n return `> ${block.content}`;\n case 'code':\n return `\\`\\`\\`\\n${block.content}\\n\\`\\`\\``;\n case 'list':\n const items = block.content.split('\\n').filter(item => item.trim());\n if (block.metadata?.listType === 'ordered') {\n return items.map((item, index) => `${index + 1}. ${item}`).join('\\n');\n } else {\n return items.map(item => `- ${item}`).join('\\n');\n }\n case 'divider':\n return '---';\n case 'image':\n const imageUrl = block.metadata?.url;\n const altText = block.content || 'Image';\n return imageUrl ? `![${altText}](${imageUrl})` : '';\n case 'youtube':\n const videoId = block.metadata?.videoId;\n const url = block.metadata?.url || (videoId ? `https://youtube.com/watch?v=${videoId}` : '');\n return url ? `[YouTube Video](${url})` : '';\n case 'markdown':\n // Return the raw markdown content\n return block.content;\n case 'html':\n // Return as HTML comment in markdown\n return ``;\n case 'attachment':\n const files = block.metadata?.files || [];\n if (files.length > 0) {\n return files.map((file: any) => `- [${file.name}](${file.data})`).join('\\n');\n }\n return '';\n default:\n return block.content;\n }\n }).filter(md => md !== '').join('\\n\\n');\n }\n\n static parseHtmlToBlocks(html: string): IBlock[] {\n const parser = new DOMParser();\n const doc = parser.parseFromString(html, 'text/html');\n const blocks: IBlock[] = [];\n \n const processNode = (node: Node) => {\n if (node.nodeType === Node.TEXT_NODE && node.textContent?.trim()) {\n blocks.push({\n id: `block-${Date.now()}-${Math.random().toString(36).substring(2, 9)}`,\n type: 'paragraph',\n content: node.textContent.trim(),\n });\n } else if (node.nodeType === Node.ELEMENT_NODE) {\n const element = node as Element;\n const tagName = element.tagName.toLowerCase();\n \n switch (tagName) {\n case 'p':\n blocks.push({\n id: `block-${Date.now()}-${Math.random().toString(36).substring(2, 9)}`,\n type: 'paragraph',\n content: element.innerHTML || '',\n });\n break;\n case 'h1':\n blocks.push({\n id: `block-${Date.now()}-${Math.random().toString(36).substring(2, 9)}`,\n type: 'heading-1',\n content: element.innerHTML || '',\n });\n break;\n case 'h2':\n blocks.push({\n id: `block-${Date.now()}-${Math.random().toString(36).substring(2, 9)}`,\n type: 'heading-2',\n content: element.innerHTML || '',\n });\n break;\n case 'h3':\n blocks.push({\n id: `block-${Date.now()}-${Math.random().toString(36).substring(2, 9)}`,\n type: 'heading-3',\n content: element.innerHTML || '',\n });\n break;\n case 'blockquote':\n blocks.push({\n id: `block-${Date.now()}-${Math.random().toString(36).substring(2, 9)}`,\n type: 'quote',\n content: element.innerHTML || '',\n });\n break;\n case 'pre':\n case 'code':\n blocks.push({\n id: `block-${Date.now()}-${Math.random().toString(36).substring(2, 9)}`,\n type: 'code',\n content: element.textContent || '',\n });\n break;\n case 'ul':\n case 'ol':\n const listItems = Array.from(element.querySelectorAll('li'));\n // Use innerHTML to preserve formatting\n const content = listItems.map(li => li.innerHTML || '').join('\\n');\n blocks.push({\n id: `block-${Date.now()}-${Math.random().toString(36).substring(2, 9)}`,\n type: 'list',\n content: content,\n metadata: { listType: tagName === 'ol' ? 'ordered' : 'bullet' }\n });\n break;\n case 'hr':\n blocks.push({\n id: `block-${Date.now()}-${Math.random().toString(36).substring(2, 9)}`,\n type: 'divider',\n content: ' ',\n });\n break;\n case 'img':\n const imgElement = element as HTMLImageElement;\n blocks.push({\n id: `block-${Date.now()}-${Math.random().toString(36).substring(2, 9)}`,\n type: 'image',\n content: imgElement.alt || '',\n metadata: { url: imgElement.src }\n });\n break;\n default:\n // Process children for other elements\n element.childNodes.forEach(child => processNode(child));\n }\n }\n };\n \n doc.body.childNodes.forEach(node => processNode(node));\n return blocks;\n }\n\n static parseMarkdownToBlocks(markdown: string): IBlock[] {\n const lines = markdown.split('\\n');\n const blocks: IBlock[] = [];\n let currentListItems: string[] = [];\n \n for (let i = 0; i < lines.length; i++) {\n const line = lines[i];\n \n if (line.startsWith('# ')) {\n blocks.push({\n id: `block-${Date.now()}-${Math.random().toString(36).substring(2, 9)}`,\n type: 'heading-1',\n content: line.substring(2),\n });\n } else if (line.startsWith('## ')) {\n blocks.push({\n id: `block-${Date.now()}-${Math.random().toString(36).substring(2, 9)}`,\n type: 'heading-2',\n content: line.substring(3),\n });\n } else if (line.startsWith('### ')) {\n blocks.push({\n id: `block-${Date.now()}-${Math.random().toString(36).substring(2, 9)}`,\n type: 'heading-3',\n content: line.substring(4),\n });\n } else if (line.startsWith('> ')) {\n blocks.push({\n id: `block-${Date.now()}-${Math.random().toString(36).substring(2, 9)}`,\n type: 'quote',\n content: line.substring(2),\n });\n } else if (line.startsWith('```')) {\n const codeLines: string[] = [];\n i++;\n while (i < lines.length && !lines[i].startsWith('```')) {\n codeLines.push(lines[i]);\n i++;\n }\n blocks.push({\n id: `block-${Date.now()}-${Math.random().toString(36).substring(2, 9)}`,\n type: 'code',\n content: codeLines.join('\\n'),\n });\n } else if (line.match(/^(\\*|-) /)) {\n currentListItems.push(line.substring(2));\n // Check if next line is not a list item\n if (i === lines.length - 1 || (!lines[i + 1].match(/^(\\*|-) /))) {\n blocks.push({\n id: `block-${Date.now()}-${Math.random().toString(36).substring(2, 9)}`,\n type: 'list',\n content: currentListItems.join('\\n'),\n metadata: { listType: 'bullet' }\n });\n currentListItems = [];\n }\n } else if (line.match(/^\\d+\\. /)) {\n currentListItems.push(line.replace(/^\\d+\\. /, ''));\n // Check if next line is not a numbered list item\n if (i === lines.length - 1 || (!lines[i + 1].match(/^\\d+\\. /))) {\n blocks.push({\n id: `block-${Date.now()}-${Math.random().toString(36).substring(2, 9)}`,\n type: 'list',\n content: currentListItems.join('\\n'),\n metadata: { listType: 'ordered' }\n });\n currentListItems = [];\n }\n } else if (line === '---' || line === '***' || line === '___') {\n blocks.push({\n id: `block-${Date.now()}-${Math.random().toString(36).substring(2, 9)}`,\n type: 'divider',\n content: ' ',\n });\n } else if (line.match(/^!\\[([^\\]]*)\\]\\(([^\\)]+)\\)$/)) {\n // Parse markdown image syntax ![alt](url)\n const match = line.match(/^!\\[([^\\]]*)\\]\\(([^\\)]+)\\)$/);\n if (match) {\n blocks.push({\n id: `block-${Date.now()}-${Math.random().toString(36).substring(2, 9)}`,\n type: 'image',\n content: match[1] || '',\n metadata: { url: match[2] }\n });\n }\n } else if (line.trim()) {\n blocks.push({\n id: `block-${Date.now()}-${Math.random().toString(36).substring(2, 9)}`,\n type: 'paragraph',\n content: line,\n });\n }\n }\n \n return blocks;\n }\n}", "import { html, type TemplateResult } from '@design.estate/dees-element';\nimport { type IBlock } from './wysiwyg.types.js';\nimport { WysiwygConverters } from './wysiwyg.converters.js';\n\nexport class WysiwygBlocks {\n static renderListContent(content: string, metadata?: any): string {\n const items = content.split('\\n').filter(item => item.trim());\n if (items.length === 0) return '';\n const listTag = metadata?.listType === 'ordered' ? 'ol' : 'ul';\n // Don't escape HTML to preserve formatting\n return `<${listTag}>${items.map(item => `
  • ${item}
  • `).join('')}`;\n }\n\n static renderBlock(\n block: IBlock,\n isSelected: boolean,\n handlers: {\n onInput: (e: InputEvent) => void;\n onKeyDown: (e: KeyboardEvent) => void;\n onFocus: () => void;\n onBlur: () => void;\n onCompositionStart: () => void;\n onCompositionEnd: () => void;\n onMouseUp?: (e: MouseEvent) => void;\n }\n ): TemplateResult {\n if (block.type === 'divider') {\n return html`\n \n
    \n \n `;\n }\n\n if (block.type === 'list') {\n return html`\n {\n console.log('Block mouseup event fired');\n if (handlers.onMouseUp) handlers.onMouseUp(e);\n }}\"\n .innerHTML=\"${this.renderListContent(block.content, block.metadata)}\"\n >\n `;\n }\n \n // Special rendering for code blocks with language indicator\n if (block.type === 'code') {\n const language = block.metadata?.language || 'plain text';\n return html`\n
    \n
    ${language}
    \n {\n console.log('Block mouseup event fired');\n if (handlers.onMouseUp) handlers.onMouseUp(e);\n }}\"\n .textContent=\"${block.content || ''}\"\n >
    \n \n `;\n }\n \n const blockElement = html`\n {\n console.log('Block mouseup event fired');\n if (handlers.onMouseUp) handlers.onMouseUp(e);\n }}\"\n .innerHTML=\"${block.content || ''}\"\n >\n `;\n \n return blockElement;\n }\n\n static setCursorToEnd(element: HTMLElement): void {\n const sel = window.getSelection();\n if (!sel) return;\n \n const range = document.createRange();\n \n // Handle different content types\n if (element.childNodes.length === 0) {\n // Empty element - add a zero-width space to enable cursor\n const textNode = document.createTextNode('\\u200B');\n element.appendChild(textNode);\n range.setStart(textNode, 1);\n range.collapse(true);\n } else {\n // Find the last text node or element\n const lastNode = this.getLastNode(element);\n if (lastNode.nodeType === Node.TEXT_NODE) {\n range.setStart(lastNode, lastNode.textContent?.length || 0);\n } else {\n range.setStartAfter(lastNode);\n }\n range.collapse(true);\n }\n \n sel.removeAllRanges();\n sel.addRange(range);\n \n // Remove zero-width space if it was added\n if (element.textContent === '\\u200B') {\n element.textContent = '';\n }\n }\n\n static setCursorToStart(element: HTMLElement): void {\n const sel = window.getSelection();\n if (!sel) return;\n \n const range = document.createRange();\n \n // Handle different content types\n if (element.childNodes.length === 0) {\n // Empty element\n range.setStart(element, 0);\n range.collapse(true);\n } else {\n // Find the first text node or element\n const firstNode = this.getFirstNode(element);\n if (firstNode.nodeType === Node.TEXT_NODE) {\n range.setStart(firstNode, 0);\n } else {\n range.setStartBefore(firstNode);\n }\n range.collapse(true);\n }\n \n sel.removeAllRanges();\n sel.addRange(range);\n }\n \n private static getLastNode(element: Node): Node {\n if (element.childNodes.length === 0) {\n return element;\n }\n \n const lastChild = element.childNodes[element.childNodes.length - 1];\n if (lastChild.nodeType === Node.TEXT_NODE || lastChild.childNodes.length === 0) {\n return lastChild;\n }\n \n return this.getLastNode(lastChild);\n }\n \n private static getFirstNode(element: Node): Node {\n if (element.childNodes.length === 0) {\n return element;\n }\n \n const firstChild = element.childNodes[0];\n if (firstChild.nodeType === Node.TEXT_NODE || firstChild.childNodes.length === 0) {\n return firstChild;\n }\n \n return this.getFirstNode(firstChild);\n }\n\n static focusListItem(listElement: HTMLElement): void {\n const firstLi = listElement.querySelector('li');\n if (firstLi) {\n firstLi.focus();\n const range = document.createRange();\n const sel = window.getSelection();\n range.selectNodeContents(firstLi);\n range.collapse(true);\n sel!.removeAllRanges();\n sel!.addRange(range);\n }\n }\n}", "import { type IBlock } from './wysiwyg.types.js';\nimport { type IWysiwygComponent } from './wysiwyg.interfaces.js';\nimport { WysiwygShortcuts } from './wysiwyg.shortcuts.js';\nimport { WysiwygBlocks } from './wysiwyg.blocks.js';\n\nexport class WysiwygBlockOperations {\n private component: IWysiwygComponent;\n\n constructor(component: IWysiwygComponent) {\n this.component = component;\n }\n\n /**\n * Creates a new block with the specified parameters\n */\n createBlock(type: IBlock['type'] = 'paragraph', content: string = '', metadata?: any): IBlock {\n return {\n id: WysiwygShortcuts.generateBlockId(),\n type,\n content,\n ...(metadata && { metadata })\n };\n }\n\n /**\n * Inserts a block after the specified block\n */\n async insertBlockAfter(afterBlock: IBlock, newBlock: IBlock, focusNewBlock: boolean = true): Promise {\n const blocks = this.component.blocks;\n const blockIndex = blocks.findIndex((b: IBlock) => b.id === afterBlock.id);\n \n this.component.blocks = [\n ...blocks.slice(0, blockIndex + 1), \n newBlock, \n ...blocks.slice(blockIndex + 1)\n ];\n \n // Insert the new block element programmatically if we have the editor\n if (this.component.editorContentRef) {\n const afterWrapper = this.component.editorContentRef.querySelector(`[data-block-id=\"${afterBlock.id}\"]`);\n if (afterWrapper) {\n const newWrapper = this.component.createBlockElement(newBlock);\n afterWrapper.insertAdjacentElement('afterend', newWrapper);\n }\n }\n \n this.component.updateValue();\n \n if (focusNewBlock && newBlock.type !== 'divider') {\n // Give DOM time to settle\n await new Promise(resolve => setTimeout(resolve, 0));\n \n // Focus the new block\n await this.focusBlock(newBlock.id, 'start');\n }\n }\n\n /**\n * Removes a block by its ID\n */\n removeBlock(blockId: string): void {\n // Save checkpoint before deletion\n this.component.saveToHistory(false);\n \n this.component.blocks = this.component.blocks.filter((b: IBlock) => b.id !== blockId);\n \n // Remove the block element programmatically if we have the editor\n if (this.component.editorContentRef) {\n const wrapper = this.component.editorContentRef.querySelector(`[data-block-id=\"${blockId}\"]`);\n if (wrapper) {\n wrapper.remove();\n }\n }\n \n this.component.updateValue();\n }\n\n /**\n * Finds a block by its ID\n */\n findBlock(blockId: string): IBlock | undefined {\n return this.component.blocks.find((b: IBlock) => b.id === blockId);\n }\n\n /**\n * Gets the index of a block\n */\n getBlockIndex(blockId: string): number {\n return this.component.blocks.findIndex((b: IBlock) => b.id === blockId);\n }\n\n /**\n * Focuses a specific block\n */\n async focusBlock(blockId: string, cursorPosition: 'start' | 'end' | number = 'start'): Promise {\n const wrapperElement = this.component.shadowRoot!.querySelector(`[data-block-id=\"${blockId}\"]`);\n if (wrapperElement) {\n const blockComponent = wrapperElement.querySelector('dees-wysiwyg-block') as any;\n if (blockComponent) {\n // Wait a frame to ensure the block is rendered\n await new Promise(resolve => requestAnimationFrame(resolve));\n \n // Now focus with cursor position\n blockComponent.focusWithCursor(cursorPosition);\n }\n }\n }\n\n /**\n * Updates the content of a block\n */\n updateBlockContent(blockId: string, content: string): void {\n const block = this.findBlock(blockId);\n if (block) {\n block.content = content;\n this.component.updateValue();\n }\n }\n\n /**\n * Transforms a block to a different type\n */\n transformBlock(blockId: string, newType: IBlock['type'], metadata?: any): void {\n const block = this.findBlock(blockId);\n if (block) {\n // Save checkpoint before transformation\n this.component.saveToHistory(false);\n \n block.type = newType;\n block.content = '';\n if (metadata) {\n block.metadata = metadata;\n }\n \n // Update the block element programmatically if we have the editor\n if (this.component.editorContentRef) {\n this.component.updateBlockElement(blockId);\n }\n \n this.component.updateValue();\n }\n }\n\n /**\n * Moves a block to a new position\n */\n moveBlock(blockId: string, targetIndex: number): void {\n const blocks = [...this.component.blocks];\n const currentIndex = this.getBlockIndex(blockId);\n \n if (currentIndex === -1 || targetIndex < 0 || targetIndex >= blocks.length) {\n return;\n }\n \n const [movedBlock] = blocks.splice(currentIndex, 1);\n blocks.splice(targetIndex, 0, movedBlock);\n \n this.component.blocks = blocks;\n this.component.updateValue();\n }\n\n /**\n * Gets the previous block\n */\n getPreviousBlock(blockId: string): IBlock | null {\n const index = this.getBlockIndex(blockId);\n return index > 0 ? this.component.blocks[index - 1] : null;\n }\n\n /**\n * Gets the next block\n */\n getNextBlock(blockId: string): IBlock | null {\n const index = this.getBlockIndex(blockId);\n return index < this.component.blocks.length - 1 ? this.component.blocks[index + 1] : null;\n }\n}", "import type { IBlock } from '../wysiwyg.types.js';\nimport type { IBlockEventHandlers } from '../wysiwyg.interfaces.js';\n\n// Re-export types from the interfaces\nexport type { IBlockEventHandlers } from '../wysiwyg.interfaces.js';\n\nexport interface IBlockContext {\n shadowRoot: ShadowRoot;\n component: any; // Reference to the wysiwyg-block component\n}\n\nexport interface IBlockHandler {\n type: string;\n render(block: IBlock, isSelected: boolean): string;\n setup(element: HTMLElement, block: IBlock, handlers: IBlockEventHandlers): void;\n getStyles(): string;\n getPlaceholder?(): string;\n \n // Optional methods for editable blocks - now with context\n getContent?(element: HTMLElement, context?: IBlockContext): string;\n setContent?(element: HTMLElement, content: string, context?: IBlockContext): void;\n getCursorPosition?(element: HTMLElement, context?: IBlockContext): number | null;\n setCursorToStart?(element: HTMLElement, context?: IBlockContext): void;\n setCursorToEnd?(element: HTMLElement, context?: IBlockContext): void;\n focus?(element: HTMLElement, context?: IBlockContext): void;\n focusWithCursor?(element: HTMLElement, position: 'start' | 'end' | number, context?: IBlockContext): void;\n getSplitContent?(element: HTMLElement, context?: IBlockContext): { before: string; after: string } | null;\n}\n\n\nexport abstract class BaseBlockHandler implements IBlockHandler {\n abstract type: string;\n abstract render(block: IBlock, isSelected: boolean): string;\n \n // Default implementation for common setup\n setup(element: HTMLElement, block: IBlock, handlers: IBlockEventHandlers): void {\n // Common setup logic\n }\n \n // Common styles can be defined here\n getStyles(): string {\n return '';\n }\n}", "import type { IBlockHandler } from './block.base.js';\n\nexport class BlockRegistry {\n private static handlers = new Map();\n \n static register(type: string, handler: IBlockHandler): void {\n this.handlers.set(type, handler);\n }\n \n static getHandler(type: string): IBlockHandler | undefined {\n return this.handlers.get(type);\n }\n \n static getAllTypes(): string[] {\n return Array.from(this.handlers.keys());\n }\n}", "/**\n * Common styles shared across all block types\n */\n\nexport const commonBlockStyles = `\n /* Common block spacing and layout */\n /* TODO: Extract common spacing from existing blocks */\n \n /* Common focus states */\n /* TODO: Extract common focus styles */\n \n /* Common selected states */\n /* TODO: Extract common selection styles */\n \n /* Common hover states */\n /* TODO: Extract common hover styles */\n \n /* Common transition effects */\n /* TODO: Extract common transitions */\n \n /* Common placeholder styles */\n /* TODO: Extract common placeholder styles */\n \n /* Common error states */\n /* TODO: Extract common error styles */\n \n /* Common loading states */\n /* TODO: Extract common loading styles */\n`;\n\n/**\n * Helper function to generate consistent block classes\n */\nexport const getBlockClasses = (\n type: string,\n isSelected: boolean,\n additionalClasses: string[] = []\n): string => {\n const classes = ['block', type];\n if (isSelected) {\n classes.push('selected');\n }\n classes.push(...additionalClasses);\n return classes.join(' ');\n};\n\n/**\n * Helper function to generate consistent data attributes\n */\nexport const getBlockDataAttributes = (\n blockId: string,\n blockType: string,\n additionalAttributes: Record = {}\n): string => {\n const attributes = {\n 'data-block-id': blockId,\n 'data-block-type': blockType,\n ...additionalAttributes\n };\n \n return Object.entries(attributes)\n .map(([key, value]) => `${key}=\"${value}\"`)\n .join(' ');\n};", "import { BaseBlockHandler, type IBlockEventHandlers } from '../block.base.js';\nimport type { IBlock } from '../../wysiwyg.types.js';\nimport { cssManager } from '@design.estate/dees-element';\nimport { WysiwygBlocks } from '../../wysiwyg.blocks.js';\nimport { WysiwygSelection } from '../../wysiwyg.selection.js';\n\nexport class ParagraphBlockHandler extends BaseBlockHandler {\n type = 'paragraph';\n \n // Track cursor position\n private lastKnownCursorPosition: number = 0;\n private lastSelectedText: string = '';\n private selectionHandler: (() => void) | null = null;\n \n render(block: IBlock, isSelected: boolean): string {\n const selectedClass = isSelected ? ' selected' : '';\n const placeholder = this.getPlaceholder();\n \n \n return `\n \n `;\n }\n \n setup(element: HTMLElement, block: IBlock, handlers: IBlockEventHandlers): void {\n const paragraphBlock = element.querySelector('.block.paragraph') as HTMLDivElement;\n if (!paragraphBlock) {\n console.error('ParagraphBlockHandler.setup: No paragraph block element found');\n return;\n }\n \n \n // Set initial content if needed\n if (block.content && !paragraphBlock.innerHTML) {\n paragraphBlock.innerHTML = block.content;\n }\n \n // Input handler with cursor tracking\n paragraphBlock.addEventListener('input', (e) => {\n handlers.onInput(e as InputEvent);\n \n // Track cursor position after input\n const pos = this.getCursorPosition(element);\n if (pos !== null) {\n this.lastKnownCursorPosition = pos;\n }\n });\n \n // Keydown handler with cursor tracking\n paragraphBlock.addEventListener('keydown', (e) => {\n // Track cursor position before keydown\n const pos = this.getCursorPosition(element);\n if (pos !== null) {\n this.lastKnownCursorPosition = pos;\n }\n \n handlers.onKeyDown(e);\n });\n \n // Focus handler\n paragraphBlock.addEventListener('focus', () => {\n handlers.onFocus();\n });\n \n // Blur handler\n paragraphBlock.addEventListener('blur', () => {\n handlers.onBlur();\n });\n \n // Composition handlers for IME support\n paragraphBlock.addEventListener('compositionstart', () => {\n handlers.onCompositionStart();\n });\n \n paragraphBlock.addEventListener('compositionend', () => {\n handlers.onCompositionEnd();\n });\n \n // Mouse up handler\n paragraphBlock.addEventListener('mouseup', (e) => {\n const pos = this.getCursorPosition(element);\n if (pos !== null) {\n this.lastKnownCursorPosition = pos;\n }\n \n // Selection will be handled by selectionchange event\n handlers.onMouseUp?.(e);\n });\n \n // Click handler with delayed cursor tracking\n paragraphBlock.addEventListener('click', (e: MouseEvent) => {\n // Small delay to let browser set cursor position\n setTimeout(() => {\n const pos = this.getCursorPosition(element);\n if (pos !== null) {\n this.lastKnownCursorPosition = pos;\n }\n }, 0);\n });\n \n // Keyup handler for additional cursor tracking\n paragraphBlock.addEventListener('keyup', (e) => {\n const pos = this.getCursorPosition(element);\n if (pos !== null) {\n this.lastKnownCursorPosition = pos;\n }\n });\n \n // Set up selection change handler\n this.setupSelectionHandler(element, paragraphBlock, block);\n }\n \n private setupSelectionHandler(element: HTMLElement, paragraphBlock: HTMLDivElement, block: IBlock): void {\n // Add selection change handler\n const checkSelection = () => {\n const selection = window.getSelection();\n if (!selection || selection.rangeCount === 0) return;\n \n const selectedText = selection.toString();\n if (selectedText.length === 0) {\n // Clear selection if no text\n if (this.lastSelectedText) {\n this.lastSelectedText = '';\n this.dispatchSelectionEvent(element, {\n text: '',\n blockId: block.id,\n hasSelection: false\n });\n }\n return;\n }\n \n // Get parent wysiwyg component's shadow root - traverse from shadow root\n const wysiwygBlock = (paragraphBlock.getRootNode() as ShadowRoot).host as any;\n const parentComponent = wysiwygBlock?.closest('dees-input-wysiwyg');\n const parentShadowRoot = parentComponent?.shadowRoot;\n const blockShadowRoot = wysiwygBlock?.shadowRoot;\n \n // Use getComposedRanges with shadow roots as per MDN docs\n const shadowRoots: ShadowRoot[] = [];\n if (parentShadowRoot) shadowRoots.push(parentShadowRoot);\n if (blockShadowRoot) shadowRoots.push(blockShadowRoot);\n \n // Get selection info using our Shadow DOM-aware utility\n const selectionInfo = WysiwygSelection.getSelectionInfo(...shadowRoots);\n if (!selectionInfo) return;\n \n // Check if selection is within this block\n const startInBlock = WysiwygSelection.containsAcrossShadowDOM(paragraphBlock, selectionInfo.startContainer);\n const endInBlock = WysiwygSelection.containsAcrossShadowDOM(paragraphBlock, selectionInfo.endContainer);\n \n if (startInBlock || endInBlock) {\n if (selectedText !== this.lastSelectedText) {\n this.lastSelectedText = selectedText;\n \n // Create range and get rect\n const range = WysiwygSelection.createRangeFromInfo(selectionInfo);\n const rect = range.getBoundingClientRect();\n \n // Dispatch event\n this.dispatchSelectionEvent(element, {\n text: selectedText.trim(),\n blockId: block.id,\n range: range,\n rect: rect,\n hasSelection: true\n });\n }\n } else if (this.lastSelectedText) {\n // Clear selection if no longer in this block\n this.lastSelectedText = '';\n this.dispatchSelectionEvent(element, {\n text: '',\n blockId: block.id,\n hasSelection: false\n });\n }\n };\n \n // Listen for selection changes\n document.addEventListener('selectionchange', checkSelection);\n \n // Store the handler for cleanup\n this.selectionHandler = checkSelection;\n \n // Clean up on disconnect (will be called by dees-wysiwyg-block)\n const wysiwygBlock = element.closest('dees-wysiwyg-block');\n if (wysiwygBlock) {\n const originalDisconnectedCallback = (wysiwygBlock as any).disconnectedCallback;\n (wysiwygBlock as any).disconnectedCallback = async function() {\n if (this.selectionHandler) {\n document.removeEventListener('selectionchange', this.selectionHandler);\n this.selectionHandler = null;\n }\n if (originalDisconnectedCallback) {\n await originalDisconnectedCallback.call(wysiwygBlock);\n }\n }.bind(this);\n }\n }\n \n private dispatchSelectionEvent(element: HTMLElement, detail: any): void {\n const event = new CustomEvent('block-text-selected', {\n detail,\n bubbles: true,\n composed: true\n });\n element.dispatchEvent(event);\n }\n \n getStyles(): string {\n return `\n /* Paragraph specific styles */\n .block.paragraph {\n font-size: 16px;\n line-height: 1.6;\n font-weight: 400;\n }\n `;\n }\n \n getPlaceholder(): string {\n return \"Type '/' for commands...\";\n }\n \n /**\n * Helper to get the last text node in an element\n */\n private getLastTextNode(element: Node): Text | null {\n if (element.nodeType === Node.TEXT_NODE) {\n return element as Text;\n }\n \n for (let i = element.childNodes.length - 1; i >= 0; i--) {\n const lastText = this.getLastTextNode(element.childNodes[i]);\n if (lastText) return lastText;\n }\n \n return null;\n }\n \n // Helper methods for paragraph functionality\n \n getCursorPosition(element: HTMLElement, context?: any): number | null {\n // Get the actual paragraph element\n const paragraphBlock = element.querySelector('.block.paragraph') as HTMLDivElement;\n if (!paragraphBlock) {\n return null;\n }\n \n // Get shadow roots from context\n const wysiwygBlock = context?.component;\n const parentComponent = wysiwygBlock?.closest('dees-input-wysiwyg');\n const parentShadowRoot = parentComponent?.shadowRoot;\n const blockShadowRoot = context?.shadowRoot;\n \n // Get selection info with both shadow roots for proper traversal\n const shadowRoots: ShadowRoot[] = [];\n if (parentShadowRoot) shadowRoots.push(parentShadowRoot);\n if (blockShadowRoot) shadowRoots.push(blockShadowRoot);\n \n const selectionInfo = WysiwygSelection.getSelectionInfo(...shadowRoots);\n \n if (!selectionInfo) {\n return null;\n }\n \n if (!WysiwygSelection.containsAcrossShadowDOM(paragraphBlock, selectionInfo.startContainer)) {\n return null;\n }\n \n // Create a range from start of element to cursor position\n const preCaretRange = document.createRange();\n preCaretRange.selectNodeContents(paragraphBlock);\n preCaretRange.setEnd(selectionInfo.startContainer, selectionInfo.startOffset);\n \n // Get the text content length up to cursor\n const position = preCaretRange.toString().length;\n \n return position;\n }\n \n getContent(element: HTMLElement, context?: any): string {\n const paragraphBlock = element.querySelector('.block.paragraph') as HTMLDivElement;\n if (!paragraphBlock) return '';\n \n // For paragraphs, get the innerHTML which includes formatting tags\n const content = paragraphBlock.innerHTML || '';\n return content;\n }\n \n setContent(element: HTMLElement, content: string, context?: any): void {\n const paragraphBlock = element.querySelector('.block.paragraph') as HTMLDivElement;\n if (!paragraphBlock) return;\n \n // Store if we have focus\n const hadFocus = document.activeElement === paragraphBlock || \n element.shadowRoot?.activeElement === paragraphBlock;\n \n paragraphBlock.innerHTML = content;\n \n // Restore focus if we had it\n if (hadFocus) {\n paragraphBlock.focus();\n }\n }\n \n setCursorToStart(element: HTMLElement, context?: any): void {\n const paragraphBlock = element.querySelector('.block.paragraph') as HTMLDivElement;\n if (paragraphBlock) {\n WysiwygBlocks.setCursorToStart(paragraphBlock);\n }\n }\n \n setCursorToEnd(element: HTMLElement, context?: any): void {\n const paragraphBlock = element.querySelector('.block.paragraph') as HTMLDivElement;\n if (paragraphBlock) {\n WysiwygBlocks.setCursorToEnd(paragraphBlock);\n }\n }\n \n focus(element: HTMLElement, context?: any): void {\n const paragraphBlock = element.querySelector('.block.paragraph') as HTMLDivElement;\n if (!paragraphBlock) return;\n \n // Ensure the element is focusable\n if (!paragraphBlock.hasAttribute('contenteditable')) {\n paragraphBlock.setAttribute('contenteditable', 'true');\n }\n \n paragraphBlock.focus();\n \n // If focus failed, try again after a microtask\n if (document.activeElement !== paragraphBlock && element.shadowRoot?.activeElement !== paragraphBlock) {\n Promise.resolve().then(() => {\n paragraphBlock.focus();\n });\n }\n }\n \n focusWithCursor(element: HTMLElement, position: 'start' | 'end' | number = 'end', context?: any): void {\n const paragraphBlock = element.querySelector('.block.paragraph') as HTMLDivElement;\n if (!paragraphBlock) return;\n \n \n // Ensure element is focusable first\n if (!paragraphBlock.hasAttribute('contenteditable')) {\n paragraphBlock.setAttribute('contenteditable', 'true');\n }\n \n // For 'end' position, we need to set up selection before focus to prevent browser default\n if (position === 'end' && paragraphBlock.textContent && paragraphBlock.textContent.length > 0) {\n // Set up the selection first\n const sel = window.getSelection();\n if (sel) {\n const range = document.createRange();\n const lastNode = this.getLastTextNode(paragraphBlock) || paragraphBlock;\n if (lastNode.nodeType === Node.TEXT_NODE) {\n range.setStart(lastNode, lastNode.textContent?.length || 0);\n range.setEnd(lastNode, lastNode.textContent?.length || 0);\n } else {\n range.selectNodeContents(lastNode);\n range.collapse(false);\n }\n sel.removeAllRanges();\n sel.addRange(range);\n }\n }\n \n // Now focus the element\n paragraphBlock.focus();\n \n // Set cursor position after focus is established (for non-end positions)\n const setCursor = () => {\n if (position === 'start') {\n this.setCursorToStart(element, context);\n } else if (position === 'end' && (!paragraphBlock.textContent || paragraphBlock.textContent.length === 0)) {\n // Only call setCursorToEnd for empty blocks\n this.setCursorToEnd(element, context);\n } else if (typeof position === 'number') {\n // Use the selection utility to set cursor position\n WysiwygSelection.setCursorPosition(paragraphBlock, position);\n }\n };\n \n // Ensure cursor is set after focus\n if (document.activeElement === paragraphBlock || element.shadowRoot?.activeElement === paragraphBlock) {\n setCursor();\n } else {\n // Wait for focus to be established\n Promise.resolve().then(() => {\n if (document.activeElement === paragraphBlock || element.shadowRoot?.activeElement === paragraphBlock) {\n setCursor();\n } else {\n // Try again with a small delay - sometimes focus needs more time\n setTimeout(() => {\n if (document.activeElement === paragraphBlock || element.shadowRoot?.activeElement === paragraphBlock) {\n setCursor();\n }\n }, 10);\n }\n });\n }\n }\n \n getSplitContent(element: HTMLElement, context?: any): { before: string; after: string } | null {\n const paragraphBlock = element.querySelector('.block.paragraph') as HTMLDivElement;\n if (!paragraphBlock) {\n return null;\n }\n \n // Get shadow roots from context\n const wysiwygBlock = context?.component;\n const parentComponent = wysiwygBlock?.closest('dees-input-wysiwyg');\n const parentShadowRoot = parentComponent?.shadowRoot;\n const blockShadowRoot = context?.shadowRoot;\n \n // Get selection info with both shadow roots for proper traversal\n const shadowRoots: ShadowRoot[] = [];\n if (parentShadowRoot) shadowRoots.push(parentShadowRoot);\n if (blockShadowRoot) shadowRoots.push(blockShadowRoot);\n \n const selectionInfo = WysiwygSelection.getSelectionInfo(...shadowRoots);\n \n if (!selectionInfo) {\n // Try using last known cursor position\n if (this.lastKnownCursorPosition !== null) {\n const fullText = paragraphBlock.textContent || '';\n const pos = Math.min(this.lastKnownCursorPosition, fullText.length);\n return {\n before: fullText.substring(0, pos),\n after: fullText.substring(pos)\n };\n }\n return null;\n }\n \n // Make sure the selection is within this block\n if (!WysiwygSelection.containsAcrossShadowDOM(paragraphBlock, selectionInfo.startContainer)) {\n // Try using last known cursor position\n if (this.lastKnownCursorPosition !== null) {\n const fullText = paragraphBlock.textContent || '';\n const pos = Math.min(this.lastKnownCursorPosition, fullText.length);\n return {\n before: fullText.substring(0, pos),\n after: fullText.substring(pos)\n };\n }\n return null;\n }\n \n // Get cursor position first\n const cursorPos = this.getCursorPosition(element, context);\n \n if (cursorPos === null || cursorPos === 0) {\n // If cursor is at start or can't determine position, move all content\n return {\n before: '',\n after: paragraphBlock.innerHTML\n };\n }\n \n // For HTML content, split using ranges to preserve formatting\n const beforeRange = document.createRange();\n const afterRange = document.createRange();\n \n // Before range: from start of element to cursor\n beforeRange.setStart(paragraphBlock, 0);\n beforeRange.setEnd(selectionInfo.startContainer, selectionInfo.startOffset);\n \n // After range: from cursor to end of element\n afterRange.setStart(selectionInfo.startContainer, selectionInfo.startOffset);\n afterRange.setEnd(paragraphBlock, paragraphBlock.childNodes.length);\n \n // Extract HTML content\n const beforeFragment = beforeRange.cloneContents();\n const afterFragment = afterRange.cloneContents();\n \n // Convert to HTML strings\n const tempDiv = document.createElement('div');\n tempDiv.appendChild(beforeFragment);\n const beforeHtml = tempDiv.innerHTML;\n \n tempDiv.innerHTML = '';\n tempDiv.appendChild(afterFragment);\n const afterHtml = tempDiv.innerHTML;\n \n return { \n before: beforeHtml, \n after: afterHtml \n };\n }\n}", "import { BaseBlockHandler, type IBlockEventHandlers } from '../block.base.js';\nimport type { IBlock } from '../../wysiwyg.types.js';\nimport { cssManager } from '@design.estate/dees-element';\nimport { WysiwygBlocks } from '../../wysiwyg.blocks.js';\nimport { WysiwygSelection } from '../../wysiwyg.selection.js';\n\nexport class HeadingBlockHandler extends BaseBlockHandler {\n type: string;\n private level: 1 | 2 | 3;\n \n // Track cursor position\n private lastKnownCursorPosition: number = 0;\n private lastSelectedText: string = '';\n private selectionHandler: (() => void) | null = null;\n \n constructor(type: 'heading-1' | 'heading-2' | 'heading-3') {\n super();\n this.type = type;\n this.level = parseInt(type.split('-')[1]) as 1 | 2 | 3;\n }\n \n render(block: IBlock, isSelected: boolean): string {\n const selectedClass = isSelected ? ' selected' : '';\n const placeholder = this.getPlaceholder();\n \n \n return `\n \n `;\n }\n \n setup(element: HTMLElement, block: IBlock, handlers: IBlockEventHandlers): void {\n const headingBlock = element.querySelector(`.block.heading-${this.level}`) as HTMLDivElement;\n if (!headingBlock) {\n console.error('HeadingBlockHandler.setup: No heading block element found');\n return;\n }\n \n \n // Set initial content if needed\n if (block.content && !headingBlock.innerHTML) {\n headingBlock.innerHTML = block.content;\n }\n \n // Input handler with cursor tracking\n headingBlock.addEventListener('input', (e) => {\n handlers.onInput(e as InputEvent);\n \n // Track cursor position after input\n const pos = this.getCursorPosition(element);\n if (pos !== null) {\n this.lastKnownCursorPosition = pos;\n }\n });\n \n // Keydown handler with cursor tracking\n headingBlock.addEventListener('keydown', (e) => {\n // Track cursor position before keydown\n const pos = this.getCursorPosition(element);\n if (pos !== null) {\n this.lastKnownCursorPosition = pos;\n }\n \n handlers.onKeyDown(e);\n });\n \n // Focus handler\n headingBlock.addEventListener('focus', () => {\n handlers.onFocus();\n });\n \n // Blur handler\n headingBlock.addEventListener('blur', () => {\n handlers.onBlur();\n });\n \n // Composition handlers for IME support\n headingBlock.addEventListener('compositionstart', () => {\n handlers.onCompositionStart();\n });\n \n headingBlock.addEventListener('compositionend', () => {\n handlers.onCompositionEnd();\n });\n \n // Mouse up handler\n headingBlock.addEventListener('mouseup', (e) => {\n const pos = this.getCursorPosition(element);\n if (pos !== null) {\n this.lastKnownCursorPosition = pos;\n }\n \n // Selection will be handled by selectionchange event\n handlers.onMouseUp?.(e);\n });\n \n // Click handler with delayed cursor tracking\n headingBlock.addEventListener('click', (e: MouseEvent) => {\n // Small delay to let browser set cursor position\n setTimeout(() => {\n const pos = this.getCursorPosition(element);\n if (pos !== null) {\n this.lastKnownCursorPosition = pos;\n }\n }, 0);\n });\n \n // Keyup handler for additional cursor tracking\n headingBlock.addEventListener('keyup', (e) => {\n const pos = this.getCursorPosition(element);\n if (pos !== null) {\n this.lastKnownCursorPosition = pos;\n }\n });\n \n // Set up selection change handler\n this.setupSelectionHandler(element, headingBlock, block);\n }\n \n private setupSelectionHandler(element: HTMLElement, headingBlock: HTMLDivElement, block: IBlock): void {\n // Add selection change handler\n const checkSelection = () => {\n const selection = window.getSelection();\n if (!selection || selection.rangeCount === 0) return;\n \n const selectedText = selection.toString();\n if (selectedText.length === 0) {\n // Clear selection if no text\n if (this.lastSelectedText) {\n this.lastSelectedText = '';\n this.dispatchSelectionEvent(element, {\n text: '',\n blockId: block.id,\n hasSelection: false\n });\n }\n return;\n }\n \n // Get parent wysiwyg component's shadow root - in setup, we need to traverse\n const wysiwygBlock = (headingBlock.getRootNode() as ShadowRoot).host as any;\n const parentComponent = wysiwygBlock?.closest('dees-input-wysiwyg');\n const parentShadowRoot = parentComponent?.shadowRoot;\n const blockShadowRoot = wysiwygBlock?.shadowRoot;\n \n // Use getComposedRanges with shadow roots as per MDN docs\n const shadowRoots: ShadowRoot[] = [];\n if (parentShadowRoot) shadowRoots.push(parentShadowRoot);\n if (blockShadowRoot) shadowRoots.push(blockShadowRoot);\n \n // Get selection info using our Shadow DOM-aware utility\n const selectionInfo = WysiwygSelection.getSelectionInfo(...shadowRoots);\n if (!selectionInfo) return;\n \n // Check if selection is within this block\n const startInBlock = WysiwygSelection.containsAcrossShadowDOM(headingBlock, selectionInfo.startContainer);\n const endInBlock = WysiwygSelection.containsAcrossShadowDOM(headingBlock, selectionInfo.endContainer);\n \n if (startInBlock || endInBlock) {\n if (selectedText !== this.lastSelectedText) {\n this.lastSelectedText = selectedText;\n \n // Create range and get rect\n const range = WysiwygSelection.createRangeFromInfo(selectionInfo);\n const rect = range.getBoundingClientRect();\n \n // Dispatch event\n this.dispatchSelectionEvent(element, {\n text: selectedText.trim(),\n blockId: block.id,\n range: range,\n rect: rect,\n hasSelection: true\n });\n }\n } else if (this.lastSelectedText) {\n // Clear selection if no longer in this block\n this.lastSelectedText = '';\n this.dispatchSelectionEvent(element, {\n text: '',\n blockId: block.id,\n hasSelection: false\n });\n }\n };\n \n // Listen for selection changes\n document.addEventListener('selectionchange', checkSelection);\n \n // Store the handler for cleanup\n this.selectionHandler = checkSelection;\n \n // Clean up on disconnect (will be called by dees-wysiwyg-block)\n const wysiwygBlock = (headingBlock.getRootNode() as ShadowRoot).host as any;\n if (wysiwygBlock) {\n const originalDisconnectedCallback = (wysiwygBlock as any).disconnectedCallback;\n (wysiwygBlock as any).disconnectedCallback = async function() {\n if (this.selectionHandler) {\n document.removeEventListener('selectionchange', this.selectionHandler);\n this.selectionHandler = null;\n }\n if (originalDisconnectedCallback) {\n await originalDisconnectedCallback.call(wysiwygBlock);\n }\n }.bind(this);\n }\n }\n \n private dispatchSelectionEvent(element: HTMLElement, detail: any): void {\n const event = new CustomEvent('block-text-selected', {\n detail,\n bubbles: true,\n composed: true\n });\n element.dispatchEvent(event);\n }\n \n getStyles(): string {\n // Return styles for all heading levels\n return `\n .block.heading-1 {\n font-size: 32px;\n font-weight: 700;\n line-height: 1.2;\n margin: 24px 0 8px 0;\n color: ${cssManager.bdTheme('#000000', '#ffffff')};\n }\n\n .block.heading-2 {\n font-size: 24px;\n font-weight: 600;\n line-height: 1.3;\n margin: 20px 0 6px 0;\n color: ${cssManager.bdTheme('#000000', '#ffffff')};\n }\n\n .block.heading-3 {\n font-size: 20px;\n font-weight: 600;\n line-height: 1.4;\n margin: 16px 0 4px 0;\n color: ${cssManager.bdTheme('#000000', '#ffffff')};\n }\n `;\n }\n \n getPlaceholder(): string {\n switch(this.level) {\n case 1:\n return 'Heading 1';\n case 2:\n return 'Heading 2';\n case 3:\n return 'Heading 3';\n default:\n return 'Heading';\n }\n }\n \n /**\n * Helper to get the last text node in an element\n */\n private getLastTextNode(element: Node): Text | null {\n if (element.nodeType === Node.TEXT_NODE) {\n return element as Text;\n }\n \n for (let i = element.childNodes.length - 1; i >= 0; i--) {\n const lastText = this.getLastTextNode(element.childNodes[i]);\n if (lastText) return lastText;\n }\n \n return null;\n }\n \n // Helper methods for heading functionality (mostly the same as paragraph)\n \n getCursorPosition(element: HTMLElement, context?: any): number | null {\n // Get the actual heading element\n const headingBlock = element.querySelector(`.block.heading-${this.level}`) as HTMLDivElement;\n if (!headingBlock) {\n return null;\n }\n \n // Get shadow roots from context\n const wysiwygBlock = context?.component;\n const parentComponent = wysiwygBlock?.closest('dees-input-wysiwyg');\n const parentShadowRoot = parentComponent?.shadowRoot;\n const blockShadowRoot = context?.shadowRoot;\n \n // Get selection info with both shadow roots for proper traversal\n const shadowRoots: ShadowRoot[] = [];\n if (parentShadowRoot) shadowRoots.push(parentShadowRoot);\n if (blockShadowRoot) shadowRoots.push(blockShadowRoot);\n \n const selectionInfo = WysiwygSelection.getSelectionInfo(...shadowRoots);\n \n if (!selectionInfo) {\n return null;\n }\n \n if (!WysiwygSelection.containsAcrossShadowDOM(headingBlock, selectionInfo.startContainer)) {\n return null;\n }\n \n // Create a range from start of element to cursor position\n const preCaretRange = document.createRange();\n preCaretRange.selectNodeContents(headingBlock);\n preCaretRange.setEnd(selectionInfo.startContainer, selectionInfo.startOffset);\n \n // Get the text content length up to cursor\n const position = preCaretRange.toString().length;\n \n return position;\n }\n \n getContent(element: HTMLElement, context?: any): string {\n const headingBlock = element.querySelector(`.block.heading-${this.level}`) as HTMLDivElement;\n if (!headingBlock) return '';\n \n // For headings, get the innerHTML which includes formatting tags\n const content = headingBlock.innerHTML || '';\n return content;\n }\n \n setContent(element: HTMLElement, content: string, context?: any): void {\n const headingBlock = element.querySelector(`.block.heading-${this.level}`) as HTMLDivElement;\n if (!headingBlock) return;\n \n // Store if we have focus\n const hadFocus = document.activeElement === headingBlock || \n element.shadowRoot?.activeElement === headingBlock;\n \n headingBlock.innerHTML = content;\n \n // Restore focus if we had it\n if (hadFocus) {\n headingBlock.focus();\n }\n }\n \n setCursorToStart(element: HTMLElement, context?: any): void {\n const headingBlock = element.querySelector(`.block.heading-${this.level}`) as HTMLDivElement;\n if (headingBlock) {\n WysiwygBlocks.setCursorToStart(headingBlock);\n }\n }\n \n setCursorToEnd(element: HTMLElement, context?: any): void {\n const headingBlock = element.querySelector(`.block.heading-${this.level}`) as HTMLDivElement;\n if (headingBlock) {\n WysiwygBlocks.setCursorToEnd(headingBlock);\n }\n }\n \n focus(element: HTMLElement, context?: any): void {\n const headingBlock = element.querySelector(`.block.heading-${this.level}`) as HTMLDivElement;\n if (!headingBlock) return;\n \n // Ensure the element is focusable\n if (!headingBlock.hasAttribute('contenteditable')) {\n headingBlock.setAttribute('contenteditable', 'true');\n }\n \n headingBlock.focus();\n \n // If focus failed, try again after a microtask\n if (document.activeElement !== headingBlock && element.shadowRoot?.activeElement !== headingBlock) {\n Promise.resolve().then(() => {\n headingBlock.focus();\n });\n }\n }\n \n focusWithCursor(element: HTMLElement, position: 'start' | 'end' | number = 'end', context?: any): void {\n const headingBlock = element.querySelector(`.block.heading-${this.level}`) as HTMLDivElement;\n if (!headingBlock) return;\n \n \n // Ensure element is focusable first\n if (!headingBlock.hasAttribute('contenteditable')) {\n headingBlock.setAttribute('contenteditable', 'true');\n }\n \n // For 'end' position, we need to set up selection before focus to prevent browser default\n if (position === 'end' && headingBlock.textContent && headingBlock.textContent.length > 0) {\n // Set up the selection first\n const sel = window.getSelection();\n if (sel) {\n const range = document.createRange();\n const lastNode = this.getLastTextNode(headingBlock) || headingBlock;\n if (lastNode.nodeType === Node.TEXT_NODE) {\n range.setStart(lastNode, lastNode.textContent?.length || 0);\n range.setEnd(lastNode, lastNode.textContent?.length || 0);\n } else {\n range.selectNodeContents(lastNode);\n range.collapse(false);\n }\n sel.removeAllRanges();\n sel.addRange(range);\n }\n }\n \n // Now focus the element\n headingBlock.focus();\n \n // Set cursor position after focus is established (for non-end positions)\n const setCursor = () => {\n if (position === 'start') {\n this.setCursorToStart(element, context);\n } else if (position === 'end' && (!headingBlock.textContent || headingBlock.textContent.length === 0)) {\n // Only call setCursorToEnd for empty blocks\n this.setCursorToEnd(element, context);\n } else if (typeof position === 'number') {\n // Use the selection utility to set cursor position\n WysiwygSelection.setCursorPosition(headingBlock, position);\n }\n };\n \n // Ensure cursor is set after focus\n if (document.activeElement === headingBlock || element.shadowRoot?.activeElement === headingBlock) {\n setCursor();\n } else {\n // Wait for focus to be established\n Promise.resolve().then(() => {\n if (document.activeElement === headingBlock || element.shadowRoot?.activeElement === headingBlock) {\n setCursor();\n } else {\n // Try again with a small delay - sometimes focus needs more time\n setTimeout(() => {\n if (document.activeElement === headingBlock || element.shadowRoot?.activeElement === headingBlock) {\n setCursor();\n }\n }, 10);\n }\n });\n }\n }\n \n getSplitContent(element: HTMLElement, context?: any): { before: string; after: string } | null {\n const headingBlock = element.querySelector(`.block.heading-${this.level}`) as HTMLDivElement;\n if (!headingBlock) {\n return null;\n }\n \n // Get shadow roots from context\n const wysiwygBlock = context?.component;\n const parentComponent = wysiwygBlock?.closest('dees-input-wysiwyg');\n const parentShadowRoot = parentComponent?.shadowRoot;\n const blockShadowRoot = context?.shadowRoot;\n \n // Get selection info with both shadow roots for proper traversal\n const shadowRoots: ShadowRoot[] = [];\n if (parentShadowRoot) shadowRoots.push(parentShadowRoot);\n if (blockShadowRoot) shadowRoots.push(blockShadowRoot);\n \n const selectionInfo = WysiwygSelection.getSelectionInfo(...shadowRoots);\n \n if (!selectionInfo) {\n // Try using last known cursor position\n if (this.lastKnownCursorPosition !== null) {\n const fullText = headingBlock.textContent || '';\n const pos = Math.min(this.lastKnownCursorPosition, fullText.length);\n return {\n before: fullText.substring(0, pos),\n after: fullText.substring(pos)\n };\n }\n return null;\n }\n \n // Make sure the selection is within this block\n if (!WysiwygSelection.containsAcrossShadowDOM(headingBlock, selectionInfo.startContainer)) {\n // Try using last known cursor position\n if (this.lastKnownCursorPosition !== null) {\n const fullText = headingBlock.textContent || '';\n const pos = Math.min(this.lastKnownCursorPosition, fullText.length);\n return {\n before: fullText.substring(0, pos),\n after: fullText.substring(pos)\n };\n }\n return null;\n }\n \n // Get cursor position first\n const cursorPos = this.getCursorPosition(element, context);\n \n if (cursorPos === null || cursorPos === 0) {\n // If cursor is at start or can't determine position, move all content\n return {\n before: '',\n after: headingBlock.innerHTML\n };\n }\n \n // For HTML content, split using ranges to preserve formatting\n const beforeRange = document.createRange();\n const afterRange = document.createRange();\n \n // Before range: from start of element to cursor\n beforeRange.setStart(headingBlock, 0);\n beforeRange.setEnd(selectionInfo.startContainer, selectionInfo.startOffset);\n \n // After range: from cursor to end of element\n afterRange.setStart(selectionInfo.startContainer, selectionInfo.startOffset);\n afterRange.setEnd(headingBlock, headingBlock.childNodes.length);\n \n // Extract HTML content\n const beforeFragment = beforeRange.cloneContents();\n const afterFragment = afterRange.cloneContents();\n \n // Convert to HTML strings\n const tempDiv = document.createElement('div');\n tempDiv.appendChild(beforeFragment);\n const beforeHtml = tempDiv.innerHTML;\n \n tempDiv.innerHTML = '';\n tempDiv.appendChild(afterFragment);\n const afterHtml = tempDiv.innerHTML;\n \n return { \n before: beforeHtml, \n after: afterHtml \n };\n }\n}", "import { BaseBlockHandler, type IBlockEventHandlers } from '../block.base.js';\nimport type { IBlock } from '../../wysiwyg.types.js';\nimport { cssManager } from '@design.estate/dees-element';\nimport { WysiwygBlocks } from '../../wysiwyg.blocks.js';\nimport { WysiwygSelection } from '../../wysiwyg.selection.js';\n\nexport class QuoteBlockHandler extends BaseBlockHandler {\n type = 'quote';\n \n // Track cursor position\n private lastKnownCursorPosition: number = 0;\n private lastSelectedText: string = '';\n private selectionHandler: (() => void) | null = null;\n \n render(block: IBlock, isSelected: boolean): string {\n const selectedClass = isSelected ? ' selected' : '';\n const placeholder = this.getPlaceholder();\n \n \n return `\n \n `;\n }\n \n setup(element: HTMLElement, block: IBlock, handlers: IBlockEventHandlers): void {\n const quoteBlock = element.querySelector('.block.quote') as HTMLDivElement;\n if (!quoteBlock) {\n console.error('QuoteBlockHandler.setup: No quote block element found');\n return;\n }\n \n // Set initial content if needed\n if (block.content && !quoteBlock.innerHTML) {\n quoteBlock.innerHTML = block.content;\n }\n \n // Input handler with cursor tracking\n quoteBlock.addEventListener('input', (e) => {\n handlers.onInput(e as InputEvent);\n \n // Track cursor position after input\n const pos = this.getCursorPosition(element);\n if (pos !== null) {\n this.lastKnownCursorPosition = pos;\n }\n });\n \n // Keydown handler with cursor tracking\n quoteBlock.addEventListener('keydown', (e) => {\n // Track cursor position before keydown\n const pos = this.getCursorPosition(element);\n if (pos !== null) {\n this.lastKnownCursorPosition = pos;\n }\n \n handlers.onKeyDown(e);\n });\n \n // Focus handler\n quoteBlock.addEventListener('focus', () => {\n handlers.onFocus();\n });\n \n // Blur handler\n quoteBlock.addEventListener('blur', () => {\n handlers.onBlur();\n });\n \n // Composition handlers for IME support\n quoteBlock.addEventListener('compositionstart', () => {\n handlers.onCompositionStart();\n });\n \n quoteBlock.addEventListener('compositionend', () => {\n handlers.onCompositionEnd();\n });\n \n // Mouse up handler\n quoteBlock.addEventListener('mouseup', (e) => {\n const pos = this.getCursorPosition(element);\n if (pos !== null) {\n this.lastKnownCursorPosition = pos;\n }\n \n // Selection will be handled by selectionchange event\n handlers.onMouseUp?.(e);\n });\n \n // Click handler with delayed cursor tracking\n quoteBlock.addEventListener('click', (e: MouseEvent) => {\n // Small delay to let browser set cursor position\n setTimeout(() => {\n const pos = this.getCursorPosition(element);\n if (pos !== null) {\n this.lastKnownCursorPosition = pos;\n }\n }, 0);\n });\n \n // Keyup handler for additional cursor tracking\n quoteBlock.addEventListener('keyup', (e) => {\n const pos = this.getCursorPosition(element);\n if (pos !== null) {\n this.lastKnownCursorPosition = pos;\n }\n });\n \n // Set up selection change handler\n this.setupSelectionHandler(element, quoteBlock, block);\n }\n \n private setupSelectionHandler(element: HTMLElement, quoteBlock: HTMLDivElement, block: IBlock): void {\n // Add selection change handler\n const checkSelection = () => {\n const selection = window.getSelection();\n if (!selection || selection.rangeCount === 0) return;\n \n const selectedText = selection.toString();\n if (selectedText.length === 0) {\n // Clear selection if no text\n if (this.lastSelectedText) {\n this.lastSelectedText = '';\n this.dispatchSelectionEvent(element, {\n text: '',\n blockId: block.id,\n hasSelection: false\n });\n }\n return;\n }\n \n // Get parent wysiwyg component's shadow root - traverse from shadow root\n const wysiwygBlock = (quoteBlock.getRootNode() as ShadowRoot).host as any;\n const parentComponent = wysiwygBlock?.closest('dees-input-wysiwyg');\n const parentShadowRoot = parentComponent?.shadowRoot;\n const blockShadowRoot = wysiwygBlock?.shadowRoot;\n \n // Use getComposedRanges with shadow roots as per MDN docs\n const shadowRoots: ShadowRoot[] = [];\n if (parentShadowRoot) shadowRoots.push(parentShadowRoot);\n if (blockShadowRoot) shadowRoots.push(blockShadowRoot);\n \n // Get selection info using our Shadow DOM-aware utility\n const selectionInfo = WysiwygSelection.getSelectionInfo(...shadowRoots);\n if (!selectionInfo) return;\n \n // Check if selection is within this block\n const startInBlock = WysiwygSelection.containsAcrossShadowDOM(quoteBlock, selectionInfo.startContainer);\n const endInBlock = WysiwygSelection.containsAcrossShadowDOM(quoteBlock, selectionInfo.endContainer);\n \n if (startInBlock || endInBlock) {\n if (selectedText !== this.lastSelectedText) {\n this.lastSelectedText = selectedText;\n \n // Create range and get rect\n const range = WysiwygSelection.createRangeFromInfo(selectionInfo);\n const rect = range.getBoundingClientRect();\n \n // Dispatch event\n this.dispatchSelectionEvent(element, {\n text: selectedText.trim(),\n blockId: block.id,\n range: range,\n rect: rect,\n hasSelection: true\n });\n }\n } else if (this.lastSelectedText) {\n // Clear selection if no longer in this block\n this.lastSelectedText = '';\n this.dispatchSelectionEvent(element, {\n text: '',\n blockId: block.id,\n hasSelection: false\n });\n }\n };\n \n // Listen for selection changes\n document.addEventListener('selectionchange', checkSelection);\n \n // Store the handler for cleanup\n this.selectionHandler = checkSelection;\n \n // Clean up on disconnect (will be called by dees-wysiwyg-block)\n const wysiwygBlock = (quoteBlock.getRootNode() as ShadowRoot).host as any;\n if (wysiwygBlock) {\n const originalDisconnectedCallback = (wysiwygBlock as any).disconnectedCallback;\n (wysiwygBlock as any).disconnectedCallback = async function() {\n if (this.selectionHandler) {\n document.removeEventListener('selectionchange', this.selectionHandler);\n this.selectionHandler = null;\n }\n if (originalDisconnectedCallback) {\n await originalDisconnectedCallback.call(wysiwygBlock);\n }\n }.bind(this);\n }\n }\n \n private dispatchSelectionEvent(element: HTMLElement, detail: any): void {\n const event = new CustomEvent('block-text-selected', {\n detail,\n bubbles: true,\n composed: true\n });\n element.dispatchEvent(event);\n }\n \n getStyles(): string {\n return `\n /* Quote specific styles */\n .block.quote {\n border-left: 3px solid ${cssManager.bdTheme('#0066cc', '#4d94ff')};\n padding-left: 20px;\n color: ${cssManager.bdTheme('#555', '#b0b0b0')};\n font-style: italic;\n line-height: 1.6;\n margin: 16px 0;\n }\n `;\n }\n \n getPlaceholder(): string {\n return 'Add a quote...';\n }\n \n // Helper methods for quote functionality\n \n getCursorPosition(element: HTMLElement, context?: any): number | null {\n // Get the actual quote element\n const quoteBlock = element.querySelector('.block.quote') as HTMLDivElement;\n if (!quoteBlock) {\n return null;\n }\n \n // Get shadow roots from context\n const wysiwygBlock = context?.component;\n const parentComponent = wysiwygBlock?.closest('dees-input-wysiwyg');\n const parentShadowRoot = parentComponent?.shadowRoot;\n const blockShadowRoot = context?.shadowRoot;\n \n // Get selection info with both shadow roots for proper traversal\n const shadowRoots: ShadowRoot[] = [];\n if (parentShadowRoot) shadowRoots.push(parentShadowRoot);\n if (blockShadowRoot) shadowRoots.push(blockShadowRoot);\n \n const selectionInfo = WysiwygSelection.getSelectionInfo(...shadowRoots);\n \n if (!selectionInfo) {\n return null;\n }\n \n if (!WysiwygSelection.containsAcrossShadowDOM(quoteBlock, selectionInfo.startContainer)) {\n return null;\n }\n \n // Create a range from start of element to cursor position\n const preCaretRange = document.createRange();\n preCaretRange.selectNodeContents(quoteBlock);\n preCaretRange.setEnd(selectionInfo.startContainer, selectionInfo.startOffset);\n \n // Get the text content length up to cursor\n const position = preCaretRange.toString().length;\n \n return position;\n }\n \n getContent(element: HTMLElement, context?: any): string {\n const quoteBlock = element.querySelector('.block.quote') as HTMLDivElement;\n if (!quoteBlock) return '';\n \n // For quotes, get the innerHTML which includes formatting tags\n const content = quoteBlock.innerHTML || '';\n return content;\n }\n \n setContent(element: HTMLElement, content: string, context?: any): void {\n const quoteBlock = element.querySelector('.block.quote') as HTMLDivElement;\n if (!quoteBlock) return;\n \n // Store if we have focus\n const hadFocus = document.activeElement === quoteBlock || \n element.shadowRoot?.activeElement === quoteBlock;\n \n quoteBlock.innerHTML = content;\n \n // Restore focus if we had it\n if (hadFocus) {\n quoteBlock.focus();\n }\n }\n \n setCursorToStart(element: HTMLElement, context?: any): void {\n const quoteBlock = element.querySelector('.block.quote') as HTMLDivElement;\n if (quoteBlock) {\n WysiwygBlocks.setCursorToStart(quoteBlock);\n }\n }\n \n setCursorToEnd(element: HTMLElement, context?: any): void {\n const quoteBlock = element.querySelector('.block.quote') as HTMLDivElement;\n if (quoteBlock) {\n WysiwygBlocks.setCursorToEnd(quoteBlock);\n }\n }\n \n focus(element: HTMLElement, context?: any): void {\n const quoteBlock = element.querySelector('.block.quote') as HTMLDivElement;\n if (!quoteBlock) return;\n \n // Ensure the element is focusable\n if (!quoteBlock.hasAttribute('contenteditable')) {\n quoteBlock.setAttribute('contenteditable', 'true');\n }\n \n quoteBlock.focus();\n \n // If focus failed, try again after a microtask\n if (document.activeElement !== quoteBlock && element.shadowRoot?.activeElement !== quoteBlock) {\n Promise.resolve().then(() => {\n quoteBlock.focus();\n });\n }\n }\n \n focusWithCursor(element: HTMLElement, position: 'start' | 'end' | number = 'end', context?: any): void {\n const quoteBlock = element.querySelector('.block.quote') as HTMLDivElement;\n if (!quoteBlock) return;\n \n // Ensure element is focusable first\n if (!quoteBlock.hasAttribute('contenteditable')) {\n quoteBlock.setAttribute('contenteditable', 'true');\n }\n \n // Focus the element\n quoteBlock.focus();\n \n // Set cursor position after focus is established\n const setCursor = () => {\n if (position === 'start') {\n this.setCursorToStart(element, context);\n } else if (position === 'end') {\n this.setCursorToEnd(element, context);\n } else if (typeof position === 'number') {\n // Use the selection utility to set cursor position\n WysiwygSelection.setCursorPosition(quoteBlock, position);\n }\n };\n \n // Ensure cursor is set after focus\n if (document.activeElement === quoteBlock || element.shadowRoot?.activeElement === quoteBlock) {\n setCursor();\n } else {\n // Wait for focus to be established\n Promise.resolve().then(() => {\n if (document.activeElement === quoteBlock || element.shadowRoot?.activeElement === quoteBlock) {\n setCursor();\n }\n });\n }\n }\n \n getSplitContent(element: HTMLElement, context?: any): { before: string; after: string } | null {\n const quoteBlock = element.querySelector('.block.quote') as HTMLDivElement;\n if (!quoteBlock) {\n return null;\n }\n \n // Get shadow roots from context\n const wysiwygBlock = context?.component;\n const parentComponent = wysiwygBlock?.closest('dees-input-wysiwyg');\n const parentShadowRoot = parentComponent?.shadowRoot;\n const blockShadowRoot = context?.shadowRoot;\n \n // Get selection info with both shadow roots for proper traversal\n const shadowRoots: ShadowRoot[] = [];\n if (parentShadowRoot) shadowRoots.push(parentShadowRoot);\n if (blockShadowRoot) shadowRoots.push(blockShadowRoot);\n \n const selectionInfo = WysiwygSelection.getSelectionInfo(...shadowRoots);\n \n if (!selectionInfo) {\n // Try using last known cursor position\n if (this.lastKnownCursorPosition !== null) {\n const fullText = quoteBlock.textContent || '';\n const pos = Math.min(this.lastKnownCursorPosition, fullText.length);\n return {\n before: fullText.substring(0, pos),\n after: fullText.substring(pos)\n };\n }\n return null;\n }\n \n // Make sure the selection is within this block\n if (!WysiwygSelection.containsAcrossShadowDOM(quoteBlock, selectionInfo.startContainer)) {\n // Try using last known cursor position\n if (this.lastKnownCursorPosition !== null) {\n const fullText = quoteBlock.textContent || '';\n const pos = Math.min(this.lastKnownCursorPosition, fullText.length);\n return {\n before: fullText.substring(0, pos),\n after: fullText.substring(pos)\n };\n }\n return null;\n }\n \n // Get cursor position first\n const cursorPos = this.getCursorPosition(element, context);\n \n if (cursorPos === null || cursorPos === 0) {\n // If cursor is at start or can't determine position, move all content\n return {\n before: '',\n after: quoteBlock.innerHTML\n };\n }\n \n // For HTML content, split using ranges to preserve formatting\n const beforeRange = document.createRange();\n const afterRange = document.createRange();\n \n // Before range: from start of element to cursor\n beforeRange.setStart(quoteBlock, 0);\n beforeRange.setEnd(selectionInfo.startContainer, selectionInfo.startOffset);\n \n // After range: from cursor to end of element\n afterRange.setStart(selectionInfo.startContainer, selectionInfo.startOffset);\n afterRange.setEnd(quoteBlock, quoteBlock.childNodes.length);\n \n // Extract HTML content\n const beforeFragment = beforeRange.cloneContents();\n const afterFragment = afterRange.cloneContents();\n \n // Convert to HTML strings\n const tempDiv = document.createElement('div');\n tempDiv.appendChild(beforeFragment);\n const beforeHtml = tempDiv.innerHTML;\n \n tempDiv.innerHTML = '';\n tempDiv.appendChild(afterFragment);\n const afterHtml = tempDiv.innerHTML;\n \n return { \n before: beforeHtml, \n after: afterHtml \n };\n }\n}", "import { BaseBlockHandler, type IBlockEventHandlers } from '../block.base.js';\nimport type { IBlock } from '../../wysiwyg.types.js';\nimport { cssManager } from '@design.estate/dees-element';\nimport { WysiwygSelection } from '../../wysiwyg.selection.js';\nimport type { HLJSApi } from 'highlight.js';\nimport { cssGeistFontFamily, cssMonoFontFamily } from '../../../../00fonts.js';\nimport { PROGRAMMING_LANGUAGES } from '../../wysiwyg.constants.js';\nimport { DeesServiceLibLoader } from '../../../../../services/index.js';\n\n/**\n * CodeBlockHandler with improved architecture\n * \n * Key features:\n * 1. Simple DOM structure\n * 2. Line number handling\n * 3. Syntax highlighting only when not focused (grey text while editing)\n * 4. Clean event handling\n * 5. Copy button functionality\n */\nexport class CodeBlockHandler extends BaseBlockHandler {\n type = 'code';\n\n private highlightTimer: any = null;\n private highlightJs: HLJSApi | null = null;\n \n render(block: IBlock, isSelected: boolean): string {\n const language = block.metadata?.language || 'typescript';\n const content = block.content || '';\n const lineCount = content.split('\\n').length;\n \n // Generate line numbers\n let lineNumbersHtml = '';\n for (let i = 1; i <= lineCount; i++) {\n lineNumbersHtml += `
    ${i}
    `;\n }\n \n // Generate language options\n const languageOptions = PROGRAMMING_LANGUAGES.map(lang => {\n const value = lang.toLowerCase();\n return ``;\n }).join('');\n \n return `\n
    \n
    \n \n \n
    \n
    \n
    ${lineNumbersHtml}
    \n
    \n
    ${this.escapeHtml(content)}
    \n
    \n
    \n
    \n `;\n }\n \n setup(element: HTMLElement, block: IBlock, handlers: IBlockEventHandlers): void {\n const editor = element.querySelector('.code-editor') as HTMLElement;\n const container = element.querySelector('.code-block-container') as HTMLElement;\n const copyButton = element.querySelector('.copy-button') as HTMLButtonElement;\n const languageSelector = element.querySelector('.language-selector') as HTMLSelectElement;\n \n if (!editor || !container) return;\n \n // Setup language selector\n if (languageSelector) {\n languageSelector.addEventListener('change', (e) => {\n const newLanguage = (e.target as HTMLSelectElement).value;\n block.metadata = { ...block.metadata, language: newLanguage };\n container.setAttribute('data-language', newLanguage);\n \n // Update the syntax highlighting if content exists and not focused\n if (block.content && document.activeElement !== editor) {\n this.applyHighlighting(element, block);\n }\n \n // Notify about the change\n if (handlers.onInput) {\n handlers.onInput(new InputEvent('input'));\n }\n });\n }\n \n // Setup copy button\n if (copyButton) {\n copyButton.addEventListener('click', async () => {\n const content = editor.textContent || '';\n \n try {\n await navigator.clipboard.writeText(content);\n \n // Show feedback\n const copyText = copyButton.querySelector('.copy-text') as HTMLElement;\n const originalText = copyText.textContent;\n copyText.textContent = 'Copied!';\n copyButton.classList.add('copied');\n \n // Reset after 2 seconds\n setTimeout(() => {\n copyText.textContent = originalText;\n copyButton.classList.remove('copied');\n }, 2000);\n } catch (err) {\n console.error('Failed to copy:', err);\n // Fallback for older browsers\n const textArea = document.createElement('textarea');\n textArea.value = content;\n textArea.style.position = 'fixed';\n textArea.style.opacity = '0';\n document.body.appendChild(textArea);\n textArea.select();\n try {\n // @ts-ignore - execCommand is deprecated but needed for fallback\n document.execCommand('copy');\n // Show feedback\n const copyText = copyButton.querySelector('.copy-text') as HTMLElement;\n const originalText = copyText.textContent;\n copyText.textContent = 'Copied!';\n copyButton.classList.add('copied');\n \n setTimeout(() => {\n copyText.textContent = originalText;\n copyButton.classList.remove('copied');\n }, 2000);\n } catch (err) {\n console.error('Fallback copy failed:', err);\n }\n document.body.removeChild(textArea);\n }\n });\n }\n \n // Track if we're currently editing\n let isEditing = false;\n \n // Focus handler\n editor.addEventListener('focus', () => {\n isEditing = true;\n container.classList.add('editing');\n \n // Remove all syntax highlighting when focused\n const content = editor.textContent || '';\n editor.textContent = content; // This removes all HTML formatting\n \n // Restore cursor position after removing highlighting\n requestAnimationFrame(() => {\n const range = document.createRange();\n const selection = window.getSelection();\n if (editor.firstChild) {\n range.setStart(editor.firstChild, 0);\n range.collapse(true);\n selection?.removeAllRanges();\n selection?.addRange(range);\n }\n });\n \n handlers.onFocus();\n });\n \n // Blur handler\n editor.addEventListener('blur', () => {\n isEditing = false;\n container.classList.remove('editing');\n // Apply final highlighting on blur\n this.applyHighlighting(element, block);\n handlers.onBlur();\n });\n \n // Input handler\n editor.addEventListener('input', (e) => {\n handlers.onInput(e as InputEvent);\n \n // Update line numbers\n this.updateLineNumbers(element);\n \n // Clear any pending highlight timer (no highlighting while editing)\n clearTimeout(this.highlightTimer);\n });\n \n // Keydown handler\n editor.addEventListener('keydown', (e) => {\n // Handle Tab key for code blocks\n if (e.key === 'Tab') {\n e.preventDefault();\n const selection = window.getSelection();\n if (selection && selection.rangeCount > 0) {\n const range = selection.getRangeAt(0);\n const textNode = document.createTextNode(' ');\n range.insertNode(textNode);\n range.setStartAfter(textNode);\n range.setEndAfter(textNode);\n selection.removeAllRanges();\n selection.addRange(range);\n handlers.onInput(new InputEvent('input'));\n this.updateLineNumbers(element);\n }\n return;\n }\n \n // Check cursor position for navigation keys\n if (['ArrowLeft', 'ArrowRight', 'ArrowUp', 'ArrowDown'].includes(e.key)) {\n const cursorPos = this.getCursorPosition(element);\n const textLength = editor.textContent?.length || 0;\n \n // For ArrowLeft at position 0 or ArrowRight at end, let parent handle navigation\n if ((e.key === 'ArrowLeft' && cursorPos === 0) || \n (e.key === 'ArrowRight' && cursorPos === textLength)) {\n // Pass to parent handler for inter-block navigation\n handlers.onKeyDown(e);\n return;\n }\n \n // For ArrowUp/Down, check if we're at first/last line\n if (e.key === 'ArrowUp' || e.key === 'ArrowDown') {\n const lines = (editor.textContent || '').split('\\n');\n const currentLine = this.getCurrentLineIndex(editor);\n \n if ((e.key === 'ArrowUp' && currentLine === 0) ||\n (e.key === 'ArrowDown' && currentLine === lines.length - 1)) {\n // Let parent handle navigation to prev/next block\n handlers.onKeyDown(e);\n return;\n }\n }\n }\n \n // Pass other keys to parent handler\n handlers.onKeyDown(e);\n });\n \n // Paste handler - plain text only\n editor.addEventListener('paste', (e) => {\n e.preventDefault();\n const text = e.clipboardData?.getData('text/plain');\n if (text) {\n const selection = window.getSelection();\n if (selection && selection.rangeCount > 0) {\n const range = selection.getRangeAt(0);\n range.deleteContents();\n const textNode = document.createTextNode(text);\n range.insertNode(textNode);\n range.setStartAfter(textNode);\n range.setEndAfter(textNode);\n selection.removeAllRanges();\n selection.addRange(range);\n handlers.onInput(new InputEvent('input'));\n this.updateLineNumbers(element);\n }\n }\n });\n \n // Composition handlers\n editor.addEventListener('compositionstart', () => handlers.onCompositionStart());\n editor.addEventListener('compositionend', () => handlers.onCompositionEnd());\n \n // Initial syntax highlighting if content exists and not focused\n if (block.content && document.activeElement !== editor) {\n requestAnimationFrame(() => {\n this.applyHighlighting(element, block);\n });\n }\n }\n \n private updateLineNumbers(element: HTMLElement): void {\n const editor = element.querySelector('.code-editor') as HTMLElement;\n const lineNumbersContainer = element.querySelector('.line-numbers') as HTMLElement;\n \n if (!editor || !lineNumbersContainer) return;\n \n const content = editor.textContent || '';\n const lines = content.split('\\n');\n const lineCount = lines.length || 1;\n \n let lineNumbersHtml = '';\n for (let i = 1; i <= lineCount; i++) {\n lineNumbersHtml += `
    ${i}
    `;\n }\n \n lineNumbersContainer.innerHTML = lineNumbersHtml;\n }\n \n private getCurrentLineIndex(editor: HTMLElement): number {\n const selection = window.getSelection();\n if (!selection || selection.rangeCount === 0) return 0;\n \n const range = selection.getRangeAt(0);\n const preCaretRange = range.cloneRange();\n preCaretRange.selectNodeContents(editor);\n preCaretRange.setEnd(range.startContainer, range.startOffset);\n \n const textBeforeCursor = preCaretRange.toString();\n const linesBeforeCursor = textBeforeCursor.split('\\n');\n \n return linesBeforeCursor.length - 1; // 0-indexed\n }\n \n private async applyHighlighting(element: HTMLElement, block: IBlock): Promise {\n const editor = element.querySelector('.code-editor') as HTMLElement;\n if (!editor) return;\n\n // Load highlight.js from CDN if not already loaded\n if (!this.highlightJs) {\n this.highlightJs = await DeesServiceLibLoader.getInstance().loadHighlightJs();\n }\n\n // Store cursor position\n const cursorPos = this.getCursorPosition(element);\n\n // Get plain text content\n const content = editor.textContent || '';\n const language = block.metadata?.language || 'typescript';\n\n // Apply highlighting\n try {\n const result = this.highlightJs.highlight(content, {\n language: language,\n ignoreIllegals: true,\n });\n\n // Only update if we have valid highlighted content\n if (result.value) {\n editor.innerHTML = result.value;\n\n // Restore cursor position if editor is focused\n if (document.activeElement === editor && cursorPos !== null) {\n requestAnimationFrame(() => {\n WysiwygSelection.setCursorPosition(editor, cursorPos);\n });\n }\n }\n } catch (error) {\n // If highlighting fails, keep plain text\n console.warn('Syntax highlighting failed:', error);\n }\n }\n \n private escapeHtml(text: string): string {\n const div = document.createElement('div');\n div.textContent = text;\n return div.innerHTML;\n }\n \n getContent(element: HTMLElement): string {\n const editor = element.querySelector('.code-editor') as HTMLElement;\n return editor?.textContent || '';\n }\n \n setContent(element: HTMLElement, content: string): void {\n const editor = element.querySelector('.code-editor') as HTMLElement;\n if (!editor) return;\n \n editor.textContent = content;\n this.updateLineNumbers(element);\n \n // Apply highlighting if not focused\n if (document.activeElement !== editor) {\n const block: IBlock = {\n id: editor.dataset.blockId || '',\n type: 'code',\n content: content,\n metadata: { \n language: element.querySelector('.code-block-container')?.getAttribute('data-language') || 'typescript'\n }\n };\n this.applyHighlighting(element, block);\n }\n }\n \n getCursorPosition(element: HTMLElement): number | null {\n const editor = element.querySelector('.code-editor') as HTMLElement;\n if (!editor) return null;\n \n const selection = window.getSelection();\n if (!selection || selection.rangeCount === 0) return null;\n \n const range = selection.getRangeAt(0);\n if (!editor.contains(range.startContainer)) return null;\n \n const preCaretRange = document.createRange();\n preCaretRange.selectNodeContents(editor);\n preCaretRange.setEnd(range.startContainer, range.startOffset);\n \n return preCaretRange.toString().length;\n }\n \n setCursorToStart(element: HTMLElement): void {\n const editor = element.querySelector('.code-editor') as HTMLElement;\n if (editor) {\n WysiwygSelection.setCursorPosition(editor, 0);\n }\n }\n \n setCursorToEnd(element: HTMLElement): void {\n const editor = element.querySelector('.code-editor') as HTMLElement;\n if (editor) {\n const length = editor.textContent?.length || 0;\n WysiwygSelection.setCursorPosition(editor, length);\n }\n }\n \n focus(element: HTMLElement): void {\n const editor = element.querySelector('.code-editor') as HTMLElement;\n editor?.focus();\n }\n \n focusWithCursor(element: HTMLElement, position: 'start' | 'end' | number = 'end'): void {\n const editor = element.querySelector('.code-editor') as HTMLElement;\n if (!editor) return;\n \n editor.focus();\n \n requestAnimationFrame(() => {\n if (position === 'start') {\n this.setCursorToStart(element);\n } else if (position === 'end') {\n this.setCursorToEnd(element);\n } else if (typeof position === 'number') {\n WysiwygSelection.setCursorPosition(editor, position);\n }\n });\n }\n \n getSplitContent(element: HTMLElement): { before: string; after: string } | null {\n const position = this.getCursorPosition(element);\n if (position === null) return null;\n \n const content = this.getContent(element);\n return {\n before: content.substring(0, position),\n after: content.substring(position)\n };\n }\n \n getStyles(): string {\n return `\n /* Code Block Container - Minimalist shadcn style */\n .code-block-container {\n position: relative;\n margin: 12px 0;\n background: transparent;\n border: 1px solid ${cssManager.bdTheme('#e5e7eb', '#374151')};\n border-radius: 6px;\n overflow: hidden;\n transition: all 0.15s ease;\n }\n \n .code-block-container.selected {\n border-color: ${cssManager.bdTheme('#9ca3af', '#6b7280')};\n }\n \n .code-block-container.editing {\n border-color: ${cssManager.bdTheme('#6b7280', '#9ca3af')};\n background: ${cssManager.bdTheme('#fafafa', '#0a0a0a')};\n }\n \n /* Header - Simplified */\n .code-header {\n background: transparent;\n border-bottom: 1px solid ${cssManager.bdTheme('#e5e7eb', '#374151')};\n padding: 8px 12px;\n display: flex;\n justify-content: space-between;\n align-items: center;\n }\n \n .language-selector {\n font-size: 12px;\n color: ${cssManager.bdTheme('#6b7280', '#9ca3af')};\n font-weight: 500;\n text-transform: uppercase;\n letter-spacing: 0.05em;\n font-family: ${cssGeistFontFamily};\n background: transparent;\n border: 1px solid transparent;\n border-radius: 4px;\n padding: 4px 8px;\n cursor: pointer;\n transition: all 0.15s ease;\n outline: none;\n }\n \n .language-selector:hover {\n background: ${cssManager.bdTheme('#f9fafb', '#1f2937')};\n border-color: ${cssManager.bdTheme('#e5e7eb', '#374151')};\n color: ${cssManager.bdTheme('#374151', '#e5e7eb')};\n }\n \n .language-selector:focus {\n border-color: ${cssManager.bdTheme('#9ca3af', '#6b7280')};\n }\n \n /* Copy Button - Minimal */\n .copy-button {\n display: flex;\n align-items: center;\n gap: 4px;\n padding: 4px 8px;\n background: transparent;\n border: 1px solid transparent;\n border-radius: 4px;\n color: ${cssManager.bdTheme('#6b7280', '#9ca3af')};\n font-size: 12px;\n font-family: ${cssGeistFontFamily};\n cursor: pointer;\n transition: all 0.15s ease;\n outline: none;\n }\n \n .copy-button:hover {\n background: ${cssManager.bdTheme('#f9fafb', '#1f2937')};\n border-color: ${cssManager.bdTheme('#e5e7eb', '#374151')};\n color: ${cssManager.bdTheme('#374151', '#e5e7eb')};\n }\n \n .copy-button:active {\n transform: scale(0.98);\n }\n \n .copy-button.copied {\n color: ${cssManager.bdTheme('#059669', '#10b981')};\n }\n \n .copy-icon {\n flex-shrink: 0;\n opacity: 0.7;\n }\n \n .copy-button:hover .copy-icon {\n opacity: 1;\n }\n \n .copy-text {\n min-width: 40px;\n text-align: center;\n }\n \n /* Code Body */\n .code-body {\n display: flex;\n position: relative;\n background: ${cssManager.bdTheme('#fafafa', '#0a0a0a')};\n }\n \n /* Line Numbers - Subtle */\n .line-numbers {\n flex-shrink: 0;\n padding: 12px 0;\n background: transparent;\n text-align: right;\n user-select: none;\n min-width: 40px;\n border-right: 1px solid ${cssManager.bdTheme('#e5e7eb', '#374151')};\n }\n \n .line-number {\n padding: 0 12px 0 8px;\n color: ${cssManager.bdTheme('#9ca3af', '#4b5563')};\n font-family: ${cssMonoFontFamily};\n font-size: 13px;\n line-height: 20px;\n height: 20px;\n }\n \n /* Code Content */\n .code-content {\n flex: 1;\n overflow-x: auto;\n position: relative;\n }\n \n .code-pre {\n margin: 0;\n padding: 0;\n background: transparent;\n }\n \n .code-editor {\n display: block;\n padding: 12px 16px;\n margin: 0;\n font-family: ${cssMonoFontFamily};\n font-size: 13px;\n line-height: 20px;\n color: ${cssManager.bdTheme('#111827', '#f9fafb')};\n background: transparent;\n border: none;\n outline: none;\n white-space: pre-wrap;\n word-wrap: break-word;\n min-height: 60px;\n overflow: visible;\n }\n \n /* Placeholder */\n .code-editor:empty::before {\n content: \"// Type or paste code here...\";\n color: ${cssManager.bdTheme('#9ca3af', '#4b5563')};\n pointer-events: none;\n }\n \n /* When editing (focused), show grey text without highlighting */\n .code-block-container.editing .code-editor {\n color: ${cssManager.bdTheme('#6b7280', '#9ca3af')} !important;\n }\n \n .code-block-container.editing .code-editor * {\n color: inherit !important;\n }\n \n /* Syntax Highlighting - Muted colors */\n .code-editor .hljs-keyword {\n color: ${cssManager.bdTheme('#dc2626', '#f87171')};\n font-weight: 500;\n }\n \n .code-editor .hljs-string {\n color: ${cssManager.bdTheme('#059669', '#10b981')};\n }\n \n .code-editor .hljs-number {\n color: ${cssManager.bdTheme('#7c3aed', '#a78bfa')};\n }\n \n .code-editor .hljs-function {\n color: ${cssManager.bdTheme('#2563eb', '#60a5fa')};\n }\n \n .code-editor .hljs-comment {\n color: ${cssManager.bdTheme('#6b7280', '#6b7280')};\n font-style: italic;\n }\n \n .code-editor .hljs-variable,\n .code-editor .hljs-attr {\n color: ${cssManager.bdTheme('#ea580c', '#fb923c')};\n }\n \n .code-editor .hljs-class,\n .code-editor .hljs-title {\n color: ${cssManager.bdTheme('#2563eb', '#60a5fa')};\n font-weight: 500;\n }\n \n .code-editor .hljs-params {\n color: ${cssManager.bdTheme('#374151', '#e5e7eb')};\n }\n \n .code-editor .hljs-built_in {\n color: ${cssManager.bdTheme('#7c3aed', '#a78bfa')};\n }\n \n .code-editor .hljs-literal {\n color: ${cssManager.bdTheme('#7c3aed', '#a78bfa')};\n }\n \n .code-editor .hljs-meta {\n color: ${cssManager.bdTheme('#6b7280', '#9ca3af')};\n }\n \n .code-editor .hljs-punctuation {\n color: ${cssManager.bdTheme('#374151', '#d1d5db')};\n }\n \n .code-editor .hljs-tag {\n color: ${cssManager.bdTheme('#dc2626', '#f87171')};\n }\n \n .code-editor .hljs-attribute {\n color: ${cssManager.bdTheme('#2563eb', '#60a5fa')};\n }\n \n .code-editor .hljs-selector-tag {\n color: ${cssManager.bdTheme('#dc2626', '#f87171')};\n }\n \n .code-editor .hljs-selector-class {\n color: ${cssManager.bdTheme('#2563eb', '#60a5fa')};\n }\n \n .code-editor .hljs-selector-id {\n color: ${cssManager.bdTheme('#7c3aed', '#a78bfa')};\n }\n \n /* Selection */\n .code-editor::selection,\n .code-editor *::selection {\n background: ${cssManager.bdTheme('rgba(99, 102, 241, 0.2)', 'rgba(99, 102, 241, 0.3)')};\n }\n \n /* Scrollbar styling - Minimal */\n .code-content::-webkit-scrollbar {\n height: 6px;\n }\n \n .code-content::-webkit-scrollbar-track {\n background: transparent;\n }\n \n .code-content::-webkit-scrollbar-thumb {\n background: ${cssManager.bdTheme('#d1d5db', '#4b5563')};\n border-radius: 3px;\n }\n \n .code-content::-webkit-scrollbar-thumb:hover {\n background: ${cssManager.bdTheme('#9ca3af', '#6b7280')};\n }\n `;\n }\n}", "import { BaseBlockHandler, type IBlockEventHandlers } from '../block.base.js';\nimport type { IBlock } from '../../wysiwyg.types.js';\nimport { cssManager } from '@design.estate/dees-element';\nimport { WysiwygBlocks } from '../../wysiwyg.blocks.js';\nimport { WysiwygSelection } from '../../wysiwyg.selection.js';\n\nexport class ListBlockHandler extends BaseBlockHandler {\n type = 'list';\n \n // Track cursor position and list state\n private lastKnownCursorPosition: number = 0;\n private lastSelectedText: string = '';\n private selectionHandler: (() => void) | null = null;\n \n render(block: IBlock, isSelected: boolean): string {\n const selectedClass = isSelected ? ' selected' : '';\n const listType = block.metadata?.listType || 'unordered';\n const listTag = listType === 'ordered' ? 'ol' : 'ul';\n \n // Render list content\n const listContent = this.renderListContent(block.content, block.metadata);\n \n return `\n ${listContent}\n `;\n }\n \n private renderListContent(content: string | undefined, metadata: any): string {\n if (!content) return '
    ';\n \n const listType = metadata?.listType || 'unordered';\n const listTag = listType === 'ordered' ? 'ol' : 'ul';\n \n // Split content by newlines to create list items\n const lines = content.split('\\n').filter(line => line.trim());\n if (lines.length === 0) {\n return `<${listTag}>
  • `;\n }\n \n const listItems = lines.map(line => `
  • ${line}
  • `).join('');\n return `<${listTag}>${listItems}`;\n }\n \n setup(element: HTMLElement, block: IBlock, handlers: IBlockEventHandlers): void {\n const listBlock = element.querySelector('.block.list') as HTMLDivElement;\n if (!listBlock) {\n console.error('ListBlockHandler.setup: No list block element found');\n return;\n }\n \n // Set initial content if needed\n if (block.content && !listBlock.innerHTML) {\n listBlock.innerHTML = this.renderListContent(block.content, block.metadata);\n }\n \n // Input handler\n listBlock.addEventListener('input', (e) => {\n handlers.onInput(e as InputEvent);\n \n // Track cursor position after input\n const pos = this.getCursorPosition(element);\n if (pos !== null) {\n this.lastKnownCursorPosition = pos;\n }\n });\n \n // Keydown handler\n listBlock.addEventListener('keydown', (e) => {\n // Track cursor position before keydown\n const pos = this.getCursorPosition(element);\n if (pos !== null) {\n this.lastKnownCursorPosition = pos;\n }\n \n // Special handling for Enter key in lists\n if (e.key === 'Enter' && !e.shiftKey) {\n const selection = window.getSelection();\n if (selection && selection.rangeCount > 0) {\n const range = selection.getRangeAt(0);\n const currentLi = range.startContainer.parentElement?.closest('li');\n \n if (currentLi && currentLi.textContent === '') {\n // Empty list item - exit list mode\n e.preventDefault();\n handlers.onKeyDown(e);\n return;\n }\n // Otherwise, let browser create new list item naturally\n }\n }\n \n handlers.onKeyDown(e);\n });\n \n // Focus handler\n listBlock.addEventListener('focus', () => {\n handlers.onFocus();\n });\n \n // Blur handler\n listBlock.addEventListener('blur', () => {\n handlers.onBlur();\n });\n \n // Composition handlers for IME support\n listBlock.addEventListener('compositionstart', () => {\n handlers.onCompositionStart();\n });\n \n listBlock.addEventListener('compositionend', () => {\n handlers.onCompositionEnd();\n });\n \n // Mouse up handler\n listBlock.addEventListener('mouseup', (e) => {\n const pos = this.getCursorPosition(element);\n if (pos !== null) {\n this.lastKnownCursorPosition = pos;\n }\n handlers.onMouseUp?.(e);\n });\n \n // Click handler\n listBlock.addEventListener('click', (e: MouseEvent) => {\n setTimeout(() => {\n const pos = this.getCursorPosition(element);\n if (pos !== null) {\n this.lastKnownCursorPosition = pos;\n }\n }, 0);\n });\n \n // Keyup handler\n listBlock.addEventListener('keyup', (e) => {\n const pos = this.getCursorPosition(element);\n if (pos !== null) {\n this.lastKnownCursorPosition = pos;\n }\n });\n \n // Set up selection handler\n this.setupSelectionHandler(element, listBlock, block);\n }\n \n private setupSelectionHandler(element: HTMLElement, listBlock: HTMLDivElement, block: IBlock): void {\n const checkSelection = () => {\n const selection = window.getSelection();\n if (!selection || selection.rangeCount === 0) return;\n \n const selectedText = selection.toString();\n if (selectedText.length === 0) {\n if (this.lastSelectedText) {\n this.lastSelectedText = '';\n this.dispatchSelectionEvent(element, {\n text: '',\n blockId: block.id,\n hasSelection: false\n });\n }\n return;\n }\n \n // Get parent wysiwyg component's shadow root\n const wysiwygBlock = (listBlock.getRootNode() as ShadowRoot).host as any;\n const parentComponent = wysiwygBlock?.closest('dees-input-wysiwyg');\n const parentShadowRoot = parentComponent?.shadowRoot;\n const blockShadowRoot = wysiwygBlock?.shadowRoot;\n \n const shadowRoots: ShadowRoot[] = [];\n if (parentShadowRoot) shadowRoots.push(parentShadowRoot);\n if (blockShadowRoot) shadowRoots.push(blockShadowRoot);\n \n const selectionInfo = WysiwygSelection.getSelectionInfo(...shadowRoots);\n if (!selectionInfo) return;\n \n const startInBlock = WysiwygSelection.containsAcrossShadowDOM(listBlock, selectionInfo.startContainer);\n const endInBlock = WysiwygSelection.containsAcrossShadowDOM(listBlock, selectionInfo.endContainer);\n \n if (startInBlock || endInBlock) {\n if (selectedText !== this.lastSelectedText) {\n this.lastSelectedText = selectedText;\n \n const range = WysiwygSelection.createRangeFromInfo(selectionInfo);\n const rect = range.getBoundingClientRect();\n \n this.dispatchSelectionEvent(element, {\n text: selectedText.trim(),\n blockId: block.id,\n range: range,\n rect: rect,\n hasSelection: true\n });\n }\n } else if (this.lastSelectedText) {\n this.lastSelectedText = '';\n this.dispatchSelectionEvent(element, {\n text: '',\n blockId: block.id,\n hasSelection: false\n });\n }\n };\n \n document.addEventListener('selectionchange', checkSelection);\n this.selectionHandler = checkSelection;\n \n // Cleanup on disconnect\n const wysiwygBlock = (listBlock.getRootNode() as ShadowRoot).host as any;\n if (wysiwygBlock) {\n const originalDisconnectedCallback = (wysiwygBlock as any).disconnectedCallback;\n (wysiwygBlock as any).disconnectedCallback = async function() {\n if (this.selectionHandler) {\n document.removeEventListener('selectionchange', this.selectionHandler);\n this.selectionHandler = null;\n }\n if (originalDisconnectedCallback) {\n await originalDisconnectedCallback.call(wysiwygBlock);\n }\n }.bind(this);\n }\n }\n \n private dispatchSelectionEvent(element: HTMLElement, detail: any): void {\n const event = new CustomEvent('block-text-selected', {\n detail,\n bubbles: true,\n composed: true\n });\n element.dispatchEvent(event);\n }\n \n getStyles(): string {\n return `\n /* List specific styles */\n .block.list {\n padding: 0;\n }\n \n .block.list ul,\n .block.list ol {\n margin: 0;\n padding-left: 24px;\n }\n \n .block.list li {\n margin: 4px 0;\n line-height: 1.6;\n }\n \n .block.list li:last-child {\n margin-bottom: 0;\n }\n `;\n }\n \n getPlaceholder(): string {\n return '';\n }\n \n // Helper methods for list functionality\n \n getCursorPosition(element: HTMLElement, context?: any): number | null {\n const listBlock = element.querySelector('.block.list') as HTMLDivElement;\n if (!listBlock) return null;\n \n const wysiwygBlock = context?.component;\n const parentComponent = wysiwygBlock?.closest('dees-input-wysiwyg');\n const parentShadowRoot = parentComponent?.shadowRoot;\n const blockShadowRoot = context?.shadowRoot;\n \n const shadowRoots: ShadowRoot[] = [];\n if (parentShadowRoot) shadowRoots.push(parentShadowRoot);\n if (blockShadowRoot) shadowRoots.push(blockShadowRoot);\n \n const selectionInfo = WysiwygSelection.getSelectionInfo(...shadowRoots);\n if (!selectionInfo) return null;\n \n if (!WysiwygSelection.containsAcrossShadowDOM(listBlock, selectionInfo.startContainer)) {\n return null;\n }\n \n // For lists, calculate position based on text content\n const preCaretRange = document.createRange();\n preCaretRange.selectNodeContents(listBlock);\n preCaretRange.setEnd(selectionInfo.startContainer, selectionInfo.startOffset);\n \n return preCaretRange.toString().length;\n }\n \n getContent(element: HTMLElement, context?: any): string {\n const listBlock = element.querySelector('.block.list') as HTMLDivElement;\n if (!listBlock) return '';\n \n // Extract text content from list items\n const listItems = listBlock.querySelectorAll('li');\n const content = Array.from(listItems)\n .map(li => li.textContent || '')\n .join('\\n');\n \n return content;\n }\n \n setContent(element: HTMLElement, content: string, context?: any): void {\n const listBlock = element.querySelector('.block.list') as HTMLDivElement;\n if (!listBlock) return;\n \n const hadFocus = document.activeElement === listBlock || \n element.shadowRoot?.activeElement === listBlock;\n \n // Get current metadata to preserve list type\n const listElement = listBlock.querySelector('ul, ol');\n const isOrdered = listElement?.tagName === 'OL';\n \n // Update content\n listBlock.innerHTML = this.renderListContent(content, { listType: isOrdered ? 'ordered' : 'unordered' });\n \n if (hadFocus) {\n listBlock.focus();\n }\n }\n \n setCursorToStart(element: HTMLElement, context?: any): void {\n const listBlock = element.querySelector('.block.list') as HTMLDivElement;\n if (!listBlock) return;\n \n const firstLi = listBlock.querySelector('li');\n if (firstLi) {\n const textNode = this.getFirstTextNode(firstLi);\n if (textNode) {\n const range = document.createRange();\n const selection = window.getSelection();\n range.setStart(textNode, 0);\n range.setEnd(textNode, 0);\n selection?.removeAllRanges();\n selection?.addRange(range);\n }\n }\n }\n \n setCursorToEnd(element: HTMLElement, context?: any): void {\n const listBlock = element.querySelector('.block.list') as HTMLDivElement;\n if (!listBlock) return;\n \n const lastLi = listBlock.querySelector('li:last-child');\n if (lastLi) {\n const textNode = this.getLastTextNode(lastLi);\n if (textNode) {\n const range = document.createRange();\n const selection = window.getSelection();\n const textLength = textNode.textContent?.length || 0;\n range.setStart(textNode, textLength);\n range.setEnd(textNode, textLength);\n selection?.removeAllRanges();\n selection?.addRange(range);\n }\n }\n }\n \n private getFirstTextNode(element: Node): Text | null {\n if (element.nodeType === Node.TEXT_NODE) {\n return element as Text;\n }\n \n for (let i = 0; i < element.childNodes.length; i++) {\n const firstText = this.getFirstTextNode(element.childNodes[i]);\n if (firstText) return firstText;\n }\n \n return null;\n }\n \n private getLastTextNode(element: Node): Text | null {\n if (element.nodeType === Node.TEXT_NODE) {\n return element as Text;\n }\n \n for (let i = element.childNodes.length - 1; i >= 0; i--) {\n const lastText = this.getLastTextNode(element.childNodes[i]);\n if (lastText) return lastText;\n }\n \n return null;\n }\n \n focus(element: HTMLElement, context?: any): void {\n const listBlock = element.querySelector('.block.list') as HTMLDivElement;\n if (!listBlock) return;\n \n if (!listBlock.hasAttribute('contenteditable')) {\n listBlock.setAttribute('contenteditable', 'true');\n }\n \n listBlock.focus();\n \n if (document.activeElement !== listBlock && element.shadowRoot?.activeElement !== listBlock) {\n Promise.resolve().then(() => {\n listBlock.focus();\n });\n }\n }\n \n focusWithCursor(element: HTMLElement, position: 'start' | 'end' | number = 'end', context?: any): void {\n const listBlock = element.querySelector('.block.list') as HTMLDivElement;\n if (!listBlock) return;\n \n if (!listBlock.hasAttribute('contenteditable')) {\n listBlock.setAttribute('contenteditable', 'true');\n }\n \n listBlock.focus();\n \n const setCursor = () => {\n if (position === 'start') {\n this.setCursorToStart(element, context);\n } else if (position === 'end') {\n this.setCursorToEnd(element, context);\n } else if (typeof position === 'number') {\n // For numeric positions in lists, we need custom logic\n // This is complex due to list structure, so default to end\n this.setCursorToEnd(element, context);\n }\n };\n \n if (document.activeElement === listBlock || element.shadowRoot?.activeElement === listBlock) {\n setCursor();\n } else {\n Promise.resolve().then(() => {\n if (document.activeElement === listBlock || element.shadowRoot?.activeElement === listBlock) {\n setCursor();\n }\n });\n }\n }\n \n getSplitContent(element: HTMLElement, context?: any): { before: string; after: string } | null {\n const listBlock = element.querySelector('.block.list') as HTMLDivElement;\n if (!listBlock) return null;\n \n // For lists, we don't split content - instead let the keyboard handler\n // create a new paragraph block when Enter is pressed on empty list item\n return null;\n }\n}", "import { BaseBlockHandler, type IBlockEventHandlers } from '../block.base.js';\nimport type { IBlock } from '../../wysiwyg.types.js';\nimport { cssManager } from '@design.estate/dees-element';\n\n/**\n * ImageBlockHandler - Handles image upload, display, and interactions\n * \n * Features:\n * - Click to upload\n * - Drag and drop support\n * - Base64 encoding (TODO: server upload in production)\n * - Loading states\n * - Alt text from filename\n */\nexport class ImageBlockHandler extends BaseBlockHandler {\n type = 'image';\n \n render(block: IBlock, isSelected: boolean): string {\n const imageUrl = block.metadata?.url;\n const altText = block.content || 'Image';\n const isLoading = block.metadata?.loading;\n \n return `\n
    \n ${isLoading ? this.renderLoading() : \n imageUrl ? this.renderImage(imageUrl, altText) : \n this.renderPlaceholder()}\n \n
    \n `;\n }\n \n private renderPlaceholder(): string {\n return `\n
    \n
    \n \n \n \n \n \n
    \n
    Click to upload an image
    \n
    or drag and drop
    \n
    \n `;\n }\n \n private renderImage(url: string, altText: string): string {\n return `\n
    \n \"${this.escapeHtml(altText)}\"\n
    \n `;\n }\n \n private renderLoading(): string {\n return `\n
    \n
    \n
    Uploading image...
    \n
    \n `;\n }\n \n setup(element: HTMLElement, block: IBlock, handlers: IBlockEventHandlers): void {\n const container = element.querySelector('.image-block-container') as HTMLElement;\n const fileInput = element.querySelector('.image-file-input') as HTMLInputElement;\n \n if (!container) {\n console.error('ImageBlockHandler: Could not find container');\n return;\n }\n \n if (!fileInput) {\n console.error('ImageBlockHandler: Could not find file input');\n return;\n }\n \n // Click to upload (only on placeholder)\n const placeholder = container.querySelector('.image-upload-placeholder');\n if (placeholder) {\n placeholder.addEventListener('click', (e) => {\n e.preventDefault();\n e.stopPropagation();\n console.log('ImageBlockHandler: Placeholder clicked, opening file selector');\n fileInput.click();\n });\n }\n \n // Container click for focus\n container.addEventListener('click', () => {\n handlers.onFocus();\n });\n \n // File input change\n fileInput.addEventListener('change', async (e) => {\n const input = e.target as HTMLInputElement;\n const file = input.files?.[0];\n if (file) {\n console.log('ImageBlockHandler: File selected:', file.name);\n await this.handleFileUpload(file, block, handlers);\n }\n });\n \n // Drag and drop\n container.addEventListener('dragover', (e) => {\n e.preventDefault();\n e.stopPropagation();\n if (!block.metadata?.url) {\n container.classList.add('drag-over');\n }\n });\n \n container.addEventListener('dragleave', (e) => {\n e.preventDefault();\n e.stopPropagation();\n container.classList.remove('drag-over');\n });\n \n container.addEventListener('drop', async (e) => {\n e.preventDefault();\n e.stopPropagation();\n container.classList.remove('drag-over');\n \n const file = e.dataTransfer?.files[0];\n if (file && file.type.startsWith('image/') && !block.metadata?.url) {\n await this.handleFileUpload(file, block, handlers);\n }\n });\n \n // Focus/blur\n container.addEventListener('focus', () => handlers.onFocus());\n container.addEventListener('blur', () => handlers.onBlur());\n \n // Keyboard navigation\n container.addEventListener('keydown', (e) => {\n if (e.key === 'Delete' || e.key === 'Backspace') {\n if (block.metadata?.url) {\n // Clear the image\n block.metadata.url = undefined;\n block.metadata.loading = false;\n block.content = '';\n handlers.onInput(new InputEvent('input'));\n return;\n }\n }\n handlers.onKeyDown(e);\n });\n }\n \n private async handleFileUpload(\n file: File, \n block: IBlock, \n handlers: IBlockEventHandlers\n ): Promise {\n console.log('ImageBlockHandler: Starting file upload', { \n fileName: file.name, \n fileSize: file.size,\n blockId: block.id \n });\n \n // Validate file\n if (!file.type.startsWith('image/')) {\n console.error('Invalid file type:', file.type);\n return;\n }\n \n // Check file size (10MB limit)\n const maxSize = 10 * 1024 * 1024;\n if (file.size > maxSize) {\n console.error('File too large. Maximum size is 10MB');\n return;\n }\n \n // Set loading state\n if (!block.metadata) block.metadata = {};\n block.metadata.loading = true;\n block.metadata.fileName = file.name;\n block.metadata.fileSize = file.size;\n block.metadata.mimeType = file.type;\n \n console.log('ImageBlockHandler: Set loading state, requesting update');\n // Request immediate UI update for loading state\n handlers.onRequestUpdate?.();\n \n try {\n // Convert to base64\n const dataUrl = await this.fileToDataUrl(file);\n \n // Update block\n block.metadata.url = dataUrl;\n block.metadata.loading = false;\n \n // Set default alt text from filename\n const nameWithoutExt = file.name.replace(/\\.[^/.]+$/, '');\n block.content = nameWithoutExt;\n \n console.log('ImageBlockHandler: Upload complete, requesting update', {\n hasUrl: !!block.metadata.url,\n urlLength: dataUrl.length,\n altText: block.content\n });\n \n // Request immediate UI update to show uploaded image\n handlers.onRequestUpdate?.();\n \n } catch (error) {\n console.error('Failed to upload image:', error);\n block.metadata.loading = false;\n // Request UI update to clear loading state\n handlers.onRequestUpdate?.();\n }\n }\n \n private fileToDataUrl(file: File): Promise {\n return new Promise((resolve, reject) => {\n const reader = new FileReader();\n reader.onload = (e) => {\n const result = e.target?.result;\n if (typeof result === 'string') {\n resolve(result);\n } else {\n reject(new Error('Failed to read file'));\n }\n };\n reader.onerror = reject;\n reader.readAsDataURL(file);\n });\n }\n \n private escapeHtml(text: string): string {\n const div = document.createElement('div');\n div.textContent = text;\n return div.innerHTML;\n }\n \n getContent(element: HTMLElement): string {\n // Content is the alt text\n const block = this.getBlockFromElement(element);\n return block?.content || '';\n }\n \n setContent(element: HTMLElement, content: string): void {\n // Content is the alt text\n const block = this.getBlockFromElement(element);\n if (block) {\n block.content = content;\n }\n }\n \n private getBlockFromElement(element: HTMLElement): IBlock | null {\n const container = element.querySelector('.image-block-container');\n const blockId = container?.getAttribute('data-block-id');\n if (!blockId) return null;\n \n // This is a simplified version - in real implementation,\n // we'd need access to the block data\n return {\n id: blockId,\n type: 'image',\n content: '',\n metadata: {}\n };\n }\n \n getCursorPosition(element: HTMLElement): number | null {\n return null; // Images don't have cursor position\n }\n \n setCursorToStart(element: HTMLElement): void {\n this.focus(element);\n }\n \n setCursorToEnd(element: HTMLElement): void {\n this.focus(element);\n }\n \n focus(element: HTMLElement): void {\n const container = element.querySelector('.image-block-container') as HTMLElement;\n container?.focus();\n }\n \n focusWithCursor(element: HTMLElement, position: 'start' | 'end' | number = 'end'): void {\n this.focus(element);\n }\n \n getSplitContent(element: HTMLElement): { before: string; after: string } | null {\n return null; // Images can't be split\n }\n \n getStyles(): string {\n return `\n /* Image Block Container */\n .image-block-container {\n position: relative;\n margin: 12px 0;\n border-radius: 6px;\n overflow: hidden;\n transition: all 0.15s ease;\n outline: none;\n cursor: pointer;\n }\n \n .image-block-container.selected {\n box-shadow: 0 0 0 2px ${cssManager.bdTheme('#6366f1', '#818cf8')};\n }\n \n /* Upload Placeholder */\n .image-upload-placeholder {\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n padding: 48px 24px;\n border: 2px dashed ${cssManager.bdTheme('#e5e7eb', '#374151')};\n border-radius: 6px;\n background: ${cssManager.bdTheme('#fafafa', '#0a0a0a')};\n transition: all 0.15s ease;\n }\n \n .image-block-container:hover .image-upload-placeholder {\n border-color: ${cssManager.bdTheme('#9ca3af', '#6b7280')};\n background: ${cssManager.bdTheme('#f9fafb', '#111827')};\n }\n \n .image-block-container.drag-over .image-upload-placeholder {\n border-color: ${cssManager.bdTheme('#6366f1', '#818cf8')};\n background: ${cssManager.bdTheme('#eff6ff', '#1e1b4b')};\n }\n \n .upload-icon {\n margin-bottom: 12px;\n color: ${cssManager.bdTheme('#9ca3af', '#4b5563')};\n }\n \n .upload-text {\n font-size: 14px;\n font-weight: 500;\n color: ${cssManager.bdTheme('#374151', '#e5e7eb')};\n margin-bottom: 4px;\n }\n \n .upload-hint {\n font-size: 12px;\n color: ${cssManager.bdTheme('#9ca3af', '#6b7280')};\n }\n \n /* Image Container */\n .image-container {\n display: flex;\n justify-content: center;\n align-items: center;\n min-height: 200px;\n background: ${cssManager.bdTheme('#f9fafb', '#111827')};\n }\n \n .image-container img {\n max-width: 100%;\n height: auto;\n display: block;\n border-radius: 4px;\n }\n \n /* Loading State */\n .image-loading {\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n padding: 48px 24px;\n background: ${cssManager.bdTheme('#fafafa', '#0a0a0a')};\n }\n \n .loading-spinner {\n width: 32px;\n height: 32px;\n border: 3px solid ${cssManager.bdTheme('#e5e7eb', '#374151')};\n border-top-color: ${cssManager.bdTheme('#6366f1', '#818cf8')};\n border-radius: 50%;\n animation: spin 0.8s linear infinite;\n margin-bottom: 12px;\n }\n \n @keyframes spin {\n to { transform: rotate(360deg); }\n }\n \n .loading-text {\n font-size: 14px;\n color: ${cssManager.bdTheme('#6b7280', '#9ca3af')};\n }\n \n /* File input hidden */\n .image-file-input {\n display: none !important;\n }\n `;\n }\n}", "import { BaseBlockHandler, type IBlockEventHandlers } from '../block.base.js';\nimport type { IBlock } from '../../wysiwyg.types.js';\nimport { cssManager } from '@design.estate/dees-element';\n\n/**\n * YouTubeBlockHandler - Handles YouTube video embedding\n * \n * Features:\n * - YouTube URL parsing and validation\n * - Video ID extraction from various YouTube URL formats\n * - Embedded iframe player\n * - Clean minimalist design\n */\nexport class YouTubeBlockHandler extends BaseBlockHandler {\n type = 'youtube';\n \n render(block: IBlock, isSelected: boolean): string {\n const videoId = block.metadata?.videoId;\n const url = block.metadata?.url || '';\n \n return `\n
    \n ${videoId ? this.renderVideo(videoId) : this.renderPlaceholder(url)}\n
    \n `;\n }\n \n private renderPlaceholder(url: string): string {\n return `\n
    \n
    \n \n \n \n
    \n
    Enter YouTube URL
    \n \n \n
    \n `;\n }\n \n private renderVideo(videoId: string): string {\n return `\n
    \n \n
    \n `;\n }\n \n setup(element: HTMLElement, block: IBlock, handlers: IBlockEventHandlers): void {\n const container = element.querySelector('.youtube-block-container') as HTMLElement;\n if (!container) return;\n \n // If video is already embedded, just handle focus/blur\n if (block.metadata?.videoId) {\n container.setAttribute('tabindex', '0');\n container.addEventListener('focus', () => handlers.onFocus());\n container.addEventListener('blur', () => handlers.onBlur());\n \n // Handle deletion\n container.addEventListener('keydown', (e) => {\n if (e.key === 'Delete' || e.key === 'Backspace') {\n e.preventDefault();\n handlers.onKeyDown(e);\n } else {\n handlers.onKeyDown(e);\n }\n });\n return;\n }\n \n // Setup placeholder interactions\n const urlInput = element.querySelector('.youtube-url-input') as HTMLInputElement;\n const embedBtn = element.querySelector('.youtube-embed-btn') as HTMLButtonElement;\n \n if (!urlInput || !embedBtn) return;\n \n // Focus management\n urlInput.addEventListener('focus', () => handlers.onFocus());\n urlInput.addEventListener('blur', () => handlers.onBlur());\n \n // Handle embed button click\n embedBtn.addEventListener('click', () => {\n this.embedVideo(urlInput.value, block, handlers);\n });\n \n // Handle Enter key in input\n urlInput.addEventListener('keydown', (e) => {\n if (e.key === 'Enter') {\n e.preventDefault();\n this.embedVideo(urlInput.value, block, handlers);\n } else if (e.key === 'Escape') {\n e.preventDefault();\n urlInput.blur();\n }\n });\n \n // Handle paste event\n urlInput.addEventListener('paste', (e) => {\n // Allow paste to complete first\n setTimeout(() => {\n const pastedUrl = urlInput.value;\n if (this.extractYouTubeVideoId(pastedUrl)) {\n // Auto-embed if valid YouTube URL was pasted\n this.embedVideo(pastedUrl, block, handlers);\n }\n }, 0);\n });\n \n // Update URL in metadata as user types\n urlInput.addEventListener('input', () => {\n if (!block.metadata) block.metadata = {};\n block.metadata.url = urlInput.value;\n });\n }\n \n private embedVideo(url: string, block: IBlock, handlers: IBlockEventHandlers): void {\n const videoId = this.extractYouTubeVideoId(url);\n \n if (!videoId) {\n // Could show an error message here\n console.error('Invalid YouTube URL');\n return;\n }\n \n // Update block metadata\n if (!block.metadata) block.metadata = {};\n block.metadata.videoId = videoId;\n block.metadata.url = url;\n \n // Set content as video title (could be fetched from API in the future)\n block.content = `YouTube Video: ${videoId}`;\n \n // Request immediate UI update to show embedded video\n handlers.onRequestUpdate?.();\n }\n \n private extractYouTubeVideoId(url: string): string | null {\n // Handle various YouTube URL formats\n const patterns = [\n /(?:youtube\\.com\\/(?:[^\\/]+\\/.+\\/|(?:v|e(?:mbed)?)\\/|.*[?&]v=)|youtu\\.be\\/)([^\"&?\\/ ]{11})/,\n /youtube\\.com\\/embed\\/([^\"&?\\/ ]{11})/,\n /youtube\\.com\\/watch\\?v=([^\"&?\\/ ]{11})/,\n /youtu\\.be\\/([^\"&?\\/ ]{11})/\n ];\n \n for (const pattern of patterns) {\n const match = url.match(pattern);\n if (match) {\n return match[1];\n }\n }\n \n return null;\n }\n \n private escapeHtml(text: string): string {\n const div = document.createElement('div');\n div.textContent = text;\n return div.innerHTML;\n }\n \n getContent(element: HTMLElement): string {\n // Content is the video description/title\n const block = this.getBlockFromElement(element);\n return block?.content || '';\n }\n \n setContent(element: HTMLElement, content: string): void {\n // Content is the video description/title\n const block = this.getBlockFromElement(element);\n if (block) {\n block.content = content;\n }\n }\n \n private getBlockFromElement(element: HTMLElement): IBlock | null {\n const container = element.querySelector('.youtube-block-container');\n const blockId = container?.getAttribute('data-block-id');\n if (!blockId) return null;\n \n // Simplified version - in real implementation would need access to block data\n return {\n id: blockId,\n type: 'youtube',\n content: '',\n metadata: {}\n };\n }\n \n getCursorPosition(element: HTMLElement): number | null {\n return null; // YouTube blocks don't have cursor position\n }\n \n setCursorToStart(element: HTMLElement): void {\n this.focus(element);\n }\n \n setCursorToEnd(element: HTMLElement): void {\n this.focus(element);\n }\n \n focus(element: HTMLElement): void {\n const container = element.querySelector('.youtube-block-container') as HTMLElement;\n const urlInput = element.querySelector('.youtube-url-input') as HTMLInputElement;\n \n if (urlInput) {\n urlInput.focus();\n } else if (container) {\n container.focus();\n }\n }\n \n focusWithCursor(element: HTMLElement, position: 'start' | 'end' | number = 'end'): void {\n this.focus(element);\n }\n \n getSplitContent(element: HTMLElement): { before: string; after: string } | null {\n return null; // YouTube blocks can't be split\n }\n \n getStyles(): string {\n return `\n /* YouTube Block Container */\n .youtube-block-container {\n position: relative;\n margin: 12px 0;\n border-radius: 6px;\n overflow: hidden;\n transition: all 0.15s ease;\n outline: none;\n }\n \n .youtube-block-container.selected {\n box-shadow: 0 0 0 2px ${cssManager.bdTheme('#6366f1', '#818cf8')};\n }\n \n /* YouTube Placeholder */\n .youtube-placeholder {\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n padding: 32px 24px;\n border: 1px solid ${cssManager.bdTheme('#e5e7eb', '#374151')};\n border-radius: 6px;\n background: ${cssManager.bdTheme('#fafafa', '#0a0a0a')};\n gap: 12px;\n }\n \n .placeholder-icon {\n color: ${cssManager.bdTheme('#dc2626', '#ef4444')};\n opacity: 0.8;\n }\n \n .placeholder-text {\n font-size: 14px;\n font-weight: 500;\n color: ${cssManager.bdTheme('#374151', '#e5e7eb')};\n }\n \n .youtube-url-input {\n width: 100%;\n max-width: 400px;\n padding: 8px 12px;\n border: 1px solid ${cssManager.bdTheme('#e5e7eb', '#374151')};\n border-radius: 4px;\n background: ${cssManager.bdTheme('#ffffff', '#111827')};\n color: ${cssManager.bdTheme('#111827', '#f9fafb')};\n font-size: 13px;\n font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;\n transition: all 0.15s ease;\n outline: none;\n }\n \n .youtube-url-input:focus {\n border-color: ${cssManager.bdTheme('#6b7280', '#9ca3af')};\n background: ${cssManager.bdTheme('#ffffff', '#1f2937')};\n }\n \n .youtube-url-input::placeholder {\n color: ${cssManager.bdTheme('#9ca3af', '#4b5563')};\n }\n \n .youtube-embed-btn {\n padding: 6px 16px;\n background: ${cssManager.bdTheme('#111827', '#f9fafb')};\n color: ${cssManager.bdTheme('#f9fafb', '#111827')};\n border: 1px solid transparent;\n border-radius: 4px;\n font-size: 13px;\n font-weight: 500;\n font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;\n cursor: pointer;\n transition: all 0.15s ease;\n outline: none;\n }\n \n .youtube-embed-btn:hover {\n background: ${cssManager.bdTheme('#374151', '#e5e7eb')};\n }\n \n .youtube-embed-btn:active {\n transform: scale(0.98);\n }\n \n /* YouTube Container */\n .youtube-container {\n position: relative;\n width: 100%;\n padding-bottom: 56.25%; /* 16:9 aspect ratio */\n background: ${cssManager.bdTheme('#000000', '#000000')};\n }\n \n .youtube-container iframe {\n position: absolute;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n border: 0;\n border-radius: 6px;\n }\n `;\n }\n}", "import { BaseBlockHandler, type IBlockEventHandlers } from '../block.base.js';\nimport type { IBlock } from '../../wysiwyg.types.js';\nimport { cssManager } from '@design.estate/dees-element';\n\n/**\n * AttachmentBlockHandler - Handles file attachments\n * \n * Features:\n * - Multiple file upload support\n * - Click to upload or drag and drop\n * - File type icons\n * - Remove individual files\n * - Base64 encoding (TODO: server upload in production)\n */\nexport class AttachmentBlockHandler extends BaseBlockHandler {\n type = 'attachment';\n \n render(block: IBlock, isSelected: boolean): string {\n const files = block.metadata?.files || [];\n \n return `\n
    \n
    \n
    \uD83D\uDCCE
    \n
    File Attachments
    \n
    \n
    \n ${files.length > 0 ? this.renderFiles(files) : this.renderPlaceholder()}\n
    \n \n ${files.length > 0 ? '' : ''}\n
    \n `;\n }\n \n private renderPlaceholder(): string {\n return `\n
    \n
    Click to add files
    \n
    or drag and drop
    \n
    \n `;\n }\n \n private renderFiles(files: any[]): string {\n return files.map((file: any) => `\n
    \n
    ${this.getFileIcon(file.type)}
    \n
    \n
    ${this.escapeHtml(file.name)}
    \n
    ${this.formatFileSize(file.size)}
    \n
    \n \n
    \n `).join('');\n }\n \n setup(element: HTMLElement, block: IBlock, handlers: IBlockEventHandlers): void {\n const container = element.querySelector('.attachment-block-container') as HTMLElement;\n const fileInput = element.querySelector('.attachment-file-input') as HTMLInputElement;\n \n if (!container || !fileInput) {\n console.error('AttachmentBlockHandler: Could not find required elements');\n return;\n }\n \n // Initialize files array if needed\n if (!block.metadata) block.metadata = {};\n if (!block.metadata.files) block.metadata.files = [];\n \n // Click to upload on placeholder\n const placeholder = container.querySelector('.attachment-placeholder');\n if (placeholder) {\n placeholder.addEventListener('click', (e) => {\n e.preventDefault();\n e.stopPropagation();\n fileInput.click();\n });\n }\n \n // Add more files button\n const addMoreBtn = container.querySelector('.add-more-files') as HTMLButtonElement;\n if (addMoreBtn) {\n addMoreBtn.addEventListener('click', (e) => {\n e.preventDefault();\n e.stopPropagation();\n fileInput.click();\n });\n }\n \n // File input change\n fileInput.addEventListener('change', async (e) => {\n const input = e.target as HTMLInputElement;\n const files = input.files;\n if (files && files.length > 0) {\n await this.handleFileAttachments(files, block, handlers);\n input.value = ''; // Clear input for next selection\n }\n });\n \n // Remove file buttons\n container.addEventListener('click', (e) => {\n const target = e.target as HTMLElement;\n if (target.classList.contains('remove-file')) {\n e.preventDefault();\n e.stopPropagation();\n const fileId = target.getAttribute('data-file-id');\n if (fileId) {\n this.removeFile(fileId, block, handlers);\n }\n }\n });\n \n // Drag and drop\n container.addEventListener('dragover', (e) => {\n e.preventDefault();\n e.stopPropagation();\n container.classList.add('drag-over');\n });\n \n container.addEventListener('dragleave', (e) => {\n e.preventDefault();\n e.stopPropagation();\n container.classList.remove('drag-over');\n });\n \n container.addEventListener('drop', async (e) => {\n e.preventDefault();\n e.stopPropagation();\n container.classList.remove('drag-over');\n \n const files = e.dataTransfer?.files;\n if (files && files.length > 0) {\n await this.handleFileAttachments(files, block, handlers);\n }\n });\n \n // Focus/blur\n container.addEventListener('focus', () => handlers.onFocus());\n container.addEventListener('blur', () => handlers.onBlur());\n \n // Keyboard navigation\n container.addEventListener('keydown', (e) => {\n if (e.key === 'Delete' || e.key === 'Backspace') {\n // Only remove all files if container is focused, not when removing individual files\n if (document.activeElement === container && block.metadata?.files?.length > 0) {\n e.preventDefault();\n block.metadata.files = [];\n handlers.onRequestUpdate?.();\n return;\n }\n }\n handlers.onKeyDown(e);\n });\n }\n \n private async handleFileAttachments(\n files: FileList,\n block: IBlock,\n handlers: IBlockEventHandlers\n ): Promise {\n if (!block.metadata) block.metadata = {};\n if (!block.metadata.files) block.metadata.files = [];\n \n for (const file of Array.from(files)) {\n try {\n const dataUrl = await this.fileToDataUrl(file);\n const fileData = {\n id: this.generateId(),\n name: file.name,\n size: file.size,\n type: file.type,\n data: dataUrl\n };\n \n block.metadata.files.push(fileData);\n } catch (error) {\n console.error('Failed to attach file:', file.name, error);\n }\n }\n \n // Update block content with file count\n block.content = `${block.metadata.files.length} file${block.metadata.files.length !== 1 ? 's' : ''} attached`;\n \n // Request UI update\n handlers.onRequestUpdate?.();\n }\n \n private removeFile(fileId: string, block: IBlock, handlers: IBlockEventHandlers): void {\n if (!block.metadata?.files) return;\n \n block.metadata.files = block.metadata.files.filter((f: any) => f.id !== fileId);\n \n // Update content\n block.content = block.metadata.files.length > 0 \n ? `${block.metadata.files.length} file${block.metadata.files.length !== 1 ? 's' : ''} attached`\n : '';\n \n // Request UI update\n handlers.onRequestUpdate?.();\n }\n \n private fileToDataUrl(file: File): Promise {\n return new Promise((resolve, reject) => {\n const reader = new FileReader();\n reader.onload = (e) => {\n const result = e.target?.result;\n if (typeof result === 'string') {\n resolve(result);\n } else {\n reject(new Error('Failed to read file'));\n }\n };\n reader.onerror = reject;\n reader.readAsDataURL(file);\n });\n }\n \n private getFileIcon(mimeType: string): string {\n if (mimeType.startsWith('image/')) return '\uD83D\uDDBC\uFE0F';\n if (mimeType.startsWith('video/')) return '\uD83C\uDFA5';\n if (mimeType.startsWith('audio/')) return '\uD83C\uDFB5';\n if (mimeType.includes('pdf')) return '\uD83D\uDCC4';\n if (mimeType.includes('zip') || mimeType.includes('rar') || mimeType.includes('tar')) return '\uD83D\uDDC4\uFE0F';\n if (mimeType.includes('sheet')) return '\uD83D\uDCCA';\n if (mimeType.includes('document') || mimeType.includes('msword')) return '\uD83D\uDCDD';\n if (mimeType.includes('presentation')) return '\uD83D\uDCCB';\n if (mimeType.includes('text')) return '\uD83D\uDCC3';\n return '\uD83D\uDCC1';\n }\n \n private formatFileSize(bytes: number): string {\n if (bytes === 0) return '0 Bytes';\n const k = 1024;\n const sizes = ['Bytes', 'KB', 'MB', 'GB'];\n const i = Math.floor(Math.log(bytes) / Math.log(k));\n return parseFloat((bytes / Math.pow(k, i)).toFixed(2)) + ' ' + sizes[i];\n }\n \n private generateId(): string {\n return `file-${Date.now()}-${Math.random().toString(36).substr(2, 9)}`;\n }\n \n private escapeHtml(text: string): string {\n const div = document.createElement('div');\n div.textContent = text;\n return div.innerHTML;\n }\n \n getContent(element: HTMLElement): string {\n // Content is the description of attached files\n const block = this.getBlockFromElement(element);\n return block?.content || '';\n }\n \n setContent(element: HTMLElement, content: string): void {\n // Content is the description of attached files\n const block = this.getBlockFromElement(element);\n if (block) {\n block.content = content;\n }\n }\n \n private getBlockFromElement(element: HTMLElement): IBlock | null {\n const container = element.querySelector('.attachment-block-container');\n const blockId = container?.getAttribute('data-block-id');\n if (!blockId) return null;\n \n // Simplified version - in real implementation would need access to block data\n return {\n id: blockId,\n type: 'attachment',\n content: '',\n metadata: {}\n };\n }\n \n getCursorPosition(element: HTMLElement): number | null {\n return null; // Attachment blocks don't have cursor position\n }\n \n setCursorToStart(element: HTMLElement): void {\n this.focus(element);\n }\n \n setCursorToEnd(element: HTMLElement): void {\n this.focus(element);\n }\n \n focus(element: HTMLElement): void {\n const container = element.querySelector('.attachment-block-container') as HTMLElement;\n container?.focus();\n }\n \n focusWithCursor(element: HTMLElement, position: 'start' | 'end' | number = 'end'): void {\n this.focus(element);\n }\n \n getSplitContent(element: HTMLElement): { before: string; after: string } | null {\n return null; // Attachment blocks can't be split\n }\n \n getStyles(): string {\n return `\n /* Attachment Block Container */\n .attachment-block-container {\n position: relative;\n margin: 12px 0;\n border: 1px solid ${cssManager.bdTheme('#e5e7eb', '#374151')};\n border-radius: 6px;\n overflow: hidden;\n transition: all 0.15s ease;\n outline: none;\n background: ${cssManager.bdTheme('#ffffff', '#111827')};\n }\n \n .attachment-block-container.selected {\n border-color: ${cssManager.bdTheme('#9ca3af', '#6b7280')};\n }\n \n .attachment-block-container.drag-over {\n background: ${cssManager.bdTheme('#f9fafb', '#1f2937')};\n border-color: ${cssManager.bdTheme('#6366f1', '#818cf8')};\n }\n \n /* Header */\n .attachment-header {\n display: flex;\n align-items: center;\n gap: 8px;\n padding: 12px 16px;\n border-bottom: 1px solid ${cssManager.bdTheme('#e5e7eb', '#374151')};\n background: ${cssManager.bdTheme('#f9fafb', '#0a0a0a')};\n }\n \n .attachment-icon {\n font-size: 18px;\n opacity: 0.8;\n }\n \n .attachment-title {\n font-size: 14px;\n font-weight: 500;\n color: ${cssManager.bdTheme('#374151', '#e5e7eb')};\n }\n \n /* File List */\n .attachment-list {\n padding: 8px;\n min-height: 80px;\n display: flex;\n flex-direction: column;\n gap: 4px;\n }\n \n /* Placeholder */\n .attachment-placeholder {\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n padding: 24px;\n cursor: pointer;\n transition: all 0.15s ease;\n }\n \n .attachment-placeholder:hover {\n background: ${cssManager.bdTheme('#f9fafb', '#1f2937')};\n }\n \n .placeholder-text {\n font-size: 14px;\n color: ${cssManager.bdTheme('#6b7280', '#9ca3af')};\n margin-bottom: 4px;\n }\n \n .placeholder-hint {\n font-size: 12px;\n color: ${cssManager.bdTheme('#9ca3af', '#6b7280')};\n }\n \n /* File Items */\n .attachment-item {\n display: flex;\n align-items: center;\n gap: 12px;\n padding: 8px 12px;\n background: ${cssManager.bdTheme('#f9fafb', '#1f2937')};\n border: 1px solid ${cssManager.bdTheme('#e5e7eb', '#374151')};\n border-radius: 4px;\n transition: all 0.15s ease;\n }\n \n .attachment-item:hover {\n background: ${cssManager.bdTheme('#f3f4f6', '#374151')};\n }\n \n .file-icon {\n font-size: 20px;\n flex-shrink: 0;\n }\n \n .file-info {\n flex: 1;\n min-width: 0;\n }\n \n .file-name {\n font-size: 13px;\n font-weight: 500;\n color: ${cssManager.bdTheme('#111827', '#f9fafb')};\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n }\n \n .file-size {\n font-size: 11px;\n color: ${cssManager.bdTheme('#6b7280', '#9ca3af')};\n margin-top: 2px;\n }\n \n .remove-file {\n flex-shrink: 0;\n width: 24px;\n height: 24px;\n display: flex;\n align-items: center;\n justify-content: center;\n background: transparent;\n border: 1px solid transparent;\n border-radius: 4px;\n color: ${cssManager.bdTheme('#6b7280', '#9ca3af')};\n font-size: 18px;\n line-height: 1;\n cursor: pointer;\n transition: all 0.15s ease;\n padding: 0;\n }\n \n .remove-file:hover {\n background: ${cssManager.bdTheme('#fee2e2', '#991b1b')};\n border-color: ${cssManager.bdTheme('#fca5a5', '#dc2626')};\n color: ${cssManager.bdTheme('#dc2626', '#fca5a5')};\n }\n \n /* Add More Files Button */\n .add-more-files {\n margin: 8px;\n padding: 6px 12px;\n background: transparent;\n border: 1px solid ${cssManager.bdTheme('#e5e7eb', '#374151')};\n border-radius: 4px;\n font-size: 13px;\n color: ${cssManager.bdTheme('#374151', '#e5e7eb')};\n cursor: pointer;\n transition: all 0.15s ease;\n font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;\n }\n \n .add-more-files:hover {\n background: ${cssManager.bdTheme('#f9fafb', '#1f2937')};\n border-color: ${cssManager.bdTheme('#d1d5db', '#4b5563')};\n }\n \n /* Hidden file input */\n .attachment-file-input {\n display: none !important;\n }\n `;\n }\n}", "import { BaseBlockHandler, type IBlockEventHandlers } from '../block.base.js';\nimport type { IBlock } from '../../wysiwyg.types.js';\nimport { cssManager } from '@design.estate/dees-element';\n\nexport class DividerBlockHandler extends BaseBlockHandler {\n type = 'divider';\n \n render(block: IBlock, isSelected: boolean): string {\n const selectedClass = isSelected ? ' selected' : '';\n return `\n
    \n
    \n
    \n `;\n }\n \n setup(element: HTMLElement, block: IBlock, handlers: IBlockEventHandlers): void {\n const dividerBlock = element.querySelector('.block.divider') as HTMLDivElement;\n if (!dividerBlock) return;\n \n // Handle click to select\n dividerBlock.addEventListener('click', (e) => {\n e.stopPropagation();\n // Focus will trigger the selection\n dividerBlock.focus();\n // Ensure focus handler is called immediately\n handlers.onFocus?.();\n });\n \n // Handle focus/blur\n dividerBlock.addEventListener('focus', () => {\n handlers.onFocus?.();\n });\n \n dividerBlock.addEventListener('blur', () => {\n handlers.onBlur?.();\n });\n \n // Handle keyboard events\n dividerBlock.addEventListener('keydown', (e) => {\n if (e.key === 'Backspace' || e.key === 'Delete') {\n e.preventDefault();\n // Let the keyboard handler in the parent component handle the deletion\n handlers.onKeyDown?.(e);\n } else {\n // Handle navigation keys\n handlers.onKeyDown?.(e);\n }\n });\n }\n \n getStyles(): string {\n return `\n .block.divider {\n padding: 8px 0;\n margin: 16px 0;\n cursor: pointer;\n position: relative;\n border-radius: 4px;\n transition: all 0.15s ease;\n }\n\n .block.divider:focus {\n outline: none;\n }\n\n .block.divider.selected {\n background: ${cssManager.bdTheme('rgba(0, 102, 204, 0.05)', 'rgba(77, 148, 255, 0.08)')};\n box-shadow: inset 0 0 0 2px ${cssManager.bdTheme('rgba(0, 102, 204, 0.2)', 'rgba(77, 148, 255, 0.2)')};\n }\n\n .block.divider hr {\n border: none;\n border-top: 1px solid ${cssManager.bdTheme('#e0e0e0', '#333')};\n margin: 0;\n pointer-events: none;\n }\n `;\n }\n}", "import { BaseBlockHandler, type IBlockEventHandlers } from '../block.base.js';\nimport type { IBlock } from '../../wysiwyg.types.js';\nimport { cssManager } from '@design.estate/dees-element';\n\n/**\n * MarkdownBlockHandler - Handles markdown content with preview/edit toggle\n * \n * Features:\n * - Live markdown preview\n * - Edit/preview mode toggle\n * - Syntax highlighting in edit mode\n * - Common markdown shortcuts\n * - Auto-save on mode switch\n */\nexport class MarkdownBlockHandler extends BaseBlockHandler {\n type = 'markdown';\n \n render(block: IBlock, isSelected: boolean): string {\n const isEditMode = block.metadata?.isEditMode ?? true;\n const content = block.content || '';\n \n return `\n
    \n
    \n
    M\u2193
    \n
    Markdown
    \n \n
    \n
    \n ${isEditMode ? this.renderEditor(content) : this.renderPreview(content)}\n
    \n
    \n `;\n }\n \n private renderEditor(content: string): string {\n return `\n \n `;\n }\n \n private renderPreview(content: string): string {\n const html = this.parseMarkdown(content);\n return `\n
    \n ${html || '
    No content to preview
    '}\n
    \n `;\n }\n \n setup(element: HTMLElement, block: IBlock, handlers: IBlockEventHandlers): void {\n const container = element.querySelector('.markdown-block-container') as HTMLElement;\n const toggleBtn = element.querySelector('.markdown-toggle-mode') as HTMLButtonElement;\n \n if (!container || !toggleBtn) {\n console.error('MarkdownBlockHandler: Could not find required elements');\n return;\n }\n \n // Initialize metadata\n if (!block.metadata) block.metadata = {};\n if (block.metadata.isEditMode === undefined) block.metadata.isEditMode = true;\n \n // Toggle mode button\n toggleBtn.addEventListener('click', (e) => {\n e.preventDefault();\n e.stopPropagation();\n \n // Save current content if in edit mode\n if (block.metadata.isEditMode) {\n const editor = container.querySelector('.markdown-editor') as HTMLTextAreaElement;\n if (editor) {\n block.content = editor.value;\n }\n }\n \n // Toggle mode\n block.metadata.isEditMode = !block.metadata.isEditMode;\n \n // Request UI update\n handlers.onRequestUpdate?.();\n });\n \n // Setup based on mode\n if (block.metadata.isEditMode) {\n this.setupEditor(element, block, handlers);\n } else {\n this.setupPreview(element, block, handlers);\n }\n }\n \n private setupEditor(element: HTMLElement, block: IBlock, handlers: IBlockEventHandlers): void {\n const editor = element.querySelector('.markdown-editor') as HTMLTextAreaElement;\n if (!editor) return;\n \n // Focus handling\n editor.addEventListener('focus', () => handlers.onFocus());\n editor.addEventListener('blur', () => handlers.onBlur());\n \n // Content changes\n editor.addEventListener('input', () => {\n block.content = editor.value;\n });\n \n // Keyboard shortcuts\n editor.addEventListener('keydown', (e) => {\n // Tab handling for indentation\n if (e.key === 'Tab') {\n e.preventDefault();\n const start = editor.selectionStart;\n const end = editor.selectionEnd;\n const value = editor.value;\n \n if (e.shiftKey) {\n // Unindent\n const beforeCursor = value.substring(0, start);\n const lastNewline = beforeCursor.lastIndexOf('\\n');\n const lineStart = lastNewline + 1;\n const lineContent = value.substring(lineStart, start);\n \n if (lineContent.startsWith(' ')) {\n editor.value = value.substring(0, lineStart) + lineContent.substring(2) + value.substring(start);\n editor.selectionStart = editor.selectionEnd = start - 2;\n }\n } else {\n // Indent\n editor.value = value.substring(0, start) + ' ' + value.substring(end);\n editor.selectionStart = editor.selectionEnd = start + 2;\n }\n \n block.content = editor.value;\n return;\n }\n \n // Bold shortcut (Ctrl/Cmd + B)\n if ((e.ctrlKey || e.metaKey) && e.key === 'b') {\n e.preventDefault();\n this.wrapSelection(editor, '**', '**');\n block.content = editor.value;\n return;\n }\n \n // Italic shortcut (Ctrl/Cmd + I)\n if ((e.ctrlKey || e.metaKey) && e.key === 'i') {\n e.preventDefault();\n this.wrapSelection(editor, '_', '_');\n block.content = editor.value;\n return;\n }\n \n // Link shortcut (Ctrl/Cmd + K)\n if ((e.ctrlKey || e.metaKey) && e.key === 'k') {\n e.preventDefault();\n this.insertLink(editor);\n block.content = editor.value;\n return;\n }\n \n // Pass other key events to handlers\n handlers.onKeyDown(e);\n });\n \n // Auto-resize\n this.autoResize(editor);\n editor.addEventListener('input', () => this.autoResize(editor));\n }\n \n private setupPreview(element: HTMLElement, block: IBlock, handlers: IBlockEventHandlers): void {\n const container = element.querySelector('.markdown-block-container') as HTMLElement;\n const preview = element.querySelector('.markdown-preview') as HTMLElement;\n \n if (!container || !preview) return;\n \n // Make preview focusable\n preview.setAttribute('tabindex', '0');\n \n // Focus handling\n preview.addEventListener('focus', () => handlers.onFocus());\n preview.addEventListener('blur', () => handlers.onBlur());\n \n // Keyboard navigation\n preview.addEventListener('keydown', (e) => {\n // Switch to edit mode on Enter\n if (e.key === 'Enter' && !e.shiftKey) {\n e.preventDefault();\n block.metadata.isEditMode = true;\n handlers.onRequestUpdate?.();\n return;\n }\n \n handlers.onKeyDown(e);\n });\n }\n \n private wrapSelection(editor: HTMLTextAreaElement, before: string, after: string): void {\n const start = editor.selectionStart;\n const end = editor.selectionEnd;\n const selectedText = editor.value.substring(start, end);\n const replacement = before + (selectedText || 'text') + after;\n \n editor.value = editor.value.substring(0, start) + replacement + editor.value.substring(end);\n \n if (selectedText) {\n editor.selectionStart = start;\n editor.selectionEnd = start + replacement.length;\n } else {\n editor.selectionStart = start + before.length;\n editor.selectionEnd = start + before.length + 4; // 'text'.length\n }\n \n editor.focus();\n }\n \n private insertLink(editor: HTMLTextAreaElement): void {\n const start = editor.selectionStart;\n const end = editor.selectionEnd;\n const selectedText = editor.value.substring(start, end);\n const linkText = selectedText || 'link text';\n const replacement = `[${linkText}](url)`;\n \n editor.value = editor.value.substring(0, start) + replacement + editor.value.substring(end);\n \n // Select the URL part\n editor.selectionStart = start + linkText.length + 3; // '[linktext]('.length\n editor.selectionEnd = start + linkText.length + 6; // '[linktext](url'.length\n \n editor.focus();\n }\n \n private autoResize(editor: HTMLTextAreaElement): void {\n editor.style.height = 'auto';\n editor.style.height = editor.scrollHeight + 'px';\n }\n \n private parseMarkdown(markdown: string): string {\n // Basic markdown parsing - in production, use a proper markdown parser\n let html = this.escapeHtml(markdown);\n \n // Headers\n html = html.replace(/^### (.+)$/gm, '

    $1

    ');\n html = html.replace(/^## (.+)$/gm, '

    $1

    ');\n html = html.replace(/^# (.+)$/gm, '

    $1

    ');\n \n // Bold\n html = html.replace(/\\*\\*(.+?)\\*\\*/g, '$1');\n html = html.replace(/__(.+?)__/g, '$1');\n \n // Italic\n html = html.replace(/\\*(.+?)\\*/g, '$1');\n html = html.replace(/_(.+?)_/g, '$1');\n \n // Code blocks\n html = html.replace(/```([\\s\\S]*?)```/g, '
    $1
    ');\n \n // Inline code\n html = html.replace(/`(.+?)`/g, '$1');\n \n // Links\n html = html.replace(/\\[([^\\]]+)\\]\\(([^)]+)\\)/g, '$1');\n \n // Lists\n html = html.replace(/^\\* (.+)$/gm, '
  • $1
  • ');\n html = html.replace(/^- (.+)$/gm, '
  • $1
  • ');\n html = html.replace(/^\\d+\\. (.+)$/gm, '
  • $1
  • ');\n \n // Wrap consecutive list items\n html = html.replace(/(
  • .*<\\/li>\\n?)+/g, (match) => {\n return '
      ' + match + '
    ';\n });\n \n // Paragraphs\n html = html.replace(/\\n\\n/g, '

    ');\n html = '

    ' + html + '

    ';\n \n // Clean up empty paragraphs\n html = html.replace(/

    <\\/p>/g, '');\n html = html.replace(/

    ()/g, '$1');\n html = html.replace(/(<\\/h[1-3]>)<\\/p>/g, '$1');\n html = html.replace(/

    (

      )/g, '$1');\n html = html.replace(/(<\\/ul>)<\\/p>/g, '$1');\n html = html.replace(/

      (

      )/g, '$1');\n    html = html.replace(/(<\\/pre>)<\\/p>/g, '$1');\n    \n    return html;\n  }\n  \n  private escapeHtml(text: string): string {\n    const div = document.createElement('div');\n    div.textContent = text;\n    return div.innerHTML;\n  }\n  \n  getContent(element: HTMLElement): string {\n    const editor = element.querySelector('.markdown-editor') as HTMLTextAreaElement;\n    if (editor) {\n      return editor.value;\n    }\n    \n    // If in preview mode, return the stored content\n    const container = element.querySelector('.markdown-block-container');\n    const blockId = container?.getAttribute('data-block-id');\n    // In real implementation, would need access to block data\n    return '';\n  }\n  \n  setContent(element: HTMLElement, content: string): void {\n    const editor = element.querySelector('.markdown-editor') as HTMLTextAreaElement;\n    if (editor) {\n      editor.value = content;\n      this.autoResize(editor);\n    }\n  }\n  \n  getCursorPosition(element: HTMLElement): number | null {\n    const editor = element.querySelector('.markdown-editor') as HTMLTextAreaElement;\n    return editor ? editor.selectionStart : null;\n  }\n  \n  setCursorToStart(element: HTMLElement): void {\n    const editor = element.querySelector('.markdown-editor') as HTMLTextAreaElement;\n    if (editor) {\n      editor.selectionStart = editor.selectionEnd = 0;\n      editor.focus();\n    } else {\n      this.focus(element);\n    }\n  }\n  \n  setCursorToEnd(element: HTMLElement): void {\n    const editor = element.querySelector('.markdown-editor') as HTMLTextAreaElement;\n    if (editor) {\n      const length = editor.value.length;\n      editor.selectionStart = editor.selectionEnd = length;\n      editor.focus();\n    } else {\n      this.focus(element);\n    }\n  }\n  \n  focus(element: HTMLElement): void {\n    const editor = element.querySelector('.markdown-editor') as HTMLTextAreaElement;\n    if (editor) {\n      editor.focus();\n    } else {\n      const preview = element.querySelector('.markdown-preview') as HTMLElement;\n      preview?.focus();\n    }\n  }\n  \n  focusWithCursor(element: HTMLElement, position: 'start' | 'end' | number = 'end'): void {\n    const editor = element.querySelector('.markdown-editor') as HTMLTextAreaElement;\n    if (editor) {\n      if (position === 'start') {\n        this.setCursorToStart(element);\n      } else if (position === 'end') {\n        this.setCursorToEnd(element);\n      } else if (typeof position === 'number') {\n        editor.selectionStart = editor.selectionEnd = position;\n        editor.focus();\n      }\n    } else {\n      this.focus(element);\n    }\n  }\n  \n  getSplitContent(element: HTMLElement): { before: string; after: string } | null {\n    const editor = element.querySelector('.markdown-editor') as HTMLTextAreaElement;\n    if (!editor) return null;\n    \n    const cursorPos = editor.selectionStart;\n    return {\n      before: editor.value.substring(0, cursorPos),\n      after: editor.value.substring(cursorPos)\n    };\n  }\n  \n  getStyles(): string {\n    return `\n      /* Markdown Block Container */\n      .markdown-block-container {\n        position: relative;\n        margin: 12px 0;\n        border: 1px solid ${cssManager.bdTheme('#e5e7eb', '#374151')};\n        border-radius: 6px;\n        overflow: hidden;\n        transition: all 0.15s ease;\n        background: ${cssManager.bdTheme('#ffffff', '#111827')};\n      }\n      \n      .markdown-block-container.selected {\n        border-color: ${cssManager.bdTheme('#9ca3af', '#6b7280')};\n      }\n      \n      /* Header */\n      .markdown-header {\n        display: flex;\n        align-items: center;\n        gap: 8px;\n        padding: 8px 12px;\n        border-bottom: 1px solid ${cssManager.bdTheme('#e5e7eb', '#374151')};\n        background: ${cssManager.bdTheme('#f9fafb', '#0a0a0a')};\n      }\n      \n      .markdown-icon {\n        font-size: 14px;\n        font-weight: 600;\n        opacity: 0.8;\n      }\n      \n      .markdown-title {\n        flex: 1;\n        font-size: 13px;\n        font-weight: 500;\n        color: ${cssManager.bdTheme('#374151', '#e5e7eb')};\n      }\n      \n      .markdown-toggle-mode {\n        padding: 4px 8px;\n        background: transparent;\n        border: 1px solid ${cssManager.bdTheme('#e5e7eb', '#374151')};\n        border-radius: 4px;\n        font-size: 14px;\n        cursor: pointer;\n        transition: all 0.15s ease;\n      }\n      \n      .markdown-toggle-mode:hover {\n        background: ${cssManager.bdTheme('#f3f4f6', '#1f2937')};\n        border-color: ${cssManager.bdTheme('#d1d5db', '#4b5563')};\n      }\n      \n      /* Content */\n      .markdown-content {\n        position: relative;\n        min-height: 120px;\n      }\n      \n      /* Editor */\n      .markdown-editor {\n        width: 100%;\n        min-height: 120px;\n        padding: 12px;\n        background: transparent;\n        border: none;\n        outline: none;\n        resize: none;\n        font-family: 'Monaco', 'Consolas', 'Courier New', monospace;\n        font-size: 13px;\n        line-height: 1.6;\n        color: ${cssManager.bdTheme('#1f2937', '#f3f4f6')};\n        overflow: hidden;\n      }\n      \n      .markdown-editor::placeholder {\n        color: ${cssManager.bdTheme('#9ca3af', '#6b7280')};\n      }\n      \n      /* Preview */\n      .markdown-preview {\n        padding: 12px;\n        min-height: 96px;\n        outline: none;\n        font-size: 14px;\n        line-height: 1.6;\n        color: ${cssManager.bdTheme('#1f2937', '#f3f4f6')};\n      }\n      \n      .preview-empty {\n        color: ${cssManager.bdTheme('#9ca3af', '#6b7280')};\n        font-style: italic;\n      }\n      \n      /* Markdown preview styles */\n      .markdown-preview h1 {\n        font-size: 24px;\n        font-weight: 600;\n        margin: 16px 0 8px 0;\n        color: ${cssManager.bdTheme('#111827', '#f9fafb')};\n      }\n      \n      .markdown-preview h2 {\n        font-size: 20px;\n        font-weight: 600;\n        margin: 14px 0 6px 0;\n        color: ${cssManager.bdTheme('#111827', '#f9fafb')};\n      }\n      \n      .markdown-preview h3 {\n        font-size: 18px;\n        font-weight: 600;\n        margin: 12px 0 4px 0;\n        color: ${cssManager.bdTheme('#111827', '#f9fafb')};\n      }\n      \n      .markdown-preview p {\n        margin: 8px 0;\n      }\n      \n      .markdown-preview ul,\n      .markdown-preview ol {\n        margin: 8px 0;\n        padding-left: 24px;\n      }\n      \n      .markdown-preview li {\n        margin: 4px 0;\n      }\n      \n      .markdown-preview code {\n        background: ${cssManager.bdTheme('#f3f4f6', '#1f2937')};\n        padding: 2px 4px;\n        border-radius: 3px;\n        font-family: 'Monaco', 'Consolas', 'Courier New', monospace;\n        font-size: 0.9em;\n      }\n      \n      .markdown-preview pre {\n        background: ${cssManager.bdTheme('#f3f4f6', '#1f2937')};\n        padding: 12px;\n        border-radius: 4px;\n        overflow-x: auto;\n        margin: 8px 0;\n      }\n      \n      .markdown-preview pre code {\n        background: transparent;\n        padding: 0;\n      }\n      \n      .markdown-preview strong {\n        font-weight: 600;\n        color: ${cssManager.bdTheme('#111827', '#f9fafb')};\n      }\n      \n      .markdown-preview em {\n        font-style: italic;\n      }\n      \n      .markdown-preview a {\n        color: ${cssManager.bdTheme('#3b82f6', '#60a5fa')};\n        text-decoration: none;\n      }\n      \n      .markdown-preview a:hover {\n        text-decoration: underline;\n      }\n      \n      .markdown-preview blockquote {\n        border-left: 3px solid ${cssManager.bdTheme('#e5e7eb', '#374151')};\n        padding-left: 12px;\n        margin: 8px 0;\n        color: ${cssManager.bdTheme('#6b7280', '#9ca3af')};\n      }\n    `;\n  }\n}", "import { BaseBlockHandler, type IBlockEventHandlers } from '../block.base.js';\nimport type { IBlock } from '../../wysiwyg.types.js';\nimport { cssManager } from '@design.estate/dees-element';\n\n/**\n * HTMLBlockHandler - Handles raw HTML content with preview/edit toggle\n * \n * Features:\n * - Live HTML preview (sandboxed)\n * - Edit/preview mode toggle\n * - Syntax highlighting in edit mode\n * - HTML validation hints\n * - Auto-save on mode switch\n */\nexport class HtmlBlockHandler extends BaseBlockHandler {\n  type = 'html';\n  \n  render(block: IBlock, isSelected: boolean): string {\n    const isEditMode = block.metadata?.isEditMode ?? true;\n    const content = block.content || '';\n    \n    return `\n      
      \n
      \n
      </>
      \n
      HTML
      \n \n
      \n
      \n ${isEditMode ? this.renderEditor(content) : this.renderPreview(content)}\n
      \n
      \n `;\n }\n \n private renderEditor(content: string): string {\n return `\n \n `;\n }\n \n private renderPreview(content: string): string {\n return `\n
      \n ${content || '
      No content to preview
      '}\n
      \n `;\n }\n \n setup(element: HTMLElement, block: IBlock, handlers: IBlockEventHandlers): void {\n const container = element.querySelector('.html-block-container') as HTMLElement;\n const toggleBtn = element.querySelector('.html-toggle-mode') as HTMLButtonElement;\n \n if (!container || !toggleBtn) {\n console.error('HtmlBlockHandler: Could not find required elements');\n return;\n }\n \n // Initialize metadata\n if (!block.metadata) block.metadata = {};\n if (block.metadata.isEditMode === undefined) block.metadata.isEditMode = true;\n \n // Toggle mode button\n toggleBtn.addEventListener('click', (e) => {\n e.preventDefault();\n e.stopPropagation();\n \n // Save current content if in edit mode\n if (block.metadata.isEditMode) {\n const editor = container.querySelector('.html-editor') as HTMLTextAreaElement;\n if (editor) {\n block.content = editor.value;\n }\n }\n \n // Toggle mode\n block.metadata.isEditMode = !block.metadata.isEditMode;\n \n // Request UI update\n handlers.onRequestUpdate?.();\n });\n \n // Setup based on mode\n if (block.metadata.isEditMode) {\n this.setupEditor(element, block, handlers);\n } else {\n this.setupPreview(element, block, handlers);\n }\n }\n \n private setupEditor(element: HTMLElement, block: IBlock, handlers: IBlockEventHandlers): void {\n const editor = element.querySelector('.html-editor') as HTMLTextAreaElement;\n if (!editor) return;\n \n // Focus handling\n editor.addEventListener('focus', () => handlers.onFocus());\n editor.addEventListener('blur', () => handlers.onBlur());\n \n // Content changes\n editor.addEventListener('input', () => {\n block.content = editor.value;\n this.validateHtml(editor.value);\n });\n \n // Keyboard shortcuts\n editor.addEventListener('keydown', (e) => {\n // Tab handling for indentation\n if (e.key === 'Tab') {\n e.preventDefault();\n const start = editor.selectionStart;\n const end = editor.selectionEnd;\n const value = editor.value;\n \n if (e.shiftKey) {\n // Unindent\n const beforeCursor = value.substring(0, start);\n const lastNewline = beforeCursor.lastIndexOf('\\n');\n const lineStart = lastNewline + 1;\n const lineContent = value.substring(lineStart, start);\n \n if (lineContent.startsWith(' ')) {\n editor.value = value.substring(0, lineStart) + lineContent.substring(2) + value.substring(start);\n editor.selectionStart = editor.selectionEnd = start - 2;\n }\n } else {\n // Indent\n editor.value = value.substring(0, start) + ' ' + value.substring(end);\n editor.selectionStart = editor.selectionEnd = start + 2;\n }\n \n block.content = editor.value;\n return;\n }\n \n // Auto-close tags (Ctrl/Cmd + /)\n if ((e.ctrlKey || e.metaKey) && e.key === '/') {\n e.preventDefault();\n this.autoCloseTag(editor);\n block.content = editor.value;\n return;\n }\n \n // Pass other key events to handlers\n handlers.onKeyDown(e);\n });\n \n // Auto-resize\n this.autoResize(editor);\n editor.addEventListener('input', () => this.autoResize(editor));\n }\n \n private setupPreview(element: HTMLElement, block: IBlock, handlers: IBlockEventHandlers): void {\n const container = element.querySelector('.html-block-container') as HTMLElement;\n const preview = element.querySelector('.html-preview') as HTMLElement;\n \n if (!container || !preview) return;\n \n // Make preview focusable\n preview.setAttribute('tabindex', '0');\n \n // Focus handling\n preview.addEventListener('focus', () => handlers.onFocus());\n preview.addEventListener('blur', () => handlers.onBlur());\n \n // Keyboard navigation\n preview.addEventListener('keydown', (e) => {\n // Switch to edit mode on Enter\n if (e.key === 'Enter' && !e.shiftKey) {\n e.preventDefault();\n block.metadata.isEditMode = true;\n handlers.onRequestUpdate?.();\n return;\n }\n \n handlers.onKeyDown(e);\n });\n \n // Sandbox styles and scripts in preview\n this.sandboxContent(preview);\n }\n \n private autoCloseTag(editor: HTMLTextAreaElement): void {\n const cursorPos = editor.selectionStart;\n const text = editor.value;\n \n // Find the opening tag\n let tagStart = cursorPos;\n while (tagStart > 0 && text[tagStart - 1] !== '<') {\n tagStart--;\n }\n \n if (tagStart > 0) {\n const tagContent = text.substring(tagStart, cursorPos);\n const tagMatch = tagContent.match(/^(\\w+)/);\n \n if (tagMatch) {\n const tagName = tagMatch[1];\n const closingTag = ``;\n \n // Insert closing tag\n editor.value = text.substring(0, cursorPos) + '>' + closingTag + text.substring(cursorPos);\n editor.selectionStart = editor.selectionEnd = cursorPos + 1;\n }\n }\n }\n \n private autoResize(editor: HTMLTextAreaElement): void {\n editor.style.height = 'auto';\n editor.style.height = editor.scrollHeight + 'px';\n }\n \n private validateHtml(html: string): boolean {\n // Basic HTML validation\n const openTags: string[] = [];\n const tagRegex = /<\\/?([a-zA-Z][a-zA-Z0-9]*)\\b[^>]*>/g;\n let match;\n \n while ((match = tagRegex.exec(html)) !== null) {\n const isClosing = match[0].startsWith('')) {\n // Not a self-closing tag\n openTags.push(tagName);\n }\n }\n \n if (openTags.length > 0) {\n console.warn(`Unclosed tags: ${openTags.join(', ')}`);\n return false;\n }\n \n return true;\n }\n \n private sandboxContent(preview: HTMLElement): void {\n // Remove any script tags\n const scripts = preview.querySelectorAll('script');\n scripts.forEach(script => script.remove());\n \n // Remove event handlers\n const allElements = preview.querySelectorAll('*');\n allElements.forEach(el => {\n // Remove all on* attributes\n Array.from(el.attributes).forEach(attr => {\n if (attr.name.startsWith('on')) {\n el.removeAttribute(attr.name);\n }\n });\n });\n \n // Prevent forms from submitting\n const forms = preview.querySelectorAll('form');\n forms.forEach(form => {\n form.addEventListener('submit', (e) => {\n e.preventDefault();\n e.stopPropagation();\n });\n });\n }\n \n private escapeHtml(text: string): string {\n const div = document.createElement('div');\n div.textContent = text;\n return div.innerHTML;\n }\n \n getContent(element: HTMLElement): string {\n const editor = element.querySelector('.html-editor') as HTMLTextAreaElement;\n if (editor) {\n return editor.value;\n }\n \n // If in preview mode, return the stored content\n const container = element.querySelector('.html-block-container');\n const blockId = container?.getAttribute('data-block-id');\n // In real implementation, would need access to block data\n return '';\n }\n \n setContent(element: HTMLElement, content: string): void {\n const editor = element.querySelector('.html-editor') as HTMLTextAreaElement;\n if (editor) {\n editor.value = content;\n this.autoResize(editor);\n }\n }\n \n getCursorPosition(element: HTMLElement): number | null {\n const editor = element.querySelector('.html-editor') as HTMLTextAreaElement;\n return editor ? editor.selectionStart : null;\n }\n \n setCursorToStart(element: HTMLElement): void {\n const editor = element.querySelector('.html-editor') as HTMLTextAreaElement;\n if (editor) {\n editor.selectionStart = editor.selectionEnd = 0;\n editor.focus();\n } else {\n this.focus(element);\n }\n }\n \n setCursorToEnd(element: HTMLElement): void {\n const editor = element.querySelector('.html-editor') as HTMLTextAreaElement;\n if (editor) {\n const length = editor.value.length;\n editor.selectionStart = editor.selectionEnd = length;\n editor.focus();\n } else {\n this.focus(element);\n }\n }\n \n focus(element: HTMLElement): void {\n const editor = element.querySelector('.html-editor') as HTMLTextAreaElement;\n if (editor) {\n editor.focus();\n } else {\n const preview = element.querySelector('.html-preview') as HTMLElement;\n preview?.focus();\n }\n }\n \n focusWithCursor(element: HTMLElement, position: 'start' | 'end' | number = 'end'): void {\n const editor = element.querySelector('.html-editor') as HTMLTextAreaElement;\n if (editor) {\n if (position === 'start') {\n this.setCursorToStart(element);\n } else if (position === 'end') {\n this.setCursorToEnd(element);\n } else if (typeof position === 'number') {\n editor.selectionStart = editor.selectionEnd = position;\n editor.focus();\n }\n } else {\n this.focus(element);\n }\n }\n \n getSplitContent(element: HTMLElement): { before: string; after: string } | null {\n const editor = element.querySelector('.html-editor') as HTMLTextAreaElement;\n if (!editor) return null;\n \n const cursorPos = editor.selectionStart;\n return {\n before: editor.value.substring(0, cursorPos),\n after: editor.value.substring(cursorPos)\n };\n }\n \n getStyles(): string {\n return `\n /* HTML Block Container */\n .html-block-container {\n position: relative;\n margin: 12px 0;\n border: 1px solid ${cssManager.bdTheme('#e5e7eb', '#374151')};\n border-radius: 6px;\n overflow: hidden;\n transition: all 0.15s ease;\n background: ${cssManager.bdTheme('#ffffff', '#111827')};\n }\n \n .html-block-container.selected {\n border-color: ${cssManager.bdTheme('#9ca3af', '#6b7280')};\n }\n \n /* Header */\n .html-header {\n display: flex;\n align-items: center;\n gap: 8px;\n padding: 8px 12px;\n border-bottom: 1px solid ${cssManager.bdTheme('#e5e7eb', '#374151')};\n background: ${cssManager.bdTheme('#f9fafb', '#0a0a0a')};\n }\n \n .html-icon {\n font-size: 14px;\n font-weight: 600;\n opacity: 0.8;\n font-family: 'Monaco', 'Consolas', 'Courier New', monospace;\n }\n \n .html-title {\n flex: 1;\n font-size: 13px;\n font-weight: 500;\n color: ${cssManager.bdTheme('#374151', '#e5e7eb')};\n }\n \n .html-toggle-mode {\n padding: 4px 8px;\n background: transparent;\n border: 1px solid ${cssManager.bdTheme('#e5e7eb', '#374151')};\n border-radius: 4px;\n font-size: 14px;\n cursor: pointer;\n transition: all 0.15s ease;\n }\n \n .html-toggle-mode:hover {\n background: ${cssManager.bdTheme('#f3f4f6', '#1f2937')};\n border-color: ${cssManager.bdTheme('#d1d5db', '#4b5563')};\n }\n \n /* Content */\n .html-content {\n position: relative;\n min-height: 120px;\n }\n \n /* Editor */\n .html-editor {\n width: 100%;\n min-height: 120px;\n padding: 12px;\n background: transparent;\n border: none;\n outline: none;\n resize: none;\n font-family: 'Monaco', 'Consolas', 'Courier New', monospace;\n font-size: 13px;\n line-height: 1.6;\n color: ${cssManager.bdTheme('#1f2937', '#f3f4f6')};\n overflow: hidden;\n }\n \n .html-editor::placeholder {\n color: ${cssManager.bdTheme('#9ca3af', '#6b7280')};\n }\n \n /* Preview */\n .html-preview {\n padding: 12px;\n min-height: 96px;\n outline: none;\n font-size: 14px;\n line-height: 1.6;\n color: ${cssManager.bdTheme('#1f2937', '#f3f4f6')};\n }\n \n .preview-empty {\n color: ${cssManager.bdTheme('#9ca3af', '#6b7280')};\n font-style: italic;\n }\n \n /* Sandboxed HTML preview styles */\n .html-preview * {\n max-width: 100%;\n }\n \n .html-preview img {\n height: auto;\n }\n \n .html-preview a {\n color: ${cssManager.bdTheme('#3b82f6', '#60a5fa')};\n text-decoration: none;\n }\n \n .html-preview a:hover {\n text-decoration: underline;\n }\n \n .html-preview table {\n border-collapse: collapse;\n width: 100%;\n margin: 8px 0;\n }\n \n .html-preview th,\n .html-preview td {\n border: 1px solid ${cssManager.bdTheme('#e5e7eb', '#374151')};\n padding: 8px;\n text-align: left;\n }\n \n .html-preview th {\n background: ${cssManager.bdTheme('#f9fafb', '#1f2937')};\n font-weight: 600;\n }\n \n .html-preview pre {\n background: ${cssManager.bdTheme('#f3f4f6', '#1f2937')};\n padding: 12px;\n border-radius: 4px;\n overflow-x: auto;\n margin: 8px 0;\n }\n \n .html-preview code {\n background: ${cssManager.bdTheme('#f3f4f6', '#1f2937')};\n padding: 2px 4px;\n border-radius: 3px;\n font-family: 'Monaco', 'Consolas', 'Courier New', monospace;\n font-size: 0.9em;\n }\n \n .html-preview pre code {\n background: transparent;\n padding: 0;\n }\n `;\n }\n}", "/**\n * Main exports for the blocks module\n */\n\n// Core interfaces and base classes\nexport { \n type IBlockHandler, \n type IBlockEventHandlers, \n BaseBlockHandler \n} from './block.base.js';\n\n// Block registry for registration and retrieval\nexport { BlockRegistry } from './block.registry.js';\n\n// Common styles and helpers\nexport { \n commonBlockStyles,\n getBlockClasses,\n getBlockDataAttributes \n} from './block.styles.js';\n\n// Text block handlers\nexport { ParagraphBlockHandler } from './text/paragraph.block.js';\nexport { HeadingBlockHandler } from './text/heading.block.js';\nexport { QuoteBlockHandler } from './text/quote.block.js';\nexport { CodeBlockHandler } from './text/code.block.js';\nexport { ListBlockHandler } from './text/list.block.js';\n\n// Media block handlers\nexport { ImageBlockHandler } from './media/image.block.js';\nexport { YouTubeBlockHandler } from './media/youtube.block.js';\nexport { AttachmentBlockHandler } from './media/attachment.block.js';\n\n// Content block handlers\nexport { DividerBlockHandler } from './content/divider.block.js';\nexport { MarkdownBlockHandler } from './content/markdown.block.js';\nexport { HtmlBlockHandler } from './content/html.block.js';\n\n// Utilities\n// TODO: Export when implemented\n// export * from './utils/file.utils.js';\n// export * from './utils/media.utils.js';\n// export * from './utils/markdown.utils.js';", "/**\n * Block Registration Module\n * Handles registration of all block handlers with the BlockRegistry\n * \n * Phase 2 Complete: Divider block has been successfully migrated\n * to the new block handler architecture.\n * Phase 3 Complete: Paragraph block has been successfully migrated\n * to the new block handler architecture.\n * Phase 4 Complete: All heading blocks (h1, h2, h3) have been successfully migrated\n * to the new block handler architecture using a unified HeadingBlockHandler.\n * Phase 5 Complete: Quote, Code, and List blocks have been successfully migrated\n * to the new block handler architecture.\n * Phase 6 Complete: Image, YouTube, and Attachment blocks have been successfully migrated\n * to the new block handler architecture.\n * Phase 7 Complete: Markdown and HTML blocks have been successfully migrated\n * to the new block handler architecture.\n */\n\nimport { \n BlockRegistry, \n DividerBlockHandler,\n ParagraphBlockHandler,\n HeadingBlockHandler,\n QuoteBlockHandler,\n CodeBlockHandler,\n ListBlockHandler,\n ImageBlockHandler,\n YouTubeBlockHandler,\n AttachmentBlockHandler,\n MarkdownBlockHandler,\n HtmlBlockHandler\n} from './blocks/index.js';\n\n// Initialize and register all block handlers\nexport function registerAllBlockHandlers(): void {\n // Register content blocks\n BlockRegistry.register('divider', new DividerBlockHandler());\n \n // Register text blocks\n BlockRegistry.register('paragraph', new ParagraphBlockHandler());\n BlockRegistry.register('heading-1', new HeadingBlockHandler('heading-1'));\n BlockRegistry.register('heading-2', new HeadingBlockHandler('heading-2'));\n BlockRegistry.register('heading-3', new HeadingBlockHandler('heading-3'));\n BlockRegistry.register('quote', new QuoteBlockHandler());\n BlockRegistry.register('code', new CodeBlockHandler());\n BlockRegistry.register('list', new ListBlockHandler());\n \n // Register media blocks\n BlockRegistry.register('image', new ImageBlockHandler());\n BlockRegistry.register('youtube', new YouTubeBlockHandler());\n BlockRegistry.register('attachment', new AttachmentBlockHandler());\n \n // Register other content blocks\n BlockRegistry.register('markdown', new MarkdownBlockHandler());\n BlockRegistry.register('html', new HtmlBlockHandler());\n}\n\n// Ensure blocks are registered when this module is imported\nregisterAllBlockHandlers();", "import { html, type TemplateResult, cssManager } from '@design.estate/dees-element';\nimport { DeesModal } from '../../00group-overlay/dees-modal/dees-modal.js';\nimport { type IBlock } from './wysiwyg.types.js';\nimport { WysiwygShortcuts } from './wysiwyg.shortcuts.js';\nimport { PROGRAMMING_LANGUAGES } from './wysiwyg.constants.js';\n\nexport class WysiwygModalManager {\n /**\n * Shows language selection modal for code blocks\n */\n static async showLanguageSelectionModal(): Promise {\n return new Promise((resolve) => {\n let selectedLanguage: string | null = null;\n \n DeesModal.createAndShow({\n heading: 'Select Programming Language',\n content: html`\n \n
      \n
      \n ${this.getLanguages().map(lang => html`\n
      {\n selectedLanguage = lang.toLowerCase();\n // Close modal by finding it in DOM\n const modal = document.querySelector('dees-modal');\n if (modal && typeof (modal as any).destroy === 'function') {\n (modal as any).destroy();\n }\n resolve(selectedLanguage);\n }}\">\n ${lang}\n
      \n `)}\n
      \n
      \n `,\n menuOptions: [\n {\n name: 'Cancel',\n action: async (modal) => {\n modal.destroy();\n resolve(null);\n }\n }\n ]\n });\n });\n }\n\n /**\n * Shows block settings modal\n */\n static async showBlockSettingsModal(\n block: IBlock, \n onUpdate: (block: IBlock) => void\n ): Promise {\n \n const content = html`\n \n
      \n ${this.getBlockTypeSelector(block, onUpdate)}\n ${block.type === 'code' ? this.getCodeBlockSettings(block, onUpdate) : ''}\n
      \n `;\n \n DeesModal.createAndShow({\n heading: 'Block Settings',\n content,\n menuOptions: [\n {\n name: 'Done',\n action: async (modal) => {\n modal.destroy();\n }\n }\n ]\n });\n }\n\n /**\n * Gets code block settings content\n */\n private static getCodeBlockSettings(\n block: IBlock, \n onUpdate: (block: IBlock) => void\n ): TemplateResult {\n const currentLanguage = block.metadata?.language || 'javascript';\n \n return html`\n \n
      \n
      Programming Language
      \n
      \n ${this.getLanguages().map(lang => html`\n
      {\n if (!block.metadata) block.metadata = {};\n block.metadata.language = lang.toLowerCase();\n onUpdate(block);\n \n // Close modal immediately\n const modal = document.querySelector('dees-modal');\n if (modal && typeof (modal as any).destroy === 'function') {\n (modal as any).destroy();\n }\n }}\"\n data-lang=\"${lang}\"\n >${lang}
      \n `)}\n
      \n
      \n `;\n }\n\n /**\n * Gets available programming languages\n */\n private static getLanguages(): string[] {\n return [...PROGRAMMING_LANGUAGES];\n }\n\n /**\n * Gets block type selector\n */\n private static getBlockTypeSelector(\n block: IBlock,\n onUpdate: (block: IBlock) => void\n ): TemplateResult {\n const blockTypes = WysiwygShortcuts.getSlashMenuItems().filter(item => item.type !== 'divider');\n \n return html`\n
      \n
      Block Type
      \n
      \n ${blockTypes.map(item => html`\n
      {\n const button = e.currentTarget as HTMLElement;\n \n const oldType = block.type;\n block.type = item.type as IBlock['type'];\n \n // Reset metadata for type change\n if (oldType === 'code' && block.type !== 'code') {\n delete block.metadata?.language;\n } else if (oldType === 'list' && block.type !== 'list') {\n delete block.metadata?.listType;\n } else if (block.type === 'list' && !block.metadata?.listType) {\n block.metadata = { listType: 'bullet' };\n } else if (block.type === 'code' && !block.metadata?.language) {\n // Ask for language if changing to code block\n const language = await this.showLanguageSelectionModal();\n if (language) {\n block.metadata = { language };\n } else {\n // User cancelled, revert\n block.type = oldType;\n return;\n }\n }\n \n onUpdate(block);\n \n // Close modal immediately\n const modal = document.querySelector('dees-modal');\n if (modal && typeof (modal as any).destroy === 'function') {\n (modal as any).destroy();\n }\n }}\"\n >\n ${item.icon}\n ${item.label}\n
      \n `)}\n
      \n
      \n `;\n }\n}", "import { type IBlock } from './wysiwyg.types.js';\nimport { type IWysiwygComponent } from './wysiwyg.interfaces.js';\nimport { WysiwygShortcuts } from './wysiwyg.shortcuts.js';\nimport { WysiwygBlocks } from './wysiwyg.blocks.js';\nimport { WysiwygBlockOperations } from './wysiwyg.blockoperations.js';\nimport { WysiwygModalManager } from './wysiwyg.modalmanager.js';\n\nexport class WysiwygInputHandler {\n private component: IWysiwygComponent;\n private saveTimeout: any = null;\n\n constructor(component: IWysiwygComponent) {\n this.component = component;\n }\n\n /**\n * Handles input events for blocks\n */\n handleBlockInput(e: InputEvent, block: IBlock): void {\n if (this.component.isComposing) return;\n \n const target = e.target as HTMLDivElement;\n const textContent = target.textContent || '';\n \n // Check for block type transformations BEFORE updating content\n const detectedType = this.detectBlockTypeIntent(textContent);\n if (detectedType && detectedType.type !== block.type) {\n e.preventDefault();\n this.handleBlockTransformation(block, detectedType, target);\n return;\n }\n \n // Handle slash commands\n this.handleSlashCommand(textContent, target);\n \n // Don't update block content immediately - let the block handle its own content\n // This prevents re-renders during typing\n \n // Schedule auto-save (which will sync content later)\n this.scheduleAutoSave();\n }\n\n /**\n * Updates block content based on its type\n */\n private updateBlockContent(block: IBlock, target: HTMLDivElement): void {\n // Get the block component for proper content extraction\n const wrapperElement = target.closest('.block-wrapper');\n const blockComponent = wrapperElement?.querySelector('dees-wysiwyg-block') as any;\n \n if (blockComponent) {\n // Use the block component's getContent method for consistency\n const newContent = blockComponent.getContent();\n // Only update if content actually changed to avoid unnecessary updates\n if (block.content !== newContent) {\n block.content = newContent;\n }\n \n // Update list metadata if needed\n if (block.type === 'list') {\n const listElement = target.querySelector('ol, ul');\n if (listElement) {\n block.metadata = { \n listType: listElement.tagName.toLowerCase() === 'ol' ? 'ordered' : 'bullet' \n };\n }\n }\n } else {\n // Fallback if block component not found\n if (block.type === 'list') {\n const listItems = target.querySelectorAll('li');\n // Use innerHTML to preserve formatting\n block.content = Array.from(listItems).map(li => li.innerHTML || '').join('\\n');\n \n const listElement = target.querySelector('ol, ul');\n if (listElement) {\n block.metadata = { \n listType: listElement.tagName.toLowerCase() === 'ol' ? 'ordered' : 'bullet' \n };\n }\n } else if (block.type === 'code') {\n block.content = target.textContent || '';\n } else {\n block.content = target.innerHTML || '';\n }\n }\n }\n\n /**\n * Detects if the user is trying to create a specific block type\n */\n private detectBlockTypeIntent(content: string): { type: IBlock['type'], listType?: 'bullet' | 'ordered' } | null {\n // Check heading patterns\n const headingResult = WysiwygShortcuts.checkHeadingShortcut(content);\n if (headingResult) {\n return headingResult;\n }\n \n // Check list patterns\n const listResult = WysiwygShortcuts.checkListShortcut(content);\n if (listResult) {\n return listResult;\n }\n \n // Check quote pattern\n if (WysiwygShortcuts.checkQuoteShortcut(content)) {\n return { type: 'quote' };\n }\n \n // Check code pattern\n if (WysiwygShortcuts.checkCodeShortcut(content)) {\n return { type: 'code' };\n }\n \n // Check divider pattern\n if (WysiwygShortcuts.checkDividerShortcut(content)) {\n return { type: 'divider' };\n }\n \n return null;\n }\n\n /**\n * Handles block type transformation\n */\n private async handleBlockTransformation(\n block: IBlock, \n detectedType: { type: IBlock['type'], listType?: 'bullet' | 'ordered' }, \n target: HTMLDivElement\n ): Promise {\n const blockOps = this.component.blockOperations;\n \n if (detectedType.type === 'list') {\n block.type = 'list';\n block.content = '';\n block.metadata = { listType: detectedType.listType };\n \n const listTag = detectedType.listType === 'ordered' ? 'ol' : 'ul';\n target.innerHTML = `<${listTag}>
    • `;\n \n this.component.updateValue();\n \n // Update the block element programmatically\n if (this.component.editorContentRef) {\n this.component.updateBlockElement(block.id);\n }\n \n setTimeout(() => {\n WysiwygBlocks.focusListItem(target);\n }, 0);\n } else if (detectedType.type === 'divider') {\n block.type = 'divider';\n block.content = ' ';\n \n // Update the block element programmatically\n if (this.component.editorContentRef) {\n this.component.updateBlockElement(block.id);\n }\n \n const newBlock = blockOps.createBlock();\n blockOps.insertBlockAfter(block, newBlock);\n \n this.component.updateValue();\n } else if (detectedType.type === 'code') {\n const language = await WysiwygModalManager.showLanguageSelectionModal();\n if (language) {\n block.type = 'code';\n block.content = '';\n block.metadata = { language };\n target.textContent = '';\n \n this.component.updateValue();\n \n // Update the block element programmatically\n if (this.component.editorContentRef) {\n this.component.updateBlockElement(block.id);\n }\n \n // Focus the code block\n setTimeout(async () => {\n await blockOps.focusBlock(block.id, 'start');\n }, 50);\n }\n } else {\n block.type = detectedType.type;\n block.content = '';\n target.textContent = '';\n \n this.component.updateValue();\n \n // Update the block element programmatically\n if (this.component.editorContentRef) {\n this.component.updateBlockElement(block.id);\n }\n \n // Focus the transformed block\n setTimeout(async () => {\n await blockOps.focusBlock(block.id, 'start');\n }, 50);\n }\n }\n\n /**\n * Handles slash command detection and menu display\n */\n private handleSlashCommand(textContent: string, target: HTMLDivElement): void {\n const slashMenu = this.component.slashMenu;\n const isSlashMenuVisible = slashMenu && slashMenu.visible;\n \n if (textContent === '/' || (textContent.startsWith('/') && isSlashMenuVisible)) {\n if (!isSlashMenuVisible && textContent === '/') {\n // Get position for menu based on cursor location\n const rect = this.getCaretCoordinates(target);\n \n // Show the slash menu at the cursor position\n slashMenu.show(\n { x: rect.left, y: rect.bottom + 4 },\n (type: string) => {\n this.component.insertBlock(type);\n }\n );\n \n // Ensure the block maintains focus\n requestAnimationFrame(() => {\n if (document.activeElement !== target) {\n target.focus();\n }\n });\n }\n // Update filter\n if (slashMenu) {\n slashMenu.updateFilter(textContent.slice(1));\n }\n } else if (!textContent.startsWith('/')) {\n this.component.closeSlashMenu();\n }\n }\n \n /**\n * Gets the coordinates of the caret/cursor\n */\n private getCaretCoordinates(element: HTMLElement): DOMRect {\n const selection = window.getSelection();\n if (selection && selection.rangeCount > 0) {\n const range = selection.getRangeAt(0);\n const rect = range.getBoundingClientRect();\n if (rect.width > 0 || rect.height > 0) {\n return rect;\n }\n }\n \n // Fallback to element position\n return element.getBoundingClientRect();\n }\n\n /**\n * Schedules auto-save after a delay\n */\n private scheduleAutoSave(): void {\n if (this.saveTimeout) {\n clearTimeout(this.saveTimeout);\n }\n // Don't auto-save if slash menu is open\n if (this.component.slashMenu && this.component.slashMenu.visible) {\n return;\n }\n this.saveTimeout = setTimeout(() => {\n // Sync all block content from DOM before saving\n this.syncAllBlockContent();\n // Only update value, don't trigger any re-renders\n this.component.updateValue();\n // Don't call requestUpdate() as it's not needed\n }, 2000); // Increased delay to reduce interference with typing\n }\n \n /**\n * Syncs content from all block DOMs to the data model\n */\n private syncAllBlockContent(): void {\n this.component.blocks.forEach((block: IBlock) => {\n const wrapperElement = this.component.shadowRoot?.querySelector(`[data-block-id=\"${block.id}\"]`);\n const blockComponent = wrapperElement?.querySelector('dees-wysiwyg-block') as any;\n \n if (blockComponent && blockComponent.getContent) {\n const newContent = blockComponent.getContent();\n // Only update if content actually changed\n if (block.content !== newContent) {\n block.content = newContent;\n }\n }\n });\n }\n\n /**\n * Cleans up resources\n */\n destroy(): void {\n if (this.saveTimeout) {\n clearTimeout(this.saveTimeout);\n }\n }\n}", "import { type IBlock } from './wysiwyg.types.js';\nimport { type IWysiwygComponent } from './wysiwyg.interfaces.js';\nimport { WysiwygSelection } from './wysiwyg.selection.js';\n\nexport class WysiwygKeyboardHandler {\n private component: IWysiwygComponent;\n\n constructor(component: IWysiwygComponent) {\n this.component = component;\n }\n\n /**\n * Handles keyboard events for blocks\n */\n async handleBlockKeyDown(e: KeyboardEvent, block: IBlock): Promise {\n // Handle slash menu navigation\n if (this.component.slashMenu.visible && this.isSlashMenuKey(e.key)) {\n this.component.handleSlashMenuKeyboard(e);\n return;\n }\n\n // Handle formatting shortcuts\n if (this.handleFormattingShortcuts(e)) {\n return;\n }\n\n // Handle special keys\n switch (e.key) {\n case 'Tab':\n this.handleTab(e, block);\n break;\n case 'Enter':\n await this.handleEnter(e, block);\n break;\n case 'Backspace':\n await this.handleBackspace(e, block);\n break;\n case 'Delete':\n await this.handleDelete(e, block);\n break;\n case 'ArrowUp':\n await this.handleArrowUp(e, block);\n break;\n case 'ArrowDown':\n await this.handleArrowDown(e, block);\n break;\n case 'ArrowLeft':\n await this.handleArrowLeft(e, block);\n break;\n case 'ArrowRight':\n await this.handleArrowRight(e, block);\n break;\n }\n }\n\n /**\n * Checks if key is for slash menu navigation\n */\n private isSlashMenuKey(key: string): boolean {\n return ['ArrowDown', 'ArrowUp', 'Enter', 'Escape'].includes(key);\n }\n\n /**\n * Handles formatting keyboard shortcuts\n */\n private handleFormattingShortcuts(e: KeyboardEvent): boolean {\n if (!(e.metaKey || e.ctrlKey)) return false;\n\n switch (e.key.toLowerCase()) {\n case 'b':\n e.preventDefault();\n // Use Promise to ensure focus is maintained\n Promise.resolve().then(() => this.component.applyFormat('bold'));\n return true;\n case 'i':\n e.preventDefault();\n Promise.resolve().then(() => this.component.applyFormat('italic'));\n return true;\n case 'u':\n e.preventDefault();\n Promise.resolve().then(() => this.component.applyFormat('underline'));\n return true;\n case 'k':\n e.preventDefault();\n Promise.resolve().then(() => this.component.applyFormat('link'));\n return true;\n }\n return false;\n }\n\n /**\n * Handles Tab key\n */\n private handleTab(e: KeyboardEvent, block: IBlock): void {\n if (block.type === 'code') {\n // Allow tab in code blocks - handled by CodeBlockHandler\n // Let it bubble to the block handler\n return;\n } else if (block.type === 'list') {\n // Future: implement list indentation\n e.preventDefault();\n }\n }\n\n /**\n * Handles Enter key\n */\n private async handleEnter(e: KeyboardEvent, block: IBlock): Promise {\n const blockOps = this.component.blockOperations;\n\n // For non-editable blocks, create a new paragraph after\n const nonEditableTypes = ['divider', 'image', 'youtube', 'attachment'];\n if (nonEditableTypes.includes(block.type)) {\n e.preventDefault();\n const newBlock = blockOps.createBlock();\n await blockOps.insertBlockAfter(block, newBlock);\n return;\n }\n\n if (block.type === 'code') {\n if (e.shiftKey) {\n // Shift+Enter in code blocks creates a new block\n e.preventDefault();\n const newBlock = blockOps.createBlock();\n await blockOps.insertBlockAfter(block, newBlock);\n }\n // Normal Enter in code blocks creates new line (let browser handle it)\n return;\n }\n\n if (!e.shiftKey) {\n if (block.type === 'list') {\n await this.handleEnterInList(e, block);\n } else {\n // Split content at cursor position\n e.preventDefault();\n \n // Get the block component - need to search in the wysiwyg component's shadow DOM\n const blockWrapper = this.component.shadowRoot?.querySelector(`[data-block-id=\"${block.id}\"]`);\n const blockComponent = blockWrapper?.querySelector('dees-wysiwyg-block') as any;\n \n if (blockComponent && blockComponent.getSplitContent) {\n const splitContent = blockComponent.getSplitContent();\n \n if (splitContent) {\n // Update current block with content before cursor\n blockComponent.setContent(splitContent.before);\n block.content = splitContent.before;\n \n // Create new block with content after cursor\n const newBlock = blockOps.createBlock('paragraph', splitContent.after);\n \n // Insert the new block\n await blockOps.insertBlockAfter(block, newBlock);\n \n // Update the value after both blocks are set\n this.component.updateValue();\n } else {\n // Fallback - just create empty block\n const newBlock = blockOps.createBlock();\n await blockOps.insertBlockAfter(block, newBlock);\n }\n } else {\n // No block component or method, just create empty block\n const newBlock = blockOps.createBlock();\n await blockOps.insertBlockAfter(block, newBlock);\n }\n }\n }\n // Shift+Enter creates line break (let browser handle it)\n }\n\n /**\n * Handles Enter key in list blocks\n */\n private async handleEnterInList(e: KeyboardEvent, block: IBlock): Promise {\n const selection = window.getSelection();\n \n if (selection && selection.rangeCount > 0) {\n const range = selection.getRangeAt(0);\n const currentLi = range.startContainer.parentElement?.closest('li');\n \n if (currentLi && currentLi.textContent === '') {\n // Empty list item - exit list mode\n e.preventDefault();\n const blockOps = this.component.blockOperations;\n const newBlock = blockOps.createBlock();\n await blockOps.insertBlockAfter(block, newBlock);\n }\n // Otherwise, let browser create new list item\n }\n }\n\n /**\n * Handles Backspace key\n */\n private async handleBackspace(e: KeyboardEvent, block: IBlock): Promise {\n const blockOps = this.component.blockOperations;\n \n // Handle non-editable blocks\n const nonEditableTypes = ['divider', 'image', 'youtube', 'attachment'];\n if (nonEditableTypes.includes(block.type)) {\n e.preventDefault();\n \n // If it's the only block, delete it and create a new paragraph\n if (this.component.blocks.length === 1) {\n // Save state for undo\n this.component.saveToHistory(false);\n \n // Remove the block\n blockOps.removeBlock(block.id);\n \n // Create a new paragraph block\n const newBlock = blockOps.createBlock('paragraph', '');\n this.component.blocks = [newBlock];\n \n // Re-render blocks\n this.component.renderBlocksProgrammatically();\n \n // Focus the new block\n await blockOps.focusBlock(newBlock.id, 'start');\n \n // Update value\n this.component.updateValue();\n return;\n }\n \n // Save state for undo\n this.component.saveToHistory(false);\n \n // Find the previous block to focus\n const prevBlock = blockOps.getPreviousBlock(block.id);\n const nextBlock = blockOps.getNextBlock(block.id);\n \n // Remove the block\n blockOps.removeBlock(block.id);\n \n // Focus the appropriate block\n if (prevBlock && prevBlock.type !== 'divider' && prevBlock.type !== 'image') {\n await blockOps.focusBlock(prevBlock.id, 'end');\n } else if (nextBlock && nextBlock.type !== 'divider' && nextBlock.type !== 'image') {\n await blockOps.focusBlock(nextBlock.id, 'start');\n } else if (prevBlock) {\n // If previous block is also non-editable, just select it\n await blockOps.focusBlock(prevBlock.id);\n } else if (nextBlock) {\n // If next block is also non-editable, just select it\n await blockOps.focusBlock(nextBlock.id);\n }\n \n return;\n }\n \n // Get the block component to check cursor position\n const blockWrapper = this.component.shadowRoot?.querySelector(`[data-block-id=\"${block.id}\"]`);\n const blockComponent = blockWrapper?.querySelector('dees-wysiwyg-block') as any;\n if (!blockComponent || !blockComponent.shadowRoot) return;\n \n // Get the actual editable element\n const target = block.type === 'code' \n ? blockComponent.shadowRoot.querySelector('.code-editor') as HTMLElement\n : blockComponent.shadowRoot.querySelector('.block') as HTMLElement;\n if (!target) return;\n \n // Get cursor position\n const parentComponent = blockComponent.closest('dees-input-wysiwyg');\n const shadowRoots: ShadowRoot[] = [];\n if (parentComponent?.shadowRoot) shadowRoots.push(parentComponent.shadowRoot);\n shadowRoots.push(blockComponent.shadowRoot);\n \n const cursorPos = WysiwygSelection.getCursorPositionInElement(target, ...shadowRoots);\n \n const actualContent = blockComponent.getContent ? blockComponent.getContent() : target.textContent;\n \n // Check if cursor is at the beginning of the block\n if (cursorPos === 0) {\n e.preventDefault();\n const prevBlock = blockOps.getPreviousBlock(block.id);\n \n if (prevBlock) {\n // If previous block is non-editable, select it first\n const nonEditableTypes = ['divider', 'image', 'youtube', 'attachment'];\n if (nonEditableTypes.includes(prevBlock.type)) {\n await blockOps.focusBlock(prevBlock.id);\n return;\n }\n \n \n // Save checkpoint for undo\n this.component.saveToHistory(false);\n \n // Special handling for different block types\n if (prevBlock.type === 'code' && block.type !== 'code') {\n // Can't merge non-code into code block, just remove empty block\n if (block.content === '') {\n blockOps.removeBlock(block.id);\n await blockOps.focusBlock(prevBlock.id, 'end');\n }\n return;\n }\n \n if (block.type === 'code' && prevBlock.type !== 'code') {\n // Can't merge code into non-code block\n const actualContent = blockComponent.getContent ? blockComponent.getContent() : block.content;\n if (actualContent === '' || actualContent.trim() === '') {\n blockOps.removeBlock(block.id);\n await blockOps.focusBlock(prevBlock.id, 'end');\n }\n return;\n }\n \n // Get the content of both blocks\n const prevBlockWrapper = this.component.shadowRoot?.querySelector(`[data-block-id=\"${prevBlock.id}\"]`);\n const prevBlockComponent = prevBlockWrapper?.querySelector('dees-wysiwyg-block') as any;\n const prevContent = prevBlockComponent?.getContent() || prevBlock.content || '';\n const currentContent = blockComponent.getContent() || block.content || '';\n \n // Merge content\n let mergedContent = '';\n if (prevBlock.type === 'code' && block.type === 'code') {\n // For code blocks, join with newline\n mergedContent = prevContent + (prevContent && currentContent ? '\\n' : '') + currentContent;\n } else if (prevBlock.type === 'list' && block.type === 'list') {\n // For lists, combine the list items\n mergedContent = prevContent + (prevContent && currentContent ? '\\n' : '') + currentContent;\n } else {\n // For other blocks, join with space if both have content\n mergedContent = prevContent + (prevContent && currentContent ? ' ' : '') + currentContent;\n }\n \n // Store cursor position (where the merge point is)\n const mergePoint = prevContent.length;\n \n // Update previous block with merged content\n blockOps.updateBlockContent(prevBlock.id, mergedContent);\n if (prevBlockComponent) {\n prevBlockComponent.setContent(mergedContent);\n }\n \n // Remove current block\n blockOps.removeBlock(block.id);\n \n // Focus previous block at merge point\n await blockOps.focusBlock(prevBlock.id, mergePoint);\n }\n } else if (this.component.blocks.length > 1) {\n // Check if block is actually empty by getting current content from DOM\n const currentContent = blockComponent.getContent ? blockComponent.getContent() : block.content;\n \n if (currentContent === '' || currentContent.trim() === '') {\n // Empty block - just remove it\n e.preventDefault();\n const prevBlock = blockOps.getPreviousBlock(block.id);\n \n if (prevBlock) {\n blockOps.removeBlock(block.id);\n \n if (prevBlock.type !== 'divider') {\n await blockOps.focusBlock(prevBlock.id, 'end');\n }\n }\n }\n }\n // Otherwise, let browser handle normal backspace\n }\n\n /**\n * Handles Delete key\n */\n private async handleDelete(e: KeyboardEvent, block: IBlock): Promise {\n const blockOps = this.component.blockOperations;\n \n // Handle non-editable blocks - same as backspace\n const nonEditableTypes = ['divider', 'image', 'youtube', 'attachment'];\n if (nonEditableTypes.includes(block.type)) {\n e.preventDefault();\n \n // If it's the only block, delete it and create a new paragraph\n if (this.component.blocks.length === 1) {\n // Save state for undo\n this.component.saveToHistory(false);\n \n // Remove the block\n blockOps.removeBlock(block.id);\n \n // Create a new paragraph block\n const newBlock = blockOps.createBlock('paragraph', '');\n this.component.blocks = [newBlock];\n \n // Re-render blocks\n this.component.renderBlocksProgrammatically();\n \n // Focus the new block\n await blockOps.focusBlock(newBlock.id, 'start');\n \n // Update value\n this.component.updateValue();\n return;\n }\n \n // Save state for undo\n this.component.saveToHistory(false);\n \n // Find the previous block to focus\n const prevBlock = blockOps.getPreviousBlock(block.id);\n const nextBlock = blockOps.getNextBlock(block.id);\n \n // Remove the block\n blockOps.removeBlock(block.id);\n \n // Focus the appropriate block\n const nonEditableTypes = ['divider', 'image', 'youtube', 'attachment'];\n if (nextBlock && !nonEditableTypes.includes(nextBlock.type)) {\n await blockOps.focusBlock(nextBlock.id, 'start');\n } else if (prevBlock && !nonEditableTypes.includes(prevBlock.type)) {\n await blockOps.focusBlock(prevBlock.id, 'end');\n } else if (nextBlock) {\n // If next block is also non-editable, just select it\n await blockOps.focusBlock(nextBlock.id);\n } else if (prevBlock) {\n // If previous block is also non-editable, just select it\n await blockOps.focusBlock(prevBlock.id);\n }\n \n return;\n }\n \n // For editable blocks, check if we're at the end and next block is non-editable\n const blockWrapper = this.component.shadowRoot?.querySelector(`[data-block-id=\"${block.id}\"]`);\n const blockComponent = blockWrapper?.querySelector('dees-wysiwyg-block') as any;\n if (!blockComponent || !blockComponent.shadowRoot) return;\n \n // Get the actual editable element\n const target = block.type === 'code' \n ? blockComponent.shadowRoot.querySelector('.code-editor') as HTMLElement\n : blockComponent.shadowRoot.querySelector('.block') as HTMLElement;\n if (!target) return;\n \n // Get cursor position\n const parentComponent = blockComponent.closest('dees-input-wysiwyg');\n const shadowRoots: ShadowRoot[] = [];\n if (parentComponent?.shadowRoot) shadowRoots.push(parentComponent.shadowRoot);\n shadowRoots.push(blockComponent.shadowRoot);\n \n const cursorPos = WysiwygSelection.getCursorPositionInElement(target, ...shadowRoots);\n const textLength = target.textContent?.length || 0;\n \n // Check if cursor is at the end of the block\n if (cursorPos === textLength) {\n const nextBlock = blockOps.getNextBlock(block.id);\n \n const nonEditableTypes = ['divider', 'image', 'youtube', 'attachment'];\n if (nextBlock && nonEditableTypes.includes(nextBlock.type)) {\n e.preventDefault();\n await blockOps.focusBlock(nextBlock.id);\n return;\n }\n }\n \n // Otherwise, let browser handle normal delete\n }\n\n /**\n * Handles ArrowUp key - navigate to previous block if at beginning or first line\n */\n private async handleArrowUp(e: KeyboardEvent, block: IBlock): Promise {\n // For non-editable blocks, always navigate to previous block\n const nonEditableTypes = ['divider', 'image', 'youtube', 'attachment'];\n if (nonEditableTypes.includes(block.type)) {\n e.preventDefault();\n const blockOps = this.component.blockOperations;\n const prevBlock = blockOps.getPreviousBlock(block.id);\n \n if (prevBlock) {\n await blockOps.focusBlock(prevBlock.id, nonEditableTypes.includes(prevBlock.type) ? undefined : 'end');\n }\n return;\n }\n \n // Get the block component from the wysiwyg component's shadow DOM\n const blockWrapper = this.component.shadowRoot?.querySelector(`[data-block-id=\"${block.id}\"]`);\n const blockComponent = blockWrapper?.querySelector('dees-wysiwyg-block');\n if (!blockComponent || !blockComponent.shadowRoot) return;\n \n // Get the actual editable element - code blocks now use .code-editor\n const target = block.type === 'code' \n ? blockComponent.shadowRoot.querySelector('.code-editor') as HTMLElement\n : blockComponent.shadowRoot.querySelector('.block') as HTMLElement;\n if (!target) return;\n \n // Get selection info with proper shadow DOM support\n const parentComponent = blockComponent.closest('dees-input-wysiwyg');\n const shadowRoots: ShadowRoot[] = [];\n if (parentComponent?.shadowRoot) shadowRoots.push(parentComponent.shadowRoot);\n shadowRoots.push(blockComponent.shadowRoot);\n \n const selectionInfo = WysiwygSelection.getSelectionInfo(...shadowRoots);\n if (!selectionInfo || !selectionInfo.collapsed) return;\n \n // Check if we're on the first line\n if (this.isOnFirstLine(selectionInfo, target, ...shadowRoots)) {\n e.preventDefault();\n const blockOps = this.component.blockOperations;\n const prevBlock = blockOps.getPreviousBlock(block.id);\n \n if (prevBlock) {\n const nonEditableTypes = ['divider', 'image', 'youtube', 'attachment'];\n await blockOps.focusBlock(prevBlock.id, nonEditableTypes.includes(prevBlock.type) ? undefined : 'end');\n }\n }\n // Otherwise, let browser handle normal navigation\n }\n\n /**\n * Handles ArrowDown key - navigate to next block if at end or last line\n */\n private async handleArrowDown(e: KeyboardEvent, block: IBlock): Promise {\n // For non-editable blocks, always navigate to next block\n const nonEditableTypes = ['divider', 'image', 'youtube', 'attachment'];\n if (nonEditableTypes.includes(block.type)) {\n e.preventDefault();\n const blockOps = this.component.blockOperations;\n const nextBlock = blockOps.getNextBlock(block.id);\n \n if (nextBlock) {\n const nonEditableTypes = ['divider', 'image', 'youtube', 'attachment'];\n await blockOps.focusBlock(nextBlock.id, nonEditableTypes.includes(nextBlock.type) ? undefined : 'start');\n }\n return;\n }\n \n // Get the block component from the wysiwyg component's shadow DOM\n const blockWrapper = this.component.shadowRoot?.querySelector(`[data-block-id=\"${block.id}\"]`);\n const blockComponent = blockWrapper?.querySelector('dees-wysiwyg-block');\n if (!blockComponent || !blockComponent.shadowRoot) return;\n \n // Get the actual editable element - code blocks now use .code-editor\n const target = block.type === 'code' \n ? blockComponent.shadowRoot.querySelector('.code-editor') as HTMLElement\n : blockComponent.shadowRoot.querySelector('.block') as HTMLElement;\n if (!target) return;\n \n // Get selection info with proper shadow DOM support\n const parentComponent = blockComponent.closest('dees-input-wysiwyg');\n const shadowRoots: ShadowRoot[] = [];\n if (parentComponent?.shadowRoot) shadowRoots.push(parentComponent.shadowRoot);\n shadowRoots.push(blockComponent.shadowRoot);\n \n const selectionInfo = WysiwygSelection.getSelectionInfo(...shadowRoots);\n if (!selectionInfo || !selectionInfo.collapsed) return;\n \n // Check if we're on the last line\n if (this.isOnLastLine(selectionInfo, target, ...shadowRoots)) {\n e.preventDefault();\n const blockOps = this.component.blockOperations;\n const nextBlock = blockOps.getNextBlock(block.id);\n \n if (nextBlock) {\n const nonEditableTypes = ['divider', 'image', 'youtube', 'attachment'];\n await blockOps.focusBlock(nextBlock.id, nonEditableTypes.includes(nextBlock.type) ? undefined : 'start');\n }\n }\n // Otherwise, let browser handle normal navigation\n }\n\n /**\n * Helper to get the last text node in an element\n */\n private getLastTextNode(element: Node): Text | null {\n if (element.nodeType === Node.TEXT_NODE) {\n return element as Text;\n }\n \n for (let i = element.childNodes.length - 1; i >= 0; i--) {\n const lastText = this.getLastTextNode(element.childNodes[i]);\n if (lastText) return lastText;\n }\n \n return null;\n }\n\n /**\n * Handles ArrowLeft key - navigate to previous block if at beginning\n */\n private async handleArrowLeft(e: KeyboardEvent, block: IBlock): Promise {\n // For non-editable blocks, navigate to previous block\n const nonEditableTypes = ['divider', 'image', 'youtube', 'attachment'];\n if (nonEditableTypes.includes(block.type)) {\n e.preventDefault();\n const blockOps = this.component.blockOperations;\n const prevBlock = blockOps.getPreviousBlock(block.id);\n \n if (prevBlock) {\n const nonEditableTypes = ['divider', 'image', 'youtube', 'attachment'];\n await blockOps.focusBlock(prevBlock.id, nonEditableTypes.includes(prevBlock.type) ? undefined : 'end');\n }\n return;\n }\n \n // Get the block component from the wysiwyg component's shadow DOM\n const blockWrapper = this.component.shadowRoot?.querySelector(`[data-block-id=\"${block.id}\"]`);\n const blockComponent = blockWrapper?.querySelector('dees-wysiwyg-block');\n if (!blockComponent || !blockComponent.shadowRoot) return;\n \n // Get the actual editable element - code blocks now use .code-editor\n const target = block.type === 'code' \n ? blockComponent.shadowRoot.querySelector('.code-editor') as HTMLElement\n : blockComponent.shadowRoot.querySelector('.block') as HTMLElement;\n if (!target) return;\n \n // Get selection info with proper shadow DOM support\n const parentComponent = blockComponent.closest('dees-input-wysiwyg');\n const shadowRoots: ShadowRoot[] = [];\n if (parentComponent?.shadowRoot) shadowRoots.push(parentComponent.shadowRoot);\n shadowRoots.push(blockComponent.shadowRoot);\n \n const selectionInfo = WysiwygSelection.getSelectionInfo(...shadowRoots);\n if (!selectionInfo || !selectionInfo.collapsed) return;\n \n // Check if cursor is at the beginning of the block\n const cursorPos = WysiwygSelection.getCursorPositionInElement(target, ...shadowRoots);\n \n if (cursorPos === 0) {\n const blockOps = this.component.blockOperations;\n const prevBlock = blockOps.getPreviousBlock(block.id);\n \n if (prevBlock) {\n e.preventDefault();\n const nonEditableTypes = ['divider', 'image', 'youtube', 'attachment'];\n const position = nonEditableTypes.includes(prevBlock.type) ? undefined : 'end';\n await blockOps.focusBlock(prevBlock.id, position);\n }\n }\n // Otherwise, let the browser handle normal left arrow navigation\n }\n\n /**\n * Handles ArrowRight key - navigate to next block if at end\n */\n private async handleArrowRight(e: KeyboardEvent, block: IBlock): Promise {\n // For non-editable blocks, navigate to next block\n const nonEditableTypes = ['divider', 'image', 'youtube', 'attachment'];\n if (nonEditableTypes.includes(block.type)) {\n e.preventDefault();\n const blockOps = this.component.blockOperations;\n const nextBlock = blockOps.getNextBlock(block.id);\n \n if (nextBlock) {\n const nonEditableTypes = ['divider', 'image', 'youtube', 'attachment'];\n await blockOps.focusBlock(nextBlock.id, nonEditableTypes.includes(nextBlock.type) ? undefined : 'start');\n }\n return;\n }\n \n // Get the block component from the wysiwyg component's shadow DOM\n const blockWrapper = this.component.shadowRoot?.querySelector(`[data-block-id=\"${block.id}\"]`);\n const blockComponent = blockWrapper?.querySelector('dees-wysiwyg-block');\n if (!blockComponent || !blockComponent.shadowRoot) return;\n \n // Get the actual editable element - code blocks now use .code-editor\n const target = block.type === 'code' \n ? blockComponent.shadowRoot.querySelector('.code-editor') as HTMLElement\n : blockComponent.shadowRoot.querySelector('.block') as HTMLElement;\n if (!target) return;\n \n // Get selection info with proper shadow DOM support\n const parentComponent = blockComponent.closest('dees-input-wysiwyg');\n const shadowRoots: ShadowRoot[] = [];\n if (parentComponent?.shadowRoot) shadowRoots.push(parentComponent.shadowRoot);\n shadowRoots.push(blockComponent.shadowRoot);\n \n const selectionInfo = WysiwygSelection.getSelectionInfo(...shadowRoots);\n if (!selectionInfo || !selectionInfo.collapsed) return;\n \n // Check if cursor is at the end of the block\n const cursorPos = WysiwygSelection.getCursorPositionInElement(target, ...shadowRoots);\n const textLength = target.textContent?.length || 0;\n \n if (cursorPos === textLength) {\n const blockOps = this.component.blockOperations;\n const nextBlock = blockOps.getNextBlock(block.id);\n \n if (nextBlock) {\n e.preventDefault();\n const nonEditableTypes = ['divider', 'image', 'youtube', 'attachment'];\n await blockOps.focusBlock(nextBlock.id, nonEditableTypes.includes(nextBlock.type) ? undefined : 'start');\n }\n }\n // Otherwise, let the browser handle normal right arrow navigation\n }\n\n /**\n * Handles slash menu keyboard navigation\n * Note: This is now handled by the component directly\n */\n \n /**\n * Check if cursor is on the first line of a block\n */\n private isOnFirstLine(selectionInfo: any, target: HTMLElement, ...shadowRoots: ShadowRoot[]): boolean {\n try {\n // Create a range from the selection info\n const range = WysiwygSelection.createRangeFromInfo(selectionInfo);\n const rect = range.getBoundingClientRect();\n \n // Get the container element\n let container = range.commonAncestorContainer;\n if (container.nodeType === Node.TEXT_NODE) {\n container = container.parentElement;\n }\n \n // Get the top position of the container\n const containerRect = (container as Element).getBoundingClientRect();\n \n // Check if we're near the top (within 5px tolerance for line height variations)\n const isNearTop = rect.top - containerRect.top < 5;\n \n // For single-line content, also check if we're at the beginning\n if (container.textContent && !container.textContent.includes('\\n')) {\n const cursorPos = WysiwygSelection.getCursorPositionInElement(container as Element, ...shadowRoots);\n return cursorPos === 0;\n }\n \n return isNearTop;\n } catch (e) {\n console.warn('Error checking first line:', e);\n // Fallback to position-based check\n const cursorPos = selectionInfo.startOffset;\n return cursorPos === 0;\n }\n }\n \n /**\n * Check if cursor is on the last line of a block\n */\n private isOnLastLine(selectionInfo: any, target: HTMLElement, ...shadowRoots: ShadowRoot[]): boolean {\n try {\n // Create a range from the selection info\n const range = WysiwygSelection.createRangeFromInfo(selectionInfo);\n const rect = range.getBoundingClientRect();\n \n // Get the container element\n let container = range.commonAncestorContainer;\n if (container.nodeType === Node.TEXT_NODE) {\n container = container.parentElement;\n }\n \n // Get the bottom position of the container\n const containerRect = (container as Element).getBoundingClientRect();\n \n // Check if we're near the bottom (within 5px tolerance for line height variations)\n const isNearBottom = containerRect.bottom - rect.bottom < 5;\n \n // For single-line content, also check if we're at the end\n if (container.textContent && !container.textContent.includes('\\n')) {\n const textLength = target.textContent?.length || 0;\n const cursorPos = WysiwygSelection.getCursorPositionInElement(target, ...shadowRoots);\n return cursorPos === textLength;\n }\n \n return isNearBottom;\n } catch (e) {\n console.warn('Error checking last line:', e);\n // Fallback to position-based check\n const textLength = target.textContent?.length || 0;\n const cursorPos = WysiwygSelection.getCursorPositionInElement(target, ...shadowRoots);\n return cursorPos === textLength;\n }\n }\n}", "import { type IBlock } from './wysiwyg.types.js';\nimport { type IWysiwygComponent } from './wysiwyg.interfaces.js';\n\nexport class WysiwygDragDropHandler {\n private component: IWysiwygComponent;\n private draggedBlockId: string | null = null;\n private dragOverBlockId: string | null = null;\n private dragOverPosition: 'before' | 'after' | null = null;\n private dropIndicator: HTMLElement | null = null;\n private initialMouseY: number = 0;\n private initialBlockY: number = 0;\n private draggedBlockElement: HTMLElement | null = null;\n private draggedBlockHeight: number = 0;\n private draggedBlockContentHeight: number = 0;\n private draggedBlockMarginTop: number = 0;\n private lastUpdateTime: number = 0;\n private updateThrottle: number = 80; // milliseconds\n\n constructor(component: IWysiwygComponent) {\n this.component = component;\n }\n\n /**\n * Gets the current drag state\n */\n get dragState() {\n return {\n draggedBlockId: this.draggedBlockId,\n dragOverBlockId: this.dragOverBlockId,\n dragOverPosition: this.dragOverPosition\n };\n }\n\n /**\n * Handles drag start\n */\n handleDragStart(e: DragEvent, block: IBlock): void {\n if (!e.dataTransfer) return;\n \n this.draggedBlockId = block.id;\n e.dataTransfer.effectAllowed = 'move';\n e.dataTransfer.setData('text/plain', block.id);\n \n // Hide the default drag image\n const emptyImg = new Image();\n emptyImg.src = 'data:image/gif;base64,R0lGODlhAQABAIAAAAUEBAAAACwAAAAAAQABAAACAkQBADs=';\n e.dataTransfer.setDragImage(emptyImg, 0, 0);\n \n // Store initial mouse position and block element\n this.initialMouseY = e.clientY;\n this.draggedBlockElement = this.component.editorContentRef.querySelector(`[data-block-id=\"${block.id}\"]`);\n \n \n if (this.draggedBlockElement) {\n // Get the wrapper rect for measurements\n const rect = this.draggedBlockElement.getBoundingClientRect();\n this.initialBlockY = rect.top;\n \n // Get the inner block element for proper measurements\n const innerBlock = this.draggedBlockElement.querySelector('.block');\n if (innerBlock) {\n const innerRect = innerBlock.getBoundingClientRect();\n const computedStyle = window.getComputedStyle(innerBlock);\n this.draggedBlockMarginTop = parseInt(computedStyle.marginTop) || 0;\n this.draggedBlockContentHeight = innerRect.height;\n }\n \n // The drop indicator should match the wrapper height exactly\n // The wrapper already includes all the space the block occupies\n this.draggedBlockHeight = rect.height;\n \n console.log('Drag measurements:', {\n wrapperHeight: rect.height,\n marginTop: this.draggedBlockMarginTop,\n dropIndicatorHeight: this.draggedBlockHeight,\n contentHeight: this.draggedBlockContentHeight,\n blockId: block.id\n });\n \n // Create drop indicator\n this.createDropIndicator();\n \n // Set up drag event listeners\n document.addEventListener('dragover', this.handleGlobalDragOver);\n document.addEventListener('dragend', this.handleGlobalDragEnd);\n }\n \n // Update component state\n this.component.draggedBlockId = this.draggedBlockId;\n \n // Add dragging class after a small delay\n setTimeout(() => {\n if (this.draggedBlockElement) {\n this.draggedBlockElement.classList.add('dragging');\n }\n if (this.component.editorContentRef) {\n this.component.editorContentRef.classList.add('dragging');\n }\n }, 10);\n }\n\n /**\n * Handles drag end\n */\n handleDragEnd(): void {\n // Clean up visual state\n const allBlocks = this.component.editorContentRef.querySelectorAll('.block-wrapper');\n allBlocks.forEach((block: HTMLElement) => {\n block.classList.remove('dragging', 'move-up', 'move-down');\n block.style.removeProperty('--drag-offset');\n block.style.removeProperty('transform');\n });\n \n // Remove dragging class from editor\n if (this.component.editorContentRef) {\n this.component.editorContentRef.classList.remove('dragging');\n }\n \n // Reset drag state\n this.draggedBlockId = null;\n this.dragOverBlockId = null;\n this.dragOverPosition = null;\n this.draggedBlockElement = null;\n this.draggedBlockHeight = 0;\n this.draggedBlockContentHeight = 0;\n this.draggedBlockMarginTop = 0;\n this.initialBlockY = 0;\n \n // Update component state\n this.component.draggedBlockId = null;\n this.component.dragOverBlockId = null;\n this.component.dragOverPosition = null;\n }\n\n /**\n * Handles drag over\n */\n handleDragOver(e: DragEvent, block: IBlock): void {\n e.preventDefault();\n if (!e.dataTransfer || !this.draggedBlockId || this.draggedBlockId === block.id) return;\n \n e.dataTransfer.dropEffect = 'move';\n \n const rect = (e.currentTarget as HTMLElement).getBoundingClientRect();\n const midpoint = rect.top + rect.height / 2;\n \n this.dragOverBlockId = block.id;\n this.dragOverPosition = e.clientY < midpoint ? 'before' : 'after';\n \n // Update component state\n this.component.dragOverBlockId = this.dragOverBlockId;\n this.component.dragOverPosition = this.dragOverPosition;\n \n // The parent component already handles drag-over classes programmatically\n }\n\n /**\n * Handles drag leave\n */\n handleDragLeave(block: IBlock): void {\n if (this.dragOverBlockId === block.id) {\n this.dragOverBlockId = null;\n this.dragOverPosition = null;\n \n // Update component state\n this.component.dragOverBlockId = null;\n this.component.dragOverPosition = null;\n \n // The parent component already handles removing drag-over classes programmatically\n }\n }\n\n /**\n * Handles drop\n */\n handleDrop(e: DragEvent, targetBlock: IBlock): void {\n e.preventDefault();\n \n if (!this.draggedBlockId || this.draggedBlockId === targetBlock.id) return;\n \n // The parent component already has a handleDrop method that handles this programmatically\n // We'll delegate to that to ensure proper programmatic rendering\n this.component.handleDrop(e, targetBlock);\n }\n\n\n /**\n * Checks if a block is being dragged\n */\n isDragging(blockId: string): boolean {\n return this.draggedBlockId === blockId;\n }\n\n /**\n * Checks if a block has drag over state\n */\n isDragOver(blockId: string): boolean {\n return this.dragOverBlockId === blockId;\n }\n\n /**\n * Gets drag over CSS classes for a block\n */\n getDragOverClasses(blockId: string): string {\n if (!this.isDragOver(blockId)) return '';\n return this.dragOverPosition === 'before' ? 'drag-over-before' : 'drag-over-after';\n }\n\n\n /**\n * Creates the drop indicator element\n */\n private createDropIndicator(): void {\n this.dropIndicator = document.createElement('div');\n this.dropIndicator.className = 'drop-indicator';\n this.dropIndicator.style.display = 'none';\n this.component.editorContentRef.appendChild(this.dropIndicator);\n }\n\n /**\n * Handles global dragover to update dragged block position and move other blocks\n */\n private handleGlobalDragOver = (e: DragEvent): void => {\n e.preventDefault();\n \n if (!this.draggedBlockElement) return;\n \n // Calculate vertical offset from initial position\n const deltaY = e.clientY - this.initialMouseY;\n \n // Apply transform to move the dragged block vertically\n this.draggedBlockElement.style.transform = `translateY(${deltaY}px)`;\n \n // Throttle position updates to reduce stuttering\n const now = Date.now();\n if (now - this.lastUpdateTime < this.updateThrottle) {\n return;\n }\n this.lastUpdateTime = now;\n \n // Calculate which blocks should move\n this.updateBlockPositions(e.clientY);\n };\n\n /**\n * Updates block positions based on cursor position\n */\n private updateBlockPositions(mouseY: number): void {\n const blocks = Array.from(this.component.editorContentRef.querySelectorAll('.block-wrapper')) as HTMLElement[];\n const draggedIndex = blocks.findIndex(b => b.getAttribute('data-block-id') === this.draggedBlockId);\n \n if (draggedIndex === -1) return;\n \n // Reset all transforms first (except the dragged block)\n blocks.forEach(block => {\n if (block.getAttribute('data-block-id') !== this.draggedBlockId) {\n block.classList.remove('move-up', 'move-down');\n block.style.removeProperty('--drag-offset');\n }\n });\n \n // Calculate where the dragged block should be inserted\n let newIndex = blocks.length; // Default to end\n \n for (let i = 0; i < blocks.length; i++) {\n if (i === draggedIndex) continue;\n \n const block = blocks[i];\n const rect = block.getBoundingClientRect();\n const blockTop = rect.top;\n \n // Check if mouse is above this block's middle\n if (mouseY < blockTop + (rect.height * 0.5)) {\n newIndex = i;\n break;\n }\n }\n \n \n // Apply transforms to move blocks out of the way\n for (let i = 0; i < blocks.length; i++) {\n if (i === draggedIndex) continue;\n \n const block = blocks[i];\n \n // Determine if this block needs to move\n if (draggedIndex < newIndex) {\n // Dragging down: blocks between original and new position move up\n if (i > draggedIndex && i < newIndex) {\n block.classList.add('move-up');\n block.style.setProperty('--drag-offset', `${this.draggedBlockHeight}px`);\n }\n } else if (draggedIndex > newIndex) {\n // Dragging up: blocks between new and original position move down\n if (i >= newIndex && i < draggedIndex) {\n block.classList.add('move-down');\n block.style.setProperty('--drag-offset', `${this.draggedBlockHeight}px`);\n }\n }\n }\n \n // Update drop indicator position\n this.updateDropIndicator(blocks, newIndex, draggedIndex);\n }\n\n /**\n * Updates the drop indicator position\n */\n private updateDropIndicator(blocks: HTMLElement[], targetIndex: number, draggedIndex: number): void {\n if (!this.dropIndicator || !this.draggedBlockElement) return;\n \n this.dropIndicator.style.display = 'block';\n \n const containerRect = this.component.editorContentRef.getBoundingClientRect();\n let topPosition = 0;\n \n // Build array of visual block positions (excluding dragged block)\n const visualBlocks: { index: number, top: number, bottom: number }[] = [];\n \n for (let i = 0; i < blocks.length; i++) {\n if (i === draggedIndex) continue; // Skip the dragged block\n \n const block = blocks[i];\n const rect = block.getBoundingClientRect();\n let top = rect.top - containerRect.top;\n let bottom = rect.bottom - containerRect.top;\n \n // Account for any transforms\n const transform = window.getComputedStyle(block).transform;\n if (transform && transform !== 'none') {\n const matrix = new DOMMatrix(transform);\n const yOffset = matrix.m42;\n top += yOffset;\n bottom += yOffset;\n }\n \n visualBlocks.push({ index: i, top, bottom });\n }\n \n // Sort by visual position\n visualBlocks.sort((a, b) => a.top - b.top);\n \n // Adjust targetIndex to account for excluded dragged block\n let adjustedTargetIndex = targetIndex;\n if (targetIndex > draggedIndex) {\n adjustedTargetIndex--; // Reduce by 1 since dragged block is not in visualBlocks\n }\n \n // Calculate drop position\n // Get the margin that will be applied based on the dragged block type\n let blockMargin = 16; // default margin\n if (this.draggedBlockElement) {\n const draggedBlock = this.component.blocks.find(b => b.id === this.draggedBlockId);\n if (draggedBlock) {\n const blockType = draggedBlock.type;\n if (blockType === 'heading-1' || blockType === 'heading-2' || blockType === 'heading-3') {\n blockMargin = 24;\n } else if (blockType === 'code' || blockType === 'quote') {\n blockMargin = 20;\n }\n }\n }\n \n if (adjustedTargetIndex === 0) {\n // Insert at the very top - no margin needed for first block\n topPosition = 0;\n } else if (adjustedTargetIndex >= visualBlocks.length) {\n // Insert at the end\n const lastBlock = visualBlocks[visualBlocks.length - 1];\n if (lastBlock) {\n topPosition = lastBlock.bottom;\n // Add margin that will be applied to the dropped block\n topPosition += blockMargin;\n }\n } else {\n // Insert between blocks\n const blockBefore = visualBlocks[adjustedTargetIndex - 1];\n if (blockBefore) {\n topPosition = blockBefore.bottom;\n // Add margin that will be applied to the dropped block\n topPosition += blockMargin;\n }\n }\n \n // Set the indicator height to match the dragged block\n this.dropIndicator.style.height = `${this.draggedBlockHeight}px`;\n \n // Set position\n this.dropIndicator.style.top = `${Math.max(0, topPosition)}px`;\n \n console.log('Drop indicator update:', {\n targetIndex,\n adjustedTargetIndex,\n draggedIndex,\n topPosition,\n height: this.draggedBlockHeight,\n blockMargin,\n visualBlocks: visualBlocks.map(b => ({ index: b.index, top: b.top, bottom: b.bottom }))\n });\n }\n\n /**\n * Handles global drag end\n */\n private handleGlobalDragEnd = (): void => {\n // Clean up event listeners\n document.removeEventListener('dragover', this.handleGlobalDragOver);\n document.removeEventListener('dragend', this.handleGlobalDragEnd);\n \n // Remove drop indicator\n if (this.dropIndicator) {\n this.dropIndicator.remove();\n this.dropIndicator = null;\n }\n \n // Trigger the actual drop if we have a dragged block\n if (this.draggedBlockId) {\n // Small delay to ensure transforms are applied\n requestAnimationFrame(() => {\n this.performDrop();\n // Call the regular drag end handler after drop\n this.handleDragEnd();\n });\n } else {\n // Call the regular drag end handler\n this.handleDragEnd();\n }\n };\n\n /**\n * Performs the actual drop operation\n */\n private performDrop(): void {\n if (!this.draggedBlockId) return;\n \n // Get the visual order of blocks based on their positions\n const blockElements = Array.from(this.component.editorContentRef.querySelectorAll('.block-wrapper')) as HTMLElement[];\n const draggedElement = blockElements.find(el => el.getAttribute('data-block-id') === this.draggedBlockId);\n \n if (!draggedElement) return;\n \n \n // Create an array of blocks with their visual positions\n const visualOrder = blockElements.map(el => {\n const id = el.getAttribute('data-block-id');\n const rect = el.getBoundingClientRect();\n const centerY = rect.top + rect.height / 2;\n return { id, centerY, element: el };\n });\n \n // Sort by visual Y position\n visualOrder.sort((a, b) => a.centerY - b.centerY);\n \n // Get the new order of block IDs\n const newBlockIds = visualOrder.map(item => item.id).filter(id => id !== null);\n \n // Find the original block data\n const originalBlocks = [...this.component.blocks];\n const draggedBlock = originalBlocks.find(b => b.id === this.draggedBlockId);\n \n if (!draggedBlock) return;\n \n // Check if order actually changed\n const oldOrder = originalBlocks.map(b => b.id);\n const orderChanged = !newBlockIds.every((id, index) => id === oldOrder[index]);\n \n if (!orderChanged) {\n return;\n }\n \n // Reorder blocks based on visual positions\n const newBlocks = newBlockIds.map(id => originalBlocks.find(b => b.id === id)!).filter(Boolean);\n \n // Update blocks\n this.component.blocks = newBlocks;\n \n // Re-render blocks programmatically\n this.component.renderBlocksProgrammatically();\n \n // Update value\n this.component.updateValue();\n \n // Focus the moved block after a delay\n setTimeout(() => {\n if (draggedBlock.type !== 'divider') {\n this.component.blockOperations.focusBlock(draggedBlock.id);\n }\n }, 100);\n }\n}", "import { type IBlock } from './wysiwyg.types.js';\n\nexport interface IHistoryState {\n blocks: IBlock[];\n selectedBlockId: string | null;\n cursorPosition?: {\n blockId: string;\n offset: number;\n };\n timestamp: number;\n}\n\nexport class WysiwygHistory {\n private history: IHistoryState[] = [];\n private currentIndex: number = -1;\n private maxHistorySize: number = 50;\n private lastSaveTime: number = 0;\n private saveDebounceMs: number = 500; // Debounce saves to avoid too many snapshots\n \n constructor() {\n // Initialize with empty state\n this.history = [];\n this.currentIndex = -1;\n }\n \n /**\n * Save current state to history\n */\n saveState(blocks: IBlock[], selectedBlockId: string | null, cursorPosition?: { blockId: string; offset: number }): void {\n const now = Date.now();\n \n // Debounce rapid changes (like typing)\n if (now - this.lastSaveTime < this.saveDebounceMs && this.currentIndex >= 0) {\n // Update the current state instead of creating a new one\n this.history[this.currentIndex] = {\n blocks: this.cloneBlocks(blocks),\n selectedBlockId,\n cursorPosition: cursorPosition ? { ...cursorPosition } : undefined,\n timestamp: now\n };\n return;\n }\n \n // Remove any states after current index (when we save after undoing)\n if (this.currentIndex < this.history.length - 1) {\n this.history = this.history.slice(0, this.currentIndex + 1);\n }\n \n // Add new state\n const newState: IHistoryState = {\n blocks: this.cloneBlocks(blocks),\n selectedBlockId,\n cursorPosition: cursorPosition ? { ...cursorPosition } : undefined,\n timestamp: now\n };\n \n this.history.push(newState);\n this.currentIndex++;\n \n // Limit history size\n if (this.history.length > this.maxHistorySize) {\n this.history.shift();\n this.currentIndex--;\n }\n \n this.lastSaveTime = now;\n }\n \n /**\n * Force save a checkpoint (useful for operations like block deletion)\n */\n saveCheckpoint(blocks: IBlock[], selectedBlockId: string | null, cursorPosition?: { blockId: string; offset: number }): void {\n this.lastSaveTime = 0; // Reset debounce\n this.saveState(blocks, selectedBlockId, cursorPosition);\n }\n \n /**\n * Undo to previous state\n */\n undo(): IHistoryState | null {\n if (!this.canUndo()) {\n return null;\n }\n \n this.currentIndex--;\n return this.cloneState(this.history[this.currentIndex]);\n }\n \n /**\n * Redo to next state\n */\n redo(): IHistoryState | null {\n if (!this.canRedo()) {\n return null;\n }\n \n this.currentIndex++;\n return this.cloneState(this.history[this.currentIndex]);\n }\n \n /**\n * Check if undo is available\n */\n canUndo(): boolean {\n return this.currentIndex > 0;\n }\n \n /**\n * Check if redo is available\n */\n canRedo(): boolean {\n return this.currentIndex < this.history.length - 1;\n }\n \n /**\n * Get current state\n */\n getCurrentState(): IHistoryState | null {\n if (this.currentIndex >= 0 && this.currentIndex < this.history.length) {\n return this.cloneState(this.history[this.currentIndex]);\n }\n return null;\n }\n \n /**\n * Clear history\n */\n clear(): void {\n this.history = [];\n this.currentIndex = -1;\n this.lastSaveTime = 0;\n }\n \n /**\n * Deep clone blocks\n */\n private cloneBlocks(blocks: IBlock[]): IBlock[] {\n return blocks.map(block => ({\n ...block,\n metadata: block.metadata ? { ...block.metadata } : undefined\n }));\n }\n \n /**\n * Clone a history state\n */\n private cloneState(state: IHistoryState): IHistoryState {\n return {\n blocks: this.cloneBlocks(state.blocks),\n selectedBlockId: state.selectedBlockId,\n cursorPosition: state.cursorPosition ? { ...state.cursorPosition } : undefined,\n timestamp: state.timestamp\n };\n }\n \n /**\n * Get history info for debugging\n */\n getHistoryInfo(): { size: number; currentIndex: number; canUndo: boolean; canRedo: boolean } {\n return {\n size: this.history.length,\n currentIndex: this.currentIndex,\n canUndo: this.canUndo(),\n canRedo: this.canRedo()\n };\n }\n}", "import {\n customElement,\n property,\n static as html,\n DeesElement,\n type TemplateResult,\n cssManager,\n css,\n} from '@design.estate/dees-element';\n\nimport { type IBlock } from './wysiwyg.types.js';\nimport { WysiwygBlocks } from './wysiwyg.blocks.js';\nimport { WysiwygSelection } from './wysiwyg.selection.js';\nimport { BlockRegistry, type IBlockEventHandlers } from './blocks/index.js';\nimport './wysiwyg.blockregistration.js';\nimport { WysiwygShortcuts } from './wysiwyg.shortcuts.js';\nimport '../../00group-overlay/dees-contextmenu/dees-contextmenu.js';\nimport { themeDefaultStyles } from '../../00theme.js';\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'dees-wysiwyg-block': DeesWysiwygBlock;\n }\n}\n\n@customElement('dees-wysiwyg-block')\nexport class DeesWysiwygBlock extends DeesElement {\n async disconnectedCallback() {\n await super.disconnectedCallback();\n // Clean up selection handler\n if ((this as any)._selectionHandler) {\n document.removeEventListener('selectionchange', (this as any)._selectionHandler);\n }\n }\n @property({ type: Object })\n accessor block: IBlock;\n\n @property({ type: Boolean })\n accessor isSelected: boolean = false;\n\n @property({ type: Object })\n accessor handlers: IBlockEventHandlers;\n\n @property({ type: Object })\n accessor wysiwygComponent: any; // Reference to parent dees-input-wysiwyg\n\n // Reference to the editable block element\n private blockElement: HTMLDivElement | null = null;\n \n // Track if we've initialized the content\n private contentInitialized: boolean = false;\n \n // Track cursor position\n private lastKnownCursorPosition: number = 0;\n private lastSelectedText: string = '';\n\n private handlerStylesInjected = false;\n \n // Block types that don't support contenteditable\n private static readonly NON_EDITABLE_TYPES = ['image', 'divider', 'youtube'];\n \n private injectHandlerStyles(): void {\n // Only inject once per instance\n if (this.handlerStylesInjected) return;\n this.handlerStylesInjected = true;\n \n // Get styles from all registered block handlers\n let styles = '';\n const blockTypes = BlockRegistry.getAllTypes();\n for (const type of blockTypes) {\n const handler = BlockRegistry.getHandler(type);\n if (handler) {\n styles += handler.getStyles();\n }\n }\n \n if (styles) {\n // Create and inject style element\n const styleElement = document.createElement('style');\n styleElement.textContent = styles;\n this.shadowRoot?.appendChild(styleElement);\n }\n }\n\n public static styles = [\n themeDefaultStyles,\n cssManager.defaultStyles,\n css`\n /* TODO: Migrate hardcoded values to --dees-* CSS variables */\n :host {\n display: block;\n }\n\n .block {\n padding: 4px 0;\n min-height: 1.6em;\n outline: none;\n width: 100%;\n word-wrap: break-word;\n position: relative;\n transition: all 0.15s ease;\n color: ${cssManager.bdTheme('#000000', '#e0e0e0')};\n }\n\n .block:empty:not(:focus)::before {\n content: attr(data-placeholder);\n color: ${cssManager.bdTheme('#999', '#666')};\n position: absolute;\n pointer-events: none;\n }\n\n /* Block-specific styles moved to handlers */\n\n\n /* Formatting styles */\n .block :is(b, strong) {\n font-weight: 600;\n color: ${cssManager.bdTheme('#000000', '#ffffff')};\n }\n\n .block :is(i, em) {\n font-style: italic;\n }\n\n .block u {\n text-decoration: underline;\n }\n\n .block s {\n text-decoration: line-through;\n }\n\n .block code {\n font-family: 'SF Mono', 'Monaco', 'Inconsolata', 'Fira Code', monospace;\n font-size: 0.9em;\n background: ${cssManager.bdTheme('rgba(0, 0, 0, 0.06)', 'rgba(255, 255, 255, 0.1)')};\n padding: 2px 6px;\n border-radius: 3px;\n color: ${cssManager.bdTheme('#d14', '#ff6b6b')};\n }\n\n .block a {\n color: ${cssManager.bdTheme('#0066cc', '#4d94ff')};\n text-decoration: none;\n border-bottom: 1px solid transparent;\n transition: border-color 0.15s ease;\n cursor: pointer;\n }\n\n .block a:hover {\n border-bottom-color: ${cssManager.bdTheme('#0066cc', '#4d94ff')};\n }\n\n /* Code block container and language styles moved to handler */\n\n /* Selection styles */\n .block ::selection {\n background: ${cssManager.bdTheme('rgba(0, 102, 204, 0.3)', 'rgba(77, 148, 255, 0.3)')};\n color: inherit;\n }\n\n\n /* Strike through */\n .block :is(s, strike) {\n text-decoration: line-through;\n opacity: 0.7;\n }\n\n\n /* Block margin adjustments based on type */\n :host-context(.block-wrapper:first-child) .block {\n margin-top: 0 !important;\n }\n\n :host-context(.block-wrapper:last-child) .block {\n margin-bottom: 0;\n }\n\n /* Selected state */\n .block.selected {\n background: ${cssManager.bdTheme('rgba(0, 102, 204, 0.05)', 'rgba(77, 148, 255, 0.08)')};\n box-shadow: inset 0 0 0 2px ${cssManager.bdTheme('rgba(0, 102, 204, 0.2)', 'rgba(77, 148, 255, 0.2)')};\n border-radius: 4px;\n margin-left: -8px;\n margin-right: -8px;\n padding-left: 8px;\n padding-right: 8px;\n }\n\n\n\n\n `,\n ];\n\n protected shouldUpdate(changedProperties: Map): boolean {\n // If selection state changed, update the selected class without re-rendering\n if (changedProperties.has('isSelected') && this.block) {\n // Find the block element based on block type\n let element: HTMLElement | null = null;\n \n // Build the specific selector based on block type\n const blockType = this.block.type;\n const selector = `.block.${blockType}`;\n \n element = this.shadowRoot?.querySelector(selector) as HTMLElement;\n \n if (element) {\n if (this.isSelected) {\n element.classList.add('selected');\n } else {\n element.classList.remove('selected');\n }\n }\n return false; // Don't re-render, just update the class\n }\n \n // Never update if only the block content changed\n if (changedProperties.has('block') && this.block) {\n const oldBlock = changedProperties.get('block');\n if (oldBlock && oldBlock.id && oldBlock.type && oldBlock.id === this.block.id && oldBlock.type === this.block.type) {\n // Only content or metadata changed, don't re-render\n return false;\n }\n }\n \n // Only update if the block type or id changes\n return !this.blockElement || this.block?.type !== this.blockElement.dataset.blockType;\n }\n \n public firstUpdated(): void {\n // Mark that content has been initialized\n this.contentInitialized = true;\n \n // Inject handler styles if not already done\n this.injectHandlerStyles();\n \n // First, populate the container with the rendered content\n const container = this.shadowRoot?.querySelector('.wysiwyg-block-container') as HTMLDivElement;\n if (container && this.block) {\n container.innerHTML = this.renderBlockContent();\n }\n \n // Check if we have a registered handler for this block type\n if (this.block) {\n const handler = BlockRegistry.getHandler(this.block.type);\n if (handler) {\n const blockElement = this.shadowRoot?.querySelector('.wysiwyg-block-container') as HTMLElement;\n if (blockElement) {\n handler.setup(blockElement, this.block, this.handlers);\n }\n return; // Block handler takes care of all setup\n }\n }\n \n // Handle special block types\n \n // Now find the actual editable block element\n const editableBlock = this.shadowRoot?.querySelector('.block') as HTMLDivElement;\n \n // Ensure the block element maintains its content\n if (editableBlock) {\n editableBlock.setAttribute('data-block-id', this.block.id);\n editableBlock.setAttribute('data-block-type', this.block.type);\n \n // Set up all event handlers manually to avoid Lit re-renders\n editableBlock.addEventListener('input', (e) => {\n this.handlers?.onInput?.(e as InputEvent);\n \n // Track cursor position after input\n const pos = this.getCursorPosition(editableBlock);\n if (pos !== null) {\n this.lastKnownCursorPosition = pos;\n }\n });\n \n editableBlock.addEventListener('keydown', (e) => {\n // Track cursor position before keydown\n const pos = this.getCursorPosition(editableBlock);\n if (pos !== null) {\n this.lastKnownCursorPosition = pos;\n }\n \n this.handlers?.onKeyDown?.(e);\n });\n \n \n editableBlock.addEventListener('focus', () => {\n this.handlers?.onFocus?.();\n });\n \n editableBlock.addEventListener('blur', () => {\n this.handlers?.onBlur?.();\n });\n \n editableBlock.addEventListener('compositionstart', () => {\n this.handlers?.onCompositionStart?.();\n });\n \n editableBlock.addEventListener('compositionend', () => {\n this.handlers?.onCompositionEnd?.();\n });\n \n editableBlock.addEventListener('mouseup', (e) => {\n const pos = this.getCursorPosition(editableBlock);\n if (pos !== null) {\n this.lastKnownCursorPosition = pos;\n }\n \n // Selection will be handled by selectionchange event\n this.handlers?.onMouseUp?.(e);\n });\n \n editableBlock.addEventListener('click', () => {\n // Small delay to let browser set cursor position\n setTimeout(() => {\n const pos = this.getCursorPosition(editableBlock);\n if (pos !== null) {\n this.lastKnownCursorPosition = pos;\n }\n }, 0);\n });\n \n // Add selection change handler\n const checkSelection = () => {\n const selection = window.getSelection();\n if (!selection || selection.rangeCount === 0) return;\n \n const selectedText = selection.toString();\n if (selectedText.length === 0) {\n // Clear selection if no text\n if (this.lastSelectedText) {\n this.lastSelectedText = '';\n this.dispatchEvent(new CustomEvent('block-text-selected', {\n detail: {\n text: '',\n blockId: this.block.id,\n hasSelection: false\n },\n bubbles: true,\n composed: true\n }));\n }\n return;\n }\n \n // Get fresh reference to the editable block\n const currentEditableBlock = this.shadowRoot?.querySelector('.block') as HTMLDivElement;\n \n if (!currentEditableBlock) return;\n \n // Get parent wysiwyg component's shadow root\n const parentComponent = this.closest('dees-input-wysiwyg');\n const parentShadowRoot = parentComponent?.shadowRoot;\n \n // Use getComposedRanges with shadow roots as per MDN docs\n const shadowRoots: ShadowRoot[] = [];\n if (parentShadowRoot) shadowRoots.push(parentShadowRoot);\n if (this.shadowRoot) shadowRoots.push(this.shadowRoot);\n \n // Get selection info using our Shadow DOM-aware utility\n const selectionInfo = WysiwygSelection.getSelectionInfo(...shadowRoots);\n if (!selectionInfo) return;\n \n // Check if selection is within this block\n const startInBlock = WysiwygSelection.containsAcrossShadowDOM(currentEditableBlock, selectionInfo.startContainer);\n const endInBlock = WysiwygSelection.containsAcrossShadowDOM(currentEditableBlock, selectionInfo.endContainer);\n \n if (startInBlock || endInBlock) {\n if (selectedText !== this.lastSelectedText) {\n this.lastSelectedText = selectedText;\n \n // Create range and get rect\n const range = WysiwygSelection.createRangeFromInfo(selectionInfo);\n const rect = range.getBoundingClientRect();\n \n // Dispatch event\n this.dispatchEvent(new CustomEvent('block-text-selected', {\n detail: {\n text: selectedText.trim(),\n blockId: this.block.id,\n range: range,\n rect: rect,\n hasSelection: true\n },\n bubbles: true,\n composed: true\n }));\n }\n } else if (this.lastSelectedText) {\n // Clear selection if no longer in this block\n this.lastSelectedText = '';\n this.dispatchEvent(new CustomEvent('block-text-selected', {\n detail: {\n text: '',\n blockId: this.block.id,\n hasSelection: false\n },\n bubbles: true,\n composed: true\n }));\n }\n };\n \n // Listen for selection changes\n document.addEventListener('selectionchange', checkSelection);\n \n // Store the handler for cleanup\n (this as any)._selectionHandler = checkSelection;\n \n // Add keyup handler for cursor position tracking\n editableBlock.addEventListener('keyup', () => {\n // Track cursor position\n const pos = this.getCursorPosition(editableBlock);\n if (pos !== null) {\n this.lastKnownCursorPosition = pos;\n }\n });\n \n // Set initial content if needed\n if (this.block.content) {\n editableBlock.innerHTML = this.block.content;\n }\n }\n \n // Store reference to the block element for quick access\n this.blockElement = editableBlock;\n }\n\n render(): TemplateResult {\n if (!this.block) return html``;\n\n // Since we need dynamic content, we'll render an empty container\n // and set the innerHTML in firstUpdated\n return html`
      `;\n }\n \n private renderBlockContent(): string {\n if (!this.block) return '';\n\n // Check if we have a registered handler for this block type\n const handler = BlockRegistry.getHandler(this.block.type);\n if (handler) {\n return handler.render(this.block, this.isSelected);\n }\n\n // Default rendering for blocks without handlers\n const selectedClass = this.isSelected ? ' selected' : '';\n return `\n \n `;\n }\n\n\n\n public focus(): void {\n // Check if we have a registered handler for this block type\n const handler = BlockRegistry.getHandler(this.block.type);\n if (handler && handler.focus) {\n const container = this.shadowRoot?.querySelector('.wysiwyg-block-container') as HTMLElement;\n const context = { shadowRoot: this.shadowRoot!, component: this };\n return handler.focus(container, context);\n }\n \n // Handle non-editable blocks\n if (this.block && DeesWysiwygBlock.NON_EDITABLE_TYPES.includes(this.block.type)) {\n const blockElement = this.shadowRoot?.querySelector(`.block.${this.block.type}`) as HTMLDivElement;\n if (blockElement) {\n blockElement.focus();\n }\n return;\n }\n \n // Get the actual editable element\n const editableElement = this.shadowRoot?.querySelector('.block') as HTMLDivElement;\n \n if (!editableElement) return;\n \n // Ensure the element is focusable\n if (!editableElement.hasAttribute('contenteditable')) {\n editableElement.setAttribute('contenteditable', 'true');\n }\n \n editableElement.focus();\n \n // If focus failed, try again after a microtask\n if (document.activeElement !== editableElement && this.shadowRoot?.activeElement !== editableElement) {\n Promise.resolve().then(() => {\n editableElement.focus();\n });\n }\n }\n \n public focusWithCursor(position: 'start' | 'end' | number = 'end'): void {\n // Check if we have a registered handler for this block type\n const handler = BlockRegistry.getHandler(this.block.type);\n if (handler && handler.focusWithCursor) {\n const container = this.shadowRoot?.querySelector('.wysiwyg-block-container') as HTMLElement;\n const context = { shadowRoot: this.shadowRoot!, component: this };\n return handler.focusWithCursor(container, position, context);\n }\n \n // Non-editable blocks don't support cursor positioning\n if (this.block && DeesWysiwygBlock.NON_EDITABLE_TYPES.includes(this.block.type)) {\n this.focus();\n return;\n }\n \n // Get the actual editable element\n const editableElement = this.shadowRoot?.querySelector('.block') as HTMLDivElement;\n \n if (!editableElement) return;\n \n // Ensure element is focusable first\n if (!editableElement.hasAttribute('contenteditable')) {\n editableElement.setAttribute('contenteditable', 'true');\n }\n \n // Focus the element\n editableElement.focus();\n \n // Set cursor position after focus is established\n const setCursor = () => {\n if (position === 'start') {\n this.setCursorToStart();\n } else if (position === 'end') {\n this.setCursorToEnd();\n } else if (typeof position === 'number') {\n // Use the new selection utility to set cursor position\n WysiwygSelection.setCursorPosition(editableElement, position);\n }\n };\n \n // Ensure cursor is set after focus\n if (document.activeElement === editableElement || this.shadowRoot?.activeElement === editableElement) {\n setCursor();\n } else {\n // Wait for focus to be established\n Promise.resolve().then(() => {\n if (document.activeElement === editableElement || this.shadowRoot?.activeElement === editableElement) {\n setCursor();\n }\n });\n }\n }\n \n \n\n /**\n * Get cursor position in the editable element\n */\n public getCursorPosition(element: HTMLElement): number | null {\n // Check if we have a registered handler for this block type\n const handler = BlockRegistry.getHandler(this.block.type);\n if (handler && handler.getCursorPosition) {\n const context = { shadowRoot: this.shadowRoot!, component: this };\n return handler.getCursorPosition(element, context);\n }\n \n // Get parent wysiwyg component's shadow root\n const parentComponent = this.closest('dees-input-wysiwyg');\n const parentShadowRoot = parentComponent?.shadowRoot;\n \n // Get selection info with both shadow roots for proper traversal\n const shadowRoots: ShadowRoot[] = [];\n if (parentShadowRoot) shadowRoots.push(parentShadowRoot);\n if (this.shadowRoot) shadowRoots.push(this.shadowRoot);\n \n const selectionInfo = WysiwygSelection.getSelectionInfo(...shadowRoots);\n console.log('getCursorPosition: Selection info from shadow DOMs:', {\n selectionInfo,\n shadowRootsCount: shadowRoots.length\n });\n \n if (!selectionInfo) {\n console.log('getCursorPosition: No selection found');\n return null;\n }\n \n console.log('getCursorPosition: Range info:', {\n startContainer: selectionInfo.startContainer,\n startOffset: selectionInfo.startOffset,\n collapsed: selectionInfo.collapsed,\n startContainerText: selectionInfo.startContainer.textContent\n });\n \n if (!element.contains(selectionInfo.startContainer)) {\n console.log('getCursorPosition: Range not in element');\n return null;\n }\n \n // Create a range from start of element to cursor position\n const preCaretRange = document.createRange();\n preCaretRange.selectNodeContents(element);\n preCaretRange.setEnd(selectionInfo.startContainer, selectionInfo.startOffset);\n \n // Get the text content length up to cursor\n const position = preCaretRange.toString().length;\n console.log('getCursorPosition: Calculated position:', {\n position,\n preCaretText: preCaretRange.toString(),\n elementText: element.textContent,\n elementTextLength: element.textContent?.length\n });\n \n return position;\n }\n\n public getContent(): string {\n // Check if we have a registered handler for this block type\n const handler = BlockRegistry.getHandler(this.block.type);\n if (handler && handler.getContent) {\n const container = this.shadowRoot?.querySelector('.wysiwyg-block-container') as HTMLElement;\n const context = { shadowRoot: this.shadowRoot!, component: this };\n return handler.getContent(container, context);\n }\n \n \n // Get the actual editable element\n const editableElement = this.shadowRoot?.querySelector('.block') as HTMLDivElement;\n \n if (!editableElement) return '';\n \n // Get the innerHTML which includes formatting tags\n const content = editableElement.innerHTML || '';\n console.log('Getting content from block:', content);\n return content;\n }\n\n public setContent(content: string): void {\n // Check if we have a registered handler for this block type\n const handler = BlockRegistry.getHandler(this.block.type);\n if (handler && handler.setContent) {\n const container = this.shadowRoot?.querySelector('.wysiwyg-block-container') as HTMLElement;\n const context = { shadowRoot: this.shadowRoot!, component: this };\n return handler.setContent(container, content, context);\n }\n \n // Get the actual editable element\n const editableElement = this.shadowRoot?.querySelector('.block') as HTMLDivElement;\n \n if (!editableElement) return;\n \n // Store if we have focus\n const hadFocus = document.activeElement === editableElement || this.shadowRoot?.activeElement === editableElement;\n \n editableElement.innerHTML = content;\n \n // Restore focus if we had it\n if (hadFocus) {\n editableElement.focus();\n }\n }\n\n public setCursorToStart(): void {\n // Check if we have a registered handler for this block type\n const handler = BlockRegistry.getHandler(this.block.type);\n if (handler && handler.setCursorToStart) {\n const container = this.shadowRoot?.querySelector('.wysiwyg-block-container') as HTMLElement;\n const context = { shadowRoot: this.shadowRoot!, component: this };\n return handler.setCursorToStart(container, context);\n }\n \n // Always find the element fresh, don't rely on cached blockElement\n const editableElement = this.shadowRoot?.querySelector('.block') as HTMLDivElement;\n if (editableElement) {\n WysiwygBlocks.setCursorToStart(editableElement);\n }\n }\n\n public setCursorToEnd(): void {\n // Check if we have a registered handler for this block type\n const handler = BlockRegistry.getHandler(this.block.type);\n if (handler && handler.setCursorToEnd) {\n const container = this.shadowRoot?.querySelector('.wysiwyg-block-container') as HTMLElement;\n const context = { shadowRoot: this.shadowRoot!, component: this };\n return handler.setCursorToEnd(container, context);\n }\n \n // Always find the element fresh, don't rely on cached blockElement\n const editableElement = this.shadowRoot?.querySelector('.block') as HTMLDivElement;\n if (editableElement) {\n WysiwygBlocks.setCursorToEnd(editableElement);\n }\n }\n\n\n\n\n \n\n \n /**\n * Get context menu items for this block\n */\n public getContextMenuItems(): any[] {\n if (!this.block || this.block.type === 'divider') {\n return [];\n }\n \n const blockTypes = WysiwygShortcuts.getSlashMenuItems();\n const currentType = this.block.type;\n \n // Use the parent reference passed from dees-input-wysiwyg\n const wysiwygComponent = this.wysiwygComponent;\n const blockId = this.block.id;\n \n \n // Create submenu items for block type change\n const blockTypeItems = blockTypes\n .filter(item => item.type !== currentType && item.type !== 'divider')\n .map(item => ({\n name: item.label,\n iconName: item.icon.replace('lucide:', ''),\n action: async () => {\n if (wysiwygComponent && wysiwygComponent.blockOperations) {\n // Transform the block type\n const blockToTransform = wysiwygComponent.blocks.find((b: IBlock) => b.id === blockId);\n if (blockToTransform) {\n blockToTransform.type = item.type;\n blockToTransform.content = blockToTransform.content || '';\n \n // Handle special metadata for different block types\n if (item.type === 'code') {\n blockToTransform.metadata = { language: 'typescript' };\n } else if (item.type === 'list') {\n blockToTransform.metadata = { listType: 'bullet' };\n } else if (item.type === 'image') {\n blockToTransform.content = '';\n blockToTransform.metadata = { url: '', loading: false };\n } else if (item.type === 'youtube') {\n blockToTransform.content = '';\n blockToTransform.metadata = { videoId: '', url: '' };\n } else if (item.type === 'markdown') {\n blockToTransform.metadata = { showPreview: false };\n } else if (item.type === 'html') {\n blockToTransform.metadata = { showPreview: false };\n } else if (item.type === 'attachment') {\n blockToTransform.content = '';\n blockToTransform.metadata = { files: [] };\n }\n \n // Update the block element\n wysiwygComponent.updateBlockElement(blockId);\n wysiwygComponent.updateValue();\n \n // Focus the block after transformation\n requestAnimationFrame(() => {\n wysiwygComponent.blockOperations.focusBlock(blockId);\n });\n }\n }\n }\n }));\n \n const menuItems: any[] = [\n {\n name: 'Change Type',\n iconName: 'type',\n submenu: blockTypeItems\n }\n ];\n \n // Add copy/cut/paste for editable blocks\n if (!['image', 'divider', 'youtube', 'attachment'].includes(this.block.type)) {\n menuItems.push(\n { divider: true },\n {\n name: 'Cut',\n iconName: 'scissors',\n shortcut: 'Cmd+X',\n action: async () => {\n document.execCommand('cut');\n }\n },\n {\n name: 'Copy',\n iconName: 'copy',\n shortcut: 'Cmd+C',\n action: async () => {\n document.execCommand('copy');\n }\n },\n {\n name: 'Paste',\n iconName: 'clipboard',\n shortcut: 'Cmd+V',\n action: async () => {\n document.execCommand('paste');\n }\n }\n );\n }\n \n // Add delete option\n menuItems.push(\n { divider: true },\n {\n name: 'Delete Block',\n iconName: 'trash2',\n action: async () => {\n if (wysiwygComponent && wysiwygComponent.blockOperations) {\n wysiwygComponent.blockOperations.deleteBlock(blockId);\n }\n }\n }\n );\n \n return menuItems;\n }\n\n /**\n * Gets content split at cursor position\n */\n public getSplitContent(): { before: string; after: string } | null {\n console.log('getSplitContent: Starting...');\n \n // Check if we have a registered handler for this block type\n const handler = BlockRegistry.getHandler(this.block.type);\n console.log('getSplitContent: Checking for handler', { \n blockType: this.block.type, \n hasHandler: !!handler,\n hasSplitMethod: !!(handler && handler.getSplitContent)\n });\n \n if (handler && handler.getSplitContent) {\n const container = this.shadowRoot?.querySelector('.wysiwyg-block-container') as HTMLElement;\n console.log('getSplitContent: Found container', { \n container: !!container,\n containerHTML: container?.innerHTML?.substring(0, 100)\n });\n const context = {\n shadowRoot: this.shadowRoot!,\n component: this\n };\n return handler.getSplitContent(container, context);\n }\n \n \n // Get the actual editable element first\n const editableElement = this.shadowRoot?.querySelector('.block') as HTMLDivElement;\n \n if (!editableElement) {\n console.log('getSplitContent: No editable element found');\n return null;\n }\n \n console.log('getSplitContent: Element info:', {\n blockType: this.block.type,\n innerHTML: editableElement.innerHTML,\n textContent: editableElement.textContent,\n textLength: editableElement.textContent?.length\n });\n \n // Get parent wysiwyg component's shadow root\n const parentComponent = this.closest('dees-input-wysiwyg');\n const parentShadowRoot = parentComponent?.shadowRoot;\n \n // Get selection info with both shadow roots for proper traversal\n const shadowRoots: ShadowRoot[] = [];\n if (parentShadowRoot) shadowRoots.push(parentShadowRoot);\n if (this.shadowRoot) shadowRoots.push(this.shadowRoot);\n \n const selectionInfo = WysiwygSelection.getSelectionInfo(...shadowRoots);\n console.log('getSplitContent: Selection info from shadow DOMs:', {\n selectionInfo,\n shadowRootsCount: shadowRoots.length\n });\n \n if (!selectionInfo) {\n console.log('getSplitContent: No selection, using last known position:', this.lastKnownCursorPosition);\n // Try using last known cursor position\n if (this.lastKnownCursorPosition !== null) {\n const fullText = editableElement.textContent || '';\n const pos = Math.min(this.lastKnownCursorPosition, fullText.length);\n console.log('getSplitContent: Splitting with last known position:', {\n pos,\n fullTextLength: fullText.length,\n before: fullText.substring(0, pos),\n after: fullText.substring(pos)\n });\n return {\n before: fullText.substring(0, pos),\n after: fullText.substring(pos)\n };\n }\n return null;\n }\n \n console.log('getSplitContent: Selection range:', {\n startContainer: selectionInfo.startContainer,\n startOffset: selectionInfo.startOffset,\n startContainerInElement: editableElement.contains(selectionInfo.startContainer)\n });\n \n // Make sure the selection is within this block\n if (!WysiwygSelection.containsAcrossShadowDOM(editableElement, selectionInfo.startContainer)) {\n console.log('getSplitContent: Selection not in this block, using last known position:', this.lastKnownCursorPosition);\n // Try using last known cursor position\n if (this.lastKnownCursorPosition !== null) {\n const fullText = editableElement.textContent || '';\n const pos = Math.min(this.lastKnownCursorPosition, fullText.length);\n return {\n before: fullText.substring(0, pos),\n after: fullText.substring(pos)\n };\n }\n return null;\n }\n \n // For HTML content, get cursor position first\n const cursorPos = this.getCursorPosition(editableElement);\n console.log('getSplitContent: Cursor position for HTML split:', cursorPos);\n \n if (cursorPos === null || cursorPos === 0) {\n // If cursor is at start or can't determine position, move all content\n console.log('getSplitContent: Cursor at start or null, moving all content');\n return {\n before: '',\n after: editableElement.innerHTML\n };\n }\n \n // For HTML content, split using ranges to preserve formatting\n const beforeRange = document.createRange();\n const afterRange = document.createRange();\n \n // Before range: from start of element to cursor\n beforeRange.setStart(editableElement, 0);\n beforeRange.setEnd(selectionInfo.startContainer, selectionInfo.startOffset);\n \n // After range: from cursor to end of element\n afterRange.setStart(selectionInfo.startContainer, selectionInfo.startOffset);\n afterRange.setEnd(editableElement, editableElement.childNodes.length);\n \n // Extract HTML content\n const beforeFragment = beforeRange.cloneContents();\n const afterFragment = afterRange.cloneContents();\n \n // Convert to HTML strings\n const tempDiv = document.createElement('div');\n tempDiv.appendChild(beforeFragment);\n const beforeHtml = tempDiv.innerHTML;\n \n tempDiv.innerHTML = '';\n tempDiv.appendChild(afterFragment);\n const afterHtml = tempDiv.innerHTML;\n \n console.log('getSplitContent: Final split result:', {\n cursorPos,\n beforeHtml,\n beforeLength: beforeHtml.length,\n beforeHtmlPreview: beforeHtml.substring(0, 100) + (beforeHtml.length > 100 ? '...' : ''),\n afterHtml,\n afterLength: afterHtml.length,\n afterHtmlPreview: afterHtml.substring(0, 100) + (afterHtml.length > 100 ? '...' : '')\n });\n \n return { \n before: beforeHtml, \n after: afterHtml \n };\n }\n \n}\n", "export * from './dees-input-wysiwyg.js';\nexport * from './wysiwyg.types.js';\nexport * from './wysiwyg.interfaces.js';\nexport * from './wysiwyg.constants.js';\nexport * from './wysiwyg.styles.js';\nexport * from './wysiwyg.converters.js';\nexport * from './wysiwyg.shortcuts.js';\nexport * from './wysiwyg.formatting.js';\nexport * from './wysiwyg.selection.js';\nexport * from './wysiwyg.blocks.js';\nexport * from './wysiwyg.blockoperations.js';\nexport * from './wysiwyg.blockregistration.js';\nexport * from './wysiwyg.inputhandler.js';\nexport * from './wysiwyg.keyboardhandler.js';\nexport * from './wysiwyg.dragdrophandler.js';\nexport * from './wysiwyg.modalmanager.js';\nexport * from './wysiwyg.history.js';\nexport * from './dees-slash-menu.js';\nexport * from './dees-formatting-menu.js';\nexport * from './dees-wysiwyg-block.js';\n", "import { DeesInputBase } from '../dees-input-base/dees-input-base.js';\nimport { demoFunc } from '../dees-input-wysiwyg.demo.js';\nimport { DeesModal } from '../../00group-overlay/dees-modal/dees-modal.js';\n\nimport {\n customElement,\n type TemplateResult,\n property,\n static as html,\n cssManager,\n state,\n} from '@design.estate/dees-element';\n\nimport {\n type IBlock,\n type OutputFormat,\n wysiwygStyles,\n WysiwygConverters,\n WysiwygShortcuts,\n WysiwygFormatting,\n WysiwygBlockOperations,\n WysiwygInputHandler,\n WysiwygKeyboardHandler,\n WysiwygDragDropHandler,\n WysiwygModalManager,\n WysiwygHistory,\n WysiwygSelection,\n DeesSlashMenu,\n DeesFormattingMenu\n} from './index.js';\nimport { themeDefaultStyles } from '../../00theme.js';\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'dees-input-wysiwyg': DeesInputWysiwyg;\n }\n}\n\n@customElement('dees-input-wysiwyg')\nexport class DeesInputWysiwyg extends DeesInputBase {\n public static demo = demoFunc;\n public static demoGroups = ['Input', 'Workspace'];\n\n @property({ type: String })\n accessor value: string = '';\n\n @property({ type: String })\n accessor outputFormat: OutputFormat = 'html';\n\n @state()\n accessor blocks: IBlock[] = [\n {\n id: WysiwygShortcuts.generateBlockId(),\n type: 'paragraph',\n content: '',\n }\n ];\n\n // Not using @state to avoid re-renders when selection changes\n public selectedBlockId: string | null = null;\n\n // Slash menu is now globally rendered\n public slashMenu = DeesSlashMenu.getInstance();\n\n @state()\n accessor draggedBlockId: string | null = null;\n\n @state()\n accessor dragOverBlockId: string | null = null;\n\n @state()\n accessor dragOverPosition: 'before' | 'after' | null = null;\n\n // Formatting menu is now globally rendered\n public formattingMenu = DeesFormattingMenu.getInstance();\n\n @state()\n accessor selectedText: string = '';\n\n public editorContentRef: HTMLDivElement;\n public isComposing: boolean = false;\n \n // Handler instances\n public blockOperations: WysiwygBlockOperations;\n private inputHandler: WysiwygInputHandler;\n private keyboardHandler: WysiwygKeyboardHandler;\n private dragDropHandler: WysiwygDragDropHandler;\n private history: WysiwygHistory;\n\n public static styles = [\n themeDefaultStyles,\n ...DeesInputBase.baseStyles,\n cssManager.defaultStyles,\n wysiwygStyles\n ];\n\n constructor() {\n super();\n // Initialize handlers\n this.blockOperations = new WysiwygBlockOperations(this);\n this.inputHandler = new WysiwygInputHandler(this);\n this.keyboardHandler = new WysiwygKeyboardHandler(this);\n this.dragDropHandler = new WysiwygDragDropHandler(this);\n this.history = new WysiwygHistory();\n }\n\n async connectedCallback() {\n await super.connectedCallback();\n }\n\n async disconnectedCallback() {\n await super.disconnectedCallback();\n // Selection listeners are now handled at block level\n // Clean up handlers\n this.inputHandler?.destroy();\n // Clean up blur timeout\n if (this.blurTimeout) {\n clearTimeout(this.blurTimeout);\n this.blurTimeout = null;\n }\n }\n\n async firstUpdated() {\n if (this.value && this.value.trim().length > 0) {\n const parsedBlocks =\n this.outputFormat === 'html'\n ? WysiwygConverters.parseHtmlToBlocks(this.value)\n : WysiwygConverters.parseMarkdownToBlocks(this.value);\n\n if (parsedBlocks.length > 0) {\n this.blocks = parsedBlocks;\n }\n }\n\n this.updateValue();\n this.editorContentRef = this.shadowRoot!.querySelector('.editor-content') as HTMLDivElement;\n \n // Add click handler to editor content\n if (this.editorContentRef) {\n this.editorContentRef.addEventListener('click', (e) => this.handleEditorClick(e));\n }\n \n // We now rely on block-level selection detection\n // No global selection listener needed\n \n // Listen for custom selection events from blocks\n this.addEventListener('block-text-selected', (e: CustomEvent) => {\n \n if (!this.slashMenu.visible && e.detail.hasSelection && e.detail.text.length > 0) {\n this.selectedText = e.detail.text;\n \n // Use the rect from the event if available\n if (e.detail.rect) {\n const coords = {\n x: e.detail.rect.left + (e.detail.rect.width / 2),\n y: Math.max(45, e.detail.rect.top - 45)\n };\n \n \n // Show the formatting menu at the calculated position\n this.formattingMenu.show(\n coords,\n async (command: string) => await this.applyFormat(command)\n );\n }\n }\n });\n \n // Hide formatting menu when clicking outside\n document.addEventListener('mousedown', (e) => {\n // Check if click is on the formatting menu itself\n const formattingMenuElement = this.formattingMenu.shadowRoot?.querySelector('.formatting-menu');\n if (formattingMenuElement && formattingMenuElement.contains(e.target as Node)) {\n return;\n }\n \n // Check if we have an active selection\n const selection = window.getSelection();\n if (selection && selection.toString().trim().length > 0) {\n // Don't hide if we still have a selection\n return;\n }\n \n // Hide the menu\n if (this.formattingMenu.visible) {\n this.hideFormattingMenu();\n }\n });\n \n // Add global keyboard listener for undo/redo\n this.addEventListener('keydown', (e: KeyboardEvent) => {\n // Check if the event is from within our editor\n const target = e.target as HTMLElement;\n if (!this.contains(target) && !this.shadowRoot?.contains(target)) {\n return;\n }\n \n // Handle undo/redo\n if ((e.metaKey || e.ctrlKey) && !e.shiftKey && e.key === 'z') {\n e.preventDefault();\n this.undo();\n } else if ((e.metaKey || e.ctrlKey) && e.shiftKey && e.key === 'z') {\n e.preventDefault();\n this.redo();\n }\n });\n \n // Save initial state to history\n this.history.saveState(this.blocks, this.selectedBlockId);\n \n // Render blocks programmatically\n this.renderBlocksProgrammatically();\n }\n \n /**\n * Renders all blocks programmatically without triggering re-renders\n */\n public renderBlocksProgrammatically() {\n if (!this.editorContentRef) return;\n \n // Clear existing blocks\n this.editorContentRef.innerHTML = '';\n \n // Create and append block elements\n this.blocks.forEach(block => {\n const blockWrapper = this.createBlockElement(block);\n this.editorContentRef.appendChild(blockWrapper);\n });\n }\n \n /**\n * Creates a block element programmatically\n */\n public createBlockElement(block: IBlock): HTMLElement {\n const wrapper = document.createElement('div');\n wrapper.className = 'block-wrapper';\n wrapper.setAttribute('data-block-id', block.id);\n \n // Add drag handle for non-divider blocks\n if (block.type !== 'divider') {\n const dragHandle = document.createElement('div');\n dragHandle.className = 'drag-handle';\n dragHandle.draggable = true;\n dragHandle.addEventListener('dragstart', (e) => this.dragDropHandler.handleDragStart(e, block));\n wrapper.appendChild(dragHandle);\n }\n \n // Create the block component\n const blockComponent = document.createElement('dees-wysiwyg-block') as any;\n blockComponent.block = block;\n blockComponent.isSelected = this.selectedBlockId === block.id;\n blockComponent.wysiwygComponent = this; // Pass parent reference\n blockComponent.handlers = {\n onInput: (e: InputEvent) => this.inputHandler.handleBlockInput(e, block),\n onKeyDown: (e: KeyboardEvent) => this.keyboardHandler.handleBlockKeyDown(e, block),\n onFocus: () => this.handleBlockFocus(block),\n onBlur: () => this.handleBlockBlur(block),\n onCompositionStart: () => this.isComposing = true,\n onCompositionEnd: () => this.isComposing = false,\n onMouseUp: (e: MouseEvent) => this.handleTextSelection(e),\n onRequestUpdate: () => this.updateBlockElement(block.id),\n };\n wrapper.appendChild(blockComponent);\n \n // Remove settings button - context menu will handle this\n \n // Add drag event listeners\n wrapper.addEventListener('dragover', (e) => this.dragDropHandler.handleDragOver(e, block));\n wrapper.addEventListener('drop', (e) => this.dragDropHandler.handleDrop(e, block));\n wrapper.addEventListener('dragleave', () => this.dragDropHandler.handleDragLeave(block));\n \n return wrapper;\n }\n \n /**\n * Updates a specific block element\n */\n public updateBlockElement(blockId: string) {\n const block = this.blocks.find(b => b.id === blockId);\n if (!block) return;\n \n const wrapper = this.editorContentRef.querySelector(`[data-block-id=\"${blockId}\"]`);\n if (!wrapper) return;\n \n // Replace with new element\n const newWrapper = this.createBlockElement(block);\n wrapper.replaceWith(newWrapper);\n }\n\n\n render(): TemplateResult {\n return html`\n \n
      \n
      \n \n
      \n
      \n `;\n }\n\n // Old renderBlock method removed - using programmatic rendering instead\n\n\n\n\n public handleSlashMenuKeyboard(e: KeyboardEvent) {\n switch(e.key) {\n case 'ArrowDown':\n e.preventDefault();\n this.slashMenu.navigate('down');\n break;\n case 'ArrowUp':\n e.preventDefault();\n this.slashMenu.navigate('up');\n break;\n case 'Enter':\n e.preventDefault();\n this.slashMenu.selectCurrent();\n break;\n case 'Escape':\n e.preventDefault();\n this.closeSlashMenu(true);\n break;\n }\n }\n\n public closeSlashMenu(clearSlash: boolean = false) {\n if (clearSlash && this.selectedBlockId) {\n // Clear the slash command from the content if menu is closing without selection\n const currentBlock = this.blocks.find(b => b.id === this.selectedBlockId);\n if (currentBlock) {\n const wrapperElement = this.shadowRoot!.querySelector(`[data-block-id=\"${currentBlock.id}\"]`);\n const blockComponent = wrapperElement?.querySelector('dees-wysiwyg-block') as any;\n \n if (blockComponent) {\n const content = blockComponent.getContent();\n if (content.startsWith('/')) {\n // Remove the entire slash command (slash + any filter text)\n const cleanContent = content.replace(/^\\/[^\\s]*\\s*/, '').trim();\n blockComponent.setContent(cleanContent);\n currentBlock.content = cleanContent;\n \n // Focus and set cursor at beginning\n requestAnimationFrame(() => {\n blockComponent.focusWithCursor(0);\n });\n }\n }\n }\n }\n \n this.slashMenu.hide();\n }\n\n private handleBlockFocus(block: IBlock) {\n // Clear any pending blur timeout when focusing\n if (this.blurTimeout) {\n clearTimeout(this.blurTimeout);\n this.blurTimeout = null;\n }\n \n const prevSelectedId = this.selectedBlockId;\n this.selectedBlockId = block.id;\n \n // Only update selection UI if it changed\n if (prevSelectedId !== block.id) {\n // Update the previous block's selection state\n if (prevSelectedId) {\n const prevWrapper = this.shadowRoot?.querySelector(`[data-block-id=\"${prevSelectedId}\"]`);\n const prevBlockComponent = prevWrapper?.querySelector('dees-wysiwyg-block') as any;\n if (prevBlockComponent) {\n prevBlockComponent.isSelected = false;\n }\n }\n \n // Update the new block's selection state\n const wrapper = this.shadowRoot?.querySelector(`[data-block-id=\"${block.id}\"]`);\n const blockComponent = wrapper?.querySelector('dees-wysiwyg-block') as any;\n if (blockComponent) {\n blockComponent.isSelected = true;\n }\n }\n }\n\n private blurTimeout: any = null;\n \n private handleBlockBlur(block: IBlock) {\n // Clear any existing blur timeout\n if (this.blurTimeout) {\n clearTimeout(this.blurTimeout);\n }\n \n // Don't update value if slash menu is visible\n if (this.slashMenu.visible) {\n return;\n }\n \n // Sync content from the block that's losing focus\n const wrapperElement = this.shadowRoot?.querySelector(`[data-block-id=\"${block.id}\"]`);\n const blockComponent = wrapperElement?.querySelector('dees-wysiwyg-block') as any;\n \n if (blockComponent && blockComponent.getContent) {\n const newContent = blockComponent.getContent();\n // Only update if content actually changed\n if (block.content !== newContent) {\n block.content = newContent;\n }\n }\n \n // Delay the blur handling to avoid interfering with typing\n this.blurTimeout = setTimeout(() => {\n // Check if we've refocused on another block\n const activeElement = this.shadowRoot?.activeElement;\n const isBlockFocused = activeElement?.classList.contains('block');\n \n if (!isBlockFocused) {\n // Only update value if we're truly blurring away from all blocks\n this.updateValue();\n }\n }, 100);\n \n // Don't immediately clear selectedBlockId or close menus\n // Let click handlers decide what to do\n }\n\n private handleEditorClick(e: MouseEvent) {\n const target = e.target as HTMLElement;\n \n // Close slash menu if clicking outside of it\n if (this.slashMenu.visible) {\n this.closeSlashMenu(true);\n }\n \n // Focus last block if clicking on empty editor area\n if (target.classList.contains('editor-content')) {\n const lastBlock = this.blocks[this.blocks.length - 1];\n this.blockOperations.focusBlock(lastBlock.id, lastBlock.type === 'divider' || lastBlock.type === 'image' ? undefined : 'end');\n }\n }\n\n private createNewBlock(type: IBlock['type'] = 'paragraph', content: string = '', metadata?: any): IBlock {\n return {\n id: WysiwygShortcuts.generateBlockId(),\n type,\n content,\n ...(metadata && { metadata })\n };\n }\n\n private async insertBlockAfter(afterBlock: IBlock, newBlock: IBlock, focusNewBlock: boolean = true): Promise {\n const blockIndex = this.blocks.findIndex(b => b.id === afterBlock.id);\n this.blocks = [...this.blocks.slice(0, blockIndex + 1), newBlock, ...this.blocks.slice(blockIndex + 1)];\n \n // Insert the new block element programmatically\n const afterWrapper = this.editorContentRef.querySelector(`[data-block-id=\"${afterBlock.id}\"]`);\n if (afterWrapper) {\n const newWrapper = this.createBlockElement(newBlock);\n afterWrapper.insertAdjacentElement('afterend', newWrapper);\n }\n \n this.updateValue();\n \n if (focusNewBlock && newBlock.type !== 'divider') {\n // Give DOM time to settle\n await new Promise(resolve => setTimeout(resolve, 0));\n await this.blockOperations.focusBlock(newBlock.id, 'start');\n }\n }\n\n public async insertBlock(type: IBlock['type']) {\n const currentBlock = this.blocks.find(b => b.id === this.selectedBlockId);\n \n if (!currentBlock) {\n this.closeSlashMenu();\n return;\n }\n\n // Get the block component to extract clean content\n const wrapperElement = this.shadowRoot!.querySelector(`[data-block-id=\"${currentBlock.id}\"]`);\n const blockComponent = wrapperElement?.querySelector('dees-wysiwyg-block') as any;\n \n // Clear the slash command from the content before transforming\n if (blockComponent) {\n const content = blockComponent.getContent();\n if (content.startsWith('/')) {\n // Remove the slash and any filter text (including non-word characters)\n const cleanContent = content.replace(/^\\/[^\\s]*\\s*/, '').trim();\n blockComponent.setContent(cleanContent);\n currentBlock.content = cleanContent;\n }\n }\n \n // Close menu\n this.closeSlashMenu(false);\n \n // If it's a code block, default to TypeScript\n if (type === 'code') {\n currentBlock.metadata = { language: 'typescript' };\n }\n \n // Transform the current block\n currentBlock.type = type;\n currentBlock.content = currentBlock.content || '';\n \n if (type === 'divider') {\n currentBlock.content = ' ';\n const newBlock = this.createNewBlock();\n this.insertBlockAfter(currentBlock, newBlock);\n } else if (type === 'list') {\n currentBlock.metadata = { listType: 'bullet' };\n // For lists, ensure we start with empty content\n currentBlock.content = '';\n } else if (type === 'image') {\n // For image blocks, clear content and set empty metadata\n currentBlock.content = '';\n currentBlock.metadata = { url: '', loading: false };\n } else if (type === 'youtube') {\n // For YouTube blocks, clear content and set empty metadata\n currentBlock.content = '';\n currentBlock.metadata = { videoId: '', url: '' };\n } else if (type === 'markdown') {\n // For Markdown blocks, preserve content and default to edit mode\n currentBlock.metadata = { showPreview: false };\n } else if (type === 'html') {\n // For HTML blocks, preserve content and default to edit mode\n currentBlock.metadata = { showPreview: false };\n } else if (type === 'attachment') {\n // For attachment blocks, clear content and set empty files array\n currentBlock.content = '';\n currentBlock.metadata = { files: [] };\n } else {\n // For all other block types, ensure content is clean\n currentBlock.content = currentBlock.content || '';\n }\n \n // Update the block element programmatically\n this.updateBlockElement(currentBlock.id);\n this.updateValue();\n \n // Give DOM time to settle\n await new Promise(resolve => setTimeout(resolve, 0));\n \n // Focus the block after rendering\n if (type === 'list') {\n this.blockOperations.focusBlock(currentBlock.id, 'start');\n // Additional list-specific focus handling\n requestAnimationFrame(() => {\n const blockWrapper = this.shadowRoot?.querySelector(`[data-block-id=\"${currentBlock.id}\"]`);\n const blockComponent = blockWrapper?.querySelector('dees-wysiwyg-block') as any;\n if (blockComponent) {\n blockComponent.focusListItem();\n }\n });\n } else if (type !== 'divider' && type !== 'image' && type !== 'youtube' && type !== 'markdown' && type !== 'html' && type !== 'attachment') {\n this.blockOperations.focusBlock(currentBlock.id, 'start');\n } else if (type === 'image' || type === 'youtube' || type === 'markdown' || type === 'html' || type === 'attachment') {\n // Focus the non-editable block\n this.blockOperations.focusBlock(currentBlock.id);\n }\n }\n\n public updateValue() {\n if (this.outputFormat === 'html') {\n this.value = WysiwygConverters.getHtmlOutput(this.blocks);\n } else {\n this.value = WysiwygConverters.getMarkdownOutput(this.blocks);\n }\n this.changeSubject.next(this.value);\n \n // Save to history (debounced)\n this.saveToHistory(true);\n }\n\n public getValue(): string {\n return this.value;\n }\n\n public setValue(value: string): void {\n this.value = value;\n \n if (this.outputFormat === 'html') {\n this.blocks = WysiwygConverters.parseHtmlToBlocks(value);\n } else {\n this.blocks = WysiwygConverters.parseMarkdownToBlocks(value);\n }\n \n if (this.blocks.length === 0) {\n this.blocks = [{\n id: WysiwygShortcuts.generateBlockId(),\n type: 'paragraph',\n content: '',\n }];\n }\n \n this.changeSubject.next(this.value);\n \n // Re-render blocks programmatically if we have the editor\n if (this.editorContentRef) {\n this.renderBlocksProgrammatically();\n }\n }\n\n /**\n * Export the editor content as raw blocks (lossless)\n */\n public exportBlocks(): IBlock[] {\n return JSON.parse(JSON.stringify(this.blocks));\n }\n\n /**\n * Import raw blocks (lossless)\n */\n public importBlocks(blocks: IBlock[]): void {\n this.blocks = JSON.parse(JSON.stringify(blocks));\n this.updateValue();\n \n // Re-render blocks programmatically if we have the editor\n if (this.editorContentRef) {\n this.renderBlocksProgrammatically();\n }\n }\n\n /**\n * Export content as HTML regardless of outputFormat setting\n */\n public exportAsHtml(): string {\n return WysiwygConverters.getHtmlOutput(this.blocks);\n }\n\n /**\n * Export content as Markdown regardless of outputFormat setting\n */\n public exportAsMarkdown(): string {\n return WysiwygConverters.getMarkdownOutput(this.blocks);\n }\n\n /**\n * Get a JSON representation of the editor state (for saving)\n */\n public exportState(): { blocks: IBlock[], outputFormat: OutputFormat } {\n return {\n blocks: this.exportBlocks(),\n outputFormat: this.outputFormat\n };\n }\n\n /**\n * Restore editor state from JSON\n */\n public importState(state: { blocks: IBlock[], outputFormat?: OutputFormat }): void {\n if (state.outputFormat) {\n this.outputFormat = state.outputFormat;\n }\n this.importBlocks(state.blocks);\n }\n\n private handleDragEnd(): void {\n // Remove all drag-related classes\n if (this.draggedBlockId) {\n const wrapper = this.editorContentRef.querySelector(`[data-block-id=\"${this.draggedBlockId}\"]`);\n if (wrapper) {\n wrapper.classList.remove('dragging');\n }\n }\n \n // Remove all drag-over classes\n const allWrappers = this.editorContentRef.querySelectorAll('.block-wrapper');\n allWrappers.forEach(wrapper => {\n wrapper.classList.remove('drag-over-before', 'drag-over-after');\n });\n \n // Remove dragging class from editor content\n this.editorContentRef.classList.remove('dragging');\n \n this.draggedBlockId = null;\n this.dragOverBlockId = null;\n this.dragOverPosition = null;\n }\n\n public handleDrop(e: DragEvent, targetBlock: IBlock): void {\n e.preventDefault();\n \n if (!this.draggedBlockId || this.draggedBlockId === targetBlock.id) return;\n \n const draggedIndex = this.blocks.findIndex(b => b.id === this.draggedBlockId);\n const targetIndex = this.blocks.findIndex(b => b.id === targetBlock.id);\n \n if (draggedIndex === -1 || targetIndex === -1) return;\n \n // Remove the dragged block\n const [draggedBlock] = this.blocks.splice(draggedIndex, 1);\n \n // Calculate the new index\n let newIndex = targetIndex;\n if (this.dragOverPosition === 'after') {\n newIndex = draggedIndex < targetIndex ? targetIndex : targetIndex + 1;\n } else {\n newIndex = draggedIndex < targetIndex ? targetIndex - 1 : targetIndex;\n }\n \n // Insert at new position\n this.blocks.splice(newIndex, 0, draggedBlock);\n \n // Re-render blocks programmatically to reflect the new order\n this.renderBlocksProgrammatically();\n \n // Update state\n this.updateValue();\n this.handleDragEnd();\n \n // Focus the moved block\n setTimeout(() => {\n const movedBlockElement = this.shadowRoot!.querySelector(`[data-block-id=\"${draggedBlock.id}\"] .block`) as HTMLDivElement;\n if (movedBlockElement && draggedBlock.type !== 'divider') {\n movedBlockElement.focus();\n }\n }, 100);\n }\n\n\n private handleTextSelection(_e: MouseEvent): void {\n // Don't interfere with slash menu\n if (this.slashMenu.visible) return;\n \n // Let the block component handle selection via custom event\n }\n\n \n\n private updateFormattingMenuPosition(): void {\n \n // Get all shadow roots\n const shadowRoots: ShadowRoot[] = [];\n if (this.shadowRoot) shadowRoots.push(this.shadowRoot);\n \n // Find all block shadow roots\n const blockWrappers = this.shadowRoot?.querySelectorAll('.block-wrapper');\n blockWrappers?.forEach(wrapper => {\n const blockComponent = wrapper.querySelector('dees-wysiwyg-block');\n if (blockComponent?.shadowRoot) {\n shadowRoots.push(blockComponent.shadowRoot);\n }\n });\n \n const coords = WysiwygFormatting.getSelectionCoordinates(...shadowRoots);\n \n if (coords) {\n // Show the global formatting menu at absolute coordinates\n this.formattingMenu.show(\n { x: coords.x, y: coords.y },\n async (command: string) => await this.applyFormat(command)\n );\n } else {\n }\n }\n\n private hideFormattingMenu(): void {\n this.formattingMenu.hide();\n this.selectedText = '';\n }\n\n public async applyFormat(command: string): Promise {\n // Get all shadow roots\n const shadowRoots: ShadowRoot[] = [];\n if (this.shadowRoot) shadowRoots.push(this.shadowRoot);\n \n // Find all block shadow roots\n const blockWrappers = this.shadowRoot?.querySelectorAll('.block-wrapper');\n blockWrappers?.forEach(wrapper => {\n const blockComponent = wrapper.querySelector('dees-wysiwyg-block');\n if (blockComponent?.shadowRoot) {\n shadowRoots.push(blockComponent.shadowRoot);\n }\n });\n \n // Get selection info using Shadow DOM-aware utilities\n const selectionInfo = WysiwygSelection.getSelectionInfo(...shadowRoots);\n if (!selectionInfo) return;\n \n // Find which block contains the selection\n let targetBlock: IBlock | undefined;\n let targetBlockComponent: any;\n \n const wrappers = this.shadowRoot!.querySelectorAll('.block-wrapper');\n for (let i = 0; i < wrappers.length; i++) {\n const wrapper = wrappers[i];\n const blockComponent = wrapper.querySelector('dees-wysiwyg-block') as any;\n if (blockComponent?.shadowRoot) {\n const block = blockComponent.shadowRoot.querySelector('.block');\n if (block && (\n block.contains(selectionInfo.startContainer) || \n block.contains(selectionInfo.endContainer)\n )) {\n const blockId = wrapper.getAttribute('data-block-id');\n targetBlock = this.blocks.find(b => b.id === blockId);\n targetBlockComponent = blockComponent;\n break;\n }\n }\n }\n \n if (!targetBlock || !targetBlockComponent) return;\n\n // Create a range from our selection info\n const range = WysiwygSelection.createRangeFromInfo(selectionInfo);\n \n // Handle link command specially\n if (command === 'link') {\n const url = await this.showLinkDialog();\n if (!url) {\n // User cancelled - restore focus to block\n targetBlockComponent.focus();\n return;\n }\n // Apply link format\n WysiwygFormatting.applyFormat(command, url, range, shadowRoots);\n } else {\n // Apply the format\n WysiwygFormatting.applyFormat(command, undefined, range, shadowRoots);\n }\n\n // Update content after a microtask to ensure DOM is updated\n await new Promise(resolve => setTimeout(resolve, 10));\n \n // Force content update\n targetBlock.content = targetBlockComponent.getContent();\n \n // Update value to persist changes\n this.updateValue();\n \n // Restore focus to the block\n targetBlockComponent.focus();\n \n // For link command, close the formatting menu\n if (command === 'link') {\n this.hideFormattingMenu();\n } else {\n // Let selection handler update menu position\n this.selectedText = '';\n }\n }\n\n private async showLinkDialog(): Promise {\n return new Promise((resolve) => {\n let linkUrl: string | null = null;\n \n DeesModal.createAndShow({\n heading: 'Add Link',\n content: html`\n \n {\n if (e.key === 'Enter') {\n const input = e.target as HTMLInputElement;\n linkUrl = input.value;\n // Find and click the OK button\n const modal = input.closest('dees-modal');\n if (modal) {\n const okButton = modal.shadowRoot?.querySelector('.bottomButton:last-child') as HTMLElement;\n if (okButton) okButton.click();\n }\n }\n }}\"\n @input=\"${(e: InputEvent) => {\n linkUrl = (e.target as HTMLInputElement).value;\n }}\"\n />\n `,\n menuOptions: [\n {\n name: 'Cancel',\n action: async (modal) => {\n modal.destroy();\n resolve(null);\n }\n },\n {\n name: 'Add Link',\n action: async (modal) => {\n modal.destroy();\n resolve(linkUrl);\n }\n }\n ]\n });\n \n // Focus the input after modal is shown\n setTimeout(() => {\n const input = document.querySelector('dees-modal .link-input') as HTMLInputElement;\n if (input) {\n input.focus();\n }\n }, 100);\n });\n }\n \n /**\n * Undo the last action\n */\n private undo(): void {\n const state = this.history.undo();\n if (state) {\n this.restoreState(state);\n }\n }\n \n /**\n * Redo the next action\n */\n private redo(): void {\n const state = this.history.redo();\n if (state) {\n this.restoreState(state);\n }\n }\n \n /**\n * Restore editor state from history\n */\n private restoreState(state: { blocks: IBlock[]; selectedBlockId: string | null; cursorPosition?: { blockId: string; offset: number } }): void {\n // Update blocks\n this.blocks = state.blocks;\n this.selectedBlockId = state.selectedBlockId;\n \n // Re-render blocks\n this.renderBlocksProgrammatically();\n \n // Restore cursor position if available\n if (state.cursorPosition) {\n setTimeout(() => {\n const blockWrapper = this.shadowRoot?.querySelector(`[data-block-id=\"${state.cursorPosition!.blockId}\"]`);\n const blockComponent = blockWrapper?.querySelector('dees-wysiwyg-block') as any;\n if (blockComponent) {\n blockComponent.focusWithCursor(state.cursorPosition!.offset);\n }\n }, 50);\n } else if (state.selectedBlockId) {\n // Just focus the selected block\n setTimeout(() => {\n this.blockOperations.focusBlock(state.selectedBlockId!);\n }, 50);\n }\n \n // Update value\n this.updateValue();\n }\n \n /**\n * Save current state to history with cursor position\n */\n \n public saveToHistory(debounce: boolean = true): void {\n // Get current cursor position if a block is focused\n let cursorPosition: { blockId: string; offset: number } | undefined;\n \n if (this.selectedBlockId) {\n const blockWrapper = this.shadowRoot?.querySelector(`[data-block-id=\"${this.selectedBlockId}\"]`);\n const blockComponent = blockWrapper?.querySelector('dees-wysiwyg-block') as any;\n if (blockComponent && typeof blockComponent.getCursorPosition === 'function') {\n const editableElement = blockComponent.shadowRoot?.querySelector('.block') as HTMLElement;\n if (editableElement) {\n const offset = blockComponent.getCursorPosition(editableElement);\n if (offset !== null) {\n cursorPosition = {\n blockId: this.selectedBlockId,\n offset\n };\n }\n }\n }\n }\n \n if (debounce) {\n this.history.saveState(this.blocks, this.selectedBlockId, cursorPosition);\n } else {\n this.history.saveCheckpoint(this.blocks, this.selectedBlockId, cursorPosition);\n }\n }\n}\n", "// Re-export the component and related helpers from the dedicated subdirectory\nexport { DeesInputWysiwyg } from './dees-input-wysiwyg/dees-input-wysiwyg.js';\nexport * from './dees-input-wysiwyg/index.js';\n", "import type { ProfileShape } from './dees-input-profilepicture.js';\n\nexport interface CropperOptions {\n container: HTMLElement;\n image: string;\n shape: ProfileShape;\n aspectRatio: number;\n minSize?: number;\n outputSize?: number;\n outputQuality?: number;\n}\n\nexport class ImageCropper {\n private options: CropperOptions;\n private canvas: HTMLCanvasElement;\n private ctx: CanvasRenderingContext2D;\n private img: HTMLImageElement;\n private overlayCanvas: HTMLCanvasElement;\n private overlayCtx: CanvasRenderingContext2D;\n \n // Crop area properties\n private cropX: number = 0;\n private cropY: number = 0;\n private cropSize: number = 200;\n private minCropSize: number = 50;\n \n // Interaction state\n private isDragging: boolean = false;\n private isResizing: boolean = false;\n private dragStartX: number = 0;\n private dragStartY: number = 0;\n private resizeHandle: string = '';\n \n // Image properties\n private imageScale: number = 1;\n private imageOffsetX: number = 0;\n private imageOffsetY: number = 0;\n\n constructor(options: CropperOptions) {\n this.options = {\n minSize: 50,\n outputSize: 800, // Higher default resolution\n outputQuality: 0.95, // Higher quality\n ...options\n };\n \n this.canvas = document.createElement('canvas');\n this.ctx = this.canvas.getContext('2d')!;\n \n this.overlayCanvas = document.createElement('canvas');\n this.overlayCtx = this.overlayCanvas.getContext('2d')!;\n \n this.img = new Image();\n }\n\n async initialize(): Promise {\n // Load image\n await this.loadImage();\n \n // Setup canvases\n this.setupCanvases();\n \n // Setup event listeners\n this.setupEventListeners();\n \n // Initial render\n this.render();\n }\n\n private async loadImage(): Promise {\n return new Promise((resolve, reject) => {\n this.img.onload = () => resolve();\n this.img.onerror = reject;\n this.img.src = this.options.image;\n });\n }\n\n private setupCanvases(): void {\n const container = this.options.container;\n const containerSize = Math.min(container.clientWidth, container.clientHeight);\n \n // Set canvas sizes\n this.canvas.width = containerSize;\n this.canvas.height = containerSize;\n this.canvas.style.width = '100%';\n this.canvas.style.height = '100%';\n this.canvas.style.position = 'absolute';\n this.canvas.style.top = '0';\n this.canvas.style.left = '0';\n \n this.overlayCanvas.width = containerSize;\n this.overlayCanvas.height = containerSize;\n this.overlayCanvas.style.width = '100%';\n this.overlayCanvas.style.height = '100%';\n this.overlayCanvas.style.position = 'absolute';\n this.overlayCanvas.style.top = '0';\n this.overlayCanvas.style.left = '0';\n this.overlayCanvas.style.cursor = 'move';\n \n container.appendChild(this.canvas);\n container.appendChild(this.overlayCanvas);\n \n // Calculate image scale to fit within container (not fill)\n const scale = Math.min(\n containerSize / this.img.width,\n containerSize / this.img.height\n );\n \n this.imageScale = scale;\n this.imageOffsetX = (containerSize - this.img.width * scale) / 2;\n this.imageOffsetY = (containerSize - this.img.height * scale) / 2;\n \n // Initialize crop area\n // Make the crop area fit within the actual image bounds\n const scaledImageWidth = this.img.width * scale;\n const scaledImageHeight = this.img.height * scale;\n const maxCropSize = Math.min(scaledImageWidth, scaledImageHeight, containerSize * 0.8);\n \n this.cropSize = maxCropSize * 0.8; // Start at 80% of max possible size\n this.cropX = (containerSize - this.cropSize) / 2;\n this.cropY = (containerSize - this.cropSize) / 2;\n }\n\n private setupEventListeners(): void {\n this.overlayCanvas.addEventListener('mousedown', this.handleMouseDown.bind(this));\n this.overlayCanvas.addEventListener('mousemove', this.handleMouseMove.bind(this));\n this.overlayCanvas.addEventListener('mouseup', this.handleMouseUp.bind(this));\n this.overlayCanvas.addEventListener('mouseleave', this.handleMouseUp.bind(this));\n \n // Touch events\n this.overlayCanvas.addEventListener('touchstart', this.handleTouchStart.bind(this));\n this.overlayCanvas.addEventListener('touchmove', this.handleTouchMove.bind(this));\n this.overlayCanvas.addEventListener('touchend', this.handleTouchEnd.bind(this));\n }\n\n private handleMouseDown(e: MouseEvent): void {\n const rect = this.overlayCanvas.getBoundingClientRect();\n const x = (e.clientX - rect.left) * (this.overlayCanvas.width / rect.width);\n const y = (e.clientY - rect.top) * (this.overlayCanvas.height / rect.height);\n \n const handle = this.getResizeHandle(x, y);\n \n if (handle) {\n this.isResizing = true;\n this.resizeHandle = handle;\n } else if (this.isInsideCropArea(x, y)) {\n this.isDragging = true;\n }\n \n this.dragStartX = x;\n this.dragStartY = y;\n }\n\n private handleMouseMove(e: MouseEvent): void {\n const rect = this.overlayCanvas.getBoundingClientRect();\n const x = (e.clientX - rect.left) * (this.overlayCanvas.width / rect.width);\n const y = (e.clientY - rect.top) * (this.overlayCanvas.height / rect.height);\n \n // Update cursor\n const handle = this.getResizeHandle(x, y);\n if (handle) {\n this.overlayCanvas.style.cursor = this.getResizeCursor(handle);\n } else if (this.isInsideCropArea(x, y)) {\n this.overlayCanvas.style.cursor = 'move';\n } else {\n this.overlayCanvas.style.cursor = 'default';\n }\n \n // Handle dragging\n if (this.isDragging) {\n const dx = x - this.dragStartX;\n const dy = y - this.dragStartY;\n \n // Constrain crop area to image bounds\n const minX = this.imageOffsetX;\n const maxX = this.imageOffsetX + this.img.width * this.imageScale - this.cropSize;\n const minY = this.imageOffsetY;\n const maxY = this.imageOffsetY + this.img.height * this.imageScale - this.cropSize;\n \n this.cropX = Math.max(minX, Math.min(maxX, this.cropX + dx));\n this.cropY = Math.max(minY, Math.min(maxY, this.cropY + dy));\n \n this.dragStartX = x;\n this.dragStartY = y;\n this.render();\n }\n \n // Handle resizing\n if (this.isResizing) {\n this.handleResize(x, y);\n this.dragStartX = x;\n this.dragStartY = y;\n this.render();\n }\n }\n\n private handleMouseUp(): void {\n this.isDragging = false;\n this.isResizing = false;\n this.resizeHandle = '';\n }\n\n private handleTouchStart(e: TouchEvent): void {\n e.preventDefault();\n const touch = e.touches[0];\n const mouseEvent = new MouseEvent('mousedown', {\n clientX: touch.clientX,\n clientY: touch.clientY\n });\n this.handleMouseDown(mouseEvent);\n }\n\n private handleTouchMove(e: TouchEvent): void {\n e.preventDefault();\n const touch = e.touches[0];\n const mouseEvent = new MouseEvent('mousemove', {\n clientX: touch.clientX,\n clientY: touch.clientY\n });\n this.handleMouseMove(mouseEvent);\n }\n\n private handleTouchEnd(e: TouchEvent): void {\n e.preventDefault();\n this.handleMouseUp();\n }\n\n private getResizeHandle(x: number, y: number): string {\n const handleSize = 20;\n const handles = {\n 'nw': { x: this.cropX, y: this.cropY },\n 'ne': { x: this.cropX + this.cropSize, y: this.cropY },\n 'sw': { x: this.cropX, y: this.cropY + this.cropSize },\n 'se': { x: this.cropX + this.cropSize, y: this.cropY + this.cropSize }\n };\n \n for (const [key, pos] of Object.entries(handles)) {\n if (Math.abs(x - pos.x) < handleSize && Math.abs(y - pos.y) < handleSize) {\n return key;\n }\n }\n \n return '';\n }\n\n private getResizeCursor(handle: string): string {\n const cursors: Record = {\n 'nw': 'nw-resize',\n 'ne': 'ne-resize',\n 'sw': 'sw-resize',\n 'se': 'se-resize'\n };\n return cursors[handle] || 'default';\n }\n\n private isInsideCropArea(x: number, y: number): boolean {\n return x >= this.cropX && x <= this.cropX + this.cropSize &&\n y >= this.cropY && y <= this.cropY + this.cropSize;\n }\n\n private handleResize(x: number, y: number): void {\n const dx = x - this.dragStartX;\n const dy = y - this.dragStartY;\n \n // Get image bounds\n const imgLeft = this.imageOffsetX;\n const imgTop = this.imageOffsetY;\n const imgRight = this.imageOffsetX + this.img.width * this.imageScale;\n const imgBottom = this.imageOffsetY + this.img.height * this.imageScale;\n \n switch (this.resizeHandle) {\n case 'se':\n this.cropSize = Math.max(this.minCropSize, Math.min(\n this.cropSize + Math.max(dx, dy),\n Math.min(\n imgRight - this.cropX,\n imgBottom - this.cropY\n )\n ));\n break;\n case 'nw':\n const newSize = Math.max(this.minCropSize, this.cropSize - Math.max(dx, dy));\n const sizeDiff = this.cropSize - newSize;\n const newX = this.cropX + sizeDiff;\n const newY = this.cropY + sizeDiff;\n if (newX >= imgLeft && newY >= imgTop) {\n this.cropX = newX;\n this.cropY = newY;\n this.cropSize = newSize;\n }\n break;\n case 'ne':\n const neSizeDx = Math.max(dx, -dy);\n const neNewSize = Math.max(this.minCropSize, this.cropSize + neSizeDx);\n const neSizeDiff = neNewSize - this.cropSize;\n const neNewY = this.cropY - neSizeDiff;\n if (neNewY >= imgTop && this.cropX + neNewSize <= imgRight) {\n this.cropY = neNewY;\n this.cropSize = neNewSize;\n }\n break;\n case 'sw':\n const swSizeDx = Math.max(-dx, dy);\n const swNewSize = Math.max(this.minCropSize, this.cropSize + swSizeDx);\n const swSizeDiff = swNewSize - this.cropSize;\n const swNewX = this.cropX - swSizeDiff;\n if (swNewX >= imgLeft && this.cropY + swNewSize <= imgBottom) {\n this.cropX = swNewX;\n this.cropSize = swNewSize;\n }\n break;\n }\n }\n\n private render(): void {\n // Clear canvases\n this.ctx.clearRect(0, 0, this.canvas.width, this.canvas.height);\n this.overlayCtx.clearRect(0, 0, this.overlayCanvas.width, this.overlayCanvas.height);\n \n // Fill background\n this.ctx.fillStyle = '#000000';\n this.ctx.fillRect(0, 0, this.canvas.width, this.canvas.height);\n \n // Draw image\n this.ctx.drawImage(\n this.img,\n this.imageOffsetX,\n this.imageOffsetY,\n this.img.width * this.imageScale,\n this.img.height * this.imageScale\n );\n \n // Draw overlay only over the image area\n this.overlayCtx.fillStyle = 'rgba(0, 0, 0, 0.5)';\n this.overlayCtx.fillRect(\n this.imageOffsetX,\n this.imageOffsetY,\n this.img.width * this.imageScale,\n this.img.height * this.imageScale\n );\n \n // Clear crop area\n this.overlayCtx.save();\n \n if (this.options.shape === 'round') {\n this.overlayCtx.beginPath();\n this.overlayCtx.arc(\n this.cropX + this.cropSize / 2,\n this.cropY + this.cropSize / 2,\n this.cropSize / 2,\n 0,\n Math.PI * 2\n );\n this.overlayCtx.clip();\n } else {\n this.overlayCtx.beginPath();\n this.overlayCtx.rect(this.cropX, this.cropY, this.cropSize, this.cropSize);\n this.overlayCtx.clip();\n }\n \n this.overlayCtx.clearRect(0, 0, this.overlayCanvas.width, this.overlayCanvas.height);\n this.overlayCtx.restore();\n \n // Draw crop border\n this.overlayCtx.strokeStyle = 'white';\n this.overlayCtx.lineWidth = 2;\n \n if (this.options.shape === 'round') {\n this.overlayCtx.beginPath();\n this.overlayCtx.arc(\n this.cropX + this.cropSize / 2,\n this.cropY + this.cropSize / 2,\n this.cropSize / 2,\n 0,\n Math.PI * 2\n );\n this.overlayCtx.stroke();\n } else {\n this.overlayCtx.strokeRect(this.cropX, this.cropY, this.cropSize, this.cropSize);\n }\n \n // Draw resize handles\n this.drawResizeHandles();\n }\n\n private drawResizeHandles(): void {\n const handleSize = 8;\n const handles = [\n { x: this.cropX, y: this.cropY },\n { x: this.cropX + this.cropSize, y: this.cropY },\n { x: this.cropX, y: this.cropY + this.cropSize },\n { x: this.cropX + this.cropSize, y: this.cropY + this.cropSize }\n ];\n \n this.overlayCtx.fillStyle = 'white';\n \n handles.forEach(handle => {\n this.overlayCtx.beginPath();\n this.overlayCtx.arc(handle.x, handle.y, handleSize, 0, Math.PI * 2);\n this.overlayCtx.fill();\n });\n }\n\n async getCroppedImage(): Promise {\n const cropCanvas = document.createElement('canvas');\n const cropCtx = cropCanvas.getContext('2d')!;\n \n // Calculate the actual crop size in original image pixels\n const scale = 1 / this.imageScale;\n const originalCropSize = this.cropSize * scale;\n \n // Use requested output size, but warn if upscaling\n const outputSize = this.options.outputSize!;\n \n if (outputSize > originalCropSize) {\n console.info(`Profile picture: Upscaling from ${Math.round(originalCropSize)}px to ${outputSize}px`);\n }\n \n cropCanvas.width = outputSize;\n cropCanvas.height = outputSize;\n \n // Calculate source coordinates\n const sx = (this.cropX - this.imageOffsetX) * scale;\n const sy = (this.cropY - this.imageOffsetY) * scale;\n const sSize = this.cropSize * scale;\n \n // Apply shape mask if round\n if (this.options.shape === 'round') {\n cropCtx.beginPath();\n cropCtx.arc(outputSize / 2, outputSize / 2, outputSize / 2, 0, Math.PI * 2);\n cropCtx.clip();\n }\n \n // Enable image smoothing for quality\n cropCtx.imageSmoothingEnabled = true;\n cropCtx.imageSmoothingQuality = 'high';\n \n // Draw cropped image\n cropCtx.drawImage(\n this.img,\n sx, sy, sSize, sSize,\n 0, 0, outputSize, outputSize\n );\n \n // Detect format from original image\n const isPng = this.options.image.includes('image/png');\n const format = isPng ? 'image/png' : 'image/jpeg';\n \n return cropCanvas.toDataURL(format, this.options.outputQuality);\n }\n\n destroy(): void {\n this.canvas.remove();\n this.overlayCanvas.remove();\n }\n}", "import {\n DeesElement,\n customElement,\n html,\n property,\n css,\n cssManager,\n state,\n type TemplateResult,\n} from '@design.estate/dees-element';\nimport * as colors from '../../00colors.js';\nimport { cssGeistFontFamily } from '../../00fonts.js';\nimport { zIndexRegistry } from '../../00zindex.js';\nimport '../../00group-utility/dees-icon/dees-icon.js';\nimport '../../00group-button/dees-button/dees-button.js';\nimport '../../00group-overlay/dees-windowlayer/dees-windowlayer.js';\nimport { DeesWindowLayer } from '../../00group-overlay/dees-windowlayer/dees-windowlayer.js';\nimport { ImageCropper } from './profilepicture.cropper.js';\nimport type { ProfileShape } from './dees-input-profilepicture.js';\nimport { themeDefaultStyles } from '../../00theme.js';\n\n@customElement('dees-profilepicture-modal')\nexport class ProfilePictureModal extends DeesElement {\n @property({ type: String })\n accessor initialImage: string = '';\n\n @property({ type: String })\n accessor shape: ProfileShape = 'round';\n\n @property({ type: Number })\n accessor outputSize: number = 800;\n\n @property({ type: Number })\n accessor outputQuality: number = 0.95;\n\n @state()\n accessor currentStep: 'crop' | 'preview' = 'crop';\n\n @state()\n accessor croppedImage: string = '';\n\n @state()\n accessor isProcessing: boolean = false;\n\n private cropper: ImageCropper | null = null;\n private windowLayer: any;\n private zIndex: number = 0;\n\n public static styles = [\n themeDefaultStyles,\n cssManager.defaultStyles,\n css`\n /* TODO: Migrate hardcoded values to --dees-* CSS variables */\n :host {\n font-family: ${cssGeistFontFamily};\n color: ${cssManager.bdTheme('#333', '#fff')};\n position: fixed;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n display: flex;\n align-items: center;\n justify-content: center;\n z-index: var(--z-index);\n }\n\n .modal-container {\n background: ${cssManager.bdTheme('#ffffff', '#0a0a0a')};\n border-radius: 12px;\n border: 1px solid ${cssManager.bdTheme('rgba(0, 0, 0, 0.08)', 'rgba(255, 255, 255, 0.08)')};\n box-shadow: ${cssManager.bdTheme(\n '0 20px 25px -5px rgba(0, 0, 0, 0.1), 0 10px 10px -5px rgba(0, 0, 0, 0.04)',\n '0 20px 25px -5px rgba(0, 0, 0, 0.3), 0 10px 10px -5px rgba(0, 0, 0, 0.2)'\n )};\n width: 480px;\n max-width: calc(100vw - 32px);\n display: flex;\n flex-direction: column;\n overflow: hidden;\n transform: translateY(10px) scale(0.98);\n opacity: 0;\n animation: modalShow 0.25s cubic-bezier(0.4, 0, 0.2, 1) forwards;\n }\n\n @keyframes modalShow {\n to {\n opacity: 1;\n transform: translateY(0px) scale(1);\n }\n }\n\n .modal-header {\n height: 52px;\n padding: 0 20px;\n border-bottom: 1px solid ${cssManager.bdTheme('rgba(0, 0, 0, 0.06)', 'rgba(255, 255, 255, 0.06)')};\n display: flex;\n align-items: center;\n justify-content: center;\n position: relative;\n flex-shrink: 0;\n }\n\n .modal-title {\n font-size: 15px;\n font-weight: 600;\n color: ${cssManager.bdTheme('#09090b', '#fafafa')};\n letter-spacing: -0.01em;\n }\n\n .close-button {\n position: absolute;\n right: 10px;\n top: 50%;\n transform: translateY(-50%);\n width: 32px;\n height: 32px;\n border: none;\n background: transparent;\n cursor: pointer;\n border-radius: 8px;\n display: flex;\n align-items: center;\n justify-content: center;\n color: ${cssManager.bdTheme('#71717a', '#71717a')};\n transition: all 0.15s ease;\n }\n\n .close-button:hover {\n background: ${cssManager.bdTheme('rgba(0, 0, 0, 0.05)', 'rgba(255, 255, 255, 0.05)')};\n color: ${cssManager.bdTheme('#09090b', '#fafafa')};\n }\n\n .close-button:active {\n background: ${cssManager.bdTheme('rgba(0, 0, 0, 0.08)', 'rgba(255, 255, 255, 0.08)')};\n }\n\n .modal-body {\n flex: 1;\n padding: 24px;\n overflow-y: auto;\n display: flex;\n flex-direction: column;\n align-items: center;\n gap: 20px;\n }\n\n .cropper-container {\n width: 100%;\n max-width: 360px;\n aspect-ratio: 1;\n position: relative;\n background: ${cssManager.bdTheme('#000000', '#000000')};\n border-radius: 12px;\n overflow: hidden;\n box-shadow: ${cssManager.bdTheme(\n 'inset 0 2px 4px rgba(0, 0, 0, 0.06)',\n 'inset 0 2px 4px rgba(0, 0, 0, 0.2)'\n )};\n }\n\n .preview-container {\n display: flex;\n flex-direction: column;\n align-items: center;\n gap: 20px;\n }\n\n .preview-image {\n width: 180px;\n height: 180px;\n object-fit: cover;\n border: 4px solid ${cssManager.bdTheme('#ffffff', '#18181b')};\n box-shadow: ${cssManager.bdTheme(\n '0 10px 15px -3px rgba(0, 0, 0, 0.1), 0 4px 6px -2px rgba(0, 0, 0, 0.05)',\n '0 10px 15px -3px rgba(0, 0, 0, 0.3), 0 4px 6px -2px rgba(0, 0, 0, 0.2)'\n )};\n }\n\n .preview-image.round {\n border-radius: 50%;\n }\n\n .preview-image.square {\n border-radius: 16px;\n }\n\n .success-message {\n display: flex;\n align-items: center;\n gap: 10px;\n padding: 10px 20px;\n background: ${cssManager.bdTheme('#10b981', '#10b981')};\n color: white;\n border-radius: 100px;\n font-weight: 500;\n font-size: 14px;\n animation: successPulse 0.4s ease-out;\n }\n\n @keyframes successPulse {\n 0% { transform: scale(0.9); opacity: 0; }\n 50% { transform: scale(1.02); }\n 100% { transform: scale(1); opacity: 1; }\n }\n\n .modal-footer {\n padding: 20px 24px;\n border-top: 1px solid ${cssManager.bdTheme('rgba(0, 0, 0, 0.06)', 'rgba(255, 255, 255, 0.06)')};\n display: flex;\n gap: 10px;\n justify-content: flex-end;\n }\n\n .instructions {\n text-align: center;\n color: ${cssManager.bdTheme('#71717a', '#a1a1aa')};\n font-size: 13px;\n line-height: 1.5;\n max-width: 320px;\n }\n\n .loading-spinner {\n width: 40px;\n height: 40px;\n border: 3px solid ${cssManager.bdTheme('rgba(0, 0, 0, 0.1)', 'rgba(255, 255, 255, 0.1)')};\n border-top-color: ${cssManager.bdTheme('#3b82f6', '#60a5fa')};\n border-radius: 50%;\n animation: spin 0.6s linear infinite;\n }\n\n @keyframes spin {\n to {\n transform: rotate(360deg);\n }\n }\n\n @media (max-width: 768px) {\n .modal-container {\n width: calc(100vw - 32px);\n margin: 16px;\n }\n \n .modal-body {\n padding: 24px;\n }\n }\n `,\n ];\n\n async connectedCallback() {\n super.connectedCallback();\n \n // Create window layer first (it will get its own z-index)\n this.windowLayer = await DeesWindowLayer.createAndShow({\n blur: true,\n });\n this.windowLayer.addEventListener('click', () => this.close());\n \n // Now get z-index for modal (will be above window layer)\n this.zIndex = zIndexRegistry.getNextZIndex();\n this.style.setProperty('--z-index', this.zIndex.toString());\n \n // Register with z-index registry\n zIndexRegistry.register(this, this.zIndex);\n }\n\n async disconnectedCallback() {\n super.disconnectedCallback();\n \n // Cleanup\n if (this.cropper) {\n this.cropper.destroy();\n }\n \n if (this.windowLayer) {\n await this.windowLayer.destroy();\n }\n \n // Unregister from z-index registry\n zIndexRegistry.unregister(this);\n }\n\n render(): TemplateResult {\n return html`\n
      e.stopPropagation()}>\n
      \n

      \n ${this.currentStep === 'crop' ? 'Adjust Image' : 'Success'}\n

      \n \n
      \n \n
      \n ${this.currentStep === 'crop' ? html`\n
      \n Position and resize the square to select your profile area\n
      \n
      \n ` : html`\n
      \n ${this.isProcessing ? html`\n
      \n
      Saving...
      \n ` : html`\n \"Cropped\n
      \n \n Looking good!\n
      \n `}\n
      \n `}\n
      \n \n
      \n ${this.currentStep === 'crop' ? html`\n \n Cancel\n \n \n Save\n \n ` : ''}\n
      \n
      \n `;\n }\n\n async firstUpdated() {\n if (this.currentStep === 'crop') {\n await this.initializeCropper();\n }\n }\n\n private async initializeCropper(): Promise {\n await this.updateComplete;\n \n const container = this.shadowRoot!.getElementById('cropperContainer');\n if (!container) return;\n \n this.cropper = new ImageCropper({\n container,\n image: this.initialImage,\n shape: this.shape,\n aspectRatio: 1,\n outputSize: this.outputSize,\n outputQuality: this.outputQuality,\n });\n \n await this.cropper.initialize();\n }\n\n private async handleCrop(): Promise {\n if (!this.cropper) return;\n \n try {\n this.isProcessing = true;\n this.currentStep = 'preview';\n await this.updateComplete;\n \n // Get cropped image\n const croppedData = await this.cropper.getCroppedImage();\n this.croppedImage = croppedData;\n \n // Simulate processing time for better UX\n await new Promise(resolve => setTimeout(resolve, 800));\n \n this.isProcessing = false;\n \n // Emit save event\n this.dispatchEvent(new CustomEvent('save', {\n detail: { croppedImage: this.croppedImage },\n bubbles: true,\n composed: true\n }));\n \n // Auto close after showing success\n setTimeout(() => {\n this.close();\n }, 1500);\n \n } catch (error) {\n console.error('Error cropping image:', error);\n this.isProcessing = false;\n }\n }\n\n private close(): void {\n this.remove();\n }\n}", "import { html, css } from '@design.estate/dees-element';\nimport '@design.estate/dees-wcctools/demotools';\nimport '../../00group-layout/dees-panel/dees-panel.js';\nimport './dees-input-profilepicture.js';\nimport type { DeesInputProfilePicture } from './dees-input-profilepicture.js';\n\nexport const demoFunc = () => html`\n \n \n
      \n {\n // Basic demo with round profile picture\n const roundProfile = elementArg.querySelector('dees-input-profilepicture[shape=\"round\"]');\n \n if (roundProfile) {\n roundProfile.addEventListener('change', (event: CustomEvent) => {\n const target = event.target as DeesInputProfilePicture;\n console.log('Round profile picture changed:', target.value?.substring(0, 50) + '...');\n });\n }\n }}>\n \n
      \n \n \n \n
      \n
      \n
      \n\n {\n // Different sizes demo\n const profiles = elementArg.querySelectorAll('dees-input-profilepicture');\n profiles.forEach((profile) => {\n profile.addEventListener('change', (event: CustomEvent) => {\n const target = event.target as DeesInputProfilePicture;\n console.log(`Profile (size ${target.size}) changed`);\n });\n });\n }}>\n \n
      \n \n \n \n \n \n
      \n
      \n
      \n\n {\n // Pre-filled profile with placeholder\n const sampleImageUrl = 'data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjAwIiBoZWlnaHQ9IjIwMCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KICA8ZGVmcz4KICAgIDxsaW5lYXJHcmFkaWVudCBpZD0iZ3JhZGllbnQiIHgxPSIwJSIgeTE9IjAlIiB4Mj0iMTAwJSIgeTI9IjEwMCUiPgogICAgICA8c3RvcCBvZmZzZXQ9IjAlIiBzdG9wLWNvbG9yPSIjNjY3ZWVhIiAvPgogICAgICA8c3RvcCBvZmZzZXQ9IjEwMCUiIHN0b3AtY29sb3I9IiM3NjRiYTIiIC8+CiAgICA8L2xpbmVhckdyYWRpZW50PgogIDwvZGVmcz4KICA8cmVjdCB3aWR0aD0iMjAwIiBoZWlnaHQ9IjIwMCIgZmlsbD0idXJsKCNncmFkaWVudCkiIC8+CiAgPHRleHQgeD0iNTAlIiB5PSI1MCUiIGRvbWluYW50LWJhc2VsaW5lPSJtaWRkbGUiIHRleHQtYW5jaG9yPSJtaWRkbGUiIGZvbnQtZmFtaWx5PSJBcmlhbCIgZm9udC1zaXplPSI4MCIgZmlsbD0id2hpdGUiPkpEPC90ZXh0Pgo8L3N2Zz4=';\n \n const prefilledProfile = elementArg.querySelector('#prefilled-profile') as DeesInputProfilePicture;\n if (prefilledProfile) {\n prefilledProfile.value = sampleImageUrl;\n \n prefilledProfile.addEventListener('change', (event: CustomEvent) => {\n const target = event.target as DeesInputProfilePicture;\n const output = elementArg.querySelector('#prefilled-output');\n if (output) {\n output.textContent = target.value ? \n `Image data: ${target.value.substring(0, 80)}...` : \n 'No image selected';\n }\n });\n }\n }}>\n \n \n \n
      \n Image data will appear here when changed\n
      \n
      \n
      \n\n {\n // Disabled state demo\n const disabledProfile = elementArg.querySelector('#disabled-profile') as DeesInputProfilePicture;\n if (disabledProfile) {\n disabledProfile.value = 'data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjAwIiBoZWlnaHQ9IjIwMCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KICA8cmVjdCB3aWR0aD0iMjAwIiBoZWlnaHQ9IjIwMCIgZmlsbD0iI2NjY2NjYyIgLz4KICA8dGV4dCB4PSI1MCUiIHk9IjUwJSIgZG9taW5hbnQtYmFzZWxpbmU9Im1pZGRsZSIgdGV4dC1hbmNob3I9Im1pZGRsZSIgZm9udC1mYW1pbHk9IkFyaWFsIiBmb250LXNpemU9IjYwIiBmaWxsPSJ3aGl0ZSI+TkE8L3RleHQ+Cjwvc3ZnPg==';\n }\n }}>\n \n
      \n \n \n \n \n \n
      \n
      \n
      \n\n \n \n
        \n
      • Image Upload: Click to upload or drag & drop images
      • \n
      • Image Cropping: Interactive crop tool with resize handles
      • \n
      • Shape Support: Round or square profile pictures
      • \n
      • Size Customization: Adjustable dimensions
      • \n
      • Preview & Edit: Hover overlay with edit and delete options
      • \n
      • File Validation: Format and size restrictions
      • \n
      • Responsive Design: Works on desktop and mobile devices
      • \n
      • Form Integration: Standard form value binding and validation
      • \n
      • Accessibility: Keyboard navigation and screen reader support
      • \n
      • Z-Index Management: Proper modal stacking with registry
      • \n
      \n \n
      \n Supported Formats: JPEG, PNG, WebP
      \n Max File Size: 5MB (configurable)
      \n Output Format: Base64 encoded JPEG\n
      \n
      \n
      \n
      \n`;", "import {\n customElement,\n html,\n property,\n css,\n cssManager,\n state,\n type TemplateResult,\n} from '@design.estate/dees-element';\nimport { DeesInputBase } from '../dees-input-base/dees-input-base.js';\nimport '../../00group-utility/dees-icon/dees-icon.js';\nimport '../../00group-layout/dees-label/dees-label.js';\nimport { ProfilePictureModal } from './profilepicture.modal.js';\nimport { demoFunc } from './dees-input-profilepicture.demo.js';\nimport { themeDefaultStyles } from '../../00theme.js';\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'dees-input-profilepicture': DeesInputProfilePicture;\n }\n}\n\nexport type ProfileShape = 'square' | 'round';\n\n@customElement('dees-input-profilepicture')\nexport class DeesInputProfilePicture extends DeesInputBase {\n public static demo = demoFunc;\n public static demoGroups = ['Input'];\n\n @property({ type: String })\n accessor value: string = ''; // Base64 encoded image or URL\n\n @property({ type: String })\n accessor shape: ProfileShape = 'round';\n\n @property({ type: Number })\n accessor size: number = 120;\n\n @property({ type: String })\n accessor placeholder: string = '';\n\n @property({ type: Boolean })\n accessor allowUpload: boolean = true;\n\n @property({ type: Boolean })\n accessor allowDelete: boolean = true;\n\n @property({ type: Number })\n accessor maxFileSize: number = 5 * 1024 * 1024; // 5MB\n\n @property({ type: Array })\n accessor acceptedFormats: string[] = ['image/jpeg', 'image/png', 'image/webp'];\n\n @property({ type: Number })\n accessor outputSize: number = 800; // Output resolution in pixels\n\n @property({ type: Number })\n accessor outputQuality: number = 0.95; // 0-1 quality for JPEG\n\n @state()\n accessor isHovered: boolean = false;\n\n @state()\n accessor isDragging: boolean = false;\n\n @state()\n accessor isLoading: boolean = false;\n\n private modalInstance: ProfilePictureModal | null = null;\n\n public static styles = [\n themeDefaultStyles,\n ...DeesInputBase.baseStyles,\n cssManager.defaultStyles,\n css`\n /* TODO: Migrate hardcoded values to --dees-* CSS variables */\n :host {\n display: block;\n position: relative;\n }\n\n .input-wrapper {\n display: flex;\n flex-direction: column;\n gap: 16px;\n }\n\n .profile-container {\n position: relative;\n display: inline-block;\n cursor: pointer;\n transition: all 0.3s ease;\n }\n\n .profile-container:hover {\n transform: scale(1.02);\n }\n\n .profile-picture {\n width: var(--size, 120px);\n height: var(--size, 120px);\n background: ${cssManager.bdTheme('#f5f5f5', '#18181b')};\n border: 3px solid ${cssManager.bdTheme('#e5e7eb', '#27272a')};\n display: flex;\n align-items: center;\n justify-content: center;\n overflow: hidden;\n position: relative;\n transition: all 0.3s ease;\n }\n\n .profile-picture.round {\n border-radius: 50%;\n }\n\n .profile-picture.square {\n border-radius: 12px;\n }\n\n .profile-picture.dragging {\n border-color: ${cssManager.bdTheme('#3b82f6', '#60a5fa')};\n box-shadow: 0 0 0 4px ${cssManager.bdTheme('rgba(59, 130, 246, 0.15)', 'rgba(96, 165, 250, 0.15)')};\n }\n\n .profile-picture:hover {\n border-color: ${cssManager.bdTheme('#d4d4d8', '#3f3f46')};\n }\n\n .profile-picture:disabled {\n cursor: not-allowed;\n opacity: 0.5;\n }\n\n .profile-image {\n width: 100%;\n height: 100%;\n object-fit: cover;\n }\n\n .placeholder-icon {\n color: ${cssManager.bdTheme('#71717a', '#a1a1aa')};\n }\n\n .overlay {\n position: absolute;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n background: rgba(0, 0, 0, 0.6);\n display: flex;\n align-items: center;\n justify-content: center;\n opacity: 0;\n transition: opacity 0.3s ease;\n pointer-events: none;\n }\n\n .profile-container:hover .overlay {\n opacity: 1;\n }\n\n .overlay-content {\n display: flex;\n gap: 12px;\n }\n\n .overlay-button {\n width: 40px;\n height: 40px;\n border-radius: 50%;\n background: ${cssManager.bdTheme('rgba(255, 255, 255, 0.95)', 'rgba(39, 39, 42, 0.95)')};\n border: 1px solid ${cssManager.bdTheme('rgba(0, 0, 0, 0.1)', 'rgba(255, 255, 255, 0.1)')};\n color: ${cssManager.bdTheme('#09090b', '#fafafa')};\n display: flex;\n align-items: center;\n justify-content: center;\n cursor: pointer;\n transition: all 0.2s ease;\n pointer-events: auto;\n box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);\n }\n\n .overlay-button:hover {\n background: ${cssManager.bdTheme('#ffffff', '#3f3f46')};\n transform: scale(1.1);\n box-shadow: 0 4px 8px rgba(0, 0, 0, 0.15);\n }\n\n .overlay-button.delete {\n background: ${cssManager.bdTheme('rgba(239, 68, 68, 0.9)', 'rgba(220, 38, 38, 0.9)')};\n color: white;\n border-color: transparent;\n }\n\n .overlay-button.delete:hover {\n background: ${cssManager.bdTheme('#ef4444', '#dc2626')};\n }\n\n .drop-zone-text {\n position: absolute;\n top: 50%;\n left: 50%;\n transform: translate(-50%, -50%);\n text-align: center;\n color: white;\n font-weight: 500;\n pointer-events: none;\n }\n\n .hidden-input {\n display: none;\n }\n\n /* Loading animation */\n .loading-overlay {\n position: absolute;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n background: ${cssManager.bdTheme('rgba(255, 255, 255, 0.8)', 'rgba(0, 0, 0, 0.8)')};\n display: flex;\n align-items: center;\n justify-content: center;\n border-radius: inherit;\n opacity: 0;\n pointer-events: none;\n transition: opacity 0.2s ease;\n }\n\n .loading-overlay.show {\n opacity: 1;\n pointer-events: auto;\n }\n\n .loading-spinner {\n width: 40px;\n height: 40px;\n border: 3px solid ${cssManager.bdTheme('rgba(0, 0, 0, 0.1)', 'rgba(255, 255, 255, 0.1)')};\n border-top-color: ${cssManager.bdTheme('#3b82f6', '#60a5fa')};\n border-radius: 50%;\n animation: spin 0.6s linear infinite;\n }\n\n @keyframes spin {\n to {\n transform: rotate(360deg);\n }\n }\n\n @keyframes pulse {\n 0% {\n transform: scale(1);\n opacity: 1;\n }\n 50% {\n transform: scale(1.05);\n opacity: 0.8;\n }\n 100% {\n transform: scale(1);\n opacity: 1;\n }\n }\n\n .profile-picture.clicking {\n animation: pulse 0.3s ease-out;\n }\n `,\n ];\n\n render(): TemplateResult {\n return html`\n
      \n \n \n
      \n
      \n ${this.value ? html`\n \"Profile\n ` : html`\n \n `}\n \n ${this.isDragging ? html`\n
      \n
      \n Drop image here\n
      \n
      \n ` : ''}\n \n ${this.value && !this.disabled ? html`\n
      \n
      \n ${this.allowUpload ? html`\n \n ` : ''}\n ${this.allowDelete ? html`\n \n ` : ''}\n
      \n
      \n ` : ''}\n \n ${this.isLoading && !this.value ? html`\n
      \n
      \n
      \n ` : ''}\n
      \n
      \n \n \n
      \n `;\n }\n\n private handleClick(): void {\n if (this.disabled || !this.allowUpload) return;\n \n if (!this.value) {\n // If no image, open file picker\n this.isLoading = true;\n const input = this.shadowRoot!.querySelector('.hidden-input') as HTMLInputElement;\n \n // Set up a focus handler to detect when the dialog is closed without selection\n const handleFocus = () => {\n setTimeout(() => {\n // Check if no file was selected\n if (!input.files || input.files.length === 0) {\n this.isLoading = false;\n }\n window.removeEventListener('focus', handleFocus);\n }, 300);\n };\n \n window.addEventListener('focus', handleFocus);\n input.click();\n }\n }\n\n private handleFileSelect(event: Event): void {\n const input = event.target as HTMLInputElement;\n const file = input.files?.[0];\n \n // Always reset loading state when file dialog interaction completes\n this.isLoading = false;\n \n if (file) {\n this.processFile(file);\n }\n \n // Reset input to allow selecting the same file again\n input.value = '';\n }\n\n private handleDragOver(event: DragEvent): void {\n event.preventDefault();\n if (!this.disabled && this.allowUpload) {\n this.isDragging = true;\n }\n }\n\n private handleDragLeave(): void {\n this.isDragging = false;\n }\n\n private handleDrop(event: DragEvent): void {\n event.preventDefault();\n this.isDragging = false;\n \n if (this.disabled || !this.allowUpload) return;\n \n const file = event.dataTransfer?.files[0];\n if (file) {\n this.processFile(file);\n }\n }\n\n private async processFile(file: File): Promise {\n // Validate file type\n if (!this.acceptedFormats.includes(file.type)) {\n console.error('Invalid file type:', file.type);\n return;\n }\n \n // Validate file size\n if (file.size > this.maxFileSize) {\n console.error('File too large:', file.size);\n return;\n }\n \n // Read file as base64\n const reader = new FileReader();\n reader.onload = async (e) => {\n const base64 = e.target?.result as string;\n \n // Open modal for cropping\n await this.openModal(base64);\n };\n reader.readAsDataURL(file);\n }\n\n private async openModal(initialImage?: string): Promise {\n const imageToEdit = initialImage || this.value;\n \n if (!imageToEdit) {\n // If no image provided, open file picker\n const input = this.shadowRoot!.querySelector('.hidden-input') as HTMLInputElement;\n input.click();\n return;\n }\n \n // Create and show modal\n this.modalInstance = new ProfilePictureModal();\n this.modalInstance.shape = this.shape;\n this.modalInstance.initialImage = imageToEdit;\n this.modalInstance.outputSize = this.outputSize;\n this.modalInstance.outputQuality = this.outputQuality;\n \n this.modalInstance.addEventListener('save', (event: CustomEvent) => {\n this.value = event.detail.croppedImage;\n this.changeSubject.next(this);\n });\n \n document.body.appendChild(this.modalInstance);\n }\n\n private deletePicture(): void {\n this.value = '';\n this.changeSubject.next(this);\n }\n\n public getValue(): string {\n return this.value;\n }\n\n public setValue(value: string): void {\n this.value = value;\n }\n}", "// Input Components\nexport * from './dees-input-base/index.js';\nexport * from './dees-input-checkbox/index.js';\nexport * from './dees-input-code/index.js';\nexport * from './dees-input-datepicker/index.js';\nexport * from './dees-input-dropdown/index.js';\nexport * from './dees-input-fileupload/index.js';\nexport * from './dees-input-iban/index.js';\nexport * from './dees-input-list/index.js';\nexport * from './dees-input-multitoggle/index.js';\nexport * from './dees-input-phone/index.js';\nexport * from './dees-input-quantityselector/index.js';\nexport * from './dees-input-radiogroup/index.js';\nexport * from './dees-input-richtext/index.js';\nexport * from './dees-input-searchselect/index.js';\nexport * from './dees-input-tags/index.js';\nexport * from './dees-input-text/index.js';\nexport * from './dees-input-toggle/index.js';\nexport * from './dees-input-typelist/index.js';\nexport * from './dees-input-wysiwyg.js';\nexport * from './profilepicture/dees-input-profilepicture.js';\n", "import { html, cssManager } from '@design.estate/dees-element';\n\nexport const demoFunc = () => html`\n \n
      \n
      \n
      Non-Selectable Chips
      \n
      Basic chips without selection capability. Use for display-only tags.
      \n \n
      \n \n
      \n
      Single Selection Chips
      \n
      Click to select one chip at a time. Useful for filters and options.
      \n \n
      \n \n
      \n
      Multiple Selection Chips
      \n
      Select multiple chips simultaneously. Great for tag selection.
      \n \n
      \n \n
      \n
      Removable Chips with Keys
      \n
      Chips with remove buttons and key-value pairs. Perfect for dynamic lists.
      \n \n
      \n \n
      \n
      Mixed Content Example
      \n
      Combining different chip types for complex UIs.
      \n \n
      \n
      \n`;\n", "import {\n customElement,\n html,\n DeesElement,\n property,\n type TemplateResult,\n cssManager,\n css,\n type CSSResult,\n unsafeCSS,\n} from '@design.estate/dees-element';\n\nimport * as domtools from '@design.estate/dees-domtools';\nimport { demoFunc } from './dees-chips.demo.js';\nimport { themeDefaultStyles } from '../../00theme.js';\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'dees-chips': DeesChips;\n }\n}\n\ntype Tag = { key: string; value: string };\n\n@customElement('dees-chips')\nexport class DeesChips extends DeesElement {\n public static demo = demoFunc;\n public static demoGroups = ['Layout'];\n\n @property()\n accessor selectionMode: 'none' | 'single' | 'multiple' = 'single';\n\n @property({\n type: Boolean,\n })\n accessor chipsAreRemovable: boolean = false;\n\n @property({\n type: Array,\n })\n accessor selectableChips: Tag[] = [];\n\n @property()\n accessor selectedChip: Tag = null;\n\n @property({\n type: Array,\n })\n accessor selectedChips: Tag[] = [];\n\n constructor() {\n super();\n }\n\n public static styles = [\n themeDefaultStyles,\n cssManager.defaultStyles,\n css`\n /* TODO: Migrate hardcoded values to --dees-* CSS variables */\n :host {\n display: block;\n box-sizing: border-box;\n }\n\n .mainbox {\n user-select: none;\n display: flex;\n flex-wrap: wrap;\n gap: 8px;\n }\n\n .chip {\n background: ${cssManager.bdTheme('#f4f4f5', '#27272a')};\n border: 1px solid ${cssManager.bdTheme('#e5e7eb', '#3f3f46')};\n display: inline-flex;\n align-items: center;\n height: 32px;\n padding: 0px 12px;\n font-size: 14px;\n font-weight: 500;\n color: ${cssManager.bdTheme('#09090b', '#fafafa')};\n border-radius: 6px;\n position: relative;\n cursor: pointer;\n transition: all 0.15s ease;\n box-shadow: 0 1px 2px 0 rgba(0, 0, 0, 0.05);\n }\n\n .chip:hover {\n background: ${cssManager.bdTheme('#e5e7eb', '#3f3f46')};\n border-color: ${cssManager.bdTheme('#d1d5db', '#52525b')};\n }\n\n .chip:active {\n transform: scale(0.98);\n }\n\n .chip.selected {\n background: ${cssManager.bdTheme('#3b82f6', '#3b82f6')};\n border-color: ${cssManager.bdTheme('#3b82f6', '#3b82f6')};\n color: #ffffff;\n }\n\n .chip.selected:hover {\n background: ${cssManager.bdTheme('#2563eb', '#2563eb')};\n border-color: ${cssManager.bdTheme('#2563eb', '#2563eb')};\n }\n\n .chipKey {\n background: ${cssManager.bdTheme('rgba(0, 0, 0, 0.06)', 'rgba(255, 255, 255, 0.1)')};\n height: 20px;\n line-height: 20px;\n display: inline-flex;\n align-items: center;\n margin-left: -8px;\n padding: 0px 8px;\n margin-right: 8px;\n border-radius: 4px;\n font-size: 12px;\n font-weight: 600;\n color: ${cssManager.bdTheme('#71717a', '#a1a1aa')};\n }\n\n .chip.selected .chipKey {\n background: rgba(255, 255, 255, 0.2);\n color: rgba(255, 255, 255, 0.9);\n }\n\n dees-icon {\n display: flex;\n align-items: center;\n justify-content: center;\n width: 16px;\n height: 16px;\n margin-left: 8px;\n margin-right: -6px;\n border-radius: 3px;\n transition: all 0.15s ease;\n color: ${cssManager.bdTheme('#71717a', '#a1a1aa')};\n }\n\n .chip.selected dees-icon {\n color: rgba(255, 255, 255, 0.8);\n }\n\n dees-icon:hover {\n background: ${cssManager.bdTheme('rgba(0, 0, 0, 0.1)', 'rgba(255, 255, 255, 0.1)')};\n color: ${cssManager.bdTheme('#ef4444', '#ef4444')};\n }\n\n .chip.selected dees-icon:hover {\n background: rgba(255, 255, 255, 0.2);\n color: #ffffff;\n }\n `,\n ];\n\n public render(): TemplateResult {\n return html`\n
      \n ${this.selectableChips.map(\n (chip) => html`\n this.selectChip(chip)}\n class=\"chip ${this.isSelected(chip) ? 'selected' : ''}\"\n >\n ${chip.key ? html`
      ${chip.key}
      ` : html``} ${chip.value}\n ${this.chipsAreRemovable\n ? html`\n {\n event.stopPropagation(); // prevent the selectChip event from being triggered\n this.removeChip(chip);\n }}\n .icon=${'fa:xmark'}\n >\n `\n : html``}\n
      \n `\n )}\n \n `;\n }\n\n public async firstUpdated() {\n // Component initialized\n }\n\n private isSelected(chip: Tag): boolean {\n if (this.selectionMode === 'single') {\n return this.selectedChip ? this.isSameChip(this.selectedChip, chip) : false;\n } else {\n return this.selectedChips.some((selected) => this.isSameChip(selected, chip));\n }\n }\n \n private isSameChip(chip1: Tag, chip2: Tag): boolean {\n // If both have keys, compare by key\n if (chip1.key && chip2.key) {\n return chip1.key === chip2.key;\n }\n // Otherwise compare by value (and key if present)\n return chip1.value === chip2.value && chip1.key === chip2.key;\n }\n\n public async selectChip(chip: Tag) {\n if (this.selectionMode === 'none') {\n return;\n }\n\n if (this.selectionMode === 'single') {\n if (this.isSelected(chip)) {\n this.selectedChip = null;\n this.selectedChips = [];\n } else {\n this.selectedChip = chip;\n this.selectedChips = [chip];\n }\n } else if (this.selectionMode === 'multiple') {\n if (this.isSelected(chip)) {\n this.selectedChips = this.selectedChips.filter((selected) => !this.isSameChip(selected, chip));\n } else {\n this.selectedChips = [...this.selectedChips, chip];\n }\n this.requestUpdate();\n }\n console.log(this.selectedChips);\n }\n\n public removeChip(chipToRemove: Tag): void {\n // Remove the chip from selectableChips\n this.selectableChips = this.selectableChips.filter((chip) => !this.isSameChip(chip, chipToRemove));\n\n // Remove the chip from selectedChips if present\n this.selectedChips = this.selectedChips.filter((chip) => !this.isSameChip(chip, chipToRemove));\n\n // If the removed chip was the selectedChip, set selectedChip to null\n if (this.selectedChip && this.isSameChip(this.selectedChip, chipToRemove)) {\n this.selectedChip = null;\n }\n\n // Trigger an update to re-render the component\n this.requestUpdate();\n }\n}\n", "export * from './dees-chips.js';\n", "import { html, css, cssManager } from '@design.estate/dees-element';\nimport type { DeesDashboardgrid } from './dees-dashboardgrid.js';\nimport '@design.estate/dees-wcctools/demotools';\n\nexport const demoFunc = () => {\n return html`\n {\n const grid = elementArg.querySelector('#dashboardGrid') as DeesDashboardgrid;\n\n const seedWidgets = [\n {\n id: 'metrics1',\n x: 0,\n y: 0,\n w: 3,\n h: 2,\n title: 'Revenue',\n icon: 'lucide:dollarSign',\n content: html`\n
      \n
      $124,563
      \n
      \u2191 12.5% from last month
      \n
      \n `,\n },\n {\n id: 'metrics2',\n x: 3,\n y: 0,\n w: 3,\n h: 2,\n title: 'Users',\n icon: 'lucide:users',\n content: html`\n
      \n
      8,234
      \n
      \u2191 5.2% from last week
      \n
      \n `,\n },\n {\n id: 'chart1',\n x: 6,\n y: 0,\n w: 6,\n h: 4,\n title: 'Analytics',\n icon: 'lucide:lineChart',\n content: html`\n
      \n
      \n \n
      Chart visualization area
      \n
      \n
      \n `,\n },\n ];\n\n grid.widgets = seedWidgets.map(widget => ({ ...widget }));\n grid.cellHeight = 80;\n grid.margin = { top: 10, right: 10, bottom: 10, left: 10 };\n grid.enableAnimation = true;\n grid.showGridLines = false;\n\n const baseLayout = grid.getLayout().map(item => ({ ...item }));\n const mobileLayout = grid.widgets.map((widget, index) => ({\n id: widget.id,\n x: 0,\n y: index === 0 ? 0 : grid.widgets.slice(0, index).reduce((acc, prev) => acc + prev.h, 0),\n w: grid.columns,\n h: widget.h,\n }));\n\n grid.layouts = {\n base: baseLayout,\n mobile: mobileLayout,\n };\n\n const statusEl = elementArg.querySelector('#dashboardLayoutStatus') as HTMLElement;\n const updateStatus = () => {\n const layout = grid.getLayout();\n statusEl.textContent = `Active breakpoint: ${grid.activeBreakpoint} \u2022 Tiles: ${layout.length}`;\n };\n\n const mediaQuery = window.matchMedia('(max-width: 768px)');\n const handleBreakpoint = () => {\n const target = mediaQuery.matches ? 'mobile' : 'base';\n grid.applyBreakpointLayout(target);\n updateStatus();\n };\n if (typeof mediaQuery.addEventListener === 'function') {\n mediaQuery.addEventListener('change', handleBreakpoint);\n } else {\n (mediaQuery as MediaQueryList & {\n addListener?: (listener: (this: MediaQueryList, ev: MediaQueryListEvent) => void) => void;\n }).addListener?.(handleBreakpoint);\n }\n handleBreakpoint();\n\n let widgetCounter = 4;\n\n const buttons = elementArg.querySelectorAll('dees-button');\n buttons.forEach(button => {\n const text = button.textContent?.trim();\n\n switch (text) {\n case 'Toggle Animation':\n button.addEventListener('click', () => {\n grid.enableAnimation = !grid.enableAnimation;\n });\n break;\n case 'Toggle Grid Lines':\n button.addEventListener('click', () => {\n grid.showGridLines = !grid.showGridLines;\n });\n break;\n case 'Add Widget':\n button.addEventListener('click', () => {\n const newWidget = {\n id: `widget${widgetCounter++}`,\n x: 0,\n y: 0,\n w: 3,\n h: 2,\n autoPosition: true,\n title: `Widget ${widgetCounter - 1}`,\n icon: 'lucide:package',\n content: html`\n
      \n
      New widget content
      \n
      ${Math.floor(\n Math.random() * 1000,\n )}
      \n
      \n `,\n };\n grid.addWidget(newWidget, true);\n });\n break;\n case 'Compact Grid':\n button.addEventListener('click', () => {\n grid.compact();\n });\n break;\n case 'Toggle Edit Mode':\n button.addEventListener('click', () => {\n grid.editable = !grid.editable;\n button.textContent = grid.editable ? 'Lock Grid' : 'Unlock Grid';\n });\n break;\n case 'Reset Layout':\n button.addEventListener('click', () => {\n grid.applyBreakpointLayout(grid.activeBreakpoint);\n });\n break;\n default:\n break;\n }\n });\n\n // Enhanced logging for reflow events\n let lastPlaceholderPosition = null;\n let moveEventCounter = 0;\n\n // Helper function to log grid state\n const logGridState = (eventName: string, details?: any) => {\n const layout = grid.getLayout();\n console.group(`\uD83D\uDD04 ${eventName} [Event #${++moveEventCounter}]`);\n console.log('Timestamp:', new Date().toISOString());\n console.log('Grid Configuration:', {\n columns: grid.columns,\n cellHeight: grid.cellHeight,\n margin: grid.margin,\n editable: grid.editable,\n activeBreakpoint: grid.activeBreakpoint\n });\n console.log('Current Layout:', layout);\n console.log('Widget Count:', layout.length);\n console.log('Grid Bounds:', {\n totalWidgets: grid.widgets.length,\n maxY: Math.max(...layout.map(w => w.y + w.h)),\n occupied: layout.map(w => `${w.id}: (${w.x},${w.y}) ${w.w}x${w.h}`).join(', ')\n });\n if (details) {\n console.log('Event Details:', details);\n }\n console.groupEnd();\n };\n\n // Monitor placeholder position changes using MutationObserver\n const placeholderObserver = new MutationObserver(() => {\n const placeholder = grid.shadowRoot?.querySelector('.placeholder') as HTMLElement;\n if (placeholder) {\n const currentPosition = {\n left: placeholder.style.left,\n top: placeholder.style.top,\n width: placeholder.style.width,\n height: placeholder.style.height\n };\n\n if (JSON.stringify(currentPosition) !== JSON.stringify(lastPlaceholderPosition)) {\n console.group('\uD83D\uDCCD Placeholder Position Changed');\n console.log('Previous:', lastPlaceholderPosition);\n console.log('Current:', currentPosition);\n\n // Extract grid coordinates from style\n const gridInfo = grid.shadowRoot?.querySelector('.grid-container');\n if (gridInfo) {\n console.log('Grid Container Dimensions:', {\n width: gridInfo.clientWidth,\n height: gridInfo.clientHeight\n });\n }\n console.groupEnd();\n lastPlaceholderPosition = currentPosition;\n }\n }\n });\n\n // Start observing the shadow DOM for placeholder changes\n if (grid.shadowRoot) {\n placeholderObserver.observe(grid.shadowRoot, {\n childList: true,\n subtree: true,\n attributes: true,\n attributeFilter: ['style']\n });\n }\n\n // Log initial state\n logGridState('Initial Grid State');\n\n grid.addEventListener('widget-move', (e: CustomEvent) => {\n logGridState('Widget Move', {\n widget: e.detail.widget,\n displaced: e.detail.displaced,\n swappedWith: e.detail.swappedWith\n });\n });\n\n grid.addEventListener('widget-resize', (e: CustomEvent) => {\n logGridState('Widget Resize', {\n widget: e.detail.widget,\n displaced: e.detail.displaced,\n swappedWith: e.detail.swappedWith\n });\n });\n\n grid.addEventListener('widget-remove', (e: CustomEvent) => {\n logGridState('Widget Remove', {\n removedWidget: e.detail.widget\n });\n updateStatus();\n });\n\n grid.addEventListener('layout-change', () => {\n logGridState('Layout Change');\n updateStatus();\n });\n\n // Monitor during drag/resize operations using pointer events\n grid.addEventListener('pointerdown', (e: PointerEvent) => {\n const isHeader = (e.target as HTMLElement).closest('.widget-header');\n const isResizeHandle = (e.target as HTMLElement).closest('.resize-handle');\n\n if (isHeader || isResizeHandle) {\n console.group(`\uD83C\uDFAF Interaction Started: ${isHeader ? 'Drag' : 'Resize'}`);\n console.log('Target Widget:', (e.target as HTMLElement).closest('.widget')?.getAttribute('data-widget-id'));\n console.log('Pointer Position:', { x: e.clientX, y: e.clientY });\n console.groupEnd();\n\n // Track pointer move during interaction\n const handlePointerMove = (moveEvent: PointerEvent) => {\n const widget = (e.target as HTMLElement).closest('.widget');\n if (widget) {\n console.log(`\u2194\uFE0F Pointer Move:`, {\n widgetId: widget.getAttribute('data-widget-id'),\n position: { x: moveEvent.clientX, y: moveEvent.clientY },\n delta: {\n x: moveEvent.clientX - e.clientX,\n y: moveEvent.clientY - e.clientY\n }\n });\n }\n };\n\n const handlePointerUp = () => {\n console.group('\uD83C\uDFC1 Interaction Ended');\n logGridState('Final State After Interaction');\n console.groupEnd();\n document.removeEventListener('pointermove', handlePointerMove);\n document.removeEventListener('pointerup', handlePointerUp);\n };\n\n document.addEventListener('pointermove', handlePointerMove);\n document.addEventListener('pointerup', handlePointerUp);\n }\n });\n\n // Log when widgets are added\n const originalAddWidget = grid.addWidget.bind(grid);\n grid.addWidget = (widget: any, autoPosition?: boolean) => {\n console.group('\u2795 Adding Widget');\n console.log('New Widget:', widget);\n console.log('Auto Position:', autoPosition);\n const result = originalAddWidget(widget, autoPosition);\n logGridState('After Widget Added');\n console.groupEnd();\n return result;\n };\n\n // Log compact operations\n const originalCompact = grid.compact.bind(grid);\n grid.compact = (direction?: string) => {\n console.group('\uD83D\uDDDC\uFE0F Compacting Grid');\n console.log('Direction:', direction || 'vertical');\n logGridState('Before Compact');\n const result = originalCompact(direction);\n logGridState('After Compact');\n console.groupEnd();\n return result;\n };\n\n updateStatus();\n }}>\n \n
      \n
      \n \n Toggle Animation\n \n\n \n Toggle Grid Lines\n \n\n \n Add Widget\n Compact Grid\n Reset Layout\n \n\n \n Toggle Edit Mode\n \n
      \n\n
      \n \n
      \n\n
      \n
      Drag to reposition, resize from handles, or right-click a header to delete a tile.
      \n
      \n
      \n
      \n
      \n `;\n};\n", "import { css, cssManager } from '@design.estate/dees-element';\n\nexport const dashboardGridStyles = [\n cssManager.defaultStyles,\n css`\n :host {\n display: block;\n width: 100%;\n height: 100%;\n position: relative;\n }\n\n .grid-container {\n position: relative;\n width: 100%;\n min-height: 400px;\n box-sizing: border-box;\n }\n\n .grid-widget {\n position: absolute;\n will-change: auto;\n }\n \n :host([enableanimation]) .grid-widget {\n transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);\n }\n\n .grid-widget.dragging {\n z-index: 1000;\n transition: none !important;\n opacity: 0.8;\n cursor: grabbing;\n pointer-events: none;\n will-change: transform;\n }\n \n .grid-widget.placeholder {\n pointer-events: none;\n z-index: 1;\n }\n \n .grid-widget.placeholder .widget-content {\n background: ${cssManager.bdTheme('rgba(59, 130, 246, 0.1)', 'rgba(59, 130, 246, 0.1)')};\n border: 2px dashed ${cssManager.bdTheme('#3b82f6', '#3b82f6')};\n box-shadow: none;\n }\n\n .grid-widget.resizing {\n transition: none !important;\n }\n\n .widget-content {\n position: absolute;\n left: 0;\n right: 0;\n top: 0;\n bottom: 0;\n overflow: hidden;\n background: ${cssManager.bdTheme('#ffffff', '#09090b')};\n border: 1px solid ${cssManager.bdTheme('#e5e7eb', '#27272a')};\n border-radius: 8px;\n box-shadow: ${cssManager.bdTheme(\n '0 1px 3px rgba(0, 0, 0, 0.1)',\n '0 1px 3px rgba(0, 0, 0, 0.3)'\n )};\n transition: box-shadow 0.2s ease;\n }\n\n .grid-widget:hover .widget-content {\n box-shadow: ${cssManager.bdTheme(\n '0 4px 12px rgba(0, 0, 0, 0.15)',\n '0 4px 12px rgba(0, 0, 0, 0.4)'\n )};\n }\n\n .grid-widget.dragging .widget-content {\n box-shadow: ${cssManager.bdTheme(\n '0 16px 48px rgba(0, 0, 0, 0.25)',\n '0 16px 48px rgba(0, 0, 0, 0.6)'\n )};\n transform: scale(1.05);\n }\n\n .widget-header {\n padding: 12px 16px;\n border-bottom: 1px solid ${cssManager.bdTheme('#e5e7eb', '#27272a')};\n display: flex;\n align-items: center;\n gap: 8px;\n font-size: 14px;\n font-weight: 600;\n color: ${cssManager.bdTheme('#09090b', '#fafafa')};\n background: ${cssManager.bdTheme('#f9fafb', '#0a0a0a')};\n cursor: grab;\n user-select: none;\n }\n \n .widget-header:hover {\n background: ${cssManager.bdTheme('#f4f4f5', '#18181b')};\n }\n \n .widget-header:active {\n cursor: grabbing;\n }\n\n .widget-header.locked {\n cursor: default;\n }\n \n .widget-header.locked:hover {\n background: ${cssManager.bdTheme('#f9fafb', '#0a0a0a')};\n }\n\n .widget-header dees-icon {\n font-size: 16px;\n color: ${cssManager.bdTheme('#71717a', '#71717a')};\n }\n\n .widget-body {\n position: absolute;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n overflow: auto;\n color: ${cssManager.bdTheme('#09090b', '#fafafa')};\n }\n\n .widget-body.has-header {\n top: 45px;\n }\n\n .resize-handle {\n position: absolute;\n background: transparent;\n z-index: 10;\n }\n\n .resize-handle:hover {\n background: ${cssManager.bdTheme('#3b82f6', '#3b82f6')};\n opacity: 0.3;\n }\n\n .resize-handle-e {\n cursor: ew-resize;\n width: 12px;\n right: -6px;\n top: 10%;\n height: 80%;\n }\n\n .resize-handle-s {\n cursor: ns-resize;\n height: 12px;\n width: 80%;\n bottom: -6px;\n left: 10%;\n }\n\n .resize-handle-se {\n cursor: se-resize;\n width: 20px;\n height: 20px;\n right: -2px;\n bottom: -2px;\n opacity: 0;\n transition: opacity 0.2s ease;\n }\n \n .resize-handle-se::after {\n content: '';\n position: absolute;\n right: 4px;\n bottom: 4px;\n width: 6px;\n height: 6px;\n border-right: 2px solid ${cssManager.bdTheme('#71717a', '#71717a')};\n border-bottom: 2px solid ${cssManager.bdTheme('#71717a', '#71717a')};\n }\n\n .grid-widget:hover .resize-handle-se {\n opacity: 0.7;\n }\n\n .resize-handle-se:hover {\n opacity: 1 !important;\n }\n \n .resize-handle-se:hover::after {\n border-color: ${cssManager.bdTheme('#3b82f6', '#3b82f6')};\n }\n\n .grid-placeholder {\n position: absolute;\n background: ${cssManager.bdTheme('#3b82f6', '#3b82f6')};\n opacity: 0.1;\n border-radius: 8px;\n border: 2px dashed ${cssManager.bdTheme('#3b82f6', '#3b82f6')};\n transition: all 0.2s ease;\n pointer-events: none;\n }\n\n .empty-state {\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n height: 400px;\n color: ${cssManager.bdTheme('#71717a', '#71717a')};\n text-align: center;\n padding: 32px;\n }\n\n .empty-state dees-icon {\n font-size: 48px;\n margin-bottom: 16px;\n opacity: 0.5;\n }\n \n .grid-lines {\n position: absolute;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n pointer-events: none;\n z-index: -1;\n }\n \n .grid-line-vertical {\n position: absolute;\n top: 0;\n bottom: 0;\n width: 1px;\n background: ${cssManager.bdTheme('#e5e7eb', '#27272a')};\n opacity: 0.3;\n }\n \n .grid-line-horizontal {\n position: absolute;\n left: 0;\n right: 0;\n height: 1px;\n background: ${cssManager.bdTheme('#e5e7eb', '#27272a')};\n opacity: 0.3;\n }\n `,\n];\n", "import type {\n DashboardResolvedMargins,\n DashboardMargin,\n DashboardWidget,\n DashboardLayoutItem,\n GridCellMetrics,\n LayoutDirection,\n} from './types.js';\n\nexport const DEFAULT_MARGIN = 10;\n\nexport const resolveMargins = (margin: DashboardMargin): DashboardResolvedMargins => {\n if (typeof margin === 'number') {\n return {\n horizontal: margin,\n vertical: margin,\n top: margin,\n right: margin,\n bottom: margin,\n left: margin,\n };\n }\n\n const resolved = {\n top: margin.top ?? DEFAULT_MARGIN,\n right: margin.right ?? DEFAULT_MARGIN,\n bottom: margin.bottom ?? DEFAULT_MARGIN,\n left: margin.left ?? DEFAULT_MARGIN,\n };\n\n return {\n ...resolved,\n horizontal: (resolved.left + resolved.right) / 2,\n vertical: (resolved.top + resolved.bottom) / 2,\n };\n};\n\nexport const calculateCellMetrics = (\n containerWidth: number,\n columns: number,\n margins: DashboardResolvedMargins,\n cellHeight: number,\n cellHeightUnit: string,\n): GridCellMetrics => {\n const totalMarginWidth = margins.horizontal * (columns + 1);\n const availableWidth = Math.max(containerWidth - totalMarginWidth, 0);\n const cellWidthPx = columns > 0 ? availableWidth / columns : 0;\n const cellHeightPx = cellHeightUnit === 'auto' ? cellWidthPx : cellHeight;\n\n return {\n containerWidth,\n cellWidthPx,\n marginHorizontalPx: margins.horizontal,\n cellHeightPx,\n marginVerticalPx: margins.vertical,\n };\n};\n\nexport const calculateGridHeight = (\n widgets: DashboardWidget[],\n margins: DashboardResolvedMargins,\n cellHeight: number,\n): number => {\n if (widgets.length === 0) return 0;\n const maxY = Math.max(...widgets.map(widget => widget.y + widget.h), 0);\n return maxY * cellHeight + (maxY + 1) * margins.vertical;\n};\n\nconst overlaps = (\n widget: DashboardWidget,\n x: number,\n y: number,\n w: number,\n h: number,\n) => x < widget.x + widget.w && x + w > widget.x && y < widget.y + widget.h && y + h > widget.y;\n\nexport const collectCollisions = (\n widgets: DashboardWidget[],\n target: DashboardWidget,\n nextX: number,\n nextY: number,\n nextW: number = target.w,\n nextH: number = target.h,\n): DashboardWidget[] => {\n return widgets.filter(widget => {\n if (widget.id === target.id) return false;\n return overlaps(widget, nextX, nextY, nextW, nextH);\n });\n};\n\nexport const checkCollision = (\n widgets: DashboardWidget[],\n target: DashboardWidget,\n nextX: number,\n nextY: number,\n): boolean => collectCollisions(widgets, target, nextX, nextY).length > 0;\n\nexport const cloneWidget = (widget: DashboardWidget): DashboardWidget => ({ ...widget });\n\nexport const cloneWidgets = (widgets: DashboardWidget[]): DashboardWidget[] => widgets.map(cloneWidget);\n\nexport const findAvailablePosition = (\n widgets: DashboardWidget[],\n width: number,\n height: number,\n columns: number,\n): { x: number; y: number } => {\n for (let y = 0; y < 200; y++) {\n for (let x = 0; x <= columns - width; x++) {\n const isFree = !widgets.some(widget => overlaps(widget, x, y, width, height));\n if (isFree) {\n return { x, y };\n }\n }\n }\n\n const maxY = widgets.reduce((acc, widget) => Math.max(acc, widget.y + widget.h), 0);\n return { x: 0, y: maxY };\n};\n\nexport interface PlacementResult {\n widgets: DashboardWidget[];\n movedWidgets: string[];\n swappedWith?: string;\n}\n\nexport const resolveWidgetPlacement = (\n widgets: DashboardWidget[],\n widgetId: string,\n next: { x: number; y: number; w?: number; h?: number },\n columns: number,\n previousPosition?: DashboardLayoutItem,\n): PlacementResult | null => {\n const sourceWidgets = cloneWidgets(widgets);\n const moving = sourceWidgets.find(widget => widget.id === widgetId);\n const original = widgets.find(widget => widget.id === widgetId);\n if (!moving || !original) {\n return null;\n }\n\n const target = {\n x: next.x,\n y: next.y,\n w: next.w ?? moving.w,\n h: next.h ?? moving.h,\n };\n\n moving.x = target.x;\n moving.y = target.y;\n moving.w = target.w;\n moving.h = target.h;\n\n const collisions = collectCollisions(sourceWidgets, moving, target.x, target.y, target.w, target.h);\n\n if (collisions.length === 0) {\n return { widgets: sourceWidgets, movedWidgets: [moving.id] };\n }\n\n if (collisions.length === 1) {\n const other = collisions[0];\n if (!other.locked && !other.noMove && other.w === moving.w && other.h === moving.h) {\n const otherClone = sourceWidgets.find(widget => widget.id === other.id);\n if (otherClone) {\n // Use the original position of the moving widget for a clean swap\n // This prevents the \"snapping together\" issue where both widgets end up at the same position\n const swapTarget = original;\n const previousOtherPosition = { x: otherClone.x, y: otherClone.y };\n otherClone.x = swapTarget.x;\n otherClone.y = swapTarget.y;\n\n const swapValid =\n collectCollisions(sourceWidgets, moving, moving.x, moving.y, moving.w, moving.h).length === 0 &&\n collectCollisions(sourceWidgets, otherClone, otherClone.x, otherClone.y, otherClone.w, otherClone.h).length === 0;\n\n if (swapValid) {\n return { widgets: sourceWidgets, movedWidgets: [moving.id, otherClone.id], swappedWith: otherClone.id };\n }\n\n otherClone.x = previousOtherPosition.x;\n otherClone.y = previousOtherPosition.y;\n }\n }\n }\n\n // attempt displacement cascade\n const movedIds = new Set([moving.id]);\n for (const offending of collisions) {\n if (offending.locked || offending.noMove) {\n return null;\n }\n const clone = sourceWidgets.find(widget => widget.id === offending.id);\n if (!clone) continue;\n const remaining = sourceWidgets.filter(widget => widget.id !== offending.id);\n const position = findAvailablePosition(remaining, clone.w, clone.h, columns);\n clone.x = position.x;\n clone.y = position.y;\n movedIds.add(clone.id);\n }\n\n // verify no overlaps remain\n const verify = collectCollisions(sourceWidgets, moving, moving.x, moving.y, moving.w, moving.h);\n if (verify.length > 0) {\n return null;\n }\n\n return { widgets: sourceWidgets, movedWidgets: Array.from(movedIds) };\n};\n\nexport const compactLayout = (\n widgets: DashboardWidget[],\n direction: LayoutDirection = 'vertical',\n) => {\n const sorted = [...widgets].sort((a, b) => {\n if (direction === 'vertical') {\n if (a.y !== b.y) return a.y - b.y;\n return a.x - b.x;\n }\n\n if (a.x !== b.x) return a.x - b.x;\n return a.y - b.y;\n });\n\n for (const widget of sorted) {\n if (widget.locked || widget.noMove) continue;\n\n if (direction === 'vertical') {\n while (widget.y > 0 && !checkCollision(widgets, widget, widget.x, widget.y - 1)) {\n widget.y -= 1;\n }\n } else {\n while (widget.x > 0 && !checkCollision(widgets, widget, widget.x - 1, widget.y)) {\n widget.x -= 1;\n }\n }\n }\n};\n\nexport const applyLayout = (\n widgets: DashboardWidget[],\n layout: DashboardLayoutItem[],\n): DashboardWidget[] => {\n return widgets.map(widget => {\n const layoutItem = layout.find(item => item.id === widget.id);\n return layoutItem ? { ...widget, ...layoutItem } : widget;\n });\n};\n", "import type { DashboardWidget, GridCellMetrics } from './types.js';\n\nexport interface PointerPosition {\n clientX: number;\n clientY: number;\n}\n\nexport interface DragComputationArgs {\n pointer: PointerPosition;\n containerRect: DOMRect;\n metrics: GridCellMetrics;\n columns: number;\n widget: DashboardWidget;\n rtl: boolean;\n dragOffsetX?: number;\n dragOffsetY?: number;\n}\n\nexport const computeGridCoordinates = ({\n pointer,\n containerRect,\n metrics,\n columns,\n widget,\n rtl,\n dragOffsetX = 0,\n dragOffsetY = 0,\n}: DragComputationArgs): { x: number; y: number } => {\n const relativeX = pointer.clientX - containerRect.left - dragOffsetX;\n const relativeY = pointer.clientY - containerRect.top - dragOffsetY;\n\n const marginX = metrics.marginHorizontalPx;\n const marginY = metrics.marginVerticalPx;\n const cellWidth = metrics.cellWidthPx;\n const cellHeight = metrics.cellHeightPx;\n\n const clamp = (value: number, min: number, max: number) => Math.max(min, Math.min(max, value));\n\n const adjustedX = clamp(relativeX - marginX, 0, containerRect.width - marginX);\n const adjustedY = clamp(relativeY - marginY, 0, Number.POSITIVE_INFINITY);\n\n const cellPlusMarginX = cellWidth + marginX;\n const cellPlusMarginY = cellHeight + marginY;\n\n let gridX = Math.round(adjustedX / cellPlusMarginX);\n if (rtl) {\n gridX = columns - widget.w - gridX;\n }\n gridX = clamp(gridX, 0, columns - widget.w);\n\n const gridY = clamp(Math.round(adjustedY / cellPlusMarginY), 0, Number.MAX_SAFE_INTEGER);\n\n return { x: gridX, y: gridY };\n};\n\nexport interface ResizeComputationArgs {\n pointer: PointerPosition;\n containerRect: DOMRect;\n metrics: GridCellMetrics;\n startWidth: number;\n startHeight: number;\n startPointer: PointerPosition;\n handler: 'e' | 's' | 'se';\n widget: DashboardWidget;\n columns: number;\n}\n\nexport const computeResizeDimensions = ({\n pointer,\n containerRect,\n metrics,\n startWidth,\n startHeight,\n startPointer,\n handler,\n widget,\n columns,\n}: ResizeComputationArgs): { width: number; height: number } => {\n const deltaX = pointer.clientX - startPointer.clientX;\n const deltaY = pointer.clientY - startPointer.clientY;\n\n let width = startWidth;\n let height = startHeight;\n\n const cellPlusMarginX = metrics.cellWidthPx + metrics.marginHorizontalPx;\n const cellPlusMarginY = metrics.cellHeightPx + metrics.marginVerticalPx;\n\n if (handler.includes('e')) {\n const deltaCols = Math.round(deltaX / cellPlusMarginX);\n width = startWidth + deltaCols;\n }\n\n if (handler.includes('s')) {\n const deltaRows = Math.round(deltaY / cellPlusMarginY);\n height = startHeight + deltaRows;\n }\n\n const clampedWidth = Math.max(widget.minW || 1, Math.min(width, widget.maxW || columns - widget.x));\n const clampedHeight = Math.max(widget.minH || 1, Math.min(height, widget.maxH || Number.MAX_SAFE_INTEGER));\n\n return {\n width: clampedWidth,\n height: clampedHeight,\n };\n};\n", "import type { DashboardWidget } from './types.js';\nimport { DeesContextmenu } from '../../00group-overlay/dees-contextmenu/dees-contextmenu.js';\nimport type { DeesDashboardgrid } from './dees-dashboardgrid.js';\nimport * as plugins from '../../00plugins.js';\n\nexport interface WidgetContextMenuOptions {\n widget: DashboardWidget;\n host: DeesDashboardgrid;\n event: MouseEvent;\n}\n\nexport const openWidgetContextMenu = ({\n widget,\n host,\n event,\n}: WidgetContextMenuOptions) => {\n const items: (plugins.tsclass.website.IMenuItem | { divider: true })[] = [\n {\n name: 'Delete tile',\n iconName: 'lucide:trash2' as any,\n action: async () => {\n host.removeWidget(widget.id);\n return null;\n },\n },\n ];\n\n DeesContextmenu.openContextMenuWithOptions(event, items as any);\n};\n", "import {\n DeesElement,\n customElement,\n property,\n state,\n html,\n type TemplateResult,\n} from '@design.estate/dees-element';\n\nimport '../../00group-utility/dees-icon/dees-icon.js';\nimport '../../00group-overlay/dees-contextmenu/dees-contextmenu.js';\nimport { demoFunc } from './dees-dashboardgrid.demo.js';\nimport { dashboardGridStyles } from './styles.js';\nimport {\n resolveMargins,\n calculateCellMetrics,\n calculateGridHeight,\n findAvailablePosition,\n compactLayout,\n applyLayout,\n resolveWidgetPlacement,\n type PlacementResult,\n} from './layout.js';\nimport {\n computeGridCoordinates,\n computeResizeDimensions,\n type PointerPosition,\n} from './interaction.js';\nimport { openWidgetContextMenu } from './contextmenu.js';\nimport type {\n DashboardWidget,\n DashboardMargin,\n DashboardResolvedMargins,\n GridCellMetrics,\n DashboardLayoutItem,\n LayoutDirection,\n CellHeightUnit,\n} from './types.js';\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'dees-dashboardgrid': DeesDashboardgrid;\n }\n}\n\ntype DragState = {\n widgetId: string;\n pointerId: number;\n offsetX: number;\n offsetY: number;\n start: DashboardLayoutItem;\n previousPosition: DashboardLayoutItem;\n currentPointer: PointerPosition;\n lastPlacement: PlacementResult | null;\n};\n\ntype ResizeState = {\n widgetId: string;\n pointerId: number;\n handler: 'e' | 's' | 'se';\n startPointer: PointerPosition;\n start: DashboardLayoutItem;\n startWidth: number;\n startHeight: number;\n lastPlacement: PlacementResult | null;\n};\n\n@customElement('dees-dashboardgrid')\nexport class DeesDashboardgrid extends DeesElement {\n public static demo = demoFunc;\n public static demoGroups = ['Layout'];\n public static styles = dashboardGridStyles;\n\n @property({ type: Array })\n accessor widgets: DashboardWidget[] = [];\n\n @property({ type: Number })\n accessor cellHeight: number = 80;\n\n @property({ type: Object })\n accessor margin: DashboardMargin = 10;\n\n @property({ type: Number })\n accessor columns: number = 12;\n\n @property({ type: Boolean })\n accessor editable: boolean = true;\n\n @property({ type: Boolean, reflect: true })\n accessor enableAnimation: boolean = true;\n\n @property({ type: String })\n accessor cellHeightUnit: CellHeightUnit = 'px';\n\n @property({ type: Boolean })\n accessor rtl: boolean = false;\n\n @property({ type: Boolean })\n accessor showGridLines: boolean = false;\n\n @property({ attribute: false })\n accessor layouts: Record | undefined = undefined;\n\n @property({ type: String })\n accessor activeBreakpoint: string = 'base';\n\n @state()\n accessor placeholderPosition: DashboardLayoutItem | null = null;\n\n @state()\n accessor metrics: GridCellMetrics | null = null;\n\n @state()\n accessor resolvedMargins: DashboardResolvedMargins | null = null;\n\n @state()\n accessor previewWidgets: DashboardWidget[] | null = null;\n\n private containerBounds: DOMRect | null = null;\n private dragState: DragState | null = null;\n private resizeState: ResizeState | null = null;\n private resizeObserver?: ResizeObserver;\n private interactionActive = false;\n\n public override async connectedCallback(): Promise {\n await super.connectedCallback();\n this.computeMetrics();\n this.observeResize();\n }\n\n public override async disconnectedCallback(): Promise {\n await super.disconnectedCallback();\n this.disconnectResizeObserver();\n this.releasePointerEvents();\n }\n\n protected updated(changed: Map): void {\n if (\n changed.has('margin') ||\n changed.has('columns') ||\n changed.has('cellHeight') ||\n changed.has('cellHeightUnit')\n ) {\n this.computeMetrics();\n }\n\n if (changed.has('widgets') && !this.interactionActive) {\n this.notifyLayoutChange();\n }\n }\n\n public render(): TemplateResult {\n const baseWidgets = this.widgets;\n if (baseWidgets.length === 0) {\n return html`\n
      \n \n
      No widgets configured
      \n
      Add widgets to populate the dashboard
      \n
      \n `;\n }\n\n const metrics = this.ensureMetrics();\n const margins = this.resolvedMargins ?? resolveMargins(this.margin);\n const cellHeight = metrics.cellHeightPx;\n const layoutForHeight = this.previewWidgets ?? this.widgets;\n const gridHeight = calculateGridHeight(layoutForHeight, margins, cellHeight);\n const previewMap = this.previewWidgets ? new Map(this.previewWidgets.map(widget => [widget.id, widget])) : null;\n\n return html`\n
      \n ${this.showGridLines ? this.renderGridLines(metrics, gridHeight) : null}\n ${baseWidgets.map(widget => this.renderWidget(widget, metrics, margins, previewMap))}\n ${this.placeholderPosition ? this.renderPlaceholder(metrics, margins) : null}\n
      \n `;\n }\n\n private renderGridLines(metrics: GridCellMetrics, gridHeight: number): TemplateResult {\n const vertical: TemplateResult[] = [];\n const horizontal: TemplateResult[] = [];\n const cellPlusMarginX = metrics.cellWidthPx + metrics.marginHorizontalPx;\n const cellPlusMarginY = metrics.cellHeightPx + metrics.marginVerticalPx;\n\n for (let i = 0; i <= this.columns; i++) {\n const leftPx = i * cellPlusMarginX + metrics.marginHorizontalPx;\n const leftPercent = this.pxToPercent(leftPx, metrics.containerWidth);\n vertical.push(html`
      `);\n }\n\n const rows = Math.ceil(gridHeight / cellPlusMarginY);\n for (let row = 0; row <= rows; row++) {\n const top = row * cellPlusMarginY;\n horizontal.push(html`
      `);\n }\n\n return html`\n
      \n ${vertical}\n ${horizontal}\n
      \n `;\n }\n\n private renderWidget(\n widget: DashboardWidget,\n metrics: GridCellMetrics,\n margins: DashboardResolvedMargins,\n previewMap: Map | null,\n ): TemplateResult {\n const isDragging = this.dragState?.widgetId === widget.id;\n const isResizing = this.resizeState?.widgetId === widget.id;\n const isLocked = widget.locked || !this.editable;\n const previewWidget = previewMap?.get(widget.id) ?? null;\n const layoutForRender = isDragging ? widget : previewWidget ?? widget;\n const rect = this.computeWidgetRect(layoutForRender, metrics, margins);\n\n const sideProperty = this.rtl ? 'right' : 'left';\n const sideValue = this.pxToPercent(rect.left, metrics.containerWidth);\n const widthPercent = this.pxToPercent(rect.width, metrics.containerWidth);\n\n let transform = '';\n if (isDragging && this.dragState?.currentPointer) {\n const pointer = this.dragState.currentPointer;\n const bounds = this.containerBounds ?? this.getBoundingClientRect();\n const translateX = pointer.clientX - bounds.left - this.dragState.offsetX - rect.left;\n const translateY = pointer.clientY - bounds.top - this.dragState.offsetY - rect.top;\n transform = `transform: translate(${translateX}px, ${translateY}px);`;\n }\n\n return html`\n \n
      \n ${widget.title\n ? html`\n this.startDrag(evt, widget)\n : null}\n @contextmenu=${(evt: MouseEvent) => this.handleWidgetContextMenu(evt, widget)}\n tabindex=${!isLocked && !widget.noMove ? 0 : -1}\n @keydown=${(evt: KeyboardEvent) => this.handleHeaderKeydown(evt, widget)}\n >\n ${widget.icon ? html`` : null}\n ${widget.title}\n
      \n `\n : null}\n
      \n ${widget.content}\n
      \n ${!isLocked && !widget.noResize\n ? html`\n this.startResize(evt, widget, 'e')}\n >\n this.startResize(evt, widget, 's')}\n >\n this.startResize(evt, widget, 'se')}\n >\n `\n : null}\n \n \n `;\n }\n\n private renderPlaceholder(\n metrics: GridCellMetrics,\n margins: DashboardResolvedMargins,\n ): TemplateResult {\n if (!this.placeholderPosition) {\n return html``;\n }\n\n const rect = this.computeWidgetRect(this.placeholderPosition, metrics, margins);\n const sideProperty = this.rtl ? 'right' : 'left';\n const sideValue = this.pxToPercent(rect.left, metrics.containerWidth);\n const widthPercent = this.pxToPercent(rect.width, metrics.containerWidth);\n\n return html`\n \n
      \n \n `;\n }\n\n private startDrag(event: PointerEvent, widget: DashboardWidget): void {\n if (!this.editable || widget.noMove || widget.locked) {\n return;\n }\n\n event.preventDefault();\n event.stopPropagation();\n\n const widgetElement = (event.currentTarget as HTMLElement).closest('.grid-widget') as HTMLElement | null;\n if (!widgetElement) {\n return;\n }\n\n const widgetRect = widgetElement.getBoundingClientRect();\n this.containerBounds = this.getBoundingClientRect();\n this.ensureMetrics();\n\n this.dragState = {\n widgetId: widget.id,\n pointerId: event.pointerId,\n offsetX: event.clientX - widgetRect.left,\n offsetY: event.clientY - widgetRect.top,\n start: { id: widget.id, x: widget.x, y: widget.y, w: widget.w, h: widget.h },\n previousPosition: { id: widget.id, x: widget.x, y: widget.y, w: widget.w, h: widget.h },\n currentPointer: { clientX: event.clientX, clientY: event.clientY },\n lastPlacement: null,\n };\n\n this.interactionActive = true;\n (event.currentTarget as HTMLElement).setPointerCapture(event.pointerId);\n document.addEventListener('pointermove', this.handleDragMove);\n document.addEventListener('pointerup', this.handleDragEnd);\n\n this.placeholderPosition = { id: widget.id, x: widget.x, y: widget.y, w: widget.w, h: widget.h };\n }\n\n private handleDragMove = (event: PointerEvent): void => {\n if (!this.dragState) return;\n const metrics = this.ensureMetrics();\n const activeWidgets = this.widgets;\n const widget = activeWidgets.find(item => item.id === this.dragState!.widgetId);\n if (!widget) return;\n\n event.preventDefault();\n\n const previousPosition = this.dragState.previousPosition;\n\n const coords = computeGridCoordinates({\n pointer: { clientX: event.clientX, clientY: event.clientY },\n containerRect: this.containerBounds ?? this.getBoundingClientRect(),\n metrics,\n columns: this.columns,\n widget,\n rtl: this.rtl,\n dragOffsetX: this.dragState.offsetX,\n dragOffsetY: this.dragState.offsetY,\n });\n\n const placement = resolveWidgetPlacement(\n activeWidgets,\n widget.id,\n { x: coords.x, y: coords.y },\n this.columns,\n previousPosition,\n );\n if (placement) {\n const updatedWidget = placement.widgets.find(item => item.id === widget.id);\n this.dragState = {\n ...this.dragState,\n currentPointer: { clientX: event.clientX, clientY: event.clientY },\n lastPlacement: placement,\n previousPosition: updatedWidget\n ? { id: updatedWidget.id, x: updatedWidget.x, y: updatedWidget.y, w: updatedWidget.w, h: updatedWidget.h }\n : { id: widget.id, x: coords.x, y: coords.y, w: widget.w, h: widget.h },\n };\n this.previewWidgets = placement.widgets;\n const previewWidget = placement.widgets.find(item => item.id === widget.id);\n if (previewWidget) {\n this.placeholderPosition = {\n id: previewWidget.id,\n x: previewWidget.x,\n y: previewWidget.y,\n w: previewWidget.w,\n h: previewWidget.h,\n };\n } else {\n this.placeholderPosition = { id: widget.id, x: coords.x, y: coords.y, w: widget.w, h: widget.h };\n }\n } else {\n this.previewWidgets = null;\n this.placeholderPosition = null;\n }\n\n this.requestUpdate();\n };\n\n private handleDragEnd = (event: PointerEvent): void => {\n const dragState = this.dragState;\n if (!dragState || event.pointerId !== dragState.pointerId) {\n return;\n }\n\n const layoutSource = this.widgets;\n this.previewWidgets = null;\n\n // Always validate the final position, don't rely on lastPlacement from drag\n const target = this.placeholderPosition ?? dragState.start;\n const placement = resolveWidgetPlacement(\n layoutSource,\n dragState.widgetId,\n { x: target.x, y: target.y },\n this.columns,\n dragState.previousPosition,\n );\n\n if (placement) {\n // Verify that the placement doesn't result in overlapping widgets\n const finalWidget = placement.widgets.find(w => w.id === dragState.widgetId);\n if (finalWidget) {\n const hasOverlap = placement.widgets.some(w => {\n if (w.id === dragState.widgetId) return false;\n return (\n finalWidget.x < w.x + w.w &&\n finalWidget.x + finalWidget.w > w.x &&\n finalWidget.y < w.y + w.h &&\n finalWidget.y + finalWidget.h > w.y\n );\n });\n\n if (!hasOverlap) {\n this.commitPlacement(placement, dragState.widgetId, 'widget-move');\n } else {\n // Return to start position if overlap detected\n this.widgets = this.widgets.map(widget =>\n widget.id === dragState.widgetId ? { ...widget, x: dragState.start.x, y: dragState.start.y } : widget,\n );\n }\n }\n } else {\n // Return to start position if no valid placement\n this.widgets = this.widgets.map(widget =>\n widget.id === dragState.widgetId ? { ...widget, x: dragState.start.x, y: dragState.start.y } : widget,\n );\n }\n\n this.placeholderPosition = null;\n this.dragState = null;\n this.interactionActive = false;\n this.releasePointerEvents();\n };\n\n private startResize(event: PointerEvent, widget: DashboardWidget, handler: 'e' | 's' | 'se'): void {\n if (!this.editable || widget.noResize || widget.locked) {\n return;\n }\n\n event.preventDefault();\n event.stopPropagation();\n\n this.ensureMetrics();\n\n this.resizeState = {\n widgetId: widget.id,\n pointerId: event.pointerId,\n handler,\n startPointer: { clientX: event.clientX, clientY: event.clientY },\n start: { id: widget.id, x: widget.x, y: widget.y, w: widget.w, h: widget.h },\n startWidth: widget.w,\n startHeight: widget.h,\n lastPlacement: null,\n };\n\n this.interactionActive = true;\n (event.currentTarget as HTMLElement).setPointerCapture(event.pointerId);\n document.addEventListener('pointermove', this.handleResizeMove);\n document.addEventListener('pointerup', this.handleResizeEnd);\n\n this.placeholderPosition = { id: widget.id, x: widget.x, y: widget.y, w: widget.w, h: widget.h };\n }\n\n private handleResizeMove = (event: PointerEvent): void => {\n if (!this.resizeState) return;\n const metrics = this.ensureMetrics();\n const activeWidgets = this.widgets;\n const widget = activeWidgets.find(item => item.id === this.resizeState!.widgetId);\n if (!widget) return;\n\n event.preventDefault();\n\n const nextSize = computeResizeDimensions({\n pointer: { clientX: event.clientX, clientY: event.clientY },\n containerRect: this.containerBounds ?? this.getBoundingClientRect(),\n metrics,\n startWidth: this.resizeState.startWidth,\n startHeight: this.resizeState.startHeight,\n startPointer: this.resizeState.startPointer,\n handler: this.resizeState.handler,\n widget,\n columns: this.columns,\n });\n\n const placement = resolveWidgetPlacement(\n activeWidgets,\n widget.id,\n { x: widget.x, y: widget.y, w: nextSize.width, h: nextSize.height },\n this.columns,\n this.resizeState.start,\n );\n\n if (placement) {\n this.resizeState = { ...this.resizeState, lastPlacement: placement };\n this.previewWidgets = placement.widgets;\n const previewWidget = placement.widgets.find(item => item.id === widget.id);\n if (previewWidget) {\n this.placeholderPosition = {\n id: previewWidget.id,\n x: previewWidget.x,\n y: previewWidget.y,\n w: previewWidget.w,\n h: previewWidget.h,\n };\n } else {\n this.placeholderPosition = {\n id: widget.id,\n x: widget.x,\n y: widget.y,\n w: nextSize.width,\n h: nextSize.height,\n };\n }\n } else {\n this.previewWidgets = null;\n this.placeholderPosition = null;\n }\n\n this.requestUpdate();\n };\n\n private handleResizeEnd = (event: PointerEvent): void => {\n const resizeState = this.resizeState;\n if (!resizeState || event.pointerId !== resizeState.pointerId) {\n return;\n }\n\n const layoutSource = this.widgets;\n this.previewWidgets = null;\n const placement =\n resizeState.lastPlacement ??\n resolveWidgetPlacement(\n layoutSource,\n resizeState.widgetId,\n {\n x: this.placeholderPosition?.x ?? resizeState.start.x,\n y: this.placeholderPosition?.y ?? resizeState.start.y,\n w: this.placeholderPosition?.w ?? resizeState.start.w,\n h: this.placeholderPosition?.h ?? resizeState.start.h,\n },\n this.columns,\n resizeState.start,\n );\n\n if (placement) {\n this.commitPlacement(placement, resizeState.widgetId, 'widget-resize');\n } else {\n this.widgets = this.widgets.map(widget =>\n widget.id === resizeState.widgetId ? { ...widget, w: resizeState.start.w, h: resizeState.start.h } : widget,\n );\n }\n\n this.placeholderPosition = null;\n this.resizeState = null;\n this.interactionActive = false;\n this.releasePointerEvents();\n };\n\n private handleHeaderKeydown(event: KeyboardEvent, widget: DashboardWidget): void {\n if (!this.editable || widget.noMove || widget.locked) {\n return;\n }\n\n const key = event.key;\n const isResize = event.shiftKey;\n let placement: PlacementResult | null = null;\n\n if (isResize && ['ArrowLeft', 'ArrowRight', 'ArrowUp', 'ArrowDown'].includes(key)) {\n event.preventDefault();\n const delta = key === 'ArrowRight' || key === 'ArrowDown' ? 1 : -1;\n\n if (key === 'ArrowLeft' || key === 'ArrowRight') {\n const maxWidth = widget.maxW ?? this.columns - widget.x;\n const nextWidth = Math.max(widget.minW ?? 1, Math.min(maxWidth, widget.w + delta));\n placement = resolveWidgetPlacement(\n this.widgets,\n widget.id,\n { x: widget.x, y: widget.y, w: nextWidth, h: widget.h },\n this.columns,\n );\n } else {\n const maxHeight = widget.maxH ?? Number.POSITIVE_INFINITY;\n const nextHeight = Math.max(widget.minH ?? 1, Math.min(maxHeight, widget.h + delta));\n placement = resolveWidgetPlacement(\n this.widgets,\n widget.id,\n { x: widget.x, y: widget.y, w: widget.w, h: nextHeight },\n this.columns,\n );\n }\n\n if (placement) {\n this.commitPlacement(placement, widget.id, 'widget-resize');\n }\n return;\n }\n\n const moveMap: Record = {\n ArrowLeft: { dx: -1, dy: 0 },\n ArrowRight: { dx: 1, dy: 0 },\n ArrowUp: { dx: 0, dy: -1 },\n ArrowDown: { dx: 0, dy: 1 },\n };\n\n const delta = moveMap[key];\n if (!delta) {\n return;\n }\n\n event.preventDefault();\n const targetX = Math.max(0, Math.min(this.columns - widget.w, widget.x + delta.dx));\n const targetY = Math.max(0, widget.y + delta.dy);\n\n placement = resolveWidgetPlacement(this.widgets, widget.id, { x: targetX, y: targetY }, this.columns);\n if (placement) {\n this.commitPlacement(placement, widget.id, 'widget-move');\n }\n }\n\n private handleWidgetContextMenu(event: MouseEvent, widget: DashboardWidget): void {\n event.preventDefault();\n event.stopPropagation();\n openWidgetContextMenu({ widget, host: this, event });\n }\n\n private commitPlacement(result: PlacementResult, widgetId: string, type: 'widget-move' | 'widget-resize'): void {\n this.previewWidgets = null;\n this.widgets = result.widgets;\n const subject = this.widgets.find(item => item.id === widgetId);\n if (subject) {\n this.dispatchEvent(\n new CustomEvent(type, {\n detail: {\n widget: subject,\n displaced: result.movedWidgets.filter(id => id !== widgetId),\n swappedWith: result.swappedWith,\n },\n bubbles: true,\n composed: true,\n }),\n );\n }\n }\n\n public removeWidget(widgetId: string): void {\n const target = this.widgets.find(widget => widget.id === widgetId);\n if (!target) return;\n this.widgets = this.widgets.filter(widget => widget.id !== widgetId);\n this.dispatchEvent(\n new CustomEvent('widget-remove', {\n detail: { widget: target },\n bubbles: true,\n composed: true,\n }),\n );\n }\n\n public updateWidget(widgetId: string, updates: Partial): void {\n this.widgets = this.widgets.map(widget => (widget.id === widgetId ? { ...widget, ...updates } : widget));\n }\n\n public getLayout(): DashboardLayoutItem[] {\n return this.widgets.map(({ id, x, y, w, h }) => ({ id, x, y, w, h }));\n }\n\n public setLayout(layout: DashboardLayoutItem[]): void {\n this.widgets = applyLayout(this.widgets, layout);\n }\n\n public lockGrid(): void {\n this.editable = false;\n }\n\n public unlockGrid(): void {\n this.editable = true;\n }\n\n public addWidget(widget: DashboardWidget, autoPosition = false): void {\n const nextWidget = { ...widget };\n if (autoPosition || nextWidget.autoPosition) {\n const position = findAvailablePosition(this.widgets, nextWidget.w, nextWidget.h, this.columns);\n nextWidget.x = position.x;\n nextWidget.y = position.y;\n }\n\n this.widgets = [...this.widgets, nextWidget];\n }\n\n public compact(direction: LayoutDirection = 'vertical'): void {\n const nextWidgets = this.widgets.map(widget => ({ ...widget }));\n compactLayout(nextWidgets, direction);\n this.widgets = nextWidgets;\n }\n\n public applyBreakpointLayout(breakpoint: string): void {\n this.activeBreakpoint = breakpoint;\n const layout = this.layouts?.[breakpoint];\n if (layout) {\n this.setLayout(layout);\n }\n }\n\n public notifyLayoutChange(): void {\n this.dispatchEvent(\n new CustomEvent('layout-change', {\n detail: { layout: this.getLayout() },\n bubbles: true,\n composed: true,\n }),\n );\n }\n\n private ensureMetrics(): GridCellMetrics {\n if (!this.metrics) {\n this.computeMetrics();\n }\n return this.metrics!;\n }\n\n private computeMetrics(): void {\n if (!this.isConnected) return;\n const bounds = this.getBoundingClientRect();\n this.containerBounds = bounds;\n const margins = resolveMargins(this.margin);\n this.resolvedMargins = margins;\n this.metrics = calculateCellMetrics(bounds.width, this.columns, margins, this.cellHeight, this.cellHeightUnit);\n }\n\n private observeResize(): void {\n if (this.resizeObserver) return;\n this.resizeObserver = new ResizeObserver(() => {\n this.computeMetrics();\n });\n this.resizeObserver.observe(this);\n }\n\n private disconnectResizeObserver(): void {\n this.resizeObserver?.disconnect();\n this.resizeObserver = undefined;\n }\n\n private releasePointerEvents(): void {\n document.removeEventListener('pointermove', this.handleDragMove);\n document.removeEventListener('pointerup', this.handleDragEnd);\n document.removeEventListener('pointermove', this.handleResizeMove);\n document.removeEventListener('pointerup', this.handleResizeEnd);\n }\n\n private pxToPercent(value: number, container: number): number {\n if (!container) return 0;\n return Number(((value / container) * 100).toFixed(4));\n }\n\n private computeWidgetRect(\n widget: Pick,\n metrics: GridCellMetrics,\n margins: DashboardResolvedMargins,\n ) {\n const cellWidth = metrics.cellWidthPx;\n const cellHeight = metrics.cellHeightPx;\n const left = widget.x * (cellWidth + margins.horizontal) + margins.horizontal;\n const top = widget.y * (cellHeight + margins.vertical) + margins.vertical;\n const width = widget.w * cellWidth + Math.max(0, widget.w - 1) * margins.horizontal;\n const height = widget.h * cellHeight + Math.max(0, widget.h - 1) * margins.vertical;\n\n return { left, top, width, height };\n }\n}\n", "export * from './dees-dashboardgrid.js';\n", "import { html } from '@design.estate/dees-element';\n\nexport function demoFunc() {\n return html`\n This is a H1 heading\n This is a H2 heading\n This is a H3 heading\n This is a H4 heading\n This is a H5 heading\n This is a H6 heading\n This is an hr heading\n This is an hr small heading\n `;\n}", "import {\n customElement,\n html,\n css,\n property,\n cssManager,\n type TemplateResult,\n DeesElement,\n type CSSResult,\n} from '@design.estate/dees-element';\n\nimport { demoFunc } from './dees-heading.demo.js';\nimport { cssCalSansFontFamily } from '../../00fonts.js';\nimport { themeDefaultStyles } from '../../00theme.js';\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'dees-heading': DeesHeading;\n }\n}\n\n@customElement('dees-heading')\nexport class DeesHeading extends DeesElement {\n // demo\n public static demo = demoFunc;\n public static demoGroups = ['Layout'];\n\n // properties\n /**\n * Heading level: 1-6 for h1-h6, or 'hr' for horizontal rule style\n */\n @property({ type: String, reflect: true })\n accessor level: '1' | '2' | '3' | '4' | '5' | '6' | 'hr' | 'hr-small' = '1';\n\n // STATIC STYLES\n public static styles: CSSResult[] = [\n themeDefaultStyles,\n cssManager.defaultStyles,\n css`\n /* TODO: Migrate hardcoded values to --dees-* CSS variables */\n /* Heading styles */\n h1, h2, h3, h4, h5, h6 {\n margin: 16px 0 8px;\n font-weight: 600;\n color: ${cssManager.bdTheme('#000', '#fff')};\n }\n h1 { font-size: 32px; font-family: ${cssCalSansFontFamily}; letter-spacing: 0.025em;}\n h2 { font-size: 28px; }\n h3 { font-size: 24px; }\n h4 { font-size: 20px; }\n h5 { font-size: 16px; }\n h6 { font-size: 14px; }\n /* Horizontal rule style heading */\n .heading-hr {\n display: flex;\n align-items: center;\n text-align: center;\n margin: 16px 0;\n color: ${cssManager.bdTheme('#000', '#fff')};\n }\n /* Fade lines toward and away from text for hr style */\n .heading-hr::before {\n content: '';\n flex: 1;\n height: 1px;\n /* fade in toward center */\n background: ${cssManager.bdTheme(\n 'linear-gradient(to right, transparent, #ccc)',\n 'linear-gradient(to right, transparent, #333)'\n )};\n margin: 0 8px;\n }\n .heading-hr::after {\n content: '';\n flex: 1;\n height: 1px;\n /* fade out away from center */\n background: ${cssManager.bdTheme(\n 'linear-gradient(to right, #ccc, transparent)',\n 'linear-gradient(to right, #333, transparent)'\n )};\n margin: 0 8px;\n }\n /* Small hr variant with reduced margins */\n .heading-hr.heading-hr-small {\n margin: 8px 0;\n font-size: 12px;\n }\n .heading-hr.heading-hr-small::before,\n .heading-hr.heading-hr-small::after {\n margin: 0 8px;\n }\n `,\n ];\n\n\n // INSTANCE\n public render(): TemplateResult {\n switch (this.level) {\n case '1':\n return html`

      `;\n case '2':\n return html`

      `;\n case '3':\n return html`

      `;\n case '4':\n return html`

      `;\n case '5':\n return html`
      `;\n case '6':\n return html`
      `;\n case 'hr':\n return html`
      `;\n case 'hr-small':\n return html`
      `;\n default:\n return html`

      `;\n }\n }\n}", "export * from './dees-heading.js';\n", "export * from './dees-label.js';\n", "import { html } from '@design.estate/dees-element';\n\n/**\n * Demo for dees-pagination component\n */\nexport const demoFunc = () => html`\n
      \n \n
      \n 5 pages, starting at 1:\n console.log('Page changed to', e.detail.page)}\n >\n
      \n\n \n
      \n 15 pages, starting at 8:\n console.log('Page changed to', e.detail.page)}\n >\n
      \n
      \n`;", "import { customElement, html, DeesElement, property, css, cssManager, type TemplateResult } from '@design.estate/dees-element';\nimport { demoFunc } from './dees-pagination.demo.js';\nimport { themeDefaultStyles } from '../../00theme.js';\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'dees-pagination': DeesPagination;\n }\n}\n\n/**\n * A simple pagination component.\n * @fires page-change - Emitted when the page is changed. detail: { page: number }\n */\n@customElement('dees-pagination')\nexport class DeesPagination extends DeesElement {\n public static demo = demoFunc;\n public static demoGroups = ['Layout'];\n /** Current page (1-based) */\n @property({ type: Number, reflect: true })\n accessor page = 1;\n\n /** Total number of pages */\n @property({ type: Number, reflect: true })\n accessor total = 1;\n\n public static styles = [\n themeDefaultStyles,\n cssManager.defaultStyles,\n css`\n /* TODO: Migrate hardcoded values to --dees-* CSS variables */\n :host {\n display: inline-flex;\n align-items: center;\n }\n button {\n background: none;\n border: none;\n margin: 0 2px;\n padding: 6px 10px;\n font-size: 14px;\n cursor: pointer;\n color: ${cssManager.bdTheme('#333', '#ccc')};\n border-radius: 3px;\n transition: background 0.2s;\n }\n button:hover:not(:disabled) {\n background: ${cssManager.bdTheme('#eee', '#444')};\n }\n button:disabled {\n cursor: default;\n color: ${cssManager.bdTheme('#aaa', '#666')};\n }\n button.current {\n background: #0050b9;\n color: #fff;\n cursor: default;\n }\n span.ellipsis {\n margin: 0 4px;\n color: ${cssManager.bdTheme('#333', '#ccc')};\n }\n `,\n ];\n\n private get pages(): (number | string)[] {\n const pages: (number | string)[] = [];\n const total = this.total;\n const current = this.page;\n if (total <= 7) {\n for (let i = 1; i <= total; i++) {\n pages.push(i);\n }\n } else {\n pages.push(1);\n if (current > 4) {\n pages.push('...');\n }\n const start = Math.max(2, current - 2);\n const end = Math.min(total - 1, current + 2);\n for (let i = start; i <= end; i++) {\n pages.push(i);\n }\n if (current < total - 3) {\n pages.push('...');\n }\n pages.push(total);\n }\n return pages;\n }\n\n public render(): TemplateResult {\n return html`\n this.changePage(this.page - 1)}\n ?disabled=${this.page <= 1}\n aria-label=\"Previous page\"\n >\n \u2039\n \n ${this.pages.map((p) =>\n p === '...'\n ? html`\u2026`\n : html`\n this.changePage(p as number)}\n ?disabled=${p === this.page}\n aria-label=\"Page ${p}\"\n >\n ${p}\n \n `\n )}\n this.changePage(this.page + 1)}\n ?disabled=${this.page >= this.total}\n aria-label=\"Next page\"\n >\n \u203A\n \n `;\n }\n\n private changePage(newPage: number) {\n if (newPage < 1 || newPage > this.total || newPage === this.page) {\n return;\n }\n this.page = newPage;\n this.dispatchEvent(\n new CustomEvent('page-change', {\n detail: { page: this.page },\n bubbles: true,\n })\n );\n }\n}", "export * from './dees-pagination.js';\n", "export * from './dees-panel.js';\n", "import { html } from '@design.estate/dees-element';\n\nexport const stepperDemo = () => html`\n \n \n \n Continue\n \n `,\n validationFunc: async (stepperArg, elementArg) => {\n const deesForm = elementArg.querySelector('dees-form');\n deesForm.addEventListener('formData', () => stepperArg.goNext(), { once: true });\n },\n },\n {\n title: 'Profile Details',\n content: html`\n \n \n \n Continue\n \n `,\n validationFunc: async (stepperArg, elementArg) => {\n const deesForm = elementArg.querySelector('dees-form');\n deesForm.addEventListener('formData', () => stepperArg.goNext(), { once: true });\n },\n },\n {\n title: 'Contact Information',\n content: html`\n \n \n \n Continue\n \n `,\n validationFunc: async (stepperArg, elementArg) => {\n const deesForm = elementArg.querySelector('dees-form');\n deesForm.addEventListener('formData', () => stepperArg.goNext(), { once: true });\n },\n },\n {\n title: 'Team Size',\n content: html`\n \n \n Continue\n \n `,\n validationFunc: async (stepperArg, elementArg) => {\n const deesForm = elementArg.querySelector('dees-form');\n deesForm.addEventListener('formData', () => stepperArg.goNext(), { once: true });\n },\n },\n {\n title: 'Goals',\n content: html`\n \n \n Continue\n \n `,\n validationFunc: async (stepperArg, elementArg) => {\n const deesForm = elementArg.querySelector('dees-form');\n deesForm.addEventListener('formData', () => stepperArg.goNext(), { once: true });\n },\n },\n {\n title: 'Brand Preferences',\n content: html`\n \n \n \n Continue\n \n `,\n validationFunc: async (stepperArg, elementArg) => {\n const deesForm = elementArg.querySelector('dees-form');\n deesForm.addEventListener('formData', () => stepperArg.goNext(), { once: true });\n },\n },\n {\n title: 'Integrations',\n content: html`\n \n \n Continue\n \n `,\n validationFunc: async (stepperArg, elementArg) => {\n const deesForm = elementArg.querySelector('dees-form');\n deesForm.addEventListener('formData', () => stepperArg.goNext(), { once: true });\n },\n },\n {\n title: 'Review & Launch',\n content: html`\n \n

      Almost there! Review your selections and launch whenever you're ready.

      \n
      \n `,\n },\n ] as const}\n >\n`;\n", "import * as plugins from '../../00plugins.js';\nimport * as colors from '../../00colors.js';\n\nimport {\n DeesElement,\n customElement,\n html,\n css,\n unsafeCSS,\n type CSSResult,\n cssManager,\n property,\n type TemplateResult,\n} from '@design.estate/dees-element';\n\nimport * as domtools from '@design.estate/dees-domtools';\nimport { stepperDemo } from './dees-stepper.demo.js';\nimport { themeDefaultStyles } from '../../00theme.js';\n\nexport interface IStep {\n title: string;\n content: TemplateResult;\n validationFunc?: (stepper: DeesStepper, htmlElement: HTMLElement, signal?: AbortSignal) => Promise;\n onReturnToStepFunc?: (stepper: DeesStepper, htmlElement: HTMLElement) => Promise;\n validationFuncCalled?: boolean;\n abortController?: AbortController;\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'dees-stepper': DeesStepper;\n }\n}\n\n@customElement('dees-stepper')\nexport class DeesStepper extends DeesElement {\n public static demo = stepperDemo;\n public static demoGroups = ['Layout', 'Form'];\n\n @property({\n type: Array,\n })\n accessor steps: IStep[] = [];\n\n @property({\n type: Object,\n })\n accessor selectedStep: IStep;\n\n constructor() {\n super();\n }\n\n public static styles = [\n themeDefaultStyles,\n cssManager.defaultStyles,\n css`\n /* TODO: Migrate hardcoded values to --dees-* CSS variables */\n :host {\n position: absolute;\n width: 100%;\n height: 100%;\n }\n .stepperContainer {\n position: absolute;\n width: 100%;\n height: 100%;\n overflow: hidden;\n }\n\n .step {\n position: relative;\n pointer-events: none;\n overflow: hidden;\n transition: transform 0.7s cubic-bezier(0.87, 0, 0.13, 1), box-shadow 0.7s cubic-bezier(0.87, 0, 0.13, 1), filter 0.7s cubic-bezier(0.87, 0, 0.13, 1), border 0.7s cubic-bezier(0.87, 0, 0.13, 1);\n max-width: 500px;\n min-height: 300px;\n border-radius: 12px;\n background: ${cssManager.bdTheme('#ffffff', '#0f0f11')};\n border: 1px solid ${cssManager.bdTheme('#e2e8f0', '#272729')};\n color: ${cssManager.bdTheme('#0f172a', '#f5f5f5')};\n margin: auto;\n margin-bottom: 20px;\n filter: opacity(0.55) saturate(0.85);\n box-shadow: 0 8px 32px rgba(0, 0, 0, 0.4);\n user-select: none;\n }\n\n .step.selected {\n pointer-events: all;\n filter: opacity(1) saturate(1);\n user-select: auto;\n }\n\n .step.hiddenStep {\n filter: opacity(0);\n }\n\n .step.entrance {\n transition: transform 0.35s ease, box-shadow 0.35s ease, filter 0.35s ease, border 0.35s ease;\n }\n\n .step.entrance.hiddenStep {\n transform: translateY(16px);\n }\n\n .step:last-child {\n margin-bottom: 100vh;\n }\n\n .step .stepCounter {\n color: ${cssManager.bdTheme('#64748b', '#a1a1aa')};\n position: absolute;\n top: 12px;\n right: 12px;\n padding: 6px 14px;\n font-size: 12px;\n border-radius: 999px;\n background: ${cssManager.bdTheme('rgba(226, 232, 240, 0.5)', 'rgba(63, 63, 70, 0.45)')};\n border: 1px solid ${cssManager.bdTheme('rgba(226, 232, 240, 0.7)', 'rgba(63, 63, 70, 0.6)')};\n }\n\n .step .goBack {\n position: absolute;\n top: 12px;\n left: 12px;\n display: inline-flex;\n align-items: center;\n gap: 6px;\n padding: 6px 12px;\n font-size: 12px;\n font-weight: 500;\n border-radius: 999px;\n border: 1px solid ${cssManager.bdTheme('rgba(226, 232, 240, 0.9)', 'rgba(63, 63, 70, 0.85)')};\n background: ${cssManager.bdTheme('rgba(255, 255, 255, 0.9)', 'rgba(39, 39, 42, 0.85)')};\n color: ${cssManager.bdTheme('#475569', '#d4d4d8')};\n cursor: pointer;\n transition: border 0.2s ease, color 0.2s ease, background 0.2s ease, transform 0.2s ease;\n }\n\n .step .goBack:hover {\n color: ${cssManager.bdTheme('#0f172a', '#fafafa')};\n border-color: ${cssManager.bdTheme(colors.dark.blue, colors.dark.blue)};\n background: ${cssManager.bdTheme('rgba(226, 232, 240, 0.95)', 'rgba(63, 63, 70, 0.7)')};\n transform: translateX(-2px);\n }\n\n .step .goBack:active {\n color: ${cssManager.bdTheme('#0f172a', '#fafafa')};\n border-color: ${cssManager.bdTheme(colors.dark.blueActive, colors.dark.blueActive)};\n background: ${cssManager.bdTheme('rgba(226, 232, 240, 0.85)', 'rgba(63, 63, 70, 0.6)')};\n }\n\n .step .goBack span {\n transition: transform 0.2s ease;\n display: inline-block;\n }\n\n .step .goBack:hover span {\n transform: translateX(-2px);\n }\n\n .step .title {\n text-align: center;\n padding-top: 64px;\n font-family: 'Geist Sans', sans-serif;\n font-size: 24px;\n font-weight: 600;\n letter-spacing: -0.01em;\n color: inherit;\n }\n\n .step .content {\n padding: 32px;\n }\n `,\n ];\n\n public render() {\n return html`\n
      \n ${this.steps.map(\n (stepArg) =>\n html` this.getIndexOfStep(this.selectedStep)\n ? 'hiddenStep'\n : ''} ${this.getIndexOfStep(stepArg) === 0 ? 'entrance' : ''}\"\n >\n ${this.getIndexOfStep(stepArg) > 0\n ? html`
      <- go to previous step
      `\n : ``}\n
      \n Step ${this.steps.findIndex((elementArg) => elementArg === stepArg) + 1} of\n ${this.steps.length}\n
      \n
      ${stepArg.title}
      \n
      ${stepArg.content}
      \n
      `\n )}\n \n `;\n }\n\n public getIndexOfStep = (stepArg: IStep): number => {\n return this.steps.findIndex((stepArg2) => stepArg === stepArg2);\n };\n\n public async firstUpdated() {\n await this.domtoolsPromise;\n await this.domtools.convenience.smartdelay.delayFor(0);\n this.selectedStep = this.steps[0];\n this.setScrollStatus();\n // Remove entrance class after initial animation completes\n await this.domtools.convenience.smartdelay.delayFor(350);\n this.shadowRoot.querySelector('.step.entrance')?.classList.remove('entrance');\n }\n\n public async updated() {\n this.setScrollStatus();\n }\n\n public scroller: typeof domtools.plugins.SweetScroll.prototype;\n\n public async setScrollStatus() {\n const stepperContainer: HTMLElement = this.shadowRoot.querySelector('.stepperContainer');\n const firstStepElement: HTMLElement = this.shadowRoot.querySelector('.step');\n const selectedStepElement: HTMLElement = this.shadowRoot.querySelector('.selected');\n if (!selectedStepElement) {\n return;\n }\n if (!stepperContainer.style.paddingTop) {\n stepperContainer.style.paddingTop = `${\n stepperContainer.offsetHeight / 2 - selectedStepElement.offsetHeight / 2\n }px`;\n }\n console.log('Setting scroll status');\n console.log(selectedStepElement);\n const scrollPosition =\n selectedStepElement.offsetTop -\n stepperContainer.offsetHeight / 2 +\n selectedStepElement.offsetHeight / 2;\n console.log(scrollPosition);\n const domtoolsInstance = await domtools.DomTools.setupDomTools();\n if (!this.scroller) {\n this.scroller = new domtools.plugins.SweetScroll(\n {\n vertical: true,\n horizontal: false,\n easing: 'easeInOutExpo',\n duration: 700,\n },\n stepperContainer\n );\n }\n if (!this.selectedStep.validationFuncCalled && this.selectedStep.validationFunc) {\n this.selectedStep.abortController = new AbortController();\n this.selectedStep.validationFuncCalled = true;\n await this.selectedStep.validationFunc(this, selectedStepElement, this.selectedStep.abortController.signal);\n }\n this.scroller.to(scrollPosition);\n }\n\n public async goBack() {\n const currentIndex = this.steps.findIndex((stepArg) => stepArg === this.selectedStep);\n if (currentIndex <= 0) {\n return;\n }\n // Abort any active listeners on current step\n if (this.selectedStep.abortController) {\n this.selectedStep.abortController.abort();\n }\n const currentStep = this.steps[currentIndex];\n currentStep.validationFuncCalled = false;\n const previousStep = this.steps[currentIndex - 1];\n previousStep.validationFuncCalled = false;\n this.selectedStep = previousStep;\n await this.domtoolsPromise;\n await this.domtools.convenience.smartdelay.delayFor(100);\n this.selectedStep.onReturnToStepFunc?.(this, this.shadowRoot.querySelector('.selected'));\n }\n\n public goNext() {\n const currentIndex = this.steps.findIndex((stepArg) => stepArg === this.selectedStep);\n if (currentIndex < 0 || currentIndex >= this.steps.length - 1) {\n return;\n }\n // Abort any active listeners on current step\n if (this.selectedStep.abortController) {\n this.selectedStep.abortController.abort();\n }\n const currentStep = this.steps[currentIndex];\n currentStep.validationFuncCalled = false;\n const nextStep = this.steps[currentIndex + 1];\n nextStep.validationFuncCalled = false;\n this.selectedStep = nextStep;\n }\n}\n", "export * from './dees-stepper.js';\n", "// Layout Components\nexport * from './dees-chips/index.js';\nexport * from './dees-dashboardgrid/index.js';\nexport * from './dees-heading/index.js';\nexport * from './dees-label/index.js';\nexport * from './dees-pagination/index.js';\nexport * from './dees-panel/index.js';\nexport * from './dees-stepper/index.js';\n", "import { html, cssManager } from '@design.estate/dees-element';\n\nexport const demo = () => html`\n \n\n
      \n
      \n
      JPEG Image with Toolbar
      \n
      A landscape photo with zoom, pan, fit, and download controls.
      \n \n
      \n\n
      \n
      PNG with Transparency
      \n
      Transparent PNG displayed on a checkerboard background.
      \n \n
      \n\n
      \n
      SVG Image
      \n
      Scalable vector graphic.
      \n \n
      \n\n
      \n
      No Toolbar Variant
      \n
      Image viewer with the toolbar hidden.
      \n \n
      \n
      \n`;\n", "import {\n DeesElement,\n html,\n customElement,\n type TemplateResult,\n property,\n state,\n cssManager,\n} from '@design.estate/dees-element';\nimport '../../00group-utility/dees-icon/dees-icon.js';\nimport { demo } from './demo.js';\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'dees-image-viewer': DeesImageViewer;\n }\n}\n\n@customElement('dees-image-viewer')\nexport class DeesImageViewer extends DeesElement {\n public static demo = demo;\n public static demoGroups = ['Media'];\n\n @property()\n accessor src: string = '';\n\n @property()\n accessor alt: string = '';\n\n @property()\n accessor fit: 'contain' | 'cover' | 'actual' = 'contain';\n\n @property({ type: Boolean })\n accessor showToolbar: boolean = true;\n\n @state()\n accessor zoom: number = 1;\n\n @state()\n accessor panX: number = 0;\n\n @state()\n accessor panY: number = 0;\n\n @state()\n accessor isDragging: boolean = false;\n\n @state()\n accessor loading: boolean = true;\n\n @state()\n accessor error: string = '';\n\n @state()\n accessor imageNaturalWidth: number = 0;\n\n @state()\n accessor imageNaturalHeight: number = 0;\n\n private dragStartX = 0;\n private dragStartY = 0;\n private dragStartPanX = 0;\n private dragStartPanY = 0;\n\n public render(): TemplateResult {\n return html`\n \n\n
      \n ${this.showToolbar ? html`\n
      \n
      \n \n \n \n
      \n
      \n \n \n
      \n
      \n \n
      \n ${this.imageNaturalWidth > 0 ? html`\n
      \n ${this.imageNaturalWidth} x ${this.imageNaturalHeight}\n
      \n ` : ''}\n
      \n ` : ''}\n\n \n
      \n
      \n ${this.src ? html`\n \n ` : ''}\n
      \n ${this.loading && this.src ? html`\n
      \n
      \n
      \n ` : ''}\n ${this.error ? html`\n
      \n \n ${this.error}\n
      \n ` : ''}\n
      \n \n `;\n }\n\n public zoomIn(): void {\n this.zoom = Math.min(10, this.zoom * 1.25);\n }\n\n public zoomOut(): void {\n this.zoom = Math.max(0.1, this.zoom / 1.25);\n if (this.zoom <= 1) {\n this.panX = 0;\n this.panY = 0;\n }\n }\n\n public resetZoom(): void {\n this.zoom = 1;\n this.panX = 0;\n this.panY = 0;\n }\n\n public fitToScreen(): void {\n this.zoom = 1;\n this.panX = 0;\n this.panY = 0;\n this.fit = 'contain';\n }\n\n public actualSize(): void {\n this.zoom = 1;\n this.panX = 0;\n this.panY = 0;\n this.fit = 'actual';\n }\n\n public download(): void {\n if (!this.src) return;\n const link = document.createElement('a');\n link.href = this.src;\n link.download = this.src.split('/').pop() || 'image';\n link.click();\n }\n\n private handleImageLoad(e: Event): void {\n const img = e.target as HTMLImageElement;\n this.loading = false;\n this.error = '';\n this.imageNaturalWidth = img.naturalWidth;\n this.imageNaturalHeight = img.naturalHeight;\n }\n\n private handleImageError(): void {\n this.loading = false;\n this.error = 'Failed to load image';\n }\n\n private handleWheel(e: WheelEvent): void {\n e.preventDefault();\n const delta = e.deltaY > 0 ? 0.9 : 1.1;\n const newZoom = Math.min(10, Math.max(0.1, this.zoom * delta));\n this.zoom = newZoom;\n if (this.zoom <= 1) {\n this.panX = 0;\n this.panY = 0;\n }\n }\n\n private handleMouseDown(e: MouseEvent): void {\n if (this.zoom <= 1) return;\n this.isDragging = true;\n this.dragStartX = e.clientX;\n this.dragStartY = e.clientY;\n this.dragStartPanX = this.panX;\n this.dragStartPanY = this.panY;\n }\n\n private handleMouseMove(e: MouseEvent): void {\n if (!this.isDragging) return;\n this.panX = this.dragStartPanX + (e.clientX - this.dragStartX);\n this.panY = this.dragStartPanY + (e.clientY - this.dragStartY);\n }\n\n private handleMouseUp(): void {\n this.isDragging = false;\n }\n\n private handleDoubleClick(): void {\n if (this.zoom === 1) {\n this.zoom = 2;\n } else {\n this.zoom = 1;\n this.panX = 0;\n this.panY = 0;\n }\n }\n\n public updated(changedProperties: Map): void {\n super.updated(changedProperties);\n if (changedProperties.has('src')) {\n this.loading = true;\n this.error = '';\n this.zoom = 1;\n this.panX = 0;\n this.panY = 0;\n this.imageNaturalWidth = 0;\n this.imageNaturalHeight = 0;\n }\n }\n}\n", "export * from './component.js';\n", "import { html, cssManager } from '@design.estate/dees-element';\n\nexport const demo = () => html`\n \n\n
      \n
      \n
      Audio with Waveform
      \n
      Audio player with waveform visualization and full transport controls.
      \n \n
      \n\n
      \n
      Audio without Waveform
      \n
      Simple audio player with a seekbar instead of a waveform.
      \n \n
      \n\n
      \n
      Minimal Audio Player
      \n
      No title or artist metadata \u2014 just the player.
      \n \n
      \n
      \n`;\n", "import {\n DeesElement,\n html,\n customElement,\n type TemplateResult,\n property,\n state,\n cssManager,\n} from '@design.estate/dees-element';\nimport '../../00group-utility/dees-icon/dees-icon.js';\nimport { demo } from './demo.js';\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'dees-audio-viewer': DeesAudioViewer;\n }\n}\n\n@customElement('dees-audio-viewer')\nexport class DeesAudioViewer extends DeesElement {\n public static demo = demo;\n public static demoGroups = ['Media'];\n\n @property()\n accessor src: string = '';\n\n @property()\n accessor title: string = '';\n\n @property()\n accessor artist: string = '';\n\n @property({ type: Boolean })\n accessor showWaveform: boolean = true;\n\n @property({ type: Boolean })\n accessor autoplay: boolean = false;\n\n @property({ type: Boolean })\n accessor loop: boolean = false;\n\n @state()\n accessor isPlaying: boolean = false;\n\n @state()\n accessor currentTime: number = 0;\n\n @state()\n accessor duration: number = 0;\n\n @state()\n accessor volume: number = 1;\n\n @state()\n accessor isMuted: boolean = false;\n\n @state()\n accessor loading: boolean = false;\n\n @state()\n accessor error: string = '';\n\n @state()\n accessor waveformData: number[] = [];\n\n @state()\n accessor waveformReady: boolean = false;\n\n private audioElement: HTMLAudioElement | null = null;\n private canvasElement: HTMLCanvasElement | null = null;\n private animFrameId: number = 0;\n private volumeBeforeMute: number = 1;\n\n public render(): TemplateResult {\n const titleText = this.title && this.artist\n ? `${this.title} \u2014 ${this.artist}`\n : this.title || this.artist || '';\n\n return html`\n \n\n
      \n
      \n
      \n \n \n ${this.formatTime(this.currentTime)} / ${this.formatTime(this.duration)}\n \n
      \n\n ${titleText ? html`\n ${titleText}\n ` : ''}\n\n
      \n \n \n \n\n
      \n \n \n
      \n
      \n
      \n\n
      \n ${this.error ? html`\n
      \n \n ${this.error}\n
      \n ` : this.loading ? html`\n
      \n
      \n
      \n ` : this.showWaveform ? html`\n
      \n \n
      \n ` : html`\n
      \n
      \n
      \n `}\n
      \n
      \n `;\n }\n\n public async connectedCallback(): Promise {\n await super.connectedCallback();\n if (this.src) {\n this.initAudio();\n }\n }\n\n public async disconnectedCallback(): Promise {\n await super.disconnectedCallback();\n this.cleanup();\n }\n\n public async updated(changedProperties: Map): Promise {\n super.updated(changedProperties);\n if (changedProperties.has('src') && this.src) {\n this.cleanup();\n this.initAudio();\n }\n if (changedProperties.has('waveformData') || changedProperties.has('currentTime')) {\n this.drawWaveform();\n }\n }\n\n public play(): void {\n this.audioElement?.play();\n }\n\n public pause(): void {\n this.audioElement?.pause();\n }\n\n public togglePlay(): void {\n if (this.isPlaying) {\n this.pause();\n } else {\n this.play();\n }\n }\n\n public seek(time: number): void {\n if (this.audioElement) {\n this.audioElement.currentTime = time;\n }\n }\n\n public setVolume(v: number): void {\n this.volume = Math.max(0, Math.min(1, v));\n if (this.audioElement) {\n this.audioElement.volume = this.volume;\n }\n if (this.volume > 0) {\n this.isMuted = false;\n }\n }\n\n public toggleMute(): void {\n if (this.isMuted) {\n this.isMuted = false;\n this.volume = this.volumeBeforeMute || 0.5;\n if (this.audioElement) {\n this.audioElement.volume = this.volume;\n }\n } else {\n this.volumeBeforeMute = this.volume;\n this.isMuted = true;\n if (this.audioElement) {\n this.audioElement.volume = 0;\n }\n }\n }\n\n private toggleLoop(): void {\n this.loop = !this.loop;\n if (this.audioElement) {\n this.audioElement.loop = this.loop;\n }\n }\n\n private initAudio(): void {\n this.audioElement = new Audio();\n this.audioElement.crossOrigin = 'anonymous';\n this.audioElement.src = this.src;\n this.audioElement.volume = this.isMuted ? 0 : this.volume;\n this.audioElement.loop = this.loop;\n\n this.audioElement.addEventListener('loadedmetadata', () => {\n this.duration = this.audioElement!.duration;\n this.loading = false;\n });\n\n this.audioElement.addEventListener('play', () => {\n this.isPlaying = true;\n this.startTimeUpdate();\n });\n\n this.audioElement.addEventListener('pause', () => {\n this.isPlaying = false;\n this.stopTimeUpdate();\n });\n\n this.audioElement.addEventListener('ended', () => {\n this.isPlaying = false;\n this.stopTimeUpdate();\n });\n\n this.audioElement.addEventListener('error', () => {\n this.error = 'Failed to load audio';\n this.loading = false;\n });\n\n this.audioElement.addEventListener('timeupdate', () => {\n this.currentTime = this.audioElement!.currentTime;\n });\n\n if (this.autoplay) {\n this.audioElement.play().catch(() => {\n // Autoplay blocked by browser\n });\n }\n\n if (this.showWaveform) {\n this.loadWaveform();\n }\n }\n\n private async loadWaveform(): Promise {\n try {\n this.loading = true;\n const response = await fetch(this.src);\n const arrayBuffer = await response.arrayBuffer();\n const audioContext = new AudioContext();\n const audioBuffer = await audioContext.decodeAudioData(arrayBuffer);\n\n const channelData = audioBuffer.getChannelData(0);\n const bars = 200;\n const blockSize = Math.floor(channelData.length / bars);\n const waveform: number[] = [];\n\n for (let i = 0; i < bars; i++) {\n let sum = 0;\n for (let j = 0; j < blockSize; j++) {\n sum += Math.abs(channelData[i * blockSize + j]);\n }\n waveform.push(sum / blockSize);\n }\n\n // Normalize\n const max = Math.max(...waveform);\n this.waveformData = waveform.map((v) => (max > 0 ? v / max : 0));\n this.waveformReady = true;\n this.loading = false;\n\n await audioContext.close();\n } catch {\n this.waveformReady = false;\n this.loading = false;\n }\n }\n\n private drawWaveform(): void {\n if (!this.showWaveform || !this.waveformReady) return;\n\n const canvas = this.shadowRoot?.querySelector('canvas') as HTMLCanvasElement;\n if (!canvas) return;\n\n this.canvasElement = canvas;\n const container = canvas.parentElement!;\n const dpr = window.devicePixelRatio || 1;\n const width = container.clientWidth;\n const height = container.clientHeight;\n\n canvas.width = width * dpr;\n canvas.height = height * dpr;\n\n const ctx = canvas.getContext('2d');\n if (!ctx) return;\n\n ctx.scale(dpr, dpr);\n ctx.clearRect(0, 0, width, height);\n\n const bars = this.waveformData.length;\n if (bars === 0) return;\n\n const barWidth = width / bars;\n const playedRatio = this.duration > 0 ? this.currentTime / this.duration : 0;\n const playedBars = Math.floor(playedRatio * bars);\n\n const isDark = document.body.classList.contains('theme-dark') ||\n window.matchMedia('(prefers-color-scheme: dark)').matches;\n const playedColor = isDark ? 'hsl(213 93% 68%)' : 'hsl(217 91% 60%)';\n const unplayedColor = isDark ? 'hsl(217 25% 22%)' : 'hsl(214 31% 86%)';\n\n for (let i = 0; i < bars; i++) {\n const amplitude = this.waveformData[i];\n const barHeight = Math.max(2, amplitude * (height - 4));\n const x = i * barWidth;\n const y = (height - barHeight) / 2;\n\n ctx.fillStyle = i < playedBars ? playedColor : unplayedColor;\n ctx.fillRect(x + 0.5, y, barWidth - 1, barHeight);\n }\n }\n\n private handleWaveformClick(e: MouseEvent): void {\n const rect = (e.currentTarget as HTMLElement).getBoundingClientRect();\n const ratio = (e.clientX - rect.left) / rect.width;\n this.seek(ratio * this.duration);\n }\n\n private handleSeekbarClick(e: MouseEvent): void {\n const rect = (e.currentTarget as HTMLElement).getBoundingClientRect();\n const ratio = (e.clientX - rect.left) / rect.width;\n this.seek(ratio * this.duration);\n }\n\n private handleVolumeChange(e: Event): void {\n const value = parseFloat((e.target as HTMLInputElement).value);\n this.setVolume(value);\n }\n\n private startTimeUpdate(): void {\n this.stopTimeUpdate();\n const update = () => {\n if (this.audioElement && this.isPlaying) {\n this.currentTime = this.audioElement.currentTime;\n this.animFrameId = requestAnimationFrame(update);\n }\n };\n this.animFrameId = requestAnimationFrame(update);\n }\n\n private stopTimeUpdate(): void {\n if (this.animFrameId) {\n cancelAnimationFrame(this.animFrameId);\n this.animFrameId = 0;\n }\n }\n\n private formatTime(seconds: number): string {\n if (!isFinite(seconds) || seconds < 0) return '0:00';\n const mins = Math.floor(seconds / 60);\n const secs = Math.floor(seconds % 60);\n return `${mins}:${secs.toString().padStart(2, '0')}`;\n }\n\n private cleanup(): void {\n this.stopTimeUpdate();\n if (this.audioElement) {\n this.audioElement.pause();\n this.audioElement.src = '';\n this.audioElement = null;\n }\n this.isPlaying = false;\n this.currentTime = 0;\n this.duration = 0;\n this.waveformData = [];\n this.waveformReady = false;\n }\n}\n", "export * from './component.js';\n", "import { html, cssManager } from '@design.estate/dees-element';\n\nexport const demo = () => html`\n \n\n
      \n
      \n
      Video with Custom Controls
      \n
      A video player with overlay controls, seeking, and volume adjustment.
      \n \n
      \n\n
      \n
      Autoplay Muted
      \n
      Video that autoplays muted, commonly used for previews.
      \n \n
      \n\n
      \n
      Native Controls
      \n
      Video using browser-native controls instead of custom overlay.
      \n \n
      \n
      \n`;\n", "import {\n DeesElement,\n html,\n customElement,\n type TemplateResult,\n property,\n state,\n cssManager,\n} from '@design.estate/dees-element';\nimport '../../00group-utility/dees-icon/dees-icon.js';\nimport { demo } from './demo.js';\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'dees-video-viewer': DeesVideoViewer;\n }\n}\n\n@customElement('dees-video-viewer')\nexport class DeesVideoViewer extends DeesElement {\n public static demo = demo;\n public static demoGroups = ['Media'];\n\n @property()\n accessor src: string = '';\n\n @property()\n accessor poster: string = '';\n\n @property({ type: Boolean })\n accessor showControls: boolean = true;\n\n @property({ type: Boolean })\n accessor autoplay: boolean = false;\n\n @property({ type: Boolean })\n accessor loop: boolean = false;\n\n @property({ type: Boolean })\n accessor muted: boolean = false;\n\n @state()\n accessor isPlaying: boolean = false;\n\n @state()\n accessor currentTime: number = 0;\n\n @state()\n accessor duration: number = 0;\n\n @state()\n accessor volume: number = 1;\n\n @state()\n accessor loading: boolean = true;\n\n @state()\n accessor error: string = '';\n\n @state()\n accessor isFullscreen: boolean = false;\n\n @state()\n accessor controlsVisible: boolean = true;\n\n private hideControlsTimer: ReturnType | null = null;\n private videoElement: HTMLVideoElement | null = null;\n\n public render(): TemplateResult {\n return html`\n \n\n \n { this.loading = true; }}\n @canplay=${() => { this.loading = false; }}\n >\n\n ${this.showControls ? html`\n
      \n
      \n \n
      \n\n
      e.stopPropagation()}>\n
      \n
      \n
      \n\n
      \n \n\n \n ${this.formatTime(this.currentTime)} / ${this.formatTime(this.duration)}\n \n\n \n\n
      \n \n \n
      \n\n \n
      \n
      \n
      \n ` : ''}\n\n ${this.loading && !this.error ? html`\n
      \n
      \n
      \n ` : ''}\n\n ${this.error ? html`\n
      \n \n ${this.error}\n
      \n ` : ''}\n \n `;\n }\n\n public async firstUpdated(): Promise {\n this.videoElement = this.shadowRoot?.querySelector('video') || null;\n document.addEventListener('fullscreenchange', this.handleFullscreenChange);\n }\n\n public async disconnectedCallback(): Promise {\n await super.disconnectedCallback();\n document.removeEventListener('fullscreenchange', this.handleFullscreenChange);\n if (this.hideControlsTimer) {\n clearTimeout(this.hideControlsTimer);\n }\n }\n\n public play(): void {\n this.videoElement?.play();\n }\n\n public pause(): void {\n this.videoElement?.pause();\n }\n\n public togglePlay(): void {\n if (this.isPlaying) {\n this.pause();\n } else {\n this.play();\n }\n }\n\n public seek(time: number): void {\n if (this.videoElement) {\n this.videoElement.currentTime = time;\n }\n }\n\n public setVolume(v: number): void {\n this.volume = Math.max(0, Math.min(1, v));\n if (this.videoElement) {\n this.videoElement.volume = this.volume;\n }\n }\n\n public toggleFullscreen(): void {\n const container = this.shadowRoot?.querySelector('.video-container') as HTMLElement;\n if (!container) return;\n\n if (this.isFullscreen) {\n document.exitFullscreen?.();\n } else {\n container.requestFullscreen?.();\n }\n }\n\n private handleLoadedMetadata(): void {\n if (this.videoElement) {\n this.duration = this.videoElement.duration;\n this.loading = false;\n }\n }\n\n private handlePlay(): void {\n this.isPlaying = true;\n this.scheduleHideControls();\n }\n\n private handlePause(): void {\n this.isPlaying = false;\n this.controlsVisible = true;\n }\n\n private handleEnded(): void {\n this.isPlaying = false;\n this.controlsVisible = true;\n }\n\n private handleTimeUpdate(): void {\n if (this.videoElement) {\n this.currentTime = this.videoElement.currentTime;\n }\n }\n\n private handleError(): void {\n this.error = 'Failed to load video';\n this.loading = false;\n }\n\n private handleOverlayClick(): void {\n this.togglePlay();\n }\n\n private handleSeek(e: MouseEvent): void {\n const rect = (e.currentTarget as HTMLElement).getBoundingClientRect();\n const ratio = (e.clientX - rect.left) / rect.width;\n this.seek(ratio * this.duration);\n }\n\n private handleVolumeChange(e: Event): void {\n const value = parseFloat((e.target as HTMLInputElement).value);\n this.setVolume(value);\n this.muted = value === 0;\n }\n\n private toggleMute(): void {\n this.muted = !this.muted;\n if (this.videoElement) {\n this.videoElement.muted = this.muted;\n }\n }\n\n private handleMouseMove(): void {\n this.controlsVisible = true;\n this.scheduleHideControls();\n }\n\n private handleMouseLeave(): void {\n if (this.isPlaying) {\n this.controlsVisible = false;\n }\n }\n\n private scheduleHideControls(): void {\n if (this.hideControlsTimer) {\n clearTimeout(this.hideControlsTimer);\n }\n if (this.isPlaying) {\n this.hideControlsTimer = setTimeout(() => {\n this.controlsVisible = false;\n }, 3000);\n }\n }\n\n private handleFullscreenChange = (): void => {\n this.isFullscreen = !!document.fullscreenElement;\n };\n\n private formatTime(seconds: number): string {\n if (!isFinite(seconds) || seconds < 0) return '0:00';\n const mins = Math.floor(seconds / 60);\n const secs = Math.floor(seconds % 60);\n return `${mins}:${secs.toString().padStart(2, '0')}`;\n }\n}\n", "export * from './component.js';\n", "import { domtools } from '@design.estate/dees-element';\n\nexport class PdfManager {\n private static pdfjsLib: any;\n private static initialized = false;\n\n public static async initialize() {\n if (this.initialized) return;\n\n // @ts-ignore\n this.pdfjsLib = await import('https://cdn.jsdelivr.net/npm/pdfjs-dist@4.0.379/+esm');\n this.pdfjsLib.GlobalWorkerOptions.workerSrc = 'https://cdn.jsdelivr.net/npm/pdfjs-dist@4.0.379/build/pdf.worker.mjs';\n\n this.initialized = true;\n }\n\n public static async loadDocument(url: string): Promise {\n await this.initialize();\n\n // IMPORTANT: Disabled caching to ensure component isolation\n // Each viewer instance gets its own document to prevent state sharing\n // This fixes issues where multiple viewers interfere with each other\n const loadingTask = this.pdfjsLib.getDocument(url);\n const document = await loadingTask.promise;\n\n return document;\n }\n\n public static releaseDocument(_url: string) {\n // No-op since we're not caching documents anymore\n // Each viewer manages its own document lifecycle\n }\n\n // Cache methods removed to ensure component isolation\n // Each viewer now manages its own document lifecycle\n}\n", "import { css, cssManager } from '@design.estate/dees-element';\n\nexport const viewerStyles = [\n cssManager.defaultStyles,\n css`\n :host {\n display: block;\n width: 100%;\n height: 600px;\n position: relative;\n font-family: 'Geist Sans', sans-serif;\n contain: layout style;\n }\n\n .pdf-viewer {\n width: 100%;\n height: 100%;\n display: flex;\n flex-direction: column;\n background: ${cssManager.bdTheme('hsl(0 0% 97%)', 'hsl(215 20% 10%)')};\n position: relative;\n overflow: hidden;\n }\n\n .toolbar {\n height: 48px;\n background: ${cssManager.bdTheme('hsl(0 0% 100%)', 'hsl(215 20% 15%)')};\n border-bottom: 1px solid ${cssManager.bdTheme('hsl(214 31% 91%)', 'hsl(217 25% 22%)')};\n display: flex;\n align-items: center;\n padding: 0 16px;\n gap: 16px;\n flex-shrink: 0;\n }\n\n .toolbar-group {\n display: flex;\n align-items: center;\n gap: 4px;\n }\n\n .toolbar-group--end {\n margin-left: auto;\n }\n\n .toolbar-button {\n width: 32px;\n height: 32px;\n border-radius: 6px;\n background: transparent;\n border: none;\n cursor: pointer;\n display: flex;\n align-items: center;\n justify-content: center;\n transition: background 0.15s ease;\n color: ${cssManager.bdTheme('hsl(215 16% 45%)', 'hsl(215 16% 75%)')};\n }\n\n .toolbar-button:hover:not(:disabled) {\n background: ${cssManager.bdTheme('hsl(214 31% 92%)', 'hsl(217 25% 22%)')};\n }\n\n .toolbar-button:disabled {\n opacity: 0.4;\n cursor: not-allowed;\n }\n\n .toolbar-button dees-icon {\n font-size: 16px;\n }\n\n .page-info {\n display: flex;\n align-items: center;\n gap: 8px;\n padding: 0 8px;\n font-size: 14px;\n color: ${cssManager.bdTheme('hsl(215 16% 45%)', 'hsl(215 16% 75%)')};\n }\n\n .page-input {\n width: 48px;\n height: 28px;\n border-radius: 4px;\n border: 1px solid ${cssManager.bdTheme('hsl(214 31% 86%)', 'hsl(217 25% 28%)')};\n background: ${cssManager.bdTheme('hsl(0 0% 100%)', 'hsl(215 20% 12%)')};\n color: ${cssManager.bdTheme('hsl(222 47% 11%)', 'hsl(210 20% 96%)')};\n text-align: center;\n font-size: 14px;\n font-family: inherit;\n outline: none;\n }\n\n .page-input:focus {\n border-color: ${cssManager.bdTheme('hsl(217 91% 60%)', 'hsl(213 93% 68%)')};\n }\n\n .page-separator {\n color: ${cssManager.bdTheme('hsl(215 16% 60%)', 'hsl(215 16% 50%)')};\n }\n\n .zoom-level {\n font-size: 13px;\n font-weight: 500;\n min-width: 48px;\n text-align: center;\n }\n\n .viewer-container {\n flex: 1;\n display: flex;\n overflow: hidden;\n position: relative;\n min-height: 0;\n }\n\n .sidebar {\n width: 200px;\n background: ${cssManager.bdTheme('hsl(0 0% 100%)', 'hsl(215 20% 15%)')};\n border-right: 1px solid ${cssManager.bdTheme('hsl(214 31% 91%)', 'hsl(217 25% 22%)')};\n display: flex;\n flex-direction: column;\n height: 100%;\n overflow: hidden;\n }\n\n .sidebar-header {\n height: 40px;\n padding: 0 12px;\n display: flex;\n align-items: center;\n justify-content: space-between;\n border-bottom: 1px solid ${cssManager.bdTheme('hsl(214 31% 91%)', 'hsl(217 25% 22%)')};\n font-size: 13px;\n font-weight: 600;\n color: ${cssManager.bdTheme('hsl(215 16% 45%)', 'hsl(215 16% 75%)')};\n }\n\n .sidebar-close {\n width: 24px;\n height: 24px;\n border-radius: 4px;\n background: transparent;\n border: none;\n cursor: pointer;\n display: flex;\n align-items: center;\n justify-content: center;\n color: ${cssManager.bdTheme('hsl(215 16% 45%)', 'hsl(215 16% 75%)')};\n transition: background 0.15s ease;\n }\n\n .sidebar-close:hover {\n background: ${cssManager.bdTheme('hsl(214 31% 92%)', 'hsl(217 25% 22%)')};\n }\n\n .sidebar-close dees-icon {\n font-size: 14px;\n }\n\n .sidebar-content {\n flex: 1;\n overflow-y: auto;\n overflow-x: hidden;\n padding: 12px;\n display: block;\n overscroll-behavior: contain;\n min-height: 0;\n }\n\n .thumbnail {\n position: relative;\n border-radius: 8px;\n overflow: hidden;\n cursor: pointer;\n border: 2px solid transparent;\n transition: border-color 0.15s ease;\n background: ${cssManager.bdTheme('hsl(0 0% 95%)', 'hsl(215 20% 18%)')};\n display: block;\n width: 100%;\n margin-bottom: 12px;\n /* Default A4 aspect ratio (297mm / 210mm \u2248 1.414) */\n min-height: calc(176px * 1.414);\n }\n\n .thumbnail:last-child {\n margin-bottom: 0;\n }\n\n .thumbnail:hover {\n border-color: ${cssManager.bdTheme('hsl(214 31% 86%)', 'hsl(217 25% 35%)')};\n }\n\n .thumbnail.active {\n border-color: ${cssManager.bdTheme('hsl(217 91% 60%)', 'hsl(213 93% 68%)')};\n }\n\n .thumbnail-canvas {\n display: block;\n width: 100%;\n height: auto;\n image-rendering: -webkit-optimize-contrast;\n image-rendering: crisp-edges;\n }\n\n .thumbnail-number {\n position: absolute;\n bottom: 4px;\n right: 4px;\n background: ${cssManager.bdTheme('rgba(0, 0, 0, 0.7)', 'rgba(0, 0, 0, 0.8)')};\n color: white;\n font-size: 11px;\n font-weight: 500;\n padding: 2px 6px;\n border-radius: 4px;\n }\n\n .viewer-main {\n flex: 1;\n overflow-y: auto;\n overflow-x: hidden;\n padding: 20px;\n scroll-behavior: smooth;\n overscroll-behavior: contain;\n min-height: 0;\n position: relative;\n }\n\n .loading-container {\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n height: 100%;\n gap: 16px;\n color: ${cssManager.bdTheme('hsl(215 16% 45%)', 'hsl(215 16% 75%)')};\n }\n\n .loading-spinner {\n width: 32px;\n height: 32px;\n border-radius: 50%;\n border: 3px solid ${cssManager.bdTheme('hsl(214 31% 86%)', 'hsl(217 25% 28%)')};\n border-top-color: ${cssManager.bdTheme('hsl(217 91% 60%)', 'hsl(213 93% 68%)')};\n animation: spin 0.8s linear infinite;\n }\n\n @keyframes spin {\n to {\n transform: rotate(360deg);\n }\n }\n\n .loading-text {\n font-size: 14px;\n font-weight: 500;\n }\n\n .pages-container {\n display: flex;\n flex-direction: column;\n align-items: center;\n gap: 20px;\n }\n\n .page-wrapper {\n display: flex;\n justify-content: center;\n width: 100%;\n }\n\n .canvas-container {\n background: white;\n box-shadow: 0 2px 12px ${cssManager.bdTheme('rgba(0, 0, 0, 0.1)', 'rgba(0, 0, 0, 0.3)')};\n border-radius: 4px;\n overflow: hidden;\n display: inline-block;\n position: relative;\n }\n\n .page-canvas {\n display: block;\n image-rendering: -webkit-optimize-contrast;\n image-rendering: crisp-edges;\n }\n\n /* Text layer for selection */\n .text-layer {\n position: absolute;\n inset: 0;\n overflow: visible;\n line-height: 1;\n text-size-adjust: none;\n forced-color-adjust: none;\n transform-origin: 0 0;\n z-index: 1;\n user-select: text;\n -webkit-user-select: text;\n }\n\n .text-layer span,\n .text-layer br {\n color: transparent;\n position: absolute;\n white-space: pre;\n cursor: text;\n transform-origin: 0% 0%;\n user-select: text;\n -webkit-user-select: text;\n }\n\n .text-layer ::selection {\n background: rgba(0, 100, 200, 0.3);\n }\n\n .text-layer br::selection {\n background: transparent;\n }\n\n .text-layer .endOfContent {\n display: block;\n position: absolute;\n inset: 100% 0 0;\n z-index: 0;\n cursor: default;\n user-select: none;\n }\n\n .text-layer.selecting .endOfContent {\n top: 0;\n }\n\n .pdf-viewer.with-sidebar .viewer-main {\n margin-left: 0;\n }\n `,\n];", "import { html } from '@design.estate/dees-element';\n\nexport const demo = () => html`\n \n\n
      \n
      \n

      Full Featured PDF Viewer with Toolbar

      \n \n
      \n\n
      \n

      PDF Viewer with Sidebar Navigation

      \n \n
      \n\n
      \n

      Compact Viewer without Controls

      \n \n
      \n
      \n`;", "import { DeesElement, property, html, customElement, type TemplateResult, directives } from '@design.estate/dees-element';\nimport { PdfManager } from '../dees-pdf-shared/PdfManager.js';\nimport { viewerStyles } from './styles.js';\nimport { demo as demoFunc } from './demo.js';\nimport '../../00group-utility/dees-icon/dees-icon.js';\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'dees-pdf-viewer': DeesPdfViewer;\n }\n}\n\ntype RenderState = 'idle' | 'loading' | 'rendering-main' | 'rendering-thumbs' | 'rendered' | 'error' | 'disposed';\n\n@customElement('dees-pdf-viewer')\nexport class DeesPdfViewer extends DeesElement {\n public static demo = demoFunc;\n public static demoGroups = ['Media', 'PDF'];\n public static styles = viewerStyles;\n\n @property({ type: String })\n accessor pdfUrl: string = '';\n\n @property({ type: Number })\n accessor initialPage: number = 1;\n\n @property({ type: String })\n accessor initialZoom: 'auto' | 'page-fit' | 'page-width' | number = 'auto';\n\n @property({ type: Boolean })\n accessor showToolbar: boolean = true;\n\n @property({ type: Boolean })\n accessor showSidebar: boolean = false;\n\n @property({ type: Number })\n accessor currentPage: number = 1;\n\n @property({ type: Number })\n accessor totalPages: number = 1;\n\n @property({ type: Number })\n accessor currentZoom: number = 1;\n\n @property({ type: Boolean })\n accessor loading: boolean = false;\n\n @property({ type: String })\n accessor documentId: string = '';\n\n @property({ type: Array })\n accessor thumbnailData: Array<{page: number, rendered: boolean}> = [];\n\n @property({ type: Array })\n accessor pageData: Array<{page: number, rendered: boolean, rendering: boolean, textLayerRendered: boolean}> = [];\n\n private pdfDocument: any;\n private renderState: RenderState = 'idle';\n private renderAbortController: AbortController | null = null;\n private pageRendering: boolean = false;\n private pageNumPending: number | null = null;\n private currentRenderTask: any = null;\n private currentRenderPromise: Promise | null = null;\n private thumbnailRenderTasks: any[] = [];\n private pageRenderTasks: Map = new Map();\n private textLayerRenderTasks: Map = new Map();\n private canvas: HTMLCanvasElement | undefined;\n private ctx: CanvasRenderingContext2D | undefined;\n private viewerMain: HTMLElement | null = null;\n private resizeObserver?: ResizeObserver;\n private intersectionObserver?: IntersectionObserver;\n private scrollThrottleTimeout?: number;\n private viewportDimensions = { width: 0, height: 0 };\n private viewportMode: 'auto' | 'page-fit' | 'page-width' | 'custom' = 'auto';\n private readonly MANUAL_MIN_ZOOM = 0.5;\n private readonly MANUAL_MAX_ZOOM = 3;\n private readonly ABSOLUTE_MIN_ZOOM = 0.1;\n private readonly ABSOLUTE_MAX_ZOOM = 4;\n private readonly PAGE_GAP = 20;\n private readonly RENDER_BUFFER = 3;\n\n constructor() {\n super();\n }\n\n public render(): TemplateResult {\n return html`\n
      \n ${this.showToolbar ? html`\n
      \n
      \n \n \n \n
      \n \n /\n ${this.totalPages}\n
      \n = this.totalPages}\n >\n \n \n
      \n\n
      \n \n \n \n \n ${Math.round(this.currentZoom * 100)}%\n \n \n \n \n
      \n\n
      \n \n \n \n \n \n \n
      \n\n
      \n this.showSidebar = !this.showSidebar}\n title=\"${this.showSidebar ? 'Hide thumbnails' : 'Show thumbnails'}\"\n >\n \n \n \n \n \n \n \n \n
      \n
      \n ` : ''}\n\n
      \n ${this.showSidebar ? html`\n
      \n
      \n Pages\n this.showSidebar = false}\n >\n \n \n
      \n
      \n ${directives.keyed(this.documentId, html`\n ${directives.repeat(\n this.thumbnailData,\n (item) => item.page,\n (item) => html`\n \n \n ${item.page}\n
      \n `\n )}\n `)}\n
      \n
      \n ` : ''}\n\n
      \n ${this.loading ? html`\n
      \n
      \n
      Loading PDF...
      \n
      \n ` : html`\n
      \n ${directives.repeat(\n this.pageData,\n (item) => item.page,\n (item) => html`\n
      \n
      \n \n
      \n
      \n
      \n `\n )}\n
      \n `}\n
      \n
      \n \n `;\n }\n\n public async connectedCallback() {\n await super.connectedCallback();\n await this.updateComplete;\n this.ensureViewerRefs();\n\n // Generate a unique document ID for this connection\n if (this.pdfUrl) {\n this.documentId = `${this.pdfUrl}-${Date.now()}-${Math.random()}`;\n await this.loadPdf();\n }\n }\n\n public async disconnectedCallback() {\n await super.disconnectedCallback();\n this.resizeObserver?.disconnect();\n this.resizeObserver = undefined;\n this.intersectionObserver?.disconnect();\n this.intersectionObserver = undefined;\n\n // Clear scroll timeout\n if (this.scrollThrottleTimeout) {\n clearTimeout(this.scrollThrottleTimeout);\n this.scrollThrottleTimeout = undefined;\n }\n\n // Mark as disposed and clean up\n this.renderState = 'disposed';\n await this.cleanupDocument();\n\n // Clear all references\n this.canvas = undefined;\n this.ctx = undefined;\n }\n\n public async updated(changedProperties: Map) {\n super.updated(changedProperties);\n\n if (changedProperties.has('pdfUrl') && this.pdfUrl) {\n const previousUrl = changedProperties.get('pdfUrl') as string | undefined;\n if (previousUrl) {\n PdfManager.releaseDocument(previousUrl);\n }\n // Generate new document ID for new URL\n this.documentId = `${this.pdfUrl}-${Date.now()}-${Math.random()}`;\n await this.loadPdf();\n }\n\n // Re-render thumbnails when sidebar becomes visible and document is loaded\n if (changedProperties.has('showSidebar') && this.showSidebar && this.pdfDocument) {\n // Use requestAnimationFrame to ensure DOM is ready\n await new Promise(resolve => requestAnimationFrame(resolve));\n // Force re-render of thumbnails by resetting their rendered state\n this.thumbnailData.forEach(thumb => thumb.rendered = false);\n await this.renderThumbnails();\n // Re-setup intersection observer for lazy loading of pages\n this.setupIntersectionObserver();\n // Scroll to active thumbnail after rendering\n this.scrollThumbnailIntoView(this.currentPage);\n }\n }\n\n private async loadPdf() {\n this.loading = true;\n this.renderState = 'loading';\n\n try {\n await this.cleanupDocument();\n\n // Create new abort controller for this load operation\n this.renderAbortController = new AbortController();\n const signal = this.renderAbortController.signal;\n\n this.pdfDocument = await PdfManager.loadDocument(this.pdfUrl);\n if (signal.aborted) return;\n\n this.totalPages = this.pdfDocument.numPages;\n this.currentPage = this.initialPage;\n this.resolveInitialViewportMode();\n\n // Initialize thumbnail and page data arrays\n this.thumbnailData = Array.from({length: this.totalPages}, (_, i) => ({\n page: i + 1,\n rendered: false\n }));\n\n this.pageData = Array.from({length: this.totalPages}, (_, i) => ({\n page: i + 1,\n rendered: false,\n rendering: false,\n textLayerRendered: false,\n }));\n\n // Set loading to false to render the pages\n this.loading = false;\n await this.updateComplete;\n this.ensureViewerRefs();\n this.setupIntersectionObserver();\n\n // Wait for next frame to ensure DOM is ready\n await new Promise(resolve => requestAnimationFrame(resolve));\n if (signal.aborted) return;\n\n this.renderState = 'rendering-main';\n\n // Render initial visible pages\n await this.renderVisiblePages();\n if (signal.aborted) return;\n\n // Scroll to initial page\n if (this.initialPage > 1) {\n await this.scrollToPage(this.initialPage, false);\n }\n\n if (this.showSidebar) {\n // Ensure sidebar is in DOM after loading = false\n await this.updateComplete;\n // Wait for next frame to ensure DOM is fully ready\n await new Promise(resolve => requestAnimationFrame(resolve));\n if (signal.aborted) return;\n\n await this.renderThumbnails();\n if (signal.aborted) return;\n }\n\n this.renderState = 'rendered';\n } catch (error) {\n console.error('Error loading PDF:', error);\n this.loading = false;\n this.renderState = 'error';\n }\n }\n\n private setupIntersectionObserver() {\n if (this.intersectionObserver) {\n this.intersectionObserver.disconnect();\n }\n\n this.intersectionObserver = new IntersectionObserver(\n (entries) => {\n for (const entry of entries) {\n const pageWrapper = entry.target as HTMLElement;\n const pageNum = parseInt(pageWrapper.dataset.page || '1');\n\n if (entry.isIntersecting) {\n this.renderPageIfNeeded(pageNum);\n }\n }\n },\n {\n root: this.viewerMain,\n rootMargin: `${this.RENDER_BUFFER * 100}px 0px`,\n threshold: 0.01\n }\n );\n\n // Observe all page wrappers\n const pageWrappers = this.shadowRoot?.querySelectorAll('.page-wrapper');\n if (pageWrappers) {\n pageWrappers.forEach(wrapper => {\n this.intersectionObserver?.observe(wrapper);\n });\n }\n }\n\n private async renderVisiblePages() {\n if (!this.viewerMain) return;\n\n // Find visible pages based on scroll position\n const clientHeight = this.viewerMain.clientHeight;\n\n for (const pageInfo of this.pageData) {\n const pageWrapper = this.shadowRoot?.querySelector(`.page-wrapper[data-page=\"${pageInfo.page}\"]`) as HTMLElement;\n if (!pageWrapper) continue;\n\n const rect = pageWrapper.getBoundingClientRect();\n const viewerRect = this.viewerMain.getBoundingClientRect();\n const relativeTop = rect.top - viewerRect.top;\n const relativeBottom = relativeTop + rect.height;\n\n // Check if page is visible or within buffer zone\n const buffer = this.RENDER_BUFFER * clientHeight;\n if (relativeBottom >= -buffer && relativeTop <= clientHeight + buffer) {\n await this.renderPageIfNeeded(pageInfo.page);\n }\n }\n }\n\n private async renderPageIfNeeded(pageNum: number) {\n const pageInfo = this.pageData.find(p => p.page === pageNum);\n if (!pageInfo || pageInfo.rendered || pageInfo.rendering) return;\n\n pageInfo.rendering = true;\n\n try {\n const canvas = this.shadowRoot?.querySelector(`.page-canvas[data-page=\"${pageNum}\"]`) as HTMLCanvasElement;\n if (!canvas) {\n pageInfo.rendering = false;\n return;\n }\n\n const page = await this.pdfDocument.getPage(pageNum);\n const viewport = this.computeViewport(page);\n\n // Set canvas dimensions with device pixel ratio for sharp rendering\n const dpr = window.devicePixelRatio || 1;\n canvas.width = Math.floor(viewport.width * dpr);\n canvas.height = Math.floor(viewport.height * dpr);\n canvas.style.width = `${viewport.width}px`;\n canvas.style.height = `${viewport.height}px`;\n\n const ctx = canvas.getContext('2d');\n if (!ctx) {\n page.cleanup?.();\n pageInfo.rendering = false;\n return;\n }\n\n // Scale context for high-DPI displays\n ctx.scale(dpr, dpr);\n\n const renderContext = {\n canvasContext: ctx,\n viewport: viewport,\n };\n\n const renderTask = page.render(renderContext);\n this.pageRenderTasks.set(pageNum, renderTask);\n\n await renderTask.promise;\n\n page.cleanup?.();\n pageInfo.rendered = true;\n pageInfo.rendering = false;\n this.pageRenderTasks.delete(pageNum);\n\n // Render text layer for selection\n await this.renderTextLayer(pageNum);\n\n // Update page data to reflect rendered state\n this.requestUpdate('pageData');\n } catch (error: any) {\n if (error?.name !== 'RenderingCancelledException') {\n console.error(`Error rendering page ${pageNum}:`, error);\n }\n pageInfo.rendering = false;\n this.pageRenderTasks.delete(pageNum);\n }\n }\n\n private async renderTextLayer(pageNum: number): Promise {\n const pageInfo = this.pageData.find(p => p.page === pageNum);\n if (!pageInfo || pageInfo.textLayerRendered) return;\n\n try {\n const textLayerDiv = this.shadowRoot?.querySelector(\n `.text-layer[data-page=\"${pageNum}\"]`\n ) as HTMLElement;\n if (!textLayerDiv) return;\n\n textLayerDiv.innerHTML = '';\n\n const page = await this.pdfDocument.getPage(pageNum);\n const textContent = await page.getTextContent();\n const viewport = this.computeViewport(page);\n\n // @ts-ignore - Dynamic import of pdfjs\n const pdfjs = await import('https://cdn.jsdelivr.net/npm/pdfjs-dist@4.0.379/+esm');\n\n textLayerDiv.style.width = `${viewport.width}px`;\n textLayerDiv.style.height = `${viewport.height}px`;\n\n // Set the scale factor CSS variable - required by PDF.js text layer\n textLayerDiv.style.setProperty('--scale-factor', String(viewport.scale));\n\n const textLayerRenderTask = pdfjs.renderTextLayer({\n textContentSource: textContent,\n container: textLayerDiv,\n viewport: viewport,\n });\n\n this.textLayerRenderTasks.set(pageNum, textLayerRenderTask);\n await textLayerRenderTask.promise;\n\n // Add endOfContent for selection boundary\n const endOfContent = document.createElement('div');\n endOfContent.className = 'endOfContent';\n textLayerDiv.appendChild(endOfContent);\n\n // Custom drag selection for Shadow DOM compatibility\n // caretRangeFromPoint doesn't pierce shadow DOM, so we find spans manually\n let isDragging = false;\n let anchorNode: Node | null = null;\n let anchorOffset = 0;\n\n const getTextPositionFromPoint = (x: number, y: number): { node: Node; offset: number } | null => {\n // Find span at coordinates by checking bounding rects\n const spans = Array.from(textLayerDiv.querySelectorAll('span'));\n for (const span of spans) {\n const rect = span.getBoundingClientRect();\n if (x >= rect.left && x <= rect.right && y >= rect.top && y <= rect.bottom) {\n const textNode = span.firstChild;\n if (textNode && textNode.nodeType === Node.TEXT_NODE) {\n // Calculate character offset based on x position\n const text = textNode.textContent || '';\n const charWidth = rect.width / text.length;\n const relativeX = x - rect.left;\n const offset = Math.min(Math.round(relativeX / charWidth), text.length);\n return { node: textNode, offset };\n }\n }\n }\n return null;\n };\n\n const handleMouseUp = () => {\n if (isDragging) {\n isDragging = false;\n anchorNode = null;\n textLayerDiv.classList.remove('selecting');\n }\n document.removeEventListener('mouseup', handleMouseUp);\n document.removeEventListener('mousemove', handleMouseMove);\n };\n\n const handleMouseMove = (e: MouseEvent) => {\n if (!isDragging || !anchorNode) return;\n\n e.preventDefault();\n const pos = getTextPositionFromPoint(e.clientX, e.clientY);\n if (pos) {\n const selection = window.getSelection();\n if (selection) {\n try {\n selection.setBaseAndExtent(anchorNode, anchorOffset, pos.node, pos.offset);\n } catch (err) {\n // Ignore errors from invalid selections\n }\n }\n }\n };\n\n textLayerDiv.addEventListener('mousedown', (e: MouseEvent) => {\n if (e.button !== 0) return;\n\n const pos = getTextPositionFromPoint(e.clientX, e.clientY);\n if (pos) {\n // Prevent native selection behavior\n e.preventDefault();\n\n isDragging = true;\n anchorNode = pos.node;\n anchorOffset = pos.offset;\n textLayerDiv.classList.add('selecting');\n\n // Clear existing selection\n const selection = window.getSelection();\n selection?.removeAllRanges();\n\n // Add document-level listeners for drag\n document.addEventListener('mousemove', handleMouseMove);\n document.addEventListener('mouseup', handleMouseUp);\n }\n });\n\n pageInfo.textLayerRendered = true;\n page.cleanup?.();\n this.textLayerRenderTasks.delete(pageNum);\n } catch (error: any) {\n if (error?.name !== 'RenderingCancelledException') {\n console.error(`Error rendering text layer for page ${pageNum}:`, error);\n }\n this.textLayerRenderTasks.delete(pageNum);\n }\n }\n\n private handleScroll = () => {\n // Throttle scroll events\n if (this.scrollThrottleTimeout) {\n clearTimeout(this.scrollThrottleTimeout);\n }\n\n this.scrollThrottleTimeout = window.setTimeout(() => {\n this.updateCurrentPage();\n this.renderVisiblePages();\n }, 50);\n }\n\n private updateCurrentPage() {\n if (!this.viewerMain) return;\n\n const scrollTop = this.viewerMain.scrollTop;\n const clientHeight = this.viewerMain.clientHeight;\n const centerY = scrollTop + clientHeight / 2;\n\n // Find which page is at the center of the viewport\n for (let i = 0; i < this.pageData.length; i++) {\n const pageWrapper = this.shadowRoot?.querySelector(`.page-wrapper[data-page=\"${i + 1}\"]`) as HTMLElement;\n if (!pageWrapper) continue;\n\n const rect = pageWrapper.getBoundingClientRect();\n const viewerRect = this.viewerMain.getBoundingClientRect();\n const relativeTop = rect.top - viewerRect.top + scrollTop;\n const relativeBottom = relativeTop + rect.height;\n\n if (centerY >= relativeTop && centerY <= relativeBottom) {\n if (this.currentPage !== i + 1) {\n this.currentPage = i + 1;\n // Scroll the thumbnail into view if sidebar is visible\n if (this.showSidebar) {\n this.scrollThumbnailIntoView(i + 1);\n }\n }\n break;\n }\n }\n }\n\n private scrollThumbnailIntoView(pageNum: number) {\n const thumbnail = this.shadowRoot?.querySelector(`.thumbnail[data-page=\"${pageNum}\"]`) as HTMLElement;\n const sidebarContent = this.shadowRoot?.querySelector('.sidebar-content') as HTMLElement;\n\n if (thumbnail && sidebarContent) {\n // Get the thumbnail's position relative to the sidebar\n const thumbnailRect = thumbnail.getBoundingClientRect();\n const sidebarRect = sidebarContent.getBoundingClientRect();\n\n // Check if thumbnail is outside the visible area\n const isAbove = thumbnailRect.top < sidebarRect.top;\n const isBelow = thumbnailRect.bottom > sidebarRect.bottom;\n\n if (isAbove || isBelow) {\n // Calculate the scroll position to center the thumbnail\n const thumbnailOffset = thumbnail.offsetTop;\n const thumbnailHeight = thumbnail.offsetHeight;\n const sidebarHeight = sidebarContent.clientHeight;\n const targetScrollTop = thumbnailOffset - (sidebarHeight / 2) + (thumbnailHeight / 2);\n\n // Scroll the sidebar to center the thumbnail\n sidebarContent.scrollTo({\n top: Math.max(0, targetScrollTop),\n behavior: 'smooth'\n });\n }\n }\n }\n\n private async scrollToPage(pageNum: number, smooth: boolean = true) {\n await this.updateComplete;\n const pageWrapper = this.shadowRoot?.querySelector(`.page-wrapper[data-page=\"${pageNum}\"]`) as HTMLElement;\n if (pageWrapper && this.viewerMain) {\n // Calculate the offset of the page wrapper relative to the viewer\n const pageRect = pageWrapper.getBoundingClientRect();\n const viewerRect = this.viewerMain.getBoundingClientRect();\n const currentScrollTop = this.viewerMain.scrollTop;\n\n // Calculate the target scroll position\n const targetScrollTop = currentScrollTop + (pageRect.top - viewerRect.top) - this.viewerMain.clientTop;\n\n // Scroll to the calculated position\n if (smooth) {\n this.viewerMain.scrollTo({\n top: targetScrollTop,\n behavior: 'smooth'\n });\n } else {\n this.viewerMain.scrollTop = targetScrollTop;\n }\n\n // Update current page\n this.currentPage = pageNum;\n\n // Scroll thumbnail into view if sidebar is visible\n if (this.showSidebar) {\n this.scrollThumbnailIntoView(pageNum);\n }\n\n // Ensure the page is rendered\n await this.renderPageIfNeeded(pageNum);\n }\n }\n\n private async renderThumbnails() {\n // Check if document is loaded\n if (!this.pdfDocument) {\n return;\n }\n\n // Check if already rendered\n if (this.thumbnailData.length > 0 && this.thumbnailData.every(t => t.rendered)) {\n return;\n }\n\n // Check abort signal\n if (this.renderAbortController?.signal.aborted) {\n return;\n }\n\n const signal = this.renderAbortController?.signal;\n this.renderState = 'rendering-thumbs';\n\n // Cancel any existing thumbnail render tasks\n for (const task of this.thumbnailRenderTasks) {\n try {\n task.cancel();\n } catch (error) {\n // Ignore cancellation errors\n }\n }\n this.thumbnailRenderTasks = [];\n\n try {\n await this.updateComplete;\n const thumbnails = this.shadowRoot?.querySelectorAll('.thumbnail') as NodeListOf;\n const thumbnailCanvases = this.shadowRoot?.querySelectorAll('.thumbnail-canvas') as NodeListOf;\n const sidebarContent = this.shadowRoot?.querySelector('.sidebar-content') as HTMLElement;\n\n // Get the actual available width for thumbnails (sidebar width minus padding)\n const sidebarStyles = window.getComputedStyle(sidebarContent);\n const sidebarPadding = parseFloat(sidebarStyles.paddingLeft) + parseFloat(sidebarStyles.paddingRight);\n const maxThumbnailWidth = 200 - sidebarPadding - 4; // Account for border\n\n // Clear all canvases first to prevent conflicts\n for (const canvas of Array.from(thumbnailCanvases)) {\n const context = canvas.getContext('2d');\n if (context) {\n context.clearRect(0, 0, canvas.width, canvas.height);\n }\n }\n\n for (let i = 0; i < thumbnailCanvases.length; i++) {\n if (signal?.aborted) return;\n\n const canvas = thumbnailCanvases[i];\n const thumbnail = thumbnails[i];\n const pageNum = parseInt(canvas.dataset.page || '1');\n const page = await this.pdfDocument.getPage(pageNum);\n\n // Get the page's natural dimensions\n const initialViewport = page.getViewport({ scale: 1 });\n\n // Calculate scale to fit within the max thumbnail width\n const scale = maxThumbnailWidth / initialViewport.width;\n const viewport = page.getViewport({ scale });\n\n // Set canvas dimensions with device pixel ratio for sharp thumbnails\n const dpr = window.devicePixelRatio || 1;\n canvas.width = Math.floor(viewport.width * dpr);\n canvas.height = Math.floor(viewport.height * dpr);\n\n // Set the display size via style to ensure proper display\n canvas.style.width = `${viewport.width}px`;\n canvas.style.height = `${viewport.height}px`;\n\n // Set the actual thumbnail container height\n thumbnail.style.height = `${viewport.height}px`;\n thumbnail.style.minHeight = `${viewport.height}px`;\n\n const context = canvas.getContext('2d');\n if (!context) {\n page.cleanup?.();\n continue;\n }\n\n // Scale context for high-DPI displays\n context.scale(dpr, dpr);\n\n const renderContext = {\n canvasContext: context,\n viewport: viewport,\n };\n\n const renderTask = page.render(renderContext);\n this.thumbnailRenderTasks.push(renderTask);\n await renderTask.promise;\n page.cleanup?.();\n\n // Mark this thumbnail as rendered\n const thumbData = this.thumbnailData.find(t => t.page === pageNum);\n if (thumbData) {\n thumbData.rendered = true;\n }\n }\n\n // Trigger update to reflect rendered state\n this.requestUpdate('thumbnailData');\n } catch (error: any) {\n // Only log non-cancellation errors\n if (error?.name !== 'RenderingCancelledException') {\n console.error('Error rendering thumbnails:', error);\n }\n } finally {\n this.thumbnailRenderTasks = [];\n }\n }\n\n private previousPage() {\n if (this.currentPage > 1) {\n this.scrollToPage(this.currentPage - 1);\n }\n }\n\n private nextPage() {\n if (this.currentPage < this.totalPages) {\n this.scrollToPage(this.currentPage + 1);\n }\n }\n\n\n private handleThumbnailClick(e: Event) {\n const target = e.currentTarget as HTMLElement;\n const pageNum = parseInt(target.dataset.page || '1');\n this.scrollToPage(pageNum);\n }\n\n private handlePageInput(e: Event) {\n const input = e.target as HTMLInputElement;\n const pageNum = parseInt(input.value);\n this.scrollToPage(pageNum);\n }\n\n private zoomIn() {\n const nextZoom = Math.min(this.MANUAL_MAX_ZOOM, this.currentZoom * 1.2);\n this.viewportMode = 'custom';\n if (nextZoom !== this.currentZoom) {\n this.currentZoom = nextZoom;\n this.reRenderAllPages();\n }\n }\n\n private zoomOut() {\n const nextZoom = Math.max(this.MANUAL_MIN_ZOOM, this.currentZoom / 1.2);\n this.viewportMode = 'custom';\n if (nextZoom !== this.currentZoom) {\n this.currentZoom = nextZoom;\n this.reRenderAllPages();\n }\n }\n\n private resetZoom() {\n this.viewportMode = 'custom';\n this.currentZoom = 1;\n this.reRenderAllPages();\n }\n\n private fitToPage() {\n this.viewportMode = 'page-fit';\n this.reRenderAllPages();\n }\n\n private fitToWidth() {\n this.viewportMode = 'page-width';\n this.reRenderAllPages();\n }\n\n private reRenderAllPages() {\n // Clear all rendered pages to force re-render with new zoom\n this.pageData.forEach(page => {\n page.rendered = false;\n page.rendering = false;\n page.textLayerRendered = false;\n });\n\n // Cancel any ongoing render tasks\n this.pageRenderTasks.forEach(task => {\n try {\n task.cancel();\n } catch (error) {\n // Ignore cancellation errors\n }\n });\n this.pageRenderTasks.clear();\n\n // Cancel text layer render tasks\n this.textLayerRenderTasks.forEach(task => {\n try {\n task.cancel?.();\n } catch (error) {\n // Ignore cancellation errors\n }\n });\n this.textLayerRenderTasks.clear();\n\n // Request update to re-render pages\n this.requestUpdate();\n\n // Render visible pages after update\n this.updateComplete.then(() => {\n this.renderVisiblePages();\n });\n }\n\n private async downloadPdf() {\n if (!this.pdfDocument) return;\n\n try {\n // Get raw PDF data from the loaded document\n const data = await this.pdfDocument.getData();\n const blob = new Blob([data.buffer], { type: 'application/pdf' });\n const blobUrl = URL.createObjectURL(blob);\n\n const link = document.createElement('a');\n link.href = blobUrl;\n link.download = this.pdfUrl ? this.pdfUrl.split('/').pop() || 'document.pdf' : 'document.pdf';\n link.click();\n\n // Clean up blob URL after short delay\n setTimeout(() => URL.revokeObjectURL(blobUrl), 1000);\n } catch (error) {\n console.error('Error downloading PDF:', error);\n }\n }\n\n private async printPdf() {\n if (!this.pdfDocument) return;\n\n try {\n // Get raw PDF data from the loaded document\n const data = await this.pdfDocument.getData();\n const blob = new Blob([data.buffer], { type: 'application/pdf' });\n const pdfUrl = URL.createObjectURL(blob);\n\n // Create an HTML wrapper page that embeds the PDF and handles print/close\n // This gives us control over the afterprint event (direct PDF URLs don't support it)\n const htmlContent = `\n \n \n \n Print PDF\n \n \n \n \n \n \n \n `;\n const htmlBlob = new Blob([htmlContent], { type: 'text/html' });\n const htmlUrl = URL.createObjectURL(htmlBlob);\n\n const printWindow = window.open(htmlUrl, '_blank', 'width=800,height=600');\n if (printWindow) {\n // Cleanup blob URLs when window closes\n const checkClosed = setInterval(() => {\n if (printWindow.closed) {\n clearInterval(checkClosed);\n URL.revokeObjectURL(pdfUrl);\n URL.revokeObjectURL(htmlUrl);\n }\n }, 500);\n // Safety cleanup after 2 minutes\n setTimeout(() => {\n clearInterval(checkClosed);\n URL.revokeObjectURL(pdfUrl);\n URL.revokeObjectURL(htmlUrl);\n }, 120000);\n } else {\n // Popup blocked - fall back to direct navigation\n window.open(pdfUrl, '_blank');\n setTimeout(() => URL.revokeObjectURL(pdfUrl), 60000);\n URL.revokeObjectURL(htmlUrl);\n }\n } catch (error) {\n console.error('Error printing PDF:', error);\n }\n }\n\n /**\n * Provide context menu items for right-click functionality\n */\n public getContextMenuItems() {\n const items: any[] = [];\n\n // Add copy option if text is selected\n const selection = window.getSelection();\n const selectedText = selection?.toString() || '';\n if (selectedText) {\n items.push({\n name: 'Copy',\n iconName: 'lucide:Copy',\n action: async () => {\n await navigator.clipboard.writeText(selectedText);\n }\n });\n items.push({ divider: true });\n }\n\n items.push(\n {\n name: 'Download PDF',\n iconName: 'lucide:Download',\n action: async () => {\n await this.downloadPdf();\n }\n },\n {\n name: 'Print PDF',\n iconName: 'lucide:Printer',\n action: async () => {\n await this.printPdf();\n }\n }\n );\n\n return items;\n }\n\n private get canZoomIn(): boolean {\n return this.viewportMode !== 'custom' || this.currentZoom < this.MANUAL_MAX_ZOOM;\n }\n\n private get canZoomOut(): boolean {\n return this.viewportMode !== 'custom' || this.currentZoom > this.MANUAL_MIN_ZOOM;\n }\n\n private ensureViewerRefs() {\n if (!this.viewerMain) {\n this.viewerMain = this.shadowRoot?.querySelector('.viewer-main') as HTMLElement;\n }\n if (this.viewerMain && !this.resizeObserver) {\n this.resizeObserver = new ResizeObserver(() => {\n this.measureViewportDimensions();\n if (this.pdfDocument) {\n // Re-render all pages when viewport size changes\n this.reRenderAllPages();\n }\n });\n this.resizeObserver.observe(this.viewerMain);\n this.measureViewportDimensions();\n\n // Prevent scroll propagation to parent when scrolling inside viewer\n this.viewerMain.addEventListener('wheel', (e) => {\n const element = e.currentTarget as HTMLElement;\n const scrollTop = element.scrollTop;\n const scrollHeight = element.scrollHeight;\n const clientHeight = element.clientHeight;\n const deltaY = e.deltaY;\n\n // Check if we're at the boundaries\n const isAtTop = scrollTop === 0;\n const isAtBottom = Math.abs(scrollTop + clientHeight - scrollHeight) < 1;\n\n // Prevent propagation if we're scrolling within bounds\n if ((deltaY < 0 && !isAtTop) || (deltaY > 0 && !isAtBottom)) {\n e.stopPropagation();\n } else if ((deltaY < 0 && isAtTop) || (deltaY > 0 && isAtBottom)) {\n // Prevent default and propagation when at boundaries\n e.preventDefault();\n e.stopPropagation();\n }\n }, { passive: false });\n }\n }\n\n private measureViewportDimensions() {\n if (!this.viewerMain) {\n this.viewportDimensions = { width: 0, height: 0 };\n return;\n }\n\n const styles = getComputedStyle(this.viewerMain);\n const paddingX = parseFloat(styles.paddingLeft || '0') + parseFloat(styles.paddingRight || '0');\n const paddingY = parseFloat(styles.paddingTop || '0') + parseFloat(styles.paddingBottom || '0');\n const width = Math.max(this.viewerMain.clientWidth - paddingX, 0);\n const height = Math.max(this.viewerMain.clientHeight - paddingY, 0);\n this.viewportDimensions = { width, height };\n }\n\n private resolveInitialViewportMode() {\n if (typeof this.initialZoom === 'number') {\n this.viewportMode = 'custom';\n this.currentZoom = this.normalizeZoom(this.initialZoom, true);\n } else if (this.initialZoom === 'page-width') {\n this.viewportMode = 'page-width';\n } else if (this.initialZoom === 'page-fit' || this.initialZoom === 'auto') {\n this.viewportMode = 'page-fit';\n } else {\n this.viewportMode = 'auto';\n }\n\n if (this.viewportMode !== 'custom') {\n this.currentZoom = 1;\n }\n }\n\n private computeViewport(page: any) {\n this.measureViewportDimensions();\n const baseViewport = page.getViewport({ scale: 1 });\n let scale: number;\n\n switch (this.viewportMode) {\n case 'page-width': {\n const availableWidth = this.viewportDimensions.width || baseViewport.width;\n scale = availableWidth / baseViewport.width;\n break;\n }\n case 'page-fit':\n case 'auto': {\n const availableWidth = this.viewportDimensions.width || baseViewport.width;\n const availableHeight = this.viewportDimensions.height || baseViewport.height;\n const widthScale = availableWidth / baseViewport.width;\n const heightScale = availableHeight / baseViewport.height;\n scale = Math.min(widthScale, heightScale);\n break;\n }\n case 'custom':\n default: {\n scale = this.normalizeZoom(this.currentZoom || 1, false);\n break;\n }\n }\n\n if (!Number.isFinite(scale) || scale <= 0) {\n scale = 1;\n }\n\n const clampedScale = this.viewportMode === 'custom'\n ? this.normalizeZoom(scale, true)\n : this.normalizeZoom(scale, false);\n\n if (this.viewportMode !== 'custom') {\n this.currentZoom = clampedScale;\n }\n\n return page.getViewport({ scale: clampedScale });\n }\n\n private normalizeZoom(value: number, clampToManualRange: boolean) {\n const min = clampToManualRange ? this.MANUAL_MIN_ZOOM : this.ABSOLUTE_MIN_ZOOM;\n const max = clampToManualRange ? this.MANUAL_MAX_ZOOM : this.ABSOLUTE_MAX_ZOOM;\n return Math.min(Math.max(value, min), max);\n }\n\n private async cleanupDocument() {\n // Abort any ongoing render operations\n if (this.renderAbortController) {\n this.renderAbortController.abort();\n this.renderAbortController = null;\n }\n\n // Wait for any existing render to complete\n if (this.currentRenderPromise) {\n try {\n await this.currentRenderPromise;\n } catch (error) {\n // Ignore errors\n }\n this.currentRenderPromise = null;\n }\n\n // Clear the render task reference\n this.currentRenderTask = null;\n\n // Cancel any page render tasks\n this.pageRenderTasks.forEach(task => {\n try {\n task.cancel();\n } catch (error) {\n // Ignore cancellation errors\n }\n });\n this.pageRenderTasks.clear();\n\n // Cancel text layer render tasks\n this.textLayerRenderTasks.forEach(task => {\n try {\n task.cancel?.();\n } catch (error) {\n // Ignore cancellation errors\n }\n });\n this.textLayerRenderTasks.clear();\n\n // Cancel any thumbnail render tasks\n for (const task of (this.thumbnailRenderTasks || [])) {\n try {\n task.cancel();\n } catch (error) {\n // Ignore cancellation errors\n }\n }\n this.thumbnailRenderTasks = [];\n\n // Reset all state flags\n this.renderState = 'idle';\n this.pageRendering = false;\n this.pageNumPending = null;\n this.thumbnailData = [];\n this.pageData = [];\n this.documentId = '';\n\n // Clear canvas content\n if (this.canvas && this.ctx) {\n this.ctx.clearRect(0, 0, this.canvas.width, this.canvas.height);\n }\n\n // Destroy the document to free memory\n if (this.pdfDocument) {\n try {\n this.pdfDocument.destroy();\n } catch (error) {\n console.error('Error destroying PDF document:', error);\n }\n }\n\n // Finally null the document reference\n this.pdfDocument = null;\n\n // Request update to reflect state changes\n this.requestUpdate();\n }\n}\n", "import { html, cssManager } from '@design.estate/dees-element';\n\nexport const demoFunc = () => html`\n \n\n
      \n
      \n
      Image Preview (URL)
      \n
      Auto-detects image from URL extension and renders with the image viewer.
      \n \n
      \n\n
      \n
      PDF Preview (URL)
      \n
      Auto-detects PDF and displays with the PDF viewer including toolbar.
      \n \n
      \n\n
      \n
      Code Preview (Text Content)
      \n
      TypeScript code displayed with syntax highlighting via the codebox.
      \n Hello World\\`;\n }\n}`}\n >\n
      \n\n
      \n
      Audio Preview (URL)
      \n
      Audio file detected by extension, shown with waveform player.
      \n \n
      \n\n
      \n
      Video Preview (URL)
      \n
      Video file detected from URL, rendered with custom video controls.
      \n \n
      \n\n
      \n
      Explicit Type Override
      \n
      Force content type to 'text' even though the URL has no extension.
      \n \n
      \n\n
      \n
      Unknown Type
      \n
      When content type cannot be detected, shows a placeholder.
      \n \n
      \n
      \n`;\n", "import {\n DeesElement,\n html,\n customElement,\n type TemplateResult,\n property,\n state,\n cssManager,\n} from '@design.estate/dees-element';\nimport '../dees-image-viewer/component.js';\nimport '../dees-audio-viewer/component.js';\nimport '../dees-video-viewer/component.js';\nimport '../../00group-dataview/dees-dataview-codebox/dees-dataview-codebox.js';\nimport '../dees-pdf-viewer/component.js';\nimport '../../00group-utility/dees-icon/dees-icon.js';\nimport { demoFunc } from './dees-preview.demo.js';\n\nexport type TPreviewContentType = 'image' | 'pdf' | 'audio' | 'video' | 'code' | 'text' | 'unknown';\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'dees-preview': DeesPreview;\n }\n}\n\nconst EXTENSION_MAP: Record = {\n // Image\n jpg: 'image', jpeg: 'image', png: 'image', gif: 'image', webp: 'image',\n svg: 'image', bmp: 'image', avif: 'image', ico: 'image',\n // PDF\n pdf: 'pdf',\n // Audio\n mp3: 'audio', wav: 'audio', ogg: 'audio', flac: 'audio', aac: 'audio',\n m4a: 'audio', opus: 'audio', weba: 'audio',\n // Video\n mp4: 'video', webm: 'video', mov: 'video', avi: 'video', mkv: 'video', ogv: 'video',\n // Code\n ts: 'code', js: 'code', jsx: 'code', tsx: 'code', json: 'code',\n html: 'code', css: 'code', scss: 'code', less: 'code',\n py: 'code', java: 'code', go: 'code', rs: 'code',\n yaml: 'code', yml: 'code', xml: 'code', sql: 'code',\n sh: 'code', bash: 'code', zsh: 'code', md: 'code',\n c: 'code', cpp: 'code', h: 'code', hpp: 'code',\n rb: 'code', php: 'code', swift: 'code', kt: 'code',\n // Text\n txt: 'text', log: 'text', csv: 'text', env: 'text',\n};\n\nconst MIME_PREFIX_MAP: Record = {\n 'image/': 'image',\n 'audio/': 'audio',\n 'video/': 'video',\n 'application/pdf': 'pdf',\n};\n\nconst EXTENSION_LANG_MAP: Record = {\n ts: 'typescript', tsx: 'typescript',\n js: 'javascript', jsx: 'javascript',\n json: 'json', html: 'xml', xml: 'xml',\n css: 'css', scss: 'scss', less: 'less',\n py: 'python', java: 'java', go: 'go', rs: 'rust',\n yaml: 'yaml', yml: 'yaml', sql: 'sql',\n sh: 'bash', bash: 'bash', zsh: 'bash',\n c: 'c', cpp: 'cpp', h: 'c', hpp: 'cpp',\n rb: 'ruby', php: 'php', swift: 'swift', kt: 'kotlin',\n md: 'markdown',\n};\n\nconst TYPE_ICONS: Record = {\n image: 'lucide:Image',\n pdf: 'lucide:FileText',\n audio: 'lucide:Music',\n video: 'lucide:Video',\n code: 'lucide:Code',\n text: 'lucide:FileText',\n unknown: 'lucide:File',\n};\n\n@customElement('dees-preview')\nexport class DeesPreview extends DeesElement {\n public static demo = demoFunc;\n public static demoGroups = ['Media', 'Data View'];\n\n // Content sources (use one)\n @property()\n accessor url: string = '';\n\n @property({ attribute: false })\n accessor file: File | undefined = undefined;\n\n @property()\n accessor base64: string = '';\n\n @property()\n accessor textContent: string = '';\n\n // Hints & overrides\n @property()\n accessor contentType: TPreviewContentType | undefined = undefined;\n\n @property()\n accessor language: string = '';\n\n @property()\n accessor mimeType: string = '';\n\n @property()\n accessor filename: string = '';\n\n // UI\n @property({ type: Boolean })\n accessor showToolbar: boolean = true;\n\n @property({ type: Boolean })\n accessor showFilename: boolean = true;\n\n // Internal\n @state()\n accessor resolvedType: TPreviewContentType = 'unknown';\n\n @state()\n accessor resolvedSrc: string = '';\n\n @state()\n accessor resolvedText: string = '';\n\n @state()\n accessor resolvedLang: string = 'text';\n\n @state()\n accessor loading: boolean = false;\n\n @state()\n accessor error: string = '';\n\n private objectUrl: string = '';\n\n public render(): TemplateResult {\n const displayName = this.filename || this.file?.name || this.getFilenameFromUrl() || '';\n\n return html`\n \n\n
      \n ${this.showFilename && displayName ? html`\n
      \n \n ${displayName}\n ${this.resolvedType}\n
      \n ` : ''}\n\n
      \n ${this.error ? html`\n
      \n \n ${this.error}\n
      \n ` : this.loading ? html`\n
      \n
      \n
      \n ` : this.renderContent()}\n
      \n
      \n `;\n }\n\n private renderContent(): TemplateResult {\n switch (this.resolvedType) {\n case 'image':\n return html`\n \n `;\n case 'pdf':\n return html`\n \n `;\n case 'audio':\n return html`\n \n `;\n case 'video':\n return html`\n \n `;\n case 'code':\n return html`\n \n `;\n case 'text':\n return html`
      ${this.resolvedText}
      `;\n default:\n return html`\n
      \n \n Preview not available\n
      \n `;\n }\n }\n\n public async updated(changedProperties: Map): Promise {\n super.updated(changedProperties);\n\n const relevant = ['url', 'file', 'base64', 'textContent', 'contentType', 'language', 'mimeType', 'filename'];\n const needsResolve = relevant.some((key) => changedProperties.has(key));\n if (needsResolve) {\n await this.resolveContent();\n }\n }\n\n public async disconnectedCallback(): Promise {\n await super.disconnectedCallback();\n this.revokeObjectUrl();\n }\n\n private async resolveContent(): Promise {\n this.error = '';\n this.revokeObjectUrl();\n\n // Detect type\n this.resolvedType = this.detectType();\n\n // Resolve source\n try {\n if (this.url) {\n this.resolvedSrc = this.url;\n if (this.resolvedType === 'code' || this.resolvedType === 'text') {\n if (!this.textContent) {\n this.loading = true;\n const response = await fetch(this.url);\n this.resolvedText = await response.text();\n this.loading = false;\n } else {\n this.resolvedText = this.textContent;\n }\n }\n } else if (this.file) {\n this.objectUrl = URL.createObjectURL(this.file);\n this.resolvedSrc = this.objectUrl;\n if (this.resolvedType === 'code' || this.resolvedType === 'text') {\n this.loading = true;\n this.resolvedText = await this.file.text();\n this.loading = false;\n }\n } else if (this.base64) {\n const mime = this.mimeType || 'application/octet-stream';\n this.resolvedSrc = `data:${mime};base64,${this.base64}`;\n } else if (this.textContent) {\n this.resolvedText = this.textContent;\n }\n } catch {\n this.error = 'Failed to load content';\n this.loading = false;\n }\n\n // Resolve language for code\n this.resolvedLang = this.resolveLanguage();\n }\n\n private detectType(): TPreviewContentType {\n // 1. Explicit override\n if (this.contentType) return this.contentType;\n\n // 2. MIME type\n const mime = this.mimeType || this.file?.type || '';\n if (mime) {\n if (mime === 'application/pdf') return 'pdf';\n for (const [prefix, type] of Object.entries(MIME_PREFIX_MAP)) {\n if (mime.startsWith(prefix)) return type;\n }\n if (mime.startsWith('text/')) return 'text';\n }\n\n // 3. File extension\n const ext = this.getExtension();\n if (ext && EXTENSION_MAP[ext]) return EXTENSION_MAP[ext];\n\n // 4. If textContent is provided, assume code or text\n if (this.textContent) {\n return this.language ? 'code' : 'text';\n }\n\n return 'unknown';\n }\n\n private getExtension(): string {\n const name = this.filename || this.file?.name || '';\n if (name) {\n const parts = name.split('.');\n if (parts.length > 1) return parts.pop()!.toLowerCase();\n }\n if (this.url) {\n try {\n const pathname = new URL(this.url, 'https://placeholder.com').pathname;\n const parts = pathname.split('.');\n if (parts.length > 1) return parts.pop()!.toLowerCase();\n } catch {\n // Invalid URL\n }\n }\n return '';\n }\n\n private getFilenameFromUrl(): string {\n if (!this.url) return '';\n try {\n const pathname = new URL(this.url, 'https://placeholder.com').pathname;\n return pathname.split('/').pop() || '';\n } catch {\n return '';\n }\n }\n\n private resolveLanguage(): string {\n if (this.language) return this.language;\n const ext = this.getExtension();\n return EXTENSION_LANG_MAP[ext] || 'text';\n }\n\n private revokeObjectUrl(): void {\n if (this.objectUrl) {\n URL.revokeObjectURL(this.objectUrl);\n this.objectUrl = '';\n }\n }\n}\n", "export * from './dees-preview.js';\n", "import { DeesElement, property, html, customElement, domtools, type TemplateResult, type CSSResult, } from '@design.estate/dees-element';\n\nimport { Deferred } from '@push.rocks/smartpromise';\nimport { DeesContextmenu } from '../../00group-overlay/dees-contextmenu/dees-contextmenu.js';\nimport '../../00group-utility/dees-icon/dees-icon.js';\n\n// import type pdfjsTypes from 'pdfjs-dist';\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'dees-pdf': DeesPdf;\n }\n}\n\n/**\n * @deprecated Use DeesPdfViewer or DeesTilePdf instead\n * - DeesPdfViewer: Full-featured PDF viewing with controls, navigation, zoom\n * - DeesTilePdf: Lightweight, performance-optimized tile preview for grids\n */\n@customElement('dees-pdf')\nexport class DeesPdf extends DeesElement {\n // DEMO\n public static demo = () => html` `;\n public static demoGroups = ['Media', 'PDF'];\n\n // INSTANCE\n\n @property()\n accessor pdfUrl: string =\n 'https://raw.githubusercontent.com/mozilla/pdf.js/ba2edeae/examples/learning/helloworld.pdf';\n\n\n\n constructor() {\n super();\n\n // you have access to all kinds of things through this.\n // this.setAttribute('gotIt','true');\n }\n\n public render(): TemplateResult {\n return html`\n \n \n `;\n }\n\n public static pdfJsReady: Promise;\n public static pdfjsLib: any // typeof pdfjsTypes;\n public async connectedCallback() {\n super.connectedCallback();\n if (!DeesPdf.pdfJsReady) {\n const pdfJsReadyDeferred = domtools.plugins.smartpromise.defer();\n DeesPdf.pdfJsReady = pdfJsReadyDeferred.promise;\n // @ts-ignore\n DeesPdf.pdfjsLib = await import('https://cdn.jsdelivr.net/npm/pdfjs-dist@4.0.379/+esm');\n DeesPdf.pdfjsLib.GlobalWorkerOptions.workerSrc = 'https://cdn.jsdelivr.net/npm/pdfjs-dist@4.0.379/build/pdf.worker.mjs';\n pdfJsReadyDeferred.resolve();\n }\n await DeesPdf.pdfJsReady;\n this.displayContent();\n\n\n }\n\n public async displayContent() {\n await DeesPdf.pdfJsReady;\n\n // Asynchronous download of PDF\n const loadingTask = DeesPdf.pdfjsLib.getDocument(this.pdfUrl);\n loadingTask.promise.then(\n (pdf) => {\n console.log('PDF loaded');\n\n // Fetch the first page\n const pageNumber = 1;\n pdf.getPage(pageNumber).then((page) => {\n console.log('Page loaded');\n\n const scale = 10;\n const viewport = page.getViewport({ scale: scale });\n\n // Prepare canvas using PDF page dimensions\n const canvas: any = this.shadowRoot.querySelector('#pdfcanvas');\n const context = canvas.getContext('2d');\n canvas.height = viewport.height;\n canvas.width = viewport.width;\n\n // Render PDF page into canvas context\n const renderContext = {\n canvasContext: context,\n viewport: viewport,\n };\n\n const renderTask = page.render(renderContext);\n renderTask.promise.then(function () {\n console.log('Page rendered');\n });\n });\n },\n (reason) => {\n // PDF loading error\n console.error(reason);\n }\n );\n }\n\n /**\n * Provide context menu items for the global context menu handler\n */\n public getContextMenuItems() {\n return [\n {\n name: 'Open PDF in New Tab',\n iconName: 'lucide:ExternalLink',\n action: async () => {\n window.open(this.pdfUrl, '_blank');\n }\n },\n { divider: true },\n {\n name: 'Copy PDF URL',\n iconName: 'lucide:Copy',\n action: async () => {\n await navigator.clipboard.writeText(this.pdfUrl);\n }\n },\n {\n name: 'Download PDF',\n iconName: 'lucide:Download',\n action: async () => {\n const link = document.createElement('a');\n link.href = this.pdfUrl;\n link.download = this.pdfUrl.split('/').pop() || 'document.pdf';\n link.click();\n }\n }\n ];\n }\n}", "export * from './component.js';\n", "import { css, cssManager } from '@design.estate/dees-element';\n\nexport const tileBaseStyles = [\n cssManager.defaultStyles,\n css`\n :host {\n display: inline-block;\n position: relative;\n }\n\n .tile-container {\n position: relative;\n width: 200px;\n height: 260px;\n background: ${cssManager.bdTheme('hsl(0 0% 98%)', 'hsl(215 20% 14%)')};\n border-radius: 4px;\n overflow: hidden;\n transition: transform 0.2s ease, box-shadow 0.2s ease;\n box-shadow: 0 1px 3px ${cssManager.bdTheme('rgba(0, 0, 0, 0.12)', 'rgba(0, 0, 0, 0.24)')};\n }\n\n .tile-container.clickable {\n cursor: pointer;\n }\n\n .tile-container.clickable:hover {\n transform: translateY(-2px);\n box-shadow: 0 8px 24px ${cssManager.bdTheme('rgba(0, 0, 0, 0.12)', 'rgba(0, 0, 0, 0.3)')};\n }\n\n .tile-container.clickable:hover .tile-overlay {\n opacity: 1;\n }\n\n .tile-content {\n position: relative;\n width: 100%;\n height: 100%;\n display: flex;\n align-items: center;\n justify-content: center;\n box-sizing: border-box;\n overflow: hidden;\n }\n\n .tile-overlay {\n position: absolute;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n background: ${cssManager.bdTheme('rgba(0, 0, 0, 0.7)', 'rgba(0, 0, 0, 0.8)')};\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n gap: 8px;\n opacity: 0;\n transition: opacity 0.2s ease;\n z-index: 20;\n }\n\n .tile-overlay dees-icon {\n font-size: 24px;\n color: white;\n }\n\n .tile-overlay span {\n font-size: 14px;\n font-weight: 500;\n color: white;\n }\n\n .tile-info {\n position: absolute;\n bottom: 8px;\n left: 8px;\n right: 8px;\n padding: 6px 10px;\n background: ${cssManager.bdTheme('hsl(0 0% 100% / 0.92)', 'hsl(215 20% 12% / 0.92)')};\n border-radius: 6px;\n display: flex;\n align-items: center;\n gap: 6px;\n font-size: 12px;\n color: ${cssManager.bdTheme('hsl(215 16% 45%)', 'hsl(215 16% 75%)')};\n backdrop-filter: blur(12px);\n box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1);\n z-index: 10;\n }\n\n .tile-info dees-icon {\n font-size: 13px;\n color: ${cssManager.bdTheme('hsl(217 91% 60%)', 'hsl(213 93% 68%)')};\n }\n\n .tile-info-text {\n font-weight: 500;\n font-size: 11px;\n }\n\n .tile-badge {\n position: absolute;\n top: 8px;\n left: 8px;\n right: 8px;\n padding: 5px 8px;\n background: ${cssManager.bdTheme('hsl(0 0% 0% / 0.7)', 'hsl(0 0% 100% / 0.9)')};\n color: ${cssManager.bdTheme('white', 'hsl(215 20% 12%)')};\n border-radius: 4px;\n font-size: 11px;\n font-weight: 600;\n text-align: center;\n backdrop-filter: blur(12px);\n z-index: 15;\n pointer-events: none;\n animation: fadeIn 0.2s ease;\n }\n\n .tile-badge-corner {\n position: absolute;\n bottom: 8px;\n right: 8px;\n padding: 3px 8px;\n background: ${cssManager.bdTheme('hsl(0 0% 0% / 0.6)', 'hsl(0 0% 100% / 0.85)')};\n color: ${cssManager.bdTheme('white', 'hsl(215 20% 12%)')};\n border-radius: 4px;\n font-size: 10px;\n font-weight: 600;\n font-variant-numeric: tabular-nums;\n backdrop-filter: blur(8px);\n z-index: 10;\n pointer-events: none;\n }\n\n .tile-badge-topright {\n position: absolute;\n top: 8px;\n right: 8px;\n padding: 3px 8px;\n background: ${cssManager.bdTheme('hsl(0 0% 0% / 0.6)', 'hsl(0 0% 100% / 0.85)')};\n color: ${cssManager.bdTheme('white', 'hsl(215 20% 12%)')};\n border-radius: 4px;\n font-size: 10px;\n font-weight: 600;\n backdrop-filter: blur(8px);\n z-index: 15;\n pointer-events: none;\n }\n\n /* Shift bottom badges up when label is present */\n .tile-container:has(.tile-label) .tile-badge-corner {\n bottom: 33px;\n }\n\n .tile-container:has(.tile-label) .tile-info {\n bottom: 33px;\n }\n\n .tile-loading,\n .tile-error {\n position: absolute;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n gap: 12px;\n color: ${cssManager.bdTheme('hsl(215 16% 45%)', 'hsl(215 16% 75%)')};\n }\n\n .tile-loading {\n background: ${cssManager.bdTheme('hsl(0 0% 99%)', 'hsl(215 20% 14%)')};\n }\n\n .tile-error {\n background: ${cssManager.bdTheme('hsl(0 72% 98%)', 'hsl(0 62% 20%)')};\n color: ${cssManager.bdTheme('hsl(0 72% 40%)', 'hsl(0 70% 68%)')};\n }\n\n .tile-error dees-icon {\n font-size: 32px;\n }\n\n .tile-spinner {\n width: 24px;\n height: 24px;\n border-radius: 50%;\n border: 2px solid ${cssManager.bdTheme('hsl(214 31% 86%)', 'hsl(217 25% 28%)')};\n border-top-color: ${cssManager.bdTheme('hsl(217 91% 60%)', 'hsl(213 93% 68%)')};\n animation: spin 0.8s linear infinite;\n }\n\n .tile-loading-text,\n .tile-error-text {\n font-size: 13px;\n font-weight: 500;\n }\n\n .tile-label {\n position: absolute;\n bottom: 0;\n left: 0;\n right: 0;\n padding: 6px 10px;\n background: ${cssManager.bdTheme('hsl(0 0% 100% / 0.95)', 'hsl(215 20% 12% / 0.95)')};\n font-size: 11px;\n font-weight: 500;\n color: ${cssManager.bdTheme('hsl(215 16% 35%)', 'hsl(215 16% 75%)')};\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n z-index: 10;\n backdrop-filter: blur(12px);\n }\n\n @keyframes spin {\n to {\n transform: rotate(360deg);\n }\n }\n\n @keyframes fadeIn {\n from {\n opacity: 0;\n transform: translateY(-4px);\n }\n to {\n opacity: 1;\n transform: translateY(0);\n }\n }\n\n /* Size variants */\n :host([size=\"small\"]) .tile-container {\n width: 150px;\n height: 195px;\n }\n\n :host([size=\"large\"]) .tile-container {\n width: 250px;\n height: 325px;\n }\n\n /* Grid optimizations */\n :host([grid-mode]) .tile-container {\n will-change: auto;\n }\n `,\n];\n", "import {\n DeesElement,\n html,\n property,\n type TemplateResult,\n type CSSResult,\n} from '@design.estate/dees-element';\nimport { tileBaseStyles } from './styles.js';\nimport '../../00group-utility/dees-icon/dees-icon.js';\n\nexport abstract class DeesTileBase extends DeesElement {\n public static styles: CSSResult[] = tileBaseStyles as any;\n\n @property({ type: Boolean })\n accessor clickable: boolean = true;\n\n @property({ type: Boolean })\n accessor loading: boolean = false;\n\n @property({ type: Boolean })\n accessor error: boolean = false;\n\n @property({ type: String, reflect: true })\n accessor size: 'small' | 'default' | 'large' = 'default';\n\n @property({ type: String })\n accessor label: string = '';\n\n private observer: IntersectionObserver | undefined;\n private _visible: boolean = false;\n\n /** Whether this tile is currently visible in the viewport */\n protected get isVisible(): boolean {\n return this._visible;\n }\n\n public render(): TemplateResult {\n return html`\n \n ${this.loading ? html`\n
      \n
      \n
      Loading...
      \n
      \n ` : ''}\n\n ${this.error ? html`\n
      \n \n
      Failed to load
      \n
      \n ` : ''}\n\n ${!this.loading && !this.error ? this.renderTileContent() : ''}\n\n ${this.label ? html`\n
      ${this.label}
      \n ` : ''}\n \n `;\n }\n\n /** Subclasses implement this to render their specific content */\n protected abstract renderTileContent(): TemplateResult;\n\n public async connectedCallback(): Promise {\n await super.connectedCallback();\n this.setupIntersectionObserver();\n }\n\n public async disconnectedCallback(): Promise {\n await super.disconnectedCallback();\n if (this.observer) {\n this.observer.disconnect();\n this.observer = undefined;\n }\n }\n\n private setupIntersectionObserver(): void {\n this.observer = new IntersectionObserver(\n (entries) => {\n for (const entry of entries) {\n const wasVisible = this._visible;\n this._visible = entry.isIntersecting;\n if (this._visible && !wasVisible) {\n this.onBecameVisible();\n }\n }\n },\n { root: null, rootMargin: '200px', threshold: 0.01 }\n );\n this.observer.observe(this);\n }\n\n /** Called when the tile first enters the viewport. Override for lazy loading. */\n protected onBecameVisible(): void {\n // Subclasses can override\n }\n\n /** Called when mouse enters the tile container. Override in subclasses. */\n protected onTileMouseEnter(): void {}\n\n /** Called when mouse leaves the tile container. Override in subclasses. */\n protected onTileMouseLeave(): void {}\n\n /** Called when mouse moves over the tile container. Override in subclasses. */\n protected onTileMouseMove(_e: MouseEvent): void {}\n\n protected handleTileClick(): void {\n if (!this.clickable) return;\n this.dispatchEvent(\n new CustomEvent('tile-click', {\n detail: this.getTileClickDetail(),\n bubbles: true,\n composed: true,\n })\n );\n }\n\n /** Return the detail object for tile-click events. Override in subclasses. */\n protected getTileClickDetail(): Record {\n return {};\n }\n}\n", "export interface PooledCanvas {\n canvas: HTMLCanvasElement;\n ctx: CanvasRenderingContext2D;\n inUse: boolean;\n lastUsed: number;\n}\n\nexport class CanvasPool {\n private static pool: PooledCanvas[] = [];\n private static maxPoolSize = 20;\n private static readonly MIN_CANVAS_SIZE = 256;\n private static readonly MAX_CANVAS_SIZE = 4096;\n\n public static acquire(width: number, height: number): PooledCanvas {\n // Try to find a suitable canvas from the pool\n const suitable = this.pool.find(\n (item) => !item.inUse &&\n item.canvas.width >= width &&\n item.canvas.height >= height &&\n item.canvas.width <= width * 1.5 &&\n item.canvas.height <= height * 1.5\n );\n\n if (suitable) {\n suitable.inUse = true;\n suitable.lastUsed = Date.now();\n\n // Clear and resize if needed\n suitable.canvas.width = width;\n suitable.canvas.height = height;\n suitable.ctx.clearRect(0, 0, width, height);\n\n return suitable;\n }\n\n // Create new canvas if pool not full\n if (this.pool.length < this.maxPoolSize) {\n const canvas = document.createElement('canvas');\n const ctx = canvas.getContext('2d', {\n alpha: true,\n desynchronized: true,\n }) as CanvasRenderingContext2D;\n\n canvas.width = Math.min(Math.max(width, this.MIN_CANVAS_SIZE), this.MAX_CANVAS_SIZE);\n canvas.height = Math.min(Math.max(height, this.MIN_CANVAS_SIZE), this.MAX_CANVAS_SIZE);\n\n const pooledCanvas: PooledCanvas = {\n canvas,\n ctx,\n inUse: true,\n lastUsed: Date.now(),\n };\n\n this.pool.push(pooledCanvas);\n return pooledCanvas;\n }\n\n // Evict and reuse least recently used canvas\n const lru = this.pool\n .filter((item) => !item.inUse)\n .sort((a, b) => a.lastUsed - b.lastUsed)[0];\n\n if (lru) {\n lru.canvas.width = width;\n lru.canvas.height = height;\n lru.ctx.clearRect(0, 0, width, height);\n lru.inUse = true;\n lru.lastUsed = Date.now();\n return lru;\n }\n\n // Fallback: create temporary canvas (shouldn't normally happen)\n const canvas = document.createElement('canvas');\n const ctx = canvas.getContext('2d') as CanvasRenderingContext2D;\n canvas.width = width;\n canvas.height = height;\n\n return {\n canvas,\n ctx,\n inUse: true,\n lastUsed: Date.now(),\n };\n }\n\n public static release(pooledCanvas: PooledCanvas) {\n if (this.pool.includes(pooledCanvas)) {\n pooledCanvas.inUse = false;\n // Clear canvas to free memory\n pooledCanvas.ctx.clearRect(0, 0, pooledCanvas.canvas.width, pooledCanvas.canvas.height);\n }\n }\n\n public static releaseAll() {\n for (const item of this.pool) {\n item.inUse = false;\n item.ctx.clearRect(0, 0, item.canvas.width, item.canvas.height);\n }\n }\n\n public static destroy() {\n for (const item of this.pool) {\n item.canvas.width = 0;\n item.canvas.height = 0;\n }\n this.pool = [];\n }\n\n public static getStats() {\n return {\n poolSize: this.pool.length,\n maxPoolSize: this.maxPoolSize,\n inUse: this.pool.filter((item) => item.inUse).length,\n available: this.pool.filter((item) => !item.inUse).length,\n };\n }\n\n public static adjustPoolSize(newSize: number) {\n if (newSize < this.pool.length) {\n // Remove excess canvases\n const toRemove = this.pool.length - newSize;\n const removed = this.pool\n .filter((item) => !item.inUse)\n .slice(0, toRemove);\n\n for (const item of removed) {\n const index = this.pool.indexOf(item);\n if (index > -1) {\n this.pool.splice(index, 1);\n }\n }\n }\n this.maxPoolSize = newSize;\n }\n}", "export function debounce any>(\n func: T,\n wait: number\n): (...args: Parameters) => void {\n let timeout: number | undefined;\n\n return function executedFunction(...args: Parameters) {\n const later = () => {\n clearTimeout(timeout);\n func(...args);\n };\n\n clearTimeout(timeout);\n timeout = window.setTimeout(later, wait);\n };\n}\n\nexport function throttle any>(\n func: T,\n limit: number\n): (...args: Parameters) => void {\n let inThrottle: boolean;\n\n return function executedFunction(...args: Parameters) {\n if (!inThrottle) {\n func.apply(this, args);\n inThrottle = true;\n setTimeout(() => inThrottle = false, limit);\n }\n };\n}\n\nexport function formatFileSize(bytes: number): string {\n if (bytes === 0) return '0 Bytes';\n\n const k = 1024;\n const sizes = ['Bytes', 'KB', 'MB', 'GB'];\n const i = Math.floor(Math.log(bytes) / Math.log(k));\n\n return Math.round(bytes / Math.pow(k, i) * 100) / 100 + ' ' + sizes[i];\n}\n\nexport function isInViewport(element: Element, margin = 0): boolean {\n const rect = element.getBoundingClientRect();\n return (\n rect.top >= -margin &&\n rect.left >= -margin &&\n rect.bottom <= (window.innerHeight || document.documentElement.clientHeight) + margin &&\n rect.right <= (window.innerWidth || document.documentElement.clientWidth) + margin\n );\n}\n\nexport class PerformanceMonitor {\n private static marks = new Map();\n private static measures: Array<{ name: string; duration: number }> = [];\n\n public static mark(name: string) {\n this.marks.set(name, performance.now());\n }\n\n public static measure(name: string, startMark: string) {\n const start = this.marks.get(startMark);\n if (start) {\n const duration = performance.now() - start;\n this.measures.push({ name, duration });\n this.marks.delete(startMark);\n return duration;\n }\n return 0;\n }\n\n public static getReport() {\n const report = {\n measures: [...this.measures],\n averages: {} as Record,\n };\n\n // Calculate averages for repeated measures\n const grouped = new Map();\n for (const measure of this.measures) {\n if (!grouped.has(measure.name)) {\n grouped.set(measure.name, []);\n }\n grouped.get(measure.name)!.push(measure.duration);\n }\n\n for (const [name, durations] of grouped) {\n report.averages[name] = durations.reduce((a, b) => a + b, 0) / durations.length;\n }\n\n return report;\n }\n\n public static clear() {\n this.marks.clear();\n this.measures = [];\n }\n}", "import { css, cssManager } from '@design.estate/dees-element';\n\nexport const tilePdfStyles = css`\n .preview-stack {\n position: relative;\n width: 100%;\n height: 100%;\n display: flex;\n align-items: center;\n justify-content: center;\n box-sizing: border-box;\n overflow: hidden;\n }\n\n .preview-stack.non-a4 {\n padding: 12px;\n }\n\n .preview-canvas {\n position: relative;\n background: white;\n display: block;\n max-width: 100%;\n max-height: 100%;\n width: auto;\n height: auto;\n object-fit: contain;\n image-rendering: auto;\n -webkit-font-smoothing: antialiased;\n box-shadow: 0 1px 3px ${cssManager.bdTheme('rgba(0, 0, 0, 0.1)', 'rgba(0, 0, 0, 0.3)')};\n }\n\n .non-a4 .preview-canvas {\n border: 1px solid ${cssManager.bdTheme('hsl(214 31% 92%)', 'hsl(217 25% 24%)')};\n border-radius: 4px;\n }\n\n /* Grid optimizations */\n :host([grid-mode]) .preview-canvas {\n image-rendering: -webkit-optimize-contrast;\n image-rendering: crisp-edges;\n }\n`;\n", "import { html } from '@design.estate/dees-element';\n\nexport const demo = () => {\n const samplePdfs = [\n 'https://raw.githubusercontent.com/mozilla/pdf.js/ba2edeae/examples/learning/helloworld.pdf',\n 'https://raw.githubusercontent.com/mozilla/pdf.js/ba2edeae/web/compressed.tracemonkey-pldi-09.pdf',\n ];\n\n const generateGridItems = (count: number) => {\n const items = [];\n for (let i = 0; i < count; i++) {\n const pdfUrl = samplePdfs[i % samplePdfs.length];\n items.push(html`\n {\n console.log('PDF Tile clicked:', e.detail);\n alert(`PDF clicked: ${e.detail.pageCount} pages`);\n }}\n >\n `);\n }\n return items;\n };\n\n return html`\n \n\n
      \n
      \n

      Single PDF Tile

      \n \n
      \n\n
      \n

      Different Sizes

      \n
      \n
      Small:
      \n \n
      \n\n
      \n
      Default:
      \n \n
      \n\n
      \n
      Large:
      \n \n
      \n
      \n\n
      \n

      With Label

      \n \n
      \n\n
      \n

      Non-Clickable

      \n \n
      \n\n
      \n

      Grid - 20 PDFs with Lazy Loading

      \n
      \n ${generateGridItems(20)}\n
      \n
      \n
      \n `;\n};\n", "import { property, html, customElement, type TemplateResult, type CSSResult } from '@design.estate/dees-element';\nimport { DeesTileBase } from '../dees-tile-shared/DeesTileBase.js';\nimport { tileBaseStyles } from '../dees-tile-shared/styles.js';\nimport { PdfManager } from '../dees-pdf-shared/PdfManager.js';\nimport { CanvasPool, type PooledCanvas } from '../dees-pdf-shared/CanvasPool.js';\nimport { PerformanceMonitor, throttle } from '../dees-pdf-shared/utils.js';\nimport { tilePdfStyles } from './styles.js';\nimport { demo as demoFunc } from './demo.js';\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'dees-tile-pdf': DeesTilePdf;\n }\n}\n\n@customElement('dees-tile-pdf')\nexport class DeesTilePdf extends DeesTileBase {\n public static demo = demoFunc;\n public static demoGroups = ['Media', 'PDF'];\n public static styles = [...tileBaseStyles, tilePdfStyles] as any;\n\n @property({ type: String })\n accessor pdfUrl: string = '';\n\n @property({ type: Number })\n accessor currentPreviewPage: number = 1;\n\n @property({ type: Number })\n accessor pageCount: number = 0;\n\n @property({ type: Boolean })\n accessor rendered: boolean = false;\n\n @property({ type: Boolean })\n accessor isHovering: boolean = false;\n\n @property({ type: Boolean })\n accessor isA4Format: boolean = true;\n\n private renderPagesTask: Promise | null = null;\n private renderPagesQueued: boolean = false;\n private pdfDocument: any;\n private canvases: PooledCanvas[] = [];\n private resizeObserver?: ResizeObserver;\n private stackElement: HTMLElement | null = null;\n private loadedPdfUrl: string | null = null;\n\n protected renderTileContent(): TemplateResult {\n return html`\n
      \n \n
      \n\n ${this.pageCount > 1 && this.isHovering ? html`\n
      \n Page ${this.currentPreviewPage} of ${this.pageCount}\n
      \n ` : ''}\n\n ${this.pageCount > 0 && !this.isHovering ? html`\n
      \n ${this.pageCount} page${this.pageCount > 1 ? 's' : ''}\n
      \n ` : ''}\n\n ${this.clickable ? html`\n
      \n \n View PDF\n
      \n ` : ''}\n `;\n }\n\n protected getTileClickDetail(): Record {\n return {\n pdfUrl: this.pdfUrl,\n pageCount: this.pageCount,\n };\n }\n\n protected onBecameVisible(): void {\n if (!this.rendered && this.pdfUrl) {\n this.loadAndRenderPreview();\n }\n }\n\n protected onTileMouseEnter(): void {\n this.isHovering = true;\n }\n\n protected onTileMouseLeave(): void {\n this.isHovering = false;\n if (this.currentPreviewPage !== 1) {\n this.currentPreviewPage = 1;\n void this.scheduleRenderPages();\n }\n }\n\n protected onTileMouseMove(e: MouseEvent): void {\n if (!this.isHovering || this.pageCount <= 1) return;\n\n const rect = this.getBoundingClientRect();\n const x = e.clientX - rect.left;\n const width = rect.width;\n\n const percentage = Math.max(0, Math.min(1, x / width));\n const newPage = Math.ceil(percentage * this.pageCount) || 1;\n\n if (newPage !== this.currentPreviewPage) {\n this.currentPreviewPage = newPage;\n void this.scheduleRenderPages();\n }\n }\n\n public async connectedCallback(): Promise {\n await super.connectedCallback();\n await this.updateComplete;\n this.cacheElements();\n this.setupResizeObserver();\n }\n\n public async disconnectedCallback(): Promise {\n await super.disconnectedCallback();\n this.cleanup();\n this.resizeObserver?.disconnect();\n this.resizeObserver = undefined;\n }\n\n private async loadAndRenderPreview(): Promise {\n if (this.rendered || this.loading) return;\n\n this.loading = true;\n this.error = false;\n PerformanceMonitor.mark(`preview-load-${this.pdfUrl}`);\n\n try {\n this.pdfDocument = await PdfManager.loadDocument(this.pdfUrl);\n this.pageCount = this.pdfDocument.numPages;\n this.currentPreviewPage = 1;\n this.loadedPdfUrl = this.pdfUrl;\n\n this.loading = false;\n await this.updateComplete;\n this.cacheElements();\n\n await this.scheduleRenderPages();\n this.rendered = true;\n\n const duration = PerformanceMonitor.measure(`preview-render-${this.pdfUrl}`, `preview-load-${this.pdfUrl}`);\n console.log(`PDF tile rendered in ${duration}ms`);\n } catch (error) {\n console.error('Failed to load PDF tile:', error);\n this.error = true;\n this.loading = false;\n }\n }\n\n private scheduleRenderPages(): Promise {\n if (!this.pdfDocument) {\n return Promise.resolve();\n }\n\n if (this.renderPagesTask) {\n this.renderPagesQueued = true;\n return this.renderPagesTask;\n }\n\n this.renderPagesTask = (async () => {\n try {\n await this.performRenderPages();\n } catch (error) {\n console.error('Failed to render PDF tile pages:', error);\n }\n })().finally(() => {\n this.renderPagesTask = null;\n if (this.renderPagesQueued) {\n this.renderPagesQueued = false;\n void this.scheduleRenderPages();\n }\n });\n\n return this.renderPagesTask;\n }\n\n private async performRenderPages(): Promise {\n if (!this.pdfDocument) return;\n\n await new Promise(resolve => requestAnimationFrame(resolve));\n\n const canvas = this.shadowRoot?.querySelector('.preview-canvas') as HTMLCanvasElement;\n if (!canvas) return;\n\n this.clearCanvases();\n this.cacheElements();\n\n const { availableWidth, availableHeight } = this.getAvailableSize();\n\n try {\n const pageNum = this.currentPreviewPage;\n const page = await this.pdfDocument.getPage(pageNum);\n\n const initialViewport = page.getViewport({ scale: 1 });\n const aspectRatio = initialViewport.height / initialViewport.width;\n\n const a4PortraitRatio = 1.414;\n const a4LandscapeRatio = 0.707;\n const letterPortraitRatio = 1.294;\n const letterLandscapeRatio = 0.773;\n const tolerance = 0.05;\n\n const isA4Portrait = Math.abs(aspectRatio - a4PortraitRatio) < (a4PortraitRatio * tolerance);\n const isA4Landscape = Math.abs(aspectRatio - a4LandscapeRatio) < (a4LandscapeRatio * tolerance);\n const isLetterPortrait = Math.abs(aspectRatio - letterPortraitRatio) < (letterPortraitRatio * tolerance);\n const isLetterLandscape = Math.abs(aspectRatio - letterLandscapeRatio) < (letterLandscapeRatio * tolerance);\n\n this.isA4Format = isA4Portrait || isA4Landscape || isLetterPortrait || isLetterLandscape;\n\n const adjustedWidth = this.isA4Format ? availableWidth : availableWidth - 24;\n const adjustedHeight = this.isA4Format ? availableHeight : availableHeight - 24;\n\n const scaleX = adjustedWidth > 0 ? adjustedWidth / initialViewport.width : 0;\n const scaleY = adjustedHeight > 0 ? adjustedHeight / initialViewport.height : 0;\n const baseScale = Math.min(scaleX || 0.5, scaleY || scaleX || 0.5);\n const renderScale = Math.min(baseScale * 2, 3.0);\n\n if (!Number.isFinite(renderScale) || renderScale <= 0) {\n page.cleanup?.();\n return;\n }\n\n const viewport = page.getViewport({ scale: renderScale });\n\n const pooledCanvas = CanvasPool.acquire(viewport.width, viewport.height);\n this.canvases.push(pooledCanvas);\n\n const renderContext = {\n canvasContext: pooledCanvas.ctx,\n viewport: viewport,\n };\n\n await page.render(renderContext).promise;\n\n canvas.width = viewport.width;\n canvas.height = viewport.height;\n\n const displayWidth = adjustedWidth;\n const displayHeight = (viewport.height / viewport.width) * adjustedWidth;\n\n if (displayHeight > adjustedHeight) {\n const altDisplayHeight = adjustedHeight;\n const altDisplayWidth = (viewport.width / viewport.height) * adjustedHeight;\n canvas.style.width = `${altDisplayWidth}px`;\n canvas.style.height = `${altDisplayHeight}px`;\n } else {\n canvas.style.width = `${displayWidth}px`;\n canvas.style.height = `${displayHeight}px`;\n }\n\n const ctx = canvas.getContext('2d');\n if (ctx) {\n ctx.imageSmoothingEnabled = true;\n ctx.imageSmoothingQuality = 'high';\n ctx.drawImage(pooledCanvas.canvas, 0, 0);\n }\n\n page.cleanup();\n } catch (error) {\n console.error(`Failed to render page ${this.currentPreviewPage}:`, error);\n }\n }\n\n private clearCanvases(): void {\n for (const pooledCanvas of this.canvases) {\n CanvasPool.release(pooledCanvas);\n }\n this.canvases = [];\n }\n\n private cleanup(): void {\n this.clearCanvases();\n\n if (this.pdfDocument) {\n PdfManager.releaseDocument(this.loadedPdfUrl ?? this.pdfUrl);\n this.pdfDocument = null;\n }\n\n this.renderPagesQueued = false;\n this.pageCount = 0;\n this.currentPreviewPage = 1;\n this.isHovering = false;\n this.isA4Format = true;\n this.stackElement = null;\n this.loadedPdfUrl = null;\n this.rendered = false;\n this.loading = false;\n this.error = false;\n }\n\n public async updated(changedProperties: Map): Promise {\n super.updated(changedProperties);\n\n if (changedProperties.has('pdfUrl') && this.pdfUrl) {\n const previousUrl = changedProperties.get('pdfUrl') as string | undefined;\n if (previousUrl) {\n PdfManager.releaseDocument(previousUrl);\n }\n this.cleanup();\n this.rendered = false;\n this.currentPreviewPage = 1;\n\n const rect = this.getBoundingClientRect();\n if (rect.top < window.innerHeight && rect.bottom > 0) {\n this.loadAndRenderPreview();\n }\n }\n\n if (changedProperties.has('currentPreviewPage') && this.rendered) {\n await this.scheduleRenderPages();\n }\n }\n\n public getContextMenuItems(): any[] {\n const items: any[] = [];\n\n if (this.clickable) {\n items.push({\n name: 'View PDF',\n iconName: 'lucide:Eye',\n action: async () => {\n this.dispatchEvent(new CustomEvent('tile-click', {\n detail: this.getTileClickDetail(),\n bubbles: true,\n composed: true,\n }));\n }\n });\n items.push({ divider: true });\n }\n\n items.push(\n {\n name: 'Open PDF in New Tab',\n iconName: 'lucide:ExternalLink',\n action: async () => {\n window.open(this.pdfUrl, '_blank');\n }\n },\n { divider: true },\n {\n name: 'Copy PDF URL',\n iconName: 'lucide:Copy',\n action: async () => {\n await navigator.clipboard.writeText(this.pdfUrl);\n }\n },\n {\n name: 'Download PDF',\n iconName: 'lucide:Download',\n action: async () => {\n const link = document.createElement('a');\n link.href = this.pdfUrl;\n link.download = this.pdfUrl.split('/').pop() || 'document.pdf';\n link.click();\n }\n }\n );\n\n if (this.pageCount > 0) {\n items.push(\n { divider: true },\n {\n name: `${this.pageCount} page${this.pageCount > 1 ? 's' : ''}`,\n iconName: 'lucide:FileText',\n disabled: true,\n action: async () => {}\n }\n );\n }\n\n return items;\n }\n\n private cacheElements(): void {\n if (!this.stackElement) {\n this.stackElement = this.shadowRoot?.querySelector('.preview-stack') as HTMLElement;\n }\n }\n\n private setupResizeObserver(): void {\n if (this.resizeObserver) return;\n\n this.resizeObserver = new ResizeObserver(() => {\n if (this.rendered && this.pdfDocument && !this.loading) {\n void this.scheduleRenderPages();\n }\n });\n\n this.resizeObserver.observe(this);\n }\n\n private getAvailableSize(): { availableWidth: number; availableHeight: number } {\n if (!this.stackElement) {\n this.stackElement = this.shadowRoot?.querySelector('.preview-stack') as HTMLElement;\n }\n\n if (!this.stackElement) {\n return { availableWidth: 200, availableHeight: 260 };\n }\n\n const rect = this.stackElement.getBoundingClientRect();\n const availableWidth = Math.max(rect.width, 0) || 200;\n const availableHeight = Math.max(rect.height, 0) || 260;\n\n return { availableWidth, availableHeight };\n }\n}\n", "import { customElement } from '@design.estate/dees-element';\nimport { DeesTilePdf } from '../dees-tile-pdf/component.js';\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'dees-pdf-preview': DeesPdfPreview;\n }\n}\n\n/**\n * @deprecated Use instead. This component will be removed in a future release.\n */\n@customElement('dees-pdf-preview')\nexport class DeesPdfPreview extends DeesTilePdf {\n public static demoGroups: never[] = []; // Hide from demo catalog\n\n public connectedCallback(): Promise {\n console.warn(\n '[dees-pdf-preview] is deprecated. Use instead. ' +\n 'This component will be removed in a future release.'\n );\n return super.connectedCallback();\n }\n}\n", "export * from './component.js';\n", "export * from './CanvasPool.js';\nexport * from './PdfManager.js';\nexport * from './utils.js';\n", "export * from './component.js';\n", "export { DeesTileBase } from './DeesTileBase.js';\nexport { tileBaseStyles } from './styles.js';\n", "export * from './component.js';\n", "import { html } from '@design.estate/dees-element';\n\nexport const demo = () => html`\n \n\n
      \n
      \n

      Image Tiles

      \n
      \n console.log('Image clicked:', e.detail)}\n >\n\n \n\n \n
      \n
      \n\n
      \n

      Size Variants

      \n
      \n \n\n \n\n \n
      \n
      \n\n
      \n

      Error State (broken URL)

      \n \n
      \n
      \n`;\n", "import {\n property,\n state,\n html,\n customElement,\n css,\n cssManager,\n type TemplateResult,\n type CSSResult,\n} from '@design.estate/dees-element';\nimport { DeesTileBase } from '../dees-tile-shared/DeesTileBase.js';\nimport { tileBaseStyles } from '../dees-tile-shared/styles.js';\nimport { demo } from './demo.js';\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'dees-tile-image': DeesTileImage;\n }\n}\n\n@customElement('dees-tile-image')\nexport class DeesTileImage extends DeesTileBase {\n public static demo = demo;\n public static demoGroups = ['Media'];\n public static styles = [\n ...tileBaseStyles,\n css`\n .image-wrapper {\n position: relative;\n width: 100%;\n height: 100%;\n display: flex;\n align-items: center;\n justify-content: center;\n overflow: hidden;\n background: ${cssManager.bdTheme(\n 'repeating-conic-gradient(#e8e8e8 0% 25%, white 0% 50%) 50% / 16px 16px',\n 'repeating-conic-gradient(hsl(215 20% 18%) 0% 25%, hsl(215 20% 14%) 0% 50%) 50% / 16px 16px'\n )};\n }\n\n .image-wrapper img {\n width: 100%;\n height: 100%;\n object-fit: cover;\n display: block;\n transition: opacity 0.3s ease;\n }\n\n .image-wrapper img.loaded {\n opacity: 1;\n }\n\n .image-wrapper img.loading {\n opacity: 0;\n }\n\n .tile-badge-topright.dimension-badge {\n opacity: 0;\n transition: opacity 0.2s ease;\n }\n\n .tile-container.clickable:hover .tile-badge-topright.dimension-badge {\n opacity: 1;\n }\n `,\n ] as any;\n\n @property({ type: String })\n accessor src: string = '';\n\n @property({ type: String })\n accessor alt: string = '';\n\n @state()\n accessor imageLoaded: boolean = false;\n\n @state()\n accessor imageWidth: number = 0;\n\n @state()\n accessor imageHeight: number = 0;\n\n private hasStartedLoading: boolean = false;\n\n protected renderTileContent(): TemplateResult {\n return html`\n
      \n ${this.hasStartedLoading ? html`\n \n ` : ''}\n
      \n\n ${this.imageWidth > 0 && this.imageHeight > 0 ? html`\n
      \n ${this.imageWidth} \u00D7 ${this.imageHeight}\n
      \n ` : ''}\n\n ${this.imageLoaded ? html`\n
      \n \n ${this.imageWidth} \u00D7 ${this.imageHeight}\n
      \n ` : ''}\n\n ${this.clickable ? html`\n
      \n \n View Image\n
      \n ` : ''}\n `;\n }\n\n protected getTileClickDetail(): Record {\n return {\n src: this.src,\n alt: this.alt,\n width: this.imageWidth,\n height: this.imageHeight,\n };\n }\n\n protected onBecameVisible(): void {\n if (!this.hasStartedLoading && this.src) {\n this.hasStartedLoading = true;\n this.loading = true;\n this.requestUpdate();\n }\n }\n\n private handleImageLoad(e: Event): void {\n const img = e.target as HTMLImageElement;\n this.imageWidth = img.naturalWidth;\n this.imageHeight = img.naturalHeight;\n this.imageLoaded = true;\n this.loading = false;\n }\n\n private handleImageError(): void {\n this.error = true;\n this.loading = false;\n }\n\n public async updated(changedProperties: Map): Promise {\n super.updated(changedProperties);\n if (changedProperties.has('src') && this.src && this.isVisible) {\n this.hasStartedLoading = true;\n this.imageLoaded = false;\n this.loading = true;\n }\n }\n}\n", "export * from './component.js';\n", "import { html } from '@design.estate/dees-element';\n\nexport const demo = () => html`\n \n\n
      \n
      \n

      Audio Tiles

      \n
      \n console.log('Audio clicked:', e.detail)}\n >\n\n \n\n \n
      \n
      \n\n
      \n

      Size Variants

      \n
      \n \n\n \n\n \n
      \n
      \n
      \n`;\n", "import {\n property,\n state,\n html,\n customElement,\n css,\n cssManager,\n type TemplateResult,\n type CSSResult,\n} from '@design.estate/dees-element';\nimport { DeesTileBase } from '../dees-tile-shared/DeesTileBase.js';\nimport { tileBaseStyles } from '../dees-tile-shared/styles.js';\nimport { demo } from './demo.js';\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'dees-tile-audio': DeesTileAudio;\n }\n}\n\n@customElement('dees-tile-audio')\nexport class DeesTileAudio extends DeesTileBase {\n public static demo = demo;\n public static demoGroups = ['Media'];\n public static styles = [\n ...tileBaseStyles,\n css`\n .audio-content {\n position: relative;\n width: 100%;\n height: 100%;\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n gap: 16px;\n background: ${cssManager.bdTheme(\n 'linear-gradient(135deg, hsl(250 40% 96%), hsl(280 30% 94%))',\n 'linear-gradient(135deg, hsl(250 30% 16%), hsl(280 25% 14%))'\n )};\n }\n\n .music-icon {\n font-size: 48px;\n color: ${cssManager.bdTheme('hsl(250 60% 65%)', 'hsl(250 60% 70%)')};\n opacity: 0.8;\n }\n\n .audio-title {\n font-size: 12px;\n font-weight: 600;\n color: ${cssManager.bdTheme('hsl(250 20% 35%)', 'hsl(250 20% 80%)')};\n text-align: center;\n padding: 0 16px;\n max-width: 100%;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n }\n\n .audio-artist {\n font-size: 11px;\n font-weight: 400;\n color: ${cssManager.bdTheme('hsl(250 15% 50%)', 'hsl(250 15% 65%)')};\n text-align: center;\n padding: 0 16px;\n margin-top: -12px;\n max-width: 100%;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n }\n\n .waveform-container {\n width: calc(100% - 32px);\n height: 40px;\n position: relative;\n overflow: hidden;\n }\n\n .waveform-container canvas {\n width: 100%;\n height: 100%;\n display: block;\n }\n\n\n .play-overlay {\n position: absolute;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n display: flex;\n align-items: center;\n justify-content: center;\n opacity: 0;\n transition: opacity 0.2s ease;\n z-index: 18;\n pointer-events: none;\n }\n\n .tile-container.clickable:hover .play-overlay {\n opacity: 1;\n }\n\n .play-circle {\n width: 48px;\n height: 48px;\n border-radius: 50%;\n background: rgba(0, 0, 0, 0.6);\n display: flex;\n align-items: center;\n justify-content: center;\n backdrop-filter: blur(8px);\n }\n\n .play-circle dees-icon {\n font-size: 20px;\n color: white;\n }\n `,\n ] as any;\n\n @property({ type: String })\n accessor src: string = '';\n\n @property({ type: String })\n accessor title: string = '';\n\n @property({ type: String })\n accessor artist: string = '';\n\n @state()\n accessor duration: number = 0;\n\n @state()\n accessor waveformData: number[] = [];\n\n @state()\n accessor waveformReady: boolean = false;\n\n @state()\n accessor isPreviewPlaying: boolean = false;\n\n private audioElement: HTMLAudioElement | null = null;\n private previewTimeout: ReturnType | null = null;\n private hasLoadedWaveform: boolean = false;\n\n protected renderTileContent(): TemplateResult {\n return html`\n
      \n \n\n ${this.title ? html`
      ${this.title}
      ` : ''}\n ${this.artist ? html`
      ${this.artist}
      ` : ''}\n\n ${this.waveformReady ? html`\n
      \n \n
      \n ` : ''}\n
      \n\n ${this.duration > 0 ? html`\n
      ${this.formatTime(this.duration)}
      \n ` : ''}\n\n
      \n
      \n \n
      \n
      \n\n ${this.clickable ? html`\n
      \n \n Play Audio\n
      \n ` : ''}\n `;\n }\n\n protected getTileClickDetail(): Record {\n return {\n src: this.src,\n title: this.title,\n artist: this.artist,\n duration: this.duration,\n };\n }\n\n protected onBecameVisible(): void {\n if (!this.hasLoadedWaveform && this.src) {\n this.hasLoadedWaveform = true;\n this.loadAudioMeta();\n }\n }\n\n private async loadAudioMeta(): Promise {\n this.loading = true;\n\n try {\n // Load duration via Audio element\n const audio = new Audio();\n audio.crossOrigin = 'anonymous';\n audio.preload = 'metadata';\n\n await new Promise((resolve, reject) => {\n audio.addEventListener('loadedmetadata', () => {\n this.duration = audio.duration;\n resolve();\n }, { once: true });\n audio.addEventListener('error', () => reject(new Error('Failed to load audio')), { once: true });\n audio.src = this.src;\n });\n\n // Load waveform data\n await this.loadWaveform();\n this.loading = false;\n } catch {\n this.loading = false;\n // Don't set error - audio may still be playable, just no waveform\n }\n }\n\n private async loadWaveform(): Promise {\n try {\n const response = await fetch(this.src);\n const arrayBuffer = await response.arrayBuffer();\n const audioContext = new AudioContext();\n const audioBuffer = await audioContext.decodeAudioData(arrayBuffer);\n\n const channelData = audioBuffer.getChannelData(0);\n const bars = 80;\n const blockSize = Math.floor(channelData.length / bars);\n const waveform: number[] = [];\n\n for (let i = 0; i < bars; i++) {\n let sum = 0;\n for (let j = 0; j < blockSize; j++) {\n sum += Math.abs(channelData[i * blockSize + j]);\n }\n waveform.push(sum / blockSize);\n }\n\n const max = Math.max(...waveform);\n this.waveformData = waveform.map((v) => (max > 0 ? v / max : 0));\n this.waveformReady = true;\n\n await audioContext.close();\n await this.updateComplete;\n this.drawWaveform();\n } catch {\n this.waveformReady = false;\n }\n }\n\n private drawWaveform(): void {\n if (!this.waveformReady) return;\n\n const canvas = this.shadowRoot?.querySelector('.waveform-container canvas') as HTMLCanvasElement;\n if (!canvas) return;\n\n const container = canvas.parentElement!;\n const dpr = window.devicePixelRatio || 1;\n const width = container.clientWidth;\n const height = container.clientHeight;\n\n canvas.width = width * dpr;\n canvas.height = height * dpr;\n\n const ctx = canvas.getContext('2d');\n if (!ctx) return;\n\n ctx.scale(dpr, dpr);\n ctx.clearRect(0, 0, width, height);\n\n const bars = this.waveformData.length;\n if (bars === 0) return;\n\n const barWidth = width / bars;\n\n const isDark = document.body.classList.contains('theme-dark') ||\n window.matchMedia('(prefers-color-scheme: dark)').matches;\n const barColor = isDark ? 'hsl(250 50% 60%)' : 'hsl(250 50% 70%)';\n\n ctx.fillStyle = barColor;\n for (let i = 0; i < bars; i++) {\n const amplitude = this.waveformData[i];\n const barHeight = Math.max(2, amplitude * (height - 4));\n const x = i * barWidth;\n const y = (height - barHeight) / 2;\n ctx.fillRect(x + 0.5, y, barWidth - 1, barHeight);\n }\n }\n\n public async updated(changedProperties: Map): Promise {\n super.updated(changedProperties);\n if (changedProperties.has('src') && this.src && this.isVisible) {\n this.hasLoadedWaveform = true;\n this.waveformReady = false;\n this.duration = 0;\n this.loadAudioMeta();\n }\n if (changedProperties.has('waveformReady') && this.waveformReady) {\n await this.updateComplete;\n this.drawWaveform();\n }\n }\n\n public async disconnectedCallback(): Promise {\n await super.disconnectedCallback();\n if (this.previewTimeout) {\n clearTimeout(this.previewTimeout);\n }\n if (this.audioElement) {\n this.audioElement.pause();\n this.audioElement.src = '';\n this.audioElement = null;\n }\n }\n\n private formatTime(seconds: number): string {\n if (!isFinite(seconds) || seconds < 0) return '0:00';\n const mins = Math.floor(seconds / 60);\n const secs = Math.floor(seconds % 60);\n return `${mins}:${secs.toString().padStart(2, '0')}`;\n }\n}\n", "export * from './component.js';\n", "import { html } from '@design.estate/dees-element';\n\nexport const demo = () => html`\n \n\n
      \n
      \n

      Video Tiles

      \n
      \n console.log('Video clicked:', e.detail)}\n >\n\n \n\n \n
      \n
      \n\n
      \n

      Size Variants

      \n
      \n \n\n \n\n \n
      \n
      \n\n
      \n

      With Poster Image

      \n \n
      \n
      \n`;\n", "import {\n property,\n state,\n html,\n customElement,\n css,\n cssManager,\n type TemplateResult,\n type CSSResult,\n} from '@design.estate/dees-element';\nimport { DeesTileBase } from '../dees-tile-shared/DeesTileBase.js';\nimport { tileBaseStyles } from '../dees-tile-shared/styles.js';\nimport { demo } from './demo.js';\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'dees-tile-video': DeesTileVideo;\n }\n}\n\n@customElement('dees-tile-video')\nexport class DeesTileVideo extends DeesTileBase {\n public static demo = demo;\n public static demoGroups = ['Media'];\n public static styles = [\n ...tileBaseStyles,\n css`\n .video-wrapper {\n position: relative;\n width: 100%;\n height: 100%;\n overflow: hidden;\n background: #000;\n }\n\n .video-wrapper video {\n width: 100%;\n height: 100%;\n object-fit: cover;\n display: block;\n }\n\n .video-wrapper canvas {\n width: 100%;\n height: 100%;\n object-fit: cover;\n display: block;\n }\n\n .poster-image {\n width: 100%;\n height: 100%;\n object-fit: cover;\n display: block;\n }\n\n\n .play-overlay {\n position: absolute;\n top: 50%;\n left: 50%;\n transform: translate(-50%, -50%);\n width: 48px;\n height: 48px;\n border-radius: 50%;\n background: rgba(0, 0, 0, 0.6);\n display: flex;\n align-items: center;\n justify-content: center;\n z-index: 15;\n pointer-events: none;\n transition: opacity 0.2s ease;\n }\n\n .play-overlay dees-icon {\n font-size: 20px;\n color: white;\n }\n\n .tile-container.clickable:hover .play-overlay {\n opacity: 0;\n }\n\n .video-hover-preview {\n position: absolute;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n object-fit: cover;\n z-index: 5;\n opacity: 0;\n transition: opacity 0.3s ease;\n }\n\n .video-hover-preview.active {\n opacity: 1;\n }\n `,\n ] as any;\n\n @property({ type: String })\n accessor src: string = '';\n\n @property({ type: String })\n accessor poster: string = '';\n\n @state()\n accessor duration: number = 0;\n\n @state()\n accessor thumbnailCaptured: boolean = false;\n\n @state()\n accessor isHovering: boolean = false;\n\n private thumbnailCanvas: HTMLCanvasElement | null = null;\n private hoverVideo: HTMLVideoElement | null = null;\n private hasStartedLoading: boolean = false;\n\n protected renderTileContent(): TemplateResult {\n return html`\n
      \n ${this.poster ? html`\n \"\"\n ` : this.thumbnailCaptured ? html`\n \n ` : html`\n
      \n `}\n\n ${this.isHovering && this.src ? html`\n \n ` : ''}\n
      \n\n ${this.duration > 0 ? html`\n
      ${this.formatTime(this.duration)}
      \n ` : ''}\n\n ${!this.isHovering ? html`\n
      \n \n
      \n ` : ''}\n\n ${this.clickable ? html`\n
      \n \n Play Video\n
      \n ` : ''}\n `;\n }\n\n protected getTileClickDetail(): Record {\n return {\n src: this.src,\n poster: this.poster,\n duration: this.duration,\n };\n }\n\n protected onBecameVisible(): void {\n if (!this.hasStartedLoading && this.src) {\n this.hasStartedLoading = true;\n this.captureFirstFrame();\n }\n }\n\n private async captureFirstFrame(): Promise {\n if (this.poster) {\n // If poster is provided, just load duration\n this.loadDuration();\n return;\n }\n\n this.loading = true;\n\n try {\n const video = document.createElement('video');\n video.crossOrigin = 'anonymous';\n video.muted = true;\n video.preload = 'metadata';\n\n await new Promise((resolve, reject) => {\n video.addEventListener('loadeddata', () => {\n this.duration = video.duration;\n\n // Capture the first frame\n video.currentTime = 0.1; // Slightly after start for better frame\n video.addEventListener('seeked', () => {\n const canvas = document.createElement('canvas');\n canvas.width = video.videoWidth;\n canvas.height = video.videoHeight;\n const ctx = canvas.getContext('2d');\n if (ctx) {\n ctx.drawImage(video, 0, 0);\n this.thumbnailCanvas = canvas;\n this.thumbnailCaptured = true;\n }\n\n // Clean up\n video.src = '';\n video.load();\n resolve();\n }, { once: true });\n }, { once: true });\n\n video.addEventListener('error', () => reject(new Error('Failed to load video')), { once: true });\n video.src = this.src;\n });\n\n this.loading = false;\n\n // Copy thumbnail to shadow DOM canvas\n await this.updateComplete;\n this.copyThumbnailToCanvas();\n } catch {\n this.loading = false;\n // Don't set error for thumbnail failure\n this.loadDuration();\n }\n }\n\n private loadDuration(): void {\n const video = document.createElement('video');\n video.preload = 'metadata';\n video.addEventListener('loadedmetadata', () => {\n this.duration = video.duration;\n video.src = '';\n video.load();\n });\n video.src = this.src;\n }\n\n private copyThumbnailToCanvas(): void {\n if (!this.thumbnailCanvas) return;\n const canvas = this.shadowRoot?.querySelector('.video-wrapper canvas') as HTMLCanvasElement;\n if (!canvas) return;\n\n canvas.width = this.thumbnailCanvas.width;\n canvas.height = this.thumbnailCanvas.height;\n const ctx = canvas.getContext('2d');\n if (ctx) {\n ctx.drawImage(this.thumbnailCanvas, 0, 0);\n }\n }\n\n protected onTileMouseEnter(): void {\n this.isHovering = true;\n }\n\n protected onTileMouseLeave(): void {\n this.isHovering = false;\n // The video element will be removed from DOM by the template\n this.hoverVideo = null;\n }\n\n private handleHoverVideoLoaded(e: Event): void {\n this.hoverVideo = e.target as HTMLVideoElement;\n this.hoverVideo.play().catch(() => {\n // Autoplay may be blocked\n });\n }\n\n public async updated(changedProperties: Map): Promise {\n super.updated(changedProperties);\n if (changedProperties.has('src') && this.src && this.isVisible) {\n this.hasStartedLoading = true;\n this.thumbnailCaptured = false;\n this.duration = 0;\n this.captureFirstFrame();\n }\n if (changedProperties.has('thumbnailCaptured') && this.thumbnailCaptured) {\n await this.updateComplete;\n this.copyThumbnailToCanvas();\n }\n }\n\n public async disconnectedCallback(): Promise {\n await super.disconnectedCallback();\n if (this.hoverVideo) {\n this.hoverVideo.pause();\n this.hoverVideo.src = '';\n this.hoverVideo = null;\n }\n this.thumbnailCanvas = null;\n }\n\n private formatTime(seconds: number): string {\n if (!isFinite(seconds) || seconds < 0) return '0:00';\n const mins = Math.floor(seconds / 60);\n const secs = Math.floor(seconds % 60);\n return `${mins}:${secs.toString().padStart(2, '0')}`;\n }\n}\n", "export * from './component.js';\n", "import { html } from '@design.estate/dees-element';\n\nexport const demo = () => {\n const sampleCode = `import { html } from 'lit';\n\nexport class MyComponent {\n private items: string[] = [];\n\n render() {\n return html\\`\n
      \n \\${this.items.map(item => html\\`\n \\${item}\n \\`)}\n
      \n \\`;\n }\n}`;\n\n const sampleText = `Meeting Notes - Q4 Planning\nDate: January 15, 2026\nAttendees: Alice, Bob, Charlie\n\nKey Decisions:\n1. Launch new feature by March\n2. Hire 2 more engineers\n3. Migrate to new CI/CD pipeline\n4. Update design system to v3\n\nAction Items:\n- Alice: Draft PRD by next week\n- Bob: Set up interview pipeline\n- Charlie: Evaluate Jenkins vs GitHub Actions`;\n\n const sampleJson = `{\n \"name\": \"@design.estate/dees-catalog\",\n \"version\": \"3.38.0\",\n \"description\": \"Design component catalog\",\n \"dependencies\": {\n \"@design.estate/dees-element\": \"^2.0.0\",\n \"lit\": \"^3.1.0\"\n },\n \"scripts\": {\n \"build\": \"tsbuild\",\n \"test\": \"tstest\"\n }\n}`;\n\n return html`\n \n\n
      \n
      \n

      Note Tiles

      \n
      \n console.log('Note clicked:', e.detail)}\n >\n\n \n\n \n
      \n
      \n\n
      \n

      Size Variants

      \n
      \n \n\n \n\n \n
      \n
      \n\n
      \n

      Without Title

      \n \n
      \n
      \n `;\n};\n", "import {\n property,\n state,\n html,\n customElement,\n css,\n cssManager,\n type TemplateResult,\n type CSSResult,\n} from '@design.estate/dees-element';\nimport { DeesTileBase } from '../dees-tile-shared/DeesTileBase.js';\nimport { tileBaseStyles } from '../dees-tile-shared/styles.js';\nimport { demo } from './demo.js';\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'dees-tile-note': DeesTileNote;\n }\n}\n\n@customElement('dees-tile-note')\nexport class DeesTileNote extends DeesTileBase {\n public static demo = demo;\n public static demoGroups = ['Media'];\n public static styles = [\n ...tileBaseStyles,\n css`\n .note-content {\n position: relative;\n width: 100%;\n height: 100%;\n display: flex;\n flex-direction: column;\n background: ${cssManager.bdTheme('#ffffff', 'hsl(60 5% 96%)')};\n overflow: hidden;\n }\n\n .note-header {\n padding: 12px 14px 8px;\n flex-shrink: 0;\n }\n\n .note-title {\n font-size: 12px;\n font-weight: 700;\n color: ${cssManager.bdTheme('hsl(215 20% 20%)', 'hsl(215 20% 20%)')};\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n line-height: 1.3;\n }\n\n .note-body {\n flex: 1;\n padding: 0 14px 14px;\n position: relative;\n overflow: hidden;\n }\n\n .note-text {\n font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;\n font-size: 10px;\n line-height: 1.5;\n color: ${cssManager.bdTheme('hsl(215 10% 40%)', 'hsl(215 10% 35%)')};\n white-space: pre-wrap;\n word-wrap: break-word;\n overflow: hidden;\n margin: 0;\n }\n\n .note-fade {\n position: absolute;\n bottom: 0;\n left: 0;\n right: 0;\n height: 60px;\n background: linear-gradient(\n transparent,\n ${cssManager.bdTheme('#ffffff', 'hsl(60 5% 96%)')}\n );\n pointer-events: none;\n }\n\n .tile-badge-topright.note-language {\n background: ${cssManager.bdTheme('hsl(215 20% 92%)', 'hsl(215 20% 88%)')};\n color: ${cssManager.bdTheme('hsl(215 16% 50%)', 'hsl(215 16% 40%)')};\n font-size: 9px;\n text-transform: uppercase;\n z-index: 5;\n }\n\n .note-lines {\n position: absolute;\n top: 0;\n left: 0;\n bottom: 0;\n width: 34px;\n border-right: 1px solid ${cssManager.bdTheme('hsl(0 70% 85%)', 'hsl(0 50% 80%)')};\n display: flex;\n flex-direction: column;\n padding-top: 12px;\n }\n\n .line-number {\n font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;\n font-size: 9px;\n line-height: 15px; /* matches 10px * 1.5 line-height */\n color: ${cssManager.bdTheme('hsl(215 10% 75%)', 'hsl(215 10% 70%)')};\n text-align: right;\n padding-right: 6px;\n }\n\n `,\n ] as any;\n\n @property({ type: String })\n accessor title: string = '';\n\n @property({ type: String })\n accessor content: string = '';\n\n @property({ type: String })\n accessor language: string = '';\n\n @state()\n accessor isHovering: boolean = false;\n\n private noteBodyElement: HTMLElement | null = null;\n\n protected renderTileContent(): TemplateResult {\n const lines = this.content.split('\\n');\n\n return html`\n
      \n ${this.language ? html`\n
      ${this.language}
      \n ` : ''}\n\n ${this.title ? html`\n
      \n
      ${this.title}
      \n
      \n ` : ''}\n\n
      \n
      ${lines.join('\\n')}
      \n ${!this.isHovering ? html`
      ` : ''}\n
      \n\n ${this.isHovering && lines.length > 12 ? html`\n
      \n Line ${this.getVisibleLineRange(lines.length)}\n
      \n ` : ''}\n
      \n\n ${this.clickable ? html`\n
      \n \n Open Note\n
      \n ` : ''}\n `;\n }\n\n protected getTileClickDetail(): Record {\n return {\n title: this.title,\n content: this.content,\n language: this.language,\n };\n }\n\n protected onTileMouseEnter(): void {\n this.isHovering = true;\n if (!this.noteBodyElement) {\n this.noteBodyElement = this.shadowRoot?.querySelector('.note-body') as HTMLElement;\n }\n }\n\n protected onTileMouseLeave(): void {\n this.isHovering = false;\n if (this.noteBodyElement) {\n this.noteBodyElement.scrollTop = 0;\n }\n }\n\n protected onTileMouseMove(e: MouseEvent): void {\n if (!this.isHovering || !this.noteBodyElement) return;\n\n const totalLines = this.content.split('\\n').length;\n if (totalLines <= 12) return;\n\n const rect = this.getBoundingClientRect();\n const x = e.clientX - rect.left;\n const percentage = Math.max(0, Math.min(1, x / rect.width));\n\n const maxScroll = this.noteBodyElement.scrollHeight - this.noteBodyElement.clientHeight;\n this.noteBodyElement.scrollTop = percentage * maxScroll;\n }\n\n private getVisibleLineRange(totalLines: number): string {\n if (!this.noteBodyElement) return `1\u201312 of ${totalLines}`;\n const lineHeight = 15; // 10px font \u00D7 1.5 line-height\n const firstLine = Math.floor(this.noteBodyElement.scrollTop / lineHeight) + 1;\n const visibleCount = Math.floor(this.noteBodyElement.clientHeight / lineHeight);\n const lastLine = Math.min(firstLine + visibleCount - 1, totalLines);\n return `${firstLine}\u2013${lastLine} of ${totalLines}`;\n }\n}\n", "export * from './component.js';\n", "import { html } from '@design.estate/dees-element';\nimport type { ITileFolderItem } from './component.js';\n\nexport const demo = () => {\n const photosFolder: ITileFolderItem[] = [\n { type: 'image', name: 'sunset.jpg', thumbnailSrc: 'https://picsum.photos/200/200?random=1' },\n { type: 'image', name: 'mountain.jpg', thumbnailSrc: 'https://picsum.photos/200/200?random=2' },\n { type: 'image', name: 'ocean.jpg', thumbnailSrc: 'https://picsum.photos/200/200?random=3' },\n { type: 'image', name: 'forest.jpg', thumbnailSrc: 'https://picsum.photos/200/200?random=4' },\n { type: 'image', name: 'city.jpg', thumbnailSrc: 'https://picsum.photos/200/200?random=5' },\n { type: 'image', name: 'desert.jpg', thumbnailSrc: 'https://picsum.photos/200/200?random=6' },\n ];\n\n const projectFolder: ITileFolderItem[] = [\n { type: 'note', name: 'README.md' },\n { type: 'note', name: 'package.json' },\n { type: 'folder', name: 'src' },\n { type: 'folder', name: 'test' },\n { type: 'note', name: 'tsconfig.json' },\n { type: 'pdf', name: 'docs.pdf' },\n { type: 'image', name: 'logo.png', thumbnailSrc: 'https://picsum.photos/100/100?random=10' },\n ];\n\n const mediaFolder: ITileFolderItem[] = [\n { type: 'video', name: 'intro.mp4' },\n { type: 'audio', name: 'background.mp3' },\n { type: 'image', name: 'thumbnail.jpg', thumbnailSrc: 'https://picsum.photos/200/200?random=20' },\n { type: 'pdf', name: 'storyboard.pdf' },\n ];\n\n const emptyFolder: ITileFolderItem[] = [];\n\n const singleItemFolder: ITileFolderItem[] = [\n { type: 'pdf', name: 'report.pdf' },\n ];\n\n return html`\n \n\n
      \n
      \n

      Folder Tiles

      \n
      \n console.log('Folder clicked:', e.detail)}\n >\n\n \n\n \n
      \n
      \n\n
      \n

      Edge Cases

      \n
      \n \n\n \n
      \n
      \n\n
      \n

      Size Variants

      \n
      \n \n\n \n\n \n
      \n
      \n
      \n `;\n};\n", "import {\n property,\n html,\n customElement,\n css,\n cssManager,\n type TemplateResult,\n type CSSResult,\n} from '@design.estate/dees-element';\nimport { DeesTileBase } from '../dees-tile-shared/DeesTileBase.js';\nimport { tileBaseStyles } from '../dees-tile-shared/styles.js';\nimport { demo } from './demo.js';\n\nexport interface ITileFolderItem {\n type: 'pdf' | 'image' | 'audio' | 'video' | 'note' | 'folder' | 'unknown';\n thumbnailSrc?: string;\n name: string;\n}\n\nconst TYPE_ICON_MAP: Record = {\n pdf: 'lucide:FileText',\n image: 'lucide:Image',\n audio: 'lucide:Music',\n video: 'lucide:Video',\n note: 'lucide:FileCode',\n folder: 'lucide:Folder',\n unknown: 'lucide:File',\n};\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'dees-tile-folder': DeesTileFolder;\n }\n}\n\n@customElement('dees-tile-folder')\nexport class DeesTileFolder extends DeesTileBase {\n public static demo = demo;\n public static demoGroups = ['Media'];\n public static styles = [\n ...tileBaseStyles,\n css`\n .folder-content {\n position: relative;\n width: 100%;\n height: 100%;\n display: flex;\n flex-direction: column;\n background: ${cssManager.bdTheme('hsl(40 30% 97%)', 'hsl(215 20% 14%)')};\n overflow: hidden;\n }\n\n .folder-header {\n display: flex;\n align-items: center;\n gap: 8px;\n padding: 12px 14px 8px;\n flex-shrink: 0;\n }\n\n .folder-icon {\n font-size: 18px;\n color: ${cssManager.bdTheme('hsl(40 80% 50%)', 'hsl(40 70% 60%)')};\n }\n\n .folder-name {\n font-size: 12px;\n font-weight: 700;\n color: ${cssManager.bdTheme('hsl(215 20% 20%)', 'hsl(215 16% 80%)')};\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n flex: 1;\n }\n\n .preview-grid {\n flex: 1;\n display: grid;\n grid-template-columns: 1fr 1fr;\n grid-template-rows: 1fr 1fr;\n gap: 4px;\n padding: 0 14px 14px;\n min-height: 0;\n }\n\n .grid-cell {\n display: flex;\n align-items: center;\n justify-content: center;\n border-radius: 4px;\n overflow: hidden;\n background: ${cssManager.bdTheme('hsl(215 20% 94%)', 'hsl(215 20% 18%)')};\n position: relative;\n }\n\n .grid-cell img {\n width: 100%;\n height: 100%;\n object-fit: cover;\n display: block;\n }\n\n .grid-cell dees-icon {\n font-size: 20px;\n color: ${cssManager.bdTheme('hsl(215 16% 60%)', 'hsl(215 16% 55%)')};\n }\n\n .grid-cell-empty {\n background: ${cssManager.bdTheme('hsl(215 15% 96%)', 'hsl(215 20% 16%)')};\n }\n\n `,\n ] as any;\n\n @property({ type: String })\n accessor name: string = '';\n\n @property({ attribute: false })\n accessor items: ITileFolderItem[] = [];\n\n protected renderTileContent(): TemplateResult {\n const previewItems = this.items.slice(0, 4);\n const emptyCells = 4 - previewItems.length;\n\n return html`\n
      \n
      \n \n
      ${this.name || 'Untitled Folder'}
      \n
      \n\n
      \n ${previewItems.map((item) => html`\n
      \n ${item.thumbnailSrc ? html`\n \"${item.name}\"\n ` : html`\n \n `}\n
      \n `)}\n ${Array.from({ length: emptyCells }).map(() => html`\n
      \n `)}\n
      \n
      \n\n
      \n ${this.items.length} item${this.items.length !== 1 ? 's' : ''}\n
      \n\n ${this.clickable ? html`\n
      \n \n Open Folder\n
      \n ` : ''}\n `;\n }\n\n protected getTileClickDetail(): Record {\n return {\n name: this.name,\n itemCount: this.items.length,\n items: this.items,\n };\n }\n}\n", "export * from './component.js';\n", "// Media Viewer Components\nexport * from './dees-image-viewer/index.js';\nexport * from './dees-audio-viewer/index.js';\nexport * from './dees-video-viewer/index.js';\nexport * from './dees-preview/index.js';\n\n// PDF Components\nexport * from './dees-pdf/index.js'; // @deprecated - Use dees-pdf-viewer or dees-tile-pdf instead\nexport * from './dees-pdf-preview/index.js'; // @deprecated - Use dees-tile-pdf instead\nexport * from './dees-pdf-shared/index.js';\nexport * from './dees-pdf-viewer/index.js';\n\n// Tile Components\nexport * from './dees-tile-shared/index.js';\nexport * from './dees-tile-pdf/index.js';\nexport * from './dees-tile-image/index.js';\nexport * from './dees-tile-audio/index.js';\nexport * from './dees-tile-video/index.js';\nexport * from './dees-tile-note/index.js';\nexport * from './dees-tile-folder/index.js';\n", "export * from './dees-contextmenu.js';\n", "export * from './dees-modal.js';\n", "import { html, cssManager } from '@design.estate/dees-element';\n\nexport const demoFunc = () => {\n return html`\n \n
      \n \n `;\n};", "import * as colors from '../../00colors.js';\nimport * as plugins from '../../00plugins.js';\n\nimport { demoFunc } from './dees-speechbubble.demo.js';\nimport {\n customElement,\n html,\n DeesElement,\n property,\n type TemplateResult,\n cssManager,\n css,\n type CSSResult,\n unsafeCSS,\n domtools,\n directives,\n unsafeHTML,\n} from '@design.estate/dees-element';\nimport { DeesWindowLayer } from '../dees-windowlayer/dees-windowlayer.js';\nimport { themeDefaultStyles } from '../../00theme.js';\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'dees-speechbubble': DeesSpeechbubble;\n }\n}\n\n@customElement('dees-speechbubble')\nexport class DeesSpeechbubble extends DeesElement {\n public static demo = demoFunc;\n public static demoGroups = ['Overlay'];\n\n // STATIC\n public static async createAndShow(refElement: HTMLElement, textArg: string) {\n const windowLayer = await DeesWindowLayer.createAndShow({\n blur: false,\n });\n const speechbubble = document.createElement('dees-speechbubble');\n speechbubble.windowLayer = windowLayer;\n speechbubble.reffedElement = refElement;\n speechbubble.text = textArg;\n speechbubble.manifested = true;\n windowLayer.appendChild(speechbubble);\n windowLayer.style.pointerEvents = 'none';\n (windowLayer.shadowRoot.querySelector('.windowOverlay') as HTMLElement).style.pointerEvents = 'none';\n return speechbubble;\n }\n\n // INSTANCE\n @property({\n type: Object,\n })\n accessor reffedElement: HTMLElement;\n\n @property({\n type: String,\n reflect: true,\n })\n accessor text: string;\n\n @property({\n type: Boolean,\n })\n accessor wave: boolean = false;\n\n @property({\n type: Boolean,\n })\n accessor manifested = false;\n\n @property({\n type: String,\n })\n accessor status: 'normal' | 'pending' | 'success' | 'error' = 'normal';\n\n public windowLayer: DeesWindowLayer;\n\n constructor() {\n super();\n }\n\n public static styles = [\n themeDefaultStyles,\n cssManager.defaultStyles,\n css`\n /* TODO: Migrate hardcoded values to --dees-* CSS variables */\n :host {\n box-sizing: border-box;\n color: ${cssManager.bdTheme('#333', '#fff')};\n user-select: none;\n }\n\n .maincontainer {\n position: relative;\n will-change: transform;\n transition: transform 0.2s;\n transform: translateX(0px);\n transition: all 0.2s;\n margin-left: 0px;\n filter: drop-shadow(0px 0px 2px rgba(0, 0, 0, 0.2));\n pointer-events: none;\n opacity: 0;\n transition: all 0.2s;\n }\n\n .arrow {\n position: absolute;\n transform: rotate(45deg);\n background: ${cssManager.bdTheme('#fff', '#333')};\n height: 15px;\n width: 15px;\n left: 2px;\n top: 12px;\n border-radius: 3px;\n }\n\n .speechbubble {\n background: ${cssManager.bdTheme('#fff', '#333')};\n padding: 0px 16px;\n border-radius: 3px;\n position: absolute;\n min-width: 240px;\n font-size: 12px;\n top: 0px;\n left: 8px;\n }\n\n .wave {\n animation-name: wave-animation; /* Refers to the name of your @keyframes element below */\n animation-duration: 2.5s; /* Change to speed up or slow down */\n animation-iteration-count: infinite; /* Never stop waving :) */\n transform-origin: 70% 70%; /* Pivot around the bottom-left palm */\n display: inline-block;\n }\n\n @keyframes wave-animation {\n 0% {\n transform: rotate(0deg);\n }\n 10% {\n transform: rotate(14deg);\n } /* The following five values can be played with to make the waving more or less extreme */\n 20% {\n transform: rotate(-8deg);\n }\n 30% {\n transform: rotate(14deg);\n }\n 40% {\n transform: rotate(-4deg);\n }\n 50% {\n transform: rotate(10deg);\n }\n 60% {\n transform: rotate(0deg);\n } /* Reset for the last half to pause */\n 100% {\n transform: rotate(0deg);\n }\n }\n `,\n ];\n\n public render(): TemplateResult {\n return html`\n ${this.manifested\n ? html`\n
      \n
      \n
      \n ${this.wave ? html`\uD83D\uDC4B` : html``}\n ${directives.resolve(this.getHtml())}\n
      \n
      \n `\n : html``}\n `;\n }\n\n public async handleClick() {\n console.log('speechbubble got clicked.');\n }\n\n public async firstUpdated() {\n // lets make sure we have a ref\n if (!this.reffedElement) {\n this.reffedElement = this.previousElementSibling as HTMLElement;\n }\n if (this.manifested) {\n await this.updatePosition();\n (this.shadowRoot.querySelector('.maincontainer') as HTMLElement).style.opacity = '1';\n } else {\n // lets make sure we instrument it\n let speechbubble: DeesSpeechbubble;\n this.reffedElement.addEventListener('mouseenter', async () => {\n speechbubble = await DeesSpeechbubble.createAndShow(this.reffedElement, this.text);\n });\n this.reffedElement.addEventListener('mouseleave', () => {\n speechbubble.destroy();\n });\n }\n }\n\n public async updatePosition() {\n const refElement = this.reffedElement;\n const boundingClientRect = refElement.getBoundingClientRect();\n this.style.position = 'fixed';\n this.style.top = `${boundingClientRect.top - 13}px`;\n this.style.left = `${boundingClientRect.left + refElement.clientWidth + 4}px`;\n if (boundingClientRect.right > 250) {\n this.style.width = `250px`;\n }\n }\n\n public async getHtml(): Promise {\n if (!this.text) {\n return '';\n }\n const normalized = domtools.plugins.smartstring.normalize.standard(this.text);\n const result = await domtools.plugins.smartmarkdown.SmartMarkdown.easyMarkdownToHtml(\n normalized\n );\n return unsafeHTML(result);\n }\n\n public async show() {}\n\n public async destroy() {\n (this.shadowRoot.querySelector('.maincontainer') as HTMLElement).style.opacity = '0';\n this.windowLayer.destroy();\n }\n}\n", "export * from './dees-speechbubble.js';\n", "export * from './dees-windowlayer.js';\n", "// Overlay Components\nexport * from './dees-contextmenu/index.js';\nexport * from './dees-modal/index.js';\nexport * from './dees-speechbubble/index.js';\nexport * from './dees-windowlayer/index.js';\n", "export {};\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiSUV4ZWN1dGlvbkVudmlyb25tZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vdHNfd2ViL2VsZW1lbnRzLzAwZ3JvdXAtcnVudGltZS9pbnRlcmZhY2VzL0lFeGVjdXRpb25FbnZpcm9ubWVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIn0=", "export * from './IExecutionEnvironment.js';\n", "export const DEFAULT_EDITOR_ORIGIN = 'https://stackblitz.com';\nexport const SEARCH_PARAM_AUTH_CODE = 'code';\nexport const SEARCH_PARAM_ERROR = 'error';\nexport const SEARCH_PARAM_ERROR_DESCRIPTION = 'error_description';\nexport const BROADCAST_CHANNEL_NAME = '__wc_api_bc__';\nexport const STORAGE_TOKENS_NAME = '__wc_api_tokens__';\nexport const STORAGE_CODE_VERIFIER_NAME = '__wc_api_verifier__';\nexport const STORAGE_POPUP_NAME = '__wc_api_popup__';\n", "export class TypedEventTarget {\n _bus = new EventTarget();\n listen(listener) {\n function wrappedListener(event) {\n listener(event.data);\n }\n this._bus.addEventListener('message', wrappedListener);\n return () => this._bus.removeEventListener('message', wrappedListener);\n }\n fireEvent(data) {\n this._bus.dispatchEvent(new MessageEvent('message', { data }));\n }\n}\n", "import { STORAGE_TOKENS_NAME } from './constants.js';\nimport { TypedEventTarget } from './TypedEventTarget.js';\nconst IGNORED_ERROR = new Error();\nIGNORED_ERROR.stack = '';\nconst accessTokenChangedListeners = new TypedEventTarget();\n/**\n * @internal\n */\nexport class Tokens {\n origin;\n refresh;\n access;\n expires;\n _revoked = new AbortController();\n constructor(\n // editor origin that those tokens are bound to, mostly used for development\n origin, \n // token to use to get a new access token\n refresh, \n // token to provide to webcontainer\n access, \n // time in UTC when the token expires\n expires) {\n this.origin = origin;\n this.refresh = refresh;\n this.access = access;\n this.expires = expires;\n }\n async activate(onFailedRefresh) {\n if (this._revoked.signal.aborted) {\n throw new Error('Token revoked');\n }\n // if the access token expired we fetch a new one\n if (this.expires < Date.now()) {\n if (!(await this._fetchNewAccessToken())) {\n return false;\n }\n }\n this._sync();\n this._startRefreshTokensLoop(onFailedRefresh);\n return true;\n }\n async revoke(clientId, ignoreRevokeError) {\n this._revoked.abort();\n try {\n const response = await fetch(`${this.origin}/oauth/revoke`, {\n method: 'POST',\n headers: {\n 'Content-Type': 'application/x-www-form-urlencoded',\n },\n body: new URLSearchParams({ token: this.refresh, token_type_hint: 'refresh_token', client_id: clientId }),\n mode: 'cors',\n });\n if (!response.ok) {\n throw new Error(`Failed to logout`);\n }\n }\n catch (error) {\n if (!ignoreRevokeError) {\n throw error;\n }\n }\n clearTokensInStorage();\n }\n static fromStorage() {\n const savedTokens = readTokensFromStorage();\n if (!savedTokens) {\n return null;\n }\n return new Tokens(savedTokens.origin, savedTokens.refresh, savedTokens.access, savedTokens.expires);\n }\n static async fromAuthCode({ editorOrigin, clientId, codeVerifier, authCode, redirectUri, }) {\n const response = await fetch(`${editorOrigin}/oauth/token`, {\n method: 'POST',\n headers: {\n 'Content-Type': 'application/x-www-form-urlencoded',\n },\n body: new URLSearchParams({\n client_id: clientId,\n code: authCode,\n code_verifier: codeVerifier,\n grant_type: 'authorization_code',\n redirect_uri: redirectUri,\n }),\n mode: 'cors',\n });\n if (!response.ok) {\n throw new Error(`Failed to fetch token: ${response.status}`);\n }\n const tokenResponse = await response.json();\n assertTokenResponse(tokenResponse);\n const { access_token: access, refresh_token: refresh } = tokenResponse;\n const expires = getExpiresFromTokenResponse(tokenResponse);\n return new Tokens(editorOrigin, refresh, access, expires);\n }\n async _fetchNewAccessToken() {\n try {\n const response = await fetch(`${this.origin}/oauth/token`, {\n method: 'POST',\n headers: {\n 'Content-Type': 'application/x-www-form-urlencoded',\n },\n body: new URLSearchParams({\n grant_type: 'refresh_token',\n refresh_token: this.refresh,\n }),\n mode: 'cors',\n signal: this._revoked.signal,\n });\n if (!response.ok) {\n throw IGNORED_ERROR;\n }\n const tokenResponse = await response.json();\n assertTokenResponse(tokenResponse);\n const { access_token: access, refresh_token: refresh } = tokenResponse;\n const expires = getExpiresFromTokenResponse(tokenResponse);\n this.access = access;\n this.expires = expires;\n this.refresh = refresh;\n return true;\n }\n catch {\n clearTokensInStorage();\n return false;\n }\n }\n _sync() {\n persistTokensInStorage(this);\n fireAccessTokenChanged(this.access);\n }\n async _startRefreshTokensLoop(onFailedRefresh) {\n while (true) {\n const expiresIn = this.expires - Date.now() - 1000;\n await wait(Math.max(expiresIn, 1000));\n if (this._revoked.signal.aborted) {\n return;\n }\n if (!this._fetchNewAccessToken()) {\n onFailedRefresh();\n return;\n }\n this._sync();\n }\n }\n}\n/**\n * @internal\n */\nexport function clearTokensInStorage() {\n localStorage.removeItem(STORAGE_TOKENS_NAME);\n}\n/**\n * @internal\n */\nexport function addAccessTokenChangedListener(listener) {\n return accessTokenChangedListeners.listen(listener);\n}\nfunction readTokensFromStorage() {\n const serializedTokens = localStorage.getItem(STORAGE_TOKENS_NAME);\n if (!serializedTokens) {\n return null;\n }\n try {\n return JSON.parse(serializedTokens);\n }\n catch {\n return null;\n }\n}\nfunction persistTokensInStorage(tokens) {\n localStorage.setItem(STORAGE_TOKENS_NAME, JSON.stringify(tokens));\n}\nfunction getExpiresFromTokenResponse({ created_at, expires_in }) {\n return (created_at + expires_in) * 1000;\n}\nfunction assertTokenResponse(token) {\n if (typeof token !== 'object' || !token) {\n throw new Error('Invalid Token Response');\n }\n if (typeof token.access_token !== 'string' ||\n typeof token.refresh_token !== 'string' ||\n typeof token.created_at !== 'number' ||\n typeof token.expires_in !== 'number') {\n throw new Error('Invalid Token Response');\n }\n}\nfunction wait(ms) {\n return new Promise((resolve) => setTimeout(resolve, ms));\n}\nfunction fireAccessTokenChanged(accessToken) {\n accessTokenChangedListeners.fireEvent(accessToken);\n}\n", "import { DEFAULT_EDITOR_ORIGIN } from './constants.js';\nconst params = {};\nlet editorOrigin = null;\nexport const iframeSettings = {\n get editorOrigin() {\n if (editorOrigin == null) {\n editorOrigin = new URL(globalThis.WEBCONTAINER_API_IFRAME_URL ?? DEFAULT_EDITOR_ORIGIN).origin;\n }\n return editorOrigin;\n },\n set editorOrigin(newOrigin) {\n editorOrigin = new URL(newOrigin).origin;\n },\n setQueryParam(key, value) {\n params[key] = value;\n },\n get url() {\n const url = new URL(this.editorOrigin);\n url.pathname = '/headless';\n for (const param in params) {\n url.searchParams.set(param, params[param]);\n }\n url.searchParams.set('version', \"1.6.1\");\n return url;\n },\n};\n", "/**\n * Implementation of https://www.rfc-editor.org/rfc/rfc7636#section-4.2 that can\n * run in the browser.\n *\n * @internal\n *\n * @param input Code verifier.\n */\nexport async function S256(input) {\n // input here is assumed to match https://www.rfc-editor.org/rfc/rfc3986#section-2.3\n const ascii = new TextEncoder().encode(input);\n const sha256 = new Uint8Array(await crypto.subtle.digest('SHA-256', ascii));\n // base64url encode, based on https://developer.mozilla.org/en-US/docs/Glossary/Base64#the_unicode_problem\n return btoa(sha256.reduce((binary, byte) => binary + String.fromCodePoint(byte), ''))\n .replace(/\\+/g, '-')\n .replace(/\\//g, '_')\n .replace(/=+$/, '');\n}\n/**\n * Implementation of https://www.rfc-editor.org/rfc/rfc7636#section-4.1 with\n * a slight deviation:\n *\n * - We use 128 characters (it's expected to be between 43 and 128)\n * - We use 64 characters instead of 66\n *\n * So the entropy is lower given the space size is 64^128 instead of 66^128.\n * It still satisfies the entropy constraint given that 64^128 > 66^43.\n *\n * @internal\n */\nexport function newCodeVerifier() {\n const random = new Uint8Array(96);\n crypto.getRandomValues(random);\n let codeVerifier = '';\n for (let i = 0; i < 32; ++i) {\n codeVerifier += nextFourChars(random[3 * i + 0], random[3 * i + 1], random[3 * i + 2]);\n }\n return codeVerifier;\n}\nfunction nextFourChars(byte1, byte2, byte3) {\n const char1 = byte1 >> 2;\n const char2 = ((byte1 & 3) << 4) | (byte2 >> 4);\n const char3 = (byte2 & 15) | ((byte3 & 192) >> 2);\n const char4 = byte3 & 63;\n return [char1, char2, char3, char4].map(unreservedCharacters).join('');\n}\nfunction unreservedCharacters(code) {\n let offset;\n if (code < 26) {\n offset = code + 65; // [A-Z]\n }\n else if (code < 52) {\n offset = code - 26 + 97; // [a-z]\n }\n else if (code < 62) {\n offset = code - 52 + 48; // [0-9]\n }\n else {\n offset = code === 62 ? 30 /* _ */ : 45 /* - */;\n }\n return String.fromCharCode(offset);\n}\n", "/**\n * @internal\n */\nexport function resettablePromise() {\n let resolve;\n let promise;\n function reset() {\n promise = new Promise((_resolve) => (resolve = _resolve));\n }\n reset();\n return {\n get promise() {\n return promise;\n },\n resolve(value) {\n return resolve(value);\n },\n reset,\n };\n}\n", "import { Tokens, clearTokensInStorage } from './tokens.js';\nimport { SEARCH_PARAM_AUTH_CODE, SEARCH_PARAM_ERROR, STORAGE_CODE_VERIFIER_NAME, BROADCAST_CHANNEL_NAME, STORAGE_POPUP_NAME, SEARCH_PARAM_ERROR_DESCRIPTION, } from './constants.js';\nimport { iframeSettings } from './iframe-url.js';\nimport { S256, newCodeVerifier } from './code.js';\nimport { resettablePromise } from './reset-promise.js';\nimport { TypedEventTarget } from './TypedEventTarget.js';\n/**\n * @internal\n */\nexport const authState = {\n initialized: false,\n bootCalled: false,\n authComplete: resettablePromise(),\n clientId: '',\n oauthScope: '',\n broadcastChannel: null,\n get editorOrigin() {\n return iframeSettings.editorOrigin;\n },\n tokens: null,\n};\nconst authFailedListeners = new TypedEventTarget();\nconst loggedOutListeners = new TypedEventTarget();\nfunction broadcastMessage(message) {\n if (!authState.broadcastChannel) {\n return;\n }\n authState.broadcastChannel.postMessage(message);\n // check if we are in a popup mode\n if (localStorage.getItem(STORAGE_POPUP_NAME) === 'true' && message.type !== 'auth-logout') {\n localStorage.removeItem(STORAGE_POPUP_NAME);\n // wait a tick to make sure the posted message has been sent\n setTimeout(() => {\n window.close();\n });\n }\n}\nexport const auth = {\n init({ editorOrigin, clientId, scope }) {\n if (authState.initialized) {\n throw new Error('Init should only be called once');\n }\n let enterprise = true;\n if (enterprise && authState.bootCalled) {\n throw new Error('`auth.init` should always be called before `WebContainer.boot`');\n }\n authState.initialized = true;\n authState.tokens = Tokens.fromStorage();\n authState.clientId = clientId;\n authState.oauthScope = scope;\n authState.broadcastChannel = new BroadcastChannel(BROADCAST_CHANNEL_NAME);\n // configure iframe url\n iframeSettings.setQueryParam('client_id', clientId);\n if (editorOrigin) {\n iframeSettings.editorOrigin = new URL(editorOrigin).origin;\n }\n loggedOutListeners.listen(() => authState.authComplete.reset());\n // if authentication or logout are done in another page, we want to reflect the state on this page as well\n authState.broadcastChannel.addEventListener('message', onChannelMessage);\n async function onChannelMessage(event) {\n const typedEvent = event.data;\n if (typedEvent.type === 'auth-complete') {\n authState.tokens = Tokens.fromStorage();\n // we ignore the possible error here because they can't have expired just yet\n await authState.tokens.activate(onFailedTokenRefresh);\n authState.authComplete.resolve();\n return;\n }\n if (typedEvent.type === 'auth-failed') {\n authFailedListeners.fireEvent(typedEvent);\n return;\n }\n if (typedEvent.type === 'auth-logout') {\n loggedOutListeners.fireEvent();\n return;\n }\n }\n if (authState.tokens) {\n const tokens = authState.tokens;\n if (tokens.origin === authState.editorOrigin) {\n /**\n * Here we assume that the refresh token never expires which\n * might not be correct. If that is the case though, we will\n * emit a 'logged-out' event to signal that the user has been\n * logged out, which could also happen at a later time anyway.\n *\n * Because this flow is done entirely locally, we do not broadcast\n * anything to the other tabs. They should be performing a similar\n * check.\n */\n (async () => {\n const success = await tokens.activate(onFailedTokenRefresh);\n if (!success) {\n // if we got new token in the meantime we discard this error\n if (authState.tokens !== tokens) {\n return;\n }\n loggedOutListeners.fireEvent();\n return;\n }\n authState.authComplete.resolve();\n })();\n return { status: 'authorized' };\n }\n clearTokensInStorage();\n authState.tokens = null;\n }\n const locationURL = new URL(window.location.href);\n const { searchParams } = locationURL;\n const updateURL = () => window.history.replaceState({}, document.title, locationURL);\n // check for errors first, aka the user declined the authorisation or stackblitz did\n if (searchParams.has(SEARCH_PARAM_ERROR)) {\n const error = searchParams.get(SEARCH_PARAM_ERROR);\n const description = searchParams.get(SEARCH_PARAM_ERROR_DESCRIPTION);\n searchParams.delete(SEARCH_PARAM_ERROR);\n searchParams.delete(SEARCH_PARAM_ERROR_DESCRIPTION);\n updateURL();\n broadcastMessage({ type: 'auth-failed', error, description });\n return { status: 'auth-failed', error, description };\n }\n // if there's an auth code\n if (searchParams.has(SEARCH_PARAM_AUTH_CODE)) {\n const authCode = searchParams.get(SEARCH_PARAM_AUTH_CODE);\n const editorOrigin = authState.editorOrigin;\n searchParams.delete(SEARCH_PARAM_AUTH_CODE);\n updateURL();\n const codeVerifier = localStorage.getItem(STORAGE_CODE_VERIFIER_NAME);\n if (!codeVerifier) {\n return { status: 'need-auth' };\n }\n localStorage.removeItem(STORAGE_CODE_VERIFIER_NAME);\n Tokens.fromAuthCode({\n editorOrigin,\n clientId: authState.clientId,\n authCode,\n codeVerifier,\n redirectUri: defaultRedirectUri(),\n })\n .then(async (tokens) => {\n authState.tokens = tokens;\n assertAuthTokens(authState.tokens);\n const success = await authState.tokens.activate(onFailedTokenRefresh);\n // if authentication failed we throw, and we'll mark auth as failed\n if (!success) {\n throw new Error();\n }\n authState.authComplete.resolve();\n broadcastMessage({ type: 'auth-complete' });\n })\n .catch((error) => {\n // this should never happen unless the rails app is now down for some reason?\n console.error(error);\n // treat it as a logged out event so that the user can retry to login\n loggedOutListeners.fireEvent();\n broadcastMessage({ type: 'auth-logout' });\n });\n return { status: 'authorized' };\n }\n return { status: 'need-auth' };\n },\n async startAuthFlow({ popup } = {}) {\n if (!authState.initialized) {\n throw new Error('auth.init must be called first');\n }\n if (popup) {\n localStorage.setItem(STORAGE_POPUP_NAME, 'true');\n const height = 500;\n const width = 620;\n const left = window.screenLeft + (window.outerWidth - width) / 2;\n const top = window.screenTop + (window.outerHeight - height) / 2;\n window.open(await generateOAuthRequest(), '_blank', `popup,width=${width},height=${height},left=${left},top=${top}`);\n }\n else {\n window.location.href = await generateOAuthRequest();\n }\n },\n async logout({ ignoreRevokeError } = {}) {\n await authState.tokens?.revoke(authState.clientId, ignoreRevokeError ?? false);\n loggedOutListeners.fireEvent();\n broadcastMessage({ type: 'auth-logout' });\n },\n loggedIn() {\n return authState.authComplete.promise;\n },\n on(event, listener) {\n switch (event) {\n case 'auth-failed': {\n return authFailedListeners.listen(listener);\n }\n case 'logged-out': {\n return loggedOutListeners.listen(listener);\n }\n default: {\n throw new Error(`Unsupported event type '${event}'.`);\n }\n }\n },\n};\nfunction onFailedTokenRefresh() {\n loggedOutListeners.fireEvent();\n broadcastMessage({ type: 'auth-logout' });\n}\nfunction defaultRedirectUri() {\n return window.location.href;\n}\nasync function generateOAuthRequest() {\n const codeVerifier = newCodeVerifier();\n localStorage.setItem(STORAGE_CODE_VERIFIER_NAME, codeVerifier);\n const codeChallenge = await S256(codeVerifier);\n const url = new URL('/oauth/authorize', authState.editorOrigin);\n const { searchParams } = url;\n searchParams.append('response_type', 'code');\n searchParams.append('client_id', authState.clientId);\n searchParams.append('redirect_uri', defaultRedirectUri());\n searchParams.append('scope', authState.oauthScope);\n searchParams.append('code_challenge', codeChallenge);\n searchParams.append('code_challenge_method', 'S256');\n return url.toString();\n}\n/**\n * @internal\n */\nexport function assertAuthTokens(tokens) {\n if (!tokens) {\n throw new Error('Oops! Tokens is not defined when it always should be.');\n }\n}\n", "/**\n * This type is in a separate module so that localservice can import it\n * without bundling all the other webcontainer specific stuff.\n */\nexport var PreviewMessageType;\n(function (PreviewMessageType) {\n PreviewMessageType[\"UncaughtException\"] = \"PREVIEW_UNCAUGHT_EXCEPTION\";\n PreviewMessageType[\"UnhandledRejection\"] = \"PREVIEW_UNHANDLED_REJECTION\";\n PreviewMessageType[\"ConsoleError\"] = \"PREVIEW_CONSOLE_ERROR\";\n})(PreviewMessageType || (PreviewMessageType = {}));\n", "var __defProp = Object.defineProperty;\nvar __export = (target, all) => {\n for (var name in all)\n __defProp(target, name, { get: all[name], enumerable: true });\n};\n\n// dist/vendor/comlink.js\nvar comlink_exports = {};\n__export(comlink_exports, {\n createEndpoint: () => createEndpoint,\n expose: () => expose,\n proxy: () => proxy,\n proxyMarker: () => proxyMarker,\n releaseProxy: () => releaseProxy,\n transfer: () => transfer,\n transferHandlers: () => transferHandlers,\n windowEndpoint: () => windowEndpoint,\n wrap: () => wrap\n});\n\n// ../../node_modules/comlink/dist/esm/comlink.mjs\nvar proxyMarker = Symbol(\"Comlink.proxy\");\nvar createEndpoint = Symbol(\"Comlink.endpoint\");\nvar releaseProxy = Symbol(\"Comlink.releaseProxy\");\nvar throwMarker = Symbol(\"Comlink.thrown\");\nvar isObject = (val) => typeof val === \"object\" && val !== null || typeof val === \"function\";\nvar proxyTransferHandler = {\n canHandle: (val) => isObject(val) && val[proxyMarker],\n serialize(obj) {\n const { port1, port2 } = new MessageChannel();\n expose(obj, port1);\n return [port2, [port2]];\n },\n deserialize(port) {\n port.start();\n return wrap(port);\n }\n};\nvar throwTransferHandler = {\n canHandle: (value) => isObject(value) && throwMarker in value,\n serialize({ value }) {\n let serialized;\n if (value instanceof Error) {\n serialized = {\n isError: true,\n value: {\n message: value.message,\n name: value.name,\n stack: value.stack\n }\n };\n } else {\n serialized = { isError: false, value };\n }\n return [serialized, []];\n },\n deserialize(serialized) {\n if (serialized.isError) {\n throw Object.assign(new Error(serialized.value.message), serialized.value);\n }\n throw serialized.value;\n }\n};\nvar transferHandlers = /* @__PURE__ */ new Map([\n [\"proxy\", proxyTransferHandler],\n [\"throw\", throwTransferHandler]\n]);\nfunction expose(obj, ep = self) {\n ep.addEventListener(\"message\", function callback(ev) {\n if (!ev || !ev.data) {\n return;\n }\n const { id, type, path } = Object.assign({ path: [] }, ev.data);\n const argumentList = (ev.data.argumentList || []).map(fromWireValue);\n let returnValue;\n try {\n const parent = path.slice(0, -1).reduce((obj2, prop) => obj2[prop], obj);\n const rawValue = path.reduce((obj2, prop) => obj2[prop], obj);\n switch (type) {\n case 0:\n {\n returnValue = rawValue;\n }\n break;\n case 1:\n {\n parent[path.slice(-1)[0]] = fromWireValue(ev.data.value);\n returnValue = true;\n }\n break;\n case 2:\n {\n returnValue = rawValue.apply(parent, argumentList);\n }\n break;\n case 3:\n {\n const value = new rawValue(...argumentList);\n returnValue = proxy(value);\n }\n break;\n case 4:\n {\n const { port1, port2 } = new MessageChannel();\n expose(obj, port2);\n returnValue = transfer(port1, [port1]);\n }\n break;\n case 5:\n {\n returnValue = void 0;\n }\n break;\n }\n } catch (value) {\n returnValue = { value, [throwMarker]: 0 };\n }\n Promise.resolve(returnValue).catch((value) => {\n return { value, [throwMarker]: 0 };\n }).then((returnValue2) => {\n const [wireValue, transferables] = toWireValue(returnValue2);\n ep.postMessage(Object.assign(Object.assign({}, wireValue), { id }), transferables);\n if (type === 5) {\n ep.removeEventListener(\"message\", callback);\n closeEndPoint(ep);\n }\n });\n });\n if (ep.start) {\n ep.start();\n }\n}\nfunction isMessagePort(endpoint) {\n return endpoint.constructor.name === \"MessagePort\";\n}\nfunction closeEndPoint(endpoint) {\n if (isMessagePort(endpoint))\n endpoint.close();\n}\nfunction wrap(ep, target) {\n return createProxy(ep, [], target);\n}\nfunction throwIfProxyReleased(isReleased) {\n if (isReleased) {\n throw new Error(\"Proxy has been released and is not useable\");\n }\n}\nfunction createProxy(ep, path = [], target = function() {\n}) {\n let isProxyReleased = false;\n const proxy2 = new Proxy(target, {\n get(_target, prop) {\n throwIfProxyReleased(isProxyReleased);\n if (prop === releaseProxy) {\n return () => {\n return requestResponseMessage(ep, {\n type: 5,\n path: path.map((p) => p.toString())\n }).then(() => {\n closeEndPoint(ep);\n isProxyReleased = true;\n });\n };\n }\n if (prop === \"then\") {\n if (path.length === 0) {\n return { then: () => proxy2 };\n }\n const r = requestResponseMessage(ep, {\n type: 0,\n path: path.map((p) => p.toString())\n }).then(fromWireValue);\n return r.then.bind(r);\n }\n return createProxy(ep, [...path, prop]);\n },\n set(_target, prop, rawValue) {\n throwIfProxyReleased(isProxyReleased);\n const [value, transferables] = toWireValue(rawValue);\n return requestResponseMessage(ep, {\n type: 1,\n path: [...path, prop].map((p) => p.toString()),\n value\n }, transferables).then(fromWireValue);\n },\n apply(_target, _thisArg, rawArgumentList) {\n throwIfProxyReleased(isProxyReleased);\n const last = path[path.length - 1];\n if (last === createEndpoint) {\n return requestResponseMessage(ep, {\n type: 4\n }).then(fromWireValue);\n }\n if (last === \"bind\") {\n return createProxy(ep, path.slice(0, -1));\n }\n const [argumentList, transferables] = processArguments(rawArgumentList);\n return requestResponseMessage(ep, {\n type: 2,\n path: path.map((p) => p.toString()),\n argumentList\n }, transferables).then(fromWireValue);\n },\n construct(_target, rawArgumentList) {\n throwIfProxyReleased(isProxyReleased);\n const [argumentList, transferables] = processArguments(rawArgumentList);\n return requestResponseMessage(ep, {\n type: 3,\n path: path.map((p) => p.toString()),\n argumentList\n }, transferables).then(fromWireValue);\n }\n });\n return proxy2;\n}\nfunction myFlat(arr) {\n return Array.prototype.concat.apply([], arr);\n}\nfunction processArguments(argumentList) {\n const processed = argumentList.map(toWireValue);\n return [processed.map((v) => v[0]), myFlat(processed.map((v) => v[1]))];\n}\nvar transferCache = /* @__PURE__ */ new WeakMap();\nfunction transfer(obj, transfers) {\n transferCache.set(obj, transfers);\n return obj;\n}\nfunction proxy(obj) {\n return Object.assign(obj, { [proxyMarker]: true });\n}\nfunction windowEndpoint(w, context = self, targetOrigin = \"*\") {\n return {\n postMessage: (msg, transferables) => w.postMessage(msg, targetOrigin, transferables),\n addEventListener: context.addEventListener.bind(context),\n removeEventListener: context.removeEventListener.bind(context)\n };\n}\nfunction toWireValue(value) {\n for (const [name, handler] of transferHandlers) {\n if (handler.canHandle(value)) {\n const [serializedValue, transferables] = handler.serialize(value);\n return [\n {\n type: 3,\n name,\n value: serializedValue\n },\n transferables\n ];\n }\n }\n return [\n {\n type: 0,\n value\n },\n transferCache.get(value) || []\n ];\n}\nfunction fromWireValue(value) {\n switch (value.type) {\n case 3:\n return transferHandlers.get(value.name).deserialize(value.value);\n case 0:\n return value.value;\n }\n}\nfunction requestResponseMessage(ep, msg, transfers) {\n return new Promise((resolve) => {\n const id = generateUUID();\n ep.addEventListener(\"message\", function l(ev) {\n if (!ev.data || !ev.data.id || ev.data.id !== id) {\n return;\n }\n ep.removeEventListener(\"message\", l);\n resolve(ev.data);\n });\n if (ep.start) {\n ep.start();\n }\n ep.postMessage(Object.assign({ id }, msg), transfers);\n });\n}\nfunction generateUUID() {\n return new Array(4).fill(0).map(() => Math.floor(Math.random() * Number.MAX_SAFE_INTEGER).toString(16)).join(\"-\");\n}\nexport {\n comlink_exports as Comlink\n};\n", "/**\n * This function reloads the provided iframe.\n *\n * @param preview The iframe page to reload.\n * @param hardRefreshTimeout The timeout after which the preview is reset if it hasn't responded to the reload event.\n */\nexport function reloadPreview(preview, hardRefreshTimeout = 200) {\n const { port1, port2 } = new MessageChannel();\n let resolve;\n const promise = new Promise((_resolve) => {\n resolve = _resolve;\n });\n const done = () => {\n resolve();\n port2.close();\n };\n const timeout = setTimeout(() => {\n const iframeSrc = preview.src;\n preview.src = iframeSrc;\n done();\n }, hardRefreshTimeout);\n port2.addEventListener('message', (event) => {\n const data = event.data;\n if (data == null || typeof data !== 'object') {\n return;\n }\n if (data.type === 'LOCALSERVICE_WINDOW_RELOADED') {\n clearTimeout(timeout);\n done();\n }\n });\n preview.contentWindow?.postMessage({\n type: 'LOCALSERVICE_RELOAD_WINDOW',\n callback: port1,\n }, '*', [port1]);\n return promise;\n}\n", "import { PreviewMessageType } from '../preview-message-types.js';\nconst PREVIEW_MESSAGE_TYPES = [\n PreviewMessageType.ConsoleError,\n PreviewMessageType.UncaughtException,\n PreviewMessageType.UnhandledRejection,\n];\nexport function isPreviewMessage(data) {\n if (data == null || typeof data !== 'object') {\n return false;\n }\n if (!('type' in data) || !PREVIEW_MESSAGE_TYPES.includes(data.type)) {\n return false;\n }\n return true;\n}\n", "export { reloadPreview } from './utils/reload-preview.js';\nexport { PreviewMessageType } from './preview-message-types.js';\nexport { isPreviewMessage } from './utils/is-preview-message.js';\n", "/**\n * @internal\n */\nexport function nullPrototype(source) {\n const prototype = Object.create(null);\n if (!source) {\n return prototype;\n }\n return Object.assign(prototype, source);\n}\n", "import { nullPrototype } from './null-prototype.js';\nconst binaryDecoder = new TextDecoder('latin1');\n/**\n * @internal\n */\nexport function toInternalFileSystemTree(tree) {\n const newTree = { d: {} };\n for (const name of Object.keys(tree)) {\n const entry = tree[name];\n if ('file' in entry) {\n if ('symlink' in entry.file) {\n newTree.d[name] = { f: { l: entry.file.symlink } };\n continue;\n }\n const contents = entry.file.contents;\n const stringContents = typeof contents === 'string' ? contents : binaryDecoder.decode(contents);\n const binary = typeof contents === 'string' ? {} : { b: true };\n newTree.d[name] = { f: { c: stringContents, ...binary } };\n continue;\n }\n const newEntry = toInternalFileSystemTree(entry.directory);\n newTree.d[name] = newEntry;\n }\n return newTree;\n}\n/**\n * @internal\n */\nexport function toExternalFileSystemTree(tree) {\n const newTree = nullPrototype();\n if ('f' in tree) {\n throw new Error('It is not possible to export a single file in the JSON format.');\n }\n if ('d' in tree) {\n for (const name of Object.keys(tree.d)) {\n const entry = tree.d[name];\n if ('d' in entry) {\n newTree[name] = nullPrototype({\n directory: toExternalFileSystemTree(entry),\n });\n }\n else if ('f' in entry) {\n if ('c' in entry.f) {\n newTree[name] = nullPrototype({\n file: nullPrototype({\n contents: entry.f.b ? fromBinaryString(entry.f.c) : entry.f.c,\n }),\n });\n }\n else if ('l' in entry.f) {\n newTree[name] = nullPrototype({\n file: nullPrototype({\n symlink: entry.f.l,\n }),\n });\n }\n }\n }\n }\n return newTree;\n}\nfunction fromBinaryString(s) {\n const encoded = new Uint8Array(s.length);\n for (let i = 0; i < s.length; i++) {\n encoded[i] = s[i].charCodeAt(0);\n }\n return encoded;\n}\n", "/**\n * The WebContainer Public API allows you build custom applications on top of an in-browser Node.js runtime.\n *\n * Its main entrypoint is the {@link WebContainer} class.\n *\n * @packageDocumentation\n */\nimport { authState, assertAuthTokens } from './internal/auth-state.js';\nimport { PreviewMessageType } from './preview-message-types.js';\nimport { Comlink } from './vendor/index.js';\nimport { auth as authImpl } from './internal/auth-state.js';\nimport { addAccessTokenChangedListener } from './internal/tokens.js';\nimport { iframeSettings } from './internal/iframe-url.js';\nimport { isPreviewMessage } from './utils.js';\nimport { toExternalFileSystemTree, toInternalFileSystemTree } from './utils/file-system.js';\nexport const auth = authImpl;\nexport { PreviewMessageType };\nexport * from './utils.js';\nlet bootPromise = null;\nlet cachedServerPromise = null;\nlet cachedBootOptions = {};\nconst decoder = new TextDecoder();\nconst encoder = new TextEncoder();\n/**\n * The main export of this library. An instance of `WebContainer` represents a runtime\n * ready to be used.\n */\nexport class WebContainer {\n _instance;\n _runtimeInfo;\n /**\n * Gives access to the underlying file system.\n */\n fs;\n /** @internal */\n static _instance = null;\n /** @internal */\n static _teardownPromise = null;\n _tornDown = false;\n _unsubscribeFromTokenChangedListener = () => { };\n /** @internal */\n constructor(\n /** @internal */\n _instance, fs, previewScript, \n /** @internal */\n _runtimeInfo) {\n this._instance = _instance;\n this._runtimeInfo = _runtimeInfo;\n this.fs = new FileSystemAPIClient(fs);\n // forward the credentials to webcontainer if needed\n if (authState.initialized) {\n this._unsubscribeFromTokenChangedListener = addAccessTokenChangedListener((accessToken) => {\n this._instance.setCredentials({ accessToken, editorOrigin: authState.editorOrigin });\n });\n (async () => {\n await authState.authComplete.promise;\n if (this._tornDown) {\n return;\n }\n assertAuthTokens(authState.tokens);\n await this._instance.setCredentials({\n accessToken: authState.tokens.access,\n editorOrigin: authState.editorOrigin,\n });\n })().catch((error) => {\n // print the error as this is likely a bug in webcontainer\n console.error(error);\n });\n }\n }\n async spawn(command, optionsOrArgs, options) {\n let args = [];\n if (Array.isArray(optionsOrArgs)) {\n args = optionsOrArgs;\n }\n else {\n options = optionsOrArgs;\n }\n let output = undefined;\n let outputStream = new ReadableStream();\n if (options?.output !== false) {\n const result = streamWithPush();\n output = result.push;\n outputStream = result.stream;\n }\n let stdout = undefined;\n let stdoutStream;\n let stderr = undefined;\n let stderrStream;\n const wrappedOutput = proxyListener(binaryListener(output));\n const wrappedStdout = proxyListener(binaryListener(stdout));\n const wrappedStderr = proxyListener(binaryListener(stderr));\n const process = await this._instance.run({\n command,\n args,\n cwd: options?.cwd,\n env: options?.env,\n terminal: options?.terminal,\n }, wrappedStdout, wrappedStderr, wrappedOutput);\n return new WebContainerProcessImpl(process, outputStream, stdoutStream, stderrStream);\n }\n async export(path, options) {\n const serializeOptions = {\n format: options?.format ?? 'json',\n includes: options?.includes,\n excludes: options?.excludes,\n external: true,\n };\n const result = await this._instance.serialize(path, serializeOptions);\n if (serializeOptions.format === 'json') {\n const data = JSON.parse(decoder.decode(result));\n return toExternalFileSystemTree(data);\n }\n return result;\n }\n on(event, listener) {\n if (event === 'preview-message') {\n const originalListener = listener;\n listener = ((message) => {\n if (isPreviewMessage(message)) {\n originalListener(message);\n }\n });\n }\n const { listener: wrapped, subscribe } = syncSubscription(listener);\n return subscribe(this._instance.on(event, Comlink.proxy(wrapped)));\n }\n /**\n * Mounts a tree of files into the filesystem. This can be specified as a tree object ({@link FileSystemTree})\n * or as a binary snapshot generated by [`@webcontainer/snapshot`](https://www.npmjs.com/package/@webcontainer/snapshot).\n *\n * @param snapshotOrTree - A tree of files, or a binary snapshot. Note that binary payloads will be transferred.\n * @param options.mountPoint - Specifies a nested path where the tree should be mounted.\n */\n mount(snapshotOrTree, options) {\n const payload = snapshotOrTree instanceof Uint8Array\n ? snapshotOrTree\n : snapshotOrTree instanceof ArrayBuffer\n ? new Uint8Array(snapshotOrTree)\n : encoder.encode(JSON.stringify(toInternalFileSystemTree(snapshotOrTree)));\n return this._instance.loadFiles(Comlink.transfer(payload, [payload.buffer]), {\n mountPoints: options?.mountPoint,\n });\n }\n /**\n * Set a custom script to be injected into all previews. When this function is called, every\n * future page reload will contain the provided script tag on all HTML responses.\n *\n * Note:\n *\n * When this function resolves, every preview reloaded _after_ will have the new script.\n * Existing preview have to be explicitely reloaded.\n *\n * To reload a preview you can use `reloadPreview`.\n *\n * @param scriptSrc Source for the script tag.\n * @param options Options to define which type of script this is.\n */\n setPreviewScript(scriptSrc, options) {\n return this._instance.setPreviewScript(scriptSrc, options);\n }\n /**\n * The default value of the `PATH` environment variable for processes started through {@link spawn}.\n */\n get path() {\n return this._runtimeInfo.path;\n }\n /**\n * The full path to the working directory (see {@link FileSystemAPI}).\n */\n get workdir() {\n return this._runtimeInfo.cwd;\n }\n /**\n * Destroys the WebContainer instance, turning it unusable, and releases its resources. After this,\n * a new WebContainer instance can be obtained by calling {@link WebContainer.boot | `boot`}.\n *\n * All entities derived from this instance (e.g. processes, the file system, etc.) also become unusable\n * after calling this method.\n */\n teardown() {\n if (this._tornDown) {\n throw new Error('WebContainer already torn down');\n }\n this._tornDown = true;\n this._unsubscribeFromTokenChangedListener();\n const teardownFn = async () => {\n try {\n await this.fs._teardown();\n await this._instance.teardown();\n }\n finally {\n this._instance[Comlink.releaseProxy]();\n if (WebContainer._instance === this) {\n WebContainer._instance = null;\n }\n }\n };\n WebContainer._teardownPromise = teardownFn();\n }\n /**\n * Boots a WebContainer. Only a single instance of WebContainer can be booted concurrently\n * (see {@link WebContainer.teardown | `teardown`}).\n *\n * Booting WebContainer is an expensive operation.\n */\n static async boot(options = {}) {\n await this._teardownPromise;\n WebContainer._teardownPromise = null;\n const { workdirName } = options;\n if (window.crossOriginIsolated && options.coep === 'none') {\n console.warn(`A Cross-Origin-Embedder-Policy header is required in cross origin isolated environments.\\nSet the 'coep' option to 'require-corp'.`);\n }\n if (workdirName?.includes('/') || workdirName === '..' || workdirName === '.') {\n throw new Error('workdirName should be a valid folder name');\n }\n // signal that boot was called to auth module as calling auth.init after boot is likely incorrect\n authState.bootCalled = true;\n // try to \"acquire the lock\", i.e. wait for any ongoing boot request to finish\n while (bootPromise) {\n await bootPromise;\n }\n if (WebContainer._instance) {\n throw new Error('Only a single WebContainer instance can be booted');\n }\n const instancePromise = unsynchronizedBoot(options);\n // the \"lock\" is a promise for the ongoing boot that never fails\n bootPromise = instancePromise.catch(() => { });\n try {\n const instance = await instancePromise;\n WebContainer._instance = instance;\n return instance;\n }\n finally {\n // release the \"lock\"\n bootPromise = null;\n }\n }\n}\n/**\n * Configure an API key to be used for this instance of WebContainer.\n *\n * @param key WebContainer API key.\n */\nexport function configureAPIKey(key) {\n if (authState.bootCalled) {\n throw new Error('`configureAPIKey` should always be called before `WebContainer.boot`');\n }\n iframeSettings.setQueryParam('client_id', key);\n}\nconst DIR_ENTRY_TYPE_FILE = 1;\nconst DIR_ENTRY_TYPE_DIR = 2;\n/**\n * @internal\n */\nclass DirEntImpl {\n name;\n _type;\n constructor(name, _type) {\n this.name = name;\n this._type = _type;\n }\n isFile() {\n return this._type === DIR_ENTRY_TYPE_FILE;\n }\n isDirectory() {\n return this._type === DIR_ENTRY_TYPE_DIR;\n }\n}\nclass FSWatcher {\n _apiClient;\n _path;\n _options;\n _listener;\n _wrappedListener;\n _watcher;\n _closed = false;\n constructor(_apiClient, _path, _options, _listener) {\n this._apiClient = _apiClient;\n this._path = _path;\n this._options = _options;\n this._listener = _listener;\n this._apiClient._watchers.add(this);\n this._wrappedListener = (event, filename) => {\n if (this._listener && !this._closed) {\n this._listener(event, filename);\n }\n };\n this._apiClient._fs\n .watch(this._path, this._options, proxyListener(this._wrappedListener))\n .then((_watcher) => {\n this._watcher = _watcher;\n if (this._closed) {\n return this._teardown();\n }\n return undefined;\n })\n .catch(console.error);\n }\n async close() {\n if (!this._closed) {\n this._closed = true;\n this._apiClient._watchers.delete(this);\n await this._teardown();\n }\n }\n /**\n * @internal\n */\n async _teardown() {\n await this._watcher?.close().finally(() => {\n this._watcher?.[Comlink.releaseProxy]();\n });\n }\n}\n/**\n * @internal\n */\nclass WebContainerProcessImpl {\n output;\n input;\n exit;\n _process;\n stdout;\n stderr;\n constructor(process, output, stdout, stderr) {\n this.output = output;\n this._process = process;\n this.input = new WritableStream({\n write: (data) => {\n // this promise is not supposed to fail anyway\n this._getProcess()\n ?.write(data)\n .catch(() => { });\n },\n });\n this.exit = this._onExit();\n this.stdout = stdout;\n this.stderr = stderr;\n }\n kill() {\n this._process?.kill();\n }\n resize(dimensions) {\n this._getProcess()?.resize(dimensions);\n }\n async _onExit() {\n try {\n return await this._process.onExit;\n }\n finally {\n this._process?.[Comlink.releaseProxy]();\n this._process = null;\n }\n }\n _getProcess() {\n if (this._process == null) {\n console.warn('This process already exited');\n }\n return this._process;\n }\n}\n/**\n * @internal\n */\nclass FileSystemAPIClient {\n _fs;\n _watchers = new Set([]);\n constructor(fs) {\n this._fs = fs;\n }\n rm(...args) {\n return this._fs.rm(...args);\n }\n async readFile(path, encoding) {\n return await this._fs.readFile(path, encoding);\n }\n async rename(oldPath, newPath) {\n return await this._fs.rename(oldPath, newPath);\n }\n async writeFile(path, data, options) {\n if (data instanceof Uint8Array) {\n const buffer = data.buffer.slice(data.byteOffset, data.byteOffset + data.byteLength);\n data = Comlink.transfer(new Uint8Array(buffer), [buffer]);\n }\n await this._fs.writeFile(path, data, options);\n }\n async readdir(path, options) {\n const result = await this._fs.readdir(path, options);\n if (isStringArray(result)) {\n return result;\n }\n if (isTypedArrayCollection(result)) {\n return result;\n }\n const entries = result.map((entry) => new DirEntImpl(entry.name, entry['Symbol(type)']));\n return entries;\n }\n async mkdir(path, options) {\n return await this._fs.mkdir(path, options);\n }\n watch(path, options, listener) {\n if (typeof options === 'function') {\n listener = options;\n options = null;\n }\n return new FSWatcher(this, path, options, listener);\n }\n /**\n * @internal\n */\n async _teardown() {\n this._fs[Comlink.releaseProxy]();\n await Promise.all([...this._watchers].map((watcher) => watcher.close()));\n }\n}\nasync function unsynchronizedBoot(options) {\n const { serverPromise } = serverFactory(options);\n const server = await serverPromise;\n const instance = await server.build({\n host: window.location.host,\n version: \"1.6.1\",\n workdirName: options.workdirName,\n forwardPreviewErrors: options.forwardPreviewErrors,\n });\n const [fs, previewScript, runtimeInfo] = await Promise.all([\n instance.fs(),\n instance.previewScript(),\n instance.runtimeInfo(),\n ]);\n return new WebContainer(instance, fs, previewScript, runtimeInfo);\n}\nfunction binaryListener(listener) {\n if (listener == null) {\n return undefined;\n }\n return (data) => {\n if (data instanceof Uint8Array) {\n listener(decoder.decode(data));\n }\n else if (data == null) {\n listener(null);\n }\n };\n}\nfunction proxyListener(listener) {\n if (listener == null) {\n return undefined;\n }\n return Comlink.proxy(listener);\n}\nfunction serverFactory(options) {\n if (cachedServerPromise != null) {\n if (options.coep !== cachedBootOptions.coep) {\n console.warn(`Attempting to boot WebContainer with 'coep: ${options.coep}'`);\n console.warn(`First boot had 'coep: ${cachedBootOptions.coep}', new settings will not take effect!`);\n }\n return { serverPromise: cachedServerPromise };\n }\n if (options.coep) {\n iframeSettings.setQueryParam('coep', options.coep);\n }\n if (options.experimentalNode) {\n iframeSettings.setQueryParam('experimental_node', '1');\n }\n const iframe = document.createElement('iframe');\n iframe.style.display = 'none';\n iframe.setAttribute('allow', 'cross-origin-isolated');\n const url = iframeSettings.url;\n iframe.src = url.toString();\n const { origin } = url;\n cachedBootOptions = { ...options };\n cachedServerPromise = new Promise((resolve) => {\n const onMessage = (event) => {\n if (event.origin !== origin) {\n return;\n }\n const { data } = event;\n if (data.type === 'init') {\n resolve(Comlink.wrap(event.ports[0]));\n return;\n }\n if (data.type === 'warning') {\n console[data.level].call(console, data.message);\n return;\n }\n };\n window.addEventListener('message', onMessage);\n });\n document.body.insertBefore(iframe, null);\n return { serverPromise: cachedServerPromise };\n}\nfunction isStringArray(list) {\n return typeof list[0] === 'string';\n}\nfunction isTypedArrayCollection(list) {\n return list[0] instanceof Uint8Array;\n}\nfunction streamWithPush() {\n let controller = null;\n const stream = new ReadableStream({\n start(controller_) {\n controller = controller_;\n },\n });\n const push = (item) => {\n if (item != null) {\n controller?.enqueue(item);\n }\n else {\n controller?.close();\n controller = null;\n }\n };\n return { stream, push };\n}\nfunction syncSubscription(listener) {\n let stopped = false;\n let unsubscribe = () => { };\n const wrapped = ((...args) => {\n if (stopped) {\n return;\n }\n listener(...args);\n });\n return {\n subscribe(promise) {\n promise.then((unsubscribe_) => {\n unsubscribe = unsubscribe_;\n if (stopped) {\n unsubscribe();\n }\n });\n return () => {\n stopped = true;\n unsubscribe();\n };\n },\n listener: wrapped,\n };\n}\n", "import * as webcontainer from '@tempfix/webcontainer__api';\nimport type { IExecutionEnvironment, IFileEntry, IFileWatcher, IProcessHandle } from '../interfaces/IExecutionEnvironment.js';\n\n/**\n * WebContainer-based execution environment.\n * Runs Node.js and shell commands in the browser using WebContainer API.\n */\nexport class WebContainerEnvironment implements IExecutionEnvironment {\n // Static shared state - WebContainer only allows ONE boot per page\n private static sharedContainer: webcontainer.WebContainer | null = null;\n private static bootPromise: Promise | null = null;\n\n private _ready: boolean = false;\n\n public readonly type = 'webcontainer' as const;\n\n public get ready(): boolean {\n return this._ready;\n }\n\n private get container(): webcontainer.WebContainer | null {\n return WebContainerEnvironment.sharedContainer;\n }\n\n // ============ Lifecycle ============\n\n public async init(): Promise {\n // Already initialized (this instance)\n if (this._ready && WebContainerEnvironment.sharedContainer) {\n return;\n }\n\n // If boot is in progress (by any instance), wait for it\n if (WebContainerEnvironment.bootPromise) {\n await WebContainerEnvironment.bootPromise;\n this._ready = true;\n return;\n }\n\n // If already booted by another instance, just mark ready\n if (WebContainerEnvironment.sharedContainer) {\n this._ready = true;\n return;\n }\n\n // Check if SharedArrayBuffer is available (required for WebContainer)\n if (typeof SharedArrayBuffer === 'undefined') {\n throw new Error(\n 'WebContainer requires SharedArrayBuffer which is not available. ' +\n 'Ensure your server sends these headers:\\n' +\n ' Cross-Origin-Opener-Policy: same-origin\\n' +\n ' Cross-Origin-Embedder-Policy: require-corp'\n );\n }\n\n // Start boot process\n WebContainerEnvironment.bootPromise = webcontainer.WebContainer.boot();\n\n try {\n WebContainerEnvironment.sharedContainer = await WebContainerEnvironment.bootPromise;\n this._ready = true;\n } catch (error) {\n // Reset promise on failure so retry is possible\n WebContainerEnvironment.bootPromise = null;\n throw error;\n }\n }\n\n public async destroy(): Promise {\n if (WebContainerEnvironment.sharedContainer) {\n WebContainerEnvironment.sharedContainer.teardown();\n WebContainerEnvironment.sharedContainer = null;\n WebContainerEnvironment.bootPromise = null;\n this._ready = false;\n }\n }\n\n // ============ Filesystem Operations ============\n\n public async readFile(path: string): Promise {\n this.ensureReady();\n return await this.container!.fs.readFile(path, 'utf-8');\n }\n\n public async writeFile(path: string, contents: string): Promise {\n this.ensureReady();\n await this.container!.fs.writeFile(path, contents, 'utf-8');\n }\n\n public async readDir(path: string): Promise {\n this.ensureReady();\n const entries = await this.container!.fs.readdir(path, { withFileTypes: true });\n\n return entries.map((entry) => ({\n type: entry.isDirectory() ? 'directory' as const : 'file' as const,\n name: entry.name,\n path: path === '/' ? `/${entry.name}` : `${path}/${entry.name}`,\n }));\n }\n\n public async mkdir(path: string): Promise {\n this.ensureReady();\n await this.container!.fs.mkdir(path, { recursive: true });\n }\n\n public async rm(path: string, options?: { recursive?: boolean }): Promise {\n this.ensureReady();\n await this.container!.fs.rm(path, { recursive: options?.recursive ?? false });\n }\n\n public async exists(path: string): Promise {\n this.ensureReady();\n try {\n await this.container!.fs.readFile(path);\n return true;\n } catch {\n try {\n await this.container!.fs.readdir(path);\n return true;\n } catch {\n return false;\n }\n }\n }\n\n public watch(\n path: string,\n callback: (event: 'rename' | 'change', filename: string | null) => void,\n options?: { recursive?: boolean }\n ): IFileWatcher {\n this.ensureReady();\n const watcher = this.container!.fs.watch(\n path,\n { recursive: options?.recursive ?? false },\n callback\n );\n return {\n stop: () => watcher.close(),\n };\n }\n\n // ============ Process Execution ============\n\n public async spawn(command: string, args: string[] = []): Promise {\n this.ensureReady();\n\n const process = await this.container!.spawn(command, args);\n\n return {\n output: process.output as unknown as ReadableStream,\n input: process.input as unknown as { getWriter(): WritableStreamDefaultWriter },\n exit: process.exit,\n kill: () => process.kill(),\n };\n }\n\n // ============ WebContainer-specific methods ============\n\n /**\n * Mount files into the virtual filesystem.\n * This is a WebContainer-specific operation.\n * @param files - File tree structure to mount\n */\n public async mount(files: webcontainer.FileSystemTree): Promise {\n this.ensureReady();\n await this.container!.mount(files);\n }\n\n /**\n * Get the underlying WebContainer instance.\n * Use sparingly - prefer the interface methods.\n */\n public getContainer(): webcontainer.WebContainer {\n this.ensureReady();\n return this.container!;\n }\n\n // ============ Private Helpers ============\n\n private ensureReady(): void {\n if (!this._ready || !this.container) {\n throw new Error('WebContainerEnvironment not initialized. Call init() first.');\n }\n }\n}\n", "export * from './WebContainerEnvironment.js';\n", "// Runtime Interfaces\nexport * from './interfaces/index.js';\n\n// Environment Implementations\nexport * from './environments/index.js';\n", "export * from './dees-shopping-productcard.js';\n", "import type { Terminal, ITerminalOptions } from 'xterm';\nimport type { FitAddon } from 'xterm-addon-fit';\nimport type { ITerminalTab, ICreateTerminalTabOptions, TTerminalTabType } from './interfaces.js';\nimport type { IXtermBundle, IXtermFitAddonBundle } from '../../../services/index.js';\n\n/**\n * Manages terminal tabs lifecycle and state\n */\nexport class TerminalTabManager {\n private tabs: Map = new Map();\n private tabCounter: number = 0;\n private xtermBundle: IXtermBundle | null = null;\n private xtermFitAddonBundle: IXtermFitAddonBundle | null = null;\n\n /**\n * Initialize the manager with loaded xterm modules.\n * Must be called before creating tabs.\n */\n public setXtermModules(xtermBundle: IXtermBundle, fitAddonBundle: IXtermFitAddonBundle): void {\n this.xtermBundle = xtermBundle;\n this.xtermFitAddonBundle = fitAddonBundle;\n }\n\n /**\n * Generate unique tab ID\n */\n private generateTabId(): string {\n this.tabCounter++;\n return `terminal-${this.tabCounter}-${Date.now()}`;\n }\n\n /**\n * Get default label for tab type\n */\n private getDefaultLabel(type: TTerminalTabType, metadata?: ITerminalTab['metadata']): string {\n switch (type) {\n case 'shell':\n return 'bash';\n case 'script':\n return metadata?.scriptName || 'script';\n case 'package-update':\n return metadata?.packageName ? `update ${metadata.packageName}` : 'update';\n case 'custom':\n return metadata?.command || 'process';\n default:\n return 'terminal';\n }\n }\n\n /**\n * Get default icon for tab type\n */\n private getDefaultIcon(type: TTerminalTabType): string {\n switch (type) {\n case 'shell':\n return 'lucide:terminal';\n case 'script':\n return 'lucide:play';\n case 'package-update':\n return 'lucide:packageCheck';\n case 'custom':\n return 'lucide:code';\n default:\n return 'lucide:terminal';\n }\n }\n\n /**\n * Get terminal theme configuration\n */\n private getTerminalTheme(isBright: boolean): any {\n if (isBright) {\n return {\n background: '#ffffff',\n foreground: '#333333',\n cursor: '#333333',\n cursorAccent: '#ffffff',\n selection: 'rgba(0, 0, 0, 0.2)',\n black: '#000000',\n red: '#cd3131',\n green: '#00bc00',\n yellow: '#949800',\n blue: '#0451a5',\n magenta: '#bc05bc',\n cyan: '#0598bc',\n white: '#555555',\n brightBlack: '#666666',\n brightRed: '#cd3131',\n brightGreen: '#14ce14',\n brightYellow: '#b5ba00',\n brightBlue: '#0451a5',\n brightMagenta: '#bc05bc',\n brightCyan: '#0598bc',\n brightWhite: '#a5a5a5',\n };\n } else {\n return {\n background: '#000000',\n foreground: '#ffffff',\n cursor: '#ffffff',\n cursorAccent: '#000000',\n selection: 'rgba(255, 255, 255, 0.2)',\n };\n }\n }\n\n /**\n * Create a new tab instance\n */\n createTab(options: ICreateTerminalTabOptions, isBright: boolean): ITerminalTab {\n if (!this.xtermBundle || !this.xtermFitAddonBundle) {\n throw new Error('TerminalTabManager: xterm modules not initialized. Call setXtermModules() first.');\n }\n\n const id = this.generateTabId();\n const type = options.type;\n\n // Create xterm.js Terminal instance using CDN-loaded module\n const terminal = new this.xtermBundle.Terminal({\n convertEol: true,\n cursorBlink: true,\n theme: this.getTerminalTheme(isBright),\n fontFamily: 'Menlo, Monaco, \"Courier New\", monospace',\n fontSize: 13,\n lineHeight: 1.2,\n });\n\n // Create FitAddon using CDN-loaded module\n const fitAddon = new this.xtermFitAddonBundle.FitAddon();\n terminal.loadAddon(fitAddon);\n\n const tab: ITerminalTab = {\n id,\n label: options.label || this.getDefaultLabel(type, options.metadata),\n iconName: options.iconName || this.getDefaultIcon(type),\n type,\n closeable: options.closeable ?? (type !== 'shell'),\n terminal,\n fitAddon,\n process: null,\n inputWriter: null,\n exited: false,\n exitCode: null,\n createdAt: Date.now(),\n metadata: options.metadata,\n };\n\n this.tabs.set(id, tab);\n return tab;\n }\n\n /**\n * Get tab by ID\n */\n getTab(id: string): ITerminalTab | undefined {\n return this.tabs.get(id);\n }\n\n /**\n * Get all tabs as array (ordered by creation time)\n */\n getAllTabs(): ITerminalTab[] {\n return Array.from(this.tabs.values()).sort((a, b) => a.createdAt - b.createdAt);\n }\n\n /**\n * Get the number of tabs\n */\n getTabCount(): number {\n return this.tabs.size;\n }\n\n /**\n * Check if tab exists\n */\n hasTab(id: string): boolean {\n return this.tabs.has(id);\n }\n\n /**\n * Close and cleanup a tab\n */\n closeTab(id: string): boolean {\n const tab = this.tabs.get(id);\n if (!tab) return false;\n\n // Kill process if still running\n if (tab.process && !tab.exited) {\n try {\n tab.process.kill();\n } catch (e) {\n console.warn('Failed to kill process:', e);\n }\n }\n\n // Dispose terminal\n try {\n tab.terminal.dispose();\n } catch (e) {\n console.warn('Failed to dispose terminal:', e);\n }\n\n this.tabs.delete(id);\n return true;\n }\n\n /**\n * Rename a tab\n */\n renameTab(id: string, newLabel: string): boolean {\n const tab = this.tabs.get(id);\n if (!tab) return false;\n\n tab.label = newLabel;\n return true;\n }\n\n /**\n * Update tab process state to exited\n */\n markTabExited(id: string, exitCode: number): void {\n const tab = this.tabs.get(id);\n if (!tab) return;\n\n tab.exited = true;\n tab.exitCode = exitCode;\n }\n\n /**\n * Set process for a tab\n */\n setTabProcess(id: string, process: ITerminalTab['process'], inputWriter: ITerminalTab['inputWriter']): void {\n const tab = this.tabs.get(id);\n if (!tab) return;\n\n tab.process = process;\n tab.inputWriter = inputWriter;\n }\n\n /**\n * Update theme for all terminals\n */\n updateAllThemes(isBright: boolean): void {\n const theme = this.getTerminalTheme(isBright);\n for (const tab of this.tabs.values()) {\n tab.terminal.options.theme = theme;\n }\n }\n\n /**\n * Dispose all tabs and cleanup\n */\n disposeAll(): void {\n for (const [id] of this.tabs) {\n this.closeTab(id);\n }\n this.tabs.clear();\n }\n}\n", "import {\n DeesElement,\n property,\n html,\n customElement,\n type TemplateResult,\n css,\n cssManager,\n state,\n} from '@design.estate/dees-element';\nimport * as domtools from '@design.estate/dees-domtools';\n\nimport type { Terminal } from 'xterm';\nimport { themeDefaultStyles } from '../../00theme.js';\nimport type { IExecutionEnvironment } from '../../00group-runtime/index.js';\nimport { WebContainerEnvironment } from '../../00group-runtime/index.js';\nimport '../../00group-utility/dees-icon/dees-icon.js';\nimport '../../00group-feedback/dees-actionbar/dees-actionbar.js';\nimport type { DeesActionbar } from '../../00group-feedback/dees-actionbar/dees-actionbar.js';\nimport { TerminalTabManager } from './terminal-tab-manager.js';\nimport type {\n ITerminalTab,\n ICreateTerminalTabOptions,\n TTerminalTabType,\n} from './interfaces.js';\nimport { DeesServiceLibLoader } from '../../../services/index.js';\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'dees-workspace-terminal': DeesWorkspaceTerminal;\n }\n}\n\n@customElement('dees-workspace-terminal')\nexport class DeesWorkspaceTerminal extends DeesElement {\n public static demo = () => {\n const env = new WebContainerEnvironment();\n return html``;\n };\n public static demoGroups = ['Workspace'];\n\n // INSTANCE\n private resizeObserver: ResizeObserver;\n private tabManager: TerminalTabManager;\n\n /**\n * The execution environment (required).\n * Use WebContainerEnvironment for browser-based execution.\n */\n @property({ type: Object })\n accessor executionEnvironment: IExecutionEnvironment | null = null;\n\n @property()\n accessor setupCommand = '';\n\n /**\n * Environment variables to set in the shell\n */\n @property()\n accessor environmentVariables: { [key: string]: string } = {};\n\n /**\n * Width of the tab bar in pixels\n */\n @property({ type: Number })\n accessor tabBarWidth: number = 160;\n\n /**\n * Whether to show the tab bar\n */\n @property({ type: Boolean })\n accessor showTabBar: boolean = true;\n\n // Tab state\n @state()\n accessor tabs: ITerminalTab[] = [];\n\n @state()\n accessor activeTabId: string | null = null;\n\n // Theme subscription for dynamic theme updates\n private terminalThemeSubscription: any = null;\n private isBright: boolean = false;\n\n // Actionbar reference for terminal-context notifications\n private terminalActionbar: DeesActionbar | null = null;\n\n /**\n * Promise that resolves when the environment is ready.\n * @deprecated Use executionEnvironment directly\n */\n private environmentDeferred = new domtools.plugins.smartpromise.Deferred();\n public environmentPromise = this.environmentDeferred.promise;\n\n constructor() {\n super();\n this.tabManager = new TerminalTabManager();\n this.resizeObserver = new ResizeObserver(() => {\n this.handleResize();\n });\n }\n\n public static styles = [\n themeDefaultStyles,\n cssManager.defaultStyles,\n css`\n :host {\n background: ${cssManager.bdTheme('#ffffff', '#000000')};\n position: absolute;\n height: 100%;\n width: 100%;\n display: flex;\n flex-direction: row;\n }\n\n * {\n box-sizing: border-box;\n }\n\n .terminal-container {\n display: flex;\n flex-direction: row;\n width: 100%;\n height: 100%;\n }\n\n .terminal-content {\n flex: 1;\n display: flex;\n flex-direction: column;\n overflow: hidden;\n background: ${cssManager.bdTheme('#ffffff', '#000000')};\n }\n\n #active-terminal-container {\n flex: 1;\n position: relative;\n min-height: 0;\n margin: 20px;\n }\n\n .terminal-content dees-actionbar {\n flex-shrink: 0;\n }\n\n /* Tab bar on the right side */\n .tab-bar {\n display: flex;\n flex-direction: column;\n background: ${cssManager.bdTheme('hsl(0 0% 96%)', 'hsl(0 0% 7%)')};\n border-left: 1px solid ${cssManager.bdTheme('hsl(0 0% 85%)', 'hsl(0 0% 15%)')};\n flex-shrink: 0;\n overflow: hidden;\n }\n\n .tab-bar-header {\n display: flex;\n align-items: center;\n justify-content: space-between;\n padding: 8px 10px;\n border-bottom: 1px solid ${cssManager.bdTheme('hsl(0 0% 88%)', 'hsl(0 0% 12%)')};\n font-size: 11px;\n font-weight: 600;\n text-transform: uppercase;\n letter-spacing: 0.5px;\n color: ${cssManager.bdTheme('hsl(0 0% 45%)', 'hsl(0 0% 55%)')};\n }\n\n .tab-bar-title {\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n }\n\n .tab-bar-actions {\n display: flex;\n gap: 2px;\n }\n\n .tab-action {\n width: 22px;\n height: 22px;\n display: flex;\n align-items: center;\n justify-content: center;\n border-radius: 4px;\n cursor: pointer;\n color: ${cssManager.bdTheme('hsl(0 0% 50%)', 'hsl(0 0% 60%)')};\n transition: all 0.15s ease;\n }\n\n .tab-action:hover {\n background: ${cssManager.bdTheme('hsl(0 0% 88%)', 'hsl(0 0% 15%)')};\n color: ${cssManager.bdTheme('hsl(0 0% 30%)', 'hsl(0 0% 80%)')};\n }\n\n .tab-list {\n flex: 1;\n overflow-y: auto;\n padding: 4px;\n }\n\n .terminal-tab {\n display: flex;\n align-items: center;\n gap: 8px;\n padding: 8px 10px;\n margin-bottom: 2px;\n border-radius: 6px;\n cursor: pointer;\n font-size: 12px;\n color: ${cssManager.bdTheme('hsl(0 0% 45%)', 'hsl(0 0% 60%)')};\n transition: all 0.15s ease;\n }\n\n .terminal-tab:hover {\n background: ${cssManager.bdTheme('hsl(0 0% 90%)', 'hsl(0 0% 12%)')};\n color: ${cssManager.bdTheme('hsl(0 0% 25%)', 'hsl(0 0% 80%)')};\n }\n\n .terminal-tab.active {\n background: ${cssManager.bdTheme('hsl(210 100% 95%)', 'hsl(210 30% 15%)')};\n color: ${cssManager.bdTheme('hsl(210 100% 40%)', 'hsl(210 100% 70%)')};\n }\n\n .terminal-tab.exited {\n opacity: 0.7;\n }\n\n .tab-icon {\n flex-shrink: 0;\n }\n\n .tab-icon.running {\n color: ${cssManager.bdTheme('hsl(142 70% 40%)', 'hsl(142 70% 55%)')};\n }\n\n .tab-label {\n flex: 1;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n }\n\n .exit-badge {\n font-size: 10px;\n padding: 1px 5px;\n border-radius: 8px;\n font-weight: 600;\n flex-shrink: 0;\n }\n\n .exit-badge.success {\n background: ${cssManager.bdTheme('hsl(142 70% 90%)', 'hsl(142 30% 20%)')};\n color: ${cssManager.bdTheme('hsl(142 70% 35%)', 'hsl(142 70% 60%)')};\n }\n\n .exit-badge.error {\n background: ${cssManager.bdTheme('hsl(0 70% 93%)', 'hsl(0 30% 20%)')};\n color: ${cssManager.bdTheme('hsl(0 70% 45%)', 'hsl(0 70% 60%)')};\n }\n\n .tab-close {\n width: 18px;\n height: 18px;\n display: flex;\n align-items: center;\n justify-content: center;\n border-radius: 4px;\n opacity: 0;\n transition: all 0.15s ease;\n flex-shrink: 0;\n }\n\n .terminal-tab:hover .tab-close {\n opacity: 0.6;\n }\n\n .tab-close:hover {\n opacity: 1 !important;\n background: ${cssManager.bdTheme('hsl(0 0% 85%)', 'hsl(0 0% 25%)')};\n color: ${cssManager.bdTheme('hsl(0 70% 50%)', 'hsl(0 70% 60%)')};\n }\n\n .empty-state {\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n height: 100%;\n color: ${cssManager.bdTheme('hsl(0 0% 50%)', 'hsl(0 0% 50%)')};\n font-size: 13px;\n gap: 8px;\n }\n\n /* xterm.js styles */\n .xterm {\n font-feature-settings: 'liga' 0;\n position: relative;\n user-select: none;\n -ms-user-select: none;\n -webkit-user-select: none;\n }\n\n .xterm.focus,\n .xterm:focus {\n outline: none;\n }\n\n .xterm .xterm-helpers {\n position: absolute;\n top: 0;\n z-index: 5;\n }\n\n .xterm .xterm-helper-textarea {\n padding: 0;\n border: 0;\n margin: 0;\n position: absolute;\n opacity: 0;\n left: -9999em;\n top: 0;\n width: 0;\n height: 0;\n z-index: -5;\n white-space: nowrap;\n overflow: hidden;\n resize: none;\n }\n\n .xterm .composition-view {\n background: ${cssManager.bdTheme('#ffffff', '#000000')};\n color: ${cssManager.bdTheme('#333333', '#ffffff')};\n display: none;\n position: absolute;\n white-space: nowrap;\n z-index: 1;\n }\n\n .xterm .composition-view.active {\n display: block;\n }\n\n .xterm .xterm-viewport {\n background-color: ${cssManager.bdTheme('#ffffff', '#000000')};\n overflow-y: scroll;\n cursor: default;\n position: absolute;\n right: 0;\n left: 0;\n top: 0;\n bottom: 0;\n }\n\n .xterm .xterm-screen {\n position: relative;\n }\n\n .xterm .xterm-screen canvas {\n position: absolute;\n left: 0;\n top: 0;\n }\n\n .xterm .xterm-scroll-area {\n visibility: hidden;\n }\n\n .xterm-char-measure-element {\n display: inline-block;\n visibility: hidden;\n position: absolute;\n top: 0;\n left: -9999em;\n line-height: normal;\n }\n\n .xterm {\n cursor: text;\n }\n\n .xterm.enable-mouse-events {\n cursor: default;\n }\n\n .xterm.xterm-cursor-pointer {\n cursor: pointer;\n }\n\n .xterm.column-select.focus {\n cursor: crosshair;\n }\n\n .xterm .xterm-accessibility,\n .xterm .xterm-message {\n position: absolute;\n left: 0;\n top: 0;\n bottom: 0;\n right: 0;\n z-index: 10;\n color: transparent;\n }\n\n .xterm .live-region {\n position: absolute;\n left: -9999px;\n width: 1px;\n height: 1px;\n overflow: hidden;\n }\n\n .xterm-dim {\n opacity: 0.5;\n }\n\n .xterm-underline {\n text-decoration: underline;\n }\n `,\n ];\n\n public render(): TemplateResult {\n const activeTab = this.activeTabId ? this.tabManager.getTab(this.activeTabId) : null;\n\n return html`\n
      \n \n
      \n ${activeTab ? html`\n
      \n ` : html`\n
      \n \n No terminal open\n
      \n `}\n \n
      \n\n \n ${this.showTabBar ? html`\n
      \n
      \n Terminals\n
      \n
      \n \n
      \n
      \n
      \n\n
      \n ${this.tabs.map(tab => html`\n this.switchToTab(tab.id)}\n >\n \n ${tab.label}\n ${tab.exited ? html`\n \n ${tab.exitCode}\n \n ` : ''}\n ${tab.closeable ? html`\n this.handleTabClose(e, tab.id)}>\n \n \n ` : ''}\n
      \n `)}\n
      \n
      \n ` : ''}\n \n `;\n }\n\n public async firstUpdated(): Promise {\n const domtoolsInstance = await this.domtoolsPromise;\n\n // Get current theme\n this.isBright = domtoolsInstance.themeManager.goBrightBoolean;\n\n // Subscribe to theme changes\n this.terminalThemeSubscription = domtoolsInstance.themeManager.themeObservable.subscribe(\n (goBright: boolean) => {\n this.isBright = goBright;\n this.tabManager.updateAllThemes(goBright);\n }\n );\n\n // Load xterm from CDN\n const libLoader = DeesServiceLibLoader.getInstance();\n const [xtermBundle, fitAddonBundle] = await Promise.all([\n libLoader.loadXterm(),\n libLoader.loadXtermFitAddon(),\n ]);\n\n // Initialize tab manager with loaded modules\n this.tabManager.setXtermModules(xtermBundle, fitAddonBundle);\n\n // Create default shell tab\n await this.createShellTab();\n }\n\n async connectedCallback(): Promise {\n await super.connectedCallback();\n // ResizeObserver is set up in attachTerminalToContainer when the container exists\n }\n\n async disconnectedCallback(): Promise {\n // Unobserve the terminal container\n const container = this.shadowRoot?.getElementById('active-terminal-container');\n if (container) {\n this.resizeObserver.unobserve(container);\n }\n if (this.terminalThemeSubscription) {\n this.terminalThemeSubscription.unsubscribe();\n this.terminalThemeSubscription = null;\n }\n this.tabManager.disposeAll();\n await super.disconnectedCallback();\n }\n\n // ========== Tab Management ==========\n\n private async handleAddTab(): Promise {\n await this.createShellTab();\n }\n\n private handleTabClose(e: Event, tabId: string): void {\n e.stopPropagation();\n this.closeTab(tabId);\n }\n\n private switchToTab(tabId: string): void {\n if (tabId === this.activeTabId) return;\n\n const tab = this.tabManager.getTab(tabId);\n if (!tab) return;\n\n const previousTabId = this.activeTabId;\n\n // Detach current terminal from DOM\n if (this.activeTabId) {\n this.detachActiveTerminal();\n }\n\n // Update active tab\n this.activeTabId = tabId;\n this.tabs = this.tabManager.getAllTabs();\n\n // Wait for render then attach new terminal\n this.updateComplete.then(() => {\n this.attachTerminalToContainer(tab);\n\n // Dispatch event\n this.dispatchEvent(\n new CustomEvent('tab-switched', {\n bubbles: true,\n composed: true,\n detail: { tabId, previousTabId },\n })\n );\n });\n }\n\n private detachActiveTerminal(): void {\n const container = this.shadowRoot?.getElementById('active-terminal-container');\n if (container) {\n container.innerHTML = '';\n }\n }\n\n private attachTerminalToContainer(tab: ITerminalTab): void {\n const container = this.shadowRoot?.getElementById('active-terminal-container');\n if (!container) return;\n\n // Observe container for resize (handles actionbar appearing/disappearing)\n // ResizeObserver.observe() is idempotent - safe to call multiple times\n this.resizeObserver.observe(container);\n\n // Clear container\n container.innerHTML = '';\n\n // Open terminal in container\n tab.terminal.open(container);\n tab.fitAddon.fit();\n tab.terminal.focus();\n }\n\n private handleResize(): void {\n if (this.activeTabId) {\n const tab = this.tabManager.getTab(this.activeTabId);\n if (tab) {\n tab.fitAddon.fit();\n }\n }\n }\n\n // ========== Process Management ==========\n\n private async spawnProcessForTab(\n tab: ITerminalTab,\n command: string,\n args: string[] = []\n ): Promise {\n if (!this.executionEnvironment) {\n tab.terminal.write('\\x1b[31m');\n tab.terminal.write('\u274C No execution environment available.\\r\\n');\n tab.terminal.write('\\x1b[0m');\n return;\n }\n\n try {\n // Initialize environment if needed\n if (!this.executionEnvironment.ready) {\n tab.terminal.write('Initializing environment...\\r\\n');\n await this.executionEnvironment.init();\n }\n\n // Spawn process\n const process = await this.executionEnvironment.spawn(command, args);\n\n // Set up output piping\n process.output.pipeTo(\n new WritableStream({\n write: (data) => {\n tab.terminal.write(data);\n },\n })\n );\n\n // Set up input for interactive processes\n const inputWriter = process.input.getWriter();\n tab.terminal.onData((data) => {\n inputWriter.write(data);\n });\n\n // Store process reference\n this.tabManager.setTabProcess(tab.id, process, inputWriter);\n this.tabs = this.tabManager.getAllTabs();\n\n // Handle process exit\n process.exit.then((exitCode) => {\n this.handleProcessExit(tab.id, exitCode);\n });\n } catch (error) {\n tab.terminal.write('\\x1b[31m');\n tab.terminal.write(`\u274C Failed to spawn process: ${error}\\r\\n`);\n tab.terminal.write('\\x1b[0m');\n console.error('Failed to spawn process:', error);\n }\n }\n\n private handleProcessExit(tabId: string, exitCode: number): void {\n const tab = this.tabManager.getTab(tabId);\n if (!tab) return;\n\n // Update tab state\n this.tabManager.markTabExited(tabId, exitCode);\n\n // Write exit message to terminal\n const message =\n exitCode === 0\n ? '\\r\\n\\x1b[32m[Process completed successfully]\\x1b[0m\\r\\n'\n : `\\r\\n\\x1b[31m[Process exited with code ${exitCode}]\\x1b[0m\\r\\n`;\n tab.terminal.write(message);\n\n // Update state to trigger re-render\n this.tabs = this.tabManager.getAllTabs();\n\n // Dispatch event\n this.dispatchEvent(\n new CustomEvent('process-complete', {\n bubbles: true,\n composed: true,\n detail: { tabId, exitCode },\n })\n );\n\n // Show actionbar to offer closing the tab (only if tab is closeable)\n if (tab.closeable) {\n this.showExitedTabActionbar(tabId, tab.label, exitCode);\n }\n }\n\n /**\n * Show actionbar offering to close an exited tab\n */\n private async showExitedTabActionbar(tabId: string, tabLabel: string, exitCode: number): Promise {\n const isSuccess = exitCode === 0;\n const result = await this.showActionbar({\n message: isSuccess\n ? `\"${tabLabel}\" completed. Close tab?`\n : `\"${tabLabel}\" exited (code ${exitCode}). Close tab?`,\n type: isSuccess ? 'info' : 'warning',\n icon: isSuccess ? 'lucide:checkCircle' : 'lucide:alertTriangle',\n actions: [\n { id: 'close', label: 'Close Tab', primary: true },\n { id: 'keep', label: 'Keep Open' },\n ],\n timeout: { duration: 10000, defaultActionId: 'close' },\n dismissible: true,\n });\n\n // Close tab if user clicked \"Close Tab\" or timeout triggered auto-close\n if (result.actionId === 'close') {\n this.closeTab(tabId);\n }\n }\n\n // ========== Public API ==========\n\n /**\n * Create a new shell tab\n */\n public async createShellTab(label?: string): Promise {\n const tab = this.tabManager.createTab(\n {\n type: 'shell',\n label: label || `bash ${this.tabManager.getTabCount() + 1}`,\n closeable: this.tabManager.getTabCount() > 0, // First tab not closeable\n },\n this.isBright\n );\n\n this.tabs = this.tabManager.getAllTabs();\n\n // Switch to new tab\n this.switchToTab(tab.id);\n\n // Wait for DOM update then spawn shell\n await this.updateComplete;\n await this.spawnProcessForTab(tab, 'jsh');\n\n // Run setup command if this is the first tab\n if (this.tabManager.getTabCount() === 1 && this.setupCommand) {\n await this.waitForPrompt(tab.terminal, '~/');\n if (tab.inputWriter) {\n tab.inputWriter.write(this.setupCommand);\n }\n }\n\n // Dispatch event\n this.dispatchEvent(\n new CustomEvent('tab-created', {\n bubbles: true,\n composed: true,\n detail: { tabId: tab.id },\n })\n );\n\n return tab.id;\n }\n\n /**\n * Create a terminal tab for running a process\n */\n public async createProcessTab(options: ICreateTerminalTabOptions): Promise {\n const tab = this.tabManager.createTab(options, this.isBright);\n\n this.tabs = this.tabManager.getAllTabs();\n\n // Switch to new tab if requested (default: true)\n if (options.switchToTab !== false) {\n this.switchToTab(tab.id);\n }\n\n // Wait for DOM update\n await this.updateComplete;\n\n // Spawn process if command provided\n if (options.command) {\n await this.spawnProcessForTab(tab, options.command, options.args);\n }\n\n // Dispatch event\n this.dispatchEvent(\n new CustomEvent('tab-created', {\n bubbles: true,\n composed: true,\n detail: { tabId: tab.id },\n })\n );\n\n return tab.id;\n }\n\n /**\n * Get the currently active tab\n */\n public getActiveTab(): ITerminalTab | null {\n if (!this.activeTabId) return null;\n return this.tabManager.getTab(this.activeTabId) || null;\n }\n\n /**\n * Get all tabs\n */\n public getTabs(): ITerminalTab[] {\n return this.tabManager.getAllTabs();\n }\n\n /**\n * Switch to a specific tab by ID\n */\n public selectTab(tabId: string): boolean {\n if (!this.tabManager.hasTab(tabId)) return false;\n this.switchToTab(tabId);\n return true;\n }\n\n /**\n * Close a tab by ID\n */\n public closeTab(tabId: string): boolean {\n const tab = this.tabManager.getTab(tabId);\n if (!tab || !tab.closeable) return false;\n\n // If closing active tab, switch to another\n if (tabId === this.activeTabId) {\n const allTabs = this.tabManager.getAllTabs();\n const currentIndex = allTabs.findIndex((t) => t.id === tabId);\n const nextTab = allTabs[currentIndex + 1] || allTabs[currentIndex - 1];\n\n if (nextTab) {\n this.switchToTab(nextTab.id);\n } else {\n this.activeTabId = null;\n this.detachActiveTerminal();\n }\n }\n\n // Close the tab\n this.tabManager.closeTab(tabId);\n this.tabs = this.tabManager.getAllTabs();\n\n // Dispatch event\n this.dispatchEvent(\n new CustomEvent('tab-closed', {\n bubbles: true,\n composed: true,\n detail: { tabId },\n })\n );\n\n return true;\n }\n\n /**\n * Write data to a tab's terminal\n */\n public writeToTab(tabId: string, data: string): boolean {\n const tab = this.tabManager.getTab(tabId);\n if (!tab) return false;\n tab.terminal.write(data);\n return true;\n }\n\n /**\n * Send input to a tab's process (if interactive)\n */\n public sendInputToTab(tabId: string, data: string): boolean {\n const tab = this.tabManager.getTab(tabId);\n if (!tab || !tab.inputWriter) return false;\n tab.inputWriter.write(data);\n return true;\n }\n\n /**\n * Show an actionbar notification in the terminal panel context.\n * Use this for terminal-related decisions (e.g., retry failed process, kill process, etc.)\n */\n public async showActionbar(\n options: Parameters[0]\n ): Promise> {\n if (!this.terminalActionbar) {\n this.terminalActionbar = this.shadowRoot?.querySelector('dees-actionbar') as DeesActionbar;\n }\n return this.terminalActionbar?.show(options);\n }\n\n // ========== Utility Methods ==========\n\n public async waitForPrompt(term: Terminal, prompt: string): Promise {\n return new Promise((resolve) => {\n const checkPrompt = () => {\n const lines = term.buffer.active;\n for (let i = 0; i < lines.length; i++) {\n const line = lines.getLine(i);\n if (line && line.translateToString().includes(prompt)) {\n setTimeout(() => {\n resolve();\n }, 100);\n return;\n }\n }\n setTimeout(checkPrompt, 100);\n };\n\n checkPrompt();\n });\n }\n\n public async setEnvironmentVariables(envArg: { [key: string]: string }): Promise {\n if (!this.executionEnvironment) {\n throw new Error('No execution environment available');\n }\n\n let envFile = '';\n for (const key in envArg) {\n envFile += `export ${key}=\"${envArg[key]}\"\\n`;\n }\n\n await this.executionEnvironment.writeFile('/source.env', envFile);\n }\n\n /**\n * Get the underlying execution environment.\n */\n public getExecutionEnvironment(): IExecutionEnvironment | null {\n return this.executionEnvironment;\n }\n}\n", "import { html, DeesElement, customElement, css, cssManager } from '@design.estate/dees-element';\nimport type { IView } from './dees-simple-appdash.js';\nimport '../../00group-form/dees-form/dees-form.js';\nimport '../../00group-input/dees-input-text/dees-input-text.js';\nimport '../../00group-input/dees-input-checkbox/dees-input-checkbox.js';\nimport '../../00group-input/dees-input-dropdown/dees-input-dropdown.js';\nimport '../../00group-input/dees-input-radiogroup/dees-input-radiogroup.js';\nimport '../../00group-form/dees-form-submit/dees-form-submit.js';\nimport '../../00group-dataview/dees-statsgrid/dees-statsgrid.js';\nimport type { IStatsTile } from '../../00group-dataview/dees-statsgrid/dees-statsgrid.js';\n\n// Create demo view components\n@customElement('demo-view-dashboard')\nclass DemoViewDashboard extends DeesElement {\n static styles = [\n cssManager.defaultStyles,\n css`\n :host {\n display: block;\n padding: 40px;\n }\n h1 {\n margin: 0 0 20px 0;\n color: ${cssManager.bdTheme('#000', '#fff')};\n }\n dees-statsgrid {\n margin-top: 20px;\n }\n `\n ];\n \n private statsTiles: IStatsTile[] = [\n {\n id: 'users',\n title: 'Active Users',\n value: 1234,\n type: 'number',\n icon: 'faUsers',\n description: '+15% from last week',\n color: '#22c55e'\n },\n {\n id: 'pageviews',\n title: 'Page Views',\n value: 56700,\n type: 'number',\n icon: 'faEye',\n description: '56.7k total views',\n color: '#3b82f6'\n },\n {\n id: 'uptime',\n title: 'System Uptime',\n value: 89,\n unit: '%',\n type: 'gauge',\n icon: 'faServer',\n description: 'Last 30 days',\n color: '#10b981',\n gaugeOptions: {\n min: 0,\n max: 100,\n thresholds: [\n { value: 80, color: '#ef4444' },\n { value: 90, color: '#f59e0b' },\n { value: 100, color: '#10b981' }\n ]\n }\n },\n {\n id: 'response',\n title: 'Avg Response Time',\n value: 3.2,\n unit: 's',\n type: 'number',\n icon: 'faClock',\n description: '-0.5s improvement',\n color: '#f59e0b'\n },\n {\n id: 'revenue',\n title: 'Monthly Revenue',\n value: 48520,\n unit: '$',\n type: 'trend',\n icon: 'faDollarSign',\n description: '+8.2% growth',\n color: '#22c55e',\n trendData: [35000, 38000, 37500, 41000, 39800, 42000, 44100, 43200, 45600, 47100, 46800, 48520]\n },\n {\n id: 'traffic',\n title: 'Traffic Trend',\n value: 1680,\n type: 'trend',\n icon: 'faChartLine',\n description: 'Last 7 days',\n color: '#3b82f6',\n trendData: [1200, 1350, 1100, 1450, 1600, 1550, 1680]\n }\n ];\n \n render() {\n return html`\n

      Dashboard

      \n

      Welcome to your application dashboard. Here's an overview of your metrics:

      \n {\n console.log('Tile action:', e.detail);\n }}\n >\n `;\n }\n}\n\n@customElement('demo-view-analytics')\nclass DemoViewAnalytics extends DeesElement {\n static styles = [\n cssManager.defaultStyles,\n css`\n :host {\n display: block;\n padding: 40px;\n }\n h1 {\n margin: 0 0 20px 0;\n color: ${cssManager.bdTheme('#000', '#fff')};\n }\n `\n ];\n \n render() {\n return html`\n

      Analytics

      \n

      This is the analytics view. You can add charts and metrics here.

      \n `;\n }\n}\n\n@customElement('demo-view-settings')\nclass DemoViewSettings extends DeesElement {\n static styles = [\n cssManager.defaultStyles,\n css`\n :host {\n display: block;\n padding: 40px;\n }\n h1 {\n margin: 0 0 20px 0;\n color: ${cssManager.bdTheme('#000', '#fff')};\n }\n .settings-section {\n margin-top: 30px;\n }\n .settings-section h2 {\n font-size: 18px;\n margin: 0 0 15px 0;\n color: ${cssManager.bdTheme('#333', '#ccc')};\n }\n .horizontal-form-section {\n background: ${cssManager.bdTheme('#f5f5f5', '#1a1a1a')};\n padding: 20px;\n border-radius: 8px;\n margin: 15px 0;\n }\n `\n ];\n \n render() {\n return html`\n

      Settings

      \n

      Configure your application settings below:

      \n \n
      \n

      General Settings

      \n \n \n \n \n \n \n Save General Settings\n \n
      \n \n
      \n

      Display Preferences

      \n
      \n

      Quick display settings using horizontal layout:

      \n \n \n \n \n \n
      \n
      \n \n
      \n

      Notification Settings

      \n \n \n \n \n Update Notifications\n \n
      \n `;\n }\n}\n\nexport const demoFunc = () => html`\n \n
      \n {\n console.log('Logout event triggered');\n alert('Logout clicked!');\n }}\n @view-select=${(e: CustomEvent) => {\n console.log('View selected:', e.detail.view.name);\n }}\n >\n
      \n`;\n", "import { demoFunc } from './dees-simple-appdash.demo.js';\n\nimport {\n customElement,\n html,\n DeesElement,\n property,\n type TemplateResult,\n cssManager,\n css,\n unsafeCSS,\n type CSSResult,\n state,\n domtools,\n} from '@design.estate/dees-element';\nimport '../../00group-utility/dees-icon/dees-icon.js';\nimport type { DeesWorkspaceTerminal } from '../../00group-workspace/dees-workspace-terminal/dees-workspace-terminal.js';\nimport { themeDefaultStyles } from '../../00theme.js';\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'dees-simple-appdash': DeesSimpleAppDash;\n }\n}\n\nexport interface IView {\n name: string;\n iconName?: string;\n element: DeesElement['constructor']['prototype'];\n}\n\n@customElement('dees-simple-appdash')\nexport class DeesSimpleAppDash extends DeesElement {\n // STATIC\n public static demo = demoFunc;\n public static demoGroups = ['Simple'];\n // INSTANCE\n\n @property()\n accessor name: string = 'Application Dashboard';\n\n @property({ type: Array })\n accessor viewTabs: IView[] = [];\n\n @property({ type: String })\n accessor terminalSetupCommand: string = `echo \"Terminal ready\"`;\n\n @state()\n accessor selectedView: IView;\n\n\n public static styles = [\n themeDefaultStyles,\n cssManager.defaultStyles,\n css`\n /* TODO: Migrate hardcoded values to --dees-* CSS variables */\n :host {\n color: ${cssManager.bdTheme('hsl(0 0% 15%)', 'hsl(0 0% 90%)')};\n user-select: none;\n display: block;\n overflow: hidden;\n position: relative;\n height: 100%;\n width: 100%;\n }\n\n .maincontainer {\n position: absolute;\n top: 0px;\n left: 0px;\n right: 0px;\n bottom: 0px;\n overflow: hidden;\n }\n\n .appbar {\n position: absolute;\n top: 0px;\n left: 0px;\n height: calc(100% - 24px);\n width: 240px;\n background: ${cssManager.bdTheme('hsl(0 0% 99%)', 'hsl(0 0% 7%)')};\n border-right: 1px solid ${cssManager.bdTheme('hsl(0 0% 91%)', 'hsl(0 0% 13%)')};\n font-size: 13px;\n font-family: 'Geist Sans', sans-serif;\n z-index: 2;\n display: grid;\n grid-template-rows: auto 1fr min-content;\n overflow: hidden;\n }\n\n .sidebar-header {\n padding: 20px 16px;\n border-bottom: 1px solid ${cssManager.bdTheme('hsl(0 0% 91%)', 'hsl(0 0% 13%)')};\n display: flex;\n align-items: center;\n gap: 12px;\n }\n\n .header-icon-wrapper {\n display: flex;\n align-items: center;\n justify-content: center;\n width: 36px;\n height: 36px;\n border-radius: 10px;\n background: ${cssManager.bdTheme(\n 'linear-gradient(135deg, hsl(215 20% 95%) 0%, hsl(215 20% 90%) 100%)',\n 'linear-gradient(135deg, hsl(215 20% 18%) 0%, hsl(215 20% 14%) 100%)'\n )};\n box-shadow: ${cssManager.bdTheme(\n '0 1px 2px rgb(0 0 0 / 0.05), inset 0 1px 0 rgb(255 255 255 / 0.5)',\n '0 1px 2px rgb(0 0 0 / 0.2), inset 0 1px 0 rgb(255 255 255 / 0.05)'\n )};\n }\n\n .header-icon-wrapper dees-icon {\n font-size: 18px;\n color: ${cssManager.bdTheme('hsl(215 20% 40%)', 'hsl(215 20% 70%)')};\n }\n\n .appName {\n font-size: 15px;\n font-weight: 600;\n color: ${cssManager.bdTheme('hsl(0 0% 9%)', 'hsl(0 0% 98%)')};\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n letter-spacing: -0.02em;\n }\n\n .viewTabs-container {\n overflow-y: auto;\n padding: 12px 8px;\n scrollbar-width: thin;\n scrollbar-color: ${cssManager.bdTheme('hsl(0 0% 85%)', 'hsl(0 0% 20%)')} transparent;\n }\n\n .viewTabs-container::-webkit-scrollbar {\n width: 6px;\n }\n\n .viewTabs-container::-webkit-scrollbar-track {\n background: transparent;\n }\n\n .viewTabs-container::-webkit-scrollbar-thumb {\n background: ${cssManager.bdTheme('hsl(0 0% 85%)', 'hsl(0 0% 20%)')};\n border-radius: 3px;\n }\n\n .viewTabs-container::-webkit-scrollbar-thumb:hover {\n background: ${cssManager.bdTheme('hsl(0 0% 75%)', 'hsl(0 0% 30%)')};\n }\n\n .section-label {\n font-size: 11px;\n font-weight: 600;\n text-transform: uppercase;\n letter-spacing: 0.05em;\n color: ${cssManager.bdTheme('hsl(0 0% 50%)', 'hsl(0 0% 50%)')};\n padding: 8px 12px 8px;\n margin-bottom: 4px;\n }\n\n .viewTabs {\n display: flex;\n flex-direction: column;\n gap: 2px;\n }\n\n .viewTab {\n display: flex;\n align-items: center;\n gap: 10px;\n padding: 10px 12px;\n cursor: default;\n transition: all 0.15s ease;\n color: ${cssManager.bdTheme('hsl(0 0% 40%)', 'hsl(0 0% 65%)')};\n user-select: none;\n position: relative;\n border-radius: 8px;\n }\n\n .viewTab:hover {\n background: ${cssManager.bdTheme('hsl(0 0% 0% / 0.04)', 'hsl(0 0% 100% / 0.05)')};\n color: ${cssManager.bdTheme('hsl(0 0% 15%)', 'hsl(0 0% 90%)')};\n }\n\n .viewTab:active {\n background: ${cssManager.bdTheme('hsl(0 0% 0% / 0.06)', 'hsl(0 0% 100% / 0.07)')};\n transform: scale(0.99);\n }\n\n .viewTab.selected {\n background: ${cssManager.bdTheme('hsl(215 25% 95%)', 'hsl(215 20% 15%)')};\n color: ${cssManager.bdTheme('hsl(215 25% 30%)', 'hsl(215 25% 85%)')};\n font-weight: 500;\n }\n\n .viewTab.selected::before {\n content: '';\n position: absolute;\n left: 0;\n top: 8px;\n bottom: 8px;\n width: 3px;\n border-radius: 0 2px 2px 0;\n background: ${cssManager.bdTheme('hsl(215 70% 50%)', 'hsl(215 70% 60%)')};\n }\n\n .viewTab dees-icon {\n font-size: 16px;\n opacity: 0.55;\n transition: all 0.15s ease;\n }\n\n .viewTab:hover dees-icon {\n opacity: 0.75;\n }\n\n .viewTab.selected dees-icon {\n opacity: 0.9;\n color: ${cssManager.bdTheme('hsl(215 70% 45%)', 'hsl(215 70% 65%)')};\n }\n\n .viewTab span {\n flex: 1;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n }\n\n .appActions {\n padding: 12px 8px;\n border-top: 1px solid ${cssManager.bdTheme('hsl(0 0% 91%)', 'hsl(0 0% 13%)')};\n }\n\n .action {\n display: flex;\n align-items: center;\n gap: 10px;\n padding: 10px 12px;\n border-radius: 8px;\n cursor: default;\n transition: all 0.15s ease;\n color: ${cssManager.bdTheme('hsl(0 0% 40%)', 'hsl(0 0% 65%)')};\n }\n\n .action:hover {\n background: ${cssManager.bdTheme('hsl(0 84% 60% / 0.08)', 'hsl(0 84% 60% / 0.12)')};\n color: ${cssManager.bdTheme('hsl(0 84% 45%)', 'hsl(0 84% 65%)')};\n }\n\n .action dees-icon {\n font-size: 16px;\n opacity: 0.6;\n transition: all 0.15s ease;\n }\n\n .action:hover dees-icon {\n opacity: 0.9;\n color: ${cssManager.bdTheme('hsl(0 84% 45%)', 'hsl(0 84% 65%)')};\n }\n\n .appcontent {\n z-index: 1;\n position: absolute;\n top: 0px;\n right: 0px;\n height: calc(100% - 24px);\n bottom: 24px;\n width: calc(100% - 240px);\n overflow: auto;\n background: ${cssManager.bdTheme('hsl(0 0% 97%)', 'hsl(0 0% 5%)')};\n overscroll-behavior: contain;\n }\n\n .controlbar {\n color: #fff;\n position: absolute;\n bottom: 0px;\n left: 0px;\n width: 100%;\n height: 24px;\n background: ${cssManager.bdTheme('hsl(220 13% 18%)', 'hsl(220 13% 12%)')};\n z-index: 2;\n display: flex;\n justify-content: flex-end;\n align-items: center;\n flex-direction: row;\n font-size: 11px;\n font-weight: 500;\n letter-spacing: 0.01em;\n }\n\n .control {\n display: flex;\n align-items: center;\n gap: 6px;\n padding: 0 12px;\n height: 100%;\n white-space: nowrap;\n cursor: default;\n color: hsl(0 0% 70%);\n transition: all 0.15s ease;\n border-left: 1px solid hsl(0 0% 100% / 0.08);\n }\n\n .control:first-child {\n border-left: none;\n }\n\n .control:hover {\n background: hsl(0 0% 100% / 0.06);\n color: hsl(0 0% 95%);\n }\n\n .control dees-icon {\n font-size: 13px;\n }\n\n .control.status-connected dees-icon {\n color: hsl(142 70% 50%);\n }\n\n .control.status-terminal dees-icon {\n color: hsl(45 90% 55%);\n }\n `,\n ];\n\n public render(): TemplateResult {\n return html`\n
      \n
      \n
      \n
      \n \n
      \n
      ${this.name}
      \n
      \n
      \n
      Navigation
      \n
      \n ${this.viewTabs.map(\n (view) => html`\n this.loadView(view)}\n >\n ${view.iconName ? html`\n \n ` : html`\n \n `}\n ${view.name}\n
      \n `\n )}\n
      \n
      \n
      \n
      {\n this.dispatchEvent(new CustomEvent('logout', { bubbles: true, composed: true }));\n }}>\n \n Sign out\n
      \n
      \n
      \n
      \n \n
      \n
      \n
      \n \n Connected\n
      \n
      \n \n Terminal\n
      \n
      \n \n `;\n }\n\n public async firstUpdated(_changedProperties): Promise {\n const domtools = await this.domtoolsPromise;\n super.firstUpdated(_changedProperties);\n if (this.viewTabs && this.viewTabs.length > 0) {\n const viewToLoad = this.selectedView || this.viewTabs[0];\n await this.loadView(viewToLoad);\n }\n }\n \n public currentTerminal: DeesWorkspaceTerminal;\n public async launchTerminal() {\n const domtools = await this.domtoolsPromise;\n if (this.currentTerminal) {\n // If terminal already exists, remove it\n await this.closeTerminal();\n return;\n }\n\n const maincontainer = this.shadowRoot.querySelector('.maincontainer');\n const { DeesWorkspaceTerminal } = await import('../../00group-workspace/dees-workspace-terminal/dees-workspace-terminal.js');\n const terminal = new DeesWorkspaceTerminal();\n terminal.setupCommand = this.terminalSetupCommand;\n this.currentTerminal = terminal;\n maincontainer.appendChild(terminal);\n terminal.style.position = 'absolute';\n terminal.style.zIndex = '10';\n terminal.style.top = '0px';\n terminal.style.left = '240px';\n terminal.style.right = '0px';\n terminal.style.bottom = '24px';\n terminal.style.opacity = '0';\n terminal.style.transform = 'translateY(8px) scale(0.99)';\n terminal.style.transition = 'all 0.25s cubic-bezier(0.4, 0, 0.2, 1)';\n terminal.style.boxShadow = '0 25px 50px -12px rgb(0 0 0 / 0.5), 0 0 0 1px rgb(255 255 255 / 0.05)';\n terminal.style.maxWidth = `calc(${maincontainer.clientWidth}px -240px)`;\n terminal.style.maxHeight = `calc(${maincontainer.clientHeight}px - 24px)`;\n \n // Add close button to terminal\n terminal.addEventListener('close', () => this.closeTerminal());\n \n await domtools.convenience.smartdelay.delayFor(0);\n terminal.style.opacity = '1';\n terminal.style.transform = 'translateY(0) scale(1)';\n return terminal;\n }\n \n private async closeTerminal() {\n const domtools = await this.domtoolsPromise;\n if (this.currentTerminal) {\n this.currentTerminal.style.opacity = '0';\n this.currentTerminal.style.transform = 'translateY(8px) scale(0.99)';\n await domtools.convenience.smartdelay.delayFor(250);\n this.currentTerminal.remove();\n this.currentTerminal = null;\n }\n }\n\n\n private currentView: DeesElement;\n public async loadView(viewArg: IView) {\n const appcontent = this.shadowRoot.querySelector('.appcontent');\n const view = new viewArg.element();\n if (this.currentView) {\n this.currentView.remove();\n }\n appcontent.appendChild(view);\n this.currentView = view;\n this.selectedView = viewArg;\n \n // Emit view-select event\n this.dispatchEvent(new CustomEvent('view-select', {\n detail: { view: viewArg },\n bubbles: true,\n composed: true\n }));\n }\n}\n", "export * from './dees-simple-appdash.js';\n", "import { html } from '@design.estate/dees-element';\n\nexport const demoFunc = () => html`\n \n
      \n {\n console.log('Login event received:', e.detail);\n const loginData = e.detail?.data || e.detail;\n if (loginData?.username && loginData?.password) {\n alert(`Login attempted with:\\nUsername: ${loginData.username}\\nPassword: ${loginData.password}`);\n // Here you would typically validate credentials and show the slotted content\n } else {\n console.error('Invalid login data structure:', e.detail);\n }\n }}\n >\n
      \n

      Welcome!

      \n

      This is the slotted content that appears after login.

      \n
      \n
      \n
      \n`;\n", "import { demoFunc } from './dees-simple-login.demo.js';\n\nimport {\n customElement,\n html,\n DeesElement,\n property,\n type TemplateResult,\n cssManager,\n css,\n} from '@design.estate/dees-element';\nimport { themeDefaultStyles } from '../../00theme.js';\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'dees-simple-login': DeesSimpleLogin;\n }\n}\n\n@customElement('dees-simple-login')\nexport class DeesSimpleLogin extends DeesElement {\n // STATIC\n public static demo = demoFunc;\n public static demoGroups = ['Simple'];\n // INSTANCE\n\n @property()\n accessor name: string = 'Application';\n\n public static styles = [\n themeDefaultStyles,\n cssManager.defaultStyles,\n css`\n /* TODO: Migrate hardcoded values to --dees-* CSS variables */\n :host {\n color: ${cssManager.bdTheme('hsl(0 0% 3.9%)', 'hsl(0 0% 98%)')};\n user-select: none;\n display: block;\n width: 100%;\n height: 100%;\n font-family: 'Geist Sans', sans-serif;\n }\n\n .loginContainer {\n position: absolute;\n display: flex;\n justify-content: center;\n align-items: center;\n width: 100%;\n height: 100%;\n top: 0;\n left: 0;\n background: ${cssManager.bdTheme('hsl(0 0% 100%)', 'hsl(0 0% 3.9%)')};\n }\n\n .slotContainer {\n position: absolute;\n width: 100%;\n height: 100%;\n top: 0;\n left: 0;\n opacity: 0;\n transition: opacity 0.2s ease, transform 0.2s ease;\n pointer-events: none;\n }\n\n .login {\n width: 100%;\n max-width: 360px;\n display: flex;\n flex-direction: column;\n gap: 24px;\n }\n\n .login-header {\n display: flex;\n flex-direction: column;\n gap: 8px;\n text-align: center;\n }\n\n .header {\n font-size: 24px;\n font-weight: 600;\n letter-spacing: -0.025em;\n color: ${cssManager.bdTheme('hsl(0 0% 9%)', 'hsl(0 0% 98%)')};\n }\n\n .subheader {\n font-size: 14px;\n color: ${cssManager.bdTheme('hsl(0 0% 45.1%)', 'hsl(0 0% 63.9%)')};\n }\n\n .login-card {\n background: ${cssManager.bdTheme('hsl(0 0% 100%)', 'hsl(0 0% 9%)')};\n border: 1px solid ${cssManager.bdTheme('hsl(0 0% 89.8%)', 'hsl(0 0% 14.9%)')};\n border-radius: 8px;\n padding: 24px;\n }\n\n .login-card dees-form {\n display: flex;\n flex-direction: column;\n gap: 16px;\n }\n\n .login-card dees-input-text {\n width: 100%;\n }\n\n .login-card dees-form-submit {\n margin-top: 8px;\n width: 100%;\n }\n `,\n ];\n\n public render(): TemplateResult {\n return html`\n
      \n
      \n
      \n
      Sign in
      \n
      Enter your credentials to access ${this.name}
      \n
      \n
      \n \n \n \n Sign in\n \n
      \n
      \n
      \n
      \n \n
      \n `;\n }\n\n public async firstUpdated(_changedProperties: Map): Promise {\n super.firstUpdated(_changedProperties);\n \n const form = this.shadowRoot.querySelector('dees-form') as any;\n if (form) {\n form.addEventListener('formData', (event: CustomEvent) => {\n this.dispatchEvent(new CustomEvent('login', { \n detail: event.detail, \n bubbles: true, \n composed: true \n }));\n });\n }\n }\n\n /**\n * allows switching to slotted content\n */\n public async switchToSlottedContent() {\n const domtools = await this.domtoolsPromise;\n const loginDiv: HTMLDivElement = this.shadowRoot.querySelector('.login');\n const loginContainerDiv: HTMLDivElement = this.shadowRoot.querySelector('.loginContainer');\n const slotContainerDiv: HTMLDivElement = this.shadowRoot.querySelector('.slotContainer');\n loginDiv.style.opacity = '0';\n loginDiv.style.transform = 'translateY(20px)';\n loginContainerDiv.style.pointerEvents = 'none';\n slotContainerDiv.style.transform = 'translateY(20px)';\n await domtools.convenience.smartdelay.delayFor(300);\n slotContainerDiv.style.opacity = '1';\n slotContainerDiv.style.transform = 'translateY(0px)';\n await domtools.convenience.smartdelay.delayFor(300);\n slotContainerDiv.style.pointerEvents = 'all';\n }\n}\n", "export * from './dees-simple-login.js';\n", "// Simple Components\nexport * from './dees-shopping-productcard/index.js';\nexport * from './dees-simple-appdash/index.js';\nexport * from './dees-simple-login/index.js';\n", "export * from './dees-icon.js';\n", "import { html } from '@design.estate/dees-element';\n\nexport const demoFunc = () => {\n const onChanged = (e: CustomEvent) => {\n // find the demo wrapper and update the 'changed' log inside it\n const wrapper = (e.target as HTMLElement).closest('.demoWrapper');\n const el = wrapper?.querySelector('#changed');\n if (el) el.textContent = `search-changed: ${e.detail.value}`;\n };\n const onSubmit = (e: CustomEvent) => {\n // find the demo wrapper and update the 'submitted' log inside it\n const wrapper = (e.target as HTMLElement).closest('.demoWrapper');\n const el = wrapper?.querySelector('#submitted');\n if (el) el.textContent = `search-submit: ${e.detail.value}`;\n };\n return html`\n \n
      \n \n
      \n
      search-changed:
      \n
      search-submit:
      \n
      \n
      \n `;\n};", "import {\n customElement,\n DeesElement,\n property,\n html,\n cssManager,\n unsafeCSS,\n css,\n type TemplateResult,\n domtools,\n query,\n} from '@design.estate/dees-element';\n\nimport * as colors from '../../00colors.js';\nimport { demoFunc } from './dees-searchbar.demo.js';\nimport { themeDefaultStyles } from '../../00theme.js';\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'dees-searchbar': DeesSearchbar;\n }\n}\n\n@customElement('dees-searchbar')\nexport class DeesSearchbar extends DeesElement {\n // DEMO\n public static demo = demoFunc;\n public static demoGroups = ['Utility'];\n\n // STATIC\n public static styles = [\n themeDefaultStyles,\n cssManager.defaultStyles,\n css`\n /* TODO: Migrate hardcoded values to --dees-* CSS variables */\n :host {\n padding: 40px;\n font-family: Dees Sans;\n display: block;\n background: ${cssManager.bdTheme('#eeeeeb', '#000000')};\n }\n\n .searchboxContainer {\n position: relative;\n margin: auto;\n max-width: 800px;\n background: ${cssManager.bdTheme('#00000015', '#ffffff15')};\n --boxHeight: 60px;\n height: var(--boxHeight);\n border-radius: var(--boxHeight);\n display: grid;\n grid-template-columns: 1fr 140px;\n justify-content: center;\n align-items: center;\n border-top: 1px solid ${cssManager.bdTheme('#00000015', '#ffffff20')};\n }\n\n input {\n height: 100%;\n width: 100%;\n border: none;\n background: none;\n color: ${cssManager.bdTheme('#000000', '#eeeeeb')};\n padding-left: 25px;\n margin-right: -8px;\n outline: none;\n font-size: 16px;\n }\n\n .searchButton {\n --buttonPadding: 8px;\n background: ${cssManager.bdTheme('#eeeeeb', '#000000')};\n color: ${cssManager.bdTheme('#000000', '#eeeeeb')};\n line-height: calc(var(--boxHeight) - (var(--buttonPadding) * 2));\n border-radius: var(--boxHeight);\n transform: scale(1) ;\n transform-origin: 50% 50%;\n text-align: center;\n \n transition: transform 0.1s, background 0.1s;\n margin-right: var(--buttonPadding);\n user-select: none;\n }\n\n .searchButton:hover {\n color: #fff;\n background: ${cssManager.bdTheme(colors.bright.blue, colors.dark.blue)};\n }\n\n .searchButton:active {\n color: #fff;\n background: ${cssManager.bdTheme(colors.bright.blueActive, colors.dark.blueActive)};\n transform: scale(0.98);\n }\n\n .filters {\n margin: auto;\n max-width: 800px;\n }\n `,\n ];\n\n // INSTANCE\n\n @property()\n accessor filters = [];\n\n\n public searchInput!: HTMLInputElement;\n public searchButton!: HTMLElement;\n\n constructor() {\n super();\n }\n\n public render(): TemplateResult {\n return html`\n
      \n \n
      Search ->
      \n
      \n ${this.filters.length > 0 ? html`\n
      \n Filters\n \n
      \n ` : html``}\n `;\n }\n /**\n * Lifecycle: after first render, wire up events for input and submit actions\n */\n public firstUpdated(): void {\n // dispatch change on each input\n this.searchInput.addEventListener('input', () => {\n this.dispatchEvent(new CustomEvent('search-changed', {\n bubbles: true,\n composed: true,\n detail: { value: this.searchInput.value }\n }));\n });\n // submit on Enter key\n this.searchInput.addEventListener('keydown', (e: KeyboardEvent) => {\n if (e.key === 'Enter') {\n this._dispatchSubmit();\n }\n });\n // submit on button click\n this.searchButton.addEventListener('click', () => this._dispatchSubmit());\n }\n\n /**\n * Dispatch a submit event with the current search value\n */\n private _dispatchSubmit(): void {\n this.dispatchEvent(new CustomEvent('search-submit', {\n bubbles: true,\n composed: true,\n detail: { value: this.searchInput.value }\n }));\n }\n}\n", "export * from './dees-searchbar.js';\n", "import { html, css, cssManager } from '@design.estate/dees-element';\n\nexport const demoFunc = () => html`\n \n
      \n \n
      \n
      Spacing Scale
      \n
      \n CSS variables: --dees-spacing-xs through --dees-spacing-3xl\n
      \n
      \n
      \n
      \n
      xs (4px)
      \n
      \n
      \n
      \n
      sm (8px)
      \n
      \n
      \n
      \n
      md (12px)
      \n
      \n
      \n
      \n
      lg (16px)
      \n
      \n
      \n
      \n
      xl (24px)
      \n
      \n
      \n
      \n
      2xl (32px)
      \n
      \n
      \n
      \n
      3xl (48px)
      \n
      \n
      \n
      \n\n
      \n
      Border Radius Scale
      \n
      \n CSS variables: --dees-radius-xs through --dees-radius-full\n
      \n
      \n
      \n
      xs
      \n
      2px
      \n
      \n
      \n
      sm
      \n
      4px
      \n
      \n
      \n
      md
      \n
      6px
      \n
      \n
      \n
      lg
      \n
      8px
      \n
      \n
      \n
      xl
      \n
      12px
      \n
      \n
      \n
      full
      \n
      999px
      \n
      \n
      \n
      \n\n
      \n
      Shadow Elevation Scale
      \n
      \n CSS variables: --dees-shadow-xs through --dees-shadow-lg\n
      \n
      \n
      \n
      xs
      \n
      minimal
      \n
      \n
      \n
      sm
      \n
      subtle
      \n
      \n
      \n
      md
      \n
      medium
      \n
      \n
      \n
      lg
      \n
      prominent
      \n
      \n
      \n
      \n\n
      \n
      Control Height Scale
      \n
      \n CSS variables: --dees-control-height-sm through --dees-control-height-xl\n
      \n
      \n
      \n
      sm
      \n
      32px
      \n
      \n
      \n
      md
      \n
      36px
      \n
      \n
      \n
      lg
      \n
      40px
      \n
      \n
      \n
      xl
      \n
      48px
      \n
      \n
      \n
      \n\n
      \n
      Transition Durations
      \n
      \n CSS variables: --dees-transition-fast through --dees-transition-slower\n
      \n
      \n
      \n
      --dees-transition-fast
      \n
      0.1s
      \n
      \n
      \n
      --dees-transition-default
      \n
      0.15s
      \n
      \n
      \n
      --dees-transition-slow
      \n
      0.2s
      \n
      \n
      \n
      --dees-transition-slower
      \n
      0.3s
      \n
      \n
      \n
      \n
      \n
      \n`;\n", "import {\n DeesElement,\n type TemplateResult,\n property,\n customElement,\n html,\n css,\n cssManager,\n} from '@design.estate/dees-element';\n\nimport {\n type ITheme,\n type IThemeColors,\n type IThemeSpacing,\n type IThemeRadius,\n type IThemeShadows,\n type IThemeTransitions,\n type IThemeControlHeights,\n themeDefaults,\n themeDefaultStyles,\n} from '../../00theme.js';\n\nimport { demoFunc } from './dees-theme.demo.js';\n\n/**\n * A theme provider component that wraps children and provides CSS custom properties.\n * Can be used at the app root or around specific sections to customize theming.\n *\n * Usage:\n * ```html\n * \n * \n * \n * ```\n *\n * With custom overrides:\n * ```html\n * \n * \n * \n * ```\n */\n@customElement('dees-theme')\nexport class DeesTheme extends DeesElement {\n public static demo = demoFunc;\n public static demoGroups = ['Utility'];\n\n // ============================================\n // Properties for theme overrides\n // ============================================\n\n @property({ type: Object })\n accessor customSpacing: Partial | null = null;\n\n @property({ type: Object })\n accessor customRadius: Partial | null = null;\n\n @property({ type: Object })\n accessor customShadows: Partial | null = null;\n\n @property({ type: Object })\n accessor customTransitions: Partial | null = null;\n\n @property({ type: Object })\n accessor customControlHeights: Partial | null = null;\n\n // ============================================\n // Styles\n // ============================================\n\n public static styles = [\n themeDefaultStyles,\n cssManager.defaultStyles,\n css`\n :host {\n display: contents;\n }\n `,\n ];\n\n // ============================================\n // Render\n // ============================================\n\n public render(): TemplateResult {\n return html`\n \n \n `;\n }\n\n // ============================================\n // Private Methods\n // ============================================\n\n private generateCustomStyles(): string {\n const styles: string[] = [':host {'];\n\n // Custom spacing\n if (this.customSpacing) {\n for (const [key, value] of Object.entries(this.customSpacing)) {\n if (value) {\n styles.push(` --dees-spacing-${key}: ${value};`);\n }\n }\n }\n\n // Custom radius\n if (this.customRadius) {\n for (const [key, value] of Object.entries(this.customRadius)) {\n if (value) {\n styles.push(` --dees-radius-${key}: ${value};`);\n }\n }\n }\n\n // Custom shadows\n if (this.customShadows) {\n for (const [key, value] of Object.entries(this.customShadows)) {\n if (value) {\n styles.push(` --dees-shadow-${key}: ${value};`);\n }\n }\n }\n\n // Custom transitions\n if (this.customTransitions) {\n for (const [key, value] of Object.entries(this.customTransitions)) {\n if (value) {\n const cssKey = key === 'default' ? 'default' : key;\n styles.push(` --dees-transition-${cssKey}: ${value};`);\n }\n }\n }\n\n // Custom control heights\n if (this.customControlHeights) {\n for (const [key, value] of Object.entries(this.customControlHeights)) {\n if (value) {\n styles.push(` --dees-control-height-${key}: ${value};`);\n }\n }\n }\n\n styles.push('}');\n return styles.join('\\n');\n }\n\n // ============================================\n // Public API Methods\n // ============================================\n\n /**\n * Set a spacing value dynamically\n */\n public setSpacing(key: keyof IThemeSpacing, value: string): void {\n this.customSpacing = { ...this.customSpacing, [key]: value };\n }\n\n /**\n * Set a radius value dynamically\n */\n public setRadius(key: keyof IThemeRadius, value: string): void {\n this.customRadius = { ...this.customRadius, [key]: value };\n }\n\n /**\n * Set a shadow value dynamically\n */\n public setShadow(key: keyof IThemeShadows, value: string): void {\n this.customShadows = { ...this.customShadows, [key]: value };\n }\n\n /**\n * Set a transition value dynamically\n */\n public setTransition(key: keyof IThemeTransitions, value: string): void {\n this.customTransitions = { ...this.customTransitions, [key]: value };\n }\n\n /**\n * Set a control height value dynamically\n */\n public setControlHeight(key: keyof IThemeControlHeights, value: string): void {\n this.customControlHeights = { ...this.customControlHeights, [key]: value };\n }\n\n /**\n * Get the current theme configuration (defaults + overrides)\n */\n public getTheme(): ITheme {\n return {\n colors: themeDefaults.colors,\n spacing: { ...themeDefaults.spacing, ...this.customSpacing },\n radius: { ...themeDefaults.radius, ...this.customRadius },\n shadows: { ...themeDefaults.shadows, ...this.customShadows },\n transitions: { ...themeDefaults.transitions, ...this.customTransitions },\n controlHeights: { ...themeDefaults.controlHeights, ...this.customControlHeights },\n };\n }\n\n /**\n * Reset all custom overrides to defaults\n */\n public resetToDefaults(): void {\n this.customSpacing = null;\n this.customRadius = null;\n this.customShadows = null;\n this.customTransitions = null;\n this.customControlHeights = null;\n }\n\n /**\n * Apply a complete theme object\n */\n public applyTheme(theme: Partial): void {\n if (theme.spacing) this.customSpacing = theme.spacing;\n if (theme.radius) this.customRadius = theme.radius;\n if (theme.shadows) this.customShadows = theme.shadows;\n if (theme.transitions) this.customTransitions = theme.transitions;\n if (theme.controlHeights) this.customControlHeights = theme.controlHeights;\n }\n}\n", "export * from './dees-theme.js';\n", "import { html } from '@design.estate/dees-element';\n\nimport { DeesUpdater } from '../dees-updater/dees-updater.js';\n\nexport const demoFunc = async () => {\n const updater = await DeesUpdater.createAndShow();\n setTimeout(async () => {\n await updater.destroy();\n }, 10000);\n}", "import {\n customElement,\n DeesElement,\n type TemplateResult,\n html,\n property,\n type CSSResult,\n domtools,\n} from '@design.estate/dees-element';\nimport { demoFunc } from './dees-updater.demo.js';\n\nimport '../../00group-overlay/dees-windowlayer/dees-windowlayer.js';\nimport { css, cssManager } from '@design.estate/dees-element';\nimport { themeDefaultStyles } from '../../00theme.js';\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'dees-updater': DeesUpdater;\n }\n}\n\n@customElement('dees-updater')\nexport class DeesUpdater extends DeesElement {\n public static demo = demoFunc;\n public static demoGroups = ['Utility'];\n\n public static async createAndShow() {\n const updater = new DeesUpdater();\n document.body.appendChild(updater);\n return updater;\n }\n\n @property({\n type: String,\n })\n accessor currentVersion: string;\n\n @property({\n type: String,\n })\n accessor updatedVersion: string;\n\n constructor() {\n super();\n domtools.elementBasic.setup();\n }\n\n public static styles = [\n themeDefaultStyles,\n cssManager.defaultStyles,\n css`\n /* TODO: Migrate hardcoded values to --dees-* CSS variables */\n .modalContainer {\n will-change: transform;\n position: relative;\n background: ${cssManager.bdTheme('#eeeeeb', '#222')};\n max-width: 800px;\n border-radius: 8px;\n border-top: 1px solid ${cssManager.bdTheme('#eeeeeb', '#333')};\n }\n\n .headingContainer {\n display: flex;\n justify-content: center;\n align-items: center;\n padding: 40px 40px;\n }\n\n h1 {\n margin: none;\n font-size: 20px;\n color: ${cssManager.bdTheme('#333', '#fff')};\n margin-left: 20px;\n font-weight: normal;\n }\n\n .buttonContainer {\n display: grid;\n grid-template-columns: 50% 50%;\n }\n `,\n ];\n\n public render(): TemplateResult {\n return html`\n \n
      \n
      \n \n

      Updating the application...

      \n
      \n
      \n \n
      \n
      \n More info\n Changelog\n
      \n
      >\n `;\n }\n\n public async destroy() {\n this.parentElement.removeChild(this);\n }\n\n private windowLayerClicked() {}\n}\n", "export * from './dees-updater.js';\n", "export * from './dees-windowcontrols.js';\n", "// Utility Components\nexport * from './dees-icon/index.js';\nexport * from './dees-searchbar/index.js';\nexport * from './dees-theme/index.js';\nexport * from './dees-updater/index.js';\nexport * from './dees-windowcontrols/index.js';\n", "import {\n DeesElement,\n property,\n html,\n customElement,\n type TemplateResult,\n css,\n cssManager,\n state,\n} from '@design.estate/dees-element';\nimport * as domtools from '@design.estate/dees-domtools';\nimport { themeDefaultStyles } from '../../00theme.js';\nimport type { IExecutionEnvironment, IFileEntry, IFileWatcher } from '../../00group-runtime/index.js';\nimport '../../00group-utility/dees-icon/dees-icon.js';\nimport '../../00group-overlay/dees-contextmenu/dees-contextmenu.js';\nimport { DeesContextmenu } from '../../00group-overlay/dees-contextmenu/dees-contextmenu.js';\nimport { DeesModal } from '../../00group-overlay/dees-modal/dees-modal.js';\nimport '../../00group-input/dees-input-text/dees-input-text.js';\nimport { DeesInputText } from '../../00group-input/dees-input-text/dees-input-text.js';\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'dees-workspace-filetree': DeesWorkspaceFiletree;\n }\n}\n\ninterface ITreeNode extends IFileEntry {\n children?: ITreeNode[];\n expanded?: boolean;\n level: number;\n}\n\n@customElement('dees-workspace-filetree')\nexport class DeesWorkspaceFiletree extends DeesElement {\n public static demo = () => html`\n
      \n \n
      \n `;\n public static demoGroups = ['Workspace'];\n\n // INSTANCE\n @property({ type: Object })\n accessor executionEnvironment: IExecutionEnvironment | null = null;\n\n @property({ type: String })\n accessor rootPath: string = '/';\n\n @property({ type: String })\n accessor selectedPath: string = '';\n\n @state()\n accessor treeData: ITreeNode[] = [];\n\n @state()\n accessor isLoading: boolean = false;\n\n @state()\n accessor errorMessage: string = '';\n\n private expandedPaths: Set = new Set();\n private loadTreeStarted: boolean = false;\n\n // Clipboard state for copy/paste operations\n private clipboardPath: string | null = null;\n private clipboardOperation: 'copy' | 'cut' | null = null;\n\n // File watcher for auto-refresh\n private fileWatcher: IFileWatcher | null = null;\n private refreshDebounceTimeout: ReturnType | null = null;\n private lastExecutionEnvironment: IExecutionEnvironment | null = null;\n\n public static styles = [\n themeDefaultStyles,\n cssManager.defaultStyles,\n css`\n :host {\n display: block;\n position: absolute;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n overflow: auto;\n background: ${cssManager.bdTheme('hsl(0 0% 98%)', 'hsl(0 0% 9%)')};\n font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;\n font-size: 13px;\n }\n\n .tree-container {\n padding: 8px 0;\n }\n\n .tree-item {\n display: flex;\n align-items: center;\n padding: 4px 8px;\n cursor: pointer;\n user-select: none;\n border-radius: 4px;\n margin: 1px 4px;\n transition: background 0.1s ease;\n }\n\n .tree-item:hover {\n background: ${cssManager.bdTheme('hsl(0 0% 93%)', 'hsl(0 0% 14%)')};\n }\n\n .tree-item.selected {\n background: ${cssManager.bdTheme('hsl(210 100% 95%)', 'hsl(210 50% 20%)')};\n color: ${cssManager.bdTheme('hsl(210 100% 40%)', 'hsl(210 100% 70%)')};\n }\n\n .tree-item.selected:hover {\n background: ${cssManager.bdTheme('hsl(210 100% 92%)', 'hsl(210 50% 25%)')};\n }\n\n .indent {\n display: inline-block;\n width: 16px;\n flex-shrink: 0;\n }\n\n .expand-icon {\n width: 16px;\n height: 16px;\n display: flex;\n align-items: center;\n justify-content: center;\n flex-shrink: 0;\n color: ${cssManager.bdTheme('hsl(0 0% 50%)', 'hsl(0 0% 60%)')};\n transition: transform 0.15s ease;\n }\n\n .expand-icon.expanded {\n transform: rotate(90deg);\n }\n\n .expand-icon.hidden {\n visibility: hidden;\n }\n\n .file-icon {\n width: 16px;\n height: 16px;\n margin-right: 6px;\n flex-shrink: 0;\n display: flex;\n align-items: center;\n justify-content: center;\n }\n\n .file-icon dees-icon {\n width: 16px;\n height: 16px;\n }\n\n .file-icon.folder {\n color: ${cssManager.bdTheme('hsl(45 80% 45%)', 'hsl(45 70% 55%)')};\n }\n\n .file-icon.file {\n color: ${cssManager.bdTheme('hsl(0 0% 50%)', 'hsl(0 0% 60%)')};\n }\n\n .file-icon.typescript {\n color: hsl(211 60% 48%);\n }\n\n .file-icon.javascript {\n color: hsl(53 93% 54%);\n }\n\n .file-icon.json {\n color: hsl(45 80% 50%);\n }\n\n .file-icon.html {\n color: hsl(14 77% 52%);\n }\n\n .file-icon.css {\n color: hsl(228 77% 59%);\n }\n\n .file-icon.markdown {\n color: hsl(0 0% 50%);\n }\n\n .file-name {\n flex: 1;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n color: ${cssManager.bdTheme('hsl(0 0% 20%)', 'hsl(0 0% 85%)')};\n }\n\n .loading {\n padding: 16px;\n text-align: center;\n color: ${cssManager.bdTheme('hsl(0 0% 50%)', 'hsl(0 0% 60%)')};\n }\n\n .error {\n padding: 16px;\n text-align: center;\n color: hsl(0 70% 50%);\n }\n\n .empty {\n padding: 16px;\n text-align: center;\n color: ${cssManager.bdTheme('hsl(0 0% 50%)', 'hsl(0 0% 60%)')};\n font-style: italic;\n }\n\n .filetree-toolbar {\n display: flex;\n align-items: center;\n justify-content: space-between;\n height: 36px;\n padding: 0 12px;\n border-bottom: 1px solid ${cssManager.bdTheme('hsl(0 0% 85%)', 'hsl(0 0% 15%)')};\n background: ${cssManager.bdTheme('hsl(0 0% 96%)', 'hsl(0 0% 8%)')};\n position: sticky;\n top: 0;\n z-index: 1;\n }\n\n .toolbar-title {\n font-size: 11px;\n font-weight: 600;\n text-transform: uppercase;\n letter-spacing: 0.5px;\n color: ${cssManager.bdTheme('hsl(0 0% 40%)', 'hsl(0 0% 60%)')};\n }\n\n .toolbar-actions {\n display: flex;\n gap: 4px;\n }\n\n .toolbar-button {\n padding: 4px;\n border-radius: 4px;\n cursor: pointer;\n opacity: 0.7;\n transition: opacity 0.15s, background 0.15s;\n display: flex;\n align-items: center;\n justify-content: center;\n color: ${cssManager.bdTheme('hsl(0 0% 30%)', 'hsl(0 0% 70%)')};\n }\n\n .toolbar-button:hover {\n opacity: 1;\n background: ${cssManager.bdTheme('hsl(0 0% 0% / 0.08)', 'hsl(0 0% 100% / 0.1)')};\n }\n `,\n ];\n\n public render(): TemplateResult {\n if (!this.executionEnvironment) {\n return html`\n
      \n No execution environment provided.\n
      \n `;\n }\n\n if (this.isLoading) {\n return html`\n
      \n Loading files...\n
      \n `;\n }\n\n if (this.errorMessage) {\n return html`\n
      \n ${this.errorMessage}\n
      \n `;\n }\n\n return html`\n
      \n Explorer\n
      \n
      this.createNewFile('/')} title=\"New File\">\n \n
      \n
      this.createNewFolder('/')} title=\"New Folder\">\n \n
      \n
      \n
      \n ${this.treeData.length === 0\n ? html`
      No files found.
      `\n : html`\n
      \n ${this.renderTree(this.treeData)}\n
      \n `}\n `;\n }\n\n private renderTree(nodes: ITreeNode[]): TemplateResult[] {\n return nodes.map(node => this.renderNode(node));\n }\n\n private renderNode(node: ITreeNode): TemplateResult {\n const isDirectory = node.type === 'directory';\n const isExpanded = this.expandedPaths.has(node.path);\n const isSelected = node.path === this.selectedPath;\n const iconClass = this.getFileIconClass(node);\n\n return html`\n this.handleItemClick(e, node)}\n @contextmenu=${(e: MouseEvent) => this.handleContextMenu(e, node)}\n >\n \n \n \n \n \n \n ${node.name}\n \n ${isDirectory && isExpanded && node.children\n ? this.renderTree(node.children)\n : ''}\n `;\n }\n\n private getFileIcon(node: ITreeNode): string {\n if (node.type === 'directory') {\n return this.expandedPaths.has(node.path) ? 'lucide:folderOpen' : 'lucide:folder';\n }\n\n const ext = node.name.split('.').pop()?.toLowerCase();\n switch (ext) {\n case 'ts':\n case 'tsx':\n return 'lucide:fileCode';\n case 'js':\n case 'jsx':\n return 'lucide:fileCode';\n case 'json':\n return 'lucide:fileJson';\n case 'html':\n return 'lucide:fileCode';\n case 'css':\n case 'scss':\n case 'less':\n return 'lucide:fileCode';\n case 'md':\n return 'lucide:fileText';\n case 'png':\n case 'jpg':\n case 'jpeg':\n case 'gif':\n case 'svg':\n return 'lucide:image';\n default:\n return 'lucide:file';\n }\n }\n\n private getFileIconClass(node: ITreeNode): string {\n if (node.type === 'directory') return 'folder';\n\n const ext = node.name.split('.').pop()?.toLowerCase();\n switch (ext) {\n case 'ts':\n case 'tsx':\n return 'typescript';\n case 'js':\n case 'jsx':\n return 'javascript';\n case 'json':\n return 'json';\n case 'html':\n return 'html';\n case 'css':\n case 'scss':\n case 'less':\n return 'css';\n case 'md':\n return 'markdown';\n default:\n return 'file';\n }\n }\n\n private async handleItemClick(e: MouseEvent, node: ITreeNode) {\n e.stopPropagation();\n\n if (node.type === 'directory') {\n await this.toggleDirectory(node);\n } else {\n this.selectedPath = node.path;\n this.dispatchEvent(\n new CustomEvent('file-select', {\n detail: { path: node.path, name: node.name },\n bubbles: true,\n composed: true,\n })\n );\n }\n }\n\n private async toggleDirectory(node: ITreeNode) {\n if (this.expandedPaths.has(node.path)) {\n this.expandedPaths.delete(node.path);\n } else {\n this.expandedPaths.add(node.path);\n // Load children if not already loaded\n if (!node.children || node.children.length === 0) {\n await this.loadDirectoryContents(node);\n }\n }\n this.requestUpdate();\n }\n\n private async loadDirectoryContents(node: ITreeNode) {\n if (!this.executionEnvironment) return;\n\n try {\n const entries = await this.executionEnvironment.readDir(node.path);\n node.children = this.sortEntries(entries).map(entry => ({\n ...entry,\n level: node.level + 1,\n expanded: false,\n children: entry.type === 'directory' ? [] : undefined,\n }));\n } catch (error) {\n console.error(`Failed to load directory ${node.path}:`, error);\n }\n }\n\n private async handleContextMenu(e: MouseEvent, node: ITreeNode) {\n e.preventDefault();\n e.stopPropagation();\n\n const menuItems = [];\n\n if (node.type === 'directory') {\n // Directory-specific options\n menuItems.push(\n {\n name: 'New File',\n iconName: 'filePlus',\n action: async () => this.createNewFile(node.path),\n },\n {\n name: 'New Folder',\n iconName: 'folderPlus',\n action: async () => this.createNewFolder(node.path),\n },\n { divider: true }\n );\n }\n\n // Common options for both files and directories\n menuItems.push(\n {\n name: 'Rename',\n iconName: 'pencil',\n action: async () => this.renameItem(node),\n },\n {\n name: 'Duplicate',\n iconName: 'files',\n action: async () => this.duplicateItem(node),\n },\n {\n name: 'Copy',\n iconName: 'copy',\n action: async () => this.copyItem(node),\n }\n );\n\n // Paste option (only for directories and when clipboard has content)\n if (node.type === 'directory' && this.clipboardPath) {\n menuItems.push({\n name: 'Paste',\n iconName: 'clipboard',\n action: async () => this.pasteItem(node.path),\n });\n }\n\n menuItems.push(\n { divider: true },\n {\n name: 'Delete',\n iconName: 'trash2',\n action: async () => this.deleteItem(node),\n }\n );\n\n await DeesContextmenu.openContextMenuWithOptions(e, menuItems);\n }\n\n private async handleEmptySpaceContextMenu(e: MouseEvent) {\n // Only trigger if clicking on the container itself, not a tree item\n const target = e.target as HTMLElement;\n if (target.closest('.tree-item')) return;\n\n e.preventDefault();\n e.stopPropagation();\n\n const menuItems: any[] = [\n {\n name: 'New File',\n iconName: 'filePlus',\n action: async () => this.createNewFile('/'),\n },\n {\n name: 'New Folder',\n iconName: 'folderPlus',\n action: async () => this.createNewFolder('/'),\n },\n ];\n\n // Add Paste option if clipboard has content\n if (this.clipboardPath) {\n menuItems.push(\n { divider: true },\n {\n name: 'Paste',\n iconName: 'clipboard',\n action: async () => this.pasteItem('/'),\n }\n );\n }\n\n await DeesContextmenu.openContextMenuWithOptions(e, menuItems);\n }\n\n private async showInputModal(options: {\n heading: string;\n label: string;\n value?: string;\n buttonName?: string;\n }): Promise {\n return new Promise(async (resolve) => {\n const modal = await DeesModal.createAndShow({\n heading: options.heading,\n width: 'small',\n content: html`\n \n `,\n menuOptions: [\n {\n name: 'Cancel',\n action: async (modalRef) => {\n await modalRef.destroy();\n resolve(null);\n },\n },\n {\n name: options.buttonName || 'Create',\n action: async (modalRef) => {\n // Query the input element directly and read its value\n const contentEl = modalRef.shadowRoot?.querySelector('.modal .content');\n const inputElement = contentEl?.querySelector('dees-input-text') as DeesInputText | null;\n const inputValue = inputElement?.value?.trim() || '';\n\n await modalRef.destroy();\n resolve(inputValue || null);\n },\n },\n ],\n });\n\n // Focus the input after modal renders\n await modal.updateComplete;\n const contentEl = modal.shadowRoot?.querySelector('.modal .content');\n if (contentEl) {\n const inputElement = contentEl.querySelector('dees-input-text') as DeesInputText | null;\n if (inputElement) {\n await inputElement.updateComplete;\n inputElement.focus();\n }\n }\n });\n }\n\n private async createNewFile(parentPath: string) {\n const fileName = await this.showInputModal({\n heading: 'New File',\n label: 'File name',\n });\n if (!fileName || !this.executionEnvironment) return;\n\n const newPath = parentPath === '/' ? `/${fileName}` : `${parentPath}/${fileName}`;\n try {\n await this.executionEnvironment.writeFile(newPath, '');\n await this.refresh();\n this.dispatchEvent(\n new CustomEvent('file-created', {\n detail: { path: newPath },\n bubbles: true,\n composed: true,\n })\n );\n } catch (error) {\n console.error('Failed to create file:', error);\n }\n }\n\n private async createNewFolder(parentPath: string) {\n const folderName = await this.showInputModal({\n heading: 'New Folder',\n label: 'Folder name',\n });\n if (!folderName || !this.executionEnvironment) return;\n\n const newPath = parentPath === '/' ? `/${folderName}` : `${parentPath}/${folderName}`;\n try {\n await this.executionEnvironment.mkdir(newPath);\n await this.refresh();\n this.dispatchEvent(\n new CustomEvent('folder-created', {\n detail: { path: newPath },\n bubbles: true,\n composed: true,\n })\n );\n } catch (error) {\n console.error('Failed to create folder:', error);\n }\n }\n\n private async deleteItem(node: ITreeNode) {\n if (!this.executionEnvironment) return;\n\n const confirmed = confirm(`Delete ${node.name}?`);\n if (!confirmed) return;\n\n try {\n await this.executionEnvironment.rm(node.path, { recursive: node.type === 'directory' });\n await this.refresh();\n this.dispatchEvent(\n new CustomEvent('item-deleted', {\n detail: { path: node.path, type: node.type },\n bubbles: true,\n composed: true,\n })\n );\n } catch (error) {\n console.error('Failed to delete item:', error);\n }\n }\n\n /**\n * Rename a file or folder\n */\n private async renameItem(node: ITreeNode) {\n if (!this.executionEnvironment) return;\n\n const newName = await this.showInputModal({\n heading: 'Rename',\n label: 'New name',\n value: node.name,\n buttonName: 'Rename',\n });\n if (!newName || newName === node.name) return;\n\n // Calculate new path\n const parentPath = node.path.substring(0, node.path.lastIndexOf('/')) || '/';\n const newPath = parentPath === '/' ? `/${newName}` : `${parentPath}/${newName}`;\n\n try {\n if (node.type === 'file') {\n // For files: read content, write to new path, delete old\n const content = await this.executionEnvironment.readFile(node.path);\n await this.executionEnvironment.writeFile(newPath, content);\n await this.executionEnvironment.rm(node.path);\n } else {\n // For directories: recursively copy contents then delete old\n await this.copyDirectoryContents(node.path, newPath);\n await this.executionEnvironment.rm(node.path, { recursive: true });\n }\n await this.refresh();\n this.dispatchEvent(\n new CustomEvent('item-renamed', {\n detail: { oldPath: node.path, newPath, type: node.type },\n bubbles: true,\n composed: true,\n })\n );\n } catch (error) {\n console.error('Failed to rename item:', error);\n }\n }\n\n /**\n * Duplicate a file or folder\n */\n private async duplicateItem(node: ITreeNode) {\n if (!this.executionEnvironment) return;\n\n const parentPath = node.path.substring(0, node.path.lastIndexOf('/')) || '/';\n let newName: string;\n\n if (node.type === 'file') {\n // Add _copy before extension\n const lastDot = node.name.lastIndexOf('.');\n if (lastDot > 0) {\n const baseName = node.name.substring(0, lastDot);\n const ext = node.name.substring(lastDot);\n newName = `${baseName}_copy${ext}`;\n } else {\n newName = `${node.name}_copy`;\n }\n } else {\n newName = `${node.name}_copy`;\n }\n\n const newPath = parentPath === '/' ? `/${newName}` : `${parentPath}/${newName}`;\n\n try {\n if (node.type === 'file') {\n const content = await this.executionEnvironment.readFile(node.path);\n await this.executionEnvironment.writeFile(newPath, content);\n } else {\n await this.copyDirectoryContents(node.path, newPath);\n }\n await this.refresh();\n this.dispatchEvent(\n new CustomEvent('item-duplicated', {\n detail: { sourcePath: node.path, newPath, type: node.type },\n bubbles: true,\n composed: true,\n })\n );\n } catch (error) {\n console.error('Failed to duplicate item:', error);\n }\n }\n\n /**\n * Copy item path to clipboard\n */\n private async copyItem(node: ITreeNode) {\n this.clipboardPath = node.path;\n this.clipboardOperation = 'copy';\n }\n\n /**\n * Paste copied item to target directory\n */\n private async pasteItem(targetPath: string) {\n if (!this.executionEnvironment || !this.clipboardPath) return;\n\n // Get the name from clipboard path\n const name = this.clipboardPath.split('/').pop() || 'pasted';\n const newPath = targetPath === '/' ? `/${name}` : `${targetPath}/${name}`;\n\n try {\n // Check if source exists\n if (!(await this.executionEnvironment.exists(this.clipboardPath))) {\n console.error('Source file no longer exists');\n this.clipboardPath = null;\n this.clipboardOperation = null;\n return;\n }\n\n // Check if it's a file or directory by trying to read as file\n try {\n const content = await this.executionEnvironment.readFile(this.clipboardPath);\n await this.executionEnvironment.writeFile(newPath, content);\n } catch {\n // If reading fails, it's a directory\n await this.copyDirectoryContents(this.clipboardPath, newPath);\n }\n\n await this.refresh();\n this.dispatchEvent(\n new CustomEvent('item-pasted', {\n detail: { sourcePath: this.clipboardPath, targetPath: newPath },\n bubbles: true,\n composed: true,\n })\n );\n\n // Clear clipboard after paste\n this.clipboardPath = null;\n this.clipboardOperation = null;\n } catch (error) {\n console.error('Failed to paste item:', error);\n }\n }\n\n /**\n * Recursively copy directory contents to a new path\n */\n private async copyDirectoryContents(sourcePath: string, destPath: string) {\n if (!this.executionEnvironment) return;\n\n // Create destination directory\n await this.executionEnvironment.mkdir(destPath);\n\n // Read source directory contents\n const entries = await this.executionEnvironment.readDir(sourcePath);\n\n for (const entry of entries) {\n const srcEntryPath = sourcePath === '/' ? `/${entry.name}` : `${sourcePath}/${entry.name}`;\n const destEntryPath = destPath === '/' ? `/${entry.name}` : `${destPath}/${entry.name}`;\n\n if (entry.type === 'directory') {\n await this.copyDirectoryContents(srcEntryPath, destEntryPath);\n } else {\n const content = await this.executionEnvironment.readFile(srcEntryPath);\n await this.executionEnvironment.writeFile(destEntryPath, content);\n }\n }\n }\n\n public async firstUpdated() {\n await this.loadTree();\n }\n\n public async updated(changedProperties: Map) {\n if (changedProperties.has('executionEnvironment')) {\n // Stop watching the old environment\n if (this.lastExecutionEnvironment !== this.executionEnvironment) {\n this.stopFileWatcher();\n this.lastExecutionEnvironment = this.executionEnvironment;\n }\n\n if (this.executionEnvironment) {\n await this.loadTree();\n this.startFileWatcher();\n }\n }\n }\n\n public async disconnectedCallback() {\n await super.disconnectedCallback();\n this.stopFileWatcher();\n if (this.refreshDebounceTimeout) {\n clearTimeout(this.refreshDebounceTimeout);\n this.refreshDebounceTimeout = null;\n }\n }\n\n private startFileWatcher() {\n if (!this.executionEnvironment || this.fileWatcher) return;\n\n try {\n this.fileWatcher = this.executionEnvironment.watch(\n '/',\n (_event, _filename) => {\n // Debounce refresh to avoid excessive updates\n if (this.refreshDebounceTimeout) {\n clearTimeout(this.refreshDebounceTimeout);\n }\n this.refreshDebounceTimeout = setTimeout(() => {\n this.refresh();\n }, 300);\n },\n { recursive: true }\n );\n } catch (error) {\n console.warn('File watching not supported:', error);\n }\n }\n\n private stopFileWatcher() {\n if (this.fileWatcher) {\n this.fileWatcher.stop();\n this.fileWatcher = null;\n }\n }\n\n private async loadTree() {\n if (!this.executionEnvironment) return;\n\n // Prevent double loading on initial render\n if (this.loadTreeStarted) return;\n this.loadTreeStarted = true;\n\n this.isLoading = true;\n this.errorMessage = '';\n\n try {\n // Wait for environment to be ready\n if (!this.executionEnvironment.ready) {\n await this.executionEnvironment.init();\n }\n\n const entries = await this.executionEnvironment.readDir(this.rootPath);\n this.treeData = this.sortEntries(entries).map(entry => ({\n ...entry,\n level: 0,\n expanded: false,\n children: entry.type === 'directory' ? [] : undefined,\n }));\n } catch (error) {\n this.errorMessage = `Failed to load files: ${error}`;\n console.error('Failed to load file tree:', error);\n // Reset flag to allow retry\n this.loadTreeStarted = false;\n } finally {\n this.isLoading = false;\n }\n }\n\n private sortEntries(entries: IFileEntry[]): IFileEntry[] {\n return entries.sort((a, b) => {\n // Directories first\n if (a.type !== b.type) {\n return a.type === 'directory' ? -1 : 1;\n }\n // Then alphabetically\n return a.name.localeCompare(b.name);\n });\n }\n\n public async refresh() {\n this.expandedPaths.clear();\n this.loadTreeStarted = false; // Reset to allow loading\n await this.loadTree();\n }\n\n public selectFile(path: string) {\n this.selectedPath = path;\n }\n}\n", "import {\n DeesElement,\n property,\n html,\n customElement,\n type TemplateResult,\n css,\n cssManager,\n} from '@design.estate/dees-element';\nimport type { Terminal } from 'xterm';\nimport type { FitAddon } from 'xterm-addon-fit';\nimport { themeDefaultStyles } from '../../00theme.js';\nimport { DeesServiceLibLoader } from '../../../services/index.js';\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'dees-workspace-terminal-preview': DeesWorkspaceTerminalPreview;\n }\n}\n\n/**\n * A read-only terminal preview component using xterm.js for rendering.\n * Used during workspace initialization to show onInit command progress.\n */\n@customElement('dees-workspace-terminal-preview')\nexport class DeesWorkspaceTerminalPreview extends DeesElement {\n public static demo = () => html`\n \n `;\n public static demoGroups = ['Workspace'];\n\n /**\n * The command being displayed (shown in header)\n */\n @property({ type: String })\n accessor command: string = '';\n\n /**\n * Output lines to display\n */\n @property({ type: Array })\n accessor lines: string[] = [];\n\n private terminal: Terminal | null = null;\n private fitAddon: FitAddon | null = null;\n private lastLineCount: number = 0;\n private resizeObserver: ResizeObserver | null = null;\n private terminalThemeSubscription: any = null;\n\n public static styles = [\n themeDefaultStyles,\n cssManager.defaultStyles,\n css`\n :host {\n display: block;\n height: 200px;\n }\n\n .terminal-preview {\n height: 100%;\n border-radius: 8px;\n overflow: hidden;\n background: ${cssManager.bdTheme('#ffffff', '#000000')};\n border: 1px solid ${cssManager.bdTheme('hsl(0 0% 85%)', 'hsl(0 0% 20%)')};\n display: flex;\n flex-direction: column;\n }\n\n .terminal-header {\n display: flex;\n align-items: center;\n gap: 8px;\n padding: 8px 12px;\n background: ${cssManager.bdTheme('hsl(0 0% 96%)', 'hsl(0 0% 10%)')};\n font-size: 12px;\n font-family: 'SF Mono', 'Monaco', 'Inconsolata', 'Fira Code', monospace;\n color: ${cssManager.bdTheme('hsl(0 0% 40%)', 'hsl(0 0% 60%)')};\n border-bottom: 1px solid ${cssManager.bdTheme('hsl(0 0% 85%)', 'hsl(0 0% 20%)')};\n flex-shrink: 0;\n }\n\n .terminal-header-icon {\n color: ${cssManager.bdTheme('hsl(0 0% 50%)', 'hsl(0 0% 50%)')};\n }\n\n .terminal-header-command {\n color: ${cssManager.bdTheme('hsl(0 0% 20%)', 'hsl(0 0% 80%)')};\n font-weight: 500;\n }\n\n .terminal-container {\n flex: 1;\n position: relative;\n padding: 8px;\n }\n\n #xterm-container {\n position: absolute;\n top: 8px;\n left: 8px;\n right: 8px;\n bottom: 8px;\n }\n\n /* xterm.js styles */\n .xterm {\n font-feature-settings: 'liga' 0;\n position: relative;\n user-select: none;\n -ms-user-select: none;\n -webkit-user-select: none;\n }\n\n .xterm.focus,\n .xterm:focus {\n outline: none;\n }\n\n .xterm .xterm-helpers {\n position: absolute;\n top: 0;\n z-index: 5;\n }\n\n .xterm .xterm-helper-textarea {\n padding: 0;\n border: 0;\n margin: 0;\n position: absolute;\n opacity: 0;\n left: -9999em;\n top: 0;\n width: 0;\n height: 0;\n z-index: -5;\n white-space: nowrap;\n overflow: hidden;\n resize: none;\n }\n\n .xterm .composition-view {\n background: ${cssManager.bdTheme('#ffffff', '#000000')};\n color: ${cssManager.bdTheme('#333333', '#ffffff')};\n display: none;\n position: absolute;\n white-space: nowrap;\n z-index: 1;\n }\n\n .xterm .composition-view.active {\n display: block;\n }\n\n .xterm .xterm-viewport {\n background-color: ${cssManager.bdTheme('#ffffff', '#000000')};\n overflow-y: scroll;\n cursor: default;\n position: absolute;\n right: 0;\n left: 0;\n top: 0;\n bottom: 0;\n }\n\n .xterm .xterm-screen {\n position: relative;\n }\n\n .xterm .xterm-screen canvas {\n position: absolute;\n left: 0;\n top: 0;\n }\n\n .xterm .xterm-scroll-area {\n visibility: hidden;\n }\n\n .xterm-char-measure-element {\n display: inline-block;\n visibility: hidden;\n position: absolute;\n top: 0;\n left: -9999em;\n line-height: normal;\n }\n\n .xterm {\n cursor: text;\n }\n\n .xterm.enable-mouse-events {\n cursor: default;\n }\n\n .xterm.xterm-cursor-pointer {\n cursor: pointer;\n }\n\n .xterm.column-select.focus {\n cursor: crosshair;\n }\n\n .xterm .xterm-accessibility,\n .xterm .xterm-message {\n position: absolute;\n left: 0;\n top: 0;\n bottom: 0;\n right: 0;\n z-index: 10;\n color: transparent;\n }\n\n .xterm .live-region {\n position: absolute;\n left: -9999px;\n width: 1px;\n height: 1px;\n overflow: hidden;\n }\n\n .xterm-dim {\n opacity: 0.5;\n }\n\n .xterm-underline {\n text-decoration: underline;\n }\n\n /* Custom scrollbar for xterm viewport */\n .xterm .xterm-viewport::-webkit-scrollbar {\n width: 8px;\n }\n\n .xterm .xterm-viewport::-webkit-scrollbar-track {\n background: ${cssManager.bdTheme('hsl(0 0% 96%)', 'hsl(0 0% 8%)')};\n }\n\n .xterm .xterm-viewport::-webkit-scrollbar-thumb {\n background: ${cssManager.bdTheme('hsl(0 0% 80%)', 'hsl(0 0% 25%)')};\n border-radius: 4px;\n }\n\n .xterm .xterm-viewport::-webkit-scrollbar-thumb:hover {\n background: ${cssManager.bdTheme('hsl(0 0% 70%)', 'hsl(0 0% 35%)')};\n }\n `,\n ];\n\n public render(): TemplateResult {\n return html`\n
      \n
      \n $\n ${this.command || 'Waiting...'}\n
      \n
      \n
      \n
      \n
      \n `;\n }\n\n /**\n * Get terminal theme colors based on bright/dark mode\n */\n private getTerminalTheme(isBright: boolean) {\n return isBright\n ? {\n background: '#ffffff',\n foreground: '#333333',\n cursor: '#333333',\n cursorAccent: '#ffffff',\n selectionBackground: 'rgba(0, 0, 0, 0.2)',\n }\n : {\n background: '#000000',\n foreground: '#cccccc',\n cursor: '#cccccc',\n cursorAccent: '#000000',\n selectionBackground: 'rgba(255, 255, 255, 0.2)',\n };\n }\n\n public async firstUpdated(\n _changedProperties: Map\n ): Promise {\n super.firstUpdated(_changedProperties);\n\n const container = this.shadowRoot?.getElementById('xterm-container');\n if (!container) return;\n\n // Get current theme from domtools\n const domtoolsInstance = await this.domtoolsPromise;\n const isBright = domtoolsInstance.themeManager.goBrightBoolean;\n\n // Load xterm from CDN\n const libLoader = DeesServiceLibLoader.getInstance();\n const [xtermBundle, fitAddonBundle] = await Promise.all([\n libLoader.loadXterm(),\n libLoader.loadXtermFitAddon(),\n ]);\n\n // Create xterm terminal in read-only mode using CDN-loaded module\n this.terminal = new xtermBundle.Terminal({\n convertEol: true,\n cursorBlink: false,\n disableStdin: true,\n fontSize: 12,\n fontFamily: \"'SF Mono', 'Monaco', 'Inconsolata', 'Fira Code', monospace\",\n theme: this.getTerminalTheme(isBright),\n scrollback: 1000,\n });\n\n // Subscribe to theme changes\n this.terminalThemeSubscription = domtoolsInstance.themeManager.themeObservable.subscribe((goBright: boolean) => {\n if (this.terminal) {\n this.terminal.options.theme = this.getTerminalTheme(goBright);\n }\n });\n\n this.fitAddon = new fitAddonBundle.FitAddon();\n this.terminal.loadAddon(this.fitAddon);\n this.terminal.open(container);\n this.fitAddon.fit();\n\n // Set up resize observer to refit terminal\n this.resizeObserver = new ResizeObserver(() => {\n if (this.fitAddon) {\n this.fitAddon.fit();\n }\n });\n this.resizeObserver.observe(container);\n\n // Write any existing lines\n this.writeNewLines();\n }\n\n public async updated(changedProperties: Map) {\n super.updated(changedProperties);\n\n if (changedProperties.has('lines')) {\n this.writeNewLines();\n }\n }\n\n private writeNewLines() {\n if (!this.terminal) return;\n\n // Write only new lines since last update\n const newLines = this.lines.slice(this.lastLineCount);\n for (const line of newLines) {\n this.terminal.writeln(line);\n }\n this.lastLineCount = this.lines.length;\n }\n\n public async disconnectedCallback(): Promise {\n if (this.resizeObserver) {\n this.resizeObserver.disconnect();\n this.resizeObserver = null;\n }\n if (this.terminalThemeSubscription) {\n this.terminalThemeSubscription.unsubscribe();\n this.terminalThemeSubscription = null;\n }\n if (this.terminal) {\n this.terminal.dispose();\n this.terminal = null;\n }\n await super.disconnectedCallback();\n }\n\n /**\n * Add a new line to the output\n */\n public addLine(line: string) {\n this.lines = [...this.lines, line];\n }\n\n /**\n * Clear all output lines\n */\n public clear() {\n this.lines = [];\n this.lastLineCount = 0;\n if (this.terminal) {\n this.terminal.clear();\n }\n }\n}\n", "import {\n DeesElement,\n property,\n html,\n customElement,\n type TemplateResult,\n css,\n cssManager,\n state,\n} from '@design.estate/dees-element';\nimport { themeDefaultStyles } from '../../00theme.js';\nimport type { IExecutionEnvironment } from '../../00group-runtime/index.js';\nimport '../../00group-utility/dees-icon/dees-icon.js';\nimport { DeesContextmenu } from '../../00group-overlay/dees-contextmenu/dees-contextmenu.js';\nimport type { IRunProcessEventDetail, ITerminalProcessCompleteEventDetail } from '../dees-workspace-terminal/interfaces.js';\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'dees-workspace-bottombar': DeesWorkspaceBottombar;\n }\n}\n\ninterface IOutdatedPackage {\n name: string;\n current: string;\n wanted: string;\n latest: string;\n type: 'dependencies' | 'devDependencies';\n}\n\n@customElement('dees-workspace-bottombar')\nexport class DeesWorkspaceBottombar extends DeesElement {\n // INSTANCE\n @property({ type: Object })\n accessor executionEnvironment: IExecutionEnvironment | null = null;\n\n // Script runner state\n @state()\n accessor scripts: Record = {};\n\n // Package checker state\n @state()\n accessor packageStatus: 'checking' | 'up-to-date' | 'updates-available' | 'error' | 'idle' = 'idle';\n\n @state()\n accessor outdatedPackages: IOutdatedPackage[] = [];\n\n @state()\n accessor isCheckingPackages: boolean = false;\n\n // Track if we have a pending package update that should trigger refresh\n private pendingPackageUpdate: boolean = false;\n\n // Bound handler for process-complete events\n private handleProcessComplete = (e: CustomEvent) => {\n // If we have a pending package update and a process completed, refresh\n if (this.pendingPackageUpdate) {\n this.pendingPackageUpdate = false;\n // Small delay to let pnpm-lock.yaml update\n setTimeout(() => this.checkPackages(), 500);\n }\n };\n\n public static styles = [\n themeDefaultStyles,\n cssManager.defaultStyles,\n css`\n :host {\n display: block;\n height: 24px;\n flex-shrink: 0;\n }\n\n .bottom-bar {\n height: 24px;\n display: flex;\n align-items: center;\n padding: 0 8px;\n gap: 4px;\n background: ${cssManager.bdTheme('hsl(0 0% 94%)', 'hsl(0 0% 6%)')};\n border-top: 1px solid ${cssManager.bdTheme('hsl(0 0% 85%)', 'hsl(0 0% 15%)')};\n font-size: 11px;\n color: ${cssManager.bdTheme('hsl(0 0% 40%)', 'hsl(0 0% 60%)')};\n }\n\n .widget {\n display: flex;\n align-items: center;\n gap: 4px;\n padding: 2px 6px;\n border-radius: 3px;\n cursor: pointer;\n transition: background 0.15s ease, color 0.15s ease;\n white-space: nowrap;\n }\n\n .widget:hover {\n background: ${cssManager.bdTheme('hsl(0 0% 88%)', 'hsl(0 0% 12%)')};\n color: ${cssManager.bdTheme('hsl(0 0% 20%)', 'hsl(0 0% 80%)')};\n }\n\n .widget dees-icon {\n flex-shrink: 0;\n }\n\n .widget-separator {\n width: 1px;\n height: 14px;\n background: ${cssManager.bdTheme('hsl(0 0% 80%)', 'hsl(0 0% 20%)')};\n margin: 0 4px;\n }\n\n .widget.running {\n color: ${cssManager.bdTheme('hsl(210 100% 45%)', 'hsl(210 100% 60%)')};\n }\n\n .widget.up-to-date {\n color: ${cssManager.bdTheme('hsl(142 70% 35%)', 'hsl(142 70% 50%)')};\n }\n\n .widget.updates-available {\n color: ${cssManager.bdTheme('hsl(38 92% 45%)', 'hsl(38 92% 55%)')};\n }\n\n .widget.error {\n color: ${cssManager.bdTheme('hsl(0 70% 50%)', 'hsl(0 70% 60%)')};\n }\n\n @keyframes spin {\n from { transform: rotate(0deg); }\n to { transform: rotate(360deg); }\n }\n\n .spinning {\n animation: spin 1s linear infinite;\n }\n\n .spacer {\n flex: 1;\n }\n `,\n ];\n\n public render(): TemplateResult {\n return html`\n
      \n \n \n \n Scripts\n
      \n\n
      \n\n \n \n \n ${this.getPackageStatusText()}\n \n\n
      \n\n \n \n `;\n }\n\n public async connectedCallback() {\n await super.connectedCallback();\n // Listen for process-complete events to refresh after package updates\n window.addEventListener('process-complete', this.handleProcessComplete as EventListener);\n }\n\n public async disconnectedCallback() {\n await super.disconnectedCallback();\n window.removeEventListener('process-complete', this.handleProcessComplete as EventListener);\n }\n\n async firstUpdated() {\n await this.loadScripts();\n await this.checkPackages();\n }\n\n async updated(changedProperties: Map) {\n if (changedProperties.has('executionEnvironment') && this.executionEnvironment) {\n await this.loadScripts();\n await this.checkPackages();\n }\n }\n\n // ========== Script Runner ==========\n\n private async loadScripts(): Promise {\n if (!this.executionEnvironment) return;\n\n try {\n const packageJsonExists = await this.executionEnvironment.exists('/package.json');\n if (!packageJsonExists) {\n this.scripts = {};\n return;\n }\n\n const content = await this.executionEnvironment.readFile('/package.json');\n const packageJson = JSON.parse(content);\n this.scripts = packageJson.scripts || {};\n } catch (error) {\n console.warn('Failed to load scripts from package.json:', error);\n this.scripts = {};\n }\n }\n\n private async handleScriptClick(e: MouseEvent): Promise {\n e.stopPropagation();\n\n const scriptNames = Object.keys(this.scripts);\n if (scriptNames.length === 0) {\n return;\n }\n\n const menuItems = scriptNames.map(name => ({\n name: name,\n iconName: 'lucide:terminal' as const,\n action: async () => {\n await this.runScript(name);\n },\n }));\n\n await DeesContextmenu.openContextMenuWithOptions(e, menuItems);\n }\n\n private async runScript(scriptName: string): Promise {\n if (!this.executionEnvironment) return;\n\n // Emit run-process event for the workspace to create a terminal tab\n const detail: IRunProcessEventDetail = {\n type: 'script',\n label: scriptName,\n command: 'pnpm',\n args: ['run', scriptName],\n metadata: { scriptName },\n };\n\n this.dispatchEvent(new CustomEvent('run-process', {\n bubbles: true,\n composed: true,\n detail,\n }));\n }\n\n // ========== Package Checker ==========\n\n private async checkPackages(): Promise {\n if (!this.executionEnvironment) {\n this.packageStatus = 'idle';\n return;\n }\n\n try {\n const packageJsonExists = await this.executionEnvironment.exists('/package.json');\n if (!packageJsonExists) {\n this.packageStatus = 'idle';\n return;\n }\n\n this.packageStatus = 'checking';\n this.isCheckingPackages = true;\n\n // Run pnpm outdated --json with timeout\n const process = await this.executionEnvironment.spawn('pnpm', ['outdated', '--json']);\n\n let output = '';\n\n // Collect output asynchronously - don't await, stream may not close if no output\n const outputReader = process.output.getReader();\n const readOutput = async () => {\n try {\n while (true) {\n const { done, value } = await outputReader.read();\n if (done) break;\n output += value;\n }\n } catch {\n // Ignore stream errors\n }\n };\n // Start reading but don't await - we'll use whatever we have when process exits\n readOutput();\n\n // Wait for process exit with timeout (10 seconds)\n const exitCode = await Promise.race([\n process.exit,\n new Promise((resolve) => setTimeout(() => resolve(-1), 10000)),\n ]);\n\n // Cancel reader when done\n try {\n await outputReader.cancel();\n } catch {\n // Ignore cancel errors\n }\n\n // Handle timeout\n if (exitCode === -1) {\n console.warn('Package check timed out');\n this.packageStatus = 'error';\n return;\n }\n\n // pnpm outdated returns exit code 1 if there are outdated packages\n if (exitCode === 0) {\n // No outdated packages\n this.packageStatus = 'up-to-date';\n this.outdatedPackages = [];\n } else {\n // Parse outdated packages\n try {\n const outdatedData = JSON.parse(output);\n this.outdatedPackages = this.parseOutdatedPackages(outdatedData);\n this.packageStatus = this.outdatedPackages.length > 0 ? 'updates-available' : 'up-to-date';\n } catch {\n // If parsing fails but exit code is 1, assume there are updates\n this.packageStatus = 'updates-available';\n this.outdatedPackages = [];\n }\n }\n } catch (error) {\n console.warn('Failed to check for package updates:', error);\n this.packageStatus = 'error';\n } finally {\n this.isCheckingPackages = false;\n }\n }\n\n private parseOutdatedPackages(data: any): IOutdatedPackage[] {\n const packages: IOutdatedPackage[] = [];\n\n // pnpm outdated --json returns an object with package names as keys\n if (typeof data === 'object' && data !== null) {\n for (const [name, info] of Object.entries(data)) {\n const pkgInfo = info as any;\n packages.push({\n name,\n current: pkgInfo.current || 'unknown',\n wanted: pkgInfo.wanted || pkgInfo.current || 'unknown',\n latest: pkgInfo.latest || pkgInfo.wanted || 'unknown',\n type: pkgInfo.dependencyType === 'devDependencies' ? 'devDependencies' : 'dependencies',\n });\n }\n }\n\n return packages;\n }\n\n private async handlePackageClick(e: MouseEvent): Promise {\n e.stopPropagation();\n\n const menuItems: Parameters[1] = [];\n\n // Refresh option - show output in terminal\n menuItems.push({\n name: this.isCheckingPackages ? 'Checking...' : 'Check for updates',\n iconName: 'lucide:refreshCw',\n action: async () => {\n if (this.isCheckingPackages) return;\n\n // Create terminal tab to show pnpm outdated output\n const detail: IRunProcessEventDetail = {\n type: 'package-update',\n label: 'check packages',\n command: 'pnpm',\n args: ['outdated'],\n };\n\n this.dispatchEvent(new CustomEvent('run-process', {\n bubbles: true,\n composed: true,\n detail,\n }));\n\n // Also refresh the widget status silently after a delay\n setTimeout(() => this.checkPackages(), 3000);\n },\n });\n\n if (this.outdatedPackages.length > 0) {\n menuItems.push({ divider: true });\n\n // Show outdated packages (max 10)\n const displayPackages = this.outdatedPackages.slice(0, 10);\n for (const pkg of displayPackages) {\n menuItems.push({\n name: `${pkg.name}: ${pkg.current} \u2192 ${pkg.latest}`,\n iconName: 'lucide:package',\n action: async () => {\n // Update single package\n await this.updatePackage(pkg.name);\n },\n });\n }\n\n if (this.outdatedPackages.length > 10) {\n menuItems.push({\n name: `... and ${this.outdatedPackages.length - 10} more`,\n iconName: 'lucide:moreHorizontal',\n action: async () => {},\n });\n }\n\n menuItems.push({ divider: true });\n\n menuItems.push({\n name: 'Update all packages',\n iconName: 'lucide:arrowUpCircle',\n action: async () => {\n await this.updateAllPackages();\n },\n });\n }\n\n await DeesContextmenu.openContextMenuWithOptions(e, menuItems);\n }\n\n private async updatePackage(packageName: string): Promise {\n if (!this.executionEnvironment) return;\n\n // Mark that we have a pending update - will trigger refresh when complete\n this.pendingPackageUpdate = true;\n\n // Emit run-process event for the workspace to create a terminal tab\n const detail: IRunProcessEventDetail = {\n type: 'package-update',\n label: `update ${packageName}`,\n command: 'pnpm',\n args: ['update', '--latest', packageName],\n metadata: { packageName },\n };\n\n this.dispatchEvent(new CustomEvent('run-process', {\n bubbles: true,\n composed: true,\n detail,\n }));\n }\n\n private async updateAllPackages(): Promise {\n if (!this.executionEnvironment) return;\n\n // Mark that we have a pending update - will trigger refresh when complete\n this.pendingPackageUpdate = true;\n\n // Emit run-process event for the workspace to create a terminal tab\n const detail: IRunProcessEventDetail = {\n type: 'package-update',\n label: 'update all',\n command: 'pnpm',\n args: ['update', '--latest'],\n };\n\n this.dispatchEvent(new CustomEvent('run-process', {\n bubbles: true,\n composed: true,\n detail,\n }));\n }\n\n // ========== Helper Methods ==========\n\n private getPackageStatusClass(): string {\n if (this.isCheckingPackages) return '';\n return this.packageStatus;\n }\n\n private getPackageIcon(): string {\n if (this.isCheckingPackages) return 'lucide:loader2';\n\n switch (this.packageStatus) {\n case 'up-to-date':\n return 'lucide:checkCircle';\n case 'updates-available':\n return 'lucide:alertCircle';\n case 'error':\n return 'lucide:xCircle';\n default:\n return 'lucide:package';\n }\n }\n\n private getPackageStatusText(): string {\n if (this.isCheckingPackages) return 'Checking...';\n\n switch (this.packageStatus) {\n case 'up-to-date':\n return 'Up to date';\n case 'updates-available':\n return `${this.outdatedPackages.length} update${this.outdatedPackages.length !== 1 ? 's' : ''}`;\n case 'error':\n return 'Check failed';\n default:\n return 'Packages';\n }\n }\n\n private getPackageTooltip(): string {\n if (this.isCheckingPackages) return 'Checking for package updates...';\n\n switch (this.packageStatus) {\n case 'up-to-date':\n return 'All packages are up to date';\n case 'updates-available':\n return `${this.outdatedPackages.length} package update${this.outdatedPackages.length !== 1 ? 's' : ''} available`;\n case 'error':\n return 'Failed to check for updates. Click to retry.';\n default:\n return 'Click to check for package updates';\n }\n }\n\n // ========== Public Methods ==========\n\n /**\n * Manually trigger a package check\n */\n public async refreshPackageStatus(): Promise {\n await this.checkPackages();\n }\n\n /**\n * Manually reload scripts from package.json\n */\n public async refreshScripts(): Promise {\n await this.loadScripts();\n }\n}\n", "import type * as monaco from 'monaco-editor';\nimport type { IExecutionEnvironment } from '../../00group-runtime/index.js';\n\n// Monaco TypeScript API types (runtime API still exists, types deprecated in 0.55+)\ninterface IExtraLibDisposable {\n dispose(): void;\n}\n\ninterface IMonacoTypeScriptAPI {\n typescriptDefaults: {\n setCompilerOptions(options: Record): void;\n setDiagnosticsOptions(options: Record): void;\n addExtraLib(content: string, filePath?: string): IExtraLibDisposable;\n setEagerModelSync(value: boolean): void;\n };\n ScriptTarget: { ES2020: number };\n ModuleKind: { ESNext: number };\n ModuleResolutionKind: { NodeJs: number; Bundler?: number };\n}\n\n/**\n * Manages TypeScript IntelliSense by loading type definitions\n * from the virtual filesystem into Monaco.\n */\nexport class TypeScriptIntelliSenseManager {\n private loadedLibs: Set = new Set();\n private notFoundPackages: Set = new Set(); // Packages checked but not found\n private monacoInstance: typeof monaco | null = null;\n private executionEnvironment: IExecutionEnvironment | null = null;\n\n // Cache of file contents for synchronous access and module resolution\n private fileCache: Map = new Map();\n\n // Track extra libs added for cleanup\n private addedExtraLibs: Map = new Map();\n\n /**\n * Get TypeScript API with proper typing for Monaco 0.55+\n */\n private get tsApi(): IMonacoTypeScriptAPI | null {\n if (!this.monacoInstance) return null;\n return (this.monacoInstance.languages as any).typescript as IMonacoTypeScriptAPI;\n }\n\n /**\n * Initialize with Monaco and execution environment\n */\n public async init(\n monacoInst: typeof monaco,\n env: IExecutionEnvironment\n ): Promise {\n this.monacoInstance = monacoInst;\n this.executionEnvironment = env;\n this.configureCompilerOptions();\n // Load all project TypeScript/JavaScript files into Monaco for cross-file resolution\n await this.loadAllProjectFiles();\n }\n\n /**\n * Recursively load all .ts/.js files from the virtual filesystem into Monaco\n */\n private async loadAllProjectFiles(): Promise {\n if (!this.executionEnvironment) return;\n await this.loadFilesFromDirectory('/');\n }\n\n /**\n * Recursively load files from a directory\n */\n private async loadFilesFromDirectory(dirPath: string): Promise {\n if (!this.executionEnvironment) return;\n\n try {\n const entries = await this.executionEnvironment.readDir(dirPath);\n\n for (const entry of entries) {\n const fullPath = dirPath === '/' ? `/${entry.name}` : `${dirPath}/${entry.name}`;\n\n // Skip node_modules - too large and handled separately via addExtraLib\n if (entry.name === 'node_modules') continue;\n\n if (entry.type === 'directory') {\n await this.loadFilesFromDirectory(fullPath);\n } else if (entry.type === 'file') {\n const ext = entry.name.split('.').pop()?.toLowerCase();\n if (ext === 'ts' || ext === 'tsx' || ext === 'js' || ext === 'jsx') {\n try {\n const content = await this.executionEnvironment.readFile(fullPath);\n this.addFileModel(fullPath, content);\n } catch {\n // Ignore files that can't be read\n }\n }\n }\n }\n } catch {\n // Directory might not exist or not be readable\n }\n }\n\n private configureCompilerOptions(): void {\n const ts = this.tsApi;\n if (!ts) return;\n\n ts.typescriptDefaults.setCompilerOptions({\n target: ts.ScriptTarget.ES2020,\n module: ts.ModuleKind.ESNext,\n // Use Bundler resolution if available (Monaco 0.45+), fallback to NodeJs\n moduleResolution: ts.ModuleResolutionKind.Bundler ?? ts.ModuleResolutionKind.NodeJs,\n allowSyntheticDefaultImports: true,\n esModuleInterop: true,\n strict: true,\n noEmit: true,\n allowJs: true,\n checkJs: false,\n allowNonTsExtensions: true,\n lib: ['es2020', 'dom', 'dom.iterable'],\n // Set baseUrl to root for resolving absolute imports\n baseUrl: '/',\n // Allow importing .ts extensions directly (useful for some setups)\n allowImportingTsExtensions: true,\n // Resolve JSON modules\n resolveJsonModule: true,\n });\n\n ts.typescriptDefaults.setDiagnosticsOptions({\n noSemanticValidation: false,\n noSyntaxValidation: false,\n });\n\n // Enable eager model sync so TypeScript immediately processes all models\n // This is critical for cross-file IntelliSense to work without requiring edits\n ts.typescriptDefaults.setEagerModelSync(true);\n }\n\n /**\n * Parse imports from TypeScript/JavaScript content\n */\n public parseImports(content: string): string[] {\n const imports: string[] = [];\n\n // Match ES6 imports: import { x } from 'package' or import 'package'\n const importRegex = /import\\s+(?:[\\w*{}\\s,]+from\\s+)?['\"]([^'\"]+)['\"]/g;\n let match: RegExpExecArray | null;\n\n while ((match = importRegex.exec(content)) !== null) {\n const importPath = match[1];\n // Only process non-relative imports (npm packages)\n if (!importPath.startsWith('.') && !importPath.startsWith('/')) {\n const packageName = importPath.startsWith('@')\n ? importPath.split('/').slice(0, 2).join('/') // @scope/package\n : importPath.split('/')[0]; // package\n imports.push(packageName);\n }\n }\n\n // Match require calls: require('package')\n const requireRegex = /require\\s*\\(\\s*['\"]([^'\"]+)['\"]\\s*\\)/g;\n while ((match = requireRegex.exec(content)) !== null) {\n const importPath = match[1];\n if (!importPath.startsWith('.') && !importPath.startsWith('/')) {\n const packageName = importPath.startsWith('@')\n ? importPath.split('/').slice(0, 2).join('/')\n : importPath.split('/')[0];\n imports.push(packageName);\n }\n }\n\n return [...new Set(imports)];\n }\n\n /**\n * Load type definitions for a package from virtual FS\n */\n public async loadTypesForPackage(packageName: string): Promise {\n if (!this.monacoInstance || !this.executionEnvironment) return;\n if (this.loadedLibs.has(packageName)) return;\n if (this.notFoundPackages.has(packageName)) return; // Skip packages we already checked\n\n try {\n let typesLoaded = await this.tryLoadPackageTypes(packageName);\n if (!typesLoaded) {\n typesLoaded = await this.tryLoadAtTypesPackage(packageName);\n }\n if (typesLoaded) {\n this.loadedLibs.add(packageName);\n } else {\n // Cache that this package wasn't found to avoid repeated filesystem checks\n this.notFoundPackages.add(packageName);\n }\n } catch (error) {\n console.warn(`Failed to load types for ${packageName}:`, error);\n }\n }\n\n private async tryLoadPackageTypes(packageName: string): Promise {\n const ts = this.tsApi;\n if (!this.executionEnvironment || !ts) return false;\n\n const basePath = `/node_modules/${packageName}`;\n\n try {\n // Check package.json for types field\n const packageJsonPath = `${basePath}/package.json`;\n const packageJsonExists = await this.executionEnvironment.exists(packageJsonPath);\n\n if (packageJsonExists) {\n const packageJsonContent = await this.executionEnvironment.readFile(packageJsonPath);\n const packageJson = JSON.parse(packageJsonContent);\n\n // Add package.json to Monaco so TypeScript can resolve the types field\n ts.typescriptDefaults.addExtraLib(packageJsonContent, `file://${packageJsonPath}`);\n\n const typesPath = packageJson.types || packageJson.typings;\n if (typesPath) {\n // Load all .d.ts files from the package, not just the entry point\n // Modern packages often have multiple declaration files with imports\n await this.loadAllDtsFilesFromPackage(basePath);\n return true;\n }\n }\n\n // Try common locations - if any exist, load all .d.ts files\n const commonPaths = [\n `${basePath}/index.d.ts`,\n `${basePath}/dist/index.d.ts`,\n `${basePath}/lib/index.d.ts`,\n ];\n\n for (const dtsPath of commonPaths) {\n if (await this.executionEnvironment.exists(dtsPath)) {\n await this.loadAllDtsFilesFromPackage(basePath);\n return true;\n }\n }\n\n return false;\n } catch (error) {\n console.error(`Failed to load package types for ${packageName}:`, error);\n return false;\n }\n }\n\n /**\n * Recursively load all .d.ts files from a package directory\n */\n private async loadAllDtsFilesFromPackage(basePath: string): Promise {\n const ts = this.tsApi;\n if (!this.executionEnvironment || !ts) return;\n\n await this.loadDtsFilesFromDirectory(basePath);\n }\n\n /**\n * Recursively load .d.ts files from a directory\n */\n private async loadDtsFilesFromDirectory(dirPath: string): Promise {\n const ts = this.tsApi;\n if (!this.executionEnvironment || !ts) return;\n\n try {\n const entries = await this.executionEnvironment.readDir(dirPath);\n\n for (const entry of entries) {\n const fullPath = dirPath === '/' ? `/${entry.name}` : `${dirPath}/${entry.name}`;\n\n // Skip nested node_modules (shouldn't happen in a package but be safe)\n if (entry.name === 'node_modules') continue;\n\n if (entry.type === 'directory') {\n await this.loadDtsFilesFromDirectory(fullPath);\n } else if (entry.type === 'file' && entry.name.endsWith('.d.ts')) {\n try {\n const content = await this.executionEnvironment.readFile(fullPath);\n ts.typescriptDefaults.addExtraLib(content, `file://${fullPath}`);\n } catch {\n // Ignore files that can't be read\n }\n }\n }\n } catch {\n // Directory might not be readable\n }\n }\n\n private async tryLoadAtTypesPackage(packageName: string): Promise {\n if (!this.executionEnvironment) return false;\n\n // Handle scoped packages: @scope/package -> @types/scope__package\n const typesPackageName = packageName.startsWith('@')\n ? `@types/${packageName.slice(1).replace('/', '__')}`\n : `@types/${packageName}`;\n\n const basePath = `/node_modules/${typesPackageName}`;\n\n try {\n const indexPath = `${basePath}/index.d.ts`;\n if (await this.executionEnvironment.exists(indexPath)) {\n // Load all .d.ts files from the @types package\n await this.loadAllDtsFilesFromPackage(basePath);\n return true;\n }\n return false;\n } catch {\n return false;\n }\n }\n\n /**\n * Process content change and load types for any new imports\n */\n public async processContentChange(content: string): Promise {\n const imports = this.parseImports(content);\n\n for (const packageName of imports) {\n if (!this.loadedLibs.has(packageName)) {\n await this.loadTypesForPackage(packageName);\n }\n }\n }\n\n /**\n * Scan node_modules for packages and load types for any not yet loaded.\n * Called when node_modules changes (e.g., after pnpm install).\n */\n public async scanAndLoadNewPackageTypes(): Promise {\n if (!this.executionEnvironment) return;\n\n // Clear not-found cache so newly installed packages can be detected\n this.notFoundPackages.clear();\n\n try {\n // Check if node_modules exists\n if (!await this.executionEnvironment.exists('/node_modules')) return;\n\n // Read top-level node_modules\n const entries = await this.executionEnvironment.readDir('/node_modules');\n\n for (const entry of entries) {\n if (entry.type !== 'directory') continue;\n\n if (entry.name.startsWith('@')) {\n // Scoped package - read subdirectories\n try {\n const scopedPath = `/node_modules/${entry.name}`;\n const scopedEntries = await this.executionEnvironment.readDir(scopedPath);\n for (const scopedEntry of scopedEntries) {\n if (scopedEntry.type === 'directory') {\n const packageName = `${entry.name}/${scopedEntry.name}`;\n await this.loadTypesForPackage(packageName);\n }\n }\n } catch {\n // Skip if we can't read scoped directory\n }\n } else if (!entry.name.startsWith('.')) {\n // Regular package\n await this.loadTypesForPackage(entry.name);\n }\n }\n } catch (error) {\n console.warn('Failed to scan node_modules:', error);\n }\n }\n\n /**\n * Add a file model to Monaco for cross-file IntelliSense\n * Also registers the file with TypeScript via addExtraLib for module resolution\n */\n public addFileModel(path: string, content: string): void {\n if (!this.monacoInstance) return;\n\n // Cache the content for sync access\n this.fileCache.set(path, content);\n\n // Create/update the editor model\n const uri = this.monacoInstance.Uri.parse(`file://${path}`);\n const existingModel = this.monacoInstance.editor.getModel(uri);\n\n if (existingModel) {\n // Only update if content actually changed (prevents cursor reset)\n if (existingModel.getValue() !== content) {\n existingModel.setValue(content);\n }\n } else {\n const language = this.getLanguageFromPath(path);\n this.monacoInstance.editor.createModel(content, language, uri);\n }\n\n // Also add as extra lib for TypeScript module resolution\n // This is critical - TypeScript's resolver uses extra libs, not editor models\n this.addFileAsExtraLib(path, content);\n }\n\n /**\n * Add a file as an extra lib for TypeScript module resolution.\n * This enables TypeScript to resolve imports to project files.\n */\n private addFileAsExtraLib(path: string, content: string): void {\n const ts = this.tsApi;\n if (!ts) return;\n\n // Dispose existing lib if present (for updates)\n const existing = this.addedExtraLibs.get(path);\n if (existing) {\n existing.dispose();\n }\n\n // Add the file with its actual path\n const filePath = `file://${path}`;\n const disposable = ts.typescriptDefaults.addExtraLib(content, filePath);\n this.addedExtraLibs.set(path, disposable);\n\n // For .ts files, also add with .js extension to handle ESM imports\n // (e.g., import from './utils.js' should resolve to ./utils.ts)\n if (path.endsWith('.ts') && !path.endsWith('.d.ts')) {\n const jsPath = path.replace(/\\.ts$/, '.js');\n const jsFilePath = `file://${jsPath}`;\n const jsDisposable = ts.typescriptDefaults.addExtraLib(content, jsFilePath);\n this.addedExtraLibs.set(jsPath, jsDisposable);\n this.fileCache.set(jsPath, content);\n } else if (path.endsWith('.tsx')) {\n const jsxPath = path.replace(/\\.tsx$/, '.jsx');\n const jsxFilePath = `file://${jsxPath}`;\n const jsxDisposable = ts.typescriptDefaults.addExtraLib(content, jsxFilePath);\n this.addedExtraLibs.set(jsxPath, jsxDisposable);\n this.fileCache.set(jsxPath, content);\n }\n }\n\n /**\n * Get cached file content for synchronous access\n */\n public getFileContent(path: string): string | undefined {\n return this.fileCache.get(path);\n }\n\n private getLanguageFromPath(path: string): string {\n const ext = path.split('.').pop()?.toLowerCase();\n switch (ext) {\n case 'ts':\n case 'tsx':\n return 'typescript';\n case 'js':\n case 'jsx':\n return 'javascript';\n case 'json':\n return 'json';\n default:\n return 'plaintext';\n }\n }\n}\n", "import {\n DeesElement,\n property,\n html,\n customElement,\n type TemplateResult,\n css,\n cssManager,\n} from '@design.estate/dees-element';\nimport * as domtools from '@design.estate/dees-domtools';\nimport { MONACO_VERSION } from '../dees-workspace-monaco/version.js';\nimport { themeDefaultStyles } from '../../00theme.js';\nimport '../../00group-button/dees-button/dees-button.js';\n\nimport type * as monaco from 'monaco-editor';\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'dees-workspace-diff-editor': DeesWorkspaceDiffEditor;\n }\n}\n\n@customElement('dees-workspace-diff-editor')\nexport class DeesWorkspaceDiffEditor extends DeesElement {\n // DEMO\n public static demo = () => html`\n \n `;\n public static demoGroups = ['Workspace'];\n\n // INSTANCE\n public diffEditorDeferred = domtools.plugins.smartpromise.defer();\n\n @property({ type: String })\n accessor originalContent: string = '';\n\n @property({ type: String })\n accessor modifiedContent: string = '';\n\n @property({ type: String })\n accessor originalLabel: string = 'Disk Version';\n\n @property({ type: String })\n accessor modifiedLabel: string = 'Local Version';\n\n @property({ type: String })\n accessor language: string = 'typescript';\n\n @property({ type: String })\n accessor filePath: string = '';\n\n private diffEditor: monaco.editor.IStandaloneDiffEditor | null = null;\n private monacoThemeSubscription: domtools.plugins.smartrx.rxjs.Subscription | null = null;\n private originalModel: monaco.editor.ITextModel | null = null;\n private modifiedModel: monaco.editor.ITextModel | null = null;\n\n constructor() {\n super();\n domtools.DomTools.setupDomTools();\n }\n\n public static styles = [\n themeDefaultStyles,\n cssManager.defaultStyles,\n css`\n :host {\n display: block;\n position: absolute;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n }\n\n * {\n box-sizing: border-box;\n }\n\n .diff-wrapper {\n display: flex;\n flex-direction: column;\n height: 100%;\n width: 100%;\n }\n\n .diff-toolbar {\n height: 48px;\n display: flex;\n align-items: center;\n justify-content: space-between;\n padding: 0 16px;\n background: ${cssManager.bdTheme('hsl(0 0% 96%)', 'hsl(0 0% 12%)')};\n border-bottom: 1px solid ${cssManager.bdTheme('hsl(0 0% 85%)', 'hsl(0 0% 20%)')};\n flex-shrink: 0;\n }\n\n .diff-info {\n display: flex;\n align-items: center;\n gap: 12px;\n font-size: 14px;\n color: ${cssManager.bdTheme('hsl(0 0% 30%)', 'hsl(0 0% 80%)')};\n }\n\n .diff-filename {\n font-weight: 600;\n color: ${cssManager.bdTheme('hsl(0 0% 20%)', 'hsl(0 0% 90%)')};\n }\n\n .diff-labels {\n font-size: 12px;\n color: ${cssManager.bdTheme('hsl(0 0% 50%)', 'hsl(0 0% 60%)')};\n }\n\n .diff-actions {\n display: flex;\n align-items: center;\n gap: 8px;\n }\n\n .diff-container {\n flex: 1;\n min-height: 0;\n width: 100%;\n }\n\n .nav-buttons {\n display: flex;\n gap: 4px;\n }\n\n .action-buttons {\n display: flex;\n gap: 8px;\n margin-left: 16px;\n }\n `,\n ];\n\n public render(): TemplateResult {\n const fileName = this.filePath.split('/').pop() || 'file';\n\n return html`\n
      \n
      \n
      \n ${fileName}\n ${this.originalLabel} \u2194 ${this.modifiedLabel}\n
      \n
      \n
      \n Previous\n Next\n
      \n
      \n Use Local\n Use Disk\n Close\n
      \n
      \n
      \n
      \n
      \n `;\n }\n\n public async firstUpdated(): Promise {\n await super.firstUpdated(new Map());\n await this.initDiffEditor();\n }\n\n private async initDiffEditor(): Promise {\n const container = this.shadowRoot?.querySelector('.diff-container') as HTMLElement;\n if (!container) return;\n\n const monacoCdnBase = `https://cdn.jsdelivr.net/npm/monaco-editor@${MONACO_VERSION}`;\n\n // Wait for Monaco to be loaded (should already be loaded by dees-workspace-monaco)\n let monacoInstance = (window as any).monaco as typeof monaco;\n\n if (!monacoInstance) {\n // Monaco not loaded yet, wait for it\n await new Promise((resolve) => {\n const checkMonaco = setInterval(() => {\n if ((window as any).monaco) {\n clearInterval(checkMonaco);\n resolve();\n }\n }, 100);\n });\n monacoInstance = (window as any).monaco as typeof monaco;\n }\n\n // Get current theme from domtools\n const domtoolsInstance = await this.domtoolsPromise;\n const isBright = domtoolsInstance.themeManager.goBrightBoolean;\n const initialTheme = isBright ? 'vs' : 'vs-dark';\n\n // Create unique URIs for models\n const timestamp = Date.now();\n const originalUri = monacoInstance.Uri.parse(`diff://original/${timestamp}${this.filePath}`);\n const modifiedUri = monacoInstance.Uri.parse(`diff://modified/${timestamp}${this.filePath}`);\n\n // Create models\n this.originalModel = monacoInstance.editor.createModel(\n this.originalContent,\n this.language,\n originalUri\n );\n this.modifiedModel = monacoInstance.editor.createModel(\n this.modifiedContent,\n this.language,\n modifiedUri\n );\n\n // Create diff editor\n this.diffEditor = monacoInstance.editor.createDiffEditor(container, {\n automaticLayout: true,\n readOnly: false, // Allow editing the modified (local) side\n originalEditable: false, // Disk version is read-only\n renderSideBySide: true,\n ignoreTrimWhitespace: false,\n fontSize: 14,\n minimap: {\n enabled: false,\n },\n });\n\n // Set the theme\n monacoInstance.editor.setTheme(initialTheme);\n\n this.diffEditor.setModel({\n original: this.originalModel,\n modified: this.modifiedModel,\n });\n\n // Subscribe to theme changes\n this.monacoThemeSubscription = domtoolsInstance.themeManager.themeObservable.subscribe(\n (goBright: boolean) => {\n const newTheme = goBright ? 'vs' : 'vs-dark';\n monacoInstance.editor.setTheme(newTheme);\n }\n );\n\n // Inject Monaco CSS if not already present\n const cssId = 'monaco-diff-editor-css';\n if (!this.shadowRoot?.getElementById(cssId)) {\n const cssResponse = await fetch(`${monacoCdnBase}/min/vs/editor/editor.main.css`);\n const cssText = await cssResponse.text();\n const styleElement = document.createElement('style');\n styleElement.id = cssId;\n styleElement.textContent = cssText;\n this.shadowRoot?.append(styleElement);\n }\n\n // Navigate to first diff after a short delay\n setTimeout(() => {\n try {\n this.diffEditor?.revealFirstDiff();\n } catch {\n // Ignore if no diffs\n }\n }, 100);\n\n this.diffEditorDeferred.resolve(this.diffEditor);\n }\n\n public goToNextDiff(): void {\n try {\n this.diffEditor?.goToDiff('next');\n } catch {\n // Ignore if no more diffs\n }\n }\n\n public goToPreviousDiff(): void {\n try {\n this.diffEditor?.goToDiff('previous');\n } catch {\n // Ignore if no more diffs\n }\n }\n\n public acceptLocal(): void {\n // User wants to keep local version (potentially with edits made in diff view)\n const modifiedContent = this.diffEditor?.getModifiedEditor().getValue() || this.modifiedContent;\n this.dispatchEvent(\n new CustomEvent('diff-resolved', {\n detail: { action: 'use-local', content: modifiedContent },\n bubbles: true,\n composed: true,\n })\n );\n }\n\n public acceptDisk(): void {\n // User wants disk version\n this.dispatchEvent(\n new CustomEvent('diff-resolved', {\n detail: { action: 'use-disk', content: this.originalContent },\n bubbles: true,\n composed: true,\n })\n );\n }\n\n public close(): void {\n this.dispatchEvent(\n new CustomEvent('diff-closed', {\n bubbles: true,\n composed: true,\n })\n );\n }\n\n public async disconnectedCallback(): Promise {\n await super.disconnectedCallback();\n\n if (this.monacoThemeSubscription) {\n this.monacoThemeSubscription.unsubscribe();\n this.monacoThemeSubscription = null;\n }\n\n // Dispose models\n if (this.originalModel) {\n this.originalModel.dispose();\n this.originalModel = null;\n }\n if (this.modifiedModel) {\n this.modifiedModel.dispose();\n this.modifiedModel = null;\n }\n\n // Dispose editor\n if (this.diffEditor) {\n this.diffEditor.dispose();\n this.diffEditor = null;\n }\n }\n}\n", "import {\n DeesElement,\n property,\n html,\n customElement,\n type TemplateResult,\n css,\n cssManager,\n state,\n} from '@design.estate/dees-element';\nimport * as domtools from '@design.estate/dees-domtools';\nimport { themeDefaultStyles } from '../../00theme.js';\nimport type { IExecutionEnvironment, IFileWatcher } from '../../00group-runtime/index.js';\nimport { WebContainerEnvironment } from '../../00group-runtime/index.js';\nimport type { FileSystemTree } from '@tempfix/webcontainer__api';\nimport '../dees-workspace-monaco/dees-workspace-monaco.js';\nimport '../dees-workspace-filetree/dees-workspace-filetree.js';\nimport { DeesWorkspaceFiletree } from '../dees-workspace-filetree/dees-workspace-filetree.js';\nimport '../dees-workspace-terminal/dees-workspace-terminal.js';\nimport { DeesWorkspaceTerminal } from '../dees-workspace-terminal/dees-workspace-terminal.js';\nimport type { IRunProcessEventDetail } from '../dees-workspace-terminal/interfaces.js';\nimport '../dees-workspace-terminal-preview/dees-workspace-terminal-preview.js';\nimport '../dees-workspace-bottombar/dees-workspace-bottombar.js';\nimport '../../00group-utility/dees-icon/dees-icon.js';\nimport { DeesWorkspaceMonaco } from '../dees-workspace-monaco/dees-workspace-monaco.js';\nimport { TypeScriptIntelliSenseManager } from './typescript-intellisense.js';\nimport { DeesContextmenu } from '../../00group-overlay/dees-contextmenu/dees-contextmenu.js';\nimport '@design.estate/dees-wcctools/demotools';\nimport '../../00group-feedback/dees-actionbar/dees-actionbar.js';\nimport type { DeesActionbar } from '../../00group-feedback/dees-actionbar/dees-actionbar.js';\nimport '../dees-workspace-diff-editor/dees-workspace-diff-editor.js';\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'dees-workspace': DeesWorkspace;\n }\n}\n\ninterface IOpenFile {\n path: string;\n name: string;\n content: string;\n modified: boolean;\n}\n\n@customElement('dees-workspace')\nexport class DeesWorkspace extends DeesElement {\n public static demo = () => {\n const env = new WebContainerEnvironment();\n\n // Mount initial TypeScript project files\n const mountPromise = (async () => {\n await env.init();\n\n const fileTree: FileSystemTree = {\n 'package.json': {\n file: {\n contents: JSON.stringify(\n {\n name: 'demo-project',\n version: '1.0.0',\n type: 'module',\n scripts: {\n build: 'tsc',\n dev: 'tsc --watch',\n },\n dependencies: {\n '@push.rocks/smartpromise': '^4.2.3',\n },\n devDependencies: {\n '@types/node': '^22.0.0',\n typescript: '^5.0.0',\n },\n },\n null,\n 2\n ),\n },\n },\n 'npmextra.json': {\n file: {\n contents: JSON.stringify(\n {\n deesEditorWorkspace: {\n onInit: 'pnpm install',\n },\n },\n null,\n 2\n ),\n },\n },\n 'tsconfig.json': {\n file: {\n contents: JSON.stringify(\n {\n compilerOptions: {\n target: 'ES2022',\n module: 'NodeNext',\n moduleResolution: 'NodeNext',\n strict: true,\n outDir: './dist',\n rootDir: './src',\n declaration: true,\n },\n include: ['src/**/*'],\n },\n null,\n 2\n ),\n },\n },\n src: {\n directory: {\n 'index.ts': {\n file: {\n contents: `// Main entry point\nimport { greet, formatName } from './utils.js';\n\nconst name = formatName('World');\nconsole.log(greet(name));\n\n// Example async function\nasync function main() {\n const result = await Promise.resolve('Hello from async!');\n console.log(result);\n}\n\nmain();\n`,\n },\n },\n 'utils.ts': {\n file: {\n contents: `// Utility functions\n\nexport interface IUser {\n firstName: string;\n lastName: string;\n}\n\nexport function greet(name: string): string {\n return \\`Hello, \\${name}!\\`;\n}\n\nexport function formatName(name: string): string {\n return name.trim().toUpperCase();\n}\n\nexport function createUser(firstName: string, lastName: string): IUser {\n return { firstName, lastName };\n}\n`,\n },\n },\n 'importtest.ts': {\n file: {\n contents: `// Test npm package imports\nimport * as smartpromise from '@push.rocks/smartpromise';\n\n// This should have IntelliSense showing defer() method\nconst deferred = smartpromise.defer();\n\n// Test using the deferred promise\nasync function testSmartPromise() {\n setTimeout(() => {\n deferred.resolve('Hello from smartpromise!');\n }, 100);\n\n const result = await deferred.promise;\n console.log(result);\n}\n\ntestSmartPromise();\n`,\n },\n },\n },\n },\n };\n\n await env.mount(fileTree);\n })();\n\n // Create container element for proper 100% height like dees-appui\n const containerElement = document.createElement('div');\n containerElement.style.cssText = 'position: absolute; top: 0; left: 0; height: 100%; width: 100%; overflow: hidden;';\n\n const workspaceElement = document.createElement('dees-workspace') as DeesWorkspace;\n workspaceElement.executionEnvironment = env;\n workspaceElement.initializationPromise = mountPromise;\n containerElement.appendChild(workspaceElement);\n\n return html`\n \n ${containerElement}\n \n `;\n };\n public static demoGroups = ['Workspace'];\n\n // INSTANCE\n @property({ type: Object })\n accessor executionEnvironment: IExecutionEnvironment | null = null;\n\n @property({ attribute: false })\n accessor initializationPromise: Promise | null = null;\n\n @property({ type: Boolean })\n accessor showFileTree: boolean = true;\n\n @property({ type: Boolean })\n accessor showTerminal: boolean = true;\n\n @property({ type: Number })\n accessor fileTreeWidth: number = 250;\n\n @property({ type: Number })\n accessor terminalHeight: number = 200;\n\n @state()\n accessor openFiles: IOpenFile[] = [];\n\n @state()\n accessor activeFilePath: string = '';\n\n @state()\n accessor isTerminalCollapsed: boolean = false;\n\n @state()\n accessor isFileTreeCollapsed: boolean = false;\n\n @state()\n accessor isInitializing: boolean = true;\n\n @state()\n accessor activeBottomPanel: 'terminal' | 'problems' = 'terminal';\n\n @state()\n accessor diagnosticMarkers: Array<{\n message: string;\n severity: number;\n startLineNumber: number;\n startColumn: number;\n endLineNumber: number;\n endColumn: number;\n source?: string;\n resource: { path: string };\n }> = [];\n\n private editorElement: DeesWorkspaceMonaco | null = null;\n private initializationStarted: boolean = false;\n private intelliSenseManager: TypeScriptIntelliSenseManager | null = null;\n private intelliSenseInitialized: boolean = false;\n\n // node_modules watcher for auto-loading types\n private nodeModulesWatcher: IFileWatcher | null = null;\n private nodeModulesDebounceTimeout: ReturnType | null = null;\n private intelliSenseDebounceTimeout: ReturnType | null = null;\n\n // Open file watchers for external change detection\n private openFileWatchers: Map = new Map();\n private fileChangeDebounce: Map> = new Map();\n private actionbarElement: DeesActionbar | null = null;\n\n // Auto-save functionality\n @state()\n accessor autoSave: boolean = false;\n private autoSaveInterval: ReturnType | null = null;\n\n // Init terminal preview state\n @state()\n accessor initCommand: string = '';\n\n @state()\n accessor initOutput: string[] = [];\n\n // Resize state\n @state()\n accessor currentFileTreeWidth: number = 250;\n\n @state()\n accessor currentTerminalHeight: number = 200;\n\n @state()\n accessor isDraggingFileTree: boolean = false;\n\n @state()\n accessor isDraggingTerminal: boolean = false;\n\n // Diff view state\n @state()\n accessor showDiffView: boolean = false;\n\n @state()\n accessor diffViewConfig: {\n filePath: string;\n originalContent: string;\n modifiedContent: string;\n language: string;\n } | null = null;\n\n // Keyboard shortcut handler (bound for proper cleanup)\n private keydownHandler = (e: KeyboardEvent) => {\n // Cmd+S (Mac) or Ctrl+S (Windows/Linux) - Save\n if ((e.metaKey || e.ctrlKey) && e.key === 's' && !e.shiftKey) {\n e.preventDefault();\n this.saveActiveFile();\n }\n\n // Cmd+Shift+S - Save All\n if ((e.metaKey || e.ctrlKey) && e.shiftKey && e.key.toLowerCase() === 's') {\n e.preventDefault();\n this.saveAllFiles();\n }\n };\n\n // ========== Filetree Resize Handlers ==========\n private handleFileTreeMouseDown = (e: MouseEvent) => {\n e.preventDefault();\n this.isDraggingFileTree = true;\n document.addEventListener('mousemove', this.handleFileTreeMouseMove);\n document.addEventListener('mouseup', this.handleFileTreeMouseUp);\n };\n\n private handleFileTreeMouseMove = (e: MouseEvent) => {\n if (!this.isDraggingFileTree) return;\n\n const containerRect = this.getBoundingClientRect();\n const mouseX = e.clientX - containerRect.left;\n\n // Clamp to min/max (150px min, 50% of container max)\n const minWidth = 150;\n const maxWidth = containerRect.width * 0.5;\n const newWidth = Math.max(minWidth, Math.min(maxWidth, mouseX));\n\n this.currentFileTreeWidth = newWidth;\n };\n\n private handleFileTreeMouseUp = () => {\n this.isDraggingFileTree = false;\n document.removeEventListener('mousemove', this.handleFileTreeMouseMove);\n document.removeEventListener('mouseup', this.handleFileTreeMouseUp);\n\n // Notify Monaco editor of size change\n window.dispatchEvent(new Event('resize'));\n };\n\n // ========== Terminal Resize Handlers ==========\n private handleTerminalMouseDown = (e: MouseEvent) => {\n e.preventDefault();\n this.isDraggingTerminal = true;\n document.addEventListener('mousemove', this.handleTerminalMouseMove);\n document.addEventListener('mouseup', this.handleTerminalMouseUp);\n };\n\n private handleTerminalMouseMove = (e: MouseEvent) => {\n if (!this.isDraggingTerminal) return;\n\n const containerRect = this.getBoundingClientRect();\n const mouseY = e.clientY - containerRect.top;\n\n // Calculate terminal height from bottom\n const terminalHeight = containerRect.height - mouseY;\n\n // Clamp to min/max (100px min, 70% of container max)\n const minHeight = 100;\n const maxHeight = containerRect.height * 0.7;\n const newHeight = Math.max(minHeight, Math.min(maxHeight, terminalHeight));\n\n this.currentTerminalHeight = newHeight;\n };\n\n private handleTerminalMouseUp = () => {\n this.isDraggingTerminal = false;\n document.removeEventListener('mousemove', this.handleTerminalMouseMove);\n document.removeEventListener('mouseup', this.handleTerminalMouseUp);\n\n // Notify Monaco editor of size change\n window.dispatchEvent(new Event('resize'));\n };\n\n public static styles = [\n themeDefaultStyles,\n cssManager.defaultStyles,\n css`\n :host {\n display: block;\n position: absolute;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n background: ${cssManager.bdTheme('hsl(0 0% 96%)', 'hsl(0 0% 7%)')};\n font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;\n }\n\n .workspace-outer {\n display: flex;\n flex-direction: column;\n height: 100%;\n width: 100%;\n }\n\n .workspace-container {\n display: flex;\n flex-direction: row;\n flex: 1;\n min-height: 0;\n width: 100%;\n }\n\n .editor-area {\n display: flex;\n flex-direction: column;\n flex: 1;\n min-width: 0;\n overflow: hidden;\n }\n\n .filetree-panel {\n position: relative;\n overflow: hidden;\n flex-shrink: 0;\n }\n\n .filetree-panel.collapsed {\n width: 0 !important;\n }\n\n .editor-panel {\n position: relative;\n display: flex;\n flex-direction: column;\n overflow: hidden;\n background: ${cssManager.bdTheme('hsl(0 0% 100%)', 'hsl(0 0% 9%)')};\n flex: 1;\n min-width: 200px;\n }\n\n .terminal-panel {\n position: relative;\n border-top: 1px solid ${cssManager.bdTheme('hsl(0 0% 85%)', 'hsl(0 0% 15%)')};\n overflow: hidden;\n flex-shrink: 0;\n }\n\n .terminal-panel.collapsed {\n height: 32px !important;\n }\n\n .panel-header {\n height: 32px;\n display: flex;\n align-items: center;\n justify-content: space-between;\n padding: 0 8px;\n background: ${cssManager.bdTheme('hsl(0 0% 95%)', 'hsl(0 0% 8%)')};\n border-bottom: 1px solid ${cssManager.bdTheme('hsl(0 0% 85%)', 'hsl(0 0% 15%)')};\n font-size: 12px;\n font-weight: 500;\n color: ${cssManager.bdTheme('hsl(0 0% 40%)', 'hsl(0 0% 60%)')};\n }\n\n .panel-header-title {\n display: flex;\n align-items: center;\n gap: 6px;\n }\n\n .panel-header-actions {\n display: flex;\n align-items: center;\n gap: 4px;\n }\n\n .panel-action {\n width: 24px;\n height: 24px;\n display: flex;\n align-items: center;\n justify-content: center;\n border-radius: 4px;\n cursor: pointer;\n color: ${cssManager.bdTheme('hsl(0 0% 50%)', 'hsl(0 0% 60%)')};\n transition: all 0.15s ease;\n }\n\n .panel-action:hover {\n background: ${cssManager.bdTheme('hsl(0 0% 88%)', 'hsl(0 0% 18%)')};\n color: ${cssManager.bdTheme('hsl(0 0% 30%)', 'hsl(0 0% 80%)')};\n }\n\n .tabs-bar {\n display: flex;\n align-items: stretch;\n height: 36px;\n background: ${cssManager.bdTheme('hsl(0 0% 96%)', 'hsl(0 0% 8%)')};\n border-bottom: 1px solid ${cssManager.bdTheme('hsl(0 0% 85%)', 'hsl(0 0% 15%)')};\n overflow-x: auto;\n }\n\n .tab {\n display: flex;\n align-items: center;\n gap: 6px;\n padding: 0 12px;\n min-width: 120px;\n max-width: 200px;\n border-right: 1px solid ${cssManager.bdTheme('hsl(0 0% 88%)', 'hsl(0 0% 12%)')};\n cursor: pointer;\n font-size: 12px;\n color: ${cssManager.bdTheme('hsl(0 0% 50%)', 'hsl(0 0% 60%)')};\n background: ${cssManager.bdTheme('hsl(0 0% 94%)', 'hsl(0 0% 10%)')};\n transition: all 0.15s ease;\n }\n\n .tab:hover {\n background: ${cssManager.bdTheme('hsl(0 0% 92%)', 'hsl(0 0% 12%)')};\n }\n\n .tab.active {\n background: ${cssManager.bdTheme('hsl(0 0% 100%)', 'hsl(0 0% 9%)')};\n color: ${cssManager.bdTheme('hsl(0 0% 20%)', 'hsl(0 0% 90%)')};\n border-bottom: 2px solid ${cssManager.bdTheme('hsl(210 100% 50%)', 'hsl(210 100% 60%)')};\n }\n\n .tab-name {\n flex: 1;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n }\n\n .tab-close {\n width: 16px;\n height: 16px;\n display: flex;\n align-items: center;\n justify-content: center;\n border-radius: 4px;\n opacity: 0;\n transition: all 0.15s ease;\n }\n\n .tab:hover .tab-close {\n opacity: 1;\n }\n\n .tab-close:hover {\n background: ${cssManager.bdTheme('hsl(0 0% 85%)', 'hsl(0 0% 25%)')};\n }\n\n .tab-modified {\n width: 8px;\n height: 8px;\n border-radius: 50%;\n background: ${cssManager.bdTheme('hsl(0 0% 50%)', 'hsl(0 0% 60%)')};\n }\n\n .tabs-container {\n display: flex;\n flex: 1;\n overflow-x: auto;\n }\n\n .editor-menu-button {\n padding: 6px 8px;\n margin-right: 4px;\n margin-left: auto;\n border-radius: 4px;\n cursor: pointer;\n opacity: 0.6;\n transition: opacity 0.15s, background 0.15s;\n flex-shrink: 0;\n display: flex;\n align-items: center;\n justify-content: center;\n }\n\n .editor-menu-button:hover {\n opacity: 1;\n background: ${cssManager.bdTheme('hsl(0 0% 0% / 0.08)', 'hsl(0 0% 100% / 0.1)')};\n }\n\n .editor-content {\n flex: 1;\n position: relative;\n }\n\n .terminal-content {\n position: absolute;\n top: 32px;\n left: 0;\n right: 0;\n bottom: 0;\n }\n\n .problems-content {\n position: absolute;\n top: 32px;\n left: 0;\n right: 0;\n bottom: 0;\n overflow-y: auto;\n background: ${cssManager.bdTheme('hsl(0 0% 100%)', 'hsl(0 0% 9%)')};\n }\n\n .panel-tabs {\n display: flex;\n align-items: center;\n gap: 0;\n }\n\n .panel-tab {\n display: flex;\n align-items: center;\n gap: 6px;\n padding: 0 12px;\n height: 32px;\n cursor: pointer;\n font-size: 12px;\n font-weight: 500;\n color: ${cssManager.bdTheme('hsl(0 0% 50%)', 'hsl(0 0% 55%)')};\n border-bottom: 2px solid transparent;\n transition: all 0.15s ease;\n }\n\n .panel-tab:hover {\n color: ${cssManager.bdTheme('hsl(0 0% 30%)', 'hsl(0 0% 75%)')};\n background: ${cssManager.bdTheme('hsl(0 0% 90%)', 'hsl(0 0% 12%)')};\n }\n\n .panel-tab.active {\n color: ${cssManager.bdTheme('hsl(0 0% 20%)', 'hsl(0 0% 90%)')};\n border-bottom-color: ${cssManager.bdTheme('hsl(210 100% 50%)', 'hsl(210 100% 60%)')};\n }\n\n .panel-tab-badge {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n min-width: 18px;\n height: 18px;\n padding: 0 5px;\n border-radius: 9px;\n font-size: 11px;\n font-weight: 600;\n background: ${cssManager.bdTheme('hsl(0 70% 50%)', 'hsl(0 70% 45%)')};\n color: white;\n }\n\n .panel-tab-badge.warning {\n background: ${cssManager.bdTheme('hsl(40 70% 50%)', 'hsl(40 70% 45%)')};\n }\n\n .panel-tab-badge.none {\n display: none;\n }\n\n .problems-list {\n padding: 4px 0;\n }\n\n .problem-item {\n display: flex;\n align-items: flex-start;\n gap: 8px;\n padding: 6px 12px;\n cursor: pointer;\n font-size: 12px;\n line-height: 1.4;\n color: ${cssManager.bdTheme('hsl(0 0% 30%)', 'hsl(0 0% 80%)')};\n transition: background 0.1s ease;\n }\n\n .problem-item:hover {\n background: ${cssManager.bdTheme('hsl(0 0% 95%)', 'hsl(0 0% 15%)')};\n }\n\n .problem-icon {\n flex-shrink: 0;\n margin-top: 2px;\n }\n\n .problem-icon.error {\n color: ${cssManager.bdTheme('hsl(0 70% 50%)', 'hsl(0 70% 60%)')};\n }\n\n .problem-icon.warning {\n color: ${cssManager.bdTheme('hsl(40 70% 50%)', 'hsl(40 70% 60%)')};\n }\n\n .problem-details {\n flex: 1;\n min-width: 0;\n }\n\n .problem-message {\n word-break: break-word;\n }\n\n .problem-location {\n margin-top: 2px;\n font-size: 11px;\n color: ${cssManager.bdTheme('hsl(0 0% 50%)', 'hsl(0 0% 55%)')};\n }\n\n .problems-empty {\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n height: 100%;\n color: ${cssManager.bdTheme('hsl(0 0% 55%)', 'hsl(0 0% 50%)')};\n font-size: 13px;\n gap: 8px;\n }\n\n .empty-state {\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n height: 100%;\n color: ${cssManager.bdTheme('hsl(0 0% 50%)', 'hsl(0 0% 50%)')};\n font-size: 14px;\n gap: 8px;\n }\n\n .empty-state dees-icon {\n width: 48px;\n height: 48px;\n opacity: 0.5;\n }\n\n @keyframes spin {\n from { transform: rotate(0deg); }\n to { transform: rotate(360deg); }\n }\n\n .initializing {\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n height: 100%;\n color: ${cssManager.bdTheme('hsl(0 0% 50%)', 'hsl(0 0% 60%)')};\n font-size: 14px;\n gap: 12px;\n }\n\n .initializing dees-icon {\n animation: spin 1s linear infinite;\n }\n\n .initializing dees-workspace-terminal-preview {\n margin-top: 24px;\n width: 80%;\n max-width: 600px;\n height: 200px;\n }\n\n dees-workspace-filetree {\n position: absolute;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n }\n\n dees-workspace-monaco {\n position: absolute;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n }\n\n dees-workspace-terminal {\n position: absolute;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n }\n\n /* Resize handles */\n .resize-handle-vertical {\n width: 6px;\n cursor: col-resize;\n background: transparent;\n transition: background 0.15s ease;\n position: relative;\n flex-shrink: 0;\n z-index: 10;\n }\n\n .resize-handle-vertical:hover,\n .resize-handle-vertical.dragging {\n background: ${cssManager.bdTheme('#3b82f6', '#58a6ff')};\n }\n\n .resize-handle-vertical::after {\n content: '';\n position: absolute;\n top: 50%;\n left: 50%;\n transform: translate(-50%, -50%);\n width: 2px;\n height: 32px;\n background: ${cssManager.bdTheme('#9ca3af', '#6e7681')};\n border-radius: 1px;\n opacity: 0;\n transition: opacity 0.15s ease;\n }\n\n .resize-handle-vertical:hover::after,\n .resize-handle-vertical.dragging::after {\n opacity: 1;\n background: ${cssManager.bdTheme('#ffffff', '#ffffff')};\n }\n\n .resize-handle-horizontal {\n height: 6px;\n cursor: row-resize;\n background: transparent;\n transition: background 0.15s ease;\n position: relative;\n flex-shrink: 0;\n z-index: 10;\n }\n\n .resize-handle-horizontal:hover,\n .resize-handle-horizontal.dragging {\n background: ${cssManager.bdTheme('#3b82f6', '#58a6ff')};\n }\n\n .resize-handle-horizontal::after {\n content: '';\n position: absolute;\n top: 50%;\n left: 50%;\n transform: translate(-50%, -50%);\n width: 32px;\n height: 2px;\n background: ${cssManager.bdTheme('#9ca3af', '#6e7681')};\n border-radius: 1px;\n opacity: 0;\n transition: opacity 0.15s ease;\n }\n\n .resize-handle-horizontal:hover::after,\n .resize-handle-horizontal.dragging::after {\n opacity: 1;\n background: ${cssManager.bdTheme('#ffffff', '#ffffff')};\n }\n\n /* Prevent text selection while dragging */\n .workspace-container.dragging {\n user-select: none;\n }\n\n .workspace-container.dragging .filetree-panel,\n .workspace-container.dragging .editor-panel,\n .workspace-container.dragging .terminal-panel {\n pointer-events: none;\n }\n\n `,\n ];\n\n public render(): TemplateResult {\n const containerClasses = [\n 'workspace-container',\n (this.isDraggingFileTree || this.isDraggingTerminal) ? 'dragging' : '',\n ].filter(Boolean).join(' ');\n\n if (this.isInitializing) {\n return html`\n
      \n \n Initializing workspace...\n \n
      \n `;\n }\n\n return html`\n
      \n
      \n \n ${this.showFileTree ? html`\n \n \n
      \n ${!this.isFileTreeCollapsed ? html`\n
      \n ` : ''}\n ` : ''}\n\n \n
      \n
      \n
      \n
      \n ${this.openFiles.map(file => html`\n this.activateFile(file.path)}\n >\n ${file.modified ? html`` : ''}\n ${file.name}\n this.closeFile(e, file.path)}>\n \n \n
      \n `)}\n
      \n
      \n \n
      \n
      \n
      \n ${this.showDiffView && this.diffViewConfig ? html`\n { this.showDiffView = false; this.diffViewConfig = null; }}\n >\n ` : this.openFiles.length === 0 ? html`\n
      \n \n Select a file to edit\n
      \n ` : html`\n \n `}\n
      \n \n
      \n\n \n ${this.showTerminal && !this.isTerminalCollapsed ? html`\n \n ` : ''}\n\n \n ${this.showTerminal ? html`\n \n
      \n
      \n this.activeBottomPanel = 'terminal'}\n >\n \n Terminal\n
      \n this.activeBottomPanel = 'problems'}\n >\n \n Problems\n ${this.diagnosticMarkers.length > 0 ? html`\n ${this.diagnosticMarkers.length}\n ` : ''}\n
      \n \n
      \n
      \n \n
      \n
      \n \n
      \n \n
      \n
      \n ${this.renderProblemsPanel()}\n
      \n \n ` : ''}\n \n \n\n \n \n \n `;\n }\n\n async connectedCallback() {\n await super.connectedCallback();\n document.addEventListener('keydown', this.keydownHandler);\n }\n\n async disconnectedCallback() {\n await super.disconnectedCallback();\n document.removeEventListener('keydown', this.keydownHandler);\n\n // Clean up resize event listeners\n document.removeEventListener('mousemove', this.handleFileTreeMouseMove);\n document.removeEventListener('mouseup', this.handleFileTreeMouseUp);\n document.removeEventListener('mousemove', this.handleTerminalMouseMove);\n document.removeEventListener('mouseup', this.handleTerminalMouseUp);\n\n if (this.autoSaveInterval) {\n clearInterval(this.autoSaveInterval);\n this.autoSaveInterval = null;\n }\n this.stopNodeModulesWatcher();\n this.stopAllFileWatchers();\n }\n\n public async firstUpdated() {\n // Initialize current sizes from properties\n this.currentFileTreeWidth = this.fileTreeWidth;\n this.currentTerminalHeight = this.terminalHeight;\n\n if (this.executionEnvironment) {\n await this.initializeWorkspace();\n }\n }\n\n public async updated(changedProperties: Map) {\n if (changedProperties.has('executionEnvironment') && this.executionEnvironment) {\n await this.initializeWorkspace();\n }\n\n // Capture actionbar reference when it becomes available (after initialization completes)\n if (!this.actionbarElement) {\n this.actionbarElement = this.shadowRoot?.querySelector('.editor-panel dees-actionbar') as DeesActionbar;\n }\n }\n\n private async initializeWorkspace() {\n if (!this.executionEnvironment) return;\n\n // Prevent double initialization\n if (this.initializationStarted) return;\n this.initializationStarted = true;\n\n this.isInitializing = true;\n\n try {\n // Wait for any external initialization (e.g., file mounting)\n if (this.initializationPromise) {\n await this.initializationPromise;\n } else if (!this.executionEnvironment.ready) {\n await this.executionEnvironment.init();\n }\n\n // Execute onInit command from npmextra.json if present\n await this.executeOnInitCommand();\n\n // IntelliSense is initialized lazily when first file is opened (Monaco loads on demand)\n } catch (error) {\n console.error('Failed to initialize workspace:', error);\n // Reset flag to allow retry\n this.initializationStarted = false;\n } finally {\n this.isInitializing = false;\n }\n }\n\n /**\n * Execute onInit command from npmextra.json if present\n * This allows automatic setup like `pnpm install` on workspace initialization\n */\n private async executeOnInitCommand(): Promise {\n if (!this.executionEnvironment) return;\n\n try {\n if (await this.executionEnvironment.exists('/npmextra.json')) {\n const content = await this.executionEnvironment.readFile('/npmextra.json');\n const config = JSON.parse(content);\n const onInit = config?.deesEditorWorkspace?.onInit;\n\n if (onInit && typeof onInit === 'string') {\n console.log('Executing onInit command:', onInit);\n\n // Set command for terminal preview display\n this.initCommand = onInit;\n this.initOutput = [];\n\n // Parse command and args\n const [cmd, ...args] = onInit.split(' ');\n const process = await this.executionEnvironment.spawn(cmd, args);\n\n // Capture stdout/stderr for terminal preview\n process.output.pipeTo(\n new WritableStream({\n write: (data) => {\n // Split data into lines and append\n const lines = data.split('\\n');\n for (const line of lines) {\n if (line) {\n this.initOutput = [...this.initOutput, line];\n }\n }\n },\n })\n );\n\n // Wait for completion\n const exitCode = await process.exit;\n console.log('onInit command completed with exit code:', exitCode);\n\n // Add completion message\n this.initOutput = [...this.initOutput, '', `Command completed with exit code: ${exitCode}`];\n }\n }\n } catch (error) {\n console.warn('Failed to execute onInit command:', error);\n }\n }\n\n private async initializeIntelliSense(): Promise {\n if (!this.executionEnvironment) return;\n if (this.intelliSenseInitialized) return;\n\n // Wait for Monaco to be available globally (with retry for timing)\n let monacoInstance = (window as any).monaco;\n if (!monacoInstance) {\n // Monaco loads asynchronously when the editor mounts, wait a bit\n await new Promise(resolve => setTimeout(resolve, 100));\n monacoInstance = (window as any).monaco;\n }\n\n if (!monacoInstance) {\n console.warn('Monaco not yet loaded, IntelliSense will be initialized later');\n return;\n }\n\n this.intelliSenseInitialized = true;\n this.intelliSenseManager = new TypeScriptIntelliSenseManager();\n await this.intelliSenseManager.init(monacoInstance, this.executionEnvironment);\n\n // Set up marker listener for Problems panel\n this.setupMarkerListener();\n\n // Start watching node_modules for package installations\n this.startNodeModulesWatcher();\n\n // Initial scan for any existing packages\n await this.intelliSenseManager.scanAndLoadNewPackageTypes();\n }\n\n /**\n * Watch node_modules for changes (e.g., after pnpm install)\n * and automatically load types for new packages\n */\n private startNodeModulesWatcher(): void {\n if (!this.executionEnvironment || this.nodeModulesWatcher) return;\n\n try {\n this.nodeModulesWatcher = this.executionEnvironment.watch(\n '/node_modules',\n (_event, _filename) => {\n // Debounce - pnpm install creates many file changes\n if (this.nodeModulesDebounceTimeout) {\n clearTimeout(this.nodeModulesDebounceTimeout);\n }\n this.nodeModulesDebounceTimeout = setTimeout(async () => {\n if (this.intelliSenseManager) {\n await this.intelliSenseManager.scanAndLoadNewPackageTypes();\n }\n }, 2000); // 2 second debounce for package installation\n },\n { recursive: true }\n );\n } catch (error) {\n console.warn('Could not watch node_modules:', error);\n }\n }\n\n private stopNodeModulesWatcher(): void {\n if (this.nodeModulesWatcher) {\n this.nodeModulesWatcher.stop();\n this.nodeModulesWatcher = null;\n }\n if (this.nodeModulesDebounceTimeout) {\n clearTimeout(this.nodeModulesDebounceTimeout);\n this.nodeModulesDebounceTimeout = null;\n }\n }\n\n // ========== Open File Watching for External Changes ==========\n\n /**\n * Start watching an open file for external changes\n */\n private startWatchingFile(path: string): void {\n if (!this.executionEnvironment || this.openFileWatchers.has(path)) return;\n\n try {\n const watcher = this.executionEnvironment.watch(\n path,\n (_event, _filename) => {\n // Debounce to avoid multiple rapid triggers\n const existingTimeout = this.fileChangeDebounce.get(path);\n if (existingTimeout) {\n clearTimeout(existingTimeout);\n }\n const timeout = setTimeout(() => {\n this.handleExternalFileChange(path);\n this.fileChangeDebounce.delete(path);\n }, 300);\n this.fileChangeDebounce.set(path, timeout);\n }\n );\n this.openFileWatchers.set(path, watcher);\n } catch (error) {\n console.warn(`Could not watch file ${path}:`, error);\n }\n }\n\n /**\n * Stop watching a file when it's closed\n */\n private stopWatchingFile(path: string): void {\n const watcher = this.openFileWatchers.get(path);\n if (watcher) {\n watcher.stop();\n this.openFileWatchers.delete(path);\n }\n const timeout = this.fileChangeDebounce.get(path);\n if (timeout) {\n clearTimeout(timeout);\n this.fileChangeDebounce.delete(path);\n }\n }\n\n /**\n * Stop all file watchers\n */\n private stopAllFileWatchers(): void {\n for (const watcher of this.openFileWatchers.values()) {\n watcher.stop();\n }\n this.openFileWatchers.clear();\n\n for (const timeout of this.fileChangeDebounce.values()) {\n clearTimeout(timeout);\n }\n this.fileChangeDebounce.clear();\n }\n\n /**\n * Handle external file change - show actionbar if file has local changes,\n * otherwise silently update with cursor preservation\n */\n private async handleExternalFileChange(path: string): Promise {\n const file = this.openFiles.find(f => f.path === path);\n if (!file || !this.executionEnvironment) return;\n\n try {\n // Read the new content from disk\n const newContent = await this.executionEnvironment.readFile(path);\n\n // If content is same as what we have, no action needed\n if (newContent === file.content) return;\n\n if (file.modified) {\n // File has unsaved local changes AND disk changed - conflict!\n const result = await this.actionbarElement?.show({\n message: `\"${file.name}\" changed on disk. What do you want to do?`,\n type: 'question',\n icon: 'lucide:gitMerge',\n actions: [\n { id: 'load-disk', label: 'Load from Disk', primary: true },\n { id: 'save-local', label: 'Save Local to Disk' },\n { id: 'compare', label: 'Compare' },\n ],\n timeout: { duration: 15000, defaultActionId: 'load-disk' },\n dismissible: true,\n });\n\n if (result?.actionId === 'load-disk') {\n // Discard local changes, load disk version\n await this.updateFileContent(path, newContent, false);\n } else if (result?.actionId === 'save-local') {\n // Keep local changes and save to disk (overwrite external)\n await this.executionEnvironment.writeFile(path, file.content);\n // Mark as saved\n this.openFiles = this.openFiles.map(f =>\n f.path === path ? { ...f, modified: false } : f\n );\n } else if (result?.actionId === 'compare') {\n // Open diff view\n this.openDiffView(path, file.content, newContent);\n }\n // If dismissed, do nothing - user can manually resolve later\n } else {\n // No local changes - silently update with cursor preservation\n await this.updateFileContent(path, newContent, true);\n }\n } catch (error) {\n console.warn(`Failed to handle external change for ${path}:`, error);\n }\n }\n\n /**\n * Update file content in state and optionally in the editor\n */\n private async updateFileContent(\n path: string,\n newContent: string,\n preserveCursor: boolean\n ): Promise {\n // Update internal state\n this.openFiles = this.openFiles.map(f =>\n f.path === path ? { ...f, content: newContent, modified: false } : f\n );\n\n // If this is the active file, update Monaco editor\n if (path === this.activeFilePath) {\n const editor = this.shadowRoot?.querySelector('dees-workspace-monaco') as DeesWorkspaceMonaco;\n if (editor) {\n await editor.setContentExternal(newContent, preserveCursor);\n }\n }\n }\n\n /**\n * Open the diff view to compare local and disk versions\n */\n private openDiffView(path: string, localContent: string, diskContent: string): void {\n this.diffViewConfig = {\n filePath: path,\n originalContent: diskContent,\n modifiedContent: localContent,\n language: this.getLanguageFromPath(path),\n };\n this.showDiffView = true;\n }\n\n /**\n * Handle diff view resolution\n */\n private async handleDiffResolved(e: CustomEvent): Promise {\n const { action, content } = e.detail;\n const path = this.diffViewConfig?.filePath;\n\n if (!path || !this.executionEnvironment) {\n this.showDiffView = false;\n this.diffViewConfig = null;\n return;\n }\n\n if (action === 'use-local') {\n // Save local content to disk\n await this.executionEnvironment.writeFile(path, content);\n this.openFiles = this.openFiles.map(f =>\n f.path === path ? { ...f, content, modified: false } : f\n );\n // Update editor if active\n if (path === this.activeFilePath) {\n const editor = this.shadowRoot?.querySelector('dees-workspace-monaco') as DeesWorkspaceMonaco;\n if (editor) {\n await editor.setContentExternal(content, false);\n }\n }\n } else if (action === 'use-disk') {\n // Update editor with disk content\n await this.updateFileContent(path, content, false);\n }\n\n this.showDiffView = false;\n this.diffViewConfig = null;\n }\n\n private async handleFileSelect(e: CustomEvent<{ path: string; name: string }>) {\n const { path, name } = e.detail;\n await this.openFile(path, name);\n }\n\n private async openFile(path: string, name: string) {\n // Check if already open\n const existingFile = this.openFiles.find(f => f.path === path);\n if (existingFile) {\n this.activeFilePath = path;\n return;\n }\n\n // Load file content\n if (!this.executionEnvironment) return;\n\n try {\n const content = await this.executionEnvironment.readFile(path);\n this.openFiles = [\n ...this.openFiles,\n { path, name, content, modified: false },\n ];\n this.activeFilePath = path;\n\n // Start watching for external changes\n this.startWatchingFile(path);\n\n // Initialize IntelliSense lazily after first file opens (Monaco loads on demand)\n if (!this.intelliSenseInitialized) {\n // Wait for Monaco editor to mount and load Monaco from CDN\n await this.updateComplete;\n // Give Monaco time to load via require.js\n await new Promise(resolve => setTimeout(resolve, 500));\n await this.initializeIntelliSense();\n\n // Process the initial file content for IntelliSense\n const language = this.getLanguageFromPath(path);\n if (this.intelliSenseManager && (language === 'typescript' || language === 'javascript')) {\n await this.intelliSenseManager.processContentChange(content);\n }\n }\n } catch (error) {\n console.error(`Failed to open file ${path}:`, error);\n }\n }\n\n private activateFile(path: string) {\n this.activeFilePath = path;\n }\n\n private closeFile(e: Event, path: string) {\n e.stopPropagation();\n\n const fileIndex = this.openFiles.findIndex(f => f.path === path);\n if (fileIndex === -1) return;\n\n // Check for unsaved changes\n const file = this.openFiles[fileIndex];\n if (file.modified) {\n const confirmed = confirm(`${file.name} has unsaved changes. Close anyway?`);\n if (!confirmed) return;\n }\n\n // Stop watching this file\n this.stopWatchingFile(path);\n\n this.openFiles = this.openFiles.filter(f => f.path !== path);\n\n // If closing the active file, activate another one\n if (this.activeFilePath === path) {\n if (this.openFiles.length > 0) {\n const newIndex = Math.min(fileIndex, this.openFiles.length - 1);\n this.activeFilePath = this.openFiles[newIndex].path;\n } else {\n this.activeFilePath = '';\n }\n }\n }\n\n private getActiveFileContent(): string {\n const file = this.openFiles.find(f => f.path === this.activeFilePath);\n return file?.content || '';\n }\n\n private handleContentChange(e: CustomEvent) {\n const newContent = e.detail;\n const fileIndex = this.openFiles.findIndex(f => f.path === this.activeFilePath);\n if (fileIndex === -1) return;\n\n const file = this.openFiles[fileIndex];\n if (file.content !== newContent) {\n this.openFiles = [\n ...this.openFiles.slice(0, fileIndex),\n { ...file, content: newContent, modified: true },\n ...this.openFiles.slice(fileIndex + 1),\n ];\n\n // Process content for IntelliSense (debounced to avoid parsing on every keystroke)\n const language = this.getLanguageFromPath(this.activeFilePath);\n if (this.intelliSenseManager && (language === 'typescript' || language === 'javascript')) {\n if (this.intelliSenseDebounceTimeout) {\n clearTimeout(this.intelliSenseDebounceTimeout);\n }\n this.intelliSenseDebounceTimeout = setTimeout(() => {\n this.intelliSenseManager?.processContentChange(newContent);\n }, 500); // 500ms debounce\n }\n }\n }\n\n private getLanguageFromPath(path: string): string {\n const ext = path.split('.').pop()?.toLowerCase();\n const languageMap: Record = {\n ts: 'typescript',\n tsx: 'typescript',\n js: 'javascript',\n jsx: 'javascript',\n json: 'json',\n html: 'html',\n css: 'css',\n scss: 'scss',\n less: 'less',\n md: 'markdown',\n yaml: 'yaml',\n yml: 'yaml',\n xml: 'xml',\n sql: 'sql',\n py: 'python',\n sh: 'shell',\n bash: 'shell',\n };\n return languageMap[ext || ''] || 'plaintext';\n }\n\n private toggleTerminal() {\n this.isTerminalCollapsed = !this.isTerminalCollapsed;\n }\n\n // ========== Save Operations ==========\n\n public async saveActiveFile(): Promise {\n const file = this.openFiles.find(f => f.path === this.activeFilePath);\n if (!file || !this.executionEnvironment) return;\n\n try {\n await this.executionEnvironment.writeFile(file.path, file.content);\n\n // Update file state to mark as saved\n this.openFiles = this.openFiles.map(f =>\n f.path === file.path ? { ...f, modified: false } : f\n );\n\n // Update IntelliSense manager with latest content\n if (this.intelliSenseManager) {\n this.intelliSenseManager.addFileModel(file.path, file.content);\n }\n } catch (error) {\n console.error('Failed to save file:', error);\n }\n }\n\n public async saveAllFiles(): Promise {\n if (!this.executionEnvironment) return;\n\n for (const file of this.openFiles.filter(f => f.modified)) {\n try {\n await this.executionEnvironment.writeFile(file.path, file.content);\n\n // Update IntelliSense manager\n if (this.intelliSenseManager) {\n this.intelliSenseManager.addFileModel(file.path, file.content);\n }\n } catch (error) {\n console.error(`Failed to save ${file.path}:`, error);\n }\n }\n\n // Mark all files as saved\n this.openFiles = this.openFiles.map(f => ({ ...f, modified: false }));\n }\n\n // ========== Editor Menu ==========\n\n private async showEditorMenu(e: MouseEvent) {\n e.stopPropagation();\n\n const menuItems: Parameters[1] = [\n {\n name: this.autoSave ? '\u2713 Auto Save' : 'Auto Save',\n iconName: 'lucide:save',\n action: async () => this.toggleAutoSave(),\n },\n { divider: true },\n {\n name: 'Save',\n iconName: 'lucide:save',\n action: async () => this.saveActiveFile(),\n },\n {\n name: 'Save All',\n iconName: 'lucide:save',\n action: async () => this.saveAllFiles(),\n },\n ];\n\n await DeesContextmenu.openContextMenuWithOptions(e, menuItems);\n }\n\n private toggleAutoSave() {\n this.autoSave = !this.autoSave;\n\n if (this.autoSave) {\n // Save every 2 seconds if there are changes\n this.autoSaveInterval = setInterval(() => {\n const hasUnsaved = this.openFiles.some(f => f.modified);\n if (hasUnsaved) {\n this.saveAllFiles();\n }\n }, 2000);\n } else {\n if (this.autoSaveInterval) {\n clearInterval(this.autoSaveInterval);\n this.autoSaveInterval = null;\n }\n }\n }\n\n private getErrorCount(): number {\n // Monaco MarkerSeverity: Error = 8, Warning = 4, Info = 2, Hint = 1\n return this.diagnosticMarkers.filter(m => m.severity === 8).length;\n }\n\n private renderProblemsPanel(): TemplateResult {\n if (this.diagnosticMarkers.length === 0) {\n return html`\n
      \n \n No problems detected\n
      \n `;\n }\n\n return html`\n
      \n ${this.diagnosticMarkers.map(marker => html`\n
      this.navigateToProblem(marker)}>\n \n
      \n
      ${marker.message}
      \n
      \n ${marker.resource.path.split('/').pop()} (${marker.startLineNumber}, ${marker.startColumn})\n ${marker.source ? `[${marker.source}]` : ''}\n
      \n
      \n
      \n `)}\n
      \n `;\n }\n\n private async navigateToProblem(marker: typeof this.diagnosticMarkers[0]) {\n // Extract file path from resource\n const filePath = marker.resource.path;\n const fileName = filePath.split('/').pop() || '';\n\n // Open the file if not already open\n const existingFile = this.openFiles.find(f => f.path === filePath);\n if (!existingFile) {\n await this.openFile(filePath, fileName);\n } else {\n this.activeFilePath = filePath;\n }\n\n // Wait for editor to be ready, then navigate to the line\n await this.updateComplete;\n const editorElement = this.shadowRoot?.querySelector('dees-workspace-monaco') as DeesWorkspaceMonaco;\n if (editorElement) {\n const editor = await editorElement.editorDeferred.promise;\n editor.revealLineInCenter(marker.startLineNumber);\n editor.setPosition({\n lineNumber: marker.startLineNumber,\n column: marker.startColumn,\n });\n editor.focus();\n }\n }\n\n private setupMarkerListener() {\n const monacoInstance = (window as any).monaco;\n if (!monacoInstance) return;\n\n // Listen for marker changes\n monacoInstance.editor.onDidChangeMarkers((uris: any[]) => {\n this.updateDiagnosticMarkers();\n });\n\n // Initial load\n this.updateDiagnosticMarkers();\n }\n\n private updateDiagnosticMarkers() {\n const monacoInstance = (window as any).monaco;\n if (!monacoInstance) return;\n\n // Get all markers from Monaco\n const allMarkers = monacoInstance.editor.getModelMarkers({});\n\n // Transform to our format\n this.diagnosticMarkers = allMarkers.map((m: any) => ({\n message: m.message,\n severity: m.severity,\n startLineNumber: m.startLineNumber,\n startColumn: m.startColumn,\n endLineNumber: m.endLineNumber,\n endColumn: m.endColumn,\n source: m.source,\n resource: { path: m.resource.path },\n }));\n }\n\n // ========== Bottom Bar Event Handlers ==========\n\n /**\n * Handle run-process events from bottom bar widgets\n * Creates a new terminal tab for the process\n */\n private async handleRunProcess(e: CustomEvent): Promise {\n const detail = e.detail;\n\n // Find the terminal component\n const terminal = this.shadowRoot?.querySelector('dees-workspace-terminal') as DeesWorkspaceTerminal;\n if (!terminal) {\n console.warn('Terminal component not found');\n return;\n }\n\n // Expand terminal if collapsed\n if (this.isTerminalCollapsed) {\n this.isTerminalCollapsed = false;\n }\n\n // Switch to terminal panel\n this.activeBottomPanel = 'terminal';\n\n // Wait for UI update\n await this.updateComplete;\n\n // Create a new terminal tab for the process\n await terminal.createProcessTab({\n type: detail.type,\n label: detail.label,\n command: detail.command,\n args: detail.args,\n metadata: detail.metadata,\n switchToTab: true,\n });\n }\n\n // ========== Public Layout Methods ==========\n\n /**\n * Programmatically set the file tree width\n */\n public setFileTreeWidth(width: number): void {\n const minWidth = 150;\n const maxWidth = this.getBoundingClientRect().width * 0.5;\n this.currentFileTreeWidth = Math.max(minWidth, Math.min(maxWidth, width));\n window.dispatchEvent(new Event('resize'));\n }\n\n /**\n * Programmatically set the terminal height\n */\n public setTerminalHeight(height: number): void {\n const minHeight = 100;\n const maxHeight = this.getBoundingClientRect().height * 0.7;\n this.currentTerminalHeight = Math.max(minHeight, Math.min(maxHeight, height));\n window.dispatchEvent(new Event('resize'));\n }\n\n /**\n * Reset layout to initial property values\n */\n public resetLayout(): void {\n this.currentFileTreeWidth = this.fileTreeWidth;\n this.currentTerminalHeight = this.terminalHeight;\n window.dispatchEvent(new Event('resize'));\n }\n}\n", "export * from './dees-workspace.js';\nexport * from './typescript-intellisense.js';\n", "export * from './dees-workspace-monaco.js';\n", "export * from './dees-workspace-filetree.js';\n", "export {};\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW50ZXJmYWNlcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3RzX3dlYi9lbGVtZW50cy8wMGdyb3VwLXdvcmtzcGFjZS9kZWVzLXdvcmtzcGFjZS10ZXJtaW5hbC9pbnRlcmZhY2VzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIifQ==", "export * from './dees-workspace-terminal.js';\nexport * from './interfaces.js';\nexport * from './terminal-tab-manager.js';\n", "export * from './dees-workspace-terminal-preview.js';\n", "import {\n DeesElement,\n property,\n html,\n customElement,\n type TemplateResult,\n css,\n cssManager,\n domtools,\n state,\n} from '@design.estate/dees-element';\nimport { themeDefaultStyles } from '../../00theme.js';\nimport { DeesWorkspaceMonaco } from '../dees-workspace-monaco/dees-workspace-monaco.js';\n\nconst deferred = domtools.plugins.smartpromise.defer();\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'dees-workspace-markdown': DeesWorkspaceMarkdown;\n }\n}\n\n@customElement('dees-workspace-markdown')\nexport class DeesWorkspaceMarkdown extends DeesElement {\n public static demo = () => html``;\n public static demoGroups = ['Workspace'];\n\n public static styles = [\n themeDefaultStyles,\n cssManager.defaultStyles,\n css`\n :host {\n display: block;\n position: relative;\n width: 100%;\n height: 100%;\n }\n\n .splitContainer {\n position: absolute;\n height: 100%;\n width: 100%;\n display: flex;\n flex-direction: row;\n }\n\n .editorContainer {\n position: relative;\n height: 100%;\n min-width: 100px;\n overflow: hidden;\n }\n\n .resizeHandle {\n width: 6px;\n height: 100%;\n background: ${cssManager.bdTheme('#e5e7eb', '#30363d')};\n cursor: col-resize;\n flex-shrink: 0;\n transition: background 0.15s ease;\n position: relative;\n }\n\n .resizeHandle:hover,\n .resizeHandle.dragging {\n background: ${cssManager.bdTheme('#3b82f6', '#58a6ff')};\n }\n\n .resizeHandle::after {\n content: '';\n position: absolute;\n top: 50%;\n left: 50%;\n transform: translate(-50%, -50%);\n width: 2px;\n height: 32px;\n background: ${cssManager.bdTheme('#9ca3af', '#6e7681')};\n border-radius: 1px;\n opacity: 0.6;\n }\n\n .resizeHandle:hover::after,\n .resizeHandle.dragging::after {\n background: ${cssManager.bdTheme('#ffffff', '#ffffff')};\n opacity: 1;\n }\n\n .outletContainer {\n position: relative;\n height: 100%;\n min-width: 100px;\n background: ${cssManager.bdTheme('#ffffff', '#0d1117')};\n color: ${cssManager.bdTheme('#24292f', '#e6edf3')};\n font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', 'Noto Sans', Helvetica, Arial, sans-serif;\n padding: 20px;\n overflow-y: auto;\n box-sizing: border-box;\n }\n\n /* Prevent text selection while dragging */\n .splitContainer.dragging {\n user-select: none;\n }\n\n .splitContainer.dragging .editorContainer,\n .splitContainer.dragging .outletContainer {\n pointer-events: none;\n }\n `,\n ];\n\n /**\n * Initial split ratio for the editor (left) panel.\n * Value from 0 to 100 representing percentage width.\n * Default is 50 (50/50 split).\n */\n @property({ type: Number })\n accessor splitRatio: number = 50;\n\n /**\n * Minimum width percentage for either panel.\n */\n @property({ type: Number })\n accessor minPanelSize: number = 10;\n\n @state()\n accessor currentSplitRatio: number = 50;\n\n @state()\n accessor isDragging: boolean = false;\n\n private resizeHandleElement: HTMLElement;\n private containerElement: HTMLElement;\n\n public render() {\n return html`\n
      \n
      \n note:\nThere is something going on.\n\n\\`\\`\\`typescript\nconst hello = 'yes'\n\\`\\`\\`\n`}\n wordWrap=\"bounded\"\n >\n
      \n
      \n
      \n \n
      \n \n `;\n }\n\n public async firstUpdated(_changedPropertiesArg) {\n await super.firstUpdated(_changedPropertiesArg);\n\n // Initialize current ratio from property\n this.currentSplitRatio = this.splitRatio;\n\n // Cache elements\n this.containerElement = this.shadowRoot.querySelector('.splitContainer');\n this.resizeHandleElement = this.shadowRoot.querySelector('.resizeHandle');\n\n const editor = this.shadowRoot.querySelector('dees-workspace-monaco') as DeesWorkspaceMonaco;\n\n // Wire up markdown rendering\n const markdownOutlet = this.shadowRoot.querySelector('dees-workspace-markdownoutlet');\n const smartmarkdownInstance = new domtools.plugins.smartmarkdown.SmartMarkdown();\n const mdParsedResult = await smartmarkdownInstance.getMdParsedResultFromMarkdown('loading...')\n editor.contentSubject.subscribe(async contentArg => {\n await mdParsedResult.updateFromMarkdownString(contentArg)\n const html = mdParsedResult.html;\n markdownOutlet.updateHtmlText(html);\n });\n }\n\n private handleMouseDown = (e: MouseEvent) => {\n e.preventDefault();\n this.isDragging = true;\n\n document.addEventListener('mousemove', this.handleMouseMove);\n document.addEventListener('mouseup', this.handleMouseUp);\n };\n\n private handleMouseMove = (e: MouseEvent) => {\n if (!this.isDragging || !this.containerElement) return;\n\n const containerRect = this.containerElement.getBoundingClientRect();\n const containerWidth = containerRect.width;\n const mouseX = e.clientX - containerRect.left;\n\n // Calculate percentage, accounting for the resize handle width (6px)\n let newRatio = (mouseX / containerWidth) * 100;\n\n // Clamp to min/max\n newRatio = Math.max(this.minPanelSize, Math.min(100 - this.minPanelSize, newRatio));\n\n this.currentSplitRatio = newRatio;\n };\n\n private handleMouseUp = () => {\n this.isDragging = false;\n document.removeEventListener('mousemove', this.handleMouseMove);\n document.removeEventListener('mouseup', this.handleMouseUp);\n\n // Trigger resize on monaco editor\n const editor = this.shadowRoot.querySelector('dees-workspace-monaco') as DeesWorkspaceMonaco;\n if (editor) {\n // Monaco needs to be notified of size changes\n window.dispatchEvent(new Event('resize'));\n }\n };\n\n async disconnectedCallback() {\n await super.disconnectedCallback();\n // Clean up event listeners\n document.removeEventListener('mousemove', this.handleMouseMove);\n document.removeEventListener('mouseup', this.handleMouseUp);\n }\n\n /**\n * Programmatically set the split ratio\n */\n public setSplitRatio(ratio: number) {\n this.currentSplitRatio = Math.max(this.minPanelSize, Math.min(100 - this.minPanelSize, ratio));\n }\n\n /**\n * Reset to initial split ratio\n */\n public resetSplitRatio() {\n this.currentSplitRatio = this.splitRatio;\n }\n}\n", "export * from './dees-workspace-markdown.js';\n", "import { html, css } from '@design.estate/dees-element';\nimport '@design.estate/dees-wcctools/demotools';\nimport '../../00group-layout/dees-panel/dees-panel.js';\nimport type { DeesWorkspaceMarkdownoutlet } from './dees-workspace-markdownoutlet.js';\n\nexport const demoFunc = () => html`\n \n \n\n
      \n \n {\n const outlet = panelEl.querySelector('dees-workspace-markdownoutlet') as DeesWorkspaceMarkdownoutlet;\n await outlet?.updateHtmlText(`\n

      Heading Level 1

      \n

      Heading Level 2

      \n

      Heading Level 3

      \n

      Heading Level 4

      \n
      Heading Level 5
      \n
      Heading Level 6
      \n `);\n }}\n >\n \n \n\n \n {\n const outlet = panelEl.querySelector('dees-workspace-markdownoutlet') as DeesWorkspaceMarkdownoutlet;\n await outlet?.updateHtmlText(`\n

      This is a paragraph with bold text and italic text.

      \n

      You can also use bold italic for emphasis.

      \n

      Here's a link example and some inline code.

      \n

      Press Ctrl + C to copy text.

      \n
      \n

      Above is a horizontal rule separator.

      \n `);\n }}\n >\n \n \n\n \n {\n const outlet = panelEl.querySelector('dees-workspace-markdownoutlet') as DeesWorkspaceMarkdownoutlet;\n await outlet?.updateHtmlText(`\n

      Unordered List

      \n
        \n
      • First item
      • \n
      • Second item\n
          \n
        • Nested item 1
        • \n
        • Nested item 2
        • \n
        \n
      • \n
      • Third item
      • \n
      \n\n

      Ordered List

      \n
        \n
      1. Step one
      2. \n
      3. Step two
      4. \n
      5. Step three
      6. \n
      \n\n

      Task List

      \n
        \n
      • Completed task
      • \n
      • Pending task
      • \n
      • Another task
      • \n
      \n `);\n }}\n >\n \n \n\n \n {\n const outlet = panelEl.querySelector('dees-workspace-markdownoutlet') as DeesWorkspaceMarkdownoutlet;\n await outlet?.updateHtmlText(`\n

      Inline code: const greeting = \"Hello, World!\";

      \n\n

      TypeScript Example

      \n
      import { html, css } from '@design.estate/dees-element';\n\ninterface IUser {\n  name: string;\n  email: string;\n  age?: number;\n}\n\nconst getUser = async (id: string): Promise<IUser> => {\n  const response = await fetch(\\`/api/users/\\${id}\\`);\n  return response.json();\n};
      \n\n

      JSON Example

      \n
      {\n  \"name\": \"dees-catalog\",\n  \"version\": \"3.0.0\",\n  \"dependencies\": {\n    \"@design.estate/dees-element\": \"^2.0.0\"\n  }\n}
      \n `);\n }}\n >\n \n \n\n \n {\n const outlet = panelEl.querySelector('dees-workspace-markdownoutlet') as DeesWorkspaceMarkdownoutlet;\n await outlet?.updateHtmlText(`\n
  • \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
    FeatureStatusPriority
    Dark mode supportCompletedHigh
    Responsive designIn ProgressMedium
    AccessibilityPlannedHigh
    DocumentationIn ProgressLow
    \n `);\n }}\n >\n \n \n\n \n {\n const outlet = panelEl.querySelector('dees-workspace-markdownoutlet') as DeesWorkspaceMarkdownoutlet;\n await outlet?.updateHtmlText(`\n
    \n

    This is a standard blockquote. It's great for highlighting important information or quotes from other sources.

    \n
    \n\n
    \n

    Note: This is an informational note to draw attention to important details.

    \n
    \n\n
    \n

    Tip: Here's a helpful tip to improve your workflow.

    \n
    \n\n
    \n

    Important: This information is crucial for understanding the topic.

    \n
    \n\n
    \n

    Warning: Be careful when performing this action.

    \n
    \n\n
    \n

    Caution: This action may have unintended consequences.

    \n
    \n `);\n }}\n >\n \n \n\n \n {\n const outlet = panelEl.querySelector('dees-workspace-markdownoutlet') as DeesWorkspaceMarkdownoutlet;\n await outlet?.updateHtmlText(`\n

    Getting Started Guide

    \n

    Welcome to the dees-catalog component library. This guide will help you get up and running quickly.

    \n\n

    Installation

    \n

    Install the package using your preferred package manager:

    \n
    # Using pnpm (recommended)\npnpm add @design.estate/dees-catalog\n\n# Using npm\nnpm install @design.estate/dees-catalog
    \n\n

    Basic Usage

    \n

    Import and use components in your TypeScript files:

    \n
    import { DeesButton } from '@design.estate/dees-catalog';\n\n// Use in your templates\nhtml\\`<dees-button>Click me</dees-button>\\`
    \n\n
    \n

    Tip: Check the demo showcase for live examples of all components.

    \n
    \n\n

    Available Components

    \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
    ComponentDescription
    dees-buttonPrimary button component
    dees-input-textText input field
    dees-tableData table with sorting
    dees-modalModal dialog
    \n\n

    Next Steps

    \n \n\n
    \n

    \"The best component library is one that gets out of your way.\" \u2014 Design Systems Team

    \n
    \n `);\n }}\n >\n \n \n \n \n`;\n", "import {\n customElement,\n DeesElement,\n html,\n type TemplateResult,\n css,\n cssManager,\n} from '@design.estate/dees-element';\nimport { themeDefaultStyles } from '../../00theme.js';\nimport { demoFunc } from './dees-workspace-markdownoutlet.demo.js';\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'dees-workspace-markdownoutlet': DeesWorkspaceMarkdownoutlet;\n }\n}\n\n@customElement('dees-workspace-markdownoutlet')\nexport class DeesWorkspaceMarkdownoutlet extends DeesElement {\n // DEMO\n public static demo = demoFunc;\n public static demoGroups = ['Workspace'];\n\n public static styles = [\n themeDefaultStyles,\n cssManager.defaultStyles,\n css`\n :host {\n display: block;\n font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', 'Noto Sans', Helvetica, Arial, sans-serif;\n font-size: 16px;\n line-height: 1.6;\n color: ${cssManager.bdTheme('#24292f', '#e6edf3')};\n }\n\n .outlet {\n word-wrap: break-word;\n }\n\n /* Headings */\n h1, h2, h3, h4, h5, h6 {\n margin-top: 24px;\n margin-bottom: 16px;\n font-weight: 600;\n line-height: 1.25;\n color: ${cssManager.bdTheme('#1f2328', '#f0f6fc')};\n }\n\n h1 {\n font-size: 2em;\n padding-bottom: 0.3em;\n border-bottom: 1px solid ${cssManager.bdTheme('#d1d9e0', '#30363d')};\n }\n\n h2 {\n font-size: 1.5em;\n padding-bottom: 0.3em;\n border-bottom: 1px solid ${cssManager.bdTheme('#d1d9e0', '#30363d')};\n }\n\n h3 {\n font-size: 1.25em;\n }\n\n h4 {\n font-size: 1em;\n }\n\n h5 {\n font-size: 0.875em;\n }\n\n h6 {\n font-size: 0.85em;\n color: ${cssManager.bdTheme('#656d76', '#8b949e')};\n }\n\n /* Paragraphs and text */\n p {\n margin-top: 0;\n margin-bottom: 16px;\n }\n\n /* Links */\n a {\n color: ${cssManager.bdTheme('#0969da', '#58a6ff')};\n text-decoration: none;\n }\n\n a:hover {\n text-decoration: underline;\n }\n\n /* Strong and emphasis */\n strong {\n font-weight: 600;\n color: ${cssManager.bdTheme('#1f2328', '#f0f6fc')};\n }\n\n em {\n font-style: italic;\n }\n\n /* Lists */\n ul, ol {\n margin-top: 0;\n margin-bottom: 16px;\n padding-left: 2em;\n }\n\n li {\n margin-top: 4px;\n }\n\n li + li {\n margin-top: 4px;\n }\n\n ul ul, ul ol, ol ul, ol ol {\n margin-top: 0;\n margin-bottom: 0;\n }\n\n /* Blockquotes */\n blockquote {\n margin: 0 0 16px 0;\n padding: 0 1em;\n color: ${cssManager.bdTheme('#656d76', '#8b949e')};\n border-left: 4px solid ${cssManager.bdTheme('#d1d9e0', '#30363d')};\n }\n\n blockquote > :first-child {\n margin-top: 0;\n }\n\n blockquote > :last-child {\n margin-bottom: 0;\n }\n\n /* Inline code */\n code {\n padding: 0.2em 0.4em;\n margin: 0;\n font-size: 85%;\n font-family: ui-monospace, SFMono-Regular, 'SF Mono', Menlo, Consolas, 'Liberation Mono', monospace;\n background-color: ${cssManager.bdTheme('rgba(175, 184, 193, 0.2)', 'rgba(110, 118, 129, 0.4)')};\n border-radius: 6px;\n white-space: break-spaces;\n }\n\n /* Code blocks */\n pre {\n margin-top: 0;\n margin-bottom: 16px;\n padding: 16px;\n overflow: auto;\n font-size: 85%;\n line-height: 1.45;\n font-family: ui-monospace, SFMono-Regular, 'SF Mono', Menlo, Consolas, 'Liberation Mono', monospace;\n background-color: ${cssManager.bdTheme('#f6f8fa', '#161b22')};\n border-radius: 6px;\n word-wrap: normal;\n }\n\n pre code {\n display: block;\n padding: 0;\n margin: 0;\n overflow: visible;\n line-height: inherit;\n word-wrap: normal;\n background-color: transparent;\n border: 0;\n font-size: 100%;\n white-space: pre;\n }\n\n /* Tables */\n table {\n width: max-content;\n max-width: 100%;\n margin-top: 0;\n margin-bottom: 16px;\n border-spacing: 0;\n border-collapse: collapse;\n overflow: auto;\n display: block;\n }\n\n table th {\n font-weight: 600;\n padding: 6px 13px;\n border: 1px solid ${cssManager.bdTheme('#d1d9e0', '#30363d')};\n background-color: ${cssManager.bdTheme('#f6f8fa', '#161b22')};\n color: ${cssManager.bdTheme('#1f2328', '#e6edf3')};\n }\n\n table td {\n padding: 6px 13px;\n border: 1px solid ${cssManager.bdTheme('#d1d9e0', '#30363d')};\n color: ${cssManager.bdTheme('#1f2328', '#e6edf3')};\n }\n\n table tr {\n background-color: ${cssManager.bdTheme('#ffffff', '#0d1117')};\n border-top: 1px solid ${cssManager.bdTheme('#d1d9e0', '#21262d')};\n }\n\n table tr:nth-child(2n) {\n background-color: ${cssManager.bdTheme('#f6f8fa', '#161b22')};\n }\n\n /* Horizontal rules */\n hr {\n height: 4px;\n padding: 0;\n margin: 24px 0;\n background-color: ${cssManager.bdTheme('#d1d9e0', '#30363d')};\n border: 0;\n border-radius: 2px;\n }\n\n /* Images */\n img {\n max-width: 100%;\n box-sizing: border-box;\n border-radius: 6px;\n }\n\n /* Task lists */\n .task-list-item {\n list-style-type: none;\n }\n\n .task-list-item input {\n margin: 0 0.2em 0.25em -1.4em;\n vertical-align: middle;\n }\n\n /* Definition lists */\n dl {\n padding: 0;\n }\n\n dl dt {\n padding: 0;\n margin-top: 16px;\n font-size: 1em;\n font-style: italic;\n font-weight: 600;\n }\n\n dl dd {\n padding: 0 16px;\n margin-bottom: 16px;\n }\n\n /* Keyboard input */\n kbd {\n display: inline-block;\n padding: 3px 5px;\n font-size: 11px;\n font-family: ui-monospace, SFMono-Regular, 'SF Mono', Menlo, Consolas, 'Liberation Mono', monospace;\n line-height: 10px;\n color: ${cssManager.bdTheme('#1f2328', '#e6edf3')};\n vertical-align: middle;\n background-color: ${cssManager.bdTheme('#f6f8fa', '#161b22')};\n border: 1px solid ${cssManager.bdTheme('#d1d9e0', '#30363d')};\n border-radius: 6px;\n box-shadow: inset 0 -1px 0 ${cssManager.bdTheme('#d1d9e0', '#30363d')};\n }\n\n /* Footnotes */\n .footnotes {\n font-size: 12px;\n color: ${cssManager.bdTheme('#656d76', '#8b949e')};\n border-top: 1px solid ${cssManager.bdTheme('#d1d9e0', '#30363d')};\n padding-top: 16px;\n margin-top: 32px;\n }\n\n /* Alerts/Admonitions */\n .markdown-alert {\n padding: 8px 16px;\n margin-bottom: 16px;\n border-left: 4px solid;\n border-radius: 6px;\n }\n\n .markdown-alert-note {\n border-color: ${cssManager.bdTheme('#0969da', '#58a6ff')};\n background-color: ${cssManager.bdTheme('rgba(9, 105, 218, 0.1)', 'rgba(56, 139, 253, 0.1)')};\n }\n\n .markdown-alert-warning {\n border-color: ${cssManager.bdTheme('#bf8700', '#d29922')};\n background-color: ${cssManager.bdTheme('rgba(191, 135, 0, 0.1)', 'rgba(187, 128, 9, 0.1)')};\n }\n\n .markdown-alert-important {\n border-color: ${cssManager.bdTheme('#8250df', '#a371f7')};\n background-color: ${cssManager.bdTheme('rgba(130, 80, 223, 0.1)', 'rgba(163, 113, 247, 0.1)')};\n }\n\n .markdown-alert-caution {\n border-color: ${cssManager.bdTheme('#cf222e', '#f85149')};\n background-color: ${cssManager.bdTheme('rgba(207, 34, 46, 0.1)', 'rgba(248, 81, 73, 0.1)')};\n }\n\n .markdown-alert-tip {\n border-color: ${cssManager.bdTheme('#1a7f37', '#3fb950')};\n background-color: ${cssManager.bdTheme('rgba(26, 127, 55, 0.1)', 'rgba(46, 160, 67, 0.1)')};\n }\n\n /* Syntax highlighting for code blocks */\n .hljs-comment,\n .hljs-quote {\n color: ${cssManager.bdTheme('#6a737d', '#8b949e')};\n }\n\n .hljs-keyword,\n .hljs-selector-tag,\n .hljs-addition {\n color: ${cssManager.bdTheme('#d73a49', '#ff7b72')};\n }\n\n .hljs-number,\n .hljs-string,\n .hljs-meta .hljs-meta-string,\n .hljs-literal,\n .hljs-doctag,\n .hljs-regexp {\n color: ${cssManager.bdTheme('#032f62', '#a5d6ff')};\n }\n\n .hljs-title,\n .hljs-section,\n .hljs-name,\n .hljs-selector-id,\n .hljs-selector-class {\n color: ${cssManager.bdTheme('#6f42c1', '#d2a8ff')};\n }\n\n .hljs-attribute,\n .hljs-attr,\n .hljs-variable,\n .hljs-template-variable,\n .hljs-class .hljs-title,\n .hljs-type {\n color: ${cssManager.bdTheme('#005cc5', '#79c0ff')};\n }\n\n .hljs-symbol,\n .hljs-bullet,\n .hljs-subst,\n .hljs-meta,\n .hljs-meta .hljs-keyword,\n .hljs-selector-attr,\n .hljs-selector-pseudo,\n .hljs-link {\n color: ${cssManager.bdTheme('#e36209', '#ffa657')};\n }\n\n .hljs-built_in,\n .hljs-deletion {\n color: ${cssManager.bdTheme('#b31d28', '#ffa198')};\n }\n\n .hljs-formula {\n background-color: ${cssManager.bdTheme('#f6f8fa', '#161b22')};\n }\n\n .hljs-emphasis {\n font-style: italic;\n }\n\n .hljs-strong {\n font-weight: bold;\n }\n `,\n ];\n\n // INSTANCE\n private outlet: HTMLElement;\n\n public render(): TemplateResult {\n return html`\n
    \n

    Markdown Preview

    \n

    Content will appear here when markdown is parsed.

    \n
    \n `;\n }\n\n public async firstUpdated(_changedProperties: Map) {\n await super.firstUpdated(_changedProperties);\n this.outlet = this.shadowRoot.querySelector('.outlet');\n }\n\n public async updateHtmlText(htmlTextArg: string) {\n await this.updateComplete;\n if (!this.outlet) {\n this.outlet = this.shadowRoot.querySelector('.outlet');\n }\n this.outlet.innerHTML = htmlTextArg;\n }\n}\n", "export * from './dees-workspace-markdownoutlet.js';\n", "export * from './dees-workspace-bottombar.js';\n", "export * from './dees-workspace-diff-editor.js';\n", "// Workspace Components\nexport * from './dees-workspace/index.js';\nexport * from './dees-workspace-monaco/index.js';\nexport * from './dees-workspace-filetree/index.js';\nexport * from './dees-workspace-terminal/index.js';\nexport * from './dees-workspace-terminal-preview/index.js';\nexport * from './dees-workspace-markdown/index.js';\nexport * from './dees-workspace-markdownoutlet/index.js';\nexport * from './dees-workspace-bottombar/index.js';\nexport * from './dees-workspace-diff-editor/index.js';\n", "export {};\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVlcy1zZWFyY2guanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi90c193ZWIvZWxlbWVudHMvZGVlcy1zZWFyY2gvZGVlcy1zZWFyY2gudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiJ9", "export * from './dees-search.js';\n", "import {} from '@design.estate/dees-element';", "export * from './dees-tooltip.js';\n", "export * from './00zindex.js';\nexport * from './00theme.js';\n\n// Component Groups\nexport * from './00group-appui/index.js';\nexport * from './00group-button/index.js';\nexport * from './00group-chart/index.js';\nexport * from './00group-dataview/index.js';\nexport * from './00group-feedback/index.js';\nexport * from './00group-form/index.js';\nexport * from './00group-input/index.js';\nexport * from './00group-layout/index.js';\nexport * from './00group-media/index.js';\nexport * from './00group-overlay/index.js';\nexport * from './00group-runtime/index.js';\nexport * from './00group-simple/index.js';\nexport * from './00group-utility/index.js';\nexport * from './00group-workspace/index.js';\n\n// Standalone Components\nexport * from './dees-search/index.js';\nexport * from './dees-tooltip/index.js';\n", "/**\n * autocreated commitinfo by @push.rocks/commitinfo\n */\nexport const commitinfo = {\n name: '@design.estate/dees-catalog',\n version: '3.43.3',\n description: 'A comprehensive library that provides dynamic web components for building sophisticated and modern web applications using JavaScript and TypeScript.'\n}\n", "export * from './elements/index.js';\nimport * as colors from './elements/00colors.js';\nexport { colors };\nexport { commitinfo } from './00_commitinfo_data.js';\n", "// @design.estate scope\nimport * as deesElement from '@design.estate/dees-element';\nimport * as deesCatalog from '@design.estate/dees-catalog';\n\nexport {\n deesElement,\n deesCatalog,\n};\n\n// domtools gives us TypedRequest, smartstate, smartrouter, and other utilities\nexport const domtools = deesElement.domtools;\n", "// @apiglobal scope\nimport * as typedrequestInterfaces from '@api.global/typedrequest-interfaces';\n\nexport {\n typedrequestInterfaces,\n};\n", "export interface IIdentity {\n jwt: string;\n userId: string;\n username: string;\n expiresAt: number;\n role: 'admin' | 'user';\n}\n", "export type TProviderType = 'gitea' | 'gitlab';\n\nexport interface IProviderConnection {\n id: string;\n name: string;\n providerType: TProviderType;\n baseUrl: string;\n token: string;\n createdAt: number;\n status: 'connected' | 'disconnected' | 'error';\n}\n", "export interface IProject {\n id: string;\n name: string;\n fullPath: string;\n description: string;\n defaultBranch: string;\n webUrl: string;\n connectionId: string;\n visibility: string;\n topics: string[];\n lastActivity: string;\n}\n", "export interface IGroup {\n id: string;\n name: string;\n fullPath: string;\n description: string;\n webUrl: string;\n connectionId: string;\n visibility: string;\n projectCount: number;\n}\n", "export interface ISecret {\n key: string;\n value: string;\n protected: boolean;\n masked: boolean;\n scope: 'project' | 'group';\n scopeId: string;\n connectionId: string;\n environment: string;\n}\n", "export type TPipelineStatus =\n | 'pending'\n | 'running'\n | 'success'\n | 'failed'\n | 'canceled'\n | 'skipped'\n | 'waiting'\n | 'manual';\n\nexport interface IPipeline {\n id: string;\n projectId: string;\n projectName: string;\n connectionId: string;\n status: TPipelineStatus;\n ref: string;\n sha: string;\n webUrl: string;\n duration: number;\n createdAt: string;\n source: string;\n}\n\nexport interface IPipelineJob {\n id: string;\n pipelineId: string;\n name: string;\n stage: string;\n status: TPipelineStatus;\n duration: number;\n}\n", "export * from './identity.ts';\nexport * from './connection.ts';\nexport * from './project.ts';\nexport * from './group.ts';\nexport * from './secret.ts';\nexport * from './pipeline.ts';\n", "import * as plugins from '../plugins.ts';\nimport * as data from '../data/index.ts';\n\nexport interface IReq_AdminLogin extends plugins.typedrequestInterfaces.implementsTR<\n plugins.typedrequestInterfaces.ITypedRequest,\n IReq_AdminLogin\n> {\n method: 'adminLogin';\n request: {\n username: string;\n password: string;\n };\n response: {\n identity?: data.IIdentity;\n };\n}\n\nexport interface IReq_AdminLogout extends plugins.typedrequestInterfaces.implementsTR<\n plugins.typedrequestInterfaces.ITypedRequest,\n IReq_AdminLogout\n> {\n method: 'adminLogout';\n request: {\n identity: data.IIdentity;\n };\n response: {\n ok: boolean;\n };\n}\n\nexport interface IReq_VerifyIdentity extends plugins.typedrequestInterfaces.implementsTR<\n plugins.typedrequestInterfaces.ITypedRequest,\n IReq_VerifyIdentity\n> {\n method: 'verifyIdentity';\n request: {\n identity: data.IIdentity;\n };\n response: {\n valid: boolean;\n identity?: data.IIdentity;\n };\n}\n", "import * as plugins from '../plugins.ts';\nimport * as data from '../data/index.ts';\n\nexport interface IReq_GetConnections extends plugins.typedrequestInterfaces.implementsTR<\n plugins.typedrequestInterfaces.ITypedRequest,\n IReq_GetConnections\n> {\n method: 'getConnections';\n request: {\n identity: data.IIdentity;\n };\n response: {\n connections: data.IProviderConnection[];\n };\n}\n\nexport interface IReq_CreateConnection extends plugins.typedrequestInterfaces.implementsTR<\n plugins.typedrequestInterfaces.ITypedRequest,\n IReq_CreateConnection\n> {\n method: 'createConnection';\n request: {\n identity: data.IIdentity;\n name: string;\n providerType: data.TProviderType;\n baseUrl: string;\n token: string;\n };\n response: {\n connection: data.IProviderConnection;\n };\n}\n\nexport interface IReq_UpdateConnection extends plugins.typedrequestInterfaces.implementsTR<\n plugins.typedrequestInterfaces.ITypedRequest,\n IReq_UpdateConnection\n> {\n method: 'updateConnection';\n request: {\n identity: data.IIdentity;\n connectionId: string;\n name?: string;\n baseUrl?: string;\n token?: string;\n };\n response: {\n connection: data.IProviderConnection;\n };\n}\n\nexport interface IReq_TestConnection extends plugins.typedrequestInterfaces.implementsTR<\n plugins.typedrequestInterfaces.ITypedRequest,\n IReq_TestConnection\n> {\n method: 'testConnection';\n request: {\n identity: data.IIdentity;\n connectionId: string;\n };\n response: {\n ok: boolean;\n error?: string;\n };\n}\n\nexport interface IReq_DeleteConnection extends plugins.typedrequestInterfaces.implementsTR<\n plugins.typedrequestInterfaces.ITypedRequest,\n IReq_DeleteConnection\n> {\n method: 'deleteConnection';\n request: {\n identity: data.IIdentity;\n connectionId: string;\n };\n response: {\n ok: boolean;\n };\n}\n", "import * as plugins from '../plugins.ts';\nimport * as data from '../data/index.ts';\n\nexport interface IReq_GetProjects extends plugins.typedrequestInterfaces.implementsTR<\n plugins.typedrequestInterfaces.ITypedRequest,\n IReq_GetProjects\n> {\n method: 'getProjects';\n request: {\n identity: data.IIdentity;\n connectionId: string;\n search?: string;\n page?: number;\n };\n response: {\n projects: data.IProject[];\n };\n}\n", "import * as plugins from '../plugins.ts';\nimport * as data from '../data/index.ts';\n\nexport interface IReq_GetGroups extends plugins.typedrequestInterfaces.implementsTR<\n plugins.typedrequestInterfaces.ITypedRequest,\n IReq_GetGroups\n> {\n method: 'getGroups';\n request: {\n identity: data.IIdentity;\n connectionId: string;\n search?: string;\n page?: number;\n };\n response: {\n groups: data.IGroup[];\n };\n}\n", "import * as plugins from '../plugins.ts';\nimport * as data from '../data/index.ts';\n\nexport interface IReq_GetSecrets extends plugins.typedrequestInterfaces.implementsTR<\n plugins.typedrequestInterfaces.ITypedRequest,\n IReq_GetSecrets\n> {\n method: 'getSecrets';\n request: {\n identity: data.IIdentity;\n connectionId: string;\n scope: 'project' | 'group';\n scopeId: string;\n };\n response: {\n secrets: data.ISecret[];\n };\n}\n\nexport interface IReq_CreateSecret extends plugins.typedrequestInterfaces.implementsTR<\n plugins.typedrequestInterfaces.ITypedRequest,\n IReq_CreateSecret\n> {\n method: 'createSecret';\n request: {\n identity: data.IIdentity;\n connectionId: string;\n scope: 'project' | 'group';\n scopeId: string;\n key: string;\n value: string;\n protected?: boolean;\n masked?: boolean;\n environment?: string;\n };\n response: {\n secret: data.ISecret;\n };\n}\n\nexport interface IReq_UpdateSecret extends plugins.typedrequestInterfaces.implementsTR<\n plugins.typedrequestInterfaces.ITypedRequest,\n IReq_UpdateSecret\n> {\n method: 'updateSecret';\n request: {\n identity: data.IIdentity;\n connectionId: string;\n scope: 'project' | 'group';\n scopeId: string;\n key: string;\n value: string;\n protected?: boolean;\n masked?: boolean;\n environment?: string;\n };\n response: {\n secret: data.ISecret;\n };\n}\n\nexport interface IReq_DeleteSecret extends plugins.typedrequestInterfaces.implementsTR<\n plugins.typedrequestInterfaces.ITypedRequest,\n IReq_DeleteSecret\n> {\n method: 'deleteSecret';\n request: {\n identity: data.IIdentity;\n connectionId: string;\n scope: 'project' | 'group';\n scopeId: string;\n key: string;\n };\n response: {\n ok: boolean;\n };\n}\n", "import * as plugins from '../plugins.ts';\nimport * as data from '../data/index.ts';\n\nexport interface IReq_GetPipelines extends plugins.typedrequestInterfaces.implementsTR<\n plugins.typedrequestInterfaces.ITypedRequest,\n IReq_GetPipelines\n> {\n method: 'getPipelines';\n request: {\n identity: data.IIdentity;\n connectionId: string;\n projectId: string;\n page?: number;\n };\n response: {\n pipelines: data.IPipeline[];\n };\n}\n\nexport interface IReq_GetPipelineJobs extends plugins.typedrequestInterfaces.implementsTR<\n plugins.typedrequestInterfaces.ITypedRequest,\n IReq_GetPipelineJobs\n> {\n method: 'getPipelineJobs';\n request: {\n identity: data.IIdentity;\n connectionId: string;\n projectId: string;\n pipelineId: string;\n };\n response: {\n jobs: data.IPipelineJob[];\n };\n}\n\nexport interface IReq_RetryPipeline extends plugins.typedrequestInterfaces.implementsTR<\n plugins.typedrequestInterfaces.ITypedRequest,\n IReq_RetryPipeline\n> {\n method: 'retryPipeline';\n request: {\n identity: data.IIdentity;\n connectionId: string;\n projectId: string;\n pipelineId: string;\n };\n response: {\n ok: boolean;\n };\n}\n\nexport interface IReq_CancelPipeline extends plugins.typedrequestInterfaces.implementsTR<\n plugins.typedrequestInterfaces.ITypedRequest,\n IReq_CancelPipeline\n> {\n method: 'cancelPipeline';\n request: {\n identity: data.IIdentity;\n connectionId: string;\n projectId: string;\n pipelineId: string;\n };\n response: {\n ok: boolean;\n };\n}\n", "import * as plugins from '../plugins.ts';\nimport * as data from '../data/index.ts';\n\nexport interface IReq_GetJobLog extends plugins.typedrequestInterfaces.implementsTR<\n plugins.typedrequestInterfaces.ITypedRequest,\n IReq_GetJobLog\n> {\n method: 'getJobLog';\n request: {\n identity: data.IIdentity;\n connectionId: string;\n projectId: string;\n jobId: string;\n };\n response: {\n log: string;\n };\n}\n", "export * from './admin.ts';\nexport * from './connections.ts';\nexport * from './projects.ts';\nexport * from './groups.ts';\nexport * from './secrets.ts';\nexport * from './pipelines.ts';\nexport * from './logs.ts';\n", "export * from './plugins.ts';\n\n// Data types\nimport * as data from './data/index.ts';\nexport { data };\n\n// Request interfaces\nimport * as requests from './requests/index.ts';\nexport { requests };\n", "import * as plugins from './plugins.js';\nimport * as interfaces from '../ts_interfaces/index.js';\n\n// ============================================================================\n// Smartstate instance\n// ============================================================================\nexport const appState = new plugins.domtools.plugins.smartstate.Smartstate();\n\n// ============================================================================\n// State Part Interfaces\n// ============================================================================\n\nexport interface ILoginState {\n identity: interfaces.data.IIdentity | null;\n isLoggedIn: boolean;\n}\n\nexport interface IConnectionsState {\n connections: interfaces.data.IProviderConnection[];\n activeConnectionId: string | null;\n}\n\nexport interface IDataState {\n projects: interfaces.data.IProject[];\n groups: interfaces.data.IGroup[];\n secrets: interfaces.data.ISecret[];\n pipelines: interfaces.data.IPipeline[];\n pipelineJobs: interfaces.data.IPipelineJob[];\n currentJobLog: string;\n}\n\nexport interface IUiState {\n activeView: string;\n autoRefresh: boolean;\n refreshInterval: number;\n}\n\n// ============================================================================\n// State Parts\n// ============================================================================\n\nexport const loginStatePart = await appState.getStatePart(\n 'login',\n {\n identity: null,\n isLoggedIn: false,\n },\n 'persistent',\n);\n\nexport const connectionsStatePart = await appState.getStatePart(\n 'connections',\n {\n connections: [],\n activeConnectionId: null,\n },\n 'soft',\n);\n\nexport const dataStatePart = await appState.getStatePart(\n 'data',\n {\n projects: [],\n groups: [],\n secrets: [],\n pipelines: [],\n pipelineJobs: [],\n currentJobLog: '',\n },\n 'soft',\n);\n\nexport const uiStatePart = await appState.getStatePart(\n 'ui',\n {\n activeView: 'overview',\n autoRefresh: true,\n refreshInterval: 30000,\n },\n);\n\n// ============================================================================\n// Helpers\n// ============================================================================\n\ninterface IActionContext {\n identity: interfaces.data.IIdentity | null;\n}\n\nconst getActionContext = (): IActionContext => {\n return { identity: loginStatePart.getState().identity };\n};\n\n// ============================================================================\n// Login Actions\n// ============================================================================\n\nexport const loginAction = loginStatePart.createAction<{\n username: string;\n password: string;\n}>(async (statePartArg, dataArg) => {\n try {\n const typedRequest = new plugins.domtools.plugins.typedrequest.TypedRequest<\n interfaces.requests.IReq_AdminLogin\n >('/typedrequest', 'adminLogin');\n\n const response = await typedRequest.fire({\n username: dataArg.username,\n password: dataArg.password,\n });\n\n return {\n identity: response.identity || null,\n isLoggedIn: !!response.identity,\n };\n } catch (err) {\n console.error('Login failed:', err);\n return { identity: null, isLoggedIn: false };\n }\n});\n\nexport const logoutAction = loginStatePart.createAction(async (_statePartArg) => {\n const context = getActionContext();\n try {\n if (context.identity) {\n const typedRequest = new plugins.domtools.plugins.typedrequest.TypedRequest<\n interfaces.requests.IReq_AdminLogout\n >('/typedrequest', 'adminLogout');\n await typedRequest.fire({ identity: context.identity });\n }\n } catch (err) {\n console.error('Logout error:', err);\n }\n return { identity: null, isLoggedIn: false };\n});\n\n// ============================================================================\n// Connections Actions\n// ============================================================================\n\nexport const fetchConnectionsAction = connectionsStatePart.createAction(async (statePartArg) => {\n const context = getActionContext();\n try {\n const typedRequest = new plugins.domtools.plugins.typedrequest.TypedRequest<\n interfaces.requests.IReq_GetConnections\n >('/typedrequest', 'getConnections');\n const response = await typedRequest.fire({ identity: context.identity! });\n return { ...statePartArg.getState(), connections: response.connections };\n } catch (err) {\n console.error('Failed to fetch connections:', err);\n return statePartArg.getState();\n }\n});\n\nexport const createConnectionAction = connectionsStatePart.createAction<{\n name: string;\n providerType: interfaces.data.TProviderType;\n baseUrl: string;\n token: string;\n}>(async (statePartArg, dataArg) => {\n const context = getActionContext();\n try {\n const typedRequest = new plugins.domtools.plugins.typedrequest.TypedRequest<\n interfaces.requests.IReq_CreateConnection\n >('/typedrequest', 'createConnection');\n await typedRequest.fire({\n identity: context.identity!,\n ...dataArg,\n });\n // Re-fetch\n const listReq = new plugins.domtools.plugins.typedrequest.TypedRequest<\n interfaces.requests.IReq_GetConnections\n >('/typedrequest', 'getConnections');\n const listResp = await listReq.fire({ identity: context.identity! });\n return { ...statePartArg.getState(), connections: listResp.connections };\n } catch (err) {\n console.error('Failed to create connection:', err);\n return statePartArg.getState();\n }\n});\n\nexport const testConnectionAction = connectionsStatePart.createAction<{\n connectionId: string;\n}>(async (statePartArg, dataArg) => {\n const context = getActionContext();\n try {\n const typedRequest = new plugins.domtools.plugins.typedrequest.TypedRequest<\n interfaces.requests.IReq_TestConnection\n >('/typedrequest', 'testConnection');\n const result = await typedRequest.fire({\n identity: context.identity!,\n connectionId: dataArg.connectionId,\n });\n // Re-fetch to get updated status\n const listReq = new plugins.domtools.plugins.typedrequest.TypedRequest<\n interfaces.requests.IReq_GetConnections\n >('/typedrequest', 'getConnections');\n const listResp = await listReq.fire({ identity: context.identity! });\n return { ...statePartArg.getState(), connections: listResp.connections };\n } catch (err) {\n console.error('Failed to test connection:', err);\n return statePartArg.getState();\n }\n});\n\nexport const deleteConnectionAction = connectionsStatePart.createAction<{\n connectionId: string;\n}>(async (statePartArg, dataArg) => {\n const context = getActionContext();\n try {\n const typedRequest = new plugins.domtools.plugins.typedrequest.TypedRequest<\n interfaces.requests.IReq_DeleteConnection\n >('/typedrequest', 'deleteConnection');\n await typedRequest.fire({\n identity: context.identity!,\n connectionId: dataArg.connectionId,\n });\n const state = statePartArg.getState();\n return {\n ...state,\n connections: state.connections.filter((c) => c.id !== dataArg.connectionId),\n activeConnectionId: state.activeConnectionId === dataArg.connectionId ? null : state.activeConnectionId,\n };\n } catch (err) {\n console.error('Failed to delete connection:', err);\n return statePartArg.getState();\n }\n});\n\n// ============================================================================\n// Projects Actions\n// ============================================================================\n\nexport const fetchProjectsAction = dataStatePart.createAction<{\n connectionId: string;\n search?: string;\n}>(async (statePartArg, dataArg) => {\n const context = getActionContext();\n try {\n const typedRequest = new plugins.domtools.plugins.typedrequest.TypedRequest<\n interfaces.requests.IReq_GetProjects\n >('/typedrequest', 'getProjects');\n const response = await typedRequest.fire({\n identity: context.identity!,\n connectionId: dataArg.connectionId,\n search: dataArg.search,\n });\n return { ...statePartArg.getState(), projects: response.projects };\n } catch (err) {\n console.error('Failed to fetch projects:', err);\n return statePartArg.getState();\n }\n});\n\n// ============================================================================\n// Groups Actions\n// ============================================================================\n\nexport const fetchGroupsAction = dataStatePart.createAction<{\n connectionId: string;\n search?: string;\n}>(async (statePartArg, dataArg) => {\n const context = getActionContext();\n try {\n const typedRequest = new plugins.domtools.plugins.typedrequest.TypedRequest<\n interfaces.requests.IReq_GetGroups\n >('/typedrequest', 'getGroups');\n const response = await typedRequest.fire({\n identity: context.identity!,\n connectionId: dataArg.connectionId,\n search: dataArg.search,\n });\n return { ...statePartArg.getState(), groups: response.groups };\n } catch (err) {\n console.error('Failed to fetch groups:', err);\n return statePartArg.getState();\n }\n});\n\n// ============================================================================\n// Secrets Actions\n// ============================================================================\n\nexport const fetchSecretsAction = dataStatePart.createAction<{\n connectionId: string;\n scope: 'project' | 'group';\n scopeId: string;\n}>(async (statePartArg, dataArg) => {\n const context = getActionContext();\n try {\n const typedRequest = new plugins.domtools.plugins.typedrequest.TypedRequest<\n interfaces.requests.IReq_GetSecrets\n >('/typedrequest', 'getSecrets');\n const response = await typedRequest.fire({\n identity: context.identity!,\n connectionId: dataArg.connectionId,\n scope: dataArg.scope,\n scopeId: dataArg.scopeId,\n });\n return { ...statePartArg.getState(), secrets: response.secrets };\n } catch (err) {\n console.error('Failed to fetch secrets:', err);\n return statePartArg.getState();\n }\n});\n\nexport const createSecretAction = dataStatePart.createAction<{\n connectionId: string;\n scope: 'project' | 'group';\n scopeId: string;\n key: string;\n value: string;\n}>(async (statePartArg, dataArg) => {\n const context = getActionContext();\n try {\n const typedRequest = new plugins.domtools.plugins.typedrequest.TypedRequest<\n interfaces.requests.IReq_CreateSecret\n >('/typedrequest', 'createSecret');\n await typedRequest.fire({\n identity: context.identity!,\n ...dataArg,\n });\n // Re-fetch secrets\n const listReq = new plugins.domtools.plugins.typedrequest.TypedRequest<\n interfaces.requests.IReq_GetSecrets\n >('/typedrequest', 'getSecrets');\n const listResp = await listReq.fire({\n identity: context.identity!,\n connectionId: dataArg.connectionId,\n scope: dataArg.scope,\n scopeId: dataArg.scopeId,\n });\n return { ...statePartArg.getState(), secrets: listResp.secrets };\n } catch (err) {\n console.error('Failed to create secret:', err);\n return statePartArg.getState();\n }\n});\n\nexport const updateSecretAction = dataStatePart.createAction<{\n connectionId: string;\n scope: 'project' | 'group';\n scopeId: string;\n key: string;\n value: string;\n}>(async (statePartArg, dataArg) => {\n const context = getActionContext();\n try {\n const typedRequest = new plugins.domtools.plugins.typedrequest.TypedRequest<\n interfaces.requests.IReq_UpdateSecret\n >('/typedrequest', 'updateSecret');\n await typedRequest.fire({\n identity: context.identity!,\n ...dataArg,\n });\n // Re-fetch\n const listReq = new plugins.domtools.plugins.typedrequest.TypedRequest<\n interfaces.requests.IReq_GetSecrets\n >('/typedrequest', 'getSecrets');\n const listResp = await listReq.fire({\n identity: context.identity!,\n connectionId: dataArg.connectionId,\n scope: dataArg.scope,\n scopeId: dataArg.scopeId,\n });\n return { ...statePartArg.getState(), secrets: listResp.secrets };\n } catch (err) {\n console.error('Failed to update secret:', err);\n return statePartArg.getState();\n }\n});\n\nexport const deleteSecretAction = dataStatePart.createAction<{\n connectionId: string;\n scope: 'project' | 'group';\n scopeId: string;\n key: string;\n}>(async (statePartArg, dataArg) => {\n const context = getActionContext();\n try {\n const typedRequest = new plugins.domtools.plugins.typedrequest.TypedRequest<\n interfaces.requests.IReq_DeleteSecret\n >('/typedrequest', 'deleteSecret');\n await typedRequest.fire({\n identity: context.identity!,\n ...dataArg,\n });\n const state = statePartArg.getState();\n return {\n ...state,\n secrets: state.secrets.filter((s) => s.key !== dataArg.key),\n };\n } catch (err) {\n console.error('Failed to delete secret:', err);\n return statePartArg.getState();\n }\n});\n\n// ============================================================================\n// Pipelines Actions\n// ============================================================================\n\nexport const fetchPipelinesAction = dataStatePart.createAction<{\n connectionId: string;\n projectId: string;\n}>(async (statePartArg, dataArg) => {\n const context = getActionContext();\n try {\n const typedRequest = new plugins.domtools.plugins.typedrequest.TypedRequest<\n interfaces.requests.IReq_GetPipelines\n >('/typedrequest', 'getPipelines');\n const response = await typedRequest.fire({\n identity: context.identity!,\n connectionId: dataArg.connectionId,\n projectId: dataArg.projectId,\n });\n return { ...statePartArg.getState(), pipelines: response.pipelines };\n } catch (err) {\n console.error('Failed to fetch pipelines:', err);\n return statePartArg.getState();\n }\n});\n\nexport const fetchPipelineJobsAction = dataStatePart.createAction<{\n connectionId: string;\n projectId: string;\n pipelineId: string;\n}>(async (statePartArg, dataArg) => {\n const context = getActionContext();\n try {\n const typedRequest = new plugins.domtools.plugins.typedrequest.TypedRequest<\n interfaces.requests.IReq_GetPipelineJobs\n >('/typedrequest', 'getPipelineJobs');\n const response = await typedRequest.fire({\n identity: context.identity!,\n connectionId: dataArg.connectionId,\n projectId: dataArg.projectId,\n pipelineId: dataArg.pipelineId,\n });\n return { ...statePartArg.getState(), pipelineJobs: response.jobs };\n } catch (err) {\n console.error('Failed to fetch pipeline jobs:', err);\n return statePartArg.getState();\n }\n});\n\nexport const retryPipelineAction = dataStatePart.createAction<{\n connectionId: string;\n projectId: string;\n pipelineId: string;\n}>(async (statePartArg, dataArg) => {\n const context = getActionContext();\n try {\n const typedRequest = new plugins.domtools.plugins.typedrequest.TypedRequest<\n interfaces.requests.IReq_RetryPipeline\n >('/typedrequest', 'retryPipeline');\n await typedRequest.fire({\n identity: context.identity!,\n ...dataArg,\n });\n // Re-fetch pipelines\n const listReq = new plugins.domtools.plugins.typedrequest.TypedRequest<\n interfaces.requests.IReq_GetPipelines\n >('/typedrequest', 'getPipelines');\n const listResp = await listReq.fire({\n identity: context.identity!,\n connectionId: dataArg.connectionId,\n projectId: dataArg.projectId,\n });\n return { ...statePartArg.getState(), pipelines: listResp.pipelines };\n } catch (err) {\n console.error('Failed to retry pipeline:', err);\n return statePartArg.getState();\n }\n});\n\nexport const cancelPipelineAction = dataStatePart.createAction<{\n connectionId: string;\n projectId: string;\n pipelineId: string;\n}>(async (statePartArg, dataArg) => {\n const context = getActionContext();\n try {\n const typedRequest = new plugins.domtools.plugins.typedrequest.TypedRequest<\n interfaces.requests.IReq_CancelPipeline\n >('/typedrequest', 'cancelPipeline');\n await typedRequest.fire({\n identity: context.identity!,\n ...dataArg,\n });\n // Re-fetch pipelines\n const listReq = new plugins.domtools.plugins.typedrequest.TypedRequest<\n interfaces.requests.IReq_GetPipelines\n >('/typedrequest', 'getPipelines');\n const listResp = await listReq.fire({\n identity: context.identity!,\n connectionId: dataArg.connectionId,\n projectId: dataArg.projectId,\n });\n return { ...statePartArg.getState(), pipelines: listResp.pipelines };\n } catch (err) {\n console.error('Failed to cancel pipeline:', err);\n return statePartArg.getState();\n }\n});\n\n// ============================================================================\n// Logs Actions\n// ============================================================================\n\nexport const fetchJobLogAction = dataStatePart.createAction<{\n connectionId: string;\n projectId: string;\n jobId: string;\n}>(async (statePartArg, dataArg) => {\n const context = getActionContext();\n try {\n const typedRequest = new plugins.domtools.plugins.typedrequest.TypedRequest<\n interfaces.requests.IReq_GetJobLog\n >('/typedrequest', 'getJobLog');\n const response = await typedRequest.fire({\n identity: context.identity!,\n ...dataArg,\n });\n return { ...statePartArg.getState(), currentJobLog: response.log };\n } catch (err) {\n console.error('Failed to fetch job log:', err);\n return statePartArg.getState();\n }\n});\n\n// ============================================================================\n// UI Actions\n// ============================================================================\n\nexport const setActiveViewAction = uiStatePart.createAction<{ view: string }>(\n async (statePartArg, dataArg) => {\n return { ...statePartArg.getState(), activeView: dataArg.view };\n },\n);\n\nexport const toggleAutoRefreshAction = uiStatePart.createAction(async (statePartArg) => {\n const state = statePartArg.getState();\n return { ...state, autoRefresh: !state.autoRefresh };\n});\n", "import { css } from '@design.estate/dees-element';\n\nexport const viewHostCss = css`\n :host {\n display: block;\n margin: auto;\n max-width: 1280px;\n padding: 16px 16px;\n color: #fff;\n box-sizing: border-box;\n }\n .view-title {\n font-size: 24px;\n font-weight: 600;\n margin-bottom: 24px;\n }\n .view-description {\n font-size: 14px;\n color: #999;\n margin-bottom: 24px;\n }\n .toolbar {\n display: flex;\n gap: 16px;\n align-items: center;\n margin-bottom: 24px;\n flex-wrap: wrap;\n }\n`;\n", "export * from './css.js';\n", "import * as plugins from '../../../plugins.js';\nimport * as appstate from '../../../appstate.js';\nimport { viewHostCss } from '../../shared/index.js';\nimport {\n DeesElement,\n customElement,\n html,\n state,\n css,\n cssManager,\n type TemplateResult,\n} from '@design.estate/dees-element';\nimport { type IStatsTile } from '@design.estate/dees-catalog';\n\n@customElement('gitops-view-overview')\nexport class GitopsViewOverview extends DeesElement {\n @state()\n accessor connectionsState: appstate.IConnectionsState = {\n connections: [],\n activeConnectionId: null,\n };\n\n @state()\n accessor dataState: appstate.IDataState = {\n projects: [],\n groups: [],\n secrets: [],\n pipelines: [],\n pipelineJobs: [],\n currentJobLog: '',\n };\n\n constructor() {\n super();\n const connSub = appstate.connectionsStatePart\n .select((s) => s)\n .subscribe((s) => { this.connectionsState = s; });\n this.rxSubscriptions.push(connSub);\n\n const dataSub = appstate.dataStatePart\n .select((s) => s)\n .subscribe((s) => { this.dataState = s; });\n this.rxSubscriptions.push(dataSub);\n }\n\n public static styles = [\n cssManager.defaultStyles,\n viewHostCss,\n ];\n\n public render(): TemplateResult {\n const connCount = this.connectionsState.connections.length;\n const projCount = this.dataState.projects.length;\n const groupCount = this.dataState.groups.length;\n const pipelineCount = this.dataState.pipelines.length;\n const failedPipelines = this.dataState.pipelines.filter((p) => p.status === 'failed').length;\n\n const tiles: IStatsTile[] = [\n { id: 'connections', title: 'Connections', value: connCount, type: 'number', icon: 'lucide:plug', color: '#00acff' },\n { id: 'projects', title: 'Projects', value: projCount, type: 'number', icon: 'lucide:folderGit2', color: '#00acff' },\n { id: 'groups', title: 'Groups', value: groupCount, type: 'number', icon: 'lucide:users', color: '#00acff' },\n { id: 'pipelines', title: 'Pipelines', value: pipelineCount, type: 'number', icon: 'lucide:play', color: '#00acff' },\n { id: 'failed', title: 'Failed Pipelines', value: failedPipelines, type: 'number', icon: 'lucide:triangleAlert', color: failedPipelines > 0 ? '#ff4444' : '#00ff88' },\n ];\n\n return html`\n
    Overview
    \n
    GitOps dashboard - manage your Gitea and GitLab instances
    \n \n `;\n }\n}\n", "import * as plugins from '../../../plugins.js';\nimport * as appstate from '../../../appstate.js';\nimport { viewHostCss } from '../../shared/index.js';\nimport {\n DeesElement,\n customElement,\n html,\n state,\n css,\n cssManager,\n type TemplateResult,\n} from '@design.estate/dees-element';\n\n@customElement('gitops-view-connections')\nexport class GitopsViewConnections extends DeesElement {\n @state()\n accessor connectionsState: appstate.IConnectionsState = {\n connections: [],\n activeConnectionId: null,\n };\n\n constructor() {\n super();\n const sub = appstate.connectionsStatePart\n .select((s) => s)\n .subscribe((s) => { this.connectionsState = s; });\n this.rxSubscriptions.push(sub);\n }\n\n public static styles = [\n cssManager.defaultStyles,\n viewHostCss,\n ];\n\n public render(): TemplateResult {\n return html`\n
    Connections
    \n
    Manage your Gitea and GitLab provider connections
    \n
    \n this.addConnection()}>Add Connection\n this.refresh()}>Refresh\n
    \n ({\n Name: item.name,\n Type: item.providerType,\n URL: item.baseUrl,\n Status: item.status,\n Created: new Date(item.createdAt).toLocaleDateString(),\n })}\n .dataActions=${[\n {\n name: 'Test',\n iconName: 'lucide:plug',\n action: async (item: any) => {\n await appstate.connectionsStatePart.dispatchAction(\n appstate.testConnectionAction,\n { connectionId: item.id },\n );\n },\n },\n {\n name: 'Delete',\n iconName: 'lucide:trash2',\n action: async (item: any) => {\n const confirmed = await plugins.deesCatalog.DeesModal.createAndShow({\n heading: 'Delete Connection',\n content: html`

    Are you sure you want to delete connection \"${item.name}\"?

    `,\n menuOptions: [\n { name: 'Cancel', action: async (modal: any) => { modal.destroy(); } },\n {\n name: 'Delete',\n action: async (modal: any) => {\n await appstate.connectionsStatePart.dispatchAction(\n appstate.deleteConnectionAction,\n { connectionId: item.id },\n );\n modal.destroy();\n },\n },\n ],\n });\n },\n },\n ]}\n >\n `;\n }\n\n async firstUpdated() {\n await this.refresh();\n }\n\n private async refresh() {\n await appstate.connectionsStatePart.dispatchAction(appstate.fetchConnectionsAction, null);\n }\n\n private async addConnection() {\n await plugins.deesCatalog.DeesModal.createAndShow({\n heading: 'Add Connection',\n content: html`\n \n
    \n \n
    \n
    \n \n
    \n
    \n \n
    \n
    \n \n
    \n `,\n menuOptions: [\n { name: 'Cancel', action: async (modal: any) => { modal.destroy(); } },\n {\n name: 'Add',\n action: async (modal: any) => {\n const inputs = modal.shadowRoot.querySelectorAll('dees-input-text, dees-input-dropdown');\n const data: any = {};\n for (const input of inputs) {\n if (input.key === 'providerType') {\n data[input.key] = input.selectedOption?.key || 'gitea';\n } else {\n data[input.key] = input.value || '';\n }\n }\n await appstate.connectionsStatePart.dispatchAction(\n appstate.createConnectionAction,\n {\n name: data.name,\n providerType: data.providerType,\n baseUrl: data.baseUrl,\n token: data.token,\n },\n );\n modal.destroy();\n },\n },\n ],\n });\n }\n}\n", "import * as plugins from '../../../plugins.js';\nimport * as appstate from '../../../appstate.js';\nimport { viewHostCss } from '../../shared/index.js';\nimport {\n DeesElement,\n customElement,\n html,\n state,\n css,\n cssManager,\n type TemplateResult,\n} from '@design.estate/dees-element';\n\n@customElement('gitops-view-projects')\nexport class GitopsViewProjects extends DeesElement {\n @state()\n accessor connectionsState: appstate.IConnectionsState = {\n connections: [],\n activeConnectionId: null,\n };\n\n @state()\n accessor dataState: appstate.IDataState = {\n projects: [],\n groups: [],\n secrets: [],\n pipelines: [],\n pipelineJobs: [],\n currentJobLog: '',\n };\n\n @state()\n accessor selectedConnectionId: string = '';\n\n constructor() {\n super();\n const connSub = appstate.connectionsStatePart\n .select((s) => s)\n .subscribe((s) => { this.connectionsState = s; });\n this.rxSubscriptions.push(connSub);\n\n const dataSub = appstate.dataStatePart\n .select((s) => s)\n .subscribe((s) => { this.dataState = s; });\n this.rxSubscriptions.push(dataSub);\n }\n\n public static styles = [\n cssManager.defaultStyles,\n viewHostCss,\n ];\n\n public render(): TemplateResult {\n const connectionOptions = this.connectionsState.connections.map((c) => ({\n option: `${c.name} (${c.providerType})`,\n key: c.id,\n }));\n\n return html`\n
    Projects
    \n
    Browse projects from your connected providers
    \n
    \n o.key === this.selectedConnectionId) || connectionOptions[0]}\n @selectedOption=${(e: CustomEvent) => {\n this.selectedConnectionId = e.detail.key;\n this.loadProjects();\n }}\n >\n this.loadProjects()}>Refresh\n
    \n ({\n Name: item.name,\n Path: item.fullPath,\n Visibility: item.visibility,\n Branch: item.defaultBranch,\n 'Last Activity': item.lastActivity ? new Date(item.lastActivity).toLocaleDateString() : '-',\n })}\n .dataActions=${[\n {\n name: 'View Secrets',\n iconName: 'lucide:key',\n action: async (item: any) => {\n appstate.uiStatePart.dispatchAction(appstate.setActiveViewAction, { view: 'secrets' });\n },\n },\n {\n name: 'View Pipelines',\n iconName: 'lucide:play',\n action: async (item: any) => {\n appstate.uiStatePart.dispatchAction(appstate.setActiveViewAction, { view: 'pipelines' });\n },\n },\n ]}\n >\n `;\n }\n\n async firstUpdated() {\n await appstate.connectionsStatePart.dispatchAction(appstate.fetchConnectionsAction, null);\n const conns = appstate.connectionsStatePart.getState().connections;\n if (conns.length > 0 && !this.selectedConnectionId) {\n this.selectedConnectionId = conns[0].id;\n await this.loadProjects();\n }\n }\n\n private async loadProjects() {\n if (!this.selectedConnectionId) return;\n await appstate.dataStatePart.dispatchAction(appstate.fetchProjectsAction, {\n connectionId: this.selectedConnectionId,\n });\n }\n}\n", "import * as plugins from '../../../plugins.js';\nimport * as appstate from '../../../appstate.js';\nimport { viewHostCss } from '../../shared/index.js';\nimport {\n DeesElement,\n customElement,\n html,\n state,\n css,\n cssManager,\n type TemplateResult,\n} from '@design.estate/dees-element';\n\n@customElement('gitops-view-groups')\nexport class GitopsViewGroups extends DeesElement {\n @state()\n accessor connectionsState: appstate.IConnectionsState = {\n connections: [],\n activeConnectionId: null,\n };\n\n @state()\n accessor dataState: appstate.IDataState = {\n projects: [],\n groups: [],\n secrets: [],\n pipelines: [],\n pipelineJobs: [],\n currentJobLog: '',\n };\n\n @state()\n accessor selectedConnectionId: string = '';\n\n constructor() {\n super();\n const connSub = appstate.connectionsStatePart\n .select((s) => s)\n .subscribe((s) => { this.connectionsState = s; });\n this.rxSubscriptions.push(connSub);\n\n const dataSub = appstate.dataStatePart\n .select((s) => s)\n .subscribe((s) => { this.dataState = s; });\n this.rxSubscriptions.push(dataSub);\n }\n\n public static styles = [\n cssManager.defaultStyles,\n viewHostCss,\n ];\n\n public render(): TemplateResult {\n const connectionOptions = this.connectionsState.connections.map((c) => ({\n option: `${c.name} (${c.providerType})`,\n key: c.id,\n }));\n\n return html`\n
    Groups
    \n
    Browse organizations and groups from your connected providers
    \n
    \n o.key === this.selectedConnectionId) || connectionOptions[0]}\n @selectedOption=${(e: CustomEvent) => {\n this.selectedConnectionId = e.detail.key;\n this.loadGroups();\n }}\n >\n this.loadGroups()}>Refresh\n
    \n ({\n Name: item.name,\n Path: item.fullPath,\n Visibility: item.visibility,\n Projects: String(item.projectCount),\n })}\n .dataActions=${[\n {\n name: 'View Secrets',\n iconName: 'lucide:key',\n action: async (item: any) => {\n appstate.uiStatePart.dispatchAction(appstate.setActiveViewAction, { view: 'secrets' });\n },\n },\n ]}\n >\n `;\n }\n\n async firstUpdated() {\n await appstate.connectionsStatePart.dispatchAction(appstate.fetchConnectionsAction, null);\n const conns = appstate.connectionsStatePart.getState().connections;\n if (conns.length > 0 && !this.selectedConnectionId) {\n this.selectedConnectionId = conns[0].id;\n await this.loadGroups();\n }\n }\n\n private async loadGroups() {\n if (!this.selectedConnectionId) return;\n await appstate.dataStatePart.dispatchAction(appstate.fetchGroupsAction, {\n connectionId: this.selectedConnectionId,\n });\n }\n}\n", "import * as plugins from '../../../plugins.js';\nimport * as appstate from '../../../appstate.js';\nimport { viewHostCss } from '../../shared/index.js';\nimport {\n DeesElement,\n customElement,\n html,\n state,\n css,\n cssManager,\n type TemplateResult,\n} from '@design.estate/dees-element';\n\n@customElement('gitops-view-secrets')\nexport class GitopsViewSecrets extends DeesElement {\n @state()\n accessor connectionsState: appstate.IConnectionsState = {\n connections: [],\n activeConnectionId: null,\n };\n\n @state()\n accessor dataState: appstate.IDataState = {\n projects: [],\n groups: [],\n secrets: [],\n pipelines: [],\n pipelineJobs: [],\n currentJobLog: '',\n };\n\n @state()\n accessor selectedConnectionId: string = '';\n\n @state()\n accessor selectedScope: 'project' | 'group' = 'project';\n\n @state()\n accessor selectedScopeId: string = '';\n\n constructor() {\n super();\n const connSub = appstate.connectionsStatePart\n .select((s) => s)\n .subscribe((s) => { this.connectionsState = s; });\n this.rxSubscriptions.push(connSub);\n\n const dataSub = appstate.dataStatePart\n .select((s) => s)\n .subscribe((s) => { this.dataState = s; });\n this.rxSubscriptions.push(dataSub);\n }\n\n public static styles = [\n cssManager.defaultStyles,\n viewHostCss,\n ];\n\n public render(): TemplateResult {\n const connectionOptions = this.connectionsState.connections.map((c) => ({\n option: `${c.name} (${c.providerType})`,\n key: c.id,\n }));\n\n const scopeOptions = [\n { option: 'Project', key: 'project' },\n { option: 'Group', key: 'group' },\n ];\n\n const entityOptions = this.selectedScope === 'project'\n ? this.dataState.projects.map((p) => ({ option: p.fullPath || p.name, key: p.id }))\n : this.dataState.groups.map((g) => ({ option: g.fullPath || g.name, key: g.id }));\n\n return html`\n
    Secrets
    \n
    Manage CI/CD secrets and variables
    \n
    \n o.key === this.selectedConnectionId) || connectionOptions[0]}\n @selectedOption=${(e: CustomEvent) => {\n this.selectedConnectionId = e.detail.key;\n this.loadEntities();\n }}\n >\n o.key === this.selectedScope)}\n @selectedOption=${(e: CustomEvent) => {\n this.selectedScope = e.detail.key as 'project' | 'group';\n this.loadEntities();\n }}\n >\n o.key === this.selectedScopeId) || entityOptions[0]}\n @selectedOption=${(e: CustomEvent) => {\n this.selectedScopeId = e.detail.key;\n this.loadSecrets();\n }}\n >\n this.addSecret()}>Add Secret\n this.loadSecrets()}>Refresh\n
    \n ({\n Key: item.key,\n Value: item.masked ? '******' : item.value,\n Protected: item.protected ? 'Yes' : 'No',\n Environment: item.environment || '*',\n })}\n .dataActions=${[\n {\n name: 'Edit',\n iconName: 'lucide:edit',\n action: async (item: any) => { await this.editSecret(item); },\n },\n {\n name: 'Delete',\n iconName: 'lucide:trash2',\n action: async (item: any) => {\n await appstate.dataStatePart.dispatchAction(appstate.deleteSecretAction, {\n connectionId: this.selectedConnectionId,\n scope: this.selectedScope,\n scopeId: this.selectedScopeId,\n key: item.key,\n });\n },\n },\n ]}\n >\n `;\n }\n\n async firstUpdated() {\n await appstate.connectionsStatePart.dispatchAction(appstate.fetchConnectionsAction, null);\n const conns = appstate.connectionsStatePart.getState().connections;\n if (conns.length > 0 && !this.selectedConnectionId) {\n this.selectedConnectionId = conns[0].id;\n await this.loadEntities();\n }\n }\n\n private async loadEntities() {\n if (!this.selectedConnectionId) return;\n if (this.selectedScope === 'project') {\n await appstate.dataStatePart.dispatchAction(appstate.fetchProjectsAction, {\n connectionId: this.selectedConnectionId,\n });\n } else {\n await appstate.dataStatePart.dispatchAction(appstate.fetchGroupsAction, {\n connectionId: this.selectedConnectionId,\n });\n }\n }\n\n private async loadSecrets() {\n if (!this.selectedConnectionId || !this.selectedScopeId) return;\n await appstate.dataStatePart.dispatchAction(appstate.fetchSecretsAction, {\n connectionId: this.selectedConnectionId,\n scope: this.selectedScope,\n scopeId: this.selectedScopeId,\n });\n }\n\n private async addSecret() {\n await plugins.deesCatalog.DeesModal.createAndShow({\n heading: 'Add Secret',\n content: html`\n \n
    \n \n
    \n
    \n \n
    \n `,\n menuOptions: [\n { name: 'Cancel', action: async (modal: any) => { modal.destroy(); } },\n {\n name: 'Create',\n action: async (modal: any) => {\n const inputs = modal.shadowRoot.querySelectorAll('dees-input-text');\n const data: any = {};\n for (const input of inputs) { data[input.key] = input.value || ''; }\n await appstate.dataStatePart.dispatchAction(appstate.createSecretAction, {\n connectionId: this.selectedConnectionId,\n scope: this.selectedScope,\n scopeId: this.selectedScopeId,\n key: data.key,\n value: data.value,\n });\n modal.destroy();\n },\n },\n ],\n });\n }\n\n private async editSecret(item: any) {\n await plugins.deesCatalog.DeesModal.createAndShow({\n heading: `Edit Secret: ${item.key}`,\n content: html`\n \n
    \n \n
    \n `,\n menuOptions: [\n { name: 'Cancel', action: async (modal: any) => { modal.destroy(); } },\n {\n name: 'Update',\n action: async (modal: any) => {\n const input = modal.shadowRoot.querySelector('dees-input-text');\n await appstate.dataStatePart.dispatchAction(appstate.updateSecretAction, {\n connectionId: this.selectedConnectionId,\n scope: this.selectedScope,\n scopeId: this.selectedScopeId,\n key: item.key,\n value: input?.value || '',\n });\n modal.destroy();\n },\n },\n ],\n });\n }\n}\n", "import * as plugins from '../../../plugins.js';\nimport * as appstate from '../../../appstate.js';\nimport { viewHostCss } from '../../shared/index.js';\nimport {\n DeesElement,\n customElement,\n html,\n state,\n css,\n cssManager,\n type TemplateResult,\n} from '@design.estate/dees-element';\n\n@customElement('gitops-view-pipelines')\nexport class GitopsViewPipelines extends DeesElement {\n @state()\n accessor connectionsState: appstate.IConnectionsState = {\n connections: [],\n activeConnectionId: null,\n };\n\n @state()\n accessor dataState: appstate.IDataState = {\n projects: [],\n groups: [],\n secrets: [],\n pipelines: [],\n pipelineJobs: [],\n currentJobLog: '',\n };\n\n @state()\n accessor selectedConnectionId: string = '';\n\n @state()\n accessor selectedProjectId: string = '';\n\n constructor() {\n super();\n const connSub = appstate.connectionsStatePart\n .select((s) => s)\n .subscribe((s) => { this.connectionsState = s; });\n this.rxSubscriptions.push(connSub);\n\n const dataSub = appstate.dataStatePart\n .select((s) => s)\n .subscribe((s) => { this.dataState = s; });\n this.rxSubscriptions.push(dataSub);\n }\n\n public static styles = [\n cssManager.defaultStyles,\n viewHostCss,\n css`\n .status-badge {\n display: inline-block;\n padding: 2px 8px;\n border-radius: 4px;\n font-size: 12px;\n font-weight: 600;\n text-transform: uppercase;\n }\n .status-success { background: #1a3a1a; color: #00ff88; }\n .status-failed { background: #3a1a1a; color: #ff4444; }\n .status-running { background: #1a2a3a; color: #00acff; }\n .status-pending { background: #3a3a1a; color: #ffaa00; }\n .status-canceled { background: #2a2a2a; color: #999; }\n `,\n ];\n\n public render(): TemplateResult {\n const connectionOptions = this.connectionsState.connections.map((c) => ({\n option: `${c.name} (${c.providerType})`,\n key: c.id,\n }));\n\n const projectOptions = this.dataState.projects.map((p) => ({\n option: p.fullPath || p.name,\n key: p.id,\n }));\n\n return html`\n
    Pipelines
    \n
    View and manage CI/CD pipelines
    \n
    \n o.key === this.selectedConnectionId) || connectionOptions[0]}\n @selectedOption=${(e: CustomEvent) => {\n this.selectedConnectionId = e.detail.key;\n this.loadProjects();\n }}\n >\n o.key === this.selectedProjectId) || projectOptions[0]}\n @selectedOption=${(e: CustomEvent) => {\n this.selectedProjectId = e.detail.key;\n this.loadPipelines();\n }}\n >\n this.loadPipelines()}>Refresh\n
    \n ({\n ID: item.id,\n Status: item.status,\n Ref: item.ref,\n Duration: item.duration ? `${Math.round(item.duration)}s` : '-',\n Source: item.source,\n Created: item.createdAt ? new Date(item.createdAt).toLocaleString() : '-',\n })}\n .dataActions=${[\n {\n name: 'View Jobs',\n iconName: 'lucide:list',\n action: async (item: any) => { await this.viewJobs(item); },\n },\n {\n name: 'Retry',\n iconName: 'lucide:refresh-cw',\n action: async (item: any) => {\n await appstate.dataStatePart.dispatchAction(appstate.retryPipelineAction, {\n connectionId: this.selectedConnectionId,\n projectId: this.selectedProjectId,\n pipelineId: item.id,\n });\n },\n },\n {\n name: 'Cancel',\n iconName: 'lucide:x-circle',\n action: async (item: any) => {\n await appstate.dataStatePart.dispatchAction(appstate.cancelPipelineAction, {\n connectionId: this.selectedConnectionId,\n projectId: this.selectedProjectId,\n pipelineId: item.id,\n });\n },\n },\n ]}\n >\n `;\n }\n\n async firstUpdated() {\n await appstate.connectionsStatePart.dispatchAction(appstate.fetchConnectionsAction, null);\n const conns = appstate.connectionsStatePart.getState().connections;\n if (conns.length > 0 && !this.selectedConnectionId) {\n this.selectedConnectionId = conns[0].id;\n await this.loadProjects();\n }\n }\n\n private async loadProjects() {\n if (!this.selectedConnectionId) return;\n await appstate.dataStatePart.dispatchAction(appstate.fetchProjectsAction, {\n connectionId: this.selectedConnectionId,\n });\n }\n\n private async loadPipelines() {\n if (!this.selectedConnectionId || !this.selectedProjectId) return;\n await appstate.dataStatePart.dispatchAction(appstate.fetchPipelinesAction, {\n connectionId: this.selectedConnectionId,\n projectId: this.selectedProjectId,\n });\n }\n\n private async viewJobs(pipeline: any) {\n await appstate.dataStatePart.dispatchAction(appstate.fetchPipelineJobsAction, {\n connectionId: this.selectedConnectionId,\n projectId: this.selectedProjectId,\n pipelineId: pipeline.id,\n });\n\n const jobs = appstate.dataStatePart.getState().pipelineJobs;\n await plugins.deesCatalog.DeesModal.createAndShow({\n heading: `Pipeline #${pipeline.id} - Jobs`,\n content: html`\n \n
    \n ${jobs.map((job: any) => html`\n
    \n ${job.name} (${job.stage})\n ${job.status} - ${job.duration ? `${Math.round(job.duration)}s` : '-'}\n
    \n `)}\n ${jobs.length === 0 ? html`

    No jobs found.

    ` : ''}\n
    \n `,\n menuOptions: [\n { name: 'Close', action: async (modal: any) => { modal.destroy(); } },\n ],\n });\n }\n}\n", "import * as plugins from '../../../plugins.js';\nimport * as appstate from '../../../appstate.js';\nimport { viewHostCss } from '../../shared/index.js';\nimport {\n DeesElement,\n customElement,\n html,\n state,\n css,\n cssManager,\n type TemplateResult,\n} from '@design.estate/dees-element';\n\n@customElement('gitops-view-buildlog')\nexport class GitopsViewBuildlog extends DeesElement {\n @state()\n accessor connectionsState: appstate.IConnectionsState = {\n connections: [],\n activeConnectionId: null,\n };\n\n @state()\n accessor dataState: appstate.IDataState = {\n projects: [],\n groups: [],\n secrets: [],\n pipelines: [],\n pipelineJobs: [],\n currentJobLog: '',\n };\n\n @state()\n accessor selectedConnectionId: string = '';\n\n @state()\n accessor selectedProjectId: string = '';\n\n @state()\n accessor selectedJobId: string = '';\n\n constructor() {\n super();\n const connSub = appstate.connectionsStatePart\n .select((s) => s)\n .subscribe((s) => { this.connectionsState = s; });\n this.rxSubscriptions.push(connSub);\n\n const dataSub = appstate.dataStatePart\n .select((s) => s)\n .subscribe((s) => { this.dataState = s; });\n this.rxSubscriptions.push(dataSub);\n }\n\n public static styles = [\n cssManager.defaultStyles,\n viewHostCss,\n css`\n .log-container {\n background: #0d0d0d;\n border: 1px solid #333;\n border-radius: 8px;\n padding: 16px;\n font-family: 'Fira Code', 'Courier New', monospace;\n font-size: 13px;\n line-height: 1.6;\n color: #ccc;\n max-height: 600px;\n overflow-y: auto;\n white-space: pre-wrap;\n word-break: break-all;\n }\n .log-empty {\n color: #666;\n text-align: center;\n padding: 40px;\n }\n .job-meta {\n display: flex;\n gap: 16px;\n margin-bottom: 16px;\n padding: 12px;\n background: #1a1a2e;\n border-radius: 8px;\n font-size: 14px;\n }\n .job-meta-item {\n color: #999;\n }\n .job-meta-item strong {\n color: #fff;\n }\n `,\n ];\n\n public render(): TemplateResult {\n const connectionOptions = this.connectionsState.connections.map((c) => ({\n option: `${c.name} (${c.providerType})`,\n key: c.id,\n }));\n\n const projectOptions = this.dataState.projects.map((p) => ({\n option: p.fullPath || p.name,\n key: p.id,\n }));\n\n const jobOptions = this.dataState.pipelineJobs.map((j) => ({\n option: `${j.name} (${j.status})`,\n key: j.id,\n }));\n\n return html`\n
    Build Log
    \n
    View raw build logs for CI/CD jobs
    \n
    \n o.key === this.selectedConnectionId) || connectionOptions[0]}\n @selectedOption=${(e: CustomEvent) => {\n this.selectedConnectionId = e.detail.key;\n this.loadProjects();\n }}\n >\n o.key === this.selectedProjectId) || projectOptions[0]}\n @selectedOption=${(e: CustomEvent) => {\n this.selectedProjectId = e.detail.key;\n }}\n >\n o.key === this.selectedJobId) || jobOptions[0]}\n @selectedOption=${(e: CustomEvent) => {\n this.selectedJobId = e.detail.key;\n }}\n >\n this.fetchLog()}>Fetch Log\n this.fetchLog()}>Refresh\n
    \n ${this.selectedJobId ? html`\n
    \n Job: ${this.selectedJobId}\n Project: ${this.selectedProjectId}\n
    \n ` : ''}\n
    \n ${this.dataState.currentJobLog\n ? this.dataState.currentJobLog\n : html`
    Select a connection, project, and job, then click \"Fetch Log\" to view build output.
    `\n }\n
    \n `;\n }\n\n async firstUpdated() {\n await appstate.connectionsStatePart.dispatchAction(appstate.fetchConnectionsAction, null);\n const conns = appstate.connectionsStatePart.getState().connections;\n if (conns.length > 0 && !this.selectedConnectionId) {\n this.selectedConnectionId = conns[0].id;\n await this.loadProjects();\n }\n }\n\n private async loadProjects() {\n if (!this.selectedConnectionId) return;\n await appstate.dataStatePart.dispatchAction(appstate.fetchProjectsAction, {\n connectionId: this.selectedConnectionId,\n });\n }\n\n private async fetchLog() {\n if (!this.selectedConnectionId || !this.selectedProjectId || !this.selectedJobId) return;\n await appstate.dataStatePart.dispatchAction(appstate.fetchJobLogAction, {\n connectionId: this.selectedConnectionId,\n projectId: this.selectedProjectId,\n jobId: this.selectedJobId,\n });\n }\n}\n", "import * as plugins from '../plugins.js';\nimport * as appstate from '../appstate.js';\nimport * as interfaces from '../../ts_interfaces/index.js';\nimport {\n DeesElement,\n customElement,\n html,\n state,\n css,\n cssManager,\n type TemplateResult,\n} from '@design.estate/dees-element';\n\nimport type { GitopsViewOverview } from './views/overview/index.js';\nimport type { GitopsViewConnections } from './views/connections/index.js';\nimport type { GitopsViewProjects } from './views/projects/index.js';\nimport type { GitopsViewGroups } from './views/groups/index.js';\nimport type { GitopsViewSecrets } from './views/secrets/index.js';\nimport type { GitopsViewPipelines } from './views/pipelines/index.js';\nimport type { GitopsViewBuildlog } from './views/buildlog/index.js';\n\n@customElement('gitops-dashboard')\nexport class GitopsDashboard extends DeesElement {\n @state()\n accessor loginState: appstate.ILoginState = { identity: null, isLoggedIn: false };\n\n @state()\n accessor uiState: appstate.IUiState = {\n activeView: 'overview',\n autoRefresh: true,\n refreshInterval: 30000,\n };\n\n private viewTabs = [\n { name: 'Overview', iconName: 'lucide:layoutDashboard', element: (async () => (await import('./views/overview/index.js')).GitopsViewOverview)() },\n { name: 'Connections', iconName: 'lucide:plug', element: (async () => (await import('./views/connections/index.js')).GitopsViewConnections)() },\n { name: 'Projects', iconName: 'lucide:folderGit2', element: (async () => (await import('./views/projects/index.js')).GitopsViewProjects)() },\n { name: 'Groups', iconName: 'lucide:users', element: (async () => (await import('./views/groups/index.js')).GitopsViewGroups)() },\n { name: 'Secrets', iconName: 'lucide:key', element: (async () => (await import('./views/secrets/index.js')).GitopsViewSecrets)() },\n { name: 'Pipelines', iconName: 'lucide:play', element: (async () => (await import('./views/pipelines/index.js')).GitopsViewPipelines)() },\n { name: 'Build Log', iconName: 'lucide:scrollText', element: (async () => (await import('./views/buildlog/index.js')).GitopsViewBuildlog)() },\n ];\n\n private resolvedViewTabs: Array<{ name: string; iconName: string; element: any }> = [];\n\n constructor() {\n super();\n document.title = 'GitOps';\n\n const loginSubscription = appstate.loginStatePart\n .select((stateArg) => stateArg)\n .subscribe((loginState) => {\n this.loginState = loginState;\n if (loginState.isLoggedIn) {\n appstate.connectionsStatePart.dispatchAction(appstate.fetchConnectionsAction, null);\n }\n });\n this.rxSubscriptions.push(loginSubscription);\n\n const uiSubscription = appstate.uiStatePart\n .select((stateArg) => stateArg)\n .subscribe((uiState) => {\n this.uiState = uiState;\n this.syncAppdashView(uiState.activeView);\n });\n this.rxSubscriptions.push(uiSubscription);\n }\n\n public static styles = [\n cssManager.defaultStyles,\n css`\n :host {\n display: block;\n width: 100%;\n height: 100%;\n }\n .maincontainer {\n width: 100%;\n height: 100vh;\n }\n `,\n ];\n\n public render(): TemplateResult {\n return html`\n
    \n \n \n \n \n
    \n `;\n }\n\n public async firstUpdated() {\n // Resolve async view tab imports\n this.resolvedViewTabs = await Promise.all(\n this.viewTabs.map(async (tab) => ({\n name: tab.name,\n iconName: tab.iconName,\n element: await tab.element,\n })),\n );\n this.requestUpdate();\n await this.updateComplete;\n\n const simpleLogin = this.shadowRoot!.querySelector('dees-simple-login') as any;\n if (simpleLogin) {\n simpleLogin.addEventListener('login', (e: CustomEvent) => {\n this.login(e.detail.data.username, e.detail.data.password);\n });\n }\n\n const appDash = this.shadowRoot!.querySelector('dees-simple-appdash') as any;\n if (appDash) {\n appDash.addEventListener('view-select', (e: CustomEvent) => {\n const viewName = e.detail.view.name.toLowerCase();\n appstate.uiStatePart.dispatchAction(appstate.setActiveViewAction, { view: viewName });\n });\n appDash.addEventListener('logout', async () => {\n await appstate.loginStatePart.dispatchAction(appstate.logoutAction, null);\n });\n }\n\n // Load initial view on appdash\n if (appDash && this.resolvedViewTabs.length > 0) {\n const initialView = this.resolvedViewTabs.find(\n (t) => t.name.toLowerCase() === this.uiState.activeView,\n ) || this.resolvedViewTabs[0];\n await appDash.loadView(initialView);\n }\n\n // Check for stored session (persistent login state)\n const loginState = appstate.loginStatePart.getState();\n if (loginState.identity?.jwt) {\n if (loginState.identity.expiresAt > Date.now()) {\n try {\n const typedRequest = new plugins.domtools.plugins.typedrequest.TypedRequest<\n interfaces.requests.IReq_VerifyIdentity\n >('/typedrequest', 'verifyIdentity');\n const response = await typedRequest.fire({ identity: loginState.identity });\n if (response.valid) {\n this.loginState = loginState;\n if (simpleLogin) {\n await simpleLogin.switchToSlottedContent();\n }\n } else {\n await appstate.loginStatePart.dispatchAction(appstate.logoutAction, null);\n }\n } catch (err) {\n console.warn('Stored session invalid, returning to login:', err);\n await appstate.loginStatePart.dispatchAction(appstate.logoutAction, null);\n }\n } else {\n await appstate.loginStatePart.dispatchAction(appstate.logoutAction, null);\n }\n }\n }\n\n private async login(username: string, password: string) {\n const domtools = await this.domtoolsPromise;\n const simpleLogin = this.shadowRoot!.querySelector('dees-simple-login') as any;\n const form = simpleLogin?.shadowRoot?.querySelector('dees-form') as any;\n\n if (form) {\n form.setStatus('pending', 'Logging in...');\n }\n\n const newState = await appstate.loginStatePart.dispatchAction(appstate.loginAction, {\n username,\n password,\n });\n\n if (newState.identity) {\n if (form) {\n form.setStatus('success', 'Logged in!');\n }\n if (simpleLogin) {\n await simpleLogin.switchToSlottedContent();\n }\n } else {\n if (form) {\n form.setStatus('error', 'Login failed!');\n await domtools.convenience.smartdelay.delayFor(2000);\n form.reset();\n }\n }\n }\n\n private syncAppdashView(viewName: string): void {\n const appDash = this.shadowRoot?.querySelector('dees-simple-appdash') as any;\n if (!appDash || this.resolvedViewTabs.length === 0) return;\n const targetTab = this.resolvedViewTabs.find((t) => t.name.toLowerCase() === viewName);\n if (!targetTab) return;\n appDash.loadView(targetTab);\n }\n}\n", "import './gitops-dashboard.js';\nimport './views/overview/index.js';\nimport './views/connections/index.js';\nimport './views/projects/index.js';\nimport './views/groups/index.js';\nimport './views/secrets/index.js';\nimport './views/pipelines/index.js';\nimport './views/buildlog/index.js';\n", "import * as plugins from './plugins.js';\nimport { html } from '@design.estate/dees-element';\nimport './elements/index.js';\n\nplugins.deesElement.render(html`\n \n`, document.body);\n"], - "mappings": "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hI;AAEF,QAAM,OAAO,WAAA;AACX,UAAI,UAAU;AAIZ,mBAAW;AACX,YAAMA,SAAQ;AACd,oBAAY;AAEZ,mBAAW,KAAKA,MAAK;AACrB,SAAC,cAAc,cAAcA,MAAK;;IAEtC;AAEA,WAAO,UACL,yBACE,YAMA,SAACA,QAAK;AACJ,iBAAW;AACX,kBAAYA;AACZ,QAAE,aAAa,CAAC,UAAU,YAAY,UAAU,KAAI,IAAK,cAAcA,MAAK;IAC9E,GACA,WAAA;AACE,mBAAa;AACb,QAAE,YAAY,YAAY,aAAa,CAAC,UAAU,WAAW,WAAW,SAAQ;IAClF,CAAC,CACF;EAEL,CAAC;AACH;AA3IA;;;AACA;AACA;;;;;ACiDM,SAAU,aACd,UACA,WACAC,SAAuB;AADvB,MAAA,cAAA,QAAA;AAAA,gBAAA;EAAyC;AAGzC,MAAM,YAAY,MAAM,UAAU,SAAS;AAC3C,SAAO,SAAS,WAAA;AAAM,WAAA;EAAA,GAAWA,OAAM;AACzC;AA7DA;;;AACA;AAEA;;;;;ACHA;;;;;;ACAA;;;;;;ACCA;;;;;;ACCA;;;;A;;;;;;;;ACFA;;;;A;;;;;;;;ACEA;;;;A;;;;;;;;ACDA;;;;A;;;;;;;;;;;;;;ACcA;;;AACA;AAGA;AACA;AAGA;AACA;AACA;AACA;AAGA;AACA;AACA;AACA;AACA;AACA;AAGA;AACA;AAGA;AAGA;AACA;AACA;AACA;AAGA;AACA;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAGA;AACA;AAGA;AAGA;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;AChNA,IAAAC,kBAAA;;;;A;;;;;;;;ACCA;;;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAAC;AACA;AACA,IAAAC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAAC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAAC;AACA;AACA;AACA;AACA;AACA;AACA,IAAAC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAAC;AACA;AACA;;;;;ACjHA;;;;;;;;;;;IAmBa;AAnBb;;AAEA;AAIA;AAaO,IAAM,MAAM;MACjB;MACA;MACA;MACA;MACA;MACA;MACA,KAAAC;MACA;MACA;MACA;;;;;;AC7BF,IAmBa;AAnBb;;;AACA;AAkBM,IAAO,gBAAP,MAAoB;MAA1B,cAAA;AACS,aAAA,oCAAoC,IAAI,MAAK;AAG7C,aAAA,mCAAmC,IAAI,MAAK;MAiDrD;;;;;MA3CS,0BACL,YACA,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AAA;AAAA,2BAAAC;AAAA,EAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,kBAAAC;AAAA,EAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,iBAAAC;AAAA,EAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,aAAAC;AAAA,EAAA;AAAA;AAAA;AAAA;AAAA,aAAAC;AAAA,EAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,2BAAAC;AAAA,EAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAAC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAAC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAAC;AACA;AACA;AACA;AACA;AACA;AACA,IAAAC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAAC;AACA;AACA;AACA;AACA;AACA,IAAAC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AAAA;;;ACtPA;AAAA;AAAA,MAAC,SAASC,IAAEC,KAAE;AAAC,kBAAU,OAAO,WAAS,eAAa,OAAO,SAAO,OAAO,UAAQA,IAAE,IAAE,cAAY,OAAO,UAAQ,OAAO,MAAI,OAAOA,GAAC,KAAGD,KAAE,eAAa,OAAO,aAAW,aAAWA,MAAG,MAAM,QAAMC,IAAE;AAAA,IAAC,GAAE,UAAM,WAAU;AAAC;AAAa,UAAID,KAAE,KAAIC,MAAE,KAAIC,MAAE,MAAKC,MAAE,eAAcC,MAAE,UAASC,MAAE,UAASC,KAAE,QAAOC,KAAE,OAAMC,MAAE,QAAOC,MAAE,SAAQC,KAAE,WAAUC,KAAE,QAAOC,KAAE,QAAOC,KAAE,gBAAeC,KAAE,8FAA6FC,KAAE,uFAAsFC,KAAE,EAAC,MAAK,MAAK,UAAS,2DAA2D,MAAM,GAAG,GAAE,QAAO,wFAAwF,MAAM,GAAG,GAAE,SAAQ,SAAShB,KAAE;AAAC,YAAIC,MAAE,CAAC,MAAK,MAAK,MAAK,IAAI,GAAEC,MAAEF,MAAE;AAAI,eAAM,MAAIA,OAAGC,KAAGC,MAAE,MAAI,EAAE,KAAGD,IAAEC,GAAC,KAAGD,IAAE,CAAC,KAAG;AAAA,MAAG,EAAC,GAAEgB,KAAE,SAASjB,KAAEC,KAAEC,KAAE;AAAC,YAAIC,MAAE,OAAOH,GAAC;AAAE,eAAM,CAACG,OAAGA,IAAE,UAAQF,MAAED,MAAE,KAAG,MAAMC,MAAE,IAAEE,IAAE,MAAM,EAAE,KAAKD,GAAC,IAAEF;AAAA,MAAC,GAAEkB,KAAE,EAAC,GAAED,IAAE,GAAE,SAASjB,KAAE;AAAC,YAAIC,MAAE,CAACD,IAAE,UAAU,GAAEE,MAAE,KAAK,IAAID,GAAC,GAAEE,MAAE,KAAK,MAAMD,MAAE,EAAE,GAAEE,MAAEF,MAAE;AAAG,gBAAOD,OAAG,IAAE,MAAI,OAAKgB,GAAEd,KAAE,GAAE,GAAG,IAAE,MAAIc,GAAEb,KAAE,GAAE,GAAG;AAAA,MAAC,GAAE,GAAE,SAASJ,IAAEC,KAAEC,KAAE;AAAC,YAAGD,IAAE,KAAK,IAAEC,IAAE,KAAK,EAAE,QAAM,CAACF,IAAEE,KAAED,GAAC;AAAE,YAAIE,MAAE,MAAID,IAAE,KAAK,IAAED,IAAE,KAAK,MAAIC,IAAE,MAAM,IAAED,IAAE,MAAM,IAAGG,MAAEH,IAAE,MAAM,EAAE,IAAIE,KAAEM,GAAC,GAAEJ,MAAEH,MAAEE,MAAE,GAAEE,KAAEL,IAAE,MAAM,EAAE,IAAIE,OAAGE,MAAE,KAAG,IAAGI,GAAC;AAAE,eAAM,EAAE,EAAEN,OAAGD,MAAEE,QAAIC,MAAED,MAAEE,KAAEA,KAAEF,SAAK;AAAA,MAAE,GAAE,GAAE,SAASJ,KAAE;AAAC,eAAOA,MAAE,IAAE,KAAK,KAAKA,GAAC,KAAG,IAAE,KAAK,MAAMA,GAAC;AAAA,MAAC,GAAE,GAAE,SAASA,KAAE;AAAC,eAAM,EAAC,GAAES,KAAE,GAAEE,IAAE,GAAEH,KAAE,GAAED,IAAE,GAAEK,IAAE,GAAEN,IAAE,GAAED,KAAE,GAAED,KAAE,IAAGD,KAAE,GAAEO,GAAC,EAAEV,GAAC,KAAG,OAAOA,OAAG,EAAE,EAAE,YAAY,EAAE,QAAQ,MAAK,EAAE;AAAA,MAAC,GAAE,GAAE,SAASA,KAAE;AAAC,eAAO,WAASA;AAAA,MAAC,EAAC,GAAEmB,KAAE,MAAKC,KAAE,CAAC;AAAE,MAAAA,GAAED,EAAC,IAAEH;AAAE,UAAIK,KAAE,kBAAiBC,KAAE,SAAStB,KAAE;AAAC,eAAOA,eAAauB,MAAG,EAAE,CAACvB,OAAG,CAACA,IAAEqB,EAAC;AAAA,MAAE,GAAEG,KAAE,SAASxB,IAAEC,KAAEC,KAAEC,KAAE;AAAC,YAAIC;AAAE,YAAG,CAACH,IAAE,QAAOkB;AAAE,YAAG,YAAU,OAAOlB,KAAE;AAAC,cAAII,MAAEJ,IAAE,YAAY;AAAE,UAAAmB,GAAEf,GAAC,MAAID,MAAEC,MAAGH,QAAIkB,GAAEf,GAAC,IAAEH,KAAEE,MAAEC;AAAG,cAAIC,KAAEL,IAAE,MAAM,GAAG;AAAE,cAAG,CAACG,OAAGE,GAAE,SAAO,EAAE,QAAON,IAAEM,GAAE,CAAC,CAAC;AAAA,QAAC,OAAK;AAAC,cAAIC,KAAEN,IAAE;AAAK,UAAAmB,GAAEb,EAAC,IAAEN,KAAEG,MAAEG;AAAA,QAAC;AAAC,eAAM,CAACJ,OAAGC,QAAIe,KAAEf,MAAGA,OAAG,CAACD,OAAGgB;AAAA,MAAC,GAAEM,KAAE,SAASzB,KAAEC,KAAE;AAAC,YAAGqB,GAAEtB,GAAC,EAAE,QAAOA,IAAE,MAAM;AAAE,YAAIE,MAAE,YAAU,OAAOD,MAAEA,MAAE,CAAC;AAAE,eAAOC,IAAE,OAAKF,KAAEE,IAAE,OAAK,WAAU,IAAIqB,GAAErB,GAAC;AAAA,MAAC,GAAEwB,KAAER;AAAE,MAAAQ,GAAE,IAAEF,IAAEE,GAAE,IAAEJ,IAAEI,GAAE,IAAE,SAAS1B,KAAEC,KAAE;AAAC,eAAOwB,GAAEzB,KAAE,EAAC,QAAOC,IAAE,IAAG,KAAIA,IAAE,IAAG,GAAEA,IAAE,IAAG,SAAQA,IAAE,QAAO,CAAC;AAAA,MAAC;AAAE,UAAIsB,MAAE,WAAU;AAAC,iBAASP,GAAEhB,KAAE;AAAC,eAAK,KAAGwB,GAAExB,IAAE,QAAO,MAAK,IAAE,GAAE,KAAK,MAAMA,GAAC,GAAE,KAAK,KAAG,KAAK,MAAIA,IAAE,KAAG,CAAC,GAAE,KAAKqB,EAAC,IAAE;AAAA,QAAE;AAAC,YAAIJ,KAAED,GAAE;AAAU,eAAOC,GAAE,QAAM,SAASjB,KAAE;AAAC,eAAK,MAAG,SAASA,KAAE;AAAC,gBAAIC,MAAED,IAAE,MAAKE,MAAEF,IAAE;AAAI,gBAAG,SAAOC,IAAE,QAAO,oBAAI,KAAK,GAAG;AAAE,gBAAGyB,GAAE,EAAEzB,GAAC,EAAE,QAAO,oBAAI;AAAK,gBAAGA,eAAa,KAAK,QAAO,IAAI,KAAKA,GAAC;AAAE,gBAAG,YAAU,OAAOA,OAAG,CAAC,MAAM,KAAKA,GAAC,GAAE;AAAC,kBAAIE,MAAEF,IAAE,MAAMa,EAAC;AAAE,kBAAGX,KAAE;AAAC,oBAAIC,MAAED,IAAE,CAAC,IAAE,KAAG,GAAEE,OAAGF,IAAE,CAAC,KAAG,KAAK,UAAU,GAAE,CAAC;AAAE,uBAAOD,MAAE,IAAI,KAAK,KAAK,IAAIC,IAAE,CAAC,GAAEC,KAAED,IAAE,CAAC,KAAG,GAAEA,IAAE,CAAC,KAAG,GAAEA,IAAE,CAAC,KAAG,GAAEA,IAAE,CAAC,KAAG,GAAEE,GAAC,CAAC,IAAE,IAAI,KAAKF,IAAE,CAAC,GAAEC,KAAED,IAAE,CAAC,KAAG,GAAEA,IAAE,CAAC,KAAG,GAAEA,IAAE,CAAC,KAAG,GAAEA,IAAE,CAAC,KAAG,GAAEE,GAAC;AAAA,cAAC;AAAA,YAAC;AAAC,mBAAO,IAAI,KAAKJ,GAAC;AAAA,UAAC,GAAED,GAAC,GAAE,KAAK,KAAK;AAAA,QAAC,GAAEiB,GAAE,OAAK,WAAU;AAAC,cAAIjB,MAAE,KAAK;AAAG,eAAK,KAAGA,IAAE,YAAY,GAAE,KAAK,KAAGA,IAAE,SAAS,GAAE,KAAK,KAAGA,IAAE,QAAQ,GAAE,KAAK,KAAGA,IAAE,OAAO,GAAE,KAAK,KAAGA,IAAE,SAAS,GAAE,KAAK,KAAGA,IAAE,WAAW,GAAE,KAAK,KAAGA,IAAE,WAAW,GAAE,KAAK,MAAIA,IAAE,gBAAgB;AAAA,QAAC,GAAEiB,GAAE,SAAO,WAAU;AAAC,iBAAOS;AAAA,QAAC,GAAET,GAAE,UAAQ,WAAU;AAAC,iBAAM,EAAE,KAAK,GAAG,SAAS,MAAIJ;AAAA,QAAE,GAAEI,GAAE,SAAO,SAASjB,KAAEC,KAAE;AAAC,cAAIC,MAAEuB,GAAEzB,GAAC;AAAE,iBAAO,KAAK,QAAQC,GAAC,KAAGC,OAAGA,OAAG,KAAK,MAAMD,GAAC;AAAA,QAAC,GAAEgB,GAAE,UAAQ,SAASjB,KAAEC,KAAE;AAAC,iBAAOwB,GAAEzB,GAAC,IAAE,KAAK,QAAQC,GAAC;AAAA,QAAC,GAAEgB,GAAE,WAAS,SAASjB,KAAEC,KAAE;AAAC,iBAAO,KAAK,MAAMA,GAAC,IAAEwB,GAAEzB,GAAC;AAAA,QAAC,GAAEiB,GAAE,KAAG,SAASjB,KAAEC,KAAEC,KAAE;AAAC,iBAAOwB,GAAE,EAAE1B,GAAC,IAAE,KAAKC,GAAC,IAAE,KAAK,IAAIC,KAAEF,GAAC;AAAA,QAAC,GAAEiB,GAAE,OAAK,WAAU;AAAC,iBAAO,KAAK,MAAM,KAAK,QAAQ,IAAE,GAAG;AAAA,QAAC,GAAEA,GAAE,UAAQ,WAAU;AAAC,iBAAO,KAAK,GAAG,QAAQ;AAAA,QAAC,GAAEA,GAAE,UAAQ,SAASjB,KAAEC,KAAE;AAAC,cAAIC,MAAE,MAAKC,MAAE,CAAC,CAACuB,GAAE,EAAEzB,GAAC,KAAGA,KAAES,KAAEgB,GAAE,EAAE1B,GAAC,GAAEa,KAAE,SAASb,KAAEC,KAAE;AAAC,gBAAIG,MAAEsB,GAAE,EAAExB,IAAE,KAAG,KAAK,IAAIA,IAAE,IAAGD,KAAED,GAAC,IAAE,IAAI,KAAKE,IAAE,IAAGD,KAAED,GAAC,GAAEE,GAAC;AAAE,mBAAOC,MAAEC,MAAEA,IAAE,MAAMG,EAAC;AAAA,UAAC,GAAEO,KAAE,SAASd,KAAEC,KAAE;AAAC,mBAAOyB,GAAE,EAAExB,IAAE,OAAO,EAAEF,GAAC,EAAE,MAAME,IAAE,OAAO,GAAG,IAAGC,MAAE,CAAC,GAAE,GAAE,GAAE,CAAC,IAAE,CAAC,IAAG,IAAG,IAAG,GAAG,GAAG,MAAMF,GAAC,CAAC,GAAEC,GAAC;AAAA,UAAC,GAAEa,KAAE,KAAK,IAAGC,KAAE,KAAK,IAAGC,KAAE,KAAK,IAAGC,KAAE,SAAO,KAAK,KAAG,QAAM;AAAI,kBAAOR,IAAE;AAAA,YAAC,KAAKC;AAAE,qBAAOR,MAAEU,GAAE,GAAE,CAAC,IAAEA,GAAE,IAAG,EAAE;AAAA,YAAE,KAAKJ;AAAE,qBAAON,MAAEU,GAAE,GAAEG,EAAC,IAAEH,GAAE,GAAEG,KAAE,CAAC;AAAA,YAAE,KAAKR;AAAE,kBAAIW,KAAE,KAAK,QAAQ,EAAE,aAAW,GAAEC,MAAGL,KAAEI,KAAEJ,KAAE,IAAEA,MAAGI;AAAE,qBAAON,GAAEV,MAAEc,KAAEG,KAAEH,MAAG,IAAEG,KAAGJ,EAAC;AAAA,YAAE,KAAKT;AAAA,YAAE,KAAKK;AAAE,qBAAOE,GAAEI,KAAE,SAAQ,CAAC;AAAA,YAAE,KAAKZ;AAAE,qBAAOQ,GAAEI,KAAE,WAAU,CAAC;AAAA,YAAE,KAAKb;AAAE,qBAAOS,GAAEI,KAAE,WAAU,CAAC;AAAA,YAAE,KAAKd;AAAE,qBAAOU,GAAEI,KAAE,gBAAe,CAAC;AAAA,YAAE;AAAQ,qBAAO,KAAK,MAAM;AAAA,UAAC;AAAA,QAAC,GAAED,GAAE,QAAM,SAASjB,KAAE;AAAC,iBAAO,KAAK,QAAQA,KAAE,KAAE;AAAA,QAAC,GAAEiB,GAAE,OAAK,SAASjB,KAAEC,KAAE;AAAC,cAAIC,KAAEM,MAAEkB,GAAE,EAAE1B,GAAC,GAAEU,KAAE,SAAO,KAAK,KAAG,QAAM,KAAIG,MAAGX,MAAE,CAAC,GAAEA,IAAEK,EAAC,IAAEG,KAAE,QAAOR,IAAEU,EAAC,IAAEF,KAAE,QAAOR,IAAEO,GAAC,IAAEC,KAAE,SAAQR,IAAES,EAAC,IAAED,KAAE,YAAWR,IAAEI,EAAC,IAAEI,KAAE,SAAQR,IAAEG,GAAC,IAAEK,KAAE,WAAUR,IAAEE,GAAC,IAAEM,KAAE,WAAUR,IAAEC,GAAC,IAAEO,KAAE,gBAAeR,KAAGM,GAAC,GAAEM,KAAEN,QAAID,KAAE,KAAK,MAAIN,MAAE,KAAK,MAAIA;AAAE,cAAGO,QAAIC,OAAGD,QAAIG,IAAE;AAAC,gBAAII,KAAE,KAAK,MAAM,EAAE,IAAIH,IAAE,CAAC;AAAE,YAAAG,GAAE,GAAGF,EAAC,EAAEC,EAAC,GAAEC,GAAE,KAAK,GAAE,KAAK,KAAGA,GAAE,IAAIH,IAAE,KAAK,IAAI,KAAK,IAAGG,GAAE,YAAY,CAAC,CAAC,EAAE;AAAA,UAAE,MAAM,CAAAF,MAAG,KAAK,GAAGA,EAAC,EAAEC,EAAC;AAAE,iBAAO,KAAK,KAAK,GAAE;AAAA,QAAI,GAAEG,GAAE,MAAI,SAASjB,KAAEC,KAAE;AAAC,iBAAO,KAAK,MAAM,EAAE,KAAKD,KAAEC,GAAC;AAAA,QAAC,GAAEgB,GAAE,MAAI,SAASjB,KAAE;AAAC,iBAAO,KAAK0B,GAAE,EAAE1B,GAAC,CAAC,EAAE;AAAA,QAAC,GAAEiB,GAAE,MAAI,SAASd,KAAEO,IAAE;AAAC,cAAIE,IAAEC,KAAE;AAAK,UAAAV,MAAE,OAAOA,GAAC;AAAE,cAAIW,KAAEY,GAAE,EAAEhB,EAAC,GAAEK,KAAE,SAASf,KAAE;AAAC,gBAAIC,MAAEwB,GAAEZ,EAAC;AAAE,mBAAOa,GAAE,EAAEzB,IAAE,KAAKA,IAAE,KAAK,IAAE,KAAK,MAAMD,MAAEG,GAAC,CAAC,GAAEU,EAAC;AAAA,UAAC;AAAE,cAAGC,OAAIL,IAAE,QAAO,KAAK,IAAIA,KAAE,KAAK,KAAGN,GAAC;AAAE,cAAGW,OAAIH,GAAE,QAAO,KAAK,IAAIA,IAAE,KAAK,KAAGR,GAAC;AAAE,cAAGW,OAAIP,GAAE,QAAOQ,GAAE,CAAC;AAAE,cAAGD,OAAIN,IAAE,QAAOO,GAAE,CAAC;AAAE,cAAIC,MAAGJ,KAAE,CAAC,GAAEA,GAAEP,GAAC,IAAEJ,KAAEW,GAAEN,EAAC,IAAEJ,KAAEU,GAAER,GAAC,IAAEJ,IAAEY,IAAGE,EAAC,KAAG,GAAEG,KAAE,KAAK,GAAG,QAAQ,IAAEd,MAAEa;AAAE,iBAAOU,GAAE,EAAET,IAAE,IAAI;AAAA,QAAC,GAAEA,GAAE,WAAS,SAASjB,KAAEC,KAAE;AAAC,iBAAO,KAAK,IAAI,KAAGD,KAAEC,GAAC;AAAA,QAAC,GAAEgB,GAAE,SAAO,SAASjB,KAAE;AAAC,cAAIC,MAAE,MAAKC,MAAE,KAAK,QAAQ;AAAE,cAAG,CAAC,KAAK,QAAQ,EAAE,QAAOA,IAAE,eAAaW;AAAE,cAAIV,MAAEH,OAAG,wBAAuBI,MAAEsB,GAAE,EAAE,IAAI,GAAErB,MAAE,KAAK,IAAGC,KAAE,KAAK,IAAGC,KAAE,KAAK,IAAGC,MAAEN,IAAE,UAASO,MAAEP,IAAE,QAAOQ,KAAER,IAAE,UAASS,KAAE,SAASX,KAAEE,KAAEE,KAAEC,KAAE;AAAC,mBAAOL,QAAIA,IAAEE,GAAC,KAAGF,IAAEC,KAAEE,GAAC,MAAIC,IAAEF,GAAC,EAAE,MAAM,GAAEG,GAAC;AAAA,UAAC,GAAEO,KAAE,SAASZ,KAAE;AAAC,mBAAO0B,GAAE,EAAErB,MAAE,MAAI,IAAGL,KAAE,GAAG;AAAA,UAAC,GAAEc,KAAEJ,MAAG,SAASV,KAAEC,KAAEC,KAAE;AAAC,gBAAIC,MAAEH,MAAE,KAAG,OAAK;AAAK,mBAAOE,MAAEC,IAAE,YAAY,IAAEA;AAAA,UAAC;AAAE,iBAAOA,IAAE,QAAQY,KAAG,SAASf,KAAEG,KAAE;AAAC,mBAAOA,QAAG,SAASH,KAAE;AAAC,sBAAOA,KAAE;AAAA,gBAAC,KAAI;AAAK,yBAAO,OAAOC,IAAE,EAAE,EAAE,MAAM,EAAE;AAAA,gBAAE,KAAI;AAAO,yBAAOyB,GAAE,EAAEzB,IAAE,IAAG,GAAE,GAAG;AAAA,gBAAE,KAAI;AAAI,yBAAOM,KAAE;AAAA,gBAAE,KAAI;AAAK,yBAAOmB,GAAE,EAAEnB,KAAE,GAAE,GAAE,GAAG;AAAA,gBAAE,KAAI;AAAM,yBAAOI,GAAET,IAAE,aAAYK,IAAEE,KAAE,CAAC;AAAA,gBAAE,KAAI;AAAO,yBAAOE,GAAEF,KAAEF,EAAC;AAAA,gBAAE,KAAI;AAAI,yBAAON,IAAE;AAAA,gBAAG,KAAI;AAAK,yBAAOyB,GAAE,EAAEzB,IAAE,IAAG,GAAE,GAAG;AAAA,gBAAE,KAAI;AAAI,yBAAO,OAAOA,IAAE,EAAE;AAAA,gBAAE,KAAI;AAAK,yBAAOU,GAAET,IAAE,aAAYD,IAAE,IAAGO,KAAE,CAAC;AAAA,gBAAE,KAAI;AAAM,yBAAOG,GAAET,IAAE,eAAcD,IAAE,IAAGO,KAAE,CAAC;AAAA,gBAAE,KAAI;AAAO,yBAAOA,IAAEP,IAAE,EAAE;AAAA,gBAAE,KAAI;AAAI,yBAAO,OAAOI,GAAC;AAAA,gBAAE,KAAI;AAAK,yBAAOqB,GAAE,EAAErB,KAAE,GAAE,GAAG;AAAA,gBAAE,KAAI;AAAI,yBAAOO,GAAE,CAAC;AAAA,gBAAE,KAAI;AAAK,yBAAOA,GAAE,CAAC;AAAA,gBAAE,KAAI;AAAI,yBAAOE,GAAET,KAAEC,IAAE,IAAE;AAAA,gBAAE,KAAI;AAAI,yBAAOQ,GAAET,KAAEC,IAAE,KAAE;AAAA,gBAAE,KAAI;AAAI,yBAAO,OAAOA,EAAC;AAAA,gBAAE,KAAI;AAAK,yBAAOoB,GAAE,EAAEpB,IAAE,GAAE,GAAG;AAAA,gBAAE,KAAI;AAAI,yBAAO,OAAOL,IAAE,EAAE;AAAA,gBAAE,KAAI;AAAK,yBAAOyB,GAAE,EAAEzB,IAAE,IAAG,GAAE,GAAG;AAAA,gBAAE,KAAI;AAAM,yBAAOyB,GAAE,EAAEzB,IAAE,KAAI,GAAE,GAAG;AAAA,gBAAE,KAAI;AAAI,yBAAOG;AAAA,cAAC;AAAC,qBAAO;AAAA,YAAI,GAAEJ,GAAC,KAAGI,IAAE,QAAQ,KAAI,EAAE;AAAA,UAAC,EAAE;AAAA,QAAC,GAAEa,GAAE,YAAU,WAAU;AAAC,iBAAO,KAAG,CAAC,KAAK,MAAM,KAAK,GAAG,kBAAkB,IAAE,EAAE;AAAA,QAAC,GAAEA,GAAE,OAAK,SAASd,KAAES,IAAEC,IAAE;AAAC,cAAIC,IAAEC,KAAE,MAAKC,KAAEU,GAAE,EAAEd,EAAC,GAAEK,KAAEQ,GAAEtB,GAAC,GAAEe,MAAGD,GAAE,UAAU,IAAE,KAAK,UAAU,KAAGhB,KAAEkB,KAAE,OAAKF,IAAEG,KAAE,WAAU;AAAC,mBAAOM,GAAE,EAAEX,IAAEE,EAAC;AAAA,UAAC;AAAE,kBAAOD,IAAE;AAAA,YAAC,KAAKL;AAAE,cAAAG,KAAEM,GAAE,IAAE;AAAG;AAAA,YAAM,KAAKX;AAAE,cAAAK,KAAEM,GAAE;AAAE;AAAA,YAAM,KAAKV;AAAE,cAAAI,KAAEM,GAAE,IAAE;AAAE;AAAA,YAAM,KAAKZ;AAAE,cAAAM,MAAGK,KAAED,MAAG;AAAO;AAAA,YAAM,KAAKX;AAAE,cAAAO,MAAGK,KAAED,MAAG;AAAM;AAAA,YAAM,KAAKZ;AAAE,cAAAQ,KAAEK,KAAEjB;AAAE;AAAA,YAAM,KAAKG;AAAE,cAAAS,KAAEK,KAAElB;AAAE;AAAA,YAAM,KAAKG;AAAE,cAAAU,KAAEK,KAAEnB;AAAE;AAAA,YAAM;AAAQ,cAAAc,KAAEK;AAAA,UAAC;AAAC,iBAAON,KAAEC,KAAEY,GAAE,EAAEZ,EAAC;AAAA,QAAC,GAAEG,GAAE,cAAY,WAAU;AAAC,iBAAO,KAAK,MAAMR,GAAC,EAAE;AAAA,QAAE,GAAEQ,GAAE,UAAQ,WAAU;AAAC,iBAAOG,GAAE,KAAK,EAAE;AAAA,QAAC,GAAEH,GAAE,SAAO,SAASjB,KAAEC,KAAE;AAAC,cAAG,CAACD,IAAE,QAAO,KAAK;AAAG,cAAIE,MAAE,KAAK,MAAM,GAAEC,MAAEqB,GAAExB,KAAEC,KAAE,IAAE;AAAE,iBAAOE,QAAID,IAAE,KAAGC,MAAGD;AAAA,QAAC,GAAEe,GAAE,QAAM,WAAU;AAAC,iBAAOS,GAAE,EAAE,KAAK,IAAG,IAAI;AAAA,QAAC,GAAET,GAAE,SAAO,WAAU;AAAC,iBAAO,IAAI,KAAK,KAAK,QAAQ,CAAC;AAAA,QAAC,GAAEA,GAAE,SAAO,WAAU;AAAC,iBAAO,KAAK,QAAQ,IAAE,KAAK,YAAY,IAAE;AAAA,QAAI,GAAEA,GAAE,cAAY,WAAU;AAAC,iBAAO,KAAK,GAAG,YAAY;AAAA,QAAC,GAAEA,GAAE,WAAS,WAAU;AAAC,iBAAO,KAAK,GAAG,YAAY;AAAA,QAAC,GAAED;AAAA,MAAC,GAAE,GAAEW,KAAEJ,GAAE;AAAU,aAAOE,GAAE,YAAUE,IAAE,CAAC,CAAC,OAAMxB,GAAC,GAAE,CAAC,MAAKC,GAAC,GAAE,CAAC,MAAKC,GAAC,GAAE,CAAC,MAAKC,EAAC,GAAE,CAAC,MAAKC,EAAC,GAAE,CAAC,MAAKE,GAAC,GAAE,CAAC,MAAKE,EAAC,GAAE,CAAC,MAAKC,EAAC,CAAC,EAAE,SAAS,SAASZ,KAAE;AAAC,QAAA2B,GAAE3B,IAAE,CAAC,CAAC,IAAE,SAASC,KAAE;AAAC,iBAAO,KAAK,GAAGA,KAAED,IAAE,CAAC,GAAEA,IAAE,CAAC,CAAC;AAAA,QAAC;AAAA,MAAC,EAAE,GAAEyB,GAAE,SAAO,SAASzB,KAAEC,KAAE;AAAC,eAAOD,IAAE,OAAKA,IAAEC,KAAEsB,IAAEE,EAAC,GAAEzB,IAAE,KAAG,OAAIyB;AAAA,MAAC,GAAEA,GAAE,SAAOD,IAAEC,GAAE,UAAQH,IAAEG,GAAE,OAAK,SAASzB,KAAE;AAAC,eAAOyB,GAAE,MAAIzB,GAAC;AAAA,MAAC,GAAEyB,GAAE,KAAGL,GAAED,EAAC,GAAEM,GAAE,KAAGL,IAAEK,GAAE,IAAE,CAAC,GAAEA;AAAA,IAAC,EAAE;AAAA;AAAA;;;ACAt/N;AAAA;AAAA,MAAC,SAASG,KAAEC,KAAE;AAAC,kBAAU,OAAO,WAAS,eAAa,OAAO,SAAO,OAAO,UAAQA,IAAE,IAAE,cAAY,OAAO,UAAQ,OAAO,MAAI,OAAOA,GAAC,KAAGD,MAAE,eAAa,OAAO,aAAW,aAAWA,OAAG,MAAM,uBAAqBC,IAAE;AAAA,IAAC,GAAE,UAAM,WAAU;AAAC;AAAa,aAAO,SAASD,KAAEC,KAAEC,IAAE;AAAC,QAAAD,IAAE,UAAU,UAAQ,WAAU;AAAC,cAAID,MAAE,cAAaC,MAAEC,GAAE;AAAE,iBAAO,KAAK,OAAOF,GAAC,MAAIC,IAAE,OAAOD,GAAC;AAAA,QAAC;AAAA,MAAC;AAAA,IAAC,EAAE;AAAA;AAAA;;;ACE3W,SAAS,YAAYG,eAAc;AAClC,SAAO;AAAA,IACN,MAAM,KAAK,MAAMA,gBAAe,KAAU;AAAA,IAC1C,OAAO,KAAK,MAAMA,gBAAe,OAAY,EAAE;AAAA,IAC/C,SAAS,KAAK,MAAMA,gBAAe,MAAS,EAAE;AAAA,IAC9C,SAAS,KAAK,MAAMA,gBAAe,MAAO,EAAE;AAAA,IAC5C,cAAc,KAAK,MAAMA,gBAAe,GAAI;AAAA,IAC5C,cAAc,KAAK,MAAM,iBAAiBA,gBAAe,GAAI,IAAI,GAAI;AAAA,IACrE,aAAa,KAAK,MAAM,iBAAiBA,gBAAe,GAAG,IAAI,GAAI;AAAA,EACpE;AACD;AAEA,SAAS,YAAYA,eAAc;AAClC,SAAO;AAAA,IACN,MAAMA,gBAAe;AAAA,IACrB,OAAOA,gBAAe,WAAa;AAAA,IACnC,SAASA,gBAAe,SAAU;AAAA,IAClC,SAASA,gBAAe,QAAQ;AAAA,IAChC,cAAcA,gBAAe;AAAA,IAC7B,cAAc;AAAA,IACd,aAAa;AAAA,EACd;AACD;AAEe,SAAR,kBAAmCA,eAAc;AACvD,UAAQ,OAAOA,eAAc;AAAA,IAC5B,KAAK,UAAU;AACd,UAAI,OAAO,SAASA,aAAY,GAAG;AAClC,eAAO,YAAYA,aAAY;AAAA,MAChC;AAEA;AAAA,IACD;AAAA,IAEA,KAAK,UAAU;AACd,aAAO,YAAYA,aAAY;AAAA,IAChC;AAAA,EAGD;AAEA,QAAM,IAAI,UAAU,oCAAoC;AACzD;AA5CA,IAAM;AAAN;AAAA;AAAA,IAAM,mBAAmB,CAAAC,WAAS,OAAO,SAASA,MAAK,IAAIA,SAAQ;AAAA;AAAA;;;ACQpD,SAAR,mBAAoCC,eAAc,SAAS;AACjE,QAAM,WAAW,OAAOA,kBAAiB;AACzC,MAAI,CAAC,YAAY,CAAC,OAAO,SAASA,aAAY,GAAG;AAChD,UAAM,IAAI,UAAU,oCAAoC;AAAA,EACzD;AAEA,YAAU,EAAC,GAAG,QAAO;AAErB,QAAM,OAAOA,gBAAe,IAAI,MAAM;AACtC,EAAAA,gBAAeA,gBAAe,IAAI,CAACA,gBAAeA;AAElD,MAAI,QAAQ,eAAe;AAC1B,YAAQ,UAAU;AAClB,YAAQ,wBAAwB;AAChC,YAAQ,uBAAuB;AAC/B,YAAQ,UAAU;AAAA,EACnB;AAEA,MAAI,QAAQ,SAAS;AACpB,YAAQ,YAAY;AACpB,YAAQ,uBAAuB;AAC/B,YAAQ,4BAA4B;AAAA,EACrC;AAEA,MAAI,SAAS,CAAC;AAEd,QAAM,gBAAgB,CAACC,QAAO,kBAAkB;AAC/C,UAAM,sBAAsB,KAAK,MAAOA,SAAS,MAAM,gBAAkB,uBAAuB;AAChG,UAAM,eAAe,KAAK,MAAM,mBAAmB,IAAK,MAAM;AAC9D,WAAO,aAAa,QAAQ,aAAa;AAAA,EAC1C;AAEA,QAAMC,OAAM,CAACD,QAAO,MAAM,OAAO,gBAAgB;AAChD,SACE,OAAO,WAAW,KAAK,CAAC,QAAQ,kBAC9B,OAAOA,MAAK,KACZ,EAAE,QAAQ,iBAAiB,UAAU,MAAM;AAC9C;AAAA,IACD;AAEA,oBAAgB,OAAOA,MAAK;AAC5B,QAAI,QAAQ,eAAe;AAC1B,YAAM,cAAc,YAAY,SAAS,GAAG,IAAI,YAAY,MAAM,GAAG,EAAE,CAAC,EAAE,SAAS,YAAY;AAC/F,YAAM,YAAY,OAAO,SAAS,IAAI,IAAI;AAC1C,oBAAc,IAAI,OAAO,KAAK,IAAI,GAAG,YAAY,WAAW,CAAC,IAAI;AAAA,IAClE,OAAO;AACN,qBAAe,QAAQ,UAAU,MAAM,UAAU,MAAMA,MAAK,IAAI;AAAA,IACjE;AAEA,WAAO,KAAK,WAAW;AAAA,EACxB;AAEA,QAAM,SAAS,kBAAkBD,aAAY;AAC7C,QAAMG,QAAO,OAAO,OAAO,IAAI;AAE/B,MAAI,QAAQ,iBAAiB;AAC5B,IAAAD,KAAK,OAAOC,KAAI,IAAI,MAAO,OAAO,OAAO,KAAK,GAAG,QAAQ,GAAG;AAAA,EAC7D,OAAO;AACN,QAAI,QAAQ,UAAU;AACrB,MAAAD,KAAIC,OAAM,OAAO,GAAG;AAAA,IACrB,OAAO;AACN,MAAAD,KAAIC,QAAO,MAAM,QAAQ,GAAG;AAC5B,MAAAD,KAAIC,QAAO,MAAM,OAAO,GAAG;AAAA,IAC5B;AAEA,IAAAD,KAAI,OAAO,OAAO,KAAK,GAAG,QAAQ,GAAG;AAAA,EACtC;AAEA,EAAAA,KAAI,OAAO,OAAO,OAAO,GAAG,UAAU,GAAG;AAEzC,MAAI,CAAC,QAAQ,aAAa;AACzB,QACC,QAAQ,wBACL,QAAQ,yBACP,CAAC,QAAQ,iBAAiBF,gBAAe,OAAQ,CAAC,QAAQ,sBAC7D;AACD,YAAM,UAAU,OAAO,OAAO,OAAO;AACrC,YAAMA,gBAAe,OAAO,OAAO,YAAY;AAC/C,YAAM,eAAe,OAAO,OAAO,YAAY;AAC/C,YAAM,cAAc,OAAO,OAAO,WAAW;AAE7C,MAAAE,KAAI,SAAS,UAAU,GAAG;AAE1B,UAAI,QAAQ,uBAAuB;AAClC,QAAAA,KAAIF,eAAc,eAAe,IAAI;AACrC,QAAAE,KAAI,cAAc,eAAe,OAAI;AACrC,QAAAA,KAAI,aAAa,cAAc,IAAI;AAAA,MACpC,OAAO;AACN,cAAM,uBACHF,gBACC,eAAe,MACf,cAAc;AAElB,cAAM,4BACH,OAAO,QAAQ,8BAA8B,WAC5C,QAAQ,4BACR;AAEJ,cAAM,sBAAsB,wBAAwB,IACjD,KAAK,MAAM,oBAAoB,IAC/B,KAAK,KAAK,oBAAoB;AAEjC,cAAM,qBAAqB,4BACxB,qBAAqB,QAAQ,yBAAyB,IACtD;AAEH,QAAAE;AAAA,UACC,OAAO,WAAW,kBAAkB;AAAA,UACpC;AAAA,UACA;AAAA,UACA;AAAA,QACD;AAAA,MACD;AAAA,IACD,OAAO;AACN,YAAM,WACJ,WAAW,OAAOF,gBAAe,uBAAuB,IAAIA,iBAC3D,MACC;AACJ,YAAM,uBACH,OAAO,QAAQ,yBAAyB,WACvC,QAAQ,uBACR;AACJ,YAAM,eAAe,cAAc,SAAS,oBAAoB;AAChE,YAAM,gBAAgB,QAAQ,6BAC3B,eACA,aAAa,QAAQ,SAAS,EAAE;AACnC,MAAAE,KAAI,OAAO,WAAW,aAAa,GAAG,UAAU,KAAK,aAAa;AAAA,IACnE;AAAA,EACD;AAEA,MAAI,OAAO,WAAW,GAAG;AACxB,WAAO,OAAO,OAAO,QAAQ,UAAU,kBAAkB;AAAA,EAC1D;AAEA,QAAM,YAAY,QAAQ,gBAAgB,MAAM;AAChD,MAAI,OAAO,QAAQ,cAAc,UAAU;AAC1C,aAAS,OAAO,MAAM,GAAG,KAAK,IAAI,QAAQ,WAAW,CAAC,CAAC;AAAA,EACxD;AAEA,SAAO,OAAO,OAAO,KAAK,SAAS;AACpC;AApJA,IAEM,QACA,WAEA,yBACA;AANN;AAAA;AAAA;AAEA,IAAM,SAAS,CAAAD,WAASA,WAAU,KAAKA,WAAU;AACjD,IAAM,YAAY,CAAC,MAAMG,WAAWA,WAAU,KAAKA,WAAU,KAAM,OAAO,GAAG,IAAI;AAEjF,IAAM,0BAA0B;AAChC,IAAM,0BAA0B,MAAM,MAAM,MAAM;AAAA;AAAA;;;ACNlD,IAUA,cACA;AAXA;;AACA,IAAAC;AACA,IAAAA;AACA;AAKA;AACA;AACA,mBAAkB;AAClB,qBAAoB;AACpB;AAEA,iBAAAC,QAAM,OAAO,eAAAC,OAAO;;;;;ACdpB,IAOa;AAPb;;;AACA;AAMM,IAAO,UAAP,MAAc;MAOlB,YAAY,aAA0B,mBAA2B,aAAyB;AALnF,aAAA,SAA4C;AAG3C,aAAA,oBAA4B;AAGlC,aAAK,iBAAiB;AACtB,aAAK,cAAc;AACnB,aAAK,aAAa,IAAY,eAAO,KAAK,iBAAiB;MAC7D;;;;MAKO,iBAAc;AACnB,YAAI,KAAK,WAAW,WAAW;AAC7B,iBAAO,KAAK;QACd;AACA,YAAI,KAAK,sBAAsB,GAAG;AAChC,eAAK,qBAAoB;QAC3B;AACA,YAAI,KAAK,IAAG,IAAK,KAAK,mBAAmB;AACvC,gBAAM,eAAe,KAAK,YAAY,KAAK,iBAAiB;AAC5D,cAAI,wBAAwB,SAAS;AACnC,yBAAa,MAAM,CAACC,QAAM,QAAQ,IAAIA,GAAC,CAAC;UAC1C;AACA,eAAK,oBAAoB,KAAK,qBAAoB;QACpD;AACA,eAAO,KAAK;MACd;MAEO,uBAAoB;AACzB,eAAQ,KAAK,oBAAoB,KAAK,IAAG,IAAK,KAAK,uBAAsB;MAC3E;;;;MAKO,yBAAsB;AAC3B,eAAO,KAAK,WAAW,SAAQ;MACjC;MAEO,QAAK;AACV,aAAK,SAAS;MAChB;MAEO,OAAI;AACT,aAAK,SAAS;MAChB;;;;;;ACzDF,IAGa;AAHb;;;AACA;AAEM,IAAO,cAAP,MAAkB;MAQtB,cAAA;AALO,aAAA,SAAgC;AAChC,aAAA,WAAW,IAAYC,iBAAI,UAAS;AAEnC,aAAA,oBAAgE;MAEzD;;;;;MAMP,YAAS;AACf,YAAI,KAAK,qBAAqB,KAAK,kBAAkB,WAAW,WAAW;AACzE,eAAK,kBAAkB,QAAO;QAChC;MACF;MAEO,WAAW,mBAA2B,iBAA6B;AACxE,cAAM,aAAa,IAAI,QAAQ,MAAM,mBAAmB,eAAe;AACvE,aAAK,SAAS,IAAI,UAAU;AAC5B,YAAI,KAAK,WAAW,WAAW;AAC7B,qBAAW,MAAK;AAChB,eAAK,UAAS;QAChB;AAEA,eAAO;MACT;MAEO,cAAc,YAAmB;AACtC,mBAAW,KAAI;AACf,aAAK,SAAS,OAAO,UAAU;AAC/B,YAAI,KAAK,WAAW,WAAW;AAC7B,eAAK,UAAS;QAChB;MACF;;;;MAKO,QAAK;AACV,YAAI,KAAK,WAAW,WAAW;AAC7B,eAAK,SAAS;AACd,qBAAW,WAAW,KAAK,SAAS,SAAQ,GAAI;AAC9C,oBAAQ,MAAK;UACf;AACA,eAAK,aAAY;QACnB;MACF;MAEQ,MAAM,eAAY;AACxB,eAAO,KAAK,WAAW,WAAW;AAEhC,eAAK,oBAAoB,IAAY,gBAAa,SAAQ;AAG1D,cAAI,YAAY;AAChB,qBAAW,WAAW,KAAK,SAAS,SAAQ,GAAI;AAC9C,oBAAQ,eAAc;AACtB,kBAAM,WAAW,QAAQ,uBAAsB;AAC/C,gBAAI,WAAW,WAAW;AACxB,0BAAY;YACd;UACF;AAGA,cAAI,YAAY,YAAY,YAAY,GAAG;AACzC,iBAAK,mBAAmB,IAAYA,iBAAW,QAAQ,SAAS;AAChE,kBAAM,QAAQ,KAAK;cACjB,KAAK,iBAAiB;cACtB,KAAK,kBAAkB;aACxB;AAED,iBAAK,iBAAiB,OAAM;UAC9B,WAAW,aAAa,GAAG;AAEzB;UACF,OAAO;AAEL,kBAAM,KAAK,kBAAkB;UAC/B;QACF;AACA,aAAK,oBAAoB;MAC3B;;;;MAKO,OAAI;AACT,YAAI,KAAK,WAAW,WAAW;AAC7B,eAAK,SAAS;AACd,cAAI,KAAK,kBAAkB;AACzB,iBAAK,iBAAiB,OAAM;UAC9B;AACA,eAAK,UAAS;QAChB;AACA,mBAAW,QAAQ,KAAK,SAAS,SAAQ,GAAI;AAC3C,eAAK,KAAI;QACX;MACF;;;;;;ACxGF,IAEW,OAkCA,0BA8BE,sCAIA;AAtEb;;;AAEO,IAAI,QAAQ;MACjB,OAAO,CAAC,WAAW,MAAa;AAC9B,eAAO,WAAW;MACpB;MACA,QAAQ,CAAC,WAAW,MAAa;AAC/B,eAAO,WAAW;MACpB;MACA,OAAO,CAAC,WAAW,MAAK;AACtB,eAAO,WAAW;MACpB;MACA,MAAM,CAAC,WAAW,MAAK;AACrB,eAAO,WAAW;MACpB;MACA,OAAO,CAAC,WAAW,MAAK;AACtB,eAAO,WAAW;MACpB;MACA,SAAS,CAAC,WAAW,MAAK;AACxB,eAAO,WAAW;MACpB;MACA,SAAS,CAAC,WAAW,MAAK;AACxB,eAAO,WAAW;MACpB;;AAaK,IAAI,2BAA2B,CAAC,mBAAuC;AAC5E,UAAI,qBAAqB;AACzB,UAAI,kBAAkB,CAAC,oBAA2B;AAChD,6BAAqB,qBAAqB;MAC5C;AACA,UAAI,eAAe,OAAO;AACxB,wBAAgB,MAAM,MAAM,eAAe,KAAK,CAAC;MACnD;AACA,UAAI,eAAe,QAAQ;AACzB,wBAAgB,MAAM,OAAO,eAAe,MAAM,CAAC;MACrD;AACA,UAAI,eAAe,OAAO;AACxB,wBAAgB,MAAM,MAAM,eAAe,KAAK,CAAC;MACnD;AACA,UAAI,eAAe,MAAM;AACvB,wBAAgB,MAAM,KAAK,eAAe,IAAI,CAAC;MACjD;AACA,UAAI,eAAe,OAAO;AACxB,wBAAgB,MAAM,MAAM,eAAe,KAAK,CAAC;MACnD;AACA,UAAI,eAAe,SAAS;AAC1B,wBAAgB,MAAM,QAAQ,eAAe,OAAO,CAAC;MACvD;AACA,UAAI,eAAe,SAAS;AAC1B,wBAAgB,MAAM,QAAQ,eAAe,OAAO,CAAC;MACvD;AAEA,aAAO;IACT;AAEO,IAAM,uCAAuC,CAAC,oBAAmC;AACtF,aAAe,mBAAS,eAAe;IACzC;AAEO,IAAM,wCAAwC,CAAC,iBAAgC;AACpF,aAAe,iBAAQ,oBAAoB,IAAI,KAAK,YAAY,CAAC;IACnE;;;;;ACxEA,IAiBa;AAjBb;;;AACA;AAgBM,IAAO,eAAP,MAAO,sBAAqB,KAAI;;MAE7B,OAAO,WAAW,cAAoB;AAC3C,eAAO,IAAI,cAAa,YAAY;MACtC;MAEO,OAAO,SAAS,SAAa;AAClC,eAAO,IAAI,cAAa,QAAQ,QAAO,CAAE;MAC3C;MAEO,OAAO,iBAAiB,cAAoB;AACjD,cAAM,YAAY,mBAAmB,KAAK,YAAY;AACtD,cAAM,OAAO,IAAI;UACf,WAAW,UAAU,CAAC,CAAC;;UACvB,WAAW,UAAU,CAAC,CAAC,IAAI;;UAC3B,WAAW,UAAU,CAAC,CAAC;;;AAEzB,cAAM,YAAY,KAAK,QAAO;AAC9B,eAAO,IAAI,cAAa,SAAS;MACnC;;;;;MAMO,OAAO,eAAe,YAAkB;AAG7C,cAAM,aAAa,IAAI,KAAK,UAAU,EAAE,QAAO;AAC/C,eAAO,IAAI,cAAa,UAAU;MACpC;;;;MAKO,OAAO,wBACZ,iBACA,UAAkB,YAClB,UAA0B,iBAAe;AAKzC,cAAM,YAAY,mBAAmB,KAAK,eAAe;AACzD,cAAM,YAAY,CAAC,eAAsB;AACvC,iBAAO,IAAI,UAAU,GAAG,MAAM,EAAE;QAClC;AACA,cAAM,iBAAiB,GAAG,UAAU,CAAC,CAAC,IAAI,UAAU,UAAU,CAAC,CAAC,CAAC,IAAI,UACnE,UAAU,CAAC,CAAC,CACb,IAAI,OAAO;AACZ,cAAM,OAAe,aAAAC,QAAM,cAAc;AACzC,cAAM,YAAY,KAAK,OAAM,EAAG,QAAO;AACvC,eAAO,IAAI,cAAa,SAAS;MACnC;MAKA,YAAY,YAAoB,KAAK,IAAG,GAAE;AACxC,cAAM,SAAS;MACjB;;MAGO,uBAAoB;AACzB,cAAMC,SAAQ,KAAK,cAAa;AAChC,eAAO,GAAGA,OAAM,SAAS,IAAIA,OAAM,WAAW,IAAIA,OAAM,UAAU;MACpE;MAEO,6BAA0B;AAC/B,cAAMA,SAAQ,KAAK,cAAa;AAChC,eAAO,GAAGA,OAAM,UAAU,IAAIA,OAAM,WAAW,IAAIA,OAAM,SAAS;MACpE;;;;MAKO,gBAAa;AAClB,cAAM,cAAc;UAClB;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;;AAEF,cAAM,YAAY;UAChB;UACA;UACA;UACA;UACA;UACA;UACA;;AAEF,eAAO;UACL,MAAM,KAAK,YAAW;UACtB,YAAY,GAAG,KAAK,YAAW,CAAE;UACjC,OAAO,KAAK,SAAQ,IAAK;UACzB,cAAc,OAAO,KAAK,SAAQ,IAAK,IAAI,MAAM,EAAE;UACnD,WAAW,YAAY,KAAK,SAAQ,CAAE;UACtC,KAAK,KAAK,QAAO;UACjB,YAAY,MAAM,KAAK,QAAO,GAAI,MAAM,EAAE;UAC1C,cAAc,KAAK,OAAM;UACzB,kBAAkB,UAAU,KAAK,OAAM,CAAE;;MAE7C;MAEO,OAAO,WAAiB;AAC7B,eAAe,aAAAD,QAAM,KAAK,QAAO,CAAE,EAAE,OAAO,SAAS;MACvD;;;;MAKO,UAAO;AACZ,eAAe,aAAAA,QAAM,KAAK,QAAO,CAAE,EAAE,QAAO;MAC9C;MAEO,oBAAoB,UAAmC;AAC5D,cAAM,oBAA0B,yBAAyB,QAAQ;AACjE,cAAM,uBAAuB,KAAK,IAAG,IAAK,KAAK,QAAO;AACtD,eAAO,uBAAuB;MAChC;MAEO,oBAAoB,UAAmC;AAC5D,eAAO,CAAC,KAAK,oBAAoB,QAAQ;MAC3C;;;;;;ACrJF,IAGa;AAHb;;AAGM,IAAO,iBAAP,MAAqB;MAA3B,cAAA;AACS,aAAA,cAAsB;AACtB,aAAA,eAAuB;AACtB,aAAA,cAAsB;AACtB,aAAA,aAAqB;AACrB,aAAA,WAAoB;MAkC9B;;;;MA7BS,QAAK;AACV,aAAK,WAAW;AAChB,aAAK,cAAc,KAAK,IAAG;MAC7B;;;;MAKO,OAAI;AACT,YAAI,KAAK,aAAa,OAAO;AAC3B,kBAAQ,IAAI,oBAAoB;AAChC;QACF;AACA,aAAK,aAAa,KAAK,IAAG,IAAK,KAAK;AACpC,aAAK,cAAc,KAAK,aAAa;AACrC,aAAK,eAAe,KAAK;AACzB,eAAO;MACT;;;;MAKO,QAAK;AACV,aAAK,cAAc;AACnB,aAAK,eAAe;AACpB,aAAK,cAAc;AACnB,aAAK,aAAa;AAClB,aAAK,WAAW;MAClB;;;;;;ACzCF,IAEa;AAFb;;;AAEM,IAAO,WAAP,MAAe;MASnB,YAAY,0BAAgC;AARrC,aAAA,SAA4C;AAC3C,aAAA,sBAA2B;AAM5B,aAAA,eAAiC,CAAA;AAEtC,aAAK,uBAAuB;MAC9B;MAEO,QAAK;AACV,aAAK,SAAS;AACd,cAAM,aAAa,oBAAI,KAAI;AAC3B,aAAK,sBAAsB;AAC3B,cAAM,cAAc,YAAW;AAC7B,iBAAO,KAAK,WAAW,aAAa,KAAK,wBAAwB,YAAY;AAC3E,kBAAcE,iBAAW,SAAS,KAAK,oBAAoB;AAC3D,iBAAK,oBAAmB;UAC1B;QACF;AACA,oBAAW;MACb;MAEO,OAAI;AACT,aAAK,SAAS;AACd,aAAK,sBAAsB;MAC7B;MAEO,eAAe,SAAkB;AACtC,aAAK,aAAa,KAAK,OAAO;MAChC;MAEQ,sBAAmB;AACzB,mBAAW,WAAW,KAAK,cAAc;AACvC,kBAAO;QACT;MACF;;;;;;ACzCF,IAMa;AANb;;;AAMM,IAAO,YAAP,MAAO,WAAS;;;;MAIb,OAAO,iBAAiB,iBAAuB;AACpD,eAAO,IAAI,WAAU,eAAe;MACtC;;;;;MAMO,OAAO,cAAc,cAAuB;AACjD,cAAM,iBAAiB,IAAI,WAAS;AACpC,uBAAe,SAAS,eAAe,eAAe,aAAa;AACnE,eAAO;MACT;MAuBA,YAAY,YAAmB;AAFxB,aAAA,SAAiB;AAGtB,YAAI,CAAC,YAAY;AACf,eAAK,OAAO,oBAAI,KAAI;QACtB,WAAW,OAAO,eAAe,UAAU;AACzC,eAAK,OAAO,IAAI,KAAK,UAAU;QACjC;AACA,aAAK,eAAe,KAAK,KAAK,QAAO;AACrC,aAAK,YAAY,KAAK,MAAM,KAAK,eAAe,GAAI;MACtD;;;;;;MAOO,0BAA0B,cAAyB,kBAA0B,GAAC;AACnF,YAAI,KAAK,eAAe,aAAa,eAAe,iBAAiB;AACnE,iBAAO;QACT,OAAO;AACL,iBAAO;QACT;MACF;;;;;MAMO,YAAY,cAAyB,kBAA0B,GAAC;AACrE,YAAI,KAAK,eAAe,kBAAkB,aAAa,cAAc;AACnE,iBAAO;QACT,OAAO;AACL,iBAAO;QACT;MACF;;;;;;MAOO,4BAA4B,cAAyB,kBAA0B,GAAC;AACrF,YAAI,KAAK,eAAe,aAAa,eAAe,iBAAiB;AACnE,iBAAO;QACT,OAAO;AACL,iBAAO;QACT;MACF;MAEO,0BAA0B,gBAAsB;AACrD,cAAM,eAAe,IAAI,WAAS;AAClC,cAAM,mBAAmB,aAAa,YAAY;AAClD,cAAM,mBAAmB,IAAI,WAAU,gBAAgB;AACvD,eAAO,KAAK,4BAA4B,gBAAgB;MAC1D;;;;;;AClGF,IAMa;AANb;;;AAEA;AAIM,IAAO,QAAP,MAAY;MA0BhB,IAAI,WAAQ;AACV,eAAO,KAAK,qBAAqB,KAAK,SAAS;MACjD;MASA,YAAY,uBAA6B;AA5BlC,aAAA,QAAoB;AA0BnB,aAAA,oBAA4B,gBAAa,MAAK;AAGpD,aAAK,qBAAqB;AAC1B,aAAK,YAAY,KAAK,kBAAkB;MAC1C;;;;MAKO,QAAK;AACV,YAAI,CAAC,KAAK,WAAW;AACnB,eAAK,iBAAiB,WAAW,MAAK;AACpC,iBAAK,kBAAkB,QAAO;UAChC,GAAG,KAAK,kBAAkB;AAC1B,eAAK,YAAY,IAAI,UAAS;QAChC,OAAO;AACL,gBAAM,IAAI,MAAM,0DAA0D;QAC5E;MACF;MAEO,QAAK;AACV,YAAI,KAAK,WAAW;AAClB,uBAAa,KAAK,cAAc;AAChC,eAAK,iBAAiB;AACtB,eAAK,WAAW,UAAU,cAAc,KAAK,SAAS;QACxD;MACF;MAEO,SAAM;AACX,YAAI,KAAK,WAAW;AAClB,eAAK,iBAAiB,WAAW,MAAK;AACpC,iBAAK,kBAAkB,QAAO;UAChC,GAAG,KAAK,QAAQ;QAClB,OAAO;AACL,gBAAM,IAAI,MAAM,gEAAgE;QAClF;MACF;MAEO,QAAK;AACV,aAAK,MAAK;AACV,aAAK,YAAY;AACjB,aAAK,WAAW;MAClB;;;;;;ACpFF,IAAAC,mBAAA;SAAAA,kBAAA;;;;;;;;;;;;;IAAAC,gBAAA;;;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;ACPA;AAAA;AAAA;AAEA,WAAO,UAAU,MAAM,eAAe;AAAA,MAC9B,cAAc;AACN,aAAK,SAAS;AACd,aAAK,kBAAkB;AACvB,aAAK,cAAc;AAEnB,aAAK,aAAa;AAClB,aAAK,YAAY;AAGjB,aAAK,kBAAkB;AAEvB,aAAK,uBAAuB;AAI5B,aAAK,cAAc;AACnB,aAAK,qBAAqB;AAAA,MAClC;AAAA,MAEA,IAAI,aAAa;AACT,eAAO,QAAQ,KAAK,UAAU,KAAK,mBAAmB,KAAK,WAAW;AAAA,MAC9E;AAAA,MAEA,IAAI,cAAc;AACV,eAAO,QAAQ,KAAK,UAAU;AAAA,MACtC;AAAA,MAEA,kBAAkB;AAGV,aAAK,kBAAmB,KAAK,kBAAkB,IAAK;AACpD,aAAK,uBAAuB;AAAA,MACpC;AAAA,MAEA,eAAe,YAAY;AAEnB,YAAI,KAAK,uBAAuB,WAAW,iBAAiB;AACpD,eAAK,qBAAqB;AAE1B,iBAAO;AAAA,QACf;AAEA,eAAO,KAAK;AAAA,MACpB;AAAA,MAEA,eAAe,YAAYC,QAAO;AAE1B,aAAK,qBAAqB,WAAW;AACrC,aAAK,cAAcA;AAAA,MAC3B;AAAA,IACR;AAAA;AAAA;;;ACrDA;AAAA;AAAA;AAGA,WAAO,UAAU,OAAO,OAAO;AAAA;AAAA,MAEvB,cAAc;AAAA,MACd,WAAW;AAAA,MACX,WAAW;AAAA,MACX,UAAU;AAAA,MACV,cAAc;AAAA,IACtB,CAAC;AAAA;AAAA;;;ACVD;AAAA;AAAA;AAEA,QAAM,OAAO,uBAAO;AACpB,QAAM,OAAO,uBAAO;AACpB,QAAM,OAAO,uBAAO;AACpB,QAAM,eAAe,uBAAO;AAE5B,QAAM,eAAN,MAAmB;AAAA,MACX,YAAY,MAAMC,OAAM,aAAa,iBAAiB;AAC9C,aAAK,IAAI,IAAI;AACb,aAAK,IAAI,IAAIA;AACb,aAAK,IAAI,IAAI;AACb,aAAK,YAAY,IAAI;AAAA,MAC7B;AAAA,MAEA,OAAO;AACC,cAAM,OAAO,KAAK,IAAI;AACtB,cAAM,cAAc,KAAK,YAAY;AACrC,cAAMA,QAAO,KAAK,IAAI;AAEtB,YAAI,CAAC,KAAK,IAAI,GAAG;AACT,iBAAO;AAAA,YACC,MAAM;AAAA,YACN,OAAOA;AAAA,UACf;AAAA,QACR;AAEA,cAAMC,SAAQ,KAAK,IAAI;AAEvB,YAAI,gBAAgB,GAAG;AACf,eAAK,IAAI,IAAI,KAAK,MAAMA,MAAK,EAAE;AAAA,QACvC,WACS,gBAAgB,GAAG;AACpB,eAAK,IAAI,IAAI,KAAK,MAAMA,MAAK,EAAE;AAAA,QACvC,WACS,gBAAgB,GAAG;AACpB,eAAK,IAAI,IAAI,KAAK,MAAMA,MAAK,EAAE;AAAA,QACvC,WACS,gBAAgB,GAAG;AACpB,eAAK,IAAI,IAAI,KAAK,UAAUA,QAAO,EAAC,MAAMD,MAAI,CAAC;AAAA,QACvD,OACiC;AACzB,eAAK,IAAI,IAAI,KAAK,UAAUC,QAAO,EAAC,MAAMD,MAAI,CAAC;AAAA,QACvD;AAEA,eAAO;AAAA,UACC,MAAM;AAAA,UACN,OAAOC;AAAA,QACf;AAAA,MACR;AAAA,IACR;AAEA,WAAO,eAAe,aAAa,WAAW,OAAO,UAAU;AAAA,MACvD,OAAO,WAAW;AACV,eAAO;AAAA,MACf;AAAA,MACA,UAAU;AAAA,IAClB,CAAC;AAED,iBAAa,OAAO;AACpB,iBAAa,OAAO;AACpB,iBAAa,SAAS;AACtB,iBAAa,YAAY;AACzB,iBAAa,YAAY;AAEzB,WAAO,OAAO,YAAY;AAC1B,WAAO,OAAO,aAAa,SAAS;AAEpC,WAAO,UAAU;AAAA;AAAA;;;ACpEjB;AAAA;AAAA;AAOA,QAAM,iBAAiB;AACvB,QAAM,eAAe;AACrB,QAAM,eAAe;AAErB,aAAS,aAAa;AACd,aAAO;AAAA,IACf;AAEA,aAAS,kBAAkB,OAAO,cAAc;AACxC,aAAO,MAAM,MAAM,SAAS,IAAI,YAAY;AAAA,IACpD;AAEA,QAAM,aAAN,MAAiB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,MAOT,YAAY,aAAa;AACjB,aAAK,SAAS,OAAO,eAAe,iBAAiB;AAAA,MAC7D;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,MAcA,WAAW,QAAQ;AACX,aAAK,MAAM,MAAM;AAEjB,eAAO;AAAA,MACf;AAAA,MAEA,MAAM,QAAQ;AACN,YAAI,CAAC,QAAQ;AACL,iBAAO;AAAA,QACf;AAEA,cAAMC,QAAO,OAAO,KAAK,MAAM;AAE/B,YAAIA,OAAM;AACF,iBAAOA;AAAA,QACf;AAEA,eAAQ,OAAO,KAAK,MAAM,IAAI,IAAI,eAAe;AAAA,MACzD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,MAYA,YAAY,QAAQ;AACZ,eAAO,KAAK,MAAM,MAAM,EAAE;AAAA,MAClC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,MAYA,WAAW,QAAQ;AACX,eAAO,KAAK,MAAM,MAAM,EAAE;AAAA,MAClC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,MAYA,UAAU,QAAQ;AACV,eAAO,KAAK,MAAM,MAAM,EAAE;AAAA,MAClC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,MAYA,gBAAgB,QAAQ;AAChB,eAAO,KAAK,MAAM,MAAM,EAAE;AAAA,MAClC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,MAYA,YAAY,QAAQ;AACZ,eAAO,KAAK,MAAM,MAAM,EAAE;AAAA,MAClC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,MAYA,OAAO,QAAQ;AACP,eAAO,KAAK,MAAM,MAAM,EAAE;AAAA,MAClC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,MAYA,wBAAwB,QAAQ;AACxB,YAAI;AACJ,YAAI,UAAU;AAEd,eAAQ,YAAY,KAAK,MAAM,OAAO,EAAE,WAAY;AAC5C,oBAAU;AAAA,QAClB;AAEA,eAAO;AAAA,MACf;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,MAmBA,UAAU,QAAQ,SAAS;AACnB,cAAM,WAAW,WAAW,QAAQ;AAEpC,YAAI,WAAW,UAAU;AACjB,iBAAO;AAAA,QACf;AAEA,cAAM,kBAAkB,KAAK,MAAM,MAAM,EAAE;AAE3C,YAAI,iBAAiB;AACb,iBAAO,KAAK,wBAAwB,eAAe;AAAA,QAC3D;AAGA,eAAO,KAAK,MAAM,MAAM,EAAE;AAAA,MAClC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,MAoBA,UAAU,QAAQ,SAAS;AACnB,cAAM,WAAW,WAAW,QAAQ;AACpC,cAAM,eAAe,WAAW,QAAQ;AAExC,cAAM,aAAa,CAAC,gBAAgB,KAAK,MAAM,MAAM,EAAE;AAEvD,YAAI,YAAY;AACR,iBAAO;AAAA,QACf;AAEA,YAAI,UAAU;AAEd,WAAG;AACK,cAAI,YAAY,UAAU;AAClB,mBAAO;AAAA,UACf;AAEA,gBAAM,cAAc,KAAK,MAAM,OAAO,EAAE;AAExC,cAAI,aAAa;AACT,mBAAO;AAAA,UACf;AAEA,oBAAU,KAAK,MAAM,OAAO,EAAE;AAAA,QACtC,SAAS;AAET,eAAO;AAAA,MACf;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,MAkBA,gBAAgB,QAAQ,SAAS;AACzB,cAAM,QAAW,WAAW,QAAQ,SAAU,CAAC;AAC/C,cAAMC,UAAW,WAAW,QAAQ,UAAW;AAC/C,cAAM,UAAW,WAAW,QAAQ,WAAY;AAEhD,cAAM,aAAa,KAAK,MAAM,MAAM;AACpC,YAAI,SAAS,WAAW;AACxB,YAAIC,SAAQ;AAEZ,eAAO,QAAQ;AACP,gBAAMF,QAAO,KAAK,MAAM,MAAM;AAC9B,UAAAA,MAAK,eAAe,YAAYE,MAAK;AAErC,cAAID,QAAO,KAAK,SAAS,MAAM,GAAG;AAC1B,kBAAM,KAAK,MAAM;AAAA,UACzB;AAEA,mBAASD,MAAK;AACd,YAAEE;AAAA,QACV;AAEA,eAAO;AAAA,MACf;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,MAkBA,iBAAiB,QAAQ,SAAS;AAC1B,cAAM,QAAW,WAAW,QAAQ,SAAU,CAAC;AAC/C,cAAMD,UAAW,WAAW,QAAQ,UAAW;AAC/C,cAAM,UAAW,WAAW,QAAQ,WAAY;AAEhD,YAAI,WAAW;AAEf,eAAO,UAAU;AACT,cAAIA,QAAO,KAAK,SAAS,QAAQ,GAAG;AAC5B,kBAAM,KAAK,QAAQ;AAAA,UAC3B;AACA,qBAAW,KAAK,MAAM,QAAQ,EAAE;AAAA,QACxC;AAEA,eAAO;AAAA,MACf;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,MAkBA,YAAYE,OAAM,SAAS;AACnB,cAAM,QAAW,WAAW,QAAQ,SAAU,CAAC;AAC/C,cAAMF,UAAW,WAAW,QAAQ,UAAW;AAC/C,cAAM,UAAW,WAAW,QAAQ,WAAY;AAEhD,YAAI,SAASE;AAEb,eAAO,QAAQ;AACP,cAAIF,QAAO,KAAK,SAAS,MAAM,GAAG;AAC1B,kBAAM,KAAK,MAAM;AAAA,UACzB;AACA,mBAAS,KAAK,UAAU,QAAQ,EAAC,MAAME,MAAI,CAAC;AAAA,QACpD;AAEA,eAAO;AAAA,MACf;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,MAcA,iBAAiB,QAAQ,SAAS;AAC1B,cAAM,UAAU,WAAW,QAAQ;AACnC,cAAM,aAAa,KAAK,MAAM,MAAM;AAEpC,eAAO,IAAI;AAAA,UACH;AAAA,UACA;AAAA,UACA,UAAU,WAAW,YAAY,WAAW;AAAA,UAC5C,UAAU,aAAa,OAAO,aAAa;AAAA,QACnD;AAAA,MACR;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,MAYA,yBAAyB,QAAQ;AACzB,eAAO,IAAI;AAAA,UACH;AAAA,UACA;AAAA,UACA,KAAK,MAAM,MAAM,EAAE;AAAA,UACnB,aAAa;AAAA,QACrB;AAAA,MACR;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,MAYA,qBAAqB,QAAQ;AACrB,eAAO,IAAI;AAAA,UACH;AAAA,UACA;AAAA,UACA,KAAK,MAAM,MAAM,EAAE;AAAA,UACnB,aAAa;AAAA,QACrB;AAAA,MACR;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,MAYA,kBAAkB,QAAQ;AAClB,eAAO,IAAI;AAAA,UACH;AAAA,UACA;AAAA,UACA;AAAA,UACA,aAAa;AAAA,QACrB;AAAA,MACR;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,MAiBA,aAAaA,OAAM,SAAS;AACpB,cAAM,UAAU,WAAW,QAAQ;AAEnC,eAAO,IAAI;AAAA,UACH;AAAA,UACAA;AAAA,UACA,UAAU,KAAK,wBAAwBA,KAAI,IAAIA;AAAA,UAC/C,UAAU,aAAa,YAAY,aAAa;AAAA,QACxD;AAAA,MACR;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,MAaA,MAAM,OAAO;AACL,cAAM,YAAY,KAAK,MAAM,KAAK;AAClC,cAAM,aAAa,KAAK,MAAM,UAAU,MAAM;AAE9C,YAAI,CAAC,YAAY;AAIT,iBAAO;AAAA,QACf;AAEA,YAAI,eAAe,UAAU,eAAe,UAAU;AAEtD,YAAI,gBAAgB,GAAG;AACf,iBAAO;AAAA,QACf;AAEA,uBAAe;AACf,YAAI,SAAS,WAAW;AAExB,YAAI,WAAW,sBAAsB;AAC7B,gBAAM,iBAAiB,KAAK,MAAM,WAAW,oBAAoB;AACjE,mBAAS,eAAe;AACxB,yBAAe,eAAe,eAAe,UAAU,IAAI;AAAA,QACnE;AAEA,eAAO,QAAQ;AACP,gBAAMH,QAAO,KAAK,MAAM,MAAM;AAC9B,UAAAA,MAAK,eAAe,YAAY,YAAY;AAE5C,cAAI,WAAW,OAAO;AACd;AAAA,UACR;AAEA,YAAE;AACF,mBAASA,MAAK;AAAA,QACtB;AAEA,mBAAW,uBAAuB;AAElC,eAAO;AAAA,MACf;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,MAaA,cAAc,QAAQ;AACd,cAAM,aAAa,KAAK,MAAM,MAAM;AAEpC,YAAI,CAAC,WAAW,WAAW;AACnB,iBAAO;AAAA,QACf;AAEA,eAAO,KAAK,MAAM,WAAW,SAAS,IAAI;AAAA,MAClD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,MA4BA,oBAAoB,MAAM,OAAO;AAKzB,YAAI,SAAS,OAAO;AACZ,iBAAO;AAAA,QACf;AAIA,cAAM,gBAAgB,CAAC;AAAG;AAClB,cAAI,eAAe;AAEnB,iBAAO,cAAc;AACb,gBAAI,iBAAiB,OAAO;AACpB,qBAAO,aAAa,WAAW,aAAa;AAAA,YAEpD;AAEA,0BAAc,KAAK,YAAY;AAC/B,2BAAe,KAAK,OAAO,YAAY;AAAA,UAC/C;AAAA,QACR;AAGA,cAAM,iBAAiB,CAAC;AAAG;AACnB,cAAI,gBAAgB;AAEpB,iBAAO,eAAe;AACd,gBAAI,kBAAkB,MAAM;AACpB,qBAAO,aAAa,eAAe,aAAa;AAAA,YACxD;AAEA,2BAAe,KAAK,aAAa;AACjC,4BAAgB,KAAK,OAAO,aAAa;AAAA,UACjD;AAAA,QACR;AAGA,cAAMG,QAAO,kBAAkB,eAAe,CAAC;AAE/C,YAAI,CAACA,SAAQA,UAAS,kBAAkB,gBAAgB,CAAC,GAAG;AAEpD,iBAAO,aAAa;AAAA,QAC5B;AAGA,YAAI,sBAAsB;AAC1B,cAAM,qBAAqB,KAAK,IAAI,cAAc,QAAQ,eAAe,MAAM;AAE/E,iBAASC,MAAI,GAAGA,MAAI,oBAAoB,EAAEA,KAAG;AACrC,gBAAM,eAAgB,kBAAkB,eAAeA,GAAC;AACxD,gBAAM,gBAAgB,kBAAkB,gBAAgBA,GAAC;AAEzD,cAAI,iBAAiB,eAAe;AAC5B;AAAA,UACR;AAEA,gCAAsBA;AAAA,QAC9B;AAGA,cAAM,YAAa,KAAK,MAAM,kBAAkB,eAAe,sBAAsB,CAAC,CAAC;AACvF,cAAM,aAAa,KAAK,MAAM,kBAAkB,gBAAgB,sBAAsB,CAAC,CAAC;AAExF,eAAO,aAAa,YACV,aAAa,YACb,aAAa;AAAA,MAC/B;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,MAaA,OAAO,cAAc;AACb,cAAM,aAAa,KAAK,MAAM,YAAY;AAC1C,cAAM,aAAa,KAAK,MAAM,WAAW,MAAM;AAC/C,cAAM,WAAW,KAAK,MAAM,WAAW,eAAe;AACtD,cAAM,WAAW,KAAK,MAAM,WAAW,WAAW;AAElD,YAAI,YAAY;AACR,cAAI,WAAW,eAAe,cAAc;AACpC,uBAAW,aAAa,WAAW;AAAA,UAC3C;AAEA,cAAI,WAAW,cAAc,cAAc;AACnC,uBAAW,YAAY,WAAW;AAAA,UAC1C;AAAA,QACR;AAEA,YAAI,UAAU;AACN,mBAAS,cAAc,WAAW;AAAA,QAC1C;AAEA,YAAI,UAAU;AACN,mBAAS,kBAAkB,WAAW;AAAA,QAC9C;AAEA,mBAAW,SAAS;AACpB,mBAAW,kBAAkB;AAC7B,mBAAW,cAAc;AACzB,mBAAW,cAAc;AACzB,mBAAW,qBAAqB;AAEhC,YAAI,YAAY;AACR,qBAAW,gBAAgB;AAAA,QACnC;AAEA,eAAO;AAAA,MACf;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,MAeA,aAAa,iBAAiB,WAAW;AACjC,cAAM,gBAAgB,KAAK,MAAM,eAAe;AAChD,cAAM,WAAW,KAAK,MAAM,cAAc,eAAe;AACzD,cAAM,UAAU,KAAK,MAAM,SAAS;AACpC,cAAM,aAAa,KAAK,MAAM,cAAc,MAAM;AAElD,YAAI,QAAQ,YAAY;AAChB,gBAAM,MAAM,qEAAqE;AAAA,QACzF;AAEA,gBAAQ,SAAS,cAAc;AAC/B,gBAAQ,kBAAkB,cAAc;AACxC,gBAAQ,cAAc;AACtB,sBAAc,kBAAkB;AAEhC,YAAI,UAAU;AACN,mBAAS,cAAc;AAAA,QAC/B;AAEA,YAAI,cAAc,WAAW,eAAe,iBAAiB;AACrD,qBAAW,aAAa;AAAA,QAChC;AAEA,YAAI,YAAY;AACR,qBAAW,gBAAgB;AAAA,QACnC;AAEA,eAAO;AAAA,MACf;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,MAeA,YAAY,iBAAiB,WAAW;AAChC,cAAM,gBAAgB,KAAK,MAAM,eAAe;AAChD,cAAM,WAAW,KAAK,MAAM,cAAc,WAAW;AACrD,cAAM,UAAU,KAAK,MAAM,SAAS;AACpC,cAAM,aAAa,KAAK,MAAM,cAAc,MAAM;AAElD,YAAI,QAAQ,YAAY;AAChB,gBAAM,MAAM,qEAAqE;AAAA,QACzF;AAEA,gBAAQ,SAAS,cAAc;AAC/B,gBAAQ,kBAAkB;AAC1B,gBAAQ,cAAc,cAAc;AACpC,sBAAc,cAAc;AAE5B,YAAI,UAAU;AACN,mBAAS,kBAAkB;AAAA,QACnC;AAEA,YAAI,cAAc,WAAW,cAAc,iBAAiB;AACpD,qBAAW,YAAY;AAAA,QAC/B;AAEA,YAAI,YAAY;AACR,qBAAW,gBAAgB;AAAA,QACnC;AAEA,eAAO;AAAA,MACf;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,MAeA,aAAa,iBAAiB,WAAW;AACjC,cAAM,gBAAgB,KAAK,MAAM,eAAe;AAChD,cAAM,UAAU,KAAK,MAAM,SAAS;AAEpC,YAAI,QAAQ,YAAY;AAChB,gBAAM,MAAM,qEAAqE;AAAA,QACzF;AAEA,YAAI,cAAc,aAAa;AACvB,eAAK,aAAa,cAAc,YAAY,SAAS;AAAA,QAC7D,OACK;AACG,kBAAQ,SAAS;AACjB,wBAAc,aAAa;AAC3B,wBAAc,YAAY;AAC1B,wBAAc,gBAAgB;AAAA,QACtC;AAEA,eAAO;AAAA,MACf;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,MAeA,YAAY,iBAAiB,WAAW;AAChC,cAAM,gBAAgB,KAAK,MAAM,eAAe;AAChD,cAAM,UAAU,KAAK,MAAM,SAAS;AAEpC,YAAI,QAAQ,YAAY;AAChB,gBAAM,MAAM,qEAAqE;AAAA,QACzF;AAEA,YAAI,cAAc,aAAa;AACvB,eAAK,YAAY,cAAc,WAAW,SAAS;AAAA,QAC3D,OACK;AACG,kBAAQ,SAAS;AACjB,wBAAc,aAAa;AAC3B,wBAAc,YAAY;AAC1B,wBAAc,gBAAgB;AAAA,QACtC;AAEA,eAAO;AAAA,MACf;AAAA,IACR;AAEA,WAAO,UAAU;AACjB,eAAW,eAAe;AAAA;AAAA;;;ACr0B1B,IAcA;AAdA;;AAGA,IAAAC;AACA,IAAAA;AACA;AACA,IAAAA;AACA,IAAAA;AAOA,yBAAuB;;;;;ACdvB,IASa;AATb;;;AASM,IAAO,sBAAP,MAA0B;MAAhC,cAAA;AACU,aAAA,iBAAwC,CAAA;AACxC,aAAA,eAAe;AAEf,aAAA,6BAAqC;AAErC,aAAA,2BAAmC;AAEnC,aAAA,2BAA8C,CAAA;MAiJxD;MA/IS,MAAM,0BACX,SACA,YAAmB;AAEnB,cAAM,oBAA4B,gBAAa,MAAK;AACpD,cAAM,gBAAmC;UACvC,eAAe;UACf;UACA,SAAS;UACT,MAAM;;AAER,aAAK,eAAe,KAAK,aAAa;AACtC,aAAK,sBAAqB;AAC1B,eAAO,kBAAkB;MAC3B;MAEO,MAAM,6BACX,SACA,YAAmB;AAEnB,cAAM,oBAA4B,gBAAa,MAAK;AACpD,cAAM,gBAAmC;UACvC,eAAe;UACf;UACA,SAAS;UACT,MAAM;;AAER,aAAK,eAAe,KAAK,aAAa;AACtC,aAAK,sBAAqB;AAC1B,eAAO,kBAAkB;MAC3B;;;;;MAKO,8BAA8B,aAAmB;AACtD,YAAI,CAAC,OAAO,SAAS,WAAW,KAAK,cAAc,GAAG;AACpD,gBAAM,IAAI,MAAM,yDAAyD;QAC3E;AACA,aAAK,6BAA6B;MACpC;;MAEO,gCAA6B;AAClC,eAAO,KAAK;MACd;;MAEO,6BAA0B;AAC/B,eAAO,KAAK;MACd;;MAEO,8BAA2B;AAChC,eAAO,KAAK,yBAAyB;MACvC;MAEQ,MAAM,wBAAqB;AACjC,YAAI,KAAK,cAAc;AACrB;QACF;AACA,aAAK,eAAe;AAEpB,eAAO,KAAK,eAAe,SAAS,GAAG;AACrC,gBAAM,cAAc,KAAK,eAAe,CAAC;AACzC,cAAI,YAAY,SAAS,aAAa;AACpC,kBAAM,KAAK,qBAAqB,WAAW;AAC3C,iBAAK,eAAe,MAAK;UAC3B,OAAO;AAEL,kBAAM,oBAA2C,CAAA;AACjD,mBAAO,KAAK,eAAe,SAAS,KAAK,KAAK,eAAe,CAAC,EAAE,SAAS,gBAAgB;AACvF,gCAAkB,KAAK,KAAK,eAAe,MAAK,CAAG;YACrD;AACA,kBAAM,KAAK,yBAAyB,iBAAiB;UACvD;QACF;AACA,aAAK,eAAe;MACtB;MAEQ,MAAM,qBAAqB,MAAyB;AAC1D,YAAI;AACF,cAAI,KAAK,SAAS;AAChB,kBAAM,SAAS,MAAM,QAAQ,KAAK;cAChC,KAAK,cAAa;cACVC,iBAAW,SAAS,KAAK,OAAO,EAAE,KAAK,MAAK;AAClD,sBAAM,IAAI,MAAM,iBAAiB;cACnC,CAAC;aACF;AACD,iBAAK,kBAAkB,QAAQ,MAAM;UACvC,OAAO;AACL,kBAAM,SAAS,MAAM,KAAK,cAAa;AACvC,iBAAK,kBAAkB,QAAQ,MAAM;UACvC;QACF,SAAS,OAAO;AACd,eAAK,kBAAkB,OAAO,KAAK;QACrC;MACF;MAEQ,MAAM,yBAAyB,OAA4B;AACjE,cAAM,WAAW,MAAM,IAAI,OAAO,SAAQ;AAExC,gBAAM,KAAK,wBAAuB;AAClC,cAAI;AAEF,gBAAI,KAAK,SAAS;AAChB,oBAAM,SAAS,MAAM,QAAQ,KAAK;gBAChC,KAAK,cAAa;gBACVA,iBAAW,SAAS,KAAK,OAAO,EAAE,KAAK,MAAK;AAAG,wBAAM,IAAI,MAAM,iBAAiB;gBAAG,CAAC;eAC7F;AACD,mBAAK,kBAAkB,QAAQ,MAAM;YACvC,OAAO;AACL,oBAAM,SAAS,MAAM,KAAK,cAAa;AACvC,mBAAK,kBAAkB,QAAQ,MAAM;YACvC;UACF,SAAS,OAAO;AACd,iBAAK,kBAAkB,OAAO,KAAK;UACrC;AACE,iBAAK,wBAAuB;UAC9B;QACF,CAAC;AACD,cAAM,QAAQ,IAAI,QAAQ;MAC5B;;;;MAIQ,0BAAuB;AAC7B,YAAI,KAAK,2BAA2B,KAAK,4BAA4B;AACnE,eAAK;AACL,iBAAO,QAAQ,QAAO;QACxB;AACA,eAAO,IAAI,QAAQ,CAACC,aAAW;AAC7B,eAAK,yBAAyB,KAAK,MAAK;AACtC,iBAAK;AACL,YAAAA,SAAO;UACT,CAAC;QACH,CAAC;MACH;;MAEQ,0BAAuB;AAC7B,aAAK;AACL,cAAMC,QAAO,KAAK,yBAAyB,MAAK;AAChD,YAAIA,OAAM;AACR,UAAAA,MAAI;QACN;MACF;;;;;;ACjKF,IAEa;AAFb;;;AAEM,IAAO,qBAAP,MAAyB;MAM7B,YAAY,gBAAwB,IAAE;AAH/B,aAAA,WAAW,IAAYC,iBAAQ,KAAK,QAAO;AAC1C,aAAA,iBAAiB,IAAYA,iBAAQ,KAAK,QAAO;AAGvD,aAAK,OAAO,CAAA;AACZ,aAAK,gBAAgB;MACvB;MAEA,KAAK,MAAO;AACV,aAAK,KAAK,KAAK,IAAI;AACnB,aAAK,eAAe,KAAK,gBAAgB;AAEzC,cAAM,iBAAiB,KAAK,oBAAmB;AAC/C,YAAI,gBAAgB;AAClB,eAAK,SAAS,KAAK,UAAU;QAC/B;AACA,eAAO;MACT;MAEA,QAAK;AACH,cAAM,OAAO,KAAK,KAAK,MAAK;AAC5B,YAAI,KAAK,oBAAmB,GAAI;AAC9B,eAAK,SAAS,KAAK,UAAU;QAC/B;AACA,eAAO;MACT;MAEA,sBAAmB;AACjB,eAAO,KAAK,KAAK,SAAS,KAAK;MACjC;MAEO,gBAAa;AAClB,eAAO,KAAK,KAAK,SAAS;MAC5B;MAEA,eAAY;AACV,eAAO,IAAI,QAAc,CAACC,aAAW;AACnC,cAAI,KAAK,oBAAmB,GAAI;AAC9B,YAAAA,SAAO;UACT,OAAO;AACL,kBAAM,eAAe,KAAK,SAAS,UAAU,MAAK;AAChD,2BAAa,YAAW;AACxB,cAAAA,SAAO;YACT,CAAC;UACH;QACF,CAAC;MACH;MAEA,eAAY;AACV,eAAO,IAAI,QAAc,CAACA,aAAW;AACnC,cAAI,KAAK,KAAK,SAAS,GAAG;AACxB,YAAAA,SAAO;UACT,OAAO;AACL,kBAAM,eAAe,KAAK,eAAe,UAAU,MAAK;AACtD,2BAAa,YAAW;AACxB,cAAAA,SAAO;YACT,CAAC;UACH;QACF,CAAC;MACH;;;;;;AChEF,IAUa;AAVb;;AAKA;AAKM,IAAO,UAAP,MAAO,SAAO;MAApB,cAAA;AACU,aAAA,YAAkC,CAAA;MAqF5C;MAnFS,YAAY,QAAc;AAC/B,eAAO,KAAK,UAAU,MAAM,IAAI,QAAQ;MAC1C;MAEO,SACL,QACA,WACA,YAEC;AAED,YAAI,KAAK,YAAY,MAAM,KAAM,cAAc,WAAW,OAAQ;AAChE,eAAK,UAAU,MAAM,IAAI;AACzB,iBAAO;QACT,OAAO;AACL,iBAAO;QACT;MACF;MAEO,SAAS,QAAc;AAC5B,eAAO,KAAK,UAAU,MAAM;MAC9B;MAEO,cAAc,QAAc;AACjC,cAAM,cAAc,KAAK,SAAS,MAAM;AACxC,eAAO,KAAK,UAAU,MAAM;AAC5B,eAAO;MACT;MAEO,UAAO;AACZ,cAAMC,QAAiB,CAAA;AACvB,mBAAW,UAAU,KAAK,WAAW;AACnC,cAAI,KAAK,UAAU,MAAM,GAAG;AAC1B,YAAAA,MAAK,KAAK,MAAM;UAClB;QACF;AACA,eAAOA;MACT;MAEO,QAAK;AACV,aAAK,YAAY,CAAA;MACnB;;;;MAKO,OAAO,YAAsB;AAClC,cAAM,kBAAkB,IAAI,SAAO;AACnC,mBAAWC,QAAO,KAAK,QAAO,GAAI;AAChC,0BAAgB,SAASA,MAAK,KAAK,SAASA,IAAG,CAAC;QAClD;AAEA,mBAAWA,QAAO,WAAW,QAAO,GAAI;AACtC,0BAAgB,SAASA,MAAK,WAAW,SAASA,IAAG,GAAG;YACtD,OAAO;WACR;QACH;AAEA,eAAO;MACT;;;;;;MAOO,gBAAgB,YAAsB;AAC3C,mBAAWA,QAAO,WAAW,QAAO,GAAI;AACtC,eAAK,SAASA,MAAK,WAAW,SAASA,IAAG,GAAG;YAC3C,OAAO;WACR;QACH;MACF;MAEO,MAAM,KAAK,iBAAoD;AACpE,mBAAWA,QAAO,KAAK,QAAO,GAAI;AAChC,gBAAM,OAAO,KAAK,SAASA,IAAG;AAC9B,gBAAM,qBAAqB,MAAM,gBAAgB,IAAI;AACrD,cAAI,oBAAoB;AACtB,mBAAO;UACT;QACF;MACF;;;;;;AC/FF,IAGa,KA4BA;AA/Bb;;;AACA;AAEO,IAAM,MAAM,CAACC,UAAiB,UAAS;AAC5C,aAAO,GAAGA,OAAM,cAAc,QAAQ,SAAS,CAACC,QAAK;AACnD,cAAMC,MAAK,KAAK,OAAM,IAAK,KAAM;AACjC,cAAMC,KAAIF,QAAM,MAAMC,MAAKA,MAAI,IAAO;AACtC,eAAOC,GAAE,SAAS,EAAE;MACtB,CAAC;IACH;AAsBM,IAAO,YAAP,MAAO,WAAS;;;;MASpB,cAAA;AARQ,aAAA,UAAU,IAAI,QAAO;AAGtB,aAAA,eAAe,IAAYC,iBAAQ,KAAK,QAAO;MAOtD;;;;;MAMA,gBAAgB,cAAsB,WAAY;AAChD,aAAK,QAAQ,SAAS,cAAc,SAAS;MAC/C;;;;;MAMO,gBAAgB,cAAoB;AACzC,eAAO,KAAK,QAAQ,SAAS,YAAY;MAC3C;;;;;MAMO,mBAAmB,WAAiB;AACzC,cAAM,SAAS,KAAK,gBAAgB,SAAS;MAC/C;;;;;;MAOO,IAAI,WAAY;AAErB,mBAAW,UAAU,KAAK,QAAQ,QAAO,GAAI;AAC3C,gBAAM,SAAS,KAAK,QAAQ,SAAS,MAAM;AAC3C,cAAI,WAAW,WAAW;AACxB,mBAAO;UACT;QACF;AAGA,cAAM,YAAY,IAAI,KAAK;AAC3B,aAAK,gBAAgB,WAAW,SAAS;AACzC,aAAK,aAAa,KAAK;UACrB,WAAW;UACX,SAAS;SACV;AACD,eAAO;MACT;;;;MAKO,SAAS,gBAAmB;AACjC,mBAAW,QAAQ,gBAAgB;AACjC,eAAK,IAAI,IAAI;QACf;MACF;;;;MAKO,eAAe,WAAY;AAChC,eAAO,CAAC,CAAC,KAAK,gBAAgB,SAAS;MACzC;;;;;MAMO,gBAAgB,WAAY;AACjC,YAAI,WAAmB;AACvB,mBAAW,UAAU,KAAK,QAAQ,QAAO,GAAI;AAC3C,cAAI,CAAC,YAAY,KAAK,QAAQ,SAAS,MAAM,MAAM,WAAW;AAC5D,uBAAW;UACb,OAAO;AACL;UACF;QACF;AACA,eAAO;MACT;;;;MAKO,MAAM,KAAK,cAAuC;AACvD,eAAO,KAAK,QAAQ,KAAK,YAAY;MACvC;MAEO,SAAS,cAA2C;AACzD,mBAAW,UAAU,KAAK,QAAQ,QAAO,GAAI;AAC3C,cAAI,aAAa,KAAK,QAAQ,SAAS,MAAM,CAAC,GAAG;AAC/C,mBAAO,KAAK,gBAAgB,MAAM;UACpC;QACF;MACF;;;;MAKO,MAAM,iBAAiB,cAAuC;AACnE,cAAM,eAAe,MAAM,KAAK,KAAK,YAAY;AACjD,YAAI,cAAc;AAChB,eAAK,OAAO,YAAY;QAC1B;AACA,eAAO;MACT;MACO,qBAAqB,cAA2C;AACrE,cAAM,eAAe,KAAK,SAAS,YAAY;AAC/C,YAAI,cAAc;AAChB,eAAK,OAAO,YAAY;QAC1B;AACA,eAAO;MACT;;;;MAKO,MAAM,QAAQ,aAAyC;AAC5D,mBAAW,UAAU,KAAK,QAAQ,QAAO,GAAI;AAC3C,gBAAM,YAAY,KAAK,QAAQ,SAAS,MAAM,CAAC;QACjD;MACF;;;;MAKO,kBAAe;AACpB,cAAMC,QAAO,KAAK,QAAQ,QAAO;AACjC,YAAIA,MAAK,WAAW,GAAG;AACrB,iBAAO;QACT,OAAO;AACL,gBAAM,WAAWA,MAAK,CAAC;AACvB,gBAAM,cAAc,KAAK,QAAQ,cAAc,QAAQ;AACvD,eAAK,aAAa,KAAK;YACrB,WAAW;YACX,SAAS;WACV;AACD,iBAAO;QACT;MACF;;;;MAKO,WAAQ;AACb,cAAM,cAAqB,CAAA;AAC3B,mBAAW,UAAU,KAAK,QAAQ,QAAO,GAAI;AAC3C,sBAAY,KAAK,KAAK,QAAQ,SAAS,MAAM,CAAC;QAChD;AACA,eAAO;MACT;;;;MAKO,UAAO;AACZ,eAAO,KAAK,QAAQ,QAAO,EAAG,WAAW;MAC3C;;;;MAKO,OAAO,WAAY;AACxB,YAAI,KAAK,eAAe,SAAS,GAAG;AAClC,gBAAM,SAAS,KAAK,gBAAgB,SAAS;AAC7C,gBAAM,gBAAgB,KAAK,QAAQ,cAAc,MAAM;AACvD,eAAK,aAAa,KAAK;YACrB,WAAW;YACX,SAAS;WACV;AACD,iBAAO;QACT;AACA,eAAO;MACT;;;;MAKO,OAAI;AACT,mBAAW,UAAU,KAAK,QAAQ,QAAO,GAAI;AAC3C,eAAK,QAAQ,cAAc,MAAM;QACnC;MACF;;;;MAKO,OAAO,cAA0B;AACtC,cAAM,qBAAqB,IAAI,WAAS;AACxC,2BAAmB,QAAQ,gBAAgB,KAAK,OAAO;AACvD,2BAAmB,QAAQ,gBAAgB,aAAa,OAAO;AAC/D,eAAO;MACT;;;;;;MAOO,gBAAgB,cAA0B;AAC/C,aAAK,QAAQ,gBAAgB,aAAa,OAAO;MACnD;;;;;;ACpPF,IASa;AATb;;;AAEA;AAOM,IAAO,WAAP,MAAe;;;;MAiBnB,IAAW,mBAAgB;AACzB,eAAO,KAAK,eAAe,KAAK,gBAAgB;MAClD;;;;MASO,iBAAiB,WAAiC;AACvD,aAAK,eAAe;AACpB,aAAK,oBAAoB,CAAA;AACzB,aAAK,iBAAiB,QAAQ,SAAS;MACzC;;;;MAKA,YACE,gBACA,aACA,mBACA,YAAqD;AAnChD,aAAA,mBAAmB,IAAYC,iBAAU,MAAM,GAAK;AACpD,aAAA,eAAe;AAKf,aAAA,oBAA2B,CAAA;AAS1B,aAAA,mBACN,IAAY,gBAAa,SAAQ;AAC5B,aAAA,qBAAqB,KAAK,iBAAiB;AAoBhD,aAAK,iBAAiB;AACtB,aAAK,mBAAmB;AACxB,aAAK,iBAAiB;AACtB,aAAK,UAAU;AAEf,aAAK,iBAAiB,UAAU,KAAK,MAAK;AACxC,eAAK,QAAO;QACd,CAAC;AACD,YAAI,KAAK,SAAS,sBAAsB;AACtC,UAAQA,iBAAW,SAAS,KAAK,QAAQ,oBAAoB,EAAE,KAAK,KAAK,QAAQ;QACnF;MACF;;;;;;;MASO,UAAO;AACZ,aAAK,eAAe,eAAe,IAAI;AACvC,YAAI,CAAC,KAAK,gBAAgB,KAAK,QAAQ,qBAAqB;AAC1D,eAAK,iBAAiB,KAAK,QAAQ,mBAAmB;QACxD;MACF;;;;MAKO,WAAQ;AACb,aAAK,iBAAiB,MAAK;MAC7B;;;;MAKO,QAAK;AACV,aAAK,iBAAiB,MAAK;MAC7B;;;;;;AC3FF,IAoBa;AApBb;;AAUA;AACA;AACA;AAQM,IAAO,cAAP,MAAkB;MAatB,YACE,mBACA,aAAkC,CAAA,GAAE;AAT9B,aAAA,oBAAoB,IAAI,UAAS;AAmDlC,aAAA,qBAAqB,IAAYC,iBAAQ,iBAAgB;AAxC9D,aAAK,iBAAiB;AACtB,aAAK,UAAU;MACjB;;;;;MAMO,MAAM,YACX,YACA,wBAA+C;AAE/C,cAAM,mBAAmB,KAAK,eAAe,UAAU;AACvD,YAAI;AACJ,cAAM,cAAc,IAAI,SACtB,MACA,YACA,KAAK,gBACL;UACE,sBAAsB,KAAK,QAAQ;UACnC,qBAAqB;SACtB;AAEH,YAAI,iBAAiB;AACrB,cAAM,KAAK,kBAAkB,QAAQ,CAAC,gBAAe;AACnD,cAAI,CAAC,kBAAkB,YAAY,qBAAqB,YAAY,kBAAkB;AACpF,oBAAQ,IAAI,QAAQ,+BAA+B,YAAY,gBAAgB,EAAE;AACjF,6BAAiB;AACjB,6BAAiB;AACjB,2BAAe,MAAK;UACtB;QACF,CAAC;AACD,YAAI,CAAC,gBAAgB;AACnB,2BAAiB;AACjB,eAAK,kBAAkB,IAAI,cAAc;QAC3C;AACA,aAAK,mBAAmB,KAAK,cAAc;AAC3C,eAAO;MACT;;;;MAOO,eAAe,aAA2D;AAC/E,cAAM,mBAAmB,KAAK,kBAAkB,qBAAqB,CAAC,iBAAgB;AACpF,iBAAO,YAAY,qBAAqB,aAAa;QACvD,CAAC;MACH;;;;MAKO,cAAc,WAAuB;AAC1C,cAAM,mBAAmB,KAAK,eAAe,SAAS;AACtD,eAAO,KAAK,sBAAsB,gBAAgB;MACpD;;;;;MAMO,sBAAsB,qBAA2B;AACtD,cAAM,gBAAgB,KAAK,kBAAkB,SAAS,CAAC,aAAY;AACjE,iBAAO,SAAS,qBAAqB;QACvC,CAAC;AACD,YAAI,eAAe;AACjB,iBAAO;QACT,OAAO;AACL,iBAAO;QACT;MACF;;;;;MAMO,mBAAmB,YAAwB;AAChD,cAAM,iBAAiB,KAAK,aAAa,UAAU;AACnD,YAAI,gBAAgB;AAClB,yBAAe,SAAQ;QACzB;MACF;;;;;MAMO,aAAa,YAAwB;AAC1C,cAAM,mBAAmB,KAAK,eAAe,UAAU;AACvD,cAAM,WAAW,KAAK,kBAAkB,SAAS,CAAC,gBAAe;AAC/D,iBAAO,YAAY,qBAAqB;QAC1C,CAAC;AACD,eAAO;MACT;;;;;;ACpIF,IAEa;AAFb;;;AAEM,IAAO,eAAP,MAAmB;MAGvB,YAAY,UAAgB;AAF5B,aAAA,QAAa,CAAA;AAGX,aAAK,aAAa;MACpB;MAEA,OAAO,WAAY;AACjB,aAAK,MAAM,QAAQ,SAAS;AAC5B,YAAI,KAAK,MAAM,SAAS,KAAK,YAAY;AACvC,eAAK,MAAM,SAAS,KAAK;QAC3B;MACF;MAEA,QAAQ,gBAAmB;AACzB,iBAAS,aAAa,gBAAgB;AACpC,eAAK,OAAO,SAAS;QACvB;MACF;MAEA,SAAS,UAAgB;AACvB,aAAK,aAAa;AAClB,YAAI,KAAK,MAAM,SAAS,KAAK,YAAY;AACvC,eAAK,MAAM,SAAS,KAAK;QAC3B;MACF;MAEA,aAAU;AACR,YAAI,OAAO,KAAK,MAAM,CAAC,MAAM,UAAU;AACrC,cAAI,MAAM;AACV,mBAAS,eAAe,KAAK,OAAO;AAClC,gBAAI,iBAAsB;AAC1B,kBAAM,MAAM;UACd;AACA,iBAAO,MAAM,KAAK,MAAM;QAC1B,OAAO;AACL,iBAAO;QACT;MACF;;;;;;ACxCF,IAIa;AAJb;;;AAEA;AAEM,IAAO,cAAP,MAAkB;MAEtB,cAAA;AADA,aAAA,qBAAqB,IAAI,UAAS;MAGlC;;;;;MAMA,cAAc,WAAY;AACxB,YAAI,CAAC,KAAK,mBAAmB,eAAe,SAAS,GAAG;AACtD,eAAK,mBAAmB,IAAI,SAAS;AACrC,iBAAO;QACT,OAAO;AACL,iBAAO;QACT;MACF;;;;;;ACrBF,IAQa;AARb;;;AAQM,IAAO,YAAP,MAAgB;MAGpB,cAAA;AAFQ,aAAA,eAAyB,CAAA;AACzB,aAAA,iCAAqD,CAAA;MAC9C;;;;MAIf,UAAU,WAAiB;AACzB,aAAK,aAAa,KAAK,SAAS;AAChC,aAAK,cAAa;MACpB;;;;MAKA,eAAe,gBAAwB;AACrC,mBAAW,cAAc,gBAAgB;AACvC,eAAK,UAAU,UAAU;QAC3B;MACF;;;;MAKA,aAAa,WAAiB;AAC5B,mBAAW,UAAU,KAAK,cAAc;AACtC,cAAI,KAAK,aAAa,MAAM,MAAM,WAAW;AAC3C,iBAAK,aAAa,OAAO,SAAS,MAAM,GAAG,CAAC;UAC9C;QACF;AACA,aAAK,cAAa;MACpB;;;;MAKA,OAAI;AACF,aAAK,eAAe,CAAA;AACpB,aAAK,cAAa;MACpB;;;;MAKO,YAAY,WAAiB;AAClC,eAAO,KAAK,aAAa,QAAQ,SAAS,MAAM;MAClD;;;;MAKO,eAAe,oBAA0B;AAC9C,cAAM,qBAAqB,IAAYC,iBAAW,WAAW,kBAAkB;AAC/E,YAAI,aAAsB;AAC1B,mBAAW,cAAc,KAAK,cAAc;AAC1C,cAAI,mBAAmB,MAAM,UAAU,GAAG;AACxC,yBAAa;UACf;QACF;AACA,eAAO;MACT;;;;MAKO,eAAY;AACjB,eAAO,KAAK,aAAa,WAAW;MACtC;;;;MAKO,iBAAc;AACnB,cAAM,cAAwB,CAAA;AAC9B,mBAAW,cAAc,KAAK,cAAc;AAC1C,sBAAY,KAAK,UAAU;QAC7B;AACA,eAAO;MACT;;;;;MAOO,kBAAkB,aAA+B,aAAuB;AAC7E,cAAM,eAAuB,gBAAa,MAAK;AAC/C,aAAK,+BAA+B,KAAK,MAAK;AAC5C,gBAAM,SAAS,YAAY,KAAK,eAAc,CAAE;AAChD,cAAI,WAAW,MAAM;AACnB,gBAAI,aAAa;AACf,0BAAW;YACb;AACA,yBAAa,QAAO;UACtB;AACA,iBAAO;QACT,CAAC;AACD,aAAK,cAAa;AAClB,eAAO,aAAa;MACtB;;;;MAKQ,gBAAa;AACnB,cAAM,gBAAgB,KAAK,+BAA+B,OAAO,CAAC,gBAAe;AAC/E,iBAAO,CAAC,YAAW;QACrB,CAAC;AACD,aAAK,iCAAiC;MACxC;;;;;;ACrHF,IAOa;AAPb;;;AAOM,IAAO,iBAAP,MAAqB;MAIzB,YAAY,YAAsC;AAF1C,aAAA,eAAoB,CAAA;AAG1B,aAAK,UAAU;MACjB;MAGQ,yBAAsB;AAC5B,cAAM,sBAAsB,MAAK;AAC/B,eAAK,mBAAmB,IAAYC,iBAAU,MAAM,KAAK,QAAQ,2BAA2B;AAC5F,eAAK,iBAAiB,UAAU,KAAK,MAAK;AACxC,kBAAM,yBAAyB,KAAK;AACpC,gBAAI,uBAAuB,WAAW,GAAG;AACvC,mBAAK,mBAAmB;AACxB;YACF;AACA,iBAAK,eAAe,CAAA;AACpB,gCAAmB;AACnB,iBAAK,QAAQ,uBAAuB,sBAAsB;UAC5D,CAAC;AACD,eAAK,iBAAiB,MAAK;QAC7B;AACA,YAAI,CAAC,KAAK,kBAAkB;AAC1B,8BAAmB;QACrB;MACF;MAEO,IAAI,gBAAiB;AAC1B,aAAK,aAAa,KAAK,cAAc;AACrC,aAAK,uBAAsB;MAC7B;;;;;;ACvCF,IAEa;AAFb;;;AAEM,IAAO,OAAP,MAAW;MAEf,cAAA;AACE,aAAK,aAAa,IAAY,mBAAAC,QAAU;MAC1C;;;;;;;;MAUA,WAAW,WAAY;AACrB,eAAO,KAAK,WAAW,WAAW,SAAS;MAC7C;MAEA,YAAY,WAAY;AACtB,eAAO,KAAK,WAAW,YAAY,SAAS;MAC9C;MAEA,WAAW,WAAY;AACrB,eAAO,KAAK,WAAW,WAAW,SAAS;MAC7C;MAEA,UAAU,WAAY;AACpB,eAAO,KAAK,WAAW,UAAU,SAAS;MAC5C;MAEA,gBAAgB,WAAY;AAC1B,eAAO,KAAK,WAAW,gBAAgB,SAAS;MAClD;MAEA,YAAY,WAAY;AACtB,eAAO,KAAK,WAAW,YAAY,SAAS;MAC9C;MAEA,OAAO,WAAY;AACjB,eAAO,KAAK,WAAW,OAAO,SAAS;MACzC;MAEA,wBAAwB,WAAY;AAClC,eAAO,KAAK,WAAW,wBAAwB,SAAS;MAC1D;MAEA,UAAU,WAAc,YAAgB;AACtC,eAAO,KAAK,WAAW,UAAU,WAAW,UAAU;MACxD;MAEA,UAAU,QAAW,YAAe;AAClC,eAAO,KAAK,WAAW,UAAU,QAAQ,UAAU;MACrD;MAEA,gBAAgB,WAAc,YAAe;AAC3C,eAAO,KAAK,WAAW,gBAAgB,WAAW,UAAU;MAC9D;MAEA,iBAAiB,WAAc,YAAe;AAC5C,eAAO,KAAK,WAAW,iBAAiB,WAAW,UAAU;MAC/D;MAEA,YAAY,SAAY,YAAe;AACrC,eAAO,KAAK,WAAW,YAAY,SAAS,UAAU;MACxD;MAEA,iBAAiB,WAAc,YAAe;AAC5C,eAAO,KAAK,WAAW,iBAAiB,WAAW,UAAU;MAC/D;MAEA,yBAAyB,WAAY;AACnC,eAAO,KAAK,WAAW,yBAAyB,SAAS;MAC3D;MAEA,qBAAqB,WAAY;AAC/B,eAAO,KAAK,WAAW,qBAAoB;MAC7C;MAEA,kBAAkB,WAAY;AAC5B,aAAK,WAAW,kBAAiB;MACnC;MAEA,aAAa,SAAY,YAAe;AACtC,eAAO,KAAK,WAAW,aAAa,OAAO;MAC7C;MAEA,MAAM,UAAW;AACf,eAAO,KAAK,WAAW,MAAM,QAAQ;MACvC;MAEA,cAAc,WAAY;AACxB,eAAO,KAAK,WAAW,cAAc,SAAS;MAChD;MAEA,oBAAoB,SAAY,UAAW;AACzC,eAAO,KAAK,oBAAoB,SAAS,QAAQ;MACnD;MAEA,OAAO,iBAAkB;AACvB,eAAO,KAAK,WAAW,OAAO,eAAe;MAC/C;MAEA,aAAa,oBAAuB,cAAe;AACjD,eAAO,KAAK,WAAW,aAAa,oBAAoB,YAAY;MACtE;MAEA,YAAY,iBAAoB,cAAe;AAC7C,eAAO,KAAK,WAAW,YAAY,iBAAiB,YAAY;MAClE;MAEA,aAAa,oBAAuB,cAAe;AACjD,eAAO,KAAK,WAAW,aAAa,oBAAoB,YAAY;MACtE;MAEA,YAAY,oBAAuB,cAAe;AAChD,eAAO,KAAK,WAAW,YAAY,oBAAoB,YAAY;MACrE;;;;;;;;MAUA,mBAAmB,aAAc;AAC/B,cAAM,eAAe,KAAK,aAAa,aAAa,CAAA,CAAE;AACtD,mBAAW,YAAY,cAAc;AACnC,kBAAQ,IAAI,QAAQ;QACtB;MACF;;;;;MAMA,qBAAqB,aAAc;MAAG;;;;;;AC3IxC,IAAAC,mBAAA;SAAAA,kBAAA;;;;;;;;;;;;;;IAAAC,gBAAA;;;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;ACVA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAIA,SAAS,OAAOC,QAAO,iBAAiB,iBAAiB;AACxD,MAAI,CAACA,QAAO;AACX,WAAO;AAAA,EACR;AAEA,MAAIA,OAAM,gBAAgB,iBAAiB;AAC1C,WAAO;AAAA,EACR;AAEA,SAAO,eAAe,KAAKA,MAAK,MAAM;AACvC;AAEO,SAAS,aAAaA,QAAO;AACnC,SAAO,OAAOA,QAAO,YAAY,qBAAqB;AACvD;AAEA,SAAS,cAAcA,QAAO;AAC7B,SAAO,OAAOA,QAAO,aAAa,sBAAsB;AACzD;AAEA,SAAS,0BAA0BA,QAAO;AACzC,SAAO,aAAaA,MAAK,KAAK,cAAcA,MAAK;AAClD;AAEO,SAAS,iBAAiBA,QAAO;AACvC,MAAI,CAAC,aAAaA,MAAK,GAAG;AACzB,UAAM,IAAI,UAAU,kCAAkC,OAAOA,MAAK,IAAI;AAAA,EACvE;AACD;AAEO,SAAS,8BAA8BA,QAAO;AACpD,MAAI,CAAC,0BAA0BA,MAAK,GAAG;AACtC,UAAM,IAAI,UAAU,qDAAqD,OAAOA,MAAK,IAAI;AAAA,EAC1F;AACD;AAEO,SAAS,aAAaA,QAAO;AACnC,MAAIA,kBAAiB,aAAa;AACjC,WAAO,IAAI,WAAWA,MAAK;AAAA,EAC5B;AAEA,MAAI,YAAY,OAAOA,MAAK,GAAG;AAC9B,WAAO,IAAI,WAAWA,OAAM,QAAQA,OAAM,YAAYA,OAAM,UAAU;AAAA,EACvE;AAEA,QAAM,IAAI,UAAU,4BAA4B,OAAOA,MAAK,KAAK;AAClE;AAEO,SAAS,kBAAkB,QAAQ,aAAa;AACtD,MAAI,OAAO,WAAW,GAAG;AACxB,WAAO,IAAI,WAAW,CAAC;AAAA,EACxB;AAEA,kBAAgB,OAAO,OAAO,CAAC,aAAa,iBAAiB,cAAc,aAAa,QAAQ,CAAC;AAEjG,QAAM,cAAc,IAAI,WAAW,WAAW;AAE9C,MAAI,SAAS;AACb,aAAW,SAAS,QAAQ;AAC3B,qBAAiB,KAAK;AACtB,gBAAY,IAAI,OAAO,MAAM;AAC7B,cAAU,MAAM;AAAA,EACjB;AAEA,SAAO;AACR;AAEO,SAAS,oBAAoBC,IAAGC,IAAG;AACzC,mBAAiBD,EAAC;AAClB,mBAAiBC,EAAC;AAElB,MAAID,OAAMC,IAAG;AACZ,WAAO;AAAA,EACR;AAEA,MAAID,GAAE,WAAWC,GAAE,QAAQ;AAC1B,WAAO;AAAA,EACR;AAGA,WAASC,SAAQ,GAAGA,SAAQF,GAAE,QAAQE,UAAS;AAC9C,QAAIF,GAAEE,MAAK,MAAMD,GAAEC,MAAK,GAAG;AAC1B,aAAO;AAAA,IACR;AAAA,EACD;AAEA,SAAO;AACR;AAEO,SAAS,mBAAmBF,IAAGC,IAAG;AACxC,mBAAiBD,EAAC;AAClB,mBAAiBC,EAAC;AAElB,QAAM,SAAS,KAAK,IAAID,GAAE,QAAQC,GAAE,MAAM;AAE1C,WAASC,SAAQ,GAAGA,SAAQ,QAAQA,UAAS;AAC5C,UAAM,OAAOF,GAAEE,MAAK,IAAID,GAAEC,MAAK;AAC/B,QAAI,SAAS,GAAG;AACf,aAAO,KAAK,KAAK,IAAI;AAAA,IACtB;AAAA,EACD;AAIA,SAAO,KAAK,KAAKF,GAAE,SAASC,GAAE,MAAM;AACrC;AAMO,SAAS,mBAAmB,OAAO,WAAW,QAAQ;AAC5D,gCAA8B,KAAK;AACnC,iBAAe,QAAQ,MAAM,IAAI,WAAW,YAAY,QAAQ;AAChE,SAAO,eAAe,QAAQ,EAAE,OAAO,KAAK;AAC7C;AAEA,SAAS,aAAaF,QAAO;AAC5B,MAAI,OAAOA,WAAU,UAAU;AAC9B,UAAM,IAAI,UAAU,8BAA8B,OAAOA,MAAK,IAAI;AAAA,EACnE;AACD;AAIO,SAAS,mBAAmBI,SAAQ;AAC1C,eAAaA,OAAM;AACnB,SAAO,cAAc,OAAOA,OAAM;AACnC;AAEA,SAAS,kBAAkBC,SAAQ;AAClC,SAAOA,QAAO,WAAW,KAAK,GAAG,EAAE,WAAW,KAAK,GAAG,EAAE,QAAQ,OAAO,EAAE;AAC1E;AAEA,SAAS,kBAAkB,WAAW;AACrC,QAAMA,UAAS,UAAU,WAAW,KAAK,GAAG,EAAE,WAAW,KAAK,GAAG;AACjE,QAAM,WAAW,IAAKA,QAAO,SAAS,KAAM;AAC5C,SAAOA,UAAS,IAAI,OAAO,OAAO;AACnC;AAMO,SAAS,mBAAmB,OAAO,EAAC,UAAU,MAAK,IAAI,CAAC,GAAG;AACjE,mBAAiB,KAAK;AAEtB,MAAIA,UAAS;AAEb,WAASF,SAAQ,GAAGA,SAAQ,MAAM,QAAQA,UAAS,gBAAgB;AAClE,UAAM,QAAQ,MAAM,SAASA,QAAOA,SAAQ,cAAc;AAE1D,IAAAE,WAAU,WAAW,KAAK,OAAO,cAAc,MAAM,QAAW,KAAK,CAAC;AAAA,EACvE;AAEA,SAAO,UAAU,kBAAkBA,OAAM,IAAIA;AAC9C;AAEO,SAAS,mBAAmB,cAAc;AAChD,eAAa,YAAY;AACzB,SAAO,WAAW,KAAK,WAAW,KAAK,kBAAkB,YAAY,CAAC,GAAG,CAAAC,OAAKA,GAAE,YAAY,CAAC,CAAC;AAC/F;AAEO,SAAS,eAAeF,SAAQ,EAAC,UAAU,MAAK,IAAI,CAAC,GAAG;AAC9D,eAAaA,OAAM;AACnB,SAAO,mBAAmB,mBAAmBA,OAAM,GAAG,EAAC,QAAO,CAAC;AAChE;AAEO,SAAS,eAAe,cAAc;AAC5C,eAAa,YAAY;AACzB,SAAO,mBAAmB,mBAAmB,YAAY,CAAC;AAC3D;AAIO,SAAS,gBAAgB,OAAO;AACtC,mBAAiB,KAAK;AAGtB,MAAI,YAAY;AAGhB,WAASD,SAAQ,GAAGA,SAAQ,MAAM,QAAQA,UAAS;AAClD,iBAAa,qBAAqB,MAAMA,MAAK,CAAC;AAAA,EAC/C;AAEA,SAAO;AACR;AA2BO,SAAS,gBAAgB,WAAW;AAC1C,eAAa,SAAS;AAEtB,MAAI,UAAU,SAAS,MAAM,GAAG;AAC/B,UAAM,IAAI,MAAM,4BAA4B;AAAA,EAC7C;AAEA,QAAM,eAAe,UAAU,SAAS;AACxC,QAAM,QAAQ,IAAI,WAAW,YAAY;AAEzC,WAASA,SAAQ,GAAGA,SAAQ,cAAcA,UAAS;AAClD,UAAM,aAAa,wBAAwB,UAAUA,SAAQ,CAAC,CAAC;AAC/D,UAAM,YAAY,wBAAwB,UAAWA,SAAQ,IAAK,CAAC,CAAC;AAEpE,QAAI,eAAe,UAAa,cAAc,QAAW;AACxD,YAAM,IAAI,MAAM,iDAAiDA,SAAQ,CAAC,EAAE;AAAA,IAC7E;AAEA,UAAMA,MAAK,IAAK,cAAc,IAAK;AAAA,EACpC;AAEA,SAAO;AACR;AAMO,SAAS,UAAU,MAAM;AAC/B,QAAM,EAAC,WAAU,IAAI;AAErB,MAAI,eAAe,GAAG;AACrB,WAAQ,KAAK,UAAU,CAAC,IAAK,KAAK,KAAO,KAAK,UAAU,CAAC;AAAA,EAC1D;AAEA,MAAI,eAAe,GAAG;AACrB,WAAQ,KAAK,SAAS,CAAC,IAAK,KAAK,KAAO,KAAK,UAAU,CAAC;AAAA,EACzD;AAEA,MAAI,eAAe,GAAG;AACrB,WAAO,KAAK,UAAU,CAAC;AAAA,EACxB;AAEA,MAAI,eAAe,GAAG;AACrB,WAAQ,KAAK,SAAS,CAAC,IAAK,KAAK,KAAO,KAAK,UAAU,CAAC;AAAA,EACzD;AAEA,MAAI,eAAe,GAAG;AACrB,WAAO,KAAK,UAAU,CAAC;AAAA,EACxB;AAEA,MAAI,eAAe,GAAG;AACrB,WAAO,KAAK,SAAS,CAAC;AAAA,EACvB;AACD;AAOO,SAAS,QAAQ,OAAOH,QAAO;AACrC,QAAM,cAAc,MAAM;AAC1B,QAAM,cAAcA,OAAM;AAE1B,MAAI,gBAAgB,GAAG;AACtB,WAAO;AAAA,EACR;AAEA,MAAI,cAAc,aAAa;AAC9B,WAAO;AAAA,EACR;AAEA,QAAM,oBAAoB,cAAc;AAExC,WAASG,SAAQ,GAAGA,UAAS,mBAAmBA,UAAS;AACxD,QAAII,WAAU;AACd,aAASC,UAAS,GAAGA,UAAS,aAAaA,WAAU;AACpD,UAAI,MAAML,SAAQK,OAAM,MAAMR,OAAMQ,OAAM,GAAG;AAC5C,QAAAD,WAAU;AACV;AAAA,MACD;AAAA,IACD;AAEA,QAAIA,UAAS;AACZ,aAAOJ;AAAA,IACR;AAAA,EACD;AAEA,SAAO;AACR;AAOO,SAAS,SAAS,OAAOH,QAAO;AACtC,SAAO,QAAQ,OAAOA,MAAK,MAAM;AAClC;AA7TA,IAAM,gBACA,uBACA,wBA6GA,gBAgBA,eAmBA,gBA+BA,sBAgBA;AAjMN;AAAA;AAAA,IAAM,iBAAiB,OAAO,UAAU;AACxC,IAAM,wBAAwB;AAC9B,IAAM,yBAAyB;AA6G/B,IAAM,iBAAiB;AAAA,MACtB,MAAM,IAAI,WAAW,YAAY,MAAM;AAAA,IACxC;AAcA,IAAM,gBAAgB,IAAI,WAAW,YAAY;AAmBjD,IAAM,iBAAiB;AA+BvB,IAAM,uBAAuB,MAAM,KAAK,EAAC,QAAQ,IAAG,GAAG,CAACS,IAAGN,WAAUA,OAAM,SAAS,EAAE,EAAE,SAAS,GAAG,GAAG,CAAC;AAgBxG,IAAM,0BAA0B;AAAA,MAC/B,GAAG;AAAA,MACH,GAAG;AAAA,MACH,GAAG;AAAA,MACH,GAAG;AAAA,MACH,GAAG;AAAA,MACH,GAAG;AAAA,MACH,GAAG;AAAA,MACH,GAAG;AAAA,MACH,GAAG;AAAA,MACH,GAAG;AAAA,MACH,GAAG;AAAA,MACH,GAAG;AAAA,MACH,GAAG;AAAA,MACH,GAAG;AAAA,MACH,GAAG;AAAA,MACH,GAAG;AAAA,MACH,GAAG;AAAA,MACH,GAAG;AAAA,MACH,GAAG;AAAA,MACH,GAAG;AAAA,MACH,GAAG;AAAA,MACH,GAAG;AAAA,IACJ;AAAA;AAAA;;;ACxNA;;;;;;;ACAA,IAAAO,mBAAA;SAAAA,kBAAA;4BAAAC;EAAA;;sBAAAC;EAAA;;;AAIM,SAAU,mBAAmB,YAAsB;AACvD,SAAe,0BAAiB,mBAAmB,UAAU;AAC/D;AAEM,SAAUD,oBAAmBE,SAAc;AAC/C,SAAe,0BAAiB,mBAAmBA,OAAM;AAC3D;AAMM,SAAU,aAAa,KAAQ;AAEnC,MAAI,OAAO,OAAO,IAAI,eAAe,UAAU;AAC7C,WAAO;EACT;AAGA,MAAI,OAAO,WAAW,eAAe,OAAO,UAAU;AACpD,WAAO,OAAO,SAAS,GAAG;EAC5B;AAEA,SAAO;AACT;AAEM,SAAU,qBAAqB,WAA8B;AAEjE,QAAM,aAAyB,IAAI,WAAW,UAAU,MAAM;AAG9D,aAAW,IAAI,SAAS;AACxB,SAAO;AACT;AArCA,IAEa,kBAUAD;AAZb,IAAAE,gBAAA;;;AAEO,IAAM,mBAA2B;AAUjC,IAAMF,gBAAe,CAAC,QAA+B;AAC1D,aAAe,0BAAiB,aAAa,GAAG;IAClD;;;;;ACdA;;AACA;;;;;ACDA,IASa;AATb;;;AASM,IAAO,QAAP,MAAY;MAGhB,YAAY,kBAAqC,YAA0B;AACzE,aAAK,gBAAgB;AACrB,aAAK,UAAU;MACjB;;;;;MAMO,MAAM,KAAK,SAAU;AAC1B,cAAM,SAAS,MAAM,KAAK,cAAc,OAAO;AAC/C,eAAO;MACT;MAEO,MAAM,cAAc,SAAU;AACnC,cAAM,SAAS,MAAM,KAAK,KAAK,OAAO;AACtC,YAAI,CAAC,QAAQ;AACX,iBAAO,KAAK,QAAQ;QACtB,OAAO;AACL,iBAAO;QACT;MACF;;;;;;ACjCF,IAEa;AAFb;;;AAEM,IAAO,aAAP,cAA0B,MAAK;MACnC,YAAYG,UAAe;AACzB,cAAMA,QAAO;AACb,aAAK,OAAO;MACd;;;;;;ACNF,IAYa;AAZb;;;AACA;AAWM,IAAO,WAAP,cAA2B,MAAQ;MAGvC,YAAY,aAA8B,CAAA,GAAE;AAC1C,cAAM,OAAO,YAAc;AACzB,iBAAO,KAAK,cAAc,OAAO;QACnC,CAAC;AACD,aAAK,SAAS;MAChB;;;;;MAMO,MAAM,gBAAgB,SAAY,aAA2B;QAClE,MAAM;QACN,YAAY;SACb;AACC,cAAM,iBAA0C,CAAA;AAEhD,mBAAW,SAAS,KAAK,QAAQ;AAC/B,gBAAM,qBAAqB,MAAM,KAAK,OAAO;AAC7C,cAAI,WAAW,SAAS,UAAU;AAChC,kBAAM;UACR;AACA,yBAAe,KAAK,kBAAkB;AACtC,cAAI,WAAW,YAAY;AACzB,gBAAI,CAAC,MAAM,oBAAoB;AAC7B,qBAAO,MAAM,QAAQ,IAAI,cAAc;YACzC;UACF;QACF;AAEA,cAAM,UAAU,MAAM,QAAQ,IAAI,cAAc;AAChD,eAAO;MACT;;;;;MAMO,MAAM,cAAc,SAAY,aAA2B;QAChE,MAAM;QACN,YAAY;SACb;AACC,cAAM,UAAU,MAAM,KAAK,gBAAgB,SAAS,UAAU;AAC9D,eAAO,QAAQ,MAAM,YAAU,MAAM;MACvC;;;;;MAMO,MAAM,cAAc,SAAU;AACnC,cAAM,UAAU,MAAM,KAAK,gBAAgB,SAAS;UAClD,MAAM;UACN,YAAY;SACb;AACD,eAAO,QAAQ,KAAK,YAAU,MAAM;MACtC;;;;;;MAOO,cAAe,SAAU;AAC9B,mBAAW,SAAS,KAAK,QAAQ;AAC/B,gBAAM,aAAa,MAAM,cAAc,OAAO;AAC9C,cAAI,YAAY;AACd,mBAAO;UACT;QACF;MACF;;;;;;ACrFF,IAAAC,mBAAA;SAAAA,kBAAA;;;;;;IAQa;AARb,IAAAC,gBAAA;;;AACA;AACA;AACA;AACA;AAEA;AACA;AACO,IAAM,qBAAqB,OAAU,SAAY,WAA2B;AACjF,YAAM,WAAW,IAAI,SAAY,MAAM;AACvC,YAAM,SAAS,MAAM,SAAS,cAAc,OAAO;AACnD,UAAI,CAAC,QAAQ;AACX,cAAM,aAAa,MAAM,SAAS,cAAc,OAAO;AACvD,cAAM,IAAI,WAAW;EACvB,UAAU;KACP;MACH;AACA;IACF;;;;;AClBA,IAUa;AAVb;;AAUM,IAAO,qBAAP,MAAyB;MAA/B,cAAA;AACU,aAAA,sBAA6C,CAAA;AAC7C,aAAA,uBAA+C,CAAA;AAC/C,aAAA,oBAAyC,CAAA;MAuInD;;;;MAlIS,sBAAsB,aAAgC;AAC3D,aAAK,oBAAoB,KAAK,WAAW;MAC3C;;;;MAKO,uBAAuB,aAAiC;AAC7D,aAAK,qBAAqB,KAAK,WAAW;MAC5C;;;;MAKO,oBAAoB,aAA8B;AACvD,aAAK,kBAAkB,KAAK,WAAW;MACzC;;;;MAKO,yBAAyB,aAAgC;AAC9D,cAAMC,SAAQ,KAAK,oBAAoB,QAAQ,WAAW;AAC1D,YAAIA,SAAQ,IAAI;AACd,eAAK,oBAAoB,OAAOA,QAAO,CAAC;QAC1C;MACF;;;;MAKO,0BAA0B,aAAiC;AAChE,cAAMA,SAAQ,KAAK,qBAAqB,QAAQ,WAAW;AAC3D,YAAIA,SAAQ,IAAI;AACd,eAAK,qBAAqB,OAAOA,QAAO,CAAC;QAC3C;MACF;;;;MAKO,uBAAuB,aAA8B;AAC1D,cAAMA,SAAQ,KAAK,kBAAkB,QAAQ,WAAW;AACxD,YAAIA,SAAQ,IAAI;AACd,eAAK,kBAAkB,OAAOA,QAAO,CAAC;QACxC;MACF;;;;MAKO,WAAQ;AACb,aAAK,sBAAsB,CAAA;AAC3B,aAAK,uBAAuB,CAAA;AAC5B,aAAK,oBAAoB,CAAA;MAC3B;;;;MAKO,MAAM,eAAe,SAAgB;AAC1C,YAAI,mBAAmB;AAEvB,mBAAW,eAAe,KAAK,qBAAqB;AAClD,cAAI;AACF,+BAAmB,MAAM,YAAY,gBAAgB;UACvD,SAAS,OAAO;AAEd,kBAAM,MAAM,KAAK,aACf,iBAAiB,QAAQ,QAAQ,IAAI,MAAM,OAAO,KAAK,CAAC,CAAC;UAE7D;QACF;AAEA,eAAO;MACT;;;;MAKO,MAAM,gBAAgB,UAAkB;AAC7C,YAAI,oBAAoB;AAExB,mBAAW,eAAe,KAAK,sBAAsB;AACnD,cAAI;AACF,gCAAoB,MAAM,YAAY,iBAAiB;UACzD,SAAS,OAAO;AAEd,kBAAM,MAAM,KAAK,aACf,iBAAiB,QAAQ,QAAQ,IAAI,MAAM,OAAO,KAAK,CAAC,CAAC;UAE7D;QACF;AAEA,eAAO;MACT;;;;MAKO,MAAM,aAAa,OAAY;AACpC,YAAI,iBAAiB;AAErB,mBAAW,eAAe,KAAK,mBAAmB;AAChD,cAAI;AACF,6BAAiB,MAAM,YAAY,cAAc;UACnD,SAAS,UAAU;AAEjB,6BACE,oBAAoB,QAAQ,WAAW,IAAI,MAAM,OAAO,QAAQ,CAAC;UACrE;QACF;AAEA,eAAO;MACT;;;;MAKO,uBAAoB;AAKzB,eAAO;UACL,SAAS,KAAK,oBAAoB;UAClC,UAAU,KAAK,qBAAqB;UACpC,OAAO,KAAK,kBAAkB;;MAElC;;;;;;ACnJF;;;;;;;ACAA;;;;;;ACAA,IAYa;AAZb;;;AACA;AAWM,IAAO,WAAP,MAAe;MAArB,cAAA;AAiCS,aAAA,gBAA0B,CAAA;MA6GnC;MA7IS,MAAM,kBAAkB,YAI9B;AACC,YAAI,KAAK,QAAQ;AACf,gBAAM,eAAe,MAAM,KAAK,kBAAkB,WAAW,cAAc;AAC3E,iBAAO;QACT,WAAW,KAAK,WAAW;AACzB,gBAAM,eAAe,MAAM,KAAK,iBAC9B,WAAW,WACX,WAAW,WAAW;AAExB,iBAAO;QACT,OAAO;AACL,kBAAQ,MAAM,gDAAgD;QAChE;MACF;MAEO,MAAM,kBAA2B,eAAuB,cAA6C;AAC1G,YAAI,CAAC,KAAK,QAAQ;AAChB,kBAAQ,MAAM,uDAAuD,aAAa,wBAAwB;AAC1G;QACF;AAEA,cAAM,cAAiB,MAAO,IAAI,SAAS,kBAAkB,aAAa,IAAI,EAAC;AAC/E,YAAI,cAAc;AAChB,gBAAM,aAAa,WAAW;QAChC;AACA,eAAO;MACT;MAGO,MAAM,iBAAiB,QAAgB,gBAAyB;AACrE,YAAI,CAAC,KAAK,WAAW;AACnB,kBAAQ,MAAM,mDAAmD;AACjE;QACF;AAEA,YAAI,KAAK,cAAc,SAAS,MAAM,GAAG;AACvC,iBAAO,eAAc;QACvB,OAAO;AACL,eAAK,cAAc,KAAK,MAAM;QAChC;AAEA,cAAM,OAAe,gBAAa,MAAK;AACvC,YAAI,WAAW,eAAe;AAC5B,qBAAW,cAAc,MAAM;AAC/B,eAAK,QAAO;QACd,OAAO;AACL,gBAAM,SAAS,SAAS,cAAc,QAAQ;AAC9C,iBAAO,SAAS,MAAK;AACnB,iBAAK,QAAO;UACd;AACA,iBAAO,MAAM;AACb,mBAAS,KAAK,YAAY,MAAM;QAClC;AACA,cAAM,KAAK;AACX,eAAO,eAAc;MACvB;MAEA,IAAW,aAAU;AACnB,YAAI,OAAO,YAAY,aAAa;AAClC,iBAAO;QACT,OAAO;AACL,iBAAO;QACT;MACF;MAEA,IAAW,YAAS;AAClB,eAAO,CAAC,KAAK;MACf;MAEA,IAAW,YAAS;AAClB,YAAI,KAAK,WAAW;AAElB,iBAAO,UAAU;QACnB,OAAO;AACL,iBAAO;QACT;MACF;MAEA,IAAW,SAAM;AACf,eAAO,KAAK,eAAe;MAC7B;MAEA,IAAW,cAAW;AACpB,eAAO,QAAQ;MACjB;MAEA,IAAW,OAAI;AACb,YAAI,KAAK,QAAQ;AACf,cAAI,QAAQ,IAAI,IAAI;AAClB,mBAAO;UACT,OAAO;AACL,mBAAO;UACT;QACF,OAAO;AACL,iBAAO;QACT;MACF;MAEO,MAAM,aAAU;AACrB,YAAI,KAAK,QAAQ;AACf,gBAAM,KAAK,MAAM,KAAK,kBAAkB,IAAI;AAC5C,iBAAO,GAAG,SAAQ,MAAO;QAC3B,OAAO;AACL,iBAAO;QACT;MACF;MAEO,MAAM,iBAAc;AACzB,YAAI,KAAK,QAAQ;AACf,gBAAM,KAAK,MAAM,KAAK,kBAAkB,IAAI;AAC5C,iBAAO,GAAG,SAAQ,MAAO;QAC3B,OAAO;AACL,iBAAO;QACT;MACF;MAEO,MAAM,eAAY;AACvB,YAAI,KAAK,QAAQ;AACf,gBAAM,KAAK,MAAM,KAAK,kBAAkB,IAAI;AAC5C,iBAAO,GAAG,SAAQ,MAAO;QAC3B,OAAO;AACL,iBAAO;QACT;MACF;;;;MAKO,MAAM,WAAQ;AACnB,YAAI,KAAK,QAAQ;AACf,kBAAQ,IAAI,iBAAiB;AAC7B,kBAAQ,IAAI,qBAAqB,KAAK,WAAW;QACnD,OAAO;AACL,kBAAQ,IAAI,oBAAoB;AAChC,kBAAQ,IAAI,gBAAgB,KAAK,SAAS;QAC5C;MACF;;;;;;ACzJF,IAAAC,oBAAA;SAAAA,mBAAA;;;IAAAC,iBAAA;;;;;;;ACAA,IACA;AADA;;AACA,gBAA2B;;;;;ACD3B;;;;;IAMM,cAsBA,kBA4CO,oBAYA;AApFb;;;AAMA,IAAM,eAAe,CAACC,MAAaC,SAAuB;AACxD,UAAI,OAAO,eAAe,eAAe,WAAW,UAAU,WAAW,OAAO,iBAAiB;AAE/F,cAAMC,SAAQD,OAAMD;AACpB,cAAM,QAAQ,IAAI,YAAY,CAAC;AAC/B,mBAAW,OAAO,gBAAgB,KAAK;AACvC,eAAOA,OAAO,MAAM,CAAC,IAAIE;MAC3B,OAAO;AAEL,eAAO,KAAK,MAAM,KAAK,OAAM,KAAMD,OAAMD,KAAI,IAAIA;MACnD;IACF;AAWA,IAAM,mBAAmB,CAAC,SAAiB,QAAiB,YAAyB;AACnF,YAAM,WAAW;QACf,KAAK;QACL,KAAK;QACL,KAAK;QACL,KAAK;QACL,KAAK;;AAIP,UAAI,gBAAgB;AACpB,UAAI,UAAU,SAAS,QAAQ,QAAQ;AACrC,wBAAgB,QAAQ,OAAO,KAAK,KAAK,SAAS,QAAQ,MAAM,CAAC,EAAE,MAAM,GAAG,MAAM;MACpF,WAAW,QAAQ;AACjB,wBAAgB,QAAQ,MAAM,GAAG,MAAM;MACzC;AAEA,UAAI,SAAS;AACb,iBAAW,QAAQ,eAAe;AAChC,YAAI,SAAS,IAAI,GAAG;AAClB,gBAAM,UAAU,SAAS,IAAI;AAC7B,gBAAM,cAAc,aAAa,GAAG,QAAQ,MAAM;AAClD,oBAAU,QAAQ,WAAW;QAC/B,OAAO;AAEL,oBAAU;QACZ;MACF;AAEA,aAAO;IACT;AAcO,IAAM,qBAAqB,CAChC,YACA,WACA,eACU;AACV,aAAO,iBAAiB,YAAY,WAAW,UAAU;IAC3D;AAMO,IAAM,2BAA2B,MAAa;AACnD,aAAe,UAAU,IAAG;IAC9B;;;;;ACtFA;;;;IAOa;AAPb;;;AAOO,IAAM,gBAAgB,SAAU,aAAqB;AAC1D,UAAI,eAAe,CAAA;AACnB,UAAI,cAAc;AAClB,UAAI,OAAO,gBAAgB,aAAa;AACtC,iBAAS,UAAU,aAAa;AAC9B,cAAI,eAAe,YAAY,KAAK,YAAY,MAAM,CAAC;AACvD,uBAAa,aAAa,CAAC,CAAC,IAAI,aAAa,CAAC;QAChD;MACF;AACA,aAAO;IACT;;;;;ACjBA;;;;;;IAMM,wBASA,0BAYA,kBAgBO,QAcA,kBAWA;AApEb;;;AAMA,IAAM,yBAAyB,CAAC,cAA+B;AAC7D,UAAI,cAAc,UAAU,MAAM,IAAI;AACtC,aAAO,iBAAiB,WAAW;IACrC;AAMA,IAAM,2BAA2B,CAAC,mBAAoC;AACpE,UAAI,eAAuB;AAC3B,eAAS,QAAQ,gBAAgB;AAC/B,uBAAe,eAAe,OAAO;MACvC;AACA,aAAO;IACT;AAMA,IAAM,mBAAmB,CAAC,mBAAsC;AAC9D,UAAI,YAAY;AAChB,UAAI,UAAU,KAAK,eAAe,CAAC,CAAC,GAAG;AACrC,uBAAe,MAAK;MACtB;AACA,UAAI,UAAU,KAAK,eAAe,eAAe,SAAS,CAAC,CAAC,GAAG;AAC7D,uBAAe,IAAG;MACpB;AACA,aAAO;IACT;AAOO,IAAM,SAAS,CAAC,WAAmB,gBAA+B;AACvE,UAAI,mBAAmB,uBAAuB,SAAS;AACvD,eAASG,cAAa,kBAAkB;AACtC,QAAAA,aAAY,IAAI,OAAO,WAAW,IAAIA;MACxC;AACA,UAAI,eAAe,yBAAyB,gBAAgB;AAC5D,aAAO;IACT;AAOO,IAAM,mBAAmB,CAAC,WAAmB,cAA6B;AAC/E,UAAI;AACJ,UAAI,cAAc,uBAAuB,SAAS;AAClD,UAAI,cAAwB,CAAA;AAC5B,eAAS,cAAc,aAAa;AAClC,oBAAY,KAAK,YAAY,UAAU;MACzC;AACA,qBAAe,yBAAyB,WAAW;AACnD,aAAO;IACT;AAEO,IAAM,YAAY,CAAC,cAA6B;AACrD,UAAI;AACJ,UAAI,mBAA6B,uBAAuB,SAAS;AACjE,UAAI;AAEJ,YAAM,gBAAgB;AACtB,YAAM,iBAAiB;AAEvB,eAAS,cAAc,kBAAkB;AACvC,YAAI,eAAe,cAAc,KAAK,UAAU,EAAE,CAAC;AACnD,aACG,OAAO,wBAAwB,eAAe,aAAa,SAAS,wBACrE,CAAC,eAAe,KAAK,UAAU,GAC/B;AACA,gCAAsB,aAAa;QACrC;MACF;AACA,UAAI,yBAAyB,CAAA;AAC7B,eAAS,cAAc,kBAAkB;AACvC,+BAAuB,KAAK,WAAW,OAAO,mBAAmB,CAAC;MACpE;AACA,qBAAe,yBAAyB,sBAAsB;AAC9D,aAAO;IACT;;;;;AC3FA;;;;;IAMa,YAQP,aAyCO;AAvDb;;AAMO,IAAM,aAAa,CAAC,WAAmB,eAAuB,sBAA6B;AAChG,aAAO,UAAU,QAAQ,IAAI,OAAO,eAAe,GAAG,GAAG,iBAAiB;IAC5E;AAMA,IAAM,cAAc,CAAC,QAAuB;AAC1C,YAAM,QAAQ,IAAI,MAAM,IAAI;AAG5B,UAAI,YAAY;AAChB,iBAAW,QAAQ,OAAO;AACxB,YAAI,KAAK,KAAI,EAAG,SAAS,GAAG;AAC1B,gBAAMC,SAAQ,KAAK,MAAM,QAAQ;AACjC,cAAIA,QAAO;AACT,wBAAY,KAAK,IAAI,WAAWA,OAAM,CAAC,EAAE,MAAM;UACjD;QACF;MACF;AAGA,UAAI,cAAc,YAAY,cAAc,GAAG;AAC7C,eAAO;MACT;AAGA,aAAO,MAAM,IAAI,UAAO;AACtB,YAAI,KAAK,UAAU,WAAW;AAC5B,iBAAO,KAAK,MAAM,SAAS;QAC7B;AACA,eAAO;MACT,CAAC,EAAE,KAAK,IAAI;IACd;AAeO,IAAM,WAAW,CAAC,WAAmB,YAAuC;AACjF,UAAI,SAAS;AAEb,UAAI,CAAC,WAAW,QAAQ,aAAa;AACnC,iBAAS,YAAY,MAAM;MAC7B;AAEA,UAAI,CAAC,WAAW,QAAQ,kBAAkB;AACxC,iBAAS,OAAO,QAAQ,SAAS,IAAI;MACvC;AAEA,UAAI,CAAC,WAAW,QAAQ,aAAa;AACnC,iBAAS,WAAW,QAAQ,MAAO,GAAG;MACxC;AAEA,UAAI,CAAC,WAAW,QAAQ,gCAAgC;AACtD,iBAAS,OAAO,QAAQ,gBAAgB,EAAE,EAAE,QAAQ,gBAAgB,EAAE;MACxE;AAEA,UAAI,CAAC,WAAW,QAAQ,oBAAoB;AAC1C,iBAAS,OAAO,QAAQ,gBAAgB,EAAE;MAC5C;AAEA,aAAO;IACT;;;;;AC1EA,IAIM,iBAgFO,QAqCF;AAzHX;;AAIA,IAAM,kBAAkB;MACtB,QAAQ,CAAC,QAAuB;AAC9B,YAAI,OAAO,WAAW,aAAa;AAEjC,iBAAO,OAAO,KAAK,KAAK,MAAM,EAAE,SAAS,QAAQ;QACnD,WAAW,OAAO,SAAS,aAAa;AAGtC,gBAAM,YAAY,IAAI,YAAW,EAAG,OAAO,GAAG;AAC9C,gBAAM,eAAe,MAAM,KAAK,WAAW,UAAQ,OAAO,aAAa,IAAI,CAAC,EAAE,KAAK,EAAE;AACrF,iBAAO,KAAK,YAAY;QAC1B,OAAO;AAEL,gBAAM,QAAQ;AACd,gBAAM,QAAQ,IAAI,YAAW,EAAG,OAAO,GAAG;AAC1C,cAAI,SAAS;AACb,cAAIC,MAAI;AAER,iBAAOA,MAAI,MAAM,QAAQ;AACvB,kBAAMC,KAAI,MAAMD,KAAG;AACnB,kBAAME,KAAIF,MAAI,MAAM,SAAS,MAAMA,KAAG,IAAI;AAC1C,kBAAMG,MAAIH,MAAI,MAAM,SAAS,MAAMA,KAAG,IAAI;AAE1C,kBAAM,SAAUC,MAAK,KAAOC,MAAK,IAAKC;AAEtC,sBAAU,MAAM,OAAQ,UAAU,KAAM,EAAE;AAC1C,sBAAU,MAAM,OAAQ,UAAU,KAAM,EAAE;AAC1C,sBAAUH,MAAI,IAAI,MAAM,SAAS,MAAM,OAAQ,UAAU,IAAK,EAAE,IAAI;AACpE,sBAAUA,MAAI,IAAI,MAAM,SAAS,MAAM,OAAO,SAAS,EAAE,IAAI;UAC/D;AAEA,iBAAO;QACT;MACF;MAEA,QAAQ,CAAC,QAAuB;AAE9B,cAAM,eAAe,IAClB,QAAQ,MAAM,GAAG,EACjB,QAAQ,MAAM,GAAG,EACjB,OAAO,IAAI,UAAW,IAAK,IAAI,SAAS,KAAM,GAAI,GAAG;AAExD,YAAI,OAAO,WAAW,aAAa;AAEjC,iBAAO,OAAO,KAAK,cAAc,QAAQ,EAAE,SAAS,MAAM;QAC5D,WAAW,OAAO,SAAS,aAAa;AAEtC,gBAAM,eAAe,KAAK,YAAY;AACtC,gBAAM,QAAQ,IAAI,WAAW,aAAa,MAAM;AAChD,mBAASA,MAAI,GAAGA,MAAI,aAAa,QAAQA,OAAK;AAC5C,kBAAMA,GAAC,IAAI,aAAa,WAAWA,GAAC;UACtC;AACA,iBAAO,IAAI,YAAW,EAAG,OAAO,KAAK;QACvC,OAAO;AAEL,gBAAM,QAAQ;AACd,cAAI,QAAkB,CAAA;AACtB,cAAIA,MAAI;AAER,iBAAOA,MAAI,aAAa,QAAQ;AAC9B,kBAAM,WAAW,MAAM,QAAQ,aAAa,OAAOA,KAAG,CAAC;AACvD,kBAAM,WAAW,MAAM,QAAQ,aAAa,OAAOA,KAAG,CAAC;AACvD,kBAAM,WAAW,MAAM,QAAQ,aAAa,OAAOA,KAAG,CAAC;AACvD,kBAAM,WAAW,MAAM,QAAQ,aAAa,OAAOA,KAAG,CAAC;AAEvD,kBAAM,SAAU,YAAY,KAAO,YAAY,KAAO,YAAY,IAAK;AAEvE,kBAAM,KAAM,UAAU,KAAM,GAAG;AAC/B,gBAAI,aAAa;AAAI,oBAAM,KAAM,UAAU,IAAK,GAAG;AACnD,gBAAI,aAAa;AAAI,oBAAM,KAAK,SAAS,GAAG;UAC9C;AAEA,iBAAO,IAAI,YAAW,EAAG,OAAO,IAAI,WAAW,KAAK,CAAC;QACvD;MACF;;AAMI,IAAO,SAAP,MAAa;MAEjB,YAAY,gBAAgB,SAAyB;AACnD,gBAAQ,SAAS;UACf,KAAK;AACH,iBAAK,YAAY;AACjB;UACF,KAAK;AACH,iBAAK,YAAY,OAAO,OAAO,cAAc;AAC7C;UACF,KAAK;AACH,iBAAK,YAAY,OAAO,OAAO,cAAc;QACjD;MACF;;;;MAKA,IAAI,eAAY;AACd,eAAO,KAAK;MACd;;;;MAKA,IAAI,eAAY;AACd,eAAO,OAAO,OAAO,KAAK,SAAS;MACrC;;;;MAKA,IAAI,kBAAe;AACjB,eAAO,OAAO,UAAU,KAAK,SAAS;MACxC;;AAGK,IAAI,SAAS;;;;MAIlB,QAAQ,CAAC,cAAqB;AAC5B,eAAO,gBAAgB,OAAO,SAAS;MACzC;;;;MAKA,WAAW,CAAC,cAAqB;AAC/B,eAAO,gBAAgB,OAAO,SAAS,EACpC,QAAQ,OAAO,GAAG,EAClB,QAAQ,OAAO,GAAG,EAClB,QAAQ,MAAM,EAAE;MACrB;;;;MAKA,QAAQ,CAAC,cAAqB;AAC5B,eAAO,gBAAgB,OAAO,SAAS;MACzC;;;;;;MAOA,UAAU,CAAC,cAAqB;AAC9B,cAAM,QAAQ;AACd,eAAO,MAAM,KAAK,SAAS;MAC7B;;;;;;AC/JF;;;;;IAGa,QA4FA;AA/Fb;;;AACA;AAEO,IAAM,SAAS,CAAC,cAA8B;AAGnD,YAAMI,WAAU,IAAI,YAAW;AAC/B,YAAM,QAAQA,SAAQ,OAAO,SAAS;AAEtC,UAAIC,MAAI;AACR,aAAOA,MAAI,MAAM,QAAQ;AACvB;;UAEE,MAAMA,GAAC,MAAM,KACb,MAAMA,GAAC,MAAM,MACb,MAAMA,GAAC,MAAM,MACZ,MAAQ,MAAMA,GAAC,KAAK,MAAMA,GAAC,KAAK;UACjC;AACA,UAAAA,OAAK;AACL;QACF;AAEA;;UAEE,OAAQ,MAAMA,GAAC,KACf,MAAMA,GAAC,KAAK,OACZ,OAAQ,MAAMA,MAAI,CAAC,KACnB,MAAMA,MAAI,CAAC,KAAK;UAChB;AACA,UAAAA,OAAK;AACL;QACF;AAEA;;UAEG,MAAMA,GAAC,MAAM,OACZ,OAAQ,MAAMA,MAAI,CAAC,KACnB,MAAMA,MAAI,CAAC,KAAK,OAChB,OAAQ,MAAMA,MAAI,CAAC,KACnB,MAAMA,MAAI,CAAC,KAAK;WAEf,OAAQ,MAAMA,GAAC,KAAK,MAAMA,GAAC,KAAK,OAAS,MAAMA,GAAC,MAAM,OAAQ,MAAMA,GAAC,MAAM,QAC5E,OAAQ,MAAMA,MAAI,CAAC,KACnB,MAAMA,MAAI,CAAC,KAAK,OAChB,OAAQ,MAAMA,MAAI,CAAC,KACnB,MAAMA,MAAI,CAAC,KAAK;UAEjB,MAAMA,GAAC,MAAM,OACZ,OAAQ,MAAMA,MAAI,CAAC,KACnB,MAAMA,MAAI,CAAC,KAAK,OAChB,OAAQ,MAAMA,MAAI,CAAC,KACnB,MAAMA,MAAI,CAAC,KAAK;UAClB;AACA,UAAAA,OAAK;AACL;QACF;AAEA;;UAEG,MAAMA,GAAC,MAAM,OACZ,OAAQ,MAAMA,MAAI,CAAC,KACnB,MAAMA,MAAI,CAAC,KAAK,OAChB,OAAQ,MAAMA,MAAI,CAAC,KACnB,MAAMA,MAAI,CAAC,KAAK,OAChB,OAAQ,MAAMA,MAAI,CAAC,KACnB,MAAMA,MAAI,CAAC,KAAK;UAEjB,OAAQ,MAAMA,GAAC,KACd,MAAMA,GAAC,KAAK,OACZ,OAAQ,MAAMA,MAAI,CAAC,KACnB,MAAMA,MAAI,CAAC,KAAK,OAChB,OAAQ,MAAMA,MAAI,CAAC,KACnB,MAAMA,MAAI,CAAC,KAAK,OAChB,OAAQ,MAAMA,MAAI,CAAC,KACnB,MAAMA,MAAI,CAAC,KAAK;UAEjB,MAAMA,GAAC,MAAM,OACZ,OAAQ,MAAMA,MAAI,CAAC,KACnB,MAAMA,MAAI,CAAC,KAAK,OAChB,OAAQ,MAAMA,MAAI,CAAC,KACnB,MAAMA,MAAI,CAAC,KAAK,OAChB,OAAQ,MAAMA,MAAI,CAAC,KACnB,MAAMA,MAAI,CAAC,KAAK;UAClB;AACA,UAAAA,OAAK;AACL;QACF;AAEA,eAAO;MACT;AAEA,aAAO;IACT;AAGO,IAAM,WAAW,CAAC,cAAqB;AAC5C,YAAM,YAAY;AAClB,YAAM,MAAM,UAAU;AACtB,UAAI,CAAC,OAAO,MAAM,MAAM,KAAK,UAAU,KAAK,SAAS,GAAG;AACtD,eAAO;MACT;AACA,YAAM,mBAAmB,UAAU,QAAQ,GAAG;AAC9C,aACE,qBAAqB,MACrB,qBAAqB,MAAM,KAC1B,qBAAqB,MAAM,KAAK,UAAU,MAAM,CAAC,MAAM;IAE5D;;;;;AC3GA,IAAa;AAAb;;AAAM,IAAO,SAAP,MAAa;MAejB,YAAY,iBAAuB;AAEjC,aAAK,WAAW,KAAK,eAAe,eAAe;AACnD,YAAI,CAAC,KAAK,UAAU;AAClB,4BAAkB,WAAW,eAAe;QAC9C;AACA,aAAK,gBAAgB,IAAI,IAAI,eAAe;AAC5C,aAAK,OAAO,KAAK,cAAc;AAG/B,cAAM,eAAe,KAAK,aACxB,gBAAgB,QAAQ,KAAK,cAAc,UAAU,EAAE,CAAC;AAE1D,aAAK,WAAW;AAChB,iBAASC,MAAI,GAAGA,OAAK,GAAGA,OAAK;AAC3B,cAAI,aAAaA,MAAI,CAAC,GAAG;AACvB,kBAAM,aAAa,aAAaA,MAAI,CAAC;AACrC,iBAAK,UAAUA,IAAE,SAAQ,CAAE,IAAI;AAC/B,gBAAI,KAAK,aAAa,IAAI;AACxB,mBAAK,WAAW;YAClB,OAAO;AACL,mBAAK,WAAW,aAAa,MAAM,KAAK;YAC1C;UACF,OAAO;AACL,iBAAK,UAAUA,IAAE,SAAQ,CAAE,IAAI;UACjC;QACF;AACA,aAAK,WAAW,KAAK,SAAS,MAAM,KAAK;AAGzC,aAAK,WAAW,KAAK;AACrB,aAAK,aAAa,KAAK;AACvB,aAAK,YAAY,KAAK;MACxB;;;MAKQ,aAAa,WAAiB;AACpC,cAAM,cACJ;AACF,cAAM,eAAe,YAAY,KAAK,SAAS;AAC/C,qBAAa,QAAO;AACpB,qBAAa,IAAG;AAChB,cAAM,uBAAuB,aAAa,OAAO,SAAUC,YAAiB;AAC1E,iBAAOA,eAAc;QACvB,CAAC;AACD,eAAO;MACT;MAEQ,eAAe,WAAiB;AACtC,cAAM,cAAc;AACpB,cAAM,eAAe,YAAY,KAAK,SAAS;AAC/C,YAAI,cAAc;AAChB,iBAAO,aAAa,CAAC;QACvB,OAAO;AACL,iBAAO;QACT;MACF;MAEQ,WAAW,WAAiB;AAClC,cAAM,cAAc;AACpB,cAAM,eAAe,YAAY,KAAK,SAAS;AAC/C,YAAI,cAAc;AAChB,iBAAO,aAAa,CAAC;QACvB,OAAO;AACL,iBAAO;QACT;MACF;;;;;;ACnFF,IAKa,SAqBP,UAOA;AAjCN;;;AAKM,IAAO,UAAP,MAAc;MAOlB,YAAY,WAAmB,UAAiB;AAC9C,YAAI,eAAe,SAAS,SAAS;AACrC,aAAK,OAAO,aAAa,CAAC;AAC1B,aAAK,OAAO,aAAa,CAAC;AAC1B,aAAK,OAAO,aAAa,CAAC;AAC1B,aAAK,cAAc;AACnB,aAAK,SAAS,QAAQ,KAAK,MAAM,KAAK,MAAM,KAAK,MAAM,KAAK,aAAa,KAAK;AAC9E,aAAK,WAAW,QAAQ,KAAK,MAAM,KAAK,MAAM,KAAK,MAAM,KAAK,aAAa,OAAO;MACpF;;AAMF,IAAM,WAAW,SAAU,WAAiB;AAC1C,YAAM,cACJ;AACF,UAAI,eAAe,YAAY,KAAK,SAAS;AAC7C,aAAO;IACT;AAEA,IAAM,UAAU,SACd,SACA,SACA,SACA,WAAmB,IACnB,aAAW;AAEX,UAAI;AACJ,UAAI,aAAa,IAAI;AACnB,mBAAW,WAAW;MACxB;AACA,cAAQ,aAAa;QACnB,KAAK;AACH,yBAAe,aAAa,WAAW,UAAU,MAAM,UAAU,MAAM,UAAU;AACjF;QACF,KAAK;AACH,yBAAe,SAAS,UAAU,MAAM,UAAU,MAAM,UAAU;AAClE;QACF;AACE,kBAAQ,MAAM,eAAe,cAAc,YAAY;AACvD;MACJ;AACA,aAAO;IACT;;;;;ACxDA,IAAAC,oBAAA;SAAAA,mBAAA;;;;;;;;;;;IAAAC,iBAAA;;;AACA;AACA;AACA;AACA;AAIA;AACA;AACA;;;;;ACVA;AAAA;AAUA,QAAI,mBAAmB;AAGvB,QAAI,iBAAiB;AAGrB,QAAI,mBAAmB;AAGvB,QAAI,UAAU,sBACV,WAAW,kBACX,UAAU,oBACV,UAAU,iBACV,WAAW,kBACX,UAAU,qBACV,SAAS,8BACT,SAAS,gBACT,YAAY,mBACZ,YAAY,mBACZ,aAAa,oBACb,YAAY,mBACZ,SAAS,gBACT,YAAY,mBACZ,YAAY,mBACZ,aAAa;AAEjB,QAAI,iBAAiB,wBACjB,cAAc,qBACd,aAAa,yBACb,aAAa,yBACb,UAAU,sBACV,WAAW,uBACX,WAAW,uBACX,WAAW,uBACX,kBAAkB,8BAClB,YAAY,wBACZ,YAAY;AAMhB,QAAI,eAAe;AAGnB,QAAI,UAAU;AAGd,QAAI,eAAe;AAGnB,QAAI,WAAW;AAGf,QAAI,gBAAgB,CAAC;AACrB,kBAAc,OAAO,IAAI,cAAc,QAAQ,IAC/C,cAAc,cAAc,IAAI,cAAc,WAAW,IACzD,cAAc,OAAO,IAAI,cAAc,OAAO,IAC9C,cAAc,UAAU,IAAI,cAAc,UAAU,IACpD,cAAc,OAAO,IAAI,cAAc,QAAQ,IAC/C,cAAc,QAAQ,IAAI,cAAc,MAAM,IAC9C,cAAc,SAAS,IAAI,cAAc,SAAS,IAClD,cAAc,SAAS,IAAI,cAAc,MAAM,IAC/C,cAAc,SAAS,IAAI,cAAc,SAAS,IAClD,cAAc,QAAQ,IAAI,cAAc,eAAe,IACvD,cAAc,SAAS,IAAI,cAAc,SAAS,IAAI;AACtD,kBAAc,QAAQ,IAAI,cAAc,OAAO,IAC/C,cAAc,UAAU,IAAI;AAG5B,QAAI,aAAa,OAAO,UAAU,YAAY,UAAU,OAAO,WAAW,UAAU;AAGpF,QAAI,WAAW,OAAO,QAAQ,YAAY,QAAQ,KAAK,WAAW,UAAU;AAG5E,QAAIC,QAAO,cAAc,YAAY,SAAS,aAAa,EAAE;AAG7D,QAAI,cAAc,OAAO,WAAW,YAAY,WAAW,CAAC,QAAQ,YAAY;AAGhF,QAAI,aAAa,eAAe,OAAO,UAAU,YAAY,UAAU,CAAC,OAAO,YAAY;AAG3F,QAAI,gBAAgB,cAAc,WAAW,YAAY;AAUzD,aAAS,YAAYC,MAAK,MAAM;AAE9B,MAAAA,KAAI,IAAI,KAAK,CAAC,GAAG,KAAK,CAAC,CAAC;AACxB,aAAOA;AAAA,IACT;AAUA,aAAS,YAAYC,MAAKC,QAAO;AAE/B,MAAAD,KAAI,IAAIC,MAAK;AACb,aAAOD;AAAA,IACT;AAWA,aAAS,UAAU,OAAO,UAAU;AAClC,UAAIE,SAAQ,IACR,SAAS,QAAQ,MAAM,SAAS;AAEpC,aAAO,EAAEA,SAAQ,QAAQ;AACvB,YAAI,SAAS,MAAMA,MAAK,GAAGA,QAAO,KAAK,MAAM,OAAO;AAClD;AAAA,QACF;AAAA,MACF;AACA,aAAO;AAAA,IACT;AAUA,aAAS,UAAU,OAAO,QAAQ;AAChC,UAAIA,SAAQ,IACR,SAAS,OAAO,QAChB,SAAS,MAAM;AAEnB,aAAO,EAAEA,SAAQ,QAAQ;AACvB,cAAM,SAASA,MAAK,IAAI,OAAOA,MAAK;AAAA,MACtC;AACA,aAAO;AAAA,IACT;AAcA,aAAS,YAAY,OAAO,UAAU,aAAa,WAAW;AAC5D,UAAIA,SAAQ,IACR,SAAS,QAAQ,MAAM,SAAS;AAEpC,UAAI,aAAa,QAAQ;AACvB,sBAAc,MAAM,EAAEA,MAAK;AAAA,MAC7B;AACA,aAAO,EAAEA,SAAQ,QAAQ;AACvB,sBAAc,SAAS,aAAa,MAAMA,MAAK,GAAGA,QAAO,KAAK;AAAA,MAChE;AACA,aAAO;AAAA,IACT;AAWA,aAAS,UAAUC,KAAG,UAAU;AAC9B,UAAID,SAAQ,IACR,SAAS,MAAMC,GAAC;AAEpB,aAAO,EAAED,SAAQC,KAAG;AAClB,eAAOD,MAAK,IAAI,SAASA,MAAK;AAAA,MAChC;AACA,aAAO;AAAA,IACT;AAUA,aAAS,SAAS,QAAQE,MAAK;AAC7B,aAAO,UAAU,OAAO,SAAY,OAAOA,IAAG;AAAA,IAChD;AASA,aAAS,aAAaH,QAAO;AAG3B,UAAI,SAAS;AACb,UAAIA,UAAS,QAAQ,OAAOA,OAAM,YAAY,YAAY;AACxD,YAAI;AACF,mBAAS,CAAC,EAAEA,SAAQ;AAAA,QACtB,SAASI,KAAG;AAAA,QAAC;AAAA,MACf;AACA,aAAO;AAAA,IACT;AASA,aAAS,WAAWN,MAAK;AACvB,UAAIG,SAAQ,IACR,SAAS,MAAMH,KAAI,IAAI;AAE3B,MAAAA,KAAI,QAAQ,SAASE,QAAOG,MAAK;AAC/B,eAAO,EAAEF,MAAK,IAAI,CAACE,MAAKH,MAAK;AAAA,MAC/B,CAAC;AACD,aAAO;AAAA,IACT;AAUA,aAAS,QAAQ,MAAMK,YAAW;AAChC,aAAO,SAAS,KAAK;AACnB,eAAO,KAAKA,WAAU,GAAG,CAAC;AAAA,MAC5B;AAAA,IACF;AASA,aAAS,WAAWN,MAAK;AACvB,UAAIE,SAAQ,IACR,SAAS,MAAMF,KAAI,IAAI;AAE3B,MAAAA,KAAI,QAAQ,SAASC,QAAO;AAC1B,eAAO,EAAEC,MAAK,IAAID;AAAA,MACpB,CAAC;AACD,aAAO;AAAA,IACT;AAGA,QAAI,aAAa,MAAM,WACnB,YAAY,SAAS,WACrB,cAAc,OAAO;AAGzB,QAAI,aAAaH,MAAK,oBAAoB;AAG1C,QAAI,cAAc,WAAW;AAC3B,UAAI,MAAM,SAAS,KAAK,cAAc,WAAW,QAAQ,WAAW,KAAK,YAAY,EAAE;AACvF,aAAO,MAAO,mBAAmB,MAAO;AAAA,IAC1C,GAAE;AAGF,QAAI,eAAe,UAAU;AAG7B,QAAIS,kBAAiB,YAAY;AAOjC,QAAIC,kBAAiB,YAAY;AAGjC,QAAI,aAAa;AAAA,MAAO,MACtB,aAAa,KAAKD,eAAc,EAAE,QAAQ,cAAc,MAAM,EAC7D,QAAQ,0DAA0D,OAAO,IAAI;AAAA,IAChF;AAGA,QAAIE,UAAS,gBAAgBX,MAAK,SAAS,QACvCY,UAASZ,MAAK,QACda,cAAab,MAAK,YAClB,eAAe,QAAQ,OAAO,gBAAgB,MAAM,GACpD,eAAe,OAAO,QACtB,uBAAuB,YAAY,sBACnCc,UAAS,WAAW;AAGxB,QAAI,mBAAmB,OAAO,uBAC1B,iBAAiBH,UAASA,QAAO,WAAW,QAC5C,aAAa,QAAQ,OAAO,MAAM,MAAM;AAG5C,QAAII,YAAW,UAAUf,OAAM,UAAU,GACrCgB,OAAM,UAAUhB,OAAM,KAAK,GAC3BiB,WAAU,UAAUjB,OAAM,SAAS,GACnCkB,OAAM,UAAUlB,OAAM,KAAK,GAC3BmB,WAAU,UAAUnB,OAAM,SAAS,GACnC,eAAe,UAAU,QAAQ,QAAQ;AAG7C,QAAI,qBAAqB,SAASe,SAAQ,GACtC,gBAAgB,SAASC,IAAG,GAC5B,oBAAoB,SAASC,QAAO,GACpC,gBAAgB,SAASC,IAAG,GAC5B,oBAAoB,SAASC,QAAO;AAGxC,QAAI,cAAcP,UAASA,QAAO,YAAY,QAC1C,gBAAgB,cAAc,YAAY,UAAU;AASxD,aAAS,KAAK,SAAS;AACrB,UAAIR,SAAQ,IACR,SAAS,UAAU,QAAQ,SAAS;AAExC,WAAK,MAAM;AACX,aAAO,EAAEA,SAAQ,QAAQ;AACvB,YAAI,QAAQ,QAAQA,MAAK;AACzB,aAAK,IAAI,MAAM,CAAC,GAAG,MAAM,CAAC,CAAC;AAAA,MAC7B;AAAA,IACF;AASA,aAAS,YAAY;AACnB,WAAK,WAAW,eAAe,aAAa,IAAI,IAAI,CAAC;AAAA,IACvD;AAYA,aAAS,WAAWE,MAAK;AACvB,aAAO,KAAK,IAAIA,IAAG,KAAK,OAAO,KAAK,SAASA,IAAG;AAAA,IAClD;AAWA,aAAS,QAAQA,MAAK;AACpB,UAAIc,QAAO,KAAK;AAChB,UAAI,cAAc;AAChB,YAAI,SAASA,MAAKd,IAAG;AACrB,eAAO,WAAW,iBAAiB,SAAY;AAAA,MACjD;AACA,aAAOG,gBAAe,KAAKW,OAAMd,IAAG,IAAIc,MAAKd,IAAG,IAAI;AAAA,IACtD;AAWA,aAAS,QAAQA,MAAK;AACpB,UAAIc,QAAO,KAAK;AAChB,aAAO,eAAeA,MAAKd,IAAG,MAAM,SAAYG,gBAAe,KAAKW,OAAMd,IAAG;AAAA,IAC/E;AAYA,aAAS,QAAQA,MAAKH,QAAO;AAC3B,UAAIiB,QAAO,KAAK;AAChB,MAAAA,MAAKd,IAAG,IAAK,gBAAgBH,WAAU,SAAa,iBAAiBA;AACrE,aAAO;AAAA,IACT;AAGA,SAAK,UAAU,QAAQ;AACvB,SAAK,UAAU,QAAQ,IAAI;AAC3B,SAAK,UAAU,MAAM;AACrB,SAAK,UAAU,MAAM;AACrB,SAAK,UAAU,MAAM;AASrB,aAAS,UAAU,SAAS;AAC1B,UAAIC,SAAQ,IACR,SAAS,UAAU,QAAQ,SAAS;AAExC,WAAK,MAAM;AACX,aAAO,EAAEA,SAAQ,QAAQ;AACvB,YAAI,QAAQ,QAAQA,MAAK;AACzB,aAAK,IAAI,MAAM,CAAC,GAAG,MAAM,CAAC,CAAC;AAAA,MAC7B;AAAA,IACF;AASA,aAAS,iBAAiB;AACxB,WAAK,WAAW,CAAC;AAAA,IACnB;AAWA,aAAS,gBAAgBE,MAAK;AAC5B,UAAIc,QAAO,KAAK,UACZhB,SAAQ,aAAagB,OAAMd,IAAG;AAElC,UAAIF,SAAQ,GAAG;AACb,eAAO;AAAA,MACT;AACA,UAAI,YAAYgB,MAAK,SAAS;AAC9B,UAAIhB,UAAS,WAAW;AACtB,QAAAgB,MAAK,IAAI;AAAA,MACX,OAAO;AACL,QAAAN,QAAO,KAAKM,OAAMhB,QAAO,CAAC;AAAA,MAC5B;AACA,aAAO;AAAA,IACT;AAWA,aAAS,aAAaE,MAAK;AACzB,UAAIc,QAAO,KAAK,UACZhB,SAAQ,aAAagB,OAAMd,IAAG;AAElC,aAAOF,SAAQ,IAAI,SAAYgB,MAAKhB,MAAK,EAAE,CAAC;AAAA,IAC9C;AAWA,aAAS,aAAaE,MAAK;AACzB,aAAO,aAAa,KAAK,UAAUA,IAAG,IAAI;AAAA,IAC5C;AAYA,aAAS,aAAaA,MAAKH,QAAO;AAChC,UAAIiB,QAAO,KAAK,UACZhB,SAAQ,aAAagB,OAAMd,IAAG;AAElC,UAAIF,SAAQ,GAAG;AACb,QAAAgB,MAAK,KAAK,CAACd,MAAKH,MAAK,CAAC;AAAA,MACxB,OAAO;AACL,QAAAiB,MAAKhB,MAAK,EAAE,CAAC,IAAID;AAAA,MACnB;AACA,aAAO;AAAA,IACT;AAGA,cAAU,UAAU,QAAQ;AAC5B,cAAU,UAAU,QAAQ,IAAI;AAChC,cAAU,UAAU,MAAM;AAC1B,cAAU,UAAU,MAAM;AAC1B,cAAU,UAAU,MAAM;AAS1B,aAAS,SAAS,SAAS;AACzB,UAAIC,SAAQ,IACR,SAAS,UAAU,QAAQ,SAAS;AAExC,WAAK,MAAM;AACX,aAAO,EAAEA,SAAQ,QAAQ;AACvB,YAAI,QAAQ,QAAQA,MAAK;AACzB,aAAK,IAAI,MAAM,CAAC,GAAG,MAAM,CAAC,CAAC;AAAA,MAC7B;AAAA,IACF;AASA,aAAS,gBAAgB;AACvB,WAAK,WAAW;AAAA,QACd,QAAQ,IAAI;AAAA,QACZ,OAAO,KAAKY,QAAO;AAAA,QACnB,UAAU,IAAI;AAAA,MAChB;AAAA,IACF;AAWA,aAAS,eAAeV,MAAK;AAC3B,aAAO,WAAW,MAAMA,IAAG,EAAE,QAAQ,EAAEA,IAAG;AAAA,IAC5C;AAWA,aAAS,YAAYA,MAAK;AACxB,aAAO,WAAW,MAAMA,IAAG,EAAE,IAAIA,IAAG;AAAA,IACtC;AAWA,aAAS,YAAYA,MAAK;AACxB,aAAO,WAAW,MAAMA,IAAG,EAAE,IAAIA,IAAG;AAAA,IACtC;AAYA,aAAS,YAAYA,MAAKH,QAAO;AAC/B,iBAAW,MAAMG,IAAG,EAAE,IAAIA,MAAKH,MAAK;AACpC,aAAO;AAAA,IACT;AAGA,aAAS,UAAU,QAAQ;AAC3B,aAAS,UAAU,QAAQ,IAAI;AAC/B,aAAS,UAAU,MAAM;AACzB,aAAS,UAAU,MAAM;AACzB,aAAS,UAAU,MAAM;AASzB,aAAS,MAAM,SAAS;AACtB,WAAK,WAAW,IAAI,UAAU,OAAO;AAAA,IACvC;AASA,aAAS,aAAa;AACpB,WAAK,WAAW,IAAI;AAAA,IACtB;AAWA,aAAS,YAAYG,MAAK;AACxB,aAAO,KAAK,SAAS,QAAQ,EAAEA,IAAG;AAAA,IACpC;AAWA,aAAS,SAASA,MAAK;AACrB,aAAO,KAAK,SAAS,IAAIA,IAAG;AAAA,IAC9B;AAWA,aAAS,SAASA,MAAK;AACrB,aAAO,KAAK,SAAS,IAAIA,IAAG;AAAA,IAC9B;AAYA,aAAS,SAASA,MAAKH,QAAO;AAC5B,UAAI,QAAQ,KAAK;AACjB,UAAI,iBAAiB,WAAW;AAC9B,YAAIkB,SAAQ,MAAM;AAClB,YAAI,CAACL,QAAQK,OAAM,SAAS,mBAAmB,GAAI;AACjD,UAAAA,OAAM,KAAK,CAACf,MAAKH,MAAK,CAAC;AACvB,iBAAO;AAAA,QACT;AACA,gBAAQ,KAAK,WAAW,IAAI,SAASkB,MAAK;AAAA,MAC5C;AACA,YAAM,IAAIf,MAAKH,MAAK;AACpB,aAAO;AAAA,IACT;AAGA,UAAM,UAAU,QAAQ;AACxB,UAAM,UAAU,QAAQ,IAAI;AAC5B,UAAM,UAAU,MAAM;AACtB,UAAM,UAAU,MAAM;AACtB,UAAM,UAAU,MAAM;AAUtB,aAAS,cAAcA,QAAO,WAAW;AAGvC,UAAI,SAAUmB,SAAQnB,MAAK,KAAK,YAAYA,MAAK,IAC7C,UAAUA,OAAM,QAAQ,MAAM,IAC9B,CAAC;AAEL,UAAI,SAAS,OAAO,QAChB,cAAc,CAAC,CAAC;AAEpB,eAASG,QAAOH,QAAO;AACrB,aAAK,aAAaM,gBAAe,KAAKN,QAAOG,IAAG,MAC5C,EAAE,gBAAgBA,QAAO,YAAY,QAAQA,MAAK,MAAM,KAAK;AAC/D,iBAAO,KAAKA,IAAG;AAAA,QACjB;AAAA,MACF;AACA,aAAO;AAAA,IACT;AAYA,aAAS,YAAY,QAAQA,MAAKH,QAAO;AACvC,UAAI,WAAW,OAAOG,IAAG;AACzB,UAAI,EAAEG,gBAAe,KAAK,QAAQH,IAAG,KAAK,GAAG,UAAUH,MAAK,MACvDA,WAAU,UAAa,EAAEG,QAAO,SAAU;AAC7C,eAAOA,IAAG,IAAIH;AAAA,MAChB;AAAA,IACF;AAUA,aAAS,aAAa,OAAOG,MAAK;AAChC,UAAI,SAAS,MAAM;AACnB,aAAO,UAAU;AACf,YAAI,GAAG,MAAM,MAAM,EAAE,CAAC,GAAGA,IAAG,GAAG;AAC7B,iBAAO;AAAA,QACT;AAAA,MACF;AACA,aAAO;AAAA,IACT;AAWA,aAAS,WAAW,QAAQ,QAAQ;AAClC,aAAO,UAAU,WAAW,QAAQiB,MAAK,MAAM,GAAG,MAAM;AAAA,IAC1D;AAgBA,aAAS,UAAUpB,QAAO,QAAQ,QAAQ,YAAYG,MAAK,QAAQ,OAAO;AACxE,UAAI;AACJ,UAAI,YAAY;AACd,iBAAS,SAAS,WAAWH,QAAOG,MAAK,QAAQ,KAAK,IAAI,WAAWH,MAAK;AAAA,MAC5E;AACA,UAAI,WAAW,QAAW;AACxB,eAAO;AAAA,MACT;AACA,UAAI,CAACqB,UAASrB,MAAK,GAAG;AACpB,eAAOA;AAAA,MACT;AACA,UAAI,QAAQmB,SAAQnB,MAAK;AACzB,UAAI,OAAO;AACT,iBAAS,eAAeA,MAAK;AAC7B,YAAI,CAAC,QAAQ;AACX,iBAAO,UAAUA,QAAO,MAAM;AAAA,QAChC;AAAA,MACF,OAAO;AACL,YAAI,MAAM,OAAOA,MAAK,GAClB,SAAS,OAAO,WAAW,OAAO;AAEtC,YAAI,SAASA,MAAK,GAAG;AACnB,iBAAO,YAAYA,QAAO,MAAM;AAAA,QAClC;AACA,YAAI,OAAO,aAAa,OAAO,WAAY,UAAU,CAAC,QAAS;AAC7D,cAAI,aAAaA,MAAK,GAAG;AACvB,mBAAO,SAASA,SAAQ,CAAC;AAAA,UAC3B;AACA,mBAAS,gBAAgB,SAAS,CAAC,IAAIA,MAAK;AAC5C,cAAI,CAAC,QAAQ;AACX,mBAAO,YAAYA,QAAO,WAAW,QAAQA,MAAK,CAAC;AAAA,UACrD;AAAA,QACF,OAAO;AACL,cAAI,CAAC,cAAc,GAAG,GAAG;AACvB,mBAAO,SAASA,SAAQ,CAAC;AAAA,UAC3B;AACA,mBAAS,eAAeA,QAAO,KAAK,WAAW,MAAM;AAAA,QACvD;AAAA,MACF;AAEA,gBAAU,QAAQ,IAAI;AACtB,UAAI,UAAU,MAAM,IAAIA,MAAK;AAC7B,UAAI,SAAS;AACX,eAAO;AAAA,MACT;AACA,YAAM,IAAIA,QAAO,MAAM;AAEvB,UAAI,CAAC,OAAO;AACV,YAAI,QAAQ,SAAS,WAAWA,MAAK,IAAIoB,MAAKpB,MAAK;AAAA,MACrD;AACA,gBAAU,SAASA,QAAO,SAAS,UAAUG,MAAK;AAChD,YAAI,OAAO;AACT,UAAAA,OAAM;AACN,qBAAWH,OAAMG,IAAG;AAAA,QACtB;AAEA,oBAAY,QAAQA,MAAK,UAAU,UAAU,QAAQ,QAAQ,YAAYA,MAAKH,QAAO,KAAK,CAAC;AAAA,MAC7F,CAAC;AACD,aAAO;AAAA,IACT;AAUA,aAAS,WAAW,OAAO;AACzB,aAAOqB,UAAS,KAAK,IAAI,aAAa,KAAK,IAAI,CAAC;AAAA,IAClD;AAaA,aAAS,eAAe,QAAQ,UAAU,aAAa;AACrD,UAAI,SAAS,SAAS,MAAM;AAC5B,aAAOF,SAAQ,MAAM,IAAI,SAAS,UAAU,QAAQ,YAAY,MAAM,CAAC;AAAA,IACzE;AASA,aAAS,WAAWnB,QAAO;AACzB,aAAOO,gBAAe,KAAKP,MAAK;AAAA,IAClC;AAUA,aAAS,aAAaA,QAAO;AAC3B,UAAI,CAACqB,UAASrB,MAAK,KAAK,SAASA,MAAK,GAAG;AACvC,eAAO;AAAA,MACT;AACA,UAAI,UAAWsB,YAAWtB,MAAK,KAAK,aAAaA,MAAK,IAAK,aAAa;AACxE,aAAO,QAAQ,KAAK,SAASA,MAAK,CAAC;AAAA,IACrC;AASA,aAAS,SAAS,QAAQ;AACxB,UAAI,CAAC,YAAY,MAAM,GAAG;AACxB,eAAO,WAAW,MAAM;AAAA,MAC1B;AACA,UAAI,SAAS,CAAC;AACd,eAASG,QAAO,OAAO,MAAM,GAAG;AAC9B,YAAIG,gBAAe,KAAK,QAAQH,IAAG,KAAKA,QAAO,eAAe;AAC5D,iBAAO,KAAKA,IAAG;AAAA,QACjB;AAAA,MACF;AACA,aAAO;AAAA,IACT;AAUA,aAAS,YAAYoB,SAAQ,QAAQ;AACnC,UAAI,QAAQ;AACV,eAAOA,QAAO,MAAM;AAAA,MACtB;AACA,UAAI,SAAS,IAAIA,QAAO,YAAYA,QAAO,MAAM;AACjD,MAAAA,QAAO,KAAK,MAAM;AAClB,aAAO;AAAA,IACT;AASA,aAAS,iBAAiB,aAAa;AACrC,UAAI,SAAS,IAAI,YAAY,YAAY,YAAY,UAAU;AAC/D,UAAIb,YAAW,MAAM,EAAE,IAAI,IAAIA,YAAW,WAAW,CAAC;AACtD,aAAO;AAAA,IACT;AAUA,aAAS,cAAc,UAAU,QAAQ;AACvC,UAAIa,UAAS,SAAS,iBAAiB,SAAS,MAAM,IAAI,SAAS;AACnE,aAAO,IAAI,SAAS,YAAYA,SAAQ,SAAS,YAAY,SAAS,UAAU;AAAA,IAClF;AAWA,aAAS,SAASzB,MAAK,QAAQ,WAAW;AACxC,UAAI,QAAQ,SAAS,UAAU,WAAWA,IAAG,GAAG,IAAI,IAAI,WAAWA,IAAG;AACtE,aAAO,YAAY,OAAO,aAAa,IAAIA,KAAI,aAAW;AAAA,IAC5D;AASA,aAAS,YAAY,QAAQ;AAC3B,UAAI,SAAS,IAAI,OAAO,YAAY,OAAO,QAAQ,QAAQ,KAAK,MAAM,CAAC;AACvE,aAAO,YAAY,OAAO;AAC1B,aAAO;AAAA,IACT;AAWA,aAAS,SAASC,MAAK,QAAQ,WAAW;AACxC,UAAI,QAAQ,SAAS,UAAU,WAAWA,IAAG,GAAG,IAAI,IAAI,WAAWA,IAAG;AACtE,aAAO,YAAY,OAAO,aAAa,IAAIA,KAAI,aAAW;AAAA,IAC5D;AASA,aAAS,YAAY,QAAQ;AAC3B,aAAO,gBAAgB,OAAO,cAAc,KAAK,MAAM,CAAC,IAAI,CAAC;AAAA,IAC/D;AAUA,aAAS,gBAAgB,YAAY,QAAQ;AAC3C,UAAIwB,UAAS,SAAS,iBAAiB,WAAW,MAAM,IAAI,WAAW;AACvE,aAAO,IAAI,WAAW,YAAYA,SAAQ,WAAW,YAAY,WAAW,MAAM;AAAA,IACpF;AAUA,aAAS,UAAU,QAAQ,OAAO;AAChC,UAAItB,SAAQ,IACR,SAAS,OAAO;AAEpB,gBAAU,QAAQ,MAAM,MAAM;AAC9B,aAAO,EAAEA,SAAQ,QAAQ;AACvB,cAAMA,MAAK,IAAI,OAAOA,MAAK;AAAA,MAC7B;AACA,aAAO;AAAA,IACT;AAYA,aAAS,WAAW,QAAQ,OAAO,QAAQ,YAAY;AACrD,iBAAW,SAAS,CAAC;AAErB,UAAIA,SAAQ,IACR,SAAS,MAAM;AAEnB,aAAO,EAAEA,SAAQ,QAAQ;AACvB,YAAIE,OAAM,MAAMF,MAAK;AAErB,YAAI,WAAW,aACX,WAAW,OAAOE,IAAG,GAAG,OAAOA,IAAG,GAAGA,MAAK,QAAQ,MAAM,IACxD;AAEJ,oBAAY,QAAQA,MAAK,aAAa,SAAY,OAAOA,IAAG,IAAI,QAAQ;AAAA,MAC1E;AACA,aAAO;AAAA,IACT;AAUA,aAAS,YAAY,QAAQ,QAAQ;AACnC,aAAO,WAAW,QAAQ,WAAW,MAAM,GAAG,MAAM;AAAA,IACtD;AASA,aAAS,WAAW,QAAQ;AAC1B,aAAO,eAAe,QAAQiB,OAAM,UAAU;AAAA,IAChD;AAUA,aAAS,WAAWtB,MAAKK,MAAK;AAC5B,UAAIc,QAAOnB,KAAI;AACf,aAAO,UAAUK,IAAG,IAChBc,MAAK,OAAOd,QAAO,WAAW,WAAW,MAAM,IAC/Cc,MAAK;AAAA,IACX;AAUA,aAAS,UAAU,QAAQd,MAAK;AAC9B,UAAIH,SAAQ,SAAS,QAAQG,IAAG;AAChC,aAAO,aAAaH,MAAK,IAAIA,SAAQ;AAAA,IACvC;AASA,QAAI,aAAa,mBAAmB,QAAQ,kBAAkB,MAAM,IAAI;AASxE,QAAI,SAAS;AAIb,QAAKY,aAAY,OAAO,IAAIA,UAAS,IAAI,YAAY,CAAC,CAAC,CAAC,KAAK,eACxDC,QAAO,OAAO,IAAIA,MAAG,KAAK,UAC1BC,YAAW,OAAOA,SAAQ,QAAQ,CAAC,KAAK,cACxCC,QAAO,OAAO,IAAIA,MAAG,KAAK,UAC1BC,YAAW,OAAO,IAAIA,UAAO,KAAK,YAAa;AAClD,eAAS,SAAShB,QAAO;AACvB,YAAI,SAASO,gBAAe,KAAKP,MAAK,GAClC,OAAO,UAAU,YAAYA,OAAM,cAAc,QACjD,aAAa,OAAO,SAAS,IAAI,IAAI;AAEzC,YAAI,YAAY;AACd,kBAAQ,YAAY;AAAA,YAClB,KAAK;AAAoB,qBAAO;AAAA,YAChC,KAAK;AAAe,qBAAO;AAAA,YAC3B,KAAK;AAAmB,qBAAO;AAAA,YAC/B,KAAK;AAAe,qBAAO;AAAA,YAC3B,KAAK;AAAmB,qBAAO;AAAA,UACjC;AAAA,QACF;AACA,eAAO;AAAA,MACT;AAAA,IACF;AASA,aAAS,eAAe,OAAO;AAC7B,UAAI,SAAS,MAAM,QACf,SAAS,MAAM,YAAY,MAAM;AAGrC,UAAI,UAAU,OAAO,MAAM,CAAC,KAAK,YAAYM,gBAAe,KAAK,OAAO,OAAO,GAAG;AAChF,eAAO,QAAQ,MAAM;AACrB,eAAO,QAAQ,MAAM;AAAA,MACvB;AACA,aAAO;AAAA,IACT;AASA,aAAS,gBAAgB,QAAQ;AAC/B,aAAQ,OAAO,OAAO,eAAe,cAAc,CAAC,YAAY,MAAM,IAClE,WAAW,aAAa,MAAM,CAAC,IAC/B,CAAC;AAAA,IACP;AAeA,aAAS,eAAe,QAAQ,KAAK,WAAW,QAAQ;AACtD,UAAI,OAAO,OAAO;AAClB,cAAQ,KAAK;AAAA,QACX,KAAK;AACH,iBAAO,iBAAiB,MAAM;AAAA,QAEhC,KAAK;AAAA,QACL,KAAK;AACH,iBAAO,IAAI,KAAK,CAAC,MAAM;AAAA,QAEzB,KAAK;AACH,iBAAO,cAAc,QAAQ,MAAM;AAAA,QAErC,KAAK;AAAA,QAAY,KAAK;AAAA,QACtB,KAAK;AAAA,QAAS,KAAK;AAAA,QAAU,KAAK;AAAA,QAClC,KAAK;AAAA,QAAU,KAAK;AAAA,QAAiB,KAAK;AAAA,QAAW,KAAK;AACxD,iBAAO,gBAAgB,QAAQ,MAAM;AAAA,QAEvC,KAAK;AACH,iBAAO,SAAS,QAAQ,QAAQ,SAAS;AAAA,QAE3C,KAAK;AAAA,QACL,KAAK;AACH,iBAAO,IAAI,KAAK,MAAM;AAAA,QAExB,KAAK;AACH,iBAAO,YAAY,MAAM;AAAA,QAE3B,KAAK;AACH,iBAAO,SAAS,QAAQ,QAAQ,SAAS;AAAA,QAE3C,KAAK;AACH,iBAAO,YAAY,MAAM;AAAA,MAC7B;AAAA,IACF;AAUA,aAAS,QAAQN,QAAO,QAAQ;AAC9B,eAAS,UAAU,OAAO,mBAAmB;AAC7C,aAAO,CAAC,CAAC,WACN,OAAOA,UAAS,YAAY,SAAS,KAAKA,MAAK,OAC/CA,SAAQ,MAAMA,SAAQ,KAAK,KAAKA,SAAQ;AAAA,IAC7C;AASA,aAAS,UAAUA,QAAO;AACxB,UAAIwB,QAAO,OAAOxB;AAClB,aAAQwB,SAAQ,YAAYA,SAAQ,YAAYA,SAAQ,YAAYA,SAAQ,YACvExB,WAAU,cACVA,WAAU;AAAA,IACjB;AASA,aAAS,SAAS,MAAM;AACtB,aAAO,CAAC,CAAC,cAAe,cAAc;AAAA,IACxC;AASA,aAAS,YAAYA,QAAO;AAC1B,UAAI,OAAOA,UAASA,OAAM,aACtB,QAAS,OAAO,QAAQ,cAAc,KAAK,aAAc;AAE7D,aAAOA,WAAU;AAAA,IACnB;AASA,aAAS,SAAS,MAAM;AACtB,UAAI,QAAQ,MAAM;AAChB,YAAI;AACF,iBAAO,aAAa,KAAK,IAAI;AAAA,QAC/B,SAASI,KAAG;AAAA,QAAC;AACb,YAAI;AACF,iBAAQ,OAAO;AAAA,QACjB,SAASA,KAAG;AAAA,QAAC;AAAA,MACf;AACA,aAAO;AAAA,IACT;AAoBA,aAAS,UAAUJ,QAAO;AACxB,aAAO,UAAUA,QAAO,MAAM,IAAI;AAAA,IACpC;AAkCA,aAAS,GAAGA,QAAO,OAAO;AACxB,aAAOA,WAAU,SAAUA,WAAUA,UAAS,UAAU;AAAA,IAC1D;AAoBA,aAAS,YAAYA,QAAO;AAE1B,aAAO,kBAAkBA,MAAK,KAAKM,gBAAe,KAAKN,QAAO,QAAQ,MACnE,CAAC,qBAAqB,KAAKA,QAAO,QAAQ,KAAKO,gBAAe,KAAKP,MAAK,KAAK;AAAA,IAClF;AAyBA,QAAImB,WAAU,MAAM;AA2BpB,aAASM,aAAYzB,QAAO;AAC1B,aAAOA,UAAS,QAAQ,SAASA,OAAM,MAAM,KAAK,CAACsB,YAAWtB,MAAK;AAAA,IACrE;AA2BA,aAAS,kBAAkBA,QAAO;AAChC,aAAO,aAAaA,MAAK,KAAKyB,aAAYzB,MAAK;AAAA,IACjD;AAmBA,QAAI,WAAW,kBAAkB;AAmBjC,aAASsB,YAAWtB,QAAO;AAGzB,UAAI,MAAMqB,UAASrB,MAAK,IAAIO,gBAAe,KAAKP,MAAK,IAAI;AACzD,aAAO,OAAO,WAAW,OAAO;AAAA,IAClC;AA4BA,aAAS,SAASA,QAAO;AACvB,aAAO,OAAOA,UAAS,YACrBA,SAAQ,MAAMA,SAAQ,KAAK,KAAKA,UAAS;AAAA,IAC7C;AA2BA,aAASqB,UAASrB,QAAO;AACvB,UAAIwB,QAAO,OAAOxB;AAClB,aAAO,CAAC,CAACA,WAAUwB,SAAQ,YAAYA,SAAQ;AAAA,IACjD;AA0BA,aAAS,aAAaxB,QAAO;AAC3B,aAAO,CAAC,CAACA,UAAS,OAAOA,UAAS;AAAA,IACpC;AA8BA,aAASoB,MAAK,QAAQ;AACpB,aAAOK,aAAY,MAAM,IAAI,cAAc,MAAM,IAAI,SAAS,MAAM;AAAA,IACtE;AAoBA,aAAS,YAAY;AACnB,aAAO,CAAC;AAAA,IACV;AAeA,aAAS,YAAY;AACnB,aAAO;AAAA,IACT;AAEA,WAAO,UAAU;AAAA;AAAA;;;ACntDjB;AAAA;AAAA;AAEA,WAAO,UAAU,SAAUC,OAAM,MAAM;AACnC,UAAI,CAAC,KAAM,QAAO,CAAC;AACnB,UAAI,OAAO,SAAS,WAAY,QAAO,EAAE,KAAK,KAAK;AACnD,UAAI,SAAU,OAAO,KAAK,WAAW,YAAa,KAAK,SAAS;AAEhE,UAAI,MAAM,KAAK,OAAQ,0BAAUC,IAAG;AAChC,eAAO,SAAUC,OAAM;AACnB,iBAAO,SAAUC,IAAGC,IAAG;AACnB,gBAAI,OAAO,EAAE,KAAKD,IAAG,OAAOD,MAAKC,EAAC,EAAE;AACpC,gBAAI,OAAO,EAAE,KAAKC,IAAG,OAAOF,MAAKE,EAAC,EAAE;AACpC,mBAAOH,GAAE,MAAM,IAAI;AAAA,UACvB;AAAA,QACJ;AAAA,MACJ,GAAG,KAAK,GAAG;AAEX,UAAI,OAAO,CAAC;AACZ,cAAQ,SAASI,WAAWH,OAAM;AAC9B,YAAIA,SAAQA,MAAK,UAAU,OAAOA,MAAK,WAAW,YAAY;AAC1D,UAAAA,QAAOA,MAAK,OAAO;AAAA,QACvB;AAEA,YAAIA,UAAS,OAAW;AACxB,YAAI,OAAOA,SAAQ,SAAU,QAAO,SAASA,KAAI,IAAI,KAAKA,QAAO;AACjE,YAAI,OAAOA,UAAS,SAAU,QAAO,KAAK,UAAUA,KAAI;AAExD,YAAII,KAAG;AACP,YAAI,MAAM,QAAQJ,KAAI,GAAG;AACrB,gBAAM;AACN,eAAKI,MAAI,GAAGA,MAAIJ,MAAK,QAAQI,OAAK;AAC9B,gBAAIA,IAAG,QAAO;AACd,mBAAOD,WAAUH,MAAKI,GAAC,CAAC,KAAK;AAAA,UACjC;AACA,iBAAO,MAAM;AAAA,QACjB;AAEA,YAAIJ,UAAS,KAAM,QAAO;AAE1B,YAAI,KAAK,QAAQA,KAAI,MAAM,IAAI;AAC3B,cAAI,OAAQ,QAAO,KAAK,UAAU,WAAW;AAC7C,gBAAM,IAAI,UAAU,uCAAuC;AAAA,QAC/D;AAEA,YAAI,YAAY,KAAK,KAAKA,KAAI,IAAI;AAClC,YAAIK,QAAO,OAAO,KAAKL,KAAI,EAAE,KAAK,OAAO,IAAIA,KAAI,CAAC;AAClD,cAAM;AACN,aAAKI,MAAI,GAAGA,MAAIC,MAAK,QAAQD,OAAK;AAC9B,cAAIE,OAAMD,MAAKD,GAAC;AAChB,cAAIG,SAAQJ,WAAUH,MAAKM,IAAG,CAAC;AAE/B,cAAI,CAACC,OAAO;AACZ,cAAI,IAAK,QAAO;AAChB,iBAAO,KAAK,UAAUD,IAAG,IAAI,MAAMC;AAAA,QACvC;AACA,aAAK,OAAO,WAAW,CAAC;AACxB,eAAO,MAAM,MAAM;AAAA,MACvB,GAAGT,KAAI;AAAA,IACX;AAAA;AAAA;;;AC1DA,IAOA,eACA,mCAEM;AAVN;;AACA,IAAAU;AACA,IAAAA;AAKA,oBAA4B;AAC5B,wCAAwB;AAExB,IAAM,aAAa,kCAAAC;;;;;ACOnB,SAAS,aAAaC,OAAgB;AAEpC,MAAI,OAAO,WAAW,aAAa;AAEjC,WAAO,OAAO,KAAKA,KAAI,EAAE,SAAS,QAAQ;EAC5C;AAEA,SAAO,KAAK,OAAO,aAAa,GAAGA,KAAI,CAAC;AAC1C;AAEA,SAAS,aAAa,KAAW;AAE/B,MAAI,OAAO,WAAW,aAAa;AAEjC,UAAM,MAAM,OAAO,KAAK,KAAK,QAAQ;AACrC,WAAO,IAAI,WAAW,IAAI,QAAQ,IAAI,YAAY,IAAI,UAAU;EAClE;AAEA,SAAO,IAAI,WAAW,MAAM,KAAK,KAAK,GAAG,CAAC,EAAE,IAAI,CAAC,SAAS,KAAK,WAAW,CAAC,CAAC,CAAC;AAC/E;AAGA,SAAS,UAAUC,QAAYC,QAAuB;AACpD,SAAO,KAAK,UAAUD,QAAO,UAAUC,MAAK;AAC9C;AAEA,SAASC,OAAMC,OAAY;AACzB,SAAO,KAAK,MAAMA,OAAM,OAAO;AACjC;AA6CA,SAAS,gBAAgBC,IAAM;AAC7B,SAAO,SAASA,EAAC,KAAMA,GAAU,SAAS,mBAAmB,SAAUA,GAAU,IAAI;AACvF;AAEA,SAASC,cAAaD,IAAM;AAC1B,SACG,SAASA,EAAC,MACPA,GAAU,SAAS,aACpBE,SAASF,GAAU,IAAI,KAAK,SAAUA,GAAU,IAAI,OACvDA,cAAa;AAEjB;AAOA,SAASE,SAAQF,IAAM;AACrB,SAAO,MAAM,QAAQA,EAAC;AACxB;AAOA,SAAS,SAASA,IAAM;AACtB,SAAO,OAAOA,OAAM;AACtB;AAMA,SAAS,SAASA,IAAM;AACtB,SAAO,OAAOA,OAAM,YAAYA,OAAM;AACxC;AA/HA,IA+CM,UA6BA;AA5EN;;;AA+CA,IAAM,WAA2B,CAACG,MAAKP,WAAS;AAE9C,UAAIK,cAAaL,MAAK,GAAG;AACvB,YAAI;AAGJ,YAAI,UAAUA,UAASM,SAAQN,OAAM,IAAI,GAAG;AAC1C,uBAAa,IAAI,WAAWA,OAAM,IAAI;QACxC,WAESA,kBAAiB,YAAY;AACpC,uBAAaA;QACf,OAAO;AAEL,iBAAOA;QACT;AAGA,cAAM,aAAa,YAAY,aAAa,UAAU;AACtD,eAAO;UACL,MAAM;UACN,MAAM;;MAEV;AAGA,aAAOA;IACT;AAEA,IAAM,UAAyB,CAACO,MAAKP,WAAS;AAC5C,UAAI,gBAAgBA,MAAK,GAAG;AAC1B,YAAI,SAASA,OAAM,IAAI,KAAKA,OAAM,KAAK,WAAW,SAAS,GAAG;AAE5D,gBAAM,aAAaA,OAAM,KAAK,MAAM,CAAC;AACrC,gBAAMQ,UAAS,aAAa,UAAU;AAGtC,iBAAOA;QACT;MACF;AACA,aAAOR;IACT;;;;;ACxFA,IAAAS,oBAAA;SAAAA,mBAAA;;;;;eAAAC;EAAA;;;mBAAAC;EAAA;;;;IAUaD,QAEA,YAYA,gBAUA,uBA8DAC,YAwBA,iBAMA,iBAKA,aAOA,WAyEA,SASA,kBAMA;AAlOb,IAAAC,iBAAA;;;AACA;AASO,IAAMF,SAAuBA;AAE7B,IAAM,aAAa,CAAC,cAAmC;AAC5D,YAAM,QAAQ,UAAU,MAAM,IAAI;AAClC,YAAM,aAA2B,MAAM,OAAO,CAAC,KAAK,SAAQ;AAC1D,cAAM,UAAU,KAAK,KAAI;AACzB,YAAI,QAAQ,SAAS,GAAG;AACtB,cAAI,KAAKA,OAAM,OAAO,CAAC;QACzB;AACA,eAAO;MACT,GAAG,CAAA,CAAkB;AACrB,aAAO;IACT;AAEO,IAAM,iBAAiB,CAAC,UAAwB;AACrD,aAAO,MAAM,IAAI,CAAC,SAASC,WAAU,IAAI,CAAC,EAAE,KAAK,IAAI;IACvD;AAQO,IAAM,wBAAwB,CACnC,QACA,kBACA,aAAkD,CAAA,MACxC;AAEV,YAAM,UAAU,oBAAI,QAAO;AAC3B,YAAME,YAAW,CAAC,QAAiB;AAEjC,YAAI,QAAQ,QAAQ,OAAO,QAAQ,UAAU;AAC3C,iBAAO;QACT;AAEA,cAAM,WAA2B,SAAiB,IAAI,GAAG;AACzD,YAAI,YAAY,SAAS,SAAS,mBAAmB,OAAO,SAAS,SAAS,UAAU;AACtF,iBAAO;QACT;AAEA,YAAI,QAAQ,IAAI,GAAG,GAAG;AACpB,iBAAO;QACT;AACA,gBAAQ,IAAI,GAAG;AAEf,YAAI,MAAM,QAAQ,GAAG,GAAG;AACtB,iBAAO,IAAI,IAAI,CAAC,SAASA,UAAS,IAAI,CAAC;QACzC;AAEA,cAAM,MAA2B,CAAA;AACjC,mBAAWC,QAAO,OAAO,KAAK,GAAG,GAAG;AAClC,cAAI;AACF,gBAAIA,IAAG,IAAID,UAAU,IAAYC,IAAG,CAAC;UACvC,SAASC,KAAG;AAEV,gBAAID,IAAG,IAAI;UACb;QACF;AACA,eAAO;MACT;AAEA,YAAM,MAAMD,UAAS,MAAM;AAC3B,YAAM,UAA+C;QACnD,GAAG;QACH,QAAQ;;AAEV,UAAI,oBAAoB,CAAC,QAAQ,KAAK;AACpC,cAAMG,SAAQ,oBAAI,IAAG;AACrB,yBAAiB,QAAQ,CAACF,MAAK,QAAQE,OAAM,IAAIF,MAAK,GAAG,CAAC;AAC1D,gBAAQ,MAAM,CAACG,IAAGC,OAAK;AACrB,gBAAM,OAAOF,OAAM,IAAIC,GAAE,GAAG,IAAKD,OAAM,IAAIC,GAAE,GAAG,IAAe,OAAO;AACtE,gBAAM,OAAOD,OAAM,IAAIE,GAAE,GAAG,IAAKF,OAAM,IAAIE,GAAE,GAAG,IAAe,OAAO;AACtE,cAAI,SAAS;AAAM,mBAAO,OAAO;AACjC,iBAAOD,GAAE,MAAMC,GAAE,MAAM,KAAKD,GAAE,MAAMC,GAAE,MAAM,IAAI;QAClD;MACF;AACA,aAAe,WAAW,KAAK,OAAO;IACxC;AAOO,IAAMP,aAAY,CACvB,QACA,kBACA,aAAkD,CAAA,MACxC;AACV,YAAM,eAA8B,UAAU,MAAM;AACpD,eAAS,KAAK,MAAM,YAAY;AAEhC,UAAI,UAAU,EAAE,GAAG,WAAU;AAC7B,UAAI,oBAAoB,CAAC,QAAQ,KAAK;AACpC,cAAMK,SAAQ,oBAAI,IAAG;AACrB,yBAAiB,QAAQ,CAACF,MAAK,QAAQE,OAAM,IAAIF,MAAK,GAAG,CAAC;AAC1D,gBAAQ,MAAM,CAACG,IAAGC,OAAK;AACrB,gBAAM,OAAOF,OAAM,IAAIC,GAAE,GAAG,IAAKD,OAAM,IAAIC,GAAE,GAAG,IAAe,OAAO;AACtE,gBAAM,OAAOD,OAAM,IAAIE,GAAE,GAAG,IAAKF,OAAM,IAAIE,GAAE,GAAG,IAAe,OAAO;AACtE,cAAI,SAAS;AAAM,mBAAO,OAAO;AAEjC,iBAAOD,GAAE,MAAMC,GAAE,MAAM,KAAKD,GAAE,MAAMC,GAAE,MAAM,IAAI;QAClD;MACF;AACA,UAAI,aAAqB,WAAW,QAAQ,OAAO;AACnD,aAAO;IACT;AAEO,IAAM,kBAAkB,CAAC,cAAkB;AAChD,YAAM,cAAcP,WAAU,SAAS;AACvC,YAAM,SAAS,KAAK,MAAM,WAAW;AACrC,aAAO,KAAK,UAAU,QAAQ,MAAM,CAAC;IACvC;AAEO,IAAM,kBAAkB,IAAI,SAA8C;AAC/E,YAAM,oBAAoBA,WAAU,GAAG,IAAI;AAC3C,aAAeF,kBAAY,OAAO,UAAU,iBAAiB;IAC/D;AAEO,IAAM,cAAc,CAAC,wBAA+B;AACzD,YAAMU,UAAiBV,kBAAY;AACnC,YAAM,WAAsCU,QAAO,aAAaA,QAAO;AACvE,YAAM,oBAAoB,SAAS,mBAAmB;AACtD,aAAOT,OAAM,iBAAiB;IAChC;AAEM,IAAO,YAAP,MAAO,WAAS;;;;MAIb,OAAO,iBAAsD,WAAc;AAChF,cAAM,cAAc,IAAI,KAAI;AAC5B,cAAM,YAAuB,YAAoB,sBAAsB,CAAA;AACvE,mBAAW,WAAW,WAAW;AAC/B,cAAI,UAAU,QAAQ,OAAO,MAAM,IAAI;AACpC,wBAAoB,OAAO,IAAI,UAAU,OAAO;UACnD;QACF;AACA,eAAO;MACT;;;;MAKO,OAAO,eAAoD,SAAe;AAC/E,cAAM,iBAAiBA,OAAM,OAAO;AACpC,eAAO,KAAK,iBAAiB,cAAc;MAC7C;;;;MAWO,eAAY;AACjB,cAAM,WAAW,oBAAI,IAAG;AACxB,iBAAS,IAAI,IAAI;AACjB,eAAO,KAAK,qBAAqB,QAAQ;MAC3C;MAEQ,qBAAqB,UAAwB;AACnD,cAAM,SAAiC,CAAA;AACvC,cAAM,YAAY,CAAC,QAAiB;AAClC,cAAI,eAAe,YAAW;AAC5B,gBAAI,SAAS,IAAI,GAAG,GAAG;AACrB,oBAAM,IAAI,MAAM,gBAAgB;YAClC;AACA,qBAAS,IAAI,GAAG;AAChB,mBAAO,IAAI,qBAAqB,QAAQ;UAC1C;AACA,cAAI,MAAM,QAAQ,GAAG,GAAG;AACtB,mBAAO,IAAI,IAAI,CAAC,SAAS,UAAU,IAAI,CAAC;UAC1C;AACA,iBAAe,cAAAU,QAAgB,GAAG;QACpC;AACA,cAAM,QAAmB,KAAa,sBAAsB,CAAA;AAC5D,mBAAW,WAAW,OAAO;AAC3B,gBAAMC,SAAQ,KAAK,OAAO;AAC1B,iBAAO,OAAO,IAAI,UAAUA,MAAK;QACnC;AACA,eAAO;MACT;;;;MAKO,aAAU;AACf,cAAM,eAAe,KAAK,aAAY;AACtC,eAAOV,WAAU,YAAY;MAC/B;;AAMK,IAAM,UAAU,MAAK;AAC1B,aAAO,CAAC,QAAaG,SAAe;AAClC,YAAI,CAAC,OAAO,oBAAoB;AAC9B,iBAAO,qBAAqB,CAAA;QAC9B;AACA,eAAO,mBAAmB,KAAKA,IAAG;MACpC;IACF;AAEO,IAAM,mBAAmB,CAAC,SAAc,YAAyB;AACtE,YAAM,gBAAgBH,WAAU,OAAO;AACvC,YAAM,gBAAgBA,WAAU,OAAO;AACvC,aAAO,kBAAkB;IAC3B;AAEO,IAAM,wBAAwB,CAAC,cAAsB,iBAAiC;AAC3F,YAAM,aAAa,WAAW,YAAY;AAC1C,YAAM,cAAc,WAAW,YAAY;AAC3C,aAAO,iBAAiB,YAAY,WAAW;IACjD;;;;;ACtOA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAKA,SAAS,uBAAuB;AAC5B,SAAQ,sBACH,oBAAoB;AAAA,IACjB;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACJ;AACR;AAEA,SAAS,0BAA0B;AAC/B,SAAQ,yBACH,uBAAuB;AAAA,IACpB,UAAU,UAAU;AAAA,IACpB,UAAU,UAAU;AAAA,IACpB,UAAU,UAAU;AAAA,EACxB;AACR;AAIA,SAAS,iBAAiB,SAAS;AAC/B,QAAM,UAAU,IAAI,QAAQ,CAACW,UAAS,WAAW;AAC7C,UAAM,WAAW,MAAM;AACnB,cAAQ,oBAAoB,WAAW,OAAO;AAC9C,cAAQ,oBAAoB,SAAS,KAAK;AAAA,IAC9C;AACA,UAAM,UAAU,MAAM;AAClB,MAAAA,SAAQ,KAAK,QAAQ,MAAM,CAAC;AAC5B,eAAS;AAAA,IACb;AACA,UAAM,QAAQ,MAAM;AAChB,aAAO,QAAQ,KAAK;AACpB,eAAS;AAAA,IACb;AACA,YAAQ,iBAAiB,WAAW,OAAO;AAC3C,YAAQ,iBAAiB,SAAS,KAAK;AAAA,EAC3C,CAAC;AAGD,wBAAsB,IAAI,SAAS,OAAO;AAC1C,SAAO;AACX;AACA,SAAS,+BAA+B,IAAI;AAExC,MAAI,mBAAmB,IAAI,EAAE;AACzB;AACJ,QAAM,OAAO,IAAI,QAAQ,CAACA,UAAS,WAAW;AAC1C,UAAM,WAAW,MAAM;AACnB,SAAG,oBAAoB,YAAY,QAAQ;AAC3C,SAAG,oBAAoB,SAAS,KAAK;AACrC,SAAG,oBAAoB,SAAS,KAAK;AAAA,IACzC;AACA,UAAM,WAAW,MAAM;AACnB,MAAAA,SAAQ;AACR,eAAS;AAAA,IACb;AACA,UAAM,QAAQ,MAAM;AAChB,aAAO,GAAG,SAAS,IAAI,aAAa,cAAc,YAAY,CAAC;AAC/D,eAAS;AAAA,IACb;AACA,OAAG,iBAAiB,YAAY,QAAQ;AACxC,OAAG,iBAAiB,SAAS,KAAK;AAClC,OAAG,iBAAiB,SAAS,KAAK;AAAA,EACtC,CAAC;AAED,qBAAmB,IAAI,IAAI,IAAI;AACnC;AA6BA,SAAS,aAAa,UAAU;AAC5B,kBAAgB,SAAS,aAAa;AAC1C;AACA,SAAS,aAAa,MAAM;AAQxB,MAAI,wBAAwB,EAAE,SAAS,IAAI,GAAG;AAC1C,WAAO,YAAa,MAAM;AAGtB,WAAK,MAAM,OAAO,IAAI,GAAG,IAAI;AAC7B,aAAO,KAAK,KAAK,OAAO;AAAA,IAC5B;AAAA,EACJ;AACA,SAAO,YAAa,MAAM;AAGtB,WAAO,KAAK,KAAK,MAAM,OAAO,IAAI,GAAG,IAAI,CAAC;AAAA,EAC9C;AACJ;AACA,SAAS,uBAAuBC,QAAO;AACnC,MAAI,OAAOA,WAAU;AACjB,WAAO,aAAaA,MAAK;AAG7B,MAAIA,kBAAiB;AACjB,mCAA+BA,MAAK;AACxC,MAAI,cAAcA,QAAO,qBAAqB,CAAC;AAC3C,WAAO,IAAI,MAAMA,QAAO,aAAa;AAEzC,SAAOA;AACX;AACA,SAAS,KAAKA,QAAO;AAGjB,MAAIA,kBAAiB;AACjB,WAAO,iBAAiBA,MAAK;AAGjC,MAAI,eAAe,IAAIA,MAAK;AACxB,WAAO,eAAe,IAAIA,MAAK;AACnC,QAAM,WAAW,uBAAuBA,MAAK;AAG7C,MAAI,aAAaA,QAAO;AACpB,mBAAe,IAAIA,QAAO,QAAQ;AAClC,0BAAsB,IAAI,UAAUA,MAAK;AAAA,EAC7C;AACA,SAAO;AACX;AAUA,SAAS,OAAO,MAAMC,UAAS,EAAE,SAAS,SAAS,UAAU,WAAW,IAAI,CAAC,GAAG;AAC5E,QAAM,UAAU,UAAU,KAAK,MAAMA,QAAO;AAC5C,QAAM,cAAc,KAAK,OAAO;AAChC,MAAI,SAAS;AACT,YAAQ,iBAAiB,iBAAiB,CAAC,UAAU;AACjD,cAAQ,KAAK,QAAQ,MAAM,GAAG,MAAM,YAAY,MAAM,YAAY,KAAK,QAAQ,WAAW,GAAG,KAAK;AAAA,IACtG,CAAC;AAAA,EACL;AACA,MAAI,SAAS;AACT,YAAQ,iBAAiB,WAAW,CAAC,UAAU;AAAA;AAAA,MAE/C,MAAM;AAAA,MAAY,MAAM;AAAA,MAAY;AAAA,IAAK,CAAC;AAAA,EAC9C;AACA,cACK,KAAK,CAAC,OAAO;AACd,QAAI;AACA,SAAG,iBAAiB,SAAS,MAAM,WAAW,CAAC;AACnD,QAAI,UAAU;AACV,SAAG,iBAAiB,iBAAiB,CAAC,UAAU,SAAS,MAAM,YAAY,MAAM,YAAY,KAAK,CAAC;AAAA,IACvG;AAAA,EACJ,CAAC,EACI,MAAM,MAAM;AAAA,EAAE,CAAC;AACpB,SAAO;AACX;AAMA,SAAS,SAAS,MAAM,EAAE,QAAQ,IAAI,CAAC,GAAG;AACtC,QAAM,UAAU,UAAU,eAAe,IAAI;AAC7C,MAAI,SAAS;AACT,YAAQ,iBAAiB,WAAW,CAAC,UAAU;AAAA;AAAA,MAE/C,MAAM;AAAA,MAAY;AAAA,IAAK,CAAC;AAAA,EAC5B;AACA,SAAO,KAAK,OAAO,EAAE,KAAK,MAAM,MAAS;AAC7C;AAKA,SAAS,UAAU,QAAQ,MAAM;AAC7B,MAAI,EAAE,kBAAkB,eACpB,EAAE,QAAQ,WACV,OAAO,SAAS,WAAW;AAC3B;AAAA,EACJ;AACA,MAAI,cAAc,IAAI,IAAI;AACtB,WAAO,cAAc,IAAI,IAAI;AACjC,QAAM,iBAAiB,KAAK,QAAQ,cAAc,EAAE;AACpD,QAAM,WAAW,SAAS;AAC1B,QAAM,UAAU,aAAa,SAAS,cAAc;AACpD;AAAA;AAAA,IAEA,EAAE,mBAAmB,WAAW,WAAW,gBAAgB,cACvD,EAAE,WAAW,YAAY,SAAS,cAAc;AAAA,IAAI;AACpD;AAAA,EACJ;AACA,QAAM,SAAS,eAAgB,cAAc,MAAM;AAE/C,UAAM,KAAK,KAAK,YAAY,WAAW,UAAU,cAAc,UAAU;AACzE,QAAIC,UAAS,GAAG;AAChB,QAAI;AACA,MAAAA,UAASA,QAAO,MAAM,KAAK,MAAM,CAAC;AAMtC,YAAQ,MAAM,QAAQ,IAAI;AAAA,MACtBA,QAAO,cAAc,EAAE,GAAG,IAAI;AAAA,MAC9B,WAAW,GAAG;AAAA,IAClB,CAAC,GAAG,CAAC;AAAA,EACT;AACA,gBAAc,IAAI,MAAM,MAAM;AAC9B,SAAO;AACX;AAwBA,gBAAgB,WAAW,MAAM;AAE7B,MAAI,SAAS;AACb,MAAI,EAAE,kBAAkB,YAAY;AAChC,aAAS,MAAM,OAAO,WAAW,GAAG,IAAI;AAAA,EAC5C;AACA,MAAI,CAAC;AACD;AACJ,WAAS;AACT,QAAM,gBAAgB,IAAI,MAAM,QAAQ,mBAAmB;AAC3D,mCAAiC,IAAI,eAAe,MAAM;AAE1D,wBAAsB,IAAI,eAAe,OAAO,MAAM,CAAC;AACvD,SAAO,QAAQ;AACX,UAAM;AAEN,aAAS,OAAO,eAAe,IAAI,aAAa,KAAK,OAAO,SAAS;AACrE,mBAAe,OAAO,aAAa;AAAA,EACvC;AACJ;AACA,SAAS,eAAe,QAAQ,MAAM;AAClC,SAAS,SAAS,OAAO,iBACrB,cAAc,QAAQ,CAAC,UAAU,gBAAgB,SAAS,CAAC,KAC1D,SAAS,aAAa,cAAc,QAAQ,CAAC,UAAU,cAAc,CAAC;AAC/E;AAnSA,IAAM,eAEF,mBACA,sBAqBE,oBACA,gBACA,uBAgDF,eAmFE,QAgDA,aACA,cACA,eA2CA,oBACA,WACA,gBACA,kCACA;AA9PN;AAAA;AAAA,IAAM,gBAAgB,CAAC,QAAQ,iBAAiB,aAAa,KAAK,CAACC,QAAM,kBAAkBA,GAAC;AAwB5F,IAAM,qBAAqB,oBAAI,QAAQ;AACvC,IAAM,iBAAiB,oBAAI,QAAQ;AACnC,IAAM,wBAAwB,oBAAI,QAAQ;AAgD1C,IAAI,gBAAgB;AAAA,MAChB,IAAI,QAAQ,MAAM,UAAU;AACxB,YAAI,kBAAkB,gBAAgB;AAElC,cAAI,SAAS;AACT,mBAAO,mBAAmB,IAAI,MAAM;AAExC,cAAI,SAAS,SAAS;AAClB,mBAAO,SAAS,iBAAiB,CAAC,IAC5B,SACA,SAAS,YAAY,SAAS,iBAAiB,CAAC,CAAC;AAAA,UAC3D;AAAA,QACJ;AAEA,eAAO,KAAK,OAAO,IAAI,CAAC;AAAA,MAC5B;AAAA,MACA,IAAI,QAAQ,MAAMH,QAAO;AACrB,eAAO,IAAI,IAAIA;AACf,eAAO;AAAA,MACX;AAAA,MACA,IAAI,QAAQ,MAAM;AACd,YAAI,kBAAkB,mBACjB,SAAS,UAAU,SAAS,UAAU;AACvC,iBAAO;AAAA,QACX;AACA,eAAO,QAAQ;AAAA,MACnB;AAAA,IACJ;AAwDA,IAAM,SAAS,CAACA,WAAU,sBAAsB,IAAIA,MAAK;AAgDzD,IAAM,cAAc,CAAC,OAAO,UAAU,UAAU,cAAc,OAAO;AACrE,IAAM,eAAe,CAAC,OAAO,OAAO,UAAU,OAAO;AACrD,IAAM,gBAAgB,oBAAI,IAAI;AAqC9B,iBAAa,CAAC,cAAc;AAAA,MACxB,GAAG;AAAA,MACH,KAAK,CAAC,QAAQ,MAAM,aAAa,UAAU,QAAQ,IAAI,KAAK,SAAS,IAAI,QAAQ,MAAM,QAAQ;AAAA,MAC/F,KAAK,CAAC,QAAQ,SAAS,CAAC,CAAC,UAAU,QAAQ,IAAI,KAAK,SAAS,IAAI,QAAQ,IAAI;AAAA,IACjF,EAAE;AAEF,IAAM,qBAAqB,CAAC,YAAY,sBAAsB,SAAS;AACvE,IAAM,YAAY,CAAC;AACnB,IAAM,iBAAiB,oBAAI,QAAQ;AACnC,IAAM,mCAAmC,oBAAI,QAAQ;AACrD,IAAM,sBAAsB;AAAA,MACxB,IAAI,QAAQ,MAAM;AACd,YAAI,CAAC,mBAAmB,SAAS,IAAI;AACjC,iBAAO,OAAO,IAAI;AACtB,YAAI,aAAa,UAAU,IAAI;AAC/B,YAAI,CAAC,YAAY;AACb,uBAAa,UAAU,IAAI,IAAI,YAAa,MAAM;AAC9C,2BAAe,IAAI,MAAM,iCAAiC,IAAI,IAAI,EAAE,IAAI,EAAE,GAAG,IAAI,CAAC;AAAA,UACtF;AAAA,QACJ;AACA,eAAO;AAAA,MACX;AAAA,IACJ;AA0BA,iBAAa,CAAC,cAAc;AAAA,MACxB,GAAG;AAAA,MACH,IAAI,QAAQ,MAAM,UAAU;AACxB,YAAI,eAAe,QAAQ,IAAI;AAC3B,iBAAO;AACX,eAAO,SAAS,IAAI,QAAQ,MAAM,QAAQ;AAAA,MAC9C;AAAA,MACA,IAAI,QAAQ,MAAM;AACd,eAAO,eAAe,QAAQ,IAAI,KAAK,SAAS,IAAI,QAAQ,IAAI;AAAA,MACpE;AAAA,IACJ,EAAE;AAAA;AAAA;;;AC9SF;;AACA,IAAAI;AACA,IAAAA;AACA,IAAAA;AACA;AACA,IAAAA;AAKA,IAAAA;AAKA;;;;;ACfA,IAOa;AAPb;;;AAOM,IAAO,WAAP,MAAe;MAMnB,YAAY,YAA4B;AAHhC,aAAA,aAAsB;AACtB,aAAA,gBAAwB,gBAAa,MAAK;AAGhD,aAAK,UAAU;MACjB;MAEO,MAAM,OAAI;AACf,YAAI,KAAK,YAAY;AACnB,gBAAM,KAAK,cAAc;AACzB;QACF;AACA,aAAK,aAAa;AAElB,cAAM,WAAW,IAAYC,kBAAS,SAAQ;AAC9C,YAAI,CAAC,SAAS,aAAa,CAAC,WAAW,WAAW;AAChD,kBAAQ,IAAI,KAAK;AACjB,kBAAQ,IAAI,WAAW,SAAS;AAChC,gBAAM,SAAS,kBAAkB,qBAAqB;AACtD,cAAI,CAAC,WAAW,WAAW;AACzB,kBAAM,MAAM,MAAM,SAAS,kBAAkB,gBAAgB;AAC7D,uBAAW,YAAY,IAAI,IAAI,WAAU;UAC3C;QACF;AAEA,aAAK,KAAK,MAAc,cAAI,OAAO,KAAK,QAAQ,QAAQ,GAAG;UACzD,SAAS,CAAC,OAAM;AACd,eAAG,kBAAkB,KAAK,QAAQ,SAAS;UAC7C;SACD;AACD,aAAK,cAAc,QAAO;AAC1B;MACF;MAEA,MAAM,IAAIC,MAAW;AACnB,cAAM,KAAK,KAAI;AACf,eAAO,KAAK,GAAG,IAAI,KAAK,QAAQ,WAAWA,IAAG;MAChD;MAEA,MAAM,MAAM,QAAc;AACxB,cAAM,KAAK,KAAI;AACf,cAAM,SAAS,MAAM,KAAK,IAAI,MAAM;AACpC,eAAO,CAAC,CAAC;MACX;MAEA,MAAM,IAAIA,MAAa,KAAM;AAC3B,cAAM,KAAK,KAAI;AACf,eAAO,KAAK,GAAG,IAAI,KAAK,QAAQ,WAAW,KAAKA,IAAG;MACrD;MAEA,MAAM,OAAOA,MAAW;AACtB,cAAM,KAAK,KAAI;AACf,eAAO,KAAK,GAAG,OAAO,KAAK,QAAQ,WAAWA,IAAG;MACnD;MAEA,MAAM,QAAK;AACT,cAAM,KAAK,KAAI;AACf,eAAO,KAAK,GAAG,MAAM,KAAK,QAAQ,SAAS;MAC7C;MAEA,MAAM,OAAI;AACR,cAAM,KAAK,KAAI;AACf,eAAO,KAAK,GAAG,WAAW,KAAK,QAAQ,SAAS;MAClD;;;;;;ACzEF,IAMa;AANb;;;AACA;AAKM,IAAO,oBAAP,MAAwB;MAG5B,YAAY,YAAY,WAAS;AAC/B,aAAK,WAAW,IAAI,SAAuD;UACzE,QAAQ;UACR,WAAW,WAAW,SAAS;SAChC;MACH;MAEQ,SAAS,YAAwD;AACvE,eAAeC,kBAAU,UAAU;UACjC,QAAQ,WAAW;UACnB,SAAS,WAAW;SACrB;MACH;;;;;MAMO,MAAM,aACX,iBAA6D;AAE7D,YAAI,CAAC,gBAAgB,UAAU;AAC7B,gBAAM,IAAI,MAAM,sDAAsD;QACxE;AACA,cAAM,KAAK,SAAS,IAAI,KAAK,SAAS,eAAe,GAAG,eAAe;MACzE;;;;;MAMO,MAAM,aACX,iBAA6D;AAE7D,cAAM,SAAS,MAAM,KAAK,SAAS,IAAI,KAAK,SAAS,eAAe,CAAC;AACrE,eAAO;MACT;;;;;;AC7CF,IAAAC,oBAAA;SAAAA,mBAAA;;;;IAAAC,iBAAA;;;AACA;;;;;ACDA;;IAAAC;AACA,IAAAA;AACA,IAAAA;AACA;AACA,IAAAA;;;;;ACJA,IAOa;AAPb;;AAIA;AAGM,IAAO,aAAP,MAAiB;MAIrB,YAAY,SAAiB,iBAAiB,YAAoB,SAAO;AACvE,aAAK,WAAW,IAAYC,kBAAS,SAAS;UAC5C;UACA;SACD;AAGD,aAAK,cAAc,KAAK,KAAI;MAC9B;;;;MAKQ,MAAM,OAAI;MAGlB;;;;MAKO,iBAAiB,SAAgB;AAEtC,cAAM,MAAM,QAAQ;AACpB,cAAM,SAAS,QAAQ;AAGvB,YAAI,WAAW,OAAO;AACpB,iBAAO;QACT;AAGA,eAAO,GAAG,MAAM,IAAI,GAAG;MACzB;;;;MAKO,MAAM,IAAI,UAAkB,OAAkB;AACnD,cAAM,KAAK;AACX,cAAM,KAAK,SAAS,IAAI,UAAU,KAAK;MACzC;;;;MAKO,MAAM,IAAI,UAAgB;AAC/B,cAAM,KAAK;AAEX,YAAI;AACF,gBAAM,QAAS,MAAM,KAAK,SAAS,IAAI,QAAQ;AAC/C,iBAAO,SAAS;QAClB,SAAS,OAAO;AAEd,iBAAO;QACT;MACF;;;;MAKO,MAAM,IAAI,UAAgB;AAC/B,cAAM,KAAK;AACX,eAAO,MAAM,KAAK,SAAS,MAAM,QAAQ;MAC3C;;;;MAKO,MAAM,OAAO,UAAgB;AAClC,cAAM,KAAK;AACX,cAAM,KAAK,SAAS,OAAO,QAAQ;MACrC;;;;MAKO,MAAM,QAAK;AAChB,cAAM,KAAK;AACX,cAAM,KAAK,SAAS,MAAK;MAC3B;;;;MAKO,uBAAuB,OAAkB;AAC9C,cAAM,UAAU,IAAI,QAAQ,MAAM,OAAO;AAEzC,eAAO,IAAI,SAAS,MAAM,UAAU;UAClC,QAAQ,MAAM;UACd,YAAY,MAAM;UAClB;SACD;MACH;;;;MAKO,MAAM,uBACX,KACA,UACA,UAAoE;AAGpE,cAAM,iBAAiB,SAAS,MAAK;AACrC,cAAMC,UAAS,MAAM,eAAe,YAAW;AAG/C,cAAM,UAAkC,CAAA;AACxC,uBAAe,QAAQ,QAAQ,CAACC,QAAOC,SAAO;AAC5C,kBAAQA,IAAG,IAAID;QACjB,CAAC;AAED,eAAO;UACL,UAAUD;UACV;UACA,WAAW,KAAK,IAAG;UACnB,MAAM,UAAU,QAAQ,eAAe,QAAQ,IAAI,MAAM,KAAK;UAC9D,cACE,UAAU,gBACV,eAAe,QAAQ,IAAI,eAAe,KAC1C;UACF,QAAQ,UAAU;UAClB;UACA,QAAQ,eAAe;UACvB,YAAY,eAAe;;MAE/B;;;;;MAMO,MAAM,eAAY;AACvB,cAAM,KAAK;AAMX,eAAO;MACT;;;;;;AC9II,SAAU,kBACd,oBAAiC;AAEjC,QAAM,WAAoC;IACxC,QAAQ;IACR,WAAW;IACX,SAAS;IACT,SAAS;IACT,gBAAgB;;AAGlB,MAAI,CAAC,oBAAoB;AACvB,WAAO;EACT;AAEA,QAAM,aAAa,mBAChB,YAAW,EACX,MAAM,GAAG,EACT,IAAI,CAACG,OAAMA,GAAE,KAAI,CAAE;AAEtB,aAAW,aAAa,YAAY;AAClC,QAAI,cAAc,YAAY;AAC5B,eAAS,UAAU;IACrB,WAAW,cAAc,YAAY;AACnC,eAAS,UAAU;IACrB,WAAW,cAAc,aAAa;AACpC,eAAS,YAAY;IACvB,WAAW,cAAc,mBAAmB;AAC1C,eAAS,iBAAiB;IAC5B,WAAW,UAAU,WAAW,UAAU,GAAG;AAC3C,YAAM,SAAS,SAAS,UAAU,MAAM,GAAG,EAAE,CAAC,GAAG,EAAE;AACnD,UAAI,CAAC,MAAM,MAAM,GAAG;AAClB,iBAAS,SAAS,SAAS;MAC7B;IACF;EACF;AAEA,SAAO;AACT;AAKM,SAAU,aAAa,eAA4B;AACvD,MAAI,CAAC,eAAe;AAClB,WAAO;EACT;AAEA,MAAI;AACF,UAAM,OAAO,IAAI,KAAK,aAAa;AACnC,WAAO,KAAK,QAAO;EACrB,QAAQ;AACN,WAAO;EACT;AACF;AAKM,SAAU,qBAAqB,SAAgB;AACnD,QAAM,eAAe,QAAQ,IAAI,eAAe;AAChD,QAAM,UAAU,QAAQ,IAAI,SAAS;AACrC,QAAM,OAAO,QAAQ,IAAI,MAAM;AAC/B,QAAM,eAAe,QAAQ,IAAI,eAAe;AAEhD,QAAM,WAAW,kBAAkB,YAAY;AAG/C,MAAI,SAAS,WAAW,KAAK,SAAS;AACpC,UAAM,cAAc,aAAa,OAAO;AACxC,QAAI,aAAa;AACf,eAAS,SAAS,KAAK,IAAI,GAAG,cAAc,KAAK,IAAG,CAAE;IACxD;EACF;AAEA,SAAO;IACL,QAAQ,SAAS,UAAU;IAC3B,MAAM,QAAQ;IACd,cAAc,gBAAgB;IAC9B,WAAW,SAAS,aAAa;IACjC,SAAS,SAAS,WAAW;IAC7B,SAAS,SAAS,WAAW;IAC7B,gBAAgB,SAAS,kBAAkB;;AAE/C;AAKM,SAAU,QACd,YACA,UAAwB;AAGxB,MAAI,SAAS,SAAS;AACpB,WAAO;EACT;AAGA,MAAI,SAAS,WAAW;AACtB,WAAO;EACT;AAEA,QAAM,MAAM,KAAK,IAAG,IAAK,WAAW;AACpC,QAAM,SAAS,WAAW,UAAU,SAAS,UAAU;AAGvD,MAAI,WAAW,GAAG;AAChB,WAAO;EACT;AAEA,SAAO,MAAM;AACf;AAKM,SAAU,qBAAqB,UAAwB;AAC3D,SAAO,SAAS,WAAW,SAAS;AACtC;AAKM,SAAU,yBAAyB,YAGxC;AACC,QAAM,UAAkC,CAAA;AAExC,MAAI,WAAW,MAAM;AACnB,YAAQ,eAAe,IAAI,WAAW;EACxC;AAEA,MAAI,WAAW,cAAc;AAC3B,YAAQ,mBAAmB,IAAI,WAAW;EAC5C;AAEA,SAAO;AACT;AAKM,SAAU,gBAAgB,SAAgB;AAC9C,QAAM,MAA8B,CAAA;AACpC,UAAQ,QAAQ,CAACC,QAAOC,SAAO;AAC7B,QAAIA,IAAG,IAAID;EACb,CAAC;AACD,SAAO;AACT;AAKM,SAAU,gBAAgB,KAA2B;AACzD,QAAM,UAAU,IAAI,QAAO;AAC3B,SAAO,QAAQ,GAAG,EAAE,QAAQ,CAAC,CAACC,MAAKD,MAAK,MAAK;AAC3C,YAAQ,IAAIC,MAAKD,MAAK;EACxB,CAAC;AACD,SAAO;AACT;AA3KA;;;;;;ACuWM,SAAU,mBACd,UAAwB;AAExB,UAAQ,UAAU;IAChB,KAAK;AACH,aAAO,IAAI,qBAAoB;IACjC,KAAK;AACH,aAAO,IAAI,mBAAkB;IAC/B,KAAK;AACH,aAAO,IAAI,6BAA4B;IACzC,KAAK;AACH,aAAO,IAAI,oBAAmB;IAChC,KAAK;AACH,aAAO,IAAI,kBAAiB;IAC9B;AACE,aAAO,IAAI,qBAAoB;EACnC;AACF;AAxXA,IA2Ca,sBA4DA,oBAkIA,8BAyFA,qBAgBA;AAlVb;;AASA;AACA;AAiCM,IAAO,uBAAP,MAA2B;MAC/B,MAAM,QAAQE,UAAyB;AACrC,YAAI;AAEF,gBAAM,WAAW,MAAMA,SAAQ,QAAQA,SAAQ,OAAO;AAGtD,cAAI,SAAS,IAAI;AACf,kBAAM,KAAK,cAAcA,UAAS,QAAQ;UAC5C;AAEA,iBAAO;YACL;YACA,WAAW;YACX,aAAa;;QAEjB,SAAS,OAAO;AAEd,cAAIA,SAAQ,SAAS;AACnB,oBAAQ,IAAI,8CAA8C,KAAK;UACjE;AAEA,gBAAM,cAAc,MAAMA,SAAQ,WAAW,IAAIA,SAAQ,QAAQ;AACjE,cAAI,aAAa;AACf,mBAAO;cACL,UAAUA,SAAQ,WAAW,uBAAuB,WAAW;cAC/D,WAAW;cACX,aAAa;;UAEjB;AAGA,gBAAM;QACR;MACF;MAEQ,MAAM,cACZA,UACA,UAAkB;AAElB,cAAM,WAAW,qBAAqB,SAAS,OAAO;AAGtD,YAAI,SAAS,SAAS;AACpB;QACF;AAEA,cAAM,QAAQ,MAAMA,SAAQ,WAAW,uBACrCA,SAAQ,QAAQ,KAChB,UACA,QAAQ;AAEV,cAAMA,SAAQ,WAAW,IAAIA,SAAQ,UAAU,KAAK;MACtD;;AAOI,IAAO,qBAAP,MAAyB;MAC7B,MAAM,QAAQA,UAAyB;AAErC,cAAM,cAAc,MAAMA,SAAQ,WAAW,IAAIA,SAAQ,QAAQ;AAEjE,YAAI,aAAa;AACf,gBAAMC,YAAW,qBAAqB,IAAI,QAAQ,YAAY,OAAO,CAAC;AAGtE,cAAI,QAAQ,aAAaA,SAAQ,GAAG;AAClC,gBAAID,SAAQ,SAAS;AACnB,sBAAQ,IAAI,mCAAmCA,SAAQ,QAAQ,GAAG;YACpE;AAEA,mBAAO;cACL,UAAUA,SAAQ,WAAW,uBAAuB,WAAW;cAC/D,WAAW;cACX,aAAa;;UAEjB;AAGA,cACE,qBAAqBC,SAAQ,MAC5B,YAAY,QAAQ,YAAY,eACjC;AACA,mBAAO,MAAM,KAAK,WAAWD,UAAS,WAAW;UACnD;QACF;AAGA,YAAIA,SAAQ,SAAS;AACnB,kBAAQ,IAAI,sCAAsCA,SAAQ,QAAQ,GAAG;QACvE;AAEA,cAAM,WAAW,MAAMA,SAAQ,QAAQA,SAAQ,OAAO;AAGtD,cAAM,WAAW,qBAAqB,SAAS,OAAO;AACtD,YAAI,CAAC,SAAS,SAAS;AACrB,gBAAM,QAAQ,MAAMA,SAAQ,WAAW,uBACrCA,SAAQ,QAAQ,KAChB,UACA,QAAQ;AAEV,gBAAMA,SAAQ,WAAW,IAAIA,SAAQ,UAAU,KAAK;QACtD;AAEA,eAAO;UACL;UACA,WAAW;UACX,aAAa;;MAEjB;MAEQ,MAAM,WACZA,UACA,aAAwB;AAExB,cAAM,qBAAqB,yBAAyB,WAAW;AAG/D,cAAM,oBAAoB,IAAI,QAAQA,SAAQ,QAAQ,KAAK;UACzD,QAAQA,SAAQ,QAAQ;UACxB,SAAS;YACP,GAAG,gBAAgBA,SAAQ,QAAQ,OAAO;YAC1C,GAAG;;SAEN;AAED,YAAI;AACF,gBAAM,WAAW,MAAMA,SAAQ,QAAQ,iBAAiB;AAGxD,cAAI,SAAS,WAAW,KAAK;AAC3B,gBAAIA,SAAQ,SAAS;AACnB,sBAAQ,IACN,yCACAA,SAAQ,QAAQ,GAAG;YAEvB;AAGA,wBAAY,YAAY,KAAK,IAAG;AAChC,kBAAMA,SAAQ,WAAW,IAAIA,SAAQ,UAAU,WAAW;AAE1D,mBAAO;cACL,UAAUA,SAAQ,WAAW,uBAAuB,WAAW;cAC/D,WAAW;cACX,aAAa;;UAEjB;AAGA,cAAI,SAAS,IAAI;AACf,kBAAM,WAAW,qBAAqB,SAAS,OAAO;AACtD,gBAAI,CAAC,SAAS,SAAS;AACrB,oBAAM,QAAQ,MAAMA,SAAQ,WAAW,uBACrCA,SAAQ,QAAQ,KAChB,UACA,QAAQ;AAEV,oBAAMA,SAAQ,WAAW,IAAIA,SAAQ,UAAU,KAAK;YACtD;UACF;AAEA,iBAAO;YACL;YACA,WAAW;YACX,aAAa;;QAEjB,SAAS,OAAO;AAEd,cAAIA,SAAQ,SAAS;AACnB,oBAAQ,IAAI,kDAAkD,KAAK;UACrE;AAEA,iBAAO;YACL,UAAUA,SAAQ,WAAW,uBAAuB,WAAW;YAC/D,WAAW;YACX,aAAa;;QAEjB;MACF;;AAOI,IAAO,+BAAP,MAAmC;MACvC,MAAM,QAAQA,UAAyB;AACrC,cAAM,cAAc,MAAMA,SAAQ,WAAW,IAAIA,SAAQ,QAAQ;AAEjE,YAAI,aAAa;AAEf,gBAAM,iBACJA,SAAQ,WAAW,uBAAuB,WAAW;AAGvD,eAAK,uBAAuBA,UAAS,WAAW,EAAE,MAAM,CAAC,UAAS;AAChE,gBAAIA,SAAQ,SAAS;AACnB,sBAAQ,KAAK,gDAAgD,KAAK;YACpE;UACF,CAAC;AAED,iBAAO;YACL,UAAU;YACV,WAAW;YACX,aAAa;;QAEjB;AAGA,cAAM,WAAW,MAAMA,SAAQ,QAAQA,SAAQ,OAAO;AAGtD,cAAM,WAAW,qBAAqB,SAAS,OAAO;AACtD,YAAI,CAAC,SAAS,WAAW,SAAS,IAAI;AACpC,gBAAM,QAAQ,MAAMA,SAAQ,WAAW,uBACrCA,SAAQ,QAAQ,KAChB,UACA,QAAQ;AAEV,gBAAMA,SAAQ,WAAW,IAAIA,SAAQ,UAAU,KAAK;QACtD;AAEA,eAAO;UACL;UACA,WAAW;UACX,aAAa;;MAEjB;MAEQ,MAAM,uBACZA,UACA,aAAwB;AAExB,cAAM,WAAW,qBAAqB,IAAI,QAAQ,YAAY,OAAO,CAAC;AAGtE,YAAI,QAAQ,aAAa,QAAQ,KAAK,CAAC,qBAAqB,QAAQ,GAAG;AACrE;QACF;AAEA,YAAI;AACF,gBAAM,WAAW,MAAMA,SAAQ,QAAQA,SAAQ,OAAO;AAEtD,cAAI,SAAS,IAAI;AACf,kBAAM,cAAc,qBAAqB,SAAS,OAAO;AACzD,gBAAI,CAAC,YAAY,SAAS;AACxB,oBAAM,QAAQ,MAAMA,SAAQ,WAAW,uBACrCA,SAAQ,QAAQ,KAChB,UACA,WAAW;AAEb,oBAAMA,SAAQ,WAAW,IAAIA,SAAQ,UAAU,KAAK;AAEpD,kBAAIA,SAAQ,SAAS;AACnB,wBAAQ,IACN,kDACAA,SAAQ,QAAQ,GAAG;cAEvB;YACF;UACF;QACF,SAAS,OAAO;AAEd,cAAIA,SAAQ,SAAS;AACnB,oBAAQ,KAAK,gDAAgD,KAAK;UACpE;QACF;MACF;;AAOI,IAAO,sBAAP,MAA0B;MAC9B,MAAM,QAAQA,UAAyB;AACrC,cAAM,WAAW,MAAMA,SAAQ,QAAQA,SAAQ,OAAO;AAEtD,eAAO;UACL;UACA,WAAW;UACX,aAAa;;MAEjB;;AAOI,IAAO,oBAAP,MAAwB;MAC5B,MAAM,QAAQA,UAAyB;AACrC,cAAM,cAAc,MAAMA,SAAQ,WAAW,IAAIA,SAAQ,QAAQ;AAEjE,YAAI,CAAC,aAAa;AAChB,gBAAM,IAAI,MACR,kBAAkBA,SAAQ,QAAQ,GAAG,oBAAoB;QAE7D;AAEA,eAAO;UACL,UAAUA,SAAQ,WAAW,uBAAuB,WAAW;UAC/D,WAAW;UACX,aAAa;;MAEjB;;;;;;ACjWF,IAiBa;AAjBb;;AASA;AACA;AAKA;AAEM,IAAO,eAAP,MAAmB;MAGvB,YAAY,QAAiB,WAAkB;AAC7C,aAAK,aAAa,IAAI,WAAW,QAAQ,SAAS;MACpD;;;;MAKO,MAAM,QACX,SACA,SACA,SAAgD;AAGhD,cAAM,WAAW,KAAK,kBAAkB,SAAS,OAAO;AAGxD,YAAI,aAAa,gBAAgB;AAC/B,gBAAM,WAAW,MAAM,QAAQ,OAAO;AACtC,iBAAO;YACL;YACA,WAAW;YACX,aAAa;;QAEjB;AAGA,cAAM,WAAW,KAAK,iBAAiB,SAAS,OAAO;AAGvD,cAAME,WAAU,mBAAmB,QAAQ;AAG3C,cAAMC,WAA4B;UAChC;UACA;UACA,YAAY,KAAK;UACjB;UACA,SAAS,QAAQ;;AAGnB,eAAO,MAAMD,SAAQ,QAAQC,QAAO;MACtC;;;;MAKQ,kBACN,SACA,SAAsB;AAGtB,YAAI,QAAQ,eAAe;AACzB,iBAAO,QAAQ;QACjB;AAGA,YAAI,QAAQ,OAAO;AACjB,iBAAO,KAAK,uBAAuB,QAAQ,KAAK;QAClD;AAGA,YAAI,QAAQ,OAAO;AACjB,iBAAO,KAAK,uBAAuB,QAAQ,KAA2B;QACxE;AAGA,eAAO;MACT;;;;MAKQ,uBACN,WAA6B;AAE7B,gBAAQ,WAAW;UACjB,KAAK;AACH,mBAAO;UACT,KAAK;UACL,KAAK;AACH,mBAAO;UACT,KAAK;AACH,mBAAO;;UACT,KAAK;AACH,mBAAO;UACT,KAAK;AACH,mBAAO;UACT;AACE,mBAAO;QACX;MACF;;;;MAKQ,iBAAiB,SAAkB,SAAsB;AAE/D,YAAI,QAAQ,UAAU;AACpB,cAAI,OAAO,QAAQ,aAAa,YAAY;AAC1C,mBAAO,QAAQ,SAAS,OAAO;UACjC;AACA,iBAAO,QAAQ;QACjB;AAGA,eAAO,KAAK,WAAW,iBAAiB,OAAO;MACjD;;;;MAKO,MAAM,QAAK;AAChB,cAAM,KAAK,WAAW,MAAK;MAC7B;;;;MAKO,MAAM,OAAO,UAAgB;AAClC,cAAM,KAAK,WAAW,OAAO,QAAQ;MACvC;;;;MAKO,MAAM,IAAI,UAAgB;AAC/B,eAAO,MAAM,KAAK,WAAW,IAAI,QAAQ;MAC3C;;;;MAKO,WAAQ;AACb,eAAO,KAAK;MACd;;;;;;AC7GI,SAAU,qBACd,UAA0B;AAE1B,UAAQ,UAAU;IAChB,KAAK;AACH,aAAO,IAAI,mBAAkB;IAC/B,KAAK;AACH,aAAO,IAAI,cAAa;IAC1B,KAAK;AACH,aAAO,IAAI,gBAAe;IAC5B;AACE,aAAO,IAAI,mBAAkB;EACjC;AACF;AAKM,SAAU,UAAUC,QAAe,eAAuB,KAAG;AACjE,QAAM,SAASA,SAAQ,eAAe,KAAK,OAAM;AACjD,SAAOA,SAAQ;AACjB;AAlEA,IAca,oBAWA,eAWA;AApCb;;AAcM,IAAO,qBAAP,MAAyB;MAC7B,UAAU,SAAiB,cAAsB,UAAgB;AAC/D,cAAMA,SAAQ,eAAe,KAAK,IAAI,GAAG,UAAU,CAAC;AACpD,eAAO,KAAK,IAAIA,QAAO,QAAQ;MACjC;;AAOI,IAAO,gBAAP,MAAoB;MACxB,UAAU,SAAiB,cAAsB,UAAgB;AAC/D,cAAMA,SAAQ,eAAe;AAC7B,eAAO,KAAK,IAAIA,QAAO,QAAQ;MACjC;;AAOI,IAAO,kBAAP,MAAsB;MAC1B,UAAU,SAAiB,cAAsB,UAAgB;AAC/D,eAAO,KAAK,IAAI,cAAc,QAAQ;MACxC;;;;;;ACvCF,IAQa;AARb;;AAIA;AAEA;AAEM,IAAO,eAAP,MAAmB;MAGvB,YAAY,UAAyB,CAAA,GAAE;AACrC,aAAK,UAAU;UACb,aAAa,QAAQ,eAAe;UACpC,SAAS,QAAQ,WAAW;UAC5B,cAAc,QAAQ,gBAAgB;UACtC,UAAU,QAAQ,YAAY;UAC9B,SAAS,QAAQ,WAAW,CAAC,KAAK,KAAK,KAAK,KAAK,KAAK,GAAG;UACzD,SAAS,QAAQ,YAAY,MAAK;UAAE;;MAExC;;;;MAKO,MAAM,QACX,WACA,eAAwD;AAExD,YAAI;AACJ,YAAI;AAEJ,iBAAS,UAAU,GAAG,WAAW,KAAK,QAAQ,aAAa,WAAW;AACpE,cAAI;AACF,kBAAM,SAAS,MAAM,UAAS;AAG9B,gBAAI,kBAAkB,UAAU;AAC9B,kBAAI,KAAK,oBAAoB,MAAM,GAAG;AACpC,+BAAe;AAGf,oBAAI,YAAY,KAAK,QAAQ,aAAa;AACxC,yBAAO;gBACT;AAGA,sBAAMC,SAAQ,KAAK,eAAe,OAAO;AACzC,qBAAK,QAAQ,QACX,SACA,IAAI,MAAM,QAAQ,OAAO,MAAM,EAAE,GACjCA,MAAK;AAGP,sBAAM,KAAK,MAAMA,MAAK;AACtB;cACF;YACF;AAGA,mBAAO;UACT,SAAS,OAAO;AACd,wBAAY,iBAAiB,QAAQ,QAAQ,IAAI,MAAM,OAAO,KAAK,CAAC;AAGpE,kBAAM,cAAc,gBAChB,cAAc,OAAO,OAAO,IAC5B,KAAK,iBAAiB,KAAK;AAG/B,gBAAI,YAAY,KAAK,QAAQ,eAAe,CAAC,aAAa;AACxD,oBAAM;YACR;AAGA,kBAAMA,SAAQ,KAAK,eAAe,OAAO;AACzC,iBAAK,QAAQ,QAAQ,SAAS,WAAWA,MAAK;AAE9C,kBAAM,KAAK,MAAMA,MAAK;UACxB;QACF;AAGA,cAAM,aAAc,IAAI,MAAM,4BAA4B;MAC5D;;;;MAKO,MAAM,qBACX,MACA,aACA,SAA8D;AAE9D,YAAI,KAAK,WAAW,GAAG;AACrB,gBAAM,IAAI,MAAM,yCAAyC;QAC3D;AAEA,YAAI;AACJ,cAAM,aAAuB,CAAA;AAE7B,mBAAW,OAAO,MAAM;AACtB,cAAI;AAEF,kBAAM,WAAW,MAAM,KAAK,QAAQ,YAAW;AAC7C,qBAAO,MAAM,QAAQ,KAAK,WAAW;YACvC,CAAC;AAGD,gBAAI,SAAS,SAAS,KAAK;AACzB,qBAAO;YACT;AAGA,gBACE,SAAS,UAAU,OACnB,SAAS,SAAS,OAClB,SAAS,WAAW,KACpB;AACA,qBAAO;YACT;AAGA,uBAAW,KAAK,GAAG;AACnB,wBAAY,IAAI,MAAM,8BAA8B,SAAS,MAAM,EAAE;UACvE,SAAS,OAAO;AACd,uBAAW,KAAK,GAAG;AACnB,wBAAY,iBAAiB,QAAQ,QAAQ,IAAI,MAAM,OAAO,KAAK,CAAC;UACtE;QACF;AAGA,cAAM,IAAI,MACR,oBAAoB,WAAW,KAAK,IAAI,CAAC,iBAAiB,WAAW,WAAW,eAAe,EAAE;MAErG;;;;MAKQ,oBAAoB,UAAkB;AAC5C,cAAM,UAAU,KAAK,QAAQ;AAE7B,YAAI,OAAO,YAAY,YAAY;AACjC,iBAAO,QAAQ,QAAQ;QACzB;AAEA,YAAI,MAAM,QAAQ,OAAO,GAAG;AAC1B,iBAAO,QAAQ,SAAS,SAAS,MAAM;QACzC;AAEA,eAAO;MACT;;;;MAKQ,iBAAiB,OAAU;AAEjC,YAAI,iBAAiB,aAAa,MAAM,QAAQ,SAAS,OAAO,GAAG;AACjE,iBAAO;QACT;AAGA,YAAI,MAAM,SAAS,gBAAgB,MAAM,QAAQ,SAAS,SAAS,GAAG;AACpE,iBAAO;QACT;AAGA,cAAM,UAAU,KAAK,QAAQ;AAC7B,YAAI,OAAO,YAAY,YAAY;AACjC,iBAAO,QAAQ,QAAkB,KAAK;QACxC;AAEA,eAAO;MACT;;;;MAKQ,eAAe,SAAe;AACpC,cAAM,aAAa,qBAAqB,KAAK,QAAQ,OAAO;AAC5D,cAAM,YAAY,WAAW,UAC3B,SACA,KAAK,QAAQ,cACb,KAAK,QAAQ,QAAQ;AAIvB,eAAO,UAAU,SAAS;MAC5B;;;;MAKQ,MAAM,MAAM,IAAU;AAC5B,cAAcC,iBAAW,SAAS,EAAE;MACtC;;;;;;ACrMF,IAOa;AAPb;;AAKA;AAEM,IAAO,sBAAP,MAA0B;MAAhC,cAAA;AACU,aAAA,mBAGJ,oBAAI,IAAG;MA6Fb;;;;MAxFS,YAAY,SAAgB;AAEjC,cAAM,MAAM,QAAQ;AACpB,cAAM,SAAS,QAAQ;AAGvB,YAAI,WAAW,SAAS,WAAW,QAAQ;AACzC,iBAAO,GAAG,MAAM,IAAI,GAAG;QACzB;AAKA,eAAO,GAAG,MAAM,IAAI,GAAG,IAAI,KAAK,IAAG,CAAE;MACvC;;;;MAKO,MAAM,QACXC,MACA,WAAkC;AAGlC,cAAM,mBAAmB,KAAK,iBAAiB,IAAIA,IAAG;AAEtD,YAAI,kBAAkB;AAEpB,gBAAM,WAAW,MAAM,iBAAiB;AAGxC,iBAAO;YACL,UAAU,SAAS,MAAK;YACxB,iBAAiB;;QAErB;AAGA,cAAMC,YAAmB,gBAAa,MAAK;AAC3C,aAAK,iBAAiB,IAAID,MAAKC,SAAQ;AAEvC,YAAI;AAEF,gBAAM,WAAW,MAAM,UAAS;AAGhC,UAAAA,UAAS,QAAQ,QAAQ;AAGzB,eAAK,iBAAiB,OAAOD,IAAG;AAGhC,iBAAO;YACL;YACA,iBAAiB;;QAErB,SAAS,OAAO;AAEd,UAAAC,UAAS,OAAO,KAAK;AAGrB,eAAK,iBAAiB,OAAOD,IAAG;AAGhC,gBAAM;QACR;MACF;;;;MAKO,WAAWA,MAAW;AAC3B,eAAO,KAAK,iBAAiB,IAAIA,IAAG;MACtC;;;;MAKO,mBAAgB;AACrB,eAAO,KAAK,iBAAiB;MAC/B;;;;MAKO,QAAK;AACV,aAAK,iBAAiB,MAAK;MAC7B;;;;;;AC9FI,SAAU,wBAAwB,WAAiB;AAIvD,QAAM,aAAa,IAAI,gBAAe;AAGtC,QAAME,WAAU,IAAYC,iBAAW,QAAQ,WAAW,IAAI;AAC9D,EAAAD,SAAQ,QAAQ,KAAK,MAAK;AACxB,eAAW,MAAK;EAClB,CAAC;AAGD,QAAM,UAAU,MAAK;AACnB,IAAAA,SAAQ,OAAM;EAChB;AAEA,SAAO,EAAE,YAAY,QAAO;AAC9B;AAKA,eAAsB,iBACpB,KACA,MACA,WAAiB;AAEjB,QAAM,EAAE,YAAY,QAAO,IAAK,wBAAwB,SAAS;AAEjE,MAAI;AACF,UAAM,WAAW,MAAM,MAAM,KAAK;MAChC,GAAG;MACH,QAAQ,WAAW;KACpB;AAED,YAAO;AACP,WAAO;EACT,SAAS,OAAO;AACd,YAAO;AAGP,QAAI,iBAAiB,SAAS,MAAM,SAAS,cAAc;AACzD,YAAM,IAAI,MAAM,yBAAyB,SAAS,OAAO,GAAG,EAAE;IAChE;AAEA,UAAM;EACR;AACF;AAzDA,IAAAE,gBAAA;;AAIA;;;;;ACJA,IAgBa;AAhBb;;AAUA;AACA;AACA;AACA;AACA,IAAAC;AAEM,IAAO,mBAAP,MAAuB;MAM3B,YAAY,UAAuC,CAAA,GAAE;AACnD,aAAK,iBAAiB;AACtB,aAAK,qBAAqB,IAAI,mBAAkB;AAChD,aAAK,eAAe,IAAI,aAAY;AACpC,aAAK,eAAe,IAAI,oBAAmB;MAC7C;;;;MAKO,sBAAsB,aAAgC;AAC3D,aAAK,mBAAmB,sBAAsB,WAAW;MAC3D;;;;MAKO,uBAAuB,aAAiC;AAC7D,aAAK,mBAAmB,uBAAuB,WAAW;MAC5D;;;;MAKO,oBAAoB,aAA8B;AACvD,aAAK,mBAAmB,oBAAoB,WAAW;MACzD;;;;MAKO,yBAAyB,aAAgC;AAC9D,aAAK,mBAAmB,yBAAyB,WAAW;MAC9D;;;;MAKO,0BAA0B,aAAiC;AAChE,aAAK,mBAAmB,0BAA0B,WAAW;MAC/D;;;;MAKO,uBAAuB,aAA8B;AAC1D,aAAK,mBAAmB,uBAAuB,WAAW;MAC5D;;;;MAKO,oBAAiB;AACtB,aAAK,mBAAmB,SAAQ;MAClC;;;;MAKO,MAAM,aAAU;AACrB,cAAM,KAAK,aAAa,MAAK;MAC/B;;;;MAKO,MAAM,QACX,KACA,UAA8B,CAAA,GAAE;AAGhC,cAAM,gBAAoC;UACxC,GAAG,KAAK;UACR,GAAG;;AAIL,YAAI;AACJ,YAAI,OAAO,QAAQ,UAAU;AAC3B,oBAAU,IAAI,QAAQ,KAAK,aAAa;QAC1C,OAAO;AACL,oBAAU;QACZ;AAGA,kBAAU,MAAM,KAAK,mBAAmB,eAAe,OAAO;AAG9D,YAAI,cAAc,cAAc,SAAS;AACvC,qBAAW,eAAe,cAAc,aAAa,SAAS;AAC5D,sBAAU,MAAM,YAAY,OAAO;UACrC;QACF;AAGA,cAAM,cAAc,cAAc,eAAe;AAEjD,YAAI,aAAa;AACf,gBAAM,YAAY,KAAK,aAAa,YAAY,OAAO;AACvD,gBAAM,SAAS,MAAM,KAAK,aAAa,QAAQ,WAAW,YAAW;AACnE,mBAAO,MAAM,KAAK,eAAe,SAAS,aAAa;UACzD,CAAC;AACD,iBAAO,OAAO;QAChB;AAEA,eAAO,MAAM,KAAK,eAAe,SAAS,aAAa;MACzD;;;;MAKQ,MAAM,eACZ,SACA,SAA2B;AAE3B,YAAI;AAEF,gBAAM,eACJ,OAAO,QAAQ,UAAU,WACrB,QAAQ,QACR,QAAQ,QACN,CAAA,IACA;AAGR,gBAAM,oBAAoB,OAAO,QAAmC;AAClE,kBAAMC,WAAU,QAAQ,WAAW;AACnC,mBAAO,MAAM,iBACX,IAAI,KACJ;cACE,QAAQ,IAAI;cACZ,SAAS,IAAI;cACb,MAAM,IAAI;cACV,GAAG;eAELA,QAAO;UAEX;AAGA,gBAAM,sBAAsB,OAAO,KAAa,SAAwC;AACtF,kBAAMA,WAAU,QAAQ,WAAW;AACnC,mBAAO,MAAM,iBAAiB,KAAK,MAAMA,QAAO;UAClD;AAEA,cAAI;AAGJ,cAAI,cAAc;AAChB,kBAAM,eAAe,IAAI,aAAa,YAAY;AAGlD,gBAAI,QAAQ,gBAAgB,QAAQ,aAAa,SAAS,GAAG;AAC3D,oBAAM,UAAU,CAAC,QAAQ,KAAK,GAAG,QAAQ,YAAY;AACrD,yBAAW,MAAM,aAAa,qBAC5B,SACA;gBACE,QAAQ,QAAQ;gBAChB,SAAS,QAAQ;gBACjB,MAAM,QAAQ;gBACd,GAAG;iBAEL,mBAAmB;YAEvB,OAAO;AACL,yBAAW,MAAM,aAAa,QAAQ,YAAW;AAE/C,sBAAM,SAAS,MAAM,KAAK,aAAa,QACrC,SACA,SACA,iBAAiB;AAEnB,uBAAO,OAAO;cAChB,CAAC;YACH;UACF,OAAO;AAEL,kBAAM,SAAS,MAAM,KAAK,aAAa,QACrC,SACA,SACA,iBAAiB;AAEnB,uBAAW,OAAO;UACpB;AAGA,qBAAW,MAAM,KAAK,mBAAmB,gBAAgB,QAAQ;AAGjE,cAAI,QAAQ,cAAc,UAAU;AAClC,uBAAW,eAAe,QAAQ,aAAa,UAAU;AACvD,yBAAW,MAAM,YAAY,QAAQ;YACvC;UACF;AAEA,iBAAO;QACT,SAAS,OAAO;AAEd,gBAAM,iBAAiB,MAAM,KAAK,mBAAmB,aACnD,iBAAiB,QAAQ,QAAQ,IAAI,MAAM,OAAO,KAAK,CAAC,CAAC;AAG3D,gBAAM;QACR;MACF;;;;MAKO,MAAM,QACX,KACA,UAA8B,CAAA,GAAE;AAEhC,cAAM,WAAW,MAAM,KAAK,QAAQ,KAAK;UACvC,GAAG;UACH,QAAQ;UACR,SAAS;YACP,QAAQ;YACR,GAAK,QAAQ,WAAmB,CAAA;;SAEnC;AAED,YAAI,CAAC,SAAS,IAAI;AAChB,gBAAM,IAAI,MAAM,QAAQ,SAAS,MAAM,KAAK,SAAS,UAAU,EAAE;QACnE;AAEA,eAAO,MAAM,SAAS,KAAI;MAC5B;;;;MAKO,MAAM,SACX,KACAC,OACA,UAA8B,CAAA,GAAE;AAEhC,cAAM,WAAW,MAAM,KAAK,QAAQ,KAAK;UACvC,GAAG;UACH,QAAQ;UACR,SAAS;YACP,gBAAgB;YAChB,QAAQ;YACR,GAAK,QAAQ,WAAmB,CAAA;;UAElC,MAAM,KAAK,UAAUA,KAAI;SAC1B;AAED,YAAI,CAAC,SAAS,IAAI;AAChB,gBAAM,IAAI,MAAM,QAAQ,SAAS,MAAM,KAAK,SAAS,UAAU,EAAE;QACnE;AAEA,eAAO,MAAM,SAAS,KAAI;MAC5B;;;;MAKO,MAAM,QACX,KACAA,OACA,UAA8B,CAAA,GAAE;AAEhC,cAAM,WAAW,MAAM,KAAK,QAAQ,KAAK;UACvC,GAAG;UACH,QAAQ;UACR,SAAS;YACP,gBAAgB;YAChB,QAAQ;YACR,GAAK,QAAQ,WAAmB,CAAA;;UAElC,MAAM,KAAK,UAAUA,KAAI;SAC1B;AAED,YAAI,CAAC,SAAS,IAAI;AAChB,gBAAM,IAAI,MAAM,QAAQ,SAAS,MAAM,KAAK,SAAS,UAAU,EAAE;QACnE;AAEA,eAAO,MAAM,SAAS,KAAI;MAC5B;;;;MAKO,MAAM,WACX,KACA,UAA8B,CAAA,GAAE;AAEhC,cAAM,WAAW,MAAM,KAAK,QAAQ,KAAK;UACvC,GAAG;UACH,QAAQ;UACR,SAAS;YACP,QAAQ;YACR,GAAK,QAAQ,WAAmB,CAAA;;SAEnC;AAED,YAAI,CAAC,SAAS,IAAI;AAChB,gBAAM,IAAI,MAAM,QAAQ,SAAS,MAAM,KAAK,SAAS,UAAU,EAAE;QACnE;AAEA,eAAO,MAAM,SAAS,KAAI;MAC5B;;;;;;ACvRF,eAAsB,WACpB,OACA,MAAyB;AAEzB,QAAM,MAAM,iBAAiB,UAAU,MAAM,MAAM,OAAO,KAAK;AAC/D,QAAM,UAAU,iBAAiB,UAAU,QAAQ,IAAI,QAAQ,KAAK,IAAI;AAExE,SAAO,MAAM,cAAc,QAAQ,SAAS,IAAI;AAClD;AArDA,IAQM;AARN;;AAKA;AAGA,IAAM,gBAAgB,IAAI,iBAAgB;AAkD1C,eAAW,UAAU,eACnB,KACA,SAA4B;AAE5B,aAAO,MAAM,cAAc,QAAW,KAAK,OAAO;IACpD;AAKA,eAAW,WAAW,eACpB,KACAC,OACA,SAA4B;AAE5B,aAAO,MAAM,cAAc,SAAY,KAAKA,OAAM,OAAO;IAC3D;AAKA,eAAW,UAAU,eACnB,KACAA,OACA,SAA4B;AAE5B,aAAO,MAAM,cAAc,QAAW,KAAKA,OAAM,OAAO;IAC1D;AAKA,eAAW,aAAa,eACtB,KACA,SAA4B;AAE5B,aAAO,MAAM,cAAc,WAAc,KAAK,OAAO;IACvD;AAKA,eAAW,wBAAwB,SAAU,aAAW;AACtD,oBAAc,sBAAsB,WAAW;IACjD;AAKA,eAAW,yBAAyB,SAAU,aAAW;AACvD,oBAAc,uBAAuB,WAAW;IAClD;AAKA,eAAW,sBAAsB,SAAU,aAAW;AACpD,oBAAc,oBAAoB,WAAW;IAC/C;AAKA,eAAW,oBAAoB,WAAA;AAC7B,oBAAc,kBAAiB;IACjC;AAKA,eAAW,aAAa,iBAAK;AAC3B,YAAM,cAAc,WAAU;IAChC;AAKA,eAAW,eAAe,SACxB,SAAqC;AAErC,aAAO,IAAI,iBAAiB,OAAO;IACrC;AAKA,eAAW,mBAAmB,WAAA;AAC5B,aAAO;IACT;;;;;AClJA,IAAAC,oBAAA;SAAAA,mBAAA;;;;;;;;;;;;;;;IAAAC,iBAAA;;AAMA;AACA;AAyBA;AACA;AACA;AACA;AACA;AAGA;;;;;ACvCA,IAMAC;AANA;;AACA,IAAAC;AAKA,IAAAD,aAA2B;AAC3B,IAAAC;AACA,IAAAA;AACA,IAAAA;AACA,IAAAA;AACA;AACA,IAAAA;;;;;ACZA,IAEa;AAFb;;;AAEM,IAAO,qBAAP,MAAyB;MAG7B,YAAY,cAAsB,cAAkB;AAClD,aAAK,YAAY;AACjB,aAAK,YAAY;MACnB;;;;;;ACRF,IAGa;AAHb;;;AACA;AAEM,IAAO,aAAP,MAAiB;MAAvB,cAAA;AAKS,aAAA,YAAiC,CAAA;MAU1C;MARS,MAAM,WAAoB,WAA0C,SAAU;AACnF,cAAM,WAAW,IAAYC,iBAAW,SAAY,SAAS;AAC7D,cAAM,cAAc,MAAM,SAAS,cAAc,OAAO;AACxD,YAAI,CAAC,aAAa;AAChB,gBAAM,aAAa,MAAM,SAAS,cAAc,OAAO;AACvD,gBAAM,IAAI,mBAAmB,iBAAiB,UAAU,IAAI,EAAE,WAAU,CAAE;QAC5E;MACF;;;;;;ACjBF,IAYa;AAZb;;;AACA;AACA;AAUM,IAAO,eAAP,MAAmB;MAIvB,YAAY,WAAwB,oBAAuC;AACzE,aAAK,SAAS;AACd,aAAK,kBAAkB;MACzB;;;;;MAMO,MAAM,YAAY,iBAAkB;AACzC,YAAI,gBAAgB,WAAW,KAAK,QAAQ;AAC1C,gBAAM,IAAI,MACR,sGAAsG;QAE1G;AACA,YAAI;AACJ,cAAM,qBAAqB,IAAI,WAAU;AAEzC,YAAI,gBAAgB,WAAW;AAC7B,6BAAmB,YAAY,gBAAgB;QACjD;AACA,cAAM,WAAW,MAAM,KAAK,gBAAgB,gBAAgB,SAAS,kBAAkB,EAAE,MAAM,CAACC,QAAK;AACnG,cAAIA,eAAa,oBAAoB;AACnC,iCAAqBA;UACvB,OAAO;AACL,oBAAQ,IAAIA,GAAC;UACf;QACF,CAAC;AAED,YAAI,oBAAoB;AACtB,0BAAgB,QAAQ;YACtB,MAAM,mBAAmB;YACzB,MAAM,mBAAmB;;QAE7B;AAEA,YAAI,UAAU;AACZ,0BAAgB,WAAW;QAC7B;AAEA,yBAAiB,aAAa,QAAS,gBAAgB,YAAY,QAAQ,aAAc;AAEzF,eAAO;MACT;;;;;;AC3DF,IAmCa;AAnCb;;;AACA;AAEA;AACA;AA+BM,IAAO,cAAP,MAAO,aAAW;MAAxB,cAAA;AA8BS,aAAA,QAA2B,CAAA;AA0B3B,aAAA,YAAY,IAAYC,iBAAI,UAAS;AACrC,aAAA,aAAa,IAAYA,iBAAI,UAAS;AAGtC,aAAA,2BAA2B,IAAYA,iBAAI,UAAS;AAEpD,aAAA,uBAAuB,IAAYA,iBAAI,YAG5C,CAAC,kBAA0B,aAAa;MAsN5C;;MArRS,WAAW,cAAW;AAC3B,YAAI,CAAE,WAAmB,0BAA0B;AAChD,qBAAmB,2BAA2B,CAAA;QACjD;AACA,eAAQ,WAAmB;MAC7B;MAEO,WAAW,YAAYC,QAAwB;AACnD,mBAAmB,2BAA2BA;MACjD;;;;;MAMO,OAAO,eAAeC,QAAwB;AACnD,cAAM,UAAU,aAAY;AAC5B,qBAAY,cAAc,EAAE,GAAG,SAAS,GAAGA,OAAK;MAClD;;;;MAKO,OAAO,mBAAgB;AAC3B,mBAAmB,2BAA2B,CAAA;MACjD;;;;MAQO,SAASA,QAAwB;AACtC,aAAK,QAAQ,EAAE,GAAG,KAAK,OAAO,GAAGA,OAAK;MACxC;;;;MAKQ,SACN,UACA,OAA4B;AAE5B,YAAI;AAEF,uBAAY,YAAY,QAAQ,IAAI,KAAK;AAEzC,eAAK,MAAM,QAAQ,IAAI,KAAK;QAC9B,SAAS,KAAK;AACZ,kBAAQ,MAAM,2BAA2B,QAAQ,MAAM,GAAG;QAC5D;MACF;;;;;MAiBO,gBACL,iBAAgC;AAGhC,cAAM,uBAAuB,KAAK,yBAAyB,gBAAgB,MAAM;AACjF,YAAI,sBAAsB;AACxB,gBAAM,IAAI,MACR,sBAAsB,gBAAgB,MAAM,wCAAwC;QAExF;AAEA,aAAK,WAAW,IAAI,eAAe;MACrC;;;;;MAMO,eAAe,gBAA2B;AAC/C,cAAM,eAAe,KAAK,UAAU,SAAS,CAAC,cAAc,cAAc,cAAc;AACxF,YAAI,CAAC,cAAc;AACjB,eAAK,UAAU,IAAI,cAAc;AACjC,yBAAe,eAAe,IAAI;QACpC;MACF;MAEO,qBAAqB,WAAiB;AAC3C,eAAO,CAAC,CAAC,KAAK,yBAAyB,SAAS;MAClD;;;;;;MAOO,yBACL,WACA,iBAAgC,CAAA,GAAE;AAElC,uBAAe,KAAK,IAAI;AAExB,YAAI;AAEJ,uBAAe,KAAK,WAAW,SAAS,CAACC,aAAW;AAClD,iBAAOA,SAAQ,WAAW;QAC5B,CAAC;AAED,YAAI,CAAC,cAAc;AACjB,eAAK,UAAU,SAAQ,EAAG,QAAQ,CAAC,mBAAkB;AACnD,gBAAI,CAAC,gBAAgB,CAAC,eAAe,SAAS,cAAc,GAAG;AAC7D,6BAAe,eAAe,yBAAyB,WAAW,cAAc;YAClF;UACF,CAAC;QACH;AAEA,eAAO;MACT;;AAKc,aAAA,sBAAsB;UAClC,cAAc;UACd,WAAW;;MACX;;;;;;;;;MAUK,MAAM,oBAEX,iBAAoB,aAA8D,CAAA,GAAE;AACpF,cAAM,UAAU,EAAE,GAAG,aAAY,qBAAqB,GAAG,WAAU;AAEnE,0BAAkB,cAAc,yBAAyB,iBAAiB;UACxE,aAAa;SACd;AAGD,wBAAgB,YAAY,gBAAgB,aAAa,CAAA;AACzD,wBAAgB,UAAU,mBAAmB;AAG7C,YAAI,gBAAgB,WAAW,qBAAqB;AAClD,gBAAM,SAAc,MAAM,KAAK,yBAAyB,eAAgE;AACxH,iBAAO,YAAY;AACnB,iBAAO;QACT;AAGA,YAAI,iBAAiB,aAAa,UAAU,aAAa,QAAQ,cAAc;AAC7E,gBAAM,mBAAmB,KAAK,IAAG;AAGjC,cAAI,CAAC,QAAQ,WAAW;AACtB,iBAAK,SAAS,qBAAqB;cACjC,eAAe,gBAAgB,aAAa,MAAM;cAClD,QAAQ,gBAAgB;cACxB,WAAW;cACX,OAAO;cACP,WAAW;cACX,SAAS,gBAAgB;aAC1B;UACH;AAEA,gBAAM,eAAe,KAAK,yBAAyB,gBAAgB,MAAM;AAEzE,cAAI,CAAC,cAAc;AACjB,oBAAQ,IAAI,sCAAsC,gBAAgB,MAAM,EAAE;AAC1E,4BAAgB,QAAQ;cACtB,MAAM;cACN,MAAM,CAAA;;AAER,4BAAgB,YAAY,QAAQ;AAGpC,4BAAgB,YAAY;AAC5B,8BAAkB,cAAc,wBAAwB,iBAAiB;cACvE,aAAa;aACd;AAGD,gBAAI,CAAC,QAAQ,WAAW;AACtB,mBAAK,SAAS,sBAAsB;gBAClC,eAAe,gBAAgB,aAAa,MAAM;gBAClD,QAAQ,gBAAgB;gBACxB,WAAW;gBACX,OAAO;gBACP,WAAW,KAAK,IAAG;gBACnB,YAAY,KAAK,IAAG,IAAK;gBACzB,SAAS,gBAAgB;gBACzB,OAAO,gBAAgB,OAAO;eAC/B;YACH;AAEA,mBAAO;UACT;AAEA,4BAAkB,MAAM,aAAa,YAAY,eAAe;AAChE,0BAAgB,YAAY;AAE5B,4BAAkB,cAAc,wBAAwB,iBAAiB;YACvE,aAAa;WACd;AAGD,cAAI,CAAC,QAAQ,WAAW;AACtB,iBAAK,SAAS,sBAAsB;cAClC,eAAe,gBAAgB,aAAa,MAAM;cAClD,QAAQ,gBAAgB;cACxB,WAAW;cACX,OAAO;cACP,WAAW,KAAK,IAAG;cACnB,YAAY,KAAK,IAAG,IAAK;cACzB,SAAS,gBAAgB;cACzB,OAAO,gBAAgB,OAAO;aAC/B;UACH;AAEA,iBAAO;QACT,WAAW,iBAAiB,aAAa,UAAU,YAAY;AAE7D,cAAI,CAAC,QAAQ,WAAW;AACtB,iBAAK,SAAS,sBAAsB;cAClC,eAAe,gBAAgB,aAAa,MAAM;cAClD,QAAQ,gBAAgB;cACxB,WAAW;cACX,OAAO;cACP,WAAW,KAAK,IAAG;cACnB,SAAS,gBAAgB;cACzB,OAAO,gBAAgB,OAAO;aAC/B;UACH;AAEA,eAAK,qBACF,aAAa,gBAAgB,YAAY,EAAE,GAC1C,iBAAiB,eAAe;AACpC,iBAAO;QACT,OAAO;AACL,kBAAQ,IAAI,iCAAiC;AAC7C,kBAAQ,IAAI,eAAe;AAC3B,iBAAO;QACT;MACF;;;;;MAMO,MAAM,yBAAyB,aAA0D;AAC9F,cAAM,wBAAwB,MAAM,KAAK,yBAAyB,KAAK,OAAM,qBAAmB;AAC9F,iBAAO,iBAAiB,aAAa,YAAY,QAAQ;QAC3D,CAAC;AACD,YAAI,CAAC,uBAAuB;AAC1B,kBAAQ,IAAI,uDAAuD,YAAY,QAAQ,QAAQ,EAAE;AACjG,kBAAQ,IAAI,KAAK,yBAAyB,SAAQ,CAAE;AACpD,iBAAO;QACT,OAAO;AACL,kBAAQ,IAAI,kDAAkD,YAAY,QAAQ,QAAQ,EAAE;QAC9F;AACA,cAAM,SAAS,MAAM,sBAAsB,eAAe,WAAW;AACrE,eAAO;MACT;;;;;;ACzTF,IAIM,YAgBO;AApBb;;;AACA;AAGA,IAAM,aAAkB;AAgBlB,IAAO,gBAAP,MAAO,eAAa;;MAEjB,OAAO,wBACZ,eACA,eACA,iBACAC,QAAO,CAAA,GAAE;AAET,YAAI,CAAC,eAAe;AAClB,iBAAO;QACT;AACA,YAAYC,iBAAY,aAAa,aAAa,GAAG;AACnD,iBAAO;QACT;AACA,YAAI,yBAAyB,gBAAe;AAC1C,cAAI,CAAC,cAAc,QAAQ,cAAc,YAAY;AACnD,0BAAc,OAAO;AACrB,0BAAc,aAAa,cAAc;UAC3C;AACA,cAAI,CAAC,cAAc,QAAQ,cAAc,aAAa;AACpD,0BAAc,OAAO;AACrB,0BAAc,cAAc,cAAc;AAC1C,0BAAc,YAAY,yBAAyB,IAAI,aAAa;UACtE;AACA,cAAI,CAAC,gBAAgB,YAAYD,MAAK,SAAS,UAAU,GAAG;AAC1D,0BAAc,mBAAkB;AAChC,mBAAO;cACL,kBAAkB;cAClB,UAAU,cAAc;;UAE5B,OAAO;AACL,mBAAO;cACL,0BAA0B;cAC1B,QAAQ;;UAEZ;QACF,WAAW,MAAM,QAAQ,aAAa,GAAG;AAEvC,iBAAO,cAAc,IAAI,CAAC,MAAME,WAC9B,eAAc;YACZ;YACA;YACA,mBAAmB;YACnBF,MAAK,OAAO,OAAOE,MAAK,CAAC;;WAC1B;QAEL,WAAW,kBAAkB,QAAQ,OAAO,kBAAkB,UAAU;AAEtE,iBAAO,OAAO,QAAQ,aAAa,EAAE,OAAO,CAAC,KAAK,CAACC,MAAKC,MAAK,MAAK;AAChE,kBAAM,UAAUJ,MAAK,OAAOG,IAAG;AAC/B,gBAAIA,IAAG,IAAI,eAAc,wBACvBC,QACA,eACA,mBAAmB,eACnB,OAAO;AAET,mBAAO;UACT,GAAG,CAAA,CAAE;QACP,OAAO;AACL,iBAAO;QACT;MACF;MAEO,OAAO,yBAAyB,eAAoB,eAA6B;AAEtF,YACUH,iBAAY,aAAa,aAAa,KAC3C,yBAAyB,aAC5B;AACA,iBAAO;QACT;AACA,YAAI,kBAAkB,QAAQ,OAAO,kBAAkB,UAAU;AAE/D,cACE,yBAAyB,OACzB,yBAAyB,OACzB,yBAAyB,QACzB,yBAAyB,UACzB,yBAAyB,SACzB,yBAAyB,WACzB,OAAO,cAAc,SAAS,YAC9B;AACA,mBAAO;UACT;AACA,cAAI,cAAc,kBAAkB;AAClC,kBAAM,gBAAgB,IAAI,eAAa;AACvC,0BAAc,WAAW,cAAc;AACvC,gBAAI,CAAC,cAAc,QAAQ,cAAc,YAAY;AACnD,4BAAc,OAAO;AACrB,4BAAc,aAAa,cAAc;YAC3C;AACA,gBAAI,CAAC,cAAc,QAAQ,cAAc,aAAa;AACpD,4BAAc,OAAO;AACrB,4BAAc,cAAc,cAAc;AAC1C,4BAAc,YAAY,yBAAyB,IAAI,aAAa;YACtE;AACA,0BAAc,mBAAkB;AAChC,mBAAO;UACT,WAAW,MAAM,QAAQ,aAAa,GAAG;AACvC,kBAAM,cAAc,CAAA;AACpB,uBAAW,QAAQ,eAAe;AAChC,0BAAY,KAAK,eAAc,yBAAyB,MAAM,aAAa,CAAC;YAC9E;AACA,mBAAO;UACT,OAAO;AACL,mBAAO,OAAO,KAAK,aAAa,EAAE,OAAO,CAAC,KAAKE,SAAO;AACpD,kBAAIA,IAAG,IAAI,eAAc,yBAAyB,cAAcA,IAAG,GAAG,aAAa;AACnF,qBAAO;YACT,GAAG,CAAA,CAAE;UACP;QACF,OAAO;AACL,iBAAO;QACT;MACF;MAyBA,cAAA;AApBO,aAAA,WAA2BE,WAAU,IAAG;AAOvC,aAAA,YAAY;AAIZ,aAAA,yBACN,IAAYJ,iBAAI,mBACd,EAAE;AAEE,aAAA,4BACN,IAAYA,iBAAI,mBACd,EAAE;MAGS;;;;MAOP,MAAM,cAAW;AACvB,YAAI,KAAK,iBAAiB;AACxB,iBAAO,KAAK,gBAAgB;QAC9B,OAAO;AACL,eAAK,kBAA0B,gBAAa,MAAK;QACnD;AACA,YAAG,KAAK,SAAS,cAAc;AAC7B,cAAI,0BAA0B,CAAC,KAAK,0BAA0B,oBAAmB;AACjF,cAAI,mBAAmB;AACvB,cAAI,2BAA2B;AAG/B,gBAAM,cAAc,YAAW;AAC7B,kBAAM,WAAW,MAAM,KAAK,WAAW;cACrC,QAAQ;cACR,SAAS;gBACP,UAAU,KAAK;gBACf,SAAiBI,WAAU,IAAG;gBAC9B,OAAO;gBACP,aAAa;gBACb,MAAM,KAAK,uBAAuB,KAAK,SAAS;gBAChD,cAAc,CAAC,KAAK,0BAA0B,oBAAmB;;cAEnE,UAAU;aACX,EAAE,MAAM,MAAK;AACZ,sBAAQ,IAAI,yBAAyB;AACrC,mBAAK,YAAY;YACnB,CAAC;AACD,gBAAI,YAAY,SAAS,UAAU;AACjC,yCAA2B,SAAS,SAAS;AAC7C,iCAAmB,SAAS,SAAS;YACvC;UACF;AACA,gBAAM,YAAW;AAGjB,iBAAO,KAAK,uBAAuB,KAAK,SAAS,KAAK,kBAAkB;AACtE,gBAAI,0BAA0B;AAC5B,qBAAO,0BAA0B;AAC/B,wBAAQ,IAAI,iDAAiD;AAC7D,sBAAcJ,iBAAW,SAAS,EAAE;AACpC,sBAAM,YAAW;cACnB;YACF;AACA,gBAAI;AACJ,gBAAI,KAAK,uBAAuB,KAAK,SAAS,GAAG;AAC/C,wBAAU,KAAK,uBAAuB,MAAK;YAC7C;AACA,gBAAI;AACJ,uBAAW,MAAM,KAAK,WAAW;cAC/B,QAAQ;cACR,SAAS;gBACP,UAAU,KAAK;gBACf,SAAiBI,WAAU,IAAG;gBAC9B,OAAO;gBACP,aAAa,UAAU,UAAU;gBACjC,cAAc;gBACd,MAAM,KAAK,uBAAuB,KAAK,SAAS;gBAChD,GAAG,UAAU,EAAE,WAAW,QAAO,IAAK,CAAA;;cAExC,UAAU;aACX,EAAE,MAAM,MAAK;AACZ,sBAAQ,IAAI,yBAAyB;AACrC,mBAAK,YAAY;AACjB,qBAAO;YACT,CAAC;AAED,gBAAI,YAAY,SAAS,YAAY,SAAS,SAAS,WAAW;AAChE,mBAAK,0BAA0B,KAAK,SAAS,SAAS,SAAS;YACjE;AACA,uCAA2B,YAAY,SAAS,YAAY,SAAS,SAAS;AAC9E,sCAA0B,CAAC,KAAK,0BAA0B,oBAAmB;AAG7E,+BAAmB,YAAY,SAAS,YAAY,SAAS,SAAS;UACxE;QAEF;AACA,aAAK,gBAAgB,QAAO;AAC5B,aAAK,kBAAkB;MACzB;;;;;;MAOO,MAAM,eAAe,aAA0D;AACpF,YAAI,YAAY,QAAQ,cAAc,QAAQ,KAAK,cAAc,MAAM;AACrE,eAAK,qBAAqB,KAAK,IAAG;QACpC,WAAW,YAAY,QAAQ,cAAc,OAAO;AAClD,eAAK,YAAY;QACnB;AAGA,YAAI,YAAY,QAAQ,gBAAgB,aAAa;AAEnD,sBAAY,WAAW;YACrB,UAAU,KAAK;YACf,SAAS,YAAY,QAAQ;YAC7B,OAAO;YACP,aAAa;YACb,WAAW,KAAK;YAChB,MAAM,KAAK,uBAAuB,KAAK,SAAS;YAChD,cAAc,CAAC,KAAK,0BAA0B,oBAAmB;;QAErE;AAGA,YAAI,YAAY,QAAQ,gBAAgB,YAAY;AAClD,sBAAY,WAAW;YACrB,UAAU,KAAK;YACf,SAAS,YAAY,QAAQ;YAC7B,OAAO;YACP,aAAa;YACb,MAAM,KAAK,uBAAuB,KAAK,SAAS;YAChD,cAAc,CAAC,KAAK,0BAA0B,oBAAmB;;QAErE;AAGA,YAAI,YAAY,QAAQ,gBAAgB,SAAS;AAC/C,eAAK,0BAA0B,KAAK,YAAY,QAAQ,SAAS;AACjE,cAAI,KAAK,uBAAuB,KAAK,SAAS,KAAK,YAAY,SAAS,iBAAiB,OAAO;AAC9F,kBAAM,UAAU,KAAK,uBAAuB,MAAK;AACjD,wBAAY,WAAW;cACrB,UAAU,KAAK;cACf,SAAS,YAAY,QAAQ;cAC7B,OAAO;cACP,aAAa;cACb,MAAM,KAAK,uBAAuB,KAAK,SAAS;;cAChD,cAAc,CAAC,KAAK,0BAA0B,oBAAmB;cACjE,WAAW,KAAK,uBAAuB,MAAK;;UAEhD,OAAO;AACL,wBAAY,WAAW;cACrB,UAAU,KAAK;cACf,SAAS,YAAY,QAAQ;cAC7B,OAAO;cACP,aAAa;cACb,MAAM,KAAK,uBAAuB,KAAK,SAAS;cAChD,cAAc,CAAC,KAAK,0BAA0B,oBAAmB;;UAErE;AACA,sBAAY,UAAU;QACxB;AAEA,eAAO;MACT;;;;;MAMO,MAAM,UAAO;AAClB,YAAI,KAAK,aAAa;AACpB,eAAK,YAAY,yBAAyB,OAAO,IAAI;QACvD;MACF;;;;MAKQ,MAAM,qBAAkB;AAE9B,YAAI,KAAK,SAAS,cAAc;AAC9B;QACF;AACA,cAAcJ,iBAAW,SAAS,CAAC;AACnC,gBAAQ,IAAI,mCAAmC,KAAK,IAAI,EAAE;AAC1D,YAAIK,WAAU;AACd,sBAAe,QAAO,KAAK,WAAW;AACpC,gBAAM,KAAK,iBAAgB;AAC3B,gBAAcL,iBAAW,SAAS,GAAI;QACxC;AACA,cAAcA,iBAAW,SAAS,GAAI;AACtC,cAAM,KAAK,QAAO;AAClB,gBAAQ,IAAI,yBAAyB,KAAK,QAAQ,EAAE;MACtD;MAEQ,MAAM,mBAAgB;AAC5B,YAAI,KAAK,SAAS,cAAc;AAC9B,kBAAQ,IAAI,iBAAiB;AAC7B,gBAAM,WAAW,MAAM,KAAK,WAAW;YACrC,QAAQ;YACR,SAAS;cACP,UAAU,KAAK;cACf,SAAiBI,WAAU,IAAG;cAC9B,OAAO;cACP,aAAa;cACb,WAAW,KAAK;;YAElB,UAAU;WACX,EAAE,MAAM,MAAK;AACZ,iBAAK,YAAY;UACnB,CAAC;AAGD,cAAI,YAAY,SAAS,YAAY,SAAS,SAAS,cAAc,OAAO;AAC1E,iBAAK,YAAY;UACnB,OAAO;AACL,iBAAK,qBAAqB,KAAK,IAAG;UACpC;AACA,cAAI,YAAY,SAAS,YAAY,SAAS,SAAS,MAAM;AAC3D,iBAAK,YAAW;UAClB;QACF;AACA,YAAI,KAAK,IAAG,IAAK,KAAK,qBAAqB,KAAO;AAChD,kBAAQ,IAAI,sBAAsB,KAAK,QAAQ,EAAE;AACjD,eAAK,YAAY;QACnB;MACF;;MAGO,MAAM,SAAS,SAAU;AAC9B,aAAK,uBAAuB,KAAK,OAAO;AACxC,aAAK,YAAW;AAChB,cAAM,KAAK,uBAAuB,aAAY;MAChD;MAEO,MAAM,YAAS;AACpB,YAAI,KAAK,0BAA0B,UAAU;QAE7C;AACA,cAAM,KAAK,0BAA0B,aAAY;AACjD,cAAM,cAAc,KAAK,0BAA0B,MAAK;AACxD,eAAO;MACT;;;;;MAMO,MAAM,kBAAkB,mBAAsC,oBAAoB,MAAI;AAC3F,cAAM,SAAS,kBAAkB,UAAS;AAC1C,YAAI,eAAe;AACnB,eAAM,CAAC,cAAc;AACnB,gBAAM,EAAE,OAAAD,QAAO,KAAI,IAAK,MAAM,OAAO,KAAI;AACzC,cAAGA,QAAO;AACR,kBAAM,KAAK,SAASA,MAAK;UAC3B;AACA,yBAAe;QACjB;AACA,YAAI,mBAAmB;AACrB,gBAAM,KAAK,MAAM,IAAI;QACvB;MACF;MAEO,MAAM,iBAAiB,mBAAoC;AAChE,cAAM,SAAS,kBAAkB,UAAS;AAC1C,eAAM,KAAK,aAAa,KAAK,0BAA0B,cAAa,GAAI;AACtE,gBAAMA,SAAQ,MAAM,KAAK,UAAS;AAClC,cAAIA,WAAU,YAAY;AACxB,mBAAO,YAAW;AAClB,kBAAM,kBAAkB,MAAK;AAC7B;UACF;AACA,gBAAM,OAAO,MAAMA,MAAK;QAC1B;MACF;;;;;;MAOO,MAAM,MAAM,oBAAoB,OAAK;AAC1C,YAAI,mBAAmB;AACrB,eAAK,SAAS,UAAU;QAC1B;AACA,aAAK,YAAY;MACnB;;;;;;ACpbF,IAkCa;AAlCb;;;AACA;AAiCM,IAAO,cAAP,MAAkB;MAKtB,YAAY,YAA0C;AACpD,YAAI,WAAW,6BAA6B,CAAC,WAAW,gBAAgB;AACtE,gBAAM,IAAI,MAAM,0EAA0E;QAC5F;AACA,aAAK,UAAU;MACjB;MAUO,MAAM,KACX,YAAa;AAEb,YAAI;AAKJ,YAAI,KAAK,QAAQ,gBAAgB;AAC/B,6BAAmB,MAAM,KAAK,QAAQ,eAAe,qBAAqB,YACxE,WAAW,YAAY,IACvB,UAAU;QAEd;AACA,cAAM,aAAa,KAAK,QAAQ,cAAc,KAAK,QAAQ;AAC3D,cAAM,wBAAwB,MAAM,WAAW,UAAU;AACzD,YAAI;AACJ,YAAI,kBAAkB;AACpB,yBAAgB,MAAM,iBAAiB;QACzC,WAAW,uBAAuB;AAChC,yBAAe;QACjB,OAAO;AACL,yBAAe;QACjB;AACA,eAAO;MACT;;;;;;ACpEF,SAAS,eACP,UACA,OAA4B;AAE5B,MAAI;AACF,gBAAY,YAAY,QAAQ,IAAI,KAAK;EAC3C,SAAS,KAAK;AACZ,YAAQ,MAAM,4BAA4B,QAAQ,MAAM,GAAG;EAC7D;AACF;AApBA,IAMM,oBAgBO;AAtBb;;;AACA;AACA;AACA;AACA;AAEA,IAAM,qBAAqB,IAAYG,kBAAW,iBAAgB;AAgB5D,IAAO,eAAP,MAAmB;;;;;MAuBvB,YAAY,YAAkC,WAAsB;AAN7D,aAAA,YAAqB;AAO1B,YAAI,OAAO,eAAe,UAAU;AAClC,eAAK,cAAc;QACrB,OAAO;AACL,eAAK,cAAc;QACrB;AACA,aAAK,SAAS;MAChB;;;;MAKO,MAAM,KAAK,SAAuB,cAAuB,OAAK;AACnE,cAAM,mBAAmB,KAAK,IAAG;AAEjC,YAAI,iBAA+D;UACjE,QAAQ,KAAK;UACb,SAAS;UACT,UAAU;UACV,aAAa;YACX,IAAYC,WAAU,IAAG;YACzB,OAAO;;;AAKX,yBAAiB,cAAc,wBAAwB,gBAAgB;UACrE,YAAY,CAAC,eAA6D;AACxE,mBAAO,KAAK,aAAa,UAAU;UACrC;SACD;AAGD,YAAI,CAAC,KAAK,WAAW;AACnB,yBAAe,qBAAqB;YAClC,eAAe,eAAe,YAAY;YAC1C,QAAQ,KAAK;YACb,WAAW;YACX,OAAO;YACP,WAAW;YACX,SAAS;WACV;QACH;AAEA,YAAI;AACJ,2BAAmB,MAAM,KAAK,aAAa,gBAAgB,WAAW;AAGtE,2BAAmB,cAAc,yBAAyB,kBAAkB;UAC1E,YAAY,CAAC,eAA6D;AACxE,mBAAO,KAAK,aAAa,UAAU;UACrC;SACD;AAGD,YAAI,CAAC,KAAK,WAAW;AACnB,yBAAe,sBAAsB;YACnC,eAAe,eAAe,YAAY;YAC1C,QAAQ,KAAK;YACb,WAAW;YACX,OAAO;YACP,WAAW,KAAK,IAAG;YACnB,YAAY,KAAK,IAAG,IAAK;YACzB,SAAS,kBAAkB;YAC3B,OAAO,kBAAkB,OAAO;WACjC;QACH;AAEA,eAAO,iBAAiB;MAC1B;MAEQ,MAAM,aAAa,mBAAiE,cAAuB,OAAK;AACtH,YAAI;AACJ,YAAI,KAAK,aAAa;AACpB,gBAAM,WAAW,MAAM,mBAAmB,SACxC,KAAK,aACL,mBACA,cAAc,EAAE,eAAe,cAAa,IAAK,CAAA,CAAE;AAErD,6BAAmB;QACrB,OAAO;AACL,6BAAmB,MAAM,KAAK,YAAY,KAAK,iBAAiB;QAClE;AACA,YAAI,iBAAiB,OAAO;AAC1B,kBAAQ,MACN,aAAa,KAAK,MAAM,qBAAqB,iBAAiB,MAAM,IAAI,eAAe,KAAK,UAC1F,iBAAiB,MAAM,MACvB,MACA,CAAC,CACF,EAAE;AAEL,cAAI,CAAC,iBAAiB,OAAO;AAC3B,kBAAM,IAAI,mBAAmB,iBAAiB,MAAM,MAAM,iBAAiB,MAAM,IAAI;UACvF;AACA,iBAAO;QACT;AACA,YAAI,iBAAiB,OAAO;AAC1B,kBAAQ,IACN,oDAAoD,iBAAiB,MAAM,MAAM,EAAE;AAErF,gBAAcD,iBAAW,SAAS,iBAAiB,MAAM,SAAS;AAElE,6BAAoB,MAAM,KAAK,aAAa,mBAAmB,WAAW;QAC5E;AACA,eAAO;MACT;;;;;;ACtJF,IAAAE,oBAAA;SAAAA,mBAAA;;;;;;;;IAAAC,iBAAA;;;AACA;AACA;AACA;AACA;AACA;;;;;ACFO,SAASC,WAAU,KAAK;AAC7B,SAAO,OAAO,OAAO,IAAI,SAAS;AACpC;AAIO,SAAS,MAAM,MAAM,aAAa;AACvC,MAAI,CAAC,KAAM,QAAO;AAClB,SAAO,IAAI,QAAQ,SAAU,KAAK;AAChC,WAAO,WAAW,WAAY;AAC5B,aAAO,IAAI,WAAW;AAAA,IACxB,GAAG,IAAI;AAAA,EACT,CAAC;AACH;AACO,SAAS,UAAUC,MAAKC,MAAK;AAClC,SAAO,KAAK,MAAM,KAAK,OAAO,KAAKA,OAAMD,OAAM,KAAKA,IAAG;AACzD;AAKO,SAAS,cAAc;AAC5B,SAAO,KAAK,OAAO,EAAE,SAAS,EAAE,EAAE,UAAU,CAAC;AAC/C;AAUO,SAAS,eAAe;AAC7B,MAAI,MAAM,KAAK,IAAI,IAAI;AACvB,MAAI,OAAO,QAAQ;AACjB,UAAM,SAAS;AAAA,EACjB;AACA,WAAS;AACT,SAAO;AACT;AAMO,SAAS,qBAAqB;AACnC,MAAI,OAAO,cAAc,eAAe,OAAO,UAAU,UAAU,eAAe,OAAO,UAAU,MAAM,YAAY,YAAY;AAC/H,WAAO;AAAA,EACT,OAAO;AACL,WAAO;AAAA,EACT;AACF;AAvDA,IAMW,wBACA,uBACA,uBAmBP;AA3BJ;AAAA;AAMO,IAAI,yBAAyB,QAAQ,QAAQ,KAAK;AAClD,IAAI,wBAAwB,QAAQ,QAAQ,IAAI;AAChD,IAAI,wBAAwB,QAAQ,QAAQ;AAmBnD,IAAI,SAAS;AAAA;AAAA;;;ACxBN,SAAS,OAAO,aAAa;AAClC,MAAI,QAAQ;AAAA,IACV,MAAM,aAAM;AAAA,IACZ,kBAAkB;AAAA,IAClB,IAAI,IAAI,iBAAiB,WAAW;AAAA,IACpC,QAAQ,CAAC;AAAA;AAAA,EACX;AACA,QAAM,GAAG,YAAY,SAAU,UAAU;AACvC,QAAI,MAAM,kBAAkB;AAC1B,YAAM,iBAAiB,SAAS,IAAI;AAAA,IACtC;AAAA,EACF;AACA,SAAO;AACT;AACO,SAAS,MAAM,cAAc;AAClC,eAAa,GAAG,MAAM;AACtB,eAAa,SAAS,CAAC;AACzB;AACO,SAAS,YAAY,cAAc,aAAa;AACrD,MAAI;AACF,iBAAa,GAAG,YAAY,aAAa,KAAK;AAC9C,WAAO;AAAA,EACT,SAAS,KAAK;AACZ,WAAO,QAAQ,OAAO,GAAG;AAAA,EAC3B;AACF;AACO,SAAS,UAAU,cAAc,IAAI;AAC1C,eAAa,mBAAmB;AAClC;AACO,SAAS,YAAY;AAG1B,MAAI,OAAO,eAAe,eAAe,WAAW,QAAQ,WAAW,KAAK,MAAM;AAChF,WAAO;AAAA,EACT;AAGA,OAAK,OAAO,WAAW,eAAe,OAAO,SAAS,gBAAgB,OAAO,qBAAqB,YAAY;AAC5G,QAAI,iBAAiB,SAAS;AAC5B,YAAM,IAAI,MAAM,qGAAqG;AAAA,IACvH;AACA,WAAO;AAAA,EACT,OAAO;AACL,WAAO;AAAA,EACT;AACF;AACO,SAAS,sBAAsB;AACpC,SAAO;AACT;AAnDA,IACWE,eACA,MAkDA;AApDX;AAAA;AAAA;AACO,IAAIA,gBAAe;AACnB,IAAI,OAAO;AAkDX,IAAI,eAAe;AAAA,MACxB;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA,cAAcA;AAAA,IAChB;AAAA;AAAA;;;ACAM,SAAU,mBACZ,cAA0B;AAE1B,QAAM,YAAY,IAAG,IAAK,aAAa;AACvC,QAAMC,YAAW,aAAa,IAAI,OAAO,QAAQ,EAAC;AAMlD,SAAO,MAAM;AACT,UAAMC,QAAOD,UAAS,KAAI,EAAG;AAE7B,QAAI,CAACC,OAAM;AACP;;AAEJ,UAAMC,SAAQD,MAAK,CAAC;AACpB,UAAM,OAAOA,MAAK,CAAC;AACnB,QAAI,OAAO,WAAW;AAClB,mBAAa,IAAI,OAAOC,MAAK;WAC1B;AAEH;;;AAGZ;AAEM,SAAU,MAAG;AACf,SAAO,KAAK,IAAG;AACnB;AAzFA,IAKa;AALb;;AAKM,IAAO,eAAP,MAAmB;MASD;MARJ,MAAM,oBAAI,IAAG;;;;;MAMtB,MAAe;MACtB,YACoB,KAAW;AAAX,aAAA,MAAA;MAChB;MAEJ,IAAIA,QAAQ;AACR,cAAM,YAAY,KAAK,IAAI,IAAIA,MAAK;AACpC,YAAI,OAAO,cAAc,aAAa;AAClC,iBAAO;;AAGX,YAAI,YAAY,IAAG,IAAK,KAAK,KAAK;AAC9B,eAAK,IAAI,OAAOA,MAAK;AACrB,iBAAO;;AAGX,eAAO;MACX;MAEA,IAAIA,QAAQ;AACR,aAAK,IAAI,OAAOA,MAAK;AACrB,aAAK,IAAI,IAAIA,QAAO,IAAG,CAAE;AAQzB,YAAI,CAAC,KAAK,KAAK;AACX,eAAK,MAAM;AACX,qBAAW,MAAK;AACZ,iBAAK,MAAM;AACX,+BAAmB,IAAI;UAC3B,GAAG,CAAC;;MAEZ;MAEA,QAAK;AACD,aAAK,IAAI,MAAK;MAClB;;;;;;ACrDG,SAAS,0BAA0B;AACxC,MAAI,kBAAkB,UAAU,SAAS,KAAK,UAAU,CAAC,MAAM,SAAY,UAAU,CAAC,IAAI,CAAC;AAC3F,MAAI,UAAU,KAAK,MAAM,KAAK,UAAU,eAAe,CAAC;AAGxD,MAAI,OAAO,QAAQ,qBAAqB,YAAa,SAAQ,mBAAmB;AAGhF,MAAI,CAAC,QAAQ,IAAK,SAAQ,MAAM,CAAC;AAEjC,MAAI,CAAC,QAAQ,IAAI,IAAK,SAAQ,IAAI,MAAM,MAAO;AAC/C,MAAI,CAAC,QAAQ,IAAI,iBAAkB,SAAQ,IAAI,mBAAmB;AAElE,MAAI,gBAAgB,OAAO,OAAO,gBAAgB,IAAI,YAAY,WAAY,SAAQ,IAAI,UAAU,gBAAgB,IAAI;AAGxH,MAAI,CAAC,QAAQ,aAAc,SAAQ,eAAe,CAAC;AACnD,MAAI,CAAC,QAAQ,aAAa,cAAe,SAAQ,aAAa,gBAAgB,MAAO;AAGrF,MAAI,gBAAgB,QAAS,SAAQ,UAAU,gBAAgB;AAG/D,MAAI,CAAC,QAAQ,KAAM,SAAQ,OAAO,CAAC;AACnC,MAAI,CAAC,QAAQ,KAAK,IAAK,SAAQ,KAAK,MAAM,MAAO,KAAK;AAKtD,MAAI,CAAC,QAAQ,KAAK,kBAAmB,SAAQ,KAAK,oBAAoB;AACtE,MAAI,OAAO,QAAQ,KAAK,gBAAgB,YAAa,SAAQ,KAAK,cAAc;AAChF,SAAO;AACT;AAhCA;AAAA;AAAA;AAAA;;;ACwBO,SAAS,SAAS;AACvB,MAAI,OAAO,cAAc,YAAa,QAAO;AAC7C,MAAI,OAAO,WAAW,aAAa;AACjC,QAAI,OAAO,OAAO,iBAAiB,YAAa,QAAO,OAAO;AAC9D,QAAI,OAAO,OAAO,oBAAoB,YAAa,QAAO,OAAO;AACjE,QAAI,OAAO,OAAO,gBAAgB,YAAa,QAAO,OAAO;AAAA,EAC/D;AACA,SAAO;AACT;AAOO,SAAS,2BAA2B,IAAI;AAC7C,MAAI,GAAG,QAAQ;AACb,OAAG,OAAO;AAAA,EACZ;AACF;AACO,SAAS,eAAe,aAAa;AAC1C,MAAI,YAAY,OAAO;AAGvB,MAAI,SAAS,YAAY;AAOzB,MAAI,cAAc,UAAU,KAAK,MAAM;AACvC,cAAY,kBAAkB,SAAU,IAAI;AAC1C,QAAI,KAAK,GAAG,OAAO;AACnB,OAAG,kBAAkB,iBAAiB;AAAA,MACpC,SAAS;AAAA,MACT,eAAe;AAAA,IACjB,CAAC;AAAA,EACH;AACA,SAAO,IAAI,QAAQ,SAAU,KAAK,KAAK;AACrC,gBAAY,UAAU,SAAU,IAAI;AAClC,aAAO,IAAI,EAAE;AAAA,IACf;AACA,gBAAY,YAAY,WAAY;AAClC,UAAI,YAAY,MAAM;AAAA,IACxB;AAAA,EACF,CAAC;AACH;AAMO,SAAS,aAAa,IAAI,YAAY,aAAa;AACxD,MAAI,OAAO,KAAK,IAAI;AACpB,MAAI,cAAc;AAAA,IAChB,MAAM;AAAA,IACN;AAAA,IACA,MAAM;AAAA,EACR;AACA,MAAI,KAAK,GAAG,YAAY,CAAC,eAAe,GAAG,aAAa,oBAAoB;AAC5E,SAAO,IAAI,QAAQ,SAAU,KAAK,KAAK;AACrC,OAAG,aAAa,WAAY;AAC1B,aAAO,IAAI;AAAA,IACb;AACA,OAAG,UAAU,SAAU,IAAI;AACzB,aAAO,IAAI,EAAE;AAAA,IACf;AACA,QAAI,cAAc,GAAG,YAAY,eAAe;AAChD,gBAAY,IAAI,WAAW;AAC3B,+BAA2B,EAAE;AAAA,EAC/B,CAAC;AACH;AACO,SAAS,eAAe,IAAI;AACjC,MAAI,KAAK,GAAG,YAAY,iBAAiB,YAAY,oBAAoB;AACzE,MAAI,cAAc,GAAG,YAAY,eAAe;AAChD,MAAI,MAAM,CAAC;AACX,SAAO,IAAI,QAAQ,SAAU,KAAK;AAChC,gBAAY,WAAW,EAAE,YAAY,SAAU,IAAI;AACjD,UAAI,SAAS,GAAG,OAAO;AACvB,UAAI,QAAQ;AACV,YAAI,KAAK,OAAO,KAAK;AAErB,eAAO,UAAU,EAAE;AAAA,MACrB,OAAO;AACL,mCAA2B,EAAE;AAC7B,YAAI,GAAG;AAAA,MACT;AAAA,IACF;AAAA,EACF,CAAC;AACH;AACO,SAAS,sBAAsB,IAAI,cAAc;AACtD,MAAI,KAAK,GAAG,YAAY,iBAAiB,YAAY,oBAAoB;AACzE,MAAI,cAAc,GAAG,YAAY,eAAe;AAChD,MAAI,MAAM,CAAC;AACX,MAAI,gBAAgB,YAAY,MAAM,eAAe,GAAG,QAAQ;AAOhE,MAAI,YAAY,QAAQ;AACtB,QAAI,gBAAgB,YAAY,OAAO,aAAa;AACpD,WAAO,IAAI,QAAQ,SAAU,KAAK,KAAK;AACrC,oBAAc,UAAU,SAAU,KAAK;AACrC,eAAO,IAAI,GAAG;AAAA,MAChB;AACA,oBAAc,YAAY,SAAUC,KAAG;AACrC,YAAIA,IAAE,OAAO,MAAM;AAAA,MACrB;AAAA,IACF,CAAC;AAAA,EACH;AACA,WAAS,aAAa;AAIpB,QAAI;AACF,sBAAgB,YAAY,MAAM,eAAe,GAAG,QAAQ;AAC5D,aAAO,YAAY,WAAW,aAAa;AAAA,IAC7C,SAASA,KAAG;AACV,aAAO,YAAY,WAAW;AAAA,IAChC;AAAA,EACF;AACA,SAAO,IAAI,QAAQ,SAAU,KAAK,KAAK;AACrC,QAAI,oBAAoB,WAAW;AACnC,sBAAkB,UAAU,SAAU,KAAK;AACzC,aAAO,IAAI,GAAG;AAAA,IAChB;AACA,sBAAkB,YAAY,SAAU,IAAI;AAC1C,UAAI,SAAS,GAAG,OAAO;AACvB,UAAI,QAAQ;AACV,YAAI,OAAO,MAAM,KAAK,eAAe,GAAG;AACtC,iBAAO,UAAU,EAAE,eAAe,CAAC;AAAA,QACrC,OAAO;AACL,cAAI,KAAK,OAAO,KAAK;AACrB,iBAAO,UAAU,EAAE;AAAA,QACrB;AAAA,MACF,OAAO;AACL,mCAA2B,EAAE;AAC7B,YAAI,GAAG;AAAA,MACT;AAAA,IACF;AAAA,EACF,CAAC;AACH;AACO,SAAS,mBAAmB,cAAc,KAAK;AACpD,MAAI,aAAa,QAAQ;AACvB,WAAO,QAAQ,QAAQ,CAAC,CAAC;AAAA,EAC3B;AACA,MAAI,KAAK,aAAa,GAAG,YAAY,iBAAiB,aAAa,oBAAoB;AACvF,MAAI,cAAc,GAAG,YAAY,eAAe;AAChD,SAAO,QAAQ,IAAI,IAAI,IAAI,SAAU,IAAI;AACvC,QAAI,gBAAgB,YAAY,QAAQ,EAAE,EAAE;AAC5C,WAAO,IAAI,QAAQ,SAAU,KAAK;AAChC,oBAAc,YAAY,WAAY;AACpC,eAAO,IAAI;AAAA,MACb;AAAA,IACF,CAAC;AAAA,EACH,CAAC,CAAC;AACJ;AACO,SAAS,eAAe,IAAI,KAAK;AACtC,MAAI,YAAY,KAAK,IAAI,IAAI;AAC7B,MAAI,KAAK,GAAG,YAAY,iBAAiB,YAAY,oBAAoB;AACzE,MAAI,cAAc,GAAG,YAAY,eAAe;AAChD,MAAI,MAAM,CAAC;AACX,SAAO,IAAI,QAAQ,SAAU,KAAK;AAChC,gBAAY,WAAW,EAAE,YAAY,SAAU,IAAI;AACjD,UAAI,SAAS,GAAG,OAAO;AACvB,UAAI,QAAQ;AACV,YAAI,SAAS,OAAO;AACpB,YAAI,OAAO,OAAO,WAAW;AAC3B,cAAI,KAAK,MAAM;AAEf,iBAAO,UAAU,EAAE;AAAA,QACrB,OAAO;AAEL,qCAA2B,EAAE;AAC7B,cAAI,GAAG;AAAA,QACT;AAAA,MACF,OAAO;AACL,YAAI,GAAG;AAAA,MACT;AAAA,IACF;AAAA,EACF,CAAC;AACH;AACO,SAAS,iBAAiB,cAAc;AAC7C,SAAO,eAAe,aAAa,IAAI,aAAa,QAAQ,IAAI,GAAG,EAAE,KAAK,SAAU,QAAQ;AAC1F,WAAO,mBAAmB,cAAc,OAAO,IAAI,SAAU,KAAK;AAChE,aAAO,IAAI;AAAA,IACb,CAAC,CAAC;AAAA,EACJ,CAAC;AACH;AACO,SAASC,QAAO,aAAa,SAAS;AAC3C,YAAU,wBAAwB,OAAO;AACzC,SAAO,eAAe,WAAW,EAAE,KAAK,SAAU,IAAI;AACpD,QAAI,QAAQ;AAAA,MACV,QAAQ;AAAA,MACR,cAAc;AAAA,MACd;AAAA,MACA;AAAA,MACA,MAAM,YAAY;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,MAMlB,MAAM,IAAI,aAAa,QAAQ,IAAI,MAAM,CAAC;AAAA;AAAA,MAE1C,mBAAmB;AAAA,MACnB,kBAAkB;AAAA,MAClB,mBAAmB,CAAC;AAAA,MACpB;AAAA,IACF;AAQA,OAAG,UAAU,WAAY;AACvB,YAAM,SAAS;AACf,UAAI,QAAQ,IAAI,QAAS,SAAQ,IAAI,QAAQ;AAAA,IAC/C;AAOA,cAAU,KAAK;AACf,WAAO;AAAA,EACT,CAAC;AACH;AACA,SAAS,UAAU,OAAO;AACxB,MAAI,MAAM,OAAQ;AAClB,kBAAgB,KAAK,EAAE,KAAK,WAAY;AACtC,WAAO,MAAM,MAAM,QAAQ,IAAI,gBAAgB;AAAA,EACjD,CAAC,EAAE,KAAK,WAAY;AAClB,WAAO,UAAU,KAAK;AAAA,EACxB,CAAC;AACH;AACA,SAAS,eAAe,QAAQ,OAAO;AACrC,MAAI,OAAO,SAAS,MAAM,KAAM,QAAO;AACvC,MAAI,MAAM,KAAK,IAAI,OAAO,EAAE,EAAG,QAAO;AACtC,MAAI,OAAO,KAAK,OAAO,MAAM,qBAAsB,QAAO;AAC1D,SAAO;AACT;AAKA,SAAS,gBAAgB,OAAO;AAE9B,MAAI,MAAM,OAAQ,QAAO;AAGzB,MAAI,CAAC,MAAM,iBAAkB,QAAO;AACpC,SAAO,sBAAsB,MAAM,IAAI,MAAM,YAAY,EAAE,KAAK,SAAU,eAAe;AACvF,QAAI,cAAc,cAKd,OAAO,SAAU,QAAQ;AAC3B,aAAO,CAAC,CAAC;AAAA,IACX,CAAC,EAAE,IAAI,SAAU,QAAQ;AACvB,UAAI,OAAO,KAAK,MAAM,cAAc;AAClC,cAAM,eAAe,OAAO;AAAA,MAC9B;AACA,aAAO;AAAA,IACT,CAAC,EAAE,OAAO,SAAU,QAAQ;AAC1B,aAAO,eAAe,QAAQ,KAAK;AAAA,IACrC,CAAC,EAAE,KAAK,SAAU,SAAS,SAAS;AAClC,aAAO,QAAQ,OAAO,QAAQ;AAAA,IAChC,CAAC;AACD,gBAAY,QAAQ,SAAU,QAAQ;AACpC,UAAI,MAAM,kBAAkB;AAC1B,cAAM,KAAK,IAAI,OAAO,EAAE;AACxB,cAAM,iBAAiB,OAAO,IAAI;AAAA,MACpC;AAAA,IACF,CAAC;AACD,WAAO;AAAA,EACT,CAAC;AACH;AACO,SAASC,OAAM,cAAc;AAClC,eAAa,SAAS;AACtB,eAAa,GAAG,MAAM;AACxB;AACO,SAASC,aAAY,cAAc,aAAa;AACrD,eAAa,oBAAoB,aAAa,kBAAkB,KAAK,WAAY;AAC/E,WAAO,aAAa,aAAa,IAAI,aAAa,MAAM,WAAW;AAAA,EACrE,CAAC,EAAE,KAAK,WAAY;AAClB,QAAI,UAAU,GAAG,EAAE,MAAM,GAAG;AAE1B,uBAAiB,YAAY;AAAA,IAC/B;AAAA,EACF,CAAC;AACD,SAAO,aAAa;AACtB;AACO,SAASC,WAAU,cAAc,IAAI,MAAM;AAChD,eAAa,uBAAuB;AACpC,eAAa,mBAAmB;AAChC,kBAAgB,YAAY;AAC9B;AACO,SAASC,aAAY;AAC1B,SAAO,CAAC,CAAC,OAAO;AAClB;AACO,SAASC,qBAAoB,SAAS;AAC3C,SAAO,QAAQ,IAAI,mBAAmB;AACxC;AA9UA,IAUWC,eAGP,WACA,iBAMO,sBAGAC,OAwTA;AA/UX;AAAA;AASA;AAEA;AACA;AAFO,IAAID,gBAAe;AAG1B,IAAI,YAAY;AAChB,IAAI,kBAAkB;AAMf,IAAI,uBAAuB;AAAA,MAChC,YAAY;AAAA,IACd;AACO,IAAIC,QAAO;AAwTX,IAAI,kBAAkB;AAAA,MAC3B,QAAQP;AAAA,MACR,OAAOC;AAAA,MACP,WAAWE;AAAA,MACX,aAAaD;AAAA,MACb,WAAWE;AAAA,MACX,MAAMG;AAAA,MACN,qBAAqBF;AAAA,MACrB,cAAcC;AAAA,IAChB;AAAA;AAAA;;;ACrUO,SAAS,kBAAkB;AAChC,MAAIE;AACJ,MAAI,OAAO,WAAW,YAAa,QAAO;AAC1C,MAAI;AACF,IAAAA,gBAAe,OAAO;AACtB,IAAAA,gBAAe,OAAO,2BAA2B,KAAK,OAAO;AAAA,EAC/D,SAASC,KAAG;AAAA,EAIZ;AACA,SAAOD;AACT;AACO,SAAS,WAAW,aAAa;AACtC,SAAO,aAAa;AACtB;AAMO,SAASE,aAAY,cAAc,aAAa;AACrD,SAAO,IAAI,QAAQ,SAAU,KAAK;AAChC,UAAM,EAAE,KAAK,WAAY;AACvB,UAAIC,OAAM,WAAW,aAAa,WAAW;AAC7C,UAAI,WAAW;AAAA,QACb,OAAO,YAAY;AAAA,QACnB,MAAM,KAAK,IAAI;AAAA,QACf,MAAM;AAAA,QACN,MAAM,aAAa;AAAA,MACrB;AACA,UAAIC,SAAQ,KAAK,UAAU,QAAQ;AACnC,sBAAgB,EAAE,QAAQD,MAAKC,MAAK;AAOpC,UAAI,KAAK,SAAS,YAAY,OAAO;AACrC,SAAG,UAAU,WAAW,MAAM,IAAI;AAClC,SAAG,MAAMD;AACT,SAAG,WAAWC;AACd,aAAO,cAAc,EAAE;AACvB,UAAI;AAAA,IACN,CAAC;AAAA,EACH,CAAC;AACH;AACO,SAAS,wBAAwB,aAAa,IAAI;AACvD,MAAID,OAAM,WAAW,WAAW;AAChC,MAAIE,YAAW,SAASA,UAAS,IAAI;AACnC,QAAI,GAAG,QAAQF,MAAK;AAClB,SAAG,KAAK,MAAM,GAAG,QAAQ,CAAC;AAAA,IAC5B;AAAA,EACF;AACA,SAAO,iBAAiB,WAAWE,SAAQ;AAC3C,SAAOA;AACT;AACO,SAAS,2BAA2BA,WAAU;AACnD,SAAO,oBAAoB,WAAWA,SAAQ;AAChD;AACO,SAASC,QAAO,aAAa,SAAS;AAC3C,YAAU,wBAAwB,OAAO;AACzC,MAAI,CAACC,WAAU,GAAG;AAChB,UAAM,IAAI,MAAM,+CAA+C;AAAA,EACjE;AACA,MAAI,OAAO,YAAY;AAOvB,MAAI,OAAO,IAAI,aAAa,QAAQ,aAAa,aAAa;AAC9D,MAAI,QAAQ;AAAA,IACV;AAAA,IACA;AAAA,IACA;AAAA;AAAA,EACF;AACA,QAAM,WAAW,wBAAwB,aAAa,SAAU,QAAQ;AACtE,QAAI,CAAC,MAAM,iBAAkB;AAC7B,QAAI,OAAO,SAAS,KAAM;AAC1B,QAAI,CAAC,OAAO,SAAS,KAAK,IAAI,OAAO,KAAK,EAAG;AAC7C,QAAI,OAAO,KAAK,QAAQ,OAAO,KAAK,OAAO,MAAM,qBAAsB;AAEvE,SAAK,IAAI,OAAO,KAAK;AACrB,UAAM,iBAAiB,OAAO,IAAI;AAAA,EACpC,CAAC;AACD,SAAO;AACT;AACO,SAASC,OAAM,cAAc;AAClC,6BAA2B,aAAa,QAAQ;AAClD;AACO,SAASC,WAAU,cAAc,IAAI,MAAM;AAChD,eAAa,uBAAuB;AACpC,eAAa,mBAAmB;AAClC;AACO,SAASF,aAAY;AAC1B,MAAI,KAAK,gBAAgB;AACzB,MAAI,CAAC,GAAI,QAAO;AAChB,MAAI;AACF,QAAIJ,OAAM;AACV,OAAG,QAAQA,MAAK,OAAO;AACvB,OAAG,WAAWA,IAAG;AAAA,EACnB,SAASF,KAAG;AAIV,WAAO;AAAA,EACT;AACA,SAAO;AACT;AACO,SAASS,uBAAsB;AACpC,MAAI,cAAc;AAClB,MAAIC,aAAY,UAAU,UAAU,YAAY;AAChD,MAAIA,WAAU,SAAS,QAAQ,KAAK,CAACA,WAAU,SAAS,QAAQ,GAAG;AAEjE,WAAO,cAAc;AAAA,EACvB;AACA,SAAO;AACT;AA3IA,IAWWC,eACP,YACOC,OA+HA;AA5IX;AAAA;AAQA;AACA;AACA;AACO,IAAID,gBAAe;AAC1B,IAAI,aAAa;AACV,IAAIC,QAAO;AA+HX,IAAI,qBAAqB;AAAA,MAC9B,QAAQP;AAAA,MACR,OAAOE;AAAA,MACP,WAAWC;AAAA,MACX,aAAaP;AAAA,MACb,WAAWK;AAAA,MACX,MAAMM;AAAA,MACN,qBAAqBH;AAAA,MACrB,cAAcE;AAAA,IAChB;AAAA;AAAA;;;ACjJO,SAASE,QAAO,aAAa;AAClC,MAAI,QAAQ;AAAA,IACV,MAAMC,cAAa;AAAA,IACnB,MAAM;AAAA,IACN,kBAAkB;AAAA,EACpB;AACA,oBAAkB,IAAI,KAAK;AAC3B,SAAO;AACT;AACO,SAASC,OAAM,cAAc;AAClC,oBAAkB,QAAQ,EAAE,YAAY;AAC1C;AAEO,SAASC,aAAY,cAAc,aAAa;AACrD,SAAO,IAAI,QAAQ,SAAU,KAAK;AAChC,WAAO,WAAW,WAAY;AAC5B,UAAI,eAAe,MAAM,KAAK,iBAAiB;AAC/C,mBAAa,QAAQ,SAAU,SAAS;AACtC,YAAI,QAAQ,SAAS,aAAa;AAAA,QAElC,YAAY;AAAA,QAEZ,CAAC,CAAC,QAAQ;AAAA,QAEV,QAAQ,OAAO,YAAY,MACzB;AACA,kBAAQ,iBAAiB,WAAW;AAAA,QACtC;AAAA,MACF,CAAC;AACD,UAAI;AAAA,IACN,GAAG,mBAAmB;AAAA,EACxB,CAAC;AACH;AACO,SAASC,WAAU,cAAc,IAAI;AAC1C,eAAa,mBAAmB;AAClC;AACO,SAASC,aAAY;AAC1B,SAAO;AACT;AACO,SAASC,uBAAsB;AACpC,SAAO;AACT;AA7CA,IACWL,eACAM,OACP,mBAaO,qBA8BA;AA9CX;AAAA;AAAA;AACO,IAAIN,gBAAe;AACnB,IAAIM,QAAO;AAClB,IAAI,oBAAoB,oBAAI,IAAI;AAazB,IAAI,sBAAsB;AA8B1B,IAAI,iBAAiB;AAAA,MAC1B,QAAQP;AAAA,MACR,OAAOE;AAAA,MACP,WAAWE;AAAA,MACX,aAAaD;AAAA,MACb,WAAWE;AAAA,MACX,MAAME;AAAA,MACN,qBAAqBD;AAAA,MACrB,cAAcL;AAAA,IAChB;AAAA;AAAA;;;AC7CO,SAAS,aAAa,SAAS;AACpC,MAAI,gBAAgB,CAAC,EAAE,OAAO,QAAQ,SAAS,OAAO,EAAE,OAAO,OAAO;AAKtE,MAAI,QAAQ,MAAM;AAChB,QAAI,QAAQ,SAAS,YAAY;AAE/B,aAAO;AAAA,IACT;AACA,QAAI,MAAM,cAAc,KAAK,SAAUO,IAAG;AACxC,aAAOA,GAAE,SAAS,QAAQ;AAAA,IAC5B,CAAC;AACD,QAAI,CAAC,IAAK,OAAM,IAAI,MAAM,iBAAiB,QAAQ,OAAO,YAAY;AAAA,QAAO,QAAO;AAAA,EACtF;AAMA,MAAI,CAAC,QAAQ,kBAAkB;AAC7B,oBAAgB,cAAc,OAAO,SAAUA,IAAG;AAChD,aAAOA,GAAE,SAAS;AAAA,IACpB,CAAC;AAAA,EACH;AACA,MAAI,YAAY,cAAc,KAAK,SAAU,QAAQ;AACnD,WAAO,OAAO,UAAU;AAAA,EAC1B,CAAC;AACD,MAAI,CAAC,WAAW;AACd,UAAM,IAAI,MAAM,+BAA+B,KAAK,UAAU,QAAQ,IAAI,SAAUA,IAAG;AACrF,aAAOA,GAAE;AAAA,IACX,CAAC,CAAC,CAAC;AAAA,EACL,OAAO;AACL,WAAO;AAAA,EACT;AACF;AA9CA,IAOI;AAPJ;AAAA;AAAA;AACA;AACA;AACA;AAIA,IAAI,UAAU;AAAA,MAAC;AAAA;AAAA,MAEf;AAAA,MAAiB;AAAA,IAAkB;AAAA;AAAA;;;ACgE5B,SAAS,gBAAgB,SAAS;AACvC,YAAU,wBAAwB,OAAO;AACzC,MAAI,SAAS,aAAa,OAAO;AACjC,MAAI,OAAO,SAAS,QAAQ;AAC1B,WAAO,OAAO,gBAAgB,EAAE,KAAK,WAAY;AAC/C,aAAO;AAAA,IACT,CAAC;AAAA,EACH,OAAO;AACL,WAAO;AAAA,EACT;AACF;AAOO,SAAS,eAAe,SAAS;AACtC,qBAAmB;AACrB;AAqFA,SAAS,MAAM,kBAAkBC,OAAM,KAAK;AAC1C,MAAI,OAAO,iBAAiB,OAAO,aAAa;AAChD,MAAI,SAAS;AAAA,IACX;AAAA,IACA,MAAMA;AAAA,IACN,MAAM;AAAA,EACR;AACA,MAAI,eAAe,iBAAiB,SAAS,iBAAiB,SAAS;AACvE,SAAO,aAAa,KAAK,WAAY;AACnC,QAAI,cAAc,iBAAiB,OAAO,YAAY,iBAAiB,QAAQ,MAAM;AAGrF,qBAAiB,KAAK,IAAI,WAAW;AACrC,gBAAY,OAAO,EAAE,EAAE,KAAK,WAAY;AACtC,aAAO,iBAAiB,KAAK,QAAQ,EAAE,WAAW;AAAA,IACpD,CAAC;AACD,WAAO;AAAA,EACT,CAAC;AACH;AACA,SAAS,gBAAgB,SAAS;AAChC,MAAI,eAAe,QAAQ,OAAO,OAAO,QAAQ,MAAM,QAAQ,OAAO;AACtE,MAAIC,WAAU,YAAY,GAAG;AAC3B,YAAQ,SAAS;AACjB,iBAAa,KAAK,SAAUC,KAAG;AAK7B,cAAQ,SAASA;AAAA,IACnB,CAAC;AAAA,EACH,OAAO;AACL,YAAQ,SAAS;AAAA,EACnB;AACF;AACA,SAAS,qBAAqB,SAAS;AACrC,MAAI,QAAQ,OAAO,QAAQ,SAAS,EAAG,QAAO;AAC9C,MAAI,QAAQ,OAAO,SAAS,SAAS,EAAG,QAAO;AAC/C,SAAO;AACT;AACA,SAAS,mBAAmB,SAASF,OAAM,KAAK;AAC9C,UAAQ,OAAOA,KAAI,EAAE,KAAK,GAAG;AAC7B,kBAAgB,OAAO;AACzB;AACA,SAAS,sBAAsB,SAASA,OAAM,KAAK;AACjD,UAAQ,OAAOA,KAAI,IAAI,QAAQ,OAAOA,KAAI,EAAE,OAAO,SAAUG,KAAG;AAC9D,WAAOA,QAAM;AAAA,EACf,CAAC;AACD,iBAAe,OAAO;AACxB;AACA,SAAS,gBAAgB,SAAS;AAChC,MAAI,CAAC,QAAQ,OAAO,qBAAqB,OAAO,GAAG;AAGjD,QAAI,aAAa,SAASC,YAAW,QAAQ;AAC3C,cAAQ,OAAO,OAAO,IAAI,EAAE,QAAQ,SAAU,gBAAgB;AAC5D,YAAI,OAAO,QAAQ,eAAe,MAAM;AACtC,yBAAe,GAAG,OAAO,IAAI;AAAA,QAC/B;AAAA,MACF,CAAC;AAAA,IACH;AACA,QAAI,OAAO,QAAQ,OAAO,aAAa;AACvC,QAAI,QAAQ,QAAQ;AAClB,cAAQ,OAAO,KAAK,WAAY;AAC9B,gBAAQ,MAAM;AACd,gBAAQ,OAAO,UAAU,QAAQ,QAAQ,YAAY,IAAI;AAAA,MAC3D,CAAC;AAAA,IACH,OAAO;AACL,cAAQ,MAAM;AACd,cAAQ,OAAO,UAAU,QAAQ,QAAQ,YAAY,IAAI;AAAA,IAC3D;AAAA,EACF;AACF;AACA,SAAS,eAAe,SAAS;AAC/B,MAAI,QAAQ,OAAO,CAAC,qBAAqB,OAAO,GAAG;AAEjD,YAAQ,MAAM;AACd,QAAI,OAAO,QAAQ,OAAO,aAAa;AACvC,YAAQ,OAAO,UAAU,QAAQ,QAAQ,MAAM,IAAI;AAAA,EACrD;AACF;AAhQA,IAQW,yBACP,QACOC,mBA+EP;AAzFJ;AAAA;AAAA;AACA;AACA;AAMO,IAAI,0BAA0B,oBAAI,IAAI;AAC7C,IAAI,SAAS;AACN,IAAIA,oBAAmB,SAASA,kBAAiB,MAAM,SAAS;AAErE,WAAK,KAAK;AACV,8BAAwB,IAAI,IAAI;AAChC,WAAK,OAAO;AACZ,UAAI,kBAAkB;AACpB,kBAAU;AAAA,MACZ;AACA,WAAK,UAAU,wBAAwB,OAAO;AAC9C,WAAK,SAAS,aAAa,KAAK,OAAO;AAGvC,WAAK,MAAM;AAOX,WAAK,QAAQ;AAKb,WAAK,SAAS;AAAA,QACZ,SAAS,CAAC;AAAA,QACV,UAAU,CAAC;AAAA,MACb;AAOA,WAAK,OAAO,oBAAI,IAAI;AAOpB,WAAK,QAAQ,CAAC;AAKd,WAAK,SAAS;AACd,sBAAgB,IAAI;AAAA,IACtB;AASA,IAAAA,kBAAiB,UAAU;AA4B3B,IAAAA,kBAAiB,YAAY;AAAA,MAC3B,aAAa,SAASC,aAAY,KAAK;AACrC,YAAI,KAAK,QAAQ;AACf,gBAAM,IAAI,MAAM;AAAA;AAAA;AAAA;AAAA;AAAA,UAMhB,KAAK,UAAU,GAAG,CAAC;AAAA,QACrB;AACA,eAAO,MAAM,MAAM,WAAW,GAAG;AAAA,MACnC;AAAA,MACA,cAAc,SAAS,aAAa,KAAK;AACvC,eAAO,MAAM,MAAM,YAAY,GAAG;AAAA,MACpC;AAAA,MACA,IAAI,UAAU,IAAI;AAChB,YAAI,OAAO,KAAK,OAAO,aAAa;AACpC,YAAI,YAAY;AAAA,UACd;AAAA,UACA;AAAA,QACF;AACA,8BAAsB,MAAM,WAAW,KAAK,KAAK;AACjD,YAAI,MAAM,OAAO,OAAO,YAAY;AAClC,eAAK,QAAQ;AACb,6BAAmB,MAAM,WAAW,SAAS;AAAA,QAC/C,OAAO;AACL,eAAK,QAAQ;AAAA,QACf;AAAA,MACF;AAAA,MACA,kBAAkB,SAAS,iBAAiBN,OAAM,IAAI;AACpD,YAAI,OAAO,KAAK,OAAO,aAAa;AACpC,YAAI,YAAY;AAAA,UACd;AAAA,UACA;AAAA,QACF;AACA,2BAAmB,MAAMA,OAAM,SAAS;AAAA,MAC1C;AAAA,MACA,qBAAqB,SAAS,oBAAoBA,OAAM,IAAI;AAC1D,YAAI,MAAM,KAAK,OAAOA,KAAI,EAAE,KAAK,SAAUO,MAAK;AAC9C,iBAAOA,KAAI,OAAO;AAAA,QACpB,CAAC;AACD,8BAAsB,MAAMP,OAAM,GAAG;AAAA,MACvC;AAAA,MACA,OAAO,SAASQ,SAAQ;AACtB,YAAI,QAAQ;AACZ,YAAI,KAAK,QAAQ;AACf;AAAA,QACF;AACA,gCAAwB,QAAQ,EAAE,IAAI;AACtC,aAAK,SAAS;AACd,YAAI,eAAe,KAAK,SAAS,KAAK,SAAS;AAC/C,aAAK,QAAQ;AACb,aAAK,OAAO,UAAU,CAAC;AACvB,eAAO,aAEN,KAAK,WAAY;AAChB,iBAAO,QAAQ,IAAI,MAAM,KAAK,MAAM,IAAI,CAAC;AAAA,QAC3C,CAAC,EAEA,KAAK,WAAY;AAChB,iBAAO,QAAQ,IAAI,MAAM,MAAM,IAAI,SAAU,IAAI;AAC/C,mBAAO,GAAG;AAAA,UACZ,CAAC,CAAC;AAAA,QACJ,CAAC,EAEA,KAAK,WAAY;AAChB,iBAAO,MAAM,OAAO,MAAM,MAAM,MAAM;AAAA,QACxC,CAAC;AAAA,MACH;AAAA,MACA,IAAI,OAAO;AACT,eAAO,KAAK,OAAO;AAAA,MACrB;AAAA,MACA,IAAI,WAAW;AACb,eAAO,KAAK;AAAA,MACd;AAAA,IACF;AAAA;AAAA;;;ACzKO,SAAS,WAAW,IAAI;AAC7B,MAAI,OAAO,sBAAsB,cAAc,gBAAgB,mBAAmB;AAOhF,QAAI,WAAW,KAAK,MAAM,KAAK,IAAI;AACnC,SAAK,QAAQ,WAAY;AACvB,SAAG;AACH,aAAO,SAAS;AAAA,IAClB;AAAA,EACF,OAAO;AAKL,QAAI,OAAO,OAAO,qBAAqB,YAAY;AACjD;AAAA,IACF;AAKA,WAAO,iBAAiB,gBAAgB,WAAY;AAClD,SAAG;AAAA,IACL,GAAG,IAAI;AAMP,WAAO,iBAAiB,UAAU,WAAY;AAC5C,SAAG;AAAA,IACL,GAAG,IAAI;AAAA,EACT;AAMF;AA5CA;AAAA;AAAA;AAAA;;;ACAO,SAAS,QAAQ,IAAI;AAC1B,UAAQ,GAAG,QAAQ,WAAY;AAC7B,WAAO,GAAG;AAAA,EACZ,CAAC;AAQD,UAAQ,GAAG,cAAc,WAAY;AACnC,WAAO,GAAG,EAAE,KAAK,WAAY;AAC3B,aAAO,QAAQ,KAAK;AAAA,IACtB,CAAC;AAAA,EACH,CAAC;AAED,UAAQ,GAAG,UAAU,WAAY;AAC/B,WAAO,GAAG,EAAE,KAAK,WAAY;AAC3B,aAAO,QAAQ,KAAK;AAAA,IACtB,CAAC;AAAA,EACH,CAAC;AAED,UAAQ,GAAG,qBAAqB,SAAU,KAAK;AAC7C,WAAO,GAAG,EAAE,KAAK,WAAY;AAC3B,cAAQ,MAAM,GAAG;AACjB,cAAQ,KAAK,GAAG;AAAA,IAClB,CAAC;AAAA,EACH,CAAC;AACH;AA7BA;AAAA;AAAA;AAAA;;;ACYA,SAAS,iBAAiB;AACxB,MAAI,kBAAkB;AACpB;AAAA,EACF;AACA,qBAAmB;AACnB,aAAW,MAAM;AACnB;AACO,SAASC,KAAI,IAAI;AACtB,iBAAe;AACf,MAAI,OAAO,OAAO,YAAY;AAC5B,UAAM,IAAI,MAAM,yBAAyB;AAAA,EAC3C;AACA,YAAU,IAAI,EAAE;AAChB,MAAI,YAAY;AAAA,IACd,QAAQ,SAASC,UAAS;AACxB,aAAO,UAAU,QAAQ,EAAE,EAAE;AAAA,IAC/B;AAAA,IACA,KAAK,SAAS,MAAM;AAClB,gBAAU,QAAQ,EAAE,EAAE;AACtB,aAAO,GAAG;AAAA,IACZ;AAAA,EACF;AACA,SAAO;AACT;AACO,SAAS,SAAS;AACvB,MAAI,WAAW,CAAC;AAChB,YAAU,QAAQ,SAAU,IAAI;AAC9B,aAAS,KAAK,GAAG,CAAC;AAClB,cAAU,QAAQ,EAAE,EAAE;AAAA,EACxB,CAAC;AACD,SAAO,QAAQ,IAAI,QAAQ;AAC7B;AACO,SAAS,YAAY;AAC1B,YAAU,MAAM;AAClB;AACO,SAAS,UAAU;AACxB,SAAO,UAAU;AACnB;AAjDA,IAQI,QACA,YACA,WACA;AAXJ;AAAA;AAAA;AACA;AAOA,IAAI,SAAS,OAAO,UAAU,SAAS,KAAK,OAAO,YAAY,cAAc,UAAU,CAAC,MAAM;AAC9F,IAAI,aAAa,SAAS,UAAU;AACpC,IAAI,YAAY,oBAAI,IAAI;AACxB,IAAI,mBAAmB;AAAA;AAAA;;;ACNhB,SAAS,kBAAkB,eAAe,QAAQ;AACvD,MAAI,UAAU;AAAA,IACZ,SAAS;AAAA,IACT;AAAA,IACA,OAAO,cAAc;AAAA,EACvB;AACA,SAAO,cAAc,iBAAiB,aAAa,OAAO;AAC5D;AACO,SAAS,SAAS,eAAe;AACtC,gBAAc,WAAW;AACzB,gBAAc,aAAa;AAC3B,MAAI,WAAWC,KAAU,WAAY;AACnC,WAAO,cAAc,IAAI;AAAA,EAC3B,CAAC;AACD,gBAAc,KAAK,KAAK,QAAQ;AAChC,MAAI,mBAAmB,SAASC,kBAAiB,KAAK;AACpD,QAAI,IAAI,YAAY,YAAY,IAAI,WAAW,SAAS;AACtD,wBAAkB,eAAe,MAAM;AAAA,IACzC;AACA,QAAI,IAAI,YAAY,YAAY,IAAI,WAAW,UAAU,CAAC,cAAc,OAAO;AAS7E,oBAAc,QAAQ;AACtB,oBAAc,KAAK;AACnB,wBAAkB,eAAe,MAAM;AAAA,IACzC;AAAA,EACF;AACA,gBAAc,iBAAiB,iBAAiB,YAAY,gBAAgB;AAC5E,gBAAc,OAAO,KAAK,gBAAgB;AAC1C,SAAO,kBAAkB,eAAe,MAAM;AAChD;AAzCA;AAAA;AAAA;AAAA;AAAA;;;ACAA,IAOW,uBAoBP;AA3BJ;AAAA;AAAA;AACA;AAMO,IAAI,wBAAwB,SAASC,uBAAsB,kBAAkB,SAAS;AAC3F,UAAI,QAAQ;AACZ,WAAK,mBAAmB;AACxB,uBAAiB,MAAM,KAAK,WAAY;AACtC,eAAO,MAAM,IAAI;AAAA,MACnB,CAAC;AACD,WAAK,WAAW;AAChB,WAAK,WAAW;AAChB,WAAK,SAAS;AACd,WAAK,QAAQ,YAAY;AACzB,WAAK,SAAS,CAAC;AACf,WAAK,OAAO,CAAC;AACb,WAAK,OAAO,WAAY;AAAA,MAAC;AACzB,WAAK,QAAQ;AAEb,WAAK,QAAQ,CAAC;AAGd,WAAK,KAAK,gBAAgB,iBAAiB,OAAO,OAAO,OAAO,iBAAiB;AAAA,IACnF;AACA,IAAI,kCAAkC;AACtC,0BAAsB,YAAY;AAAA,MAChC,WAAW,SAAS,YAAY;AAC9B,YAAI,SAAS;AACb,eAAO,UAAU,MAAM,MAAM,EAAE,KAAK,SAAU,OAAO;AACnD,cAAI,gBAAgB,MAAM,OAAO,MAAM,KAAK,OAAO,SAAU,MAAM;AACjE,mBAAO,KAAK,SAAS,OAAO;AAAA,UAC9B,CAAC,IAAI,CAAC;AACN,cAAI,iBAAiB,cAAc,SAAS,GAAG;AAC7C,mBAAO;AAAA,UACT,OAAO;AACL,mBAAO;AAAA,UACT;AAAA,QACF,CAAC;AAAA,MACH;AAAA,MACA,iBAAiB,SAAS,kBAAkB;AAC1C,YAAI,SAAS;AACb,YAAI,CAAC,KAAK,OAAO;AACf,eAAK,MAAM,IAAI,IAAI,gBAAgB;AACnC,cAAI,gBAAgB,IAAI,QAAQ,SAAU,KAAK,KAAK;AAClD,mBAAO,MAAM,MAAM;AACnB,mBAAO,MAAM,MAAM;AAAA,UACrB,CAAC;AACD,eAAK,QAAQ,IAAI,QAAQ,SAAU,KAAK,QAAQ;AAC9C,sBAAU,MAAM,QAAQ,OAAO,IAAI;AAAA,cACjC,QAAQ,OAAO,MAAM,EAAE;AAAA,YACzB,GAAG,WAAY;AAEb,qBAAO,MAAM,IAAI;AACjB,uBAAS,MAAM;AACf,kBAAI;AACJ,qBAAO;AAAA,YACT,CAAC,EAAE,OAAO,EAAE,SAAU,KAAK;AACzB,kBAAI,IAAI,WAAW,IAAI,YAAY,iCAAiC;AAAA,cAOpE,OAAO;AACL,oBAAI,OAAO,MAAM,KAAK;AACpB,yBAAO,MAAM,IAAI,GAAG;AAAA,gBACtB;AACA,uBAAO,GAAG;AAAA,cACZ;AAAA,YACF,CAAC;AAAA,UACH,CAAC;AAAA,QACH;AACA,eAAO,KAAK;AAAA,MACd;AAAA,MACA,IAAI,YAAY,KAAK;AAAA,MAErB;AAAA,MACA,KAAK,SAAS,MAAM;AAClB,YAAI,SAAS;AACb,aAAK,OAAO,QAAQ,SAAUC,WAAU;AACtC,iBAAO,OAAO,iBAAiB,oBAAoB,YAAYA,SAAQ;AAAA,QACzE,CAAC;AACD,aAAK,SAAS,CAAC;AACf,aAAK,KAAK,QAAQ,SAAU,KAAK;AAC/B,iBAAO,IAAI,OAAO;AAAA,QACpB,CAAC;AACD,aAAK,OAAO,CAAC;AACb,YAAI,KAAK,UAAU;AACjB,eAAK,WAAW;AAAA,QAClB;AACA,aAAK,SAAS;AACd,YAAI,KAAK,MAAM,KAAK;AAClB,eAAK,MAAM,IAAI;AAAA,QACjB;AAMA,YAAI,KAAK,MAAM,GAAG;AAChB,eAAK,MAAM,EAAE,MAAM,IAAI,MAAM,+BAA+B,CAAC;AAAA,QAC/D;AACA,eAAO,kBAAkB,MAAM,OAAO;AAAA,MACxC;AAAA,IACF;AAAA;AAAA;;;AC6FA,SAAS,qBAAqB,eAAe;AAC3C,MAAI,cAAc,UAAU;AAC1B,WAAO;AAAA,EACT;AACA,SAAO,IAAI,QAAQ,SAAU,KAAK;AAChC,QAAIC,YAAW;AACf,aAAS,SAAS;AAChB,UAAIA,WAAU;AACZ;AAAA,MACF;AACA,MAAAA,YAAW;AACX,oBAAc,iBAAiB,oBAAoB,YAAY,iBAAiB;AAChF,UAAI,IAAI;AAAA,IACV;AAGA,kBAAc,UAAU,EAAE,KAAK,WAAY;AACzC,UAAI,cAAc,UAAU;AAC1B,eAAO;AAAA,MACT;AAAA,IACF,CAAC;AAMD,QAAI,iBAAiB,SAAS,gBAAgB;AAC5C,aAAO,MAAM,cAAc,SAAS,gBAAgB,EAAE,KAAK,WAAY;AACrE,YAAI,cAAc,UAAUA,WAAU;AACpC;AAAA,QACF;AACA,YAAI,cAAc,UAAU;AAC1B,iBAAO;AAAA,QACT,OAAO;AACL,iBAAO,cAAc,UAAU,IAAI,EAAE,KAAK,WAAY;AACpD,gBAAI,cAAc,UAAU;AAC1B,qBAAO;AAAA,YACT,OAAO;AACL,6BAAe;AAAA,YACjB;AAAA,UACF,CAAC;AAAA,QACH;AAAA,MACF,CAAC;AAAA,IACH;AACA,mBAAe;AAGf,QAAI,oBAAoB,SAASC,mBAAkB,KAAK;AACtD,UAAI,IAAI,YAAY,YAAY,IAAI,WAAW,SAAS;AACtD,sBAAc,aAAa;AAC3B,sBAAc,UAAU,EAAE,KAAK,WAAY;AACzC,cAAI,cAAc,UAAU;AAC1B,mBAAO;AAAA,UACT;AAAA,QACF,CAAC;AAAA,MACH;AAAA,IACF;AACA,kBAAc,iBAAiB,iBAAiB,YAAY,iBAAiB;AAC7E,kBAAc,OAAO,KAAK,iBAAiB;AAAA,EAC7C,CAAC;AACH;AACA,SAASC,yBAAwB,SAAS,SAAS;AACjD,MAAI,CAAC,QAAS,WAAU,CAAC;AACzB,YAAU,KAAK,MAAM,KAAK,UAAU,OAAO,CAAC;AAC5C,MAAI,CAAC,QAAQ,kBAAkB;AAC7B,YAAQ,mBAAmB;AAAA,EAC7B;AACA,MAAI,CAAC,QAAQ,cAAc;AACzB,YAAQ,eAAe,QAAQ,OAAO,oBAAoB,QAAQ,OAAO;AAAA,EAC3E;AACA,SAAO;AACT;AACO,SAAS,qBAAqB,SAAS,SAAS;AACrD,MAAI,QAAQ,gBAAgB;AAC1B,UAAM,IAAI,MAAM,+CAA+C;AAAA,EACjE;AACA,YAAUA,yBAAwB,SAAS,OAAO;AAClD,MAAI,UAAU,mBAAmB,IAAI,IAAI,sBAAsB,SAAS,OAAO,IAAI,IAAI,eAAe,SAAS,OAAO;AACtH,UAAQ,MAAM,KAAK,WAAY;AAC7B,WAAO,QAAQ,IAAI;AAAA,EACrB,CAAC;AACD,UAAQ,iBAAiB;AACzB,SAAO;AACT;AA5RA,IAGI;AAHJ;AAAA;AAAA;AACA;AACA;AACA,IAAI,iBAAiB,SAASC,gBAAe,kBAAkB,SAAS;AACtE,UAAI,QAAQ;AACZ,WAAK,mBAAmB;AACxB,WAAK,WAAW;AAChB,WAAK,WAAW;AAChB,WAAK,aAAa;AAClB,WAAK,SAAS;AACd,WAAK,QAAQ,YAAY;AAOzB,WAAK,QAAQ;AAEb,WAAK,SAAS;AAGd,WAAK,OAAO,CAAC;AACb,WAAK,SAAS,CAAC;AACf,WAAK,OAAO,WAAY;AAAA,MAAC;AACzB,WAAK,QAAQ;AAOb,UAAI,oBAAoB,SAASC,mBAAkB,KAAK;AACtD,YAAI,IAAI,YAAY,UAAU;AAC5B,cAAI,IAAI,WAAW,SAAS;AAC1B,kBAAM,aAAa;AAAA,UACrB;AACA,cAAI,IAAI,WAAW,QAAQ;AACzB,kBAAM,aAAa;AAAA,UACrB;AAAA,QACF;AAAA,MACF;AACA,WAAK,iBAAiB,iBAAiB,YAAY,iBAAiB;AACpE,WAAK,OAAO,KAAK,iBAAiB;AAAA,IACpC;AACA,mBAAe,YAAY;AAAA,MACzB,WAAW,SAASC,aAAY;AAC9B,eAAO,QAAQ,QAAQ,KAAK,UAAU;AAAA,MACxC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,MAMA,WAAW,SAAS,UAEpB,wBAAwB;AACtB,YAAI,SAAS;AACb,YAAI,KAAK,UAAU;AACjB,iBAAO,MAAM,GAAG,IAAI;AAAA,QACtB;AACA,YAAI,KAAK,QAAQ;AACf,iBAAO,MAAM,GAAG,KAAK;AAAA,QACvB;AAMA,YAAI,KAAK,SAAS,GAAG;AACnB,iBAAO,KAAK;AAAA,QACd;AAKA,YAAI,WAAW,SAASC,YAAW;AAMjC,cAAI,OAAO,UAAU;AACnB,mBAAO;AAAA,UACT;AACA,cAAI,eAAe;AACnB,cAAI;AAOJ,cAAI,sBAAsB,IAAI,QAAQ,SAAU,KAAK;AACnD,yCAA6B,SAASC,8BAA6B;AACjE,6BAAe;AACf,kBAAI;AAAA,YACN;AAAA,UACF,CAAC;AACD,cAAI,gBAAgB,SAASC,eAAc,KAAK;AAC9C,gBAAI,IAAI,YAAY,YAAY,IAAI,SAAS,OAAO,OAAO;AACzD,kBAAI,IAAI,WAAW,SAAS;AAE1B,oBAAI,IAAI,QAAQ,OAAO,OAAO;AAK5B,6CAA2B;AAAA,gBAC7B;AAAA,cACF;AACA,kBAAI,IAAI,WAAW,QAAQ;AAEzB,2CAA2B;AAC3B,uBAAO,aAAa;AAAA,cACtB;AAAA,YACF;AAAA,UACF;AACA,iBAAO,iBAAiB,iBAAiB,YAAY,aAAa;AAYlE,cAAI,oBAAoB,yBAAyB,OAAO,SAAS,eAAe,IAAI,OAAO,SAAS;AACpG,iBAAO,kBAAkB,QAAQ,OAAO,EACvC,KAAK,WAAY;AAChB,mBAAO,QAAQ,KAAK,CAAC,MAAM,iBAAiB,GAAG,oBAAoB,KAAK,WAAY;AAClF,qBAAO,QAAQ,OAAO,IAAI,MAAM,CAAC;AAAA,YACnC,CAAC,CAAC,CAAC;AAAA,UACL,CAAC,EAEA,KAAK,WAAY;AAChB,mBAAO,kBAAkB,QAAQ,OAAO;AAAA,UAC1C,CAAC,EAEA,KAAK,WAAY;AAChB,mBAAO,QAAQ,KAAK,CAAC,MAAM,iBAAiB,GAAG,oBAAoB,KAAK,WAAY;AAClF,qBAAO,QAAQ,OAAO,IAAI,MAAM,CAAC;AAAA,YACnC,CAAC,CAAC,CAAC;AAAA,UACL,CAAC,EAAE,OAAO,EAAE,WAAY;AAAA,UAAC,CAAC,EAAE,KAAK,WAAY;AAC3C,mBAAO,iBAAiB,oBAAoB,YAAY,aAAa;AACrE,gBAAI,CAAC,cAAc;AAEjB,qBAAO,SAAS,MAAM,EAAE,KAAK,WAAY;AACvC,uBAAO;AAAA,cACT,CAAC;AAAA,YACH,OAAO;AAEL,qBAAO;AAAA,YACT;AAAA,UACF,CAAC;AAAA,QACH;AACA,aAAK,SAAS,KAAK,SAAS;AAC5B,aAAK,QAAQ,KAAK,MAAM,KAAK,WAAY;AACvC,iBAAO,SAAS;AAAA,QAClB,CAAC,EAAE,KAAK,WAAY;AAClB,iBAAO,SAAS,OAAO,SAAS;AAAA,QAClC,CAAC;AACD,eAAO,KAAK,MAAM,KAAK,WAAY;AACjC,iBAAO,OAAO;AAAA,QAChB,CAAC;AAAA,MACH;AAAA,MACA,iBAAiB,SAASC,mBAAkB;AAC1C;AAAA;AAAA,UACA,CAAC,KAAK;AAAA,UAAM;AACV,eAAK,OAAO,qBAAqB,IAAI;AAAA,QACvC;AACA,eAAO,KAAK;AAAA,MACd;AAAA,MACA,IAAI,YAAY,IAAI;AAClB,aAAK,OAAO;AAAA,MACd;AAAA,MACA,KAAK,SAASC,OAAM;AAClB,YAAI,SAAS;AACb,aAAK,OAAO,QAAQ,SAAUC,WAAU;AACtC,iBAAO,OAAO,iBAAiB,oBAAoB,YAAYA,SAAQ;AAAA,QACzE,CAAC;AACD,aAAK,SAAS,CAAC;AACf,aAAK,KAAK,QAAQ,SAAU,KAAK;AAC/B,iBAAO,IAAI,OAAO;AAAA,QACpB,CAAC;AACD,aAAK,OAAO,CAAC;AACb,YAAI,KAAK,UAAU;AACjB,eAAK,aAAa;AAClB,eAAK,WAAW;AAAA,QAClB;AACA,aAAK,SAAS;AACd,eAAO,kBAAkB,MAAM,OAAO;AAAA,MACxC;AAAA,IACF;AAAA;AAAA;;;ACpMA;AAAA;AAAA;AACA;AACA;AAAA;AAAA;;;ACFA;;AACA,IAAAC;AACA,IAAAA;AACA,IAAAA;AAKA;;;;;ACRA,IAEIC,mBAQS;AAVb;;;AAEA,IAAIA,oBAAmB,WAAW;AAClC,QAAI,CAACA,mBAAkB;AACrB,MAAAA,oBAA2BA;IAC7B;AAKM,IAAO,YAAP,MAAgB;;MAapB,cAAA;AAZQ,aAAA,mBAAmB,IAAIA,kBAAiB,YAAY;AAGrD,aAAA,cAAc,IAAYC,kBAAa,YAAW;AAClD,aAAA,cAAc,IAAYA,kBAAa,YAAY;UACxD,2BAA2B,OAAO,eAAc;AAC9C,iBAAK,YAAY,UAAU;UAC7B;UACA,gBAAgB,KAAK;SACtB;AAIC,aAAK,iBAAiB,YAAY,OAAO,aAAY;AACnD,gBAAMC,WAAW,SAAiB,SAAS,WAAW,SAAS;AAC/D,kBAAQ,IAAI,KAAK,UAAUA,QAAO,CAAC;AAGnC,gBAAM,WAAW,MAAM,KAAK,YAAY,oBAAoBA,UAAS,EAAE,WAAW,KAAI,CAAE;AACxF,cAAI,YAAY,CAAC,SAAS,OAAO;AAC/B,iBAAK,YAAY,QAAQ;UAC3B,OAAO;UAEP;QACF;MACF;;;;MAKO,mBACL,YAAuB;AAEvB,cAAM,eAAe,IAAYD,kBAAa,aAAa,KAAK,aAAa,UAAU;AACvF,eAAO;MACT;;;;MAKO,MAAM,YACX,YAAa;AAEb,aAAK,iBAAiB,YAAY,UAAU;MAC9C;;;;MAKO,MAAM,mBACX,WACA,iBAAyD;AAEzD,aAAK,YAAY,gBACf,IAAYA,kBAAa,aAAgB,WAAW,eAAe,CAAC;MAExE;;;;;;ACnEF,IAAAE,oBAAA;SAAAA,mBAAA;;;IAAAC,iBAAA;;;;;;;ACAA;AAAA;AAAA;AAGA,aAAS,UAAU,SAAS;AAC1B,aAAQ,OAAO,YAAY,eAAiB,YAAY;AAAA,IAC1D;AAGA,aAASC,UAAS,SAAS;AACzB,aAAQ,OAAO,YAAY,YAAc,YAAY;AAAA,IACvD;AAGA,aAASC,SAAQ,UAAU;AACzB,UAAI,MAAM,QAAQ,QAAQ,EAAG,QAAO;AAAA,eAC3B,UAAU,QAAQ,EAAG,QAAO,CAAC;AAEtC,aAAO,CAAE,QAAS;AAAA,IACpB;AAGA,aAASC,QAAO,QAAQ,QAAQ;AAC9B,UAAIC,QAAO,QAAQC,MAAK;AAExB,UAAI,QAAQ;AACV,qBAAa,OAAO,KAAK,MAAM;AAE/B,aAAKD,SAAQ,GAAG,SAAS,WAAW,QAAQA,SAAQ,QAAQA,UAAS,GAAG;AACtE,UAAAC,OAAM,WAAWD,MAAK;AACtB,iBAAOC,IAAG,IAAI,OAAOA,IAAG;AAAA,QAC1B;AAAA,MACF;AAEA,aAAO;AAAA,IACT;AAGA,aAASC,QAAOC,SAAQC,QAAO;AAC7B,UAAI,SAAS,IAAI;AAEjB,WAAK,QAAQ,GAAG,QAAQA,QAAO,SAAS,GAAG;AACzC,kBAAUD;AAAA,MACZ;AAEA,aAAO;AAAA,IACT;AAGA,aAAS,eAAeE,SAAQ;AAC9B,aAAQA,YAAW,KAAO,OAAO,sBAAsB,IAAIA;AAAA,IAC7D;AAGA,WAAO,QAAQ,YAAiB;AAChC,WAAO,QAAQ,WAAiBR;AAChC,WAAO,QAAQ,UAAiBC;AAChC,WAAO,QAAQ,SAAiBI;AAChC,WAAO,QAAQ,iBAAiB;AAChC,WAAO,QAAQ,SAAiBH;AAAA;AAAA;;;AC1DhC;AAAA;AAAA;AAIA,aAAS,cAAc,QAAQO,OAAM;AAEnC,YAAM,KAAK,IAAI;AAEf,WAAK,OAAO;AACZ,WAAK,SAAS;AACd,WAAK,OAAOA;AACZ,WAAK,WAAW,KAAK,UAAU,uBAAuB,KAAK,OAAO,MAAM,KAAK,KAAK,SAAS,IAAI;AAG/F,UAAI,MAAM,mBAAmB;AAE3B,cAAM,kBAAkB,MAAM,KAAK,WAAW;AAAA,MAChD,OAAO;AAEL,aAAK,QAAS,IAAI,MAAM,EAAG,SAAS;AAAA,MACtC;AAAA,IACF;AAIA,kBAAc,YAAY,OAAO,OAAO,MAAM,SAAS;AACvD,kBAAc,UAAU,cAAc;AAGtC,kBAAc,UAAU,WAAW,SAASC,UAAS,SAAS;AAC5D,UAAI,SAAS,KAAK,OAAO;AAEzB,gBAAU,KAAK,UAAU;AAEzB,UAAI,CAAC,WAAW,KAAK,MAAM;AACzB,kBAAU,MAAM,KAAK,KAAK,SAAS;AAAA,MACrC;AAEA,aAAO;AAAA,IACT;AAGA,WAAO,UAAU;AAAA;AAAA;;;AC1CjB;AAAA;AAAA;AAGA,QAAI,SAAS;AAGb,aAAS,KAAK,MAAMC,SAAQC,WAAU,MAAM,QAAQ;AAClD,WAAK,OAAW;AAChB,WAAK,SAAWD;AAChB,WAAK,WAAWC;AAChB,WAAK,OAAW;AAChB,WAAK,SAAW;AAAA,IAClB;AAGA,SAAK,UAAU,aAAa,SAAS,WAAWC,SAAQ,WAAW;AACjE,UAAIC,OAAM,OAAO,MAAMC,MAAK;AAE5B,UAAI,CAAC,KAAK,OAAQ,QAAO;AAEzB,MAAAF,UAASA,WAAU;AACnB,kBAAY,aAAa;AAEzB,MAAAC,QAAO;AACP,cAAQ,KAAK;AAEb,aAAO,QAAQ,KAAK,yBAA2B,QAAQ,KAAK,OAAO,OAAO,QAAQ,CAAC,CAAC,MAAM,IAAI;AAC5F,iBAAS;AACT,YAAI,KAAK,WAAW,QAAS,YAAY,IAAI,GAAI;AAC/C,UAAAA,QAAO;AACP,mBAAS;AACT;AAAA,QACF;AAAA,MACF;AAEA,aAAO;AACP,MAAAC,OAAM,KAAK;AAEX,aAAOA,OAAM,KAAK,OAAO,UAAU,yBAA2B,QAAQ,KAAK,OAAO,OAAOA,IAAG,CAAC,MAAM,IAAI;AACrG,QAAAA,QAAO;AACP,YAAIA,OAAM,KAAK,WAAY,YAAY,IAAI,GAAI;AAC7C,iBAAO;AACP,UAAAA,QAAO;AACP;AAAA,QACF;AAAA,MACF;AAEA,gBAAU,KAAK,OAAO,MAAM,OAAOA,IAAG;AAEtC,aAAO,OAAO,OAAO,KAAKF,OAAM,IAAIC,QAAO,UAAU,OAAO,OACrD,OAAO,OAAO,KAAKD,UAAS,KAAK,WAAW,QAAQC,MAAK,MAAM,IAAI;AAAA,IAC5E;AAGA,SAAK,UAAU,WAAW,SAASE,UAAS,SAAS;AACnD,UAAI,SAAS,QAAQ;AAErB,UAAI,KAAK,MAAM;AACb,iBAAS,SAAS,KAAK,OAAO;AAAA,MAChC;AAEA,eAAS,cAAc,KAAK,OAAO,KAAK,eAAe,KAAK,SAAS;AAErE,UAAI,CAAC,SAAS;AACZ,kBAAU,KAAK,WAAW;AAE1B,YAAI,SAAS;AACX,mBAAS,QAAQ;AAAA,QACnB;AAAA,MACF;AAEA,aAAO;AAAA,IACT;AAGA,WAAO,UAAU;AAAA;AAAA;;;AC3EjB;AAAA;AAAA;AAEA,QAAI,gBAAgB;AAEpB,QAAI,2BAA2B;AAAA,MAC7B;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IACF;AAEA,QAAI,kBAAkB;AAAA,MACpB;AAAA,MACA;AAAA,MACA;AAAA,IACF;AAEA,aAAS,oBAAoBC,MAAK;AAChC,UAAI,SAAS,CAAC;AAEd,UAAIA,SAAQ,MAAM;AAChB,eAAO,KAAKA,IAAG,EAAE,QAAQ,SAAU,OAAO;AACxC,UAAAA,KAAI,KAAK,EAAE,QAAQ,SAAU,OAAO;AAClC,mBAAO,OAAO,KAAK,CAAC,IAAI;AAAA,UAC1B,CAAC;AAAA,QACH,CAAC;AAAA,MACH;AAEA,aAAO;AAAA,IACT;AAEA,aAAS,KAAK,KAAK,SAAS;AAC1B,gBAAU,WAAW,CAAC;AAEtB,aAAO,KAAK,OAAO,EAAE,QAAQ,SAAU,MAAM;AAC3C,YAAI,yBAAyB,QAAQ,IAAI,MAAM,IAAI;AACjD,gBAAM,IAAI,cAAc,qBAAqB,OAAO,gCAAgC,MAAM,cAAc;AAAA,QAC1G;AAAA,MACF,CAAC;AAGD,WAAK,MAAe;AACpB,WAAK,OAAe,QAAQ,MAAM,KAAa;AAC/C,WAAK,UAAe,QAAQ,SAAS,KAAU,WAAY;AAAE,eAAO;AAAA,MAAM;AAC1E,WAAK,YAAe,QAAQ,WAAW,KAAQ,SAAUC,OAAM;AAAE,eAAOA;AAAA,MAAM;AAC9E,WAAK,aAAe,QAAQ,YAAY,KAAO;AAC/C,WAAK,YAAe,QAAQ,WAAW,KAAQ;AAC/C,WAAK,YAAe,QAAQ,WAAW,KAAQ;AAC/C,WAAK,eAAe,QAAQ,cAAc,KAAK;AAC/C,WAAK,eAAe,oBAAoB,QAAQ,cAAc,KAAK,IAAI;AAEvE,UAAI,gBAAgB,QAAQ,KAAK,IAAI,MAAM,IAAI;AAC7C,cAAM,IAAI,cAAc,mBAAmB,KAAK,OAAO,yBAAyB,MAAM,cAAc;AAAA,MACtG;AAAA,IACF;AAEA,WAAO,UAAU;AAAA;AAAA;;;AC5DjB;AAAA;AAAA;AAIA,QAAI,SAAgB;AACpB,QAAI,gBAAgB;AACpB,QAAI,OAAgB;AAGpB,aAAS,YAAY,QAAQ,MAAM,QAAQ;AACzC,UAAI,UAAU,CAAC;AAEf,aAAO,QAAQ,QAAQ,SAAU,gBAAgB;AAC/C,iBAAS,YAAY,gBAAgB,MAAM,MAAM;AAAA,MACnD,CAAC;AAED,aAAO,IAAI,EAAE,QAAQ,SAAU,aAAa;AAC1C,eAAO,QAAQ,SAAU,cAAc,eAAe;AACpD,cAAI,aAAa,QAAQ,YAAY,OAAO,aAAa,SAAS,YAAY,MAAM;AAClF,oBAAQ,KAAK,aAAa;AAAA,UAC5B;AAAA,QACF,CAAC;AAED,eAAO,KAAK,WAAW;AAAA,MACzB,CAAC;AAED,aAAO,OAAO,OAAO,SAAUC,OAAMC,QAAO;AAC1C,eAAO,QAAQ,QAAQA,MAAK,MAAM;AAAA,MACpC,CAAC;AAAA,IACH;AAGA,aAAS,aAA2B;AAClC,UAAI,SAAS;AAAA,QACP,QAAQ,CAAC;AAAA,QACT,UAAU,CAAC;AAAA,QACX,SAAS,CAAC;AAAA,QACV,UAAU,CAAC;AAAA,MACb,GAAGA,QAAO;AAEd,eAAS,YAAYD,OAAM;AACzB,eAAOA,MAAK,IAAI,EAAEA,MAAK,GAAG,IAAI,OAAO,UAAU,EAAEA,MAAK,GAAG,IAAIA;AAAA,MAC/D;AAEA,WAAKC,SAAQ,GAAG,SAAS,UAAU,QAAQA,SAAQ,QAAQA,UAAS,GAAG;AACrE,kBAAUA,MAAK,EAAE,QAAQ,WAAW;AAAA,MACtC;AACA,aAAO;AAAA,IACT;AAGA,aAASC,QAAOC,aAAY;AAC1B,WAAK,UAAWA,YAAW,WAAY,CAAC;AACxC,WAAK,WAAWA,YAAW,YAAY,CAAC;AACxC,WAAK,WAAWA,YAAW,YAAY,CAAC;AAExC,WAAK,SAAS,QAAQ,SAAUH,OAAM;AACpC,YAAIA,MAAK,YAAYA,MAAK,aAAa,UAAU;AAC/C,gBAAM,IAAI,cAAc,iHAAiH;AAAA,QAC3I;AAAA,MACF,CAAC;AAED,WAAK,mBAAmB,YAAY,MAAM,YAAY,CAAC,CAAC;AACxD,WAAK,mBAAmB,YAAY,MAAM,YAAY,CAAC,CAAC;AACxD,WAAK,kBAAmB,WAAW,KAAK,kBAAkB,KAAK,gBAAgB;AAAA,IACjF;AAGA,IAAAE,QAAO,UAAU;AAGjB,IAAAA,QAAO,SAAS,SAAS,eAAe;AACtC,UAAI,SAAS;AAEb,cAAQ,UAAU,QAAQ;AAAA,QACxB,KAAK;AACH,oBAAUA,QAAO;AACjB,kBAAQ,UAAU,CAAC;AACnB;AAAA,QAEF,KAAK;AACH,oBAAU,UAAU,CAAC;AACrB,kBAAQ,UAAU,CAAC;AACnB;AAAA,QAEF;AACE,gBAAM,IAAI,cAAc,sDAAsD;AAAA,MAClF;AAEA,gBAAU,OAAO,QAAQ,OAAO;AAChC,cAAQ,OAAO,QAAQ,KAAK;AAE5B,UAAI,CAAC,QAAQ,MAAM,SAAU,QAAQ;AAAE,eAAO,kBAAkBA;AAAA,MAAQ,CAAC,GAAG;AAC1E,cAAM,IAAI,cAAc,2FAA2F;AAAA,MACrH;AAEA,UAAI,CAAC,MAAM,MAAM,SAAUF,OAAM;AAAE,eAAOA,iBAAgB;AAAA,MAAM,CAAC,GAAG;AAClE,cAAM,IAAI,cAAc,oFAAoF;AAAA,MAC9G;AAEA,aAAO,IAAIE,QAAO;AAAA,QAChB,SAAS;AAAA,QACT,UAAU;AAAA,MACZ,CAAC;AAAA,IACH;AAGA,WAAO,UAAUA;AAAA;AAAA;;;AC3GjB;AAAA;AAAA;AAEA,QAAI,OAAO;AAEX,WAAO,UAAU,IAAI,KAAK,yBAAyB;AAAA,MACjD,MAAM;AAAA,MACN,WAAW,SAAUE,OAAM;AAAE,eAAOA,UAAS,OAAOA,QAAO;AAAA,MAAI;AAAA,IACjE,CAAC;AAAA;AAAA;;;ACPD;AAAA;AAAA;AAEA,QAAI,OAAO;AAEX,WAAO,UAAU,IAAI,KAAK,yBAAyB;AAAA,MACjD,MAAM;AAAA,MACN,WAAW,SAAUC,OAAM;AAAE,eAAOA,UAAS,OAAOA,QAAO,CAAC;AAAA,MAAG;AAAA,IACjE,CAAC;AAAA;AAAA;;;ACPD;AAAA;AAAA;AAEA,QAAI,OAAO;AAEX,WAAO,UAAU,IAAI,KAAK,yBAAyB;AAAA,MACjD,MAAM;AAAA,MACN,WAAW,SAAUC,OAAM;AAAE,eAAOA,UAAS,OAAOA,QAAO,CAAC;AAAA,MAAG;AAAA,IACjE,CAAC;AAAA;AAAA;;;ACPD;AAAA;AAAA;AAOA,QAAIC,UAAS;AAGb,WAAO,UAAU,IAAIA,QAAO;AAAA,MAC1B,UAAU;AAAA,QACR;AAAA,QACA;AAAA,QACA;AAAA,MACF;AAAA,IACF,CAAC;AAAA;AAAA;;;AChBD;AAAA;AAAA;AAEA,QAAI,OAAO;AAEX,aAAS,gBAAgBC,OAAM;AAC7B,UAAIA,UAAS,KAAM,QAAO;AAE1B,UAAIC,OAAMD,MAAK;AAEf,aAAQC,SAAQ,KAAKD,UAAS,OACtBC,SAAQ,MAAMD,UAAS,UAAUA,UAAS,UAAUA,UAAS;AAAA,IACvE;AAEA,aAAS,oBAAoB;AAC3B,aAAO;AAAA,IACT;AAEA,aAAS,OAAO,QAAQ;AACtB,aAAO,WAAW;AAAA,IACpB;AAEA,WAAO,UAAU,IAAI,KAAK,0BAA0B;AAAA,MAClD,MAAM;AAAA,MACN,SAAS;AAAA,MACT,WAAW;AAAA,MACX,WAAW;AAAA,MACX,WAAW;AAAA,QACT,WAAW,WAAY;AAAE,iBAAO;AAAA,QAAQ;AAAA,QACxC,WAAW,WAAY;AAAE,iBAAO;AAAA,QAAQ;AAAA,QACxC,WAAW,WAAY;AAAE,iBAAO;AAAA,QAAQ;AAAA,QACxC,WAAW,WAAY;AAAE,iBAAO;AAAA,QAAQ;AAAA,MAC1C;AAAA,MACA,cAAc;AAAA,IAChB,CAAC;AAAA;AAAA;;;ACjCD;AAAA;AAAA;AAEA,QAAI,OAAO;AAEX,aAAS,mBAAmBE,OAAM;AAChC,UAAIA,UAAS,KAAM,QAAO;AAE1B,UAAIC,OAAMD,MAAK;AAEf,aAAQC,SAAQ,MAAMD,UAAS,UAAUA,UAAS,UAAUA,UAAS,WAC7DC,SAAQ,MAAMD,UAAS,WAAWA,UAAS,WAAWA,UAAS;AAAA,IACzE;AAEA,aAAS,qBAAqBA,OAAM;AAClC,aAAOA,UAAS,UACTA,UAAS,UACTA,UAAS;AAAA,IAClB;AAEA,aAAS,UAAU,QAAQ;AACzB,aAAO,OAAO,UAAU,SAAS,KAAK,MAAM,MAAM;AAAA,IACpD;AAEA,WAAO,UAAU,IAAI,KAAK,0BAA0B;AAAA,MAClD,MAAM;AAAA,MACN,SAAS;AAAA,MACT,WAAW;AAAA,MACX,WAAW;AAAA,MACX,WAAW;AAAA,QACT,WAAW,SAAU,QAAQ;AAAE,iBAAO,SAAS,SAAS;AAAA,QAAS;AAAA,QACjE,WAAW,SAAU,QAAQ;AAAE,iBAAO,SAAS,SAAS;AAAA,QAAS;AAAA,QACjE,WAAW,SAAU,QAAQ;AAAE,iBAAO,SAAS,SAAS;AAAA,QAAS;AAAA,MACnE;AAAA,MACA,cAAc;AAAA,IAChB,CAAC;AAAA;AAAA;;;AClCD;AAAA;AAAA;AAEA,QAAI,SAAS;AACb,QAAI,OAAS;AAEb,aAAS,UAAUE,KAAG;AACpB,aAAS,MAAeA,OAAOA,OAAK,MAC3B,MAAeA,OAAOA,OAAK,MAC3B,MAAeA,OAAOA,OAAK;AAAA,IACtC;AAEA,aAAS,UAAUA,KAAG;AACpB,aAAS,MAAeA,OAAOA,OAAK;AAAA,IACtC;AAEA,aAAS,UAAUA,KAAG;AACpB,aAAS,MAAeA,OAAOA,OAAK;AAAA,IACtC;AAEA,aAAS,mBAAmBC,OAAM;AAChC,UAAIA,UAAS,KAAM,QAAO;AAE1B,UAAIC,OAAMD,MAAK,QACXE,SAAQ,GACR,YAAY,OACZ;AAEJ,UAAI,CAACD,KAAK,QAAO;AAEjB,WAAKD,MAAKE,MAAK;AAGf,UAAI,OAAO,OAAO,OAAO,KAAK;AAC5B,aAAKF,MAAK,EAAEE,MAAK;AAAA,MACnB;AAEA,UAAI,OAAO,KAAK;AAEd,YAAIA,SAAQ,MAAMD,KAAK,QAAO;AAC9B,aAAKD,MAAK,EAAEE,MAAK;AAIjB,YAAI,OAAO,KAAK;AAEd,UAAAA;AAEA,iBAAOA,SAAQD,MAAKC,UAAS;AAC3B,iBAAKF,MAAKE,MAAK;AACf,gBAAI,OAAO,IAAK;AAChB,gBAAI,OAAO,OAAO,OAAO,IAAK,QAAO;AACrC,wBAAY;AAAA,UACd;AACA,iBAAO,aAAa,OAAO;AAAA,QAC7B;AAGA,YAAI,OAAO,KAAK;AAEd,UAAAA;AAEA,iBAAOA,SAAQD,MAAKC,UAAS;AAC3B,iBAAKF,MAAKE,MAAK;AACf,gBAAI,OAAO,IAAK;AAChB,gBAAI,CAAC,UAAUF,MAAK,WAAWE,MAAK,CAAC,EAAG,QAAO;AAC/C,wBAAY;AAAA,UACd;AACA,iBAAO,aAAa,OAAO;AAAA,QAC7B;AAGA,eAAOA,SAAQD,MAAKC,UAAS;AAC3B,eAAKF,MAAKE,MAAK;AACf,cAAI,OAAO,IAAK;AAChB,cAAI,CAAC,UAAUF,MAAK,WAAWE,MAAK,CAAC,EAAG,QAAO;AAC/C,sBAAY;AAAA,QACd;AACA,eAAO,aAAa,OAAO;AAAA,MAC7B;AAKA,UAAI,OAAO,IAAK,QAAO;AAEvB,aAAOA,SAAQD,MAAKC,UAAS;AAC3B,aAAKF,MAAKE,MAAK;AACf,YAAI,OAAO,IAAK;AAChB,YAAI,OAAO,IAAK;AAChB,YAAI,CAAC,UAAUF,MAAK,WAAWE,MAAK,CAAC,GAAG;AACtC,iBAAO;AAAA,QACT;AACA,oBAAY;AAAA,MACd;AAGA,UAAI,CAAC,aAAa,OAAO,IAAK,QAAO;AAGrC,UAAI,OAAO,IAAK,QAAO;AAGvB,aAAO,oBAAoB,KAAKF,MAAK,MAAME,MAAK,CAAC;AAAA,IACnD;AAEA,aAAS,qBAAqBF,OAAM;AAClC,UAAIG,SAAQH,OAAM,OAAO,GAAG,IAAI,MAAM,SAAS,CAAC;AAEhD,UAAIG,OAAM,QAAQ,GAAG,MAAM,IAAI;AAC7B,QAAAA,SAAQA,OAAM,QAAQ,MAAM,EAAE;AAAA,MAChC;AAEA,WAAKA,OAAM,CAAC;AAEZ,UAAI,OAAO,OAAO,OAAO,KAAK;AAC5B,YAAI,OAAO,IAAK,QAAO;AACvB,QAAAA,SAAQA,OAAM,MAAM,CAAC;AACrB,aAAKA,OAAM,CAAC;AAAA,MACd;AAEA,UAAIA,WAAU,IAAK,QAAO;AAE1B,UAAI,OAAO,KAAK;AACd,YAAIA,OAAM,CAAC,MAAM,IAAK,QAAO,OAAO,SAASA,OAAM,MAAM,CAAC,GAAG,CAAC;AAC9D,YAAIA,OAAM,CAAC,MAAM,IAAK,QAAO,OAAO,SAASA,QAAO,EAAE;AACtD,eAAO,OAAO,SAASA,QAAO,CAAC;AAAA,MACjC;AAEA,UAAIA,OAAM,QAAQ,GAAG,MAAM,IAAI;AAC7B,QAAAA,OAAM,MAAM,GAAG,EAAE,QAAQ,SAAUC,IAAG;AACpC,iBAAO,QAAQ,SAASA,IAAG,EAAE,CAAC;AAAA,QAChC,CAAC;AAED,QAAAD,SAAQ;AACR,eAAO;AAEP,eAAO,QAAQ,SAAUE,IAAG;AAC1B,UAAAF,UAAUE,KAAI;AACd,kBAAQ;AAAA,QACV,CAAC;AAED,eAAO,OAAOF;AAAA,MAEhB;AAEA,aAAO,OAAO,SAASA,QAAO,EAAE;AAAA,IAClC;AAEA,aAAS,UAAU,QAAQ;AACzB,aAAQ,OAAO,UAAU,SAAS,KAAK,MAAM,MAAO,sBAC5C,SAAS,MAAM,KAAK,CAAC,OAAO,eAAe,MAAM;AAAA,IAC3D;AAEA,WAAO,UAAU,IAAI,KAAK,yBAAyB;AAAA,MACjD,MAAM;AAAA,MACN,SAAS;AAAA,MACT,WAAW;AAAA,MACX,WAAW;AAAA,MACX,WAAW;AAAA,QACT,QAAa,SAAU,KAAK;AAAE,iBAAO,OAAO,IAAI,OAAO,IAAI,SAAS,CAAC,IAAI,QAAQ,IAAI,SAAS,CAAC,EAAE,MAAM,CAAC;AAAA,QAAG;AAAA,QAC3G,OAAa,SAAU,KAAK;AAAE,iBAAO,OAAO,IAAI,MAAO,IAAI,SAAS,CAAC,IAAI,OAAQ,IAAI,SAAS,CAAC,EAAE,MAAM,CAAC;AAAA,QAAG;AAAA,QAC3G,SAAa,SAAU,KAAK;AAAE,iBAAO,IAAI,SAAS,EAAE;AAAA,QAAG;AAAA;AAAA,QAEvD,aAAa,SAAU,KAAK;AAAE,iBAAO,OAAO,IAAI,OAAO,IAAI,SAAS,EAAE,EAAE,YAAY,IAAK,QAAQ,IAAI,SAAS,EAAE,EAAE,YAAY,EAAE,MAAM,CAAC;AAAA,QAAG;AAAA,MAC5I;AAAA,MACA,cAAc;AAAA,MACd,cAAc;AAAA,QACZ,QAAa,CAAE,GAAI,KAAM;AAAA,QACzB,OAAa,CAAE,GAAI,KAAM;AAAA,QACzB,SAAa,CAAE,IAAI,KAAM;AAAA,QACzB,aAAa,CAAE,IAAI,KAAM;AAAA,MAC3B;AAAA,IACF,CAAC;AAAA;AAAA;;;AC5KD;AAAA;AAAA;AAEA,QAAI,SAAS;AACb,QAAI,OAAS;AAEb,QAAI,qBAAqB,IAAI;AAAA;AAAA,MAE3B;AAAA,IASuB;AAEzB,aAAS,iBAAiBG,OAAM;AAC9B,UAAIA,UAAS,KAAM,QAAO;AAE1B,UAAI,CAAC,mBAAmB,KAAKA,KAAI;AAAA;AAAA,MAG7BA,MAAKA,MAAK,SAAS,CAAC,MAAM,KAAK;AACjC,eAAO;AAAA,MACT;AAEA,aAAO;AAAA,IACT;AAEA,aAAS,mBAAmBA,OAAM;AAChC,UAAIC,QAAO,MAAM,MAAM;AAEvB,MAAAA,SAASD,MAAK,QAAQ,MAAM,EAAE,EAAE,YAAY;AAC5C,aAASC,OAAM,CAAC,MAAM,MAAM,KAAK;AACjC,eAAS,CAAC;AAEV,UAAI,KAAK,QAAQA,OAAM,CAAC,CAAC,KAAK,GAAG;AAC/B,QAAAA,SAAQA,OAAM,MAAM,CAAC;AAAA,MACvB;AAEA,UAAIA,WAAU,QAAQ;AACpB,eAAQ,SAAS,IAAK,OAAO,oBAAoB,OAAO;AAAA,MAE1D,WAAWA,WAAU,QAAQ;AAC3B,eAAO;AAAA,MAET,WAAWA,OAAM,QAAQ,GAAG,KAAK,GAAG;AAClC,QAAAA,OAAM,MAAM,GAAG,EAAE,QAAQ,SAAUC,IAAG;AACpC,iBAAO,QAAQ,WAAWA,IAAG,EAAE,CAAC;AAAA,QAClC,CAAC;AAED,QAAAD,SAAQ;AACR,eAAO;AAEP,eAAO,QAAQ,SAAUE,IAAG;AAC1B,UAAAF,UAASE,KAAI;AACb,kBAAQ;AAAA,QACV,CAAC;AAED,eAAO,OAAOF;AAAA,MAEhB;AACA,aAAO,OAAO,WAAWA,QAAO,EAAE;AAAA,IACpC;AAGA,QAAI,yBAAyB;AAE7B,aAAS,mBAAmB,QAAQ,OAAO;AACzC,UAAI;AAEJ,UAAI,MAAM,MAAM,GAAG;AACjB,gBAAQ,OAAO;AAAA,UACb,KAAK;AAAa,mBAAO;AAAA,UACzB,KAAK;AAAa,mBAAO;AAAA,UACzB,KAAK;AAAa,mBAAO;AAAA,QAC3B;AAAA,MACF,WAAW,OAAO,sBAAsB,QAAQ;AAC9C,gBAAQ,OAAO;AAAA,UACb,KAAK;AAAa,mBAAO;AAAA,UACzB,KAAK;AAAa,mBAAO;AAAA,UACzB,KAAK;AAAa,mBAAO;AAAA,QAC3B;AAAA,MACF,WAAW,OAAO,sBAAsB,QAAQ;AAC9C,gBAAQ,OAAO;AAAA,UACb,KAAK;AAAa,mBAAO;AAAA,UACzB,KAAK;AAAa,mBAAO;AAAA,UACzB,KAAK;AAAa,mBAAO;AAAA,QAC3B;AAAA,MACF,WAAW,OAAO,eAAe,MAAM,GAAG;AACxC,eAAO;AAAA,MACT;AAEA,YAAM,OAAO,SAAS,EAAE;AAKxB,aAAO,uBAAuB,KAAK,GAAG,IAAI,IAAI,QAAQ,KAAK,IAAI,IAAI;AAAA,IACrE;AAEA,aAAS,QAAQ,QAAQ;AACvB,aAAQ,OAAO,UAAU,SAAS,KAAK,MAAM,MAAM,sBAC3C,SAAS,MAAM,KAAK,OAAO,eAAe,MAAM;AAAA,IAC1D;AAEA,WAAO,UAAU,IAAI,KAAK,2BAA2B;AAAA,MACnD,MAAM;AAAA,MACN,SAAS;AAAA,MACT,WAAW;AAAA,MACX,WAAW;AAAA,MACX,WAAW;AAAA,MACX,cAAc;AAAA,IAChB,CAAC;AAAA;AAAA;;;ACnHD;AAAA;AAAA;AAWA,QAAIG,UAAS;AAGb,WAAO,UAAU,IAAIA,QAAO;AAAA,MAC1B,SAAS;AAAA,QACP;AAAA,MACF;AAAA,MACA,UAAU;AAAA,QACR;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,MACF;AAAA,IACF,CAAC;AAAA;AAAA;;;ACxBD;AAAA;AAAA;AAUA,QAAIC,UAAS;AAGb,WAAO,UAAU,IAAIA,QAAO;AAAA,MAC1B,SAAS;AAAA,QACP;AAAA,MACF;AAAA,IACF,CAAC;AAAA;AAAA;;;ACjBD;AAAA;AAAA;AAEA,QAAI,OAAO;AAEX,QAAI,mBAAmB,IAAI;AAAA,MACzB;AAAA,IAEgB;AAElB,QAAI,wBAAwB,IAAI;AAAA,MAC9B;AAAA,IASwB;AAE1B,aAAS,qBAAqBC,OAAM;AAClC,UAAIA,UAAS,KAAM,QAAO;AAC1B,UAAI,iBAAiB,KAAKA,KAAI,MAAM,KAAM,QAAO;AACjD,UAAI,sBAAsB,KAAKA,KAAI,MAAM,KAAM,QAAO;AACtD,aAAO;AAAA,IACT;AAEA,aAAS,uBAAuBA,OAAM;AACpC,UAAIC,QAAO,MAAM,OAAO,KAAK,MAAM,QAAQ,QAAQ,WAAW,GAC1D,QAAQ,MAAM,SAAS,WAAW;AAEtC,MAAAA,SAAQ,iBAAiB,KAAKD,KAAI;AAClC,UAAIC,WAAU,KAAM,CAAAA,SAAQ,sBAAsB,KAAKD,KAAI;AAE3D,UAAIC,WAAU,KAAM,OAAM,IAAI,MAAM,oBAAoB;AAIxD,aAAO,CAAEA,OAAM,CAAC;AAChB,cAAQ,CAAEA,OAAM,CAAC,IAAK;AACtB,YAAM,CAAEA,OAAM,CAAC;AAEf,UAAI,CAACA,OAAM,CAAC,GAAG;AACb,eAAO,IAAI,KAAK,KAAK,IAAI,MAAM,OAAO,GAAG,CAAC;AAAA,MAC5C;AAIA,aAAO,CAAEA,OAAM,CAAC;AAChB,eAAS,CAAEA,OAAM,CAAC;AAClB,eAAS,CAAEA,OAAM,CAAC;AAElB,UAAIA,OAAM,CAAC,GAAG;AACZ,mBAAWA,OAAM,CAAC,EAAE,MAAM,GAAG,CAAC;AAC9B,eAAO,SAAS,SAAS,GAAG;AAC1B,sBAAY;AAAA,QACd;AACA,mBAAW,CAAC;AAAA,MACd;AAIA,UAAIA,OAAM,CAAC,GAAG;AACZ,kBAAU,CAAEA,OAAM,EAAE;AACpB,oBAAY,EAAEA,OAAM,EAAE,KAAK;AAC3B,iBAAS,UAAU,KAAK,aAAa;AACrC,YAAIA,OAAM,CAAC,MAAM,IAAK,SAAQ,CAAC;AAAA,MACjC;AAEA,aAAO,IAAI,KAAK,KAAK,IAAI,MAAM,OAAO,KAAK,MAAM,QAAQ,QAAQ,QAAQ,CAAC;AAE1E,UAAI,MAAO,MAAK,QAAQ,KAAK,QAAQ,IAAI,KAAK;AAE9C,aAAO;AAAA,IACT;AAEA,aAAS,uBAAuB,QAAoB;AAClD,aAAO,OAAO,YAAY;AAAA,IAC5B;AAEA,WAAO,UAAU,IAAI,KAAK,+BAA+B;AAAA,MACvD,MAAM;AAAA,MACN,SAAS;AAAA,MACT,WAAW;AAAA,MACX,YAAY;AAAA,MACZ,WAAW;AAAA,IACb,CAAC;AAAA;AAAA;;;ACvFD;AAAA;AAAA;AAEA,QAAI,OAAO;AAEX,aAAS,iBAAiBC,OAAM;AAC9B,aAAOA,UAAS,QAAQA,UAAS;AAAA,IACnC;AAEA,WAAO,UAAU,IAAI,KAAK,2BAA2B;AAAA,MACnD,MAAM;AAAA,MACN,SAAS;AAAA,IACX,CAAC;AAAA;AAAA;;;ACXD;AAAA;AAAA;AAIA,QAAI;AAEJ,QAAI;AAEE,iBAAW;AACf,mBAAa,SAAS,QAAQ,EAAE;AAAA,IAClC,SAAS,IAAI;AAAA,IAAC;AAEd,QAAI,OAAa;AAIjB,QAAI,aAAa;AAGjB,aAAS,kBAAkBC,OAAM;AAC/B,UAAIA,UAAS,KAAM,QAAO;AAE1B,UAAIC,OAAM,KAAK,SAAS,GAAGC,OAAMF,MAAK,QAAQG,OAAM;AAGpD,WAAK,MAAM,GAAG,MAAMD,MAAK,OAAO;AAC9B,QAAAD,QAAOE,KAAI,QAAQH,MAAK,OAAO,GAAG,CAAC;AAGnC,YAAIC,QAAO,GAAI;AAGf,YAAIA,QAAO,EAAG,QAAO;AAErB,kBAAU;AAAA,MACZ;AAGA,aAAQ,SAAS,MAAO;AAAA,IAC1B;AAEA,aAAS,oBAAoBD,OAAM;AACjC,UAAI,KAAK,UACL,QAAQA,MAAK,QAAQ,YAAY,EAAE,GACnCE,OAAM,MAAM,QACZC,OAAM,YACN,OAAO,GACP,SAAS,CAAC;AAId,WAAK,MAAM,GAAG,MAAMD,MAAK,OAAO;AAC9B,YAAK,MAAM,MAAM,KAAM,KAAK;AAC1B,iBAAO,KAAM,QAAQ,KAAM,GAAI;AAC/B,iBAAO,KAAM,QAAQ,IAAK,GAAI;AAC9B,iBAAO,KAAK,OAAO,GAAI;AAAA,QACzB;AAEA,eAAQ,QAAQ,IAAKC,KAAI,QAAQ,MAAM,OAAO,GAAG,CAAC;AAAA,MACpD;AAIA,iBAAYD,OAAM,IAAK;AAEvB,UAAI,aAAa,GAAG;AAClB,eAAO,KAAM,QAAQ,KAAM,GAAI;AAC/B,eAAO,KAAM,QAAQ,IAAK,GAAI;AAC9B,eAAO,KAAK,OAAO,GAAI;AAAA,MACzB,WAAW,aAAa,IAAI;AAC1B,eAAO,KAAM,QAAQ,KAAM,GAAI;AAC/B,eAAO,KAAM,QAAQ,IAAK,GAAI;AAAA,MAChC,WAAW,aAAa,IAAI;AAC1B,eAAO,KAAM,QAAQ,IAAK,GAAI;AAAA,MAChC;AAGA,UAAI,YAAY;AAEd,eAAO,WAAW,OAAO,WAAW,KAAK,MAAM,IAAI,IAAI,WAAW,MAAM;AAAA,MAC1E;AAEA,aAAO;AAAA,IACT;AAEA,aAAS,oBAAoB,QAAoB;AAC/C,UAAI,SAAS,IAAI,OAAO,GAAG,KAAK,MAC5BA,OAAM,OAAO,QACbC,OAAM;AAIV,WAAK,MAAM,GAAG,MAAMD,MAAK,OAAO;AAC9B,YAAK,MAAM,MAAM,KAAM,KAAK;AAC1B,oBAAUC,KAAK,QAAQ,KAAM,EAAI;AACjC,oBAAUA,KAAK,QAAQ,KAAM,EAAI;AACjC,oBAAUA,KAAK,QAAQ,IAAK,EAAI;AAChC,oBAAUA,KAAI,OAAO,EAAI;AAAA,QAC3B;AAEA,gBAAQ,QAAQ,KAAK,OAAO,GAAG;AAAA,MACjC;AAIA,aAAOD,OAAM;AAEb,UAAI,SAAS,GAAG;AACd,kBAAUC,KAAK,QAAQ,KAAM,EAAI;AACjC,kBAAUA,KAAK,QAAQ,KAAM,EAAI;AACjC,kBAAUA,KAAK,QAAQ,IAAK,EAAI;AAChC,kBAAUA,KAAI,OAAO,EAAI;AAAA,MAC3B,WAAW,SAAS,GAAG;AACrB,kBAAUA,KAAK,QAAQ,KAAM,EAAI;AACjC,kBAAUA,KAAK,QAAQ,IAAK,EAAI;AAChC,kBAAUA,KAAK,QAAQ,IAAK,EAAI;AAChC,kBAAUA,KAAI,EAAE;AAAA,MAClB,WAAW,SAAS,GAAG;AACrB,kBAAUA,KAAK,QAAQ,IAAK,EAAI;AAChC,kBAAUA,KAAK,QAAQ,IAAK,EAAI;AAChC,kBAAUA,KAAI,EAAE;AAChB,kBAAUA,KAAI,EAAE;AAAA,MAClB;AAEA,aAAO;AAAA,IACT;AAEA,aAAS,SAAS,QAAQ;AACxB,aAAO,cAAc,WAAW,SAAS,MAAM;AAAA,IACjD;AAEA,WAAO,UAAU,IAAI,KAAK,4BAA4B;AAAA,MACpD,MAAM;AAAA,MACN,SAAS;AAAA,MACT,WAAW;AAAA,MACX,WAAW;AAAA,MACX,WAAW;AAAA,IACb,CAAC;AAjIK;AAAA;AAAA;;;ACRN;AAAA;AAAA;AAEA,QAAI,OAAO;AAEX,QAAI,kBAAkB,OAAO,UAAU;AACvC,QAAI,YAAkB,OAAO,UAAU;AAEvC,aAAS,gBAAgBC,OAAM;AAC7B,UAAIA,UAAS,KAAM,QAAO;AAE1B,UAAI,aAAa,CAAC,GAAGC,QAAO,QAAQ,MAAM,SAAS,YAC/C,SAASD;AAEb,WAAKC,SAAQ,GAAG,SAAS,OAAO,QAAQA,SAAQ,QAAQA,UAAS,GAAG;AAClE,eAAO,OAAOA,MAAK;AACnB,qBAAa;AAEb,YAAI,UAAU,KAAK,IAAI,MAAM,kBAAmB,QAAO;AAEvD,aAAK,WAAW,MAAM;AACpB,cAAI,gBAAgB,KAAK,MAAM,OAAO,GAAG;AACvC,gBAAI,CAAC,WAAY,cAAa;AAAA,gBACzB,QAAO;AAAA,UACd;AAAA,QACF;AAEA,YAAI,CAAC,WAAY,QAAO;AAExB,YAAI,WAAW,QAAQ,OAAO,MAAM,GAAI,YAAW,KAAK,OAAO;AAAA,YAC1D,QAAO;AAAA,MACd;AAEA,aAAO;AAAA,IACT;AAEA,aAAS,kBAAkBD,OAAM;AAC/B,aAAOA,UAAS,OAAOA,QAAO,CAAC;AAAA,IACjC;AAEA,WAAO,UAAU,IAAI,KAAK,0BAA0B;AAAA,MAClD,MAAM;AAAA,MACN,SAAS;AAAA,MACT,WAAW;AAAA,IACb,CAAC;AAAA;AAAA;;;AC3CD;AAAA;AAAA;AAEA,QAAI,OAAO;AAEX,QAAI,YAAY,OAAO,UAAU;AAEjC,aAAS,iBAAiBE,OAAM;AAC9B,UAAIA,UAAS,KAAM,QAAO;AAE1B,UAAIC,QAAO,QAAQ,MAAMC,OAAM,QAC3B,SAASF;AAEb,eAAS,IAAI,MAAM,OAAO,MAAM;AAEhC,WAAKC,SAAQ,GAAG,SAAS,OAAO,QAAQA,SAAQ,QAAQA,UAAS,GAAG;AAClE,eAAO,OAAOA,MAAK;AAEnB,YAAI,UAAU,KAAK,IAAI,MAAM,kBAAmB,QAAO;AAEvD,QAAAC,QAAO,OAAO,KAAK,IAAI;AAEvB,YAAIA,MAAK,WAAW,EAAG,QAAO;AAE9B,eAAOD,MAAK,IAAI,CAAEC,MAAK,CAAC,GAAG,KAAKA,MAAK,CAAC,CAAC,CAAE;AAAA,MAC3C;AAEA,aAAO;AAAA,IACT;AAEA,aAAS,mBAAmBF,OAAM;AAChC,UAAIA,UAAS,KAAM,QAAO,CAAC;AAE3B,UAAIC,QAAO,QAAQ,MAAMC,OAAM,QAC3B,SAASF;AAEb,eAAS,IAAI,MAAM,OAAO,MAAM;AAEhC,WAAKC,SAAQ,GAAG,SAAS,OAAO,QAAQA,SAAQ,QAAQA,UAAS,GAAG;AAClE,eAAO,OAAOA,MAAK;AAEnB,QAAAC,QAAO,OAAO,KAAK,IAAI;AAEvB,eAAOD,MAAK,IAAI,CAAEC,MAAK,CAAC,GAAG,KAAKA,MAAK,CAAC,CAAC,CAAE;AAAA,MAC3C;AAEA,aAAO;AAAA,IACT;AAEA,WAAO,UAAU,IAAI,KAAK,2BAA2B;AAAA,MACnD,MAAM;AAAA,MACN,SAAS;AAAA,MACT,WAAW;AAAA,IACb,CAAC;AAAA;AAAA;;;ACpDD;AAAA;AAAA;AAEA,QAAI,OAAO;AAEX,QAAI,kBAAkB,OAAO,UAAU;AAEvC,aAAS,eAAeC,OAAM;AAC5B,UAAIA,UAAS,KAAM,QAAO;AAE1B,UAAIC,MAAK,SAASD;AAElB,WAAKC,QAAO,QAAQ;AAClB,YAAI,gBAAgB,KAAK,QAAQA,IAAG,GAAG;AACrC,cAAI,OAAOA,IAAG,MAAM,KAAM,QAAO;AAAA,QACnC;AAAA,MACF;AAEA,aAAO;AAAA,IACT;AAEA,aAAS,iBAAiBD,OAAM;AAC9B,aAAOA,UAAS,OAAOA,QAAO,CAAC;AAAA,IACjC;AAEA,WAAO,UAAU,IAAI,KAAK,yBAAyB;AAAA,MACjD,MAAM;AAAA,MACN,SAAS;AAAA,MACT,WAAW;AAAA,IACb,CAAC;AAAA;AAAA;;;AC5BD;AAAA;AAAA;AAUA,QAAIE,UAAS;AAGb,WAAO,UAAU,IAAIA,QAAO;AAAA,MAC1B,SAAS;AAAA,QACP;AAAA,MACF;AAAA,MACA,UAAU;AAAA,QACR;AAAA,QACA;AAAA,MACF;AAAA,MACA,UAAU;AAAA,QACR;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,MACF;AAAA,IACF,CAAC;AAAA;AAAA;;;AC3BD;AAAA;AAAA;AAEA,QAAI,OAAO;AAEX,aAAS,6BAA6B;AACpC,aAAO;AAAA,IACT;AAEA,aAAS,+BAA+B;AAEtC,aAAO;AAAA,IACT;AAEA,aAAS,+BAA+B;AACtC,aAAO;AAAA,IACT;AAEA,aAAS,YAAY,QAAQ;AAC3B,aAAO,OAAO,WAAW;AAAA,IAC3B;AAEA,WAAO,UAAU,IAAI,KAAK,kCAAkC;AAAA,MAC1D,MAAM;AAAA,MACN,SAAS;AAAA,MACT,WAAW;AAAA,MACX,WAAW;AAAA,MACX,WAAW;AAAA,IACb,CAAC;AAAA;AAAA;;;AC3BD;AAAA;AAAA;AAEA,QAAI,OAAO;AAEX,aAAS,wBAAwBC,OAAM;AACrC,UAAIA,UAAS,KAAM,QAAO;AAC1B,UAAIA,MAAK,WAAW,EAAG,QAAO;AAE9B,UAAI,SAASA,OACT,OAAS,cAAc,KAAKA,KAAI,GAChC,YAAY;AAIhB,UAAI,OAAO,CAAC,MAAM,KAAK;AACrB,YAAI,KAAM,aAAY,KAAK,CAAC;AAE5B,YAAI,UAAU,SAAS,EAAG,QAAO;AAEjC,YAAI,OAAO,OAAO,SAAS,UAAU,SAAS,CAAC,MAAM,IAAK,QAAO;AAAA,MACnE;AAEA,aAAO;AAAA,IACT;AAEA,aAAS,0BAA0BA,OAAM;AACvC,UAAI,SAASA,OACT,OAAS,cAAc,KAAKA,KAAI,GAChC,YAAY;AAGhB,UAAI,OAAO,CAAC,MAAM,KAAK;AACrB,YAAI,KAAM,aAAY,KAAK,CAAC;AAC5B,iBAAS,OAAO,MAAM,GAAG,OAAO,SAAS,UAAU,SAAS,CAAC;AAAA,MAC/D;AAEA,aAAO,IAAI,OAAO,QAAQ,SAAS;AAAA,IACrC;AAEA,aAAS,0BAA0B,QAAoB;AACrD,UAAI,SAAS,MAAM,OAAO,SAAS;AAEnC,UAAI,OAAO,OAAQ,WAAU;AAC7B,UAAI,OAAO,UAAW,WAAU;AAChC,UAAI,OAAO,WAAY,WAAU;AAEjC,aAAO;AAAA,IACT;AAEA,aAAS,SAAS,QAAQ;AACxB,aAAO,OAAO,UAAU,SAAS,KAAK,MAAM,MAAM;AAAA,IACpD;AAEA,WAAO,UAAU,IAAI,KAAK,+BAA+B;AAAA,MACvD,MAAM;AAAA,MACN,SAAS;AAAA,MACT,WAAW;AAAA,MACX,WAAW;AAAA,MACX,WAAW;AAAA,IACb,CAAC;AAAA;AAAA;;;AC3DD;AAAA;AAAA;AAEA,QAAI;AASJ,QAAI;AAEE,iBAAW;AACf,gBAAU,SAAS,SAAS;AAAA,IAC9B,SAASC,IAAG;AAGV,UAAI,OAAO,WAAW,YAAa,WAAU,OAAO;AAAA,IACtD;AAEA,QAAI,OAAO;AAEX,aAAS,0BAA0BC,OAAM;AACvC,UAAIA,UAAS,KAAM,QAAO;AAE1B,UAAI;AACF,YAAI,SAAS,MAAMA,QAAO,KACtB,MAAS,QAAQ,MAAM,QAAQ,EAAE,OAAO,KAAK,CAAC;AAElD,YAAI,IAAI,SAA4B,aAChC,IAAI,KAAK,WAAuB,KAChC,IAAI,KAAK,CAAC,EAAE,SAAoB,yBAC/B,IAAI,KAAK,CAAC,EAAE,WAAW,SAAS,6BAC/B,IAAI,KAAK,CAAC,EAAE,WAAW,SAAS,sBAAuB;AAC3D,iBAAO;AAAA,QACT;AAEA,eAAO;AAAA,MACT,SAAS,KAAK;AACZ,eAAO;AAAA,MACT;AAAA,IACF;AAEA,aAAS,4BAA4BA,OAAM;AAGzC,UAAI,SAAS,MAAMA,QAAO,KACtB,MAAS,QAAQ,MAAM,QAAQ,EAAE,OAAO,KAAK,CAAC,GAC9CC,UAAS,CAAC,GACVC;AAEJ,UAAI,IAAI,SAA4B,aAChC,IAAI,KAAK,WAAuB,KAChC,IAAI,KAAK,CAAC,EAAE,SAAoB,yBAC/B,IAAI,KAAK,CAAC,EAAE,WAAW,SAAS,6BAC/B,IAAI,KAAK,CAAC,EAAE,WAAW,SAAS,sBAAuB;AAC3D,cAAM,IAAI,MAAM,4BAA4B;AAAA,MAC9C;AAEA,UAAI,KAAK,CAAC,EAAE,WAAW,OAAO,QAAQ,SAAU,OAAO;AACrD,QAAAD,QAAO,KAAK,MAAM,IAAI;AAAA,MACxB,CAAC;AAED,MAAAC,QAAO,IAAI,KAAK,CAAC,EAAE,WAAW,KAAK;AAInC,UAAI,IAAI,KAAK,CAAC,EAAE,WAAW,KAAK,SAAS,kBAAkB;AAEzD,eAAO,IAAI,SAASD,SAAQ,OAAO,MAAMC,MAAK,CAAC,IAAI,GAAGA,MAAK,CAAC,IAAI,CAAC,CAAC;AAAA,MACpE;AAIA,aAAO,IAAI,SAASD,SAAQ,YAAY,OAAO,MAAMC,MAAK,CAAC,GAAGA,MAAK,CAAC,CAAC,CAAC;AAAA,IACxE;AAEA,aAAS,4BAA4B,QAAoB;AACvD,aAAO,OAAO,SAAS;AAAA,IACzB;AAEA,aAASC,YAAW,QAAQ;AAC1B,aAAO,OAAO,UAAU,SAAS,KAAK,MAAM,MAAM;AAAA,IACpD;AAEA,WAAO,UAAU,IAAI,KAAK,iCAAiC;AAAA,MACzD,MAAM;AAAA,MACN,SAAS;AAAA,MACT,WAAW;AAAA,MACX,WAAWA;AAAA,MACX,WAAW;AAAA,IACb,CAAC;AA/EK;AAAA;AAAA;;;ACbN;AAAA;AAAA;AAYA,QAAIC,UAAS;AAGb,WAAO,UAAUA,QAAO,UAAU,IAAIA,QAAO;AAAA,MAC3C,SAAS;AAAA,QACP;AAAA,MACF;AAAA,MACA,UAAU;AAAA,QACR;AAAA,QACA;AAAA,QACA;AAAA,MACF;AAAA,IACF,CAAC;AAAA;AAAA;;;ACxBD;AAAA;AAAA;AAIA,QAAI,SAAsB;AAC1B,QAAI,gBAAsB;AAC1B,QAAI,OAAsB;AAC1B,QAAI,sBAAsB;AAC1B,QAAI,sBAAsB;AAG1B,QAAI,kBAAkB,OAAO,UAAU;AAGvC,QAAI,kBAAoB;AACxB,QAAI,mBAAoB;AACxB,QAAI,mBAAoB;AACxB,QAAI,oBAAoB;AAGxB,QAAI,gBAAiB;AACrB,QAAI,iBAAiB;AACrB,QAAI,gBAAiB;AAGrB,QAAI,wBAAgC;AACpC,QAAI,gCAAgC;AACpC,QAAI,0BAAgC;AACpC,QAAI,qBAAgC;AACpC,QAAI,kBAAgC;AAGpC,aAAS,OAAO,KAAK;AAAE,aAAO,OAAO,UAAU,SAAS,KAAK,GAAG;AAAA,IAAG;AAEnE,aAAS,OAAOC,KAAG;AACjB,aAAQA,QAAM,MAAkBA,QAAM;AAAA,IACxC;AAEA,aAAS,eAAeA,KAAG;AACzB,aAAQA,QAAM,KAAmBA,QAAM;AAAA,IACzC;AAEA,aAAS,aAAaA,KAAG;AACvB,aAAQA,QAAM,KACNA,QAAM,MACNA,QAAM,MACNA,QAAM;AAAA,IAChB;AAEA,aAAS,kBAAkBA,KAAG;AAC5B,aAAOA,QAAM,MACNA,QAAM,MACNA,QAAM,MACNA,QAAM,OACNA,QAAM;AAAA,IACf;AAEA,aAAS,YAAYA,KAAG;AACtB,UAAI;AAEJ,UAAK,MAAeA,OAAOA,OAAK,IAAc;AAC5C,eAAOA,MAAI;AAAA,MACb;AAGA,WAAKA,MAAI;AAET,UAAK,MAAe,MAAQ,MAAM,KAAc;AAC9C,eAAO,KAAK,KAAO;AAAA,MACrB;AAEA,aAAO;AAAA,IACT;AAEA,aAAS,cAAcA,KAAG;AACxB,UAAIA,QAAM,KAAa;AAAE,eAAO;AAAA,MAAG;AACnC,UAAIA,QAAM,KAAa;AAAE,eAAO;AAAA,MAAG;AACnC,UAAIA,QAAM,IAAa;AAAE,eAAO;AAAA,MAAG;AACnC,aAAO;AAAA,IACT;AAEA,aAAS,gBAAgBA,KAAG;AAC1B,UAAK,MAAeA,OAAOA,OAAK,IAAc;AAC5C,eAAOA,MAAI;AAAA,MACb;AAEA,aAAO;AAAA,IACT;AAEA,aAAS,qBAAqBA,KAAG;AAE/B,aAAQA,QAAM,KAAe,OACtBA,QAAM,KAAe,SACrBA,QAAM,KAAe,OACrBA,QAAM,MAAe,MACrBA,QAAM,IAAiB,MACvBA,QAAM,MAAe,OACrBA,QAAM,MAAe,OACrBA,QAAM,MAAe,OACrBA,QAAM,MAAe,OACrBA,QAAM,MAAe,SACrBA,QAAM,KAAmB,MACzBA,QAAM,KAAe,MACrBA,QAAM,KAAe,MACrBA,QAAM,KAAe,OACrBA,QAAM,KAAe,SACrBA,QAAM,KAAe,SACrBA,QAAM,KAAe,WACrBA,QAAM,KAAe,WAAW;AAAA,IACzC;AAEA,aAAS,kBAAkBA,KAAG;AAC5B,UAAIA,OAAK,OAAQ;AACf,eAAO,OAAO,aAAaA,GAAC;AAAA,MAC9B;AAGA,aAAO,OAAO;AAAA,SACVA,MAAI,SAAa,MAAM;AAAA,SACvBA,MAAI,QAAY,QAAU;AAAA,MAC9B;AAAA,IACF;AAIA,aAAS,YAAY,QAAQC,MAAKC,QAAO;AAEvC,UAAID,SAAQ,aAAa;AACvB,eAAO,eAAe,QAAQA,MAAK;AAAA,UACjC,cAAc;AAAA,UACd,YAAY;AAAA,UACZ,UAAU;AAAA,UACV,OAAOC;AAAA,QACT,CAAC;AAAA,MACH,OAAO;AACL,eAAOD,IAAG,IAAIC;AAAA,MAChB;AAAA,IACF;AAEA,QAAI,oBAAoB,IAAI,MAAM,GAAG;AACrC,QAAI,kBAAkB,IAAI,MAAM,GAAG;AACnC,SAASC,MAAI,GAAGA,MAAI,KAAKA,OAAK;AAC5B,wBAAkBA,GAAC,IAAI,qBAAqBA,GAAC,IAAI,IAAI;AACrD,sBAAgBA,GAAC,IAAI,qBAAqBA,GAAC;AAAA,IAC7C;AAGA,aAAS,MAAM,OAAO,SAAS;AAC7B,WAAK,QAAQ;AAEb,WAAK,WAAY,QAAQ,UAAU,KAAM;AACzC,WAAK,SAAY,QAAQ,QAAQ,KAAQ;AACzC,WAAK,YAAY,QAAQ,WAAW,KAAK;AACzC,WAAK,SAAY,QAAQ,QAAQ,KAAQ;AACzC,WAAK,OAAY,QAAQ,MAAM,KAAU;AACzC,WAAK,WAAY,QAAQ,UAAU,KAAM;AAEzC,WAAK,gBAAgB,KAAK,OAAO;AACjC,WAAK,UAAgB,KAAK,OAAO;AAEjC,WAAK,SAAa,MAAM;AACxB,WAAK,WAAa;AAClB,WAAK,OAAa;AAClB,WAAK,YAAa;AAClB,WAAK,aAAa;AAElB,WAAK,YAAY,CAAC;AAAA,IAYpB;AAGA,aAAS,cAAc,OAAOC,UAAS;AACrC,aAAO,IAAI;AAAA,QACTA;AAAA,QACA,IAAI,KAAK,MAAM,UAAU,MAAM,OAAO,MAAM,UAAU,MAAM,MAAO,MAAM,WAAW,MAAM,SAAU;AAAA,MAAC;AAAA,IACzG;AAEA,aAASC,YAAW,OAAOD,UAAS;AAClC,YAAM,cAAc,OAAOA,QAAO;AAAA,IACpC;AAEA,aAAS,aAAa,OAAOA,UAAS;AACpC,UAAI,MAAM,WAAW;AACnB,cAAM,UAAU,KAAK,MAAM,cAAc,OAAOA,QAAO,CAAC;AAAA,MAC1D;AAAA,IACF;AAGA,QAAI,oBAAoB;AAAA,MAEtB,MAAM,SAAS,oBAAoB,OAAO,MAAM,MAAM;AAEpD,YAAIE,QAAO,OAAO;AAElB,YAAI,MAAM,YAAY,MAAM;AAC1B,UAAAD,YAAW,OAAO,gCAAgC;AAAA,QACpD;AAEA,YAAI,KAAK,WAAW,GAAG;AACrB,UAAAA,YAAW,OAAO,6CAA6C;AAAA,QACjE;AAEA,QAAAC,SAAQ,uBAAuB,KAAK,KAAK,CAAC,CAAC;AAE3C,YAAIA,WAAU,MAAM;AAClB,UAAAD,YAAW,OAAO,2CAA2C;AAAA,QAC/D;AAEA,gBAAQ,SAASC,OAAM,CAAC,GAAG,EAAE;AAC7B,gBAAQ,SAASA,OAAM,CAAC,GAAG,EAAE;AAE7B,YAAI,UAAU,GAAG;AACf,UAAAD,YAAW,OAAO,2CAA2C;AAAA,QAC/D;AAEA,cAAM,UAAU,KAAK,CAAC;AACtB,cAAM,kBAAmB,QAAQ;AAEjC,YAAI,UAAU,KAAK,UAAU,GAAG;AAC9B,uBAAa,OAAO,0CAA0C;AAAA,QAChE;AAAA,MACF;AAAA,MAEA,KAAK,SAAS,mBAAmB,OAAO,MAAM,MAAM;AAElD,YAAIE,SAAQC;AAEZ,YAAI,KAAK,WAAW,GAAG;AACrB,UAAAH,YAAW,OAAO,6CAA6C;AAAA,QACjE;AAEA,QAAAE,UAAS,KAAK,CAAC;AACf,QAAAC,UAAS,KAAK,CAAC;AAEf,YAAI,CAAC,mBAAmB,KAAKD,OAAM,GAAG;AACpC,UAAAF,YAAW,OAAO,6DAA6D;AAAA,QACjF;AAEA,YAAI,gBAAgB,KAAK,MAAM,QAAQE,OAAM,GAAG;AAC9C,UAAAF,YAAW,OAAO,gDAAgDE,UAAS,cAAc;AAAA,QAC3F;AAEA,YAAI,CAAC,gBAAgB,KAAKC,OAAM,GAAG;AACjC,UAAAH,YAAW,OAAO,8DAA8D;AAAA,QAClF;AAEA,cAAM,OAAOE,OAAM,IAAIC;AAAA,MACzB;AAAA,IACF;AAGA,aAAS,eAAe,OAAO,OAAOC,MAAK,WAAW;AACpD,UAAI,WAAW,SAAS,YAAY;AAEpC,UAAI,QAAQA,MAAK;AACf,kBAAU,MAAM,MAAM,MAAM,OAAOA,IAAG;AAEtC,YAAI,WAAW;AACb,eAAK,YAAY,GAAG,UAAU,QAAQ,QAAQ,YAAY,SAAS,aAAa,GAAG;AACjF,yBAAa,QAAQ,WAAW,SAAS;AACzC,gBAAI,EAAE,eAAe,KACd,MAAQ,cAAc,cAAc,UAAY;AACrD,cAAAJ,YAAW,OAAO,+BAA+B;AAAA,YACnD;AAAA,UACF;AAAA,QACF,WAAW,sBAAsB,KAAK,OAAO,GAAG;AAC9C,UAAAA,YAAW,OAAO,8CAA8C;AAAA,QAClE;AAEA,cAAM,UAAU;AAAA,MAClB;AAAA,IACF;AAEA,aAAS,cAAc,OAAO,aAAa,QAAQ,iBAAiB;AAClE,UAAI,YAAYJ,MAAKS,QAAO;AAE5B,UAAI,CAAC,OAAO,SAAS,MAAM,GAAG;AAC5B,QAAAL,YAAW,OAAO,mEAAmE;AAAA,MACvF;AAEA,mBAAa,OAAO,KAAK,MAAM;AAE/B,WAAKK,SAAQ,GAAG,WAAW,WAAW,QAAQA,SAAQ,UAAUA,UAAS,GAAG;AAC1E,QAAAT,OAAM,WAAWS,MAAK;AAEtB,YAAI,CAAC,gBAAgB,KAAK,aAAaT,IAAG,GAAG;AAC3C,sBAAY,aAAaA,MAAK,OAAOA,IAAG,CAAC;AACzC,0BAAgBA,IAAG,IAAI;AAAA,QACzB;AAAA,MACF;AAAA,IACF;AAEA,aAAS,iBAAiB,OAAO,SAAS,iBAAiB,QAAQ,SAAS,WAAW,WAAW,UAAU;AAC1G,UAAIS,QAAO;AAKX,UAAI,MAAM,QAAQ,OAAO,GAAG;AAC1B,kBAAU,MAAM,UAAU,MAAM,KAAK,OAAO;AAE5C,aAAKA,SAAQ,GAAG,WAAW,QAAQ,QAAQA,SAAQ,UAAUA,UAAS,GAAG;AACvE,cAAI,MAAM,QAAQ,QAAQA,MAAK,CAAC,GAAG;AACjC,YAAAL,YAAW,OAAO,6CAA6C;AAAA,UACjE;AAEA,cAAI,OAAO,YAAY,YAAY,OAAO,QAAQK,MAAK,CAAC,MAAM,mBAAmB;AAC/E,oBAAQA,MAAK,IAAI;AAAA,UACnB;AAAA,QACF;AAAA,MACF;AAKA,UAAI,OAAO,YAAY,YAAY,OAAO,OAAO,MAAM,mBAAmB;AACxE,kBAAU;AAAA,MACZ;AAGA,gBAAU,OAAO,OAAO;AAExB,UAAI,YAAY,MAAM;AACpB,kBAAU,CAAC;AAAA,MACb;AAEA,UAAI,WAAW,2BAA2B;AACxC,YAAI,MAAM,QAAQ,SAAS,GAAG;AAC5B,eAAKA,SAAQ,GAAG,WAAW,UAAU,QAAQA,SAAQ,UAAUA,UAAS,GAAG;AACzE,0BAAc,OAAO,SAAS,UAAUA,MAAK,GAAG,eAAe;AAAA,UACjE;AAAA,QACF,OAAO;AACL,wBAAc,OAAO,SAAS,WAAW,eAAe;AAAA,QAC1D;AAAA,MACF,OAAO;AACL,YAAI,CAAC,MAAM,QACP,CAAC,gBAAgB,KAAK,iBAAiB,OAAO,KAC9C,gBAAgB,KAAK,SAAS,OAAO,GAAG;AAC1C,gBAAM,OAAO,aAAa,MAAM;AAChC,gBAAM,WAAW,YAAY,MAAM;AACnC,UAAAL,YAAW,OAAO,wBAAwB;AAAA,QAC5C;AACA,oBAAY,SAAS,SAAS,SAAS;AACvC,eAAO,gBAAgB,OAAO;AAAA,MAChC;AAEA,aAAO;AAAA,IACT;AAEA,aAAS,cAAc,OAAO;AAC5B,UAAI;AAEJ,WAAK,MAAM,MAAM,WAAW,MAAM,QAAQ;AAE1C,UAAI,OAAO,IAAc;AACvB,cAAM;AAAA,MACR,WAAW,OAAO,IAAc;AAC9B,cAAM;AACN,YAAI,MAAM,MAAM,WAAW,MAAM,QAAQ,MAAM,IAAc;AAC3D,gBAAM;AAAA,QACR;AAAA,MACF,OAAO;AACL,QAAAA,YAAW,OAAO,0BAA0B;AAAA,MAC9C;AAEA,YAAM,QAAQ;AACd,YAAM,YAAY,MAAM;AAAA,IAC1B;AAEA,aAAS,oBAAoB,OAAO,eAAe,aAAa;AAC9D,UAAI,aAAa,GACb,KAAK,MAAM,MAAM,WAAW,MAAM,QAAQ;AAE9C,aAAO,OAAO,GAAG;AACf,eAAO,eAAe,EAAE,GAAG;AACzB,eAAK,MAAM,MAAM,WAAW,EAAE,MAAM,QAAQ;AAAA,QAC9C;AAEA,YAAI,iBAAiB,OAAO,IAAa;AACvC,aAAG;AACD,iBAAK,MAAM,MAAM,WAAW,EAAE,MAAM,QAAQ;AAAA,UAC9C,SAAS,OAAO,MAAgB,OAAO,MAAgB,OAAO;AAAA,QAChE;AAEA,YAAI,OAAO,EAAE,GAAG;AACd,wBAAc,KAAK;AAEnB,eAAK,MAAM,MAAM,WAAW,MAAM,QAAQ;AAC1C;AACA,gBAAM,aAAa;AAEnB,iBAAO,OAAO,IAAiB;AAC7B,kBAAM;AACN,iBAAK,MAAM,MAAM,WAAW,EAAE,MAAM,QAAQ;AAAA,UAC9C;AAAA,QACF,OAAO;AACL;AAAA,QACF;AAAA,MACF;AAEA,UAAI,gBAAgB,MAAM,eAAe,KAAK,MAAM,aAAa,aAAa;AAC5E,qBAAa,OAAO,uBAAuB;AAAA,MAC7C;AAEA,aAAO;AAAA,IACT;AAEA,aAAS,sBAAsB,OAAO;AACpC,UAAI,YAAY,MAAM,UAClB;AAEJ,WAAK,MAAM,MAAM,WAAW,SAAS;AAIrC,WAAK,OAAO,MAAe,OAAO,OAC9B,OAAO,MAAM,MAAM,WAAW,YAAY,CAAC,KAC3C,OAAO,MAAM,MAAM,WAAW,YAAY,CAAC,GAAG;AAEhD,qBAAa;AAEb,aAAK,MAAM,MAAM,WAAW,SAAS;AAErC,YAAI,OAAO,KAAK,aAAa,EAAE,GAAG;AAChC,iBAAO;AAAA,QACT;AAAA,MACF;AAEA,aAAO;AAAA,IACT;AAEA,aAAS,iBAAiB,OAAOM,QAAO;AACtC,UAAIA,WAAU,GAAG;AACf,cAAM,UAAU;AAAA,MAClB,WAAWA,SAAQ,GAAG;AACpB,cAAM,UAAU,OAAO,OAAO,MAAMA,SAAQ,CAAC;AAAA,MAC/C;AAAA,IACF;AAGA,aAAS,gBAAgB,OAAO,YAAY,sBAAsB;AAChE,UAAI,WACA,WACA,cACA,YACA,mBACA,OACA,YACA,aACA,QAAQ,MAAM,MACd,UAAU,MAAM,QAChB;AAEJ,WAAK,MAAM,MAAM,WAAW,MAAM,QAAQ;AAE1C,UAAI,aAAa,EAAE,KACf,kBAAkB,EAAE,KACpB,OAAO,MACP,OAAO,MACP,OAAO,MACP,OAAO,MACP,OAAO,OACP,OAAO,MACP,OAAO,MACP,OAAO,MACP,OAAO,MACP,OAAO,MACP,OAAO,IAAa;AACtB,eAAO;AAAA,MACT;AAEA,UAAI,OAAO,MAAe,OAAO,IAAa;AAC5C,oBAAY,MAAM,MAAM,WAAW,MAAM,WAAW,CAAC;AAErD,YAAI,aAAa,SAAS,KACtB,wBAAwB,kBAAkB,SAAS,GAAG;AACxD,iBAAO;AAAA,QACT;AAAA,MACF;AAEA,YAAM,OAAO;AACb,YAAM,SAAS;AACf,qBAAe,aAAa,MAAM;AAClC,0BAAoB;AAEpB,aAAO,OAAO,GAAG;AACf,YAAI,OAAO,IAAa;AACtB,sBAAY,MAAM,MAAM,WAAW,MAAM,WAAW,CAAC;AAErD,cAAI,aAAa,SAAS,KACtB,wBAAwB,kBAAkB,SAAS,GAAG;AACxD;AAAA,UACF;AAAA,QAEF,WAAW,OAAO,IAAa;AAC7B,sBAAY,MAAM,MAAM,WAAW,MAAM,WAAW,CAAC;AAErD,cAAI,aAAa,SAAS,GAAG;AAC3B;AAAA,UACF;AAAA,QAEF,WAAY,MAAM,aAAa,MAAM,aAAa,sBAAsB,KAAK,KAClE,wBAAwB,kBAAkB,EAAE,GAAG;AACxD;AAAA,QAEF,WAAW,OAAO,EAAE,GAAG;AACrB,kBAAQ,MAAM;AACd,uBAAa,MAAM;AACnB,wBAAc,MAAM;AACpB,8BAAoB,OAAO,OAAO,EAAE;AAEpC,cAAI,MAAM,cAAc,YAAY;AAClC,gCAAoB;AACpB,iBAAK,MAAM,MAAM,WAAW,MAAM,QAAQ;AAC1C;AAAA,UACF,OAAO;AACL,kBAAM,WAAW;AACjB,kBAAM,OAAO;AACb,kBAAM,YAAY;AAClB,kBAAM,aAAa;AACnB;AAAA,UACF;AAAA,QACF;AAEA,YAAI,mBAAmB;AACrB,yBAAe,OAAO,cAAc,YAAY,KAAK;AACrD,2BAAiB,OAAO,MAAM,OAAO,KAAK;AAC1C,yBAAe,aAAa,MAAM;AAClC,8BAAoB;AAAA,QACtB;AAEA,YAAI,CAAC,eAAe,EAAE,GAAG;AACvB,uBAAa,MAAM,WAAW;AAAA,QAChC;AAEA,aAAK,MAAM,MAAM,WAAW,EAAE,MAAM,QAAQ;AAAA,MAC9C;AAEA,qBAAe,OAAO,cAAc,YAAY,KAAK;AAErD,UAAI,MAAM,QAAQ;AAChB,eAAO;AAAA,MACT;AAEA,YAAM,OAAO;AACb,YAAM,SAAS;AACf,aAAO;AAAA,IACT;AAEA,aAAS,uBAAuB,OAAO,YAAY;AACjD,UAAI,IACA,cAAc;AAElB,WAAK,MAAM,MAAM,WAAW,MAAM,QAAQ;AAE1C,UAAI,OAAO,IAAa;AACtB,eAAO;AAAA,MACT;AAEA,YAAM,OAAO;AACb,YAAM,SAAS;AACf,YAAM;AACN,qBAAe,aAAa,MAAM;AAElC,cAAQ,KAAK,MAAM,MAAM,WAAW,MAAM,QAAQ,OAAO,GAAG;AAC1D,YAAI,OAAO,IAAa;AACtB,yBAAe,OAAO,cAAc,MAAM,UAAU,IAAI;AACxD,eAAK,MAAM,MAAM,WAAW,EAAE,MAAM,QAAQ;AAE5C,cAAI,OAAO,IAAa;AACtB,2BAAe,MAAM;AACrB,kBAAM;AACN,yBAAa,MAAM;AAAA,UACrB,OAAO;AACL,mBAAO;AAAA,UACT;AAAA,QAEF,WAAW,OAAO,EAAE,GAAG;AACrB,yBAAe,OAAO,cAAc,YAAY,IAAI;AACpD,2BAAiB,OAAO,oBAAoB,OAAO,OAAO,UAAU,CAAC;AACrE,yBAAe,aAAa,MAAM;AAAA,QAEpC,WAAW,MAAM,aAAa,MAAM,aAAa,sBAAsB,KAAK,GAAG;AAC7E,UAAAN,YAAW,OAAO,8DAA8D;AAAA,QAElF,OAAO;AACL,gBAAM;AACN,uBAAa,MAAM;AAAA,QACrB;AAAA,MACF;AAEA,MAAAA,YAAW,OAAO,4DAA4D;AAAA,IAChF;AAEA,aAAS,uBAAuB,OAAO,YAAY;AACjD,UAAI,cACA,YACA,WACA,WACA,KACA;AAEJ,WAAK,MAAM,MAAM,WAAW,MAAM,QAAQ;AAE1C,UAAI,OAAO,IAAa;AACtB,eAAO;AAAA,MACT;AAEA,YAAM,OAAO;AACb,YAAM,SAAS;AACf,YAAM;AACN,qBAAe,aAAa,MAAM;AAElC,cAAQ,KAAK,MAAM,MAAM,WAAW,MAAM,QAAQ,OAAO,GAAG;AAC1D,YAAI,OAAO,IAAa;AACtB,yBAAe,OAAO,cAAc,MAAM,UAAU,IAAI;AACxD,gBAAM;AACN,iBAAO;AAAA,QAET,WAAW,OAAO,IAAa;AAC7B,yBAAe,OAAO,cAAc,MAAM,UAAU,IAAI;AACxD,eAAK,MAAM,MAAM,WAAW,EAAE,MAAM,QAAQ;AAE5C,cAAI,OAAO,EAAE,GAAG;AACd,gCAAoB,OAAO,OAAO,UAAU;AAAA,UAG9C,WAAW,KAAK,OAAO,kBAAkB,EAAE,GAAG;AAC5C,kBAAM,UAAU,gBAAgB,EAAE;AAClC,kBAAM;AAAA,UAER,YAAY,MAAM,cAAc,EAAE,KAAK,GAAG;AACxC,wBAAY;AACZ,wBAAY;AAEZ,mBAAO,YAAY,GAAG,aAAa;AACjC,mBAAK,MAAM,MAAM,WAAW,EAAE,MAAM,QAAQ;AAE5C,mBAAK,MAAM,YAAY,EAAE,MAAM,GAAG;AAChC,6BAAa,aAAa,KAAK;AAAA,cAEjC,OAAO;AACL,gBAAAA,YAAW,OAAO,gCAAgC;AAAA,cACpD;AAAA,YACF;AAEA,kBAAM,UAAU,kBAAkB,SAAS;AAE3C,kBAAM;AAAA,UAER,OAAO;AACL,YAAAA,YAAW,OAAO,yBAAyB;AAAA,UAC7C;AAEA,yBAAe,aAAa,MAAM;AAAA,QAEpC,WAAW,OAAO,EAAE,GAAG;AACrB,yBAAe,OAAO,cAAc,YAAY,IAAI;AACpD,2BAAiB,OAAO,oBAAoB,OAAO,OAAO,UAAU,CAAC;AACrE,yBAAe,aAAa,MAAM;AAAA,QAEpC,WAAW,MAAM,aAAa,MAAM,aAAa,sBAAsB,KAAK,GAAG;AAC7E,UAAAA,YAAW,OAAO,8DAA8D;AAAA,QAElF,OAAO;AACL,gBAAM;AACN,uBAAa,MAAM;AAAA,QACrB;AAAA,MACF;AAEA,MAAAA,YAAW,OAAO,4DAA4D;AAAA,IAChF;AAEA,aAAS,mBAAmB,OAAO,YAAY;AAC7C,UAAI,WAAW,MACX,OACA,OAAW,MAAM,KACjB,SACA,UAAW,MAAM,QACjB,WACA,YACA,QACA,gBACA,WACA,kBAAkB,CAAC,GACnB,SACA,QACA,WACA;AAEJ,WAAK,MAAM,MAAM,WAAW,MAAM,QAAQ;AAE1C,UAAI,OAAO,IAAa;AACtB,qBAAa;AACb,oBAAY;AACZ,kBAAU,CAAC;AAAA,MACb,WAAW,OAAO,KAAa;AAC7B,qBAAa;AACb,oBAAY;AACZ,kBAAU,CAAC;AAAA,MACb,OAAO;AACL,eAAO;AAAA,MACT;AAEA,UAAI,MAAM,WAAW,MAAM;AACzB,cAAM,UAAU,MAAM,MAAM,IAAI;AAAA,MAClC;AAEA,WAAK,MAAM,MAAM,WAAW,EAAE,MAAM,QAAQ;AAE5C,aAAO,OAAO,GAAG;AACf,4BAAoB,OAAO,MAAM,UAAU;AAE3C,aAAK,MAAM,MAAM,WAAW,MAAM,QAAQ;AAE1C,YAAI,OAAO,YAAY;AACrB,gBAAM;AACN,gBAAM,MAAM;AACZ,gBAAM,SAAS;AACf,gBAAM,OAAO,YAAY,YAAY;AACrC,gBAAM,SAAS;AACf,iBAAO;AAAA,QACT,WAAW,CAAC,UAAU;AACpB,UAAAA,YAAW,OAAO,8CAA8C;AAAA,QAClE;AAEA,iBAAS,UAAU,YAAY;AAC/B,iBAAS,iBAAiB;AAE1B,YAAI,OAAO,IAAa;AACtB,sBAAY,MAAM,MAAM,WAAW,MAAM,WAAW,CAAC;AAErD,cAAI,aAAa,SAAS,GAAG;AAC3B,qBAAS,iBAAiB;AAC1B,kBAAM;AACN,gCAAoB,OAAO,MAAM,UAAU;AAAA,UAC7C;AAAA,QACF;AAEA,gBAAQ,MAAM;AACd,oBAAY,OAAO,YAAY,iBAAiB,OAAO,IAAI;AAC3D,iBAAS,MAAM;AACf,kBAAU,MAAM;AAChB,4BAAoB,OAAO,MAAM,UAAU;AAE3C,aAAK,MAAM,MAAM,WAAW,MAAM,QAAQ;AAE1C,aAAK,kBAAkB,MAAM,SAAS,UAAU,OAAO,IAAa;AAClE,mBAAS;AACT,eAAK,MAAM,MAAM,WAAW,EAAE,MAAM,QAAQ;AAC5C,8BAAoB,OAAO,MAAM,UAAU;AAC3C,sBAAY,OAAO,YAAY,iBAAiB,OAAO,IAAI;AAC3D,sBAAY,MAAM;AAAA,QACpB;AAEA,YAAI,WAAW;AACb,2BAAiB,OAAO,SAAS,iBAAiB,QAAQ,SAAS,SAAS;AAAA,QAC9E,WAAW,QAAQ;AACjB,kBAAQ,KAAK,iBAAiB,OAAO,MAAM,iBAAiB,QAAQ,SAAS,SAAS,CAAC;AAAA,QACzF,OAAO;AACL,kBAAQ,KAAK,OAAO;AAAA,QACtB;AAEA,4BAAoB,OAAO,MAAM,UAAU;AAE3C,aAAK,MAAM,MAAM,WAAW,MAAM,QAAQ;AAE1C,YAAI,OAAO,IAAa;AACtB,qBAAW;AACX,eAAK,MAAM,MAAM,WAAW,EAAE,MAAM,QAAQ;AAAA,QAC9C,OAAO;AACL,qBAAW;AAAA,QACb;AAAA,MACF;AAEA,MAAAA,YAAW,OAAO,uDAAuD;AAAA,IAC3E;AAEA,aAAS,gBAAgB,OAAO,YAAY;AAC1C,UAAI,cACA,SACA,WAAiB,eACjB,iBAAiB,OACjB,iBAAiB,OACjB,aAAiB,YACjB,aAAiB,GACjB,iBAAiB,OACjB,KACA;AAEJ,WAAK,MAAM,MAAM,WAAW,MAAM,QAAQ;AAE1C,UAAI,OAAO,KAAa;AACtB,kBAAU;AAAA,MACZ,WAAW,OAAO,IAAa;AAC7B,kBAAU;AAAA,MACZ,OAAO;AACL,eAAO;AAAA,MACT;AAEA,YAAM,OAAO;AACb,YAAM,SAAS;AAEf,aAAO,OAAO,GAAG;AACf,aAAK,MAAM,MAAM,WAAW,EAAE,MAAM,QAAQ;AAE5C,YAAI,OAAO,MAAe,OAAO,IAAa;AAC5C,cAAI,kBAAkB,UAAU;AAC9B,uBAAY,OAAO,KAAe,gBAAgB;AAAA,UACpD,OAAO;AACL,YAAAA,YAAW,OAAO,sCAAsC;AAAA,UAC1D;AAAA,QAEF,YAAY,MAAM,gBAAgB,EAAE,MAAM,GAAG;AAC3C,cAAI,QAAQ,GAAG;AACb,YAAAA,YAAW,OAAO,8EAA8E;AAAA,UAClG,WAAW,CAAC,gBAAgB;AAC1B,yBAAa,aAAa,MAAM;AAChC,6BAAiB;AAAA,UACnB,OAAO;AACL,YAAAA,YAAW,OAAO,2CAA2C;AAAA,UAC/D;AAAA,QAEF,OAAO;AACL;AAAA,QACF;AAAA,MACF;AAEA,UAAI,eAAe,EAAE,GAAG;AACtB,WAAG;AAAE,eAAK,MAAM,MAAM,WAAW,EAAE,MAAM,QAAQ;AAAA,QAAG,SAC7C,eAAe,EAAE;AAExB,YAAI,OAAO,IAAa;AACtB,aAAG;AAAE,iBAAK,MAAM,MAAM,WAAW,EAAE,MAAM,QAAQ;AAAA,UAAG,SAC7C,CAAC,OAAO,EAAE,KAAM,OAAO;AAAA,QAChC;AAAA,MACF;AAEA,aAAO,OAAO,GAAG;AACf,sBAAc,KAAK;AACnB,cAAM,aAAa;AAEnB,aAAK,MAAM,MAAM,WAAW,MAAM,QAAQ;AAE1C,gBAAQ,CAAC,kBAAkB,MAAM,aAAa,eACtC,OAAO,IAAkB;AAC/B,gBAAM;AACN,eAAK,MAAM,MAAM,WAAW,EAAE,MAAM,QAAQ;AAAA,QAC9C;AAEA,YAAI,CAAC,kBAAkB,MAAM,aAAa,YAAY;AACpD,uBAAa,MAAM;AAAA,QACrB;AAEA,YAAI,OAAO,EAAE,GAAG;AACd;AACA;AAAA,QACF;AAGA,YAAI,MAAM,aAAa,YAAY;AAGjC,cAAI,aAAa,eAAe;AAC9B,kBAAM,UAAU,OAAO,OAAO,MAAM,iBAAiB,IAAI,aAAa,UAAU;AAAA,UAClF,WAAW,aAAa,eAAe;AACrC,gBAAI,gBAAgB;AAClB,oBAAM,UAAU;AAAA,YAClB;AAAA,UACF;AAGA;AAAA,QACF;AAGA,YAAI,SAAS;AAGX,cAAI,eAAe,EAAE,GAAG;AACtB,6BAAiB;AAEjB,kBAAM,UAAU,OAAO,OAAO,MAAM,iBAAiB,IAAI,aAAa,UAAU;AAAA,UAGlF,WAAW,gBAAgB;AACzB,6BAAiB;AACjB,kBAAM,UAAU,OAAO,OAAO,MAAM,aAAa,CAAC;AAAA,UAGpD,WAAW,eAAe,GAAG;AAC3B,gBAAI,gBAAgB;AAClB,oBAAM,UAAU;AAAA,YAClB;AAAA,UAGF,OAAO;AACL,kBAAM,UAAU,OAAO,OAAO,MAAM,UAAU;AAAA,UAChD;AAAA,QAGF,OAAO;AAEL,gBAAM,UAAU,OAAO,OAAO,MAAM,iBAAiB,IAAI,aAAa,UAAU;AAAA,QAClF;AAEA,yBAAiB;AACjB,yBAAiB;AACjB,qBAAa;AACb,uBAAe,MAAM;AAErB,eAAO,CAAC,OAAO,EAAE,KAAM,OAAO,GAAI;AAChC,eAAK,MAAM,MAAM,WAAW,EAAE,MAAM,QAAQ;AAAA,QAC9C;AAEA,uBAAe,OAAO,cAAc,MAAM,UAAU,KAAK;AAAA,MAC3D;AAEA,aAAO;AAAA,IACT;AAEA,aAAS,kBAAkB,OAAO,YAAY;AAC5C,UAAI,OACA,OAAY,MAAM,KAClB,UAAY,MAAM,QAClB,UAAY,CAAC,GACb,WACA,WAAY,OACZ;AAEJ,UAAI,MAAM,WAAW,MAAM;AACzB,cAAM,UAAU,MAAM,MAAM,IAAI;AAAA,MAClC;AAEA,WAAK,MAAM,MAAM,WAAW,MAAM,QAAQ;AAE1C,aAAO,OAAO,GAAG;AAEf,YAAI,OAAO,IAAa;AACtB;AAAA,QACF;AAEA,oBAAY,MAAM,MAAM,WAAW,MAAM,WAAW,CAAC;AAErD,YAAI,CAAC,aAAa,SAAS,GAAG;AAC5B;AAAA,QACF;AAEA,mBAAW;AACX,cAAM;AAEN,YAAI,oBAAoB,OAAO,MAAM,EAAE,GAAG;AACxC,cAAI,MAAM,cAAc,YAAY;AAClC,oBAAQ,KAAK,IAAI;AACjB,iBAAK,MAAM,MAAM,WAAW,MAAM,QAAQ;AAC1C;AAAA,UACF;AAAA,QACF;AAEA,gBAAQ,MAAM;AACd,oBAAY,OAAO,YAAY,kBAAkB,OAAO,IAAI;AAC5D,gBAAQ,KAAK,MAAM,MAAM;AACzB,4BAAoB,OAAO,MAAM,EAAE;AAEnC,aAAK,MAAM,MAAM,WAAW,MAAM,QAAQ;AAE1C,aAAK,MAAM,SAAS,SAAS,MAAM,aAAa,eAAgB,OAAO,GAAI;AACzE,UAAAA,YAAW,OAAO,qCAAqC;AAAA,QACzD,WAAW,MAAM,aAAa,YAAY;AACxC;AAAA,QACF;AAAA,MACF;AAEA,UAAI,UAAU;AACZ,cAAM,MAAM;AACZ,cAAM,SAAS;AACf,cAAM,OAAO;AACb,cAAM,SAAS;AACf,eAAO;AAAA,MACT;AACA,aAAO;AAAA,IACT;AAEA,aAAS,iBAAiB,OAAO,YAAY,YAAY;AACvD,UAAI,WACA,cACA,OACA,MACA,OAAgB,MAAM,KACtB,UAAgB,MAAM,QACtB,UAAgB,CAAC,GACjB,kBAAkB,CAAC,GACnB,SAAgB,MAChB,UAAgB,MAChB,YAAgB,MAChB,gBAAgB,OAChB,WAAgB,OAChB;AAEJ,UAAI,MAAM,WAAW,MAAM;AACzB,cAAM,UAAU,MAAM,MAAM,IAAI;AAAA,MAClC;AAEA,WAAK,MAAM,MAAM,WAAW,MAAM,QAAQ;AAE1C,aAAO,OAAO,GAAG;AACf,oBAAY,MAAM,MAAM,WAAW,MAAM,WAAW,CAAC;AACrD,gBAAQ,MAAM;AACd,eAAO,MAAM;AAMb,aAAK,OAAO,MAAe,OAAO,OAAgB,aAAa,SAAS,GAAG;AAEzE,cAAI,OAAO,IAAa;AACtB,gBAAI,eAAe;AACjB,+BAAiB,OAAO,SAAS,iBAAiB,QAAQ,SAAS,IAAI;AACvE,uBAAS,UAAU,YAAY;AAAA,YACjC;AAEA,uBAAW;AACX,4BAAgB;AAChB,2BAAe;AAAA,UAEjB,WAAW,eAAe;AAExB,4BAAgB;AAChB,2BAAe;AAAA,UAEjB,OAAO;AACL,YAAAA,YAAW,OAAO,mGAAmG;AAAA,UACvH;AAEA,gBAAM,YAAY;AAClB,eAAK;AAAA,QAKP,WAAW,YAAY,OAAO,YAAY,kBAAkB,OAAO,IAAI,GAAG;AAExE,cAAI,MAAM,SAAS,OAAO;AACxB,iBAAK,MAAM,MAAM,WAAW,MAAM,QAAQ;AAE1C,mBAAO,eAAe,EAAE,GAAG;AACzB,mBAAK,MAAM,MAAM,WAAW,EAAE,MAAM,QAAQ;AAAA,YAC9C;AAEA,gBAAI,OAAO,IAAa;AACtB,mBAAK,MAAM,MAAM,WAAW,EAAE,MAAM,QAAQ;AAE5C,kBAAI,CAAC,aAAa,EAAE,GAAG;AACrB,gBAAAA,YAAW,OAAO,yFAAyF;AAAA,cAC7G;AAEA,kBAAI,eAAe;AACjB,iCAAiB,OAAO,SAAS,iBAAiB,QAAQ,SAAS,IAAI;AACvE,yBAAS,UAAU,YAAY;AAAA,cACjC;AAEA,yBAAW;AACX,8BAAgB;AAChB,6BAAe;AACf,uBAAS,MAAM;AACf,wBAAU,MAAM;AAAA,YAElB,WAAW,UAAU;AACnB,cAAAA,YAAW,OAAO,0DAA0D;AAAA,YAE9E,OAAO;AACL,oBAAM,MAAM;AACZ,oBAAM,SAAS;AACf,qBAAO;AAAA,YACT;AAAA,UAEF,WAAW,UAAU;AACnB,YAAAA,YAAW,OAAO,gFAAgF;AAAA,UAEpG,OAAO;AACL,kBAAM,MAAM;AACZ,kBAAM,SAAS;AACf,mBAAO;AAAA,UACT;AAAA,QAEF,OAAO;AACL;AAAA,QACF;AAKA,YAAI,MAAM,SAAS,SAAS,MAAM,aAAa,YAAY;AACzD,cAAI,YAAY,OAAO,YAAY,mBAAmB,MAAM,YAAY,GAAG;AACzE,gBAAI,eAAe;AACjB,wBAAU,MAAM;AAAA,YAClB,OAAO;AACL,0BAAY,MAAM;AAAA,YACpB;AAAA,UACF;AAEA,cAAI,CAAC,eAAe;AAClB,6BAAiB,OAAO,SAAS,iBAAiB,QAAQ,SAAS,WAAW,OAAO,IAAI;AACzF,qBAAS,UAAU,YAAY;AAAA,UACjC;AAEA,8BAAoB,OAAO,MAAM,EAAE;AACnC,eAAK,MAAM,MAAM,WAAW,MAAM,QAAQ;AAAA,QAC5C;AAEA,YAAI,MAAM,aAAa,cAAe,OAAO,GAAI;AAC/C,UAAAA,YAAW,OAAO,oCAAoC;AAAA,QACxD,WAAW,MAAM,aAAa,YAAY;AACxC;AAAA,QACF;AAAA,MACF;AAOA,UAAI,eAAe;AACjB,yBAAiB,OAAO,SAAS,iBAAiB,QAAQ,SAAS,IAAI;AAAA,MACzE;AAGA,UAAI,UAAU;AACZ,cAAM,MAAM;AACZ,cAAM,SAAS;AACf,cAAM,OAAO;AACb,cAAM,SAAS;AAAA,MACjB;AAEA,aAAO;AAAA,IACT;AAEA,aAAS,gBAAgB,OAAO;AAC9B,UAAI,WACA,aAAa,OACb,UAAa,OACb,WACA,SACA;AAEJ,WAAK,MAAM,MAAM,WAAW,MAAM,QAAQ;AAE1C,UAAI,OAAO,GAAa,QAAO;AAE/B,UAAI,MAAM,QAAQ,MAAM;AACtB,QAAAA,YAAW,OAAO,+BAA+B;AAAA,MACnD;AAEA,WAAK,MAAM,MAAM,WAAW,EAAE,MAAM,QAAQ;AAE5C,UAAI,OAAO,IAAa;AACtB,qBAAa;AACb,aAAK,MAAM,MAAM,WAAW,EAAE,MAAM,QAAQ;AAAA,MAE9C,WAAW,OAAO,IAAa;AAC7B,kBAAU;AACV,oBAAY;AACZ,aAAK,MAAM,MAAM,WAAW,EAAE,MAAM,QAAQ;AAAA,MAE9C,OAAO;AACL,oBAAY;AAAA,MACd;AAEA,kBAAY,MAAM;AAElB,UAAI,YAAY;AACd,WAAG;AAAE,eAAK,MAAM,MAAM,WAAW,EAAE,MAAM,QAAQ;AAAA,QAAG,SAC7C,OAAO,KAAK,OAAO;AAE1B,YAAI,MAAM,WAAW,MAAM,QAAQ;AACjC,oBAAU,MAAM,MAAM,MAAM,WAAW,MAAM,QAAQ;AACrD,eAAK,MAAM,MAAM,WAAW,EAAE,MAAM,QAAQ;AAAA,QAC9C,OAAO;AACL,UAAAA,YAAW,OAAO,oDAAoD;AAAA,QACxE;AAAA,MACF,OAAO;AACL,eAAO,OAAO,KAAK,CAAC,aAAa,EAAE,GAAG;AAEpC,cAAI,OAAO,IAAa;AACtB,gBAAI,CAAC,SAAS;AACZ,0BAAY,MAAM,MAAM,MAAM,YAAY,GAAG,MAAM,WAAW,CAAC;AAE/D,kBAAI,CAAC,mBAAmB,KAAK,SAAS,GAAG;AACvC,gBAAAA,YAAW,OAAO,iDAAiD;AAAA,cACrE;AAEA,wBAAU;AACV,0BAAY,MAAM,WAAW;AAAA,YAC/B,OAAO;AACL,cAAAA,YAAW,OAAO,6CAA6C;AAAA,YACjE;AAAA,UACF;AAEA,eAAK,MAAM,MAAM,WAAW,EAAE,MAAM,QAAQ;AAAA,QAC9C;AAEA,kBAAU,MAAM,MAAM,MAAM,WAAW,MAAM,QAAQ;AAErD,YAAI,wBAAwB,KAAK,OAAO,GAAG;AACzC,UAAAA,YAAW,OAAO,qDAAqD;AAAA,QACzE;AAAA,MACF;AAEA,UAAI,WAAW,CAAC,gBAAgB,KAAK,OAAO,GAAG;AAC7C,QAAAA,YAAW,OAAO,8CAA8C,OAAO;AAAA,MACzE;AAEA,UAAI,YAAY;AACd,cAAM,MAAM;AAAA,MAEd,WAAW,gBAAgB,KAAK,MAAM,QAAQ,SAAS,GAAG;AACxD,cAAM,MAAM,MAAM,OAAO,SAAS,IAAI;AAAA,MAExC,WAAW,cAAc,KAAK;AAC5B,cAAM,MAAM,MAAM;AAAA,MAEpB,WAAW,cAAc,MAAM;AAC7B,cAAM,MAAM,uBAAuB;AAAA,MAErC,OAAO;AACL,QAAAA,YAAW,OAAO,4BAA4B,YAAY,GAAG;AAAA,MAC/D;AAEA,aAAO;AAAA,IACT;AAEA,aAAS,mBAAmB,OAAO;AACjC,UAAI,WACA;AAEJ,WAAK,MAAM,MAAM,WAAW,MAAM,QAAQ;AAE1C,UAAI,OAAO,GAAa,QAAO;AAE/B,UAAI,MAAM,WAAW,MAAM;AACzB,QAAAA,YAAW,OAAO,mCAAmC;AAAA,MACvD;AAEA,WAAK,MAAM,MAAM,WAAW,EAAE,MAAM,QAAQ;AAC5C,kBAAY,MAAM;AAElB,aAAO,OAAO,KAAK,CAAC,aAAa,EAAE,KAAK,CAAC,kBAAkB,EAAE,GAAG;AAC9D,aAAK,MAAM,MAAM,WAAW,EAAE,MAAM,QAAQ;AAAA,MAC9C;AAEA,UAAI,MAAM,aAAa,WAAW;AAChC,QAAAA,YAAW,OAAO,4DAA4D;AAAA,MAChF;AAEA,YAAM,SAAS,MAAM,MAAM,MAAM,WAAW,MAAM,QAAQ;AAC1D,aAAO;AAAA,IACT;AAEA,aAAS,UAAU,OAAO;AACxB,UAAI,WAAW,OACX;AAEJ,WAAK,MAAM,MAAM,WAAW,MAAM,QAAQ;AAE1C,UAAI,OAAO,GAAa,QAAO;AAE/B,WAAK,MAAM,MAAM,WAAW,EAAE,MAAM,QAAQ;AAC5C,kBAAY,MAAM;AAElB,aAAO,OAAO,KAAK,CAAC,aAAa,EAAE,KAAK,CAAC,kBAAkB,EAAE,GAAG;AAC9D,aAAK,MAAM,MAAM,WAAW,EAAE,MAAM,QAAQ;AAAA,MAC9C;AAEA,UAAI,MAAM,aAAa,WAAW;AAChC,QAAAA,YAAW,OAAO,2DAA2D;AAAA,MAC/E;AAEA,cAAQ,MAAM,MAAM,MAAM,WAAW,MAAM,QAAQ;AAEnD,UAAI,CAAC,gBAAgB,KAAK,MAAM,WAAW,KAAK,GAAG;AACjD,QAAAA,YAAW,OAAO,yBAAyB,QAAQ,GAAG;AAAA,MACxD;AAEA,YAAM,SAAS,MAAM,UAAU,KAAK;AACpC,0BAAoB,OAAO,MAAM,EAAE;AACnC,aAAO;AAAA,IACT;AAEA,aAAS,YAAY,OAAO,cAAc,aAAa,aAAa,cAAc;AAChF,UAAI,kBACA,mBACA,uBACA,eAAe,GACf,YAAa,OACb,aAAa,OACb,WACA,cACAO,OACA,YACA;AAEJ,UAAI,MAAM,aAAa,MAAM;AAC3B,cAAM,SAAS,QAAQ,KAAK;AAAA,MAC9B;AAEA,YAAM,MAAS;AACf,YAAM,SAAS;AACf,YAAM,OAAS;AACf,YAAM,SAAS;AAEf,yBAAmB,oBAAoB,wBACrC,sBAAsB,eACtB,qBAAsB;AAExB,UAAI,aAAa;AACf,YAAI,oBAAoB,OAAO,MAAM,EAAE,GAAG;AACxC,sBAAY;AAEZ,cAAI,MAAM,aAAa,cAAc;AACnC,2BAAe;AAAA,UACjB,WAAW,MAAM,eAAe,cAAc;AAC5C,2BAAe;AAAA,UACjB,WAAW,MAAM,aAAa,cAAc;AAC1C,2BAAe;AAAA,UACjB;AAAA,QACF;AAAA,MACF;AAEA,UAAI,iBAAiB,GAAG;AACtB,eAAO,gBAAgB,KAAK,KAAK,mBAAmB,KAAK,GAAG;AAC1D,cAAI,oBAAoB,OAAO,MAAM,EAAE,GAAG;AACxC,wBAAY;AACZ,oCAAwB;AAExB,gBAAI,MAAM,aAAa,cAAc;AACnC,6BAAe;AAAA,YACjB,WAAW,MAAM,eAAe,cAAc;AAC5C,6BAAe;AAAA,YACjB,WAAW,MAAM,aAAa,cAAc;AAC1C,6BAAe;AAAA,YACjB;AAAA,UACF,OAAO;AACL,oCAAwB;AAAA,UAC1B;AAAA,QACF;AAAA,MACF;AAEA,UAAI,uBAAuB;AACzB,gCAAwB,aAAa;AAAA,MACvC;AAEA,UAAI,iBAAiB,KAAK,sBAAsB,aAAa;AAC3D,YAAI,oBAAoB,eAAe,qBAAqB,aAAa;AACvE,uBAAa;AAAA,QACf,OAAO;AACL,uBAAa,eAAe;AAAA,QAC9B;AAEA,sBAAc,MAAM,WAAW,MAAM;AAErC,YAAI,iBAAiB,GAAG;AACtB,cAAI,0BACC,kBAAkB,OAAO,WAAW,KACpC,iBAAiB,OAAO,aAAa,UAAU,MAChD,mBAAmB,OAAO,UAAU,GAAG;AACzC,yBAAa;AAAA,UACf,OAAO;AACL,gBAAK,qBAAqB,gBAAgB,OAAO,UAAU,KACvD,uBAAuB,OAAO,UAAU,KACxC,uBAAuB,OAAO,UAAU,GAAG;AAC7C,2BAAa;AAAA,YAEf,WAAW,UAAU,KAAK,GAAG;AAC3B,2BAAa;AAEb,kBAAI,MAAM,QAAQ,QAAQ,MAAM,WAAW,MAAM;AAC/C,gBAAAP,YAAW,OAAO,2CAA2C;AAAA,cAC/D;AAAA,YAEF,WAAW,gBAAgB,OAAO,YAAY,oBAAoB,WAAW,GAAG;AAC9E,2BAAa;AAEb,kBAAI,MAAM,QAAQ,MAAM;AACtB,sBAAM,MAAM;AAAA,cACd;AAAA,YACF;AAEA,gBAAI,MAAM,WAAW,MAAM;AACzB,oBAAM,UAAU,MAAM,MAAM,IAAI,MAAM;AAAA,YACxC;AAAA,UACF;AAAA,QACF,WAAW,iBAAiB,GAAG;AAG7B,uBAAa,yBAAyB,kBAAkB,OAAO,WAAW;AAAA,QAC5E;AAAA,MACF;AAEA,UAAI,MAAM,QAAQ,QAAQ,MAAM,QAAQ,KAAK;AAC3C,YAAI,MAAM,QAAQ,KAAK;AAOrB,cAAI,MAAM,WAAW,QAAQ,MAAM,SAAS,UAAU;AACpD,YAAAA,YAAW,OAAO,sEAAsE,MAAM,OAAO,GAAG;AAAA,UAC1G;AAEA,eAAK,YAAY,GAAG,eAAe,MAAM,cAAc,QAAQ,YAAY,cAAc,aAAa,GAAG;AACvG,YAAAO,QAAO,MAAM,cAAc,SAAS;AAEpC,gBAAIA,MAAK,QAAQ,MAAM,MAAM,GAAG;AAC9B,oBAAM,SAASA,MAAK,UAAU,MAAM,MAAM;AAC1C,oBAAM,MAAMA,MAAK;AACjB,kBAAI,MAAM,WAAW,MAAM;AACzB,sBAAM,UAAU,MAAM,MAAM,IAAI,MAAM;AAAA,cACxC;AACA;AAAA,YACF;AAAA,UACF;AAAA,QACF,WAAW,gBAAgB,KAAK,MAAM,QAAQ,MAAM,QAAQ,UAAU,GAAG,MAAM,GAAG,GAAG;AACnF,UAAAA,QAAO,MAAM,QAAQ,MAAM,QAAQ,UAAU,EAAE,MAAM,GAAG;AAExD,cAAI,MAAM,WAAW,QAAQA,MAAK,SAAS,MAAM,MAAM;AACrD,YAAAP,YAAW,OAAO,kCAAkC,MAAM,MAAM,0BAA0BO,MAAK,OAAO,aAAa,MAAM,OAAO,GAAG;AAAA,UACrI;AAEA,cAAI,CAACA,MAAK,QAAQ,MAAM,MAAM,GAAG;AAC/B,YAAAP,YAAW,OAAO,kCAAkC,MAAM,MAAM,gBAAgB;AAAA,UAClF,OAAO;AACL,kBAAM,SAASO,MAAK,UAAU,MAAM,MAAM;AAC1C,gBAAI,MAAM,WAAW,MAAM;AACzB,oBAAM,UAAU,MAAM,MAAM,IAAI,MAAM;AAAA,YACxC;AAAA,UACF;AAAA,QACF,OAAO;AACL,UAAAP,YAAW,OAAO,mBAAmB,MAAM,MAAM,GAAG;AAAA,QACtD;AAAA,MACF;AAEA,UAAI,MAAM,aAAa,MAAM;AAC3B,cAAM,SAAS,SAAS,KAAK;AAAA,MAC/B;AACA,aAAO,MAAM,QAAQ,QAAS,MAAM,WAAW,QAAQ;AAAA,IACzD;AAEA,aAAS,aAAa,OAAO;AAC3B,UAAI,gBAAgB,MAAM,UACtB,WACA,eACA,eACA,gBAAgB,OAChB;AAEJ,YAAM,UAAU;AAChB,YAAM,kBAAkB,MAAM;AAC9B,YAAM,SAAS,CAAC;AAChB,YAAM,YAAY,CAAC;AAEnB,cAAQ,KAAK,MAAM,MAAM,WAAW,MAAM,QAAQ,OAAO,GAAG;AAC1D,4BAAoB,OAAO,MAAM,EAAE;AAEnC,aAAK,MAAM,MAAM,WAAW,MAAM,QAAQ;AAE1C,YAAI,MAAM,aAAa,KAAK,OAAO,IAAa;AAC9C;AAAA,QACF;AAEA,wBAAgB;AAChB,aAAK,MAAM,MAAM,WAAW,EAAE,MAAM,QAAQ;AAC5C,oBAAY,MAAM;AAElB,eAAO,OAAO,KAAK,CAAC,aAAa,EAAE,GAAG;AACpC,eAAK,MAAM,MAAM,WAAW,EAAE,MAAM,QAAQ;AAAA,QAC9C;AAEA,wBAAgB,MAAM,MAAM,MAAM,WAAW,MAAM,QAAQ;AAC3D,wBAAgB,CAAC;AAEjB,YAAI,cAAc,SAAS,GAAG;AAC5B,UAAAA,YAAW,OAAO,8DAA8D;AAAA,QAClF;AAEA,eAAO,OAAO,GAAG;AACf,iBAAO,eAAe,EAAE,GAAG;AACzB,iBAAK,MAAM,MAAM,WAAW,EAAE,MAAM,QAAQ;AAAA,UAC9C;AAEA,cAAI,OAAO,IAAa;AACtB,eAAG;AAAE,mBAAK,MAAM,MAAM,WAAW,EAAE,MAAM,QAAQ;AAAA,YAAG,SAC7C,OAAO,KAAK,CAAC,OAAO,EAAE;AAC7B;AAAA,UACF;AAEA,cAAI,OAAO,EAAE,EAAG;AAEhB,sBAAY,MAAM;AAElB,iBAAO,OAAO,KAAK,CAAC,aAAa,EAAE,GAAG;AACpC,iBAAK,MAAM,MAAM,WAAW,EAAE,MAAM,QAAQ;AAAA,UAC9C;AAEA,wBAAc,KAAK,MAAM,MAAM,MAAM,WAAW,MAAM,QAAQ,CAAC;AAAA,QACjE;AAEA,YAAI,OAAO,EAAG,eAAc,KAAK;AAEjC,YAAI,gBAAgB,KAAK,mBAAmB,aAAa,GAAG;AAC1D,4BAAkB,aAAa,EAAE,OAAO,eAAe,aAAa;AAAA,QACtE,OAAO;AACL,uBAAa,OAAO,iCAAiC,gBAAgB,GAAG;AAAA,QAC1E;AAAA,MACF;AAEA,0BAAoB,OAAO,MAAM,EAAE;AAEnC,UAAI,MAAM,eAAe,KACrB,MAAM,MAAM,WAAW,MAAM,QAAQ,MAAU,MAC/C,MAAM,MAAM,WAAW,MAAM,WAAW,CAAC,MAAM,MAC/C,MAAM,MAAM,WAAW,MAAM,WAAW,CAAC,MAAM,IAAa;AAC9D,cAAM,YAAY;AAClB,4BAAoB,OAAO,MAAM,EAAE;AAAA,MAErC,WAAW,eAAe;AACxB,QAAAA,YAAW,OAAO,iCAAiC;AAAA,MACrD;AAEA,kBAAY,OAAO,MAAM,aAAa,GAAG,mBAAmB,OAAO,IAAI;AACvE,0BAAoB,OAAO,MAAM,EAAE;AAEnC,UAAI,MAAM,mBACN,8BAA8B,KAAK,MAAM,MAAM,MAAM,eAAe,MAAM,QAAQ,CAAC,GAAG;AACxF,qBAAa,OAAO,kDAAkD;AAAA,MACxE;AAEA,YAAM,UAAU,KAAK,MAAM,MAAM;AAEjC,UAAI,MAAM,aAAa,MAAM,aAAa,sBAAsB,KAAK,GAAG;AAEtE,YAAI,MAAM,MAAM,WAAW,MAAM,QAAQ,MAAM,IAAa;AAC1D,gBAAM,YAAY;AAClB,8BAAoB,OAAO,MAAM,EAAE;AAAA,QACrC;AACA;AAAA,MACF;AAEA,UAAI,MAAM,WAAY,MAAM,SAAS,GAAI;AACvC,QAAAA,YAAW,OAAO,uDAAuD;AAAA,MAC3E,OAAO;AACL;AAAA,MACF;AAAA,IACF;AAGA,aAAS,cAAc,OAAO,SAAS;AACrC,cAAQ,OAAO,KAAK;AACpB,gBAAU,WAAW,CAAC;AAEtB,UAAI,MAAM,WAAW,GAAG;AAGtB,YAAI,MAAM,WAAW,MAAM,SAAS,CAAC,MAAM,MACvC,MAAM,WAAW,MAAM,SAAS,CAAC,MAAM,IAAc;AACvD,mBAAS;AAAA,QACX;AAGA,YAAI,MAAM,WAAW,CAAC,MAAM,OAAQ;AAClC,kBAAQ,MAAM,MAAM,CAAC;AAAA,QACvB;AAAA,MACF;AAEA,UAAI,QAAQ,IAAI,MAAM,OAAO,OAAO;AAEpC,UAAI,UAAU,MAAM,QAAQ,IAAI;AAEhC,UAAI,YAAY,IAAI;AAClB,cAAM,WAAW;AACjB,QAAAA,YAAW,OAAO,mCAAmC;AAAA,MACvD;AAGA,YAAM,SAAS;AAEf,aAAO,MAAM,MAAM,WAAW,MAAM,QAAQ,MAAM,IAAiB;AACjE,cAAM,cAAc;AACpB,cAAM,YAAY;AAAA,MACpB;AAEA,aAAO,MAAM,WAAY,MAAM,SAAS,GAAI;AAC1C,qBAAa,KAAK;AAAA,MACpB;AAEA,aAAO,MAAM;AAAA,IACf;AAGA,aAAS,QAAQ,OAAOQ,WAAU,SAAS;AACzC,UAAIA,cAAa,QAAQ,OAAOA,cAAa,YAAY,OAAO,YAAY,aAAa;AACvF,kBAAUA;AACV,QAAAA,YAAW;AAAA,MACb;AAEA,UAAI,YAAY,cAAc,OAAO,OAAO;AAE5C,UAAI,OAAOA,cAAa,YAAY;AAClC,eAAO;AAAA,MACT;AAEA,eAASH,SAAQ,GAAG,SAAS,UAAU,QAAQA,SAAQ,QAAQA,UAAS,GAAG;AACzE,QAAAG,UAAS,UAAUH,MAAK,CAAC;AAAA,MAC3B;AAAA,IACF;AAGA,aAAS,KAAK,OAAO,SAAS;AAC5B,UAAI,YAAY,cAAc,OAAO,OAAO;AAE5C,UAAI,UAAU,WAAW,GAAG;AAE1B,eAAO;AAAA,MACT,WAAW,UAAU,WAAW,GAAG;AACjC,eAAO,UAAU,CAAC;AAAA,MACpB;AACA,YAAM,IAAI,cAAc,0DAA0D;AAAA,IACpF;AAGA,aAAS,YAAY,OAAOG,WAAU,SAAS;AAC7C,UAAI,OAAOA,cAAa,YAAYA,cAAa,QAAQ,OAAO,YAAY,aAAa;AACvF,kBAAUA;AACV,QAAAA,YAAW;AAAA,MACb;AAEA,aAAO,QAAQ,OAAOA,WAAU,OAAO,OAAO,EAAE,QAAQ,oBAAoB,GAAG,OAAO,CAAC;AAAA,IACzF;AAGA,aAAS,SAAS,OAAO,SAAS;AAChC,aAAO,KAAK,OAAO,OAAO,OAAO,EAAE,QAAQ,oBAAoB,GAAG,OAAO,CAAC;AAAA,IAC5E;AAGA,WAAO,QAAQ,UAAc;AAC7B,WAAO,QAAQ,OAAc;AAC7B,WAAO,QAAQ,cAAc;AAC7B,WAAO,QAAQ,WAAc;AA9+CpB,QAAAV;AAAA;AAAA;;;AC7IT;AAAA;AAAA;AAIA,QAAI,SAAsB;AAC1B,QAAI,gBAAsB;AAC1B,QAAI,sBAAsB;AAC1B,QAAI,sBAAsB;AAE1B,QAAI,YAAkB,OAAO,UAAU;AACvC,QAAI,kBAAkB,OAAO,UAAU;AAEvC,QAAI,WAA4B;AAChC,QAAI,iBAA4B;AAChC,QAAI,uBAA4B;AAChC,QAAI,aAA4B;AAChC,QAAI,mBAA4B;AAChC,QAAI,oBAA4B;AAChC,QAAI,aAA4B;AAChC,QAAI,eAA4B;AAChC,QAAI,iBAA4B;AAChC,QAAI,oBAA4B;AAChC,QAAI,gBAA4B;AAChC,QAAI,aAA4B;AAChC,QAAI,aAA4B;AAChC,QAAI,aAA4B;AAChC,QAAI,cAA4B;AAChC,QAAI,oBAA4B;AAChC,QAAI,gBAA4B;AAChC,QAAI,qBAA4B;AAChC,QAAI,2BAA4B;AAChC,QAAI,4BAA4B;AAChC,QAAI,oBAA4B;AAChC,QAAI,0BAA4B;AAChC,QAAI,qBAA4B;AAChC,QAAI,2BAA4B;AAEhC,QAAI,mBAAmB,CAAC;AAExB,qBAAiB,CAAI,IAAM;AAC3B,qBAAiB,CAAI,IAAM;AAC3B,qBAAiB,CAAI,IAAM;AAC3B,qBAAiB,CAAI,IAAM;AAC3B,qBAAiB,EAAI,IAAM;AAC3B,qBAAiB,EAAI,IAAM;AAC3B,qBAAiB,EAAI,IAAM;AAC3B,qBAAiB,EAAI,IAAM;AAC3B,qBAAiB,EAAI,IAAM;AAC3B,qBAAiB,EAAI,IAAM;AAC3B,qBAAiB,EAAI,IAAM;AAC3B,qBAAiB,GAAI,IAAM;AAC3B,qBAAiB,GAAI,IAAM;AAC3B,qBAAiB,IAAM,IAAI;AAC3B,qBAAiB,IAAM,IAAI;AAE3B,QAAI,6BAA6B;AAAA,MAC/B;AAAA,MAAK;AAAA,MAAK;AAAA,MAAO;AAAA,MAAO;AAAA,MAAO;AAAA,MAAM;AAAA,MAAM;AAAA,MAC3C;AAAA,MAAK;AAAA,MAAK;AAAA,MAAM;AAAA,MAAM;AAAA,MAAM;AAAA,MAAO;AAAA,MAAO;AAAA,IAC5C;AAEA,aAAS,gBAAgB,QAAQW,MAAK;AACpC,UAAI,QAAQC,OAAMC,QAAO,QAAQ,KAAK,OAAOC;AAE7C,UAAIH,SAAQ,KAAM,QAAO,CAAC;AAE1B,eAAS,CAAC;AACV,MAAAC,QAAO,OAAO,KAAKD,IAAG;AAEtB,WAAKE,SAAQ,GAAG,SAASD,MAAK,QAAQC,SAAQ,QAAQA,UAAS,GAAG;AAChE,cAAMD,MAAKC,MAAK;AAChB,gBAAQ,OAAOF,KAAI,GAAG,CAAC;AAEvB,YAAI,IAAI,MAAM,GAAG,CAAC,MAAM,MAAM;AAC5B,gBAAM,uBAAuB,IAAI,MAAM,CAAC;AAAA,QAC1C;AACA,QAAAG,QAAO,OAAO,gBAAgB,UAAU,EAAE,GAAG;AAE7C,YAAIA,SAAQ,gBAAgB,KAAKA,MAAK,cAAc,KAAK,GAAG;AAC1D,kBAAQA,MAAK,aAAa,KAAK;AAAA,QACjC;AAEA,eAAO,GAAG,IAAI;AAAA,MAChB;AAEA,aAAO;AAAA,IACT;AAEA,aAAS,UAAU,WAAW;AAC5B,UAAIC,SAAQC,SAAQ;AAEpB,MAAAD,UAAS,UAAU,SAAS,EAAE,EAAE,YAAY;AAE5C,UAAI,aAAa,KAAM;AACrB,QAAAC,UAAS;AACT,iBAAS;AAAA,MACX,WAAW,aAAa,OAAQ;AAC9B,QAAAA,UAAS;AACT,iBAAS;AAAA,MACX,WAAW,aAAa,YAAY;AAClC,QAAAA,UAAS;AACT,iBAAS;AAAA,MACX,OAAO;AACL,cAAM,IAAI,cAAc,+DAA+D;AAAA,MACzF;AAEA,aAAO,OAAOA,UAAS,OAAO,OAAO,KAAK,SAASD,QAAO,MAAM,IAAIA;AAAA,IACtE;AAEA,aAAS,MAAM,SAAS;AACtB,WAAK,SAAgB,QAAQ,QAAQ,KAAK;AAC1C,WAAK,SAAgB,KAAK,IAAI,GAAI,QAAQ,QAAQ,KAAK,CAAE;AACzD,WAAK,gBAAgB,QAAQ,eAAe,KAAK;AACjD,WAAK,cAAgB,QAAQ,aAAa,KAAK;AAC/C,WAAK,YAAiB,OAAO,UAAU,QAAQ,WAAW,CAAC,IAAI,KAAK,QAAQ,WAAW;AACvF,WAAK,WAAgB,gBAAgB,KAAK,QAAQ,QAAQ,QAAQ,KAAK,IAAI;AAC3E,WAAK,WAAgB,QAAQ,UAAU,KAAK;AAC5C,WAAK,YAAgB,QAAQ,WAAW,KAAK;AAC7C,WAAK,SAAgB,QAAQ,QAAQ,KAAK;AAC1C,WAAK,eAAgB,QAAQ,cAAc,KAAK;AAChD,WAAK,eAAgB,QAAQ,cAAc,KAAK;AAEhD,WAAK,gBAAgB,KAAK,OAAO;AACjC,WAAK,gBAAgB,KAAK,OAAO;AAEjC,WAAK,MAAM;AACX,WAAK,SAAS;AAEd,WAAK,aAAa,CAAC;AACnB,WAAK,iBAAiB;AAAA,IACxB;AAGA,aAAS,aAAaA,SAAQ,QAAQ;AACpC,UAAI,MAAM,OAAO,OAAO,KAAK,MAAM,GAC/BE,YAAW,GACXC,QAAO,IACP,SAAS,IACT,MACA,SAASH,QAAO;AAEpB,aAAOE,YAAW,QAAQ;AACxB,QAAAC,QAAOH,QAAO,QAAQ,MAAME,SAAQ;AACpC,YAAIC,UAAS,IAAI;AACf,iBAAOH,QAAO,MAAME,SAAQ;AAC5B,UAAAA,YAAW;AAAA,QACb,OAAO;AACL,iBAAOF,QAAO,MAAME,WAAUC,QAAO,CAAC;AACtC,UAAAD,YAAWC,QAAO;AAAA,QACpB;AAEA,YAAI,KAAK,UAAU,SAAS,KAAM,WAAU;AAE5C,kBAAU;AAAA,MACZ;AAEA,aAAO;AAAA,IACT;AAEA,aAAS,iBAAiB,OAAO,OAAO;AACtC,aAAO,OAAO,OAAO,OAAO,KAAK,MAAM,SAAS,KAAK;AAAA,IACvD;AAEA,aAAS,sBAAsB,OAAO,KAAK;AACzC,UAAIL,QAAO,QAAQC;AAEnB,WAAKD,SAAQ,GAAG,SAAS,MAAM,cAAc,QAAQA,SAAQ,QAAQA,UAAS,GAAG;AAC/E,QAAAC,QAAO,MAAM,cAAcD,MAAK;AAEhC,YAAIC,MAAK,QAAQ,GAAG,GAAG;AACrB,iBAAO;AAAA,QACT;AAAA,MACF;AAEA,aAAO;AAAA,IACT;AAGA,aAAS,aAAaK,KAAG;AACvB,aAAOA,QAAM,cAAcA,QAAM;AAAA,IACnC;AAMA,aAAS,YAAYA,KAAG;AACtB,aAAS,MAAWA,OAAKA,OAAK,OACrB,OAAWA,OAAKA,OAAK,SAAaA,QAAM,QAAUA,QAAM,QACxD,SAAWA,OAAKA,OAAK,SAAaA,QAAM,SACxC,SAAWA,OAAKA,OAAK;AAAA,IAChC;AAQA,aAAS,SAASA,KAAG;AACnB,aAAO,YAAYA,GAAC,KAAK,CAAC,aAAaA,GAAC,KAEnCA,QAAM,SAENA,QAAM,wBACNA,QAAM;AAAA,IACb;AAGA,aAAS,YAAYA,KAAG,MAAM;AAG5B,aAAO,YAAYA,GAAC,KAAKA,QAAM,SAE1BA,QAAM,cACNA,QAAM,4BACNA,QAAM,6BACNA,QAAM,2BACNA,QAAM,4BAGNA,QAAM,eACJA,QAAM,cAAgB,QAAQ,SAAS,IAAI;AAAA,IACpD;AAGA,aAAS,iBAAiBA,KAAG;AAG3B,aAAO,YAAYA,GAAC,KAAKA,QAAM,SAC1B,CAAC,aAAaA,GAAC,KAGfA,QAAM,cACNA,QAAM,iBACNA,QAAM,cACNA,QAAM,cACNA,QAAM,4BACNA,QAAM,6BACNA,QAAM,2BACNA,QAAM,4BAENA,QAAM,cACNA,QAAM,kBACNA,QAAM,iBACNA,QAAM,oBACNA,QAAM,sBACNA,QAAM,eACNA,QAAM,qBACNA,QAAM,qBACNA,QAAM,qBAENA,QAAM,gBACNA,QAAM,sBACNA,QAAM;AAAA,IACb;AAGA,aAAS,oBAAoBJ,SAAQ;AACnC,UAAI,iBAAiB;AACrB,aAAO,eAAe,KAAKA,OAAM;AAAA,IACnC;AAEA,QAAI,cAAgB,GAChB,eAAgB,GAChB,gBAAgB,GAChB,eAAgB,GAChB,eAAgB;AASpB,aAAS,kBAAkBA,SAAQ,gBAAgB,gBAAgB,WAAW,mBAAmB;AAC/F,UAAIK;AACJ,UAAI,MAAM;AACV,UAAI,eAAe;AACnB,UAAI,kBAAkB;AACtB,UAAI,mBAAmB,cAAc;AACrC,UAAI,oBAAoB;AACxB,UAAI,QAAQ,iBAAiBL,QAAO,WAAW,CAAC,CAAC,KACtC,CAAC,aAAaA,QAAO,WAAWA,QAAO,SAAS,CAAC,CAAC;AAE7D,UAAI,gBAAgB;AAGlB,aAAKK,MAAI,GAAGA,MAAIL,QAAO,QAAQK,OAAK;AAClC,iBAAOL,QAAO,WAAWK,GAAC;AAC1B,cAAI,CAAC,YAAY,IAAI,GAAG;AACtB,mBAAO;AAAA,UACT;AACA,sBAAYA,MAAI,IAAIL,QAAO,WAAWK,MAAI,CAAC,IAAI;AAC/C,kBAAQ,SAAS,YAAY,MAAM,SAAS;AAAA,QAC9C;AAAA,MACF,OAAO;AAEL,aAAKA,MAAI,GAAGA,MAAIL,QAAO,QAAQK,OAAK;AAClC,iBAAOL,QAAO,WAAWK,GAAC;AAC1B,cAAI,SAAS,gBAAgB;AAC3B,2BAAe;AAEf,gBAAI,kBAAkB;AACpB,gCAAkB;AAAA,cAEfA,MAAI,oBAAoB,IAAI,aAC5BL,QAAO,oBAAoB,CAAC,MAAM;AACrC,kCAAoBK;AAAA,YACtB;AAAA,UACF,WAAW,CAAC,YAAY,IAAI,GAAG;AAC7B,mBAAO;AAAA,UACT;AACA,sBAAYA,MAAI,IAAIL,QAAO,WAAWK,MAAI,CAAC,IAAI;AAC/C,kBAAQ,SAAS,YAAY,MAAM,SAAS;AAAA,QAC9C;AAEA,0BAAkB,mBAAoB,qBACnCA,MAAI,oBAAoB,IAAI,aAC5BL,QAAO,oBAAoB,CAAC,MAAM;AAAA,MACvC;AAIA,UAAI,CAAC,gBAAgB,CAAC,iBAAiB;AAGrC,eAAO,SAAS,CAAC,kBAAkBA,OAAM,IACrC,cAAc;AAAA,MACpB;AAEA,UAAI,iBAAiB,KAAK,oBAAoBA,OAAM,GAAG;AACrD,eAAO;AAAA,MACT;AAGA,aAAO,kBAAkB,eAAe;AAAA,IAC1C;AAQA,aAAS,YAAY,OAAOA,SAAQ,OAAO,OAAO;AAChD,YAAM,QAAQ,WAAY;AACxB,YAAIA,QAAO,WAAW,GAAG;AACvB,iBAAO;AAAA,QACT;AACA,YAAI,CAAC,MAAM,gBACP,2BAA2B,QAAQA,OAAM,MAAM,IAAI;AACrD,iBAAO,MAAMA,UAAS;AAAA,QACxB;AAEA,YAAIM,UAAS,MAAM,SAAS,KAAK,IAAI,GAAG,KAAK;AAQ7C,YAAI,YAAY,MAAM,cAAc,KAChC,KAAK,KAAK,IAAI,KAAK,IAAI,MAAM,WAAW,EAAE,GAAG,MAAM,YAAYA,OAAM;AAGzE,YAAI,iBAAiB,SAEf,MAAM,YAAY,MAAM,SAAS,MAAM;AAC7C,iBAAS,cAAcN,SAAQ;AAC7B,iBAAO,sBAAsB,OAAOA,OAAM;AAAA,QAC5C;AAEA,gBAAQ,kBAAkBA,SAAQ,gBAAgB,MAAM,QAAQ,WAAW,aAAa,GAAG;AAAA,UACzF,KAAK;AACH,mBAAOA;AAAA,UACT,KAAK;AACH,mBAAO,MAAMA,QAAO,QAAQ,MAAM,IAAI,IAAI;AAAA,UAC5C,KAAK;AACH,mBAAO,MAAM,YAAYA,SAAQ,MAAM,MAAM,IACzC,kBAAkB,aAAaA,SAAQM,OAAM,CAAC;AAAA,UACpD,KAAK;AACH,mBAAO,MAAM,YAAYN,SAAQ,MAAM,MAAM,IACzC,kBAAkB,aAAa,WAAWA,SAAQ,SAAS,GAAGM,OAAM,CAAC;AAAA,UAC3E,KAAK;AACH,mBAAO,MAAM,aAAaN,SAAQ,SAAS,IAAI;AAAA,UACjD;AACE,kBAAM,IAAI,cAAc,wCAAwC;AAAA,QACpE;AAAA,MACF,GAAE;AAAA,IACJ;AAGA,aAAS,YAAYA,SAAQ,gBAAgB;AAC3C,UAAI,kBAAkB,oBAAoBA,OAAM,IAAI,OAAO,cAAc,IAAI;AAG7E,UAAI,OAAgBA,QAAOA,QAAO,SAAS,CAAC,MAAM;AAClD,UAAI,OAAO,SAASA,QAAOA,QAAO,SAAS,CAAC,MAAM,QAAQA,YAAW;AACrE,UAAI,QAAQ,OAAO,MAAO,OAAO,KAAK;AAEtC,aAAO,kBAAkB,QAAQ;AAAA,IACnC;AAGA,aAAS,kBAAkBA,SAAQ;AACjC,aAAOA,QAAOA,QAAO,SAAS,CAAC,MAAM,OAAOA,QAAO,MAAM,GAAG,EAAE,IAAIA;AAAA,IACpE;AAIA,aAAS,WAAWA,SAAQ,OAAO;AAKjC,UAAI,SAAS;AAGb,UAAI,UAAU,WAAY;AACxB,YAAI,SAASA,QAAO,QAAQ,IAAI;AAChC,iBAAS,WAAW,KAAK,SAASA,QAAO;AACzC,eAAO,YAAY;AACnB,eAAO,SAASA,QAAO,MAAM,GAAG,MAAM,GAAG,KAAK;AAAA,MAChD,GAAE;AAEF,UAAI,mBAAmBA,QAAO,CAAC,MAAM,QAAQA,QAAO,CAAC,MAAM;AAC3D,UAAI;AAGJ,UAAIO;AACJ,aAAQA,SAAQ,OAAO,KAAKP,OAAM,GAAI;AACpC,YAAIQ,UAASD,OAAM,CAAC,GAAG,OAAOA,OAAM,CAAC;AACrC,uBAAgB,KAAK,CAAC,MAAM;AAC5B,kBAAUC,WACL,CAAC,oBAAoB,CAAC,gBAAgB,SAAS,KAC9C,OAAO,MACT,SAAS,MAAM,KAAK;AACxB,2BAAmB;AAAA,MACrB;AAEA,aAAO;AAAA,IACT;AAMA,aAAS,SAAS,MAAM,OAAO;AAC7B,UAAI,SAAS,MAAM,KAAK,CAAC,MAAM,IAAK,QAAO;AAG3C,UAAI,UAAU;AACd,UAAID;AAEJ,UAAI,QAAQ,GAAGE,MAAK,OAAO,GAAGN,QAAO;AACrC,UAAI,SAAS;AAMb,aAAQI,SAAQ,QAAQ,KAAK,IAAI,GAAI;AACnC,QAAAJ,QAAOI,OAAM;AAEb,YAAIJ,QAAO,QAAQ,OAAO;AACxB,UAAAM,OAAO,OAAO,QAAS,OAAON;AAC9B,oBAAU,OAAO,KAAK,MAAM,OAAOM,IAAG;AAEtC,kBAAQA,OAAM;AAAA,QAChB;AACA,eAAON;AAAA,MACT;AAIA,gBAAU;AAEV,UAAI,KAAK,SAAS,QAAQ,SAAS,OAAO,OAAO;AAC/C,kBAAU,KAAK,MAAM,OAAO,IAAI,IAAI,OAAO,KAAK,MAAM,OAAO,CAAC;AAAA,MAChE,OAAO;AACL,kBAAU,KAAK,MAAM,KAAK;AAAA,MAC5B;AAEA,aAAO,OAAO,MAAM,CAAC;AAAA,IACvB;AAGA,aAAS,aAAaH,SAAQ;AAC5B,UAAI,SAAS;AACb,UAAI,MAAM;AACV,UAAI;AAEJ,eAASK,MAAI,GAAGA,MAAIL,QAAO,QAAQK,OAAK;AACtC,eAAOL,QAAO,WAAWK,GAAC;AAE1B,YAAI,QAAQ,SAAU,QAAQ,OAA4B;AACxD,qBAAWL,QAAO,WAAWK,MAAI,CAAC;AAClC,cAAI,YAAY,SAAU,YAAY,OAA2B;AAE/D,sBAAU,WAAW,OAAO,SAAU,OAAQ,WAAW,QAAS,KAAO;AAEzE,YAAAA;AAAK;AAAA,UACP;AAAA,QACF;AACA,oBAAY,iBAAiB,IAAI;AACjC,kBAAU,CAAC,aAAa,YAAY,IAAI,IACpCL,QAAOK,GAAC,IACR,aAAa,UAAU,IAAI;AAAA,MACjC;AAEA,aAAO;AAAA,IACT;AAEA,aAAS,kBAAkB,OAAO,OAAO,QAAQ;AAC/C,UAAI,UAAU,IACV,OAAU,MAAM,KAChBP,QACA;AAEJ,WAAKA,SAAQ,GAAG,SAAS,OAAO,QAAQA,SAAQ,QAAQA,UAAS,GAAG;AAElE,YAAI,UAAU,OAAO,OAAO,OAAOA,MAAK,GAAG,OAAO,KAAK,GAAG;AACxD,cAAIA,WAAU,EAAG,YAAW,OAAO,CAAC,MAAM,eAAe,MAAM;AAC/D,qBAAW,MAAM;AAAA,QACnB;AAAA,MACF;AAEA,YAAM,MAAM;AACZ,YAAM,OAAO,MAAM,UAAU;AAAA,IAC/B;AAEA,aAAS,mBAAmB,OAAO,OAAO,QAAQ,SAAS;AACzD,UAAI,UAAU,IACV,OAAU,MAAM,KAChBA,QACA;AAEJ,WAAKA,SAAQ,GAAG,SAAS,OAAO,QAAQA,SAAQ,QAAQA,UAAS,GAAG;AAElE,YAAI,UAAU,OAAO,QAAQ,GAAG,OAAOA,MAAK,GAAG,MAAM,IAAI,GAAG;AAC1D,cAAI,CAAC,WAAWA,WAAU,GAAG;AAC3B,uBAAW,iBAAiB,OAAO,KAAK;AAAA,UAC1C;AAEA,cAAI,MAAM,QAAQ,mBAAmB,MAAM,KAAK,WAAW,CAAC,GAAG;AAC7D,uBAAW;AAAA,UACb,OAAO;AACL,uBAAW;AAAA,UACb;AAEA,qBAAW,MAAM;AAAA,QACnB;AAAA,MACF;AAEA,YAAM,MAAM;AACZ,YAAM,OAAO,WAAW;AAAA,IAC1B;AAEA,aAAS,iBAAiB,OAAO,OAAO,QAAQ;AAC9C,UAAI,UAAgB,IAChB,OAAgB,MAAM,KACtB,gBAAgB,OAAO,KAAK,MAAM,GAClCA,QACA,QACA,WACA,aACA;AAEJ,WAAKA,SAAQ,GAAG,SAAS,cAAc,QAAQA,SAAQ,QAAQA,UAAS,GAAG;AAEzE,qBAAa;AACb,YAAIA,WAAU,EAAG,eAAc;AAE/B,YAAI,MAAM,aAAc,eAAc;AAEtC,oBAAY,cAAcA,MAAK;AAC/B,sBAAc,OAAO,SAAS;AAE9B,YAAI,CAAC,UAAU,OAAO,OAAO,WAAW,OAAO,KAAK,GAAG;AACrD;AAAA,QACF;AAEA,YAAI,MAAM,KAAK,SAAS,KAAM,eAAc;AAE5C,sBAAc,MAAM,QAAQ,MAAM,eAAe,MAAM,MAAM,OAAO,MAAM,eAAe,KAAK;AAE9F,YAAI,CAAC,UAAU,OAAO,OAAO,aAAa,OAAO,KAAK,GAAG;AACvD;AAAA,QACF;AAEA,sBAAc,MAAM;AAGpB,mBAAW;AAAA,MACb;AAEA,YAAM,MAAM;AACZ,YAAM,OAAO,MAAM,UAAU;AAAA,IAC/B;AAEA,aAAS,kBAAkB,OAAO,OAAO,QAAQ,SAAS;AACxD,UAAI,UAAgB,IAChB,OAAgB,MAAM,KACtB,gBAAgB,OAAO,KAAK,MAAM,GAClCA,QACA,QACA,WACA,aACA,cACA;AAGJ,UAAI,MAAM,aAAa,MAAM;AAE3B,sBAAc,KAAK;AAAA,MACrB,WAAW,OAAO,MAAM,aAAa,YAAY;AAE/C,sBAAc,KAAK,MAAM,QAAQ;AAAA,MACnC,WAAW,MAAM,UAAU;AAEzB,cAAM,IAAI,cAAc,0CAA0C;AAAA,MACpE;AAEA,WAAKA,SAAQ,GAAG,SAAS,cAAc,QAAQA,SAAQ,QAAQA,UAAS,GAAG;AACzE,qBAAa;AAEb,YAAI,CAAC,WAAWA,WAAU,GAAG;AAC3B,wBAAc,iBAAiB,OAAO,KAAK;AAAA,QAC7C;AAEA,oBAAY,cAAcA,MAAK;AAC/B,sBAAc,OAAO,SAAS;AAE9B,YAAI,CAAC,UAAU,OAAO,QAAQ,GAAG,WAAW,MAAM,MAAM,IAAI,GAAG;AAC7D;AAAA,QACF;AAEA,uBAAgB,MAAM,QAAQ,QAAQ,MAAM,QAAQ,OACpC,MAAM,QAAQ,MAAM,KAAK,SAAS;AAElD,YAAI,cAAc;AAChB,cAAI,MAAM,QAAQ,mBAAmB,MAAM,KAAK,WAAW,CAAC,GAAG;AAC7D,0BAAc;AAAA,UAChB,OAAO;AACL,0BAAc;AAAA,UAChB;AAAA,QACF;AAEA,sBAAc,MAAM;AAEpB,YAAI,cAAc;AAChB,wBAAc,iBAAiB,OAAO,KAAK;AAAA,QAC7C;AAEA,YAAI,CAAC,UAAU,OAAO,QAAQ,GAAG,aAAa,MAAM,YAAY,GAAG;AACjE;AAAA,QACF;AAEA,YAAI,MAAM,QAAQ,mBAAmB,MAAM,KAAK,WAAW,CAAC,GAAG;AAC7D,wBAAc;AAAA,QAChB,OAAO;AACL,wBAAc;AAAA,QAChB;AAEA,sBAAc,MAAM;AAGpB,mBAAW;AAAA,MACb;AAEA,YAAM,MAAM;AACZ,YAAM,OAAO,WAAW;AAAA,IAC1B;AAEA,aAAS,WAAW,OAAO,QAAQ,UAAU;AAC3C,UAAI,SAAS,UAAUA,QAAO,QAAQC,OAAM;AAE5C,iBAAW,WAAW,MAAM,gBAAgB,MAAM;AAElD,WAAKD,SAAQ,GAAG,SAAS,SAAS,QAAQA,SAAQ,QAAQA,UAAS,GAAG;AACpE,QAAAC,QAAO,SAASD,MAAK;AAErB,aAAKC,MAAK,cAAeA,MAAK,eACzB,CAACA,MAAK,cAAgB,OAAO,WAAW,YAAc,kBAAkBA,MAAK,gBAC7E,CAACA,MAAK,aAAcA,MAAK,UAAU,MAAM,IAAI;AAEhD,gBAAM,MAAM,WAAWA,MAAK,MAAM;AAElC,cAAIA,MAAK,WAAW;AAClB,oBAAQ,MAAM,SAASA,MAAK,GAAG,KAAKA,MAAK;AAEzC,gBAAI,UAAU,KAAKA,MAAK,SAAS,MAAM,qBAAqB;AAC1D,wBAAUA,MAAK,UAAU,QAAQ,KAAK;AAAA,YACxC,WAAW,gBAAgB,KAAKA,MAAK,WAAW,KAAK,GAAG;AACtD,wBAAUA,MAAK,UAAU,KAAK,EAAE,QAAQ,KAAK;AAAA,YAC/C,OAAO;AACL,oBAAM,IAAI,cAAc,OAAOA,MAAK,MAAM,iCAAiC,QAAQ,SAAS;AAAA,YAC9F;AAEA,kBAAM,OAAO;AAAA,UACf;AAEA,iBAAO;AAAA,QACT;AAAA,MACF;AAEA,aAAO;AAAA,IACT;AAKA,aAAS,UAAU,OAAO,OAAO,QAAQ,OAAO,SAAS,OAAO;AAC9D,YAAM,MAAM;AACZ,YAAM,OAAO;AAEb,UAAI,CAAC,WAAW,OAAO,QAAQ,KAAK,GAAG;AACrC,mBAAW,OAAO,QAAQ,IAAI;AAAA,MAChC;AAEA,UAAIA,QAAO,UAAU,KAAK,MAAM,IAAI;AAEpC,UAAI,OAAO;AACT,gBAAS,MAAM,YAAY,KAAK,MAAM,YAAY;AAAA,MACpD;AAEA,UAAI,gBAAgBA,UAAS,qBAAqBA,UAAS,kBACvD,gBACA;AAEJ,UAAI,eAAe;AACjB,yBAAiB,MAAM,WAAW,QAAQ,MAAM;AAChD,oBAAY,mBAAmB;AAAA,MACjC;AAEA,UAAK,MAAM,QAAQ,QAAQ,MAAM,QAAQ,OAAQ,aAAc,MAAM,WAAW,KAAK,QAAQ,GAAI;AAC/F,kBAAU;AAAA,MACZ;AAEA,UAAI,aAAa,MAAM,eAAe,cAAc,GAAG;AACrD,cAAM,OAAO,UAAU;AAAA,MACzB,OAAO;AACL,YAAI,iBAAiB,aAAa,CAAC,MAAM,eAAe,cAAc,GAAG;AACvE,gBAAM,eAAe,cAAc,IAAI;AAAA,QACzC;AACA,YAAIA,UAAS,mBAAmB;AAC9B,cAAI,SAAU,OAAO,KAAK,MAAM,IAAI,EAAE,WAAW,GAAI;AACnD,8BAAkB,OAAO,OAAO,MAAM,MAAM,OAAO;AACnD,gBAAI,WAAW;AACb,oBAAM,OAAO,UAAU,iBAAiB,MAAM;AAAA,YAChD;AAAA,UACF,OAAO;AACL,6BAAiB,OAAO,OAAO,MAAM,IAAI;AACzC,gBAAI,WAAW;AACb,oBAAM,OAAO,UAAU,iBAAiB,MAAM,MAAM;AAAA,YACtD;AAAA,UACF;AAAA,QACF,WAAWA,UAAS,kBAAkB;AACpC,cAAI,aAAc,MAAM,iBAAkB,QAAQ,IAAM,QAAQ,IAAI;AACpE,cAAI,SAAU,MAAM,KAAK,WAAW,GAAI;AACtC,+BAAmB,OAAO,YAAY,MAAM,MAAM,OAAO;AACzD,gBAAI,WAAW;AACb,oBAAM,OAAO,UAAU,iBAAiB,MAAM;AAAA,YAChD;AAAA,UACF,OAAO;AACL,8BAAkB,OAAO,YAAY,MAAM,IAAI;AAC/C,gBAAI,WAAW;AACb,oBAAM,OAAO,UAAU,iBAAiB,MAAM,MAAM;AAAA,YACtD;AAAA,UACF;AAAA,QACF,WAAWA,UAAS,mBAAmB;AACrC,cAAI,MAAM,QAAQ,KAAK;AACrB,wBAAY,OAAO,MAAM,MAAM,OAAO,KAAK;AAAA,UAC7C;AAAA,QACF,OAAO;AACL,cAAI,MAAM,YAAa,QAAO;AAC9B,gBAAM,IAAI,cAAc,4CAA4CA,KAAI;AAAA,QAC1E;AAEA,YAAI,MAAM,QAAQ,QAAQ,MAAM,QAAQ,KAAK;AAC3C,gBAAM,OAAO,OAAO,MAAM,MAAM,OAAO,MAAM;AAAA,QAC/C;AAAA,MACF;AAEA,aAAO;AAAA,IACT;AAEA,aAAS,uBAAuB,QAAQ,OAAO;AAC7C,UAAI,UAAU,CAAC,GACX,oBAAoB,CAAC,GACrBD,QACA;AAEJ,kBAAY,QAAQ,SAAS,iBAAiB;AAE9C,WAAKA,SAAQ,GAAG,SAAS,kBAAkB,QAAQA,SAAQ,QAAQA,UAAS,GAAG;AAC7E,cAAM,WAAW,KAAK,QAAQ,kBAAkBA,MAAK,CAAC,CAAC;AAAA,MACzD;AACA,YAAM,iBAAiB,IAAI,MAAM,MAAM;AAAA,IACzC;AAEA,aAAS,YAAY,QAAQ,SAAS,mBAAmB;AACvD,UAAI,eACAA,QACA;AAEJ,UAAI,WAAW,QAAQ,OAAO,WAAW,UAAU;AACjD,QAAAA,SAAQ,QAAQ,QAAQ,MAAM;AAC9B,YAAIA,WAAU,IAAI;AAChB,cAAI,kBAAkB,QAAQA,MAAK,MAAM,IAAI;AAC3C,8BAAkB,KAAKA,MAAK;AAAA,UAC9B;AAAA,QACF,OAAO;AACL,kBAAQ,KAAK,MAAM;AAEnB,cAAI,MAAM,QAAQ,MAAM,GAAG;AACzB,iBAAKA,SAAQ,GAAG,SAAS,OAAO,QAAQA,SAAQ,QAAQA,UAAS,GAAG;AAClE,0BAAY,OAAOA,MAAK,GAAG,SAAS,iBAAiB;AAAA,YACvD;AAAA,UACF,OAAO;AACL,4BAAgB,OAAO,KAAK,MAAM;AAElC,iBAAKA,SAAQ,GAAG,SAAS,cAAc,QAAQA,SAAQ,QAAQA,UAAS,GAAG;AACzE,0BAAY,OAAO,cAAcA,MAAK,CAAC,GAAG,SAAS,iBAAiB;AAAA,YACtE;AAAA,UACF;AAAA,QACF;AAAA,MACF;AAAA,IACF;AAEA,aAAS,KAAK,OAAO,SAAS;AAC5B,gBAAU,WAAW,CAAC;AAEtB,UAAI,QAAQ,IAAI,MAAM,OAAO;AAE7B,UAAI,CAAC,MAAM,OAAQ,wBAAuB,OAAO,KAAK;AAEtD,UAAI,UAAU,OAAO,GAAG,OAAO,MAAM,IAAI,EAAG,QAAO,MAAM,OAAO;AAEhE,aAAO;AAAA,IACT;AAEA,aAAS,SAAS,OAAO,SAAS;AAChC,aAAO,KAAK,OAAO,OAAO,OAAO,EAAE,QAAQ,oBAAoB,GAAG,OAAO,CAAC;AAAA,IAC5E;AAEA,WAAO,QAAQ,OAAW;AAC1B,WAAO,QAAQ,WAAW;AAAA;AAAA;;;ACj1B1B;AAAA;AAAA;AAGA,QAAI,SAAS;AACb,QAAI,SAAS;AAGb,aAAS,WAAW,MAAM;AACxB,aAAO,WAAY;AACjB,cAAM,IAAI,MAAM,cAAc,OAAO,oCAAoC;AAAA,MAC3E;AAAA,IACF;AAGA,WAAO,QAAQ,OAAsB;AACrC,WAAO,QAAQ,SAAsB;AACrC,WAAO,QAAQ,kBAAsB;AACrC,WAAO,QAAQ,cAAsB;AACrC,WAAO,QAAQ,cAAsB;AACrC,WAAO,QAAQ,sBAAsB;AACrC,WAAO,QAAQ,sBAAsB;AACrC,WAAO,QAAQ,OAAsB,OAAO;AAC5C,WAAO,QAAQ,UAAsB,OAAO;AAC5C,WAAO,QAAQ,WAAsB,OAAO;AAC5C,WAAO,QAAQ,cAAsB,OAAO;AAC5C,WAAO,QAAQ,OAAsB,OAAO;AAC5C,WAAO,QAAQ,WAAsB,OAAO;AAC5C,WAAO,QAAQ,gBAAsB;AAGrC,WAAO,QAAQ,iBAAiB;AAChC,WAAO,QAAQ,cAAiB;AAChC,WAAO,QAAQ,iBAAiB;AAGhC,WAAO,QAAQ,OAAiB,WAAW,MAAM;AACjD,WAAO,QAAQ,QAAiB,WAAW,OAAO;AAClD,WAAO,QAAQ,UAAiB,WAAW,SAAS;AACpD,WAAO,QAAQ,iBAAiB,WAAW,gBAAgB;AAAA;AAAA;;;ACtC3D,IAAAY,mBAAA;AAAA;AAAA;AAGA,QAAI,OAAO;AAGX,WAAO,UAAU;AAAA;AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACNjB,QAAA,SAAAC,cAAA,kBAAA;AAES,YAAA,SAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACFT,QAAAC,YAAAC,cAAA,2BAAA;AAEW,YAAA,qBAAqB,OAC9B,eACA,aAAyC,CAAA,MACzB;AAChB,aAAOD,UAAQ,OAAO,SAAS,aAAa;IAC9C;AAEW,YAAA,qBAAqB,OAC9B,WACA,aAAyC,CAAA,MACtB;AACnB,aAAOA,UAAQ,OAAO,SAAS,SAAS;IAC1C;;;;;ACPO,SAAS,KAAK,OAAO;AAC1B,MAAI,OAAO;AACT,UAAM;AAAA,EACR;AACF;AAXA;AAAA;AAAA;AAAA;;;ACAA;AAAA;AAAA;AAEA,QAAI,SAAS,OAAO,UAAU;AAC9B,QAAI,QAAQ,OAAO,UAAU;AAC7B,QAAI,iBAAiB,OAAO;AAC5B,QAAI,OAAO,OAAO;AAElB,QAAIE,WAAU,SAASA,SAAQ,KAAK;AACnC,UAAI,OAAO,MAAM,YAAY,YAAY;AACxC,eAAO,MAAM,QAAQ,GAAG;AAAA,MACzB;AAEA,aAAO,MAAM,KAAK,GAAG,MAAM;AAAA,IAC5B;AAEA,QAAIC,iBAAgB,SAASA,eAAc,KAAK;AAC/C,UAAI,CAAC,OAAO,MAAM,KAAK,GAAG,MAAM,mBAAmB;AAClD,eAAO;AAAA,MACR;AAEA,UAAI,oBAAoB,OAAO,KAAK,KAAK,aAAa;AACtD,UAAI,mBAAmB,IAAI,eAAe,IAAI,YAAY,aAAa,OAAO,KAAK,IAAI,YAAY,WAAW,eAAe;AAE7H,UAAI,IAAI,eAAe,CAAC,qBAAqB,CAAC,kBAAkB;AAC/D,eAAO;AAAA,MACR;AAIA,UAAIC;AACJ,WAAKA,QAAO,KAAK;AAAA,MAAO;AAExB,aAAO,OAAOA,SAAQ,eAAe,OAAO,KAAK,KAAKA,IAAG;AAAA,IAC1D;AAGA,QAAI,cAAc,SAASC,aAAY,QAAQ,SAAS;AACvD,UAAI,kBAAkB,QAAQ,SAAS,aAAa;AACnD,uBAAe,QAAQ,QAAQ,MAAM;AAAA,UACpC,YAAY;AAAA,UACZ,cAAc;AAAA,UACd,OAAO,QAAQ;AAAA,UACf,UAAU;AAAA,QACX,CAAC;AAAA,MACF,OAAO;AACN,eAAO,QAAQ,IAAI,IAAI,QAAQ;AAAA,MAChC;AAAA,IACD;AAGA,QAAI,cAAc,SAASC,aAAY,KAAK,MAAM;AACjD,UAAI,SAAS,aAAa;AACzB,YAAI,CAAC,OAAO,KAAK,KAAK,IAAI,GAAG;AAC5B,iBAAO;AAAA,QACR,WAAW,MAAM;AAGhB,iBAAO,KAAK,KAAK,IAAI,EAAE;AAAA,QACxB;AAAA,MACD;AAEA,aAAO,IAAI,IAAI;AAAA,IAChB;AAEA,WAAO,UAAU,SAASC,UAAS;AAClC,UAAI,SAAS,MAAM,KAAK,MAAM,aAAa;AAC3C,UAAI,SAAS,UAAU,CAAC;AACxB,UAAIC,MAAI;AACR,UAAI,SAAS,UAAU;AACvB,UAAI,OAAO;AAGX,UAAI,OAAO,WAAW,WAAW;AAChC,eAAO;AACP,iBAAS,UAAU,CAAC,KAAK,CAAC;AAE1B,QAAAA,MAAI;AAAA,MACL;AACA,UAAI,UAAU,QAAS,OAAO,WAAW,YAAY,OAAO,WAAW,YAAa;AACnF,iBAAS,CAAC;AAAA,MACX;AAEA,aAAOA,MAAI,QAAQ,EAAEA,KAAG;AACvB,kBAAU,UAAUA,GAAC;AAErB,YAAI,WAAW,MAAM;AAEpB,eAAK,QAAQ,SAAS;AACrB,kBAAM,YAAY,QAAQ,IAAI;AAC9B,mBAAO,YAAY,SAAS,IAAI;AAGhC,gBAAI,WAAW,MAAM;AAEpB,kBAAI,QAAQ,SAASL,eAAc,IAAI,MAAM,cAAcD,SAAQ,IAAI,KAAK;AAC3E,oBAAI,aAAa;AAChB,gCAAc;AACd,0BAAQ,OAAOA,SAAQ,GAAG,IAAI,MAAM,CAAC;AAAA,gBACtC,OAAO;AACN,0BAAQ,OAAOC,eAAc,GAAG,IAAI,MAAM,CAAC;AAAA,gBAC5C;AAGA,4BAAY,QAAQ,EAAE,MAAY,UAAUI,QAAO,MAAM,OAAO,IAAI,EAAE,CAAC;AAAA,cAGxE,WAAW,OAAO,SAAS,aAAa;AACvC,4BAAY,QAAQ,EAAE,MAAY,UAAU,KAAK,CAAC;AAAA,cACnD;AAAA,YACD;AAAA,UACD;AAAA,QACD;AAAA,MACD;AAGA,aAAO;AAAA,IACR;AAAA;AAAA;;;ACpHO,SAAS,UAAU,IAAI;AAC5B,SAAO;AACT;AAEO,SAAS,QAAQ;AAAC;AAElB,SAAS,KAAK;AAAC;AAEf,SAAS,cAAc;AAAC;AAR/B;AAAA;AAAA;AAAA;;;ACAe,SAAR,cAA+BE,QAAO;AAC5C,MAAI,OAAOA,WAAU,YAAYA,WAAU,MAAM;AAChD,WAAO;AAAA,EACR;AAEA,QAAM,YAAY,OAAO,eAAeA,MAAK;AAC7C,UAAQ,cAAc,QAAQ,cAAc,OAAO,aAAa,OAAO,eAAe,SAAS,MAAM,SAAS,EAAE,OAAO,eAAeA,WAAU,EAAE,OAAO,YAAYA;AACtK;AAPA;AAAA;AAAA;AAAA;;;ACsCO,SAAS,SAAS;AAEvB,QAAM,MAAM,CAAC;AAEb,QAAM,WAAW,EAAC,KAAK,IAAG;AAE1B,SAAO;AAGP,WAAS,OAAO,QAAQ;AACtB,QAAI,kBAAkB;AAEtB,UAAM,WAAW,OAAO,IAAI;AAE5B,QAAI,OAAO,aAAa,YAAY;AAClC,YAAM,IAAI,UAAU,6CAA6C,QAAQ;AAAA,IAC3E;AAEA,IAAAC,MAAK,MAAM,GAAG,MAAM;AAQpB,aAASA,MAAK,UAAU,QAAQ;AAC9B,YAAM,KAAK,IAAI,EAAE,eAAe;AAChC,UAAIC,SAAQ;AAEZ,UAAI,OAAO;AACT,iBAAS,KAAK;AACd;AAAA,MACF;AAGA,aAAO,EAAEA,SAAQ,OAAO,QAAQ;AAC9B,YAAI,OAAOA,MAAK,MAAM,QAAQ,OAAOA,MAAK,MAAM,QAAW;AACzD,iBAAOA,MAAK,IAAI,OAAOA,MAAK;AAAA,QAC9B;AAAA,MACF;AAGA,eAAS;AAGT,UAAI,IAAI;AACN,QAAAC,MAAK,IAAIF,KAAI,EAAE,GAAG,MAAM;AAAA,MAC1B,OAAO;AACL,iBAAS,MAAM,GAAG,MAAM;AAAA,MAC1B;AAAA,IACF;AAAA,EACF;AAGA,WAAS,IAAI,YAAY;AACvB,QAAI,OAAO,eAAe,YAAY;AACpC,YAAM,IAAI;AAAA,QACR,iDAAiD;AAAA,MACnD;AAAA,IACF;AAEA,QAAI,KAAK,UAAU;AACnB,WAAO;AAAA,EACT;AACF;AAkCO,SAASE,MAAK,YAAY,UAAU;AAEzC,MAAI;AAEJ,SAAO;AAQP,WAAS,WAAW,YAAY;AAC9B,UAAM,oBAAoB,WAAW,SAAS,WAAW;AAEzD,QAAI;AAEJ,QAAI,mBAAmB;AACrB,iBAAW,KAAK,IAAI;AAAA,IACtB;AAEA,QAAI;AACF,eAAS,WAAW,MAAM,MAAM,UAAU;AAAA,IAC5C,SAAS,OAAO;AACd,YAAM;AAAA;AAAA,QAAkC;AAAA;AAMxC,UAAI,qBAAqB,QAAQ;AAC/B,cAAM;AAAA,MACR;AAEA,aAAO,KAAK,SAAS;AAAA,IACvB;AAEA,QAAI,CAAC,mBAAmB;AACtB,UAAI,UAAU,OAAO,QAAQ,OAAO,OAAO,SAAS,YAAY;AAC9D,eAAO,KAAK,MAAM,IAAI;AAAA,MACxB,WAAW,kBAAkB,OAAO;AAClC,aAAK,MAAM;AAAA,MACb,OAAO;AACL,aAAK,MAAM;AAAA,MACb;AAAA,IACF;AAAA,EACF;AAOA,WAAS,KAAK,UAAU,QAAQ;AAC9B,QAAI,CAAC,QAAQ;AACX,eAAS;AACT,eAAS,OAAO,GAAG,MAAM;AAAA,IAC3B;AAAA,EACF;AAOA,WAAS,KAAKC,QAAO;AACnB,SAAK,MAAMA,MAAK;AAAA,EAClB;AACF;AA7MA;AAAA;AAAA;AAAA;;;ACAA;AAAA;AAQA;AAAA;AAAA;;;AC4BO,SAAS,kBAAkBC,QAAO;AAEvC,MAAI,CAACA,UAAS,OAAOA,WAAU,UAAU;AACvC,WAAO;AAAA,EACT;AAGA,MAAI,cAAcA,UAAS,UAAUA,QAAO;AAC1C,WAAO,SAASA,OAAM,QAAQ;AAAA,EAChC;AAGA,MAAI,WAAWA,UAAS,SAASA,QAAO;AACtC,WAAO,SAASA,MAAK;AAAA,EACvB;AAGA,MAAI,UAAUA,UAAS,YAAYA,QAAO;AACxC,WAAO,MAAMA,MAAK;AAAA,EACpB;AAGA,SAAO;AACT;AAMA,SAAS,MAAMC,QAAO;AACpB,SAAO,MAAMA,UAASA,OAAM,IAAI,IAAI,MAAM,MAAMA,UAASA,OAAM,MAAM;AACvE;AAMA,SAAS,SAAS,KAAK;AACrB,SAAO,MAAM,OAAO,IAAI,KAAK,IAAI,MAAM,MAAM,OAAO,IAAI,GAAG;AAC7D;AAMA,SAAS,MAAMD,QAAO;AACpB,SAAOA,UAAS,OAAOA,WAAU,WAAWA,SAAQ;AACtD;AAnFA,IAAAE,YAAA;AAAA;AAAA;AAAA;;;ACAA;AAAA;AAAA,IAAAC;AAAA;AAAA;;;ACAA,IA0Ba;AA1Bb,IAAAC,YAAA;AAAA;AAqBA;AAKO,IAAM,eAAN,cAA2B,MAAM;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,MAwDtC,YAAY,eAAe,wBAAwB,QAAQ;AACzD,cAAM;AAEN,YAAI,OAAO,2BAA2B,UAAU;AAC9C,mBAAS;AACT,mCAAyB;AAAA,QAC3B;AAGA,YAAI,SAAS;AAEb,YAAI,UAAU,CAAC;AACf,YAAI,cAAc;AAElB,YAAI,wBAAwB;AAE1B,cACE,UAAU,0BACV,YAAY,wBACZ;AACA,sBAAU,EAAC,OAAO,uBAAsB;AAAA,UAC1C,WAGE,WAAW,0BACX,SAAS,wBACT;AACA,sBAAU,EAAC,OAAO,uBAAsB;AAAA,UAC1C,WAES,UAAU,wBAAwB;AACzC,sBAAU;AAAA,cACR,WAAW,CAAC,sBAAsB;AAAA,cAClC,OAAO,uBAAuB;AAAA,YAChC;AAAA,UACF,OAEK;AACH,sBAAU,EAAC,GAAG,uBAAsB;AAAA,UACtC;AAAA,QACF;AAEA,YAAI,OAAO,kBAAkB,UAAU;AACrC,mBAAS;AAAA,QACX,WAES,CAAC,QAAQ,SAAS,eAAe;AACxC,wBAAc;AACd,mBAAS,cAAc;AACvB,kBAAQ,QAAQ;AAAA,QAClB;AAEA,YAAI,CAAC,QAAQ,UAAU,CAAC,QAAQ,UAAU,OAAO,WAAW,UAAU;AACpE,gBAAMC,SAAQ,OAAO,QAAQ,GAAG;AAEhC,cAAIA,WAAU,IAAI;AAChB,oBAAQ,SAAS;AAAA,UACnB,OAAO;AACL,oBAAQ,SAAS,OAAO,MAAM,GAAGA,MAAK;AACtC,oBAAQ,SAAS,OAAO,MAAMA,SAAQ,CAAC;AAAA,UACzC;AAAA,QACF;AAEA,YAAI,CAAC,QAAQ,SAAS,QAAQ,aAAa,QAAQ,WAAW;AAC5D,gBAAM,SAAS,QAAQ,UAAU,QAAQ,UAAU,SAAS,CAAC;AAE7D,cAAI,QAAQ;AACV,oBAAQ,QAAQ,OAAO;AAAA,UACzB;AAAA,QACF;AAEA,cAAM,QACJ,QAAQ,SAAS,WAAW,QAAQ,QAChC,QAAQ,MAAM,QACd,QAAQ;AAOd,aAAK,YAAY,QAAQ,aAAa;AAOtC,aAAK,QAAQ,QAAQ,SAAS;AAO9B,aAAK,SAAS,QAAQ,MAAM,SAAS;AAWrC,aAAK,QAAQ;AAOb,aAAK,OAAO;AAQZ,aAAK,UAAU;AAOf,aAAK,OAAO,QAAQ,MAAM,OAAO;AASjC,aAAK,OAAO,kBAAkB,QAAQ,KAAK,KAAK;AAOhD,aAAK,QAAQ,QAAQ,SAAS;AAO9B,aAAK,SAAS,KAAK;AAOnB,aAAK,SAAS,QAAQ,UAAU;AAOhC,aAAK,SAAS,QAAQ,UAAU;AAWhC,aAAK,QACH,eAAe,QAAQ,SAAS,OAAO,QAAQ,MAAM,UAAU,WAC3D,QAAQ,MAAM,QACd;AAYN,aAAK,SAAS;AAOd,aAAK,WAAW;AAOhB,aAAK,OAAO;AAUZ,aAAK,MAAM;AAAA,MACb;AAAA,IACF;AAEA,iBAAa,UAAU,OAAO;AAC9B,iBAAa,UAAU,OAAO;AAC9B,iBAAa,UAAU,SAAS;AAChC,iBAAa,UAAU,UAAU;AACjC,iBAAa,UAAU,QAAQ;AAC/B,iBAAa,UAAU,SAAS;AAChC,iBAAa,UAAU,OAAO;AAC9B,iBAAa,UAAU,YAAY;AACnC,iBAAa,UAAU,QAAQ;AAC/B,iBAAa,UAAU,QAAQ;AAC/B,iBAAa,UAAU,QAAQ;AAC/B,iBAAa,UAAU,SAAS;AAChC,iBAAa,UAAU,SAAS;AAAA;AAAA;;;ACzThC;AAAA;AAIA,IAAAC;AAAA;AAAA;;;AC6DA,SAAS,SAASC,OAAMC,UAAS;AAC/B,MAAIA,aAAY,UAAa,OAAOA,aAAY,UAAU;AACxD,UAAM,IAAI,UAAU,iCAAiC;AAAA,EACvD;AAEA,aAAWD,KAAI;AACf,MAAI,QAAQ;AACZ,MAAIE,OAAM;AACV,MAAIC,SAAQH,MAAK;AAEjB,MAAI;AAEJ,MACEC,aAAY,UACZA,SAAQ,WAAW,KACnBA,SAAQ,SAASD,MAAK,QACtB;AACA,WAAOG,UAAS;AACd,UAAIH,MAAK,YAAYG,MAAK,MAAM,IAAc;AAG5C,YAAI,cAAc;AAChB,kBAAQA,SAAQ;AAChB;AAAA,QACF;AAAA,MACF,WAAWD,OAAM,GAAG;AAGlB,uBAAe;AACf,QAAAA,OAAMC,SAAQ;AAAA,MAChB;AAAA,IACF;AAEA,WAAOD,OAAM,IAAI,KAAKF,MAAK,MAAM,OAAOE,IAAG;AAAA,EAC7C;AAEA,MAAID,aAAYD,OAAM;AACpB,WAAO;AAAA,EACT;AAEA,MAAI,mBAAmB;AACvB,MAAI,eAAeC,SAAQ,SAAS;AAEpC,SAAOE,UAAS;AACd,QAAIH,MAAK,YAAYG,MAAK,MAAM,IAAc;AAG5C,UAAI,cAAc;AAChB,gBAAQA,SAAQ;AAChB;AAAA,MACF;AAAA,IACF,OAAO;AACL,UAAI,mBAAmB,GAAG;AAGxB,uBAAe;AACf,2BAAmBA,SAAQ;AAAA,MAC7B;AAEA,UAAI,eAAe,IAAI;AAErB,YAAIH,MAAK,YAAYG,MAAK,MAAMF,SAAQ,YAAY,cAAc,GAAG;AACnE,cAAI,eAAe,GAAG;AAGpB,YAAAC,OAAMC;AAAA,UACR;AAAA,QACF,OAAO;AAGL,yBAAe;AACf,UAAAD,OAAM;AAAA,QACR;AAAA,MACF;AAAA,IACF;AAAA,EACF;AAEA,MAAI,UAAUA,MAAK;AACjB,IAAAA,OAAM;AAAA,EACR,WAAWA,OAAM,GAAG;AAClB,IAAAA,OAAMF,MAAK;AAAA,EACb;AAEA,SAAOA,MAAK,MAAM,OAAOE,IAAG;AAC9B;AAUA,SAAS,QAAQF,OAAM;AACrB,aAAWA,KAAI;AAEf,MAAIA,MAAK,WAAW,GAAG;AACrB,WAAO;AAAA,EACT;AAEA,MAAIE,OAAM;AACV,MAAIC,SAAQH,MAAK;AAEjB,MAAI;AAGJ,SAAO,EAAEG,QAAO;AACd,QAAIH,MAAK,YAAYG,MAAK,MAAM,IAAc;AAC5C,UAAI,gBAAgB;AAClB,QAAAD,OAAMC;AACN;AAAA,MACF;AAAA,IACF,WAAW,CAAC,gBAAgB;AAE1B,uBAAiB;AAAA,IACnB;AAAA,EACF;AAEA,SAAOD,OAAM,IACTF,MAAK,YAAY,CAAC,MAAM,KACtB,MACA,MACFE,SAAQ,KAAKF,MAAK,YAAY,CAAC,MAAM,KACnC,OACAA,MAAK,MAAM,GAAGE,IAAG;AACzB;AAUA,SAAS,QAAQF,OAAM;AACrB,aAAWA,KAAI;AAEf,MAAIG,SAAQH,MAAK;AAEjB,MAAIE,OAAM;AACV,MAAI,YAAY;AAChB,MAAI,WAAW;AAGf,MAAI,cAAc;AAElB,MAAI;AAEJ,SAAOC,UAAS;AACd,UAAMC,QAAOJ,MAAK,YAAYG,MAAK;AAEnC,QAAIC,UAAS,IAAc;AAGzB,UAAI,gBAAgB;AAClB,oBAAYD,SAAQ;AACpB;AAAA,MACF;AAEA;AAAA,IACF;AAEA,QAAID,OAAM,GAAG;AAGX,uBAAiB;AACjB,MAAAA,OAAMC,SAAQ;AAAA,IAChB;AAEA,QAAIC,UAAS,IAAc;AAEzB,UAAI,WAAW,GAAG;AAChB,mBAAWD;AAAA,MACb,WAAW,gBAAgB,GAAG;AAC5B,sBAAc;AAAA,MAChB;AAAA,IACF,WAAW,WAAW,IAAI;AAGxB,oBAAc;AAAA,IAChB;AAAA,EACF;AAEA,MACE,WAAW,KACXD,OAAM;AAAA,EAEN,gBAAgB;AAAA,EAEf,gBAAgB,KAAK,aAAaA,OAAM,KAAK,aAAa,YAAY,GACvE;AACA,WAAO;AAAA,EACT;AAEA,SAAOF,MAAK,MAAM,UAAUE,IAAG;AACjC;AAUA,SAAS,QAAQ,UAAU;AACzB,MAAIC,SAAQ;AAEZ,MAAI;AAEJ,SAAO,EAAEA,SAAQ,SAAS,QAAQ;AAChC,eAAW,SAASA,MAAK,CAAC;AAE1B,QAAI,SAASA,MAAK,GAAG;AACnB,eACE,WAAW,SAAY,SAASA,MAAK,IAAI,SAAS,MAAM,SAASA,MAAK;AAAA,IAC1E;AAAA,EACF;AAEA,SAAO,WAAW,SAAY,MAAME,WAAU,MAAM;AACtD;AAYA,SAASA,WAAUL,OAAM;AACvB,aAAWA,KAAI;AAEf,QAAM,WAAWA,MAAK,YAAY,CAAC,MAAM;AAGzC,MAAIM,SAAQ,gBAAgBN,OAAM,CAAC,QAAQ;AAE3C,MAAIM,OAAM,WAAW,KAAK,CAAC,UAAU;AACnC,IAAAA,SAAQ;AAAA,EACV;AAEA,MAAIA,OAAM,SAAS,KAAKN,MAAK,YAAYA,MAAK,SAAS,CAAC,MAAM,IAAY;AACxE,IAAAM,UAAS;AAAA,EACX;AAEA,SAAO,WAAW,MAAMA,SAAQA;AAClC;AAYA,SAAS,gBAAgBN,OAAM,gBAAgB;AAC7C,MAAI,SAAS;AACb,MAAI,oBAAoB;AACxB,MAAI,YAAY;AAChB,MAAI,OAAO;AACX,MAAIG,SAAQ;AAEZ,MAAIC;AAEJ,MAAI;AAEJ,SAAO,EAAED,UAASH,MAAK,QAAQ;AAC7B,QAAIG,SAAQH,MAAK,QAAQ;AACvB,MAAAI,QAAOJ,MAAK,YAAYG,MAAK;AAAA,IAC/B,WAAWC,UAAS,IAAc;AAChC;AAAA,IACF,OAAO;AACL,MAAAA,QAAO;AAAA,IACT;AAEA,QAAIA,UAAS,IAAc;AACzB,UAAI,cAAcD,SAAQ,KAAK,SAAS,GAAG;AAAA,MAE3C,WAAW,cAAcA,SAAQ,KAAK,SAAS,GAAG;AAChD,YACE,OAAO,SAAS,KAChB,sBAAsB,KACtB,OAAO,YAAY,OAAO,SAAS,CAAC,MAAM,MAC1C,OAAO,YAAY,OAAO,SAAS,CAAC,MAAM,IAC1C;AACA,cAAI,OAAO,SAAS,GAAG;AACrB,6BAAiB,OAAO,YAAY,GAAG;AAEvC,gBAAI,mBAAmB,OAAO,SAAS,GAAG;AACxC,kBAAI,iBAAiB,GAAG;AACtB,yBAAS;AACT,oCAAoB;AAAA,cACtB,OAAO;AACL,yBAAS,OAAO,MAAM,GAAG,cAAc;AACvC,oCAAoB,OAAO,SAAS,IAAI,OAAO,YAAY,GAAG;AAAA,cAChE;AAEA,0BAAYA;AACZ,qBAAO;AACP;AAAA,YACF;AAAA,UACF,WAAW,OAAO,SAAS,GAAG;AAC5B,qBAAS;AACT,gCAAoB;AACpB,wBAAYA;AACZ,mBAAO;AACP;AAAA,UACF;AAAA,QACF;AAEA,YAAI,gBAAgB;AAClB,mBAAS,OAAO,SAAS,IAAI,SAAS,QAAQ;AAC9C,8BAAoB;AAAA,QACtB;AAAA,MACF,OAAO;AACL,YAAI,OAAO,SAAS,GAAG;AACrB,oBAAU,MAAMH,MAAK,MAAM,YAAY,GAAGG,MAAK;AAAA,QACjD,OAAO;AACL,mBAASH,MAAK,MAAM,YAAY,GAAGG,MAAK;AAAA,QAC1C;AAEA,4BAAoBA,SAAQ,YAAY;AAAA,MAC1C;AAEA,kBAAYA;AACZ,aAAO;AAAA,IACT,WAAWC,UAAS,MAAgB,OAAO,IAAI;AAC7C;AAAA,IACF,OAAO;AACL,aAAO;AAAA,IACT;AAAA,EACF;AAEA,SAAO;AACT;AAUA,SAAS,WAAWJ,OAAM;AACxB,MAAI,OAAOA,UAAS,UAAU;AAC5B,UAAM,IAAI;AAAA,MACR,qCAAqC,KAAK,UAAUA,KAAI;AAAA,IAC1D;AAAA,EACF;AACF;AAvaA,IAmDa;AAnDb;AAAA;AAmDO,IAAM,UAAU,EAAC,UAAU,SAAS,SAAS,MAAM,KAAK,IAAG;AAAA;AAAA;;;AC9ClE,SAAS,MAAM;AACb,SAAO;AACT;AAPA,IAGa;AAHb;AAAA;AAGO,IAAM,UAAU,EAAC,IAAG;AAAA;AAAA;;;ACgBpB,SAAS,MAAM,eAAe;AACnC,SAAO;AAAA,IACL,kBAAkB,QAChB,OAAO,kBAAkB,YACzB,UAAU,iBACV,cAAc,QACd,cAAc,iBACd,cAAc;AAAA,IAEd,cAAc,SAAS;AAAA,EAC3B;AACF;AA9BA;AAAA;AAAA;AAAA;;;ACYO,SAAS,UAAUO,OAAM;AAC9B,MAAI,OAAOA,UAAS,UAAU;AAC5B,IAAAA,QAAO,IAAI,IAAIA,KAAI;AAAA,EACrB,WAAW,CAAC,MAAMA,KAAI,GAAG;AAEvB,UAAM,QAAQ,IAAI;AAAA,MAChB,iFACEA,QACA;AAAA,IACJ;AACA,UAAM,OAAO;AACb,UAAM;AAAA,EACR;AAEA,MAAIA,MAAK,aAAa,SAAS;AAE7B,UAAM,QAAQ,IAAI,UAAU,gCAAgC;AAC5D,UAAM,OAAO;AACb,UAAM;AAAA,EACR;AAEA,SAAO,oBAAoBA,KAAI;AACjC;AAUA,SAAS,oBAAoB,KAAK;AAChC,MAAI,IAAI,aAAa,IAAI;AAEvB,UAAM,QAAQ,IAAI;AAAA,MAChB;AAAA,IACF;AACA,UAAM,OAAO;AACb,UAAM;AAAA,EACR;AAEA,QAAM,WAAW,IAAI;AACrB,MAAIC,SAAQ;AAEZ,SAAO,EAAEA,SAAQ,SAAS,QAAQ;AAChC,QACE,SAAS,YAAYA,MAAK,MAAM,MAChC,SAAS,YAAYA,SAAQ,CAAC,MAAM,IACpC;AACA,YAAM,QAAQ,SAAS,YAAYA,SAAQ,CAAC;AAC5C,UAAI,UAAU,MAAgB,UAAU,KAAe;AAErD,cAAM,QAAQ,IAAI;AAAA,UAChB;AAAA,QACF;AACA,cAAM,OAAO;AACb,cAAM;AAAA,MACR;AAAA,IACF;AAAA,EACF;AAEA,SAAO,mBAAmB,QAAQ;AACpC;AA3EA;AAAA;AAAA;AAEA;AAAA;AAAA;;;ACykBA,SAAS,WAAW,MAAM,MAAM;AAC9B,MAAI,QAAQ,KAAK,SAAS,QAAQ,GAAG,GAAG;AACtC,UAAM,IAAI;AAAA,MACR,MAAM,OAAO,yCAAyC,QAAQ,MAAM;AAAA,IACtE;AAAA,EACF;AACF;AAYA,SAAS,eAAe,MAAM,MAAM;AAClC,MAAI,CAAC,MAAM;AACT,UAAM,IAAI,MAAM,MAAM,OAAO,mBAAmB;AAAA,EAClD;AACF;AAYA,SAASC,YAAWC,OAAM,MAAM;AAC9B,MAAI,CAACA,OAAM;AACT,UAAM,IAAI,MAAM,cAAc,OAAO,iCAAiC;AAAA,EACxE;AACF;AAUA,SAASC,cAAaC,QAAO;AAC3B,SAAO;AAAA,IACLA,UACE,OAAOA,WAAU,YACjB,gBAAgBA,UAChB,gBAAgBA;AAAA,EACpB;AACF;AAloBA,IAoBM,OASO;AA7Bb,IAAAC,YAAA;AAAA;AAUA;AACA;AACA;AACA;AAOA,IAAM;AAAA,IAA8B;AAAA,MAClC;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IACF;AAEO,IAAM,QAAN,MAAY;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,MAuBjB,YAAYD,QAAO;AAEjB,YAAI;AAEJ,YAAI,CAACA,QAAO;AACV,oBAAU,CAAC;AAAA,QACb,WAAW,MAAMA,MAAK,GAAG;AACvB,oBAAU,EAAC,MAAMA,OAAK;AAAA,QACxB,WAAW,OAAOA,WAAU,YAAYD,cAAaC,MAAK,GAAG;AAC3D,oBAAU,EAAC,OAAAA,OAAK;AAAA,QAClB,OAAO;AACL,oBAAUA;AAAA,QACZ;AAWA,aAAK,MAAM,SAAS,UAAU,KAAK,QAAQ,IAAI;AAU/C,aAAK,OAAO,CAAC;AASb,aAAK,UAAU,CAAC;AAOhB,aAAK,WAAW,CAAC;AAOjB,aAAK;AAYL,aAAK;AAUL,aAAK;AASL,aAAK;AAIL,YAAIE,SAAQ;AAEZ,eAAO,EAAEA,SAAQ,MAAM,QAAQ;AAC7B,gBAAMC,SAAQ,MAAMD,MAAK;AAIzB,cACEC,UAAS,WACT,QAAQA,MAAK,MAAM,UACnB,QAAQA,MAAK,MAAM,MACnB;AAEA,iBAAKA,MAAK,IAAIA,WAAU,YAAY,CAAC,GAAG,QAAQA,MAAK,CAAC,IAAI,QAAQA,MAAK;AAAA,UACzE;AAAA,QACF;AAGA,YAAI;AAGJ,aAAK,SAAS,SAAS;AAErB,cAAI,CAAC,MAAM,SAAS,KAAK,GAAG;AAE1B,iBAAK,KAAK,IAAI,QAAQ,KAAK;AAAA,UAC7B;AAAA,QACF;AAAA,MACF;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,MAQA,IAAI,WAAW;AACb,eAAO,OAAO,KAAK,SAAS,WACxB,QAAQ,SAAS,KAAK,IAAI,IAC1B;AAAA,MACN;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,MAcA,IAAI,SAASC,WAAU;AACrB,uBAAeA,WAAU,UAAU;AACnC,mBAAWA,WAAU,UAAU;AAC/B,aAAK,OAAO,QAAQ,KAAK,KAAK,WAAW,IAAIA,SAAQ;AAAA,MACvD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,MAQA,IAAI,UAAU;AACZ,eAAO,OAAO,KAAK,SAAS,WACxB,QAAQ,QAAQ,KAAK,IAAI,IACzB;AAAA,MACN;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,MAYA,IAAI,QAAQC,UAAS;AACnB,QAAAR,YAAW,KAAK,UAAU,SAAS;AACnC,aAAK,OAAO,QAAQ,KAAKQ,YAAW,IAAI,KAAK,QAAQ;AAAA,MACvD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,MAQA,IAAI,UAAU;AACZ,eAAO,OAAO,KAAK,SAAS,WACxB,QAAQ,QAAQ,KAAK,IAAI,IACzB;AAAA,MACN;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,MAcA,IAAI,QAAQC,UAAS;AACnB,mBAAWA,UAAS,SAAS;AAC7B,QAAAT,YAAW,KAAK,SAAS,SAAS;AAElC,YAAIS,UAAS;AACX,cAAIA,SAAQ,YAAY,CAAC,MAAM,IAAc;AAC3C,kBAAM,IAAI,MAAM,+BAA+B;AAAA,UACjD;AAEA,cAAIA,SAAQ,SAAS,KAAK,CAAC,GAAG;AAC5B,kBAAM,IAAI,MAAM,wCAAwC;AAAA,UAC1D;AAAA,QACF;AAEA,aAAK,OAAO,QAAQ,KAAK,KAAK,SAAS,KAAK,QAAQA,YAAW,GAAG;AAAA,MACpE;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,MAQA,IAAI,OAAO;AACT,eAAO,KAAK,QAAQ,KAAK,QAAQ,SAAS,CAAC;AAAA,MAC7C;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,MAcA,IAAI,KAAKR,OAAM;AACb,YAAI,MAAMA,KAAI,GAAG;AACf,UAAAA,QAAO,UAAUA,KAAI;AAAA,QACvB;AAEA,uBAAeA,OAAM,MAAM;AAE3B,YAAI,KAAK,SAASA,OAAM;AACtB,eAAK,QAAQ,KAAKA,KAAI;AAAA,QACxB;AAAA,MACF;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,MAQA,IAAI,OAAO;AACT,eAAO,OAAO,KAAK,SAAS,WACxB,QAAQ,SAAS,KAAK,MAAM,KAAK,OAAO,IACxC;AAAA,MACN;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,MAcA,IAAI,KAAK,MAAM;AACb,uBAAe,MAAM,MAAM;AAC3B,mBAAW,MAAM,MAAM;AACvB,aAAK,OAAO,QAAQ,KAAK,KAAK,WAAW,IAAI,QAAQ,KAAK,WAAW,GAAG;AAAA,MAC1E;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,MA+DA,KAAK,eAAe,wBAAwB,QAAQ;AAElD,cAAMS,WAAU,KAAK,QAAQ,eAAe,wBAAwB,MAAM;AAE1E,QAAAA,SAAQ,QAAQ;AAEhB,cAAMA;AAAA,MACR;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,MA4DA,KAAK,eAAe,wBAAwB,QAAQ;AAElD,cAAMA,WAAU,KAAK,QAAQ,eAAe,wBAAwB,MAAM;AAE1E,QAAAA,SAAQ,QAAQ;AAEhB,eAAOA;AAAA,MACT;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,MA4DA,QAAQ,eAAe,wBAAwB,QAAQ;AACrD,cAAMA,WAAU,IAAI;AAAA;AAAA,UAElB;AAAA,UACA;AAAA,UACA;AAAA,QACF;AAEA,YAAI,KAAK,MAAM;AACb,UAAAA,SAAQ,OAAO,KAAK,OAAO,MAAMA,SAAQ;AACzC,UAAAA,SAAQ,OAAO,KAAK;AAAA,QACtB;AAEA,QAAAA,SAAQ,QAAQ;AAEhB,aAAK,SAAS,KAAKA,QAAO;AAE1B,eAAOA;AAAA,MACT;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,MAeA,SAAS,UAAU;AACjB,YAAI,KAAK,UAAU,QAAW;AAC5B,iBAAO;AAAA,QACT;AAEA,YAAI,OAAO,KAAK,UAAU,UAAU;AAClC,iBAAO,KAAK;AAAA,QACd;AAEA,cAAMC,WAAU,IAAI,YAAY,YAAY,MAAS;AACrD,eAAOA,SAAQ,OAAO,KAAK,KAAK;AAAA,MAClC;AAAA,IACF;AAAA;AAAA;;;AC/jBA;AAAA;AACA,IAAAC;AAAA;AAAA;;;ACDA,IAAa;AAAb;AAAA;AAAO,IAAM;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,KAYP,SAAU,UAAU;AAClB,YAAMC,QAAO;AACb,YAAM,SAASA,MAAK;AACpB,YAAM;AAAA;AAAA;AAAA;AAAA,QAGJ,OAAO;AAAA;AAET,YAAMC,SAAQ,MAAM,QAAQ;AAE5B,YAAM,QAAQ,WAAY;AACxB,eAAOA,OAAM,MAAM,OAAO,SAAS;AAAA,MACrC;AAEA,aAAO,eAAe,OAAO,KAAK;AAclC,aAAO;AAAA,IACT;AAAA;AAAA;;;ACkpCN,SAAS,aAAa,MAAMC,QAAO;AACjC,MAAI,OAAOA,WAAU,YAAY;AAC/B,UAAM,IAAI,UAAU,aAAa,OAAO,oBAAoB;AAAA,EAC9D;AACF;AASA,SAAS,eAAe,MAAMA,QAAO;AACnC,MAAI,OAAOA,WAAU,YAAY;AAC/B,UAAM,IAAI,UAAU,aAAa,OAAO,sBAAsB;AAAA,EAChE;AACF;AASA,SAAS,eAAe,MAAM,QAAQ;AACpC,MAAI,QAAQ;AACV,UAAM,IAAI;AAAA,MACR,kBACE,OACA;AAAA,IACJ;AAAA,EACF;AACF;AAQA,SAAS,WAAWC,OAAM;AAGxB,MAAI,CAAC,cAAWA,KAAI,KAAK,OAAOA,MAAK,SAAS,UAAU;AACtD,UAAM,IAAI,UAAU,yBAAyBA,QAAO,GAAG;AAAA,EAEzD;AACF;AAUA,SAAS,WAAW,MAAM,WAAW,UAAU;AAC7C,MAAI,CAAC,UAAU;AACb,UAAM,IAAI;AAAA,MACR,MAAM,OAAO,4BAA4B,YAAY;AAAA,IACvD;AAAA,EACF;AACF;AAMA,SAAS,MAAMD,QAAO;AACpB,SAAO,gBAAgBA,MAAK,IAAIA,SAAQ,IAAI,MAAMA,MAAK;AACzD;AAMA,SAAS,gBAAgBA,QAAO;AAC9B,SAAO;AAAA,IACLA,UACE,OAAOA,WAAU,YACjB,aAAaA,UACb,cAAcA;AAAA,EAClB;AACF;AAMA,SAAS,gBAAgBA,QAAO;AAC9B,SAAO,OAAOA,WAAU,YAAYE,cAAaF,MAAK;AACxD;AAUA,SAASE,cAAaF,QAAO;AAC3B,SAAO;AAAA,IACLA,UACE,OAAOA,WAAU,YACjB,gBAAgBA,UAChB,gBAAgBA;AAAA,EACpB;AACF;AA1yCA,IA6VA,eAaM,KAeO,WAyzBA;AAlrCb,IAAAG,YAAA;AAAA;AA4VA;AACA,oBAAmB;AACnB;AACA;AACA;AACA;AACA;AAQA,IAAM,MAAM,CAAC,EAAE;AAeR,IAAM,YAAN,MAAM,mBAAkB,iBAAiB;AAAA;AAAA;AAAA;AAAA,MAI9C,cAAc;AAEZ,cAAM,MAAM;AAeZ,aAAK,WAAW;AAYhB,aAAK,SAAS;AAad,aAAK,YAAY,CAAC;AAalB,aAAK,WAAW;AAShB,aAAK,cAAc;AASnB,aAAK,SAAS;AASd,aAAK,YAAY,CAAC;AAUlB,aAAK,SAAS;AASd,aAAK,eAAe,OAAO;AAAA,MAC7B;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,MAaA,OAAO;AAEL,cAAM;AAAA;AAAA,UAEF,IAAI,WAAU;AAAA;AAElB,YAAIC,SAAQ;AAEZ,eAAO,EAAEA,SAAQ,KAAK,UAAU,QAAQ;AACtC,gBAAM,WAAW,KAAK,UAAUA,MAAK;AACrC,sBAAY,IAAI,GAAG,QAAQ;AAAA,QAC7B;AAEA,oBAAY,SAAK,cAAAC,SAAO,MAAM,CAAC,GAAG,KAAK,SAAS,CAAC;AAEjD,eAAO;AAAA,MACT;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,MA6DA,KAAKC,MAAKN,QAAO;AACf,YAAI,OAAOM,SAAQ,UAAU;AAE3B,cAAI,UAAU,WAAW,GAAG;AAC1B,2BAAe,QAAQ,KAAK,MAAM;AAClC,iBAAK,UAAUA,IAAG,IAAIN;AACtB,mBAAO;AAAA,UACT;AAGA,iBAAQ,IAAI,KAAK,KAAK,WAAWM,IAAG,KAAK,KAAK,UAAUA,IAAG,KAAM;AAAA,QACnE;AAGA,YAAIA,MAAK;AACP,yBAAe,QAAQ,KAAK,MAAM;AAClC,eAAK,YAAYA;AACjB,iBAAO;AAAA,QACT;AAGA,eAAO,KAAK;AAAA,MACd;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,MAmBA,SAAS;AACP,YAAI,KAAK,QAAQ;AACf,iBAAO;AAAA,QACT;AAKA,cAAMC;AAAA;AAAA;AAAA,UAAyD;AAAA;AAE/D,eAAO,EAAE,KAAK,cAAc,KAAK,UAAU,QAAQ;AACjD,gBAAM,CAAC,UAAU,GAAG,OAAO,IAAI,KAAK,UAAU,KAAK,WAAW;AAE9D,cAAI,QAAQ,CAAC,MAAM,OAAO;AACxB;AAAA,UACF;AAEA,cAAI,QAAQ,CAAC,MAAM,MAAM;AACvB,oBAAQ,CAAC,IAAI;AAAA,UACf;AAEA,gBAAM,cAAc,SAAS,KAAKA,OAAM,GAAG,OAAO;AAElD,cAAI,OAAO,gBAAgB,YAAY;AACrC,iBAAK,aAAa,IAAI,WAAW;AAAA,UACnC;AAAA,QACF;AAEA,aAAK,SAAS;AACd,aAAK,cAAc,OAAO;AAE1B,eAAO;AAAA,MACT;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,MAgBA,MAAM,MAAM;AACV,aAAK,OAAO;AACZ,cAAM,WAAW,MAAM,IAAI;AAC3B,cAAM,SAAS,KAAK,UAAU,KAAK;AACnC,qBAAa,SAAS,MAAM;AAC5B,eAAO,OAAO,OAAO,QAAQ,GAAG,QAAQ;AAAA,MAC1C;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,MA4CA,QAAQ,MAAM,MAAM;AAClB,cAAMA,QAAO;AAEb,aAAK,OAAO;AACZ,qBAAa,WAAW,KAAK,UAAU,KAAK,MAAM;AAClD,uBAAe,WAAW,KAAK,YAAY,KAAK,QAAQ;AAExD,eAAO,OAAO,SAAS,QAAW,IAAI,IAAI,IAAI,QAAQ,QAAQ;AAQ9D,iBAAS,SAASC,UAAS,QAAQ;AACjC,gBAAM,WAAW,MAAM,IAAI;AAG3B,gBAAM;AAAA;AAAA;AAAA,YAEsBD,MAAK,MAAM,QAAQ;AAAA;AAG/C,UAAAA,MAAK,IAAI,WAAW,UAAU,SAAU,OAAO,MAAME,OAAM;AACzD,gBAAI,SAAS,CAAC,QAAQ,CAACA,OAAM;AAC3B,qBAAO,SAAS,KAAK;AAAA,YACvB;AAIA,kBAAM;AAAA;AAAA;AAAA,cAEsB;AAAA;AAG5B,kBAAM,gBAAgBF,MAAK,UAAU,aAAaE,KAAI;AAEtD,gBAAI,gBAAgB,aAAa,GAAG;AAClC,cAAAA,MAAK,QAAQ;AAAA,YACf,OAAO;AACL,cAAAA,MAAK,SAAS;AAAA,YAChB;AAEA;AAAA,cAAS;AAAA;AAAA,cAAsDA;AAAA,YAAK;AAAA,UACtE,CAAC;AAOD,mBAAS,SAAS,OAAOA,OAAM;AAC7B,gBAAI,SAAS,CAACA,OAAM;AAClB,qBAAO,KAAK;AAAA,YACd,WAAWD,UAAS;AAClB,cAAAA,SAAQC,KAAI;AAAA,YACd,OAAO;AACL,iBAAO,MAAM,uCAAuC;AACpD,mBAAK,QAAWA,KAAI;AAAA,YACtB;AAAA,UACF;AAAA,QACF;AAAA,MACF;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,MAiCA,YAAY,MAAM;AAEhB,YAAI,WAAW;AAEf,YAAI;AAEJ,aAAK,OAAO;AACZ,qBAAa,eAAe,KAAK,UAAU,KAAK,MAAM;AACtD,uBAAe,eAAe,KAAK,YAAY,KAAK,QAAQ;AAE5D,aAAK,QAAQ,MAAM,QAAQ;AAC3B,mBAAW,eAAe,WAAW,QAAQ;AAC7C,WAAO,QAAQ,6CAA6C;AAE5D,eAAO;AAKP,iBAAS,SAAS,OAAOA,OAAM;AAC7B,qBAAW;AACX,eAAK,KAAK;AACV,mBAASA;AAAA,QACX;AAAA,MACF;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,MAwCA,IAAI,MAAM,MAAM,MAAM;AACpB,mBAAW,IAAI;AACf,aAAK,OAAO;AAEZ,cAAM,eAAe,KAAK;AAE1B,YAAI,CAAC,QAAQ,OAAO,SAAS,YAAY;AACvC,iBAAO;AACP,iBAAO;AAAA,QACT;AAEA,eAAO,OAAO,SAAS,QAAW,IAAI,IAAI,IAAI,QAAQ,QAAQ;AAW9D,iBAAS,SAASD,UAAS,QAAQ;AACjC;AAAA,YACE,OAAO,SAAS;AAAA,YAChB;AAAA,UACF;AACA,gBAAM,WAAW,MAAM,IAAI;AAC3B,uBAAa,IAAI,MAAM,UAAU,QAAQ;AAQzC,mBAAS,SAAS,OAAO,YAAYC,OAAM;AACzC,kBAAM;AAAA;AAAA,cAEF,cAAc;AAAA;AAGlB,gBAAI,OAAO;AACT,qBAAO,KAAK;AAAA,YACd,WAAWD,UAAS;AAClB,cAAAA,SAAQ,aAAa;AAAA,YACvB,OAAO;AACL,iBAAO,MAAM,uCAAuC;AACpD,mBAAK,QAAW,eAAeC,KAAI;AAAA,YACrC;AAAA,UACF;AAAA,QACF;AAAA,MACF;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,MAmBA,QAAQ,MAAM,MAAM;AAElB,YAAI,WAAW;AAEf,YAAI;AAEJ,aAAK,IAAI,MAAM,MAAM,QAAQ;AAE7B,mBAAW,WAAW,OAAO,QAAQ;AACrC,WAAO,QAAQ,6CAA6C;AAC5D,eAAO;AAKP,iBAAS,SAAS,OAAOC,OAAM;AAC7B,eAAK,KAAK;AACV,mBAASA;AACT,qBAAW;AAAA,QACb;AAAA,MACF;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,MA+BA,UAAU,MAAM,MAAM;AACpB,aAAK,OAAO;AACZ,cAAM,WAAW,MAAM,IAAI;AAC3B,cAAMC,YAAW,KAAK,YAAY,KAAK;AACvC,uBAAe,aAAaA,SAAQ;AACpC,mBAAW,IAAI;AAEf,eAAOA,UAAS,MAAM,QAAQ;AAAA,MAChC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,MA2DA,IAAIX,WAAU,YAAY;AACxB,cAAM,YAAY,KAAK;AACvB,cAAMY,aAAY,KAAK;AAEvB,uBAAe,OAAO,KAAK,MAAM;AAEjC,YAAIZ,WAAU,QAAQA,WAAU,QAAW;AAAA,QAE3C,WAAW,OAAOA,WAAU,YAAY;AACtC,oBAAUA,QAAO,UAAU;AAAA,QAC7B,WAAW,OAAOA,WAAU,UAAU;AACpC,cAAI,MAAM,QAAQA,MAAK,GAAG;AACxB,oBAAQA,MAAK;AAAA,UACf,OAAO;AACL,sBAAUA,MAAK;AAAA,UACjB;AAAA,QACF,OAAO;AACL,gBAAM,IAAI,UAAU,iCAAiCA,SAAQ,GAAG;AAAA,QAClE;AAEA,eAAO;AAMP,iBAASa,KAAIb,QAAO;AAClB,cAAI,OAAOA,WAAU,YAAY;AAC/B,sBAAUA,QAAO,CAAC,CAAC;AAAA,UACrB,WAAW,OAAOA,WAAU,UAAU;AACpC,gBAAI,MAAM,QAAQA,MAAK,GAAG;AACxB,oBAAM,CAAC,QAAQ,GAAGc,WAAU;AAAA;AAAA,gBACkBd;AAAA;AAC9C,wBAAU,QAAQc,WAAU;AAAA,YAC9B,OAAO;AACL,wBAAUd,MAAK;AAAA,YACjB;AAAA,UACF,OAAO;AACL,kBAAM,IAAI,UAAU,iCAAiCA,SAAQ,GAAG;AAAA,UAClE;AAAA,QACF;AAMA,iBAAS,UAAU,QAAQ;AACzB,cAAI,EAAE,aAAa,WAAW,EAAE,cAAc,SAAS;AACrD,kBAAM,IAAI;AAAA,cACR;AAAA,YACF;AAAA,UACF;AAEA,kBAAQ,OAAO,OAAO;AAEtB,cAAI,OAAO,UAAU;AACnB,YAAAY,WAAU,eAAW,cAAAP,SAAO,MAAMO,WAAU,UAAU,OAAO,QAAQ;AAAA,UACvE;AAAA,QACF;AAMA,iBAAS,QAAQG,WAAS;AACxB,cAAIX,SAAQ;AAEZ,cAAIW,cAAY,QAAQA,cAAY,QAAW;AAAA,UAE/C,WAAW,MAAM,QAAQA,SAAO,GAAG;AACjC,mBAAO,EAAEX,SAAQW,UAAQ,QAAQ;AAC/B,oBAAM,QAAQA,UAAQX,MAAK;AAC3B,cAAAS,KAAI,KAAK;AAAA,YACX;AAAA,UACF,OAAO;AACL,kBAAM,IAAI,UAAU,sCAAsCE,YAAU,GAAG;AAAA,UACzE;AAAA,QACF;AAOA,iBAAS,UAAU,QAAQD,aAAY;AACrC,cAAIV,SAAQ;AACZ,cAAI,aAAa;AAEjB,iBAAO,EAAEA,SAAQ,UAAU,QAAQ;AACjC,gBAAI,UAAUA,MAAK,EAAE,CAAC,MAAM,QAAQ;AAClC,2BAAaA;AACb;AAAA,YACF;AAAA,UACF;AAEA,cAAI,eAAe,IAAI;AACrB,sBAAU,KAAK,CAAC,QAAQ,GAAGU,WAAU,CAAC;AAAA,UACxC,WAGSA,YAAW,SAAS,GAAG;AAC9B,gBAAI,CAAC,SAAS,GAAG,IAAI,IAAIA;AACzB,kBAAM,iBAAiB,UAAU,UAAU,EAAE,CAAC;AAC9C,gBAAI,cAAW,cAAc,KAAK,cAAW,OAAO,GAAG;AACrD,4BAAU,cAAAT,SAAO,MAAM,gBAAgB,OAAO;AAAA,YAChD;AAEA,sBAAU,UAAU,IAAI,CAAC,QAAQ,SAAS,GAAG,IAAI;AAAA,UACnD;AAAA,QACF;AAAA,MACF;AAAA,IACF;AA8BO,IAAM,UAAU,IAAI,UAAU,EAAE,OAAO;AAAA;AAAA;;;AClrC9C;AAAA;AACA,IAAAW;AAAA;AAAA;;;ACSO,SAAS,OAAOC,QAAO,WAAW;AACvC,QAAM,SAAS,OAAOA,MAAK;AAE3B,MAAI,OAAO,cAAc,UAAU;AACjC,UAAM,IAAI,UAAU,oBAAoB;AAAA,EAC1C;AAEA,MAAIC,SAAQ;AACZ,MAAIC,SAAQ,OAAO,QAAQ,SAAS;AAEpC,SAAOA,WAAU,IAAI;AACnB,IAAAD;AACA,IAAAC,SAAQ,OAAO,QAAQ,WAAWA,SAAQ,UAAU,MAAM;AAAA,EAC5D;AAEA,SAAOD;AACT;AA1BA;AAAA;AAAA;AAAA;;;ACuEO,SAAS,aAAaE,OAAM;AACjC;AAAA;AAAA;AAAA,IAGEA,UAAS,SAASA,QAAO,MAAMA,UAAS;AAAA;AAE5C;AAiEO,SAAS,mBAAmBA,OAAM;AACvC,SAAOA,UAAS,QAAQA,QAAO;AACjC;AAWO,SAAS,0BAA0BA,OAAM;AAC9C,SAAOA,UAAS,SAASA,QAAO,KAAKA,UAAS;AAChD;AAiBO,SAAS,cAAcA,OAAM;AAClC,SAAOA,UAAS,MAAMA,UAAS,MAAMA,UAAS;AAChD;AAuDA,SAAS,WAAW,OAAO;AACzB,SAAO;AAUP,WAAS,MAAMA,OAAM;AACnB,WAAOA,UAAS,QAAQA,QAAO,MAAM,MAAM,KAAK,OAAO,aAAaA,KAAI,CAAC;AAAA,EAC3E;AACF;AArPA,IAqBa,YAcA,mBAuBA,YAgCA,YAoBA,eAeA,kBA0EA,oBAsBA;AA7Nb;AAAA;AAqBO,IAAM,aAAa,WAAW,UAAU;AAcxC,IAAM,oBAAoB,WAAW,YAAY;AAuBjD,IAAM,aAAa,WAAW,qBAAqB;AAgCnD,IAAM,aAAa,WAAW,IAAI;AAoBlC,IAAM,gBAAgB,WAAW,YAAY;AAe7C,IAAM,mBAAmB,WAAW,gBAAgB;AA0EpD,IAAM,qBAAqB,WAAW,cAAc;AAsBpD,IAAM,oBAAoB,WAAW,IAAI;AAAA;AAAA;;;ACpChD,SAAS,WAAW,OAAO;AAEzB,QAAMC,UAAS,CAAC;AAChB,MAAIC,SAAQ;AAEZ,SAAO,EAAEA,SAAQ,MAAM,QAAQ;AAC7B,IAAAD,QAAOC,MAAK,IAAI,QAAQ,MAAMA,MAAK,CAAC;AAAA,EACtC;AAEA,SAAO,YAAY,GAAG;AAMtB,WAAS,OAAO,YAAY;AAC1B,QAAIA,SAAQ;AAEZ,WAAO,EAAEA,SAAQD,QAAO,QAAQ;AAC9B,UAAIA,QAAOC,MAAK,EAAE,MAAM,MAAM,UAAU,EAAG,QAAO;AAAA,IACpD;AAEA,WAAO;AAAA,EACT;AACF;AAQA,SAAS,kBAAkB,OAAO;AAChC,QAAM;AAAA;AAAA,IAAwD;AAAA;AAE9D,SAAO,YAAYC,IAAG;AAMtB,WAASA,KAAIC,OAAM;AACjB,UAAM;AAAA;AAAA;AAAA,MACoBA;AAAA;AAI1B,QAAIC;AAEJ,SAAKA,QAAO,OAAO;AACjB,UAAI,aAAaA,IAAG,MAAM,cAAcA,IAAG,EAAG,QAAO;AAAA,IACvD;AAEA,WAAO;AAAA,EACT;AACF;AAQA,SAAS,YAAY,OAAO;AAC1B,SAAO,YAAYC,KAAI;AAKvB,WAASA,MAAKF,OAAM;AAClB,WAAOA,SAAQA,MAAK,SAAS;AAAA,EAC/B;AACF;AAQA,SAAS,YAAY,cAAc;AACjC,SAAO;AAMP,WAAS,MAAMG,QAAOL,QAAO,QAAQ;AACnC,WAAO;AAAA,MACL,eAAeK,MAAK,KAClB,aAAa;AAAA,QACX;AAAA,QACAA;AAAA,QACA,OAAOL,WAAU,WAAWA,SAAQ;AAAA,QACpC,UAAU;AAAA,MACZ;AAAA,IACJ;AAAA,EACF;AACF;AAEA,SAASM,MAAK;AACZ,SAAO;AACT;AAMA,SAAS,eAAeD,QAAO;AAC7B,SAAOA,WAAU,QAAQ,OAAOA,WAAU,YAAY,UAAUA;AAClE;AAvSA,IAgEa,IA4EA;AA5Ib,IAAAE,YAAA;AAAA;AAgEO,IAAM;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,KAwBT,SAAUL,OAAM,MAAMF,QAAO,QAAQQ,UAAS;AAC5C,YAAM,QAAQ,QAAQ,IAAI;AAE1B,UACER,WAAU,UACVA,WAAU,SACT,OAAOA,WAAU,YAChBA,SAAQ,KACRA,WAAU,OAAO,oBACnB;AACA,cAAM,IAAI,MAAM,gCAAgC;AAAA,MAClD;AAEA,UACE,WAAW,UACX,WAAW,SACV,CAAC,GAAG,MAAM,KAAK,CAAC,OAAO,WACxB;AACA,cAAM,IAAI,MAAM,sBAAsB;AAAA,MACxC;AAEA,WACG,WAAW,UAAa,WAAW,WACnCA,WAAU,UAAaA,WAAU,OAClC;AACA,cAAM,IAAI,MAAM,gCAAgC;AAAA,MAClD;AAEA,aAAO,eAAeE,KAAI,IACtB,MAAM,KAAKM,UAASN,OAAMF,QAAO,MAAM,IACvC;AAAA,IACN;AAqBG,IAAM;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,KAgBT,SAAU,MAAM;AACd,UAAI,SAAS,QAAQ,SAAS,QAAW;AACvC,eAAOM;AAAA,MACT;AAEA,UAAI,OAAO,SAAS,YAAY;AAC9B,eAAO,YAAY,IAAI;AAAA,MACzB;AAEA,UAAI,OAAO,SAAS,UAAU;AAC5B,eAAO,MAAM,QAAQ,IAAI,IACrB,WAAW,IAAI;AAAA;AAAA;AAAA,UAGf;AAAA;AAAA,YAAwC;AAAA,UAAK;AAAA;AAAA,MACnD;AAEA,UAAI,OAAO,SAAS,UAAU;AAC5B,eAAO,YAAY,IAAI;AAAA,MACzB;AAEA,YAAM,IAAI,MAAM,8CAA8C;AAAA,IAChE;AAAA;AAAA;;;AClLJ;AAAA;AAMA,IAAAG;AAAA;AAAA;;;ACFO,SAAS,MAAMC,IAAG;AACvB,SAAOA;AACT;AANA;AAAA;AAAA;AAAA;;;ACgSO,SAAS,aAAa,MAAM,MAAM,SAAS,SAAS;AAEzD,MAAI;AAEJ,MAAI,OAAO,SAAS,cAAc,OAAO,YAAY,YAAY;AAC/D,cAAU;AAEV,cAAU;AAAA,EACZ,OAAO;AAEL,YAAQ;AAAA,EACV;AAEA,QAAMC,MAAK,QAAQ,KAAK;AACxB,QAAM,OAAO,UAAU,KAAK;AAE5B,UAAQ,MAAM,QAAW,CAAC,CAAC,EAAE;AAO7B,WAAS,QAAQC,OAAMC,QAAO,SAAS;AACrC,UAAMC;AAAA;AAAA,MACJF,SAAQ,OAAOA,UAAS,WAAWA,QAAO,CAAC;AAAA;AAG7C,QAAI,OAAOE,OAAM,SAAS,UAAU;AAClC,YAAM;AAAA;AAAA,QAEJ,OAAOA,OAAM,YAAY,WACrBA,OAAM;AAAA;AAAA,UAEN,OAAOA,OAAM,SAAS,WACpBA,OAAM,OACN;AAAA;AAAA;AAER,aAAO,eAAeC,QAAO,QAAQ;AAAA,QACnC,OACE,WAAW,MAAMH,MAAK,QAAQ,OAAO,MAAM,OAAO,MAAM,GAAG,IAAI;AAAA,MACnE,CAAC;AAAA,IACH;AAEA,WAAOG;AAEP,aAASA,SAAQ;AAEf,UAAI,SAASC;AAEb,UAAI;AAEJ,UAAI;AAEJ,UAAI;AAEJ,UAAI,CAAC,QAAQL,IAAGC,OAAMC,QAAO,QAAQ,QAAQ,SAAS,CAAC,KAAK,MAAS,GAAG;AAEtE,iBAAS,SAAS,QAAQD,OAAM,OAAO,CAAC;AAExC,YAAI,OAAO,CAAC,MAAM,MAAM;AACtB,iBAAO;AAAA,QACT;AAAA,MACF;AAEA,UAAI,cAAcA,SAAQA,MAAK,UAAU;AACvC,cAAM;AAAA;AAAA,UAA2CA;AAAA;AAEjD,YAAI,aAAa,YAAY,OAAO,CAAC,MAAM,MAAM;AAC/C,oBAAU,UAAU,aAAa,SAAS,SAAS,MAAM;AACzD,yBAAe,QAAQ,OAAO,YAAY;AAE1C,iBAAO,SAAS,MAAM,SAAS,aAAa,SAAS,QAAQ;AAC3D,kBAAM,QAAQ,aAAa,SAAS,MAAM;AAE1C,wBAAY,QAAQ,OAAO,QAAQ,YAAY,EAAE;AAEjD,gBAAI,UAAU,CAAC,MAAM,MAAM;AACzB,qBAAO;AAAA,YACT;AAEA,qBACE,OAAO,UAAU,CAAC,MAAM,WAAW,UAAU,CAAC,IAAI,SAAS;AAAA,UAC/D;AAAA,QACF;AAAA,MACF;AAEA,aAAO;AAAA,IACT;AAAA,EACF;AACF;AAUA,SAAS,SAASE,QAAO;AACvB,MAAI,MAAM,QAAQA,MAAK,GAAG;AACxB,WAAOA;AAAA,EACT;AAEA,MAAI,OAAOA,WAAU,UAAU;AAC7B,WAAO,CAAC,UAAUA,MAAK;AAAA,EACzB;AAEA,SAAOA,WAAU,QAAQA,WAAU,SAAYE,SAAQ,CAACF,MAAK;AAC/D;AA9YA,IAgOME,QAKO,UAKA,MAKA;AA/Ob,IAAAC,YAAA;AAAA;AA4NA;AACA;AAGA,IAAMD,SAAQ,CAAC;AAKR,IAAM,WAAW;AAKjB,IAAM,OAAO;AAKb,IAAM,OAAO;AAAA;AAAA;;;AC/OpB;AAAA;AACA,IAAAE;AAAA;AAAA;;;AC4EO,SAAS,eAAe,MAAMC,OAAM,SAAS;AAClD,QAAM,WAAW,WAAW,CAAC;AAC7B,QAAM,UAAU,QAAQ,SAAS,UAAU,CAAC,CAAC;AAC7C,QAAMC,SAAQ,QAAQD,KAAI;AAC1B,MAAI,YAAY;AAEhB,SAAO,EAAE,YAAYC,OAAM,QAAQ;AACjC,iBAAa,MAAM,QAAQ,OAAO;AAAA,EACpC;AAGA,WAAS,QAAQC,OAAM,SAAS;AAC9B,QAAIC,SAAQ;AAEZ,QAAI;AAEJ,WAAO,EAAEA,SAAQ,QAAQ,QAAQ;AAC/B,YAAM,SAAS,QAAQA,MAAK;AAE5B,YAAMC,YAAW,cAAc,YAAY,WAAW;AAEtD,UACE;AAAA,QACE;AAAA,QACAA,YAAWA,UAAS,QAAQ,MAAM,IAAI;AAAA,QACtC;AAAA,MACF,GACA;AACA;AAAA,MACF;AAEA,oBAAc;AAAA,IAChB;AAEA,QAAI,aAAa;AACf,aAAOC,SAAQH,OAAM,OAAO;AAAA,IAC9B;AAAA,EACF;AAYA,WAASG,SAAQH,OAAM,SAAS;AAC9B,UAAM,SAAS,QAAQ,QAAQ,SAAS,CAAC;AACzC,UAAMI,QAAOL,OAAM,SAAS,EAAE,CAAC;AAC/B,UAAMM,WAAUN,OAAM,SAAS,EAAE,CAAC;AAClC,QAAI,QAAQ;AAEZ,UAAMG,YAAW,OAAO;AACxB,UAAMD,SAAQC,UAAS,QAAQF,KAAI;AACnC,QAAI,SAAS;AAEb,QAAI,QAAQ,CAAC;AAEb,IAAAI,MAAK,YAAY;AAEjB,QAAIE,SAAQF,MAAK,KAAKJ,MAAK,KAAK;AAEhC,WAAOM,QAAO;AACZ,YAAMC,YAAWD,OAAM;AAEvB,YAAM,cAAc;AAAA,QAClB,OAAOA,OAAM;AAAA,QACb,OAAOA,OAAM;AAAA,QACb,OAAO,CAAC,GAAG,SAASN,KAAI;AAAA,MAC1B;AACA,UAAIQ,SAAQH,SAAQ,GAAGC,QAAO,WAAW;AAEzC,UAAI,OAAOE,WAAU,UAAU;AAC7B,QAAAA,SAAQA,OAAM,SAAS,IAAI,EAAC,MAAM,QAAQ,OAAAA,OAAK,IAAI;AAAA,MACrD;AAGA,UAAIA,WAAU,OAAO;AAInB,QAAAJ,MAAK,YAAYG,YAAW;AAAA,MAC9B,OAAO;AACL,YAAI,UAAUA,WAAU;AACtB,gBAAM,KAAK;AAAA,YACT,MAAM;AAAA,YACN,OAAOP,MAAK,MAAM,MAAM,OAAOO,SAAQ;AAAA,UACzC,CAAC;AAAA,QACH;AAEA,YAAI,MAAM,QAAQC,MAAK,GAAG;AACxB,gBAAM,KAAK,GAAGA,MAAK;AAAA,QACrB,WAAWA,QAAO;AAChB,gBAAM,KAAKA,MAAK;AAAA,QAClB;AAEA,gBAAQD,YAAWD,OAAM,CAAC,EAAE;AAC5B,iBAAS;AAAA,MACX;AAEA,UAAI,CAACF,MAAK,QAAQ;AAChB;AAAA,MACF;AAEA,MAAAE,SAAQF,MAAK,KAAKJ,MAAK,KAAK;AAAA,IAC9B;AAEA,QAAI,QAAQ;AACV,UAAI,QAAQA,MAAK,MAAM,QAAQ;AAC7B,cAAM,KAAK,EAAC,MAAM,QAAQ,OAAOA,MAAK,MAAM,MAAM,KAAK,EAAC,CAAC;AAAA,MAC3D;AAEA,aAAO,SAAS,OAAOC,QAAO,GAAG,GAAG,KAAK;AAAA,IAC3C,OAAO;AACL,cAAQ,CAACD,KAAI;AAAA,IACf;AAEA,WAAOC,SAAQ,MAAM;AAAA,EACvB;AACF;AAUA,SAAS,QAAQ,aAAa;AAE5B,QAAM,SAAS,CAAC;AAEhB,MAAI,CAAC,MAAM,QAAQ,WAAW,GAAG;AAC/B,UAAM,IAAI,UAAU,mDAAmD;AAAA,EACzE;AAIA,QAAMH,QACJ,CAAC,YAAY,CAAC,KAAK,MAAM,QAAQ,YAAY,CAAC,CAAC,IAC3C,cACA,CAAC,WAAW;AAElB,MAAIG,SAAQ;AAEZ,SAAO,EAAEA,SAAQH,MAAK,QAAQ;AAC5B,UAAM,QAAQA,MAAKG,MAAK;AACxB,WAAO,KAAK,CAAC,aAAa,MAAM,CAAC,CAAC,GAAG,WAAW,MAAM,CAAC,CAAC,CAAC,CAAC;AAAA,EAC5D;AAEA,SAAO;AACT;AAUA,SAAS,aAAaG,OAAM;AAC1B,SAAO,OAAOA,UAAS,WAAW,IAAI,OAAO,mBAAOA,KAAI,GAAG,GAAG,IAAIA;AACpE;AAUA,SAAS,WAAWC,UAAS;AAC3B,SAAO,OAAOA,aAAY,aACtBA,WACA,WAAY;AACV,WAAOA;AAAA,EACT;AACN;AApQA,IAAAI,YAAA;AAAA;AAyDA;AACA;AACA;AAAA;AAAA;;;AC3DA;AAAA;AAUA,IAAAC;AAAA;AAAA;;;ACcO,SAAS,iCAAiC;AAC/C,SAAO;AAAA,IACL,YAAY,CAAC,4BAA4B;AAAA,IACzC,OAAO;AAAA,MACL,iBAAiB;AAAA,MACjB,sBAAsB;AAAA,MACtB,qBAAqB;AAAA,MACrB,oBAAoB;AAAA,IACtB;AAAA,IACA,MAAM;AAAA,MACJ,iBAAiB;AAAA,MACjB,sBAAsB;AAAA,MACtB,qBAAqB;AAAA,MACrB,oBAAoB;AAAA,IACtB;AAAA,EACF;AACF;AASO,SAAS,+BAA+B;AAC7C,SAAO;AAAA,IACL,QAAQ;AAAA,MACN;AAAA,QACE,WAAW;AAAA,QACX,QAAQ;AAAA,QACR,OAAO;AAAA,QACP;AAAA,QACA;AAAA,MACF;AAAA,MACA;AAAA,QACE,WAAW;AAAA,QACX,QAAQ;AAAA,QACR,OAAO;AAAA,QACP;AAAA,QACA;AAAA,MACF;AAAA,MACA;AAAA,QACE,WAAW;AAAA,QACX,QAAQ;AAAA,QACR,OAAO;AAAA,QACP;AAAA,QACA;AAAA,MACF;AAAA,IACF;AAAA,EACF;AACF;AAMA,SAAS,qBAAqB,OAAO;AACnC,OAAK,MAAM,EAAC,MAAM,QAAQ,OAAO,MAAM,KAAK,IAAI,UAAU,CAAC,EAAC,GAAG,KAAK;AACtE;AAMA,SAAS,0BAA0B,OAAO;AACxC,OAAK,OAAO,MAAM,iBAAiB,KAAK,MAAM,KAAK;AACrD;AAMA,SAAS,wBAAwB,OAAO;AACtC,OAAK,OAAO,KAAK,iBAAiB,KAAK,MAAM,KAAK;AACpD;AAMA,SAAS,uBAAuB,OAAO;AACrC,OAAK,OAAO,KAAK,KAAK,KAAK,MAAM,KAAK;AACtC,QAAMC,QAAO,KAAK,MAAM,KAAK,MAAM,SAAS,CAAC;AAC7C,KAAOA,MAAK,SAAS,MAAM;AAC3B,EAAAA,MAAK,MAAM,YAAY,KAAK,eAAe,KAAK;AAClD;AAMA,SAAS,yBAAyB,OAAO;AACvC,OAAK,OAAO,KAAK,cAAc,KAAK,MAAM,KAAK;AACjD;AAMA,SAAS,oBAAoB,OAAO;AAClC,OAAK,KAAK,KAAK;AACjB;AAGA,SAAS,6BAA6B,MAAM;AAC1C;AAAA,IACE;AAAA,IACA;AAAA,MACE,CAAC,mDAAmD,OAAO;AAAA,MAC3D,CAAC,2DAA2D,SAAS;AAAA,IACvE;AAAA,IACA,EAAC,QAAQ,CAAC,QAAQ,eAAe,EAAC;AAAA,EACpC;AACF;AAYA,SAAS,QAAQC,IAAG,UAAUC,SAAQC,OAAMC,QAAO;AACjD,MAAIC,UAAS;AAGb,MAAI,CAAC,SAASD,MAAK,GAAG;AACpB,WAAO;AAAA,EACT;AAGA,MAAI,MAAM,KAAK,QAAQ,GAAG;AACxB,IAAAF,UAAS,WAAWA;AACpB,eAAW;AACX,IAAAG,UAAS;AAAA,EACX;AAEA,MAAI,CAAC,gBAAgBH,OAAM,GAAG;AAC5B,WAAO;AAAA,EACT;AAEA,QAAM,QAAQ,SAASA,UAASC,KAAI;AAEpC,MAAI,CAAC,MAAM,CAAC,EAAG,QAAO;AAGtB,QAAM,SAAS;AAAA,IACb,MAAM;AAAA,IACN,OAAO;AAAA,IACP,KAAKE,UAAS,WAAW,MAAM,CAAC;AAAA,IAChC,UAAU,CAAC,EAAC,MAAM,QAAQ,OAAO,WAAW,MAAM,CAAC,EAAC,CAAC;AAAA,EACvD;AAEA,MAAI,MAAM,CAAC,GAAG;AACZ,WAAO,CAAC,QAAQ,EAAC,MAAM,QAAQ,OAAO,MAAM,CAAC,EAAC,CAAC;AAAA,EACjD;AAEA,SAAO;AACT;AAUA,SAAS,UAAUJ,IAAG,OAAO,OAAOG,QAAO;AACzC;AAAA;AAAA,IAEE,CAAC,SAASA,QAAO,IAAI;AAAA,IAErB,UAAU,KAAK,KAAK;AAAA,IACpB;AACA,WAAO;AAAA,EACT;AAEA,SAAO;AAAA,IACL,MAAM;AAAA,IACN,OAAO;AAAA,IACP,KAAK,YAAY,QAAQ,MAAM;AAAA,IAC/B,UAAU,CAAC,EAAC,MAAM,QAAQ,OAAO,QAAQ,MAAM,MAAK,CAAC;AAAA,EACvD;AACF;AAMA,SAAS,gBAAgBF,SAAQ;AAC/B,QAAM,QAAQA,QAAO,MAAM,GAAG;AAE9B,MACE,MAAM,SAAS,KACd,MAAM,MAAM,SAAS,CAAC,MACpB,IAAI,KAAK,MAAM,MAAM,SAAS,CAAC,CAAC,KAC/B,CAAC,aAAa,KAAK,MAAM,MAAM,SAAS,CAAC,CAAC,MAC7C,MAAM,MAAM,SAAS,CAAC,MACpB,IAAI,KAAK,MAAM,MAAM,SAAS,CAAC,CAAC,KAC/B,CAAC,aAAa,KAAK,MAAM,MAAM,SAAS,CAAC,CAAC,IAC9C;AACA,WAAO;AAAA,EACT;AAEA,SAAO;AACT;AAMA,SAAS,SAAS,KAAK;AACrB,QAAM,YAAY,sBAAsB,KAAK,GAAG;AAEhD,MAAI,CAAC,WAAW;AACd,WAAO,CAAC,KAAK,MAAS;AAAA,EACxB;AAEA,QAAM,IAAI,MAAM,GAAG,UAAU,KAAK;AAElC,MAAII,SAAQ,UAAU,CAAC;AACvB,MAAI,oBAAoBA,OAAM,QAAQ,GAAG;AACzC,QAAM,gBAAgB,OAAO,KAAK,GAAG;AACrC,MAAI,gBAAgB,OAAO,KAAK,GAAG;AAEnC,SAAO,sBAAsB,MAAM,gBAAgB,eAAe;AAChE,WAAOA,OAAM,MAAM,GAAG,oBAAoB,CAAC;AAC3C,IAAAA,SAAQA,OAAM,MAAM,oBAAoB,CAAC;AACzC,wBAAoBA,OAAM,QAAQ,GAAG;AACrC;AAAA,EACF;AAEA,SAAO,CAAC,KAAKA,MAAK;AACpB;AAOA,SAAS,SAASF,QAAO,OAAO;AAC9B,QAAMG,QAAOH,OAAM,MAAM,WAAWA,OAAM,QAAQ,CAAC;AAEnD,UACGA,OAAM,UAAU,KACf,kBAAkBG,KAAI,KACtB,mBAAmBA,KAAI;AAAA,GAExB,CAAC,SAASA,UAAS;AAExB;AAvRA,IAaM,aAEA;AAfN,IAAAC,YAAA;AAAA;AAOA;AACA;AACA;AACA;AAGA,IAAM,cAAc;AAEpB,IAAM,iBAAiB,CAAC,YAAY,QAAQ,SAAS,OAAO;AAAA;AAAA;;;ACf5D;AAAA;AAAA,IAAAC;AAAA;AAAA;;;ACmBO,SAAS,oBAAoBC,QAAO;AACzC,SAAOA,OAEN,QAAQ,eAAe,GAAG,EAE1B,QAAQ,UAAU,EAAE,EAOpB,YAAY,EAAE,YAAY;AAC7B;AAhCA;AAAA;AAAA;AAAA;;;ACwBA,SAAS,0BAA0B;AACjC,OAAK,OAAO;AACd;AAMA,SAAS,kBAAkB,OAAO;AAChC,OAAK,MAAM,EAAC,MAAM,qBAAqB,YAAY,IAAI,OAAO,GAAE,GAAG,KAAK;AAC1E;AAMA,SAAS,qCAAqC;AAC5C,OAAK,OAAO;AACd;AAMA,SAAS,wBAAwB,OAAO;AACtC,OAAK;AAAA,IACH,EAAC,MAAM,sBAAsB,YAAY,IAAI,OAAO,IAAI,UAAU,CAAC,EAAC;AAAA,IACpE;AAAA,EACF;AACF;AAMA,SAAS,uBAAuB,OAAO;AACrC,QAAM,QAAQ,KAAK,OAAO;AAC1B,QAAMC,QAAO,KAAK,MAAM,KAAK,MAAM,SAAS,CAAC;AAC7C,KAAOA,MAAK,SAAS,mBAAmB;AACxC,EAAAA,MAAK,aAAa;AAAA,IAChB,KAAK,eAAe,KAAK;AAAA,EAC3B,EAAE,YAAY;AACd,EAAAA,MAAK,QAAQ;AACf;AAMA,SAAS,iBAAiB,OAAO;AAC/B,OAAK,KAAK,KAAK;AACjB;AAMA,SAAS,kCAAkC,OAAO;AAChD,QAAM,QAAQ,KAAK,OAAO;AAC1B,QAAMA,QAAO,KAAK,MAAM,KAAK,MAAM,SAAS,CAAC;AAC7C,KAAOA,MAAK,SAAS,oBAAoB;AACzC,EAAAA,MAAK,aAAa;AAAA,IAChB,KAAK,eAAe,KAAK;AAAA,EAC3B,EAAE,YAAY;AACd,EAAAA,MAAK,QAAQ;AACf;AAMA,SAAS,uBAAuB,OAAO;AACrC,OAAK,KAAK,KAAK;AACjB;AAGA,SAAS,wBAAwB;AAC/B,SAAO;AACT;AAMA,SAAS,kBAAkBA,OAAMC,IAAG,OAAO,MAAM;AAC/C,QAAM,UAAU,MAAM,cAAc,IAAI;AACxC,MAAIC,SAAQ,QAAQ,KAAK,IAAI;AAC7B,QAAMC,QAAO,MAAM,MAAM,mBAAmB;AAC5C,QAAM,UAAU,MAAM,MAAM,WAAW;AACvC,EAAAD,UAAS,QAAQ;AAAA,IACf,MAAM,KAAK,MAAM,cAAcF,KAAI,GAAG,EAAC,OAAO,KAAK,QAAQE,OAAK,CAAC;AAAA,EACnE;AACA,UAAQ;AACR,EAAAC,MAAK;AACL,EAAAD,UAAS,QAAQ,KAAK,GAAG;AACzB,SAAOA;AACT;AASO,SAAS,0BAA0B;AACxC,SAAO;AAAA,IACL,OAAO;AAAA,MACL,uBAAuB;AAAA,MACvB,iBAAiB;AAAA,MACjB,kCAAkC;AAAA,MAClC,uBAAuB;AAAA,IACzB;AAAA,IACA,MAAM;AAAA,MACJ,uBAAuB;AAAA,MACvB,iBAAiB;AAAA,MACjB,kCAAkC;AAAA,MAClC,uBAAuB;AAAA,IACzB;AAAA,EACF;AACF;AAWO,SAAS,sBAAsB,SAAS;AAE7C,MAAI,iBAAiB;AAErB,MAAI,WAAW,QAAQ,gBAAgB;AACrC,qBAAiB;AAAA,EACnB;AAEA,SAAO;AAAA,IACL,UAAU,EAAC,oBAAoB,kBAAiB;AAAA;AAAA,IAEhD,QAAQ,CAAC,EAAC,WAAW,KAAK,aAAa,CAAC,SAAS,YAAY,WAAW,EAAC,CAAC;AAAA,EAC5E;AAMA,WAAS,mBAAmBF,OAAMC,IAAG,OAAO,MAAM;AAChD,UAAM,UAAU,MAAM,cAAc,IAAI;AACxC,QAAIC,SAAQ,QAAQ,KAAK,IAAI;AAC7B,UAAMC,QAAO,MAAM,MAAM,oBAAoB;AAC7C,UAAM,UAAU,MAAM,MAAM,OAAO;AACnC,IAAAD,UAAS,QAAQ;AAAA,MACf,MAAM,KAAK,MAAM,cAAcF,KAAI,GAAG,EAAC,QAAQE,QAAO,OAAO,IAAG,CAAC;AAAA,IACnE;AACA,YAAQ;AAER,IAAAA,UAAS,QAAQ,KAAK,IAAI;AAE1B,QAAIF,MAAK,YAAYA,MAAK,SAAS,SAAS,GAAG;AAC7C,cAAQ,MAAM,CAAC;AAEf,MAAAE,UAAS,QAAQ;AAAA,SACd,iBAAiB,OAAO,OACvB,MAAM;AAAA,UACJ,MAAM,cAAcF,OAAM,QAAQ,QAAQ,CAAC;AAAA,UAC3C,iBAAiB,SAAS;AAAA,QAC5B;AAAA,MACJ;AAAA,IACF;AAEA,IAAAG,MAAK;AAEL,WAAOD;AAAA,EACT;AACF;AAGA,SAAS,eAAe,MAAME,QAAO,OAAO;AAC1C,SAAOA,WAAU,IAAI,OAAO,OAAO,MAAMA,QAAO,KAAK;AACvD;AAGA,SAAS,OAAO,MAAMA,QAAO,OAAO;AAClC,UAAQ,QAAQ,KAAK,UAAU;AACjC;AAnNA,IAAAC,aAAA;AAAA;AAeA;AACA;AAEA,sBAAkB,OAAO;AAAA;AAAA;;;AClBzB;AAAA;AACA,IAAAC;AAAA;AAAA;;;ACuCO,SAAS,+BAA+B;AAC7C,SAAO;AAAA,IACL,gBAAgB,CAAC,QAAQ;AAAA,IACzB,OAAO,EAAC,eAAe,mBAAkB;AAAA,IACzC,MAAM,EAAC,eAAe,kBAAiB;AAAA,EACzC;AACF;AASO,SAAS,6BAA6B;AAC3C,SAAO;AAAA,IACL,QAAQ;AAAA,MACN;AAAA,QACE,WAAW;AAAA,QACX,aAAa;AAAA,QACb,gBAAgB;AAAA,MAClB;AAAA,IACF;AAAA,IACA,UAAU,EAAC,QAAQ,aAAY;AAAA,EACjC;AACF;AAMA,SAAS,mBAAmB,OAAO;AACjC,OAAK,MAAM,EAAC,MAAM,UAAU,UAAU,CAAC,EAAC,GAAG,KAAK;AAClD;AAMA,SAAS,kBAAkB,OAAO;AAChC,OAAK,KAAK,KAAK;AACjB;AAMA,SAAS,aAAaC,OAAMC,IAAG,OAAO,MAAM;AAC1C,QAAM,UAAU,MAAM,cAAc,IAAI;AACxC,QAAMC,QAAO,MAAM,MAAM,eAAe;AACxC,MAAIC,SAAQ,QAAQ,KAAK,IAAI;AAC7B,EAAAA,UAAS,MAAM,kBAAkBH,OAAM;AAAA,IACrC,GAAG,QAAQ,QAAQ;AAAA,IACnB,QAAQG;AAAA,IACR,OAAO;AAAA,EACT,CAAC;AACD,EAAAA,UAAS,QAAQ,KAAK,IAAI;AAC1B,EAAAD,MAAK;AACL,SAAOC;AACT;AAGA,SAAS,aAAa;AACpB,SAAO;AACT;AAzGA,IAsBM;AAtBN,IAAAC,aAAA;AAAA;AAsBA,IAAM,iCAAiC;AAAA,MACrC;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IACF;AAEA,iBAAa,OAAO;AAAA;AAAA;;;AC/BpB;AAAA;AACA,IAAAC;AAAA;AAAA;;;ACwJA,SAAS,oBAAoBC,QAAO;AAClC,SAAOA,OAAM;AACf;AAcO,SAAS,cAAcC,QAAO,SAAS;AAC5C,QAAM,WAAW,WAAW,CAAC;AAE7B,QAAM,SAAS,SAAS,SAAS,CAAC,GAAG,OAAO;AAC5C,QAAM,eAAe,SAAS,gBAAgB;AAE9C,QAAM,aAAa,CAAC;AAEpB,QAAM,aAAa,CAAC;AAEpB,QAAM,aAAa,CAAC;AAEpB,QAAM,sBAAsB,CAAC;AAC7B,MAAI,kBAAkB;AACtB,MAAI,WAAW;AAIf,SAAO,EAAE,WAAWA,OAAM,QAAQ;AAEhC,UAAMC,OAAM,CAAC;AAEb,UAAMC,SAAQ,CAAC;AACf,QAAIC,eAAc;AAElB,QAAIH,OAAM,QAAQ,EAAE,SAAS,iBAAiB;AAC5C,wBAAkBA,OAAM,QAAQ,EAAE;AAAA,IACpC;AAEA,WAAO,EAAEG,eAAcH,OAAM,QAAQ,EAAE,QAAQ;AAC7C,YAAMI,QAAO,UAAUJ,OAAM,QAAQ,EAAEG,YAAW,CAAC;AAEnD,UAAI,SAAS,oBAAoB,OAAO;AACtC,cAAM,OAAO,aAAaC,KAAI;AAC9B,QAAAF,OAAMC,YAAW,IAAI;AAErB,YACE,oBAAoBA,YAAW,MAAM,UACrC,OAAO,oBAAoBA,YAAW,GACtC;AACA,8BAAoBA,YAAW,IAAI;AAAA,QACrC;AAAA,MACF;AAEA,MAAAF,KAAI,KAAKG,KAAI;AAAA,IACf;AAEA,eAAW,QAAQ,IAAIH;AACvB,eAAW,QAAQ,IAAIC;AAAA,EACzB;AAGA,MAAI,cAAc;AAElB,MAAI,OAAO,UAAU,YAAY,YAAY,OAAO;AAClD,WAAO,EAAE,cAAc,iBAAiB;AACtC,iBAAW,WAAW,IAAI,YAAY,MAAM,WAAW,CAAC;AAAA,IAC1D;AAAA,EACF,OAAO;AACL,UAAMG,QAAO,YAAY,KAAK;AAE9B,WAAO,EAAE,cAAc,iBAAiB;AACtC,iBAAW,WAAW,IAAIA;AAAA,IAC5B;AAAA,EACF;AAGA,gBAAc;AAEd,QAAM,MAAM,CAAC;AAEb,QAAM,QAAQ,CAAC;AAEf,SAAO,EAAE,cAAc,iBAAiB;AACtC,UAAMA,QAAO,WAAW,WAAW;AACnC,QAAI,SAAS;AACb,QAAI,QAAQ;AAEZ,QAAIA,UAAS,IAAc;AACzB,eAAS;AACT,cAAQ;AAAA,IACV,WAAWA,UAAS,KAAe;AACjC,eAAS;AAAA,IACX,WAAWA,UAAS,KAAe;AACjC,cAAQ;AAAA,IACV;AAGA,QAAI,OACF,SAAS,oBAAoB,QACzB,IACA,KAAK;AAAA,MACH;AAAA,MACA,oBAAoB,WAAW,IAAI,OAAO,SAAS,MAAM;AAAA,IAC3D;AAEN,UAAMD,QAAO,SAAS,IAAI,OAAO,IAAI,IAAI;AAEzC,QAAI,SAAS,oBAAoB,OAAO;AACtC,aAAO,OAAO,SAAS,OAAO,MAAM;AAEpC,UAAI,OAAO,oBAAoB,WAAW,GAAG;AAC3C,4BAAoB,WAAW,IAAI;AAAA,MACrC;AAEA,YAAM,WAAW,IAAI;AAAA,IACvB;AAEA,QAAI,WAAW,IAAIA;AAAA,EACrB;AAGA,aAAW,OAAO,GAAG,GAAG,GAAG;AAC3B,aAAW,OAAO,GAAG,GAAG,KAAK;AAE7B,aAAW;AAEX,QAAM,QAAQ,CAAC;AAEf,SAAO,EAAE,WAAW,WAAW,QAAQ;AACrC,UAAMH,OAAM,WAAW,QAAQ;AAC/B,UAAMC,SAAQ,WAAW,QAAQ;AACjC,kBAAc;AAEd,UAAM,OAAO,CAAC;AAEd,WAAO,EAAE,cAAc,iBAAiB;AACtC,YAAME,QAAOH,KAAI,WAAW,KAAK;AACjC,UAAI,SAAS;AACb,UAAI,QAAQ;AAEZ,UAAI,SAAS,oBAAoB,OAAO;AACtC,cAAM,OACJ,oBAAoB,WAAW,KAAKC,OAAM,WAAW,KAAK;AAC5D,cAAMG,QAAO,WAAW,WAAW;AAEnC,YAAIA,UAAS,KAAe;AAC1B,mBAAS,IAAI,OAAO,IAAI;AAAA,QAC1B,WAAWA,UAAS,IAAc;AAChC,cAAI,OAAO,GAAG;AACZ,qBAAS,IAAI,OAAO,OAAO,IAAI,GAAG;AAClC,oBAAQ,IAAI,OAAO,OAAO,IAAI,GAAG;AAAA,UACnC,OAAO;AACL,qBAAS,IAAI,OAAO,OAAO,CAAC;AAC5B,oBAAQ;AAAA,UACV;AAAA,QACF,OAAO;AACL,kBAAQ,IAAI,OAAO,IAAI;AAAA,QACzB;AAAA,MACF;AAEA,UAAI,SAAS,mBAAmB,SAAS,CAAC,aAAa;AACrD,aAAK,KAAK,GAAG;AAAA,MACf;AAEA,UACE,SAAS,YAAY;AAAA;AAAA,MAGrB,EAAE,SAAS,oBAAoB,SAASD,UAAS,QAChD,SAAS,mBAAmB,SAAS,cACtC;AACA,aAAK,KAAK,GAAG;AAAA,MACf;AAEA,UAAI,SAAS,oBAAoB,OAAO;AACtC,aAAK,KAAK,MAAM;AAAA,MAClB;AAEA,WAAK,KAAKA,KAAI;AAEd,UAAI,SAAS,oBAAoB,OAAO;AACtC,aAAK,KAAK,KAAK;AAAA,MACjB;AAEA,UAAI,SAAS,YAAY,OAAO;AAC9B,aAAK,KAAK,GAAG;AAAA,MACf;AAEA,UACE,SAAS,iBAAiB,SAC1B,gBAAgB,kBAAkB,GAClC;AACA,aAAK,KAAK,GAAG;AAAA,MACf;AAAA,IACF;AAEA,UAAM;AAAA,MACJ,SAAS,iBAAiB,QACtB,KAAK,KAAK,EAAE,EAAE,QAAQ,OAAO,EAAE,IAC/B,KAAK,KAAK,EAAE;AAAA,IAClB;AAAA,EACF;AAEA,SAAO,MAAM,KAAK,IAAI;AACxB;AAQA,SAAS,UAAUL,QAAO;AACxB,SAAOA,WAAU,QAAQA,WAAU,SAAY,KAAK,OAAOA,MAAK;AAClE;AAQA,SAAS,YAAYA,QAAO;AAC1B,QAAMM,QAAO,OAAON,WAAU,WAAWA,OAAM,YAAY,CAAC,IAAI;AAEhE,SAAOM,UAAS,MAAgBA,UAAS,KACrC,KACAA,UAAS,MAAgBA,UAAS,MAChC,MACAA,UAAS,MAAgBA,UAAS,MAChC,MACA;AACV;AAxYA;AAAA;AAAA;AAAA;;;AC+DO,SAAS,OAAOC,MAAK,SAAS;AACnC,QAAM,WAAW,WAAW,CAAC;AA8B7B,WAASC,KAAIC,WAAU,YAAY;AAEjC,QAAI,KAAKD,KAAI;AACb,UAAME,YAAWF,KAAI;AAErB,QAAIC,UAASE,KAAI,KAAKF,QAAOF,IAAG,GAAG;AAEjC,YAAM,KAAK,OAAOE,OAAMF,IAAG,CAAC;AAE5B,WAAKI,KAAI,KAAKD,WAAU,EAAE,IAAIA,UAAS,EAAE,IAAIF,KAAI;AAAA,IACnD;AAEA,QAAI,IAAI;AACN,aAAO,GAAG,KAAK,MAAMC,QAAO,GAAG,UAAU;AAAA,IAC3C;AAAA,EACF;AAEA,EAAAD,KAAI,WAAW,SAAS,YAAY,CAAC;AACrC,EAAAA,KAAI,UAAU,SAAS;AACvB,EAAAA,KAAI,UAAU,SAAS;AAGvB,SAAOA;AACT;AArHA,IAiDMG;AAjDN;AAAA;AAiDA,IAAMA,OAAM,CAAC,EAAE;AAAA;AAAA;;;ACtCR,SAAS,UAAU,MAAMC,YAAW;AACzC,MAAIC,SAAQ;AAEZ,MAAIC;AAGJ,MAAIF,WAAU,YAAY;AACxB,WAAO,EAAEC,SAAQD,WAAU,WAAW,QAAQ;AAC5C,gBAAU,MAAMA,WAAU,WAAWC,MAAK,CAAC;AAAA,IAC7C;AAAA,EACF;AAEA,OAAKC,QAAOF,YAAW;AACrB,QAAIG,KAAI,KAAKH,YAAWE,IAAG,GAAG;AAC5B,cAAQA,MAAK;AAAA,QACX,KAAK,cAAc;AAEjB;AAAA,QACF;AAAA;AAAA,QAGA,KAAK,UAAU;AACb,eAAK,KAAKA,IAAG,GAAGF,WAAUE,IAAG,CAAC;AAC9B;AAAA,QACF;AAAA,QAEA,KAAK,QAAQ;AACX,eAAK,KAAKA,IAAG,GAAGF,WAAUE,IAAG,CAAC;AAC9B;AAAA,QACF;AAAA,QAEA,KAAK,YAAY;AACf,UAAAE,KAAI,KAAKF,IAAG,GAAGF,WAAUE,IAAG,CAAC;AAC7B;AAAA,QACF;AAAA,QAEA,SAAS;AAEP,eAAK,QAAQA,IAAG,IAAIF,WAAUE,IAAG;AAAA,QACnC;AAAA,MACF;AAAA,IACF;AAAA,EACF;AAEA,SAAO;AACT;AAOA,SAAS,KAAK,MAAM,OAAO;AACzB,MAAI,OAAO;AACT,SAAK,KAAK,GAAG,KAAK;AAAA,EACpB;AACF;AAOA,SAASE,KAAI,MAAM,OAAO;AACxB,MAAI,OAAO;AACT,WAAO,OAAO,MAAM,KAAK;AAAA,EAC3B;AACF;AA9EA,IAIMD;AAJN;AAAA;AAIA,IAAMA,OAAM,CAAC,EAAE;AAAA;AAAA;;;ACQR,SAAS,WAAWE,OAAMC,IAAG,OAAO,MAAM;AAC/C,QAAMC,QAAO,MAAM,MAAM,YAAY;AACrC,QAAM,UAAU,MAAM,cAAc,IAAI;AACxC,UAAQ,KAAK,IAAI;AACjB,UAAQ,MAAM,CAAC;AACf,QAAMC,SAAQ,MAAM;AAAA,IAClB,MAAM,cAAcH,OAAM,QAAQ,QAAQ,CAAC;AAAA,IAC3CI;AAAA,EACF;AACA,EAAAF,MAAK;AACL,SAAOC;AACT;AAGA,SAASC,KAAI,MAAMH,IAAG,OAAO;AAC3B,SAAO,OAAO,QAAQ,KAAK,OAAO;AACpC;AA5BA;AAAA;AAAA;AAAA;;;ACSO,SAAS,eAAe,OAAO,SAAS;AAC7C,SACE,YAAY,OAAO,QAAQ,aAAa,IAAI,KAC5C,CAAC,YAAY,OAAO,QAAQ,gBAAgB,KAAK;AAErD;AAQA,SAAS,YAAY,OAAOI,OAAM,MAAM;AACtC,MAAI,OAAOA,UAAS,UAAU;AAC5B,IAAAA,QAAO,CAACA,KAAI;AAAA,EACd;AAEA,MAAI,CAACA,SAAQA,MAAK,WAAW,GAAG;AAC9B,WAAO;AAAA,EACT;AAEA,MAAIC,SAAQ;AAEZ,SAAO,EAAEA,SAAQD,MAAK,QAAQ;AAC5B,QAAI,MAAM,SAASA,MAAKC,MAAK,CAAC,GAAG;AAC/B,aAAO;AAAA,IACT;AAAA,EACF;AAEA,SAAO;AACT;AAxCA;AAAA;AAAA;AAAA;;;ACcO,SAAS,UAAUC,IAAG,IAAI,OAAO,MAAM;AAC5C,MAAIC,SAAQ;AAEZ,SAAO,EAAEA,SAAQ,MAAM,OAAO,QAAQ;AAGpC,QACE,MAAM,OAAOA,MAAK,EAAE,cAAc,QAClC,eAAe,MAAM,OAAO,MAAM,OAAOA,MAAK,CAAC,GAC/C;AACA,aAAO,QAAQ,KAAK,KAAK,MAAM,IAAI,KAAK;AAAA,IAC1C;AAAA,EACF;AAEA,SAAO;AACT;AA7BA;AAAA;AAKA;AAAA;AAAA;;;ACKO,SAAS,cAAcC,QAAO,WAAW;AAC9C,QAAM,SAAS,OAAOA,MAAK;AAC3B,MAAIC,SAAQ,OAAO,QAAQ,SAAS;AACpC,MAAI,WAAWA;AACf,MAAIC,SAAQ;AACZ,MAAIC,OAAM;AAEV,MAAI,OAAO,cAAc,UAAU;AACjC,UAAM,IAAI,UAAU,oBAAoB;AAAA,EAC1C;AAEA,SAAOF,WAAU,IAAI;AACnB,QAAIA,WAAU,UAAU;AACtB,UAAI,EAAEC,SAAQC,MAAK;AACjB,QAAAA,OAAMD;AAAA,MACR;AAAA,IACF,OAAO;AACL,MAAAA,SAAQ;AAAA,IACV;AAEA,eAAWD,SAAQ,UAAU;AAC7B,IAAAA,SAAQ,OAAO,QAAQ,WAAW,QAAQ;AAAA,EAC5C;AAEA,SAAOE;AACT;AAnCA;AAAA;AAAA;AAAA;;;ACUO,SAAS,qBAAqBC,OAAM,OAAO;AAChD,SAAO;AAAA,IACL,MAAM,QAAQ,WAAW,SACvBA,MAAK;AAAA,IAEL,CAACA,MAAK;AAAA,IAEN,WAAW,KAAKA,MAAK,KAAK;AAAA,IAE1B,CAAC,0CAA0C,KAAKA,MAAK,KAAK;AAAA,EAC9D;AACF;AArBA;AAAA;AAAA;AAAA;;;ACQO,SAAS,WAAW,OAAO;AAChC,QAAM,SAAS,MAAM,QAAQ,SAAS;AAEtC,MAAI,WAAW,OAAO,WAAW,KAAK;AACpC,UAAM,IAAI;AAAA,MACR,iCACE,SACA;AAAA,IACJ;AAAA,EACF;AAEA,SAAO;AACT;AApBA;AAAA;AAAA;AAAA;;;ACgBO,SAAS,KAAKC,OAAMC,IAAG,OAAO,MAAM;AACzC,QAAM,SAAS,WAAW,KAAK;AAC/B,QAAMC,OAAMF,MAAK,SAAS;AAC1B,QAAM,SAAS,WAAW,MAAM,gBAAgB;AAEhD,MAAI,qBAAqBA,OAAM,KAAK,GAAG;AACrC,UAAMG,QAAO,MAAM,MAAM,cAAc;AACvC,UAAMC,SAAQ,MAAM,YAAYF,MAAKG,IAAG;AACxC,IAAAF,MAAK;AACL,WAAOC;AAAA,EACT;AAEA,QAAM,UAAU,MAAM,cAAc,IAAI;AACxC,QAAM,WAAW,OAAO,OAAO,KAAK,IAAI,cAAcF,MAAK,MAAM,IAAI,GAAG,CAAC,CAAC;AAC1E,QAAMC,QAAO,MAAM,MAAM,YAAY;AACrC,MAAIC,SAAQ,QAAQ,KAAK,QAAQ;AAEjC,MAAIJ,MAAK,MAAM;AACb,UAAM,UAAU,MAAM,MAAM,iBAAiB,MAAM,EAAE;AACrD,IAAAI,UAAS,QAAQ;AAAA,MACf,MAAM,KAAKJ,MAAK,MAAM;AAAA,QACpB,QAAQI;AAAA,QACR,OAAO;AAAA,QACP,QAAQ,CAAC,GAAG;AAAA,QACZ,GAAG,QAAQ,QAAQ;AAAA,MACrB,CAAC;AAAA,IACH;AACA,YAAQ;AAAA,EACV;AAEA,MAAIJ,MAAK,QAAQA,MAAK,MAAM;AAC1B,UAAM,UAAU,MAAM,MAAM,iBAAiB,MAAM,EAAE;AACrD,IAAAI,UAAS,QAAQ,KAAK,GAAG;AACzB,IAAAA,UAAS,QAAQ;AAAA,MACf,MAAM,KAAKJ,MAAK,MAAM;AAAA,QACpB,QAAQI;AAAA,QACR,OAAO;AAAA,QACP,QAAQ,CAAC,GAAG;AAAA,QACZ,GAAG,QAAQ,QAAQ;AAAA,MACrB,CAAC;AAAA,IACH;AACA,YAAQ;AAAA,EACV;AAEA,EAAAA,UAAS,QAAQ,KAAK,IAAI;AAE1B,MAAIF,MAAK;AACP,IAAAE,UAAS,QAAQ,KAAKF,OAAM,IAAI;AAAA,EAClC;AAEA,EAAAE,UAAS,QAAQ,KAAK,QAAQ;AAC9B,EAAAD,MAAK;AACL,SAAOC;AACT;AAGA,SAASC,KAAI,MAAMJ,IAAG,OAAO;AAC3B,UAAQ,QAAQ,KAAK,UAAU;AACjC;AA1EA;AAAA;AAKA;AACA;AACA;AAAA;AAAA;;;ACCO,SAAS,WAAW,OAAO;AAChC,QAAM,SAAS,MAAM,QAAQ,SAAS;AAEtC,MAAI,WAAW,OAAO,WAAW,KAAK;AACpC,UAAM,IAAI;AAAA,MACR,kCACE,SACA;AAAA,IACJ;AAAA,EACF;AAEA,SAAO;AACT;AApBA;AAAA;AAAA;AAAA;;;ACcO,SAAS,WAAWK,OAAMC,IAAG,OAAO,MAAM;AAC/C,QAAM,QAAQ,WAAW,KAAK;AAC9B,QAAM,SAAS,UAAU,MAAM,UAAU;AACzC,QAAMC,QAAO,MAAM,MAAM,YAAY;AACrC,MAAI,UAAU,MAAM,MAAM,OAAO;AACjC,QAAM,UAAU,MAAM,cAAc,IAAI;AACxC,MAAIC,SAAQ,QAAQ,KAAK,GAAG;AAC5B,EAAAA,UAAS,QAAQ;AAAA,IACf,MAAM,KAAK,MAAM,cAAcH,KAAI,GAAG;AAAA,MACpC,QAAQG;AAAA,MACR,OAAO;AAAA,MACP,GAAG,QAAQ,QAAQ;AAAA,IACrB,CAAC;AAAA,EACH;AACA,EAAAA,UAAS,QAAQ,KAAK,KAAK;AAE3B,UAAQ;AAER;AAAA;AAAA,IAEE,CAACH,MAAK;AAAA,IAEN,eAAe,KAAKA,MAAK,GAAG;AAAA,IAC5B;AACA,cAAU,MAAM,MAAM,oBAAoB;AAC1C,IAAAG,UAAS,QAAQ,KAAK,GAAG;AACzB,IAAAA,UAAS,QAAQ;AAAA,MACf,MAAM,KAAKH,MAAK,KAAK,EAAC,QAAQG,QAAO,OAAO,KAAK,GAAG,QAAQ,QAAQ,EAAC,CAAC;AAAA,IACxE;AACA,IAAAA,UAAS,QAAQ,KAAK,GAAG;AAAA,EAC3B,OAAO;AAEL,cAAU,MAAM,MAAM,gBAAgB;AACtC,IAAAA,UAAS,QAAQ;AAAA,MACf,MAAM,KAAKH,MAAK,KAAK;AAAA,QACnB,QAAQG;AAAA,QACR,OAAOH,MAAK,QAAQ,MAAM;AAAA,QAC1B,GAAG,QAAQ,QAAQ;AAAA,MACrB,CAAC;AAAA,IACH;AAAA,EACF;AAEA,UAAQ;AAER,MAAIA,MAAK,OAAO;AACd,cAAU,MAAM,MAAM,QAAQ,MAAM,EAAE;AACtC,IAAAG,UAAS,QAAQ,KAAK,MAAM,KAAK;AACjC,IAAAA,UAAS,QAAQ;AAAA,MACf,MAAM,KAAKH,MAAK,OAAO;AAAA,QACrB,QAAQG;AAAA,QACR,OAAO;AAAA,QACP,GAAG,QAAQ,QAAQ;AAAA,MACrB,CAAC;AAAA,IACH;AACA,IAAAA,UAAS,QAAQ,KAAK,KAAK;AAC3B,YAAQ;AAAA,EACV;AAEA,EAAAD,MAAK;AAEL,SAAOC;AACT;AA3EA;AAAA;AAKA;AAAA;AAAA;;;ACGO,SAAS,cAAc,OAAO;AACnC,QAAM,SAAS,MAAM,QAAQ,YAAY;AAEzC,MAAI,WAAW,OAAO,WAAW,KAAK;AACpC,UAAM,IAAI;AAAA,MACR,qCACE,SACA;AAAA,IACJ;AAAA,EACF;AAEA,SAAO;AACT;AApBA;AAAA;AAAA;AAAA;;;ACQO,SAAS,yBAAyBC,OAAM;AAC7C,SAAO,QAAQA,MAAK,SAAS,EAAE,EAAE,YAAY,IAAI;AACnD;AAVA;AAAA;AAAA;AAAA;;;ACmBO,SAAS,kBAAkBC,OAAM;AACtC,MAAIA,UAAS,QAAQ,0BAA0BA,KAAI,KAAK,kBAAkBA,KAAI,GAAG;AAC/E,WAAO;AAAA,EACT;AACA,MAAI,mBAAmBA,KAAI,GAAG;AAC5B,WAAO;AAAA,EACT;AACF;AA1BA;AAAA;AAIA;AAAA;AAAA;;;ACoCO,SAAS,WAAW,SAAS,QAAQ,QAAQ;AAClD,QAAM,cAAc,kBAAkB,OAAO;AAC7C,QAAM,aAAa,kBAAkB,MAAM;AAG3C,MAAI,gBAAgB,QAAW;AAC7B,WAAO,eAAe;AAAA;AAAA;AAAA;AAAA,MAIlB,WAAW,MACT,EAAC,QAAQ,MAAM,SAAS,KAAI,IAC5B,EAAC,QAAQ,OAAO,SAAS,MAAK;AAAA,QAChC,eAAe;AAAA;AAAA,MAEb,EAAC,QAAQ,MAAM,SAAS,KAAI;AAAA;AAAA;AAAA,MAE5B,EAAC,QAAQ,OAAO,SAAS,KAAI;AAAA;AAAA,EACrC;AAGA,MAAI,gBAAgB,GAAG;AACrB,WAAO,eAAe;AAAA;AAAA,MAElB,EAAC,QAAQ,OAAO,SAAS,MAAK;AAAA,QAC9B,eAAe;AAAA;AAAA,MAEb,EAAC,QAAQ,MAAM,SAAS,KAAI;AAAA;AAAA;AAAA,MAE5B,EAAC,QAAQ,OAAO,SAAS,MAAK;AAAA;AAAA,EACtC;AAGA,SAAO,eAAe;AAAA;AAAA,IAElB,EAAC,QAAQ,OAAO,SAAS,MAAK;AAAA,MAC9B,eAAe;AAAA;AAAA,IAEb,EAAC,QAAQ,MAAM,SAAS,MAAK;AAAA;AAAA;AAAA,IAE7B,EAAC,QAAQ,OAAO,SAAS,MAAK;AAAA;AACtC;AAjFA;AAAA;AAIA;AAAA;AAAA;;;ACcO,SAAS,SAASC,OAAMC,IAAG,OAAO,MAAM;AAC7C,QAAM,SAAS,cAAc,KAAK;AAClC,QAAMC,QAAO,MAAM,MAAM,UAAU;AACnC,QAAM,UAAU,MAAM,cAAc,IAAI;AACxC,QAAM,SAAS,QAAQ,KAAK,MAAM;AAElC,MAAIC,WAAU,QAAQ;AAAA,IACpB,MAAM,kBAAkBH,OAAM;AAAA,MAC5B,OAAO;AAAA,MACP;AAAA,MACA,GAAG,QAAQ,QAAQ;AAAA,IACrB,CAAC;AAAA,EACH;AACA,QAAM,cAAcG,SAAQ,WAAW,CAAC;AACxC,QAAM,OAAO;AAAA,IACX,KAAK,OAAO,WAAW,KAAK,OAAO,SAAS,CAAC;AAAA,IAC7C;AAAA,IACA;AAAA,EACF;AAEA,MAAI,KAAK,QAAQ;AACf,IAAAA,WAAU,yBAAyB,WAAW,IAAIA,SAAQ,MAAM,CAAC;AAAA,EACnE;AAEA,QAAM,cAAcA,SAAQ,WAAWA,SAAQ,SAAS,CAAC;AACzD,QAAMC,SAAQ,WAAW,KAAK,MAAM,WAAW,CAAC,GAAG,aAAa,MAAM;AAEtE,MAAIA,OAAM,QAAQ;AAChB,IAAAD,WAAUA,SAAQ,MAAM,GAAG,EAAE,IAAI,yBAAyB,WAAW;AAAA,EACvE;AAEA,QAAM,QAAQ,QAAQ,KAAK,MAAM;AAEjC,EAAAD,MAAK;AAEL,QAAM,iCAAiC;AAAA,IACrC,OAAOE,OAAM;AAAA,IACb,QAAQ,KAAK;AAAA,EACf;AACA,SAAO,SAASD,WAAU;AAC5B;AAQA,SAAS,aAAaF,IAAG,IAAI,OAAO;AAClC,SAAO,MAAM,QAAQ,YAAY;AACnC;AApEA;AAAA;AAKA;AACA;AACA;AAEA,aAAS,OAAO;AAAA;AAAA;;;AC4QT,SAAS,MAAM,MAAM,eAAe,kBAAkB,cAAc;AAEzE,MAAI;AAEJ,MAAI;AAEJ,MAAI;AAEJ,MACE,OAAO,kBAAkB,cACzB,OAAO,qBAAqB,YAC5B;AACA,WAAO;AACP,cAAU;AACV,cAAU;AAAA,EACZ,OAAO;AAEL,WAAO;AAEP,cAAU;AACV,cAAU;AAAA,EACZ;AAEA,eAAa,MAAM,MAAM,UAAU,OAAO;AAM1C,WAAS,SAASI,OAAM,SAAS;AAC/B,UAAM,SAAS,QAAQ,QAAQ,SAAS,CAAC;AACzC,UAAMC,SAAQ,SAAS,OAAO,SAAS,QAAQD,KAAI,IAAI;AACvD,WAAO,QAAQA,OAAMC,QAAO,MAAM;AAAA,EACpC;AACF;AAvTA,IAAAC,aAAA;AAAA;AAkOA;AAEA;AAAA;AAAA;;;ACpOA;AAAA;AACA,IAAAC;AAAA;AAAA;;;AC0BO,SAAS,SAASC,QAAO,SAAS;AACvC,QAAM,WAAW,WAAW;AAC5B,QAAM,kBACJ,OAAO,SAAS,oBAAoB,YAChC,SAAS,kBACT;AACN,QAAM,cACJ,OAAO,SAAS,gBAAgB,YAAY,SAAS,cAAc;AAErE,SAAO,IAAIA,QAAO,iBAAiB,WAAW;AAChD;AAcA,SAAS,IAAIA,QAAO,iBAAiB,aAAa;AAChD,MAAI,KAAKA,MAAK,GAAG;AACf,QAAI,WAAWA,QAAO;AACpB,aAAOA,OAAM,SAAS,UAAU,CAAC,cAAc,KAAKA,OAAM;AAAA,IAC5D;AAEA,QAAI,mBAAmB,SAASA,UAASA,OAAM,KAAK;AAClD,aAAOA,OAAM;AAAA,IACf;AAEA,QAAI,cAAcA,QAAO;AACvB,aAAO,IAAIA,OAAM,UAAU,iBAAiB,WAAW;AAAA,IACzD;AAAA,EACF;AAEA,MAAI,MAAM,QAAQA,MAAK,GAAG;AACxB,WAAO,IAAIA,QAAO,iBAAiB,WAAW;AAAA,EAChD;AAEA,SAAO;AACT;AAcA,SAAS,IAAI,QAAQ,iBAAiB,aAAa;AAEjD,QAAM,SAAS,CAAC;AAChB,MAAIC,SAAQ;AAEZ,SAAO,EAAEA,SAAQ,OAAO,QAAQ;AAC9B,WAAOA,MAAK,IAAI,IAAI,OAAOA,MAAK,GAAG,iBAAiB,WAAW;AAAA,EACjE;AAEA,SAAO,OAAO,KAAK,EAAE;AACvB;AAUA,SAAS,KAAKD,QAAO;AACnB,SAAO,QAAQA,UAAS,OAAOA,WAAU,QAAQ;AACnD;AA3GA,IAYM;AAZN,IAAAE,aAAA;AAAA;AAYA,IAAM,eAAe,CAAC;AAAA;AAAA;;;ACZtB;AAAA;AAIA,IAAAC;AAAA;AAAA;;;ACSO,SAAS,sBAAsBC,OAAM,OAAO;AACjD,MAAI,mBAAmB;AAIvB,QAAMA,OAAM,SAAUA,OAAM;AAC1B,QACG,WAAWA,SAAQ,WAAW,KAAKA,MAAK,KAAK,KAC9CA,MAAK,SAAS,SACd;AACA,yBAAmB;AACnB,aAAO;AAAA,IACT;AAAA,EACF,CAAC;AAED,SAAO;AAAA,KACJ,CAACA,MAAK,SAASA,MAAK,QAAQ,MAC3B,SAASA,KAAI,MACZ,MAAM,QAAQ,UAAU;AAAA,EAC7B;AACF;AAjCA;AAAA;AAKA;AACA;AAAA;AAAA;;;ACSO,SAAS,QAAQC,OAAMC,IAAG,OAAO,MAAM;AAC5C,QAAM,OAAO,KAAK,IAAI,KAAK,IAAI,GAAGD,MAAK,SAAS,CAAC,GAAG,CAAC;AACrD,QAAM,UAAU,MAAM,cAAc,IAAI;AAExC,MAAI,sBAAsBA,OAAM,KAAK,GAAG;AACtC,UAAME,QAAO,MAAM,MAAM,eAAe;AACxC,UAAMC,WAAU,MAAM,MAAM,UAAU;AACtC,UAAMC,SAAQ,MAAM,kBAAkBJ,OAAM;AAAA,MAC1C,GAAG,QAAQ,QAAQ;AAAA,MACnB,QAAQ;AAAA,MACR,OAAO;AAAA,IACT,CAAC;AACD,IAAAG,SAAQ;AACR,IAAAD,MAAK;AAEL,WACEE,SACA,QACC,SAAS,IAAI,MAAM,KAAK;AAAA;AAAA,MAEvBA,OAAM;AAAA;AAAA,OAGH,KAAK,IAAIA,OAAM,YAAY,IAAI,GAAGA,OAAM,YAAY,IAAI,CAAC,IAAI;AAAA,IAClE;AAAA,EAEJ;AAEA,QAAM,WAAW,IAAI,OAAO,IAAI;AAChC,QAAMF,QAAO,MAAM,MAAM,YAAY;AACrC,QAAM,UAAU,MAAM,MAAM,UAAU;AAMtC,UAAQ,KAAK,WAAW,GAAG;AAE3B,MAAIE,SAAQ,MAAM,kBAAkBJ,OAAM;AAAA,IACxC,QAAQ;AAAA,IACR,OAAO;AAAA,IACP,GAAG,QAAQ,QAAQ;AAAA,EACrB,CAAC;AAED,MAAI,SAAS,KAAKI,MAAK,GAAG;AAExB,IAAAA,SAAQ,yBAAyBA,OAAM,WAAW,CAAC,CAAC,IAAIA,OAAM,MAAM,CAAC;AAAA,EACvE;AAEA,EAAAA,SAAQA,SAAQ,WAAW,MAAMA,SAAQ;AAEzC,MAAI,MAAM,QAAQ,UAAU;AAC1B,IAAAA,UAAS,MAAM;AAAA,EACjB;AAEA,UAAQ;AACR,EAAAF,MAAK;AAEL,SAAOE;AACT;AA1EA;AAAA;AAKA;AACA;AAAA;AAAA;;;ACIO,SAAS,KAAKC,OAAM;AACzB,SAAOA,MAAK,SAAS;AACvB;AAKA,SAAS,WAAW;AAClB,SAAO;AACT;AAnBA;AAAA;AAIA,SAAK,OAAO;AAAA;AAAA;;;ACYL,SAAS,MAAMC,OAAMC,IAAG,OAAO,MAAM;AAC1C,QAAM,QAAQ,WAAW,KAAK;AAC9B,QAAM,SAAS,UAAU,MAAM,UAAU;AACzC,QAAMC,QAAO,MAAM,MAAM,OAAO;AAChC,MAAI,UAAU,MAAM,MAAM,OAAO;AACjC,QAAM,UAAU,MAAM,cAAc,IAAI;AACxC,MAAIC,SAAQ,QAAQ,KAAK,IAAI;AAC7B,EAAAA,UAAS,QAAQ;AAAA,IACf,MAAM,KAAKH,MAAK,KAAK,EAAC,QAAQG,QAAO,OAAO,KAAK,GAAG,QAAQ,QAAQ,EAAC,CAAC;AAAA,EACxE;AACA,EAAAA,UAAS,QAAQ,KAAK,IAAI;AAE1B,UAAQ;AAER;AAAA;AAAA,IAEG,CAACH,MAAK,OAAOA,MAAK;AAAA,IAEnB,eAAe,KAAKA,MAAK,GAAG;AAAA,IAC5B;AACA,cAAU,MAAM,MAAM,oBAAoB;AAC1C,IAAAG,UAAS,QAAQ,KAAK,GAAG;AACzB,IAAAA,UAAS,QAAQ;AAAA,MACf,MAAM,KAAKH,MAAK,KAAK,EAAC,QAAQG,QAAO,OAAO,KAAK,GAAG,QAAQ,QAAQ,EAAC,CAAC;AAAA,IACxE;AACA,IAAAA,UAAS,QAAQ,KAAK,GAAG;AAAA,EAC3B,OAAO;AAEL,cAAU,MAAM,MAAM,gBAAgB;AACtC,IAAAA,UAAS,QAAQ;AAAA,MACf,MAAM,KAAKH,MAAK,KAAK;AAAA,QACnB,QAAQG;AAAA,QACR,OAAOH,MAAK,QAAQ,MAAM;AAAA,QAC1B,GAAG,QAAQ,QAAQ;AAAA,MACrB,CAAC;AAAA,IACH;AAAA,EACF;AAEA,UAAQ;AAER,MAAIA,MAAK,OAAO;AACd,cAAU,MAAM,MAAM,QAAQ,MAAM,EAAE;AACtC,IAAAG,UAAS,QAAQ,KAAK,MAAM,KAAK;AACjC,IAAAA,UAAS,QAAQ;AAAA,MACf,MAAM,KAAKH,MAAK,OAAO;AAAA,QACrB,QAAQG;AAAA,QACR,OAAO;AAAA,QACP,GAAG,QAAQ,QAAQ;AAAA,MACrB,CAAC;AAAA,IACH;AACA,IAAAA,UAAS,QAAQ,KAAK,KAAK;AAC3B,YAAQ;AAAA,EACV;AAEA,EAAAA,UAAS,QAAQ,KAAK,GAAG;AACzB,EAAAD,MAAK;AAEL,SAAOC;AACT;AAKA,SAAS,YAAY;AACnB,SAAO;AACT;AAjFA;AAAA;AAKA;AAEA,UAAM,OAAO;AAAA;AAAA;;;ACON,SAAS,eAAeC,OAAMC,IAAG,OAAO,MAAM;AACnD,QAAMC,QAAOF,MAAK;AAClB,QAAMG,QAAO,MAAM,MAAM,gBAAgB;AACzC,MAAI,UAAU,MAAM,MAAM,OAAO;AACjC,QAAM,UAAU,MAAM,cAAc,IAAI;AACxC,MAAIC,SAAQ,QAAQ,KAAK,IAAI;AAC7B,QAAM,MAAM,MAAM,KAAKJ,MAAK,KAAK;AAAA,IAC/B,QAAQI;AAAA,IACR,OAAO;AAAA,IACP,GAAG,QAAQ,QAAQ;AAAA,EACrB,CAAC;AACD,EAAAA,UAAS,QAAQ,KAAK,MAAM,IAAI;AAEhC,UAAQ;AAER,QAAM,QAAQ,MAAM;AACpB,QAAM,QAAQ,CAAC;AACf,YAAU,MAAM,MAAM,WAAW;AAKjC,QAAM,YAAY,MAAM,KAAK,MAAM,cAAcJ,KAAI,GAAG;AAAA,IACtD,QAAQI;AAAA,IACR,OAAO;AAAA,IACP,GAAG,QAAQ,QAAQ;AAAA,EACrB,CAAC;AACD,UAAQ;AACR,QAAM,QAAQ;AACd,EAAAD,MAAK;AAEL,MAAID,UAAS,UAAU,CAAC,OAAO,QAAQ,WAAW;AAChD,IAAAE,UAAS,QAAQ,KAAK,YAAY,GAAG;AAAA,EACvC,WAAWF,UAAS,YAAY;AAE9B,IAAAE,SAAQA,OAAM,MAAM,GAAG,EAAE;AAAA,EAC3B,OAAO;AACL,IAAAA,UAAS,QAAQ,KAAK,GAAG;AAAA,EAC3B;AAEA,SAAOA;AACT;AAKA,SAAS,qBAAqB;AAC5B,SAAO;AACT;AA9DA;AAAA;AAKA,mBAAe,OAAO;AAAA;AAAA;;;ACQf,SAAS,WAAWC,OAAMC,IAAG,OAAO;AACzC,MAAIC,SAAQF,MAAK,SAAS;AAC1B,MAAI,WAAW;AACf,MAAIG,SAAQ;AAKZ,SAAO,IAAI,OAAO,aAAa,WAAW,UAAU,EAAE,KAAKD,MAAK,GAAG;AACjE,gBAAY;AAAA,EACd;AAIA,MACE,WAAW,KAAKA,MAAK,MACnB,WAAW,KAAKA,MAAK,KAAK,WAAW,KAAKA,MAAK,KAAM,QAAQ,KAAKA,MAAK,IACzE;AACA,IAAAA,SAAQ,MAAMA,SAAQ;AAAA,EACxB;AASA,SAAO,EAAEC,SAAQ,MAAM,OAAO,QAAQ;AACpC,UAAM,UAAU,MAAM,OAAOA,MAAK;AAClC,UAAM,aAAa,MAAM,eAAe,OAAO;AAE/C,QAAIC;AAKJ,QAAI,CAAC,QAAQ,QAAS;AAEtB,WAAQA,SAAQ,WAAW,KAAKF,MAAK,GAAI;AACvC,UAAIG,YAAWD,OAAM;AAGrB,UACEF,OAAM,WAAWG,SAAQ,MAAM,MAC/BH,OAAM,WAAWG,YAAW,CAAC,MAAM,IACnC;AACA,QAAAA;AAAA,MACF;AAEA,MAAAH,SAAQA,OAAM,MAAM,GAAGG,SAAQ,IAAI,MAAMH,OAAM,MAAME,OAAM,QAAQ,CAAC;AAAA,IACtE;AAAA,EACF;AAEA,SAAO,WAAWF,SAAQ;AAC5B;AAKA,SAAS,iBAAiB;AACxB,SAAO;AACT;AA3EA;AAAA;AAKA,eAAW,OAAO;AAAA;AAAA;;;ACOX,SAAS,qBAAqBI,OAAM,OAAO;AAChD,QAAMC,OAAM,SAASD,KAAI;AAEzB,SAAO;AAAA,IACL,CAAC,MAAM,QAAQ;AAAA,IAEbA,MAAK;AAAA,IAEL,CAACA,MAAK;AAAA,IAENA,MAAK,YACLA,MAAK,SAAS,WAAW,KACzBA,MAAK,SAAS,CAAC,EAAE,SAAS;AAAA,KAEzBC,SAAQD,MAAK,OAAO,YAAYC,SAAQD,MAAK;AAAA,IAE9C,oBAAoB,KAAKA,MAAK,GAAG;AAAA;AAAA,IAGjC,CAAC,iBAAiB,KAAKA,MAAK,GAAG;AAAA,EACnC;AACF;AAjCA;AAAA;AAKA;AAAA;AAAA;;;ACaO,SAAS,KAAKE,OAAMC,IAAG,OAAO,MAAM;AACzC,QAAM,QAAQ,WAAW,KAAK;AAC9B,QAAM,SAAS,UAAU,MAAM,UAAU;AACzC,QAAM,UAAU,MAAM,cAAc,IAAI;AAExC,MAAIC;AAEJ,MAAI;AAEJ,MAAI,qBAAqBF,OAAM,KAAK,GAAG;AAErC,UAAM,QAAQ,MAAM;AACpB,UAAM,QAAQ,CAAC;AACf,IAAAE,QAAO,MAAM,MAAM,UAAU;AAC7B,QAAIC,SAAQ,QAAQ,KAAK,GAAG;AAC5B,IAAAA,UAAS,QAAQ;AAAA,MACf,MAAM,kBAAkBH,OAAM;AAAA,QAC5B,QAAQG;AAAA,QACR,OAAO;AAAA,QACP,GAAG,QAAQ,QAAQ;AAAA,MACrB,CAAC;AAAA,IACH;AACA,IAAAA,UAAS,QAAQ,KAAK,GAAG;AACzB,IAAAD,MAAK;AACL,UAAM,QAAQ;AACd,WAAOC;AAAA,EACT;AAEA,EAAAD,QAAO,MAAM,MAAM,MAAM;AACzB,YAAU,MAAM,MAAM,OAAO;AAC7B,MAAIC,SAAQ,QAAQ,KAAK,GAAG;AAC5B,EAAAA,UAAS,QAAQ;AAAA,IACf,MAAM,kBAAkBH,OAAM;AAAA,MAC5B,QAAQG;AAAA,MACR,OAAO;AAAA,MACP,GAAG,QAAQ,QAAQ;AAAA,IACrB,CAAC;AAAA,EACH;AACA,EAAAA,UAAS,QAAQ,KAAK,IAAI;AAC1B,UAAQ;AAER;AAAA;AAAA,IAEG,CAACH,MAAK,OAAOA,MAAK;AAAA,IAEnB,eAAe,KAAKA,MAAK,GAAG;AAAA,IAC5B;AACA,cAAU,MAAM,MAAM,oBAAoB;AAC1C,IAAAG,UAAS,QAAQ,KAAK,GAAG;AACzB,IAAAA,UAAS,QAAQ;AAAA,MACf,MAAM,KAAKH,MAAK,KAAK,EAAC,QAAQG,QAAO,OAAO,KAAK,GAAG,QAAQ,QAAQ,EAAC,CAAC;AAAA,IACxE;AACA,IAAAA,UAAS,QAAQ,KAAK,GAAG;AAAA,EAC3B,OAAO;AAEL,cAAU,MAAM,MAAM,gBAAgB;AACtC,IAAAA,UAAS,QAAQ;AAAA,MACf,MAAM,KAAKH,MAAK,KAAK;AAAA,QACnB,QAAQG;AAAA,QACR,OAAOH,MAAK,QAAQ,MAAM;AAAA,QAC1B,GAAG,QAAQ,QAAQ;AAAA,MACrB,CAAC;AAAA,IACH;AAAA,EACF;AAEA,UAAQ;AAER,MAAIA,MAAK,OAAO;AACd,cAAU,MAAM,MAAM,QAAQ,MAAM,EAAE;AACtC,IAAAG,UAAS,QAAQ,KAAK,MAAM,KAAK;AACjC,IAAAA,UAAS,QAAQ;AAAA,MACf,MAAM,KAAKH,MAAK,OAAO;AAAA,QACrB,QAAQG;AAAA,QACR,OAAO;AAAA,QACP,GAAG,QAAQ,QAAQ;AAAA,MACrB,CAAC;AAAA,IACH;AACA,IAAAA,UAAS,QAAQ,KAAK,KAAK;AAC3B,YAAQ;AAAA,EACV;AAEA,EAAAA,UAAS,QAAQ,KAAK,GAAG;AAEzB,EAAAD,MAAK;AACL,SAAOC;AACT;AAQA,SAAS,SAASH,OAAMC,IAAG,OAAO;AAChC,SAAO,qBAAqBD,OAAM,KAAK,IAAI,MAAM;AACnD;AAjHA;AAAA;AAMA;AACA;AAEA,SAAK,OAAO;AAAA;AAAA;;;ACKL,SAAS,cAAcI,OAAMC,IAAG,OAAO,MAAM;AAClD,QAAMC,QAAOF,MAAK;AAClB,QAAMG,QAAO,MAAM,MAAM,eAAe;AACxC,MAAI,UAAU,MAAM,MAAM,OAAO;AACjC,QAAM,UAAU,MAAM,cAAc,IAAI;AACxC,MAAIC,SAAQ,QAAQ,KAAK,GAAG;AAC5B,QAAMC,QAAO,MAAM,kBAAkBL,OAAM;AAAA,IACzC,QAAQI;AAAA,IACR,OAAO;AAAA,IACP,GAAG,QAAQ,QAAQ;AAAA,EACrB,CAAC;AACD,EAAAA,UAAS,QAAQ,KAAKC,QAAO,IAAI;AAEjC,UAAQ;AAER,QAAM,QAAQ,MAAM;AACpB,QAAM,QAAQ,CAAC;AACf,YAAU,MAAM,MAAM,WAAW;AAKjC,QAAM,YAAY,MAAM,KAAK,MAAM,cAAcL,KAAI,GAAG;AAAA,IACtD,QAAQI;AAAA,IACR,OAAO;AAAA,IACP,GAAG,QAAQ,QAAQ;AAAA,EACrB,CAAC;AACD,UAAQ;AACR,QAAM,QAAQ;AACd,EAAAD,MAAK;AAEL,MAAID,UAAS,UAAU,CAACG,SAAQA,UAAS,WAAW;AAClD,IAAAD,UAAS,QAAQ,KAAK,YAAY,GAAG;AAAA,EACvC,WAAWF,UAAS,YAAY;AAE9B,IAAAE,SAAQA,OAAM,MAAM,GAAG,EAAE;AAAA,EAC3B,OAAO;AACL,IAAAA,UAAS,QAAQ,KAAK,GAAG;AAAA,EAC3B;AAEA,SAAOA;AACT;AAKA,SAAS,oBAAoB;AAC3B,SAAO;AACT;AA9DA;AAAA;AAKA,kBAAc,OAAO;AAAA;AAAA;;;ACGd,SAAS,YAAY,OAAO;AACjC,QAAM,SAAS,MAAM,QAAQ,UAAU;AAEvC,MAAI,WAAW,OAAO,WAAW,OAAO,WAAW,KAAK;AACtD,UAAM,IAAI;AAAA,MACR,kCACE,SACA;AAAA,IACJ;AAAA,EACF;AAEA,SAAO;AACT;AApBA;AAAA;AAAA;AAAA;;;ACUO,SAAS,iBAAiB,OAAO;AACtC,QAAM,SAAS,YAAY,KAAK;AAChC,QAAM,cAAc,MAAM,QAAQ;AAElC,MAAI,CAAC,aAAa;AAChB,WAAO,WAAW,MAAM,MAAM;AAAA,EAChC;AAEA,MAAI,gBAAgB,OAAO,gBAAgB,OAAO,gBAAgB,KAAK;AACrE,UAAM,IAAI;AAAA,MACR,kCACE,cACA;AAAA,IACJ;AAAA,EACF;AAEA,MAAI,gBAAgB,QAAQ;AAC1B,UAAM,IAAI;AAAA,MACR,yBACE,SACA,4BACA,cACA;AAAA,IACJ;AAAA,EACF;AAEA,SAAO;AACT;AArCA;AAAA;AAIA;AAAA;AAAA;;;ACIO,SAAS,mBAAmB,OAAO;AACxC,QAAM,SAAS,MAAM,QAAQ,iBAAiB;AAE9C,MAAI,WAAW,OAAO,WAAW,KAAK;AACpC,UAAM,IAAI;AAAA,MACR,kCACE,SACA;AAAA,IACJ;AAAA,EACF;AAEA,SAAO;AACT;AApBA;AAAA;AAAA;AAAA;;;ACQO,SAAS,UAAU,OAAO;AAC/B,QAAM,SAAS,MAAM,QAAQ,QAAQ;AAErC,MAAI,WAAW,OAAO,WAAW,OAAO,WAAW,KAAK;AACtD,UAAM,IAAI;AAAA,MACR,kCACE,SACA;AAAA,IACJ;AAAA,EACF;AAEA,SAAO;AACT;AApBA;AAAA;AAAA;AAAA;;;ACiBO,SAASE,MAAKC,OAAM,QAAQ,OAAO,MAAM;AAC9C,QAAMC,QAAO,MAAM,MAAM,MAAM;AAC/B,QAAM,gBAAgB,MAAM;AAE5B,MAAI,SAASD,MAAK,UAAU,mBAAmB,KAAK,IAAI,YAAY,KAAK;AAEzE,QAAM,cAAcA,MAAK,UACrB,WAAW,MACT,MACA,MACF,iBAAiB,KAAK;AAC1B,MAAI,qBACF,UAAU,MAAM,iBAAiB,WAAW,MAAM,iBAAiB;AAErE,MAAI,CAACA,MAAK,SAAS;AACjB,UAAM,gBAAgBA,MAAK,WAAWA,MAAK,SAAS,CAAC,IAAI;AAUzD;AAAA;AAAA,OAEG,WAAW,OAAO,WAAW;AAAA,MAE9B,kBACC,CAAC,cAAc,YAAY,CAAC,cAAc,SAAS,CAAC;AAAA,MAErD,MAAM,MAAM,MAAM,MAAM,SAAS,CAAC,MAAM,UACxC,MAAM,MAAM,MAAM,MAAM,SAAS,CAAC,MAAM,cACxC,MAAM,MAAM,MAAM,MAAM,SAAS,CAAC,MAAM,UACxC,MAAM,MAAM,MAAM,MAAM,SAAS,CAAC,MAAM;AAAA,MAExC,MAAM,WAAW,MAAM,WAAW,SAAS,CAAC,MAAM,KAClD,MAAM,WAAW,MAAM,WAAW,SAAS,CAAC,MAAM,KAClD,MAAM,WAAW,MAAM,WAAW,SAAS,CAAC,MAAM;AAAA,MAClD;AACA,2BAAqB;AAAA,IACvB;AAUA,QAAI,UAAU,KAAK,MAAM,UAAU,eAAe;AAChD,UAAIE,SAAQ;AAEZ,aAAO,EAAEA,SAAQF,MAAK,SAAS,QAAQ;AACrC,cAAM,OAAOA,MAAK,SAASE,MAAK;AAEhC,YACE,QACA,KAAK,SAAS,cACd,KAAK,YACL,KAAK,SAAS,CAAC,KACf,KAAK,SAAS,CAAC,EAAE,SAAS,iBAC1B;AACA,+BAAqB;AACrB;AAAA,QACF;AAAA,MACF;AAAA,IACF;AAAA,EACF;AAEA,MAAI,oBAAoB;AACtB,aAAS;AAAA,EACX;AAEA,QAAM,gBAAgB;AACtB,QAAMC,SAAQ,MAAM,cAAcH,OAAM,IAAI;AAC5C,QAAM,iBAAiB;AACvB,QAAM,gBAAgB;AACtB,EAAAC,MAAK;AACL,SAAOE;AACT;AAnGA;AAAA;AAKA;AACA;AACA;AACA;AAAA;AAAA;;;ACAO,SAAS,oBAAoB,OAAO;AACzC,QAAM,QAAQ,MAAM,QAAQ,kBAAkB;AAE9C,MAAI,UAAU,SAAS,UAAU,SAAS,UAAU,SAAS;AAC3D,UAAM,IAAI;AAAA,MACR,kCACE,QACA;AAAA,IACJ;AAAA,EACF;AAEA,SAAO;AACT;AApBA;AAAA;AAAA;AAAA;;;ACeO,SAAS,SAASC,OAAM,QAAQ,OAAO,MAAM;AAClD,QAAM,iBAAiB,oBAAoB,KAAK;AAChD,MAAI,SAAS,MAAM,iBAAiB,YAAY,KAAK;AAGrD,MAAI,UAAU,OAAO,SAAS,UAAU,OAAO,SAAS;AACtD,cACG,OAAO,OAAO,UAAU,YAAY,OAAO,QAAQ,KAChD,OAAO,QACP,MACH,MAAM,QAAQ,wBAAwB,QACnC,IACA,OAAO,SAAS,QAAQA,KAAI,KAChC;AAAA,EACJ;AAEA,MAAI,OAAO,OAAO,SAAS;AAE3B,MACE,mBAAmB,SAClB,mBAAmB,YAChB,UAAU,OAAO,SAAS,UAAU,OAAO,UAAWA,MAAK,SAC/D;AACA,WAAO,KAAK,KAAK,OAAO,CAAC,IAAI;AAAA,EAC/B;AAEA,QAAM,UAAU,MAAM,cAAc,IAAI;AACxC,UAAQ,KAAK,SAAS,IAAI,OAAO,OAAO,OAAO,MAAM,CAAC;AACtD,UAAQ,MAAM,IAAI;AAClB,QAAMC,QAAO,MAAM,MAAM,UAAU;AACnC,QAAMC,SAAQ,MAAM;AAAA,IAClB,MAAM,cAAcF,OAAM,QAAQ,QAAQ,CAAC;AAAA,IAC3CG;AAAA,EACF;AACA,EAAAF,MAAK;AAEL,SAAOC;AAGP,WAASC,KAAI,MAAMC,QAAO,OAAO;AAC/B,QAAIA,QAAO;AACT,cAAQ,QAAQ,KAAK,IAAI,OAAO,IAAI,KAAK;AAAA,IAC3C;AAEA,YAAQ,QAAQ,SAAS,SAAS,IAAI,OAAO,OAAO,OAAO,MAAM,KAAK;AAAA,EACxE;AACF;AA7DA;AAAA;AAKA;AACA;AAAA;AAAA;;;ACMO,SAAS,UAAUC,OAAMC,IAAG,OAAO,MAAM;AAC9C,QAAMC,QAAO,MAAM,MAAM,WAAW;AACpC,QAAM,UAAU,MAAM,MAAM,UAAU;AACtC,QAAMC,SAAQ,MAAM,kBAAkBH,OAAM,IAAI;AAChD,UAAQ;AACR,EAAAE,MAAK;AACL,SAAOC;AACT;AAnBA;AAAA;AAAA;AAAA;;;ACAA,IAkBa;AAlBb,IAAAC,aAAA;AAAA;AAKA;AAaO,IAAM;AAAA,IAGT,QAAQ;AAAA,MACN;AAAA,MACA;AAAA,MACA;AAAA;AAAA,MAEA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA;AAAA,MAEA;AAAA,MACA;AAAA,MACA;AAAA;AAAA,MAEA;AAAA;AAAA,MAEA;AAAA,MACA;AAAA,MACA;AAAA;AAAA,MAEA;AAAA,IACF,CAAC;AAAA;AAAA;;;AC3CL;AAAA;AAAA,IAAAC;AAAA;AAAA;;;ACcO,SAAS,KAAKC,OAAMC,IAAG,OAAO,MAAM;AAEzC,QAAM,cAAcD,MAAK,SAAS,KAAK,SAAUE,IAAG;AAClD,WAAO,SAASA,EAAC;AAAA,EACnB,CAAC;AAED,QAAM,YAAY,cAAc,MAAM,oBAAoB,MAAM;AAChE,SAAO,UAAU,KAAK,OAAOF,OAAM,IAAI;AACzC;AAtBA;AAAA;AAKA;AAAA;AAAA;;;ACGO,SAAS,YAAY,OAAO;AACjC,QAAM,SAAS,MAAM,QAAQ,UAAU;AAEvC,MAAI,WAAW,OAAO,WAAW,KAAK;AACpC,UAAM,IAAI;AAAA,MACR,mCACE,SACA;AAAA,IACJ;AAAA,EACF;AAEA,SAAO;AACT;AApBA;AAAA;AAAA;AAAA;;;ACkBO,SAAS,OAAOG,OAAMC,IAAG,OAAO,MAAM;AAC3C,QAAM,SAAS,YAAY,KAAK;AAChC,QAAMC,QAAO,MAAM,MAAM,QAAQ;AACjC,QAAM,UAAU,MAAM,cAAc,IAAI;AACxC,QAAM,SAAS,QAAQ,KAAK,SAAS,MAAM;AAE3C,MAAIC,WAAU,QAAQ;AAAA,IACpB,MAAM,kBAAkBH,OAAM;AAAA,MAC5B,OAAO;AAAA,MACP;AAAA,MACA,GAAG,QAAQ,QAAQ;AAAA,IACrB,CAAC;AAAA,EACH;AACA,QAAM,cAAcG,SAAQ,WAAW,CAAC;AACxC,QAAM,OAAO;AAAA,IACX,KAAK,OAAO,WAAW,KAAK,OAAO,SAAS,CAAC;AAAA,IAC7C;AAAA,IACA;AAAA,EACF;AAEA,MAAI,KAAK,QAAQ;AACf,IAAAA,WAAU,yBAAyB,WAAW,IAAIA,SAAQ,MAAM,CAAC;AAAA,EACnE;AAEA,QAAM,cAAcA,SAAQ,WAAWA,SAAQ,SAAS,CAAC;AACzD,QAAMC,SAAQ,WAAW,KAAK,MAAM,WAAW,CAAC,GAAG,aAAa,MAAM;AAEtE,MAAIA,OAAM,QAAQ;AAChB,IAAAD,WAAUA,SAAQ,MAAM,GAAG,EAAE,IAAI,yBAAyB,WAAW;AAAA,EACvE;AAEA,QAAM,QAAQ,QAAQ,KAAK,SAAS,MAAM;AAE1C,EAAAD,MAAK;AAEL,QAAM,iCAAiC;AAAA,IACrC,OAAOE,OAAM;AAAA,IACb,QAAQ,KAAK;AAAA,EACf;AACA,SAAO,SAASD,WAAU;AAC5B;AAQA,SAAS,WAAWF,IAAG,IAAI,OAAO;AAChC,SAAO,MAAM,QAAQ,UAAU;AACjC;AApEA;AAAA;AAKA;AACA;AACA;AAEA,WAAO,OAAO;AAAA;AAAA;;;ACGP,SAAS,KAAKI,OAAMC,IAAG,OAAO,MAAM;AACzC,SAAO,MAAM,KAAKD,MAAK,OAAO,IAAI;AACpC;AAdA;AAAA;AAAA;AAAA;;;ACQO,SAAS,oBAAoB,OAAO;AACzC,QAAM,aAAa,MAAM,QAAQ,kBAAkB;AAEnD,MAAI,aAAa,GAAG;AAClB,UAAM,IAAI;AAAA,MACR,6CACE,aACA;AAAA,IACJ;AAAA,EACF;AAEA,SAAO;AACT;AApBA;AAAA;AAAA;AAAA;;;ACcO,SAAS,cAAcE,IAAG,IAAI,OAAO;AAC1C,QAAMC,UACJ,UAAU,KAAK,KAAK,MAAM,QAAQ,aAAa,MAAM,KACrD,OAAO,oBAAoB,KAAK,CAAC;AAEnC,SAAO,MAAM,QAAQ,aAAaA,OAAM,MAAM,GAAG,EAAE,IAAIA;AACzD;AApBA;AAAA;AAKA;AACA;AAAA;AAAA;;;ACNA,IAuBa;AAvBb;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAKO,IAAM,SAAS;AAAA,MACpB;AAAA,MACA,OAAO;AAAA,MACP;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA,MAAAC;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IACF;AAAA;AAAA;;;ACjCA,SAAS,aAAa,MAAM,OAAO,QAAQ,OAAO;AAEhD,MACE,MAAM,SAAS,UACf,qBAAqB,OAAO,KAAK,MAChC,KAAK,SAAS,UACZ,KAAK,SAAS,MAAM,QAAQ,qBAAqB,MAAM,KAAK,IAC/D;AACA,WAAO;AAAA,EACT;AAIA,MAAI,YAAY,UAAU,OAAO,OAAO,WAAW,WAAW;AAC5D,QACE,KAAK,SAAS;AAAA,KAEb,KAAK,SAAS,MAAM,QACnB,MAAM,SAAS;AAAA,IAEd,MAAM,SAAS,aAAa,sBAAsB,OAAO,KAAK,IACjE;AACA;AAAA,IACF;AAEA,WAAO,OAAO,SAAS,IAAI;AAAA,EAC7B;AACF;AAtCA,IAQaC;AARb;AAAA;AAIA;AACA;AAGO,IAAMA,QAAO,CAAC,YAAY;AAAA;AAAA;;;ACRjC,IAYM,mBAUO;AAtBb;AAAA;AAYA,IAAM,oBAAoB;AAAA,MACxB;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IACF;AAGO,IAAM,SAAS;AAAA,MACpB,EAAC,WAAW,KAAM,OAAO,YAAY,aAAa,WAAU;AAAA,MAC5D,EAAC,WAAW,KAAM,QAAQ,YAAY,aAAa,WAAU;AAAA,MAC7D;AAAA,QACE,WAAW;AAAA,QACX,aAAa,CAAC,6BAA6B,qBAAqB;AAAA,MAClE;AAAA,MACA;AAAA,QACE,WAAW;AAAA,QACX,aAAa;AAAA,UACX;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,QACF;AAAA,MACF;AAAA,MACA;AAAA,QACE,WAAW;AAAA,QACX,aAAa;AAAA,UACX;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,QACF;AAAA,MACF;AAAA,MACA,EAAC,WAAW,KAAK,OAAO,YAAY,aAAa,WAAU;AAAA,MAC3D,EAAC,WAAW,KAAK,QAAQ,YAAY,aAAa,WAAU;AAAA,MAC5D;AAAA,QACE,WAAW;AAAA,QACX,aAAa,CAAC,6BAA6B,qBAAqB;AAAA,MAClE;AAAA;AAAA;AAAA,MAGA;AAAA,QACE,WAAW;AAAA,QACX,OAAO;AAAA,QACP,aAAa;AAAA,QACb,gBAAgB;AAAA,MAClB;AAAA;AAAA,MAEA,EAAC,WAAW,KAAK,aAAa,aAAY;AAAA;AAAA,MAE1C,EAAC,SAAS,MAAM,WAAW,IAAG;AAAA,MAC9B,EAAC,WAAW,KAAK,aAAa,cAAc,OAAO,eAAc;AAAA;AAAA;AAAA,MAGjE,EAAC,WAAW,KAAK,OAAO,aAAa,aAAa,WAAU;AAAA;AAAA,MAE5D,EAAC,WAAW,KAAK,aAAa,kBAAiB;AAAA;AAAA,MAE/C,EAAC,WAAW,KAAK,aAAa,iBAAgB;AAAA;AAAA,MAE9C;AAAA,QACE,QAAQ;AAAA,QACR,WAAW;AAAA,QACX,aAAa;AAAA,QACb,gBAAgB;AAAA,MAClB;AAAA;AAAA;AAAA,MAGA,EAAC,SAAS,MAAM,QAAQ,QAAQ,WAAW,IAAG;AAAA,MAC9C,EAAC,WAAW,KAAK,aAAa,iBAAgB;AAAA;AAAA,MAE9C,EAAC,SAAS,MAAM,WAAW,KAAK,OAAO,gBAAgB;AAAA,MACvD,EAAC,WAAW,KAAK,aAAa,YAAY,gBAAgB,kBAAiB;AAAA;AAAA,MAE3E,EAAC,SAAS,MAAM,WAAW,KAAK,OAAO,eAAe;AAAA;AAAA;AAAA,MAGtD,EAAC,SAAS,MAAM,WAAW,KAAK,OAAO,gBAAgB;AAAA;AAAA,MAEvD,EAAC,SAAS,MAAM,QAAQ,QAAQ,WAAW,KAAK,OAAO,iBAAiB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,MAOxE,EAAC,SAAS,MAAM,WAAW,KAAK,OAAO,cAAa;AAAA,MACpD;AAAA,QACE,WAAW;AAAA,QACX,OAAO;AAAA,QACP,aAAa;AAAA,QACb,gBAAgB;AAAA,MAClB;AAAA,MACA,EAAC,WAAW,KAAK,aAAa,qBAAoB;AAAA;AAAA,MAElD,EAAC,SAAS,MAAM,WAAW,IAAG;AAAA;AAAA;AAAA,MAG9B,EAAC,SAAS,MAAM,WAAW,IAAG;AAAA,MAC9B,EAAC,WAAW,KAAK,aAAa,qBAAoB;AAAA;AAAA;AAAA,MAGlD,EAAC,SAAS,MAAM,WAAW,IAAG;AAAA,MAC9B,EAAC,WAAW,KAAK,aAAa,YAAY,gBAAgB,kBAAiB;AAAA,MAC3E,EAAC,WAAW,KAAK,aAAa,CAAC,SAAS,WAAW,EAAC;AAAA;AAAA;AAAA;AAAA,MAIpD,EAAC,WAAW,MAAM,OAAO,YAAY,aAAa,WAAU;AAAA;AAAA,MAE5D,EAAC,WAAW,KAAK,aAAa,CAAC,SAAS,WAAW,EAAC;AAAA;AAAA;AAAA,MAGpD,EAAC,SAAS,MAAM,WAAW,IAAG;AAAA,MAC9B,EAAC,WAAW,KAAK,aAAa,YAAY,gBAAgB,kBAAiB;AAAA;AAAA;AAAA,MAG3E,EAAC,SAAS,MAAM,WAAW,IAAG;AAAA,MAC9B;AAAA,QACE,WAAW;AAAA,QACX,aAAa,CAAC,6BAA6B,2BAA2B;AAAA,MACxE;AAAA,MACA,EAAC,WAAW,KAAK,aAAa,YAAY,gBAAgB,kBAAiB;AAAA;AAAA;AAAA;AAAA,MAI3E,EAAC,SAAS,MAAM,WAAW,IAAG;AAAA,IAChC;AAAA;AAAA;;;ACvIO,SAAS,8BAA8BC,QAAO;AACnD,QAAMC,sBAAqB,MAAMD,SAAQ;AACzC,UAAQ,YAAYC;AACpB,QAAM,YAAY,QAAQ;AAQ1B,MACE,UAAU,WAAW,UAAU,SAAS,CAAC,MAAM,MAC/CD,WAAU,QACV;AACA,WAAO;AAAA,EACT;AAIA,SAAO,cAAcC,sBAAqB,QAAQ;AACpD;AA/BA,IAIM;AAJN;AAAA;AAIA,IAAM,UAAU,SAAS,cAAc,GAAG;AAAA;AAAA;;;ACUnC,SAAS,gCAAgCC,QAAO,MAAM;AAC3D,QAAMC,QAAO,OAAO,SAASD,QAAO,IAAI;AACxC;AAAA;AAAA,IAEAC,QAAO,KAAKA,UAAS,MAAMA,QAAO,MAAMA,QAAO;AAAA,IAE/CA,QAAO,OAAOA,QAAO;AAAA,IAErBA,QAAO,SAAUA,QAAO;AAAA,IAExBA,QAAO,SAAUA,QAAO;AAAA,KACvBA,QAAO,WAAY,UAAWA,QAAO,WAAY;AAAA;AAAA,IAElDA,QAAO;AAAA,IAAW;AAChB,WAAO;AAAA,EACT;AACA,SAAO,OAAO,cAAcA,KAAI;AAClC;AA/BA;AAAA;AAAA;AAAA;;;ACgBO,SAAS,aAAaC,QAAO;AAClC,SAAOA,OAAM,QAAQ,4BAA4B,MAAM;AACzD;AAYA,SAAS,OAAO,IAAI,IAAIC,KAAI;AAC1B,MAAI,IAAI;AAEN,WAAO;AAAA,EACT;AAGA,QAAMC,QAAOD,IAAG,WAAW,CAAC;AAC5B,MAAIC,UAAS,IAAI;AACf,UAAMA,QAAOD,IAAG,WAAW,CAAC;AAC5B,UAAME,OAAMD,UAAS,OAAOA,UAAS;AACrC,WAAO,gCAAgCD,IAAG,MAAME,OAAM,IAAI,CAAC,GAAGA,OAAM,KAAK,EAAE;AAAA,EAC7E;AACA,SAAO,8BAA8BF,GAAE,KAAK;AAC9C;AA5CA,IAEM;AAFN;AAAA;AAAA;AACA;AACA,IAAM,6BAA6B;AAAA;AAAA;;;ACwB5B,SAAS,YAAYG,OAAM;AAChC,MAAIA,MAAK,SAAS,CAACA,MAAK,YAAY;AAClC,WAAOA,MAAK,SAAS;AAAA,EACvB;AAEA,SAAO,aAAaA,MAAK,UAAU;AACrC;AAhCA;AAAA;AAIA;AAAA;AAAA;;;ACGO,SAAS,eAAe,SAAS;AACtC,MAAI,CAAC,QAAQ,WAAW;AACtB,UAAM,UACH,QAAQ,UAAU,oBAAoB,OACtC,QAAQ,SAAS,QAAQ,QAAQ,SAAS,MAAM;AAEnD,YAAQ,YAAY,IAAI;AAAA,OACrB,SAAS,MAAM,SAAS,MAAM,OAC5B,sBAAsB,KAAK,QAAQ,SAAS,IAAI,OAAO,MACxD,QAAQ,aACP,QAAQ,QAAQ,QAAQ,QAAQ,QAAQ,MAAM;AAAA,MACjD;AAAA,IACF;AAAA,EACF;AAEA,SAAO,QAAQ;AACjB;AAvBA;AAAA;AAAA;AAAA;;;ACqBO,SAAS,kBAAkB,QAAQ,OAAO,MAAM;AACrD,QAAM,aAAa,MAAM;AACzB,QAAMC,YAAW,OAAO,YAAY,CAAC;AAErC,QAAM,UAAU,CAAC;AACjB,MAAIC,SAAQ;AACZ,MAAI,SAAS,KAAK;AAElB,MAAI;AAEJ,aAAW,KAAK,EAAE;AAClB,MAAI,UAAU,MAAM,cAAc,IAAI;AAEtC,SAAO,EAAEA,SAAQD,UAAS,QAAQ;AAChC,UAAM,QAAQA,UAASC,MAAK;AAE5B,QAAI;AAEJ,eAAW,WAAW,SAAS,CAAC,IAAIA;AAEpC,QAAIA,SAAQ,IAAID,UAAS,QAAQ;AAG/B,UAAIE,UAAS,MAAM,OAAO,SAASF,UAASC,SAAQ,CAAC,EAAE,IAAI;AAG3D,UAAIC,WAAUA,QAAO,KAAM,CAAAA,UAASA,QAAO;AAC3C,cAAQA,UACJA,QAAOF,UAASC,SAAQ,CAAC,GAAG,QAAQ,OAAO;AAAA,QACzC,QAAQ;AAAA,QACR,OAAO;AAAA,QACP,GAAG,QAAQ,QAAQ;AAAA,MACrB,CAAC,EAAE,OAAO,CAAC,IACX;AAAA,IACN,OAAO;AACL,cAAQ,KAAK;AAAA,IACf;AAQA,QACE,QAAQ,SAAS,MAChB,WAAW,QAAQ,WAAW,SAC/B,MAAM,SAAS,QACf;AACA,cAAQ,QAAQ,SAAS,CAAC,IAAI,QAAQ,QAAQ,SAAS,CAAC,EAAE;AAAA,QACxD;AAAA,QACA;AAAA,MACF;AACA,eAAS;AAGT,gBAAU,MAAM,cAAc,IAAI;AAClC,cAAQ,KAAK,QAAQ,KAAK,EAAE,CAAC;AAAA,IAC/B;AAEA,QAAIE,SAAQ,MAAM,OAAO,OAAO,QAAQ,OAAO;AAAA,MAC7C,GAAG,QAAQ,QAAQ;AAAA,MACnB;AAAA,MACA;AAAA,IACF,CAAC;AAKD,QAAI,eAAe,gBAAgBA,OAAM,MAAM,GAAG,CAAC,GAAG;AACpD,MAAAA,SACE,yBAAyB,YAAY,WAAW,CAAC,CAAC,IAAIA,OAAM,MAAM,CAAC;AAAA,IACvE;AAEA,UAAM,eAAe,MAAM;AAC3B,UAAM,iCAAiC;AACvC,kBAAc;AAKd,QAAI,cAAc;AAChB,UACE,QAAQ,SAAS,KACjB,aAAa,UACb,WAAW,QAAQ,QAAQ,SAAS,CAAC,EAAE,MAAM,EAAE,GAC/C;AACA,gBAAQ,QAAQ,SAAS,CAAC,IACxB,QAAQ,QAAQ,SAAS,CAAC,EAAE,MAAM,GAAG,EAAE,IACvC,yBAAyB,OAAO,WAAW,CAAC,CAAC;AAAA,MACjD;AAEA,UAAI,aAAa,MAAO,eAAc;AAAA,IACxC;AAEA,YAAQ,KAAKA,MAAK;AAClB,YAAQ,KAAKA,MAAK;AAClB,aAASA,OAAM,MAAM,EAAE;AAAA,EACzB;AAEA,aAAW,IAAI;AAEf,SAAO,QAAQ,KAAK,EAAE;AACxB;AA5HA;AAAA;AAKA;AAAA;AAAA;;;ACUO,SAAS,cAAc,QAAQ,OAAO,MAAM;AACjD,QAAM,aAAa,MAAM;AACzB,QAAMC,YAAW,OAAO,YAAY,CAAC;AACrC,QAAM,UAAU,MAAM,cAAc,IAAI;AAExC,QAAM,UAAU,CAAC;AACjB,MAAIC,SAAQ;AAEZ,aAAW,KAAK,EAAE;AAElB,SAAO,EAAEA,SAAQD,UAAS,QAAQ;AAChC,UAAM,QAAQA,UAASC,MAAK;AAE5B,eAAW,WAAW,SAAS,CAAC,IAAIA;AAEpC,YAAQ;AAAA,MACN,QAAQ;AAAA,QACN,MAAM,OAAO,OAAO,QAAQ,OAAO;AAAA,UACjC,QAAQ;AAAA,UACR,OAAO;AAAA,UACP,GAAG,QAAQ,QAAQ;AAAA,QACrB,CAAC;AAAA,MACH;AAAA,IACF;AAEA,QAAI,MAAM,SAAS,QAAQ;AACzB,YAAM,iBAAiB;AAAA,IACzB;AAEA,QAAIA,SAAQD,UAAS,SAAS,GAAG;AAC/B,cAAQ;AAAA,QACN,QAAQ,KAAK,QAAQ,OAAOA,UAASC,SAAQ,CAAC,GAAG,QAAQ,KAAK,CAAC;AAAA,MACjE;AAAA,IACF;AAAA,EACF;AAEA,aAAW,IAAI;AAEf,SAAO,QAAQ,KAAK,EAAE;AACxB;AASA,SAAS,QAAQ,MAAM,OAAO,QAAQ,OAAO;AAC3C,MAAIA,SAAQ,MAAM,KAAK;AAEvB,SAAOA,UAAS;AACd,UAAM,SAAS,MAAM,KAAKA,MAAK,EAAE,MAAM,OAAO,QAAQ,KAAK;AAE3D,QAAI,WAAW,QAAQ,WAAW,GAAG;AACnC;AAAA,IACF;AAEA,QAAI,OAAO,WAAW,UAAU;AAC9B,aAAO,KAAK,OAAO,IAAI,MAAM;AAAA,IAC/B;AAEA,QAAI,WAAW,OAAO;AACpB,aAAO;AAAA,IACT;AAAA,EACF;AAEA,SAAO;AACT;AAnFA;AAAA;AAAA;AAAA;;;ACSO,SAAS,YAAYC,QAAOC,MAAK;AAEtC,QAAM,SAAS,CAAC;AAChB,MAAI,QAAQ;AACZ,MAAI,OAAO;AAEX,MAAIC;AAEJ,SAAQA,SAAQ,IAAI,KAAKF,MAAK,GAAI;AAChC,IAAAG,KAAIH,OAAM,MAAM,OAAOE,OAAM,KAAK,CAAC;AACnC,WAAO,KAAKA,OAAM,CAAC,CAAC;AACpB,YAAQA,OAAM,QAAQA,OAAM,CAAC,EAAE;AAC/B;AAAA,EACF;AAEA,EAAAC,KAAIH,OAAM,MAAM,KAAK,CAAC;AAEtB,SAAO,OAAO,KAAK,EAAE;AAKrB,WAASG,KAAIH,QAAO;AAClB,WAAO,KAAKC,KAAID,QAAO,MAAM,CAACA,MAAK,CAAC;AAAA,EACtC;AACF;AAlCA,IAIM;AAJN;AAAA;AAIA,IAAM,MAAM;AAAA;AAAA;;;AC4BL,SAAS,KAAK,OAAO,OAAOI,SAAQ;AACzC,QAAMC,UAASD,QAAO,UAAU,OAAO,SAAS,OAAOA,QAAO,SAAS;AAEvE,QAAM,YAAY,CAAC;AAEnB,QAAM,SAAS,CAAC;AAEhB,QAAM,QAAQ,CAAC;AACf,MAAIE,SAAQ;AAEZ,SAAO,EAAEA,SAAQ,MAAM,OAAO,QAAQ;AACpC,UAAM,UAAU,MAAM,OAAOA,MAAK;AAElC,QAAI,CAAC,eAAe,MAAM,OAAO,OAAO,GAAG;AACzC;AAAA,IACF;AAEA,UAAM,aAAa,MAAM,eAAe,OAAO;AAE/C,QAAIC;AAEJ,WAAQA,SAAQ,WAAW,KAAKF,MAAK,GAAI;AACvC,YAAM,SAAS,YAAY,WAAW,QAAQ,QAAQ,OAAO;AAC7D,YAAM,QAAQ,WAAW;AACzB,YAAMG,YAAWD,OAAM,SAAS,SAASA,OAAM,CAAC,EAAE,SAAS;AAE3D,UAAI,UAAU,SAASC,SAAQ,GAAG;AAChC,YAAI,MAAMA,SAAQ,EAAE,UAAU,CAAC,QAAQ;AACrC,gBAAMA,SAAQ,EAAE,SAAS;AAAA,QAC3B;AAEA,YAAI,MAAMA,SAAQ,EAAE,SAAS,CAAC,OAAO;AACnC,gBAAMA,SAAQ,EAAE,QAAQ;AAAA,QAC1B;AAAA,MACF,OAAO;AACL,kBAAU,KAAKA,SAAQ;AACvB,cAAMA,SAAQ,IAAI,EAAC,QAAQ,MAAK;AAAA,MAClC;AAAA,IACF;AAAA,EACF;AAEA,YAAU,KAAK,SAAS;AAExB,MAAI,QAAQJ,QAAO,SAASA,QAAO,OAAO,SAAS;AACnD,QAAMK,OAAMJ,OAAM,UAAUD,QAAO,QAAQA,QAAO,MAAM,SAAS;AACjE,EAAAE,SAAQ;AAER,SAAO,EAAEA,SAAQ,UAAU,QAAQ;AACjC,UAAME,YAAW,UAAUF,MAAK;AAGhC,QAAIE,YAAW,SAASA,aAAYC,MAAK;AACvC;AAAA,IACF;AAKA,QACGD,YAAW,IAAIC,QACd,UAAUH,SAAQ,CAAC,MAAME,YAAW,KACpC,MAAMA,SAAQ,EAAE,SAChB,CAAC,MAAMA,YAAW,CAAC,EAAE,UACrB,CAAC,MAAMA,YAAW,CAAC,EAAE,SACtB,UAAUF,SAAQ,CAAC,MAAME,YAAW,KACnC,MAAMA,SAAQ,EAAE,UAChB,CAAC,MAAMA,YAAW,CAAC,EAAE,UACrB,CAAC,MAAMA,YAAW,CAAC,EAAE,OACvB;AACA;AAAA,IACF;AAEA,QAAI,UAAUA,WAAU;AAItB,aAAO,KAAK,kBAAkBH,OAAM,MAAM,OAAOG,SAAQ,GAAG,IAAI,CAAC;AAAA,IACnE;AAEA,YAAQA;AAER,QACE,iBAAiB,KAAKH,OAAM,OAAOG,SAAQ,CAAC,MAC3C,CAACJ,QAAO,UAAU,CAACA,QAAO,OAAO,SAASC,OAAM,OAAOG,SAAQ,CAAC,IACjE;AAEA,aAAO,KAAK,IAAI;AAAA,IAClB,OAAO;AAEL,aAAO,KAAK,yBAAyBH,OAAM,WAAWG,SAAQ,CAAC,CAAC;AAChE;AAAA,IACF;AAAA,EACF;AAEA,SAAO,KAAK,kBAAkBH,OAAM,MAAM,OAAOI,IAAG,GAAGL,QAAO,KAAK,CAAC;AAEpE,SAAO,OAAO,KAAK,EAAE;AACvB;AAOA,SAAS,UAAUM,IAAGC,IAAG;AACvB,SAAOD,KAAIC;AACb;AAOA,SAAS,kBAAkBN,QAAO,OAAO;AACvC,QAAM,aAAa;AAEnB,QAAM,YAAY,CAAC;AAEnB,QAAM,UAAU,CAAC;AACjB,QAAM,QAAQA,SAAQ;AACtB,MAAIC,SAAQ;AACZ,MAAI,QAAQ;AAEZ,MAAIC;AAEJ,SAAQA,SAAQ,WAAW,KAAK,KAAK,GAAI;AACvC,cAAU,KAAKA,OAAM,KAAK;AAAA,EAC5B;AAEA,SAAO,EAAED,SAAQ,UAAU,QAAQ;AACjC,QAAI,UAAU,UAAUA,MAAK,GAAG;AAC9B,cAAQ,KAAKD,OAAM,MAAM,OAAO,UAAUC,MAAK,CAAC,CAAC;AAAA,IACnD;AAEA,YAAQ,KAAK,IAAI;AACjB,YAAQ,UAAUA,MAAK;AAAA,EACzB;AAEA,UAAQ,KAAKD,OAAM,MAAM,KAAK,CAAC;AAE/B,SAAO,QAAQ,KAAK,EAAE;AACxB;AA7KA;AAAA;AAIA;AACA;AAAA;AAAA;;;ACIO,SAAS,MAAMO,SAAQ;AAI5B,QAAM,UAAUA,WAAU,CAAC;AAC3B,QAAMC,OAAM,QAAQ,OAAO,CAAC;AAC5B,MAAI,YAAY,QAAQ,aAAa;AACrC,MAAI,OAAOA,KAAI,QAAQ;AACvB,MAAI,SAASA,KAAI,UAAU;AAE3B,SAAO,EAAC,MAAM,SAAS,MAAK;AAO5B,WAAS,UAAU;AACjB,WAAO,EAAC,KAAK,EAAC,MAAM,OAAM,GAAG,UAAS;AAAA,EACxC;AAOA,WAAS,MAAMC,QAAO;AACpB,iBAAaA;AAAA,EACf;AAOA,WAAS,KAAK,OAAO;AAEnB,UAAMA,SAAQ,SAAS;AACvB,UAAM,SAASA,OAAM,MAAM,WAAW;AACtC,UAAM,OAAO,OAAO,OAAO,SAAS,CAAC;AACrC,YAAQ,OAAO,SAAS;AACxB,aACE,OAAO,WAAW,IAAI,SAAS,KAAK,SAAS,IAAI,KAAK,SAAS;AACjE,WAAOA;AAAA,EACT;AACF;AAtDA;AAAA;AAAA;AAAA;;;AC6BO,SAAS,WAAW,MAAM,SAAS;AACxC,QAAM,WAAW,WAAW,CAAC;AAE7B,QAAM,QAAQ;AAAA,IACZ,eAAe;AAAA,IACf,mBAAmB;AAAA,IACnB,eAAe;AAAA,IACf,eAAe;AAAA,IACf;AAAA,IACA;AAAA;AAAA;AAAA,IAGA,UAAU,EAAC,GAAG,OAAQ;AAAA;AAAA,IAEtB,QAAQ;AAAA,IACR;AAAA,IACA,YAAY,CAAC;AAAA,IACb,MAAM,CAAC,GAAGC,KAAI;AAAA,IACd,SAAS,CAAC;AAAA,IACV,MAAM;AAAA,IACN,OAAO,CAAC;AAAA,IACR,QAAQ,CAAC,GAAG,MAAM;AAAA,EACpB;AAEA,YAAU,OAAO,QAAQ;AAEzB,MAAI,MAAM,QAAQ,kBAAkB;AAClC,UAAM,KAAK,KAAK,cAAc;AAAA,EAChC;AAEA,QAAM,SAAS,OAAO,QAAQ;AAAA,IAC5B;AAAA,IACA;AAAA,IACA,UAAU,MAAM;AAAA,EAClB,CAAC;AAED,MAAI,SAAS,MAAM,OAAO,MAAM,QAAW,OAAO;AAAA,IAChD,QAAQ;AAAA,IACR,OAAO;AAAA,IACP,KAAK,EAAC,MAAM,GAAG,QAAQ,EAAC;AAAA,IACxB,WAAW;AAAA,EACb,CAAC;AAED,MACE,UACA,OAAO,WAAW,OAAO,SAAS,CAAC,MAAM,MACzC,OAAO,WAAW,OAAO,SAAS,CAAC,MAAM,IACzC;AACA,cAAU;AAAA,EACZ;AAEA,SAAO;AAGP,WAAS,MAAM,MAAM;AACnB,UAAM,MAAM,KAAK,IAAI;AACrB,WAAOC;AAKP,aAASA,QAAO;AACd,YAAM,MAAM,IAAI;AAAA,IAClB;AAAA,EACF;AACF;AAMA,SAAS,QAAQC,QAAO;AACtB,QAAM,IAAI,MAAM,0BAA0BA,SAAQ,kBAAkB;AACtE;AAMA,SAAS,QAAQA,QAAO;AAEtB,QAAMC;AAAA;AAAA,IAA6BD;AAAA;AACnC,QAAM,IAAI,MAAM,iCAAiCC,MAAK,OAAO,GAAG;AAClE;AAGA,SAAS,eAAe,MAAM,OAAO;AAEnC,MAAI,KAAK,SAAS,gBAAgB,KAAK,SAAS,MAAM,MAAM;AAC1D,WAAO;AAAA,EACT;AACF;AAgBA,SAAS,uBAAuB,QAAQ,MAAM;AAC5C,SAAO,kBAAkB,QAAQ,MAAM,IAAI;AAC7C;AAiBA,SAAS,mBAAmB,QAAQ,MAAM;AACxC,SAAO,cAAc,QAAQ,MAAM,IAAI;AACzC;AA2BA,SAAS,UAAUD,QAAOE,SAAQ;AAChC,SAAO,KAAK,MAAMF,QAAOE,OAAM;AACjC;AA1LA,IAAAC,aAAA;AAAA;AAMA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AAAA;;;ACjBA;AAAA;AACA,IAAAC;AACA;AAAA;AAAA;;;ACwCO,SAAS,uBAAuB;AACrC,SAAO;AAAA,IACL,OAAO;AAAA,MACL,OAAO;AAAA,MACP,WAAW;AAAA,MACX,aAAa;AAAA,MACb,UAAU;AAAA,IACZ;AAAA,IACA,MAAM;AAAA,MACJ,UAAU;AAAA,MACV,OAAO;AAAA,MACP,WAAW;AAAA,MACX,aAAa;AAAA,MACb,UAAU;AAAA,IACZ;AAAA,EACF;AACF;AAMA,SAAS,WAAW,OAAO;AACzB,QAAM,QAAQ,MAAM;AACpB,KAAO,OAAO,4BAA4B;AAC1C,OAAK;AAAA,IACH;AAAA,MACE,MAAM;AAAA,MACN,OAAO,MAAM,IAAI,SAAUC,IAAG;AAC5B,eAAOA,OAAM,SAAS,OAAOA;AAAA,MAC/B,CAAC;AAAA,MACD,UAAU,CAAC;AAAA,IACb;AAAA,IACA;AAAA,EACF;AACA,OAAK,KAAK,UAAU;AACtB;AAMA,SAAS,UAAU,OAAO;AACxB,OAAK,KAAK,KAAK;AACf,OAAK,KAAK,UAAU;AACtB;AAMA,SAAS,SAAS,OAAO;AACvB,OAAK,MAAM,EAAC,MAAM,YAAY,UAAU,CAAC,EAAC,GAAG,KAAK;AACpD;AAMA,SAAS,KAAK,OAAO;AACnB,OAAK,KAAK,KAAK;AACjB;AAMA,SAAS,UAAU,OAAO;AACxB,OAAK,MAAM,EAAC,MAAM,aAAa,UAAU,CAAC,EAAC,GAAG,KAAK;AACrD;AAQA,SAAS,aAAa,OAAO;AAC3B,MAAIC,SAAQ,KAAK,OAAO;AAExB,MAAI,KAAK,KAAK,SAAS;AACrB,IAAAA,SAAQA,OAAM,QAAQ,cAAc,OAAO;AAAA,EAC7C;AAEA,QAAMC,QAAO,KAAK,MAAM,KAAK,MAAM,SAAS,CAAC;AAC7C,KAAOA,MAAK,SAAS,YAAY;AACjC,EAAAA,MAAK,QAAQD;AACb,OAAK,KAAK,KAAK;AACjB;AAOA,SAAS,QAAQ,IAAI,IAAI;AAEvB,SAAO,OAAO,MAAM,KAAK;AAC3B;AAWO,SAAS,mBAAmB,SAAS;AAC1C,QAAM,WAAW,WAAW,CAAC;AAC7B,QAAM,UAAU,SAAS;AACzB,QAAM,kBAAkB,SAAS;AACjC,QAAM,eAAe,SAAS;AAC9B,QAAM,SAAS,UAAU,MAAM;AAE/B,SAAO;AAAA,IACL,QAAQ;AAAA,MACN,EAAC,WAAW,MAAM,aAAa,YAAW;AAAA,MAC1C,EAAC,WAAW,MAAM,aAAa,YAAW;AAAA;AAAA;AAAA,MAG1C,EAAC,SAAS,MAAM,WAAW,KAAK,OAAO,SAAS;AAAA;AAAA,MAEhD,EAAC,WAAW,KAAK,aAAa,YAAW;AAAA;AAAA;AAAA,MAGzC,EAAC,SAAS,MAAM,WAAW,KAAK,OAAO,IAAG;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,MAM1C,EAAC,SAAS,MAAM,WAAW,KAAK,OAAO,QAAO;AAAA,IAChD;AAAA,IACA,UAAU;AAAA,MACR,YAAY;AAAA,MACZ,OAAO;AAAA,MACP,WAAW;AAAA,MACX,UAAU;AAAA,IACZ;AAAA,EACF;AAMA,WAAS,YAAYC,OAAMC,IAAG,OAAO,MAAM;AACzC,WAAO,cAAc,kBAAkBD,OAAM,OAAO,IAAI,GAAGA,MAAK,KAAK;AAAA,EACvE;AAUA,WAAS,eAAeA,OAAMC,IAAG,OAAO,MAAM;AAC5C,UAAM,MAAM,qBAAqBD,OAAM,OAAO,IAAI;AAClD,UAAMD,SAAQ,cAAc,CAAC,GAAG,CAAC;AAEjC,WAAOA,OAAM,MAAM,GAAGA,OAAM,QAAQ,IAAI,CAAC;AAAA,EAC3C;AAMA,WAAS,gBAAgBC,OAAMC,IAAG,OAAO,MAAM;AAC7C,UAAMC,QAAO,MAAM,MAAM,WAAW;AACpC,UAAM,UAAU,MAAM,MAAM,UAAU;AACtC,UAAMH,SAAQ,MAAM,kBAAkBC,OAAM;AAAA,MAC1C,GAAG;AAAA,MACH,QAAQ;AAAA,MACR,OAAO;AAAA,IACT,CAAC;AACD,YAAQ;AACR,IAAAE,MAAK;AACL,WAAOH;AAAA,EACT;AAMA,WAAS,cAAc,QAAQ,OAAO;AACpC,WAAO,cAAc,QAAQ;AAAA,MAC3B;AAAA;AAAA,MAEA;AAAA;AAAA,MAEA;AAAA;AAAA,MAEA;AAAA,IACF,CAAC;AAAA,EACH;AAOA,WAAS,kBAAkBC,OAAM,OAAO,MAAM;AAC5C,UAAMG,YAAWH,MAAK;AACtB,QAAII,SAAQ;AAEZ,UAAM,SAAS,CAAC;AAChB,UAAM,UAAU,MAAM,MAAM,OAAO;AAEnC,WAAO,EAAEA,SAAQD,UAAS,QAAQ;AAChC,aAAOC,MAAK,IAAI,qBAAqBD,UAASC,MAAK,GAAG,OAAO,IAAI;AAAA,IACnE;AAEA,YAAQ;AAER,WAAO;AAAA,EACT;AAOA,WAAS,qBAAqBJ,OAAM,OAAO,MAAM;AAC/C,UAAMG,YAAWH,MAAK;AACtB,QAAII,SAAQ;AAEZ,UAAM,SAAS,CAAC;AAChB,UAAM,UAAU,MAAM,MAAM,UAAU;AAEtC,WAAO,EAAEA,SAAQD,UAAS,QAAQ;AAIhC,aAAOC,MAAK,IAAI,gBAAgBD,UAASC,MAAK,GAAGJ,OAAM,OAAO,IAAI;AAAA,IACpE;AAEA,YAAQ;AAER,WAAO;AAAA,EACT;AAMA,WAAS,oBAAoBA,OAAM,QAAQ,OAAO;AAChD,QAAID,SAAQ,OAAgB,WAAWC,OAAM,QAAQ,KAAK;AAE1D,QAAI,MAAM,MAAM,SAAS,WAAW,GAAG;AACrC,MAAAD,SAAQA,OAAM,QAAQ,OAAO,MAAM;AAAA,IACrC;AAEA,WAAOA;AAAA,EACT;AACF;AA3SA,IAAAM,aAAA;AAAA;AA+BA;AACA;AACA;AAAA;AAAA;;;ACjCA;AAAA;AACA,IAAAC;AAAA;AAAA;;;ACmBO,SAAS,8BAA8B;AAC5C,SAAO;AAAA,IACL,MAAM;AAAA,MACJ,2BAA2B;AAAA,MAC3B,6BAA6B;AAAA,MAC7B,WAAW;AAAA,IACb;AAAA,EACF;AACF;AASO,SAAS,4BAA4B;AAC1C,SAAO;AAAA,IACL,QAAQ,CAAC,EAAC,SAAS,MAAM,WAAW,KAAK,OAAO,QAAO,CAAC;AAAA,IACxD,UAAU,EAAC,UAAU,yBAAwB;AAAA,EAC/C;AACF;AAMA,SAAS,UAAU,OAAO;AAExB,QAAMC,QAAO,KAAK,MAAM,KAAK,MAAM,SAAS,CAAC;AAC7C,KAAOA,MAAK,SAAS,UAAU;AAC/B,EAAAA,MAAK,UAAU,MAAM,SAAS;AAChC;AAMA,SAAS,8BAA8B,OAAO;AAC5C,QAAM,SAAS,KAAK,MAAM,KAAK,MAAM,SAAS,CAAC;AAE/C,MACE,UACA,OAAO,SAAS,cAChB,OAAO,OAAO,YAAY,WAC1B;AACA,UAAMA,QAAO,KAAK,MAAM,KAAK,MAAM,SAAS,CAAC;AAC7C,OAAOA,MAAK,SAAS,WAAW;AAChC,UAAMC,QAAOD,MAAK,SAAS,CAAC;AAE5B,QAAIC,SAAQA,MAAK,SAAS,QAAQ;AAChC,YAAMC,YAAW,OAAO;AACxB,UAAIC,SAAQ;AAEZ,UAAI;AAEJ,aAAO,EAAEA,SAAQD,UAAS,QAAQ;AAChC,cAAM,UAAUA,UAASC,MAAK;AAC9B,YAAI,QAAQ,SAAS,aAAa;AAChC,4BAAkB;AAClB;AAAA,QACF;AAAA,MACF;AAEA,UAAI,oBAAoBH,OAAM;AAE5B,QAAAC,MAAK,QAAQA,MAAK,MAAM,MAAM,CAAC;AAE/B,YAAIA,MAAK,MAAM,WAAW,GAAG;AAC3B,UAAAD,MAAK,SAAS,MAAM;AAAA,QACtB,WACEA,MAAK,YACLC,MAAK,YACL,OAAOA,MAAK,SAAS,MAAM,WAAW,UACtC;AACA,UAAAA,MAAK,SAAS,MAAM;AACpB,UAAAA,MAAK,SAAS,MAAM;AACpB,UAAAD,MAAK,SAAS,QAAQ,OAAO,OAAO,CAAC,GAAGC,MAAK,SAAS,KAAK;AAAA,QAC7D;AAAA,MACF;AAAA,IACF;AAAA,EACF;AAEA,OAAK,KAAK,KAAK;AACjB;AAMA,SAAS,yBAAyBD,OAAM,QAAQ,OAAO,MAAM;AAC3D,QAAMC,QAAOD,MAAK,SAAS,CAAC;AAC5B,QAAM,YACJ,OAAOA,MAAK,YAAY,aAAaC,SAAQA,MAAK,SAAS;AAC7D,QAAM,WAAW,OAAOD,MAAK,UAAU,MAAM,OAAO;AACpD,QAAM,UAAU,MAAM,cAAc,IAAI;AAExC,MAAI,WAAW;AACb,YAAQ,KAAK,QAAQ;AAAA,EACvB;AAEA,MAAII,SAAQ,OAAgB,SAASJ,OAAM,QAAQ,OAAO;AAAA,IACxD,GAAG;AAAA,IACH,GAAG,QAAQ,QAAQ;AAAA,EACrB,CAAC;AAED,MAAI,WAAW;AACb,IAAAI,SAAQA,OAAM,QAAQ,mCAAmC,KAAK;AAAA,EAChE;AAEA,SAAOA;AAMP,WAAS,MAAM,IAAI;AACjB,WAAO,KAAK;AAAA,EACd;AACF;AA5IA,IAAAC,aAAA;AAAA;AAUA;AACA;AAAA;AAAA;;;ACXA;AAAA;AAAA,IAAAC;AAAA;AAAA;;;ACgCO,SAAS,kBAAkB;AAChC,SAAO;AAAA,IACL,+BAA+B;AAAA,IAC/B,wBAAwB;AAAA,IACxB,6BAA6B;AAAA,IAC7B,qBAAqB;AAAA,IACrB,4BAA4B;AAAA,EAC9B;AACF;AAYO,SAAS,cAAc,SAAS;AACrC,SAAO;AAAA,IACL,YAAY;AAAA,MACV,6BAA6B;AAAA,MAC7B,sBAAsB,OAAO;AAAA,MAC7B,2BAA2B;AAAA,MAC3B,mBAAmB,OAAO;AAAA,MAC1B,0BAA0B;AAAA,IAC5B;AAAA,EACF;AACF;AA9DA,IAAAC,aAAA;AAAA;AAMA;AAIA;AAIA;AAIA;AACA;AAAA;AAAA;;;ACnBA;AAAA;AACA,IAAAC;AAAA;AAAA;;;ACqBO,SAAS,OAAOC,OAAM,OAAOC,SAAQ,OAAO;AACjD,QAAMC,OAAMF,MAAK;AACjB,MAAI,aAAa;AAEjB,MAAI;AAGJ,MAAI,QAAQ,GAAG;AACb,YAAQ,CAAC,QAAQE,OAAM,IAAIA,OAAM;AAAA,EACnC,OAAO;AACL,YAAQ,QAAQA,OAAMA,OAAM;AAAA,EAC9B;AACA,EAAAD,UAASA,UAAS,IAAIA,UAAS;AAG/B,MAAI,MAAM,SAAS,KAAO;AACxB,iBAAa,MAAM,KAAK,KAAK;AAC7B,eAAW,QAAQ,OAAOA,OAAM;AAEhC,IAAAD,MAAK,OAAO,GAAG,UAAU;AAAA,EAC3B,OAAO;AAEL,QAAIC,QAAQ,CAAAD,MAAK,OAAO,OAAOC,OAAM;AAGrC,WAAO,aAAa,MAAM,QAAQ;AAChC,mBAAa,MAAM,MAAM,YAAY,aAAa,GAAK;AACvD,iBAAW,QAAQ,OAAO,CAAC;AAE3B,MAAAD,MAAK,OAAO,GAAG,UAAU;AACzB,oBAAc;AACd,eAAS;AAAA,IACX;AAAA,EACF;AACF;AAkBO,SAAS,KAAKA,OAAM,OAAO;AAChC,MAAIA,MAAK,SAAS,GAAG;AACnB,WAAOA,OAAMA,MAAK,QAAQ,GAAG,KAAK;AAClC,WAAOA;AAAA,EACT;AACA,SAAO;AACT;AAhFA;AAAA;AAAA;AAAA;;;ACqBO,SAAS,kBAAkB,YAAY;AAE5C,QAAMG,OAAM,CAAC;AACb,MAAIC,SAAQ;AAEZ,SAAO,EAAEA,SAAQ,WAAW,QAAQ;AAClC,oBAAgBD,MAAK,WAAWC,MAAK,CAAC;AAAA,EACxC;AAEA,SAAOD;AACT;AAYA,SAAS,gBAAgBA,MAAKE,YAAW;AAEvC,MAAI;AAEJ,OAAK,QAAQA,YAAW;AACtB,UAAM,QAAQ,eAAe,KAAKF,MAAK,IAAI,IAAIA,KAAI,IAAI,IAAI;AAE3D,UAAM,OAAO,UAAUA,KAAI,IAAI,IAAI,CAAC;AAEpC,UAAM,QAAQE,WAAU,IAAI;AAE5B,QAAIC;AAEJ,QAAI,OAAO;AACT,WAAKA,SAAQ,OAAO;AAClB,YAAI,CAAC,eAAe,KAAK,MAAMA,KAAI,EAAG,MAAKA,KAAI,IAAI,CAAC;AACpD,cAAMC,SAAQ,MAAMD,KAAI;AACxB;AAAA;AAAA,UAEE,KAAKA,KAAI;AAAA,UACT,MAAM,QAAQC,MAAK,IAAIA,SAAQA,SAAQ,CAACA,MAAK,IAAI,CAAC;AAAA,QACpD;AAAA,MACF;AAAA,IACF;AAAA,EACF;AACF;AAaA,SAAS,WAAW,UAAUC,OAAM;AAClC,MAAIJ,SAAQ;AAEZ,QAAM,SAAS,CAAC;AAEhB,SAAO,EAAEA,SAAQI,MAAK,QAAQ;AAE5B;AAAC,KAACA,MAAKJ,MAAK,EAAE,QAAQ,UAAU,WAAW,QAAQ,KAAKI,MAAKJ,MAAK,CAAC;AAAA,EACrE;AAEA,SAAO,UAAU,GAAG,GAAG,MAAM;AAC/B;AAUO,SAAS,sBAAsB,gBAAgB;AAEpD,QAAMK,YAAW,CAAC;AAClB,MAAIL,SAAQ;AAEZ,SAAO,EAAEA,SAAQ,eAAe,QAAQ;AACtC,kBAAcK,WAAU,eAAeL,MAAK,CAAC;AAAA,EAC/C;AAEA,SAAOK;AACT;AAYA,SAAS,cAAcN,MAAKE,YAAW;AAErC,MAAI;AAEJ,OAAK,QAAQA,YAAW;AACtB,UAAM,QAAQ,eAAe,KAAKF,MAAK,IAAI,IAAIA,KAAI,IAAI,IAAI;AAC3D,UAAM,OAAO,UAAUA,KAAI,IAAI,IAAI,CAAC;AACpC,UAAM,QAAQE,WAAU,IAAI;AAE5B,QAAIK;AAEJ,QAAI,OAAO;AACT,WAAKA,SAAQ,OAAO;AAElB,aAAKA,KAAI,IAAI,MAAMA,KAAI;AAAA,MACzB;AAAA,IACF;AAAA,EACF;AACF;AA9IA,IAWM;AAXN;AAAA;AASA;AAEA,IAAM,iBAAiB,CAAC,EAAE;AAAA;AAAA;;;ACyCnB,SAAS,qBAAqB;AACnC,SAAO;AAAA,IACL,MAAAC;AAAA,EACF;AACF;AAqCA,SAAS,sBAAsB,SAASC,KAAI,KAAK;AAC/C,QAAMC,QAAO;AAEb,MAAI;AAEJ,MAAIC;AACJ,SAAO;AAYP,WAAS,MAAMC,OAAM;AACnB,QAAI,CAAC,SAASA,KAAI,KAAK,CAAC,cAAc,KAAKF,OAAMA,MAAK,QAAQ,KAAK,mBAAmBA,MAAK,MAAM,GAAG;AAClG,aAAO,IAAIE,KAAI;AAAA,IACjB;AACA,YAAQ,MAAM,iBAAiB;AAC/B,YAAQ,MAAM,sBAAsB;AACpC,WAAO,MAAMA,KAAI;AAAA,EACnB;AAYA,WAAS,MAAMA,OAAM;AACnB,QAAI,SAASA,KAAI,GAAG;AAClB,cAAQ,QAAQA,KAAI;AACpB,aAAO;AAAA,IACT;AACA,QAAIA,UAAS,IAAI;AACf,cAAQ,QAAQA,KAAI;AACpB,aAAO;AAAA,IACT;AACA,WAAO,IAAIA,KAAI;AAAA,EACjB;AAgBA,WAAS,YAAYA,OAAM;AAEzB,QAAIA,UAAS,IAAI;AACf,aAAO,QAAQ,MAAM,qBAAqB,kBAAkB,cAAc,EAAEA,KAAI;AAAA,IAClF;AAGA,QAAIA,UAAS,MAAMA,UAAS,MAAM,kBAAkBA,KAAI,GAAG;AACzD,MAAAD,QAAO;AACP,cAAQ,QAAQC,KAAI;AACpB,aAAO;AAAA,IACT;AAQA,WAAO,iBAAiBA,KAAI;AAAA,EAC9B;AAYA,WAAS,eAAeA,OAAM;AAC5B,YAAQ,QAAQA,KAAI;AACpB,UAAM;AACN,WAAO;AAAA,EACT;AAYA,WAAS,iBAAiBA,OAAM;AAG9B,QAAID,SAAQ,OAAO,WAAWD,MAAK,QAAQ,GAAG;AAC5C,cAAQ,KAAK,sBAAsB;AACnC,cAAQ,KAAK,iBAAiB;AAC9B,aAAOD,IAAGG,KAAI;AAAA,IAChB;AACA,WAAO,IAAIA,KAAI;AAAA,EACjB;AACF;AAaA,SAAS,oBAAoB,SAASH,KAAI,KAAK;AAC7C,QAAMC,QAAO;AACb,SAAO;AAYP,WAAS,SAASE,OAAM;AACtB,QAAIA,UAAS,MAAMA,UAAS,OAAO,CAAC,YAAY,KAAKF,OAAMA,MAAK,QAAQ,KAAK,mBAAmBA,MAAK,MAAM,GAAG;AAC5G,aAAO,IAAIE,KAAI;AAAA,IACjB;AACA,YAAQ,MAAM,iBAAiB;AAC/B,YAAQ,MAAM,oBAAoB;AAGlC,WAAO,QAAQ,MAAM,WAAW,QAAQ,QAAQ,QAAQ,QAAQ,QAAQ,MAAM,QAAQ,GAAG,GAAG,GAAG,GAAG,EAAEA,KAAI;AAAA,EAC1G;AAYA,WAAS,SAASA,OAAM;AACtB,YAAQ,KAAK,oBAAoB;AACjC,YAAQ,KAAK,iBAAiB;AAC9B,WAAOH,IAAGG,KAAI;AAAA,EAChB;AACF;AAaA,SAAS,yBAAyB,SAASH,KAAI,KAAK;AAClD,QAAMC,QAAO;AACb,MAAIG,UAAS;AACb,MAAI,OAAO;AACX,SAAO;AAYP,WAAS,cAAcD,OAAM;AAC3B,SAAKA,UAAS,MAAMA,UAAS,QAAQ,iBAAiB,KAAKF,OAAMA,MAAK,QAAQ,KAAK,CAAC,mBAAmBA,MAAK,MAAM,GAAG;AACnH,cAAQ,MAAM,iBAAiB;AAC/B,cAAQ,MAAM,qBAAqB;AACnC,MAAAG,WAAU,OAAO,cAAcD,KAAI;AACnC,cAAQ,QAAQA,KAAI;AACpB,aAAO;AAAA,IACT;AACA,WAAO,IAAIA,KAAI;AAAA,EACjB;AAYA,WAAS,qBAAqBA,OAAM;AAElC,QAAI,WAAWA,KAAI,KAAKC,QAAO,SAAS,GAAG;AAEzC,MAAAA,WAAU,OAAO,cAAcD,KAAI;AACnC,cAAQ,QAAQA,KAAI;AACpB,aAAO;AAAA,IACT;AACA,QAAIA,UAAS,IAAI;AACf,YAAM,WAAWC,QAAO,YAAY;AACpC,UAAI,aAAa,UAAU,aAAa,SAAS;AAC/C,gBAAQ,QAAQD,KAAI;AACpB,eAAO;AAAA,MACT;AAAA,IACF;AACA,WAAO,IAAIA,KAAI;AAAA,EACjB;AAYA,WAAS,sBAAsBA,OAAM;AACnC,QAAIA,UAAS,IAAI;AACf,cAAQ,QAAQA,KAAI;AACpB,UAAI,MAAM;AACR,eAAO;AAAA,MACT;AACA,aAAO;AACP,aAAO;AAAA,IACT;AACA,WAAO,IAAIA,KAAI;AAAA,EACjB;AAYA,WAAS,cAAcA,OAAM;AAG3B,WAAOA,UAAS,QAAQ,aAAaA,KAAI,KAAK,0BAA0BA,KAAI,KAAK,kBAAkBA,KAAI,KAAK,mBAAmBA,KAAI,IAAI,IAAIA,KAAI,IAAI,QAAQ,QAAQ,QAAQ,QAAQ,QAAQ,MAAM,aAAa,GAAG,GAAG,EAAEA,KAAI;AAAA,EAC5N;AAYA,WAAS,cAAcA,OAAM;AAC3B,YAAQ,KAAK,qBAAqB;AAClC,YAAQ,KAAK,iBAAiB;AAC9B,WAAOH,IAAGG,KAAI;AAAA,EAChB;AACF;AAaA,SAAS,kBAAkB,SAASH,KAAI,KAAK;AAC3C,MAAI,OAAO;AACX,SAAO;AAYP,WAAS,gBAAgBG,OAAM;AAC7B,SAAKA,UAAS,MAAMA,UAAS,QAAQ,OAAO,GAAG;AAC7C;AACA,cAAQ,QAAQA,KAAI;AACpB,aAAO;AAAA,IACT;AACA,QAAIA,UAAS,MAAM,SAAS,GAAG;AAC7B,cAAQ,QAAQA,KAAI;AACpB,aAAO;AAAA,IACT;AACA,WAAO,IAAIA,KAAI;AAAA,EACjB;AAYA,WAAS,eAAeA,OAAM;AAE5B,WAAOA,UAAS,OAAO,IAAIA,KAAI,IAAIH,IAAGG,KAAI;AAAA,EAC5C;AACF;AAaA,SAAS,eAAe,SAASH,KAAI,KAAK;AAExC,MAAI;AAEJ,MAAI;AAEJ,MAAI;AACJ,SAAO;AAYP,WAAS,aAAaG,OAAM;AAI1B,QAAIA,UAAS,MAAMA,UAAS,IAAI;AAC9B,aAAO,QAAQ,MAAM,OAAO,aAAa,mBAAmB,EAAEA,KAAI;AAAA,IACpE;AAQA,QAAIA,UAAS,QAAQ,0BAA0BA,KAAI,KAAK,kBAAkBA,KAAI,KAAKA,UAAS,MAAM,mBAAmBA,KAAI,GAAG;AAC1H,aAAO,YAAYA,KAAI;AAAA,IACzB;AACA,WAAO;AACP,YAAQ,QAAQA,KAAI;AACpB,WAAO;AAAA,EACT;AAYA,WAAS,oBAAoBA,OAAM;AAEjC,QAAIA,UAAS,IAAI;AACf,gCAA0B;AAAA,IAC5B,OAGK;AACH,oCAA8B;AAC9B,gCAA0B;AAAA,IAC5B;AACA,YAAQ,QAAQA,KAAI;AACpB,WAAO;AAAA,EACT;AAWA,WAAS,YAAYA,OAAM;AAGzB,QAAI,+BAA+B,2BAA2B,CAAC,MAAM;AACnE,aAAO,IAAIA,KAAI;AAAA,IACjB;AACA,WAAOH,IAAGG,KAAI;AAAA,EAChB;AACF;AAaA,SAAS,aAAa,SAASH,KAAI;AACjC,MAAI,WAAW;AACf,MAAI,YAAY;AAChB,SAAO;AAYP,WAAS,WAAWG,OAAM;AACxB,QAAIA,UAAS,IAAI;AACf;AACA,cAAQ,QAAQA,KAAI;AACpB,aAAO;AAAA,IACT;AAKA,QAAIA,UAAS,MAAM,YAAY,UAAU;AACvC,aAAO,kBAAkBA,KAAI;AAAA,IAC/B;AAKA,QAAIA,UAAS,MAAMA,UAAS,MAAMA,UAAS,MAAMA,UAAS,MAAMA,UAAS,MAAMA,UAAS,MAAMA,UAAS,MAAMA,UAAS,MAAMA,UAAS,MAAMA,UAAS,MAAMA,UAAS,MAAMA,UAAS,MAAMA,UAAS,MAAMA,UAAS,MAAMA,UAAS,KAAK;AAClO,aAAO,QAAQ,MAAM,OAAOH,KAAI,iBAAiB,EAAEG,KAAI;AAAA,IACzD;AACA,QAAIA,UAAS,QAAQ,0BAA0BA,KAAI,KAAK,kBAAkBA,KAAI,GAAG;AAC/E,aAAOH,IAAGG,KAAI;AAAA,IAChB;AACA,YAAQ,QAAQA,KAAI;AACpB,WAAO;AAAA,EACT;AAYA,WAAS,kBAAkBA,OAAM;AAE/B,QAAIA,UAAS,IAAI;AACf;AAAA,IACF;AACA,YAAQ,QAAQA,KAAI;AACpB,WAAO;AAAA,EACT;AACF;AAiBA,SAAS,cAAc,SAASH,KAAI,KAAK;AACvC,SAAOK;AAYP,WAASA,OAAMF,OAAM;AAEnB,QAAIA,UAAS,MAAMA,UAAS,MAAMA,UAAS,MAAMA,UAAS,MAAMA,UAAS,MAAMA,UAAS,MAAMA,UAAS,MAAMA,UAAS,MAAMA,UAAS,MAAMA,UAAS,MAAMA,UAAS,MAAMA,UAAS,KAAK;AACrL,cAAQ,QAAQA,KAAI;AACpB,aAAOE;AAAA,IACT;AAKA,QAAIF,UAAS,IAAI;AACf,cAAQ,QAAQA,KAAI;AACpB,aAAO;AAAA,IACT;AAKA,QAAIA,UAAS,IAAI;AACf,cAAQ,QAAQA,KAAI;AACpB,aAAO;AAAA,IACT;AACA;AAAA;AAAA,MAEAA,UAAS;AAAA,MAETA,UAAS,QAAQ,0BAA0BA,KAAI,KAAK,kBAAkBA,KAAI;AAAA,MAAG;AAC3E,aAAOH,IAAGG,KAAI;AAAA,IAChB;AACA,WAAO,IAAIA,KAAI;AAAA,EACjB;AAeA,WAAS,kBAAkBA,OAAM;AAG/B,QAAIA,UAAS,QAAQA,UAAS,MAAMA,UAAS,MAAM,0BAA0BA,KAAI,KAAK,kBAAkBA,KAAI,GAAG;AAC7G,aAAOH,IAAGG,KAAI;AAAA,IAChB;AACA,WAAOE,OAAMF,KAAI;AAAA,EACnB;AAYA,WAAS,6BAA6BA,OAAM;AAE1C,WAAO,WAAWA,KAAI,IAAI,8BAA8BA,KAAI,IAAI,IAAIA,KAAI;AAAA,EAC1E;AAYA,WAAS,8BAA8BA,OAAM;AAE3C,QAAIA,UAAS,IAAI;AACf,cAAQ,QAAQA,KAAI;AACpB,aAAOE;AAAA,IACT;AACA,QAAI,WAAWF,KAAI,GAAG;AACpB,cAAQ,QAAQA,KAAI;AACpB,aAAO;AAAA,IACT;AAGA,WAAO,IAAIA,KAAI;AAAA,EACjB;AACF;AAiBA,SAAS,4BAA4B,SAASH,KAAI,KAAK;AACrD,SAAO;AAYP,WAAS,MAAMG,OAAM;AAEnB,YAAQ,QAAQA,KAAI;AACpB,WAAO;AAAA,EACT;AAYA,WAAS,MAAMA,OAAM;AAEnB,WAAO,kBAAkBA,KAAI,IAAI,IAAIA,KAAI,IAAIH,IAAGG,KAAI;AAAA,EACtD;AACF;AAQA,SAAS,YAAYA,OAAM;AACzB,SAAOA,UAAS,QAAQA,UAAS,MAAMA,UAAS,MAAMA,UAAS,MAAMA,UAAS,MAAMA,UAAS,MAAMA,UAAS,OAAO,0BAA0BA,KAAI;AACnJ;AAQA,SAAS,iBAAiBA,OAAM;AAC9B,SAAO,CAAC,WAAWA,KAAI;AACzB;AAMA,SAAS,cAAcA,OAAM;AAK3B,SAAO,EAAEA,UAAS,MAAM,SAASA,KAAI;AACvC;AAMA,SAAS,SAASA,OAAM;AACtB,SAAOA,UAAS,MAAMA,UAAS,MAAMA,UAAS,MAAMA,UAAS,MAAM,kBAAkBA,KAAI;AAC3F;AAMA,SAAS,mBAAmB,QAAQ;AAClC,MAAIG,SAAQ,OAAO;AACnB,MAAI,SAAS;AACb,SAAOA,UAAS;AACd,UAAM,QAAQ,OAAOA,MAAK,EAAE,CAAC;AAC7B,SAAK,MAAM,SAAS,eAAe,MAAM,SAAS,iBAAiB,CAAC,MAAM,WAAW;AACnF,eAAS;AACT;AAAA,IACF;AAIA,QAAI,MAAM,+BAA+B;AACvC,eAAS;AACT;AAAA,IACF;AAAA,EACF;AACA,MAAI,OAAO,SAAS,KAAK,CAAC,QAAQ;AAGhC,WAAO,OAAO,SAAS,CAAC,EAAE,CAAC,EAAE,gCAAgC;AAAA,EAC/D;AACA,SAAO;AACT;AAr1BA,IAKM,WAIA,QAIA,MAIA,OAIA,qBAIA,aAKA,kBAKA,eAOAP,OAiBFI;AA3DJ;AAAA;AAIA;AACA,IAAM,YAAY;AAAA,MAChB,UAAU;AAAA,MACV,SAAS;AAAA,IACX;AACA,IAAM,SAAS;AAAA,MACb,UAAU;AAAA,MACV,SAAS;AAAA,IACX;AACA,IAAM,OAAO;AAAA,MACX,UAAU;AAAA,MACV,SAAS;AAAA,IACX;AACA,IAAM,QAAQ;AAAA,MACZ,UAAU;AAAA,MACV,SAAS;AAAA,IACX;AACA,IAAM,sBAAsB;AAAA,MAC1B,UAAU;AAAA,MACV,SAAS;AAAA,IACX;AACA,IAAM,cAAc;AAAA,MAClB,MAAM;AAAA,MACN,UAAU;AAAA,MACV,UAAU;AAAA,IACZ;AACA,IAAM,mBAAmB;AAAA,MACvB,MAAM;AAAA,MACN,UAAU;AAAA,MACV,UAAU;AAAA,IACZ;AACA,IAAM,gBAAgB;AAAA,MACpB,MAAM;AAAA,MACN,UAAU;AAAA,MACV,UAAU;AAAA,IACZ;AAGA,IAAMJ,QAAO,CAAC;AAiBd,IAAII,QAAO;AAGX,WAAOA,QAAO,KAAK;AACjB,MAAAJ,MAAKI,KAAI,IAAI;AACb,MAAAA;AACA,UAAIA,UAAS,GAAI,CAAAA,QAAO;AAAA,eAAYA,UAAS,GAAI,CAAAA,QAAO;AAAA,IAC1D;AACA,IAAAJ,MAAK,EAAE,IAAI;AACX,IAAAA,MAAK,EAAE,IAAI;AACX,IAAAA,MAAK,EAAE,IAAI;AACX,IAAAA,MAAK,EAAE,IAAI;AACX,IAAAA,MAAK,EAAE,IAAI,CAAC,eAAe,gBAAgB;AAC3C,IAAAA,MAAK,GAAG,IAAI,CAAC,eAAe,gBAAgB;AAC5C,IAAAA,MAAK,EAAE,IAAI,CAAC,eAAe,WAAW;AACtC,IAAAA,MAAK,GAAG,IAAI,CAAC,eAAe,WAAW;AAAA;AAAA;;;AC5DhC,SAAS,OAAOQ,QAAO;AAC5B,SAAOA,OAAM,QAAQ,WAAWC,QAAO;AAQvC,WAASA,SAAQD,QAAO;AACtB,WACE,MACA;AAAA;AAAA,MACmDA;AAAA,IACnD,IACA;AAAA,EAEJ;AACF;AAhCA,IAAM;AAAN;AAAA;AAAA,IAAM,sBAAsB,EAAC,KAAK,QAAQ,KAAK,OAAO,KAAK,MAAM,KAAK,KAAI;AAAA;AAAA;;;ACwBnE,SAAS,YAAY,KAAK,UAAU;AACzC,QAAME,SAAQ,OAAO,aAAa,OAAO,EAAE,CAAC;AAC5C,MAAI,CAAC,UAAU;AACb,WAAOA;AAAA,EACT;AACA,QAAM,QAAQA,OAAM,QAAQ,GAAG;AAC/B,QAAM,eAAeA,OAAM,QAAQ,GAAG;AACtC,QAAM,aAAaA,OAAM,QAAQ,GAAG;AACpC,QAAM,QAAQA,OAAM,QAAQ,GAAG;AAC/B;AAAA;AAAA,IAEA,QAAQ;AAAA,IAER,QAAQ,MAAM,QAAQ,SAAS,eAAe,MAAM,QAAQ,gBAAgB,aAAa,MAAM,QAAQ;AAAA,IAEvG,SAAS,KAAKA,OAAM,MAAM,GAAG,KAAK,CAAC;AAAA,IAAG;AACpC,WAAOA;AAAA,EACT;AACA,SAAO;AACT;AAaO,SAAS,aAAaA,QAAO;AAElC,QAAM,SAAS,CAAC;AAChB,MAAIC,SAAQ;AACZ,MAAI,QAAQ;AACZ,MAAIC,QAAO;AACX,SAAO,EAAED,SAAQD,OAAM,QAAQ;AAC7B,UAAMG,QAAOH,OAAM,WAAWC,MAAK;AAEnC,QAAIG,WAAU;AAGd,QAAID,UAAS,MAAM,kBAAkBH,OAAM,WAAWC,SAAQ,CAAC,CAAC,KAAK,kBAAkBD,OAAM,WAAWC,SAAQ,CAAC,CAAC,GAAG;AACnH,MAAAC,QAAO;AAAA,IACT,WAESC,QAAO,KAAK;AACnB,UAAI,CAAC,oBAAoB,KAAK,OAAO,aAAaA,KAAI,CAAC,GAAG;AACxD,QAAAC,WAAU,OAAO,aAAaD,KAAI;AAAA,MACpC;AAAA,IACF,WAESA,QAAO,SAAUA,QAAO,OAAQ;AACvC,YAAME,QAAOL,OAAM,WAAWC,SAAQ,CAAC;AAGvC,UAAIE,QAAO,SAAUE,QAAO,SAAUA,QAAO,OAAQ;AACnD,QAAAD,WAAU,OAAO,aAAaD,OAAME,KAAI;AACxC,QAAAH,QAAO;AAAA,MACT,OAEK;AACH,QAAAE,WAAU;AAAA,MACZ;AAAA,IACF,OAEK;AACH,MAAAA,WAAU,OAAO,aAAaD,KAAI;AAAA,IACpC;AACA,QAAIC,UAAS;AACX,aAAO,KAAKJ,OAAM,MAAM,OAAOC,MAAK,GAAG,mBAAmBG,QAAO,CAAC;AAClE,cAAQH,SAAQC,QAAO;AACvB,MAAAE,WAAU;AAAA,IACZ;AACA,QAAIF,OAAM;AACR,MAAAD,UAASC;AACT,MAAAA,QAAO;AAAA,IACT;AAAA,EACF;AACA,SAAO,OAAO,KAAK,EAAE,IAAIF,OAAM,MAAM,KAAK;AAC5C;AA1GA;AAAA;AAAA;AACA;AAAA;AAAA;;;ACaO,SAAS,yBAAyB;AACvC,SAAO;AAAA,IACL,MAAM;AAAA,MACJ;AAAA,MACA;AAAA,MACA;AAAA,IACF;AAAA,EACF;AACF;AAMA,SAAS,mBAAmB,OAAO;AACjC,kBAAgB,KAAK,MAAM,OAAO,SAAS;AAC7C;AAMA,SAAS,qBAAqB,OAAO;AACnC,kBAAgB,KAAK,MAAM,OAAO,SAAS;AAC7C;AAMA,SAAS,oBAAoB,OAAO;AAClC,kBAAgB,KAAK,MAAM,KAAK;AAClC;AAQA,SAAS,gBAAgB,OAAO,UAAU;AACxC,QAAM,MAAM,KAAK,eAAe,KAAK;AACrC,OAAK,IAAI,cAAc,aAAa,YAAY,MAAM,GAAG,IAAI,IAAI;AACjE,OAAK,IAAI,KAAK,OAAO,GAAG,CAAC;AACzB,OAAK,IAAI,MAAM;AACjB;AA3DA,IAAAM,aAAA;AAAA;AAIA;AAAA;AAAA;;;ACJA;AAAA;AAAA;AACA,IAAAC;AAAA;AAAA;;;ACeO,SAAS,WAAWC,aAAY,QAAQC,UAAS;AAEtD,QAAM,SAAS,CAAC;AAChB,MAAIC,SAAQ;AAEZ,SAAO,EAAEA,SAAQF,YAAW,QAAQ;AAClC,UAAMG,WAAUH,YAAWE,MAAK,EAAE;AAElC,QAAIC,YAAW,CAAC,OAAO,SAASA,QAAO,GAAG;AACxC,eAASA,SAAQ,QAAQF,QAAO;AAChC,aAAO,KAAKE,QAAO;AAAA,IACrB;AAAA,EACF;AAEA,SAAO;AACT;AA/BA;AAAA;AAAA;AAAA;;;AC8BA,SAAS,oBAAoB,QAAQC,UAAS;AAC5C,MAAIC,SAAQ;AAEZ,MAAI;AAEJ,MAAI;AAEJ,MAAIC;AAEJ,MAAI;AAEJ,MAAI;AAEJ,MAAI;AAEJ,MAAI;AAEJ,MAAI;AAMJ,SAAO,EAAED,SAAQ,OAAO,QAAQ;AAE9B,QAAI,OAAOA,MAAK,EAAE,CAAC,MAAM,WAAW,OAAOA,MAAK,EAAE,CAAC,EAAE,SAAS,uBAAuB,OAAOA,MAAK,EAAE,CAAC,EAAE,QAAQ;AAC5G,aAAOA;AAGP,aAAO,QAAQ;AAEb,YAAI,OAAO,IAAI,EAAE,CAAC,MAAM,UAAU,OAAO,IAAI,EAAE,CAAC,EAAE,SAAS,uBAAuB,OAAO,IAAI,EAAE,CAAC,EAAE;AAAA,QAElGD,SAAQ,eAAe,OAAO,IAAI,EAAE,CAAC,CAAC,EAAE,WAAW,CAAC,MAAMA,SAAQ,eAAe,OAAOC,MAAK,EAAE,CAAC,CAAC,EAAE,WAAW,CAAC,GAAG;AAKhH,eAAK,OAAO,IAAI,EAAE,CAAC,EAAE,UAAU,OAAOA,MAAK,EAAE,CAAC,EAAE,WAAW,OAAOA,MAAK,EAAE,CAAC,EAAE,IAAI,SAAS,OAAOA,MAAK,EAAE,CAAC,EAAE,MAAM,UAAU,KAAK,GAAG,OAAO,IAAI,EAAE,CAAC,EAAE,IAAI,SAAS,OAAO,IAAI,EAAE,CAAC,EAAE,MAAM,SAAS,OAAOA,MAAK,EAAE,CAAC,EAAE,IAAI,SAAS,OAAOA,MAAK,EAAE,CAAC,EAAE,MAAM,UAAU,IAAI;AAC/P;AAAA,UACF;AAGA,gBAAM,OAAO,IAAI,EAAE,CAAC,EAAE,IAAI,SAAS,OAAO,IAAI,EAAE,CAAC,EAAE,MAAM,SAAS,KAAK,OAAOA,MAAK,EAAE,CAAC,EAAE,IAAI,SAAS,OAAOA,MAAK,EAAE,CAAC,EAAE,MAAM,SAAS,IAAI,IAAI;AAC7I,gBAAM,QAAQ;AAAA,YACZ,GAAG,OAAO,IAAI,EAAE,CAAC,EAAE;AAAA,UACrB;AACA,gBAAME,OAAM;AAAA,YACV,GAAG,OAAOF,MAAK,EAAE,CAAC,EAAE;AAAA,UACtB;AACA,oBAAU,OAAO,CAAC,GAAG;AACrB,oBAAUE,MAAK,GAAG;AAClB,4BAAkB;AAAA,YAChB,MAAM,MAAM,IAAI,mBAAmB;AAAA,YACnC;AAAA,YACA,KAAK;AAAA,cACH,GAAG,OAAO,IAAI,EAAE,CAAC,EAAE;AAAA,YACrB;AAAA,UACF;AACA,4BAAkB;AAAA,YAChB,MAAM,MAAM,IAAI,mBAAmB;AAAA,YACnC,OAAO;AAAA,cACL,GAAG,OAAOF,MAAK,EAAE,CAAC,EAAE;AAAA,YACtB;AAAA,YACA,KAAAE;AAAA,UACF;AACA,UAAAD,QAAO;AAAA,YACL,MAAM,MAAM,IAAI,eAAe;AAAA,YAC/B,OAAO;AAAA,cACL,GAAG,OAAO,IAAI,EAAE,CAAC,EAAE;AAAA,YACrB;AAAA,YACA,KAAK;AAAA,cACH,GAAG,OAAOD,MAAK,EAAE,CAAC,EAAE;AAAA,YACtB;AAAA,UACF;AACA,kBAAQ;AAAA,YACN,MAAM,MAAM,IAAI,WAAW;AAAA,YAC3B,OAAO;AAAA,cACL,GAAG,gBAAgB;AAAA,YACrB;AAAA,YACA,KAAK;AAAA,cACH,GAAG,gBAAgB;AAAA,YACrB;AAAA,UACF;AACA,iBAAO,IAAI,EAAE,CAAC,EAAE,MAAM;AAAA,YACpB,GAAG,gBAAgB;AAAA,UACrB;AACA,iBAAOA,MAAK,EAAE,CAAC,EAAE,QAAQ;AAAA,YACvB,GAAG,gBAAgB;AAAA,UACrB;AACA,uBAAa,CAAC;AAGd,cAAI,OAAO,IAAI,EAAE,CAAC,EAAE,IAAI,SAAS,OAAO,IAAI,EAAE,CAAC,EAAE,MAAM,QAAQ;AAC7D,yBAAa,KAAK,YAAY,CAAC,CAAC,SAAS,OAAO,IAAI,EAAE,CAAC,GAAGD,QAAO,GAAG,CAAC,QAAQ,OAAO,IAAI,EAAE,CAAC,GAAGA,QAAO,CAAC,CAAC;AAAA,UACzG;AAGA,uBAAa,KAAK,YAAY,CAAC,CAAC,SAAS,OAAOA,QAAO,GAAG,CAAC,SAAS,iBAAiBA,QAAO,GAAG,CAAC,QAAQ,iBAAiBA,QAAO,GAAG,CAAC,SAASE,OAAMF,QAAO,CAAC,CAAC;AAK5J,uBAAa,KAAK,YAAY,WAAWA,SAAQ,OAAO,WAAW,WAAW,MAAM,OAAO,MAAM,OAAO,GAAGC,MAAK,GAAGD,QAAO,CAAC;AAG3H,uBAAa,KAAK,YAAY,CAAC,CAAC,QAAQE,OAAMF,QAAO,GAAG,CAAC,SAAS,iBAAiBA,QAAO,GAAG,CAAC,QAAQ,iBAAiBA,QAAO,GAAG,CAAC,QAAQ,OAAOA,QAAO,CAAC,CAAC;AAG1J,cAAI,OAAOC,MAAK,EAAE,CAAC,EAAE,IAAI,SAAS,OAAOA,MAAK,EAAE,CAAC,EAAE,MAAM,QAAQ;AAC/D,qBAAS;AACT,yBAAa,KAAK,YAAY,CAAC,CAAC,SAAS,OAAOA,MAAK,EAAE,CAAC,GAAGD,QAAO,GAAG,CAAC,QAAQ,OAAOC,MAAK,EAAE,CAAC,GAAGD,QAAO,CAAC,CAAC;AAAA,UAC3G,OAAO;AACL,qBAAS;AAAA,UACX;AACA,iBAAO,QAAQ,OAAO,GAAGC,SAAQ,OAAO,GAAG,UAAU;AACrD,UAAAA,SAAQ,OAAO,WAAW,SAAS,SAAS;AAC5C;AAAA,QACF;AAAA,MACF;AAAA,IACF;AAAA,EACF;AAGA,EAAAA,SAAQ;AACR,SAAO,EAAEA,SAAQ,OAAO,QAAQ;AAC9B,QAAI,OAAOA,MAAK,EAAE,CAAC,EAAE,SAAS,qBAAqB;AACjD,aAAOA,MAAK,EAAE,CAAC,EAAE,OAAO;AAAA,IAC1B;AAAA,EACF;AACA,SAAO;AACT;AAOA,SAAS,kBAAkB,SAASG,KAAI;AACtC,QAAMC,oBAAmB,KAAK,OAAO,WAAW,iBAAiB;AACjE,QAAMC,YAAW,KAAK;AACtB,QAAM,SAAS,kBAAkBA,SAAQ;AAGzC,MAAI;AACJ,SAAO;AAYP,WAAS,MAAMC,OAAM;AACnB,aAASA;AACT,YAAQ,MAAM,mBAAmB;AACjC,WAAO,OAAOA,KAAI;AAAA,EACpB;AAYA,WAAS,OAAOA,OAAM;AACpB,QAAIA,UAAS,QAAQ;AACnB,cAAQ,QAAQA,KAAI;AACpB,aAAO;AAAA,IACT;AACA,UAAM,QAAQ,QAAQ,KAAK,mBAAmB;AAG9C,UAAM,QAAQ,kBAAkBA,KAAI;AAIpC,UAAM,OAAO,CAAC,SAAS,UAAU,KAAK,UAAUF,kBAAiB,SAASE,KAAI;AAC9E,UAAMC,SAAQ,CAAC,UAAU,WAAW,KAAK,SAASH,kBAAiB,SAASC,SAAQ;AACpF,UAAM,QAAQ,QAAQ,WAAW,KAAK,OAAO,SAAS,UAAU,CAACE,OAAM;AACvE,UAAM,SAAS,QAAQ,WAAW,KAAKA,SAAQA,WAAU,SAAS,CAAC,KAAK;AACxE,WAAOJ,IAAGG,KAAI;AAAA,EAChB;AACF;AAeA,SAAS,UAAUE,QAAO,QAAQ;AAChC,EAAAA,OAAM,UAAU;AAChB,EAAAA,OAAM,UAAU;AAChB,EAAAA,OAAM,gBAAgB;AACxB;AAhPA,IAkBa;AAlBb;AAAA;AAcA;AACA;AACA;AAEO,IAAM,YAAY;AAAA,MACvB,MAAM;AAAA,MACN,YAAY;AAAA,MACZ,UAAU;AAAA,IACZ;AAAA;AAAA;;;ACDA,SAAS,iBAAiB,SAASC,KAAI,KAAK;AAC1C,MAAI,OAAO;AACX,SAAO;AAcP,WAAS,MAAMC,OAAM;AACnB,YAAQ,MAAM,UAAU;AACxB,YAAQ,MAAM,gBAAgB;AAC9B,YAAQ,QAAQA,KAAI;AACpB,YAAQ,KAAK,gBAAgB;AAC7B,YAAQ,MAAM,kBAAkB;AAChC,WAAO;AAAA,EACT;AAcA,WAAS,KAAKA,OAAM;AAClB,QAAI,WAAWA,KAAI,GAAG;AACpB,cAAQ,QAAQA,KAAI;AACpB,aAAO;AAAA,IACT;AACA,QAAIA,UAAS,IAAI;AACf,aAAO,IAAIA,KAAI;AAAA,IACjB;AACA,WAAO,WAAWA,KAAI;AAAA,EACxB;AAcA,WAAS,mBAAmBA,OAAM;AAEhC,QAAIA,UAAS,MAAMA,UAAS,MAAMA,UAAS,MAAM,kBAAkBA,KAAI,GAAG;AAExE,aAAO;AACP,aAAO,yBAAyBA,KAAI;AAAA,IACtC;AACA,WAAO,WAAWA,KAAI;AAAA,EACxB;AAcA,WAAS,yBAAyBA,OAAM;AACtC,QAAIA,UAAS,IAAI;AACf,cAAQ,QAAQA,KAAI;AACpB,aAAO;AACP,aAAO;AAAA,IACT;AAGA,SAAKA,UAAS,MAAMA,UAAS,MAAMA,UAAS,MAAM,kBAAkBA,KAAI,MAAM,SAAS,IAAI;AACzF,cAAQ,QAAQA,KAAI;AACpB,aAAO;AAAA,IACT;AACA,WAAO;AACP,WAAO,WAAWA,KAAI;AAAA,EACxB;AAYA,WAAS,UAAUA,OAAM;AACvB,QAAIA,UAAS,IAAI;AACf,cAAQ,KAAK,kBAAkB;AAC/B,cAAQ,MAAM,gBAAgB;AAC9B,cAAQ,QAAQA,KAAI;AACpB,cAAQ,KAAK,gBAAgB;AAC7B,cAAQ,KAAK,UAAU;AACvB,aAAOD;AAAA,IACT;AAGA,QAAIC,UAAS,QAAQA,UAAS,MAAMA,UAAS,MAAM,aAAaA,KAAI,GAAG;AACrE,aAAO,IAAIA,KAAI;AAAA,IACjB;AACA,YAAQ,QAAQA,KAAI;AACpB,WAAO;AAAA,EACT;AAYA,WAAS,WAAWA,OAAM;AACxB,QAAIA,UAAS,IAAI;AACf,cAAQ,QAAQA,KAAI;AACpB,aAAO;AAAA,IACT;AACA,QAAI,WAAWA,KAAI,GAAG;AACpB,cAAQ,QAAQA,KAAI;AACpB,aAAO;AAAA,IACT;AACA,WAAO,IAAIA,KAAI;AAAA,EACjB;AAYA,WAAS,iBAAiBA,OAAM;AAC9B,WAAO,kBAAkBA,KAAI,IAAI,WAAWA,KAAI,IAAI,IAAIA,KAAI;AAAA,EAC9D;AAYA,WAAS,WAAWA,OAAM;AACxB,QAAIA,UAAS,IAAI;AACf,cAAQ,QAAQA,KAAI;AACpB,aAAO;AACP,aAAO;AAAA,IACT;AACA,QAAIA,UAAS,IAAI;AAEf,cAAQ,KAAK,kBAAkB,EAAE,OAAO;AACxC,cAAQ,MAAM,gBAAgB;AAC9B,cAAQ,QAAQA,KAAI;AACpB,cAAQ,KAAK,gBAAgB;AAC7B,cAAQ,KAAK,UAAU;AACvB,aAAOD;AAAA,IACT;AACA,WAAO,WAAWC,KAAI;AAAA,EACxB;AAcA,WAAS,WAAWA,OAAM;AAExB,SAAKA,UAAS,MAAM,kBAAkBA,KAAI,MAAM,SAAS,IAAI;AAC3D,YAAMC,QAAOD,UAAS,KAAK,aAAa;AACxC,cAAQ,QAAQA,KAAI;AACpB,aAAOC;AAAA,IACT;AACA,WAAO,IAAID,KAAI;AAAA,EACjB;AACF;AAxOA,IAWa;AAXb;AAAA;AASA;AAEO,IAAM,WAAW;AAAA,MACtB,MAAM;AAAA,MACN,UAAU;AAAA,IACZ;AAAA;AAAA;;;AC0BO,SAAS,aAAa,SAASE,KAAIC,OAAMC,MAAK;AACnD,QAAM,QAAQA,OAAMA,OAAM,IAAI,OAAO;AACrC,MAAI,OAAO;AACX,SAAO;AAGP,WAAS,MAAMC,OAAM;AACnB,QAAI,cAAcA,KAAI,GAAG;AACvB,cAAQ,MAAMF,KAAI;AAClB,aAAOG,QAAOD,KAAI;AAAA,IACpB;AACA,WAAOH,IAAGG,KAAI;AAAA,EAChB;AAGA,WAASC,QAAOD,OAAM;AACpB,QAAI,cAAcA,KAAI,KAAK,SAAS,OAAO;AACzC,cAAQ,QAAQA,KAAI;AACpB,aAAOC;AAAA,IACT;AACA,YAAQ,KAAKH,KAAI;AACjB,WAAOD,IAAGG,KAAI;AAAA,EAChB;AACF;AA/DA;AAAA;AAIA;AAAA;AAAA;;;ACkBA,SAAS,kBAAkB,SAASE,KAAI,KAAK;AAC3C,SAAO;AAgBP,WAAS,MAAMC,OAAM;AACnB,WAAO,cAAcA,KAAI,IAAI,aAAa,SAAS,OAAO,YAAY,EAAEA,KAAI,IAAI,MAAMA,KAAI;AAAA,EAC5F;AAgBA,WAAS,MAAMA,OAAM;AACnB,WAAOA,UAAS,QAAQ,mBAAmBA,KAAI,IAAID,IAAGC,KAAI,IAAI,IAAIA,KAAI;AAAA,EACxE;AACF;AA5DA,IAYa;AAZb;AAAA;AASA;AACA;AAEO,IAAM,YAAY;AAAA,MACvB,SAAS;AAAA,MACT,UAAU;AAAA,IACZ;AAAA;AAAA;;;ACYA,SAAS,wBAAwB,SAASC,KAAI,KAAK;AACjD,QAAMC,QAAO;AACb,SAAO;AAYP,WAAS,MAAMC,OAAM;AACnB,QAAIA,UAAS,IAAI;AACf,YAAM,QAAQD,MAAK;AACnB,UAAI,CAAC,MAAM,MAAM;AACf,gBAAQ,MAAM,cAAc;AAAA,UAC1B,YAAY;AAAA,QACd,CAAC;AACD,cAAM,OAAO;AAAA,MACf;AACA,cAAQ,MAAM,kBAAkB;AAChC,cAAQ,MAAM,kBAAkB;AAChC,cAAQ,QAAQC,KAAI;AACpB,cAAQ,KAAK,kBAAkB;AAC/B,aAAO;AAAA,IACT;AACA,WAAO,IAAIA,KAAI;AAAA,EACjB;AAYA,WAAS,MAAMA,OAAM;AACnB,QAAI,cAAcA,KAAI,GAAG;AACvB,cAAQ,MAAM,4BAA4B;AAC1C,cAAQ,QAAQA,KAAI;AACpB,cAAQ,KAAK,4BAA4B;AACzC,cAAQ,KAAK,kBAAkB;AAC/B,aAAOF;AAAA,IACT;AACA,YAAQ,KAAK,kBAAkB;AAC/B,WAAOA,IAAGE,KAAI;AAAA,EAChB;AACF;AAeA,SAAS,+BAA+B,SAASF,KAAI,KAAK;AACxD,QAAMC,QAAO;AACb,SAAO;AAeP,WAAS,UAAUC,OAAM;AACvB,QAAI,cAAcA,KAAI,GAAG;AAGvB,aAAO,aAAa,SAAS,YAAY,cAAcD,MAAK,OAAO,WAAW,QAAQ,KAAK,SAAS,cAAc,IAAI,SAAY,CAAC,EAAEC,KAAI;AAAA,IAC3I;AACA,WAAO,WAAWA,KAAI;AAAA,EACxB;AAeA,WAAS,WAAWA,OAAM;AACxB,WAAO,QAAQ,QAAQ,YAAYF,KAAI,GAAG,EAAEE,KAAI;AAAA,EAClD;AACF;AAGA,SAASC,MAAK,SAAS;AACrB,UAAQ,KAAK,YAAY;AAC3B;AA9IA,IAaa;AAbb;AAAA;AAUA;AACA;AAEO,IAAM,aAAa;AAAA,MACxB,cAAc;AAAA,QACZ,UAAU;AAAA,MACZ;AAAA,MACA,MAAAA;AAAA,MACA,MAAM;AAAA,MACN,UAAU;AAAA,IACZ;AAAA;AAAA;;;ACCA,SAAS,wBAAwB,SAASC,KAAI,KAAK;AACjD,SAAO;AAYP,WAAS,MAAMC,OAAM;AACnB,YAAQ,MAAM,iBAAiB;AAC/B,YAAQ,MAAM,cAAc;AAC5B,YAAQ,QAAQA,KAAI;AACpB,YAAQ,KAAK,cAAc;AAC3B,WAAO;AAAA,EACT;AAYA,WAAS,OAAOA,OAAM;AAEpB,QAAI,iBAAiBA,KAAI,GAAG;AAC1B,cAAQ,MAAM,sBAAsB;AACpC,cAAQ,QAAQA,KAAI;AACpB,cAAQ,KAAK,sBAAsB;AACnC,cAAQ,KAAK,iBAAiB;AAC9B,aAAOD;AAAA,IACT;AACA,WAAO,IAAIC,KAAI;AAAA,EACjB;AACF;AA/DA,IAWa;AAXb;AAAA;AASA;AAEO,IAAM,kBAAkB;AAAA,MAC7B,MAAM;AAAA,MACN,UAAU;AAAA,IACZ;AAAA;AAAA;;;ACSA,SAAS,2BAA2B,SAASC,KAAI,KAAK;AACpD,QAAMC,QAAO;AACb,MAAI,OAAO;AAEX,MAAIC;AAEJ,MAAI;AACJ,SAAO;AAgBP,WAAS,MAAMC,OAAM;AACnB,YAAQ,MAAM,oBAAoB;AAClC,YAAQ,MAAM,0BAA0B;AACxC,YAAQ,QAAQA,KAAI;AACpB,YAAQ,KAAK,0BAA0B;AACvC,WAAO;AAAA,EACT;AAiBA,WAAS,KAAKA,OAAM;AAClB,QAAIA,UAAS,IAAI;AACf,cAAQ,MAAM,iCAAiC;AAC/C,cAAQ,QAAQA,KAAI;AACpB,cAAQ,KAAK,iCAAiC;AAC9C,aAAO;AAAA,IACT;AACA,YAAQ,MAAM,yBAAyB;AACvC,IAAAD,OAAM;AACN,WAAO;AACP,WAAOE,OAAMD,KAAI;AAAA,EACnB;AAcA,WAAS,QAAQA,OAAM;AACrB,QAAIA,UAAS,MAAMA,UAAS,KAAK;AAC/B,cAAQ,MAAM,qCAAqC;AACnD,cAAQ,QAAQA,KAAI;AACpB,cAAQ,KAAK,qCAAqC;AAClD,cAAQ,MAAM,yBAAyB;AACvC,MAAAD,OAAM;AACN,aAAO;AACP,aAAOE;AAAA,IACT;AACA,YAAQ,MAAM,yBAAyB;AACvC,IAAAF,OAAM;AACN,WAAO;AACP,WAAOE,OAAMD,KAAI;AAAA,EACnB;AAmBA,WAASC,OAAMD,OAAM;AACnB,QAAIA,UAAS,MAAM,MAAM;AACvB,YAAM,QAAQ,QAAQ,KAAK,yBAAyB;AACpD,UAAI,SAAS,qBAAqB,CAAC,8BAA8BF,MAAK,eAAe,KAAK,CAAC,GAAG;AAC5F,eAAO,IAAIE,KAAI;AAAA,MACjB;AAIA,cAAQ,MAAM,0BAA0B;AACxC,cAAQ,QAAQA,KAAI;AACpB,cAAQ,KAAK,0BAA0B;AACvC,cAAQ,KAAK,oBAAoB;AACjC,aAAOH;AAAA,IACT;AACA,QAAI,KAAKG,KAAI,KAAK,SAASD,MAAK;AAC9B,cAAQ,QAAQC,KAAI;AACpB,aAAOC;AAAA,IACT;AACA,WAAO,IAAID,KAAI;AAAA,EACjB;AACF;AApJA,IAaa;AAbb;AAAA;AAUA;AACA;AAEO,IAAM,qBAAqB;AAAA,MAChC,MAAM;AAAA,MACN,UAAU;AAAA,IACZ;AAAA;AAAA;;;ACcA,SAAS,mBAAmB,SAASE,KAAI,KAAK;AAC5C,QAAMC,QAAO;AAEb,QAAM,aAAa;AAAA,IACjB,SAAS;AAAA,IACT,UAAU;AAAA,EACZ;AACA,MAAI,gBAAgB;AACpB,MAAI,WAAW;AAEf,MAAI;AACJ,SAAO;AAcP,WAAS,MAAMC,OAAM;AAEnB,WAAO,mBAAmBA,KAAI;AAAA,EAChC;AAcA,WAAS,mBAAmBA,OAAM;AAChC,UAAM,OAAOD,MAAK,OAAOA,MAAK,OAAO,SAAS,CAAC;AAC/C,oBAAgB,QAAQ,KAAK,CAAC,EAAE,SAAS,eAAe,KAAK,CAAC,EAAE,eAAe,KAAK,CAAC,GAAG,IAAI,EAAE,SAAS;AACvG,aAASC;AACT,YAAQ,MAAM,YAAY;AAC1B,YAAQ,MAAM,iBAAiB;AAC/B,YAAQ,MAAM,yBAAyB;AACvC,WAAO,aAAaA,KAAI;AAAA,EAC1B;AAcA,WAAS,aAAaA,OAAM;AAC1B,QAAIA,UAAS,QAAQ;AACnB;AACA,cAAQ,QAAQA,KAAI;AACpB,aAAO;AAAA,IACT;AACA,QAAI,WAAW,GAAG;AAChB,aAAO,IAAIA,KAAI;AAAA,IACjB;AACA,YAAQ,KAAK,yBAAyB;AACtC,WAAO,cAAcA,KAAI,IAAI,aAAa,SAAS,YAAY,YAAY,EAAEA,KAAI,IAAI,WAAWA,KAAI;AAAA,EACtG;AAcA,WAAS,WAAWA,OAAM;AACxB,QAAIA,UAAS,QAAQ,mBAAmBA,KAAI,GAAG;AAC7C,cAAQ,KAAK,iBAAiB;AAC9B,aAAOD,MAAK,YAAYD,IAAGE,KAAI,IAAI,QAAQ,MAAM,qBAAqB,gBAAgB,KAAK,EAAEA,KAAI;AAAA,IACnG;AACA,YAAQ,MAAM,qBAAqB;AACnC,YAAQ,MAAM,eAAe;AAAA,MAC3B,aAAa;AAAA,IACf,CAAC;AACD,WAAO,KAAKA,KAAI;AAAA,EAClB;AAcA,WAAS,KAAKA,OAAM;AAClB,QAAIA,UAAS,QAAQ,mBAAmBA,KAAI,GAAG;AAC7C,cAAQ,KAAK,aAAa;AAC1B,cAAQ,KAAK,qBAAqB;AAClC,aAAO,WAAWA,KAAI;AAAA,IACxB;AACA,QAAI,cAAcA,KAAI,GAAG;AACvB,cAAQ,KAAK,aAAa;AAC1B,cAAQ,KAAK,qBAAqB;AAClC,aAAO,aAAa,SAAS,YAAY,YAAY,EAAEA,KAAI;AAAA,IAC7D;AACA,QAAIA,UAAS,MAAMA,UAAS,QAAQ;AAClC,aAAO,IAAIA,KAAI;AAAA,IACjB;AACA,YAAQ,QAAQA,KAAI;AACpB,WAAO;AAAA,EACT;AAcA,WAAS,WAAWA,OAAM;AACxB,QAAIA,UAAS,QAAQ,mBAAmBA,KAAI,GAAG;AAC7C,aAAO,WAAWA,KAAI;AAAA,IACxB;AACA,YAAQ,MAAM,qBAAqB;AACnC,YAAQ,MAAM,eAAe;AAAA,MAC3B,aAAa;AAAA,IACf,CAAC;AACD,WAAO,KAAKA,KAAI;AAAA,EAClB;AAcA,WAAS,KAAKA,OAAM;AAClB,QAAIA,UAAS,QAAQ,mBAAmBA,KAAI,GAAG;AAC7C,cAAQ,KAAK,aAAa;AAC1B,cAAQ,KAAK,qBAAqB;AAClC,aAAO,WAAWA,KAAI;AAAA,IACxB;AACA,QAAIA,UAAS,MAAMA,UAAS,QAAQ;AAClC,aAAO,IAAIA,KAAI;AAAA,IACjB;AACA,YAAQ,QAAQA,KAAI;AACpB,WAAO;AAAA,EACT;AAeA,WAAS,eAAeA,OAAM;AAC5B,WAAO,QAAQ,QAAQ,YAAY,OAAO,aAAa,EAAEA,KAAI;AAAA,EAC/D;AAcA,WAAS,cAAcA,OAAM;AAC3B,YAAQ,MAAM,YAAY;AAC1B,YAAQ,QAAQA,KAAI;AACpB,YAAQ,KAAK,YAAY;AACzB,WAAO;AAAA,EACT;AAcA,WAAS,aAAaA,OAAM;AAC1B,WAAO,gBAAgB,KAAK,cAAcA,KAAI,IAAI,aAAa,SAAS,oBAAoB,cAAc,gBAAgB,CAAC,EAAEA,KAAI,IAAI,mBAAmBA,KAAI;AAAA,EAC9J;AAcA,WAAS,mBAAmBA,OAAM;AAChC,QAAIA,UAAS,QAAQ,mBAAmBA,KAAI,GAAG;AAC7C,aAAO,QAAQ,MAAM,qBAAqB,gBAAgB,KAAK,EAAEA,KAAI;AAAA,IACvE;AACA,YAAQ,MAAM,eAAe;AAC7B,WAAO,aAAaA,KAAI;AAAA,EAC1B;AAcA,WAAS,aAAaA,OAAM;AAC1B,QAAIA,UAAS,QAAQ,mBAAmBA,KAAI,GAAG;AAC7C,cAAQ,KAAK,eAAe;AAC5B,aAAO,mBAAmBA,KAAI;AAAA,IAChC;AACA,YAAQ,QAAQA,KAAI;AACpB,WAAO;AAAA,EACT;AAcA,WAAS,MAAMA,OAAM;AACnB,YAAQ,KAAK,YAAY;AACzB,WAAOF,IAAGE,KAAI;AAAA,EAChB;AAOA,WAAS,mBAAmBC,UAASH,KAAII,MAAK;AAC5C,QAAI,OAAO;AACX,WAAO;AAOP,aAAS,YAAYF,OAAM;AACzB,MAAAC,SAAQ,MAAM,YAAY;AAC1B,MAAAA,SAAQ,QAAQD,KAAI;AACpB,MAAAC,SAAQ,KAAK,YAAY;AACzB,aAAOE;AAAA,IACT;AAcA,aAASA,OAAMH,OAAM;AAInB,MAAAC,SAAQ,MAAM,iBAAiB;AAC/B,aAAO,cAAcD,KAAI,IAAI,aAAaC,UAAS,qBAAqB,cAAcF,MAAK,OAAO,WAAW,QAAQ,KAAK,SAAS,cAAc,IAAI,SAAY,CAAC,EAAEC,KAAI,IAAI,oBAAoBA,KAAI;AAAA,IACtM;AAcA,aAAS,oBAAoBA,OAAM;AACjC,UAAIA,UAAS,QAAQ;AACnB,QAAAC,SAAQ,MAAM,yBAAyB;AACvC,eAAO,cAAcD,KAAI;AAAA,MAC3B;AACA,aAAOE,KAAIF,KAAI;AAAA,IACjB;AAcA,aAAS,cAAcA,OAAM;AAC3B,UAAIA,UAAS,QAAQ;AACnB;AACA,QAAAC,SAAQ,QAAQD,KAAI;AACpB,eAAO;AAAA,MACT;AACA,UAAI,QAAQ,UAAU;AACpB,QAAAC,SAAQ,KAAK,yBAAyB;AACtC,eAAO,cAAcD,KAAI,IAAI,aAAaC,UAAS,oBAAoB,YAAY,EAAED,KAAI,IAAI,mBAAmBA,KAAI;AAAA,MACtH;AACA,aAAOE,KAAIF,KAAI;AAAA,IACjB;AAcA,aAAS,mBAAmBA,OAAM;AAChC,UAAIA,UAAS,QAAQ,mBAAmBA,KAAI,GAAG;AAC7C,QAAAC,SAAQ,KAAK,iBAAiB;AAC9B,eAAOH,IAAGE,KAAI;AAAA,MAChB;AACA,aAAOE,KAAIF,KAAI;AAAA,IACjB;AAAA,EACF;AACF;AAOA,SAAS,4BAA4B,SAASF,KAAI,KAAK;AACrD,QAAMC,QAAO;AACb,SAAO;AAOP,WAAS,MAAMC,OAAM;AACnB,QAAIA,UAAS,MAAM;AACjB,aAAO,IAAIA,KAAI;AAAA,IACjB;AACA,YAAQ,MAAM,YAAY;AAC1B,YAAQ,QAAQA,KAAI;AACpB,YAAQ,KAAK,YAAY;AACzB,WAAO;AAAA,EACT;AAOA,WAAS,UAAUA,OAAM;AACvB,WAAOD,MAAK,OAAO,KAAKA,MAAK,IAAI,EAAE,IAAI,IAAI,IAAIC,KAAI,IAAIF,IAAGE,KAAI;AAAA,EAChE;AACF;AA3cA,IAaM,qBAMO;AAnBb;AAAA;AAUA;AACA;AAEA,IAAM,sBAAsB;AAAA,MAC1B,SAAS;AAAA,MACT,UAAU;AAAA,IACZ;AAGO,IAAM,aAAa;AAAA,MACxB,UAAU;AAAA,MACV,MAAM;AAAA,MACN,UAAU;AAAA,IACZ;AAAA;AAAA;;;ACKA,SAAS,qBAAqB,SAASI,KAAI,KAAK;AAC9C,QAAMC,QAAO;AACb,SAAO;AAgBP,WAAS,MAAMC,OAAM;AAGnB,YAAQ,MAAM,cAAc;AAG5B,WAAO,aAAa,SAAS,aAAa,cAAc,IAAI,CAAC,EAAEA,KAAI;AAAA,EACrE;AAYA,WAAS,YAAYA,OAAM;AACzB,UAAM,OAAOD,MAAK,OAAOA,MAAK,OAAO,SAAS,CAAC;AAC/C,WAAO,QAAQ,KAAK,CAAC,EAAE,SAAS,gBAAgB,KAAK,CAAC,EAAE,eAAe,KAAK,CAAC,GAAG,IAAI,EAAE,UAAU,IAAI,QAAQC,KAAI,IAAI,IAAIA,KAAI;AAAA,EAC9H;AAYA,WAAS,QAAQA,OAAM;AACrB,QAAIA,UAAS,MAAM;AACjB,aAAO,MAAMA,KAAI;AAAA,IACnB;AACA,QAAI,mBAAmBA,KAAI,GAAG;AAC5B,aAAO,QAAQ,QAAQ,cAAc,SAAS,KAAK,EAAEA,KAAI;AAAA,IAC3D;AACA,YAAQ,MAAM,eAAe;AAC7B,WAAO,OAAOA,KAAI;AAAA,EACpB;AAYA,WAAS,OAAOA,OAAM;AACpB,QAAIA,UAAS,QAAQ,mBAAmBA,KAAI,GAAG;AAC7C,cAAQ,KAAK,eAAe;AAC5B,aAAO,QAAQA,KAAI;AAAA,IACrB;AACA,YAAQ,QAAQA,KAAI;AACpB,WAAO;AAAA,EACT;AAGA,WAAS,MAAMA,OAAM;AACnB,YAAQ,KAAK,cAAc;AAI3B,WAAOF,IAAGE,KAAI;AAAA,EAChB;AACF;AAOA,SAAS,qBAAqB,SAASF,KAAI,KAAK;AAC9C,QAAMC,QAAO;AACb,SAAOE;AAaP,WAASA,cAAaD,OAAM;AAG1B,QAAID,MAAK,OAAO,KAAKA,MAAK,IAAI,EAAE,IAAI,GAAG;AACrC,aAAO,IAAIC,KAAI;AAAA,IACjB;AACA,QAAI,mBAAmBA,KAAI,GAAG;AAC5B,cAAQ,MAAM,YAAY;AAC1B,cAAQ,QAAQA,KAAI;AACpB,cAAQ,KAAK,YAAY;AACzB,aAAOC;AAAA,IACT;AAQA,WAAO,aAAa,SAAS,aAAa,cAAc,IAAI,CAAC,EAAED,KAAI;AAAA,EACrE;AAYA,WAAS,YAAYA,OAAM;AACzB,UAAM,OAAOD,MAAK,OAAOA,MAAK,OAAO,SAAS,CAAC;AAC/C,WAAO,QAAQ,KAAK,CAAC,EAAE,SAAS,gBAAgB,KAAK,CAAC,EAAE,eAAe,KAAK,CAAC,GAAG,IAAI,EAAE,UAAU,IAAID,IAAGE,KAAI,IAAI,mBAAmBA,KAAI,IAAIC,cAAaD,KAAI,IAAI,IAAIA,KAAI;AAAA,EACzK;AACF;AAhLA,IAYa,cAMP;AAlBN;AAAA;AASA;AACA;AAEO,IAAM,eAAe;AAAA,MAC1B,MAAM;AAAA,MACN,UAAU;AAAA,IACZ;AAGA,IAAM,eAAe;AAAA,MACnB,SAAS;AAAA,MACT,UAAU;AAAA,IACZ;AAAA;AAAA;;;ACEA,SAAS,gBAAgB,QAAQ;AAC/B,MAAI,gBAAgB,OAAO,SAAS;AACpC,MAAI,iBAAiB;AAErB,MAAIE;AAEJ,MAAI;AAGJ,OAAK,OAAO,cAAc,EAAE,CAAC,EAAE,SAAS,gBAAgB,OAAO,cAAc,EAAE,CAAC,EAAE,SAAS,aAAa,OAAO,aAAa,EAAE,CAAC,EAAE,SAAS,gBAAgB,OAAO,aAAa,EAAE,CAAC,EAAE,SAAS,UAAU;AACpM,IAAAA,SAAQ;AAGR,WAAO,EAAEA,SAAQ,eAAe;AAC9B,UAAI,OAAOA,MAAK,EAAE,CAAC,EAAE,SAAS,gBAAgB;AAE5C,eAAO,cAAc,EAAE,CAAC,EAAE,OAAO;AACjC,eAAO,aAAa,EAAE,CAAC,EAAE,OAAO;AAChC,0BAAkB;AAClB,yBAAiB;AACjB;AAAA,MACF;AAAA,IACF;AAAA,EACF;AAGA,EAAAA,SAAQ,iBAAiB;AACzB;AACA,SAAO,EAAEA,UAAS,eAAe;AAC/B,QAAI,UAAU,QAAW;AACvB,UAAIA,WAAU,iBAAiB,OAAOA,MAAK,EAAE,CAAC,EAAE,SAAS,cAAc;AACrE,gBAAQA;AAAA,MACV;AAAA,IACF,WAAWA,WAAU,iBAAiB,OAAOA,MAAK,EAAE,CAAC,EAAE,SAAS,cAAc;AAC5E,aAAO,KAAK,EAAE,CAAC,EAAE,OAAO;AACxB,UAAIA,WAAU,QAAQ,GAAG;AACvB,eAAO,KAAK,EAAE,CAAC,EAAE,MAAM,OAAOA,SAAQ,CAAC,EAAE,CAAC,EAAE;AAC5C,eAAO,OAAO,QAAQ,GAAGA,SAAQ,QAAQ,CAAC;AAC1C,yBAAiBA,SAAQ,QAAQ;AACjC,QAAAA,SAAQ,QAAQ;AAAA,MAClB;AACA,cAAQ;AAAA,IACV;AAAA,EACF;AACA,SAAO;AACT;AAOA,SAASC,UAASC,OAAM;AAEtB,SAAOA,UAAS,MAAM,KAAK,OAAO,KAAK,OAAO,SAAS,CAAC,EAAE,CAAC,EAAE,SAAS;AACxE;AAOA,SAAS,iBAAiB,SAASC,KAAI,KAAK;AAC1C,QAAMC,QAAO;AACb,MAAI,WAAW;AAEf,MAAI;AAEJ,MAAI;AACJ,SAAO;AAcP,WAAS,MAAMF,OAAM;AACnB,YAAQ,MAAM,UAAU;AACxB,YAAQ,MAAM,kBAAkB;AAChC,WAAO,aAAaA,KAAI;AAAA,EAC1B;AAYA,WAAS,aAAaA,OAAM;AAC1B,QAAIA,UAAS,IAAI;AACf,cAAQ,QAAQA,KAAI;AACpB;AACA,aAAO;AAAA,IACT;AACA,YAAQ,KAAK,kBAAkB;AAC/B,WAAOG,SAAQH,KAAI;AAAA,EACrB;AAYA,WAASG,SAAQH,OAAM;AAErB,QAAIA,UAAS,MAAM;AACjB,aAAO,IAAIA,KAAI;AAAA,IACjB;AAKA,QAAIA,UAAS,IAAI;AACf,cAAQ,MAAM,OAAO;AACrB,cAAQ,QAAQA,KAAI;AACpB,cAAQ,KAAK,OAAO;AACpB,aAAOG;AAAA,IACT;AAGA,QAAIH,UAAS,IAAI;AACf,cAAQ,QAAQ,MAAM,kBAAkB;AACxC,aAAO;AACP,aAAO,cAAcA,KAAI;AAAA,IAC3B;AACA,QAAI,mBAAmBA,KAAI,GAAG;AAC5B,cAAQ,MAAM,YAAY;AAC1B,cAAQ,QAAQA,KAAI;AACpB,cAAQ,KAAK,YAAY;AACzB,aAAOG;AAAA,IACT;AAGA,YAAQ,MAAM,cAAc;AAC5B,WAAOC,MAAKJ,KAAI;AAAA,EAClB;AAYA,WAASI,MAAKJ,OAAM;AAClB,QAAIA,UAAS,QAAQA,UAAS,MAAMA,UAAS,MAAM,mBAAmBA,KAAI,GAAG;AAC3E,cAAQ,KAAK,cAAc;AAC3B,aAAOG,SAAQH,KAAI;AAAA,IACrB;AACA,YAAQ,QAAQA,KAAI;AACpB,WAAOI;AAAA,EACT;AAYA,WAAS,cAAcJ,OAAM;AAE3B,QAAIA,UAAS,IAAI;AACf,cAAQ,QAAQA,KAAI;AACpB;AACA,aAAO;AAAA,IACT;AAGA,QAAI,SAAS,UAAU;AACrB,cAAQ,KAAK,kBAAkB;AAC/B,cAAQ,KAAK,UAAU;AACvB,aAAOC,IAAGD,KAAI;AAAA,IAChB;AAGA,UAAM,OAAO;AACb,WAAOI,MAAKJ,KAAI;AAAA,EAClB;AACF;AAhOA,IAca;AAdb;AAAA;AAYA;AAEO,IAAM,WAAW;AAAA,MACtB,MAAM;AAAA,MACN,UAAAD;AAAA,MACA,SAAS;AAAA,MACT,UAAU;AAAA,IACZ;AAAA;AAAA;;;AC4NA,SAAS,YAAYM,OAAM,OAAO;AAEhC,MAAI,aAAa;AACjB,MAAI,MAAM,SAAS,KAAO;AACxB,IAAAA,MAAK,KAAK,GAAG,KAAK;AAAA,EACpB,OAAO;AACL,WAAO,aAAa,MAAM,QAAQ;AAChC,MAAAA,MAAK,KAAK,GAAG,MAAM,MAAM,YAAY,aAAa,GAAK,CAAC;AACxD,oBAAc;AAAA,IAChB;AAAA,EACF;AACF;AA1PA,IA6Ba;AA7Bb;AAAA;AA6BO,IAAM,eAAN,MAAmB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,MAOxB,YAAYC,UAAS;AAEnB,aAAK,OAAOA,WAAU,CAAC,GAAGA,QAAO,IAAI,CAAC;AAEtC,aAAK,QAAQ,CAAC;AAAA,MAChB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,MAWA,IAAIC,QAAO;AACT,YAAIA,SAAQ,KAAKA,UAAS,KAAK,KAAK,SAAS,KAAK,MAAM,QAAQ;AAC9D,gBAAM,IAAI,WAAW,0BAA0BA,SAAQ,oCAAoC,KAAK,KAAK,SAAS,KAAK,MAAM,UAAU,GAAG;AAAA,QACxI;AACA,YAAIA,SAAQ,KAAK,KAAK,OAAQ,QAAO,KAAK,KAAKA,MAAK;AACpD,eAAO,KAAK,MAAM,KAAK,MAAM,SAASA,SAAQ,KAAK,KAAK,SAAS,CAAC;AAAA,MACpE;AAAA;AAAA;AAAA;AAAA;AAAA,MAMA,IAAI,SAAS;AACX,eAAO,KAAK,KAAK,SAAS,KAAK,MAAM;AAAA,MACvC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,MASA,QAAQ;AACN,aAAK,UAAU,CAAC;AAChB,eAAO,KAAK,MAAM,IAAI;AAAA,MACxB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,MAaA,MAAM,OAAOC,MAAK;AAEhB,cAAM,OAAOA,SAAQ,QAAQA,SAAQ,SAAY,OAAO,oBAAoBA;AAC5E,YAAI,OAAO,KAAK,KAAK,QAAQ;AAC3B,iBAAO,KAAK,KAAK,MAAM,OAAO,IAAI;AAAA,QACpC;AACA,YAAI,QAAQ,KAAK,KAAK,QAAQ;AAC5B,iBAAO,KAAK,MAAM,MAAM,KAAK,MAAM,SAAS,OAAO,KAAK,KAAK,QAAQ,KAAK,MAAM,SAAS,QAAQ,KAAK,KAAK,MAAM,EAAE,QAAQ;AAAA,QAC7H;AACA,eAAO,KAAK,KAAK,MAAM,KAAK,EAAE,OAAO,KAAK,MAAM,MAAM,KAAK,MAAM,SAAS,OAAO,KAAK,KAAK,MAAM,EAAE,QAAQ,CAAC;AAAA,MAC9G;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,MAsBA,OAAO,OAAO,aAAa,OAAO;AAEhC,cAAMC,SAAQ,eAAe;AAC7B,aAAK,UAAU,KAAK,MAAM,KAAK,CAAC;AAChC,cAAM,UAAU,KAAK,MAAM,OAAO,KAAK,MAAM,SAASA,QAAO,OAAO,iBAAiB;AACrF,YAAI,MAAO,aAAY,KAAK,MAAM,KAAK;AACvC,eAAO,QAAQ,QAAQ;AAAA,MACzB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,MAUA,MAAM;AACJ,aAAK,UAAU,OAAO,iBAAiB;AACvC,eAAO,KAAK,KAAK,IAAI;AAAA,MACvB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,MAWA,KAAK,MAAM;AACT,aAAK,UAAU,OAAO,iBAAiB;AACvC,aAAK,KAAK,KAAK,IAAI;AAAA,MACrB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,MAWA,SAAS,OAAO;AACd,aAAK,UAAU,OAAO,iBAAiB;AACvC,oBAAY,KAAK,MAAM,KAAK;AAAA,MAC9B;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,MAWA,QAAQ,MAAM;AACZ,aAAK,UAAU,CAAC;AAChB,aAAK,MAAM,KAAK,IAAI;AAAA,MACtB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,MAWA,YAAY,OAAO;AACjB,aAAK,UAAU,CAAC;AAChB,oBAAY,KAAK,OAAO,MAAM,QAAQ,CAAC;AAAA,MACzC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,MAcA,UAAUC,KAAG;AACX,YAAIA,QAAM,KAAK,KAAK,UAAUA,MAAI,KAAK,KAAK,UAAU,KAAK,MAAM,WAAW,KAAKA,MAAI,KAAK,KAAK,KAAK,WAAW,EAAG;AAClH,YAAIA,MAAI,KAAK,KAAK,QAAQ;AAExB,gBAAM,UAAU,KAAK,KAAK,OAAOA,KAAG,OAAO,iBAAiB;AAC5D,sBAAY,KAAK,OAAO,QAAQ,QAAQ,CAAC;AAAA,QAC3C,OAAO;AAEL,gBAAM,UAAU,KAAK,MAAM,OAAO,KAAK,KAAK,SAAS,KAAK,MAAM,SAASA,KAAG,OAAO,iBAAiB;AACpG,sBAAY,KAAK,MAAM,QAAQ,QAAQ,CAAC;AAAA,QAC1C;AAAA,MACF;AAAA,IACF;AAAA;AAAA;;;AC9MO,SAAS,YAAY,aAAa;AAEvC,QAAM,QAAQ,CAAC;AACf,MAAIC,SAAQ;AAEZ,MAAI;AAEJ,MAAI;AAEJ,MAAI;AAEJ,MAAI;AAEJ,MAAI;AAEJ,MAAI;AAEJ,MAAI;AACJ,QAAM,SAAS,IAAI,aAAa,WAAW;AAC3C,SAAO,EAAEA,SAAQ,OAAO,QAAQ;AAC9B,WAAOA,UAAS,OAAO;AACrB,MAAAA,SAAQ,MAAMA,MAAK;AAAA,IACrB;AACA,YAAQ,OAAO,IAAIA,MAAK;AAIxB,QAAIA,UAAS,MAAM,CAAC,EAAE,SAAS,eAAe,OAAO,IAAIA,SAAQ,CAAC,EAAE,CAAC,EAAE,SAAS,kBAAkB;AAChG,kBAAY,MAAM,CAAC,EAAE,WAAW;AAChC,mBAAa;AACb,UAAI,aAAa,UAAU,UAAU,UAAU,UAAU,EAAE,CAAC,EAAE,SAAS,mBAAmB;AACxF,sBAAc;AAAA,MAChB;AACA,UAAI,aAAa,UAAU,UAAU,UAAU,UAAU,EAAE,CAAC,EAAE,SAAS,WAAW;AAChF,eAAO,EAAE,aAAa,UAAU,QAAQ;AACtC,cAAI,UAAU,UAAU,EAAE,CAAC,EAAE,SAAS,WAAW;AAC/C;AAAA,UACF;AACA,cAAI,UAAU,UAAU,EAAE,CAAC,EAAE,SAAS,aAAa;AACjD,sBAAU,UAAU,EAAE,CAAC,EAAE,8BAA8B;AACvD;AAAA,UACF;AAAA,QACF;AAAA,MACF;AAAA,IACF;AAGA,QAAI,MAAM,CAAC,MAAM,SAAS;AACxB,UAAI,MAAM,CAAC,EAAE,aAAa;AACxB,eAAO,OAAO,OAAO,WAAW,QAAQA,MAAK,CAAC;AAC9C,QAAAA,SAAQ,MAAMA,MAAK;AACnB,eAAO;AAAA,MACT;AAAA,IACF,WAES,MAAM,CAAC,EAAE,YAAY;AAC5B,mBAAaA;AACb,kBAAY;AACZ,aAAO,cAAc;AACnB,qBAAa,OAAO,IAAI,UAAU;AAClC,YAAI,WAAW,CAAC,EAAE,SAAS,gBAAgB,WAAW,CAAC,EAAE,SAAS,mBAAmB;AACnF,cAAI,WAAW,CAAC,MAAM,SAAS;AAC7B,gBAAI,WAAW;AACb,qBAAO,IAAI,SAAS,EAAE,CAAC,EAAE,OAAO;AAAA,YAClC;AACA,uBAAW,CAAC,EAAE,OAAO;AACrB,wBAAY;AAAA,UACd;AAAA,QACF,WAAW,WAAW,CAAC,EAAE,SAAS,gBAAgB,WAAW,CAAC,EAAE,SAAS,kBAAkB;AAAA,QAE3F,OAAO;AACL;AAAA,QACF;AAAA,MACF;AACA,UAAI,WAAW;AAEb,cAAM,CAAC,EAAE,MAAM;AAAA,UACb,GAAG,OAAO,IAAI,SAAS,EAAE,CAAC,EAAE;AAAA,QAC9B;AAGA,qBAAa,OAAO,MAAM,WAAWA,MAAK;AAC1C,mBAAW,QAAQ,KAAK;AACxB,eAAO,OAAO,WAAWA,SAAQ,YAAY,GAAG,UAAU;AAAA,MAC5D;AAAA,IACF;AAAA,EACF;AAGA,SAAO,aAAa,GAAG,OAAO,mBAAmB,OAAO,MAAM,CAAC,CAAC;AAChE,SAAO,CAAC;AACV;AAYA,SAAS,WAAW,QAAQ,YAAY;AACtC,QAAM,QAAQ,OAAO,IAAI,UAAU,EAAE,CAAC;AACtC,QAAMC,WAAU,OAAO,IAAI,UAAU,EAAE,CAAC;AACxC,MAAI,gBAAgB,aAAa;AAEjC,QAAM,iBAAiB,CAAC;AACxB,MAAI,YAAY,MAAM;AACtB,MAAI,CAAC,WAAW;AACd,gBAAYA,SAAQ,OAAO,MAAM,WAAW,EAAE,MAAM,KAAK;AACzD,QAAI,MAAM,0BAA0B;AAClC,gBAAU,2BAA2B;AAAA,IACvC;AAAA,EACF;AACA,QAAM,cAAc,UAAU;AAE9B,QAAM,QAAQ,CAAC;AAEf,QAAM,OAAO,CAAC;AAEd,MAAI;AAEJ,MAAIC;AACJ,MAAIF,SAAQ;AAEZ,MAAI,UAAU;AACd,MAAI,SAAS;AACb,MAAI,QAAQ;AACZ,QAAM,SAAS,CAAC,KAAK;AAIrB,SAAO,SAAS;AAEd,WAAO,OAAO,IAAI,EAAE,aAAa,EAAE,CAAC,MAAM,SAAS;AAAA,IAEnD;AACA,mBAAe,KAAK,aAAa;AACjC,QAAI,CAAC,QAAQ,YAAY;AACvB,eAASC,SAAQ,YAAY,OAAO;AACpC,UAAI,CAAC,QAAQ,MAAM;AACjB,eAAO,KAAK,IAAI;AAAA,MAClB;AACA,UAAIC,WAAU;AACZ,kBAAU,WAAW,QAAQ,KAAK;AAAA,MACpC;AACA,UAAI,QAAQ,6BAA6B;AACvC,kBAAU,qCAAqC;AAAA,MACjD;AACA,gBAAU,MAAM,MAAM;AACtB,UAAI,QAAQ,6BAA6B;AACvC,kBAAU,qCAAqC;AAAA,MACjD;AAAA,IACF;AAGA,IAAAA,YAAW;AACX,cAAU,QAAQ;AAAA,EACpB;AAIA,YAAU;AACV,SAAO,EAAEF,SAAQ,YAAY,QAAQ;AACnC;AAAA;AAAA,MAEA,YAAYA,MAAK,EAAE,CAAC,MAAM,UAAU,YAAYA,SAAQ,CAAC,EAAE,CAAC,MAAM,WAAW,YAAYA,MAAK,EAAE,CAAC,EAAE,SAAS,YAAYA,SAAQ,CAAC,EAAE,CAAC,EAAE,QAAQ,YAAYA,MAAK,EAAE,CAAC,EAAE,MAAM,SAAS,YAAYA,MAAK,EAAE,CAAC,EAAE,IAAI;AAAA,MAAM;AACjN,cAAQA,SAAQ;AAChB,aAAO,KAAK,KAAK;AAEjB,cAAQ,aAAa;AACrB,cAAQ,WAAW;AACnB,gBAAU,QAAQ;AAAA,IACpB;AAAA,EACF;AAGA,YAAU,SAAS,CAAC;AAKpB,MAAI,SAAS;AAEX,YAAQ,aAAa;AACrB,YAAQ,WAAW;AAAA,EACrB,OAAO;AACL,WAAO,IAAI;AAAA,EACb;AAIA,EAAAA,SAAQ,OAAO;AACf,SAAOA,UAAS;AACd,UAAM,QAAQ,YAAY,MAAM,OAAOA,MAAK,GAAG,OAAOA,SAAQ,CAAC,CAAC;AAChE,UAAMG,SAAQ,eAAe,IAAI;AACjC,UAAM,KAAK,CAACA,QAAOA,SAAQ,MAAM,SAAS,CAAC,CAAC;AAC5C,WAAO,OAAOA,QAAO,GAAG,KAAK;AAAA,EAC/B;AACA,QAAM,QAAQ;AACd,EAAAH,SAAQ;AACR,SAAO,EAAEA,SAAQ,MAAM,QAAQ;AAC7B,SAAK,SAAS,MAAMA,MAAK,EAAE,CAAC,CAAC,IAAI,SAAS,MAAMA,MAAK,EAAE,CAAC;AACxD,cAAU,MAAMA,MAAK,EAAE,CAAC,IAAI,MAAMA,MAAK,EAAE,CAAC,IAAI;AAAA,EAChD;AACA,SAAO;AACT;AAnOA;AAAA;AAIA;AACA;AAGA;AAAA;AAAA;;;AC2BA,SAAS,eAAe,QAAQ;AAC9B,cAAY,MAAM;AAClB,SAAO;AACT;AAOA,SAAS,gBAAgB,SAASI,KAAI;AAEpC,MAAIC;AACJ,SAAO;AAYP,WAAS,WAAWC,OAAM;AACxB,YAAQ,MAAM,SAAS;AACvB,IAAAD,YAAW,QAAQ,MAAM,gBAAgB;AAAA,MACvC,aAAa;AAAA,IACf,CAAC;AACD,WAAO,YAAYC,KAAI;AAAA,EACzB;AAYA,WAAS,YAAYA,OAAM;AACzB,QAAIA,UAAS,MAAM;AACjB,aAAO,WAAWA,KAAI;AAAA,IACxB;AAIA,QAAI,mBAAmBA,KAAI,GAAG;AAC5B,aAAO,QAAQ,MAAM,uBAAuB,iBAAiB,UAAU,EAAEA,KAAI;AAAA,IAC/E;AAGA,YAAQ,QAAQA,KAAI;AACpB,WAAO;AAAA,EACT;AAOA,WAAS,WAAWA,OAAM;AACxB,YAAQ,KAAK,cAAc;AAC3B,YAAQ,KAAK,SAAS;AACtB,WAAOF,IAAGE,KAAI;AAAA,EAChB;AAOA,WAAS,gBAAgBA,OAAM;AAC7B,YAAQ,QAAQA,KAAI;AACpB,YAAQ,KAAK,cAAc;AAC3B,IAAAD,UAAS,OAAO,QAAQ,MAAM,gBAAgB;AAAA,MAC5C,aAAa;AAAA,MACb,UAAAA;AAAA,IACF,CAAC;AACD,IAAAA,YAAWA,UAAS;AACpB,WAAO;AAAA,EACT;AACF;AAOA,SAAS,qBAAqB,SAASD,KAAI,KAAK;AAC9C,QAAMG,QAAO;AACb,SAAO;AAOP,WAAS,eAAeD,OAAM;AAC5B,YAAQ,KAAK,cAAc;AAC3B,YAAQ,MAAM,YAAY;AAC1B,YAAQ,QAAQA,KAAI;AACpB,YAAQ,KAAK,YAAY;AACzB,WAAO,aAAa,SAAS,UAAU,YAAY;AAAA,EACrD;AAOA,WAAS,SAASA,OAAM;AACtB,QAAIA,UAAS,QAAQ,mBAAmBA,KAAI,GAAG;AAC7C,aAAO,IAAIA,KAAI;AAAA,IACjB;AAIA,UAAM,OAAOC,MAAK,OAAOA,MAAK,OAAO,SAAS,CAAC;AAC/C,QAAI,CAACA,MAAK,OAAO,WAAW,QAAQ,KAAK,SAAS,cAAc,KAAK,QAAQ,KAAK,CAAC,EAAE,SAAS,gBAAgB,KAAK,CAAC,EAAE,eAAe,KAAK,CAAC,GAAG,IAAI,EAAE,UAAU,GAAG;AAC/J,aAAOH,IAAGE,KAAI;AAAA,IAChB;AACA,WAAO,QAAQ,UAAUC,MAAK,OAAO,WAAW,MAAM,KAAKH,GAAE,EAAEE,KAAI;AAAA,EACrE;AACF;AAlKA,IAkBa,SAMP;AAxBN;AAAA;AAWA;AACA;AACA;AAKO,IAAM,UAAU;AAAA,MACrB,SAAS;AAAA,MACT,UAAU;AAAA,IACZ;AAGA,IAAM,wBAAwB;AAAA,MAC5B,SAAS;AAAA,MACT,UAAU;AAAA,IACZ;AAAA;AAAA;;;ACeO,SAAS,mBAAmB,SAASE,KAAI,KAAKC,OAAM,aAAa,mBAAmB,SAAS,YAAYC,MAAK;AACnH,QAAM,QAAQA,QAAO,OAAO;AAC5B,MAAI,UAAU;AACd,SAAO;AAcP,WAAS,MAAMC,OAAM;AACnB,QAAIA,UAAS,IAAI;AACf,cAAQ,MAAMF,KAAI;AAClB,cAAQ,MAAM,WAAW;AACzB,cAAQ,MAAM,iBAAiB;AAC/B,cAAQ,QAAQE,KAAI;AACpB,cAAQ,KAAK,iBAAiB;AAC9B,aAAO;AAAA,IACT;AAGA,QAAIA,UAAS,QAAQA,UAAS,MAAMA,UAAS,MAAM,aAAaA,KAAI,GAAG;AACrE,aAAO,IAAIA,KAAI;AAAA,IACjB;AACA,YAAQ,MAAMF,KAAI;AAClB,YAAQ,MAAM,OAAO;AACrB,YAAQ,MAAM,UAAU;AACxB,YAAQ,MAAM,eAAe;AAAA,MAC3B,aAAa;AAAA,IACf,CAAC;AACD,WAAOG,KAAID,KAAI;AAAA,EACjB;AAYA,WAAS,eAAeA,OAAM;AAC5B,QAAIA,UAAS,IAAI;AACf,cAAQ,MAAM,iBAAiB;AAC/B,cAAQ,QAAQA,KAAI;AACpB,cAAQ,KAAK,iBAAiB;AAC9B,cAAQ,KAAK,WAAW;AACxB,cAAQ,KAAKF,KAAI;AACjB,aAAOD;AAAA,IACT;AACA,YAAQ,MAAM,UAAU;AACxB,YAAQ,MAAM,eAAe;AAAA,MAC3B,aAAa;AAAA,IACf,CAAC;AACD,WAAO,SAASG,KAAI;AAAA,EACtB;AAYA,WAAS,SAASA,OAAM;AACtB,QAAIA,UAAS,IAAI;AACf,cAAQ,KAAK,aAAa;AAC1B,cAAQ,KAAK,UAAU;AACvB,aAAO,eAAeA,KAAI;AAAA,IAC5B;AACA,QAAIA,UAAS,QAAQA,UAAS,MAAM,mBAAmBA,KAAI,GAAG;AAC5D,aAAO,IAAIA,KAAI;AAAA,IACjB;AACA,YAAQ,QAAQA,KAAI;AACpB,WAAOA,UAAS,KAAK,iBAAiB;AAAA,EACxC;AAYA,WAAS,eAAeA,OAAM;AAC5B,QAAIA,UAAS,MAAMA,UAAS,MAAMA,UAAS,IAAI;AAC7C,cAAQ,QAAQA,KAAI;AACpB,aAAO;AAAA,IACT;AACA,WAAO,SAASA,KAAI;AAAA,EACtB;AAYA,WAASC,KAAID,OAAM;AACjB,QAAI,CAAC,YAAYA,UAAS,QAAQA,UAAS,MAAM,0BAA0BA,KAAI,IAAI;AACjF,cAAQ,KAAK,aAAa;AAC1B,cAAQ,KAAK,UAAU;AACvB,cAAQ,KAAK,OAAO;AACpB,cAAQ,KAAKF,KAAI;AACjB,aAAOD,IAAGG,KAAI;AAAA,IAChB;AACA,QAAI,UAAU,SAASA,UAAS,IAAI;AAClC,cAAQ,QAAQA,KAAI;AACpB;AACA,aAAOC;AAAA,IACT;AACA,QAAID,UAAS,IAAI;AACf,cAAQ,QAAQA,KAAI;AACpB;AACA,aAAOC;AAAA,IACT;AAKA,QAAID,UAAS,QAAQA,UAAS,MAAMA,UAAS,MAAM,aAAaA,KAAI,GAAG;AACrE,aAAO,IAAIA,KAAI;AAAA,IACjB;AACA,YAAQ,QAAQA,KAAI;AACpB,WAAOA,UAAS,KAAK,YAAYC;AAAA,EACnC;AAYA,WAAS,UAAUD,OAAM;AACvB,QAAIA,UAAS,MAAMA,UAAS,MAAMA,UAAS,IAAI;AAC7C,cAAQ,QAAQA,KAAI;AACpB,aAAOC;AAAA,IACT;AACA,WAAOA,KAAID,KAAI;AAAA,EACjB;AACF;AA7MA;AAAA;AAIA;AAAA;AAAA;;;ACqCO,SAAS,aAAa,SAASE,KAAI,KAAKC,OAAM,YAAY,YAAY;AAC3E,QAAMC,QAAO;AACb,MAAI,OAAO;AAEX,MAAI;AACJ,SAAO;AAYP,WAAS,MAAMC,OAAM;AACnB,YAAQ,MAAMF,KAAI;AAClB,YAAQ,MAAM,UAAU;AACxB,YAAQ,QAAQE,KAAI;AACpB,YAAQ,KAAK,UAAU;AACvB,YAAQ,MAAM,UAAU;AACxB,WAAO;AAAA,EACT;AAYA,WAAS,QAAQA,OAAM;AACrB,QAAI,OAAO,OAAOA,UAAS,QAAQA,UAAS,MAAMA,UAAS,MAAM,CAAC;AAAA;AAAA;AAAA;AAAA;AAAA,IAMlEA,UAAS,MAAM,CAAC,QAAQ,4BAA4BD,MAAK,OAAO,YAAY;AAC1E,aAAO,IAAIC,KAAI;AAAA,IACjB;AACA,QAAIA,UAAS,IAAI;AACf,cAAQ,KAAK,UAAU;AACvB,cAAQ,MAAM,UAAU;AACxB,cAAQ,QAAQA,KAAI;AACpB,cAAQ,KAAK,UAAU;AACvB,cAAQ,KAAKF,KAAI;AACjB,aAAOD;AAAA,IACT;AAGA,QAAI,mBAAmBG,KAAI,GAAG;AAC5B,cAAQ,MAAM,YAAY;AAC1B,cAAQ,QAAQA,KAAI;AACpB,cAAQ,KAAK,YAAY;AACzB,aAAO;AAAA,IACT;AACA,YAAQ,MAAM,eAAe;AAAA,MAC3B,aAAa;AAAA,IACf,CAAC;AACD,WAAO,YAAYA,KAAI;AAAA,EACzB;AAYA,WAAS,YAAYA,OAAM;AACzB,QAAIA,UAAS,QAAQA,UAAS,MAAMA,UAAS,MAAM,mBAAmBA,KAAI,KAAK,SAAS,KAAK;AAC3F,cAAQ,KAAK,aAAa;AAC1B,aAAO,QAAQA,KAAI;AAAA,IACrB;AACA,YAAQ,QAAQA,KAAI;AACpB,QAAI,CAAC,KAAM,QAAO,CAAC,cAAcA,KAAI;AACrC,WAAOA,UAAS,KAAK,cAAc;AAAA,EACrC;AAYA,WAAS,YAAYA,OAAM;AACzB,QAAIA,UAAS,MAAMA,UAAS,MAAMA,UAAS,IAAI;AAC7C,cAAQ,QAAQA,KAAI;AACpB;AACA,aAAO;AAAA,IACT;AACA,WAAO,YAAYA,KAAI;AAAA,EACzB;AACF;AAnJA;AAAA;AASA;AAAA;AAAA;;;ACiCO,SAAS,aAAa,SAASC,KAAI,KAAKC,OAAM,YAAY,YAAY;AAE3E,MAAI;AACJ,SAAO;AAYP,WAAS,MAAMC,OAAM;AACnB,QAAIA,UAAS,MAAMA,UAAS,MAAMA,UAAS,IAAI;AAC7C,cAAQ,MAAMD,KAAI;AAClB,cAAQ,MAAM,UAAU;AACxB,cAAQ,QAAQC,KAAI;AACpB,cAAQ,KAAK,UAAU;AACvB,eAASA,UAAS,KAAK,KAAKA;AAC5B,aAAOC;AAAA,IACT;AACA,WAAO,IAAID,KAAI;AAAA,EACjB;AAcA,WAASC,OAAMD,OAAM;AACnB,QAAIA,UAAS,QAAQ;AACnB,cAAQ,MAAM,UAAU;AACxB,cAAQ,QAAQA,KAAI;AACpB,cAAQ,KAAK,UAAU;AACvB,cAAQ,KAAKD,KAAI;AACjB,aAAOD;AAAA,IACT;AACA,YAAQ,MAAM,UAAU;AACxB,WAAO,QAAQE,KAAI;AAAA,EACrB;AAYA,WAAS,QAAQA,OAAM;AACrB,QAAIA,UAAS,QAAQ;AACnB,cAAQ,KAAK,UAAU;AACvB,aAAOC,OAAM,MAAM;AAAA,IACrB;AACA,QAAID,UAAS,MAAM;AACjB,aAAO,IAAIA,KAAI;AAAA,IACjB;AAGA,QAAI,mBAAmBA,KAAI,GAAG;AAE5B,cAAQ,MAAM,YAAY;AAC1B,cAAQ,QAAQA,KAAI;AACpB,cAAQ,KAAK,YAAY;AACzB,aAAO,aAAa,SAAS,SAAS,YAAY;AAAA,IACpD;AACA,YAAQ,MAAM,eAAe;AAAA,MAC3B,aAAa;AAAA,IACf,CAAC;AACD,WAAO,OAAOA,KAAI;AAAA,EACpB;AAOA,WAAS,OAAOA,OAAM;AACpB,QAAIA,UAAS,UAAUA,UAAS,QAAQ,mBAAmBA,KAAI,GAAG;AAChE,cAAQ,KAAK,aAAa;AAC1B,aAAO,QAAQA,KAAI;AAAA,IACrB;AACA,YAAQ,QAAQA,KAAI;AACpB,WAAOA,UAAS,KAAK,SAAS;AAAA,EAChC;AAYA,WAAS,OAAOA,OAAM;AACpB,QAAIA,UAAS,UAAUA,UAAS,IAAI;AAClC,cAAQ,QAAQA,KAAI;AACpB,aAAO;AAAA,IACT;AACA,WAAO,OAAOA,KAAI;AAAA,EACpB;AACF;AA7JA;AAAA;AASA;AACA;AAAA;AAAA;;;ACcO,SAAS,kBAAkB,SAASE,KAAI;AAE7C,MAAI;AACJ,SAAO;AAGP,WAAS,MAAMC,OAAM;AACnB,QAAI,mBAAmBA,KAAI,GAAG;AAC5B,cAAQ,MAAM,YAAY;AAC1B,cAAQ,QAAQA,KAAI;AACpB,cAAQ,KAAK,YAAY;AACzB,aAAO;AACP,aAAO;AAAA,IACT;AACA,QAAI,cAAcA,KAAI,GAAG;AACvB,aAAO,aAAa,SAAS,OAAO,OAAO,eAAe,YAAY,EAAEA,KAAI;AAAA,IAC9E;AACA,WAAOD,IAAGC,KAAI;AAAA,EAChB;AACF;AA3CA;AAAA;AAIA;AACA;AAAA;AAAA;;;AC4BA,SAAS,mBAAmB,SAASC,KAAI,KAAK;AAC5C,QAAMC,QAAO;AAEb,MAAI;AACJ,SAAO;AAYP,WAAS,MAAMC,OAAM;AAInB,YAAQ,MAAM,YAAY;AAC1B,WAAO,OAAOA,KAAI;AAAA,EACpB;AAYA,WAAS,OAAOA,OAAM;AAGpB,WAAO,aAAa;AAAA,MAAKD;AAAA,MAAM;AAAA,MAAS;AAAA;AAAA,MAExC;AAAA,MAAK;AAAA,MAAmB;AAAA,MAAyB;AAAA,IAAuB,EAAEC,KAAI;AAAA,EAChF;AAYA,WAAS,WAAWA,OAAM;AACxB,iBAAa,oBAAoBD,MAAK,eAAeA,MAAK,OAAOA,MAAK,OAAO,SAAS,CAAC,EAAE,CAAC,CAAC,EAAE,MAAM,GAAG,EAAE,CAAC;AACzG,QAAIC,UAAS,IAAI;AACf,cAAQ,MAAM,kBAAkB;AAChC,cAAQ,QAAQA,KAAI;AACpB,cAAQ,KAAK,kBAAkB;AAC/B,aAAO;AAAA,IACT;AACA,WAAO,IAAIA,KAAI;AAAA,EACjB;AAYA,WAAS,YAAYA,OAAM;AAEzB,WAAO,0BAA0BA,KAAI,IAAI,kBAAkB,SAAS,iBAAiB,EAAEA,KAAI,IAAI,kBAAkBA,KAAI;AAAA,EACvH;AAYA,WAAS,kBAAkBA,OAAM;AAC/B,WAAO;AAAA,MAAmB;AAAA,MAAS;AAAA;AAAA,MAEnC;AAAA,MAAK;AAAA,MAAyB;AAAA,MAAgC;AAAA,MAAsC;AAAA,MAA4B;AAAA,IAA6B,EAAEA,KAAI;AAAA,EACrK;AAYA,WAAS,iBAAiBA,OAAM;AAC9B,WAAO,QAAQ,QAAQ,aAAa,OAAO,KAAK,EAAEA,KAAI;AAAA,EACxD;AAcA,WAAS,MAAMA,OAAM;AACnB,WAAO,cAAcA,KAAI,IAAI,aAAa,SAAS,iBAAiB,YAAY,EAAEA,KAAI,IAAI,gBAAgBA,KAAI;AAAA,EAChH;AAcA,WAAS,gBAAgBA,OAAM;AAC7B,QAAIA,UAAS,QAAQ,mBAAmBA,KAAI,GAAG;AAC7C,cAAQ,KAAK,YAAY;AAKzB,MAAAD,MAAK,OAAO,QAAQ,KAAK,UAAU;AAKnC,aAAOD,IAAGE,KAAI;AAAA,IAChB;AACA,WAAO,IAAIA,KAAI;AAAA,EACjB;AACF;AAOA,SAAS,oBAAoB,SAASF,KAAI,KAAK;AAC7C,SAAOG;AAcP,WAASA,aAAYD,OAAM;AACzB,WAAO,0BAA0BA,KAAI,IAAI,kBAAkB,SAAS,YAAY,EAAEA,KAAI,IAAI,IAAIA,KAAI;AAAA,EACpG;AAaA,WAAS,aAAaA,OAAM;AAC1B,WAAO,aAAa,SAAS,YAAY,KAAK,mBAAmB,yBAAyB,uBAAuB,EAAEA,KAAI;AAAA,EACzH;AAYA,WAAS,WAAWA,OAAM;AACxB,WAAO,cAAcA,KAAI,IAAI,aAAa,SAAS,8BAA8B,YAAY,EAAEA,KAAI,IAAI,6BAA6BA,KAAI;AAAA,EAC1I;AAYA,WAAS,6BAA6BA,OAAM;AAC1C,WAAOA,UAAS,QAAQ,mBAAmBA,KAAI,IAAIF,IAAGE,KAAI,IAAI,IAAIA,KAAI;AAAA,EACxE;AACF;AA7PA,IAiBaE,aAMP;AAvBN,IAAAC,mBAAA;AAAA;AASA;AACA;AACA;AACA;AACA;AACA;AACA;AAEO,IAAMD,cAAa;AAAA,MACxB,MAAM;AAAA,MACN,UAAU;AAAA,IACZ;AAGA,IAAM,cAAc;AAAA,MAClB,SAAS;AAAA,MACT,UAAU;AAAA,IACZ;AAAA;AAAA;;;ACLA,SAAS,wBAAwB,SAASE,KAAI,KAAK;AACjD,SAAO;AAaP,WAAS,MAAMC,OAAM;AACnB,YAAQ,MAAM,iBAAiB;AAC/B,YAAQ,QAAQA,KAAI;AACpB,WAAO;AAAA,EACT;AAaA,WAAS,MAAMA,OAAM;AACnB,QAAI,mBAAmBA,KAAI,GAAG;AAC5B,cAAQ,KAAK,iBAAiB;AAC9B,aAAOD,IAAGC,KAAI;AAAA,IAChB;AACA,WAAO,IAAIA,KAAI;AAAA,EACjB;AACF;AA3DA,IAWa;AAXb;AAAA;AASA;AAEO,IAAM,kBAAkB;AAAA,MAC7B,MAAM;AAAA,MACN,UAAU;AAAA,IACZ;AAAA;AAAA;;;ACQA,SAAS,kBAAkB,QAAQC,UAAS;AAC1C,MAAI,aAAa,OAAO,SAAS;AACjC,MAAI,eAAe;AAEnB,MAAIC;AAEJ,MAAIC;AAGJ,MAAI,OAAO,YAAY,EAAE,CAAC,EAAE,SAAS,cAAc;AACjD,oBAAgB;AAAA,EAClB;AAGA,MAAI,aAAa,IAAI,gBAAgB,OAAO,UAAU,EAAE,CAAC,EAAE,SAAS,cAAc;AAChF,kBAAc;AAAA,EAChB;AACA,MAAI,OAAO,UAAU,EAAE,CAAC,EAAE,SAAS,yBAAyB,iBAAiB,aAAa,KAAK,aAAa,IAAI,gBAAgB,OAAO,aAAa,CAAC,EAAE,CAAC,EAAE,SAAS,eAAe;AAChL,kBAAc,eAAe,MAAM,aAAa,IAAI;AAAA,EACtD;AACA,MAAI,aAAa,cAAc;AAC7B,IAAAD,WAAU;AAAA,MACR,MAAM;AAAA,MACN,OAAO,OAAO,YAAY,EAAE,CAAC,EAAE;AAAA,MAC/B,KAAK,OAAO,UAAU,EAAE,CAAC,EAAE;AAAA,IAC7B;AACA,IAAAC,QAAO;AAAA,MACL,MAAM;AAAA,MACN,OAAO,OAAO,YAAY,EAAE,CAAC,EAAE;AAAA,MAC/B,KAAK,OAAO,UAAU,EAAE,CAAC,EAAE;AAAA,MAC3B,aAAa;AAAA,IACf;AACA,WAAO,QAAQ,cAAc,aAAa,eAAe,GAAG,CAAC,CAAC,SAASD,UAASD,QAAO,GAAG,CAAC,SAASE,OAAMF,QAAO,GAAG,CAAC,QAAQE,OAAMF,QAAO,GAAG,CAAC,QAAQC,UAASD,QAAO,CAAC,CAAC;AAAA,EAC1K;AACA,SAAO;AACT;AAOA,SAAS,mBAAmB,SAASG,KAAI,KAAK;AAC5C,MAAI,OAAO;AACX,SAAO;AAYP,WAAS,MAAMC,OAAM;AAEnB,YAAQ,MAAM,YAAY;AAC1B,WAAO,OAAOA,KAAI;AAAA,EACpB;AAYA,WAAS,OAAOA,OAAM;AACpB,YAAQ,MAAM,oBAAoB;AAClC,WAAO,aAAaA,KAAI;AAAA,EAC1B;AAYA,WAAS,aAAaA,OAAM;AAC1B,QAAIA,UAAS,MAAM,SAAS,GAAG;AAC7B,cAAQ,QAAQA,KAAI;AACpB,aAAO;AAAA,IACT;AAGA,QAAIA,UAAS,QAAQ,0BAA0BA,KAAI,GAAG;AACpD,cAAQ,KAAK,oBAAoB;AACjC,aAAO,QAAQA,KAAI;AAAA,IACrB;AACA,WAAO,IAAIA,KAAI;AAAA,EACjB;AAYA,WAAS,QAAQA,OAAM;AACrB,QAAIA,UAAS,IAAI;AACf,cAAQ,MAAM,oBAAoB;AAClC,aAAO,gBAAgBA,KAAI;AAAA,IAC7B;AACA,QAAIA,UAAS,QAAQ,mBAAmBA,KAAI,GAAG;AAC7C,cAAQ,KAAK,YAAY;AAIzB,aAAOD,IAAGC,KAAI;AAAA,IAChB;AACA,QAAI,cAAcA,KAAI,GAAG;AACvB,aAAO,aAAa,SAAS,SAAS,YAAY,EAAEA,KAAI;AAAA,IAC1D;AAIA,YAAQ,MAAM,gBAAgB;AAC9B,WAAOC,MAAKD,KAAI;AAAA,EAClB;AAcA,WAAS,gBAAgBA,OAAM;AAC7B,QAAIA,UAAS,IAAI;AACf,cAAQ,QAAQA,KAAI;AACpB,aAAO;AAAA,IACT;AACA,YAAQ,KAAK,oBAAoB;AACjC,WAAO,QAAQA,KAAI;AAAA,EACrB;AAYA,WAASC,MAAKD,OAAM;AAClB,QAAIA,UAAS,QAAQA,UAAS,MAAM,0BAA0BA,KAAI,GAAG;AACnE,cAAQ,KAAK,gBAAgB;AAC7B,aAAO,QAAQA,KAAI;AAAA,IACrB;AACA,YAAQ,QAAQA,KAAI;AACpB,WAAOC;AAAA,EACT;AACF;AAlMA,IAea;AAfb;AAAA;AAWA;AACA;AACA;AAEO,IAAM,aAAa;AAAA,MACxB,MAAM;AAAA,MACN,SAAS;AAAA,MACT,UAAU;AAAA,IACZ;AAAA;AAAA;;;ACnBA,IAea,gBA6EA;AA5Fb;AAAA;AAeO,IAAM,iBAAiB;AAAA,MAC5B;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IACF;AAcO,IAAM,eAAe,CAAC,OAAO,UAAU,SAAS,UAAU;AAAA;AAAA;;;AC1DjE,SAAS,kBAAkB,QAAQ;AACjC,MAAIC,SAAQ,OAAO;AACnB,SAAOA,UAAS;AACd,QAAI,OAAOA,MAAK,EAAE,CAAC,MAAM,WAAW,OAAOA,MAAK,EAAE,CAAC,EAAE,SAAS,YAAY;AACxE;AAAA,IACF;AAAA,EACF;AACA,MAAIA,SAAQ,KAAK,OAAOA,SAAQ,CAAC,EAAE,CAAC,EAAE,SAAS,cAAc;AAE3D,WAAOA,MAAK,EAAE,CAAC,EAAE,QAAQ,OAAOA,SAAQ,CAAC,EAAE,CAAC,EAAE;AAE9C,WAAOA,SAAQ,CAAC,EAAE,CAAC,EAAE,QAAQ,OAAOA,SAAQ,CAAC,EAAE,CAAC,EAAE;AAElD,WAAO,OAAOA,SAAQ,GAAG,CAAC;AAAA,EAC5B;AACA,SAAO;AACT;AAOA,SAAS,iBAAiB,SAASC,KAAI,KAAK;AAC1C,QAAMC,QAAO;AAEb,MAAI;AAEJ,MAAI;AAEJ,MAAIC;AAEJ,MAAIH;AAEJ,MAAI;AACJ,SAAO;AAYP,WAAS,MAAMI,OAAM;AAEnB,WAAO,OAAOA,KAAI;AAAA,EACpB;AAYA,WAAS,OAAOA,OAAM;AACpB,YAAQ,MAAM,UAAU;AACxB,YAAQ,MAAM,cAAc;AAC5B,YAAQ,QAAQA,KAAI;AACpB,WAAO;AAAA,EACT;AAgBA,WAAS,KAAKA,OAAM;AAClB,QAAIA,UAAS,IAAI;AACf,cAAQ,QAAQA,KAAI;AACpB,aAAO;AAAA,IACT;AACA,QAAIA,UAAS,IAAI;AACf,cAAQ,QAAQA,KAAI;AACpB,mBAAa;AACb,aAAO;AAAA,IACT;AACA,QAAIA,UAAS,IAAI;AACf,cAAQ,QAAQA,KAAI;AACpB,eAAS;AAMT,aAAOF,MAAK,YAAYD,MAAK;AAAA,IAC/B;AAGA,QAAI,WAAWG,KAAI,GAAG;AAEpB,cAAQ,QAAQA,KAAI;AACpB,MAAAD,UAAS,OAAO,aAAaC,KAAI;AACjC,aAAO;AAAA,IACT;AACA,WAAO,IAAIA,KAAI;AAAA,EACjB;AAgBA,WAAS,gBAAgBA,OAAM;AAC7B,QAAIA,UAAS,IAAI;AACf,cAAQ,QAAQA,KAAI;AACpB,eAAS;AACT,aAAO;AAAA,IACT;AACA,QAAIA,UAAS,IAAI;AACf,cAAQ,QAAQA,KAAI;AACpB,eAAS;AACT,MAAAJ,SAAQ;AACR,aAAO;AAAA,IACT;AAGA,QAAI,WAAWI,KAAI,GAAG;AACpB,cAAQ,QAAQA,KAAI;AACpB,eAAS;AAGT,aAAOF,MAAK,YAAYD,MAAK;AAAA,IAC/B;AACA,WAAO,IAAIG,KAAI;AAAA,EACjB;AAYA,WAAS,kBAAkBA,OAAM;AAC/B,QAAIA,UAAS,IAAI;AACf,cAAQ,QAAQA,KAAI;AAGpB,aAAOF,MAAK,YAAYD,MAAK;AAAA,IAC/B;AACA,WAAO,IAAIG,KAAI;AAAA,EACjB;AAYA,WAAS,gBAAgBA,OAAM;AAC7B,UAAMC,SAAQ;AACd,QAAID,UAASC,OAAM,WAAWL,QAAO,GAAG;AACtC,cAAQ,QAAQI,KAAI;AACpB,UAAIJ,WAAUK,OAAM,QAAQ;AAG1B,eAAOH,MAAK,YAAYD,MAAK;AAAA,MAC/B;AACA,aAAO;AAAA,IACT;AACA,WAAO,IAAIG,KAAI;AAAA,EACjB;AAYA,WAAS,cAAcA,OAAM;AAC3B,QAAI,WAAWA,KAAI,GAAG;AAEpB,cAAQ,QAAQA,KAAI;AACpB,MAAAD,UAAS,OAAO,aAAaC,KAAI;AACjC,aAAO;AAAA,IACT;AACA,WAAO,IAAIA,KAAI;AAAA,EACjB;AAcA,WAAS,QAAQA,OAAM;AACrB,QAAIA,UAAS,QAAQA,UAAS,MAAMA,UAAS,MAAM,0BAA0BA,KAAI,GAAG;AAClF,YAAM,QAAQA,UAAS;AACvB,YAAM,OAAOD,QAAO,YAAY;AAChC,UAAI,CAAC,SAAS,CAAC,cAAc,aAAa,SAAS,IAAI,GAAG;AACxD,iBAAS;AAGT,eAAOD,MAAK,YAAYD,IAAGG,KAAI,IAAI,aAAaA,KAAI;AAAA,MACtD;AACA,UAAI,eAAe,SAASD,QAAO,YAAY,CAAC,GAAG;AACjD,iBAAS;AACT,YAAI,OAAO;AACT,kBAAQ,QAAQC,KAAI;AACpB,iBAAO;AAAA,QACT;AAIA,eAAOF,MAAK,YAAYD,IAAGG,KAAI,IAAI,aAAaA,KAAI;AAAA,MACtD;AACA,eAAS;AAET,aAAOF,MAAK,aAAa,CAACA,MAAK,OAAO,KAAKA,MAAK,IAAI,EAAE,IAAI,IAAI,IAAIE,KAAI,IAAI,aAAa,wBAAwBA,KAAI,IAAI,4BAA4BA,KAAI;AAAA,IACzJ;AAGA,QAAIA,UAAS,MAAM,kBAAkBA,KAAI,GAAG;AAC1C,cAAQ,QAAQA,KAAI;AACpB,MAAAD,WAAU,OAAO,aAAaC,KAAI;AAClC,aAAO;AAAA,IACT;AACA,WAAO,IAAIA,KAAI;AAAA,EACjB;AAYA,WAAS,iBAAiBA,OAAM;AAC9B,QAAIA,UAAS,IAAI;AACf,cAAQ,QAAQA,KAAI;AAGpB,aAAOF,MAAK,YAAYD,MAAK;AAAA,IAC/B;AACA,WAAO,IAAIG,KAAI;AAAA,EACjB;AAYA,WAAS,wBAAwBA,OAAM;AACrC,QAAI,cAAcA,KAAI,GAAG;AACvB,cAAQ,QAAQA,KAAI;AACpB,aAAO;AAAA,IACT;AACA,WAAO,YAAYA,KAAI;AAAA,EACzB;AAyBA,WAAS,4BAA4BA,OAAM;AACzC,QAAIA,UAAS,IAAI;AACf,cAAQ,QAAQA,KAAI;AACpB,aAAO;AAAA,IACT;AAGA,QAAIA,UAAS,MAAMA,UAAS,MAAM,WAAWA,KAAI,GAAG;AAClD,cAAQ,QAAQA,KAAI;AACpB,aAAO;AAAA,IACT;AACA,QAAI,cAAcA,KAAI,GAAG;AACvB,cAAQ,QAAQA,KAAI;AACpB,aAAO;AAAA,IACT;AACA,WAAO,YAAYA,KAAI;AAAA,EACzB;AAgBA,WAAS,sBAAsBA,OAAM;AAEnC,QAAIA,UAAS,MAAMA,UAAS,MAAMA,UAAS,MAAMA,UAAS,MAAM,kBAAkBA,KAAI,GAAG;AACvF,cAAQ,QAAQA,KAAI;AACpB,aAAO;AAAA,IACT;AACA,WAAO,2BAA2BA,KAAI;AAAA,EACxC;AAeA,WAAS,2BAA2BA,OAAM;AACxC,QAAIA,UAAS,IAAI;AACf,cAAQ,QAAQA,KAAI;AACpB,aAAO;AAAA,IACT;AACA,QAAI,cAAcA,KAAI,GAAG;AACvB,cAAQ,QAAQA,KAAI;AACpB,aAAO;AAAA,IACT;AACA,WAAO,4BAA4BA,KAAI;AAAA,EACzC;AAeA,WAAS,6BAA6BA,OAAM;AAC1C,QAAIA,UAAS,QAAQA,UAAS,MAAMA,UAAS,MAAMA,UAAS,MAAMA,UAAS,IAAI;AAC7E,aAAO,IAAIA,KAAI;AAAA,IACjB;AACA,QAAIA,UAAS,MAAMA,UAAS,IAAI;AAC9B,cAAQ,QAAQA,KAAI;AACpB,gBAAUA;AACV,aAAO;AAAA,IACT;AACA,QAAI,cAAcA,KAAI,GAAG;AACvB,cAAQ,QAAQA,KAAI;AACpB,aAAO;AAAA,IACT;AACA,WAAO,+BAA+BA,KAAI;AAAA,EAC5C;AAcA,WAAS,6BAA6BA,OAAM;AAC1C,QAAIA,UAAS,SAAS;AACpB,cAAQ,QAAQA,KAAI;AACpB,gBAAU;AACV,aAAO;AAAA,IACT;AACA,QAAIA,UAAS,QAAQ,mBAAmBA,KAAI,GAAG;AAC7C,aAAO,IAAIA,KAAI;AAAA,IACjB;AACA,YAAQ,QAAQA,KAAI;AACpB,WAAO;AAAA,EACT;AAYA,WAAS,+BAA+BA,OAAM;AAC5C,QAAIA,UAAS,QAAQA,UAAS,MAAMA,UAAS,MAAMA,UAAS,MAAMA,UAAS,MAAMA,UAAS,MAAMA,UAAS,MAAMA,UAAS,MAAM,0BAA0BA,KAAI,GAAG;AAC7J,aAAO,2BAA2BA,KAAI;AAAA,IACxC;AACA,YAAQ,QAAQA,KAAI;AACpB,WAAO;AAAA,EACT;AAaA,WAAS,kCAAkCA,OAAM;AAC/C,QAAIA,UAAS,MAAMA,UAAS,MAAM,cAAcA,KAAI,GAAG;AACrD,aAAO,4BAA4BA,KAAI;AAAA,IACzC;AACA,WAAO,IAAIA,KAAI;AAAA,EACjB;AAYA,WAAS,YAAYA,OAAM;AACzB,QAAIA,UAAS,IAAI;AACf,cAAQ,QAAQA,KAAI;AACpB,aAAO;AAAA,IACT;AACA,WAAO,IAAIA,KAAI;AAAA,EACjB;AAYA,WAAS,cAAcA,OAAM;AAC3B,QAAIA,UAAS,QAAQ,mBAAmBA,KAAI,GAAG;AAG7C,aAAO,aAAaA,KAAI;AAAA,IAC1B;AACA,QAAI,cAAcA,KAAI,GAAG;AACvB,cAAQ,QAAQA,KAAI;AACpB,aAAO;AAAA,IACT;AACA,WAAO,IAAIA,KAAI;AAAA,EACjB;AAYA,WAAS,aAAaA,OAAM;AAC1B,QAAIA,UAAS,MAAM,WAAW,GAAG;AAC/B,cAAQ,QAAQA,KAAI;AACpB,aAAO;AAAA,IACT;AACA,QAAIA,UAAS,MAAM,WAAW,GAAG;AAC/B,cAAQ,QAAQA,KAAI;AACpB,aAAO;AAAA,IACT;AACA,QAAIA,UAAS,MAAM,WAAW,GAAG;AAC/B,cAAQ,QAAQA,KAAI;AACpB,aAAO;AAAA,IACT;AACA,QAAIA,UAAS,MAAM,WAAW,GAAG;AAC/B,cAAQ,QAAQA,KAAI;AACpB,aAAO;AAAA,IACT;AACA,QAAIA,UAAS,MAAM,WAAW,GAAG;AAC/B,cAAQ,QAAQA,KAAI;AACpB,aAAO;AAAA,IACT;AACA,QAAI,mBAAmBA,KAAI,MAAM,WAAW,KAAK,WAAW,IAAI;AAC9D,cAAQ,KAAK,cAAc;AAC3B,aAAO,QAAQ,MAAM,iBAAiB,mBAAmB,iBAAiB,EAAEA,KAAI;AAAA,IAClF;AACA,QAAIA,UAAS,QAAQ,mBAAmBA,KAAI,GAAG;AAC7C,cAAQ,KAAK,cAAc;AAC3B,aAAO,kBAAkBA,KAAI;AAAA,IAC/B;AACA,YAAQ,QAAQA,KAAI;AACpB,WAAO;AAAA,EACT;AAaA,WAAS,kBAAkBA,OAAM;AAC/B,WAAO,QAAQ,MAAM,0BAA0B,0BAA0B,iBAAiB,EAAEA,KAAI;AAAA,EAClG;AAaA,WAAS,yBAAyBA,OAAM;AACtC,YAAQ,MAAM,YAAY;AAC1B,YAAQ,QAAQA,KAAI;AACpB,YAAQ,KAAK,YAAY;AACzB,WAAO;AAAA,EACT;AAaA,WAAS,mBAAmBA,OAAM;AAChC,QAAIA,UAAS,QAAQ,mBAAmBA,KAAI,GAAG;AAC7C,aAAO,kBAAkBA,KAAI;AAAA,IAC/B;AACA,YAAQ,MAAM,cAAc;AAC5B,WAAO,aAAaA,KAAI;AAAA,EAC1B;AAYA,WAAS,0BAA0BA,OAAM;AACvC,QAAIA,UAAS,IAAI;AACf,cAAQ,QAAQA,KAAI;AACpB,aAAO;AAAA,IACT;AACA,WAAO,aAAaA,KAAI;AAAA,EAC1B;AAYA,WAAS,uBAAuBA,OAAM;AACpC,QAAIA,UAAS,IAAI;AACf,cAAQ,QAAQA,KAAI;AACpB,MAAAD,UAAS;AACT,aAAO;AAAA,IACT;AACA,WAAO,aAAaC,KAAI;AAAA,EAC1B;AAYA,WAAS,sBAAsBA,OAAM;AACnC,QAAIA,UAAS,IAAI;AACf,YAAM,OAAOD,QAAO,YAAY;AAChC,UAAI,aAAa,SAAS,IAAI,GAAG;AAC/B,gBAAQ,QAAQC,KAAI;AACpB,eAAO;AAAA,MACT;AACA,aAAO,aAAaA,KAAI;AAAA,IAC1B;AACA,QAAI,WAAWA,KAAI,KAAKD,QAAO,SAAS,GAAG;AAEzC,cAAQ,QAAQC,KAAI;AACpB,MAAAD,WAAU,OAAO,aAAaC,KAAI;AAClC,aAAO;AAAA,IACT;AACA,WAAO,aAAaA,KAAI;AAAA,EAC1B;AAYA,WAAS,wBAAwBA,OAAM;AACrC,QAAIA,UAAS,IAAI;AACf,cAAQ,QAAQA,KAAI;AACpB,aAAO;AAAA,IACT;AACA,WAAO,aAAaA,KAAI;AAAA,EAC1B;AAoBA,WAAS,8BAA8BA,OAAM;AAC3C,QAAIA,UAAS,IAAI;AACf,cAAQ,QAAQA,KAAI;AACpB,aAAO;AAAA,IACT;AAGA,QAAIA,UAAS,MAAM,WAAW,GAAG;AAC/B,cAAQ,QAAQA,KAAI;AACpB,aAAO;AAAA,IACT;AACA,WAAO,aAAaA,KAAI;AAAA,EAC1B;AAYA,WAAS,kBAAkBA,OAAM;AAC/B,QAAIA,UAAS,QAAQ,mBAAmBA,KAAI,GAAG;AAC7C,cAAQ,KAAK,cAAc;AAC3B,aAAO,kBAAkBA,KAAI;AAAA,IAC/B;AACA,YAAQ,QAAQA,KAAI;AACpB,WAAO;AAAA,EACT;AAYA,WAAS,kBAAkBA,OAAM;AAC/B,YAAQ,KAAK,UAAU;AAKvB,WAAOH,IAAGG,KAAI;AAAA,EAChB;AACF;AAOA,SAAS,iCAAiC,SAASH,KAAI,KAAK;AAC1D,QAAMC,QAAO;AACb,SAAO;AAaP,WAAS,MAAME,OAAM;AACnB,QAAI,mBAAmBA,KAAI,GAAG;AAC5B,cAAQ,MAAM,YAAY;AAC1B,cAAQ,QAAQA,KAAI;AACpB,cAAQ,KAAK,YAAY;AACzB,aAAO;AAAA,IACT;AACA,WAAO,IAAIA,KAAI;AAAA,EACjB;AAaA,WAAS,MAAMA,OAAM;AACnB,WAAOF,MAAK,OAAO,KAAKA,MAAK,IAAI,EAAE,IAAI,IAAI,IAAIE,KAAI,IAAIH,IAAGG,KAAI;AAAA,EAChE;AACF;AAOA,SAAS,wBAAwB,SAASH,KAAI,KAAK;AACjD,SAAO;AAaP,WAAS,MAAMG,OAAM;AACnB,YAAQ,MAAM,YAAY;AAC1B,YAAQ,QAAQA,KAAI;AACpB,YAAQ,KAAK,YAAY;AACzB,WAAO,QAAQ,QAAQ,WAAWH,KAAI,GAAG;AAAA,EAC3C;AACF;AA32BA,IAgBa,UAQP,iBAIA;AA5BN;AAAA;AAWA;AACA;AACA;AAGO,IAAM,WAAW;AAAA,MACtB,UAAU;AAAA,MACV,MAAM;AAAA,MACN,WAAW;AAAA,MACX,UAAU;AAAA,IACZ;AAGA,IAAM,kBAAkB;AAAA,MACtB,SAAS;AAAA,MACT,UAAU;AAAA,IACZ;AACA,IAAM,2BAA2B;AAAA,MAC/B,SAAS;AAAA,MACT,UAAU;AAAA,IACZ;AAAA;AAAA;;;ACRA,SAAS,iBAAiB,SAASK,KAAI,KAAK;AAC1C,QAAMC,QAAO;AAEb,MAAI;AAEJ,MAAIC;AAEJ,MAAI;AACJ,SAAO;AAYP,WAAS,MAAMC,OAAM;AACnB,YAAQ,MAAM,UAAU;AACxB,YAAQ,MAAM,cAAc;AAC5B,YAAQ,QAAQA,KAAI;AACpB,WAAO;AAAA,EACT;AAgBA,WAAS,KAAKA,OAAM;AAClB,QAAIA,UAAS,IAAI;AACf,cAAQ,QAAQA,KAAI;AACpB,aAAO;AAAA,IACT;AACA,QAAIA,UAAS,IAAI;AACf,cAAQ,QAAQA,KAAI;AACpB,aAAO;AAAA,IACT;AACA,QAAIA,UAAS,IAAI;AACf,cAAQ,QAAQA,KAAI;AACpB,aAAO;AAAA,IACT;AAGA,QAAI,WAAWA,KAAI,GAAG;AACpB,cAAQ,QAAQA,KAAI;AACpB,aAAO;AAAA,IACT;AACA,WAAO,IAAIA,KAAI;AAAA,EACjB;AAgBA,WAAS,gBAAgBA,OAAM;AAC7B,QAAIA,UAAS,IAAI;AACf,cAAQ,QAAQA,KAAI;AACpB,aAAO;AAAA,IACT;AACA,QAAIA,UAAS,IAAI;AACf,cAAQ,QAAQA,KAAI;AACpB,MAAAD,SAAQ;AACR,aAAO;AAAA,IACT;AACA,QAAI,WAAWC,KAAI,GAAG;AACpB,cAAQ,QAAQA,KAAI;AACpB,aAAO;AAAA,IACT;AACA,WAAO,IAAIA,KAAI;AAAA,EACjB;AAYA,WAAS,kBAAkBA,OAAM;AAC/B,QAAIA,UAAS,IAAI;AACf,cAAQ,QAAQA,KAAI;AACpB,aAAO;AAAA,IACT;AACA,WAAO,IAAIA,KAAI;AAAA,EACjB;AAYA,WAASC,SAAQD,OAAM;AACrB,QAAIA,UAAS,MAAM;AACjB,aAAO,IAAIA,KAAI;AAAA,IACjB;AACA,QAAIA,UAAS,IAAI;AACf,cAAQ,QAAQA,KAAI;AACpB,aAAO;AAAA,IACT;AACA,QAAI,mBAAmBA,KAAI,GAAG;AAC5B,oBAAcC;AACd,aAAO,iBAAiBD,KAAI;AAAA,IAC9B;AACA,YAAQ,QAAQA,KAAI;AACpB,WAAOC;AAAA,EACT;AAYA,WAAS,aAAaD,OAAM;AAC1B,QAAIA,UAAS,IAAI;AACf,cAAQ,QAAQA,KAAI;AACpB,aAAO;AAAA,IACT;AACA,WAAOC,SAAQD,KAAI;AAAA,EACrB;AAYA,WAAS,WAAWA,OAAM;AACxB,WAAOA,UAAS,KAAKE,KAAIF,KAAI,IAAIA,UAAS,KAAK,aAAaA,KAAI,IAAIC,SAAQD,KAAI;AAAA,EAClF;AAYA,WAAS,gBAAgBA,OAAM;AAC7B,UAAMG,SAAQ;AACd,QAAIH,UAASG,OAAM,WAAWJ,QAAO,GAAG;AACtC,cAAQ,QAAQC,KAAI;AACpB,aAAOD,WAAUI,OAAM,SAAS,QAAQ;AAAA,IAC1C;AACA,WAAO,IAAIH,KAAI;AAAA,EACjB;AAYA,WAAS,MAAMA,OAAM;AACnB,QAAIA,UAAS,MAAM;AACjB,aAAO,IAAIA,KAAI;AAAA,IACjB;AACA,QAAIA,UAAS,IAAI;AACf,cAAQ,QAAQA,KAAI;AACpB,aAAO;AAAA,IACT;AACA,QAAI,mBAAmBA,KAAI,GAAG;AAC5B,oBAAc;AACd,aAAO,iBAAiBA,KAAI;AAAA,IAC9B;AACA,YAAQ,QAAQA,KAAI;AACpB,WAAO;AAAA,EACT;AAYA,WAAS,WAAWA,OAAM;AACxB,QAAIA,UAAS,IAAI;AACf,cAAQ,QAAQA,KAAI;AACpB,aAAO;AAAA,IACT;AACA,WAAO,MAAMA,KAAI;AAAA,EACnB;AAYA,WAAS,SAASA,OAAM;AACtB,QAAIA,UAAS,IAAI;AACf,aAAOE,KAAIF,KAAI;AAAA,IACjB;AACA,QAAIA,UAAS,IAAI;AACf,cAAQ,QAAQA,KAAI;AACpB,aAAO;AAAA,IACT;AACA,WAAO,MAAMA,KAAI;AAAA,EACnB;AAYA,WAAS,YAAYA,OAAM;AACzB,QAAIA,UAAS,QAAQA,UAAS,IAAI;AAChC,aAAOE,KAAIF,KAAI;AAAA,IACjB;AACA,QAAI,mBAAmBA,KAAI,GAAG;AAC5B,oBAAc;AACd,aAAO,iBAAiBA,KAAI;AAAA,IAC9B;AACA,YAAQ,QAAQA,KAAI;AACpB,WAAO;AAAA,EACT;AAYA,WAAS,YAAYA,OAAM;AACzB,QAAIA,UAAS,MAAM;AACjB,aAAO,IAAIA,KAAI;AAAA,IACjB;AACA,QAAIA,UAAS,IAAI;AACf,cAAQ,QAAQA,KAAI;AACpB,aAAO;AAAA,IACT;AACA,QAAI,mBAAmBA,KAAI,GAAG;AAC5B,oBAAc;AACd,aAAO,iBAAiBA,KAAI;AAAA,IAC9B;AACA,YAAQ,QAAQA,KAAI;AACpB,WAAO;AAAA,EACT;AAYA,WAAS,iBAAiBA,OAAM;AAC9B,WAAOA,UAAS,KAAKE,KAAIF,KAAI,IAAI,YAAYA,KAAI;AAAA,EACnD;AAYA,WAAS,cAAcA,OAAM;AAE3B,QAAI,WAAWA,KAAI,GAAG;AACpB,cAAQ,QAAQA,KAAI;AACpB,aAAO;AAAA,IACT;AACA,WAAO,IAAIA,KAAI;AAAA,EACjB;AAYA,WAAS,SAASA,OAAM;AAEtB,QAAIA,UAAS,MAAM,kBAAkBA,KAAI,GAAG;AAC1C,cAAQ,QAAQA,KAAI;AACpB,aAAO;AAAA,IACT;AACA,WAAO,gBAAgBA,KAAI;AAAA,EAC7B;AAYA,WAAS,gBAAgBA,OAAM;AAC7B,QAAI,mBAAmBA,KAAI,GAAG;AAC5B,oBAAc;AACd,aAAO,iBAAiBA,KAAI;AAAA,IAC9B;AACA,QAAI,cAAcA,KAAI,GAAG;AACvB,cAAQ,QAAQA,KAAI;AACpB,aAAO;AAAA,IACT;AACA,WAAOE,KAAIF,KAAI;AAAA,EACjB;AAYA,WAAS,QAAQA,OAAM;AAErB,QAAIA,UAAS,MAAM,kBAAkBA,KAAI,GAAG;AAC1C,cAAQ,QAAQA,KAAI;AACpB,aAAO;AAAA,IACT;AACA,QAAIA,UAAS,MAAMA,UAAS,MAAM,0BAA0BA,KAAI,GAAG;AACjE,aAAO,eAAeA,KAAI;AAAA,IAC5B;AACA,WAAO,IAAIA,KAAI;AAAA,EACjB;AAYA,WAAS,eAAeA,OAAM;AAC5B,QAAIA,UAAS,IAAI;AACf,cAAQ,QAAQA,KAAI;AACpB,aAAOE;AAAA,IACT;AAGA,QAAIF,UAAS,MAAMA,UAAS,MAAM,WAAWA,KAAI,GAAG;AAClD,cAAQ,QAAQA,KAAI;AACpB,aAAO;AAAA,IACT;AACA,QAAI,mBAAmBA,KAAI,GAAG;AAC5B,oBAAc;AACd,aAAO,iBAAiBA,KAAI;AAAA,IAC9B;AACA,QAAI,cAAcA,KAAI,GAAG;AACvB,cAAQ,QAAQA,KAAI;AACpB,aAAO;AAAA,IACT;AACA,WAAOE,KAAIF,KAAI;AAAA,EACjB;AAYA,WAAS,qBAAqBA,OAAM;AAElC,QAAIA,UAAS,MAAMA,UAAS,MAAMA,UAAS,MAAMA,UAAS,MAAM,kBAAkBA,KAAI,GAAG;AACvF,cAAQ,QAAQA,KAAI;AACpB,aAAO;AAAA,IACT;AACA,WAAO,0BAA0BA,KAAI;AAAA,EACvC;AAaA,WAAS,0BAA0BA,OAAM;AACvC,QAAIA,UAAS,IAAI;AACf,cAAQ,QAAQA,KAAI;AACpB,aAAO;AAAA,IACT;AACA,QAAI,mBAAmBA,KAAI,GAAG;AAC5B,oBAAc;AACd,aAAO,iBAAiBA,KAAI;AAAA,IAC9B;AACA,QAAI,cAAcA,KAAI,GAAG;AACvB,cAAQ,QAAQA,KAAI;AACpB,aAAO;AAAA,IACT;AACA,WAAO,eAAeA,KAAI;AAAA,EAC5B;AAaA,WAAS,4BAA4BA,OAAM;AACzC,QAAIA,UAAS,QAAQA,UAAS,MAAMA,UAAS,MAAMA,UAAS,MAAMA,UAAS,IAAI;AAC7E,aAAO,IAAIA,KAAI;AAAA,IACjB;AACA,QAAIA,UAAS,MAAMA,UAAS,IAAI;AAC9B,cAAQ,QAAQA,KAAI;AACpB,eAASA;AACT,aAAO;AAAA,IACT;AACA,QAAI,mBAAmBA,KAAI,GAAG;AAC5B,oBAAc;AACd,aAAO,iBAAiBA,KAAI;AAAA,IAC9B;AACA,QAAI,cAAcA,KAAI,GAAG;AACvB,cAAQ,QAAQA,KAAI;AACpB,aAAO;AAAA,IACT;AACA,YAAQ,QAAQA,KAAI;AACpB,WAAO;AAAA,EACT;AAYA,WAAS,4BAA4BA,OAAM;AACzC,QAAIA,UAAS,QAAQ;AACnB,cAAQ,QAAQA,KAAI;AACpB,eAAS;AACT,aAAO;AAAA,IACT;AACA,QAAIA,UAAS,MAAM;AACjB,aAAO,IAAIA,KAAI;AAAA,IACjB;AACA,QAAI,mBAAmBA,KAAI,GAAG;AAC5B,oBAAc;AACd,aAAO,iBAAiBA,KAAI;AAAA,IAC9B;AACA,YAAQ,QAAQA,KAAI;AACpB,WAAO;AAAA,EACT;AAYA,WAAS,8BAA8BA,OAAM;AAC3C,QAAIA,UAAS,QAAQA,UAAS,MAAMA,UAAS,MAAMA,UAAS,MAAMA,UAAS,MAAMA,UAAS,IAAI;AAC5F,aAAO,IAAIA,KAAI;AAAA,IACjB;AACA,QAAIA,UAAS,MAAMA,UAAS,MAAM,0BAA0BA,KAAI,GAAG;AACjE,aAAO,eAAeA,KAAI;AAAA,IAC5B;AACA,YAAQ,QAAQA,KAAI;AACpB,WAAO;AAAA,EACT;AAaA,WAAS,iCAAiCA,OAAM;AAC9C,QAAIA,UAAS,MAAMA,UAAS,MAAM,0BAA0BA,KAAI,GAAG;AACjE,aAAO,eAAeA,KAAI;AAAA,IAC5B;AACA,WAAO,IAAIA,KAAI;AAAA,EACjB;AAYA,WAASE,KAAIF,OAAM;AACjB,QAAIA,UAAS,IAAI;AACf,cAAQ,QAAQA,KAAI;AACpB,cAAQ,KAAK,cAAc;AAC3B,cAAQ,KAAK,UAAU;AACvB,aAAOH;AAAA,IACT;AACA,WAAO,IAAIG,KAAI;AAAA,EACjB;AAgBA,WAAS,iBAAiBA,OAAM;AAC9B,YAAQ,KAAK,cAAc;AAC3B,YAAQ,MAAM,YAAY;AAC1B,YAAQ,QAAQA,KAAI;AACpB,YAAQ,KAAK,YAAY;AACzB,WAAO;AAAA,EACT;AAgBA,WAAS,gBAAgBA,OAAM;AAG7B,WAAO,cAAcA,KAAI,IAAI,aAAa,SAAS,uBAAuB,cAAcF,MAAK,OAAO,WAAW,QAAQ,KAAK,SAAS,cAAc,IAAI,SAAY,CAAC,EAAEE,KAAI,IAAI,sBAAsBA,KAAI;AAAA,EAC1M;AAgBA,WAAS,sBAAsBA,OAAM;AACnC,YAAQ,MAAM,cAAc;AAC5B,WAAO,YAAYA,KAAI;AAAA,EACzB;AACF;AArqBA,IAaa;AAbb;AAAA;AAUA;AACA;AAEO,IAAM,WAAW;AAAA,MACtB,MAAM;AAAA,MACN,UAAU;AAAA,IACZ;AAAA;AAAA;;;AC0BA,SAAS,mBAAmB,QAAQ;AAClC,MAAII,SAAQ;AAEZ,QAAM,YAAY,CAAC;AACnB,SAAO,EAAEA,SAAQ,OAAO,QAAQ;AAC9B,UAAM,QAAQ,OAAOA,MAAK,EAAE,CAAC;AAC7B,cAAU,KAAK,OAAOA,MAAK,CAAC;AAC5B,QAAI,MAAM,SAAS,gBAAgB,MAAM,SAAS,eAAe,MAAM,SAAS,YAAY;AAE1F,YAAM,SAAS,MAAM,SAAS,eAAe,IAAI;AACjD,YAAM,OAAO;AACb,MAAAA,UAAS;AAAA,IACX;AAAA,EACF;AAGA,MAAI,OAAO,WAAW,UAAU,QAAQ;AACtC,WAAO,QAAQ,GAAG,OAAO,QAAQ,SAAS;AAAA,EAC5C;AACA,SAAO;AACT;AAGA,SAAS,kBAAkB,QAAQC,UAAS;AAC1C,MAAID,SAAQ,OAAO;AACnB,MAAI,SAAS;AAEb,MAAI;AAEJ,MAAI;AAEJ,MAAIE;AAEJ,MAAI;AAGJ,SAAOF,UAAS;AACd,YAAQ,OAAOA,MAAK,EAAE,CAAC;AACvB,QAAI,MAAM;AAER,UAAI,MAAM,SAAS,UAAU,MAAM,SAAS,eAAe,MAAM,WAAW;AAC1E;AAAA,MACF;AAIA,UAAI,OAAOA,MAAK,EAAE,CAAC,MAAM,WAAW,MAAM,SAAS,aAAa;AAC9D,cAAM,YAAY;AAAA,MACpB;AAAA,IACF,WAAWE,QAAO;AAChB,UAAI,OAAOF,MAAK,EAAE,CAAC,MAAM,YAAY,MAAM,SAAS,gBAAgB,MAAM,SAAS,gBAAgB,CAAC,MAAM,WAAW;AACnH,eAAOA;AACP,YAAI,MAAM,SAAS,aAAa;AAC9B,mBAAS;AACT;AAAA,QACF;AAAA,MACF;AAAA,IACF,WAAW,MAAM,SAAS,YAAY;AACpC,MAAAE,SAAQF;AAAA,IACV;AAAA,EACF;AACA,QAAM,QAAQ;AAAA,IACZ,MAAM,OAAO,IAAI,EAAE,CAAC,EAAE,SAAS,cAAc,SAAS;AAAA,IACtD,OAAO;AAAA,MACL,GAAG,OAAO,IAAI,EAAE,CAAC,EAAE;AAAA,IACrB;AAAA,IACA,KAAK;AAAA,MACH,GAAG,OAAO,OAAO,SAAS,CAAC,EAAE,CAAC,EAAE;AAAA,IAClC;AAAA,EACF;AACA,QAAM,QAAQ;AAAA,IACZ,MAAM;AAAA,IACN,OAAO;AAAA,MACL,GAAG,OAAO,IAAI,EAAE,CAAC,EAAE;AAAA,IACrB;AAAA,IACA,KAAK;AAAA,MACH,GAAG,OAAOE,MAAK,EAAE,CAAC,EAAE;AAAA,IACtB;AAAA,EACF;AACA,QAAMC,QAAO;AAAA,IACX,MAAM;AAAA,IACN,OAAO;AAAA,MACL,GAAG,OAAO,OAAO,SAAS,CAAC,EAAE,CAAC,EAAE;AAAA,IAClC;AAAA,IACA,KAAK;AAAA,MACH,GAAG,OAAOD,SAAQ,CAAC,EAAE,CAAC,EAAE;AAAA,IAC1B;AAAA,EACF;AACA,UAAQ,CAAC,CAAC,SAAS,OAAOD,QAAO,GAAG,CAAC,SAAS,OAAOA,QAAO,CAAC;AAG7D,UAAQ,KAAK,OAAO,OAAO,MAAM,OAAO,GAAG,OAAO,SAAS,CAAC,CAAC;AAG7D,UAAQ,KAAK,OAAO,CAAC,CAAC,SAASE,OAAMF,QAAO,CAAC,CAAC;AAK9C,UAAQ,KAAK,OAAO,WAAWA,SAAQ,OAAO,WAAW,WAAW,MAAM,OAAO,MAAM,OAAO,SAAS,GAAGC,SAAQ,CAAC,GAAGD,QAAO,CAAC;AAG9H,UAAQ,KAAK,OAAO,CAAC,CAAC,QAAQE,OAAMF,QAAO,GAAG,OAAOC,SAAQ,CAAC,GAAG,OAAOA,SAAQ,CAAC,GAAG,CAAC,QAAQ,OAAOD,QAAO,CAAC,CAAC;AAG7G,UAAQ,KAAK,OAAO,OAAO,MAAMC,SAAQ,CAAC,CAAC;AAG3C,UAAQ,KAAK,OAAO,CAAC,CAAC,QAAQ,OAAOD,QAAO,CAAC,CAAC;AAC9C,SAAO,QAAQ,MAAM,OAAO,QAAQ,KAAK;AACzC,SAAO;AACT;AAOA,SAAS,iBAAiB,SAASG,KAAI,KAAK;AAC1C,QAAMC,QAAO;AACb,MAAIL,SAAQK,MAAK,OAAO;AAExB,MAAI;AAEJ,MAAI;AAGJ,SAAOL,UAAS;AACd,SAAKK,MAAK,OAAOL,MAAK,EAAE,CAAC,EAAE,SAAS,gBAAgBK,MAAK,OAAOL,MAAK,EAAE,CAAC,EAAE,SAAS,gBAAgB,CAACK,MAAK,OAAOL,MAAK,EAAE,CAAC,EAAE,WAAW;AACnI,mBAAaK,MAAK,OAAOL,MAAK,EAAE,CAAC;AACjC;AAAA,IACF;AAAA,EACF;AACA,SAAO;AAiBP,WAAS,MAAMM,OAAM;AAEnB,QAAI,CAAC,YAAY;AACf,aAAO,IAAIA,KAAI;AAAA,IACjB;AAWA,QAAI,WAAW,WAAW;AACxB,aAAO,YAAYA,KAAI;AAAA,IACzB;AACA,cAAUD,MAAK,OAAO,QAAQ,SAAS,oBAAoBA,MAAK,eAAe;AAAA,MAC7E,OAAO,WAAW;AAAA,MAClB,KAAKA,MAAK,IAAI;AAAA,IAChB,CAAC,CAAC,CAAC;AACH,YAAQ,MAAM,UAAU;AACxB,YAAQ,MAAM,aAAa;AAC3B,YAAQ,QAAQC,KAAI;AACpB,YAAQ,KAAK,aAAa;AAC1B,YAAQ,KAAK,UAAU;AACvB,WAAO;AAAA,EACT;AAkBA,WAAS,MAAMA,OAAM;AAKnB,QAAIA,UAAS,IAAI;AACf,aAAO,QAAQ,QAAQ,mBAAmB,YAAY,UAAU,aAAa,WAAW,EAAEA,KAAI;AAAA,IAChG;AAGA,QAAIA,UAAS,IAAI;AACf,aAAO,QAAQ,QAAQ,wBAAwB,YAAY,UAAU,mBAAmB,WAAW,EAAEA,KAAI;AAAA,IAC3G;AAGA,WAAO,UAAU,WAAWA,KAAI,IAAI,YAAYA,KAAI;AAAA,EACtD;AAgBA,WAAS,iBAAiBA,OAAM;AAC9B,WAAO,QAAQ,QAAQ,6BAA6B,YAAY,WAAW,EAAEA,KAAI;AAAA,EACnF;AAkBA,WAAS,WAAWA,OAAM;AAExB,WAAOF,IAAGE,KAAI;AAAA,EAChB;AAkBA,WAAS,YAAYA,OAAM;AACzB,eAAW,YAAY;AACvB,WAAO,IAAIA,KAAI;AAAA,EACjB;AACF;AAOA,SAAS,iBAAiB,SAASF,KAAI,KAAK;AAC1C,SAAO;AAYP,WAAS,cAAcE,OAAM;AAC3B,YAAQ,MAAM,UAAU;AACxB,YAAQ,MAAM,gBAAgB;AAC9B,YAAQ,QAAQA,KAAI;AACpB,YAAQ,KAAK,gBAAgB;AAC7B,WAAO;AAAA,EACT;AAYA,WAAS,eAAeA,OAAM;AAC5B,WAAO,0BAA0BA,KAAI,IAAI,kBAAkB,SAAS,YAAY,EAAEA,KAAI,IAAI,aAAaA,KAAI;AAAA,EAC7G;AAYA,WAAS,aAAaA,OAAM;AAC1B,QAAIA,UAAS,IAAI;AACf,aAAO,YAAYA,KAAI;AAAA,IACzB;AACA,WAAO,mBAAmB,SAAS,0BAA0B,4BAA4B,uBAAuB,8BAA8B,oCAAoC,0BAA0B,6BAA6B,EAAE,EAAEA,KAAI;AAAA,EACnP;AAYA,WAAS,yBAAyBA,OAAM;AACtC,WAAO,0BAA0BA,KAAI,IAAI,kBAAkB,SAAS,eAAe,EAAEA,KAAI,IAAI,YAAYA,KAAI;AAAA,EAC/G;AAYA,WAAS,2BAA2BA,OAAM;AACxC,WAAO,IAAIA,KAAI;AAAA,EACjB;AAYA,WAAS,gBAAgBA,OAAM;AAC7B,QAAIA,UAAS,MAAMA,UAAS,MAAMA,UAAS,IAAI;AAC7C,aAAO,aAAa,SAAS,oBAAoB,KAAK,iBAAiB,uBAAuB,qBAAqB,EAAEA,KAAI;AAAA,IAC3H;AACA,WAAO,YAAYA,KAAI;AAAA,EACzB;AAYA,WAAS,mBAAmBA,OAAM;AAChC,WAAO,0BAA0BA,KAAI,IAAI,kBAAkB,SAAS,WAAW,EAAEA,KAAI,IAAI,YAAYA,KAAI;AAAA,EAC3G;AAYA,WAAS,YAAYA,OAAM;AACzB,QAAIA,UAAS,IAAI;AACf,cAAQ,MAAM,gBAAgB;AAC9B,cAAQ,QAAQA,KAAI;AACpB,cAAQ,KAAK,gBAAgB;AAC7B,cAAQ,KAAK,UAAU;AACvB,aAAOF;AAAA,IACT;AACA,WAAO,IAAIE,KAAI;AAAA,EACjB;AACF;AAOA,SAAS,sBAAsB,SAASF,KAAI,KAAK;AAC/C,QAAMC,QAAO;AACb,SAAO;AAYP,WAAS,cAAcC,OAAM;AAC3B,WAAO,aAAa,KAAKD,OAAM,SAAS,oBAAoB,sBAAsB,aAAa,mBAAmB,iBAAiB,EAAEC,KAAI;AAAA,EAC3I;AAYA,WAAS,mBAAmBA,OAAM;AAChC,WAAOD,MAAK,OAAO,QAAQ,SAAS,oBAAoBA,MAAK,eAAeA,MAAK,OAAOA,MAAK,OAAO,SAAS,CAAC,EAAE,CAAC,CAAC,EAAE,MAAM,GAAG,EAAE,CAAC,CAAC,IAAID,IAAGE,KAAI,IAAI,IAAIA,KAAI;AAAA,EAC1J;AAYA,WAAS,qBAAqBA,OAAM;AAClC,WAAO,IAAIA,KAAI;AAAA,EACjB;AACF;AAOA,SAAS,2BAA2B,SAASF,KAAI,KAAK;AACpD,SAAO;AAcP,WAAS,wBAAwBE,OAAM;AAGrC,YAAQ,MAAM,WAAW;AACzB,YAAQ,MAAM,iBAAiB;AAC/B,YAAQ,QAAQA,KAAI;AACpB,YAAQ,KAAK,iBAAiB;AAC9B,WAAO;AAAA,EACT;AAcA,WAAS,uBAAuBA,OAAM;AACpC,QAAIA,UAAS,IAAI;AACf,cAAQ,MAAM,iBAAiB;AAC/B,cAAQ,QAAQA,KAAI;AACpB,cAAQ,KAAK,iBAAiB;AAC9B,cAAQ,KAAK,WAAW;AACxB,aAAOF;AAAA,IACT;AACA,WAAO,IAAIE,KAAI;AAAA,EACjB;AACF;AA/iBA,IAqBa,UAQP,mBAIA,wBAIA;AArCN;AAAA;AAYA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEO,IAAM,WAAW;AAAA,MACtB,MAAM;AAAA,MACN,YAAY;AAAA,MACZ,WAAW;AAAA,MACX,UAAU;AAAA,IACZ;AAGA,IAAM,oBAAoB;AAAA,MACxB,UAAU;AAAA,IACZ;AAEA,IAAM,yBAAyB;AAAA,MAC7B,UAAU;AAAA,IACZ;AAEA,IAAM,8BAA8B;AAAA,MAClC,UAAU;AAAA,IACZ;AAAA;AAAA;;;AChBA,SAAS,wBAAwB,SAASC,KAAI,KAAK;AACjD,QAAMC,QAAO;AACb,SAAO;AAYP,WAAS,MAAMC,OAAM;AACnB,YAAQ,MAAM,YAAY;AAC1B,YAAQ,MAAM,kBAAkB;AAChC,YAAQ,QAAQA,KAAI;AACpB,YAAQ,KAAK,kBAAkB;AAC/B,WAAO;AAAA,EACT;AAYA,WAAS,KAAKA,OAAM;AAClB,QAAIA,UAAS,IAAI;AACf,cAAQ,MAAM,aAAa;AAC3B,cAAQ,QAAQA,KAAI;AACpB,cAAQ,KAAK,aAAa;AAC1B,cAAQ,KAAK,YAAY;AACzB,aAAO;AAAA,IACT;AACA,WAAO,IAAIA,KAAI;AAAA,EACjB;AA6BA,WAAS,MAAMA,OAAM;AAMnB,WAAOA,UAAS,MAAM,4BAA4BD,MAAK,OAAO,aAAa,IAAIC,KAAI,IAAIF,IAAGE,KAAI;AAAA,EAChG;AACF;AArGA,IAYa;AAZb;AAAA;AASA;AAGO,IAAM,kBAAkB;AAAA,MAC7B,MAAM;AAAA,MACN,YAAY,SAAS;AAAA,MACrB,UAAU;AAAA,IACZ;AAAA;AAAA;;;ACOA,SAAS,uBAAuB,SAASC,KAAI,KAAK;AAChD,QAAMC,QAAO;AACb,SAAO;AAYP,WAAS,MAAMC,OAAM;AACnB,YAAQ,MAAM,WAAW;AACzB,YAAQ,MAAM,aAAa;AAC3B,YAAQ,QAAQA,KAAI;AACpB,YAAQ,KAAK,aAAa;AAC1B,YAAQ,KAAK,WAAW;AACxB,WAAO;AAAA,EACT;AAGA,WAAS,MAAMA,OAAM;AAKnB,WAAOA,UAAS,MAAM,4BAA4BD,MAAK,OAAO,aAAa,IAAIC,KAAI,IAAIF,IAAGE,KAAI;AAAA,EAChG;AACF;AAtDA,IAYa;AAZb;AAAA;AASA;AAGO,IAAM,iBAAiB;AAAA,MAC5B,MAAM;AAAA,MACN,YAAY,SAAS;AAAA,MACrB,UAAU;AAAA,IACZ;AAAA;AAAA;;;ACMA,SAAS,mBAAmB,SAASC,KAAI;AACvC,SAAO;AAGP,WAAS,MAAMC,OAAM;AACnB,YAAQ,MAAM,YAAY;AAC1B,YAAQ,QAAQA,KAAI;AACpB,YAAQ,KAAK,YAAY;AACzB,WAAO,aAAa,SAASD,KAAI,YAAY;AAAA,EAC/C;AACF;AAhCA,IAYa;AAZb;AAAA;AASA;AACA;AAEO,IAAM,aAAa;AAAA,MACxB,MAAM;AAAA,MACN,UAAU;AAAA,IACZ;AAAA;AAAA;;;ACQA,SAAS,sBAAsB,SAASE,KAAI,KAAK;AAC/C,MAAI,OAAO;AAEX,MAAI;AACJ,SAAO;AAYP,WAAS,MAAMC,OAAM;AACnB,YAAQ,MAAM,eAAe;AAE7B,WAAO,OAAOA,KAAI;AAAA,EACpB;AAYA,WAAS,OAAOA,OAAM;AACpB,aAASA;AACT,WAAO,QAAQA,KAAI;AAAA,EACrB;AAYA,WAAS,QAAQA,OAAM;AACrB,QAAIA,UAAS,QAAQ;AACnB,cAAQ,MAAM,uBAAuB;AACrC,aAAO,SAASA,KAAI;AAAA,IACtB;AACA,QAAI,QAAQ,MAAMA,UAAS,QAAQ,mBAAmBA,KAAI,IAAI;AAC5D,cAAQ,KAAK,eAAe;AAC5B,aAAOD,IAAGC,KAAI;AAAA,IAChB;AACA,WAAO,IAAIA,KAAI;AAAA,EACjB;AAYA,WAAS,SAASA,OAAM;AACtB,QAAIA,UAAS,QAAQ;AACnB,cAAQ,QAAQA,KAAI;AACpB;AACA,aAAO;AAAA,IACT;AACA,YAAQ,KAAK,uBAAuB;AACpC,WAAO,cAAcA,KAAI,IAAI,aAAa,SAAS,SAAS,YAAY,EAAEA,KAAI,IAAI,QAAQA,KAAI;AAAA,EAChG;AACF;AArGA,IAaaC;AAbb,IAAAC,uBAAA;AAAA;AAUA;AACA;AAEO,IAAMD,iBAAgB;AAAA,MAC3B,MAAM;AAAA,MACN,UAAU;AAAA,IACZ;AAAA;AAAA;;;AC8BA,SAAS,kBAAkB,SAASE,KAAI,KAAK;AAC3C,QAAMC,QAAO;AACb,QAAM,OAAOA,MAAK,OAAOA,MAAK,OAAO,SAAS,CAAC;AAC/C,MAAI,cAAc,QAAQ,KAAK,CAAC,EAAE,SAAS,eAAe,KAAK,CAAC,EAAE,eAAe,KAAK,CAAC,GAAG,IAAI,EAAE,SAAS;AACzG,MAAI,OAAO;AACX,SAAO;AAGP,WAAS,MAAMC,OAAM;AACnB,UAAM,OAAOD,MAAK,eAAe,SAASC,UAAS,MAAMA,UAAS,MAAMA,UAAS,KAAK,kBAAkB;AACxG,QAAI,SAAS,kBAAkB,CAACD,MAAK,eAAe,UAAUC,UAASD,MAAK,eAAe,SAAS,WAAWC,KAAI,GAAG;AACpH,UAAI,CAACD,MAAK,eAAe,MAAM;AAC7B,QAAAA,MAAK,eAAe,OAAO;AAC3B,gBAAQ,MAAM,MAAM;AAAA,UAClB,YAAY;AAAA,QACd,CAAC;AAAA,MACH;AACA,UAAI,SAAS,iBAAiB;AAC5B,gBAAQ,MAAM,gBAAgB;AAC9B,eAAOC,UAAS,MAAMA,UAAS,KAAK,QAAQ,MAAMC,gBAAe,KAAK,QAAQ,EAAED,KAAI,IAAI,SAASA,KAAI;AAAA,MACvG;AACA,UAAI,CAACD,MAAK,aAAaC,UAAS,IAAI;AAClC,gBAAQ,MAAM,gBAAgB;AAC9B,gBAAQ,MAAM,eAAe;AAC7B,eAAO,OAAOA,KAAI;AAAA,MACpB;AAAA,IACF;AACA,WAAO,IAAIA,KAAI;AAAA,EACjB;AAGA,WAAS,OAAOA,OAAM;AACpB,QAAI,WAAWA,KAAI,KAAK,EAAE,OAAO,IAAI;AACnC,cAAQ,QAAQA,KAAI;AACpB,aAAO;AAAA,IACT;AACA,SAAK,CAACD,MAAK,aAAa,OAAO,OAAOA,MAAK,eAAe,SAASC,UAASD,MAAK,eAAe,SAASC,UAAS,MAAMA,UAAS,KAAK;AACpI,cAAQ,KAAK,eAAe;AAC5B,aAAO,SAASA,KAAI;AAAA,IACtB;AACA,WAAO,IAAIA,KAAI;AAAA,EACjB;AAKA,WAAS,SAASA,OAAM;AACtB,YAAQ,MAAM,gBAAgB;AAC9B,YAAQ,QAAQA,KAAI;AACpB,YAAQ,KAAK,gBAAgB;AAC7B,IAAAD,MAAK,eAAe,SAASA,MAAK,eAAe,UAAUC;AAC3D,WAAO,QAAQ;AAAA,MAAM;AAAA;AAAA,MAErBD,MAAK,YAAY,MAAM;AAAA,MAAS,QAAQ,QAAQ,mCAAmC,aAAa,WAAW;AAAA,IAAC;AAAA,EAC9G;AAGA,WAAS,QAAQC,OAAM;AACrB,IAAAD,MAAK,eAAe,mBAAmB;AACvC;AACA,WAAO,YAAYC,KAAI;AAAA,EACzB;AAGA,WAAS,YAAYA,OAAM;AACzB,QAAI,cAAcA,KAAI,GAAG;AACvB,cAAQ,MAAM,0BAA0B;AACxC,cAAQ,QAAQA,KAAI;AACpB,cAAQ,KAAK,0BAA0B;AACvC,aAAO;AAAA,IACT;AACA,WAAO,IAAIA,KAAI;AAAA,EACjB;AAGA,WAAS,YAAYA,OAAM;AACzB,IAAAD,MAAK,eAAe,OAAO,cAAcA,MAAK,eAAe,QAAQ,KAAK,gBAAgB,GAAG,IAAI,EAAE;AACnG,WAAOD,IAAGE,KAAI;AAAA,EAChB;AACF;AAOA,SAAS,yBAAyB,SAASF,KAAI,KAAK;AAClD,QAAMC,QAAO;AACb,EAAAA,MAAK,eAAe,aAAa;AACjC,SAAO,QAAQ,MAAM,WAAW,SAAS,QAAQ;AAGjD,WAAS,QAAQC,OAAM;AACrB,IAAAD,MAAK,eAAe,oBAAoBA,MAAK,eAAe,qBAAqBA,MAAK,eAAe;AAIrG,WAAO,aAAa,SAASD,KAAI,kBAAkBC,MAAK,eAAe,OAAO,CAAC,EAAEC,KAAI;AAAA,EACvF;AAGA,WAAS,SAASA,OAAM;AACtB,QAAID,MAAK,eAAe,qBAAqB,CAAC,cAAcC,KAAI,GAAG;AACjE,MAAAD,MAAK,eAAe,oBAAoB;AACxC,MAAAA,MAAK,eAAe,mBAAmB;AACvC,aAAO,iBAAiBC,KAAI;AAAA,IAC9B;AACA,IAAAD,MAAK,eAAe,oBAAoB;AACxC,IAAAA,MAAK,eAAe,mBAAmB;AACvC,WAAO,QAAQ,QAAQ,iBAAiBD,KAAI,gBAAgB,EAAEE,KAAI;AAAA,EACpE;AAGA,WAAS,iBAAiBA,OAAM;AAE9B,IAAAD,MAAK,eAAe,aAAa;AAEjC,IAAAA,MAAK,YAAY;AAGjB,WAAO,aAAa,SAAS,QAAQ,QAAQG,OAAMJ,KAAI,GAAG,GAAG,cAAcC,MAAK,OAAO,WAAW,QAAQ,KAAK,SAAS,cAAc,IAAI,SAAY,CAAC,EAAEC,KAAI;AAAA,EAC/J;AACF;AAOA,SAAS,eAAe,SAASF,KAAI,KAAK;AACxC,QAAMC,QAAO;AACb,SAAO,aAAa,SAAS,aAAa,kBAAkBA,MAAK,eAAe,OAAO,CAAC;AAGxF,WAAS,YAAYC,OAAM;AACzB,UAAM,OAAOD,MAAK,OAAOA,MAAK,OAAO,SAAS,CAAC;AAC/C,WAAO,QAAQ,KAAK,CAAC,EAAE,SAAS,oBAAoB,KAAK,CAAC,EAAE,eAAe,KAAK,CAAC,GAAG,IAAI,EAAE,WAAWA,MAAK,eAAe,OAAOD,IAAGE,KAAI,IAAI,IAAIA,KAAI;AAAA,EACrJ;AACF;AAOA,SAAS,gBAAgB,SAAS;AAChC,UAAQ,KAAK,KAAK,eAAe,IAAI;AACvC;AAOA,SAAS,iCAAiC,SAASF,KAAI,KAAK;AAC1D,QAAMC,QAAO;AAIb,SAAO,aAAa,SAAS,aAAa,4BAA4BA,MAAK,OAAO,WAAW,QAAQ,KAAK,SAAS,cAAc,IAAI,SAAY,IAAI,CAAC;AAGtJ,WAAS,YAAYC,OAAM;AACzB,UAAM,OAAOD,MAAK,OAAOA,MAAK,OAAO,SAAS,CAAC;AAC/C,WAAO,CAAC,cAAcC,KAAI,KAAK,QAAQ,KAAK,CAAC,EAAE,SAAS,6BAA6BF,IAAGE,KAAI,IAAI,IAAIA,KAAI;AAAA,EAC1G;AACF;AApNA,IAiBaE,OAUP,mCAMA;AAjCN,IAAAC,aAAA;AAAA;AAWA;AACA;AACA;AACA,IAAAC;AAGO,IAAMF,QAAO;AAAA,MAClB,cAAc;AAAA,QACZ,UAAU;AAAA,MACZ;AAAA,MACA,MAAM;AAAA,MACN,MAAM;AAAA,MACN,UAAU;AAAA,IACZ;AAGA,IAAM,oCAAoC;AAAA,MACxC,SAAS;AAAA,MACT,UAAU;AAAA,IACZ;AAGA,IAAM,kBAAkB;AAAA,MACtB,SAAS;AAAA,MACT,UAAU;AAAA,IACZ;AAAA;AAAA;;;ACfA,SAAS,yBAAyB,QAAQG,UAAS;AAEjD,MAAIC,SAAQ,OAAO;AAEnB,MAAIC;AAEJ,MAAIC;AAEJ,MAAIC;AAIJ,SAAOH,UAAS;AACd,QAAI,OAAOA,MAAK,EAAE,CAAC,MAAM,SAAS;AAChC,UAAI,OAAOA,MAAK,EAAE,CAAC,EAAE,SAAS,WAAW;AACvC,QAAAC,WAAUD;AACV;AAAA,MACF;AACA,UAAI,OAAOA,MAAK,EAAE,CAAC,EAAE,SAAS,aAAa;AACzC,QAAAE,QAAOF;AAAA,MACT;AAAA,IACF,OAEK;AACH,UAAI,OAAOA,MAAK,EAAE,CAAC,EAAE,SAAS,WAAW;AAEvC,eAAO,OAAOA,QAAO,CAAC;AAAA,MACxB;AACA,UAAI,CAACG,eAAc,OAAOH,MAAK,EAAE,CAAC,EAAE,SAAS,cAAc;AACzD,QAAAG,cAAaH;AAAA,MACf;AAAA,IACF;AAAA,EACF;AACA,QAAMI,WAAU;AAAA,IACd,MAAM;AAAA,IACN,OAAO;AAAA,MACL,GAAG,OAAOH,QAAO,EAAE,CAAC,EAAE;AAAA,IACxB;AAAA,IACA,KAAK;AAAA,MACH,GAAG,OAAO,OAAO,SAAS,CAAC,EAAE,CAAC,EAAE;AAAA,IAClC;AAAA,EACF;AAGA,SAAOC,KAAI,EAAE,CAAC,EAAE,OAAO;AAIvB,MAAIC,aAAY;AACd,WAAO,OAAOD,OAAM,GAAG,CAAC,SAASE,UAASL,QAAO,CAAC;AAClD,WAAO,OAAOI,cAAa,GAAG,GAAG,CAAC,QAAQ,OAAOF,QAAO,EAAE,CAAC,GAAGF,QAAO,CAAC;AACtE,WAAOE,QAAO,EAAE,CAAC,EAAE,MAAM;AAAA,MACvB,GAAG,OAAOE,WAAU,EAAE,CAAC,EAAE;AAAA,IAC3B;AAAA,EACF,OAAO;AACL,WAAOF,QAAO,EAAE,CAAC,IAAIG;AAAA,EACvB;AAGA,SAAO,KAAK,CAAC,QAAQA,UAASL,QAAO,CAAC;AACtC,SAAO;AACT;AAOA,SAAS,wBAAwB,SAASM,KAAI,KAAK;AACjD,QAAMC,QAAO;AAEb,MAAI;AACJ,SAAO;AAaP,WAAS,MAAMC,OAAM;AACnB,QAAIP,SAAQM,MAAK,OAAO;AAExB,QAAIE;AAEJ,WAAOR,UAAS;AAGd,UAAIM,MAAK,OAAON,MAAK,EAAE,CAAC,EAAE,SAAS,gBAAgBM,MAAK,OAAON,MAAK,EAAE,CAAC,EAAE,SAAS,gBAAgBM,MAAK,OAAON,MAAK,EAAE,CAAC,EAAE,SAAS,WAAW;AAC1I,QAAAQ,aAAYF,MAAK,OAAON,MAAK,EAAE,CAAC,EAAE,SAAS;AAC3C;AAAA,MACF;AAAA,IACF;AAIA,QAAI,CAACM,MAAK,OAAO,KAAKA,MAAK,IAAI,EAAE,IAAI,MAAMA,MAAK,aAAaE,aAAY;AACvE,cAAQ,MAAM,mBAAmB;AACjC,eAASD;AACT,aAAO,OAAOA,KAAI;AAAA,IACpB;AACA,WAAO,IAAIA,KAAI;AAAA,EACjB;AAaA,WAAS,OAAOA,OAAM;AACpB,YAAQ,MAAM,2BAA2B;AACzC,WAAO,OAAOA,KAAI;AAAA,EACpB;AAaA,WAAS,OAAOA,OAAM;AACpB,QAAIA,UAAS,QAAQ;AACnB,cAAQ,QAAQA,KAAI;AACpB,aAAO;AAAA,IACT;AACA,YAAQ,KAAK,2BAA2B;AACxC,WAAO,cAAcA,KAAI,IAAI,aAAa,SAAS,OAAO,YAAY,EAAEA,KAAI,IAAI,MAAMA,KAAI;AAAA,EAC5F;AAaA,WAAS,MAAMA,OAAM;AACnB,QAAIA,UAAS,QAAQ,mBAAmBA,KAAI,GAAG;AAC7C,cAAQ,KAAK,mBAAmB;AAChC,aAAOF,IAAGE,KAAI;AAAA,IAChB;AACA,WAAO,IAAIA,KAAI;AAAA,EACjB;AACF;AAxLA,IAca;AAdb;AAAA;AAWA;AACA;AAEO,IAAM,kBAAkB;AAAA,MAC7B,MAAM;AAAA,MACN,WAAW;AAAA,MACX,UAAU;AAAA,IACZ;AAAA;AAAA;;;AClBA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAAE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAAC;AACA;AACA,IAAAC;AAAA;AAAA;;;ACKO,SAAS,cAAc;AAE5B,SAAO;AAAA,IACL,UAAU;AAAA,MACR,CAAC,EAAE,GAAG;AAAA,QACJ,MAAM;AAAA,QACN,UAAU;AAAA,QACV,cAAc;AAAA,UACZ,UAAU;AAAA,QACZ;AAAA,QACA,MAAM;AAAA,MACR;AAAA,IACF;AAAA,IACA,MAAM;AAAA,MACJ,CAAC,EAAE,GAAG;AAAA,QACJ,MAAM;AAAA,QACN,UAAU;AAAA,MACZ;AAAA,MACA,CAAC,EAAE,GAAG;AAAA,QACJ,MAAM;AAAA,QACN,KAAK;AAAA,QACL,UAAU;AAAA,QACV,WAAW;AAAA,MACb;AAAA,IACF;AAAA,EACF;AACF;AAOA,SAAS,iCAAiC,SAASC,KAAI,KAAK;AAC1D,QAAMC,QAAO;AACb,MAAIC,SAAQD,MAAK,OAAO;AACxB,QAAM,UAAUA,MAAK,OAAO,iBAAiBA,MAAK,OAAO,eAAe,CAAC;AAEzE,MAAI;AAGJ,SAAOC,UAAS;AACd,UAAM,QAAQD,MAAK,OAAOC,MAAK,EAAE,CAAC;AAClC,QAAI,MAAM,SAAS,cAAc;AAC/B,mBAAa;AACb;AAAA,IACF;AAGA,QAAI,MAAM,SAAS,qBAAqB,MAAM,SAAS,eAAe,MAAM,SAAS,WAAW,MAAM,SAAS,WAAW,MAAM,SAAS,QAAQ;AAC/I;AAAA,IACF;AAAA,EACF;AACA,SAAO;AAKP,WAAS,MAAMC,OAAM;AACnB,QAAI,CAAC,cAAc,CAAC,WAAW,WAAW;AACxC,aAAO,IAAIA,KAAI;AAAA,IACjB;AACA,UAAM,KAAK,oBAAoBF,MAAK,eAAe;AAAA,MACjD,OAAO,WAAW;AAAA,MAClB,KAAKA,MAAK,IAAI;AAAA,IAChB,CAAC,CAAC;AACF,QAAI,GAAG,YAAY,CAAC,MAAM,MAAM,CAAC,QAAQ,SAAS,GAAG,MAAM,CAAC,CAAC,GAAG;AAC9D,aAAO,IAAIE,KAAI;AAAA,IACjB;AACA,YAAQ,MAAM,4BAA4B;AAC1C,YAAQ,QAAQA,KAAI;AACpB,YAAQ,KAAK,4BAA4B;AACzC,WAAOH,IAAGG,KAAI;AAAA,EAChB;AACF;AAIA,SAAS,kCAAkC,QAAQC,UAAS;AAC1D,MAAIF,SAAQ,OAAO;AAEnB,MAAI;AAGJ,SAAOA,UAAS;AACd,QAAI,OAAOA,MAAK,EAAE,CAAC,EAAE,SAAS,gBAAgB,OAAOA,MAAK,EAAE,CAAC,MAAM,SAAS;AAC1E,mBAAa,OAAOA,MAAK,EAAE,CAAC;AAC5B;AAAA,IACF;AAAA,EACF;AAEA,SAAOA,SAAQ,CAAC,EAAE,CAAC,EAAE,OAAO;AAC5B,SAAOA,SAAQ,CAAC,EAAE,CAAC,EAAE,OAAO;AAI5B,QAAM,OAAO;AAAA,IACX,MAAM;AAAA,IACN,OAAO,OAAO,OAAO,CAAC,GAAG,OAAOA,SAAQ,CAAC,EAAE,CAAC,EAAE,KAAK;AAAA,IACnD,KAAK,OAAO,OAAO,CAAC,GAAG,OAAO,OAAO,SAAS,CAAC,EAAE,CAAC,EAAE,GAAG;AAAA,EACzD;AAGA,QAAM,SAAS;AAAA,IACb,MAAM;AAAA,IACN,OAAO,OAAO,OAAO,CAAC,GAAG,OAAOA,SAAQ,CAAC,EAAE,CAAC,EAAE,GAAG;AAAA,IACjD,KAAK,OAAO,OAAO,CAAC,GAAG,OAAOA,SAAQ,CAAC,EAAE,CAAC,EAAE,GAAG;AAAA,EACjD;AAEA,SAAO,IAAI;AACX,SAAO,IAAI;AACX,SAAO,IAAI;AAEX,QAAMG,UAAS;AAAA,IACb,MAAM;AAAA,IACN,OAAO,OAAO,OAAO,CAAC,GAAG,OAAO,GAAG;AAAA,IACnC,KAAK,OAAO,OAAO,CAAC,GAAG,OAAO,OAAO,SAAS,CAAC,EAAE,CAAC,EAAE,KAAK;AAAA,EAC3D;AAEA,QAAM,QAAQ;AAAA,IACZ,MAAM;AAAA,IACN,aAAa;AAAA,IACb,OAAO,OAAO,OAAO,CAAC,GAAGA,QAAO,KAAK;AAAA,IACrC,KAAK,OAAO,OAAO,CAAC,GAAGA,QAAO,GAAG;AAAA,EACnC;AAGA,QAAM,cAAc;AAAA;AAAA,IAEpB,OAAOH,SAAQ,CAAC;AAAA,IAAG,OAAOA,SAAQ,CAAC;AAAA,IAAG,CAAC,SAAS,MAAME,QAAO;AAAA;AAAA,IAE7D,OAAOF,SAAQ,CAAC;AAAA,IAAG,OAAOA,SAAQ,CAAC;AAAA;AAAA,IAEnC,CAAC,SAAS,QAAQE,QAAO;AAAA,IAAG,CAAC,QAAQ,QAAQA,QAAO;AAAA;AAAA,IAEpD,CAAC,SAASC,SAAQD,QAAO;AAAA,IAAG,CAAC,SAAS,OAAOA,QAAO;AAAA,IAAG,CAAC,QAAQ,OAAOA,QAAO;AAAA,IAAG,CAAC,QAAQC,SAAQD,QAAO;AAAA;AAAA,IAEzG,OAAO,OAAO,SAAS,CAAC;AAAA,IAAG,OAAO,OAAO,SAAS,CAAC;AAAA,IAAG,CAAC,QAAQ,MAAMA,QAAO;AAAA,EAAC;AAC7E,SAAO,OAAOF,QAAO,OAAO,SAASA,SAAQ,GAAG,GAAG,WAAW;AAC9D,SAAO;AACT;AAMA,SAAS,wBAAwB,SAASF,KAAI,KAAK;AACjD,QAAMC,QAAO;AACb,QAAM,UAAUA,MAAK,OAAO,iBAAiBA,MAAK,OAAO,eAAe,CAAC;AACzE,MAAI,OAAO;AAEX,MAAIK;AAOJ,SAAO;AAYP,WAAS,MAAMH,OAAM;AACnB,YAAQ,MAAM,iBAAiB;AAC/B,YAAQ,MAAM,4BAA4B;AAC1C,YAAQ,QAAQA,KAAI;AACpB,YAAQ,KAAK,4BAA4B;AACzC,WAAO;AAAA,EACT;AAYA,WAAS,UAAUA,OAAM;AACvB,QAAIA,UAAS,GAAI,QAAO,IAAIA,KAAI;AAChC,YAAQ,MAAM,uBAAuB;AACrC,YAAQ,QAAQA,KAAI;AACpB,YAAQ,KAAK,uBAAuB;AACpC,YAAQ,MAAM,uBAAuB;AACrC,YAAQ,MAAM,aAAa,EAAE,cAAc;AAC3C,WAAO;AAAA,EACT;AAYA,WAAS,SAASA,OAAM;AACtB;AAAA;AAAA,MAEA,OAAO;AAAA,MAEPA,UAAS,MAAM,CAACG;AAAA;AAAA,MAGhBH,UAAS,QAAQA,UAAS,MAAM,0BAA0BA,KAAI;AAAA,MAAG;AAC/D,aAAO,IAAIA,KAAI;AAAA,IACjB;AACA,QAAIA,UAAS,IAAI;AACf,cAAQ,KAAK,aAAa;AAC1B,YAAM,QAAQ,QAAQ,KAAK,uBAAuB;AAClD,UAAI,CAAC,QAAQ,SAAS,oBAAoBF,MAAK,eAAe,KAAK,CAAC,CAAC,GAAG;AACtE,eAAO,IAAIE,KAAI;AAAA,MACjB;AACA,cAAQ,MAAM,4BAA4B;AAC1C,cAAQ,QAAQA,KAAI;AACpB,cAAQ,KAAK,4BAA4B;AACzC,cAAQ,KAAK,iBAAiB;AAC9B,aAAOH;AAAA,IACT;AACA,QAAI,CAAC,0BAA0BG,KAAI,GAAG;AACpC,MAAAG,QAAO;AAAA,IACT;AACA;AACA,YAAQ,QAAQH,KAAI;AACpB,WAAOA,UAAS,KAAK,aAAa;AAAA,EACpC;AAYA,WAAS,WAAWA,OAAM;AACxB,QAAIA,UAAS,MAAMA,UAAS,MAAMA,UAAS,IAAI;AAC7C,cAAQ,QAAQA,KAAI;AACpB;AACA,aAAO;AAAA,IACT;AACA,WAAO,SAASA,KAAI;AAAA,EACtB;AACF;AAMA,SAAS,wBAAwB,SAASH,KAAI,KAAK;AACjD,QAAMC,QAAO;AACb,QAAM,UAAUA,MAAK,OAAO,iBAAiBA,MAAK,OAAO,eAAe,CAAC;AAEzE,MAAI;AACJ,MAAI,OAAO;AAEX,MAAIK;AACJ,SAAO;AAYP,WAAS,MAAMH,OAAM;AACnB,YAAQ,MAAM,uBAAuB,EAAE,aAAa;AACpD,YAAQ,MAAM,4BAA4B;AAC1C,YAAQ,MAAM,kCAAkC;AAChD,YAAQ,QAAQA,KAAI;AACpB,YAAQ,KAAK,kCAAkC;AAC/C,WAAO;AAAA,EACT;AAYA,WAAS,cAAcA,OAAM;AAC3B,QAAIA,UAAS,IAAI;AACf,cAAQ,MAAM,6BAA6B;AAC3C,cAAQ,QAAQA,KAAI;AACpB,cAAQ,KAAK,6BAA6B;AAC1C,cAAQ,MAAM,kCAAkC;AAChD,cAAQ,MAAM,aAAa,EAAE,cAAc;AAC3C,aAAO;AAAA,IACT;AACA,WAAO,IAAIA,KAAI;AAAA,EACjB;AAeA,WAAS,YAAYA,OAAM;AACzB;AAAA;AAAA,MAEA,OAAO;AAAA,MAEPA,UAAS,MAAM,CAACG;AAAA;AAAA,MAGhBH,UAAS,QAAQA,UAAS,MAAM,0BAA0BA,KAAI;AAAA,MAAG;AAC/D,aAAO,IAAIA,KAAI;AAAA,IACjB;AACA,QAAIA,UAAS,IAAI;AACf,cAAQ,KAAK,aAAa;AAC1B,YAAM,QAAQ,QAAQ,KAAK,kCAAkC;AAC7D,mBAAa,oBAAoBF,MAAK,eAAe,KAAK,CAAC;AAC3D,cAAQ,MAAM,kCAAkC;AAChD,cAAQ,QAAQE,KAAI;AACpB,cAAQ,KAAK,kCAAkC;AAC/C,cAAQ,KAAK,4BAA4B;AACzC,aAAO;AAAA,IACT;AACA,QAAI,CAAC,0BAA0BA,KAAI,GAAG;AACpC,MAAAG,QAAO;AAAA,IACT;AACA;AACA,YAAQ,QAAQH,KAAI;AACpB,WAAOA,UAAS,KAAK,cAAc;AAAA,EACrC;AAeA,WAAS,YAAYA,OAAM;AACzB,QAAIA,UAAS,MAAMA,UAAS,MAAMA,UAAS,IAAI;AAC7C,cAAQ,QAAQA,KAAI;AACpB;AACA,aAAO;AAAA,IACT;AACA,WAAO,YAAYA,KAAI;AAAA,EACzB;AAYA,WAAS,WAAWA,OAAM;AACxB,QAAIA,UAAS,IAAI;AACf,cAAQ,MAAM,kBAAkB;AAChC,cAAQ,QAAQA,KAAI;AACpB,cAAQ,KAAK,kBAAkB;AAC/B,UAAI,CAAC,QAAQ,SAAS,UAAU,GAAG;AACjC,gBAAQ,KAAK,UAAU;AAAA,MACzB;AAKA,aAAO,aAAa,SAAS,iBAAiB,iCAAiC;AAAA,IACjF;AACA,WAAO,IAAIA,KAAI;AAAA,EACjB;AAYA,WAAS,gBAAgBA,OAAM;AAE7B,WAAOH,IAAGG,KAAI;AAAA,EAChB;AACF;AAMA,SAAS,+BAA+B,SAASH,KAAI,KAAK;AAUxD,SAAO,QAAQ,MAAM,WAAWA,KAAI,QAAQ,QAAQO,SAAQP,KAAI,GAAG,CAAC;AACtE;AAGA,SAAS,yBAAyB,SAAS;AACzC,UAAQ,KAAK,uBAAuB;AACtC;AAMA,SAASQ,gBAAe,SAASR,KAAI,KAAK;AACxC,QAAMC,QAAO;AACb,SAAO,aAAa,SAAS,aAAa,+BAA+B,IAAI,CAAC;AAK9E,WAAS,YAAYE,OAAM;AACzB,UAAM,OAAOF,MAAK,OAAOA,MAAK,OAAO,SAAS,CAAC;AAC/C,WAAO,QAAQ,KAAK,CAAC,EAAE,SAAS,iCAAiC,KAAK,CAAC,EAAE,eAAe,KAAK,CAAC,GAAG,IAAI,EAAE,WAAW,IAAID,IAAGG,KAAI,IAAI,IAAIA,KAAI;AAAA,EAC3I;AACF;AApeA,IAQMI;AARN,IAAAE,eAAA;AAAA;AAIA;AACA;AACA;AACA;AACA,IAAMF,UAAS;AAAA,MACb,UAAUC;AAAA,MACV,SAAS;AAAA,IACX;AAAA;AAAA;;;ACYO,SAAS,iBAAiB,gBAAgB,kBAAkB;AACjE,SAAO,wBAAwB,iBAAiB,MAAM,mBAAmB,IAAI,MAAM,mBAAmB;AACxG;AAYO,SAAS,gBAAgB,SAAS;AACvC,QAAME,UAAS,WAAWC;AAC1B,QAAM,QAAQD,QAAO,SAAS;AAC9B,QAAM,eAAeA,QAAO,gBAAgB;AAC5C,QAAM,kBAAkBA,QAAO,oBAAoB,QAAQA,QAAO,oBAAoB,SAAY,oBAAoBA,QAAO;AAC7H,QAAM,YAAYA,QAAO,aAAa;AACtC,QAAM,gBAAgBA,QAAO,kBAAkB,QAAQA,QAAO,kBAAkB,SAAY,kBAAkBA,QAAO;AACrH,SAAO;AAAA,IACL,OAAO;AAAA,MACL,wBAAwB;AACtB,cAAM,QAAQ,KAAK,QAAQ,YAAY;AACvC,cAAM,KAAK,KAAK;AAAA,MAClB;AAAA,MACA,mCAAmC;AACjC,aAAK,OAAO;AAAA,MACd;AAAA,MACA,wBAAwB;AACtB,aAAK,OAAO;AAAA,MACd;AAAA,IACF;AAAA,IACA,MAAM;AAAA,MACJ,wBAAwB;AACtB,YAAI,cAAc,KAAK,QAAQ,wBAAwB;AACvD,cAAM,gBAAgB,KAAK,QAAQ,4BAA4B;AAC/D,cAAM,aAAa,KAAK,QAAQ,YAAY;AAC5C,cAAM,UAAU,cAAc,IAAI;AAClC,cAAME,SAAQ,KAAK,OAAO;AAC1B,YAAI,CAAC,aAAa;AAChB,eAAK,QAAQ,0BAA0B,cAAc,CAAC,CAAC;AAAA,QACzD;AACA,YAAI,CAACC,KAAI,KAAK,aAAa,OAAO,EAAG,aAAY,OAAO,IAAID;AAC5D,mBAAW,IAAI;AACf,aAAK,QAAQ,sBAAsB,IAAI;AAGvC,aAAK,QAAQ,YAAY;AAAA,MAC3B;AAAA,MACA,iCAAiC,OAAO;AACtC,YAAI,gBAAgB,KAAK,QAAQ,4BAA4B;AAC7D,YAAI,CAAC,eAAe;AAClB,eAAK,QAAQ,8BAA8B,gBAAgB,CAAC,CAAC;AAAA,QAC/D;AACA,sBAAc,KAAK,oBAAoB,KAAK,eAAe,KAAK,CAAC,CAAC;AAClE,aAAK,OAAO;AACZ,aAAK,OAAO;AAAA,MACd;AAAA,MACA,sBAAsB,OAAO;AAC3B,YAAI,QAAQ,KAAK,QAAQ,sBAAsB;AAC/C,YAAI,SAAS,KAAK,QAAQ,uBAAuB;AACjD,cAAM,KAAK,oBAAoB,KAAK,eAAe,KAAK,CAAC;AAEzD,YAAIE;AACJ,aAAK,OAAO;AACZ,YAAI,CAAC,MAAO,MAAK,QAAQ,wBAAwB,QAAQ,CAAC,CAAC;AAC3D,YAAI,CAAC,OAAQ,MAAK,QAAQ,yBAAyB,SAAS,CAAC,CAAC;AAC9D,cAAMC,SAAQ,MAAM,QAAQ,EAAE;AAC9B,cAAM,SAAS,YAAY,GAAG,YAAY,CAAC;AAC3C,YAAIA,WAAU,IAAI;AAChB,gBAAM,KAAK,EAAE;AACb,iBAAO,EAAE,IAAI;AACb,UAAAD,WAAU,MAAM;AAAA,QAClB,OAAO;AACL,iBAAO,EAAE;AACT,UAAAA,WAAUC,SAAQ;AAAA,QACpB;AACA,cAAM,eAAe,OAAO,EAAE;AAC9B,aAAK,IAAI,oBAAoB,gBAAgB,QAAQ,SAAS,WAAW,gBAAgB,WAAW,UAAU,eAAe,IAAI,MAAM,eAAe,MAAM,8DAA8D,OAAOD,QAAO,IAAI,YAAY;AAAA,MAC1P;AAAA,MACA,OAAO;AACL,cAAM,QAAQ,KAAK,QAAQ,sBAAsB,KAAK,CAAC;AACvD,cAAM,SAAS,KAAK,QAAQ,uBAAuB,KAAK,CAAC;AACzD,cAAM,cAAc,KAAK,QAAQ,wBAAwB,KAAK,CAAC;AAC/D,YAAIC,SAAQ;AACZ,YAAI,MAAM,SAAS,GAAG;AACpB,eAAK,mBAAmB;AACxB,eAAK,IAAI,mDAAmD,eAAe,0BAA0B,kBAAkB,MAAM,kBAAkB,MAAM,GAAG;AACxJ,eAAK,IAAI,KAAK,OAAO,KAAK,CAAC;AAC3B,eAAK,IAAI,OAAO,eAAe,GAAG;AAClC,eAAK,mBAAmB;AACxB,eAAK,IAAI,MAAM;AAAA,QACjB;AACA,eAAO,EAAEA,SAAQ,MAAM,QAAQ;AAE7B,gBAAM,KAAK,MAAMA,MAAK;AACtB,gBAAM,SAAS,YAAY,GAAG,YAAY,CAAC;AAC3C,cAAI,iBAAiB;AAErB,gBAAM,aAAa,CAAC;AACpB,iBAAO,EAAE,kBAAkB,OAAO,EAAE,GAAG;AACrC,uBAAW,KAAK,eAAe,gBAAgB,WAAW,UAAU,iBAAiB,IAAI,MAAM,iBAAiB,MAAM,4CAA4C,KAAK,OAAO,OAAO,cAAc,WAAW,YAAY,UAAUA,QAAO,cAAc,CAAC,IAAI,4CAAuC,iBAAiB,IAAI,UAAU,iBAAiB,WAAW,MAAM,MAAM;AAAA,UAC9W;AACA,gBAAM,YAAY,WAAW,KAAK,GAAG;AACrC,cAAI,WAAW;AACf,eAAK,mBAAmB;AACxB,eAAK,IAAI,aAAa,gBAAgB,QAAQ,SAAS,IAAI;AAC3D,eAAK,mBAAmB;AACxB,eAAK,IAAI,YAAY,EAAE,EAAE,QAAQ,uBAAuB,SAAU,IAAI;AACpE,uBAAW;AACX,mBAAO,MAAM,YAAY;AAAA,UAC3B,CAAC,CAAC;AACF,cAAI,CAAC,UAAU;AACb,iBAAK,mBAAmB;AACxB,iBAAK,IAAI,SAAS;AAAA,UACpB;AACA,eAAK,mBAAmB;AACxB,eAAK,IAAI,OAAO;AAAA,QAClB;AACA,YAAI,MAAM,SAAS,GAAG;AACpB,eAAK,mBAAmB;AACxB,eAAK,IAAI,OAAO;AAChB,eAAK,mBAAmB;AACxB,eAAK,IAAI,YAAY;AAAA,QACvB;AAAA,MACF;AAAA,IACF;AAAA,EACF;AACF;AAzJA,IAOMF,MAGAF;AAVN,IAAAK,aAAA;AAAA;AAKA;AACA;AACA,IAAMH,OAAM,CAAC,EAAE;AAGf,IAAMF,gBAAe,CAAC;AAAA;AAAA;;;ACVtB;AAAA;AACA,IAAAM;AACA,IAAAC;AAAA;AAAA;;;ACUO,SAAS,uBAAuB;AACrC,SAAO;AAAA,IACL,OAAO;AAAA,MACL,gBAAgB;AACd,aAAK,IAAI,OAAO;AAAA,MAClB;AAAA,IACF;AAAA,IACA,MAAM;AAAA,MACJ,gBAAgB;AACd,aAAK,IAAI,QAAQ;AAAA,MACnB;AAAA,IACF;AAAA,EACF;AACF;AAzBA,IAAAC,aAAA;AAAA;AAAA;AAAA;;;ACiBO,SAAS,iBAAiB,SAAS;AACxC,QAAM,WAAW,WAAW,CAAC;AAC7B,MAAIC,UAAS,SAAS;AACtB,QAAM,YAAY;AAAA,IAChB,MAAM;AAAA,IACN,UAAU;AAAA,IACV,YAAY;AAAA,EACd;AACA,MAAIA,YAAW,QAAQA,YAAW,QAAW;AAC3C,IAAAA,UAAS;AAAA,EACX;AACA,SAAO;AAAA,IACL,MAAM;AAAA,MACJ,CAAC,GAAG,GAAG;AAAA,IACT;AAAA,IACA,YAAY;AAAA,MACV,MAAM,CAAC,SAAS;AAAA,IAClB;AAAA,IACA,kBAAkB;AAAA,MAChB,MAAM,CAAC,GAAG;AAAA,IACZ;AAAA,EACF;AAOA,WAAS,wBAAwB,QAAQC,UAAS;AAChD,QAAIC,SAAQ;AAGZ,WAAO,EAAEA,SAAQ,OAAO,QAAQ;AAE9B,UAAI,OAAOA,MAAK,EAAE,CAAC,MAAM,WAAW,OAAOA,MAAK,EAAE,CAAC,EAAE,SAAS,oCAAoC,OAAOA,MAAK,EAAE,CAAC,EAAE,QAAQ;AACzH,YAAI,OAAOA;AAGX,eAAO,QAAQ;AAEb,cAAI,OAAO,IAAI,EAAE,CAAC,MAAM,UAAU,OAAO,IAAI,EAAE,CAAC,EAAE,SAAS,oCAAoC,OAAO,IAAI,EAAE,CAAC,EAAE;AAAA,UAE/G,OAAOA,MAAK,EAAE,CAAC,EAAE,IAAI,SAAS,OAAOA,MAAK,EAAE,CAAC,EAAE,MAAM,WAAW,OAAO,IAAI,EAAE,CAAC,EAAE,IAAI,SAAS,OAAO,IAAI,EAAE,CAAC,EAAE,MAAM,QAAQ;AACzH,mBAAOA,MAAK,EAAE,CAAC,EAAE,OAAO;AACxB,mBAAO,IAAI,EAAE,CAAC,EAAE,OAAO;AAGvB,kBAAMC,iBAAgB;AAAA,cACpB,MAAM;AAAA,cACN,OAAO,OAAO,OAAO,CAAC,GAAG,OAAO,IAAI,EAAE,CAAC,EAAE,KAAK;AAAA,cAC9C,KAAK,OAAO,OAAO,CAAC,GAAG,OAAOD,MAAK,EAAE,CAAC,EAAE,GAAG;AAAA,YAC7C;AAGA,kBAAME,QAAO;AAAA,cACX,MAAM;AAAA,cACN,OAAO,OAAO,OAAO,CAAC,GAAG,OAAO,IAAI,EAAE,CAAC,EAAE,GAAG;AAAA,cAC5C,KAAK,OAAO,OAAO,CAAC,GAAG,OAAOF,MAAK,EAAE,CAAC,EAAE,KAAK;AAAA,YAC/C;AAIA,kBAAM,aAAa,CAAC,CAAC,SAASC,gBAAeF,QAAO,GAAG,CAAC,SAAS,OAAO,IAAI,EAAE,CAAC,GAAGA,QAAO,GAAG,CAAC,QAAQ,OAAO,IAAI,EAAE,CAAC,GAAGA,QAAO,GAAG,CAAC,SAASG,OAAMH,QAAO,CAAC;AACxJ,kBAAMI,cAAaJ,SAAQ,OAAO,WAAW,WAAW;AACxD,gBAAII,aAAY;AAEd,qBAAO,YAAY,WAAW,QAAQ,GAAG,WAAWA,aAAY,OAAO,MAAM,OAAO,GAAGH,MAAK,GAAGD,QAAO,CAAC;AAAA,YACzG;AAGA,mBAAO,YAAY,WAAW,QAAQ,GAAG,CAAC,CAAC,QAAQG,OAAMH,QAAO,GAAG,CAAC,SAAS,OAAOC,MAAK,EAAE,CAAC,GAAGD,QAAO,GAAG,CAAC,QAAQ,OAAOC,MAAK,EAAE,CAAC,GAAGD,QAAO,GAAG,CAAC,QAAQE,gBAAeF,QAAO,CAAC,CAAC;AAC/K,mBAAO,QAAQ,OAAO,GAAGC,SAAQ,OAAO,GAAG,UAAU;AACrD,YAAAA,SAAQ,OAAO,WAAW,SAAS;AACnC;AAAA,UACF;AAAA,QACF;AAAA,MACF;AAAA,IACF;AACA,IAAAA,SAAQ;AACR,WAAO,EAAEA,SAAQ,OAAO,QAAQ;AAC9B,UAAI,OAAOA,MAAK,EAAE,CAAC,EAAE,SAAS,kCAAkC;AAC9D,eAAOA,MAAK,EAAE,CAAC,EAAE,OAAO;AAAA,MAC1B;AAAA,IACF;AACA,WAAO;AAAA,EACT;AAMA,WAAS,sBAAsB,SAASI,KAAI,KAAK;AAC/C,UAAMC,YAAW,KAAK;AACtB,UAAM,SAAS,KAAK;AACpB,QAAI,OAAO;AACX,WAAO;AAGP,aAAS,MAAMC,OAAM;AACnB,UAAID,cAAa,OAAO,OAAO,OAAO,SAAS,CAAC,EAAE,CAAC,EAAE,SAAS,mBAAmB;AAC/E,eAAO,IAAIC,KAAI;AAAA,MACjB;AACA,cAAQ,MAAM,gCAAgC;AAC9C,aAAO,KAAKA,KAAI;AAAA,IAClB;AAGA,aAAS,KAAKA,OAAM;AAClB,YAAM,SAAS,kBAAkBD,SAAQ;AACzC,UAAIC,UAAS,KAAK;AAEhB,YAAI,OAAO,EAAG,QAAO,IAAIA,KAAI;AAC7B,gBAAQ,QAAQA,KAAI;AACpB;AACA,eAAO;AAAA,MACT;AACA,UAAI,OAAO,KAAK,CAACR,QAAQ,QAAO,IAAIQ,KAAI;AACxC,YAAM,QAAQ,QAAQ,KAAK,gCAAgC;AAC3D,YAAM,QAAQ,kBAAkBA,KAAI;AACpC,YAAM,QAAQ,CAAC,SAAS,UAAU,KAAK,QAAQ,MAAM;AACrD,YAAM,SAAS,CAAC,UAAU,WAAW,KAAK,QAAQ,KAAK;AACvD,aAAOF,IAAGE,KAAI;AAAA,IAChB;AAAA,EACF;AACF;AA7IA,IAAAC,eAAA;AAAA;AAKA;AACA;AACA;AAAA;AAAA;;;ACPA;AAAA;AACA,IAAAC;AACA,IAAAC;AAAA;AAAA;;;ACmBO,SAAS,eAAe;AAC7B,SAAO;AAAA,IACL,OAAO;AAAA,MACL,MAAM,OAAO;AACX,cAAM,aAAa,MAAM;AACzB,aAAK,mBAAmB;AACxB,aAAK,IAAI,SAAS;AAClB,aAAK,QAAQ,cAAc,UAAU;AAAA,MACvC;AAAA,MACA,YAAY;AACV,aAAK,IAAI,SAAS;AAAA,MACpB;AAAA,MACA,YAAY;AACV,cAAM,aAAa,KAAK,QAAQ,YAAY;AAC5C,cAAM,cAAc,KAAK,QAAQ,aAAa;AAC9C,cAAM,QAAQ,UAAU,WAAW,WAAW,CAAC;AAC/C,YAAI,UAAU,QAAW;AAEvB,eAAK,OAAO;AAAA,QACd,OAAO;AACL,eAAK,mBAAmB;AACxB,eAAK,IAAI,QAAQ,QAAQ,GAAG;AAAA,QAC9B;AAAA,MACF;AAAA,MACA,YAAY;AACV,aAAK,mBAAmB;AACxB,aAAK,IAAI,SAAS;AAAA,MACpB;AAAA,MACA,cAAc;AACZ,cAAM,aAAa,KAAK,QAAQ,YAAY;AAC5C,cAAM,cAAc,KAAK,QAAQ,aAAa;AAC9C,cAAM,QAAQ,UAAU,WAAW,WAAW,CAAC;AAC/C,aAAK,mBAAmB;AACxB,aAAK,IAAI,QAAQ,QAAQ,GAAG;AAAA,MAC9B;AAAA,MACA,WAAW;AACT,aAAK,QAAQ,eAAe,CAAC;AAC7B,aAAK,mBAAmB;AACxB,aAAK,IAAI,MAAM;AAAA,MACjB;AAAA,IACF;AAAA,IACA,MAAM;AAAA;AAAA;AAAA,MAGJ,aAAa,OAAO;AAClB,YAAIC,SAAQ,KAAK,eAAe,KAAK;AACrC,YAAI,KAAK,QAAQ,YAAY,GAAG;AAC9B,UAAAA,SAAQA,OAAM,QAAQ,cAAcC,QAAO;AAAA,QAC7C;AACA,aAAK,IAAI,KAAK,OAAOD,MAAK,CAAC;AAAA,MAC7B;AAAA,MACA,QAAQ;AACN,aAAK,QAAQ,YAAY;AAIzB,aAAK,QAAQ,qBAAqB;AAClC,aAAK,mBAAmB;AACxB,aAAK,IAAI,UAAU;AAAA,MACrB;AAAA,MACA,YAAY;AACV,aAAK,mBAAmB;AACxB,aAAK,IAAI,UAAU;AAAA,MACrB;AAAA,MACA,YAAY;AACV,cAAM,aAAa,KAAK,QAAQ,YAAY;AAC5C,cAAM,cAAc,KAAK,QAAQ,aAAa;AAC9C,YAAI,eAAe,YAAY;AAC7B,eAAK,IAAI,OAAO;AAChB,eAAK,QAAQ,eAAe,cAAc,CAAC;AAAA,QAC7C,OAAO;AAEL,eAAK,OAAO;AAAA,QACd;AAAA,MACF;AAAA,MACA,YAAY;AACV,aAAK,mBAAmB;AACxB,aAAK,IAAI,UAAU;AAAA,MACrB;AAAA,MACA,cAAc;AACZ,cAAM,cAAc,KAAK,QAAQ,aAAa;AAC9C,aAAK,IAAI,OAAO;AAChB,aAAK,QAAQ,eAAe,cAAc,CAAC;AAAA,MAC7C;AAAA,MACA,WAAW;AACT,cAAM,aAAa,KAAK,QAAQ,YAAY;AAC5C,YAAI,cAAc,KAAK,QAAQ,aAAa;AAC5C,eAAO,cAAc,WAAW,QAAQ;AACtC,eAAK,mBAAmB;AACxB,eAAK,IAAI,QAAQ,UAAU,WAAW,WAAW,CAAC,IAAI,QAAQ;AAC9D;AAAA,QACF;AACA,aAAK,QAAQ,eAAe,WAAW;AACvC,aAAK,mBAAmB;AACxB,aAAK,IAAI,OAAO;AAAA,MAClB;AAAA,IACF;AAAA,EACF;AACF;AAOA,SAASC,SAAQ,IAAI,IAAI;AAEvB,SAAO,OAAO,MAAM,KAAK;AAC3B;AAjIA,IAIM;AAJN,IAAAC,aAAA;AAAA;AAIA,IAAM,YAAY;AAAA,MAChB,MAAM;AAAA,MACN,MAAM;AAAA,MACN,OAAO;AAAA,MACP,QAAQ;AAAA,IACV;AAAA;AAAA;;;AC0HA,SAAS,kBAAkB,SAAS,IAAIC,SAAQC,MAAK;AACnD,MAAIC,SAAQ;AAGZ,MAAIF,YAAW,KAAKC,KAAI,WAAW,GAAG;AACpC;AAAA,EACF;AACA,SAAOC,SAAQ,QAAQ,IAAI,QAAQ;AACjC,QAAI,QAAQ,IAAIA,MAAK,EAAE,CAAC,MAAM,IAAI;AAChC,cAAQ,IAAIA,MAAK,EAAE,CAAC,KAAKF;AAOzB,cAAQ,IAAIE,MAAK,EAAE,CAAC,EAAE,KAAK,GAAGD,IAAG;AAGjC;AAAA,IACF;AACA,IAAAC,UAAS;AAAA,EACX;AACA,UAAQ,IAAI,KAAK,CAAC,IAAIF,SAAQC,IAAG,CAAC;AACpC;AA3JA,IAyBa;AAzBb;AAAA;AAyBO,IAAM,UAAN,MAAc;AAAA;AAAA;AAAA;AAAA,MAInB,cAAc;AAMZ,aAAK,MAAM,CAAC;AAAA,MACd;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,MAUA,IAAIC,QAAOF,SAAQC,MAAK;AACtB,0BAAkB,MAAMC,QAAOF,SAAQC,IAAG;AAAA,MAC5C;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,MAqBA,QAAQ,QAAQ;AACd,aAAK,IAAI,KAAK,SAAUE,IAAGC,IAAG;AAC5B,iBAAOD,GAAE,CAAC,IAAIC,GAAE,CAAC;AAAA,QACnB,CAAC;AAGD,YAAI,KAAK,IAAI,WAAW,GAAG;AACzB;AAAA,QACF;AAoBA,YAAIF,SAAQ,KAAK,IAAI;AAErB,cAAM,OAAO,CAAC;AACd,eAAOA,SAAQ,GAAG;AAChB,UAAAA,UAAS;AACT,eAAK,KAAK,OAAO,MAAM,KAAK,IAAIA,MAAK,EAAE,CAAC,IAAI,KAAK,IAAIA,MAAK,EAAE,CAAC,CAAC,GAAG,KAAK,IAAIA,MAAK,EAAE,CAAC,CAAC;AAGnF,iBAAO,SAAS,KAAK,IAAIA,MAAK,EAAE,CAAC;AAAA,QACnC;AACA,aAAK,KAAK,OAAO,MAAM,CAAC;AACxB,eAAO,SAAS;AAChB,YAAI,QAAQ,KAAK,IAAI;AACrB,eAAO,OAAO;AACZ,qBAAWG,YAAW,OAAO;AAC3B,mBAAO,KAAKA,QAAO;AAAA,UACrB;AACA,kBAAQ,KAAK,IAAI;AAAA,QACnB;AAGA,aAAK,IAAI,SAAS;AAAA,MACpB;AAAA,IACF;AAAA;AAAA;;;ACtGO,SAAS,cAAc,QAAQC,QAAO;AAC3C,MAAI,iBAAiB;AAErB,QAAM,QAAQ,CAAC;AACf,SAAOA,SAAQ,OAAO,QAAQ;AAC5B,UAAM,QAAQ,OAAOA,MAAK;AAC1B,QAAI,gBAAgB;AAClB,UAAI,MAAM,CAAC,MAAM,SAAS;AAGxB,YAAI,MAAM,CAAC,EAAE,SAAS,gBAAgB;AACpC,gBAAM,KAAK,OAAOA,SAAQ,CAAC,EAAE,CAAC,EAAE,SAAS,yBAAyB,SAAS,MAAM;AAAA,QACnF;AAAA,MACF,WAIS,MAAM,CAAC,EAAE,SAAS,gBAAgB;AACzC,YAAI,OAAOA,SAAQ,CAAC,EAAE,CAAC,EAAE,SAAS,wBAAwB;AACxD,gBAAM,aAAa,MAAM,SAAS;AAClC,gBAAM,UAAU,IAAI,MAAM,UAAU,MAAM,SAAS,WAAW;AAAA,QAChE;AAAA,MACF,WAES,MAAM,CAAC,EAAE,SAAS,qBAAqB;AAC9C;AAAA,MACF;AAAA,IACF,WAAW,MAAM,CAAC,MAAM,WAAW,MAAM,CAAC,EAAE,SAAS,qBAAqB;AACxE,uBAAiB;AAAA,IACnB;AACA,IAAAA,UAAS;AAAA,EACX;AACA,SAAO;AACT;AAnDA;AAAA;AAAA;AAAA;;;ACwBO,SAAS,WAAW;AACzB,SAAO;AAAA,IACL,MAAM;AAAA,MACJ,MAAM;AAAA,QACJ,MAAM;AAAA,QACN,UAAU;AAAA,QACV,YAAY;AAAA,MACd;AAAA,IACF;AAAA,EACF;AACF;AAMA,SAAS,cAAc,SAASC,KAAI,KAAK;AACvC,QAAMC,QAAO;AACb,MAAI,OAAO;AACX,MAAI,QAAQ;AAEZ,MAAI;AACJ,SAAO;AAkBP,WAAS,MAAMC,OAAM;AACnB,QAAIC,SAAQF,MAAK,OAAO,SAAS;AACjC,WAAOE,SAAQ,IAAI;AACjB,YAAMC,QAAOH,MAAK,OAAOE,MAAK,EAAE,CAAC,EAAE;AACnC,UAAIC,UAAS;AAAA,MAEbA,UAAS,aAAc,CAAAD;AAAA,UAAa;AAAA,IACtC;AACA,UAAM,OAAOA,SAAQ,KAAKF,MAAK,OAAOE,MAAK,EAAE,CAAC,EAAE,OAAO;AACvD,UAAME,QAAO,SAAS,eAAe,SAAS,aAAa,eAAe;AAG1E,QAAIA,UAAS,gBAAgBJ,MAAK,OAAO,KAAKA,MAAK,IAAI,EAAE,IAAI,GAAG;AAC9D,aAAO,IAAIC,KAAI;AAAA,IACjB;AACA,WAAOG,MAAKH,KAAI;AAAA,EAClB;AAcA,WAAS,cAAcA,OAAM;AAC3B,YAAQ,MAAM,WAAW;AACzB,YAAQ,MAAM,UAAU;AACxB,WAAO,aAAaA,KAAI;AAAA,EAC1B;AAcA,WAAS,aAAaA,OAAM;AAC1B,QAAIA,UAAS,KAAK;AAChB,aAAO,aAAaA,KAAI;AAAA,IAC1B;AAYA,WAAO;AAEP,aAAS;AACT,WAAO,aAAaA,KAAI;AAAA,EAC1B;AAgBA,WAAS,aAAaA,OAAM;AAC1B,QAAIA,UAAS,MAAM;AAEjB,aAAO,IAAIA,KAAI;AAAA,IACjB;AACA,QAAI,mBAAmBA,KAAI,GAAG;AAE5B,UAAI,QAAQ,GAAG;AACb,gBAAQ;AAGR,QAAAD,MAAK,YAAY;AACjB,gBAAQ,KAAK,UAAU;AACvB,gBAAQ,MAAM,YAAY;AAC1B,gBAAQ,QAAQC,KAAI;AACpB,gBAAQ,KAAK,YAAY;AACzB,eAAO;AAAA,MACT;AAGA,aAAO,IAAIA,KAAI;AAAA,IACjB;AACA,QAAI,cAAcA,KAAI,GAAG;AAIvB,aAAO,aAAa,SAAS,cAAc,YAAY,EAAEA,KAAI;AAAA,IAC/D;AACA,aAAS;AACT,QAAI,MAAM;AACR,aAAO;AAEP,cAAQ;AAAA,IACV;AACA,QAAIA,UAAS,KAAK;AAChB,cAAQ,MAAM,kBAAkB;AAChC,cAAQ,QAAQA,KAAI;AACpB,cAAQ,KAAK,kBAAkB;AAE/B,aAAO;AACP,aAAO;AAAA,IACT;AAGA,YAAQ,MAAM,MAAM;AACpB,WAAO,YAAYA,KAAI;AAAA,EACzB;AAcA,WAAS,YAAYA,OAAM;AACzB,QAAIA,UAAS,QAAQA,UAAS,OAAO,0BAA0BA,KAAI,GAAG;AACpE,cAAQ,KAAK,MAAM;AACnB,aAAO,aAAaA,KAAI;AAAA,IAC1B;AACA,YAAQ,QAAQA,KAAI;AACpB,WAAOA,UAAS,KAAK,gBAAgB;AAAA,EACvC;AAcA,WAAS,cAAcA,OAAM;AAC3B,QAAIA,UAAS,MAAMA,UAAS,KAAK;AAC/B,cAAQ,QAAQA,KAAI;AACpB,aAAO;AAAA,IACT;AACA,WAAO,YAAYA,KAAI;AAAA,EACzB;AAcA,WAAS,mBAAmBA,OAAM;AAEhC,IAAAD,MAAK,YAAY;AAGjB,QAAIA,MAAK,OAAO,KAAKA,MAAK,IAAI,EAAE,IAAI,GAAG;AACrC,aAAO,IAAIC,KAAI;AAAA,IACjB;AACA,YAAQ,MAAM,mBAAmB;AAEjC,WAAO;AACP,QAAI,cAAcA,KAAI,GAAG;AACvB,aAAO,aAAa,SAAS,qBAAqB,cAAcD,MAAK,OAAO,WAAW,QAAQ,KAAK,SAAS,cAAc,IAAI,SAAY,CAAC,EAAEC,KAAI;AAAA,IACpJ;AACA,WAAO,oBAAoBA,KAAI;AAAA,EACjC;AAgBA,WAAS,oBAAoBA,OAAM;AACjC,QAAIA,UAAS,MAAMA,UAAS,IAAI;AAC9B,aAAO,yBAAyBA,KAAI;AAAA,IACtC;AACA,QAAIA,UAAS,KAAK;AAChB,aAAO;AAEP,cAAQ,MAAM,kBAAkB;AAChC,cAAQ,QAAQA,KAAI;AACpB,cAAQ,KAAK,kBAAkB;AAC/B,aAAO;AAAA,IACT;AAGA,WAAO,iBAAiBA,KAAI;AAAA,EAC9B;AAaA,WAAS,wBAAwBA,OAAM;AACrC,QAAI,cAAcA,KAAI,GAAG;AACvB,aAAO,aAAa,SAAS,0BAA0B,YAAY,EAAEA,KAAI;AAAA,IAC3E;AACA,WAAO,yBAAyBA,KAAI;AAAA,EACtC;AAaA,WAAS,yBAAyBA,OAAM;AAEtC,QAAIA,UAAS,IAAI;AACf,eAAS;AACT,aAAO;AACP,cAAQ,MAAM,sBAAsB;AACpC,cAAQ,QAAQA,KAAI;AACpB,cAAQ,KAAK,sBAAsB;AACnC,aAAO;AAAA,IACT;AAGA,QAAIA,UAAS,IAAI;AACf,eAAS;AAET,aAAO,gCAAgCA,KAAI;AAAA,IAC7C;AACA,QAAIA,UAAS,QAAQ,mBAAmBA,KAAI,GAAG;AAC7C,aAAO,uBAAuBA,KAAI;AAAA,IACpC;AACA,WAAO,iBAAiBA,KAAI;AAAA,EAC9B;AAaA,WAAS,gCAAgCA,OAAM;AAC7C,QAAIA,UAAS,IAAI;AACf,cAAQ,MAAM,sBAAsB;AACpC,aAAO,oBAAoBA,KAAI;AAAA,IACjC;AAGA,WAAO,iBAAiBA,KAAI;AAAA,EAC9B;AAaA,WAAS,oBAAoBA,OAAM;AACjC,QAAIA,UAAS,IAAI;AACf,cAAQ,QAAQA,KAAI;AACpB,aAAO;AAAA,IACT;AAGA,QAAIA,UAAS,IAAI;AACf,aAAO;AACP,cAAQ,KAAK,sBAAsB;AACnC,cAAQ,MAAM,sBAAsB;AACpC,cAAQ,QAAQA,KAAI;AACpB,cAAQ,KAAK,sBAAsB;AACnC,aAAO;AAAA,IACT;AACA,YAAQ,KAAK,sBAAsB;AACnC,WAAO,iCAAiCA,KAAI;AAAA,EAC9C;AAaA,WAAS,iCAAiCA,OAAM;AAC9C,QAAI,cAAcA,KAAI,GAAG;AACvB,aAAO,aAAa,SAAS,wBAAwB,YAAY,EAAEA,KAAI;AAAA,IACzE;AACA,WAAO,uBAAuBA,KAAI;AAAA,EACpC;AAaA,WAAS,uBAAuBA,OAAM;AACpC,QAAIA,UAAS,KAAK;AAChB,aAAO,oBAAoBA,KAAI;AAAA,IACjC;AACA,QAAIA,UAAS,QAAQ,mBAAmBA,KAAI,GAAG;AAK7C,UAAI,CAAC,QAAQ,SAAS,OAAO;AAC3B,eAAO,iBAAiBA,KAAI;AAAA,MAC9B;AAGA,cAAQ,KAAK,mBAAmB;AAChC,cAAQ,KAAK,WAAW;AAGxB,aAAOF,IAAGE,KAAI;AAAA,IAChB;AACA,WAAO,iBAAiBA,KAAI;AAAA,EAC9B;AAaA,WAAS,iBAAiBA,OAAM;AAE9B,WAAO,IAAIA,KAAI;AAAA,EACjB;AAcA,WAAS,aAAaA,OAAM;AAI1B,YAAQ,MAAM,UAAU;AACxB,WAAO,aAAaA,KAAI;AAAA,EAC1B;AAgBA,WAAS,aAAaA,OAAM;AAC1B,QAAIA,UAAS,KAAK;AAChB,cAAQ,MAAM,kBAAkB;AAChC,cAAQ,QAAQA,KAAI;AACpB,cAAQ,KAAK,kBAAkB;AAC/B,aAAO;AAAA,IACT;AACA,QAAIA,UAAS,QAAQ,mBAAmBA,KAAI,GAAG;AAC7C,cAAQ,KAAK,UAAU;AACvB,aAAOF,IAAGE,KAAI;AAAA,IAChB;AACA,QAAI,cAAcA,KAAI,GAAG;AACvB,aAAO,aAAa,SAAS,cAAc,YAAY,EAAEA,KAAI;AAAA,IAC/D;AAGA,YAAQ,MAAM,MAAM;AACpB,WAAO,YAAYA,KAAI;AAAA,EACzB;AAcA,WAAS,YAAYA,OAAM;AACzB,QAAIA,UAAS,QAAQA,UAAS,OAAO,0BAA0BA,KAAI,GAAG;AACpE,cAAQ,KAAK,MAAM;AACnB,aAAO,aAAaA,KAAI;AAAA,IAC1B;AACA,YAAQ,QAAQA,KAAI;AACpB,WAAOA,UAAS,KAAK,gBAAgB;AAAA,EACvC;AAcA,WAAS,cAAcA,OAAM;AAC3B,QAAIA,UAAS,MAAMA,UAAS,KAAK;AAC/B,cAAQ,QAAQA,KAAI;AACpB,aAAO;AAAA,IACT;AACA,WAAO,YAAYA,KAAI;AAAA,EACzB;AACF;AAIA,SAAS,aAAa,QAAQI,UAAS;AACrC,MAAIH,SAAQ;AACZ,MAAI,0BAA0B;AAE9B,MAAI,UAAU;AAEd,MAAI,WAAW,CAAC,GAAG,GAAG,GAAG,CAAC;AAE1B,MAAII,QAAO,CAAC,GAAG,GAAG,GAAG,CAAC;AACtB,MAAI,gCAAgC;AACpC,MAAI,eAAe;AAEnB,MAAI;AAEJ,MAAI;AAEJ,MAAI;AACJ,QAAMC,OAAM,IAAI,QAAQ;AACxB,SAAO,EAAEL,SAAQ,OAAO,QAAQ;AAC9B,UAAM,QAAQ,OAAOA,MAAK;AAC1B,UAAM,QAAQ,MAAM,CAAC;AACrB,QAAI,MAAM,CAAC,MAAM,SAAS;AAExB,UAAI,MAAM,SAAS,aAAa;AAC9B,wCAAgC;AAGhC,YAAI,iBAAiB,GAAG;AACtB,wBAAcK,MAAKF,UAAS,cAAc,cAAc,WAAW;AACnE,wBAAc;AACd,yBAAe;AAAA,QACjB;AAGA,uBAAe;AAAA,UACb,MAAM;AAAA,UACN,OAAO,OAAO,OAAO,CAAC,GAAG,MAAM,KAAK;AAAA;AAAA,UAEpC,KAAK,OAAO,OAAO,CAAC,GAAG,MAAM,GAAG;AAAA,QAClC;AACA,QAAAE,KAAI,IAAIL,QAAO,GAAG,CAAC,CAAC,SAAS,cAAcG,QAAO,CAAC,CAAC;AAAA,MACtD,WAAW,MAAM,SAAS,cAAc,MAAM,SAAS,qBAAqB;AAC1E,kCAA0B;AAC1B,sBAAc;AACd,mBAAW,CAAC,GAAG,GAAG,GAAG,CAAC;AACtB,QAAAC,QAAO,CAAC,GAAGJ,SAAQ,GAAG,GAAG,CAAC;AAG1B,YAAI,+BAA+B;AACjC,0CAAgC;AAChC,wBAAc;AAAA,YACZ,MAAM;AAAA,YACN,OAAO,OAAO,OAAO,CAAC,GAAG,MAAM,KAAK;AAAA;AAAA,YAEpC,KAAK,OAAO,OAAO,CAAC,GAAG,MAAM,GAAG;AAAA,UAClC;AACA,UAAAK,KAAI,IAAIL,QAAO,GAAG,CAAC,CAAC,SAAS,aAAaG,QAAO,CAAC,CAAC;AAAA,QACrD;AACA,kBAAU,MAAM,SAAS,sBAAsB,IAAI,cAAc,IAAI;AAAA,MACvE,WAES,YAAY,MAAM,SAAS,UAAU,MAAM,SAAS,0BAA0B,MAAM,SAAS,yBAAyB;AAC7H,kCAA0B;AAG1B,YAAIC,MAAK,CAAC,MAAM,GAAG;AACjB,cAAI,SAAS,CAAC,MAAM,GAAG;AACrB,YAAAA,MAAK,CAAC,IAAIA,MAAK,CAAC;AAChB,0BAAc,UAAUC,MAAKF,UAAS,UAAU,SAAS,QAAW,WAAW;AAC/E,uBAAW,CAAC,GAAG,GAAG,GAAG,CAAC;AAAA,UACxB;AACA,UAAAC,MAAK,CAAC,IAAIJ;AAAA,QACZ;AAAA,MACF,WAAW,MAAM,SAAS,oBAAoB;AAC5C,YAAI,yBAAyB;AAC3B,oCAA0B;AAAA,QAC5B,OAAO;AACL,cAAI,SAAS,CAAC,MAAM,GAAG;AACrB,YAAAI,MAAK,CAAC,IAAIA,MAAK,CAAC;AAChB,0BAAc,UAAUC,MAAKF,UAAS,UAAU,SAAS,QAAW,WAAW;AAAA,UACjF;AACA,qBAAWC;AACX,UAAAA,QAAO,CAAC,SAAS,CAAC,GAAGJ,QAAO,GAAG,CAAC;AAAA,QAClC;AAAA,MACF;AAAA,IACF,WAES,MAAM,SAAS,aAAa;AACnC,sCAAgC;AAChC,qBAAeA;AAAA,IACjB,WAAW,MAAM,SAAS,cAAc,MAAM,SAAS,qBAAqB;AAC1E,qBAAeA;AACf,UAAI,SAAS,CAAC,MAAM,GAAG;AACrB,QAAAI,MAAK,CAAC,IAAIA,MAAK,CAAC;AAChB,sBAAc,UAAUC,MAAKF,UAAS,UAAU,SAASH,QAAO,WAAW;AAAA,MAC7E,WAAWI,MAAK,CAAC,MAAM,GAAG;AACxB,sBAAc,UAAUC,MAAKF,UAASC,OAAM,SAASJ,QAAO,WAAW;AAAA,MACzE;AACA,gBAAU;AAAA,IACZ,WAAW,YAAY,MAAM,SAAS,UAAU,MAAM,SAAS,0BAA0B,MAAM,SAAS,yBAAyB;AAC/H,MAAAI,MAAK,CAAC,IAAIJ;AAAA,IACZ;AAAA,EACF;AACA,MAAI,iBAAiB,GAAG;AACtB,kBAAcK,MAAKF,UAAS,cAAc,cAAc,WAAW;AAAA,EACrE;AACA,EAAAE,KAAI,QAAQF,SAAQ,MAAM;AAK1B,EAAAH,SAAQ;AACR,SAAO,EAAEA,SAAQG,SAAQ,OAAO,QAAQ;AACtC,UAAM,QAAQA,SAAQ,OAAOH,MAAK;AAClC,QAAI,MAAM,CAAC,MAAM,WAAW,MAAM,CAAC,EAAE,SAAS,SAAS;AACrD,YAAM,CAAC,EAAE,SAAS,cAAcG,SAAQ,QAAQH,MAAK;AAAA,IACvD;AAAA,EACF;AACA,SAAO;AACT;AAcA,SAAS,UAAUK,MAAKF,UAASG,QAAO,SAAS,QAAQ,cAAc;AAGrE,QAAM,YAAY,YAAY,IAAI,gBAAgB,YAAY,IAAI,mBAAmB;AAGrF,QAAM,YAAY;AASlB,MAAIA,OAAM,CAAC,MAAM,GAAG;AAClB,iBAAa,MAAM,OAAO,OAAO,CAAC,GAAG,SAASH,SAAQ,QAAQG,OAAM,CAAC,CAAC,CAAC;AACvE,IAAAD,KAAI,IAAIC,OAAM,CAAC,GAAG,GAAG,CAAC,CAAC,QAAQ,cAAcH,QAAO,CAAC,CAAC;AAAA,EACxD;AASA,QAAMI,OAAM,SAASJ,SAAQ,QAAQG,OAAM,CAAC,CAAC;AAC7C,iBAAe;AAAA,IACb,MAAM;AAAA,IACN,OAAO,OAAO,OAAO,CAAC,GAAGC,IAAG;AAAA;AAAA,IAE5B,KAAK,OAAO,OAAO,CAAC,GAAGA,IAAG;AAAA,EAC5B;AACA,EAAAF,KAAI,IAAIC,OAAM,CAAC,GAAG,GAAG,CAAC,CAAC,SAAS,cAAcH,QAAO,CAAC,CAAC;AAWvD,MAAIG,OAAM,CAAC,MAAM,GAAG;AAClB,UAAM,eAAe,SAASH,SAAQ,QAAQG,OAAM,CAAC,CAAC;AACtD,UAAM,aAAa,SAASH,SAAQ,QAAQG,OAAM,CAAC,CAAC;AAEpD,UAAM,aAAa;AAAA,MACjB,MAAM;AAAA,MACN,OAAO,OAAO,OAAO,CAAC,GAAG,YAAY;AAAA,MACrC,KAAK,OAAO,OAAO,CAAC,GAAG,UAAU;AAAA,IACnC;AACA,IAAAD,KAAI,IAAIC,OAAM,CAAC,GAAG,GAAG,CAAC,CAAC,SAAS,YAAYH,QAAO,CAAC,CAAC;AACrD,QAAI,YAAY,GAAG;AAEjB,YAAM,QAAQA,SAAQ,OAAOG,OAAM,CAAC,CAAC;AACrC,YAAME,OAAML,SAAQ,OAAOG,OAAM,CAAC,CAAC;AACnC,YAAM,CAAC,EAAE,MAAM,OAAO,OAAO,CAAC,GAAGE,KAAI,CAAC,EAAE,GAAG;AAC3C,YAAM,CAAC,EAAE,OAAO;AAChB,YAAM,CAAC,EAAE,cAAc;AAGvB,UAAIF,OAAM,CAAC,IAAIA,OAAM,CAAC,IAAI,GAAG;AAC3B,cAAMG,KAAIH,OAAM,CAAC,IAAI;AACrB,cAAMI,KAAIJ,OAAM,CAAC,IAAIA,OAAM,CAAC,IAAI;AAChC,QAAAD,KAAI,IAAII,IAAGC,IAAG,CAAC,CAAC;AAAA,MAClB;AAAA,IACF;AACA,IAAAL,KAAI,IAAIC,OAAM,CAAC,IAAI,GAAG,GAAG,CAAC,CAAC,QAAQ,YAAYH,QAAO,CAAC,CAAC;AAAA,EAC1D;AASA,MAAI,WAAW,QAAW;AACxB,iBAAa,MAAM,OAAO,OAAO,CAAC,GAAG,SAASA,SAAQ,QAAQ,MAAM,CAAC;AACrE,IAAAE,KAAI,IAAI,QAAQ,GAAG,CAAC,CAAC,QAAQ,cAAcF,QAAO,CAAC,CAAC;AACpD,mBAAe;AAAA,EACjB;AACA,SAAO;AACT;AAYA,SAAS,cAAcE,MAAKF,UAASH,QAAOW,QAAO,WAAW;AAE5D,QAAM,QAAQ,CAAC;AACf,QAAM,UAAU,SAASR,SAAQ,QAAQH,MAAK;AAC9C,MAAI,WAAW;AACb,cAAU,MAAM,OAAO,OAAO,CAAC,GAAG,OAAO;AACzC,UAAM,KAAK,CAAC,QAAQ,WAAWG,QAAO,CAAC;AAAA,EACzC;AACA,EAAAQ,OAAM,MAAM,OAAO,OAAO,CAAC,GAAG,OAAO;AACrC,QAAM,KAAK,CAAC,QAAQA,QAAOR,QAAO,CAAC;AACnC,EAAAE,KAAI,IAAIL,SAAQ,GAAG,GAAG,KAAK;AAC7B;AAOA,SAAS,SAAS,QAAQA,QAAO;AAC/B,QAAM,QAAQ,OAAOA,MAAK;AAC1B,QAAM,OAAO,MAAM,CAAC,MAAM,UAAU,UAAU;AAC9C,SAAO,MAAM,CAAC,EAAE,IAAI;AACtB;AAlzBA,IAAAY,eAAA;AAAA;AAYA;AACA;AACA;AACA;AAAA;AAAA;;;ACfA;AAAA;AAAA,IAAAC;AACA,IAAAC;AAAA;AAAA;;;ACsBO,SAAS,mBAAmB;AACjC,SAAO;AAAA,IACL,MAAM;AAAA,MACJ,aAAa,OAAO;AAClB,qBAAa,KAAK,MAAM,OAAO,MAAM;AAAA,MACvC;AAAA,MACA,aAAa,OAAO;AAClB,qBAAa,KAAK,MAAM,OAAO,MAAM;AAAA,MACvC;AAAA,IACF;AAAA,EACF;AACF;AAQA,SAAS,aAAa,OAAOC,SAAQ;AACnC,MAAIC,SAAQ,KAAK,eAAe,KAAK;AAErC,MAAI,KAAK,QAAQ,oBAAoB;AACnC,IAAAA,SAAQA,OAAM,QAAQD,SAAQ,UAAU;AAAA,EAC1C;AAEA,OAAK,IAAI,KAAK,OAAOC,MAAK,CAAC;AAC7B;AAlDA,IAQM,QAKA;AAbN,IAAAC,aAAA;AAAA;AAQA,IAAM,SACJ;AAIF,IAAM,SAAS,IAAI,OAAO,MAAM,OAAO,QAAQ,GAAG;AAAA;AAAA;;;ACblD;AAAA;AAAA,IAAAC;AAAA;AAAA;;;ACYO,SAAS,sBAAsB;AACpC,SAAO;AAAA,IACL,OAAO;AAAA,MACL,gBAAgB;AACd,aAAK,IAAI,qCAAqC;AAAA,MAChD;AAAA,IACF;AAAA,IACA,MAAM;AAAA,MACJ,gBAAgB;AACd,aAAK,IAAI,IAAI;AAAA,MACf;AAAA,MACA,4BAA4B;AAC1B,aAAK,IAAI,aAAa;AAAA,MACxB;AAAA,IACF;AAAA,EACF;AACF;AA5BA,IAAAC,aAAA;AAAA;AAAA;AAAA;;;ACmBO,SAAS,kBAAkB;AAChC,SAAO;AAAA,IACL,MAAM;AAAA,MACJ,CAAC,EAAE,GAAG;AAAA,IACR;AAAA,EACF;AACF;AAMA,SAAS,sBAAsB,SAASC,KAAI,KAAK;AAC/C,QAAMC,QAAO;AACb,SAAO;AAYP,WAAS,KAAKC,OAAM;AAClB;AAAA;AAAA,MAEAD,MAAK,aAAa;AAAA;AAAA,MAGlB,CAACA,MAAK;AAAA,MAAoC;AACxC,aAAO,IAAIC,KAAI;AAAA,IACjB;AACA,YAAQ,MAAM,eAAe;AAC7B,YAAQ,MAAM,qBAAqB;AACnC,YAAQ,QAAQA,KAAI;AACpB,YAAQ,KAAK,qBAAqB;AAClC,WAAO;AAAA,EACT;AAYA,WAAS,OAAOA,OAAM;AAIpB,QAAI,0BAA0BA,KAAI,GAAG;AACnC,cAAQ,MAAM,6BAA6B;AAC3C,cAAQ,QAAQA,KAAI;AACpB,cAAQ,KAAK,6BAA6B;AAC1C,aAAOC;AAAA,IACT;AACA,QAAID,UAAS,MAAMA,UAAS,KAAK;AAC/B,cAAQ,MAAM,2BAA2B;AACzC,cAAQ,QAAQA,KAAI;AACpB,cAAQ,KAAK,2BAA2B;AACxC,aAAOC;AAAA,IACT;AACA,WAAO,IAAID,KAAI;AAAA,EACjB;AAYA,WAASC,OAAMD,OAAM;AACnB,QAAIA,UAAS,IAAI;AACf,cAAQ,MAAM,qBAAqB;AACnC,cAAQ,QAAQA,KAAI;AACpB,cAAQ,KAAK,qBAAqB;AAClC,cAAQ,KAAK,eAAe;AAC5B,aAAO;AAAA,IACT;AACA,WAAO,IAAIA,KAAI;AAAA,EACjB;AAKA,WAAS,MAAMA,OAAM;AAEnB,QAAI,mBAAmBA,KAAI,GAAG;AAC5B,aAAOF,IAAGE,KAAI;AAAA,IAChB;AAIA,QAAI,cAAcA,KAAI,GAAG;AACvB,aAAO,QAAQ,MAAM;AAAA,QACnB,UAAU;AAAA,MACZ,GAAGF,KAAI,GAAG,EAAEE,KAAI;AAAA,IAClB;AAGA,WAAO,IAAIA,KAAI;AAAA,EACjB;AACF;AAMA,SAAS,kBAAkB,SAASF,KAAI,KAAK;AAC3C,SAAO,aAAa,SAAS,OAAO,YAAY;AAYhD,WAAS,MAAME,OAAM;AAKnB,WAAOA,UAAS,OAAO,IAAIA,KAAI,IAAIF,IAAGE,KAAI;AAAA,EAC5C;AACF;AA7JA,IAMM;AANN,IAAAE,eAAA;AAAA;AAIA;AACA;AACA,IAAM,gBAAgB;AAAA,MACpB,MAAM;AAAA,MACN,UAAU;AAAA,IACZ;AAAA;AAAA;;;ACTA;AAAA;AAAA,IAAAC;AACA,IAAAC;AAAA;AAAA;;;ACqCO,SAAS,IAAI,SAAS;AAC3B,SAAO,kBAAkB;AAAA,IACvB,mBAAmB;AAAA,IACnB,YAAY;AAAA,IACZ,iBAAiB,OAAO;AAAA,IACxB,SAAS;AAAA,IACT,gBAAgB;AAAA,EAClB,CAAC;AACH;AAaO,SAAS,QAAQ,SAAS;AAC/B,SAAO,sBAAsB;AAAA,IAC3B,uBAAuB;AAAA,IACvB,gBAAgB,OAAO;AAAA,IACvB,qBAAqB;AAAA,IACrB,aAAa;AAAA,IACb,iBAAiB;AAAA,IACjB,oBAAoB;AAAA,EACtB,CAAC;AACH;AApEA;AAAA;AAOA;AAIA;AAIA;AACA;AAIA;AACA;AACA;AAAA;AAAA;;;ACCe,SAAR,UAA2B,SAAS;AAGzC,QAAMC;AAAA;AAAA,IAAuC;AAAA;AAC7C,QAAM,WAAW,WAAWC;AAC5B,QAAMC,QAAOF,MAAK,KAAK;AAEvB,QAAM,sBACJE,MAAK,wBAAwBA,MAAK,sBAAsB,CAAC;AAC3D,QAAM,yBACJA,MAAK,2BAA2BA,MAAK,yBAAyB,CAAC;AACjE,QAAM,uBACJA,MAAK,yBAAyBA,MAAK,uBAAuB,CAAC;AAE7D,sBAAoB,KAAK,IAAI,QAAQ,CAAC;AACtC,yBAAuB,KAAK,gBAAgB,CAAC;AAC7C,uBAAqB,KAAK,cAAc,QAAQ,CAAC;AACnD;AAxCA,IAYMD;AAZN,IAAAE,aAAA;AAAA;AAQA;AACA;AAGA,IAAMF,gBAAe,CAAC;AAAA;AAAA;;;ACZtB;AAAA;AACA,IAAAG;AAAA;AAAA;;;AC6DO,SAAS,QAAQ,SAAS;AAC/B,QAAM,WAAW,WAAW,CAAC;AAU7B,MAAI,OAAO;AAQX,QAAM,cAAc,CAAC;AAUrB,QAAM,UAAU,CAAC,CAAC,CAAC;AAQnB,QAAM,aAAa,CAAC;AAQpB,QAAM,aAAa,CAAC;AAGpB,QAAM,kBAAkB;AAAA,IACtB,OAAO;AAAA,MACL,YAAY;AAAA,MACZ,YAAY;AAAA,MACZ,qBAAqBC;AAAA,MACrB,qBAAqBA;AAAA,MACrB,cAAc;AAAA,MACd,UAAU;AAAA,MACV,SAAS;AAAA,MACT,YAAY;AAAA,MACZ,6BAA6B;AAAA,MAC7B,uBAAuBA;AAAA,MACvB,uBAAuBA;AAAA,MACvB,UAAU;AAAA,MACV,UAAU;AAAA,MACV,UAAU;AAAA,MACV,OAAO;AAAA,MACP,OAAOA;AAAA,MACP,MAAM;AAAA,MACN,gBAAgB;AAAA,MAChB,eAAe;AAAA,MACf,aAAa;AAAA,MACb,eAAe;AAAA,MACf,WAAW;AAAA,MACX,WAAWA;AAAA,MACX,UAAU;AAAA,MACV,2BAA2B;AAAA,MAC3B,qBAAqBA;AAAA,MACrB,eAAe;AAAA,MACf,QAAQ;AAAA,IACV;AAAA,IACA,MAAM;AAAA,MACJ,YAAY;AAAA,MACZ,oBAAoB;AAAA,MACpB,eAAe;AAAA,MACf,kBAAkB;AAAA,MAClB,YAAY;AAAA,MACZ,sBAAsB;AAAA,MACtB,qCAAqC;AAAA,MACrC,iCAAiC;AAAA,MACjC,yBAAyB;AAAA,MACzB,YAAY;AAAA,MACZ,iBAAiB;AAAA,MACjB,qBAAqB;AAAA,MACrB,qBAAqB;AAAA,MACrB,eAAe;AAAA,MACf,cAAc;AAAA,MACd,UAAU;AAAA,MACV,cAAc;AAAA,MACd,MAAM;AAAA,MACN,YAAY;AAAA,MACZ,6BAA6B;AAAA,MAC7B,uBAAuB;AAAA,MACvB,uBAAuB;AAAA,MACvB,UAAU;AAAA,MACV,iBAAiB;AAAA,MACjB,mBAAmB;AAAA,MACnB,UAAU;AAAA,MACV,cAAc;AAAA,MACd,UAAU;AAAA,MACV,cAAc;AAAA,MACd,OAAO;AAAA,MACP,OAAO;AAAA,MACP,WAAW;AAAA,MACX,YAAY;AAAA,MACZ,MAAM;AAAA,MACN,aAAa;AAAA,MACb,eAAe;AAAA,MACf,WAAW;AAAA,MACX,WAAW;AAAA,MACX,iBAAiB;AAAA,MACjB,UAAU;AAAA,MACV,2BAA2B;AAAA,MAC3B,qBAAqB;AAAA,MACrB,eAAe;AAAA,MACf,2BAA2B;AAAA,MAC3B,mBAAmB;AAAA,MACnB,QAAQ;AAAA,MACR,eAAe;AAAA,IACjB;AAAA,EACF;AAUA,QAAMC;AAAA;AAAA,IACN,sBAAsB,CAAC,iBAAiB,GAAI,SAAS,kBAAkB,CAAC,CAAE,CAAC;AAAA;AAQ3E,QAAMC,QAAO;AAAA,IACX;AAAA,IACA;AAAA,EACF;AASA,QAAMC,WAAU;AAAA,IACd,QAAAH;AAAA,IACA,QAAAI;AAAA,IACA;AAAA,IACA;AAAA,IACA,SAAS;AAAA,IACT,KAAAC;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACF;AAWA,MAAI,kBAAkB,SAAS;AAG/B,SAAOC;AAUP,WAASA,SAAQ,QAAQ;AACvB,QAAIC,SAAQ;AACZ,QAAI,QAAQ;AAEZ,UAAM,YAAY,CAAC;AAMnB,QAAIC,QAAO,CAAC;AAEZ,QAAIC,QAAO,CAAC;AACZ,WAAO,EAAEF,SAAQ,OAAO,QAAQ;AAE9B,UAAI,CAAC,oBAAoB,OAAOA,MAAK,EAAE,CAAC,EAAE,SAAS,gBAAgB,OAAOA,MAAK,EAAE,CAAC,EAAE,SAAS,oBAAoB;AAC/G;AAAA,QACA,OAAOA,MAAK,EAAE,CAAC,EAAE,eAAe,OAAOA,MAAK,EAAE,CAAC,CAAC;AAAA,MAClD;AAGA,UAAI,OAAOA,MAAK,EAAE,CAAC,EAAE,SAAS,iBAAiB,OAAOA,MAAK,EAAE,CAAC,EAAE,SAAS,iBAAiB;AACxF,YAAI,OAAOA,MAAK,EAAE,CAAC,MAAM,SAAS;AAChC,oBAAU,KAAKA,MAAK;AAAA,QACtB,OAAO;AACL,sBAAY,OAAO,MAAM,UAAU,IAAI,GAAGA,MAAK,CAAC;AAAA,QAClD;AAAA,MACF;AAGA,UAAI,OAAOA,MAAK,EAAE,CAAC,EAAE,SAAS,cAAc;AAC1C,YAAI,OAAOA,MAAK,EAAE,CAAC,MAAM,SAAS;AAChC,UAAAE,QAAO,KAAKA,OAAM,OAAO,MAAM,OAAOF,MAAK,CAAC;AAC5C,kBAAQA;AAAA,QACV,OAAO;AACL,UAAAC,QAAO,KAAKA,OAAM,OAAO,MAAM,OAAOD,SAAQ,CAAC,CAAC;AAChD,kBAAQA,SAAQ;AAAA,QAClB;AAAA,MACF;AAAA,IACF;AACA,IAAAC,QAAO,KAAKA,OAAMC,KAAI;AACtB,IAAAD,QAAO,KAAKA,OAAM,OAAO,MAAM,KAAK,CAAC;AACrC,IAAAD,SAAQ;AACR,UAAM,SAASC;AAGf,QAAIP,UAAS,MAAM,MAAM;AACvB,MAAAA,UAAS,MAAM,KAAK,KAAKE,QAAO;AAAA,IAClC;AAGA,WAAO,EAAEI,SAAQ,OAAO,QAAQ;AAC9B,YAAM,UAAUN,UAAS,OAAOM,MAAK,EAAE,CAAC,CAAC;AACzC,YAAM,OAAO,OAAOA,MAAK,EAAE,CAAC,EAAE;AAC9B,YAAMG,UAAS,QAAQ,IAAI;AAC3B,UAAIC,gBAAe,KAAK,SAAS,IAAI,KAAKD,SAAQ;AAChD,QAAAA,QAAO,KAAK;AAAA,UACV,gBAAgB,OAAOH,MAAK,EAAE,CAAC,EAAE;AAAA,UACjC,GAAGJ;AAAA,QACL,GAAG,OAAOI,MAAK,EAAE,CAAC,CAAC;AAAA,MACrB;AAAA,IACF;AAGA,QAAIN,UAAS,KAAK,MAAM;AACtB,MAAAA,UAAS,KAAK,KAAK,KAAKE,QAAO;AAAA,IACjC;AACA,WAAO,QAAQ,CAAC,EAAE,KAAK,EAAE;AAAA,EAC3B;AAQA,WAAS,YAAY,OAAO;AAC1B,UAAM,SAAS,MAAM;AACrB,QAAII,SAAQ;AACZ,QAAI,mBAAmB;AACvB,QAAI,QAAQ;AAEZ,QAAI;AACJ,WAAO,EAAEA,SAAQ,QAAQ;AACvB,YAAM,QAAQ,MAAMA,MAAK;AACzB,UAAI,MAAM,CAAC,EAAE,YAAY;AACvB,mBAAW;AACX,YAAI,MAAM,CAAC,MAAM,SAAS;AACxB;AAAA,QACF,OAAO;AACL;AAAA,QACF;AAAA,MACF,MAAO,SAAQ,MAAM,CAAC,EAAE,MAAM;AAAA,QAC5B,KAAK,kBACH;AACE,cAAI,MAAM,CAAC,MAAM,QAAQ;AACvB,uBAAW;AAAA,UACb;AACA;AAAA,QACF;AAAA,QACF,KAAK,cACH;AAGE;AAAA,QACF;AAAA,QACF,KAAK,mBACH;AACE,cAAI,MAAM,CAAC,MAAM,WAAW,CAAC,kBAAkB;AAC7C,gBAAI,UAAU;AACZ,yBAAW;AAAA,YACb,OAAO;AACL,sBAAQ;AAAA,YACV;AAAA,UACF;AACA;AAAA,QACF;AAAA,QACF,SACE;AACE,qBAAW;AAAA,QACb;AAAA,MACJ;AAAA,IACF;AACA,UAAM,CAAC,EAAE,CAAC,EAAE,SAAS;AAAA,EACvB;AAKA,WAAS,QAAQK,MAAKC,QAAO;AAG3B,IAAAX,MAAKU,IAAG,IAAIC;AAAA,EACd;AAKA,WAAS,QAAQD,MAAK;AACpB,WAAOV,MAAKU,IAAG;AAAA,EACjB;AAGA,WAASZ,UAAS;AAChB,YAAQ,KAAK,CAAC,CAAC;AAAA,EACjB;AAGA,WAAS,SAAS;AAChB,UAAM,MAAM,QAAQ,IAAI;AACxB,WAAO,IAAI,KAAK,EAAE;AAAA,EACpB;AAGA,WAAS,IAAIa,QAAO;AAClB,QAAI,CAAC,KAAM;AACX,YAAQ,cAAc,IAAI;AAC1B,YAAQ,QAAQ,SAAS,CAAC,EAAE,KAAKA,MAAK;AAAA,EACxC;AAGA,WAASR,KAAIQ,QAAO;AAClB,YAAQ,YAAY;AACpB,YAAQ,QAAQ,SAAS,CAAC,EAAE,KAAKA,MAAK;AAAA,EACxC;AAOA,WAASC,cAAa;AACpB,IAAAT,KAAI,mBAAmB,IAAI;AAAA,EAC7B;AAGA,WAAS,qBAAqB;AAC5B,UAAML,UAAS,QAAQ,QAAQ,SAAS,CAAC;AACzC,UAAM,QAAQA,QAAOA,QAAO,SAAS,CAAC;AACtC,UAAMe,YAAW,QAAQ,MAAM,WAAW,MAAM,SAAS,CAAC,IAAI;AAC9D,QAAIA,cAAa,MAAMA,cAAa,MAAMA,cAAa,MAAM;AAC3D;AAAA,IACF;AACA,IAAAD,YAAW;AAAA,EACb;AAGA,WAASV,QAAOS,QAAO;AACrB,WAAO,QAAQ,cAAc,IAAIA,SAAQ,OAAQA,MAAK;AAAA,EACxD;AASA,WAAS,eAAe;AACtB,WAAO;AAAA,EACT;AAMA,WAAS,mBAAmB,OAAO;AACjC,eAAW,KAAK,CAAC,MAAM,MAAM;AAC7B,uBAAmB;AACnB,QAAI,KAAK;AACT,YAAQ,mBAAmB,IAAI;AAAA,EACjC;AAMA,WAAS,qBAAqB,OAAO;AACnC,eAAW,KAAK,CAAC,MAAM,MAAM;AAC7B,uBAAmB;AACnB,QAAI,KAAK;AACT,YAAQ,mBAAmB,IAAI;AAAA,EACjC;AAMA,WAAS,qBAAqB,OAAO;AACnC,QAAI,QAAQ,iBAAiB,GAAG;AAC9B,YAAMA,SAAQ,OAAO,SAAS,KAAK,eAAe,KAAK,GAAG,EAAE;AAC5D,UAAIA,WAAU,GAAG;AACf,YAAI,aAAaT,QAAO,OAAOS,MAAK,CAAC,IAAI,GAAG;AAAA,MAC9C;AAAA,IACF;AAAA,EACF;AAKA,WAAS,wBAAwB;AAC/B,QAAI,QAAQ,iBAAiB,GAAG;AAC9B,UAAI,GAAG;AAAA,IACT,OAAO;AACL,qBAAe;AAAA,IACjB;AACA,uBAAmB;AACnB,QAAI,MAAM;AACV,YAAQ,iBAAiB;AAEzB,YAAQ,YAAY;AAAA,EACtB;AAKA,WAAS,oBAAoB;AAC3B,mBAAe;AACf,eAAW,IAAI;AACf,IAAAC,YAAW;AACX,QAAI,OAAO;AAAA,EACb;AAKA,WAAS,sBAAsB;AAC7B,mBAAe;AACf,eAAW,IAAI;AACf,IAAAA,YAAW;AACX,QAAI,OAAO;AAAA,EACb;AAKA,WAAS,iBAAiB;AACxB,QAAI,QAAQ,YAAY,KAAK,CAAC,QAAQ,qBAAqB,GAAG;AAC5D,yBAAmB;AAAA,IACrB;AACA,QAAI,OAAO;AACX,YAAQ,qBAAqB;AAAA,EAC/B;AAMA,WAAS,oBAAoB;AAC3B,eAAW,KAAK,KAAK;AACrB,uBAAmB;AACnB,QAAI,cAAc;AAAA,EACpB;AAMA,WAAS,mBAAmB;AAC1B,eAAW,IAAI;AACf,uBAAmB;AACnB,QAAI,eAAe;AACnB,YAAQ,qBAAqB;AAAA,EAC/B;AAMA,WAAS,mBAAmB;AAC1B,QAAI,CAAC,WAAW,WAAW,SAAS,CAAC,GAAG;AACtC,yBAAmB;AACnB,UAAI,KAAK;AAAA,IACX;AACA,YAAQ,qBAAqB;AAAA,EAC/B;AAMA,WAAS,kBAAkB;AACzB,QAAI,WAAW,WAAW,SAAS,CAAC,GAAG;AACrC,cAAQ,uBAAuB,IAAI;AAAA,IACrC,OAAO;AACL,UAAI,MAAM;AAAA,IACZ;AAAA,EACF;AAMA,WAAS,oBAAoB;AAC3B,uBAAmB;AACnB,QAAI,YAAY;AAChB,YAAQ,eAAe,CAAC;AAAA,EAC1B;AAMA,WAAS,4BAA4B;AACnC,UAAMD,SAAQ,OAAO;AACrB,QAAI,sBAAsBA,SAAQ,GAAG;AAAA,EACvC;AAMA,WAAS,wBAAwB;AAC/B,UAAMG,SAAQ,QAAQ,aAAa,KAAK;AACxC,QAAI,CAACA,QAAO;AACV,UAAI,GAAG;AACP,cAAQ,sBAAsB,IAAI;AAAA,IACpC;AACA,YAAQ,eAAeA,SAAQ,CAAC;AAAA,EAClC;AAMA,WAAS,sBAAsB;AAC7B,uBAAmB;AACnB,QAAI,aAAa;AAAA,EACnB;AAMA,WAAS,iBAAiB;AACxB,UAAMA,SAAQ,QAAQ,aAAa;AAOnC,QAAIA,WAAU,UAAaA,SAAQ,KAAKd,MAAK,WAAW,SAAS,KAAK,CAAC,QAAQ,YAAY,GAAG;AAC5F,MAAAY,YAAW;AAAA,IACb;AAIA,QAAI,QAAQ,kBAAkB,GAAG;AAC/B,yBAAmB;AAAA,IACrB;AACA,QAAI,eAAe;AACnB,QAAIE,WAAU,UAAaA,SAAQ,EAAG,oBAAmB;AACzD,YAAQ,kBAAkB;AAC1B,YAAQ,aAAa;AACrB,YAAQ,oBAAoB;AAAA,EAC9B;AAMA,WAAS,eAAe;AACtB,eAAW,KAAK;AAAA,MACd,OAAO;AAAA,IACT,CAAC;AACD,WAAO;AAAA,EACT;AAMA,WAAS,cAAc;AACrB,eAAW,KAAK,CAAC,CAAC;AAAA,EACpB;AAMA,WAAS,gBAAgB,OAAO;AAC9B,eAAW,WAAW,SAAS,CAAC,EAAE,UAAU,KAAK,eAAe,KAAK;AAAA,EACvE;AAMA,WAAS,cAAc;AACrB,eAAW,WAAW,SAAS,CAAC,EAAE,QAAQ,OAAO;AAAA,EACnD;AAMA,WAAS,sBAAsB,OAAO;AACpC,eAAW,WAAW,SAAS,CAAC,EAAE,cAAc,KAAK,eAAe,KAAK;AAAA,EAC3E;AAMA,WAAS,kBAAkB;AACzB,IAAAhB,QAAO;AACP,eAAW,WAAW,SAAS,CAAC,EAAE,cAAc;AAAA,EAClD;AAMA,WAAS,mCAAmC;AAC1C,IAAAA,QAAO;AAGP,YAAQ,gBAAgB,IAAI;AAAA,EAC9B;AAMA,WAAS,kCAAkC;AACzC,eAAW,WAAW,SAAS,CAAC,EAAE,cAAc,OAAO;AACvD,YAAQ,cAAc;AAAA,EACxB;AAMA,WAAS,4BAA4B;AACnC,eAAW,WAAW,SAAS,CAAC,EAAE,QAAQ,OAAO;AAAA,EACnD;AAMA,WAAS,cAAc;AACrB,QAAIO,SAAQ,WAAW,SAAS;AAChC,UAAM,QAAQ,WAAWA,MAAK;AAC9B,UAAM,KAAK,MAAM,eAAe,MAAM;AACtC,UAAMJ,WAAU,MAAM,gBAAgB,SAAY,YAAY,oBAAoB,EAAE,CAAC,IAAI;AACzF,WAAO;AACP,WAAOI,UAAS;AACd,UAAI,WAAWA,MAAK,EAAE,OAAO;AAC3B,eAAO;AACP;AAAA,MACF;AAAA,IACF;AACA,QAAI,MAAM,OAAO;AACf,UAAI,eAAe,YAAYJ,SAAQ,aAAa,SAAS,yBAAyB,SAAY,cAAc,IAAI,SAAS;AAC7H,MAAAE,KAAI,MAAM,KAAK;AACf,UAAI,GAAG;AAAA,IACT,OAAO;AACL,UAAI,cAAc,YAAYF,SAAQ,aAAa,SAAS,yBAAyB,SAAY,YAAY,IAAI,GAAG;AAAA,IACtH;AACA,QAAIA,SAAQ,QAAQ,aAAaA,SAAQ,QAAQ,MAAM,EAAE;AACzD,QAAI,MAAM,OAAO;AACf,UAAI,KAAK;AAAA,IACX,OAAO;AACL,UAAI,GAAG;AACP,MAAAE,KAAI,MAAM,KAAK;AACf,UAAI,MAAM;AAAA,IACZ;AACA,eAAW,IAAI;AAAA,EACjB;AAMA,WAAS,oBAAoB;AAC3B,IAAAL,QAAO;AACP,eAAW,KAAK,CAAC,CAAC;AAAA,EACpB;AAMA,WAAS,4BAA4B,OAAO;AAE1C,WAAO;AACP,eAAW,WAAW,SAAS,CAAC,EAAE,UAAU,KAAK,eAAe,KAAK;AAAA,EACvE;AAMA,WAAS,qCAAqC;AAC5C,IAAAA,QAAO;AACP,YAAQ,gBAAgB,IAAI;AAAA,EAC9B;AAMA,WAAS,oCAAoC;AAC3C,eAAW,WAAW,SAAS,CAAC,EAAE,cAAc,OAAO;AACvD,YAAQ,cAAc;AAAA,EACxB;AAMA,WAAS,8BAA8B;AACrC,eAAW,WAAW,SAAS,CAAC,EAAE,QAAQ,OAAO;AAAA,EACnD;AAMA,WAAS,mBAAmB;AAC1B,UAAM,QAAQ,WAAW,WAAW,SAAS,CAAC;AAC9C,UAAM,KAAK,oBAAoB,MAAM,OAAO;AAC5C,WAAO;AACP,QAAI,CAACW,gBAAe,KAAK,aAAa,EAAE,GAAG;AACzC,kBAAY,EAAE,IAAI,WAAW,WAAW,SAAS,CAAC;AAAA,IACpD;AACA,eAAW,IAAI;AAAA,EACjB;AAMA,WAAS,iBAAiB;AACxB,YAAQ,uBAAuB,IAAI;AAAA,EACrC;AAMA,WAAS,yBAAyB,OAAO;AAEvC,QAAI,QAAQ,aAAa,EAAG;AAC5B,YAAQ,eAAe,KAAK,eAAe,KAAK,EAAE,MAAM;AACxD,uBAAmB;AACnB,QAAI,OAAO,QAAQ,aAAa,IAAI,GAAG;AAAA,EACzC;AAMA,WAAS,uBAAuB;AAC9B,IAAAX,QAAO;AACP,YAAQ,qBAAqB;AAAA,EAC/B;AAMA,WAAS,0BAA0B;AACjC,YAAQ,uBAAuB,IAAI;AAAA,EACrC;AAMA,WAAS,mBAAmB;AAC1B,QAAI,QAAQ,QAAQ,aAAa,IAAI,GAAG;AACxC,YAAQ,aAAa;AAAA,EACvB;AAMA,WAAS,gCAAgC,OAAO;AAC9C,YAAQ,eAAe,KAAK,eAAe,KAAK,EAAE,WAAW,CAAC,MAAM,KAAK,IAAI,CAAC;AAAA,EAChF;AAMA,WAAS,sBAAsB;AAC7B,UAAMa,SAAQ,OAAO;AACrB,uBAAmB;AACnB,QAAI,OAAO,QAAQ,aAAa,IAAI,GAAG;AACvC,IAAAR,KAAIQ,MAAK;AACT,QAAI,QAAQ,QAAQ,aAAa,IAAI,GAAG;AACxC,YAAQ,qBAAqB;AAC7B,YAAQ,aAAa;AAAA,EACvB;AAMA,WAAS,WAAW,OAAO;AACzB,IAAAR,KAAID,QAAO,KAAK,eAAe,KAAK,CAAC,CAAC;AAAA,EACxC;AAMA,WAAS,iBAAiB,OAAO;AAC/B,QAAI,QAAQ,qBAAqB,GAAG;AAClC;AAAA,IACF;AACA,QAAI,QAAQ,oBAAoB,GAAG;AACjC,cAAQ,oBAAoB;AAC5B;AAAA,IACF;AACA,QAAI,QAAQ,YAAY,GAAG;AACzB,MAAAC,KAAI,GAAG;AACP;AAAA,IACF;AACA,IAAAA,KAAID,QAAO,KAAK,eAAe,KAAK,CAAC,CAAC;AAAA,EACxC;AAMA,WAAS,oBAAoB,OAAO;AAClC,IAAAC,KAAID,QAAO,KAAK,eAAe,KAAK,CAAC,CAAC;AACtC,YAAQ,oBAAoB,IAAI;AAAA,EAClC;AAMA,WAAS,kBAAkB;AACzB,QAAI,QAAQ;AAAA,EACd;AAKA,WAAS,kBAAkB;AACzB,uBAAmB;AACnB,gBAAY;AAAA,EACd;AAKA,WAAS,aAAa;AACpB,YAAQ,cAAc;AAAA,EACxB;AAKA,WAAS,cAAc;AACrB,QAAI,SAAS,oBAAoB;AAC/B,cAAQ,gBAAgB,IAAI;AAAA,IAC9B;AAAA,EACF;AAKA,WAAS,kBAAkB;AACzB,QAAI,MAAM;AAAA,EACZ;AAKA,WAAS,gBAAgB;AACvB,QAAI,UAAU;AAAA,EAChB;AAKA,WAAS,kBAAkB;AACzB,YAAQ,cAAc,IAAI;AAC1B,QAAI,QAAQ;AAAA,EACd;AAKA,WAAS,iBAAiB;AACxB,YAAQ,YAAY;AACpB,QAAI,SAAS;AAAA,EACf;AAKA,WAAS,iBAAiB;AACxB,QAAI,OAAO;AAAA,EACb;AAKA,WAAS,eAAe;AACtB,QAAI,WAAW;AAAA,EACjB;AAKA,WAAS,sBAAsB;AAC7B,uBAAmB;AACnB,QAAI,QAAQ;AAAA,EACd;AAOA,WAAS,+BAA+B,OAAO;AAC7C,YAAQ,0BAA0B,MAAM,IAAI;AAAA,EAC9C;AAMA,WAAS,8BAA8B,OAAO;AAC5C,UAAMS,SAAQ,KAAK,eAAe,KAAK;AACvC,UAAM,UAAU,QAAQ,wBAAwB,IAAI,gCAAgCA,QAAO,QAAQ,wBAAwB,MAAM,oCAAoC,KAAK,EAAE,IAAI,8BAA8BA,MAAK;AAKnN,IAAAR,KAAID;AAAA;AAAA,MAA4B;AAAA,IAAO,CAAC;AACxC,YAAQ,wBAAwB;AAAA,EAClC;AAMA,WAAS,uBAAuB,OAAO;AACrC,UAAM,MAAM,KAAK,eAAe,KAAK;AACrC,QAAI,cAAc,YAAY,KAAK,SAAS,yBAAyB,SAAY,YAAY,IAAI,IAAI;AACrG,IAAAC,KAAID,QAAO,GAAG,CAAC;AACf,QAAI,MAAM;AAAA,EACZ;AAMA,WAAS,oBAAoB,OAAO;AAClC,UAAM,MAAM,KAAK,eAAe,KAAK;AACrC,QAAI,cAAc,YAAY,YAAY,GAAG,IAAI,IAAI;AACrD,IAAAC,KAAID,QAAO,GAAG,CAAC;AACf,QAAI,MAAM;AAAA,EACZ;AACF;AAniCA,IA+CMO,iBAQA,cACA;AAxDN;AAAA;AAwCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAMA,kBAAiB,CAAC,EAAE;AAQ1B,IAAM,eAAe;AACrB,IAAM,iBAAiB;AAAA;AAAA;;;ACjCvB,SAAS,kBAAkB,SAAS;AAClC,QAAM,eAAe,QAAQ,QAAQ,KAAK,OAAO,WAAW,gBAAgB,4BAA4B,gBAAgB;AAExH,MAAIM;AACJ,SAAO;AAGP,WAAS,2BAA2BC,OAAM;AACxC,QAAIA,UAAS,MAAM;AACjB,cAAQ,QAAQA,KAAI;AACpB;AAAA,IACF;AACA,YAAQ,MAAM,YAAY;AAC1B,YAAQ,QAAQA,KAAI;AACpB,YAAQ,KAAK,YAAY;AACzB,WAAO,aAAa,SAAS,cAAc,YAAY;AAAA,EACzD;AAGA,WAAS,iBAAiBA,OAAM;AAC9B,YAAQ,MAAM,WAAW;AACzB,WAAO,UAAUA,KAAI;AAAA,EACvB;AAGA,WAAS,UAAUA,OAAM;AACvB,UAAM,QAAQ,QAAQ,MAAM,aAAa;AAAA,MACvC,aAAa;AAAA,MACb,UAAAD;AAAA,IACF,CAAC;AACD,QAAIA,WAAU;AACZ,MAAAA,UAAS,OAAO;AAAA,IAClB;AACA,IAAAA,YAAW;AACX,WAAOE,MAAKD,KAAI;AAAA,EAClB;AAGA,WAASC,MAAKD,OAAM;AAClB,QAAIA,UAAS,MAAM;AACjB,cAAQ,KAAK,WAAW;AACxB,cAAQ,KAAK,WAAW;AACxB,cAAQ,QAAQA,KAAI;AACpB;AAAA,IACF;AACA,QAAI,mBAAmBA,KAAI,GAAG;AAC5B,cAAQ,QAAQA,KAAI;AACpB,cAAQ,KAAK,WAAW;AACxB,aAAO;AAAA,IACT;AAGA,YAAQ,QAAQA,KAAI;AACpB,WAAOC;AAAA,EACT;AACF;AA9EA,IAaaC;AAbb,IAAAC,gBAAA;AAAA;AAUA;AACA;AAEO,IAAMD,WAAU;AAAA,MACrB,UAAU;AAAA,IACZ;AAAA;AAAA;;;ACuBA,SAAS,mBAAmB,SAAS;AACnC,QAAME,QAAO;AAEb,QAAM,QAAQ,CAAC;AACf,MAAI,YAAY;AAEhB,MAAI;AAEJ,MAAI;AAEJ,MAAI;AACJ,SAAO;AAGP,WAAS,MAAMC,OAAM;AAWnB,QAAI,YAAY,MAAM,QAAQ;AAC5B,YAAM,OAAO,MAAM,SAAS;AAC5B,MAAAD,MAAK,iBAAiB,KAAK,CAAC;AAC5B,aAAO,QAAQ,QAAQ,KAAK,CAAC,EAAE,cAAc,kBAAkB,kBAAkB,EAAEC,KAAI;AAAA,IACzF;AAGA,WAAO,mBAAmBA,KAAI;AAAA,EAChC;AAGA,WAAS,iBAAiBA,OAAM;AAC9B;AAKA,QAAID,MAAK,eAAe,YAAY;AAClC,MAAAA,MAAK,eAAe,aAAa;AACjC,UAAI,WAAW;AACb,kBAAU;AAAA,MACZ;AAIA,YAAM,mBAAmBA,MAAK,OAAO;AACrC,UAAI,kBAAkB;AAEtB,UAAIE;AAGJ,aAAO,mBAAmB;AACxB,YAAIF,MAAK,OAAO,eAAe,EAAE,CAAC,MAAM,UAAUA,MAAK,OAAO,eAAe,EAAE,CAAC,EAAE,SAAS,aAAa;AACtG,UAAAE,SAAQF,MAAK,OAAO,eAAe,EAAE,CAAC,EAAE;AACxC;AAAA,QACF;AAAA,MACF;AACA,qBAAe,SAAS;AAGxB,UAAIG,SAAQ;AACZ,aAAOA,SAAQH,MAAK,OAAO,QAAQ;AACjC,QAAAA,MAAK,OAAOG,MAAK,EAAE,CAAC,EAAE,MAAM;AAAA,UAC1B,GAAGD;AAAA,QACL;AACA,QAAAC;AAAA,MACF;AAGA,aAAOH,MAAK,QAAQ,kBAAkB,GAAG,GAAGA,MAAK,OAAO,MAAM,gBAAgB,CAAC;AAG/E,MAAAA,MAAK,OAAO,SAASG;AACrB,aAAO,mBAAmBF,KAAI;AAAA,IAChC;AACA,WAAO,MAAMA,KAAI;AAAA,EACnB;AAGA,WAAS,mBAAmBA,OAAM;AAMhC,QAAI,cAAc,MAAM,QAAQ;AAI9B,UAAI,CAAC,WAAW;AACd,eAAO,kBAAkBA,KAAI;AAAA,MAC/B;AAKA,UAAI,UAAU,oBAAoB,UAAU,iBAAiB,UAAU;AACrE,eAAO,UAAUA,KAAI;AAAA,MACvB;AAOA,MAAAD,MAAK,YAAY,QAAQ,UAAU,oBAAoB,CAAC,UAAU,6BAA6B;AAAA,IACjG;AAGA,IAAAA,MAAK,iBAAiB,CAAC;AACvB,WAAO,QAAQ,MAAM,oBAAoB,sBAAsB,qBAAqB,EAAEC,KAAI;AAAA,EAC5F;AAGA,WAAS,qBAAqBA,OAAM;AAClC,QAAI,UAAW,WAAU;AACzB,mBAAe,SAAS;AACxB,WAAO,kBAAkBA,KAAI;AAAA,EAC/B;AAGA,WAAS,sBAAsBA,OAAM;AACnC,IAAAD,MAAK,OAAO,KAAKA,MAAK,IAAI,EAAE,IAAI,IAAI,cAAc,MAAM;AACxD,sBAAkBA,MAAK,IAAI,EAAE;AAC7B,WAAO,UAAUC,KAAI;AAAA,EACvB;AAGA,WAAS,kBAAkBA,OAAM;AAE/B,IAAAD,MAAK,iBAAiB,CAAC;AACvB,WAAO,QAAQ,QAAQ,oBAAoB,mBAAmB,SAAS,EAAEC,KAAI;AAAA,EAC/E;AAGA,WAAS,kBAAkBA,OAAM;AAC/B;AACA,UAAM,KAAK,CAACD,MAAK,kBAAkBA,MAAK,cAAc,CAAC;AAEvD,WAAO,kBAAkBC,KAAI;AAAA,EAC/B;AAGA,WAAS,UAAUA,OAAM;AACvB,QAAIA,UAAS,MAAM;AACjB,UAAI,UAAW,WAAU;AACzB,qBAAe,CAAC;AAChB,cAAQ,QAAQA,KAAI;AACpB;AAAA,IACF;AACA,gBAAY,aAAaD,MAAK,OAAO,KAAKA,MAAK,IAAI,CAAC;AACpD,YAAQ,MAAM,aAAa;AAAA,MACzB,YAAY;AAAA,MACZ,aAAa;AAAA,MACb,UAAU;AAAA,IACZ,CAAC;AACD,WAAO,aAAaC,KAAI;AAAA,EAC1B;AAGA,WAAS,aAAaA,OAAM;AAC1B,QAAIA,UAAS,MAAM;AACjB,mBAAa,QAAQ,KAAK,WAAW,GAAG,IAAI;AAC5C,qBAAe,CAAC;AAChB,cAAQ,QAAQA,KAAI;AACpB;AAAA,IACF;AACA,QAAI,mBAAmBA,KAAI,GAAG;AAC5B,cAAQ,QAAQA,KAAI;AACpB,mBAAa,QAAQ,KAAK,WAAW,CAAC;AAEtC,kBAAY;AACZ,MAAAD,MAAK,YAAY;AACjB,aAAO;AAAA,IACT;AACA,YAAQ,QAAQC,KAAI;AACpB,WAAO;AAAA,EACT;AAUA,WAAS,aAAa,OAAO,WAAW;AACtC,UAAM,SAASD,MAAK,YAAY,KAAK;AACrC,QAAI,UAAW,QAAO,KAAK,IAAI;AAC/B,UAAM,WAAW;AACjB,QAAI,WAAY,YAAW,OAAO;AAClC,iBAAa;AACb,cAAU,WAAW,MAAM,KAAK;AAChC,cAAU,MAAM,MAAM;AAmCtB,QAAIA,MAAK,OAAO,KAAK,MAAM,MAAM,IAAI,GAAG;AACtC,UAAIG,SAAQ,UAAU,OAAO;AAC7B,aAAOA,UAAS;AACd;AAAA;AAAA,UAEA,UAAU,OAAOA,MAAK,EAAE,CAAC,EAAE,MAAM,SAAS;AAAA,WAE1C,CAAC,UAAU,OAAOA,MAAK,EAAE,CAAC,EAAE;AAAA,UAE5B,UAAU,OAAOA,MAAK,EAAE,CAAC,EAAE,IAAI,SAAS;AAAA,UAAkB;AAGxD;AAAA,QACF;AAAA,MACF;AAIA,YAAM,mBAAmBH,MAAK,OAAO;AACrC,UAAI,kBAAkB;AAEtB,UAAI;AAEJ,UAAIE;AAGJ,aAAO,mBAAmB;AACxB,YAAIF,MAAK,OAAO,eAAe,EAAE,CAAC,MAAM,UAAUA,MAAK,OAAO,eAAe,EAAE,CAAC,EAAE,SAAS,aAAa;AACtG,cAAI,MAAM;AACR,YAAAE,SAAQF,MAAK,OAAO,eAAe,EAAE,CAAC,EAAE;AACxC;AAAA,UACF;AACA,iBAAO;AAAA,QACT;AAAA,MACF;AACA,qBAAe,SAAS;AAGxB,MAAAG,SAAQ;AACR,aAAOA,SAAQH,MAAK,OAAO,QAAQ;AACjC,QAAAA,MAAK,OAAOG,MAAK,EAAE,CAAC,EAAE,MAAM;AAAA,UAC1B,GAAGD;AAAA,QACL;AACA,QAAAC;AAAA,MACF;AAGA,aAAOH,MAAK,QAAQ,kBAAkB,GAAG,GAAGA,MAAK,OAAO,MAAM,gBAAgB,CAAC;AAG/E,MAAAA,MAAK,OAAO,SAASG;AAAA,IACvB;AAAA,EACF;AAQA,WAAS,eAAe,MAAM;AAC5B,QAAIA,SAAQ,MAAM;AAGlB,WAAOA,WAAU,MAAM;AACrB,YAAM,QAAQ,MAAMA,MAAK;AACzB,MAAAH,MAAK,iBAAiB,MAAM,CAAC;AAC7B,YAAM,CAAC,EAAE,KAAK,KAAKA,OAAM,OAAO;AAAA,IAClC;AACA,UAAM,SAAS;AAAA,EACjB;AACA,WAAS,YAAY;AACnB,cAAU,MAAM,CAAC,IAAI,CAAC;AACtB,iBAAa;AACb,gBAAY;AACZ,IAAAA,MAAK,eAAe,aAAa;AAAA,EACnC;AACF;AAQA,SAAS,kBAAkB,SAASI,KAAI,KAAK;AAG3C,SAAO,aAAa,SAAS,QAAQ,QAAQ,KAAK,OAAO,WAAW,UAAUA,KAAI,GAAG,GAAG,cAAc,KAAK,OAAO,WAAW,QAAQ,KAAK,SAAS,cAAc,IAAI,SAAY,CAAC;AACpL;AAzWA,IAuBaC,WAKP;AA5BN;AAAA;AAmBA;AACA;AACA;AAEO,IAAMA,YAAW;AAAA,MACtB,UAAU;AAAA,IACZ;AAGA,IAAM,qBAAqB;AAAA,MACzB,UAAU;AAAA,IACZ;AAAA;AAAA;;;ACPA,SAAS,eAAe,SAAS;AAC/B,QAAMC,QAAO;AACb,QAAMC,WAAU,QAAQ;AAAA;AAAA,IAExB;AAAA,IAAW;AAAA;AAAA,IAEX,QAAQ,QAAQ,KAAK,OAAO,WAAW,aAAa,gBAAgB,aAAa,SAAS,QAAQ,QAAQ,KAAK,OAAO,WAAW,MAAM,gBAAgB,QAAQ,QAAQ,SAAS,cAAc,CAAC,GAAG,YAAY,CAAC;AAAA,EAAC;AAChN,SAAOA;AAGP,WAAS,cAAcC,OAAM;AAC3B,QAAIA,UAAS,MAAM;AACjB,cAAQ,QAAQA,KAAI;AACpB;AAAA,IACF;AACA,YAAQ,MAAM,iBAAiB;AAC/B,YAAQ,QAAQA,KAAI;AACpB,YAAQ,KAAK,iBAAiB;AAC9B,IAAAF,MAAK,mBAAmB;AACxB,WAAOC;AAAA,EACT;AAGA,WAAS,eAAeC,OAAM;AAC5B,QAAIA,UAAS,MAAM;AACjB,cAAQ,QAAQA,KAAI;AACpB;AAAA,IACF;AACA,YAAQ,MAAM,YAAY;AAC1B,YAAQ,QAAQA,KAAI;AACpB,YAAQ,KAAK,YAAY;AACzB,IAAAF,MAAK,mBAAmB;AACxB,WAAOC;AAAA,EACT;AACF;AAzDA,IAaa;AAbb;AAAA;AASA;AACA;AACA;AAEO,IAAM,OAAO;AAAA,MAClB,UAAU;AAAA,IACZ;AAAA;AAAA;;;ACQA,SAAS,kBAAkB,OAAO;AAChC,SAAO;AAAA,IACL,YAAY,eAAe,UAAU,SAAS,yBAAyB,MAAS;AAAA,IAChF,UAAU;AAAA,EACZ;AAOA,WAAS,eAAe,SAAS;AAC/B,UAAME,QAAO;AACb,UAAMC,cAAa,KAAK,OAAO,WAAW,KAAK;AAC/C,UAAMC,QAAO,QAAQ,QAAQD,aAAY,OAAO,OAAO;AACvD,WAAO;AAGP,aAAS,MAAME,OAAM;AACnB,aAAO,QAAQA,KAAI,IAAID,MAAKC,KAAI,IAAI,QAAQA,KAAI;AAAA,IAClD;AAGA,aAAS,QAAQA,OAAM;AACrB,UAAIA,UAAS,MAAM;AACjB,gBAAQ,QAAQA,KAAI;AACpB;AAAA,MACF;AACA,cAAQ,MAAM,MAAM;AACpB,cAAQ,QAAQA,KAAI;AACpB,aAAOC;AAAA,IACT;AAGA,aAASA,MAAKD,OAAM;AAClB,UAAI,QAAQA,KAAI,GAAG;AACjB,gBAAQ,KAAK,MAAM;AACnB,eAAOD,MAAKC,KAAI;AAAA,MAClB;AAGA,cAAQ,QAAQA,KAAI;AACpB,aAAOC;AAAA,IACT;AAQA,aAAS,QAAQD,OAAM;AACrB,UAAIA,UAAS,MAAM;AACjB,eAAO;AAAA,MACT;AACA,YAAME,QAAOJ,YAAWE,KAAI;AAC5B,UAAIG,SAAQ;AACZ,UAAID,OAAM;AAGR,eAAO,EAAEC,SAAQD,MAAK,QAAQ;AAC5B,gBAAM,OAAOA,MAAKC,MAAK;AACvB,cAAI,CAAC,KAAK,YAAY,KAAK,SAAS,KAAKN,OAAMA,MAAK,QAAQ,GAAG;AAC7D,mBAAO;AAAA,UACT;AAAA,QACF;AAAA,MACF;AACA,aAAO;AAAA,IACT;AAAA,EACF;AACF;AAQA,SAAS,eAAe,eAAe;AACrC,SAAO;AAGP,WAAS,eAAe,QAAQO,UAAS;AACvC,QAAID,SAAQ;AAEZ,QAAI;AAIJ,WAAO,EAAEA,UAAS,OAAO,QAAQ;AAC/B,UAAI,UAAU,QAAW;AACvB,YAAI,OAAOA,MAAK,KAAK,OAAOA,MAAK,EAAE,CAAC,EAAE,SAAS,QAAQ;AACrD,kBAAQA;AACR,UAAAA;AAAA,QACF;AAAA,MACF,WAAW,CAAC,OAAOA,MAAK,KAAK,OAAOA,MAAK,EAAE,CAAC,EAAE,SAAS,QAAQ;AAE7D,YAAIA,WAAU,QAAQ,GAAG;AACvB,iBAAO,KAAK,EAAE,CAAC,EAAE,MAAM,OAAOA,SAAQ,CAAC,EAAE,CAAC,EAAE;AAC5C,iBAAO,OAAO,QAAQ,GAAGA,SAAQ,QAAQ,CAAC;AAC1C,UAAAA,SAAQ,QAAQ;AAAA,QAClB;AACA,gBAAQ;AAAA,MACV;AAAA,IACF;AACA,WAAO,gBAAgB,cAAc,QAAQC,QAAO,IAAI;AAAA,EAC1D;AACF;AAaA,SAAS,uBAAuB,QAAQA,UAAS;AAC/C,MAAI,aAAa;AAEjB,SAAO,EAAE,cAAc,OAAO,QAAQ;AACpC,SAAK,eAAe,OAAO,UAAU,OAAO,UAAU,EAAE,CAAC,EAAE,SAAS,iBAAiB,OAAO,aAAa,CAAC,EAAE,CAAC,EAAE,SAAS,QAAQ;AAC9H,YAAMH,QAAO,OAAO,aAAa,CAAC,EAAE,CAAC;AACrC,YAAM,SAASG,SAAQ,YAAYH,KAAI;AACvC,UAAIE,SAAQ,OAAO;AACnB,UAAI,cAAc;AAClB,UAAI,OAAO;AAEX,UAAI;AACJ,aAAOA,UAAS;AACd,cAAM,QAAQ,OAAOA,MAAK;AAC1B,YAAI,OAAO,UAAU,UAAU;AAC7B,wBAAc,MAAM;AACpB,iBAAO,MAAM,WAAW,cAAc,CAAC,MAAM,IAAI;AAC/C;AACA;AAAA,UACF;AACA,cAAI,YAAa;AACjB,wBAAc;AAAA,QAChB,WAES,UAAU,IAAI;AACrB,iBAAO;AACP;AAAA,QACF,WAAW,UAAU,IAAI;AAAA,QAEzB,OAAO;AAEL,UAAAA;AACA;AAAA,QACF;AAAA,MACF;AAGA,UAAIC,SAAQ,4BAA4B,eAAe,OAAO,QAAQ;AACpE,eAAO;AAAA,MACT;AACA,UAAI,MAAM;AACR,cAAM,QAAQ;AAAA,UACZ,MAAM,eAAe,OAAO,UAAU,QAAQ,OAAO,IAAI,eAAe;AAAA,UACxE,OAAO;AAAA,YACL,cAAcD,SAAQ,cAAcF,MAAK,MAAM,eAAe;AAAA,YAC9D,QAAQA,MAAK,MAAM,SAASE;AAAA,YAC5B,MAAMF,MAAK,IAAI;AAAA,YACf,QAAQA,MAAK,IAAI,SAAS;AAAA,YAC1B,QAAQA,MAAK,IAAI,SAAS;AAAA,UAC5B;AAAA,UACA,KAAK;AAAA,YACH,GAAGA,MAAK;AAAA,UACV;AAAA,QACF;AACA,QAAAA,MAAK,MAAM;AAAA,UACT,GAAG,MAAM;AAAA,QACX;AACA,YAAIA,MAAK,MAAM,WAAWA,MAAK,IAAI,QAAQ;AACzC,iBAAO,OAAOA,OAAM,KAAK;AAAA,QAC3B,OAAO;AACL,iBAAO,OAAO,YAAY,GAAG,CAAC,SAAS,OAAOG,QAAO,GAAG,CAAC,QAAQ,OAAOA,QAAO,CAAC;AAChF,wBAAc;AAAA,QAChB;AAAA,MACF;AACA;AAAA,IACF;AAAA,EACF;AACA,SAAO;AACT;AAnNA,IAWa,UAGA,QACAL;AAfb,IAAAM,aAAA;AAAA;AAWO,IAAM,WAAW;AAAA,MACtB,YAAY,eAAe;AAAA,IAC7B;AACO,IAAM,SAAS,kBAAkB,QAAQ;AACzC,IAAMN,QAAO,kBAAkB,MAAM;AAAA;AAAA;;;ACf5C;AAAA;AAAA;AAAA;AAAA;AAAA,kBAAAO;AAAA,EAAA,YAAAC;AAAA,EAAA;AAAA;AAAA,gBAAAC;AAAA,EAAA,YAAAC;AAAA;AAAA,IAQaH,WAkBA,gBAKA,aAOAC,OAYAC,SAMAC,OAgBA,YAKA,kBAKA;AAlFb;AAAA;AAIA;AACA,IAAAC;AAGO,IAAMJ,YAAW;AAAA,MACtB,CAAC,EAAE,GAAGK;AAAA,MACN,CAAC,EAAE,GAAGA;AAAA,MACN,CAAC,EAAE,GAAGA;AAAA,MACN,CAAC,EAAE,GAAGA;AAAA,MACN,CAAC,EAAE,GAAGA;AAAA,MACN,CAAC,EAAE,GAAGA;AAAA,MACN,CAAC,EAAE,GAAGA;AAAA,MACN,CAAC,EAAE,GAAGA;AAAA,MACN,CAAC,EAAE,GAAGA;AAAA,MACN,CAAC,EAAE,GAAGA;AAAA,MACN,CAAC,EAAE,GAAGA;AAAA,MACN,CAAC,EAAE,GAAGA;AAAA,MACN,CAAC,EAAE,GAAGA;AAAA,MACN,CAAC,EAAE,GAAG;AAAA,IACR;AAGO,IAAM,iBAAiB;AAAA,MAC5B,CAAC,EAAE,GAAGC;AAAA,IACR;AAGO,IAAM,cAAc;AAAA,MACzB,CAAC,EAAE,GAAG;AAAA,MACN,CAAC,EAAE,GAAG;AAAA,MACN,CAAC,EAAE,GAAG;AAAA,IACR;AAGO,IAAML,QAAO;AAAA,MAClB,CAAC,EAAE,GAAG;AAAA,MACN,CAAC,EAAE,GAAGM;AAAA,MACN,CAAC,EAAE,GAAG,CAAC,iBAAiBA,cAAa;AAAA,MACrC,CAAC,EAAE,GAAG;AAAA,MACN,CAAC,EAAE,GAAG;AAAA,MACN,CAAC,EAAE,GAAGA;AAAA,MACN,CAAC,EAAE,GAAG;AAAA,MACN,CAAC,GAAG,GAAG;AAAA,IACT;AAGO,IAAML,UAAS;AAAA,MACpB,CAAC,EAAE,GAAG;AAAA,MACN,CAAC,EAAE,GAAG;AAAA,IACR;AAGO,IAAMC,QAAO;AAAA,MAClB,CAAC,EAAE,GAAG;AAAA,MACN,CAAC,EAAE,GAAG;AAAA,MACN,CAAC,EAAE,GAAG;AAAA,MACN,CAAC,EAAE,GAAG;AAAA,MACN,CAAC,EAAE,GAAG;AAAA,MACN,CAAC,EAAE,GAAG;AAAA,MACN,CAAC,EAAE,GAAG,CAAC,UAAU,QAAQ;AAAA,MACzB,CAAC,EAAE,GAAG;AAAA,MACN,CAAC,EAAE,GAAG,CAAC,iBAAiB,eAAe;AAAA,MACvC,CAAC,EAAE,GAAG;AAAA,MACN,CAAC,EAAE,GAAG;AAAA,MACN,CAAC,EAAE,GAAG;AAAA,IACR;AAGO,IAAM,aAAa;AAAA,MACxB,MAAM,CAAC,WAAW,QAAW;AAAA,IAC/B;AAGO,IAAM,mBAAmB;AAAA,MAC9B,MAAM,CAAC,IAAI,EAAE;AAAA,IACf;AAGO,IAAM,UAAU;AAAA,MACrB,MAAM,CAAC;AAAA,IACT;AAAA;AAAA;;;ACxBO,SAAS,gBAAgB,QAAQ,YAAYK,OAAM;AAExD,MAAIC,SAAQ;AAAA,IACV,cAAc;AAAA,IACd,QAAQ;AAAA,IACR,MAAMD,SAAQA,MAAK,QAAQ;AAAA,IAC3B,QAAQA,SAAQA,MAAK,UAAU;AAAA,IAC/B,QAAQA,SAAQA,MAAK,UAAU;AAAA,EACjC;AAEA,QAAM,cAAc,CAAC;AAErB,QAAM,uBAAuB,CAAC;AAE9B,MAAI,SAAS,CAAC;AAEd,MAAI,QAAQ,CAAC;AAEb,MAAI,WAAW;AAOf,QAAM,UAAU;AAAA,IACd,SAAS,iBAAiB,qBAAqB;AAAA,IAC/C,OAAO,iBAAiB,iBAAiB;AAAA,IACzC;AAAA,IACA;AAAA,IACA,MAAAE;AAAA,IACA,WAAW,iBAAiB,mBAAmB;AAAA,MAC7C,WAAW;AAAA,IACb,CAAC;AAAA,EACH;AAOA,QAAMC,WAAU;AAAA,IACd,MAAM;AAAA,IACN,gBAAgB,CAAC;AAAA,IACjB;AAAA,IACA,QAAQ,CAAC;AAAA,IACT,KAAAC;AAAA,IACA;AAAA,IACA,UAAU;AAAA,IACV;AAAA,IACA;AAAA,IACA;AAAA,EACF;AAOA,MAAI,QAAQ,WAAW,SAAS,KAAKD,UAAS,OAAO;AAOrD,MAAI;AACJ,MAAI,WAAW,YAAY;AACzB,yBAAqB,KAAK,UAAU;AAAA,EACtC;AACA,SAAOA;AAGP,WAAS,MAAM,OAAO;AACpB,aAAS,KAAK,QAAQ,KAAK;AAC3B,SAAK;AAGL,QAAI,OAAO,OAAO,SAAS,CAAC,MAAM,MAAM;AACtC,aAAO,CAAC;AAAA,IACV;AACA,cAAU,YAAY,CAAC;AAGvB,IAAAA,SAAQ,SAAS,WAAW,sBAAsBA,SAAQ,QAAQA,QAAO;AACzE,WAAOA,SAAQ;AAAA,EACjB;AAOA,WAAS,eAAe,OAAO,YAAY;AACzC,WAAO,gBAAgB,YAAY,KAAK,GAAG,UAAU;AAAA,EACvD;AAGA,WAAS,YAAY,OAAO;AAC1B,WAAO,YAAY,QAAQ,KAAK;AAAA,EAClC;AAGA,WAASC,OAAM;AAEb,UAAM;AAAA,MACJ;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IACF,IAAIH;AACJ,WAAO;AAAA,MACL;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IACF;AAAA,EACF;AAGA,WAAS,WAAWI,QAAO;AACzB,gBAAYA,OAAM,IAAI,IAAIA,OAAM;AAChC,4BAAwB;AAAA,EAC1B;AAiBA,WAAS,OAAO;AAEd,QAAI;AACJ,WAAOJ,OAAM,SAAS,OAAO,QAAQ;AACnC,YAAM,QAAQ,OAAOA,OAAM,MAAM;AAGjC,UAAI,OAAO,UAAU,UAAU;AAC7B,qBAAaA,OAAM;AACnB,YAAIA,OAAM,eAAe,GAAG;AAC1B,UAAAA,OAAM,eAAe;AAAA,QACvB;AACA,eAAOA,OAAM,WAAW,cAAcA,OAAM,eAAe,MAAM,QAAQ;AACvE,aAAG,MAAM,WAAWA,OAAM,YAAY,CAAC;AAAA,QACzC;AAAA,MACF,OAAO;AACL,WAAG,KAAK;AAAA,MACV;AAAA,IACF;AAAA,EACF;AAUA,WAAS,GAAGK,OAAM;AAChB,eAAW;AACX,mBAAeA;AACf,YAAQ,MAAMA,KAAI;AAAA,EACpB;AAGA,WAAS,QAAQA,OAAM;AACrB,QAAI,mBAAmBA,KAAI,GAAG;AAC5B,MAAAL,OAAM;AACN,MAAAA,OAAM,SAAS;AACf,MAAAA,OAAM,UAAUK,UAAS,KAAK,IAAI;AAClC,8BAAwB;AAAA,IAC1B,WAAWA,UAAS,IAAI;AACtB,MAAAL,OAAM;AACN,MAAAA,OAAM;AAAA,IACR;AAGA,QAAIA,OAAM,eAAe,GAAG;AAC1B,MAAAA,OAAM;AAAA,IACR,OAAO;AACL,MAAAA,OAAM;AAGN,UAAIA,OAAM;AAAA;AAAA;AAAA,MAIV,OAAOA,OAAM,MAAM,EAAE,QAAQ;AAC3B,QAAAA,OAAM,eAAe;AACrB,QAAAA,OAAM;AAAA,MACR;AAAA,IACF;AAGA,IAAAE,SAAQ,WAAWG;AAGnB,eAAW;AAAA,EACb;AAGA,WAAS,MAAMC,OAAM,QAAQ;AAG3B,UAAM,QAAQ,UAAU,CAAC;AACzB,UAAM,OAAOA;AACb,UAAM,QAAQH,KAAI;AAClB,IAAAD,SAAQ,OAAO,KAAK,CAAC,SAAS,OAAOA,QAAO,CAAC;AAC7C,UAAM,KAAK,KAAK;AAChB,WAAO;AAAA,EACT;AAGA,WAASD,MAAKK,OAAM;AAClB,UAAM,QAAQ,MAAM,IAAI;AACxB,UAAM,MAAMH,KAAI;AAChB,IAAAD,SAAQ,OAAO,KAAK,CAAC,QAAQ,OAAOA,QAAO,CAAC;AAC5C,WAAO;AAAA,EACT;AAOA,WAAS,sBAAsB,WAAW,MAAM;AAC9C,cAAU,WAAW,KAAK,IAAI;AAAA,EAChC;AAOA,WAAS,kBAAkBK,IAAG,MAAM;AAClC,SAAK,QAAQ;AAAA,EACf;AAUA,WAAS,iBAAiB,UAAU,QAAQ;AAC1C,WAAO;AAeP,aAAS,KAAKC,aAAY,aAAa,YAAY;AAEjD,UAAI;AAEJ,UAAI;AAEJ,UAAI;AAEJ,UAAI;AACJ,aAAO,MAAM,QAAQA,WAAU;AAAA;AAAA,QAC/B,uBAAuBA,WAAU;AAAA,UAAI,cAAcA;AAAA;AAAA,QAEnD,uBAAuB;AAAA;AAAA,UAA0BA;AAAA,QAAW,CAAC;AAAA,UAAI,sBAAsBA,WAAU;AAUjG,eAAS,sBAAsBC,MAAK;AAClC,eAAO;AAGP,iBAAS,MAAMJ,OAAM;AACnB,gBAAM,OAAOA,UAAS,QAAQI,KAAIJ,KAAI;AACtC,gBAAMK,OAAML,UAAS,QAAQI,KAAI;AACjC,gBAAME,QAAO;AAAA;AAAA;AAAA,YAGb,GAAI,MAAM,QAAQ,IAAI,IAAI,OAAO,OAAO,CAAC,IAAI,IAAI,CAAC;AAAA,YAAI,GAAI,MAAM,QAAQD,IAAG,IAAIA,OAAMA,OAAM,CAACA,IAAG,IAAI,CAAC;AAAA,UAAE;AACtG,iBAAO,uBAAuBC,KAAI,EAAEN,KAAI;AAAA,QAC1C;AAAA,MACF;AAUA,eAAS,uBAAuBM,OAAM;AACpC,2BAAmBA;AACnB,yBAAiB;AACjB,YAAIA,MAAK,WAAW,GAAG;AACrB,iBAAO;AAAA,QACT;AACA,eAAO,gBAAgBA,MAAK,cAAc,CAAC;AAAA,MAC7C;AAUA,eAAS,gBAAgB,WAAW;AAClC,eAAO;AAGP,iBAAS,MAAMN,OAAM;AAKnB,iBAAO,MAAM;AACb,6BAAmB;AACnB,cAAI,CAAC,UAAU,SAAS;AACtB,YAAAH,SAAQ,mBAAmB;AAAA,UAC7B;AAIA,cAAI,UAAU,QAAQA,SAAQ,OAAO,WAAW,QAAQ,KAAK,SAAS,UAAU,IAAI,GAAG;AACrF,mBAAO,IAAIG,KAAI;AAAA,UACjB;AACA,iBAAO,UAAU,SAAS;AAAA;AAAA;AAAA;AAAA,YAI1B,SAAS,OAAO,OAAO,OAAO,OAAOH,QAAO,GAAG,MAAM,IAAIA;AAAA,YAAS;AAAA,YAASU;AAAA,YAAI;AAAA,UAAG,EAAEP,KAAI;AAAA,QAC1F;AAAA,MACF;AAGA,eAASO,IAAGP,OAAM;AAChB,mBAAW;AACX,iBAAS,kBAAkB,IAAI;AAC/B,eAAO;AAAA,MACT;AAGA,eAAS,IAAIA,OAAM;AACjB,mBAAW;AACX,aAAK,QAAQ;AACb,YAAI,EAAE,iBAAiB,iBAAiB,QAAQ;AAC9C,iBAAO,gBAAgB,iBAAiB,cAAc,CAAC;AAAA,QACzD;AACA,eAAO;AAAA,MACT;AAAA,IACF;AAAA,EACF;AAUA,WAAS,UAAU,WAAWN,OAAM;AAClC,QAAI,UAAU,cAAc,CAAC,qBAAqB,SAAS,SAAS,GAAG;AACrE,2BAAqB,KAAK,SAAS;AAAA,IACrC;AACA,QAAI,UAAU,SAAS;AACrB,aAAOG,SAAQ,QAAQH,OAAMG,SAAQ,OAAO,SAASH,OAAM,UAAU,QAAQG,SAAQ,OAAO,MAAMH,KAAI,GAAGG,QAAO,CAAC;AAAA,IACnH;AACA,QAAI,UAAU,WAAW;AACvB,MAAAA,SAAQ,SAAS,UAAU,UAAUA,SAAQ,QAAQA,QAAO;AAAA,IAC9D;AAAA,EACF;AAQA,WAAS,QAAQ;AACf,UAAM,aAAaC,KAAI;AACvB,UAAM,gBAAgBD,SAAQ;AAC9B,UAAM,wBAAwBA,SAAQ;AACtC,UAAM,mBAAmBA,SAAQ,OAAO;AACxC,UAAM,aAAa,MAAM,KAAK,KAAK;AACnC,WAAO;AAAA,MACL,MAAM;AAAA,MACN;AAAA,IACF;AAQA,aAAS,UAAU;AACjB,MAAAF,SAAQ;AACR,MAAAE,SAAQ,WAAW;AACnB,MAAAA,SAAQ,mBAAmB;AAC3B,MAAAA,SAAQ,OAAO,SAAS;AACxB,cAAQ;AACR,8BAAwB;AAAA,IAC1B;AAAA,EACF;AASA,WAAS,0BAA0B;AACjC,QAAIF,OAAM,QAAQ,eAAeA,OAAM,SAAS,GAAG;AACjD,MAAAA,OAAM,SAAS,YAAYA,OAAM,IAAI;AACrC,MAAAA,OAAM,UAAU,YAAYA,OAAM,IAAI,IAAI;AAAA,IAC5C;AAAA,EACF;AACF;AAYA,SAAS,YAAY,QAAQ,OAAO;AAClC,QAAM,aAAa,MAAM,MAAM;AAC/B,QAAM,mBAAmB,MAAM,MAAM;AACrC,QAAM,WAAW,MAAM,IAAI;AAC3B,QAAM,iBAAiB,MAAM,IAAI;AAEjC,MAAI;AACJ,MAAI,eAAe,UAAU;AAE3B,WAAO,CAAC,OAAO,UAAU,EAAE,MAAM,kBAAkB,cAAc,CAAC;AAAA,EACpE,OAAO;AACL,WAAO,OAAO,MAAM,YAAY,QAAQ;AACxC,QAAI,mBAAmB,IAAI;AACzB,YAAMa,QAAO,KAAK,CAAC;AACnB,UAAI,OAAOA,UAAS,UAAU;AAC5B,aAAK,CAAC,IAAIA,MAAK,MAAM,gBAAgB;AAAA,MAEvC,OAAO;AACL,aAAK,MAAM;AAAA,MACb;AAAA,IACF;AACA,QAAI,iBAAiB,GAAG;AAEtB,WAAK,KAAK,OAAO,QAAQ,EAAE,MAAM,GAAG,cAAc,CAAC;AAAA,IACrD;AAAA,EACF;AACA,SAAO;AACT;AAYA,SAAS,gBAAgB,QAAQ,YAAY;AAC3C,MAAIC,SAAQ;AAEZ,QAAM,SAAS,CAAC;AAEhB,MAAI;AACJ,SAAO,EAAEA,SAAQ,OAAO,QAAQ;AAC9B,UAAM,QAAQ,OAAOA,MAAK;AAE1B,QAAIV;AACJ,QAAI,OAAO,UAAU,UAAU;AAC7B,MAAAA,SAAQ;AAAA,IACV,MAAO,SAAQ,OAAO;AAAA,MACpB,KAAK,IACH;AACE,QAAAA,SAAQ;AACR;AAAA,MACF;AAAA,MACF,KAAK,IACH;AACE,QAAAA,SAAQ;AACR;AAAA,MACF;AAAA,MACF,KAAK,IACH;AACE,QAAAA,SAAQ;AACR;AAAA,MACF;AAAA,MACF,KAAK,IACH;AACE,QAAAA,SAAQ,aAAa,MAAM;AAC3B;AAAA,MACF;AAAA,MACF,KAAK,IACH;AACE,YAAI,CAAC,cAAc,MAAO;AAC1B,QAAAA,SAAQ;AACR;AAAA,MACF;AAAA,MACF,SACE;AAEE,QAAAA,SAAQ,OAAO,aAAa,KAAK;AAAA,MACnC;AAAA,IACJ;AACA,YAAQ,UAAU;AAClB,WAAO,KAAKA,MAAK;AAAA,EACnB;AACA,SAAO,OAAO,KAAK,EAAE;AACvB;AAlmBA;AAAA;AAuCA;AACA;AACA;AAAA;AAAA;;;ACjBO,SAASW,OAAM,SAAS;AAC7B,QAAM,WAAW,WAAW,CAAC;AAC7B,QAAMC;AAAA;AAAA,IACN,kBAAkB,CAAC,oBAAmB,GAAI,SAAS,cAAc,CAAC,CAAE,CAAC;AAAA;AAGrE,QAAM,SAAS;AAAA,IACb,YAAAA;AAAA,IACA,SAASC,QAAOC,QAAO;AAAA,IACvB,SAAS,CAAC;AAAA,IACV,UAAUD,QAAOE,SAAQ;AAAA,IACzB,MAAMF,QAAO,IAAI;AAAA,IACjB,MAAM,CAAC;AAAA,IACP,QAAQA,QAAO,MAAM;AAAA,IACrB,MAAMA,QAAOG,KAAI;AAAA,EACnB;AACA,SAAO;AAQP,WAASH,QAAOI,UAAS;AACvB,WAAO;AAEP,aAAS,QAAQC,OAAM;AACrB,aAAO,gBAAgB,QAAQD,UAASC,KAAI;AAAA,IAC9C;AAAA,EACF;AACF;AAvDA,IAAAC,cAAA;AAAA;AAUA;AACA,IAAAC;AACA;AACA;AACA,IAAAC;AACA;AACA;AAAA;AAAA;;;ACJO,SAAS,YAAY,QAAQ;AAClC,SAAO,CAAC,YAAY,MAAM,GAAG;AAAA,EAE7B;AACA,SAAO;AACT;AAjBA;AAAA;AAIA;AAAA;AAAA;;;ACmBO,SAAS,aAAa;AAC3B,MAAI,SAAS;AACb,MAAIC,UAAS;AAEb,MAAI,QAAQ;AAEZ,MAAI;AACJ,SAAO;AAIP,WAAS,aAAaC,QAAO,UAAUC,MAAK;AAE1C,UAAM,SAAS,CAAC;AAEhB,QAAIC;AAEJ,QAAIC;AAEJ,QAAI;AAEJ,QAAI;AAEJ,QAAIC;AACJ,IAAAJ,SAAQD,WAAU,OAAOC,WAAU,WAAWA,OAAM,SAAS,IAAI,IAAI,YAAY,YAAY,MAAS,EAAE,OAAOA,MAAK;AACpH,oBAAgB;AAChB,IAAAD,UAAS;AACT,QAAI,OAAO;AAET,UAAIC,OAAM,WAAW,CAAC,MAAM,OAAO;AACjC;AAAA,MACF;AACA,cAAQ;AAAA,IACV;AACA,WAAO,gBAAgBA,OAAM,QAAQ;AACnC,aAAO,YAAY;AACnB,MAAAE,SAAQ,OAAO,KAAKF,MAAK;AACzB,oBAAcE,UAASA,OAAM,UAAU,SAAYA,OAAM,QAAQF,OAAM;AACvE,MAAAI,QAAOJ,OAAM,WAAW,WAAW;AACnC,UAAI,CAACE,QAAO;AACV,QAAAH,UAASC,OAAM,MAAM,aAAa;AAClC;AAAA,MACF;AACA,UAAII,UAAS,MAAM,kBAAkB,eAAe,kBAAkB;AACpE,eAAO,KAAK,EAAE;AACd,2BAAmB;AAAA,MACrB,OAAO;AACL,YAAI,kBAAkB;AACpB,iBAAO,KAAK,EAAE;AACd,6BAAmB;AAAA,QACrB;AACA,YAAI,gBAAgB,aAAa;AAC/B,iBAAO,KAAKJ,OAAM,MAAM,eAAe,WAAW,CAAC;AACnD,oBAAU,cAAc;AAAA,QAC1B;AACA,gBAAQI,OAAM;AAAA,UACZ,KAAK,GACH;AACE,mBAAO,KAAK,KAAK;AACjB;AACA;AAAA,UACF;AAAA,UACF,KAAK,GACH;AACE,YAAAD,QAAO,KAAK,KAAK,SAAS,CAAC,IAAI;AAC/B,mBAAO,KAAK,EAAE;AACd,mBAAO,WAAWA,MAAM,QAAO,KAAK,EAAE;AACtC;AAAA,UACF;AAAA,UACF,KAAK,IACH;AACE,mBAAO,KAAK,EAAE;AACd,qBAAS;AACT;AAAA,UACF;AAAA,UACF,SACE;AACE,+BAAmB;AACnB,qBAAS;AAAA,UACX;AAAA,QACJ;AAAA,MACF;AACA,sBAAgB,cAAc;AAAA,IAChC;AACA,QAAIF,MAAK;AACP,UAAI,iBAAkB,QAAO,KAAK,EAAE;AACpC,UAAIF,QAAQ,QAAO,KAAKA,OAAM;AAC9B,aAAO,KAAK,IAAI;AAAA,IAClB;AACA,WAAO;AAAA,EACT;AACF;AAlHA,IAiBM;AAjBN;AAAA;AAiBA,IAAM,SAAS;AAAA;AAAA;;;ACoCR,SAAS,UAAUM,QAAO,UAAU,SAAS;AAClD,MAAI,OAAO,aAAa,UAAU;AAChC,cAAU;AACV,eAAW;AAAA,EACb;AACA,SAAO,QAAQ,OAAO,EAAE,YAAYC,OAAM,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,EAAED,QAAO,UAAU,IAAI,CAAC,CAAC,CAAC;AAC3G;AA3DA;AAAA;AAQA;AACA,IAAAE;AACA;AACA;AACA;AACA,IAAAA;AACA;AACA;AAAA;AAAA;;;AC0DO,SAAS,aAAaC,QAAO,UAAU,SAAS;AACrD,MAAI,YAAY,OAAO,aAAa,UAAU;AAC5C,cAAU;AACV,eAAW;AAAA,EACb;AACA,SAAO,SAAS,OAAO,EAAE,YAAYC,OAAM,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,EAAED,QAAO,UAAU,IAAI,CAAC,CAAC,CAAC;AAC5G;AAOA,SAAS,SAAS,SAAS;AAEzB,QAAME,UAAS;AAAA,IACb,YAAY,CAAC;AAAA,IACb,gBAAgB,CAAC,YAAY,YAAY,WAAW,aAAa,QAAQ;AAAA,IACzE,OAAO;AAAA,MACL,UAAUC,QAAOC,KAAI;AAAA,MACrB,kBAAkB;AAAA,MAClB,eAAe;AAAA,MACf,YAAYD,QAAOE,QAAO;AAAA,MAC1B,YAAYF,QAAOG,WAAU;AAAA,MAC7B,iBAAiB;AAAA,MACjB,oBAAoB;AAAA,MACpB,YAAYH,QAAO,QAAQ;AAAA,MAC3B,qBAAqBI;AAAA,MACrB,qBAAqBA;AAAA,MACrB,cAAcJ,QAAO,UAAUI,OAAM;AAAA,MACrC,UAAUJ,QAAOK,WAAUD,OAAM;AAAA,MACjC,cAAc;AAAA,MACd,MAAM;AAAA,MACN,eAAe;AAAA,MACf,YAAYJ,QAAOM,WAAU;AAAA,MAC7B,6BAA6BF;AAAA,MAC7B,uBAAuBA;AAAA,MACvB,uBAAuBA;AAAA,MACvB,UAAUJ,QAAOO,SAAQ;AAAA,MACzB,iBAAiBP,QAAOQ,UAAS;AAAA,MACjC,mBAAmBR,QAAOQ,UAAS;AAAA,MACnC,UAAUR,QAAOS,OAAML,OAAM;AAAA,MAC7B,cAAc;AAAA,MACd,UAAUJ,QAAOS,OAAML,OAAM;AAAA,MAC7B,cAAc;AAAA,MACd,OAAOJ,QAAOU,MAAK;AAAA,MACnB,OAAON;AAAA,MACP,MAAMJ,QAAOC,KAAI;AAAA,MACjB,UAAUD,QAAOW,SAAQ;AAAA,MACzB,eAAe;AAAA,MACf,aAAaX,QAAOY,OAAM,kBAAkB;AAAA,MAC5C,eAAeZ,QAAOY,KAAI;AAAA,MAC1B,WAAWZ,QAAOa,UAAS;AAAA,MAC3B,WAAW;AAAA,MACX,iBAAiBT;AAAA,MACjB,2BAA2BA;AAAA,MAC3B,qBAAqBA;AAAA,MACrB,eAAeJ,QAAOE,QAAO;AAAA,MAC7B,QAAQF,QAAOc,OAAM;AAAA,MACrB,eAAed,QAAOe,cAAa;AAAA,IACrC;AAAA,IACA,MAAM;AAAA,MACJ,YAAY,OAAO;AAAA,MACnB,oBAAoB;AAAA,MACpB,UAAU,OAAO;AAAA,MACjB,eAAe;AAAA,MACf,kBAAkB;AAAA,MAClB,YAAY,OAAO;AAAA,MACnB,sBAAsB;AAAA,MACtB,qCAAqC;AAAA,MACrC,iCAAiC;AAAA,MACjC,yBAAyB;AAAA,MACzB,oBAAoB;AAAA,MACpB,YAAY,OAAO,gBAAgB;AAAA,MACnC,iBAAiB;AAAA,MACjB,qBAAqB;AAAA,MACrB,qBAAqB;AAAA,MACrB,eAAe;AAAA,MACf,cAAc,OAAO,kBAAkB;AAAA,MACvC,UAAU,OAAO,cAAc;AAAA,MAC/B,cAAc;AAAA,MACd,MAAM;AAAA,MACN,YAAY,OAAO;AAAA,MACnB,6BAA6B;AAAA,MAC7B,uBAAuB;AAAA,MACvB,uBAAuB;AAAA,MACvB,UAAU,OAAO;AAAA,MACjB,iBAAiB,OAAO,eAAe;AAAA,MACvC,mBAAmB,OAAO,eAAe;AAAA,MACzC,UAAU,OAAO,cAAc;AAAA,MAC/B,cAAc;AAAA,MACd,UAAU,OAAO,cAAc;AAAA,MAC/B,cAAc;AAAA,MACd,OAAO,OAAO,WAAW;AAAA,MACzB,OAAO;AAAA,MACP,WAAW;AAAA,MACX,YAAY;AAAA,MACZ,MAAM,OAAO,UAAU;AAAA,MACvB,UAAU,OAAO;AAAA,MACjB,aAAa,OAAO;AAAA,MACpB,eAAe,OAAO;AAAA,MACtB,WAAW,OAAO;AAAA,MAClB,iBAAiB;AAAA,MACjB,2BAA2B;AAAA,MAC3B,qBAAqB;AAAA,MACrB,UAAU;AAAA,MACV,eAAe,OAAO,mBAAmB;AAAA,MACzC,2BAA2B;AAAA,MAC3B,mBAAmB;AAAA,MACnB,QAAQ,OAAO;AAAA,MACf,eAAe,OAAO;AAAA,IACxB;AAAA,EACF;AACA,EAAAC,WAAUjB,UAAS,WAAW,CAAC,GAAG,mBAAmB,CAAC,CAAC;AAGvD,QAAMkB,QAAO,CAAC;AACd,SAAOC;AAUP,WAASA,SAAQ,QAAQ;AAEvB,QAAI,OAAO;AAAA,MACT,MAAM;AAAA,MACN,UAAU,CAAC;AAAA,IACb;AAEA,UAAMC,WAAU;AAAA,MACd,OAAO,CAAC,IAAI;AAAA,MACZ,YAAY,CAAC;AAAA,MACb,QAAApB;AAAA,MACA;AAAA,MACA,MAAAqB;AAAA,MACA,QAAAhB;AAAA,MACA;AAAA,MACA,MAAAa;AAAA,IACF;AAEA,UAAM,YAAY,CAAC;AACnB,QAAII,SAAQ;AACZ,WAAO,EAAEA,SAAQ,OAAO,QAAQ;AAG9B,UAAI,OAAOA,MAAK,EAAE,CAAC,EAAE,SAAS,iBAAiB,OAAOA,MAAK,EAAE,CAAC,EAAE,SAAS,iBAAiB;AACxF,YAAI,OAAOA,MAAK,EAAE,CAAC,MAAM,SAAS;AAChC,oBAAU,KAAKA,MAAK;AAAA,QACtB,OAAO;AACL,gBAAM,OAAO,UAAU,IAAI;AAC3B,UAAAA,SAAQ,YAAY,QAAQ,MAAMA,MAAK;AAAA,QACzC;AAAA,MACF;AAAA,IACF;AACA,IAAAA,SAAQ;AACR,WAAO,EAAEA,SAAQ,OAAO,QAAQ;AAC9B,YAAMC,WAAUvB,QAAO,OAAOsB,MAAK,EAAE,CAAC,CAAC;AACvC,UAAIE,KAAI,KAAKD,UAAS,OAAOD,MAAK,EAAE,CAAC,EAAE,IAAI,GAAG;AAC5C,QAAAC,SAAQ,OAAOD,MAAK,EAAE,CAAC,EAAE,IAAI,EAAE,KAAK,OAAO,OAAO;AAAA,UAChD,gBAAgB,OAAOA,MAAK,EAAE,CAAC,EAAE;AAAA,QACnC,GAAGF,QAAO,GAAG,OAAOE,MAAK,EAAE,CAAC,CAAC;AAAA,MAC/B;AAAA,IACF;AAGA,QAAIF,SAAQ,WAAW,SAAS,GAAG;AACjC,YAAM,OAAOA,SAAQ,WAAWA,SAAQ,WAAW,SAAS,CAAC;AAC7D,YAAMG,WAAU,KAAK,CAAC,KAAK;AAC3B,MAAAA,SAAQ,KAAKH,UAAS,QAAW,KAAK,CAAC,CAAC;AAAA,IAC1C;AAGA,SAAK,WAAW;AAAA,MACd,OAAOK,OAAM,OAAO,SAAS,IAAI,OAAO,CAAC,EAAE,CAAC,EAAE,QAAQ;AAAA,QACpD,MAAM;AAAA,QACN,QAAQ;AAAA,QACR,QAAQ;AAAA,MACV,CAAC;AAAA,MACD,KAAKA,OAAM,OAAO,SAAS,IAAI,OAAO,OAAO,SAAS,CAAC,EAAE,CAAC,EAAE,MAAM;AAAA,QAChE,MAAM;AAAA,QACN,QAAQ;AAAA,QACR,QAAQ;AAAA,MACV,CAAC;AAAA,IACH;AAGA,IAAAH,SAAQ;AACR,WAAO,EAAEA,SAAQtB,QAAO,WAAW,QAAQ;AACzC,aAAOA,QAAO,WAAWsB,MAAK,EAAE,IAAI,KAAK;AAAA,IAC3C;AACA,WAAO;AAAA,EACT;AAQA,WAAS,YAAY,QAAQ,OAAO,QAAQ;AAC1C,QAAIA,SAAQ,QAAQ;AACpB,QAAI,mBAAmB;AACvB,QAAI,aAAa;AAEjB,QAAIV;AAEJ,QAAI;AAEJ,QAAI;AAEJ,QAAI;AACJ,WAAO,EAAEU,UAAS,QAAQ;AACxB,YAAM,QAAQ,OAAOA,MAAK;AAC1B,cAAQ,MAAM,CAAC,EAAE,MAAM;AAAA,QACrB,KAAK;AAAA,QACL,KAAK;AAAA,QACL,KAAK,cACH;AACE,cAAI,MAAM,CAAC,MAAM,SAAS;AACxB;AAAA,UACF,OAAO;AACL;AAAA,UACF;AACA,qBAAW;AACX;AAAA,QACF;AAAA,QACF,KAAK,mBACH;AACE,cAAI,MAAM,CAAC,MAAM,SAAS;AACxB,gBAAIV,aAAY,CAAC,YAAY,CAAC,oBAAoB,CAAC,qBAAqB;AACtE,oCAAsBU;AAAA,YACxB;AACA,uBAAW;AAAA,UACb;AACA;AAAA,QACF;AAAA,QACF,KAAK;AAAA,QACL,KAAK;AAAA,QACL,KAAK;AAAA,QACL,KAAK;AAAA,QACL,KAAK,4BACH;AAGE;AAAA,QACF;AAAA,QACF,SACE;AACE,qBAAW;AAAA,QACb;AAAA,MACJ;AACA,UAAI,CAAC,oBAAoB,MAAM,CAAC,MAAM,WAAW,MAAM,CAAC,EAAE,SAAS,oBAAoB,qBAAqB,MAAM,MAAM,CAAC,MAAM,WAAW,MAAM,CAAC,EAAE,SAAS,mBAAmB,MAAM,CAAC,EAAE,SAAS,gBAAgB;AAC/M,YAAIV,WAAU;AACZ,cAAI,YAAYU;AAChB,sBAAY;AACZ,iBAAO,aAAa;AAClB,kBAAM,YAAY,OAAO,SAAS;AAClC,gBAAI,UAAU,CAAC,EAAE,SAAS,gBAAgB,UAAU,CAAC,EAAE,SAAS,mBAAmB;AACjF,kBAAI,UAAU,CAAC,MAAM,OAAQ;AAC7B,kBAAI,WAAW;AACb,uBAAO,SAAS,EAAE,CAAC,EAAE,OAAO;AAC5B,6BAAa;AAAA,cACf;AACA,wBAAU,CAAC,EAAE,OAAO;AACpB,0BAAY;AAAA,YACd,WAAW,UAAU,CAAC,EAAE,SAAS,gBAAgB,UAAU,CAAC,EAAE,SAAS,sBAAsB,UAAU,CAAC,EAAE,SAAS,gCAAgC,UAAU,CAAC,EAAE,SAAS,sBAAsB,UAAU,CAAC,EAAE,SAAS,kBAAkB;AAAA,YAEvO,OAAO;AACL;AAAA,YACF;AAAA,UACF;AACA,cAAI,wBAAwB,CAAC,aAAa,sBAAsB,YAAY;AAC1E,YAAAV,UAAS,UAAU;AAAA,UACrB;AAGA,UAAAA,UAAS,MAAM,OAAO,OAAO,CAAC,GAAG,YAAY,OAAO,SAAS,EAAE,CAAC,EAAE,QAAQ,MAAM,CAAC,EAAE,GAAG;AACtF,iBAAO,OAAO,aAAaU,QAAO,GAAG,CAAC,QAAQV,WAAU,MAAM,CAAC,CAAC,CAAC;AACjE,UAAAU;AACA;AAAA,QACF;AAGA,YAAI,MAAM,CAAC,EAAE,SAAS,kBAAkB;AAEtC,gBAAM,OAAO;AAAA,YACX,MAAM;AAAA,YACN,SAAS;AAAA,YACT,OAAO,OAAO,OAAO,CAAC,GAAG,MAAM,CAAC,EAAE,KAAK;AAAA;AAAA,YAEvC,KAAK;AAAA,UACP;AACA,UAAAV,YAAW;AACX,iBAAO,OAAOU,QAAO,GAAG,CAAC,SAAS,MAAM,MAAM,CAAC,CAAC,CAAC;AACjD,UAAAA;AACA;AACA,gCAAsB;AACtB,qBAAW;AAAA,QACb;AAAA,MACF;AAAA,IACF;AACA,WAAO,KAAK,EAAE,CAAC,EAAE,UAAU;AAC3B,WAAO;AAAA,EACT;AAYA,WAASrB,QAAOyB,SAAQ,KAAK;AAC3B,WAAO;AAOP,aAAS,KAAK,OAAO;AACnB,YAAM,KAAK,MAAMA,QAAO,KAAK,GAAG,KAAK;AACrC,UAAI,IAAK,KAAI,KAAK,MAAM,KAAK;AAAA,IAC/B;AAAA,EACF;AAKA,WAASrB,UAAS;AAChB,SAAK,MAAM,KAAK;AAAA,MACd,MAAM;AAAA,MACN,UAAU,CAAC;AAAA,IACb,CAAC;AAAA,EACH;AAKA,WAAS,MAAMsB,OAAM,OAAO,cAAc;AACxC,UAAM,SAAS,KAAK,MAAM,KAAK,MAAM,SAAS,CAAC;AAE/C,UAAMC,YAAW,OAAO;AACxB,IAAAA,UAAS,KAAKD,KAAI;AAClB,SAAK,MAAM,KAAKA,KAAI;AACpB,SAAK,WAAW,KAAK,CAAC,OAAO,gBAAgB,MAAS,CAAC;AACvD,IAAAA,MAAK,WAAW;AAAA,MACd,OAAOF,OAAM,MAAM,KAAK;AAAA;AAAA,MAExB,KAAK;AAAA,IACP;AAAA,EACF;AAUA,WAAS,OAAO,KAAK;AACnB,WAAOI;AAOP,aAASA,OAAM,OAAO;AACpB,UAAI,IAAK,KAAI,KAAK,MAAM,KAAK;AAC7B,MAAAR,MAAK,KAAK,MAAM,KAAK;AAAA,IACvB;AAAA,EACF;AAKA,WAASA,MAAK,OAAO,aAAa;AAChC,UAAMM,QAAO,KAAK,MAAM,IAAI;AAC5B,UAAM,OAAO,KAAK,WAAW,IAAI;AACjC,QAAI,CAAC,MAAM;AACT,YAAM,IAAI,MAAM,mBAAmB,MAAM,OAAO,QAAQ,kBAAkB;AAAA,QACxE,OAAO,MAAM;AAAA,QACb,KAAK,MAAM;AAAA,MACb,CAAC,IAAI,uBAAkB;AAAA,IACzB,WAAW,KAAK,CAAC,EAAE,SAAS,MAAM,MAAM;AACtC,UAAI,aAAa;AACf,oBAAY,KAAK,MAAM,OAAO,KAAK,CAAC,CAAC;AAAA,MACvC,OAAO;AACL,cAAMJ,WAAU,KAAK,CAAC,KAAK;AAC3B,QAAAA,SAAQ,KAAK,MAAM,OAAO,KAAK,CAAC,CAAC;AAAA,MACnC;AAAA,IACF;AACA,IAAAI,MAAK,SAAS,MAAMF,OAAM,MAAM,GAAG;AAAA,EACrC;AAKA,WAAS,SAAS;AAChB,WAAO,SAAS,KAAK,MAAM,IAAI,CAAC;AAAA,EAClC;AAUA,WAAS,qBAAqB;AAC5B,SAAK,KAAK,8BAA8B;AAAA,EAC1C;AAMA,WAAS,qBAAqB,OAAO;AACnC,QAAI,KAAK,KAAK,6BAA6B;AACzC,YAAM,WAAW,KAAK,MAAM,KAAK,MAAM,SAAS,CAAC;AACjD,eAAS,QAAQ,OAAO,SAAS,KAAK,eAAe,KAAK,GAAG,EAAE;AAC/D,WAAK,KAAK,8BAA8B;AAAA,IAC1C;AAAA,EACF;AAMA,WAAS,4BAA4B;AACnC,UAAMP,QAAO,KAAK,OAAO;AACzB,UAAMS,QAAO,KAAK,MAAM,KAAK,MAAM,SAAS,CAAC;AAC7C,IAAAA,MAAK,OAAOT;AAAA,EACd;AAMA,WAAS,4BAA4B;AACnC,UAAMA,QAAO,KAAK,OAAO;AACzB,UAAMS,QAAO,KAAK,MAAM,KAAK,MAAM,SAAS,CAAC;AAC7C,IAAAA,MAAK,OAAOT;AAAA,EACd;AAMA,WAAS,wBAAwB;AAE/B,QAAI,KAAK,KAAK,eAAgB;AAC9B,SAAK,OAAO;AACZ,SAAK,KAAK,iBAAiB;AAAA,EAC7B;AAMA,WAAS,mBAAmB;AAC1B,UAAMA,QAAO,KAAK,OAAO;AACzB,UAAMS,QAAO,KAAK,MAAM,KAAK,MAAM,SAAS,CAAC;AAC7C,IAAAA,MAAK,QAAQT,MAAK,QAAQ,4BAA4B,EAAE;AACxD,SAAK,KAAK,iBAAiB;AAAA,EAC7B;AAMA,WAAS,qBAAqB;AAC5B,UAAMA,QAAO,KAAK,OAAO;AACzB,UAAMS,QAAO,KAAK,MAAM,KAAK,MAAM,SAAS,CAAC;AAC7C,IAAAA,MAAK,QAAQT,MAAK,QAAQ,gBAAgB,EAAE;AAAA,EAC9C;AAMA,WAAS,4BAA4B,OAAO;AAC1C,UAAM,QAAQ,KAAK,OAAO;AAC1B,UAAMS,QAAO,KAAK,MAAM,KAAK,MAAM,SAAS,CAAC;AAC7C,IAAAA,MAAK,QAAQ;AACb,IAAAA,MAAK,aAAa,oBAAoB,KAAK,eAAe,KAAK,CAAC,EAAE,YAAY;AAAA,EAChF;AAMA,WAAS,8BAA8B;AACrC,UAAMT,QAAO,KAAK,OAAO;AACzB,UAAMS,QAAO,KAAK,MAAM,KAAK,MAAM,SAAS,CAAC;AAC7C,IAAAA,MAAK,QAAQT;AAAA,EACf;AAMA,WAAS,oCAAoC;AAC3C,UAAMA,QAAO,KAAK,OAAO;AACzB,UAAMS,QAAO,KAAK,MAAM,KAAK,MAAM,SAAS,CAAC;AAC7C,IAAAA,MAAK,MAAMT;AAAA,EACb;AAMA,WAAS,yBAAyB,OAAO;AACvC,UAAMS,QAAO,KAAK,MAAM,KAAK,MAAM,SAAS,CAAC;AAC7C,QAAI,CAACA,MAAK,OAAO;AACf,YAAM,QAAQ,KAAK,eAAe,KAAK,EAAE;AACzC,MAAAA,MAAK,QAAQ;AAAA,IACf;AAAA,EACF;AAMA,WAAS,0BAA0B;AACjC,SAAK,KAAK,+BAA+B;AAAA,EAC3C;AAMA,WAAS,gCAAgC,OAAO;AAC9C,UAAMA,QAAO,KAAK,MAAM,KAAK,MAAM,SAAS,CAAC;AAC7C,IAAAA,MAAK,QAAQ,KAAK,eAAe,KAAK,EAAE,YAAY,CAAC,MAAM,KAAK,IAAI;AAAA,EACtE;AAMA,WAAS,sBAAsB;AAC7B,SAAK,KAAK,+BAA+B;AAAA,EAC3C;AAOA,WAAS,YAAY,OAAO;AAC1B,UAAMA,QAAO,KAAK,MAAM,KAAK,MAAM,SAAS,CAAC;AAE7C,UAAMC,YAAWD,MAAK;AACtB,QAAI,OAAOC,UAASA,UAAS,SAAS,CAAC;AACvC,QAAI,CAAC,QAAQ,KAAK,SAAS,QAAQ;AAEjC,aAAOE,MAAK;AACZ,WAAK,WAAW;AAAA,QACd,OAAOL,OAAM,MAAM,KAAK;AAAA;AAAA,QAExB,KAAK;AAAA,MACP;AACA,MAAAG,UAAS,KAAK,IAAI;AAAA,IACpB;AACA,SAAK,MAAM,KAAK,IAAI;AAAA,EACtB;AAOA,WAAS,WAAW,OAAO;AACzB,UAAM,OAAO,KAAK,MAAM,IAAI;AAC5B,SAAK,SAAS,KAAK,eAAe,KAAK;AACvC,SAAK,SAAS,MAAMH,OAAM,MAAM,GAAG;AAAA,EACrC;AAOA,WAAS,iBAAiB,OAAO;AAC/B,UAAML,WAAU,KAAK,MAAM,KAAK,MAAM,SAAS,CAAC;AAEhD,QAAI,KAAK,KAAK,aAAa;AACzB,YAAM,OAAOA,SAAQ,SAASA,SAAQ,SAAS,SAAS,CAAC;AACzD,WAAK,SAAS,MAAMK,OAAM,MAAM,GAAG;AACnC,WAAK,KAAK,cAAc;AACxB;AAAA,IACF;AACA,QAAI,CAAC,KAAK,KAAK,gCAAgCzB,QAAO,eAAe,SAASoB,SAAQ,IAAI,GAAG;AAC3F,kBAAY,KAAK,MAAM,KAAK;AAC5B,iBAAW,KAAK,MAAM,KAAK;AAAA,IAC7B;AAAA,EACF;AAOA,WAAS,kBAAkB;AACzB,SAAK,KAAK,cAAc;AAAA,EAC1B;AAOA,WAAS,iBAAiB;AACxB,UAAMF,QAAO,KAAK,OAAO;AACzB,UAAMS,QAAO,KAAK,MAAM,KAAK,MAAM,SAAS,CAAC;AAC7C,IAAAA,MAAK,QAAQT;AAAA,EACf;AAOA,WAAS,iBAAiB;AACxB,UAAMA,QAAO,KAAK,OAAO;AACzB,UAAMS,QAAO,KAAK,MAAM,KAAK,MAAM,SAAS,CAAC;AAC7C,IAAAA,MAAK,QAAQT;AAAA,EACf;AAOA,WAAS,iBAAiB;AACxB,UAAMA,QAAO,KAAK,OAAO;AACzB,UAAMS,QAAO,KAAK,MAAM,KAAK,MAAM,SAAS,CAAC;AAC7C,IAAAA,MAAK,QAAQT;AAAA,EACf;AAOA,WAAS,aAAa;AACpB,UAAMS,QAAO,KAAK,MAAM,KAAK,MAAM,SAAS,CAAC;AAK7C,QAAI,KAAK,KAAK,aAAa;AAEzB,YAAM,gBAAgB,KAAK,KAAK,iBAAiB;AACjD,MAAAA,MAAK,QAAQ;AAEb,MAAAA,MAAK,gBAAgB;AAErB,aAAOA,MAAK;AACZ,aAAOA,MAAK;AAAA,IACd,OAAO;AAEL,aAAOA,MAAK;AAEZ,aAAOA,MAAK;AAAA,IACd;AACA,SAAK,KAAK,gBAAgB;AAAA,EAC5B;AAOA,WAAS,cAAc;AACrB,UAAMA,QAAO,KAAK,MAAM,KAAK,MAAM,SAAS,CAAC;AAK7C,QAAI,KAAK,KAAK,aAAa;AAEzB,YAAM,gBAAgB,KAAK,KAAK,iBAAiB;AACjD,MAAAA,MAAK,QAAQ;AAEb,MAAAA,MAAK,gBAAgB;AAErB,aAAOA,MAAK;AACZ,aAAOA,MAAK;AAAA,IACd,OAAO;AAEL,aAAOA,MAAK;AAEZ,aAAOA,MAAK;AAAA,IACd;AACA,SAAK,KAAK,gBAAgB;AAAA,EAC5B;AAOA,WAAS,gBAAgB,OAAO;AAC9B,UAAMI,UAAS,KAAK,eAAe,KAAK;AACxC,UAAM,WAAW,KAAK,MAAM,KAAK,MAAM,SAAS,CAAC;AAGjD,aAAS,QAAQ,aAAaA,OAAM;AAEpC,aAAS,aAAa,oBAAoBA,OAAM,EAAE,YAAY;AAAA,EAChE;AAOA,WAAS,cAAc;AACrB,UAAM,WAAW,KAAK,MAAM,KAAK,MAAM,SAAS,CAAC;AACjD,UAAMjC,SAAQ,KAAK,OAAO;AAC1B,UAAM6B,QAAO,KAAK,MAAM,KAAK,MAAM,SAAS,CAAC;AAE7C,SAAK,KAAK,cAAc;AACxB,QAAIA,MAAK,SAAS,QAAQ;AAExB,YAAMK,YAAW,SAAS;AAC1B,MAAAL,MAAK,WAAWK;AAAA,IAClB,OAAO;AACL,MAAAL,MAAK,MAAM7B;AAAA,IACb;AAAA,EACF;AAOA,WAAS,kCAAkC;AACzC,UAAMoB,QAAO,KAAK,OAAO;AACzB,UAAMS,QAAO,KAAK,MAAM,KAAK,MAAM,SAAS,CAAC;AAC7C,IAAAA,MAAK,MAAMT;AAAA,EACb;AAOA,WAAS,4BAA4B;AACnC,UAAMA,QAAO,KAAK,OAAO;AACzB,UAAMS,QAAO,KAAK,MAAM,KAAK,MAAM,SAAS,CAAC;AAC7C,IAAAA,MAAK,QAAQT;AAAA,EACf;AAOA,WAAS,iBAAiB;AACxB,SAAK,KAAK,cAAc;AAAA,EAC1B;AAOA,WAAS,mBAAmB;AAC1B,SAAK,KAAK,gBAAgB;AAAA,EAC5B;AAOA,WAAS,sBAAsB,OAAO;AACpC,UAAM,QAAQ,KAAK,OAAO;AAC1B,UAAMS,QAAO,KAAK,MAAM,KAAK,MAAM,SAAS,CAAC;AAG7C,IAAAA,MAAK,QAAQ;AAEb,IAAAA,MAAK,aAAa,oBAAoB,KAAK,eAAe,KAAK,CAAC,EAAE,YAAY;AAC9E,SAAK,KAAK,gBAAgB;AAAA,EAC5B;AAOA,WAAS,+BAA+B,OAAO;AAC7C,SAAK,KAAK,yBAAyB,MAAM;AAAA,EAC3C;AAMA,WAAS,8BAA8B,OAAO;AAC5C,UAAMT,QAAO,KAAK,eAAe,KAAK;AACtC,UAAMe,QAAO,KAAK,KAAK;AAEvB,QAAInC;AACJ,QAAImC,OAAM;AACR,MAAAnC,SAAQ,gCAAgCoB,OAAMe,UAAS,oCAAoC,KAAK,EAAE;AAClG,WAAK,KAAK,yBAAyB;AAAA,IACrC,OAAO;AACL,YAAM,SAAS,8BAA8Bf,KAAI;AACjD,MAAApB,SAAQ;AAAA,IACV;AACA,UAAM,OAAO,KAAK,MAAM,KAAK,MAAM,SAAS,CAAC;AAC7C,SAAK,SAASA;AAAA,EAChB;AAMA,WAAS,yBAAyB,OAAO;AACvC,UAAM,OAAO,KAAK,MAAM,IAAI;AAC5B,SAAK,SAAS,MAAM2B,OAAM,MAAM,GAAG;AAAA,EACrC;AAMA,WAAS,uBAAuB,OAAO;AACrC,eAAW,KAAK,MAAM,KAAK;AAC3B,UAAME,QAAO,KAAK,MAAM,KAAK,MAAM,SAAS,CAAC;AAC7C,IAAAA,MAAK,MAAM,KAAK,eAAe,KAAK;AAAA,EACtC;AAMA,WAAS,oBAAoB,OAAO;AAClC,eAAW,KAAK,MAAM,KAAK;AAC3B,UAAMA,QAAO,KAAK,MAAM,KAAK,MAAM,SAAS,CAAC;AAC7C,IAAAA,MAAK,MAAM,YAAY,KAAK,eAAe,KAAK;AAAA,EAClD;AAOA,WAASvB,cAAa;AACpB,WAAO;AAAA,MACL,MAAM;AAAA,MACN,UAAU,CAAC;AAAA,IACb;AAAA,EACF;AAGA,WAAS,WAAW;AAClB,WAAO;AAAA,MACL,MAAM;AAAA,MACN,MAAM;AAAA,MACN,MAAM;AAAA,MACN,OAAO;AAAA,IACT;AAAA,EACF;AAGA,WAASE,YAAW;AAClB,WAAO;AAAA,MACL,MAAM;AAAA,MACN,OAAO;AAAA,IACT;AAAA,EACF;AAGA,WAASC,cAAa;AACpB,WAAO;AAAA,MACL,MAAM;AAAA,MACN,YAAY;AAAA,MACZ,OAAO;AAAA,MACP,OAAO;AAAA,MACP,KAAK;AAAA,IACP;AAAA,EACF;AAGA,WAASC,YAAW;AAClB,WAAO;AAAA,MACL,MAAM;AAAA,MACN,UAAU,CAAC;AAAA,IACb;AAAA,EACF;AAGA,WAASL,WAAU;AACjB,WAAO;AAAA,MACL,MAAM;AAAA;AAAA,MAEN,OAAO;AAAA,MACP,UAAU,CAAC;AAAA,IACb;AAAA,EACF;AAGA,WAASM,aAAY;AACnB,WAAO;AAAA,MACL,MAAM;AAAA,IACR;AAAA,EACF;AAGA,WAASC,QAAO;AACd,WAAO;AAAA,MACL,MAAM;AAAA,MACN,OAAO;AAAA,IACT;AAAA,EACF;AAGA,WAASC,SAAQ;AACf,WAAO;AAAA,MACL,MAAM;AAAA,MACN,OAAO;AAAA,MACP,KAAK;AAAA,MACL,KAAK;AAAA,IACP;AAAA,EACF;AAGA,WAAST,QAAO;AACd,WAAO;AAAA,MACL,MAAM;AAAA,MACN,OAAO;AAAA,MACP,KAAK;AAAA,MACL,UAAU,CAAC;AAAA,IACb;AAAA,EACF;AAMA,WAASW,MAAK,OAAO;AACnB,WAAO;AAAA,MACL,MAAM;AAAA,MACN,SAAS,MAAM,SAAS;AAAA,MACxB,OAAO;AAAA,MACP,QAAQ,MAAM;AAAA,MACd,UAAU,CAAC;AAAA,IACb;AAAA,EACF;AAMA,WAASD,UAAS,OAAO;AACvB,WAAO;AAAA,MACL,MAAM;AAAA,MACN,QAAQ,MAAM;AAAA,MACd,SAAS;AAAA,MACT,UAAU,CAAC;AAAA,IACb;AAAA,EACF;AAGA,WAASE,aAAY;AACnB,WAAO;AAAA,MACL,MAAM;AAAA,MACN,UAAU,CAAC;AAAA,IACb;AAAA,EACF;AAGA,WAASC,UAAS;AAChB,WAAO;AAAA,MACL,MAAM;AAAA,MACN,UAAU,CAAC;AAAA,IACb;AAAA,EACF;AAGA,WAASe,QAAO;AACd,WAAO;AAAA,MACL,MAAM;AAAA,MACN,OAAO;AAAA,IACT;AAAA,EACF;AAGA,WAASd,iBAAgB;AACvB,WAAO;AAAA,MACL,MAAM;AAAA,IACR;AAAA,EACF;AACF;AAUA,SAASS,OAAMS,IAAG;AAChB,SAAO;AAAA,IACL,MAAMA,GAAE;AAAA,IACR,QAAQA,GAAE;AAAA,IACV,QAAQA,GAAE;AAAA,EACZ;AACF;AAOA,SAASjB,WAAU,UAAU,YAAY;AACvC,MAAIK,SAAQ;AACZ,SAAO,EAAEA,SAAQ,WAAW,QAAQ;AAClC,UAAMxB,SAAQ,WAAWwB,MAAK;AAC9B,QAAI,MAAM,QAAQxB,MAAK,GAAG;AACxB,MAAAmB,WAAU,UAAUnB,MAAK;AAAA,IAC3B,OAAO;AACL,gBAAU,UAAUA,MAAK;AAAA,IAC3B;AAAA,EACF;AACF;AAOA,SAAS,UAAU,UAAUqC,YAAW;AAEtC,MAAIC;AACJ,OAAKA,QAAOD,YAAW;AACrB,QAAIX,KAAI,KAAKW,YAAWC,IAAG,GAAG;AAC5B,cAAQA,MAAK;AAAA,QACX,KAAK,kBACH;AACE,gBAAM,QAAQD,WAAUC,IAAG;AAC3B,cAAI,OAAO;AACT,qBAASA,IAAG,EAAE,KAAK,GAAG,KAAK;AAAA,UAC7B;AACA;AAAA,QACF;AAAA,QACF,KAAK,cACH;AACE,gBAAM,QAAQD,WAAUC,IAAG;AAC3B,cAAI,OAAO;AACT,qBAASA,IAAG,EAAE,KAAK,GAAG,KAAK;AAAA,UAC7B;AACA;AAAA,QACF;AAAA,QACF,KAAK;AAAA,QACL,KAAK,QACH;AACE,gBAAM,QAAQD,WAAUC,IAAG;AAC3B,cAAI,OAAO;AACT,mBAAO,OAAO,SAASA,IAAG,GAAG,KAAK;AAAA,UACpC;AACA;AAAA,QACF;AAAA,MAEJ;AAAA,IACF;AAAA,EACF;AACF;AAGA,SAAS,eAAe,MAAM,OAAO;AACnC,MAAI,MAAM;AACR,UAAM,IAAI,MAAM,mBAAmB,KAAK,OAAO,QAAQ,kBAAkB;AAAA,MACvE,OAAO,KAAK;AAAA,MACZ,KAAK,KAAK;AAAA,IACZ,CAAC,IAAI,4BAA4B,MAAM,OAAO,QAAQ,kBAAkB;AAAA,MACtE,OAAO,MAAM;AAAA,MACb,KAAK,MAAM;AAAA,IACb,CAAC,IAAI,WAAW;AAAA,EAClB,OAAO;AACL,UAAM,IAAI,MAAM,sCAAsC,MAAM,OAAO,QAAQ,kBAAkB;AAAA,MAC3F,OAAO,MAAM;AAAA,MACb,KAAK,MAAM;AAAA,IACb,CAAC,IAAI,iBAAiB;AAAA,EACxB;AACF;AAxpCA,IAgDMZ;AAhDN,IAAAa,aAAA;AAAA;AAyCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAMb,OAAM,CAAC,EAAE;AAAA;AAAA;;;AChDf;AAAA;AACA,IAAAc;AAAA;AAAA;;;ACoBe,SAAR,YAA6B,SAAS;AAG3C,QAAMC,QAAO;AAEb,EAAAA,MAAK,SAAS;AAKd,WAAS,OAAO,KAAK;AACnB,WAAO,aAAa,KAAK;AAAA,MACvB,GAAGA,MAAK,KAAK,UAAU;AAAA,MACvB,GAAG;AAAA;AAAA;AAAA;AAAA,MAIH,YAAYA,MAAK,KAAK,qBAAqB,KAAK,CAAC;AAAA,MACjD,iBAAiBA,MAAK,KAAK,wBAAwB,KAAK,CAAC;AAAA,IAC3D,CAAC;AAAA,EACH;AACF;AA1CA,IAAAC,aAAA;AAAA;AAWA;AAAA;AAAA;;;ACXA;AAAA;AACA,IAAAC;AAAA;AAAA;;;ACDA;AAAA;AAWA;AAAC,KAAC,WAAW;AAGX,UAAIC;AAGJ,UAAI,OAAO,WAAW,aAAa;AACjC,QAAAA,aAAY,OAAO,UAAUC;AAAA,MAC/B,OAGK;AAEH,QAAAD,cAAa,WAAU;AAAE,iBAAO,SAAS,GAAE,MAAM,MAAM;AAAA,QAAE,GAAE;AAAA,MAC7D;AAEA,MAAAA,WAAU,SAASC;AACnB,MAAAD,WAAU,WAAW;AAErB,UAAI,OAAO,YAAY,eAAe,OAAO,QAAQ,QAAQ,YAAY;AACvE,QAAAA,WAAU,SAAS;AAAA,MACrB;AAEA,eAAS,SAAkB;AACzB,gBAAQ,IAAIC,QAAO,MAAM,MAAM,SAAS,CAAC;AAAA,MAC3C;AAEA,eAAS,SAAS,KAAK,cAAc;AACnC,eAAOA,QAAO,MAAM,MAAM,CAAC,GAAG,EAAE,OAAO,YAAY,CAAC;AAAA,MACtD;AAEA,eAASA,QAAO,KAAK;AACnB,YAAI,WAAW,GACX,OAAO,CAAC,EAAE,MAAM,KAAK,SAAS,GAC9BC,MAAI,GACJC,MAAI,IAAI,QACR,SAAS,IACTC,KACA,UAAU,OACV,KACA,KACA,cAAc,OACd,WACA,UAAU,WAAW;AAAE,iBAAO,KAAK,UAAU;AAAA,QAAG,GAChD,cAAc,WAAW;AACvB,cAAI,SAAS;AACb,iBAAO,KAAK,KAAK,IAAIF,GAAC,CAAC,GAAG;AACxB,sBAAU,IAAIA,KAAG;AACjB,YAAAE,MAAI,IAAIF,GAAC;AAAA,UACX;AACA,iBAAO,OAAO,SAAS,IAAI,SAAS,MAAM,IAAI;AAAA,QAChD;AAEJ,eAAOA,MAAIC,KAAG,EAAED,KAAG;AACjB,UAAAE,MAAI,IAAIF,GAAC;AACT,cAAI,SAAS;AACX,sBAAU;AACV,gBAAIE,OAAK,KAAK;AACZ,4BAAc;AACd,cAAAA,MAAI,IAAI,EAAEF,GAAC;AAAA,YACb,WACSE,OAAK,OAAO,IAAIF,MAAI,CAAC,KAAK,KAAK;AACtC,4BAAc;AACd,cAAAA,OAAK;AACL,cAAAE,MAAI,IAAIF,GAAC;AAAA,YACX,OACK;AACH,4BAAc;AAAA,YAChB;AACA,wBAAY,YAAY;AACxB,oBAAQE,KAAG;AAAA,cACX,KAAK;AACH,0BAAU,SAAS,QAAQ,GAAG,EAAE,EAAE,SAAS,CAAC;AAC5C;AAAA,cACF,KAAK;AACH,sBAAM,QAAQ;AACd,oBAAI,OAAO,QAAQ,YAAY,eAAe;AAC5C,4BAAU;AAAA;AAEV,4BAAU,OAAO,aAAa,SAAS,KAAK,EAAE,CAAC;AACjD;AAAA,cACF,KAAK;AACH,0BAAU,SAAS,QAAQ,GAAG,EAAE;AAChC;AAAA,cACF,KAAK;AACH,sBAAM,OAAO,WAAW,QAAQ,CAAC,EAAE,QAAQ,aAAa,CAAC,CAAC;AAC1D,0BAAU,cAAc,MAAM,IAAI,QAAQ,MAAM,EAAE;AAClD;AAAA,cACF,KAAK;AACH,0BAAU,KAAK,UAAU,QAAQ,CAAC;AAClC;AAAA,cACF,KAAK;AACH,0BAAU,MAAM,SAAS,QAAQ,GAAG,EAAE,EAAE,SAAS,CAAC;AAClD;AAAA,cACF,KAAK;AACH,0BAAU,QAAQ;AAClB;AAAA,cACF,KAAK;AACH,0BAAU,OAAO,SAAS,QAAQ,GAAG,EAAE,EAAE,SAAS,EAAE;AACpD;AAAA,cACF,KAAK;AACH,0BAAU,OAAO,SAAS,QAAQ,GAAG,EAAE,EAAE,SAAS,EAAE,EAAE,YAAY;AAClE;AAAA,cACF;AACE,0BAAUA;AACV;AAAA,YACF;AAAA,UACF,WAAWA,QAAM,KAAK;AACpB,sBAAU;AAAA,UACZ,OAAO;AACL,sBAAUA;AAAA,UACZ;AAAA,QACF;AACA,eAAO;AAAA,MACT;AAAA,IAEF,GAAE;AAAA;AAAA;;;AC5GK,SAASC,QAAO,aAAa;AAGlC,iBAAe,cAAc,YAAY,eAAe,YAAY;AAEpE,SAAO;AAWP,WAAS,eAAeC,YAAW,QAAQ;AAEzC,UAAM,SAASA,cAAS,eAAAC,SAAUD,SAAQ,GAAG,MAAM,IAAIA;AACvD,WAAO,IAAI,YAAY,MAAM;AAAA,EAC/B;AACF;AAxCA,IACAE,gBAEa;AAHb;AAAA;AACA,IAAAA,iBAAsB;AAEf,IAAM,QAAQ,OAAO,OAAOH,QAAO,KAAK,GAAG;AAAA,MAChD,MAAMA,QAAO,SAAS;AAAA,MACtB,OAAOA,QAAO,UAAU;AAAA,MACxB,WAAWA,QAAO,cAAc;AAAA,MAChC,QAAQA,QAAO,WAAW;AAAA,MAC1B,MAAMA,QAAO,SAAS;AAAA,MACtB,KAAKA,QAAO,QAAQ;AAAA,IACtB,CAAC;AAAA;AAAA;;;ACoEM,SAAS,UAAU,SAAS;AAEjC,QAAM,SAAS,CAAC;AAChB,MAAII,SAAQ;AAGZ,QAAM,mBAAmB,MAAM,QAAQ,OAAO,IAC1C,UACA,UACA,CAAC,OAAO,IACR,CAAC,MAAM;AACX,SAAO,EAAEA,SAAQ,iBAAiB,QAAQ;AACxC,WAAOA,MAAK,IAAI,OAAO,iBAAiBA,MAAK,CAAC;AAAA,EAChD;AACA,SAAO;AACT;AAUA,SAAS,OAAOC,SAAQ;AACtB,MAAI,SAASA;AACb,MAAI,OAAO,WAAW,UAAU;AAC9B,QAAI,CAACC,KAAI,KAAK,SAAS,MAAM,GAAG;AAC9B,YAAM,MAAM,sCAAsC,MAAM;AAAA,IAC1D;AACA,aAAS;AAAA,MACP,MAAM;AAAA,MACN,QAAQ,QAAQ,MAAM;AAAA,IACxB;AAAA,EACF,WAAW,OAAO,WAAW,UAAU;AACrC,UAAM,MAAM,6CAA6C,MAAM;AAAA,EACjE;AACA,MAAI,CAACA,KAAI,KAAK,QAAQ,MAAM,GAAG;AAC7B,UAAM,MAAM,iCAAiC,MAAM;AAAA,EACrD;AACA,MAAI,CAACA,KAAI,KAAK,QAAQ,OAAO,KAAK,CAACA,KAAI,KAAK,QAAQ,QAAQ,GAAG;AAC7D,UAAM,MAAM,8CAA8C,MAAM;AAAA,EAClE;AACA,SAAO;AACT;AA3HA,IAgEMA,MACA;AAjEN;AAAA;AA+DA;AACA,IAAMA,OAAM,CAAC,EAAE;AACf,IAAM,UAAU;AAAA,MACd,MAAM;AAAA,MACN,MAAM;AAAA,IACR;AAAA;AAAA;;;AC1CO,SAAS,YAAY,SAAS;AACnC,QAAM,UAAU,UAAU,OAAO;AAEjC,QAAMC,QAAO,CAAC;AACd,MAAIC,SAAQ;AACZ,SAAO,EAAEA,SAAQ,QAAQ,QAAQ;AAC/B,UAAMC,UAAS,QAAQD,MAAK;AAC5B,UAAME,QAAO,MAAMD,SAAQ,MAAM,EAAE,WAAW,CAAC;AAC/C,UAAM,YAAY,gBAAgBA,OAAM;AACxC,UAAM,WAAWF,MAAKG,KAAI;AAC1B,QAAI,MAAM,QAAQ,QAAQ,GAAG;AAC3B,eAAS,KAAK,SAAS;AAAA,IACzB,OAAO;AAEL,MAAAH,MAAKG,KAAI,IAAI,CAAC,SAAS;AAAA,IACzB;AAAA,EACF;AACA,SAAO;AAAA,IACL,MAAAH;AAAA,EACF;AACF;AAMA,SAAS,gBAAgBE,SAAQ;AAC/B,QAAM,WAAWA,QAAO;AACxB,QAAM;AAAA;AAAA,IAA2CA,QAAO;AAAA;AACxD,QAAM;AAAA;AAAA,IAAqC,kBAAkB;AAAA;AAC7D,QAAM;AAAA;AAAA,IAAwC,YAAY;AAAA;AAC1D,QAAM;AAAA;AAAA,IAAqC,kBAAkB;AAAA;AAC7D,QAAM,wBAAwB;AAAA,IAC5B,UAAU;AAAA,IACV,SAAS;AAAA,EACX;AAOA,MAAIE;AACJ,MAAI,cAAc;AAClB,SAAO;AAAA,IACL,UAAU;AAAA,IACV,UAAU;AAAA,EACZ;AAMA,WAAS,oBAAoB,SAASC,KAAI,KAAK;AAC7C,UAAMC,QAAO;AACb,WAAO;AAcP,aAAS,MAAMH,OAAM;AACnB,YAAMI,YAAWD,MAAK,IAAI;AAC1B;AAAA;AAAA,QAEEC,UAAS,WAAW;AAAA,SAEnBA,UAAS,SAAS,KAAK;AAAA,QACxB;AACA,QAAAH,UAAS,MAAMF,SAAQ,MAAM;AAC7B,sBAAc;AACd,YAAIC,UAASC,QAAO,WAAW,WAAW,GAAG;AAC3C,kBAAQ,MAAM,eAAe;AAC7B,kBAAQ,MAAM,SAAS;AACvB,kBAAQ,MAAM,YAAY;AAC1B,iBAAO,aAAaD,KAAI;AAAA,QAC1B;AAAA,MACF;AACA,aAAO,IAAIA,KAAI;AAAA,IACjB;AAcA,aAAS,aAAaA,OAAM;AAC1B,UAAI,gBAAgBC,QAAO,QAAQ;AACjC,gBAAQ,KAAK,YAAY;AACzB,YAAI,cAAcD,KAAI,GAAG;AACvB,kBAAQ,MAAM,YAAY;AAC1B,iBAAO,uBAAuBA,KAAI;AAAA,QACpC;AACA,eAAO,UAAUA,KAAI;AAAA,MACvB;AACA,UAAIA,UAASC,QAAO,WAAW,aAAa,GAAG;AAC7C,gBAAQ,QAAQD,KAAI;AACpB,eAAO;AAAA,MACT;AACA,aAAO,IAAIA,KAAI;AAAA,IACjB;AAcA,aAAS,uBAAuBA,OAAM;AACpC,UAAI,cAAcA,KAAI,GAAG;AACvB,gBAAQ,QAAQA,KAAI;AACpB,eAAO;AAAA,MACT;AACA,cAAQ,KAAK,YAAY;AACzB,aAAO,UAAUA,KAAI;AAAA,IACvB;AAcA,aAAS,UAAUA,OAAM;AACvB,UAAI,mBAAmBA,KAAI,GAAG;AAC5B,gBAAQ,KAAK,SAAS;AACtB,gBAAQ,MAAM,YAAY;AAC1B,gBAAQ,QAAQA,KAAI;AACpB,gBAAQ,KAAK,YAAY;AAEzB,QAAAC,UAAS,MAAMF,SAAQ,OAAO;AAC9B,sBAAc;AACd,eAAO,QAAQ,QAAQ,uBAAuB,OAAO,YAAY;AAAA,MACnE;AAGA,aAAO,IAAIC,KAAI;AAAA,IACjB;AAcA,aAAS,aAAaA,OAAM;AAC1B,UAAIA,UAAS,QAAQ,mBAAmBA,KAAI,GAAG;AAC7C,eAAO,WAAWA,KAAI;AAAA,MACxB;AACA,cAAQ,MAAM,SAAS;AACvB,aAAO,cAAcA,KAAI;AAAA,IAC3B;AAcA,aAAS,cAAcA,OAAM;AAC3B,UAAIA,UAAS,QAAQ,mBAAmBA,KAAI,GAAG;AAC7C,gBAAQ,KAAK,SAAS;AACtB,eAAO,WAAWA,KAAI;AAAA,MACxB;AACA,cAAQ,QAAQA,KAAI;AACpB,aAAO;AAAA,IACT;AAcA,aAAS,WAAWA,OAAM;AAExB,UAAIA,UAAS,MAAM;AACjB,eAAO,IAAIA,KAAI;AAAA,MACjB;AAGA,cAAQ,MAAM,YAAY;AAC1B,cAAQ,QAAQA,KAAI;AACpB,cAAQ,KAAK,YAAY;AACzB,aAAO,QAAQ,QAAQ,uBAAuB,OAAO,YAAY;AAAA,IACnE;AAcA,aAAS,MAAMA,OAAM;AAEnB,cAAQ,KAAK,eAAe;AAC5B,aAAOE,IAAGF,KAAI;AAAA,IAChB;AAAA,EACF;AAGA,WAAS,qBAAqB,SAASE,KAAI,KAAK;AAC9C,QAAIG,eAAc;AAClB,WAAO;AAcP,aAAS,WAAWL,OAAM;AACxB,UAAIA,UAASC,QAAO,WAAWI,YAAW,GAAG;AAC3C,gBAAQ,MAAM,SAAS;AACvB,gBAAQ,MAAM,YAAY;AAC1B,eAAO,cAAcL,KAAI;AAAA,MAC3B;AACA,aAAO,IAAIA,KAAI;AAAA,IACjB;AAcA,aAAS,cAAcA,OAAM;AAC3B,UAAIK,iBAAgBJ,QAAO,QAAQ;AACjC,gBAAQ,KAAK,YAAY;AACzB,YAAI,cAAcD,KAAI,GAAG;AACvB,kBAAQ,MAAM,YAAY;AAC1B,iBAAO,wBAAwBA,KAAI;AAAA,QACrC;AACA,eAAO,WAAWA,KAAI;AAAA,MACxB;AACA,UAAIA,UAASC,QAAO,WAAWI,cAAa,GAAG;AAC7C,gBAAQ,QAAQL,KAAI;AACpB,eAAO;AAAA,MACT;AACA,aAAO,IAAIA,KAAI;AAAA,IACjB;AAcA,aAAS,wBAAwBA,OAAM;AACrC,UAAI,cAAcA,KAAI,GAAG;AACvB,gBAAQ,QAAQA,KAAI;AACpB,eAAO;AAAA,MACT;AACA,cAAQ,KAAK,YAAY;AACzB,aAAO,WAAWA,KAAI;AAAA,IACxB;AAcA,aAAS,WAAWA,OAAM;AACxB,UAAIA,UAAS,QAAQ,mBAAmBA,KAAI,GAAG;AAC7C,gBAAQ,KAAK,SAAS;AACtB,eAAOE,IAAGF,KAAI;AAAA,MAChB;AACA,aAAO,IAAIA,KAAI;AAAA,IACjB;AAAA,EACF;AACF;AAOA,SAAS,MAAMD,SAAQ,MAAM;AAC3B,SAAOA,QAAO,SACV,KAAKA,QAAO,QAAQ,IAAI,EAAE,OAAO,CAAC;AAAA;AAAA,IAElC,KAAKA,QAAO,OAAO,IAAI;AAAA;AAC7B;AAOA,SAAS,KAAK,QAAQ,MAAM;AAC1B,SAAO,OAAO,WAAW,WAAW,SAAS,OAAO,IAAI;AAC1D;AAzYA,IAAAO,eAAA;AAAA;AAcA;AACA;AAAA;AAAA;;;ACfA,IAAAC,aAAA;AAAA;AAAA;AAAA;;;ACAA;AAAA;AAOA,IAAAC;AACA,IAAAC;AACA;AAAA;AAAA;;;ACgBO,SAAS,wBAAwB,SAAS;AAC/C,QAAM,UAAU,UAAU,OAAO;AAEjC,QAAM,QAAQ,CAAC;AAEf,QAAMC,QAAO,CAAC;AACd,MAAIC,SAAQ;AAEZ,SAAO,EAAEA,SAAQ,QAAQ,QAAQ;AAC/B,UAAMC,UAAS,QAAQD,MAAK;AAC5B,UAAMC,QAAO,IAAI,IAAI,OAAOA,OAAM;AAClC,IAAAF,MAAKE,QAAO,IAAI,IAAIC;AACpB,IAAAH,MAAKE,QAAO,OAAO,OAAO,IAAI;AAAA,EAChC;AAEA,SAAO,EAAC,OAAO,MAAAF,MAAI;AACrB;AAMA,SAAS,OAAOE,SAAQ;AACtB,SAAO;AAMP,WAAS,KAAK,OAAO;AAEnB,SAAK,MAAM,EAAC,MAAMA,QAAO,MAAM,OAAO,GAAE,GAAG,KAAK;AAChD,SAAK,OAAO;AAAA,EACd;AACF;AAMA,SAASC,OAAM,OAAO;AACpB,QAAMC,QAAO,KAAK,OAAO;AACzB,QAAMC,QAAO,KAAK,MAAM,KAAK,MAAM,SAAS,CAAC;AAC7C,KAAO,WAAWA,KAAI;AACtB,OAAK,KAAK,KAAK;AAEf,EAAAA,MAAK,QAAQD,MAAK,QAAQ,4BAA4B,EAAE;AAC1D;AAMA,SAAS,MAAM,OAAO;AACpB,OAAK,OAAO,MAAM,KAAK,KAAK,MAAM,KAAK;AACvC,OAAK,OAAO,KAAK,KAAK,KAAK,MAAM,KAAK;AACxC;AAUO,SAAS,sBAAsB,SAAS;AAE7C,QAAME,UAAS,CAAC;AAEhB,QAAMC,YAAW,CAAC;AAClB,QAAM,UAAU,UAAU,OAAO;AACjC,MAAIN,SAAQ;AAEZ,SAAO,EAAEA,SAAQ,QAAQ,QAAQ;AAC/B,UAAMC,UAAS,QAAQD,MAAK;AAI5B,IAAAM,UAASL,QAAO,IAAI,IAAI,QAAQA,OAAM;AAEtC,UAAM,OAAOM,OAAMN,SAAQ,MAAM;AAEjC,IAAAI,QAAO,KAAK;AAAA,MACV,SAAS;AAAA,MACT,WAAW,KAAK,OAAO,CAAC;AAAA,MACxB,OAAO,mBAAmB,KAAK,OAAO,CAAC,CAAC;AAAA,IAC1C,CAAC;AAAA,EACH;AAEA,SAAO,EAAC,QAAAA,SAAQ,UAAAC,UAAQ;AAC1B;AAUA,SAAS,QAAQL,SAAQ;AACvB,QAAM,OAAOM,OAAMN,SAAQ,MAAM;AACjC,QAAMC,SAAQK,OAAMN,SAAQ,OAAO;AAEnC,SAAOO;AAUP,WAASA,QAAOJ,OAAM;AACpB,WAAO,QAAQA,MAAK,QAAQ,OAAOA,MAAK,QAAQ,MAAM,OAAOF;AAAA,EAC/D;AACF;AAYA,SAASK,OAAMN,SAAQ,MAAM;AAC3B,SAAOA,QAAO,SACVQ,MAAKR,QAAO,QAAQ,IAAI,EAAE,OAAO,CAAC;AAAA;AAAA,IAElCQ,MAAKR,QAAO,OAAO,IAAI;AAAA;AAC7B;AAaA,SAASQ,MAAK,QAAQ,MAAM;AAC1B,SAAO,OAAO,WAAW,WAAW,SAAS,OAAO,IAAI;AAC1D;AA/KA,IAAAC,aAAA;AAAA;AAaA;AACA;AACA;AAAA;AAAA;;;ACfA;AAAA;AAMA,IAAAC;AAAA;AAAA;;;ACwBe,SAAR,kBAAmC,SAAS;AAGjD,QAAMC;AAAA;AAAA,IAAiC;AAAA;AACvC,QAAM,WAAW,WAAWC;AAC5B,QAAMC,QAAOF,MAAK,KAAK;AAEvB,QAAM,sBACJE,MAAK,wBAAwBA,MAAK,sBAAsB,CAAC;AAC3D,QAAM,yBACJA,MAAK,2BAA2BA,MAAK,yBAAyB,CAAC;AACjE,QAAM,uBACJA,MAAK,yBAAyBA,MAAK,uBAAuB,CAAC;AAE7D,sBAAoB,KAAK,YAAY,QAAQ,CAAC;AAC9C,yBAAuB,KAAK,wBAAwB,QAAQ,CAAC;AAC7D,uBAAqB,KAAK,sBAAsB,QAAQ,CAAC;AAC3D;AA/CA,IAgBMD;AAhBN,IAAAE,aAAA;AAAA;AASA;AAIA;AAGA,IAAMF,gBAAe;AAAA;AAAA;;;AChBrB;AAAA;AAIA,IAAAG;AAAA;AAAA;;;ACJA,IAAa,MACA,WACA,OACA,QACA,MACA,QACA,KACA,KACA,OACA;AATb,IAAAC,cAAA;AAAA;AAAO,IAAM,OAAa;AACnB,IAAM,YAAa;AACnB,IAAM,QAAa;AACnB,IAAM,SAAa;AACnB,IAAM,OAAa;AACnB,IAAM,SAAa;AACnB,IAAM,MAAa;AACnB,IAAM,MAAa;AACnB,IAAM,QAAa;AACnB,IAAM,SAAa;AAAA;AAAA;;;ACT1B,IAOM,KAEA,cA2EO;AApFb;AAAA;AAAA,IAAAC;AAOA,IAAM,MAAM,OAAO,SAAS,WAAW,OAAO;AAE9C,IAAM,eAAe,CAACC,IAAGC,OAAM;AAC7B,YAAM,KAAK,CAAC,KAAKC,WAAU;AACzB,QAAAF,GAAE,IAAIE,QAAO,GAAG;AAChB,eAAO;AAAA,MACT;AAEA,YAAM,SAAS,CAAAA,WAAS;AACtB,YAAIF,GAAE,IAAIE,MAAK;AACb,iBAAOF,GAAE,IAAIE,MAAK;AAEpB,cAAM,CAACC,OAAMC,MAAK,IAAIH,GAAEC,MAAK;AAC7B,gBAAQC,OAAM;AAAA,UACZ,KAAK;AAAA,UACL,KAAK;AACH,mBAAO,GAAGC,QAAOF,MAAK;AAAA,UACxB,KAAK,OAAO;AACV,kBAAM,MAAM,GAAG,CAAC,GAAGA,MAAK;AACxB,uBAAWA,UAASE;AAClB,kBAAI,KAAK,OAAOF,MAAK,CAAC;AACxB,mBAAO;AAAA,UACT;AAAA,UACA,KAAK,QAAQ;AACX,kBAAM,SAAS,GAAG,CAAC,GAAGA,MAAK;AAC3B,uBAAW,CAACG,MAAKH,MAAK,KAAKE;AACzB,qBAAO,OAAOC,IAAG,CAAC,IAAI,OAAOH,MAAK;AACpC,mBAAO;AAAA,UACT;AAAA,UACA,KAAK;AACH,mBAAO,GAAG,IAAI,KAAKE,MAAK,GAAGF,MAAK;AAAA,UAClC,KAAK,QAAQ;AACX,kBAAM,EAAC,QAAQ,MAAK,IAAIE;AACxB,mBAAO,GAAG,IAAI,OAAO,QAAQ,KAAK,GAAGF,MAAK;AAAA,UAC5C;AAAA,UACA,KAAK,KAAK;AACR,kBAAMI,OAAM,GAAG,oBAAI,OAAKJ,MAAK;AAC7B,uBAAW,CAACG,MAAKH,MAAK,KAAKE;AACzB,cAAAE,KAAI,IAAI,OAAOD,IAAG,GAAG,OAAOH,MAAK,CAAC;AACpC,mBAAOI;AAAA,UACT;AAAA,UACA,KAAK,KAAK;AACR,kBAAMC,OAAM,GAAG,oBAAI,OAAKL,MAAK;AAC7B,uBAAWA,UAASE;AAClB,cAAAG,KAAI,IAAI,OAAOL,MAAK,CAAC;AACvB,mBAAOK;AAAA,UACT;AAAA,UACA,KAAK,OAAO;AACV,kBAAM,EAAC,MAAM,SAAAC,SAAO,IAAIJ;AACxB,mBAAO,GAAG,IAAI,IAAI,IAAI,EAAEI,QAAO,GAAGN,MAAK;AAAA,UACzC;AAAA,UACA,KAAK;AACH,mBAAO,GAAG,OAAOE,MAAK,GAAGF,MAAK;AAAA,UAChC,KAAK;AACH,mBAAO,GAAG,OAAO,OAAOE,MAAK,CAAC,GAAGF,MAAK;AAAA,UACxC,KAAK;AACH,mBAAO,GAAG,IAAI,WAAWE,MAAK,EAAE,QAAQA,MAAK;AAAA,UAC/C,KAAK,YAAY;AACf,kBAAM,EAAE,QAAAK,QAAO,IAAI,IAAI,WAAWL,MAAK;AACvC,mBAAO,GAAG,IAAI,SAASK,OAAM,GAAGL,MAAK;AAAA,UACvC;AAAA,QACF;AACA,eAAO,GAAG,IAAI,IAAID,KAAI,EAAEC,MAAK,GAAGF,MAAK;AAAA,MACvC;AAEA,aAAO;AAAA,IACT;AAWO,IAAM,cAAc,gBAAc,aAAa,oBAAI,OAAK,UAAU,EAAE,CAAC;AAAA;AAAA;;;ACpF5E,IAOMQ,QAECC,WACA,MAED,QAgCA,YAKA,YAsHQC;AAvKd;AAAA;AAAA,IAAAC;AAOA,IAAMH,SAAQ;AAEd,KAAM,EAAC,UAAAC,cAAY,CAAC;AACpB,KAAM,EAAC,SAAQ;AAEf,IAAM,SAAS,CAAAG,WAAS;AACtB,YAAMC,QAAO,OAAOD;AACpB,UAAIC,UAAS,YAAY,CAACD;AACxB,eAAO,CAAC,WAAWC,KAAI;AAEzB,YAAM,WAAWJ,UAAS,KAAKG,MAAK,EAAE,MAAM,GAAG,EAAE;AACjD,cAAQ,UAAU;AAAA,QAChB,KAAK;AACH,iBAAO,CAAC,OAAOJ,MAAK;AAAA,QACtB,KAAK;AACH,iBAAO,CAAC,QAAQA,MAAK;AAAA,QACvB,KAAK;AACH,iBAAO,CAAC,MAAMA,MAAK;AAAA,QACrB,KAAK;AACH,iBAAO,CAAC,QAAQA,MAAK;AAAA,QACvB,KAAK;AACH,iBAAO,CAAC,KAAKA,MAAK;AAAA,QACpB,KAAK;AACH,iBAAO,CAAC,KAAKA,MAAK;AAAA,QACpB,KAAK;AACH,iBAAO,CAAC,OAAO,QAAQ;AAAA,MAC3B;AAEA,UAAI,SAAS,SAAS,OAAO;AAC3B,eAAO,CAAC,OAAO,QAAQ;AAEzB,UAAI,SAAS,SAAS,OAAO;AAC3B,eAAO,CAAC,OAAO,QAAQ;AAEzB,aAAO,CAAC,QAAQ,QAAQ;AAAA,IAC1B;AAEA,IAAM,aAAa,CAAC,CAAC,MAAMK,KAAI,MAC7B,SAAS,cACRA,UAAS,cAAcA,UAAS;AAGnC,IAAM,aAAa,CAAC,QAAQ,MAAMC,IAAGC,OAAM;AAEzC,YAAM,KAAK,CAAC,KAAKH,WAAU;AACzB,cAAMI,SAAQD,GAAE,KAAK,GAAG,IAAI;AAC5B,QAAAD,GAAE,IAAIF,QAAOI,MAAK;AAClB,eAAOA;AAAA,MACT;AAEA,YAAM,OAAO,CAAAJ,WAAS;AACpB,YAAIE,GAAE,IAAIF,MAAK;AACb,iBAAOE,GAAE,IAAIF,MAAK;AAEpB,YAAI,CAAC,MAAMC,KAAI,IAAI,OAAOD,MAAK;AAC/B,gBAAQ,MAAM;AAAA,UACZ,KAAK,WAAW;AACd,gBAAI,QAAQA;AACZ,oBAAQC,OAAM;AAAA,cACZ,KAAK;AACH,uBAAO;AACP,wBAAQD,OAAM,SAAS;AACvB;AAAA,cACF,KAAK;AAAA,cACL,KAAK;AACH,oBAAI;AACF,wBAAM,IAAI,UAAU,yBAAyBC,KAAI;AACnD,wBAAQ;AACR;AAAA,cACF,KAAK;AACH,uBAAO,GAAG,CAAC,IAAI,GAAGD,MAAK;AAAA,YAC3B;AACA,mBAAO,GAAG,CAAC,MAAM,KAAK,GAAGA,MAAK;AAAA,UAChC;AAAA,UACA,KAAK,OAAO;AACV,gBAAIC,OAAM;AACR,kBAAI,SAASD;AACb,kBAAIC,UAAS,YAAY;AACvB,yBAAS,IAAI,WAAWD,OAAM,MAAM;AAAA,cACtC,WACSC,UAAS,eAAe;AAC/B,yBAAS,IAAI,WAAWD,MAAK;AAAA,cAC/B;AACA,qBAAO,GAAG,CAACC,OAAM,CAAC,GAAG,MAAM,CAAC,GAAGD,MAAK;AAAA,YACtC;AAEA,kBAAM,MAAM,CAAC;AACb,kBAAMI,SAAQ,GAAG,CAAC,MAAM,GAAG,GAAGJ,MAAK;AACnC,uBAAW,SAASA;AAClB,kBAAI,KAAK,KAAK,KAAK,CAAC;AACtB,mBAAOI;AAAA,UACT;AAAA,UACA,KAAK,QAAQ;AACX,gBAAIH,OAAM;AACR,sBAAQA,OAAM;AAAA,gBACZ,KAAK;AACH,yBAAO,GAAG,CAACA,OAAMD,OAAM,SAAS,CAAC,GAAGA,MAAK;AAAA,gBAC3C,KAAK;AAAA,gBACL,KAAK;AAAA,gBACL,KAAK;AACH,yBAAO,GAAG,CAACC,OAAMD,OAAM,QAAQ,CAAC,GAAGA,MAAK;AAAA,cAC5C;AAAA,YACF;AAEA,gBAAI,QAAS,YAAYA;AACvB,qBAAO,KAAKA,OAAM,OAAO,CAAC;AAE5B,kBAAM,UAAU,CAAC;AACjB,kBAAMI,SAAQ,GAAG,CAAC,MAAM,OAAO,GAAGJ,MAAK;AACvC,uBAAWK,QAAO,KAAKL,MAAK,GAAG;AAC7B,kBAAI,UAAU,CAAC,WAAW,OAAOA,OAAMK,IAAG,CAAC,CAAC;AAC1C,wBAAQ,KAAK,CAAC,KAAKA,IAAG,GAAG,KAAKL,OAAMK,IAAG,CAAC,CAAC,CAAC;AAAA,YAC9C;AACA,mBAAOD;AAAA,UACT;AAAA,UACA,KAAK;AACH,mBAAO,GAAG,CAAC,MAAMJ,OAAM,YAAY,CAAC,GAAGA,MAAK;AAAA,UAC9C,KAAK,QAAQ;AACX,kBAAM,EAAC,QAAQ,MAAK,IAAIA;AACxB,mBAAO,GAAG,CAAC,MAAM,EAAC,QAAQ,MAAK,CAAC,GAAGA,MAAK;AAAA,UAC1C;AAAA,UACA,KAAK,KAAK;AACR,kBAAM,UAAU,CAAC;AACjB,kBAAMI,SAAQ,GAAG,CAAC,MAAM,OAAO,GAAGJ,MAAK;AACvC,uBAAW,CAACK,MAAK,KAAK,KAAKL,QAAO;AAChC,kBAAI,UAAU,EAAE,WAAW,OAAOK,IAAG,CAAC,KAAK,WAAW,OAAO,KAAK,CAAC;AACjE,wBAAQ,KAAK,CAAC,KAAKA,IAAG,GAAG,KAAK,KAAK,CAAC,CAAC;AAAA,YACzC;AACA,mBAAOD;AAAA,UACT;AAAA,UACA,KAAK,KAAK;AACR,kBAAM,UAAU,CAAC;AACjB,kBAAMA,SAAQ,GAAG,CAAC,MAAM,OAAO,GAAGJ,MAAK;AACvC,uBAAW,SAASA,QAAO;AACzB,kBAAI,UAAU,CAAC,WAAW,OAAO,KAAK,CAAC;AACrC,wBAAQ,KAAK,KAAK,KAAK,CAAC;AAAA,YAC5B;AACA,mBAAOI;AAAA,UACT;AAAA,QACF;AAEA,cAAM,EAAC,SAAAE,SAAO,IAAIN;AAClB,eAAO,GAAG,CAAC,MAAM,EAAC,MAAMC,OAAM,SAAAK,SAAO,CAAC,GAAGN,MAAK;AAAA,MAChD;AAEA,aAAO;AAAA,IACT;AAcQ,IAAMF,aAAY,CAACE,QAAO,EAAC,MAAM,MAAK,IAAI,CAAC,MAAM;AACvD,YAAMG,KAAI,CAAC;AACX,aAAO,WAAW,EAAE,QAAQ,QAAQ,CAAC,CAAC,MAAM,oBAAI,OAAKA,EAAC,EAAEH,MAAK,GAAGG;AAAA,IAClE;AAAA;AAAA;;;AC1KA,IAeO;AAfP;AAAA;AAAA;AACA;AAcA,IAAO,cAAQ,OAAO,oBAAoB;AAAA;AAAA,MAExC,CAAC,KAAK,YACJ,YAAY,UAAU,WAAW,WAAW,WAC1C,YAAYI,WAAU,KAAK,OAAO,CAAC,IAAI,gBAAgB,GAAG;AAAA,QAE9D,CAAC,KAAK,YAAY,YAAYA,WAAU,KAAK,OAAO,CAAC;AAAA;AAAA;;;AC4BvD,SAASC,OAAMC,OAAM;AACnB,SAAOD;AAQP,WAASA,OAAME,OAAM;AACnB,UAAMF,SAASE,SAAQA,MAAK,YAAYA,MAAK,SAASD,KAAI,KAAM,CAAC;AAEjE,QACE,OAAOD,OAAM,SAAS,YACtBA,OAAM,OAAO,KACb,OAAOA,OAAM,WAAW,YACxBA,OAAM,SAAS,GACf;AACA,aAAO;AAAA,QACL,MAAMA,OAAM;AAAA,QACZ,QAAQA,OAAM;AAAA,QACd,QACE,OAAOA,OAAM,WAAW,YAAYA,OAAM,SAAS,KAC/CA,OAAM,SACN;AAAA,MACR;AAAA,IACF;AAAA,EACF;AACF;AAUO,SAASG,UAASD,OAAM;AAC7B,QAAM,QAAQ,WAAWA,KAAI;AAC7B,QAAME,OAAM,SAASF,KAAI;AAEzB,MAAI,SAASE,MAAK;AAChB,WAAO,EAAC,OAAO,KAAAA,KAAG;AAAA,EACpB;AACF;AA9FA,IA6Ba,UAUA;AAvCb,IAAAC,aAAA;AAAA;AA6BO,IAAM,WAAWL,OAAM,KAAK;AAU5B,IAAM,aAAaA,OAAM,OAAO;AAAA;AAAA;;;ACvCvC;AAAA;AAAA,IAAAM;AAAA;AAAA;;;ACAA,IAKM,MASO;AAdb;AAAA;AAKA,IAAM,OAAO,CAAC,mBAAmB,aAAa,gBAAgB;AASvD,IAAM,gBAAgB;AAAA,MAC3B,WAAW;AAAA,QACT,OAAO,CAAC,OAAO;AAAA,QACf,IAAI,CAAC,OAAO;AAAA,QACZ,IAAI,CAAC,OAAO;AAAA,QACZ,OAAO,CAAC,OAAO;AAAA,QACf,OAAO,CAAC,OAAO;AAAA,QACf,IAAI,CAAC,OAAO;AAAA,MACd;AAAA,MACA,YAAY;AAAA,QACV,GAAG;AAAA,UACD,GAAG;AAAA;AAAA,UAEH;AAAA,UACA;AAAA,UACA,CAAC,aAAa,uBAAuB;AAAA,UACrC;AAAA,QACF;AAAA,QACA,YAAY,CAAC,MAAM;AAAA;AAAA;AAAA;AAAA,QAInB,MAAM,CAAC,CAAC,aAAa,aAAa,CAAC;AAAA,QACnC,KAAK,CAAC,MAAM;AAAA,QACZ,KAAK,CAAC,aAAa,UAAU;AAAA,QAC7B,IAAI,CAAC,GAAG,IAAI;AAAA;AAAA,QAEZ,IAAI,CAAC,CAAC,aAAa,SAAS,CAAC;AAAA,QAC7B,KAAK,CAAC,GAAG,MAAM,YAAY,KAAK;AAAA;AAAA;AAAA;AAAA,QAIhC,OAAO;AAAA,UACL,CAAC,YAAY,IAAI;AAAA,UACjB,CAAC,QAAQ,UAAU;AAAA,QACrB;AAAA,QACA,KAAK,CAAC,MAAM;AAAA;AAAA;AAAA;AAAA,QAIZ,IAAI,CAAC,CAAC,aAAa,gBAAgB,CAAC;AAAA;AAAA;AAAA;AAAA,QAIpC,IAAI,CAAC,GAAG,MAAM,CAAC,aAAa,oBAAoB,CAAC;AAAA,QACjD,GAAG,CAAC,MAAM;AAAA,QACV,SAAS,CAAC,iBAAiB,CAAC,aAAa,WAAW,CAAC;AAAA,QACrD,QAAQ,CAAC,QAAQ;AAAA,QACjB,SAAS,CAAC,GAAG,IAAI;AAAA,QACjB,OAAO,CAAC,GAAG,IAAI;AAAA;AAAA;AAAA;AAAA,QAIf,IAAI,CAAC,GAAG,MAAM,CAAC,aAAa,oBAAoB,CAAC;AAAA,QACjD,KAAK;AAAA,UACH;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA;AAAA;AAAA;AAAA;AAAA,UAKA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,QACF;AAAA,MACF;AAAA,MACA,SAAS,CAAC,mBAAmB,kBAAkB,MAAM,MAAM;AAAA,MAC3D,eAAe;AAAA,MACf,WAAW;AAAA,QACT,MAAM,CAAC,QAAQ,OAAO;AAAA,QACtB,MAAM,CAAC,QAAQ,SAAS,OAAO,QAAQ,UAAU,MAAM;AAAA,QACvD,UAAU,CAAC,QAAQ,OAAO;AAAA,QAC1B,KAAK,CAAC,QAAQ,OAAO;AAAA,MACvB;AAAA,MACA,UAAU;AAAA,QACR,OAAO,EAAC,UAAU,MAAM,MAAM,WAAU;AAAA,MAC1C;AAAA,MACA,OAAO,CAAC,QAAQ;AAAA,MAChB,UAAU;AAAA,QACR;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA;AAAA;AAAA;AAAA,QAIA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,MACF;AAAA,IACF;AAAA;AAAA;;;ACoBO,SAAS,SAASC,OAAM,SAAS;AAEtC,MAAI,SAAS,EAAC,MAAM,QAAQ,UAAU,CAAC,EAAC;AAGxC,QAAM,QAAQ;AAAA,IACZ,QAAQ,UAAU,EAAC,GAAG,eAAe,GAAG,QAAO,IAAI;AAAA,IACnD,OAAO,CAAC;AAAA,EACV;AACA,QAAMC,WAAU,UAAU,OAAOD,KAAI;AAErC,MAAIC,UAAS;AACX,QAAI,MAAM,QAAQA,QAAO,GAAG;AAC1B,UAAIA,SAAQ,WAAW,GAAG;AACxB,iBAASA,SAAQ,CAAC;AAAA,MACpB,OAAO;AACL,eAAO,WAAWA;AAAA,MACpB;AAAA,IACF,OAAO;AACL,eAASA;AAAA,IACX;AAAA,EACF;AAEA,SAAO;AACT;AAYA,SAAS,UAAU,OAAOD,OAAM;AAC9B,MAAIA,SAAQ,OAAOA,UAAS,UAAU;AACpC,UAAME;AAAA;AAAA,MAA2DF;AAAA;AACjE,UAAMG,QAAO,OAAOD,QAAO,SAAS,WAAWA,QAAO,OAAO;AAE7D,YAAQC,OAAM;AAAA,MACZ,KAAK,WAAW;AACd,eAAO,QAAQ,OAAOD,OAAM;AAAA,MAC9B;AAAA,MAEA,KAAK,WAAW;AACd,eAAO,QAAQ,OAAOA,OAAM;AAAA,MAC9B;AAAA,MAEA,KAAK,WAAW;AACd,eAAOE,SAAQ,OAAOF,OAAM;AAAA,MAC9B;AAAA,MAEA,KAAK,QAAQ;AACX,eAAOG,MAAK,OAAOH,OAAM;AAAA,MAC3B;AAAA,MAEA,KAAK,QAAQ;AACX,eAAOI,MAAK,OAAOJ,OAAM;AAAA,MAC3B;AAAA,MAEA;AAAA,IACF;AAAA,EACF;AACF;AAYA,SAAS,QAAQ,OAAOA,SAAQ;AAC9B,MAAI,MAAM,OAAO,eAAe;AAE9B,UAAM,SAAS,OAAOA,QAAO,UAAU,WAAWA,QAAO,QAAQ;AACjE,UAAMK,SAAQ,OAAO,QAAQ,KAAK;AAClC,UAAMC,SAAQD,SAAQ,IAAI,SAAS,OAAO,MAAM,GAAGA,MAAK;AAGxD,UAAMP,QAAO,EAAC,MAAM,WAAW,OAAAQ,OAAK;AAEpC,UAAMR,OAAME,OAAM;AAElB,WAAOF;AAAA,EACT;AACF;AAYA,SAAS,QAAQ,OAAOE,SAAQ;AAC9B,MAAI,MAAM,OAAO,eAAe;AAE9B,UAAMF,QAAO,EAAC,MAAM,UAAS;AAE7B,UAAMA,OAAME,OAAM;AAElB,WAAOF;AAAA,EACT;AACF;AAYA,SAASI,SAAQ,OAAOF,SAAQ;AAC9B,QAAM,OAAO,OAAOA,QAAO,YAAY,WAAWA,QAAO,UAAU;AAEnE,QAAM,MAAM,KAAK,IAAI;AAErB,QAAMO;AAAA;AAAA,IACJ,SAAS,OAAOP,QAAO,QAAQ;AAAA;AAEjC,QAAM,cAAc,WAAW,OAAOA,QAAO,UAAU;AAEvD,QAAM,MAAM,IAAI;AAEhB,MAAI,cAAc;AAElB,MACE,QACA,SAAS,QACR,CAAC,MAAM,OAAO,YAAY,MAAM,OAAO,SAAS,SAAS,IAAI,IAC9D;AACA,kBAAc;AAId,QAAI,MAAM,OAAO,aAAaQ,KAAI,KAAK,MAAM,OAAO,WAAW,IAAI,GAAG;AACpE,YAAM,YAAY,MAAM,OAAO,UAAU,IAAI;AAC7C,UAAIH,SAAQ;AAEZ,oBAAc;AAEd,aAAO,EAAEA,SAAQ,UAAU,QAAQ;AACjC,YAAI,MAAM,MAAM,SAAS,UAAUA,MAAK,CAAC,GAAG;AAC1C,wBAAc;AAAA,QAChB;AAAA,MACF;AAAA,IACF;AAAA,EACF;AAEA,MAAI,CAAC,aAAa;AAChB,WAAO,MAAM,OAAO,SAAS,CAAC,MAAM,OAAO,MAAM,SAAS,IAAI,IAC1DE,WACA;AAAA,EACN;AAGA,QAAMT,QAAO;AAAA,IACX,MAAM;AAAA,IACN,SAAS;AAAA,IACT,YAAY;AAAA,IACZ,UAAUS;AAAA,EACZ;AAEA,QAAMT,OAAME,OAAM;AAElB,SAAOF;AACT;AAYA,SAASK,MAAK,OAAOH,SAAQ;AAC3B,QAAMO;AAAA;AAAA,IACJ,SAAS,OAAOP,QAAO,QAAQ;AAAA;AAIjC,QAAMF,QAAO,EAAC,MAAM,QAAQ,UAAUS,SAAO;AAE7C,QAAMT,OAAME,OAAM;AAElB,SAAOF;AACT;AAYA,SAASM,MAAKK,IAAGT,SAAQ;AACvB,QAAMM,SAAQ,OAAON,QAAO,UAAU,WAAWA,QAAO,QAAQ;AAEhE,QAAMF,QAAO,EAAC,MAAM,QAAQ,OAAAQ,OAAK;AAEjC,QAAMR,OAAME,OAAM;AAElB,SAAOF;AACT;AAYA,SAAS,SAAS,OAAOY,WAAU;AAEjC,QAAM,UAAU,CAAC;AAEjB,MAAI,MAAM,QAAQA,SAAQ,GAAG;AAC3B,UAAM;AAAA;AAAA,MAA2DA;AAAA;AACjE,QAAIL,SAAQ;AAEZ,WAAO,EAAEA,SAAQ,gBAAgB,QAAQ;AACvC,YAAMC,SAAQ,UAAU,OAAO,gBAAgBD,MAAK,CAAC;AAErD,UAAIC,QAAO;AACT,YAAI,MAAM,QAAQA,MAAK,GAAG;AACxB,kBAAQ,KAAK,GAAGA,MAAK;AAAA,QACvB,OAAO;AACL,kBAAQ,KAAKA,MAAK;AAAA,QACpB;AAAA,MACF;AAAA,IACF;AAAA,EACF;AAEA,SAAO;AACT;AAYA,SAAS,WAAW,OAAOK,aAAY;AACrC,QAAM,UAAU,MAAM,MAAM,MAAM,MAAM,SAAS,CAAC;AAClD,QAAM,aAAa,MAAM,OAAO;AAChC,QAAM,WAAW,MAAM,OAAO;AAC9B,QAAM,WACJ,cAAcH,KAAI,KAAK,YAAY,OAAO,IACtC,WAAW,OAAO,IAClB;AACN,QAAM,WACJ,cAAcA,KAAI,KAAK,YAAY,GAAG,IAAI,WAAW,GAAG,IAAI;AAC9D,QAAM;AAAA;AAAA,IAEFG,eAAc,OAAOA,gBAAe,WAAWA,cAAa,CAAC;AAAA;AAGjE,QAAM,SAAS,CAAC;AAEhB,MAAIC;AAEJ,OAAKA,QAAO,aAAa;AACvB,QAAIJ,KAAI,KAAK,aAAaI,IAAG,GAAG;AAC9B,YAAMZ,UAAS,YAAYY,IAAG;AAC9B,UAAIC,QAAO;AAAA,QACT;AAAA,QACA,eAAe,UAAUD,IAAG;AAAA,QAC5BA;AAAA,QACAZ;AAAA,MACF;AAEA,UAAIa,UAAS,QAAQA,UAAS,QAAW;AACvC,QAAAA,QAAO,cAAc,OAAO,eAAe,UAAUD,IAAG,GAAGA,MAAKZ,OAAM;AAAA,MACxE;AAEA,UAAIa,UAAS,QAAQA,UAAS,QAAW;AACvC,eAAOD,IAAG,IAAIC;AAAA,MAChB;AAAA,IACF;AAAA,EACF;AAEA,MAAI,YAAYL,KAAI,KAAK,UAAU,OAAO,GAAG;AAC3C,UAAMG,cAAa,SAAS,OAAO;AAEnC,SAAKC,QAAOD,aAAY;AACtB,UAAIH,KAAI,KAAKG,aAAYC,IAAG,KAAK,CAACJ,KAAI,KAAK,QAAQI,IAAG,GAAG;AACvD,eAAOA,IAAG,IAAID,YAAWC,IAAG;AAAA,MAC9B;AAAA,IACF;AAAA,EACF;AAEA,SAAO;AACT;AAgBA,SAAS,cAAc,OAAOE,aAAYF,MAAKN,QAAO;AACpD,SAAOQ,cACH,MAAM,QAAQR,MAAK,IACjB,kBAAkB,OAAOQ,aAAYF,MAAKN,MAAK,IAC/C,uBAAuB,OAAOQ,aAAYF,MAAKN,MAAK,IACtD;AACN;AAgBA,SAAS,kBAAkB,OAAOQ,aAAYF,MAAK,QAAQ;AACzD,MAAIP,SAAQ;AAEZ,QAAM,SAAS,CAAC;AAEhB,SAAO,EAAEA,SAAQ,OAAO,QAAQ;AAC9B,UAAMC,SAAQ,uBAAuB,OAAOQ,aAAYF,MAAK,OAAOP,MAAK,CAAC;AAE1E,QAAI,OAAOC,WAAU,YAAY,OAAOA,WAAU,UAAU;AAC1D,aAAO,KAAKA,MAAK;AAAA,IACnB;AAAA,EACF;AAEA,SAAO;AACT;AAgBA,SAAS,uBAAuB,OAAOQ,aAAYF,MAAKN,QAAO;AAC7D,MACE,OAAOA,WAAU,aACjB,OAAOA,WAAU,YACjB,OAAOA,WAAU,UACjB;AACA;AAAA,EACF;AAEA,MAAI,CAAC,aAAa,OAAOM,MAAKN,MAAK,GAAG;AACpC;AAAA,EACF;AAIA,MAAI,OAAOQ,gBAAe,YAAYA,YAAW,SAAS,GAAG;AAC3D,QAAIC,MAAK;AACT,QAAIV,SAAQ;AAEZ,WAAO,EAAEA,SAAQS,YAAW,QAAQ;AAClC,YAAM,UAAUA,YAAWT,MAAK;AAGhC,UAAI,WAAW,OAAO,YAAY,YAAY,WAAW,SAAS;AAChE,YAAI,QAAQ,KAAK,OAAOC,MAAK,CAAC,GAAG;AAC/B,UAAAS,MAAK;AACL;AAAA,QACF;AAAA,MACF,WAES,YAAYT,QAAO;AAC1B,QAAAS,MAAK;AACL;AAAA,MACF;AAAA,IACF;AAEA,QAAI,CAACA,IAAI;AAAA,EACX;AAEA,SAAO,MAAM,OAAO,WAClB,MAAM,OAAO,iBACb,MAAM,OAAO,QAAQ,SAASH,IAAG,IAC/B,MAAM,OAAO,gBAAgBN,SAC7BA;AACN;AAcA,SAAS,aAAa,OAAOM,MAAKN,QAAO;AACvC,QAAM,YACJ,MAAM,OAAO,aAAaE,KAAI,KAAK,MAAM,OAAO,WAAWI,IAAG,IAC1D,MAAM,OAAO,UAAUA,IAAG,IAC1B;AAGN,MAAI,CAAC,aAAa,UAAU,WAAW,GAAG;AACxC,WAAO;AAAA,EACT;AAEA,QAAM,MAAM,OAAON,MAAK;AACxB,QAAM,QAAQ,IAAI,QAAQ,GAAG;AAC7B,QAAM,eAAe,IAAI,QAAQ,GAAG;AACpC,QAAM,aAAa,IAAI,QAAQ,GAAG;AAClC,QAAM,QAAQ,IAAI,QAAQ,GAAG;AAE7B,MACE,QAAQ;AAAA,EAEP,QAAQ,MAAM,QAAQ,SACtB,eAAe,MAAM,QAAQ,gBAC7B,aAAa,MAAM,QAAQ,YAC5B;AACA,WAAO;AAAA,EACT;AAEA,MAAID,SAAQ;AAEZ,SAAO,EAAEA,SAAQ,UAAU,QAAQ;AACjC,UAAM,WAAW,UAAUA,MAAK;AAEhC,QACE,UAAU,SAAS,UACnB,IAAI,MAAM,GAAG,SAAS,MAAM,MAAM,UAClC;AACA,aAAO;AAAA,IACT;AAAA,EACF;AAEA,SAAO;AACT;AAYA,SAAS,MAAMP,OAAME,SAAQ;AAC3B,QAAM,gBAAgBgB;AAAA;AAAA,IAEpBhB;AAAA,EACF;AAEA,MAAIA,QAAO,MAAM;AACf,IAAAF,MAAK,OAAO,YAAgBE,QAAO,IAAI;AAAA,EACzC;AAEA,MAAI,cAAe,CAAAF,MAAK,WAAW;AACrC;AAQA,SAAS,eAAe,aAAac,MAAK;AAExC,MAAI;AACJ,MAAIP,SAAQ;AAEZ,MAAI,aAAa;AACf,WAAO,EAAEA,SAAQ,YAAY,QAAQ;AACnC,YAAM,QAAQ,YAAYA,MAAK;AAC/B,YAAM,OAAO,OAAO,UAAU,WAAW,QAAQ,MAAM,CAAC;AAExD,UAAI,SAASO,MAAK;AAChB,eAAO;AAAA,MACT;AAEA,UAAI,SAAS,QAAS,eAAc;AAAA,IACtC;AAAA,EACF;AAEA,MAAIA,KAAI,SAAS,KAAKA,KAAI,MAAM,GAAG,CAAC,EAAE,YAAY,MAAM,QAAQ;AAC9D,WAAO;AAAA,EACT;AACF;AA5vBA,IAwNMJ;AAxNN,IAAAS,aAAA;AAAA;AAoNA;AACA;AACA;AAEA,IAAMT,OAAM,CAAC,EAAE;AAAA;AAAA;;;ACxNf;AAAA;AAIA,IAAAU;AACA;AAAA;AAAA;;;ACWO,SAASC,YAAW,OAAOC,OAAM;AAEtC,QAAM,SAAS;AAAA,IACb,MAAM;AAAA,IACN,SAAS;AAAA,IACT,YAAY,CAAC;AAAA,IACb,UAAU,MAAM,KAAK,MAAM,IAAIA,KAAI,GAAG,IAAI;AAAA,EAC5C;AACA,QAAM,MAAMA,OAAM,MAAM;AACxB,SAAO,MAAM,UAAUA,OAAM,MAAM;AACrC;AA1BA,IAAAC,mBAAA;AAAA;AAAA;AAAA;;;ACgBO,SAASC,WAAU,OAAOC,OAAM;AAErC,QAAM,SAAS,EAAC,MAAM,WAAW,SAAS,MAAM,YAAY,CAAC,GAAG,UAAU,CAAC,EAAC;AAC5E,QAAM,MAAMA,OAAM,MAAM;AACxB,SAAO,CAAC,MAAM,UAAUA,OAAM,MAAM,GAAG,EAAC,MAAM,QAAQ,OAAO,KAAI,CAAC;AACpE;AArBA,IAAAC,cAAA;AAAA;AAAA;AAAA;;;ACgBO,SAASC,MAAK,OAAOC,OAAM;AAChC,QAAMC,SAAQD,MAAK,QAAQA,MAAK,QAAQ,OAAO;AAE/C,QAAME,cAAa,CAAC;AAEpB,QAAM,WAAWF,MAAK,OAAOA,MAAK,KAAK,MAAM,KAAK,IAAI,CAAC;AAGvD,MAAI,SAAS,SAAS,GAAG;AACvB,IAAAE,YAAW,YAAY,CAAC,cAAc,SAAS,CAAC,CAAC;AAAA,EACnD;AAIA,MAAI,SAAS;AAAA,IACX,MAAM;AAAA,IACN,SAAS;AAAA,IACT,YAAAA;AAAA,IACA,UAAU,CAAC,EAAC,MAAM,QAAQ,OAAAD,OAAK,CAAC;AAAA,EAClC;AAEA,MAAID,MAAK,MAAM;AACb,WAAO,OAAO,EAAC,MAAMA,MAAK,KAAI;AAAA,EAChC;AAEA,QAAM,MAAMA,OAAM,MAAM;AACxB,WAAS,MAAM,UAAUA,OAAM,MAAM;AAGrC,WAAS,EAAC,MAAM,WAAW,SAAS,OAAO,YAAY,CAAC,GAAG,UAAU,CAAC,MAAM,EAAC;AAC7E,QAAM,MAAMA,OAAM,MAAM;AACxB,SAAO;AACT;AAhDA,IAAAG,aAAA;AAAA;AAAA;AAAA;;;ACgBO,SAAS,cAAc,OAAOC,OAAM;AAEzC,QAAM,SAAS;AAAA,IACb,MAAM;AAAA,IACN,SAAS;AAAA,IACT,YAAY,CAAC;AAAA,IACb,UAAU,MAAM,IAAIA,KAAI;AAAA,EAC1B;AACA,QAAM,MAAMA,OAAM,MAAM;AACxB,SAAO,MAAM,UAAUA,OAAM,MAAM;AACrC;AA1BA;AAAA;AAAA;AAAA;;;ACgBO,SAASC,UAAS,OAAOC,OAAM;AAEpC,QAAM,SAAS;AAAA,IACb,MAAM;AAAA,IACN,SAAS;AAAA,IACT,YAAY,CAAC;AAAA,IACb,UAAU,MAAM,IAAIA,KAAI;AAAA,EAC1B;AACA,QAAM,MAAMA,OAAM,MAAM;AACxB,SAAO,MAAM,UAAUA,OAAM,MAAM;AACrC;AA1BA,IAAAC,iBAAA;AAAA;AAAA;AAAA;;;ACkBO,SAASC,mBAAkB,OAAOC,OAAM;AAC7C,QAAM,gBACJ,OAAO,MAAM,QAAQ,kBAAkB,WACnC,MAAM,QAAQ,gBACd;AACN,QAAM,KAAK,OAAOA,MAAK,UAAU,EAAE,YAAY;AAC/C,QAAM,SAAS,aAAa,GAAG,YAAY,CAAC;AAC5C,QAAMC,SAAQ,MAAM,cAAc,QAAQ,EAAE;AAE5C,MAAIC;AAEJ,MAAI,eAAe,MAAM,eAAe,IAAI,EAAE;AAE9C,MAAI,iBAAiB,QAAW;AAC9B,mBAAe;AACf,UAAM,cAAc,KAAK,EAAE;AAC3B,IAAAA,WAAU,MAAM,cAAc;AAAA,EAChC,OAAO;AACL,IAAAA,WAAUD,SAAQ;AAAA,EACpB;AAEA,kBAAgB;AAChB,QAAM,eAAe,IAAI,IAAI,YAAY;AAGzC,QAAME,QAAO;AAAA,IACX,MAAM;AAAA,IACN,SAAS;AAAA,IACT,YAAY;AAAA,MACV,MAAM,MAAM,gBAAgB,QAAQ;AAAA,MACpC,IACE,gBACA,WACA,UACC,eAAe,IAAI,MAAM,eAAe;AAAA,MAC3C,iBAAiB;AAAA,MACjB,iBAAiB,CAAC,gBAAgB;AAAA,IACpC;AAAA,IACA,UAAU,CAAC,EAAC,MAAM,QAAQ,OAAO,OAAOD,QAAO,EAAC,CAAC;AAAA,EACnD;AACA,QAAM,MAAMF,OAAMG,KAAI;AAGtB,QAAM,MAAM;AAAA,IACV,MAAM;AAAA,IACN,SAAS;AAAA,IACT,YAAY,CAAC;AAAA,IACb,UAAU,CAACA,KAAI;AAAA,EACjB;AACA,QAAM,MAAMH,OAAM,GAAG;AACrB,SAAO,MAAM,UAAUA,OAAM,GAAG;AAClC;AArEA;AAAA;AAMA;AAAA;AAAA;;;ACUO,SAASI,SAAQ,OAAOC,OAAM;AAEnC,QAAM,SAAS;AAAA,IACb,MAAM;AAAA,IACN,SAAS,MAAMA,MAAK;AAAA,IACpB,YAAY,CAAC;AAAA,IACb,UAAU,MAAM,IAAIA,KAAI;AAAA,EAC1B;AACA,QAAM,MAAMA,OAAM,MAAM;AACxB,SAAO,MAAM,UAAUA,OAAM,MAAM;AACrC;AA1BA,IAAAC,gBAAA;AAAA;AAAA;AAAA;;;ACkBO,SAASC,MAAK,OAAOC,OAAM;AAChC,MAAI,MAAM,QAAQ,oBAAoB;AAEpC,UAAM,SAAS,EAAC,MAAM,OAAO,OAAOA,MAAK,MAAK;AAC9C,UAAM,MAAMA,OAAM,MAAM;AACxB,WAAO,MAAM,UAAUA,OAAM,MAAM;AAAA,EACrC;AAEA,SAAO;AACT;AA3BA,IAAAC,aAAA;AAAA;AAAA;AAAA;;;ACgBO,SAAS,OAAO,OAAOC,OAAM;AAClC,QAAM,UAAUA,MAAK;AACrB,MAAI,SAAS;AAEb,MAAI,YAAY,aAAa;AAC3B,cAAU;AAAA,EACZ,WAAW,YAAY,QAAQ;AAC7B,cAAU,OAAOA,MAAK,SAASA,MAAK,cAAc;AAAA,EACpD;AAEA,MAAIA,MAAK,SAAS,kBAAkB;AAClC,WAAO,CAAC,EAAC,MAAM,QAAQ,OAAO,OAAOA,MAAK,MAAM,OAAM,CAAC;AAAA,EACzD;AAEA,QAAM,WAAW,MAAM,IAAIA,KAAI;AAC/B,QAAMC,QAAO,SAAS,CAAC;AAEvB,MAAIA,SAAQA,MAAK,SAAS,QAAQ;AAChC,IAAAA,MAAK,QAAQ,MAAMA,MAAK;AAAA,EAC1B,OAAO;AACL,aAAS,QAAQ,EAAC,MAAM,QAAQ,OAAO,IAAG,CAAC;AAAA,EAC7C;AAEA,QAAM,OAAO,SAAS,SAAS,SAAS,CAAC;AAEzC,MAAI,QAAQ,KAAK,SAAS,QAAQ;AAChC,SAAK,SAAS;AAAA,EAChB,OAAO;AACL,aAAS,KAAK,EAAC,MAAM,QAAQ,OAAO,OAAM,CAAC;AAAA,EAC7C;AAEA,SAAO;AACT;AAhDA;AAAA;AAAA;AAAA;;;ACmBO,SAASC,gBAAe,OAAOC,OAAM;AAC1C,QAAM,KAAK,OAAOA,MAAK,UAAU,EAAE,YAAY;AAC/C,QAAMC,cAAa,MAAM,eAAe,IAAI,EAAE;AAE9C,MAAI,CAACA,aAAY;AACf,WAAO,OAAO,OAAOD,KAAI;AAAA,EAC3B;AAGA,QAAME,cAAa,EAAC,KAAK,aAAaD,YAAW,OAAO,EAAE,GAAG,KAAKD,MAAK,IAAG;AAE1E,MAAIC,YAAW,UAAU,QAAQA,YAAW,UAAU,QAAW;AAC/D,IAAAC,YAAW,QAAQD,YAAW;AAAA,EAChC;AAGA,QAAM,SAAS,EAAC,MAAM,WAAW,SAAS,OAAO,YAAAC,aAAY,UAAU,CAAC,EAAC;AACzE,QAAM,MAAMF,OAAM,MAAM;AACxB,SAAO,MAAM,UAAUA,OAAM,MAAM;AACrC;AAtCA,IAAAG,wBAAA;AAAA;AAMA;AACA;AAAA;AAAA;;;ACWO,SAASC,OAAM,OAAOC,OAAM;AAEjC,QAAMC,cAAa,EAAC,KAAK,aAAaD,MAAK,GAAG,EAAC;AAE/C,MAAIA,MAAK,QAAQ,QAAQA,MAAK,QAAQ,QAAW;AAC/C,IAAAC,YAAW,MAAMD,MAAK;AAAA,EACxB;AAEA,MAAIA,MAAK,UAAU,QAAQA,MAAK,UAAU,QAAW;AACnD,IAAAC,YAAW,QAAQD,MAAK;AAAA,EAC1B;AAGA,QAAM,SAAS,EAAC,MAAM,WAAW,SAAS,OAAO,YAAAC,aAAY,UAAU,CAAC,EAAC;AACzE,QAAM,MAAMD,OAAM,MAAM;AACxB,SAAO,MAAM,UAAUA,OAAM,MAAM;AACrC;AAlCA,IAAAE,cAAA;AAAA;AAMA;AAAA;AAAA;;;ACUO,SAASC,YAAW,OAAOC,OAAM;AAEtC,QAAMC,QAAO,EAAC,MAAM,QAAQ,OAAOD,MAAK,MAAM,QAAQ,aAAa,GAAG,EAAC;AACvE,QAAM,MAAMA,OAAMC,KAAI;AAGtB,QAAM,SAAS;AAAA,IACb,MAAM;AAAA,IACN,SAAS;AAAA,IACT,YAAY,CAAC;AAAA,IACb,UAAU,CAACA,KAAI;AAAA,EACjB;AACA,QAAM,MAAMD,OAAM,MAAM;AACxB,SAAO,MAAM,UAAUA,OAAM,MAAM;AACrC;AA9BA,IAAAE,oBAAA;AAAA;AAAA;AAAA;;;ACmBO,SAASC,eAAc,OAAOC,OAAM;AACzC,QAAM,KAAK,OAAOA,MAAK,UAAU,EAAE,YAAY;AAC/C,QAAMC,cAAa,MAAM,eAAe,IAAI,EAAE;AAE9C,MAAI,CAACA,aAAY;AACf,WAAO,OAAO,OAAOD,KAAI;AAAA,EAC3B;AAGA,QAAME,cAAa,EAAC,MAAM,aAAaD,YAAW,OAAO,EAAE,EAAC;AAE5D,MAAIA,YAAW,UAAU,QAAQA,YAAW,UAAU,QAAW;AAC/D,IAAAC,YAAW,QAAQD,YAAW;AAAA,EAChC;AAGA,QAAM,SAAS;AAAA,IACb,MAAM;AAAA,IACN,SAAS;AAAA,IACT,YAAAC;AAAA,IACA,UAAU,MAAM,IAAIF,KAAI;AAAA,EAC1B;AACA,QAAM,MAAMA,OAAM,MAAM;AACxB,SAAO,MAAM,UAAUA,OAAM,MAAM;AACrC;AA3CA,IAAAG,uBAAA;AAAA;AAMA;AACA;AAAA;AAAA;;;ACWO,SAASC,MAAK,OAAOC,OAAM;AAEhC,QAAMC,cAAa,EAAC,MAAM,aAAaD,MAAK,GAAG,EAAC;AAEhD,MAAIA,MAAK,UAAU,QAAQA,MAAK,UAAU,QAAW;AACnD,IAAAC,YAAW,QAAQD,MAAK;AAAA,EAC1B;AAGA,QAAM,SAAS;AAAA,IACb,MAAM;AAAA,IACN,SAAS;AAAA,IACT,YAAAC;AAAA,IACA,UAAU,MAAM,IAAID,KAAI;AAAA,EAC1B;AACA,QAAM,MAAMA,OAAM,MAAM;AACxB,SAAO,MAAM,UAAUA,OAAM,MAAM;AACrC;AAnCA,IAAAE,aAAA;AAAA;AAMA;AAAA;AAAA;;;ACYO,SAASC,UAAS,OAAOC,OAAM,QAAQ;AAC5C,QAAM,UAAU,MAAM,IAAIA,KAAI;AAC9B,QAAM,QAAQ,SAAS,UAAU,MAAM,IAAI,cAAcA,KAAI;AAE7D,QAAMC,cAAa,CAAC;AAEpB,QAAMC,YAAW,CAAC;AAElB,MAAI,OAAOF,MAAK,YAAY,WAAW;AACrC,UAAMG,QAAO,QAAQ,CAAC;AAEtB,QAAIC;AAEJ,QAAID,SAAQA,MAAK,SAAS,aAAaA,MAAK,YAAY,KAAK;AAC3D,MAAAC,aAAYD;AAAA,IACd,OAAO;AACL,MAAAC,aAAY,EAAC,MAAM,WAAW,SAAS,KAAK,YAAY,CAAC,GAAG,UAAU,CAAC,EAAC;AACxE,cAAQ,QAAQA,UAAS;AAAA,IAC3B;AAEA,QAAIA,WAAU,SAAS,SAAS,GAAG;AACjC,MAAAA,WAAU,SAAS,QAAQ,EAAC,MAAM,QAAQ,OAAO,IAAG,CAAC;AAAA,IACvD;AAEA,IAAAA,WAAU,SAAS,QAAQ;AAAA,MACzB,MAAM;AAAA,MACN,SAAS;AAAA,MACT,YAAY,EAAC,MAAM,YAAY,SAASJ,MAAK,SAAS,UAAU,KAAI;AAAA,MACpE,UAAU,CAAC;AAAA,IACb,CAAC;AAID,IAAAC,YAAW,YAAY,CAAC,gBAAgB;AAAA,EAC1C;AAEA,MAAII,SAAQ;AAEZ,SAAO,EAAEA,SAAQ,QAAQ,QAAQ;AAC/B,UAAM,QAAQ,QAAQA,MAAK;AAG3B,QACE,SACAA,WAAU,KACV,MAAM,SAAS,aACf,MAAM,YAAY,KAClB;AACA,MAAAH,UAAS,KAAK,EAAC,MAAM,QAAQ,OAAO,KAAI,CAAC;AAAA,IAC3C;AAEA,QAAI,MAAM,SAAS,aAAa,MAAM,YAAY,OAAO,CAAC,OAAO;AAC/D,MAAAA,UAAS,KAAK,GAAG,MAAM,QAAQ;AAAA,IACjC,OAAO;AACL,MAAAA,UAAS,KAAK,KAAK;AAAA,IACrB;AAAA,EACF;AAEA,QAAM,OAAO,QAAQ,QAAQ,SAAS,CAAC;AAGvC,MAAI,SAAS,SAAS,KAAK,SAAS,aAAa,KAAK,YAAY,MAAM;AACtE,IAAAA,UAAS,KAAK,EAAC,MAAM,QAAQ,OAAO,KAAI,CAAC;AAAA,EAC3C;AAGA,QAAM,SAAS,EAAC,MAAM,WAAW,SAAS,MAAM,YAAAD,aAAY,UAAAC,UAAQ;AACpE,QAAM,MAAMF,OAAM,MAAM;AACxB,SAAO,MAAM,UAAUA,OAAM,MAAM;AACrC;AAMA,SAAS,UAAUA,OAAM;AACvB,MAAI,QAAQ;AACZ,MAAIA,MAAK,SAAS,QAAQ;AACxB,YAAQA,MAAK,UAAU;AACvB,UAAME,YAAWF,MAAK;AACtB,QAAIK,SAAQ;AAEZ,WAAO,CAAC,SAAS,EAAEA,SAAQH,UAAS,QAAQ;AAC1C,cAAQ,cAAcA,UAASG,MAAK,CAAC;AAAA,IACvC;AAAA,EACF;AAEA,SAAO;AACT;AAMA,SAAS,cAAcL,OAAM;AAC3B,QAAM,SAASA,MAAK;AAEpB,SAAO,WAAW,QAAQ,WAAW,SACjCA,MAAK,SAAS,SAAS,IACvB;AACN;AAtHA,IAAAM,kBAAA;AAAA;AAAA;AAAA;;;ACgBO,SAASC,MAAK,OAAOC,OAAM;AAEhC,QAAMC,cAAa,CAAC;AACpB,QAAM,UAAU,MAAM,IAAID,KAAI;AAC9B,MAAIE,SAAQ;AAEZ,MAAI,OAAOF,MAAK,UAAU,YAAYA,MAAK,UAAU,GAAG;AACtD,IAAAC,YAAW,QAAQD,MAAK;AAAA,EAC1B;AAGA,SAAO,EAAEE,SAAQ,QAAQ,QAAQ;AAC/B,UAAM,QAAQ,QAAQA,MAAK;AAE3B,QACE,MAAM,SAAS,aACf,MAAM,YAAY,QAClB,MAAM,cACN,MAAM,QAAQ,MAAM,WAAW,SAAS,KACxC,MAAM,WAAW,UAAU,SAAS,gBAAgB,GACpD;AACA,MAAAD,YAAW,YAAY,CAAC,oBAAoB;AAC5C;AAAA,IACF;AAAA,EACF;AAGA,QAAM,SAAS;AAAA,IACb,MAAM;AAAA,IACN,SAASD,MAAK,UAAU,OAAO;AAAA,IAC/B,YAAAC;AAAA,IACA,UAAU,MAAM,KAAK,SAAS,IAAI;AAAA,EACpC;AACA,QAAM,MAAMD,OAAM,MAAM;AACxB,SAAO,MAAM,UAAUA,OAAM,MAAM;AACrC;AAnDA,IAAAG,aAAA;AAAA;AAAA;AAAA;;;ACgBO,SAASC,WAAU,OAAOC,OAAM;AAErC,QAAM,SAAS;AAAA,IACb,MAAM;AAAA,IACN,SAAS;AAAA,IACT,YAAY,CAAC;AAAA,IACb,UAAU,MAAM,IAAIA,KAAI;AAAA,EAC1B;AACA,QAAM,MAAMA,OAAM,MAAM;AACxB,SAAO,MAAM,UAAUA,OAAM,MAAM;AACrC;AA1BA,IAAAC,kBAAA;AAAA;AAAA;AAAA;;;ACgBO,SAASC,MAAK,OAAOC,OAAM;AAEhC,QAAM,SAAS,EAAC,MAAM,QAAQ,UAAU,MAAM,KAAK,MAAM,IAAIA,KAAI,CAAC,EAAC;AACnE,QAAM,MAAMA,OAAM,MAAM;AACxB,SAAO,MAAM,UAAUA,OAAM,MAAM;AACrC;AArBA,IAAAC,aAAA;AAAA;AAAA;AAAA;;;ACgBO,SAASC,QAAO,OAAOC,OAAM;AAElC,QAAM,SAAS;AAAA,IACb,MAAM;AAAA,IACN,SAAS;AAAA,IACT,YAAY,CAAC;AAAA,IACb,UAAU,MAAM,IAAIA,KAAI;AAAA,EAC1B;AACA,QAAM,MAAMA,OAAM,MAAM;AACxB,SAAO,MAAM,UAAUA,OAAM,MAAM;AACrC;AA1BA,IAAAC,eAAA;AAAA;AAAA;AAAA;;;ACkBO,SAAS,MAAM,OAAOC,OAAM;AACjC,QAAM,OAAO,MAAM,IAAIA,KAAI;AAC3B,QAAM,WAAW,KAAK,MAAM;AAE5B,QAAM,eAAe,CAAC;AAEtB,MAAI,UAAU;AAEZ,UAAMC,QAAO;AAAA,MACX,MAAM;AAAA,MACN,SAAS;AAAA,MACT,YAAY,CAAC;AAAA,MACb,UAAU,MAAM,KAAK,CAAC,QAAQ,GAAG,IAAI;AAAA,IACvC;AACA,UAAM,MAAMD,MAAK,SAAS,CAAC,GAAGC,KAAI;AAClC,iBAAa,KAAKA,KAAI;AAAA,EACxB;AAEA,MAAI,KAAK,SAAS,GAAG;AAEnB,UAAMC,QAAO;AAAA,MACX,MAAM;AAAA,MACN,SAAS;AAAA,MACT,YAAY,CAAC;AAAA,MACb,UAAU,MAAM,KAAK,MAAM,IAAI;AAAA,IACjC;AAEA,UAAM,QAAQ,WAAWF,MAAK,SAAS,CAAC,CAAC;AACzC,UAAMG,OAAM,SAASH,MAAK,SAASA,MAAK,SAAS,SAAS,CAAC,CAAC;AAC5D,QAAI,SAASG,KAAK,CAAAD,MAAK,WAAW,EAAC,OAAO,KAAAC,KAAG;AAC7C,iBAAa,KAAKD,KAAI;AAAA,EACxB;AAGA,QAAM,SAAS;AAAA,IACb,MAAM;AAAA,IACN,SAAS;AAAA,IACT,YAAY,CAAC;AAAA,IACb,UAAU,MAAM,KAAK,cAAc,IAAI;AAAA,EACzC;AACA,QAAM,MAAMF,OAAM,MAAM;AACxB,SAAO,MAAM,UAAUA,OAAM,MAAM;AACrC;AA5DA;AAAA;AAMA;AAAA;AAAA;;;ACYO,SAAS,SAAS,OAAOI,OAAM,QAAQ;AAC5C,QAAMC,YAAW,SAAS,OAAO,WAAW;AAE5C,QAAM,WAAWA,YAAWA,UAAS,QAAQD,KAAI,IAAI;AACrD,QAAM,UAAU,aAAa,IAAI,OAAO;AAExC,QAAM,QAAQ,UAAU,OAAO,SAAS,UAAU,OAAO,QAAQ;AACjE,QAAM,SAAS,QAAQ,MAAM,SAASA,MAAK,SAAS;AACpD,MAAI,YAAY;AAEhB,QAAME,SAAQ,CAAC;AAEf,SAAO,EAAE,YAAY,QAAQ;AAE3B,UAAMC,QAAOH,MAAK,SAAS,SAAS;AAEpC,UAAMI,cAAa,CAAC;AACpB,UAAM,aAAa,QAAQ,MAAM,SAAS,IAAI;AAE9C,QAAI,YAAY;AACd,MAAAA,YAAW,QAAQ;AAAA,IACrB;AAGA,QAAIC,UAAS,EAAC,MAAM,WAAW,SAAS,YAAAD,aAAY,UAAU,CAAC,EAAC;AAEhE,QAAID,OAAM;AACR,MAAAE,QAAO,WAAW,MAAM,IAAIF,KAAI;AAChC,YAAM,MAAMA,OAAME,OAAM;AACxB,MAAAA,UAAS,MAAM,UAAUF,OAAME,OAAM;AAAA,IACvC;AAEA,IAAAH,OAAM,KAAKG,OAAM;AAAA,EACnB;AAGA,QAAM,SAAS;AAAA,IACb,MAAM;AAAA,IACN,SAAS;AAAA,IACT,YAAY,CAAC;AAAA,IACb,UAAU,MAAM,KAAKH,QAAO,IAAI;AAAA,EAClC;AACA,QAAM,MAAMF,OAAM,MAAM;AACxB,SAAO,MAAM,UAAUA,OAAM,MAAM;AACrC;AA9DA;AAAA;AAAA;AAAA;;;ACgBO,SAAS,UAAU,OAAOM,OAAM;AAIrC,QAAM,SAAS;AAAA,IACb,MAAM;AAAA,IACN,SAAS;AAAA;AAAA,IACT,YAAY,CAAC;AAAA,IACb,UAAU,MAAM,IAAIA,KAAI;AAAA,EAC1B;AACA,QAAM,MAAMA,OAAM,MAAM;AACxB,SAAO,MAAM,UAAUA,OAAM,MAAM;AACrC;AA5BA;AAAA;AAAA;AAAA;;;ACYO,SAAS,UAAUC,QAAO;AAC/B,QAAM,SAAS,OAAOA,MAAK;AAC3B,QAAMC,UAAS;AACf,MAAIC,SAAQD,QAAO,KAAK,MAAM;AAC9B,MAAIE,QAAO;AAEX,QAAM,QAAQ,CAAC;AAEf,SAAOD,QAAO;AACZ,UAAM;AAAA,MACJ,SAAS,OAAO,MAAMC,OAAMD,OAAM,KAAK,GAAGC,QAAO,GAAG,IAAI;AAAA,MACxDD,OAAM,CAAC;AAAA,IACT;AAEA,IAAAC,QAAOD,OAAM,QAAQA,OAAM,CAAC,EAAE;AAC9B,IAAAA,SAAQD,QAAO,KAAK,MAAM;AAAA,EAC5B;AAEA,QAAM,KAAK,SAAS,OAAO,MAAME,KAAI,GAAGA,QAAO,GAAG,KAAK,CAAC;AAExD,SAAO,MAAM,KAAK,EAAE;AACtB;AAYA,SAAS,SAASH,QAAO,OAAOI,MAAK;AACnC,MAAI,aAAa;AACjB,MAAI,WAAWJ,OAAM;AAErB,MAAI,OAAO;AACT,QAAIK,QAAOL,OAAM,YAAY,UAAU;AAEvC,WAAOK,UAAS,OAAOA,UAAS,OAAO;AACrC;AACA,MAAAA,QAAOL,OAAM,YAAY,UAAU;AAAA,IACrC;AAAA,EACF;AAEA,MAAII,MAAK;AACP,QAAIC,QAAOL,OAAM,YAAY,WAAW,CAAC;AAEzC,WAAOK,UAAS,OAAOA,UAAS,OAAO;AACrC;AACA,MAAAA,QAAOL,OAAM,YAAY,WAAW,CAAC;AAAA,IACvC;AAAA,EACF;AAEA,SAAO,WAAW,aAAaA,OAAM,MAAM,YAAY,QAAQ,IAAI;AACrE;AApEA,IAAM,KACA;AADN;AAAA;AAAA,IAAM,MAAM;AACZ,IAAM,QAAQ;AAAA;AAAA;;;ACiBP,SAASM,MAAK,OAAOC,OAAM;AAEhC,QAAM,SAAS,EAAC,MAAM,QAAQ,OAAO,UAAU,OAAOA,MAAK,KAAK,CAAC,EAAC;AAClE,QAAM,MAAMA,OAAM,MAAM;AACxB,SAAO,MAAM,UAAUA,OAAM,MAAM;AACrC;AAvBA,IAAAC,aAAA;AAAA;AAMA;AAAA;AAAA;;;ACUO,SAASC,eAAc,OAAOC,OAAM;AAEzC,QAAM,SAAS;AAAA,IACb,MAAM;AAAA,IACN,SAAS;AAAA,IACT,YAAY,CAAC;AAAA,IACb,UAAU,CAAC;AAAA,EACb;AACA,QAAM,MAAMA,OAAM,MAAM;AACxB,SAAO,MAAM,UAAUA,OAAM,MAAM;AACrC;AA1BA,IAAAC,uBAAA;AAAA;AAAA;AAAA;;;ACiEA,SAAS,SAAS;AAChB,SAAO;AACT;AAnEA,IAiCa;AAjCb;AAAA;AAIA,IAAAC;AACA,IAAAC;AACA,IAAAC;AACA;AACA,IAAAC;AACA;AACA,IAAAC;AACA,IAAAC;AACA,IAAAC;AACA,IAAAC;AACA,IAAAC;AACA,IAAAC;AACA,IAAAC;AACA,IAAAC;AACA,IAAAC;AACA,IAAAC;AACA,IAAAC;AACA,IAAAC;AACA;AACA;AACA;AACA,IAAAC;AACA,IAAAC;AAOO,IAAM,WAAW;AAAA,MACtB,YAAAC;AAAA,MACA,OAAOC;AAAA,MACP,MAAAC;AAAA,MACA,QAAQ;AAAA,MACR,UAAAC;AAAA,MACA,mBAAAC;AAAA,MACA,SAAAC;AAAA,MACA,MAAAC;AAAA,MACA,gBAAAC;AAAA,MACA,OAAAC;AAAA,MACA,YAAAC;AAAA,MACA,eAAAC;AAAA,MACA,MAAAC;AAAA,MACA,UAAAC;AAAA,MACA,MAAAC;AAAA,MACA,WAAAC;AAAA;AAAA,MAEA,MAAAC;AAAA,MACA,QAAAC;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA,MAAAC;AAAA,MACA,eAAAC;AAAA,MACA,MAAM;AAAA,MACN,MAAM;AAAA,MACN,YAAY;AAAA,MACZ,oBAAoB;AAAA,IACtB;AAAA;AAAA;;;ACgBO,SAAS,2BAA2BC,IAAG,kBAAkB;AAE9D,QAAM,SAAS,CAAC,EAAC,MAAM,QAAQ,OAAO,SAAG,CAAC;AAE1C,MAAI,mBAAmB,GAAG;AACxB,WAAO,KAAK;AAAA,MACV,MAAM;AAAA,MACN,SAAS;AAAA,MACT,YAAY,CAAC;AAAA,MACb,UAAU,CAAC,EAAC,MAAM,QAAQ,OAAO,OAAO,gBAAgB,EAAC,CAAC;AAAA,IAC5D,CAAC;AAAA,EACH;AAEA,SAAO;AACT;AAaO,SAAS,yBAAyB,gBAAgB,kBAAkB;AACzE,SACE,wBACC,iBAAiB,MACjB,mBAAmB,IAAI,MAAM,mBAAmB;AAErD;AAWO,SAAS,OAAO,OAAO;AAC5B,QAAM,gBACJ,OAAO,MAAM,QAAQ,kBAAkB,WACnC,MAAM,QAAQ,gBACd;AACN,QAAM,sBACJ,MAAM,QAAQ,uBAAuB;AACvC,QAAM,oBACJ,MAAM,QAAQ,qBAAqB;AACrC,QAAM,gBAAgB,MAAM,QAAQ,iBAAiB;AACrD,QAAM,uBAAuB,MAAM,QAAQ,wBAAwB;AACnE,QAAM,0BAA0B,MAAM,QAAQ,2BAA2B;AAAA,IACvE,WAAW,CAAC,SAAS;AAAA,EACvB;AAEA,QAAM,YAAY,CAAC;AACnB,MAAI,iBAAiB;AAErB,SAAO,EAAE,iBAAiB,MAAM,cAAc,QAAQ;AACpD,UAAMC,cAAa,MAAM,aAAa;AAAA,MACpC,MAAM,cAAc,cAAc;AAAA,IACpC;AAEA,QAAI,CAACA,aAAY;AACf;AAAA,IACF;AAEA,UAAMC,WAAU,MAAM,IAAID,WAAU;AACpC,UAAM,KAAK,OAAOA,YAAW,UAAU,EAAE,YAAY;AACrD,UAAM,SAAS,aAAa,GAAG,YAAY,CAAC;AAC5C,QAAI,mBAAmB;AAEvB,UAAM,iBAAiB,CAAC;AACxB,UAAM,SAAS,MAAM,eAAe,IAAI,EAAE;AAG1C,WAAO,WAAW,UAAa,EAAE,oBAAoB,QAAQ;AAC3D,UAAI,eAAe,SAAS,GAAG;AAC7B,uBAAe,KAAK,EAAC,MAAM,QAAQ,OAAO,IAAG,CAAC;AAAA,MAChD;AAEA,UAAIE,YACF,OAAO,wBAAwB,WAC3B,sBACA,oBAAoB,gBAAgB,gBAAgB;AAE1D,UAAI,OAAOA,cAAa,UAAU;AAChC,QAAAA,YAAW,EAAC,MAAM,QAAQ,OAAOA,UAAQ;AAAA,MAC3C;AAEA,qBAAe,KAAK;AAAA,QAClB,MAAM;AAAA,QACN,SAAS;AAAA,QACT,YAAY;AAAA,UACV,MACE,MACA,gBACA,WACA,UACC,mBAAmB,IAAI,MAAM,mBAAmB;AAAA,UACnD,qBAAqB;AAAA,UACrB,WACE,OAAO,sBAAsB,WACzB,oBACA,kBAAkB,gBAAgB,gBAAgB;AAAA,UACxD,WAAW,CAAC,uBAAuB;AAAA,QACrC;AAAA,QACA,UAAU,MAAM,QAAQA,SAAQ,IAAIA,YAAW,CAACA,SAAQ;AAAA,MAC1D,CAAC;AAAA,IACH;AAEA,UAAM,OAAOD,SAAQA,SAAQ,SAAS,CAAC;AAEvC,QAAI,QAAQ,KAAK,SAAS,aAAa,KAAK,YAAY,KAAK;AAC3D,YAAM,WAAW,KAAK,SAAS,KAAK,SAAS,SAAS,CAAC;AACvD,UAAI,YAAY,SAAS,SAAS,QAAQ;AACxC,iBAAS,SAAS;AAAA,MACpB,OAAO;AACL,aAAK,SAAS,KAAK,EAAC,MAAM,QAAQ,OAAO,IAAG,CAAC;AAAA,MAC/C;AAEA,WAAK,SAAS,KAAK,GAAG,cAAc;AAAA,IACtC,OAAO;AACL,MAAAA,SAAQ,KAAK,GAAG,cAAc;AAAA,IAChC;AAGA,UAAME,YAAW;AAAA,MACf,MAAM;AAAA,MACN,SAAS;AAAA,MACT,YAAY,EAAC,IAAI,gBAAgB,QAAQ,OAAM;AAAA,MAC/C,UAAU,MAAM,KAAKF,UAAS,IAAI;AAAA,IACpC;AAEA,UAAM,MAAMD,aAAYG,SAAQ;AAEhC,cAAU,KAAKA,SAAQ;AAAA,EACzB;AAEA,MAAI,UAAU,WAAW,GAAG;AAC1B;AAAA,EACF;AAEA,SAAO;AAAA,IACL,MAAM;AAAA,IACN,SAAS;AAAA,IACT,YAAY,EAAC,eAAe,MAAM,WAAW,CAAC,WAAW,EAAC;AAAA,IAC1D,UAAU;AAAA,MACR;AAAA,QACE,MAAM;AAAA,QACN,SAAS;AAAA,QACT,YAAY;AAAA,UACV,GAAG,YAAgB,uBAAuB;AAAA,UAC1C,IAAI;AAAA,QACN;AAAA,QACA,UAAU,CAAC,EAAC,MAAM,QAAQ,OAAO,cAAa,CAAC;AAAA,MACjD;AAAA,MACA,EAAC,MAAM,QAAQ,OAAO,KAAI;AAAA,MAC1B;AAAA,QACE,MAAM;AAAA,QACN,SAAS;AAAA,QACT,YAAY,CAAC;AAAA,QACb,UAAU,MAAM,KAAK,WAAW,IAAI;AAAA,MACtC;AAAA,MACA,EAAC,MAAM,QAAQ,OAAO,KAAI;AAAA,IAC5B;AAAA,EACF;AACF;AAzPA;AAAA;AAgEA;AACA;AAAA;AAAA;;;ACoIO,SAAS,YAAY,MAAM,SAAS;AACzC,QAAM,WAAW,WAAWC;AAE5B,QAAM,iBAAiB,oBAAI,IAAI;AAE/B,QAAM,eAAe,oBAAI,IAAI;AAE7B,QAAM,iBAAiB,oBAAI,IAAI;AAI/B,QAAMC,YAAW,EAAC,GAAG,UAAiB,GAAG,SAAS,SAAQ;AAG1D,QAAM,QAAQ;AAAA,IACZ,KAAAC;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA,eAAe,CAAC;AAAA,IAChB,UAAAD;AAAA,IACA,KAAAE;AAAA,IACA,SAAS;AAAA,IACT,OAAAC;AAAA,IACA,MAAAC;AAAA,EACF;AAEA,QAAM,MAAM,SAAUC,OAAM;AAC1B,QAAIA,MAAK,SAAS,gBAAgBA,MAAK,SAAS,sBAAsB;AACpE,YAAMC,OAAMD,MAAK,SAAS,eAAe,iBAAiB;AAC1D,YAAM,KAAK,OAAOA,MAAK,UAAU,EAAE,YAAY;AAI/C,UAAI,CAACC,KAAI,IAAI,EAAE,GAAG;AAEhB,QAAAA,KAAI,IAAI,IAAID,KAAI;AAAA,MAClB;AAAA,IACF;AAAA,EACF,CAAC;AAED,SAAO;AAYP,WAASH,KAAIG,OAAM,QAAQ;AACzB,UAAME,QAAOF,MAAK;AAClB,UAAMG,UAAS,MAAM,SAASD,KAAI;AAElC,QAAIE,KAAI,KAAK,MAAM,UAAUF,KAAI,KAAKC,SAAQ;AAC5C,aAAOA,QAAO,OAAOH,OAAM,MAAM;AAAA,IACnC;AAEA,QAAI,MAAM,QAAQ,eAAe,MAAM,QAAQ,YAAY,SAASE,KAAI,GAAG;AACzE,UAAI,cAAcF,OAAM;AACtB,cAAM,EAAC,UAAAK,WAAU,GAAG,QAAO,IAAIL;AAC/B,cAAM,SAAS,YAAgB,OAAO;AAEtC,eAAO,WAAW,MAAM,IAAIA,KAAI;AAEhC,eAAO;AAAA,MACT;AAGA,aAAO,YAAgBA,KAAI;AAAA,IAC7B;AAEA,UAAMM,WAAU,MAAM,QAAQ,kBAAkB;AAEhD,WAAOA,SAAQ,OAAON,OAAM,MAAM;AAAA,EACpC;AAUA,WAASJ,KAAI,QAAQ;AAEnB,UAAM,SAAS,CAAC;AAEhB,QAAI,cAAc,QAAQ;AACxB,YAAM,QAAQ,OAAO;AACrB,UAAIW,SAAQ;AACZ,aAAO,EAAEA,SAAQ,MAAM,QAAQ;AAC7B,cAAM,SAAS,MAAM,IAAI,MAAMA,MAAK,GAAG,MAAM;AAG7C,YAAI,QAAQ;AACV,cAAIA,UAAS,MAAMA,SAAQ,CAAC,EAAE,SAAS,SAAS;AAC9C,gBAAI,CAAC,MAAM,QAAQ,MAAM,KAAK,OAAO,SAAS,QAAQ;AACpD,qBAAO,QAAQ,uBAAuB,OAAO,KAAK;AAAA,YACpD;AAEA,gBAAI,CAAC,MAAM,QAAQ,MAAM,KAAK,OAAO,SAAS,WAAW;AACvD,oBAAMC,QAAO,OAAO,SAAS,CAAC;AAE9B,kBAAIA,SAAQA,MAAK,SAAS,QAAQ;AAChC,gBAAAA,MAAK,QAAQ,uBAAuBA,MAAK,KAAK;AAAA,cAChD;AAAA,YACF;AAAA,UACF;AAEA,cAAI,MAAM,QAAQ,MAAM,GAAG;AACzB,mBAAO,KAAK,GAAG,MAAM;AAAA,UACvB,OAAO;AACL,mBAAO,KAAK,MAAM;AAAA,UACpB;AAAA,QACF;AAAA,MACF;AAAA,IACF;AAEA,WAAO;AAAA,EACT;AACF;AAYA,SAASV,OAAMW,OAAM,IAAI;AACvB,MAAIA,MAAK,SAAU,IAAG,WAAWC,UAASD,KAAI;AAChD;AAcA,SAAS,UAAUA,OAAM,IAAI;AAE3B,MAAI,SAAS;AAGb,MAAIA,SAAQA,MAAK,MAAM;AACrB,UAAM,QAAQA,MAAK,KAAK;AACxB,UAAM,YAAYA,MAAK,KAAK;AAC5B,UAAM,cAAcA,MAAK,KAAK;AAE9B,QAAI,OAAO,UAAU,UAAU;AAG7B,UAAI,OAAO,SAAS,WAAW;AAC7B,eAAO,UAAU;AAAA,MACnB,OAKK;AAGH,cAAMJ,YAAW,cAAc,SAAS,OAAO,WAAW,CAAC,MAAM;AACjE,iBAAS,EAAC,MAAM,WAAW,SAAS,OAAO,YAAY,CAAC,GAAG,UAAAA,UAAQ;AAAA,MACrE;AAAA,IACF;AAEA,QAAI,OAAO,SAAS,aAAa,aAAa;AAC5C,aAAO,OAAO,OAAO,YAAY,YAAgB,WAAW,CAAC;AAAA,IAC/D;AAEA,QACE,cAAc,UACd,OAAO,YACP,cAAc,QACd,cAAc,QACd;AACA,aAAO,WAAW;AAAA,IACpB;AAAA,EACF;AAEA,SAAO;AACT;AAYA,SAAS,sBAAsB,OAAOL,OAAM;AAC1C,QAAMW,QAAOX,MAAK,QAAQ,CAAC;AAE3B,QAAM,SACJ,WAAWA,SACX,EAAEI,KAAI,KAAKO,OAAM,aAAa,KAAKP,KAAI,KAAKO,OAAM,WAAW,KACzD,EAAC,MAAM,QAAQ,OAAOX,MAAK,MAAK,IAChC;AAAA,IACE,MAAM;AAAA,IACN,SAAS;AAAA,IACT,YAAY,CAAC;AAAA,IACb,UAAU,MAAM,IAAIA,KAAI;AAAA,EAC1B;AAEN,QAAM,MAAMA,OAAM,MAAM;AACxB,SAAO,MAAM,UAAUA,OAAM,MAAM;AACrC;AAcO,SAASD,MAAK,OAAO,OAAO;AAEjC,QAAM,SAAS,CAAC;AAChB,MAAIQ,SAAQ;AAEZ,MAAI,OAAO;AACT,WAAO,KAAK,EAAC,MAAM,QAAQ,OAAO,KAAI,CAAC;AAAA,EACzC;AAEA,SAAO,EAAEA,SAAQ,MAAM,QAAQ;AAC7B,QAAIA,OAAO,QAAO,KAAK,EAAC,MAAM,QAAQ,OAAO,KAAI,CAAC;AAClD,WAAO,KAAK,MAAMA,MAAK,CAAC;AAAA,EAC1B;AAEA,MAAI,SAAS,MAAM,SAAS,GAAG;AAC7B,WAAO,KAAK,EAAC,MAAM,QAAQ,OAAO,KAAI,CAAC;AAAA,EACzC;AAEA,SAAO;AACT;AAUA,SAAS,uBAAuBK,QAAO;AACrC,MAAIL,SAAQ;AACZ,MAAIM,QAAOD,OAAM,WAAWL,MAAK;AAEjC,SAAOM,UAAS,KAAKA,UAAS,IAAI;AAChC,IAAAN;AACA,IAAAM,QAAOD,OAAM,WAAWL,MAAK;AAAA,EAC/B;AAEA,SAAOK,OAAM,MAAML,MAAK;AAC1B;AA3dA,IAsLMH,MAGAV;AAzLN;AAAA;AAiLA;AACA;AACA;AACA;AAEA,IAAMU,OAAM,CAAC,EAAE;AAGf,IAAMV,gBAAe,CAAC;AAAA;AAAA;;;AClGf,SAAS,OAAO,MAAM,SAAS;AACpC,QAAM,QAAQ,YAAY,MAAM,OAAO;AACvC,QAAMoB,QAAO,MAAM,IAAI,MAAM,MAAS;AACtC,QAAM,OAAO,OAAO,KAAK;AAEzB,QAAM,SAAS,MAAM,QAAQA,KAAI,IAC7B,EAAC,MAAM,QAAQ,UAAUA,MAAI,IAC7BA,SAAQ,EAAC,MAAM,QAAQ,UAAU,CAAC,EAAC;AAEvC,MAAI,MAAM;AAIR,OAAO,cAAc,MAAM;AAC3B,WAAO,SAAS,KAAK,EAAC,MAAM,QAAQ,OAAO,KAAI,GAAG,IAAI;AAAA,EACxD;AAEA,SAAO;AACT;AAzGA,IAAAC,aAAA;AAAA;AAMA;AACA;AACA;AAAA;AAAA;;;ACRA;AAAA;AACA;AACA,IAAAC;AACA;AAAA;AAAA;;;ACHA,IAKa;AALb;AAAA;AAKO,IAAM,mBAAmB;AAAA,MAC9B;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IACF;AAAA;AAAA;;;AC1BA,IAKa;AALb,IAAAC,eAAA;AAAA;AAKO,IAAM,SAAN,MAAa;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,MAWlB,YAAY,UAAU,QAAQC,QAAO;AACnC,aAAK,SAAS;AACd,aAAK,WAAW;AAEhB,YAAIA,QAAO;AACT,eAAK,QAAQA;AAAA,QACf;AAAA,MACF;AAAA,IACF;AAEA,WAAO,UAAU,SAAS,CAAC;AAC3B,WAAO,UAAU,WAAW,CAAC;AAC7B,WAAO,UAAU,QAAQ;AAAA;AAAA;;;ACdlB,SAASC,OAAM,aAAaC,QAAO;AAExC,QAAM,WAAW,CAAC;AAElB,QAAM,SAAS,CAAC;AAEhB,aAAWC,eAAc,aAAa;AACpC,WAAO,OAAO,UAAUA,YAAW,QAAQ;AAC3C,WAAO,OAAO,QAAQA,YAAW,MAAM;AAAA,EACzC;AAEA,SAAO,IAAI,OAAO,UAAU,QAAQD,MAAK;AAC3C;AA1BA,IAAAE,cAAA;AAAA;AAIA,IAAAC;AAAA;AAAA;;;ACKO,SAASC,WAAUC,QAAO;AAC/B,SAAOA,OAAM,YAAY;AAC3B;AAXA;AAAA;AAAA;AAAA;;;ACAA,IAKa;AALb;AAAA;AAKO,IAAM,OAAN,MAAW;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,MAShB,YAAY,UAAU,WAAW;AAC/B,aAAK,YAAY;AACjB,aAAK,WAAW;AAAA,MAClB;AAAA,IACF;AAEA,SAAK,UAAU,YAAY;AAC3B,SAAK,UAAU,aAAa;AAC5B,SAAK,UAAU,UAAU;AACzB,SAAK,UAAU,wBAAwB;AACvC,SAAK,UAAU,iBAAiB;AAChC,SAAK,UAAU,UAAU;AACzB,SAAK,UAAU,kBAAkB;AACjC,SAAK,UAAU,SAAS;AACxB,SAAK,UAAU,oBAAoB;AACnC,SAAK,UAAU,WAAW;AAC1B,SAAK,UAAU,iBAAiB;AAChC,SAAK,UAAU,QAAQ;AAAA;AAAA;;;AC/BvB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAUA,SAAS,YAAY;AACnB,SAAO,KAAK,EAAE;AAChB;AAZA,IAAI,QAES,SACA,YACA,mBACA,QACA,gBACA,gBACA;AARb,IAAAC,cAAA;AAAA;AAAA,IAAI,SAAS;AAEN,IAAM,UAAU,UAAU;AAC1B,IAAM,aAAa,UAAU;AAC7B,IAAM,oBAAoB,UAAU;AACpC,IAAM,SAAS,UAAU;AACzB,IAAM,iBAAiB,UAAU;AACjC,IAAM,iBAAiB,UAAU;AACjC,IAAM,wBAAwB,UAAU;AAAA;AAAA;;;AC+C/C,SAAS,KAAK,QAAQC,MAAKC,QAAO;AAChC,MAAIA,QAAO;AACT,WAAOD,IAAG,IAAIC;AAAA,EAChB;AACF;AA3DA,IAOM,QAIO;AAXb;AAAA;AAIA;AACA,IAAAC;AAEA,IAAM;AAAA,IACJ,OAAO,KAAK,aAAK;AAGZ,IAAM,cAAN,cAA0B,KAAK;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,MAcpC,YAAY,UAAU,WAAW,MAAMC,QAAO;AAC5C,YAAIC,SAAQ;AAEZ,cAAM,UAAU,SAAS;AAEzB,aAAK,MAAM,SAASD,MAAK;AAEzB,YAAI,OAAO,SAAS,UAAU;AAC5B,iBAAO,EAAEC,SAAQ,OAAO,QAAQ;AAC9B,kBAAM,QAAQ,OAAOA,MAAK;AAC1B,iBAAK,MAAM,OAAOA,MAAK,IAAI,OAAO,cAAM,KAAK,OAAO,cAAM,KAAK,CAAC;AAAA,UAClE;AAAA,QACF;AAAA,MACF;AAAA,IACF;AAEA,gBAAY,UAAU,UAAU;AAAA;AAAA;;;ACDzB,SAASC,QAAOC,aAAY;AAEjC,QAAMC,cAAa,CAAC;AAEpB,QAAM,UAAU,CAAC;AAEjB,aAAW,CAAC,UAAUC,MAAK,KAAK,OAAO,QAAQF,YAAW,UAAU,GAAG;AACrE,UAAM,OAAO,IAAI;AAAA,MACf;AAAA,MACAA,YAAW,UAAUA,YAAW,cAAc,CAAC,GAAG,QAAQ;AAAA,MAC1DE;AAAA,MACAF,YAAW;AAAA,IACb;AAEA,QACEA,YAAW,mBACXA,YAAW,gBAAgB,SAAS,QAAQ,GAC5C;AACA,WAAK,kBAAkB;AAAA,IACzB;AAEA,IAAAC,YAAW,QAAQ,IAAI;AAEvB,YAAQE,WAAU,QAAQ,CAAC,IAAI;AAC/B,YAAQA,WAAU,KAAK,SAAS,CAAC,IAAI;AAAA,EACvC;AAEA,SAAO,IAAI,OAAOF,aAAY,SAASD,YAAW,KAAK;AACzD;AApEA;AAAA;AA8BA;AACA;AACA,IAAAI;AAAA;AAAA;;;AChCA,IAGaC;AAHb;AAAA;AAAA;AACA,IAAAC;AAEO,IAAMD,QAAOE,QAAO;AAAA,MACzB,YAAY;AAAA,QACV,sBAAsB;AAAA,QACtB,YAAY;AAAA,QACZ,kBAAkB;AAAA,QAClB,UAAU;AAAA,QACV,aAAa;AAAA,QACb,cAAc;AAAA,QACd,cAAc;AAAA,QACd,aAAa;AAAA,QACb,cAAc;AAAA,QACd,aAAa;AAAA,QACb,iBAAiB;AAAA,QACjB,aAAa;AAAA,QACb,cAAc;AAAA,QACd,gBAAgB;AAAA,QAChB,kBAAkB;AAAA,QAClB,cAAc;AAAA,QACd,YAAY;AAAA,QACZ,aAAa;AAAA,QACb,cAAc;AAAA,QACd,YAAY;AAAA,QACZ,aAAa;AAAA,QACb,kBAAkB;AAAA,QAClB,WAAW;AAAA,QACX,gBAAgB;AAAA,QAChB,WAAW;AAAA,QACX,UAAU;AAAA,QACV,WAAW;AAAA,QACX,eAAe;AAAA,QACf,qBAAqB;AAAA,QACrB,iBAAiB;AAAA,QACjB,UAAU;AAAA,QACV,iBAAiB;AAAA,QACjB,cAAc;AAAA,QACd,aAAa;AAAA,QACb,cAAc;AAAA,QACd,cAAc;AAAA,QACd,cAAc;AAAA,QACd,qBAAqB;AAAA,QACrB,cAAc;AAAA,QACd,cAAc;AAAA,QACd,aAAa;AAAA,QACb,cAAc;AAAA,QACd,aAAa;AAAA,QACb,UAAU;AAAA,QACV,cAAc;AAAA,QACd,cAAc;AAAA,QACd,cAAc;AAAA,QACd,eAAe;AAAA,QACf,MAAM;AAAA,MACR;AAAA,MACA,UAAUC,IAAG,UAAU;AACrB,eAAO,aAAa,SAChB,WACA,UAAU,SAAS,MAAM,CAAC,EAAE,YAAY;AAAA,MAC9C;AAAA,IACF,CAAC;AAAA;AAAA;;;ACpDM,SAAS,uBAAuB,YAAY,WAAW;AAC5D,SAAO,aAAa,aAAa,WAAW,SAAS,IAAI;AAC3D;AAVA;AAAA;AAAA;AAAA;;;ACUO,SAAS,yBAAyB,YAAY,UAAU;AAC7D,SAAO,uBAAuB,YAAY,SAAS,YAAY,CAAC;AAClE;AAZA;AAAA;AAAA;AAAA;AAAA;;;ACAA,IAWaC;AAXb,IAAAC,aAAA;AAAA;AAAA;AACA;AACA,IAAAC;AASO,IAAMF,QAAOG,QAAO;AAAA,MACzB,YAAY;AAAA,QACV,eAAe;AAAA,QACf,WAAW;AAAA,QACX,SAAS;AAAA,QACT,WAAW;AAAA,MACb;AAAA,MACA,iBAAiB,CAAC,WAAW,YAAY,SAAS,UAAU;AAAA,MAC5D,YAAY;AAAA;AAAA,QAEV,MAAM;AAAA,QACN,QAAQ;AAAA,QACR,eAAe;AAAA,QACf,WAAW;AAAA,QACX,QAAQ;AAAA,QACR,OAAO;AAAA,QACP,iBAAiB;AAAA,QACjB,qBAAqB;AAAA,QACrB,gBAAgB;AAAA,QAChB,KAAK;AAAA,QACL,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,gBAAgB;AAAA,QAChB,cAAc;AAAA,QACd,WAAW;AAAA,QACX,UAAU;AAAA,QACV,UAAU;AAAA,QACV,SAAS;AAAA,QACT,SAAS;AAAA,QACT,SAAS;AAAA,QACT,MAAM;AAAA,QACN,WAAW;AAAA,QACX,MAAM;AAAA,QACN,SAAS;AAAA,QACT,SAAS;AAAA,QACT,iBAAiB;AAAA,QACjB,UAAU;AAAA,QACV,cAAc;AAAA,QACd,QAAQ,SAAS;AAAA,QACjB,aAAa;AAAA,QACb,MAAM;AAAA,QACN,UAAU;AAAA,QACV,UAAU;AAAA,QACV,SAAS;AAAA,QACT,OAAO;AAAA,QACP,KAAK;AAAA,QACL,SAAS;AAAA,QACT,UAAU;AAAA,QACV,UAAU;AAAA,QACV,WAAW;AAAA,QACX,SAAS;AAAA,QACT,cAAc;AAAA,QACd,eAAe;AAAA,QACf,MAAM;AAAA,QACN,YAAY;AAAA,QACZ,aAAa;AAAA,QACb,YAAY;AAAA,QACZ,gBAAgB;AAAA,QAChB,YAAY;AAAA,QACZ,SAAS;AAAA,QACT,QAAQ;AAAA,QACR,QAAQ;AAAA,QACR,MAAM;AAAA,QACN,MAAM;AAAA,QACN,UAAU;AAAA,QACV,SAAS;AAAA,QACT,WAAW;AAAA,QACX,IAAI;AAAA,QACJ,YAAY;AAAA,QACZ,aAAa;AAAA,QACb,OAAO;AAAA,QACP,WAAW;AAAA,QACX,WAAW;AAAA,QACX,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,QAAQ;AAAA,QACR,UAAU;AAAA,QACV,SAAS;AAAA,QACT,WAAW;AAAA,QACX,UAAU;AAAA,QACV,MAAM;AAAA,QACN,OAAO;AAAA,QACP,MAAM;AAAA,QACN,UAAU;AAAA,QACV,MAAM;AAAA,QACN,SAAS;AAAA,QACT,MAAM;AAAA,QACN,KAAK;AAAA,QACL,UAAU;AAAA,QACV,KAAK;AAAA,QACL,WAAW;AAAA,QACX,OAAO;AAAA,QACP,QAAQ;AAAA,QACR,KAAK;AAAA,QACL,WAAW;AAAA,QACX,UAAU;AAAA,QACV,OAAO;AAAA,QACP,MAAM;AAAA,QACN,OAAO;AAAA,QACP,UAAU;AAAA,QACV,YAAY;AAAA,QACZ,SAAS;AAAA,QACT,cAAc;AAAA,QACd,YAAY;AAAA,QACZ,eAAe;AAAA,QACf,eAAe;AAAA,QACf,gBAAgB;AAAA,QAChB,gBAAgB;AAAA,QAChB,QAAQ;AAAA,QACR,UAAU;AAAA,QACV,WAAW;AAAA,QACX,kBAAkB;AAAA,QAClB,UAAU;AAAA,QACV,SAAS;AAAA,QACT,SAAS;AAAA,QACT,eAAe;AAAA,QACf,eAAe;AAAA,QACf,mBAAmB;AAAA,QACnB,QAAQ;AAAA,QACR,aAAa;AAAA,QACb,OAAO;AAAA,QACP,YAAY;AAAA,QACZ,QAAQ;AAAA,QACR,WAAW;AAAA,QACX,aAAa;AAAA,QACb,YAAY;AAAA,QACZ,aAAa;AAAA,QACb,YAAY;AAAA,QACZ,aAAa;AAAA,QACb,QAAQ;AAAA,QACR,kBAAkB;AAAA,QAClB,WAAW;AAAA,QACX,SAAS;AAAA,QACT,SAAS;AAAA,QACT,SAAS;AAAA,QACT,YAAY;AAAA,QACZ,cAAc;AAAA,QACd,SAAS;AAAA,QACT,WAAW;AAAA,QACX,WAAW;AAAA,QACX,YAAY;AAAA,QACZ,SAAS;AAAA,QACT,kBAAkB;AAAA,QAClB,QAAQ;AAAA,QACR,cAAc;AAAA,QACd,kBAAkB;AAAA,QAClB,WAAW;AAAA,QACX,aAAa;AAAA,QACb,WAAW;AAAA,QACX,gBAAgB;AAAA,QAChB,aAAa;AAAA,QACb,cAAc;AAAA,QACd,cAAc;AAAA,QACd,aAAa;AAAA,QACb,YAAY;AAAA,QACZ,aAAa;AAAA,QACb,WAAW;AAAA,QACX,WAAW;AAAA,QACX,UAAU;AAAA,QACV,YAAY;AAAA,QACZ,YAAY;AAAA,QACZ,SAAS;AAAA,QACT,SAAS;AAAA,QACT,QAAQ;AAAA,QACR,WAAW;AAAA,QACX,YAAY;AAAA,QACZ,YAAY;AAAA,QACZ,cAAc;AAAA,QACd,oBAAoB;AAAA,QACpB,SAAS;AAAA,QACT,UAAU;AAAA,QACV,UAAU;AAAA,QACV,aAAa;AAAA,QACb,2BAA2B;AAAA,QAC3B,UAAU;AAAA,QACV,WAAW;AAAA,QACX,UAAU;AAAA,QACV,cAAc;AAAA,QACd,WAAW;AAAA,QACX,WAAW;AAAA,QACX,UAAU;AAAA,QACV,WAAW;AAAA,QACX,cAAc;AAAA,QACd,UAAU;AAAA,QACV,sBAAsB;AAAA,QACtB,UAAU;AAAA,QACV,gBAAgB;AAAA,QAChB,WAAW;AAAA,QACX,SAAS;AAAA,QACT,MAAM;AAAA,QACN,SAAS;AAAA,QACT,SAAS;AAAA,QACT,MAAM;AAAA,QACN,aAAa;AAAA,QACb,aAAa;AAAA,QACb,SAAS;AAAA,QACT,eAAe;AAAA,QACf,qBAAqB;AAAA,QACrB,QAAQ;AAAA,QACR,SAAS;AAAA,QACT,UAAU;AAAA,QACV,gBAAgB;AAAA,QAChB,KAAK;AAAA,QACL,UAAU;AAAA,QACV,UAAU;AAAA,QACV,MAAM;AAAA,QACN,SAAS;AAAA,QACT,SAAS;AAAA,QACT,OAAO;AAAA,QACP,QAAQ;AAAA,QACR,UAAU;AAAA,QACV,UAAU;AAAA,QACV,oBAAoB;AAAA,QACpB,0BAA0B;AAAA,QAC1B,gBAAgB;AAAA,QAChB,OAAO;AAAA,QACP,MAAM;AAAA,QACN,OAAO;AAAA,QACP,MAAM;AAAA,QACN,MAAM;AAAA,QACN,YAAY;AAAA,QACZ,KAAK;AAAA,QACL,QAAQ;AAAA,QACR,SAAS;AAAA,QACT,QAAQ;AAAA,QACR,OAAO;AAAA,QACP,MAAM;AAAA,QACN,OAAO;AAAA,QACP,UAAU;AAAA,QACV,QAAQ;AAAA,QACR,OAAO;AAAA,QACP,WAAW;AAAA,QACX,MAAM;AAAA,QACN,eAAe;AAAA,QACf,QAAQ;AAAA,QACR,OAAO;AAAA,QACP,OAAO;AAAA,QACP,MAAM;AAAA,QACN,oBAAoB;AAAA;AAAA;AAAA,QAIpB,OAAO;AAAA;AAAA,QACP,OAAO;AAAA;AAAA,QACP,SAAS;AAAA;AAAA,QACT,MAAM;AAAA;AAAA,QACN,YAAY;AAAA;AAAA,QACZ,SAAS;AAAA;AAAA,QACT,QAAQ;AAAA;AAAA,QACR,aAAa;AAAA;AAAA,QACb,cAAc;AAAA;AAAA,QACd,aAAa;AAAA;AAAA,QACb,aAAa;AAAA;AAAA,QACb,MAAM;AAAA;AAAA,QACN,SAAS;AAAA;AAAA,QACT,SAAS;AAAA;AAAA,QACT,OAAO;AAAA;AAAA,QACP,MAAM;AAAA;AAAA,QACN,UAAU;AAAA;AAAA,QACV,UAAU;AAAA;AAAA,QACV,OAAO;AAAA;AAAA,QACP,SAAS;AAAA;AAAA,QACT,SAAS;AAAA;AAAA,QACT,OAAO;AAAA;AAAA,QACP,MAAM;AAAA;AAAA,QACN,OAAO;AAAA;AAAA,QACP,aAAa;AAAA;AAAA,QACb,QAAQ;AAAA;AAAA,QACR,YAAY;AAAA;AAAA,QACZ,MAAM;AAAA;AAAA,QACN,UAAU;AAAA;AAAA,QACV,QAAQ;AAAA;AAAA,QACR,cAAc;AAAA;AAAA,QACd,aAAa;AAAA;AAAA,QACb,UAAU;AAAA;AAAA,QACV,QAAQ;AAAA;AAAA,QACR,SAAS;AAAA;AAAA,QACT,QAAQ;AAAA;AAAA,QACR,QAAQ;AAAA;AAAA,QACR,SAAS;AAAA;AAAA,QACT,QAAQ;AAAA;AAAA,QACR,KAAK;AAAA;AAAA,QACL,aAAa;AAAA;AAAA,QACb,OAAO;AAAA;AAAA,QACP,QAAQ;AAAA;AAAA,QACR,WAAW;AAAA;AAAA,QACX,SAAS;AAAA;AAAA,QACT,SAAS;AAAA;AAAA,QACT,MAAM;AAAA;AAAA,QACN,WAAW;AAAA;AAAA,QACX,WAAW;AAAA;AAAA,QACX,SAAS;AAAA;AAAA,QACT,QAAQ;AAAA;AAAA,QACR,OAAO;AAAA;AAAA,QACP,QAAQ;AAAA;AAAA;AAAA,QAGR,mBAAmB;AAAA,QACnB,aAAa;AAAA,QACb,UAAU;AAAA,QACV,yBAAyB;AAAA,QACzB,uBAAuB;AAAA,QACvB,QAAQ;AAAA,QACR,UAAU;AAAA,QACV,SAAS;AAAA,QACT,UAAU;AAAA,QACV,cAAc;AAAA,MAChB;AAAA,MACA,OAAO;AAAA,MACP,WAAW;AAAA,IACb,CAAC;AAAA;AAAA;;;ACjUD,IAUa;AAVb;AAAA;AAAA;AACA;AACA,IAAAC;AAQO,IAAM,MAAMC,QAAO;AAAA,MACxB,YAAY;AAAA,QACV,cAAc;AAAA,QACd,mBAAmB;AAAA,QACnB,YAAY;AAAA,QACZ,eAAe;AAAA,QACf,WAAW;AAAA,QACX,WAAW;AAAA,QACX,UAAU;AAAA,QACV,UAAU;AAAA,QACV,oBAAoB;AAAA,QACpB,2BAA2B;AAAA,QAC3B,cAAc;AAAA,QACd,gBAAgB;AAAA,QAChB,aAAa;AAAA,QACb,UAAU;AAAA,QACV,kBAAkB;AAAA,QAClB,kBAAkB;AAAA,QAClB,aAAa;AAAA,QACb,UAAU;AAAA,QACV,YAAY;AAAA,QACZ,cAAc;AAAA,QACd,YAAY;AAAA,QACZ,UAAU;AAAA,QACV,gBAAgB;AAAA,QAChB,aAAa;AAAA,QACb,WAAW;AAAA,QACX,aAAa;AAAA,QACb,YAAY;AAAA,QACZ,WAAW;AAAA,QACX,4BAA4B;AAAA,QAC5B,0BAA0B;AAAA,QAC1B,UAAU;AAAA,QACV,WAAW;AAAA,QACX,cAAc;AAAA,QACd,cAAc;AAAA,QACd,gBAAgB;AAAA,QAChB,eAAe;AAAA,QACf,eAAe;AAAA,QACf,WAAW;AAAA,QACX,WAAW;AAAA,QACX,aAAa;AAAA,QACb,SAAS;AAAA,QACT,aAAa;AAAA,QACb,cAAc;AAAA,QACd,SAAS;AAAA,QACT,SAAS;AAAA,QACT,SAAS;AAAA,QACT,UAAU;AAAA,QACV,OAAO;AAAA,QACP,WAAW;AAAA,QACX,YAAY;AAAA,QACZ,SAAS;AAAA,QACT,YAAY;AAAA,QACZ,cAAc;AAAA,QACd,eAAe;AAAA,QACf,SAAS;AAAA,QACT,UAAU;AAAA,QACV,WAAW;AAAA,QACX,kBAAkB;AAAA,QAClB,UAAU;AAAA,QACV,SAAS;AAAA,QACT,SAAS;AAAA,QACT,QAAQ;AAAA,QACR,aAAa;AAAA,QACb,OAAO;AAAA,QACP,YAAY;AAAA,QACZ,QAAQ;AAAA,QACR,WAAW;AAAA,QACX,aAAa;AAAA,QACb,YAAY;AAAA,QACZ,aAAa;AAAA,QACb,YAAY;AAAA,QACZ,aAAa;AAAA,QACb,QAAQ;AAAA,QACR,kBAAkB;AAAA,QAClB,WAAW;AAAA,QACX,OAAO;AAAA,QACP,SAAS;AAAA,QACT,SAAS;AAAA,QACT,SAAS;AAAA,QACT,WAAW;AAAA,QACX,YAAY;AAAA,QACZ,cAAc;AAAA,QACd,SAAS;AAAA,QACT,WAAW;AAAA,QACX,WAAW;AAAA,QACX,YAAY;AAAA,QACZ,SAAS;AAAA,QACT,QAAQ;AAAA,QACR,cAAc;AAAA,QACd,kBAAkB;AAAA,QAClB,aAAa;AAAA,QACb,WAAW;AAAA,QACX,aAAa;AAAA,QACb,cAAc;AAAA,QACd,cAAc;AAAA,QACd,aAAa;AAAA,QACb,YAAY;AAAA,QACZ,aAAa;AAAA,QACb,WAAW;AAAA,QACX,cAAc;AAAA,QACd,WAAW;AAAA,QACX,UAAU;AAAA,QACV,YAAY;AAAA,QACZ,YAAY;AAAA,QACZ,SAAS;AAAA,QACT,SAAS;AAAA,QACT,QAAQ;AAAA,QACR,WAAW;AAAA,QACX,YAAY;AAAA,QACZ,YAAY;AAAA,QACZ,cAAc;AAAA,QACd,UAAU;AAAA,QACV,SAAS;AAAA,QACT,UAAU;AAAA,QACV,UAAU;AAAA,QACV,UAAU;AAAA,QACV,WAAW;AAAA,QACX,UAAU;AAAA,QACV,QAAQ;AAAA,QACR,WAAW;AAAA,QACX,WAAW;AAAA,QACX,UAAU;AAAA,QACV,WAAW;AAAA,QACX,cAAc;AAAA,QACd,UAAU;AAAA,QACV,UAAU;AAAA,QACV,gBAAgB;AAAA,QAChB,WAAW;AAAA,QACX,QAAQ;AAAA,QACR,kBAAkB;AAAA,QAClB,mBAAmB;AAAA,QACnB,YAAY;AAAA,QACZ,SAAS;AAAA,QACT,eAAe;AAAA,QACf,gBAAgB;AAAA,QAChB,iBAAiB;AAAA,QACjB,gBAAgB;AAAA,QAChB,WAAW;AAAA,QACX,aAAa;AAAA,QACb,uBAAuB;AAAA,QACvB,wBAAwB;AAAA,QACxB,iBAAiB;AAAA,QACjB,kBAAkB;AAAA,QAClB,eAAe;AAAA,QACf,gBAAgB;AAAA,QAChB,kBAAkB;AAAA,QAClB,eAAe;AAAA,QACf,aAAa;AAAA,QACb,UAAU;AAAA,QACV,YAAY;AAAA,QACZ,gBAAgB;AAAA,QAChB,eAAe;AAAA,QACf,iBAAiB;AAAA,QACjB,QAAQ;AAAA,QACR,mBAAmB;AAAA,QACnB,oBAAoB;AAAA,QACpB,aAAa;AAAA,QACb,cAAc;AAAA,QACd,YAAY;AAAA,QACZ,aAAa;AAAA,QACb,UAAU;AAAA,QACV,cAAc;AAAA,QACd,eAAe;AAAA,QACf,cAAc;AAAA,QACd,UAAU;AAAA,QACV,aAAa;AAAA,QACb,aAAa;AAAA,QACb,aAAa;AAAA,QACb,aAAa;AAAA,QACb,SAAS;AAAA;AAAA,QAET,eAAe;AAAA,QACf,eAAe;AAAA,MACjB;AAAA,MACA,YAAY;AAAA,QACV,OAAO;AAAA,QACP,cAAc;AAAA,QACd,YAAY;AAAA,QACZ,UAAU;AAAA,QACV,mBAAmB;AAAA,QACnB,YAAY;AAAA,QACZ,WAAW;AAAA,QACX,YAAY;AAAA,QACZ,QAAQ;AAAA,QACR,eAAe;AAAA,QACf,eAAe;AAAA,QACf,SAAS;AAAA,QACT,WAAW;AAAA,QACX,eAAe;AAAA,QACf,eAAe;AAAA,QACf,aAAa;AAAA,QACb,MAAM;AAAA,QACN,OAAO;AAAA,QACP,MAAM;AAAA,QACN,IAAI;AAAA,QACJ,UAAU;AAAA,QACV,WAAW;AAAA,QACX,WAAW;AAAA,QACX,MAAM;AAAA,QACN,UAAU;AAAA,QACV,eAAe;AAAA,QACf,UAAU;AAAA,QACV,OAAO;AAAA,QACP,oBAAoB;AAAA,QACpB,2BAA2B;AAAA,QAC3B,cAAc;AAAA,QACd,gBAAgB;AAAA,QAChB,SAAS;AAAA,QACT,mBAAmB;AAAA,QACnB,kBAAkB;AAAA,QAClB,aAAa;AAAA,QACb,QAAQ;AAAA,QACR,IAAI;AAAA,QACJ,IAAI;AAAA,QACJ,GAAG;AAAA,QACH,UAAU;AAAA,QACV,eAAe;AAAA,QACf,SAAS;AAAA,QACT,iBAAiB;AAAA,QACjB,WAAW;AAAA,QACX,SAAS;AAAA,QACT,KAAK;AAAA,QACL,SAAS;AAAA,QACT,kBAAkB;AAAA,QAClB,UAAU;AAAA,QACV,IAAI;AAAA,QACJ,IAAI;AAAA,QACJ,UAAU;AAAA,QACV,UAAU;AAAA,QACV,WAAW;AAAA,QACX,kBAAkB;AAAA,QAClB,KAAK;AAAA,QACL,OAAO;AAAA,QACP,UAAU;AAAA,QACV,2BAA2B;AAAA,QAC3B,MAAM;AAAA,QACN,aAAa;AAAA,QACb,UAAU;AAAA,QACV,QAAQ;AAAA,QACR,WAAW;AAAA,QACX,aAAa;AAAA,QACb,YAAY;AAAA,QACZ,cAAc;AAAA,QACd,WAAW;AAAA,QACX,gBAAgB;AAAA,QAChB,YAAY;AAAA,QACZ,UAAU;AAAA,QACV,gBAAgB;AAAA,QAChB,aAAa;AAAA,QACb,WAAW;AAAA,QACX,aAAa;AAAA,QACb,YAAY;AAAA,QACZ,QAAQ;AAAA,QACR,IAAI;AAAA,QACJ,MAAM;AAAA,QACN,IAAI;AAAA,QACJ,IAAI;AAAA,QACJ,IAAI;AAAA,QACJ,IAAI;AAAA,QACJ,WAAW;AAAA,QACX,4BAA4B;AAAA,QAC5B,0BAA0B;AAAA,QAC1B,UAAU;AAAA,QACV,mBAAmB;AAAA,QACnB,eAAe;AAAA,QACf,SAAS;AAAA,QACT,SAAS;AAAA,QACT,mBAAmB;AAAA,QACnB,YAAY;AAAA,QACZ,QAAQ;AAAA,QACR,MAAM;AAAA,QACN,UAAU;AAAA,QACV,WAAW;AAAA,QACX,cAAc;AAAA,QACd,cAAc;AAAA,QACd,IAAI;AAAA,QACJ,aAAa;AAAA,QACb,gBAAgB;AAAA,QAChB,mBAAmB;AAAA,QACnB,IAAI;AAAA,QACJ,KAAK;AAAA,QACL,WAAW;AAAA,QACX,GAAG;AAAA,QACH,IAAI;AAAA,QACJ,IAAI;AAAA,QACJ,IAAI;AAAA,QACJ,IAAI;AAAA,QACJ,cAAc;AAAA,QACd,kBAAkB;AAAA,QAClB,WAAW;AAAA;AAAA,QACX,YAAY;AAAA;AAAA,QACZ,UAAU;AAAA;AAAA,QACV,SAAS;AAAA,QACT,MAAM;AAAA,QACN,cAAc;AAAA,QACd,eAAe;AAAA,QACf,eAAe;AAAA,QACf,mBAAmB;AAAA,QACnB,OAAO;AAAA,QACP,WAAW;AAAA,QACX,WAAW;AAAA,QACX,aAAa;AAAA,QACb,cAAc;AAAA,QACd,aAAa;AAAA,QACb,aAAa;AAAA,QACb,MAAM;AAAA,QACN,kBAAkB;AAAA,QAClB,WAAW;AAAA,QACX,cAAc;AAAA,QACd,KAAK;AAAA,QACL,OAAO;AAAA,QACP,wBAAwB;AAAA,QACxB,uBAAuB;AAAA,QACvB,WAAW;AAAA,QACX,WAAW;AAAA,QACX,QAAQ;AAAA,QACR,KAAK;AAAA,QACL,MAAM;AAAA,QACN,MAAM;AAAA,QACN,SAAS;AAAA,QACT,aAAa;AAAA,QACb,cAAc;AAAA,QACd,SAAS;AAAA,QACT,SAAS;AAAA,QACT,SAAS;AAAA,QACT,UAAU;AAAA,QACV,OAAO;AAAA,QACP,WAAW;AAAA,QACX,YAAY;AAAA,QACZ,YAAY;AAAA,QACZ,UAAU;AAAA,QACV,QAAQ;AAAA,QACR,SAAS;AAAA,QACT,YAAY;AAAA,QACZ,cAAc;AAAA,QACd,eAAe;AAAA,QACf,SAAS;AAAA,QACT,UAAU;AAAA,QACV,WAAW;AAAA,QACX,kBAAkB;AAAA,QAClB,UAAU;AAAA,QACV,SAAS;AAAA,QACT,SAAS;AAAA,QACT,QAAQ;AAAA,QACR,aAAa;AAAA,QACb,OAAO;AAAA,QACP,YAAY;AAAA,QACZ,QAAQ;AAAA,QACR,WAAW;AAAA,QACX,aAAa;AAAA,QACb,YAAY;AAAA,QACZ,aAAa;AAAA,QACb,YAAY;AAAA,QACZ,aAAa;AAAA,QACb,QAAQ;AAAA,QACR,kBAAkB;AAAA,QAClB,WAAW;AAAA,QACX,OAAO;AAAA,QACP,SAAS;AAAA,QACT,SAAS;AAAA,QACT,SAAS;AAAA,QACT,WAAW;AAAA,QACX,YAAY;AAAA,QACZ,cAAc;AAAA,QACd,SAAS;AAAA,QACT,WAAW;AAAA,QACX,WAAW;AAAA,QACX,YAAY;AAAA,QACZ,SAAS;AAAA,QACT,QAAQ;AAAA,QACR,cAAc;AAAA,QACd,kBAAkB;AAAA,QAClB,aAAa;AAAA,QACb,WAAW;AAAA,QACX,aAAa;AAAA,QACb,cAAc;AAAA,QACd,cAAc;AAAA,QACd,aAAa;AAAA,QACb,YAAY;AAAA,QACZ,aAAa;AAAA,QACb,WAAW;AAAA,QACX,cAAc;AAAA,QACd,WAAW;AAAA,QACX,UAAU;AAAA,QACV,YAAY;AAAA,QACZ,YAAY;AAAA,QACZ,SAAS;AAAA,QACT,SAAS;AAAA,QACT,QAAQ;AAAA,QACR,WAAW;AAAA,QACX,YAAY;AAAA,QACZ,YAAY;AAAA,QACZ,cAAc;AAAA,QACd,UAAU;AAAA,QACV,SAAS;AAAA,QACT,UAAU;AAAA,QACV,UAAU;AAAA,QACV,UAAU;AAAA,QACV,WAAW;AAAA,QACX,UAAU;AAAA,QACV,QAAQ;AAAA,QACR,WAAW;AAAA,QACX,WAAW;AAAA,QACX,UAAU;AAAA,QACV,WAAW;AAAA,QACX,cAAc;AAAA,QACd,UAAU;AAAA,QACV,UAAU;AAAA,QACV,gBAAgB;AAAA,QAChB,WAAW;AAAA,QACX,QAAQ;AAAA,QACR,SAAS;AAAA,QACT,UAAU;AAAA,QACV,OAAO;AAAA,QACP,QAAQ;AAAA,QACR,aAAa;AAAA,QACb,QAAQ;AAAA,QACR,UAAU;AAAA,QACV,SAAS;AAAA,QACT,kBAAkB;AAAA,QAClB,mBAAmB;AAAA,QACnB,YAAY;AAAA,QACZ,SAAS;AAAA,QACT,MAAM;AAAA,QACN,YAAY;AAAA,QACZ,qBAAqB;AAAA,QACrB,kBAAkB;AAAA,QAClB,cAAc;AAAA,QACd,OAAO;AAAA,QACP,MAAM;AAAA,QACN,OAAO;AAAA,QACP,eAAe;AAAA,QACf,eAAe;AAAA,QACf,QAAQ;AAAA,QACR,WAAW;AAAA,QACX,WAAW;AAAA,QACX,WAAW;AAAA,QACX,eAAe;AAAA,QACf,qBAAqB;AAAA,QACrB,gBAAgB;AAAA,QAChB,WAAW;AAAA,QACX,UAAU;AAAA,QACV,GAAG;AAAA,QACH,QAAQ;AAAA,QACR,gBAAgB;AAAA,QAChB,MAAM;AAAA,QACN,MAAM;AAAA,QACN,KAAK;AAAA,QACL,KAAK;AAAA,QACL,iBAAiB;AAAA,QACjB,aAAa;AAAA,QACb,WAAW;AAAA,QACX,oBAAoB;AAAA,QACpB,kBAAkB;AAAA,QAClB,eAAe;AAAA,QACf,iBAAiB;AAAA,QACjB,UAAU;AAAA,QACV,SAAS;AAAA,QACT,QAAQ;AAAA,QACR,QAAQ;AAAA,QACR,IAAI;AAAA,QACJ,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,MAAM;AAAA,QACN,gBAAgB;AAAA,QAChB,MAAM;AAAA,QACN,OAAO;AAAA,QACP,cAAc;AAAA,QACd,kBAAkB;AAAA,QAClB,kBAAkB;AAAA,QAClB,cAAc;AAAA,QACd,SAAS;AAAA,QACT,aAAa;AAAA,QACb,cAAc;AAAA,QACd,OAAO;AAAA,QACP,OAAO;AAAA,QACP,aAAa;AAAA,QACb,WAAW;AAAA,QACX,aAAa;AAAA,QACb,uBAAuB;AAAA,QACvB,wBAAwB;AAAA,QACxB,QAAQ;AAAA,QACR,QAAQ;AAAA,QACR,iBAAiB;AAAA,QACjB,kBAAkB;AAAA,QAClB,eAAe;AAAA,QACf,gBAAgB;AAAA,QAChB,kBAAkB;AAAA,QAClB,eAAe;AAAA,QACf,aAAa;AAAA,QACb,OAAO;AAAA,QACP,cAAc;AAAA,QACd,cAAc;AAAA,QACd,qBAAqB;AAAA,QACrB,YAAY;AAAA,QACZ,eAAe;AAAA,QACf,sBAAsB;AAAA,QACtB,gBAAgB;AAAA,QAChB,UAAU;AAAA,QACV,aAAa;AAAA,QACb,QAAQ;AAAA,QACR,SAAS;AAAA,QACT,SAAS;AAAA,QACT,YAAY;AAAA,QACZ,gBAAgB;AAAA,QAChB,eAAe;AAAA,QACf,YAAY;AAAA,QACZ,eAAe;AAAA,QACf,OAAO;AAAA,QACP,mBAAmB;AAAA,QACnB,MAAM;AAAA,QACN,QAAQ;AAAA,QACR,IAAI;AAAA,QACJ,WAAW;AAAA,QACX,iBAAiB;AAAA,QACjB,IAAI;AAAA,QACJ,IAAI;AAAA,QACJ,mBAAmB;AAAA,QACnB,oBAAoB;AAAA,QACpB,SAAS;AAAA,QACT,aAAa;AAAA,QACb,cAAc;AAAA,QACd,YAAY;AAAA,QACZ,QAAQ;AAAA,QACR,aAAa;AAAA,QACb,eAAe;AAAA,QACf,cAAc;AAAA,QACd,UAAU;AAAA,QACV,cAAc;AAAA,QACd,SAAS;AAAA,QACT,UAAU;AAAA,QACV,aAAa;AAAA,QACb,aAAa;AAAA,QACb,SAAS;AAAA,QACT,YAAY;AAAA,QACZ,YAAY;AAAA,QACZ,OAAO;AAAA,QACP,QAAQ;AAAA,QACR,aAAa;AAAA,QACb,aAAa;AAAA,QACb,GAAG;AAAA,QACH,IAAI;AAAA,QACJ,IAAI;AAAA,QACJ,kBAAkB;AAAA,QAClB,SAAS;AAAA,QACT,GAAG;AAAA,QACH,IAAI;AAAA,QACJ,IAAI;AAAA,QACJ,kBAAkB;AAAA,QAClB,GAAG;AAAA,QACH,YAAY;AAAA,MACd;AAAA,MACA,OAAO;AAAA,MACP,WAAW;AAAA,IACb,CAAC;AAAA;AAAA;;;ACtjBD,IAEa;AAFb;AAAA;AAAA;AAEO,IAAM,QAAQC,QAAO;AAAA,MAC1B,YAAY;AAAA,QACV,cAAc;AAAA,QACd,cAAc;AAAA,QACd,WAAW;AAAA,QACX,WAAW;AAAA,QACX,WAAW;AAAA,QACX,YAAY;AAAA,QACZ,WAAW;AAAA,MACb;AAAA,MACA,OAAO;AAAA,MACP,UAAUC,IAAG,UAAU;AACrB,eAAO,WAAW,SAAS,MAAM,CAAC,EAAE,YAAY;AAAA,MAClD;AAAA,IACF,CAAC;AAAA;AAAA;;;AChBD,IAGa;AAHb;AAAA;AAAA;AACA;AAEO,IAAM,QAAQC,QAAO;AAAA,MAC1B,YAAY,EAAC,YAAY,cAAa;AAAA,MACtC,YAAY,EAAC,YAAY,MAAM,OAAO,KAAI;AAAA,MAC1C,OAAO;AAAA,MACP,WAAW;AAAA,IACb,CAAC;AAAA;AAAA;;;ACRD,IAEa;AAFb;AAAA;AAAA;AAEO,IAAM,MAAMC,QAAO;AAAA,MACxB,YAAY,EAAC,SAAS,MAAM,SAAS,MAAM,UAAU,KAAI;AAAA,MACzD,OAAO;AAAA,MACP,UAAUC,IAAG,UAAU;AACrB,eAAO,SAAS,SAAS,MAAM,CAAC,EAAE,YAAY;AAAA,MAChD;AAAA,IACF,CAAC;AAAA;AAAA;;;ACRD;AAAA;AAAA;AAAA;;;AC0CO,SAASC,MAAK,QAAQC,QAAO;AAClC,QAAM,SAASC,WAAUD,MAAK;AAC9B,MAAI,WAAWA;AACf,MAAI,OAAO;AAEX,MAAI,UAAU,OAAO,QAAQ;AAC3B,WAAO,OAAO,SAAS,OAAO,OAAO,MAAM,CAAC;AAAA,EAC9C;AAEA,MAAI,OAAO,SAAS,KAAK,OAAO,MAAM,GAAG,CAAC,MAAM,UAAU,MAAM,KAAKA,MAAK,GAAG;AAE3E,QAAIA,OAAM,OAAO,CAAC,MAAM,KAAK;AAE3B,YAAM,OAAOA,OAAM,MAAM,CAAC,EAAE,QAAQ,MAAM,SAAS;AACnD,iBAAW,SAAS,KAAK,OAAO,CAAC,EAAE,YAAY,IAAI,KAAK,MAAM,CAAC;AAAA,IACjE,OAAO;AAEL,YAAM,OAAOA,OAAM,MAAM,CAAC;AAE1B,UAAI,CAAC,KAAK,KAAK,IAAI,GAAG;AACpB,YAAI,SAAS,KAAK,QAAQ,KAAK,KAAK;AAEpC,YAAI,OAAO,OAAO,CAAC,MAAM,KAAK;AAC5B,mBAAS,MAAM;AAAA,QACjB;AAEA,QAAAA,SAAQ,SAAS;AAAA,MACnB;AAAA,IACF;AAEA,WAAO;AAAA,EACT;AAEA,SAAO,IAAI,KAAK,UAAUA,MAAK;AACjC;AAQA,SAAS,MAAM,IAAI;AACjB,SAAO,MAAM,GAAG,YAAY;AAC9B;AAQA,SAAS,UAAU,IAAI;AACrB,SAAO,GAAG,OAAO,CAAC,EAAE,YAAY;AAClC;AAhGA,IAQM,KACA,MACA;AAVN,IAAAE,aAAA;AAAA;AAIA;AACA;AACA;AAEA,IAAM,MAAM;AACZ,IAAM,OAAO;AACb,IAAM,QAAQ;AAAA;AAAA;;;ACVd,IAWaC,OAKAC;AAhBb;AAAA;AACA,IAAAC;AACA;AACA,IAAAC;AACA;AACA;AACA;AACA;AAEA;AAIA,IAAAC;AACA;AAHO,IAAMJ,QAAOK,OAAM,CAACC,OAAMN,OAAU,OAAO,OAAO,GAAG,GAAG,MAAM;AAK9D,IAAMC,OAAMI,OAAM,CAACC,OAAM,KAAS,OAAO,OAAO,GAAG,GAAG,KAAK;AAAA;AAAA;;;ACgB3D,SAAS,KAAKC,QAAO,SAAS;AACnC,EAAAA,SAAQA,OAAM;AAAA,IACZ,QAAQ,SACJ,6BAA6B,QAAQ,MAAM,IAC3C;AAAA,IACJ;AAAA,EACF;AAEA,MAAI,QAAQ,UAAU,QAAQ,YAAY;AACxC,WAAOA;AAAA,EACT;AAEA,SACEA,OAEG,QAAQ,qBAAqB,SAAS,EAGtC,QAAQ,wBAAwB,KAAK;AAQ1C,WAAS,UAAU,MAAMC,QAAOC,MAAK;AACnC,WAAO,QAAQ;AAAA,OACZ,KAAK,WAAW,CAAC,IAAI,SAAU,OAC9B,KAAK,WAAW,CAAC,IACjB,QACA;AAAA,MACFA,KAAI,WAAWD,SAAQ,CAAC;AAAA,MACxB;AAAA,IACF;AAAA,EACF;AAOA,WAAS,MAAM,WAAWA,QAAOC,MAAK;AACpC,WAAO,QAAQ;AAAA,MACb,UAAU,WAAW,CAAC;AAAA,MACtBA,KAAI,WAAWD,SAAQ,CAAC;AAAA,MACxB;AAAA,IACF;AAAA,EACF;AACF;AAUA,SAAS,6BAA6B,QAAQ;AAC5C,MAAI,SAAS,mBAAmB,IAAI,MAAM;AAE1C,MAAI,CAAC,QAAQ;AACX,aAAS,uBAAuB,MAAM;AACtC,uBAAmB,IAAI,QAAQ,MAAM;AAAA,EACvC;AAEA,SAAO;AACT;AAMA,SAAS,uBAAuB,QAAQ;AAEtC,QAAM,SAAS,CAAC;AAChB,MAAIA,SAAQ;AAEZ,SAAO,EAAEA,SAAQ,OAAO,QAAQ;AAC9B,WAAO,KAAK,OAAOA,MAAK,EAAE,QAAQ,kBAAkB,MAAM,CAAC;AAAA,EAC7D;AAEA,SAAO,IAAI,OAAO,QAAQ,OAAO,KAAK,GAAG,IAAI,KAAK,GAAG;AACvD;AApHA,IAeM,oBACA,qBACA,wBAGA,kBAGA;AAvBN;AAAA;AAeA,IAAM,qBAAqB;AAC3B,IAAM,sBAAsB;AAC5B,IAAM;AAAA,IAEJ;AACF,IAAM,mBAAmB;AAGzB,IAAM,qBAAqB,oBAAI,QAAQ;AAAA;AAAA;;;ACbhC,SAAS,cAAcE,OAAMC,OAAM,MAAM;AAC9C,QAAMC,SAAQ,QAAQF,MAAK,SAAS,EAAE,EAAE,YAAY;AACpD,SAAO,QAAQC,SAAQ,CAAC,iBAAiB,KAAK,OAAO,aAAaA,KAAI,CAAC,IACnEC,SACAA,SAAQ;AACd;AAfA,IAAM;AAAN;AAAA;AAAA,IAAM,mBAAmB;AAAA;AAAA;;;ACUlB,SAAS,UAAUC,OAAMC,OAAM,MAAM;AAC1C,QAAMC,SAAQ,OAAO,OAAOF,KAAI;AAChC,SAAO,QAAQC,SAAQ,CAAC,aAAa,KAAK,OAAO,aAAaA,KAAI,CAAC,IAC/DC,SACAA,SAAQ;AACd;AAfA,IAAM;AAAN;AAAA;AAAA,IAAM,eAAe;AAAA;AAAA;;;ACArB,IAKa;AALb;AAAA;AAKO,IAAM,0BAA0B;AAAA,MACrC;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IACF;AAAA;AAAA;;;AChHA,IAKa;AALb;AAAA;AAKO,IAAM,yBAAyB;AAAA,MACpC,MAAM;AAAA,MACN,OAAO;AAAA,MACP,MAAM;AAAA,MACN,OAAO;AAAA,MACP,QAAQ;AAAA,MACR,KAAK;AAAA,MACL,QAAQ;AAAA,MACR,MAAM;AAAA,MACN,KAAK;AAAA,MACL,MAAM;AAAA,MACN,MAAM;AAAA,MACN,OAAO;AAAA,MACP,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,MAAM;AAAA,MACN,KAAK;AAAA,MACL,QAAQ;AAAA,MACR,MAAM;AAAA,MACN,MAAM;AAAA,MACN,OAAO;AAAA,MACP,OAAO;AAAA,MACP,MAAM;AAAA,MACN,QAAQ;AAAA,MACR,OAAO;AAAA,MACP,MAAM;AAAA,MACN,MAAM;AAAA,MACN,OAAO;AAAA,MACP,QAAQ;AAAA,MACR,QAAQ;AAAA,MACR,QAAQ;AAAA,MACR,QAAQ;AAAA,MACR,QAAQ;AAAA,MACR,QAAQ;AAAA,MACR,OAAO;AAAA,MACP,QAAQ;AAAA,MACR,MAAM;AAAA,MACN,OAAO;AAAA,MACP,OAAO;AAAA,MACP,QAAQ;AAAA,MACR,QAAQ;AAAA,MACR,QAAQ;AAAA,MACR,OAAO;AAAA,MACP,MAAM;AAAA,MACN,QAAQ;AAAA,MACR,QAAQ;AAAA,MACR,OAAO;AAAA,MACP,MAAM;AAAA,MACN,KAAK;AAAA,MACL,QAAQ;AAAA,MACR,QAAQ;AAAA,MACR,QAAQ;AAAA,MACR,OAAO;AAAA,MACP,QAAQ;AAAA,MACR,MAAM;AAAA,MACN,OAAO;AAAA,MACP,QAAQ;AAAA,MACR,QAAQ;AAAA,MACR,QAAQ;AAAA,MACR,OAAO;AAAA,MACP,MAAM;AAAA,MACN,QAAQ;AAAA,MACR,OAAO;AAAA,MACP,OAAO;AAAA,MACP,QAAQ;AAAA,MACR,QAAQ;AAAA,MACR,OAAO;AAAA,MACP,QAAQ;AAAA,MACR,MAAM;AAAA,MACN,OAAO;AAAA,MACP,OAAO;AAAA,MACP,QAAQ;AAAA,MACR,QAAQ;AAAA,MACR,QAAQ;AAAA,MACR,OAAO;AAAA,MACP,MAAM;AAAA,MACN,QAAQ;AAAA,MACR,QAAQ;AAAA,MACR,OAAO;AAAA,MACP,MAAM;AAAA,MACN,KAAK;AAAA,MACL,QAAQ;AAAA,MACR,QAAQ;AAAA,MACR,QAAQ;AAAA,MACR,OAAO;AAAA,MACP,QAAQ;AAAA,MACR,MAAM;AAAA,MACN,QAAQ;AAAA,MA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A,SACA,WACA,oBACA,cAWA,MACF,gBACA,WACE,QACA,UACA,mBACA,aACA,YACA,QACA,OAEA,KACA,GACFC,IACE,GA6GF,GAMArB,IACEzB,KACFL,IACAoD,IACAhD,IACAE,IACA+C,IACAtD,KACAuD,IACArD,KACAE,IACAoD,IACAzD,KACA0D,IACAhD,IACAW,IACAsC,IACA5D,IACA6D,IACAC,IACAxB,KACAyB,IACA,GACAC,IACAC,IACAC,IACAC,IACAC,IACAC,IACAC,IACAnC,IACAoC,IACAC,IACAC,IACAC,IACAC,IACAC,IACAC,IACA,GACAhD,KACA,IACE,IAwEA,IAkGA,IAmHF,IAwEE,IACF,IAUA,IACE,GACF9B,KACA+E,IACAC,IACA,IACE,IAQA,IAUF,IAQE,IASA,KACA,KAMF,KACE,KACF,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,MACE,KACF,KACA,KACAC,IACA,MACE,IAwEF,KAqBA,IAwEA,KACA,IACAC,IACA,KACA,KACA,KACA,IAKE,IAoBA,sBACA,eACA,oBACA,2BACA,eACA,wBACA,gCACA,aACA,WACA,6BACA,yBACA,qCACA,iBACA,YAeA,kBAQA,iBACA,kBAOA,iBACA,uBAEA,sBACA,uBAEA,sBACA,+BACA,uBACA,qBACA,wBACA,uBACA,iCACA,iBACA,kBAEA,SA2BA,UAqBA,SAEA5D,SA8BA,aAQA,KACA,sBA2BA,QAoFA,YAgBA,cAOA,WAqBA,KAKA,WAEA,WACA,WAOA,QAqCA,eAiBA6D,SAiEA,MACA,KAGA,eAeA,eA0CAjE,SACF,OACE,cACA,qBAIA,sBACA,YACA,aACA,YACA,eACA,UAcA,OA8GA,oBA0DA,oBAyDA,sBAGA,oBA2CA,SAuDA,UACA,QACA,WACA,qBA4EA,SACA,QAKA,KA0BAkE,QAqCA,KASA,aA2MA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AA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AA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A;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA,eAAeH;AAAA,MACf,mBAAmBC;AAAA,MACnB,uBAAuBC;AAAA,MACvB;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IACF;AAAA;AAAA;;;AC7sCA,IAKIE,SACA,KAKA,KAKA,KAKA,KAKA,KAKA,KAKA,KAKA,KAKA,KAKA,KAKA,cAKA,UACA,OACA,OAKA,eAKA,UAKA,WACAC,gBAKAC,gBACA,gBAKAC,kBAKAC,aAKAC,SACA,cAKA,OAKA,iBAKAC,UAKAC,kBACA,UAKA,SAKA,QACA,kBAKA,WAKA,gBAKA,oBAKA,YAKA,cAKA,wBAKA,iBAKA,gBACA,eAKA,UAKA,aAKA,qBACA,gBAKA,sBAKAC,kBAKA,cAKA,SAKA,YACA,aAKA,kBACA,mBAKA,aAKA,aACA,gBACA,YAKA,cACA,cAKA,OACA,WAKA,iBAKA,gBACA,OAKA,cACA,cAKA,WACA,SAKA,UAKAC,cAKA,UAKA,QAKA,UAKA,uBAKA,qBACA,kBAKAC,aAKA,QAKAC,oBAKAC,oBACA,QAKA,KAKA,gBAKA,iBAKA,2BAKA,gBAKA,eACA,kBACA,MAKA,mBAKA,eACA,OACAC,UAKA,kBAKA,qBACA,aAKA,aAKA,aAKA,eAKA,UACA,cAKA,cAKAC,SAKA,YAKA,YAKA,sBAKA,gBACA,OAKA,YACA,kBAKA,UAKA,iBACA,eACA,oBAKA,eAKA,UAKA,aAKA,cAKA,yBAKA,UAKAC,YAKAC,eACA,UAKAC,cAKAC,UACA,YAKA,WAKA,QACA,YACA,iBACA,gBAKA,yBACA,iBAKA,mBAKAC,iBAKAC,gBACA,oBAKA,cACAC,gBAKA,eAKA,mBAKA,wBAKA,SACA,qBAKAC,eAKA,cAKA,cACA,qBAKA,mBACAC,eAKA,UAKA,aAKA,iBAKA,WACA,UACA,aAKA,cAKA,cAKA,2BAKA,WAKAC,gBAKAC,gBACA,UAKA,QAKA,kBAKA,WAKA,mBAKA,UACA,cAKA,SAKA,aACA,YACA,wBACA,oBAKA,WAKA,YAKA,UAKA,WACA,iBACA,cAKA,SAKA,WAKA,kBAKA,kBACA,UAKA,gBAKA,gBAKA,QAKA,YAKA,cAKA,YACA,2BAKA,cAKA,WAKAC,cAKAC,QACA,eAKA,WAKA,YAKA,aACA,cAKA,WAKA,cACAC,eAKAC,gBACA,WAKA,SAKA,wBACA,iBAKA,kBAKA,gBACA,cAKA,eACA,OAKA,OAKA,QACA,mBAKA,UACA,aAKA,gBAKA,SACA,YACA,cAKA,OAKA,UACA,gBAKA,SAKA,aACA,gBAKA,aAKA,eAKAC,eAKAC,SACA,mBAKA,KAKA,WAKA,UAKA,aAKA,6BACA,mBAKA,OAKA,SAKA,gBAKA,eACA,mBAKA,QACA,QAKA,QAKA,KAKA,QAKA,gBAKA,UACA,kBAKA,cAKA,eAKA,cAKA,cACA,UAKA,mBAKA,kBACAC,yBAKAC,qBACA,iBAKA,SAKA,YAKA,eAKA,gBAKA,kBAKA,kBACA,cAKA,kBAKA,YAKA,aAKAC,WAKAC,cACA,aAKA,WAKA,WAKAC,kBAKAC,cACA,UAKA,WACAC,QAKA,aAKA,cAKA,YACA,eAKA,SACA,aAKA,yBAKA,SAKAC,gBAKAC,YACA,OAKA,oBAKA,SAKA,wBAKA,kBAKAC,oBAKAC,gBACA,WAKA,UAKA,aAKA,cAKA,SAKA,UAKAC,eAKAC,eACA,gBAKA,WACA,iBAKA,eAKA,SAKA,cAKA,aACA,aAKA,aACA,sBACA,KAKA,gBAKA,gBACA,WAKA,QAKA,UAKAC,iBAKAC,aACA,mBAKA,eAKA,UAKA,YAKA,YACA,cAKA,cAKA,aAKA,eAKA,WAKA,qBAKA,SAKA,eAKA,WAKA,oBAKAC,eAKA,2BAKA,oBAKA,aACA,0BAKA,6BAKA,yBAKA,YAKA,aAKA,kBAKA,kBAKA,aACA,UAKA,0BAKA,cAKA,OACA,UACA,UACA,cACA,SAKA,YAKA,aACA,aAKA,YACA,iBAKA,aACA,eAKA,cACAC,kBAKAC,cACAC,gBAKAC,SACA,eAKA,eACAC,sBAKAC,kBACA,oBAKA,UACA,0BAKA,wBAKA,gBAKAC,UAKAC,cACA,QAKAC,kBAKAC,cACA,iBAKA,aAKA,aACA,cAKA,aAKA,aAKA,wBAKA,eACA,eAKA,gBAKA,gBAKA,gBACA,YAKA,wBAKA,oCACA,mBACA,yCACA,uBAKA,UAKA,UAKA,aAKA,SACA,uBAKA,iBACA,cAKAC,eAKA,aAKA,SACA,SAKAC,UAKA,mBAKA,mBACA,eAKA,YACAC,gBAKAC,oBACAC,wBACA,aAKA,iBAKA,YAKA,gBAKA,YAKA,YAKAC,UAKA,WAKA,KAKA,cAKA,YAKA,SAKA,4BAKA,gBACA,gBACA,4BACA,KAKA,eAKA,gBAKA,UAKA,qBAKA,eAKA,YACA,WAKAC,eAKA,SAKA,eAKA,oBAKA,iBAKAC,mBAKA,gBAKA,OAKA,gBAKA,eACA,QAKA,eAKA,iBAKA,QAKA,eAKA,eAKA,YAKA,UACA,eAKA,kBACAC,aAKA,aAKA,cACA,oBAKA,eAKA,QAKA,uBAKA,cACA,SAKA,cAKA,YAKA,QACA,cAKA,YACA,aAKA,UAKA,aACA,WAKA,SAKA,SAKA,cAKA,kBACA,gBAKA,oBAKA,SAKA,eAKAC,eAKA,oBAKA,qBAKA,eACA,0BAKA,YAKAC,cAKA,aAKA,YAKA,mBACA,iBAKA,QAKA,QAKA,iBAKA,uBAKA,UACA,WAKA,WAKA,UAKA,kBACA,gBAKAC,aAKAC,gBACAC,iBACA,mBAKA,oBAKA,YAKA,eACA,UAKA,QAKA,mBAKA,WACA,aAKA,UACA,aAKA,WAKA,KAKA,SAKA,eACA,aAKA,YACA,kBAKA,kBAKA,YAKA,eAKAC,eAKAC,eACA,gBAKA,WACA,YAKA,WACA,cAKA,eAKA,eACA,eACA,sBAKA,oBACA,WAKA,OACA,OACAC,kBAKAC,YAKA,iBAKA,eAKA,YAKA,cAKA,SAKA,eACAC,cAKA,aAKA,uBAKAC,iBAKA,kBAKA,iBACA,cAKA,QAKA,cAKA,aACA,sBAKA,iBACA,gBAKA,aACA,UAKAC,cAKA,kBAKA,YAKA,cAKA,WAKA,aAKA,SACA,cAKA,QAKA,UAKA,aAKA,aACA,WAKA,oBAKA,gBAKA,iBAKA,aAKA,wBAKA,YACA,aAKA,sBAKA,gBACA,UAKA,WAKA,kBACA,UAKA,YAKA,WAKA,cAKA,cACAC,eAKA,SAKA,cAKA,oBACA,YAKA,WACAC,YAKA,UAKA,eAKA,aAKA,YACA,qBAKA,wBAKA,YAKA,eAKA,sBAKA,gBACAC,gBAKAC,gBACA,QAKA,WACAC,gBAKA,6BAKA,yBACA,eAKA,iBACA,WAKA,mBAKA,aAKA,oBAKAC,iBAKA,SAKA,aAKA,QAKA,oBAKA,KAKA,cAKA,mBACA,cACAC,gBAKAC,gBACAC,gBACA,WAKA,mBAKA,OACA,eACA,WAKA,gBAKA,cAKA,SAKA,qBAKA,aAKA,gBACA,WAKA,YACA,aAKA,UAKAC,kBAKAC,kBACA,eAKA,aACA,YAKA,YAKA,OACA,QACA,oBAKA,YAKA,WAKA,OACA,OACA,OACA,OACA,WAKA,cAKA,mBAKA,iBAKA,QACA,iBAKA,cAKA,eAKA,oBAKA,gBACA,aAKA,eAKA,gBAKA,eAKA,iBAKAC,cAKAC,qBAKAC,qBACA,QAKA,cAKA,UAKA,WAKA,uBAKA,iBAKA,WACAC,QAKA,YAKA,gBACAC,UAKA,UAKA,cAKA,kBACA,UAKA,aACA,8BAKA,WAKA,cAKA,mBACA,WAKA,YAKA,YACA,WAKA,eAKA,cAKA,mBAKA,mBACA,kBAKA,YAKA,cAKA,YAKAC,cAKA,oBAKA,oBACA,gBAKA,gBAKA,kBAKA,QAKA,kBAKA,cACA,sBAKA,aAKA,iBAKA,SACA,gBACA,iBACA,UAKA,mBAKA,gBACA,gBACA,mBACA,qBAKA,iBAKA,qBAKA,eAKA,eACAC,gBAKAC,gBACAC,UACA,cAKAC,YAKAC,QACA,0BAKAC,QAKA,YAKA,SAKA,oBAKA,sBAKA,kBAKA,kBACA,YAKA,aAKA,QAKA,aAKA,eAKA,eACA,aAKA,aACAC,kBAKAC,iBAKAC,aACA,oBAKA,gBACA,gBACA,oBACA,cAKA,eAKA,iBAKA,oBAKA,cAKA,cAKAC,mBAKAC,eACA,iBAKA,iBAKA,mBAKAC,WAKAC,eACAC,eACA,cAKA,cACA,qBAKA,mBAKAC,iBAKAC,aACA,gBAKA,mBAKAC,WAKAC,gBACA,cAKA,eAKA,qBAKA,UAKA,sBAKA,cAKAC,UAKA,mBAKA,WAKA,UACA,kBAKA,kBACA,aAKA,oBAKA,eAKA,SAKAC,WAKA,iBAKAC,mBAKAC,eACA,qBAKA,2BAKA,aAKA,UACA,aAKA,qBAKA,qBACA,QAKA,OACA,aAKA,gBACA,iBAKA,YAKA,YAKA,YACA,QAKA,SACA,gBAKA,gBACA,KAKAC,eAKAC,eACAC,kBAKAC,YACAC,SAKAC,cACA,UAKA,cAKA,cACA,UAKA,aAKA,SAKA,yBAKA,gBAKAC,aAKA,SAKA,WAKA,YAKA,aAKA,aACA,kBAKA,kBACA,cAKA,cACA,cAKAC,aAKA,YAKA,iBAKA,iBACAC,cAKA,gBAKA,eAKA,WACA,WAKA,mBAKA,mBACA,QAKA,OACA,qBAKA,SAKA,qBAKA,qBACAC,mBAKAC,mBACA,gBAKA,aAKA,eACA,gBAKA,UACA,oBAKA,cACAC,SAKA,cAKA,qBAKA,iBAKA,YAKA,gBACA,gCAKA,aACA,WAKA,gBAKA,eAKAC,eAKAC,WACA,YAKA,cAKA,aAKA,aACAC,kBAKA,gBAKAC,cAKAC,UACAC,mBAKA,WAKA,gBAKA,kBAKA,cACA,eAKA,qBAKA,gBACA,UAKA,eAKA,mBAKA,mBACA,wBAKA,cAKA,eAKA,QACA,cAKA,cACA,SAKA,UACA,UACA,aAKA,iBAKA,YACA,UAKA,YAKAC,aAKAC,qBACA,KAKA,eAKA,gBAKA,gBACA,gBAKA,QAKA,mBAKA,qBAKA,YAKA,eAKA,YAKA,cAKA,mBAKA,YAKAC,iBAKA,SAKA,YACA,aAKA,YAKA,sBAKA,sBACA,SAKA,YAKA,4BAKA,aAKA,cACA,SAKAC,QAKA,UAKA,mBAKA,cAKA,gBAKAC,mBAKAC,mBACAC,mBACAC,gBACA,UAKAC,aAKAC,aACA,cAKA,MACA,UAKA,gBAKA,mBAKA,aACA,WAKA,gBAKA,gBACAC,aAKAC,cAKA,oBAKA,UAKA,kBAKA,cACAC,eAKAC,uBACA,gBAKA,WAKA,sBAKA,QACA,qBAKA,aAKA,iBAKA,iBACA,mBAKA,SAKAC,aAKA,qBAKA,UAKA,UAKAC,kBAKAC,cACA,SAKA,eAKA,mBAKA,YAKA,sBAKA,aACA,qBAKA,yBAKA,SACA,gBAKA,kBACA,cAKA,aAKA,cAKA,UACAC,aAKAC,aACA,oBAKA,gBACA,YAKA,sBAKA,iBACAC,eAKA,aAKA,KAKA,yBAKA,UACAC,UAKAC,SACAC,YACAC,cACA,WAKA,SAKA,SACA,gBAKA,aACA,QAKA,eAKA,YAKA,UAKA,cACA,sBAKA,gBACA,gBACA,sBACA,WAKA,YACA,UAKA,KAKA,QAKA,iBAKA,WACA,iBAKA,aACA,QAKA,UAKAC,cAKAC,UACA,kBAKA,gBACA,gBAKA,eAKA,eACA,iBAKA,yBACA,qBAKA,iBACA,oBAKA,eACA,YAKA,oBAKA,YAKA,aAKA,SACA,SAKA,oBAKA,iCAKA,cAKA,uBAKA,cAKA,aAKA,QAKA,YACA,mBAKA,gBACA,cAKA,QAKA,wBAKA,wBAKA,sBACA,UAKAC,SAKAC,YACAC,cACAC,cAKA,UAKA,mBAKA,YAKA,aAKA,mBAKA,gBACA,gBACA,mBACA,UAKA,6BAKA,mBAKA,aAKA,cAKA,cAKA,aAKA,SAKAC,aAKA,WAKA,UAKA,UACA,eACA,mBAKA,QAKA,QAKA,QAKA,mBAKA,oBACAC,oBAKAC,oBACA,SAKA,KAKA,eAKA,cACA,eACA,WAKA,iBAKA,WACA,aAKA,iBACA,qBACA,cAKA,YAKA,cAKAC,cAKAC,iBACAC,oBACA,gBAKA,UACA,eAKA,eAKA,SAKA,sBAKA,UACA,KAKAC,kBAKAC,cACA,YAKAC,wBAKAC,oBACAC,cAKA,oBAKA,KAKA,UAKA,iBAKA,eAKA,kBACA,qBACA,aAKA,eACA,SAKA,aAKA,sBAKA,mBAKA,SAKA,UAKA,YAKA,gBAKA,gBACA,YAKAC,kBAKAC,kBACAC,eAKAC,uBACA,eAKA,SAKA,SACA,YACA,UACA,SACA,UAKA,wBACA,WAKA,YAKA,aAKA,gBAKA,aACA,WAKA,QACAC,cAKAC,YACAC,aACA,kBAKA,2BAKA,kBACA,eAKA,YAKA,cAKA,QAKA,YACA,QAKA,WACA,cACA,uBAKAC,aAKA,QAKA,OAKAC,gBAKAC,gBACA,WAKA,cAKA,aACAC,SAKA,WAKA,qBAKA,qBACA,UAKA,iBACA,aAKA,UACA,OACA,SACAC,qBAKA,OAKA,SAKAC,WAKA,gBAKA,oBACA,eAKA,eAKA,eACAC,gBAKAC,wBACA,eAKA,sBACA,SAKA,SAKA,aAKA,SAKA,sBAKA,cAKA,iBACA,oBAKA,gBAKA,aAKA,gBAKAC,WAKAC,mBACAC,eAKAC,eACAC,kBAKAC,cACA,QAKA,oBAKA,eAKA,WACA,iBACA,SAKA,sBAKA,cAKA,gBAKA,gBACAC,gBAKAC,gBACA,YAKA,gBAKA,6BAKA,mBAKA,iBACA,YAKA,gBACA,mBAKA,eAKA,kBACA,oBACA,eAKA,cAKA,YAKA,aAKA,cACA,SAKA,UAKA,QACAC,cAKAC,mBACA,QAKA,iBAKA,eAKA,QAKA,KAKA,gBAKA,mBAKA,gBAKA,KAKA,QAKA,eACA,UAKA,cAKA,cAKAC,eAKAC,kBACAC,qBACA,OAKAC,mBAKA,aAKA,gBACA,eAKA,aAKA,aACA,YAKA,aAKA,qBAKA,gBAKA,mBACA,QAKA,YAKA,mBAKA,WACA,YAKA,kBAKA,iBACA,oBACA,gBAKA,gBACA,aAKA,mBAKAC,mBAKA,sBAKA,eAKA,aACA,eAKA,eAKA,gBACA,aAKA,YACA,SAKA,gBAKA,yBAKA,kBAKA,kBAKA,WACAC,gBAKAC,eACA,YAKA,YACA,QAKA,cAKA,SAKA,WAKA,WACA,gBAKA,sBAKA,sBACA,WAKA,aAKAC,uBAKAC,mBACA,KAKA,sBAKA,kBACA,qBACAC,kBAKAC,eACA,SAKA,gBACAC,eAKAC,kBACA,qBAKA,0BAKA,kBACA,sBAKA,YACA,YAKA,aAKA,kBAKA,eAKA,iBAKA,eAKA,kBACA,mBACAC,cAKA,qBAKA,qBACA,kBAKAC,cAKA,kBAKA,qBACA,wBACA,eAKA,WAKA,eAKA,iBACA,oBACA,SAKA,qCAKA,oBAKA,mBACA,gBAKA,gBACA,aAKA,eAKA,aAKA,mBAKA,MAKA,cACA,SACA,WAKA,SAKAC,SAKAC,SAKA,uBAKA,uBACA,WACA,2BAKA,iBAKA,eACA,SAKA,iBAKA,gBAKA,aAKA,UACAC,UAKA,WAKA,KAKA,QAKA,eAKA,cAKA,YACA,cAKA,WAKA,UAKA,iBAKA,WACA,YAKA,cAKA,cACA,kBACA,WACA,WAKA,UACA,cAKA,eAKAC,kBAKA,KAKA,qBAKA,WAKA,oBAKA,cAKA,gBAKA,kBACA,oBAKA,iBAKA,iBACA,aAKA,cAKA,eAKA,eACA,YAKA,eAKA,SAKA,YAKA,YAKA,OACA,OAKA,yBAKA,WACA,mBAKA,eAKA,SAKA,YAKA,iBAKA,SACA,UAKA,SAKA,kBAKA,gBAKAC,mBAKAC,eACA,gBAKA,uBAKA,YAKA,cAKA,yBAKA,sBACA,eACA,gBAKA,oBAKA,WAKA,uBAKA,YACA,YAKA,gBACA,gBAKA,YAKA,eAKA,WACA,YACA,cAKAC,iBAKAC,aACA,mBAKA,mBACA,QAKA,YAKA,cAKAC,YAKA,YAKA,gBAKA,aACA,WAKA,WAKA,YACA,gBAKA,UACA,kBAKA,cACA,qBAKA,kBAKA,kBACA,YAKA,qBACA,oBAKA,iBAKA,cAKA,SAKA,eAKA,YAKA,QAKA,cAKA,aAKA,oBACA,gBAKA,eAKA,mBACA,sBACAC,iBAKAC,YACA,QAKA,gBAKA,kBAKA,YACA,QAKA,WAKA,aAKA,aAKA,SACA,eAKA,KAKA,aAKA,SAKA,yBAKA,gBACA,gBAKA,UAKA,aAKA,gBACA,kBACA,aAKA,aAKA,eAKA,OAKA,gBAKA,WACA,WACA,KAKAC,oBAKAC,gBACA,8BAKA,eACA,SAKA,OAKA,qBAKA,iBAKA,WACA,qBAKA,qBACA,aAKAC,sBAKAC,kBACA,QAKA,kBAKA,oBACA,YAKA,SAKA,eAKA,WAKA,UACA,aAKA,gBAKA,SAKA,QAKA,OACAC,SAKAC,cAKA,mBAKA,eAKA,OAKAC,eAKAC,eACA,mBAKA,WACA,OAKA,QAKA,mBAKA,aAKA,eACA,cACA,UACA,oBAKA,oBACA,sBACA,QACA,WAKA,UACA,cAKA,sBAKA,iBACA,kBACA,aAKA,KAKA,eAKA,WACA,YAKA,YAKA,aAKA,eACA,gBAKAC,aAKA,QAKA,WAKAC,iBAKAC,aACA,eAKA,eACA,gBACA,UAKA,aAKA,aAKA,cAKA,SAKA,UACAC,eAKAC,iBACA,aAKA,gBACA,YAKA,eAKA,WACAC,aAKA,uBAKA,eACA,aAKAC,aAKA,YAKA,cACA,SAKA,UAKA,QAKA,OACA,OAKA,cAKA,oBAKA,mBAKA,mBACA,mBACA,uBACA,QACAC,cAKAC,UACA,SAKA,KAKA,WAKA,WACA,0BAKA,WAKA,QAKA,gBAKA,QACA,qBAKA,WAKA,2BAKA,aAKA,QAKA,SACA,cACA,oBAKA,iBACA,gBAKA,aACA,iBAKA,iBACA,eAKA,YAKA,OAKA,UAKA,gBACA,YAKA,OAKA,mBAKA,YAKA,oBACA,eAKA,mBAKA,aAKA,SACA,cAKA,mBAKA,YAKA,iBAKA,YACA,cAKA,UAKA,aAKA,iBACAC,gBAKA,mCAKA,0BAKA,gBACA,yBAKAC,iBAKAC,aACA,eAKA,MACA,cAKA,UACA,gBAKA,UACA,kBAKA,WAKA,UACAC,cAKA,iBAKAC,YAKA,UAKA,kBAKA,eAKA,eACA,QAKA,gBAKA,gBACAC,WAKAC,aAKAC,SACA,gBAKA,WAKAC,cAKAC,UACA,oBAKA,UAKA,YAKA,aAKA,mBAKA,QACA,eACA,UACA,cACA,OAKA,aAKA,gBAKA,wBAKA,YAKA,iBAKA,cAKA,SAKA,aAKA,gBAKA,SAKA,KAKA,aAKA,gBAKA,aACA,MAKA,eAKA,sBAKA,aAKA,YACA,yBAKA,SAKA,cAKA,gBACA,YACA,oBACA,aAKA,YAKA,eAKA,oBACA,WAKA,cACA,oBAKA,WAKA,YAKA,WACA,aAKA,SAKA,cAKA,kBAKA,gBACA,aAKA,eAKA,gBACA,yBAKA,cAKA,qBAKA,SACA,UAKA,QAKA,WACA,gBAKA,gBACA,WAKA,cAKA,aAKA,cAKAC,kBAKAC,cACA,sBAKA,SAKA,YAKA,iBACA,UAKA,iBAKAC,iBAKA,uBAKA,cAKA,eAKA,YAKA,oBACA,sBAKA,YACA,sBAKA,aACA,mBAKA,cACA,kBACA,cAKA,mBACA,UAKA,cACA,gBAKA,YACAC,aAKA,UAKA,aAKA,SAKA,iBAKAC,oBAKAC,mBACA,aAKA,SACA,aAKA,WAKA,SAKA,WAKA,cAKA,sBACAC,gBAKAC,YACA,eAKA,UACAC,cAKAC,cACAC,gBAKA,QAKA,KAKA,eAKA,eACA,iBAKA,gBAKA,WACA,QACA,eAKA,UACA,YAKA,cAKA,SAKA,cAKA,WACA,uBAKA,UAKA,UAKA,gBAKAC,eACA,QAKA,kBACA,kBACA,iBAKA,eACA,UAKA,YACA,iBAKA,gBAKA,eAKA,gBACA,iBACA,aAKA,eAKA,eACA,gBAKA,gBACA,oBAKA,kBACA,mBAKA,WACA,OAKA,gBAKA,eAKA,OAKA,mBAKA,UAKA,eAKA,gBACA,QACA,YAKA,QAKA,sBAKAC,gBAKAC,YACA,eAKA,qBAKA,qBAKA,OAKA,SAKA,gBAKA,YACA,oBAKA,mBAKA,eACA,oBAKA,gBAKA,OACA,aACA,cAKA,cAKA,cACA,WAKA,YAKAC,mBAKAC,gBACA,wBAKA,mBACA,kBAKAC,cAKA,kBAKA,UAKA,kBAKA,eACA,SAKA,QAKA,cAKA,gBAKA,SAKA,gBACA,WACA,WAKA,iBAKA,QAKA,aAKA,iBACA,YAKA,YACA,cAKA,sBAKA,aACA,qBAKA,kBACA,UAKA,eACAC,cAKAC,UACA,gBAKA,gBAKA,gBACA,WAKAC,gBAKAC,eAKA,eAKA,uBAKAC;AA9gPJ;AAAA;AAKA,IAAIpR,UAAS;AACb,IAAI,MAAM;AAAA,MACR,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,GAAG,MAAM,uLAAuL;AAAA,IACpN;AACA,IAAI,MAAM;AAAA,MACR,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,GAAG,MAAM,gLAAgL;AAAA,IAC7M;AACA,IAAI,MAAM;AAAA,MACR,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,GAAG,MAAM,uUAAuU;AAAA,IACpW;AACA,IAAI,MAAM;AAAA,MACR,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,GAAG,MAAM,uUAAuU;AAAA,IACpW;AACA,IAAI,MAAM;AAAA,MACR,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,GAAG,MAAM,mOAAmO;AAAA,IAChQ;AACA,IAAI,MAAM;AAAA,MACR,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,GAAG,MAAM,2PAA2P;AAAA,IACxR;AACA,IAAI,MAAM;AAAA,MACR,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,GAAG,MAAM,gUAAgU;AAAA,IAC7V;AACA,IAAI,MAAM;AAAA,MACR,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,GAAG,MAAM,2KAA2K;AAAA,IACxM;AACA,IAAI,MAAM;AAAA,MACR,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,GAAG,MAAM,kaAAka;AAAA,IAC/b;AACA,IAAI,MAAM;AAAA,MACR,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,GAAG,MAAM,+TAA+T;AAAA,IAC5V;AACA,IAAI,eAAe;AAAA,MACjB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,QAAQ,OAAO,UAAU,KAAK,GAAG,MAAM,0cAA0c;AAAA,IACrgB;AACA,IAAI,WAAW;AACf,IAAI,QAAQ;AACZ,IAAI,QAAQ;AAAA,MACV,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,MAAM,GAAG,QAAQ,miBAAmiB;AAAA,IACxkB;AACA,IAAI,gBAAgB;AAAA,MAClB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,GAAG,QAAQ,6eAA6e;AAAA,IAC5gB;AACA,IAAI,WAAW;AAAA,MACb,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,QAAQ,UAAU,GAAG,QAAQ,knBAAknB;AAAA,IACnqB;AACA,IAAI,YAAY;AAChB,IAAIC,iBAAgB;AAAA,MAClB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,OAAO,cAAc,GAAG,QAAQ,iNAAiN;AAAA,IACrQ;AACA,IAAIC,iBAAgBD;AACpB,IAAI,iBAAiB;AAAA,MACnB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,GAAG,QAAQ,2YAA2Y;AAAA,IAC1a;AACA,IAAIE,mBAAkB;AAAA,MACpB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,GAAG,QAAQ,2ZAA2Z;AAAA,IAC1b;AACA,IAAIC,cAAa;AAAA,MACf,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,QAAQ,MAAM,GAAG,QAAQ,mbAAmb;AAAA,IAChe;AACA,IAAIC,UAASD;AACb,IAAI,eAAe;AAAA,MACjB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,GAAG,QAAQ,0yBAA0yB;AAAA,IACz0B;AACA,IAAI,QAAQ;AAAA,MACV,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,MAAM,GAAG,QAAQ,urBAAurB;AAAA,IAC5tB;AACA,IAAI,kBAAkB;AAAA,MACpB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,GAAG,QAAQ,0cAA0c;AAAA,IACze;AACA,IAAIE,WAAU;AAAA,MACZ,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,gBAAgB,GAAG,QAAQ,6XAA6X;AAAA,IAC5a;AACA,IAAIC,mBAAkBD;AACtB,IAAI,WAAW;AAAA,MACb,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,IAAI,GAAG,QAAQ,sZAAsZ;AAAA,IACzb;AACA,IAAI,UAAU;AAAA,MACZ,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,MAAM,GAAG,QAAQ,68CAA68C;AAAA,IACl/C;AACA,IAAI,SAAS;AACb,IAAI,mBAAmB;AAAA,MACrB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,KAAK,GAAG,QAAQ,+dAA+d;AAAA,IACngB;AACA,IAAI,YAAY;AAAA,MACd,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,GAAG,QAAQ,8YAA8Y;AAAA,IAC7a;AACA,IAAI,iBAAiB;AAAA,MACnB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,GAAG,QAAQ,qSAAqS;AAAA,IACpU;AACA,IAAI,qBAAqB;AAAA,MACvB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,GAAG,QAAQ,wtCAAwtC;AAAA,IACvvC;AACA,IAAI,aAAa;AAAA,MACf,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,OAAO,OAAO,KAAK,GAAG,MAAM,uWAAuW;AAAA,IACvZ;AACA,IAAI,eAAe;AAAA,MACjB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,GAAG,QAAQ,+tBAA+tB;AAAA,IAC9vB;AACA,IAAI,yBAAyB;AAAA,MAC3B,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,GAAG,QAAQ,m6BAAm6B;AAAA,IACl8B;AACA,IAAI,kBAAkB;AAAA,MACpB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,eAAe,GAAG,QAAQ,uZAAuZ;AAAA,IACrc;AACA,IAAI,iBAAiB;AACrB,IAAI,gBAAgB;AAAA,MAClB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,GAAG,QAAQ,mxBAAmxB;AAAA,IAClzB;AACA,IAAI,WAAW;AAAA,MACb,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,GAAG,QAAQ,yzBAAyzB;AAAA,IACx1B;AACA,IAAI,cAAc;AAAA,MAChB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,sBAAsB,GAAG,QAAQ,2NAA2N;AAAA,IAChR;AACA,IAAI,sBAAsB;AAC1B,IAAI,iBAAiB;AAAA,MACnB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,GAAG,QAAQ,0iBAA0iB;AAAA,IACzkB;AACA,IAAI,uBAAuB;AAAA,MACzB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,GAAG,QAAQ,giBAAgiB;AAAA,IAC/jB;AACA,IAAIE,mBAAkB;AAAA,MACpB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,GAAG,QAAQ,krBAAkrB;AAAA,IACjtB;AACA,IAAI,eAAe;AAAA,MACjB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,MAAM,GAAG,QAAQ,6oBAA6oB;AAAA,IAClrB;AACA,IAAI,UAAU;AAAA,MACZ,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,MAAM,MAAM,OAAO,UAAU,GAAG,QAAQ,qGAAqG;AAAA,IACjK;AACA,IAAI,aAAa;AACjB,IAAI,cAAc;AAAA,MAChB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,mBAAmB,GAAG,QAAQ,+pBAA+pB;AAAA,IACjtB;AACA,IAAI,mBAAmB;AACvB,IAAI,oBAAoB;AAAA,MACtB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,GAAG,QAAQ,8jBAA8jB;AAAA,IAC7lB;AACA,IAAI,cAAc;AAAA,MAChB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,cAAc,eAAe,GAAG,QAAQ,gXAAgX;AAAA,IAC5a;AACA,IAAI,cAAc;AAClB,IAAI,iBAAiB;AACrB,IAAI,aAAa;AAAA,MACf,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,MAAM,aAAa,GAAG,QAAQ,gsBAAgsB;AAAA,IAClvB;AACA,IAAI,eAAe;AACnB,IAAI,eAAe;AAAA,MACjB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,KAAK,GAAG,QAAQ,4/BAA4/B;AAAA,IAChiC;AACA,IAAI,QAAQ;AACZ,IAAI,YAAY;AAAA,MACd,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,GAAG,QAAQ,mWAAmW;AAAA,IAClY;AACA,IAAI,kBAAkB;AAAA,MACpB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,MAAM,eAAe,GAAG,QAAQ,ovBAAovB;AAAA,IACxyB;AACA,IAAI,iBAAiB;AACrB,IAAI,QAAQ;AAAA,MACV,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,QAAQ,YAAY,GAAG,QAAQ,0dAA0d;AAAA,IAC7gB;AACA,IAAI,eAAe;AACnB,IAAI,eAAe;AAAA,MACjB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,UAAU,GAAG,QAAQ,mSAAmS;AAAA,IAC5U;AACA,IAAI,YAAY;AAChB,IAAI,UAAU;AAAA,MACZ,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,MAAM,GAAG,QAAQ,gnBAAgnB;AAAA,IACrpB;AACA,IAAI,WAAW;AAAA,MACb,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,MAAM,GAAG,QAAQ,8WAA8W;AAAA,IACnZ;AACA,IAAIC,eAAc;AAAA,MAChB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,GAAG,QAAQ,gdAAgd;AAAA,IAC/e;AACA,IAAI,WAAW;AAAA,MACb,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,GAAG,QAAQ,wNAAwN;AAAA,IACvP;AACA,IAAI,SAAS;AAAA,MACX,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,MAAM,GAAG,QAAQ,kuBAAkuB;AAAA,IACvwB;AACA,IAAI,WAAW;AAAA,MACb,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,MAAM,GAAG,QAAQ,8RAA8R;AAAA,IACnU;AACA,IAAI,wBAAwB;AAAA,MAC1B,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,qBAAqB,GAAG,QAAQ,myBAAmyB;AAAA,IACv1B;AACA,IAAI,sBAAsB;AAC1B,IAAI,mBAAmB;AAAA,MACrB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,GAAG,QAAQ,8zBAA8zB;AAAA,IAC71B;AACA,IAAIC,cAAa;AAAA,MACf,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,QAAQ,MAAM,KAAK,GAAG,QAAQ,8QAA8Q;AAAA,IAChU;AACA,IAAI,SAAS;AAAA,MACX,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,GAAG,QAAQ,sjBAAsjB;AAAA,IACrlB;AACA,IAAIC,qBAAoB;AAAA,MACtB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,mBAAmB,GAAG,QAAQ,6RAA6R;AAAA,IAC/U;AACA,IAAIC,qBAAoBD;AACxB,IAAI,SAAS;AAAA,MACX,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,GAAG,QAAQ,iUAAiU;AAAA,IAChW;AACA,IAAI,MAAM;AAAA,MACR,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,EAAE,GAAG,MAAM,uQAAuQ;AAAA,IACtS;AACA,IAAI,iBAAiB;AAAA,MACnB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,GAAG,QAAQ,yjBAAyjB;AAAA,IACxlB;AACA,IAAI,kBAAkB;AAAA,MACpB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,GAAG,QAAQ,ojBAAojB;AAAA,IACnlB;AACA,IAAI,4BAA4B;AAAA,MAC9B,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,GAAG,QAAQ,kjBAAkjB;AAAA,IACjlB;AACA,IAAI,iBAAiB;AAAA,MACnB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,OAAO,gBAAgB,kBAAkB,GAAG,QAAQ,kdAAkd;AAAA,IAC1hB;AACA,IAAI,gBAAgB;AACpB,IAAI,mBAAmB;AACvB,IAAI,OAAO;AAAA,MACT,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,KAAK,GAAG,MAAM,ubAAub;AAAA,IACzd;AACA,IAAI,oBAAoB;AAAA,MACtB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,gBAAgB,KAAK,GAAG,QAAQ,kbAAkb;AAAA,IACte;AACA,IAAI,gBAAgB;AACpB,IAAI,QAAQ;AACZ,IAAIE,WAAU;AAAA,MACZ,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,QAAQ,IAAI,GAAG,QAAQ,4aAA4a;AAAA,IACvd;AACA,IAAI,mBAAmB;AAAA,MACrB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,oBAAoB,GAAG,QAAQ,4ZAA4Z;AAAA,IAC/c;AACA,IAAI,sBAAsB;AAC1B,IAAI,cAAc;AAAA,MAChB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,GAAG,QAAQ,kYAAkY;AAAA,IACja;AACA,IAAI,cAAc;AAAA,MAChB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,MAAM,GAAG,QAAQ,osBAAosB;AAAA,IACzuB;AACA,IAAI,cAAc;AAAA,MAChB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,GAAG,QAAQ,miBAAmiB;AAAA,IAClkB;AACA,IAAI,gBAAgB;AAAA,MAClB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,QAAQ,GAAG,QAAQ,sVAAsV;AAAA,IAC7X;AACA,IAAI,WAAW;AACf,IAAI,eAAe;AAAA,MACjB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,GAAG,QAAQ,sKAAsK;AAAA,IACrM;AACA,IAAI,eAAe;AAAA,MACjB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,GAAG,QAAQ,2WAA2W;AAAA,IAC1Y;AACA,IAAIC,UAAS;AAAA,MACX,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,QAAQ,KAAK,GAAG,QAAQ,mXAAmX;AAAA,IAC/Z;AACA,IAAI,aAAa;AAAA,MACf,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,GAAG,QAAQ,0kBAA0kB;AAAA,IACzmB;AACA,IAAI,aAAa;AAAA,MACf,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,GAAG,QAAQ,+hBAA+hB;AAAA,IAC9jB;AACA,IAAI,uBAAuB;AAAA,MACzB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,QAAQ,cAAc,GAAG,QAAQ,8mBAA8mB;AAAA,IACnqB;AACA,IAAI,iBAAiB;AACrB,IAAI,QAAQ;AAAA,MACV,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,UAAU,GAAG,QAAQ,qrBAAqrB;AAAA,IAC9tB;AACA,IAAI,aAAa;AACjB,IAAI,mBAAmB;AAAA,MACrB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,GAAG,QAAQ,gmBAAgmB;AAAA,IAC/nB;AACA,IAAI,WAAW;AAAA,MACb,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,QAAQ,kBAAkB,cAAc,GAAG,QAAQ,8MAA8M;AAAA,IACrR;AACA,IAAI,kBAAkB;AACtB,IAAI,gBAAgB;AACpB,IAAI,qBAAqB;AAAA,MACvB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,GAAG,QAAQ,mmBAAmmB;AAAA,IACloB;AACA,IAAI,gBAAgB;AAAA,MAClB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,OAAO,OAAO,KAAK,GAAG,MAAM,4NAA4N;AAAA,IAC5Q;AACA,IAAI,WAAW;AAAA,MACb,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,IAAI,GAAG,QAAQ,6cAA6c;AAAA,IAChf;AACA,IAAI,cAAc;AAAA,MAChB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,GAAG,QAAQ,0PAA0P;AAAA,IACzR;AACA,IAAI,eAAe;AAAA,MACjB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,GAAG,QAAQ,qXAAqX;AAAA,IACpZ;AACA,IAAI,0BAA0B;AAAA,MAC5B,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,GAAG,QAAQ,4aAA4a;AAAA,IAC3c;AACA,IAAI,WAAW;AAAA,MACb,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,GAAG,QAAQ,oPAAoP;AAAA,IACnR;AACA,IAAIC,aAAY;AAAA,MACd,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,aAAa,GAAG,QAAQ,qMAAqM;AAAA,IACjP;AACA,IAAIC,gBAAeD;AACnB,IAAI,WAAW;AAAA,MACb,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,MAAM,GAAG,QAAQ,knBAAknB;AAAA,IACvpB;AACA,IAAIE,eAAc;AAAA,MAChB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,OAAO,GAAG,QAAQ,gmBAAgmB;AAAA,IACtoB;AACA,IAAIC,WAAUD;AACd,IAAI,aAAa;AAAA,MACf,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,GAAG,QAAQ,48DAA48D;AAAA,IAC3+D;AACA,IAAI,YAAY;AAAA,MACd,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,QAAQ,YAAY,iBAAiB,GAAG,QAAQ,kvBAAkvB;AAAA,IACtzB;AACA,IAAI,SAAS;AACb,IAAI,aAAa;AACjB,IAAI,kBAAkB;AACtB,IAAI,iBAAiB;AAAA,MACnB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,0BAA0B,GAAG,QAAQ,0zBAA0zB;AAAA,IACn3B;AACA,IAAI,0BAA0B;AAC9B,IAAI,kBAAkB;AAAA,MACpB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,GAAG,QAAQ,28BAA28B;AAAA,IAC1+B;AACA,IAAI,oBAAoB;AAAA,MACtB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,GAAG,QAAQ,gqCAAgqC;AAAA,IAC/rC;AACA,IAAIE,kBAAiB;AAAA,MACnB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,cAAc,GAAG,QAAQ,61BAA61B;AAAA,IAC14B;AACA,IAAIC,iBAAgBD;AACpB,IAAI,qBAAqB;AAAA,MACvB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,YAAY,GAAG,QAAQ,0bAA0b;AAAA,IACre;AACA,IAAI,eAAe;AACnB,IAAIE,iBAAgB;AAAA,MAClB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,IAAI,GAAG,QAAQ,2qBAA2qB;AAAA,IAC9sB;AACA,IAAI,gBAAgB;AAAA,MAClB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,GAAG,QAAQ,svBAAsvB;AAAA,IACrxB;AACA,IAAI,oBAAoB;AAAA,MACtB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,GAAG,QAAQ,ghBAAghB;AAAA,IAC/iB;AACA,IAAI,yBAAyB;AAAA,MAC3B,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,QAAQ,GAAG,QAAQ,uZAAuZ;AAAA,IAC9b;AACA,IAAI,UAAU;AACd,IAAI,sBAAsB;AAAA,MACxB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,GAAG,QAAQ,y1BAAy1B;AAAA,IACx3B;AACA,IAAIC,gBAAe;AAAA,MACjB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,GAAG,QAAQ,6RAA6R;AAAA,IAC5T;AACA,IAAI,eAAe;AAAA,MACjB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,YAAY,GAAG,QAAQ,sPAAsP;AAAA,IACjS;AACA,IAAI,eAAe;AACnB,IAAI,sBAAsB;AAAA,MACxB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,mBAAmB,GAAG,QAAQ,+dAA+d;AAAA,IACjhB;AACA,IAAI,oBAAoB;AACxB,IAAIC,gBAAe;AAAA,MACjB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,QAAQ,QAAQ,QAAQ,OAAQ,QAAQ,QAAQ,QAAQ,OAAO,KAAK,GAAG,QAAQ,mHAAmH;AAAA,IACtN;AACA,IAAI,WAAW;AAAA,MACb,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,GAAG,QAAQ,i0CAAi0C;AAAA,IACh2C;AACA,IAAI,cAAc;AAAA,MAChB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,GAAG,QAAQ,2hCAA2hC;AAAA,IAC1jC;AACA,IAAI,kBAAkB;AAAA,MACpB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,WAAW,QAAQ,GAAG,QAAQ,4SAA4S;AAAA,IAC9V;AACA,IAAI,YAAY;AAChB,IAAI,WAAW;AACf,IAAI,cAAc;AAAA,MAChB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,GAAG,QAAQ,yVAAyV;AAAA,IACxX;AACA,IAAI,eAAe;AAAA,MACjB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,GAAG,QAAQ,mhBAAmhB;AAAA,IACljB;AACA,IAAI,eAAe;AAAA,MACjB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,IAAI,GAAG,QAAQ,6SAA6S;AAAA,IAChV;AACA,IAAI,4BAA4B;AAAA,MAC9B,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,GAAG,QAAQ,s5BAAs5B;AAAA,IACr7B;AACA,IAAI,YAAY;AAAA,MACd,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,GAAG,QAAQ,onBAAonB;AAAA,IACnpB;AACA,IAAIC,iBAAgB;AAAA,MAClB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,OAAO,cAAc,GAAG,QAAQ,yOAAyO;AAAA,IAC7R;AACA,IAAIC,iBAAgBD;AACpB,IAAI,WAAW;AAAA,MACb,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,GAAG,QAAQ,uwBAAuwB;AAAA,IACtyB;AACA,IAAI,SAAS;AAAA,MACX,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,MAAM,GAAG,QAAQ,4lBAA4lB;AAAA,IACjoB;AACA,IAAI,mBAAmB;AAAA,MACrB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,GAAG,QAAQ,umCAAumC;AAAA,IACtoC;AACA,IAAI,YAAY;AAAA,MACd,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,GAAG,QAAQ,66CAA66C;AAAA,IAC58C;AACA,IAAI,oBAAoB;AAAA,MACtB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,QAAQ,GAAG,QAAQ,wgBAAwgB;AAAA,IAC/iB;AACA,IAAI,WAAW;AACf,IAAI,eAAe;AAAA,MACjB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,GAAG,QAAQ,ghBAAghB;AAAA,IAC/iB;AACA,IAAI,UAAU;AAAA,MACZ,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,aAAa,aAAa,wBAAwB,GAAG,QAAQ,gXAAgX;AAAA,IACjc;AACA,IAAI,cAAc;AAClB,IAAI,aAAa;AACjB,IAAI,yBAAyB;AAC7B,IAAI,qBAAqB;AAAA,MACvB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,GAAG,QAAQ,+jBAA+jB;AAAA,IAC9lB;AACA,IAAI,YAAY;AAAA,MACd,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,MAAM,GAAG,QAAQ,qjBAAqjB;AAAA,IAC1lB;AACA,IAAI,aAAa;AAAA,MACf,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,IAAI,GAAG,QAAQ,iYAAiY;AAAA,IACpa;AACA,IAAI,WAAW;AAAA,MACb,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,QAAQ,YAAY,gBAAgB,GAAG,QAAQ,+dAA+d;AAAA,IACliB;AACA,IAAI,YAAY;AAChB,IAAI,kBAAkB;AACtB,IAAI,eAAe;AAAA,MACjB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,GAAG,QAAQ,o/BAAo/B;AAAA,IACnhC;AACA,IAAI,UAAU;AAAA,MACZ,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,GAAG,QAAQ,q8BAAq8B;AAAA,IACp+B;AACA,IAAI,YAAY;AAAA,MACd,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,GAAG,QAAQ,qfAAqf;AAAA,IACphB;AACA,IAAI,mBAAmB;AAAA,MACrB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,iBAAiB,GAAG,QAAQ,ulBAAulB;AAAA,IACvoB;AACA,IAAI,mBAAmB;AACvB,IAAI,WAAW;AAAA,MACb,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,GAAG,QAAQ,6YAA6Y;AAAA,IAC5a;AACA,IAAI,iBAAiB;AAAA,MACnB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,MAAM,GAAG,QAAQ,qeAAqe;AAAA,IAC1gB;AACA,IAAI,iBAAiB;AAAA,MACnB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,GAAG,QAAQ,qxBAAqxB;AAAA,IACpzB;AACA,IAAI,SAAS;AAAA,MACX,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,GAAG,QAAQ,ujBAAujB;AAAA,IACtlB;AACA,IAAI,aAAa;AAAA,MACf,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,GAAG,QAAQ,ghBAAghB;AAAA,IAC/iB;AACA,IAAI,eAAe;AAAA,MACjB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,WAAW,GAAG,QAAQ,wWAAwW;AAAA,IAClZ;AACA,IAAI,aAAa;AACjB,IAAI,4BAA4B;AAAA,MAC9B,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,GAAG,QAAQ,4gBAA4gB;AAAA,IAC3iB;AACA,IAAI,eAAe;AAAA,MACjB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,GAAG,QAAQ,wfAAwf;AAAA,IACvhB;AACA,IAAI,YAAY;AAAA,MACd,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,GAAG,QAAQ,yVAAyV;AAAA,IACxX;AACA,IAAIE,eAAc;AAAA,MAChB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,QAAQ,KAAK,GAAG,QAAQ,2UAA2U;AAAA,IACvX;AACA,IAAIC,SAAQD;AACZ,IAAI,gBAAgB;AAAA,MAClB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,GAAG,QAAQ,ukBAAukB;AAAA,IACtmB;AACA,IAAI,YAAY;AAAA,MACd,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,GAAG,QAAQ,0ZAA0Z;AAAA,IACzb;AACA,IAAI,aAAa;AAAA,MACf,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,YAAY,GAAG,QAAQ,sIAAsI;AAAA,IACjL;AACA,IAAI,cAAc;AAClB,IAAI,eAAe;AAAA,MACjB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,GAAG,QAAQ,4nBAA4nB;AAAA,IAC3pB;AACA,IAAI,YAAY;AAAA,MACd,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,OAAO,OAAO,YAAY,GAAG,MAAM,qNAAqN;AAAA,IAC5Q;AACA,IAAI,eAAe;AACnB,IAAIE,gBAAe;AAAA,MACjB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,cAAc,GAAG,QAAQ,wiBAAwiB;AAAA,IACrlB;AACA,IAAIC,iBAAgBD;AACpB,IAAI,YAAY;AAAA,MACd,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,GAAG,QAAQ,+PAA+P;AAAA,IAC9R;AACA,IAAI,UAAU;AAAA,MACZ,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,yBAAyB,GAAG,QAAQ,2/BAA2/B;AAAA,IACnjC;AACA,IAAI,yBAAyB;AAC7B,IAAI,kBAAkB;AAAA,MACpB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,GAAG,QAAQ,yXAAyX;AAAA,IACxZ;AACA,IAAI,mBAAmB;AAAA,MACrB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,gBAAgB,GAAG,QAAQ,miBAAmiB;AAAA,IACllB;AACA,IAAI,iBAAiB;AACrB,IAAI,eAAe;AAAA,MACjB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,QAAQ,cAAc,GAAG,QAAQ,iZAAiZ;AAAA,IACtc;AACA,IAAI,gBAAgB;AACpB,IAAI,QAAQ;AAAA,MACV,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,MAAM,GAAG,QAAQ,m7BAAm7B;AAAA,IACx9B;AACA,IAAI,QAAQ;AAAA,MACV,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,MAAM,GAAG,QAAQ,uTAAuT;AAAA,IAC5V;AACA,IAAI,SAAS;AACb,IAAI,oBAAoB;AAAA,MACtB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,QAAQ,QAAQ,GAAG,QAAQ,4OAA4O;AAAA,IAC3R;AACA,IAAI,WAAW;AACf,IAAI,cAAc;AAAA,MAChB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,GAAG,QAAQ,smBAAsmB;AAAA,IACroB;AACA,IAAI,iBAAiB;AAAA,MACnB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,OAAO,SAAS,WAAW,GAAG,QAAQ,sjBAAsjB;AAAA,IAChnB;AACA,IAAI,UAAU;AACd,IAAI,aAAa;AACjB,IAAI,eAAe;AAAA,MACjB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,GAAG,QAAQ,4dAA4d;AAAA,IAC3f;AACA,IAAI,QAAQ;AAAA,MACV,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,QAAQ,QAAQ,GAAG,QAAQ,kQAAkQ;AAAA,IACjT;AACA,IAAI,WAAW;AACf,IAAI,iBAAiB;AAAA,MACnB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,GAAG,QAAQ,2WAA2W;AAAA,IAC1Y;AACA,IAAI,UAAU;AAAA,MACZ,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,OAAO,YAAY,GAAG,QAAQ,gWAAgW;AAAA,IAClZ;AACA,IAAI,cAAc;AAClB,IAAI,iBAAiB;AAAA,MACnB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,GAAG,QAAQ,qoCAAqoC;AAAA,IACpqC;AACA,IAAI,cAAc;AAAA,MAChB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,GAAG,QAAQ,4rCAA4rC;AAAA,IAC3tC;AACA,IAAI,gBAAgB;AAAA,MAClB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,GAAG,QAAQ,sLAAsL;AAAA,IACrN;AACA,IAAIE,gBAAe;AAAA,MACjB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,QAAQ,QAAQ,MAAM,GAAG,QAAQ,6TAA6T;AAAA,IAClX;AACA,IAAIC,UAASD;AACb,IAAI,oBAAoB;AAAA,MACtB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,GAAG,QAAQ,0fAA0f;AAAA,IACzhB;AACA,IAAI,MAAM;AAAA,MACR,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,GAAG,GAAG,MAAM,oGAAoG;AAAA,IACpI;AACA,IAAI,YAAY;AAAA,MACd,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,MAAM,GAAG,QAAQ,6aAA6a;AAAA,IACld;AACA,IAAI,WAAW;AAAA,MACb,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,MAAM,GAAG,QAAQ,iRAAiR;AAAA,IACtT;AACA,IAAI,cAAc;AAAA,MAChB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,6BAA6B,GAAG,QAAQ,89BAA89B;AAAA,IAC1hC;AACA,IAAI,8BAA8B;AAClC,IAAI,oBAAoB;AAAA,MACtB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,GAAG,QAAQ,qmBAAqmB;AAAA,IACpoB;AACA,IAAI,QAAQ;AAAA,MACV,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,MAAM,GAAG,QAAQ,oTAAoT;AAAA,IACzV;AACA,IAAI,UAAU;AAAA,MACZ,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,MAAM,GAAG,QAAQ,oWAAoW;AAAA,IACzY;AACA,IAAI,iBAAiB;AAAA,MACnB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,MAAM,eAAe,GAAG,QAAQ,qbAAqb;AAAA,IACze;AACA,IAAI,gBAAgB;AACpB,IAAI,oBAAoB;AAAA,MACtB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,MAAM,GAAG,QAAQ,0dAA0d;AAAA,IAC/f;AACA,IAAI,SAAS;AACb,IAAI,SAAS;AAAA,MACX,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,MAAM,GAAG,QAAQ,qdAAqd;AAAA,IAC1f;AACA,IAAI,SAAS;AAAA,MACX,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,GAAG,QAAQ,mhBAAmhB;AAAA,IACljB;AACA,IAAI,MAAM;AAAA,MACR,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,GAAG,GAAG,MAAM,wVAAwV;AAAA,IACxX;AACA,IAAI,SAAS;AAAA,MACX,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,GAAG,QAAQ,45CAA45C;AAAA,IAC37C;AACA,IAAI,iBAAiB;AAAA,MACnB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,QAAQ,GAAG,QAAQ,wyBAAwyB;AAAA,IAC/0B;AACA,IAAI,WAAW;AACf,IAAI,mBAAmB;AAAA,MACrB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,GAAG,QAAQ,sfAAsf;AAAA,IACrhB;AACA,IAAI,eAAe;AAAA,MACjB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,IAAI,GAAG,QAAQ,qoBAAqoB;AAAA,IACxqB;AACA,IAAI,gBAAgB;AAAA,MAClB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,GAAG,QAAQ,4aAA4a;AAAA,IAC3c;AACA,IAAI,eAAe;AAAA,MACjB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,QAAQ,aAAa,GAAG,QAAQ,0XAA0X;AAAA,IAC9a;AACA,IAAI,eAAe;AACnB,IAAI,WAAW;AAAA,MACb,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,IAAI,GAAG,QAAQ,qPAAqP;AAAA,IACxR;AACA,IAAI,oBAAoB;AAAA,MACtB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,kBAAkB,GAAG,QAAQ,sZAAsZ;AAAA,IACvc;AACA,IAAI,mBAAmB;AACvB,IAAIE,0BAAyB;AAAA,MAC3B,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,QAAQ,oBAAoB,GAAG,QAAQ,45BAA45B;AAAA,IACv9B;AACA,IAAIC,sBAAqBD;AACzB,IAAI,kBAAkB;AAAA,MACpB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,GAAG,QAAQ,8jBAA8jB;AAAA,IAC7lB;AACA,IAAI,UAAU;AAAA,MACZ,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,MAAM,GAAG,QAAQ,ikCAAikC;AAAA,IACtmC;AACA,IAAI,aAAa;AAAA,MACf,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,GAAG,QAAQ,ueAAue;AAAA,IACtgB;AACA,IAAI,gBAAgB;AAAA,MAClB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,GAAG,QAAQ,2uBAA2uB;AAAA,IAC1wB;AACA,IAAI,iBAAiB;AAAA,MACnB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,MAAM,GAAG,QAAQ,k3CAAk3C;AAAA,IACv5C;AACA,IAAI,mBAAmB;AAAA,MACrB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,kBAAkB,GAAG,QAAQ,6NAA6N;AAAA,IAC9Q;AACA,IAAI,mBAAmB;AACvB,IAAI,eAAe;AAAA,MACjB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,GAAG,QAAQ,48BAA48B;AAAA,IAC3+B;AACA,IAAI,mBAAmB;AAAA,MACrB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,GAAG,QAAQ,8XAA8X;AAAA,IAC7Z;AACA,IAAI,aAAa;AAAA,MACf,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,GAAG,QAAQ,0QAA0Q;AAAA,IACzS;AACA,IAAI,cAAc;AAAA,MAChB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,GAAG,QAAQ,2YAA2Y;AAAA,IAC1a;AACA,IAAIE,YAAW;AAAA,MACb,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,OAAO,YAAY,GAAG,QAAQ,mQAAmQ;AAAA,IACrT;AACA,IAAIC,eAAcD;AAClB,IAAI,cAAc;AAAA,MAChB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,GAAG,QAAQ,o9BAAo9B;AAAA,IACn/B;AACA,IAAI,YAAY;AAAA,MACd,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,MAAM,GAAG,QAAQ,siBAAsiB;AAAA,IAC3kB;AACA,IAAI,YAAY;AAAA,MACd,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,GAAG,QAAQ,olBAAolB;AAAA,IACnnB;AACA,IAAIE,mBAAkB;AAAA,MACpB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,QAAQ,YAAY,GAAG,QAAQ,w1BAAw1B;AAAA,IAC34B;AACA,IAAIC,eAAcD;AAClB,IAAI,WAAW;AAAA,MACb,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,UAAU,GAAG,QAAQ,uJAAuJ;AAAA,IAChM;AACA,IAAI,YAAY;AAChB,IAAIE,SAAQ;AAAA,MACV,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,MAAM,GAAG,QAAQ,8gBAA8gB;AAAA,IACnjB;AACA,IAAI,cAAc;AAAA,MAChB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,GAAG,QAAQ,qKAAqK;AAAA,IACpM;AACA,IAAI,eAAe;AAAA,MACjB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,QAAQ,QAAQ,WAAW,GAAG,QAAQ,6WAA6W;AAAA,IACva;AACA,IAAI,aAAa;AACjB,IAAI,gBAAgB;AAAA,MAClB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,OAAO,GAAG,QAAQ,+lBAA+lB;AAAA,IACroB;AACA,IAAI,UAAU;AACd,IAAI,cAAc;AAAA,MAChB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,GAAG,QAAQ,4kBAA4kB;AAAA,IAC3mB;AACA,IAAI,0BAA0B;AAAA,MAC5B,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,GAAG,QAAQ,+gBAA+gB;AAAA,IAC9iB;AACA,IAAI,UAAU;AAAA,MACZ,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,GAAG,QAAQ,qRAAqR;AAAA,IACpT;AACA,IAAIC,iBAAgB;AAAA,MAClB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,QAAQ,UAAU,GAAG,QAAQ,wgBAAwgB;AAAA,IACzjB;AACA,IAAIC,aAAYD;AAChB,IAAI,QAAQ;AAAA,MACV,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,QAAQ,MAAM,GAAG,QAAQ,0mBAA0mB;AAAA,IACvpB;AACA,IAAI,qBAAqB;AAAA,MACvB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,GAAG,QAAQ,+jBAA+jB;AAAA,IAC9lB;AACA,IAAI,UAAU;AAAA,MACZ,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,GAAG,QAAQ,6pBAA6pB;AAAA,IAC5rB;AACA,IAAI,yBAAyB;AAAA,MAC3B,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,GAAG,QAAQ,guBAAguB;AAAA,IAC/vB;AACA,IAAI,mBAAmB;AAAA,MACrB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,GAAG,QAAQ,qdAAqd;AAAA,IACpf;AACA,IAAIE,qBAAoB;AAAA,MACtB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,OAAO,cAAc,GAAG,QAAQ,qlBAAqlB;AAAA,IACzoB;AACA,IAAIC,iBAAgBD;AACpB,IAAI,YAAY;AAAA,MACd,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,MAAM,GAAG,QAAQ,irBAAirB;AAAA,IACttB;AACA,IAAI,WAAW;AAAA,MACb,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,KAAK,GAAG,MAAM,2LAA2L;AAAA,IAC7N;AACA,IAAI,cAAc;AAAA,MAChB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,GAAG,QAAQ,0KAA0K;AAAA,IACzM;AACA,IAAI,eAAe;AAAA,MACjB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,GAAG,QAAQ,inBAAinB;AAAA,IAChpB;AACA,IAAI,UAAU;AAAA,MACZ,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,GAAG,QAAQ,2GAA2G;AAAA,IAC1I;AACA,IAAI,WAAW;AAAA,MACb,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,GAAG,QAAQ,qeAAqe;AAAA,IACpgB;AACA,IAAIE,gBAAe;AAAA,MACjB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,OAAO,aAAa,GAAG,QAAQ,+NAA+N;AAAA,IAClR;AACA,IAAIC,gBAAeD;AACnB,IAAI,iBAAiB;AAAA,MACnB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,SAAS,GAAG,QAAQ,oLAAoL;AAAA,IAC5N;AACA,IAAI,YAAY;AAChB,IAAI,kBAAkB;AAAA,MACpB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,GAAG,QAAQ,8iBAA8iB;AAAA,IAC7kB;AACA,IAAI,gBAAgB;AAAA,MAClB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,GAAG,QAAQ,sTAAsT;AAAA,IACrV;AACA,IAAI,UAAU;AAAA,MACZ,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,GAAG,QAAQ,0tCAA0tC;AAAA,IACzvC;AACA,IAAI,eAAe;AAAA,MACjB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,MAAM,WAAW,GAAG,QAAQ,ucAAuc;AAAA,IACvf;AACA,IAAI,cAAc;AAClB,IAAI,cAAc;AAAA,MAChB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,aAAa,sBAAsB,GAAG,QAAQ,2iBAA2iB;AAAA,IAC7mB;AACA,IAAI,cAAc;AAClB,IAAI,uBAAuB;AAC3B,IAAI,MAAM;AAAA,MACR,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,GAAG,GAAG,MAAM,gLAAgL;AAAA,IAChN;AACA,IAAI,iBAAiB;AAAA,MACnB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,eAAe,GAAG,QAAQ,miBAAmiB;AAAA,IACjlB;AACA,IAAI,iBAAiB;AACrB,IAAI,YAAY;AAAA,MACd,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,IAAI,GAAG,QAAQ,2OAA2O;AAAA,IAC9Q;AACA,IAAI,SAAS;AAAA,MACX,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,IAAI,GAAG,QAAQ,sHAAsH;AAAA,IACzJ;AACA,IAAI,WAAW;AAAA,MACb,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,GAAG,QAAQ,8UAA8U;AAAA,IAC7W;AACA,IAAIE,kBAAiB;AAAA,MACnB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,WAAW,GAAG,QAAQ,sfAAsf;AAAA,IAChiB;AACA,IAAIC,cAAaD;AACjB,IAAI,oBAAoB;AAAA,MACtB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,GAAG,QAAQ,+XAA+X;AAAA,IAC9Z;AACA,IAAI,gBAAgB;AAAA,MAClB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,KAAK,GAAG,MAAM,mMAAmM;AAAA,IACrO;AACA,IAAI,WAAW;AAAA,MACb,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,GAAG,QAAQ,0gBAA0gB;AAAA,IACziB;AACA,IAAI,aAAa;AAAA,MACf,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,UAAU,GAAG,QAAQ,4TAA4T;AAAA,IACrW;AACA,IAAI,aAAa;AACjB,IAAI,eAAe;AAAA,MACjB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,GAAG,QAAQ,0vBAA0vB;AAAA,IACzxB;AACA,IAAI,eAAe;AAAA,MACjB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,GAAG,QAAQ,iSAAiS;AAAA,IAChU;AACA,IAAI,cAAc;AAAA,MAChB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,IAAI,GAAG,QAAQ,wKAAwK;AAAA,IAC3M;AACA,IAAI,gBAAgB;AAAA,MAClB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,MAAM,GAAG,QAAQ,6UAA6U;AAAA,IAClX;AACA,IAAI,YAAY;AAAA,MACd,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,MAAM,GAAG,QAAQ,i3BAAi3B;AAAA,IACt5B;AACA,IAAI,sBAAsB;AAAA,MACxB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,GAAG,QAAQ,mrBAAmrB;AAAA,IACltB;AACA,IAAI,UAAU;AAAA,MACZ,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,GAAG,QAAQ,mOAAmO;AAAA,IAClQ;AACA,IAAI,gBAAgB;AAAA,MAClB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,MAAM,GAAG,QAAQ,8dAA8d;AAAA,IACngB;AACA,IAAI,YAAY;AAAA,MACd,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,GAAG,QAAQ,6vBAA6vB;AAAA,IAC5xB;AACA,IAAI,qBAAqB;AAAA,MACvB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,GAAG,QAAQ,2wBAA2wB;AAAA,IAC1yB;AACA,IAAIE,gBAAe;AAAA,MACjB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,IAAI,GAAG,QAAQ,gmBAAgmB;AAAA,IACnoB;AACA,IAAI,4BAA4B;AAAA,MAC9B,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,GAAG,QAAQ,4mBAA4mB;AAAA,IAC3oB;AACA,IAAI,qBAAqB;AAAA,MACvB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,YAAY,GAAG,QAAQ,6LAA6L;AAAA,IACxO;AACA,IAAI,cAAc;AAClB,IAAI,2BAA2B;AAAA,MAC7B,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,GAAG,QAAQ,+eAA+e;AAAA,IAC9gB;AACA,IAAI,8BAA8B;AAAA,MAChC,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,GAAG,QAAQ,syBAAsyB;AAAA,IACr0B;AACA,IAAI,0BAA0B;AAAA,MAC5B,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,GAAG,QAAQ,inBAAinB;AAAA,IAChpB;AACA,IAAI,aAAa;AAAA,MACf,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,GAAG,QAAQ,mXAAmX;AAAA,IAClZ;AACA,IAAI,cAAc;AAAA,MAChB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,MAAM,GAAG,QAAQ,4oBAA4oB;AAAA,IACjrB;AACA,IAAI,mBAAmB;AAAA,MACrB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,MAAM,GAAG,QAAQ,4YAA4Y;AAAA,IACjb;AACA,IAAI,mBAAmB;AAAA,MACrB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,aAAa,GAAG,QAAQ,6YAA6Y;AAAA,IACzb;AACA,IAAI,cAAc;AAClB,IAAI,WAAW;AAAA,MACb,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,GAAG,QAAQ,gaAAga;AAAA,IAC/b;AACA,IAAI,2BAA2B;AAAA,MAC7B,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,GAAG,QAAQ,geAAge;AAAA,IAC/f;AACA,IAAI,eAAe;AAAA,MACjB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,MAAM,OAAO,UAAU,UAAU,aAAa,GAAG,QAAQ,4WAA4W;AAAA,IACzb;AACA,IAAI,QAAQ;AACZ,IAAI,WAAW;AACf,IAAI,WAAW;AACf,IAAI,eAAe;AACnB,IAAI,UAAU;AAAA,MACZ,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,MAAM,GAAG,QAAQ,gdAAgd;AAAA,IACrf;AACA,IAAI,aAAa;AAAA,MACf,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,WAAW,GAAG,QAAQ,smBAAsmB;AAAA,IAChpB;AACA,IAAI,cAAc;AAClB,IAAI,cAAc;AAAA,MAChB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,WAAW,GAAG,QAAQ,6uBAA6uB;AAAA,IACvxB;AACA,IAAI,aAAa;AACjB,IAAI,kBAAkB;AAAA,MACpB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,YAAY,GAAG,QAAQ,kXAAkX;AAAA,IAC7Z;AACA,IAAI,cAAc;AAClB,IAAI,gBAAgB;AAAA,MAClB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,aAAa,GAAG,QAAQ,sZAAsZ;AAAA,IAClc;AACA,IAAI,eAAe;AACnB,IAAIC,mBAAkB;AAAA,MACpB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,QAAQ,YAAY,GAAG,QAAQ,mgCAAmgC;AAAA,IACtjC;AACA,IAAIC,eAAcD;AAClB,IAAIE,iBAAgB;AAAA,MAClB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,MAAM,GAAG,QAAQ,ogBAAogB;AAAA,IACziB;AACA,IAAIC,UAASD;AACb,IAAI,gBAAgB;AAAA,MAClB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,cAAc,GAAG,QAAQ,6lCAA6lC;AAAA,IAC1oC;AACA,IAAI,gBAAgB;AACpB,IAAIE,uBAAsB;AAAA,MACxB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,QAAQ,iBAAiB,GAAG,QAAQ,i1BAAi1B;AAAA,IACz4B;AACA,IAAIC,mBAAkBD;AACtB,IAAI,qBAAqB;AAAA,MACvB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,MAAM,QAAQ,GAAG,QAAQ,2GAA2G;AAAA,IACxJ;AACA,IAAI,WAAW;AACf,IAAI,2BAA2B;AAAA,MAC7B,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,GAAG,QAAQ,ggCAAggC;AAAA,IAC/hC;AACA,IAAI,yBAAyB;AAAA,MAC3B,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,GAAG,QAAQ,6eAA6e;AAAA,IAC5gB;AACA,IAAI,iBAAiB;AAAA,MACnB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,GAAG,QAAQ,04BAA04B;AAAA,IACz6B;AACA,IAAIE,WAAU;AAAA,MACZ,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,QAAQ,YAAY,GAAG,QAAQ,0LAA0L;AAAA,IAC7O;AACA,IAAIC,eAAcD;AAClB,IAAI,SAAS;AAAA,MACX,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,MAAM,GAAG,QAAQ,gaAAga;AAAA,IACrc;AACA,IAAIE,mBAAkB;AAAA,MACpB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,YAAY,GAAG,QAAQ,iWAAiW;AAAA,IAC5Y;AACA,IAAIC,eAAcD;AAClB,IAAI,kBAAkB;AAAA,MACpB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,GAAG,QAAQ,ysCAAysC;AAAA,IACxuC;AACA,IAAI,cAAc;AAAA,MAChB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,YAAY,GAAG,QAAQ,8WAA8W;AAAA,IACzZ;AACA,IAAI,cAAc;AAClB,IAAI,eAAe;AAAA,MACjB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,GAAG,QAAQ,8dAA8d;AAAA,IAC7f;AACA,IAAI,cAAc;AAAA,MAChB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,GAAG,QAAQ,kkBAAkkB;AAAA,IACjmB;AACA,IAAI,cAAc;AAAA,MAChB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,MAAM,GAAG,QAAQ,olBAAolB;AAAA,IACznB;AACA,IAAI,yBAAyB;AAAA,MAC3B,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,cAAc,GAAG,QAAQ,yRAAyR;AAAA,IACtU;AACA,IAAI,gBAAgB;AACpB,IAAI,gBAAgB;AAAA,MAClB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,GAAG,QAAQ,0uBAA0uB;AAAA,IACzwB;AACA,IAAI,iBAAiB;AAAA,MACnB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,GAAG,QAAQ,2uBAA2uB;AAAA,IAC1wB;AACA,IAAI,iBAAiB;AAAA,MACnB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,QAAQ,eAAe,GAAG,QAAQ,mhCAAmhC;AAAA,IACzkC;AACA,IAAI,iBAAiB;AACrB,IAAI,aAAa;AAAA,MACf,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,GAAG,QAAQ,inBAAinB;AAAA,IAChpB;AACA,IAAI,yBAAyB;AAAA,MAC3B,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,uCAAuC,oBAAoB,2CAA2C,GAAG,QAAQ,ygCAAygC;AAAA,IAC9oC;AACA,IAAI,qCAAqC;AACzC,IAAI,oBAAoB;AACxB,IAAI,0CAA0C;AAC9C,IAAI,wBAAwB;AAAA,MAC1B,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,GAAG,QAAQ,6eAA6e;AAAA,IAC5gB;AACA,IAAI,WAAW;AAAA,MACb,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,GAAG,QAAQ,kVAAkV;AAAA,IACjX;AACA,IAAI,WAAW;AAAA,MACb,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,MAAM,GAAG,QAAQ,gqBAAgqB;AAAA,IACrsB;AACA,IAAI,cAAc;AAAA,MAChB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,MAAM,OAAO,GAAG,QAAQ,0PAA0P;AAAA,IACtS;AACA,IAAI,UAAU;AACd,IAAI,wBAAwB;AAAA,MAC1B,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,gBAAgB,GAAG,QAAQ,8fAA8f;AAAA,IAC7iB;AACA,IAAI,kBAAkB;AACtB,IAAI,eAAe;AAAA,MACjB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,GAAG,QAAQ,+pBAA+pB;AAAA,IAC9rB;AACA,IAAIE,gBAAe;AAAA,MACjB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,KAAK,GAAG,QAAQ,6TAA6T;AAAA,IACjW;AACA,IAAI,cAAc;AAAA,MAChB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,OAAO,GAAG,QAAQ,qyBAAqyB;AAAA,IAC30B;AACA,IAAI,UAAU;AACd,IAAI,UAAU;AAAA,MACZ,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,GAAG,QAAQ,uPAAuP;AAAA,IACtR;AACA,IAAIC,WAAU;AAAA,MACZ,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,QAAQ,QAAQ,QAAQ,QAAQ,QAAQ,QAAQ,QAAQ,QAAQ,MAAM,OAAO,KAAK,GAAG,QAAQ,+PAA+P;AAAA,IAChX;AACA,IAAI,oBAAoB;AAAA,MACtB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,mBAAmB,GAAG,QAAQ,oMAAoM;AAAA,IACtP;AACA,IAAI,oBAAoB;AACxB,IAAI,gBAAgB;AAAA,MAClB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,WAAW,GAAG,QAAQ,gZAAgZ;AAAA,IAC1b;AACA,IAAI,aAAa;AACjB,IAAIC,iBAAgB;AAAA,MAClB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,OAAO,OAAO,qBAAqB,wBAAwB,GAAG,QAAQ,sPAAsP;AAAA,IAChV;AACA,IAAIC,qBAAoBD;AACxB,IAAIE,yBAAwBF;AAC5B,IAAI,cAAc;AAAA,MAChB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,GAAG,QAAQ,mrBAAmrB;AAAA,IACltB;AACA,IAAI,kBAAkB;AAAA,MACpB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,GAAG,QAAQ,+ZAA+Z;AAAA,IAC9b;AACA,IAAI,aAAa;AAAA,MACf,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,GAAG,QAAQ,gNAAgN;AAAA,IAC/O;AACA,IAAI,iBAAiB;AAAA,MACnB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,GAAG,QAAQ,oWAAoW;AAAA,IACnY;AACA,IAAI,aAAa;AAAA,MACf,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,GAAG,QAAQ,4xBAA4xB;AAAA,IAC3zB;AACA,IAAI,aAAa;AAAA,MACf,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,MAAM,IAAI,GAAG,QAAQ,ycAAyc;AAAA,IAClf;AACA,IAAIG,WAAU;AAAA,MACZ,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,GAAG,QAAQ,uPAAuP;AAAA,IACtR;AACA,IAAI,YAAY;AAAA,MACd,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,IAAI,GAAG,QAAQ,gSAAgS;AAAA,IACnU;AACA,IAAI,MAAM;AAAA,MACR,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,GAAG,GAAG,MAAM,0SAA0S;AAAA,IAC1U;AACA,IAAI,eAAe;AAAA,MACjB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,GAAG,QAAQ,qTAAqT;AAAA,IACpV;AACA,IAAI,aAAa;AAAA,MACf,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,MAAM,GAAG,QAAQ,4SAA4S;AAAA,IACjV;AACA,IAAI,UAAU;AAAA,MACZ,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,GAAG,QAAQ,k3BAAk3B;AAAA,IACj5B;AACA,IAAI,6BAA6B;AAAA,MAC/B,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,iBAAiB,iBAAiB,4BAA4B,GAAG,QAAQ,wSAAwS;AAAA,IACrY;AACA,IAAI,iBAAiB;AACrB,IAAI,iBAAiB;AACrB,IAAI,6BAA6B;AACjC,IAAI,MAAM;AAAA,MACR,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,EAAE,GAAG,MAAM,mSAAmS;AAAA,IAClU;AACA,IAAI,gBAAgB;AAAA,MAClB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,GAAG,QAAQ,00BAA00B;AAAA,IACz2B;AACA,IAAI,iBAAiB;AAAA,MACnB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,GAAG,QAAQ,2RAA2R;AAAA,IAC1T;AACA,IAAI,WAAW;AAAA,MACb,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,GAAG,QAAQ,obAAob;AAAA,IACnd;AACA,IAAI,sBAAsB;AAAA,MACxB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,GAAG,QAAQ,mLAAmL;AAAA,IAClN;AACA,IAAI,gBAAgB;AAAA,MAClB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,WAAW,GAAG,QAAQ,qxBAAqxB;AAAA,IAC/zB;AACA,IAAI,aAAa;AACjB,IAAI,YAAY;AAAA,MACd,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,KAAK,GAAG,QAAQ,oPAAoP;AAAA,IACxR;AACA,IAAIC,gBAAe;AAAA,MACjB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,QAAQ,QAAQ,KAAK,GAAG,QAAQ,wVAAwV;AAAA,IAC5Y;AACA,IAAI,UAAU;AAAA,MACZ,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,MAAM,GAAG,QAAQ,wjBAAwjB;AAAA,IAC7lB;AACA,IAAI,gBAAgB;AAAA,MAClB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,GAAG,QAAQ,gTAAgT;AAAA,IAC/U;AACA,IAAI,qBAAqB;AAAA,MACvB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,GAAG,QAAQ,6LAA6L;AAAA,IAC5N;AACA,IAAI,kBAAkB;AAAA,MACpB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,GAAG,QAAQ,kWAAkW;AAAA,IACjY;AACA,IAAIC,oBAAmB;AAAA,MACrB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,MAAM,GAAG,QAAQ,qGAAqG;AAAA,IAC1I;AACA,IAAI,iBAAiB;AAAA,MACnB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,IAAI,GAAG,QAAQ,0KAA0K;AAAA,IAC7M;AACA,IAAI,QAAQ;AAAA,MACV,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,MAAM,GAAG,QAAQ,qRAAqR;AAAA,IAC1T;AACA,IAAI,iBAAiB;AAAA,MACnB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,cAAc,GAAG,QAAQ,gdAAgd;AAAA,IAC7f;AACA,IAAI,gBAAgB;AACpB,IAAI,SAAS;AAAA,MACX,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,GAAG,QAAQ,8VAA8V;AAAA,IAC7X;AACA,IAAI,gBAAgB;AAAA,MAClB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,GAAG,QAAQ,ugBAAugB;AAAA,IACtiB;AACA,IAAI,kBAAkB;AAAA,MACpB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,GAAG,QAAQ,wbAAwb;AAAA,IACvd;AACA,IAAI,SAAS;AAAA,MACX,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,GAAG,QAAQ,6dAA6d;AAAA,IAC5f;AACA,IAAI,gBAAgB;AAAA,MAClB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,GAAG,QAAQ,iwBAAiwB;AAAA,IAChyB;AACA,IAAI,gBAAgB;AAAA,MAClB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,MAAM,GAAG,QAAQ,mgBAAmgB;AAAA,IACxiB;AACA,IAAI,aAAa;AAAA,MACf,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,QAAQ,QAAQ,GAAG,QAAQ,gQAAgQ;AAAA,IAC/S;AACA,IAAI,WAAW;AACf,IAAI,gBAAgB;AAAA,MAClB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,MAAM,iBAAiB,GAAG,QAAQ,iwBAAiwB;AAAA,IACvzB;AACA,IAAI,mBAAmB;AACvB,IAAIC,cAAa;AAAA,MACf,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,KAAK,GAAG,QAAQ,wOAAwO;AAAA,IAC5Q;AACA,IAAI,cAAc;AAAA,MAChB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,aAAa,GAAG,QAAQ,80BAA80B;AAAA,IAC13B;AACA,IAAI,eAAe;AACnB,IAAI,qBAAqB;AAAA,MACvB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,GAAG,QAAQ,yRAAyR;AAAA,IACxT;AACA,IAAI,gBAAgB;AAAA,MAClB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,GAAG,QAAQ,idAAid;AAAA,IAChf;AACA,IAAI,SAAS;AAAA,MACX,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,MAAM,GAAG,QAAQ,moBAAmoB;AAAA,IACxqB;AACA,IAAI,wBAAwB;AAAA,MAC1B,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,aAAa,GAAG,QAAQ,mYAAmY;AAAA,IAC/a;AACA,IAAI,eAAe;AACnB,IAAI,UAAU;AAAA,MACZ,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,GAAG,QAAQ,0VAA0V;AAAA,IACzX;AACA,IAAI,eAAe;AAAA,MACjB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,GAAG,QAAQ,8YAA8Y;AAAA,IAC7a;AACA,IAAI,aAAa;AAAA,MACf,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,QAAQ,OAAO,MAAM,GAAG,QAAQ,+fAA+f;AAAA,IACnjB;AACA,IAAI,SAAS;AACb,IAAI,eAAe;AAAA,MACjB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,WAAW,GAAG,QAAQ,kZAAkZ;AAAA,IAC5b;AACA,IAAI,aAAa;AACjB,IAAI,cAAc;AAAA,MAChB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,GAAG,QAAQ,2LAA2L;AAAA,IAC1N;AACA,IAAI,WAAW;AAAA,MACb,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,WAAW,GAAG,QAAQ,6eAA6e;AAAA,IACvhB;AACA,IAAI,cAAc;AAClB,IAAI,YAAY;AAAA,MACd,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,MAAM,IAAI,GAAG,QAAQ,87BAA87B;AAAA,IACv+B;AACA,IAAI,UAAU;AAAA,MACZ,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,MAAM,GAAG,QAAQ,88BAA88B;AAAA,IACn/B;AACA,IAAI,UAAU;AAAA,MACZ,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,QAAQ,QAAQ,IAAI,GAAG,QAAQ,uXAAuX;AAAA,IAC1a;AACA,IAAI,eAAe;AAAA,MACjB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,QAAQ,iBAAiB,GAAG,QAAQ,4vBAA4vB;AAAA,IACpzB;AACA,IAAI,mBAAmB;AACvB,IAAI,iBAAiB;AAAA,MACnB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,MAAM,GAAG,QAAQ,8QAA8Q;AAAA,IACnT;AACA,IAAI,qBAAqB;AAAA,MACvB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,GAAG,QAAQ,0gBAA0gB;AAAA,IACziB;AACA,IAAI,UAAU;AAAA,MACZ,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,GAAG,QAAQ,qiBAAqiB;AAAA,IACpkB;AACA,IAAI,gBAAgB;AAAA,MAClB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,GAAG,QAAQ,+hCAA+hC;AAAA,IAC9jC;AACA,IAAIC,gBAAe;AAAA,MACjB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,IAAI,GAAG,QAAQ,swBAAswB;AAAA,IACzyB;AACA,IAAI,qBAAqB;AAAA,MACvB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,GAAG,QAAQ,mhBAAmhB;AAAA,IACljB;AACA,IAAI,sBAAsB;AAAA,MACxB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,cAAc,GAAG,QAAQ,8aAA8a;AAAA,IAC3d;AACA,IAAI,gBAAgB;AACpB,IAAI,2BAA2B;AAAA,MAC7B,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,GAAG,QAAQ,6hBAA6hB;AAAA,IAC5jB;AACA,IAAI,aAAa;AAAA,MACf,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,GAAG,QAAQ,sbAAsb;AAAA,IACrd;AACA,IAAIC,eAAc;AAAA,MAChB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,MAAM,GAAG,QAAQ,ylBAAylB;AAAA,IAC9nB;AACA,IAAI,cAAc;AAAA,MAChB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,QAAQ,IAAI,GAAG,QAAQ,+sBAA+sB;AAAA,IAC1vB;AACA,IAAI,aAAa;AAAA,MACf,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,mBAAmB,GAAG,QAAQ,0kBAA0kB;AAAA,IAC5nB;AACA,IAAI,oBAAoB;AACxB,IAAI,kBAAkB;AAAA,MACpB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,GAAG,QAAQ,gMAAgM;AAAA,IAC/N;AACA,IAAI,SAAS;AAAA,MACX,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,MAAM,GAAG,QAAQ,4mCAA4mC;AAAA,IACjpC;AACA,IAAI,SAAS;AAAA,MACX,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,GAAG,QAAQ,okBAAokB;AAAA,IACnmB;AACA,IAAI,kBAAkB;AAAA,MACpB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,MAAM,GAAG,QAAQ,yTAAyT;AAAA,IAC9V;AACA,IAAI,wBAAwB;AAAA,MAC1B,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,SAAS,GAAG,QAAQ,0ZAA0Z;AAAA,IAClc;AACA,IAAI,WAAW;AACf,IAAI,YAAY;AAAA,MACd,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,GAAG,QAAQ,0dAA0d;AAAA,IACzf;AACA,IAAI,YAAY;AAAA,MACd,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,GAAG,QAAQ,4jBAA4jB;AAAA,IAC3lB;AACA,IAAI,WAAW;AAAA,MACb,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,mBAAmB,GAAG,QAAQ,4NAA4N;AAAA,IAC9Q;AACA,IAAI,mBAAmB;AACvB,IAAI,iBAAiB;AAAA,MACnB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,GAAG,QAAQ,u9BAAu9B;AAAA,IACt/B;AACA,IAAIC,cAAa;AAAA,MACf,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,QAAQ,OAAO,gBAAgB,eAAe,GAAG,QAAQ,44BAA44B;AAAA,IACz9B;AACA,IAAIC,iBAAgBD;AACpB,IAAIE,kBAAiBF;AACrB,IAAI,oBAAoB;AAAA,MACtB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,GAAG,QAAQ,00BAA00B;AAAA,IACz2B;AACA,IAAI,qBAAqB;AAAA,MACvB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,GAAG,QAAQ,+1BAA+1B;AAAA,IAC93B;AACA,IAAI,aAAa;AAAA,MACf,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,cAAc,GAAG,QAAQ,4pBAA4pB;AAAA,IACzsB;AACA,IAAI,gBAAgB;AACpB,IAAI,WAAW;AAAA,MACb,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,MAAM,GAAG,QAAQ,4eAA4e;AAAA,IACjhB;AACA,IAAI,SAAS;AAAA,MACX,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,MAAM,GAAG,QAAQ,idAAid;AAAA,IACtf;AACA,IAAI,oBAAoB;AAAA,MACtB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,UAAU,GAAG,QAAQ,saAAsa;AAAA,IAC/c;AACA,IAAI,YAAY;AAChB,IAAI,cAAc;AAAA,MAChB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,SAAS,GAAG,QAAQ,saAAsa;AAAA,IAC9c;AACA,IAAI,WAAW;AACf,IAAI,cAAc;AAAA,MAChB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,IAAI,GAAG,QAAQ,q6BAAq6B;AAAA,IACx8B;AACA,IAAI,YAAY;AAAA,MACd,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,GAAG,QAAQ,idAAid;AAAA,IAChf;AACA,IAAI,MAAM;AAAA,MACR,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,GAAG,GAAG,MAAM,uLAAuL;AAAA,IACvN;AACA,IAAI,UAAU;AAAA,MACZ,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,cAAc,GAAG,QAAQ,gWAAgW;AAAA,IAC7Y;AACA,IAAI,gBAAgB;AACpB,IAAI,cAAc;AAAA,MAChB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,QAAQ,WAAW,GAAG,QAAQ,0TAA0T;AAAA,IAC5W;AACA,IAAI,aAAa;AACjB,IAAI,mBAAmB;AAAA,MACrB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,GAAG,QAAQ,+PAA+P;AAAA,IAC9R;AACA,IAAI,mBAAmB;AAAA,MACrB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,GAAG,QAAQ,ibAAib;AAAA,IAChd;AACA,IAAI,aAAa;AAAA,MACf,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,KAAK,GAAG,MAAM,4LAA4L;AAAA,IAC9N;AACA,IAAI,gBAAgB;AAAA,MAClB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,GAAG,QAAQ,mlBAAmlB;AAAA,IAClnB;AACA,IAAIG,gBAAe;AAAA,MACjB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,OAAO,aAAa,GAAG,QAAQ,0KAA0K;AAAA,IAC7N;AACA,IAAIC,gBAAeD;AACnB,IAAI,iBAAiB;AAAA,MACnB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,UAAU,GAAG,QAAQ,yVAAyV;AAAA,IAClY;AACA,IAAI,YAAY;AAChB,IAAI,aAAa;AAAA,MACf,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,UAAU,GAAG,QAAQ,oyBAAoyB;AAAA,IAC70B;AACA,IAAI,YAAY;AAChB,IAAI,eAAe;AAAA,MACjB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,GAAG,QAAQ,0YAA0Y;AAAA,IACza;AACA,IAAI,gBAAgB;AAAA,MAClB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,OAAO,gBAAgB,cAAc,GAAG,QAAQ,0VAA0V;AAAA,IAC9Z;AACA,IAAI,gBAAgB;AACpB,IAAI,gBAAgB;AACpB,IAAI,uBAAuB;AAAA,MACzB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,oBAAoB,GAAG,QAAQ,mdAAmd;AAAA,IACtgB;AACA,IAAI,qBAAqB;AACzB,IAAI,YAAY;AAAA,MACd,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,MAAM,OAAO,KAAK,GAAG,QAAQ,gkBAAgkB;AAAA,IACjnB;AACA,IAAI,QAAQ;AACZ,IAAI,QAAQ;AACZ,IAAIE,mBAAkB;AAAA,MACpB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,GAAG,QAAQ,y4BAAy4B;AAAA,IACx6B;AACA,IAAIC,aAAY;AAAA,MACd,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,QAAQ,KAAK,GAAG,QAAQ,kMAAkM;AAAA,IAC9O;AACA,IAAI,kBAAkB;AAAA,MACpB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,GAAG,QAAQ,2nBAA2nB;AAAA,IAC1pB;AACA,IAAI,gBAAgB;AAAA,MAClB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,GAAG,QAAQ,wjCAAwjC;AAAA,IACvlC;AACA,IAAI,aAAa;AAAA,MACf,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,GAAG,QAAQ,mtBAAmtB;AAAA,IAClvB;AACA,IAAI,eAAe;AAAA,MACjB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,GAAG,QAAQ,kaAAka;AAAA,IACjc;AACA,IAAI,UAAU;AAAA,MACZ,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,cAAc,GAAG,QAAQ,wQAAwQ;AAAA,IACrT;AACA,IAAI,gBAAgB;AACpB,IAAIC,eAAc;AAAA,MAChB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,IAAI,GAAG,QAAQ,gVAAgV;AAAA,IACnX;AACA,IAAI,cAAc;AAAA,MAChB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,MAAM,GAAG,QAAQ,gWAAgW;AAAA,IACrY;AACA,IAAI,wBAAwB;AAAA,MAC1B,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,GAAG,QAAQ,y1BAAy1B;AAAA,IACx3B;AACA,IAAIC,kBAAiB;AAAA,MACnB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,GAAG,QAAQ,yaAAya;AAAA,IACxc;AACA,IAAI,mBAAmB;AAAA,MACrB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,gBAAgB,GAAG,QAAQ,gfAAgf;AAAA,IAC/hB;AACA,IAAI,kBAAkB;AACtB,IAAI,eAAe;AAAA,MACjB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,GAAG,QAAQ,yfAAyf;AAAA,IACxhB;AACA,IAAI,SAAS;AAAA,MACX,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,GAAG,QAAQ,iVAAiV;AAAA,IAChX;AACA,IAAI,eAAe;AAAA,MACjB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,WAAW,GAAG,QAAQ,uqBAAuqB;AAAA,IACjtB;AACA,IAAI,cAAc;AAClB,IAAI,uBAAuB;AAAA,MACzB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,iBAAiB,GAAG,QAAQ,6hBAA6hB;AAAA,IAC7kB;AACA,IAAI,kBAAkB;AACtB,IAAI,iBAAiB;AAAA,MACnB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,YAAY,GAAG,QAAQ,8sCAA8sC;AAAA,IACzvC;AACA,IAAI,cAAc;AAClB,IAAI,WAAW;AAAA,MACb,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,GAAG,QAAQ,kbAAkb;AAAA,IACjd;AACA,IAAIC,eAAc;AAAA,MAChB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,MAAM,GAAG,QAAQ,mRAAmR;AAAA,IACxT;AACA,IAAI,mBAAmB;AAAA,MACrB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,GAAG,QAAQ,uaAAua;AAAA,IACtc;AACA,IAAI,aAAa;AAAA,MACf,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,GAAG,QAAQ,05BAA05B;AAAA,IACz7B;AACA,IAAI,eAAe;AAAA,MACjB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,GAAG,QAAQ,+rBAA+rB;AAAA,IAC9tB;AACA,IAAI,YAAY;AAAA,MACd,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,GAAG,QAAQ,yqBAAyqB;AAAA,IACxsB;AACA,IAAI,cAAc;AAAA,MAChB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,OAAO,GAAG,QAAQ,0bAA0b;AAAA,IAChe;AACA,IAAI,UAAU;AACd,IAAI,eAAe;AAAA,MACjB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,GAAG,QAAQ,yZAAyZ;AAAA,IACxb;AACA,IAAI,SAAS;AAAA,MACX,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,IAAI,GAAG,QAAQ,gTAAgT;AAAA,IACnV;AACA,IAAI,WAAW;AAAA,MACb,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,MAAM,GAAG,QAAQ,sOAAsO;AAAA,IAC3Q;AACA,IAAI,cAAc;AAAA,MAChB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,YAAY,GAAG,QAAQ,scAAsc;AAAA,IACjf;AACA,IAAI,cAAc;AAClB,IAAI,YAAY;AAAA,MACd,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,GAAG,QAAQ,8/BAA8/B;AAAA,IAC7hC;AACA,IAAI,qBAAqB;AAAA,MACvB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,MAAM,GAAG,QAAQ,+ZAA+Z;AAAA,IACpc;AACA,IAAI,iBAAiB;AAAA,MACnB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,GAAG,QAAQ,qXAAqX;AAAA,IACpZ;AACA,IAAI,kBAAkB;AAAA,MACpB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,GAAG,QAAQ,irBAAirB;AAAA,IAChtB;AACA,IAAI,cAAc;AAAA,MAChB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,GAAG,QAAQ,slBAAslB;AAAA,IACrnB;AACA,IAAI,yBAAyB;AAAA,MAC3B,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,WAAW,GAAG,QAAQ,gZAAgZ;AAAA,IAC1b;AACA,IAAI,aAAa;AACjB,IAAI,cAAc;AAAA,MAChB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,GAAG,QAAQ,0RAA0R;AAAA,IACzT;AACA,IAAI,uBAAuB;AAAA,MACzB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,eAAe,GAAG,QAAQ,urBAAurB;AAAA,IACruB;AACA,IAAI,iBAAiB;AACrB,IAAI,WAAW;AAAA,MACb,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,GAAG,QAAQ,+LAA+L;AAAA,IAC9N;AACA,IAAI,YAAY;AAAA,MACd,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,MAAM,iBAAiB,GAAG,QAAQ,mPAAmP;AAAA,IACzS;AACA,IAAI,mBAAmB;AACvB,IAAI,WAAW;AAAA,MACb,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,MAAM,GAAG,QAAQ,2sBAA2sB;AAAA,IAChvB;AACA,IAAI,aAAa;AAAA,MACf,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,IAAI,GAAG,QAAQ,uUAAuU;AAAA,IAC1W;AACA,IAAI,YAAY;AAAA,MACd,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,MAAM,GAAG,QAAQ,6eAA6e;AAAA,IAClhB;AACA,IAAI,eAAe;AAAA,MACjB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,aAAa,GAAG,QAAQ,qhBAAqhB;AAAA,IACjkB;AACA,IAAI,eAAe;AACnB,IAAIC,gBAAe;AAAA,MACjB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,QAAQ,KAAK,GAAG,QAAQ,uhBAAuhB;AAAA,IACnkB;AACA,IAAI,UAAU;AAAA,MACZ,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,MAAM,GAAG,QAAQ,8eAA8e;AAAA,IACnhB;AACA,IAAI,eAAe;AAAA,MACjB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,qBAAqB,GAAG,QAAQ,gXAAgX;AAAA,IACpa;AACA,IAAI,qBAAqB;AACzB,IAAI,aAAa;AAAA,MACf,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,QAAQ,OAAO,SAAS,GAAG,QAAQ,0kBAA0kB;AAAA,IACjoB;AACA,IAAI,YAAY;AAChB,IAAIC,aAAY;AAAA,MACd,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,GAAG,QAAQ,8VAA8V;AAAA,IAC7X;AACA,IAAI,WAAW;AAAA,MACb,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,MAAM,GAAG,QAAQ,4mCAA4mC;AAAA,IACjpC;AACA,IAAI,gBAAgB;AAAA,MAClB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,GAAG,QAAQ,opBAAopB;AAAA,IACnrB;AACA,IAAI,cAAc;AAAA,MAChB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,WAAW,GAAG,QAAQ,qbAAqb;AAAA,IAC/d;AACA,IAAI,aAAa;AACjB,IAAI,sBAAsB;AAAA,MACxB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,GAAG,QAAQ,wlDAAwlD;AAAA,IACvnD;AACA,IAAI,yBAAyB;AAAA,MAC3B,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,GAAG,QAAQ,2eAA2e;AAAA,IAC1gB;AACA,IAAI,aAAa;AAAA,MACf,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,GAAG,QAAQ,6rBAA6rB;AAAA,IAC5tB;AACA,IAAI,gBAAgB;AAAA,MAClB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,GAAG,QAAQ,4bAA4b;AAAA,IAC3d;AACA,IAAI,uBAAuB;AAAA,MACzB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,eAAe,GAAG,QAAQ,i1BAAi1B;AAAA,IAC/3B;AACA,IAAI,iBAAiB;AACrB,IAAIC,iBAAgB;AAAA,MAClB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,MAAM,MAAM,OAAO,cAAc,GAAG,QAAQ,iTAAiT;AAAA,IACjX;AACA,IAAIC,iBAAgBD;AACpB,IAAI,SAAS;AAAA,MACX,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,QAAQ,SAAS,GAAG,QAAQ,kkBAAkkB;AAAA,IAClnB;AACA,IAAI,YAAY;AAChB,IAAIE,iBAAgB;AAAA,MAClB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,IAAI,GAAG,QAAQ,2bAA2b;AAAA,IAC9d;AACA,IAAI,8BAA8B;AAAA,MAChC,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,yBAAyB,GAAG,QAAQ,4ZAA4Z;AAAA,IACpd;AACA,IAAI,0BAA0B;AAC9B,IAAI,gBAAgB;AAAA,MAClB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,OAAO,gBAAgB,GAAG,QAAQ,ooBAAooB;AAAA,IAC1rB;AACA,IAAI,kBAAkB;AACtB,IAAI,YAAY;AAAA,MACd,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,GAAG,QAAQ,4kBAA4kB;AAAA,IAC3mB;AACA,IAAI,oBAAoB;AAAA,MACtB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,GAAG,QAAQ,iiBAAiiB;AAAA,IAChkB;AACA,IAAI,cAAc;AAAA,MAChB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,GAAG,QAAQ,mmBAAmmB;AAAA,IACloB;AACA,IAAI,qBAAqB;AAAA,MACvB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,GAAG,QAAQ,6RAA6R;AAAA,IAC5T;AACA,IAAIC,kBAAiB;AAAA,MACnB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,KAAK,GAAG,QAAQ,mSAAmS;AAAA,IACvU;AACA,IAAI,UAAU;AAAA,MACZ,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,GAAG,QAAQ,iJAAiJ;AAAA,IAChL;AACA,IAAI,cAAc;AAAA,MAChB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,GAAG,QAAQ,2RAA2R;AAAA,IAC1T;AACA,IAAI,SAAS;AAAA,MACX,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,GAAG,QAAQ,kmBAAkmB;AAAA,IACjoB;AACA,IAAI,qBAAqB;AAAA,MACvB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,GAAG,QAAQ,2gBAA2gB;AAAA,IAC1iB;AACA,IAAI,MAAM;AAAA,MACR,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,GAAG,GAAG,MAAM,uUAAuU;AAAA,IACvW;AACA,IAAI,eAAe;AAAA,MACjB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,qBAAqB,YAAY,GAAG,QAAQ,idAAid;AAAA,IACjhB;AACA,IAAI,oBAAoB;AACxB,IAAI,eAAe;AACnB,IAAIC,iBAAgB;AAAA,MAClB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,OAAO,gBAAgB,cAAc,GAAG,QAAQ,0RAA0R;AAAA,IAC9V;AACA,IAAIC,iBAAgBD;AACpB,IAAIE,iBAAgBF;AACpB,IAAI,YAAY;AAAA,MACd,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,GAAG,QAAQ,yiBAAyiB;AAAA,IACxkB;AACA,IAAI,oBAAoB;AAAA,MACtB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,OAAO,cAAc,GAAG,QAAQ,8cAA8c;AAAA,IAClgB;AACA,IAAI,QAAQ;AACZ,IAAI,gBAAgB;AACpB,IAAI,YAAY;AAAA,MACd,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,MAAM,GAAG,QAAQ,utBAAutB;AAAA,IAC5vB;AACA,IAAI,iBAAiB;AAAA,MACnB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,GAAG,QAAQ,kmCAAkmC;AAAA,IACjoC;AACA,IAAI,eAAe;AAAA,MACjB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,GAAG,QAAQ,gYAAgY;AAAA,IAC/Z;AACA,IAAI,UAAU;AAAA,MACZ,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,MAAM,GAAG,QAAQ,scAAsc;AAAA,IAC3e;AACA,IAAI,sBAAsB;AAAA,MACxB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,GAAG,QAAQ,sjBAAsjB;AAAA,IACrlB;AACA,IAAI,cAAc;AAAA,MAChB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,eAAe,GAAG,QAAQ,qoBAAqoB;AAAA,IACnrB;AACA,IAAI,iBAAiB;AACrB,IAAI,YAAY;AAAA,MACd,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,WAAW,GAAG,QAAQ,ydAAyd;AAAA,IACngB;AACA,IAAI,aAAa;AACjB,IAAI,cAAc;AAAA,MAChB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,GAAG,QAAQ,wXAAwX;AAAA,IACvZ;AACA,IAAI,WAAW;AAAA,MACb,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,MAAM,GAAG,QAAQ,koBAAkoB;AAAA,IACvqB;AACA,IAAIG,mBAAkB;AAAA,MACpB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,iBAAiB,GAAG,QAAQ,yRAAyR;AAAA,IACzU;AACA,IAAIC,mBAAkBD;AACtB,IAAI,gBAAgB;AAAA,MAClB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,YAAY,GAAG,QAAQ,kfAAkf;AAAA,IAC7hB;AACA,IAAI,cAAc;AAClB,IAAI,aAAa;AAAA,MACf,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,QAAQ,KAAK,GAAG,QAAQ,4YAA4Y;AAAA,IACxb;AACA,IAAI,aAAa;AAAA,MACf,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,MAAM,OAAO,MAAM,GAAG,QAAQ,geAAge;AAAA,IAClhB;AACA,IAAI,QAAQ;AACZ,IAAI,SAAS;AACb,IAAI,qBAAqB;AAAA,MACvB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,GAAG,QAAQ,kmBAAkmB;AAAA,IACjoB;AACA,IAAI,aAAa;AAAA,MACf,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,IAAI,GAAG,QAAQ,knBAAknB;AAAA,IACrpB;AACA,IAAI,YAAY;AAAA,MACd,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,KAAK,OAAO,OAAO,OAAO,KAAK,GAAG,QAAQ,2YAA2Y;AAAA,IACzc;AACA,IAAI,QAAQ;AACZ,IAAI,QAAQ;AACZ,IAAI,QAAQ;AACZ,IAAI,QAAQ;AACZ,IAAI,YAAY;AAAA,MACd,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,GAAG,QAAQ,kcAAkc;AAAA,IACje;AACA,IAAI,eAAe;AAAA,MACjB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,GAAG,QAAQ,mjBAAmjB;AAAA,IACllB;AACA,IAAI,oBAAoB;AAAA,MACtB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,GAAG,QAAQ,kfAAkf;AAAA,IACjhB;AACA,IAAI,kBAAkB;AAAA,MACpB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,QAAQ,MAAM,GAAG,QAAQ,uZAAuZ;AAAA,IACpc;AACA,IAAI,SAAS;AACb,IAAI,kBAAkB;AAAA,MACpB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,GAAG,QAAQ,+iBAA+iB;AAAA,IAC9kB;AACA,IAAI,eAAe;AAAA,MACjB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,MAAM,GAAG,QAAQ,6qBAA6qB;AAAA,IACltB;AACA,IAAI,gBAAgB;AAAA,MAClB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,GAAG,QAAQ,2VAA2V;AAAA,IAC1X;AACA,IAAI,qBAAqB;AAAA,MACvB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,gBAAgB,GAAG,QAAQ,okBAAokB;AAAA,IACnnB;AACA,IAAI,iBAAiB;AACrB,IAAI,cAAc;AAAA,MAChB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,GAAG,QAAQ,ooBAAooB;AAAA,IACnqB;AACA,IAAI,gBAAgB;AAAA,MAClB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,KAAK,GAAG,QAAQ,8rBAA8rB;AAAA,IACluB;AACA,IAAI,iBAAiB;AAAA,MACnB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,GAAG,QAAQ,qhBAAqhB;AAAA,IACpjB;AACA,IAAI,gBAAgB;AAAA,MAClB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,GAAG,QAAQ,sgBAAsgB;AAAA,IACriB;AACA,IAAI,kBAAkB;AAAA,MACpB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,GAAG,QAAQ,8bAA8b;AAAA,IAC7d;AACA,IAAIE,eAAc;AAAA,MAChB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,MAAM,GAAG,QAAQ,8cAA8c;AAAA,IACnf;AACA,IAAIC,sBAAqB;AAAA,MACvB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,oBAAoB,GAAG,QAAQ,yRAAyR;AAAA,IAC5U;AACA,IAAIC,sBAAqBD;AACzB,IAAI,SAAS;AAAA,MACX,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,MAAM,GAAG,QAAQ,wRAAwR;AAAA,IAC7T;AACA,IAAI,eAAe;AAAA,MACjB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,MAAM,GAAG,QAAQ,0hBAA0hB;AAAA,IAC/jB;AACA,IAAI,WAAW;AAAA,MACb,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,GAAG,QAAQ,sVAAsV;AAAA,IACrX;AACA,IAAI,YAAY;AAAA,MACd,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,IAAI,GAAG,QAAQ,oiBAAoiB;AAAA,IACvkB;AACA,IAAI,wBAAwB;AAAA,MAC1B,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,GAAG,QAAQ,6hBAA6hB;AAAA,IAC5jB;AACA,IAAI,kBAAkB;AAAA,MACpB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,SAAS,GAAG,QAAQ,4vBAA4vB;AAAA,IACpyB;AACA,IAAI,YAAY;AAChB,IAAIE,SAAQ;AAAA,MACV,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,IAAI,GAAG,QAAQ,onBAAonB;AAAA,IACvpB;AACA,IAAI,aAAa;AAAA,MACf,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,QAAQ,MAAM,eAAe,GAAG,QAAQ,80BAA80B;AAAA,IAC14B;AACA,IAAI,iBAAiB;AACrB,IAAIC,WAAU;AAAA,MACZ,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,GAAG,QAAQ,yYAAyY;AAAA,IACxa;AACA,IAAI,WAAW;AAAA,MACb,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,GAAG,QAAQ,+QAA+Q;AAAA,IAC9S;AACA,IAAI,eAAe;AAAA,MACjB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,QAAQ,iBAAiB,GAAG,QAAQ,i8BAAi8B;AAAA,IACz/B;AACA,IAAI,mBAAmB;AACvB,IAAI,WAAW;AAAA,MACb,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,MAAM,OAAO,YAAY,GAAG,QAAQ,8gBAA8gB;AAAA,IACtkB;AACA,IAAI,cAAc;AAClB,IAAI,+BAA+B;AAAA,MACjC,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,GAAG,QAAQ,0gCAA0gC;AAAA,IACziC;AACA,IAAI,YAAY;AAAA,MACd,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,IAAI,GAAG,QAAQ,qXAAqX;AAAA,IACxZ;AACA,IAAI,eAAe;AAAA,MACjB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,mBAAmB,GAAG,QAAQ,iVAAiV;AAAA,IACnY;AACA,IAAI,oBAAoB;AACxB,IAAI,YAAY;AAAA,MACd,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,MAAM,GAAG,QAAQ,8fAA8f;AAAA,IACniB;AACA,IAAI,aAAa;AAAA,MACf,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,WAAW,GAAG,QAAQ,w+BAAw+B;AAAA,IAClhC;AACA,IAAI,aAAa;AACjB,IAAI,YAAY;AAAA,MACd,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,GAAG,QAAQ,6XAA6X;AAAA,IAC5Z;AACA,IAAI,gBAAgB;AAAA,MAClB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,GAAG,QAAQ,+YAA+Y;AAAA,IAC9a;AACA,IAAI,eAAe;AAAA,MACjB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,GAAG,QAAQ,kPAAkP;AAAA,IACjR;AACA,IAAI,oBAAoB;AAAA,MACtB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,mBAAmB,GAAG,QAAQ,qPAAqP;AAAA,IACvS;AACA,IAAI,oBAAoB;AACxB,IAAI,mBAAmB;AAAA,MACrB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,GAAG,QAAQ,gnBAAgnB;AAAA,IAC/oB;AACA,IAAI,aAAa;AAAA,MACf,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,GAAG,QAAQ,8zBAA8zB;AAAA,IAC71B;AACA,IAAI,eAAe;AAAA,MACjB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,GAAG,QAAQ,upBAAupB;AAAA,IACtrB;AACA,IAAI,aAAa;AAAA,MACf,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,GAAG,QAAQ,0ZAA0Z;AAAA,IACzb;AACA,IAAIC,eAAc;AAAA,MAChB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,MAAM,GAAG,QAAQ,iXAAiX;AAAA,IACtZ;AACA,IAAI,qBAAqB;AAAA,MACvB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,oBAAoB,GAAG,QAAQ,mPAAmP;AAAA,IACtS;AACA,IAAI,qBAAqB;AACzB,IAAI,iBAAiB;AAAA,MACnB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,IAAI,GAAG,QAAQ,wdAAwd;AAAA,IAC3f;AACA,IAAI,iBAAiB;AAAA,MACnB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,GAAG,QAAQ,sjBAAsjB;AAAA,IACrlB;AACA,IAAI,mBAAmB;AAAA,MACrB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,GAAG,QAAQ,26BAA26B;AAAA,IAC18B;AACA,IAAI,SAAS;AAAA,MACX,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,GAAG,QAAQ,ycAAyc;AAAA,IACxe;AACA,IAAI,mBAAmB;AAAA,MACrB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,aAAa,GAAG,QAAQ,0lBAA0lB;AAAA,IACtoB;AACA,IAAI,eAAe;AACnB,IAAI,uBAAuB;AAAA,MACzB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,GAAG,QAAQ,goBAAgoB;AAAA,IAC/pB;AACA,IAAI,cAAc;AAAA,MAChB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,GAAG,QAAQ,swBAAswB;AAAA,IACryB;AACA,IAAI,kBAAkB;AAAA,MACpB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,QAAQ,SAAS,iBAAiB,gBAAgB,GAAG,QAAQ,0zBAA0zB;AAAA,IAC34B;AACA,IAAI,UAAU;AACd,IAAI,iBAAiB;AACrB,IAAI,kBAAkB;AACtB,IAAI,WAAW;AAAA,MACb,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,MAAM,GAAG,QAAQ,qiBAAqiB;AAAA,IAC1kB;AACA,IAAI,oBAAoB;AAAA,MACtB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,iBAAiB,iBAAiB,kBAAkB,GAAG,QAAQ,uSAAuS;AAAA,IAC1X;AACA,IAAI,iBAAiB;AACrB,IAAI,iBAAiB;AACrB,IAAI,oBAAoB;AACxB,IAAI,sBAAsB;AAAA,MACxB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,GAAG,QAAQ,8eAA8e;AAAA,IAC7gB;AACA,IAAI,kBAAkB;AAAA,MACpB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,GAAG,QAAQ,qSAAqS;AAAA,IACpU;AACA,IAAI,sBAAsB;AAAA,MACxB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,GAAG,QAAQ,0kCAA0kC;AAAA,IACzmC;AACA,IAAI,gBAAgB;AAAA,MAClB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,eAAe,GAAG,QAAQ,2NAA2N;AAAA,IACzQ;AACA,IAAI,gBAAgB;AACpB,IAAIC,iBAAgB;AAAA,MAClB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,OAAO,gBAAgB,OAAO,GAAG,QAAQ,8bAA8b;AAAA,IAC3f;AACA,IAAIC,iBAAgBD;AACpB,IAAIE,WAAUF;AACd,IAAI,eAAe;AAAA,MACjB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,IAAI,GAAG,QAAQ,2KAA2K;AAAA,IAC9M;AACA,IAAIG,aAAY;AAAA,MACd,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,QAAQ,KAAK,GAAG,QAAQ,uOAAuO;AAAA,IACnR;AACA,IAAIC,SAAQD;AACZ,IAAI,2BAA2B;AAAA,MAC7B,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,GAAG,QAAQ,2kCAA2kC;AAAA,IAC1mC;AACA,IAAIE,SAAQ;AAAA,MACV,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,QAAQ,KAAK,GAAG,QAAQ,+TAA+T;AAAA,IAC3W;AACA,IAAI,aAAa;AAAA,MACf,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,GAAG,QAAQ,sYAAsY;AAAA,IACra;AACA,IAAI,UAAU;AAAA,MACZ,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,IAAI,GAAG,QAAQ,0VAA0V;AAAA,IAC7X;AACA,IAAI,qBAAqB;AAAA,MACvB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,GAAG,QAAQ,kdAAkd;AAAA,IACjf;AACA,IAAI,uBAAuB;AAAA,MACzB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,GAAG,QAAQ,4kBAA4kB;AAAA,IAC3mB;AACA,IAAI,mBAAmB;AAAA,MACrB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,iBAAiB,GAAG,QAAQ,qXAAqX;AAAA,IACra;AACA,IAAI,mBAAmB;AACvB,IAAI,aAAa;AAAA,MACf,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,GAAG,QAAQ,sQAAsQ;AAAA,IACrS;AACA,IAAI,cAAc;AAAA,MAChB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,GAAG,QAAQ,suBAAsuB;AAAA,IACrwB;AACA,IAAI,SAAS;AAAA,MACX,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,GAAG,QAAQ,4SAA4S;AAAA,IAC3U;AACA,IAAI,cAAc;AAAA,MAChB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,GAAG,QAAQ,gVAAgV;AAAA,IAC/W;AACA,IAAI,gBAAgB;AAAA,MAClB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,QAAQ,cAAc,GAAG,QAAQ,4nBAA4nB;AAAA,IACjrB;AACA,IAAI,gBAAgB;AACpB,IAAI,cAAc;AAAA,MAChB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,QAAQ,QAAQ,YAAY,GAAG,QAAQ,+VAA+V;AAAA,IAC1Z;AACA,IAAI,cAAc;AAClB,IAAIC,mBAAkB;AAAA,MACpB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,GAAG,QAAQ,yqBAAyqB;AAAA,IACxsB;AACA,IAAIC,kBAAiB;AAAA,MACnB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,QAAQ,WAAW,GAAG,QAAQ,uIAAuI;AAAA,IACzL;AACA,IAAIC,cAAaD;AACjB,IAAI,qBAAqB;AAAA,MACvB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,iBAAiB,iBAAiB,mBAAmB,GAAG,QAAQ,uNAAuN;AAAA,IAC3S;AACA,IAAI,iBAAiB;AACrB,IAAI,iBAAiB;AACrB,IAAI,qBAAqB;AACzB,IAAI,eAAe;AAAA,MACjB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,GAAG,QAAQ,onBAAonB;AAAA,IACnpB;AACA,IAAI,gBAAgB;AAAA,MAClB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,GAAG,QAAQ,+cAA+c;AAAA,IAC9e;AACA,IAAI,kBAAkB;AAAA,MACpB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,GAAG,QAAQ,m1BAAm1B;AAAA,IACl3B;AACA,IAAI,qBAAqB;AAAA,MACvB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,GAAG,QAAQ,yeAAye;AAAA,IACxgB;AACA,IAAI,eAAe;AAAA,MACjB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,GAAG,QAAQ,4lBAA4lB;AAAA,IAC3nB;AACA,IAAI,eAAe;AAAA,MACjB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,GAAG,QAAQ,klBAAklB;AAAA,IACjnB;AACA,IAAIE,oBAAmB;AAAA,MACrB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,QAAQ,aAAa,GAAG,QAAQ,0nBAA0nB;AAAA,IAC9qB;AACA,IAAIC,gBAAeD;AACnB,IAAI,kBAAkB;AAAA,MACpB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,GAAG,QAAQ,2qBAA2qB;AAAA,IAC1sB;AACA,IAAI,kBAAkB;AAAA,MACpB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,GAAG,QAAQ,4pDAA4pD;AAAA,IAC3rD;AACA,IAAI,oBAAoB;AAAA,MACtB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,GAAG,QAAQ,8dAA8d;AAAA,IAC7f;AACA,IAAIE,YAAW;AAAA,MACb,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,MAAM,eAAe,aAAa,GAAG,QAAQ,qtBAAqtB;AAAA,IACtxB;AACA,IAAIC,gBAAeD;AACnB,IAAIE,gBAAeF;AACnB,IAAI,eAAe;AAAA,MACjB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,aAAa,GAAG,QAAQ,oPAAoP;AAAA,IAChS;AACA,IAAI,eAAe;AACnB,IAAI,sBAAsB;AAAA,MACxB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,GAAG,QAAQ,utBAAutB;AAAA,IACtvB;AACA,IAAI,oBAAoB;AAAA,MACtB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,IAAI,GAAG,QAAQ,+nBAA+nB;AAAA,IAClqB;AACA,IAAIG,kBAAiB;AAAA,MACnB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,QAAQ,UAAU,GAAG,QAAQ,qLAAqL;AAAA,IACtO;AACA,IAAIC,cAAaD;AACjB,IAAI,iBAAiB;AAAA,MACnB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,GAAG,QAAQ,upBAAupB;AAAA,IACtrB;AACA,IAAI,oBAAoB;AAAA,MACtB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,GAAG,QAAQ,qtBAAqtB;AAAA,IACpvB;AACA,IAAIE,YAAW;AAAA,MACb,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,QAAQ,QAAQ,OAAO,cAAc,GAAG,QAAQ,6LAA6L;AAAA,IACjQ;AACA,IAAIC,iBAAgBD;AACpB,IAAI,eAAe;AAAA,MACjB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,GAAG,QAAQ,i+BAAi+B;AAAA,IAChgC;AACA,IAAI,gBAAgB;AAAA,MAClB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,IAAI,GAAG,QAAQ,oyBAAoyB;AAAA,IACv0B;AACA,IAAI,sBAAsB;AAAA,MACxB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,GAAG,QAAQ,qoBAAqoB;AAAA,IACpqB;AACA,IAAI,WAAW;AAAA,MACb,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,MAAM,GAAG,QAAQ,8YAA8Y;AAAA,IACnb;AACA,IAAI,uBAAuB;AAAA,MACzB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,GAAG,QAAQ,wZAAwZ;AAAA,IACvb;AACA,IAAI,eAAe;AAAA,MACjB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,MAAM,GAAG,QAAQ,yZAAyZ;AAAA,IAC9b;AACA,IAAIE,WAAU;AAAA,MACZ,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,IAAI,GAAG,QAAQ,4QAA4Q;AAAA,IAC/S;AACA,IAAI,oBAAoB;AAAA,MACtB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,GAAG,QAAQ,ucAAuc;AAAA,IACte;AACA,IAAI,YAAY;AAAA,MACd,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,SAAS,GAAG,QAAQ,8tBAA8tB;AAAA,IACtwB;AACA,IAAI,WAAW;AACf,IAAI,mBAAmB;AAAA,MACrB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,kBAAkB,GAAG,QAAQ,ieAAie;AAAA,IAClhB;AACA,IAAI,mBAAmB;AACvB,IAAI,cAAc;AAAA,MAChB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,GAAG,QAAQ,6SAA6S;AAAA,IAC5U;AACA,IAAI,qBAAqB;AAAA,MACvB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,GAAG,QAAQ,ihBAAihB;AAAA,IAChjB;AACA,IAAI,gBAAgB;AAAA,MAClB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,GAAG,QAAQ,mVAAmV;AAAA,IAClX;AACA,IAAI,UAAU;AAAA,MACZ,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,GAAG,QAAQ,6eAA6e;AAAA,IAC5gB;AACA,IAAIC,YAAW;AAAA,MACb,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,QAAQ,QAAQ,QAAQ,QAAQ,QAAQ,QAAQ,QAAQ,MAAM,MAAM,MAAM,OAAO,OAAO,KAAK,GAAG,QAAQ,kDAAkD;AAAA,IAC9K;AACA,IAAI,kBAAkB;AAAA,MACpB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,GAAG,QAAQ,s/BAAs/B;AAAA,IACrhC;AACA,IAAIC,oBAAmB;AAAA,MACrB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,QAAQ,aAAa,GAAG,QAAQ,4lBAA4lB;AAAA,IAChpB;AACA,IAAIC,gBAAeD;AACnB,IAAI,sBAAsB;AAAA,MACxB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,GAAG,QAAQ,stBAAstB;AAAA,IACrvB;AACA,IAAI,4BAA4B;AAAA,MAC9B,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,GAAG,QAAQ,0pBAA0pB;AAAA,IACzrB;AACA,IAAI,cAAc;AAAA,MAChB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,SAAS,GAAG,QAAQ,iSAAiS;AAAA,IACzU;AACA,IAAI,WAAW;AACf,IAAI,cAAc;AAAA,MAChB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,GAAG,QAAQ,knBAAknB;AAAA,IACjpB;AACA,IAAI,sBAAsB;AAAA,MACxB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,oBAAoB,GAAG,QAAQ,gOAAgO;AAAA,IACnR;AACA,IAAI,sBAAsB;AAC1B,IAAI,SAAS;AAAA,MACX,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,QAAQ,KAAK,GAAG,QAAQ,6fAA6f;AAAA,IACziB;AACA,IAAI,QAAQ;AACZ,IAAI,cAAc;AAAA,MAChB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,eAAe,GAAG,QAAQ,+bAA+b;AAAA,IAC7e;AACA,IAAI,iBAAiB;AACrB,IAAI,kBAAkB;AAAA,MACpB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,GAAG,QAAQ,siCAAsiC;AAAA,IACrkC;AACA,IAAI,aAAa;AAAA,MACf,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,IAAI,GAAG,QAAQ,kSAAkS;AAAA,IACrU;AACA,IAAI,aAAa;AAAA,MACf,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,WAAW,GAAG,QAAQ,opCAAopC;AAAA,IAC9rC;AACA,IAAI,aAAa;AACjB,IAAI,SAAS;AAAA,MACX,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,QAAQ,OAAO,GAAG,QAAQ,m4BAAm4B;AAAA,IACj7B;AACA,IAAI,UAAU;AACd,IAAI,iBAAiB;AAAA,MACnB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,eAAe,GAAG,QAAQ,oNAAoN;AAAA,IAClQ;AACA,IAAI,iBAAiB;AACrB,IAAI,MAAM;AAAA,MACR,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,GAAG,GAAG,MAAM,4RAA4R;AAAA,IAC5T;AACA,IAAIE,gBAAe;AAAA,MACjB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,OAAO,aAAa,GAAG,QAAQ,yNAAyN;AAAA,IAC5Q;AACA,IAAIC,gBAAeD;AACnB,IAAIE,mBAAkB;AAAA,MACpB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,UAAU,GAAG,QAAQ,mYAAmY;AAAA,IAC5a;AACA,IAAIC,aAAYD;AAChB,IAAIE,UAAS;AAAA,MACX,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,QAAQ,MAAM,YAAY,GAAG,QAAQ,4bAA4b;AAAA,IACrf;AACA,IAAIC,eAAcD;AAClB,IAAI,WAAW;AAAA,MACb,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,GAAG,QAAQ,4lBAA4lB;AAAA,IAC3nB;AACA,IAAI,eAAe;AAAA,MACjB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,QAAQ,aAAa,GAAG,QAAQ,ybAAyb;AAAA,IAC7e;AACA,IAAI,eAAe;AACnB,IAAI,WAAW;AAAA,MACb,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,GAAG,QAAQ,4RAA4R;AAAA,IAC3T;AACA,IAAI,cAAc;AAAA,MAChB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,GAAG,QAAQ,okBAAokB;AAAA,IACnmB;AACA,IAAI,UAAU;AAAA,MACZ,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,GAAG,QAAQ,waAAwa;AAAA,IACvc;AACA,IAAI,0BAA0B;AAAA,MAC5B,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,GAAG,QAAQ,isBAAisB;AAAA,IAChuB;AACA,IAAI,iBAAiB;AAAA,MACnB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,GAAG,QAAQ,2rBAA2rB;AAAA,IAC1tB;AACA,IAAIE,cAAa;AAAA,MACf,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,QAAQ,KAAK,GAAG,QAAQ,whBAAwhB;AAAA,IACpkB;AACA,IAAI,UAAU;AAAA,MACZ,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,GAAG,QAAQ,4ZAA4Z;AAAA,IAC3b;AACA,IAAI,YAAY;AAAA,MACd,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,GAAG,QAAQ,ivDAAivD;AAAA,IAChxD;AACA,IAAI,aAAa;AAAA,MACf,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,GAAG,QAAQ,kwBAAkwB;AAAA,IACjyB;AACA,IAAI,cAAc;AAAA,MAChB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,YAAY,GAAG,QAAQ,sWAAsW;AAAA,IACjZ;AACA,IAAI,cAAc;AAClB,IAAI,mBAAmB;AAAA,MACrB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,iBAAiB,GAAG,QAAQ,6bAA6b;AAAA,IAC7e;AACA,IAAI,mBAAmB;AACvB,IAAI,eAAe;AAAA,MACjB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,QAAQ,aAAa,GAAG,QAAQ,olBAAolB;AAAA,IACxoB;AACA,IAAI,eAAe;AACnB,IAAI,eAAe;AAAA,MACjB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,GAAG,QAAQ,+YAA+Y;AAAA,IAC9a;AACA,IAAIC,cAAa;AAAA,MACf,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,QAAQ,KAAK,GAAG,QAAQ,gmBAAgmB;AAAA,IAC5oB;AACA,IAAI,aAAa;AAAA,MACf,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,GAAG,QAAQ,2OAA2O;AAAA,IAC1Q;AACA,IAAI,kBAAkB;AAAA,MACpB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,iBAAiB,GAAG,QAAQ,4NAA4N;AAAA,IAC5Q;AACA,IAAI,kBAAkB;AACtB,IAAIC,eAAc;AAAA,MAChB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,IAAI,GAAG,QAAQ,uZAAuZ;AAAA,IAC1b;AACA,IAAI,iBAAiB;AAAA,MACnB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,GAAG,QAAQ,mpBAAmpB;AAAA,IAClrB;AACA,IAAI,gBAAgB;AAAA,MAClB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,UAAU,GAAG,QAAQ,0QAA0Q;AAAA,IACnT;AACA,IAAI,YAAY;AAChB,IAAI,YAAY;AAAA,MACd,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,MAAM,GAAG,QAAQ,06BAA06B;AAAA,IAC/8B;AACA,IAAI,oBAAoB;AAAA,MACtB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,mBAAmB,GAAG,QAAQ,mPAAmP;AAAA,IACrS;AACA,IAAI,oBAAoB;AACxB,IAAI,SAAS;AAAA,MACX,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,MAAM,KAAK,GAAG,QAAQ,0wBAA0wB;AAAA,IACpzB;AACA,IAAI,QAAQ;AACZ,IAAI,sBAAsB;AAAA,MACxB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,GAAG,QAAQ,0xBAA0xB;AAAA,IACzzB;AACA,IAAI,UAAU;AAAA,MACZ,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,MAAM,GAAG,QAAQ,s1CAAs1C;AAAA,IAC33C;AACA,IAAI,sBAAsB;AAAA,MACxB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,qBAAqB,GAAG,QAAQ,oMAAoM;AAAA,IACxP;AACA,IAAI,sBAAsB;AAC1B,IAAIC,oBAAmB;AAAA,MACrB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,OAAO,iBAAiB,GAAG,QAAQ,6WAA6W;AAAA,IACpa;AACA,IAAIC,oBAAmBD;AACvB,IAAI,iBAAiB;AAAA,MACnB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,GAAG,QAAQ,+jBAA+jB;AAAA,IAC9lB;AACA,IAAI,cAAc;AAAA,MAChB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,QAAQ,cAAc,GAAG,QAAQ,0WAA0W;AAAA,IAC/Z;AACA,IAAI,gBAAgB;AACpB,IAAI,iBAAiB;AAAA,MACnB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,OAAO,SAAS,GAAG,QAAQ,uWAAuW;AAAA,IACtZ;AACA,IAAI,WAAW;AACf,IAAI,qBAAqB;AAAA,MACvB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,cAAc,GAAG,QAAQ,+YAA+Y;AAAA,IAC5b;AACA,IAAI,eAAe;AACnB,IAAIE,UAAS;AAAA,MACX,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,QAAQ,QAAQ,KAAK,GAAG,QAAQ,uNAAuN;AAAA,IAC3Q;AACA,IAAI,eAAe;AAAA,MACjB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,GAAG,QAAQ,+gBAA+gB;AAAA,IAC9iB;AACA,IAAI,sBAAsB;AAAA,MACxB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,GAAG,QAAQ,wtBAAwtB;AAAA,IACvvB;AACA,IAAI,kBAAkB;AAAA,MACpB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,GAAG,QAAQ,scAAsc;AAAA,IACre;AACA,IAAI,aAAa;AAAA,MACf,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,OAAO,gBAAgB,GAAG,QAAQ,8QAA8Q;AAAA,IACpU;AACA,IAAI,iBAAiB;AACrB,IAAI,iCAAiC;AAAA,MACnC,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,YAAY,GAAG,QAAQ,maAAma;AAAA,IAC9c;AACA,IAAI,cAAc;AAClB,IAAI,YAAY;AAAA,MACd,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,GAAG,QAAQ,+bAA+b;AAAA,IAC9d;AACA,IAAI,iBAAiB;AAAA,MACnB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,GAAG,QAAQ,kyCAAkyC;AAAA,IACj0C;AACA,IAAI,gBAAgB;AAAA,MAClB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,GAAG,QAAQ,o0BAAo0B;AAAA,IACn2B;AACA,IAAIC,gBAAe;AAAA,MACjB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,QAAQ,SAAS,GAAG,QAAQ,+mBAA+mB;AAAA,IAC/pB;AACA,IAAIC,YAAWD;AACf,IAAI,aAAa;AAAA,MACf,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,GAAG,QAAQ,mcAAmc;AAAA,IACle;AACA,IAAI,eAAe;AAAA,MACjB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,GAAG,QAAQ,spBAAspB;AAAA,IACrrB;AACA,IAAI,cAAc;AAAA,MAChB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,YAAY,GAAG,QAAQ,uaAAua;AAAA,IACld;AACA,IAAI,cAAc;AAClB,IAAIE,mBAAkB;AAAA,MACpB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,GAAG,QAAQ,+TAA+T;AAAA,IAC9V;AACA,IAAI,iBAAiB;AAAA,MACnB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,GAAG,QAAQ,olBAAolB;AAAA,IACnnB;AACA,IAAIC,eAAc;AAAA,MAChB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,QAAQ,OAAO,GAAG,QAAQ,iwBAAiwB;AAAA,IAC/yB;AACA,IAAIC,WAAUD;AACd,IAAIE,oBAAmB;AAAA,MACrB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,GAAG,QAAQ,krBAAkrB;AAAA,IACjtB;AACA,IAAI,YAAY;AAAA,MACd,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,IAAI,GAAG,QAAQ,6NAA6N;AAAA,IAChQ;AACA,IAAI,iBAAiB;AAAA,MACnB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,GAAG,QAAQ,guBAAguB;AAAA,IAC/vB;AACA,IAAI,mBAAmB;AAAA,MACrB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,aAAa,GAAG,QAAQ,uvBAAuvB;AAAA,IACnyB;AACA,IAAI,eAAe;AACnB,IAAI,gBAAgB;AAAA,MAClB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,GAAG,QAAQ,s/BAAs/B;AAAA,IACrhC;AACA,IAAI,sBAAsB;AAAA,MACxB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,eAAe,GAAG,QAAQ,6QAA6Q;AAAA,IAC3T;AACA,IAAI,iBAAiB;AACrB,IAAI,WAAW;AAAA,MACb,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,MAAM,GAAG,QAAQ,oQAAoQ;AAAA,IACzS;AACA,IAAI,gBAAgB;AAAA,MAClB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,GAAG,QAAQ,ibAAib;AAAA,IAChd;AACA,IAAI,oBAAoB;AAAA,MACtB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,kBAAkB,GAAG,QAAQ,0vBAA0vB;AAAA,IAC3yB;AACA,IAAI,oBAAoB;AACxB,IAAI,yBAAyB;AAAA,MAC3B,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,GAAG,QAAQ,kZAAkZ;AAAA,IACjb;AACA,IAAI,eAAe;AAAA,MACjB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,GAAG,QAAQ,iiCAAiiC;AAAA,IAChkC;AACA,IAAI,gBAAgB;AAAA,MAClB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,MAAM,GAAG,QAAQ,iUAAiU;AAAA,IACtW;AACA,IAAI,SAAS;AACb,IAAI,eAAe;AAAA,MACjB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,aAAa,GAAG,QAAQ,mgBAAmgB;AAAA,IAC/iB;AACA,IAAI,eAAe;AACnB,IAAI,UAAU;AAAA,MACZ,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,QAAQ,WAAW,QAAQ,GAAG,QAAQ,sWAAsW;AAAA,IACha;AACA,IAAI,WAAW;AACf,IAAI,WAAW;AACf,IAAI,cAAc;AAAA,MAChB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,GAAG,GAAG,QAAQ,uMAAuM;AAAA,IACzO;AACA,IAAI,kBAAkB;AAAA,MACpB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,WAAW,GAAG,QAAQ,+lBAA+lB;AAAA,IACzoB;AACA,IAAI,aAAa;AACjB,IAAI,WAAW;AAAA,MACb,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,GAAG,QAAQ,8dAA8d;AAAA,IAC7f;AACA,IAAI,aAAa;AAAA,MACf,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,MAAM,GAAG,QAAQ,4RAA4R;AAAA,IACjU;AACA,IAAIC,cAAa;AAAA,MACf,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,OAAO,qBAAqB,GAAG,QAAQ,qQAAqQ;AAAA,IAChU;AACA,IAAIC,sBAAqBD;AACzB,IAAI,MAAM;AAAA,MACR,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,GAAG,GAAG,MAAM,mLAAmL;AAAA,IACnN;AACA,IAAI,gBAAgB;AAAA,MAClB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,GAAG,QAAQ,k2BAAk2B;AAAA,IACj4B;AACA,IAAI,iBAAiB;AAAA,MACnB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,eAAe,GAAG,QAAQ,2xBAA2xB;AAAA,IACz0B;AACA,IAAI,iBAAiB;AACrB,IAAI,iBAAiB;AAAA,MACnB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,GAAG,QAAQ,4YAA4Y;AAAA,IAC3a;AACA,IAAI,SAAS;AAAA,MACX,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,IAAI,GAAG,QAAQ,qKAAqK;AAAA,IACxM;AACA,IAAI,oBAAoB;AAAA,MACtB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,GAAG,QAAQ,sdAAsd;AAAA,IACrf;AACA,IAAI,sBAAsB;AAAA,MACxB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,GAAG,QAAQ,qmBAAqmB;AAAA,IACpoB;AACA,IAAI,aAAa;AAAA,MACf,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,GAAG,QAAQ,icAAic;AAAA,IAChe;AACA,IAAI,gBAAgB;AAAA,MAClB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,MAAM,GAAG,QAAQ,04BAA04B;AAAA,IAC/6B;AACA,IAAI,aAAa;AAAA,MACf,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,GAAG,QAAQ,kpBAAkpB;AAAA,IACjrB;AACA,IAAI,eAAe;AAAA,MACjB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,GAAG,QAAQ,sTAAsT;AAAA,IACrV;AACA,IAAI,oBAAoB;AAAA,MACtB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,GAAG,QAAQ,4lBAA4lB;AAAA,IAC3nB;AACA,IAAI,aAAa;AAAA,MACf,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,GAAG,QAAQ,6XAA6X;AAAA,IAC5Z;AACA,IAAIE,kBAAiB;AAAA,MACnB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,GAAG,QAAQ,+aAA+a;AAAA,IAC9c;AACA,IAAI,UAAU;AAAA,MACZ,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,WAAW,GAAG,QAAQ,2dAA2d;AAAA,IACrgB;AACA,IAAI,aAAa;AACjB,IAAI,cAAc;AAAA,MAChB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,MAAM,GAAG,QAAQ,idAAid;AAAA,IACtf;AACA,IAAI,aAAa;AAAA,MACf,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,GAAG,QAAQ,oyBAAoyB;AAAA,IACn0B;AACA,IAAI,uBAAuB;AAAA,MACzB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,sBAAsB,GAAG,QAAQ,gTAAgT;AAAA,IACrW;AACA,IAAI,uBAAuB;AAC3B,IAAI,UAAU;AAAA,MACZ,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,GAAG,QAAQ,w+BAAw+B;AAAA,IACvgC;AACA,IAAI,aAAa;AAAA,MACf,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,GAAG,QAAQ,+mCAA+mC;AAAA,IAC9oC;AACA,IAAI,6BAA6B;AAAA,MAC/B,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,GAAG,QAAQ,i4BAAi4B;AAAA,IACh6B;AACA,IAAI,cAAc;AAAA,MAChB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,MAAM,cAAc,GAAG,QAAQ,kZAAkZ;AAAA,IACrc;AACA,IAAI,eAAe;AACnB,IAAI,UAAU;AAAA,MACZ,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,GAAG,QAAQ,mnBAAmnB;AAAA,IAClpB;AACA,IAAIC,SAAQ;AAAA,MACV,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,MAAM,GAAG,QAAQ,6cAA6c;AAAA,IAClf;AACA,IAAI,WAAW;AAAA,MACb,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,MAAM,GAAG,QAAQ,4lBAA4lB;AAAA,IACjoB;AACA,IAAI,oBAAoB;AAAA,MACtB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,GAAG,QAAQ,8LAA8L;AAAA,IAC7N;AACA,IAAI,eAAe;AAAA,MACjB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,GAAG,QAAQ,8sBAA8sB;AAAA,IAC7uB;AACA,IAAI,iBAAiB;AAAA,MACnB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,GAAG,QAAQ,4JAA4J;AAAA,IAC3L;AACA,IAAIC,oBAAmB;AAAA,MACrB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,OAAO,mBAAmB,mBAAmB,cAAc,GAAG,QAAQ,4VAA4V;AAAA,IACtb;AACA,IAAIC,oBAAmBD;AACvB,IAAIE,oBAAmBF;AACvB,IAAIG,iBAAgBH;AACpB,IAAI,WAAW;AAAA,MACb,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,MAAM,GAAG,QAAQ,+XAA+X;AAAA,IACpa;AACA,IAAII,cAAa;AAAA,MACf,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,OAAO,WAAW,GAAG,QAAQ,giBAAgiB;AAAA,IACjlB;AACA,IAAIC,cAAaD;AACjB,IAAI,eAAe;AAAA,MACjB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,IAAI,GAAG,QAAQ,+WAA+W;AAAA,IAClZ;AACA,IAAI,OAAO;AACX,IAAI,WAAW;AAAA,MACb,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,MAAM,GAAG,QAAQ,oZAAoZ;AAAA,IACzb;AACA,IAAI,iBAAiB;AAAA,MACnB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,GAAG,QAAQ,+ZAA+Z;AAAA,IAC9b;AACA,IAAI,oBAAoB;AAAA,MACtB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,YAAY,GAAG,QAAQ,ymBAAymB;AAAA,IACppB;AACA,IAAI,cAAc;AAClB,IAAI,YAAY;AAAA,MACd,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,MAAM,GAAG,QAAQ,6gBAA6gB;AAAA,IACljB;AACA,IAAI,iBAAiB;AAAA,MACnB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,eAAe,GAAG,QAAQ,idAAid;AAAA,IAC/f;AACA,IAAI,iBAAiB;AACrB,IAAIE,cAAa;AAAA,MACf,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,GAAG,QAAQ,k4BAAk4B;AAAA,IACj6B;AACA,IAAIC,eAAc;AAAA,MAChB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,GAAG,GAAG,QAAQ,kSAAkS;AAAA,IACpU;AACA,IAAI,qBAAqB;AAAA,MACvB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,GAAG,QAAQ,mnBAAmnB;AAAA,IAClpB;AACA,IAAI,WAAW;AAAA,MACb,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,GAAG,QAAQ,6SAA6S;AAAA,IAC5U;AACA,IAAI,mBAAmB;AAAA,MACrB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,aAAa,GAAG,QAAQ,4aAA4a;AAAA,IACxd;AACA,IAAI,eAAe;AACnB,IAAIC,gBAAe;AAAA,MACjB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,OAAO,uBAAuB,GAAG,QAAQ,qQAAqQ;AAAA,IAClU;AACA,IAAIC,wBAAuBD;AAC3B,IAAI,iBAAiB;AAAA,MACnB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,GAAG,QAAQ,8fAA8f;AAAA,IAC7hB;AACA,IAAI,YAAY;AAAA,MACd,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,MAAM,GAAG,QAAQ,sqBAAsqB;AAAA,IAC3sB;AACA,IAAI,uBAAuB;AAAA,MACzB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,MAAM,GAAG,QAAQ,kZAAkZ;AAAA,IACvb;AACA,IAAI,SAAS;AACb,IAAI,sBAAsB;AAAA,MACxB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,GAAG,QAAQ,ueAAue;AAAA,IACtgB;AACA,IAAI,cAAc;AAAA,MAChB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,IAAI,GAAG,QAAQ,20CAA20C;AAAA,IAC92C;AACA,IAAI,kBAAkB;AAAA,MACpB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,QAAQ,gBAAgB,GAAG,QAAQ,uRAAuR;AAAA,IAC9U;AACA,IAAI,kBAAkB;AACtB,IAAI,oBAAoB;AAAA,MACtB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,GAAG,QAAQ,uXAAuX;AAAA,IACtZ;AACA,IAAI,UAAU;AAAA,MACZ,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,MAAM,GAAG,QAAQ,wvBAAwvB;AAAA,IAC7xB;AACA,IAAIE,cAAa;AAAA,MACf,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,QAAQ,MAAM,GAAG,QAAQ,gQAAgQ;AAAA,IAC7S;AACA,IAAI,sBAAsB;AAAA,MACxB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,GAAG,QAAQ,uoCAAuoC;AAAA,IACtqC;AACA,IAAI,WAAW;AAAA,MACb,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,GAAG,QAAQ,2NAA2N;AAAA,IAC1P;AACA,IAAI,WAAW;AAAA,MACb,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,IAAI,GAAG,QAAQ,u6CAAu6C;AAAA,IAC18C;AACA,IAAIC,mBAAkB;AAAA,MACpB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,QAAQ,YAAY,GAAG,QAAQ,gTAAgT;AAAA,IACnW;AACA,IAAIC,eAAcD;AAClB,IAAI,UAAU;AAAA,MACZ,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,OAAO,KAAK,GAAG,QAAQ,2MAA2M;AAAA,IACtP;AACA,IAAI,gBAAgB;AAAA,MAClB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,GAAG,QAAQ,u1CAAu1C;AAAA,IACt3C;AACA,IAAI,oBAAoB;AAAA,MACtB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,GAAG,QAAQ,yvBAAyvB;AAAA,IACxxB;AACA,IAAI,aAAa;AAAA,MACf,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,GAAG,QAAQ,mcAAmc;AAAA,IACle;AACA,IAAI,uBAAuB;AAAA,MACzB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,YAAY,GAAG,QAAQ,6NAA6N;AAAA,IACxQ;AACA,IAAI,cAAc;AAClB,IAAI,sBAAsB;AAAA,MACxB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,GAAG,QAAQ,2pBAA2pB;AAAA,IAC1rB;AACA,IAAI,0BAA0B;AAAA,MAC5B,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,OAAO,GAAG,QAAQ,2xBAA2xB;AAAA,IACj0B;AACA,IAAI,UAAU;AACd,IAAI,iBAAiB;AAAA,MACnB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,kBAAkB,GAAG,QAAQ,0eAA0e;AAAA,IAC3hB;AACA,IAAI,mBAAmB;AACvB,IAAI,eAAe;AAAA,MACjB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,GAAG,QAAQ,iWAAiW;AAAA,IAChY;AACA,IAAI,cAAc;AAAA,MAChB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,GAAG,QAAQ,iuBAAiuB;AAAA,IAChwB;AACA,IAAI,eAAe;AAAA,MACjB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,SAAS,GAAG,QAAQ,2eAA2e;AAAA,IACnhB;AACA,IAAI,WAAW;AACf,IAAIE,cAAa;AAAA,MACf,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,WAAW,GAAG,QAAQ,mbAAmb;AAAA,IAC7d;AACA,IAAIC,cAAaD;AACjB,IAAI,qBAAqB;AAAA,MACvB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,eAAe,GAAG,QAAQ,0pCAA0pC;AAAA,IACxsC;AACA,IAAI,iBAAiB;AACrB,IAAI,aAAa;AAAA,MACf,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,GAAG,QAAQ,odAAod;AAAA,IACnf;AACA,IAAI,uBAAuB;AAAA,MACzB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,gBAAgB,GAAG,QAAQ,6gBAA6gB;AAAA,IAC5jB;AACA,IAAI,kBAAkB;AACtB,IAAIE,gBAAe;AAAA,MACjB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,GAAG,QAAQ,qYAAqY;AAAA,IACpa;AACA,IAAI,cAAc;AAAA,MAChB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,GAAG,QAAQ,+iBAA+iB;AAAA,IAC9kB;AACA,IAAI,MAAM;AAAA,MACR,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,GAAG,GAAG,MAAM,+NAA+N;AAAA,IAC/P;AACA,IAAI,0BAA0B;AAAA,MAC5B,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,QAAQ,GAAG,QAAQ,ypBAAypB;AAAA,IAChsB;AACA,IAAI,WAAW;AACf,IAAIC,WAAU;AAAA,MACZ,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,QAAQ,OAAO,OAAO,QAAQ,YAAY,aAAa,GAAG,QAAQ,yRAAyR;AAAA,IAC/W;AACA,IAAIC,UAASD;AACb,IAAIE,aAAYF;AAChB,IAAIG,eAAcH;AAClB,IAAI,YAAY;AAAA,MACd,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,GAAG,QAAQ,yUAAyU;AAAA,IACxW;AACA,IAAI,UAAU;AAAA,MACZ,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,OAAO,GAAG,QAAQ,2cAA2c;AAAA,IACjf;AACA,IAAI,UAAU;AACd,IAAI,iBAAiB;AAAA,MACnB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,YAAY,GAAG,QAAQ,uUAAuU;AAAA,IAClX;AACA,IAAI,cAAc;AAClB,IAAI,SAAS;AAAA,MACX,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,MAAM,GAAG,QAAQ,0aAA0a;AAAA,IAC/c;AACA,IAAI,gBAAgB;AAAA,MAClB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,GAAG,QAAQ,seAAse;AAAA,IACrgB;AACA,IAAI,aAAa;AAAA,MACf,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,GAAG,QAAQ,u5BAAu5B;AAAA,IACt7B;AACA,IAAI,WAAW;AAAA,MACb,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,OAAO,cAAc,GAAG,QAAQ,kRAAkR;AAAA,IACtU;AACA,IAAI,eAAe;AACnB,IAAI,uBAAuB;AAAA,MACzB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,iBAAiB,iBAAiB,qBAAqB,GAAG,QAAQ,sSAAsS;AAAA,IAC5X;AACA,IAAI,iBAAiB;AACrB,IAAI,iBAAiB;AACrB,IAAI,uBAAuB;AAC3B,IAAI,YAAY;AAAA,MACd,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,WAAW,GAAG,QAAQ,wkBAAwkB;AAAA,IAClnB;AACA,IAAI,aAAa;AACjB,IAAI,WAAW;AAAA,MACb,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,MAAM,GAAG,QAAQ,uYAAuY;AAAA,IAC5a;AACA,IAAI,MAAM;AAAA,MACR,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,GAAG,GAAG,MAAM,sMAAsM;AAAA,IACtO;AACA,IAAI,SAAS;AAAA,MACX,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,GAAG,QAAQ,kOAAkO;AAAA,IACjQ;AACA,IAAI,kBAAkB;AAAA,MACpB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,QAAQ,SAAS,GAAG,QAAQ,mtBAAmtB;AAAA,IACnwB;AACA,IAAI,YAAY;AAChB,IAAI,kBAAkB;AAAA,MACpB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,YAAY,GAAG,QAAQ,oQAAoQ;AAAA,IAC/S;AACA,IAAI,cAAc;AAClB,IAAI,SAAS;AAAA,MACX,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,MAAM,GAAG,QAAQ,oWAAoW;AAAA,IACzY;AACA,IAAI,WAAW;AAAA,MACb,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,GAAG,QAAQ,2cAA2c;AAAA,IAC1e;AACA,IAAII,eAAc;AAAA,MAChB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,MAAM,OAAO,GAAG,QAAQ,sVAAsV;AAAA,IAClY;AACA,IAAIC,WAAUD;AACd,IAAI,mBAAmB;AAAA,MACrB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,gBAAgB,GAAG,QAAQ,maAAma;AAAA,IACld;AACA,IAAI,iBAAiB;AACrB,IAAI,iBAAiB;AAAA,MACnB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,GAAG,QAAQ,+NAA+N;AAAA,IAC9P;AACA,IAAI,gBAAgB;AAAA,MAClB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,cAAc,GAAG,QAAQ,qNAAqN;AAAA,IAClQ;AACA,IAAI,gBAAgB;AACpB,IAAI,kBAAkB;AAAA,MACpB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,MAAM,0BAA0B,GAAG,QAAQ,0UAA0U;AAAA,IACzY;AACA,IAAI,0BAA0B;AAC9B,IAAI,sBAAsB;AAAA,MACxB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,gBAAgB,GAAG,QAAQ,y1BAAy1B;AAAA,IACx4B;AACA,IAAI,kBAAkB;AACtB,IAAI,qBAAqB;AAAA,MACvB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,QAAQ,cAAc,GAAG,QAAQ,soBAAsoB;AAAA,IAC3rB;AACA,IAAI,gBAAgB;AACpB,IAAI,aAAa;AAAA,MACf,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,GAAG,QAAQ,4eAA4e;AAAA,IAC3gB;AACA,IAAI,qBAAqB;AAAA,MACvB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,GAAG,QAAQ,gnBAAgnB;AAAA,IAC/oB;AACA,IAAI,aAAa;AAAA,MACf,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,GAAG,QAAQ,siBAAsiB;AAAA,IACrkB;AACA,IAAI,cAAc;AAAA,MAChB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,OAAO,GAAG,QAAQ,iSAAiS;AAAA,IACvU;AACA,IAAI,UAAU;AACd,IAAI,UAAU;AAAA,MACZ,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,MAAM,GAAG,QAAQ,0hBAA0hB;AAAA,IAC/jB;AACA,IAAI,qBAAqB;AAAA,MACvB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,GAAG,QAAQ,odAAod;AAAA,IACnf;AACA,IAAI,kCAAkC;AAAA,MACpC,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,GAAG,QAAQ,4hBAA4hB;AAAA,IAC3jB;AACA,IAAI,eAAe;AAAA,MACjB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,GAAG,QAAQ,mPAAmP;AAAA,IAClR;AACA,IAAI,wBAAwB;AAAA,MAC1B,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,GAAG,QAAQ,knBAAknB;AAAA,IACjpB;AACA,IAAI,eAAe;AAAA,MACjB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,GAAG,QAAQ,2xBAA2xB;AAAA,IAC1zB;AACA,IAAI,cAAc;AAAA,MAChB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,GAAG,QAAQ,kUAAkU;AAAA,IACjW;AACA,IAAI,SAAS;AAAA,MACX,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,UAAU,GAAG,QAAQ,6TAA6T;AAAA,IACtW;AACA,IAAI,aAAa;AACjB,IAAI,oBAAoB;AAAA,MACtB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,MAAM,eAAe,GAAG,QAAQ,qrBAAqrB;AAAA,IACzuB;AACA,IAAI,iBAAiB;AACrB,IAAI,eAAe;AAAA,MACjB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,GAAG,QAAQ,4fAA4f;AAAA,IAC3hB;AACA,IAAI,SAAS;AAAA,MACX,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,GAAG,QAAQ,+bAA+b;AAAA,IAC9d;AACA,IAAI,yBAAyB;AAAA,MAC3B,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,GAAG,QAAQ,0mCAA0mC;AAAA,IACzoC;AACA,IAAI,yBAAyB;AAAA,MAC3B,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,sBAAsB,GAAG,QAAQ,4qBAA4qB;AAAA,IACjuB;AACA,IAAI,uBAAuB;AAC3B,IAAI,WAAW;AAAA,MACb,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,GAAG,QAAQ,8YAA8Y;AAAA,IAC7a;AACA,IAAIE,UAAS;AAAA,MACX,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,QAAQ,OAAO,OAAO,YAAY,YAAY,GAAG,QAAQ,4LAA4L;AAAA,IACzQ;AACA,IAAIC,aAAYD;AAChB,IAAIE,eAAcF;AAClB,IAAIG,eAAc;AAAA,MAChB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,OAAO,KAAK,GAAG,QAAQ,qqCAAqqC;AAAA,IAChtC;AACA,IAAI,WAAW;AAAA,MACb,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,GAAG,QAAQ,mUAAmU;AAAA,IAClW;AACA,IAAI,oBAAoB;AAAA,MACtB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,QAAQ,IAAI,GAAG,QAAQ,qhBAAqhB;AAAA,IAChkB;AACA,IAAI,aAAa;AAAA,MACf,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,GAAG,QAAQ,8iBAA8iB;AAAA,IAC7kB;AACA,IAAI,cAAc;AAAA,MAChB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,MAAM,GAAG,QAAQ,gVAAgV;AAAA,IACrX;AACA,IAAI,oBAAoB;AAAA,MACtB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,QAAQ,iBAAiB,iBAAiB,kBAAkB,GAAG,QAAQ,sSAAsS;AAAA,IACjY;AACA,IAAI,iBAAiB;AACrB,IAAI,iBAAiB;AACrB,IAAI,oBAAoB;AACxB,IAAI,WAAW;AAAA,MACb,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,MAAM,GAAG,QAAQ,6dAA6d;AAAA,IAClgB;AACA,IAAI,8BAA8B;AAAA,MAChC,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,GAAG,QAAQ,otCAAotC;AAAA,IACnvC;AACA,IAAI,oBAAoB;AAAA,MACtB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,GAAG,QAAQ,qiBAAqiB;AAAA,IACpkB;AACA,IAAI,cAAc;AAAA,MAChB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,GAAG,QAAQ,gWAAgW;AAAA,IAC/X;AACA,IAAI,eAAe;AAAA,MACjB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,GAAG,QAAQ,8kBAA8kB;AAAA,IAC7mB;AACA,IAAI,eAAe;AAAA,MACjB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,GAAG,QAAQ,2qBAA2qB;AAAA,IAC1sB;AACA,IAAI,cAAc;AAAA,MAChB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,GAAG,QAAQ,wMAAwM;AAAA,IACvO;AACA,IAAI,UAAU;AAAA,MACZ,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,MAAM,GAAG,QAAQ,+dAA+d;AAAA,IACpgB;AACA,IAAIC,cAAa;AAAA,MACf,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,QAAQ,KAAK,GAAG,QAAQ,6KAA6K;AAAA,IACzN;AACA,IAAI,YAAY;AAAA,MACd,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,GAAG,QAAQ,+cAA+c;AAAA,IAC9e;AACA,IAAI,WAAW;AAAA,MACb,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,YAAY,cAAc,GAAG,QAAQ,uzBAAuzB;AAAA,IACh3B;AACA,IAAI,WAAW;AACf,IAAI,gBAAgB;AACpB,IAAI,oBAAoB;AAAA,MACtB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,GAAG,QAAQ,6iBAA6iB;AAAA,IAC5kB;AACA,IAAI,SAAS;AAAA,MACX,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,GAAG,QAAQ,oQAAoQ;AAAA,IACnS;AACA,IAAI,SAAS;AAAA,MACX,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,GAAG,QAAQ,gPAAgP;AAAA,IAC/Q;AACA,IAAI,SAAS;AAAA,MACX,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,MAAM,GAAG,QAAQ,olBAAolB;AAAA,IACznB;AACA,IAAI,oBAAoB;AAAA,MACtB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,oBAAoB,GAAG,QAAQ,gyBAAgyB;AAAA,IACn1B;AACA,IAAI,qBAAqB;AACzB,IAAIC,qBAAoB;AAAA,MACtB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,mBAAmB,GAAG,QAAQ,yRAAyR;AAAA,IAC3U;AACA,IAAIC,qBAAoBD;AACxB,IAAI,UAAU;AAAA,MACZ,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,MAAM,GAAG,QAAQ,qgBAAqgB;AAAA,IAC1iB;AACA,IAAI,MAAM;AAAA,MACR,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,GAAG,GAAG,MAAM,oMAAoM;AAAA,IACpO;AACA,IAAI,gBAAgB;AAAA,MAClB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,eAAe,cAAc,GAAG,QAAQ,gbAAgb;AAAA,IAC5e;AACA,IAAI,eAAe;AACnB,IAAI,gBAAgB;AACpB,IAAI,YAAY;AAAA,MACd,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,GAAG,QAAQ,iPAAiP;AAAA,IAChR;AACA,IAAI,kBAAkB;AAAA,MACpB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,SAAS,GAAG,QAAQ,omBAAomB;AAAA,IAC5oB;AACA,IAAI,YAAY;AAChB,IAAI,cAAc;AAAA,MAChB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,OAAO,kBAAkB,qBAAqB,GAAG,QAAQ,kZAAkZ;AAAA,IAC/d;AACA,IAAI,kBAAkB;AACtB,IAAI,sBAAsB;AAC1B,IAAI,eAAe;AAAA,MACjB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,GAAG,QAAQ,kGAAkG;AAAA,IACjI;AACA,IAAI,aAAa;AAAA,MACf,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,IAAI,GAAG,QAAQ,y1BAAy1B;AAAA,IAC53B;AACA,IAAI,eAAe;AAAA,MACjB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,IAAI,GAAG,QAAQ,+NAA+N;AAAA,IAClQ;AACA,IAAIE,eAAc;AAAA,MAChB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,QAAQ,OAAO,iBAAiB,kBAAkB,GAAG,QAAQ,wnBAAwnB;AAAA,IACzsB;AACA,IAAIC,kBAAiBD;AACrB,IAAIE,qBAAoBF;AACxB,IAAI,iBAAiB;AAAA,MACnB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,MAAM,QAAQ,GAAG,QAAQ,2xBAA2xB;AAAA,IACx0B;AACA,IAAI,WAAW;AACf,IAAI,gBAAgB;AAAA,MAClB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,GAAG,QAAQ,2uBAA2uB;AAAA,IAC1wB;AACA,IAAI,gBAAgB;AAAA,MAClB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,GAAG,QAAQ,iuCAAiuC;AAAA,IAChwC;AACA,IAAI,UAAU;AAAA,MACZ,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,GAAG,QAAQ,yaAAya;AAAA,IACxc;AACA,IAAI,uBAAuB;AAAA,MACzB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,QAAQ,GAAG,QAAQ,+mBAA+mB;AAAA,IACtpB;AACA,IAAI,WAAW;AACf,IAAI,MAAM;AAAA,MACR,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,GAAG,GAAG,MAAM,6LAA6L;AAAA,IAC7N;AACA,IAAIG,mBAAkB;AAAA,MACpB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,QAAQ,YAAY,GAAG,QAAQ,0bAA0b;AAAA,IAC7e;AACA,IAAIC,eAAcD;AAClB,IAAI,aAAa;AAAA,MACf,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,IAAI,GAAG,QAAQ,kSAAkS;AAAA,IACrU;AACA,IAAIE,yBAAwB;AAAA,MAC1B,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,QAAQ,mBAAmB,GAAG,QAAQ,y/BAAy/B;AAAA,IACnjC;AACA,IAAIC,qBAAoBD;AACxB,IAAIE,eAAc;AAAA,MAChB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,GAAG,QAAQ,ysBAAysB;AAAA,IACxuB;AACA,IAAI,qBAAqB;AAAA,MACvB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,GAAG,QAAQ,8fAA8f;AAAA,IAC7hB;AACA,IAAI,MAAM;AAAA,MACR,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,GAAG,GAAG,MAAM,qUAAqU;AAAA,IACrW;AACA,IAAI,WAAW;AAAA,MACb,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,GAAG,QAAQ,0oBAA0oB;AAAA,IACzqB;AACA,IAAI,kBAAkB;AAAA,MACpB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,MAAM,GAAG,QAAQ,q5BAAq5B;AAAA,IAC17B;AACA,IAAI,gBAAgB;AAAA,MAClB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,oBAAoB,oBAAoB,GAAG,QAAQ,oMAAoM;AAAA,IAC3Q;AACA,IAAI,mBAAmB;AACvB,IAAI,sBAAsB;AAC1B,IAAI,cAAc;AAAA,MAChB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,cAAc,GAAG,QAAQ,qZAAqZ;AAAA,IAClc;AACA,IAAI,gBAAgB;AACpB,IAAI,UAAU;AAAA,MACZ,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,GAAG,QAAQ,2fAA2f;AAAA,IAC1hB;AACA,IAAI,cAAc;AAAA,MAChB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,GAAG,QAAQ,8pBAA8pB;AAAA,IAC7rB;AACA,IAAI,uBAAuB;AAAA,MACzB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,GAAG,QAAQ,+4BAA+4B;AAAA,IAC96B;AACA,IAAI,oBAAoB;AAAA,MACtB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,GAAG,QAAQ,uhCAAuhC;AAAA,IACtjC;AACA,IAAI,UAAU;AAAA,MACZ,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,GAAG,QAAQ,svBAAsvB;AAAA,IACrxB;AACA,IAAI,WAAW;AAAA,MACb,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,GAAG,QAAQ,scAAsc;AAAA,IACre;AACA,IAAI,aAAa;AAAA,MACf,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,GAAG,QAAQ,sZAAsZ;AAAA,IACrb;AACA,IAAI,iBAAiB;AAAA,MACnB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,eAAe,GAAG,QAAQ,8SAA8S;AAAA,IAC5V;AACA,IAAI,iBAAiB;AACrB,IAAI,aAAa;AAAA,MACf,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,GAAG,QAAQ,0dAA0d;AAAA,IACzf;AACA,IAAIC,mBAAkB;AAAA,MACpB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,gBAAgB,GAAG,QAAQ,6eAA6e;AAAA,IAC5hB;AACA,IAAIC,mBAAkBD;AACtB,IAAIE,gBAAe;AAAA,MACjB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,OAAO,uBAAuB,GAAG,QAAQ,kQAAkQ;AAAA,IAC/T;AACA,IAAIC,wBAAuBD;AAC3B,IAAI,gBAAgB;AAAA,MAClB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,GAAG,QAAQ,ybAAyb;AAAA,IACxd;AACA,IAAI,UAAU;AAAA,MACZ,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,QAAQ,OAAO,OAAO,OAAO,KAAK,SAAS,YAAY,UAAU,OAAO,GAAG,QAAQ,yRAAyR;AAAA,IAChY;AACA,IAAI,UAAU;AACd,IAAI,aAAa;AACjB,IAAI,WAAW;AACf,IAAI,UAAU;AACd,IAAI,WAAW;AAAA,MACb,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,wBAAwB,GAAG,QAAQ,+UAA+U;AAAA,IACtY;AACA,IAAI,yBAAyB;AAC7B,IAAI,YAAY;AAAA,MACd,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,IAAI,GAAG,QAAQ,+JAA+J;AAAA,IAClM;AACA,IAAI,aAAa;AAAA,MACf,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,GAAG,QAAQ,+PAA+P;AAAA,IAC9R;AACA,IAAI,cAAc;AAAA,MAChB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,MAAM,GAAG,QAAQ,+hBAA+hB;AAAA,IACpkB;AACA,IAAI,iBAAiB;AAAA,MACnB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,YAAY,GAAG,QAAQ,4WAA4W;AAAA,IACvZ;AACA,IAAI,cAAc;AAClB,IAAI,YAAY;AAAA,MACd,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,QAAQ,MAAM,GAAG,QAAQ,2SAA2S;AAAA,IACxV;AACA,IAAI,SAAS;AACb,IAAIE,eAAc;AAAA,MAChB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,QAAQ,QAAQ,OAAO,YAAY,WAAW,GAAG,QAAQ,iZAAiZ;AAAA,IAC9d;AACA,IAAIC,aAAYD;AAChB,IAAIE,cAAaF;AACjB,IAAI,mBAAmB;AAAA,MACrB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,GAAG,QAAQ,6wBAA6wB;AAAA,IAC5yB;AACA,IAAI,4BAA4B;AAAA,MAC9B,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,iBAAiB,GAAG,QAAQ,mWAAmW;AAAA,IACnZ;AACA,IAAI,mBAAmB;AACvB,IAAI,gBAAgB;AAAA,MAClB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,GAAG,QAAQ,8fAA8f;AAAA,IAC7hB;AACA,IAAI,aAAa;AAAA,MACf,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,GAAG,QAAQ,8MAA8M;AAAA,IAC7O;AACA,IAAI,eAAe;AAAA,MACjB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,GAAG,QAAQ,keAAke;AAAA,IACjgB;AACA,IAAI,SAAS;AAAA,MACX,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,WAAW,GAAG,QAAQ,iYAAiY;AAAA,IAC3a;AACA,IAAI,aAAa;AACjB,IAAI,SAAS;AAAA,MACX,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,QAAQ,OAAO,YAAY,aAAa,GAAG,QAAQ,ivBAAivB;AAAA,IACxzB;AACA,IAAI,YAAY;AAChB,IAAI,eAAe;AACnB,IAAI,wBAAwB;AAAA,MAC1B,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,GAAG,QAAQ,o6BAAo6B;AAAA,IACn8B;AACA,IAAIG,cAAa;AAAA,MACf,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,QAAQ,KAAK,GAAG,QAAQ,6YAA6Y;AAAA,IACzb;AACA,IAAI,SAAS;AAAA,MACX,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,GAAG,QAAQ,6ZAA6Z;AAAA,IAC5b;AACA,IAAI,QAAQ;AAAA,MACV,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,GAAG,QAAQ,2gBAA2gB;AAAA,IAC1iB;AACA,IAAIC,iBAAgB;AAAA,MAClB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,OAAO,cAAc,GAAG,QAAQ,6OAA6O;AAAA,IACjS;AACA,IAAIC,iBAAgBD;AACpB,IAAI,YAAY;AAAA,MACd,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,GAAG,QAAQ,urBAAurB;AAAA,IACttB;AACA,IAAI,eAAe;AAAA,MACjB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,aAAa,GAAG,QAAQ,gZAAgZ;AAAA,IAC5b;AACA,IAAI,cAAc;AAClB,IAAIE,UAAS;AAAA,MACX,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,QAAQ,IAAI,GAAG,QAAQ,iRAAiR;AAAA,IAC5T;AACA,IAAI,YAAY;AAAA,MACd,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,GAAG,QAAQ,8hBAA8hB;AAAA,IAC7jB;AACA,IAAI,sBAAsB;AAAA,MACxB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,oBAAoB,GAAG,QAAQ,+kBAA+kB;AAAA,IACloB;AACA,IAAI,sBAAsB;AAC1B,IAAI,WAAW;AAAA,MACb,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,gBAAgB,GAAG,QAAQ,6MAA6M;AAAA,IAC5P;AACA,IAAI,kBAAkB;AACtB,IAAI,cAAc;AAAA,MAChB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,MAAM,UAAU,OAAO,OAAO,GAAG,QAAQ,+VAA+V;AAAA,IAC5Z;AACA,IAAI,WAAW;AACf,IAAI,QAAQ;AACZ,IAAI,UAAU;AACd,IAAIC,sBAAqB;AAAA,MACvB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,GAAG,QAAQ,goBAAgoB;AAAA,IAC/pB;AACA,IAAI,QAAQ;AAAA,MACV,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,MAAM,GAAG,QAAQ,2TAA2T;AAAA,IAChW;AACA,IAAI,UAAU;AAAA,MACZ,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,GAAG,QAAQ,kYAAkY;AAAA,IACja;AACA,IAAIC,YAAW;AAAA,MACb,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,GAAG,QAAQ,+hBAA+hB;AAAA,IAC9jB;AACA,IAAI,iBAAiB;AAAA,MACnB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,oBAAoB,GAAG,QAAQ,0PAA0P;AAAA,IAC7S;AACA,IAAI,qBAAqB;AACzB,IAAI,gBAAgB;AAAA,MAClB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,GAAG,QAAQ,icAAic;AAAA,IAChe;AACA,IAAI,gBAAgB;AAAA,MAClB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,cAAc,GAAG,QAAQ,sTAAsT;AAAA,IACnW;AACA,IAAI,gBAAgB;AACpB,IAAIC,iBAAgB;AAAA,MAClB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,OAAO,wBAAwB,GAAG,QAAQ,kQAAkQ;AAAA,IAChU;AACA,IAAIC,yBAAwBD;AAC5B,IAAI,gBAAgB;AAAA,MAClB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,sBAAsB,GAAG,QAAQ,qmBAAqmB;AAAA,IAC1pB;AACA,IAAI,uBAAuB;AAC3B,IAAI,UAAU;AAAA,MACZ,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,GAAG,QAAQ,qjBAAqjB;AAAA,IACplB;AACA,IAAI,UAAU;AAAA,MACZ,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,QAAQ,MAAM,GAAG,QAAQ,6TAA6T;AAAA,IAC1W;AACA,IAAI,cAAc;AAAA,MAChB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,IAAI,GAAG,QAAQ,ifAAif;AAAA,IACphB;AACA,IAAI,UAAU;AAAA,MACZ,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,MAAM,GAAG,QAAQ,6iBAA6iB;AAAA,IACllB;AACA,IAAI,uBAAuB;AAAA,MACzB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,GAAG,QAAQ,yvBAAyvB;AAAA,IACxxB;AACA,IAAI,eAAe;AAAA,MACjB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,MAAM,iBAAiB,GAAG,QAAQ,yXAAyX;AAAA,IAC/a;AACA,IAAI,kBAAkB;AACtB,IAAI,qBAAqB;AAAA,MACvB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,GAAG,QAAQ,qoBAAqoB;AAAA,IACpqB;AACA,IAAI,iBAAiB;AAAA,MACnB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,GAAG,QAAQ,qaAAqa;AAAA,IACpc;AACA,IAAI,cAAc;AAAA,MAChB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,IAAI,GAAG,QAAQ,kPAAkP;AAAA,IACrR;AACA,IAAI,iBAAiB;AAAA,MACnB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,GAAG,QAAQ,w7BAAw7B;AAAA,IACv9B;AACA,IAAIE,YAAW;AAAA,MACb,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,OAAO,iBAAiB,GAAG,QAAQ,0eAA0e;AAAA,IACjiB;AACA,IAAIC,oBAAmBD;AACvB,IAAIE,gBAAe;AAAA,MACjB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,OAAO,aAAa,GAAG,QAAQ,qOAAqO;AAAA,IACxR;AACA,IAAIC,gBAAeD;AACnB,IAAIE,mBAAkB;AAAA,MACpB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,QAAQ,YAAY,GAAG,QAAQ,2dAA2d;AAAA,IAC9gB;AACA,IAAIC,eAAcD;AAClB,IAAI,SAAS;AAAA,MACX,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,GAAG,QAAQ,maAAma;AAAA,IAClc;AACA,IAAI,qBAAqB;AAAA,MACvB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,GAAG,QAAQ,ibAAib;AAAA,IAChd;AACA,IAAI,gBAAgB;AAAA,MAClB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,YAAY,gBAAgB,GAAG,QAAQ,yYAAyY;AAAA,IACpc;AACA,IAAI,YAAY;AAChB,IAAI,kBAAkB;AACtB,IAAI,UAAU;AAAA,MACZ,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,MAAM,GAAG,QAAQ,4cAA4c;AAAA,IACjf;AACA,IAAI,uBAAuB;AAAA,MACzB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,GAAG,QAAQ,gZAAgZ;AAAA,IAC/a;AACA,IAAI,eAAe;AAAA,MACjB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,MAAM,GAAG,QAAQ,y6BAAy6B;AAAA,IAC98B;AACA,IAAI,iBAAiB;AAAA,MACnB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,MAAM,eAAe,GAAG,QAAQ,+VAA+V;AAAA,IACnZ;AACA,IAAI,iBAAiB;AACrB,IAAIE,iBAAgB;AAAA,MAClB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,OAAO,cAAc,GAAG,QAAQ,qgBAAqgB;AAAA,IACzjB;AACA,IAAIC,iBAAgBD;AACpB,IAAI,aAAa;AAAA,MACf,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,GAAG,QAAQ,iTAAiT;AAAA,IAChV;AACA,IAAI,iBAAiB;AAAA,MACnB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,GAAG,QAAQ,uWAAuW;AAAA,IACtY;AACA,IAAI,8BAA8B;AAAA,MAChC,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,GAAG,QAAQ,4XAA4X;AAAA,IAC3Z;AACA,IAAI,oBAAoB;AAAA,MACtB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,QAAQ,gBAAgB,GAAG,QAAQ,ufAAuf;AAAA,IAC9iB;AACA,IAAI,kBAAkB;AACtB,IAAI,aAAa;AAAA,MACf,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,gBAAgB,GAAG,QAAQ,qhBAAqhB;AAAA,IACpkB;AACA,IAAI,iBAAiB;AACrB,IAAI,oBAAoB;AAAA,MACtB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,GAAG,QAAQ,skBAAskB;AAAA,IACrmB;AACA,IAAI,gBAAgB;AAAA,MAClB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,QAAQ,OAAO,oBAAoB,oBAAoB,GAAG,QAAQ,2SAA2S;AAAA,IACjY;AACA,IAAI,mBAAmB;AACvB,IAAI,qBAAqB;AACzB,IAAI,gBAAgB;AAAA,MAClB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,GAAG,QAAQ,+UAA+U;AAAA,IAC9W;AACA,IAAI,eAAe;AAAA,MACjB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,GAAG,QAAQ,2aAA2a;AAAA,IAC1c;AACA,IAAI,aAAa;AAAA,MACf,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,GAAG,QAAQ,keAAke;AAAA,IACjgB;AACA,IAAI,cAAc;AAAA,MAChB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,QAAQ,aAAa,GAAG,QAAQ,wZAAwZ;AAAA,IAC5c;AACA,IAAI,eAAe;AACnB,IAAI,UAAU;AAAA,MACZ,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,QAAQ,KAAK,GAAG,QAAQ,mPAAmP;AAAA,IAC/R;AACA,IAAI,WAAW;AAAA,MACb,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,QAAQ,MAAM,GAAG,QAAQ,4WAA4W;AAAA,IACzZ;AACA,IAAI,SAAS;AACb,IAAIE,eAAc;AAAA,MAChB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,MAAM,OAAO,iBAAiB,GAAG,QAAQ,ohBAAohB;AAAA,IACjlB;AACA,IAAIC,oBAAmBD;AACvB,IAAI,SAAS;AAAA,MACX,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,MAAM,GAAG,QAAQ,6aAA6a;AAAA,IACld;AACA,IAAI,kBAAkB;AAAA,MACpB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,GAAG,QAAQ,weAAwe;AAAA,IACvgB;AACA,IAAI,gBAAgB;AAAA,MAClB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,GAAG,QAAQ,6VAA6V;AAAA,IAC5X;AACA,IAAI,SAAS;AAAA,MACX,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,IAAI,GAAG,QAAQ,kmCAAkmC;AAAA,IACroC;AACA,IAAI,MAAM;AAAA,MACR,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,GAAG,GAAG,MAAM,uLAAuL;AAAA,IACvN;AACA,IAAI,iBAAiB;AAAA,MACnB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,GAAG,QAAQ,6gBAA6gB;AAAA,IAC5iB;AACA,IAAI,oBAAoB;AAAA,MACtB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,GAAG,QAAQ,ooBAAooB;AAAA,IACnqB;AACA,IAAI,iBAAiB;AAAA,MACnB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,GAAG,QAAQ,uaAAua;AAAA,IACtc;AACA,IAAI,MAAM;AAAA,MACR,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,GAAG,GAAG,MAAM,oMAAoM;AAAA,IACpO;AACA,IAAI,SAAS;AAAA,MACX,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,cAAc,GAAG,QAAQ,4mBAA4mB;AAAA,IACzpB;AACA,IAAI,gBAAgB;AACpB,IAAI,WAAW;AAAA,MACb,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,GAAG,QAAQ,0yBAA0yB;AAAA,IACz0B;AACA,IAAI,eAAe;AAAA,MACjB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,GAAG,QAAQ,8eAA8e;AAAA,IAC7gB;AACA,IAAI,eAAe;AAAA,MACjB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,GAAG,QAAQ,ifAAif;AAAA,IAChhB;AACA,IAAIE,gBAAe;AAAA,MACjB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,QAAQ,OAAO,kBAAkB,mBAAmB,GAAG,QAAQ,0TAA0T;AAAA,IAC7Y;AACA,IAAIC,mBAAkBD;AACtB,IAAIE,sBAAqBF;AACzB,IAAI,QAAQ;AAAA,MACV,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,MAAM,GAAG,QAAQ,wiBAAwiB;AAAA,IAC7kB;AACA,IAAIG,oBAAmB;AAAA,MACrB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,GAAG,QAAQ,+YAA+Y;AAAA,IAC9a;AACA,IAAI,cAAc;AAAA,MAChB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,MAAM,gBAAgB,GAAG,QAAQ,yXAAyX;AAAA,IAC9a;AACA,IAAI,iBAAiB;AACrB,IAAI,gBAAgB;AAAA,MAClB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,GAAG,QAAQ,0KAA0K;AAAA,IACzM;AACA,IAAI,cAAc;AAAA,MAChB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,QAAQ,YAAY,GAAG,QAAQ,q4BAAq4B;AAAA,IACx7B;AACA,IAAI,cAAc;AAClB,IAAI,aAAa;AAAA,MACf,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,GAAG,QAAQ,uZAAuZ;AAAA,IACtb;AACA,IAAI,cAAc;AAAA,MAChB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,GAAG,QAAQ,ugBAAugB;AAAA,IACtiB;AACA,IAAI,sBAAsB;AAAA,MACxB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,GAAG,QAAQ,2wBAA2wB;AAAA,IAC1yB;AACA,IAAI,iBAAiB;AAAA,MACnB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,QAAQ,mBAAmB,GAAG,QAAQ,wRAAwR;AAAA,IAClV;AACA,IAAI,oBAAoB;AACxB,IAAI,SAAS;AAAA,MACX,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,MAAM,GAAG,QAAQ,uTAAuT;AAAA,IAC5V;AACA,IAAI,aAAa;AAAA,MACf,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,GAAG,QAAQ,qpBAAqpB;AAAA,IACprB;AACA,IAAI,oBAAoB;AAAA,MACtB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,SAAS,GAAG,QAAQ,kgBAAkgB;AAAA,IAC1iB;AACA,IAAI,YAAY;AAChB,IAAI,aAAa;AAAA,MACf,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,GAAG,QAAQ,oyBAAoyB;AAAA,IACn0B;AACA,IAAI,mBAAmB;AAAA,MACrB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,OAAO,kBAAkB,oBAAoB,GAAG,QAAQ,mdAAmd;AAAA,IAC/hB;AACA,IAAI,kBAAkB;AACtB,IAAI,qBAAqB;AACzB,IAAI,iBAAiB;AAAA,MACnB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,eAAe,GAAG,QAAQ,kcAAkc;AAAA,IAChf;AACA,IAAI,iBAAiB;AACrB,IAAI,cAAc;AAAA,MAChB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,IAAI,GAAG,QAAQ,0KAA0K;AAAA,IAC7M;AACA,IAAI,oBAAoB;AAAA,MACtB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,GAAG,QAAQ,qjBAAqjB;AAAA,IACplB;AACA,IAAIC,oBAAmB;AAAA,MACrB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,MAAM,GAAG,QAAQ,iNAAiN;AAAA,IACtP;AACA,IAAI,uBAAuB;AAAA,MACzB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,GAAG,QAAQ,+zBAA+zB;AAAA,IAC91B;AACA,IAAI,gBAAgB;AAAA,MAClB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,YAAY,GAAG,QAAQ,sJAAsJ;AAAA,IACjM;AACA,IAAI,cAAc;AAClB,IAAI,gBAAgB;AAAA,MAClB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,GAAG,QAAQ,mLAAmL;AAAA,IAClN;AACA,IAAI,gBAAgB;AAAA,MAClB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,eAAe,GAAG,QAAQ,ydAAyd;AAAA,IACvgB;AACA,IAAI,iBAAiB;AACrB,IAAI,cAAc;AAAA,MAChB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,WAAW,GAAG,QAAQ,qWAAqW;AAAA,IAC/Y;AACA,IAAI,aAAa;AACjB,IAAI,UAAU;AAAA,MACZ,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,MAAM,GAAG,QAAQ,scAAsc;AAAA,IAC3e;AACA,IAAI,iBAAiB;AAAA,MACnB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,GAAG,QAAQ,2vBAA2vB;AAAA,IAC1xB;AACA,IAAI,0BAA0B;AAAA,MAC5B,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,GAAG,QAAQ,smBAAsmB;AAAA,IACroB;AACA,IAAI,mBAAmB;AAAA,MACrB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,GAAG,QAAQ,qjBAAqjB;AAAA,IACplB;AACA,IAAI,mBAAmB;AAAA,MACrB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,QAAQ,SAAS,GAAG,QAAQ,64BAA64B;AAAA,IAC77B;AACA,IAAI,YAAY;AAChB,IAAIC,iBAAgB;AAAA,MAClB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,QAAQ,OAAO,YAAY,GAAG,QAAQ,wTAAwT;AAAA,IAClX;AACA,IAAIC,gBAAeD;AACnB,IAAI,aAAa;AAAA,MACf,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,WAAW,GAAG,QAAQ,wdAAwd;AAAA,IAClgB;AACA,IAAI,aAAa;AACjB,IAAI,SAAS;AAAA,MACX,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,GAAG,QAAQ,qnBAAqnB;AAAA,IACppB;AACA,IAAI,eAAe;AAAA,MACjB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,GAAG,QAAQ,8VAA8V;AAAA,IAC7X;AACA,IAAI,UAAU;AAAA,MACZ,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,GAAG,QAAQ,kYAAkY;AAAA,IACja;AACA,IAAI,YAAY;AAAA,MACd,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,UAAU,GAAG,QAAQ,qTAAqT;AAAA,IAC9V;AACA,IAAI,YAAY;AAChB,IAAI,iBAAiB;AAAA,MACnB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,GAAG,QAAQ,kbAAkb;AAAA,IACjd;AACA,IAAI,uBAAuB;AAAA,MACzB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,sBAAsB,GAAG,QAAQ,kMAAkM;AAAA,IACvP;AACA,IAAI,uBAAuB;AAC3B,IAAI,YAAY;AAAA,MACd,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,GAAG,QAAQ,48BAA48B;AAAA,IAC3+B;AACA,IAAI,cAAc;AAAA,MAChB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,GAAG,QAAQ,mbAAmb;AAAA,IACld;AACA,IAAIE,wBAAuB;AAAA,MACzB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,QAAQ,kBAAkB,GAAG,QAAQ,qwBAAqwB;AAAA,IAC9zB;AACA,IAAIC,oBAAmBD;AACvB,IAAI,MAAM;AAAA,MACR,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,GAAG,GAAG,MAAM,sIAAsI;AAAA,IACtK;AACA,IAAI,uBAAuB;AAAA,MACzB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,oBAAoB,sBAAsB,GAAG,QAAQ,mkBAAmkB;AAAA,IAC5oB;AACA,IAAI,mBAAmB;AACvB,IAAI,sBAAsB;AAC1B,IAAIE,mBAAkB;AAAA,MACpB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,aAAa,GAAG,QAAQ,6eAA6e;AAAA,IACzhB;AACA,IAAIC,gBAAeD;AACnB,IAAI,UAAU;AAAA,MACZ,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,QAAQ,OAAO,eAAe,GAAG,QAAQ,8MAA8M;AAAA,IAC3Q;AACA,IAAI,iBAAiB;AACrB,IAAIE,gBAAe;AAAA,MACjB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,QAAQ,OAAO,iBAAiB,GAAG,QAAQ,oVAAoV;AAAA,IACnZ;AACA,IAAIC,mBAAkBD;AACtB,IAAI,sBAAsB;AAAA,MACxB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,GAAG,QAAQ,ixBAAixB;AAAA,IAChzB;AACA,IAAI,2BAA2B;AAAA,MAC7B,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,gBAAgB,GAAG,QAAQ,i7EAAi7E;AAAA,IACh+E;AACA,IAAI,mBAAmB;AACvB,IAAI,uBAAuB;AAAA,MACzB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,UAAU,GAAG,QAAQ,8dAA8d;AAAA,IACvgB;AACA,IAAI,aAAa;AACjB,IAAI,aAAa;AAAA,MACf,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,QAAQ,MAAM,GAAG,QAAQ,0YAA0Y;AAAA,IACvb;AACA,IAAI,cAAc;AAAA,MAChB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,GAAG,QAAQ,iXAAiX;AAAA,IAChZ;AACA,IAAI,mBAAmB;AAAA,MACrB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,GAAG,QAAQ,2QAA2Q;AAAA,IAC1S;AACA,IAAI,gBAAgB;AAAA,MAClB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,IAAI,GAAG,QAAQ,uKAAuK;AAAA,IAC1M;AACA,IAAI,kBAAkB;AAAA,MACpB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,GAAG,QAAQ,y+BAAy+B;AAAA,IACxgC;AACA,IAAI,gBAAgB;AAAA,MAClB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,oBAAoB,mBAAmB,GAAG,QAAQ,0oBAA0oB;AAAA,IAChtB;AACA,IAAI,mBAAmB;AACvB,IAAI,oBAAoB;AACxB,IAAIE,eAAc;AAAA,MAChB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,MAAM,GAAG,QAAQ,onBAAonB;AAAA,IACzpB;AACA,IAAI,sBAAsB;AAAA,MACxB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,qBAAqB,GAAG,QAAQ,shCAAshC;AAAA,IAC1kC;AACA,IAAI,sBAAsB;AAC1B,IAAI,mBAAmB;AAAA,MACrB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,GAAG,QAAQ,+dAA+d;AAAA,IAC9f;AACA,IAAIC,eAAc;AAAA,MAChB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,QAAQ,KAAK,GAAG,QAAQ,6fAA6f;AAAA,IACziB;AACA,IAAI,mBAAmB;AAAA,MACrB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,OAAO,uBAAuB,wBAAwB,GAAG,QAAQ,4fAA4f;AAAA,IACjlB;AACA,IAAI,sBAAsB;AAC1B,IAAI,yBAAyB;AAC7B,IAAI,gBAAgB;AAAA,MAClB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,GAAG,QAAQ,wcAAwc;AAAA,IACve;AACA,IAAI,YAAY;AAAA,MACd,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,GAAG,QAAQ,ktBAAktB;AAAA,IACjvB;AACA,IAAI,gBAAgB;AAAA,MAClB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,mBAAmB,qBAAqB,GAAG,QAAQ,iqBAAiqB;AAAA,IACxuB;AACA,IAAI,kBAAkB;AACtB,IAAI,qBAAqB;AACzB,IAAI,UAAU;AAAA,MACZ,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,GAAG,QAAQ,mbAAmb;AAAA,IACld;AACA,IAAI,sCAAsC;AAAA,MACxC,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,GAAG,QAAQ,wvCAAwvC;AAAA,IACvxC;AACA,IAAI,qBAAqB;AAAA,MACvB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,oBAAoB,GAAG,QAAQ,mkBAAmkB;AAAA,IACtnB;AACA,IAAI,oBAAoB;AACxB,IAAI,iBAAiB;AAAA,MACnB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,eAAe,GAAG,QAAQ,0qBAA0qB;AAAA,IACxtB;AACA,IAAI,iBAAiB;AACrB,IAAI,cAAc;AAAA,MAChB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,GAAG,QAAQ,ukBAAukB;AAAA,IACtmB;AACA,IAAI,gBAAgB;AAAA,MAClB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,GAAG,QAAQ,8gBAA8gB;AAAA,IAC7iB;AACA,IAAI,cAAc;AAAA,MAChB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,GAAG,QAAQ,odAAod;AAAA,IACnf;AACA,IAAI,oBAAoB;AAAA,MACtB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,GAAG,QAAQ,0mBAA0mB;AAAA,IACzoB;AACA,IAAI,OAAO;AAAA,MACT,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,OAAO,cAAc,QAAQ,GAAG,QAAQ,kPAAkP;AAAA,IAC9S;AACA,IAAI,eAAe;AACnB,IAAI,UAAU;AACd,IAAI,YAAY;AAAA,MACd,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,GAAG,QAAQ,qmBAAqmB;AAAA,IACpoB;AACA,IAAI,UAAU;AAAA,MACZ,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,IAAI,GAAG,QAAQ,mVAAmV;AAAA,IACtX;AACA,IAAIC,UAAS;AAAA,MACX,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,OAAO,KAAK,GAAG,QAAQ,uVAAuV;AAAA,IAClY;AACA,IAAIC,UAAS;AAAA,MACX,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,QAAQ,KAAK,GAAG,QAAQ,sTAAsT;AAAA,IAClW;AACA,IAAI,wBAAwB;AAAA,MAC1B,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,MAAM,wBAAwB,SAAS,GAAG,QAAQ,qVAAqV;AAAA,IAC3Z;AACA,IAAI,wBAAwB;AAC5B,IAAI,YAAY;AAChB,IAAI,4BAA4B;AAAA,MAC9B,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,GAAG,QAAQ,wtBAAwtB;AAAA,IACvvB;AACA,IAAI,kBAAkB;AAAA,MACpB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,QAAQ,cAAc,GAAG,QAAQ,4XAA4X;AAAA,IACjb;AACA,IAAI,gBAAgB;AACpB,IAAI,UAAU;AAAA,MACZ,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,GAAG,QAAQ,yfAAyf;AAAA,IACxhB;AACA,IAAI,kBAAkB;AAAA,MACpB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,GAAG,QAAQ,m4BAAm4B;AAAA,IACl6B;AACA,IAAI,iBAAiB;AAAA,MACnB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,GAAG,QAAQ,6vBAA6vB;AAAA,IAC5xB;AACA,IAAI,cAAc;AAAA,MAChB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,QAAQ,GAAG,QAAQ,mRAAmR;AAAA,IAC1T;AACA,IAAI,WAAW;AACf,IAAIC,WAAU;AAAA,MACZ,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,MAAM,GAAG,QAAQ,6eAA6e;AAAA,IAClhB;AACA,IAAI,YAAY;AAAA,MACd,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,GAAG,QAAQ,oiBAAoiB;AAAA,IACnkB;AACA,IAAI,MAAM;AAAA,MACR,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,GAAG,GAAG,MAAM,oYAAoY;AAAA,IACpa;AACA,IAAI,SAAS;AAAA,MACX,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,MAAM,GAAG,QAAQ,gOAAgO;AAAA,IACrQ;AACA,IAAI,gBAAgB;AAAA,MAClB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,GAAG,QAAQ,mYAAmY;AAAA,IACla;AACA,IAAI,eAAe;AAAA,MACjB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,QAAQ,WAAW,GAAG,QAAQ,4zBAA4zB;AAAA,IAC92B;AACA,IAAI,aAAa;AACjB,IAAI,eAAe;AAAA,MACjB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,GAAG,QAAQ,uYAAuY;AAAA,IACta;AACA,IAAI,YAAY;AAAA,MACd,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,IAAI,GAAG,QAAQ,iiBAAiiB;AAAA,IACpkB;AACA,IAAI,WAAW;AAAA,MACb,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,IAAI,GAAG,QAAQ,iiBAAiiB;AAAA,IACpkB;AACA,IAAI,kBAAkB;AAAA,MACpB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,QAAQ,SAAS,GAAG,QAAQ,qSAAqS;AAAA,IACrV;AACA,IAAI,YAAY;AAChB,IAAI,aAAa;AAAA,MACf,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,MAAM,GAAG,QAAQ,68DAA68D;AAAA,IACl/D;AACA,IAAI,eAAe;AAAA,MACjB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,eAAe,mBAAmB,UAAU,GAAG,QAAQ,oYAAoY;AAAA,IAC/c;AACA,IAAI,eAAe;AACnB,IAAI,mBAAmB;AACvB,IAAI,YAAY;AAChB,IAAI,YAAY;AAAA,MACd,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,QAAQ,GAAG,QAAQ,6ZAA6Z;AAAA,IACpc;AACA,IAAI,WAAW;AACf,IAAI,eAAe;AAAA,MACjB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,GAAG,QAAQ,2tBAA2tB;AAAA,IAC1vB;AACA,IAAI,gBAAgB;AAAA,MAClB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,GAAG,QAAQ,2aAA2a;AAAA,IAC1c;AACA,IAAIC,mBAAkB;AAAA,MACpB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,GAAG,QAAQ,0UAA0U;AAAA,IACzW;AACA,IAAI,MAAM;AAAA,MACR,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,GAAG,GAAG,MAAM,oRAAoR;AAAA,IACpT;AACA,IAAI,sBAAsB;AAAA,MACxB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,GAAG,QAAQ,qiBAAqiB;AAAA,IACpkB;AACA,IAAI,YAAY;AAAA,MACd,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,GAAG,QAAQ,ooBAAooB;AAAA,IACnqB;AACA,IAAI,qBAAqB;AAAA,MACvB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,GAAG,QAAQ,0cAA0c;AAAA,IACze;AACA,IAAI,eAAe;AAAA,MACjB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,GAAG,QAAQ,geAAge;AAAA,IAC/f;AACA,IAAI,iBAAiB;AAAA,MACnB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,iBAAiB,GAAG,QAAQ,yiBAAyiB;AAAA,IACzlB;AACA,IAAI,mBAAmB;AACvB,IAAI,qBAAqB;AAAA,MACvB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,MAAM,GAAG,QAAQ,yfAAyf;AAAA,IAC9hB;AACA,IAAI,kBAAkB;AAAA,MACpB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,iBAAiB,GAAG,QAAQ,2NAA2N;AAAA,IAC3Q;AACA,IAAI,kBAAkB;AACtB,IAAI,cAAc;AAAA,MAChB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,GAAG,QAAQ,4RAA4R;AAAA,IAC3T;AACA,IAAI,eAAe;AAAA,MACjB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,GAAG,QAAQ,wTAAwT;AAAA,IACvV;AACA,IAAI,gBAAgB;AAAA,MAClB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,cAAc,GAAG,QAAQ,2jBAA2jB;AAAA,IACxmB;AACA,IAAI,gBAAgB;AACpB,IAAI,aAAa;AAAA,MACf,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,GAAG,QAAQ,0aAA0a;AAAA,IACzc;AACA,IAAI,gBAAgB;AAAA,MAClB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,GAAG,QAAQ,6VAA6V;AAAA,IAC5X;AACA,IAAI,UAAU;AAAA,MACZ,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,GAAG,QAAQ,2SAA2S;AAAA,IAC1U;AACA,IAAI,aAAa;AAAA,MACf,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,GAAG,QAAQ,goBAAgoB;AAAA,IAC/pB;AACA,IAAI,aAAa;AAAA,MACf,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,MAAM,MAAM,MAAM,KAAK,GAAG,QAAQ,6fAA6f;AAAA,IACnjB;AACA,IAAI,QAAQ;AACZ,IAAI,QAAQ;AAAA,MACV,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,GAAG,QAAQ,mwBAAmwB;AAAA,IAClyB;AACA,IAAI,0BAA0B;AAAA,MAC5B,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,UAAU,GAAG,QAAQ,6ZAA6Z;AAAA,IACtc;AACA,IAAI,YAAY;AAChB,IAAI,oBAAoB;AAAA,MACtB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,GAAG,QAAQ,4lBAA4lB;AAAA,IAC3nB;AACA,IAAI,gBAAgB;AAAA,MAClB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,GAAG,QAAQ,okCAAokC;AAAA,IACnmC;AACA,IAAI,UAAU;AAAA,MACZ,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,GAAG,QAAQ,0UAA0U;AAAA,IACzW;AACA,IAAI,aAAa;AAAA,MACf,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,MAAM,GAAG,QAAQ,uQAAuQ;AAAA,IAC5S;AACA,IAAI,kBAAkB;AAAA,MACpB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,QAAQ,OAAO,GAAG,QAAQ,oLAAoL;AAAA,IAClO;AACA,IAAI,UAAU;AACd,IAAI,WAAW;AAAA,MACb,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,GAAG,QAAQ,+aAA+a;AAAA,IAC9c;AACA,IAAI,UAAU;AAAA,MACZ,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,GAAG,QAAQ,svBAAsvB;AAAA,IACrxB;AACA,IAAI,mBAAmB;AAAA,MACrB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,GAAG,QAAQ,k9BAAk9B;AAAA,IACj/B;AACA,IAAI,iBAAiB;AAAA,MACnB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,GAAG,QAAQ,otBAAotB;AAAA,IACnvB;AACA,IAAIC,oBAAmB;AAAA,MACrB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,QAAQ,aAAa,GAAG,QAAQ,83BAA83B;AAAA,IACl7B;AACA,IAAIC,gBAAeD;AACnB,IAAI,iBAAiB;AAAA,MACnB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,GAAG,QAAQ,qVAAqV;AAAA,IACpX;AACA,IAAI,wBAAwB;AAAA,MAC1B,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,GAAG,QAAQ,ixBAAixB;AAAA,IAChzB;AACA,IAAI,aAAa;AAAA,MACf,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,GAAG,QAAQ,uIAAuI;AAAA,IACtK;AACA,IAAI,eAAe;AAAA,MACjB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,GAAG,QAAQ,u0CAAu0C;AAAA,IACt2C;AACA,IAAI,0BAA0B;AAAA,MAC5B,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,QAAQ,yBAAyB,cAAc,GAAG,QAAQ,mgBAAmgB;AAAA,IACjlB;AACA,IAAI,uBAAuB;AAC3B,IAAI,gBAAgB;AACpB,IAAI,iBAAiB;AAAA,MACnB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,GAAG,QAAQ,qbAAqb;AAAA,IACpd;AACA,IAAI,qBAAqB;AAAA,MACvB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,GAAG,QAAQ,keAAke;AAAA,IACjgB;AACA,IAAI,YAAY;AAAA,MACd,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,IAAI,GAAG,QAAQ,4MAA4M;AAAA,IAC/O;AACA,IAAI,wBAAwB;AAAA,MAC1B,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,MAAM,UAAU,GAAG,QAAQ,gbAAgb;AAAA,IAC/d;AACA,IAAI,aAAa;AACjB,IAAI,aAAa;AAAA,MACf,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,QAAQ,eAAe,GAAG,QAAQ,4rBAA4rB;AAAA,IAClvB;AACA,IAAI,iBAAiB;AACrB,IAAI,iBAAiB;AAAA,MACnB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,GAAG,QAAQ,myCAAmyC;AAAA,IACl0C;AACA,IAAI,aAAa;AAAA,MACf,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,OAAO,KAAK,GAAG,MAAM,4XAA4X;AAAA,IACra;AACA,IAAI,gBAAgB;AAAA,MAClB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,QAAQ,WAAW,WAAW,GAAG,QAAQ,gZAAgZ;AAAA,IAC7c;AACA,IAAI,YAAY;AAChB,IAAI,aAAa;AACjB,IAAI,eAAe;AAAA,MACjB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,GAAG,QAAQ,saAAsa;AAAA,IACrc;AACA,IAAIE,kBAAiB;AAAA,MACnB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,QAAQ,WAAW,GAAG,QAAQ,opBAAopB;AAAA,IACtsB;AACA,IAAIC,cAAaD;AACjB,IAAI,oBAAoB;AAAA,MACtB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,mBAAmB,GAAG,QAAQ,2bAA2b;AAAA,IAC7e;AACA,IAAI,oBAAoB;AACxB,IAAI,SAAS;AAAA,MACX,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,GAAG,QAAQ,qUAAqU;AAAA,IACpW;AACA,IAAI,aAAa;AAAA,MACf,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,GAAG,QAAQ,0XAA0X;AAAA,IACzZ;AACA,IAAI,eAAe;AAAA,MACjB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,GAAG,QAAQ,8vCAA8vC;AAAA,IAC7xC;AACA,IAAIE,aAAY;AAAA,MACd,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,GAAG,QAAQ,msBAAmsB;AAAA,IACluB;AACA,IAAI,aAAa;AAAA,MACf,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,GAAG,QAAQ,uxBAAuxB;AAAA,IACtzB;AACA,IAAI,iBAAiB;AAAA,MACnB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,YAAY,GAAG,QAAQ,gRAAgR;AAAA,IAC3T;AACA,IAAI,cAAc;AAClB,IAAI,YAAY;AAAA,MACd,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,GAAG,QAAQ,uKAAuK;AAAA,IACtM;AACA,IAAI,YAAY;AAAA,MACd,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,QAAQ,WAAW,GAAG,QAAQ,igBAAigB;AAAA,IACnjB;AACA,IAAI,aAAa;AACjB,IAAI,iBAAiB;AAAA,MACnB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,QAAQ,QAAQ,GAAG,QAAQ,8ZAA8Z;AAAA,IAC7c;AACA,IAAI,WAAW;AACf,IAAI,mBAAmB;AAAA,MACrB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,aAAa,GAAG,QAAQ,weAAwe;AAAA,IACphB;AACA,IAAI,eAAe;AACnB,IAAI,sBAAsB;AAAA,MACxB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,GAAG,QAAQ,yZAAyZ;AAAA,IACxb;AACA,IAAI,mBAAmB;AAAA,MACrB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,iBAAiB,GAAG,QAAQ,o5BAAo5B;AAAA,IACp8B;AACA,IAAI,mBAAmB;AACvB,IAAI,aAAa;AAAA,MACf,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,qBAAqB,GAAG,QAAQ,y8BAAy8B;AAAA,IAC7/B;AACA,IAAI,sBAAsB;AAC1B,IAAI,qBAAqB;AAAA,MACvB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,GAAG,QAAQ,25BAA25B;AAAA,IAC17B;AACA,IAAI,kBAAkB;AAAA,MACpB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,GAAG,QAAQ,mcAAmc;AAAA,IACle;AACA,IAAI,eAAe;AAAA,MACjB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,GAAG,QAAQ,2IAA2I;AAAA,IAC1K;AACA,IAAI,UAAU;AAAA,MACZ,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,MAAM,GAAG,QAAQ,qsBAAqsB;AAAA,IAC1uB;AACA,IAAI,gBAAgB;AAAA,MAClB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,GAAG,QAAQ,6RAA6R;AAAA,IAC5T;AACA,IAAI,aAAa;AAAA,MACf,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,GAAG,QAAQ,osBAAosB;AAAA,IACnuB;AACA,IAAI,SAAS;AAAA,MACX,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,GAAG,QAAQ,qjBAAqjB;AAAA,IACplB;AACA,IAAI,eAAe;AAAA,MACjB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,GAAG,QAAQ,iiBAAiiB;AAAA,IAChkB;AACA,IAAI,cAAc;AAAA,MAChB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,qBAAqB,GAAG,QAAQ,2oBAA2oB;AAAA,IAC/rB;AACA,IAAI,qBAAqB;AACzB,IAAI,iBAAiB;AAAA,MACnB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,GAAG,QAAQ,m0BAAm0B;AAAA,IACl2B;AACA,IAAI,gBAAgB;AAAA,MAClB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,qBAAqB,uBAAuB,GAAG,QAAQ,woBAAwoB;AAAA,IACntB;AACA,IAAI,oBAAoB;AACxB,IAAI,uBAAuB;AAC3B,IAAIC,kBAAiB;AAAA,MACnB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,QAAQ,UAAU,GAAG,QAAQ,sXAAsX;AAAA,IACva;AACA,IAAIC,aAAYD;AAChB,IAAI,SAAS;AAAA,MACX,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,GAAG,QAAQ,gdAAgd;AAAA,IAC/e;AACA,IAAI,iBAAiB;AAAA,MACnB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,IAAI,GAAG,QAAQ,46CAA46C;AAAA,IAC/8C;AACA,IAAI,mBAAmB;AAAA,MACrB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,WAAW,GAAG,QAAQ,8YAA8Y;AAAA,IACxb;AACA,IAAI,aAAa;AACjB,IAAI,SAAS;AAAA,MACX,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,IAAI,GAAG,QAAQ,+ZAA+Z;AAAA,IAClc;AACA,IAAI,YAAY;AAAA,MACd,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,IAAI,GAAG,QAAQ,uMAAuM;AAAA,IAC1O;AACA,IAAI,cAAc;AAAA,MAChB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,GAAG,QAAQ,qlBAAqlB;AAAA,IACpnB;AACA,IAAI,cAAc;AAAA,MAChB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,MAAM,OAAO,GAAG,QAAQ,4nBAA4nB;AAAA,IACxqB;AACA,IAAI,UAAU;AACd,IAAI,gBAAgB;AAAA,MAClB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,GAAG,QAAQ,0mBAA0mB;AAAA,IACzoB;AACA,IAAI,MAAM;AAAA,MACR,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,GAAG,GAAG,MAAM,iLAAiL;AAAA,IACjN;AACA,IAAI,cAAc;AAAA,MAChB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,GAAG,QAAQ,qkBAAqkB;AAAA,IACpmB;AACA,IAAI,UAAU;AAAA,MACZ,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,GAAG,QAAQ,46BAA46B;AAAA,IAC38B;AACA,IAAI,0BAA0B;AAAA,MAC5B,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,eAAe,GAAG,QAAQ,wjBAAwjB;AAAA,IACtmB;AACA,IAAI,iBAAiB;AACrB,IAAI,iBAAiB;AAAA,MACnB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,GAAG,QAAQ,wiCAAwiC;AAAA,IACvkC;AACA,IAAI,WAAW;AAAA,MACb,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,GAAG,QAAQ,oaAAoa;AAAA,IACnc;AACA,IAAI,cAAc;AAAA,MAChB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,OAAO,kBAAkB,kBAAkB,GAAG,QAAQ,mSAAmS;AAAA,IAC7W;AACA,IAAI,iBAAiB;AACrB,IAAI,mBAAmB;AACvB,IAAI,cAAc;AAAA,MAChB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,IAAI,GAAG,QAAQ,8NAA8N;AAAA,IACjQ;AACA,IAAI,cAAc;AAAA,MAChB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,GAAG,QAAQ,y6BAAy6B;AAAA,IACx8B;AACA,IAAI,gBAAgB;AAAA,MAClB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,GAAG,QAAQ,+WAA+W;AAAA,IAC9Y;AACA,IAAI,QAAQ;AAAA,MACV,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,GAAG,QAAQ,kqBAAkqB;AAAA,IACjsB;AACA,IAAI,iBAAiB;AAAA,MACnB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,YAAY,UAAU,GAAG,QAAQ,mUAAmU;AAAA,IACxX;AACA,IAAI,YAAY;AAChB,IAAI,YAAY;AAChB,IAAI,MAAM;AAAA,MACR,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,GAAG,GAAG,MAAM,sNAAsN;AAAA,IACtP;AACA,IAAIE,qBAAoB;AAAA,MACtB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,cAAc,GAAG,QAAQ,uiBAAuiB;AAAA,IACplB;AACA,IAAIC,iBAAgBD;AACpB,IAAI,+BAA+B;AAAA,MACjC,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,cAAc,GAAG,QAAQ,4aAA4a;AAAA,IACzd;AACA,IAAI,gBAAgB;AACpB,IAAI,UAAU;AAAA,MACZ,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,GAAG,QAAQ,0hCAA0hC;AAAA,IACzjC;AACA,IAAI,QAAQ;AAAA,MACV,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,MAAM,GAAG,QAAQ,gQAAgQ;AAAA,IACrS;AACA,IAAI,sBAAsB;AAAA,MACxB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,GAAG,QAAQ,svBAAsvB;AAAA,IACrxB;AACA,IAAI,kBAAkB;AAAA,MACpB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,QAAQ,SAAS,GAAG,QAAQ,6pBAA6pB;AAAA,IAC7sB;AACA,IAAI,YAAY;AAChB,IAAI,sBAAsB;AAAA,MACxB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,qBAAqB,GAAG,QAAQ,gMAAgM;AAAA,IACpP;AACA,IAAI,sBAAsB;AAC1B,IAAI,cAAc;AAAA,MAChB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,GAAG,QAAQ,ipBAAipB;AAAA,IAChrB;AACA,IAAIE,uBAAsB;AAAA,MACxB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,QAAQ,iBAAiB,GAAG,QAAQ,i9BAAi9B;AAAA,IACzgC;AACA,IAAIC,mBAAkBD;AACtB,IAAI,SAAS;AAAA,MACX,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,GAAG,QAAQ,qjBAAqjB;AAAA,IACplB;AACA,IAAI,mBAAmB;AAAA,MACrB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,qBAAqB,GAAG,QAAQ,w+BAAw+B;AAAA,IAC5hC;AACA,IAAI,qBAAqB;AACzB,IAAI,aAAa;AAAA,MACf,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,MAAM,GAAG,QAAQ,kYAAkY;AAAA,IACva;AACA,IAAI,UAAU;AAAA,MACZ,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,MAAM,GAAG,QAAQ,gQAAgQ;AAAA,IACrS;AACA,IAAI,gBAAgB;AAAA,MAClB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,GAAG,QAAQ,+bAA+b;AAAA,IAC9d;AACA,IAAI,YAAY;AAAA,MACd,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,QAAQ,QAAQ,GAAG,QAAQ,wvBAAwvB;AAAA,IACvyB;AACA,IAAI,WAAW;AACf,IAAI,cAAc;AAAA,MAChB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,GAAG,QAAQ,qWAAqW;AAAA,IACpY;AACA,IAAI,iBAAiB;AAAA,MACnB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,GAAG,QAAQ,q2BAAq2B;AAAA,IACp4B;AACA,IAAI,UAAU;AAAA,MACZ,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,MAAM,GAAG,QAAQ,4sBAA4sB;AAAA,IACjvB;AACA,IAAI,SAAS;AAAA,MACX,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,OAAO,OAAO,KAAK,GAAG,MAAM,0MAA0M;AAAA,IAC1P;AACA,IAAI,QAAQ;AACZ,IAAIE,UAAS;AAAA,MACX,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,GAAG,QAAQ,gSAAgS;AAAA,IAC/T;AACA,IAAIC,eAAc;AAAA,MAChB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,IAAI,GAAG,QAAQ,ibAAib;AAAA,IACpd;AACA,IAAI,oBAAoB;AAAA,MACtB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,GAAG,QAAQ,48CAA48C;AAAA,IAC3+C;AACA,IAAI,gBAAgB;AAAA,MAClB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,GAAG,QAAQ,+fAA+f;AAAA,IAC9hB;AACA,IAAI,QAAQ;AAAA,MACV,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,MAAM,GAAG,QAAQ,8PAA8P;AAAA,IACnS;AACA,IAAIC,gBAAe;AAAA,MACjB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,OAAO,aAAa,GAAG,QAAQ,qTAAqT;AAAA,IACxW;AACA,IAAIC,gBAAeD;AACnB,IAAI,oBAAoB;AAAA,MACtB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,UAAU,GAAG,QAAQ,0VAA0V;AAAA,IACnY;AACA,IAAI,YAAY;AAChB,IAAI,QAAQ;AAAA,MACV,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,GAAG,QAAQ,gWAAgW;AAAA,IAC/X;AACA,IAAI,SAAS;AAAA,MACX,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,GAAG,QAAQ,4dAA4d;AAAA,IAC3f;AACA,IAAI,oBAAoB;AAAA,MACtB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,GAAG,QAAQ,+dAA+d;AAAA,IAC9f;AACA,IAAI,cAAc;AAAA,MAChB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,gBAAgB,eAAe,QAAQ,GAAG,QAAQ,85BAA85B;AAAA,IACp+B;AACA,IAAI,gBAAgB;AACpB,IAAI,eAAe;AACnB,IAAI,WAAW;AACf,IAAI,qBAAqB;AAAA,MACvB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,MAAM,sBAAsB,wBAAwB,MAAM,GAAG,QAAQ,4YAA4Y;AAAA,IACre;AACA,IAAI,qBAAqB;AACzB,IAAI,uBAAuB;AAC3B,IAAI,SAAS;AACb,IAAI,YAAY;AAAA,MACd,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,SAAS,GAAG,QAAQ,ycAAyc;AAAA,IACjf;AACA,IAAI,WAAW;AACf,IAAI,eAAe;AAAA,MACjB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,MAAM,GAAG,QAAQ,8LAA8L;AAAA,IACnO;AACA,IAAI,uBAAuB;AAAA,MACzB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,mBAAmB,kBAAkB,GAAG,QAAQ,okBAAokB;AAAA,IACxoB;AACA,IAAI,kBAAkB;AACtB,IAAI,mBAAmB;AACvB,IAAI,cAAc;AAAA,MAChB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,GAAG,QAAQ,uKAAuK;AAAA,IACtM;AACA,IAAI,MAAM;AAAA,MACR,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,GAAG,GAAG,MAAM,8PAA8P;AAAA,IAC9R;AACA,IAAI,gBAAgB;AAAA,MAClB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,UAAU,GAAG,QAAQ,ghBAAghB;AAAA,IACzjB;AACA,IAAI,YAAY;AAChB,IAAI,aAAa;AAAA,MACf,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,GAAG,QAAQ,4jBAA4jB;AAAA,IAC3lB;AACA,IAAI,aAAa;AAAA,MACf,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,GAAG,QAAQ,weAAwe;AAAA,IACvgB;AACA,IAAI,cAAc;AAAA,MAChB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,eAAe,GAAG,QAAQ,usBAAusB;AAAA,IACrvB;AACA,IAAI,gBAAgB;AACpB,IAAI,iBAAiB;AAAA,MACnB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,GAAG,QAAQ,wnBAAwnB;AAAA,IACvpB;AACA,IAAIE,cAAa;AAAA,MACf,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,GAAG,QAAQ,2hBAA2hB;AAAA,IAC1jB;AACA,IAAI,SAAS;AAAA,MACX,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,MAAM,GAAG,QAAQ,qdAAqd;AAAA,IAC1f;AACA,IAAI,YAAY;AAAA,MACd,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,MAAM,MAAM,IAAI,GAAG,QAAQ,m3BAAm3B;AAAA,IACl6B;AACA,IAAIC,kBAAiB;AAAA,MACnB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,WAAW,GAAG,QAAQ,6ZAA6Z;AAAA,IACvc;AACA,IAAIC,cAAaD;AACjB,IAAI,gBAAgB;AAAA,MAClB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,gBAAgB,eAAe,GAAG,QAAQ,i+BAAi+B;AAAA,IAC/hC;AACA,IAAI,gBAAgB;AACpB,IAAI,iBAAiB;AACrB,IAAI,WAAW;AAAA,MACb,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,GAAG,QAAQ,k4CAAk4C;AAAA,IACj6C;AACA,IAAI,cAAc;AAAA,MAChB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,GAAG,QAAQ,olCAAolC;AAAA,IACnnC;AACA,IAAI,cAAc;AAAA,MAChB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,GAAG,QAAQ,oyBAAoyB;AAAA,IACn0B;AACA,IAAI,eAAe;AAAA,MACjB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,GAAG,QAAQ,+YAA+Y;AAAA,IAC9a;AACA,IAAI,UAAU;AAAA,MACZ,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,QAAQ,GAAG,QAAQ,0nCAA0nC;AAAA,IACjqC;AACA,IAAI,WAAW;AACf,IAAIE,gBAAe;AAAA,MACjB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,gBAAgB,GAAG,QAAQ,stBAAstB;AAAA,IACrwB;AACA,IAAIC,kBAAiBD;AACrB,IAAI,cAAc;AAAA,MAChB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,QAAQ,cAAc,GAAG,QAAQ,2lBAA2lB;AAAA,IAChpB;AACA,IAAI,iBAAiB;AACrB,IAAI,aAAa;AAAA,MACf,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,GAAG,QAAQ,scAAsc;AAAA,IACre;AACA,IAAI,gBAAgB;AAAA,MAClB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,MAAM,SAAS,GAAG,QAAQ,4kBAA4kB;AAAA,IAC1nB;AACA,IAAI,YAAY;AAChB,IAAIE,cAAa;AAAA,MACf,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,GAAG,QAAQ,2tBAA2tB;AAAA,IAC1vB;AACA,IAAI,wBAAwB;AAAA,MAC1B,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,cAAc,GAAG,QAAQ,mmBAAmmB;AAAA,IAChpB;AACA,IAAI,gBAAgB;AACpB,IAAI,cAAc;AAAA,MAChB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,GAAG,QAAQ,ohBAAohB;AAAA,IACnjB;AACA,IAAIC,cAAa;AAAA,MACf,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,GAAG,QAAQ,iiBAAiiB;AAAA,IAChkB;AACA,IAAI,aAAa;AAAA,MACf,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,YAAY,GAAG,QAAQ,2nBAA2nB;AAAA,IACtqB;AACA,IAAI,eAAe;AACnB,IAAI,UAAU;AAAA,MACZ,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,GAAG,QAAQ,shBAAshB;AAAA,IACrjB;AACA,IAAI,WAAW;AAAA,MACb,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,IAAI,GAAG,QAAQ,4lBAA4lB;AAAA,IAC/nB;AACA,IAAI,SAAS;AAAA,MACX,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,MAAM,KAAK,GAAG,QAAQ,kQAAkQ;AAAA,IAC5S;AACA,IAAI,QAAQ;AACZ,IAAI,QAAQ;AAAA,MACV,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,GAAG,QAAQ,2UAA2U;AAAA,IAC1W;AACA,IAAI,eAAe;AAAA,MACjB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,GAAG,QAAQ,qoBAAqoB;AAAA,IACpqB;AACA,IAAI,qBAAqB;AAAA,MACvB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,GAAG,QAAQ,ghBAAghB;AAAA,IAC/iB;AACA,IAAI,oBAAoB;AAAA,MACtB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,MAAM,qBAAqB,qBAAqB,yBAAyB,MAAM,GAAG,QAAQ,6WAA6W;AAAA,IAC3d;AACA,IAAI,oBAAoB;AACxB,IAAI,oBAAoB;AACxB,IAAI,wBAAwB;AAC5B,IAAI,SAAS;AACb,IAAIC,eAAc;AAAA,MAChB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,QAAQ,OAAO,GAAG,QAAQ,qoBAAqoB;AAAA,IACnrB;AACA,IAAIC,WAAUD;AACd,IAAI,UAAU;AAAA,MACZ,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,GAAG,QAAQ,yhBAAyhB;AAAA,IACxjB;AACA,IAAI,MAAM;AAAA,MACR,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,GAAG,GAAG,MAAM,yNAAyN;AAAA,IACzP;AACA,IAAI,YAAY;AAAA,MACd,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,QAAQ,UAAU,GAAG,QAAQ,iWAAiW;AAAA,IAClZ;AACA,IAAI,YAAY;AAChB,IAAI,2BAA2B;AAAA,MAC7B,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,GAAG,QAAQ,wdAAwd;AAAA,IACvf;AACA,IAAI,YAAY;AAAA,MACd,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,GAAG,QAAQ,gjBAAgjB;AAAA,IAC/kB;AACA,IAAI,SAAS;AAAA,MACX,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,GAAG,QAAQ,65BAA65B;AAAA,IAC57B;AACA,IAAI,iBAAiB;AAAA,MACnB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,MAAM,GAAG,QAAQ,ifAAif;AAAA,IACthB;AACA,IAAI,SAAS;AACb,IAAI,sBAAsB;AAAA,MACxB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,GAAG,QAAQ,+jBAA+jB;AAAA,IAC9lB;AACA,IAAI,YAAY;AAAA,MACd,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,GAAG,QAAQ,kVAAkV;AAAA,IACjX;AACA,IAAI,4BAA4B;AAAA,MAC9B,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,GAAG,QAAQ,+kBAA+kB;AAAA,IAC9mB;AACA,IAAI,cAAc;AAAA,MAChB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,GAAG,QAAQ,0ZAA0Z;AAAA,IACzb;AACA,IAAI,SAAS;AAAA,MACX,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,UAAU,aAAa,GAAG,QAAQ,6bAA6b;AAAA,IACnf;AACA,IAAI,UAAU;AACd,IAAI,eAAe;AACnB,IAAI,qBAAqB;AAAA,MACvB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,iBAAiB,GAAG,QAAQ,6rBAA6rB;AAAA,IAC7uB;AACA,IAAI,kBAAkB;AACtB,IAAI,iBAAiB;AAAA,MACnB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,YAAY,GAAG,QAAQ,isBAAisB;AAAA,IAC5uB;AACA,IAAI,cAAc;AAClB,IAAI,kBAAkB;AAAA,MACpB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,iBAAiB,GAAG,QAAQ,mPAAmP;AAAA,IACnS;AACA,IAAI,kBAAkB;AACtB,IAAI,gBAAgB;AAAA,MAClB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,MAAM,GAAG,QAAQ,oXAAoX;AAAA,IACzZ;AACA,IAAI,aAAa;AAAA,MACf,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,GAAG,QAAQ,uYAAuY;AAAA,IACta;AACA,IAAI,QAAQ;AAAA,MACV,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,MAAM,GAAG,QAAQ,isBAAisB;AAAA,IACtuB;AACA,IAAI,WAAW;AAAA,MACb,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,QAAQ,eAAe,GAAG,QAAQ,umBAAumB;AAAA,IAC7pB;AACA,IAAI,iBAAiB;AACrB,IAAI,aAAa;AAAA,MACf,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,GAAG,QAAQ,ssBAAssB;AAAA,IACruB;AACA,IAAI,QAAQ;AAAA,MACV,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,MAAM,GAAG,QAAQ,mNAAmN;AAAA,IACxP;AACA,IAAI,oBAAoB;AAAA,MACtB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,GAAG,QAAQ,uYAAuY;AAAA,IACta;AACA,IAAI,aAAa;AAAA,MACf,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,qBAAqB,GAAG,QAAQ,6NAA6N;AAAA,IACjR;AACA,IAAI,qBAAqB;AACzB,IAAI,gBAAgB;AAAA,MAClB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,QAAQ,QAAQ,MAAM,GAAG,QAAQ,kTAAkT;AAAA,IACvW;AACA,IAAI,oBAAoB;AAAA,MACtB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,GAAG,QAAQ,mfAAmf;AAAA,IAClhB;AACA,IAAI,cAAc;AAAA,MAChB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,OAAO,GAAG,QAAQ,4sBAA4sB;AAAA,IAClvB;AACA,IAAI,UAAU;AACd,IAAI,eAAe;AAAA,MACjB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,GAAG,QAAQ,ofAAof;AAAA,IACnhB;AACA,IAAI,oBAAoB;AAAA,MACtB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,GAAG,QAAQ,mlBAAmlB;AAAA,IAClnB;AACA,IAAI,aAAa;AAAA,MACf,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,GAAG,QAAQ,6jBAA6jB;AAAA,IAC5lB;AACA,IAAI,kBAAkB;AAAA,MACpB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,UAAU,GAAG,QAAQ,qQAAqQ;AAAA,IAC9S;AACA,IAAI,aAAa;AACjB,IAAI,eAAe;AAAA,MACjB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,GAAG,QAAQ,msBAAmsB;AAAA,IACluB;AACA,IAAI,WAAW;AAAA,MACb,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,MAAM,GAAG,QAAQ,mdAAmd;AAAA,IACxf;AACA,IAAI,cAAc;AAAA,MAChB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,iBAAiB,GAAG,QAAQ,2oBAA2oB;AAAA,IAC3rB;AACA,IAAI,kBAAkB;AACtB,IAAIE,iBAAgB;AAAA,MAClB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,IAAI,GAAG,QAAQ,qaAAqa;AAAA,IACxc;AACA,IAAI,oCAAoC;AAAA,MACtC,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,GAAG,QAAQ,sxDAAsxD;AAAA,IACrzD;AACA,IAAI,2BAA2B;AAAA,MAC7B,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,eAAe,GAAG,QAAQ,0bAA0b;AAAA,IACxe;AACA,IAAI,iBAAiB;AACrB,IAAI,0BAA0B;AAAA,MAC5B,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,GAAG,QAAQ,sjBAAsjB;AAAA,IACrlB;AACA,IAAIC,kBAAiB;AAAA,MACnB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,QAAQ,WAAW,GAAG,QAAQ,2hBAA2hB;AAAA,IAC7kB;AACA,IAAIC,cAAaD;AACjB,IAAI,gBAAgB;AAAA,MAClB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,IAAI,GAAG,QAAQ,6iBAA6iB;AAAA,IAChlB;AACA,IAAI,OAAO;AACX,IAAI,eAAe;AAAA,MACjB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,QAAQ,GAAG,QAAQ,kmBAAkmB;AAAA,IACzoB;AACA,IAAI,WAAW;AACf,IAAI,iBAAiB;AAAA,MACnB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,SAAS,GAAG,QAAQ,g7BAAg7B;AAAA,IACx9B;AACA,IAAI,WAAW;AACf,IAAI,mBAAmB;AAAA,MACrB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,GAAG,QAAQ,wWAAwW;AAAA,IACvY;AACA,IAAI,YAAY;AAAA,MACd,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,QAAQ,GAAG,QAAQ,+fAA+f;AAAA,IACtiB;AACA,IAAI,WAAW;AACf,IAAIE,eAAc;AAAA,MAChB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,IAAI,GAAG,QAAQ,+rBAA+rB;AAAA,IACluB;AACA,IAAI,kBAAkB;AAAA,MACpB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,GAAG,QAAQ,g9BAAg9B;AAAA,IAC/+B;AACA,IAAIC,aAAY;AAAA,MACd,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,MAAM,GAAG,QAAQ,mQAAmQ;AAAA,IACxS;AACA,IAAI,WAAW;AAAA,MACb,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,KAAK,GAAG,QAAQ,4ZAA4Z;AAAA,IAChc;AACA,IAAI,mBAAmB;AAAA,MACrB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,GAAG,QAAQ,qsBAAqsB;AAAA,IACpuB;AACA,IAAI,gBAAgB;AAAA,MAClB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,MAAM,cAAc,GAAG,QAAQ,8VAA8V;AAAA,IACjZ;AACA,IAAI,gBAAgB;AACpB,IAAI,SAAS;AAAA,MACX,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,GAAG,QAAQ,4WAA4W;AAAA,IAC3Y;AACA,IAAI,iBAAiB;AAAA,MACnB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,QAAQ,eAAe,GAAG,QAAQ,0JAA0J;AAAA,IAChN;AACA,IAAI,iBAAiB;AACrB,IAAIC,YAAW;AAAA,MACb,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,MAAM,MAAM,MAAM,KAAK,GAAG,QAAQ,sHAAsH;AAAA,IAC5K;AACA,IAAIC,cAAa;AAAA,MACf,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,QAAQ,MAAM,GAAG,QAAQ,2TAA2T;AAAA,IACxW;AACA,IAAIC,UAASD;AACb,IAAI,iBAAiB;AAAA,MACnB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,GAAG,QAAQ,8mBAA8mB;AAAA,IAC7oB;AACA,IAAI,YAAY;AAAA,MACd,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,IAAI,GAAG,QAAQ,0KAA0K;AAAA,IAC7M;AACA,IAAIE,eAAc;AAAA,MAChB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,QAAQ,OAAO,GAAG,QAAQ,oVAAoV;AAAA,IAClY;AACA,IAAIC,WAAUD;AACd,IAAI,qBAAqB;AAAA,MACvB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,GAAG,QAAQ,k1BAAk1B;AAAA,IACj3B;AACA,IAAI,WAAW;AAAA,MACb,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,OAAO,GAAG,GAAG,QAAQ,+LAA+L;AAAA,IACxO;AACA,IAAI,aAAa;AAAA,MACf,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,GAAG,QAAQ,uhBAAuhB;AAAA,IACtjB;AACA,IAAI,cAAc;AAAA,MAChB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,GAAG,QAAQ,+bAA+b;AAAA,IAC9d;AACA,IAAI,oBAAoB;AAAA,MACtB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,QAAQ,eAAe,UAAU,YAAY,GAAG,QAAQ,waAAwa;AAAA,IACpf;AACA,IAAI,SAAS;AACb,IAAI,gBAAgB;AACpB,IAAI,WAAW;AACf,IAAI,eAAe;AACnB,IAAI,QAAQ;AAAA,MACV,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,GAAG,QAAQ,2iBAA2iB;AAAA,IAC1kB;AACA,IAAI,cAAc;AAAA,MAChB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,GAAG,QAAQ,wdAAwd;AAAA,IACvf;AACA,IAAI,iBAAiB;AAAA,MACnB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,GAAG,QAAQ,iqCAAiqC;AAAA,IAChsC;AACA,IAAI,yBAAyB;AAAA,MAC3B,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,GAAG,QAAQ,scAAsc;AAAA,IACre;AACA,IAAI,aAAa;AAAA,MACf,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,GAAG,QAAQ,gsBAAgsB;AAAA,IAC/tB;AACA,IAAI,kBAAkB;AAAA,MACpB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,GAAG,QAAQ,4kBAA4kB;AAAA,IAC3mB;AACA,IAAI,eAAe;AAAA,MACjB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,MAAM,GAAG,QAAQ,y+BAAy+B;AAAA,IAC9gC;AACA,IAAI,UAAU;AAAA,MACZ,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,MAAM,GAAG,QAAQ,+ZAA+Z;AAAA,IACpc;AACA,IAAI,cAAc;AAAA,MAChB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,MAAM,GAAG,QAAQ,qVAAqV;AAAA,IAC1X;AACA,IAAI,iBAAiB;AAAA,MACnB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,GAAG,QAAQ,+iBAA+iB;AAAA,IAC9kB;AACA,IAAI,UAAU;AAAA,MACZ,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,MAAM,GAAG,QAAQ,ohBAAohB;AAAA,IACzjB;AACA,IAAI,MAAM;AAAA,MACR,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,GAAG,GAAG,MAAM,gJAAgJ;AAAA,IAChL;AACA,IAAI,cAAc;AAAA,MAChB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,GAAG,QAAQ,s0BAAs0B;AAAA,IACr2B;AACA,IAAI,iBAAiB;AAAA,MACnB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,QAAQ,WAAW,GAAG,QAAQ,0oBAA0oB;AAAA,IAC5rB;AACA,IAAI,cAAc;AAClB,IAAI,OAAO;AAAA,MACT,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,MAAM,GAAG,QAAQ,shCAAshC;AAAA,IAC3jC;AACA,IAAI,gBAAgB;AAAA,MAClB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,GAAG,QAAQ,6kDAA6kD;AAAA,IAC5mD;AACA,IAAI,uBAAuB;AAAA,MACzB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,GAAG,QAAQ,iVAAiV;AAAA,IAChX;AACA,IAAI,cAAc;AAAA,MAChB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,WAAW,GAAG,QAAQ,0oCAA0oC;AAAA,IACprC;AACA,IAAI,aAAa;AACjB,IAAI,0BAA0B;AAAA,MAC5B,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,GAAG,QAAQ,giBAAgiB;AAAA,IAC/jB;AACA,IAAI,UAAU;AAAA,MACZ,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,IAAI,GAAG,QAAQ,sOAAsO;AAAA,IACzQ;AACA,IAAI,eAAe;AAAA,MACjB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,iBAAiB,aAAa,mBAAmB,GAAG,QAAQ,miBAAmiB;AAAA,IACnnB;AACA,IAAI,iBAAiB;AACrB,IAAI,aAAa;AACjB,IAAI,qBAAqB;AACzB,IAAI,cAAc;AAAA,MAChB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,GAAG,QAAQ,4hBAA4hB;AAAA,IAC3jB;AACA,IAAI,aAAa;AAAA,MACf,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,GAAG,QAAQ,oTAAoT;AAAA,IACnV;AACA,IAAI,gBAAgB;AAAA,MAClB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,KAAK,oBAAoB,GAAG,QAAQ,kVAAkV;AAAA,IAC1Y;AACA,IAAI,qBAAqB;AACzB,IAAI,YAAY;AAAA,MACd,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,QAAQ,OAAO,aAAa,GAAG,QAAQ,oVAAoV;AAAA,IAC/Y;AACA,IAAI,eAAe;AACnB,IAAI,qBAAqB;AAAA,MACvB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,GAAG,QAAQ,ylBAAylB;AAAA,IACxnB;AACA,IAAI,YAAY;AAAA,MACd,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,GAAG,QAAQ,2fAA2f;AAAA,IAC1hB;AACA,IAAI,aAAa;AAAA,MACf,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,UAAU,GAAG,QAAQ,g4BAAg4B;AAAA,IACz6B;AACA,IAAI,YAAY;AAChB,IAAI,cAAc;AAAA,MAChB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,GAAG,QAAQ,qPAAqP;AAAA,IACpR;AACA,IAAI,UAAU;AAAA,MACZ,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,GAAG,QAAQ,s0BAAs0B;AAAA,IACr2B;AACA,IAAI,eAAe;AAAA,MACjB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,IAAI,GAAG,QAAQ,icAAic;AAAA,IACpe;AACA,IAAI,mBAAmB;AAAA,MACrB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,eAAe,GAAG,QAAQ,ynBAAynB;AAAA,IACvqB;AACA,IAAI,iBAAiB;AACrB,IAAI,cAAc;AAAA,MAChB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,IAAI,GAAG,QAAQ,8NAA8N;AAAA,IACjQ;AACA,IAAI,gBAAgB;AAAA,MAClB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,gBAAgB,GAAG,QAAQ,0LAA0L;AAAA,IACzO;AACA,IAAI,iBAAiB;AACrB,IAAI,0BAA0B;AAAA,MAC5B,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,GAAG,QAAQ,mgBAAmgB;AAAA,IACliB;AACA,IAAI,eAAe;AAAA,MACjB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,GAAG,QAAQ,ujBAAujB;AAAA,IACtlB;AACA,IAAI,sBAAsB;AAAA,MACxB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,OAAO,GAAG,QAAQ,yyBAAyyB;AAAA,IAC/0B;AACA,IAAI,UAAU;AACd,IAAI,WAAW;AAAA,MACb,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,GAAG,QAAQ,8fAA8f;AAAA,IAC7hB;AACA,IAAI,SAAS;AAAA,MACX,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,SAAS,GAAG,QAAQ,2SAA2S;AAAA,IACnV;AACA,IAAI,YAAY;AAChB,IAAI,iBAAiB;AAAA,MACnB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,eAAe,GAAG,QAAQ,0oBAA0oB;AAAA,IACxrB;AACA,IAAI,iBAAiB;AACrB,IAAI,YAAY;AAAA,MACd,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,GAAG,QAAQ,gtCAAgtC;AAAA,IAC/uC;AACA,IAAI,eAAe;AAAA,MACjB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,GAAG,QAAQ,2vBAA2vB;AAAA,IAC1xB;AACA,IAAI,cAAc;AAAA,MAChB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,IAAI,GAAG,QAAQ,qbAAqb;AAAA,IACxd;AACA,IAAI,eAAe;AAAA,MACjB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,GAAG,QAAQ,gpBAAgpB;AAAA,IAC/qB;AACA,IAAIE,mBAAkB;AAAA,MACpB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,QAAQ,YAAY,GAAG,QAAQ,ojBAAojB;AAAA,IACvmB;AACA,IAAIC,eAAcD;AAClB,IAAI,uBAAuB;AAAA,MACzB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,GAAG,QAAQ,gnBAAgnB;AAAA,IAC/oB;AACA,IAAI,UAAU;AAAA,MACZ,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,GAAG,QAAQ,0mBAA0mB;AAAA,IACzoB;AACA,IAAI,aAAa;AAAA,MACf,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,iBAAiB,GAAG,QAAQ,iVAAiV;AAAA,IACjY;AACA,IAAI,kBAAkB;AACtB,IAAI,WAAW;AAAA,MACb,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,GAAG,QAAQ,+TAA+T;AAAA,IAC9V;AACA,IAAI,kBAAkB;AAAA,MACpB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,GAAG,QAAQ,0RAA0R;AAAA,IACzT;AACA,IAAIE,kBAAiB;AAAA,MACnB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,GAAG,QAAQ,8NAA8N;AAAA,IAC7P;AACA,IAAI,wBAAwB;AAAA,MAC1B,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,GAAG,QAAQ,ijBAAijB;AAAA,IAChlB;AACA,IAAI,eAAe;AAAA,MACjB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,GAAG,QAAQ,21BAA21B;AAAA,IAC13B;AACA,IAAI,gBAAgB;AAAA,MAClB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,GAAG,QAAQ,syBAAsyB;AAAA,IACr0B;AACA,IAAI,aAAa;AAAA,MACf,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,qBAAqB,GAAG,QAAQ,0NAA0N;AAAA,IAC9Q;AACA,IAAI,qBAAqB;AACzB,IAAI,uBAAuB;AAAA,MACzB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,UAAU,GAAG,QAAQ,qbAAqb;AAAA,IAC9d;AACA,IAAI,aAAa;AACjB,IAAI,uBAAuB;AAAA,MACzB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,WAAW,GAAG,QAAQ,8cAA8c;AAAA,IACxf;AACA,IAAI,cAAc;AAClB,IAAI,oBAAoB;AAAA,MACtB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,OAAO,cAAc,iBAAiB,GAAG,QAAQ,8NAA8N;AAAA,IACnS;AACA,IAAI,eAAe;AACnB,IAAI,mBAAmB;AACvB,IAAI,eAAe;AAAA,MACjB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,KAAK,mBAAmB,GAAG,QAAQ,6UAA6U;AAAA,IACpY;AACA,IAAI,oBAAoB;AACxB,IAAI,WAAW;AAAA,MACb,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,MAAM,OAAO,cAAc,GAAG,QAAQ,kZAAkZ;AAAA,IAC5c;AACA,IAAI,eAAe;AACnB,IAAI,iBAAiB;AAAA,MACnB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,WAAW,GAAG,QAAQ,0RAA0R;AAAA,IACpU;AACA,IAAI,aAAa;AACjB,IAAIC,cAAa;AAAA,MACf,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,GAAI,GAAG,QAAQ,gwCAAgwC;AAAA,IACnyC;AACA,IAAI,WAAW;AAAA,MACb,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,MAAM,GAAG,QAAQ,2gBAA2gB;AAAA,IAChjB;AACA,IAAI,cAAc;AAAA,MAChB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,IAAI,GAAG,QAAQ,iZAAiZ;AAAA,IACpb;AACA,IAAI,UAAU;AAAA,MACZ,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,IAAI,GAAG,QAAQ,iRAAiR;AAAA,IACpT;AACA,IAAI,kBAAkB;AAAA,MACpB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,MAAM,GAAG,QAAQ,ofAAof;AAAA,IACzhB;AACA,IAAIC,qBAAoB;AAAA,MACtB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,QAAQ,kBAAkB,GAAG,QAAQ,ogBAAogB;AAAA,IAC7jB;AACA,IAAIC,oBAAmBD;AACvB,IAAI,cAAc;AAAA,MAChB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,OAAO,GAAG,QAAQ,msBAAmsB;AAAA,IACzuB;AACA,IAAI,UAAU;AACd,IAAI,cAAc;AAAA,MAChB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,GAAG,QAAQ,0jBAA0jB;AAAA,IACzlB;AACA,IAAI,YAAY;AAAA,MACd,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,KAAK,GAAG,MAAM,gjBAAgjB;AAAA,IACllB;AACA,IAAI,UAAU;AAAA,MACZ,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,MAAM,GAAG,QAAQ,sZAAsZ;AAAA,IAC3b;AACA,IAAI,YAAY;AAAA,MACd,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,GAAG,QAAQ,uXAAuX;AAAA,IACtZ;AACA,IAAI,eAAe;AAAA,MACjB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,uBAAuB,GAAG,QAAQ,sbAAsb;AAAA,IAC5e;AACA,IAAI,uBAAuB;AAC3B,IAAIE,iBAAgB;AAAA,MAClB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,QAAQ,SAAS,GAAG,QAAQ,6TAA6T;AAAA,IAC7W;AACA,IAAIC,aAAYD;AAChB,IAAI,gBAAgB;AAAA,MAClB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,QAAQ,GAAG,QAAQ,8dAA8d;AAAA,IACrgB;AACA,IAAI,WAAW;AACf,IAAIE,eAAc;AAAA,MAChB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,QAAQ,YAAY,GAAG,QAAQ,8FAA8F;AAAA,IACjJ;AACA,IAAIC,eAAcD;AAClB,IAAIE,iBAAgB;AAAA,MAClB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,GAAG,QAAQ,mtBAAmtB;AAAA,IAClvB;AACA,IAAI,SAAS;AAAA,MACX,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,MAAM,GAAG,QAAQ,8+BAA8+B;AAAA,IACnhC;AACA,IAAI,MAAM;AAAA,MACR,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,EAAE,GAAG,MAAM,kPAAkP;AAAA,IACjR;AACA,IAAI,gBAAgB;AAAA,MAClB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,cAAc,GAAG,QAAQ,kZAAkZ;AAAA,IAC/b;AACA,IAAI,gBAAgB;AACpB,IAAI,kBAAkB;AAAA,MACpB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,GAAG,QAAQ,+WAA+W;AAAA,IAC9Y;AACA,IAAI,iBAAiB;AAAA,MACnB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,QAAQ,WAAW,MAAM,GAAG,QAAQ,qrBAAqrB;AAAA,IAC7uB;AACA,IAAI,YAAY;AAChB,IAAI,SAAS;AACb,IAAI,gBAAgB;AAAA,MAClB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,QAAQ,GAAG,QAAQ,oaAAoa;AAAA,IAC3c;AACA,IAAI,WAAW;AACf,IAAI,aAAa;AAAA,MACf,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,QAAQ,MAAM,GAAG,QAAQ,6bAA6b;AAAA,IAC1e;AACA,IAAI,eAAe;AAAA,MACjB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,GAAG,QAAQ,kfAAkf;AAAA,IACjhB;AACA,IAAI,UAAU;AAAA,MACZ,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,GAAG,QAAQ,ssBAAssB;AAAA,IACruB;AACA,IAAI,eAAe;AAAA,MACjB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,SAAS,GAAG,QAAQ,6RAA6R;AAAA,IACrU;AACA,IAAI,YAAY;AAChB,IAAI,wBAAwB;AAAA,MAC1B,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,GAAG,QAAQ,qfAAqf;AAAA,IACphB;AACA,IAAI,WAAW;AAAA,MACb,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,GAAG,QAAQ,orBAAorB;AAAA,IACntB;AACA,IAAI,WAAW;AAAA,MACb,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,MAAM,GAAG,QAAQ,k8BAAk8B;AAAA,IACv+B;AACA,IAAI,iBAAiB;AAAA,MACnB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,MAAM,aAAa,GAAG,QAAQ,4aAA4a;AAAA,IAC9d;AACA,IAAIC,gBAAe;AACnB,IAAI,SAAS;AAAA,MACX,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,OAAO,mBAAmB,iBAAiB,GAAG,QAAQ,6qBAA6qB;AAAA,IACvvB;AACA,IAAI,mBAAmB;AACvB,IAAI,mBAAmB;AACvB,IAAI,kBAAkB;AAAA,MACpB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,cAAc,GAAG,QAAQ,saAAsa;AAAA,IACnd;AACA,IAAI,gBAAgB;AACpB,IAAI,WAAW;AAAA,MACb,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,WAAW,GAAG,QAAQ,sZAAsZ;AAAA,IAChc;AACA,IAAI,aAAa;AACjB,IAAI,kBAAkB;AAAA,MACpB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,GAAG,QAAQ,osBAAosB;AAAA,IACnuB;AACA,IAAI,iBAAiB;AAAA,MACnB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,GAAG,QAAQ,4LAA4L;AAAA,IAC3N;AACA,IAAI,gBAAgB;AAAA,MAClB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,kBAAkB,iBAAiB,GAAG,QAAQ,ysBAAysB;AAAA,IAC3wB;AACA,IAAI,iBAAiB;AACrB,IAAI,kBAAkB;AACtB,IAAI,cAAc;AAAA,MAChB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,GAAG,QAAQ,wjBAAwjB;AAAA,IACvlB;AACA,IAAI,gBAAgB;AAAA,MAClB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,cAAc,GAAG,QAAQ,iJAAiJ;AAAA,IAC9L;AACA,IAAI,gBAAgB;AACpB,IAAI,iBAAiB;AAAA,MACnB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,eAAe,GAAG,QAAQ,8PAA8P;AAAA,IAC5S;AACA,IAAI,iBAAiB;AACrB,IAAI,qBAAqB;AAAA,MACvB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,kBAAkB,GAAG,QAAQ,qcAAqc;AAAA,IACtf;AACA,IAAI,mBAAmB;AACvB,IAAI,oBAAoB;AAAA,MACtB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,UAAU,GAAG,QAAQ,6PAA6P;AAAA,IACtS;AACA,IAAI,YAAY;AAChB,IAAI,QAAQ;AAAA,MACV,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,MAAM,GAAG,QAAQ,mjBAAmjB;AAAA,IACxlB;AACA,IAAI,iBAAiB;AAAA,MACnB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,GAAG,QAAQ,qVAAqV;AAAA,IACpX;AACA,IAAI,gBAAgB;AAAA,MAClB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,GAAG,QAAQ,4qBAA4qB;AAAA,IAC3sB;AACA,IAAI,QAAQ;AAAA,MACV,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,GAAG,QAAQ,2fAA2f;AAAA,IAC1hB;AACA,IAAI,oBAAoB;AAAA,MACtB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,GAAG,QAAQ,yqBAAyqB;AAAA,IACxsB;AACA,IAAI,WAAW;AAAA,MACb,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,GAAG,QAAQ,gQAAgQ;AAAA,IAC/R;AACA,IAAI,gBAAgB;AAAA,MAClB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,QAAQ,iBAAiB,MAAM,GAAG,QAAQ,skCAAskC;AAAA,IACpoC;AACA,IAAI,iBAAiB;AACrB,IAAI,SAAS;AACb,IAAI,aAAa;AAAA,MACf,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,GAAG,QAAQ,mtBAAmtB;AAAA,IAClvB;AACA,IAAI,SAAS;AAAA,MACX,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,GAAG,QAAQ,wQAAwQ;AAAA,IACvS;AACA,IAAI,uBAAuB;AAAA,MACzB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,GAAG,QAAQ,mdAAmd;AAAA,IAClf;AACA,IAAIC,iBAAgB;AAAA,MAClB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,QAAQ,SAAS,GAAG,QAAQ,oUAAoU;AAAA,IACpX;AACA,IAAIC,aAAYD;AAChB,IAAI,gBAAgB;AAAA,MAClB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,GAAG,QAAQ,geAAge;AAAA,IAC/f;AACA,IAAI,sBAAsB;AAAA,MACxB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,GAAG,QAAQ,6uBAA6uB;AAAA,IAC5wB;AACA,IAAI,sBAAsB;AAAA,MACxB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,GAAG,QAAQ,0oBAA0oB;AAAA,IACzqB;AACA,IAAI,QAAQ;AAAA,MACV,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,GAAG,QAAQ,6dAA6d;AAAA,IAC5f;AACA,IAAI,UAAU;AAAA,MACZ,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,GAAG,QAAQ,utCAAutC;AAAA,IACtvC;AACA,IAAI,iBAAiB;AAAA,MACnB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,WAAW,GAAG,QAAQ,8SAA8S;AAAA,IACxV;AACA,IAAI,aAAa;AACjB,IAAI,qBAAqB;AAAA,MACvB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,GAAG,QAAQ,iiBAAiiB;AAAA,IAChkB;AACA,IAAI,oBAAoB;AAAA,MACtB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,MAAM,eAAe,GAAG,QAAQ,ybAAyb;AAAA,IAC7e;AACA,IAAI,gBAAgB;AACpB,IAAI,qBAAqB;AAAA,MACvB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,GAAG,QAAQ,ylBAAylB;AAAA,IACxnB;AACA,IAAI,iBAAiB;AAAA,MACnB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,KAAK,OAAO,YAAY,GAAG,QAAQ,wfAAwf;AAAA,IAC/iB;AACA,IAAI,QAAQ;AACZ,IAAI,cAAc;AAClB,IAAI,eAAe;AAAA,MACjB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,MAAM,GAAG,QAAQ,qmBAAqmB;AAAA,IAC1oB;AACA,IAAI,eAAe;AAAA,MACjB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,aAAa,GAAG,QAAQ,0QAA0Q;AAAA,IACtT;AACA,IAAI,eAAe;AACnB,IAAI,YAAY;AAAA,MACd,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,MAAM,GAAG,QAAQ,giBAAgiB;AAAA,IACrkB;AACA,IAAI,aAAa;AAAA,MACf,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,GAAG,QAAQ,utCAAutC;AAAA,IACtvC;AACA,IAAIE,oBAAmB;AAAA,MACrB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,eAAe,GAAG,QAAQ,oeAAoe;AAAA,IAClhB;AACA,IAAIC,iBAAgBD;AACpB,IAAI,yBAAyB;AAAA,MAC3B,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,kBAAkB,GAAG,QAAQ,6gBAA6gB;AAAA,IAC9jB;AACA,IAAI,oBAAoB;AACxB,IAAI,mBAAmB;AAAA,MACrB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,GAAG,QAAQ,2qBAA2qB;AAAA,IAC1sB;AACA,IAAIE,eAAc;AAAA,MAChB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,GAAG,QAAQ,+aAA+a;AAAA,IAC9c;AACA,IAAI,mBAAmB;AAAA,MACrB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,GAAG,QAAQ,qSAAqS;AAAA,IACpU;AACA,IAAI,WAAW;AAAA,MACb,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,GAAG,QAAQ,gXAAgX;AAAA,IAC/Y;AACA,IAAI,mBAAmB;AAAA,MACrB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,cAAc,GAAG,QAAQ,0/BAA0/B;AAAA,IACviC;AACA,IAAI,gBAAgB;AACpB,IAAI,UAAU;AAAA,MACZ,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,MAAM,GAAG,QAAQ,qbAAqb;AAAA,IAC1d;AACA,IAAI,SAAS;AAAA,MACX,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,GAAG,QAAQ,0hBAA0hB;AAAA,IACzjB;AACA,IAAI,eAAe;AAAA,MACjB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,GAAG,QAAQ,qnBAAqnB;AAAA,IACppB;AACA,IAAI,iBAAiB;AAAA,MACnB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,GAAG,QAAQ,8hBAA8hB;AAAA,IAC7jB;AACA,IAAI,UAAU;AAAA,MACZ,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,iBAAiB,SAAS,GAAG,QAAQ,2gCAA2gC;AAAA,IACpkC;AACA,IAAI,iBAAiB;AACrB,IAAI,YAAY;AAChB,IAAI,YAAY;AAAA,MACd,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,GAAG,QAAQ,2kBAA2kB;AAAA,IAC1mB;AACA,IAAI,kBAAkB;AAAA,MACpB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,GAAG,QAAQ,kUAAkU;AAAA,IACjW;AACA,IAAI,SAAS;AAAA,MACX,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,MAAM,GAAG,QAAQ,gkBAAgkB;AAAA,IACrmB;AACA,IAAI,cAAc;AAAA,MAChB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,iBAAiB,GAAG,QAAQ,kfAAkf;AAAA,IACliB;AACA,IAAI,kBAAkB;AACtB,IAAI,aAAa;AAAA,MACf,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,WAAW,GAAG,QAAQ,uJAAuJ;AAAA,IACjM;AACA,IAAI,aAAa;AACjB,IAAI,eAAe;AAAA,MACjB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,GAAG,QAAQ,wVAAwV;AAAA,IACvX;AACA,IAAI,uBAAuB;AAAA,MACzB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,YAAY,GAAG,QAAQ,gMAAgM;AAAA,IAC3O;AACA,IAAI,cAAc;AAClB,IAAI,sBAAsB;AAAA,MACxB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,kBAAkB,GAAG,QAAQ,stBAAstB;AAAA,IACvwB;AACA,IAAI,mBAAmB;AACvB,IAAI,WAAW;AAAA,MACb,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,QAAQ,cAAc,GAAG,QAAQ,mNAAmN;AAAA,IACxQ;AACA,IAAI,gBAAgB;AACpB,IAAIC,eAAc;AAAA,MAChB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,OAAO,GAAG,QAAQ,2PAA2P;AAAA,IACjS;AACA,IAAIC,WAAUD;AACd,IAAI,iBAAiB;AAAA,MACnB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,GAAG,QAAQ,wwBAAwwB;AAAA,IACvyB;AACA,IAAI,iBAAiB;AAAA,MACnB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,QAAQ,eAAe,GAAG,QAAQ,iZAAiZ;AAAA,IACvc;AACA,IAAI,iBAAiB;AACrB,IAAI,YAAY;AAAA,MACd,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,MAAM,GAAG,QAAQ,iSAAiS;AAAA,IACtU;AACA,IAAIE,iBAAgB;AAAA,MAClB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,GAAG,QAAQ,ulBAAulB;AAAA,IACtnB;AACA,IAAIC,gBAAe;AAAA,MACjB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,GAAG,GAAG,QAAQ,0TAA0T;AAAA,IAC5V;AACA,IAAI,gBAAgB;AAAA,MAClB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,GAAG,QAAQ,0qBAA0qB;AAAA,IACzsB;AACA,IAAI,wBAAwB;AAAA,MAC1B,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM,CAAC,KAAK,KAAK,CAAC,GAAG,QAAQ,waAAwa;AAAA,IACvc;AACA,IAAIC,SAAQ;AAAA,MACV;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA,eAAenR;AAAA,MACf,eAAeC;AAAA,MACf;AAAA,MACA,iBAAiBC;AAAA,MACjB,YAAYC;AAAA,MACZ,QAAQC;AAAA,MACR;AAAA,MACA;AAAA,MACA;AAAA,MACA,SAASC;AAAA,MACT,iBAAiBC;AAAA,MACjB;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA,iBAAiBC;AAAA,MACjB;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA,aAAaC;AAAA,MACb;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA,YAAYC;AAAA,MACZ;AAAA,MACA,mBAAmBC;AAAA,MACnB,mBAAmBC;AAAA,MACnB;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA,SAASC;AAAA,MACT;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA,QAAQC;AAAA,MACR;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA,WAAWC;AAAA,MACX,cAAcC;AAAA,MACd;AAAA,MACA,aAAaC;AAAA,MACb,SAASC;AAAA,MACT;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA,gBAAgBC;AAAA,MAChB,eAAeC;AAAA,MACf;AAAA,MACA;AAAA,MACA,eAAeC;AAAA,MACf;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA,cAAcC;AAAA,MACd;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA,cAAcC;AAAA,MACd;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA,eAAeC;AAAA,MACf,eAAeC;AAAA,MACf;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA,aAAaC;AAAA,MACb,OAAOC;AAAA,MACP;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA,cAAcC;AAAA,MACd,eAAeC;AAAA,MACf;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA,cAAcC;AAAA,MACd,QAAQC;AAAA,MACR;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA,wBAAwBC;AAAA,MACxB,oBAAoBC;AAAA,MACpB;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA,UAAUC;AAAA,MACV,aAAaC;AAAA,MACb;AAAA,MACA;AAAA,MACA;AAAA,MACA,iBAAiBC;AAAA,MACjB,aAAaC;AAAA,MACb;AAAA,MACA;AAAA,MACA,OAAOC;AAAA,MACP;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA,eAAeC;AAAA,MACf,WAAWC;AAAA,MACX;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA,mBAAmBC;AAAA,MACnB,eAAeC;AAAA,MACf;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA,cAAcC;AAAA,MACd,cAAcC;AAAA,MACd;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA,gBAAgBC;AAAA,MAChB,YAAYC;AAAA,MACZ;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA,cAAcC;AAAA,MACd;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA,iBAAiBC;AAAA,MACjB,aAAaC;AAAA,MACb,eAAeC;AAAA,MACf,QAAQC;AAAA,MACR;AAAA,MACA;AAAA,MACA,qBAAqBC;AAAA,MACrB,iBAAiBC;AAAA,MACjB;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA,SAASC;AAAA,MACT,aAAaC;AAAA,MACb;AAAA,MACA,iBAAiBC;AAAA,MACjB,aAAaC;AAAA,MACb;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA,cAAcC;AAAA,MACd;AAAA,MACA;AAAA,MACA;AAAA,MACA,SAASC;AAAA,MACT;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA,eAAeC;AAAA,MACf,mBAAmBC;AAAA,MACnB,uBAAuBC;AAAA,MACvB;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA,SAASC;AAAA,MACT;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA,cAAcC;AAAA,MACd;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA,kBAAkBC;AAAA,MAClB;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA,YAAYC;AAAA,MACZ;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA,cAAcC;AAAA,MACd;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA,aAAaC;AAAA,MACb;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA,YAAYC;AAAA,MACZ,eAAeC;AAAA,MACf,gBAAgBC;AAAA,MAChB;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA,cAAcC;AAAA,MACd,cAAcC;AAAA,MACd;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA,iBAAiBC;AAAA,MACjB,WAAWC;AAAA,MACX;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA,aAAaC;AAAA,MACb;AAAA,MACA;AAAA,MACA,gBAAgBC;AAAA,MAChB;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA,aAAaC;AAAA,MACb;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA,cAAcC;AAAA,MACd;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA,WAAWC;AAAA,MACX;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA,eAAeC;AAAA,MACf,eAAeC;AAAA,MACf;AAAA,MACA;AAAA,MACA,eAAeC;AAAA,MACf;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA,gBAAgBC;AAAA,MAChB;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA,eAAeC;AAAA,MACf,eAAeC;AAAA,MACf,eAAeC;AAAA,MACf;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA,iBAAiBC;AAAA,MACjB,iBAAiBC;AAAA,MACjB;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA,aAAaC;AAAA,MACb,oBAAoBC;AAAA,MACpB,oBAAoBC;AAAA,MACpB;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA,OAAOC;AAAA,MACP;AAAA,MACA;AAAA,MACA,SAASC;AAAA,MACT;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA,aAAaC;AAAA,MACb;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,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AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA,aAAaC;AAAA,MACb,SAASC;AAAA,MACT;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA,QAAQC;AAAA,MACR,WAAWC;AAAA,MACX,aAAaC;AAAA,MACb,aAAaC;AAAA,MACb;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA,YAAYC;AAAA,MACZ;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA,mBAAmBC;AAAA,MACnB,mBAAmBC;AAAA,MACnB;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA,aAAaC;AAAA,MACb,gBAAgBC;AAAA,MAChB,mBAAmBC;AAAA,MACnB;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA,iBAAiBC;AAAA,MACjB,aAAaC;AAAA,MACb;AAAA,MACA,uBAAuBC;AAAA,MACvB,mBAAmBC;AAAA,MACnB,aAAaC;AAAA,MACb;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA,iBAAiBC;AAAA,MACjB,iBAAiBC;AAAA,MACjB,cAAcC;AAAA,MACd,sBAAsBC;AAAA,MACtB;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA,aAAaC;AAAA,MACb,WAAWC;AAAA,MACX,YAAYC;AAAA,MACZ;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA,YAAYC;AAAA,MACZ;AAAA,MACA;AAAA,MACA,eAAeC;AAAA,MACf,eAAeC;AAAA,MACf;AAAA,MACA;AAAA,MACA;AAAA,MACA,QAAQC;AAAA,MACR;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA,oBAAoBC;AAAA,MACpB;AAAA,MACA;AAAA,MACA,UAAUC;AAAA,MACV;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA,eAAeC;AAAA,MACf,uBAAuBC;AAAA,MACvB;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA,UAAUC;AAAA,MACV,kBAAkBC;AAAA,MAClB,cAAcC;AAAA,MACd,cAAcC;AAAA,MACd,iBAAiBC;AAAA,MACjB,aAAaC;AAAA,MACb;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA,eAAeC;AAAA,MACf,eAAeC;AAAA,MACf;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA,aAAaC;AAAA,MACb,kBAAkBC;AAAA,MAClB;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA,cAAcC;AAAA,MACd,iBAAiBC;AAAA,MACjB,oBAAoBC;AAAA,MACpB;AAAA,MACA,kBAAkBC;AAAA,MAClB;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA,kBAAkBC;AAAA,MAClB;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA,eAAeC;AAAA,MACf,cAAcC;AAAA,MACd;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA,sBAAsBC;AAAA,MACtB,kBAAkBC;AAAA,MAClB;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA,iBAAiBC;AAAA,MACjB,cAAcC;AAAA,MACd;AAAA,MACA;AAAA,MACA,cAAcC;AAAA,MACd,iBAAiBC;AAAA,MACjB;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA,aAAaC;AAAA,MACb;AAAA,MACA;AAAA,MACA;AAAA,MACA,aAAaC;AAAA,MACb;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA,QAAQC;AAAA,MACR,QAAQC;AAAA,MACR;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA,SAASC;AAAA,MACT;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA,iBAAiBC;AAAA,MACjB;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA,kBAAkBC;AAAA,MAClB,cAAcC;AAAA,MACd;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA,gBAAgBC;AAAA,MAChB,YAAYC;AAAA,MACZ;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA,WAAWC;AAAA,MACX;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA,gBAAgBC;AAAA,MAChB,WAAWC;AAAA,MACX;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA,mBAAmBC;AAAA,MACnB,eAAeC;AAAA,MACf;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA,qBAAqBC;AAAA,MACrB,iBAAiBC;AAAA,MACjB;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA,QAAQC;AAAA,MACR,aAAaC;AAAA,MACb;AAAA,MACA;AAAA,MACA;AAAA,MACA,cAAcC;AAAA,MACd,cAAcC;AAAA,MACd;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA,YAAYC;AAAA,MACZ;AAAA,MACA;AAAA,MACA,gBAAgBC;AAAA,MAChB,YAAYC;AAAA,MACZ;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA,cAAcC;AAAA,MACd,gBAAgBC;AAAA,MAChB;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA,YAAYC;AAAA,MACZ;AAAA,MACA;AAAA,MACA;AAAA,MACA,YAAYC;AAAA,MACZ;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA,aAAaC;AAAA,MACb,SAASC;AAAA,MACT;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA,eAAeC;AAAA,MACf;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA,gBAAgBC;AAAA,MAChB,YAAYC;AAAA,MACZ;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA,aAAaC;AAAA,MACb;AAAA,MACA,WAAWC;AAAA,MACX;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA,UAAUC;AAAA,MACV,YAAYC;AAAA,MACZ,QAAQC;AAAA,MACR;AAAA,MACA;AAAA,MACA,aAAaC;AAAA,MACb,SAASC;AAAA,MACT;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA,iBAAiBC;AAAA,MACjB,aAAaC;AAAA,MACb;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA,gBAAgBC;AAAA,MAChB;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA,YAAYC;AAAA,MACZ;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA,mBAAmBC;AAAA,MACnB,kBAAkBC;AAAA,MAClB;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA,eAAeC;AAAA,MACf,WAAWC;AAAA,MACX;AAAA,MACA;AAAA,MACA,aAAaC;AAAA,MACb,aAAaC;AAAA,MACb,eAAeC;AAAA,MACf;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA,cAAcC;AAAA,MACd;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MA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;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACFA,QAAM,cAAc,CAAC;MACnB,OAAAX,SAAQ,CAAA;MACR,WAAW;MACX,QAAQ,CAAA;MACR,MAAAY,QAAO;MACP;IACF,IAAwB,CAAA,MAAO;AAC7B,UAAI,CAAC,OAAO,OAAOZ,MAAK,EAAE,QAAQ;AAChC,cAAM,IAAI;UACR;QAAA;MAEJ;AAEA,UAAI,OAAOY,UAAS,aAAa;AAC/B,cAAM,IAAI,MAAM,sDAAsD;MACxE;AAEA,YAAM,oBAAoB,MAAM,KAAKA,MAAK,iBAAiB,IAAI,QAAQ,GAAG,CAAC;AAE3E,wBAAkB,QAAQ,CAAClB,aAAY,eAAeA,UAAS,EAAE,UAAU,OAAAM,QAAO,MAAA,CAAO,CAAC;AAE1F,UAAI,aAAa;AACf,cAAM,YAAY,MAAM,KAAKY,MAAK,iBAAiB,UAAU,CAAC;AAE9D,kBAAU;UAAQ,CAAC,aACjB,YAAY;YACV,OAAAZ;YACA;YACA;YACA,MAAM,SAAS;YACf;UAAA,CACD;QAAA;MAEL;AAGA,UAAI,aAAa,eAAe;AAC9B,cAAM,qBAAqBY,MAAK,iBAAiB,aAAa;AAC9D,YAAI,mBAAmB,SAAS,GAAG;AACjC,kBAAQ;YACN;UAAA;AAEF,gBAAM,KAAK,kBAAkB,EAAE;YAAQ,CAAClB,aACtC,eAAeA,UAAS,EAAE,UAAU,aAAa,OAAAM,QAAO,MAAA,CAAO;UAAA;QAEnE;MACF;IACF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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", - "names": ["global", "supportsAdoptingStyleSheets", "constructionToken", "cssTagCache", "CSSResult", "unsafeCSS", "css", "adoptStyles", "getCompatibleStyle", "globalThis", "ShadowRoot", "ShadyCSS", "nativeShadow", "Document", "prototype", "CSSStyleSheet", "Symbol", "WeakMap", "cssText", "strings", "safeToken", "this", "Error", "_strings", "styleSheet", "_styleSheet", "cacheable", "length", "get", "replaceSync", "set", "toString", "value", "String", "values", "reduce", "acc", "v", "idx", "renderRoot", "styles", "adoptedStyleSheets", "map", "s", "style", "document", "createElement", "nonce", "setAttribute", "textContent", "appendChild", "sheet", "rule", "cssRules", "is", "defineProperty", "getOwnPropertyDescriptor", "getOwnPropertyNames", "getOwnPropertySymbols", "getPrototypeOf", "global", "trustedTypes", "emptyStringForBooleanAttribute", "polyfillSupport", "JSCompiler_renameProperty", "defaultConverter", "notEqual", "defaultPropertyDeclaration", "ReactiveElement", "Object", "globalThis", "emptyScript", "reactiveElementPolyfillSupport", "prop", "_obj", "value", "type", "Boolean", "Array", "JSON", "stringify", "fromValue", "Number", "parse", "e", "old", "attribute", "String", "converter", "reflect", "useDefault", "hasChanged", "Symbol", "metadata", "litPropertyMetadata", "WeakMap", "HTMLElement", "initializer", "this", "__prepare", "_initializers", "push", "observedAttributes", "finalize", "__attributeToPropertyMap", "keys", "name", "options", "state", "prototype", "hasOwnProperty", "create", "wrapped", "elementProperties", "set", "noAccessor", "key", "descriptor", "getPropertyDescriptor", "get", "v", "oldValue", "call", "requestUpdate", "configurable", "enumerable", "superCtor", "Map", "finalized", "props", "properties", "propKeys", "p", "createProperty", "attr", "__attributeNameForProperty", "elementStyles", "finalizeStyles", "styles", "isArray", "Set", "flat", "Infinity", "reverse", "s", "unshift", "getCompatibleStyle", "toLowerCase", "constructor", "super", "__instanceProperties", "isUpdatePending", "hasUpdated", "__reflectingProperty", "__initialize", "__updatePromise", "Promise", "res", "enableUpdating", "_$changedProperties", "__saveInstanceProperties", "forEach", "i", "controller", "__controllers", "add", "renderRoot", "isConnected", "hostConnected", "delete", "instanceProperties", "size", "createRenderRoot", "shadowRoot", "attachShadow", "shadowRootOptions", "adoptStyles", "connectedCallback", "c", "_requestedUpdate", "disconnectedCallback", "hostDisconnected", "_old", "_$attributeToProperty", "attrValue", "toAttribute", "removeAttribute", "setAttribute", "ctor", "propName", "getPropertyOptions", "fromAttribute", "convertedValue", "__defaultValues", "useNewValue", "newValue", "hasAttribute", "_$changeProperty", "__enqueueUpdate", "initializeValue", "has", "__reflectingProperties", "reject", "result", "scheduleUpdate", "performUpdate", "shouldUpdate", "changedProperties", "willUpdate", "hostUpdate", "update", "__markUpdated", "_$didUpdate", "_changedProperties", "hostUpdated", "firstUpdated", "updated", "updateComplete", "getUpdateComplete", "__propertyToAttribute", "mode", "reactiveElementVersions", "trustFromTemplateString", "tsa", "stringFromTSA", "isArray", "hasOwnProperty", "Error", "policy", "createHTML", "resolveDirective", "part", "value", "parent", "attributeIndex", "noChange", "currentDirective", "__directives", "__directive", "nextDirectiveConstructor", "isPrimitive", "constructor", "_$initialize", "_$resolve", "values", "global", "wrap", "trustedTypes", "boundAttributeSuffix", "marker", "markerMatch", "nodeMarker", "d", "createMarker", "isIterable", "SPACE_CHAR", "textEndRegex", "commentEndRegex", "comment2EndRegex", "tagEndRegex", "singleQuoteAttrEndRegex", "doubleQuoteAttrEndRegex", "rawTextElement", "tag", "html", "svg", "mathml", "nothing", "templateCache", "walker", "getTemplateHtml", "Template", "TemplateInstance", "ChildPart", "AttributePart", "PropertyPart", "BooleanAttributePart", "EventPart", "ElementPart", "_$LH", "polyfillSupport", "render", "globalThis", "node", "createPolicy", "s", "Math", "random", "toFixed", "slice", "document", "createComment", "Array", "Symbol", "iterator", "RegExp", "type", "strings", "_$litType$", "for", "WeakMap", "createTreeWalker", "l", "length", "attrNames", "rawTextEndRegex", "regex", "i", "attrName", "match", "attrNameEndIndex", "lastIndex", "exec", "test", "end", "startsWith", "push", "options", "this", "parts", "nodeIndex", "attrNameIndex", "partCount", "el", "createElement", "currentNode", "content", "wrapper", "firstChild", "replaceWith", "childNodes", "nextNode", "nodeType", "hasAttributes", "name", "getAttributeNames", "endsWith", "realName", "statics", "getAttribute", "split", "m", "index", "ctor", "removeAttribute", "tagName", "textContent", "emptyScript", "append", "data", "indexOf", "_options", "innerHTML", "template", "_$parts", "_$disconnectableChildren", "_$template", "_$parent", "parentNode", "_$isConnected", "fragment", "creationScope", "importNode", "partIndex", "templatePart", "nextSibling", "_$setValue", "__isConnected", "startNode", "endNode", "_$committedValue", "_$startNode", "_$endNode", "isConnected", "directiveParent", "_$clear", "_commitText", "_commitTemplateResult", "_commitNode", "_commitIterable", "insertBefore", "_insert", "createTextNode", "result", "_$getTemplate", "h", "_update", "instance", "_clone", "get", "set", "itemParts", "itemPart", "item", "start", "from", "_$notifyConnectionChanged", "n", "remove", "element", "fill", "String", "valueIndex", "noCommit", "change", "v", "_commitValue", "setAttribute", "toggleAttribute", "super", "newListener", "oldListener", "shouldRemoveListener", "capture", "once", "passive", "shouldAddListener", "removeEventListener", "addEventListener", "event", "call", "host", "handleEvent", "_boundAttributeSuffix", "_marker", "_markerMatch", "_HTML_RESULT", "_getTemplateHtml", "_TemplateInstance", "_isIterable", "_resolveDirective", "_ChildPart", "_AttributePart", "_BooleanAttributePart", "_EventPart", "_PropertyPart", "_ElementPart", "litHtmlPolyfillSupport", "litHtmlVersions", "container", "partOwnerNode", "renderBefore", "global", "LitElement", "polyfillSupport", "_$LE", "globalThis", "ReactiveElement", "constructor", "this", "renderOptions", "host", "__childPart", "createRenderRoot", "renderRoot", "super", "renderBefore", "firstChild", "changedProperties", "value", "render", "hasUpdated", "isConnected", "update", "connectedCallback", "setConnected", "disconnectedCallback", "noChange", "litElementHydrateSupport", "litElementPolyfillSupport", "_$attributeToProperty", "el", "name", "_$changedProperties", "litElementVersions", "push", "isServer", "uni", "prefix", "c", "r", "v", "resolve", "value", "x", "resolve", "d", "b", "s", "e", "t", "p", "i", "key", "c", "r", "f", "_", "context", "__runInitializers", "value", "x", "prefix", "P", "resolve", "body", "y", "g", "n", "v", "m", "o", "k", "a", "j", "from", "l", "raw", "env", "async", "next", "path", "__assign", "k2", "message", "value", "i", "index", "value", "Subscription", "e", "_a", "empty", "handler", "timeout", "handle", "value", "_a", "Subscriber", "next", "value", "ConsumerObserver", "SafeSubscriber", "x", "_a", "value", "Observable", "subscribe", "observable", "next", "resolve", "x", "OperatorSubscriber", "value", "err", "_a", "ConnectableObservable", "handle", "timestamp", "timestamp", "now", "Subject", "value", "_a", "observable", "AnonymousSubject", "BehaviorSubject", "_a", "value", "ReplaySubject", "value", "_a", "i", "now", "last", "AsyncSubject", "_a", "value", "Action", "delay", "handler", "timeout", "handle", "AsyncAction", "delay", "_a", "e", "handle", "handle", "AsapAction", "delay", "_a", "Scheduler", "now", "delay", "AsyncScheduler", "now", "AsapScheduler", "QueueAction", "delay", "QueueScheduler", "AnimationFrameAction", "delay", "_a", "AnimationFrameScheduler", "VirtualTimeScheduler", "_a", "VirtualAction", "index", "delay", "a", "b", "value", "x", "value", "_a", "value", "i", "value", "process", "delay", "repeat", "delay", "value", "delay", "i", "iterator", "value", "_a", "iterator", "value", "_a", "NotificationKind", "Notification", "message", "message", "value", "config", "_a", "first", "delay", "value", "map", "index", "value", "map", "expand", "buffer", "index", "value", "a", "i", "map", "b", "_a", "handler", "add", "remove", "n", "index", "value", "value", "b", "count", "value", "buffer", "_a", "buffer", "value", "value", "value", "now", "config", "_a", "value", "config", "init_partition", "init_combineLatest", "init_concat", "init_merge", "init_partition", "init_race", "init_zip", "map", "i", "data", "dist_ts_exports", "init_dist_ts", "property", "options", "protoOrTarget", "nameOrContext", "standardProperty", "proto", "name", "hasOwnProperty", "constructor", "createProperty", "Object", "getOwnPropertyDescriptor", "undefined", "defaultPropertyDeclaration", "attribute", "type", "String", "converter", "defaultConverter", "reflect", "hasChanged", "notEqual", "target", "context", "kind", "metadata", "properties", "globalThis", "litPropertyMetadata", "get", "set", "Map", "create", "wrapped", "v", "oldValue", "call", "this", "requestUpdate", "_$changeProperty", "value", "Error", "init_property", "dist_ts_exports", "init_dist_ts", "timeout", "dist_ts_exports", "init_dist_ts", "string", "patterns", "string", "index", "dist_ts_exports", "init_dist_ts", "E", "m", "C", "w", "T", "s", "D", "e", "A", "t", "r", "b", "v", "k", "g", "n", "i", "a", "o", "h", "u", "d", "l", "y", "R", "p", "_", "x", "P", "f", "c", "M", "value", "context", "months", "days", "defaultOptions", "context", "normalize", "a", "b", "max", "context", "init_max", "min", "context", "init_min", "interval", "end", "min", "max", "init_max", "init_min", "index", "index", "days", "value", "init_isDate", "init_isDate", "number", "context", "interval", "end", "interval", "end", "interval", "end", "interval", "end", "interval", "end", "interval", "end", "interval", "end", "interval", "end", "index", "end", "end", "interval", "end", "defaultOptions", "now", "now", "count", "format", "value", "context", "index", "number", "string", "key", "findIndex", "value", "string", "value", "value", "index", "defaultOptions", "defaultOptions", "number", "milliseconds", "localize", "timestamp", "formatLong", "format", "defaultOptions", "formatter", "formatDistance", "defaultOptions", "months", "days", "init_formatDistance", "defaultOptions", "milliseconds", "days", "months", "formatDistance", "init_formatDistance", "defaultOptions", "format", "m", "value", "format", "format", "months", "days", "milliseconds", "formatRelative", "defaultOptions", "init_formatRelative", "lastDayOfMonth", "getDefaultOptions", "a", "b", "defaultOptions", "interval", "end", "init_interval", "interval", "end", "months", "days", "value", "value", "context", "match", "match", "value", "init_constants", "n", "init_constants", "match", "value", "match", "value", "value", "value", "match", "value", "match", "value", "init_constants", "match", "value", "init_constants", "match", "value", "init_constants", "match", "value", "init_constants", "match", "value", "init_constants", "match", "value", "isLeapYear", "init_constants", "match", "value", "isLeapYear", "defaultOptions", "match", "value", "match", "value", "match", "value", "match", "value", "match", "value", "match", "value", "match", "value", "init_constants", "match", "value", "init_constants", "match", "value", "init_constants", "match", "value", "init_constants", "match", "value", "init_constants", "match", "value", "init_constants", "match", "value", "value", "init_constants", "value", "init_constants", "value", "value", "value", "defaultOptions", "getDefaultOptions", "longFormattingTokensRegExp", "formattingTokensRegExp", "unescapedLatinCharacterRegExp", "cleanEscapedString", "a", "b", "index", "escapedStringRegExp", "doubleQuoteRegExp", "isMatch", "interval", "a", "b", "defaultOptions", "formattingTokensRegExp", "cleanEscapedString", "formatter", "unescapedLatinCharacterRegExp", "escapedStringRegExp", "doubleQuoteRegExp", "months", "days", "milliseconds", "milliseconds", "milliseconds", "months", "months", "timestamp", "value", "isLeapYearIndex", "setDefaultOptions", "defaultOptions", "milliseconds", "defaultOptions", "now", "now", "months", "days", "formatDistance", "formatRelative", "getDefaultOptions", "interval", "isMatch", "max", "min", "setDefaultOptions", "init_formatDistance", "init_formatRelative", "init_interval", "init_isDate", "init_max", "init_min", "t", "e", "n", "r", "i", "s", "u", "a", "o", "c", "f", "h", "d", "l", "$", "y", "M", "m", "v", "g", "D", "p", "S", "_", "w", "O", "b", "k", "e", "o", "t", "milliseconds", "value", "milliseconds", "value", "add", "days", "count", "init_dist_ts", "dayjs", "isToday", "e", "dist_ts_exports", "dayjs", "units", "dist_ts_exports", "dist_ts_exports", "init_dist_ts", "index", "root", "value", "node", "filter", "index", "root", "i", "init_dist_ts", "dist_ts_exports", "resolve", "next", "dist_ts_exports", "resolve", "keys", "key", "prefix", "c", "r", "v", "dist_ts_exports", "keys", "dist_ts_exports", "dist_ts_exports", "dist_ts_exports", "dist_ts_exports", "symbolTree", "dist_ts_exports", "init_dist_ts", "value", "a", "b", "index", "string", "base64", "x", "isMatch", "index2", "_", "dist_ts_exports", "base64ToUint8Array", "isUint8Array", "base64", "init_dist_ts", "message", "dist_ts_exports", "init_dist_ts", "index", "dist_ts_exports", "init_dist_ts", "min", "max", "range", "stringArg", "match", "i", "a", "b", "c", "encoder", "i", "i", "stringArg", "dist_ts_exports", "init_dist_ts", "root", "map", "set", "value", "index", "n", "key", "e", "transform", "hasOwnProperty", "objectToString", "Buffer", "Symbol", "Uint8Array", "splice", "DataView", "Map", "Promise", "Set", "WeakMap", "data", "pairs", "isArray", "keys", "isObject", "isFunction", "buffer", "type", "isArrayLike", "data", "f", "node", "a", "b", "stringify", "i", "keys", "key", "value", "init_dist_ts", "stableJson2", "data", "value", "space", "parse", "text", "x", "isBufferLike", "isArray", "key", "buffer", "dist_ts_exports", "parse", "stringify", "init_dist_ts", "sanitize", "key", "e", "order", "a", "b", "base64", "lodashCloneDeep", "value", "resolve", "value", "version", "target", "c", "init_dist_ts", "dist_ts_exports", "key", "dist_ts_exports", "dist_ts_exports", "init_dist_ts", "init_dist_ts", "dist_ts_exports", "buffer", "value", "key", "d", "value", "key", "context", "metadata", "handler", "context", "delay", "delay", "dist_ts_exports", "key", "deferred", "timeout", "dist_ts_exports", "init_timeout", "init_timeout", "timeout", "data", "data", "dist_ts_exports", "init_dist_ts", "isounique", "init_dist_ts", "dist_ts_exports", "e", "dist_ts_exports", "value", "hooks", "handler", "path", "dist_ts_exports", "index", "key", "value", "isounique", "counter", "dist_ts_exports", "isounique", "dist_ts_exports", "init_dist_ts", "isPromise", "min", "max", "microSeconds", "iterator", "next", "value", "e", "create", "close", "postMessage", "onMessage", "canBeUsed", "averageResponseTime", "microSeconds", "type", "localStorage", "e", "postMessage", "key", "value", "listener", "create", "canBeUsed", "close", "onMessage", "averageResponseTime", "userAgent", "microSeconds", "type", "create", "microSeconds", "close", "postMessage", "onMessage", "canBeUsed", "averageResponseTime", "type", "m", "type", "isPromise", "s", "o", "listenerFn", "BroadcastChannel", "postMessage", "obj", "close", "add", "remove", "add", "isLeaderListener", "LeaderElectionWebLock", "listener", "resolved", "whenDeathListener", "fillOptionsWithDefaults", "LeaderElection", "hasLeaderListener", "hasLeader", "applyRun", "stopCriteriaPromiseResolve", "handleMessage", "awaitLeadership", "die", "listener", "init_dist_ts", "BroadcastChannel", "dist_ts_exports", "message", "dist_ts_exports", "init_dist_ts", "isObject", "toArray", "extend", "index", "key", "repeat", "string", "count", "number", "mark", "toString", "buffer", "position", "indent", "head", "end", "toString", "map", "data", "type", "index", "Schema", "definition", "data", "data", "data", "Schema", "data", "max", "data", "max", "c", "data", "max", "index", "value", "v", "d", "data", "value", "v", "d", "Schema", "Schema", "data", "match", "data", "data", "code", "max", "map", "data", "index", "data", "index", "keys", "data", "key", "Schema", "data", "_", "data", "params", "body", "isFunction", "Schema", "c", "key", "value", "i", "message", "throwError", "match", "handle", "prefix", "end", "index", "count", "type", "iterator", "map", "keys", "index", "type", "string", "handle", "position", "next", "c", "i", "indent", "match", "prefix", "end", "require_js_yaml", "__importStar", "plugins", "__importStar", "isArray", "isPlainObject", "key", "setProperty", "getProperty", "extend", "i", "value", "next", "index", "wrap", "value", "value", "point", "init_lib", "init_lib", "init_lib", "index", "init_lib", "path", "extname", "end", "index", "code", "normalize", "value", "path", "index", "assertPath", "path", "isUint8Array", "value", "init_lib", "index", "field", "basename", "dirname", "extname", "message", "decoder", "init_lib", "self", "value", "value", "node", "isUint8Array", "init_lib", "index", "extend", "key", "self", "resolve", "file", "tree", "compiler", "namespace", "add", "parameters", "plugins", "init_lib", "value", "count", "index", "code", "checks", "index", "all", "node", "key", "type", "value", "ok", "init_lib", "context", "init_lib", "d", "is", "node", "index", "value", "visit", "empty", "init_lib", "init_lib", "list", "pairs", "node", "index", "siblings", "handler", "find", "replace", "match", "position", "value", "init_lib", "init_lib", "node", "_", "domain", "path", "match", "prefix", "trail", "code", "init_lib", "init_lib", "value", "node", "_", "value", "exit", "index", "init_lib", "init_lib", "node", "_", "exit", "value", "init_lib", "init_lib", "value", "table", "row", "sizes", "columnIndex", "cell", "code", "key", "one", "value", "handlers", "own", "extension", "index", "key", "own", "map", "node", "_", "exit", "value", "map", "list", "index", "_", "index", "value", "index", "count", "max", "node", "node", "_", "raw", "exit", "value", "map", "node", "_", "exit", "value", "code", "code", "node", "_", "exit", "between", "close", "node", "index", "init_lib", "init_lib", "value", "index", "init_lib", "init_lib", "node", "node", "_", "exit", "subexit", "value", "node", "node", "_", "exit", "value", "node", "_", "type", "exit", "value", "node", "_", "value", "index", "match", "position", "node", "raw", "node", "_", "exit", "value", "node", "_", "type", "exit", "value", "text", "list", "node", "exit", "index", "value", "node", "exit", "value", "map", "index", "node", "_", "exit", "value", "init_lib", "init_lib", "node", "_", "d", "node", "_", "exit", "between", "close", "node", "_", "_", "value", "list", "join", "value", "characterReference", "value", "code", "value", "$2", "head", "hex", "node", "children", "index", "handle", "value", "children", "index", "value", "map", "match", "one", "config", "value", "index", "match", "position", "end", "a", "b", "config", "now", "value", "join", "exit", "value", "node", "config", "init_lib", "init_lib", "d", "value", "node", "_", "exit", "children", "index", "init_lib", "init_lib", "node", "head", "siblings", "index", "value", "init_lib", "init_lib", "init_lib", "init_lib", "list", "remove", "end", "all", "index", "extension", "code", "value", "list", "handlers", "type", "text", "ok", "self", "data", "code", "buffer", "trail", "index", "value", "replace", "value", "index", "skip", "code", "replace", "next", "init_html", "init_html", "constructs", "context", "index", "resolve", "context", "index", "text", "end", "ok", "attentionMarkers", "previous", "code", "close", "point", "ok", "code", "next", "ok", "type", "max", "code", "prefix", "ok", "code", "ok", "self", "code", "exit", "ok", "code", "ok", "self", "max", "code", "value", "ok", "self", "code", "effects", "nok", "start", "ok", "self", "code", "furtherStart", "index", "previous", "code", "ok", "self", "between", "data", "list", "initial", "index", "end", "count", "n", "index", "context", "previous", "start", "ok", "previous", "code", "self", "ok", "type", "max", "code", "raw", "ok", "type", "self", "code", "ok", "type", "code", "begin", "ok", "code", "ok", "self", "code", "titleBefore", "definition", "init_definition", "ok", "code", "context", "content", "text", "ok", "code", "data", "index", "ok", "self", "buffer", "code", "value", "ok", "self", "index", "code", "comment", "end", "value", "index", "context", "close", "text", "ok", "self", "code", "ok", "self", "code", "ok", "self", "code", "ok", "code", "ok", "code", "thematicBreak", "init_thematic_break", "ok", "self", "code", "thematicBreak", "list", "init_list", "init_thematic_break", "context", "index", "content", "text", "definition", "heading", "ok", "self", "code", "paragraph", "init_definition", "init_list", "init_thematic_break", "ok", "self", "index", "code", "context", "string", "data", "indent", "tokenizeIndent", "init_syntax", "config", "emptyOptions", "value", "own", "counter", "index", "init_html", "init_syntax", "init_html", "init_html", "single", "context", "index", "strikethrough", "text", "insideSpan", "ok", "previous", "code", "init_syntax", "init_html", "init_syntax", "value", "replace", "init_html", "remove", "add", "index", "a", "b", "element", "index", "ok", "self", "code", "index", "type", "next", "context", "cell", "map", "range", "now", "end", "a", "b", "table", "init_syntax", "init_html", "init_syntax", "filter", "value", "init_lib", "init_lib", "init_html", "ok", "self", "code", "close", "init_syntax", "init_html", "init_syntax", "self", "emptyOptions", "data", "init_lib", "init_lib", "buffer", "handlers", "data", "context", "encode", "raw", "compile", "index", "head", "body", "handle", "hasOwnProperty", "key", "value", "lineEnding", "previous", "count", "previous", "code", "data", "content", "init_content", "self", "code", "point", "index", "ok", "document", "self", "initial", "code", "self", "constructs", "text", "code", "data", "list", "index", "context", "init_text", "document", "flow", "string", "text", "init_text", "list", "definition", "thematicBreak", "from", "point", "exit", "context", "now", "value", "code", "type", "_", "constructs", "map", "all", "list", "ok", "head", "index", "parse", "constructs", "create", "content", "document", "text", "initial", "from", "init_parse", "init_content", "init_text", "buffer", "value", "end", "match", "next", "code", "value", "parse", "init_parse", "value", "parse", "config", "opener", "link", "heading", "blockQuote", "buffer", "codeText", "definition", "emphasis", "hardBreak", "html", "image", "listItem", "list", "paragraph", "strong", "thematicBreak", "configure", "data", "compile", "context", "exit", "index", "handler", "own", "point", "create", "node", "siblings", "close", "text", "string", "children", "type", "d", "extension", "key", "init_lib", "init_lib", "self", "init_lib", "init_lib", "namespace", "format", "i", "n", "c", "create", "format", "formatter", "import_format", "index", "option", "own", "flow", "index", "matter", "code", "buffer", "ok", "self", "position", "bufferIndex", "init_syntax", "init_html", "init_syntax", "init_html", "exit", "index", "matter", "close", "data", "node", "unsafe", "handlers", "fence", "handle", "pick", "init_lib", "init_lib", "self", "emptyOptions", "data", "init_lib", "init_lib", "init_types", "init_types", "$", "_", "index", "type", "value", "key", "map", "set", "message", "buffer", "EMPTY", "toString", "serialize", "init_types", "value", "type", "$", "_", "index", "key", "message", "serialize", "point", "type", "node", "position", "end", "init_lib", "init_lib", "node", "replace", "unsafe", "type", "element", "root", "text", "index", "value", "content", "own", "_", "children", "properties", "key", "safe", "definition", "ok", "position", "init_lib", "init_lib", "blockquote", "node", "init_blockquote", "hardBreak", "node", "init_break", "code", "node", "value", "properties", "init_code", "node", "emphasis", "node", "init_emphasis", "footnoteReference", "node", "index", "counter", "link", "heading", "node", "init_heading", "html", "node", "init_html", "node", "head", "imageReference", "node", "definition", "properties", "init_image_reference", "image", "node", "properties", "init_image", "inlineCode", "node", "text", "init_inline_code", "linkReference", "node", "definition", "properties", "init_link_reference", "link", "node", "properties", "init_link", "listItem", "node", "properties", "children", "head", "paragraph", "index", "init_list_item", "list", "node", "properties", "index", "init_list", "paragraph", "node", "init_paragraph", "root", "node", "init_root", "strong", "node", "init_strong", "node", "head", "body", "end", "node", "siblings", "cells", "cell", "properties", "result", "node", "value", "search", "match", "last", "end", "code", "text", "node", "init_text", "thematicBreak", "node", "init_thematic_break", "init_blockquote", "init_break", "init_code", "init_emphasis", "init_heading", "init_html", "init_image_reference", "init_image", "init_inline_code", "init_link_reference", "init_link", "init_list_item", "init_list", "init_paragraph", "init_root", "init_strong", "init_text", "init_thematic_break", "blockquote", "hardBreak", "code", "emphasis", "footnoteReference", "heading", "html", "imageReference", "image", "inlineCode", "linkReference", "link", "listItem", "list", "paragraph", "root", "strong", "text", "thematicBreak", "_", "definition", "content", "children", "listItem", "emptyOptions", "handlers", "all", "one", "patch", "wrap", "node", "map", "type", "handle", "own", "children", "unknown", "index", "head", "from", "position", "data", "value", "code", "node", "init_lib", "init_lib", "init_schema", "space", "merge", "space", "definition", "init_merge", "init_schema", "normalize", "value", "init_types", "key", "value", "init_types", "space", "index", "create", "definition", "properties", "value", "normalize", "init_schema", "aria", "init_types", "create", "_", "html", "init_html", "init_types", "create", "init_types", "create", "create", "_", "create", "create", "_", "find", "value", "normalize", "init_find", "html", "svg", "init_merge", "init_html", "init_find", "merge", "aria", "value", "index", "all", "code", "next", "value", "code", "next", "value", "code", "next", "own", "value", "code", "next", "code", "value", "init_lib", "init_lib", "comment", "node", "_2", "encode", "doctype", "_2", "_3", "parse", "value", "index", "end", "stringify", "parse", "value", "stringify", "empty", "value", "init_lib", "init_lib", "increment", "index", "siblings", "next", "handlers", "node", "index", "own", "_", "index", "next", "html", "p", "html", "node", "head", "child", "body", "index", "previous", "tbody", "element", "node", "index", "last", "svg", "content", "properties", "key", "value", "find", "x", "y", "stringify", "text", "node", "_", "init_text", "node", "index", "text", "init_text", "root", "node", "_2", "init_root", "invalid", "node", "unknown", "handle", "init_handle", "init_root", "init_text", "comment", "doctype", "element", "root", "text", "emptyOptions", "one", "all", "svg", "html", "node", "index", "handle", "children", "emptyChildren", "init_lib", "init_handle", "init_lib", "self", "handlers", "emptyOptions", "compiler", "init_lib", "init_lib", "self", "compiler", "init_lib", "init_lib", "extend", "i", "key", "repeat", "count", "string", "node", "is", "rules", "filter", "element", "isBlock", "isVoid", "text", "next", "Parser", "root", "e", "Node", "m", "content", "process", "self", "reduce", "join", "whitespace", "s2", "prefix", "index", "code", "match", "fence", "gfm", "strikethrough", "node", "content", "tr", "every", "n", "element", "index", "indexOf", "prefix", "key", "rules", "i", "dist_ts_exports", "init_dist_ts", "parse", "compile", "match", "stringify", "value", "message", "text", "index", "type", "path", "encode", "data", "params", "encoder", "decode", "keys", "key", "m", "i", "decoder", "end", "p", "first", "init_dist_ts", "message", "dist_ts_exports", "init_dist_ts", "init_plugins", "init_dist_ts", "n", "b", "W", "H", "a", "c", "d", "e", "f", "g", "h", "j", "i", "hex", "init_plugins", "buffer", "i", "value", "dist_ts_exports", "init_smartenv_plugins", "init_interfaces", "Smartenv", "init_smartenv_classes_smartenv", "init_smartenv_plugins", "init_interfaces", "t", "dist_ts_exports", "Smartenv", "init_dist_ts", "init_smartenv_classes_smartenv", "import_lodash", "import_fast_json_stable_stringify", "stableJson", "init_smartjson_plugins", "init_dist_ts", "stableJson2", "base64Encode", "data", "base64Decode", "stringify", "value", "space", "replacer", "parse", "text", "reviver", "isEncodedBuffer", "x", "isObject", "isString", "isBufferLike", "isArray", "init_bufferhandling", "init_smartjson_plugins", "key", "buffer", "dist_ts_exports", "Smartjson", "deepEqualJsonLStrings", "deepEqualObjects", "foldDec", "parse", "parseBase64", "parseJsonL", "stableOneWayStringify", "stringify", "stringifyBase64", "stringifyJsonL", "stringifyPretty", "init_dist_ts", "init_smartjson_plugins", "init_bufferhandling", "sanitize", "replacer", "key", "e", "order", "a", "b", "stableJson", "base64", "lodashCloneDeep", "value", "context", "init_dist_ts", "dist_ts_exports", "e", "resolved", "value", "dist_ts_exports", "init_dist_ts", "key", "path", "first", "value", "dist_ts_exports", "init_dist_ts", "init_webrequest_plugins", "init_dist_ts", "dist_ts_exports", "init_dist_ts", "init_webrequest_plugins", "buffer", "Deferred", "defer", "init_smartpromise_classes_deferred", "resolve", "CumulativeDeferred", "cumulativeDefer", "init_smartpromise_classes_cumulativedeferred", "init_smartpromise_classes_deferred", "defer", "dist_ts_exports", "CumulativeDeferred", "Deferred", "cumulativeDefer", "defer", "getFirstTrueOrFalse", "map", "rejectedPromise", "resolvedPromise", "timeoutAndContinue", "timeoutWrap", "init_dist_ts", "init_smartpromise_classes_deferred", "init_smartpromise_classes_cumulativedeferred", "value", "x", "resolve", "dist_ts_exports", "Timeout", "delayFor", "delayForRandom", "init_dist_ts", "timeout", "defer", "init_dist_ts", "init_dist_ts", "init_dist_ts", "init_dist_ts", "init_dist_ts", "init_code", "init_container", "init_dist_ts", "init_dist_ts", "init_content", "init_link", "init_link", "dist_ts_exports", "init_dist_ts", "init_code", "init_container", "init_content", "init_dist_ts", "init_interfaces", "init_interfaces", "init_interfaces", "init_interfaces", "dist_ts_exports", "dist_ts_exports", "init_dist_ts", "import_symbol_tree", "init_dist_ts", "FastMap", "keys", "key", "uni", "ObjectMap", "prefix", "c", "r", "v", "FastMap", "dist_ts_exports", "keys", "Stringmap", "dist_ts_exports", "clamp", "min", "max", "x", "y", "t", "n", "d", "debounce", "delay", "timer", "context", "from", "lerp", "content", "i", "element", "e", "path", "node", "data", "value", "global", "__assign", "t", "s", "i", "n", "p", "e", "isString", "isFunction", "isArray", "key", "_", "b", "c", "d", "$", "getSize", "listener", "m", "defaultOptions", "SweetScroll", "_a", "options", "value", "initial", "data", "type", "init_dist_ts", "ObjectMap", "Stringmap", "FastMap", "SweetScroll", "dist_ts_exports", "i", "dist_ts_exports", "Key", "keys", "dist_ts_exports", "key", "init_dist_ts", "dist_ts_exports", "b", "i", "SweetScroll", "dist_ts_exports", "import_sweet_scroll", "init_dist_ts", "dist_ts_exports", "init_dist_ts", "isounique", "init_plugins", "init_dist_ts", "init_property", "i", "n", "init_plugins", "init_dist_ts", "isounique", "i", "brand", "unwrapStaticValue", "unsafeStatic", "literal", "stringsCache", "withStatic", "html", "svg", "mathml", "Symbol", "for", "value", "r", "_$litStatic$", "strings", "values", "reduce", "acc", "v", "idx", "Error", "Map", "coreTag", "l", "length", "staticValue", "dynamicValue", "staticStrings", "dynamicValues", "s", "i", "hasStatics", "push", "key", "join", "get", "raw", "set", "coreHtml", "coreSvg", "coreMathml", "PartType", "directive", "Directive", "ATTRIBUTE", "CHILD", "PROPERTY", "BOOLEAN_ATTRIBUTE", "EVENT", "ELEMENT", "c", "values", "_$litDirective$", "_partInfo", "_$isConnected", "this", "_$parent", "part", "parent", "attributeIndex", "__part", "__attributeIndex", "props", "update", "_part", "render", "UnsafeHTMLDirective", "unsafeHTML", "Directive", "partInfo", "super", "this", "_value", "nothing", "type", "PartType", "CHILD", "Error", "constructor", "directiveName", "value", "_templateResult", "noChange", "strings", "raw", "_$litType$", "resultType", "values", "directive", "init_unsafe_html", "customElement", "tagName", "classOrTarget", "context", "addInitializer", "customElements", "define", "init_custom_element", "state", "options", "property", "attribute", "eventOptions", "options", "protoOrValue", "nameOrContext", "method", "Object", "assign", "desc", "obj", "name", "descriptor", "configurable", "enumerable", "Reflect", "decorate", "Object", "defineProperty", "query", "selector", "cache", "protoOrTarget", "nameOrContext", "descriptor", "doQuery", "el", "renderRoot", "querySelector", "get", "set", "key", "Symbol", "this", "v", "desc", "result", "call", "hasUpdated", "queryAll", "selector", "obj", "name", "desc", "get", "this", "renderRoot", "fragment", "document", "createDocumentFragment", "querySelectorAll", "queryAsync", "selector", "obj", "name", "desc", "get", "this", "updateComplete", "renderRoot", "querySelector", "queryAssignedElements", "options", "obj", "name", "slot", "selector", "slotSelector", "desc", "get", "slotEl", "this", "renderRoot", "querySelector", "elements", "assignedElements", "filter", "node", "matches", "queryAssignedNodes", "options", "obj", "name", "slot", "slotSelector", "desc", "get", "slotEl", "this", "renderRoot", "querySelector", "assignedNodes", "init_state", "init_plugins", "__esDecorate", "value", "__runInitializers", "dist_ts_exports", "domtools", "ChildPart", "wrap", "isPrimitive", "TemplateResultType", "isTemplateResult", "isCompiledTemplateResult", "isDirectiveResult", "getDirectiveClass", "isSingleExpression", "createMarker", "insertPart", "setChildPartValue", "RESET_VALUE", "setCommittedValue", "getCommittedValue", "removePart", "clearPart", "_ChildPart", "_$LH", "node", "value", "HTML", "SVG", "MATHML", "type", "h", "part", "strings", "document", "createComment", "containerPart", "refPart", "container", "_$startNode", "parentNode", "refNode", "_$endNode", "startNode", "insertBefore", "endNode", "options", "nextSibling", "oldParent", "_$parent", "parentChanged", "newConnectionState", "_$reparentDisconnectables", "_$notifyConnectionChanged", "_$isConnected", "start", "n", "directiveParent", "_$setValue", "_$committedValue", "_$clear", "remove", "reparentDisconnectables", "newParent", "this", "_$disconnectableChildren", "removeDisconnectableFromParent", "_$parent", "addDisconnectableToParent", "notifyChildPartConnectedChanged", "isConnected", "isClearingValue", "fromPartIndex", "value", "_$committedValue", "children", "size", "Array", "isArray", "i", "length", "notifyChildrenConnectedChanged", "installDisconnectAPI", "AsyncDirective", "parent", "obj", "delete", "Set", "has", "add", "type", "PartType", "CHILD", "_$notifyConnectionChanged", "_$reparentDisconnectables", "Directive", "constructor", "part", "attributeIndex", "super", "_$initialize", "_$isConnected", "isClearingDirective", "reconnected", "disconnected", "isSingleExpression", "__part", "_$setValue", "newValues", "__attributeIndex", "init_async_directive", "init_async_directive", "f", "value", "e", "init_async_directive", "init_dist_ts", "f", "observable", "v", "e", "init_async_directive", "init_dist_ts", "f", "observable", "v", "e", "forAwaitOf", "PseudoWeakRef", "Pauser", "async", "iterable", "callback", "v", "ref", "this", "_ref", "disconnect", "deref", "constructor", "_promise", "_resolve", "get", "pause", "Promise", "resolve", "resume", "isPromise", "_infinity", "UntilDirective", "until", "x", "isPrimitive", "then", "AsyncDirective", "constructor", "this", "__lastRenderedIndex", "__values", "__weakThis", "PseudoWeakRef", "__pauser", "Pauser", "args", "find", "noChange", "_part", "previousValues", "previousLength", "length", "weakThis", "pauser", "isConnected", "disconnected", "i", "value", "Promise", "resolve", "async", "result", "get", "_this", "deref", "index", "indexOf", "setValue", "disconnect", "pause", "reconnected", "reconnect", "resume", "directive", "init_until", "AsyncReplaceDirective", "asyncReplace", "AsyncDirective", "constructor", "this", "__weakThis", "PseudoWeakRef", "__pauser", "Pauser", "value", "_mapper", "noChange", "_part", "mapper", "isConnected", "disconnected", "__value", "i", "weakThis", "pauser", "forAwaitOf", "async", "v", "get", "_this", "deref", "commitValue", "_index", "setValue", "disconnect", "pause", "reconnected", "reconnect", "resume", "directive", "asyncAppend", "directive", "AsyncReplaceDirective", "partInfo", "super", "type", "PartType", "CHILD", "Error", "part", "params", "this", "__childPart", "update", "value", "index", "clearPart", "newPart", "insertPart", "setChildPartValue", "init_async_append", "keyed", "directive", "Directive", "constructor", "this", "key", "nothing", "k", "v", "part", "setCommittedValue", "init_keyed", "generateMap", "repeat", "list", "start", "end", "map", "Map", "i", "set", "directive", "Directive", "partInfo", "super", "type", "PartType", "CHILD", "Error", "items", "keyFnOrTemplate", "template", "keyFn", "keys", "values", "index", "item", "this", "_getValuesAndKeys", "containerPart", "oldParts", "getCommittedValue", "newValues", "newKeys", "Array", "isArray", "_itemKeys", "oldKeys", "newParts", "newKeyToIndexMap", "oldKeyToIndexMap", "oldHead", "oldTail", "length", "newHead", "newTail", "setChildPartValue", "insertPart", "has", "oldIndex", "get", "oldPart", "newPart", "removePart", "setCommittedValue", "noChange", "init_repeat", "c", "i", "m", "init_until", "init_async_append", "init_keyed", "init_repeat", "dist_ts_exports", "t", "b", "n", "e", "r", "u", "o", "s", "init_dist_ts", "init_unsafe_html", "init_custom_element", "element", "a", "b", "init_dist_ts", "init_address", "init_contact", "init_dist_ts", "init_mongodescriptor", "init_objectaction", "init_objectstatus", "init_wrappeddata", "database_exports", "init_database", "init_mongodescriptor", "init_objectaction", "init_objectstatus", "init_wrappeddata", "init_document", "init_database", "init_business", "init_checkingaccount", "init_dist_ts", "init_currency", "init_expense", "init_dist_ts", "init_dist_ts", "init_payment", "init_transaction", "finance_exports", "init_finance", "init_checkingaccount", "init_currency", "init_expense", "init_payment", "init_transaction", "init_job", "init_finance", "init_contact", "init_letter", "init_business", "init_finance", "init_pdf", "init_project", "business_exports", "init_business", "init_address", "init_contact", "init_document", "init_job", "init_letter", "init_pdf", "init_project", "init_commitinfo", "init_statusobject", "code_exports", "init_code", "init_commitinfo", "init_statusobject", "init_container", "init_volumemount", "container_exports", "init_container", "init_volumemount", "init_article", "init_dist_ts", "init_author", "init_dist_ts", "init_documentationset", "init_article", "content_exports", "init_content", "init_article", "init_author", "init_documentationset", "init_date", "init_time", "general_exports", "init_general", "init_date", "init_time", "init_cert", "ICnameDescriptor", "init_cname", "init_cert", "init_device", "init_dns", "init_dnschallenge", "init_domaindelegation", "init_jwt", "init_networknode", "init_request", "init_reverseproxy", "init_ssh", "network_exports", "ICnameDescriptor", "init_network", "init_cert", "init_cname", "init_device", "init_dns", "init_dnschallenge", "init_domaindelegation", "init_jwt", "init_networknode", "init_request", "init_reverseproxy", "init_ssh", "init_product", "init_subscriptionplan", "init_product", "saas_exports", "init_saas", "init_subscriptionplan", "init_product", "storage_exports", "init_storage", "init_link", "init_menuitem", "init_linkblock", "website_exports", "init_website", "init_link", "init_menuitem", "init_linkblock", "init_typefest_own", "dist_ts_exports", "business_exports", "code_exports", "container_exports", "content_exports", "database_exports", "finance_exports", "general_exports", "network_exports", "saas_exports", "storage_exports", "website_exports", "init_dist_ts", "init_business", "init_code", "init_container", "init_database", "init_finance", "init_content", "init_general", "init_network", "init_saas", "init_storage", "init_website", "init_typefest_own", "init_plugins", "init_dist_ts", "init_dist_ts", "init_plugins", "b", "init_dist_ts", "t", "r", "n", "__esDecorate", "value", "b", "dist_ts_exports", "DeesWindowLayer", "__runInitializers", "domtools", "r", "a", "e", "n", "t", "o", "F", "u", "l", "i", "f", "ownKeys", "p", "get", "element", "css", "toArray", "node", "styles", "transform", "_ref", "path", "config", "s", "toHtml", "children", "prefix", "icons", "icon", "params", "dt", "value", "index", "arr", "Z", "key", "k", "mixout", "hooks", "c", "content", "_ref2", "resolve", "i2svg", "comment", "mark", "style", "root", "hclAdd", "hclRemove", "next", "position", "replace", "end", "noop", "M", "d", "h", "g", "m", "y", "w", "x", "b", "I", "v", "S", "A", "P", "j", "B", "N", "D", "T", "C", "W", "K", "R", "L", "E", "_", "O", "$", "reduce", "parse", "text", "set", "bindInternal4", "keys", "iterator", "build", "lookup", "emptyCanonicalIcon", "Library", "add", "definition", "noAuto", "autoReplace", "begin", "render", "mask", "layer", "counter", "provides", "hasPseudoElement", "parseCSSRuleForPseudos", "selector", "providers", "watch", "parseTransformString", "first", "prefix", "faFontAwesome", "faFontAwesomeFlag", "faFontAwesomeLogoFull", "icons", "prefix", "faSquareMinus", "faMinusSquare", "faCalendarCheck", "faFaceKiss", "faKiss", "faPaste", "faFileClipboard", "faHandPointLeft", "faFileExcel", "faEnvelope", "faSquareCaretDown", "faCaretSquareDown", "faTruck", "faBell", "faMessage", "faCommentAlt", "faFaceDizzy", "faDizzy", "faCalendarDays", "faCalendarAlt", "faHandPointUp", "faHandLizard", "faSquareFull", "faCirclePause", "faPauseCircle", "faHardDrive", "faHdd", "faFileZipper", "faFileArchive", "faFloppyDisk", "faSave", "faFaceGrinTongueSquint", "faGrinTongueSquint", "faCamera", "faCameraAlt", "faFaceGrinStars", "faGrinStars", "faEye", "faFaceSadTear", "faSadTear", "faShareFromSquare", "faShareSquare", "faNoteSticky", "faStickyNote", "faHandBackFist", "faHandRock", "faChessQueen", "faFaceGrinTears", "faGrinTears", "faPenToSquare", "faEdit", "faFaceGrinBeamSweat", "faGrinBeamSweat", "faClock", "faClockFour", "faFaceLaughWink", "faLaughWink", "faPaperPlane", "faHeart", "faFontAwesome", "faFontAwesomeFlag", "faFontAwesomeLogoFull", "faClone", "faFolderOpen", "faWindowMinimize", "faStarHalf", "faAlarmClock", "faNewspaper", "faHospital", "faHospitalAlt", "faHospitalWide", "faCircleStop", "faStopCircle", "faObjectUngroup", "faComment", "faChessPawn", "faCalendarPlus", "faClipboard", "faThumbsDown", "faIdBadge", "faSquareCheck", "faCheckSquare", "faChessBishop", "faEnvelopeOpen", "faCircleXmark", "faTimesCircle", "faXmarkCircle", "faSquareCaretUp", "faCaretSquareUp", "faFileImage", "faSquareCaretRight", "faCaretSquareRight", "faSun", "faImage", "faLightbulb", "faAddressCard", "faContactCard", "faVcard", "faFaceMeh", "faMeh", "faMap", "faHandPointDown", "faFaceMehBlank", "faMehBlank", "faFaceGrinTongue", "faGrinTongue", "faFutbol", "faFutbolBall", "faSoccerBall", "faFaceSurprise", "faSurprise", "faFolder", "faFolderBlank", "faCloud", "faCircle", "faFaceGrinSquint", "faGrinSquint", "faCircleUser", "faUserCircle", "faRectangleList", "faListAlt", "faHand", "faHandPaper", "faThumbsUp", "faBuilding", "faChessRook", "faCircleQuestion", "faQuestionCircle", "faFile", "faFaceSadCry", "faSadCry", "faCalendarMinus", "faFaceTired", "faTired", "faHandPointRight", "faCircleUp", "faArrowAltCircleUp", "faHandScissors", "faGem", "faRectangleXmark", "faRectangleTimes", "faTimesRectangle", "faWindowClose", "faTrashCan", "faTrashAlt", "faLifeRing", "faCopyright", "faCircleLeft", "faArrowAltCircleLeft", "faCalendar", "faFaceFrownOpen", "faFrownOpen", "faChartBar", "faBarChart", "faWebAwesome", "faHouse", "faHome", "faHomeAlt", "faHomeLgAlt", "faFaceFrown", "faFrown", "faUser", "faUserAlt", "faUserLarge", "faSnowflake", "faBookmark", "faSquareCaretLeft", "faCaretSquareLeft", "faHandshake", "faHandshakeAlt", "faHandshakeSimple", "faFaceSmileWink", "faSmileWink", "faFaceGrinSquintTears", "faGrinSquintTears", "faFileAudio", "faCalendarXmark", "faCalendarTimes", "faCircleDown", "faArrowAltCircleDown", "faFileLines", "faFileAlt", "faFileText", "faComments", "faCircleCheck", "faCheckCircle", "faMoon", "faClosedCaptioning", "faImages", "faCircleRight", "faArrowAltCircleRight", "faIdCard", "faDriversLicense", "faCirclePlay", "faPlayCircle", "faFaceLaughBeam", "faLaughBeam", "faAddressBook", "faContactBook", "faHourglass", "faHourglassEmpty", "faHeadphones", "faHeadphonesAlt", "faHeadphonesSimple", "faFilePowerpoint", "faWindowMaximize", "faCommentDots", "faCommenting", "faFaceGrinTongueWink", "faGrinTongueWink", "faHourglassHalf", "faHourglass2", "faCreditCard", "faCreditCardAlt", "faHandSpock", "faBellSlash", "faStar", "faFlag", "faLemon", "faWindowRestore", "faFaceGrinHearts", "faGrinHearts", "faFaceKissBeam", "faKissBeam", "faFilePdf", "faFaceGrinWide", "faGrinAlt", "faFaceLaughSquint", "faLaughSquint", "faFaceKissWinkHeart", "faKissWinkHeart", "faCopy", "faChessKing", "faSquarePlus", "faPlusSquare", "faFileCode", "faFaceGrinWink", "faGrinWink", "faMoneyBill1", "faMoneyBillAlt", "faEyeSlash", "faFileWord", "faFaceAngry", "faAngry", "faChessKnight", "faFaceGrinBeam", "faGrinBeam", "faHandPeace", "faCompass", "faSquare", "faFaceGrin", "faGrin", "faFaceSmile", "faSmile", "faFaceSmileBeam", "faSmileBeam", "faFolderClosed", "faKeyboard", "faFaceRollingEyes", "faMehRollingEyes", "faFaceGrimace", "faGrimace", "faCircleDot", "faDotCircle", "faObjectGroup", "faHourglass3", "faFaceFlushed", "faFlushed", "faStarHalfStroke", "faStarHalfAlt", "faFileVideo", "faFaceLaugh", "faLaugh", "faHandPointer", "faRegistered", "icons", "children", "element", "createElement", "index", "string", "match", "p2", "icons", "Image", "Infinity", "Info", "Key", "Keyboard", "Layers", "Library", "Map", "Tag", "Timer", "X", "root", "demoFunc", "init_dist_ts", "faIcons", "icons", "key", "isFunction", "type", "b", "key", "lucideIcons", "faIcons", "icons", "init_dist_ts", "faBell", "faBuilding", "faCircleCheck", "faCircleXmark", "faCopy", "faEye", "faEyeSlash", "faMessage", "faPaste", "faPenToSquare", "faSun", "faTrashCan", "t", "n", "value", "__esDecorate", "demoFunc", "__runInitializers", "b", "type", "icon", "init_plugins", "init_dist_ts", "t", "n", "__esDecorate", "value", "DeesContextmenu", "path", "element", "__runInitializers", "b", "init_dist_ts", "t", "n", "__esDecorate", "value", "__runInitializers", "b", "resolve", "demoFunc", "init_dist_ts", "b", "init_dist_ts", "t", "r", "__esDecorate", "value", "demoFunc", "__runInitializers", "b", "timestamp", "e", "entries", "type", "icons", "init_dees_appui_activitylog", "init_plugins", "init_interfaces", "demoFunc", "init_dist_ts", "b", "e", "init_dist_ts", "init_dist_ts", "b", "init_dist_ts", "t", "n", "__esDecorate", "value", "b", "__runInitializers", "init_plugins", "init_dist_ts", "t", "n", "__esDecorate", "value", "b", "__runInitializers", "init_dist_ts", "init_interfaces", "init_plugins", "t", "n", "r", "__esDecorate", "value", "demoFunc", "__runInitializers", "b", "index", "e", "demoFunc", "init_dist_ts", "b", "init_dist_ts", "t", "r", "__esDecorate", "value", "demoFunc", "__runInitializers", "w", "a", "b", "index", "e", "init_dees_appui_bottombar", "demoFunc", "init_dist_ts", "b", "init_dist_ts", "init_dist_ts", "t", "n", "__esDecorate", "value", "demoFunc", "__runInitializers", "b", "_a", "demoFunc", "init_dist_ts", "count", "_", "i", "b", "core", "t", "init_dist_ts", "n", "__esDecorate", "value", "__runInitializers", "demoFunc", "init_dist_ts", "b", "init_dist_ts", "t", "n", "__esDecorate", "value", "demoFunc", "__runInitializers", "b", "demoFunc", "init_dist_ts", "b", "init_plugins", "init_dist_ts", "t", "n", "r", "__esDecorate", "value", "demoFunc", "body", "DeesModal", "__runInitializers", "b", "index", "domtools", "demoFunc", "init_dist_ts", "b", "init_plugins", "init_dist_ts", "t", "n", "__esDecorate", "value", "demoFunc", "__runInitializers", "b", "init_dist_ts", "t", "n", "__esDecorate", "value", "b", "__runInitializers", "DeesWorkspaceMonaco", "editor", "css", "position", "init_dist_ts", "t", "n", "r", "__esDecorate", "value", "b", "__runInitializers", "l", "e", "option", "modal", "toolbar", "resolve", "content", "demoFunc", "init_demo", "init_dist_ts", "init_component", "b", "value", "formatters", "now", "init_styles", "init_dist_ts", "init_template", "init_dist_ts", "days", "b", "isToday", "e", "init_dist_ts", "init_demo", "init_styles", "init_template", "t", "n", "r", "__esDecorate", "value", "demoFunc", "__runInitializers", "now", "formatter", "path", "days", "i", "min", "max", "disabled", "e", "_", "init_component", "demoFunc", "init_dist_ts", "b", "position", "value", "init_dist_ts", "t", "n", "__esDecorate", "value", "demoFunc", "__runInitializers", "b", "demoFunc", "init_dist_ts", "b", "element", "e", "init_dist_ts", "t", "n", "__esDecorate", "value", "demoFunc", "__runInitializers", "b", "e", "demoFunc", "init_dist_ts", "b", "init_dist_ts", "t", "n", "__esDecorate", "value", "demoFunc", "__runInitializers", "b", "e", "demoFunc", "init_dist_ts", "b", "e", "init_dist_ts", "t", "n", "__esDecorate", "value", "demoFunc", "__runInitializers", "option", "b", "e", "key", "demoFunc", "init_dist_ts", "b", "init_dist_ts", "t", "n", "__esDecorate", "value", "demoFunc", "__runInitializers", "b", "domtools", "demoFunc", "init_dist_ts", "b", "init_dist_ts", "t", "n", "r", "__esDecorate", "value", "demoFunc", "__runInitializers", "b", "e", "option", "index", "path", "key", "demoFunc", "init_demo", "init_dist_ts", "init_component", "b", "init_styles", "init_dist_ts", "init_demo", "init_styles", "init_dist_ts", "t", "n", "r", "__esDecorate", "value", "demoFunc", "__runInitializers", "b", "units", "type", "prefix", "index", "init_component", "params", "c", "code", "ValidationErrorsIBAN", "ValidationErrorsBIC", "index", "prefix", "demoFunc", "init_dist_ts", "b", "init_dist_ts", "t", "r", "n", "__esDecorate", "value", "demoFunc", "__runInitializers", "b", "demoFunc", "init_dist_ts", "b", "init_dist_ts", "t", "n", "__esDecorate", "value", "demoFunc", "__runInitializers", "b", "option", "resolve", "demoFunc", "init_dist_ts", "b", "init_dist_ts", "t", "r", "n", "__esDecorate", "value", "demoFunc", "__runInitializers", "b", "i", "demoFunc", "init_dist_ts", "b", "init_dist_ts", "t", "n", "__esDecorate", "value", "demoFunc", "__runInitializers", "b", "r", "track", "demoFunc", "init_dist_ts", "b", "init_dist_ts", "t", "n", "r", "__esDecorate", "value", "demoFunc", "__runInitializers", "b", "e", "demoFunc", "init_plugins", "init_dist_ts", "b", "v", "u", "e", "table", "r", "_", "i", "init_styles", "init_dist_ts", "data", "keys", "key", "c", "k", "s", "col", "a", "b", "s", "raw", "m", "t", "c", "a", "b", "coerce", "lo", "ok", "v", "init_plugins", "init_dist_ts", "init_styles", "t", "n", "__esDecorate", "value", "demoFunc", "__runInitializers", "b", "e", "c", "key", "content", "domtools", "table", "cells", "i", "cell", "r", "count", "init_dees_table", "demoFunc", "init_dist_ts", "b", "data", "dist_ts_exports", "init_dist_ts", "init_dees_table", "t", "n", "__esDecorate", "value", "demoFunc", "__runInitializers", "b", "children", "demoFunc", "init_dist_ts", "b", "type", "icon", "position", "e", "dist_ts_exports", "index", "init_dist_ts", "t", "n", "__esDecorate", "value", "demoFunc", "__runInitializers", "node", "children", "b", "init_plugins", "init_dist_ts", "t", "n", "r", "__esDecorate", "value", "demoFunc", "__runInitializers", "b", "e", "a", "data", "max", "min", "range", "index", "x", "y", "core", "k", "i", "type", "demoFunc", "init_dist_ts", "t", "r", "__esDecorate", "value", "__runInitializers", "context", "keys", "b", "e", "init_dist_ts", "params", "i", "element", "content", "context", "demoFunc", "init_dist_ts", "b", "init_plugins", "init_interfaces", "init_dist_ts", "t", "n", "__esDecorate", "value", "demoFunc", "__runInitializers", "b", "demoFunc", "init_dist_ts", "b", "keys", "e", "init_plugins", "init_interfaces", "init_dist_ts", "t", "n", "r", "__esDecorate", "value", "demoFunc", "__runInitializers", "b", "e", "option", "demoFunc", "init_dist_ts", "init_interfaces", "t", "r", "__esDecorate", "value", "__runInitializers", "b", "e", "text", "init_interfaces", "init_dist_ts", "t", "n", "r", "__esDecorate", "value", "demoFunc", "__runInitializers", "b", "tab", "e", "content", "init_interfaces", "init_dist_ts", "t", "n", "__esDecorate", "value", "b", "__runInitializers", "e", "init_dist_ts", "init_interfaces", "t", "n", "r", "__esDecorate", "value", "demoFunc", "__runInitializers", "b", "e", "config", "tab", "i", "params", "match", "element", "init_dees_appui", "init_dees_appui_maincontent", "init_dees_appui_mainmenu", "init_dees_appui_secondarymenu", "init_dees_appui_profiledropdown", "init_dees_appui_tabs", "init_plugins", "init_dist_ts", "t", "n", "r", "__esDecorate", "value", "b", "DeesMobilenavigation", "__runInitializers", "dist_ts_exports", "index", "domtools", "init_dees_mobilenavigation", "init_dees_appui_activitylog", "init_dees_appui_bottombar", "init_dees_appui", "init_dees_appui_maincontent", "init_dees_appui_mainmenu", "init_dees_appui_secondarymenu", "init_dees_appui_profiledropdown", "init_dees_appui_tabs", "init_dees_mobilenavigation", "init_dees_button", "init_dist_ts", "t", "n", "__esDecorate", "value", "b", "__runInitializers", "init_dees_button_exit", "demoFunc", "init_dist_ts", "b", "init_dist_ts", "t", "n", "__esDecorate", "value", "demoFunc", "__runInitializers", "b", "init_dees_button_group", "init_dees_button", "init_dees_button_exit", "init_dees_button_group", "demoFunc", "init_demo", "init_dist_ts", "init_component", "b", "formatters", "interval", "data", "now", "i", "timestamp", "value", "min", "max", "index", "text", "buttons", "init_styles", "init_dist_ts", "init_template", "init_dist_ts", "b", "version", "library", "init_dist_ts", "init_demo", "init_styles", "init_template", "t", "r", "n", "__esDecorate", "value", "demoFunc", "__runInitializers", "resolve", "w", "formatter", "s", "index", "color", "mainbox", "now", "point", "d", "init_component", "demoFunc", "init_dist_ts", "b", "i", "message", "now", "text", "init_dist_ts", "t", "n", "r", "__esDecorate", "value", "demoFunc", "__runInitializers", "b", "e", "resolve", "message", "timestamp", "text", "data", "count", "now", "init_dees_chart_log", "init_dees_chart_log", "demoFunc", "init_dist_ts", "b", "init_dist_ts", "t", "n", "__esDecorate", "value", "demoFunc", "__runInitializers", "b", "init_dees_dataview_codebox", "demoFunc", "init_dist_ts", "b", "init_plugins", "init_dist_ts", "t", "n", "__esDecorate", "value", "demoFunc", "__runInitializers", "b", "text", "type", "init_dees_dataview_statusobject", "init_dees_statsgrid", "init_dees_dataview_codebox", "init_dees_dataview_statusobject", "init_dees_table", "init_dees_statsgrid", "init_dist_ts", "t", "r", "__esDecorate", "value", "e", "b", "__runInitializers", "type", "resolve", "init_dees_actionbar", "demoFunc", "init_dist_ts", "b", "init_dist_ts", "t", "n", "__esDecorate", "value", "demoFunc", "__runInitializers", "b", "init_dees_badge", "demoFunc", "init_dist_ts", "b", "init_dist_ts", "t", "n", "__esDecorate", "value", "demoFunc", "__runInitializers", "b", "init_dees_hint", "demoFunc", "init_dist_ts", "b", "init_plugins", "init_dist_ts", "t", "n", "__esDecorate", "value", "demoFunc", "__runInitializers", "b", "init_dees_progressbar", "init_dist_ts", "t", "n", "__esDecorate", "value", "b", "__runInitializers", "init_dees_spinner", "demoFunc", "init_dist_ts", "b", "i", "init_dist_ts", "t", "n", "__esDecorate", "value", "demoFunc", "position", "DeesToast", "message", "__runInitializers", "icons", "b", "resolve", "init_dees_toast", "init_dees_actionbar", "init_dees_badge", "init_dees_hint", "init_dees_progressbar", "init_dees_spinner", "init_dees_toast", "init_dees_form", "init_dees_form_submit", "init_dees_form", "init_dees_form_submit", "init_dees_input_base", "init_dees_input_checkbox", "init_dees_input_code", "init_dees_input_dropdown", "init_dees_input_iban", "demoFunc", "init_dist_ts", "b", "e", "data", "init_dist_ts", "t", "n", "r", "__esDecorate", "value", "demoFunc", "__runInitializers", "b", "index", "e", "_", "i", "message", "handled", "init_dees_input_list", "init_dees_input_multitoggle", "init_dees_input_phone", "init_dees_input_quantityselector", "init_dees_input_radiogroup", "demoFunc", "init_demo", "init_dist_ts", "init_component", "b", "e", "init_styles", "init_dist_ts", "init_template", "init_dist_ts", "b", "init_demo", "init_styles", "init_template", "init_dist_ts", "t", "n", "r", "__esDecorate", "value", "demoFunc", "__runInitializers", "b", "text", "e", "init_component", "init_dees_input_searchselect", "_a", "demoFunc", "init_dist_ts", "b", "e", "init_dist_ts", "t", "n", "r", "__esDecorate", "value", "demoFunc", "__runInitializers", "b", "e", "index", "s", "init_dees_input_tags", "init_dees_input_text", "init_dees_input_toggle", "init_dees_input_typelist", "demoFunc", "init_dist_ts", "timestamp", "html", "b", "resolve", "content", "type", "init_dist_ts", "t", "r", "__esDecorate", "value", "DeesSlashMenu", "__runInitializers", "b", "index", "type", "position", "filter", "e", "range", "element", "position", "text", "x", "y", "e", "node", "init_dist_ts", "position", "b", "e", "value", "range", "node", "element", "link", "coords", "init_dist_ts", "t", "r", "__esDecorate", "value", "DeesFormattingMenu", "__runInitializers", "b", "position", "e", "init_dist_ts", "init_dist_ts", "text", "k", "i", "content", "html", "index", "node", "element", "li", "match", "init_dist_ts", "content", "handlers", "b", "e", "element", "range", "type", "content", "b", "resolve", "index", "element", "handlers", "type", "handler", "init_dist_ts", "element", "handlers", "e", "wysiwygBlock", "range", "i", "context", "position", "content", "init_dist_ts", "type", "element", "handlers", "e", "wysiwygBlock", "range", "i", "context", "position", "content", "init_dist_ts", "element", "handlers", "e", "wysiwygBlock", "range", "context", "position", "content", "init_dist_ts", "content", "i", "value", "element", "handlers", "e", "err", "range", "text", "position", "init_dist_ts", "content", "element", "handlers", "e", "range", "wysiwygBlock", "context", "li", "i", "position", "init_dist_ts", "element", "handlers", "e", "resolve", "text", "content", "position", "init_dist_ts", "element", "handlers", "e", "patterns", "match", "text", "content", "position", "init_dist_ts", "element", "handlers", "e", "f", "resolve", "k", "i", "text", "content", "position", "init_dist_ts", "element", "handlers", "e", "init_dist_ts", "content", "html", "element", "handlers", "e", "end", "value", "match", "text", "position", "init_dist_ts", "content", "element", "handlers", "e", "end", "value", "text", "html", "match", "position", "init_dist_ts", "resolve", "b", "content", "e", "e", "li", "content", "type", "element", "range", "e", "key", "range", "nonEditableTypes", "actualContent", "element", "i", "position", "e", "now", "b", "i", "transform", "a", "blockElements", "index", "now", "init_dist_ts", "t", "n", "__esDecorate", "value", "__runInitializers", "styles", "type", "handler", "element", "e", "range", "u", "context", "DeesWysiwygBlock", "position", "content", "b", "init_dees_input_wysiwyg", "init_dist_ts", "t", "n", "r", "__esDecorate", "value", "demoFunc", "__runInitializers", "e", "b", "u", "content", "type", "resolve", "blockComponent", "i", "range", "debounce", "init_dees_input_wysiwyg", "resolve", "e", "x", "y", "handle", "key", "format", "init_dist_ts", "t", "n", "r", "__esDecorate", "value", "__runInitializers", "b", "e", "resolve", "demoFunc", "init_dist_ts", "b", "init_dist_ts", "t", "n", "r", "__esDecorate", "value", "demoFunc", "__runInitializers", "b", "e", "base64", "init_dees_input_base", "init_dees_input_checkbox", "init_dees_input_code", "init_dees_input_dropdown", "init_dees_input_iban", "init_dees_input_list", "init_dees_input_multitoggle", "init_dees_input_phone", "init_dees_input_quantityselector", "init_dees_input_radiogroup", "init_dees_input_searchselect", "init_dees_input_tags", "init_dees_input_text", "init_dees_input_toggle", "init_dees_input_typelist", "init_dees_input_wysiwyg", "demoFunc", "init_dist_ts", "b", "init_dist_ts", "t", "n", "__esDecorate", "value", "demoFunc", "__runInitializers", "b", "init_dees_chips", "demoFunc", "init_dist_ts", "b", "index", "text", "w", "e", "init_styles", "init_dist_ts", "resolved", "x", "y", "w", "h", "next", "position", "a", "b", "clamp", "value", "min", "max", "handler", "init_plugins", "init_dist_ts", "init_styles", "t", "n", "r", "__esDecorate", "value", "demoFunc", "__runInitializers", "b", "i", "transform", "w", "handler", "key", "delta", "type", "x", "y", "h", "position", "init_dees_dashboardgrid", "demoFunc", "b", "init_dist_ts", "init_dist_ts", "t", "n", "__esDecorate", "value", "demoFunc", "__runInitializers", "b", "init_dees_heading", "init_dees_label", "demoFunc", "init_dist_ts", "b", "e", "init_dist_ts", "t", "n", "__esDecorate", "value", "demoFunc", "__runInitializers", "i", "end", "b", "p", "init_dees_pagination", "init_dees_panel", "init_dist_ts", "b", "init_plugins", "init_dist_ts", "t", "n", "__esDecorate", "value", "__runInitializers", "b", "init_dees_stepper", "init_dees_chips", "init_dees_dashboardgrid", "init_dees_heading", "init_dees_label", "init_dees_pagination", "init_dees_panel", "init_dees_stepper", "init_demo", "init_dist_ts", "b", "init_dist_ts", "init_demo", "t", "n", "r", "__esDecorate", "value", "__runInitializers", "b", "link", "e", "init_component", "demo", "init_demo", "init_dist_ts", "b", "init_dist_ts", "init_demo", "t", "n", "r", "__esDecorate", "value", "demo", "__runInitializers", "b", "v", "i", "j", "max", "x", "y", "e", "init_component", "demo", "init_demo", "init_dist_ts", "b", "init_dist_ts", "init_demo", "t", "n", "r", "__esDecorate", "value", "demo", "__runInitializers", "b", "e", "v", "init_component", "init_dist_ts", "document", "init_styles", "init_dist_ts", "demo", "init_demo", "init_dist_ts", "b", "init_dist_ts", "init_styles", "init_demo", "t", "n", "__esDecorate", "value", "demo", "__runInitializers", "b", "resolve", "_", "i", "buffer", "p", "x", "y", "text", "e", "context", "data", "link", "element", "styles", "min", "max", "demoFunc", "init_dist_ts", "b", "init_dist_ts", "init_component", "t", "n", "r", "__esDecorate", "value", "demoFunc", "__runInitializers", "b", "key", "prefix", "type", "init_dees_preview", "init_dist_ts", "t", "n", "__esDecorate", "value", "b", "__runInitializers", "DeesPdf", "dist_ts_exports", "context", "link", "init_component", "init_styles", "init_dist_ts", "init_dist_ts", "init_styles", "n", "__esDecorate", "value", "__runInitializers", "b", "canvas", "ctx", "a", "b", "index", "debounce", "wait", "timeout", "throttle", "k", "i", "element", "init_utils", "a", "b", "init_styles", "init_dist_ts", "demo", "init_demo", "init_dist_ts", "count", "i", "b", "e", "init_dist_ts", "init_styles", "init_utils", "init_demo", "t", "n", "__esDecorate", "value", "demo", "__runInitializers", "b", "e", "x", "resolve", "link", "init_dist_ts", "init_component", "t", "__esDecorate", "__runInitializers", "init_component", "init_utils", "init_component", "init_styles", "init_component", "demo", "init_demo", "init_dist_ts", "b", "e", "init_dist_ts", "init_styles", "init_demo", "t", "n", "r", "__esDecorate", "value", "demo", "__runInitializers", "b", "e", "init_component", "demo", "init_demo", "init_dist_ts", "b", "e", "init_dist_ts", "init_styles", "init_demo", "t", "n", "r", "__esDecorate", "value", "demo", "__runInitializers", "b", "resolve", "i", "j", "max", "v", "x", "y", "init_component", "demo", "init_demo", "init_dist_ts", "b", "e", "init_dist_ts", "init_styles", "init_demo", "t", "n", "r", "__esDecorate", "value", "demo", "__runInitializers", "b", "resolve", "e", "init_component", "demo", "init_demo", "init_dist_ts", "b", "e", "init_dist_ts", "init_styles", "init_demo", "t", "n", "r", "__esDecorate", "value", "demo", "__runInitializers", "b", "e", "x", "init_component", "demo", "init_demo", "init_dist_ts", "b", "e", "init_dist_ts", "init_styles", "init_demo", "t", "n", "__esDecorate", "value", "demo", "__runInitializers", "b", "init_component", "init_dees_preview", "init_dees_contextmenu", "init_dees_modal", "demoFunc", "init_dist_ts", "b", "init_plugins", "init_dist_ts", "t", "n", "__esDecorate", "value", "demoFunc", "__runInitializers", "b", "DeesSpeechbubble", "dist_ts_exports", "o", "init_dees_speechbubble", "init_dees_windowlayer", "init_dees_contextmenu", "init_dees_modal", "init_dees_speechbubble", "init_dees_windowlayer", "init_interfaces", "init_constants", "listener", "data", "listener", "resolve", "init_constants", "editorOrigin", "init_constants", "key", "value", "i", "code", "init_code", "resolve", "value", "message", "init_constants", "init_code", "editorOrigin", "listener", "PreviewMessageType", "type", "path", "value", "wrap", "p", "r", "last", "v", "w", "context", "handler", "resolve", "l", "__defProp", "__export", "isObject", "all", "data", "init_utils", "s", "i", "key", "listener", "data", "resolve", "onMessage", "list", "push", "auth", "init_utils", "process", "path", "message", "subscribe", "_listener", "buffer", "path", "process", "init_interfaces", "init_dees_shopping_productcard", "type", "tab", "a", "b", "e", "process", "init_dist_ts", "t", "n", "r", "__esDecorate", "value", "env", "b", "__runInitializers", "tab", "e", "process", "data", "message", "resolve", "i", "key", "demoFunc", "init_dist_ts", "t", "__esDecorate", "b", "e", "__runInitializers", "init_dist_ts", "t", "n", "r", "__esDecorate", "value", "demoFunc", "__runInitializers", "b", "domtools", "DeesWorkspaceTerminal", "init_dees_simple_appdash", "demoFunc", "init_dist_ts", "b", "e", "init_dist_ts", "t", "n", "__esDecorate", "value", "demoFunc", "__runInitializers", "b", "domtools", "init_dees_simple_login", "init_dees_shopping_productcard", "init_dees_simple_appdash", "init_dees_simple_login", "init_dees_icon", "demoFunc", "init_dist_ts", "e", "b", "init_dist_ts", "t", "n", "__esDecorate", "value", "demoFunc", "__runInitializers", "b", "e", "init_dees_searchbar", "demoFunc", "init_dist_ts", "b", "init_dist_ts", "t", "n", "__esDecorate", "value", "demoFunc", "__runInitializers", "b", "styles", "key", "init_dees_theme", "demoFunc", "init_dist_ts", "init_dist_ts", "t", "n", "__esDecorate", "value", "demoFunc", "DeesUpdater", "__runInitializers", "dist_ts_exports", "b", "init_dees_updater", "init_dees_windowcontrols", "init_dees_icon", "init_dees_searchbar", "init_dees_theme", "init_dees_updater", "init_dees_windowcontrols", "init_dist_ts", "t", "n", "r", "__esDecorate", "value", "b", "__runInitializers", "node", "e", "resolve", "contentEl", "content", "a", "path", "init_dist_ts", "t", "n", "__esDecorate", "value", "b", "__runInitializers", "init_dist_ts", "t", "n", "r", "__esDecorate", "value", "__runInitializers", "e", "b", "content", "process", "resolve", "data", "env", "content", "match", "path", "init_dist_ts", "t", "n", "__esDecorate", "value", "b", "__runInitializers", "resolve", "timestamp", "init_dist_ts", "t", "n", "r", "__esDecorate", "value", "env", "b", "__runInitializers", "e", "content", "config", "process", "data", "resolve", "path", "timeout", "f", "m", "init_dees_workspace", "init_dees_workspace_monaco", "init_dees_workspace_filetree", "init_interfaces", "init_dees_workspace_terminal", "init_interfaces", "init_dees_workspace_terminal_preview", "init_dist_ts", "dist_ts_exports", "t", "n", "r", "__esDecorate", "value", "b", "__runInitializers", "html", "e", "init_dees_workspace_markdown", "demoFunc", "init_dist_ts", "b", "init_dist_ts", "t", "__esDecorate", "demoFunc", "b", "__runInitializers", "init_dees_workspace_markdownoutlet", "init_dees_workspace_bottombar", "init_dees_workspace_diff_editor", "init_dees_workspace", "init_dees_workspace_monaco", "init_dees_workspace_filetree", "init_dees_workspace_terminal", "init_dees_workspace_terminal_preview", "init_dees_workspace_markdown", "init_dees_workspace_markdownoutlet", "init_dees_workspace_bottombar", "init_dees_workspace_diff_editor", "init_dees_search", "init_dist_ts", "init_dees_tooltip", "init_dees_search", "init_dees_tooltip", "dist_ts_web_exports", "debounce", "icons", "throttle", "init_dist_ts_web", "init_plugins", "init_dist_ts", "init_dist_ts_web", "dist_ts_exports", "init_plugins", "init_dist_ts", "init_identity", "init_project", "init_data", "init_identity", "init_project", "init_plugins", "init_data", "init_plugins", "init_data", "init_plugins", "init_data", "init_plugins", "init_data", "init_plugins", "init_data", "init_plugins", "init_data", "init_plugins", "init_data", "init_plugins", "init_data", "init_plugins", "context", "c", "s", "init_dist_ts", "_a", "init_plugins", "init_dist_ts", "t", "r", "s", "p", "b", "_connectionsState_dec", "_a", "_init", "_connectionsState", "init_connections", "init_plugins", "init_dist_ts", "t", "r", "sub", "s", "b", "dist_ts_web_exports", "data", "_dataState_dec", "_connectionsState_dec", "_a", "_init", "_connectionsState", "_dataState", "init_projects", "init_plugins", "init_dist_ts", "t", "r", "s", "c", "b", "o", "e", "_selectedConnectionId_dec", "_dataState_dec", "_connectionsState_dec", "_a", "_init", "_connectionsState", "_dataState", "_selectedConnectionId", "init_groups", "init_plugins", "init_dist_ts", "t", "r", "s", "c", "b", "o", "e", "_selectedConnectionId_dec", "_dataState_dec", "_connectionsState_dec", "_a", "_init", "_connectionsState", "_dataState", "_selectedConnectionId", "init_secrets", "init_plugins", "init_dist_ts", "t", "r", "s", "c", "p", "g", "b", "o", "e", "dist_ts_web_exports", "data", "_selectedConnectionId_dec", "_dataState_dec", "_connectionsState_dec", "_a", "_init", "_connectionsState", "_dataState", "_selectedConnectionId", "init_pipelines", "init_plugins", "init_dist_ts", "t", "r", "s", "c", "p", "b", "o", "e", "dist_ts_web_exports", "_selectedProjectId_dec", "_selectedConnectionId_dec", "_dataState_dec", "_connectionsState_dec", "_a", "_init", "_connectionsState", "_dataState", "_selectedConnectionId", "_selectedProjectId", "init_plugins", "init_dist_ts", "t", "r", "s", "c", "p", "j", "b", "o", "e", "init_plugins", "init_dist_ts", "_a", "_init", "t", "r", "b", "tab", "e", "domtools", "init_connections", "init_projects", "init_groups", "init_secrets", "init_pipelines", "init_plugins", "init_dist_ts", "dist_ts_exports", "b"] -} diff --git a/ts_bundled/bundle.ts b/ts_bundled/bundle.ts index 6d73466..d70b86e 100644 --- a/ts_bundled/bundle.ts +++ b/ts_bundled/bundle.ts @@ -2,7 +2,7 @@ export const files: { path: string; contentBase64: string }[] = [ { "path": "bundle.js", - "contentBase64": "dmFyIFk1ZT1PYmplY3QuY3JlYXRlLFY1ZT1PYmplY3QuZnJlZXplLEo0PU9iamVjdC5kZWZpbmVQcm9wZXJ0eTt2YXIgWjVlPU9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3I7dmFyIFV1cj1PYmplY3QuZ2V0T3duUHJvcGVydHlOYW1lczt2YXIgV3VyPU9iamVjdC5nZXRQcm90b3R5cGVPZixHdXI9T2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eTt2YXIgWDVlPShlLHQpPT4odD1TeW1ib2xbZV0pP3Q6U3ltYm9sLmZvcigiU3ltYm9sLiIrZSksbzU9ZT0+e3Rocm93IFR5cGVFcnJvcihlKX07dmFyIFE1ZT0oZSx0LHIpPT50IGluIGU/SjQoZSx0LHtlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMCx2YWx1ZTpyfSk6ZVt0XT1yO3ZhciBVNWU9KGUsdCk9Pko0KGUsIm5hbWUiLHt2YWx1ZTp0LGNvbmZpZ3VyYWJsZTohMH0pLFJjPShlPT50eXBlb2YgcmVxdWlyZTwidSI/cmVxdWlyZTp0eXBlb2YgUHJveHk8InUiP25ldyBQcm94eShlLHtnZXQ6KHQscik9Pih0eXBlb2YgcmVxdWlyZTwidSI/cmVxdWlyZTp0KVtyXX0pOmUpKGZ1bmN0aW9uKGUpe2lmKHR5cGVvZiByZXF1aXJlPCJ1IilyZXR1cm4gcmVxdWlyZS5hcHBseSh0aGlzLGFyZ3VtZW50cyk7dGhyb3cgRXJyb3IoJ0R5bmFtaWMgcmVxdWlyZSBvZiAiJytlKyciIGlzIG5vdCBzdXBwb3J0ZWQnKX0pO3ZhciBwPShlLHQpPT4oKT0+KGUmJih0PWUoZT0wKSksdCk7dmFyIGplPShlLHQpPT4oKT0+KHR8fGUoKHQ9e2V4cG9ydHM6e319KS5leHBvcnRzLHQpLHQuZXhwb3J0cyksRmU9KGUsdCk9Pntmb3IodmFyIHIgaW4gdClKNChlLHIse2dldDp0W3JdLGVudW1lcmFibGU6ITB9KX0sWXVyPShlLHQscixpKT0+e2lmKHQmJnR5cGVvZiB0PT0ib2JqZWN0Inx8dHlwZW9mIHQ9PSJmdW5jdGlvbiIpZm9yKGxldCBhIG9mIFV1cih0KSkhR3VyLmNhbGwoZSxhKSYmYSE9PXImJko0KGUsYSx7Z2V0OigpPT50W2FdLGVudW1lcmFibGU6IShpPVo1ZSh0LGEpKXx8aS5lbnVtZXJhYmxlfSk7cmV0dXJuIGV9O3ZhciBlcj0oZSx0LHIpPT4ocj1lIT1udWxsP1k1ZShXdXIoZSkpOnt9LFl1cih0fHwhZXx8IWUuX19lc01vZHVsZT9KNChyLCJkZWZhdWx0Iix7dmFsdWU6ZSxlbnVtZXJhYmxlOiEwfSk6cixlKSk7dmFyIG9hPWU9PlssLCxZNWUoZT8uW1g1ZSgibWV0YWRhdGEiKV0/P251bGwpXSxKNWU9WyJjbGFzcyIsIm1ldGhvZCIsImdldHRlciIsInNldHRlciIsImFjY2Vzc29yIiwiZmllbGQiLCJ2YWx1ZSIsImdldCIsInNldCJdLENoPWU9PmUhPT12b2lkIDAmJnR5cGVvZiBlIT0iZnVuY3Rpb24iP281KCJGdW5jdGlvbiBleHBlY3RlZCIpOmUsWnVyPShlLHQscixpLGEpPT4oe2tpbmQ6SjVlW2VdLG5hbWU6dCxtZXRhZGF0YTppLGFkZEluaXRpYWxpemVyOm49PnIuXz9vNSgiQWxyZWFkeSBpbml0aWFsaXplZCIpOmEucHVzaChDaChufHxudWxsKSl9KSxYdXI9KGUsdCk9PlE1ZSh0LFg1ZSgibWV0YWRhdGEiKSxlWzNdKSxldD0oZSx0LHIsaSk9Pntmb3IodmFyIGE9MCxuPWVbdD4+MV0sbz1uJiZuLmxlbmd0aDthPG87YSsrKXQmMT9uW2FdLmNhbGwocik6aT1uW2FdLmNhbGwocixpKTtyZXR1cm4gaX0sRnQ9KGUsdCxyLGksYSxuKT0+e3ZhciBvLHMsbCxjLHUsZD10JjcsaD0hISh0JjgpLGY9ISEodCYxNikseD1kPjM/ZS5sZW5ndGgrMTpkP2g/MToyOjAsdj1KNWVbZCs1XSxiPWQ+MyYmKGVbeC0xXT1bXSkseT1lW3hdfHwoZVt4XT1bXSksdz1kJiYoIWYmJiFoJiYoYT1hLnByb3RvdHlwZSksZDw1JiYoZD4zfHwhZikmJlo1ZShkPDQ/YTp7Z2V0W3JdKCl7cmV0dXJuIFc1ZSh0aGlzLG4pfSxzZXRbcl0oTyl7cmV0dXJuIEc1ZSh0aGlzLG4sTyl9fSxyKSk7ZD9mJiZkPDQmJlU1ZShuLChkPjI/InNldCAiOmQ+MT8iZ2V0ICI6IiIpK3IpOlU1ZShhLHIpO2Zvcih2YXIgaz1pLmxlbmd0aC0xO2s+PTA7ay0tKWM9WnVyKGQscixsPXt9LGVbM10seSksZCYmKGMuc3RhdGljPWgsYy5wcml2YXRlPWYsdT1jLmFjY2Vzcz17aGFzOmY/Tz0+UXVyKGEsTyk6Tz0+ciBpbiBPfSxkXjMmJih1LmdldD1mP089PihkXjE/VzVlOkp1cikoTyxhLGReND9uOncuZ2V0KTpPPT5PW3JdKSxkPjImJih1LnNldD1mPyhPLHopPT5HNWUoTyxhLHosZF40P246dy5zZXQpOihPLHopPT5PW3JdPXopKSxzPSgwLGlba10pKGQ/ZDw0P2Y/bjp3W3ZdOmQ+ND92b2lkIDA6e2dldDp3LmdldCxzZXQ6dy5zZXR9OmEsYyksbC5fPTEsZF40fHxzPT09dm9pZCAwP0NoKHMpJiYoZD40P2IudW5zaGlmdChzKTpkP2Y/bj1zOndbdl09czphPXMpOnR5cGVvZiBzIT0ib2JqZWN0Inx8cz09PW51bGw/bzUoIk9iamVjdCBleHBlY3RlZCIpOihDaChvPXMuZ2V0KSYmKHcuZ2V0PW8pLENoKG89cy5zZXQpJiYody5zZXQ9byksQ2gobz1zLmluaXQpJiZiLnVuc2hpZnQobykpO3JldHVybiBkfHxYdXIoZSxhKSx3JiZKNChhLHIsdyksZj9kXjQ/bjp3OmF9LHppPShlLHQscik9PlE1ZShlLHR5cGVvZiB0IT0ic3ltYm9sIj90KyIiOnQsciksekY9KGUsdCxyKT0+dC5oYXMoZSl8fG81KCJDYW5ub3QgIityKSxRdXI9KGUsdCk9Pk9iamVjdCh0KSE9PXQ/bzUoJ0Nhbm5vdCB1c2UgdGhlICJpbiIgb3BlcmF0b3Igb24gdGhpcyB2YWx1ZScpOmUuaGFzKHQpLFc1ZT0oZSx0LHIpPT4oekYoZSx0LCJyZWFkIGZyb20gcHJpdmF0ZSBmaWVsZCIpLHI/ci5jYWxsKGUpOnQuZ2V0KGUpKSxncj0oZSx0LHIpPT50LmhhcyhlKT9vNSgiQ2Fubm90IGFkZCB0aGUgc2FtZSBwcml2YXRlIG1lbWJlciBtb3JlIHRoYW4gb25jZSIpOnQgaW5zdGFuY2VvZiBXZWFrU2V0P3QuYWRkKGUpOnQuc2V0KGUsciksRzVlPShlLHQscixpKT0+KHpGKGUsdCwid3JpdGUgdG8gcHJpdmF0ZSBmaWVsZCIpLGk/aS5jYWxsKGUscik6dC5zZXQoZSxyKSxyKSxKdXI9KGUsdCxyKT0+KHpGKGUsdCwiYWNjZXNzIHByaXZhdGUgbWV0aG9kIikscik7dmFyIHM1PShlLHQpPT5WNWUoSjQoZSwicmF3Iix7dmFsdWU6VjVlKHR8fGUuc2xpY2UoKSl9KSk7dmFyIHR2LFRoLENGLEs1ZSxsNSx3MSxaMSxydixfaCxURj1wKCgpPT57dHY9Z2xvYmFsVGhpcyxUaD10di5TaGFkb3dSb290JiYodHYuU2hhZHlDU1M9PT12b2lkIDB8fHR2LlNoYWR5Q1NTLm5hdGl2ZVNoYWRvdykmJiJhZG9wdGVkU3R5bGVTaGVldHMiaW4gRG9jdW1lbnQucHJvdG90eXBlJiYicmVwbGFjZSJpbiBDU1NTdHlsZVNoZWV0LnByb3RvdHlwZSxDRj1TeW1ib2woKSxLNWU9bmV3IFdlYWtNYXAsbDU9Y2xhc3N7Y29uc3RydWN0b3IodCxyLGkpe2lmKHRoaXMuXyRjc3NSZXN1bHQkPSEwLGkhPT1DRil0aHJvdyBFcnJvcigiQ1NTUmVzdWx0IGlzIG5vdCBjb25zdHJ1Y3RhYmxlLiBVc2UgYHVuc2FmZUNTU2Agb3IgYGNzc2AgaW5zdGVhZC4iKTt0aGlzLmNzc1RleHQ9dCx0aGlzLnQ9cn1nZXQgc3R5bGVTaGVldCgpe2xldCB0PXRoaXMubyxyPXRoaXMudDtpZihUaCYmdD09PXZvaWQgMCl7bGV0IGk9ciE9PXZvaWQgMCYmci5sZW5ndGg9PT0xO2kmJih0PUs1ZS5nZXQocikpLHQ9PT12b2lkIDAmJigodGhpcy5vPXQ9bmV3IENTU1N0eWxlU2hlZXQpLnJlcGxhY2VTeW5jKHRoaXMuY3NzVGV4dCksaSYmSzVlLnNldChyLHQpKX1yZXR1cm4gdH10b1N0cmluZygpe3JldHVybiB0aGlzLmNzc1RleHR9fSx3MT1lPT5uZXcgbDUodHlwZW9mIGU9PSJzdHJpbmciP2U6ZSsiIix2b2lkIDAsQ0YpLFoxPShlLC4uLnQpPT57bGV0IHI9ZS5sZW5ndGg9PT0xP2VbMF06dC5yZWR1Y2UoKGksYSxuKT0+aSsobz0+e2lmKG8uXyRjc3NSZXN1bHQkPT09ITApcmV0dXJuIG8uY3NzVGV4dDtpZih0eXBlb2Ygbz09Im51bWJlciIpcmV0dXJuIG87dGhyb3cgRXJyb3IoIlZhbHVlIHBhc3NlZCB0byAnY3NzJyBmdW5jdGlvbiBtdXN0IGJlIGEgJ2NzcycgZnVuY3Rpb24gcmVzdWx0OiAiK28rIi4gVXNlICd1bnNhZmVDU1MnIHRvIHBhc3Mgbm9uLWxpdGVyYWwgdmFsdWVzLCBidXQgdGFrZSBjYXJlIHRvIGVuc3VyZSBwYWdlIHNlY3VyaXR5LiIpfSkoYSkrZVtuKzFdLGVbMF0pO3JldHVybiBuZXcgbDUocixlLENGKX0scnY9KGUsdCk9PntpZihUaCllLmFkb3B0ZWRTdHlsZVNoZWV0cz10Lm1hcChyPT5yIGluc3RhbmNlb2YgQ1NTU3R5bGVTaGVldD9yOnIuc3R5bGVTaGVldCk7ZWxzZSBmb3IobGV0IHIgb2YgdCl7bGV0IGk9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgic3R5bGUiKSxhPXR2LmxpdE5vbmNlO2EhPT12b2lkIDAmJmkuc2V0QXR0cmlidXRlKCJub25jZSIsYSksaS50ZXh0Q29udGVudD1yLmNzc1RleHQsZS5hcHBlbmRDaGlsZChpKX19LF9oPVRoP2U9PmU6ZT0+ZSBpbnN0YW5jZW9mIENTU1N0eWxlU2hlZXQ/KHQ9PntsZXQgcj0iIjtmb3IobGV0IGkgb2YgdC5jc3NSdWxlcylyKz1pLmNzc1RleHQ7cmV0dXJuIHcxKHIpfSkoZSk6ZX0pO3ZhciBLdXIsZThyLHQ4cixyOHIsaThyLGE4cixpdixldWUsbjhyLG84cixMaCxjNSxBaCx0dWUsVjIsRGg9cCgoKT0+e1RGKCk7VEYoKTsoe2lzOkt1cixkZWZpbmVQcm9wZXJ0eTplOHIsZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yOnQ4cixnZXRPd25Qcm9wZXJ0eU5hbWVzOnI4cixnZXRPd25Qcm9wZXJ0eVN5bWJvbHM6aThyLGdldFByb3RvdHlwZU9mOmE4cn09T2JqZWN0KSxpdj1nbG9iYWxUaGlzLGV1ZT1pdi50cnVzdGVkVHlwZXMsbjhyPWV1ZT9ldWUuZW1wdHlTY3JpcHQ6IiIsbzhyPWl2LnJlYWN0aXZlRWxlbWVudFBvbHlmaWxsU3VwcG9ydCxMaD0oZSx0KT0+ZSxjNT17dG9BdHRyaWJ1dGUoZSx0KXtzd2l0Y2godCl7Y2FzZSBCb29sZWFuOmU9ZT9uOHI6bnVsbDticmVhaztjYXNlIE9iamVjdDpjYXNlIEFycmF5OmU9ZT09bnVsbD9lOkpTT04uc3RyaW5naWZ5KGUpfXJldHVybiBlfSxmcm9tQXR0cmlidXRlKGUsdCl7bGV0IHI9ZTtzd2l0Y2godCl7Y2FzZSBCb29sZWFuOnI9ZSE9PW51bGw7YnJlYWs7Y2FzZSBOdW1iZXI6cj1lPT09bnVsbD9udWxsOk51bWJlcihlKTticmVhaztjYXNlIE9iamVjdDpjYXNlIEFycmF5OnRyeXtyPUpTT04ucGFyc2UoZSl9Y2F0Y2h7cj1udWxsfX1yZXR1cm4gcn19LEFoPShlLHQpPT4hS3VyKGUsdCksdHVlPXthdHRyaWJ1dGU6ITAsdHlwZTpTdHJpbmcsY29udmVydGVyOmM1LHJlZmxlY3Q6ITEsdXNlRGVmYXVsdDohMSxoYXNDaGFuZ2VkOkFofTtTeW1ib2wubWV0YWRhdGE/Pz1TeW1ib2woIm1ldGFkYXRhIiksaXYubGl0UHJvcGVydHlNZXRhZGF0YT8/PW5ldyBXZWFrTWFwO1YyPWNsYXNzIGV4dGVuZHMgSFRNTEVsZW1lbnR7c3RhdGljIGFkZEluaXRpYWxpemVyKHQpe3RoaXMuXyRFaSgpLCh0aGlzLmw/Pz1bXSkucHVzaCh0KX1zdGF0aWMgZ2V0IG9ic2VydmVkQXR0cmlidXRlcygpe3JldHVybiB0aGlzLmZpbmFsaXplKCksdGhpcy5fJEVoJiZbLi4udGhpcy5fJEVoLmtleXMoKV19c3RhdGljIGNyZWF0ZVByb3BlcnR5KHQscj10dWUpe2lmKHIuc3RhdGUmJihyLmF0dHJpYnV0ZT0hMSksdGhpcy5fJEVpKCksdGhpcy5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkodCkmJigocj1PYmplY3QuY3JlYXRlKHIpKS53cmFwcGVkPSEwKSx0aGlzLmVsZW1lbnRQcm9wZXJ0aWVzLnNldCh0LHIpLCFyLm5vQWNjZXNzb3Ipe2xldCBpPVN5bWJvbCgpLGE9dGhpcy5nZXRQcm9wZXJ0eURlc2NyaXB0b3IodCxpLHIpO2EhPT12b2lkIDAmJmU4cih0aGlzLnByb3RvdHlwZSx0LGEpfX1zdGF0aWMgZ2V0UHJvcGVydHlEZXNjcmlwdG9yKHQscixpKXtsZXR7Z2V0OmEsc2V0Om59PXQ4cih0aGlzLnByb3RvdHlwZSx0KT8/e2dldCgpe3JldHVybiB0aGlzW3JdfSxzZXQobyl7dGhpc1tyXT1vfX07cmV0dXJue2dldDphLHNldChvKXtsZXQgcz1hPy5jYWxsKHRoaXMpO24/LmNhbGwodGhpcyxvKSx0aGlzLnJlcXVlc3RVcGRhdGUodCxzLGkpfSxjb25maWd1cmFibGU6ITAsZW51bWVyYWJsZTohMH19c3RhdGljIGdldFByb3BlcnR5T3B0aW9ucyh0KXtyZXR1cm4gdGhpcy5lbGVtZW50UHJvcGVydGllcy5nZXQodCk/P3R1ZX1zdGF0aWMgXyRFaSgpe2lmKHRoaXMuaGFzT3duUHJvcGVydHkoTGgoImVsZW1lbnRQcm9wZXJ0aWVzIikpKXJldHVybjtsZXQgdD1hOHIodGhpcyk7dC5maW5hbGl6ZSgpLHQubCE9PXZvaWQgMCYmKHRoaXMubD1bLi4udC5sXSksdGhpcy5lbGVtZW50UHJvcGVydGllcz1uZXcgTWFwKHQuZWxlbWVudFByb3BlcnRpZXMpfXN0YXRpYyBmaW5hbGl6ZSgpe2lmKHRoaXMuaGFzT3duUHJvcGVydHkoTGgoImZpbmFsaXplZCIpKSlyZXR1cm47aWYodGhpcy5maW5hbGl6ZWQ9ITAsdGhpcy5fJEVpKCksdGhpcy5oYXNPd25Qcm9wZXJ0eShMaCgicHJvcGVydGllcyIpKSl7bGV0IHI9dGhpcy5wcm9wZXJ0aWVzLGk9Wy4uLnI4cihyKSwuLi5pOHIocildO2ZvcihsZXQgYSBvZiBpKXRoaXMuY3JlYXRlUHJvcGVydHkoYSxyW2FdKX1sZXQgdD10aGlzW1N5bWJvbC5tZXRhZGF0YV07aWYodCE9PW51bGwpe2xldCByPWxpdFByb3BlcnR5TWV0YWRhdGEuZ2V0KHQpO2lmKHIhPT12b2lkIDApZm9yKGxldFtpLGFdb2Ygcil0aGlzLmVsZW1lbnRQcm9wZXJ0aWVzLnNldChpLGEpfXRoaXMuXyRFaD1uZXcgTWFwO2ZvcihsZXRbcixpXW9mIHRoaXMuZWxlbWVudFByb3BlcnRpZXMpe2xldCBhPXRoaXMuXyRFdShyLGkpO2EhPT12b2lkIDAmJnRoaXMuXyRFaC5zZXQoYSxyKX10aGlzLmVsZW1lbnRTdHlsZXM9dGhpcy5maW5hbGl6ZVN0eWxlcyh0aGlzLnN0eWxlcyl9c3RhdGljIGZpbmFsaXplU3R5bGVzKHQpe2xldCByPVtdO2lmKEFycmF5LmlzQXJyYXkodCkpe2xldCBpPW5ldyBTZXQodC5mbGF0KDEvMCkucmV2ZXJzZSgpKTtmb3IobGV0IGEgb2YgaSlyLnVuc2hpZnQoX2goYSkpfWVsc2UgdCE9PXZvaWQgMCYmci5wdXNoKF9oKHQpKTtyZXR1cm4gcn1zdGF0aWMgXyRFdSh0LHIpe2xldCBpPXIuYXR0cmlidXRlO3JldHVybiBpPT09ITE/dm9pZCAwOnR5cGVvZiBpPT0ic3RyaW5nIj9pOnR5cGVvZiB0PT0ic3RyaW5nIj90LnRvTG93ZXJDYXNlKCk6dm9pZCAwfWNvbnN0cnVjdG9yKCl7c3VwZXIoKSx0aGlzLl8kRXA9dm9pZCAwLHRoaXMuaXNVcGRhdGVQZW5kaW5nPSExLHRoaXMuaGFzVXBkYXRlZD0hMSx0aGlzLl8kRW09bnVsbCx0aGlzLl8kRXYoKX1fJEV2KCl7dGhpcy5fJEVTPW5ldyBQcm9taXNlKHQ9PnRoaXMuZW5hYmxlVXBkYXRpbmc9dCksdGhpcy5fJEFMPW5ldyBNYXAsdGhpcy5fJEVfKCksdGhpcy5yZXF1ZXN0VXBkYXRlKCksdGhpcy5jb25zdHJ1Y3Rvci5sPy5mb3JFYWNoKHQ9PnQodGhpcykpfWFkZENvbnRyb2xsZXIodCl7KHRoaXMuXyRFTz8/PW5ldyBTZXQpLmFkZCh0KSx0aGlzLnJlbmRlclJvb3QhPT12b2lkIDAmJnRoaXMuaXNDb25uZWN0ZWQmJnQuaG9zdENvbm5lY3RlZD8uKCl9cmVtb3ZlQ29udHJvbGxlcih0KXt0aGlzLl8kRU8/LmRlbGV0ZSh0KX1fJEVfKCl7bGV0IHQ9bmV3IE1hcCxyPXRoaXMuY29uc3RydWN0b3IuZWxlbWVudFByb3BlcnRpZXM7Zm9yKGxldCBpIG9mIHIua2V5cygpKXRoaXMuaGFzT3duUHJvcGVydHkoaSkmJih0LnNldChpLHRoaXNbaV0pLGRlbGV0ZSB0aGlzW2ldKTt0LnNpemU+MCYmKHRoaXMuXyRFcD10KX1jcmVhdGVSZW5kZXJSb290KCl7bGV0IHQ9dGhpcy5zaGFkb3dSb290Pz90aGlzLmF0dGFjaFNoYWRvdyh0aGlzLmNvbnN0cnVjdG9yLnNoYWRvd1Jvb3RPcHRpb25zKTtyZXR1cm4gcnYodCx0aGlzLmNvbnN0cnVjdG9yLmVsZW1lbnRTdHlsZXMpLHR9Y29ubmVjdGVkQ2FsbGJhY2soKXt0aGlzLnJlbmRlclJvb3Q/Pz10aGlzLmNyZWF0ZVJlbmRlclJvb3QoKSx0aGlzLmVuYWJsZVVwZGF0aW5nKCEwKSx0aGlzLl8kRU8/LmZvckVhY2godD0+dC5ob3N0Q29ubmVjdGVkPy4oKSl9ZW5hYmxlVXBkYXRpbmcodCl7fWRpc2Nvbm5lY3RlZENhbGxiYWNrKCl7dGhpcy5fJEVPPy5mb3JFYWNoKHQ9PnQuaG9zdERpc2Nvbm5lY3RlZD8uKCkpfWF0dHJpYnV0ZUNoYW5nZWRDYWxsYmFjayh0LHIsaSl7dGhpcy5fJEFLKHQsaSl9XyRFVCh0LHIpe2xldCBpPXRoaXMuY29uc3RydWN0b3IuZWxlbWVudFByb3BlcnRpZXMuZ2V0KHQpLGE9dGhpcy5jb25zdHJ1Y3Rvci5fJEV1KHQsaSk7aWYoYSE9PXZvaWQgMCYmaS5yZWZsZWN0PT09ITApe2xldCBuPShpLmNvbnZlcnRlcj8udG9BdHRyaWJ1dGUhPT12b2lkIDA/aS5jb252ZXJ0ZXI6YzUpLnRvQXR0cmlidXRlKHIsaS50eXBlKTt0aGlzLl8kRW09dCxuPT1udWxsP3RoaXMucmVtb3ZlQXR0cmlidXRlKGEpOnRoaXMuc2V0QXR0cmlidXRlKGEsbiksdGhpcy5fJEVtPW51bGx9fV8kQUsodCxyKXtsZXQgaT10aGlzLmNvbnN0cnVjdG9yLGE9aS5fJEVoLmdldCh0KTtpZihhIT09dm9pZCAwJiZ0aGlzLl8kRW0hPT1hKXtsZXQgbj1pLmdldFByb3BlcnR5T3B0aW9ucyhhKSxvPXR5cGVvZiBuLmNvbnZlcnRlcj09ImZ1bmN0aW9uIj97ZnJvbUF0dHJpYnV0ZTpuLmNvbnZlcnRlcn06bi5jb252ZXJ0ZXI/LmZyb21BdHRyaWJ1dGUhPT12b2lkIDA/bi5jb252ZXJ0ZXI6YzU7dGhpcy5fJEVtPWE7bGV0IHM9by5mcm9tQXR0cmlidXRlKHIsbi50eXBlKTt0aGlzW2FdPXM/P3RoaXMuXyRFaj8uZ2V0KGEpPz9zLHRoaXMuXyRFbT1udWxsfX1yZXF1ZXN0VXBkYXRlKHQscixpLGE9ITEsbil7aWYodCE9PXZvaWQgMCl7bGV0IG89dGhpcy5jb25zdHJ1Y3RvcjtpZihhPT09ITEmJihuPXRoaXNbdF0pLGk/Pz1vLmdldFByb3BlcnR5T3B0aW9ucyh0KSwhKChpLmhhc0NoYW5nZWQ/P0FoKShuLHIpfHxpLnVzZURlZmF1bHQmJmkucmVmbGVjdCYmbj09PXRoaXMuXyRFaj8uZ2V0KHQpJiYhdGhpcy5oYXNBdHRyaWJ1dGUoby5fJEV1KHQsaSkpKSlyZXR1cm47dGhpcy5DKHQscixpKX10aGlzLmlzVXBkYXRlUGVuZGluZz09PSExJiYodGhpcy5fJEVTPXRoaXMuXyRFUCgpKX1DKHQscix7dXNlRGVmYXVsdDppLHJlZmxlY3Q6YSx3cmFwcGVkOm59LG8pe2kmJiEodGhpcy5fJEVqPz89bmV3IE1hcCkuaGFzKHQpJiYodGhpcy5fJEVqLnNldCh0LG8/P3I/P3RoaXNbdF0pLG4hPT0hMHx8byE9PXZvaWQgMCl8fCh0aGlzLl8kQUwuaGFzKHQpfHwodGhpcy5oYXNVcGRhdGVkfHxpfHwocj12b2lkIDApLHRoaXMuXyRBTC5zZXQodCxyKSksYT09PSEwJiZ0aGlzLl8kRW0hPT10JiYodGhpcy5fJEVxPz89bmV3IFNldCkuYWRkKHQpKX1hc3luYyBfJEVQKCl7dGhpcy5pc1VwZGF0ZVBlbmRpbmc9ITA7dHJ5e2F3YWl0IHRoaXMuXyRFU31jYXRjaChyKXtQcm9taXNlLnJlamVjdChyKX1sZXQgdD10aGlzLnNjaGVkdWxlVXBkYXRlKCk7cmV0dXJuIHQhPW51bGwmJmF3YWl0IHQsIXRoaXMuaXNVcGRhdGVQZW5kaW5nfXNjaGVkdWxlVXBkYXRlKCl7cmV0dXJuIHRoaXMucGVyZm9ybVVwZGF0ZSgpfXBlcmZvcm1VcGRhdGUoKXtpZighdGhpcy5pc1VwZGF0ZVBlbmRpbmcpcmV0dXJuO2lmKCF0aGlzLmhhc1VwZGF0ZWQpe2lmKHRoaXMucmVuZGVyUm9vdD8/PXRoaXMuY3JlYXRlUmVuZGVyUm9vdCgpLHRoaXMuXyRFcCl7Zm9yKGxldFthLG5db2YgdGhpcy5fJEVwKXRoaXNbYV09bjt0aGlzLl8kRXA9dm9pZCAwfWxldCBpPXRoaXMuY29uc3RydWN0b3IuZWxlbWVudFByb3BlcnRpZXM7aWYoaS5zaXplPjApZm9yKGxldFthLG5db2YgaSl7bGV0e3dyYXBwZWQ6b309bixzPXRoaXNbYV07byE9PSEwfHx0aGlzLl8kQUwuaGFzKGEpfHxzPT09dm9pZCAwfHx0aGlzLkMoYSx2b2lkIDAsbixzKX19bGV0IHQ9ITEscj10aGlzLl8kQUw7dHJ5e3Q9dGhpcy5zaG91bGRVcGRhdGUociksdD8odGhpcy53aWxsVXBkYXRlKHIpLHRoaXMuXyRFTz8uZm9yRWFjaChpPT5pLmhvc3RVcGRhdGU/LigpKSx0aGlzLnVwZGF0ZShyKSk6dGhpcy5fJEVNKCl9Y2F0Y2goaSl7dGhyb3cgdD0hMSx0aGlzLl8kRU0oKSxpfXQmJnRoaXMuXyRBRShyKX13aWxsVXBkYXRlKHQpe31fJEFFKHQpe3RoaXMuXyRFTz8uZm9yRWFjaChyPT5yLmhvc3RVcGRhdGVkPy4oKSksdGhpcy5oYXNVcGRhdGVkfHwodGhpcy5oYXNVcGRhdGVkPSEwLHRoaXMuZmlyc3RVcGRhdGVkKHQpKSx0aGlzLnVwZGF0ZWQodCl9XyRFTSgpe3RoaXMuXyRBTD1uZXcgTWFwLHRoaXMuaXNVcGRhdGVQZW5kaW5nPSExfWdldCB1cGRhdGVDb21wbGV0ZSgpe3JldHVybiB0aGlzLmdldFVwZGF0ZUNvbXBsZXRlKCl9Z2V0VXBkYXRlQ29tcGxldGUoKXtyZXR1cm4gdGhpcy5fJEVTfXNob3VsZFVwZGF0ZSh0KXtyZXR1cm4hMH11cGRhdGUodCl7dGhpcy5fJEVxJiY9dGhpcy5fJEVxLmZvckVhY2gocj0+dGhpcy5fJEVUKHIsdGhpc1tyXSkpLHRoaXMuXyRFTSgpfXVwZGF0ZWQodCl7fWZpcnN0VXBkYXRlZCh0KXt9fTtWMi5lbGVtZW50U3R5bGVzPVtdLFYyLnNoYWRvd1Jvb3RPcHRpb25zPXttb2RlOiJvcGVuIn0sVjJbTGgoImVsZW1lbnRQcm9wZXJ0aWVzIildPW5ldyBNYXAsVjJbTGgoImZpbmFsaXplZCIpXT1uZXcgTWFwLG84cj8uKHtSZWFjdGl2ZUVsZW1lbnQ6VjJ9KSwoaXYucmVhY3RpdmVFbGVtZW50VmVyc2lvbnM/Pz1bXSkucHVzaCgiMi4xLjIiKX0pO2Z1bmN0aW9uIHV1ZShlLHQpe2lmKCFERihlKXx8IWUuaGFzT3duUHJvcGVydHkoInJhdyIpKXRocm93IEVycm9yKCJpbnZhbGlkIHRlbXBsYXRlIHN0cmluZ3MgYXJyYXkiKTtyZXR1cm4gaXVlIT09dm9pZCAwP2l1ZS5jcmVhdGVIVE1MKHQpOnR9ZnVuY3Rpb24gcjMoZSx0LHI9ZSxpKXtpZih0PT09bzEpcmV0dXJuIHQ7bGV0IGE9aSE9PXZvaWQgMD9yLl8kQ28/LltpXTpyLl8kQ2wsbj0kaCh0KT92b2lkIDA6dC5fJGxpdERpcmVjdGl2ZSQ7cmV0dXJuIGE/LmNvbnN0cnVjdG9yIT09biYmKGE/Ll8kQU8/LighMSksbj09PXZvaWQgMD9hPXZvaWQgMDooYT1uZXcgbihlKSxhLl8kQVQoZSxyLGkpKSxpIT09dm9pZCAwPyhyLl8kQ28/Pz1bXSlbaV09YTpyLl8kQ2w9YSksYSE9PXZvaWQgMCYmKHQ9cjMoZSxhLl8kQVMoZSx0LnZhbHVlcyksYSxpKSksdH12YXIgX0YscnVlLGF2LGl1ZSxMRix1bCxBRixzOHIsSzQsRWgsJGgsREYsYXVlLEVGLEloLG51ZSxvdWUsZTMsc3VlLGx1ZSxjdWUsJEYsdXIsSUYsUEYsbzEsYjEsZHVlLHQzLHB1ZSxQaCxudixkNSxpMyxvdixzdixsdixjdixORixsOHIsTmgsUW89cCgoKT0+e19GPWdsb2JhbFRoaXMscnVlPWU9PmUsYXY9X0YudHJ1c3RlZFR5cGVzLGl1ZT1hdj9hdi5jcmVhdGVQb2xpY3koImxpdC1odG1sIix7Y3JlYXRlSFRNTDplPT5lfSk6dm9pZCAwLExGPSIkbGl0JCIsdWw9YGxpdCQke01hdGgucmFuZG9tKCkudG9GaXhlZCg5KS5zbGljZSgyKX0kYCxBRj0iPyIrdWwsczhyPWA8JHtBRn0+YCxLND1kb2N1bWVudCxFaD0oKT0+SzQuY3JlYXRlQ29tbWVudCgiIiksJGg9ZT0+ZT09PW51bGx8fHR5cGVvZiBlIT0ib2JqZWN0IiYmdHlwZW9mIGUhPSJmdW5jdGlvbiIsREY9QXJyYXkuaXNBcnJheSxhdWU9ZT0+REYoZSl8fHR5cGVvZiBlPy5bU3ltYm9sLml0ZXJhdG9yXT09ImZ1bmN0aW9uIixFRj1gWyAJClxmXHJdYCxJaD0vPCg/OighLS18XC9bXmEtekEtWl0pfChcLz9bYS16QS1aXVtePlxzXSopfChcLz8kKSkvZyxudWU9Ly0tPi9nLG91ZT0vPi9nLGUzPVJlZ0V4cChgPnwke0VGfSg/OihbXlxccyInPj0vXSspKCR7RUZ9Kj0ke0VGfSooPzpbXiAJClxmXHIiJ1xgPD49XXwoInwnKXwpKXwkKWAsImciKSxzdWU9LycvZyxsdWU9LyIvZyxjdWU9L14oPzpzY3JpcHR8c3R5bGV8dGV4dGFyZWF8dGl0bGUpJC9pLCRGPWU9Pih0LC4uLnIpPT4oe18kbGl0VHlwZSQ6ZSxzdHJpbmdzOnQsdmFsdWVzOnJ9KSx1cj0kRigxKSxJRj0kRigyKSxQRj0kRigzKSxvMT1TeW1ib2wuZm9yKCJsaXQtbm9DaGFuZ2UiKSxiMT1TeW1ib2wuZm9yKCJsaXQtbm90aGluZyIpLGR1ZT1uZXcgV2Vha01hcCx0Mz1LNC5jcmVhdGVUcmVlV2Fsa2VyKEs0LDEyOSk7cHVlPShlLHQpPT57bGV0IHI9ZS5sZW5ndGgtMSxpPVtdLGEsbj10PT09Mj8iPHN2Zz4iOnQ9PT0zPyI8bWF0aD4iOiIiLG89SWg7Zm9yKGxldCBzPTA7czxyO3MrKyl7bGV0IGw9ZVtzXSxjLHUsZD0tMSxoPTA7Zm9yKDtoPGwubGVuZ3RoJiYoby5sYXN0SW5kZXg9aCx1PW8uZXhlYyhsKSx1IT09bnVsbCk7KWg9by5sYXN0SW5kZXgsbz09PUloP3VbMV09PT0iIS0tIj9vPW51ZTp1WzFdIT09dm9pZCAwP289b3VlOnVbMl0hPT12b2lkIDA/KGN1ZS50ZXN0KHVbMl0pJiYoYT1SZWdFeHAoIjwvIit1WzJdLCJnIikpLG89ZTMpOnVbM10hPT12b2lkIDAmJihvPWUzKTpvPT09ZTM/dVswXT09PSI+Ij8obz1hPz9JaCxkPS0xKTp1WzFdPT09dm9pZCAwP2Q9LTI6KGQ9by5sYXN0SW5kZXgtdVsyXS5sZW5ndGgsYz11WzFdLG89dVszXT09PXZvaWQgMD9lMzp1WzNdPT09JyInP2x1ZTpzdWUpOm89PT1sdWV8fG89PT1zdWU/bz1lMzpvPT09bnVlfHxvPT09b3VlP289SWg6KG89ZTMsYT12b2lkIDApO2xldCBmPW89PT1lMyYmZVtzKzFdLnN0YXJ0c1dpdGgoIi8+Iik/IiAiOiIiO24rPW89PT1JaD9sK3M4cjpkPj0wPyhpLnB1c2goYyksbC5zbGljZSgwLGQpK0xGK2wuc2xpY2UoZCkrdWwrZik6bCt1bCsoZD09PS0yP3M6Zil9cmV0dXJuW3V1ZShlLG4rKGVbcl18fCI8Pz4iKSsodD09PTI/Ijwvc3ZnPiI6dD09PTM/IjwvbWF0aD4iOiIiKSksaV19LFBoPWNsYXNzIGV7Y29uc3RydWN0b3Ioe3N0cmluZ3M6dCxfJGxpdFR5cGUkOnJ9LGkpe2xldCBhO3RoaXMucGFydHM9W107bGV0IG49MCxvPTAscz10Lmxlbmd0aC0xLGw9dGhpcy5wYXJ0cyxbYyx1XT1wdWUodCxyKTtpZih0aGlzLmVsPWUuY3JlYXRlRWxlbWVudChjLGkpLHQzLmN1cnJlbnROb2RlPXRoaXMuZWwuY29udGVudCxyPT09Mnx8cj09PTMpe2xldCBkPXRoaXMuZWwuY29udGVudC5maXJzdENoaWxkO2QucmVwbGFjZVdpdGgoLi4uZC5jaGlsZE5vZGVzKX1mb3IoOyhhPXQzLm5leHROb2RlKCkpIT09bnVsbCYmbC5sZW5ndGg8czspe2lmKGEubm9kZVR5cGU9PT0xKXtpZihhLmhhc0F0dHJpYnV0ZXMoKSlmb3IobGV0IGQgb2YgYS5nZXRBdHRyaWJ1dGVOYW1lcygpKWlmKGQuZW5kc1dpdGgoTEYpKXtsZXQgaD11W28rK10sZj1hLmdldEF0dHJpYnV0ZShkKS5zcGxpdCh1bCkseD0vKFsuP0BdKT8oLiopLy5leGVjKGgpO2wucHVzaCh7dHlwZToxLGluZGV4Om4sbmFtZTp4WzJdLHN0cmluZ3M6ZixjdG9yOnhbMV09PT0iLiI/b3Y6eFsxXT09PSI/Ij9zdjp4WzFdPT09IkAiP2x2OmkzfSksYS5yZW1vdmVBdHRyaWJ1dGUoZCl9ZWxzZSBkLnN0YXJ0c1dpdGgodWwpJiYobC5wdXNoKHt0eXBlOjYsaW5kZXg6bn0pLGEucmVtb3ZlQXR0cmlidXRlKGQpKTtpZihjdWUudGVzdChhLnRhZ05hbWUpKXtsZXQgZD1hLnRleHRDb250ZW50LnNwbGl0KHVsKSxoPWQubGVuZ3RoLTE7aWYoaD4wKXthLnRleHRDb250ZW50PWF2P2F2LmVtcHR5U2NyaXB0OiIiO2ZvcihsZXQgZj0wO2Y8aDtmKyspYS5hcHBlbmQoZFtmXSxFaCgpKSx0My5uZXh0Tm9kZSgpLGwucHVzaCh7dHlwZToyLGluZGV4Oisrbn0pO2EuYXBwZW5kKGRbaF0sRWgoKSl9fX1lbHNlIGlmKGEubm9kZVR5cGU9PT04KWlmKGEuZGF0YT09PUFGKWwucHVzaCh7dHlwZToyLGluZGV4Om59KTtlbHNle2xldCBkPS0xO2Zvcig7KGQ9YS5kYXRhLmluZGV4T2YodWwsZCsxKSkhPT0tMTspbC5wdXNoKHt0eXBlOjcsaW5kZXg6bn0pLGQrPXVsLmxlbmd0aC0xfW4rK319c3RhdGljIGNyZWF0ZUVsZW1lbnQodCxyKXtsZXQgaT1LNC5jcmVhdGVFbGVtZW50KCJ0ZW1wbGF0ZSIpO3JldHVybiBpLmlubmVySFRNTD10LGl9fTtudj1jbGFzc3tjb25zdHJ1Y3Rvcih0LHIpe3RoaXMuXyRBVj1bXSx0aGlzLl8kQU49dm9pZCAwLHRoaXMuXyRBRD10LHRoaXMuXyRBTT1yfWdldCBwYXJlbnROb2RlKCl7cmV0dXJuIHRoaXMuXyRBTS5wYXJlbnROb2RlfWdldCBfJEFVKCl7cmV0dXJuIHRoaXMuXyRBTS5fJEFVfXUodCl7bGV0e2VsOntjb250ZW50OnJ9LHBhcnRzOml9PXRoaXMuXyRBRCxhPSh0Py5jcmVhdGlvblNjb3BlPz9LNCkuaW1wb3J0Tm9kZShyLCEwKTt0My5jdXJyZW50Tm9kZT1hO2xldCBuPXQzLm5leHROb2RlKCksbz0wLHM9MCxsPWlbMF07Zm9yKDtsIT09dm9pZCAwOyl7aWYobz09PWwuaW5kZXgpe2xldCBjO2wudHlwZT09PTI/Yz1uZXcgZDUobixuLm5leHRTaWJsaW5nLHRoaXMsdCk6bC50eXBlPT09MT9jPW5ldyBsLmN0b3IobixsLm5hbWUsbC5zdHJpbmdzLHRoaXMsdCk6bC50eXBlPT09NiYmKGM9bmV3IGN2KG4sdGhpcyx0KSksdGhpcy5fJEFWLnB1c2goYyksbD1pWysrc119byE9PWw/LmluZGV4JiYobj10My5uZXh0Tm9kZSgpLG8rKyl9cmV0dXJuIHQzLmN1cnJlbnROb2RlPUs0LGF9cCh0KXtsZXQgcj0wO2ZvcihsZXQgaSBvZiB0aGlzLl8kQVYpaSE9PXZvaWQgMCYmKGkuc3RyaW5ncyE9PXZvaWQgMD8oaS5fJEFJKHQsaSxyKSxyKz1pLnN0cmluZ3MubGVuZ3RoLTIpOmkuXyRBSSh0W3JdKSkscisrfX0sZDU9Y2xhc3MgZXtnZXQgXyRBVSgpe3JldHVybiB0aGlzLl8kQU0/Ll8kQVU/P3RoaXMuXyRDdn1jb25zdHJ1Y3Rvcih0LHIsaSxhKXt0aGlzLnR5cGU9Mix0aGlzLl8kQUg9YjEsdGhpcy5fJEFOPXZvaWQgMCx0aGlzLl8kQUE9dCx0aGlzLl8kQUI9cix0aGlzLl8kQU09aSx0aGlzLm9wdGlvbnM9YSx0aGlzLl8kQ3Y9YT8uaXNDb25uZWN0ZWQ/PyEwfWdldCBwYXJlbnROb2RlKCl7bGV0IHQ9dGhpcy5fJEFBLnBhcmVudE5vZGUscj10aGlzLl8kQU07cmV0dXJuIHIhPT12b2lkIDAmJnQ/Lm5vZGVUeXBlPT09MTEmJih0PXIucGFyZW50Tm9kZSksdH1nZXQgc3RhcnROb2RlKCl7cmV0dXJuIHRoaXMuXyRBQX1nZXQgZW5kTm9kZSgpe3JldHVybiB0aGlzLl8kQUJ9XyRBSSh0LHI9dGhpcyl7dD1yMyh0aGlzLHQsciksJGgodCk/dD09PWIxfHx0PT1udWxsfHx0PT09IiI/KHRoaXMuXyRBSCE9PWIxJiZ0aGlzLl8kQVIoKSx0aGlzLl8kQUg9YjEpOnQhPT10aGlzLl8kQUgmJnQhPT1vMSYmdGhpcy5fKHQpOnQuXyRsaXRUeXBlJCE9PXZvaWQgMD90aGlzLiQodCk6dC5ub2RlVHlwZSE9PXZvaWQgMD90aGlzLlQodCk6YXVlKHQpP3RoaXMuayh0KTp0aGlzLl8odCl9Tyh0KXtyZXR1cm4gdGhpcy5fJEFBLnBhcmVudE5vZGUuaW5zZXJ0QmVmb3JlKHQsdGhpcy5fJEFCKX1UKHQpe3RoaXMuXyRBSCE9PXQmJih0aGlzLl8kQVIoKSx0aGlzLl8kQUg9dGhpcy5PKHQpKX1fKHQpe3RoaXMuXyRBSCE9PWIxJiYkaCh0aGlzLl8kQUgpP3RoaXMuXyRBQS5uZXh0U2libGluZy5kYXRhPXQ6dGhpcy5UKEs0LmNyZWF0ZVRleHROb2RlKHQpKSx0aGlzLl8kQUg9dH0kKHQpe2xldHt2YWx1ZXM6cixfJGxpdFR5cGUkOml9PXQsYT10eXBlb2YgaT09Im51bWJlciI/dGhpcy5fJEFDKHQpOihpLmVsPT09dm9pZCAwJiYoaS5lbD1QaC5jcmVhdGVFbGVtZW50KHV1ZShpLmgsaS5oWzBdKSx0aGlzLm9wdGlvbnMpKSxpKTtpZih0aGlzLl8kQUg/Ll8kQUQ9PT1hKXRoaXMuXyRBSC5wKHIpO2Vsc2V7bGV0IG49bmV3IG52KGEsdGhpcyksbz1uLnUodGhpcy5vcHRpb25zKTtuLnAociksdGhpcy5UKG8pLHRoaXMuXyRBSD1ufX1fJEFDKHQpe2xldCByPWR1ZS5nZXQodC5zdHJpbmdzKTtyZXR1cm4gcj09PXZvaWQgMCYmZHVlLnNldCh0LnN0cmluZ3Mscj1uZXcgUGgodCkpLHJ9ayh0KXtERih0aGlzLl8kQUgpfHwodGhpcy5fJEFIPVtdLHRoaXMuXyRBUigpKTtsZXQgcj10aGlzLl8kQUgsaSxhPTA7Zm9yKGxldCBuIG9mIHQpYT09PXIubGVuZ3RoP3IucHVzaChpPW5ldyBlKHRoaXMuTyhFaCgpKSx0aGlzLk8oRWgoKSksdGhpcyx0aGlzLm9wdGlvbnMpKTppPXJbYV0saS5fJEFJKG4pLGErKzthPHIubGVuZ3RoJiYodGhpcy5fJEFSKGkmJmkuXyRBQi5uZXh0U2libGluZyxhKSxyLmxlbmd0aD1hKX1fJEFSKHQ9dGhpcy5fJEFBLm5leHRTaWJsaW5nLHIpe2Zvcih0aGlzLl8kQVA/LighMSwhMCxyKTt0IT09dGhpcy5fJEFCOyl7bGV0IGk9cnVlKHQpLm5leHRTaWJsaW5nO3J1ZSh0KS5yZW1vdmUoKSx0PWl9fXNldENvbm5lY3RlZCh0KXt0aGlzLl8kQU09PT12b2lkIDAmJih0aGlzLl8kQ3Y9dCx0aGlzLl8kQVA/Lih0KSl9fSxpMz1jbGFzc3tnZXQgdGFnTmFtZSgpe3JldHVybiB0aGlzLmVsZW1lbnQudGFnTmFtZX1nZXQgXyRBVSgpe3JldHVybiB0aGlzLl8kQU0uXyRBVX1jb25zdHJ1Y3Rvcih0LHIsaSxhLG4pe3RoaXMudHlwZT0xLHRoaXMuXyRBSD1iMSx0aGlzLl8kQU49dm9pZCAwLHRoaXMuZWxlbWVudD10LHRoaXMubmFtZT1yLHRoaXMuXyRBTT1hLHRoaXMub3B0aW9ucz1uLGkubGVuZ3RoPjJ8fGlbMF0hPT0iInx8aVsxXSE9PSIiPyh0aGlzLl8kQUg9QXJyYXkoaS5sZW5ndGgtMSkuZmlsbChuZXcgU3RyaW5nKSx0aGlzLnN0cmluZ3M9aSk6dGhpcy5fJEFIPWIxfV8kQUkodCxyPXRoaXMsaSxhKXtsZXQgbj10aGlzLnN0cmluZ3Msbz0hMTtpZihuPT09dm9pZCAwKXQ9cjModGhpcyx0LHIsMCksbz0hJGgodCl8fHQhPT10aGlzLl8kQUgmJnQhPT1vMSxvJiYodGhpcy5fJEFIPXQpO2Vsc2V7bGV0IHM9dCxsLGM7Zm9yKHQ9blswXSxsPTA7bDxuLmxlbmd0aC0xO2wrKyljPXIzKHRoaXMsc1tpK2xdLHIsbCksYz09PW8xJiYoYz10aGlzLl8kQUhbbF0pLG98fD0hJGgoYyl8fGMhPT10aGlzLl8kQUhbbF0sYz09PWIxP3Q9YjE6dCE9PWIxJiYodCs9KGM/PyIiKStuW2wrMV0pLHRoaXMuXyRBSFtsXT1jfW8mJiFhJiZ0aGlzLmoodCl9aih0KXt0PT09YjE/dGhpcy5lbGVtZW50LnJlbW92ZUF0dHJpYnV0ZSh0aGlzLm5hbWUpOnRoaXMuZWxlbWVudC5zZXRBdHRyaWJ1dGUodGhpcy5uYW1lLHQ/PyIiKX19LG92PWNsYXNzIGV4dGVuZHMgaTN7Y29uc3RydWN0b3IoKXtzdXBlciguLi5hcmd1bWVudHMpLHRoaXMudHlwZT0zfWoodCl7dGhpcy5lbGVtZW50W3RoaXMubmFtZV09dD09PWIxP3ZvaWQgMDp0fX0sc3Y9Y2xhc3MgZXh0ZW5kcyBpM3tjb25zdHJ1Y3Rvcigpe3N1cGVyKC4uLmFyZ3VtZW50cyksdGhpcy50eXBlPTR9aih0KXt0aGlzLmVsZW1lbnQudG9nZ2xlQXR0cmlidXRlKHRoaXMubmFtZSwhIXQmJnQhPT1iMSl9fSxsdj1jbGFzcyBleHRlbmRzIGkze2NvbnN0cnVjdG9yKHQscixpLGEsbil7c3VwZXIodCxyLGksYSxuKSx0aGlzLnR5cGU9NX1fJEFJKHQscj10aGlzKXtpZigodD1yMyh0aGlzLHQsciwwKT8/YjEpPT09bzEpcmV0dXJuO2xldCBpPXRoaXMuXyRBSCxhPXQ9PT1iMSYmaSE9PWIxfHx0LmNhcHR1cmUhPT1pLmNhcHR1cmV8fHQub25jZSE9PWkub25jZXx8dC5wYXNzaXZlIT09aS5wYXNzaXZlLG49dCE9PWIxJiYoaT09PWIxfHxhKTthJiZ0aGlzLmVsZW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcih0aGlzLm5hbWUsdGhpcyxpKSxuJiZ0aGlzLmVsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcih0aGlzLm5hbWUsdGhpcyx0KSx0aGlzLl8kQUg9dH1oYW5kbGVFdmVudCh0KXt0eXBlb2YgdGhpcy5fJEFIPT0iZnVuY3Rpb24iP3RoaXMuXyRBSC5jYWxsKHRoaXMub3B0aW9ucz8uaG9zdD8/dGhpcy5lbGVtZW50LHQpOnRoaXMuXyRBSC5oYW5kbGVFdmVudCh0KX19LGN2PWNsYXNze2NvbnN0cnVjdG9yKHQscixpKXt0aGlzLmVsZW1lbnQ9dCx0aGlzLnR5cGU9Nix0aGlzLl8kQU49dm9pZCAwLHRoaXMuXyRBTT1yLHRoaXMub3B0aW9ucz1pfWdldCBfJEFVKCl7cmV0dXJuIHRoaXMuXyRBTS5fJEFVfV8kQUkodCl7cjModGhpcyx0KX19LE5GPXtNOkxGLFA6dWwsQTpBRixDOjEsTDpwdWUsUjpudixEOmF1ZSxWOnIzLEk6ZDUsSDppMyxOOnN2LFU6bHYsQjpvdixGOmN2fSxsOHI9X0YubGl0SHRtbFBvbHlmaWxsU3VwcG9ydDtsOHI/LihQaCxkNSksKF9GLmxpdEh0bWxWZXJzaW9ucz8/PVtdKS5wdXNoKCIzLjMuMiIpO05oPShlLHQscik9PntsZXQgaT1yPy5yZW5kZXJCZWZvcmU/P3QsYT1pLl8kbGl0UGFydCQ7aWYoYT09PXZvaWQgMCl7bGV0IG49cj8ucmVuZGVyQmVmb3JlPz9udWxsO2kuXyRsaXRQYXJ0JD1hPW5ldyBkNSh0Lmluc2VydEJlZm9yZShFaCgpLG4pLG4sdm9pZCAwLHI/P3t9KX1yZXR1cm4gYS5fJEFJKGUpLGF9fSk7dmFyIEZGLHBsLGM4cixkOHIsaHVlPXAoKCk9PntEaCgpO0RoKCk7UW8oKTtRbygpO0ZGPWdsb2JhbFRoaXMscGw9Y2xhc3MgZXh0ZW5kcyBWMntjb25zdHJ1Y3Rvcigpe3N1cGVyKC4uLmFyZ3VtZW50cyksdGhpcy5yZW5kZXJPcHRpb25zPXtob3N0OnRoaXN9LHRoaXMuXyREbz12b2lkIDB9Y3JlYXRlUmVuZGVyUm9vdCgpe2xldCB0PXN1cGVyLmNyZWF0ZVJlbmRlclJvb3QoKTtyZXR1cm4gdGhpcy5yZW5kZXJPcHRpb25zLnJlbmRlckJlZm9yZT8/PXQuZmlyc3RDaGlsZCx0fXVwZGF0ZSh0KXtsZXQgcj10aGlzLnJlbmRlcigpO3RoaXMuaGFzVXBkYXRlZHx8KHRoaXMucmVuZGVyT3B0aW9ucy5pc0Nvbm5lY3RlZD10aGlzLmlzQ29ubmVjdGVkKSxzdXBlci51cGRhdGUodCksdGhpcy5fJERvPU5oKHIsdGhpcy5yZW5kZXJSb290LHRoaXMucmVuZGVyT3B0aW9ucyl9Y29ubmVjdGVkQ2FsbGJhY2soKXtzdXBlci5jb25uZWN0ZWRDYWxsYmFjaygpLHRoaXMuXyREbz8uc2V0Q29ubmVjdGVkKCEwKX1kaXNjb25uZWN0ZWRDYWxsYmFjaygpe3N1cGVyLmRpc2Nvbm5lY3RlZENhbGxiYWNrKCksdGhpcy5fJERvPy5zZXRDb25uZWN0ZWQoITEpfXJlbmRlcigpe3JldHVybiBvMX19O3BsLl8kbGl0RWxlbWVudCQ9ITAscGwuZmluYWxpemVkPSEwLEZGLmxpdEVsZW1lbnRIeWRyYXRlU3VwcG9ydD8uKHtMaXRFbGVtZW50OnBsfSk7YzhyPUZGLmxpdEVsZW1lbnRQb2x5ZmlsbFN1cHBvcnQ7YzhyPy4oe0xpdEVsZW1lbnQ6cGx9KTtkOHI9e18kQUs6KGUsdCxyKT0+e2UuXyRBSyh0LHIpfSxfJEFMOmU9PmUuXyRBTH07KEZGLmxpdEVsZW1lbnRWZXJzaW9ucz8/PVtdKS5wdXNoKCI0LjIuMiIpfSk7dmFyIHU4cixmdWU9cCgoKT0+e3U4cj0hMX0pO3ZhciBVMj1wKCgpPT57RGgoKTtRbygpO2h1ZSgpO2Z1ZSgpfSk7dmFyIHV2PWplKGR2PT57InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShkdiwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksZHYudW5pPXZvaWQgMDt2YXIgcDhyPShlPSJ1bmkiKT0+YCR7ZX1fJHsieHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4Ii5yZXBsYWNlKC9beHldL2csdD0+e2xldCByPU1hdGgucmFuZG9tKCkqMTZ8MDtyZXR1cm4odD09PSJ4Ij9yOnImM3w4KS50b1N0cmluZygxNil9KX1gO2R2LnVuaT1wOHJ9KTt2YXIgcHYsQmMsaHY9cCgoKT0+e3B2PWNsYXNze2NsYWltKCl7aWYodGhpcy5jbGFpbWVkKXRocm93IG5ldyBFcnJvcigiRGVmZXJyZWQgYWxyZWFkeSBjbGFpbWVkIik7dGhpcy5jbGFpbWVkPSEwfWdldCBkdXJhdGlvbigpe3JldHVybiB0aGlzLnN0b3BwZWRBdD90aGlzLnN0b3BwZWRBdC10aGlzLnN0YXJ0ZWRBdDpEYXRlLm5vdygpLXRoaXMuc3RhcnRlZEF0fWNvbnN0cnVjdG9yKCl7dGhpcy5jbGFpbWVkPSExLHRoaXMucHJvbWlzZT1uZXcgUHJvbWlzZSgodCxyKT0+e3RoaXMucmVzb2x2ZT1pPT57dGhpcy5zdGF0dXM9ImZ1bGZpbGxlZCIsdGhpcy5zdG9wcGVkQXQ9RGF0ZS5ub3coKSx0KGkpfSx0aGlzLnJlamVjdD1pPT57dGhpcy5zdGF0dXM9InJlamVjdGVkIix0aGlzLnN0b3BwZWRBdD1EYXRlLm5vdygpLHIoaSl9LHRoaXMuc3RhcnRlZEF0PURhdGUubm93KCksdGhpcy5zdGF0dXM9InBlbmRpbmcifSl9fSxCYz0oKT0+bmV3IHB2fSk7dmFyIGZ2LGg4cixtdWU9cCgoKT0+e2h2KCk7ZnY9Y2xhc3N7Y29uc3RydWN0b3IoKXt0aGlzLmFjY3VtdWxhdGVkUHJvbWlzZXM9W10sdGhpcy5kZWZlcnJlZD1CYygpLHRoaXMucHJvbWlzZT10aGlzLmRlZmVycmVkLnByb21pc2Usc2V0VGltZW91dChhc3luYygpPT57Zm9yKDt0aGlzLmFjY3VtdWxhdGVkUHJvbWlzZXMubGVuZ3RoPjA7KWF3YWl0IHRoaXMuYWNjdW11bGF0ZWRQcm9taXNlcy5zaGlmdCgpO3RoaXMuZGVmZXJyZWQucmVzb2x2ZSgpfSwwKX1zdWJEZWZlcigpe2xldCB0PUJjKCk7cmV0dXJuIHRoaXMuYWRkUHJvbWlzZSh0LnByb21pc2UpLHR9YWRkUHJvbWlzZSh0KXt0aGlzLmFjY3VtdWxhdGVkUHJvbWlzZXMucHVzaCh0KX19LGg4cj0oKT0+bmV3IGZ2fSk7dmFyIEtlPXt9O0ZlKEtlLHtDdW11bGF0aXZlRGVmZXJyZWQ6KCk9PmZ2LERlZmVycmVkOigpPT5wdixjdW11bGF0aXZlRGVmZXI6KCk9Pmg4cixkZWZlcjooKT0+QmMsZnJvbUNhbGxiYWNrOigpPT54OHIsZ2V0Rmlyc3RUcnVlT3JGYWxzZTooKT0+djhyLG1hcDooKT0+ZzhyLHJlamVjdGVkUHJvbWlzZTooKT0+bThyLHJlc29sdmVkUHJvbWlzZTooKT0+ZjhyLHRpbWVvdXRBbmRDb250aW51ZTooKT0+YjhyLHRpbWVvdXRXcmFwOigpPT5ndWV9KTt2YXIgZjhyLG04cixnOHIsZ3VlLGI4cix2OHIseDhyLHNhPXAoKCk9PntodigpO211ZSgpO2h2KCk7ZjhyPWU9PlByb21pc2UucmVzb2x2ZShlKSxtOHI9ZT0+UHJvbWlzZS5yZWplY3QoZSksZzhyPWFzeW5jKGUsdCk9PntsZXQgcj1bXSxpPVtdO2ZvcihsZXQgYSBvZiBlKXtsZXQgbj10KGEpO3IucHVzaChuKSxuLnRoZW4obz0+e2kucHVzaChvKX0pfXJldHVybiBhd2FpdCBQcm9taXNlLmFsbChyKSxpfSxndWU9YXN5bmMoZSx0LHI9ITApPT5uZXcgUHJvbWlzZSgoaSxhKT0+e3NldFRpbWVvdXQoKCk9PntyP2EobmV3IEVycm9yKCJ0aW1lb3V0IikpOmkobnVsbCl9LHQpLGUudGhlbihpLGEpfSksYjhyPWFzeW5jKGUsdD02ZTQpPT5ndWUoZSx0LCExKSx2OHI9YXN5bmMgZT0+e2xldCB0PUJjKCk7Zm9yKGxldCByIG9mIGUpci50aGVuKGk9PntpPT09ITAmJnQucmVzb2x2ZSghMCl9KTtyZXR1cm4gUHJvbWlzZS5hbGwoZSkudGhlbigoKT0+e3QucmVzb2x2ZSghMSl9KSx0LnByb21pc2V9LHg4cj1lPT5uZXcgUHJvbWlzZSgodCxyKT0+e2UoKGksYSk9PntpP3IoaSk6dChhKX0pfSl9KTt2YXIgbXY9cCgoKT0+e3NhKCl9KTtmdW5jdGlvbiBHdChlLHQpe2lmKHR5cGVvZiB0IT0iZnVuY3Rpb24iJiZ0IT09bnVsbCl0aHJvdyBuZXcgVHlwZUVycm9yKCJDbGFzcyBleHRlbmRzIHZhbHVlICIrU3RyaW5nKHQpKyIgaXMgbm90IGEgY29uc3RydWN0b3Igb3IgbnVsbCIpO09GKGUsdCk7ZnVuY3Rpb24gcigpe3RoaXMuY29uc3RydWN0b3I9ZX1lLnByb3RvdHlwZT10PT09bnVsbD9PYmplY3QuY3JlYXRlKHQpOihyLnByb3RvdHlwZT10LnByb3RvdHlwZSxuZXcgcil9ZnVuY3Rpb24gdzhyKGUsdCl7dmFyIHI9e307Zm9yKHZhciBpIGluIGUpT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKGUsaSkmJnQuaW5kZXhPZihpKTwwJiYocltpXT1lW2ldKTtpZihlIT1udWxsJiZ0eXBlb2YgT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scz09ImZ1bmN0aW9uIilmb3IodmFyIGE9MCxpPU9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMoZSk7YTxpLmxlbmd0aDthKyspdC5pbmRleE9mKGlbYV0pPDAmJk9iamVjdC5wcm90b3R5cGUucHJvcGVydHlJc0VudW1lcmFibGUuY2FsbChlLGlbYV0pJiYocltpW2FdXT1lW2lbYV1dKTtyZXR1cm4gcn1mdW5jdGlvbiBNOHIoZSx0LHIsaSl7dmFyIGE9YXJndW1lbnRzLmxlbmd0aCxuPWE8Mz90Omk9PT1udWxsP2k9T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcih0LHIpOmksbztpZih0eXBlb2YgUmVmbGVjdD09Im9iamVjdCImJnR5cGVvZiBSZWZsZWN0LmRlY29yYXRlPT0iZnVuY3Rpb24iKW49UmVmbGVjdC5kZWNvcmF0ZShlLHQscixpKTtlbHNlIGZvcih2YXIgcz1lLmxlbmd0aC0xO3M+PTA7cy0tKShvPWVbc10pJiYobj0oYTwzP28obik6YT4zP28odCxyLG4pOm8odCxyKSl8fG4pO3JldHVybiBhPjMmJm4mJk9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LHIsbiksbn1mdW5jdGlvbiBrOHIoZSx0KXtyZXR1cm4gZnVuY3Rpb24ocixpKXt0KHIsaSxlKX19ZnVuY3Rpb24gUzhyKGUsdCxyLGksYSxuKXtmdW5jdGlvbiBvKHkpe2lmKHkhPT12b2lkIDAmJnR5cGVvZiB5IT0iZnVuY3Rpb24iKXRocm93IG5ldyBUeXBlRXJyb3IoIkZ1bmN0aW9uIGV4cGVjdGVkIik7cmV0dXJuIHl9Zm9yKHZhciBzPWkua2luZCxsPXM9PT0iZ2V0dGVyIj8iZ2V0IjpzPT09InNldHRlciI/InNldCI6InZhbHVlIixjPSF0JiZlP2kuc3RhdGljP2U6ZS5wcm90b3R5cGU6bnVsbCx1PXR8fChjP09iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoYyxpLm5hbWUpOnt9KSxkLGg9ITEsZj1yLmxlbmd0aC0xO2Y+PTA7Zi0tKXt2YXIgeD17fTtmb3IodmFyIHYgaW4gaSl4W3ZdPXY9PT0iYWNjZXNzIj97fTppW3ZdO2Zvcih2YXIgdiBpbiBpLmFjY2Vzcyl4LmFjY2Vzc1t2XT1pLmFjY2Vzc1t2XTt4LmFkZEluaXRpYWxpemVyPWZ1bmN0aW9uKHkpe2lmKGgpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGFkZCBpbml0aWFsaXplcnMgYWZ0ZXIgZGVjb3JhdGlvbiBoYXMgY29tcGxldGVkIik7bi5wdXNoKG8oeXx8bnVsbCkpfTt2YXIgYj0oMCxyW2ZdKShzPT09ImFjY2Vzc29yIj97Z2V0OnUuZ2V0LHNldDp1LnNldH06dVtsXSx4KTtpZihzPT09ImFjY2Vzc29yIil7aWYoYj09PXZvaWQgMCljb250aW51ZTtpZihiPT09bnVsbHx8dHlwZW9mIGIhPSJvYmplY3QiKXRocm93IG5ldyBUeXBlRXJyb3IoIk9iamVjdCBleHBlY3RlZCIpOyhkPW8oYi5nZXQpKSYmKHUuZ2V0PWQpLChkPW8oYi5zZXQpKSYmKHUuc2V0PWQpLChkPW8oYi5pbml0KSkmJmEudW5zaGlmdChkKX1lbHNlKGQ9byhiKSkmJihzPT09ImZpZWxkIj9hLnVuc2hpZnQoZCk6dVtsXT1kKX1jJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoYyxpLm5hbWUsdSksaD0hMH1mdW5jdGlvbiB6OHIoZSx0LHIpe2Zvcih2YXIgaT1hcmd1bWVudHMubGVuZ3RoPjIsYT0wO2E8dC5sZW5ndGg7YSsrKXI9aT90W2FdLmNhbGwoZSxyKTp0W2FdLmNhbGwoZSk7cmV0dXJuIGk/cjp2b2lkIDB9ZnVuY3Rpb24gQzhyKGUpe3JldHVybiB0eXBlb2YgZT09InN5bWJvbCI/ZToiIi5jb25jYXQoZSl9ZnVuY3Rpb24gVDhyKGUsdCxyKXtyZXR1cm4gdHlwZW9mIHQ9PSJzeW1ib2wiJiYodD10LmRlc2NyaXB0aW9uPyJbIi5jb25jYXQodC5kZXNjcmlwdGlvbiwiXSIpOiIiKSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwibmFtZSIse2NvbmZpZ3VyYWJsZTohMCx2YWx1ZTpyPyIiLmNvbmNhdChyLCIgIix0KTp0fSl9ZnVuY3Rpb24gXzhyKGUsdCl7aWYodHlwZW9mIFJlZmxlY3Q9PSJvYmplY3QiJiZ0eXBlb2YgUmVmbGVjdC5tZXRhZGF0YT09ImZ1bmN0aW9uIilyZXR1cm4gUmVmbGVjdC5tZXRhZGF0YShlLHQpfWZ1bmN0aW9uIHFGKGUsdCxyLGkpe2Z1bmN0aW9uIGEobil7cmV0dXJuIG4gaW5zdGFuY2VvZiByP246bmV3IHIoZnVuY3Rpb24obyl7byhuKX0pfXJldHVybiBuZXcocnx8KHI9UHJvbWlzZSkpKGZ1bmN0aW9uKG4sbyl7ZnVuY3Rpb24gcyh1KXt0cnl7YyhpLm5leHQodSkpfWNhdGNoKGQpe28oZCl9fWZ1bmN0aW9uIGwodSl7dHJ5e2MoaS50aHJvdyh1KSl9Y2F0Y2goZCl7byhkKX19ZnVuY3Rpb24gYyh1KXt1LmRvbmU/bih1LnZhbHVlKTphKHUudmFsdWUpLnRoZW4ocyxsKX1jKChpPWkuYXBwbHkoZSx0fHxbXSkpLm5leHQoKSl9KX1mdW5jdGlvbiBGaChlLHQpe3ZhciByPXtsYWJlbDowLHNlbnQ6ZnVuY3Rpb24oKXtpZihuWzBdJjEpdGhyb3cgblsxXTtyZXR1cm4gblsxXX0sdHJ5czpbXSxvcHM6W119LGksYSxuLG89T2JqZWN0LmNyZWF0ZSgodHlwZW9mIEl0ZXJhdG9yPT0iZnVuY3Rpb24iP0l0ZXJhdG9yOk9iamVjdCkucHJvdG90eXBlKTtyZXR1cm4gby5uZXh0PXMoMCksby50aHJvdz1zKDEpLG8ucmV0dXJuPXMoMiksdHlwZW9mIFN5bWJvbD09ImZ1bmN0aW9uIiYmKG9bU3ltYm9sLml0ZXJhdG9yXT1mdW5jdGlvbigpe3JldHVybiB0aGlzfSksbztmdW5jdGlvbiBzKGMpe3JldHVybiBmdW5jdGlvbih1KXtyZXR1cm4gbChbYyx1XSl9fWZ1bmN0aW9uIGwoYyl7aWYoaSl0aHJvdyBuZXcgVHlwZUVycm9yKCJHZW5lcmF0b3IgaXMgYWxyZWFkeSBleGVjdXRpbmcuIik7Zm9yKDtvJiYobz0wLGNbMF0mJihyPTApKSxyOyl0cnl7aWYoaT0xLGEmJihuPWNbMF0mMj9hLnJldHVybjpjWzBdP2EudGhyb3d8fCgobj1hLnJldHVybikmJm4uY2FsbChhKSwwKTphLm5leHQpJiYhKG49bi5jYWxsKGEsY1sxXSkpLmRvbmUpcmV0dXJuIG47c3dpdGNoKGE9MCxuJiYoYz1bY1swXSYyLG4udmFsdWVdKSxjWzBdKXtjYXNlIDA6Y2FzZSAxOm49YzticmVhaztjYXNlIDQ6cmV0dXJuIHIubGFiZWwrKyx7dmFsdWU6Y1sxXSxkb25lOiExfTtjYXNlIDU6ci5sYWJlbCsrLGE9Y1sxXSxjPVswXTtjb250aW51ZTtjYXNlIDc6Yz1yLm9wcy5wb3AoKSxyLnRyeXMucG9wKCk7Y29udGludWU7ZGVmYXVsdDppZihuPXIudHJ5cywhKG49bi5sZW5ndGg+MCYmbltuLmxlbmd0aC0xXSkmJihjWzBdPT09Nnx8Y1swXT09PTIpKXtyPTA7Y29udGludWV9aWYoY1swXT09PTMmJighbnx8Y1sxXT5uWzBdJiZjWzFdPG5bM10pKXtyLmxhYmVsPWNbMV07YnJlYWt9aWYoY1swXT09PTYmJnIubGFiZWw8blsxXSl7ci5sYWJlbD1uWzFdLG49YzticmVha31pZihuJiZyLmxhYmVsPG5bMl0pe3IubGFiZWw9blsyXSxyLm9wcy5wdXNoKGMpO2JyZWFrfW5bMl0mJnIub3BzLnBvcCgpLHIudHJ5cy5wb3AoKTtjb250aW51ZX1jPXQuY2FsbChlLHIpfWNhdGNoKHUpe2M9WzYsdV0sYT0wfWZpbmFsbHl7aT1uPTB9aWYoY1swXSY1KXRocm93IGNbMV07cmV0dXJue3ZhbHVlOmNbMF0/Y1sxXTp2b2lkIDAsZG9uZTohMH19fWZ1bmN0aW9uIEw4cihlLHQpe2Zvcih2YXIgciBpbiBlKXIhPT0iZGVmYXVsdCImJiFPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwodCxyKSYmQkYodCxlLHIpfWZ1bmN0aW9uIGxhKGUpe3ZhciB0PXR5cGVvZiBTeW1ib2w9PSJmdW5jdGlvbiImJlN5bWJvbC5pdGVyYXRvcixyPXQmJmVbdF0saT0wO2lmKHIpcmV0dXJuIHIuY2FsbChlKTtpZihlJiZ0eXBlb2YgZS5sZW5ndGg9PSJudW1iZXIiKXJldHVybntuZXh0OmZ1bmN0aW9uKCl7cmV0dXJuIGUmJmk+PWUubGVuZ3RoJiYoZT12b2lkIDApLHt2YWx1ZTplJiZlW2krK10sZG9uZTohZX19fTt0aHJvdyBuZXcgVHlwZUVycm9yKHQ/Ik9iamVjdCBpcyBub3QgaXRlcmFibGUuIjoiU3ltYm9sLml0ZXJhdG9yIGlzIG5vdCBkZWZpbmVkLiIpfWZ1bmN0aW9uIFgxKGUsdCl7dmFyIHI9dHlwZW9mIFN5bWJvbD09ImZ1bmN0aW9uIiYmZVtTeW1ib2wuaXRlcmF0b3JdO2lmKCFyKXJldHVybiBlO3ZhciBpPXIuY2FsbChlKSxhLG49W10sbzt0cnl7Zm9yKDsodD09PXZvaWQgMHx8dC0tID4wKSYmIShhPWkubmV4dCgpKS5kb25lOyluLnB1c2goYS52YWx1ZSl9Y2F0Y2gocyl7bz17ZXJyb3I6c319ZmluYWxseXt0cnl7YSYmIWEuZG9uZSYmKHI9aS5yZXR1cm4pJiZyLmNhbGwoaSl9ZmluYWxseXtpZihvKXRocm93IG8uZXJyb3J9fXJldHVybiBufWZ1bmN0aW9uIEE4cigpe2Zvcih2YXIgZT1bXSx0PTA7dDxhcmd1bWVudHMubGVuZ3RoO3QrKyllPWUuY29uY2F0KFgxKGFyZ3VtZW50c1t0XSkpO3JldHVybiBlfWZ1bmN0aW9uIEQ4cigpe2Zvcih2YXIgZT0wLHQ9MCxyPWFyZ3VtZW50cy5sZW5ndGg7dDxyO3QrKyllKz1hcmd1bWVudHNbdF0ubGVuZ3RoO2Zvcih2YXIgaT1BcnJheShlKSxhPTAsdD0wO3Q8cjt0KyspZm9yKHZhciBuPWFyZ3VtZW50c1t0XSxvPTAscz1uLmxlbmd0aDtvPHM7bysrLGErKylpW2FdPW5bb107cmV0dXJuIGl9ZnVuY3Rpb24gcWkoZSx0LHIpe2lmKHJ8fGFyZ3VtZW50cy5sZW5ndGg9PT0yKWZvcih2YXIgaT0wLGE9dC5sZW5ndGgsbjtpPGE7aSsrKShufHwhKGkgaW4gdCkpJiYobnx8KG49QXJyYXkucHJvdG90eXBlLnNsaWNlLmNhbGwodCwwLGkpKSxuW2ldPXRbaV0pO3JldHVybiBlLmNvbmNhdChufHxBcnJheS5wcm90b3R5cGUuc2xpY2UuY2FsbCh0KSl9ZnVuY3Rpb24gaGwoZSl7cmV0dXJuIHRoaXMgaW5zdGFuY2VvZiBobD8odGhpcy52PWUsdGhpcyk6bmV3IGhsKGUpfWZ1bmN0aW9uIGpGKGUsdCxyKXtpZighU3ltYm9sLmFzeW5jSXRlcmF0b3IpdGhyb3cgbmV3IFR5cGVFcnJvcigiU3ltYm9sLmFzeW5jSXRlcmF0b3IgaXMgbm90IGRlZmluZWQuIik7dmFyIGk9ci5hcHBseShlLHR8fFtdKSxhLG49W107cmV0dXJuIGE9T2JqZWN0LmNyZWF0ZSgodHlwZW9mIEFzeW5jSXRlcmF0b3I9PSJmdW5jdGlvbiI/QXN5bmNJdGVyYXRvcjpPYmplY3QpLnByb3RvdHlwZSkscygibmV4dCIpLHMoInRocm93IikscygicmV0dXJuIixvKSxhW1N5bWJvbC5hc3luY0l0ZXJhdG9yXT1mdW5jdGlvbigpe3JldHVybiB0aGlzfSxhO2Z1bmN0aW9uIG8oZil7cmV0dXJuIGZ1bmN0aW9uKHgpe3JldHVybiBQcm9taXNlLnJlc29sdmUoeCkudGhlbihmLGQpfX1mdW5jdGlvbiBzKGYseCl7aVtmXSYmKGFbZl09ZnVuY3Rpb24odil7cmV0dXJuIG5ldyBQcm9taXNlKGZ1bmN0aW9uKGIseSl7bi5wdXNoKFtmLHYsYix5XSk+MXx8bChmLHYpfSl9LHgmJihhW2ZdPXgoYVtmXSkpKX1mdW5jdGlvbiBsKGYseCl7dHJ5e2MoaVtmXSh4KSl9Y2F0Y2godil7aChuWzBdWzNdLHYpfX1mdW5jdGlvbiBjKGYpe2YudmFsdWUgaW5zdGFuY2VvZiBobD9Qcm9taXNlLnJlc29sdmUoZi52YWx1ZS52KS50aGVuKHUsZCk6aChuWzBdWzJdLGYpfWZ1bmN0aW9uIHUoZil7bCgibmV4dCIsZil9ZnVuY3Rpb24gZChmKXtsKCJ0aHJvdyIsZil9ZnVuY3Rpb24gaChmLHgpe2YoeCksbi5zaGlmdCgpLG4ubGVuZ3RoJiZsKG5bMF1bMF0sblswXVsxXSl9fWZ1bmN0aW9uIEU4cihlKXt2YXIgdCxyO3JldHVybiB0PXt9LGkoIm5leHQiKSxpKCJ0aHJvdyIsZnVuY3Rpb24oYSl7dGhyb3cgYX0pLGkoInJldHVybiIpLHRbU3ltYm9sLml0ZXJhdG9yXT1mdW5jdGlvbigpe3JldHVybiB0aGlzfSx0O2Z1bmN0aW9uIGkoYSxuKXt0W2FdPWVbYV0/ZnVuY3Rpb24obyl7cmV0dXJuKHI9IXIpP3t2YWx1ZTpobChlW2FdKG8pKSxkb25lOiExfTpuP24obyk6b306bn19ZnVuY3Rpb24gVkYoZSl7aWYoIVN5bWJvbC5hc3luY0l0ZXJhdG9yKXRocm93IG5ldyBUeXBlRXJyb3IoIlN5bWJvbC5hc3luY0l0ZXJhdG9yIGlzIG5vdCBkZWZpbmVkLiIpO3ZhciB0PWVbU3ltYm9sLmFzeW5jSXRlcmF0b3JdLHI7cmV0dXJuIHQ/dC5jYWxsKGUpOihlPXR5cGVvZiBsYT09ImZ1bmN0aW9uIj9sYShlKTplW1N5bWJvbC5pdGVyYXRvcl0oKSxyPXt9LGkoIm5leHQiKSxpKCJ0aHJvdyIpLGkoInJldHVybiIpLHJbU3ltYm9sLmFzeW5jSXRlcmF0b3JdPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXN9LHIpO2Z1bmN0aW9uIGkobil7cltuXT1lW25dJiZmdW5jdGlvbihvKXtyZXR1cm4gbmV3IFByb21pc2UoZnVuY3Rpb24ocyxsKXtvPWVbbl0obyksYShzLGwsby5kb25lLG8udmFsdWUpfSl9fWZ1bmN0aW9uIGEobixvLHMsbCl7UHJvbWlzZS5yZXNvbHZlKGwpLnRoZW4oZnVuY3Rpb24oYyl7bih7dmFsdWU6Yyxkb25lOnN9KX0sbyl9fWZ1bmN0aW9uICQ4cihlLHQpe3JldHVybiBPYmplY3QuZGVmaW5lUHJvcGVydHk/T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsInJhdyIse3ZhbHVlOnR9KTplLnJhdz10LGV9ZnVuY3Rpb24gUDhyKGUpe2lmKGUmJmUuX19lc01vZHVsZSlyZXR1cm4gZTt2YXIgdD17fTtpZihlIT1udWxsKWZvcih2YXIgcj1IRihlKSxpPTA7aTxyLmxlbmd0aDtpKyspcltpXSE9PSJkZWZhdWx0IiYmQkYodCxlLHJbaV0pO3JldHVybiBJOHIodCxlKSx0fWZ1bmN0aW9uIE44cihlKXtyZXR1cm4gZSYmZS5fX2VzTW9kdWxlP2U6e2RlZmF1bHQ6ZX19ZnVuY3Rpb24gRjhyKGUsdCxyLGkpe2lmKHI9PT0iYSImJiFpKXRocm93IG5ldyBUeXBlRXJyb3IoIlByaXZhdGUgYWNjZXNzb3Igd2FzIGRlZmluZWQgd2l0aG91dCBhIGdldHRlciIpO2lmKHR5cGVvZiB0PT0iZnVuY3Rpb24iP2UhPT10fHwhaTohdC5oYXMoZSkpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IHJlYWQgcHJpdmF0ZSBtZW1iZXIgZnJvbSBhbiBvYmplY3Qgd2hvc2UgY2xhc3MgZGlkIG5vdCBkZWNsYXJlIGl0Iik7cmV0dXJuIHI9PT0ibSI/aTpyPT09ImEiP2kuY2FsbChlKTppP2kudmFsdWU6dC5nZXQoZSl9ZnVuY3Rpb24gTzhyKGUsdCxyLGksYSl7aWYoaT09PSJtIil0aHJvdyBuZXcgVHlwZUVycm9yKCJQcml2YXRlIG1ldGhvZCBpcyBub3Qgd3JpdGFibGUiKTtpZihpPT09ImEiJiYhYSl0aHJvdyBuZXcgVHlwZUVycm9yKCJQcml2YXRlIGFjY2Vzc29yIHdhcyBkZWZpbmVkIHdpdGhvdXQgYSBzZXR0ZXIiKTtpZih0eXBlb2YgdD09ImZ1bmN0aW9uIj9lIT09dHx8IWE6IXQuaGFzKGUpKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCB3cml0ZSBwcml2YXRlIG1lbWJlciB0byBhbiBvYmplY3Qgd2hvc2UgY2xhc3MgZGlkIG5vdCBkZWNsYXJlIGl0Iik7cmV0dXJuIGk9PT0iYSI/YS5jYWxsKGUscik6YT9hLnZhbHVlPXI6dC5zZXQoZSxyKSxyfWZ1bmN0aW9uIFI4cihlLHQpe2lmKHQ9PT1udWxsfHx0eXBlb2YgdCE9Im9iamVjdCImJnR5cGVvZiB0IT0iZnVuY3Rpb24iKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCB1c2UgJ2luJyBvcGVyYXRvciBvbiBub24tb2JqZWN0Iik7cmV0dXJuIHR5cGVvZiBlPT0iZnVuY3Rpb24iP3Q9PT1lOmUuaGFzKHQpfWZ1bmN0aW9uIEI4cihlLHQscil7aWYodCE9bnVsbCl7aWYodHlwZW9mIHQhPSJvYmplY3QiJiZ0eXBlb2YgdCE9ImZ1bmN0aW9uIil0aHJvdyBuZXcgVHlwZUVycm9yKCJPYmplY3QgZXhwZWN0ZWQuIik7dmFyIGksYTtpZihyKXtpZighU3ltYm9sLmFzeW5jRGlzcG9zZSl0aHJvdyBuZXcgVHlwZUVycm9yKCJTeW1ib2wuYXN5bmNEaXNwb3NlIGlzIG5vdCBkZWZpbmVkLiIpO2k9dFtTeW1ib2wuYXN5bmNEaXNwb3NlXX1pZihpPT09dm9pZCAwKXtpZighU3ltYm9sLmRpc3Bvc2UpdGhyb3cgbmV3IFR5cGVFcnJvcigiU3ltYm9sLmRpc3Bvc2UgaXMgbm90IGRlZmluZWQuIik7aT10W1N5bWJvbC5kaXNwb3NlXSxyJiYoYT1pKX1pZih0eXBlb2YgaSE9ImZ1bmN0aW9uIil0aHJvdyBuZXcgVHlwZUVycm9yKCJPYmplY3Qgbm90IGRpc3Bvc2FibGUuIik7YSYmKGk9ZnVuY3Rpb24oKXt0cnl7YS5jYWxsKHRoaXMpfWNhdGNoKG4pe3JldHVybiBQcm9taXNlLnJlamVjdChuKX19KSxlLnN0YWNrLnB1c2goe3ZhbHVlOnQsZGlzcG9zZTppLGFzeW5jOnJ9KX1lbHNlIHImJmUuc3RhY2sucHVzaCh7YXN5bmM6ITB9KTtyZXR1cm4gdH1mdW5jdGlvbiBxOHIoZSl7ZnVuY3Rpb24gdChuKXtlLmVycm9yPWUuaGFzRXJyb3I/bmV3IEg4cihuLGUuZXJyb3IsIkFuIGVycm9yIHdhcyBzdXBwcmVzc2VkIGR1cmluZyBkaXNwb3NhbC4iKTpuLGUuaGFzRXJyb3I9ITB9dmFyIHIsaT0wO2Z1bmN0aW9uIGEoKXtmb3IoO3I9ZS5zdGFjay5wb3AoKTspdHJ5e2lmKCFyLmFzeW5jJiZpPT09MSlyZXR1cm4gaT0wLGUuc3RhY2sucHVzaChyKSxQcm9taXNlLnJlc29sdmUoKS50aGVuKGEpO2lmKHIuZGlzcG9zZSl7dmFyIG49ci5kaXNwb3NlLmNhbGwoci52YWx1ZSk7aWYoci5hc3luYylyZXR1cm4gaXw9MixQcm9taXNlLnJlc29sdmUobikudGhlbihhLGZ1bmN0aW9uKG8pe3JldHVybiB0KG8pLGEoKX0pfWVsc2UgaXw9MX1jYXRjaChvKXt0KG8pfWlmKGk9PT0xKXJldHVybiBlLmhhc0Vycm9yP1Byb21pc2UucmVqZWN0KGUuZXJyb3IpOlByb21pc2UucmVzb2x2ZSgpO2lmKGUuaGFzRXJyb3IpdGhyb3cgZS5lcnJvcn1yZXR1cm4gYSgpfWZ1bmN0aW9uIGo4cihlLHQpe3JldHVybiB0eXBlb2YgZT09InN0cmluZyImJi9eXC5cLj9cLy8udGVzdChlKT9lLnJlcGxhY2UoL1wuKHRzeCkkfCgoPzpcLmQpPykoKD86XC5bXi4vXSs/KT8pXC4oW2NtXT8pdHMkL2ksZnVuY3Rpb24ocixpLGEsbixvKXtyZXR1cm4gaT90PyIuanN4IjoiLmpzIjphJiYoIW58fCFvKT9yOmErbisiLiIrby50b0xvd2VyQ2FzZSgpKyJqcyJ9KTplfXZhciBPRixSRixCRixJOHIsSEYsSDhyLFNRcixPcj1wKCgpPT57T0Y9ZnVuY3Rpb24oZSx0KXtyZXR1cm4gT0Y9T2JqZWN0LnNldFByb3RvdHlwZU9mfHx7X19wcm90b19fOltdfWluc3RhbmNlb2YgQXJyYXkmJmZ1bmN0aW9uKHIsaSl7ci5fX3Byb3RvX189aX18fGZ1bmN0aW9uKHIsaSl7Zm9yKHZhciBhIGluIGkpT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKGksYSkmJihyW2FdPWlbYV0pfSxPRihlLHQpfTtSRj1mdW5jdGlvbigpe3JldHVybiBSRj1PYmplY3QuYXNzaWdufHxmdW5jdGlvbih0KXtmb3IodmFyIHIsaT0xLGE9YXJndW1lbnRzLmxlbmd0aDtpPGE7aSsrKXtyPWFyZ3VtZW50c1tpXTtmb3IodmFyIG4gaW4gcilPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwocixuKSYmKHRbbl09cltuXSl9cmV0dXJuIHR9LFJGLmFwcGx5KHRoaXMsYXJndW1lbnRzKX07QkY9T2JqZWN0LmNyZWF0ZT8oZnVuY3Rpb24oZSx0LHIsaSl7aT09PXZvaWQgMCYmKGk9cik7dmFyIGE9T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcih0LHIpOyghYXx8KCJnZXQiaW4gYT8hdC5fX2VzTW9kdWxlOmEud3JpdGFibGV8fGEuY29uZmlndXJhYmxlKSkmJihhPXtlbnVtZXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiB0W3JdfX0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShlLGksYSl9KTooZnVuY3Rpb24oZSx0LHIsaSl7aT09PXZvaWQgMCYmKGk9ciksZVtpXT10W3JdfSk7SThyPU9iamVjdC5jcmVhdGU/KGZ1bmN0aW9uKGUsdCl7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsImRlZmF1bHQiLHtlbnVtZXJhYmxlOiEwLHZhbHVlOnR9KX0pOmZ1bmN0aW9uKGUsdCl7ZS5kZWZhdWx0PXR9LEhGPWZ1bmN0aW9uKGUpe3JldHVybiBIRj1PYmplY3QuZ2V0T3duUHJvcGVydHlOYW1lc3x8ZnVuY3Rpb24odCl7dmFyIHI9W107Zm9yKHZhciBpIGluIHQpT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHQsaSkmJihyW3IubGVuZ3RoXT1pKTtyZXR1cm4gcn0sSEYoZSl9O0g4cj10eXBlb2YgU3VwcHJlc3NlZEVycm9yPT0iZnVuY3Rpb24iP1N1cHByZXNzZWRFcnJvcjpmdW5jdGlvbihlLHQscil7dmFyIGk9bmV3IEVycm9yKHIpO3JldHVybiBpLm5hbWU9IlN1cHByZXNzZWRFcnJvciIsaS5lcnJvcj1lLGkuc3VwcHJlc3NlZD10LGl9O1NRcj17X19leHRlbmRzOkd0LF9fYXNzaWduOlJGLF9fcmVzdDp3OHIsX19kZWNvcmF0ZTpNOHIsX19wYXJhbTprOHIsX19lc0RlY29yYXRlOlM4cixfX3J1bkluaXRpYWxpemVyczp6OHIsX19wcm9wS2V5OkM4cixfX3NldEZ1bmN0aW9uTmFtZTpUOHIsX19tZXRhZGF0YTpfOHIsX19hd2FpdGVyOnFGLF9fZ2VuZXJhdG9yOkZoLF9fY3JlYXRlQmluZGluZzpCRixfX2V4cG9ydFN0YXI6TDhyLF9fdmFsdWVzOmxhLF9fcmVhZDpYMSxfX3NwcmVhZDpBOHIsX19zcHJlYWRBcnJheXM6RDhyLF9fc3ByZWFkQXJyYXk6cWksX19hd2FpdDpobCxfX2FzeW5jR2VuZXJhdG9yOmpGLF9fYXN5bmNEZWxlZ2F0b3I6RThyLF9fYXN5bmNWYWx1ZXM6VkYsX19tYWtlVGVtcGxhdGVPYmplY3Q6JDhyLF9faW1wb3J0U3RhcjpQOHIsX19pbXBvcnREZWZhdWx0Ok44cixfX2NsYXNzUHJpdmF0ZUZpZWxkR2V0OkY4cixfX2NsYXNzUHJpdmF0ZUZpZWxkU2V0Ok84cixfX2NsYXNzUHJpdmF0ZUZpZWxkSW46UjhyLF9fYWRkRGlzcG9zYWJsZVJlc291cmNlOkI4cixfX2Rpc3Bvc2VSZXNvdXJjZXM6cThyLF9fcmV3cml0ZVJlbGF0aXZlSW1wb3J0RXh0ZW5zaW9uOmo4cn19KTtmdW5jdGlvbiBUdChlKXtyZXR1cm4gdHlwZW9mIGU9PSJmdW5jdGlvbiJ9dmFyIENpPXAoKCk9Pnt9KTtmdW5jdGlvbiBwbihlKXt2YXIgdD1mdW5jdGlvbihpKXtFcnJvci5jYWxsKGkpLGkuc3RhY2s9bmV3IEVycm9yKCkuc3RhY2t9LHI9ZSh0KTtyZXR1cm4gci5wcm90b3R5cGU9T2JqZWN0LmNyZWF0ZShFcnJvci5wcm90b3R5cGUpLHIucHJvdG90eXBlLmNvbnN0cnVjdG9yPXIscn12YXIgSGM9cCgoKT0+e30pO3ZhciBPaCxVRj1wKCgpPT57SGMoKTtPaD1wbihmdW5jdGlvbihlKXtyZXR1cm4gZnVuY3Rpb24ocil7ZSh0aGlzKSx0aGlzLm1lc3NhZ2U9cj9yLmxlbmd0aCtgIGVycm9ycyBvY2N1cnJlZCBkdXJpbmcgdW5zdWJzY3JpcHRpb246CmArci5tYXAoZnVuY3Rpb24oaSxhKXtyZXR1cm4gYSsxKyIpICIraS50b1N0cmluZygpfSkuam9pbihgCiAgYCk6IiIsdGhpcy5uYW1lPSJVbnN1YnNjcmlwdGlvbkVycm9yIix0aGlzLmVycm9ycz1yfX0pfSk7ZnVuY3Rpb24gSm8oZSx0KXtpZihlKXt2YXIgcj1lLmluZGV4T2YodCk7MDw9ciYmZS5zcGxpY2UociwxKX19dmFyIHU1PXAoKCk9Pnt9KTtmdW5jdGlvbiBndihlKXtyZXR1cm4gZSBpbnN0YW5jZW9mIE8xfHxlJiYiY2xvc2VkImluIGUmJlR0KGUucmVtb3ZlKSYmVHQoZS5hZGQpJiZUdChlLnVuc3Vic2NyaWJlKX1mdW5jdGlvbiBidWUoZSl7VHQoZSk/ZSgpOmUudW5zdWJzY3JpYmUoKX12YXIgTzEsV0YsVzI9cCgoKT0+e09yKCk7Q2koKTtVRigpO3U1KCk7TzE9KGZ1bmN0aW9uKCl7ZnVuY3Rpb24gZSh0KXt0aGlzLmluaXRpYWxUZWFyZG93bj10LHRoaXMuY2xvc2VkPSExLHRoaXMuX3BhcmVudGFnZT1udWxsLHRoaXMuX2ZpbmFsaXplcnM9bnVsbH1yZXR1cm4gZS5wcm90b3R5cGUudW5zdWJzY3JpYmU9ZnVuY3Rpb24oKXt2YXIgdCxyLGksYSxuO2lmKCF0aGlzLmNsb3NlZCl7dGhpcy5jbG9zZWQ9ITA7dmFyIG89dGhpcy5fcGFyZW50YWdlO2lmKG8paWYodGhpcy5fcGFyZW50YWdlPW51bGwsQXJyYXkuaXNBcnJheShvKSl0cnl7Zm9yKHZhciBzPWxhKG8pLGw9cy5uZXh0KCk7IWwuZG9uZTtsPXMubmV4dCgpKXt2YXIgYz1sLnZhbHVlO2MucmVtb3ZlKHRoaXMpfX1jYXRjaCh2KXt0PXtlcnJvcjp2fX1maW5hbGx5e3RyeXtsJiYhbC5kb25lJiYocj1zLnJldHVybikmJnIuY2FsbChzKX1maW5hbGx5e2lmKHQpdGhyb3cgdC5lcnJvcn19ZWxzZSBvLnJlbW92ZSh0aGlzKTt2YXIgdT10aGlzLmluaXRpYWxUZWFyZG93bjtpZihUdCh1KSl0cnl7dSgpfWNhdGNoKHYpe249diBpbnN0YW5jZW9mIE9oP3YuZXJyb3JzOlt2XX12YXIgZD10aGlzLl9maW5hbGl6ZXJzO2lmKGQpe3RoaXMuX2ZpbmFsaXplcnM9bnVsbDt0cnl7Zm9yKHZhciBoPWxhKGQpLGY9aC5uZXh0KCk7IWYuZG9uZTtmPWgubmV4dCgpKXt2YXIgeD1mLnZhbHVlO3RyeXtidWUoeCl9Y2F0Y2godil7bj1uPz9bXSx2IGluc3RhbmNlb2YgT2g/bj1xaShxaShbXSxYMShuKSksWDEodi5lcnJvcnMpKTpuLnB1c2godil9fX1jYXRjaCh2KXtpPXtlcnJvcjp2fX1maW5hbGx5e3RyeXtmJiYhZi5kb25lJiYoYT1oLnJldHVybikmJmEuY2FsbChoKX1maW5hbGx5e2lmKGkpdGhyb3cgaS5lcnJvcn19fWlmKG4pdGhyb3cgbmV3IE9oKG4pfX0sZS5wcm90b3R5cGUuYWRkPWZ1bmN0aW9uKHQpe3ZhciByO2lmKHQmJnQhPT10aGlzKWlmKHRoaXMuY2xvc2VkKWJ1ZSh0KTtlbHNle2lmKHQgaW5zdGFuY2VvZiBlKXtpZih0LmNsb3NlZHx8dC5faGFzUGFyZW50KHRoaXMpKXJldHVybjt0Ll9hZGRQYXJlbnQodGhpcyl9KHRoaXMuX2ZpbmFsaXplcnM9KHI9dGhpcy5fZmluYWxpemVycykhPT1udWxsJiZyIT09dm9pZCAwP3I6W10pLnB1c2godCl9fSxlLnByb3RvdHlwZS5faGFzUGFyZW50PWZ1bmN0aW9uKHQpe3ZhciByPXRoaXMuX3BhcmVudGFnZTtyZXR1cm4gcj09PXR8fEFycmF5LmlzQXJyYXkocikmJnIuaW5jbHVkZXModCl9LGUucHJvdG90eXBlLl9hZGRQYXJlbnQ9ZnVuY3Rpb24odCl7dmFyIHI9dGhpcy5fcGFyZW50YWdlO3RoaXMuX3BhcmVudGFnZT1BcnJheS5pc0FycmF5KHIpPyhyLnB1c2godCkscik6cj9bcix0XTp0fSxlLnByb3RvdHlwZS5fcmVtb3ZlUGFyZW50PWZ1bmN0aW9uKHQpe3ZhciByPXRoaXMuX3BhcmVudGFnZTtyPT09dD90aGlzLl9wYXJlbnRhZ2U9bnVsbDpBcnJheS5pc0FycmF5KHIpJiZKbyhyLHQpfSxlLnByb3RvdHlwZS5yZW1vdmU9ZnVuY3Rpb24odCl7dmFyIHI9dGhpcy5fZmluYWxpemVycztyJiZKbyhyLHQpLHQgaW5zdGFuY2VvZiBlJiZ0Ll9yZW1vdmVQYXJlbnQodGhpcyl9LGUuRU1QVFk9KGZ1bmN0aW9uKCl7dmFyIHQ9bmV3IGU7cmV0dXJuIHQuY2xvc2VkPSEwLHR9KSgpLGV9KSgpLFdGPU8xLkVNUFRZfSk7dmFyIGFvLHA1PXAoKCk9Pnthbz17b25VbmhhbmRsZWRFcnJvcjpudWxsLG9uU3RvcHBlZE5vdGlmaWNhdGlvbjpudWxsLFByb21pc2U6dm9pZCAwLHVzZURlcHJlY2F0ZWRTeW5jaHJvbm91c0Vycm9ySGFuZGxpbmc6ITEsdXNlRGVwcmVjYXRlZE5leHRDb250ZXh0OiExfX0pO3ZhciBoNSxHRj1wKCgpPT57T3IoKTtoNT17c2V0VGltZW91dDpmdW5jdGlvbihlLHQpe2Zvcih2YXIgcj1bXSxpPTI7aTxhcmd1bWVudHMubGVuZ3RoO2krKylyW2ktMl09YXJndW1lbnRzW2ldO3ZhciBhPWg1LmRlbGVnYXRlO3JldHVybiBhPy5zZXRUaW1lb3V0P2Euc2V0VGltZW91dC5hcHBseShhLHFpKFtlLHRdLFgxKHIpKSk6c2V0VGltZW91dC5hcHBseSh2b2lkIDAscWkoW2UsdF0sWDEocikpKX0sY2xlYXJUaW1lb3V0OmZ1bmN0aW9uKGUpe3ZhciB0PWg1LmRlbGVnYXRlO3JldHVybih0Py5jbGVhclRpbWVvdXR8fGNsZWFyVGltZW91dCkoZSl9LGRlbGVnYXRlOnZvaWQgMH19KTtmdW5jdGlvbiBidihlKXtoNS5zZXRUaW1lb3V0KGZ1bmN0aW9uKCl7dmFyIHQ9YW8ub25VbmhhbmRsZWRFcnJvcjtpZih0KXQoZSk7ZWxzZSB0aHJvdyBlfSl9dmFyIFlGPXAoKCk9PntwNSgpO0dGKCl9KTtmdW5jdGlvbiBubygpe312YXIgYTM9cCgoKT0+e30pO2Z1bmN0aW9uIHh1ZShlKXtyZXR1cm4gWkYoIkUiLHZvaWQgMCxlKX1mdW5jdGlvbiB5dWUoZSl7cmV0dXJuIFpGKCJOIixlLHZvaWQgMCl9ZnVuY3Rpb24gWkYoZSx0LHIpe3JldHVybntraW5kOmUsdmFsdWU6dCxlcnJvcjpyfX12YXIgdnVlLHd1ZT1wKCgpPT57dnVlPShmdW5jdGlvbigpe3JldHVybiBaRigiQyIsdm9pZCAwLHZvaWQgMCl9KSgpfSk7ZnVuY3Rpb24gZjUoZSl7aWYoYW8udXNlRGVwcmVjYXRlZFN5bmNocm9ub3VzRXJyb3JIYW5kbGluZyl7dmFyIHQ9IW4zO2lmKHQmJihuMz17ZXJyb3JUaHJvd246ITEsZXJyb3I6bnVsbH0pLGUoKSx0KXt2YXIgcj1uMyxpPXIuZXJyb3JUaHJvd24sYT1yLmVycm9yO2lmKG4zPW51bGwsaSl0aHJvdyBhfX1lbHNlIGUoKX1mdW5jdGlvbiBNdWUoZSl7YW8udXNlRGVwcmVjYXRlZFN5bmNocm9ub3VzRXJyb3JIYW5kbGluZyYmbjMmJihuMy5lcnJvclRocm93bj0hMCxuMy5lcnJvcj1lKX12YXIgbjMsdnY9cCgoKT0+e3A1KCk7bjM9bnVsbH0pO2Z1bmN0aW9uIFhGKGUsdCl7cmV0dXJuIFY4ci5jYWxsKGUsdCl9ZnVuY3Rpb24geHYoZSl7YW8udXNlRGVwcmVjYXRlZFN5bmNocm9ub3VzRXJyb3JIYW5kbGluZz9NdWUoZSk6YnYoZSl9ZnVuY3Rpb24gVzhyKGUpe3Rocm93IGV9ZnVuY3Rpb24gUUYoZSx0KXt2YXIgcj1hby5vblN0b3BwZWROb3RpZmljYXRpb247ciYmaDUuc2V0VGltZW91dChmdW5jdGlvbigpe3JldHVybiByKGUsdCl9KX12YXIgbzMsVjhyLFU4cixSaCxHOHIseXY9cCgoKT0+e09yKCk7Q2koKTtXMigpO3A1KCk7WUYoKTthMygpO3d1ZSgpO0dGKCk7dnYoKTtvMz0oZnVuY3Rpb24oZSl7R3QodCxlKTtmdW5jdGlvbiB0KHIpe3ZhciBpPWUuY2FsbCh0aGlzKXx8dGhpcztyZXR1cm4gaS5pc1N0b3BwZWQ9ITEscj8oaS5kZXN0aW5hdGlvbj1yLGd2KHIpJiZyLmFkZChpKSk6aS5kZXN0aW5hdGlvbj1HOHIsaX1yZXR1cm4gdC5jcmVhdGU9ZnVuY3Rpb24ocixpLGEpe3JldHVybiBuZXcgUmgocixpLGEpfSx0LnByb3RvdHlwZS5uZXh0PWZ1bmN0aW9uKHIpe3RoaXMuaXNTdG9wcGVkP1FGKHl1ZShyKSx0aGlzKTp0aGlzLl9uZXh0KHIpfSx0LnByb3RvdHlwZS5lcnJvcj1mdW5jdGlvbihyKXt0aGlzLmlzU3RvcHBlZD9RRih4dWUociksdGhpcyk6KHRoaXMuaXNTdG9wcGVkPSEwLHRoaXMuX2Vycm9yKHIpKX0sdC5wcm90b3R5cGUuY29tcGxldGU9ZnVuY3Rpb24oKXt0aGlzLmlzU3RvcHBlZD9RRih2dWUsdGhpcyk6KHRoaXMuaXNTdG9wcGVkPSEwLHRoaXMuX2NvbXBsZXRlKCkpfSx0LnByb3RvdHlwZS51bnN1YnNjcmliZT1mdW5jdGlvbigpe3RoaXMuY2xvc2VkfHwodGhpcy5pc1N0b3BwZWQ9ITAsZS5wcm90b3R5cGUudW5zdWJzY3JpYmUuY2FsbCh0aGlzKSx0aGlzLmRlc3RpbmF0aW9uPW51bGwpfSx0LnByb3RvdHlwZS5fbmV4dD1mdW5jdGlvbihyKXt0aGlzLmRlc3RpbmF0aW9uLm5leHQocil9LHQucHJvdG90eXBlLl9lcnJvcj1mdW5jdGlvbihyKXt0cnl7dGhpcy5kZXN0aW5hdGlvbi5lcnJvcihyKX1maW5hbGx5e3RoaXMudW5zdWJzY3JpYmUoKX19LHQucHJvdG90eXBlLl9jb21wbGV0ZT1mdW5jdGlvbigpe3RyeXt0aGlzLmRlc3RpbmF0aW9uLmNvbXBsZXRlKCl9ZmluYWxseXt0aGlzLnVuc3Vic2NyaWJlKCl9fSx0fSkoTzEpLFY4cj1GdW5jdGlvbi5wcm90b3R5cGUuYmluZDtVOHI9KGZ1bmN0aW9uKCl7ZnVuY3Rpb24gZSh0KXt0aGlzLnBhcnRpYWxPYnNlcnZlcj10fXJldHVybiBlLnByb3RvdHlwZS5uZXh0PWZ1bmN0aW9uKHQpe3ZhciByPXRoaXMucGFydGlhbE9ic2VydmVyO2lmKHIubmV4dCl0cnl7ci5uZXh0KHQpfWNhdGNoKGkpe3h2KGkpfX0sZS5wcm90b3R5cGUuZXJyb3I9ZnVuY3Rpb24odCl7dmFyIHI9dGhpcy5wYXJ0aWFsT2JzZXJ2ZXI7aWYoci5lcnJvcil0cnl7ci5lcnJvcih0KX1jYXRjaChpKXt4dihpKX1lbHNlIHh2KHQpfSxlLnByb3RvdHlwZS5jb21wbGV0ZT1mdW5jdGlvbigpe3ZhciB0PXRoaXMucGFydGlhbE9ic2VydmVyO2lmKHQuY29tcGxldGUpdHJ5e3QuY29tcGxldGUoKX1jYXRjaChyKXt4dihyKX19LGV9KSgpLFJoPShmdW5jdGlvbihlKXtHdCh0LGUpO2Z1bmN0aW9uIHQocixpLGEpe3ZhciBuPWUuY2FsbCh0aGlzKXx8dGhpcyxvO2lmKFR0KHIpfHwhcilvPXtuZXh0OnI/P3ZvaWQgMCxlcnJvcjppPz92b2lkIDAsY29tcGxldGU6YT8/dm9pZCAwfTtlbHNle3ZhciBzO24mJmFvLnVzZURlcHJlY2F0ZWROZXh0Q29udGV4dD8ocz1PYmplY3QuY3JlYXRlKHIpLHMudW5zdWJzY3JpYmU9ZnVuY3Rpb24oKXtyZXR1cm4gbi51bnN1YnNjcmliZSgpfSxvPXtuZXh0OnIubmV4dCYmWEYoci5uZXh0LHMpLGVycm9yOnIuZXJyb3ImJlhGKHIuZXJyb3IscyksY29tcGxldGU6ci5jb21wbGV0ZSYmWEYoci5jb21wbGV0ZSxzKX0pOm89cn1yZXR1cm4gbi5kZXN0aW5hdGlvbj1uZXcgVThyKG8pLG59cmV0dXJuIHR9KShvMyk7RzhyPXtjbG9zZWQ6ITAsbmV4dDpubyxlcnJvcjpXOHIsY29tcGxldGU6bm99fSk7dmFyIHMzLEJoPXAoKCk9PntzMz0oZnVuY3Rpb24oKXtyZXR1cm4gdHlwZW9mIFN5bWJvbD09ImZ1bmN0aW9uIiYmU3ltYm9sLm9ic2VydmFibGV8fCJAQG9ic2VydmFibGUifSkoKX0pO2Z1bmN0aW9uIEhoKGUpe3JldHVybiBlfXZhciB3dj1wKCgpPT57fSk7ZnVuY3Rpb24gWThyKCl7Zm9yKHZhciBlPVtdLHQ9MDt0PGFyZ3VtZW50cy5sZW5ndGg7dCsrKWVbdF09YXJndW1lbnRzW3RdO3JldHVybiBKRihlKX1mdW5jdGlvbiBKRihlKXtyZXR1cm4gZS5sZW5ndGg9PT0wP0hoOmUubGVuZ3RoPT09MT9lWzBdOmZ1bmN0aW9uKHIpe3JldHVybiBlLnJlZHVjZShmdW5jdGlvbihpLGEpe3JldHVybiBhKGkpfSxyKX19dmFyIEtGPXAoKCk9Pnt3digpfSk7ZnVuY3Rpb24ga3VlKGUpe3ZhciB0O3JldHVybih0PWU/P2FvLlByb21pc2UpIT09bnVsbCYmdCE9PXZvaWQgMD90OlByb21pc2V9ZnVuY3Rpb24gWjhyKGUpe3JldHVybiBlJiZUdChlLm5leHQpJiZUdChlLmVycm9yKSYmVHQoZS5jb21wbGV0ZSl9ZnVuY3Rpb24gWDhyKGUpe3JldHVybiBlJiZlIGluc3RhbmNlb2YgbzN8fFo4cihlKSYmZ3YoZSl9dmFyIEh0LGhuPXAoKCk9Pnt5digpO1cyKCk7QmgoKTtLRigpO3A1KCk7Q2koKTt2digpO0h0PShmdW5jdGlvbigpe2Z1bmN0aW9uIGUodCl7dCYmKHRoaXMuX3N1YnNjcmliZT10KX1yZXR1cm4gZS5wcm90b3R5cGUubGlmdD1mdW5jdGlvbih0KXt2YXIgcj1uZXcgZTtyZXR1cm4gci5zb3VyY2U9dGhpcyxyLm9wZXJhdG9yPXQscn0sZS5wcm90b3R5cGUuc3Vic2NyaWJlPWZ1bmN0aW9uKHQscixpKXt2YXIgYT10aGlzLG49WDhyKHQpP3Q6bmV3IFJoKHQscixpKTtyZXR1cm4gZjUoZnVuY3Rpb24oKXt2YXIgbz1hLHM9by5vcGVyYXRvcixsPW8uc291cmNlO24uYWRkKHM/cy5jYWxsKG4sbCk6bD9hLl9zdWJzY3JpYmUobik6YS5fdHJ5U3Vic2NyaWJlKG4pKX0pLG59LGUucHJvdG90eXBlLl90cnlTdWJzY3JpYmU9ZnVuY3Rpb24odCl7dHJ5e3JldHVybiB0aGlzLl9zdWJzY3JpYmUodCl9Y2F0Y2gocil7dC5lcnJvcihyKX19LGUucHJvdG90eXBlLmZvckVhY2g9ZnVuY3Rpb24odCxyKXt2YXIgaT10aGlzO3JldHVybiByPWt1ZShyKSxuZXcgcihmdW5jdGlvbihhLG4pe3ZhciBvPW5ldyBSaCh7bmV4dDpmdW5jdGlvbihzKXt0cnl7dChzKX1jYXRjaChsKXtuKGwpLG8udW5zdWJzY3JpYmUoKX19LGVycm9yOm4sY29tcGxldGU6YX0pO2kuc3Vic2NyaWJlKG8pfSl9LGUucHJvdG90eXBlLl9zdWJzY3JpYmU9ZnVuY3Rpb24odCl7dmFyIHI7cmV0dXJuKHI9dGhpcy5zb3VyY2UpPT09bnVsbHx8cj09PXZvaWQgMD92b2lkIDA6ci5zdWJzY3JpYmUodCl9LGUucHJvdG90eXBlW3MzXT1mdW5jdGlvbigpe3JldHVybiB0aGlzfSxlLnByb3RvdHlwZS5waXBlPWZ1bmN0aW9uKCl7Zm9yKHZhciB0PVtdLHI9MDtyPGFyZ3VtZW50cy5sZW5ndGg7cisrKXRbcl09YXJndW1lbnRzW3JdO3JldHVybiBKRih0KSh0aGlzKX0sZS5wcm90b3R5cGUudG9Qcm9taXNlPWZ1bmN0aW9uKHQpe3ZhciByPXRoaXM7cmV0dXJuIHQ9a3VlKHQpLG5ldyB0KGZ1bmN0aW9uKGksYSl7dmFyIG47ci5zdWJzY3JpYmUoZnVuY3Rpb24obyl7cmV0dXJuIG49b30sZnVuY3Rpb24obyl7cmV0dXJuIGEobyl9LGZ1bmN0aW9uKCl7cmV0dXJuIGkobil9KX0pfSxlLmNyZWF0ZT1mdW5jdGlvbih0KXtyZXR1cm4gbmV3IGUodCl9LGV9KSgpfSk7ZnVuY3Rpb24gZU8oZSl7cmV0dXJuIFR0KGU/LmxpZnQpfWZ1bmN0aW9uIF9yKGUpe3JldHVybiBmdW5jdGlvbih0KXtpZihlTyh0KSlyZXR1cm4gdC5saWZ0KGZ1bmN0aW9uKHIpe3RyeXtyZXR1cm4gZShyLHRoaXMpfWNhdGNoKGkpe3RoaXMuZXJyb3IoaSl9fSk7dGhyb3cgbmV3IFR5cGVFcnJvcigiVW5hYmxlIHRvIGxpZnQgdW5rbm93biBPYnNlcnZhYmxlIHR5cGUiKX19dmFyIGppPXAoKCk9PntDaSgpfSk7ZnVuY3Rpb24geHIoZSx0LHIsaSxhKXtyZXR1cm4gbmV3IFN1ZShlLHQscixpLGEpfXZhciBTdWUsSGE9cCgoKT0+e09yKCk7eXYoKTtTdWU9KGZ1bmN0aW9uKGUpe0d0KHQsZSk7ZnVuY3Rpb24gdChyLGksYSxuLG8scyl7dmFyIGw9ZS5jYWxsKHRoaXMscil8fHRoaXM7cmV0dXJuIGwub25GaW5hbGl6ZT1vLGwuc2hvdWxkVW5zdWJzY3JpYmU9cyxsLl9uZXh0PWk/ZnVuY3Rpb24oYyl7dHJ5e2koYyl9Y2F0Y2godSl7ci5lcnJvcih1KX19OmUucHJvdG90eXBlLl9uZXh0LGwuX2Vycm9yPW4/ZnVuY3Rpb24oYyl7dHJ5e24oYyl9Y2F0Y2godSl7ci5lcnJvcih1KX1maW5hbGx5e3RoaXMudW5zdWJzY3JpYmUoKX19OmUucHJvdG90eXBlLl9lcnJvcixsLl9jb21wbGV0ZT1hP2Z1bmN0aW9uKCl7dHJ5e2EoKX1jYXRjaChjKXtyLmVycm9yKGMpfWZpbmFsbHl7dGhpcy51bnN1YnNjcmliZSgpfX06ZS5wcm90b3R5cGUuX2NvbXBsZXRlLGx9cmV0dXJuIHQucHJvdG90eXBlLnVuc3Vic2NyaWJlPWZ1bmN0aW9uKCl7dmFyIHI7aWYoIXRoaXMuc2hvdWxkVW5zdWJzY3JpYmV8fHRoaXMuc2hvdWxkVW5zdWJzY3JpYmUoKSl7dmFyIGk9dGhpcy5jbG9zZWQ7ZS5wcm90b3R5cGUudW5zdWJzY3JpYmUuY2FsbCh0aGlzKSwhaSYmKChyPXRoaXMub25GaW5hbGl6ZSk9PT1udWxsfHxyPT09dm9pZCAwfHxyLmNhbGwodGhpcykpfX0sdH0pKG8zKX0pO2Z1bmN0aW9uIE12KCl7cmV0dXJuIF9yKGZ1bmN0aW9uKGUsdCl7dmFyIHI9bnVsbDtlLl9yZWZDb3VudCsrO3ZhciBpPXhyKHQsdm9pZCAwLHZvaWQgMCx2b2lkIDAsZnVuY3Rpb24oKXtpZighZXx8ZS5fcmVmQ291bnQ8PTB8fDA8LS1lLl9yZWZDb3VudCl7cj1udWxsO3JldHVybn12YXIgYT1lLl9jb25uZWN0aW9uLG49cjtyPW51bGwsYSYmKCFufHxhPT09bikmJmEudW5zdWJzY3JpYmUoKSx0LnVuc3Vic2NyaWJlKCl9KTtlLnN1YnNjcmliZShpKSxpLmNsb3NlZHx8KHI9ZS5jb25uZWN0KCkpfSl9dmFyIGt2PXAoKCk9PntqaSgpO0hhKCl9KTt2YXIgenVlLEN1ZT1wKCgpPT57T3IoKTtobigpO1cyKCk7a3YoKTtIYSgpO2ppKCk7enVlPShmdW5jdGlvbihlKXtHdCh0LGUpO2Z1bmN0aW9uIHQocixpKXt2YXIgYT1lLmNhbGwodGhpcyl8fHRoaXM7cmV0dXJuIGEuc291cmNlPXIsYS5zdWJqZWN0RmFjdG9yeT1pLGEuX3N1YmplY3Q9bnVsbCxhLl9yZWZDb3VudD0wLGEuX2Nvbm5lY3Rpb249bnVsbCxlTyhyKSYmKGEubGlmdD1yLmxpZnQpLGF9cmV0dXJuIHQucHJvdG90eXBlLl9zdWJzY3JpYmU9ZnVuY3Rpb24ocil7cmV0dXJuIHRoaXMuZ2V0U3ViamVjdCgpLnN1YnNjcmliZShyKX0sdC5wcm90b3R5cGUuZ2V0U3ViamVjdD1mdW5jdGlvbigpe3ZhciByPXRoaXMuX3N1YmplY3Q7cmV0dXJuKCFyfHxyLmlzU3RvcHBlZCkmJih0aGlzLl9zdWJqZWN0PXRoaXMuc3ViamVjdEZhY3RvcnkoKSksdGhpcy5fc3ViamVjdH0sdC5wcm90b3R5cGUuX3RlYXJkb3duPWZ1bmN0aW9uKCl7dGhpcy5fcmVmQ291bnQ9MDt2YXIgcj10aGlzLl9jb25uZWN0aW9uO3RoaXMuX3N1YmplY3Q9dGhpcy5fY29ubmVjdGlvbj1udWxsLHI/LnVuc3Vic2NyaWJlKCl9LHQucHJvdG90eXBlLmNvbm5lY3Q9ZnVuY3Rpb24oKXt2YXIgcj10aGlzLGk9dGhpcy5fY29ubmVjdGlvbjtpZighaSl7aT10aGlzLl9jb25uZWN0aW9uPW5ldyBPMTt2YXIgYT10aGlzLmdldFN1YmplY3QoKTtpLmFkZCh0aGlzLnNvdXJjZS5zdWJzY3JpYmUoeHIoYSx2b2lkIDAsZnVuY3Rpb24oKXtyLl90ZWFyZG93bigpLGEuY29tcGxldGUoKX0sZnVuY3Rpb24obil7ci5fdGVhcmRvd24oKSxhLmVycm9yKG4pfSxmdW5jdGlvbigpe3JldHVybiByLl90ZWFyZG93bigpfSkpKSxpLmNsb3NlZCYmKHRoaXMuX2Nvbm5lY3Rpb249bnVsbCxpPU8xLkVNUFRZKX1yZXR1cm4gaX0sdC5wcm90b3R5cGUucmVmQ291bnQ9ZnVuY3Rpb24oKXtyZXR1cm4gTXYoKSh0aGlzKX0sdH0pKEh0KX0pO3ZhciB0TyxUdWU9cCgoKT0+e3RPPXtub3c6ZnVuY3Rpb24oKXtyZXR1cm4odE8uZGVsZWdhdGV8fHBlcmZvcm1hbmNlKS5ub3coKX0sZGVsZWdhdGU6dm9pZCAwfX0pO3ZhciBmbCxyTz1wKCgpPT57T3IoKTtXMigpO2ZsPXtzY2hlZHVsZTpmdW5jdGlvbihlKXt2YXIgdD1yZXF1ZXN0QW5pbWF0aW9uRnJhbWUscj1jYW5jZWxBbmltYXRpb25GcmFtZSxpPWZsLmRlbGVnYXRlO2kmJih0PWkucmVxdWVzdEFuaW1hdGlvbkZyYW1lLHI9aS5jYW5jZWxBbmltYXRpb25GcmFtZSk7dmFyIGE9dChmdW5jdGlvbihuKXtyPXZvaWQgMCxlKG4pfSk7cmV0dXJuIG5ldyBPMShmdW5jdGlvbigpe3JldHVybiByPy4oYSl9KX0scmVxdWVzdEFuaW1hdGlvbkZyYW1lOmZ1bmN0aW9uKCl7Zm9yKHZhciBlPVtdLHQ9MDt0PGFyZ3VtZW50cy5sZW5ndGg7dCsrKWVbdF09YXJndW1lbnRzW3RdO3ZhciByPWZsLmRlbGVnYXRlO3JldHVybihyPy5yZXF1ZXN0QW5pbWF0aW9uRnJhbWV8fHJlcXVlc3RBbmltYXRpb25GcmFtZSkuYXBwbHkodm9pZCAwLHFpKFtdLFgxKGUpKSl9LGNhbmNlbEFuaW1hdGlvbkZyYW1lOmZ1bmN0aW9uKCl7Zm9yKHZhciBlPVtdLHQ9MDt0PGFyZ3VtZW50cy5sZW5ndGg7dCsrKWVbdF09YXJndW1lbnRzW3RdO3ZhciByPWZsLmRlbGVnYXRlO3JldHVybihyPy5jYW5jZWxBbmltYXRpb25GcmFtZXx8Y2FuY2VsQW5pbWF0aW9uRnJhbWUpLmFwcGx5KHZvaWQgMCxxaShbXSxYMShlKSkpfSxkZWxlZ2F0ZTp2b2lkIDB9fSk7ZnVuY3Rpb24gUThyKGUpe3JldHVybiBlP191ZShlKTpKOHJ9ZnVuY3Rpb24gX3VlKGUpe3JldHVybiBuZXcgSHQoZnVuY3Rpb24odCl7dmFyIHI9ZXx8dE8saT1yLm5vdygpLGE9MCxuPWZ1bmN0aW9uKCl7dC5jbG9zZWR8fChhPWZsLnJlcXVlc3RBbmltYXRpb25GcmFtZShmdW5jdGlvbihvKXthPTA7dmFyIHM9ci5ub3coKTt0Lm5leHQoe3RpbWVzdGFtcDplP3M6byxlbGFwc2VkOnMtaX0pLG4oKX0pKX07cmV0dXJuIG4oKSxmdW5jdGlvbigpe2EmJmZsLmNhbmNlbEFuaW1hdGlvbkZyYW1lKGEpfX0pfXZhciBKOHIsTHVlPXAoKCk9PntobigpO1R1ZSgpO3JPKCk7SjhyPV91ZSgpfSk7dmFyIGlPLGFPPXAoKCk9PntIYygpO2lPPXBuKGZ1bmN0aW9uKGUpe3JldHVybiBmdW5jdGlvbigpe2UodGhpcyksdGhpcy5uYW1lPSJPYmplY3RVbnN1YnNjcmliZWRFcnJvciIsdGhpcy5tZXNzYWdlPSJvYmplY3QgdW5zdWJzY3JpYmVkIn19KX0pO3ZhciBmbixuTyxxaD1wKCgpPT57T3IoKTtobigpO1cyKCk7YU8oKTt1NSgpO3Z2KCk7Zm49KGZ1bmN0aW9uKGUpe0d0KHQsZSk7ZnVuY3Rpb24gdCgpe3ZhciByPWUuY2FsbCh0aGlzKXx8dGhpcztyZXR1cm4gci5jbG9zZWQ9ITEsci5jdXJyZW50T2JzZXJ2ZXJzPW51bGwsci5vYnNlcnZlcnM9W10sci5pc1N0b3BwZWQ9ITEsci5oYXNFcnJvcj0hMSxyLnRocm93bkVycm9yPW51bGwscn1yZXR1cm4gdC5wcm90b3R5cGUubGlmdD1mdW5jdGlvbihyKXt2YXIgaT1uZXcgbk8odGhpcyx0aGlzKTtyZXR1cm4gaS5vcGVyYXRvcj1yLGl9LHQucHJvdG90eXBlLl90aHJvd0lmQ2xvc2VkPWZ1bmN0aW9uKCl7aWYodGhpcy5jbG9zZWQpdGhyb3cgbmV3IGlPfSx0LnByb3RvdHlwZS5uZXh0PWZ1bmN0aW9uKHIpe3ZhciBpPXRoaXM7ZjUoZnVuY3Rpb24oKXt2YXIgYSxuO2lmKGkuX3Rocm93SWZDbG9zZWQoKSwhaS5pc1N0b3BwZWQpe2kuY3VycmVudE9ic2VydmVyc3x8KGkuY3VycmVudE9ic2VydmVycz1BcnJheS5mcm9tKGkub2JzZXJ2ZXJzKSk7dHJ5e2Zvcih2YXIgbz1sYShpLmN1cnJlbnRPYnNlcnZlcnMpLHM9by5uZXh0KCk7IXMuZG9uZTtzPW8ubmV4dCgpKXt2YXIgbD1zLnZhbHVlO2wubmV4dChyKX19Y2F0Y2goYyl7YT17ZXJyb3I6Y319ZmluYWxseXt0cnl7cyYmIXMuZG9uZSYmKG49by5yZXR1cm4pJiZuLmNhbGwobyl9ZmluYWxseXtpZihhKXRocm93IGEuZXJyb3J9fX19KX0sdC5wcm90b3R5cGUuZXJyb3I9ZnVuY3Rpb24ocil7dmFyIGk9dGhpcztmNShmdW5jdGlvbigpe2lmKGkuX3Rocm93SWZDbG9zZWQoKSwhaS5pc1N0b3BwZWQpe2kuaGFzRXJyb3I9aS5pc1N0b3BwZWQ9ITAsaS50aHJvd25FcnJvcj1yO2Zvcih2YXIgYT1pLm9ic2VydmVyczthLmxlbmd0aDspYS5zaGlmdCgpLmVycm9yKHIpfX0pfSx0LnByb3RvdHlwZS5jb21wbGV0ZT1mdW5jdGlvbigpe3ZhciByPXRoaXM7ZjUoZnVuY3Rpb24oKXtpZihyLl90aHJvd0lmQ2xvc2VkKCksIXIuaXNTdG9wcGVkKXtyLmlzU3RvcHBlZD0hMDtmb3IodmFyIGk9ci5vYnNlcnZlcnM7aS5sZW5ndGg7KWkuc2hpZnQoKS5jb21wbGV0ZSgpfX0pfSx0LnByb3RvdHlwZS51bnN1YnNjcmliZT1mdW5jdGlvbigpe3RoaXMuaXNTdG9wcGVkPXRoaXMuY2xvc2VkPSEwLHRoaXMub2JzZXJ2ZXJzPXRoaXMuY3VycmVudE9ic2VydmVycz1udWxsfSxPYmplY3QuZGVmaW5lUHJvcGVydHkodC5wcm90b3R5cGUsIm9ic2VydmVkIix7Z2V0OmZ1bmN0aW9uKCl7dmFyIHI7cmV0dXJuKChyPXRoaXMub2JzZXJ2ZXJzKT09PW51bGx8fHI9PT12b2lkIDA/dm9pZCAwOnIubGVuZ3RoKT4wfSxlbnVtZXJhYmxlOiExLGNvbmZpZ3VyYWJsZTohMH0pLHQucHJvdG90eXBlLl90cnlTdWJzY3JpYmU9ZnVuY3Rpb24ocil7cmV0dXJuIHRoaXMuX3Rocm93SWZDbG9zZWQoKSxlLnByb3RvdHlwZS5fdHJ5U3Vic2NyaWJlLmNhbGwodGhpcyxyKX0sdC5wcm90b3R5cGUuX3N1YnNjcmliZT1mdW5jdGlvbihyKXtyZXR1cm4gdGhpcy5fdGhyb3dJZkNsb3NlZCgpLHRoaXMuX2NoZWNrRmluYWxpemVkU3RhdHVzZXMociksdGhpcy5faW5uZXJTdWJzY3JpYmUocil9LHQucHJvdG90eXBlLl9pbm5lclN1YnNjcmliZT1mdW5jdGlvbihyKXt2YXIgaT10aGlzLGE9dGhpcyxuPWEuaGFzRXJyb3Isbz1hLmlzU3RvcHBlZCxzPWEub2JzZXJ2ZXJzO3JldHVybiBufHxvP1dGOih0aGlzLmN1cnJlbnRPYnNlcnZlcnM9bnVsbCxzLnB1c2gociksbmV3IE8xKGZ1bmN0aW9uKCl7aS5jdXJyZW50T2JzZXJ2ZXJzPW51bGwsSm8ocyxyKX0pKX0sdC5wcm90b3R5cGUuX2NoZWNrRmluYWxpemVkU3RhdHVzZXM9ZnVuY3Rpb24ocil7dmFyIGk9dGhpcyxhPWkuaGFzRXJyb3Isbj1pLnRocm93bkVycm9yLG89aS5pc1N0b3BwZWQ7YT9yLmVycm9yKG4pOm8mJnIuY29tcGxldGUoKX0sdC5wcm90b3R5cGUuYXNPYnNlcnZhYmxlPWZ1bmN0aW9uKCl7dmFyIHI9bmV3IEh0O3JldHVybiByLnNvdXJjZT10aGlzLHJ9LHQuY3JlYXRlPWZ1bmN0aW9uKHIsaSl7cmV0dXJuIG5ldyBuTyhyLGkpfSx0fSkoSHQpLG5PPShmdW5jdGlvbihlKXtHdCh0LGUpO2Z1bmN0aW9uIHQocixpKXt2YXIgYT1lLmNhbGwodGhpcyl8fHRoaXM7cmV0dXJuIGEuZGVzdGluYXRpb249cixhLnNvdXJjZT1pLGF9cmV0dXJuIHQucHJvdG90eXBlLm5leHQ9ZnVuY3Rpb24ocil7dmFyIGksYTsoYT0oaT10aGlzLmRlc3RpbmF0aW9uKT09PW51bGx8fGk9PT12b2lkIDA/dm9pZCAwOmkubmV4dCk9PT1udWxsfHxhPT09dm9pZCAwfHxhLmNhbGwoaSxyKX0sdC5wcm90b3R5cGUuZXJyb3I9ZnVuY3Rpb24ocil7dmFyIGksYTsoYT0oaT10aGlzLmRlc3RpbmF0aW9uKT09PW51bGx8fGk9PT12b2lkIDA/dm9pZCAwOmkuZXJyb3IpPT09bnVsbHx8YT09PXZvaWQgMHx8YS5jYWxsKGkscil9LHQucHJvdG90eXBlLmNvbXBsZXRlPWZ1bmN0aW9uKCl7dmFyIHIsaTsoaT0ocj10aGlzLmRlc3RpbmF0aW9uKT09PW51bGx8fHI9PT12b2lkIDA/dm9pZCAwOnIuY29tcGxldGUpPT09bnVsbHx8aT09PXZvaWQgMHx8aS5jYWxsKHIpfSx0LnByb3RvdHlwZS5fc3Vic2NyaWJlPWZ1bmN0aW9uKHIpe3ZhciBpLGE7cmV0dXJuKGE9KGk9dGhpcy5zb3VyY2UpPT09bnVsbHx8aT09PXZvaWQgMD92b2lkIDA6aS5zdWJzY3JpYmUocikpIT09bnVsbCYmYSE9PXZvaWQgMD9hOldGfSx0fSkoZm4pfSk7dmFyIEF1ZSxEdWU9cCgoKT0+e09yKCk7cWgoKTtBdWU9KGZ1bmN0aW9uKGUpe0d0KHQsZSk7ZnVuY3Rpb24gdChyKXt2YXIgaT1lLmNhbGwodGhpcyl8fHRoaXM7cmV0dXJuIGkuX3ZhbHVlPXIsaX1yZXR1cm4gT2JqZWN0LmRlZmluZVByb3BlcnR5KHQucHJvdG90eXBlLCJ2YWx1ZSIse2dldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLmdldFZhbHVlKCl9LGVudW1lcmFibGU6ITEsY29uZmlndXJhYmxlOiEwfSksdC5wcm90b3R5cGUuX3N1YnNjcmliZT1mdW5jdGlvbihyKXt2YXIgaT1lLnByb3RvdHlwZS5fc3Vic2NyaWJlLmNhbGwodGhpcyxyKTtyZXR1cm4haS5jbG9zZWQmJnIubmV4dCh0aGlzLl92YWx1ZSksaX0sdC5wcm90b3R5cGUuZ2V0VmFsdWU9ZnVuY3Rpb24oKXt2YXIgcj10aGlzLGk9ci5oYXNFcnJvcixhPXIudGhyb3duRXJyb3Isbj1yLl92YWx1ZTtpZihpKXRocm93IGE7cmV0dXJuIHRoaXMuX3Rocm93SWZDbG9zZWQoKSxufSx0LnByb3RvdHlwZS5uZXh0PWZ1bmN0aW9uKHIpe2UucHJvdG90eXBlLm5leHQuY2FsbCh0aGlzLHRoaXMuX3ZhbHVlPXIpfSx0fSkoZm4pfSk7dmFyIGpoLG9PPXAoKCk9PntqaD17bm93OmZ1bmN0aW9uKCl7cmV0dXJuKGpoLmRlbGVnYXRlfHxEYXRlKS5ub3coKX0sZGVsZWdhdGU6dm9pZCAwfX0pO3ZhciBTdixFdWU9cCgoKT0+e09yKCk7cWgoKTtvTygpO1N2PShmdW5jdGlvbihlKXtHdCh0LGUpO2Z1bmN0aW9uIHQocixpLGEpe3I9PT12b2lkIDAmJihyPTEvMCksaT09PXZvaWQgMCYmKGk9MS8wKSxhPT09dm9pZCAwJiYoYT1qaCk7dmFyIG49ZS5jYWxsKHRoaXMpfHx0aGlzO3JldHVybiBuLl9idWZmZXJTaXplPXIsbi5fd2luZG93VGltZT1pLG4uX3RpbWVzdGFtcFByb3ZpZGVyPWEsbi5fYnVmZmVyPVtdLG4uX2luZmluaXRlVGltZVdpbmRvdz0hMCxuLl9pbmZpbml0ZVRpbWVXaW5kb3c9aT09PTEvMCxuLl9idWZmZXJTaXplPU1hdGgubWF4KDEsciksbi5fd2luZG93VGltZT1NYXRoLm1heCgxLGkpLG59cmV0dXJuIHQucHJvdG90eXBlLm5leHQ9ZnVuY3Rpb24ocil7dmFyIGk9dGhpcyxhPWkuaXNTdG9wcGVkLG49aS5fYnVmZmVyLG89aS5faW5maW5pdGVUaW1lV2luZG93LHM9aS5fdGltZXN0YW1wUHJvdmlkZXIsbD1pLl93aW5kb3dUaW1lO2F8fChuLnB1c2gociksIW8mJm4ucHVzaChzLm5vdygpK2wpKSx0aGlzLl90cmltQnVmZmVyKCksZS5wcm90b3R5cGUubmV4dC5jYWxsKHRoaXMscil9LHQucHJvdG90eXBlLl9zdWJzY3JpYmU9ZnVuY3Rpb24ocil7dGhpcy5fdGhyb3dJZkNsb3NlZCgpLHRoaXMuX3RyaW1CdWZmZXIoKTtmb3IodmFyIGk9dGhpcy5faW5uZXJTdWJzY3JpYmUociksYT10aGlzLG49YS5faW5maW5pdGVUaW1lV2luZG93LG89YS5fYnVmZmVyLHM9by5zbGljZSgpLGw9MDtsPHMubGVuZ3RoJiYhci5jbG9zZWQ7bCs9bj8xOjIpci5uZXh0KHNbbF0pO3JldHVybiB0aGlzLl9jaGVja0ZpbmFsaXplZFN0YXR1c2VzKHIpLGl9LHQucHJvdG90eXBlLl90cmltQnVmZmVyPWZ1bmN0aW9uKCl7dmFyIHI9dGhpcyxpPXIuX2J1ZmZlclNpemUsYT1yLl90aW1lc3RhbXBQcm92aWRlcixuPXIuX2J1ZmZlcixvPXIuX2luZmluaXRlVGltZVdpbmRvdyxzPShvPzE6MikqaTtpZihpPDEvMCYmczxuLmxlbmd0aCYmbi5zcGxpY2UoMCxuLmxlbmd0aC1zKSwhbyl7Zm9yKHZhciBsPWEubm93KCksYz0wLHU9MTt1PG4ubGVuZ3RoJiZuW3VdPD1sO3UrPTIpYz11O2MmJm4uc3BsaWNlKDAsYysxKX19LHR9KShmbil9KTt2YXIgJHVlLEl1ZT1wKCgpPT57T3IoKTtxaCgpOyR1ZT0oZnVuY3Rpb24oZSl7R3QodCxlKTtmdW5jdGlvbiB0KCl7dmFyIHI9ZSE9PW51bGwmJmUuYXBwbHkodGhpcyxhcmd1bWVudHMpfHx0aGlzO3JldHVybiByLl92YWx1ZT1udWxsLHIuX2hhc1ZhbHVlPSExLHIuX2lzQ29tcGxldGU9ITEscn1yZXR1cm4gdC5wcm90b3R5cGUuX2NoZWNrRmluYWxpemVkU3RhdHVzZXM9ZnVuY3Rpb24ocil7dmFyIGk9dGhpcyxhPWkuaGFzRXJyb3Isbj1pLl9oYXNWYWx1ZSxvPWkuX3ZhbHVlLHM9aS50aHJvd25FcnJvcixsPWkuaXNTdG9wcGVkLGM9aS5faXNDb21wbGV0ZTthP3IuZXJyb3Iocyk6KGx8fGMpJiYobiYmci5uZXh0KG8pLHIuY29tcGxldGUoKSl9LHQucHJvdG90eXBlLm5leHQ9ZnVuY3Rpb24ocil7dGhpcy5pc1N0b3BwZWR8fCh0aGlzLl92YWx1ZT1yLHRoaXMuX2hhc1ZhbHVlPSEwKX0sdC5wcm90b3R5cGUuY29tcGxldGU9ZnVuY3Rpb24oKXt2YXIgcj10aGlzLGk9ci5faGFzVmFsdWUsYT1yLl92YWx1ZSxuPXIuX2lzQ29tcGxldGU7bnx8KHRoaXMuX2lzQ29tcGxldGU9ITAsaSYmZS5wcm90b3R5cGUubmV4dC5jYWxsKHRoaXMsYSksZS5wcm90b3R5cGUuY29tcGxldGUuY2FsbCh0aGlzKSl9LHR9KShmbil9KTt2YXIgc08sUHVlPXAoKCk9PntPcigpO1cyKCk7c089KGZ1bmN0aW9uKGUpe0d0KHQsZSk7ZnVuY3Rpb24gdChyLGkpe3JldHVybiBlLmNhbGwodGhpcyl8fHRoaXN9cmV0dXJuIHQucHJvdG90eXBlLnNjaGVkdWxlPWZ1bmN0aW9uKHIsaSl7cmV0dXJuIGk9PT12b2lkIDAmJihpPTApLHRoaXN9LHR9KShPMSl9KTt2YXIgVmgsTnVlPXAoKCk9PntPcigpO1ZoPXtzZXRJbnRlcnZhbDpmdW5jdGlvbihlLHQpe2Zvcih2YXIgcj1bXSxpPTI7aTxhcmd1bWVudHMubGVuZ3RoO2krKylyW2ktMl09YXJndW1lbnRzW2ldO3ZhciBhPVZoLmRlbGVnYXRlO3JldHVybiBhPy5zZXRJbnRlcnZhbD9hLnNldEludGVydmFsLmFwcGx5KGEscWkoW2UsdF0sWDEocikpKTpzZXRJbnRlcnZhbC5hcHBseSh2b2lkIDAscWkoW2UsdF0sWDEocikpKX0sY2xlYXJJbnRlcnZhbDpmdW5jdGlvbihlKXt2YXIgdD1WaC5kZWxlZ2F0ZTtyZXR1cm4odD8uY2xlYXJJbnRlcnZhbHx8Y2xlYXJJbnRlcnZhbCkoZSl9LGRlbGVnYXRlOnZvaWQgMH19KTt2YXIgS28sbTU9cCgoKT0+e09yKCk7UHVlKCk7TnVlKCk7dTUoKTtLbz0oZnVuY3Rpb24oZSl7R3QodCxlKTtmdW5jdGlvbiB0KHIsaSl7dmFyIGE9ZS5jYWxsKHRoaXMscixpKXx8dGhpcztyZXR1cm4gYS5zY2hlZHVsZXI9cixhLndvcms9aSxhLnBlbmRpbmc9ITEsYX1yZXR1cm4gdC5wcm90b3R5cGUuc2NoZWR1bGU9ZnVuY3Rpb24ocixpKXt2YXIgYTtpZihpPT09dm9pZCAwJiYoaT0wKSx0aGlzLmNsb3NlZClyZXR1cm4gdGhpczt0aGlzLnN0YXRlPXI7dmFyIG49dGhpcy5pZCxvPXRoaXMuc2NoZWR1bGVyO3JldHVybiBuIT1udWxsJiYodGhpcy5pZD10aGlzLnJlY3ljbGVBc3luY0lkKG8sbixpKSksdGhpcy5wZW5kaW5nPSEwLHRoaXMuZGVsYXk9aSx0aGlzLmlkPShhPXRoaXMuaWQpIT09bnVsbCYmYSE9PXZvaWQgMD9hOnRoaXMucmVxdWVzdEFzeW5jSWQobyx0aGlzLmlkLGkpLHRoaXN9LHQucHJvdG90eXBlLnJlcXVlc3RBc3luY0lkPWZ1bmN0aW9uKHIsaSxhKXtyZXR1cm4gYT09PXZvaWQgMCYmKGE9MCksVmguc2V0SW50ZXJ2YWwoci5mbHVzaC5iaW5kKHIsdGhpcyksYSl9LHQucHJvdG90eXBlLnJlY3ljbGVBc3luY0lkPWZ1bmN0aW9uKHIsaSxhKXtpZihhPT09dm9pZCAwJiYoYT0wKSxhIT1udWxsJiZ0aGlzLmRlbGF5PT09YSYmdGhpcy5wZW5kaW5nPT09ITEpcmV0dXJuIGk7aSE9bnVsbCYmVmguY2xlYXJJbnRlcnZhbChpKX0sdC5wcm90b3R5cGUuZXhlY3V0ZT1mdW5jdGlvbihyLGkpe2lmKHRoaXMuY2xvc2VkKXJldHVybiBuZXcgRXJyb3IoImV4ZWN1dGluZyBhIGNhbmNlbGxlZCBhY3Rpb24iKTt0aGlzLnBlbmRpbmc9ITE7dmFyIGE9dGhpcy5fZXhlY3V0ZShyLGkpO2lmKGEpcmV0dXJuIGE7dGhpcy5wZW5kaW5nPT09ITEmJnRoaXMuaWQhPW51bGwmJih0aGlzLmlkPXRoaXMucmVjeWNsZUFzeW5jSWQodGhpcy5zY2hlZHVsZXIsdGhpcy5pZCxudWxsKSl9LHQucHJvdG90eXBlLl9leGVjdXRlPWZ1bmN0aW9uKHIsaSl7dmFyIGE9ITEsbjt0cnl7dGhpcy53b3JrKHIpfWNhdGNoKG8pe2E9ITAsbj1vfHxuZXcgRXJyb3IoIlNjaGVkdWxlZCBhY3Rpb24gdGhyZXcgZmFsc3kgZXJyb3IiKX1pZihhKXJldHVybiB0aGlzLnVuc3Vic2NyaWJlKCksbn0sdC5wcm90b3R5cGUudW5zdWJzY3JpYmU9ZnVuY3Rpb24oKXtpZighdGhpcy5jbG9zZWQpe3ZhciByPXRoaXMsaT1yLmlkLGE9ci5zY2hlZHVsZXIsbj1hLmFjdGlvbnM7dGhpcy53b3JrPXRoaXMuc3RhdGU9dGhpcy5zY2hlZHVsZXI9bnVsbCx0aGlzLnBlbmRpbmc9ITEsSm8obix0aGlzKSxpIT1udWxsJiYodGhpcy5pZD10aGlzLnJlY3ljbGVBc3luY0lkKGEsaSxudWxsKSksdGhpcy5kZWxheT1udWxsLGUucHJvdG90eXBlLnVuc3Vic2NyaWJlLmNhbGwodGhpcyl9fSx0fSkoc08pfSk7ZnVuY3Rpb24gRnVlKGUpe3JldHVybiBlIGluIHp2PyhkZWxldGUgenZbZV0sITApOiExfXZhciBLOHIsbE8senYsY08saEtyLE91ZT1wKCgpPT57SzhyPTEsenY9e307Y089e3NldEltbWVkaWF0ZTpmdW5jdGlvbihlKXt2YXIgdD1LOHIrKztyZXR1cm4genZbdF09ITAsbE98fChsTz1Qcm9taXNlLnJlc29sdmUoKSksbE8udGhlbihmdW5jdGlvbigpe3JldHVybiBGdWUodCkmJmUoKX0pLHR9LGNsZWFySW1tZWRpYXRlOmZ1bmN0aW9uKGUpe0Z1ZShlKX19LGhLcj17cGVuZGluZzpmdW5jdGlvbigpe3JldHVybiBPYmplY3Qua2V5cyh6dikubGVuZ3RofX19KTt2YXIgZXByLHRwcixVaCxSdWU9cCgoKT0+e09yKCk7T3VlKCk7ZXByPWNPLnNldEltbWVkaWF0ZSx0cHI9Y08uY2xlYXJJbW1lZGlhdGUsVWg9e3NldEltbWVkaWF0ZTpmdW5jdGlvbigpe2Zvcih2YXIgZT1bXSx0PTA7dDxhcmd1bWVudHMubGVuZ3RoO3QrKyllW3RdPWFyZ3VtZW50c1t0XTt2YXIgcj1VaC5kZWxlZ2F0ZTtyZXR1cm4ocj8uc2V0SW1tZWRpYXRlfHxlcHIpLmFwcGx5KHZvaWQgMCxxaShbXSxYMShlKSkpfSxjbGVhckltbWVkaWF0ZTpmdW5jdGlvbihlKXt2YXIgdD1VaC5kZWxlZ2F0ZTtyZXR1cm4odD8uY2xlYXJJbW1lZGlhdGV8fHRwcikoZSl9LGRlbGVnYXRlOnZvaWQgMH19KTt2YXIgZE8sQnVlPXAoKCk9PntPcigpO201KCk7UnVlKCk7ZE89KGZ1bmN0aW9uKGUpe0d0KHQsZSk7ZnVuY3Rpb24gdChyLGkpe3ZhciBhPWUuY2FsbCh0aGlzLHIsaSl8fHRoaXM7cmV0dXJuIGEuc2NoZWR1bGVyPXIsYS53b3JrPWksYX1yZXR1cm4gdC5wcm90b3R5cGUucmVxdWVzdEFzeW5jSWQ9ZnVuY3Rpb24ocixpLGEpe3JldHVybiBhPT09dm9pZCAwJiYoYT0wKSxhIT09bnVsbCYmYT4wP2UucHJvdG90eXBlLnJlcXVlc3RBc3luY0lkLmNhbGwodGhpcyxyLGksYSk6KHIuYWN0aW9ucy5wdXNoKHRoaXMpLHIuX3NjaGVkdWxlZHx8KHIuX3NjaGVkdWxlZD1VaC5zZXRJbW1lZGlhdGUoci5mbHVzaC5iaW5kKHIsdm9pZCAwKSkpKX0sdC5wcm90b3R5cGUucmVjeWNsZUFzeW5jSWQ9ZnVuY3Rpb24ocixpLGEpe3ZhciBuO2lmKGE9PT12b2lkIDAmJihhPTApLGEhPW51bGw/YT4wOnRoaXMuZGVsYXk+MClyZXR1cm4gZS5wcm90b3R5cGUucmVjeWNsZUFzeW5jSWQuY2FsbCh0aGlzLHIsaSxhKTt2YXIgbz1yLmFjdGlvbnM7aSE9bnVsbCYmKChuPW9bby5sZW5ndGgtMV0pPT09bnVsbHx8bj09PXZvaWQgMD92b2lkIDA6bi5pZCkhPT1pJiYoVWguY2xlYXJJbW1lZGlhdGUoaSksci5fc2NoZWR1bGVkPT09aSYmKHIuX3NjaGVkdWxlZD12b2lkIDApKX0sdH0pKEtvKX0pO3ZhciBXaCx1Tz1wKCgpPT57b08oKTtXaD0oZnVuY3Rpb24oKXtmdW5jdGlvbiBlKHQscil7cj09PXZvaWQgMCYmKHI9ZS5ub3cpLHRoaXMuc2NoZWR1bGVyQWN0aW9uQ3Rvcj10LHRoaXMubm93PXJ9cmV0dXJuIGUucHJvdG90eXBlLnNjaGVkdWxlPWZ1bmN0aW9uKHQscixpKXtyZXR1cm4gcj09PXZvaWQgMCYmKHI9MCksbmV3IHRoaXMuc2NoZWR1bGVyQWN0aW9uQ3Rvcih0aGlzLHQpLnNjaGVkdWxlKGkscil9LGUubm93PWpoLm5vdyxlfSkoKX0pO3ZhciBlMixnNT1wKCgpPT57T3IoKTt1TygpO2UyPShmdW5jdGlvbihlKXtHdCh0LGUpO2Z1bmN0aW9uIHQocixpKXtpPT09dm9pZCAwJiYoaT1XaC5ub3cpO3ZhciBhPWUuY2FsbCh0aGlzLHIsaSl8fHRoaXM7cmV0dXJuIGEuYWN0aW9ucz1bXSxhLl9hY3RpdmU9ITEsYX1yZXR1cm4gdC5wcm90b3R5cGUuZmx1c2g9ZnVuY3Rpb24ocil7dmFyIGk9dGhpcy5hY3Rpb25zO2lmKHRoaXMuX2FjdGl2ZSl7aS5wdXNoKHIpO3JldHVybn12YXIgYTt0aGlzLl9hY3RpdmU9ITA7ZG8gaWYoYT1yLmV4ZWN1dGUoci5zdGF0ZSxyLmRlbGF5KSlicmVhazt3aGlsZShyPWkuc2hpZnQoKSk7aWYodGhpcy5fYWN0aXZlPSExLGEpe2Zvcig7cj1pLnNoaWZ0KCk7KXIudW5zdWJzY3JpYmUoKTt0aHJvdyBhfX0sdH0pKFdoKX0pO3ZhciBwTyxIdWU9cCgoKT0+e09yKCk7ZzUoKTtwTz0oZnVuY3Rpb24oZSl7R3QodCxlKTtmdW5jdGlvbiB0KCl7cmV0dXJuIGUhPT1udWxsJiZlLmFwcGx5KHRoaXMsYXJndW1lbnRzKXx8dGhpc31yZXR1cm4gdC5wcm90b3R5cGUuZmx1c2g9ZnVuY3Rpb24ocil7dGhpcy5fYWN0aXZlPSEwO3ZhciBpPXRoaXMuX3NjaGVkdWxlZDt0aGlzLl9zY2hlZHVsZWQ9dm9pZCAwO3ZhciBhPXRoaXMuYWN0aW9ucyxuO3I9cnx8YS5zaGlmdCgpO2RvIGlmKG49ci5leGVjdXRlKHIuc3RhdGUsci5kZWxheSkpYnJlYWs7d2hpbGUoKHI9YVswXSkmJnIuaWQ9PT1pJiZhLnNoaWZ0KCkpO2lmKHRoaXMuX2FjdGl2ZT0hMSxuKXtmb3IoOyhyPWFbMF0pJiZyLmlkPT09aSYmYS5zaGlmdCgpOylyLnVuc3Vic2NyaWJlKCk7dGhyb3cgbn19LHR9KShlMil9KTt2YXIgcXVlLHJwcixqdWU9cCgoKT0+e0J1ZSgpO0h1ZSgpO3F1ZT1uZXcgcE8oZE8pLHJwcj1xdWV9KTt2YXIgRzIsaE8sbDM9cCgoKT0+e201KCk7ZzUoKTtHMj1uZXcgZTIoS28pLGhPPUcyfSk7dmFyIGZPLFZ1ZT1wKCgpPT57T3IoKTttNSgpO2ZPPShmdW5jdGlvbihlKXtHdCh0LGUpO2Z1bmN0aW9uIHQocixpKXt2YXIgYT1lLmNhbGwodGhpcyxyLGkpfHx0aGlzO3JldHVybiBhLnNjaGVkdWxlcj1yLGEud29yaz1pLGF9cmV0dXJuIHQucHJvdG90eXBlLnNjaGVkdWxlPWZ1bmN0aW9uKHIsaSl7cmV0dXJuIGk9PT12b2lkIDAmJihpPTApLGk+MD9lLnByb3RvdHlwZS5zY2hlZHVsZS5jYWxsKHRoaXMscixpKToodGhpcy5kZWxheT1pLHRoaXMuc3RhdGU9cix0aGlzLnNjaGVkdWxlci5mbHVzaCh0aGlzKSx0aGlzKX0sdC5wcm90b3R5cGUuZXhlY3V0ZT1mdW5jdGlvbihyLGkpe3JldHVybiBpPjB8fHRoaXMuY2xvc2VkP2UucHJvdG90eXBlLmV4ZWN1dGUuY2FsbCh0aGlzLHIsaSk6dGhpcy5fZXhlY3V0ZShyLGkpfSx0LnByb3RvdHlwZS5yZXF1ZXN0QXN5bmNJZD1mdW5jdGlvbihyLGksYSl7cmV0dXJuIGE9PT12b2lkIDAmJihhPTApLGEhPW51bGwmJmE+MHx8YT09bnVsbCYmdGhpcy5kZWxheT4wP2UucHJvdG90eXBlLnJlcXVlc3RBc3luY0lkLmNhbGwodGhpcyxyLGksYSk6KHIuZmx1c2godGhpcyksMCl9LHR9KShLbyl9KTt2YXIgbU8sVXVlPXAoKCk9PntPcigpO2c1KCk7bU89KGZ1bmN0aW9uKGUpe0d0KHQsZSk7ZnVuY3Rpb24gdCgpe3JldHVybiBlIT09bnVsbCYmZS5hcHBseSh0aGlzLGFyZ3VtZW50cyl8fHRoaXN9cmV0dXJuIHR9KShlMil9KTt2YXIgV3VlLGlwcixHdWU9cCgoKT0+e1Z1ZSgpO1V1ZSgpO1d1ZT1uZXcgbU8oZk8pLGlwcj1XdWV9KTt2YXIgZ08sWXVlPXAoKCk9PntPcigpO201KCk7ck8oKTtnTz0oZnVuY3Rpb24oZSl7R3QodCxlKTtmdW5jdGlvbiB0KHIsaSl7dmFyIGE9ZS5jYWxsKHRoaXMscixpKXx8dGhpcztyZXR1cm4gYS5zY2hlZHVsZXI9cixhLndvcms9aSxhfXJldHVybiB0LnByb3RvdHlwZS5yZXF1ZXN0QXN5bmNJZD1mdW5jdGlvbihyLGksYSl7cmV0dXJuIGE9PT12b2lkIDAmJihhPTApLGEhPT1udWxsJiZhPjA/ZS5wcm90b3R5cGUucmVxdWVzdEFzeW5jSWQuY2FsbCh0aGlzLHIsaSxhKTooci5hY3Rpb25zLnB1c2godGhpcyksci5fc2NoZWR1bGVkfHwoci5fc2NoZWR1bGVkPWZsLnJlcXVlc3RBbmltYXRpb25GcmFtZShmdW5jdGlvbigpe3JldHVybiByLmZsdXNoKHZvaWQgMCl9KSkpfSx0LnByb3RvdHlwZS5yZWN5Y2xlQXN5bmNJZD1mdW5jdGlvbihyLGksYSl7dmFyIG47aWYoYT09PXZvaWQgMCYmKGE9MCksYSE9bnVsbD9hPjA6dGhpcy5kZWxheT4wKXJldHVybiBlLnByb3RvdHlwZS5yZWN5Y2xlQXN5bmNJZC5jYWxsKHRoaXMscixpLGEpO3ZhciBvPXIuYWN0aW9ucztpIT1udWxsJiZpPT09ci5fc2NoZWR1bGVkJiYoKG49b1tvLmxlbmd0aC0xXSk9PT1udWxsfHxuPT09dm9pZCAwP3ZvaWQgMDpuLmlkKSE9PWkmJihmbC5jYW5jZWxBbmltYXRpb25GcmFtZShpKSxyLl9zY2hlZHVsZWQ9dm9pZCAwKX0sdH0pKEtvKX0pO3ZhciBiTyxadWU9cCgoKT0+e09yKCk7ZzUoKTtiTz0oZnVuY3Rpb24oZSl7R3QodCxlKTtmdW5jdGlvbiB0KCl7cmV0dXJuIGUhPT1udWxsJiZlLmFwcGx5KHRoaXMsYXJndW1lbnRzKXx8dGhpc31yZXR1cm4gdC5wcm90b3R5cGUuZmx1c2g9ZnVuY3Rpb24ocil7dGhpcy5fYWN0aXZlPSEwO3ZhciBpO3I/aT1yLmlkOihpPXRoaXMuX3NjaGVkdWxlZCx0aGlzLl9zY2hlZHVsZWQ9dm9pZCAwKTt2YXIgYT10aGlzLmFjdGlvbnMsbjtyPXJ8fGEuc2hpZnQoKTtkbyBpZihuPXIuZXhlY3V0ZShyLnN0YXRlLHIuZGVsYXkpKWJyZWFrO3doaWxlKChyPWFbMF0pJiZyLmlkPT09aSYmYS5zaGlmdCgpKTtpZih0aGlzLl9hY3RpdmU9ITEsbil7Zm9yKDsocj1hWzBdKSYmci5pZD09PWkmJmEuc2hpZnQoKTspci51bnN1YnNjcmliZSgpO3Rocm93IG59fSx0fSkoZTIpfSk7dmFyIFh1ZSxhcHIsUXVlPXAoKCk9PntZdWUoKTtadWUoKTtYdWU9bmV3IGJPKGdPKSxhcHI9WHVlfSk7dmFyIEp1ZSx2TyxLdWU9cCgoKT0+e09yKCk7bTUoKTtXMigpO2c1KCk7SnVlPShmdW5jdGlvbihlKXtHdCh0LGUpO2Z1bmN0aW9uIHQocixpKXtyPT09dm9pZCAwJiYocj12TyksaT09PXZvaWQgMCYmKGk9MS8wKTt2YXIgYT1lLmNhbGwodGhpcyxyLGZ1bmN0aW9uKCl7cmV0dXJuIGEuZnJhbWV9KXx8dGhpcztyZXR1cm4gYS5tYXhGcmFtZXM9aSxhLmZyYW1lPTAsYS5pbmRleD0tMSxhfXJldHVybiB0LnByb3RvdHlwZS5mbHVzaD1mdW5jdGlvbigpe2Zvcih2YXIgcj10aGlzLGk9ci5hY3Rpb25zLGE9ci5tYXhGcmFtZXMsbixvOyhvPWlbMF0pJiZvLmRlbGF5PD1hJiYoaS5zaGlmdCgpLHRoaXMuZnJhbWU9by5kZWxheSwhKG49by5leGVjdXRlKG8uc3RhdGUsby5kZWxheSkpKTspO2lmKG4pe2Zvcig7bz1pLnNoaWZ0KCk7KW8udW5zdWJzY3JpYmUoKTt0aHJvdyBufX0sdC5mcmFtZVRpbWVGYWN0b3I9MTAsdH0pKGUyKSx2Tz0oZnVuY3Rpb24oZSl7R3QodCxlKTtmdW5jdGlvbiB0KHIsaSxhKXthPT09dm9pZCAwJiYoYT1yLmluZGV4Kz0xKTt2YXIgbj1lLmNhbGwodGhpcyxyLGkpfHx0aGlzO3JldHVybiBuLnNjaGVkdWxlcj1yLG4ud29yaz1pLG4uaW5kZXg9YSxuLmFjdGl2ZT0hMCxuLmluZGV4PXIuaW5kZXg9YSxufXJldHVybiB0LnByb3RvdHlwZS5zY2hlZHVsZT1mdW5jdGlvbihyLGkpe2lmKGk9PT12b2lkIDAmJihpPTApLE51bWJlci5pc0Zpbml0ZShpKSl7aWYoIXRoaXMuaWQpcmV0dXJuIGUucHJvdG90eXBlLnNjaGVkdWxlLmNhbGwodGhpcyxyLGkpO3RoaXMuYWN0aXZlPSExO3ZhciBhPW5ldyB0KHRoaXMuc2NoZWR1bGVyLHRoaXMud29yayk7cmV0dXJuIHRoaXMuYWRkKGEpLGEuc2NoZWR1bGUocixpKX1lbHNlIHJldHVybiBPMS5FTVBUWX0sdC5wcm90b3R5cGUucmVxdWVzdEFzeW5jSWQ9ZnVuY3Rpb24ocixpLGEpe2E9PT12b2lkIDAmJihhPTApLHRoaXMuZGVsYXk9ci5mcmFtZSthO3ZhciBuPXIuYWN0aW9ucztyZXR1cm4gbi5wdXNoKHRoaXMpLG4uc29ydCh0LnNvcnRBY3Rpb25zKSwxfSx0LnByb3RvdHlwZS5yZWN5Y2xlQXN5bmNJZD1mdW5jdGlvbihyLGksYSl7YT09PXZvaWQgMCYmKGE9MCl9LHQucHJvdG90eXBlLl9leGVjdXRlPWZ1bmN0aW9uKHIsaSl7aWYodGhpcy5hY3RpdmU9PT0hMClyZXR1cm4gZS5wcm90b3R5cGUuX2V4ZWN1dGUuY2FsbCh0aGlzLHIsaSl9LHQuc29ydEFjdGlvbnM9ZnVuY3Rpb24ocixpKXtyZXR1cm4gci5kZWxheT09PWkuZGVsYXk/ci5pbmRleD09PWkuaW5kZXg/MDpyLmluZGV4PmkuaW5kZXg/MTotMTpyLmRlbGF5PmkuZGVsYXk/MTotMX0sdH0pKEtvKX0pO2Z1bmN0aW9uIG5wcihlKXtyZXR1cm4gZT9vcHIoZSk6Q3Z9ZnVuY3Rpb24gb3ByKGUpe3JldHVybiBuZXcgSHQoZnVuY3Rpb24odCl7cmV0dXJuIGUuc2NoZWR1bGUoZnVuY3Rpb24oKXtyZXR1cm4gdC5jb21wbGV0ZSgpfSl9KX12YXIgQ3YsVHY9cCgoKT0+e2huKCk7Q3Y9bmV3IEh0KGZ1bmN0aW9uKGUpe3JldHVybiBlLmNvbXBsZXRlKCl9KX0pO2Z1bmN0aW9uIF92KGUpe3JldHVybiBlJiZUdChlLnNjaGVkdWxlKX12YXIgeE89cCgoKT0+e0NpKCl9KTtmdW5jdGlvbiB5TyhlKXtyZXR1cm4gZVtlLmxlbmd0aC0xXX1mdW5jdGlvbiBwZTEoZSl7cmV0dXJuIFR0KHlPKGUpKT9lLnBvcCgpOnZvaWQgMH1mdW5jdGlvbiBxYyhlKXtyZXR1cm4gX3YoeU8oZSkpP2UucG9wKCk6dm9pZCAwfWZ1bmN0aW9uIGhlMShlLHQpe3JldHVybiB0eXBlb2YgeU8oZSk9PSJudW1iZXIiP2UucG9wKCk6dH12YXIgR2g9cCgoKT0+e0NpKCk7eE8oKX0pO3ZhciBiNSxMdj1wKCgpPT57YjU9KGZ1bmN0aW9uKGUpe3JldHVybiBlJiZ0eXBlb2YgZS5sZW5ndGg9PSJudW1iZXIiJiZ0eXBlb2YgZSE9ImZ1bmN0aW9uIn0pfSk7ZnVuY3Rpb24gQXYoZSl7cmV0dXJuIFR0KGU/LnRoZW4pfXZhciB3Tz1wKCgpPT57Q2koKX0pO2Z1bmN0aW9uIER2KGUpe3JldHVybiBUdChlW3MzXSl9dmFyIE1PPXAoKCk9PntCaCgpO0NpKCl9KTtmdW5jdGlvbiBFdihlKXtyZXR1cm4gU3ltYm9sLmFzeW5jSXRlcmF0b3ImJlR0KGU/LltTeW1ib2wuYXN5bmNJdGVyYXRvcl0pfXZhciBrTz1wKCgpPT57Q2koKX0pO2Z1bmN0aW9uICR2KGUpe3JldHVybiBuZXcgVHlwZUVycm9yKCJZb3UgcHJvdmlkZWQgIisoZSE9PW51bGwmJnR5cGVvZiBlPT0ib2JqZWN0Ij8iYW4gaW52YWxpZCBvYmplY3QiOiInIitlKyInIikrIiB3aGVyZSBhIHN0cmVhbSB3YXMgZXhwZWN0ZWQuIFlvdSBjYW4gcHJvdmlkZSBhbiBPYnNlcnZhYmxlLCBQcm9taXNlLCBSZWFkYWJsZVN0cmVhbSwgQXJyYXksIEFzeW5jSXRlcmFibGUsIG9yIEl0ZXJhYmxlLiIpfXZhciBTTz1wKCgpPT57fSk7ZnVuY3Rpb24gc3ByKCl7cmV0dXJuIHR5cGVvZiBTeW1ib2whPSJmdW5jdGlvbiJ8fCFTeW1ib2wuaXRlcmF0b3I/IkBAaXRlcmF0b3IiOlN5bWJvbC5pdGVyYXRvcn12YXIgSXYsek89cCgoKT0+e0l2PXNwcigpfSk7ZnVuY3Rpb24gUHYoZSl7cmV0dXJuIFR0KGU/LltJdl0pfXZhciBDTz1wKCgpPT57ek8oKTtDaSgpfSk7ZnVuY3Rpb24gTnYoZSl7cmV0dXJuIGpGKHRoaXMsYXJndW1lbnRzLGZ1bmN0aW9uKCl7dmFyIHIsaSxhLG47cmV0dXJuIEZoKHRoaXMsZnVuY3Rpb24obyl7c3dpdGNoKG8ubGFiZWwpe2Nhc2UgMDpyPWUuZ2V0UmVhZGVyKCksby5sYWJlbD0xO2Nhc2UgMTpvLnRyeXMucHVzaChbMSwsOSwxMF0pLG8ubGFiZWw9MjtjYXNlIDI6cmV0dXJuWzQsaGwoci5yZWFkKCkpXTtjYXNlIDM6cmV0dXJuIGk9by5zZW50KCksYT1pLnZhbHVlLG49aS5kb25lLG4/WzQsaGwodm9pZCAwKV06WzMsNV07Y2FzZSA0OnJldHVyblsyLG8uc2VudCgpXTtjYXNlIDU6cmV0dXJuWzQsaGwoYSldO2Nhc2UgNjpyZXR1cm5bNCxvLnNlbnQoKV07Y2FzZSA3OnJldHVybiBvLnNlbnQoKSxbMywyXTtjYXNlIDg6cmV0dXJuWzMsMTBdO2Nhc2UgOTpyZXR1cm4gci5yZWxlYXNlTG9jaygpLFs3XTtjYXNlIDEwOnJldHVyblsyXX19KX0pfWZ1bmN0aW9uIEZ2KGUpe3JldHVybiBUdChlPy5nZXRSZWFkZXIpfXZhciBPdj1wKCgpPT57T3IoKTtDaSgpfSk7ZnVuY3Rpb24gejEoZSl7aWYoZSBpbnN0YW5jZW9mIEh0KXJldHVybiBlO2lmKGUhPW51bGwpe2lmKER2KGUpKXJldHVybiBscHIoZSk7aWYoYjUoZSkpcmV0dXJuIGNwcihlKTtpZihBdihlKSlyZXR1cm4gZHByKGUpO2lmKEV2KGUpKXJldHVybiBlOGUoZSk7aWYoUHYoZSkpcmV0dXJuIHVwcihlKTtpZihGdihlKSlyZXR1cm4gcHByKGUpfXRocm93ICR2KGUpfWZ1bmN0aW9uIGxwcihlKXtyZXR1cm4gbmV3IEh0KGZ1bmN0aW9uKHQpe3ZhciByPWVbczNdKCk7aWYoVHQoci5zdWJzY3JpYmUpKXJldHVybiByLnN1YnNjcmliZSh0KTt0aHJvdyBuZXcgVHlwZUVycm9yKCJQcm92aWRlZCBvYmplY3QgZG9lcyBub3QgY29ycmVjdGx5IGltcGxlbWVudCBTeW1ib2wub2JzZXJ2YWJsZSIpfSl9ZnVuY3Rpb24gY3ByKGUpe3JldHVybiBuZXcgSHQoZnVuY3Rpb24odCl7Zm9yKHZhciByPTA7cjxlLmxlbmd0aCYmIXQuY2xvc2VkO3IrKyl0Lm5leHQoZVtyXSk7dC5jb21wbGV0ZSgpfSl9ZnVuY3Rpb24gZHByKGUpe3JldHVybiBuZXcgSHQoZnVuY3Rpb24odCl7ZS50aGVuKGZ1bmN0aW9uKHIpe3QuY2xvc2VkfHwodC5uZXh0KHIpLHQuY29tcGxldGUoKSl9LGZ1bmN0aW9uKHIpe3JldHVybiB0LmVycm9yKHIpfSkudGhlbihudWxsLGJ2KX0pfWZ1bmN0aW9uIHVwcihlKXtyZXR1cm4gbmV3IEh0KGZ1bmN0aW9uKHQpe3ZhciByLGk7dHJ5e2Zvcih2YXIgYT1sYShlKSxuPWEubmV4dCgpOyFuLmRvbmU7bj1hLm5leHQoKSl7dmFyIG89bi52YWx1ZTtpZih0Lm5leHQobyksdC5jbG9zZWQpcmV0dXJufX1jYXRjaChzKXtyPXtlcnJvcjpzfX1maW5hbGx5e3RyeXtuJiYhbi5kb25lJiYoaT1hLnJldHVybikmJmkuY2FsbChhKX1maW5hbGx5e2lmKHIpdGhyb3cgci5lcnJvcn19dC5jb21wbGV0ZSgpfSl9ZnVuY3Rpb24gZThlKGUpe3JldHVybiBuZXcgSHQoZnVuY3Rpb24odCl7aHByKGUsdCkuY2F0Y2goZnVuY3Rpb24ocil7cmV0dXJuIHQuZXJyb3Iocil9KX0pfWZ1bmN0aW9uIHBwcihlKXtyZXR1cm4gZThlKE52KGUpKX1mdW5jdGlvbiBocHIoZSx0KXt2YXIgcixpLGEsbjtyZXR1cm4gcUYodGhpcyx2b2lkIDAsdm9pZCAwLGZ1bmN0aW9uKCl7dmFyIG8scztyZXR1cm4gRmgodGhpcyxmdW5jdGlvbihsKXtzd2l0Y2gobC5sYWJlbCl7Y2FzZSAwOmwudHJ5cy5wdXNoKFswLDUsNiwxMV0pLHI9VkYoZSksbC5sYWJlbD0xO2Nhc2UgMTpyZXR1cm5bNCxyLm5leHQoKV07Y2FzZSAyOmlmKGk9bC5zZW50KCksISFpLmRvbmUpcmV0dXJuWzMsNF07aWYobz1pLnZhbHVlLHQubmV4dChvKSx0LmNsb3NlZClyZXR1cm5bMl07bC5sYWJlbD0zO2Nhc2UgMzpyZXR1cm5bMywxXTtjYXNlIDQ6cmV0dXJuWzMsMTFdO2Nhc2UgNTpyZXR1cm4gcz1sLnNlbnQoKSxhPXtlcnJvcjpzfSxbMywxMV07Y2FzZSA2OnJldHVybiBsLnRyeXMucHVzaChbNiwsOSwxMF0pLGkmJiFpLmRvbmUmJihuPXIucmV0dXJuKT9bNCxuLmNhbGwocildOlszLDhdO2Nhc2UgNzpsLnNlbnQoKSxsLmxhYmVsPTg7Y2FzZSA4OnJldHVyblszLDEwXTtjYXNlIDk6aWYoYSl0aHJvdyBhLmVycm9yO3JldHVybls3XTtjYXNlIDEwOnJldHVybls3XTtjYXNlIDExOnJldHVybiB0LmNvbXBsZXRlKCksWzJdfX0pfSl9dmFyIG9vPXAoKCk9PntPcigpO0x2KCk7d08oKTtobigpO01PKCk7a08oKTtTTygpO0NPKCk7T3YoKTtDaSgpO1lGKCk7QmgoKX0pO2Z1bmN0aW9uIFZpKGUsdCxyLGksYSl7aT09PXZvaWQgMCYmKGk9MCksYT09PXZvaWQgMCYmKGE9ITEpO3ZhciBuPXQuc2NoZWR1bGUoZnVuY3Rpb24oKXtyKCksYT9lLmFkZCh0aGlzLnNjaGVkdWxlKG51bGwsaSkpOnRoaXMudW5zdWJzY3JpYmUoKX0saSk7aWYoZS5hZGQobiksIWEpcmV0dXJuIG59dmFyIGMzPXAoKCk9Pnt9KTtmdW5jdGlvbiB2NShlLHQpe3JldHVybiB0PT09dm9pZCAwJiYodD0wKSxfcihmdW5jdGlvbihyLGkpe3Iuc3Vic2NyaWJlKHhyKGksZnVuY3Rpb24oYSl7cmV0dXJuIFZpKGksZSxmdW5jdGlvbigpe3JldHVybiBpLm5leHQoYSl9LHQpfSxmdW5jdGlvbigpe3JldHVybiBWaShpLGUsZnVuY3Rpb24oKXtyZXR1cm4gaS5jb21wbGV0ZSgpfSx0KX0sZnVuY3Rpb24oYSl7cmV0dXJuIFZpKGksZSxmdW5jdGlvbigpe3JldHVybiBpLmVycm9yKGEpfSx0KX0pKX0pfXZhciBZaD1wKCgpPT57YzMoKTtqaSgpO0hhKCl9KTtmdW5jdGlvbiB4NShlLHQpe3JldHVybiB0PT09dm9pZCAwJiYodD0wKSxfcihmdW5jdGlvbihyLGkpe2kuYWRkKGUuc2NoZWR1bGUoZnVuY3Rpb24oKXtyZXR1cm4gci5zdWJzY3JpYmUoaSl9LHQpKX0pfXZhciBaaD1wKCgpPT57amkoKX0pO2Z1bmN0aW9uIHQ4ZShlLHQpe3JldHVybiB6MShlKS5waXBlKHg1KHQpLHY1KHQpKX12YXIgcjhlPXAoKCk9PntvbygpO1loKCk7WmgoKX0pO2Z1bmN0aW9uIGk4ZShlLHQpe3JldHVybiB6MShlKS5waXBlKHg1KHQpLHY1KHQpKX12YXIgYThlPXAoKCk9PntvbygpO1loKCk7WmgoKX0pO2Z1bmN0aW9uIG44ZShlLHQpe3JldHVybiBuZXcgSHQoZnVuY3Rpb24ocil7dmFyIGk9MDtyZXR1cm4gdC5zY2hlZHVsZShmdW5jdGlvbigpe2k9PT1lLmxlbmd0aD9yLmNvbXBsZXRlKCk6KHIubmV4dChlW2krK10pLHIuY2xvc2VkfHx0aGlzLnNjaGVkdWxlKCkpfSl9KX12YXIgbzhlPXAoKCk9PntobigpfSk7ZnVuY3Rpb24gczhlKGUsdCl7cmV0dXJuIG5ldyBIdChmdW5jdGlvbihyKXt2YXIgaTtyZXR1cm4gVmkocix0LGZ1bmN0aW9uKCl7aT1lW0l2XSgpLFZpKHIsdCxmdW5jdGlvbigpe3ZhciBhLG4sbzt0cnl7YT1pLm5leHQoKSxuPWEudmFsdWUsbz1hLmRvbmV9Y2F0Y2gocyl7ci5lcnJvcihzKTtyZXR1cm59bz9yLmNvbXBsZXRlKCk6ci5uZXh0KG4pfSwwLCEwKX0pLGZ1bmN0aW9uKCl7cmV0dXJuIFR0KGk/LnJldHVybikmJmkucmV0dXJuKCl9fSl9dmFyIGw4ZT1wKCgpPT57aG4oKTt6TygpO0NpKCk7YzMoKX0pO2Z1bmN0aW9uIFJ2KGUsdCl7aWYoIWUpdGhyb3cgbmV3IEVycm9yKCJJdGVyYWJsZSBjYW5ub3QgYmUgbnVsbCIpO3JldHVybiBuZXcgSHQoZnVuY3Rpb24ocil7Vmkocix0LGZ1bmN0aW9uKCl7dmFyIGk9ZVtTeW1ib2wuYXN5bmNJdGVyYXRvcl0oKTtWaShyLHQsZnVuY3Rpb24oKXtpLm5leHQoKS50aGVuKGZ1bmN0aW9uKGEpe2EuZG9uZT9yLmNvbXBsZXRlKCk6ci5uZXh0KGEudmFsdWUpfSl9LDAsITApfSl9KX12YXIgVE89cCgoKT0+e2huKCk7YzMoKX0pO2Z1bmN0aW9uIGM4ZShlLHQpe3JldHVybiBSdihOdihlKSx0KX12YXIgZDhlPXAoKCk9PntUTygpO092KCl9KTtmdW5jdGlvbiBfTyhlLHQpe2lmKGUhPW51bGwpe2lmKER2KGUpKXJldHVybiB0OGUoZSx0KTtpZihiNShlKSlyZXR1cm4gbjhlKGUsdCk7aWYoQXYoZSkpcmV0dXJuIGk4ZShlLHQpO2lmKEV2KGUpKXJldHVybiBSdihlLHQpO2lmKFB2KGUpKXJldHVybiBzOGUoZSx0KTtpZihGdihlKSlyZXR1cm4gYzhlKGUsdCl9dGhyb3cgJHYoZSl9dmFyIExPPXAoKCk9PntyOGUoKTthOGUoKTtvOGUoKTtsOGUoKTtUTygpO01PKCk7d08oKTtMdigpO0NPKCk7a08oKTtTTygpO092KCk7ZDhlKCl9KTtmdW5jdGlvbiBkMyhlLHQpe3JldHVybiB0P19PKGUsdCk6ejEoZSl9dmFyIEJ2PXAoKCk9PntMTygpO29vKCl9KTtmdW5jdGlvbiBYaCgpe2Zvcih2YXIgZT1bXSx0PTA7dDxhcmd1bWVudHMubGVuZ3RoO3QrKyllW3RdPWFyZ3VtZW50c1t0XTt2YXIgcj1xYyhlKTtyZXR1cm4gZDMoZSxyKX12YXIgQU89cCgoKT0+e0doKCk7QnYoKX0pO2Z1bmN0aW9uIERPKGUsdCl7dmFyIHI9VHQoZSk/ZTpmdW5jdGlvbigpe3JldHVybiBlfSxpPWZ1bmN0aW9uKGEpe3JldHVybiBhLmVycm9yKHIoKSl9O3JldHVybiBuZXcgSHQodD9mdW5jdGlvbihhKXtyZXR1cm4gdC5zY2hlZHVsZShpLDAsYSl9OmkpfXZhciBFTz1wKCgpPT57aG4oKTtDaSgpfSk7ZnVuY3Rpb24gZnByKGUsdCl7dmFyIHIsaSxhLG49ZSxvPW4ua2luZCxzPW4udmFsdWUsbD1uLmVycm9yO2lmKHR5cGVvZiBvIT0ic3RyaW5nIil0aHJvdyBuZXcgVHlwZUVycm9yKCdJbnZhbGlkIG5vdGlmaWNhdGlvbiwgbWlzc2luZyAia2luZCInKTtvPT09Ik4iPyhyPXQubmV4dCk9PT1udWxsfHxyPT09dm9pZCAwfHxyLmNhbGwodCxzKTpvPT09IkUiPyhpPXQuZXJyb3IpPT09bnVsbHx8aT09PXZvaWQgMHx8aS5jYWxsKHQsbCk6KGE9dC5jb21wbGV0ZSk9PT1udWxsfHxhPT09dm9pZCAwfHxhLmNhbGwodCl9dmFyICRPLHU4ZSxwOGU9cCgoKT0+e1R2KCk7QU8oKTtFTygpO0NpKCk7KGZ1bmN0aW9uKGUpe2UuTkVYVD0iTiIsZS5FUlJPUj0iRSIsZS5DT01QTEVURT0iQyJ9KSgkT3x8KCRPPXt9KSk7dThlPShmdW5jdGlvbigpe2Z1bmN0aW9uIGUodCxyLGkpe3RoaXMua2luZD10LHRoaXMudmFsdWU9cix0aGlzLmVycm9yPWksdGhpcy5oYXNWYWx1ZT10PT09Ik4ifXJldHVybiBlLnByb3RvdHlwZS5vYnNlcnZlPWZ1bmN0aW9uKHQpe3JldHVybiBmcHIodGhpcyx0KX0sZS5wcm90b3R5cGUuZG89ZnVuY3Rpb24odCxyLGkpe3ZhciBhPXRoaXMsbj1hLmtpbmQsbz1hLnZhbHVlLHM9YS5lcnJvcjtyZXR1cm4gbj09PSJOIj90Py4obyk6bj09PSJFIj9yPy4ocyk6aT8uKCl9LGUucHJvdG90eXBlLmFjY2VwdD1mdW5jdGlvbih0LHIsaSl7dmFyIGE7cmV0dXJuIFR0KChhPXQpPT09bnVsbHx8YT09PXZvaWQgMD92b2lkIDA6YS5uZXh0KT90aGlzLm9ic2VydmUodCk6dGhpcy5kbyh0LHIsaSl9LGUucHJvdG90eXBlLnRvT2JzZXJ2YWJsZT1mdW5jdGlvbigpe3ZhciB0PXRoaXMscj10LmtpbmQsaT10LnZhbHVlLGE9dC5lcnJvcixuPXI9PT0iTiI/WGgoaSk6cj09PSJFIj9ETyhmdW5jdGlvbigpe3JldHVybiBhfSk6cj09PSJDIj9DdjowO2lmKCFuKXRocm93IG5ldyBUeXBlRXJyb3IoIlVuZXhwZWN0ZWQgbm90aWZpY2F0aW9uIGtpbmQgIityKTtyZXR1cm4gbn0sZS5jcmVhdGVOZXh0PWZ1bmN0aW9uKHQpe3JldHVybiBuZXcgZSgiTiIsdCl9LGUuY3JlYXRlRXJyb3I9ZnVuY3Rpb24odCl7cmV0dXJuIG5ldyBlKCJFIix2b2lkIDAsdCl9LGUuY3JlYXRlQ29tcGxldGU9ZnVuY3Rpb24oKXtyZXR1cm4gZS5jb21wbGV0ZU5vdGlmaWNhdGlvbn0sZS5jb21wbGV0ZU5vdGlmaWNhdGlvbj1uZXcgZSgiQyIpLGV9KSgpfSk7dmFyIGg4ZT1wKCgpPT57fSk7dmFyIG1wcixmOGU9cCgoKT0+e0hjKCk7bXByPXBuKGZ1bmN0aW9uKGUpe3JldHVybiBmdW5jdGlvbigpe2UodGhpcyksdGhpcy5uYW1lPSJFbXB0eUVycm9yIix0aGlzLm1lc3NhZ2U9Im5vIGVsZW1lbnRzIGluIHNlcXVlbmNlIn19KX0pO3ZhciBtOGU9cCgoKT0+e30pO3ZhciBnOGU9cCgoKT0+e30pO3ZhciBncHIsYjhlPXAoKCk9PntIYygpO2dwcj1wbihmdW5jdGlvbihlKXtyZXR1cm4gZnVuY3Rpb24oKXtlKHRoaXMpLHRoaXMubmFtZT0iQXJndW1lbnRPdXRPZlJhbmdlRXJyb3IiLHRoaXMubWVzc2FnZT0iYXJndW1lbnQgb3V0IG9mIHJhbmdlIn19KX0pO3ZhciBicHIsdjhlPXAoKCk9PntIYygpO2Jwcj1wbihmdW5jdGlvbihlKXtyZXR1cm4gZnVuY3Rpb24ocil7ZSh0aGlzKSx0aGlzLm5hbWU9Ik5vdEZvdW5kRXJyb3IiLHRoaXMubWVzc2FnZT1yfX0pfSk7dmFyIHZwcix4OGU9cCgoKT0+e0hjKCk7dnByPXBuKGZ1bmN0aW9uKGUpe3JldHVybiBmdW5jdGlvbihyKXtlKHRoaXMpLHRoaXMubmFtZT0iU2VxdWVuY2VFcnJvciIsdGhpcy5tZXNzYWdlPXJ9fSl9KTtmdW5jdGlvbiBIdihlKXtyZXR1cm4gZSBpbnN0YW5jZW9mIERhdGUmJiFpc05hTihlKX12YXIgSU89cCgoKT0+e30pO2Z1bmN0aW9uIHc4ZShlLHQpe3ZhciByPUh2KGUpP3tmaXJzdDplfTp0eXBlb2YgZT09Im51bWJlciI/e2VhY2g6ZX06ZSxpPXIuZmlyc3QsYT1yLmVhY2gsbj1yLndpdGgsbz1uPT09dm9pZCAwP3hwcjpuLHM9ci5zY2hlZHVsZXIsbD1zPT09dm9pZCAwP3Q/P0cyOnMsYz1yLm1ldGEsdT1jPT09dm9pZCAwP251bGw6YztpZihpPT1udWxsJiZhPT1udWxsKXRocm93IG5ldyBUeXBlRXJyb3IoIk5vIHRpbWVvdXQgcHJvdmlkZWQuIik7cmV0dXJuIF9yKGZ1bmN0aW9uKGQsaCl7dmFyIGYseCx2PW51bGwsYj0wLHk9ZnVuY3Rpb24odyl7eD1WaShoLGwsZnVuY3Rpb24oKXt0cnl7Zi51bnN1YnNjcmliZSgpLHoxKG8oe21ldGE6dSxsYXN0VmFsdWU6dixzZWVuOmJ9KSkuc3Vic2NyaWJlKGgpfWNhdGNoKGspe2guZXJyb3Ioayl9fSx3KX07Zj1kLnN1YnNjcmliZSh4cihoLGZ1bmN0aW9uKHcpe3g/LnVuc3Vic2NyaWJlKCksYisrLGgubmV4dCh2PXcpLGE+MCYmeShhKX0sdm9pZCAwLHZvaWQgMCxmdW5jdGlvbigpe3g/LmNsb3NlZHx8eD8udW5zdWJzY3JpYmUoKSx2PW51bGx9KSksIWImJnkoaSE9bnVsbD90eXBlb2YgaT09Im51bWJlciI/aToraS1sLm5vdygpOmEpfSl9ZnVuY3Rpb24geHByKGUpe3Rocm93IG5ldyB5OGUoZSl9dmFyIHk4ZSxxdj1wKCgpPT57bDMoKTtJTygpO2ppKCk7b28oKTtIYygpO0hhKCk7YzMoKTt5OGU9cG4oZnVuY3Rpb24oZSl7cmV0dXJuIGZ1bmN0aW9uKHIpe3I9PT12b2lkIDAmJihyPW51bGwpLGUodGhpcyksdGhpcy5tZXNzYWdlPSJUaW1lb3V0IGhhcyBvY2N1cnJlZCIsdGhpcy5uYW1lPSJUaW1lb3V0RXJyb3IiLHRoaXMuaW5mbz1yfX0pfSk7ZnVuY3Rpb24gamMoZSx0KXtyZXR1cm4gX3IoZnVuY3Rpb24ocixpKXt2YXIgYT0wO3Iuc3Vic2NyaWJlKHhyKGksZnVuY3Rpb24obil7aS5uZXh0KGUuY2FsbCh0LG4sYSsrKSl9KSl9KX12YXIgUWg9cCgoKT0+e2ppKCk7SGEoKX0pO2Z1bmN0aW9uIHdwcihlLHQpe3JldHVybiB5cHIodCk/ZS5hcHBseSh2b2lkIDAscWkoW10sWDEodCkpKTplKHQpfWZ1bmN0aW9uIE04ZShlKXtyZXR1cm4gamMoZnVuY3Rpb24odCl7cmV0dXJuIHdwcihlLHQpfSl9dmFyIHlwcixrOGU9cCgoKT0+e09yKCk7UWgoKTt5cHI9QXJyYXkuaXNBcnJheX0pO3ZhciBTOGU9cCgoKT0+e30pO3ZhciB6OGU9cCgoKT0+e30pO3ZhciBDOGU9cCgoKT0+e30pO2Z1bmN0aW9uIFQ4ZShlLHQscixpLGEsbixvLHMpe3ZhciBsPVtdLGM9MCx1PTAsZD0hMSxoPWZ1bmN0aW9uKCl7ZCYmIWwubGVuZ3RoJiYhYyYmdC5jb21wbGV0ZSgpfSxmPWZ1bmN0aW9uKHYpe3JldHVybiBjPGk/eCh2KTpsLnB1c2godil9LHg9ZnVuY3Rpb24odil7biYmdC5uZXh0KHYpLGMrKzt2YXIgYj0hMTt6MShyKHYsdSsrKSkuc3Vic2NyaWJlKHhyKHQsZnVuY3Rpb24oeSl7YT8uKHkpLG4/Zih5KTp0Lm5leHQoeSl9LGZ1bmN0aW9uKCl7Yj0hMH0sdm9pZCAwLGZ1bmN0aW9uKCl7aWYoYil0cnl7Yy0tO2Zvcih2YXIgeT1mdW5jdGlvbigpe3ZhciB3PWwuc2hpZnQoKTtvP1ZpKHQsbyxmdW5jdGlvbigpe3JldHVybiB4KHcpfSk6eCh3KX07bC5sZW5ndGgmJmM8aTspeSgpO2goKX1jYXRjaCh3KXt0LmVycm9yKHcpfX0pKX07cmV0dXJuIGUuc3Vic2NyaWJlKHhyKHQsZixmdW5jdGlvbigpe2Q9ITAsaCgpfSkpLGZ1bmN0aW9uKCl7cz8uKCl9fXZhciBfOGU9cCgoKT0+e29vKCk7YzMoKTtIYSgpfSk7ZnVuY3Rpb24gdTMoZSx0LHIpe3JldHVybiByPT09dm9pZCAwJiYocj0xLzApLFR0KHQpP3UzKGZ1bmN0aW9uKGksYSl7cmV0dXJuIGpjKGZ1bmN0aW9uKG4sbyl7cmV0dXJuIHQoaSxuLGEsbyl9KSh6MShlKGksYSkpKX0scik6KHR5cGVvZiB0PT0ibnVtYmVyIiYmKHI9dCksX3IoZnVuY3Rpb24oaSxhKXtyZXR1cm4gVDhlKGksYSxlLHIpfSkpfXZhciBKaD1wKCgpPT57UWgoKTtvbygpO2ppKCk7XzhlKCk7Q2koKX0pO2Z1bmN0aW9uIGp2KGUpe3JldHVybiBlPT09dm9pZCAwJiYoZT0xLzApLHUzKEhoLGUpfXZhciBWdj1wKCgpPT57SmgoKTt3digpfSk7ZnVuY3Rpb24gVXYoKXtyZXR1cm4ganYoMSl9dmFyIFd2PXAoKCk9PntWdigpfSk7ZnVuY3Rpb24gR3YoKXtmb3IodmFyIGU9W10sdD0wO3Q8YXJndW1lbnRzLmxlbmd0aDt0KyspZVt0XT1hcmd1bWVudHNbdF07cmV0dXJuIFV2KCkoZDMoZSxxYyhlKSkpfXZhciBQTz1wKCgpPT57V3YoKTtHaCgpO0J2KCl9KTt2YXIgTDhlPXAoKCk9Pnt9KTt2YXIgQThlPXAoKCk9Pnt9KTt2YXIgRDhlPXAoKCk9Pnt9KTtmdW5jdGlvbiBwMyhlLHQscixpKXtpZihUdChyKSYmKGk9cixyPXZvaWQgMCksaSlyZXR1cm4gcDMoZSx0LHIpLnBpcGUoTThlKGkpKTt2YXIgYT1YMShUcHIoZSk/a3ByLm1hcChmdW5jdGlvbihzKXtyZXR1cm4gZnVuY3Rpb24obCl7cmV0dXJuIGVbc10odCxsLHIpfX0pOnpwcihlKT9NcHIubWFwKEU4ZShlLHQpKTpDcHIoZSk/U3ByLm1hcChFOGUoZSx0KSk6W10sMiksbj1hWzBdLG89YVsxXTtpZighbiYmYjUoZSkpcmV0dXJuIHUzKGZ1bmN0aW9uKHMpe3JldHVybiBwMyhzLHQscil9KSh6MShlKSk7aWYoIW4pdGhyb3cgbmV3IFR5cGVFcnJvcigiSW52YWxpZCBldmVudCB0YXJnZXQiKTtyZXR1cm4gbmV3IEh0KGZ1bmN0aW9uKHMpe3ZhciBsPWZ1bmN0aW9uKCl7Zm9yKHZhciBjPVtdLHU9MDt1PGFyZ3VtZW50cy5sZW5ndGg7dSsrKWNbdV09YXJndW1lbnRzW3VdO3JldHVybiBzLm5leHQoMTxjLmxlbmd0aD9jOmNbMF0pfTtyZXR1cm4gbihsKSxmdW5jdGlvbigpe3JldHVybiBvKGwpfX0pfWZ1bmN0aW9uIEU4ZShlLHQpe3JldHVybiBmdW5jdGlvbihyKXtyZXR1cm4gZnVuY3Rpb24oaSl7cmV0dXJuIGVbcl0odCxpKX19fWZ1bmN0aW9uIHpwcihlKXtyZXR1cm4gVHQoZS5hZGRMaXN0ZW5lcikmJlR0KGUucmVtb3ZlTGlzdGVuZXIpfWZ1bmN0aW9uIENwcihlKXtyZXR1cm4gVHQoZS5vbikmJlR0KGUub2ZmKX1mdW5jdGlvbiBUcHIoZSl7cmV0dXJuIFR0KGUuYWRkRXZlbnRMaXN0ZW5lcikmJlR0KGUucmVtb3ZlRXZlbnRMaXN0ZW5lcil9dmFyIE1wcixrcHIsU3ByLCQ4ZT1wKCgpPT57T3IoKTtvbygpO2huKCk7SmgoKTtMdigpO0NpKCk7azhlKCk7TXByPVsiYWRkTGlzdGVuZXIiLCJyZW1vdmVMaXN0ZW5lciJdLGtwcj1bImFkZEV2ZW50TGlzdGVuZXIiLCJyZW1vdmVFdmVudExpc3RlbmVyIl0sU3ByPVsib24iLCJvZmYiXX0pO3ZhciBJOGU9cCgoKT0+e30pO3ZhciBQOGU9cCgoKT0+e30pO3ZhciBOOGU9cCgoKT0+e30pO2Z1bmN0aW9uIE5PKGUsdCxyKXtlPT09dm9pZCAwJiYoZT0wKSxyPT09dm9pZCAwJiYocj1oTyk7dmFyIGk9LTE7cmV0dXJuIHQhPW51bGwmJihfdih0KT9yPXQ6aT10KSxuZXcgSHQoZnVuY3Rpb24oYSl7dmFyIG49SHYoZSk/K2Utci5ub3coKTplO248MCYmKG49MCk7dmFyIG89MDtyZXR1cm4gci5zY2hlZHVsZShmdW5jdGlvbigpe2EuY2xvc2VkfHwoYS5uZXh0KG8rKyksMDw9aT90aGlzLnNjaGVkdWxlKHZvaWQgMCxpKTphLmNvbXBsZXRlKCkpfSxuKX0pfXZhciBGTz1wKCgpPT57aG4oKTtsMygpO3hPKCk7SU8oKX0pO3ZhciBGOGU9cCgoKT0+e30pO3ZhciBPOGU9cCgoKT0+e30pO2Z1bmN0aW9uIF9wcigpe3JldHVybiBSOGV9dmFyIFI4ZSxPTz1wKCgpPT57aG4oKTthMygpO1I4ZT1uZXcgSHQobm8pfSk7dmFyIEI4ZT1wKCgpPT57fSk7dmFyIEg4ZT1wKCgpPT57fSk7ZnVuY3Rpb24gWXYoZSx0KXtyZXR1cm4gX3IoZnVuY3Rpb24ocixpKXt2YXIgYT0wO3Iuc3Vic2NyaWJlKHhyKGksZnVuY3Rpb24obil7cmV0dXJuIGUuY2FsbCh0LG4sYSsrKSYmaS5uZXh0KG4pfSkpfSl9dmFyIFJPPXAoKCk9PntqaSgpO0hhKCl9KTt2YXIgcThlPXAoKCk9Pnt9KTt2YXIgajhlPXAoKCk9Pnt9KTt2YXIgVjhlPXAoKCk9Pnt9KTt2YXIgVThlPXAoKCk9Pnt9KTt2YXIgVzhlPXAoKCk9Pnt9KTt2YXIgRzhlPXAoKCk9Pnt9KTt2YXIgQk89cCgoKT0+e30pO3ZhciBITz1wKCgpPT57fSk7ZnVuY3Rpb24gWnYoZSl7cmV0dXJuIF9yKGZ1bmN0aW9uKHQscil7dmFyIGk9W107cmV0dXJuIHQuc3Vic2NyaWJlKHhyKHIsZnVuY3Rpb24oYSl7cmV0dXJuIGkucHVzaChhKX0sZnVuY3Rpb24oKXtyLm5leHQoaSksci5jb21wbGV0ZSgpfSkpLHoxKGUpLnN1YnNjcmliZSh4cihyLGZ1bmN0aW9uKCl7dmFyIGE9aTtpPVtdLHIubmV4dChhKX0sbm8pKSxmdW5jdGlvbigpe2k9bnVsbH19KX12YXIgcU89cCgoKT0+e2ppKCk7YTMoKTtIYSgpO29vKCl9KTtmdW5jdGlvbiBYdihlLHQpe3JldHVybiB0PT09dm9pZCAwJiYodD1udWxsKSx0PXQ/P2UsX3IoZnVuY3Rpb24ocixpKXt2YXIgYT1bXSxuPTA7ci5zdWJzY3JpYmUoeHIoaSxmdW5jdGlvbihvKXt2YXIgcyxsLGMsdSxkPW51bGw7bisrJXQ9PT0wJiZhLnB1c2goW10pO3RyeXtmb3IodmFyIGg9bGEoYSksZj1oLm5leHQoKTshZi5kb25lO2Y9aC5uZXh0KCkpe3ZhciB4PWYudmFsdWU7eC5wdXNoKG8pLGU8PXgubGVuZ3RoJiYoZD1kPz9bXSxkLnB1c2goeCkpfX1jYXRjaCh5KXtzPXtlcnJvcjp5fX1maW5hbGx5e3RyeXtmJiYhZi5kb25lJiYobD1oLnJldHVybikmJmwuY2FsbChoKX1maW5hbGx5e2lmKHMpdGhyb3cgcy5lcnJvcn19aWYoZCl0cnl7Zm9yKHZhciB2PWxhKGQpLGI9di5uZXh0KCk7IWIuZG9uZTtiPXYubmV4dCgpKXt2YXIgeD1iLnZhbHVlO0pvKGEseCksaS5uZXh0KHgpfX1jYXRjaCh5KXtjPXtlcnJvcjp5fX1maW5hbGx5e3RyeXtiJiYhYi5kb25lJiYodT12LnJldHVybikmJnUuY2FsbCh2KX1maW5hbGx5e2lmKGMpdGhyb3cgYy5lcnJvcn19fSxmdW5jdGlvbigpe3ZhciBvLHM7dHJ5e2Zvcih2YXIgbD1sYShhKSxjPWwubmV4dCgpOyFjLmRvbmU7Yz1sLm5leHQoKSl7dmFyIHU9Yy52YWx1ZTtpLm5leHQodSl9fWNhdGNoKGQpe289e2Vycm9yOmR9fWZpbmFsbHl7dHJ5e2MmJiFjLmRvbmUmJihzPWwucmV0dXJuKSYmcy5jYWxsKGwpfWZpbmFsbHl7aWYobyl0aHJvdyBvLmVycm9yfX1pLmNvbXBsZXRlKCl9LHZvaWQgMCxmdW5jdGlvbigpe2E9bnVsbH0pKX0pfXZhciBqTz1wKCgpPT57T3IoKTtqaSgpO0hhKCk7dTUoKX0pO2Z1bmN0aW9uIFF2KGUpe2Zvcih2YXIgdCxyLGk9W10sYT0xO2E8YXJndW1lbnRzLmxlbmd0aDthKyspaVthLTFdPWFyZ3VtZW50c1thXTt2YXIgbj0odD1xYyhpKSkhPT1udWxsJiZ0IT09dm9pZCAwP3Q6RzIsbz0ocj1pWzBdKSE9PW51bGwmJnIhPT12b2lkIDA/cjpudWxsLHM9aVsxXXx8MS8wO3JldHVybiBfcihmdW5jdGlvbihsLGMpe3ZhciB1PVtdLGQ9ITEsaD1mdW5jdGlvbih2KXt2YXIgYj12LmJ1ZmZlcix5PXYuc3Viczt5LnVuc3Vic2NyaWJlKCksSm8odSx2KSxjLm5leHQoYiksZCYmZigpfSxmPWZ1bmN0aW9uKCl7aWYodSl7dmFyIHY9bmV3IE8xO2MuYWRkKHYpO3ZhciBiPVtdLHk9e2J1ZmZlcjpiLHN1YnM6dn07dS5wdXNoKHkpLFZpKHYsbixmdW5jdGlvbigpe3JldHVybiBoKHkpfSxlKX19O28hPT1udWxsJiZvPj0wP1ZpKGMsbixmLG8sITApOmQ9ITAsZigpO3ZhciB4PXhyKGMsZnVuY3Rpb24odil7dmFyIGIseSx3PXUuc2xpY2UoKTt0cnl7Zm9yKHZhciBrPWxhKHcpLE89ay5uZXh0KCk7IU8uZG9uZTtPPWsubmV4dCgpKXt2YXIgej1PLnZhbHVlLE09ei5idWZmZXI7TS5wdXNoKHYpLHM8PU0ubGVuZ3RoJiZoKHopfX1jYXRjaChGKXtiPXtlcnJvcjpGfX1maW5hbGx5e3RyeXtPJiYhTy5kb25lJiYoeT1rLnJldHVybikmJnkuY2FsbChrKX1maW5hbGx5e2lmKGIpdGhyb3cgYi5lcnJvcn19fSxmdW5jdGlvbigpe2Zvcig7dT8ubGVuZ3RoOyljLm5leHQodS5zaGlmdCgpLmJ1ZmZlcik7eD8udW5zdWJzY3JpYmUoKSxjLmNvbXBsZXRlKCksYy51bnN1YnNjcmliZSgpfSx2b2lkIDAsZnVuY3Rpb24oKXtyZXR1cm4gdT1udWxsfSk7bC5zdWJzY3JpYmUoeCl9KX12YXIgVk89cCgoKT0+e09yKCk7VzIoKTtqaSgpO0hhKCk7dTUoKTtsMygpO0doKCk7YzMoKX0pO3ZhciBVTz1wKCgpPT57fSk7dmFyIFdPPXAoKCk9Pnt9KTt2YXIgR089cCgoKT0+e30pO3ZhciBZTz1wKCgpPT57fSk7dmFyIFpPPXAoKCk9Pnt9KTt2YXIgWE89cCgoKT0+e30pO3ZhciBRTz1wKCgpPT57fSk7dmFyIFk4ZT1wKCgpPT57fSk7dmFyIEpPPXAoKCk9Pnt9KTt2YXIgS089cCgoKT0+e30pO3ZhciBlUj1wKCgpPT57fSk7dmFyIFo4ZT1wKCgpPT57fSk7dmFyIHRSPXAoKCk9Pnt9KTt2YXIgclI9cCgoKT0+e30pO3ZhciBpUj1wKCgpPT57fSk7ZnVuY3Rpb24gSnYoZSl7cmV0dXJuIF9yKGZ1bmN0aW9uKHQscil7dmFyIGk9ITEsYT1udWxsLG49bnVsbCxvPWZ1bmN0aW9uKCl7aWYobj8udW5zdWJzY3JpYmUoKSxuPW51bGwsaSl7aT0hMTt2YXIgcz1hO2E9bnVsbCxyLm5leHQocyl9fTt0LnN1YnNjcmliZSh4cihyLGZ1bmN0aW9uKHMpe24/LnVuc3Vic2NyaWJlKCksaT0hMCxhPXMsbj14cihyLG8sbm8pLHoxKGUocykpLnN1YnNjcmliZShuKX0sZnVuY3Rpb24oKXtvKCksci5jb21wbGV0ZSgpfSx2b2lkIDAsZnVuY3Rpb24oKXthPW49bnVsbH0pKX0pfXZhciBhUj1wKCgpPT57amkoKTthMygpO0hhKCk7b28oKX0pO2Z1bmN0aW9uIEt2KGUsdCl7cmV0dXJuIHQ9PT12b2lkIDAmJih0PUcyKSxfcihmdW5jdGlvbihyLGkpe3ZhciBhPW51bGwsbj1udWxsLG89bnVsbCxzPWZ1bmN0aW9uKCl7aWYoYSl7YS51bnN1YnNjcmliZSgpLGE9bnVsbDt2YXIgYz1uO249bnVsbCxpLm5leHQoYyl9fTtmdW5jdGlvbiBsKCl7dmFyIGM9bytlLHU9dC5ub3coKTtpZih1PGMpe2E9dGhpcy5zY2hlZHVsZSh2b2lkIDAsYy11KSxpLmFkZChhKTtyZXR1cm59cygpfXIuc3Vic2NyaWJlKHhyKGksZnVuY3Rpb24oYyl7bj1jLG89dC5ub3coKSxhfHwoYT10LnNjaGVkdWxlKGwsZSksaS5hZGQoYSkpfSxmdW5jdGlvbigpe3MoKSxpLmNvbXBsZXRlKCl9LHZvaWQgMCxmdW5jdGlvbigpe249YT1udWxsfSkpfSl9dmFyIG5SPXAoKCk9PntsMygpO2ppKCk7SGEoKX0pO3ZhciBvUj1wKCgpPT57fSk7dmFyIHNSPXAoKCk9Pnt9KTt2YXIgbFI9cCgoKT0+e30pO3ZhciBjUj1wKCgpPT57fSk7dmFyIGRSPXAoKCk9Pnt9KTt2YXIgdVI9cCgoKT0+e30pO3ZhciBwUj1wKCgpPT57fSk7dmFyIGhSPXAoKCk9Pnt9KTt2YXIgZlI9cCgoKT0+e30pO3ZhciBtUj1wKCgpPT57fSk7dmFyIGdSPXAoKCk9Pnt9KTt2YXIgYlI9cCgoKT0+e30pO3ZhciB2Uj1wKCgpPT57fSk7dmFyIHhSPXAoKCk9Pnt9KTt2YXIgeVI9cCgoKT0+e30pO3ZhciB3Uj1wKCgpPT57fSk7dmFyIE1SPXAoKCk9Pnt9KTt2YXIga1I9cCgoKT0+e30pO3ZhciBTUj1wKCgpPT57fSk7dmFyIHpSPXAoKCk9Pnt9KTt2YXIgQ1I9cCgoKT0+e30pO3ZhciBUUj1wKCgpPT57fSk7dmFyIF9SPXAoKCk9Pnt9KTt2YXIgTFI9cCgoKT0+e30pO3ZhciBBUj1wKCgpPT57fSk7dmFyIERSPXAoKCk9Pnt9KTt2YXIgRVI9cCgoKT0+e30pO3ZhciAkUj1wKCgpPT57fSk7dmFyIElSPXAoKCk9Pnt9KTt2YXIgUFI9cCgoKT0+e30pO3ZhciBOUj1wKCgpPT57fSk7dmFyIFg4ZT1wKCgpPT57fSk7dmFyIEZSPXAoKCk9Pnt9KTt2YXIgT1I9cCgoKT0+e30pO3ZhciBSUj1wKCgpPT57fSk7dmFyIEJSPXAoKCk9Pnt9KTt2YXIgSFI9cCgoKT0+e30pO3ZhciBxUj1wKCgpPT57fSk7dmFyIGpSPXAoKCk9Pnt9KTt2YXIgVlI9cCgoKT0+e30pO3ZhciBVUj1wKCgpPT57fSk7dmFyIFdSPXAoKCk9Pnt9KTt2YXIgR1I9cCgoKT0+e30pO3ZhciBZUj1wKCgpPT57fSk7dmFyIFpSPXAoKCk9Pnt9KTt2YXIgWFI9cCgoKT0+e30pO3ZhciBRUj1wKCgpPT57fSk7dmFyIEpSPXAoKCk9Pnt9KTt2YXIgS1I9cCgoKT0+e30pO3ZhciBlQj1wKCgpPT57fSk7dmFyIHRCPXAoKCk9Pnt9KTt2YXIgckI9cCgoKT0+e30pO3ZhciBpQj1wKCgpPT57fSk7dmFyIGFCPXAoKCk9Pnt9KTt2YXIgbkI9cCgoKT0+e30pO3ZhciBvQj1wKCgpPT57fSk7dmFyIHNCPXAoKCk9Pnt9KTt2YXIgbEI9cCgoKT0+e30pO2Z1bmN0aW9uIGV4KCl7Zm9yKHZhciBlPVtdLHQ9MDt0PGFyZ3VtZW50cy5sZW5ndGg7dCsrKWVbdF09YXJndW1lbnRzW3RdO3ZhciByPXFjKGUpO3JldHVybiBfcihmdW5jdGlvbihpLGEpeyhyP0d2KGUsaSxyKTpHdihlLGkpKS5zdWJzY3JpYmUoYSl9KX12YXIgY0I9cCgoKT0+e1BPKCk7R2goKTtqaSgpfSk7dmFyIGRCPXAoKCk9Pnt9KTt2YXIgdUI9cCgoKT0+e30pO3ZhciBwQj1wKCgpPT57fSk7dmFyIGhCPXAoKCk9Pnt9KTtmdW5jdGlvbiB0eChlKXtyZXR1cm4gX3IoZnVuY3Rpb24odCxyKXt6MShlKS5zdWJzY3JpYmUoeHIocixmdW5jdGlvbigpe3JldHVybiByLmNvbXBsZXRlKCl9LG5vKSksIXIuY2xvc2VkJiZ0LnN1YnNjcmliZShyKX0pfXZhciBmQj1wKCgpPT57amkoKTtIYSgpO29vKCk7YTMoKX0pO3ZhciBtQj1wKCgpPT57fSk7dmFyIGdCPXAoKCk9Pnt9KTtmdW5jdGlvbiByeChlLHQpe3JldHVybiBfcihmdW5jdGlvbihyLGkpe3ZhciBhPXQ/P3t9LG49YS5sZWFkaW5nLG89bj09PXZvaWQgMD8hMDpuLHM9YS50cmFpbGluZyxsPXM9PT12b2lkIDA/ITE6cyxjPSExLHU9bnVsbCxkPW51bGwsaD0hMSxmPWZ1bmN0aW9uKCl7ZD8udW5zdWJzY3JpYmUoKSxkPW51bGwsbCYmKGIoKSxoJiZpLmNvbXBsZXRlKCkpfSx4PWZ1bmN0aW9uKCl7ZD1udWxsLGgmJmkuY29tcGxldGUoKX0sdj1mdW5jdGlvbih5KXtyZXR1cm4gZD16MShlKHkpKS5zdWJzY3JpYmUoeHIoaSxmLHgpKX0sYj1mdW5jdGlvbigpe2lmKGMpe2M9ITE7dmFyIHk9dTt1PW51bGwsaS5uZXh0KHkpLCFoJiZ2KHkpfX07ci5zdWJzY3JpYmUoeHIoaSxmdW5jdGlvbih5KXtjPSEwLHU9eSwhKGQmJiFkLmNsb3NlZCkmJihvP2IoKTp2KHkpKX0sZnVuY3Rpb24oKXtoPSEwLCEobCYmYyYmZCYmIWQuY2xvc2VkKSYmaS5jb21wbGV0ZSgpfSkpfSl9dmFyIGl4PXAoKCk9PntqaSgpO0hhKCk7b28oKX0pO2Z1bmN0aW9uIGF4KGUsdCxyKXt0PT09dm9pZCAwJiYodD1HMik7dmFyIGk9Tk8oZSx0KTtyZXR1cm4gcngoZnVuY3Rpb24oKXtyZXR1cm4gaX0scil9dmFyIGJCPXAoKCk9PntsMygpO2l4KCk7Rk8oKX0pO3ZhciB2Qj1wKCgpPT57fSk7dmFyIHhCPXAoKCk9Pnt9KTt2YXIgeUI9cCgoKT0+e30pO3ZhciB3Qj1wKCgpPT57fSk7dmFyIE1CPXAoKCk9Pnt9KTt2YXIga0I9cCgoKT0+e30pO3ZhciBTQj1wKCgpPT57fSk7dmFyIHpCPXAoKCk9Pnt9KTt2YXIgQ0I9cCgoKT0+e30pO3ZhciBUQj1wKCgpPT57fSk7dmFyIFE4ZT1wKCgpPT57fSk7dmFyIF9CPXAoKCk9Pnt9KTt2YXIgTEI9cCgoKT0+e2huKCk7Q3VlKCk7QmgoKTtMdWUoKTtxaCgpO0R1ZSgpO0V1ZSgpO0l1ZSgpO2p1ZSgpO2wzKCk7R3VlKCk7UXVlKCk7S3VlKCk7dU8oKTtXMigpO3l2KCk7cDhlKCk7S0YoKTthMygpO3d2KCk7aDhlKCk7bThlKCk7ZzhlKCk7YjhlKCk7ZjhlKCk7djhlKCk7YU8oKTt4OGUoKTtxdigpO1VGKCk7UzhlKCk7ejhlKCk7QzhlKCk7UE8oKTtBOGUoKTtMOGUoKTtUdigpO0Q4ZSgpO0J2KCk7JDhlKCk7SThlKCk7UDhlKCk7TjhlKCk7RjhlKCk7TzhlKCk7T08oKTtBTygpO0I4ZSgpO0g4ZSgpO3E4ZSgpO2o4ZSgpO1Y4ZSgpO0VPKCk7Rk8oKTtVOGUoKTtXOGUoKTtMTygpO1R2KCk7T08oKTtHOGUoKTtwNSgpO0JPKCk7SE8oKTtxTygpO2pPKCk7Vk8oKTtVTygpO1dPKCk7R08oKTtRTygpO1hPKCk7Sk8oKTtXdigpO0tPKCk7ZVIoKTt0UigpO3JSKCk7aVIoKTthUigpO25SKCk7b1IoKTt1UigpO2RSKCk7cFIoKTtoUigpO2ZSKCk7bVIoKTtiUigpO3ZSKCk7eFIoKTtNUigpO3dSKCk7eVIoKTtrUigpO1JPKCk7U1IoKTt6UigpO0NSKCk7VFIoKTtfUigpO2xSKCk7TFIoKTtEUigpO1FoKCk7Y1IoKTtFUigpOyRSKCk7VnYoKTtJUigpO0poKCk7UFIoKTtOUigpO0ZSKCk7T1IoKTtSUigpO1loKCk7QlIoKTtIUigpO3FSKCk7alIoKTtWUigpO1VSKCk7V1IoKTtHUigpO1lPKCk7WVIoKTtaUigpO1hSKCk7UVIoKTtrdigpO0pSKCk7S1IoKTtlQigpO3RCKCk7ckIoKTtpQigpO2FCKCk7bkIoKTtvQigpO3NCKCk7bEIoKTtjQigpO1poKCk7dUIoKTtkQigpO3BCKCk7aEIoKTtzUigpO0FSKCk7ZkIoKTttQigpO2dCKCk7aXgoKTtiQigpO2dSKCk7dkIoKTtxdigpO3hCKCk7eUIoKTtaTygpO3dCKCk7TUIoKTtrQigpO1NCKCk7ekIoKTtDQigpO1RCKCk7X0IoKX0pO3ZhciBKOGU9cCgoKT0+e30pO3ZhciBLOGU9cCgoKT0+e30pO3ZhciBlcGU9cCgoKT0+e0JPKCk7SE8oKTtxTygpO2pPKCk7Vk8oKTtVTygpO1dPKCk7R08oKTtRTygpO1hPKCk7WThlKCk7Sk8oKTtaOGUoKTtXdigpO0tPKCk7ZVIoKTt0UigpO3JSKCk7aVIoKTthUigpO25SKCk7b1IoKTt1UigpO2RSKCk7cFIoKTtoUigpO2ZSKCk7bVIoKTtiUigpO3ZSKCk7eFIoKTtNUigpO3dSKCk7eVIoKTtrUigpO1JPKCk7U1IoKTt6UigpO0NSKCk7VFIoKTtfUigpO2xSKCk7TFIoKTtEUigpO1FoKCk7Y1IoKTtFUigpOyRSKCk7WDhlKCk7VnYoKTtJUigpO0poKCk7UFIoKTtOUigpO0ZSKCk7T1IoKTtSUigpO1loKCk7QlIoKTtIUigpO0o4ZSgpO3FSKCk7alIoKTtWUigpO1VSKCk7V1IoKTtLOGUoKTtHUigpO1lPKCk7WVIoKTtaUigpO1hSKCk7UVIoKTtrdigpO0pSKCk7S1IoKTtlQigpO3RCKCk7ckIoKTtpQigpO2FCKCk7bkIoKTtvQigpO3NCKCk7bEIoKTtjQigpO1poKCk7dUIoKTtkQigpO3BCKCk7aEIoKTtzUigpO0FSKCk7ZkIoKTttQigpO2dCKCk7aXgoKTtiQigpO2dSKCk7dkIoKTtxdigpO3hCKCk7eUIoKTtaTygpO3dCKCk7TUIoKTtrQigpO1NCKCk7ekIoKTtDQigpO1E4ZSgpO1RCKCk7X0IoKX0pO3ZhciB5NT17fTtGZSh5NSx7T2JzZXJ2YWJsZTooKT0+SHQsUmVwbGF5U3ViamVjdDooKT0+U3YsU3ViamVjdDooKT0+Zm4sU3Vic2NyaXB0aW9uOigpPT5PMSxmcm9tOigpPT5kMyxmcm9tRXZlbnQ6KCk9PnAzLG9mOigpPT5YaCxvcHM6KCk9PmNmcn0pO3ZhciBjZnIsbng9cCgoKT0+e0xCKCk7ZXBlKCk7Y2ZyPXtidWZmZXI6WnYsYnVmZmVyQ291bnQ6WHYsYnVmZmVyVGltZTpRdixkZWJvdW5jZTpKdixkZWJvdW5jZVRpbWU6S3YsZmlsdGVyOll2LG1hcDpqYyxzdGFydFdpdGg6ZXgsdGFrZVVudGlsOnR4LHRocm90dGxlVGltZTpheH19KTt2YXIgQUIsdHBlPXAoKCk9PnttdigpO254KCk7QUI9Y2xhc3N7Y29uc3RydWN0b3IoKXt0aGlzLm9ic2VydmFibGVFdmVudEVtaXR0ZXJCdW5kbGVBcnJheT1uZXcgQXJyYXksdGhpcy5vYnNlcnZhYmxlRXZlbnRUYXJnZXRCdW5kbGVBcnJheT1uZXcgQXJyYXl9Z2V0U3ViamVjdEZvckVtaXR0ZXJFdmVudCh0LHIpe2xldCBpPXRoaXMub2JzZXJ2YWJsZUV2ZW50RW1pdHRlckJ1bmRsZUFycmF5LmZpbmQoYT0+YS5ldmVudFJlZj09PXQmJmEuZXZlbnQ9PT1yKTtpZihpKXJldHVybiBpLnN1YmplY3Q7e2xldCBhPXAzKHQsciksbj1uZXcgZm47YS5zdWJzY3JpYmUobik7bGV0IG89e3N1YmplY3Q6bixldmVudFJlZjp0LGV2ZW50OnJ9O3JldHVybiB0aGlzLm9ic2VydmFibGVFdmVudEVtaXR0ZXJCdW5kbGVBcnJheS5wdXNoKG8pLG8uc3ViamVjdH19Z2V0U3ViamVjdEZvckV2ZW50VGFyZ2V0KHQscil7bGV0IGk9dGhpcy5vYnNlcnZhYmxlRXZlbnRUYXJnZXRCdW5kbGVBcnJheS5maW5kKGE9PmEuZXZlbnRSZWY9PT10JiZhLmV2ZW50PT09cik7aWYoaSlyZXR1cm4gaS5zdWJqZWN0O3tsZXQgbj17c3ViamVjdDpuZXcgZm4sZXZlbnRSZWY6dCxldmVudDpyfTtyZXR1cm4gdGhpcy5vYnNlcnZhYmxlRXZlbnRUYXJnZXRCdW5kbGVBcnJheS5wdXNoKG4pLG4uc3ViamVjdH19fX0pO3ZhciBEQixycGU9cCgoKT0+e212KCk7bngoKTtEQj1jbGFzc3tjb25zdHJ1Y3Rvcigpe3RoaXMub2JzZXJ2YWJsZUZ1bmN0aW9ucz17bmV4dDp0PT57fSxjb21wbGV0ZTp0PT57fX0sdGhpcy5nZW5lcmF0b3I9bnVsbCx0aGlzLmJ1ZmZlcmVkPSExLHRoaXMucGF5bG9hZEJ1ZmZlcj1bXSx0aGlzLm9ic2VydmFibGU9bmV3IEh0KHQ9Pnt0aGlzLm9ic2VydmFibGVGdW5jdGlvbnMubmV4dD0oLi4ucik9PnQubmV4dChyKSx0aGlzLm9ic2VydmFibGVGdW5jdGlvbnMuY29tcGxldGU9KCk9Pih0aGlzLmNvbXBsZXRlZERlZmZlcmVkLnJlc29sdmUoKSx0LmNvbXBsZXRlKCkpfSksdGhpcy5jb21wbGV0ZWREZWZmZXJlZD1LZS5kZWZlcigpLHRoaXMuY29tcGxldGVkPXRoaXMuY29tcGxldGVkRGVmZmVyZWQucHJvbWlzZX1zZXRPYnNlcnZhYmxlKHQpe3RoaXMub2JzZXJ2YWJsZT10fXB1c2godCl7dGhpcy5idWZmZXJlZD90aGlzLnBheWxvYWRCdWZmZXIucHVzaCh0KTp0aGlzLmludGVybmFsUHVzaCh0KX1wdXNoTWFueSh0KXtmb3IobGV0IHIgb2YgdCl0aGlzLnB1c2gocil9c2V0R2VuZXJhdG9yKHQpe3RoaXMuZ2VuZXJhdG9yPXR9bWFrZUJ1ZmZlcmVkKCl7dGhpcy5idWZmZXJlZD0hMH1zdWJzY3JpYmUoLi4udCl7cmV0dXJuIHRoaXMub2JzZXJ2YWJsZS5zdWJzY3JpYmUoLi4udCl9cmVxdWVzdCh0KXtpZih0IT09MClmb3IobGV0IHI9MDtyIT09dDtyKyspaWYodGhpcy5wYXlsb2FkQnVmZmVyLmxlbmd0aD4wKXRoaXMuaW50ZXJuYWxQdXNoKHRoaXMucGF5bG9hZEJ1ZmZlci5zaGlmdCgpKTtlbHNle2xldCBpPXRoaXMuZ2VuZXJhdG9yLm5leHQoKTt0aGlzLmludGVybmFsUHVzaChpLnZhbHVlKX19c2lnbmFsQ29tcGxldGUoKXt0aGlzLm9ic2VydmFibGVGdW5jdGlvbnMuY29tcGxldGUoKX1pbnRlcm5hbFB1c2godCl7dGhpcy5vYnNlcnZhYmxlRnVuY3Rpb25zLm5leHQodCl9fX0pO2Z1bmN0aW9uIGRmcihlKXtyZXR1cm4gbmV3IEh0KHQ9PntsZXQgcj0oKT0+ZS5wYXVzZSgpLGk9KCk9PnByb2Nlc3MubmV4dFRpY2soKCk9PmUucmVzdW1lKCkpLGE9bj0+e3IoKSx0Lm5leHQobiksaSgpfTtyZXR1cm4gZS5vbigiZGF0YSIsYSksZS5vbigiZXJyb3IiLG49PnQuZXJyb3IobikpLGUub24oImVuZCIsKCk9PnQuY29tcGxldGUoKSksZS5vbigiY2xvc2UiLCgpPT50LmNvbXBsZXRlKCkpLCgpPT57ZS5yZW1vdmVMaXN0ZW5lcigiZGF0YSIsYSksZS5yZW1vdmVMaXN0ZW5lcigiZXJyb3IiLHQuZXJyb3IpLGUucmVtb3ZlTGlzdGVuZXIoImVuZCIsdC5jb21wbGV0ZSksZS5yZW1vdmVMaXN0ZW5lcigiY2xvc2UiLHQuY29tcGxldGUpfX0pfXZhciBpcGU9cCgoKT0+e0xCKCl9KTt2YXIgaXI9e307RmUoaXIse09ic2VydmFibGVJbnRha2U6KCk9PkRCLE9ic2VydmFibGVtYXA6KCk9PkFCLGZyb21TdHJlYW1XaXRoQmFja3ByZXNzdXJlOigpPT5kZnIscnhqczooKT0+eTV9KTt2YXIgdDI9cCgoKT0+e212KCk7dHBlKCk7cnBlKCk7aXBlKCk7bngoKX0pO2Z1bmN0aW9uIGgzKGUpe3JldHVybih0LHIpPT50eXBlb2Ygcj09Im9iamVjdCI/YXBlKGUsdCxyKTooKGksYSxuKT0+e2xldCBvPWEuaGFzT3duUHJvcGVydHkobik7cmV0dXJuIGEuY29uc3RydWN0b3IuY3JlYXRlUHJvcGVydHkobixpKSxvP09iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoYSxuKTp2b2lkIDB9KShlLHQscil9dmFyIHVmcixhcGUsb3g9cCgoKT0+e0RoKCk7dWZyPXthdHRyaWJ1dGU6ITAsdHlwZTpTdHJpbmcsY29udmVydGVyOmM1LHJlZmxlY3Q6ITEsaGFzQ2hhbmdlZDpBaH0sYXBlPShlPXVmcix0LHIpPT57bGV0e2tpbmQ6aSxtZXRhZGF0YTphfT1yLG49Z2xvYmFsVGhpcy5saXRQcm9wZXJ0eU1ldGFkYXRhLmdldChhKTtpZihuPT09dm9pZCAwJiZnbG9iYWxUaGlzLmxpdFByb3BlcnR5TWV0YWRhdGEuc2V0KGEsbj1uZXcgTWFwKSxpPT09InNldHRlciImJigoZT1PYmplY3QuY3JlYXRlKGUpKS53cmFwcGVkPSEwKSxuLnNldChyLm5hbWUsZSksaT09PSJhY2Nlc3NvciIpe2xldHtuYW1lOm99PXI7cmV0dXJue3NldChzKXtsZXQgbD10LmdldC5jYWxsKHRoaXMpO3Quc2V0LmNhbGwodGhpcyxzKSx0aGlzLnJlcXVlc3RVcGRhdGUobyxsLGUsITAscyl9LGluaXQocyl7cmV0dXJuIHMhPT12b2lkIDAmJnRoaXMuQyhvLHZvaWQgMCxlLHMpLHN9fX1pZihpPT09InNldHRlciIpe2xldHtuYW1lOm99PXI7cmV0dXJuIGZ1bmN0aW9uKHMpe2xldCBsPXRoaXNbb107dC5jYWxsKHRoaXMscyksdGhpcy5yZXF1ZXN0VXBkYXRlKG8sbCxlLCEwLHMpfX10aHJvdyBFcnJvcigiVW5zdXBwb3J0ZWQgZGVjb3JhdG9yIGxvY2F0aW9uOiAiK2kpfX0pO3ZhciBucGU9cCgoKT0+e294KCl9KTt2YXIgb3BlPXAoKCk9Pnt9KTt2YXIgenQ9e307RmUoenQse1RpbWVvdXQ6KCk9PnN4LGRlbGF5Rm9yOigpPT5zcGUsZGVsYXlGb3JSYW5kb206KCk9PnBmcn0pO3ZhciBzcGUscGZyLHN4LFkyPXAoKCk9PntzYSgpO3NwZT1hc3luYyhlLHQscj0hMSk9Pihhd2FpdCBuZXcgc3goZSxudWxsLHIpLnByb21pc2UsdCkscGZyPWFzeW5jKGUsdCxyLGk9ITEpPT4oYXdhaXQgc3BlKE1hdGgucmFuZG9tKCkqKHQtZSkrZSxudWxsLGkpLHIpLHN4PWNsYXNze2NvbnN0cnVjdG9yKHQscixpPSExKXt0aGlzLl9jYW5jZWxsZWQ9ITEsdGhpcy50aW1lb3V0SW5NaWxsaXM9dCx0aGlzLl9kZWZlcnJlZD1CYygpLHRoaXMucHJvbWlzZT10aGlzLl9kZWZlcnJlZC5wcm9taXNlLHRoaXMuX3RpbWVvdXQ9c2V0VGltZW91dCgoKT0+e3RoaXMuX2NhbmNlbGxlZHx8dGhpcy5fZGVmZXJyZWQucmVzb2x2ZShyKX0sdCksdGhpcy5zdGFydGVkPURhdGUubm93KCksaSYmdGhpcy5tYWtlVW5yZWZlZCgpfW1ha2VVbnJlZmVkKCl7dGhpcy5fdGltZW91dC51bnJlZigpfWNhbmNlbCgpe3RoaXMuX2NhbmNlbGxlZD0hMCxjbGVhclRpbWVvdXQodGhpcy5fdGltZW91dCl9Z2V0VGltZUxlZnQoKXtsZXQgdD10aGlzLnN0YXJ0ZWQrdGhpcy50aW1lb3V0SW5NaWxsaXMtRGF0ZS5ub3coKTtyZXR1cm4gdD4wP3Q6MH19fSk7dmFyIFZjPXt9O3ZhciBLaD1wKCgpPT57fSk7ZnVuY3Rpb24gZjMoZSl7aWYodHlwZW9mIGUhPSJzdHJpbmciKXRocm93IG5ldyBUeXBlRXJyb3IoIkV4cGVjdGVkIGEgc3RyaW5nIik7cmV0dXJuIGUucmVwbGFjZSgvW3xcXHt9KClbXF1eJCsqPy5dL2csIlxcJCYiKS5yZXBsYWNlKC8tL2csIlxceDJkIil9dmFyIGx4PXAoKCk9Pnt9KTt2YXIgZWY9e307RmUoZWYse2lzTWF0Y2g6KCk9Pm1mcixtYXRjaGVyOigpPT5mZnJ9KTtmdW5jdGlvbiBmZnIoZSx0LHIpe3JldHVybiBjcGUoZSx0LHIsITEpfWZ1bmN0aW9uIG1mcihlLHQscil7cmV0dXJuIGNwZShlLHQsciwhMCkubGVuZ3RoPjB9dmFyIEVCLGxwZSxoZnIsY3BlLGRwZT1wKCgpPT57bHgoKTtFQj1uZXcgTWFwLGxwZT0oZSx0KT0+e2lmKCFBcnJheS5pc0FycmF5KGUpKXN3aXRjaCh0eXBlb2YgZSl7Y2FzZSJzdHJpbmciOmU9W2VdO2JyZWFrO2Nhc2UidW5kZWZpbmVkIjplPVtdO2JyZWFrO2RlZmF1bHQ6dGhyb3cgbmV3IFR5cGVFcnJvcihgRXhwZWN0ZWQgJyR7dH0nIHRvIGJlIGEgc3RyaW5nIG9yIGFuIGFycmF5LCBidXQgZ290IGEgdHlwZSBvZiAnJHt0eXBlb2YgZX0nYCl9cmV0dXJuIGUuZmlsdGVyKHI9PntpZih0eXBlb2YgciE9InN0cmluZyIpe2lmKHR5cGVvZiByPiJ1IilyZXR1cm4hMTt0aHJvdyBuZXcgVHlwZUVycm9yKGBFeHBlY3RlZCAnJHt0fScgdG8gYmUgYW4gYXJyYXkgb2Ygc3RyaW5ncywgYnV0IGZvdW5kIGEgdHlwZSBvZiAnJHt0eXBlb2Ygcn0nIGluIHRoZSBhcnJheWApfXJldHVybiEwfSl9LGhmcj0oZSx0KT0+e3Q9e2Nhc2VTZW5zaXRpdmU6ITEsLi4udH07bGV0IHI9ZStKU09OLnN0cmluZ2lmeSh0KTtpZihFQi5oYXMocikpcmV0dXJuIEVCLmdldChyKTtsZXQgaT1lWzBdPT09IiEiO2kmJihlPWUuc2xpY2UoMSkpLGU9ZjMoZSkucmVwbGFjZSgvXFxcKi9nLCJbXFxzXFxTXSoiKTtsZXQgYT1uZXcgUmVnRXhwKGBeJHtlfSRgLHQuY2FzZVNlbnNpdGl2ZT8iIjoiaSIpO3JldHVybiBhLm5lZ2F0ZWQ9aSxFQi5zZXQocixhKSxhfSxjcGU9KGUsdCxyLGkpPT57aWYoZT1scGUoZSwiaW5wdXRzIiksdD1scGUodCwicGF0dGVybnMiKSx0Lmxlbmd0aD09PTApcmV0dXJuW107dD10Lm1hcChvPT5oZnIobyxyKSk7bGV0e2FsbFBhdHRlcm5zOmF9PXJ8fHt9LG49W107Zm9yKGxldCBvIG9mIGUpe2xldCBzLGw9Wy4uLnRdLmZpbGwoITEpO2ZvcihsZXRbYyx1XW9mIHQuZW50cmllcygpKWlmKHUudGVzdChvKSYmKGxbY109ITAscz0hdS5uZWdhdGVkLCFzKSlicmVhaztpZighKHM9PT0hMXx8cz09PXZvaWQgMCYmdC5zb21lKGM9PiFjLm5lZ2F0ZWQpfHxhJiZsLnNvbWUoKGMsdSk9PiFjJiYhdFt1XS5uZWdhdGVkKSkmJihuLnB1c2gobyksaSkpYnJlYWt9cmV0dXJuIG59fSk7dmFyIHVwZT1wKCgpPT57ZHBlKCl9KTt2YXIgbWw9e307RmUobWwse1NtYXJ0TWF0Y2g6KCk9PiRCfSk7dmFyICRCLElCPXAoKCk9Pnt1cGUoKTskQj1jbGFzc3tjb25zdHJ1Y3Rvcih0KXt0aGlzLndpbGRjYXJkPXR9bWF0Y2godCl7cmV0dXJuIGVmLmlzTWF0Y2godCx0aGlzLndpbGRjYXJkKX19fSk7dmFyIG5mPXt9O0ZlKG5mLHtDcm9uOigpPT5icGUsQ3JvbkRhdGU6KCk9PnNpLENyb25QYXR0ZXJuOigpPT5jeCxzY2hlZHVsZWRKb2JzOigpPT53NX0pO2Z1bmN0aW9uIHRmKGUpe3JldHVybiBEYXRlLlVUQyhlLnksZS5tLTEsZS5kLGUuaCxlLmksZS5zKX1mdW5jdGlvbiBQQihlLHQpe3JldHVybiBlLnk9PT10LnkmJmUubT09PXQubSYmZS5kPT09dC5kJiZlLmg9PT10LmgmJmUuaT09PXQuaSYmZS5zPT09dC5zfWZ1bmN0aW9uIGJmcihlLHQpe2xldCByPW5ldyBEYXRlKERhdGUucGFyc2UoZSkpO2lmKGlzTmFOKHIpKXRocm93IG5ldyBFcnJvcigiSW52YWxpZCBJU084NjAxIHBhc3NlZCB0byB0aW1lem9uZSBwYXJzZXIuIik7bGV0IGk9ZS5zdWJzdHJpbmcoOSk7cmV0dXJuIGkuaW5jbHVkZXMoIloiKXx8aS5pbmNsdWRlcygiKyIpfHxpLmluY2x1ZGVzKCItIik/TkIoci5nZXRVVENGdWxsWWVhcigpLHIuZ2V0VVRDTW9udGgoKSsxLHIuZ2V0VVRDRGF0ZSgpLHIuZ2V0VVRDSG91cnMoKSxyLmdldFVUQ01pbnV0ZXMoKSxyLmdldFVUQ1NlY29uZHMoKSwiRXRjL1VUQyIpOk5CKHIuZ2V0RnVsbFllYXIoKSxyLmdldE1vbnRoKCkrMSxyLmdldERhdGUoKSxyLmdldEhvdXJzKCksci5nZXRNaW51dGVzKCksci5nZXRTZWNvbmRzKCksdCl9ZnVuY3Rpb24gcHBlKGUsdCxyKXtyZXR1cm4gaHBlKGJmcihlLHQpLHIpfWZ1bmN0aW9uIGhwZShlLHQpe2xldCByPW5ldyBEYXRlKHRmKGUpKSxpPXJmKHIsZS50eiksYT10ZihlKSxuPXRmKGkpLG89YS1uLHM9bmV3IERhdGUoci5nZXRUaW1lKCkrbyksbD1yZihzLGUudHopO2lmKFBCKGwsZSkpe2xldCBkPW5ldyBEYXRlKHMuZ2V0VGltZSgpLTM2ZTUpLGg9cmYoZCxlLnR6KTtyZXR1cm4gUEIoaCxlKT9kOnN9bGV0IGM9bmV3IERhdGUocy5nZXRUaW1lKCkrdGYoZSktdGYobCkpLHU9cmYoYyxlLnR6KTtpZihQQih1LGUpKXJldHVybiBjO2lmKHQpdGhyb3cgbmV3IEVycm9yKCJJbnZhbGlkIGRhdGUgcGFzc2VkIHRvIGZyb21UWigpIik7cmV0dXJuIHMuZ2V0VGltZSgpPmMuZ2V0VGltZSgpP3M6Y31mdW5jdGlvbiByZihlLHQpe2xldCByLGk7dHJ5e3I9bmV3IEludGwuRGF0ZVRpbWVGb3JtYXQoImVuLVVTIix7dGltZVpvbmU6dCx5ZWFyOiJudW1lcmljIixtb250aDoibnVtZXJpYyIsZGF5OiJudW1lcmljIixob3VyOiJudW1lcmljIixtaW51dGU6Im51bWVyaWMiLHNlY29uZDoibnVtZXJpYyIsaG91cjEyOiExfSksaT1yLmZvcm1hdFRvUGFydHMoZSl9Y2F0Y2gobil7bGV0IG89biBpbnN0YW5jZW9mIEVycm9yP24ubWVzc2FnZTpTdHJpbmcobik7dGhyb3cgbmV3IFJhbmdlRXJyb3IoYHRvVFo6IEludmFsaWQgdGltZXpvbmUgJyR7dH0nIG9yIGRhdGUuIFBsZWFzZSBwcm92aWRlIGEgdmFsaWQgSUFOQSB0aW1lem9uZSAoZS5nLiwgJ0FtZXJpY2EvTmV3X1lvcmsnLCAnRXVyb3BlL1N0b2NraG9sbScpLiBPcmlnaW5hbCBlcnJvcjogJHtvfWApfWxldCBhPXt5ZWFyOjAsbW9udGg6MCxkYXk6MCxob3VyOjAsbWludXRlOjAsc2Vjb25kOjB9O2ZvcihsZXQgbiBvZiBpKShuLnR5cGU9PT0ieWVhciJ8fG4udHlwZT09PSJtb250aCJ8fG4udHlwZT09PSJkYXkifHxuLnR5cGU9PT0iaG91ciJ8fG4udHlwZT09PSJtaW51dGUifHxuLnR5cGU9PT0ic2Vjb25kIikmJihhW24udHlwZV09cGFyc2VJbnQobi52YWx1ZSwxMCkpO2lmKGlzTmFOKGEueWVhcil8fGlzTmFOKGEubW9udGgpfHxpc05hTihhLmRheSl8fGlzTmFOKGEuaG91cil8fGlzTmFOKGEubWludXRlKXx8aXNOYU4oYS5zZWNvbmQpKXRocm93IG5ldyBFcnJvcihgdG9UWjogRmFpbGVkIHRvIHBhcnNlIGFsbCBkYXRlIGNvbXBvbmVudHMgZnJvbSB0aW1lem9uZSAnJHt0fScuIFRoaXMgbWF5IGluZGljYXRlIGFuIGludmFsaWQgZGF0ZSBvciB0aW1lem9uZSBjb25maWd1cmF0aW9uLiBQYXJzZWQgY29tcG9uZW50czogJHtKU09OLnN0cmluZ2lmeShhKX1gKTtyZXR1cm4gYS5ob3VyPT09MjQmJihhLmhvdXI9MCkse3k6YS55ZWFyLG06YS5tb250aCxkOmEuZGF5LGg6YS5ob3VyLGk6YS5taW51dGUsczphLnNlY29uZCx0ejp0fX1mdW5jdGlvbiBOQihlLHQscixpLGEsbixvKXtyZXR1cm57eTplLG06dCxkOnIsaDppLGk6YSxzOm4sdHo6b319ZnVuY3Rpb24gdmZyKGUpe2lmKGU9PT12b2lkIDAmJihlPXt9KSxkZWxldGUgZS5uYW1lLGUubGVnYWN5TW9kZSE9PXZvaWQgMCYmZS5kb21BbmREb3c9PT12b2lkIDA/ZS5kb21BbmREb3c9IWUubGVnYWN5TW9kZTplLmRvbUFuZERvdz09PXZvaWQgMCYmKGUuZG9tQW5kRG93PSExKSxlLmxlZ2FjeU1vZGU9IWUuZG9tQW5kRG93LGUucGF1c2VkPWUucGF1c2VkPT09dm9pZCAwPyExOmUucGF1c2VkLGUubWF4UnVucz1lLm1heFJ1bnM9PT12b2lkIDA/MS8wOmUubWF4UnVucyxlLmNhdGNoPWUuY2F0Y2g9PT12b2lkIDA/ITE6ZS5jYXRjaCxlLmludGVydmFsPWUuaW50ZXJ2YWw9PT12b2lkIDA/MDpwYXJzZUludChlLmludGVydmFsLnRvU3RyaW5nKCksMTApLGUudXRjT2Zmc2V0PWUudXRjT2Zmc2V0PT09dm9pZCAwP3ZvaWQgMDpwYXJzZUludChlLnV0Y09mZnNldC50b1N0cmluZygpLDEwKSxlLmRheU9mZnNldD1lLmRheU9mZnNldD09PXZvaWQgMD8wOnBhcnNlSW50KGUuZGF5T2Zmc2V0LnRvU3RyaW5nKCksMTApLGUudW5yZWY9ZS51bnJlZj09PXZvaWQgMD8hMTplLnVucmVmLGUubW9kZT1lLm1vZGU9PT12b2lkIDA/ImF1dG8iOmUubW9kZSxlLmFsdGVybmF0aXZlV2Vla2RheXM9ZS5hbHRlcm5hdGl2ZVdlZWtkYXlzPT09dm9pZCAwPyExOmUuYWx0ZXJuYXRpdmVXZWVrZGF5cyxlLnNsb3BweVJhbmdlcz1lLnNsb3BweVJhbmdlcz09PXZvaWQgMD8hMTplLnNsb3BweVJhbmdlcywhWyJhdXRvIiwiNS1wYXJ0IiwiNi1wYXJ0IiwiNy1wYXJ0IiwiNS1vci02LXBhcnRzIiwiNi1vci03LXBhcnRzIl0uaW5jbHVkZXMoZS5tb2RlKSl0aHJvdyBuZXcgRXJyb3IoIkNyb25PcHRpb25zOiBtb2RlIG11c3QgYmUgb25lIG9mICdhdXRvJywgJzUtcGFydCcsICc2LXBhcnQnLCAnNy1wYXJ0JywgJzUtb3ItNi1wYXJ0cycsIG9yICc2LW9yLTctcGFydHMnLiIpO2lmKGUuc3RhcnRBdCYmKGUuc3RhcnRBdD1uZXcgc2koZS5zdGFydEF0LGUudGltZXpvbmUpKSxlLnN0b3BBdCYmKGUuc3RvcEF0PW5ldyBzaShlLnN0b3BBdCxlLnRpbWV6b25lKSksZS5pbnRlcnZhbCE9PW51bGwpe2lmKGlzTmFOKGUuaW50ZXJ2YWwpKXRocm93IG5ldyBFcnJvcigiQ3Jvbk9wdGlvbnM6IFN1cHBsaWVkIHZhbHVlIGZvciBpbnRlcnZhbCBpcyBub3QgYSBudW1iZXIiKTtpZihlLmludGVydmFsPDApdGhyb3cgbmV3IEVycm9yKCJDcm9uT3B0aW9uczogU3VwcGxpZWQgdmFsdWUgZm9yIGludGVydmFsIGNhbiBub3QgYmUgbmVnYXRpdmUiKX1pZihlLnV0Y09mZnNldCE9PXZvaWQgMCl7aWYoaXNOYU4oZS51dGNPZmZzZXQpKXRocm93IG5ldyBFcnJvcigiQ3Jvbk9wdGlvbnM6IEludmFsaWQgdmFsdWUgcGFzc2VkIGZvciB1dGNPZmZzZXQsIHNob3VsZCBiZSBudW1iZXIgcmVwcmVzZW50aW5nIG1pbnV0ZXMgb2Zmc2V0IGZyb20gVVRDLiIpO2lmKGUudXRjT2Zmc2V0PC04NzB8fGUudXRjT2Zmc2V0Pjg3MCl0aHJvdyBuZXcgRXJyb3IoIkNyb25PcHRpb25zOiB1dGNPZmZzZXQgb3V0IG9mIGJvdW5kcy4iKTtpZihlLnV0Y09mZnNldCE9PXZvaWQgMCYmZS50aW1lem9uZSl0aHJvdyBuZXcgRXJyb3IoIkNyb25PcHRpb25zOiBDb21iaW5pbmcgJ3V0Y09mZnNldCcgd2l0aCAndGltZXpvbmUnIGlzIG5vdCBhbGxvd2VkLiIpfWlmKGUudW5yZWYhPT0hMCYmZS51bnJlZiE9PSExKXRocm93IG5ldyBFcnJvcigiQ3Jvbk9wdGlvbnM6IFVucmVmIHNob3VsZCBiZSBlaXRoZXIgdHJ1ZSwgZmFsc2Ugb3IgdW5kZWZpbmVkKGZhbHNlKS4iKTtpZihlLmRheU9mZnNldCE9PXZvaWQgMCYmZS5kYXlPZmZzZXQhPT0wJiZpc05hTihlLmRheU9mZnNldCkpdGhyb3cgbmV3IEVycm9yKCJDcm9uT3B0aW9uczogSW52YWxpZCB2YWx1ZSBwYXNzZWQgZm9yIGRheU9mZnNldCwgc2hvdWxkIGJlIGEgbnVtYmVyIHJlcHJlc2VudGluZyBkYXlzIHRvIG9mZnNldC4iKTtyZXR1cm4gZX1mdW5jdGlvbiBhZihlKXtyZXR1cm4gT2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKGUpPT09IltvYmplY3QgRnVuY3Rpb25dInx8dHlwZW9mIGU9PSJmdW5jdGlvbiJ8fGUgaW5zdGFuY2VvZiBGdW5jdGlvbn1mdW5jdGlvbiB4ZnIoZSl7cmV0dXJuIGFmKGUpfWZ1bmN0aW9uIHlmcihlKXt0eXBlb2YgRGVubzwidSImJnR5cGVvZiBEZW5vLnVucmVmVGltZXI8InUiP0Rlbm8udW5yZWZUaW1lcihlKTplJiZ0eXBlb2YgZS51bnJlZjwidSImJmUudW5yZWYoKX12YXIgZnBlLGN4LEZCLHMxLHNpLG1wZSx3NSxicGUsdnBlPXAoKCk9PntmcGU9WzEsMiw0LDgsMTZdLGN4PWNsYXNze3BhdHRlcm47dGltZXpvbmU7bW9kZTthbHRlcm5hdGl2ZVdlZWtkYXlzO3Nsb3BweVJhbmdlcztzZWNvbmQ7bWludXRlO2hvdXI7ZGF5O21vbnRoO2RheU9mV2Vlazt5ZWFyO2xhc3REYXlPZk1vbnRoO2xhc3RXZWVrZGF5O25lYXJlc3RXZWVrZGF5cztzdGFyRE9NO3N0YXJET1c7c3RhclllYXI7dXNlQW5kTG9naWM7Y29uc3RydWN0b3IoZSx0LHIpe3RoaXMucGF0dGVybj1lLHRoaXMudGltZXpvbmU9dCx0aGlzLm1vZGU9cj8ubW9kZT8/ImF1dG8iLHRoaXMuYWx0ZXJuYXRpdmVXZWVrZGF5cz1yPy5hbHRlcm5hdGl2ZVdlZWtkYXlzPz8hMSx0aGlzLnNsb3BweVJhbmdlcz1yPy5zbG9wcHlSYW5nZXM/PyExLHRoaXMuc2Vjb25kPUFycmF5KDYwKS5maWxsKDApLHRoaXMubWludXRlPUFycmF5KDYwKS5maWxsKDApLHRoaXMuaG91cj1BcnJheSgyNCkuZmlsbCgwKSx0aGlzLmRheT1BcnJheSgzMSkuZmlsbCgwKSx0aGlzLm1vbnRoPUFycmF5KDEyKS5maWxsKDApLHRoaXMuZGF5T2ZXZWVrPUFycmF5KDcpLmZpbGwoMCksdGhpcy55ZWFyPUFycmF5KDFlNCkuZmlsbCgwKSx0aGlzLmxhc3REYXlPZk1vbnRoPSExLHRoaXMubGFzdFdlZWtkYXk9ITEsdGhpcy5uZWFyZXN0V2Vla2RheXM9QXJyYXkoMzEpLmZpbGwoMCksdGhpcy5zdGFyRE9NPSExLHRoaXMuc3RhckRPVz0hMSx0aGlzLnN0YXJZZWFyPSExLHRoaXMudXNlQW5kTG9naWM9ITEsdGhpcy5wYXJzZSgpfXBhcnNlKCl7aWYoISh0eXBlb2YgdGhpcy5wYXR0ZXJuPT0ic3RyaW5nInx8dGhpcy5wYXR0ZXJuIGluc3RhbmNlb2YgU3RyaW5nKSl0aHJvdyBuZXcgVHlwZUVycm9yKCJDcm9uUGF0dGVybjogUGF0dGVybiBoYXMgdG8gYmUgb2YgdHlwZSBzdHJpbmcuIik7dGhpcy5wYXR0ZXJuLmluZGV4T2YoIkAiKT49MCYmKHRoaXMucGF0dGVybj10aGlzLmhhbmRsZU5pY2tuYW1lcyh0aGlzLnBhdHRlcm4pLnRyaW0oKSk7bGV0IGU9dGhpcy5wYXR0ZXJuLm1hdGNoKC9cUysvZyl8fFsiIl0sdD1lLmxlbmd0aDtpZihlLmxlbmd0aDw1fHxlLmxlbmd0aD43KXRocm93IG5ldyBUeXBlRXJyb3IoIkNyb25QYXR0ZXJuOiBpbnZhbGlkIGNvbmZpZ3VyYXRpb24gZm9ybWF0ICgnIit0aGlzLnBhdHRlcm4rIicpLCBleGFjdGx5IGZpdmUsIHNpeCwgb3Igc2V2ZW4gc3BhY2Ugc2VwYXJhdGVkIHBhcnRzIGFyZSByZXF1aXJlZC4iKTtpZih0aGlzLm1vZGUhPT0iYXV0byIpe2xldCBpO3N3aXRjaCh0aGlzLm1vZGUpe2Nhc2UiNS1wYXJ0IjppPTU7YnJlYWs7Y2FzZSI2LXBhcnQiOmk9NjticmVhaztjYXNlIjctcGFydCI6aT03O2JyZWFrO2Nhc2UiNS1vci02LXBhcnRzIjppPVs1LDZdO2JyZWFrO2Nhc2UiNi1vci03LXBhcnRzIjppPVs2LDddO2JyZWFrO2RlZmF1bHQ6aT0wfWlmKCEoQXJyYXkuaXNBcnJheShpKT9pLmluY2x1ZGVzKHQpOnQ9PT1pKSl7bGV0IGE9QXJyYXkuaXNBcnJheShpKT9pLmpvaW4oIiBvciAiKTppLnRvU3RyaW5nKCk7dGhyb3cgbmV3IFR5cGVFcnJvcihgQ3JvblBhdHRlcm46IG1vZGUgJyR7dGhpcy5tb2RlfScgcmVxdWlyZXMgZXhhY3RseSAke2F9IHBhcnRzLCBidXQgcGF0dGVybiAnJHt0aGlzLnBhdHRlcm59JyBoYXMgJHt0fSBwYXJ0cy5gKX19aWYoZS5sZW5ndGg9PT01JiZlLnVuc2hpZnQoIjAiKSxlLmxlbmd0aD09PTYmJmUucHVzaCgiKiIpLGVbM10udG9VcHBlckNhc2UoKT09PSJMVyI/KHRoaXMubGFzdFdlZWtkYXk9ITAsZVszXT0iIik6ZVszXS50b1VwcGVyQ2FzZSgpLmluZGV4T2YoIkwiKT49MCYmKGVbM109ZVszXS5yZXBsYWNlKC9ML2dpLCIiKSx0aGlzLmxhc3REYXlPZk1vbnRoPSEwKSxlWzNdPT0iKiImJih0aGlzLnN0YXJET009ITApLGVbNl09PSIqIiYmKHRoaXMuc3RhclllYXI9ITApLGVbNF0ubGVuZ3RoPj0zJiYoZVs0XT10aGlzLnJlcGxhY2VBbHBoYU1vbnRocyhlWzRdKSksZVs1XS5sZW5ndGg+PTMmJihlWzVdPXRoaXMuYWx0ZXJuYXRpdmVXZWVrZGF5cz90aGlzLnJlcGxhY2VBbHBoYURheXNRdWFydHooZVs1XSk6dGhpcy5yZXBsYWNlQWxwaGFEYXlzKGVbNV0pKSxlWzVdLnN0YXJ0c1dpdGgoIisiKSYmKHRoaXMudXNlQW5kTG9naWM9ITAsZVs1XT1lWzVdLnN1YnN0cmluZygxKSxlWzVdPT09IiIpKXRocm93IG5ldyBUeXBlRXJyb3IoIkNyb25QYXR0ZXJuOiBEYXktb2Ytd2VlayBmaWVsZCBjYW5ub3QgYmUgZW1wdHkgYWZ0ZXIgJysnIG1vZGlmaWVyLiIpO3N3aXRjaChlWzVdPT0iKiImJih0aGlzLnN0YXJET1c9ITApLHRoaXMucGF0dGVybi5pbmRleE9mKCI/Iik+PTAmJihlWzBdPWVbMF0ucmVwbGFjZSgvXD8vZywiKiIpLGVbMV09ZVsxXS5yZXBsYWNlKC9cPy9nLCIqIiksZVsyXT1lWzJdLnJlcGxhY2UoL1w/L2csIioiKSxlWzNdPWVbM10ucmVwbGFjZSgvXD8vZywiKiIpLGVbNF09ZVs0XS5yZXBsYWNlKC9cPy9nLCIqIiksZVs1XT1lWzVdLnJlcGxhY2UoL1w/L2csIioiKSxlWzZdJiYoZVs2XT1lWzZdLnJlcGxhY2UoL1w/L2csIioiKSkpLHRoaXMubW9kZSl7Y2FzZSI1LXBhcnQiOmVbMF09IjAiLGVbNl09IioiO2JyZWFrO2Nhc2UiNi1wYXJ0IjplWzZdPSIqIjticmVhaztjYXNlIjUtb3ItNi1wYXJ0cyI6ZVs2XT0iKiI7YnJlYWs7Y2FzZSI2LW9yLTctcGFydHMiOmJyZWFrO2Nhc2UiNy1wYXJ0IjpjYXNlImF1dG8iOmJyZWFrfXRoaXMudGhyb3dBdElsbGVnYWxDaGFyYWN0ZXJzKGUpLHRoaXMucGFydFRvQXJyYXkoInNlY29uZCIsZVswXSwwLDEpLHRoaXMucGFydFRvQXJyYXkoIm1pbnV0ZSIsZVsxXSwwLDEpLHRoaXMucGFydFRvQXJyYXkoImhvdXIiLGVbMl0sMCwxKSx0aGlzLnBhcnRUb0FycmF5KCJkYXkiLGVbM10sLTEsMSksdGhpcy5wYXJ0VG9BcnJheSgibW9udGgiLGVbNF0sLTEsMSk7bGV0IHI9dGhpcy5hbHRlcm5hdGl2ZVdlZWtkYXlzPy0xOjA7dGhpcy5wYXJ0VG9BcnJheSgiZGF5T2ZXZWVrIixlWzVdLHIsNjMpLHRoaXMucGFydFRvQXJyYXkoInllYXIiLGVbNl0sMCwxKSwhdGhpcy5hbHRlcm5hdGl2ZVdlZWtkYXlzJiZ0aGlzLmRheU9mV2Vla1s3XSYmKHRoaXMuZGF5T2ZXZWVrWzBdPXRoaXMuZGF5T2ZXZWVrWzddKX1wYXJ0VG9BcnJheShlLHQscixpKXtsZXQgYT10aGlzW2VdLG49ZT09PSJkYXkiJiZ0aGlzLmxhc3REYXlPZk1vbnRoLG89ZT09PSJkYXkiJiZ0aGlzLmxhc3RXZWVrZGF5O2lmKHQ9PT0iIiYmIW4mJiFvKXRocm93IG5ldyBUeXBlRXJyb3IoIkNyb25QYXR0ZXJuOiBjb25maWd1cmF0aW9uIGVudHJ5ICIrZSsiICgiK3QrIikgaXMgZW1wdHksIGNoZWNrIGZvciB0cmFpbGluZyBzcGFjZXMuIik7aWYodD09PSIqIilyZXR1cm4gYS5maWxsKGkpO2xldCBzPXQuc3BsaXQoIiwiKTtpZihzLmxlbmd0aD4xKWZvcihsZXQgbD0wO2w8cy5sZW5ndGg7bCsrKXRoaXMucGFydFRvQXJyYXkoZSxzW2xdLHIsaSk7ZWxzZSB0LmluZGV4T2YoIi0iKSE9PS0xJiZ0LmluZGV4T2YoIi8iKSE9PS0xP3RoaXMuaGFuZGxlUmFuZ2VXaXRoU3RlcHBpbmcodCxlLHIsaSk6dC5pbmRleE9mKCItIikhPT0tMT90aGlzLmhhbmRsZVJhbmdlKHQsZSxyLGkpOnQuaW5kZXhPZigiLyIpIT09LTE/dGhpcy5oYW5kbGVTdGVwcGluZyh0LGUscixpKTp0IT09IiImJnRoaXMuaGFuZGxlTnVtYmVyKHQsZSxyLGkpfXRocm93QXRJbGxlZ2FsQ2hhcmFjdGVycyhlKXtmb3IobGV0IHQ9MDt0PGUubGVuZ3RoO3QrKylpZigodD09PTM/L1teLyowLTksXC1Xd0xsXSsvOnQ9PT01Py9bXi8qMC05LFwtI0xsXSsvOi9bXi8qMC05LFwtXSsvKS50ZXN0KGVbdF0pKXRocm93IG5ldyBUeXBlRXJyb3IoIkNyb25QYXR0ZXJuOiBjb25maWd1cmF0aW9uIGVudHJ5ICIrdCsiICgiK2VbdF0rIikgY29udGFpbnMgaWxsZWdhbCBjaGFyYWN0ZXJzLiIpfWhhbmRsZU51bWJlcihlLHQscixpKXtsZXQgYT10aGlzLmV4dHJhY3ROdGgoZSx0KSxuPWUudG9VcHBlckNhc2UoKS5pbmNsdWRlcygiVyIpO2lmKHQhPT0iZGF5IiYmbil0aHJvdyBuZXcgVHlwZUVycm9yKCJDcm9uUGF0dGVybjogTmVhcmVzdCB3ZWVrZGF5IG1vZGlmaWVyIChXKSBvbmx5IGFsbG93ZWQgaW4gZGF5LW9mLW1vbnRoLiIpO24mJih0PSJuZWFyZXN0V2Vla2RheXMiKTtsZXQgbz1wYXJzZUludChhWzBdLDEwKStyO2lmKGlzTmFOKG8pKXRocm93IG5ldyBUeXBlRXJyb3IoIkNyb25QYXR0ZXJuOiAiK3QrIiBpcyBub3QgYSBudW1iZXI6ICciK2UrIiciKTt0aGlzLnNldFBhcnQodCxvLGFbMV18fGkpfXNldFBhcnQoZSx0LHIpe2lmKCFPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwodGhpcyxlKSl0aHJvdyBuZXcgVHlwZUVycm9yKCJDcm9uUGF0dGVybjogSW52YWxpZCBwYXJ0IHNwZWNpZmllZDogIitlKTtpZihlPT09ImRheU9mV2VlayIpe2lmKHQ9PT03JiYodD0wKSx0PDB8fHQ+Nil0aHJvdyBuZXcgUmFuZ2VFcnJvcigiQ3JvblBhdHRlcm46IEludmFsaWQgdmFsdWUgZm9yIGRheU9mV2VlazogIit0KTt0aGlzLnNldE50aFdlZWtkYXlPZk1vbnRoKHQscik7cmV0dXJufWlmKGU9PT0ic2Vjb25kInx8ZT09PSJtaW51dGUiKXtpZih0PDB8fHQ+PTYwKXRocm93IG5ldyBSYW5nZUVycm9yKCJDcm9uUGF0dGVybjogSW52YWxpZCB2YWx1ZSBmb3IgIitlKyI6ICIrdCl9ZWxzZSBpZihlPT09ImhvdXIiKXtpZih0PDB8fHQ+PTI0KXRocm93IG5ldyBSYW5nZUVycm9yKCJDcm9uUGF0dGVybjogSW52YWxpZCB2YWx1ZSBmb3IgIitlKyI6ICIrdCl9ZWxzZSBpZihlPT09ImRheSJ8fGU9PT0ibmVhcmVzdFdlZWtkYXlzIil7aWYodDwwfHx0Pj0zMSl0aHJvdyBuZXcgUmFuZ2VFcnJvcigiQ3JvblBhdHRlcm46IEludmFsaWQgdmFsdWUgZm9yICIrZSsiOiAiK3QpfWVsc2UgaWYoZT09PSJtb250aCIpe2lmKHQ8MHx8dD49MTIpdGhyb3cgbmV3IFJhbmdlRXJyb3IoIkNyb25QYXR0ZXJuOiBJbnZhbGlkIHZhbHVlIGZvciAiK2UrIjogIit0KX1lbHNlIGlmKGU9PT0ieWVhciImJih0PDF8fHQ+PTFlNCkpdGhyb3cgbmV3IFJhbmdlRXJyb3IoIkNyb25QYXR0ZXJuOiBJbnZhbGlkIHZhbHVlIGZvciAiK2UrIjogIit0KyIgKHN1cHBvcnRlZCByYW5nZTogMS05OTk5KSIpO3RoaXNbZV1bdF09cn12YWxpZGF0ZU5vdE5hTihlLHQpe2lmKGlzTmFOKGUpKXRocm93IG5ldyBUeXBlRXJyb3IodCl9dmFsaWRhdGVSYW5nZShlLHQscixpLGEpe2lmKGU+dCl0aHJvdyBuZXcgVHlwZUVycm9yKCJDcm9uUGF0dGVybjogRnJvbSB2YWx1ZSBpcyBsYXJnZXIgdGhhbiB0byB2YWx1ZTogJyIrYSsiJyIpO2lmKHIhPT12b2lkIDApe2lmKHI9PT0wKXRocm93IG5ldyBUeXBlRXJyb3IoIkNyb25QYXR0ZXJuOiBTeW50YXggZXJyb3IsIGlsbGVnYWwgc3RlcHBpbmc6IDAiKTtpZihyPnRoaXNbaV0ubGVuZ3RoKXRocm93IG5ldyBUeXBlRXJyb3IoIkNyb25QYXR0ZXJuOiBTeW50YXggZXJyb3IsIHN0ZXBzIGNhbm5vdCBiZSBncmVhdGVyIHRoYW4gbWF4aW11bSB2YWx1ZSBvZiBwYXJ0ICgiK3RoaXNbaV0ubGVuZ3RoKyIpIil9fWhhbmRsZVJhbmdlV2l0aFN0ZXBwaW5nKGUsdCxyLGkpe2lmKGUudG9VcHBlckNhc2UoKS5pbmNsdWRlcygiVyIpKXRocm93IG5ldyBUeXBlRXJyb3IoIkNyb25QYXR0ZXJuOiBTeW50YXggZXJyb3IsIFcgaXMgbm90IGFsbG93ZWQgaW4gcmFuZ2VzIHdpdGggc3RlcHBpbmcuIik7bGV0IGE9dGhpcy5leHRyYWN0TnRoKGUsdCksbj1hWzBdLm1hdGNoKC9eKFxkKyktKFxkKylcLyhcZCspJC8pO2lmKG49PT1udWxsKXRocm93IG5ldyBUeXBlRXJyb3IoIkNyb25QYXR0ZXJuOiBTeW50YXggZXJyb3IsIGlsbGVnYWwgcmFuZ2Ugd2l0aCBzdGVwcGluZzogJyIrZSsiJyIpO2xldFssbyxzLGxdPW4sYz1wYXJzZUludChvLDEwKStyLHU9cGFyc2VJbnQocywxMCkrcixkPXBhcnNlSW50KGwsMTApO3RoaXMudmFsaWRhdGVOb3ROYU4oYywiQ3JvblBhdHRlcm46IFN5bnRheCBlcnJvciwgaWxsZWdhbCBsb3dlciByYW5nZSAoTmFOKSIpLHRoaXMudmFsaWRhdGVOb3ROYU4odSwiQ3JvblBhdHRlcm46IFN5bnRheCBlcnJvciwgaWxsZWdhbCB1cHBlciByYW5nZSAoTmFOKSIpLHRoaXMudmFsaWRhdGVOb3ROYU4oZCwiQ3JvblBhdHRlcm46IFN5bnRheCBlcnJvciwgaWxsZWdhbCBzdGVwcGluZzogKE5hTikiKSx0aGlzLnZhbGlkYXRlUmFuZ2UoYyx1LGQsdCxlKTtmb3IobGV0IGg9YztoPD11O2grPWQpdGhpcy5zZXRQYXJ0KHQsaCxhWzFdfHxpKX1leHRyYWN0TnRoKGUsdCl7bGV0IHI9ZSxpO2lmKHIuaW5jbHVkZXMoIiMiKSl7aWYodCE9PSJkYXlPZldlZWsiKXRocm93IG5ldyBFcnJvcigiQ3JvblBhdHRlcm46IG50aCAoIykgb25seSBhbGxvd2VkIGluIGRheS1vZi13ZWVrIGZpZWxkIik7aT1yLnNwbGl0KCIjIilbMV0scj1yLnNwbGl0KCIjIilbMF19ZWxzZSBpZihyLnRvVXBwZXJDYXNlKCkuZW5kc1dpdGgoIkwiKSl7aWYodCE9PSJkYXlPZldlZWsiKXRocm93IG5ldyBFcnJvcigiQ3JvblBhdHRlcm46IEwgbW9kaWZpZXIgb25seSBhbGxvd2VkIGluIGRheS1vZi13ZWVrIGZpZWxkICh1c2UgTCBhbG9uZSBmb3IgZGF5LW9mLW1vbnRoKSIpO2k9IkwiLHI9ci5zbGljZSgwLC0xKX1yZXR1cm5bcixpXX1oYW5kbGVSYW5nZShlLHQscixpKXtpZihlLnRvVXBwZXJDYXNlKCkuaW5jbHVkZXMoIlciKSl0aHJvdyBuZXcgVHlwZUVycm9yKCJDcm9uUGF0dGVybjogU3ludGF4IGVycm9yLCBXIGlzIG5vdCBhbGxvd2VkIGluIGEgcmFuZ2UuIik7bGV0IGE9dGhpcy5leHRyYWN0TnRoKGUsdCksbj1hWzBdLnNwbGl0KCItIik7aWYobi5sZW5ndGghPT0yKXRocm93IG5ldyBUeXBlRXJyb3IoIkNyb25QYXR0ZXJuOiBTeW50YXggZXJyb3IsIGlsbGVnYWwgcmFuZ2U6ICciK2UrIiciKTtsZXQgbz1wYXJzZUludChuWzBdLDEwKStyLHM9cGFyc2VJbnQoblsxXSwxMCkrcjt0aGlzLnZhbGlkYXRlTm90TmFOKG8sIkNyb25QYXR0ZXJuOiBTeW50YXggZXJyb3IsIGlsbGVnYWwgbG93ZXIgcmFuZ2UgKE5hTikiKSx0aGlzLnZhbGlkYXRlTm90TmFOKHMsIkNyb25QYXR0ZXJuOiBTeW50YXggZXJyb3IsIGlsbGVnYWwgdXBwZXIgcmFuZ2UgKE5hTikiKSx0aGlzLnZhbGlkYXRlUmFuZ2UobyxzLHZvaWQgMCx0LGUpO2ZvcihsZXQgbD1vO2w8PXM7bCsrKXRoaXMuc2V0UGFydCh0LGwsYVsxXXx8aSl9aGFuZGxlU3RlcHBpbmcoZSx0LHIsaSl7aWYoZS50b1VwcGVyQ2FzZSgpLmluY2x1ZGVzKCJXIikpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ3JvblBhdHRlcm46IFN5bnRheCBlcnJvciwgVyBpcyBub3QgYWxsb3dlZCBpbiBwYXJ0cyB3aXRoIHN0ZXBwaW5nLiIpO2xldCBhPXRoaXMuZXh0cmFjdE50aChlLHQpLG49YVswXS5zcGxpdCgiLyIpO2lmKG4ubGVuZ3RoIT09Mil0aHJvdyBuZXcgVHlwZUVycm9yKCJDcm9uUGF0dGVybjogU3ludGF4IGVycm9yLCBpbGxlZ2FsIHN0ZXBwaW5nOiAnIitlKyInIik7aWYodGhpcy5zbG9wcHlSYW5nZXMpblswXT09PSIiJiYoblswXT0iKiIpO2Vsc2V7aWYoblswXT09PSIiKXRocm93IG5ldyBUeXBlRXJyb3IoIkNyb25QYXR0ZXJuOiBTeW50YXggZXJyb3IsIHN0ZXBwaW5nIHdpdGggbWlzc2luZyBwcmVmaXggKCciK2UrIicpIGlzIG5vdCBhbGxvd2VkLiBVc2Ugd2lsZGNhcmQgKCovc3RlcCkgb3IgcmFuZ2UgKG1pbi1tYXgvc3RlcCkgaW5zdGVhZC4iKTtpZihuWzBdIT09IioiKXRocm93IG5ldyBUeXBlRXJyb3IoIkNyb25QYXR0ZXJuOiBTeW50YXggZXJyb3IsIHN0ZXBwaW5nIHdpdGggbnVtZXJpYyBwcmVmaXggKCciK2UrIicpIGlzIG5vdCBhbGxvd2VkLiBVc2Ugd2lsZGNhcmQgKCovc3RlcCkgb3IgcmFuZ2UgKG1pbi1tYXgvc3RlcCkgaW5zdGVhZC4iKX1sZXQgbz0wO25bMF0hPT0iKiImJihvPXBhcnNlSW50KG5bMF0sMTApK3IpO2xldCBzPXBhcnNlSW50KG5bMV0sMTApO3RoaXMudmFsaWRhdGVOb3ROYU4ocywiQ3JvblBhdHRlcm46IFN5bnRheCBlcnJvciwgaWxsZWdhbCBzdGVwcGluZzogKE5hTikiKSx0aGlzLnZhbGlkYXRlUmFuZ2UoMCx0aGlzW3RdLmxlbmd0aC0xLHMsdCxlKTtmb3IobGV0IGw9bztsPHRoaXNbdF0ubGVuZ3RoO2wrPXMpdGhpcy5zZXRQYXJ0KHQsbCxhWzFdfHxpKX1yZXBsYWNlQWxwaGFEYXlzKGUpe3JldHVybiBlLnJlcGxhY2UoLy1zdW4vZ2ksIi03IikucmVwbGFjZSgvc3VuL2dpLCIwIikucmVwbGFjZSgvbW9uL2dpLCIxIikucmVwbGFjZSgvdHVlL2dpLCIyIikucmVwbGFjZSgvd2VkL2dpLCIzIikucmVwbGFjZSgvdGh1L2dpLCI0IikucmVwbGFjZSgvZnJpL2dpLCI1IikucmVwbGFjZSgvc2F0L2dpLCI2Iil9cmVwbGFjZUFscGhhRGF5c1F1YXJ0eihlKXtyZXR1cm4gZS5yZXBsYWNlKC9zdW4vZ2ksIjEiKS5yZXBsYWNlKC9tb24vZ2ksIjIiKS5yZXBsYWNlKC90dWUvZ2ksIjMiKS5yZXBsYWNlKC93ZWQvZ2ksIjQiKS5yZXBsYWNlKC90aHUvZ2ksIjUiKS5yZXBsYWNlKC9mcmkvZ2ksIjYiKS5yZXBsYWNlKC9zYXQvZ2ksIjciKX1yZXBsYWNlQWxwaGFNb250aHMoZSl7cmV0dXJuIGUucmVwbGFjZSgvamFuL2dpLCIxIikucmVwbGFjZSgvZmViL2dpLCIyIikucmVwbGFjZSgvbWFyL2dpLCIzIikucmVwbGFjZSgvYXByL2dpLCI0IikucmVwbGFjZSgvbWF5L2dpLCI1IikucmVwbGFjZSgvanVuL2dpLCI2IikucmVwbGFjZSgvanVsL2dpLCI3IikucmVwbGFjZSgvYXVnL2dpLCI4IikucmVwbGFjZSgvc2VwL2dpLCI5IikucmVwbGFjZSgvb2N0L2dpLCIxMCIpLnJlcGxhY2UoL25vdi9naSwiMTEiKS5yZXBsYWNlKC9kZWMvZ2ksIjEyIil9aGFuZGxlTmlja25hbWVzKGUpe2xldCB0PWUudHJpbSgpLnRvTG93ZXJDYXNlKCk7aWYodD09PSJAeWVhcmx5Inx8dD09PSJAYW5udWFsbHkiKXJldHVybiIwIDAgMSAxICoiO2lmKHQ9PT0iQG1vbnRobHkiKXJldHVybiIwIDAgMSAqICoiO2lmKHQ9PT0iQHdlZWtseSIpcmV0dXJuIjAgMCAqICogMCI7aWYodD09PSJAZGFpbHkifHx0PT09IkBtaWRuaWdodCIpcmV0dXJuIjAgMCAqICogKiI7aWYodD09PSJAaG91cmx5IilyZXR1cm4iMCAqICogKiAqIjtpZih0PT09IkByZWJvb3QiKXRocm93IG5ldyBUeXBlRXJyb3IoIkNyb25QYXR0ZXJuOiBAcmVib290IGlzIG5vdCBzdXBwb3J0ZWQgaW4gdGhpcyBlbnZpcm9ubWVudC4gVGhpcyBpcyBhbiBldmVudC1iYXNlZCB0cmlnZ2VyIHRoYXQgcmVxdWlyZXMgc3lzdGVtIHN0YXJ0dXAgZGV0ZWN0aW9uLiIpO3JldHVybiBlfXNldE50aFdlZWtkYXlPZk1vbnRoKGUsdCl7aWYodHlwZW9mIHQhPSJudW1iZXIiJiZ0LnRvVXBwZXJDYXNlKCk9PT0iTCIpdGhpcy5kYXlPZldlZWtbZV09dGhpcy5kYXlPZldlZWtbZV18MzI7ZWxzZSBpZih0PT09NjMpdGhpcy5kYXlPZldlZWtbZV09NjM7ZWxzZSBpZih0PDYmJnQ+MCl0aGlzLmRheU9mV2Vla1tlXT10aGlzLmRheU9mV2Vla1tlXXxmcGVbdC0xXTtlbHNlIHRocm93IG5ldyBUeXBlRXJyb3IoYENyb25QYXR0ZXJuOiBudGggd2Vla2RheSBvdXQgb2YgcmFuZ2UsIHNob3VsZCBiZSAxLTUgb3IgTC4gVmFsdWU6ICR7dH0sIFR5cGU6ICR7dHlwZW9mIHR9YCl9fSxGQj1bMzEsMjgsMzEsMzAsMzEsMzAsMzEsMzEsMzAsMzEsMzAsMzFdLHMxPVtbIm1vbnRoIiwieWVhciIsMF0sWyJkYXkiLCJtb250aCIsLTFdLFsiaG91ciIsImRheSIsMF0sWyJtaW51dGUiLCJob3VyIiwwXSxbInNlY29uZCIsIm1pbnV0ZSIsMF1dLHNpPWNsYXNzIGdwZXt0ejttcztzZWNvbmQ7bWludXRlO2hvdXI7ZGF5O21vbnRoO3llYXI7Y29uc3RydWN0b3IodCxyKXtpZih0aGlzLnR6PXIsdCYmdCBpbnN0YW5jZW9mIERhdGUpaWYoIWlzTmFOKHQpKXRoaXMuZnJvbURhdGUodCk7ZWxzZSB0aHJvdyBuZXcgVHlwZUVycm9yKCJDcm9uRGF0ZTogSW52YWxpZCBkYXRlIHBhc3NlZCB0byBDcm9uRGF0ZSBjb25zdHJ1Y3RvciIpO2Vsc2UgaWYodD09bnVsbCl0aGlzLmZyb21EYXRlKG5ldyBEYXRlKTtlbHNlIGlmKHQmJnR5cGVvZiB0PT0ic3RyaW5nIil0aGlzLmZyb21TdHJpbmcodCk7ZWxzZSBpZih0IGluc3RhbmNlb2YgZ3BlKXRoaXMuZnJvbUNyb25EYXRlKHQpO2Vsc2UgdGhyb3cgbmV3IFR5cGVFcnJvcigiQ3JvbkRhdGU6IEludmFsaWQgdHlwZSAoIit0eXBlb2YgdCsiKSBwYXNzZWQgdG8gQ3JvbkRhdGUgY29uc3RydWN0b3IiKX1nZXRMYXN0RGF5T2ZNb250aCh0LHIpe3JldHVybiByIT09MT9GQltyXTpuZXcgRGF0ZShEYXRlLlVUQyh0LHIrMSwwKSkuZ2V0VVRDRGF0ZSgpfWdldExhc3RXZWVrZGF5KHQscil7bGV0IGk9dGhpcy5nZXRMYXN0RGF5T2ZNb250aCh0LHIpLGE9bmV3IERhdGUoRGF0ZS5VVEModCxyLGkpKS5nZXRVVENEYXkoKTtyZXR1cm4gYT09PTA/aS0yOmE9PT02P2ktMTppfWdldE5lYXJlc3RXZWVrZGF5KHQscixpKXtsZXQgYT10aGlzLmdldExhc3REYXlPZk1vbnRoKHQscik7aWYoaT5hKXJldHVybi0xO2xldCBuPW5ldyBEYXRlKERhdGUuVVRDKHQscixpKSkuZ2V0VVRDRGF5KCk7cmV0dXJuIG49PT0wP2k9PT1hP2ktMjppKzE6bj09PTY/aT09PTE/aSsyOmktMTppfWlzTnRoV2Vla2RheU9mTW9udGgodCxyLGksYSl7bGV0IG49bmV3IERhdGUoRGF0ZS5VVEModCxyLGkpKS5nZXRVVENEYXkoKSxvPTA7Zm9yKGxldCBzPTE7czw9aTtzKyspbmV3IERhdGUoRGF0ZS5VVEModCxyLHMpKS5nZXRVVENEYXkoKT09PW4mJm8rKztpZihhJjYzJiZmcGVbby0xXSZhKXJldHVybiEwO2lmKGEmMzIpe2xldCBzPXRoaXMuZ2V0TGFzdERheU9mTW9udGgodCxyKTtmb3IobGV0IGw9aSsxO2w8PXM7bCsrKWlmKG5ldyBEYXRlKERhdGUuVVRDKHQscixsKSkuZ2V0VVRDRGF5KCk9PT1uKXJldHVybiExO3JldHVybiEwfXJldHVybiExfWZyb21EYXRlKHQpe2lmKHRoaXMudHohPT12b2lkIDApaWYodHlwZW9mIHRoaXMudHo9PSJudW1iZXIiKXRoaXMubXM9dC5nZXRVVENNaWxsaXNlY29uZHMoKSx0aGlzLnNlY29uZD10LmdldFVUQ1NlY29uZHMoKSx0aGlzLm1pbnV0ZT10LmdldFVUQ01pbnV0ZXMoKSt0aGlzLnR6LHRoaXMuaG91cj10LmdldFVUQ0hvdXJzKCksdGhpcy5kYXk9dC5nZXRVVENEYXRlKCksdGhpcy5tb250aD10LmdldFVUQ01vbnRoKCksdGhpcy55ZWFyPXQuZ2V0VVRDRnVsbFllYXIoKSx0aGlzLmFwcGx5KCk7ZWxzZSB0cnl7bGV0IHI9cmYodCx0aGlzLnR6KTt0aGlzLm1zPXQuZ2V0TWlsbGlzZWNvbmRzKCksdGhpcy5zZWNvbmQ9ci5zLHRoaXMubWludXRlPXIuaSx0aGlzLmhvdXI9ci5oLHRoaXMuZGF5PXIuZCx0aGlzLm1vbnRoPXIubS0xLHRoaXMueWVhcj1yLnl9Y2F0Y2gocil7bGV0IGk9ciBpbnN0YW5jZW9mIEVycm9yP3IubWVzc2FnZTpTdHJpbmcocik7dGhyb3cgbmV3IFR5cGVFcnJvcihgQ3JvbkRhdGU6IEZhaWxlZCB0byBjb252ZXJ0IGRhdGUgdG8gdGltZXpvbmUgJyR7dGhpcy50en0nLiBUaGlzIG1heSBoYXBwZW4gd2l0aCBpbnZhbGlkIHRpbWV6b25lIG5hbWVzIG9yIGRhdGVzLiBPcmlnaW5hbCBlcnJvcjogJHtpfWApfWVsc2UgdGhpcy5tcz10LmdldE1pbGxpc2Vjb25kcygpLHRoaXMuc2Vjb25kPXQuZ2V0U2Vjb25kcygpLHRoaXMubWludXRlPXQuZ2V0TWludXRlcygpLHRoaXMuaG91cj10LmdldEhvdXJzKCksdGhpcy5kYXk9dC5nZXREYXRlKCksdGhpcy5tb250aD10LmdldE1vbnRoKCksdGhpcy55ZWFyPXQuZ2V0RnVsbFllYXIoKX1mcm9tQ3JvbkRhdGUodCl7dGhpcy50ej10LnR6LHRoaXMueWVhcj10LnllYXIsdGhpcy5tb250aD10Lm1vbnRoLHRoaXMuZGF5PXQuZGF5LHRoaXMuaG91cj10LmhvdXIsdGhpcy5taW51dGU9dC5taW51dGUsdGhpcy5zZWNvbmQ9dC5zZWNvbmQsdGhpcy5tcz10Lm1zfWFwcGx5KCl7aWYodGhpcy5tb250aD4xMXx8dGhpcy5tb250aDwwfHx0aGlzLmRheT5GQlt0aGlzLm1vbnRoXXx8dGhpcy5kYXk8MXx8dGhpcy5ob3VyPjU5fHx0aGlzLm1pbnV0ZT41OXx8dGhpcy5zZWNvbmQ+NTl8fHRoaXMuaG91cjwwfHx0aGlzLm1pbnV0ZTwwfHx0aGlzLnNlY29uZDwwKXtsZXQgdD1uZXcgRGF0ZShEYXRlLlVUQyh0aGlzLnllYXIsdGhpcy5tb250aCx0aGlzLmRheSx0aGlzLmhvdXIsdGhpcy5taW51dGUsdGhpcy5zZWNvbmQsdGhpcy5tcykpO3JldHVybiB0aGlzLm1zPXQuZ2V0VVRDTWlsbGlzZWNvbmRzKCksdGhpcy5zZWNvbmQ9dC5nZXRVVENTZWNvbmRzKCksdGhpcy5taW51dGU9dC5nZXRVVENNaW51dGVzKCksdGhpcy5ob3VyPXQuZ2V0VVRDSG91cnMoKSx0aGlzLmRheT10LmdldFVUQ0RhdGUoKSx0aGlzLm1vbnRoPXQuZ2V0VVRDTW9udGgoKSx0aGlzLnllYXI9dC5nZXRVVENGdWxsWWVhcigpLCEwfWVsc2UgcmV0dXJuITF9ZnJvbVN0cmluZyh0KXtpZih0eXBlb2YgdGhpcy50ej09Im51bWJlciIpe2xldCByPXBwZSh0KTt0aGlzLm1zPXIuZ2V0VVRDTWlsbGlzZWNvbmRzKCksdGhpcy5zZWNvbmQ9ci5nZXRVVENTZWNvbmRzKCksdGhpcy5taW51dGU9ci5nZXRVVENNaW51dGVzKCksdGhpcy5ob3VyPXIuZ2V0VVRDSG91cnMoKSx0aGlzLmRheT1yLmdldFVUQ0RhdGUoKSx0aGlzLm1vbnRoPXIuZ2V0VVRDTW9udGgoKSx0aGlzLnllYXI9ci5nZXRVVENGdWxsWWVhcigpLHRoaXMuYXBwbHkoKX1lbHNlIHJldHVybiB0aGlzLmZyb21EYXRlKHBwZSh0LHRoaXMudHopKX1maW5kTmV4dCh0LHIsaSxhKXtyZXR1cm4gdGhpcy5fZmluZE1hdGNoKHQscixpLGEsMSl9X2ZpbmRNYXRjaCh0LHIsaSxhLG4pe2xldCBvPXRoaXNbcl0scztpLmxhc3REYXlPZk1vbnRoJiYocz10aGlzLmdldExhc3REYXlPZk1vbnRoKHRoaXMueWVhcix0aGlzLm1vbnRoKSk7bGV0IGw9IWkuc3RhckRPVyYmcj09ImRheSI/bmV3IERhdGUoRGF0ZS5VVEModGhpcy55ZWFyLHRoaXMubW9udGgsMSwwLDAsMCwwKSkuZ2V0VVRDRGF5KCk6dm9pZCAwLGM9dGhpc1tyXSthLHU9bj09PTE/ZD0+ZDxpW3JdLmxlbmd0aDpkPT5kPj0wO2ZvcihsZXQgZD1jO3UoZCk7ZCs9bil7bGV0IGg9aVtyXVtkXTtpZihyPT09ImRheSImJiFoKXtmb3IobGV0IGY9MDtmPGkubmVhcmVzdFdlZWtkYXlzLmxlbmd0aDtmKyspaWYoaS5uZWFyZXN0V2Vla2RheXNbZl0pe2xldCB4PXRoaXMuZ2V0TmVhcmVzdFdlZWtkYXkodGhpcy55ZWFyLHRoaXMubW9udGgsZi1hKTtpZih4PT09LTEpY29udGludWU7aWYoeD09PWQtYSl7aD0xO2JyZWFrfX19aWYocj09PSJkYXkiJiZpLmxhc3RXZWVrZGF5KXtsZXQgZj10aGlzLmdldExhc3RXZWVrZGF5KHRoaXMueWVhcix0aGlzLm1vbnRoKTtkLWE9PT1mJiYoaD0xKX1pZihyPT09ImRheSImJmkubGFzdERheU9mTW9udGgmJmQtYT09cyYmKGg9MSkscj09PSJkYXkiJiYhaS5zdGFyRE9XKXtsZXQgZj1pLmRheU9mV2Vla1sobCsoZC1hLTEpKSU3XTtpZihmJiZmJjYzKWY9dGhpcy5pc050aFdlZWtkYXlPZk1vbnRoKHRoaXMueWVhcix0aGlzLm1vbnRoLGQtYSxmKT8xOjA7ZWxzZSBpZihmKXRocm93IG5ldyBFcnJvcihgQ3JvbkRhdGU6IEludmFsaWQgdmFsdWUgZm9yIGRheU9mV2VlayBlbmNvdW50ZXJlZC4gJHtmfWApO2kudXNlQW5kTG9naWM/aD1oJiZmOiF0LmRvbUFuZERvdyYmIWkuc3RhckRPTT9oPWh8fGY6aD1oJiZmfWlmKGgpcmV0dXJuIHRoaXNbcl09ZC1hLG8hPT10aGlzW3JdPzI6MX1yZXR1cm4gM31yZWN1cnNlKHQscixpKXtpZihpPT09MCYmIXQuc3RhclllYXIpe2lmKHRoaXMueWVhcj49MCYmdGhpcy55ZWFyPHQueWVhci5sZW5ndGgmJnQueWVhclt0aGlzLnllYXJdPT09MCl7bGV0IG49LTE7Zm9yKGxldCBvPXRoaXMueWVhcisxO288dC55ZWFyLmxlbmd0aCYmbzwxZTQ7bysrKWlmKHQueWVhcltvXT09PTEpe249bzticmVha31pZihuPT09LTEpcmV0dXJuIG51bGw7dGhpcy55ZWFyPW4sdGhpcy5tb250aD0wLHRoaXMuZGF5PTEsdGhpcy5ob3VyPTAsdGhpcy5taW51dGU9MCx0aGlzLnNlY29uZD0wLHRoaXMubXM9MH1pZih0aGlzLnllYXI+PTFlNClyZXR1cm4gbnVsbH1sZXQgYT10aGlzLmZpbmROZXh0KHIsczFbaV1bMF0sdCxzMVtpXVsyXSk7aWYoYT4xKXtsZXQgbj1pKzE7Zm9yKDtuPHMxLmxlbmd0aDspdGhpc1tzMVtuXVswXV09LXMxW25dWzJdLG4rKztpZihhPT09Myl7aWYodGhpc1tzMVtpXVsxXV0rKyx0aGlzW3MxW2ldWzBdXT0tczFbaV1bMl0sdGhpcy5hcHBseSgpLGk9PT0wJiYhdC5zdGFyWWVhcil7Zm9yKDt0aGlzLnllYXI+PTAmJnRoaXMueWVhcjx0LnllYXIubGVuZ3RoJiZ0LnllYXJbdGhpcy55ZWFyXT09PTAmJnRoaXMueWVhcjwxZTQ7KXRoaXMueWVhcisrO2lmKHRoaXMueWVhcj49MWU0fHx0aGlzLnllYXI+PXQueWVhci5sZW5ndGgpcmV0dXJuIG51bGx9cmV0dXJuIHRoaXMucmVjdXJzZSh0LHIsMCl9ZWxzZSBpZih0aGlzLmFwcGx5KCkpcmV0dXJuIHRoaXMucmVjdXJzZSh0LHIsaS0xKX1yZXR1cm4gaSs9MSxpPj1zMS5sZW5ndGg/dGhpczoodC5zdGFyWWVhcj90aGlzLnllYXI+PTNlMzp0aGlzLnllYXI+PTFlNCk/bnVsbDp0aGlzLnJlY3Vyc2UodCxyLGkpfWluY3JlbWVudCh0LHIsaSl7cmV0dXJuIHRoaXMuc2Vjb25kKz1yLmludGVydmFsIT09dm9pZCAwJiZyLmludGVydmFsPjEmJmk/ci5pbnRlcnZhbDoxLHRoaXMubXM9MCx0aGlzLmFwcGx5KCksdGhpcy5yZWN1cnNlKHQsciwwKX1kZWNyZW1lbnQodCxyKXtyZXR1cm4gdGhpcy5zZWNvbmQtPXIuaW50ZXJ2YWwhPT12b2lkIDAmJnIuaW50ZXJ2YWw+MT9yLmludGVydmFsOjEsdGhpcy5tcz0wLHRoaXMuYXBwbHkoKSx0aGlzLnJlY3Vyc2VCYWNrd2FyZCh0LHIsMCwwKX1yZWN1cnNlQmFja3dhcmQodCxyLGksYT0wKXtpZihhPjFlNClyZXR1cm4gbnVsbDtpZihpPT09MCYmIXQuc3RhclllYXIpe2lmKHRoaXMueWVhcj49MCYmdGhpcy55ZWFyPHQueWVhci5sZW5ndGgmJnQueWVhclt0aGlzLnllYXJdPT09MCl7bGV0IG89LTE7Zm9yKGxldCBzPXRoaXMueWVhci0xO3M+PTA7cy0tKWlmKHQueWVhcltzXT09PTEpe289czticmVha31pZihvPT09LTEpcmV0dXJuIG51bGw7dGhpcy55ZWFyPW8sdGhpcy5tb250aD0xMSx0aGlzLmRheT0zMSx0aGlzLmhvdXI9MjMsdGhpcy5taW51dGU9NTksdGhpcy5zZWNvbmQ9NTksdGhpcy5tcz0wfWlmKHRoaXMueWVhcjwwKXJldHVybiBudWxsfWxldCBuPXRoaXMuZmluZFByZXZpb3VzKHIsczFbaV1bMF0sdCxzMVtpXVsyXSk7aWYobj4xKXtsZXQgbz1pKzE7Zm9yKDtvPHMxLmxlbmd0aDspe2xldCBzPXMxW29dWzBdLGw9czFbb11bMl0sYz10aGlzLmdldE1heFBhdHRlcm5WYWx1ZShzLHQsbCk7dGhpc1tzXT1jLG8rK31pZihuPT09Myl7aWYodGhpc1tzMVtpXVsxXV0tLSxpPT09MCl7bGV0IHU9dGhpcy5nZXRMYXN0RGF5T2ZNb250aCh0aGlzLnllYXIsdGhpcy5tb250aCk7dGhpcy5kYXk+dSYmKHRoaXMuZGF5PXUpfWlmKGk9PT0xKWlmKHRoaXMuZGF5PD0wKXRoaXMuZGF5PTE7ZWxzZXtsZXQgdT10aGlzLnllYXIsZD10aGlzLm1vbnRoO2Zvcig7ZDwwOylkKz0xMix1LS07Zm9yKDtkPjExOylkLT0xMix1Kys7bGV0IGg9ZCE9PTE/RkJbZF06bmV3IERhdGUoRGF0ZS5VVEModSxkKzEsMCkpLmdldFVUQ0RhdGUoKTt0aGlzLmRheT5oJiYodGhpcy5kYXk9aCl9dGhpcy5hcHBseSgpO2xldCBzPXMxW2ldWzBdLGw9czFbaV1bMl0sYz10aGlzLmdldE1heFBhdHRlcm5WYWx1ZShzLHQsbCk7aWYocz09PSJkYXkiKXtsZXQgdT10aGlzLmdldExhc3REYXlPZk1vbnRoKHRoaXMueWVhcix0aGlzLm1vbnRoKTt0aGlzW3NdPU1hdGgubWluKGMsdSl9ZWxzZSB0aGlzW3NdPWM7aWYodGhpcy5hcHBseSgpLGk9PT0wKXtsZXQgdT1zMVsxXVsyXSxkPXRoaXMuZ2V0TWF4UGF0dGVyblZhbHVlKCJkYXkiLHQsdSksaD10aGlzLmdldExhc3REYXlPZk1vbnRoKHRoaXMueWVhcix0aGlzLm1vbnRoKSxmPU1hdGgubWluKGQsaCk7ZiE9PXRoaXMuZGF5JiYodGhpcy5kYXk9Zix0aGlzLmhvdXI9dGhpcy5nZXRNYXhQYXR0ZXJuVmFsdWUoImhvdXIiLHQsczFbMl1bMl0pLHRoaXMubWludXRlPXRoaXMuZ2V0TWF4UGF0dGVyblZhbHVlKCJtaW51dGUiLHQsczFbM11bMl0pLHRoaXMuc2Vjb25kPXRoaXMuZ2V0TWF4UGF0dGVyblZhbHVlKCJzZWNvbmQiLHQsczFbNF1bMl0pKX1pZihpPT09MCYmIXQuc3RhclllYXIpe2Zvcig7dGhpcy55ZWFyPj0wJiZ0aGlzLnllYXI8dC55ZWFyLmxlbmd0aCYmdC55ZWFyW3RoaXMueWVhcl09PT0wOyl0aGlzLnllYXItLTtpZih0aGlzLnllYXI8MClyZXR1cm4gbnVsbH1yZXR1cm4gdGhpcy5yZWN1cnNlQmFja3dhcmQodCxyLDAsYSsxKX1lbHNlIGlmKHRoaXMuYXBwbHkoKSlyZXR1cm4gdGhpcy5yZWN1cnNlQmFja3dhcmQodCxyLGktMSxhKzEpfXJldHVybiBpKz0xLGk+PXMxLmxlbmd0aD90aGlzOnRoaXMueWVhcjwwP251bGw6dGhpcy5yZWN1cnNlQmFja3dhcmQodCxyLGksYSsxKX1nZXRNYXhQYXR0ZXJuVmFsdWUodCxyLGkpe2lmKHQ9PT0iZGF5IiYmci5sYXN0RGF5T2ZNb250aClyZXR1cm4gdGhpcy5nZXRMYXN0RGF5T2ZNb250aCh0aGlzLnllYXIsdGhpcy5tb250aCk7aWYodD09PSJkYXkiJiYhci5zdGFyRE9XKXJldHVybiB0aGlzLmdldExhc3REYXlPZk1vbnRoKHRoaXMueWVhcix0aGlzLm1vbnRoKTtmb3IobGV0IGE9clt0XS5sZW5ndGgtMTthPj0wO2EtLSlpZihyW3RdW2FdKXJldHVybiBhLWk7cmV0dXJuIHJbdF0ubGVuZ3RoLTEtaX1maW5kUHJldmlvdXModCxyLGksYSl7cmV0dXJuIHRoaXMuX2ZpbmRNYXRjaCh0LHIsaSxhLC0xKX1nZXREYXRlKHQpe3JldHVybiB0fHx0aGlzLnR6PT09dm9pZCAwP25ldyBEYXRlKHRoaXMueWVhcix0aGlzLm1vbnRoLHRoaXMuZGF5LHRoaXMuaG91cix0aGlzLm1pbnV0ZSx0aGlzLnNlY29uZCx0aGlzLm1zKTp0eXBlb2YgdGhpcy50ej09Im51bWJlciI/bmV3IERhdGUoRGF0ZS5VVEModGhpcy55ZWFyLHRoaXMubW9udGgsdGhpcy5kYXksdGhpcy5ob3VyLHRoaXMubWludXRlLXRoaXMudHosdGhpcy5zZWNvbmQsdGhpcy5tcykpOmhwZShOQih0aGlzLnllYXIsdGhpcy5tb250aCsxLHRoaXMuZGF5LHRoaXMuaG91cix0aGlzLm1pbnV0ZSx0aGlzLnNlY29uZCx0aGlzLnR6KSwhMSl9Z2V0VGltZSgpe3JldHVybiB0aGlzLmdldERhdGUoITEpLmdldFRpbWUoKX1tYXRjaCh0LHIpe2lmKCF0LnN0YXJZZWFyJiYodGhpcy55ZWFyPDB8fHRoaXMueWVhcj49dC55ZWFyLmxlbmd0aHx8dC55ZWFyW3RoaXMueWVhcl09PT0wKSlyZXR1cm4hMTtmb3IobGV0IGk9MDtpPHMxLmxlbmd0aDtpKyspe2xldCBhPXMxW2ldWzBdLG49czFbaV1bMl0sbz10aGlzW2FdO2lmKG8rbjwwfHxvK24+PXRbYV0ubGVuZ3RoKXJldHVybiExO2xldCBzPXRbYV1bbytuXTtpZihhPT09ImRheSIpe2lmKCFzKXtmb3IobGV0IGw9MDtsPHQubmVhcmVzdFdlZWtkYXlzLmxlbmd0aDtsKyspaWYodC5uZWFyZXN0V2Vla2RheXNbbF0pe2xldCBjPXRoaXMuZ2V0TmVhcmVzdFdlZWtkYXkodGhpcy55ZWFyLHRoaXMubW9udGgsbC1uKTtpZihjIT09LTEmJmM9PT1vKXtzPTE7YnJlYWt9fX1pZih0Lmxhc3RXZWVrZGF5KXtsZXQgbD10aGlzLmdldExhc3RXZWVrZGF5KHRoaXMueWVhcix0aGlzLm1vbnRoKTtvPT09bCYmKHM9MSl9aWYodC5sYXN0RGF5T2ZNb250aCl7bGV0IGw9dGhpcy5nZXRMYXN0RGF5T2ZNb250aCh0aGlzLnllYXIsdGhpcy5tb250aCk7bz09PWwmJihzPTEpfWlmKCF0LnN0YXJET1cpe2xldCBsPW5ldyBEYXRlKERhdGUuVVRDKHRoaXMueWVhcix0aGlzLm1vbnRoLDEsMCwwLDAsMCkpLmdldFVUQ0RheSgpLGM9dC5kYXlPZldlZWtbKGwrKG8tMSkpJTddO2MmJmMmNjMmJihjPXRoaXMuaXNOdGhXZWVrZGF5T2ZNb250aCh0aGlzLnllYXIsdGhpcy5tb250aCxvLGMpPzE6MCksdC51c2VBbmRMb2dpYz9zPXMmJmM6IXIuZG9tQW5kRG93JiYhdC5zdGFyRE9NP3M9c3x8YzpzPXMmJmN9fWlmKCFzKXJldHVybiExfXJldHVybiEwfX07bXBlPTMwKjFlMyx3NT1bXSxicGU9Y2xhc3N7bmFtZTtvcHRpb25zO19zdGF0ZXM7Zm47Z2V0VHooKXtyZXR1cm4gdGhpcy5vcHRpb25zLnRpbWV6b25lfHx0aGlzLm9wdGlvbnMudXRjT2Zmc2V0fWFwcGx5RGF5T2Zmc2V0KGUpe2lmKHRoaXMub3B0aW9ucy5kYXlPZmZzZXQhPT12b2lkIDAmJnRoaXMub3B0aW9ucy5kYXlPZmZzZXQhPT0wKXtsZXQgdD10aGlzLm9wdGlvbnMuZGF5T2Zmc2V0KjI0KjYwKjYwKjFlMztyZXR1cm4gbmV3IERhdGUoZS5nZXRUaW1lKCkrdCl9cmV0dXJuIGV9Y29uc3RydWN0b3IoZSx0LHIpe2xldCBpLGE7aWYoYWYodCkpYT10O2Vsc2UgaWYodHlwZW9mIHQ9PSJvYmplY3QiKWk9dDtlbHNlIGlmKHQhPT12b2lkIDApdGhyb3cgbmV3IEVycm9yKCJDcm9uOiBJbnZhbGlkIGFyZ3VtZW50IHBhc3NlZCBmb3Igb3B0aW9uc0luLiBTaG91bGQgYmUgb25lIG9mIGZ1bmN0aW9uLCBvciBvYmplY3QgKG9wdGlvbnMpLiIpO2lmKGFmKHIpKWE9cjtlbHNlIGlmKHR5cGVvZiByPT0ib2JqZWN0IilpPXI7ZWxzZSBpZihyIT09dm9pZCAwKXRocm93IG5ldyBFcnJvcigiQ3JvbjogSW52YWxpZCBhcmd1bWVudCBwYXNzZWQgZm9yIGZ1bmNJbi4gU2hvdWxkIGJlIG9uZSBvZiBmdW5jdGlvbiwgb3Igb2JqZWN0IChvcHRpb25zKS4iKTtpZih0aGlzLm5hbWU9aT8ubmFtZSx0aGlzLm9wdGlvbnM9dmZyKGkpLHRoaXMuX3N0YXRlcz17a2lsbDohMSxibG9ja2luZzohMSxwcmV2aW91c1J1bjp2b2lkIDAsY3VycmVudFJ1bjp2b2lkIDAsb25jZTp2b2lkIDAsY3VycmVudFRpbWVvdXQ6dm9pZCAwLG1heFJ1bnM6aT9pLm1heFJ1bnM6dm9pZCAwLHBhdXNlZDppP2kucGF1c2VkOiExLHBhdHRlcm46bmV3IGN4KCIqICogKiAqICoiLHZvaWQgMCx7bW9kZToiYXV0byJ9KX0sZSYmKGUgaW5zdGFuY2VvZiBEYXRlfHx0eXBlb2YgZT09InN0cmluZyImJmUuaW5kZXhPZigiOiIpPjApP3RoaXMuX3N0YXRlcy5vbmNlPW5ldyBzaShlLHRoaXMuZ2V0VHooKSk6dGhpcy5fc3RhdGVzLnBhdHRlcm49bmV3IGN4KGUsdGhpcy5vcHRpb25zLnRpbWV6b25lLHttb2RlOnRoaXMub3B0aW9ucy5tb2RlLGFsdGVybmF0aXZlV2Vla2RheXM6dGhpcy5vcHRpb25zLmFsdGVybmF0aXZlV2Vla2RheXMsc2xvcHB5UmFuZ2VzOnRoaXMub3B0aW9ucy5zbG9wcHlSYW5nZXN9KSx0aGlzLm5hbWUpe2lmKHc1LmZpbmQobj0+bi5uYW1lPT09dGhpcy5uYW1lKSl0aHJvdyBuZXcgRXJyb3IoIkNyb246IFRyaWVkIHRvIGluaXRpYWxpemUgbmV3IG5hbWVkIGpvYiAnIit0aGlzLm5hbWUrIicsIGJ1dCBuYW1lIGFscmVhZHkgdGFrZW4uIik7dzUucHVzaCh0aGlzKX1yZXR1cm4gYSE9PXZvaWQgMCYmeGZyKGEpJiYodGhpcy5mbj1hLHRoaXMuc2NoZWR1bGUoKSksdGhpc31uZXh0UnVuKGUpe2xldCB0PXRoaXMuX25leHQoZSk7cmV0dXJuIHQ/dGhpcy5hcHBseURheU9mZnNldCh0LmdldERhdGUoITEpKTpudWxsfW5leHRSdW5zKGUsdCl7dGhpcy5fc3RhdGVzLm1heFJ1bnMhPT12b2lkIDAmJmU+dGhpcy5fc3RhdGVzLm1heFJ1bnMmJihlPXRoaXMuX3N0YXRlcy5tYXhSdW5zKTtsZXQgcj10fHx0aGlzLl9zdGF0ZXMuY3VycmVudFJ1bnx8dm9pZCAwO3JldHVybiB0aGlzLl9lbnVtZXJhdGVSdW5zKGUsciwibmV4dCIpfXByZXZpb3VzUnVucyhlLHQpe3JldHVybiB0aGlzLl9lbnVtZXJhdGVSdW5zKGUsdHx8dm9pZCAwLCJwcmV2aW91cyIpfV9lbnVtZXJhdGVSdW5zKGUsdCxyKXtsZXQgaT1bXSxhPXQ/bmV3IHNpKHQsdGhpcy5nZXRUeigpKTpudWxsLG49cj09PSJuZXh0Ij90aGlzLl9uZXh0OnRoaXMuX3ByZXZpb3VzO2Zvcig7ZS0tOyl7bGV0IG89bi5jYWxsKHRoaXMsYSk7aWYoIW8pYnJlYWs7bGV0IHM9by5nZXREYXRlKCExKTtpLnB1c2godGhpcy5hcHBseURheU9mZnNldChzKSksYT1vfXJldHVybiBpfW1hdGNoKGUpe2lmKHRoaXMuX3N0YXRlcy5vbmNlKXtsZXQgcj1uZXcgc2koZSx0aGlzLmdldFR6KCkpO3IubXM9MDtsZXQgaT1uZXcgc2kodGhpcy5fc3RhdGVzLm9uY2UsdGhpcy5nZXRUeigpKTtyZXR1cm4gaS5tcz0wLHIuZ2V0VGltZSgpPT09aS5nZXRUaW1lKCl9bGV0IHQ9bmV3IHNpKGUsdGhpcy5nZXRUeigpKTtyZXR1cm4gdC5tcz0wLHQubWF0Y2godGhpcy5fc3RhdGVzLnBhdHRlcm4sdGhpcy5vcHRpb25zKX1nZXRQYXR0ZXJuKCl7aWYoIXRoaXMuX3N0YXRlcy5vbmNlKXJldHVybiB0aGlzLl9zdGF0ZXMucGF0dGVybj90aGlzLl9zdGF0ZXMucGF0dGVybi5wYXR0ZXJuOnZvaWQgMH1nZXRPbmNlKCl7cmV0dXJuIHRoaXMuX3N0YXRlcy5vbmNlP3RoaXMuX3N0YXRlcy5vbmNlLmdldERhdGUoKTpudWxsfWlzUnVubmluZygpe2xldCBlPXRoaXMubmV4dFJ1bih0aGlzLl9zdGF0ZXMuY3VycmVudFJ1biksdD0hdGhpcy5fc3RhdGVzLnBhdXNlZCxyPXRoaXMuZm4hPT12b2lkIDAsaT0hdGhpcy5fc3RhdGVzLmtpbGw7cmV0dXJuIHQmJnImJmkmJmUhPT1udWxsfWlzU3RvcHBlZCgpe3JldHVybiB0aGlzLl9zdGF0ZXMua2lsbH1pc0J1c3koKXtyZXR1cm4gdGhpcy5fc3RhdGVzLmJsb2NraW5nfWN1cnJlbnRSdW4oKXtyZXR1cm4gdGhpcy5fc3RhdGVzLmN1cnJlbnRSdW4/dGhpcy5fc3RhdGVzLmN1cnJlbnRSdW4uZ2V0RGF0ZSgpOm51bGx9cHJldmlvdXNSdW4oKXtyZXR1cm4gdGhpcy5fc3RhdGVzLnByZXZpb3VzUnVuP3RoaXMuX3N0YXRlcy5wcmV2aW91c1J1bi5nZXREYXRlKCk6bnVsbH1tc1RvTmV4dChlKXtsZXQgdD10aGlzLl9uZXh0KGUpO3JldHVybiB0P2UgaW5zdGFuY2VvZiBzaXx8ZSBpbnN0YW5jZW9mIERhdGU/dC5nZXRUaW1lKCktZS5nZXRUaW1lKCk6dC5nZXRUaW1lKCktbmV3IHNpKGUpLmdldFRpbWUoKTpudWxsfXN0b3AoKXt0aGlzLl9zdGF0ZXMua2lsbD0hMCx0aGlzLl9zdGF0ZXMuY3VycmVudFRpbWVvdXQmJmNsZWFyVGltZW91dCh0aGlzLl9zdGF0ZXMuY3VycmVudFRpbWVvdXQpO2xldCBlPXc1LmluZGV4T2YodGhpcyk7ZT49MCYmdzUuc3BsaWNlKGUsMSl9cGF1c2UoKXtyZXR1cm4gdGhpcy5fc3RhdGVzLnBhdXNlZD0hMCwhdGhpcy5fc3RhdGVzLmtpbGx9cmVzdW1lKCl7cmV0dXJuIHRoaXMuX3N0YXRlcy5wYXVzZWQ9ITEsIXRoaXMuX3N0YXRlcy5raWxsfXNjaGVkdWxlKGUpe2lmKGUmJnRoaXMuZm4pdGhyb3cgbmV3IEVycm9yKCJDcm9uOiBJdCBpcyBub3QgYWxsb3dlZCB0byBzY2hlZHVsZSB0d28gZnVuY3Rpb25zIHVzaW5nIHRoZSBzYW1lIENyb25lciBpbnN0YW5jZS4iKTtlJiYodGhpcy5mbj1lKTtsZXQgdD10aGlzLm1zVG9OZXh0KCkscj10aGlzLm5leHRSdW4odGhpcy5fc3RhdGVzLmN1cnJlbnRSdW4pO3JldHVybiB0PT1udWxsfHxpc05hTih0KXx8cj09PW51bGw/dGhpczoodD5tcGUmJih0PW1wZSksdGhpcy5fc3RhdGVzLmN1cnJlbnRUaW1lb3V0PXNldFRpbWVvdXQoKCk9PnRoaXMuX2NoZWNrVHJpZ2dlcihyKSx0KSx0aGlzLl9zdGF0ZXMuY3VycmVudFRpbWVvdXQmJnRoaXMub3B0aW9ucy51bnJlZiYmeWZyKHRoaXMuX3N0YXRlcy5jdXJyZW50VGltZW91dCksdGhpcyl9YXN5bmMgX3RyaWdnZXIoZSl7dGhpcy5fc3RhdGVzLmJsb2NraW5nPSEwLHRoaXMuX3N0YXRlcy5jdXJyZW50UnVuPW5ldyBzaSh2b2lkIDAsdGhpcy5nZXRUeigpKTt0cnl7aWYodGhpcy5vcHRpb25zLmNhdGNoKXRyeXt0aGlzLmZuIT09dm9pZCAwJiZhd2FpdCB0aGlzLmZuKHRoaXMsdGhpcy5vcHRpb25zLmNvbnRleHQpfWNhdGNoKHQpe2lmKGFmKHRoaXMub3B0aW9ucy5jYXRjaCkpdHJ5e3RoaXMub3B0aW9ucy5jYXRjaCh0LHRoaXMpfWNhdGNoe319ZWxzZSB0aGlzLmZuIT09dm9pZCAwJiZhd2FpdCB0aGlzLmZuKHRoaXMsdGhpcy5vcHRpb25zLmNvbnRleHQpfWZpbmFsbHl7dGhpcy5fc3RhdGVzLnByZXZpb3VzUnVuPW5ldyBzaShlLHRoaXMuZ2V0VHooKSksdGhpcy5fc3RhdGVzLmJsb2NraW5nPSExfX1hc3luYyB0cmlnZ2VyKCl7YXdhaXQgdGhpcy5fdHJpZ2dlcigpfXJ1bnNMZWZ0KCl7cmV0dXJuIHRoaXMuX3N0YXRlcy5tYXhSdW5zfV9jaGVja1RyaWdnZXIoZSl7bGV0IHQ9bmV3IERhdGUscj0hdGhpcy5fc3RhdGVzLnBhdXNlZCYmdC5nZXRUaW1lKCk+PWUuZ2V0VGltZSgpLGk9dGhpcy5fc3RhdGVzLmJsb2NraW5nJiZ0aGlzLm9wdGlvbnMucHJvdGVjdDtyJiYhaT8odGhpcy5fc3RhdGVzLm1heFJ1bnMhPT12b2lkIDAmJnRoaXMuX3N0YXRlcy5tYXhSdW5zLS0sdGhpcy5fdHJpZ2dlcigpKTpyJiZpJiZhZih0aGlzLm9wdGlvbnMucHJvdGVjdCkmJnNldFRpbWVvdXQoKCk9PnRoaXMub3B0aW9ucy5wcm90ZWN0KHRoaXMpLDApLHRoaXMuc2NoZWR1bGUoKX1fbmV4dChlKXtsZXQgdD0hIShlfHx0aGlzLl9zdGF0ZXMuY3VycmVudFJ1bikscj0hMTshZSYmdGhpcy5vcHRpb25zLnN0YXJ0QXQmJnRoaXMub3B0aW9ucy5pbnRlcnZhbCYmKFtlLHRdPXRoaXMuX2NhbGN1bGF0ZVByZXZpb3VzUnVuKGUsdCkscj0hZSksZT1uZXcgc2koZSx0aGlzLmdldFR6KCkpLHRoaXMub3B0aW9ucy5zdGFydEF0JiZlJiZlLmdldFRpbWUoKTx0aGlzLm9wdGlvbnMuc3RhcnRBdC5nZXRUaW1lKCkmJihlPXRoaXMub3B0aW9ucy5zdGFydEF0KTtsZXQgaT10aGlzLl9zdGF0ZXMub25jZXx8bmV3IHNpKGUsdGhpcy5nZXRUeigpKTtyZXR1cm4hciYmaSE9PXRoaXMuX3N0YXRlcy5vbmNlJiYoaT1pLmluY3JlbWVudCh0aGlzLl9zdGF0ZXMucGF0dGVybix0aGlzLm9wdGlvbnMsdCkpLHRoaXMuX3N0YXRlcy5vbmNlJiZ0aGlzLl9zdGF0ZXMub25jZS5nZXRUaW1lKCk8PWUuZ2V0VGltZSgpfHxpPT09bnVsbHx8dGhpcy5fc3RhdGVzLm1heFJ1bnMhPT12b2lkIDAmJnRoaXMuX3N0YXRlcy5tYXhSdW5zPD0wfHx0aGlzLl9zdGF0ZXMua2lsbHx8dGhpcy5vcHRpb25zLnN0b3BBdCYmaS5nZXRUaW1lKCk+PXRoaXMub3B0aW9ucy5zdG9wQXQuZ2V0VGltZSgpP251bGw6aX1fcHJldmlvdXMoZSl7bGV0IHQ9bmV3IHNpKGUsdGhpcy5nZXRUeigpKTt0aGlzLm9wdGlvbnMuc3RvcEF0JiZ0LmdldFRpbWUoKT50aGlzLm9wdGlvbnMuc3RvcEF0LmdldFRpbWUoKSYmKHQ9dGhpcy5vcHRpb25zLnN0b3BBdCk7bGV0IHI9bmV3IHNpKHQsdGhpcy5nZXRUeigpKTtyZXR1cm4gdGhpcy5fc3RhdGVzLm9uY2U/dGhpcy5fc3RhdGVzLm9uY2UuZ2V0VGltZSgpPHQuZ2V0VGltZSgpP3RoaXMuX3N0YXRlcy5vbmNlOm51bGw6KHI9ci5kZWNyZW1lbnQodGhpcy5fc3RhdGVzLnBhdHRlcm4sdGhpcy5vcHRpb25zKSxyPT09bnVsbHx8dGhpcy5vcHRpb25zLnN0YXJ0QXQmJnIuZ2V0VGltZSgpPHRoaXMub3B0aW9ucy5zdGFydEF0LmdldFRpbWUoKT9udWxsOnIpfV9jYWxjdWxhdGVQcmV2aW91c1J1bihlLHQpe2xldCByPW5ldyBzaSh2b2lkIDAsdGhpcy5nZXRUeigpKSxpPWU7aWYodGhpcy5vcHRpb25zLnN0YXJ0QXQuZ2V0VGltZSgpPD1yLmdldFRpbWUoKSl7aT10aGlzLm9wdGlvbnMuc3RhcnRBdDtsZXQgYT1pLmdldFRpbWUoKSt0aGlzLm9wdGlvbnMuaW50ZXJ2YWwqMWUzO2Zvcig7YTw9ci5nZXRUaW1lKCk7KWk9bmV3IHNpKGksdGhpcy5nZXRUeigpKS5pbmNyZW1lbnQodGhpcy5fc3RhdGVzLnBhdHRlcm4sdGhpcy5vcHRpb25zLCEwKSxhPWkuZ2V0VGltZSgpK3RoaXMub3B0aW9ucy5pbnRlcnZhbCoxZTM7dD0hMH1yZXR1cm4gaT09PW51bGwmJihpPXZvaWQgMCksW2ksdF19fX0pO3ZhciB1eCxvZix3ZnIsbjAxLFoyLHB4LGNhLEFuLE01LE9CLFVjLGs1LGh4LGZ4LG14LGd4LG0zLFM1LGR4LHhwZSxSQixCQix5cGUsSEIsT3Q9cCgoKT0+e3V4PTcsb2Y9MzY1LjI0MjUsd2ZyPU1hdGgucG93KDEwLDgpKjI0KjYwKjYwKjFlMyxuMDE9LXdmcixaMj02MDQ4ZTUscHg9ODY0ZTUsY2E9NmU0LEFuPTM2ZTUsTTU9MWUzLE9CPTUyNTYwMCxVYz00MzIwMCxrNT0xNDQwLGh4PTYwLGZ4PTMsbXg9MTIsZ3g9NCxtMz0zNjAwLFM1PTYwLGR4PW0zKjI0LHhwZT1keCo3LFJCPWR4KjM2NS4yNDI1LEJCPVJCLzEyLHlwZT1CQiozLEhCPVN5bWJvbC5mb3IoImNvbnN0cnVjdERhdGVGcm9tIil9KTtmdW5jdGlvbiBQZShlLHQpe3JldHVybiB0eXBlb2YgZT09ImZ1bmN0aW9uIj9lKHQpOmUmJnR5cGVvZiBlPT0ib2JqZWN0IiYmSEIgaW4gZT9lW0hCXSh0KTplIGluc3RhbmNlb2YgRGF0ZT9uZXcgZS5jb25zdHJ1Y3Rvcih0KTpuZXcgRGF0ZSh0KX12YXIgbDAxLGZ0PXAoKCk9PntPdCgpO2wwMT1QZX0pO2Z1bmN0aW9uIGxlKGUsdCl7cmV0dXJuIFBlKHR8fGUsZSl9dmFyIHUwMSxPZT1wKCgpPT57ZnQoKTt1MDE9bGV9KTtmdW5jdGlvbiBsaShlLHQscil7bGV0IGk9bGUoZSxyPy5pbik7cmV0dXJuIGlzTmFOKHQpP1BlKHI/LmlufHxlLE5hTik6KHQmJmkuc2V0RGF0ZShpLmdldERhdGUoKSt0KSxpKX12YXIgbTAxLFgyPXAoKCk9PntmdCgpO09lKCk7bTAxPWxpfSk7ZnVuY3Rpb24gUTIoZSx0LHIpe2xldCBpPWxlKGUscj8uaW4pO2lmKGlzTmFOKHQpKXJldHVybiBQZShyPy5pbnx8ZSxOYU4pO2lmKCF0KXJldHVybiBpO2xldCBhPWkuZ2V0RGF0ZSgpLG49UGUocj8uaW58fGUsaS5nZXRUaW1lKCkpO24uc2V0TW9udGgoaS5nZXRNb250aCgpK3QrMSwwKTtsZXQgbz1uLmdldERhdGUoKTtyZXR1cm4gYT49bz9uOihpLnNldEZ1bGxZZWFyKG4uZ2V0RnVsbFllYXIoKSxuLmdldE1vbnRoKCksYSksaSl9dmFyIHgwMSx6NT1wKCgpPT57ZnQoKTtPZSgpO3gwMT1RMn0pO2Z1bmN0aW9uIFdjKGUsdCxyKXtsZXR7eWVhcnM6aT0wLG1vbnRoczphPTAsd2Vla3M6bj0wLGRheXM6bz0wLGhvdXJzOnM9MCxtaW51dGVzOmw9MCxzZWNvbmRzOmM9MH09dCx1PWxlKGUscj8uaW4pLGQ9YXx8aT9RMih1LGEraSoxMik6dSxoPW98fG4/bGkoZCxvK24qNyk6ZCxmPWwrcyo2MCx2PShjK2YqNjApKjFlMztyZXR1cm4gUGUocj8uaW58fGUsK2grdil9dmFyIHowMSxxQj1wKCgpPT57WDIoKTt6NSgpO2Z0KCk7T2UoKTt6MDE9V2N9KTtmdW5jdGlvbiBieChlLHQpe3JldHVybiBsZShlLHQ/LmluKS5nZXREYXkoKT09PTZ9dmFyIF8wMSxqQj1wKCgpPT57T2UoKTtfMDE9Ynh9KTtmdW5jdGlvbiB2eChlLHQpe3JldHVybiBsZShlLHQ/LmluKS5nZXREYXkoKT09PTB9dmFyIEQwMSxWQj1wKCgpPT57T2UoKTtEMDE9dnh9KTtmdW5jdGlvbiBKMihlLHQpe2xldCByPWxlKGUsdD8uaW4pLmdldERheSgpO3JldHVybiByPT09MHx8cj09PTZ9dmFyIEkwMSxzZj1wKCgpPT57T2UoKTtJMDE9SjJ9KTtmdW5jdGlvbiB4eChlLHQscil7bGV0IGk9bGUoZSxyPy5pbiksYT1KMihpLHIpO2lmKGlzTmFOKHQpKXJldHVybiBQZShyPy5pbixOYU4pO2xldCBuPWkuZ2V0SG91cnMoKSxvPXQ8MD8tMToxLHM9TWF0aC50cnVuYyh0LzUpO2kuc2V0RGF0ZShpLmdldERhdGUoKStzKjcpO2xldCBsPU1hdGguYWJzKHQlNSk7Zm9yKDtsPjA7KWkuc2V0RGF0ZShpLmdldERhdGUoKStvKSxKMihpLHIpfHwobC09MSk7cmV0dXJuIGEmJkoyKGkscikmJnQhPT0wJiYoYngoaSxyKSYmaS5zZXREYXRlKGkuZ2V0RGF0ZSgpKyhvPDA/MjotMSkpLHZ4KGkscikmJmkuc2V0RGF0ZShpLmdldERhdGUoKSsobzwwPzE6LTIpKSksaS5zZXRIb3VycyhuKSxpfXZhciBIMDEsVUI9cCgoKT0+e2Z0KCk7akIoKTtWQigpO3NmKCk7T2UoKTtIMDE9eHh9KTtmdW5jdGlvbiBHYyhlLHQscil7cmV0dXJuIFBlKHI/LmlufHxlLCtsZShlKSt0KX12YXIgVTAxLGxmPXAoKCk9PntmdCgpO09lKCk7VTAxPUdjfSk7ZnVuY3Rpb24geXgoZSx0LHIpe3JldHVybiBHYyhlLHQqQW4scil9dmFyIFowMSxXQj1wKCgpPT57bGYoKTtPdCgpO1owMT15eH0pO2Z1bmN0aW9uIExyKCl7cmV0dXJuIHdwZX1mdW5jdGlvbiBNcGUoZSl7d3BlPWV9dmFyIHdwZSxkYT1wKCgpPT57d3BlPXt9fSk7ZnVuY3Rpb24gSnIoZSx0KXtsZXQgcj1McigpLGk9dD8ud2Vla1N0YXJ0c09uPz90Py5sb2NhbGU/Lm9wdGlvbnM/LndlZWtTdGFydHNPbj8/ci53ZWVrU3RhcnRzT24/P3IubG9jYWxlPy5vcHRpb25zPy53ZWVrU3RhcnRzT24/PzAsYT1sZShlLHQ/LmluKSxuPWEuZ2V0RGF5KCksbz0objxpPzc6MCkrbi1pO3JldHVybiBhLnNldERhdGUoYS5nZXREYXRlKCktbyksYS5zZXRIb3VycygwLDAsMCwwKSxhfXZhciBlNDEscjI9cCgoKT0+e2RhKCk7T2UoKTtlNDE9SnJ9KTtmdW5jdGlvbiBRMShlLHQpe3JldHVybiBKcihlLHsuLi50LHdlZWtTdGFydHNPbjoxfSl9dmFyIGk0MSxLMj1wKCgpPT57cjIoKTtpNDE9UTF9KTtmdW5jdGlvbiBxYShlLHQpe2xldCByPWxlKGUsdD8uaW4pLGk9ci5nZXRGdWxsWWVhcigpLGE9UGUociwwKTthLnNldEZ1bGxZZWFyKGkrMSwwLDQpLGEuc2V0SG91cnMoMCwwLDAsMCk7bGV0IG49UTEoYSksbz1QZShyLDApO28uc2V0RnVsbFllYXIoaSwwLDQpLG8uc2V0SG91cnMoMCwwLDAsMCk7bGV0IHM9UTEobyk7cmV0dXJuIHIuZ2V0VGltZSgpPj1uLmdldFRpbWUoKT9pKzE6ci5nZXRUaW1lKCk+PXMuZ2V0VGltZSgpP2k6aS0xfXZhciBsNDEsWWM9cCgoKT0+e2Z0KCk7SzIoKTtPZSgpO2w0MT1xYX0pO2Z1bmN0aW9uIEMxKGUpe2xldCB0PWxlKGUpLHI9bmV3IERhdGUoRGF0ZS5VVEModC5nZXRGdWxsWWVhcigpLHQuZ2V0TW9udGgoKSx0LmdldERhdGUoKSx0LmdldEhvdXJzKCksdC5nZXRNaW51dGVzKCksdC5nZXRTZWNvbmRzKCksdC5nZXRNaWxsaXNlY29uZHMoKSkpO3JldHVybiByLnNldFVUQ0Z1bGxZZWFyKHQuZ2V0RnVsbFllYXIoKSksK2UtK3J9dmFyIGdsPXAoKCk9PntPZSgpfSk7ZnVuY3Rpb24gZHQoZSwuLi50KXtsZXQgcj1QZS5iaW5kKG51bGwsZXx8dC5maW5kKGk9PnR5cGVvZiBpPT0ib2JqZWN0IikpO3JldHVybiB0Lm1hcChyKX12YXIgUnI9cCgoKT0+e2Z0KCl9KTtmdW5jdGlvbiBlcyhlLHQpe2xldCByPWxlKGUsdD8uaW4pO3JldHVybiByLnNldEhvdXJzKDAsMCwwLDApLHJ9dmFyIG00MSxjZj1wKCgpPT57T2UoKTttNDE9ZXN9KTtmdW5jdGlvbiBUaShlLHQscil7bGV0W2ksYV09ZHQocj8uaW4sZSx0KSxuPWVzKGkpLG89ZXMoYSkscz0rbi1DMShuKSxsPStvLUMxKG8pO3JldHVybiBNYXRoLnJvdW5kKChzLWwpL3B4KX12YXIgdzQxLGJsPXAoKCk9PntnbCgpO1JyKCk7T3QoKTtjZigpO3c0MT1UaX0pO2Z1bmN0aW9uIERuKGUsdCl7bGV0IHI9cWEoZSx0KSxpPVBlKHQ/LmlufHxlLDApO3JldHVybiBpLnNldEZ1bGxZZWFyKHIsMCw0KSxpLnNldEhvdXJzKDAsMCwwLDApLFExKGkpfXZhciBDNDEsQzU9cCgoKT0+e2Z0KCk7WWMoKTtLMigpO0M0MT1Ebn0pO2Z1bmN0aW9uIHd4KGUsdCxyKXtsZXQgaT1sZShlLHI/LmluKSxhPVRpKGksRG4oaSxyKSksbj1QZShyPy5pbnx8ZSwwKTtyZXR1cm4gbi5zZXRGdWxsWWVhcih0LDAsNCksbi5zZXRIb3VycygwLDAsMCwwKSxpPURuKG4pLGkuc2V0RGF0ZShpLmdldERhdGUoKSthKSxpfXZhciBFNDEsR0I9cCgoKT0+e2Z0KCk7YmwoKTtDNSgpO09lKCk7RTQxPXd4fSk7ZnVuY3Rpb24gTXgoZSx0LHIpe3JldHVybiB3eChlLHFhKGUscikrdCxyKX12YXIgTjQxLFlCPXAoKCk9PntZYygpO0dCKCk7TjQxPU14fSk7ZnVuY3Rpb24gVDUoZSx0LHIpe2xldCBpPWxlKGUscj8uaW4pO3JldHVybiBpLnNldFRpbWUoaS5nZXRUaW1lKCkrdCpjYSksaX12YXIgQjQxLGt4PXAoKCk9PntPdCgpO09lKCk7QjQxPVQ1fSk7ZnVuY3Rpb24gXzUoZSx0LHIpe3JldHVybiBRMihlLHQqMyxyKX12YXIgajQxLFN4PXAoKCk9Pnt6NSgpO2o0MT1fNX0pO2Z1bmN0aW9uIHp4KGUsdCxyKXtyZXR1cm4gR2MoZSx0KjFlMyxyKX12YXIgVzQxLFpCPXAoKCk9PntsZigpO1c0MT16eH0pO2Z1bmN0aW9uIFpjKGUsdCxyKXtyZXR1cm4gbGkoZSx0Kjcscil9dmFyIFo0MSxkZj1wKCgpPT57WDIoKTtaNDE9WmN9KTtmdW5jdGlvbiBDeChlLHQscil7cmV0dXJuIFEyKGUsdCoxMixyKX12YXIgSjQxLFhCPXAoKCk9Pnt6NSgpO0o0MT1DeH0pO2Z1bmN0aW9uIGtwZShlLHQscil7bGV0W2ksYV09WytsZShlLnN0YXJ0LHI/LmluKSwrbGUoZS5lbmQscj8uaW4pXS5zb3J0KChzLGwpPT5zLWwpLFtuLG9dPVsrbGUodC5zdGFydCxyPy5pbiksK2xlKHQuZW5kLHI/LmluKV0uc29ydCgocyxsKT0+cy1sKTtyZXR1cm4gcj8uaW5jbHVzaXZlP2k8PW8mJm48PWE6aTxvJiZuPGF9dmFyIHQzMSxTcGU9cCgoKT0+e09lKCk7dDMxPWtwZX0pO2Z1bmN0aW9uIFR4KGUsdCl7bGV0IHIsaT10Py5pbjtyZXR1cm4gZS5mb3JFYWNoKGE9PnshaSYmdHlwZW9mIGE9PSJvYmplY3QiJiYoaT1QZS5iaW5kKG51bGwsYSkpO2xldCBuPWxlKGEsaSk7KCFyfHxyPG58fGlzTmFOKCtuKSkmJihyPW4pfSksUGUoaSxyfHxOYU4pfXZhciBuMzEsUUI9cCgoKT0+e2Z0KCk7T2UoKTtuMzE9VHh9KTtmdW5jdGlvbiBfeChlLHQpe2xldCByLGk9dD8uaW47cmV0dXJuIGUuZm9yRWFjaChhPT57IWkmJnR5cGVvZiBhPT0ib2JqZWN0IiYmKGk9UGUuYmluZChudWxsLGEpKTtsZXQgbj1sZShhLGkpOyghcnx8cj5ufHxpc05hTigrbikpJiYocj1uKX0pLFBlKGkscnx8TmFOKX12YXIgYzMxLEpCPXAoKCk9PntmdCgpO09lKCk7YzMxPV94fSk7ZnVuY3Rpb24genBlKGUsdCxyKXtsZXRbaSxhLG5dPWR0KHI/LmluLGUsdC5zdGFydCx0LmVuZCk7cmV0dXJuIF94KFtUeChbaSxhXSxyKSxuXSxyKX12YXIgZjMxLENwZT1wKCgpPT57UnIoKTtRQigpO0pCKCk7ZjMxPXpwZX0pO2Z1bmN0aW9uIEx4KGUsdCl7bGV0IHI9K2xlKGUpO2lmKGlzTmFOKHIpKXJldHVybiBOYU47bGV0IGksYTtyZXR1cm4gdC5mb3JFYWNoKChuLG8pPT57bGV0IHM9bGUobik7aWYoaXNOYU4oK3MpKXtpPU5hTixhPU5hTjtyZXR1cm59bGV0IGw9TWF0aC5hYnMoci0rcyk7KGk9PW51bGx8fGw8YSkmJihpPW8sYT1sKX0pLGl9dmFyIGIzMSxLQj1wKCgpPT57T2UoKTtiMzE9THh9KTtmdW5jdGlvbiBUcGUoZSx0LHIpe2xldFtpLC4uLmFdPWR0KHI/LmluLGUsLi4udCksbj1MeChpLGEpO2lmKHR5cGVvZiBuPT0ibnVtYmVyIiYmaXNOYU4obikpcmV0dXJuIFBlKGksTmFOKTtpZihuIT09dm9pZCAwKXJldHVybiBhW25dfXZhciBNMzEsX3BlPXAoKCk9PntScigpO0tCKCk7ZnQoKTtNMzE9VHBlfSk7ZnVuY3Rpb24gdWEoZSx0KXtsZXQgcj0rbGUoZSktK2xlKHQpO3JldHVybiByPDA/LTE6cj4wPzE6cn12YXIgejMxLGczPXAoKCk9PntPZSgpO3ozMT11YX0pO2Z1bmN0aW9uIExwZShlLHQpe2xldCByPStsZShlKS0rbGUodCk7cmV0dXJuIHI+MD8tMTpyPDA/MTpyfXZhciBfMzEsQXBlPXAoKCk9PntPZSgpO18zMT1McGV9KTtmdW5jdGlvbiBZdChlKXtyZXR1cm4gUGUoZSxEYXRlLm5vdygpKX12YXIgRDMxLGNpPXAoKCk9PntmdCgpO0QzMT1ZdH0pO2Z1bmN0aW9uIERwZShlKXtsZXQgdD1NYXRoLnRydW5jKGUvNyk7cmV0dXJuIHQ9PT0wPzA6dH12YXIgSTMxLEVwZT1wKCgpPT57T3QoKTtJMzE9RHBlfSk7ZnVuY3Rpb24gdHMoZSx0LHIpe2xldFtpLGFdPWR0KHI/LmluLGUsdCk7cmV0dXJuK2VzKGkpPT0rZXMoYSl9dmFyIE8zMSxMNT1wKCgpPT57UnIoKTtjZigpO08zMT10c30pO2Z1bmN0aW9uIEF4KGUpe3JldHVybiBlIGluc3RhbmNlb2YgRGF0ZXx8dHlwZW9mIGU9PSJvYmplY3QiJiZPYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwoZSk9PT0iW29iamVjdCBEYXRlXSJ9dmFyIEIzMSxlSD1wKCgpPT57QjMxPUF4fSk7ZnVuY3Rpb24gVWkoZSl7cmV0dXJuISghQXgoZSkmJnR5cGVvZiBlIT0ibnVtYmVyInx8aXNOYU4oK2xlKGUpKSl9dmFyIFYzMSx2bD1wKCgpPT57ZUgoKTtPZSgpO1YzMT1VaX0pO2Z1bmN0aW9uICRwZShlLHQscil7bGV0W2ksYV09ZHQocj8uaW4sZSx0KTtpZighVWkoaSl8fCFVaShhKSlyZXR1cm4gTmFOO2xldCBuPVRpKGksYSksbz1uPDA/LTE6MSxzPU1hdGgudHJ1bmMobi83KSxsPXMqNSxjPWxpKGEscyo3KTtmb3IoOyF0cyhpLGMpOylsKz1KMihjLHIpPzA6byxjPWxpKGMsbyk7cmV0dXJuIGw9PT0wPzA6bH12YXIgSjMxLElwZT1wKCgpPT57UnIoKTtYMigpO2JsKCk7TDUoKTt2bCgpO3NmKCk7SjMxPSRwZX0pO2Z1bmN0aW9uIER4KGUsdCxyKXtsZXRbaSxhXT1kdChyPy5pbixlLHQpO3JldHVybiBxYShpLHIpLXFhKGEscil9dmFyIHI2MSx0SD1wKCgpPT57UnIoKTtZYygpO3I2MT1EeH0pO2Z1bmN0aW9uIFBwZShlLHQscil7bGV0W2ksYV09ZHQocj8uaW4sZSx0KSxuPVExKGkpLG89UTEoYSkscz0rbi1DMShuKSxsPStvLUMxKG8pO3JldHVybiBNYXRoLnJvdW5kKChzLWwpL1oyKX12YXIgbDYxLE5wZT1wKCgpPT57Z2woKTtScigpO090KCk7SzIoKTtsNjE9UHBlfSk7ZnVuY3Rpb24gYjMoZSx0LHIpe2xldFtpLGFdPWR0KHI/LmluLGUsdCksbj1pLmdldEZ1bGxZZWFyKCktYS5nZXRGdWxsWWVhcigpLG89aS5nZXRNb250aCgpLWEuZ2V0TW9udGgoKTtyZXR1cm4gbioxMitvfXZhciB1NjEsRXg9cCgoKT0+e1JyKCk7dTYxPWIzfSk7ZnVuY3Rpb24gdWYoZSx0KXtsZXQgcj1sZShlLHQ/LmluKTtyZXR1cm4gTWF0aC50cnVuYyhyLmdldE1vbnRoKCkvMykrMX12YXIgZjYxLHJIPXAoKCk9PntPZSgpO2Y2MT11Zn0pO2Z1bmN0aW9uIEE1KGUsdCxyKXtsZXRbaSxhXT1kdChyPy5pbixlLHQpLG49aS5nZXRGdWxsWWVhcigpLWEuZ2V0RnVsbFllYXIoKSxvPXVmKGkpLXVmKGEpO3JldHVybiBuKjQrb312YXIgdjYxLGlIPXAoKCk9PntScigpO3JIKCk7djYxPUE1fSk7ZnVuY3Rpb24gdjMoZSx0LHIpe2xldFtpLGFdPWR0KHI/LmluLGUsdCksbj1KcihpLHIpLG89SnIoYSxyKSxzPStuLUMxKG4pLGw9K28tQzEobyk7cmV0dXJuIE1hdGgucm91bmQoKHMtbCkvWjIpfXZhciBTNjEsJHg9cCgoKT0+e2dsKCk7UnIoKTtPdCgpO3IyKCk7UzYxPXYzfSk7ZnVuY3Rpb24gWGMoZSx0LHIpe2xldFtpLGFdPWR0KHI/LmluLGUsdCk7cmV0dXJuIGkuZ2V0RnVsbFllYXIoKS1hLmdldEZ1bGxZZWFyKCl9dmFyIFQ2MSxJeD1wKCgpPT57UnIoKTtUNjE9WGN9KTtmdW5jdGlvbiBENShlLHQscil7bGV0W2ksYV09ZHQocj8uaW4sZSx0KSxuPUZwZShpLGEpLG89TWF0aC5hYnMoVGkoaSxhKSk7aS5zZXREYXRlKGkuZ2V0RGF0ZSgpLW4qbyk7bGV0IHM9KyhGcGUoaSxhKT09PS1uKSxsPW4qKG8tcyk7cmV0dXJuIGw9PT0wPzA6bH1mdW5jdGlvbiBGcGUoZSx0KXtsZXQgcj1lLmdldEZ1bGxZZWFyKCktdC5nZXRGdWxsWWVhcigpfHxlLmdldE1vbnRoKCktdC5nZXRNb250aCgpfHxlLmdldERhdGUoKS10LmdldERhdGUoKXx8ZS5nZXRIb3VycygpLXQuZ2V0SG91cnMoKXx8ZS5nZXRNaW51dGVzKCktdC5nZXRNaW51dGVzKCl8fGUuZ2V0U2Vjb25kcygpLXQuZ2V0U2Vjb25kcygpfHxlLmdldE1pbGxpc2Vjb25kcygpLXQuZ2V0TWlsbGlzZWNvbmRzKCk7cmV0dXJuIHI8MD8tMTpyPjA/MTpyfXZhciBENjEsUHg9cCgoKT0+e1JyKCk7YmwoKTtENjE9RDV9KTtmdW5jdGlvbiBwYShlKXtyZXR1cm4gdD0+e2xldCBpPShlP01hdGhbZV06TWF0aC50cnVuYykodCk7cmV0dXJuIGk9PT0wPzA6aX19dmFyIHhsPXAoKCk9Pnt9KTtmdW5jdGlvbiB4MyhlLHQscil7bGV0W2ksYV09ZHQocj8uaW4sZSx0KSxuPSgraS0rYSkvQW47cmV0dXJuIHBhKHI/LnJvdW5kaW5nTWV0aG9kKShuKX12YXIgRjYxLE54PXAoKCk9Pnt4bCgpO1JyKCk7T3QoKTtGNjE9eDN9KTtmdW5jdGlvbiBGeChlLHQscil7cmV0dXJuIE14KGUsLXQscil9dmFyIEI2MSxhSD1wKCgpPT57WUIoKTtCNjE9Rnh9KTtmdW5jdGlvbiBPcGUoZSx0LHIpe2xldFtpLGFdPWR0KHI/LmluLGUsdCksbj11YShpLGEpLG89TWF0aC5hYnMoRHgoaSxhLHIpKSxzPUZ4KGksbipvLHIpLGw9Kyh1YShzLGEpPT09LW4pLGM9biooby1sKTtyZXR1cm4gYz09PTA/MDpjfXZhciBXNjEsUnBlPXAoKCk9PntScigpO2czKCk7dEgoKTthSCgpO1c2MT1PcGV9KTtmdW5jdGlvbiBFNShlLHQpe3JldHVybitsZShlKS0rbGUodCl9dmFyIFo2MSxPeD1wKCgpPT57T2UoKTtaNjE9RTV9KTtmdW5jdGlvbiB5MyhlLHQscil7bGV0IGk9RTUoZSx0KS9jYTtyZXR1cm4gcGEocj8ucm91bmRpbmdNZXRob2QpKGkpfXZhciBlZDEsUng9cCgoKT0+e3hsKCk7T3QoKTtPeCgpO2VkMT15M30pO2Z1bmN0aW9uICQ1KGUsdCl7bGV0IHI9bGUoZSx0Py5pbik7cmV0dXJuIHIuc2V0SG91cnMoMjMsNTksNTksOTk5KSxyfXZhciBpZDEsQng9cCgoKT0+e09lKCk7aWQxPSQ1fSk7ZnVuY3Rpb24gSTUoZSx0KXtsZXQgcj1sZShlLHQ/LmluKSxpPXIuZ2V0TW9udGgoKTtyZXR1cm4gci5zZXRGdWxsWWVhcihyLmdldEZ1bGxZZWFyKCksaSsxLDApLHIuc2V0SG91cnMoMjMsNTksNTksOTk5KSxyfXZhciBvZDEsSHg9cCgoKT0+e09lKCk7b2QxPUk1fSk7ZnVuY3Rpb24gcXgoZSx0KXtsZXQgcj1sZShlLHQ/LmluKTtyZXR1cm4rJDUocix0KT09K0k1KHIsdCl9dmFyIHVkMSxuSD1wKCgpPT57QngoKTtIeCgpO09lKCk7dWQxPXF4fSk7ZnVuY3Rpb24gUWMoZSx0LHIpe2xldFtpLGEsbl09ZHQocj8uaW4sZSxlLHQpLG89dWEoYSxuKSxzPU1hdGguYWJzKGIzKGEsbikpO2lmKHM8MSlyZXR1cm4gMDthLmdldE1vbnRoKCk9PT0xJiZhLmdldERhdGUoKT4yNyYmYS5zZXREYXRlKDMwKSxhLnNldE1vbnRoKGEuZ2V0TW9udGgoKS1vKnMpO2xldCBsPXVhKGEsbik9PT0tbztxeChpKSYmcz09PTEmJnVhKGksbik9PT0xJiYobD0hMSk7bGV0IGM9byoocy0rbCk7cmV0dXJuIGM9PT0wPzA6Y312YXIgYmQxLHBmPXAoKCk9PntScigpO2czKCk7RXgoKTtuSCgpO2JkMT1RY30pO2Z1bmN0aW9uIEJwZShlLHQscil7bGV0IGk9UWMoZSx0LHIpLzM7cmV0dXJuIHBhKHI/LnJvdW5kaW5nTWV0aG9kKShpKX12YXIgd2QxLEhwZT1wKCgpPT57eGwoKTtwZigpO3dkMT1CcGV9KTtmdW5jdGlvbiBycyhlLHQscil7bGV0IGk9RTUoZSx0KS8xZTM7cmV0dXJuIHBhKHI/LnJvdW5kaW5nTWV0aG9kKShpKX12YXIgemQxLGhmPXAoKCk9Pnt4bCgpO094KCk7emQxPXJzfSk7ZnVuY3Rpb24gcXBlKGUsdCxyKXtsZXQgaT1ENShlLHQscikvNztyZXR1cm4gcGEocj8ucm91bmRpbmdNZXRob2QpKGkpfXZhciBMZDEsanBlPXAoKCk9Pnt4bCgpO1B4KCk7TGQxPXFwZX0pO2Z1bmN0aW9uIGp4KGUsdCxyKXtsZXRbaSxhXT1kdChyPy5pbixlLHQpLG49dWEoaSxhKSxvPU1hdGguYWJzKFhjKGksYSkpO2kuc2V0RnVsbFllYXIoMTU4NCksYS5zZXRGdWxsWWVhcigxNTg0KTtsZXQgcz11YShpLGEpPT09LW4sbD1uKihvLStzKTtyZXR1cm4gbD09PTA/MDpsfXZhciBJZDEsb0g9cCgoKT0+e1JyKCk7ZzMoKTtJeCgpO0lkMT1qeH0pO2Z1bmN0aW9uIF9pKGUsdCl7bGV0W3IsaV09ZHQoZSx0LnN0YXJ0LHQuZW5kKTtyZXR1cm57c3RhcnQ6cixlbmQ6aX19dmFyIGlzPXAoKCk9PntScigpfSk7ZnVuY3Rpb24gVngoZSx0KXtsZXR7c3RhcnQ6cixlbmQ6aX09X2kodD8uaW4sZSksYT0rcj4raSxuPWE/K3I6K2ksbz1hP2k6cjtvLnNldEhvdXJzKDAsMCwwLDApO2xldCBzPXQ/LnN0ZXA/PzE7aWYoIXMpcmV0dXJuW107czwwJiYocz0tcyxhPSFhKTtsZXQgbD1bXTtmb3IoOytvPD1uOylsLnB1c2goUGUocixvKSksby5zZXREYXRlKG8uZ2V0RGF0ZSgpK3MpLG8uc2V0SG91cnMoMCwwLDAsMCk7cmV0dXJuIGE/bC5yZXZlcnNlKCk6bH12YXIgQmQxLHNIPXAoKCk9PntpcygpO2Z0KCk7QmQxPVZ4fSk7ZnVuY3Rpb24gVnBlKGUsdCl7bGV0e3N0YXJ0OnIsZW5kOml9PV9pKHQ/LmluLGUpLGE9K3I+K2ksbj1hPytyOitpLG89YT9pOnI7by5zZXRNaW51dGVzKDAsMCwwKTtsZXQgcz10Py5zdGVwPz8xO2lmKCFzKXJldHVybltdO3M8MCYmKHM9LXMsYT0hYSk7bGV0IGw9W107Zm9yKDsrbzw9bjspbC5wdXNoKFBlKHIsbykpLG8uc2V0SG91cnMoby5nZXRIb3VycygpK3MpO3JldHVybiBhP2wucmV2ZXJzZSgpOmx9dmFyIFZkMSxVcGU9cCgoKT0+e2lzKCk7ZnQoKTtWZDE9VnBlfSk7ZnVuY3Rpb24gV3BlKGUsdCl7bGV0e3N0YXJ0OnIsZW5kOml9PV9pKHQ/LmluLGUpO3Iuc2V0U2Vjb25kcygwLDApO2xldCBhPStyPitpLG49YT8rcjoraSxvPWE/aTpyLHM9dD8uc3RlcD8/MTtpZighcylyZXR1cm5bXTtzPDAmJihzPS1zLGE9IWEpO2xldCBsPVtdO2Zvcig7K288PW47KWwucHVzaChQZShyLG8pKSxvPVQ1KG8scyk7cmV0dXJuIGE/bC5yZXZlcnNlKCk6bH12YXIgWmQxLEdwZT1wKCgpPT57aXMoKTtreCgpO2Z0KCk7WmQxPVdwZX0pO2Z1bmN0aW9uIFlwZShlLHQpe2xldHtzdGFydDpyLGVuZDppfT1faSh0Py5pbixlKSxhPStyPitpLG49YT8rcjoraSxvPWE/aTpyO28uc2V0SG91cnMoMCwwLDAsMCksby5zZXREYXRlKDEpO2xldCBzPXQ/LnN0ZXA/PzE7aWYoIXMpcmV0dXJuW107czwwJiYocz0tcyxhPSFhKTtsZXQgbD1bXTtmb3IoOytvPD1uOylsLnB1c2goUGUocixvKSksby5zZXRNb250aChvLmdldE1vbnRoKCkrcyk7cmV0dXJuIGE/bC5yZXZlcnNlKCk6bH12YXIgS2QxLFpwZT1wKCgpPT57aXMoKTtmdCgpO0tkMT1ZcGV9KTtmdW5jdGlvbiBhcyhlLHQpe2xldCByPWxlKGUsdD8uaW4pLGk9ci5nZXRNb250aCgpLGE9aS1pJTM7cmV0dXJuIHIuc2V0TW9udGgoYSwxKSxyLnNldEhvdXJzKDAsMCwwLDApLHJ9dmFyIHI1MSxVeD1wKCgpPT57T2UoKTtyNTE9YXN9KTtmdW5jdGlvbiBYcGUoZSx0KXtsZXR7c3RhcnQ6cixlbmQ6aX09X2kodD8uaW4sZSksYT0rcj4raSxuPWE/K2FzKHIpOithcyhpKSxvPWE/YXMoaSk6YXMocikscz10Py5zdGVwPz8xO2lmKCFzKXJldHVybltdO3M8MCYmKHM9LXMsYT0hYSk7bGV0IGw9W107Zm9yKDsrbzw9bjspbC5wdXNoKFBlKHIsbykpLG89XzUobyxzKTtyZXR1cm4gYT9sLnJldmVyc2UoKTpsfXZhciBsNTEsUXBlPXAoKCk9PntpcygpO1N4KCk7ZnQoKTtVeCgpO2w1MT1YcGV9KTtmdW5jdGlvbiBKcGUoZSx0KXtsZXR7c3RhcnQ6cixlbmQ6aX09X2kodD8uaW4sZSksYT0rcj4raSxuPWE/SnIoaSx0KTpKcihyLHQpLG89YT9KcihyLHQpOkpyKGksdCk7bi5zZXRIb3VycygxNSksby5zZXRIb3VycygxNSk7bGV0IHM9K28uZ2V0VGltZSgpLGw9bixjPXQ/LnN0ZXA/PzE7aWYoIWMpcmV0dXJuW107YzwwJiYoYz0tYyxhPSFhKTtsZXQgdT1bXTtmb3IoOytsPD1zOylsLnNldEhvdXJzKDApLHUucHVzaChQZShyLGwpKSxsPVpjKGwsYyksbC5zZXRIb3VycygxNSk7cmV0dXJuIGE/dS5yZXZlcnNlKCk6dX12YXIgZjUxLEtwZT1wKCgpPT57aXMoKTtkZigpO2Z0KCk7cjIoKTtmNTE9SnBlfSk7ZnVuY3Rpb24gUDUoZSx0KXtsZXR7c3RhcnQ6cixlbmQ6aX09X2kodD8uaW4sZSksYT1WeCh7c3RhcnQ6cixlbmQ6aX0sdCksbj1bXSxvPTA7Zm9yKDtvPGEubGVuZ3RoOyl7bGV0IHM9YVtvKytdO0oyKHMpJiZuLnB1c2goUGUocixzKSl9cmV0dXJuIG59dmFyIHk1MSxXeD1wKCgpPT57aXMoKTtmdCgpO3NIKCk7c2YoKTt5NTE9UDV9KTtmdW5jdGlvbiBKYyhlLHQpe2xldCByPWxlKGUsdD8uaW4pO3JldHVybiByLnNldERhdGUoMSksci5zZXRIb3VycygwLDAsMCwwKSxyfXZhciBrNTEsZmY9cCgoKT0+e09lKCk7azUxPUpjfSk7ZnVuY3Rpb24gZWhlKGUsdCl7bGV0IHI9SmMoZSx0KSxpPUk1KGUsdCk7cmV0dXJuIFA1KHtzdGFydDpyLGVuZDppfSx0KX12YXIgXzUxLHRoZT1wKCgpPT57V3goKTtIeCgpO2ZmKCk7XzUxPWVoZX0pO2Z1bmN0aW9uIEd4KGUsdCl7bGV0IHI9bGUoZSx0Py5pbiksaT1yLmdldEZ1bGxZZWFyKCk7cmV0dXJuIHIuc2V0RnVsbFllYXIoaSsxLDAsMCksci5zZXRIb3VycygyMyw1OSw1OSw5OTkpLHJ9dmFyIEQ1MSxsSD1wKCgpPT57T2UoKTtENTE9R3h9KTtmdW5jdGlvbiBONShlLHQpe2xldCByPWxlKGUsdD8uaW4pO3JldHVybiByLnNldEZ1bGxZZWFyKHIuZ2V0RnVsbFllYXIoKSwwLDEpLHIuc2V0SG91cnMoMCwwLDAsMCkscn12YXIgSTUxLFl4PXAoKCk9PntPZSgpO0k1MT1ONX0pO2Z1bmN0aW9uIHJoZShlLHQpe2xldCByPU41KGUsdCksaT1HeChlLHQpO3JldHVybiBQNSh7c3RhcnQ6cixlbmQ6aX0sdCl9dmFyIFI1MSxpaGU9cCgoKT0+e1d4KCk7bEgoKTtZeCgpO1I1MT1yaGV9KTtmdW5jdGlvbiBhaGUoZSx0KXtsZXR7c3RhcnQ6cixlbmQ6aX09X2kodD8uaW4sZSksYT0rcj4raSxuPWE/K3I6K2ksbz1hP2k6cjtvLnNldEhvdXJzKDAsMCwwLDApLG8uc2V0TW9udGgoMCwxKTtsZXQgcz10Py5zdGVwPz8xO2lmKCFzKXJldHVybltdO3M8MCYmKHM9LXMsYT0hYSk7bGV0IGw9W107Zm9yKDsrbzw9bjspbC5wdXNoKFBlKHIsbykpLG8uc2V0RnVsbFllYXIoby5nZXRGdWxsWWVhcigpK3MpO3JldHVybiBhP2wucmV2ZXJzZSgpOmx9dmFyIGo1MSxuaGU9cCgoKT0+e2lzKCk7ZnQoKTtqNTE9YWhlfSk7ZnVuY3Rpb24gb2hlKGUsdCl7bGV0IHI9bGUoZSx0Py5pbiksaT1yLmdldEZ1bGxZZWFyKCksYT05K01hdGguZmxvb3IoaS8xMCkqMTA7cmV0dXJuIHIuc2V0RnVsbFllYXIoYSwxMSwzMSksci5zZXRIb3VycygyMyw1OSw1OSw5OTkpLHJ9dmFyIFc1MSxzaGU9cCgoKT0+e09lKCk7VzUxPW9oZX0pO2Z1bmN0aW9uIGxoZShlLHQpe2xldCByPWxlKGUsdD8uaW4pO3JldHVybiByLnNldE1pbnV0ZXMoNTksNTksOTk5KSxyfXZhciBaNTEsY2hlPXAoKCk9PntPZSgpO1o1MT1saGV9KTtmdW5jdGlvbiBaeChlLHQpe2xldCByPUxyKCksaT10Py53ZWVrU3RhcnRzT24/P3Q/LmxvY2FsZT8ub3B0aW9ucz8ud2Vla1N0YXJ0c09uPz9yLndlZWtTdGFydHNPbj8/ci5sb2NhbGU/Lm9wdGlvbnM/LndlZWtTdGFydHNPbj8/MCxhPWxlKGUsdD8uaW4pLG49YS5nZXREYXkoKSxvPShuPGk/LTc6MCkrNi0obi1pKTtyZXR1cm4gYS5zZXREYXRlKGEuZ2V0RGF0ZSgpK28pLGEuc2V0SG91cnMoMjMsNTksNTksOTk5KSxhfXZhciBLNTEsY0g9cCgoKT0+e2RhKCk7T2UoKTtLNTE9Wnh9KTtmdW5jdGlvbiBkaGUoZSx0KXtyZXR1cm4gWngoZSx7Li4udCx3ZWVrU3RhcnRzT246MX0pfXZhciBydTEsdWhlPXAoKCk9PntjSCgpO3J1MT1kaGV9KTtmdW5jdGlvbiBwaGUoZSx0KXtsZXQgcj1xYShlLHQpLGk9UGUodD8uaW58fGUsMCk7aS5zZXRGdWxsWWVhcihyKzEsMCw0KSxpLnNldEhvdXJzKDAsMCwwLDApO2xldCBhPVExKGksdCk7cmV0dXJuIGEuc2V0TWlsbGlzZWNvbmRzKGEuZ2V0TWlsbGlzZWNvbmRzKCktMSksYX12YXIgc3UxLGhoZT1wKCgpPT57ZnQoKTtZYygpO0syKCk7c3UxPXBoZX0pO2Z1bmN0aW9uIGZoZShlLHQpe2xldCByPWxlKGUsdD8uaW4pO3JldHVybiByLnNldFNlY29uZHMoNTksOTk5KSxyfXZhciBkdTEsbWhlPXAoKCk9PntPZSgpO2R1MT1maGV9KTtmdW5jdGlvbiBnaGUoZSx0KXtsZXQgcj1sZShlLHQ/LmluKSxpPXIuZ2V0TW9udGgoKSxhPWktaSUzKzM7cmV0dXJuIHIuc2V0TW9udGgoYSwwKSxyLnNldEhvdXJzKDIzLDU5LDU5LDk5OSkscn12YXIgaHUxLGJoZT1wKCgpPT57T2UoKTtodTE9Z2hlfSk7ZnVuY3Rpb24gdmhlKGUsdCl7bGV0IHI9bGUoZSx0Py5pbik7cmV0dXJuIHIuc2V0TWlsbGlzZWNvbmRzKDk5OSkscn12YXIgZ3UxLHhoZT1wKCgpPT57T2UoKTtndTE9dmhlfSk7ZnVuY3Rpb24geWhlKGUpe3JldHVybiAkNShEYXRlLm5vdygpLGUpfXZhciB4dTEsd2hlPXAoKCk9PntCeCgpO3h1MT15aGV9KTtmdW5jdGlvbiBNaGUoZSl7bGV0IHQ9WXQoZT8uaW4pLHI9dC5nZXRGdWxsWWVhcigpLGk9dC5nZXRNb250aCgpLGE9dC5nZXREYXRlKCksbj1ZdChlPy5pbik7cmV0dXJuIG4uc2V0RnVsbFllYXIocixpLGErMSksbi5zZXRIb3VycygyMyw1OSw1OSw5OTkpLGU/LmluP2UuaW4obik6bn12YXIgTXUxLGtoZT1wKCgpPT57Y2koKTtNdTE9TWhlfSk7ZnVuY3Rpb24gU2hlKGUpe2xldCB0PVl0KGU/LmluKSxyPVBlKGU/LmluLDApO3JldHVybiByLnNldEZ1bGxZZWFyKHQuZ2V0RnVsbFllYXIoKSx0LmdldE1vbnRoKCksdC5nZXREYXRlKCktMSksci5zZXRIb3VycygyMyw1OSw1OSw5OTkpLHJ9dmFyIEN1MSx6aGU9cCgoKT0+e2Z0KCk7Y2koKTtDdTE9U2hlfSk7dmFyIE1mcixDaGUsVGhlPXAoKCk9PntNZnI9e2xlc3NUaGFuWFNlY29uZHM6e29uZToibGVzcyB0aGFuIGEgc2Vjb25kIixvdGhlcjoibGVzcyB0aGFuIHt7Y291bnR9fSBzZWNvbmRzIn0seFNlY29uZHM6e29uZToiMSBzZWNvbmQiLG90aGVyOiJ7e2NvdW50fX0gc2Vjb25kcyJ9LGhhbGZBTWludXRlOiJoYWxmIGEgbWludXRlIixsZXNzVGhhblhNaW51dGVzOntvbmU6Imxlc3MgdGhhbiBhIG1pbnV0ZSIsb3RoZXI6Imxlc3MgdGhhbiB7e2NvdW50fX0gbWludXRlcyJ9LHhNaW51dGVzOntvbmU6IjEgbWludXRlIixvdGhlcjoie3tjb3VudH19IG1pbnV0ZXMifSxhYm91dFhIb3Vyczp7b25lOiJhYm91dCAxIGhvdXIiLG90aGVyOiJhYm91dCB7e2NvdW50fX0gaG91cnMifSx4SG91cnM6e29uZToiMSBob3VyIixvdGhlcjoie3tjb3VudH19IGhvdXJzIn0seERheXM6e29uZToiMSBkYXkiLG90aGVyOiJ7e2NvdW50fX0gZGF5cyJ9LGFib3V0WFdlZWtzOntvbmU6ImFib3V0IDEgd2VlayIsb3RoZXI6ImFib3V0IHt7Y291bnR9fSB3ZWVrcyJ9LHhXZWVrczp7b25lOiIxIHdlZWsiLG90aGVyOiJ7e2NvdW50fX0gd2Vla3MifSxhYm91dFhNb250aHM6e29uZToiYWJvdXQgMSBtb250aCIsb3RoZXI6ImFib3V0IHt7Y291bnR9fSBtb250aHMifSx4TW9udGhzOntvbmU6IjEgbW9udGgiLG90aGVyOiJ7e2NvdW50fX0gbW9udGhzIn0sYWJvdXRYWWVhcnM6e29uZToiYWJvdXQgMSB5ZWFyIixvdGhlcjoiYWJvdXQge3tjb3VudH19IHllYXJzIn0seFllYXJzOntvbmU6IjEgeWVhciIsb3RoZXI6Int7Y291bnR9fSB5ZWFycyJ9LG92ZXJYWWVhcnM6e29uZToib3ZlciAxIHllYXIiLG90aGVyOiJvdmVyIHt7Y291bnR9fSB5ZWFycyJ9LGFsbW9zdFhZZWFyczp7b25lOiJhbG1vc3QgMSB5ZWFyIixvdGhlcjoiYWxtb3N0IHt7Y291bnR9fSB5ZWFycyJ9fSxDaGU9KGUsdCxyKT0+e2xldCBpLGE9TWZyW2VdO3JldHVybiB0eXBlb2YgYT09InN0cmluZyI/aT1hOnQ9PT0xP2k9YS5vbmU6aT1hLm90aGVyLnJlcGxhY2UoInt7Y291bnR9fSIsdC50b1N0cmluZygpKSxyPy5hZGRTdWZmaXg/ci5jb21wYXJpc29uJiZyLmNvbXBhcmlzb24+MD8iaW4gIitpOmkrIiBhZ28iOml9fSk7ZnVuY3Rpb24gWHgoZSl7cmV0dXJuKHQ9e30pPT57bGV0IHI9dC53aWR0aD9TdHJpbmcodC53aWR0aCk6ZS5kZWZhdWx0V2lkdGg7cmV0dXJuIGUuZm9ybWF0c1tyXXx8ZS5mb3JtYXRzW2UuZGVmYXVsdFdpZHRoXX19dmFyIF9oZT1wKCgpPT57fSk7dmFyIGtmcixTZnIsemZyLExoZSxBaGU9cCgoKT0+e19oZSgpO2tmcj17ZnVsbDoiRUVFRSwgTU1NTSBkbywgeSIsbG9uZzoiTU1NTSBkbywgeSIsbWVkaXVtOiJNTU0gZCwgeSIsc2hvcnQ6Ik1NL2RkL3l5eXkifSxTZnI9e2Z1bGw6Img6bW06c3MgYSB6enp6Iixsb25nOiJoOm1tOnNzIGEgeiIsbWVkaXVtOiJoOm1tOnNzIGEiLHNob3J0OiJoOm1tIGEifSx6ZnI9e2Z1bGw6Int7ZGF0ZX19ICdhdCcge3t0aW1lfX0iLGxvbmc6Int7ZGF0ZX19ICdhdCcge3t0aW1lfX0iLG1lZGl1bToie3tkYXRlfX0sIHt7dGltZX19IixzaG9ydDoie3tkYXRlfX0sIHt7dGltZX19In0sTGhlPXtkYXRlOlh4KHtmb3JtYXRzOmtmcixkZWZhdWx0V2lkdGg6ImZ1bGwifSksdGltZTpYeCh7Zm9ybWF0czpTZnIsZGVmYXVsdFdpZHRoOiJmdWxsIn0pLGRhdGVUaW1lOlh4KHtmb3JtYXRzOnpmcixkZWZhdWx0V2lkdGg6ImZ1bGwifSl9fSk7dmFyIENmcixEaGUsRWhlPXAoKCk9PntDZnI9e2xhc3RXZWVrOiInbGFzdCcgZWVlZSAnYXQnIHAiLHllc3RlcmRheToiJ3llc3RlcmRheSBhdCcgcCIsdG9kYXk6Iid0b2RheSBhdCcgcCIsdG9tb3Jyb3c6Iid0b21vcnJvdyBhdCcgcCIsbmV4dFdlZWs6ImVlZWUgJ2F0JyBwIixvdGhlcjoiUCJ9LERoZT0oZSx0LHIsaSk9PkNmcltlXX0pO2Z1bmN0aW9uIEY1KGUpe3JldHVybih0LHIpPT57bGV0IGk9cj8uY29udGV4dD9TdHJpbmcoci5jb250ZXh0KToic3RhbmRhbG9uZSIsYTtpZihpPT09ImZvcm1hdHRpbmciJiZlLmZvcm1hdHRpbmdWYWx1ZXMpe2xldCBvPWUuZGVmYXVsdEZvcm1hdHRpbmdXaWR0aHx8ZS5kZWZhdWx0V2lkdGgscz1yPy53aWR0aD9TdHJpbmcoci53aWR0aCk6bzthPWUuZm9ybWF0dGluZ1ZhbHVlc1tzXXx8ZS5mb3JtYXR0aW5nVmFsdWVzW29dfWVsc2V7bGV0IG89ZS5kZWZhdWx0V2lkdGgscz1yPy53aWR0aD9TdHJpbmcoci53aWR0aCk6ZS5kZWZhdWx0V2lkdGg7YT1lLnZhbHVlc1tzXXx8ZS52YWx1ZXNbb119bGV0IG49ZS5hcmd1bWVudENhbGxiYWNrP2UuYXJndW1lbnRDYWxsYmFjayh0KTp0O3JldHVybiBhW25dfX12YXIgJGhlPXAoKCk9Pnt9KTt2YXIgVGZyLF9mcixMZnIsQWZyLERmcixFZnIsJGZyLEloZSxQaGU9cCgoKT0+eyRoZSgpO1Rmcj17bmFycm93OlsiQiIsIkEiXSxhYmJyZXZpYXRlZDpbIkJDIiwiQUQiXSx3aWRlOlsiQmVmb3JlIENocmlzdCIsIkFubm8gRG9taW5pIl19LF9mcj17bmFycm93OlsiMSIsIjIiLCIzIiwiNCJdLGFiYnJldmlhdGVkOlsiUTEiLCJRMiIsIlEzIiwiUTQiXSx3aWRlOlsiMXN0IHF1YXJ0ZXIiLCIybmQgcXVhcnRlciIsIjNyZCBxdWFydGVyIiwiNHRoIHF1YXJ0ZXIiXX0sTGZyPXtuYXJyb3c6WyJKIiwiRiIsIk0iLCJBIiwiTSIsIkoiLCJKIiwiQSIsIlMiLCJPIiwiTiIsIkQiXSxhYmJyZXZpYXRlZDpbIkphbiIsIkZlYiIsIk1hciIsIkFwciIsIk1heSIsIkp1biIsIkp1bCIsIkF1ZyIsIlNlcCIsIk9jdCIsIk5vdiIsIkRlYyJdLHdpZGU6WyJKYW51YXJ5IiwiRmVicnVhcnkiLCJNYXJjaCIsIkFwcmlsIiwiTWF5IiwiSnVuZSIsIkp1bHkiLCJBdWd1c3QiLCJTZXB0ZW1iZXIiLCJPY3RvYmVyIiwiTm92ZW1iZXIiLCJEZWNlbWJlciJdfSxBZnI9e25hcnJvdzpbIlMiLCJNIiwiVCIsIlciLCJUIiwiRiIsIlMiXSxzaG9ydDpbIlN1IiwiTW8iLCJUdSIsIldlIiwiVGgiLCJGciIsIlNhIl0sYWJicmV2aWF0ZWQ6WyJTdW4iLCJNb24iLCJUdWUiLCJXZWQiLCJUaHUiLCJGcmkiLCJTYXQiXSx3aWRlOlsiU3VuZGF5IiwiTW9uZGF5IiwiVHVlc2RheSIsIldlZG5lc2RheSIsIlRodXJzZGF5IiwiRnJpZGF5IiwiU2F0dXJkYXkiXX0sRGZyPXtuYXJyb3c6e2FtOiJhIixwbToicCIsbWlkbmlnaHQ6Im1pIixub29uOiJuIixtb3JuaW5nOiJtb3JuaW5nIixhZnRlcm5vb246ImFmdGVybm9vbiIsZXZlbmluZzoiZXZlbmluZyIsbmlnaHQ6Im5pZ2h0In0sYWJicmV2aWF0ZWQ6e2FtOiJBTSIscG06IlBNIixtaWRuaWdodDoibWlkbmlnaHQiLG5vb246Im5vb24iLG1vcm5pbmc6Im1vcm5pbmciLGFmdGVybm9vbjoiYWZ0ZXJub29uIixldmVuaW5nOiJldmVuaW5nIixuaWdodDoibmlnaHQifSx3aWRlOnthbToiYS5tLiIscG06InAubS4iLG1pZG5pZ2h0OiJtaWRuaWdodCIsbm9vbjoibm9vbiIsbW9ybmluZzoibW9ybmluZyIsYWZ0ZXJub29uOiJhZnRlcm5vb24iLGV2ZW5pbmc6ImV2ZW5pbmciLG5pZ2h0OiJuaWdodCJ9fSxFZnI9e25hcnJvdzp7YW06ImEiLHBtOiJwIixtaWRuaWdodDoibWkiLG5vb246Im4iLG1vcm5pbmc6ImluIHRoZSBtb3JuaW5nIixhZnRlcm5vb246ImluIHRoZSBhZnRlcm5vb24iLGV2ZW5pbmc6ImluIHRoZSBldmVuaW5nIixuaWdodDoiYXQgbmlnaHQifSxhYmJyZXZpYXRlZDp7YW06IkFNIixwbToiUE0iLG1pZG5pZ2h0OiJtaWRuaWdodCIsbm9vbjoibm9vbiIsbW9ybmluZzoiaW4gdGhlIG1vcm5pbmciLGFmdGVybm9vbjoiaW4gdGhlIGFmdGVybm9vbiIsZXZlbmluZzoiaW4gdGhlIGV2ZW5pbmciLG5pZ2h0OiJhdCBuaWdodCJ9LHdpZGU6e2FtOiJhLm0uIixwbToicC5tLiIsbWlkbmlnaHQ6Im1pZG5pZ2h0Iixub29uOiJub29uIixtb3JuaW5nOiJpbiB0aGUgbW9ybmluZyIsYWZ0ZXJub29uOiJpbiB0aGUgYWZ0ZXJub29uIixldmVuaW5nOiJpbiB0aGUgZXZlbmluZyIsbmlnaHQ6ImF0IG5pZ2h0In19LCRmcj0oZSx0KT0+e2xldCByPU51bWJlcihlKSxpPXIlMTAwO2lmKGk+MjB8fGk8MTApc3dpdGNoKGklMTApe2Nhc2UgMTpyZXR1cm4gcisic3QiO2Nhc2UgMjpyZXR1cm4gcisibmQiO2Nhc2UgMzpyZXR1cm4gcisicmQifXJldHVybiByKyJ0aCJ9LEloZT17b3JkaW5hbE51bWJlcjokZnIsZXJhOkY1KHt2YWx1ZXM6VGZyLGRlZmF1bHRXaWR0aDoid2lkZSJ9KSxxdWFydGVyOkY1KHt2YWx1ZXM6X2ZyLGRlZmF1bHRXaWR0aDoid2lkZSIsYXJndW1lbnRDYWxsYmFjazplPT5lLTF9KSxtb250aDpGNSh7dmFsdWVzOkxmcixkZWZhdWx0V2lkdGg6IndpZGUifSksZGF5OkY1KHt2YWx1ZXM6QWZyLGRlZmF1bHRXaWR0aDoid2lkZSJ9KSxkYXlQZXJpb2Q6RjUoe3ZhbHVlczpEZnIsZGVmYXVsdFdpZHRoOiJ3aWRlIixmb3JtYXR0aW5nVmFsdWVzOkVmcixkZWZhdWx0Rm9ybWF0dGluZ1dpZHRoOiJ3aWRlIn0pfX0pO2Z1bmN0aW9uIE81KGUpe3JldHVybih0LHI9e30pPT57bGV0IGk9ci53aWR0aCxhPWkmJmUubWF0Y2hQYXR0ZXJuc1tpXXx8ZS5tYXRjaFBhdHRlcm5zW2UuZGVmYXVsdE1hdGNoV2lkdGhdLG49dC5tYXRjaChhKTtpZighbilyZXR1cm4gbnVsbDtsZXQgbz1uWzBdLHM9aSYmZS5wYXJzZVBhdHRlcm5zW2ldfHxlLnBhcnNlUGF0dGVybnNbZS5kZWZhdWx0UGFyc2VXaWR0aF0sbD1BcnJheS5pc0FycmF5KHMpP1BmcihzLGQ9PmQudGVzdChvKSk6SWZyKHMsZD0+ZC50ZXN0KG8pKSxjO2M9ZS52YWx1ZUNhbGxiYWNrP2UudmFsdWVDYWxsYmFjayhsKTpsLGM9ci52YWx1ZUNhbGxiYWNrP3IudmFsdWVDYWxsYmFjayhjKTpjO2xldCB1PXQuc2xpY2Uoby5sZW5ndGgpO3JldHVybnt2YWx1ZTpjLHJlc3Q6dX19fWZ1bmN0aW9uIElmcihlLHQpe2ZvcihsZXQgciBpbiBlKWlmKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChlLHIpJiZ0KGVbcl0pKXJldHVybiByfWZ1bmN0aW9uIFBmcihlLHQpe2ZvcihsZXQgcj0wO3I8ZS5sZW5ndGg7cisrKWlmKHQoZVtyXSkpcmV0dXJuIHJ9dmFyIE5oZT1wKCgpPT57fSk7ZnVuY3Rpb24gRmhlKGUpe3JldHVybih0LHI9e30pPT57bGV0IGk9dC5tYXRjaChlLm1hdGNoUGF0dGVybik7aWYoIWkpcmV0dXJuIG51bGw7bGV0IGE9aVswXSxuPXQubWF0Y2goZS5wYXJzZVBhdHRlcm4pO2lmKCFuKXJldHVybiBudWxsO2xldCBvPWUudmFsdWVDYWxsYmFjaz9lLnZhbHVlQ2FsbGJhY2soblswXSk6blswXTtvPXIudmFsdWVDYWxsYmFjaz9yLnZhbHVlQ2FsbGJhY2sobyk6bztsZXQgcz10LnNsaWNlKGEubGVuZ3RoKTtyZXR1cm57dmFsdWU6byxyZXN0OnN9fX12YXIgT2hlPXAoKCk9Pnt9KTt2YXIgTmZyLEZmcixPZnIsUmZyLEJmcixIZnIscWZyLGpmcixWZnIsVWZyLFdmcixHZnIsUmhlLEJoZT1wKCgpPT57TmhlKCk7T2hlKCk7TmZyPS9eKFxkKykodGh8c3R8bmR8cmQpPy9pLEZmcj0vXGQrL2ksT2ZyPXtuYXJyb3c6L14oYnxhKS9pLGFiYnJldmlhdGVkOi9eKGJcLj9ccz9jXC4/fGJcLj9ccz9jXC4/XHM/ZVwuP3xhXC4/XHM/ZFwuP3xjXC4/XHM/ZVwuPykvaSx3aWRlOi9eKGJlZm9yZSBjaHJpc3R8YmVmb3JlIGNvbW1vbiBlcmF8YW5ubyBkb21pbml8Y29tbW9uIGVyYSkvaX0sUmZyPXthbnk6Wy9eYi9pLC9eKGF8YykvaV19LEJmcj17bmFycm93Oi9eWzEyMzRdL2ksYWJicmV2aWF0ZWQ6L15xWzEyMzRdL2ksd2lkZTovXlsxMjM0XSh0aHxzdHxuZHxyZCk/IHF1YXJ0ZXIvaX0sSGZyPXthbnk6Wy8xL2ksLzIvaSwvMy9pLC80L2ldfSxxZnI9e25hcnJvdzovXltqZm1hc29uZF0vaSxhYmJyZXZpYXRlZDovXihqYW58ZmVifG1hcnxhcHJ8bWF5fGp1bnxqdWx8YXVnfHNlcHxvY3R8bm92fGRlYykvaSx3aWRlOi9eKGphbnVhcnl8ZmVicnVhcnl8bWFyY2h8YXByaWx8bWF5fGp1bmV8anVseXxhdWd1c3R8c2VwdGVtYmVyfG9jdG9iZXJ8bm92ZW1iZXJ8ZGVjZW1iZXIpL2l9LGpmcj17bmFycm93OlsvXmovaSwvXmYvaSwvXm0vaSwvXmEvaSwvXm0vaSwvXmovaSwvXmovaSwvXmEvaSwvXnMvaSwvXm8vaSwvXm4vaSwvXmQvaV0sYW55OlsvXmphL2ksL15mL2ksL15tYXIvaSwvXmFwL2ksL15tYXkvaSwvXmp1bi9pLC9eanVsL2ksL15hdS9pLC9ecy9pLC9eby9pLC9ebi9pLC9eZC9pXX0sVmZyPXtuYXJyb3c6L15bc210d2ZdL2ksc2hvcnQ6L14oc3V8bW98dHV8d2V8dGh8ZnJ8c2EpL2ksYWJicmV2aWF0ZWQ6L14oc3VufG1vbnx0dWV8d2VkfHRodXxmcml8c2F0KS9pLHdpZGU6L14oc3VuZGF5fG1vbmRheXx0dWVzZGF5fHdlZG5lc2RheXx0aHVyc2RheXxmcmlkYXl8c2F0dXJkYXkpL2l9LFVmcj17bmFycm93OlsvXnMvaSwvXm0vaSwvXnQvaSwvXncvaSwvXnQvaSwvXmYvaSwvXnMvaV0sYW55OlsvXnN1L2ksL15tL2ksL150dS9pLC9edy9pLC9edGgvaSwvXmYvaSwvXnNhL2ldfSxXZnI9e25hcnJvdzovXihhfHB8bWl8bnwoaW4gdGhlfGF0KSAobW9ybmluZ3xhZnRlcm5vb258ZXZlbmluZ3xuaWdodCkpL2ksYW55Oi9eKFthcF1cLj9ccz9tXC4/fG1pZG5pZ2h0fG5vb258KGluIHRoZXxhdCkgKG1vcm5pbmd8YWZ0ZXJub29ufGV2ZW5pbmd8bmlnaHQpKS9pfSxHZnI9e2FueTp7YW06L15hL2kscG06L15wL2ksbWlkbmlnaHQ6L15taS9pLG5vb246L15uby9pLG1vcm5pbmc6L21vcm5pbmcvaSxhZnRlcm5vb246L2FmdGVybm9vbi9pLGV2ZW5pbmc6L2V2ZW5pbmcvaSxuaWdodDovbmlnaHQvaX19LFJoZT17b3JkaW5hbE51bWJlcjpGaGUoe21hdGNoUGF0dGVybjpOZnIscGFyc2VQYXR0ZXJuOkZmcix2YWx1ZUNhbGxiYWNrOmU9PnBhcnNlSW50KGUsMTApfSksZXJhOk81KHttYXRjaFBhdHRlcm5zOk9mcixkZWZhdWx0TWF0Y2hXaWR0aDoid2lkZSIscGFyc2VQYXR0ZXJuczpSZnIsZGVmYXVsdFBhcnNlV2lkdGg6ImFueSJ9KSxxdWFydGVyOk81KHttYXRjaFBhdHRlcm5zOkJmcixkZWZhdWx0TWF0Y2hXaWR0aDoid2lkZSIscGFyc2VQYXR0ZXJuczpIZnIsZGVmYXVsdFBhcnNlV2lkdGg6ImFueSIsdmFsdWVDYWxsYmFjazplPT5lKzF9KSxtb250aDpPNSh7bWF0Y2hQYXR0ZXJuczpxZnIsZGVmYXVsdE1hdGNoV2lkdGg6IndpZGUiLHBhcnNlUGF0dGVybnM6amZyLGRlZmF1bHRQYXJzZVdpZHRoOiJhbnkifSksZGF5Ok81KHttYXRjaFBhdHRlcm5zOlZmcixkZWZhdWx0TWF0Y2hXaWR0aDoid2lkZSIscGFyc2VQYXR0ZXJuczpVZnIsZGVmYXVsdFBhcnNlV2lkdGg6ImFueSJ9KSxkYXlQZXJpb2Q6TzUoe21hdGNoUGF0dGVybnM6V2ZyLGRlZmF1bHRNYXRjaFdpZHRoOiJhbnkiLHBhcnNlUGF0dGVybnM6R2ZyLGRlZmF1bHRQYXJzZVdpZHRoOiJhbnkifSl9fSk7dmFyIG1uLFd1MSxIaGU9cCgoKT0+e1RoZSgpO0FoZSgpO0VoZSgpO1BoZSgpO0JoZSgpO21uPXtjb2RlOiJlbi1VUyIsZm9ybWF0RGlzdGFuY2U6Q2hlLGZvcm1hdExvbmc6TGhlLGZvcm1hdFJlbGF0aXZlOkRoZSxsb2NhbGl6ZTpJaGUsbWF0Y2g6UmhlLG9wdGlvbnM6e3dlZWtTdGFydHNPbjowLGZpcnN0V2Vla0NvbnRhaW5zRGF0ZToxfX0sV3UxPW1ufSk7dmFyIHczPXAoKCk9PntIaGUoKX0pO2Z1bmN0aW9uIFF4KGUsdCl7bGV0IHI9bGUoZSx0Py5pbik7cmV0dXJuIFRpKHIsTjUocikpKzF9dmFyIEt1MSxkSD1wKCgpPT57YmwoKTtZeCgpO09lKCk7S3UxPVF4fSk7ZnVuY3Rpb24gUjUoZSx0KXtsZXQgcj1sZShlLHQ/LmluKSxpPStRMShyKS0rRG4ocik7cmV0dXJuIE1hdGgucm91bmQoaS9aMikrMX12YXIgbjgxLEp4PXAoKCk9PntPdCgpO0syKCk7QzUoKTtPZSgpO244MT1SNX0pO2Z1bmN0aW9uIEtjKGUsdCl7bGV0IHI9bGUoZSx0Py5pbiksaT1yLmdldEZ1bGxZZWFyKCksYT1McigpLG49dD8uZmlyc3RXZWVrQ29udGFpbnNEYXRlPz90Py5sb2NhbGU/Lm9wdGlvbnM/LmZpcnN0V2Vla0NvbnRhaW5zRGF0ZT8/YS5maXJzdFdlZWtDb250YWluc0RhdGU/P2EubG9jYWxlPy5vcHRpb25zPy5maXJzdFdlZWtDb250YWluc0RhdGU/PzEsbz1QZSh0Py5pbnx8ZSwwKTtvLnNldEZ1bGxZZWFyKGkrMSwwLG4pLG8uc2V0SG91cnMoMCwwLDAsMCk7bGV0IHM9SnIobyx0KSxsPVBlKHQ/LmlufHxlLDApO2wuc2V0RnVsbFllYXIoaSwwLG4pLGwuc2V0SG91cnMoMCwwLDAsMCk7bGV0IGM9SnIobCx0KTtyZXR1cm4rcj49K3M/aSsxOityPj0rYz9pOmktMX12YXIgdTgxLG1mPXAoKCk9PntkYSgpO2Z0KCk7cjIoKTtPZSgpO3U4MT1LY30pO2Z1bmN0aW9uIE0zKGUsdCl7bGV0IHI9THIoKSxpPXQ/LmZpcnN0V2Vla0NvbnRhaW5zRGF0ZT8/dD8ubG9jYWxlPy5vcHRpb25zPy5maXJzdFdlZWtDb250YWluc0RhdGU/P3IuZmlyc3RXZWVrQ29udGFpbnNEYXRlPz9yLmxvY2FsZT8ub3B0aW9ucz8uZmlyc3RXZWVrQ29udGFpbnNEYXRlPz8xLGE9S2MoZSx0KSxuPVBlKHQ/LmlufHxlLDApO3JldHVybiBuLnNldEZ1bGxZZWFyKGEsMCxpKSxuLnNldEhvdXJzKDAsMCwwLDApLEpyKG4sdCl9dmFyIGI4MSxLeD1wKCgpPT57ZGEoKTtmdCgpO21mKCk7cjIoKTtiODE9TTN9KTtmdW5jdGlvbiBCNShlLHQpe2xldCByPWxlKGUsdD8uaW4pLGk9K0pyKHIsdCktK00zKHIsdCk7cmV0dXJuIE1hdGgucm91bmQoaS9aMikrMX12YXIgazgxLGV5PXAoKCk9PntPdCgpO3IyKCk7S3goKTtPZSgpO2s4MT1CNX0pO2Z1bmN0aW9uIGF0KGUsdCl7bGV0IHI9ZTwwPyItIjoiIixpPU1hdGguYWJzKGUpLnRvU3RyaW5nKCkucGFkU3RhcnQodCwiMCIpO3JldHVybiByK2l9dmFyIGszPXAoKCk9Pnt9KTt2YXIgRW4sdUg9cCgoKT0+e2szKCk7RW49e3koZSx0KXtsZXQgcj1lLmdldEZ1bGxZZWFyKCksaT1yPjA/cjoxLXI7cmV0dXJuIGF0KHQ9PT0ieXkiP2klMTAwOmksdC5sZW5ndGgpfSxNKGUsdCl7bGV0IHI9ZS5nZXRNb250aCgpO3JldHVybiB0PT09Ik0iP1N0cmluZyhyKzEpOmF0KHIrMSwyKX0sZChlLHQpe3JldHVybiBhdChlLmdldERhdGUoKSx0Lmxlbmd0aCl9LGEoZSx0KXtsZXQgcj1lLmdldEhvdXJzKCkvMTI+PTE/InBtIjoiYW0iO3N3aXRjaCh0KXtjYXNlImEiOmNhc2UiYWEiOnJldHVybiByLnRvVXBwZXJDYXNlKCk7Y2FzZSJhYWEiOnJldHVybiByO2Nhc2UiYWFhYWEiOnJldHVybiByWzBdO2RlZmF1bHQ6cmV0dXJuIHI9PT0iYW0iPyJhLm0uIjoicC5tLiJ9fSxoKGUsdCl7cmV0dXJuIGF0KGUuZ2V0SG91cnMoKSUxMnx8MTIsdC5sZW5ndGgpfSxIKGUsdCl7cmV0dXJuIGF0KGUuZ2V0SG91cnMoKSx0Lmxlbmd0aCl9LG0oZSx0KXtyZXR1cm4gYXQoZS5nZXRNaW51dGVzKCksdC5sZW5ndGgpfSxzKGUsdCl7cmV0dXJuIGF0KGUuZ2V0U2Vjb25kcygpLHQubGVuZ3RoKX0sUyhlLHQpe2xldCByPXQubGVuZ3RoLGk9ZS5nZXRNaWxsaXNlY29uZHMoKSxhPU1hdGgudHJ1bmMoaSpNYXRoLnBvdygxMCxyLTMpKTtyZXR1cm4gYXQoYSx0Lmxlbmd0aCl9fX0pO2Z1bmN0aW9uIHFoZShlLHQ9IiIpe2xldCByPWU+MD8iLSI6IisiLGk9TWF0aC5hYnMoZSksYT1NYXRoLnRydW5jKGkvNjApLG49aSU2MDtyZXR1cm4gbj09PTA/citTdHJpbmcoYSk6citTdHJpbmcoYSkrdCthdChuLDIpfWZ1bmN0aW9uIGpoZShlLHQpe3JldHVybiBlJTYwPT09MD8oZT4wPyItIjoiKyIpK2F0KE1hdGguYWJzKGUpLzYwLDIpOlMzKGUsdCl9ZnVuY3Rpb24gUzMoZSx0PSIiKXtsZXQgcj1lPjA/Ii0iOiIrIixpPU1hdGguYWJzKGUpLGE9YXQoTWF0aC50cnVuYyhpLzYwKSwyKSxuPWF0KGklNjAsMik7cmV0dXJuIHIrYSt0K259dmFyIEg1LGdmLFZoZT1wKCgpPT57ZEgoKTtKeCgpO1ljKCk7ZXkoKTttZigpO2szKCk7dUgoKTtINT17YW06ImFtIixwbToicG0iLG1pZG5pZ2h0OiJtaWRuaWdodCIsbm9vbjoibm9vbiIsbW9ybmluZzoibW9ybmluZyIsYWZ0ZXJub29uOiJhZnRlcm5vb24iLGV2ZW5pbmc6ImV2ZW5pbmciLG5pZ2h0OiJuaWdodCJ9LGdmPXtHOmZ1bmN0aW9uKGUsdCxyKXtsZXQgaT1lLmdldEZ1bGxZZWFyKCk+MD8xOjA7c3dpdGNoKHQpe2Nhc2UiRyI6Y2FzZSJHRyI6Y2FzZSJHR0ciOnJldHVybiByLmVyYShpLHt3aWR0aDoiYWJicmV2aWF0ZWQifSk7Y2FzZSJHR0dHRyI6cmV0dXJuIHIuZXJhKGkse3dpZHRoOiJuYXJyb3cifSk7ZGVmYXVsdDpyZXR1cm4gci5lcmEoaSx7d2lkdGg6IndpZGUifSl9fSx5OmZ1bmN0aW9uKGUsdCxyKXtpZih0PT09InlvIil7bGV0IGk9ZS5nZXRGdWxsWWVhcigpLGE9aT4wP2k6MS1pO3JldHVybiByLm9yZGluYWxOdW1iZXIoYSx7dW5pdDoieWVhciJ9KX1yZXR1cm4gRW4ueShlLHQpfSxZOmZ1bmN0aW9uKGUsdCxyLGkpe2xldCBhPUtjKGUsaSksbj1hPjA/YToxLWE7aWYodD09PSJZWSIpe2xldCBvPW4lMTAwO3JldHVybiBhdChvLDIpfXJldHVybiB0PT09IllvIj9yLm9yZGluYWxOdW1iZXIobix7dW5pdDoieWVhciJ9KTphdChuLHQubGVuZ3RoKX0sUjpmdW5jdGlvbihlLHQpe2xldCByPXFhKGUpO3JldHVybiBhdChyLHQubGVuZ3RoKX0sdTpmdW5jdGlvbihlLHQpe2xldCByPWUuZ2V0RnVsbFllYXIoKTtyZXR1cm4gYXQocix0Lmxlbmd0aCl9LFE6ZnVuY3Rpb24oZSx0LHIpe2xldCBpPU1hdGguY2VpbCgoZS5nZXRNb250aCgpKzEpLzMpO3N3aXRjaCh0KXtjYXNlIlEiOnJldHVybiBTdHJpbmcoaSk7Y2FzZSJRUSI6cmV0dXJuIGF0KGksMik7Y2FzZSJRbyI6cmV0dXJuIHIub3JkaW5hbE51bWJlcihpLHt1bml0OiJxdWFydGVyIn0pO2Nhc2UiUVFRIjpyZXR1cm4gci5xdWFydGVyKGkse3dpZHRoOiJhYmJyZXZpYXRlZCIsY29udGV4dDoiZm9ybWF0dGluZyJ9KTtjYXNlIlFRUVFRIjpyZXR1cm4gci5xdWFydGVyKGkse3dpZHRoOiJuYXJyb3ciLGNvbnRleHQ6ImZvcm1hdHRpbmcifSk7ZGVmYXVsdDpyZXR1cm4gci5xdWFydGVyKGkse3dpZHRoOiJ3aWRlIixjb250ZXh0OiJmb3JtYXR0aW5nIn0pfX0scTpmdW5jdGlvbihlLHQscil7bGV0IGk9TWF0aC5jZWlsKChlLmdldE1vbnRoKCkrMSkvMyk7c3dpdGNoKHQpe2Nhc2UicSI6cmV0dXJuIFN0cmluZyhpKTtjYXNlInFxIjpyZXR1cm4gYXQoaSwyKTtjYXNlInFvIjpyZXR1cm4gci5vcmRpbmFsTnVtYmVyKGkse3VuaXQ6InF1YXJ0ZXIifSk7Y2FzZSJxcXEiOnJldHVybiByLnF1YXJ0ZXIoaSx7d2lkdGg6ImFiYnJldmlhdGVkIixjb250ZXh0OiJzdGFuZGFsb25lIn0pO2Nhc2UicXFxcXEiOnJldHVybiByLnF1YXJ0ZXIoaSx7d2lkdGg6Im5hcnJvdyIsY29udGV4dDoic3RhbmRhbG9uZSJ9KTtkZWZhdWx0OnJldHVybiByLnF1YXJ0ZXIoaSx7d2lkdGg6IndpZGUiLGNvbnRleHQ6InN0YW5kYWxvbmUifSl9fSxNOmZ1bmN0aW9uKGUsdCxyKXtsZXQgaT1lLmdldE1vbnRoKCk7c3dpdGNoKHQpe2Nhc2UiTSI6Y2FzZSJNTSI6cmV0dXJuIEVuLk0oZSx0KTtjYXNlIk1vIjpyZXR1cm4gci5vcmRpbmFsTnVtYmVyKGkrMSx7dW5pdDoibW9udGgifSk7Y2FzZSJNTU0iOnJldHVybiByLm1vbnRoKGkse3dpZHRoOiJhYmJyZXZpYXRlZCIsY29udGV4dDoiZm9ybWF0dGluZyJ9KTtjYXNlIk1NTU1NIjpyZXR1cm4gci5tb250aChpLHt3aWR0aDoibmFycm93Iixjb250ZXh0OiJmb3JtYXR0aW5nIn0pO2RlZmF1bHQ6cmV0dXJuIHIubW9udGgoaSx7d2lkdGg6IndpZGUiLGNvbnRleHQ6ImZvcm1hdHRpbmcifSl9fSxMOmZ1bmN0aW9uKGUsdCxyKXtsZXQgaT1lLmdldE1vbnRoKCk7c3dpdGNoKHQpe2Nhc2UiTCI6cmV0dXJuIFN0cmluZyhpKzEpO2Nhc2UiTEwiOnJldHVybiBhdChpKzEsMik7Y2FzZSJMbyI6cmV0dXJuIHIub3JkaW5hbE51bWJlcihpKzEse3VuaXQ6Im1vbnRoIn0pO2Nhc2UiTExMIjpyZXR1cm4gci5tb250aChpLHt3aWR0aDoiYWJicmV2aWF0ZWQiLGNvbnRleHQ6InN0YW5kYWxvbmUifSk7Y2FzZSJMTExMTCI6cmV0dXJuIHIubW9udGgoaSx7d2lkdGg6Im5hcnJvdyIsY29udGV4dDoic3RhbmRhbG9uZSJ9KTtkZWZhdWx0OnJldHVybiByLm1vbnRoKGkse3dpZHRoOiJ3aWRlIixjb250ZXh0OiJzdGFuZGFsb25lIn0pfX0sdzpmdW5jdGlvbihlLHQscixpKXtsZXQgYT1CNShlLGkpO3JldHVybiB0PT09IndvIj9yLm9yZGluYWxOdW1iZXIoYSx7dW5pdDoid2VlayJ9KTphdChhLHQubGVuZ3RoKX0sSTpmdW5jdGlvbihlLHQscil7bGV0IGk9UjUoZSk7cmV0dXJuIHQ9PT0iSW8iP3Iub3JkaW5hbE51bWJlcihpLHt1bml0OiJ3ZWVrIn0pOmF0KGksdC5sZW5ndGgpfSxkOmZ1bmN0aW9uKGUsdCxyKXtyZXR1cm4gdD09PSJkbyI/ci5vcmRpbmFsTnVtYmVyKGUuZ2V0RGF0ZSgpLHt1bml0OiJkYXRlIn0pOkVuLmQoZSx0KX0sRDpmdW5jdGlvbihlLHQscil7bGV0IGk9UXgoZSk7cmV0dXJuIHQ9PT0iRG8iP3Iub3JkaW5hbE51bWJlcihpLHt1bml0OiJkYXlPZlllYXIifSk6YXQoaSx0Lmxlbmd0aCl9LEU6ZnVuY3Rpb24oZSx0LHIpe2xldCBpPWUuZ2V0RGF5KCk7c3dpdGNoKHQpe2Nhc2UiRSI6Y2FzZSJFRSI6Y2FzZSJFRUUiOnJldHVybiByLmRheShpLHt3aWR0aDoiYWJicmV2aWF0ZWQiLGNvbnRleHQ6ImZvcm1hdHRpbmcifSk7Y2FzZSJFRUVFRSI6cmV0dXJuIHIuZGF5KGkse3dpZHRoOiJuYXJyb3ciLGNvbnRleHQ6ImZvcm1hdHRpbmcifSk7Y2FzZSJFRUVFRUUiOnJldHVybiByLmRheShpLHt3aWR0aDoic2hvcnQiLGNvbnRleHQ6ImZvcm1hdHRpbmcifSk7ZGVmYXVsdDpyZXR1cm4gci5kYXkoaSx7d2lkdGg6IndpZGUiLGNvbnRleHQ6ImZvcm1hdHRpbmcifSl9fSxlOmZ1bmN0aW9uKGUsdCxyLGkpe2xldCBhPWUuZ2V0RGF5KCksbj0oYS1pLndlZWtTdGFydHNPbis4KSU3fHw3O3N3aXRjaCh0KXtjYXNlImUiOnJldHVybiBTdHJpbmcobik7Y2FzZSJlZSI6cmV0dXJuIGF0KG4sMik7Y2FzZSJlbyI6cmV0dXJuIHIub3JkaW5hbE51bWJlcihuLHt1bml0OiJkYXkifSk7Y2FzZSJlZWUiOnJldHVybiByLmRheShhLHt3aWR0aDoiYWJicmV2aWF0ZWQiLGNvbnRleHQ6ImZvcm1hdHRpbmcifSk7Y2FzZSJlZWVlZSI6cmV0dXJuIHIuZGF5KGEse3dpZHRoOiJuYXJyb3ciLGNvbnRleHQ6ImZvcm1hdHRpbmcifSk7Y2FzZSJlZWVlZWUiOnJldHVybiByLmRheShhLHt3aWR0aDoic2hvcnQiLGNvbnRleHQ6ImZvcm1hdHRpbmcifSk7ZGVmYXVsdDpyZXR1cm4gci5kYXkoYSx7d2lkdGg6IndpZGUiLGNvbnRleHQ6ImZvcm1hdHRpbmcifSl9fSxjOmZ1bmN0aW9uKGUsdCxyLGkpe2xldCBhPWUuZ2V0RGF5KCksbj0oYS1pLndlZWtTdGFydHNPbis4KSU3fHw3O3N3aXRjaCh0KXtjYXNlImMiOnJldHVybiBTdHJpbmcobik7Y2FzZSJjYyI6cmV0dXJuIGF0KG4sdC5sZW5ndGgpO2Nhc2UiY28iOnJldHVybiByLm9yZGluYWxOdW1iZXIobix7dW5pdDoiZGF5In0pO2Nhc2UiY2NjIjpyZXR1cm4gci5kYXkoYSx7d2lkdGg6ImFiYnJldmlhdGVkIixjb250ZXh0OiJzdGFuZGFsb25lIn0pO2Nhc2UiY2NjY2MiOnJldHVybiByLmRheShhLHt3aWR0aDoibmFycm93Iixjb250ZXh0OiJzdGFuZGFsb25lIn0pO2Nhc2UiY2NjY2NjIjpyZXR1cm4gci5kYXkoYSx7d2lkdGg6InNob3J0Iixjb250ZXh0OiJzdGFuZGFsb25lIn0pO2RlZmF1bHQ6cmV0dXJuIHIuZGF5KGEse3dpZHRoOiJ3aWRlIixjb250ZXh0OiJzdGFuZGFsb25lIn0pfX0saTpmdW5jdGlvbihlLHQscil7bGV0IGk9ZS5nZXREYXkoKSxhPWk9PT0wPzc6aTtzd2l0Y2godCl7Y2FzZSJpIjpyZXR1cm4gU3RyaW5nKGEpO2Nhc2UiaWkiOnJldHVybiBhdChhLHQubGVuZ3RoKTtjYXNlImlvIjpyZXR1cm4gci5vcmRpbmFsTnVtYmVyKGEse3VuaXQ6ImRheSJ9KTtjYXNlImlpaSI6cmV0dXJuIHIuZGF5KGkse3dpZHRoOiJhYmJyZXZpYXRlZCIsY29udGV4dDoiZm9ybWF0dGluZyJ9KTtjYXNlImlpaWlpIjpyZXR1cm4gci5kYXkoaSx7d2lkdGg6Im5hcnJvdyIsY29udGV4dDoiZm9ybWF0dGluZyJ9KTtjYXNlImlpaWlpaSI6cmV0dXJuIHIuZGF5KGkse3dpZHRoOiJzaG9ydCIsY29udGV4dDoiZm9ybWF0dGluZyJ9KTtkZWZhdWx0OnJldHVybiByLmRheShpLHt3aWR0aDoid2lkZSIsY29udGV4dDoiZm9ybWF0dGluZyJ9KX19LGE6ZnVuY3Rpb24oZSx0LHIpe2xldCBhPWUuZ2V0SG91cnMoKS8xMj49MT8icG0iOiJhbSI7c3dpdGNoKHQpe2Nhc2UiYSI6Y2FzZSJhYSI6cmV0dXJuIHIuZGF5UGVyaW9kKGEse3dpZHRoOiJhYmJyZXZpYXRlZCIsY29udGV4dDoiZm9ybWF0dGluZyJ9KTtjYXNlImFhYSI6cmV0dXJuIHIuZGF5UGVyaW9kKGEse3dpZHRoOiJhYmJyZXZpYXRlZCIsY29udGV4dDoiZm9ybWF0dGluZyJ9KS50b0xvd2VyQ2FzZSgpO2Nhc2UiYWFhYWEiOnJldHVybiByLmRheVBlcmlvZChhLHt3aWR0aDoibmFycm93Iixjb250ZXh0OiJmb3JtYXR0aW5nIn0pO2RlZmF1bHQ6cmV0dXJuIHIuZGF5UGVyaW9kKGEse3dpZHRoOiJ3aWRlIixjb250ZXh0OiJmb3JtYXR0aW5nIn0pfX0sYjpmdW5jdGlvbihlLHQscil7bGV0IGk9ZS5nZXRIb3VycygpLGE7c3dpdGNoKGk9PT0xMj9hPUg1Lm5vb246aT09PTA/YT1INS5taWRuaWdodDphPWkvMTI+PTE/InBtIjoiYW0iLHQpe2Nhc2UiYiI6Y2FzZSJiYiI6cmV0dXJuIHIuZGF5UGVyaW9kKGEse3dpZHRoOiJhYmJyZXZpYXRlZCIsY29udGV4dDoiZm9ybWF0dGluZyJ9KTtjYXNlImJiYiI6cmV0dXJuIHIuZGF5UGVyaW9kKGEse3dpZHRoOiJhYmJyZXZpYXRlZCIsY29udGV4dDoiZm9ybWF0dGluZyJ9KS50b0xvd2VyQ2FzZSgpO2Nhc2UiYmJiYmIiOnJldHVybiByLmRheVBlcmlvZChhLHt3aWR0aDoibmFycm93Iixjb250ZXh0OiJmb3JtYXR0aW5nIn0pO2RlZmF1bHQ6cmV0dXJuIHIuZGF5UGVyaW9kKGEse3dpZHRoOiJ3aWRlIixjb250ZXh0OiJmb3JtYXR0aW5nIn0pfX0sQjpmdW5jdGlvbihlLHQscil7bGV0IGk9ZS5nZXRIb3VycygpLGE7c3dpdGNoKGk+PTE3P2E9SDUuZXZlbmluZzppPj0xMj9hPUg1LmFmdGVybm9vbjppPj00P2E9SDUubW9ybmluZzphPUg1Lm5pZ2h0LHQpe2Nhc2UiQiI6Y2FzZSJCQiI6Y2FzZSJCQkIiOnJldHVybiByLmRheVBlcmlvZChhLHt3aWR0aDoiYWJicmV2aWF0ZWQiLGNvbnRleHQ6ImZvcm1hdHRpbmcifSk7Y2FzZSJCQkJCQiI6cmV0dXJuIHIuZGF5UGVyaW9kKGEse3dpZHRoOiJuYXJyb3ciLGNvbnRleHQ6ImZvcm1hdHRpbmcifSk7ZGVmYXVsdDpyZXR1cm4gci5kYXlQZXJpb2QoYSx7d2lkdGg6IndpZGUiLGNvbnRleHQ6ImZvcm1hdHRpbmcifSl9fSxoOmZ1bmN0aW9uKGUsdCxyKXtpZih0PT09ImhvIil7bGV0IGk9ZS5nZXRIb3VycygpJTEyO3JldHVybiBpPT09MCYmKGk9MTIpLHIub3JkaW5hbE51bWJlcihpLHt1bml0OiJob3VyIn0pfXJldHVybiBFbi5oKGUsdCl9LEg6ZnVuY3Rpb24oZSx0LHIpe3JldHVybiB0PT09IkhvIj9yLm9yZGluYWxOdW1iZXIoZS5nZXRIb3VycygpLHt1bml0OiJob3VyIn0pOkVuLkgoZSx0KX0sSzpmdW5jdGlvbihlLHQscil7bGV0IGk9ZS5nZXRIb3VycygpJTEyO3JldHVybiB0PT09IktvIj9yLm9yZGluYWxOdW1iZXIoaSx7dW5pdDoiaG91ciJ9KTphdChpLHQubGVuZ3RoKX0sazpmdW5jdGlvbihlLHQscil7bGV0IGk9ZS5nZXRIb3VycygpO3JldHVybiBpPT09MCYmKGk9MjQpLHQ9PT0ia28iP3Iub3JkaW5hbE51bWJlcihpLHt1bml0OiJob3VyIn0pOmF0KGksdC5sZW5ndGgpfSxtOmZ1bmN0aW9uKGUsdCxyKXtyZXR1cm4gdD09PSJtbyI/ci5vcmRpbmFsTnVtYmVyKGUuZ2V0TWludXRlcygpLHt1bml0OiJtaW51dGUifSk6RW4ubShlLHQpfSxzOmZ1bmN0aW9uKGUsdCxyKXtyZXR1cm4gdD09PSJzbyI/ci5vcmRpbmFsTnVtYmVyKGUuZ2V0U2Vjb25kcygpLHt1bml0OiJzZWNvbmQifSk6RW4ucyhlLHQpfSxTOmZ1bmN0aW9uKGUsdCl7cmV0dXJuIEVuLlMoZSx0KX0sWDpmdW5jdGlvbihlLHQscil7bGV0IGk9ZS5nZXRUaW1lem9uZU9mZnNldCgpO2lmKGk9PT0wKXJldHVybiJaIjtzd2l0Y2godCl7Y2FzZSJYIjpyZXR1cm4gamhlKGkpO2Nhc2UiWFhYWCI6Y2FzZSJYWCI6cmV0dXJuIFMzKGkpO2RlZmF1bHQ6cmV0dXJuIFMzKGksIjoiKX19LHg6ZnVuY3Rpb24oZSx0LHIpe2xldCBpPWUuZ2V0VGltZXpvbmVPZmZzZXQoKTtzd2l0Y2godCl7Y2FzZSJ4IjpyZXR1cm4gamhlKGkpO2Nhc2UieHh4eCI6Y2FzZSJ4eCI6cmV0dXJuIFMzKGkpO2RlZmF1bHQ6cmV0dXJuIFMzKGksIjoiKX19LE86ZnVuY3Rpb24oZSx0LHIpe2xldCBpPWUuZ2V0VGltZXpvbmVPZmZzZXQoKTtzd2l0Y2godCl7Y2FzZSJPIjpjYXNlIk9PIjpjYXNlIk9PTyI6cmV0dXJuIkdNVCIrcWhlKGksIjoiKTtkZWZhdWx0OnJldHVybiJHTVQiK1MzKGksIjoiKX19LHo6ZnVuY3Rpb24oZSx0LHIpe2xldCBpPWUuZ2V0VGltZXpvbmVPZmZzZXQoKTtzd2l0Y2godCl7Y2FzZSJ6IjpjYXNlInp6IjpjYXNlInp6eiI6cmV0dXJuIkdNVCIrcWhlKGksIjoiKTtkZWZhdWx0OnJldHVybiJHTVQiK1MzKGksIjoiKX19LHQ6ZnVuY3Rpb24oZSx0LHIpe2xldCBpPU1hdGgudHJ1bmMoK2UvMWUzKTtyZXR1cm4gYXQoaSx0Lmxlbmd0aCl9LFQ6ZnVuY3Rpb24oZSx0LHIpe3JldHVybiBhdCgrZSx0Lmxlbmd0aCl9fX0pO3ZhciBVaGUsV2hlLFlmcixlMCxwSD1wKCgpPT57VWhlPShlLHQpPT57c3dpdGNoKGUpe2Nhc2UiUCI6cmV0dXJuIHQuZGF0ZSh7d2lkdGg6InNob3J0In0pO2Nhc2UiUFAiOnJldHVybiB0LmRhdGUoe3dpZHRoOiJtZWRpdW0ifSk7Y2FzZSJQUFAiOnJldHVybiB0LmRhdGUoe3dpZHRoOiJsb25nIn0pO2RlZmF1bHQ6cmV0dXJuIHQuZGF0ZSh7d2lkdGg6ImZ1bGwifSl9fSxXaGU9KGUsdCk9Pntzd2l0Y2goZSl7Y2FzZSJwIjpyZXR1cm4gdC50aW1lKHt3aWR0aDoic2hvcnQifSk7Y2FzZSJwcCI6cmV0dXJuIHQudGltZSh7d2lkdGg6Im1lZGl1bSJ9KTtjYXNlInBwcCI6cmV0dXJuIHQudGltZSh7d2lkdGg6ImxvbmcifSk7ZGVmYXVsdDpyZXR1cm4gdC50aW1lKHt3aWR0aDoiZnVsbCJ9KX19LFlmcj0oZSx0KT0+e2xldCByPWUubWF0Y2goLyhQKykocCspPy8pfHxbXSxpPXJbMV0sYT1yWzJdO2lmKCFhKXJldHVybiBVaGUoZSx0KTtsZXQgbjtzd2l0Y2goaSl7Y2FzZSJQIjpuPXQuZGF0ZVRpbWUoe3dpZHRoOiJzaG9ydCJ9KTticmVhaztjYXNlIlBQIjpuPXQuZGF0ZVRpbWUoe3dpZHRoOiJtZWRpdW0ifSk7YnJlYWs7Y2FzZSJQUFAiOm49dC5kYXRlVGltZSh7d2lkdGg6ImxvbmcifSk7YnJlYWs7ZGVmYXVsdDpuPXQuZGF0ZVRpbWUoe3dpZHRoOiJmdWxsIn0pO2JyZWFrfXJldHVybiBuLnJlcGxhY2UoInt7ZGF0ZX19IixVaGUoaSx0KSkucmVwbGFjZSgie3t0aW1lfX0iLFdoZShhLHQpKX0sZTA9e3A6V2hlLFA6WWZyfX0pO2Z1bmN0aW9uIHR5KGUpe3JldHVybiBaZnIudGVzdChlKX1mdW5jdGlvbiByeShlKXtyZXR1cm4gWGZyLnRlc3QoZSl9ZnVuY3Rpb24gYmYoZSx0LHIpe2xldCBpPUpmcihlLHQscik7aWYoY29uc29sZS53YXJuKGkpLFFmci5pbmNsdWRlcyhlKSl0aHJvdyBuZXcgUmFuZ2VFcnJvcihpKX1mdW5jdGlvbiBKZnIoZSx0LHIpe2xldCBpPWVbMF09PT0iWSI/InllYXJzIjoiZGF5cyBvZiB0aGUgbW9udGgiO3JldHVybmBVc2UgXGAke2UudG9Mb3dlckNhc2UoKX1cYCBpbnN0ZWFkIG9mIFxgJHtlfVxgIChpbiBcYCR7dH1cYCkgZm9yIGZvcm1hdHRpbmcgJHtpfSB0byB0aGUgaW5wdXQgXGAke3J9XGA7IHNlZTogaHR0cHM6Ly9naXRodWIuY29tL2RhdGUtZm5zL2RhdGUtZm5zL2Jsb2IvbWFzdGVyL2RvY3MvdW5pY29kZVRva2Vucy5tZGB9dmFyIFpmcixYZnIsUWZyLGhIPXAoKCk9PntaZnI9L15EKyQvLFhmcj0vXlkrJC8sUWZyPVsiRCIsIkREIiwiWVkiLCJZWVlZIl19KTtmdW5jdGlvbiB2ZihlLHQscil7bGV0IGk9THIoKSxhPXI/LmxvY2FsZT8/aS5sb2NhbGU/P21uLG49cj8uZmlyc3RXZWVrQ29udGFpbnNEYXRlPz9yPy5sb2NhbGU/Lm9wdGlvbnM/LmZpcnN0V2Vla0NvbnRhaW5zRGF0ZT8/aS5maXJzdFdlZWtDb250YWluc0RhdGU/P2kubG9jYWxlPy5vcHRpb25zPy5maXJzdFdlZWtDb250YWluc0RhdGU/PzEsbz1yPy53ZWVrU3RhcnRzT24/P3I/LmxvY2FsZT8ub3B0aW9ucz8ud2Vla1N0YXJ0c09uPz9pLndlZWtTdGFydHNPbj8/aS5sb2NhbGU/Lm9wdGlvbnM/LndlZWtTdGFydHNPbj8/MCxzPWxlKGUscj8uaW4pO2lmKCFVaShzKSl0aHJvdyBuZXcgUmFuZ2VFcnJvcigiSW52YWxpZCB0aW1lIHZhbHVlIik7bGV0IGw9dC5tYXRjaChlN3IpLm1hcCh1PT57bGV0IGQ9dVswXTtpZihkPT09InAifHxkPT09IlAiKXtsZXQgaD1lMFtkXTtyZXR1cm4gaCh1LGEuZm9ybWF0TG9uZyl9cmV0dXJuIHV9KS5qb2luKCIiKS5tYXRjaChLZnIpLm1hcCh1PT57aWYodT09PSInJyIpcmV0dXJue2lzVG9rZW46ITEsdmFsdWU6IicifTtsZXQgZD11WzBdO2lmKGQ9PT0iJyIpcmV0dXJue2lzVG9rZW46ITEsdmFsdWU6YTdyKHUpfTtpZihnZltkXSlyZXR1cm57aXNUb2tlbjohMCx2YWx1ZTp1fTtpZihkLm1hdGNoKGk3cikpdGhyb3cgbmV3IFJhbmdlRXJyb3IoIkZvcm1hdCBzdHJpbmcgY29udGFpbnMgYW4gdW5lc2NhcGVkIGxhdGluIGFscGhhYmV0IGNoYXJhY3RlciBgIitkKyJgIik7cmV0dXJue2lzVG9rZW46ITEsdmFsdWU6dX19KTthLmxvY2FsaXplLnByZXByb2Nlc3NvciYmKGw9YS5sb2NhbGl6ZS5wcmVwcm9jZXNzb3IocyxsKSk7bGV0IGM9e2ZpcnN0V2Vla0NvbnRhaW5zRGF0ZTpuLHdlZWtTdGFydHNPbjpvLGxvY2FsZTphfTtyZXR1cm4gbC5tYXAodT0+e2lmKCF1LmlzVG9rZW4pcmV0dXJuIHUudmFsdWU7bGV0IGQ9dS52YWx1ZTsoIXI/LnVzZUFkZGl0aW9uYWxXZWVrWWVhclRva2VucyYmcnkoZCl8fCFyPy51c2VBZGRpdGlvbmFsRGF5T2ZZZWFyVG9rZW5zJiZ0eShkKSkmJmJmKGQsdCxTdHJpbmcoZSkpO2xldCBoPWdmW2RbMF1dO3JldHVybiBoKHMsZCxhLmxvY2FsaXplLGMpfSkuam9pbigiIil9ZnVuY3Rpb24gYTdyKGUpe2xldCB0PWUubWF0Y2godDdyKTtyZXR1cm4gdD90WzFdLnJlcGxhY2UocjdyLCInIik6ZX12YXIgS2ZyLGU3cix0N3IscjdyLGk3cixVODEsZkg9cCgoKT0+e3czKCk7ZGEoKTtWaGUoKTtwSCgpO2hIKCk7dmwoKTtPZSgpO0tmcj0vW3lZUXFNTHdJZERlY2loSEtrbXNdb3woXHcpXDEqfCcnfCcoJyd8W14nXSkrKCd8JCl8Li9nLGU3cj0vUCtwK3xQK3xwK3wnJ3wnKCcnfFteJ10pKygnfCQpfC4vZyx0N3I9L14nKFteXSo/KSc/JC8scjdyPS8nJy9nLGk3cj0vW2EtekEtWl0vO1U4MT12Zn0pO2Z1bmN0aW9uIGl5KGUsdCxyKXtsZXQgaT1McigpLGE9cj8ubG9jYWxlPz9pLmxvY2FsZT8/bW4sbj0yNTIwLG89dWEoZSx0KTtpZihpc05hTihvKSl0aHJvdyBuZXcgUmFuZ2VFcnJvcigiSW52YWxpZCB0aW1lIHZhbHVlIik7bGV0IHM9T2JqZWN0LmFzc2lnbih7fSxyLHthZGRTdWZmaXg6cj8uYWRkU3VmZml4LGNvbXBhcmlzb246b30pLFtsLGNdPWR0KHI/LmluLC4uLm8+MD9bdCxlXTpbZSx0XSksdT1ycyhjLGwpLGQ9KEMxKGMpLUMxKGwpKS8xZTMsaD1NYXRoLnJvdW5kKCh1LWQpLzYwKSxmO2lmKGg8MilyZXR1cm4gcj8uaW5jbHVkZVNlY29uZHM/dTw1P2EuZm9ybWF0RGlzdGFuY2UoImxlc3NUaGFuWFNlY29uZHMiLDUscyk6dTwxMD9hLmZvcm1hdERpc3RhbmNlKCJsZXNzVGhhblhTZWNvbmRzIiwxMCxzKTp1PDIwP2EuZm9ybWF0RGlzdGFuY2UoImxlc3NUaGFuWFNlY29uZHMiLDIwLHMpOnU8NDA/YS5mb3JtYXREaXN0YW5jZSgiaGFsZkFNaW51dGUiLDAscyk6dTw2MD9hLmZvcm1hdERpc3RhbmNlKCJsZXNzVGhhblhNaW51dGVzIiwxLHMpOmEuZm9ybWF0RGlzdGFuY2UoInhNaW51dGVzIiwxLHMpOmg9PT0wP2EuZm9ybWF0RGlzdGFuY2UoImxlc3NUaGFuWE1pbnV0ZXMiLDEscyk6YS5mb3JtYXREaXN0YW5jZSgieE1pbnV0ZXMiLGgscyk7aWYoaDw0NSlyZXR1cm4gYS5mb3JtYXREaXN0YW5jZSgieE1pbnV0ZXMiLGgscyk7aWYoaDw5MClyZXR1cm4gYS5mb3JtYXREaXN0YW5jZSgiYWJvdXRYSG91cnMiLDEscyk7aWYoaDxrNSl7bGV0IHg9TWF0aC5yb3VuZChoLzYwKTtyZXR1cm4gYS5mb3JtYXREaXN0YW5jZSgiYWJvdXRYSG91cnMiLHgscyl9ZWxzZXtpZihoPG4pcmV0dXJuIGEuZm9ybWF0RGlzdGFuY2UoInhEYXlzIiwxLHMpO2lmKGg8VWMpe2xldCB4PU1hdGgucm91bmQoaC9rNSk7cmV0dXJuIGEuZm9ybWF0RGlzdGFuY2UoInhEYXlzIix4LHMpfWVsc2UgaWYoaDxVYyoyKXJldHVybiBmPU1hdGgucm91bmQoaC9VYyksYS5mb3JtYXREaXN0YW5jZSgiYWJvdXRYTW9udGhzIixmLHMpfWlmKGY9UWMoYyxsKSxmPDEyKXtsZXQgeD1NYXRoLnJvdW5kKGgvVWMpO3JldHVybiBhLmZvcm1hdERpc3RhbmNlKCJ4TW9udGhzIix4LHMpfWVsc2V7bGV0IHg9ZiUxMix2PU1hdGgudHJ1bmMoZi8xMik7cmV0dXJuIHg8Mz9hLmZvcm1hdERpc3RhbmNlKCJhYm91dFhZZWFycyIsdixzKTp4PDk/YS5mb3JtYXREaXN0YW5jZSgib3ZlclhZZWFycyIsdixzKTphLmZvcm1hdERpc3RhbmNlKCJhbG1vc3RYWWVhcnMiLHYrMSxzKX19dmFyIHRwMSxtSD1wKCgpPT57dzMoKTtkYSgpO2dsKCk7UnIoKTtnMygpO090KCk7cGYoKTtoZigpO3RwMT1peX0pO2Z1bmN0aW9uIGF5KGUsdCxyKXtsZXQgaT1McigpLGE9cj8ubG9jYWxlPz9pLmxvY2FsZT8/bW4sbj11YShlLHQpO2lmKGlzTmFOKG4pKXRocm93IG5ldyBSYW5nZUVycm9yKCJJbnZhbGlkIHRpbWUgdmFsdWUiKTtsZXQgbz1PYmplY3QuYXNzaWduKHt9LHIse2FkZFN1ZmZpeDpyPy5hZGRTdWZmaXgsY29tcGFyaXNvbjpufSksW3MsbF09ZHQocj8uaW4sLi4ubj4wP1t0LGVdOltlLHRdKSxjPXBhKHI/LnJvdW5kaW5nTWV0aG9kPz8icm91bmQiKSx1PWwuZ2V0VGltZSgpLXMuZ2V0VGltZSgpLGQ9dS9jYSxoPUMxKGwpLUMxKHMpLGY9KHUtaCkvY2EseD1yPy51bml0LHY7aWYoeD92PXg6ZDwxP3Y9InNlY29uZCI6ZDw2MD92PSJtaW51dGUiOmQ8azU/dj0iaG91ciI6ZjxVYz92PSJkYXkiOmY8T0I/dj0ibW9udGgiOnY9InllYXIiLHY9PT0ic2Vjb25kIil7bGV0IGI9Yyh1LzFlMyk7cmV0dXJuIGEuZm9ybWF0RGlzdGFuY2UoInhTZWNvbmRzIixiLG8pfWVsc2UgaWYodj09PSJtaW51dGUiKXtsZXQgYj1jKGQpO3JldHVybiBhLmZvcm1hdERpc3RhbmNlKCJ4TWludXRlcyIsYixvKX1lbHNlIGlmKHY9PT0iaG91ciIpe2xldCBiPWMoZC82MCk7cmV0dXJuIGEuZm9ybWF0RGlzdGFuY2UoInhIb3VycyIsYixvKX1lbHNlIGlmKHY9PT0iZGF5Iil7bGV0IGI9YyhmL2s1KTtyZXR1cm4gYS5mb3JtYXREaXN0YW5jZSgieERheXMiLGIsbyl9ZWxzZSBpZih2PT09Im1vbnRoIil7bGV0IGI9YyhmL1VjKTtyZXR1cm4gYj09PTEyJiZ4IT09Im1vbnRoIj9hLmZvcm1hdERpc3RhbmNlKCJ4WWVhcnMiLDEsbyk6YS5mb3JtYXREaXN0YW5jZSgieE1vbnRocyIsYixvKX1lbHNle2xldCBiPWMoZi9PQik7cmV0dXJuIGEuZm9ybWF0RGlzdGFuY2UoInhZZWFycyIsYixvKX19dmFyIGRwMSxnSD1wKCgpPT57dzMoKTtkYSgpO3hsKCk7Z2woKTtScigpO2czKCk7T3QoKTtkcDE9YXl9KTtmdW5jdGlvbiBHaGUoZSx0KXtyZXR1cm4gaXkoZSxZdChlKSx0KX12YXIgZnAxLFloZT1wKCgpPT57Y2koKTttSCgpO2ZwMT1HaGV9KTtmdW5jdGlvbiBaaGUoZSx0KXtyZXR1cm4gYXkoZSxZdChlKSx0KX12YXIgdnAxLFhoZT1wKCgpPT57Y2koKTtnSCgpO3ZwMT1aaGV9KTtmdW5jdGlvbiBRaGUoZSx0KXtsZXQgcj1McigpLGk9dD8ubG9jYWxlPz9yLmxvY2FsZT8/bW4sYT10Py5mb3JtYXQ/P243cixuPXQ/Lnplcm8/PyExLG89dD8uZGVsaW1pdGVyPz8iICI7cmV0dXJuIGkuZm9ybWF0RGlzdGFuY2U/YS5yZWR1Y2UoKGwsYyk9PntsZXQgdT1geCR7Yy5yZXBsYWNlKC8oXi4pLyxoPT5oLnRvVXBwZXJDYXNlKCkpfWAsZD1lW2NdO3JldHVybiBkIT09dm9pZCAwJiYobnx8ZVtjXSk/bC5jb25jYXQoaS5mb3JtYXREaXN0YW5jZSh1LGQpKTpsfSxbXSkuam9pbihvKToiIn12YXIgbjdyLE1wMSxKaGU9cCgoKT0+e3czKCk7ZGEoKTtuN3I9WyJ5ZWFycyIsIm1vbnRocyIsIndlZWtzIiwiZGF5cyIsImhvdXJzIiwibWludXRlcyIsInNlY29uZHMiXTtNcDE9UWhlfSk7ZnVuY3Rpb24gS2hlKGUsdCl7bGV0IHI9bGUoZSx0Py5pbik7aWYoaXNOYU4oK3IpKXRocm93IG5ldyBSYW5nZUVycm9yKCJJbnZhbGlkIHRpbWUgdmFsdWUiKTtsZXQgaT10Py5mb3JtYXQ/PyJleHRlbmRlZCIsYT10Py5yZXByZXNlbnRhdGlvbj8/ImNvbXBsZXRlIixuPSIiLG89IiIscz1pPT09ImV4dGVuZGVkIj8iLSI6IiIsbD1pPT09ImV4dGVuZGVkIj8iOiI6IiI7aWYoYSE9PSJ0aW1lIil7bGV0IGM9YXQoci5nZXREYXRlKCksMiksdT1hdChyLmdldE1vbnRoKCkrMSwyKTtuPWAke2F0KHIuZ2V0RnVsbFllYXIoKSw0KX0ke3N9JHt1fSR7c30ke2N9YH1pZihhIT09ImRhdGUiKXtsZXQgYz1yLmdldFRpbWV6b25lT2Zmc2V0KCk7aWYoYyE9PTApe2xldCB2PU1hdGguYWJzKGMpLGI9YXQoTWF0aC50cnVuYyh2LzYwKSwyKSx5PWF0KHYlNjAsMik7bz1gJHtjPDA/IisiOiItIn0ke2J9OiR7eX1gfWVsc2Ugbz0iWiI7bGV0IHU9YXQoci5nZXRIb3VycygpLDIpLGQ9YXQoci5nZXRNaW51dGVzKCksMiksaD1hdChyLmdldFNlY29uZHMoKSwyKSxmPW49PT0iIj8iIjoiVCIseD1bdSxkLGhdLmpvaW4obCk7bj1gJHtufSR7Zn0ke3h9JHtvfWB9cmV0dXJuIG59dmFyIENwMSxlZmU9cCgoKT0+e2szKCk7T2UoKTtDcDE9S2hlfSk7ZnVuY3Rpb24gdGZlKGUsdCl7bGV0IHI9bGUoZSx0Py5pbik7aWYoIVVpKHIpKXRocm93IG5ldyBSYW5nZUVycm9yKCJJbnZhbGlkIHRpbWUgdmFsdWUiKTtsZXQgaT10Py5mb3JtYXQ/PyJleHRlbmRlZCIsYT10Py5yZXByZXNlbnRhdGlvbj8/ImNvbXBsZXRlIixuPSIiLG89aT09PSJleHRlbmRlZCI/Ii0iOiIiLHM9aT09PSJleHRlbmRlZCI/IjoiOiIiO2lmKGEhPT0idGltZSIpe2xldCBsPWF0KHIuZ2V0RGF0ZSgpLDIpLGM9YXQoci5nZXRNb250aCgpKzEsMik7bj1gJHthdChyLmdldEZ1bGxZZWFyKCksNCl9JHtvfSR7Y30ke299JHtsfWB9aWYoYSE9PSJkYXRlIil7bGV0IGw9YXQoci5nZXRIb3VycygpLDIpLGM9YXQoci5nZXRNaW51dGVzKCksMiksdT1hdChyLmdldFNlY29uZHMoKSwyKTtuPWAke259JHtuPT09IiI/IiI6IiAifSR7bH0ke3N9JHtjfSR7c30ke3V9YH1yZXR1cm4gbn12YXIgRHAxLHJmZT1wKCgpPT57azMoKTt2bCgpO09lKCk7RHAxPXRmZX0pO2Z1bmN0aW9uIGlmZShlKXtsZXR7eWVhcnM6dD0wLG1vbnRoczpyPTAsZGF5czppPTAsaG91cnM6YT0wLG1pbnV0ZXM6bj0wLHNlY29uZHM6bz0wfT1lO3JldHVybmBQJHt0fVkke3J9TSR7aX1EVCR7YX1IJHtufU0ke299U2B9dmFyICRwMSxhZmU9cCgoKT0+eyRwMT1pZmV9KTtmdW5jdGlvbiBuZmUoZSx0KXtsZXQgcj1sZShlLHQ/LmluKTtpZighVWkocikpdGhyb3cgbmV3IFJhbmdlRXJyb3IoIkludmFsaWQgdGltZSB2YWx1ZSIpO2xldCBpPXQ/LmZyYWN0aW9uRGlnaXRzPz8wLGE9YXQoci5nZXREYXRlKCksMiksbj1hdChyLmdldE1vbnRoKCkrMSwyKSxvPXIuZ2V0RnVsbFllYXIoKSxzPWF0KHIuZ2V0SG91cnMoKSwyKSxsPWF0KHIuZ2V0TWludXRlcygpLDIpLGM9YXQoci5nZXRTZWNvbmRzKCksMiksdT0iIjtpZihpPjApe2xldCBmPXIuZ2V0TWlsbGlzZWNvbmRzKCkseD1NYXRoLnRydW5jKGYqTWF0aC5wb3coMTAsaS0zKSk7dT0iLiIrYXQoeCxpKX1sZXQgZD0iIixoPXIuZ2V0VGltZXpvbmVPZmZzZXQoKTtpZihoIT09MCl7bGV0IGY9TWF0aC5hYnMoaCkseD1hdChNYXRoLnRydW5jKGYvNjApLDIpLHY9YXQoZiU2MCwyKTtkPWAke2g8MD8iKyI6Ii0ifSR7eH06JHt2fWB9ZWxzZSBkPSJaIjtyZXR1cm5gJHtvfS0ke259LSR7YX1UJHtzfToke2x9OiR7Y30ke3V9JHtkfWB9dmFyIE9wMSxvZmU9cCgoKT0+e2szKCk7dmwoKTtPZSgpO09wMT1uZmV9KTtmdW5jdGlvbiBzZmUoZSl7bGV0IHQ9bGUoZSk7aWYoIVVpKHQpKXRocm93IG5ldyBSYW5nZUVycm9yKCJJbnZhbGlkIHRpbWUgdmFsdWUiKTtsZXQgcj1vN3JbdC5nZXRVVENEYXkoKV0saT1hdCh0LmdldFVUQ0RhdGUoKSwyKSxhPXM3clt0LmdldFVUQ01vbnRoKCldLG49dC5nZXRVVENGdWxsWWVhcigpLG89YXQodC5nZXRVVENIb3VycygpLDIpLHM9YXQodC5nZXRVVENNaW51dGVzKCksMiksbD1hdCh0LmdldFVUQ1NlY29uZHMoKSwyKTtyZXR1cm5gJHtyfSwgJHtpfSAke2F9ICR7bn0gJHtvfToke3N9OiR7bH0gR01UYH12YXIgbzdyLHM3cixqcDEsbGZlPXAoKCk9PntrMygpO3ZsKCk7T2UoKTtvN3I9WyJTdW4iLCJNb24iLCJUdWUiLCJXZWQiLCJUaHUiLCJGcmkiLCJTYXQiXSxzN3I9WyJKYW4iLCJGZWIiLCJNYXIiLCJBcHIiLCJNYXkiLCJKdW4iLCJKdWwiLCJBdWciLCJTZXAiLCJPY3QiLCJOb3YiLCJEZWMiXTtqcDE9c2ZlfSk7ZnVuY3Rpb24gY2ZlKGUsdCxyKXtsZXRbaSxhXT1kdChyPy5pbixlLHQpLG49THIoKSxvPXI/LmxvY2FsZT8/bi5sb2NhbGU/P21uLHM9cj8ud2Vla1N0YXJ0c09uPz9yPy5sb2NhbGU/Lm9wdGlvbnM/LndlZWtTdGFydHNPbj8/bi53ZWVrU3RhcnRzT24/P24ubG9jYWxlPy5vcHRpb25zPy53ZWVrU3RhcnRzT24/PzAsbD1UaShpLGEpO2lmKGlzTmFOKGwpKXRocm93IG5ldyBSYW5nZUVycm9yKCJJbnZhbGlkIHRpbWUgdmFsdWUiKTtsZXQgYztsPC02P2M9Im90aGVyIjpsPC0xP2M9Imxhc3RXZWVrIjpsPDA/Yz0ieWVzdGVyZGF5IjpsPDE/Yz0idG9kYXkiOmw8Mj9jPSJ0b21vcnJvdyI6bDw3P2M9Im5leHRXZWVrIjpjPSJvdGhlciI7bGV0IHU9by5mb3JtYXRSZWxhdGl2ZShjLGksYSx7bG9jYWxlOm8sd2Vla1N0YXJ0c09uOnN9KTtyZXR1cm4gdmYoaSx1LHtsb2NhbGU6byx3ZWVrU3RhcnRzT246c30pfXZhciBYcDEsZGZlPXAoKCk9Pnt3MygpO2RhKCk7UnIoKTtibCgpO2ZIKCk7WHAxPWNmZX0pO2Z1bmN0aW9uIHVmZShlLHQpe3JldHVybiBsZShlKjFlMyx0Py5pbil9dmFyIEtwMSxwZmU9cCgoKT0+e09lKCk7S3AxPXVmZX0pO2Z1bmN0aW9uIG55KGUsdCl7cmV0dXJuIGxlKGUsdD8uaW4pLmdldERhdGUoKX12YXIgcmgxLGJIPXAoKCk9PntPZSgpO3JoMT1ueX0pO2Z1bmN0aW9uIHQwKGUsdCl7cmV0dXJuIGxlKGUsdD8uaW4pLmdldERheSgpfXZhciBuaDEseGY9cCgoKT0+e09lKCk7bmgxPXQwfSk7ZnVuY3Rpb24gb3koZSx0KXtsZXQgcj1sZShlLHQ/LmluKSxpPXIuZ2V0RnVsbFllYXIoKSxhPXIuZ2V0TW9udGgoKSxuPVBlKHIsMCk7cmV0dXJuIG4uc2V0RnVsbFllYXIoaSxhKzEsMCksbi5zZXRIb3VycygwLDAsMCwwKSxuLmdldERhdGUoKX12YXIgY2gxLHZIPXAoKCk9PntmdCgpO09lKCk7Y2gxPW95fSk7ZnVuY3Rpb24gc3koZSx0KXtsZXQgaT1sZShlLHQ/LmluKS5nZXRGdWxsWWVhcigpO3JldHVybiBpJTQwMD09PTB8fGklND09PTAmJmklMTAwIT09MH12YXIgcGgxLHhIPXAoKCk9PntPZSgpO3BoMT1zeX0pO2Z1bmN0aW9uIGhmZShlLHQpe2xldCByPWxlKGUsdD8uaW4pO3JldHVybiBOdW1iZXIuaXNOYU4oK3IpP05hTjpzeShyKT8zNjY6MzY1fXZhciBnaDEsZmZlPXAoKCk9Pnt4SCgpO09lKCk7Z2gxPWhmZX0pO2Z1bmN0aW9uIG1mZShlLHQpe2xldCBpPWxlKGUsdD8uaW4pLmdldEZ1bGxZZWFyKCk7cmV0dXJuIE1hdGguZmxvb3IoaS8xMCkqMTB9dmFyIHhoMSxnZmU9cCgoKT0+e09lKCk7eGgxPW1mZX0pO2Z1bmN0aW9uIGx5KCl7cmV0dXJuIE9iamVjdC5hc3NpZ24oe30sTHIoKSl9dmFyIE1oMSx5SD1wKCgpPT57ZGEoKTtNaDE9bHl9KTtmdW5jdGlvbiBiZmUoZSx0KXtyZXR1cm4gbGUoZSx0Py5pbikuZ2V0SG91cnMoKX12YXIgemgxLHZmZT1wKCgpPT57T2UoKTt6aDE9YmZlfSk7ZnVuY3Rpb24gY3koZSx0KXtsZXQgcj1sZShlLHQ/LmluKS5nZXREYXkoKTtyZXR1cm4gcj09PTA/NzpyfXZhciBfaDEsd0g9cCgoKT0+e09lKCk7X2gxPWN5fSk7ZnVuY3Rpb24geGZlKGUsdCl7bGV0IHI9RG4oZSx0KSxhPStEbihaYyhyLDYwKSktK3I7cmV0dXJuIE1hdGgucm91bmQoYS9aMil9dmFyICRoMSx5ZmU9cCgoKT0+e2RmKCk7T3QoKTtDNSgpOyRoMT14ZmV9KTtmdW5jdGlvbiB3ZmUoZSl7cmV0dXJuIGxlKGUpLmdldE1pbGxpc2Vjb25kcygpfXZhciBOaDEsTWZlPXAoKCk9PntPZSgpO05oMT13ZmV9KTtmdW5jdGlvbiBrZmUoZSx0KXtyZXR1cm4gbGUoZSx0Py5pbikuZ2V0TWludXRlcygpfXZhciBSaDEsU2ZlPXAoKCk9PntPZSgpO1JoMT1rZmV9KTtmdW5jdGlvbiB6ZmUoZSx0KXtyZXR1cm4gbGUoZSx0Py5pbikuZ2V0TW9udGgoKX12YXIgcWgxLENmZT1wKCgpPT57T2UoKTtxaDE9emZlfSk7ZnVuY3Rpb24gVGZlKGUsdCl7bGV0W3IsaV09WytsZShlLnN0YXJ0KSwrbGUoZS5lbmQpXS5zb3J0KChkLGgpPT5kLWgpLFthLG5dPVsrbGUodC5zdGFydCksK2xlKHQuZW5kKV0uc29ydCgoZCxoKT0+ZC1oKTtpZighKHI8biYmYTxpKSlyZXR1cm4gMDtsZXQgcz1hPHI/cjphLGw9cy1DMShzKSxjPW4+aT9pOm4sdT1jLUMxKGMpO3JldHVybiBNYXRoLmNlaWwoKHUtbCkvcHgpfXZhciBHaDEsX2ZlPXAoKCk9PntnbCgpO090KCk7T2UoKTtHaDE9VGZlfSk7ZnVuY3Rpb24gTGZlKGUpe3JldHVybiBsZShlKS5nZXRTZWNvbmRzKCl9dmFyIFhoMSxBZmU9cCgoKT0+e09lKCk7WGgxPUxmZX0pO2Z1bmN0aW9uIERmZShlKXtyZXR1cm4rbGUoZSl9dmFyIEtoMSxFZmU9cCgoKT0+e09lKCk7S2gxPURmZX0pO2Z1bmN0aW9uICRmZShlKXtyZXR1cm4gTWF0aC50cnVuYygrbGUoZSkvMWUzKX12YXIgcmYxLElmZT1wKCgpPT57T2UoKTtyZjE9JGZlfSk7ZnVuY3Rpb24gUGZlKGUsdCl7bGV0IHI9THIoKSxpPXQ/LndlZWtTdGFydHNPbj8/dD8ubG9jYWxlPy5vcHRpb25zPy53ZWVrU3RhcnRzT24/P3Iud2Vla1N0YXJ0c09uPz9yLmxvY2FsZT8ub3B0aW9ucz8ud2Vla1N0YXJ0c09uPz8wLGE9bnkobGUoZSx0Py5pbikpO2lmKGlzTmFOKGEpKXJldHVybiBOYU47bGV0IG49dDAoSmMoZSx0KSksbz1pLW47bzw9MCYmKG8rPTcpO2xldCBzPWEtbztyZXR1cm4gTWF0aC5jZWlsKHMvNykrMX12YXIgY2YxLE5mZT1wKCgpPT57ZGEoKTtiSCgpO3hmKCk7ZmYoKTtPZSgpO2NmMT1QZmV9KTtmdW5jdGlvbiBkeShlLHQpe2xldCByPWxlKGUsdD8uaW4pLGk9ci5nZXRNb250aCgpO3JldHVybiByLnNldEZ1bGxZZWFyKHIuZ2V0RnVsbFllYXIoKSxpKzEsMCksci5zZXRIb3VycygwLDAsMCwwKSxsZShyLHQ/LmluKX12YXIgcGYxLE1IPXAoKCk9PntPZSgpO3BmMT1keX0pO2Z1bmN0aW9uIEZmZShlLHQpe2xldCByPWxlKGUsdD8uaW4pO3JldHVybiB2MyhkeShyLHQpLEpjKHIsdCksdCkrMX12YXIgdmYxLE9mZT1wKCgpPT57JHgoKTtNSCgpO2ZmKCk7T2UoKTt2ZjE9RmZlfSk7ZnVuY3Rpb24gUmZlKGUsdCl7cmV0dXJuIGxlKGUsdD8uaW4pLmdldEZ1bGxZZWFyKCl9dmFyIHdmMSxCZmU9cCgoKT0+e09lKCk7d2YxPVJmZX0pO2Z1bmN0aW9uIEhmZShlKXtyZXR1cm4gTWF0aC50cnVuYyhlKkFuKX12YXIgU2YxLHFmZT1wKCgpPT57T3QoKTtTZjE9SGZlfSk7ZnVuY3Rpb24gamZlKGUpe3JldHVybiBNYXRoLnRydW5jKGUqaHgpfXZhciBUZjEsVmZlPXAoKCk9PntPdCgpO1RmMT1qZmV9KTtmdW5jdGlvbiBVZmUoZSl7cmV0dXJuIE1hdGgudHJ1bmMoZSptMyl9dmFyIEFmMSxXZmU9cCgoKT0+e090KCk7QWYxPVVmZX0pO2Z1bmN0aW9uIEdmZShlLHQscil7bGV0W2ksYV09ZHQocj8uaW4sZSx0KTtpZihpc05hTigraSkpdGhyb3cgbmV3IFR5cGVFcnJvcigiU3RhcnQgZGF0ZSBpcyBpbnZhbGlkIik7aWYoaXNOYU4oK2EpKXRocm93IG5ldyBUeXBlRXJyb3IoIkVuZCBkYXRlIGlzIGludmFsaWQiKTtpZihyPy5hc3NlcnRQb3NpdGl2ZSYmK2k+K2EpdGhyb3cgbmV3IFR5cGVFcnJvcigiRW5kIGRhdGUgbXVzdCBiZSBhZnRlciBzdGFydCBkYXRlIik7cmV0dXJue3N0YXJ0OmksZW5kOmF9fXZhciAkZjEsWWZlPXAoKCk9PntScigpOyRmMT1HZmV9KTtmdW5jdGlvbiBaZmUoZSx0KXtsZXR7c3RhcnQ6cixlbmQ6aX09X2kodD8uaW4sZSksYT17fSxuPWp4KGkscik7biYmKGEueWVhcnM9bik7bGV0IG89V2Mocix7eWVhcnM6YS55ZWFyc30pLHM9UWMoaSxvKTtzJiYoYS5tb250aHM9cyk7bGV0IGw9V2Mobyx7bW9udGhzOmEubW9udGhzfSksYz1ENShpLGwpO2MmJihhLmRheXM9Yyk7bGV0IHU9V2MobCx7ZGF5czphLmRheXN9KSxkPXgzKGksdSk7ZCYmKGEuaG91cnM9ZCk7bGV0IGg9V2ModSx7aG91cnM6YS5ob3Vyc30pLGY9eTMoaSxoKTtmJiYoYS5taW51dGVzPWYpO2xldCB4PVdjKGgse21pbnV0ZXM6YS5taW51dGVzfSksdj1ycyhpLHgpO3JldHVybiB2JiYoYS5zZWNvbmRzPXYpLGF9dmFyIGpmMSxYZmU9cCgoKT0+e2lzKCk7cUIoKTtQeCgpO054KCk7UngoKTtwZigpO2hmKCk7b0goKTtqZjE9WmZlfSk7ZnVuY3Rpb24gUWZlKGUsdCxyKXtsZXQgaTtyZXR1cm4gbDdyKHQpP2k9dDpyPXQsbmV3IEludGwuRGF0ZVRpbWVGb3JtYXQocj8ubG9jYWxlLGkpLmZvcm1hdChsZShlKSl9ZnVuY3Rpb24gbDdyKGUpe3JldHVybiBlIT09dm9pZCAwJiYhKCJsb2NhbGUiaW4gZSl9dmFyIFdmMSxKZmU9cCgoKT0+e09lKCk7V2YxPVFmZX0pO2Z1bmN0aW9uIEtmZShlLHQscil7bGV0IGk9MCxhLFtuLG9dPWR0KHI/LmluLGUsdCk7aWYocj8udW5pdClhPXI/LnVuaXQsYT09PSJzZWNvbmQiP2k9cnMobixvKTphPT09Im1pbnV0ZSI/aT15MyhuLG8pOmE9PT0iaG91ciI/aT14MyhuLG8pOmE9PT0iZGF5Ij9pPVRpKG4sbyk6YT09PSJ3ZWVrIj9pPXYzKG4sbyk6YT09PSJtb250aCI/aT1iMyhuLG8pOmE9PT0icXVhcnRlciI/aT1BNShuLG8pOmE9PT0ieWVhciImJihpPVhjKG4sbykpO2Vsc2V7bGV0IGw9cnMobixvKTtNYXRoLmFicyhsKTxTNT8oaT1ycyhuLG8pLGE9InNlY29uZCIpOk1hdGguYWJzKGwpPG0zPyhpPXkzKG4sbyksYT0ibWludXRlIik6TWF0aC5hYnMobCk8ZHgmJk1hdGguYWJzKFRpKG4sbykpPDE/KGk9eDMobixvKSxhPSJob3VyIik6TWF0aC5hYnMobCk8eHBlJiYoaT1UaShuLG8pKSYmTWF0aC5hYnMoaSk8Nz9hPSJkYXkiOk1hdGguYWJzKGwpPEJCPyhpPXYzKG4sbyksYT0id2VlayIpOk1hdGguYWJzKGwpPHlwZT8oaT1iMyhuLG8pLGE9Im1vbnRoIik6TWF0aC5hYnMobCk8UkI/QTUobixvKTw0PyhpPUE1KG4sbyksYT0icXVhcnRlciIpOihpPVhjKG4sbyksYT0ieWVhciIpOihpPVhjKG4sbyksYT0ieWVhciIpfXJldHVybiBuZXcgSW50bC5SZWxhdGl2ZVRpbWVGb3JtYXQocj8ubG9jYWxlLHtudW1lcmljOiJhdXRvIiwuLi5yfSkuZm9ybWF0KGksYSl9dmFyIGE3MSxlN2U9cCgoKT0+e1JyKCk7T3QoKTtibCgpO0V4KCk7aUgoKTskeCgpO0l4KCk7TngoKTtSeCgpO2hmKCk7YTcxPUtmZX0pO2Z1bmN0aW9uIHQ3ZShlLHQpe3JldHVybitsZShlKT4rbGUodCl9dmFyIHM3MSxyN2U9cCgoKT0+e09lKCk7czcxPXQ3ZX0pO2Z1bmN0aW9uIGk3ZShlLHQpe3JldHVybitsZShlKTwrbGUodCl9dmFyIGQ3MSxhN2U9cCgoKT0+e09lKCk7ZDcxPWk3ZX0pO2Z1bmN0aW9uIG43ZShlLHQpe3JldHVybitsZShlKT09K2xlKHQpfXZhciBoNzEsbzdlPXAoKCk9PntPZSgpO2g3MT1uN2V9KTtmdW5jdGlvbiBzN2UoZSx0LHIpe2xldCBpPW5ldyBEYXRlKGUsdCxyKTtyZXR1cm4gaS5nZXRGdWxsWWVhcigpPT09ZSYmaS5nZXRNb250aCgpPT09dCYmaS5nZXREYXRlKCk9PT1yfXZhciBtNzEsbDdlPXAoKCk9PnttNzE9czdlfSk7ZnVuY3Rpb24gYzdlKGUsdCl7cmV0dXJuIGxlKGUsdD8uaW4pLmdldERhdGUoKT09PTF9dmFyIHY3MSxkN2U9cCgoKT0+e09lKCk7djcxPWM3ZX0pO2Z1bmN0aW9uIHU3ZShlLHQpe3JldHVybiBsZShlLHQ/LmluKS5nZXREYXkoKT09PTV9dmFyIHc3MSxwN2U9cCgoKT0+e09lKCk7dzcxPXU3ZX0pO2Z1bmN0aW9uIGg3ZShlKXtyZXR1cm4rbGUoZSk+RGF0ZS5ub3coKX12YXIgUzcxLGY3ZT1wKCgpPT57T2UoKTtTNzE9aDdlfSk7ZnVuY3Rpb24gdXkoZSx0KXtsZXQgcj1jN3IodCk/bmV3IHQoMCk6UGUodCwwKTtyZXR1cm4gci5zZXRGdWxsWWVhcihlLmdldEZ1bGxZZWFyKCksZS5nZXRNb250aCgpLGUuZ2V0RGF0ZSgpKSxyLnNldEhvdXJzKGUuZ2V0SG91cnMoKSxlLmdldE1pbnV0ZXMoKSxlLmdldFNlY29uZHMoKSxlLmdldE1pbGxpc2Vjb25kcygpKSxyfWZ1bmN0aW9uIGM3cihlKXtyZXR1cm4gdHlwZW9mIGU9PSJmdW5jdGlvbiImJmUucHJvdG90eXBlPy5jb25zdHJ1Y3Rvcj09PWV9dmFyIFQ3MSxrSD1wKCgpPT57ZnQoKTtUNzE9dXl9KTt2YXIgZDdyLHB5LGh5LGZ5LFNIPXAoKCk9PntmdCgpO2tIKCk7ZDdyPTEwLHB5PWNsYXNze3N1YlByaW9yaXR5PTA7dmFsaWRhdGUodCxyKXtyZXR1cm4hMH19LGh5PWNsYXNzIGV4dGVuZHMgcHl7Y29uc3RydWN0b3IodCxyLGksYSxuKXtzdXBlcigpLHRoaXMudmFsdWU9dCx0aGlzLnZhbGlkYXRlVmFsdWU9cix0aGlzLnNldFZhbHVlPWksdGhpcy5wcmlvcml0eT1hLG4mJih0aGlzLnN1YlByaW9yaXR5PW4pfXZhbGlkYXRlKHQscil7cmV0dXJuIHRoaXMudmFsaWRhdGVWYWx1ZSh0LHRoaXMudmFsdWUscil9c2V0KHQscixpKXtyZXR1cm4gdGhpcy5zZXRWYWx1ZSh0LHIsdGhpcy52YWx1ZSxpKX19LGZ5PWNsYXNzIGV4dGVuZHMgcHl7cHJpb3JpdHk9ZDdyO3N1YlByaW9yaXR5PS0xO2NvbnN0cnVjdG9yKHQscil7c3VwZXIoKSx0aGlzLmNvbnRleHQ9dHx8KGk9PlBlKHIsaSkpfXNldCh0LHIpe3JldHVybiByLnRpbWVzdGFtcElzU2V0P3Q6UGUodCx1eSh0LHRoaXMuY29udGV4dCkpfX19KTt2YXIgdHQseXI9cCgoKT0+e1NIKCk7dHQ9Y2xhc3N7cnVuKHQscixpLGEpe2xldCBuPXRoaXMucGFyc2UodCxyLGksYSk7cmV0dXJuIG4/e3NldHRlcjpuZXcgaHkobi52YWx1ZSx0aGlzLnZhbGlkYXRlLHRoaXMuc2V0LHRoaXMucHJpb3JpdHksdGhpcy5zdWJQcmlvcml0eSkscmVzdDpuLnJlc3R9Om51bGx9dmFsaWRhdGUodCxyLGkpe3JldHVybiEwfX19KTt2YXIgbXksbTdlPXAoKCk9Pnt5cigpO215PWNsYXNzIGV4dGVuZHMgdHR7cHJpb3JpdHk9MTQwO3BhcnNlKHQscixpKXtzd2l0Y2gocil7Y2FzZSJHIjpjYXNlIkdHIjpjYXNlIkdHRyI6cmV0dXJuIGkuZXJhKHQse3dpZHRoOiJhYmJyZXZpYXRlZCJ9KXx8aS5lcmEodCx7d2lkdGg6Im5hcnJvdyJ9KTtjYXNlIkdHR0dHIjpyZXR1cm4gaS5lcmEodCx7d2lkdGg6Im5hcnJvdyJ9KTtkZWZhdWx0OnJldHVybiBpLmVyYSh0LHt3aWR0aDoid2lkZSJ9KXx8aS5lcmEodCx7d2lkdGg6ImFiYnJldmlhdGVkIn0pfHxpLmVyYSh0LHt3aWR0aDoibmFycm93In0pfX1zZXQodCxyLGkpe3JldHVybiByLmVyYT1pLHQuc2V0RnVsbFllYXIoaSwwLDEpLHQuc2V0SG91cnMoMCwwLDAsMCksdH1pbmNvbXBhdGlibGVUb2tlbnM9WyJSIiwidSIsInQiLCJUIl19fSk7dmFyIHByLHNvLGhhPXAoKCk9Pntwcj17bW9udGg6L14oMVswLTJdfDA/XGQpLyxkYXRlOi9eKDNbMC0xXXxbMC0yXT9cZCkvLGRheU9mWWVhcjovXigzNlswLTZdfDNbMC01XVxkfFswLTJdP1xkP1xkKS8sd2VlazovXig1WzAtM118WzAtNF0/XGQpLyxob3VyMjNoOi9eKDJbMC0zXXxbMC0xXT9cZCkvLGhvdXIyNGg6L14oMlswLTRdfFswLTFdP1xkKS8saG91cjExaDovXigxWzAtMV18MD9cZCkvLGhvdXIxMmg6L14oMVswLTJdfDA/XGQpLyxtaW51dGU6L15bMC01XT9cZC8sc2Vjb25kOi9eWzAtNV0/XGQvLHNpbmdsZURpZ2l0Oi9eXGQvLHR3b0RpZ2l0czovXlxkezEsMn0vLHRocmVlRGlnaXRzOi9eXGR7MSwzfS8sZm91ckRpZ2l0czovXlxkezEsNH0vLGFueURpZ2l0c1NpZ25lZDovXi0/XGQrLyxzaW5nbGVEaWdpdFNpZ25lZDovXi0/XGQvLHR3b0RpZ2l0c1NpZ25lZDovXi0/XGR7MSwyfS8sdGhyZWVEaWdpdHNTaWduZWQ6L14tP1xkezEsM30vLGZvdXJEaWdpdHNTaWduZWQ6L14tP1xkezEsNH0vfSxzbz17YmFzaWNPcHRpb25hbE1pbnV0ZXM6L14oWystXSkoXGR7Mn0pKFxkezJ9KT98Wi8sYmFzaWM6L14oWystXSkoXGR7Mn0pKFxkezJ9KXxaLyxiYXNpY09wdGlvbmFsU2Vjb25kczovXihbKy1dKShcZHsyfSkoXGR7Mn0pKChcZHsyfSkpP3xaLyxleHRlbmRlZDovXihbKy1dKShcZHsyfSk6KFxkezJ9KXxaLyxleHRlbmRlZE9wdGlvbmFsU2Vjb25kczovXihbKy1dKShcZHsyfSk6KFxkezJ9KSg6KFxkezJ9KSk/fFovfX0pO2Z1bmN0aW9uIEJyKGUsdCl7cmV0dXJuIGUmJnt2YWx1ZTp0KGUudmFsdWUpLHJlc3Q6ZS5yZXN0fX1mdW5jdGlvbiBscihlLHQpe2xldCByPXQubWF0Y2goZSk7cmV0dXJuIHI/e3ZhbHVlOnBhcnNlSW50KHJbMF0sMTApLHJlc3Q6dC5zbGljZShyWzBdLmxlbmd0aCl9Om51bGx9ZnVuY3Rpb24gbG8oZSx0KXtsZXQgcj10Lm1hdGNoKGUpO2lmKCFyKXJldHVybiBudWxsO2lmKHJbMF09PT0iWiIpcmV0dXJue3ZhbHVlOjAscmVzdDp0LnNsaWNlKDEpfTtsZXQgaT1yWzFdPT09IisiPzE6LTEsYT1yWzJdP3BhcnNlSW50KHJbMl0sMTApOjAsbj1yWzNdP3BhcnNlSW50KHJbM10sMTApOjAsbz1yWzVdP3BhcnNlSW50KHJbNV0sMTApOjA7cmV0dXJue3ZhbHVlOmkqKGEqQW4rbipjYStvKk01KSxyZXN0OnQuc2xpY2UoclswXS5sZW5ndGgpfX1mdW5jdGlvbiBneShlKXtyZXR1cm4gbHIocHIuYW55RGlnaXRzU2lnbmVkLGUpfWZ1bmN0aW9uIEl0KGUsdCl7c3dpdGNoKGUpe2Nhc2UgMTpyZXR1cm4gbHIocHIuc2luZ2xlRGlnaXQsdCk7Y2FzZSAyOnJldHVybiBscihwci50d29EaWdpdHMsdCk7Y2FzZSAzOnJldHVybiBscihwci50aHJlZURpZ2l0cyx0KTtjYXNlIDQ6cmV0dXJuIGxyKHByLmZvdXJEaWdpdHMsdCk7ZGVmYXVsdDpyZXR1cm4gbHIobmV3IFJlZ0V4cCgiXlxcZHsxLCIrZSsifSIpLHQpfX1mdW5jdGlvbiBxNShlLHQpe3N3aXRjaChlKXtjYXNlIDE6cmV0dXJuIGxyKHByLnNpbmdsZURpZ2l0U2lnbmVkLHQpO2Nhc2UgMjpyZXR1cm4gbHIocHIudHdvRGlnaXRzU2lnbmVkLHQpO2Nhc2UgMzpyZXR1cm4gbHIocHIudGhyZWVEaWdpdHNTaWduZWQsdCk7Y2FzZSA0OnJldHVybiBscihwci5mb3VyRGlnaXRzU2lnbmVkLHQpO2RlZmF1bHQ6cmV0dXJuIGxyKG5ldyBSZWdFeHAoIl4tP1xcZHsxLCIrZSsifSIpLHQpfX1mdW5jdGlvbiBqNShlKXtzd2l0Y2goZSl7Y2FzZSJtb3JuaW5nIjpyZXR1cm4gNDtjYXNlImV2ZW5pbmciOnJldHVybiAxNztjYXNlInBtIjpjYXNlIm5vb24iOmNhc2UiYWZ0ZXJub29uIjpyZXR1cm4gMTI7ZGVmYXVsdDpyZXR1cm4gMH19ZnVuY3Rpb24gYnkoZSx0KXtsZXQgcj10PjAsaT1yP3Q6MS10LGE7aWYoaTw9NTApYT1lfHwxMDA7ZWxzZXtsZXQgbj1pKzUwLG89TWF0aC50cnVuYyhuLzEwMCkqMTAwLHM9ZT49biUxMDA7YT1lK28tKHM/MTAwOjApfXJldHVybiByP2E6MS1hfWZ1bmN0aW9uIHZ5KGUpe3JldHVybiBlJTQwMD09PTB8fGUlND09PTAmJmUlMTAwIT09MH12YXIgQXI9cCgoKT0+e090KCk7aGEoKX0pO3ZhciB4eSxnN2U9cCgoKT0+e3lyKCk7QXIoKTt4eT1jbGFzcyBleHRlbmRzIHR0e3ByaW9yaXR5PTEzMDtpbmNvbXBhdGlibGVUb2tlbnM9WyJZIiwiUiIsInUiLCJ3IiwiSSIsImkiLCJlIiwiYyIsInQiLCJUIl07cGFyc2UodCxyLGkpe2xldCBhPW49Pih7eWVhcjpuLGlzVHdvRGlnaXRZZWFyOnI9PT0ieXkifSk7c3dpdGNoKHIpe2Nhc2UieSI6cmV0dXJuIEJyKEl0KDQsdCksYSk7Y2FzZSJ5byI6cmV0dXJuIEJyKGkub3JkaW5hbE51bWJlcih0LHt1bml0OiJ5ZWFyIn0pLGEpO2RlZmF1bHQ6cmV0dXJuIEJyKEl0KHIubGVuZ3RoLHQpLGEpfX12YWxpZGF0ZSh0LHIpe3JldHVybiByLmlzVHdvRGlnaXRZZWFyfHxyLnllYXI+MH1zZXQodCxyLGkpe2xldCBhPXQuZ2V0RnVsbFllYXIoKTtpZihpLmlzVHdvRGlnaXRZZWFyKXtsZXQgbz1ieShpLnllYXIsYSk7cmV0dXJuIHQuc2V0RnVsbFllYXIobywwLDEpLHQuc2V0SG91cnMoMCwwLDAsMCksdH1sZXQgbj0hKCJlcmEiaW4gcil8fHIuZXJhPT09MT9pLnllYXI6MS1pLnllYXI7cmV0dXJuIHQuc2V0RnVsbFllYXIobiwwLDEpLHQuc2V0SG91cnMoMCwwLDAsMCksdH19fSk7dmFyIHl5LGI3ZT1wKCgpPT57bWYoKTtyMigpO3lyKCk7QXIoKTt5eT1jbGFzcyBleHRlbmRzIHR0e3ByaW9yaXR5PTEzMDtwYXJzZSh0LHIsaSl7bGV0IGE9bj0+KHt5ZWFyOm4saXNUd29EaWdpdFllYXI6cj09PSJZWSJ9KTtzd2l0Y2gocil7Y2FzZSJZIjpyZXR1cm4gQnIoSXQoNCx0KSxhKTtjYXNlIllvIjpyZXR1cm4gQnIoaS5vcmRpbmFsTnVtYmVyKHQse3VuaXQ6InllYXIifSksYSk7ZGVmYXVsdDpyZXR1cm4gQnIoSXQoci5sZW5ndGgsdCksYSl9fXZhbGlkYXRlKHQscil7cmV0dXJuIHIuaXNUd29EaWdpdFllYXJ8fHIueWVhcj4wfXNldCh0LHIsaSxhKXtsZXQgbj1LYyh0LGEpO2lmKGkuaXNUd29EaWdpdFllYXIpe2xldCBzPWJ5KGkueWVhcixuKTtyZXR1cm4gdC5zZXRGdWxsWWVhcihzLDAsYS5maXJzdFdlZWtDb250YWluc0RhdGUpLHQuc2V0SG91cnMoMCwwLDAsMCksSnIodCxhKX1sZXQgbz0hKCJlcmEiaW4gcil8fHIuZXJhPT09MT9pLnllYXI6MS1pLnllYXI7cmV0dXJuIHQuc2V0RnVsbFllYXIobywwLGEuZmlyc3RXZWVrQ29udGFpbnNEYXRlKSx0LnNldEhvdXJzKDAsMCwwLDApLEpyKHQsYSl9aW5jb21wYXRpYmxlVG9rZW5zPVsieSIsIlIiLCJ1IiwiUSIsInEiLCJNIiwiTCIsIkkiLCJkIiwiRCIsImkiLCJ0IiwiVCJdfX0pO3ZhciB3eSx2N2U9cCgoKT0+e0syKCk7ZnQoKTt5cigpO0FyKCk7d3k9Y2xhc3MgZXh0ZW5kcyB0dHtwcmlvcml0eT0xMzA7cGFyc2UodCxyKXtyZXR1cm4gcj09PSJSIj9xNSg0LHQpOnE1KHIubGVuZ3RoLHQpfXNldCh0LHIsaSl7bGV0IGE9UGUodCwwKTtyZXR1cm4gYS5zZXRGdWxsWWVhcihpLDAsNCksYS5zZXRIb3VycygwLDAsMCwwKSxRMShhKX1pbmNvbXBhdGlibGVUb2tlbnM9WyJHIiwieSIsIlkiLCJ1IiwiUSIsInEiLCJNIiwiTCIsInciLCJkIiwiRCIsImUiLCJjIiwidCIsIlQiXX19KTt2YXIgTXkseDdlPXAoKCk9Pnt5cigpO0FyKCk7TXk9Y2xhc3MgZXh0ZW5kcyB0dHtwcmlvcml0eT0xMzA7cGFyc2UodCxyKXtyZXR1cm4gcj09PSJ1Ij9xNSg0LHQpOnE1KHIubGVuZ3RoLHQpfXNldCh0LHIsaSl7cmV0dXJuIHQuc2V0RnVsbFllYXIoaSwwLDEpLHQuc2V0SG91cnMoMCwwLDAsMCksdH1pbmNvbXBhdGlibGVUb2tlbnM9WyJHIiwieSIsIlkiLCJSIiwidyIsIkkiLCJpIiwiZSIsImMiLCJ0IiwiVCJdfX0pO3ZhciBreSx5N2U9cCgoKT0+e3lyKCk7QXIoKTtreT1jbGFzcyBleHRlbmRzIHR0e3ByaW9yaXR5PTEyMDtwYXJzZSh0LHIsaSl7c3dpdGNoKHIpe2Nhc2UiUSI6Y2FzZSJRUSI6cmV0dXJuIEl0KHIubGVuZ3RoLHQpO2Nhc2UiUW8iOnJldHVybiBpLm9yZGluYWxOdW1iZXIodCx7dW5pdDoicXVhcnRlciJ9KTtjYXNlIlFRUSI6cmV0dXJuIGkucXVhcnRlcih0LHt3aWR0aDoiYWJicmV2aWF0ZWQiLGNvbnRleHQ6ImZvcm1hdHRpbmcifSl8fGkucXVhcnRlcih0LHt3aWR0aDoibmFycm93Iixjb250ZXh0OiJmb3JtYXR0aW5nIn0pO2Nhc2UiUVFRUVEiOnJldHVybiBpLnF1YXJ0ZXIodCx7d2lkdGg6Im5hcnJvdyIsY29udGV4dDoiZm9ybWF0dGluZyJ9KTtkZWZhdWx0OnJldHVybiBpLnF1YXJ0ZXIodCx7d2lkdGg6IndpZGUiLGNvbnRleHQ6ImZvcm1hdHRpbmcifSl8fGkucXVhcnRlcih0LHt3aWR0aDoiYWJicmV2aWF0ZWQiLGNvbnRleHQ6ImZvcm1hdHRpbmcifSl8fGkucXVhcnRlcih0LHt3aWR0aDoibmFycm93Iixjb250ZXh0OiJmb3JtYXR0aW5nIn0pfX12YWxpZGF0ZSh0LHIpe3JldHVybiByPj0xJiZyPD00fXNldCh0LHIsaSl7cmV0dXJuIHQuc2V0TW9udGgoKGktMSkqMywxKSx0LnNldEhvdXJzKDAsMCwwLDApLHR9aW5jb21wYXRpYmxlVG9rZW5zPVsiWSIsIlIiLCJxIiwiTSIsIkwiLCJ3IiwiSSIsImQiLCJEIiwiaSIsImUiLCJjIiwidCIsIlQiXX19KTt2YXIgU3ksdzdlPXAoKCk9Pnt5cigpO0FyKCk7U3k9Y2xhc3MgZXh0ZW5kcyB0dHtwcmlvcml0eT0xMjA7cGFyc2UodCxyLGkpe3N3aXRjaChyKXtjYXNlInEiOmNhc2UicXEiOnJldHVybiBJdChyLmxlbmd0aCx0KTtjYXNlInFvIjpyZXR1cm4gaS5vcmRpbmFsTnVtYmVyKHQse3VuaXQ6InF1YXJ0ZXIifSk7Y2FzZSJxcXEiOnJldHVybiBpLnF1YXJ0ZXIodCx7d2lkdGg6ImFiYnJldmlhdGVkIixjb250ZXh0OiJzdGFuZGFsb25lIn0pfHxpLnF1YXJ0ZXIodCx7d2lkdGg6Im5hcnJvdyIsY29udGV4dDoic3RhbmRhbG9uZSJ9KTtjYXNlInFxcXFxIjpyZXR1cm4gaS5xdWFydGVyKHQse3dpZHRoOiJuYXJyb3ciLGNvbnRleHQ6InN0YW5kYWxvbmUifSk7ZGVmYXVsdDpyZXR1cm4gaS5xdWFydGVyKHQse3dpZHRoOiJ3aWRlIixjb250ZXh0OiJzdGFuZGFsb25lIn0pfHxpLnF1YXJ0ZXIodCx7d2lkdGg6ImFiYnJldmlhdGVkIixjb250ZXh0OiJzdGFuZGFsb25lIn0pfHxpLnF1YXJ0ZXIodCx7d2lkdGg6Im5hcnJvdyIsY29udGV4dDoic3RhbmRhbG9uZSJ9KX19dmFsaWRhdGUodCxyKXtyZXR1cm4gcj49MSYmcjw9NH1zZXQodCxyLGkpe3JldHVybiB0LnNldE1vbnRoKChpLTEpKjMsMSksdC5zZXRIb3VycygwLDAsMCwwKSx0fWluY29tcGF0aWJsZVRva2Vucz1bIlkiLCJSIiwiUSIsIk0iLCJMIiwidyIsIkkiLCJkIiwiRCIsImkiLCJlIiwiYyIsInQiLCJUIl19fSk7dmFyIHp5LE03ZT1wKCgpPT57aGEoKTt5cigpO0FyKCk7enk9Y2xhc3MgZXh0ZW5kcyB0dHtpbmNvbXBhdGlibGVUb2tlbnM9WyJZIiwiUiIsInEiLCJRIiwiTCIsInciLCJJIiwiRCIsImkiLCJlIiwiYyIsInQiLCJUIl07cHJpb3JpdHk9MTEwO3BhcnNlKHQscixpKXtsZXQgYT1uPT5uLTE7c3dpdGNoKHIpe2Nhc2UiTSI6cmV0dXJuIEJyKGxyKHByLm1vbnRoLHQpLGEpO2Nhc2UiTU0iOnJldHVybiBCcihJdCgyLHQpLGEpO2Nhc2UiTW8iOnJldHVybiBCcihpLm9yZGluYWxOdW1iZXIodCx7dW5pdDoibW9udGgifSksYSk7Y2FzZSJNTU0iOnJldHVybiBpLm1vbnRoKHQse3dpZHRoOiJhYmJyZXZpYXRlZCIsY29udGV4dDoiZm9ybWF0dGluZyJ9KXx8aS5tb250aCh0LHt3aWR0aDoibmFycm93Iixjb250ZXh0OiJmb3JtYXR0aW5nIn0pO2Nhc2UiTU1NTU0iOnJldHVybiBpLm1vbnRoKHQse3dpZHRoOiJuYXJyb3ciLGNvbnRleHQ6ImZvcm1hdHRpbmcifSk7ZGVmYXVsdDpyZXR1cm4gaS5tb250aCh0LHt3aWR0aDoid2lkZSIsY29udGV4dDoiZm9ybWF0dGluZyJ9KXx8aS5tb250aCh0LHt3aWR0aDoiYWJicmV2aWF0ZWQiLGNvbnRleHQ6ImZvcm1hdHRpbmcifSl8fGkubW9udGgodCx7d2lkdGg6Im5hcnJvdyIsY29udGV4dDoiZm9ybWF0dGluZyJ9KX19dmFsaWRhdGUodCxyKXtyZXR1cm4gcj49MCYmcjw9MTF9c2V0KHQscixpKXtyZXR1cm4gdC5zZXRNb250aChpLDEpLHQuc2V0SG91cnMoMCwwLDAsMCksdH19fSk7dmFyIEN5LGs3ZT1wKCgpPT57aGEoKTt5cigpO0FyKCk7Q3k9Y2xhc3MgZXh0ZW5kcyB0dHtwcmlvcml0eT0xMTA7cGFyc2UodCxyLGkpe2xldCBhPW49Pm4tMTtzd2l0Y2gocil7Y2FzZSJMIjpyZXR1cm4gQnIobHIocHIubW9udGgsdCksYSk7Y2FzZSJMTCI6cmV0dXJuIEJyKEl0KDIsdCksYSk7Y2FzZSJMbyI6cmV0dXJuIEJyKGkub3JkaW5hbE51bWJlcih0LHt1bml0OiJtb250aCJ9KSxhKTtjYXNlIkxMTCI6cmV0dXJuIGkubW9udGgodCx7d2lkdGg6ImFiYnJldmlhdGVkIixjb250ZXh0OiJzdGFuZGFsb25lIn0pfHxpLm1vbnRoKHQse3dpZHRoOiJuYXJyb3ciLGNvbnRleHQ6InN0YW5kYWxvbmUifSk7Y2FzZSJMTExMTCI6cmV0dXJuIGkubW9udGgodCx7d2lkdGg6Im5hcnJvdyIsY29udGV4dDoic3RhbmRhbG9uZSJ9KTtkZWZhdWx0OnJldHVybiBpLm1vbnRoKHQse3dpZHRoOiJ3aWRlIixjb250ZXh0OiJzdGFuZGFsb25lIn0pfHxpLm1vbnRoKHQse3dpZHRoOiJhYmJyZXZpYXRlZCIsY29udGV4dDoic3RhbmRhbG9uZSJ9KXx8aS5tb250aCh0LHt3aWR0aDoibmFycm93Iixjb250ZXh0OiJzdGFuZGFsb25lIn0pfX12YWxpZGF0ZSh0LHIpe3JldHVybiByPj0wJiZyPD0xMX1zZXQodCxyLGkpe3JldHVybiB0LnNldE1vbnRoKGksMSksdC5zZXRIb3VycygwLDAsMCwwKSx0fWluY29tcGF0aWJsZVRva2Vucz1bIlkiLCJSIiwicSIsIlEiLCJNIiwidyIsIkkiLCJEIiwiaSIsImUiLCJjIiwidCIsIlQiXX19KTtmdW5jdGlvbiBUeShlLHQscil7bGV0IGk9bGUoZSxyPy5pbiksYT1CNShpLHIpLXQ7cmV0dXJuIGkuc2V0RGF0ZShpLmdldERhdGUoKS1hKjcpLGxlKGkscj8uaW4pfXZhciB2bTEsekg9cCgoKT0+e2V5KCk7T2UoKTt2bTE9VHl9KTt2YXIgX3ksUzdlPXAoKCk9Pnt6SCgpO3IyKCk7aGEoKTt5cigpO0FyKCk7X3k9Y2xhc3MgZXh0ZW5kcyB0dHtwcmlvcml0eT0xMDA7cGFyc2UodCxyLGkpe3N3aXRjaChyKXtjYXNlInciOnJldHVybiBscihwci53ZWVrLHQpO2Nhc2Uid28iOnJldHVybiBpLm9yZGluYWxOdW1iZXIodCx7dW5pdDoid2VlayJ9KTtkZWZhdWx0OnJldHVybiBJdChyLmxlbmd0aCx0KX19dmFsaWRhdGUodCxyKXtyZXR1cm4gcj49MSYmcjw9NTN9c2V0KHQscixpLGEpe3JldHVybiBKcihUeSh0LGksYSksYSl9aW5jb21wYXRpYmxlVG9rZW5zPVsieSIsIlIiLCJ1IiwicSIsIlEiLCJNIiwiTCIsIkkiLCJkIiwiRCIsImkiLCJ0IiwiVCJdfX0pO2Z1bmN0aW9uIEx5KGUsdCxyKXtsZXQgaT1sZShlLHI/LmluKSxhPVI1KGksciktdDtyZXR1cm4gaS5zZXREYXRlKGkuZ2V0RGF0ZSgpLWEqNyksaX12YXIgX20xLENIPXAoKCk9PntKeCgpO09lKCk7X20xPUx5fSk7dmFyIEF5LHo3ZT1wKCgpPT57Q0goKTtLMigpO2hhKCk7eXIoKTtBcigpO0F5PWNsYXNzIGV4dGVuZHMgdHR7cHJpb3JpdHk9MTAwO3BhcnNlKHQscixpKXtzd2l0Y2gocil7Y2FzZSJJIjpyZXR1cm4gbHIocHIud2Vlayx0KTtjYXNlIklvIjpyZXR1cm4gaS5vcmRpbmFsTnVtYmVyKHQse3VuaXQ6IndlZWsifSk7ZGVmYXVsdDpyZXR1cm4gSXQoci5sZW5ndGgsdCl9fXZhbGlkYXRlKHQscil7cmV0dXJuIHI+PTEmJnI8PTUzfXNldCh0LHIsaSl7cmV0dXJuIFExKEx5KHQsaSkpfWluY29tcGF0aWJsZVRva2Vucz1bInkiLCJZIiwidSIsInEiLCJRIiwiTSIsIkwiLCJ3IiwiZCIsIkQiLCJlIiwiYyIsInQiLCJUIl19fSk7dmFyIHU3cixwN3IsRHksQzdlPXAoKCk9PntoYSgpO3lyKCk7QXIoKTt1N3I9WzMxLDI4LDMxLDMwLDMxLDMwLDMxLDMxLDMwLDMxLDMwLDMxXSxwN3I9WzMxLDI5LDMxLDMwLDMxLDMwLDMxLDMxLDMwLDMxLDMwLDMxXSxEeT1jbGFzcyBleHRlbmRzIHR0e3ByaW9yaXR5PTkwO3N1YlByaW9yaXR5PTE7cGFyc2UodCxyLGkpe3N3aXRjaChyKXtjYXNlImQiOnJldHVybiBscihwci5kYXRlLHQpO2Nhc2UiZG8iOnJldHVybiBpLm9yZGluYWxOdW1iZXIodCx7dW5pdDoiZGF0ZSJ9KTtkZWZhdWx0OnJldHVybiBJdChyLmxlbmd0aCx0KX19dmFsaWRhdGUodCxyKXtsZXQgaT10LmdldEZ1bGxZZWFyKCksYT12eShpKSxuPXQuZ2V0TW9udGgoKTtyZXR1cm4gYT9yPj0xJiZyPD1wN3Jbbl06cj49MSYmcjw9dTdyW25dfXNldCh0LHIsaSl7cmV0dXJuIHQuc2V0RGF0ZShpKSx0LnNldEhvdXJzKDAsMCwwLDApLHR9aW5jb21wYXRpYmxlVG9rZW5zPVsiWSIsIlIiLCJxIiwiUSIsInciLCJJIiwiRCIsImkiLCJlIiwiYyIsInQiLCJUIl19fSk7dmFyIEV5LFQ3ZT1wKCgpPT57aGEoKTt5cigpO0FyKCk7RXk9Y2xhc3MgZXh0ZW5kcyB0dHtwcmlvcml0eT05MDtzdWJwcmlvcml0eT0xO3BhcnNlKHQscixpKXtzd2l0Y2gocil7Y2FzZSJEIjpjYXNlIkREIjpyZXR1cm4gbHIocHIuZGF5T2ZZZWFyLHQpO2Nhc2UiRG8iOnJldHVybiBpLm9yZGluYWxOdW1iZXIodCx7dW5pdDoiZGF0ZSJ9KTtkZWZhdWx0OnJldHVybiBJdChyLmxlbmd0aCx0KX19dmFsaWRhdGUodCxyKXtsZXQgaT10LmdldEZ1bGxZZWFyKCk7cmV0dXJuIHZ5KGkpP3I+PTEmJnI8PTM2NjpyPj0xJiZyPD0zNjV9c2V0KHQscixpKXtyZXR1cm4gdC5zZXRNb250aCgwLGkpLHQuc2V0SG91cnMoMCwwLDAsMCksdH1pbmNvbXBhdGlibGVUb2tlbnM9WyJZIiwiUiIsInEiLCJRIiwiTSIsIkwiLCJ3IiwiSSIsImQiLCJFIiwiaSIsImUiLCJjIiwidCIsIlQiXX19KTtmdW5jdGlvbiByMChlLHQscil7bGV0IGk9THIoKSxhPXI/LndlZWtTdGFydHNPbj8/cj8ubG9jYWxlPy5vcHRpb25zPy53ZWVrU3RhcnRzT24/P2kud2Vla1N0YXJ0c09uPz9pLmxvY2FsZT8ub3B0aW9ucz8ud2Vla1N0YXJ0c09uPz8wLG49bGUoZSxyPy5pbiksbz1uLmdldERheSgpLGw9KHQlNys3KSU3LGM9Ny1hLHU9dDwwfHx0PjY/dC0obytjKSU3OihsK2MpJTctKG8rYyklNztyZXR1cm4gbGkobix1LHIpfXZhciBHbTEseWY9cCgoKT0+e2RhKCk7WDIoKTtPZSgpO0dtMT1yMH0pO3ZhciAkeSxfN2U9cCgoKT0+e3lmKCk7eXIoKTskeT1jbGFzcyBleHRlbmRzIHR0e3ByaW9yaXR5PTkwO3BhcnNlKHQscixpKXtzd2l0Y2gocil7Y2FzZSJFIjpjYXNlIkVFIjpjYXNlIkVFRSI6cmV0dXJuIGkuZGF5KHQse3dpZHRoOiJhYmJyZXZpYXRlZCIsY29udGV4dDoiZm9ybWF0dGluZyJ9KXx8aS5kYXkodCx7d2lkdGg6InNob3J0Iixjb250ZXh0OiJmb3JtYXR0aW5nIn0pfHxpLmRheSh0LHt3aWR0aDoibmFycm93Iixjb250ZXh0OiJmb3JtYXR0aW5nIn0pO2Nhc2UiRUVFRUUiOnJldHVybiBpLmRheSh0LHt3aWR0aDoibmFycm93Iixjb250ZXh0OiJmb3JtYXR0aW5nIn0pO2Nhc2UiRUVFRUVFIjpyZXR1cm4gaS5kYXkodCx7d2lkdGg6InNob3J0Iixjb250ZXh0OiJmb3JtYXR0aW5nIn0pfHxpLmRheSh0LHt3aWR0aDoibmFycm93Iixjb250ZXh0OiJmb3JtYXR0aW5nIn0pO2RlZmF1bHQ6cmV0dXJuIGkuZGF5KHQse3dpZHRoOiJ3aWRlIixjb250ZXh0OiJmb3JtYXR0aW5nIn0pfHxpLmRheSh0LHt3aWR0aDoiYWJicmV2aWF0ZWQiLGNvbnRleHQ6ImZvcm1hdHRpbmcifSl8fGkuZGF5KHQse3dpZHRoOiJzaG9ydCIsY29udGV4dDoiZm9ybWF0dGluZyJ9KXx8aS5kYXkodCx7d2lkdGg6Im5hcnJvdyIsY29udGV4dDoiZm9ybWF0dGluZyJ9KX19dmFsaWRhdGUodCxyKXtyZXR1cm4gcj49MCYmcjw9Nn1zZXQodCxyLGksYSl7cmV0dXJuIHQ9cjAodCxpLGEpLHQuc2V0SG91cnMoMCwwLDAsMCksdH1pbmNvbXBhdGlibGVUb2tlbnM9WyJEIiwiaSIsImUiLCJjIiwidCIsIlQiXX19KTt2YXIgSXksTDdlPXAoKCk9Pnt5ZigpO3lyKCk7QXIoKTtJeT1jbGFzcyBleHRlbmRzIHR0e3ByaW9yaXR5PTkwO3BhcnNlKHQscixpLGEpe2xldCBuPW89PntsZXQgcz1NYXRoLmZsb29yKChvLTEpLzcpKjc7cmV0dXJuKG8rYS53ZWVrU3RhcnRzT24rNiklNytzfTtzd2l0Y2gocil7Y2FzZSJlIjpjYXNlImVlIjpyZXR1cm4gQnIoSXQoci5sZW5ndGgsdCksbik7Y2FzZSJlbyI6cmV0dXJuIEJyKGkub3JkaW5hbE51bWJlcih0LHt1bml0OiJkYXkifSksbik7Y2FzZSJlZWUiOnJldHVybiBpLmRheSh0LHt3aWR0aDoiYWJicmV2aWF0ZWQiLGNvbnRleHQ6ImZvcm1hdHRpbmcifSl8fGkuZGF5KHQse3dpZHRoOiJzaG9ydCIsY29udGV4dDoiZm9ybWF0dGluZyJ9KXx8aS5kYXkodCx7d2lkdGg6Im5hcnJvdyIsY29udGV4dDoiZm9ybWF0dGluZyJ9KTtjYXNlImVlZWVlIjpyZXR1cm4gaS5kYXkodCx7d2lkdGg6Im5hcnJvdyIsY29udGV4dDoiZm9ybWF0dGluZyJ9KTtjYXNlImVlZWVlZSI6cmV0dXJuIGkuZGF5KHQse3dpZHRoOiJzaG9ydCIsY29udGV4dDoiZm9ybWF0dGluZyJ9KXx8aS5kYXkodCx7d2lkdGg6Im5hcnJvdyIsY29udGV4dDoiZm9ybWF0dGluZyJ9KTtkZWZhdWx0OnJldHVybiBpLmRheSh0LHt3aWR0aDoid2lkZSIsY29udGV4dDoiZm9ybWF0dGluZyJ9KXx8aS5kYXkodCx7d2lkdGg6ImFiYnJldmlhdGVkIixjb250ZXh0OiJmb3JtYXR0aW5nIn0pfHxpLmRheSh0LHt3aWR0aDoic2hvcnQiLGNvbnRleHQ6ImZvcm1hdHRpbmcifSl8fGkuZGF5KHQse3dpZHRoOiJuYXJyb3ciLGNvbnRleHQ6ImZvcm1hdHRpbmcifSl9fXZhbGlkYXRlKHQscil7cmV0dXJuIHI+PTAmJnI8PTZ9c2V0KHQscixpLGEpe3JldHVybiB0PXIwKHQsaSxhKSx0LnNldEhvdXJzKDAsMCwwLDApLHR9aW5jb21wYXRpYmxlVG9rZW5zPVsieSIsIlIiLCJ1IiwicSIsIlEiLCJNIiwiTCIsIkkiLCJkIiwiRCIsIkUiLCJpIiwiYyIsInQiLCJUIl19fSk7dmFyIFB5LEE3ZT1wKCgpPT57eWYoKTt5cigpO0FyKCk7UHk9Y2xhc3MgZXh0ZW5kcyB0dHtwcmlvcml0eT05MDtwYXJzZSh0LHIsaSxhKXtsZXQgbj1vPT57bGV0IHM9TWF0aC5mbG9vcigoby0xKS83KSo3O3JldHVybihvK2Eud2Vla1N0YXJ0c09uKzYpJTcrc307c3dpdGNoKHIpe2Nhc2UiYyI6Y2FzZSJjYyI6cmV0dXJuIEJyKEl0KHIubGVuZ3RoLHQpLG4pO2Nhc2UiY28iOnJldHVybiBCcihpLm9yZGluYWxOdW1iZXIodCx7dW5pdDoiZGF5In0pLG4pO2Nhc2UiY2NjIjpyZXR1cm4gaS5kYXkodCx7d2lkdGg6ImFiYnJldmlhdGVkIixjb250ZXh0OiJzdGFuZGFsb25lIn0pfHxpLmRheSh0LHt3aWR0aDoic2hvcnQiLGNvbnRleHQ6InN0YW5kYWxvbmUifSl8fGkuZGF5KHQse3dpZHRoOiJuYXJyb3ciLGNvbnRleHQ6InN0YW5kYWxvbmUifSk7Y2FzZSJjY2NjYyI6cmV0dXJuIGkuZGF5KHQse3dpZHRoOiJuYXJyb3ciLGNvbnRleHQ6InN0YW5kYWxvbmUifSk7Y2FzZSJjY2NjY2MiOnJldHVybiBpLmRheSh0LHt3aWR0aDoic2hvcnQiLGNvbnRleHQ6InN0YW5kYWxvbmUifSl8fGkuZGF5KHQse3dpZHRoOiJuYXJyb3ciLGNvbnRleHQ6InN0YW5kYWxvbmUifSk7ZGVmYXVsdDpyZXR1cm4gaS5kYXkodCx7d2lkdGg6IndpZGUiLGNvbnRleHQ6InN0YW5kYWxvbmUifSl8fGkuZGF5KHQse3dpZHRoOiJhYmJyZXZpYXRlZCIsY29udGV4dDoic3RhbmRhbG9uZSJ9KXx8aS5kYXkodCx7d2lkdGg6InNob3J0Iixjb250ZXh0OiJzdGFuZGFsb25lIn0pfHxpLmRheSh0LHt3aWR0aDoibmFycm93Iixjb250ZXh0OiJzdGFuZGFsb25lIn0pfX12YWxpZGF0ZSh0LHIpe3JldHVybiByPj0wJiZyPD02fXNldCh0LHIsaSxhKXtyZXR1cm4gdD1yMCh0LGksYSksdC5zZXRIb3VycygwLDAsMCwwKSx0fWluY29tcGF0aWJsZVRva2Vucz1bInkiLCJSIiwidSIsInEiLCJRIiwiTSIsIkwiLCJJIiwiZCIsIkQiLCJFIiwiaSIsImUiLCJ0IiwiVCJdfX0pO2Z1bmN0aW9uIE55KGUsdCxyKXtsZXQgaT1sZShlLHI/LmluKSxhPWN5KGksciksbj10LWE7cmV0dXJuIGxpKGksbixyKX12YXIgYzkxLFRIPXAoKCk9PntYMigpO3dIKCk7T2UoKTtjOTE9Tnl9KTt2YXIgRnksRDdlPXAoKCk9PntUSCgpO3lyKCk7QXIoKTtGeT1jbGFzcyBleHRlbmRzIHR0e3ByaW9yaXR5PTkwO3BhcnNlKHQscixpKXtsZXQgYT1uPT5uPT09MD83Om47c3dpdGNoKHIpe2Nhc2UiaSI6Y2FzZSJpaSI6cmV0dXJuIEl0KHIubGVuZ3RoLHQpO2Nhc2UiaW8iOnJldHVybiBpLm9yZGluYWxOdW1iZXIodCx7dW5pdDoiZGF5In0pO2Nhc2UiaWlpIjpyZXR1cm4gQnIoaS5kYXkodCx7d2lkdGg6ImFiYnJldmlhdGVkIixjb250ZXh0OiJmb3JtYXR0aW5nIn0pfHxpLmRheSh0LHt3aWR0aDoic2hvcnQiLGNvbnRleHQ6ImZvcm1hdHRpbmcifSl8fGkuZGF5KHQse3dpZHRoOiJuYXJyb3ciLGNvbnRleHQ6ImZvcm1hdHRpbmcifSksYSk7Y2FzZSJpaWlpaSI6cmV0dXJuIEJyKGkuZGF5KHQse3dpZHRoOiJuYXJyb3ciLGNvbnRleHQ6ImZvcm1hdHRpbmcifSksYSk7Y2FzZSJpaWlpaWkiOnJldHVybiBCcihpLmRheSh0LHt3aWR0aDoic2hvcnQiLGNvbnRleHQ6ImZvcm1hdHRpbmcifSl8fGkuZGF5KHQse3dpZHRoOiJuYXJyb3ciLGNvbnRleHQ6ImZvcm1hdHRpbmcifSksYSk7ZGVmYXVsdDpyZXR1cm4gQnIoaS5kYXkodCx7d2lkdGg6IndpZGUiLGNvbnRleHQ6ImZvcm1hdHRpbmcifSl8fGkuZGF5KHQse3dpZHRoOiJhYmJyZXZpYXRlZCIsY29udGV4dDoiZm9ybWF0dGluZyJ9KXx8aS5kYXkodCx7d2lkdGg6InNob3J0Iixjb250ZXh0OiJmb3JtYXR0aW5nIn0pfHxpLmRheSh0LHt3aWR0aDoibmFycm93Iixjb250ZXh0OiJmb3JtYXR0aW5nIn0pLGEpfX12YWxpZGF0ZSh0LHIpe3JldHVybiByPj0xJiZyPD03fXNldCh0LHIsaSl7cmV0dXJuIHQ9TnkodCxpKSx0LnNldEhvdXJzKDAsMCwwLDApLHR9aW5jb21wYXRpYmxlVG9rZW5zPVsieSIsIlkiLCJ1IiwicSIsIlEiLCJNIiwiTCIsInciLCJkIiwiRCIsIkUiLCJlIiwiYyIsInQiLCJUIl19fSk7dmFyIE95LEU3ZT1wKCgpPT57eXIoKTtBcigpO095PWNsYXNzIGV4dGVuZHMgdHR7cHJpb3JpdHk9ODA7cGFyc2UodCxyLGkpe3N3aXRjaChyKXtjYXNlImEiOmNhc2UiYWEiOmNhc2UiYWFhIjpyZXR1cm4gaS5kYXlQZXJpb2QodCx7d2lkdGg6ImFiYnJldmlhdGVkIixjb250ZXh0OiJmb3JtYXR0aW5nIn0pfHxpLmRheVBlcmlvZCh0LHt3aWR0aDoibmFycm93Iixjb250ZXh0OiJmb3JtYXR0aW5nIn0pO2Nhc2UiYWFhYWEiOnJldHVybiBpLmRheVBlcmlvZCh0LHt3aWR0aDoibmFycm93Iixjb250ZXh0OiJmb3JtYXR0aW5nIn0pO2RlZmF1bHQ6cmV0dXJuIGkuZGF5UGVyaW9kKHQse3dpZHRoOiJ3aWRlIixjb250ZXh0OiJmb3JtYXR0aW5nIn0pfHxpLmRheVBlcmlvZCh0LHt3aWR0aDoiYWJicmV2aWF0ZWQiLGNvbnRleHQ6ImZvcm1hdHRpbmcifSl8fGkuZGF5UGVyaW9kKHQse3dpZHRoOiJuYXJyb3ciLGNvbnRleHQ6ImZvcm1hdHRpbmcifSl9fXNldCh0LHIsaSl7cmV0dXJuIHQuc2V0SG91cnMoajUoaSksMCwwLDApLHR9aW5jb21wYXRpYmxlVG9rZW5zPVsiYiIsIkIiLCJIIiwiayIsInQiLCJUIl19fSk7dmFyIFJ5LCQ3ZT1wKCgpPT57eXIoKTtBcigpO1J5PWNsYXNzIGV4dGVuZHMgdHR7cHJpb3JpdHk9ODA7cGFyc2UodCxyLGkpe3N3aXRjaChyKXtjYXNlImIiOmNhc2UiYmIiOmNhc2UiYmJiIjpyZXR1cm4gaS5kYXlQZXJpb2QodCx7d2lkdGg6ImFiYnJldmlhdGVkIixjb250ZXh0OiJmb3JtYXR0aW5nIn0pfHxpLmRheVBlcmlvZCh0LHt3aWR0aDoibmFycm93Iixjb250ZXh0OiJmb3JtYXR0aW5nIn0pO2Nhc2UiYmJiYmIiOnJldHVybiBpLmRheVBlcmlvZCh0LHt3aWR0aDoibmFycm93Iixjb250ZXh0OiJmb3JtYXR0aW5nIn0pO2RlZmF1bHQ6cmV0dXJuIGkuZGF5UGVyaW9kKHQse3dpZHRoOiJ3aWRlIixjb250ZXh0OiJmb3JtYXR0aW5nIn0pfHxpLmRheVBlcmlvZCh0LHt3aWR0aDoiYWJicmV2aWF0ZWQiLGNvbnRleHQ6ImZvcm1hdHRpbmcifSl8fGkuZGF5UGVyaW9kKHQse3dpZHRoOiJuYXJyb3ciLGNvbnRleHQ6ImZvcm1hdHRpbmcifSl9fXNldCh0LHIsaSl7cmV0dXJuIHQuc2V0SG91cnMoajUoaSksMCwwLDApLHR9aW5jb21wYXRpYmxlVG9rZW5zPVsiYSIsIkIiLCJIIiwiayIsInQiLCJUIl19fSk7dmFyIEJ5LEk3ZT1wKCgpPT57eXIoKTtBcigpO0J5PWNsYXNzIGV4dGVuZHMgdHR7cHJpb3JpdHk9ODA7cGFyc2UodCxyLGkpe3N3aXRjaChyKXtjYXNlIkIiOmNhc2UiQkIiOmNhc2UiQkJCIjpyZXR1cm4gaS5kYXlQZXJpb2QodCx7d2lkdGg6ImFiYnJldmlhdGVkIixjb250ZXh0OiJmb3JtYXR0aW5nIn0pfHxpLmRheVBlcmlvZCh0LHt3aWR0aDoibmFycm93Iixjb250ZXh0OiJmb3JtYXR0aW5nIn0pO2Nhc2UiQkJCQkIiOnJldHVybiBpLmRheVBlcmlvZCh0LHt3aWR0aDoibmFycm93Iixjb250ZXh0OiJmb3JtYXR0aW5nIn0pO2RlZmF1bHQ6cmV0dXJuIGkuZGF5UGVyaW9kKHQse3dpZHRoOiJ3aWRlIixjb250ZXh0OiJmb3JtYXR0aW5nIn0pfHxpLmRheVBlcmlvZCh0LHt3aWR0aDoiYWJicmV2aWF0ZWQiLGNvbnRleHQ6ImZvcm1hdHRpbmcifSl8fGkuZGF5UGVyaW9kKHQse3dpZHRoOiJuYXJyb3ciLGNvbnRleHQ6ImZvcm1hdHRpbmcifSl9fXNldCh0LHIsaSl7cmV0dXJuIHQuc2V0SG91cnMoajUoaSksMCwwLDApLHR9aW5jb21wYXRpYmxlVG9rZW5zPVsiYSIsImIiLCJ0IiwiVCJdfX0pO3ZhciBIeSxQN2U9cCgoKT0+e2hhKCk7eXIoKTtBcigpO0h5PWNsYXNzIGV4dGVuZHMgdHR7cHJpb3JpdHk9NzA7cGFyc2UodCxyLGkpe3N3aXRjaChyKXtjYXNlImgiOnJldHVybiBscihwci5ob3VyMTJoLHQpO2Nhc2UiaG8iOnJldHVybiBpLm9yZGluYWxOdW1iZXIodCx7dW5pdDoiaG91ciJ9KTtkZWZhdWx0OnJldHVybiBJdChyLmxlbmd0aCx0KX19dmFsaWRhdGUodCxyKXtyZXR1cm4gcj49MSYmcjw9MTJ9c2V0KHQscixpKXtsZXQgYT10LmdldEhvdXJzKCk+PTEyO3JldHVybiBhJiZpPDEyP3Quc2V0SG91cnMoaSsxMiwwLDAsMCk6IWEmJmk9PT0xMj90LnNldEhvdXJzKDAsMCwwLDApOnQuc2V0SG91cnMoaSwwLDAsMCksdH1pbmNvbXBhdGlibGVUb2tlbnM9WyJIIiwiSyIsImsiLCJ0IiwiVCJdfX0pO3ZhciBxeSxON2U9cCgoKT0+e2hhKCk7eXIoKTtBcigpO3F5PWNsYXNzIGV4dGVuZHMgdHR7cHJpb3JpdHk9NzA7cGFyc2UodCxyLGkpe3N3aXRjaChyKXtjYXNlIkgiOnJldHVybiBscihwci5ob3VyMjNoLHQpO2Nhc2UiSG8iOnJldHVybiBpLm9yZGluYWxOdW1iZXIodCx7dW5pdDoiaG91ciJ9KTtkZWZhdWx0OnJldHVybiBJdChyLmxlbmd0aCx0KX19dmFsaWRhdGUodCxyKXtyZXR1cm4gcj49MCYmcjw9MjN9c2V0KHQscixpKXtyZXR1cm4gdC5zZXRIb3VycyhpLDAsMCwwKSx0fWluY29tcGF0aWJsZVRva2Vucz1bImEiLCJiIiwiaCIsIksiLCJrIiwidCIsIlQiXX19KTt2YXIganksRjdlPXAoKCk9PntoYSgpO3lyKCk7QXIoKTtqeT1jbGFzcyBleHRlbmRzIHR0e3ByaW9yaXR5PTcwO3BhcnNlKHQscixpKXtzd2l0Y2gocil7Y2FzZSJLIjpyZXR1cm4gbHIocHIuaG91cjExaCx0KTtjYXNlIktvIjpyZXR1cm4gaS5vcmRpbmFsTnVtYmVyKHQse3VuaXQ6ImhvdXIifSk7ZGVmYXVsdDpyZXR1cm4gSXQoci5sZW5ndGgsdCl9fXZhbGlkYXRlKHQscil7cmV0dXJuIHI+PTAmJnI8PTExfXNldCh0LHIsaSl7cmV0dXJuIHQuZ2V0SG91cnMoKT49MTImJmk8MTI/dC5zZXRIb3VycyhpKzEyLDAsMCwwKTp0LnNldEhvdXJzKGksMCwwLDApLHR9aW5jb21wYXRpYmxlVG9rZW5zPVsiaCIsIkgiLCJrIiwidCIsIlQiXX19KTt2YXIgVnksTzdlPXAoKCk9PntoYSgpO3lyKCk7QXIoKTtWeT1jbGFzcyBleHRlbmRzIHR0e3ByaW9yaXR5PTcwO3BhcnNlKHQscixpKXtzd2l0Y2gocil7Y2FzZSJrIjpyZXR1cm4gbHIocHIuaG91cjI0aCx0KTtjYXNlImtvIjpyZXR1cm4gaS5vcmRpbmFsTnVtYmVyKHQse3VuaXQ6ImhvdXIifSk7ZGVmYXVsdDpyZXR1cm4gSXQoci5sZW5ndGgsdCl9fXZhbGlkYXRlKHQscil7cmV0dXJuIHI+PTEmJnI8PTI0fXNldCh0LHIsaSl7bGV0IGE9aTw9MjQ/aSUyNDppO3JldHVybiB0LnNldEhvdXJzKGEsMCwwLDApLHR9aW5jb21wYXRpYmxlVG9rZW5zPVsiYSIsImIiLCJoIiwiSCIsIksiLCJ0IiwiVCJdfX0pO3ZhciBVeSxSN2U9cCgoKT0+e2hhKCk7eXIoKTtBcigpO1V5PWNsYXNzIGV4dGVuZHMgdHR7cHJpb3JpdHk9NjA7cGFyc2UodCxyLGkpe3N3aXRjaChyKXtjYXNlIm0iOnJldHVybiBscihwci5taW51dGUsdCk7Y2FzZSJtbyI6cmV0dXJuIGkub3JkaW5hbE51bWJlcih0LHt1bml0OiJtaW51dGUifSk7ZGVmYXVsdDpyZXR1cm4gSXQoci5sZW5ndGgsdCl9fXZhbGlkYXRlKHQscil7cmV0dXJuIHI+PTAmJnI8PTU5fXNldCh0LHIsaSl7cmV0dXJuIHQuc2V0TWludXRlcyhpLDAsMCksdH1pbmNvbXBhdGlibGVUb2tlbnM9WyJ0IiwiVCJdfX0pO3ZhciBXeSxCN2U9cCgoKT0+e2hhKCk7eXIoKTtBcigpO1d5PWNsYXNzIGV4dGVuZHMgdHR7cHJpb3JpdHk9NTA7cGFyc2UodCxyLGkpe3N3aXRjaChyKXtjYXNlInMiOnJldHVybiBscihwci5zZWNvbmQsdCk7Y2FzZSJzbyI6cmV0dXJuIGkub3JkaW5hbE51bWJlcih0LHt1bml0OiJzZWNvbmQifSk7ZGVmYXVsdDpyZXR1cm4gSXQoci5sZW5ndGgsdCl9fXZhbGlkYXRlKHQscil7cmV0dXJuIHI+PTAmJnI8PTU5fXNldCh0LHIsaSl7cmV0dXJuIHQuc2V0U2Vjb25kcyhpLDApLHR9aW5jb21wYXRpYmxlVG9rZW5zPVsidCIsIlQiXX19KTt2YXIgR3ksSDdlPXAoKCk9Pnt5cigpO0FyKCk7R3k9Y2xhc3MgZXh0ZW5kcyB0dHtwcmlvcml0eT0zMDtwYXJzZSh0LHIpe2xldCBpPWE9Pk1hdGgudHJ1bmMoYSpNYXRoLnBvdygxMCwtci5sZW5ndGgrMykpO3JldHVybiBCcihJdChyLmxlbmd0aCx0KSxpKX1zZXQodCxyLGkpe3JldHVybiB0LnNldE1pbGxpc2Vjb25kcyhpKSx0fWluY29tcGF0aWJsZVRva2Vucz1bInQiLCJUIl19fSk7dmFyIFl5LHE3ZT1wKCgpPT57ZnQoKTtnbCgpO2hhKCk7eXIoKTtBcigpO1l5PWNsYXNzIGV4dGVuZHMgdHR7cHJpb3JpdHk9MTA7cGFyc2UodCxyKXtzd2l0Y2gocil7Y2FzZSJYIjpyZXR1cm4gbG8oc28uYmFzaWNPcHRpb25hbE1pbnV0ZXMsdCk7Y2FzZSJYWCI6cmV0dXJuIGxvKHNvLmJhc2ljLHQpO2Nhc2UiWFhYWCI6cmV0dXJuIGxvKHNvLmJhc2ljT3B0aW9uYWxTZWNvbmRzLHQpO2Nhc2UiWFhYWFgiOnJldHVybiBsbyhzby5leHRlbmRlZE9wdGlvbmFsU2Vjb25kcyx0KTtkZWZhdWx0OnJldHVybiBsbyhzby5leHRlbmRlZCx0KX19c2V0KHQscixpKXtyZXR1cm4gci50aW1lc3RhbXBJc1NldD90OlBlKHQsdC5nZXRUaW1lKCktQzEodCktaSl9aW5jb21wYXRpYmxlVG9rZW5zPVsidCIsIlQiLCJ4Il19fSk7dmFyIFp5LGo3ZT1wKCgpPT57ZnQoKTtnbCgpO2hhKCk7eXIoKTtBcigpO1p5PWNsYXNzIGV4dGVuZHMgdHR7cHJpb3JpdHk9MTA7cGFyc2UodCxyKXtzd2l0Y2gocil7Y2FzZSJ4IjpyZXR1cm4gbG8oc28uYmFzaWNPcHRpb25hbE1pbnV0ZXMsdCk7Y2FzZSJ4eCI6cmV0dXJuIGxvKHNvLmJhc2ljLHQpO2Nhc2UieHh4eCI6cmV0dXJuIGxvKHNvLmJhc2ljT3B0aW9uYWxTZWNvbmRzLHQpO2Nhc2UieHh4eHgiOnJldHVybiBsbyhzby5leHRlbmRlZE9wdGlvbmFsU2Vjb25kcyx0KTtkZWZhdWx0OnJldHVybiBsbyhzby5leHRlbmRlZCx0KX19c2V0KHQscixpKXtyZXR1cm4gci50aW1lc3RhbXBJc1NldD90OlBlKHQsdC5nZXRUaW1lKCktQzEodCktaSl9aW5jb21wYXRpYmxlVG9rZW5zPVsidCIsIlQiLCJYIl19fSk7dmFyIFh5LFY3ZT1wKCgpPT57ZnQoKTt5cigpO0FyKCk7WHk9Y2xhc3MgZXh0ZW5kcyB0dHtwcmlvcml0eT00MDtwYXJzZSh0KXtyZXR1cm4gZ3kodCl9c2V0KHQscixpKXtyZXR1cm5bUGUodCxpKjFlMykse3RpbWVzdGFtcElzU2V0OiEwfV19aW5jb21wYXRpYmxlVG9rZW5zPSIqIn19KTt2YXIgUXksVTdlPXAoKCk9PntmdCgpO3lyKCk7QXIoKTtReT1jbGFzcyBleHRlbmRzIHR0e3ByaW9yaXR5PTIwO3BhcnNlKHQpe3JldHVybiBneSh0KX1zZXQodCxyLGkpe3JldHVybltQZSh0LGkpLHt0aW1lc3RhbXBJc1NldDohMH1dfWluY29tcGF0aWJsZVRva2Vucz0iKiJ9fSk7dmFyIEp5LFc3ZT1wKCgpPT57bTdlKCk7ZzdlKCk7YjdlKCk7djdlKCk7eDdlKCk7eTdlKCk7dzdlKCk7TTdlKCk7azdlKCk7UzdlKCk7ejdlKCk7QzdlKCk7VDdlKCk7XzdlKCk7TDdlKCk7QTdlKCk7RDdlKCk7RTdlKCk7JDdlKCk7STdlKCk7UDdlKCk7TjdlKCk7RjdlKCk7TzdlKCk7UjdlKCk7QjdlKCk7SDdlKCk7cTdlKCk7ajdlKCk7VjdlKCk7VTdlKCk7Snk9e0c6bmV3IG15LHk6bmV3IHh5LFk6bmV3IHl5LFI6bmV3IHd5LHU6bmV3IE15LFE6bmV3IGt5LHE6bmV3IFN5LE06bmV3IHp5LEw6bmV3IEN5LHc6bmV3IF95LEk6bmV3IEF5LGQ6bmV3IER5LEQ6bmV3IEV5LEU6bmV3ICR5LGU6bmV3IEl5LGM6bmV3IFB5LGk6bmV3IEZ5LGE6bmV3IE95LGI6bmV3IFJ5LEI6bmV3IEJ5LGg6bmV3IEh5LEg6bmV3IHF5LEs6bmV3IGp5LGs6bmV3IFZ5LG06bmV3IFV5LHM6bmV3IFd5LFM6bmV3IEd5LFg6bmV3IFl5LHg6bmV3IFp5LHQ6bmV3IFh5LFQ6bmV3IFF5fX0pO2Z1bmN0aW9uIEt5KGUsdCxyLGkpe2xldCBhPSgpPT5QZShpPy5pbnx8cixOYU4pLG49bHkoKSxvPWk/LmxvY2FsZT8/bi5sb2NhbGU/P21uLHM9aT8uZmlyc3RXZWVrQ29udGFpbnNEYXRlPz9pPy5sb2NhbGU/Lm9wdGlvbnM/LmZpcnN0V2Vla0NvbnRhaW5zRGF0ZT8/bi5maXJzdFdlZWtDb250YWluc0RhdGU/P24ubG9jYWxlPy5vcHRpb25zPy5maXJzdFdlZWtDb250YWluc0RhdGU/PzEsbD1pPy53ZWVrU3RhcnRzT24/P2k/LmxvY2FsZT8ub3B0aW9ucz8ud2Vla1N0YXJ0c09uPz9uLndlZWtTdGFydHNPbj8/bi5sb2NhbGU/Lm9wdGlvbnM/LndlZWtTdGFydHNPbj8/MDtpZighdClyZXR1cm4gZT9hKCk6bGUocixpPy5pbik7bGV0IGM9e2ZpcnN0V2Vla0NvbnRhaW5zRGF0ZTpzLHdlZWtTdGFydHNPbjpsLGxvY2FsZTpvfSx1PVtuZXcgZnkoaT8uaW4scildLGQ9dC5tYXRjaChmN3IpLm1hcChiPT57bGV0IHk9YlswXTtpZih5IGluIGUwKXtsZXQgdz1lMFt5XTtyZXR1cm4gdyhiLG8uZm9ybWF0TG9uZyl9cmV0dXJuIGJ9KS5qb2luKCIiKS5tYXRjaChoN3IpLGg9W107Zm9yKGxldCBiIG9mIGQpeyFpPy51c2VBZGRpdGlvbmFsV2Vla1llYXJUb2tlbnMmJnJ5KGIpJiZiZihiLHQsZSksIWk/LnVzZUFkZGl0aW9uYWxEYXlPZlllYXJUb2tlbnMmJnR5KGIpJiZiZihiLHQsZSk7bGV0IHk9YlswXSx3PUp5W3ldO2lmKHcpe2xldHtpbmNvbXBhdGlibGVUb2tlbnM6a309dztpZihBcnJheS5pc0FycmF5KGspKXtsZXQgej1oLmZpbmQoTT0+ay5pbmNsdWRlcyhNLnRva2VuKXx8TS50b2tlbj09PXkpO2lmKHopdGhyb3cgbmV3IFJhbmdlRXJyb3IoYFRoZSBmb3JtYXQgc3RyaW5nIG11c3RuJ3QgY29udGFpbiBcYCR7ei5mdWxsVG9rZW59XGAgYW5kIFxgJHtifVxgIGF0IHRoZSBzYW1lIHRpbWVgKX1lbHNlIGlmKHcuaW5jb21wYXRpYmxlVG9rZW5zPT09IioiJiZoLmxlbmd0aD4wKXRocm93IG5ldyBSYW5nZUVycm9yKGBUaGUgZm9ybWF0IHN0cmluZyBtdXN0bid0IGNvbnRhaW4gXGAke2J9XGAgYW5kIGFueSBvdGhlciB0b2tlbiBhdCB0aGUgc2FtZSB0aW1lYCk7aC5wdXNoKHt0b2tlbjp5LGZ1bGxUb2tlbjpifSk7bGV0IE89dy5ydW4oZSxiLG8ubWF0Y2gsYyk7aWYoIU8pcmV0dXJuIGEoKTt1LnB1c2goTy5zZXR0ZXIpLGU9Ty5yZXN0fWVsc2V7aWYoeS5tYXRjaCh2N3IpKXRocm93IG5ldyBSYW5nZUVycm9yKCJGb3JtYXQgc3RyaW5nIGNvbnRhaW5zIGFuIHVuZXNjYXBlZCBsYXRpbiBhbHBoYWJldCBjaGFyYWN0ZXIgYCIreSsiYCIpO2lmKGI9PT0iJyciP2I9IiciOnk9PT0iJyImJihiPXg3cihiKSksZS5pbmRleE9mKGIpPT09MCllPWUuc2xpY2UoYi5sZW5ndGgpO2Vsc2UgcmV0dXJuIGEoKX19aWYoZS5sZW5ndGg+MCYmYjdyLnRlc3QoZSkpcmV0dXJuIGEoKTtsZXQgZj11Lm1hcChiPT5iLnByaW9yaXR5KS5zb3J0KChiLHkpPT55LWIpLmZpbHRlcigoYix5LHcpPT53LmluZGV4T2YoYik9PT15KS5tYXAoYj0+dS5maWx0ZXIoeT0+eS5wcmlvcml0eT09PWIpLnNvcnQoKHksdyk9Pncuc3ViUHJpb3JpdHkteS5zdWJQcmlvcml0eSkpLm1hcChiPT5iWzBdKSx4PWxlKHIsaT8uaW4pO2lmKGlzTmFOKCt4KSlyZXR1cm4gYSgpO2xldCB2PXt9O2ZvcihsZXQgYiBvZiBmKXtpZighYi52YWxpZGF0ZSh4LGMpKXJldHVybiBhKCk7bGV0IHk9Yi5zZXQoeCx2LGMpO0FycmF5LmlzQXJyYXkoeSk/KHg9eVswXSxPYmplY3QuYXNzaWduKHYseVsxXSkpOng9eX1yZXR1cm4geH1mdW5jdGlvbiB4N3IoZSl7cmV0dXJuIGUubWF0Y2gobTdyKVsxXS5yZXBsYWNlKGc3ciwiJyIpfXZhciBoN3IsZjdyLG03cixnN3IsYjdyLHY3cixpYjEsX0g9cCgoKT0+e3czKCk7cEgoKTtoSCgpO2Z0KCk7eUgoKTtPZSgpO1NIKCk7VzdlKCk7aDdyPS9beVlRcU1Md0lkRGVjaWhIS2ttc11vfChcdylcMSp8Jyd8JygnJ3xbXiddKSsoJ3wkKXwuL2csZjdyPS9QK3ArfFArfHArfCcnfCcoJyd8W14nXSkrKCd8JCl8Li9nLG03cj0vXicoW15dKj8pJz8kLyxnN3I9LycnL2csYjdyPS9cUy8sdjdyPS9bYS16QS1aXS87aWIxPUt5fSk7ZnVuY3Rpb24gRzdlKGUsdCxyKXtyZXR1cm4gVWkoS3koZSx0LG5ldyBEYXRlLHIpKX12YXIgc2IxLFk3ZT1wKCgpPT57dmwoKTtfSCgpO3NiMT1HN2V9KTtmdW5jdGlvbiBaN2UoZSx0KXtyZXR1cm4gbGUoZSx0Py5pbikuZ2V0RGF5KCk9PT0xfXZhciBkYjEsWDdlPXAoKCk9PntPZSgpO2RiMT1aN2V9KTtmdW5jdGlvbiBRN2UoZSl7cmV0dXJuK2xlKGUpPERhdGUubm93KCl9dmFyIGhiMSxKN2U9cCgoKT0+e09lKCk7aGIxPVE3ZX0pO2Z1bmN0aW9uIHdmKGUsdCl7bGV0IHI9bGUoZSx0Py5pbik7cmV0dXJuIHIuc2V0TWludXRlcygwLDAsMCkscn12YXIgZ2IxLExIPXAoKCk9PntPZSgpO2diMT13Zn0pO2Z1bmN0aW9uIGV3KGUsdCxyKXtsZXRbaSxhXT1kdChyPy5pbixlLHQpO3JldHVybit3ZihpKT09K3dmKGEpfXZhciB5YjEsQUg9cCgoKT0+e1JyKCk7TEgoKTt5YjE9ZXd9KTtmdW5jdGlvbiBWNShlLHQscil7bGV0W2ksYV09ZHQocj8uaW4sZSx0KTtyZXR1cm4rSnIoaSxyKT09K0pyKGEscil9dmFyIFNiMSx0dz1wKCgpPT57UnIoKTtyMigpO1NiMT1WNX0pO2Z1bmN0aW9uIHJ3KGUsdCxyKXtyZXR1cm4gVjUoZSx0LHsuLi5yLHdlZWtTdGFydHNPbjoxfSl9dmFyIFRiMSxESD1wKCgpPT57dHcoKTtUYjE9cnd9KTtmdW5jdGlvbiBLN2UoZSx0LHIpe2xldFtpLGFdPWR0KHI/LmluLGUsdCk7cmV0dXJuK0RuKGkpPT0rRG4oYSl9dmFyIERiMSxlbWU9cCgoKT0+e0M1KCk7UnIoKTtEYjE9SzdlfSk7ZnVuY3Rpb24gTWYoZSx0KXtsZXQgcj1sZShlLHQ/LmluKTtyZXR1cm4gci5zZXRTZWNvbmRzKDAsMCkscn12YXIgSWIxLEVIPXAoKCk9PntPZSgpO0liMT1NZn0pO2Z1bmN0aW9uIGl3KGUsdCl7cmV0dXJuK01mKGUpPT0rTWYodCl9dmFyIEZiMSwkSD1wKCgpPT57RUgoKTtGYjE9aXd9KTtmdW5jdGlvbiBhdyhlLHQscil7bGV0W2ksYV09ZHQocj8uaW4sZSx0KTtyZXR1cm4gaS5nZXRGdWxsWWVhcigpPT09YS5nZXRGdWxsWWVhcigpJiZpLmdldE1vbnRoKCk9PT1hLmdldE1vbnRoKCl9dmFyIEJiMSxJSD1wKCgpPT57UnIoKTtCYjE9YXd9KTtmdW5jdGlvbiBudyhlLHQscil7bGV0W2ksYV09ZHQocj8uaW4sZSx0KTtyZXR1cm4rYXMoaSk9PSthcyhhKX12YXIgVmIxLFBIPXAoKCk9PntScigpO1V4KCk7VmIxPW53fSk7ZnVuY3Rpb24ga2YoZSx0KXtsZXQgcj1sZShlLHQ/LmluKTtyZXR1cm4gci5zZXRNaWxsaXNlY29uZHMoMCkscn12YXIgR2IxLE5IPXAoKCk9PntPZSgpO0diMT1rZn0pO2Z1bmN0aW9uIG93KGUsdCl7cmV0dXJuK2tmKGUpPT0ra2YodCl9dmFyIFhiMSxGSD1wKCgpPT57TkgoKTtYYjE9b3d9KTtmdW5jdGlvbiBzdyhlLHQscil7bGV0W2ksYV09ZHQocj8uaW4sZSx0KTtyZXR1cm4gaS5nZXRGdWxsWWVhcigpPT09YS5nZXRGdWxsWWVhcigpfXZhciBLYjEsT0g9cCgoKT0+e1JyKCk7S2IxPXN3fSk7ZnVuY3Rpb24gdG1lKGUsdCl7cmV0dXJuIGV3KGxlKGUsdD8uaW4pLFl0KHQ/LmlufHxlKSl9dmFyIGF2MSxybWU9cCgoKT0+e2NpKCk7QUgoKTtPZSgpO2F2MT10bWV9KTtmdW5jdGlvbiBpbWUoZSx0KXtyZXR1cm4gcncoUGUodD8uaW58fGUsZSksWXQodD8uaW58fGUpKX12YXIgY3YxLGFtZT1wKCgpPT57ZnQoKTtjaSgpO0RIKCk7Y3YxPWltZX0pO2Z1bmN0aW9uIG5tZShlKXtyZXR1cm4gaXcoZSxZdChlKSl9dmFyIGh2MSxvbWU9cCgoKT0+e2NpKCk7JEgoKTtodjE9bm1lfSk7ZnVuY3Rpb24gc21lKGUsdCl7cmV0dXJuIGF3KFBlKHQ/LmlufHxlLGUpLFl0KHQ/LmlufHxlKSl9dmFyIHZ2MSxsbWU9cCgoKT0+e2Z0KCk7Y2koKTtJSCgpO3Z2MT1zbWV9KTtmdW5jdGlvbiBjbWUoZSx0KXtyZXR1cm4gbncoUGUodD8uaW58fGUsZSksWXQodD8uaW58fGUpKX12YXIga3YxLGRtZT1wKCgpPT57ZnQoKTtjaSgpO1BIKCk7a3YxPWNtZX0pO2Z1bmN0aW9uIHVtZShlKXtyZXR1cm4gb3coZSxZdChlKSl9dmFyIFR2MSxwbWU9cCgoKT0+e2NpKCk7RkgoKTtUdjE9dW1lfSk7ZnVuY3Rpb24gaG1lKGUsdCl7cmV0dXJuIFY1KFBlKHQ/LmlufHxlLGUpLFl0KHQ/LmlufHxlKSx0KX12YXIgRXYxLGZtZT1wKCgpPT57ZnQoKTtjaSgpO3R3KCk7RXYxPWhtZX0pO2Z1bmN0aW9uIG1tZShlLHQpe3JldHVybiBzdyhQZSh0Py5pbnx8ZSxlKSxZdCh0Py5pbnx8ZSkpfXZhciBGdjEsZ21lPXAoKCk9PntmdCgpO2NpKCk7T0goKTtGdjE9bW1lfSk7ZnVuY3Rpb24gYm1lKGUsdCl7cmV0dXJuIGxlKGUsdD8uaW4pLmdldERheSgpPT09NH12YXIgQnYxLHZtZT1wKCgpPT57T2UoKTtCdjE9Ym1lfSk7ZnVuY3Rpb24geG1lKGUsdCl7cmV0dXJuIHRzKFBlKHQ/LmlufHxlLGUpLFl0KHQ/LmlufHxlKSl9dmFyIFV2MSx5bWU9cCgoKT0+e2Z0KCk7Y2koKTtMNSgpO1V2MT14bWV9KTtmdW5jdGlvbiB3bWUoZSx0KXtyZXR1cm4gdHMoZSxsaShZdCh0Py5pbnx8ZSksMSksdCl9dmFyIFh2MSxNbWU9cCgoKT0+e1gyKCk7Y2koKTtMNSgpO1h2MT13bWV9KTtmdW5jdGlvbiBrbWUoZSx0KXtyZXR1cm4gbGUoZSx0Py5pbikuZ2V0RGF5KCk9PT0yfXZhciBLdjEsU21lPXAoKCk9PntPZSgpO0t2MT1rbWV9KTtmdW5jdGlvbiB6bWUoZSx0KXtyZXR1cm4gbGUoZSx0Py5pbikuZ2V0RGF5KCk9PT0zfXZhciByeDEsQ21lPXAoKCk9PntPZSgpO3J4MT16bWV9KTtmdW5jdGlvbiBUbWUoZSx0LHIpe2xldCBpPStsZShlLHI/LmluKSxbYSxuXT1bK2xlKHQuc3RhcnQscj8uaW4pLCtsZSh0LmVuZCxyPy5pbildLnNvcnQoKG8scyk9Pm8tcyk7cmV0dXJuIGk+PWEmJmk8PW59dmFyIG54MSxfbWU9cCgoKT0+e09lKCk7bngxPVRtZX0pO2Z1bmN0aW9uIGkwKGUsdCxyKXtyZXR1cm4gbGkoZSwtdCxyKX12YXIgbHgxLFNmPXAoKCk9PntYMigpO2x4MT1pMH0pO2Z1bmN0aW9uIExtZShlLHQpe3JldHVybiB0cyhQZSh0Py5pbnx8ZSxlKSxpMChZdCh0Py5pbnx8ZSksMSkpfXZhciBmeDEsQW1lPXAoKCk9PntmdCgpO2NpKCk7TDUoKTtTZigpO2Z4MT1MbWV9KTtmdW5jdGlvbiBEbWUoZSx0KXtsZXQgcj1sZShlLHQ/LmluKSxpPXIuZ2V0RnVsbFllYXIoKSxhPTkrTWF0aC5mbG9vcihpLzEwKSoxMDtyZXR1cm4gci5zZXRGdWxsWWVhcihhKzEsMCwwKSxyLnNldEhvdXJzKDAsMCwwLDApLGxlKHIsdD8uaW4pfXZhciBieDEsRW1lPXAoKCk9PntPZSgpO2J4MT1EbWV9KTtmdW5jdGlvbiBsdyhlLHQpe2xldCByPUxyKCksaT10Py53ZWVrU3RhcnRzT24/P3Q/LmxvY2FsZT8ub3B0aW9ucz8ud2Vla1N0YXJ0c09uPz9yLndlZWtTdGFydHNPbj8/ci5sb2NhbGU/Lm9wdGlvbnM/LndlZWtTdGFydHNPbj8/MCxhPWxlKGUsdD8uaW4pLG49YS5nZXREYXkoKSxvPShuPGk/LTc6MCkrNi0obi1pKTtyZXR1cm4gYS5zZXRIb3VycygwLDAsMCwwKSxhLnNldERhdGUoYS5nZXREYXRlKCkrbyksYX12YXIgd3gxLFJIPXAoKCk9PntkYSgpO09lKCk7d3gxPWx3fSk7ZnVuY3Rpb24gJG1lKGUsdCl7cmV0dXJuIGx3KGUsey4uLnQsd2Vla1N0YXJ0c09uOjF9KX12YXIgU3gxLEltZT1wKCgpPT57UkgoKTtTeDE9JG1lfSk7ZnVuY3Rpb24gUG1lKGUsdCl7bGV0IHI9cWEoZSx0KSxpPVBlKHQ/LmlufHxlLDApO2kuc2V0RnVsbFllYXIocisxLDAsNCksaS5zZXRIb3VycygwLDAsMCwwKTtsZXQgYT1RMShpLHQpO3JldHVybiBhLnNldERhdGUoYS5nZXREYXRlKCktMSksYX12YXIgTHgxLE5tZT1wKCgpPT57ZnQoKTtZYygpO0syKCk7THgxPVBtZX0pO2Z1bmN0aW9uIEZtZShlLHQpe2xldCByPWxlKGUsdD8uaW4pLGk9ci5nZXRNb250aCgpLGE9aS1pJTMrMztyZXR1cm4gci5zZXRNb250aChhLDApLHIuc2V0SG91cnMoMCwwLDAsMCkscn12YXIgRXgxLE9tZT1wKCgpPT57T2UoKTtFeDE9Rm1lfSk7ZnVuY3Rpb24gUm1lKGUsdCl7bGV0IHI9bGUoZSx0Py5pbiksaT1yLmdldEZ1bGxZZWFyKCk7cmV0dXJuIHIuc2V0RnVsbFllYXIoaSsxLDAsMCksci5zZXRIb3VycygwLDAsMCwwKSxyfXZhciBQeDEsQm1lPXAoKCk9PntPZSgpO1B4MT1SbWV9KTtmdW5jdGlvbiBIbWUoZSx0KXtsZXQgcj1sZShlKTtpZighVWkocikpdGhyb3cgbmV3IFJhbmdlRXJyb3IoIkludmFsaWQgdGltZSB2YWx1ZSIpO2xldCBpPXQubWF0Y2goeTdyKTtyZXR1cm4gaT9pLm1hcChuPT57aWYobj09PSInJyIpcmV0dXJuIiciO2xldCBvPW5bMF07aWYobz09PSInIilyZXR1cm4gUzdyKG4pO2xldCBzPUVuW29dO2lmKHMpcmV0dXJuIHMocixuKTtpZihvLm1hdGNoKGs3cikpdGhyb3cgbmV3IFJhbmdlRXJyb3IoIkZvcm1hdCBzdHJpbmcgY29udGFpbnMgYW4gdW5lc2NhcGVkIGxhdGluIGFscGhhYmV0IGNoYXJhY3RlciBgIitvKyJgIik7cmV0dXJuIG59KS5qb2luKCIiKToiIn1mdW5jdGlvbiBTN3IoZSl7bGV0IHQ9ZS5tYXRjaCh3N3IpO3JldHVybiB0P3RbMV0ucmVwbGFjZShNN3IsIiciKTplfXZhciB5N3IsdzdyLE03cixrN3IsQngxLHFtZT1wKCgpPT57dUgoKTt2bCgpO09lKCk7eTdyPS8oXHcpXDEqfCcnfCcoJyd8W14nXSkrKCd8JCl8Li9nLHc3cj0vXicoW15dKj8pJz8kLyxNN3I9LycnL2csazdyPS9bYS16QS1aXS87QngxPUhtZX0pO2Z1bmN0aW9uIGptZSh7eWVhcnM6ZSxtb250aHM6dCx3ZWVrczpyLGRheXM6aSxob3VyczphLG1pbnV0ZXM6bixzZWNvbmRzOm99KXtsZXQgcz0wO2UmJihzKz1lKjM2NS4yNDI1KSx0JiYocys9dCooMzY1LjI0MjUvMTIpKSxyJiYocys9cio3KSxpJiYocys9aSk7bGV0IGw9cyoyNCo2MCo2MDtyZXR1cm4gYSYmKGwrPWEqNjAqNjApLG4mJihsKz1uKjYwKSxvJiYobCs9byksTWF0aC50cnVuYyhsKjFlMyl9dmFyIGp4MSxWbWU9cCgoKT0+e090KCk7angxPWptZX0pO2Z1bmN0aW9uIFVtZShlKXtsZXQgdD1lL0FuO3JldHVybiBNYXRoLnRydW5jKHQpfXZhciBXeDEsV21lPXAoKCk9PntPdCgpO1d4MT1VbWV9KTtmdW5jdGlvbiBHbWUoZSl7bGV0IHQ9ZS9jYTtyZXR1cm4gTWF0aC50cnVuYyh0KX12YXIgWngxLFltZT1wKCgpPT57T3QoKTtaeDE9R21lfSk7ZnVuY3Rpb24gWm1lKGUpe2xldCB0PWUvTTU7cmV0dXJuIE1hdGgudHJ1bmModCl9dmFyIEp4MSxYbWU9cCgoKT0+e090KCk7SngxPVptZX0pO2Z1bmN0aW9uIFFtZShlKXtsZXQgdD1lL2h4O3JldHVybiBNYXRoLnRydW5jKHQpfXZhciB0eTEsSm1lPXAoKCk9PntPdCgpO3R5MT1RbWV9KTtmdW5jdGlvbiBLbWUoZSl7cmV0dXJuIE1hdGgudHJ1bmMoZSpjYSl9dmFyIGF5MSxlOWU9cCgoKT0+e090KCk7YXkxPUttZX0pO2Z1bmN0aW9uIHQ5ZShlKXtyZXR1cm4gTWF0aC50cnVuYyhlKlM1KX12YXIgc3kxLHI5ZT1wKCgpPT57T3QoKTtzeTE9dDllfSk7ZnVuY3Rpb24gaTllKGUpe2xldCB0PWUvZng7cmV0dXJuIE1hdGgudHJ1bmModCl9dmFyIGR5MSxhOWU9cCgoKT0+e090KCk7ZHkxPWk5ZX0pO2Z1bmN0aW9uIG45ZShlKXtsZXQgdD1lL214O3JldHVybiBNYXRoLnRydW5jKHQpfXZhciBoeTEsbzllPXAoKCk9PntPdCgpO2h5MT1uOWV9KTtmdW5jdGlvbiBmYShlLHQscil7bGV0IGk9dC10MChlLHIpO3JldHVybiBpPD0wJiYoaSs9NyksbGkoZSxpLHIpfXZhciBieTEseWw9cCgoKT0+e1gyKCk7eGYoKTtieTE9ZmF9KTtmdW5jdGlvbiBzOWUoZSx0KXtyZXR1cm4gZmEoZSw1LHQpfXZhciB5eTEsbDllPXAoKCk9Pnt5bCgpO3l5MT1zOWV9KTtmdW5jdGlvbiBjOWUoZSx0KXtyZXR1cm4gZmEoZSwxLHQpfXZhciBreTEsZDllPXAoKCk9Pnt5bCgpO2t5MT1jOWV9KTtmdW5jdGlvbiB1OWUoZSx0KXtyZXR1cm4gZmEoZSw2LHQpfXZhciBDeTEscDllPXAoKCk9Pnt5bCgpO0N5MT11OWV9KTtmdW5jdGlvbiBoOWUoZSx0KXtyZXR1cm4gZmEoZSwwLHQpfXZhciBMeTEsZjllPXAoKCk9Pnt5bCgpO0x5MT1oOWV9KTtmdW5jdGlvbiBtOWUoZSx0KXtyZXR1cm4gZmEoZSw0LHQpfXZhciBFeTEsZzllPXAoKCk9Pnt5bCgpO0V5MT1tOWV9KTtmdW5jdGlvbiBiOWUoZSx0KXtyZXR1cm4gZmEoZSwyLHQpfXZhciBQeTEsdjllPXAoKCk9Pnt5bCgpO1B5MT1iOWV9KTtmdW5jdGlvbiB4OWUoZSx0KXtyZXR1cm4gZmEoZSwzLHQpfXZhciBPeTEseTllPXAoKCk9Pnt5bCgpO095MT14OWV9KTtmdW5jdGlvbiBNOWUoZSx0KXtsZXQgcj0oKT0+UGUodD8uaW4sTmFOKSxpPXQ/LmFkZGl0aW9uYWxEaWdpdHM/PzIsYT1fN3IoZSksbjtpZihhLmRhdGUpe2xldCBjPUw3cihhLmRhdGUsaSk7bj1BN3IoYy5yZXN0RGF0ZVN0cmluZyxjLnllYXIpfWlmKCFufHxpc05hTigrbikpcmV0dXJuIHIoKTtsZXQgbz0rbixzPTAsbDtpZihhLnRpbWUmJihzPUQ3cihhLnRpbWUpLGlzTmFOKHMpKSlyZXR1cm4gcigpO2lmKGEudGltZXpvbmUpe2lmKGw9RTdyKGEudGltZXpvbmUpLGlzTmFOKGwpKXJldHVybiByKCl9ZWxzZXtsZXQgYz1uZXcgRGF0ZShvK3MpLHU9bGUoMCx0Py5pbik7cmV0dXJuIHUuc2V0RnVsbFllYXIoYy5nZXRVVENGdWxsWWVhcigpLGMuZ2V0VVRDTW9udGgoKSxjLmdldFVUQ0RhdGUoKSksdS5zZXRIb3VycyhjLmdldFVUQ0hvdXJzKCksYy5nZXRVVENNaW51dGVzKCksYy5nZXRVVENTZWNvbmRzKCksYy5nZXRVVENNaWxsaXNlY29uZHMoKSksdX1yZXR1cm4gbGUobytzK2wsdD8uaW4pfWZ1bmN0aW9uIF83cihlKXtsZXQgdD17fSxyPWUuc3BsaXQoY3cuZGF0ZVRpbWVEZWxpbWl0ZXIpLGk7aWYoci5sZW5ndGg+MilyZXR1cm4gdDtpZigvOi8udGVzdChyWzBdKT9pPXJbMF06KHQuZGF0ZT1yWzBdLGk9clsxXSxjdy50aW1lWm9uZURlbGltaXRlci50ZXN0KHQuZGF0ZSkmJih0LmRhdGU9ZS5zcGxpdChjdy50aW1lWm9uZURlbGltaXRlcilbMF0saT1lLnN1YnN0cih0LmRhdGUubGVuZ3RoLGUubGVuZ3RoKSkpLGkpe2xldCBhPWN3LnRpbWV6b25lLmV4ZWMoaSk7YT8odC50aW1lPWkucmVwbGFjZShhWzFdLCIiKSx0LnRpbWV6b25lPWFbMV0pOnQudGltZT1pfXJldHVybiB0fWZ1bmN0aW9uIEw3cihlLHQpe2xldCByPW5ldyBSZWdFeHAoIl4oPzooXFxkezR9fFsrLV1cXGR7IisoNCt0KSsifSl8KFxcZHsyfXxbKy1dXFxkeyIrKDIrdCkrIn0pJCkiKSxpPWUubWF0Y2gocik7aWYoIWkpcmV0dXJue3llYXI6TmFOLHJlc3REYXRlU3RyaW5nOiIifTtsZXQgYT1pWzFdP3BhcnNlSW50KGlbMV0pOm51bGwsbj1pWzJdP3BhcnNlSW50KGlbMl0pOm51bGw7cmV0dXJue3llYXI6bj09PW51bGw/YTpuKjEwMCxyZXN0RGF0ZVN0cmluZzplLnNsaWNlKChpWzFdfHxpWzJdKS5sZW5ndGgpfX1mdW5jdGlvbiBBN3IoZSx0KXtpZih0PT09bnVsbClyZXR1cm4gbmV3IERhdGUoTmFOKTtsZXQgcj1lLm1hdGNoKHo3cik7aWYoIXIpcmV0dXJuIG5ldyBEYXRlKE5hTik7bGV0IGk9ISFyWzRdLGE9emYoclsxXSksbj16ZihyWzJdKS0xLG89emYoclszXSkscz16ZihyWzRdKSxsPXpmKHJbNV0pLTE7aWYoaSlyZXR1cm4gRjdyKHQscyxsKT8kN3IodCxzLGwpOm5ldyBEYXRlKE5hTik7e2xldCBjPW5ldyBEYXRlKDApO3JldHVybiFQN3IodCxuLG8pfHwhTjdyKHQsYSk/bmV3IERhdGUoTmFOKTooYy5zZXRVVENGdWxsWWVhcih0LG4sTWF0aC5tYXgoYSxvKSksYyl9fWZ1bmN0aW9uIHpmKGUpe3JldHVybiBlP3BhcnNlSW50KGUpOjF9ZnVuY3Rpb24gRDdyKGUpe2xldCB0PWUubWF0Y2goQzdyKTtpZighdClyZXR1cm4gTmFOO2xldCByPUJIKHRbMV0pLGk9QkgodFsyXSksYT1CSCh0WzNdKTtyZXR1cm4gTzdyKHIsaSxhKT9yKkFuK2kqY2ErYSoxZTM6TmFOfWZ1bmN0aW9uIEJIKGUpe3JldHVybiBlJiZwYXJzZUZsb2F0KGUucmVwbGFjZSgiLCIsIi4iKSl8fDB9ZnVuY3Rpb24gRTdyKGUpe2lmKGU9PT0iWiIpcmV0dXJuIDA7bGV0IHQ9ZS5tYXRjaChUN3IpO2lmKCF0KXJldHVybiAwO2xldCByPXRbMV09PT0iKyI/LTE6MSxpPXBhcnNlSW50KHRbMl0pLGE9dFszXSYmcGFyc2VJbnQodFszXSl8fDA7cmV0dXJuIFI3cihpLGEpP3IqKGkqQW4rYSpjYSk6TmFOfWZ1bmN0aW9uICQ3cihlLHQscil7bGV0IGk9bmV3IERhdGUoMCk7aS5zZXRVVENGdWxsWWVhcihlLDAsNCk7bGV0IGE9aS5nZXRVVENEYXkoKXx8NyxuPSh0LTEpKjcrcisxLWE7cmV0dXJuIGkuc2V0VVRDRGF0ZShpLmdldFVUQ0RhdGUoKStuKSxpfWZ1bmN0aW9uIHc5ZShlKXtyZXR1cm4gZSU0MDA9PT0wfHxlJTQ9PT0wJiZlJTEwMCE9PTB9ZnVuY3Rpb24gUDdyKGUsdCxyKXtyZXR1cm4gdD49MCYmdDw9MTEmJnI+PTEmJnI8PShJN3JbdF18fCh3OWUoZSk/Mjk6MjgpKX1mdW5jdGlvbiBON3IoZSx0KXtyZXR1cm4gdD49MSYmdDw9KHc5ZShlKT8zNjY6MzY1KX1mdW5jdGlvbiBGN3IoZSx0LHIpe3JldHVybiB0Pj0xJiZ0PD01MyYmcj49MCYmcjw9Nn1mdW5jdGlvbiBPN3IoZSx0LHIpe3JldHVybiBlPT09MjQ/dD09PTAmJnI9PT0wOnI+PTAmJnI8NjAmJnQ+PTAmJnQ8NjAmJmU+PTAmJmU8MjV9ZnVuY3Rpb24gUjdyKGUsdCl7cmV0dXJuIHQ+PTAmJnQ8PTU5fXZhciBjdyx6N3IsQzdyLFQ3cixJN3IsankxLGs5ZT1wKCgpPT57T3QoKTtmdCgpO09lKCk7Y3c9e2RhdGVUaW1lRGVsaW1pdGVyOi9bVCBdLyx0aW1lWm9uZURlbGltaXRlcjovW1ogXS9pLHRpbWV6b25lOi8oW1orLV0uKikkL30sejdyPS9eLT8oPzooXGR7M30pfChcZHsyfSkoPzotPyhcZHsyfSkpP3xXKFxkezJ9KSg/Oi0/KFxkezF9KSk/fCkkLyxDN3I9L14oXGR7Mn0oPzpbLixdXGQqKT8pKD86Oj8oXGR7Mn0oPzpbLixdXGQqKT8pKT8oPzo6PyhcZHsyfSg/OlsuLF1cZCopPykpPyQvLFQ3cj0vXihbKy1dKShcZHsyfSkoPzo6PyhcZHsyfSkpPyQvO0k3cj1bMzEsbnVsbCwzMSwzMCwzMSwzMCwzMSwzMSwzMCwzMSwzMCwzMV07ankxPU05ZX0pO2Z1bmN0aW9uIFM5ZShlLHQpe2xldCByPWUubWF0Y2goLyhcZHs0fSktKFxkezJ9KS0oXGR7Mn0pW1QgXShcZHsyfSk6KFxkezJ9KTooXGR7Mn0pKD86XC4oXGR7MCw3fSkpPyg/Olp8KC4pKFxkezJ9KTo/KFxkezJ9KT8pPy8pO3JldHVybiByP2xlKERhdGUuVVRDKCtyWzFdLCtyWzJdLTEsK3JbM10sK3JbNF0tKCtyWzldfHwwKSoocls4XT09Ii0iPy0xOjEpLCtyWzVdLSgrclsxMF18fDApKihyWzhdPT0iLSI/LTE6MSksK3JbNl0sKygocls3XXx8IjAiKSsiMDAiKS5zdWJzdHJpbmcoMCwzKSksdD8uaW4pOmxlKE5hTix0Py5pbil9dmFyIFd5MSx6OWU9cCgoKT0+e09lKCk7V3kxPVM5ZX0pO2Z1bmN0aW9uIG1hKGUsdCxyKXtsZXQgaT10MChlLHIpLXQ7cmV0dXJuIGk8PTAmJihpKz03KSxpMChlLGkscil9dmFyIFh5MSx3bD1wKCgpPT57eGYoKTtTZigpO1h5MT1tYX0pO2Z1bmN0aW9uIEM5ZShlLHQpe3JldHVybiBtYShlLDUsdCl9dmFyIEt5MSxUOWU9cCgoKT0+e3dsKCk7S3kxPUM5ZX0pO2Z1bmN0aW9uIF85ZShlLHQpe3JldHVybiBtYShlLDEsdCl9dmFyIHJ3MSxMOWU9cCgoKT0+e3dsKCk7cncxPV85ZX0pO2Z1bmN0aW9uIEE5ZShlLHQpe3JldHVybiBtYShlLDYsdCl9dmFyIG53MSxEOWU9cCgoKT0+e3dsKCk7bncxPUE5ZX0pO2Z1bmN0aW9uIEU5ZShlLHQpe3JldHVybiBtYShlLDAsdCl9dmFyIGx3MSwkOWU9cCgoKT0+e3dsKCk7bHcxPUU5ZX0pO2Z1bmN0aW9uIEk5ZShlLHQpe3JldHVybiBtYShlLDQsdCl9dmFyIHV3MSxQOWU9cCgoKT0+e3dsKCk7dXcxPUk5ZX0pO2Z1bmN0aW9uIE45ZShlLHQpe3JldHVybiBtYShlLDIsdCl9dmFyIGZ3MSxGOWU9cCgoKT0+e3dsKCk7ZncxPU45ZX0pO2Z1bmN0aW9uIE85ZShlLHQpe3JldHVybiBtYShlLDMsdCl9dmFyIGJ3MSxSOWU9cCgoKT0+e3dsKCk7YncxPU85ZX0pO2Z1bmN0aW9uIEI5ZShlKXtyZXR1cm4gTWF0aC50cnVuYyhlKmZ4KX12YXIgeXcxLEg5ZT1wKCgpPT57T3QoKTt5dzE9QjllfSk7ZnVuY3Rpb24gcTllKGUpe2xldCB0PWUvZ3g7cmV0dXJuIE1hdGgudHJ1bmModCl9dmFyIGt3MSxqOWU9cCgoKT0+e090KCk7a3cxPXE5ZX0pO2Z1bmN0aW9uIFY5ZShlLHQpe2xldCByPXQ/Lm5lYXJlc3RUbz8/MTtpZihyPDF8fHI+MTIpcmV0dXJuIFBlKHQ/LmlufHxlLE5hTik7bGV0IGk9bGUoZSx0Py5pbiksYT1pLmdldE1pbnV0ZXMoKS82MCxuPWkuZ2V0U2Vjb25kcygpLzYwLzYwLG89aS5nZXRNaWxsaXNlY29uZHMoKS8xZTMvNjAvNjAscz1pLmdldEhvdXJzKCkrYStuK28sbD10Py5yb3VuZGluZ01ldGhvZD8/InJvdW5kIix1PXBhKGwpKHMvcikqcjtyZXR1cm4gaS5zZXRIb3Vycyh1LDAsMCwwKSxpfXZhciBfdzEsVTllPXAoKCk9Pnt4bCgpO2Z0KCk7T2UoKTtfdzE9VjllfSk7ZnVuY3Rpb24gVzllKGUsdCl7bGV0IHI9dD8ubmVhcmVzdFRvPz8xO2lmKHI8MXx8cj4zMClyZXR1cm4gUGUoZSxOYU4pO2xldCBpPWxlKGUsdD8uaW4pLGE9aS5nZXRTZWNvbmRzKCkvNjAsbj1pLmdldE1pbGxpc2Vjb25kcygpLzFlMy82MCxvPWkuZ2V0TWludXRlcygpK2ErbixzPXQ/LnJvdW5kaW5nTWV0aG9kPz8icm91bmQiLGM9cGEocykoby9yKSpyO3JldHVybiBpLnNldE1pbnV0ZXMoYywwLDApLGl9dmFyICR3MSxHOWU9cCgoKT0+e3hsKCk7ZnQoKTtPZSgpOyR3MT1XOWV9KTtmdW5jdGlvbiBZOWUoZSl7bGV0IHQ9ZS9tMztyZXR1cm4gTWF0aC50cnVuYyh0KX12YXIgTncxLFo5ZT1wKCgpPT57T3QoKTtOdzE9WTllfSk7ZnVuY3Rpb24gWDllKGUpe3JldHVybiBlKk01fXZhciBSdzEsUTllPXAoKCk9PntPdCgpO1J3MT1YOWV9KTtmdW5jdGlvbiBKOWUoZSl7bGV0IHQ9ZS9TNTtyZXR1cm4gTWF0aC50cnVuYyh0KX12YXIgcXcxLEs5ZT1wKCgpPT57T3QoKTtxdzE9SjllfSk7ZnVuY3Rpb24gVTUoZSx0LHIpe2xldCBpPWxlKGUscj8uaW4pLGE9aS5nZXRGdWxsWWVhcigpLG49aS5nZXREYXRlKCksbz1QZShyPy5pbnx8ZSwwKTtvLnNldEZ1bGxZZWFyKGEsdCwxNSksby5zZXRIb3VycygwLDAsMCwwKTtsZXQgcz1veShvKTtyZXR1cm4gaS5zZXRNb250aCh0LE1hdGgubWluKG4scykpLGl9dmFyIEd3MSxkdz1wKCgpPT57ZnQoKTt2SCgpO09lKCk7R3cxPVU1fSk7ZnVuY3Rpb24gZWdlKGUsdCxyKXtsZXQgaT1sZShlLHI/LmluKTtyZXR1cm4gaXNOYU4oK2kpP1BlKHI/LmlufHxlLE5hTik6KHQueWVhciE9bnVsbCYmaS5zZXRGdWxsWWVhcih0LnllYXIpLHQubW9udGghPW51bGwmJihpPVU1KGksdC5tb250aCkpLHQuZGF0ZSE9bnVsbCYmaS5zZXREYXRlKHQuZGF0ZSksdC5ob3VycyE9bnVsbCYmaS5zZXRIb3Vycyh0LmhvdXJzKSx0Lm1pbnV0ZXMhPW51bGwmJmkuc2V0TWludXRlcyh0Lm1pbnV0ZXMpLHQuc2Vjb25kcyE9bnVsbCYmaS5zZXRTZWNvbmRzKHQuc2Vjb25kcyksdC5taWxsaXNlY29uZHMhPW51bGwmJmkuc2V0TWlsbGlzZWNvbmRzKHQubWlsbGlzZWNvbmRzKSxpKX12YXIgSncxLHRnZT1wKCgpPT57ZnQoKTtkdygpO09lKCk7SncxPWVnZX0pO2Z1bmN0aW9uIHJnZShlLHQscil7bGV0IGk9bGUoZSxyPy5pbik7cmV0dXJuIGkuc2V0RGF0ZSh0KSxpfXZhciB0TTEsaWdlPXAoKCk9PntPZSgpO3RNMT1yZ2V9KTtmdW5jdGlvbiBhZ2UoZSx0LHIpe2xldCBpPWxlKGUscj8uaW4pO3JldHVybiBpLnNldE1vbnRoKDApLGkuc2V0RGF0ZSh0KSxpfXZhciBhTTEsbmdlPXAoKCk9PntPZSgpO2FNMT1hZ2V9KTtmdW5jdGlvbiBvZ2UoZSl7bGV0IHQ9e30scj1McigpO2ZvcihsZXQgaSBpbiByKU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChyLGkpJiYodFtpXT1yW2ldKTtmb3IobGV0IGkgaW4gZSlPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoZSxpKSYmKGVbaV09PT12b2lkIDA/ZGVsZXRlIHRbaV06dFtpXT1lW2ldKTtNcGUodCl9dmFyIHNNMSxzZ2U9cCgoKT0+e2RhKCk7c00xPW9nZX0pO2Z1bmN0aW9uIGxnZShlLHQscil7bGV0IGk9bGUoZSxyPy5pbik7cmV0dXJuIGkuc2V0SG91cnModCksaX12YXIgZE0xLGNnZT1wKCgpPT57T2UoKTtkTTE9bGdlfSk7ZnVuY3Rpb24gZGdlKGUsdCxyKXtsZXQgaT1sZShlLHI/LmluKTtyZXR1cm4gaS5zZXRNaWxsaXNlY29uZHModCksaX12YXIgaE0xLHVnZT1wKCgpPT57T2UoKTtoTTE9ZGdlfSk7ZnVuY3Rpb24gcGdlKGUsdCxyKXtsZXQgaT1sZShlLHI/LmluKTtyZXR1cm4gaS5zZXRNaW51dGVzKHQpLGl9dmFyIGdNMSxoZ2U9cCgoKT0+e09lKCk7Z00xPXBnZX0pO2Z1bmN0aW9uIGZnZShlLHQscil7bGV0IGk9bGUoZSxyPy5pbiksYT1NYXRoLnRydW5jKGkuZ2V0TW9udGgoKS8zKSsxLG49dC1hO3JldHVybiBVNShpLGkuZ2V0TW9udGgoKStuKjMpfXZhciB5TTEsbWdlPXAoKCk9PntkdygpO09lKCk7eU0xPWZnZX0pO2Z1bmN0aW9uIGdnZShlLHQscil7bGV0IGk9bGUoZSxyPy5pbik7cmV0dXJuIGkuc2V0U2Vjb25kcyh0KSxpfXZhciBrTTEsYmdlPXAoKCk9PntPZSgpO2tNMT1nZ2V9KTtmdW5jdGlvbiB2Z2UoZSx0LHIpe2xldCBpPUxyKCksYT1yPy5maXJzdFdlZWtDb250YWluc0RhdGU/P3I/LmxvY2FsZT8ub3B0aW9ucz8uZmlyc3RXZWVrQ29udGFpbnNEYXRlPz9pLmZpcnN0V2Vla0NvbnRhaW5zRGF0ZT8/aS5sb2NhbGU/Lm9wdGlvbnM/LmZpcnN0V2Vla0NvbnRhaW5zRGF0ZT8/MSxuPVRpKGxlKGUscj8uaW4pLE0zKGUsciksciksbz1QZShyPy5pbnx8ZSwwKTtvLnNldEZ1bGxZZWFyKHQsMCxhKSxvLnNldEhvdXJzKDAsMCwwLDApO2xldCBzPU0zKG8scik7cmV0dXJuIHMuc2V0RGF0ZShzLmdldERhdGUoKStuKSxzfXZhciBBTTEseGdlPXAoKCk9PntkYSgpO2Z0KCk7YmwoKTtLeCgpO09lKCk7QU0xPXZnZX0pO2Z1bmN0aW9uIHlnZShlLHQscil7bGV0IGk9bGUoZSxyPy5pbik7cmV0dXJuIGlzTmFOKCtpKT9QZShyPy5pbnx8ZSxOYU4pOihpLnNldEZ1bGxZZWFyKHQpLGkpfXZhciBJTTEsd2dlPXAoKCk9PntmdCgpO09lKCk7SU0xPXlnZX0pO2Z1bmN0aW9uIE1nZShlLHQpe2xldCByPWxlKGUsdD8uaW4pLGk9ci5nZXRGdWxsWWVhcigpLGE9TWF0aC5mbG9vcihpLzEwKSoxMDtyZXR1cm4gci5zZXRGdWxsWWVhcihhLDAsMSksci5zZXRIb3VycygwLDAsMCwwKSxyfXZhciBGTTEsa2dlPXAoKCk9PntPZSgpO0ZNMT1NZ2V9KTtmdW5jdGlvbiBTZ2UoZSl7cmV0dXJuIGVzKERhdGUubm93KCksZSl9dmFyIEJNMSx6Z2U9cCgoKT0+e2NmKCk7Qk0xPVNnZX0pO2Z1bmN0aW9uIENnZShlKXtsZXQgdD1ZdChlPy5pbikscj10LmdldEZ1bGxZZWFyKCksaT10LmdldE1vbnRoKCksYT10LmdldERhdGUoKSxuPVBlKGU/LmluLDApO3JldHVybiBuLnNldEZ1bGxZZWFyKHIsaSxhKzEpLG4uc2V0SG91cnMoMCwwLDAsMCksbn12YXIgVk0xLFRnZT1wKCgpPT57ZnQoKTtjaSgpO1ZNMT1DZ2V9KTtmdW5jdGlvbiBfZ2UoZSl7bGV0IHQ9WXQoZT8uaW4pLHI9dC5nZXRGdWxsWWVhcigpLGk9dC5nZXRNb250aCgpLGE9dC5nZXREYXRlKCksbj1ZdChlPy5pbik7cmV0dXJuIG4uc2V0RnVsbFllYXIocixpLGEtMSksbi5zZXRIb3VycygwLDAsMCwwKSxufXZhciBHTTEsTGdlPXAoKCk9PntjaSgpO0dNMT1fZ2V9KTtmdW5jdGlvbiB1dyhlLHQscil7cmV0dXJuIFEyKGUsLXQscil9dmFyIFhNMSxISD1wKCgpPT57ejUoKTtYTTE9dXd9KTtmdW5jdGlvbiBBZ2UoZSx0LHIpe2xldHt5ZWFyczppPTAsbW9udGhzOmE9MCx3ZWVrczpuPTAsZGF5czpvPTAsaG91cnM6cz0wLG1pbnV0ZXM6bD0wLHNlY29uZHM6Yz0wfT10LHU9dXcoZSxhK2kqMTIsciksZD1pMCh1LG8rbio3LHIpLGg9bCtzKjYwLHg9KGMraCo2MCkqMWUzO3JldHVybiBQZShyPy5pbnx8ZSwrZC14KX12YXIgdGsxLERnZT1wKCgpPT57ZnQoKTtTZigpO0hIKCk7dGsxPUFnZX0pO2Z1bmN0aW9uIEVnZShlLHQscil7cmV0dXJuIHh4KGUsLXQscil9dmFyIGFrMSwkZ2U9cCgoKT0+e1VCKCk7YWsxPUVnZX0pO2Z1bmN0aW9uIElnZShlLHQscil7cmV0dXJuIHl4KGUsLXQscil9dmFyIHNrMSxQZ2U9cCgoKT0+e1dCKCk7c2sxPUlnZX0pO2Z1bmN0aW9uIE5nZShlLHQscil7cmV0dXJuIEdjKGUsLXQscil9dmFyIGRrMSxGZ2U9cCgoKT0+e2xmKCk7ZGsxPU5nZX0pO2Z1bmN0aW9uIE9nZShlLHQscil7cmV0dXJuIFQ1KGUsLXQscil9dmFyIGhrMSxSZ2U9cCgoKT0+e2t4KCk7aGsxPU9nZX0pO2Z1bmN0aW9uIEJnZShlLHQscil7cmV0dXJuIF81KGUsLXQscil9dmFyIGdrMSxIZ2U9cCgoKT0+e1N4KCk7Z2sxPUJnZX0pO2Z1bmN0aW9uIHFnZShlLHQscil7cmV0dXJuIHp4KGUsLXQscil9dmFyIHhrMSxqZ2U9cCgoKT0+e1pCKCk7eGsxPXFnZX0pO2Z1bmN0aW9uIFZnZShlLHQscil7cmV0dXJuIFpjKGUsLXQscil9dmFyIE1rMSxVZ2U9cCgoKT0+e2RmKCk7TWsxPVZnZX0pO2Z1bmN0aW9uIFdnZShlLHQscil7cmV0dXJuIEN4KGUsLXQscil9dmFyIHprMSxHZ2U9cCgoKT0+e1hCKCk7emsxPVdnZX0pO2Z1bmN0aW9uIFlnZShlKXtyZXR1cm4gTWF0aC50cnVuYyhlKjcpfXZhciBfazEsWmdlPXAoKCk9PntPdCgpO19rMT1ZZ2V9KTtmdW5jdGlvbiBYZ2UoZSl7cmV0dXJuIE1hdGgudHJ1bmMoZSozNjUuMjQyNSl9dmFyIERrMSxRZ2U9cCgoKT0+e090KCk7RGsxPVhnZX0pO2Z1bmN0aW9uIEpnZShlKXtyZXR1cm4gTWF0aC50cnVuYyhlKm14KX12YXIgSWsxLEtnZT1wKCgpPT57T3QoKTtJazE9SmdlfSk7ZnVuY3Rpb24gZWJlKGUpe3JldHVybiBNYXRoLnRydW5jKGUqZ3gpfXZhciBGazEsdGJlPXAoKCk9PntPdCgpO0ZrMT1lYmV9KTt2YXIgQ2Y9e307RmUoQ2Yse2FkZDooKT0+V2MsYWRkQnVzaW5lc3NEYXlzOigpPT54eCxhZGREYXlzOigpPT5saSxhZGRIb3VyczooKT0+eXgsYWRkSVNPV2Vla1llYXJzOigpPT5NeCxhZGRNaWxsaXNlY29uZHM6KCk9PkdjLGFkZE1pbnV0ZXM6KCk9PlQ1LGFkZE1vbnRoczooKT0+UTIsYWRkUXVhcnRlcnM6KCk9Pl81LGFkZFNlY29uZHM6KCk9Pnp4LGFkZFdlZWtzOigpPT5aYyxhZGRZZWFyczooKT0+Q3gsYXJlSW50ZXJ2YWxzT3ZlcmxhcHBpbmc6KCk9PmtwZSxjbGFtcDooKT0+enBlLGNsb3Nlc3RJbmRleFRvOigpPT5MeCxjbG9zZXN0VG86KCk9PlRwZSxjb21wYXJlQXNjOigpPT51YSxjb21wYXJlRGVzYzooKT0+THBlLGNvbnN0cnVjdEZyb206KCk9PlBlLGNvbnN0cnVjdE5vdzooKT0+WXQsZGF5c1RvV2Vla3M6KCk9PkRwZSxkaWZmZXJlbmNlSW5CdXNpbmVzc0RheXM6KCk9PiRwZSxkaWZmZXJlbmNlSW5DYWxlbmRhckRheXM6KCk9PlRpLGRpZmZlcmVuY2VJbkNhbGVuZGFySVNPV2Vla1llYXJzOigpPT5EeCxkaWZmZXJlbmNlSW5DYWxlbmRhcklTT1dlZWtzOigpPT5QcGUsZGlmZmVyZW5jZUluQ2FsZW5kYXJNb250aHM6KCk9PmIzLGRpZmZlcmVuY2VJbkNhbGVuZGFyUXVhcnRlcnM6KCk9PkE1LGRpZmZlcmVuY2VJbkNhbGVuZGFyV2Vla3M6KCk9PnYzLGRpZmZlcmVuY2VJbkNhbGVuZGFyWWVhcnM6KCk9PlhjLGRpZmZlcmVuY2VJbkRheXM6KCk9PkQ1LGRpZmZlcmVuY2VJbkhvdXJzOigpPT54MyxkaWZmZXJlbmNlSW5JU09XZWVrWWVhcnM6KCk9Pk9wZSxkaWZmZXJlbmNlSW5NaWxsaXNlY29uZHM6KCk9PkU1LGRpZmZlcmVuY2VJbk1pbnV0ZXM6KCk9PnkzLGRpZmZlcmVuY2VJbk1vbnRoczooKT0+UWMsZGlmZmVyZW5jZUluUXVhcnRlcnM6KCk9PkJwZSxkaWZmZXJlbmNlSW5TZWNvbmRzOigpPT5ycyxkaWZmZXJlbmNlSW5XZWVrczooKT0+cXBlLGRpZmZlcmVuY2VJblllYXJzOigpPT5qeCxlYWNoRGF5T2ZJbnRlcnZhbDooKT0+VngsZWFjaEhvdXJPZkludGVydmFsOigpPT5WcGUsZWFjaE1pbnV0ZU9mSW50ZXJ2YWw6KCk9PldwZSxlYWNoTW9udGhPZkludGVydmFsOigpPT5ZcGUsZWFjaFF1YXJ0ZXJPZkludGVydmFsOigpPT5YcGUsZWFjaFdlZWtPZkludGVydmFsOigpPT5KcGUsZWFjaFdlZWtlbmRPZkludGVydmFsOigpPT5QNSxlYWNoV2Vla2VuZE9mTW9udGg6KCk9PmVoZSxlYWNoV2Vla2VuZE9mWWVhcjooKT0+cmhlLGVhY2hZZWFyT2ZJbnRlcnZhbDooKT0+YWhlLGVuZE9mRGF5OigpPT4kNSxlbmRPZkRlY2FkZTooKT0+b2hlLGVuZE9mSG91cjooKT0+bGhlLGVuZE9mSVNPV2VlazooKT0+ZGhlLGVuZE9mSVNPV2Vla1llYXI6KCk9PnBoZSxlbmRPZk1pbnV0ZTooKT0+ZmhlLGVuZE9mTW9udGg6KCk9Pkk1LGVuZE9mUXVhcnRlcjooKT0+Z2hlLGVuZE9mU2Vjb25kOigpPT52aGUsZW5kT2ZUb2RheTooKT0+eWhlLGVuZE9mVG9tb3Jyb3c6KCk9Pk1oZSxlbmRPZldlZWs6KCk9Plp4LGVuZE9mWWVhcjooKT0+R3gsZW5kT2ZZZXN0ZXJkYXk6KCk9PlNoZSxmb3JtYXQ6KCk9PnZmLGZvcm1hdERhdGU6KCk9PnZmLGZvcm1hdERpc3RhbmNlOigpPT5peSxmb3JtYXREaXN0YW5jZVN0cmljdDooKT0+YXksZm9ybWF0RGlzdGFuY2VUb05vdzooKT0+R2hlLGZvcm1hdERpc3RhbmNlVG9Ob3dTdHJpY3Q6KCk9PlpoZSxmb3JtYXREdXJhdGlvbjooKT0+UWhlLGZvcm1hdElTTzooKT0+S2hlLGZvcm1hdElTTzkwNzU6KCk9PnRmZSxmb3JtYXRJU09EdXJhdGlvbjooKT0+aWZlLGZvcm1hdFJGQzMzMzk6KCk9Pm5mZSxmb3JtYXRSRkM3MjMxOigpPT5zZmUsZm9ybWF0UmVsYXRpdmU6KCk9PmNmZSxmb3JtYXR0ZXJzOigpPT5nZixmcm9tVW5peFRpbWU6KCk9PnVmZSxnZXREYXRlOigpPT5ueSxnZXREYXk6KCk9PnQwLGdldERheU9mWWVhcjooKT0+UXgsZ2V0RGF5c0luTW9udGg6KCk9Pm95LGdldERheXNJblllYXI6KCk9PmhmZSxnZXREZWNhZGU6KCk9Pm1mZSxnZXREZWZhdWx0T3B0aW9uczooKT0+bHksZ2V0SG91cnM6KCk9PmJmZSxnZXRJU09EYXk6KCk9PmN5LGdldElTT1dlZWs6KCk9PlI1LGdldElTT1dlZWtZZWFyOigpPT5xYSxnZXRJU09XZWVrc0luWWVhcjooKT0+eGZlLGdldE1pbGxpc2Vjb25kczooKT0+d2ZlLGdldE1pbnV0ZXM6KCk9PmtmZSxnZXRNb250aDooKT0+emZlLGdldE92ZXJsYXBwaW5nRGF5c0luSW50ZXJ2YWxzOigpPT5UZmUsZ2V0UXVhcnRlcjooKT0+dWYsZ2V0U2Vjb25kczooKT0+TGZlLGdldFRpbWU6KCk9PkRmZSxnZXRVbml4VGltZTooKT0+JGZlLGdldFdlZWs6KCk9PkI1LGdldFdlZWtPZk1vbnRoOigpPT5QZmUsZ2V0V2Vla1llYXI6KCk9PktjLGdldFdlZWtzSW5Nb250aDooKT0+RmZlLGdldFllYXI6KCk9PlJmZSxob3Vyc1RvTWlsbGlzZWNvbmRzOigpPT5IZmUsaG91cnNUb01pbnV0ZXM6KCk9PmpmZSxob3Vyc1RvU2Vjb25kczooKT0+VWZlLGludGVydmFsOigpPT5HZmUsaW50ZXJ2YWxUb0R1cmF0aW9uOigpPT5aZmUsaW50bEZvcm1hdDooKT0+UWZlLGludGxGb3JtYXREaXN0YW5jZTooKT0+S2ZlLGlzQWZ0ZXI6KCk9PnQ3ZSxpc0JlZm9yZTooKT0+aTdlLGlzRGF0ZTooKT0+QXgsaXNFcXVhbDooKT0+bjdlLGlzRXhpc3RzOigpPT5zN2UsaXNGaXJzdERheU9mTW9udGg6KCk9PmM3ZSxpc0ZyaWRheTooKT0+dTdlLGlzRnV0dXJlOigpPT5oN2UsaXNMYXN0RGF5T2ZNb250aDooKT0+cXgsaXNMZWFwWWVhcjooKT0+c3ksaXNNYXRjaDooKT0+RzdlLGlzTW9uZGF5OigpPT5aN2UsaXNQYXN0OigpPT5RN2UsaXNTYW1lRGF5OigpPT50cyxpc1NhbWVIb3VyOigpPT5ldyxpc1NhbWVJU09XZWVrOigpPT5ydyxpc1NhbWVJU09XZWVrWWVhcjooKT0+SzdlLGlzU2FtZU1pbnV0ZTooKT0+aXcsaXNTYW1lTW9udGg6KCk9PmF3LGlzU2FtZVF1YXJ0ZXI6KCk9Pm53LGlzU2FtZVNlY29uZDooKT0+b3csaXNTYW1lV2VlazooKT0+VjUsaXNTYW1lWWVhcjooKT0+c3csaXNTYXR1cmRheTooKT0+YngsaXNTdW5kYXk6KCk9PnZ4LGlzVGhpc0hvdXI6KCk9PnRtZSxpc1RoaXNJU09XZWVrOigpPT5pbWUsaXNUaGlzTWludXRlOigpPT5ubWUsaXNUaGlzTW9udGg6KCk9PnNtZSxpc1RoaXNRdWFydGVyOigpPT5jbWUsaXNUaGlzU2Vjb25kOigpPT51bWUsaXNUaGlzV2VlazooKT0+aG1lLGlzVGhpc1llYXI6KCk9Pm1tZSxpc1RodXJzZGF5OigpPT5ibWUsaXNUb2RheTooKT0+eG1lLGlzVG9tb3Jyb3c6KCk9PndtZSxpc1R1ZXNkYXk6KCk9PmttZSxpc1ZhbGlkOigpPT5VaSxpc1dlZG5lc2RheTooKT0+em1lLGlzV2Vla2VuZDooKT0+SjIsaXNXaXRoaW5JbnRlcnZhbDooKT0+VG1lLGlzWWVzdGVyZGF5OigpPT5MbWUsbGFzdERheU9mRGVjYWRlOigpPT5EbWUsbGFzdERheU9mSVNPV2VlazooKT0+JG1lLGxhc3REYXlPZklTT1dlZWtZZWFyOigpPT5QbWUsbGFzdERheU9mTW9udGg6KCk9PmR5LGxhc3REYXlPZlF1YXJ0ZXI6KCk9PkZtZSxsYXN0RGF5T2ZXZWVrOigpPT5sdyxsYXN0RGF5T2ZZZWFyOigpPT5SbWUsbGlnaHRGb3JtYXQ6KCk9PkhtZSxsaWdodEZvcm1hdHRlcnM6KCk9PkVuLGxvbmdGb3JtYXR0ZXJzOigpPT5lMCxtYXg6KCk9PlR4LG1pbGxpc2Vjb25kczooKT0+am1lLG1pbGxpc2Vjb25kc1RvSG91cnM6KCk9PlVtZSxtaWxsaXNlY29uZHNUb01pbnV0ZXM6KCk9PkdtZSxtaWxsaXNlY29uZHNUb1NlY29uZHM6KCk9PlptZSxtaW46KCk9Pl94LG1pbnV0ZXNUb0hvdXJzOigpPT5RbWUsbWludXRlc1RvTWlsbGlzZWNvbmRzOigpPT5LbWUsbWludXRlc1RvU2Vjb25kczooKT0+dDllLG1vbnRoc1RvUXVhcnRlcnM6KCk9Pmk5ZSxtb250aHNUb1llYXJzOigpPT5uOWUsbmV4dERheTooKT0+ZmEsbmV4dEZyaWRheTooKT0+czllLG5leHRNb25kYXk6KCk9PmM5ZSxuZXh0U2F0dXJkYXk6KCk9PnU5ZSxuZXh0U3VuZGF5OigpPT5oOWUsbmV4dFRodXJzZGF5OigpPT5tOWUsbmV4dFR1ZXNkYXk6KCk9PmI5ZSxuZXh0V2VkbmVzZGF5OigpPT54OWUscGFyc2U6KCk9Pkt5LHBhcnNlSVNPOigpPT5NOWUscGFyc2VKU09OOigpPT5TOWUscGFyc2VyczooKT0+SnkscHJldmlvdXNEYXk6KCk9Pm1hLHByZXZpb3VzRnJpZGF5OigpPT5DOWUscHJldmlvdXNNb25kYXk6KCk9Pl85ZSxwcmV2aW91c1NhdHVyZGF5OigpPT5BOWUscHJldmlvdXNTdW5kYXk6KCk9PkU5ZSxwcmV2aW91c1RodXJzZGF5OigpPT5JOWUscHJldmlvdXNUdWVzZGF5OigpPT5OOWUscHJldmlvdXNXZWRuZXNkYXk6KCk9Pk85ZSxxdWFydGVyc1RvTW9udGhzOigpPT5COWUscXVhcnRlcnNUb1llYXJzOigpPT5xOWUscm91bmRUb05lYXJlc3RIb3VyczooKT0+VjllLHJvdW5kVG9OZWFyZXN0TWludXRlczooKT0+VzllLHNlY29uZHNUb0hvdXJzOigpPT5ZOWUsc2Vjb25kc1RvTWlsbGlzZWNvbmRzOigpPT5YOWUsc2Vjb25kc1RvTWludXRlczooKT0+SjllLHNldDooKT0+ZWdlLHNldERhdGU6KCk9PnJnZSxzZXREYXk6KCk9PnIwLHNldERheU9mWWVhcjooKT0+YWdlLHNldERlZmF1bHRPcHRpb25zOigpPT5vZ2Usc2V0SG91cnM6KCk9PmxnZSxzZXRJU09EYXk6KCk9Pk55LHNldElTT1dlZWs6KCk9Pkx5LHNldElTT1dlZWtZZWFyOigpPT53eCxzZXRNaWxsaXNlY29uZHM6KCk9PmRnZSxzZXRNaW51dGVzOigpPT5wZ2Usc2V0TW9udGg6KCk9PlU1LHNldFF1YXJ0ZXI6KCk9PmZnZSxzZXRTZWNvbmRzOigpPT5nZ2Usc2V0V2VlazooKT0+VHksc2V0V2Vla1llYXI6KCk9PnZnZSxzZXRZZWFyOigpPT55Z2Usc3RhcnRPZkRheTooKT0+ZXMsc3RhcnRPZkRlY2FkZTooKT0+TWdlLHN0YXJ0T2ZIb3VyOigpPT53ZixzdGFydE9mSVNPV2VlazooKT0+UTEsc3RhcnRPZklTT1dlZWtZZWFyOigpPT5EbixzdGFydE9mTWludXRlOigpPT5NZixzdGFydE9mTW9udGg6KCk9PkpjLHN0YXJ0T2ZRdWFydGVyOigpPT5hcyxzdGFydE9mU2Vjb25kOigpPT5rZixzdGFydE9mVG9kYXk6KCk9PlNnZSxzdGFydE9mVG9tb3Jyb3c6KCk9PkNnZSxzdGFydE9mV2VlazooKT0+SnIsc3RhcnRPZldlZWtZZWFyOigpPT5NMyxzdGFydE9mWWVhcjooKT0+TjUsc3RhcnRPZlllc3RlcmRheTooKT0+X2dlLHN1YjooKT0+QWdlLHN1YkJ1c2luZXNzRGF5czooKT0+RWdlLHN1YkRheXM6KCk9PmkwLHN1YkhvdXJzOigpPT5JZ2Usc3ViSVNPV2Vla1llYXJzOigpPT5GeCxzdWJNaWxsaXNlY29uZHM6KCk9Pk5nZSxzdWJNaW51dGVzOigpPT5PZ2Usc3ViTW9udGhzOigpPT51dyxzdWJRdWFydGVyczooKT0+QmdlLHN1YlNlY29uZHM6KCk9PnFnZSxzdWJXZWVrczooKT0+VmdlLHN1YlllYXJzOigpPT5XZ2UsdG9EYXRlOigpPT5sZSx0cmFuc3Bvc2U6KCk9PnV5LHdlZWtzVG9EYXlzOigpPT5ZZ2UseWVhcnNUb0RheXM6KCk9PlhnZSx5ZWFyc1RvTW9udGhzOigpPT5KZ2UseWVhcnNUb1F1YXJ0ZXJzOigpPT5lYmV9KTt2YXIgcmJlPXAoKCk9PntxQigpO1VCKCk7WDIoKTtXQigpO1lCKCk7bGYoKTtreCgpO3o1KCk7U3goKTtaQigpO2RmKCk7WEIoKTtTcGUoKTtDcGUoKTtLQigpO19wZSgpO2czKCk7QXBlKCk7ZnQoKTtjaSgpO0VwZSgpO0lwZSgpO2JsKCk7dEgoKTtOcGUoKTtFeCgpO2lIKCk7JHgoKTtJeCgpO1B4KCk7TngoKTtScGUoKTtPeCgpO1J4KCk7cGYoKTtIcGUoKTtoZigpO2pwZSgpO29IKCk7c0goKTtVcGUoKTtHcGUoKTtacGUoKTtRcGUoKTtLcGUoKTtXeCgpO3RoZSgpO2loZSgpO25oZSgpO0J4KCk7c2hlKCk7Y2hlKCk7dWhlKCk7aGhlKCk7bWhlKCk7SHgoKTtiaGUoKTt4aGUoKTt3aGUoKTtraGUoKTtjSCgpO2xIKCk7emhlKCk7ZkgoKTttSCgpO2dIKCk7WWhlKCk7WGhlKCk7SmhlKCk7ZWZlKCk7cmZlKCk7YWZlKCk7b2ZlKCk7bGZlKCk7ZGZlKCk7cGZlKCk7YkgoKTt4ZigpO2RIKCk7dkgoKTtmZmUoKTtnZmUoKTt5SCgpO3ZmZSgpO3dIKCk7SngoKTtZYygpO3lmZSgpO01mZSgpO1NmZSgpO0NmZSgpO19mZSgpO3JIKCk7QWZlKCk7RWZlKCk7SWZlKCk7ZXkoKTtOZmUoKTttZigpO09mZSgpO0JmZSgpO3FmZSgpO1ZmZSgpO1dmZSgpO1lmZSgpO1hmZSgpO0pmZSgpO2U3ZSgpO3I3ZSgpO2E3ZSgpO2VIKCk7bzdlKCk7bDdlKCk7ZDdlKCk7cDdlKCk7ZjdlKCk7bkgoKTt4SCgpO1k3ZSgpO1g3ZSgpO0o3ZSgpO0w1KCk7QUgoKTtESCgpO2VtZSgpOyRIKCk7SUgoKTtQSCgpO0ZIKCk7dHcoKTtPSCgpO2pCKCk7VkIoKTtybWUoKTthbWUoKTtvbWUoKTtsbWUoKTtkbWUoKTtwbWUoKTtmbWUoKTtnbWUoKTt2bWUoKTt5bWUoKTtNbWUoKTtTbWUoKTt2bCgpO0NtZSgpO3NmKCk7X21lKCk7QW1lKCk7RW1lKCk7SW1lKCk7Tm1lKCk7TUgoKTtPbWUoKTtSSCgpO0JtZSgpO3FtZSgpO1FCKCk7Vm1lKCk7V21lKCk7WW1lKCk7WG1lKCk7SkIoKTtKbWUoKTtlOWUoKTtyOWUoKTthOWUoKTtvOWUoKTt5bCgpO2w5ZSgpO2Q5ZSgpO3A5ZSgpO2Y5ZSgpO2c5ZSgpO3Y5ZSgpO3k5ZSgpO19IKCk7azllKCk7ejllKCk7d2woKTtUOWUoKTtMOWUoKTtEOWUoKTskOWUoKTtQOWUoKTtGOWUoKTtSOWUoKTtIOWUoKTtqOWUoKTtVOWUoKTtHOWUoKTtaOWUoKTtROWUoKTtLOWUoKTt0Z2UoKTtpZ2UoKTt5ZigpO25nZSgpO3NnZSgpO2NnZSgpO1RIKCk7Q0goKTtHQigpO3VnZSgpO2hnZSgpO2R3KCk7bWdlKCk7YmdlKCk7ekgoKTt4Z2UoKTt3Z2UoKTtjZigpO2tnZSgpO0xIKCk7SzIoKTtDNSgpO0VIKCk7ZmYoKTtVeCgpO05IKCk7emdlKCk7VGdlKCk7cjIoKTtLeCgpO1l4KCk7TGdlKCk7RGdlKCk7JGdlKCk7U2YoKTtQZ2UoKTthSCgpO0ZnZSgpO1JnZSgpO0hIKCk7SGdlKCk7amdlKCk7VWdlKCk7R2dlKCk7T2UoKTtrSCgpO1pnZSgpO1FnZSgpO0tnZSgpO3RiZSgpfSk7dmFyIGliZT1qZSgocUgsakgpPT57KGZ1bmN0aW9uKGUsdCl7dHlwZW9mIHFIPT0ib2JqZWN0IiYmdHlwZW9mIGpIPCJ1Ij9qSC5leHBvcnRzPXQoKTp0eXBlb2YgZGVmaW5lPT0iZnVuY3Rpb24iJiZkZWZpbmUuYW1kP2RlZmluZSh0KTooZT10eXBlb2YgZ2xvYmFsVGhpczwidSI/Z2xvYmFsVGhpczplfHxzZWxmKS5kYXlqcz10KCl9KShxSCwoZnVuY3Rpb24oKXsidXNlIHN0cmljdCI7dmFyIGU9MWUzLHQ9NmU0LHI9MzZlNSxpPSJtaWxsaXNlY29uZCIsYT0ic2Vjb25kIixuPSJtaW51dGUiLG89ImhvdXIiLHM9ImRheSIsbD0id2VlayIsYz0ibW9udGgiLHU9InF1YXJ0ZXIiLGQ9InllYXIiLGg9ImRhdGUiLGY9IkludmFsaWQgRGF0ZSIseD0vXihcZHs0fSlbLS9dPyhcZHsxLDJ9KT9bLS9dPyhcZHswLDJ9KVtUdFxzXSooXGR7MSwyfSk/Oj8oXGR7MSwyfSk/Oj8oXGR7MSwyfSk/Wy46XT8oXGQrKT8kLyx2PS9cWyhbXlxdXSspXXxZezEsNH18TXsxLDR9fER7MSwyfXxkezEsNH18SHsxLDJ9fGh7MSwyfXxhfEF8bXsxLDJ9fHN7MSwyfXxaezEsMn18U1NTL2csYj17bmFtZToiZW4iLHdlZWtkYXlzOiJTdW5kYXlfTW9uZGF5X1R1ZXNkYXlfV2VkbmVzZGF5X1RodXJzZGF5X0ZyaWRheV9TYXR1cmRheSIuc3BsaXQoIl8iKSxtb250aHM6IkphbnVhcnlfRmVicnVhcnlfTWFyY2hfQXByaWxfTWF5X0p1bmVfSnVseV9BdWd1c3RfU2VwdGVtYmVyX09jdG9iZXJfTm92ZW1iZXJfRGVjZW1iZXIiLnNwbGl0KCJfIiksb3JkaW5hbDpmdW5jdGlvbihTKXt2YXIgJD1bInRoIiwic3QiLCJuZCIsInJkIl0sVD1TJTEwMDtyZXR1cm4iWyIrUysoJFsoVC0yMCklMTBdfHwkW1RdfHwkWzBdKSsiXSJ9fSx5PWZ1bmN0aW9uKFMsJCxUKXt2YXIgRT1TdHJpbmcoUyk7cmV0dXJuIUV8fEUubGVuZ3RoPj0kP1M6IiIrQXJyYXkoJCsxLUUubGVuZ3RoKS5qb2luKFQpK1N9LHc9e3M6eSx6OmZ1bmN0aW9uKFMpe3ZhciAkPS1TLnV0Y09mZnNldCgpLFQ9TWF0aC5hYnMoJCksRT1NYXRoLmZsb29yKFQvNjApLHE9VCU2MDtyZXR1cm4oJDw9MD8iKyI6Ii0iKSt5KEUsMiwiMCIpKyI6Iit5KHEsMiwiMCIpfSxtOmZ1bmN0aW9uIFMoJCxUKXtpZigkLmRhdGUoKTxULmRhdGUoKSlyZXR1cm4tUyhULCQpO3ZhciBFPTEyKihULnllYXIoKS0kLnllYXIoKSkrKFQubW9udGgoKS0kLm1vbnRoKCkpLHE9JC5jbG9uZSgpLmFkZChFLGMpLEI9VC1xPDAsRz0kLmNsb25lKCkuYWRkKEUrKEI/LTE6MSksYyk7cmV0dXJuKygtKEUrKFQtcSkvKEI/cS1HOkctcSkpfHwwKX0sYTpmdW5jdGlvbihTKXtyZXR1cm4gUzwwP01hdGguY2VpbChTKXx8MDpNYXRoLmZsb29yKFMpfSxwOmZ1bmN0aW9uKFMpe3JldHVybntNOmMseTpkLHc6bCxkOnMsRDpoLGg6byxtOm4sczphLG1zOmksUTp1fVtTXXx8U3RyaW5nKFN8fCIiKS50b0xvd2VyQ2FzZSgpLnJlcGxhY2UoL3MkLywiIil9LHU6ZnVuY3Rpb24oUyl7cmV0dXJuIFM9PT12b2lkIDB9fSxrPSJlbiIsTz17fTtPW2tdPWI7dmFyIHo9IiRpc0RheWpzT2JqZWN0IixNPWZ1bmN0aW9uKFMpe3JldHVybiBTIGluc3RhbmNlb2YgUnx8ISghU3x8IVNbel0pfSxGPWZ1bmN0aW9uIFMoJCxULEUpe3ZhciBxO2lmKCEkKXJldHVybiBrO2lmKHR5cGVvZiAkPT0ic3RyaW5nIil7dmFyIEI9JC50b0xvd2VyQ2FzZSgpO09bQl0mJihxPUIpLFQmJihPW0JdPVQscT1CKTt2YXIgRz0kLnNwbGl0KCItIik7aWYoIXEmJkcubGVuZ3RoPjEpcmV0dXJuIFMoR1swXSl9ZWxzZXt2YXIgZWU9JC5uYW1lO09bZWVdPSQscT1lZX1yZXR1cm4hRSYmcSYmKGs9cSkscXx8IUUmJmt9LEQ9ZnVuY3Rpb24oUywkKXtpZihNKFMpKXJldHVybiBTLmNsb25lKCk7dmFyIFQ9dHlwZW9mICQ9PSJvYmplY3QiPyQ6e307cmV0dXJuIFQuZGF0ZT1TLFQuYXJncz1hcmd1bWVudHMsbmV3IFIoVCl9LE49dztOLmw9RixOLmk9TSxOLnc9ZnVuY3Rpb24oUywkKXtyZXR1cm4gRChTLHtsb2NhbGU6JC4kTCx1dGM6JC4kdSx4OiQuJHgsJG9mZnNldDokLiRvZmZzZXR9KX07dmFyIFI9KGZ1bmN0aW9uKCl7ZnVuY3Rpb24gUyhUKXt0aGlzLiRMPUYoVC5sb2NhbGUsbnVsbCwhMCksdGhpcy5wYXJzZShUKSx0aGlzLiR4PXRoaXMuJHh8fFQueHx8e30sdGhpc1t6XT0hMH12YXIgJD1TLnByb3RvdHlwZTtyZXR1cm4gJC5wYXJzZT1mdW5jdGlvbihUKXt0aGlzLiRkPShmdW5jdGlvbihFKXt2YXIgcT1FLmRhdGUsQj1FLnV0YztpZihxPT09bnVsbClyZXR1cm4gbmV3IERhdGUoTmFOKTtpZihOLnUocSkpcmV0dXJuIG5ldyBEYXRlO2lmKHEgaW5zdGFuY2VvZiBEYXRlKXJldHVybiBuZXcgRGF0ZShxKTtpZih0eXBlb2YgcT09InN0cmluZyImJiEvWiQvaS50ZXN0KHEpKXt2YXIgRz1xLm1hdGNoKHgpO2lmKEcpe3ZhciBlZT1HWzJdLTF8fDAsUD0oR1s3XXx8IjAiKS5zdWJzdHJpbmcoMCwzKTtyZXR1cm4gQj9uZXcgRGF0ZShEYXRlLlVUQyhHWzFdLGVlLEdbM118fDEsR1s0XXx8MCxHWzVdfHwwLEdbNl18fDAsUCkpOm5ldyBEYXRlKEdbMV0sZWUsR1szXXx8MSxHWzRdfHwwLEdbNV18fDAsR1s2XXx8MCxQKX19cmV0dXJuIG5ldyBEYXRlKHEpfSkoVCksdGhpcy5pbml0KCl9LCQuaW5pdD1mdW5jdGlvbigpe3ZhciBUPXRoaXMuJGQ7dGhpcy4keT1ULmdldEZ1bGxZZWFyKCksdGhpcy4kTT1ULmdldE1vbnRoKCksdGhpcy4kRD1ULmdldERhdGUoKSx0aGlzLiRXPVQuZ2V0RGF5KCksdGhpcy4kSD1ULmdldEhvdXJzKCksdGhpcy4kbT1ULmdldE1pbnV0ZXMoKSx0aGlzLiRzPVQuZ2V0U2Vjb25kcygpLHRoaXMuJG1zPVQuZ2V0TWlsbGlzZWNvbmRzKCl9LCQuJHV0aWxzPWZ1bmN0aW9uKCl7cmV0dXJuIE59LCQuaXNWYWxpZD1mdW5jdGlvbigpe3JldHVybiB0aGlzLiRkLnRvU3RyaW5nKCkhPT1mfSwkLmlzU2FtZT1mdW5jdGlvbihULEUpe3ZhciBxPUQoVCk7cmV0dXJuIHRoaXMuc3RhcnRPZihFKTw9cSYmcTw9dGhpcy5lbmRPZihFKX0sJC5pc0FmdGVyPWZ1bmN0aW9uKFQsRSl7cmV0dXJuIEQoVCk8dGhpcy5zdGFydE9mKEUpfSwkLmlzQmVmb3JlPWZ1bmN0aW9uKFQsRSl7cmV0dXJuIHRoaXMuZW5kT2YoRSk8RChUKX0sJC4kZz1mdW5jdGlvbihULEUscSl7cmV0dXJuIE4udShUKT90aGlzW0VdOnRoaXMuc2V0KHEsVCl9LCQudW5peD1mdW5jdGlvbigpe3JldHVybiBNYXRoLmZsb29yKHRoaXMudmFsdWVPZigpLzFlMyl9LCQudmFsdWVPZj1mdW5jdGlvbigpe3JldHVybiB0aGlzLiRkLmdldFRpbWUoKX0sJC5zdGFydE9mPWZ1bmN0aW9uKFQsRSl7dmFyIHE9dGhpcyxCPSEhTi51KEUpfHxFLEc9Ti5wKFQpLGVlPWZ1bmN0aW9uKEEsTCl7dmFyIFU9Ti53KHEuJHU/RGF0ZS5VVEMocS4keSxMLEEpOm5ldyBEYXRlKHEuJHksTCxBKSxxKTtyZXR1cm4gQj9VOlUuZW5kT2Yocyl9LFA9ZnVuY3Rpb24oQSxMKXtyZXR1cm4gTi53KHEudG9EYXRlKClbQV0uYXBwbHkocS50b0RhdGUoInMiKSwoQj9bMCwwLDAsMF06WzIzLDU5LDU5LDk5OV0pLnNsaWNlKEwpKSxxKX0sZ2U9dGhpcy4kVyx3ZT10aGlzLiRNLEk9dGhpcy4kRCxuZT0ic2V0IisodGhpcy4kdT8iVVRDIjoiIik7c3dpdGNoKEcpe2Nhc2UgZDpyZXR1cm4gQj9lZSgxLDApOmVlKDMxLDExKTtjYXNlIGM6cmV0dXJuIEI/ZWUoMSx3ZSk6ZWUoMCx3ZSsxKTtjYXNlIGw6dmFyIGtlPXRoaXMuJGxvY2FsZSgpLndlZWtTdGFydHx8MCxZPShnZTxrZT9nZSs3OmdlKS1rZTtyZXR1cm4gZWUoQj9JLVk6SSsoNi1ZKSx3ZSk7Y2FzZSBzOmNhc2UgaDpyZXR1cm4gUChuZSsiSG91cnMiLDApO2Nhc2UgbzpyZXR1cm4gUChuZSsiTWludXRlcyIsMSk7Y2FzZSBuOnJldHVybiBQKG5lKyJTZWNvbmRzIiwyKTtjYXNlIGE6cmV0dXJuIFAobmUrIk1pbGxpc2Vjb25kcyIsMyk7ZGVmYXVsdDpyZXR1cm4gdGhpcy5jbG9uZSgpfX0sJC5lbmRPZj1mdW5jdGlvbihUKXtyZXR1cm4gdGhpcy5zdGFydE9mKFQsITEpfSwkLiRzZXQ9ZnVuY3Rpb24oVCxFKXt2YXIgcSxCPU4ucChUKSxHPSJzZXQiKyh0aGlzLiR1PyJVVEMiOiIiKSxlZT0ocT17fSxxW3NdPUcrIkRhdGUiLHFbaF09RysiRGF0ZSIscVtjXT1HKyJNb250aCIscVtkXT1HKyJGdWxsWWVhciIscVtvXT1HKyJIb3VycyIscVtuXT1HKyJNaW51dGVzIixxW2FdPUcrIlNlY29uZHMiLHFbaV09RysiTWlsbGlzZWNvbmRzIixxKVtCXSxQPUI9PT1zP3RoaXMuJEQrKEUtdGhpcy4kVyk6RTtpZihCPT09Y3x8Qj09PWQpe3ZhciBnZT10aGlzLmNsb25lKCkuc2V0KGgsMSk7Z2UuJGRbZWVdKFApLGdlLmluaXQoKSx0aGlzLiRkPWdlLnNldChoLE1hdGgubWluKHRoaXMuJEQsZ2UuZGF5c0luTW9udGgoKSkpLiRkfWVsc2UgZWUmJnRoaXMuJGRbZWVdKFApO3JldHVybiB0aGlzLmluaXQoKSx0aGlzfSwkLnNldD1mdW5jdGlvbihULEUpe3JldHVybiB0aGlzLmNsb25lKCkuJHNldChULEUpfSwkLmdldD1mdW5jdGlvbihUKXtyZXR1cm4gdGhpc1tOLnAoVCldKCl9LCQuYWRkPWZ1bmN0aW9uKFQsRSl7dmFyIHEsQj10aGlzO1Q9TnVtYmVyKFQpO3ZhciBHPU4ucChFKSxlZT1mdW5jdGlvbih3ZSl7dmFyIEk9RChCKTtyZXR1cm4gTi53KEkuZGF0ZShJLmRhdGUoKStNYXRoLnJvdW5kKHdlKlQpKSxCKX07aWYoRz09PWMpcmV0dXJuIHRoaXMuc2V0KGMsdGhpcy4kTStUKTtpZihHPT09ZClyZXR1cm4gdGhpcy5zZXQoZCx0aGlzLiR5K1QpO2lmKEc9PT1zKXJldHVybiBlZSgxKTtpZihHPT09bClyZXR1cm4gZWUoNyk7dmFyIFA9KHE9e30scVtuXT10LHFbb109cixxW2FdPWUscSlbR118fDEsZ2U9dGhpcy4kZC5nZXRUaW1lKCkrVCpQO3JldHVybiBOLncoZ2UsdGhpcyl9LCQuc3VidHJhY3Q9ZnVuY3Rpb24oVCxFKXtyZXR1cm4gdGhpcy5hZGQoLTEqVCxFKX0sJC5mb3JtYXQ9ZnVuY3Rpb24oVCl7dmFyIEU9dGhpcyxxPXRoaXMuJGxvY2FsZSgpO2lmKCF0aGlzLmlzVmFsaWQoKSlyZXR1cm4gcS5pbnZhbGlkRGF0ZXx8Zjt2YXIgQj1UfHwiWVlZWS1NTS1ERFRISDptbTpzc1oiLEc9Ti56KHRoaXMpLGVlPXRoaXMuJEgsUD10aGlzLiRtLGdlPXRoaXMuJE0sd2U9cS53ZWVrZGF5cyxJPXEubW9udGhzLG5lPXEubWVyaWRpZW0sa2U9ZnVuY3Rpb24oTCxVLFYsWCl7cmV0dXJuIEwmJihMW1VdfHxMKEUsQikpfHxWW1VdLnNsaWNlKDAsWCl9LFk9ZnVuY3Rpb24oTCl7cmV0dXJuIE4ucyhlZSUxMnx8MTIsTCwiMCIpfSxBPW5lfHxmdW5jdGlvbihMLFUsVil7dmFyIFg9TDwxMj8iQU0iOiJQTSI7cmV0dXJuIFY/WC50b0xvd2VyQ2FzZSgpOlh9O3JldHVybiBCLnJlcGxhY2UodiwoZnVuY3Rpb24oTCxVKXtyZXR1cm4gVXx8KGZ1bmN0aW9uKFYpe3N3aXRjaChWKXtjYXNlIllZIjpyZXR1cm4gU3RyaW5nKEUuJHkpLnNsaWNlKC0yKTtjYXNlIllZWVkiOnJldHVybiBOLnMoRS4keSw0LCIwIik7Y2FzZSJNIjpyZXR1cm4gZ2UrMTtjYXNlIk1NIjpyZXR1cm4gTi5zKGdlKzEsMiwiMCIpO2Nhc2UiTU1NIjpyZXR1cm4ga2UocS5tb250aHNTaG9ydCxnZSxJLDMpO2Nhc2UiTU1NTSI6cmV0dXJuIGtlKEksZ2UpO2Nhc2UiRCI6cmV0dXJuIEUuJEQ7Y2FzZSJERCI6cmV0dXJuIE4ucyhFLiRELDIsIjAiKTtjYXNlImQiOnJldHVybiBTdHJpbmcoRS4kVyk7Y2FzZSJkZCI6cmV0dXJuIGtlKHEud2Vla2RheXNNaW4sRS4kVyx3ZSwyKTtjYXNlImRkZCI6cmV0dXJuIGtlKHEud2Vla2RheXNTaG9ydCxFLiRXLHdlLDMpO2Nhc2UiZGRkZCI6cmV0dXJuIHdlW0UuJFddO2Nhc2UiSCI6cmV0dXJuIFN0cmluZyhlZSk7Y2FzZSJISCI6cmV0dXJuIE4ucyhlZSwyLCIwIik7Y2FzZSJoIjpyZXR1cm4gWSgxKTtjYXNlImhoIjpyZXR1cm4gWSgyKTtjYXNlImEiOnJldHVybiBBKGVlLFAsITApO2Nhc2UiQSI6cmV0dXJuIEEoZWUsUCwhMSk7Y2FzZSJtIjpyZXR1cm4gU3RyaW5nKFApO2Nhc2UibW0iOnJldHVybiBOLnMoUCwyLCIwIik7Y2FzZSJzIjpyZXR1cm4gU3RyaW5nKEUuJHMpO2Nhc2Uic3MiOnJldHVybiBOLnMoRS4kcywyLCIwIik7Y2FzZSJTU1MiOnJldHVybiBOLnMoRS4kbXMsMywiMCIpO2Nhc2UiWiI6cmV0dXJuIEd9cmV0dXJuIG51bGx9KShMKXx8Ry5yZXBsYWNlKCI6IiwiIil9KSl9LCQudXRjT2Zmc2V0PWZ1bmN0aW9uKCl7cmV0dXJuIDE1Ki1NYXRoLnJvdW5kKHRoaXMuJGQuZ2V0VGltZXpvbmVPZmZzZXQoKS8xNSl9LCQuZGlmZj1mdW5jdGlvbihULEUscSl7dmFyIEIsRz10aGlzLGVlPU4ucChFKSxQPUQoVCksZ2U9KFAudXRjT2Zmc2V0KCktdGhpcy51dGNPZmZzZXQoKSkqdCx3ZT10aGlzLVAsST1mdW5jdGlvbigpe3JldHVybiBOLm0oRyxQKX07c3dpdGNoKGVlKXtjYXNlIGQ6Qj1JKCkvMTI7YnJlYWs7Y2FzZSBjOkI9SSgpO2JyZWFrO2Nhc2UgdTpCPUkoKS8zO2JyZWFrO2Nhc2UgbDpCPSh3ZS1nZSkvNjA0OGU1O2JyZWFrO2Nhc2UgczpCPSh3ZS1nZSkvODY0ZTU7YnJlYWs7Y2FzZSBvOkI9d2UvcjticmVhaztjYXNlIG46Qj13ZS90O2JyZWFrO2Nhc2UgYTpCPXdlL2U7YnJlYWs7ZGVmYXVsdDpCPXdlfXJldHVybiBxP0I6Ti5hKEIpfSwkLmRheXNJbk1vbnRoPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuZW5kT2YoYykuJER9LCQuJGxvY2FsZT1mdW5jdGlvbigpe3JldHVybiBPW3RoaXMuJExdfSwkLmxvY2FsZT1mdW5jdGlvbihULEUpe2lmKCFUKXJldHVybiB0aGlzLiRMO3ZhciBxPXRoaXMuY2xvbmUoKSxCPUYoVCxFLCEwKTtyZXR1cm4gQiYmKHEuJEw9QikscX0sJC5jbG9uZT1mdW5jdGlvbigpe3JldHVybiBOLncodGhpcy4kZCx0aGlzKX0sJC50b0RhdGU9ZnVuY3Rpb24oKXtyZXR1cm4gbmV3IERhdGUodGhpcy52YWx1ZU9mKCkpfSwkLnRvSlNPTj1mdW5jdGlvbigpe3JldHVybiB0aGlzLmlzVmFsaWQoKT90aGlzLnRvSVNPU3RyaW5nKCk6bnVsbH0sJC50b0lTT1N0cmluZz1mdW5jdGlvbigpe3JldHVybiB0aGlzLiRkLnRvSVNPU3RyaW5nKCl9LCQudG9TdHJpbmc9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy4kZC50b1VUQ1N0cmluZygpfSxTfSkoKSxfPVIucHJvdG90eXBlO3JldHVybiBELnByb3RvdHlwZT1fLFtbIiRtcyIsaV0sWyIkcyIsYV0sWyIkbSIsbl0sWyIkSCIsb10sWyIkVyIsc10sWyIkTSIsY10sWyIkeSIsZF0sWyIkRCIsaF1dLmZvckVhY2goKGZ1bmN0aW9uKFMpe19bU1sxXV09ZnVuY3Rpb24oJCl7cmV0dXJuIHRoaXMuJGcoJCxTWzBdLFNbMV0pfX0pKSxELmV4dGVuZD1mdW5jdGlvbihTLCQpe3JldHVybiBTLiRpfHwoUygkLFIsRCksUy4kaT0hMCksRH0sRC5sb2NhbGU9RixELmlzRGF5anM9TSxELnVuaXg9ZnVuY3Rpb24oUyl7cmV0dXJuIEQoMWUzKlMpfSxELmVuPU9ba10sRC5Mcz1PLEQucD17fSxEfSkpfSk7dmFyIGFiZT1qZSgoVkgsVUgpPT57KGZ1bmN0aW9uKGUsdCl7dHlwZW9mIFZIPT0ib2JqZWN0IiYmdHlwZW9mIFVIPCJ1Ij9VSC5leHBvcnRzPXQoKTp0eXBlb2YgZGVmaW5lPT0iZnVuY3Rpb24iJiZkZWZpbmUuYW1kP2RlZmluZSh0KTooZT10eXBlb2YgZ2xvYmFsVGhpczwidSI/Z2xvYmFsVGhpczplfHxzZWxmKS5kYXlqc19wbHVnaW5faXNUb2RheT10KCl9KShWSCwoZnVuY3Rpb24oKXsidXNlIHN0cmljdCI7cmV0dXJuIGZ1bmN0aW9uKGUsdCxyKXt0LnByb3RvdHlwZS5pc1RvZGF5PWZ1bmN0aW9uKCl7dmFyIGk9IllZWVktTU0tREQiLGE9cigpO3JldHVybiB0aGlzLmZvcm1hdChpKT09PWEuZm9ybWF0KGkpfX19KSl9KTtmdW5jdGlvbiBCN3IoZSl7cmV0dXJue2RheXM6TWF0aC50cnVuYyhlLzg2NGU1KSxob3VyczpNYXRoLnRydW5jKGUvMzZlNSUyNCksbWludXRlczpNYXRoLnRydW5jKGUvNmU0JTYwKSxzZWNvbmRzOk1hdGgudHJ1bmMoZS8xZTMlNjApLG1pbGxpc2Vjb25kczpNYXRoLnRydW5jKGUlMWUzKSxtaWNyb3NlY29uZHM6TWF0aC50cnVuYyhuYmUoZSoxZTMpJTFlMyksbmFub3NlY29uZHM6TWF0aC50cnVuYyhuYmUoZSoxZTYpJTFlMyl9fWZ1bmN0aW9uIEg3cihlKXtyZXR1cm57ZGF5czplLzg2NDAwMDAwbixob3VyczplLzM2MDAwMDBuJTI0bixtaW51dGVzOmUvNjAwMDBuJTYwbixzZWNvbmRzOmUvMTAwMG4lNjBuLG1pbGxpc2Vjb25kczplJTEwMDBuLG1pY3Jvc2Vjb25kczowbixuYW5vc2Vjb25kczowbn19ZnVuY3Rpb24gV0goZSl7c3dpdGNoKHR5cGVvZiBlKXtjYXNlIm51bWJlciI6e2lmKE51bWJlci5pc0Zpbml0ZShlKSlyZXR1cm4gQjdyKGUpO2JyZWFrfWNhc2UiYmlnaW50IjpyZXR1cm4gSDdyKGUpfXRocm93IG5ldyBUeXBlRXJyb3IoIkV4cGVjdGVkIGEgZmluaXRlIG51bWJlciBvciBiaWdpbnQiKX12YXIgbmJlLG9iZT1wKCgpPT57bmJlPWU9Pk51bWJlci5pc0Zpbml0ZShlKT9lOjB9KTtmdW5jdGlvbiBUZihlLHQpe2xldCByPXR5cGVvZiBlPT0iYmlnaW50IjtpZighciYmIU51bWJlci5pc0Zpbml0ZShlKSl0aHJvdyBuZXcgVHlwZUVycm9yKCJFeHBlY3RlZCBhIGZpbml0ZSBudW1iZXIgb3IgYmlnaW50Iik7dD17Li4udH07bGV0IGk9ZTwwPyItIjoiIjtlPWU8MD8tZTplLHQuY29sb25Ob3RhdGlvbiYmKHQuY29tcGFjdD0hMSx0LmZvcm1hdFN1Yk1pbGxpc2Vjb25kcz0hMSx0LnNlcGFyYXRlTWlsbGlzZWNvbmRzPSExLHQudmVyYm9zZT0hMSksdC5jb21wYWN0JiYodC51bml0Q291bnQ9MSx0LnNlY29uZHNEZWNpbWFsRGlnaXRzPTAsdC5taWxsaXNlY29uZHNEZWNpbWFsRGlnaXRzPTApO2xldCBhPVtdLG49KHUsZCk9PntsZXQgaD1NYXRoLmZsb29yKHUqMTAqKmQrVjdyKTtyZXR1cm4oTWF0aC5yb3VuZChoKS8xMCoqZCkudG9GaXhlZChkKX0sbz0odSxkLGgsZik9PntpZighKChhLmxlbmd0aD09PTB8fCF0LmNvbG9uTm90YXRpb24pJiZxN3IodSkmJiEodC5jb2xvbk5vdGF0aW9uJiZoPT09Im0iKSkpe2lmKGY/Pz1TdHJpbmcodSksdC5jb2xvbk5vdGF0aW9uKXtsZXQgeD1mLmluY2x1ZGVzKCIuIik/Zi5zcGxpdCgiLiIpWzBdLmxlbmd0aDpmLmxlbmd0aCx2PWEubGVuZ3RoPjA/MjoxO2Y9IjAiLnJlcGVhdChNYXRoLm1heCgwLHYteCkpK2Z9ZWxzZSBmKz10LnZlcmJvc2U/IiAiK2o3cihkLHUpOmg7YS5wdXNoKGYpfX0scz1XSChlKSxsPUJpZ0ludChzLmRheXMpO2lmKHQuaGlkZVllYXJBbmREYXlzP28oQmlnSW50KGwpKjI0bitCaWdJbnQocy5ob3VycyksImhvdXIiLCJoIik6KHQuaGlkZVllYXI/byhsLCJkYXkiLCJkIik6KG8obC8zNjVuLCJ5ZWFyIiwieSIpLG8obCUzNjVuLCJkYXkiLCJkIikpLG8oTnVtYmVyKHMuaG91cnMpLCJob3VyIiwiaCIpKSxvKE51bWJlcihzLm1pbnV0ZXMpLCJtaW51dGUiLCJtIiksIXQuaGlkZVNlY29uZHMpaWYodC5zZXBhcmF0ZU1pbGxpc2Vjb25kc3x8dC5mb3JtYXRTdWJNaWxsaXNlY29uZHN8fCF0LmNvbG9uTm90YXRpb24mJmU8MWUzJiYhdC5zdWJTZWNvbmRzQXNEZWNpbWFscyl7bGV0IHU9TnVtYmVyKHMuc2Vjb25kcyksZD1OdW1iZXIocy5taWxsaXNlY29uZHMpLGg9TnVtYmVyKHMubWljcm9zZWNvbmRzKSxmPU51bWJlcihzLm5hbm9zZWNvbmRzKTtpZihvKHUsInNlY29uZCIsInMiKSx0LmZvcm1hdFN1Yk1pbGxpc2Vjb25kcylvKGQsIm1pbGxpc2Vjb25kIiwibXMiKSxvKGgsIm1pY3Jvc2Vjb25kIiwiXHhCNXMiKSxvKGYsIm5hbm9zZWNvbmQiLCJucyIpO2Vsc2V7bGV0IHg9ZCtoLzFlMytmLzFlNix2PXR5cGVvZiB0Lm1pbGxpc2Vjb25kc0RlY2ltYWxEaWdpdHM9PSJudW1iZXIiP3QubWlsbGlzZWNvbmRzRGVjaW1hbERpZ2l0czowLGI9eD49MT9NYXRoLnJvdW5kKHgpOk1hdGguY2VpbCh4KSx5PXY/eC50b0ZpeGVkKHYpOmI7byhOdW1iZXIucGFyc2VGbG9hdCh5KSwibWlsbGlzZWNvbmQiLCJtcyIseSl9fWVsc2V7bGV0IHU9KHI/TnVtYmVyKGUlVTdyKTplKS8xZTMlNjAsZD10eXBlb2YgdC5zZWNvbmRzRGVjaW1hbERpZ2l0cz09Im51bWJlciI/dC5zZWNvbmRzRGVjaW1hbERpZ2l0czoxLGg9bih1LGQpLGY9dC5rZWVwRGVjaW1hbHNPbldob2xlU2Vjb25kcz9oOmgucmVwbGFjZSgvXC4wKyQvLCIiKTtvKE51bWJlci5wYXJzZUZsb2F0KGYpLCJzZWNvbmQiLCJzIixmKX1pZihhLmxlbmd0aD09PTApcmV0dXJuIGkrIjAiKyh0LnZlcmJvc2U/IiBtaWxsaXNlY29uZHMiOiJtcyIpO2xldCBjPXQuY29sb25Ob3RhdGlvbj8iOiI6IiAiO3JldHVybiB0eXBlb2YgdC51bml0Q291bnQ9PSJudW1iZXIiJiYoYT1hLnNsaWNlKDAsTWF0aC5tYXgodC51bml0Q291bnQsMSkpKSxpK2Euam9pbihjKX12YXIgcTdyLGo3cixWN3IsVTdyLHNiZT1wKCgpPT57b2JlKCk7cTdyPWU9PmU9PT0wfHxlPT09MG4sajdyPShlLHQpPT50PT09MXx8dD09PTFuP2U6YCR7ZX1zYCxWN3I9MWUtNyxVN3I9MjRuKjYwbio2MG4qMTAwMG59KTt2YXIgejMsbGJlLGEwPXAoKCk9PntfZigpO1kyKCk7c2EoKTt2cGUoKTtyYmUoKTt6Mz1lcihpYmUoKSwxKSxsYmU9ZXIoYWJlKCksMSk7c2JlKCk7ejMuZGVmYXVsdC5leHRlbmQobGJlLmRlZmF1bHQpfSk7dmFyIExmLEdIPXAoKCk9PnthMCgpO1lIKCk7TGY9Y2xhc3N7Y29uc3RydWN0b3IodCxyLGkpe3RoaXMuc3RhdHVzPSJpbml0aWFsIix0aGlzLm5leHRFeGVjdXRpb25Vbml4PTAsdGhpcy5jcm9uRXhwcmVzc2lvbj1yLHRoaXMuam9iRnVuY3Rpb249aSx0aGlzLmNyb25QYXJzZXI9bmV3IG5mLkNyb24ocil9Y2hlY2tFeGVjdXRpb24oKXtpZih0aGlzLnN0YXR1cz09PSJzdG9wcGVkIilyZXR1cm4gdGhpcy5uZXh0RXhlY3V0aW9uVW5peDtpZih0aGlzLm5leHRFeGVjdXRpb25Vbml4PT09MCYmdGhpcy5nZXROZXh0RXhlY3V0aW9uVGltZSgpLERhdGUubm93KCk+dGhpcy5uZXh0RXhlY3V0aW9uVW5peCl7bGV0IHQ9dGhpcy5qb2JGdW5jdGlvbih0aGlzLm5leHRFeGVjdXRpb25Vbml4KTt0IGluc3RhbmNlb2YgUHJvbWlzZSYmdC5jYXRjaChyPT5jb25zb2xlLmxvZyhyKSksdGhpcy5uZXh0RXhlY3V0aW9uVW5peD10aGlzLmdldE5leHRFeGVjdXRpb25UaW1lKCl9cmV0dXJuIHRoaXMubmV4dEV4ZWN1dGlvblVuaXh9Z2V0TmV4dEV4ZWN1dGlvblRpbWUoKXtyZXR1cm4gdGhpcy5uZXh0RXhlY3V0aW9uVW5peD1EYXRlLm5vdygpK3RoaXMuZ2V0VGltZVRvTmV4dEV4ZWN1dGlvbigpfWdldFRpbWVUb05leHRFeGVjdXRpb24oKXtyZXR1cm4gdGhpcy5jcm9uUGFyc2VyLm1zVG9OZXh0KCl9c3RhcnQoKXt0aGlzLnN0YXR1cz0ic3RhcnRlZCJ9c3RvcCgpe3RoaXMuc3RhdHVzPSJzdG9wcGVkIn19fSk7dmFyIFpILFlIPXAoKCk9PnthMCgpO0dIKCk7Wkg9Y2xhc3N7Y29uc3RydWN0b3IoKXt0aGlzLnN0YXR1cz0ic3RvcHBlZCIsdGhpcy5jcm9uam9icz1uZXcgZGkuT2JqZWN0TWFwLHRoaXMuY3ljbGVXYWtlRGVmZXJyZWQ9bnVsbH13YWtlQ3ljbGUoKXt0aGlzLmN5Y2xlV2FrZURlZmVycmVkJiZ0aGlzLmN5Y2xlV2FrZURlZmVycmVkLnN0YXR1cz09PSJwZW5kaW5nIiYmdGhpcy5jeWNsZVdha2VEZWZlcnJlZC5yZXNvbHZlKCl9YWRkQ3JvbmpvYih0LHIpe2xldCBpPW5ldyBMZih0aGlzLHQscik7cmV0dXJuIHRoaXMuY3JvbmpvYnMuYWRkKGkpLHRoaXMuc3RhdHVzPT09InN0YXJ0ZWQiJiYoaS5zdGFydCgpLHRoaXMud2FrZUN5Y2xlKCkpLGl9cmVtb3ZlQ3JvbmpvYih0KXt0LnN0b3AoKSx0aGlzLmNyb25qb2JzLnJlbW92ZSh0KSx0aGlzLnN0YXR1cz09PSJzdGFydGVkIiYmdGhpcy53YWtlQ3ljbGUoKX1zdGFydCgpe2lmKHRoaXMuc3RhdHVzIT09InN0YXJ0ZWQiKXt0aGlzLnN0YXR1cz0ic3RhcnRlZCI7Zm9yKGxldCB0IG9mIHRoaXMuY3JvbmpvYnMuZ2V0QXJyYXkoKSl0LnN0YXJ0KCk7dGhpcy5ydW5Dcm9uQ3ljbGUoKX19YXN5bmMgcnVuQ3JvbkN5Y2xlKCl7Zm9yKDt0aGlzLnN0YXR1cz09PSJzdGFydGVkIjspe3RoaXMuY3ljbGVXYWtlRGVmZXJyZWQ9bmV3IEtlLkRlZmVycmVkO2xldCB0PTEvMDtmb3IobGV0IHIgb2YgdGhpcy5jcm9uam9icy5nZXRBcnJheSgpKXtyLmNoZWNrRXhlY3V0aW9uKCk7bGV0IGk9ci5nZXRUaW1lVG9OZXh0RXhlY3V0aW9uKCk7aTx0JiYodD1pKX1pZih0PDEvMCYmdD4wKXRoaXMuZXhlY3V0aW9uVGltZW91dD1uZXcgenQuVGltZW91dCh0KSxhd2FpdCBQcm9taXNlLnJhY2UoW3RoaXMuZXhlY3V0aW9uVGltZW91dC5wcm9taXNlLHRoaXMuY3ljbGVXYWtlRGVmZXJyZWQucHJvbWlzZV0pLHRoaXMuZXhlY3V0aW9uVGltZW91dC5jYW5jZWwoKTtlbHNle2lmKHQ8PTApY29udGludWU7YXdhaXQgdGhpcy5jeWNsZVdha2VEZWZlcnJlZC5wcm9taXNlfX10aGlzLmN5Y2xlV2FrZURlZmVycmVkPW51bGx9c3RvcCgpe3RoaXMuc3RhdHVzPT09InN0YXJ0ZWQiJiYodGhpcy5zdGF0dXM9InN0b3BwZWQiLHRoaXMuZXhlY3V0aW9uVGltZW91dCYmdGhpcy5leGVjdXRpb25UaW1lb3V0LmNhbmNlbCgpLHRoaXMud2FrZUN5Y2xlKCkpO2ZvcihsZXQgdCBvZiB0aGlzLmNyb25qb2JzLmdldEFycmF5KCkpdC5zdG9wKCl9fX0pO3ZhciBuMCxYSCxXN3IsRzdyLFFIPXAoKCk9PnthMCgpO24wPXt5ZWFyczooZT0xKT0+ZSozMTU0ZTcsbW9udGhzOihlPTEpPT5lKjI2MjhlNix3ZWVrczooZT0xKT0+ZSo2MDQ4ZTUsZGF5czooZT0xKT0+ZSo4NjRlNSxob3VyczooZT0xKT0+ZSozNmU1LG1pbnV0ZXM6KGU9MSk9PmUqNmU0LHNlY29uZHM6KGU9MSk9PmUqMWUzfSxYSD1lPT57bGV0IHQ9MCxyPWk9Pnt0PXQraX07cmV0dXJuIGUueWVhcnMmJnIobjAueWVhcnMoZS55ZWFycykpLGUubW9udGhzJiZyKG4wLm1vbnRocyhlLm1vbnRocykpLGUud2Vla3MmJnIobjAud2Vla3MoZS53ZWVrcykpLGUuZGF5cyYmcihuMC5kYXlzKGUuZGF5cykpLGUuaG91cnMmJnIobjAuaG91cnMoZS5ob3VycykpLGUubWludXRlcyYmcihuMC5taW51dGVzKGUubWludXRlcykpLGUuc2Vjb25kcyYmcihuMC5zZWNvbmRzKGUuc2Vjb25kcykpLHR9LFc3cj1lPT5UZihlKSxHN3I9ZT0+Q2YuZm9ybWF0RGlzdGFuY2VUb05vdyhuZXcgRGF0ZShlKSl9KTt2YXIgSkgsY2JlPXAoKCk9PnthMCgpO1FIKCk7Skg9Y2xhc3MgZSBleHRlbmRzIERhdGV7c3RhdGljIGZyb21NaWxsaXModCl7cmV0dXJuIG5ldyBlKHQpfXN0YXRpYyBmcm9tRGF0ZSh0KXtyZXR1cm4gbmV3IGUodC5nZXRUaW1lKCkpfXN0YXRpYyBmcm9tRXVyb3BlYW5EYXRlKHQpe2xldCByPS8oLiopXC4oLiopXC4oLiopLy5leGVjKHQpLGE9bmV3IERhdGUocGFyc2VGbG9hdChyWzNdKSxwYXJzZUZsb2F0KHJbMl0pLTEscGFyc2VGbG9hdChyWzFdKSkuZ2V0VGltZSgpO3JldHVybiBuZXcgZShhKX1zdGF0aWMgZnJvbUh5cGhlZERhdGUodCl7bGV0IHI9bmV3IERhdGUodCkuZ2V0VGltZSgpO3JldHVybiBuZXcgZShyKX1zdGF0aWMgZnJvbUV1cm9wZWFuRGF0ZUFuZFRpbWUodCxyPSIxMjowMDowMCIsaT0iRXVyb3BlL0JlcmxpbiIpe2xldCBhPS8oLiopXC4oLiopXC4oLiopLy5leGVjKHQpLG49Yz0+YDAke2N9YC5zbGljZSgtMiksbz1gJHthWzNdfS0ke24oYVsyXSl9LSR7bihhWzFdKX1UJHtyfWAsbD16My5kZWZhdWx0KG8pLnRvRGF0ZSgpLmdldFRpbWUoKTtyZXR1cm4gbmV3IGUobCl9Y29uc3RydWN0b3IodD1EYXRlLm5vdygpKXtzdXBlcih0KX1leHBvcnRUb0V1cm9wZWFuRGF0ZSgpe2xldCB0PXRoaXMuZXhwb3J0VG9Vbml0cygpO3JldHVybmAke3QuZGF5U3RyaW5nfS4ke3QubW9udGhTdHJpbmd9LiR7dC55ZWFyU3RyaW5nfWB9ZXhwb3J0VG9IeXBoZWRTb3J0YWJsZURhdGUoKXtsZXQgdD10aGlzLmV4cG9ydFRvVW5pdHMoKTtyZXR1cm5gJHt0LnllYXJTdHJpbmd9LSR7dC5tb250aFN0cmluZ30tJHt0LmRheVN0cmluZ31gfWV4cG9ydFRvVW5pdHMoKXtsZXQgdD1bIkphbnVhcnkiLCJGZWJydWFyeSIsIk1hcmNoIiwiQXByaWwiLCJNYXkiLCJKdW5lIiwiSnVseSIsIkF1Z3VzdCIsIlNlcHRlbWJlciIsIk9jdG9iZXIiLCJOb3ZlbWJlciIsIkRlY2VtYmVyIl0scj1bIk1vbmRheSIsIlR1ZXNkYXkiLCJXZWRuZXNkYXkiLCJUaHVyc2RheSIsIkZyaWRheSIsIlNhdHVyZGF5IiwiU3VuZGF5Il07cmV0dXJue3llYXI6dGhpcy5nZXRGdWxsWWVhcigpLHllYXJTdHJpbmc6YCR7dGhpcy5nZXRGdWxsWWVhcigpfWAsbW9udGg6dGhpcy5nZXRNb250aCgpKzEsbW9udGhTdHJpbmc6KCIwIisodGhpcy5nZXRNb250aCgpKzEpKS5zbGljZSgtMiksbW9udGhOYW1lOnRbdGhpcy5nZXRNb250aCgpXSxkYXk6dGhpcy5nZXREYXRlKCksZGF5U3RyaW5nOigiMCIrdGhpcy5nZXREYXRlKCkpLnNsaWNlKC0yKSxkYXlPZlRoZVdlZWs6dGhpcy5nZXREYXkoKSxkYXlPZlRoZVdlZWtOYW1lOnJbdGhpcy5nZXREYXkoKV19fWZvcm1hdCh0KXtyZXR1cm4gejMuZGVmYXVsdCh0aGlzLmdldFRpbWUoKSkuZm9ybWF0KHQpfWlzVG9kYXkoKXtyZXR1cm4gejMuZGVmYXVsdCh0aGlzLmdldFRpbWUoKSkuaXNUb2RheSgpfWxlc3NUaW1lUGFzc2VkVG9Ob3codCl7bGV0IHI9WEgodCk7cmV0dXJuIERhdGUubm93KCktdGhpcy5nZXRUaW1lKCk8cn1tb3JlVGltZVBhc3NlZFRvTm93KHQpe3JldHVybiF0aGlzLmxlc3NUaW1lUGFzc2VkVG9Ob3codCl9fX0pO3ZhciBLSCxkYmU9cCgoKT0+e0tIPWNsYXNze2NvbnN0cnVjdG9yKCl7dGhpcy5uYW5vU2Vjb25kcz1udWxsLHRoaXMubWlsbGlTZWNvbmRzPW51bGwsdGhpcy5fbWlsbGlTdGFydD1udWxsLHRoaXMuX21pbGxpRGlmZj1udWxsLHRoaXMuX3N0YXJ0ZWQ9ITF9c3RhcnQoKXt0aGlzLl9zdGFydGVkPSEwLHRoaXMuX21pbGxpU3RhcnQ9RGF0ZS5ub3coKX1zdG9wKCl7aWYodGhpcy5fc3RhcnRlZD09PSExKXtjb25zb2xlLmxvZygiSGFzbid0IHN0YXJ0ZWQgeWV0Iik7cmV0dXJufXJldHVybiB0aGlzLl9taWxsaURpZmY9RGF0ZS5ub3coKS10aGlzLl9taWxsaVN0YXJ0LHRoaXMubmFub1NlY29uZHM9dGhpcy5fbWlsbGlEaWZmKjFlMyx0aGlzLm1pbGxpU2Vjb25kcz10aGlzLl9taWxsaURpZmYsdGhpc31yZXNldCgpe3RoaXMubmFub1NlY29uZHM9bnVsbCx0aGlzLm1pbGxpU2Vjb25kcz1udWxsLHRoaXMuX21pbGxpU3RhcnQ9bnVsbCx0aGlzLl9taWxsaURpZmY9bnVsbCx0aGlzLl9zdGFydGVkPSExfX19KTt2YXIgZXEsdWJlPXAoKCk9PnthMCgpO2VxPWNsYXNze2NvbnN0cnVjdG9yKHQpe3RoaXMuc3RhdHVzPSJpbml0aWFsIix0aGlzLnN0YXR1c0F1dGhvcml6YXRpb249bnVsbCx0aGlzLmludGVydmFsSm9icz1bXSx0aGlzLmludGVydmFsTWlsbGlzZWNvbmRzPXR9c3RhcnQoKXt0aGlzLnN0YXR1cz0ic3RhcnRlZCI7bGV0IHQ9bmV3IERhdGU7dGhpcy5zdGF0dXNBdXRob3JpemF0aW9uPXQsKGFzeW5jKCk9Pntmb3IoO3RoaXMuc3RhdHVzPT09InN0YXJ0ZWQiJiZ0aGlzLnN0YXR1c0F1dGhvcml6YXRpb249PT10Oylhd2FpdCB6dC5kZWxheUZvcih0aGlzLmludGVydmFsTWlsbGlzZWNvbmRzKSx0aGlzLmV4ZWN1dGVJbnRlcnZhbEpvYnMoKX0pKCl9c3RvcCgpe3RoaXMuc3RhdHVzPSJzdG9wcGVkIix0aGlzLnN0YXR1c0F1dGhvcml6YXRpb249bnVsbH1hZGRJbnRlcnZhbEpvYih0KXt0aGlzLmludGVydmFsSm9icy5wdXNoKHQpfWV4ZWN1dGVJbnRlcnZhbEpvYnMoKXtmb3IobGV0IHQgb2YgdGhpcy5pbnRlcnZhbEpvYnMpdCgpfX19KTt2YXIgRzUsdHE9cCgoKT0+e2EwKCk7RzU9Y2xhc3MgZXtzdGF0aWMgZnJvbU1pbGxpU2Vjb25kcyh0KXtyZXR1cm4gbmV3IGUodCl9c3RhdGljIGZyb21UaW1lU3RhbXAodCl7bGV0IHI9bmV3IGU7cmV0dXJuIHIuY2hhbmdlPXIubWlsbGlTZWNvbmRzLXQubWlsbGlTZWNvbmRzLHJ9Y29uc3RydWN0b3IodCl7dGhpcy5jaGFuZ2U9bnVsbCx0P3R5cGVvZiB0PT0ibnVtYmVyIiYmKHRoaXMuZGF0ZT1uZXcgRGF0ZSh0KSk6dGhpcy5kYXRlPW5ldyBEYXRlLHRoaXMubWlsbGlTZWNvbmRzPXRoaXMuZGF0ZS5nZXRUaW1lKCksdGhpcy5lcG9jaHRpbWU9TWF0aC5mbG9vcih0aGlzLm1pbGxpU2Vjb25kcy8xZTMpfWlzT2xkZXJUaGFuT3RoZXJUaW1lU3RhbXAodCxyPTApe3JldHVybiB0aGlzLm1pbGxpU2Vjb25kczx0Lm1pbGxpU2Vjb25kcy1yfWlzT2xkZXJUaGFuKHQscj0wKXtyZXR1cm4gdGhpcy5taWxsaVNlY29uZHMrcjx0Lm1pbGxpU2Vjb25kc31pc1lvdW5nZXJUaGFuT3RoZXJUaW1lU3RhbXAodCxyPTApe3JldHVybiB0aGlzLm1pbGxpU2Vjb25kcz50Lm1pbGxpU2Vjb25kcytyfWlzWW91bmdlclRoYW5NaWxsaVNlY29uZHModCl7bGV0IGk9bmV3IGUoKS5lcG9jaHRpbWUtdCxhPW5ldyBlKGkpO3JldHVybiB0aGlzLmlzWW91bmdlclRoYW5PdGhlclRpbWVTdGFtcChhKX19fSk7dmFyIHJxLHBiZT1wKCgpPT57YTAoKTt0cSgpO3JxPWNsYXNze2dldCB0aW1lTGVmdCgpe3JldHVybiB0aGlzLnRpbWVJbk1pbGxpc2Vjb25kcy10aGlzLnBhdXNlZEF0LmNoYW5nZX1jb25zdHJ1Y3Rvcih0KXt0aGlzLnN0YXRlPSJpbml0aWF0ZWQiLHRoaXMuY29tcGxldGVkRGVmZXJyZWQ9S2UuZGVmZXIoKSx0aGlzLnRpbWVJbk1pbGxpc2Vjb25kcz10LHRoaXMuY29tcGxldGVkPXRoaXMuY29tcGxldGVkRGVmZXJyZWQucHJvbWlzZX1zdGFydCgpe2lmKCF0aGlzLnN0YXJ0ZWRBdCl0aGlzLmN1cnJlbnRUaW1lb3V0PXNldFRpbWVvdXQoKCk9Pnt0aGlzLmNvbXBsZXRlZERlZmVycmVkLnJlc29sdmUoKX0sdGhpcy50aW1lSW5NaWxsaXNlY29uZHMpLHRoaXMuc3RhcnRlZEF0PW5ldyBHNTtlbHNlIHRocm93IG5ldyBFcnJvcigidGltZXIgaGFzIGJlZW4gc3RhcnRlZCBiZWZvcmUuIFBsZWFzZSB1c2UgcmVzdW1lIGluc3RlYWQiKX1wYXVzZSgpe3RoaXMuc3RhcnRlZEF0JiYoY2xlYXJUaW1lb3V0KHRoaXMuY3VycmVudFRpbWVvdXQpLHRoaXMuY3VycmVudFRpbWVvdXQ9bnVsbCx0aGlzLnBhdXNlZEF0PUc1LmZyb21UaW1lU3RhbXAodGhpcy5zdGFydGVkQXQpKX1yZXN1bWUoKXtpZih0aGlzLnN0YXJ0ZWRBdCl0aGlzLmN1cnJlbnRUaW1lb3V0PXNldFRpbWVvdXQoKCk9Pnt0aGlzLmNvbXBsZXRlZERlZmVycmVkLnJlc29sdmUoKX0sdGhpcy50aW1lTGVmdCk7ZWxzZSB0aHJvdyBuZXcgRXJyb3IoInRpbWVyIGhhcyBOT1QgYmVlbiBzdGFydGVkIGJlZm9yZS4gUGxlYXNlIHVzZSAuc3RhcnQoKSBpbnN0ZWFkIil9cmVzZXQoKXt0aGlzLnBhdXNlKCksdGhpcy5zdGFydGVkQXQ9bnVsbCx0aGlzLnBhdXNlZEF0PW51bGx9fX0pO3ZhciBNbD17fTtGZShNbCx7Q3JvbkpvYjooKT0+TGYsQ3Jvbk1hbmFnZXI6KCk9PlpILEV4dGVuZGVkRGF0ZTooKT0+SkgsSHJ0TWVhc3VyZW1lbnQ6KCk9PktILEludGVydmFsOigpPT5lcSxUaW1lU3RhbXA6KCk9Pkc1LFRpbWVyOigpPT5ycSxnZXRNaWxsaVNlY29uZHNBc0h1bWFuUmVhZGFibGVBZ29UaW1lOigpPT5HN3IsZ2V0TWlsbGlTZWNvbmRzQXNIdW1hblJlYWRhYmxlU3RyaW5nOigpPT5XN3IsZ2V0TWlsbGlTZWNvbmRzRnJvbVVuaXRzOigpPT5YSCx1bml0czooKT0+bjB9KTt2YXIgaXE9cCgoKT0+e1lIKCk7R0goKTtjYmUoKTtkYmUoKTt1YmUoKTtwYmUoKTt0cSgpO1FIKCl9KTt2YXIgZmJlPWplKChSXzEsaGJlKT0+eyJ1c2Ugc3RyaWN0IjtoYmUuZXhwb3J0cz1jbGFzc3tjb25zdHJ1Y3Rvcigpe3RoaXMucGFyZW50PW51bGwsdGhpcy5wcmV2aW91c1NpYmxpbmc9bnVsbCx0aGlzLm5leHRTaWJsaW5nPW51bGwsdGhpcy5maXJzdENoaWxkPW51bGwsdGhpcy5sYXN0Q2hpbGQ9bnVsbCx0aGlzLmNoaWxkcmVuVmVyc2lvbj0wLHRoaXMuY2hpbGRJbmRleENhY2hlZFVwVG89bnVsbCx0aGlzLmNhY2hlZEluZGV4PS0xLHRoaXMuY2FjaGVkSW5kZXhWZXJzaW9uPU5hTn1nZXQgaXNBdHRhY2hlZCgpe3JldHVybiEhKHRoaXMucGFyZW50fHx0aGlzLnByZXZpb3VzU2libGluZ3x8dGhpcy5uZXh0U2libGluZyl9Z2V0IGhhc0NoaWxkcmVuKCl7cmV0dXJuISF0aGlzLmZpcnN0Q2hpbGR9Y2hpbGRyZW5DaGFuZ2VkKCl7dGhpcy5jaGlsZHJlblZlcnNpb249dGhpcy5jaGlsZHJlblZlcnNpb24rMSY0Mjk0OTY3Mjk1LHRoaXMuY2hpbGRJbmRleENhY2hlZFVwVG89bnVsbH1nZXRDYWNoZWRJbmRleCh0KXtyZXR1cm4gdGhpcy5jYWNoZWRJbmRleFZlcnNpb24hPT10LmNoaWxkcmVuVmVyc2lvbj8odGhpcy5jYWNoZWRJbmRleFZlcnNpb249TmFOLC0xKTp0aGlzLmNhY2hlZEluZGV4fXNldENhY2hlZEluZGV4KHQscil7dGhpcy5jYWNoZWRJbmRleFZlcnNpb249dC5jaGlsZHJlblZlcnNpb24sdGhpcy5jYWNoZWRJbmRleD1yfX19KTt2YXIgZ2JlPWplKChCXzEsbWJlKT0+eyJ1c2Ugc3RyaWN0IjttYmUuZXhwb3J0cz1PYmplY3QuZnJlZXplKHtESVNDT05ORUNURUQ6MSxQUkVDRURJTkc6MixGT0xMT1dJTkc6NCxDT05UQUlOUzo4LENPTlRBSU5FRF9CWToxNn0pfSk7dmFyIHdiZT1qZSgoSF8xLHliZSk9PnsidXNlIHN0cmljdCI7dmFyIGJiZT1TeW1ib2woKSx2YmU9U3ltYm9sKCksbzA9U3ltYm9sKCkseGJlPVN5bWJvbCgpLGkyPWNsYXNze2NvbnN0cnVjdG9yKHQscixpLGEpe3RoaXNbYmJlXT10LHRoaXNbdmJlXT1yLHRoaXNbbzBdPWksdGhpc1t4YmVdPWF9bmV4dCgpe2xldCB0PXRoaXNbYmJlXSxyPXRoaXNbeGJlXSxpPXRoaXNbdmJlXTtpZighdGhpc1tvMF0pcmV0dXJue2RvbmU6ITAsdmFsdWU6aX07bGV0IGE9dGhpc1tvMF07cmV0dXJuIHI9PT0xP3RoaXNbbzBdPXQuX25vZGUoYSkucHJldmlvdXNTaWJsaW5nOnI9PT0yP3RoaXNbbzBdPXQuX25vZGUoYSkubmV4dFNpYmxpbmc6cj09PTM/dGhpc1tvMF09dC5fbm9kZShhKS5wYXJlbnQ6cj09PTQ/dGhpc1tvMF09dC5wcmVjZWRpbmcoYSx7cm9vdDppfSk6dGhpc1tvMF09dC5mb2xsb3dpbmcoYSx7cm9vdDppfSkse2RvbmU6ITEsdmFsdWU6YX19fTtPYmplY3QuZGVmaW5lUHJvcGVydHkoaTIucHJvdG90eXBlLFN5bWJvbC5pdGVyYXRvcix7dmFsdWU6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpc30sd3JpdGFibGU6ITF9KSxpMi5QUkVWPTEsaTIuTkVYVD0yLGkyLlBBUkVOVD0zLGkyLlBSRUNFRElORz00LGkyLkZPTExPV0lORz01LE9iamVjdC5mcmVlemUoaTIpLE9iamVjdC5mcmVlemUoaTIucHJvdG90eXBlKSx5YmUuZXhwb3J0cz1pMn0pO3ZhciBucT1qZSgocV8xLE1iZSk9PnsidXNlIHN0cmljdCI7dmFyIFo3cj1mYmUoKSxzMD1nYmUoKSxjbz13YmUoKTtmdW5jdGlvbiBhcSgpe3JldHVybiEwfWZ1bmN0aW9uIFk1KGUsdCl7cmV0dXJuIGVbZS5sZW5ndGgtMS10XX12YXIgcHc9Y2xhc3N7Y29uc3RydWN0b3IodCl7dGhpcy5zeW1ib2w9U3ltYm9sKHR8fCJTeW1ib2xUcmVlIGRhdGEiKX1pbml0aWFsaXplKHQpe3JldHVybiB0aGlzLl9ub2RlKHQpLHR9X25vZGUodCl7aWYoIXQpcmV0dXJuIG51bGw7bGV0IHI9dFt0aGlzLnN5bWJvbF07cmV0dXJuIHJ8fCh0W3RoaXMuc3ltYm9sXT1uZXcgWjdyKX1oYXNDaGlsZHJlbih0KXtyZXR1cm4gdGhpcy5fbm9kZSh0KS5oYXNDaGlsZHJlbn1maXJzdENoaWxkKHQpe3JldHVybiB0aGlzLl9ub2RlKHQpLmZpcnN0Q2hpbGR9bGFzdENoaWxkKHQpe3JldHVybiB0aGlzLl9ub2RlKHQpLmxhc3RDaGlsZH1wcmV2aW91c1NpYmxpbmcodCl7cmV0dXJuIHRoaXMuX25vZGUodCkucHJldmlvdXNTaWJsaW5nfW5leHRTaWJsaW5nKHQpe3JldHVybiB0aGlzLl9ub2RlKHQpLm5leHRTaWJsaW5nfXBhcmVudCh0KXtyZXR1cm4gdGhpcy5fbm9kZSh0KS5wYXJlbnR9bGFzdEluY2x1c2l2ZURlc2NlbmRhbnQodCl7bGV0IHIsaT10O2Zvcig7cj10aGlzLl9ub2RlKGkpLmxhc3RDaGlsZDspaT1yO3JldHVybiBpfXByZWNlZGluZyh0LHIpe2xldCBpPXImJnIucm9vdDtpZih0PT09aSlyZXR1cm4gbnVsbDtsZXQgYT10aGlzLl9ub2RlKHQpLnByZXZpb3VzU2libGluZztyZXR1cm4gYT90aGlzLmxhc3RJbmNsdXNpdmVEZXNjZW5kYW50KGEpOnRoaXMuX25vZGUodCkucGFyZW50fWZvbGxvd2luZyh0LHIpe2xldCBpPXImJnIucm9vdCxuPSEociYmci5za2lwQ2hpbGRyZW4pJiZ0aGlzLl9ub2RlKHQpLmZpcnN0Q2hpbGQ7aWYobilyZXR1cm4gbjtsZXQgbz10O2Rve2lmKG89PT1pKXJldHVybiBudWxsO2xldCBzPXRoaXMuX25vZGUobykubmV4dFNpYmxpbmc7aWYocylyZXR1cm4gcztvPXRoaXMuX25vZGUobykucGFyZW50fXdoaWxlKG8pO3JldHVybiBudWxsfWNoaWxkcmVuVG9BcnJheSh0LHIpe2xldCBpPXImJnIuYXJyYXl8fFtdLGE9ciYmci5maWx0ZXJ8fGFxLG49ciYmci50aGlzQXJnfHx2b2lkIDAsbz10aGlzLl9ub2RlKHQpLHM9by5maXJzdENoaWxkLGw9MDtmb3IoO3M7KXtsZXQgYz10aGlzLl9ub2RlKHMpO2Muc2V0Q2FjaGVkSW5kZXgobyxsKSxhLmNhbGwobixzKSYmaS5wdXNoKHMpLHM9Yy5uZXh0U2libGluZywrK2x9cmV0dXJuIGl9YW5jZXN0b3JzVG9BcnJheSh0LHIpe2xldCBpPXImJnIuYXJyYXl8fFtdLGE9ciYmci5maWx0ZXJ8fGFxLG49ciYmci50aGlzQXJnfHx2b2lkIDAsbz10O2Zvcig7bzspYS5jYWxsKG4sbykmJmkucHVzaChvKSxvPXRoaXMuX25vZGUobykucGFyZW50O3JldHVybiBpfXRyZWVUb0FycmF5KHQscil7bGV0IGk9ciYmci5hcnJheXx8W10sYT1yJiZyLmZpbHRlcnx8YXEsbj1yJiZyLnRoaXNBcmd8fHZvaWQgMCxvPXQ7Zm9yKDtvOylhLmNhbGwobixvKSYmaS5wdXNoKG8pLG89dGhpcy5mb2xsb3dpbmcobyx7cm9vdDp0fSk7cmV0dXJuIGl9Y2hpbGRyZW5JdGVyYXRvcih0LHIpe2xldCBpPXImJnIucmV2ZXJzZSxhPXRoaXMuX25vZGUodCk7cmV0dXJuIG5ldyBjbyh0aGlzLHQsaT9hLmxhc3RDaGlsZDphLmZpcnN0Q2hpbGQsaT9jby5QUkVWOmNvLk5FWFQpfXByZXZpb3VzU2libGluZ3NJdGVyYXRvcih0KXtyZXR1cm4gbmV3IGNvKHRoaXMsdCx0aGlzLl9ub2RlKHQpLnByZXZpb3VzU2libGluZyxjby5QUkVWKX1uZXh0U2libGluZ3NJdGVyYXRvcih0KXtyZXR1cm4gbmV3IGNvKHRoaXMsdCx0aGlzLl9ub2RlKHQpLm5leHRTaWJsaW5nLGNvLk5FWFQpfWFuY2VzdG9yc0l0ZXJhdG9yKHQpe3JldHVybiBuZXcgY28odGhpcyx0LHQsY28uUEFSRU5UKX10cmVlSXRlcmF0b3IodCxyKXtsZXQgaT1yJiZyLnJldmVyc2U7cmV0dXJuIG5ldyBjbyh0aGlzLHQsaT90aGlzLmxhc3RJbmNsdXNpdmVEZXNjZW5kYW50KHQpOnQsaT9jby5QUkVDRURJTkc6Y28uRk9MTE9XSU5HKX1pbmRleCh0KXtsZXQgcj10aGlzLl9ub2RlKHQpLGk9dGhpcy5fbm9kZShyLnBhcmVudCk7aWYoIWkpcmV0dXJuLTE7bGV0IGE9ci5nZXRDYWNoZWRJbmRleChpKTtpZihhPj0wKXJldHVybiBhO2E9MDtsZXQgbj1pLmZpcnN0Q2hpbGQ7aWYoaS5jaGlsZEluZGV4Q2FjaGVkVXBUbyl7bGV0IG89dGhpcy5fbm9kZShpLmNoaWxkSW5kZXhDYWNoZWRVcFRvKTtuPW8ubmV4dFNpYmxpbmcsYT1vLmdldENhY2hlZEluZGV4KGkpKzF9Zm9yKDtuOyl7bGV0IG89dGhpcy5fbm9kZShuKTtpZihvLnNldENhY2hlZEluZGV4KGksYSksbj09PXQpYnJlYWs7KythLG49by5uZXh0U2libGluZ31yZXR1cm4gaS5jaGlsZEluZGV4Q2FjaGVkVXBUbz10LGF9Y2hpbGRyZW5Db3VudCh0KXtsZXQgcj10aGlzLl9ub2RlKHQpO3JldHVybiByLmxhc3RDaGlsZD90aGlzLmluZGV4KHIubGFzdENoaWxkKSsxOjB9Y29tcGFyZVRyZWVQb3NpdGlvbih0LHIpe2lmKHQ9PT1yKXJldHVybiAwO2xldCBpPVtdO3tsZXQgdT10O2Zvcig7dTspe2lmKHU9PT1yKXJldHVybiBzMC5DT05UQUlOU3xzMC5QUkVDRURJTkc7aS5wdXNoKHUpLHU9dGhpcy5wYXJlbnQodSl9fWxldCBhPVtdO3tsZXQgdT1yO2Zvcig7dTspe2lmKHU9PT10KXJldHVybiBzMC5DT05UQUlORURfQll8czAuRk9MTE9XSU5HO2EucHVzaCh1KSx1PXRoaXMucGFyZW50KHUpfX1sZXQgbj1ZNShpLDApO2lmKCFufHxuIT09WTUoYSwwKSlyZXR1cm4gczAuRElTQ09OTkVDVEVEO2xldCBvPTAscz1NYXRoLm1pbihpLmxlbmd0aCxhLmxlbmd0aCk7Zm9yKGxldCB1PTA7dTxzOysrdSl7bGV0IGQ9WTUoaSx1KSxoPVk1KGEsdSk7aWYoZCE9PWgpYnJlYWs7bz11fWxldCBsPXRoaXMuaW5kZXgoWTUoaSxvKzEpKTtyZXR1cm4gdGhpcy5pbmRleChZNShhLG8rMSkpPGw/czAuUFJFQ0VESU5HOnMwLkZPTExPV0lOR31yZW1vdmUodCl7bGV0IHI9dGhpcy5fbm9kZSh0KSxpPXRoaXMuX25vZGUoci5wYXJlbnQpLGE9dGhpcy5fbm9kZShyLnByZXZpb3VzU2libGluZyksbj10aGlzLl9ub2RlKHIubmV4dFNpYmxpbmcpO3JldHVybiBpJiYoaS5maXJzdENoaWxkPT09dCYmKGkuZmlyc3RDaGlsZD1yLm5leHRTaWJsaW5nKSxpLmxhc3RDaGlsZD09PXQmJihpLmxhc3RDaGlsZD1yLnByZXZpb3VzU2libGluZykpLGEmJihhLm5leHRTaWJsaW5nPXIubmV4dFNpYmxpbmcpLG4mJihuLnByZXZpb3VzU2libGluZz1yLnByZXZpb3VzU2libGluZyksci5wYXJlbnQ9bnVsbCxyLnByZXZpb3VzU2libGluZz1udWxsLHIubmV4dFNpYmxpbmc9bnVsbCxyLmNhY2hlZEluZGV4PS0xLHIuY2FjaGVkSW5kZXhWZXJzaW9uPU5hTixpJiZpLmNoaWxkcmVuQ2hhbmdlZCgpLHR9aW5zZXJ0QmVmb3JlKHQscil7bGV0IGk9dGhpcy5fbm9kZSh0KSxhPXRoaXMuX25vZGUoaS5wcmV2aW91c1NpYmxpbmcpLG49dGhpcy5fbm9kZShyKSxvPXRoaXMuX25vZGUoaS5wYXJlbnQpO2lmKG4uaXNBdHRhY2hlZCl0aHJvdyBFcnJvcigiR2l2ZW4gb2JqZWN0IGlzIGFscmVhZHkgcHJlc2VudCBpbiB0aGlzIFN5bWJvbFRyZWUsIHJlbW92ZSBpdCBmaXJzdCIpO3JldHVybiBuLnBhcmVudD1pLnBhcmVudCxuLnByZXZpb3VzU2libGluZz1pLnByZXZpb3VzU2libGluZyxuLm5leHRTaWJsaW5nPXQsaS5wcmV2aW91c1NpYmxpbmc9cixhJiYoYS5uZXh0U2libGluZz1yKSxvJiZvLmZpcnN0Q2hpbGQ9PT10JiYoby5maXJzdENoaWxkPXIpLG8mJm8uY2hpbGRyZW5DaGFuZ2VkKCkscn1pbnNlcnRBZnRlcih0LHIpe2xldCBpPXRoaXMuX25vZGUodCksYT10aGlzLl9ub2RlKGkubmV4dFNpYmxpbmcpLG49dGhpcy5fbm9kZShyKSxvPXRoaXMuX25vZGUoaS5wYXJlbnQpO2lmKG4uaXNBdHRhY2hlZCl0aHJvdyBFcnJvcigiR2l2ZW4gb2JqZWN0IGlzIGFscmVhZHkgcHJlc2VudCBpbiB0aGlzIFN5bWJvbFRyZWUsIHJlbW92ZSBpdCBmaXJzdCIpO3JldHVybiBuLnBhcmVudD1pLnBhcmVudCxuLnByZXZpb3VzU2libGluZz10LG4ubmV4dFNpYmxpbmc9aS5uZXh0U2libGluZyxpLm5leHRTaWJsaW5nPXIsYSYmKGEucHJldmlvdXNTaWJsaW5nPXIpLG8mJm8ubGFzdENoaWxkPT09dCYmKG8ubGFzdENoaWxkPXIpLG8mJm8uY2hpbGRyZW5DaGFuZ2VkKCkscn1wcmVwZW5kQ2hpbGQodCxyKXtsZXQgaT10aGlzLl9ub2RlKHQpLGE9dGhpcy5fbm9kZShyKTtpZihhLmlzQXR0YWNoZWQpdGhyb3cgRXJyb3IoIkdpdmVuIG9iamVjdCBpcyBhbHJlYWR5IHByZXNlbnQgaW4gdGhpcyBTeW1ib2xUcmVlLCByZW1vdmUgaXQgZmlyc3QiKTtyZXR1cm4gaS5oYXNDaGlsZHJlbj90aGlzLmluc2VydEJlZm9yZShpLmZpcnN0Q2hpbGQscik6KGEucGFyZW50PXQsaS5maXJzdENoaWxkPXIsaS5sYXN0Q2hpbGQ9cixpLmNoaWxkcmVuQ2hhbmdlZCgpKSxyfWFwcGVuZENoaWxkKHQscil7bGV0IGk9dGhpcy5fbm9kZSh0KSxhPXRoaXMuX25vZGUocik7aWYoYS5pc0F0dGFjaGVkKXRocm93IEVycm9yKCJHaXZlbiBvYmplY3QgaXMgYWxyZWFkeSBwcmVzZW50IGluIHRoaXMgU3ltYm9sVHJlZSwgcmVtb3ZlIGl0IGZpcnN0Iik7cmV0dXJuIGkuaGFzQ2hpbGRyZW4/dGhpcy5pbnNlcnRBZnRlcihpLmxhc3RDaGlsZCxyKTooYS5wYXJlbnQ9dCxpLmZpcnN0Q2hpbGQ9cixpLmxhc3RDaGlsZD1yLGkuY2hpbGRyZW5DaGFuZ2VkKCkpLHJ9fTtNYmUuZXhwb3J0cz1wdyxwdy5UcmVlUG9zaXRpb249czB9KTt2YXIgaHcsdW89cCgoKT0+e1kyKCk7SUIoKTtzYSgpO3QyKCk7aXEoKTtodz1lcihucSgpLDEpfSk7dmFyIG9xLGtiZT1wKCgpPT57dW8oKTtvcT1jbGFzc3tjb25zdHJ1Y3Rvcigpe3RoaXMuZXhlY3V0aW9uU2xvdHM9W10sdGhpcy5pc1Byb2Nlc3Npbmc9ITEsdGhpcy5ub25FeGNsdXNpdmVNYXhDb25jdXJyZW5jeT0xLzAsdGhpcy5ub25FeGNsdXNpdmVDdXJyZW50Q291bnQ9MCx0aGlzLm5vbkV4Y2x1c2l2ZVBlbmRpbmdRdWV1ZT1bXX1hc3luYyBnZXRFeGNsdXNpdmVFeGVjdXRpb25TbG90KHQscil7bGV0IGk9S2UuZGVmZXIoKSxhPXtmdW5jVG9FeGVjdXRlOnQsZXhlY3V0aW9uRGVmZXJyZWQ6aSx0aW1lb3V0OnIsbW9kZToiZXhjbHVzaXZlIn07cmV0dXJuIHRoaXMuZXhlY3V0aW9uU2xvdHMucHVzaChhKSx0aGlzLnByb2Nlc3NFeGVjdXRpb25TbG90cygpLGkucHJvbWlzZX1hc3luYyBnZXROb25FeGNsdXNpdmVFeGVjdXRpb25TbG90KHQscil7bGV0IGk9S2UuZGVmZXIoKSxhPXtmdW5jVG9FeGVjdXRlOnQsZXhlY3V0aW9uRGVmZXJyZWQ6aSx0aW1lb3V0OnIsbW9kZToibm9uZXhjbHVzaXZlIn07cmV0dXJuIHRoaXMuZXhlY3V0aW9uU2xvdHMucHVzaChhKSx0aGlzLnByb2Nlc3NFeGVjdXRpb25TbG90cygpLGkucHJvbWlzZX1zZXROb25FeGNsdXNpdmVNYXhDb25jdXJyZW5jeSh0KXtpZighTnVtYmVyLmlzRmluaXRlKHQpfHx0PDEpdGhyb3cgbmV3IEVycm9yKCJub25FeGNsdXNpdmVNYXhDb25jdXJyZW5jeSBtdXN0IGJlIGEgZmluaXRlIG51bWJlciA+PSAxIik7dGhpcy5ub25FeGNsdXNpdmVNYXhDb25jdXJyZW5jeT10fWdldE5vbkV4Y2x1c2l2ZU1heENvbmN1cnJlbmN5KCl7cmV0dXJuIHRoaXMubm9uRXhjbHVzaXZlTWF4Q29uY3VycmVuY3l9Z2V0QWN0aXZlTm9uRXhjbHVzaXZlQ291bnQoKXtyZXR1cm4gdGhpcy5ub25FeGNsdXNpdmVDdXJyZW50Q291bnR9Z2V0UGVuZGluZ05vbkV4Y2x1c2l2ZUNvdW50KCl7cmV0dXJuIHRoaXMubm9uRXhjbHVzaXZlUGVuZGluZ1F1ZXVlLmxlbmd0aH1hc3luYyBwcm9jZXNzRXhlY3V0aW9uU2xvdHMoKXtpZighdGhpcy5pc1Byb2Nlc3Npbmcpe2Zvcih0aGlzLmlzUHJvY2Vzc2luZz0hMDt0aGlzLmV4ZWN1dGlvblNsb3RzLmxlbmd0aD4wOyl7bGV0IHQ9dGhpcy5leGVjdXRpb25TbG90c1swXTtpZih0Lm1vZGU9PT0iZXhjbHVzaXZlIilhd2FpdCB0aGlzLmV4ZWN1dGVFeGNsdXNpdmVTbG90KHQpLHRoaXMuZXhlY3V0aW9uU2xvdHMuc2hpZnQoKTtlbHNle2xldCByPVtdO2Zvcig7dGhpcy5leGVjdXRpb25TbG90cy5sZW5ndGg+MCYmdGhpcy5leGVjdXRpb25TbG90c1swXS5tb2RlPT09Im5vbmV4Y2x1c2l2ZSI7KXIucHVzaCh0aGlzLmV4ZWN1dGlvblNsb3RzLnNoaWZ0KCkpO2F3YWl0IHRoaXMuZXhlY3V0ZU5vbkV4Y2x1c2l2ZVNsb3RzKHIpfX10aGlzLmlzUHJvY2Vzc2luZz0hMX19YXN5bmMgZXhlY3V0ZUV4Y2x1c2l2ZVNsb3QodCl7dHJ5e2lmKHQudGltZW91dCl7bGV0IHI9YXdhaXQgUHJvbWlzZS5yYWNlKFt0LmZ1bmNUb0V4ZWN1dGUoKSx6dC5kZWxheUZvcih0LnRpbWVvdXQpLnRoZW4oKCk9Pnt0aHJvdyBuZXcgRXJyb3IoIlRpbWVvdXQgcmVhY2hlZCIpfSldKTt0LmV4ZWN1dGlvbkRlZmVycmVkLnJlc29sdmUocil9ZWxzZXtsZXQgcj1hd2FpdCB0LmZ1bmNUb0V4ZWN1dGUoKTt0LmV4ZWN1dGlvbkRlZmVycmVkLnJlc29sdmUocil9fWNhdGNoKHIpe3QuZXhlY3V0aW9uRGVmZXJyZWQucmVqZWN0KHIpfX1hc3luYyBleGVjdXRlTm9uRXhjbHVzaXZlU2xvdHModCl7bGV0IHI9dC5tYXAoYXN5bmMgaT0+e2F3YWl0IHRoaXMud2FpdEZvck5vbkV4Y2x1c2l2ZVNsb3QoKTt0cnl7aWYoaS50aW1lb3V0KXtsZXQgYT1hd2FpdCBQcm9taXNlLnJhY2UoW2kuZnVuY1RvRXhlY3V0ZSgpLHp0LmRlbGF5Rm9yKGkudGltZW91dCkudGhlbigoKT0+e3Rocm93IG5ldyBFcnJvcigiVGltZW91dCByZWFjaGVkIil9KV0pO2kuZXhlY3V0aW9uRGVmZXJyZWQucmVzb2x2ZShhKX1lbHNle2xldCBhPWF3YWl0IGkuZnVuY1RvRXhlY3V0ZSgpO2kuZXhlY3V0aW9uRGVmZXJyZWQucmVzb2x2ZShhKX19Y2F0Y2goYSl7aS5leGVjdXRpb25EZWZlcnJlZC5yZWplY3QoYSl9ZmluYWxseXt0aGlzLnJlbGVhc2VOb25FeGNsdXNpdmVTbG90KCl9fSk7YXdhaXQgUHJvbWlzZS5hbGwocil9d2FpdEZvck5vbkV4Y2x1c2l2ZVNsb3QoKXtyZXR1cm4gdGhpcy5ub25FeGNsdXNpdmVDdXJyZW50Q291bnQ8dGhpcy5ub25FeGNsdXNpdmVNYXhDb25jdXJyZW5jeT8odGhpcy5ub25FeGNsdXNpdmVDdXJyZW50Q291bnQrKyxQcm9taXNlLnJlc29sdmUoKSk6bmV3IFByb21pc2UodD0+e3RoaXMubm9uRXhjbHVzaXZlUGVuZGluZ1F1ZXVlLnB1c2goKCk9Pnt0aGlzLm5vbkV4Y2x1c2l2ZUN1cnJlbnRDb3VudCsrLHQoKX0pfSl9cmVsZWFzZU5vbkV4Y2x1c2l2ZVNsb3QoKXt0aGlzLm5vbkV4Y2x1c2l2ZUN1cnJlbnRDb3VudC0tO2xldCB0PXRoaXMubm9uRXhjbHVzaXZlUGVuZGluZ1F1ZXVlLnNoaWZ0KCk7dCYmdCgpfX19KTt2YXIgc3EsU2JlPXAoKCk9Pnt1bygpO3NxPWNsYXNze2NvbnN0cnVjdG9yKHQ9MTYpe3RoaXMuaGFzU3BhY2U9bmV3IGlyLnJ4anMuU3ViamVjdCx0aGlzLml0ZW1zQXZhaWxhYmxlPW5ldyBpci5yeGpzLlN1YmplY3QsdGhpcy5kYXRhPVtdLHRoaXMuaGlnaFdhdGVyTWFyaz10fXB1c2godCl7dGhpcy5kYXRhLnB1c2godCksdGhpcy5pdGVtc0F2YWlsYWJsZS5uZXh0KCJpdGVtc0F2YWlsYWJsZSIpO2xldCByPXRoaXMuY2hlY2tTcGFjZUF2YWlsYWJsZSgpO3JldHVybiByJiZ0aGlzLmhhc1NwYWNlLm5leHQoImhhc1NwYWNlIikscn1zaGlmdCgpe2xldCB0PXRoaXMuZGF0YS5zaGlmdCgpO3JldHVybiB0aGlzLmNoZWNrU3BhY2VBdmFpbGFibGUoKSYmdGhpcy5oYXNTcGFjZS5uZXh0KCJoYXNTcGFjZSIpLHR9Y2hlY2tTcGFjZUF2YWlsYWJsZSgpe3JldHVybiB0aGlzLmRhdGEubGVuZ3RoPHRoaXMuaGlnaFdhdGVyTWFya31jaGVja0hhc0l0ZW1zKCl7cmV0dXJuIHRoaXMuZGF0YS5sZW5ndGg+MH13YWl0Rm9yU3BhY2UoKXtyZXR1cm4gbmV3IFByb21pc2UodD0+e2lmKHRoaXMuY2hlY2tTcGFjZUF2YWlsYWJsZSgpKXQoKTtlbHNle2xldCByPXRoaXMuaGFzU3BhY2Uuc3Vic2NyaWJlKCgpPT57ci51bnN1YnNjcmliZSgpLHQoKX0pfX0pfXdhaXRGb3JJdGVtcygpe3JldHVybiBuZXcgUHJvbWlzZSh0PT57aWYodGhpcy5kYXRhLmxlbmd0aD4wKXQoKTtlbHNle2xldCByPXRoaXMuaXRlbXNBdmFpbGFibGUuc3Vic2NyaWJlKCgpPT57ci51bnN1YnNjcmliZSgpLHQoKX0pfX0pfX19KTt2YXIgQWYsbHE9cCgoKT0+e3VvKCk7QWY9Y2xhc3MgZXtjb25zdHJ1Y3Rvcigpe3RoaXMubWFwT2JqZWN0PXt9fWlzVW5pcXVlS2V5KHQpe3JldHVybiF0aGlzLm1hcE9iamVjdFt0XX1hZGRUb01hcCh0LHIsaSl7cmV0dXJuIHRoaXMuaXNVbmlxdWVLZXkodCl8fGkmJmkuZm9yY2U/KHRoaXMubWFwT2JqZWN0W3RdPXIsITApOiExfWdldEJ5S2V5KHQpe3JldHVybiB0aGlzLm1hcE9iamVjdFt0XX1yZW1vdmVGcm9tTWFwKHQpe2xldCByPXRoaXMuZ2V0QnlLZXkodCk7cmV0dXJuIGRlbGV0ZSB0aGlzLm1hcE9iamVjdFt0XSxyfWdldEtleXMoKXtsZXQgdD1bXTtmb3IobGV0IHIgaW4gdGhpcy5tYXBPYmplY3QpdGhpcy5tYXBPYmplY3Rbcl0mJnQucHVzaChyKTtyZXR1cm4gdH1jbGVhbigpe3RoaXMubWFwT2JqZWN0PXt9fWNvbmNhdCh0KXtsZXQgcj1uZXcgZTtmb3IobGV0IGkgb2YgdGhpcy5nZXRLZXlzKCkpci5hZGRUb01hcChpLHRoaXMuZ2V0QnlLZXkoaSkpO2ZvcihsZXQgaSBvZiB0LmdldEtleXMoKSlyLmFkZFRvTWFwKGksdC5nZXRCeUtleShpKSx7Zm9yY2U6ITB9KTtyZXR1cm4gcn1hZGRBbGxGcm9tT3RoZXIodCl7Zm9yKGxldCByIG9mIHQuZ2V0S2V5cygpKXRoaXMuYWRkVG9NYXAocix0LmdldEJ5S2V5KHIpLHtmb3JjZTohMH0pfWFzeW5jIGZpbmQodCl7Zm9yKGxldCByIG9mIHRoaXMuZ2V0S2V5cygpKXtsZXQgaT10aGlzLmdldEJ5S2V5KHIpO2lmKGF3YWl0IHQoaSkpcmV0dXJuIGl9fX19KTt2YXIgemJlLEMzLGZ3PXAoKCk9Pnt1bygpO2xxKCk7emJlPShlPSJ1bmkiKT0+YCR7ZX14eHh4eHh4eHh4eGAucmVwbGFjZSgvW3h5XS9nLHQ9PntsZXQgcj1NYXRoLnJhbmRvbSgpKjE2fDA7cmV0dXJuKHQ9PT0ieCI/cjpyJjN8OCkudG9TdHJpbmcoMTYpfSksQzM9Y2xhc3MgZXtjb25zdHJ1Y3Rvcigpe3RoaXMuZmFzdE1hcD1uZXcgQWYsdGhpcy5ldmVudFN1YmplY3Q9bmV3IGlyLnJ4anMuU3ViamVjdH1hZGRNYXBwZWRVbmlxdWUodCxyKXt0aGlzLmZhc3RNYXAuYWRkVG9NYXAodCxyKX1nZXRNYXBwZWRVbmlxdWUodCl7cmV0dXJuIHRoaXMuZmFzdE1hcC5nZXRCeUtleSh0KX1yZW1vdmVNYXBwZWRVbmlxdWUodCl7bGV0IHI9dGhpcy5nZXRNYXBwZWRVbmlxdWUodCl9YWRkKHQpe2ZvcihsZXQgaSBvZiB0aGlzLmZhc3RNYXAuZ2V0S2V5cygpKWlmKHRoaXMuZmFzdE1hcC5nZXRCeUtleShpKT09PXQpcmV0dXJuIGk7bGV0IHI9emJlKCJrZXkiKTtyZXR1cm4gdGhpcy5hZGRNYXBwZWRVbmlxdWUocix0KSx0aGlzLmV2ZW50U3ViamVjdC5uZXh0KHtvcGVyYXRpb246ImFkZCIscGF5bG9hZDp0fSkscn1hZGRBcnJheSh0KXtmb3IobGV0IHIgb2YgdCl0aGlzLmFkZChyKX1jaGVja0Zvck9iamVjdCh0KXtyZXR1cm4hIXRoaXMuZ2V0S2V5Rm9yT2JqZWN0KHQpfWdldEtleUZvck9iamVjdCh0KXtsZXQgcj1udWxsO2ZvcihsZXQgaSBvZiB0aGlzLmZhc3RNYXAuZ2V0S2V5cygpKWlmKCFyJiZ0aGlzLmZhc3RNYXAuZ2V0QnlLZXkoaSk9PT10KXI9aTtlbHNlIGNvbnRpbnVlO3JldHVybiByfWFzeW5jIGZpbmQodCl7cmV0dXJuIHRoaXMuZmFzdE1hcC5maW5kKHQpfWZpbmRTeW5jKHQpe2ZvcihsZXQgciBvZiB0aGlzLmZhc3RNYXAuZ2V0S2V5cygpKWlmKHQodGhpcy5mYXN0TWFwLmdldEJ5S2V5KHIpKSlyZXR1cm4gdGhpcy5nZXRNYXBwZWRVbmlxdWUocil9YXN5bmMgZmluZE9uZUFuZFJlbW92ZSh0KXtsZXQgcj1hd2FpdCB0aGlzLmZpbmQodCk7cmV0dXJuIHImJnRoaXMucmVtb3ZlKHIpLHJ9ZmluZE9uZUFuZFJlbW92ZVN5bmModCl7bGV0IHI9dGhpcy5maW5kU3luYyh0KTtyZXR1cm4gciYmdGhpcy5yZW1vdmUocikscn1hc3luYyBmb3JFYWNoKHQpe2ZvcihsZXQgciBvZiB0aGlzLmZhc3RNYXAuZ2V0S2V5cygpKWF3YWl0IHQodGhpcy5mYXN0TWFwLmdldEJ5S2V5KHIpKX1nZXRPbmVBbmRSZW1vdmUoKXtsZXQgdD10aGlzLmZhc3RNYXAuZ2V0S2V5cygpO2lmKHQubGVuZ3RoPT09MClyZXR1cm4gbnVsbDt7bGV0IHI9dFswXSxpPXRoaXMuZmFzdE1hcC5yZW1vdmVGcm9tTWFwKHIpO3JldHVybiB0aGlzLmV2ZW50U3ViamVjdC5uZXh0KHtvcGVyYXRpb246InJlbW92ZSIscGF5bG9hZDppfSksaX19Z2V0QXJyYXkoKXtsZXQgdD1bXTtmb3IobGV0IHIgb2YgdGhpcy5mYXN0TWFwLmdldEtleXMoKSl0LnB1c2godGhpcy5mYXN0TWFwLmdldEJ5S2V5KHIpKTtyZXR1cm4gdH1pc0VtcHR5KCl7cmV0dXJuIHRoaXMuZmFzdE1hcC5nZXRLZXlzKCkubGVuZ3RoPT09MH1yZW1vdmUodCl7aWYodGhpcy5jaGVja0Zvck9iamVjdCh0KSl7bGV0IHI9dGhpcy5nZXRLZXlGb3JPYmplY3QodCksaT10aGlzLmZhc3RNYXAucmVtb3ZlRnJvbU1hcChyKTtyZXR1cm4gdGhpcy5ldmVudFN1YmplY3QubmV4dCh7b3BlcmF0aW9uOiJyZW1vdmUiLHBheWxvYWQ6aX0pLGl9cmV0dXJuIG51bGx9d2lwZSgpe2ZvcihsZXQgdCBvZiB0aGlzLmZhc3RNYXAuZ2V0S2V5cygpKXRoaXMuZmFzdE1hcC5yZW1vdmVGcm9tTWFwKHQpfWNvbmNhdCh0KXtsZXQgcj1uZXcgZTtyZXR1cm4gci5mYXN0TWFwLmFkZEFsbEZyb21PdGhlcih0aGlzLmZhc3RNYXApLHIuZmFzdE1hcC5hZGRBbGxGcm9tT3RoZXIodC5mYXN0TWFwKSxyfWFkZEFsbEZyb21PdGhlcih0KXt0aGlzLmZhc3RNYXAuYWRkQWxsRnJvbU90aGVyKHQuZmFzdE1hcCl9fX0pO3ZhciBEZixjcT1wKCgpPT57dW8oKTtkcSgpO0RmPWNsYXNze2dldCBjb21wYXJpc29uU3RyaW5nKCl7cmV0dXJuIHRoaXMuY29tcGFyaXNvbkZ1bmModGhpcy5vcmlnaW5hbEludGVyZXN0KX1mdWxsZmlsbEludGVyZXN0KHQpe3RoaXMuaXNGdWxsZmlsbGVkPSEwLHRoaXMuZnVsbGZpbGxtZW50U3RvcmU9W10sdGhpcy5pbnRlcmVzdERlZmVycmVkLnJlc29sdmUodCl9Y29uc3RydWN0b3IodCxyLGksYSl7dGhpcy5kZXN0cnVjdGlvblRpbWVyPW5ldyBNbC5UaW1lcigxZTQpLHRoaXMuaXNGdWxsZmlsbGVkPSExLHRoaXMuZnVsbGZpbGxtZW50U3RvcmU9W10sdGhpcy5pbnRlcmVzdERlZmVycmVkPW5ldyBLZS5EZWZlcnJlZCx0aGlzLmludGVyZXN0RnVsbGZpbGxlZD10aGlzLmludGVyZXN0RGVmZXJyZWQucHJvbWlzZSx0aGlzLmludGVyZXN0TWFwUmVmPXQsdGhpcy5vcmlnaW5hbEludGVyZXN0PXIsdGhpcy5jb21wYXJpc29uRnVuYz1pLHRoaXMub3B0aW9ucz1hLHRoaXMuZGVzdHJ1Y3Rpb25UaW1lci5jb21wbGV0ZWQudGhlbigoKT0+e3RoaXMuZGVzdHJveSgpfSksdGhpcy5vcHRpb25zPy5tYXJrTG9zdEFmdGVyRGVmYXVsdCYmenQuZGVsYXlGb3IodGhpcy5vcHRpb25zLm1hcmtMb3N0QWZ0ZXJEZWZhdWx0KS50aGVuKHRoaXMubWFya0xvc3QpfWRlc3Ryb3koKXt0aGlzLmludGVyZXN0TWFwUmVmLnJlbW92ZUludGVyZXN0KHRoaXMpLCF0aGlzLmlzRnVsbGZpbGxlZCYmdGhpcy5vcHRpb25zLmRlZmF1bHRGdWxsZmlsbG1lbnQmJnRoaXMuZnVsbGZpbGxJbnRlcmVzdCh0aGlzLm9wdGlvbnMuZGVmYXVsdEZ1bGxmaWxsbWVudCl9bWFya0xvc3QoKXt0aGlzLmRlc3RydWN0aW9uVGltZXIuc3RhcnQoKX1yZW5ldygpe3RoaXMuZGVzdHJ1Y3Rpb25UaW1lci5yZXNldCgpfX19KTt2YXIgdXEsZHE9cCgoKT0+e3VvKCk7ZncoKTtjcSgpO3VxPWNsYXNze2NvbnN0cnVjdG9yKHQscj17fSl7dGhpcy5pbnRlcmVzdE9iamVjdE1hcD1uZXcgQzMsdGhpcy5pbnRlcmVzdE9ic2VydmFibGU9bmV3IGlyLk9ic2VydmFibGVJbnRha2UsdGhpcy5jb21wYXJpc29uRnVuYz10LHRoaXMub3B0aW9ucz1yfWFzeW5jIGFkZEludGVyZXN0KHQscil7bGV0IGk9dGhpcy5jb21wYXJpc29uRnVuYyh0KSxhLG49bmV3IERmKHRoaXMsdCx0aGlzLmNvbXBhcmlzb25GdW5jLHttYXJrTG9zdEFmdGVyRGVmYXVsdDp0aGlzLm9wdGlvbnMubWFya0xvc3RBZnRlckRlZmF1bHQsZGVmYXVsdEZ1bGxmaWxsbWVudDpyfSksbz0hMTtyZXR1cm4gYXdhaXQgdGhpcy5pbnRlcmVzdE9iamVjdE1hcC5mb3JFYWNoKHM9PnshbyYmcy5jb21wYXJpc29uU3RyaW5nPT09bi5jb21wYXJpc29uU3RyaW5nJiYoY29uc29sZS5sb2coImluZm8iLGBpbnRlcmVzdCBhbHJlYWR5IGV4aXN0cyBmb3IgJHtuLmNvbXBhcmlzb25TdHJpbmd9YCksbz0hMCxhPXMsYS5yZW5ldygpKX0pLGF8fChhPW4sdGhpcy5pbnRlcmVzdE9iamVjdE1hcC5hZGQoYSkpLHRoaXMuaW50ZXJlc3RPYnNlcnZhYmxlLnB1c2goYSksYX1yZW1vdmVJbnRlcmVzdCh0KXtsZXQgcj10aGlzLmludGVyZXN0T2JqZWN0TWFwLmZpbmRPbmVBbmRSZW1vdmVTeW5jKGk9PnQuY29tcGFyaXNvblN0cmluZz09PWkuY29tcGFyaXNvblN0cmluZyl9Y2hlY2tJbnRlcmVzdCh0KXtsZXQgcj10aGlzLmNvbXBhcmlzb25GdW5jKHQpO3JldHVybiB0aGlzLmNoZWNrSW50ZXJlc3RCeVN0cmluZyhyKX1jaGVja0ludGVyZXN0QnlTdHJpbmcodCl7cmV0dXJuISF0aGlzLmludGVyZXN0T2JqZWN0TWFwLmZpbmRTeW5jKGk9PmkuY29tcGFyaXNvblN0cmluZz09PXQpfWluZm9ybUxvc3RJbnRlcmVzdCh0KXtsZXQgcj10aGlzLmZpbmRJbnRlcmVzdCh0KTtyJiZyLm1hcmtMb3N0KCl9ZmluZEludGVyZXN0KHQpe2xldCByPXRoaXMuY29tcGFyaXNvbkZ1bmModCk7cmV0dXJuIHRoaXMuaW50ZXJlc3RPYmplY3RNYXAuZmluZFN5bmMoYT0+YS5jb21wYXJpc29uU3RyaW5nPT09cil9fX0pO3ZhciBwcSxDYmU9cCgoKT0+e3VvKCk7cHE9Y2xhc3N7Y29uc3RydWN0b3IodCl7dGhpcy5hcnJheT1bXSx0aGlzLmFycmF5TGltaXQ9dH1hZGRPbmUodCl7dGhpcy5hcnJheS51bnNoaWZ0KHQpLHRoaXMuYXJyYXkubGVuZ3RoPnRoaXMuYXJyYXlMaW1pdCYmKHRoaXMuYXJyYXkubGVuZ3RoPXRoaXMuYXJyYXlMaW1pdCl9YWRkTWFueSh0KXtmb3IobGV0IHIgb2YgdCl0aGlzLmFkZE9uZShyKX1zZXRMaW1pdCh0KXt0aGlzLmFycmF5TGltaXQ9dCx0aGlzLmFycmF5Lmxlbmd0aD50aGlzLmFycmF5TGltaXQmJih0aGlzLmFycmF5Lmxlbmd0aD10aGlzLmFycmF5TGltaXQpfWdldEF2ZXJhZ2UoKXtpZih0eXBlb2YgdGhpcy5hcnJheVswXT09Im51bWJlciIpe2xldCB0PTA7Zm9yKGxldCByIG9mIHRoaXMuYXJyYXkpdD10K3I7cmV0dXJuIHQvdGhpcy5hcnJheS5sZW5ndGh9ZWxzZSByZXR1cm4gbnVsbH19fSk7dmFyIGhxLFRiZT1wKCgpPT57dW8oKTtmdygpO2hxPWNsYXNze2NvbnN0cnVjdG9yKCl7dGhpcy5yZWZlcmVuY2VPYmplY3RNYXA9bmV3IEMzfWNoZWNrQW5kVHJhY2sodCl7cmV0dXJuIHRoaXMucmVmZXJlbmNlT2JqZWN0TWFwLmNoZWNrRm9yT2JqZWN0KHQpPyExOih0aGlzLnJlZmVyZW5jZU9iamVjdE1hcC5hZGQodCksITApfX19KTt2YXIgZnEsX2JlPXAoKCk9Pnt1bygpO2ZxPWNsYXNze2NvbnN0cnVjdG9yKCl7dGhpcy5fc3RyaW5nQXJyYXk9W10sdGhpcy5fdHJpZ2dlclVudGlsVHJ1ZUZ1bmN0aW9uQXJyYXk9W119YWRkU3RyaW5nKHQpe3RoaXMuX3N0cmluZ0FycmF5LnB1c2godCksdGhpcy5ub3RpZnlUcmlnZ2VyKCl9YWRkU3RyaW5nQXJyYXkodCl7Zm9yKGxldCByIG9mIHQpdGhpcy5hZGRTdHJpbmcocil9cmVtb3ZlU3RyaW5nKHQpe2ZvcihsZXQgciBpbiB0aGlzLl9zdHJpbmdBcnJheSl0aGlzLl9zdHJpbmdBcnJheVtyXT09PXQmJnRoaXMuX3N0cmluZ0FycmF5LnNwbGljZShwYXJzZUludChyKSwxKTt0aGlzLm5vdGlmeVRyaWdnZXIoKX13aXBlKCl7dGhpcy5fc3RyaW5nQXJyYXk9W10sdGhpcy5ub3RpZnlUcmlnZ2VyKCl9Y2hlY2tTdHJpbmcodCl7cmV0dXJuIHRoaXMuX3N0cmluZ0FycmF5LmluZGV4T2YodCkhPT0tMX1jaGVja01pbmltYXRjaCh0KXtsZXQgcj1uZXcgbWwuU21hcnRNYXRjaCh0KSxpPSExO2ZvcihsZXQgYSBvZiB0aGlzLl9zdHJpbmdBcnJheSlyLm1hdGNoKGEpJiYoaT0hMCk7cmV0dXJuIGl9Y2hlY2tJc0VtcHR5KCl7cmV0dXJuIHRoaXMuX3N0cmluZ0FycmF5Lmxlbmd0aD09PTB9Z2V0U3RyaW5nQXJyYXkoKXtsZXQgdD1bXTtmb3IobGV0IHIgb2YgdGhpcy5fc3RyaW5nQXJyYXkpdC5wdXNoKHIpO3JldHVybiB0fXJlZ2lzdGVyVW50aWxUcnVlKHQscil7bGV0IGk9S2UuZGVmZXIoKTtyZXR1cm4gdGhpcy5fdHJpZ2dlclVudGlsVHJ1ZUZ1bmN0aW9uQXJyYXkucHVzaCgoKT0+e2xldCBhPXQodGhpcy5nZXRTdHJpbmdBcnJheSgpKTtyZXR1cm4gYT09PSEwJiYociYmcigpLGkucmVzb2x2ZSgpKSxhfSksdGhpcy5ub3RpZnlUcmlnZ2VyKCksaS5wcm9taXNlfW5vdGlmeVRyaWdnZXIoKXtsZXQgdD10aGlzLl90cmlnZ2VyVW50aWxUcnVlRnVuY3Rpb25BcnJheS5maWx0ZXIocj0+IXIoKSk7dGhpcy5fdHJpZ2dlclVudGlsVHJ1ZUZ1bmN0aW9uQXJyYXk9dH19fSk7dmFyIG1xLExiZT1wKCgpPT57dW8oKTttcT1jbGFzc3tjb25zdHJ1Y3Rvcih0KXt0aGlzLnN0b3JhZ2VBcnJheT1bXSx0aGlzLm9wdGlvbnM9dH1jaGVja0FnZ3JlZ2F0aW9uU3RhdHVzKCl7bGV0IHQ9KCk9Pnt0aGlzLmFnZ3JlZ2F0aW9uVGltZXI9bmV3IE1sLlRpbWVyKHRoaXMub3B0aW9ucy5hZ2dyZWdhdGlvbkludGVydmFsSW5NaWxsaXMpLHRoaXMuYWdncmVnYXRpb25UaW1lci5jb21wbGV0ZWQudGhlbigoKT0+e2xldCByPXRoaXMuc3RvcmFnZUFycmF5O2lmKHIubGVuZ3RoPT09MCl7dGhpcy5hZ2dyZWdhdGlvblRpbWVyPW51bGw7cmV0dXJufXRoaXMuc3RvcmFnZUFycmF5PVtdLHQoKSx0aGlzLm9wdGlvbnMuZnVuY3Rpb25Gb3JBZ2dyZWdhdGlvbihyKX0pLHRoaXMuYWdncmVnYXRpb25UaW1lci5zdGFydCgpfTt0aGlzLmFnZ3JlZ2F0aW9uVGltZXJ8fHQoKX1hZGQodCl7dGhpcy5zdG9yYWdlQXJyYXkucHVzaCh0KSx0aGlzLmNoZWNrQWdncmVnYXRpb25TdGF0dXMoKX19fSk7dmFyIGdxLEFiZT1wKCgpPT57dW8oKTtncT1jbGFzc3tjb25zdHJ1Y3Rvcigpe3RoaXMuc3ltYm9sVHJlZT1uZXcgaHcuZGVmYXVsdH1pbml0aWFsaXplKHQpe3JldHVybiB0aGlzLnN5bWJvbFRyZWUuaW5pdGlhbGl6ZSh0KX1oYXNDaGlsZHJlbih0KXtyZXR1cm4gdGhpcy5zeW1ib2xUcmVlLmhhc0NoaWxkcmVuKHQpfWZpcnN0Q2hpbGQodCl7cmV0dXJuIHRoaXMuc3ltYm9sVHJlZS5maXJzdENoaWxkKHQpfWxhc3RDaGlsZCh0KXtyZXR1cm4gdGhpcy5zeW1ib2xUcmVlLmxhc3RDaGlsZCh0KX1wcmV2aW91c1NpYmxpbmcodCl7cmV0dXJuIHRoaXMuc3ltYm9sVHJlZS5wcmV2aW91c1NpYmxpbmcodCl9bmV4dFNpYmxpbmcodCl7cmV0dXJuIHRoaXMuc3ltYm9sVHJlZS5uZXh0U2libGluZyh0KX1wYXJlbnQodCl7cmV0dXJuIHRoaXMuc3ltYm9sVHJlZS5wYXJlbnQodCl9bGFzdEluY2x1c2l2ZURlc2NlbmRhbnQodCl7cmV0dXJuIHRoaXMuc3ltYm9sVHJlZS5sYXN0SW5jbHVzaXZlRGVzY2VuZGFudCh0KX1wcmVjZWRpbmcodCxyKXtyZXR1cm4gdGhpcy5zeW1ib2xUcmVlLnByZWNlZGluZyh0LHIpfWZvbGxvd2luZyh0LHIpe3JldHVybiB0aGlzLnN5bWJvbFRyZWUuZm9sbG93aW5nKHQscil9Y2hpbGRyZW5Ub0FycmF5KHQscil7cmV0dXJuIHRoaXMuc3ltYm9sVHJlZS5jaGlsZHJlblRvQXJyYXkodCxyKX1hbmNlc3RvcnNUb0FycmF5KHQscil7cmV0dXJuIHRoaXMuc3ltYm9sVHJlZS5hbmNlc3RvcnNUb0FycmF5KHQscil9dHJlZVRvQXJyYXkodCxyKXtyZXR1cm4gdGhpcy5zeW1ib2xUcmVlLnRyZWVUb0FycmF5KHQscil9Y2hpbGRyZW5JdGVyYXRvcih0LHIpe3JldHVybiB0aGlzLnN5bWJvbFRyZWUuY2hpbGRyZW5JdGVyYXRvcih0LHIpfXByZXZpb3VzU2libGluZ3NJdGVyYXRvcih0KXtyZXR1cm4gdGhpcy5zeW1ib2xUcmVlLnByZXZpb3VzU2libGluZ3NJdGVyYXRvcih0KX1uZXh0U2libGluZ3NJdGVyYXRvcih0KXtyZXR1cm4gdGhpcy5zeW1ib2xUcmVlLm5leHRTaWJsaW5nc0l0ZXJhdG9yKCl9YW5jZXN0b3JzSXRlcmF0b3IodCl7dGhpcy5zeW1ib2xUcmVlLmFuY2VzdG9yc0l0ZXJhdG9yKCl9dHJlZUl0ZXJhdG9yKHQscil7cmV0dXJuIHRoaXMuc3ltYm9sVHJlZS50cmVlSXRlcmF0b3IodCl9aW5kZXgodCl7cmV0dXJuIHRoaXMuc3ltYm9sVHJlZS5pbmRleCh0KX1jaGlsZHJlbkNvdW50KHQpe3JldHVybiB0aGlzLnN5bWJvbFRyZWUuY2hpbGRyZW5Db3VudCh0KX1jb21wYXJlVHJlZVBvc2l0aW9uKHQscil7cmV0dXJuIHRoaXMuY29tcGFyZVRyZWVQb3NpdGlvbih0LHIpfXJlbW92ZSh0KXtyZXR1cm4gdGhpcy5zeW1ib2xUcmVlLnJlbW92ZSh0KX1pbnNlcnRCZWZvcmUodCxyKXtyZXR1cm4gdGhpcy5zeW1ib2xUcmVlLmluc2VydEJlZm9yZSh0LHIpfWluc2VydEFmdGVyKHQscil7cmV0dXJuIHRoaXMuc3ltYm9sVHJlZS5pbnNlcnRBZnRlcih0LHIpfXByZXBlbmRDaGlsZCh0LHIpe3JldHVybiB0aGlzLnN5bWJvbFRyZWUucHJlcGVuZENoaWxkKHQscil9YXBwZW5kQ2hpbGQodCxyKXtyZXR1cm4gdGhpcy5zeW1ib2xUcmVlLmFwcGVuZENoaWxkKHQscil9dG9Kc29uV2l0aEhpZXJhY2h5KHQpe2xldCByPXRoaXMudHJlZUl0ZXJhdG9yKHQse30pO2ZvcihsZXQgaSBvZiByKWNvbnNvbGUubG9nKGkpfWZyb21Kc29uV2l0aEhpZXJhY2h5KHQpe319fSk7dmFyIGRpPXt9O0ZlKGRpLHtBc3luY0V4ZWN1dGlvblN0YWNrOigpPT5vcSxCYWNrcHJlc3N1cmVkQXJyYXk6KCk9PnNxLEZhc3RNYXA6KCk9PkFmLEludGVyZXN0OigpPT5EZixJbnRlcmVzdE1hcDooKT0+dXEsTGltaXRlZEFycmF5OigpPT5wcSxMb29wVHJhY2tlcjooKT0+aHEsT2JqZWN0TWFwOigpPT5DMyxTdHJpbmdtYXA6KCk9PmZxLFRpbWVkQWdncmVndG9yOigpPT5tcSxUcmVlOigpPT5ncSx1bmk6KCk9PnpiZX0pO3ZhciBfZj1wKCgpPT57a2JlKCk7U2JlKCk7bHEoKTtkcSgpO2NxKCk7Q2JlKCk7VGJlKCk7ZncoKTtfYmUoKTtMYmUoKTtBYmUoKX0pO3ZhciBkMD17fTtGZShkMCx7YXJlVWludDhBcnJheXNFcXVhbDooKT0+aW1yLGFzc2VydFVpbnQ4QXJyYXk6KCk9PmMwLGFzc2VydFVpbnQ4QXJyYXlPckFycmF5QnVmZmVyOigpPT5QYmUsYmFzZTY0VG9TdHJpbmc6KCk9PmNtcixiYXNlNjRUb1VpbnQ4QXJyYXk6KCk9PlJiZSxjb21wYXJlVWludDhBcnJheXM6KCk9PmFtcixjb25jYXRVaW50OEFycmF5czooKT0+cm1yLGdldFVpbnRCRTooKT0+aG1yLGhleFRvVWludDhBcnJheTooKT0+cG1yLGluY2x1ZGVzOigpPT5mbXIsaW5kZXhPZjooKT0+QmJlLGlzVWludDhBcnJheTooKT0+YnEsc3RyaW5nVG9CYXNlNjQ6KCk9PmxtcixzdHJpbmdUb1VpbnQ4QXJyYXk6KCk9PkZiZSx0b1VpbnQ4QXJyYXk6KCk9PnRtcix1aW50OEFycmF5VG9CYXNlNjQ6KCk9Pk9iZSx1aW50OEFycmF5VG9IZXg6KCk9PnVtcix1aW50OEFycmF5VG9TdHJpbmc6KCk9Pk5iZX0pO2Z1bmN0aW9uIERiZShlLHQscil7cmV0dXJuIGU/ZS5jb25zdHJ1Y3Rvcj09PXQ/ITA6WDdyLmNhbGwoZSk9PT1yOiExfWZ1bmN0aW9uIGJxKGUpe3JldHVybiBEYmUoZSxVaW50OEFycmF5LFE3cil9ZnVuY3Rpb24gSzdyKGUpe3JldHVybiBEYmUoZSxBcnJheUJ1ZmZlcixKN3IpfWZ1bmN0aW9uIGVtcihlKXtyZXR1cm4gYnEoZSl8fEs3cihlKX1mdW5jdGlvbiBjMChlKXtpZighYnEoZSkpdGhyb3cgbmV3IFR5cGVFcnJvcihgRXhwZWN0ZWQgXGBVaW50OEFycmF5XGAsIGdvdCBcYCR7dHlwZW9mIGV9XGBgKX1mdW5jdGlvbiBQYmUoZSl7aWYoIWVtcihlKSl0aHJvdyBuZXcgVHlwZUVycm9yKGBFeHBlY3RlZCBcYFVpbnQ4QXJyYXlcYCBvciBcYEFycmF5QnVmZmVyXGAsIGdvdCBcYCR7dHlwZW9mIGV9XGBgKX1mdW5jdGlvbiB0bXIoZSl7aWYoZSBpbnN0YW5jZW9mIEFycmF5QnVmZmVyKXJldHVybiBuZXcgVWludDhBcnJheShlKTtpZihBcnJheUJ1ZmZlci5pc1ZpZXcoZSkpcmV0dXJuIG5ldyBVaW50OEFycmF5KGUuYnVmZmVyLGUuYnl0ZU9mZnNldCxlLmJ5dGVMZW5ndGgpO3Rocm93IG5ldyBUeXBlRXJyb3IoYFVuc3VwcG9ydGVkIHZhbHVlLCBnb3QgXGAke3R5cGVvZiBlfVxgLmApfWZ1bmN0aW9uIHJtcihlLHQpe2lmKGUubGVuZ3RoPT09MClyZXR1cm4gbmV3IFVpbnQ4QXJyYXkoMCk7dD8/PWUucmVkdWNlKChhLG4pPT5hK24ubGVuZ3RoLDApO2xldCByPW5ldyBVaW50OEFycmF5KHQpLGk9MDtmb3IobGV0IGEgb2YgZSljMChhKSxyLnNldChhLGkpLGkrPWEubGVuZ3RoO3JldHVybiByfWZ1bmN0aW9uIGltcihlLHQpe2lmKGMwKGUpLGMwKHQpLGU9PT10KXJldHVybiEwO2lmKGUubGVuZ3RoIT09dC5sZW5ndGgpcmV0dXJuITE7Zm9yKGxldCByPTA7cjxlLmxlbmd0aDtyKyspaWYoZVtyXSE9PXRbcl0pcmV0dXJuITE7cmV0dXJuITB9ZnVuY3Rpb24gYW1yKGUsdCl7YzAoZSksYzAodCk7bGV0IHI9TWF0aC5taW4oZS5sZW5ndGgsdC5sZW5ndGgpO2ZvcihsZXQgaT0wO2k8cjtpKyspe2xldCBhPWVbaV0tdFtpXTtpZihhIT09MClyZXR1cm4gTWF0aC5zaWduKGEpfXJldHVybiBNYXRoLnNpZ24oZS5sZW5ndGgtdC5sZW5ndGgpfWZ1bmN0aW9uIE5iZShlLHQ9InV0ZjgiKXtyZXR1cm4gUGJlKGUpLEViZVt0XT8/PW5ldyBnbG9iYWxUaGlzLlRleHREZWNvZGVyKHQpLEViZVt0XS5kZWNvZGUoZSl9ZnVuY3Rpb24gRWYoZSl7aWYodHlwZW9mIGUhPSJzdHJpbmciKXRocm93IG5ldyBUeXBlRXJyb3IoYEV4cGVjdGVkIFxgc3RyaW5nXGAsIGdvdCBcYCR7dHlwZW9mIGV9XGBgKX1mdW5jdGlvbiBGYmUoZSl7cmV0dXJuIEVmKGUpLG5tci5lbmNvZGUoZSl9ZnVuY3Rpb24gb21yKGUpe3JldHVybiBlLnJlcGxhY2VBbGwoIisiLCItIikucmVwbGFjZUFsbCgiLyIsIl8iKS5yZXBsYWNlKC89KyQvLCIiKX1mdW5jdGlvbiBzbXIoZSl7bGV0IHQ9ZS5yZXBsYWNlQWxsKCItIiwiKyIpLnJlcGxhY2VBbGwoIl8iLCIvIikscj0oNC10Lmxlbmd0aCU0KSU0O3JldHVybiB0KyI9Ii5yZXBlYXQocil9ZnVuY3Rpb24gT2JlKGUse3VybFNhZmU6dD0hMX09e30pe2MwKGUpO2xldCByPSIiO2ZvcihsZXQgaT0wO2k8ZS5sZW5ndGg7aSs9JGJlKXtsZXQgYT1lLnN1YmFycmF5KGksaSskYmUpO3IrPWdsb2JhbFRoaXMuYnRvYShTdHJpbmcuZnJvbUNvZGVQb2ludC5hcHBseSh2b2lkIDAsYSkpfXJldHVybiB0P29tcihyKTpyfWZ1bmN0aW9uIFJiZShlKXtyZXR1cm4gRWYoZSksVWludDhBcnJheS5mcm9tKGdsb2JhbFRoaXMuYXRvYihzbXIoZSkpLHQ9PnQuY29kZVBvaW50QXQoMCkpfWZ1bmN0aW9uIGxtcihlLHt1cmxTYWZlOnQ9ITF9PXt9KXtyZXR1cm4gRWYoZSksT2JlKEZiZShlKSx7dXJsU2FmZTp0fSl9ZnVuY3Rpb24gY21yKGUpe3JldHVybiBFZihlKSxOYmUoUmJlKGUpKX1mdW5jdGlvbiB1bXIoZSl7YzAoZSk7bGV0IHQ9IiI7Zm9yKGxldCByPTA7cjxlLmxlbmd0aDtyKyspdCs9ZG1yW2Vbcl1dO3JldHVybiB0fWZ1bmN0aW9uIHBtcihlKXtpZihFZihlKSxlLmxlbmd0aCUyIT09MCl0aHJvdyBuZXcgRXJyb3IoIkludmFsaWQgSGV4IHN0cmluZyBsZW5ndGguIik7bGV0IHQ9ZS5sZW5ndGgvMixyPW5ldyBVaW50OEFycmF5KHQpO2ZvcihsZXQgaT0wO2k8dDtpKyspe2xldCBhPUliZVtlW2kqMl1dLG49SWJlW2VbaSoyKzFdXTtpZihhPT09dm9pZCAwfHxuPT09dm9pZCAwKXRocm93IG5ldyBFcnJvcihgSW52YWxpZCBIZXggY2hhcmFjdGVyIGVuY291bnRlcmVkIGF0IHBvc2l0aW9uICR7aSoyfWApO3JbaV09YTw8NHxufXJldHVybiByfWZ1bmN0aW9uIGhtcihlKXtsZXR7Ynl0ZUxlbmd0aDp0fT1lO2lmKHQ9PT02KXJldHVybiBlLmdldFVpbnQxNigwKSoyKiozMitlLmdldFVpbnQzMigyKTtpZih0PT09NSlyZXR1cm4gZS5nZXRVaW50OCgwKSoyKiozMitlLmdldFVpbnQzMigxKTtpZih0PT09NClyZXR1cm4gZS5nZXRVaW50MzIoMCk7aWYodD09PTMpcmV0dXJuIGUuZ2V0VWludDgoMCkqMioqMTYrZS5nZXRVaW50MTYoMSk7aWYodD09PTIpcmV0dXJuIGUuZ2V0VWludDE2KDApO2lmKHQ9PT0xKXJldHVybiBlLmdldFVpbnQ4KDApfWZ1bmN0aW9uIEJiZShlLHQpe2xldCByPWUubGVuZ3RoLGk9dC5sZW5ndGg7aWYoaT09PTB8fGk+cilyZXR1cm4tMTtsZXQgYT1yLWk7Zm9yKGxldCBuPTA7bjw9YTtuKyspe2xldCBvPSEwO2ZvcihsZXQgcz0wO3M8aTtzKyspaWYoZVtuK3NdIT09dFtzXSl7bz0hMTticmVha31pZihvKXJldHVybiBufXJldHVybi0xfWZ1bmN0aW9uIGZtcihlLHQpe3JldHVybiBCYmUoZSx0KSE9PS0xfXZhciBYN3IsUTdyLEo3cixFYmUsbm1yLCRiZSxkbXIsSWJlLEhiZT1wKCgpPT57WDdyPU9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcsUTdyPSJbb2JqZWN0IFVpbnQ4QXJyYXldIixKN3I9IltvYmplY3QgQXJyYXlCdWZmZXJdIjtFYmU9e3V0Zjg6bmV3IGdsb2JhbFRoaXMuVGV4dERlY29kZXIoInV0ZjgiKX07bm1yPW5ldyBnbG9iYWxUaGlzLlRleHRFbmNvZGVyOyRiZT02NTUzNTtkbXI9QXJyYXkuZnJvbSh7bGVuZ3RoOjI1Nn0sKGUsdCk9PnQudG9TdHJpbmcoMTYpLnBhZFN0YXJ0KDIsIjAiKSk7SWJlPXswOjAsMToxLDI6MiwzOjMsNDo0LDU6NSw2OjYsNzo3LDg6OCw5OjksYToxMCxiOjExLGM6MTIsZDoxMyxlOjE0LGY6MTUsQToxMCxCOjExLEM6MTIsRDoxMyxFOjE0LEY6MTV9fSk7dmFyIHFiZT1wKCgpPT57SGJlKCl9KTt2YXIgWjU9e307RmUoWjUse2Jhc2U2NFRvVWludDhBcnJheTooKT0+dm1yLGVuc3VyZVB1cmVVaW50OEFycmF5OigpPT53bXIsaXNCdWZmZXJMaWtlOigpPT55bXIsaXNVaW50OEFycmF5OigpPT54bXIsdUludDhBcnJheUV4dHJhczooKT0+Z21yLHVJbnQ4QXJyYXlUb0Jhc2U2NDooKT0+Ym1yfSk7ZnVuY3Rpb24gYm1yKGUpe3JldHVybiBkMC51aW50OEFycmF5VG9CYXNlNjQoZSl9ZnVuY3Rpb24gdm1yKGUpe3JldHVybiBkMC5iYXNlNjRUb1VpbnQ4QXJyYXkoZSl9ZnVuY3Rpb24geW1yKGUpe3JldHVybiBlJiZ0eXBlb2YgZS5ieXRlTGVuZ3RoPT0ibnVtYmVyIj8hMDp0eXBlb2YgQnVmZmVyPCJ1IiYmQnVmZmVyLmlzQnVmZmVyP0J1ZmZlci5pc0J1ZmZlcihlKTohMX1mdW5jdGlvbiB3bXIoZSl7bGV0IHQ9bmV3IFVpbnQ4QXJyYXkoZS5sZW5ndGgpO3JldHVybiB0LnNldChlKSx0fXZhciBnbXIseG1yLGpiZT1wKCgpPT57cWJlKCk7Z21yPWQwO3htcj1lPT5kMC5pc1VpbnQ4QXJyYXkoZSl9KTt2YXIgJGY9cCgoKT0+e3NhKCl9KTt2YXIgSWYsbXc9cCgoKT0+eyRmKCk7SWY9Y2xhc3N7Y29uc3RydWN0b3IodCxyKXt0aGlzLmd1YXJkRnVuY3Rpb249dCx0aGlzLm9wdGlvbnM9cn1hc3luYyBleGVjKHQpe3JldHVybiBhd2FpdCB0aGlzLmd1YXJkRnVuY3Rpb24odCl9YXN5bmMgZ2V0RmFpbGVkSGludCh0KXtyZXR1cm4gYXdhaXQgdGhpcy5leGVjKHQpP251bGw6dGhpcy5vcHRpb25zLmZhaWxlZEhpbnR9fX0pO3ZhciBQZix2cT1wKCgpPT57JGYoKTtQZj1jbGFzcyBleHRlbmRzIEVycm9ye2NvbnN0cnVjdG9yKHQpe3N1cGVyKHQpLHRoaXMubmFtZT0iR3VhcmRFcnJvciJ9fX0pO3ZhciBOZix4cT1wKCgpPT57JGYoKTttdygpO05mPWNsYXNzIGV4dGVuZHMgSWZ7Y29uc3RydWN0b3IodD1bXSl7c3VwZXIoYXN5bmMgcj0+dGhpcy5hbGxHdWFyZHNQYXNzKHIpKSx0aGlzLmd1YXJkcz10fWFzeW5jIGV4ZWNBbGxXaXRoRGF0YSh0LHI9e21vZGU6InBhcmFsbGVsIixzdG9wT25GYWlsOiExfSl7bGV0IGk9W107Zm9yKGxldCBuIG9mIHRoaXMuZ3VhcmRzKXtsZXQgbz1uLmV4ZWModCk7aWYoci5tb2RlPT09InNlcmlhbCImJmF3YWl0IG8saS5wdXNoKG8pLHIuc3RvcE9uRmFpbCYmIWF3YWl0IG8pcmV0dXJuIGF3YWl0IFByb21pc2UuYWxsKGkpfXJldHVybiBhd2FpdCBQcm9taXNlLmFsbChpKX1hc3luYyBhbGxHdWFyZHNQYXNzKHQscj17bW9kZToicGFyYWxsZWwiLHN0b3BPbkZhaWw6ITF9KXtyZXR1cm4oYXdhaXQgdGhpcy5leGVjQWxsV2l0aERhdGEodCxyKSkuZXZlcnkoYT0+YSl9YXN5bmMgYW55R3VhcmRzUGFzcyh0KXtyZXR1cm4oYXdhaXQgdGhpcy5leGVjQWxsV2l0aERhdGEodCx7bW9kZToicGFyYWxsZWwiLHN0b3BPbkZhaWw6ITF9KSkuc29tZShpPT5pKX1nZXRGYWlsZWRIaW50KHQpe2ZvcihsZXQgciBvZiB0aGlzLmd1YXJkcyl7bGV0IGk9ci5nZXRGYWlsZWRIaW50KHQpO2lmKGkpcmV0dXJuIGl9fX19KTt2YXIgRmY9e307RmUoRmYse0d1YXJkOigpPT5JZixHdWFyZEVycm9yOigpPT5QZixHdWFyZFNldDooKT0+TmYscGFzc0d1YXJkc09yUmVqZWN0OigpPT5NbXJ9KTt2YXIgTW1yLFZiZT1wKCgpPT57JGYoKTttdygpO3ZxKCk7bXcoKTt4cSgpO3hxKCk7dnEoKTtNbXI9YXN5bmMoZSx0KT0+e2xldCByPW5ldyBOZih0KTtpZighYXdhaXQgci5hbGxHdWFyZHNQYXNzKGUpKXtsZXQgYT1hd2FpdCByLmdldEZhaWxlZEhpbnQoZSk7dGhyb3cgbmV3IFBmKGBHdWFyZHMgZmFpbGVkOgoke2F9CiAgICBgKX19fSk7dmFyIFg1LHlxPXAoKCk9PntYNT1jbGFzc3tjb25zdHJ1Y3Rvcigpe3RoaXMucmVxdWVzdEludGVyY2VwdG9ycz1bXSx0aGlzLnJlc3BvbnNlSW50ZXJjZXB0b3JzPVtdLHRoaXMuZXJyb3JJbnRlcmNlcHRvcnM9W119YWRkUmVxdWVzdEludGVyY2VwdG9yKHQpe3RoaXMucmVxdWVzdEludGVyY2VwdG9ycy5wdXNoKHQpfWFkZFJlc3BvbnNlSW50ZXJjZXB0b3IodCl7dGhpcy5yZXNwb25zZUludGVyY2VwdG9ycy5wdXNoKHQpfWFkZEVycm9ySW50ZXJjZXB0b3IodCl7dGhpcy5lcnJvckludGVyY2VwdG9ycy5wdXNoKHQpfXJlbW92ZVJlcXVlc3RJbnRlcmNlcHRvcih0KXtsZXQgcj10aGlzLnJlcXVlc3RJbnRlcmNlcHRvcnMuaW5kZXhPZih0KTtyPi0xJiZ0aGlzLnJlcXVlc3RJbnRlcmNlcHRvcnMuc3BsaWNlKHIsMSl9cmVtb3ZlUmVzcG9uc2VJbnRlcmNlcHRvcih0KXtsZXQgcj10aGlzLnJlc3BvbnNlSW50ZXJjZXB0b3JzLmluZGV4T2YodCk7cj4tMSYmdGhpcy5yZXNwb25zZUludGVyY2VwdG9ycy5zcGxpY2UociwxKX1yZW1vdmVFcnJvckludGVyY2VwdG9yKHQpe2xldCByPXRoaXMuZXJyb3JJbnRlcmNlcHRvcnMuaW5kZXhPZih0KTtyPi0xJiZ0aGlzLmVycm9ySW50ZXJjZXB0b3JzLnNwbGljZShyLDEpfWNsZWFyQWxsKCl7dGhpcy5yZXF1ZXN0SW50ZXJjZXB0b3JzPVtdLHRoaXMucmVzcG9uc2VJbnRlcmNlcHRvcnM9W10sdGhpcy5lcnJvckludGVyY2VwdG9ycz1bXX1hc3luYyBwcm9jZXNzUmVxdWVzdCh0KXtsZXQgcj10O2ZvcihsZXQgaSBvZiB0aGlzLnJlcXVlc3RJbnRlcmNlcHRvcnMpdHJ5e3I9YXdhaXQgaShyKX1jYXRjaChhKXt0aHJvdyBhd2FpdCB0aGlzLnByb2Nlc3NFcnJvcihhIGluc3RhbmNlb2YgRXJyb3I/YTpuZXcgRXJyb3IoU3RyaW5nKGEpKSl9cmV0dXJuIHJ9YXN5bmMgcHJvY2Vzc1Jlc3BvbnNlKHQpe2xldCByPXQ7Zm9yKGxldCBpIG9mIHRoaXMucmVzcG9uc2VJbnRlcmNlcHRvcnMpdHJ5e3I9YXdhaXQgaShyKX1jYXRjaChhKXt0aHJvdyBhd2FpdCB0aGlzLnByb2Nlc3NFcnJvcihhIGluc3RhbmNlb2YgRXJyb3I/YTpuZXcgRXJyb3IoU3RyaW5nKGEpKSl9cmV0dXJuIHJ9YXN5bmMgcHJvY2Vzc0Vycm9yKHQpe2xldCByPXQ7Zm9yKGxldCBpIG9mIHRoaXMuZXJyb3JJbnRlcmNlcHRvcnMpdHJ5e3I9YXdhaXQgaShyKX1jYXRjaChhKXtyPWEgaW5zdGFuY2VvZiBFcnJvcj9hOm5ldyBFcnJvcihTdHJpbmcoYSkpfXJldHVybiByfWdldEludGVyY2VwdG9yQ291bnRzKCl7cmV0dXJue3JlcXVlc3Q6dGhpcy5yZXF1ZXN0SW50ZXJjZXB0b3JzLmxlbmd0aCxyZXNwb25zZTp0aGlzLnJlc3BvbnNlSW50ZXJjZXB0b3JzLmxlbmd0aCxlcnJvcjp0aGlzLmVycm9ySW50ZXJjZXB0b3JzLmxlbmd0aH19fX0pO3ZhciBVYmU9cCgoKT0+e3NhKCl9KTt2YXIgV2JlPXAoKCk9Pnt9KTt2YXIgd3EsR2JlPXAoKCk9PntVYmUoKTtXYmUoKTt3cT1jbGFzc3tjb25zdHJ1Y3Rvcigpe3RoaXMubG9hZGVkU2NyaXB0cz1bXX1hc3luYyBnZXRFbnZBd2FyZU1vZHVsZSh0KXtpZih0aGlzLmlzTm9kZSlyZXR1cm4gYXdhaXQgdGhpcy5nZXRTYWZlTm9kZU1vZHVsZSh0Lm5vZGVNb2R1bGVOYW1lKTtpZih0aGlzLmlzQnJvd3NlcilyZXR1cm4gYXdhaXQgdGhpcy5nZXRTYWZlV2ViTW9kdWxlKHQud2ViVXJsQXJnLHQuZ2V0RnVuY3Rpb24pO2NvbnNvbGUuZXJyb3IoInBsYXRmb3JtIGZvciBsb2FkaW5nIG5vdCBzdXBwb3J0ZWQgYnkgc21hcnRlbnYiKX1hc3luYyBnZXRTYWZlTm9kZU1vZHVsZSh0LHIpe2lmKCF0aGlzLmlzTm9kZSl7Y29uc29sZS5lcnJvcihgWW91IHRyaWVkIHRvIGxvYWQgYSBub2RlIG1vZHVsZSBpbiBhIHdyb25nIGNvbnRleHQ6ICR7dH0uIFRoaXMgZG9lcyBub3QgdGhyb3cuYCk7cmV0dXJufWxldCBpPWF3YWl0IG5ldyBGdW5jdGlvbihgcmV0dXJuIGltcG9ydCgnJHt0fScpYCkoKTtyZXR1cm4gciYmYXdhaXQgcihpKSxpfWFzeW5jIGdldFNhZmVXZWJNb2R1bGUodCxyKXtpZighdGhpcy5pc0Jyb3dzZXIpe2NvbnNvbGUuZXJyb3IoIllvdSB0cmllZCB0byBsb2FkIGEgd2ViIG1vZHVsZSBpbiBhIHdyb25nIGNvbnRleHQiKTtyZXR1cm59aWYodGhpcy5sb2FkZWRTY3JpcHRzLmluY2x1ZGVzKHQpKXJldHVybiByKCk7dGhpcy5sb2FkZWRTY3JpcHRzLnB1c2godCk7bGV0IGk9S2UuZGVmZXIoKTtpZihnbG9iYWxUaGlzLmltcG9ydFNjcmlwdHMpZ2xvYmFsVGhpcy5pbXBvcnRTY3JpcHRzKHQpLGkucmVzb2x2ZSgpO2Vsc2V7bGV0IGE9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgic2NyaXB0Iik7YS5vbmxvYWQ9KCk9PntpLnJlc29sdmUoKX0sYS5zcmM9dCxkb2N1bWVudC5oZWFkLmFwcGVuZENoaWxkKGEpfXJldHVybiBhd2FpdCBpLnByb21pc2UscigpfWdldCBydW50aW1lRW52KCl7cmV0dXJuIHR5cGVvZiBwcm9jZXNzPCJ1Ij8ibm9kZSI6ImJyb3dzZXIifWdldCBpc0Jyb3dzZXIoKXtyZXR1cm4hdGhpcy5pc05vZGV9Z2V0IHVzZXJBZ2VudCgpe3JldHVybiB0aGlzLmlzQnJvd3Nlcj9uYXZpZ2F0b3IudXNlckFnZW50OiJ1bmRlZmluZWQifWdldCBpc05vZGUoKXtyZXR1cm4gdGhpcy5ydW50aW1lRW52PT09Im5vZGUifWdldCBub2RlVmVyc2lvbigpe3JldHVybiBwcm9jZXNzLnZlcnNpb259Z2V0IGlzQ0koKXtyZXR1cm4gdGhpcy5pc05vZGU/ISFwcm9jZXNzLmVudi5DSTohMX1hc3luYyBpc01hY0FzeW5jKCl7cmV0dXJuIHRoaXMuaXNOb2RlPyhhd2FpdCB0aGlzLmdldFNhZmVOb2RlTW9kdWxlKCJvcyIpKS5wbGF0Zm9ybSgpPT09ImRhcndpbiI6ITF9YXN5bmMgaXNXaW5kb3dzQXN5bmMoKXtyZXR1cm4gdGhpcy5pc05vZGU/KGF3YWl0IHRoaXMuZ2V0U2FmZU5vZGVNb2R1bGUoIm9zIikpLnBsYXRmb3JtKCk9PT0id2luMzIiOiExfWFzeW5jIGlzTGludXhBc3luYygpe3JldHVybiB0aGlzLmlzTm9kZT8oYXdhaXQgdGhpcy5nZXRTYWZlTm9kZU1vZHVsZSgib3MiKSkucGxhdGZvcm0oKT09PSJsaW51eCI6ITF9YXN5bmMgcHJpbnRFbnYoKXt0aGlzLmlzTm9kZT8oY29uc29sZS5sb2coInJ1bm5pbmcgb24gTk9ERSIpLGNvbnNvbGUubG9nKCJub2RlIHZlcnNpb24gaXMgIit0aGlzLm5vZGVWZXJzaW9uKSk6KGNvbnNvbGUubG9nKCJydW5uaW5nIG9uIEJST1dTRVIiKSxjb25zb2xlLmxvZygiYnJvd3NlciBpcyAiK3RoaXMudXNlckFnZW50KSl9fX0pO3ZhciAkbj17fTtGZSgkbix7U21hcnRlbnY6KCk9PndxfSk7dmFyIFE1PXAoKCk9PntHYmUoKX0pO3ZhciBNcSxKNT1wKCgpPT57TXE9ZXIodXYoKSwxKX0pO3ZhciBndz17fTtGZShndyx7Y3JlYXRlQ3J5cHRvUmFuZG9tU3RyaW5nOigpPT5fbXIsY3JlYXRlUmFuZG9tU3RyaW5nOigpPT5UbXJ9KTt2YXIgem1yLENtcixUbXIsX21yLFliZT1wKCgpPT57SjUoKTt6bXI9KGUsdCk9PntpZih0eXBlb2YgZ2xvYmFsVGhpczwidSImJmdsb2JhbFRoaXMuY3J5cHRvJiZnbG9iYWxUaGlzLmNyeXB0by5nZXRSYW5kb21WYWx1ZXMpe2xldCByPXQtZSxpPW5ldyBVaW50MzJBcnJheSgxKTtyZXR1cm4gZ2xvYmFsVGhpcy5jcnlwdG8uZ2V0UmFuZG9tVmFsdWVzKGkpLGUraVswXSVyfWVsc2UgcmV0dXJuIE1hdGguZmxvb3IoTWF0aC5yYW5kb20oKSoodC1lKSkrZX0sQ21yPShlLHQscik9PntsZXQgaT17QToiQUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVoiLGE6ImFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6IiwwOiIwMTIzNDU2Nzg5IiwiISI6IiFAIyQlXiYqKClfKy09W117fXw7OiwuPD4/IiwiKiI6IkFCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFlaYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXowMTIzNDU2Nzg5IUAjJCVeJiooKV8rLT1bXXt9fDs6LC48Pj8ifSxhPWU7dCYmdD5lLmxlbmd0aD9hPWUucmVwZWF0KE1hdGguY2VpbCh0L2UubGVuZ3RoKSkuc2xpY2UoMCx0KTp0JiYoYT1lLnNsaWNlKDAsdCkpO2xldCBuPSIiO2ZvcihsZXQgbyBvZiBhKWlmKGlbb10pe2xldCBzPWlbb10sbD16bXIoMCxzLmxlbmd0aCk7bis9c1tsXX1lbHNlIG4rPW87cmV0dXJuIG59LFRtcj0oZSx0LHIpPT5DbXIoZSx0LHIpLF9tcj0oKT0+TXEudW5pKCl9KTt2YXIgYnc9e307RmUoYncse21ha2VFbnZPYmplY3Q6KCk9Pkxtcn0pO3ZhciBMbXIsWmJlPXAoKCk9PntKNSgpO0xtcj1mdW5jdGlvbihlKXtsZXQgdD17fSxyPS8oLiopPSguKikvO2lmKHR5cGVvZiBlPCJ1Iilmb3IobGV0IGkgaW4gZSl7bGV0IGE9ci5leGVjKGVbaV0pO3RbYVsxXV09YVsyXX1yZXR1cm4gdH19KTt2YXIgdnc9e307RmUodncse2luZGVudDooKT0+RG1yLGluZGVudFdpdGhQcmVmaXg6KCk9PkVtcixub3JtYWxpemU6KCk9PiRtcn0pO3ZhciBrcSxTcSxBbXIsRG1yLEVtciwkbXIsWGJlPXAoKCk9PntKNSgpO2txPWU9PntsZXQgdD1lLnNwbGl0KGAKYCk7cmV0dXJuIEFtcih0KX0sU3E9ZT0+e2xldCB0PSIiO2ZvcihsZXQgciBvZiBlKXQ9dCtyK2AKYDtyZXR1cm4gdH0sQW1yPWU9PntsZXQgdD0vXltcc10qJC87cmV0dXJuIHQudGVzdChlWzBdKSYmZS5zaGlmdCgpLHQudGVzdChlW2UubGVuZ3RoLTFdKSYmZS5wb3AoKSxlfSxEbXI9KGUsdCk9PntsZXQgcj1rcShlKTtmb3IobGV0IGEgb2YgcilhPSIgIi5yZXBlYXQodCkrYTtyZXR1cm4gU3Eocil9LEVtcj0oZSx0KT0+e2xldCByLGk9a3EoZSksYT1bXTtmb3IobGV0IG4gb2YgaSlhLnB1c2godCtuKTtyZXR1cm4gcj1TcShhKSxyfSwkbXI9ZT0+e2xldCB0LHI9a3EoZSksaSxhPS9eKFxzKikvLG49L14oXHMqKSQvO2ZvcihsZXQgcyBvZiByKXtsZXQgbD1hLmV4ZWMocylbMV07KHR5cGVvZiBpPiJ1Inx8bC5sZW5ndGg8aSkmJiFuLnRlc3QocykmJihpPWwubGVuZ3RoKX1sZXQgbz1bXTtmb3IobGV0IHMgb2YgcilvLnB1c2gocy5zdWJzdHIoaSkpO3JldHVybiB0PVNxKG8pLHR9fSk7dmFyIHh3PXt9O0ZlKHh3LHtyZXBsYWNlQWxsOigpPT5RYmUsc3RhbmRhcmQ6KCk9PlBtcn0pO3ZhciBRYmUsSW1yLFBtcixKYmU9cCgoKT0+e1FiZT0oZSx0LHIpPT5lLnJlcGxhY2UobmV3IFJlZ0V4cCh0LCJnIiksciksSW1yPWU9PntsZXQgdD1lLnNwbGl0KGAKYCkscj0xLzA7Zm9yKGxldCBpIG9mIHQpaWYoaS50cmltKCkubGVuZ3RoPjApe2xldCBhPWkubWF0Y2goL14oXHMqKS8pO2EmJihyPU1hdGgubWluKHIsYVsxXS5sZW5ndGgpKX1yZXR1cm4gcj09PTEvMHx8cj09PTA/ZTp0Lm1hcChpPT5pLmxlbmd0aD49cj9pLnNsaWNlKHIpOmkpLmpvaW4oYApgKX0sUG1yPShlLHQpPT57bGV0IHI9ZTtyZXR1cm4oIXR8fHQuc3RyaXBJbmRlbnQpJiYocj1JbXIocikpLCghdHx8dC5ub3JtYWxpemVOZXdsaW5lKSYmKHI9ci5yZXBsYWNlKC9cclxuL2csYApgKSksKCF0fHx0LnJlcGxhY2VUYWJzKSYmKHI9UWJlKHIsIgkvIiwiICIpKSwoIXR8fHQuc3RyaXBMZWFkaW5nVHJhaWxpbmdFbXB0eUxpbmVzKSYmKHI9ci5yZXBsYWNlKC9eXHMqW1xyXG5dL2dtLCIiKS5yZXBsYWNlKC9ccypbXHJcbl0kL2dtLCIiKSksKCF0fHx0LnN0cmlwQWxsRW1wdHlMaW5lcykmJihyPXIucmVwbGFjZSgvXlxzKltcclxuXS9nbSwiIikpLHJ9fSk7dmFyIHpxLHl3LEs1LENxPXAoKCk9Pnt6cT17ZW5jb2RlOmU9PntpZih0eXBlb2YgQnVmZmVyPCJ1IilyZXR1cm4gQnVmZmVyLmZyb20oZSwidXRmOCIpLnRvU3RyaW5nKCJiYXNlNjQiKTtpZih0eXBlb2YgYnRvYTwidSIpe2xldCB0PW5ldyBUZXh0RW5jb2RlcigpLmVuY29kZShlKSxyPUFycmF5LmZyb20odCxpPT5TdHJpbmcuZnJvbUNoYXJDb2RlKGkpKS5qb2luKCIiKTtyZXR1cm4gYnRvYShyKX1lbHNle2xldCB0PSJBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWmFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6MDEyMzQ1Njc4OSsvIixyPW5ldyBUZXh0RW5jb2RlcigpLmVuY29kZShlKSxpPSIiLGE9MDtmb3IoO2E8ci5sZW5ndGg7KXtsZXQgbj1yW2ErK10sbz1hPHIubGVuZ3RoP3JbYSsrXTowLHM9YTxyLmxlbmd0aD9yW2ErK106MCxsPW48PDE2fG88PDh8cztpKz10LmNoYXJBdChsPj4xOCY2MyksaSs9dC5jaGFyQXQobD4+MTImNjMpLGkrPWEtMjxyLmxlbmd0aD90LmNoYXJBdChsPj42JjYzKToiPSIsaSs9YS0xPHIubGVuZ3RoP3QuY2hhckF0KGwmNjMpOiI9In1yZXR1cm4gaX19LGRlY29kZTplPT57bGV0IHQ9ZS5yZXBsYWNlKC8tL2csIisiKS5yZXBsYWNlKC9fL2csIi8iKS5wYWRFbmQoZS5sZW5ndGgrKDQtZS5sZW5ndGglNCklNCwiPSIpO2lmKHR5cGVvZiBCdWZmZXI8InUiKXJldHVybiBCdWZmZXIuZnJvbSh0LCJiYXNlNjQiKS50b1N0cmluZygidXRmOCIpO2lmKHR5cGVvZiBhdG9iPCJ1Iil7bGV0IHI9YXRvYih0KSxpPW5ldyBVaW50OEFycmF5KHIubGVuZ3RoKTtmb3IobGV0IGE9MDthPHIubGVuZ3RoO2ErKylpW2FdPXIuY2hhckNvZGVBdChhKTtyZXR1cm4gbmV3IFRleHREZWNvZGVyKCkuZGVjb2RlKGkpfWVsc2V7bGV0IHI9IkFCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFlaYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXowMTIzNDU2Nzg5Ky8iLGk9W10sYT0wO2Zvcig7YTx0Lmxlbmd0aDspe2xldCBuPXIuaW5kZXhPZih0LmNoYXJBdChhKyspKSxvPXIuaW5kZXhPZih0LmNoYXJBdChhKyspKSxzPXIuaW5kZXhPZih0LmNoYXJBdChhKyspKSxsPXIuaW5kZXhPZih0LmNoYXJBdChhKyspKSxjPW48PDE4fG88PDEyfHM8PDZ8bDtpLnB1c2goYz4+MTYmMjU1KSxzIT09NjQmJmkucHVzaChjPj44JjI1NSksbCE9PTY0JiZpLnB1c2goYyYyNTUpfXJldHVybiBuZXcgVGV4dERlY29kZXIoKS5kZWNvZGUobmV3IFVpbnQ4QXJyYXkoaSkpfX19LHl3PWNsYXNze2NvbnN0cnVjdG9yKHQscil7c3dpdGNoKHIpe2Nhc2Uic3RyaW5nIjp0aGlzLnJlZlN0cmluZz10O2JyZWFrO2Nhc2UiYmFzZTY0Ijp0aGlzLnJlZlN0cmluZz1LNS5kZWNvZGUodCk7YnJlYWs7Y2FzZSJiYXNlNjR1cmkiOnRoaXMucmVmU3RyaW5nPUs1LmRlY29kZSh0KX19Z2V0IHNpbXBsZVN0cmluZygpe3JldHVybiB0aGlzLnJlZlN0cmluZ31nZXQgYmFzZTY0U3RyaW5nKCl7cmV0dXJuIEs1LmVuY29kZSh0aGlzLnJlZlN0cmluZyl9Z2V0IGJhc2U2NFVyaVN0cmluZygpe3JldHVybiBLNS5lbmNvZGVVcmkodGhpcy5yZWZTdHJpbmcpfX0sSzU9e2VuY29kZTplPT56cS5lbmNvZGUoZSksZW5jb2RlVXJpOmU9PnpxLmVuY29kZShlKS5yZXBsYWNlKC9cKy9nLCItIikucmVwbGFjZSgvXC8vZywiXyIpLnJlcGxhY2UoLz0vZywiIiksZGVjb2RlOmU9PnpxLmRlY29kZShlKSxpc0Jhc2U2NDplPT4vXihbQS1aYS16MC05Ky9dezR9KSooW0EtWmEtejAtOSsvXXszfT18W0EtWmEtejAtOSsvXXsyfT09KT8kLy50ZXN0KGUpfX0pO3ZhciB3dz17fTtGZSh3dyx7aXNCYXNlNjQ6KCk9PkZtcixpc1V0Zjg6KCk9Pk5tcn0pO3ZhciBObXIsRm1yLEtiZT1wKCgpPT57SjUoKTtDcSgpO05tcj1lPT57bGV0IHI9bmV3IFRleHRFbmNvZGVyKCkuZW5jb2RlKGUpLGk9MDtmb3IoO2k8ci5sZW5ndGg7KXtpZihyW2ldPT09OXx8cltpXT09PTEwfHxyW2ldPT09MTN8fDMyPD1yW2ldJiZyW2ldPD0xMjYpe2krPTE7Y29udGludWV9aWYoMTk0PD1yW2ldJiZyW2ldPD0yMjMmJjEyODw9cltpKzFdJiZyW2krMV08PTE5MSl7aSs9Mjtjb250aW51ZX1pZihyW2ldPT09MjI0JiYxNjA8PXJbaSsxXSYmcltpKzFdPD0xOTEmJjEyODw9cltpKzJdJiZyW2krMl08PTE5MXx8KDIyNTw9cltpXSYmcltpXTw9MjM2fHxyW2ldPT09MjM4fHxyW2ldPT09MjM5KSYmMTI4PD1yW2krMV0mJnJbaSsxXTw9MTkxJiYxMjg8PXJbaSsyXSYmcltpKzJdPD0xOTF8fHJbaV09PT0yMzcmJjEyODw9cltpKzFdJiZyW2krMV08PTE1OSYmMTI4PD1yW2krMl0mJnJbaSsyXTw9MTkxKXtpKz0zO2NvbnRpbnVlfWlmKHJbaV09PT0yNDAmJjE0NDw9cltpKzFdJiZyW2krMV08PTE5MSYmMTI4PD1yW2krMl0mJnJbaSsyXTw9MTkxJiYxMjg8PXJbaSszXSYmcltpKzNdPD0xOTF8fDI0MTw9cltpXSYmcltpXTw9MjQzJiYxMjg8PXJbaSsxXSYmcltpKzFdPD0xOTEmJjEyODw9cltpKzJdJiZyW2krMl08PTE5MSYmMTI4PD1yW2krM10mJnJbaSszXTw9MTkxfHxyW2ldPT09MjQ0JiYxMjg8PXJbaSsxXSYmcltpKzFdPD0xNDMmJjEyODw9cltpKzJdJiZyW2krMl08PTE5MSYmMTI4PD1yW2krM10mJnJbaSszXTw9MTkxKXtpKz00O2NvbnRpbnVlfXJldHVybiExfXJldHVybiEwfSxGbXI9ZT0+e2xldCB0PS9bXkEtWjAtOStcLz1dL2kscj1lLmxlbmd0aDtpZighcnx8ciU0IT09MHx8dC50ZXN0KGUpKXJldHVybiExO2xldCBpPWUuaW5kZXhPZigiPSIpO3JldHVybiBpPT09LTF8fGk9PT1yLTF8fGk9PT1yLTImJmVbci0xXT09PSI9In19KTt2YXIgTXcsZXZlPXAoKCk9PntNdz1jbGFzc3tjb25zdHJ1Y3Rvcih0KXt0aGlzLnByb3RvY29sPXRoaXMuX3Byb3RvY29sUmVnZXgodCksdGhpcy5wcm90b2NvbHx8KHQ9YGh0dHBzOi8vJHt0fWApLHRoaXMubm9kZVBhcnNlZFVybD1uZXcgVVJMKHQpLHRoaXMucG9ydD10aGlzLm5vZGVQYXJzZWRVcmwucG9ydDtsZXQgcj10aGlzLl9kb21haW5SZWdleCh0LnJlcGxhY2UodGhpcy5ub2RlUGFyc2VkVXJsLnBhdGhuYW1lLCIiKSk7dGhpcy5mdWxsTmFtZT0iIjtmb3IobGV0IGk9MTtpPD01O2krKylpZihyW2ktMV0pe2xldCBhPXJbaS0xXTt0aGlzWyJsZXZlbCIraS50b1N0cmluZygpXT1hLHRoaXMuZnVsbE5hbWU9PT0iIj90aGlzLmZ1bGxOYW1lPWE6dGhpcy5mdWxsTmFtZT1hKyIuIit0aGlzLmZ1bGxOYW1lfWVsc2UgdGhpc1sibGV2ZWwiK2kudG9TdHJpbmcoKV09dm9pZCAwO3RoaXMuem9uZU5hbWU9dGhpcy5sZXZlbDIrIi4iK3RoaXMubGV2ZWwxLHRoaXMudG9wTGV2ZWw9dGhpcy5sZXZlbDEsdGhpcy5kb21haW5OYW1lPXRoaXMubGV2ZWwyLHRoaXMuc3ViRG9tYWluPXRoaXMubGV2ZWwzfV9kb21haW5SZWdleCh0KXtsZXQgaT0vKFthLXpBLVowLTlcLVxfXSopXC57MCwxfShbYS16QS1aMC05XC1cX10qKVwuezAsMX0oW2EtekEtWjAtOVwtXF9dKilcLnswLDF9KFthLXpBLVowLTlcLVxfXSopXC57MCwxfShbYS16QS1aMC05XC1cX10qKVwuezAsMX0kLy5leGVjKHQpO3JldHVybiBpLnJldmVyc2UoKSxpLnBvcCgpLGkuZmlsdGVyKGZ1bmN0aW9uKG4pe3JldHVybiBuIT09IiJ9KX1fcHJvdG9jb2xSZWdleCh0KXtsZXQgaT0vXihbYS16QS1aMC05XSopOlwvXC8vLmV4ZWModCk7aWYoaSlyZXR1cm4gaVsxXX1fcG9ydFJlZ2V4KHQpe2xldCBpPS9eKFthLXpBLVowLTldKik6XC9cLy8uZXhlYyh0KTtpZihpKXJldHVybiBpWzFdfX19KTt2YXIga3csT21yLHR2ZSxydmU9cCgoKT0+e0o1KCk7a3c9Y2xhc3N7Y29uc3RydWN0b3IodCxyKXtsZXQgaT1PbXIodCk7dGhpcy5ob3N0PWlbMV0sdGhpcy51c2VyPWlbMl0sdGhpcy5yZXBvPWlbM10sdGhpcy5hY2Nlc3NUb2tlbj1yLHRoaXMuc3NoVXJsPXR2ZSh0aGlzLmhvc3QsdGhpcy51c2VyLHRoaXMucmVwbyx0aGlzLmFjY2Vzc1Rva2VuLCJzc2giKSx0aGlzLmh0dHBzVXJsPXR2ZSh0aGlzLmhvc3QsdGhpcy51c2VyLHRoaXMucmVwbyx0aGlzLmFjY2Vzc1Rva2VuLCJodHRwcyIpfX0sT21yPWZ1bmN0aW9uKGUpe3JldHVybi8oW2EtekEtWjAtOVwtX1wuXSopKD86XC98XDopKFthLXpBLVowLTlcLV9cLl0qKSg/OlwvKShbYS16QS1aMC05XC1fXC5dKikoPzpcLmdpdCkvLmV4ZWMoZSl9LHR2ZT1mdW5jdGlvbihlLHQscixpPSIiLGEpe2xldCBuO3N3aXRjaChpIT09IiImJihpPWkrIkAiKSxhKXtjYXNlImh0dHBzIjpuPSJodHRwczovLyIraStlKyIvIit0KyIvIityKyIuZ2l0IjticmVhaztjYXNlInNzaCI6bj0iZ2l0QCIrZSsiOiIrdCsiLyIrcisiLmdpdCI7YnJlYWs7ZGVmYXVsdDpjb25zb2xlLmVycm9yKCJMaW5rIFR5cGUgIithKyIgbm90IGtub3duIik7YnJlYWt9cmV0dXJuIG59fSk7dmFyIGdhPXt9O0ZlKGdhLHtCYXNlNjQ6KCk9Pnl3LERvbWFpbjooKT0+TXcsR2l0UmVwbzooKT0+a3csYmFzZTY0OigpPT5LNSxjcmVhdGU6KCk9Pmd3LGRvY2tlcjooKT0+YncsaW5kZW50OigpPT52dyxub3JtYWxpemU6KCk9Pnh3LHR5cGU6KCk9Pnd3fSk7dmFyIE9mPXAoKCk9PntZYmUoKTtaYmUoKTtYYmUoKTtKYmUoKTtLYmUoKTtDcSgpO2V2ZSgpO3J2ZSgpfSk7dmFyIEhxPWplKChIZixpdSk9Pnt2YXIgUm1yPTIwMCxpdmU9Il9fbG9kYXNoX2hhc2hfdW5kZWZpbmVkX18iLGF2ZT05MDA3MTk5MjU0NzQwOTkxLFRxPSJbb2JqZWN0IEFyZ3VtZW50c10iLEJtcj0iW29iamVjdCBBcnJheV0iLG52ZT0iW29iamVjdCBCb29sZWFuXSIsb3ZlPSJbb2JqZWN0IERhdGVdIixIbXI9IltvYmplY3QgRXJyb3JdIixfcT0iW29iamVjdCBGdW5jdGlvbl0iLHN2ZT0iW29iamVjdCBHZW5lcmF0b3JGdW5jdGlvbl0iLFN3PSJbb2JqZWN0IE1hcF0iLGx2ZT0iW29iamVjdCBOdW1iZXJdIixMcT0iW29iamVjdCBPYmplY3RdIixjdmU9IltvYmplY3QgUHJvbWlzZV0iLGR2ZT0iW29iamVjdCBSZWdFeHBdIix6dz0iW29iamVjdCBTZXRdIix1dmU9IltvYmplY3QgU3RyaW5nXSIscHZlPSJbb2JqZWN0IFN5bWJvbF0iLEFxPSJbb2JqZWN0IFdlYWtNYXBdIixodmU9IltvYmplY3QgQXJyYXlCdWZmZXJdIixDdz0iW29iamVjdCBEYXRhVmlld10iLGZ2ZT0iW29iamVjdCBGbG9hdDMyQXJyYXldIixtdmU9IltvYmplY3QgRmxvYXQ2NEFycmF5XSIsZ3ZlPSJbb2JqZWN0IEludDhBcnJheV0iLGJ2ZT0iW29iamVjdCBJbnQxNkFycmF5XSIsdnZlPSJbb2JqZWN0IEludDMyQXJyYXldIix4dmU9IltvYmplY3QgVWludDhBcnJheV0iLHl2ZT0iW29iamVjdCBVaW50OENsYW1wZWRBcnJheV0iLHd2ZT0iW29iamVjdCBVaW50MTZBcnJheV0iLE12ZT0iW29iamVjdCBVaW50MzJBcnJheV0iLHFtcj0vW1xcXiQuKis/KClbXF17fXxdL2csam1yPS9cdyokLyxWbXI9L15cW29iamVjdCAuKz9Db25zdHJ1Y3RvclxdJC8sVW1yPS9eKD86MHxbMS05XVxkKikkLyxpMT17fTtpMVtUcV09aTFbQm1yXT1pMVtodmVdPWkxW0N3XT1pMVtudmVdPWkxW292ZV09aTFbZnZlXT1pMVttdmVdPWkxW2d2ZV09aTFbYnZlXT1pMVt2dmVdPWkxW1N3XT1pMVtsdmVdPWkxW0xxXT1pMVtkdmVdPWkxW3p3XT1pMVt1dmVdPWkxW3B2ZV09aTFbeHZlXT1pMVt5dmVdPWkxW3d2ZV09aTFbTXZlXT0hMCxpMVtIbXJdPWkxW19xXT1pMVtBcV09ITE7dmFyIFdtcj10eXBlb2YgZ2xvYmFsPT0ib2JqZWN0IiYmZ2xvYmFsJiZnbG9iYWwuT2JqZWN0PT09T2JqZWN0JiZnbG9iYWwsR21yPXR5cGVvZiBzZWxmPT0ib2JqZWN0IiYmc2VsZiYmc2VsZi5PYmplY3Q9PT1PYmplY3QmJnNlbGYsa2w9V21yfHxHbXJ8fEZ1bmN0aW9uKCJyZXR1cm4gdGhpcyIpKCksa3ZlPXR5cGVvZiBIZj09Im9iamVjdCImJkhmJiYhSGYubm9kZVR5cGUmJkhmLFN2ZT1rdmUmJnR5cGVvZiBpdT09Im9iamVjdCImJml1JiYhaXUubm9kZVR5cGUmJml1LFltcj1TdmUmJlN2ZS5leHBvcnRzPT09a3ZlO2Z1bmN0aW9uIFptcihlLHQpe3JldHVybiBlLnNldCh0WzBdLHRbMV0pLGV9ZnVuY3Rpb24gWG1yKGUsdCl7cmV0dXJuIGUuYWRkKHQpLGV9ZnVuY3Rpb24gUW1yKGUsdCl7Zm9yKHZhciByPS0xLGk9ZT9lLmxlbmd0aDowOysrcjxpJiZ0KGVbcl0scixlKSE9PSExOyk7cmV0dXJuIGV9ZnVuY3Rpb24gSm1yKGUsdCl7Zm9yKHZhciByPS0xLGk9dC5sZW5ndGgsYT1lLmxlbmd0aDsrK3I8aTspZVthK3JdPXRbcl07cmV0dXJuIGV9ZnVuY3Rpb24genZlKGUsdCxyLGkpe3ZhciBhPS0xLG49ZT9lLmxlbmd0aDowO2ZvcihpJiZuJiYocj1lWysrYV0pOysrYTxuOylyPXQocixlW2FdLGEsZSk7cmV0dXJuIHJ9ZnVuY3Rpb24gS21yKGUsdCl7Zm9yKHZhciByPS0xLGk9QXJyYXkoZSk7KytyPGU7KWlbcl09dChyKTtyZXR1cm4gaX1mdW5jdGlvbiBlOXIoZSx0KXtyZXR1cm4gZT8uW3RdfWZ1bmN0aW9uIEN2ZShlKXt2YXIgdD0hMTtpZihlIT1udWxsJiZ0eXBlb2YgZS50b1N0cmluZyE9ImZ1bmN0aW9uIil0cnl7dD0hIShlKyIiKX1jYXRjaHt9cmV0dXJuIHR9ZnVuY3Rpb24gVHZlKGUpe3ZhciB0PS0xLHI9QXJyYXkoZS5zaXplKTtyZXR1cm4gZS5mb3JFYWNoKGZ1bmN0aW9uKGksYSl7clsrK3RdPVthLGldfSkscn1mdW5jdGlvbiBEcShlLHQpe3JldHVybiBmdW5jdGlvbihyKXtyZXR1cm4gZSh0KHIpKX19ZnVuY3Rpb24gX3ZlKGUpe3ZhciB0PS0xLHI9QXJyYXkoZS5zaXplKTtyZXR1cm4gZS5mb3JFYWNoKGZ1bmN0aW9uKGkpe3JbKyt0XT1pfSkscn12YXIgdDlyPUFycmF5LnByb3RvdHlwZSxyOXI9RnVuY3Rpb24ucHJvdG90eXBlLFR3PU9iamVjdC5wcm90b3R5cGUsRXE9a2xbIl9fY29yZS1qc19zaGFyZWRfXyJdLEx2ZT0oZnVuY3Rpb24oKXt2YXIgZT0vW14uXSskLy5leGVjKEVxJiZFcS5rZXlzJiZFcS5rZXlzLklFX1BST1RPfHwiIik7cmV0dXJuIGU/IlN5bWJvbChzcmMpXzEuIitlOiIifSkoKSxBdmU9cjlyLnRvU3RyaW5nLHUwPVR3Lmhhc093blByb3BlcnR5LF93PVR3LnRvU3RyaW5nLGk5cj1SZWdFeHAoIl4iK0F2ZS5jYWxsKHUwKS5yZXBsYWNlKHFtciwiXFwkJiIpLnJlcGxhY2UoL2hhc093blByb3BlcnR5fChmdW5jdGlvbikuKj8oPz1cXFwoKXwgZm9yIC4rPyg/PVxcXF0pL2csIiQxLio/IikrIiQiKSxEdmU9WW1yP2tsLkJ1ZmZlcjp2b2lkIDAsRXZlPWtsLlN5bWJvbCwkdmU9a2wuVWludDhBcnJheSxhOXI9RHEoT2JqZWN0LmdldFByb3RvdHlwZU9mLE9iamVjdCksbjlyPU9iamVjdC5jcmVhdGUsbzlyPVR3LnByb3BlcnR5SXNFbnVtZXJhYmxlLHM5cj10OXIuc3BsaWNlLEl2ZT1PYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzLGw5cj1EdmU/RHZlLmlzQnVmZmVyOnZvaWQgMCxjOXI9RHEoT2JqZWN0LmtleXMsT2JqZWN0KSwkcT1ydShrbCwiRGF0YVZpZXciKSxSZj1ydShrbCwiTWFwIiksSXE9cnUoa2wsIlByb21pc2UiKSxQcT1ydShrbCwiU2V0IiksTnE9cnUoa2wsIldlYWtNYXAiKSxCZj1ydShPYmplY3QsImNyZWF0ZSIpLGQ5cj1MMygkcSksdTlyPUwzKFJmKSxwOXI9TDMoSXEpLGg5cj1MMyhQcSksZjlyPUwzKE5xKSxQdmU9RXZlP0V2ZS5wcm90b3R5cGU6dm9pZCAwLE52ZT1QdmU/UHZlLnZhbHVlT2Y6dm9pZCAwO2Z1bmN0aW9uIFQzKGUpe3ZhciB0PS0xLHI9ZT9lLmxlbmd0aDowO2Zvcih0aGlzLmNsZWFyKCk7Kyt0PHI7KXt2YXIgaT1lW3RdO3RoaXMuc2V0KGlbMF0saVsxXSl9fWZ1bmN0aW9uIG05cigpe3RoaXMuX19kYXRhX189QmY/QmYobnVsbCk6e319ZnVuY3Rpb24gZzlyKGUpe3JldHVybiB0aGlzLmhhcyhlKSYmZGVsZXRlIHRoaXMuX19kYXRhX19bZV19ZnVuY3Rpb24gYjlyKGUpe3ZhciB0PXRoaXMuX19kYXRhX187aWYoQmYpe3ZhciByPXRbZV07cmV0dXJuIHI9PT1pdmU/dm9pZCAwOnJ9cmV0dXJuIHUwLmNhbGwodCxlKT90W2VdOnZvaWQgMH1mdW5jdGlvbiB2OXIoZSl7dmFyIHQ9dGhpcy5fX2RhdGFfXztyZXR1cm4gQmY/dFtlXSE9PXZvaWQgMDp1MC5jYWxsKHQsZSl9ZnVuY3Rpb24geDlyKGUsdCl7dmFyIHI9dGhpcy5fX2RhdGFfXztyZXR1cm4gcltlXT1CZiYmdD09PXZvaWQgMD9pdmU6dCx0aGlzfVQzLnByb3RvdHlwZS5jbGVhcj1tOXIsVDMucHJvdG90eXBlLmRlbGV0ZT1nOXIsVDMucHJvdG90eXBlLmdldD1iOXIsVDMucHJvdG90eXBlLmhhcz12OXIsVDMucHJvdG90eXBlLnNldD14OXI7ZnVuY3Rpb24gU2woZSl7dmFyIHQ9LTEscj1lP2UubGVuZ3RoOjA7Zm9yKHRoaXMuY2xlYXIoKTsrK3Q8cjspe3ZhciBpPWVbdF07dGhpcy5zZXQoaVswXSxpWzFdKX19ZnVuY3Rpb24geTlyKCl7dGhpcy5fX2RhdGFfXz1bXX1mdW5jdGlvbiB3OXIoZSl7dmFyIHQ9dGhpcy5fX2RhdGFfXyxyPUx3KHQsZSk7aWYocjwwKXJldHVybiExO3ZhciBpPXQubGVuZ3RoLTE7cmV0dXJuIHI9PWk/dC5wb3AoKTpzOXIuY2FsbCh0LHIsMSksITB9ZnVuY3Rpb24gTTlyKGUpe3ZhciB0PXRoaXMuX19kYXRhX18scj1Mdyh0LGUpO3JldHVybiByPDA/dm9pZCAwOnRbcl1bMV19ZnVuY3Rpb24gazlyKGUpe3JldHVybiBMdyh0aGlzLl9fZGF0YV9fLGUpPi0xfWZ1bmN0aW9uIFM5cihlLHQpe3ZhciByPXRoaXMuX19kYXRhX18saT1MdyhyLGUpO3JldHVybiBpPDA/ci5wdXNoKFtlLHRdKTpyW2ldWzFdPXQsdGhpc31TbC5wcm90b3R5cGUuY2xlYXI9eTlyLFNsLnByb3RvdHlwZS5kZWxldGU9dzlyLFNsLnByb3RvdHlwZS5nZXQ9TTlyLFNsLnByb3RvdHlwZS5oYXM9azlyLFNsLnByb3RvdHlwZS5zZXQ9UzlyO2Z1bmN0aW9uIGV1KGUpe3ZhciB0PS0xLHI9ZT9lLmxlbmd0aDowO2Zvcih0aGlzLmNsZWFyKCk7Kyt0PHI7KXt2YXIgaT1lW3RdO3RoaXMuc2V0KGlbMF0saVsxXSl9fWZ1bmN0aW9uIHo5cigpe3RoaXMuX19kYXRhX189e2hhc2g6bmV3IFQzLG1hcDpuZXcoUmZ8fFNsKSxzdHJpbmc6bmV3IFQzfX1mdW5jdGlvbiBDOXIoZSl7cmV0dXJuIEF3KHRoaXMsZSkuZGVsZXRlKGUpfWZ1bmN0aW9uIFQ5cihlKXtyZXR1cm4gQXcodGhpcyxlKS5nZXQoZSl9ZnVuY3Rpb24gXzlyKGUpe3JldHVybiBBdyh0aGlzLGUpLmhhcyhlKX1mdW5jdGlvbiBMOXIoZSx0KXtyZXR1cm4gQXcodGhpcyxlKS5zZXQoZSx0KSx0aGlzfWV1LnByb3RvdHlwZS5jbGVhcj16OXIsZXUucHJvdG90eXBlLmRlbGV0ZT1DOXIsZXUucHJvdG90eXBlLmdldD1UOXIsZXUucHJvdG90eXBlLmhhcz1fOXIsZXUucHJvdG90eXBlLnNldD1MOXI7ZnVuY3Rpb24gdHUoZSl7dGhpcy5fX2RhdGFfXz1uZXcgU2woZSl9ZnVuY3Rpb24gQTlyKCl7dGhpcy5fX2RhdGFfXz1uZXcgU2x9ZnVuY3Rpb24gRDlyKGUpe3JldHVybiB0aGlzLl9fZGF0YV9fLmRlbGV0ZShlKX1mdW5jdGlvbiBFOXIoZSl7cmV0dXJuIHRoaXMuX19kYXRhX18uZ2V0KGUpfWZ1bmN0aW9uICQ5cihlKXtyZXR1cm4gdGhpcy5fX2RhdGFfXy5oYXMoZSl9ZnVuY3Rpb24gSTlyKGUsdCl7dmFyIHI9dGhpcy5fX2RhdGFfXztpZihyIGluc3RhbmNlb2YgU2wpe3ZhciBpPXIuX19kYXRhX187aWYoIVJmfHxpLmxlbmd0aDxSbXItMSlyZXR1cm4gaS5wdXNoKFtlLHRdKSx0aGlzO3I9dGhpcy5fX2RhdGFfXz1uZXcgZXUoaSl9cmV0dXJuIHIuc2V0KGUsdCksdGhpc310dS5wcm90b3R5cGUuY2xlYXI9QTlyLHR1LnByb3RvdHlwZS5kZWxldGU9RDlyLHR1LnByb3RvdHlwZS5nZXQ9RTlyLHR1LnByb3RvdHlwZS5oYXM9JDlyLHR1LnByb3RvdHlwZS5zZXQ9STlyO2Z1bmN0aW9uIFA5cihlLHQpe3ZhciByPVJxKGUpfHxuZ3IoZSk/S21yKGUubGVuZ3RoLFN0cmluZyk6W10saT1yLmxlbmd0aCxhPSEhaTtmb3IodmFyIG4gaW4gZSkodHx8dTAuY2FsbChlLG4pKSYmIShhJiYobj09Imxlbmd0aCJ8fHRncihuLGkpKSkmJnIucHVzaChuKTtyZXR1cm4gcn1mdW5jdGlvbiBGdmUoZSx0LHIpe3ZhciBpPWVbdF07KCEodTAuY2FsbChlLHQpJiZIdmUoaSxyKSl8fHI9PT12b2lkIDAmJiEodCBpbiBlKSkmJihlW3RdPXIpfWZ1bmN0aW9uIEx3KGUsdCl7Zm9yKHZhciByPWUubGVuZ3RoO3ItLTspaWYoSHZlKGVbcl1bMF0sdCkpcmV0dXJuIHI7cmV0dXJuLTF9ZnVuY3Rpb24gTjlyKGUsdCl7cmV0dXJuIGUmJk92ZSh0LEJxKHQpLGUpfWZ1bmN0aW9uIEZxKGUsdCxyLGksYSxuLG8pe3ZhciBzO2lmKGkmJihzPW4/aShlLGEsbixvKTppKGUpKSxzIT09dm9pZCAwKXJldHVybiBzO2lmKCFEdyhlKSlyZXR1cm4gZTt2YXIgbD1ScShlKTtpZihsKXtpZihzPUo5cihlKSwhdClyZXR1cm4gWjlyKGUscyl9ZWxzZXt2YXIgYz1fMyhlKSx1PWM9PV9xfHxjPT1zdmU7aWYoc2dyKGUpKXJldHVybiBxOXIoZSx0KTtpZihjPT1McXx8Yz09VHF8fHUmJiFuKXtpZihDdmUoZSkpcmV0dXJuIG4/ZTp7fTtpZihzPUs5cih1P3t9OmUpLCF0KXJldHVybiBYOXIoZSxOOXIocyxlKSl9ZWxzZXtpZighaTFbY10pcmV0dXJuIG4/ZTp7fTtzPWVncihlLGMsRnEsdCl9fW98fChvPW5ldyB0dSk7dmFyIGQ9by5nZXQoZSk7aWYoZClyZXR1cm4gZDtpZihvLnNldChlLHMpLCFsKXZhciBoPXI/UTlyKGUpOkJxKGUpO3JldHVybiBRbXIoaHx8ZSxmdW5jdGlvbihmLHgpe2gmJih4PWYsZj1lW3hdKSxGdmUocyx4LEZxKGYsdCxyLGkseCxlLG8pKX0pLHN9ZnVuY3Rpb24gRjlyKGUpe3JldHVybiBEdyhlKT9uOXIoZSk6e319ZnVuY3Rpb24gTzlyKGUsdCxyKXt2YXIgaT10KGUpO3JldHVybiBScShlKT9pOkptcihpLHIoZSkpfWZ1bmN0aW9uIFI5cihlKXtyZXR1cm4gX3cuY2FsbChlKX1mdW5jdGlvbiBCOXIoZSl7aWYoIUR3KGUpfHxpZ3IoZSkpcmV0dXJuITE7dmFyIHQ9anZlKGUpfHxDdmUoZSk/aTlyOlZtcjtyZXR1cm4gdC50ZXN0KEwzKGUpKX1mdW5jdGlvbiBIOXIoZSl7aWYoIUJ2ZShlKSlyZXR1cm4gYzlyKGUpO3ZhciB0PVtdO2Zvcih2YXIgciBpbiBPYmplY3QoZSkpdTAuY2FsbChlLHIpJiZyIT0iY29uc3RydWN0b3IiJiZ0LnB1c2gocik7cmV0dXJuIHR9ZnVuY3Rpb24gcTlyKGUsdCl7aWYodClyZXR1cm4gZS5zbGljZSgpO3ZhciByPW5ldyBlLmNvbnN0cnVjdG9yKGUubGVuZ3RoKTtyZXR1cm4gZS5jb3B5KHIpLHJ9ZnVuY3Rpb24gT3EoZSl7dmFyIHQ9bmV3IGUuY29uc3RydWN0b3IoZS5ieXRlTGVuZ3RoKTtyZXR1cm4gbmV3ICR2ZSh0KS5zZXQobmV3ICR2ZShlKSksdH1mdW5jdGlvbiBqOXIoZSx0KXt2YXIgcj10P09xKGUuYnVmZmVyKTplLmJ1ZmZlcjtyZXR1cm4gbmV3IGUuY29uc3RydWN0b3IocixlLmJ5dGVPZmZzZXQsZS5ieXRlTGVuZ3RoKX1mdW5jdGlvbiBWOXIoZSx0LHIpe3ZhciBpPXQ/cihUdmUoZSksITApOlR2ZShlKTtyZXR1cm4genZlKGksWm1yLG5ldyBlLmNvbnN0cnVjdG9yKX1mdW5jdGlvbiBVOXIoZSl7dmFyIHQ9bmV3IGUuY29uc3RydWN0b3IoZS5zb3VyY2Usam1yLmV4ZWMoZSkpO3JldHVybiB0Lmxhc3RJbmRleD1lLmxhc3RJbmRleCx0fWZ1bmN0aW9uIFc5cihlLHQscil7dmFyIGk9dD9yKF92ZShlKSwhMCk6X3ZlKGUpO3JldHVybiB6dmUoaSxYbXIsbmV3IGUuY29uc3RydWN0b3IpfWZ1bmN0aW9uIEc5cihlKXtyZXR1cm4gTnZlP09iamVjdChOdmUuY2FsbChlKSk6e319ZnVuY3Rpb24gWTlyKGUsdCl7dmFyIHI9dD9PcShlLmJ1ZmZlcik6ZS5idWZmZXI7cmV0dXJuIG5ldyBlLmNvbnN0cnVjdG9yKHIsZS5ieXRlT2Zmc2V0LGUubGVuZ3RoKX1mdW5jdGlvbiBaOXIoZSx0KXt2YXIgcj0tMSxpPWUubGVuZ3RoO2Zvcih0fHwodD1BcnJheShpKSk7KytyPGk7KXRbcl09ZVtyXTtyZXR1cm4gdH1mdW5jdGlvbiBPdmUoZSx0LHIsaSl7cnx8KHI9e30pO2Zvcih2YXIgYT0tMSxuPXQubGVuZ3RoOysrYTxuOyl7dmFyIG89dFthXSxzPWk/aShyW29dLGVbb10sbyxyLGUpOnZvaWQgMDtGdmUocixvLHM9PT12b2lkIDA/ZVtvXTpzKX1yZXR1cm4gcn1mdW5jdGlvbiBYOXIoZSx0KXtyZXR1cm4gT3ZlKGUsUnZlKGUpLHQpfWZ1bmN0aW9uIFE5cihlKXtyZXR1cm4gTzlyKGUsQnEsUnZlKX1mdW5jdGlvbiBBdyhlLHQpe3ZhciByPWUuX19kYXRhX187cmV0dXJuIHJncih0KT9yW3R5cGVvZiB0PT0ic3RyaW5nIj8ic3RyaW5nIjoiaGFzaCJdOnIubWFwfWZ1bmN0aW9uIHJ1KGUsdCl7dmFyIHI9ZTlyKGUsdCk7cmV0dXJuIEI5cihyKT9yOnZvaWQgMH12YXIgUnZlPUl2ZT9EcShJdmUsT2JqZWN0KTpkZ3IsXzM9UjlyOygkcSYmXzMobmV3ICRxKG5ldyBBcnJheUJ1ZmZlcigxKSkpIT1Dd3x8UmYmJl8zKG5ldyBSZikhPVN3fHxJcSYmXzMoSXEucmVzb2x2ZSgpKSE9Y3ZlfHxQcSYmXzMobmV3IFBxKSE9end8fE5xJiZfMyhuZXcgTnEpIT1BcSkmJihfMz1mdW5jdGlvbihlKXt2YXIgdD1fdy5jYWxsKGUpLHI9dD09THE/ZS5jb25zdHJ1Y3Rvcjp2b2lkIDAsaT1yP0wzKHIpOnZvaWQgMDtpZihpKXN3aXRjaChpKXtjYXNlIGQ5cjpyZXR1cm4gQ3c7Y2FzZSB1OXI6cmV0dXJuIFN3O2Nhc2UgcDlyOnJldHVybiBjdmU7Y2FzZSBoOXI6cmV0dXJuIHp3O2Nhc2UgZjlyOnJldHVybiBBcX1yZXR1cm4gdH0pO2Z1bmN0aW9uIEo5cihlKXt2YXIgdD1lLmxlbmd0aCxyPWUuY29uc3RydWN0b3IodCk7cmV0dXJuIHQmJnR5cGVvZiBlWzBdPT0ic3RyaW5nIiYmdTAuY2FsbChlLCJpbmRleCIpJiYoci5pbmRleD1lLmluZGV4LHIuaW5wdXQ9ZS5pbnB1dCkscn1mdW5jdGlvbiBLOXIoZSl7cmV0dXJuIHR5cGVvZiBlLmNvbnN0cnVjdG9yPT0iZnVuY3Rpb24iJiYhQnZlKGUpP0Y5cihhOXIoZSkpOnt9fWZ1bmN0aW9uIGVncihlLHQscixpKXt2YXIgYT1lLmNvbnN0cnVjdG9yO3N3aXRjaCh0KXtjYXNlIGh2ZTpyZXR1cm4gT3EoZSk7Y2FzZSBudmU6Y2FzZSBvdmU6cmV0dXJuIG5ldyBhKCtlKTtjYXNlIEN3OnJldHVybiBqOXIoZSxpKTtjYXNlIGZ2ZTpjYXNlIG12ZTpjYXNlIGd2ZTpjYXNlIGJ2ZTpjYXNlIHZ2ZTpjYXNlIHh2ZTpjYXNlIHl2ZTpjYXNlIHd2ZTpjYXNlIE12ZTpyZXR1cm4gWTlyKGUsaSk7Y2FzZSBTdzpyZXR1cm4gVjlyKGUsaSxyKTtjYXNlIGx2ZTpjYXNlIHV2ZTpyZXR1cm4gbmV3IGEoZSk7Y2FzZSBkdmU6cmV0dXJuIFU5cihlKTtjYXNlIHp3OnJldHVybiBXOXIoZSxpLHIpO2Nhc2UgcHZlOnJldHVybiBHOXIoZSl9fWZ1bmN0aW9uIHRncihlLHQpe3JldHVybiB0PXQ/P2F2ZSwhIXQmJih0eXBlb2YgZT09Im51bWJlciJ8fFVtci50ZXN0KGUpKSYmZT4tMSYmZSUxPT0wJiZlPHR9ZnVuY3Rpb24gcmdyKGUpe3ZhciB0PXR5cGVvZiBlO3JldHVybiB0PT0ic3RyaW5nInx8dD09Im51bWJlciJ8fHQ9PSJzeW1ib2wifHx0PT0iYm9vbGVhbiI/ZSE9PSJfX3Byb3RvX18iOmU9PT1udWxsfWZ1bmN0aW9uIGlncihlKXtyZXR1cm4hIUx2ZSYmTHZlIGluIGV9ZnVuY3Rpb24gQnZlKGUpe3ZhciB0PWUmJmUuY29uc3RydWN0b3Iscj10eXBlb2YgdD09ImZ1bmN0aW9uIiYmdC5wcm90b3R5cGV8fFR3O3JldHVybiBlPT09cn1mdW5jdGlvbiBMMyhlKXtpZihlIT1udWxsKXt0cnl7cmV0dXJuIEF2ZS5jYWxsKGUpfWNhdGNoe310cnl7cmV0dXJuIGUrIiJ9Y2F0Y2h7fX1yZXR1cm4iIn1mdW5jdGlvbiBhZ3IoZSl7cmV0dXJuIEZxKGUsITAsITApfWZ1bmN0aW9uIEh2ZShlLHQpe3JldHVybiBlPT09dHx8ZSE9PWUmJnQhPT10fWZ1bmN0aW9uIG5ncihlKXtyZXR1cm4gb2dyKGUpJiZ1MC5jYWxsKGUsImNhbGxlZSIpJiYoIW85ci5jYWxsKGUsImNhbGxlZSIpfHxfdy5jYWxsKGUpPT1UcSl9dmFyIFJxPUFycmF5LmlzQXJyYXk7ZnVuY3Rpb24gcXZlKGUpe3JldHVybiBlIT1udWxsJiZsZ3IoZS5sZW5ndGgpJiYhanZlKGUpfWZ1bmN0aW9uIG9ncihlKXtyZXR1cm4gY2dyKGUpJiZxdmUoZSl9dmFyIHNncj1sOXJ8fHVncjtmdW5jdGlvbiBqdmUoZSl7dmFyIHQ9RHcoZSk/X3cuY2FsbChlKToiIjtyZXR1cm4gdD09X3F8fHQ9PXN2ZX1mdW5jdGlvbiBsZ3IoZSl7cmV0dXJuIHR5cGVvZiBlPT0ibnVtYmVyIiYmZT4tMSYmZSUxPT0wJiZlPD1hdmV9ZnVuY3Rpb24gRHcoZSl7dmFyIHQ9dHlwZW9mIGU7cmV0dXJuISFlJiYodD09Im9iamVjdCJ8fHQ9PSJmdW5jdGlvbiIpfWZ1bmN0aW9uIGNncihlKXtyZXR1cm4hIWUmJnR5cGVvZiBlPT0ib2JqZWN0In1mdW5jdGlvbiBCcShlKXtyZXR1cm4gcXZlKGUpP1A5cihlKTpIOXIoZSl9ZnVuY3Rpb24gZGdyKCl7cmV0dXJuW119ZnVuY3Rpb24gdWdyKCl7cmV0dXJuITF9aXUuZXhwb3J0cz1hZ3J9KTt2YXIgcXE9amUoKEpMMSxWdmUpPT57InVzZSBzdHJpY3QiO1Z2ZS5leHBvcnRzPWZ1bmN0aW9uKGUsdCl7dHx8KHQ9e30pLHR5cGVvZiB0PT0iZnVuY3Rpb24iJiYodD17Y21wOnR9KTt2YXIgcj10eXBlb2YgdC5jeWNsZXM9PSJib29sZWFuIj90LmN5Y2xlczohMSxpPXQuY21wJiYoZnVuY3Rpb24obil7cmV0dXJuIGZ1bmN0aW9uKG8pe3JldHVybiBmdW5jdGlvbihzLGwpe3ZhciBjPXtrZXk6cyx2YWx1ZTpvW3NdfSx1PXtrZXk6bCx2YWx1ZTpvW2xdfTtyZXR1cm4gbihjLHUpfX19KSh0LmNtcCksYT1bXTtyZXR1cm4oZnVuY3Rpb24gbihvKXtpZihvJiZvLnRvSlNPTiYmdHlwZW9mIG8udG9KU09OPT0iZnVuY3Rpb24iJiYobz1vLnRvSlNPTigpKSxvIT09dm9pZCAwKXtpZih0eXBlb2Ygbz09Im51bWJlciIpcmV0dXJuIGlzRmluaXRlKG8pPyIiK286Im51bGwiO2lmKHR5cGVvZiBvIT0ib2JqZWN0IilyZXR1cm4gSlNPTi5zdHJpbmdpZnkobyk7dmFyIHMsbDtpZihBcnJheS5pc0FycmF5KG8pKXtmb3IobD0iWyIscz0wO3M8by5sZW5ndGg7cysrKXMmJihsKz0iLCIpLGwrPW4ob1tzXSl8fCJudWxsIjtyZXR1cm4gbCsiXSJ9aWYobz09PW51bGwpcmV0dXJuIm51bGwiO2lmKGEuaW5kZXhPZihvKSE9PS0xKXtpZihyKXJldHVybiBKU09OLnN0cmluZ2lmeSgiX19jeWNsZV9fIik7dGhyb3cgbmV3IFR5cGVFcnJvcigiQ29udmVydGluZyBjaXJjdWxhciBzdHJ1Y3R1cmUgdG8gSlNPTiIpfXZhciBjPWEucHVzaChvKS0xLHU9T2JqZWN0LmtleXMobykuc29ydChpJiZpKG8pKTtmb3IobD0iIixzPTA7czx1Lmxlbmd0aDtzKyspe3ZhciBkPXVbc10saD1uKG9bZF0pO2gmJihsJiYobCs9IiwiKSxsKz1KU09OLnN0cmluZ2lmeShkKSsiOiIraCl9cmV0dXJuIGEuc3BsaWNlKGMsMSksInsiK2wrIn0ifX0pKGUpfX0pO3ZhciBFdyxVdmUsJHcsanE9cCgoKT0+e1E1KCk7T2YoKTtFdz1lcihIcSgpLDEpLFV2ZT1lcihxcSgpLDEpLCR3PVV2ZS5kZWZhdWx0fSk7ZnVuY3Rpb24gaGdyKGUpe3JldHVybiB0eXBlb2YgQnVmZmVyPCJ1Ij9CdWZmZXIuZnJvbShlKS50b1N0cmluZygiYmFzZTY0Iik6YnRvYShTdHJpbmcuZnJvbUNoYXJDb2RlKC4uLmUpKX1mdW5jdGlvbiBmZ3IoZSl7aWYodHlwZW9mIEJ1ZmZlcjwidSIpe2xldCB0PUJ1ZmZlci5mcm9tKGUsImJhc2U2NCIpO3JldHVybiBuZXcgVWludDhBcnJheSh0LmJ1ZmZlcix0LmJ5dGVPZmZzZXQsdC5ieXRlTGVuZ3RoKX1yZXR1cm4gbmV3IFVpbnQ4QXJyYXkoQXJyYXkuZnJvbShhdG9iKGUpKS5tYXAodD0+dC5jaGFyQ29kZUF0KDApKSl9ZnVuY3Rpb24gVXEoZSx0KXtyZXR1cm4gSlNPTi5zdHJpbmdpZnkoZSxJdyx0KX1mdW5jdGlvbiBXcShlKXtyZXR1cm4gSlNPTi5wYXJzZShlLFd2ZSl9ZnVuY3Rpb24gbWdyKGUpe3JldHVybiBZdmUoZSkmJmUudHlwZT09PSJFbmNvZGVkQnVmZmVyIiYmVnEoZS5kYXRhKX1mdW5jdGlvbiBnZ3IoZSl7cmV0dXJuIFl2ZShlKSYmZS50eXBlPT09IkJ1ZmZlciImJihHdmUoZS5kYXRhKXx8VnEoZS5kYXRhKSl8fGUgaW5zdGFuY2VvZiBVaW50OEFycmF5fWZ1bmN0aW9uIEd2ZShlKXtyZXR1cm4gQXJyYXkuaXNBcnJheShlKX1mdW5jdGlvbiBWcShlKXtyZXR1cm4gdHlwZW9mIGU9PSJzdHJpbmcifWZ1bmN0aW9uIFl2ZShlKXtyZXR1cm4gdHlwZW9mIGU9PSJvYmplY3QiJiZlIT09bnVsbH12YXIgSXcsV3ZlLFp2ZT1wKCgpPT57anEoKTtJdz0oZSx0KT0+e2lmKGdncih0KSl7bGV0IHI7aWYoImRhdGEiaW4gdCYmR3ZlKHQuZGF0YSkpcj1uZXcgVWludDhBcnJheSh0LmRhdGEpO2Vsc2UgaWYodCBpbnN0YW5jZW9mIFVpbnQ4QXJyYXkpcj10O2Vsc2UgcmV0dXJuIHQ7cmV0dXJue3R5cGU6IkVuY29kZWRCdWZmZXIiLGRhdGE6ImJhc2U2NDoiK2hncihyKX19cmV0dXJuIHR9LFd2ZT0oZSx0KT0+e2lmKG1ncih0KSYmVnEodC5kYXRhKSYmdC5kYXRhLnN0YXJ0c1dpdGgoImJhc2U2NDoiKSl7bGV0IHI9dC5kYXRhLnNsaWNlKDcpO3JldHVybiBmZ3Iocil9cmV0dXJuIHR9fSk7dmFyIHYxPXt9O0ZlKHYxLHtTbWFydGpzb246KCk9PllxLGRlZXBFcXVhbEpzb25MU3RyaW5nczooKT0+U2dyLGRlZXBFcXVhbE9iamVjdHM6KCk9Plh2ZSxmb2xkRGVjOigpPT5rZ3IscGFyc2U6KCk9PlB3LHBhcnNlQmFzZTY0OigpPT5NZ3IscGFyc2VKc29uTDooKT0+R3Esc3RhYmxlT25lV2F5U3RyaW5naWZ5OigpPT54Z3Isc3RyaW5naWZ5OigpPT5BMyxzdHJpbmdpZnlCYXNlNjQ6KCk9PndncixzdHJpbmdpZnlKc29uTDooKT0+dmdyLHN0cmluZ2lmeVByZXR0eTooKT0+eWdyfSk7dmFyIFB3LEdxLHZncix4Z3IsQTMseWdyLHdncixNZ3IsWXEsa2dyLFh2ZSxTZ3IsYXU9cCgoKT0+e2pxKCk7WnZlKCk7UHc9V3EsR3E9ZT0+ZS5zcGxpdChgCmApLnJlZHVjZSgoaSxhKT0+e2xldCBuPWEudHJpbSgpO3JldHVybiBuLmxlbmd0aD4wJiZpLnB1c2goUHcobikpLGl9LFtdKSx2Z3I9ZT0+ZS5tYXAodD0+QTModCkpLmpvaW4oYApgKSx4Z3I9KGUsdCxyPXt9KT0+e2xldCBpPW5ldyBXZWFrU2V0LGE9cz0+e2lmKHM9PT1udWxsfHx0eXBlb2YgcyE9Im9iamVjdCIpcmV0dXJuIHM7bGV0IGw9SXcoIiIscyk7aWYobCYmbC50eXBlPT09IkVuY29kZWRCdWZmZXIiJiZ0eXBlb2YgbC5kYXRhPT0ic3RyaW5nIilyZXR1cm4gbDtpZihpLmhhcyhzKSlyZXR1cm4iX19jeWNsZV9fIjtpZihpLmFkZChzKSxBcnJheS5pc0FycmF5KHMpKXJldHVybiBzLm1hcCh1PT5hKHUpKTtsZXQgYz17fTtmb3IobGV0IHUgb2YgT2JqZWN0LmtleXMocykpdHJ5e2NbdV09YShzW3VdKX1jYXRjaHtjW3VdPSJfX3Vuc2VyaWFsaXphYmxlX18ifXJldHVybiBjfSxuPWEoZSksbz17Li4ucixjeWNsZXM6ITB9O2lmKHQmJiFvLmNtcCl7bGV0IHM9bmV3IE1hcDt0LmZvckVhY2goKGwsYyk9PnMuc2V0KGwsYykpLG8uY21wPShsLGMpPT57bGV0IHU9cy5oYXMobC5rZXkpP3MuZ2V0KGwua2V5KTpOdW1iZXIuUE9TSVRJVkVfSU5GSU5JVFksZD1zLmhhcyhjLmtleSk/cy5nZXQoYy5rZXkpOk51bWJlci5QT1NJVElWRV9JTkZJTklUWTtyZXR1cm4gdSE9PWQ/dS1kOmwua2V5PGMua2V5Py0xOmwua2V5PmMua2V5PzE6MH19cmV0dXJuICR3KG4sbyl9LEEzPShlLHQscj17fSk9PntsZXQgaT1VcShlKTtlPUpTT04ucGFyc2UoaSk7bGV0IGE9ey4uLnJ9O2lmKHQmJiFhLmNtcCl7bGV0IG89bmV3IE1hcDt0LmZvckVhY2goKHMsbCk9Pm8uc2V0KHMsbCkpLGEuY21wPShzLGwpPT57bGV0IGM9by5oYXMocy5rZXkpP28uZ2V0KHMua2V5KTpOdW1iZXIuUE9TSVRJVkVfSU5GSU5JVFksdT1vLmhhcyhsLmtleSk/by5nZXQobC5rZXkpOk51bWJlci5QT1NJVElWRV9JTkZJTklUWTtyZXR1cm4gYyE9PXU/Yy11OnMua2V5PGwua2V5Py0xOnMua2V5Pmwua2V5PzE6MH19cmV0dXJuICR3KGUsYSl9LHlncj1lPT57bGV0IHQ9QTMoZSkscj1KU09OLnBhcnNlKHQpO3JldHVybiBKU09OLnN0cmluZ2lmeShyLG51bGwsMil9LHdncj0oLi4uZSk9PntsZXQgdD1BMyguLi5lKTtyZXR1cm4gZ2EuYmFzZTY0LmVuY29kZVVyaSh0KX0sTWdyPWU9PntsZXQgdD1nYS5iYXNlNjQsaT0odC5kZWNvZGVVcml8fHQuZGVjb2RlKShlKTtyZXR1cm4gUHcoaSl9LFlxPWNsYXNzIGV7c3RhdGljIGVuZm9sZEZyb21PYmplY3QodCl7bGV0IHI9bmV3IHRoaXMsaT1yLnNhdmVhYmxlUHJvcGVydGllc3x8W107Zm9yKGxldCBhIGluIHQpaS5pbmRleE9mKGEpIT09LTEmJihyW2FdPXRbYV0pO3JldHVybiByfXN0YXRpYyBlbmZvbGRGcm9tSnNvbih0KXtsZXQgcj1Qdyh0KTtyZXR1cm4gdGhpcy5lbmZvbGRGcm9tT2JqZWN0KHIpfWZvbGRUb09iamVjdCgpe2xldCB0PW5ldyBTZXQ7cmV0dXJuIHQuYWRkKHRoaXMpLHRoaXMuZm9sZFRvT2JqZWN0SW50ZXJuYWwodCl9Zm9sZFRvT2JqZWN0SW50ZXJuYWwodCl7bGV0IHI9e30saT1uPT57aWYobiBpbnN0YW5jZW9mIGUpe2lmKHQuaGFzKG4pKXRocm93IG5ldyBFcnJvcigiY3ljbGUgZGV0ZWN0ZWQiKTtyZXR1cm4gdC5hZGQobiksbi5mb2xkVG9PYmplY3RJbnRlcm5hbCh0KX1yZXR1cm4gQXJyYXkuaXNBcnJheShuKT9uLm1hcChvPT5pKG8pKTpFdy5kZWZhdWx0KG4pfSxhPXRoaXMuc2F2ZWFibGVQcm9wZXJ0aWVzfHxbXTtmb3IobGV0IG4gb2YgYSl7bGV0IG89dGhpc1tuXTtyW25dPWkobyl9cmV0dXJuIHJ9Zm9sZFRvSnNvbigpe2xldCB0PXRoaXMuZm9sZFRvT2JqZWN0KCk7cmV0dXJuIEEzKHQpfX0sa2dyPSgpPT4oZSx0KT0+e2Uuc2F2ZWFibGVQcm9wZXJ0aWVzfHwoZS5zYXZlYWJsZVByb3BlcnRpZXM9W10pLGUuc2F2ZWFibGVQcm9wZXJ0aWVzLnB1c2godCl9LFh2ZT0oZSx0KT0+e2xldCByPUEzKGUpLGk9QTModCk7cmV0dXJuIHI9PT1pfSxTZ3I9KGUsdCk9PntsZXQgcj1HcShlKSxpPUdxKHQpO3JldHVybiBYdmUocixpKX19KTt2YXIgamY9e307RmUoamYse2RlbGV0ZURCOigpPT5ueGUsb3BlbkRCOigpPT5heGUsdW53cmFwOigpPT5xZix3cmFwOigpPT5uc30pO2Z1bmN0aW9uIHpncigpe3JldHVybiBRdmV8fChRdmU9W0lEQkRhdGFiYXNlLElEQk9iamVjdFN0b3JlLElEQkluZGV4LElEQkN1cnNvcixJREJUcmFuc2FjdGlvbl0pfWZ1bmN0aW9uIENncigpe3JldHVybiBKdmV8fChKdmU9W0lEQkN1cnNvci5wcm90b3R5cGUuYWR2YW5jZSxJREJDdXJzb3IucHJvdG90eXBlLmNvbnRpbnVlLElEQkN1cnNvci5wcm90b3R5cGUuY29udGludWVQcmltYXJ5S2V5XSl9ZnVuY3Rpb24gVGdyKGUpe2xldCB0PW5ldyBQcm9taXNlKChyLGkpPT57bGV0IGE9KCk9PntlLnJlbW92ZUV2ZW50TGlzdGVuZXIoInN1Y2Nlc3MiLG4pLGUucmVtb3ZlRXZlbnRMaXN0ZW5lcigiZXJyb3IiLG8pfSxuPSgpPT57cihucyhlLnJlc3VsdCkpLGEoKX0sbz0oKT0+e2koZS5lcnJvciksYSgpfTtlLmFkZEV2ZW50TGlzdGVuZXIoInN1Y2Nlc3MiLG4pLGUuYWRkRXZlbnRMaXN0ZW5lcigiZXJyb3IiLG8pfSk7cmV0dXJuIE53LnNldCh0LGUpLHR9ZnVuY3Rpb24gX2dyKGUpe2lmKFhxLmhhcyhlKSlyZXR1cm47bGV0IHQ9bmV3IFByb21pc2UoKHIsaSk9PntsZXQgYT0oKT0+e2UucmVtb3ZlRXZlbnRMaXN0ZW5lcigiY29tcGxldGUiLG4pLGUucmVtb3ZlRXZlbnRMaXN0ZW5lcigiZXJyb3IiLG8pLGUucmVtb3ZlRXZlbnRMaXN0ZW5lcigiYWJvcnQiLG8pfSxuPSgpPT57cigpLGEoKX0sbz0oKT0+e2koZS5lcnJvcnx8bmV3IERPTUV4Y2VwdGlvbigiQWJvcnRFcnJvciIsIkFib3J0RXJyb3IiKSksYSgpfTtlLmFkZEV2ZW50TGlzdGVuZXIoImNvbXBsZXRlIixuKSxlLmFkZEV2ZW50TGlzdGVuZXIoImVycm9yIixvKSxlLmFkZEV2ZW50TGlzdGVuZXIoImFib3J0IixvKX0pO1hxLnNldChlLHQpfWZ1bmN0aW9uIEt2ZShlKXtKcT1lKEpxKX1mdW5jdGlvbiBMZ3IoZSl7cmV0dXJuIENncigpLmluY2x1ZGVzKGUpP2Z1bmN0aW9uKC4uLnQpe3JldHVybiBlLmFwcGx5KHFmKHRoaXMpLHQpLG5zKHRoaXMucmVxdWVzdCl9OmZ1bmN0aW9uKC4uLnQpe3JldHVybiBucyhlLmFwcGx5KHFmKHRoaXMpLHQpKX19ZnVuY3Rpb24gQWdyKGUpe3JldHVybiB0eXBlb2YgZT09ImZ1bmN0aW9uIj9MZ3IoZSk6KGUgaW5zdGFuY2VvZiBJREJUcmFuc2FjdGlvbiYmX2dyKGUpLFpxKGUsemdyKCkpP25ldyBQcm94eShlLEpxKTplKX1mdW5jdGlvbiBucyhlKXtpZihlIGluc3RhbmNlb2YgSURCUmVxdWVzdClyZXR1cm4gVGdyKGUpO2lmKFFxLmhhcyhlKSlyZXR1cm4gUXEuZ2V0KGUpO2xldCB0PUFncihlKTtyZXR1cm4gdCE9PWUmJihRcS5zZXQoZSx0KSxOdy5zZXQodCxlKSksdH1mdW5jdGlvbiBheGUoZSx0LHtibG9ja2VkOnIsdXBncmFkZTppLGJsb2NraW5nOmEsdGVybWluYXRlZDpufT17fSl7bGV0IG89aW5kZXhlZERCLm9wZW4oZSx0KSxzPW5zKG8pO3JldHVybiBpJiZvLmFkZEV2ZW50TGlzdGVuZXIoInVwZ3JhZGVuZWVkZWQiLGw9PntpKG5zKG8ucmVzdWx0KSxsLm9sZFZlcnNpb24sbC5uZXdWZXJzaW9uLG5zKG8udHJhbnNhY3Rpb24pLGwpfSksciYmby5hZGRFdmVudExpc3RlbmVyKCJibG9ja2VkIixsPT5yKGwub2xkVmVyc2lvbixsLm5ld1ZlcnNpb24sbCkpLHMudGhlbihsPT57biYmbC5hZGRFdmVudExpc3RlbmVyKCJjbG9zZSIsKCk9Pm4oKSksYSYmbC5hZGRFdmVudExpc3RlbmVyKCJ2ZXJzaW9uY2hhbmdlIixjPT5hKGMub2xkVmVyc2lvbixjLm5ld1ZlcnNpb24sYykpfSkuY2F0Y2goKCk9Pnt9KSxzfWZ1bmN0aW9uIG54ZShlLHtibG9ja2VkOnR9PXt9KXtsZXQgcj1pbmRleGVkREIuZGVsZXRlRGF0YWJhc2UoZSk7cmV0dXJuIHQmJnIuYWRkRXZlbnRMaXN0ZW5lcigiYmxvY2tlZCIsaT0+dChpLm9sZFZlcnNpb24saSkpLG5zKHIpLnRoZW4oKCk9Pnt9KX1mdW5jdGlvbiBleGUoZSx0KXtpZighKGUgaW5zdGFuY2VvZiBJREJEYXRhYmFzZSYmISh0IGluIGUpJiZ0eXBlb2YgdD09InN0cmluZyIpKXJldHVybjtpZihLcS5nZXQodCkpcmV0dXJuIEtxLmdldCh0KTtsZXQgcj10LnJlcGxhY2UoL0Zyb21JbmRleCQvLCIiKSxpPXQhPT1yLGE9RWdyLmluY2x1ZGVzKHIpO2lmKCEociBpbihpP0lEQkluZGV4OklEQk9iamVjdFN0b3JlKS5wcm90b3R5cGUpfHwhKGF8fERnci5pbmNsdWRlcyhyKSkpcmV0dXJuO2xldCBuPWFzeW5jIGZ1bmN0aW9uKG8sLi4ucyl7bGV0IGw9dGhpcy50cmFuc2FjdGlvbihvLGE/InJlYWR3cml0ZSI6InJlYWRvbmx5IiksYz1sLnN0b3JlO3JldHVybiBpJiYoYz1jLmluZGV4KHMuc2hpZnQoKSkpLChhd2FpdCBQcm9taXNlLmFsbChbY1tyXSguLi5zKSxhJiZsLmRvbmVdKSlbMF19O3JldHVybiBLcS5zZXQodCxuKSxufWFzeW5jIGZ1bmN0aW9uKlBnciguLi5lKXtsZXQgdD10aGlzO2lmKHQgaW5zdGFuY2VvZiBJREJDdXJzb3J8fCh0PWF3YWl0IHQub3BlbkN1cnNvciguLi5lKSksIXQpcmV0dXJuO3Q9dDtsZXQgcj1uZXcgUHJveHkodCxJZ3IpO2ZvcihyeGUuc2V0KHIsdCksTncuc2V0KHIscWYodCkpO3Q7KXlpZWxkIHIsdD1hd2FpdChlai5nZXQocil8fHQuY29udGludWUoKSksZWouZGVsZXRlKHIpfWZ1bmN0aW9uIGl4ZShlLHQpe3JldHVybiB0PT09U3ltYm9sLmFzeW5jSXRlcmF0b3ImJlpxKGUsW0lEQkluZGV4LElEQk9iamVjdFN0b3JlLElEQkN1cnNvcl0pfHx0PT09Iml0ZXJhdGUiJiZacShlLFtJREJJbmRleCxJREJPYmplY3RTdG9yZV0pfXZhciBacSxRdmUsSnZlLFhxLFFxLE53LEpxLHFmLERncixFZ3IsS3EsJGdyLHR4ZSxlaixyeGUsSWdyLG94ZT1wKCgpPT57WnE9KGUsdCk9PnQuc29tZShyPT5lIGluc3RhbmNlb2Ygcik7WHE9bmV3IFdlYWtNYXAsUXE9bmV3IFdlYWtNYXAsTnc9bmV3IFdlYWtNYXA7SnE9e2dldChlLHQscil7aWYoZSBpbnN0YW5jZW9mIElEQlRyYW5zYWN0aW9uKXtpZih0PT09ImRvbmUiKXJldHVybiBYcS5nZXQoZSk7aWYodD09PSJzdG9yZSIpcmV0dXJuIHIub2JqZWN0U3RvcmVOYW1lc1sxXT92b2lkIDA6ci5vYmplY3RTdG9yZShyLm9iamVjdFN0b3JlTmFtZXNbMF0pfXJldHVybiBucyhlW3RdKX0sc2V0KGUsdCxyKXtyZXR1cm4gZVt0XT1yLCEwfSxoYXMoZSx0KXtyZXR1cm4gZSBpbnN0YW5jZW9mIElEQlRyYW5zYWN0aW9uJiYodD09PSJkb25lInx8dD09PSJzdG9yZSIpPyEwOnQgaW4gZX19O3FmPWU9Pk53LmdldChlKTtEZ3I9WyJnZXQiLCJnZXRLZXkiLCJnZXRBbGwiLCJnZXRBbGxLZXlzIiwiY291bnQiXSxFZ3I9WyJwdXQiLCJhZGQiLCJkZWxldGUiLCJjbGVhciJdLEtxPW5ldyBNYXA7S3ZlKGU9Pih7Li4uZSxnZXQ6KHQscixpKT0+ZXhlKHQscil8fGUuZ2V0KHQscixpKSxoYXM6KHQscik9PiEhZXhlKHQscil8fGUuaGFzKHQscil9KSk7JGdyPVsiY29udGludWUiLCJjb250aW51ZVByaW1hcnlLZXkiLCJhZHZhbmNlIl0sdHhlPXt9LGVqPW5ldyBXZWFrTWFwLHJ4ZT1uZXcgV2Vha01hcCxJZ3I9e2dldChlLHQpe2lmKCEkZ3IuaW5jbHVkZXModCkpcmV0dXJuIGVbdF07bGV0IHI9dHhlW3RdO3JldHVybiByfHwocj10eGVbdF09ZnVuY3Rpb24oLi4uaSl7ZWouc2V0KHRoaXMscnhlLmdldCh0aGlzKVt0XSguLi5pKSl9KSxyfX07S3ZlKGU9Pih7Li4uZSxnZXQodCxyLGkpe3JldHVybiBpeGUodCxyKT9QZ3I6ZS5nZXQodCxyLGkpfSxoYXModCxyKXtyZXR1cm4gaXhlKHQscil8fGUuaGFzKHQscil9fSkpfSk7dmFyIHRqPXAoKCk9PntfZigpO1E1KCk7YXUoKTtzYSgpO3QyKCk7S2goKTtveGUoKX0pO3ZhciBWZixyaj1wKCgpPT57dGooKTtWZj1jbGFzc3tjb25zdHJ1Y3Rvcih0KXt0aGlzLmluaXRDYWxsZWQ9ITEsdGhpcy5yZWFkeURlZmVycmVkPUtlLmRlZmVyKCksdGhpcy5vcHRpb25zPXR9YXN5bmMgaW5pdCgpe2lmKHRoaXMuaW5pdENhbGxlZCl7YXdhaXQgdGhpcy5yZWFkeURlZmVycmVkLnByb21pc2U7cmV0dXJufXRoaXMuaW5pdENhbGxlZD0hMDtsZXQgdD1uZXcgJG4uU21hcnRlbnY7aWYoIXQuaXNCcm93c2VyJiYhZ2xvYmFsVGhpcy5pbmRleGVkREImJihjb25zb2xlLmxvZygiaGV5IiksY29uc29sZS5sb2coZ2xvYmFsVGhpcy5pbmRleGVkREIpLGF3YWl0IHQuZ2V0U2FmZU5vZGVNb2R1bGUoImZha2UtaW5kZXhlZGRiL2F1dG8iKSwhZ2xvYmFsVGhpcy5pbmRleGVkREIpKXtsZXQgcj1hd2FpdCB0LmdldFNhZmVOb2RlTW9kdWxlKCJmYWtlLWluZGV4ZWRkYiIpO2dsb2JhbFRoaXMuaW5kZXhlZERCPW5ldyByLklEQkZhY3Rvcnl9dGhpcy5kYj1hd2FpdCBqZi5vcGVuREIodGhpcy5vcHRpb25zLmRiTmFtZSwxLHt1cGdyYWRlOnI9PntyLmNyZWF0ZU9iamVjdFN0b3JlKHRoaXMub3B0aW9ucy5zdG9yZU5hbWUpfX0pLHRoaXMucmVhZHlEZWZlcnJlZC5yZXNvbHZlKCl9YXN5bmMgZ2V0KHQpe3JldHVybiBhd2FpdCB0aGlzLmluaXQoKSx0aGlzLmRiLmdldCh0aGlzLm9wdGlvbnMuc3RvcmVOYW1lLHQpfWFzeW5jIGNoZWNrKHQpe3JldHVybiBhd2FpdCB0aGlzLmluaXQoKSwhIWF3YWl0IHRoaXMuZ2V0KHQpfWFzeW5jIHNldCh0LHIpe3JldHVybiBhd2FpdCB0aGlzLmluaXQoKSx0aGlzLmRiLnB1dCh0aGlzLm9wdGlvbnMuc3RvcmVOYW1lLHIsdCl9YXN5bmMgZGVsZXRlKHQpe3JldHVybiBhd2FpdCB0aGlzLmluaXQoKSx0aGlzLmRiLmRlbGV0ZSh0aGlzLm9wdGlvbnMuc3RvcmVOYW1lLHQpfWFzeW5jIGNsZWFyKCl7cmV0dXJuIGF3YWl0IHRoaXMuaW5pdCgpLHRoaXMuZGIuY2xlYXIodGhpcy5vcHRpb25zLnN0b3JlTmFtZSl9YXN5bmMga2V5cygpe3JldHVybiBhd2FpdCB0aGlzLmluaXQoKSx0aGlzLmRiLmdldEFsbEtleXModGhpcy5vcHRpb25zLnN0b3JlTmFtZSl9fX0pO3ZhciBpaixseGU9cCgoKT0+e3JqKCk7dGooKTtpaj1jbGFzc3tjb25zdHJ1Y3Rvcih0PSJkZWZhdWx0Iil7dGhpcy53ZWJzdG9yZT1uZXcgVmYoe2RiTmFtZToidHJTdG9yZSIsc3RvcmVOYW1lOmB0clN0b3JlLSR7dH1gfSl9YnVpbGRLZXkodCl7cmV0dXJuIHYxLnN0cmluZ2lmeSh7bWV0aG9kOnQubWV0aG9kLHJlcXVlc3Q6dC5yZXF1ZXN0fSl9YXN5bmMgc2V0QnlSZXF1ZXN0KHQpe2lmKCF0LnJlc3BvbnNlKXRocm93IG5ldyBFcnJvcigiWW91IGNhbm5vdCBzdG9yZSByZXF1ZXN0cyB3aXRob3V0IGEgcmVzcG9uc2UgcHJlc2VudCIpO2F3YWl0IHRoaXMud2Vic3RvcmUuc2V0KHRoaXMuYnVpbGRLZXkodCksdCl9YXN5bmMgZ2V0QnlSZXF1ZXN0KHQpe3JldHVybiBhd2FpdCB0aGlzLndlYnN0b3JlLmdldCh0aGlzLmJ1aWxkS2V5KHQpKX19fSk7dmFyIGphPXt9O0ZlKGphLHtUeXBlZHJlcXVlc3RDYWNoZTooKT0+aWosV2ViU3RvcmU6KCk9PlZmfSk7dmFyIFVmPXAoKCk9PntseGUoKTtyaigpfSk7dmFyIFdmPXAoKCk9PntZMigpO1E1KCk7YXUoKTtzYSgpO1VmKCl9KTt2YXIgbnUsT3c9cCgoKT0+e1dmKCk7bnU9Y2xhc3N7Y29uc3RydWN0b3IodD0id2VicmVxdWVzdC12NCIscj0iY2FjaGUiKXt0aGlzLndlYnN0b3JlPW5ldyBqYS5XZWJTdG9yZSh7ZGJOYW1lOnQsc3RvcmVOYW1lOnJ9KSx0aGlzLmluaXRQcm9taXNlPXRoaXMuaW5pdCgpfWFzeW5jIGluaXQoKXt9Z2VuZXJhdGVDYWNoZUtleSh0KXtsZXQgcj10LnVybCxpPXQubWV0aG9kO3JldHVybiBpPT09IkdFVCI/cjpgJHtpfToke3J9YH1hc3luYyBzZXQodCxyKXthd2FpdCB0aGlzLmluaXRQcm9taXNlLGF3YWl0IHRoaXMud2Vic3RvcmUuc2V0KHQscil9YXN5bmMgZ2V0KHQpe2F3YWl0IHRoaXMuaW5pdFByb21pc2U7dHJ5e3JldHVybiBhd2FpdCB0aGlzLndlYnN0b3JlLmdldCh0KXx8bnVsbH1jYXRjaHtyZXR1cm4gbnVsbH19YXN5bmMgaGFzKHQpe3JldHVybiBhd2FpdCB0aGlzLmluaXRQcm9taXNlLGF3YWl0IHRoaXMud2Vic3RvcmUuY2hlY2sodCl9YXN5bmMgZGVsZXRlKHQpe2F3YWl0IHRoaXMuaW5pdFByb21pc2UsYXdhaXQgdGhpcy53ZWJzdG9yZS5kZWxldGUodCl9YXN5bmMgY2xlYXIoKXthd2FpdCB0aGlzLmluaXRQcm9taXNlLGF3YWl0IHRoaXMud2Vic3RvcmUuY2xlYXIoKX1yZXNwb25zZUZyb21DYWNoZUVudHJ5KHQpe2xldCByPW5ldyBIZWFkZXJzKHQuaGVhZGVycyk7cmV0dXJuIG5ldyBSZXNwb25zZSh0LnJlc3BvbnNlLHtzdGF0dXM6dC5zdGF0dXMsc3RhdHVzVGV4dDp0LnN0YXR1c1RleHQsaGVhZGVyczpyfSl9YXN5bmMgY2FjaGVFbnRyeUZyb21SZXNwb25zZSh0LHIsaSl7bGV0IGE9ci5jbG9uZSgpLG49YXdhaXQgYS5hcnJheUJ1ZmZlcigpLG89e307cmV0dXJuIGEuaGVhZGVycy5mb3JFYWNoKChzLGwpPT57b1tsXT1zfSkse3Jlc3BvbnNlOm4saGVhZGVyczpvLHRpbWVzdGFtcDpEYXRlLm5vdygpLGV0YWc6aT8uZXRhZ3x8YS5oZWFkZXJzLmdldCgiZXRhZyIpfHx2b2lkIDAsbGFzdE1vZGlmaWVkOmk/Lmxhc3RNb2RpZmllZHx8YS5oZWFkZXJzLmdldCgibGFzdC1tb2RpZmllZCIpfHx2b2lkIDAsbWF4QWdlOmk/Lm1heEFnZSx1cmw6dCxzdGF0dXM6YS5zdGF0dXMsc3RhdHVzVGV4dDphLnN0YXR1c1RleHR9fWFzeW5jIHBydW5lRXhwaXJlZCgpe3JldHVybiBhd2FpdCB0aGlzLmluaXRQcm9taXNlLDB9fX0pO2Z1bmN0aW9uIE5ncihlKXtsZXQgdD17bWF4QWdlOjAsaW1tdXRhYmxlOiExLG5vQ2FjaGU6ITEsbm9TdG9yZTohMSxtdXN0UmV2YWxpZGF0ZTohMX07aWYoIWUpcmV0dXJuIHQ7bGV0IHI9ZS50b0xvd2VyQ2FzZSgpLnNwbGl0KCIsIikubWFwKGk9PmkudHJpbSgpKTtmb3IobGV0IGkgb2YgcilpZihpPT09Im5vLWNhY2hlIil0Lm5vQ2FjaGU9ITA7ZWxzZSBpZihpPT09Im5vLXN0b3JlIil0Lm5vU3RvcmU9ITA7ZWxzZSBpZihpPT09ImltbXV0YWJsZSIpdC5pbW11dGFibGU9ITA7ZWxzZSBpZihpPT09Im11c3QtcmV2YWxpZGF0ZSIpdC5tdXN0UmV2YWxpZGF0ZT0hMDtlbHNlIGlmKGkuc3RhcnRzV2l0aCgibWF4LWFnZT0iKSl7bGV0IGE9cGFyc2VJbnQoaS5zcGxpdCgiPSIpWzFdLDEwKTtpc05hTihhKXx8KHQubWF4QWdlPWEqMWUzKX1yZXR1cm4gdH1mdW5jdGlvbiBGZ3IoZSl7aWYoZSl0cnl7cmV0dXJuIG5ldyBEYXRlKGUpLmdldFRpbWUoKX1jYXRjaHtyZXR1cm59fWZ1bmN0aW9uIG9zKGUpe2xldCB0PWUuZ2V0KCJjYWNoZS1jb250cm9sIikscj1lLmdldCgiZXhwaXJlcyIpLGk9ZS5nZXQoImV0YWciKSxhPWUuZ2V0KCJsYXN0LW1vZGlmaWVkIiksbj1OZ3IodCk7aWYobi5tYXhBZ2U9PT0wJiZyKXtsZXQgbz1GZ3Iocik7byYmKG4ubWF4QWdlPU1hdGgubWF4KDAsby1EYXRlLm5vdygpKSl9cmV0dXJue21heEFnZTpuLm1heEFnZXx8MCxldGFnOml8fHZvaWQgMCxsYXN0TW9kaWZpZWQ6YXx8dm9pZCAwLGltbXV0YWJsZTpuLmltbXV0YWJsZXx8ITEsbm9DYWNoZTpuLm5vQ2FjaGV8fCExLG5vU3RvcmU6bi5ub1N0b3JlfHwhMSxtdXN0UmV2YWxpZGF0ZTpuLm11c3RSZXZhbGlkYXRlfHwhMX19ZnVuY3Rpb24gR2YoZSx0KXtpZih0Lm5vU3RvcmUpcmV0dXJuITE7aWYodC5pbW11dGFibGUpcmV0dXJuITA7bGV0IHI9RGF0ZS5ub3coKS1lLnRpbWVzdGFtcCxpPWUubWF4QWdlfHx0Lm1heEFnZXx8MDtyZXR1cm4gaT09PTA/ITE6cjxpfWZ1bmN0aW9uIFlmKGUpe3JldHVybiBlLm5vQ2FjaGV8fGUubXVzdFJldmFsaWRhdGV9ZnVuY3Rpb24gUncoZSl7bGV0IHQ9e307cmV0dXJuIGUuZXRhZyYmKHRbImlmLW5vbmUtbWF0Y2giXT1lLmV0YWcpLGUubGFzdE1vZGlmaWVkJiYodFsiaWYtbW9kaWZpZWQtc2luY2UiXT1lLmxhc3RNb2RpZmllZCksdH1mdW5jdGlvbiBCdyhlKXtsZXQgdD17fTtyZXR1cm4gZS5mb3JFYWNoKChyLGkpPT57dFtpXT1yfSksdH1mdW5jdGlvbiBjeGUoZSl7bGV0IHQ9bmV3IEhlYWRlcnM7cmV0dXJuIE9iamVjdC5lbnRyaWVzKGUpLmZvckVhY2goKFtyLGldKT0+e3Quc2V0KHIsaSl9KSx0fXZhciBIdz1wKCgpPT57fSk7ZnVuY3Rpb24gZHhlKGUpe3N3aXRjaChlKXtjYXNlIm5ldHdvcmstZmlyc3QiOnJldHVybiBuZXcgcXc7Y2FzZSJjYWNoZS1maXJzdCI6cmV0dXJuIG5ldyBhajtjYXNlInN0YWxlLXdoaWxlLXJldmFsaWRhdGUiOnJldHVybiBuZXcgbmo7Y2FzZSJuZXR3b3JrLW9ubHkiOnJldHVybiBuZXcgb2o7Y2FzZSJjYWNoZS1vbmx5IjpyZXR1cm4gbmV3IHNqO2RlZmF1bHQ6cmV0dXJuIG5ldyBxd319dmFyIHF3LGFqLG5qLG9qLHNqLHV4ZT1wKCgpPT57T3coKTtIdygpO3F3PWNsYXNze2FzeW5jIGV4ZWN1dGUodCl7dHJ5e2xldCByPWF3YWl0IHQuZmV0Y2hGbih0LnJlcXVlc3QpO3JldHVybiByLm9rJiZhd2FpdCB0aGlzLmNhY2hlUmVzcG9uc2UodCxyKSx7cmVzcG9uc2U6cixmcm9tQ2FjaGU6ITEscmV2YWxpZGF0ZWQ6ITF9fWNhdGNoKHIpe3QubG9nZ2luZyYmY29uc29sZS5sb2coIlt3ZWJyZXF1ZXN0XSBOZXR3b3JrIGZhaWxlZCwgdHJ5aW5nIGNhY2hlOiIscik7bGV0IGk9YXdhaXQgdC5jYWNoZVN0b3JlLmdldCh0LmNhY2hlS2V5KTtpZihpKXJldHVybntyZXNwb25zZTp0LmNhY2hlU3RvcmUucmVzcG9uc2VGcm9tQ2FjaGVFbnRyeShpKSxmcm9tQ2FjaGU6ITAscmV2YWxpZGF0ZWQ6ITF9O3Rocm93IHJ9fWFzeW5jIGNhY2hlUmVzcG9uc2UodCxyKXtsZXQgaT1vcyhyLmhlYWRlcnMpO2lmKGkubm9TdG9yZSlyZXR1cm47bGV0IGE9YXdhaXQgdC5jYWNoZVN0b3JlLmNhY2hlRW50cnlGcm9tUmVzcG9uc2UodC5yZXF1ZXN0LnVybCxyLGkpO2F3YWl0IHQuY2FjaGVTdG9yZS5zZXQodC5jYWNoZUtleSxhKX19LGFqPWNsYXNze2FzeW5jIGV4ZWN1dGUodCl7bGV0IHI9YXdhaXQgdC5jYWNoZVN0b3JlLmdldCh0LmNhY2hlS2V5KTtpZihyKXtsZXQgbj1vcyhuZXcgSGVhZGVycyhyLmhlYWRlcnMpKTtpZihHZihyLG4pKXJldHVybiB0LmxvZ2dpbmcmJmNvbnNvbGUubG9nKCJbd2VicmVxdWVzdF0gQ2FjaGUgaGl0IChmcmVzaCk6Iix0LnJlcXVlc3QudXJsKSx7cmVzcG9uc2U6dC5jYWNoZVN0b3JlLnJlc3BvbnNlRnJvbUNhY2hlRW50cnkociksZnJvbUNhY2hlOiEwLHJldmFsaWRhdGVkOiExfTtpZihZZihuKSYmKHIuZXRhZ3x8ci5sYXN0TW9kaWZpZWQpKXJldHVybiBhd2FpdCB0aGlzLnJldmFsaWRhdGUodCxyKX10LmxvZ2dpbmcmJmNvbnNvbGUubG9nKCJbd2VicmVxdWVzdF0gQ2FjaGUgbWlzcywgZmV0Y2hpbmc6Iix0LnJlcXVlc3QudXJsKTtsZXQgaT1hd2FpdCB0LmZldGNoRm4odC5yZXF1ZXN0KSxhPW9zKGkuaGVhZGVycyk7aWYoIWEubm9TdG9yZSl7bGV0IG49YXdhaXQgdC5jYWNoZVN0b3JlLmNhY2hlRW50cnlGcm9tUmVzcG9uc2UodC5yZXF1ZXN0LnVybCxpLGEpO2F3YWl0IHQuY2FjaGVTdG9yZS5zZXQodC5jYWNoZUtleSxuKX1yZXR1cm57cmVzcG9uc2U6aSxmcm9tQ2FjaGU6ITEscmV2YWxpZGF0ZWQ6ITF9fWFzeW5jIHJldmFsaWRhdGUodCxyKXtsZXQgaT1SdyhyKSxhPW5ldyBSZXF1ZXN0KHQucmVxdWVzdC51cmwse21ldGhvZDp0LnJlcXVlc3QubWV0aG9kLGhlYWRlcnM6ey4uLkJ3KHQucmVxdWVzdC5oZWFkZXJzKSwuLi5pfX0pO3RyeXtsZXQgbj1hd2FpdCB0LmZldGNoRm4oYSk7aWYobi5zdGF0dXM9PT0zMDQpcmV0dXJuIHQubG9nZ2luZyYmY29uc29sZS5sb2coIlt3ZWJyZXF1ZXN0XSBDYWNoZSByZXZhbGlkYXRlZCAoMzA0KToiLHQucmVxdWVzdC51cmwpLHIudGltZXN0YW1wPURhdGUubm93KCksYXdhaXQgdC5jYWNoZVN0b3JlLnNldCh0LmNhY2hlS2V5LHIpLHtyZXNwb25zZTp0LmNhY2hlU3RvcmUucmVzcG9uc2VGcm9tQ2FjaGVFbnRyeShyKSxmcm9tQ2FjaGU6ITAscmV2YWxpZGF0ZWQ6ITB9O2lmKG4ub2spe2xldCBvPW9zKG4uaGVhZGVycyk7aWYoIW8ubm9TdG9yZSl7bGV0IHM9YXdhaXQgdC5jYWNoZVN0b3JlLmNhY2hlRW50cnlGcm9tUmVzcG9uc2UodC5yZXF1ZXN0LnVybCxuLG8pO2F3YWl0IHQuY2FjaGVTdG9yZS5zZXQodC5jYWNoZUtleSxzKX19cmV0dXJue3Jlc3BvbnNlOm4sZnJvbUNhY2hlOiExLHJldmFsaWRhdGVkOiEwfX1jYXRjaChuKXtyZXR1cm4gdC5sb2dnaW5nJiZjb25zb2xlLmxvZygiW3dlYnJlcXVlc3RdIFJldmFsaWRhdGlvbiBmYWlsZWQsIHVzaW5nIGNhY2hlOiIsbikse3Jlc3BvbnNlOnQuY2FjaGVTdG9yZS5yZXNwb25zZUZyb21DYWNoZUVudHJ5KHIpLGZyb21DYWNoZTohMCxyZXZhbGlkYXRlZDohMX19fX0sbmo9Y2xhc3N7YXN5bmMgZXhlY3V0ZSh0KXtsZXQgcj1hd2FpdCB0LmNhY2hlU3RvcmUuZ2V0KHQuY2FjaGVLZXkpO2lmKHIpe2xldCBuPXQuY2FjaGVTdG9yZS5yZXNwb25zZUZyb21DYWNoZUVudHJ5KHIpO3JldHVybiB0aGlzLnJldmFsaWRhdGVJbkJhY2tncm91bmQodCxyKS5jYXRjaChvPT57dC5sb2dnaW5nJiZjb25zb2xlLndhcm4oIlt3ZWJyZXF1ZXN0XSBCYWNrZ3JvdW5kIHJldmFsaWRhdGlvbiBmYWlsZWQ6IixvKX0pLHtyZXNwb25zZTpuLGZyb21DYWNoZTohMCxyZXZhbGlkYXRlZDohMX19bGV0IGk9YXdhaXQgdC5mZXRjaEZuKHQucmVxdWVzdCksYT1vcyhpLmhlYWRlcnMpO2lmKCFhLm5vU3RvcmUmJmkub2spe2xldCBuPWF3YWl0IHQuY2FjaGVTdG9yZS5jYWNoZUVudHJ5RnJvbVJlc3BvbnNlKHQucmVxdWVzdC51cmwsaSxhKTthd2FpdCB0LmNhY2hlU3RvcmUuc2V0KHQuY2FjaGVLZXksbil9cmV0dXJue3Jlc3BvbnNlOmksZnJvbUNhY2hlOiExLHJldmFsaWRhdGVkOiExfX1hc3luYyByZXZhbGlkYXRlSW5CYWNrZ3JvdW5kKHQscil7bGV0IGk9b3MobmV3IEhlYWRlcnMoci5oZWFkZXJzKSk7aWYoIShHZihyLGkpJiYhWWYoaSkpKXRyeXtsZXQgYT1hd2FpdCB0LmZldGNoRm4odC5yZXF1ZXN0KTtpZihhLm9rKXtsZXQgbj1vcyhhLmhlYWRlcnMpO2lmKCFuLm5vU3RvcmUpe2xldCBvPWF3YWl0IHQuY2FjaGVTdG9yZS5jYWNoZUVudHJ5RnJvbVJlc3BvbnNlKHQucmVxdWVzdC51cmwsYSxuKTthd2FpdCB0LmNhY2hlU3RvcmUuc2V0KHQuY2FjaGVLZXksbyksdC5sb2dnaW5nJiZjb25zb2xlLmxvZygiW3dlYnJlcXVlc3RdIEJhY2tncm91bmQgcmV2YWxpZGF0aW9uIGNvbXBsZXRlOiIsdC5yZXF1ZXN0LnVybCl9fX1jYXRjaChhKXt0LmxvZ2dpbmcmJmNvbnNvbGUud2FybigiW3dlYnJlcXVlc3RdIEJhY2tncm91bmQgcmV2YWxpZGF0aW9uIGZhaWxlZDoiLGEpfX19LG9qPWNsYXNze2FzeW5jIGV4ZWN1dGUodCl7cmV0dXJue3Jlc3BvbnNlOmF3YWl0IHQuZmV0Y2hGbih0LnJlcXVlc3QpLGZyb21DYWNoZTohMSxyZXZhbGlkYXRlZDohMX19fSxzaj1jbGFzc3thc3luYyBleGVjdXRlKHQpe2xldCByPWF3YWl0IHQuY2FjaGVTdG9yZS5nZXQodC5jYWNoZUtleSk7aWYoIXIpdGhyb3cgbmV3IEVycm9yKGBDYWNoZSBtaXNzIGZvciAke3QucmVxdWVzdC51cmx9IChjYWNoZS1vbmx5IG1vZGUpYCk7cmV0dXJue3Jlc3BvbnNlOnQuY2FjaGVTdG9yZS5yZXNwb25zZUZyb21DYWNoZUVudHJ5KHIpLGZyb21DYWNoZTohMCxyZXZhbGlkYXRlZDohMX19fX0pO3ZhciBvdSxsaj1wKCgpPT57T3coKTt1eGUoKTtIdygpO291PWNsYXNze2NvbnN0cnVjdG9yKHQscil7dGhpcy5jYWNoZVN0b3JlPW5ldyBudSh0LHIpfWFzeW5jIGV4ZWN1dGUodCxyLGkpe2xldCBhPXRoaXMuZGV0ZXJtaW5lU3RyYXRlZ3kodCxyKTtpZihhPT09Im5ldHdvcmstb25seSIpcmV0dXJue3Jlc3BvbnNlOmF3YWl0IGkodCksZnJvbUNhY2hlOiExLHJldmFsaWRhdGVkOiExfTtsZXQgbj10aGlzLmdlbmVyYXRlQ2FjaGVLZXkodCxyKSxvPWR4ZShhKSxzPXtyZXF1ZXN0OnQsY2FjaGVLZXk6bixjYWNoZVN0b3JlOnRoaXMuY2FjaGVTdG9yZSxmZXRjaEZuOmksbG9nZ2luZzpyLmxvZ2dpbmd9O3JldHVybiBhd2FpdCBvLmV4ZWN1dGUocyl9ZGV0ZXJtaW5lU3RyYXRlZ3kodCxyKXtyZXR1cm4gci5jYWNoZVN0cmF0ZWd5P3IuY2FjaGVTdHJhdGVneTpyLmNhY2hlP3RoaXMubWFwQ2FjaGVNb2RlVG9TdHJhdGVneShyLmNhY2hlKTp0LmNhY2hlP3RoaXMubWFwQ2FjaGVNb2RlVG9TdHJhdGVneSh0LmNhY2hlKToibmV0d29yay1maXJzdCJ9bWFwQ2FjaGVNb2RlVG9TdHJhdGVneSh0KXtzd2l0Y2godCl7Y2FzZSJkZWZhdWx0IjpyZXR1cm4ibmV0d29yay1maXJzdCI7Y2FzZSJuby1zdG9yZSI6Y2FzZSJyZWxvYWQiOnJldHVybiJuZXR3b3JrLW9ubHkiO2Nhc2Uibm8tY2FjaGUiOnJldHVybiJuZXR3b3JrLWZpcnN0IjtjYXNlImZvcmNlLWNhY2hlIjpyZXR1cm4iY2FjaGUtZmlyc3QiO2Nhc2Uib25seS1pZi1jYWNoZWQiOnJldHVybiJjYWNoZS1vbmx5IjtkZWZhdWx0OnJldHVybiJuZXR3b3JrLWZpcnN0In19Z2VuZXJhdGVDYWNoZUtleSh0LHIpe3JldHVybiByLmNhY2hlS2V5P3R5cGVvZiByLmNhY2hlS2V5PT0iZnVuY3Rpb24iP3IuY2FjaGVLZXkodCk6ci5jYWNoZUtleTp0aGlzLmNhY2hlU3RvcmUuZ2VuZXJhdGVDYWNoZUtleSh0KX1hc3luYyBjbGVhcigpe2F3YWl0IHRoaXMuY2FjaGVTdG9yZS5jbGVhcigpfWFzeW5jIGRlbGV0ZSh0KXthd2FpdCB0aGlzLmNhY2hlU3RvcmUuZGVsZXRlKHQpfWFzeW5jIGhhcyh0KXtyZXR1cm4gYXdhaXQgdGhpcy5jYWNoZVN0b3JlLmhhcyh0KX1nZXRTdG9yZSgpe3JldHVybiB0aGlzLmNhY2hlU3RvcmV9fX0pO2Z1bmN0aW9uIHB4ZShlKXtzd2l0Y2goZSl7Y2FzZSJleHBvbmVudGlhbCI6cmV0dXJuIG5ldyBqdztjYXNlImxpbmVhciI6cmV0dXJuIG5ldyBjajtjYXNlImNvbnN0YW50IjpyZXR1cm4gbmV3IGRqO2RlZmF1bHQ6cmV0dXJuIG5ldyBqd319ZnVuY3Rpb24gaHhlKGUsdD0uMSl7bGV0IHI9ZSp0Kk1hdGgucmFuZG9tKCk7cmV0dXJuIGUrcn12YXIgancsY2osZGosZnhlPXAoKCk9Pntqdz1jbGFzc3tjYWxjdWxhdGUodCxyLGkpe2xldCBhPXIqTWF0aC5wb3coMix0LTEpO3JldHVybiBNYXRoLm1pbihhLGkpfX0sY2o9Y2xhc3N7Y2FsY3VsYXRlKHQscixpKXtsZXQgYT1yKnQ7cmV0dXJuIE1hdGgubWluKGEsaSl9fSxkaj1jbGFzc3tjYWxjdWxhdGUodCxyLGkpe3JldHVybiBNYXRoLm1pbihyLGkpfX19KTt2YXIgc3UsdWo9cCgoKT0+e1dmKCk7ZnhlKCk7c3U9Y2xhc3N7Y29uc3RydWN0b3IodD17fSl7dGhpcy5vcHRpb25zPXttYXhBdHRlbXB0czp0Lm1heEF0dGVtcHRzPz8zLGJhY2tvZmY6dC5iYWNrb2ZmPz8iZXhwb25lbnRpYWwiLGluaXRpYWxEZWxheTp0LmluaXRpYWxEZWxheT8/MWUzLG1heERlbGF5OnQubWF4RGVsYXk/PzNlNCxyZXRyeU9uOnQucmV0cnlPbj8/WzQwOCw0MjksNTAwLDUwMiw1MDMsNTA0XSxvblJldHJ5OnQub25SZXRyeT8/KCgpPT57fSl9fWFzeW5jIGV4ZWN1dGUodCxyKXtsZXQgaSxhO2ZvcihsZXQgbj0xO248PXRoaXMub3B0aW9ucy5tYXhBdHRlbXB0cztuKyspdHJ5e2xldCBvPWF3YWl0IHQoKTtpZihvIGluc3RhbmNlb2YgUmVzcG9uc2UmJnRoaXMuc2hvdWxkUmV0cnlSZXNwb25zZShvKSl7aWYoYT1vLG49PT10aGlzLm9wdGlvbnMubWF4QXR0ZW1wdHMpcmV0dXJuIG87bGV0IHM9dGhpcy5jYWxjdWxhdGVEZWxheShuKTt0aGlzLm9wdGlvbnMub25SZXRyeShuLG5ldyBFcnJvcihgSFRUUCAke28uc3RhdHVzfWApLHMpLGF3YWl0IHRoaXMuZGVsYXkocyk7Y29udGludWV9cmV0dXJuIG99Y2F0Y2gobyl7aT1vIGluc3RhbmNlb2YgRXJyb3I/bzpuZXcgRXJyb3IoU3RyaW5nKG8pKTtsZXQgcz1yP3IobyxuKTp0aGlzLnNob3VsZFJldHJ5RXJyb3Iobyk7aWYobj09PXRoaXMub3B0aW9ucy5tYXhBdHRlbXB0c3x8IXMpdGhyb3cgaTtsZXQgbD10aGlzLmNhbGN1bGF0ZURlbGF5KG4pO3RoaXMub3B0aW9ucy5vblJldHJ5KG4saSxsKSxhd2FpdCB0aGlzLmRlbGF5KGwpfXRocm93IGl8fG5ldyBFcnJvcigiTWF4IHJldHJ5IGF0dGVtcHRzIHJlYWNoZWQiKX1hc3luYyBleGVjdXRlV2l0aEZhbGxiYWNrcyh0LHIsaSl7aWYodC5sZW5ndGg9PT0wKXRocm93IG5ldyBFcnJvcigiTm8gVVJMcyBwcm92aWRlZCBmb3IgZmFsbGJhY2sgZXhlY3V0aW9uIik7bGV0IGEsbj1bXTtmb3IobGV0IG8gb2YgdCl0cnl7bGV0IHM9YXdhaXQgdGhpcy5leGVjdXRlKGFzeW5jKCk9PmF3YWl0IGkobyxyKSk7aWYocy5zdGF0dXM8NDAwfHxzLnN0YXR1cz49NDAwJiZzLnN0YXR1czw1MDAmJnMuc3RhdHVzIT09NDA4KXJldHVybiBzO24ucHVzaChvKSxhPW5ldyBFcnJvcihgUmVxdWVzdCBmYWlsZWQgd2l0aCBzdGF0dXMgJHtzLnN0YXR1c31gKX1jYXRjaChzKXtuLnB1c2gobyksYT1zIGluc3RhbmNlb2YgRXJyb3I/czpuZXcgRXJyb3IoU3RyaW5nKHMpKX10aHJvdyBuZXcgRXJyb3IoYEFsbCBVUkxzIGZhaWxlZDogJHtuLmpvaW4oIiwgIil9LiBMYXN0IGVycm9yOiAke2E/Lm1lc3NhZ2V8fCJVbmtub3duIGVycm9yIn1gKX1zaG91bGRSZXRyeVJlc3BvbnNlKHQpe2xldCByPXRoaXMub3B0aW9ucy5yZXRyeU9uO3JldHVybiB0eXBlb2Ygcj09ImZ1bmN0aW9uIj9yKHQpOkFycmF5LmlzQXJyYXkocik/ci5pbmNsdWRlcyh0LnN0YXR1cyk6ITF9c2hvdWxkUmV0cnlFcnJvcih0KXtpZih0IGluc3RhbmNlb2YgVHlwZUVycm9yJiZ0Lm1lc3NhZ2UuaW5jbHVkZXMoImZldGNoIil8fHQubmFtZT09PSJBYm9ydEVycm9yInx8dC5tZXNzYWdlLmluY2x1ZGVzKCJ0aW1lb3V0IikpcmV0dXJuITA7bGV0IHI9dGhpcy5vcHRpb25zLnJldHJ5T247cmV0dXJuIHR5cGVvZiByPT0iZnVuY3Rpb24iP3Iodm9pZCAwLHQpOiExfWNhbGN1bGF0ZURlbGF5KHQpe2xldCBpPXB4ZSh0aGlzLm9wdGlvbnMuYmFja29mZikuY2FsY3VsYXRlKHQsdGhpcy5vcHRpb25zLmluaXRpYWxEZWxheSx0aGlzLm9wdGlvbnMubWF4RGVsYXkpO3JldHVybiBoeGUoaSl9YXN5bmMgZGVsYXkodCl7YXdhaXQgenQuZGVsYXlGb3IodCl9fX0pO3ZhciBsdSxwaj1wKCgpPT57V2YoKTtsdT1jbGFzc3tjb25zdHJ1Y3Rvcigpe3RoaXMuaW5GbGlnaHRSZXF1ZXN0cz1uZXcgTWFwfWdlbmVyYXRlS2V5KHQpe2xldCByPXQudXJsLGk9dC5tZXRob2Q7cmV0dXJuIGk9PT0iR0VUInx8aT09PSJIRUFEIj9gJHtpfToke3J9YDpgJHtpfToke3J9OiR7RGF0ZS5ub3coKX1gfWFzeW5jIGV4ZWN1dGUodCxyKXtsZXQgaT10aGlzLmluRmxpZ2h0UmVxdWVzdHMuZ2V0KHQpO2lmKGkpcmV0dXJue3Jlc3BvbnNlOihhd2FpdCBpLnByb21pc2UpLmNsb25lKCksd2FzRGVkdXBsaWNhdGVkOiEwfTtsZXQgYT1LZS5kZWZlcigpO3RoaXMuaW5GbGlnaHRSZXF1ZXN0cy5zZXQodCxhKTt0cnl7bGV0IG49YXdhaXQgcigpO3JldHVybiBhLnJlc29sdmUobiksdGhpcy5pbkZsaWdodFJlcXVlc3RzLmRlbGV0ZSh0KSx7cmVzcG9uc2U6bix3YXNEZWR1cGxpY2F0ZWQ6ITF9fWNhdGNoKG4pe3Rocm93IGEucmVqZWN0KG4pLHRoaXMuaW5GbGlnaHRSZXF1ZXN0cy5kZWxldGUodCksbn19aXNJbkZsaWdodCh0KXtyZXR1cm4gdGhpcy5pbkZsaWdodFJlcXVlc3RzLmhhcyh0KX1nZXRJbkZsaWdodENvdW50KCl7cmV0dXJuIHRoaXMuaW5GbGlnaHRSZXF1ZXN0cy5zaXplfWNsZWFyKCl7dGhpcy5pbkZsaWdodFJlcXVlc3RzLmNsZWFyKCl9fX0pO2Z1bmN0aW9uIE9ncihlKXtsZXQgdD1uZXcgQWJvcnRDb250cm9sbGVyLHI9bmV3IHp0LlRpbWVvdXQoZSxudWxsKTtyZXR1cm4gci5wcm9taXNlLnRoZW4oKCk9Pnt0LmFib3J0KCl9KSx7Y29udHJvbGxlcjp0LGNsZWFudXA6KCk9PntyLmNhbmNlbCgpfX19YXN5bmMgZnVuY3Rpb24gaGooZSx0LHIpe2xldHtjb250cm9sbGVyOmksY2xlYW51cDphfT1PZ3Iocik7dHJ5e2xldCBuPWF3YWl0IGZldGNoKGUsey4uLnQsc2lnbmFsOmkuc2lnbmFsfSk7cmV0dXJuIGEoKSxufWNhdGNoKG4pe3Rocm93IGEoKSxuIGluc3RhbmNlb2YgRXJyb3ImJm4ubmFtZT09PSJBYm9ydEVycm9yIj9uZXcgRXJyb3IoYFJlcXVlc3QgdGltZW91dCBhZnRlciAke3J9bXM6ICR7ZX1gKTpufX12YXIgbXhlPXAoKCk9PntXZigpfSk7dmFyIEQzLGZqPXAoKCk9Pnt5cSgpO2xqKCk7dWooKTtwaigpO214ZSgpO0QzPWNsYXNze2NvbnN0cnVjdG9yKHQ9e30pe3RoaXMuZGVmYXVsdE9wdGlvbnM9dCx0aGlzLmludGVyY2VwdG9yTWFuYWdlcj1uZXcgWDUsdGhpcy5jYWNoZU1hbmFnZXI9bmV3IG91LHRoaXMuZGVkdXBsaWNhdG9yPW5ldyBsdX1hZGRSZXF1ZXN0SW50ZXJjZXB0b3IodCl7dGhpcy5pbnRlcmNlcHRvck1hbmFnZXIuYWRkUmVxdWVzdEludGVyY2VwdG9yKHQpfWFkZFJlc3BvbnNlSW50ZXJjZXB0b3IodCl7dGhpcy5pbnRlcmNlcHRvck1hbmFnZXIuYWRkUmVzcG9uc2VJbnRlcmNlcHRvcih0KX1hZGRFcnJvckludGVyY2VwdG9yKHQpe3RoaXMuaW50ZXJjZXB0b3JNYW5hZ2VyLmFkZEVycm9ySW50ZXJjZXB0b3IodCl9cmVtb3ZlUmVxdWVzdEludGVyY2VwdG9yKHQpe3RoaXMuaW50ZXJjZXB0b3JNYW5hZ2VyLnJlbW92ZVJlcXVlc3RJbnRlcmNlcHRvcih0KX1yZW1vdmVSZXNwb25zZUludGVyY2VwdG9yKHQpe3RoaXMuaW50ZXJjZXB0b3JNYW5hZ2VyLnJlbW92ZVJlc3BvbnNlSW50ZXJjZXB0b3IodCl9cmVtb3ZlRXJyb3JJbnRlcmNlcHRvcih0KXt0aGlzLmludGVyY2VwdG9yTWFuYWdlci5yZW1vdmVFcnJvckludGVyY2VwdG9yKHQpfWNsZWFySW50ZXJjZXB0b3JzKCl7dGhpcy5pbnRlcmNlcHRvck1hbmFnZXIuY2xlYXJBbGwoKX1hc3luYyBjbGVhckNhY2hlKCl7YXdhaXQgdGhpcy5jYWNoZU1hbmFnZXIuY2xlYXIoKX1hc3luYyByZXF1ZXN0KHQscj17fSl7bGV0IGk9ey4uLnRoaXMuZGVmYXVsdE9wdGlvbnMsLi4ucn0sYTtpZih0eXBlb2YgdD09InN0cmluZyI/YT1uZXcgUmVxdWVzdCh0LGkpOmE9dCxhPWF3YWl0IHRoaXMuaW50ZXJjZXB0b3JNYW5hZ2VyLnByb2Nlc3NSZXF1ZXN0KGEpLGkuaW50ZXJjZXB0b3JzPy5yZXF1ZXN0KWZvcihsZXQgbyBvZiBpLmludGVyY2VwdG9ycy5yZXF1ZXN0KWE9YXdhaXQgbyhhKTtpZihpLmRlZHVwbGljYXRlPz8hMSl7bGV0IG89dGhpcy5kZWR1cGxpY2F0b3IuZ2VuZXJhdGVLZXkoYSk7cmV0dXJuKGF3YWl0IHRoaXMuZGVkdXBsaWNhdG9yLmV4ZWN1dGUobyxhc3luYygpPT5hd2FpdCB0aGlzLmV4ZWN1dGVSZXF1ZXN0KGEsaSkpKS5yZXNwb25zZX1yZXR1cm4gYXdhaXQgdGhpcy5leGVjdXRlUmVxdWVzdChhLGkpfWFzeW5jIGV4ZWN1dGVSZXF1ZXN0KHQscil7dHJ5e2xldCBpPXR5cGVvZiByLnJldHJ5PT0ib2JqZWN0Ij9yLnJldHJ5OnIucmV0cnk/e306dm9pZCAwLGE9YXN5bmMgcz0+e2xldCBsPXIudGltZW91dD8/NmU0O3JldHVybiBhd2FpdCBoaihzLnVybCx7bWV0aG9kOnMubWV0aG9kLGhlYWRlcnM6cy5oZWFkZXJzLGJvZHk6cy5ib2R5LC4uLnJ9LGwpfSxuPWFzeW5jKHMsbCk9PntsZXQgYz1yLnRpbWVvdXQ/PzZlNDtyZXR1cm4gYXdhaXQgaGoocyxsLGMpfSxvO2lmKGkpe2xldCBzPW5ldyBzdShpKTtpZihyLmZhbGxiYWNrVXJscyYmci5mYWxsYmFja1VybHMubGVuZ3RoPjApe2xldCBsPVt0LnVybCwuLi5yLmZhbGxiYWNrVXJsc107bz1hd2FpdCBzLmV4ZWN1dGVXaXRoRmFsbGJhY2tzKGwse21ldGhvZDp0Lm1ldGhvZCxoZWFkZXJzOnQuaGVhZGVycyxib2R5OnQuYm9keSwuLi5yfSxuKX1lbHNlIG89YXdhaXQgcy5leGVjdXRlKGFzeW5jKCk9Pihhd2FpdCB0aGlzLmNhY2hlTWFuYWdlci5leGVjdXRlKHQscixhKSkucmVzcG9uc2UpfWVsc2Ugbz0oYXdhaXQgdGhpcy5jYWNoZU1hbmFnZXIuZXhlY3V0ZSh0LHIsYSkpLnJlc3BvbnNlO2lmKG89YXdhaXQgdGhpcy5pbnRlcmNlcHRvck1hbmFnZXIucHJvY2Vzc1Jlc3BvbnNlKG8pLHIuaW50ZXJjZXB0b3JzPy5yZXNwb25zZSlmb3IobGV0IHMgb2Ygci5pbnRlcmNlcHRvcnMucmVzcG9uc2Upbz1hd2FpdCBzKG8pO3JldHVybiBvfWNhdGNoKGkpe3Rocm93IGF3YWl0IHRoaXMuaW50ZXJjZXB0b3JNYW5hZ2VyLnByb2Nlc3NFcnJvcihpIGluc3RhbmNlb2YgRXJyb3I/aTpuZXcgRXJyb3IoU3RyaW5nKGkpKSl9fWFzeW5jIGdldEpzb24odCxyPXt9KXtsZXQgaT1hd2FpdCB0aGlzLnJlcXVlc3QodCx7Li4ucixtZXRob2Q6IkdFVCIsaGVhZGVyczp7QWNjZXB0OiJhcHBsaWNhdGlvbi9qc29uIiwuLi5yLmhlYWRlcnN8fHt9fX0pO2lmKCFpLm9rKXRocm93IG5ldyBFcnJvcihgSFRUUCAke2kuc3RhdHVzfTogJHtpLnN0YXR1c1RleHR9YCk7cmV0dXJuIGF3YWl0IGkuanNvbigpfWFzeW5jIHBvc3RKc29uKHQscixpPXt9KXtsZXQgYT1hd2FpdCB0aGlzLnJlcXVlc3QodCx7Li4uaSxtZXRob2Q6IlBPU1QiLGhlYWRlcnM6eyJDb250ZW50LVR5cGUiOiJhcHBsaWNhdGlvbi9qc29uIixBY2NlcHQ6ImFwcGxpY2F0aW9uL2pzb24iLC4uLmkuaGVhZGVyc3x8e319LGJvZHk6SlNPTi5zdHJpbmdpZnkocil9KTtpZighYS5vayl0aHJvdyBuZXcgRXJyb3IoYEhUVFAgJHthLnN0YXR1c306ICR7YS5zdGF0dXNUZXh0fWApO3JldHVybiBhd2FpdCBhLmpzb24oKX1hc3luYyBwdXRKc29uKHQscixpPXt9KXtsZXQgYT1hd2FpdCB0aGlzLnJlcXVlc3QodCx7Li4uaSxtZXRob2Q6IlBVVCIsaGVhZGVyczp7IkNvbnRlbnQtVHlwZSI6ImFwcGxpY2F0aW9uL2pzb24iLEFjY2VwdDoiYXBwbGljYXRpb24vanNvbiIsLi4uaS5oZWFkZXJzfHx7fX0sYm9keTpKU09OLnN0cmluZ2lmeShyKX0pO2lmKCFhLm9rKXRocm93IG5ldyBFcnJvcihgSFRUUCAke2Euc3RhdHVzfTogJHthLnN0YXR1c1RleHR9YCk7cmV0dXJuIGF3YWl0IGEuanNvbigpfWFzeW5jIGRlbGV0ZUpzb24odCxyPXt9KXtsZXQgaT1hd2FpdCB0aGlzLnJlcXVlc3QodCx7Li4ucixtZXRob2Q6IkRFTEVURSIsaGVhZGVyczp7QWNjZXB0OiJhcHBsaWNhdGlvbi9qc29uIiwuLi5yLmhlYWRlcnN8fHt9fX0pO2lmKCFpLm9rKXRocm93IG5ldyBFcnJvcihgSFRUUCAke2kuc3RhdHVzfTogJHtpLnN0YXR1c1RleHR9YCk7cmV0dXJuIGF3YWl0IGkuanNvbigpfX19KTthc3luYyBmdW5jdGlvbiBJbihlLHQpe2xldCByPWUgaW5zdGFuY2VvZiBSZXF1ZXN0P2UudXJsOlN0cmluZyhlKSxpPWUgaW5zdGFuY2VvZiBSZXF1ZXN0P2U6bmV3IFJlcXVlc3Qocix0KTtyZXR1cm4gYXdhaXQgYTIucmVxdWVzdChpLHQpfXZhciBhMixneGU9cCgoKT0+e2ZqKCk7YTI9bmV3IEQzO0luLmdldEpzb249YXN5bmMgZnVuY3Rpb24oZSx0KXtyZXR1cm4gYXdhaXQgYTIuZ2V0SnNvbihlLHQpfSxJbi5wb3N0SnNvbj1hc3luYyBmdW5jdGlvbihlLHQscil7cmV0dXJuIGF3YWl0IGEyLnBvc3RKc29uKGUsdCxyKX0sSW4ucHV0SnNvbj1hc3luYyBmdW5jdGlvbihlLHQscil7cmV0dXJuIGF3YWl0IGEyLnB1dEpzb24oZSx0LHIpfSxJbi5kZWxldGVKc29uPWFzeW5jIGZ1bmN0aW9uKGUsdCl7cmV0dXJuIGF3YWl0IGEyLmRlbGV0ZUpzb24oZSx0KX0sSW4uYWRkUmVxdWVzdEludGVyY2VwdG9yPWZ1bmN0aW9uKGUpe2EyLmFkZFJlcXVlc3RJbnRlcmNlcHRvcihlKX0sSW4uYWRkUmVzcG9uc2VJbnRlcmNlcHRvcj1mdW5jdGlvbihlKXthMi5hZGRSZXNwb25zZUludGVyY2VwdG9yKGUpfSxJbi5hZGRFcnJvckludGVyY2VwdG9yPWZ1bmN0aW9uKGUpe2EyLmFkZEVycm9ySW50ZXJjZXB0b3IoZSl9LEluLmNsZWFySW50ZXJjZXB0b3JzPWZ1bmN0aW9uKCl7YTIuY2xlYXJJbnRlcmNlcHRvcnMoKX0sSW4uY2xlYXJDYWNoZT1hc3luYyBmdW5jdGlvbigpe2F3YWl0IGEyLmNsZWFyQ2FjaGUoKX0sSW4uY3JlYXRlQ2xpZW50PWZ1bmN0aW9uKGUpe3JldHVybiBuZXcgRDMoZSl9LEluLmdldERlZmF1bHRDbGllbnQ9ZnVuY3Rpb24oKXtyZXR1cm4gYTJ9fSk7dmFyIFpmPXt9O0ZlKFpmLHtDYWNoZU1hbmFnZXI6KCk9Pm91LENhY2hlU3RvcmU6KCk9Pm51LEludGVyY2VwdG9yTWFuYWdlcjooKT0+WDUsUmVxdWVzdERlZHVwbGljYXRvcjooKT0+bHUsUmV0cnlNYW5hZ2VyOigpPT5zdSxXZWJyZXF1ZXN0Q2xpZW50OigpPT5EMyxjcmVhdGVDb25kaXRpb25hbEhlYWRlcnM6KCk9PlJ3LGV4dHJhY3RDYWNoZU1ldGFkYXRhOigpPT5vcyxoZWFkZXJzVG9PYmplY3Q6KCk9PkJ3LGlzRnJlc2g6KCk9PkdmLG9iamVjdFRvSGVhZGVyczooKT0+Y3hlLHJlcXVpcmVzUmV2YWxpZGF0aW9uOigpPT5ZZix3ZWJyZXF1ZXN0OigpPT5Jbn0pO3ZhciBieGU9cCgoKT0+e2d4ZSgpO2ZqKCk7bGooKTtPdygpO3VqKCk7eXEoKTtwaigpO0h3KCl9KTt2YXIgcDAsaDA9cCgoKT0+e0toKCk7cDA9ZXIodXYoKSwxKTtfZigpO2piZSgpO1kyKCk7VmJlKCk7c2EoKTtieGUoKX0pO3ZhciB6bCxYZj1wKCgpPT57aDAoKTt6bD1jbGFzc3tjb25zdHJ1Y3Rvcih0LHIpe3RoaXMuZXJyb3JUZXh0PXQsdGhpcy5lcnJvckRhdGE9cn19fSk7dmFyIFV3LHZ4ZT1wKCgpPT57WGYoKTtoMCgpO1V3PWNsYXNze2NvbnN0cnVjdG9yKCl7dGhpcy5sb2NhbERhdGE9e319YXN5bmMgcGFzc0d1YXJkcyh0LHIpe2xldCBpPW5ldyBGZi5HdWFyZFNldCh0KTtpZighYXdhaXQgaS5hbGxHdWFyZHNQYXNzKHIpKXtsZXQgbj1hd2FpdCBpLmdldEZhaWxlZEhpbnQocik7dGhyb3cgbmV3IHpsKGBndWFyZCBmYWlsZWQ6ICR7bn1gLHtmYWlsZWRIaW50Om59KX19fX0pO3ZhciBtaixnaj1wKCgpPT57aDAoKTtYZigpO3Z4ZSgpO21qPWNsYXNze2NvbnN0cnVjdG9yKHQscil7dGhpcy5tZXRob2Q9dCx0aGlzLmhhbmRsZXJGdW5jdGlvbj1yfWFzeW5jIGFkZFJlc3BvbnNlKHQpe2lmKHQubWV0aG9kIT09dGhpcy5tZXRob2QpdGhyb3cgbmV3IEVycm9yKCJ0aGlzIGhhbmRsZXIgaGFzIGJlZW4gZ2l2ZW4gYSB3cm9uZyBtZXRob2QgdG8gYW5zd2VyIHRvLiBQbGVhc2UgdXNlIGEgVHlwZWRSb3V0ZXIgdG8gZmlsdGVyIHJlcXVlc3RzIik7bGV0IHIsaT1uZXcgVXc7dC5sb2NhbERhdGEmJihpLmxvY2FsRGF0YT10LmxvY2FsRGF0YSk7bGV0IGE9YXdhaXQgdGhpcy5oYW5kbGVyRnVuY3Rpb24odC5yZXF1ZXN0LGkpLmNhdGNoKG49PntuIGluc3RhbmNlb2Ygemw/cj1uOmNvbnNvbGUubG9nKG4pfSk7cmV0dXJuIHImJih0LmVycm9yPXt0ZXh0OnIuZXJyb3JUZXh0LGRhdGE6ci5lcnJvckRhdGF9KSxhJiYodC5yZXNwb25zZT1hKSx0Py5jb3JyZWxhdGlvbj8ucGhhc2UmJih0LmNvcnJlbGF0aW9uLnBoYXNlPSJyZXNwb25zZSIpLHR9fX0pO3ZhciBFMyxRZj1wKCgpPT57aDAoKTtXdygpO2dqKCk7YmooKTtFMz1jbGFzcyBle2NvbnN0cnVjdG9yKCl7dGhpcy5ob29rcz17fSx0aGlzLnJvdXRlck1hcD1uZXcgZGkuT2JqZWN0TWFwLHRoaXMuaGFuZGxlck1hcD1uZXcgZGkuT2JqZWN0TWFwLHRoaXMucmVnaXN0ZXJlZFZpcnR1YWxTdHJlYW1zPW5ldyBkaS5PYmplY3RNYXAsdGhpcy5maXJlRXZlbnRJbnRlcmVzdE1hcD1uZXcgZGkuSW50ZXJlc3RNYXAodD0+dCl9c3RhdGljIGdldCBnbG9iYWxIb29rcygpe3JldHVybiBnbG9iYWxUaGlzLl9fdHlwZWRSb3V0ZXJHbG9iYWxIb29rc3x8KGdsb2JhbFRoaXMuX190eXBlZFJvdXRlckdsb2JhbEhvb2tzPXt9KSxnbG9iYWxUaGlzLl9fdHlwZWRSb3V0ZXJHbG9iYWxIb29rc31zdGF0aWMgc2V0IGdsb2JhbEhvb2tzKHQpe2dsb2JhbFRoaXMuX190eXBlZFJvdXRlckdsb2JhbEhvb2tzPXR9c3RhdGljIHNldEdsb2JhbEhvb2tzKHQpe2xldCByPWUuZ2xvYmFsSG9va3M7ZS5nbG9iYWxIb29rcz17Li4uciwuLi50fX1zdGF0aWMgY2xlYXJHbG9iYWxIb29rcygpe2dsb2JhbFRoaXMuX190eXBlZFJvdXRlckdsb2JhbEhvb2tzPXt9fXNldEhvb2tzKHQpe3RoaXMuaG9va3M9ey4uLnRoaXMuaG9va3MsLi4udH19Y2FsbEhvb2sodCxyKXt0cnl7ZS5nbG9iYWxIb29rc1t0XT8uKHIpLHRoaXMuaG9va3NbdF0/LihyKX1jYXRjaChpKXtjb25zb2xlLmVycm9yKGBUeXBlZFJvdXRlciBob29rIGVycm9yICgke3R9KTpgLGkpfX1hZGRUeXBlZEhhbmRsZXIodCl7aWYodGhpcy5nZXRUeXBlZEhhbmRsZXJGb3JNZXRob2QodC5tZXRob2QpKXRocm93IG5ldyBFcnJvcihgYSBUeXBlZEhhbmRsZXIgZm9yICR7dC5tZXRob2R9IGFscmVkeSBleGlzdHMhIENhbid0IGFkZCBhbm90aGVyIG9uZS5gKTt0aGlzLmhhbmRsZXJNYXAuYWRkKHQpfWFkZFR5cGVkUm91dGVyKHQpe3RoaXMucm91dGVyTWFwLmZpbmRTeW5jKGk9Pmk9PT10KXx8KHRoaXMucm91dGVyTWFwLmFkZCh0KSx0LmFkZFR5cGVkUm91dGVyKHRoaXMpKX1jaGVja0ZvclR5cGVkSGFuZGxlcih0KXtyZXR1cm4hIXRoaXMuZ2V0VHlwZWRIYW5kbGVyRm9yTWV0aG9kKHQpfWdldFR5cGVkSGFuZGxlckZvck1ldGhvZCh0LHI9W10pe3IucHVzaCh0aGlzKTtsZXQgaTtyZXR1cm4gaT10aGlzLmhhbmRsZXJNYXAuZmluZFN5bmMoYT0+YS5tZXRob2Q9PT10KSxpfHx0aGlzLnJvdXRlck1hcC5nZXRBcnJheSgpLmZvckVhY2goYT0+eyFpJiYhci5pbmNsdWRlcyhhKSYmKGk9YS5nZXRUeXBlZEhhbmRsZXJGb3JNZXRob2QodCxyKSl9KSxpfXN0YXRpY3t0aGlzLmRlZmF1bHRSb3V0ZU9wdGlvbnM9e2xvY2FsUmVxdWVzdDohMSxza2lwSG9va3M6ITF9fWFzeW5jIHJvdXRlQW5kQWRkUmVzcG9uc2UodCxyPXt9KXtsZXQgaT17Li4uZS5kZWZhdWx0Um91dGVPcHRpb25zLC4uLnJ9O2lmKHQ9c3MuZGVjb2RlUGF5bG9hZEZyb21OZXR3b3JrKHQse3R5cGVkcm91dGVyOnRoaXN9KSx0LmxvY2FsRGF0YT10LmxvY2FsRGF0YXx8e30sdC5sb2NhbERhdGEuZmlyc3RUeXBlZHJvdXRlcj10aGlzLHQubWV0aG9kPT09IiMjVmlydHVhbFN0cmVhbSMjIil7bGV0IGE9YXdhaXQgdGhpcy5oYW5kbGVTdHJlYW1UeXBlZFJlcXVlc3QodCk7cmV0dXJuIGEubG9jYWxEYXRhPW51bGwsYX1pZih0Py5jb3JyZWxhdGlvbj8ucGhhc2U9PT0icmVxdWVzdCJ8fGkubG9jYWxSZXF1ZXN0KXtsZXQgYT1EYXRlLm5vdygpO2kuc2tpcEhvb2tzfHx0aGlzLmNhbGxIb29rKCJvbkluY29taW5nUmVxdWVzdCIse2NvcnJlbGF0aW9uSWQ6dC5jb3JyZWxhdGlvbj8uaWR8fCJ1bmtub3duIixtZXRob2Q6dC5tZXRob2QsZGlyZWN0aW9uOiJpbmNvbWluZyIscGhhc2U6InJlcXVlc3QiLHRpbWVzdGFtcDphLHBheWxvYWQ6dC5yZXF1ZXN0fSk7bGV0IG49dGhpcy5nZXRUeXBlZEhhbmRsZXJGb3JNZXRob2QodC5tZXRob2QpO3JldHVybiBuPyh0PWF3YWl0IG4uYWRkUmVzcG9uc2UodCksdC5sb2NhbERhdGE9bnVsbCx0PXNzLmVuY29kZVBheWxvYWRGb3JOZXR3b3JrKHQse3R5cGVkcm91dGVyOnRoaXN9KSxpLnNraXBIb29rc3x8dGhpcy5jYWxsSG9vaygib25PdXRnb2luZ1Jlc3BvbnNlIix7Y29ycmVsYXRpb25JZDp0LmNvcnJlbGF0aW9uPy5pZHx8InVua25vd24iLG1ldGhvZDp0Lm1ldGhvZCxkaXJlY3Rpb246Im91dGdvaW5nIixwaGFzZToicmVzcG9uc2UiLHRpbWVzdGFtcDpEYXRlLm5vdygpLGR1cmF0aW9uTXM6RGF0ZS5ub3coKS1hLHBheWxvYWQ6dC5yZXNwb25zZSxlcnJvcjp0LmVycm9yPy50ZXh0fSksdCk6KGNvbnNvbGUubG9nKGBDYW5ub3QgZmluZCBoYW5kbGVyIGZvciBtZXRob2RuYW1lICR7dC5tZXRob2R9YCksdC5lcnJvcj17dGV4dDoiVGhlcmUgaXMgbm8gYXZhaWxhYmxlIG1ldGhvZCBmb3IgdGhpcyBjYWxsIG9uIHRoZSBzZXJ2ZXIgc2lkZSIsZGF0YTp7fX0sdC5jb3JyZWxhdGlvbi5waGFzZT0icmVzcG9uc2UiLHQubG9jYWxEYXRhPW51bGwsdD1zcy5lbmNvZGVQYXlsb2FkRm9yTmV0d29yayh0LHt0eXBlZHJvdXRlcjp0aGlzfSksaS5za2lwSG9va3N8fHRoaXMuY2FsbEhvb2soIm9uT3V0Z29pbmdSZXNwb25zZSIse2NvcnJlbGF0aW9uSWQ6dC5jb3JyZWxhdGlvbj8uaWR8fCJ1bmtub3duIixtZXRob2Q6dC5tZXRob2QsZGlyZWN0aW9uOiJvdXRnb2luZyIscGhhc2U6InJlc3BvbnNlIix0aW1lc3RhbXA6RGF0ZS5ub3coKSxkdXJhdGlvbk1zOkRhdGUubm93KCktYSxwYXlsb2FkOnQucmVzcG9uc2UsZXJyb3I6dC5lcnJvcj8udGV4dH0pLHQpfWVsc2UgcmV0dXJuIHQ/LmNvcnJlbGF0aW9uPy5waGFzZT09PSJyZXNwb25zZSI/KGkuc2tpcEhvb2tzfHx0aGlzLmNhbGxIb29rKCJvbkluY29taW5nUmVzcG9uc2UiLHtjb3JyZWxhdGlvbklkOnQuY29ycmVsYXRpb24/LmlkfHwidW5rbm93biIsbWV0aG9kOnQubWV0aG9kLGRpcmVjdGlvbjoiaW5jb21pbmciLHBoYXNlOiJyZXNwb25zZSIsdGltZXN0YW1wOkRhdGUubm93KCkscGF5bG9hZDp0LnJlc3BvbnNlLGVycm9yOnQuZXJyb3I/LnRleHR9KSx0aGlzLmZpcmVFdmVudEludGVyZXN0TWFwLmZpbmRJbnRlcmVzdCh0LmNvcnJlbGF0aW9uLmlkKT8uZnVsbGZpbGxJbnRlcmVzdCh0KSxudWxsKTooY29uc29sZS5sb2coInJlY2VpdmVkIHdlaXJkbHkgc2hhcGVkIHJlcXVlc3QiKSxjb25zb2xlLmxvZyh0KSxudWxsKX1hc3luYyBoYW5kbGVTdHJlYW1UeXBlZFJlcXVlc3QodCl7bGV0IHI9YXdhaXQgdGhpcy5yZWdpc3RlcmVkVmlydHVhbFN0cmVhbXMuZmluZChhc3luYyBhPT5hLnN0cmVhbUlkPT09dC5yZXF1ZXN0LnN0cmVhbUlkKTtpZihyKWNvbnNvbGUubG9nKGBzdWNjZXNzOiBmb3VuZCByZWxldmFudCB2aXJ0dWFsIHN0cmVhbSB3aXRoIGlkICR7dC5yZXF1ZXN0LnN0cmVhbUlkfWApO2Vsc2UgcmV0dXJuIGNvbnNvbGUubG9nKGBubyByZWxldmFudCB2aXJ0dWFsIHN0cmVhbSBmb3VuZCBmb3Igc3RyZWFtIHdpdGggaWQgJHt0LnJlcXVlc3Quc3RyZWFtSWR9YCksY29uc29sZS5sb2codGhpcy5yZWdpc3RlcmVkVmlydHVhbFN0cmVhbXMuZ2V0QXJyYXkoKSksdDtyZXR1cm4gYXdhaXQgci5oYW5kbGVTdHJlYW1Ucih0KX19fSk7dmFyIHh4ZSxzcyxXdz1wKCgpPT57aDAoKTtRZigpO3h4ZT0iIyMjIyMjIyMjIyMjI0NMT1NJTkcgQklUIyMjIyMjIyMjIyMjIyIsc3M9Y2xhc3MgZXtzdGF0aWMgZW5jb2RlUGF5bG9hZEZvck5ldHdvcmsodCxyLGksYT1bXSl7cmV0dXJuIXR8fFo1LmlzQnVmZmVyTGlrZSh0KT90OnQgaW5zdGFuY2VvZiBlPyghdC5zaWRlJiZyLnNlbmRNZXRob2QmJih0LnNpZGU9InJlcXVlc3RpbmciLHQuc2VuZE1ldGhvZD1yLnNlbmRNZXRob2QpLCF0LnNpZGUmJnIudHlwZWRyb3V0ZXImJih0LnNpZGU9InJlc3BvbmRpbmciLHQudHlwZWRyb3V0ZXI9ci50eXBlZHJvdXRlcixyLnR5cGVkcm91dGVyLnJlZ2lzdGVyZWRWaXJ0dWFsU3RyZWFtcy5hZGQodCkpLCFpLnJlc3BvbnNlfHxhLmluY2x1ZGVzKCJyZXNwb25zZSIpPyh0LnN0YXJ0S2VlcEFsaXZlTG9vcCgpLHtfaXNWaXJ0dWFsU3RyZWFtOiEwLHN0cmVhbUlkOnQuc3RyZWFtSWR9KTp7X09CTUlUVEVEX1ZJUlRVQUxfU1RSRUFNOiEwLHJlYXNvbjoicGF0aCBpcyB1bmRlciAucmVxdWVzdDogb2JtaXR0ZWQgZm9yIGRlZHVwbGljYXRpb24gcmVhc29ucyBpbiByZXNwb25zZSBjeWNsZS4ifSk6QXJyYXkuaXNBcnJheSh0KT90Lm1hcCgobixvKT0+ZS5lbmNvZGVQYXlsb2FkRm9yTmV0d29yayhuLHIsaXx8dCxhLmNvbmNhdChTdHJpbmcobykpKSk6dCE9PW51bGwmJnR5cGVvZiB0PT0ib2JqZWN0Ij9PYmplY3QuZW50cmllcyh0KS5yZWR1Y2UoKG4sW28sc10pPT57bGV0IGw9YS5jb25jYXQobyk7cmV0dXJuIG5bb109ZS5lbmNvZGVQYXlsb2FkRm9yTmV0d29yayhzLHIsaXx8dCxsKSxufSx7fSk6dH1zdGF0aWMgZGVjb2RlUGF5bG9hZEZyb21OZXR3b3JrKHQscil7aWYoWjUuaXNCdWZmZXJMaWtlKHQpfHx0IGluc3RhbmNlb2YgRTMpcmV0dXJuIHQ7aWYodCE9PW51bGwmJnR5cGVvZiB0PT0ib2JqZWN0Iil7aWYodCBpbnN0YW5jZW9mIFNldHx8dCBpbnN0YW5jZW9mIE1hcHx8dCBpbnN0YW5jZW9mIERhdGV8fHQgaW5zdGFuY2VvZiBSZWdFeHB8fHQgaW5zdGFuY2VvZiBFcnJvcnx8dCBpbnN0YW5jZW9mIFByb21pc2V8fHR5cGVvZiB0LnRoZW49PSJmdW5jdGlvbiIpcmV0dXJuIHQ7aWYodC5faXNWaXJ0dWFsU3RyZWFtKXtsZXQgaT1uZXcgZTtyZXR1cm4gaS5zdHJlYW1JZD10LnN0cmVhbUlkLCFpLnNpZGUmJnIuc2VuZE1ldGhvZCYmKGkuc2lkZT0icmVxdWVzdGluZyIsaS5zZW5kTWV0aG9kPXIuc2VuZE1ldGhvZCksIWkuc2lkZSYmci50eXBlZHJvdXRlciYmKGkuc2lkZT0icmVzcG9uZGluZyIsaS50eXBlZHJvdXRlcj1yLnR5cGVkcm91dGVyLHIudHlwZWRyb3V0ZXIucmVnaXN0ZXJlZFZpcnR1YWxTdHJlYW1zLmFkZChpKSksaS5zdGFydEtlZXBBbGl2ZUxvb3AoKSxpfWVsc2UgaWYoQXJyYXkuaXNBcnJheSh0KSl7bGV0IGk9W107Zm9yKGxldCBhIG9mIHQpaS5wdXNoKGUuZGVjb2RlUGF5bG9hZEZyb21OZXR3b3JrKGEscikpO3JldHVybiBpfWVsc2UgcmV0dXJuIE9iamVjdC5rZXlzKHQpLnJlZHVjZSgoaSxhKT0+KGlbYV09ZS5kZWNvZGVQYXlsb2FkRnJvbU5ldHdvcmsodFthXSxyKSxpKSx7fSl9ZWxzZSByZXR1cm4gdH1jb25zdHJ1Y3Rvcigpe3RoaXMuc3RyZWFtSWQ9cDAudW5pKCksdGhpcy5rZWVwQWxpdmU9ITAsdGhpcy5zZW5kQmFja3ByZXNzdXJlZEFycmF5PW5ldyBkaS5CYWNrcHJlc3N1cmVkQXJyYXkoMTYpLHRoaXMucmVjZWl2ZUJhY2twcmVzc3VyZWRBcnJheT1uZXcgZGkuQmFja3ByZXNzdXJlZEFycmF5KDE2KX1hc3luYyB3b3JrT25RdWV1ZSgpe2lmKHRoaXMud29ya2luZ0RlZmVycmVkKXJldHVybiB0aGlzLndvcmtpbmdEZWZlcnJlZC5wcm9taXNlO2lmKHRoaXMud29ya2luZ0RlZmVycmVkPUtlLmRlZmVyKCksdGhpcy5zaWRlPT09InJlcXVlc3RpbmciKXtsZXQgdD0hdGhpcy5yZWNlaXZlQmFja3ByZXNzdXJlZEFycmF5LmNoZWNrU3BhY2VBdmFpbGFibGUoKSxyPSExLGk9ITEsYT1hc3luYygpPT57bGV0IG49YXdhaXQgdGhpcy5zZW5kTWV0aG9kKHttZXRob2Q6IiMjVmlydHVhbFN0cmVhbSMjIixyZXF1ZXN0OntzdHJlYW1JZDp0aGlzLnN0cmVhbUlkLGN5Y2xlSWQ6cDAudW5pKCksY3ljbGU6InJlcXVlc3QiLG1haW5QdXJwb3NlOiJmZWVkYmFjayIsbmV4dDp0aGlzLnNlbmRCYWNrcHJlc3N1cmVkQXJyYXkuZGF0YS5sZW5ndGg+MCxiYWNrcHJlc3N1cmU6IXRoaXMucmVjZWl2ZUJhY2twcmVzc3VyZWRBcnJheS5jaGVja1NwYWNlQXZhaWxhYmxlKCl9LHJlc3BvbnNlOm51bGx9KS5jYXRjaCgoKT0+e2NvbnNvbGUubG9nKCJzdHJlYW0gZW5kZWQgaW1tYXR1cmVseSIpLHRoaXMua2VlcEFsaXZlPSExfSk7biYmbi5yZXNwb25zZSYmKGk9bi5yZXNwb25zZS5iYWNrcHJlc3N1cmUscj1uLnJlc3BvbnNlLm5leHQpfTtmb3IoYXdhaXQgYSgpO3RoaXMuc2VuZEJhY2twcmVzc3VyZWRBcnJheS5kYXRhLmxlbmd0aD4wfHxyOyl7aWYoaSlmb3IoO2k7KWNvbnNvbGUubG9nKCJ3YWl0aW5nIGZvciBmZWVkYmFjayBiZWNhdXNlIG9mIGJhY2twcmVzc3VyZS4uLiIpLGF3YWl0IHp0LmRlbGF5Rm9yKDUwKSxhd2FpdCBhKCk7bGV0IG47dGhpcy5zZW5kQmFja3ByZXNzdXJlZEFycmF5LmRhdGEubGVuZ3RoPjAmJihuPXRoaXMuc2VuZEJhY2twcmVzc3VyZWRBcnJheS5zaGlmdCgpKTtsZXQgbztvPWF3YWl0IHRoaXMuc2VuZE1ldGhvZCh7bWV0aG9kOiIjI1ZpcnR1YWxTdHJlYW0jIyIscmVxdWVzdDp7c3RyZWFtSWQ6dGhpcy5zdHJlYW1JZCxjeWNsZUlkOnAwLnVuaSgpLGN5Y2xlOiJyZXF1ZXN0IixtYWluUHVycG9zZTpuPyJjaHVuayI6InJlYWQiLGJhY2twcmVzc3VyZTp0LG5leHQ6dGhpcy5zZW5kQmFja3ByZXNzdXJlZEFycmF5LmRhdGEubGVuZ3RoPjAsLi4ubj97Y2h1bmtEYXRhOm59Ont9fSxyZXNwb25zZTpudWxsfSkuY2F0Y2goKCk9Pihjb25zb2xlLmxvZygic3RyZWFtIGVuZGVkIGltbWF0dXJlbHkiKSx0aGlzLmtlZXBBbGl2ZT0hMSxudWxsKSksbyYmby5yZXNwb25zZSYmby5yZXNwb25zZS5jaHVua0RhdGEmJnRoaXMucmVjZWl2ZUJhY2twcmVzc3VyZWRBcnJheS5wdXNoKG8ucmVzcG9uc2UuY2h1bmtEYXRhKSxpPW8mJm8ucmVzcG9uc2UmJm8ucmVzcG9uc2UuYmFja3ByZXNzdXJlLHQ9IXRoaXMucmVjZWl2ZUJhY2twcmVzc3VyZWRBcnJheS5jaGVja1NwYWNlQXZhaWxhYmxlKCkscj1vJiZvLnJlc3BvbnNlJiZvLnJlc3BvbnNlLm5leHR9fXRoaXMud29ya2luZ0RlZmVycmVkLnJlc29sdmUoKSx0aGlzLndvcmtpbmdEZWZlcnJlZD1udWxsfWFzeW5jIGhhbmRsZVN0cmVhbVRyKHQpe2lmKHQucmVxdWVzdC5rZWVwQWxpdmU9PT0hMCYmdGhpcy5rZWVwQWxpdmU9PT0hMD90aGlzLmxhc3RLZWVwQWxpdmVFdmVudD1EYXRlLm5vdygpOnQucmVxdWVzdC5rZWVwQWxpdmU9PT0hMSYmKHRoaXMua2VlcEFsaXZlPSExKSx0LnJlcXVlc3QubWFpblB1cnBvc2U9PT0ia2VlcEFsaXZlIiYmKHQucmVzcG9uc2U9e3N0cmVhbUlkOnRoaXMuc3RyZWFtSWQsY3ljbGVJZDp0LnJlcXVlc3QuY3ljbGVJZCxjeWNsZToicmVzcG9uc2UiLG1haW5QdXJwb3NlOiJrZWVwQWxpdmUiLGtlZXBBbGl2ZTp0aGlzLmtlZXBBbGl2ZSxuZXh0OnRoaXMuc2VuZEJhY2twcmVzc3VyZWRBcnJheS5kYXRhLmxlbmd0aD4wLGJhY2twcmVzc3VyZTohdGhpcy5yZWNlaXZlQmFja3ByZXNzdXJlZEFycmF5LmNoZWNrU3BhY2VBdmFpbGFibGUoKX0pLHQucmVxdWVzdC5tYWluUHVycG9zZT09PSJmZWVkYmFjayImJih0LnJlc3BvbnNlPXtzdHJlYW1JZDp0aGlzLnN0cmVhbUlkLGN5Y2xlSWQ6dC5yZXF1ZXN0LmN5Y2xlSWQsY3ljbGU6InJlc3BvbnNlIixtYWluUHVycG9zZToiZmVlZGJhY2siLG5leHQ6dGhpcy5zZW5kQmFja3ByZXNzdXJlZEFycmF5LmRhdGEubGVuZ3RoPjAsYmFja3ByZXNzdXJlOiF0aGlzLnJlY2VpdmVCYWNrcHJlc3N1cmVkQXJyYXkuY2hlY2tTcGFjZUF2YWlsYWJsZSgpfSksdC5yZXF1ZXN0Lm1haW5QdXJwb3NlPT09ImNodW5rIil7aWYodGhpcy5yZWNlaXZlQmFja3ByZXNzdXJlZEFycmF5LnB1c2godC5yZXF1ZXN0LmNodW5rRGF0YSksdGhpcy5zZW5kQmFja3ByZXNzdXJlZEFycmF5LmRhdGEubGVuZ3RoPjAmJnQucmVzcG9uc2UuYmFja3ByZXNzdXJlPT09ITEpe2xldCByPXRoaXMuc2VuZEJhY2twcmVzc3VyZWRBcnJheS5zaGlmdCgpO3QucmVzcG9uc2U9e3N0cmVhbUlkOnRoaXMuc3RyZWFtSWQsY3ljbGVJZDp0LnJlcXVlc3QuY3ljbGVJZCxjeWNsZToicmVzcG9uc2UiLG1haW5QdXJwb3NlOiJjaHVuayIsbmV4dDp0aGlzLnNlbmRCYWNrcHJlc3N1cmVkQXJyYXkuZGF0YS5sZW5ndGg+MSxiYWNrcHJlc3N1cmU6IXRoaXMucmVjZWl2ZUJhY2twcmVzc3VyZWRBcnJheS5jaGVja1NwYWNlQXZhaWxhYmxlKCksY2h1bmtEYXRhOnRoaXMuc2VuZEJhY2twcmVzc3VyZWRBcnJheS5zaGlmdCgpfX1lbHNlIHQucmVzcG9uc2U9e3N0cmVhbUlkOnRoaXMuc3RyZWFtSWQsY3ljbGVJZDp0LnJlcXVlc3QuY3ljbGVJZCxjeWNsZToicmVzcG9uc2UiLG1haW5QdXJwb3NlOiJmZWVkYmFjayIsbmV4dDp0aGlzLnNlbmRCYWNrcHJlc3N1cmVkQXJyYXkuZGF0YS5sZW5ndGg+MCxiYWNrcHJlc3N1cmU6IXRoaXMucmVjZWl2ZUJhY2twcmVzc3VyZWRBcnJheS5jaGVja1NwYWNlQXZhaWxhYmxlKCl9O3QucmVxdWVzdD1udWxsfXJldHVybiB0fWFzeW5jIGNsZWFudXAoKXt0aGlzLnR5cGVkcm91dGVyJiZ0aGlzLnR5cGVkcm91dGVyLnJlZ2lzdGVyZWRWaXJ0dWFsU3RyZWFtcy5yZW1vdmUodGhpcyl9YXN5bmMgc3RhcnRLZWVwQWxpdmVMb29wKCl7aWYodGhpcy5zaWRlPT09InJlc3BvbmRpbmciKXJldHVybjthd2FpdCB6dC5kZWxheUZvcigwKSxjb25zb2xlLmxvZyhgc3RhcnRpbmcga2VlcGFsaXZlIGxvb3Agb24gc2lkZSAke3RoaXMuc2lkZX1gKTtsZXQgdD0wO2Zvcig7dGhpcy5rZWVwQWxpdmU7KWF3YWl0IHRoaXMudHJpZ2dlcktlZXBBbGl2ZSgpLGF3YWl0IHp0LmRlbGF5Rm9yKDFlMyk7YXdhaXQgenQuZGVsYXlGb3IoMWUzKSxhd2FpdCB0aGlzLmNsZWFudXAoKSxjb25zb2xlLmxvZyhgY2xlYW5lZCB1cCBmb3Igc3RyZWFtICR7dGhpcy5zdHJlYW1JZH1gKX1hc3luYyB0cmlnZ2VyS2VlcEFsaXZlKCl7aWYodGhpcy5zaWRlPT09InJlcXVlc3RpbmciKXtjb25zb2xlLmxvZygia2VlcGFsaXZlIHNlbnQuIik7bGV0IHQ9YXdhaXQgdGhpcy5zZW5kTWV0aG9kKHttZXRob2Q6IiMjVmlydHVhbFN0cmVhbSMjIixyZXF1ZXN0OntzdHJlYW1JZDp0aGlzLnN0cmVhbUlkLGN5Y2xlSWQ6cDAudW5pKCksY3ljbGU6InJlcXVlc3QiLG1haW5QdXJwb3NlOiJrZWVwQWxpdmUiLGtlZXBBbGl2ZTp0aGlzLmtlZXBBbGl2ZX0scmVzcG9uc2U6bnVsbH0pLmNhdGNoKCgpPT57dGhpcy5rZWVwQWxpdmU9ITF9KTt0JiZ0LnJlc3BvbnNlJiZ0LnJlc3BvbnNlLmtlZXBBbGl2ZT09PSExP3RoaXMua2VlcEFsaXZlPSExOnRoaXMubGFzdEtlZXBBbGl2ZUV2ZW50PURhdGUubm93KCksdCYmdC5yZXNwb25zZSYmdC5yZXNwb25zZS5uZXh0JiZ0aGlzLndvcmtPblF1ZXVlKCl9RGF0ZS5ub3coKS10aGlzLmxhc3RLZWVwQWxpdmVFdmVudD4xZTQmJihjb25zb2xlLmxvZyhgY2xvc2luZyBzdHJlYW0gZm9yICR7dGhpcy5zdHJlYW1JZH1gKSx0aGlzLmtlZXBBbGl2ZT0hMSl9YXN5bmMgc2VuZERhdGEodCl7dGhpcy5zZW5kQmFja3ByZXNzdXJlZEFycmF5LnB1c2godCksdGhpcy53b3JrT25RdWV1ZSgpLGF3YWl0IHRoaXMuc2VuZEJhY2twcmVzc3VyZWRBcnJheS53YWl0Rm9yU3BhY2UoKX1hc3luYyBmZXRjaERhdGEoKXtyZXR1cm4gdGhpcy5yZWNlaXZlQmFja3ByZXNzdXJlZEFycmF5Lmhhc1NwYWNlLGF3YWl0IHRoaXMucmVjZWl2ZUJhY2twcmVzc3VyZWRBcnJheS53YWl0Rm9ySXRlbXMoKSx0aGlzLnJlY2VpdmVCYWNrcHJlc3N1cmVkQXJyYXkuc2hpZnQoKX1hc3luYyByZWFkRnJvbVdlYnN0cmVhbSh0LHI9ITApe2xldCBpPXQuZ2V0UmVhZGVyKCksYT0hMTtmb3IoOyFhOyl7bGV0e3ZhbHVlOm4sZG9uZTpvfT1hd2FpdCBpLnJlYWQoKTtuJiZhd2FpdCB0aGlzLnNlbmREYXRhKG4pLGE9b31yJiZhd2FpdCB0aGlzLmNsb3NlKCEwKX1hc3luYyB3cml0ZVRvV2Vic3RyZWFtKHQpe2xldCByPXQuZ2V0V3JpdGVyKCk7Zm9yKDt0aGlzLmtlZXBBbGl2ZXx8dGhpcy5yZWNlaXZlQmFja3ByZXNzdXJlZEFycmF5LmNoZWNrSGFzSXRlbXMoKTspe2xldCBpPWF3YWl0IHRoaXMuZmV0Y2hEYXRhKCk7aWYoaT09PXh4ZSl7ci5yZWxlYXNlTG9jaygpLGF3YWl0IHQuY2xvc2UoKTticmVha31hd2FpdCByLndyaXRlKGkpfX1hc3luYyBjbG9zZSh0PSExKXt0JiZ0aGlzLnNlbmREYXRhKHh4ZSksdGhpcy5rZWVwQWxpdmU9ITF9fX0pO3ZhciB2aix4aj1wKCgpPT57UWYoKTtoMCgpO3ZqPWNsYXNze2NvbnN0cnVjdG9yKHQpe2lmKHQucG9zdE1ldGhvZFdpdGhUeXBlZFJvdXRlciYmIXQudHlwZWRSb3V0ZXJSZWYpdGhyb3cgbmV3IEVycm9yKCJ5b3UgaGF2ZSB0byBzcGVjaWZ5IGEgdHlwZWRyb3V0ZXIgd2hlbiB1c2luZyBwb3N0bWV0aG9kIHdpdGggdHlwZWRyb3V0ZXIiKTt0aGlzLm9wdGlvbnM9dH1hc3luYyBwb3N0KHQpe2xldCByO3RoaXMub3B0aW9ucy50eXBlZFJvdXRlclJlZiYmKHI9YXdhaXQgdGhpcy5vcHRpb25zLnR5cGVkUm91dGVyUmVmLmZpcmVFdmVudEludGVyZXN0TWFwLmFkZEludGVyZXN0KHQuY29ycmVsYXRpb24uaWQsdCkpO2xldCBhPWF3YWl0KHRoaXMub3B0aW9ucy5wb3N0TWV0aG9kfHx0aGlzLm9wdGlvbnMucG9zdE1ldGhvZFdpdGhUeXBlZFJvdXRlcikodCksbjtyZXR1cm4gcj9uPWF3YWl0IHIuaW50ZXJlc3RGdWxsZmlsbGVkOmE/bj1hOm49dCxufX19KTtmdW5jdGlvbiB5eGUoZSx0KXt0cnl7RTMuZ2xvYmFsSG9va3NbZV0/Lih0KX1jYXRjaChyKXtjb25zb2xlLmVycm9yKGBUeXBlZFJlcXVlc3QgaG9vayBlcnJvciAoJHtlfSk6YCxyKX19dmFyIFJncixKZixiaj1wKCgpPT57aDAoKTtXdygpO1hmKCk7UWYoKTt4aigpO1Jncj1uZXcgWmYuV2VicmVxdWVzdENsaWVudDtKZj1jbGFzc3tjb25zdHJ1Y3Rvcih0LHIpe3RoaXMuc2tpcEhvb2tzPSExLHR5cGVvZiB0PT0ic3RyaW5nIj90aGlzLnVybEVuZFBvaW50PXQ6dGhpcy50eXBlZFRhcmdldD10LHRoaXMubWV0aG9kPXJ9YXN5bmMgZmlyZSh0LHI9ITEpe2xldCBpPURhdGUubm93KCksYT17bWV0aG9kOnRoaXMubWV0aG9kLHJlcXVlc3Q6dCxyZXNwb25zZTpudWxsLGNvcnJlbGF0aW9uOntpZDpwMC51bmkoKSxwaGFzZToicmVxdWVzdCJ9fTthPXNzLmVuY29kZVBheWxvYWRGb3JOZXR3b3JrKGEse3NlbmRNZXRob2Q6bz0+dGhpcy5wb3N0VHJPYmplY3Qobyl9KSx0aGlzLnNraXBIb29rc3x8eXhlKCJvbk91dGdvaW5nUmVxdWVzdCIse2NvcnJlbGF0aW9uSWQ6YS5jb3JyZWxhdGlvbi5pZCxtZXRob2Q6dGhpcy5tZXRob2QsZGlyZWN0aW9uOiJvdXRnb2luZyIscGhhc2U6InJlcXVlc3QiLHRpbWVzdGFtcDppLHBheWxvYWQ6dH0pO2xldCBuO3JldHVybiBuPWF3YWl0IHRoaXMucG9zdFRyT2JqZWN0KGEsciksbj1zcy5kZWNvZGVQYXlsb2FkRnJvbU5ldHdvcmsobix7c2VuZE1ldGhvZDpvPT50aGlzLnBvc3RUck9iamVjdChvKX0pLHRoaXMuc2tpcEhvb2tzfHx5eGUoIm9uSW5jb21pbmdSZXNwb25zZSIse2NvcnJlbGF0aW9uSWQ6YS5jb3JyZWxhdGlvbi5pZCxtZXRob2Q6dGhpcy5tZXRob2QsZGlyZWN0aW9uOiJpbmNvbWluZyIscGhhc2U6InJlc3BvbnNlIix0aW1lc3RhbXA6RGF0ZS5ub3coKSxkdXJhdGlvbk1zOkRhdGUubm93KCktaSxwYXlsb2FkOm4/LnJlc3BvbnNlLGVycm9yOm4/LmVycm9yPy50ZXh0fSksbi5yZXNwb25zZX1hc3luYyBwb3N0VHJPYmplY3QodCxyPSExKXtsZXQgaTtpZih0aGlzLnVybEVuZFBvaW50P2k9YXdhaXQgUmdyLnBvc3RKc29uKHRoaXMudXJsRW5kUG9pbnQsdCxyP3tjYWNoZVN0cmF0ZWd5OiJjYWNoZS1maXJzdCJ9Ont9KTppPWF3YWl0IHRoaXMudHlwZWRUYXJnZXQucG9zdCh0KSxpLmVycm9yKXtpZihjb25zb2xlLmVycm9yKGBtZXRob2Q6ID4+JHt0aGlzLm1ldGhvZH08PCBnb3QgYW4gRVJST1I6ICIke2kuZXJyb3IudGV4dH0iIHdpdGggZGF0YSAke0pTT04uc3RyaW5naWZ5KGkuZXJyb3IuZGF0YSxudWxsLDIpfWApLCFpLnJldHJ5KXRocm93IG5ldyB6bChpLmVycm9yLnRleHQsaS5lcnJvci5kYXRhKTtyZXR1cm4gbnVsbH1yZXR1cm4gaS5yZXRyeSYmKGNvbnNvbGUubG9nKGBzZXJ2ZXIgcmVxdWVzdGVkIHJldHJ5IGZvciB0aGUgZm9sbG93aW5nIHJlYXNvbjogJHtpLnJldHJ5LnJlYXNvbn1gKSxhd2FpdCB6dC5kZWxheUZvcihpLnJldHJ5LndhaXRGb3JNcyksaT1hd2FpdCB0aGlzLnBvc3RUck9iamVjdCh0LHIpKSxpfX19KTt2YXIgVmE9e307RmUoVmEse1R5cGVkSGFuZGxlcjooKT0+bWosVHlwZWRSZXF1ZXN0OigpPT5KZixUeXBlZFJlc3BvbnNlRXJyb3I6KCk9PnpsLFR5cGVkUm91dGVyOigpPT5FMyxUeXBlZFRhcmdldDooKT0+dmosVmlydHVhbFN0cmVhbTooKT0+c3N9KTt2YXIgS2Y9cCgoKT0+e2JqKCk7Z2ooKTtRZigpO1hmKCk7eGooKTtXdygpfSk7ZnVuY3Rpb24gd3hlKGUpe3JldHVybiBlJiZ0eXBlb2YgZS50aGVuPT0iZnVuY3Rpb24ifWZ1bmN0aW9uIGxzKGUsdCl7cmV0dXJuIGV8fChlPTApLG5ldyBQcm9taXNlKGZ1bmN0aW9uKHIpe3JldHVybiBzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7cmV0dXJuIHIodCl9LGUpfSl9ZnVuY3Rpb24gU3hlKGUsdCl7cmV0dXJuIE1hdGguZmxvb3IoTWF0aC5yYW5kb20oKSoodC1lKzEpK2UpfWZ1bmN0aW9uIENsKCl7cmV0dXJuIE1hdGgucmFuZG9tKCkudG9TdHJpbmcoMzYpLnN1YnN0cmluZygyKX1mdW5jdGlvbiBUbCgpe3ZhciBlPURhdGUubm93KCkqMWUzO3JldHVybiBlPD15aiYmKGU9eWorMSkseWo9ZSxlfWZ1bmN0aW9uIHp4ZSgpe3JldHVybiB0eXBlb2YgbmF2aWdhdG9yPCJ1IiYmdHlwZW9mIG5hdmlnYXRvci5sb2NrczwidSImJnR5cGVvZiBuYXZpZ2F0b3IubG9ja3MucmVxdWVzdD09ImZ1bmN0aW9uIn12YXIgTXhlLGt4ZSxQbix5aixmMD1wKCgpPT57TXhlPVByb21pc2UucmVzb2x2ZSghMSksa3hlPVByb21pc2UucmVzb2x2ZSghMCksUG49UHJvbWlzZS5yZXNvbHZlKCk7eWo9MH0pO2Z1bmN0aW9uIHFncihlKXt2YXIgdD17dGltZTpUbCgpLG1lc3NhZ2VzQ2FsbGJhY2s6bnVsbCxiYzpuZXcgQnJvYWRjYXN0Q2hhbm5lbChlKSxzdWJGbnM6W119O3JldHVybiB0LmJjLm9ubWVzc2FnZT1mdW5jdGlvbihyKXt0Lm1lc3NhZ2VzQ2FsbGJhY2smJnQubWVzc2FnZXNDYWxsYmFjayhyLmRhdGEpfSx0fWZ1bmN0aW9uIGpncihlKXtlLmJjLmNsb3NlKCksZS5zdWJGbnM9W119ZnVuY3Rpb24gVmdyKGUsdCl7dHJ5e3JldHVybiBlLmJjLnBvc3RNZXNzYWdlKHQsITEpLFBufWNhdGNoKHIpe3JldHVybiBQcm9taXNlLnJlamVjdChyKX19ZnVuY3Rpb24gVWdyKGUsdCl7ZS5tZXNzYWdlc0NhbGxiYWNrPXR9ZnVuY3Rpb24gV2dyKCl7aWYodHlwZW9mIGdsb2JhbFRoaXM8InUiJiZnbG9iYWxUaGlzLkRlbm8mJmdsb2JhbFRoaXMuRGVuby5hcmdzKXJldHVybiEwO2lmKCh0eXBlb2Ygd2luZG93PCJ1Inx8dHlwZW9mIHNlbGY8InUiKSYmdHlwZW9mIEJyb2FkY2FzdENoYW5uZWw9PSJmdW5jdGlvbiIpe2lmKEJyb2FkY2FzdENoYW5uZWwuX3B1YmtleSl0aHJvdyBuZXcgRXJyb3IoIkJyb2FkY2FzdENoYW5uZWw6IERvIG5vdCBvdmVyd3JpdGUgd2luZG93LkJyb2FkY2FzdENoYW5uZWwgd2l0aCB0aGlzIG1vZHVsZSwgdGhpcyBpcyBub3QgYSBwb2x5ZmlsbCIpO3JldHVybiEwfWVsc2UgcmV0dXJuITF9ZnVuY3Rpb24gR2dyKCl7cmV0dXJuIDE1MH12YXIgQmdyLEhncixDeGUsVHhlPXAoKCk9PntmMCgpO0Jncj1UbCxIZ3I9Im5hdGl2ZSI7Q3hlPXtjcmVhdGU6cWdyLGNsb3NlOmpncixvbk1lc3NhZ2U6VWdyLHBvc3RNZXNzYWdlOlZncixjYW5CZVVzZWQ6V2dyLHR5cGU6SGdyLGF2ZXJhZ2VSZXNwb25zZVRpbWU6R2dyLG1pY3JvU2Vjb25kczpCZ3J9fSk7ZnVuY3Rpb24gWWdyKGUpe2xldCB0PXdqKCktZS50dGwscj1lLm1hcFtTeW1ib2wuaXRlcmF0b3JdKCk7Zm9yKDs7KXtsZXQgaT1yLm5leHQoKS52YWx1ZTtpZighaSlicmVhaztsZXQgYT1pWzBdO2lmKGlbMV08dCllLm1hcC5kZWxldGUoYSk7ZWxzZSBicmVha319ZnVuY3Rpb24gd2ooKXtyZXR1cm4gRGF0ZS5ub3coKX12YXIgY3UsTWo9cCgoKT0+e2N1PWNsYXNze3R0bDttYXA9bmV3IE1hcDtfdG89ITE7Y29uc3RydWN0b3IodCl7dGhpcy50dGw9dH1oYXModCl7bGV0IHI9dGhpcy5tYXAuZ2V0KHQpO3JldHVybiB0eXBlb2Ygcj4idSI/ITE6cjx3aigpLXRoaXMudHRsPyh0aGlzLm1hcC5kZWxldGUodCksITEpOiEwfWFkZCh0KXt0aGlzLm1hcC5kZWxldGUodCksdGhpcy5tYXAuc2V0KHQsd2ooKSksdGhpcy5fdG98fCh0aGlzLl90bz0hMCxzZXRUaW1lb3V0KCgpPT57dGhpcy5fdG89ITEsWWdyKHRoaXMpfSwwKSl9Y2xlYXIoKXt0aGlzLm1hcC5jbGVhcigpfX19KTtmdW5jdGlvbiAkMygpe3ZhciBlPWFyZ3VtZW50cy5sZW5ndGg+MCYmYXJndW1lbnRzWzBdIT09dm9pZCAwP2FyZ3VtZW50c1swXTp7fSx0PUpTT04ucGFyc2UoSlNPTi5zdHJpbmdpZnkoZSkpO3JldHVybiB0eXBlb2YgdC53ZWJXb3JrZXJTdXBwb3J0PiJ1IiYmKHQud2ViV29ya2VyU3VwcG9ydD0hMCksdC5pZGJ8fCh0LmlkYj17fSksdC5pZGIudHRsfHwodC5pZGIudHRsPTFlMyo0NSksdC5pZGIuZmFsbGJhY2tJbnRlcnZhbHx8KHQuaWRiLmZhbGxiYWNrSW50ZXJ2YWw9MTUwKSxlLmlkYiYmdHlwZW9mIGUuaWRiLm9uY2xvc2U9PSJmdW5jdGlvbiImJih0LmlkYi5vbmNsb3NlPWUuaWRiLm9uY2xvc2UpLHQubG9jYWxzdG9yYWdlfHwodC5sb2NhbHN0b3JhZ2U9e30pLHQubG9jYWxzdG9yYWdlLnJlbW92ZVRpbWVvdXR8fCh0LmxvY2Fsc3RvcmFnZS5yZW1vdmVUaW1lb3V0PTFlMyo2MCksZS5tZXRob2RzJiYodC5tZXRob2RzPWUubWV0aG9kcyksdC5ub2RlfHwodC5ub2RlPXt9KSx0Lm5vZGUudHRsfHwodC5ub2RlLnR0bD0xZTMqNjAqMiksdC5ub2RlLm1heFBhcmFsbGVsV3JpdGVzfHwodC5ub2RlLm1heFBhcmFsbGVsV3JpdGVzPTIwNDgpLHR5cGVvZiB0Lm5vZGUudXNlRmFzdFBhdGg+InUiJiYodC5ub2RlLnVzZUZhc3RQYXRoPSEwKSx0fXZhciBHdz1wKCgpPT57fSk7ZnVuY3Rpb24gX3hlKCl7aWYodHlwZW9mIGluZGV4ZWREQjwidSIpcmV0dXJuIGluZGV4ZWREQjtpZih0eXBlb2Ygd2luZG93PCJ1Iil7aWYodHlwZW9mIHdpbmRvdy5tb3pJbmRleGVkREI8InUiKXJldHVybiB3aW5kb3cubW96SW5kZXhlZERCO2lmKHR5cGVvZiB3aW5kb3cud2Via2l0SW5kZXhlZERCPCJ1IilyZXR1cm4gd2luZG93LndlYmtpdEluZGV4ZWREQjtpZih0eXBlb2Ygd2luZG93Lm1zSW5kZXhlZERCPCJ1IilyZXR1cm4gd2luZG93Lm1zSW5kZXhlZERCfXJldHVybiExfWZ1bmN0aW9uIFl3KGUpe2UuY29tbWl0JiZlLmNvbW1pdCgpfWZ1bmN0aW9uIEpncihlKXt2YXIgdD1feGUoKSxyPVhncitlLGk9dC5vcGVuKHIpO3JldHVybiBpLm9udXBncmFkZW5lZWRlZD1mdW5jdGlvbihhKXt2YXIgbj1hLnRhcmdldC5yZXN1bHQ7bi5jcmVhdGVPYmplY3RTdG9yZShuMix7a2V5UGF0aDoiaWQiLGF1dG9JbmNyZW1lbnQ6ITB9KX0sbmV3IFByb21pc2UoZnVuY3Rpb24oYSxuKXtpLm9uZXJyb3I9ZnVuY3Rpb24obyl7cmV0dXJuIG4obyl9LGkub25zdWNjZXNzPWZ1bmN0aW9uKCl7YShpLnJlc3VsdCl9fSl9ZnVuY3Rpb24gS2dyKGUsdCxyKXt2YXIgaT1EYXRlLm5vdygpLGE9e3V1aWQ6dCx0aW1lOmksZGF0YTpyfSxuPWUudHJhbnNhY3Rpb24oW24yXSwicmVhZHdyaXRlIixlNyk7cmV0dXJuIG5ldyBQcm9taXNlKGZ1bmN0aW9uKG8scyl7bi5vbmNvbXBsZXRlPWZ1bmN0aW9uKCl7cmV0dXJuIG8oKX0sbi5vbmVycm9yPWZ1bmN0aW9uKGMpe3JldHVybiBzKGMpfTt2YXIgbD1uLm9iamVjdFN0b3JlKG4yKTtsLmFkZChhKSxZdyhuKX0pfWZ1bmN0aW9uIGtEMShlKXt2YXIgdD1lLnRyYW5zYWN0aW9uKG4yLCJyZWFkb25seSIsZTcpLHI9dC5vYmplY3RTdG9yZShuMiksaT1bXTtyZXR1cm4gbmV3IFByb21pc2UoZnVuY3Rpb24oYSl7ci5vcGVuQ3Vyc29yKCkub25zdWNjZXNzPWZ1bmN0aW9uKG4pe3ZhciBvPW4udGFyZ2V0LnJlc3VsdDtvPyhpLnB1c2goby52YWx1ZSksby5jb250aW51ZSgpKTooWXcodCksYShpKSl9fSl9ZnVuY3Rpb24gZWJyKGUsdCl7dmFyIHI9ZS50cmFuc2FjdGlvbihuMiwicmVhZG9ubHkiLGU3KSxpPXIub2JqZWN0U3RvcmUobjIpLGE9W10sbj1JREJLZXlSYW5nZS5ib3VuZCh0KzEsMS8wKTtpZihpLmdldEFsbCl7dmFyIG89aS5nZXRBbGwobik7cmV0dXJuIG5ldyBQcm9taXNlKGZ1bmN0aW9uKGwsYyl7by5vbmVycm9yPWZ1bmN0aW9uKHUpe3JldHVybiBjKHUpfSxvLm9uc3VjY2Vzcz1mdW5jdGlvbih1KXtsKHUudGFyZ2V0LnJlc3VsdCl9fSl9ZnVuY3Rpb24gcygpe3RyeXtyZXR1cm4gbj1JREJLZXlSYW5nZS5ib3VuZCh0KzEsMS8wKSxpLm9wZW5DdXJzb3Iobil9Y2F0Y2h7cmV0dXJuIGkub3BlbkN1cnNvcigpfX1yZXR1cm4gbmV3IFByb21pc2UoZnVuY3Rpb24obCxjKXt2YXIgdT1zKCk7dS5vbmVycm9yPWZ1bmN0aW9uKGQpe3JldHVybiBjKGQpfSx1Lm9uc3VjY2Vzcz1mdW5jdGlvbihkKXt2YXIgaD1kLnRhcmdldC5yZXN1bHQ7aD9oLnZhbHVlLmlkPHQrMT9oLmNvbnRpbnVlKHQrMSk6KGEucHVzaChoLnZhbHVlKSxoLmNvbnRpbnVlKCkpOihZdyhyKSxsKGEpKX19KX1mdW5jdGlvbiB0YnIoZSx0KXtpZihlLmNsb3NlZClyZXR1cm4gUHJvbWlzZS5yZXNvbHZlKFtdKTt2YXIgcj1lLmRiLnRyYW5zYWN0aW9uKG4yLCJyZWFkd3JpdGUiLGU3KSxpPXIub2JqZWN0U3RvcmUobjIpO3JldHVybiBQcm9taXNlLmFsbCh0Lm1hcChmdW5jdGlvbihhKXt2YXIgbj1pLmRlbGV0ZShhKTtyZXR1cm4gbmV3IFByb21pc2UoZnVuY3Rpb24obyl7bi5vbnN1Y2Nlc3M9ZnVuY3Rpb24oKXtyZXR1cm4gbygpfX0pfSkpfWZ1bmN0aW9uIHJicihlLHQpe3ZhciByPURhdGUubm93KCktdCxpPWUudHJhbnNhY3Rpb24objIsInJlYWRvbmx5IixlNyksYT1pLm9iamVjdFN0b3JlKG4yKSxuPVtdO3JldHVybiBuZXcgUHJvbWlzZShmdW5jdGlvbihvKXthLm9wZW5DdXJzb3IoKS5vbnN1Y2Nlc3M9ZnVuY3Rpb24ocyl7dmFyIGw9cy50YXJnZXQucmVzdWx0O2lmKGwpe3ZhciBjPWwudmFsdWU7Yy50aW1lPHI/KG4ucHVzaChjKSxsLmNvbnRpbnVlKCkpOihZdyhpKSxvKG4pKX1lbHNlIG8obil9fSl9ZnVuY3Rpb24gaWJyKGUpe3JldHVybiByYnIoZS5kYixlLm9wdGlvbnMuaWRiLnR0bCkudGhlbihmdW5jdGlvbih0KXtyZXR1cm4gdGJyKGUsdC5tYXAoZnVuY3Rpb24ocil7cmV0dXJuIHIuaWR9KSl9KX1mdW5jdGlvbiBhYnIoZSx0KXtyZXR1cm4gdD0kMyh0KSxKZ3IoZSkudGhlbihmdW5jdGlvbihyKXt2YXIgaT17Y2xvc2VkOiExLGxhc3RDdXJzb3JJZDowLGNoYW5uZWxOYW1lOmUsb3B0aW9uczp0LHV1aWQ6Q2woKSxlTUlzOm5ldyBjdSh0LmlkYi50dGwqMiksd3JpdGVCbG9ja1Byb21pc2U6UG4sbWVzc2FnZXNDYWxsYmFjazpudWxsLHJlYWRRdWV1ZVByb21pc2VzOltdLGRiOnJ9O3JldHVybiByLm9uY2xvc2U9ZnVuY3Rpb24oKXtpLmNsb3NlZD0hMCx0LmlkYi5vbmNsb3NlJiZ0LmlkYi5vbmNsb3NlKCl9LEx4ZShpKSxpfSl9ZnVuY3Rpb24gTHhlKGUpe2UuY2xvc2VkfHxBeGUoZSkudGhlbihmdW5jdGlvbigpe3JldHVybiBscyhlLm9wdGlvbnMuaWRiLmZhbGxiYWNrSW50ZXJ2YWwpfSkudGhlbihmdW5jdGlvbigpe3JldHVybiBMeGUoZSl9KX1mdW5jdGlvbiBuYnIoZSx0KXtyZXR1cm4hKGUudXVpZD09PXQudXVpZHx8dC5lTUlzLmhhcyhlLmlkKXx8ZS5kYXRhLnRpbWU8dC5tZXNzYWdlc0NhbGxiYWNrVGltZSl9ZnVuY3Rpb24gQXhlKGUpe3JldHVybiBlLmNsb3NlZD9QbjplLm1lc3NhZ2VzQ2FsbGJhY2s/ZWJyKGUuZGIsZS5sYXN0Q3Vyc29ySWQpLnRoZW4oZnVuY3Rpb24odCl7dmFyIHI9dC5maWx0ZXIoZnVuY3Rpb24oaSl7cmV0dXJuISFpfSkubWFwKGZ1bmN0aW9uKGkpe3JldHVybiBpLmlkPmUubGFzdEN1cnNvcklkJiYoZS5sYXN0Q3Vyc29ySWQ9aS5pZCksaX0pLmZpbHRlcihmdW5jdGlvbihpKXtyZXR1cm4gbmJyKGksZSl9KS5zb3J0KGZ1bmN0aW9uKGksYSl7cmV0dXJuIGkudGltZS1hLnRpbWV9KTtyZXR1cm4gci5mb3JFYWNoKGZ1bmN0aW9uKGkpe2UubWVzc2FnZXNDYWxsYmFjayYmKGUuZU1Jcy5hZGQoaS5pZCksZS5tZXNzYWdlc0NhbGxiYWNrKGkuZGF0YSkpfSksUG59KTpQbn1mdW5jdGlvbiBvYnIoZSl7ZS5jbG9zZWQ9ITAsZS5kYi5jbG9zZSgpfWZ1bmN0aW9uIHNicihlLHQpe3JldHVybiBlLndyaXRlQmxvY2tQcm9taXNlPWUud3JpdGVCbG9ja1Byb21pc2UudGhlbihmdW5jdGlvbigpe3JldHVybiBLZ3IoZS5kYixlLnV1aWQsdCl9KS50aGVuKGZ1bmN0aW9uKCl7U3hlKDAsMTApPT09MCYmaWJyKGUpfSksZS53cml0ZUJsb2NrUHJvbWlzZX1mdW5jdGlvbiBsYnIoZSx0LHIpe2UubWVzc2FnZXNDYWxsYmFja1RpbWU9cixlLm1lc3NhZ2VzQ2FsbGJhY2s9dCxBeGUoZSl9ZnVuY3Rpb24gY2JyKCl7cmV0dXJuISFfeGUoKX1mdW5jdGlvbiBkYnIoZSl7cmV0dXJuIGUuaWRiLmZhbGxiYWNrSW50ZXJ2YWwqMn12YXIgWmdyLFhncixuMixlNyxRZ3IsRHhlLEV4ZT1wKCgpPT57ZjAoKTtNaigpO0d3KCk7WmdyPVRsLFhncj0icHVia2V5LmJyb2FkY2FzdC1jaGFubmVsLTAtIixuMj0ibWVzc2FnZXMiLGU3PXtkdXJhYmlsaXR5OiJyZWxheGVkIn0sUWdyPSJpZGIiO0R4ZT17Y3JlYXRlOmFicixjbG9zZTpvYnIsb25NZXNzYWdlOmxicixwb3N0TWVzc2FnZTpzYnIsY2FuQmVVc2VkOmNicix0eXBlOlFncixhdmVyYWdlUmVzcG9uc2VUaW1lOmRicixtaWNyb1NlY29uZHM6WmdyfX0pO2Z1bmN0aW9uICR4ZSgpe3ZhciBlO2lmKHR5cGVvZiB3aW5kb3c+InUiKXJldHVybiBudWxsO3RyeXtlPXdpbmRvdy5sb2NhbFN0b3JhZ2UsZT13aW5kb3dbImllOC1ldmVudGxpc3RlbmVyL3N0b3JhZ2UiXXx8d2luZG93LmxvY2FsU3RvcmFnZX1jYXRjaHt9cmV0dXJuIGV9ZnVuY3Rpb24gSXhlKGUpe3JldHVybiBwYnIrZX1mdW5jdGlvbiBmYnIoZSx0KXtyZXR1cm4gbmV3IFByb21pc2UoZnVuY3Rpb24ocil7bHMoKS50aGVuKGZ1bmN0aW9uKCl7dmFyIGk9SXhlKGUuY2hhbm5lbE5hbWUpLGE9e3Rva2VuOkNsKCksdGltZTpEYXRlLm5vdygpLGRhdGE6dCx1dWlkOmUudXVpZH0sbj1KU09OLnN0cmluZ2lmeShhKTskeGUoKS5zZXRJdGVtKGksbik7dmFyIG89ZG9jdW1lbnQuY3JlYXRlRXZlbnQoIkV2ZW50Iik7by5pbml0RXZlbnQoInN0b3JhZ2UiLCEwLCEwKSxvLmtleT1pLG8ubmV3VmFsdWU9bix3aW5kb3cuZGlzcGF0Y2hFdmVudChvKSxyKCl9KX0pfWZ1bmN0aW9uIG1icihlLHQpe3ZhciByPUl4ZShlKSxpPWZ1bmN0aW9uKG4pe24ua2V5PT09ciYmdChKU09OLnBhcnNlKG4ubmV3VmFsdWUpKX07cmV0dXJuIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCJzdG9yYWdlIixpKSxpfWZ1bmN0aW9uIGdicihlKXt3aW5kb3cucmVtb3ZlRXZlbnRMaXN0ZW5lcigic3RvcmFnZSIsZSl9ZnVuY3Rpb24gYmJyKGUsdCl7aWYodD0kMyh0KSwhUHhlKCkpdGhyb3cgbmV3IEVycm9yKCJCcm9hZGNhc3RDaGFubmVsOiBsb2NhbHN0b3JhZ2UgY2Fubm90IGJlIHVzZWQiKTt2YXIgcj1DbCgpLGk9bmV3IGN1KHQubG9jYWxzdG9yYWdlLnJlbW92ZVRpbWVvdXQpLGE9e2NoYW5uZWxOYW1lOmUsdXVpZDpyLGVNSXM6aX07cmV0dXJuIGEubGlzdGVuZXI9bWJyKGUsZnVuY3Rpb24obil7YS5tZXNzYWdlc0NhbGxiYWNrJiZuLnV1aWQhPT1yJiYoIW4udG9rZW58fGkuaGFzKG4udG9rZW4pfHxuLmRhdGEudGltZSYmbi5kYXRhLnRpbWU8YS5tZXNzYWdlc0NhbGxiYWNrVGltZXx8KGkuYWRkKG4udG9rZW4pLGEubWVzc2FnZXNDYWxsYmFjayhuLmRhdGEpKSl9KSxhfWZ1bmN0aW9uIHZicihlKXtnYnIoZS5saXN0ZW5lcil9ZnVuY3Rpb24geGJyKGUsdCxyKXtlLm1lc3NhZ2VzQ2FsbGJhY2tUaW1lPXIsZS5tZXNzYWdlc0NhbGxiYWNrPXR9ZnVuY3Rpb24gUHhlKCl7dmFyIGU9JHhlKCk7aWYoIWUpcmV0dXJuITE7dHJ5e3ZhciB0PSJfX2Jyb2FkY2FzdGNoYW5uZWxfY2hlY2siO2Uuc2V0SXRlbSh0LCJ3b3JrcyIpLGUucmVtb3ZlSXRlbSh0KX1jYXRjaHtyZXR1cm4hMX1yZXR1cm4hMH1mdW5jdGlvbiB5YnIoKXt2YXIgZT0xMjAsdD1uYXZpZ2F0b3IudXNlckFnZW50LnRvTG93ZXJDYXNlKCk7cmV0dXJuIHQuaW5jbHVkZXMoInNhZmFyaSIpJiYhdC5pbmNsdWRlcygiY2hyb21lIik/ZSoyOmV9dmFyIHVicixwYnIsaGJyLE54ZSxGeGU9cCgoKT0+e01qKCk7R3coKTtmMCgpO3Vicj1UbCxwYnI9InB1YmtleS5icm9hZGNhc3RDaGFubmVsLSIsaGJyPSJsb2NhbHN0b3JhZ2UiO054ZT17Y3JlYXRlOmJicixjbG9zZTp2YnIsb25NZXNzYWdlOnhicixwb3N0TWVzc2FnZTpmYnIsY2FuQmVVc2VkOlB4ZSx0eXBlOmhicixhdmVyYWdlUmVzcG9uc2VUaW1lOnlicixtaWNyb1NlY29uZHM6dWJyfX0pO2Z1bmN0aW9uIE1icihlKXt2YXIgdD17dGltZTpPeGUoKSxuYW1lOmUsbWVzc2FnZXNDYWxsYmFjazpudWxsfTtyZXR1cm4ga2ouYWRkKHQpLHR9ZnVuY3Rpb24ga2JyKGUpe2tqLmRlbGV0ZShlKX1mdW5jdGlvbiBTYnIoZSx0KXtyZXR1cm4gbmV3IFByb21pc2UoZnVuY3Rpb24ocil7cmV0dXJuIHNldFRpbWVvdXQoZnVuY3Rpb24oKXt2YXIgaT1BcnJheS5mcm9tKGtqKTtpLmZvckVhY2goZnVuY3Rpb24oYSl7YS5uYW1lPT09ZS5uYW1lJiZhIT09ZSYmYS5tZXNzYWdlc0NhbGxiYWNrJiZhLnRpbWU8dC50aW1lJiZhLm1lc3NhZ2VzQ2FsbGJhY2sodCl9KSxyKCl9LFJ4ZSl9KX1mdW5jdGlvbiB6YnIoZSx0KXtlLm1lc3NhZ2VzQ2FsbGJhY2s9dH1mdW5jdGlvbiBDYnIoKXtyZXR1cm4hMH1mdW5jdGlvbiBUYnIoKXtyZXR1cm4gUnhlfXZhciBPeGUsd2JyLGtqLFJ4ZSxCeGUsSHhlPXAoKCk9PntmMCgpO094ZT1UbCx3YnI9InNpbXVsYXRlIixraj1uZXcgU2V0O1J4ZT01O0J4ZT17Y3JlYXRlOk1icixjbG9zZTprYnIsb25NZXNzYWdlOnpicixwb3N0TWVzc2FnZTpTYnIsY2FuQmVVc2VkOkNicix0eXBlOndicixhdmVyYWdlUmVzcG9uc2VUaW1lOlRicixtaWNyb1NlY29uZHM6T3hlfX0pO2Z1bmN0aW9uIFNqKGUpe3ZhciB0PVtdLmNvbmNhdChlLm1ldGhvZHMscXhlKS5maWx0ZXIoQm9vbGVhbik7aWYoZS50eXBlKXtpZihlLnR5cGU9PT0ic2ltdWxhdGUiKXJldHVybiBCeGU7dmFyIHI9dC5maW5kKGZ1bmN0aW9uKGEpe3JldHVybiBhLnR5cGU9PT1lLnR5cGV9KTtpZihyKXJldHVybiByO3Rocm93IG5ldyBFcnJvcigibWV0aG9kLXR5cGUgIitlLnR5cGUrIiBub3QgZm91bmQiKX1lLndlYldvcmtlclN1cHBvcnR8fCh0PXQuZmlsdGVyKGZ1bmN0aW9uKGEpe3JldHVybiBhLnR5cGUhPT0iaWRiIn0pKTt2YXIgaT10LmZpbmQoZnVuY3Rpb24oYSl7cmV0dXJuIGEuY2FuQmVVc2VkKCl9KTtpZihpKXJldHVybiBpO3Rocm93IG5ldyBFcnJvcigiTm8gdXNhYmxlIG1ldGhvZCBmb3VuZCBpbiAiK0pTT04uc3RyaW5naWZ5KHF4ZS5tYXAoZnVuY3Rpb24oYSl7cmV0dXJuIGEudHlwZX0pKSl9dmFyIHF4ZSxqeGU9cCgoKT0+e1R4ZSgpO0V4ZSgpO0Z4ZSgpO0h4ZSgpO3F4ZT1bQ3hlLER4ZSxOeGVdfSk7ZnVuY3Rpb24gTGJyKGUpe2U9JDMoZSk7dmFyIHQ9U2ooZSk7cmV0dXJuIHQudHlwZT09PSJub2RlIj90LmNsZWFyTm9kZUZvbGRlcigpLnRoZW4oZnVuY3Rpb24oKXtyZXR1cm4hMH0pOk14ZX1mdW5jdGlvbiBBYnIoZSl7emo9ZX1mdW5jdGlvbiBWeGUoZSx0LHIpe3ZhciBpPWUubWV0aG9kLm1pY3JvU2Vjb25kcygpLGE9e3RpbWU6aSx0eXBlOnQsZGF0YTpyfSxuPWUuX3ByZXBQP2UuX3ByZXBQOlBuO3JldHVybiBuLnRoZW4oZnVuY3Rpb24oKXt2YXIgbz1lLm1ldGhvZC5wb3N0TWVzc2FnZShlLl9zdGF0ZSxhKTtyZXR1cm4gZS5fdU1QLmFkZChvKSxvLmNhdGNoKCkudGhlbihmdW5jdGlvbigpe3JldHVybiBlLl91TVAuZGVsZXRlKG8pfSksb30pfWZ1bmN0aW9uIERicihlKXt2YXIgdD1lLm1ldGhvZC5jcmVhdGUoZS5uYW1lLGUub3B0aW9ucyk7d3hlKHQpPyhlLl9wcmVwUD10LHQudGhlbihmdW5jdGlvbihyKXtlLl9zdGF0ZT1yfSkpOmUuX3N0YXRlPXR9ZnVuY3Rpb24gVXhlKGUpe3JldHVybiBlLl9hZGRFTC5tZXNzYWdlLmxlbmd0aD4wfHxlLl9hZGRFTC5pbnRlcm5hbC5sZW5ndGg+MH1mdW5jdGlvbiBXeGUoZSx0LHIpe2UuX2FkZEVMW3RdLnB1c2gociksRWJyKGUpfWZ1bmN0aW9uIEd4ZShlLHQscil7ZS5fYWRkRUxbdF09ZS5fYWRkRUxbdF0uZmlsdGVyKGZ1bmN0aW9uKGkpe3JldHVybiBpIT09cn0pLCRicihlKX1mdW5jdGlvbiBFYnIoZSl7aWYoIWUuX2lMJiZVeGUoZSkpe3ZhciB0PWZ1bmN0aW9uKGEpe2UuX2FkZEVMW2EudHlwZV0uZm9yRWFjaChmdW5jdGlvbihuKXthLnRpbWU+PW4udGltZSYmbi5mbihhLmRhdGEpfSl9LHI9ZS5tZXRob2QubWljcm9TZWNvbmRzKCk7ZS5fcHJlcFA/ZS5fcHJlcFAudGhlbihmdW5jdGlvbigpe2UuX2lMPSEwLGUubWV0aG9kLm9uTWVzc2FnZShlLl9zdGF0ZSx0LHIpfSk6KGUuX2lMPSEwLGUubWV0aG9kLm9uTWVzc2FnZShlLl9zdGF0ZSx0LHIpKX19ZnVuY3Rpb24gJGJyKGUpe2lmKGUuX2lMJiYhVXhlKGUpKXtlLl9pTD0hMTt2YXIgdD1lLm1ldGhvZC5taWNyb1NlY29uZHMoKTtlLm1ldGhvZC5vbk1lc3NhZ2UoZS5fc3RhdGUsbnVsbCx0KX19dmFyIENqLF9icixJMyx6aixZeGU9cCgoKT0+e2YwKCk7anhlKCk7R3coKTtDaj1uZXcgU2V0LF9icj0wLEkzPWZ1bmN0aW9uKHQscil7dGhpcy5pZD1fYnIrKyxDai5hZGQodGhpcyksdGhpcy5uYW1lPXQsemomJihyPXpqKSx0aGlzLm9wdGlvbnM9JDMociksdGhpcy5tZXRob2Q9U2oodGhpcy5vcHRpb25zKSx0aGlzLl9pTD0hMSx0aGlzLl9vbk1MPW51bGwsdGhpcy5fYWRkRUw9e21lc3NhZ2U6W10saW50ZXJuYWw6W119LHRoaXMuX3VNUD1uZXcgU2V0LHRoaXMuX2JlZkM9W10sdGhpcy5fcHJlcFA9bnVsbCxEYnIodGhpcyl9O0kzLl9wdWJrZXk9ITA7STMucHJvdG90eXBlPXtwb3N0TWVzc2FnZTpmdW5jdGlvbih0KXtpZih0aGlzLmNsb3NlZCl0aHJvdyBuZXcgRXJyb3IoIkJyb2FkY2FzdENoYW5uZWwucG9zdE1lc3NhZ2UoKTogQ2Fubm90IHBvc3QgbWVzc2FnZSBhZnRlciBjaGFubmVsIGhhcyBjbG9zZWQgIitKU09OLnN0cmluZ2lmeSh0KSk7cmV0dXJuIFZ4ZSh0aGlzLCJtZXNzYWdlIix0KX0scG9zdEludGVybmFsOmZ1bmN0aW9uKHQpe3JldHVybiBWeGUodGhpcywiaW50ZXJuYWwiLHQpfSxzZXQgb25tZXNzYWdlKGUpe3ZhciB0PXRoaXMubWV0aG9kLm1pY3JvU2Vjb25kcygpLHI9e3RpbWU6dCxmbjplfTtHeGUodGhpcywibWVzc2FnZSIsdGhpcy5fb25NTCksZSYmdHlwZW9mIGU9PSJmdW5jdGlvbiI/KHRoaXMuX29uTUw9cixXeGUodGhpcywibWVzc2FnZSIscikpOnRoaXMuX29uTUw9bnVsbH0sYWRkRXZlbnRMaXN0ZW5lcjpmdW5jdGlvbih0LHIpe3ZhciBpPXRoaXMubWV0aG9kLm1pY3JvU2Vjb25kcygpLGE9e3RpbWU6aSxmbjpyfTtXeGUodGhpcyx0LGEpfSxyZW1vdmVFdmVudExpc3RlbmVyOmZ1bmN0aW9uKHQscil7dmFyIGk9dGhpcy5fYWRkRUxbdF0uZmluZChmdW5jdGlvbihhKXtyZXR1cm4gYS5mbj09PXJ9KTtHeGUodGhpcyx0LGkpfSxjbG9zZTpmdW5jdGlvbigpe3ZhciB0PXRoaXM7aWYoIXRoaXMuY2xvc2VkKXtDai5kZWxldGUodGhpcyksdGhpcy5jbG9zZWQ9ITA7dmFyIHI9dGhpcy5fcHJlcFA/dGhpcy5fcHJlcFA6UG47cmV0dXJuIHRoaXMuX29uTUw9bnVsbCx0aGlzLl9hZGRFTC5tZXNzYWdlPVtdLHIudGhlbihmdW5jdGlvbigpe3JldHVybiBQcm9taXNlLmFsbChBcnJheS5mcm9tKHQuX3VNUCkpfSkudGhlbihmdW5jdGlvbigpe3JldHVybiBQcm9taXNlLmFsbCh0Ll9iZWZDLm1hcChmdW5jdGlvbihpKXtyZXR1cm4gaSgpfSkpfSkudGhlbihmdW5jdGlvbigpe3JldHVybiB0Lm1ldGhvZC5jbG9zZSh0Ll9zdGF0ZSl9KX19LGdldCB0eXBlKCl7cmV0dXJuIHRoaXMubWV0aG9kLnR5cGV9LGdldCBpc0Nsb3NlZCgpe3JldHVybiB0aGlzLmNsb3NlZH19fSk7ZnVuY3Rpb24gWnhlKGUpe2lmKHR5cGVvZiBXb3JrZXJHbG9iYWxTY29wZT09ImZ1bmN0aW9uIiYmc2VsZiBpbnN0YW5jZW9mIFdvcmtlckdsb2JhbFNjb3BlKXt2YXIgdD1zZWxmLmNsb3NlLmJpbmQoc2VsZik7c2VsZi5jbG9zZT1mdW5jdGlvbigpe3JldHVybiBlKCksdCgpfX1lbHNle2lmKHR5cGVvZiB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lciE9ImZ1bmN0aW9uIilyZXR1cm47d2luZG93LmFkZEV2ZW50TGlzdGVuZXIoImJlZm9yZXVubG9hZCIsZnVuY3Rpb24oKXtlKCl9LCEwKSx3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigidW5sb2FkIixmdW5jdGlvbigpe2UoKX0sITApfX12YXIgWHhlPXAoKCk9Pnt9KTtmdW5jdGlvbiBReGUoZSl7cHJvY2Vzcy5vbigiZXhpdCIsZnVuY3Rpb24oKXtyZXR1cm4gZSgpfSkscHJvY2Vzcy5vbigiYmVmb3JlRXhpdCIsZnVuY3Rpb24oKXtyZXR1cm4gZSgpLnRoZW4oZnVuY3Rpb24oKXtyZXR1cm4gcHJvY2Vzcy5leGl0KCl9KX0pLHByb2Nlc3Mub24oIlNJR0lOVCIsZnVuY3Rpb24oKXtyZXR1cm4gZSgpLnRoZW4oZnVuY3Rpb24oKXtyZXR1cm4gcHJvY2Vzcy5leGl0KCl9KX0pLHByb2Nlc3Mub24oInVuY2F1Z2h0RXhjZXB0aW9uIixmdW5jdGlvbih0KXtyZXR1cm4gZSgpLnRoZW4oZnVuY3Rpb24oKXtjb25zb2xlLnRyYWNlKHQpLHByb2Nlc3MuZXhpdCgxMDEpfSl9KX12YXIgSnhlPXAoKCk9Pnt9KTtmdW5jdGlvbiBOYnIoKXtLeGV8fChLeGU9ITAsUGJyKEZicikpfWZ1bmN0aW9uIGV5ZShlKXtpZihOYnIoKSx0eXBlb2YgZSE9ImZ1bmN0aW9uIil0aHJvdyBuZXcgRXJyb3IoIkxpc3RlbmVyIGlzIG5vIGZ1bmN0aW9uIik7UDMuYWRkKGUpO3ZhciB0PXtyZW1vdmU6ZnVuY3Rpb24oKXtyZXR1cm4gUDMuZGVsZXRlKGUpfSxydW46ZnVuY3Rpb24oKXtyZXR1cm4gUDMuZGVsZXRlKGUpLGUoKX19O3JldHVybiB0fWZ1bmN0aW9uIEZicigpe3ZhciBlPVtdO3JldHVybiBQMy5mb3JFYWNoKGZ1bmN0aW9uKHQpe2UucHVzaCh0KCkpLFAzLmRlbGV0ZSh0KX0pLFByb21pc2UuYWxsKGUpfWZ1bmN0aW9uIFZEMSgpe1AzLmNsZWFyKCl9ZnVuY3Rpb24gVUQxKCl7cmV0dXJuIFAzLnNpemV9dmFyIElicixQYnIsUDMsS3hlLHR5ZT1wKCgpPT57WHhlKCk7SnhlKCk7SWJyPU9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbCh0eXBlb2YgcHJvY2VzczwidSI/cHJvY2VzczowKT09PSJbb2JqZWN0IHByb2Nlc3NdIixQYnI9SWJyP1F4ZTpaeGUsUDM9bmV3IFNldCxLeGU9ITF9KTtmdW5jdGlvbiBfbChlLHQpe3ZhciByPXtjb250ZXh0OiJsZWFkZXIiLGFjdGlvbjp0LHRva2VuOmUudG9rZW59O3JldHVybiBlLmJyb2FkY2FzdENoYW5uZWwucG9zdEludGVybmFsKHIpfWZ1bmN0aW9uIHQ3KGUpe2UuaXNMZWFkZXI9ITAsZS5faGFzTGVhZGVyPSEwO3ZhciB0PWV5ZShmdW5jdGlvbigpe3JldHVybiBlLmRpZSgpfSk7ZS5fdW5sLnB1c2godCk7dmFyIHI9ZnVuY3Rpb24oYSl7YS5jb250ZXh0PT09ImxlYWRlciImJmEuYWN0aW9uPT09ImFwcGx5IiYmX2woZSwidGVsbCIpLGEuY29udGV4dD09PSJsZWFkZXIiJiZhLmFjdGlvbj09PSJ0ZWxsIiYmIWUuX2RwTEMmJihlLl9kcExDPSEwLGUuX2RwTCgpLF9sKGUsInRlbGwiKSl9O3JldHVybiBlLmJyb2FkY2FzdENoYW5uZWwuYWRkRXZlbnRMaXN0ZW5lcigiaW50ZXJuYWwiLHIpLGUuX2xzdG5zLnB1c2gociksX2woZSwidGVsbCIpfXZhciBadz1wKCgpPT57dHllKCl9KTt2YXIgVGoscnllLGl5ZT1wKCgpPT57ZjAoKTtadygpO1RqPWZ1bmN0aW9uKHQscil7dmFyIGk9dGhpczt0aGlzLmJyb2FkY2FzdENoYW5uZWw9dCx0Ll9iZWZDLnB1c2goZnVuY3Rpb24oKXtyZXR1cm4gaS5kaWUoKX0pLHRoaXMuX29wdGlvbnM9cix0aGlzLmlzTGVhZGVyPSExLHRoaXMuaXNEZWFkPSExLHRoaXMudG9rZW49Q2woKSx0aGlzLl9sc3Rucz1bXSx0aGlzLl91bmw9W10sdGhpcy5fZHBMPWZ1bmN0aW9uKCl7fSx0aGlzLl9kcExDPSExLHRoaXMuX3dLTUM9e30sdGhpcy5sTj0icHVia2V5LWJjfHwiK3QubWV0aG9kLnR5cGUrInx8Iit0Lm5hbWV9LHJ5ZT0iTGVhZGVyRWxlY3Rpb25XZWJMb2NrLmRpZSgpIGNhbGxlZCI7VGoucHJvdG90eXBlPXtoYXNMZWFkZXI6ZnVuY3Rpb24oKXt2YXIgdD10aGlzO3JldHVybiBuYXZpZ2F0b3IubG9ja3MucXVlcnkoKS50aGVuKGZ1bmN0aW9uKHIpe3ZhciBpPXIuaGVsZD9yLmhlbGQuZmlsdGVyKGZ1bmN0aW9uKGEpe3JldHVybiBhLm5hbWU9PT10LmxOfSk6W107cmV0dXJuISEoaSYmaS5sZW5ndGg+MCl9KX0sYXdhaXRMZWFkZXJzaGlwOmZ1bmN0aW9uKCl7dmFyIHQ9dGhpcztpZighdGhpcy5fd0xNUCl7dGhpcy5fd0tNQy5jPW5ldyBBYm9ydENvbnRyb2xsZXI7dmFyIHI9bmV3IFByb21pc2UoZnVuY3Rpb24oaSxhKXt0Ll93S01DLnJlcz1pLHQuX3dLTUMucmVqPWF9KTt0aGlzLl93TE1QPW5ldyBQcm9taXNlKGZ1bmN0aW9uKGksYSl7bmF2aWdhdG9yLmxvY2tzLnJlcXVlc3QodC5sTix7c2lnbmFsOnQuX3dLTUMuYy5zaWduYWx9LGZ1bmN0aW9uKCl7cmV0dXJuIHQuX3dLTUMuYz12b2lkIDAsdDcodCksaSgpLHJ9KS5jYXRjaChmdW5jdGlvbihuKXtuLm1lc3NhZ2UmJm4ubWVzc2FnZT09PXJ5ZXx8KHQuX3dLTUMucmVqJiZ0Ll93S01DLnJlaihuKSxhKG4pKX0pfSl9cmV0dXJuIHRoaXMuX3dMTVB9LHNldCBvbmR1cGxpY2F0ZShlKXt9LGRpZTpmdW5jdGlvbigpe3ZhciB0PXRoaXM7cmV0dXJuIHRoaXMuX2xzdG5zLmZvckVhY2goZnVuY3Rpb24ocil7cmV0dXJuIHQuYnJvYWRjYXN0Q2hhbm5lbC5yZW1vdmVFdmVudExpc3RlbmVyKCJpbnRlcm5hbCIscil9KSx0aGlzLl9sc3Rucz1bXSx0aGlzLl91bmwuZm9yRWFjaChmdW5jdGlvbihyKXtyZXR1cm4gci5yZW1vdmUoKX0pLHRoaXMuX3VubD1bXSx0aGlzLmlzTGVhZGVyJiYodGhpcy5pc0xlYWRlcj0hMSksdGhpcy5pc0RlYWQ9ITAsdGhpcy5fd0tNQy5yZXMmJnRoaXMuX3dLTUMucmVzKCksdGhpcy5fd0tNQy5jJiZ0aGlzLl93S01DLmMuYWJvcnQobmV3IEVycm9yKHJ5ZSkpLF9sKHRoaXMsImRlYXRoIil9fX0pO2Z1bmN0aW9uIE9icihlKXtyZXR1cm4gZS5pc0xlYWRlcj9QbjpuZXcgUHJvbWlzZShmdW5jdGlvbih0KXt2YXIgcj0hMTtmdW5jdGlvbiBpKCl7cnx8KHI9ITAsZS5icm9hZGNhc3RDaGFubmVsLnJlbW92ZUV2ZW50TGlzdGVuZXIoImludGVybmFsIixuKSx0KCEwKSl9ZS5hcHBseU9uY2UoKS50aGVuKGZ1bmN0aW9uKCl7ZS5pc0xlYWRlciYmaSgpfSk7dmFyIGE9ZnVuY3Rpb24oKXtyZXR1cm4gbHMoZS5fb3B0aW9ucy5mYWxsYmFja0ludGVydmFsKS50aGVuKGZ1bmN0aW9uKCl7aWYoIShlLmlzRGVhZHx8cikpaWYoZS5pc0xlYWRlcilpKCk7ZWxzZSByZXR1cm4gZS5hcHBseU9uY2UoITApLnRoZW4oZnVuY3Rpb24oKXtlLmlzTGVhZGVyP2koKTphKCl9KX0pfTthKCk7dmFyIG49ZnVuY3Rpb24ocyl7cy5jb250ZXh0PT09ImxlYWRlciImJnMuYWN0aW9uPT09ImRlYXRoIiYmKGUuX2hhc0xlYWRlcj0hMSxlLmFwcGx5T25jZSgpLnRoZW4oZnVuY3Rpb24oKXtlLmlzTGVhZGVyJiZpKCl9KSl9O2UuYnJvYWRjYXN0Q2hhbm5lbC5hZGRFdmVudExpc3RlbmVyKCJpbnRlcm5hbCIsbiksZS5fbHN0bnMucHVzaChuKX0pfWZ1bmN0aW9uIFJicihlLHQpe3JldHVybiBlfHwoZT17fSksZT1KU09OLnBhcnNlKEpTT04uc3RyaW5naWZ5KGUpKSxlLmZhbGxiYWNrSW50ZXJ2YWx8fChlLmZhbGxiYWNrSW50ZXJ2YWw9M2UzKSxlLnJlc3BvbnNlVGltZXx8KGUucmVzcG9uc2VUaW1lPXQubWV0aG9kLmF2ZXJhZ2VSZXNwb25zZVRpbWUodC5vcHRpb25zKSksZX1mdW5jdGlvbiBCYnIoZSx0KXtpZihlLl9sZWFkZXJFbGVjdG9yKXRocm93IG5ldyBFcnJvcigiQnJvYWRjYXN0Q2hhbm5lbCBhbHJlYWR5IGhhcyBhIGxlYWRlci1lbGVjdG9yIik7dD1SYnIodCxlKTt2YXIgcj16eGUoKT9uZXcgVGooZSx0KTpuZXcgYXllKGUsdCk7cmV0dXJuIGUuX2JlZkMucHVzaChmdW5jdGlvbigpe3JldHVybiByLmRpZSgpfSksZS5fbGVhZGVyRWxlY3Rvcj1yLHJ9dmFyIGF5ZSxueWU9cCgoKT0+e2YwKCk7WncoKTtpeWUoKTtheWU9ZnVuY3Rpb24odCxyKXt2YXIgaT10aGlzO3RoaXMuYnJvYWRjYXN0Q2hhbm5lbD10LHRoaXMuX29wdGlvbnM9cix0aGlzLmlzTGVhZGVyPSExLHRoaXMuX2hhc0xlYWRlcj0hMSx0aGlzLmlzRGVhZD0hMSx0aGlzLnRva2VuPUNsKCksdGhpcy5fYXBsUT1Qbix0aGlzLl9hcGxRQz0wLHRoaXMuX3VubD1bXSx0aGlzLl9sc3Rucz1bXSx0aGlzLl9kcEw9ZnVuY3Rpb24oKXt9LHRoaXMuX2RwTEM9ITE7dmFyIGE9ZnVuY3Rpb24obyl7by5jb250ZXh0PT09ImxlYWRlciImJihvLmFjdGlvbj09PSJkZWF0aCImJihpLl9oYXNMZWFkZXI9ITEpLG8uYWN0aW9uPT09InRlbGwiJiYoaS5faGFzTGVhZGVyPSEwKSl9O3RoaXMuYnJvYWRjYXN0Q2hhbm5lbC5hZGRFdmVudExpc3RlbmVyKCJpbnRlcm5hbCIsYSksdGhpcy5fbHN0bnMucHVzaChhKX07YXllLnByb3RvdHlwZT17aGFzTGVhZGVyOmZ1bmN0aW9uKCl7cmV0dXJuIFByb21pc2UucmVzb2x2ZSh0aGlzLl9oYXNMZWFkZXIpfSxhcHBseU9uY2U6ZnVuY3Rpb24odCl7dmFyIHI9dGhpcztpZih0aGlzLmlzTGVhZGVyKXJldHVybiBscygwLCEwKTtpZih0aGlzLmlzRGVhZClyZXR1cm4gbHMoMCwhMSk7aWYodGhpcy5fYXBsUUM+MSlyZXR1cm4gdGhpcy5fYXBsUTt2YXIgaT1mdW5jdGlvbigpe2lmKHIuaXNMZWFkZXIpcmV0dXJuIGt4ZTt2YXIgbj0hMSxvLHM9bmV3IFByb21pc2UoZnVuY3Rpb24odSl7bz1mdW5jdGlvbigpe249ITAsdSgpfX0pLGw9ZnVuY3Rpb24oZCl7ZC5jb250ZXh0PT09ImxlYWRlciImJmQudG9rZW4hPXIudG9rZW4mJihkLmFjdGlvbj09PSJhcHBseSImJmQudG9rZW4+ci50b2tlbiYmbygpLGQuYWN0aW9uPT09InRlbGwiJiYobygpLHIuX2hhc0xlYWRlcj0hMCkpfTtyLmJyb2FkY2FzdENoYW5uZWwuYWRkRXZlbnRMaXN0ZW5lcigiaW50ZXJuYWwiLGwpO3ZhciBjPXQ/ci5fb3B0aW9ucy5yZXNwb25zZVRpbWUqNDpyLl9vcHRpb25zLnJlc3BvbnNlVGltZTtyZXR1cm4gX2wociwiYXBwbHkiKS50aGVuKGZ1bmN0aW9uKCl7cmV0dXJuIFByb21pc2UucmFjZShbbHMoYykscy50aGVuKGZ1bmN0aW9uKCl7cmV0dXJuIFByb21pc2UucmVqZWN0KG5ldyBFcnJvcil9KV0pfSkudGhlbihmdW5jdGlvbigpe3JldHVybiBfbChyLCJhcHBseSIpfSkudGhlbihmdW5jdGlvbigpe3JldHVybiBQcm9taXNlLnJhY2UoW2xzKGMpLHMudGhlbihmdW5jdGlvbigpe3JldHVybiBQcm9taXNlLnJlamVjdChuZXcgRXJyb3IpfSldKX0pLmNhdGNoKGZ1bmN0aW9uKCl7fSkudGhlbihmdW5jdGlvbigpe3JldHVybiByLmJyb2FkY2FzdENoYW5uZWwucmVtb3ZlRXZlbnRMaXN0ZW5lcigiaW50ZXJuYWwiLGwpLG4/ITE6dDcocikudGhlbihmdW5jdGlvbigpe3JldHVybiEwfSl9KX07cmV0dXJuIHRoaXMuX2FwbFFDPXRoaXMuX2FwbFFDKzEsdGhpcy5fYXBsUT10aGlzLl9hcGxRLnRoZW4oZnVuY3Rpb24oKXtyZXR1cm4gaSgpfSkudGhlbihmdW5jdGlvbigpe3IuX2FwbFFDPXIuX2FwbFFDLTF9KSx0aGlzLl9hcGxRLnRoZW4oZnVuY3Rpb24oKXtyZXR1cm4gci5pc0xlYWRlcn0pfSxhd2FpdExlYWRlcnNoaXA6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fYUxQfHwodGhpcy5fYUxQPU9icih0aGlzKSksdGhpcy5fYUxQfSxzZXQgb25kdXBsaWNhdGUoZSl7dGhpcy5fZHBMPWV9LGRpZTpmdW5jdGlvbigpe3ZhciB0PXRoaXM7cmV0dXJuIHRoaXMuX2xzdG5zLmZvckVhY2goZnVuY3Rpb24ocil7cmV0dXJuIHQuYnJvYWRjYXN0Q2hhbm5lbC5yZW1vdmVFdmVudExpc3RlbmVyKCJpbnRlcm5hbCIscil9KSx0aGlzLl9sc3Rucz1bXSx0aGlzLl91bmwuZm9yRWFjaChmdW5jdGlvbihyKXtyZXR1cm4gci5yZW1vdmUoKX0pLHRoaXMuX3VubD1bXSx0aGlzLmlzTGVhZGVyJiYodGhpcy5faGFzTGVhZGVyPSExLHRoaXMuaXNMZWFkZXI9ITEpLHRoaXMuaXNEZWFkPSEwLF9sKHRoaXMsImRlYXRoIil9fX0pO3ZhciBveWU9cCgoKT0+e1l4ZSgpO255ZSgpO1p3KCl9KTt2YXIgc3llPXAoKCk9PntZMigpO0toKCk7S2YoKTtveWUoKX0pO3ZhciBfaixMaixseWU9cCgoKT0+e3N5ZSgpO19qPWdsb2JhbFRoaXMuQnJvYWRjYXN0Q2hhbm5lbDtfanx8KF9qPUkzKTtMaj1jbGFzc3tjb25zdHJ1Y3Rvcigpe3RoaXMuYnJvYWRjYXN0Q2hhbm5lbD1uZXcgX2ooImRlZXMtY29tbXMiKSx0aGlzLnR5cGVkcm91dGVyPW5ldyBWYS5UeXBlZFJvdXRlcix0aGlzLnR5cGVkdGFyZ2V0PW5ldyBWYS5UeXBlZFRhcmdldCh7cG9zdE1ldGhvZFdpdGhUeXBlZFJvdXRlcjphc3luYyB0PT57dGhpcy5wb3N0TWVzc2FnZSh0KX0sdHlwZWRSb3V0ZXJSZWY6dGhpcy50eXBlZHJvdXRlcn0pLHRoaXMuYnJvYWRjYXN0Q2hhbm5lbC5vbm1lc3NhZ2U9YXN5bmMgdD0+e2xldCByPXQubWV0aG9kP3Q6dC5kYXRhO2NvbnNvbGUubG9nKEpTT04uc3RyaW5naWZ5KHIpKTtsZXQgaT1hd2FpdCB0aGlzLnR5cGVkcm91dGVyLnJvdXRlQW5kQWRkUmVzcG9uc2Uocix7c2tpcEhvb2tzOiEwfSk7aSYmIWkuZXJyb3ImJnRoaXMucG9zdE1lc3NhZ2UoaSl9fWNyZWF0ZVR5cGVkUmVxdWVzdCh0KXtyZXR1cm4gbmV3IFZhLlR5cGVkUmVxdWVzdCh0aGlzLnR5cGVkdGFyZ2V0LHQpfWFzeW5jIHBvc3RNZXNzYWdlKHQpe3RoaXMuYnJvYWRjYXN0Q2hhbm5lbC5wb3N0TWVzc2FnZSh0KX1hc3luYyBjcmVhdGVUeXBlZEhhbmRsZXIodCxyKXt0aGlzLnR5cGVkcm91dGVyLmFkZFR5cGVkSGFuZGxlcihuZXcgVmEuVHlwZWRIYW5kbGVyKHQscikpfX19KTt2YXIgcjc9e307RmUocjcse0RlZXNDb21tczooKT0+TGp9KTt2YXIgY3llPXAoKCk9PntseWUoKX0pO3ZhciBGMz1qZSgoY0UxLE4zKT0+eyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiBkeWUoZSl7cmV0dXJuIHR5cGVvZiBlPiJ1Inx8ZT09PW51bGx9ZnVuY3Rpb24gcWJyKGUpe3JldHVybiB0eXBlb2YgZT09Im9iamVjdCImJmUhPT1udWxsfWZ1bmN0aW9uIGpicihlKXtyZXR1cm4gQXJyYXkuaXNBcnJheShlKT9lOmR5ZShlKT9bXTpbZV19ZnVuY3Rpb24gVmJyKGUsdCl7dmFyIHIsaSxhLG47aWYodClmb3Iobj1PYmplY3Qua2V5cyh0KSxyPTAsaT1uLmxlbmd0aDtyPGk7cis9MSlhPW5bcl0sZVthXT10W2FdO3JldHVybiBlfWZ1bmN0aW9uIFVicihlLHQpe3ZhciByPSIiLGk7Zm9yKGk9MDtpPHQ7aSs9MSlyKz1lO3JldHVybiByfWZ1bmN0aW9uIFdicihlKXtyZXR1cm4gZT09PTAmJk51bWJlci5ORUdBVElWRV9JTkZJTklUWT09PTEvZX1OMy5leHBvcnRzLmlzTm90aGluZz1keWUsTjMuZXhwb3J0cy5pc09iamVjdD1xYnIsTjMuZXhwb3J0cy50b0FycmF5PWpicixOMy5leHBvcnRzLnJlcGVhdD1VYnIsTjMuZXhwb3J0cy5pc05lZ2F0aXZlWmVybz1XYnIsTjMuZXhwb3J0cy5leHRlbmQ9VmJyfSk7dmFyIGR1PWplKChkRTEsdXllKT0+eyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiBpNyhlLHQpe0Vycm9yLmNhbGwodGhpcyksdGhpcy5uYW1lPSJZQU1MRXhjZXB0aW9uIix0aGlzLnJlYXNvbj1lLHRoaXMubWFyaz10LHRoaXMubWVzc2FnZT0odGhpcy5yZWFzb258fCIodW5rbm93biByZWFzb24pIikrKHRoaXMubWFyaz8iICIrdGhpcy5tYXJrLnRvU3RyaW5nKCk6IiIpLEVycm9yLmNhcHR1cmVTdGFja1RyYWNlP0Vycm9yLmNhcHR1cmVTdGFja1RyYWNlKHRoaXMsdGhpcy5jb25zdHJ1Y3Rvcik6dGhpcy5zdGFjaz1uZXcgRXJyb3IoKS5zdGFja3x8IiJ9aTcucHJvdG90eXBlPU9iamVjdC5jcmVhdGUoRXJyb3IucHJvdG90eXBlKSxpNy5wcm90b3R5cGUuY29uc3RydWN0b3I9aTcsaTcucHJvdG90eXBlLnRvU3RyaW5nPWZ1bmN0aW9uKHQpe3ZhciByPXRoaXMubmFtZSsiOiAiO3JldHVybiByKz10aGlzLnJlYXNvbnx8Iih1bmtub3duIHJlYXNvbikiLCF0JiZ0aGlzLm1hcmsmJihyKz0iICIrdGhpcy5tYXJrLnRvU3RyaW5nKCkpLHJ9LHV5ZS5leHBvcnRzPWk3fSk7dmFyIGZ5ZT1qZSgodUUxLGh5ZSk9PnsidXNlIHN0cmljdCI7dmFyIHB5ZT1GMygpO2Z1bmN0aW9uIEFqKGUsdCxyLGksYSl7dGhpcy5uYW1lPWUsdGhpcy5idWZmZXI9dCx0aGlzLnBvc2l0aW9uPXIsdGhpcy5saW5lPWksdGhpcy5jb2x1bW49YX1Bai5wcm90b3R5cGUuZ2V0U25pcHBldD1mdW5jdGlvbih0LHIpe3ZhciBpLGEsbixvLHM7aWYoIXRoaXMuYnVmZmVyKXJldHVybiBudWxsO2Zvcih0PXR8fDQscj1yfHw3NSxpPSIiLGE9dGhpcy5wb3NpdGlvbjthPjAmJmBcMFxyClx4ODVcdTIwMjhcdTIwMjlgLmluZGV4T2YodGhpcy5idWZmZXIuY2hhckF0KGEtMSkpPT09LTE7KWlmKGEtPTEsdGhpcy5wb3NpdGlvbi1hPnIvMi0xKXtpPSIgLi4uICIsYSs9NTticmVha31mb3Iobj0iIixvPXRoaXMucG9zaXRpb247bzx0aGlzLmJ1ZmZlci5sZW5ndGgmJmBcMFxyClx4ODVcdTIwMjhcdTIwMjlgLmluZGV4T2YodGhpcy5idWZmZXIuY2hhckF0KG8pKT09PS0xOylpZihvKz0xLG8tdGhpcy5wb3NpdGlvbj5yLzItMSl7bj0iIC4uLiAiLG8tPTU7YnJlYWt9cmV0dXJuIHM9dGhpcy5idWZmZXIuc2xpY2UoYSxvKSxweWUucmVwZWF0KCIgIix0KStpK3MrbitgCmArcHllLnJlcGVhdCgiICIsdCt0aGlzLnBvc2l0aW9uLWEraS5sZW5ndGgpKyJeIn0sQWoucHJvdG90eXBlLnRvU3RyaW5nPWZ1bmN0aW9uKHQpe3ZhciByLGk9IiI7cmV0dXJuIHRoaXMubmFtZSYmKGkrPSdpbiAiJyt0aGlzLm5hbWUrJyIgJyksaSs9ImF0IGxpbmUgIisodGhpcy5saW5lKzEpKyIsIGNvbHVtbiAiKyh0aGlzLmNvbHVtbisxKSx0fHwocj10aGlzLmdldFNuaXBwZXQoKSxyJiYoaSs9YDoKYCtyKSksaX0saHllLmV4cG9ydHM9QWp9KTt2YXIgdWk9amUoKHBFMSxneWUpPT57InVzZSBzdHJpY3QiO3ZhciBteWU9ZHUoKSxHYnI9WyJraW5kIiwicmVzb2x2ZSIsImNvbnN0cnVjdCIsImluc3RhbmNlT2YiLCJwcmVkaWNhdGUiLCJyZXByZXNlbnQiLCJkZWZhdWx0U3R5bGUiLCJzdHlsZUFsaWFzZXMiXSxZYnI9WyJzY2FsYXIiLCJzZXF1ZW5jZSIsIm1hcHBpbmciXTtmdW5jdGlvbiBaYnIoZSl7dmFyIHQ9e307cmV0dXJuIGUhPT1udWxsJiZPYmplY3Qua2V5cyhlKS5mb3JFYWNoKGZ1bmN0aW9uKHIpe2Vbcl0uZm9yRWFjaChmdW5jdGlvbihpKXt0W1N0cmluZyhpKV09cn0pfSksdH1mdW5jdGlvbiBYYnIoZSx0KXtpZih0PXR8fHt9LE9iamVjdC5rZXlzKHQpLmZvckVhY2goZnVuY3Rpb24ocil7aWYoR2JyLmluZGV4T2Yocik9PT0tMSl0aHJvdyBuZXcgbXllKCdVbmtub3duIG9wdGlvbiAiJytyKyciIGlzIG1ldCBpbiBkZWZpbml0aW9uIG9mICInK2UrJyIgWUFNTCB0eXBlLicpfSksdGhpcy50YWc9ZSx0aGlzLmtpbmQ9dC5raW5kfHxudWxsLHRoaXMucmVzb2x2ZT10LnJlc29sdmV8fGZ1bmN0aW9uKCl7cmV0dXJuITB9LHRoaXMuY29uc3RydWN0PXQuY29uc3RydWN0fHxmdW5jdGlvbihyKXtyZXR1cm4gcn0sdGhpcy5pbnN0YW5jZU9mPXQuaW5zdGFuY2VPZnx8bnVsbCx0aGlzLnByZWRpY2F0ZT10LnByZWRpY2F0ZXx8bnVsbCx0aGlzLnJlcHJlc2VudD10LnJlcHJlc2VudHx8bnVsbCx0aGlzLmRlZmF1bHRTdHlsZT10LmRlZmF1bHRTdHlsZXx8bnVsbCx0aGlzLnN0eWxlQWxpYXNlcz1aYnIodC5zdHlsZUFsaWFzZXN8fG51bGwpLFlici5pbmRleE9mKHRoaXMua2luZCk9PT0tMSl0aHJvdyBuZXcgbXllKCdVbmtub3duIGtpbmQgIicrdGhpcy5raW5kKyciIGlzIHNwZWNpZmllZCBmb3IgIicrZSsnIiBZQU1MIHR5cGUuJyl9Z3llLmV4cG9ydHM9WGJyfSk7dmFyIE8zPWplKChoRTEsdnllKT0+eyJ1c2Ugc3RyaWN0Ijt2YXIgYnllPUYzKCksWHc9ZHUoKSxRYnI9dWkoKTtmdW5jdGlvbiBEaihlLHQscil7dmFyIGk9W107cmV0dXJuIGUuaW5jbHVkZS5mb3JFYWNoKGZ1bmN0aW9uKGEpe3I9RGooYSx0LHIpfSksZVt0XS5mb3JFYWNoKGZ1bmN0aW9uKGEpe3IuZm9yRWFjaChmdW5jdGlvbihuLG8pe24udGFnPT09YS50YWcmJm4ua2luZD09PWEua2luZCYmaS5wdXNoKG8pfSksci5wdXNoKGEpfSksci5maWx0ZXIoZnVuY3Rpb24oYSxuKXtyZXR1cm4gaS5pbmRleE9mKG4pPT09LTF9KX1mdW5jdGlvbiBKYnIoKXt2YXIgZT17c2NhbGFyOnt9LHNlcXVlbmNlOnt9LG1hcHBpbmc6e30sZmFsbGJhY2s6e319LHQscjtmdW5jdGlvbiBpKGEpe2VbYS5raW5kXVthLnRhZ109ZS5mYWxsYmFja1thLnRhZ109YX1mb3IodD0wLHI9YXJndW1lbnRzLmxlbmd0aDt0PHI7dCs9MSlhcmd1bWVudHNbdF0uZm9yRWFjaChpKTtyZXR1cm4gZX1mdW5jdGlvbiB1dShlKXt0aGlzLmluY2x1ZGU9ZS5pbmNsdWRlfHxbXSx0aGlzLmltcGxpY2l0PWUuaW1wbGljaXR8fFtdLHRoaXMuZXhwbGljaXQ9ZS5leHBsaWNpdHx8W10sdGhpcy5pbXBsaWNpdC5mb3JFYWNoKGZ1bmN0aW9uKHQpe2lmKHQubG9hZEtpbmQmJnQubG9hZEtpbmQhPT0ic2NhbGFyIil0aHJvdyBuZXcgWHcoIlRoZXJlIGlzIGEgbm9uLXNjYWxhciB0eXBlIGluIHRoZSBpbXBsaWNpdCBsaXN0IG9mIGEgc2NoZW1hLiBJbXBsaWNpdCByZXNvbHZpbmcgb2Ygc3VjaCB0eXBlcyBpcyBub3Qgc3VwcG9ydGVkLiIpfSksdGhpcy5jb21waWxlZEltcGxpY2l0PURqKHRoaXMsImltcGxpY2l0IixbXSksdGhpcy5jb21waWxlZEV4cGxpY2l0PURqKHRoaXMsImV4cGxpY2l0IixbXSksdGhpcy5jb21waWxlZFR5cGVNYXA9SmJyKHRoaXMuY29tcGlsZWRJbXBsaWNpdCx0aGlzLmNvbXBpbGVkRXhwbGljaXQpfXV1LkRFRkFVTFQ9bnVsbCx1dS5jcmVhdGU9ZnVuY3Rpb24oKXt2YXIgdCxyO3N3aXRjaChhcmd1bWVudHMubGVuZ3RoKXtjYXNlIDE6dD11dS5ERUZBVUxULHI9YXJndW1lbnRzWzBdO2JyZWFrO2Nhc2UgMjp0PWFyZ3VtZW50c1swXSxyPWFyZ3VtZW50c1sxXTticmVhaztkZWZhdWx0OnRocm93IG5ldyBYdygiV3JvbmcgbnVtYmVyIG9mIGFyZ3VtZW50cyBmb3IgU2NoZW1hLmNyZWF0ZSBmdW5jdGlvbiIpfWlmKHQ9YnllLnRvQXJyYXkodCkscj1ieWUudG9BcnJheShyKSwhdC5ldmVyeShmdW5jdGlvbihpKXtyZXR1cm4gaSBpbnN0YW5jZW9mIHV1fSkpdGhyb3cgbmV3IFh3KCJTcGVjaWZpZWQgbGlzdCBvZiBzdXBlciBzY2hlbWFzIChvciBhIHNpbmdsZSBTY2hlbWEgb2JqZWN0KSBjb250YWlucyBhIG5vbi1TY2hlbWEgb2JqZWN0LiIpO2lmKCFyLmV2ZXJ5KGZ1bmN0aW9uKGkpe3JldHVybiBpIGluc3RhbmNlb2YgUWJyfSkpdGhyb3cgbmV3IFh3KCJTcGVjaWZpZWQgbGlzdCBvZiBZQU1MIHR5cGVzIChvciBhIHNpbmdsZSBUeXBlIG9iamVjdCkgY29udGFpbnMgYSBub24tVHlwZSBvYmplY3QuIik7cmV0dXJuIG5ldyB1dSh7aW5jbHVkZTp0LGV4cGxpY2l0OnJ9KX0sdnllLmV4cG9ydHM9dXV9KTt2YXIgeXllPWplKChmRTEseHllKT0+eyJ1c2Ugc3RyaWN0Ijt2YXIgS2JyPXVpKCk7eHllLmV4cG9ydHM9bmV3IEticigidGFnOnlhbWwub3JnLDIwMDI6c3RyIix7a2luZDoic2NhbGFyIixjb25zdHJ1Y3Q6ZnVuY3Rpb24oZSl7cmV0dXJuIGUhPT1udWxsP2U6IiJ9fSl9KTt2YXIgTXllPWplKChtRTEsd3llKT0+eyJ1c2Ugc3RyaWN0Ijt2YXIgZXZyPXVpKCk7d3llLmV4cG9ydHM9bmV3IGV2cigidGFnOnlhbWwub3JnLDIwMDI6c2VxIix7a2luZDoic2VxdWVuY2UiLGNvbnN0cnVjdDpmdW5jdGlvbihlKXtyZXR1cm4gZSE9PW51bGw/ZTpbXX19KX0pO3ZhciBTeWU9amUoKGdFMSxreWUpPT57InVzZSBzdHJpY3QiO3ZhciB0dnI9dWkoKTtreWUuZXhwb3J0cz1uZXcgdHZyKCJ0YWc6eWFtbC5vcmcsMjAwMjptYXAiLHtraW5kOiJtYXBwaW5nIixjb25zdHJ1Y3Q6ZnVuY3Rpb24oZSl7cmV0dXJuIGUhPT1udWxsP2U6e319fSl9KTt2YXIgUXc9amUoKGJFMSx6eWUpPT57InVzZSBzdHJpY3QiO3ZhciBydnI9TzMoKTt6eWUuZXhwb3J0cz1uZXcgcnZyKHtleHBsaWNpdDpbeXllKCksTXllKCksU3llKCldfSl9KTt2YXIgVHllPWplKCh2RTEsQ3llKT0+eyJ1c2Ugc3RyaWN0Ijt2YXIgaXZyPXVpKCk7ZnVuY3Rpb24gYXZyKGUpe2lmKGU9PT1udWxsKXJldHVybiEwO3ZhciB0PWUubGVuZ3RoO3JldHVybiB0PT09MSYmZT09PSJ+Inx8dD09PTQmJihlPT09Im51bGwifHxlPT09Ik51bGwifHxlPT09Ik5VTEwiKX1mdW5jdGlvbiBudnIoKXtyZXR1cm4gbnVsbH1mdW5jdGlvbiBvdnIoZSl7cmV0dXJuIGU9PT1udWxsfUN5ZS5leHBvcnRzPW5ldyBpdnIoInRhZzp5YW1sLm9yZywyMDAyOm51bGwiLHtraW5kOiJzY2FsYXIiLHJlc29sdmU6YXZyLGNvbnN0cnVjdDpudnIscHJlZGljYXRlOm92cixyZXByZXNlbnQ6e2Nhbm9uaWNhbDpmdW5jdGlvbigpe3JldHVybiJ+In0sbG93ZXJjYXNlOmZ1bmN0aW9uKCl7cmV0dXJuIm51bGwifSx1cHBlcmNhc2U6ZnVuY3Rpb24oKXtyZXR1cm4iTlVMTCJ9LGNhbWVsY2FzZTpmdW5jdGlvbigpe3JldHVybiJOdWxsIn19LGRlZmF1bHRTdHlsZToibG93ZXJjYXNlIn0pfSk7dmFyIEx5ZT1qZSgoeEUxLF95ZSk9PnsidXNlIHN0cmljdCI7dmFyIHN2cj11aSgpO2Z1bmN0aW9uIGx2cihlKXtpZihlPT09bnVsbClyZXR1cm4hMTt2YXIgdD1lLmxlbmd0aDtyZXR1cm4gdD09PTQmJihlPT09InRydWUifHxlPT09IlRydWUifHxlPT09IlRSVUUiKXx8dD09PTUmJihlPT09ImZhbHNlInx8ZT09PSJGYWxzZSJ8fGU9PT0iRkFMU0UiKX1mdW5jdGlvbiBjdnIoZSl7cmV0dXJuIGU9PT0idHJ1ZSJ8fGU9PT0iVHJ1ZSJ8fGU9PT0iVFJVRSJ9ZnVuY3Rpb24gZHZyKGUpe3JldHVybiBPYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwoZSk9PT0iW29iamVjdCBCb29sZWFuXSJ9X3llLmV4cG9ydHM9bmV3IHN2cigidGFnOnlhbWwub3JnLDIwMDI6Ym9vbCIse2tpbmQ6InNjYWxhciIscmVzb2x2ZTpsdnIsY29uc3RydWN0OmN2cixwcmVkaWNhdGU6ZHZyLHJlcHJlc2VudDp7bG93ZXJjYXNlOmZ1bmN0aW9uKGUpe3JldHVybiBlPyJ0cnVlIjoiZmFsc2UifSx1cHBlcmNhc2U6ZnVuY3Rpb24oZSl7cmV0dXJuIGU/IlRSVUUiOiJGQUxTRSJ9LGNhbWVsY2FzZTpmdW5jdGlvbihlKXtyZXR1cm4gZT8iVHJ1ZSI6IkZhbHNlIn19LGRlZmF1bHRTdHlsZToibG93ZXJjYXNlIn0pfSk7dmFyIER5ZT1qZSgoeUUxLEF5ZSk9PnsidXNlIHN0cmljdCI7dmFyIHV2cj1GMygpLHB2cj11aSgpO2Z1bmN0aW9uIGh2cihlKXtyZXR1cm4gNDg8PWUmJmU8PTU3fHw2NTw9ZSYmZTw9NzB8fDk3PD1lJiZlPD0xMDJ9ZnVuY3Rpb24gZnZyKGUpe3JldHVybiA0ODw9ZSYmZTw9NTV9ZnVuY3Rpb24gbXZyKGUpe3JldHVybiA0ODw9ZSYmZTw9NTd9ZnVuY3Rpb24gZ3ZyKGUpe2lmKGU9PT1udWxsKXJldHVybiExO3ZhciB0PWUubGVuZ3RoLHI9MCxpPSExLGE7aWYoIXQpcmV0dXJuITE7aWYoYT1lW3JdLChhPT09Ii0ifHxhPT09IisiKSYmKGE9ZVsrK3JdKSxhPT09IjAiKXtpZihyKzE9PT10KXJldHVybiEwO2lmKGE9ZVsrK3JdLGE9PT0iYiIpe2ZvcihyKys7cjx0O3IrKylpZihhPWVbcl0sYSE9PSJfIil7aWYoYSE9PSIwIiYmYSE9PSIxIilyZXR1cm4hMTtpPSEwfXJldHVybiBpJiZhIT09Il8ifWlmKGE9PT0ieCIpe2ZvcihyKys7cjx0O3IrKylpZihhPWVbcl0sYSE9PSJfIil7aWYoIWh2cihlLmNoYXJDb2RlQXQocikpKXJldHVybiExO2k9ITB9cmV0dXJuIGkmJmEhPT0iXyJ9Zm9yKDtyPHQ7cisrKWlmKGE9ZVtyXSxhIT09Il8iKXtpZighZnZyKGUuY2hhckNvZGVBdChyKSkpcmV0dXJuITE7aT0hMH1yZXR1cm4gaSYmYSE9PSJfIn1pZihhPT09Il8iKXJldHVybiExO2Zvcig7cjx0O3IrKylpZihhPWVbcl0sYSE9PSJfIil7aWYoYT09PSI6IilicmVhaztpZighbXZyKGUuY2hhckNvZGVBdChyKSkpcmV0dXJuITE7aT0hMH1yZXR1cm4haXx8YT09PSJfIj8hMTphIT09IjoiPyEwOi9eKDpbMC01XT9bMC05XSkrJC8udGVzdChlLnNsaWNlKHIpKX1mdW5jdGlvbiBidnIoZSl7dmFyIHQ9ZSxyPTEsaSxhLG49W107cmV0dXJuIHQuaW5kZXhPZigiXyIpIT09LTEmJih0PXQucmVwbGFjZSgvXy9nLCIiKSksaT10WzBdLChpPT09Ii0ifHxpPT09IisiKSYmKGk9PT0iLSImJihyPS0xKSx0PXQuc2xpY2UoMSksaT10WzBdKSx0PT09IjAiPzA6aT09PSIwIj90WzFdPT09ImIiP3IqcGFyc2VJbnQodC5zbGljZSgyKSwyKTp0WzFdPT09IngiP3IqcGFyc2VJbnQodCwxNik6cipwYXJzZUludCh0LDgpOnQuaW5kZXhPZigiOiIpIT09LTE/KHQuc3BsaXQoIjoiKS5mb3JFYWNoKGZ1bmN0aW9uKG8pe24udW5zaGlmdChwYXJzZUludChvLDEwKSl9KSx0PTAsYT0xLG4uZm9yRWFjaChmdW5jdGlvbihvKXt0Kz1vKmEsYSo9NjB9KSxyKnQpOnIqcGFyc2VJbnQodCwxMCl9ZnVuY3Rpb24gdnZyKGUpe3JldHVybiBPYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwoZSk9PT0iW29iamVjdCBOdW1iZXJdIiYmZSUxPT09MCYmIXV2ci5pc05lZ2F0aXZlWmVybyhlKX1BeWUuZXhwb3J0cz1uZXcgcHZyKCJ0YWc6eWFtbC5vcmcsMjAwMjppbnQiLHtraW5kOiJzY2FsYXIiLHJlc29sdmU6Z3ZyLGNvbnN0cnVjdDpidnIscHJlZGljYXRlOnZ2cixyZXByZXNlbnQ6e2JpbmFyeTpmdW5jdGlvbihlKXtyZXR1cm4gZT49MD8iMGIiK2UudG9TdHJpbmcoMik6Ii0wYiIrZS50b1N0cmluZygyKS5zbGljZSgxKX0sb2N0YWw6ZnVuY3Rpb24oZSl7cmV0dXJuIGU+PTA/IjAiK2UudG9TdHJpbmcoOCk6Ii0wIitlLnRvU3RyaW5nKDgpLnNsaWNlKDEpfSxkZWNpbWFsOmZ1bmN0aW9uKGUpe3JldHVybiBlLnRvU3RyaW5nKDEwKX0saGV4YWRlY2ltYWw6ZnVuY3Rpb24oZSl7cmV0dXJuIGU+PTA/IjB4IitlLnRvU3RyaW5nKDE2KS50b1VwcGVyQ2FzZSgpOiItMHgiK2UudG9TdHJpbmcoMTYpLnRvVXBwZXJDYXNlKCkuc2xpY2UoMSl9fSxkZWZhdWx0U3R5bGU6ImRlY2ltYWwiLHN0eWxlQWxpYXNlczp7YmluYXJ5OlsyLCJiaW4iXSxvY3RhbDpbOCwib2N0Il0sZGVjaW1hbDpbMTAsImRlYyJdLGhleGFkZWNpbWFsOlsxNiwiaGV4Il19fSl9KTt2YXIgSXllPWplKCh3RTEsJHllKT0+eyJ1c2Ugc3RyaWN0Ijt2YXIgRXllPUYzKCkseHZyPXVpKCkseXZyPW5ldyBSZWdFeHAoIl4oPzpbLStdPyg/OjB8WzEtOV1bMC05X10qKSg/OlxcLlswLTlfXSopPyg/OltlRV1bLStdP1swLTldKyk/fFxcLlswLTlfXSsoPzpbZUVdWy0rXT9bMC05XSspP3xbLStdP1swLTldWzAtOV9dKig/OjpbMC01XT9bMC05XSkrXFwuWzAtOV9dKnxbLStdP1xcLig/OmluZnxJbmZ8SU5GKXxcXC4oPzpuYW58TmFOfE5BTikpJCIpO2Z1bmN0aW9uIHd2cihlKXtyZXR1cm4hKGU9PT1udWxsfHwheXZyLnRlc3QoZSl8fGVbZS5sZW5ndGgtMV09PT0iXyIpfWZ1bmN0aW9uIE12cihlKXt2YXIgdCxyLGksYTtyZXR1cm4gdD1lLnJlcGxhY2UoL18vZywiIikudG9Mb3dlckNhc2UoKSxyPXRbMF09PT0iLSI/LTE6MSxhPVtdLCIrLSIuaW5kZXhPZih0WzBdKT49MCYmKHQ9dC5zbGljZSgxKSksdD09PSIuaW5mIj9yPT09MT9OdW1iZXIuUE9TSVRJVkVfSU5GSU5JVFk6TnVtYmVyLk5FR0FUSVZFX0lORklOSVRZOnQ9PT0iLm5hbiI/TmFOOnQuaW5kZXhPZigiOiIpPj0wPyh0LnNwbGl0KCI6IikuZm9yRWFjaChmdW5jdGlvbihuKXthLnVuc2hpZnQocGFyc2VGbG9hdChuLDEwKSl9KSx0PTAsaT0xLGEuZm9yRWFjaChmdW5jdGlvbihuKXt0Kz1uKmksaSo9NjB9KSxyKnQpOnIqcGFyc2VGbG9hdCh0LDEwKX12YXIga3ZyPS9eWy0rXT9bMC05XStlLztmdW5jdGlvbiBTdnIoZSx0KXt2YXIgcjtpZihpc05hTihlKSlzd2l0Y2godCl7Y2FzZSJsb3dlcmNhc2UiOnJldHVybiIubmFuIjtjYXNlInVwcGVyY2FzZSI6cmV0dXJuIi5OQU4iO2Nhc2UiY2FtZWxjYXNlIjpyZXR1cm4iLk5hTiJ9ZWxzZSBpZihOdW1iZXIuUE9TSVRJVkVfSU5GSU5JVFk9PT1lKXN3aXRjaCh0KXtjYXNlImxvd2VyY2FzZSI6cmV0dXJuIi5pbmYiO2Nhc2UidXBwZXJjYXNlIjpyZXR1cm4iLklORiI7Y2FzZSJjYW1lbGNhc2UiOnJldHVybiIuSW5mIn1lbHNlIGlmKE51bWJlci5ORUdBVElWRV9JTkZJTklUWT09PWUpc3dpdGNoKHQpe2Nhc2UibG93ZXJjYXNlIjpyZXR1cm4iLS5pbmYiO2Nhc2UidXBwZXJjYXNlIjpyZXR1cm4iLS5JTkYiO2Nhc2UiY2FtZWxjYXNlIjpyZXR1cm4iLS5JbmYifWVsc2UgaWYoRXllLmlzTmVnYXRpdmVaZXJvKGUpKXJldHVybiItMC4wIjtyZXR1cm4gcj1lLnRvU3RyaW5nKDEwKSxrdnIudGVzdChyKT9yLnJlcGxhY2UoImUiLCIuZSIpOnJ9ZnVuY3Rpb24genZyKGUpe3JldHVybiBPYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwoZSk9PT0iW29iamVjdCBOdW1iZXJdIiYmKGUlMSE9PTB8fEV5ZS5pc05lZ2F0aXZlWmVybyhlKSl9JHllLmV4cG9ydHM9bmV3IHh2cigidGFnOnlhbWwub3JnLDIwMDI6ZmxvYXQiLHtraW5kOiJzY2FsYXIiLHJlc29sdmU6d3ZyLGNvbnN0cnVjdDpNdnIscHJlZGljYXRlOnp2cixyZXByZXNlbnQ6U3ZyLGRlZmF1bHRTdHlsZToibG93ZXJjYXNlIn0pfSk7dmFyIEVqPWplKChNRTEsUHllKT0+eyJ1c2Ugc3RyaWN0Ijt2YXIgQ3ZyPU8zKCk7UHllLmV4cG9ydHM9bmV3IEN2cih7aW5jbHVkZTpbUXcoKV0saW1wbGljaXQ6W1R5ZSgpLEx5ZSgpLER5ZSgpLEl5ZSgpXX0pfSk7dmFyICRqPWplKChrRTEsTnllKT0+eyJ1c2Ugc3RyaWN0Ijt2YXIgVHZyPU8zKCk7TnllLmV4cG9ydHM9bmV3IFR2cih7aW5jbHVkZTpbRWooKV19KX0pO3ZhciBCeWU9amUoKFNFMSxSeWUpPT57InVzZSBzdHJpY3QiO3ZhciBfdnI9dWkoKSxGeWU9bmV3IFJlZ0V4cCgiXihbMC05XVswLTldWzAtOV1bMC05XSktKFswLTldWzAtOV0pLShbMC05XVswLTldKSQiKSxPeWU9bmV3IFJlZ0V4cCgiXihbMC05XVswLTldWzAtOV1bMC05XSktKFswLTldWzAtOV0/KS0oWzAtOV1bMC05XT8pKD86W1R0XXxbIFxcdF0rKShbMC05XVswLTldPyk6KFswLTldWzAtOV0pOihbMC05XVswLTldKSg/OlxcLihbMC05XSopKT8oPzpbIFxcdF0qKFp8KFstK10pKFswLTldWzAtOV0/KSg/OjooWzAtOV1bMC05XSkpPykpPyQiKTtmdW5jdGlvbiBMdnIoZSl7cmV0dXJuIGU9PT1udWxsPyExOkZ5ZS5leGVjKGUpIT09bnVsbHx8T3llLmV4ZWMoZSkhPT1udWxsfWZ1bmN0aW9uIEF2cihlKXt2YXIgdCxyLGksYSxuLG8scyxsPTAsYz1udWxsLHUsZCxoO2lmKHQ9RnllLmV4ZWMoZSksdD09PW51bGwmJih0PU95ZS5leGVjKGUpKSx0PT09bnVsbCl0aHJvdyBuZXcgRXJyb3IoIkRhdGUgcmVzb2x2ZSBlcnJvciIpO2lmKHI9K3RbMV0saT0rdFsyXS0xLGE9K3RbM10sIXRbNF0pcmV0dXJuIG5ldyBEYXRlKERhdGUuVVRDKHIsaSxhKSk7aWYobj0rdFs0XSxvPSt0WzVdLHM9K3RbNl0sdFs3XSl7Zm9yKGw9dFs3XS5zbGljZSgwLDMpO2wubGVuZ3RoPDM7KWwrPSIwIjtsPStsfXJldHVybiB0WzldJiYodT0rdFsxMF0sZD0rKHRbMTFdfHwwKSxjPSh1KjYwK2QpKjZlNCx0WzldPT09Ii0iJiYoYz0tYykpLGg9bmV3IERhdGUoRGF0ZS5VVEMocixpLGEsbixvLHMsbCkpLGMmJmguc2V0VGltZShoLmdldFRpbWUoKS1jKSxofWZ1bmN0aW9uIER2cihlKXtyZXR1cm4gZS50b0lTT1N0cmluZygpfVJ5ZS5leHBvcnRzPW5ldyBfdnIoInRhZzp5YW1sLm9yZywyMDAyOnRpbWVzdGFtcCIse2tpbmQ6InNjYWxhciIscmVzb2x2ZTpMdnIsY29uc3RydWN0OkF2cixpbnN0YW5jZU9mOkRhdGUscmVwcmVzZW50OkR2cn0pfSk7dmFyIHF5ZT1qZSgoekUxLEh5ZSk9PnsidXNlIHN0cmljdCI7dmFyIEV2cj11aSgpO2Z1bmN0aW9uICR2cihlKXtyZXR1cm4gZT09PSI8PCJ8fGU9PT1udWxsfUh5ZS5leHBvcnRzPW5ldyBFdnIoInRhZzp5YW1sLm9yZywyMDAyOm1lcmdlIix7a2luZDoic2NhbGFyIixyZXNvbHZlOiR2cn0pfSk7dmFyIFV5ZT1qZSgoQ0UxLFZ5ZSk9PnsidXNlIHN0cmljdCI7dmFyIFIzO3RyeXtqeWU9UmMsUjM9anllKCJidWZmZXIiKS5CdWZmZXJ9Y2F0Y2h7fXZhciBJdnI9dWkoKSxJaj1gQUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVphYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ejAxMjM0NTY3ODkrLz0KXHJgO2Z1bmN0aW9uIFB2cihlKXtpZihlPT09bnVsbClyZXR1cm4hMTt2YXIgdCxyLGk9MCxhPWUubGVuZ3RoLG49SWo7Zm9yKHI9MDtyPGE7cisrKWlmKHQ9bi5pbmRleE9mKGUuY2hhckF0KHIpKSwhKHQ+NjQpKXtpZih0PDApcmV0dXJuITE7aSs9Nn1yZXR1cm4gaSU4PT09MH1mdW5jdGlvbiBOdnIoZSl7dmFyIHQscixpPWUucmVwbGFjZSgvW1xyXG49XS9nLCIiKSxhPWkubGVuZ3RoLG49SWosbz0wLHM9W107Zm9yKHQ9MDt0PGE7dCsrKXQlND09PTAmJnQmJihzLnB1c2gobz4+MTYmMjU1KSxzLnB1c2gobz4+OCYyNTUpLHMucHVzaChvJjI1NSkpLG89bzw8NnxuLmluZGV4T2YoaS5jaGFyQXQodCkpO3JldHVybiByPWElNCo2LHI9PT0wPyhzLnB1c2gobz4+MTYmMjU1KSxzLnB1c2gobz4+OCYyNTUpLHMucHVzaChvJjI1NSkpOnI9PT0xOD8ocy5wdXNoKG8+PjEwJjI1NSkscy5wdXNoKG8+PjImMjU1KSk6cj09PTEyJiZzLnB1c2gobz4+NCYyNTUpLFIzP1IzLmZyb20/UjMuZnJvbShzKTpuZXcgUjMocyk6c31mdW5jdGlvbiBGdnIoZSl7dmFyIHQ9IiIscj0wLGksYSxuPWUubGVuZ3RoLG89SWo7Zm9yKGk9MDtpPG47aSsrKWklMz09PTAmJmkmJih0Kz1vW3I+PjE4JjYzXSx0Kz1vW3I+PjEyJjYzXSx0Kz1vW3I+PjYmNjNdLHQrPW9bciY2M10pLHI9KHI8PDgpK2VbaV07cmV0dXJuIGE9biUzLGE9PT0wPyh0Kz1vW3I+PjE4JjYzXSx0Kz1vW3I+PjEyJjYzXSx0Kz1vW3I+PjYmNjNdLHQrPW9bciY2M10pOmE9PT0yPyh0Kz1vW3I+PjEwJjYzXSx0Kz1vW3I+PjQmNjNdLHQrPW9bcjw8MiY2M10sdCs9b1s2NF0pOmE9PT0xJiYodCs9b1tyPj4yJjYzXSx0Kz1vW3I8PDQmNjNdLHQrPW9bNjRdLHQrPW9bNjRdKSx0fWZ1bmN0aW9uIE92cihlKXtyZXR1cm4gUjMmJlIzLmlzQnVmZmVyKGUpfVZ5ZS5leHBvcnRzPW5ldyBJdnIoInRhZzp5YW1sLm9yZywyMDAyOmJpbmFyeSIse2tpbmQ6InNjYWxhciIscmVzb2x2ZTpQdnIsY29uc3RydWN0Ok52cixwcmVkaWNhdGU6T3ZyLHJlcHJlc2VudDpGdnJ9KTt2YXIganllfSk7dmFyIEd5ZT1qZSgoX0UxLFd5ZSk9PnsidXNlIHN0cmljdCI7dmFyIFJ2cj11aSgpLEJ2cj1PYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LEh2cj1PYmplY3QucHJvdG90eXBlLnRvU3RyaW5nO2Z1bmN0aW9uIHF2cihlKXtpZihlPT09bnVsbClyZXR1cm4hMDt2YXIgdD1bXSxyLGksYSxuLG8scz1lO2ZvcihyPTAsaT1zLmxlbmd0aDtyPGk7cis9MSl7aWYoYT1zW3JdLG89ITEsSHZyLmNhbGwoYSkhPT0iW29iamVjdCBPYmplY3RdIilyZXR1cm4hMTtmb3IobiBpbiBhKWlmKEJ2ci5jYWxsKGEsbikpaWYoIW8pbz0hMDtlbHNlIHJldHVybiExO2lmKCFvKXJldHVybiExO2lmKHQuaW5kZXhPZihuKT09PS0xKXQucHVzaChuKTtlbHNlIHJldHVybiExfXJldHVybiEwfWZ1bmN0aW9uIGp2cihlKXtyZXR1cm4gZSE9PW51bGw/ZTpbXX1XeWUuZXhwb3J0cz1uZXcgUnZyKCJ0YWc6eWFtbC5vcmcsMjAwMjpvbWFwIix7a2luZDoic2VxdWVuY2UiLHJlc29sdmU6cXZyLGNvbnN0cnVjdDpqdnJ9KX0pO3ZhciBaeWU9amUoKExFMSxZeWUpPT57InVzZSBzdHJpY3QiO3ZhciBWdnI9dWkoKSxVdnI9T2JqZWN0LnByb3RvdHlwZS50b1N0cmluZztmdW5jdGlvbiBXdnIoZSl7aWYoZT09PW51bGwpcmV0dXJuITA7dmFyIHQscixpLGEsbixvPWU7Zm9yKG49bmV3IEFycmF5KG8ubGVuZ3RoKSx0PTAscj1vLmxlbmd0aDt0PHI7dCs9MSl7aWYoaT1vW3RdLFV2ci5jYWxsKGkpIT09IltvYmplY3QgT2JqZWN0XSJ8fChhPU9iamVjdC5rZXlzKGkpLGEubGVuZ3RoIT09MSkpcmV0dXJuITE7blt0XT1bYVswXSxpW2FbMF1dXX1yZXR1cm4hMH1mdW5jdGlvbiBHdnIoZSl7aWYoZT09PW51bGwpcmV0dXJuW107dmFyIHQscixpLGEsbixvPWU7Zm9yKG49bmV3IEFycmF5KG8ubGVuZ3RoKSx0PTAscj1vLmxlbmd0aDt0PHI7dCs9MSlpPW9bdF0sYT1PYmplY3Qua2V5cyhpKSxuW3RdPVthWzBdLGlbYVswXV1dO3JldHVybiBufVl5ZS5leHBvcnRzPW5ldyBWdnIoInRhZzp5YW1sLm9yZywyMDAyOnBhaXJzIix7a2luZDoic2VxdWVuY2UiLHJlc29sdmU6V3ZyLGNvbnN0cnVjdDpHdnJ9KX0pO3ZhciBReWU9amUoKEFFMSxYeWUpPT57InVzZSBzdHJpY3QiO3ZhciBZdnI9dWkoKSxadnI9T2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eTtmdW5jdGlvbiBYdnIoZSl7aWYoZT09PW51bGwpcmV0dXJuITA7dmFyIHQscj1lO2Zvcih0IGluIHIpaWYoWnZyLmNhbGwocix0KSYmclt0XSE9PW51bGwpcmV0dXJuITE7cmV0dXJuITB9ZnVuY3Rpb24gUXZyKGUpe3JldHVybiBlIT09bnVsbD9lOnt9fVh5ZS5leHBvcnRzPW5ldyBZdnIoInRhZzp5YW1sLm9yZywyMDAyOnNldCIse2tpbmQ6Im1hcHBpbmciLHJlc29sdmU6WHZyLGNvbnN0cnVjdDpRdnJ9KX0pO3ZhciBwdT1qZSgoREUxLEp5ZSk9PnsidXNlIHN0cmljdCI7dmFyIEp2cj1PMygpO0p5ZS5leHBvcnRzPW5ldyBKdnIoe2luY2x1ZGU6WyRqKCldLGltcGxpY2l0OltCeWUoKSxxeWUoKV0sZXhwbGljaXQ6W1V5ZSgpLEd5ZSgpLFp5ZSgpLFF5ZSgpXX0pfSk7dmFyIGV3ZT1qZSgoRUUxLEt5ZSk9PnsidXNlIHN0cmljdCI7dmFyIEt2cj11aSgpO2Z1bmN0aW9uIGV4cigpe3JldHVybiEwfWZ1bmN0aW9uIHR4cigpe31mdW5jdGlvbiByeHIoKXtyZXR1cm4iIn1mdW5jdGlvbiBpeHIoZSl7cmV0dXJuIHR5cGVvZiBlPiJ1In1LeWUuZXhwb3J0cz1uZXcgS3ZyKCJ0YWc6eWFtbC5vcmcsMjAwMjpqcy91bmRlZmluZWQiLHtraW5kOiJzY2FsYXIiLHJlc29sdmU6ZXhyLGNvbnN0cnVjdDp0eHIscHJlZGljYXRlOml4cixyZXByZXNlbnQ6cnhyfSl9KTt2YXIgcndlPWplKCgkRTEsdHdlKT0+eyJ1c2Ugc3RyaWN0Ijt2YXIgYXhyPXVpKCk7ZnVuY3Rpb24gbnhyKGUpe2lmKGU9PT1udWxsfHxlLmxlbmd0aD09PTApcmV0dXJuITE7dmFyIHQ9ZSxyPS9cLyhbZ2ltXSopJC8uZXhlYyhlKSxpPSIiO3JldHVybiEodFswXT09PSIvIiYmKHImJihpPXJbMV0pLGkubGVuZ3RoPjN8fHRbdC5sZW5ndGgtaS5sZW5ndGgtMV0hPT0iLyIpKX1mdW5jdGlvbiBveHIoZSl7dmFyIHQ9ZSxyPS9cLyhbZ2ltXSopJC8uZXhlYyhlKSxpPSIiO3JldHVybiB0WzBdPT09Ii8iJiYociYmKGk9clsxXSksdD10LnNsaWNlKDEsdC5sZW5ndGgtaS5sZW5ndGgtMSkpLG5ldyBSZWdFeHAodCxpKX1mdW5jdGlvbiBzeHIoZSl7dmFyIHQ9Ii8iK2Uuc291cmNlKyIvIjtyZXR1cm4gZS5nbG9iYWwmJih0Kz0iZyIpLGUubXVsdGlsaW5lJiYodCs9Im0iKSxlLmlnbm9yZUNhc2UmJih0Kz0iaSIpLHR9ZnVuY3Rpb24gbHhyKGUpe3JldHVybiBPYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwoZSk9PT0iW29iamVjdCBSZWdFeHBdIn10d2UuZXhwb3J0cz1uZXcgYXhyKCJ0YWc6eWFtbC5vcmcsMjAwMjpqcy9yZWdleHAiLHtraW5kOiJzY2FsYXIiLHJlc29sdmU6bnhyLGNvbnN0cnVjdDpveHIscHJlZGljYXRlOmx4cixyZXByZXNlbnQ6c3hyfSl9KTt2YXIgbndlPWplKChJRTEsYXdlKT0+eyJ1c2Ugc3RyaWN0Ijt2YXIgSnc7dHJ5e2l3ZT1SYyxKdz1pd2UoImVzcHJpbWEiKX1jYXRjaHt0eXBlb2Ygd2luZG93PCJ1IiYmKEp3PXdpbmRvdy5lc3ByaW1hKX12YXIgY3hyPXVpKCk7ZnVuY3Rpb24gZHhyKGUpe2lmKGU9PT1udWxsKXJldHVybiExO3RyeXt2YXIgdD0iKCIrZSsiKSIscj1Kdy5wYXJzZSh0LHtyYW5nZTohMH0pO3JldHVybiEoci50eXBlIT09IlByb2dyYW0ifHxyLmJvZHkubGVuZ3RoIT09MXx8ci5ib2R5WzBdLnR5cGUhPT0iRXhwcmVzc2lvblN0YXRlbWVudCJ8fHIuYm9keVswXS5leHByZXNzaW9uLnR5cGUhPT0iQXJyb3dGdW5jdGlvbkV4cHJlc3Npb24iJiZyLmJvZHlbMF0uZXhwcmVzc2lvbi50eXBlIT09IkZ1bmN0aW9uRXhwcmVzc2lvbiIpfWNhdGNoe3JldHVybiExfX1mdW5jdGlvbiB1eHIoZSl7dmFyIHQ9IigiK2UrIikiLHI9SncucGFyc2UodCx7cmFuZ2U6ITB9KSxpPVtdLGE7aWYoci50eXBlIT09IlByb2dyYW0ifHxyLmJvZHkubGVuZ3RoIT09MXx8ci5ib2R5WzBdLnR5cGUhPT0iRXhwcmVzc2lvblN0YXRlbWVudCJ8fHIuYm9keVswXS5leHByZXNzaW9uLnR5cGUhPT0iQXJyb3dGdW5jdGlvbkV4cHJlc3Npb24iJiZyLmJvZHlbMF0uZXhwcmVzc2lvbi50eXBlIT09IkZ1bmN0aW9uRXhwcmVzc2lvbiIpdGhyb3cgbmV3IEVycm9yKCJGYWlsZWQgdG8gcmVzb2x2ZSBmdW5jdGlvbiIpO3JldHVybiByLmJvZHlbMF0uZXhwcmVzc2lvbi5wYXJhbXMuZm9yRWFjaChmdW5jdGlvbihuKXtpLnB1c2gobi5uYW1lKX0pLGE9ci5ib2R5WzBdLmV4cHJlc3Npb24uYm9keS5yYW5nZSxyLmJvZHlbMF0uZXhwcmVzc2lvbi5ib2R5LnR5cGU9PT0iQmxvY2tTdGF0ZW1lbnQiP25ldyBGdW5jdGlvbihpLHQuc2xpY2UoYVswXSsxLGFbMV0tMSkpOm5ldyBGdW5jdGlvbihpLCJyZXR1cm4gIit0LnNsaWNlKGFbMF0sYVsxXSkpfWZ1bmN0aW9uIHB4cihlKXtyZXR1cm4gZS50b1N0cmluZygpfWZ1bmN0aW9uIGh4cihlKXtyZXR1cm4gT2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKGUpPT09IltvYmplY3QgRnVuY3Rpb25dIn1hd2UuZXhwb3J0cz1uZXcgY3hyKCJ0YWc6eWFtbC5vcmcsMjAwMjpqcy9mdW5jdGlvbiIse2tpbmQ6InNjYWxhciIscmVzb2x2ZTpkeHIsY29uc3RydWN0OnV4cixwcmVkaWNhdGU6aHhyLHJlcHJlc2VudDpweHJ9KTt2YXIgaXdlfSk7dmFyIGE3PWplKChORTEsc3dlKT0+eyJ1c2Ugc3RyaWN0Ijt2YXIgb3dlPU8zKCk7c3dlLmV4cG9ydHM9b3dlLkRFRkFVTFQ9bmV3IG93ZSh7aW5jbHVkZTpbcHUoKV0sZXhwbGljaXQ6W2V3ZSgpLHJ3ZSgpLG53ZSgpXX0pfSk7dmFyIFR3ZT1qZSgoRkUxLG43KT0+eyJ1c2Ugc3RyaWN0Ijt2YXIgTGw9RjMoKSxsd2U9ZHUoKSxmeHI9ZnllKCksY3dlPXB1KCksbXhyPWE3KCksbTA9T2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eSxLdz0xLGR3ZT0yLHV3ZT0zLGVNPTQsUGo9MSxneHI9Mixwd2U9MyxieHI9L1tceDAwLVx4MDhceDBCXHgwQ1x4MEUtXHgxRlx4N0YtXHg4NFx4ODYtXHg5Rlx1RkZGRVx1RkZGRl18W1x1RDgwMC1cdURCRkZdKD8hW1x1REMwMC1cdURGRkZdKXwoPzpbXlx1RDgwMC1cdURCRkZdfF4pW1x1REMwMC1cdURGRkZdLyx2eHI9L1tceDg1XHUyMDI4XHUyMDI5XS8seHhyPS9bLFxbXF1ce1x9XS8saHdlPS9eKD86IXwhIXwhW2EtelwtXSshKSQvaSxmd2U9L14oPzohfFteLFxbXF1ce1x9XSkoPzolWzAtOWEtZl17Mn18WzAtOWEtelwtIztcL1w/OkAmPVwrXCQsX1wuIX5cKidcKFwpXFtcXV0pKiQvaTtmdW5jdGlvbiBtd2UoZSl7cmV0dXJuIE9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbChlKX1mdW5jdGlvbiBjcyhlKXtyZXR1cm4gZT09PTEwfHxlPT09MTN9ZnVuY3Rpb24gQjMoZSl7cmV0dXJuIGU9PT05fHxlPT09MzJ9ZnVuY3Rpb24gZ24oZSl7cmV0dXJuIGU9PT05fHxlPT09MzJ8fGU9PT0xMHx8ZT09PTEzfWZ1bmN0aW9uIGh1KGUpe3JldHVybiBlPT09NDR8fGU9PT05MXx8ZT09PTkzfHxlPT09MTIzfHxlPT09MTI1fWZ1bmN0aW9uIHl4cihlKXt2YXIgdDtyZXR1cm4gNDg8PWUmJmU8PTU3P2UtNDg6KHQ9ZXwzMiw5Nzw9dCYmdDw9MTAyP3QtOTcrMTA6LTEpfWZ1bmN0aW9uIHd4cihlKXtyZXR1cm4gZT09PTEyMD8yOmU9PT0xMTc/NDplPT09ODU/ODowfWZ1bmN0aW9uIE14cihlKXtyZXR1cm4gNDg8PWUmJmU8PTU3P2UtNDg6LTF9ZnVuY3Rpb24gZ3dlKGUpe3JldHVybiBlPT09NDg/IlwwIjplPT09OTc/Ilx4MDciOmU9PT05OD8iXGIiOmU9PT0xMTZ8fGU9PT05PyIJIjplPT09MTEwP2AKYDplPT09MTE4PyJcdiI6ZT09PTEwMj8iXGYiOmU9PT0xMTQ/IlxyIjplPT09MTAxPyJceDFCIjplPT09MzI/IiAiOmU9PT0zND8nIic6ZT09PTQ3PyIvIjplPT09OTI/IlxcIjplPT09Nzg/Ilx4ODUiOmU9PT05NT8iXHhBMCI6ZT09PTc2PyJcdTIwMjgiOmU9PT04MD8iXHUyMDI5IjoiIn1mdW5jdGlvbiBreHIoZSl7cmV0dXJuIGU8PTY1NTM1P1N0cmluZy5mcm9tQ2hhckNvZGUoZSk6U3RyaW5nLmZyb21DaGFyQ29kZSgoZS02NTUzNj4+MTApKzU1Mjk2LChlLTY1NTM2JjEwMjMpKzU2MzIwKX1mdW5jdGlvbiBid2UoZSx0LHIpe3Q9PT0iX19wcm90b19fIj9PYmplY3QuZGVmaW5lUHJvcGVydHkoZSx0LHtjb25maWd1cmFibGU6ITAsZW51bWVyYWJsZTohMCx3cml0YWJsZTohMCx2YWx1ZTpyfSk6ZVt0XT1yfXZhciB2d2U9bmV3IEFycmF5KDI1NikseHdlPW5ldyBBcnJheSgyNTYpO2ZvcihIMz0wO0gzPDI1NjtIMysrKXZ3ZVtIM109Z3dlKEgzKT8xOjAseHdlW0gzXT1nd2UoSDMpO2Z1bmN0aW9uIFN4cihlLHQpe3RoaXMuaW5wdXQ9ZSx0aGlzLmZpbGVuYW1lPXQuZmlsZW5hbWV8fG51bGwsdGhpcy5zY2hlbWE9dC5zY2hlbWF8fG14cix0aGlzLm9uV2FybmluZz10Lm9uV2FybmluZ3x8bnVsbCx0aGlzLmxlZ2FjeT10LmxlZ2FjeXx8ITEsdGhpcy5qc29uPXQuanNvbnx8ITEsdGhpcy5saXN0ZW5lcj10Lmxpc3RlbmVyfHxudWxsLHRoaXMuaW1wbGljaXRUeXBlcz10aGlzLnNjaGVtYS5jb21waWxlZEltcGxpY2l0LHRoaXMudHlwZU1hcD10aGlzLnNjaGVtYS5jb21waWxlZFR5cGVNYXAsdGhpcy5sZW5ndGg9ZS5sZW5ndGgsdGhpcy5wb3NpdGlvbj0wLHRoaXMubGluZT0wLHRoaXMubGluZVN0YXJ0PTAsdGhpcy5saW5lSW5kZW50PTAsdGhpcy5kb2N1bWVudHM9W119ZnVuY3Rpb24geXdlKGUsdCl7cmV0dXJuIG5ldyBsd2UodCxuZXcgZnhyKGUuZmlsZW5hbWUsZS5pbnB1dCxlLnBvc2l0aW9uLGUubGluZSxlLnBvc2l0aW9uLWUubGluZVN0YXJ0KSl9ZnVuY3Rpb24geXQoZSx0KXt0aHJvdyB5d2UoZSx0KX1mdW5jdGlvbiB0TShlLHQpe2Uub25XYXJuaW5nJiZlLm9uV2FybmluZy5jYWxsKG51bGwseXdlKGUsdCkpfXZhciB3d2U9e1lBTUw6ZnVuY3Rpb24odCxyLGkpe3ZhciBhLG4sbzt0LnZlcnNpb24hPT1udWxsJiZ5dCh0LCJkdXBsaWNhdGlvbiBvZiAlWUFNTCBkaXJlY3RpdmUiKSxpLmxlbmd0aCE9PTEmJnl0KHQsIllBTUwgZGlyZWN0aXZlIGFjY2VwdHMgZXhhY3RseSBvbmUgYXJndW1lbnQiKSxhPS9eKFswLTldKylcLihbMC05XSspJC8uZXhlYyhpWzBdKSxhPT09bnVsbCYmeXQodCwiaWxsLWZvcm1lZCBhcmd1bWVudCBvZiB0aGUgWUFNTCBkaXJlY3RpdmUiKSxuPXBhcnNlSW50KGFbMV0sMTApLG89cGFyc2VJbnQoYVsyXSwxMCksbiE9PTEmJnl0KHQsInVuYWNjZXB0YWJsZSBZQU1MIHZlcnNpb24gb2YgdGhlIGRvY3VtZW50IiksdC52ZXJzaW9uPWlbMF0sdC5jaGVja0xpbmVCcmVha3M9bzwyLG8hPT0xJiZvIT09MiYmdE0odCwidW5zdXBwb3J0ZWQgWUFNTCB2ZXJzaW9uIG9mIHRoZSBkb2N1bWVudCIpfSxUQUc6ZnVuY3Rpb24odCxyLGkpe3ZhciBhLG47aS5sZW5ndGghPT0yJiZ5dCh0LCJUQUcgZGlyZWN0aXZlIGFjY2VwdHMgZXhhY3RseSB0d28gYXJndW1lbnRzIiksYT1pWzBdLG49aVsxXSxod2UudGVzdChhKXx8eXQodCwiaWxsLWZvcm1lZCB0YWcgaGFuZGxlIChmaXJzdCBhcmd1bWVudCkgb2YgdGhlIFRBRyBkaXJlY3RpdmUiKSxtMC5jYWxsKHQudGFnTWFwLGEpJiZ5dCh0LCd0aGVyZSBpcyBhIHByZXZpb3VzbHkgZGVjbGFyZWQgc3VmZml4IGZvciAiJythKyciIHRhZyBoYW5kbGUnKSxmd2UudGVzdChuKXx8eXQodCwiaWxsLWZvcm1lZCB0YWcgcHJlZml4IChzZWNvbmQgYXJndW1lbnQpIG9mIHRoZSBUQUcgZGlyZWN0aXZlIiksdC50YWdNYXBbYV09bn19O2Z1bmN0aW9uIGcwKGUsdCxyLGkpe3ZhciBhLG4sbyxzO2lmKHQ8cil7aWYocz1lLmlucHV0LnNsaWNlKHQsciksaSlmb3IoYT0wLG49cy5sZW5ndGg7YTxuO2ErPTEpbz1zLmNoYXJDb2RlQXQoYSksbz09PTl8fDMyPD1vJiZvPD0xMTE0MTExfHx5dChlLCJleHBlY3RlZCB2YWxpZCBKU09OIGNoYXJhY3RlciIpO2Vsc2UgYnhyLnRlc3QocykmJnl0KGUsInRoZSBzdHJlYW0gY29udGFpbnMgbm9uLXByaW50YWJsZSBjaGFyYWN0ZXJzIik7ZS5yZXN1bHQrPXN9fWZ1bmN0aW9uIE13ZShlLHQscixpKXt2YXIgYSxuLG8scztmb3IoTGwuaXNPYmplY3Qocil8fHl0KGUsImNhbm5vdCBtZXJnZSBtYXBwaW5nczsgdGhlIHByb3ZpZGVkIHNvdXJjZSBvYmplY3QgaXMgdW5hY2NlcHRhYmxlIiksYT1PYmplY3Qua2V5cyhyKSxvPTAscz1hLmxlbmd0aDtvPHM7bys9MSluPWFbb10sbTAuY2FsbCh0LG4pfHwoYndlKHQsbixyW25dKSxpW25dPSEwKX1mdW5jdGlvbiBmdShlLHQscixpLGEsbixvLHMpe3ZhciBsLGM7aWYoQXJyYXkuaXNBcnJheShhKSlmb3IoYT1BcnJheS5wcm90b3R5cGUuc2xpY2UuY2FsbChhKSxsPTAsYz1hLmxlbmd0aDtsPGM7bCs9MSlBcnJheS5pc0FycmF5KGFbbF0pJiZ5dChlLCJuZXN0ZWQgYXJyYXlzIGFyZSBub3Qgc3VwcG9ydGVkIGluc2lkZSBrZXlzIiksdHlwZW9mIGE9PSJvYmplY3QiJiZtd2UoYVtsXSk9PT0iW29iamVjdCBPYmplY3RdIiYmKGFbbF09IltvYmplY3QgT2JqZWN0XSIpO2lmKHR5cGVvZiBhPT0ib2JqZWN0IiYmbXdlKGEpPT09IltvYmplY3QgT2JqZWN0XSImJihhPSJbb2JqZWN0IE9iamVjdF0iKSxhPVN0cmluZyhhKSx0PT09bnVsbCYmKHQ9e30pLGk9PT0idGFnOnlhbWwub3JnLDIwMDI6bWVyZ2UiKWlmKEFycmF5LmlzQXJyYXkobikpZm9yKGw9MCxjPW4ubGVuZ3RoO2w8YztsKz0xKU13ZShlLHQsbltsXSxyKTtlbHNlIE13ZShlLHQsbixyKTtlbHNlIWUuanNvbiYmIW0wLmNhbGwocixhKSYmbTAuY2FsbCh0LGEpJiYoZS5saW5lPW98fGUubGluZSxlLnBvc2l0aW9uPXN8fGUucG9zaXRpb24seXQoZSwiZHVwbGljYXRlZCBtYXBwaW5nIGtleSIpKSxid2UodCxhLG4pLGRlbGV0ZSByW2FdO3JldHVybiB0fWZ1bmN0aW9uIE5qKGUpe3ZhciB0O3Q9ZS5pbnB1dC5jaGFyQ29kZUF0KGUucG9zaXRpb24pLHQ9PT0xMD9lLnBvc2l0aW9uKys6dD09PTEzPyhlLnBvc2l0aW9uKyssZS5pbnB1dC5jaGFyQ29kZUF0KGUucG9zaXRpb24pPT09MTAmJmUucG9zaXRpb24rKyk6eXQoZSwiYSBsaW5lIGJyZWFrIGlzIGV4cGVjdGVkIiksZS5saW5lKz0xLGUubGluZVN0YXJ0PWUucG9zaXRpb259ZnVuY3Rpb24gSjEoZSx0LHIpe2Zvcih2YXIgaT0wLGE9ZS5pbnB1dC5jaGFyQ29kZUF0KGUucG9zaXRpb24pO2EhPT0wOyl7Zm9yKDtCMyhhKTspYT1lLmlucHV0LmNoYXJDb2RlQXQoKytlLnBvc2l0aW9uKTtpZih0JiZhPT09MzUpZG8gYT1lLmlucHV0LmNoYXJDb2RlQXQoKytlLnBvc2l0aW9uKTt3aGlsZShhIT09MTAmJmEhPT0xMyYmYSE9PTApO2lmKGNzKGEpKWZvcihOaihlKSxhPWUuaW5wdXQuY2hhckNvZGVBdChlLnBvc2l0aW9uKSxpKyssZS5saW5lSW5kZW50PTA7YT09PTMyOyllLmxpbmVJbmRlbnQrKyxhPWUuaW5wdXQuY2hhckNvZGVBdCgrK2UucG9zaXRpb24pO2Vsc2UgYnJlYWt9cmV0dXJuIHIhPT0tMSYmaSE9PTAmJmUubGluZUluZGVudDxyJiZ0TShlLCJkZWZpY2llbnQgaW5kZW50YXRpb24iKSxpfWZ1bmN0aW9uIHJNKGUpe3ZhciB0PWUucG9zaXRpb24scjtyZXR1cm4gcj1lLmlucHV0LmNoYXJDb2RlQXQodCksISEoKHI9PT00NXx8cj09PTQ2KSYmcj09PWUuaW5wdXQuY2hhckNvZGVBdCh0KzEpJiZyPT09ZS5pbnB1dC5jaGFyQ29kZUF0KHQrMikmJih0Kz0zLHI9ZS5pbnB1dC5jaGFyQ29kZUF0KHQpLHI9PT0wfHxnbihyKSkpfWZ1bmN0aW9uIEZqKGUsdCl7dD09PTE/ZS5yZXN1bHQrPSIgIjp0PjEmJihlLnJlc3VsdCs9TGwucmVwZWF0KGAKYCx0LTEpKX1mdW5jdGlvbiB6eHIoZSx0LHIpe3ZhciBpLGEsbixvLHMsbCxjLHUsZD1lLmtpbmQsaD1lLnJlc3VsdCxmO2lmKGY9ZS5pbnB1dC5jaGFyQ29kZUF0KGUucG9zaXRpb24pLGduKGYpfHxodShmKXx8Zj09PTM1fHxmPT09Mzh8fGY9PT00Mnx8Zj09PTMzfHxmPT09MTI0fHxmPT09NjJ8fGY9PT0zOXx8Zj09PTM0fHxmPT09Mzd8fGY9PT02NHx8Zj09PTk2fHwoZj09PTYzfHxmPT09NDUpJiYoYT1lLmlucHV0LmNoYXJDb2RlQXQoZS5wb3NpdGlvbisxKSxnbihhKXx8ciYmaHUoYSkpKXJldHVybiExO2ZvcihlLmtpbmQ9InNjYWxhciIsZS5yZXN1bHQ9IiIsbj1vPWUucG9zaXRpb24scz0hMTtmIT09MDspe2lmKGY9PT01OCl7aWYoYT1lLmlucHV0LmNoYXJDb2RlQXQoZS5wb3NpdGlvbisxKSxnbihhKXx8ciYmaHUoYSkpYnJlYWt9ZWxzZSBpZihmPT09MzUpe2lmKGk9ZS5pbnB1dC5jaGFyQ29kZUF0KGUucG9zaXRpb24tMSksZ24oaSkpYnJlYWt9ZWxzZXtpZihlLnBvc2l0aW9uPT09ZS5saW5lU3RhcnQmJnJNKGUpfHxyJiZodShmKSlicmVhaztpZihjcyhmKSlpZihsPWUubGluZSxjPWUubGluZVN0YXJ0LHU9ZS5saW5lSW5kZW50LEoxKGUsITEsLTEpLGUubGluZUluZGVudD49dCl7cz0hMCxmPWUuaW5wdXQuY2hhckNvZGVBdChlLnBvc2l0aW9uKTtjb250aW51ZX1lbHNle2UucG9zaXRpb249byxlLmxpbmU9bCxlLmxpbmVTdGFydD1jLGUubGluZUluZGVudD11O2JyZWFrfX1zJiYoZzAoZSxuLG8sITEpLEZqKGUsZS5saW5lLWwpLG49bz1lLnBvc2l0aW9uLHM9ITEpLEIzKGYpfHwobz1lLnBvc2l0aW9uKzEpLGY9ZS5pbnB1dC5jaGFyQ29kZUF0KCsrZS5wb3NpdGlvbil9cmV0dXJuIGcwKGUsbixvLCExKSxlLnJlc3VsdD8hMDooZS5raW5kPWQsZS5yZXN1bHQ9aCwhMSl9ZnVuY3Rpb24gQ3hyKGUsdCl7dmFyIHIsaSxhO2lmKHI9ZS5pbnB1dC5jaGFyQ29kZUF0KGUucG9zaXRpb24pLHIhPT0zOSlyZXR1cm4hMTtmb3IoZS5raW5kPSJzY2FsYXIiLGUucmVzdWx0PSIiLGUucG9zaXRpb24rKyxpPWE9ZS5wb3NpdGlvbjsocj1lLmlucHV0LmNoYXJDb2RlQXQoZS5wb3NpdGlvbikpIT09MDspaWYocj09PTM5KWlmKGcwKGUsaSxlLnBvc2l0aW9uLCEwKSxyPWUuaW5wdXQuY2hhckNvZGVBdCgrK2UucG9zaXRpb24pLHI9PT0zOSlpPWUucG9zaXRpb24sZS5wb3NpdGlvbisrLGE9ZS5wb3NpdGlvbjtlbHNlIHJldHVybiEwO2Vsc2UgY3Mocik/KGcwKGUsaSxhLCEwKSxGaihlLEoxKGUsITEsdCkpLGk9YT1lLnBvc2l0aW9uKTplLnBvc2l0aW9uPT09ZS5saW5lU3RhcnQmJnJNKGUpP3l0KGUsInVuZXhwZWN0ZWQgZW5kIG9mIHRoZSBkb2N1bWVudCB3aXRoaW4gYSBzaW5nbGUgcXVvdGVkIHNjYWxhciIpOihlLnBvc2l0aW9uKyssYT1lLnBvc2l0aW9uKTt5dChlLCJ1bmV4cGVjdGVkIGVuZCBvZiB0aGUgc3RyZWFtIHdpdGhpbiBhIHNpbmdsZSBxdW90ZWQgc2NhbGFyIil9ZnVuY3Rpb24gVHhyKGUsdCl7dmFyIHIsaSxhLG4sbyxzO2lmKHM9ZS5pbnB1dC5jaGFyQ29kZUF0KGUucG9zaXRpb24pLHMhPT0zNClyZXR1cm4hMTtmb3IoZS5raW5kPSJzY2FsYXIiLGUucmVzdWx0PSIiLGUucG9zaXRpb24rKyxyPWk9ZS5wb3NpdGlvbjsocz1lLmlucHV0LmNoYXJDb2RlQXQoZS5wb3NpdGlvbikpIT09MDspe2lmKHM9PT0zNClyZXR1cm4gZzAoZSxyLGUucG9zaXRpb24sITApLGUucG9zaXRpb24rKywhMDtpZihzPT09OTIpe2lmKGcwKGUscixlLnBvc2l0aW9uLCEwKSxzPWUuaW5wdXQuY2hhckNvZGVBdCgrK2UucG9zaXRpb24pLGNzKHMpKUoxKGUsITEsdCk7ZWxzZSBpZihzPDI1NiYmdndlW3NdKWUucmVzdWx0Kz14d2Vbc10sZS5wb3NpdGlvbisrO2Vsc2UgaWYoKG89d3hyKHMpKT4wKXtmb3IoYT1vLG49MDthPjA7YS0tKXM9ZS5pbnB1dC5jaGFyQ29kZUF0KCsrZS5wb3NpdGlvbiksKG89eXhyKHMpKT49MD9uPShuPDw0KStvOnl0KGUsImV4cGVjdGVkIGhleGFkZWNpbWFsIGNoYXJhY3RlciIpO2UucmVzdWx0Kz1reHIobiksZS5wb3NpdGlvbisrfWVsc2UgeXQoZSwidW5rbm93biBlc2NhcGUgc2VxdWVuY2UiKTtyPWk9ZS5wb3NpdGlvbn1lbHNlIGNzKHMpPyhnMChlLHIsaSwhMCksRmooZSxKMShlLCExLHQpKSxyPWk9ZS5wb3NpdGlvbik6ZS5wb3NpdGlvbj09PWUubGluZVN0YXJ0JiZyTShlKT95dChlLCJ1bmV4cGVjdGVkIGVuZCBvZiB0aGUgZG9jdW1lbnQgd2l0aGluIGEgZG91YmxlIHF1b3RlZCBzY2FsYXIiKTooZS5wb3NpdGlvbisrLGk9ZS5wb3NpdGlvbil9eXQoZSwidW5leHBlY3RlZCBlbmQgb2YgdGhlIHN0cmVhbSB3aXRoaW4gYSBkb3VibGUgcXVvdGVkIHNjYWxhciIpfWZ1bmN0aW9uIF94cihlLHQpe3ZhciByPSEwLGksYT1lLnRhZyxuLG89ZS5hbmNob3IscyxsLGMsdSxkLGg9e30sZix4LHYsYjtpZihiPWUuaW5wdXQuY2hhckNvZGVBdChlLnBvc2l0aW9uKSxiPT09OTEpbD05MyxkPSExLG49W107ZWxzZSBpZihiPT09MTIzKWw9MTI1LGQ9ITAsbj17fTtlbHNlIHJldHVybiExO2ZvcihlLmFuY2hvciE9PW51bGwmJihlLmFuY2hvck1hcFtlLmFuY2hvcl09biksYj1lLmlucHV0LmNoYXJDb2RlQXQoKytlLnBvc2l0aW9uKTtiIT09MDspe2lmKEoxKGUsITAsdCksYj1lLmlucHV0LmNoYXJDb2RlQXQoZS5wb3NpdGlvbiksYj09PWwpcmV0dXJuIGUucG9zaXRpb24rKyxlLnRhZz1hLGUuYW5jaG9yPW8sZS5raW5kPWQ/Im1hcHBpbmciOiJzZXF1ZW5jZSIsZS5yZXN1bHQ9biwhMDtyfHx5dChlLCJtaXNzZWQgY29tbWEgYmV0d2VlbiBmbG93IGNvbGxlY3Rpb24gZW50cmllcyIpLHg9Zj12PW51bGwsYz11PSExLGI9PT02MyYmKHM9ZS5pbnB1dC5jaGFyQ29kZUF0KGUucG9zaXRpb24rMSksZ24ocykmJihjPXU9ITAsZS5wb3NpdGlvbisrLEoxKGUsITAsdCkpKSxpPWUubGluZSxtdShlLHQsS3csITEsITApLHg9ZS50YWcsZj1lLnJlc3VsdCxKMShlLCEwLHQpLGI9ZS5pbnB1dC5jaGFyQ29kZUF0KGUucG9zaXRpb24pLCh1fHxlLmxpbmU9PT1pKSYmYj09PTU4JiYoYz0hMCxiPWUuaW5wdXQuY2hhckNvZGVBdCgrK2UucG9zaXRpb24pLEoxKGUsITAsdCksbXUoZSx0LEt3LCExLCEwKSx2PWUucmVzdWx0KSxkP2Z1KGUsbixoLHgsZix2KTpjP24ucHVzaChmdShlLG51bGwsaCx4LGYsdikpOm4ucHVzaChmKSxKMShlLCEwLHQpLGI9ZS5pbnB1dC5jaGFyQ29kZUF0KGUucG9zaXRpb24pLGI9PT00ND8ocj0hMCxiPWUuaW5wdXQuY2hhckNvZGVBdCgrK2UucG9zaXRpb24pKTpyPSExfXl0KGUsInVuZXhwZWN0ZWQgZW5kIG9mIHRoZSBzdHJlYW0gd2l0aGluIGEgZmxvdyBjb2xsZWN0aW9uIil9ZnVuY3Rpb24gTHhyKGUsdCl7dmFyIHIsaSxhPVBqLG49ITEsbz0hMSxzPXQsbD0wLGM9ITEsdSxkO2lmKGQ9ZS5pbnB1dC5jaGFyQ29kZUF0KGUucG9zaXRpb24pLGQ9PT0xMjQpaT0hMTtlbHNlIGlmKGQ9PT02MilpPSEwO2Vsc2UgcmV0dXJuITE7Zm9yKGUua2luZD0ic2NhbGFyIixlLnJlc3VsdD0iIjtkIT09MDspaWYoZD1lLmlucHV0LmNoYXJDb2RlQXQoKytlLnBvc2l0aW9uKSxkPT09NDN8fGQ9PT00NSlQaj09PWE/YT1kPT09NDM/cHdlOmd4cjp5dChlLCJyZXBlYXQgb2YgYSBjaG9tcGluZyBtb2RlIGlkZW50aWZpZXIiKTtlbHNlIGlmKCh1PU14cihkKSk+PTApdT09PTA/eXQoZSwiYmFkIGV4cGxpY2l0IGluZGVudGF0aW9uIHdpZHRoIG9mIGEgYmxvY2sgc2NhbGFyOyBpdCBjYW5ub3QgYmUgbGVzcyB0aGFuIG9uZSIpOm8/eXQoZSwicmVwZWF0IG9mIGFuIGluZGVudGF0aW9uIHdpZHRoIGlkZW50aWZpZXIiKToocz10K3UtMSxvPSEwKTtlbHNlIGJyZWFrO2lmKEIzKGQpKXtkbyBkPWUuaW5wdXQuY2hhckNvZGVBdCgrK2UucG9zaXRpb24pO3doaWxlKEIzKGQpKTtpZihkPT09MzUpZG8gZD1lLmlucHV0LmNoYXJDb2RlQXQoKytlLnBvc2l0aW9uKTt3aGlsZSghY3MoZCkmJmQhPT0wKX1mb3IoO2QhPT0wOyl7Zm9yKE5qKGUpLGUubGluZUluZGVudD0wLGQ9ZS5pbnB1dC5jaGFyQ29kZUF0KGUucG9zaXRpb24pOyghb3x8ZS5saW5lSW5kZW50PHMpJiZkPT09MzI7KWUubGluZUluZGVudCsrLGQ9ZS5pbnB1dC5jaGFyQ29kZUF0KCsrZS5wb3NpdGlvbik7aWYoIW8mJmUubGluZUluZGVudD5zJiYocz1lLmxpbmVJbmRlbnQpLGNzKGQpKXtsKys7Y29udGludWV9aWYoZS5saW5lSW5kZW50PHMpe2E9PT1wd2U/ZS5yZXN1bHQrPUxsLnJlcGVhdChgCmAsbj8xK2w6bCk6YT09PVBqJiZuJiYoZS5yZXN1bHQrPWAKYCk7YnJlYWt9Zm9yKGk/QjMoZCk/KGM9ITAsZS5yZXN1bHQrPUxsLnJlcGVhdChgCmAsbj8xK2w6bCkpOmM/KGM9ITEsZS5yZXN1bHQrPUxsLnJlcGVhdChgCmAsbCsxKSk6bD09PTA/biYmKGUucmVzdWx0Kz0iICIpOmUucmVzdWx0Kz1MbC5yZXBlYXQoYApgLGwpOmUucmVzdWx0Kz1MbC5yZXBlYXQoYApgLG4/MStsOmwpLG49ITAsbz0hMCxsPTAscj1lLnBvc2l0aW9uOyFjcyhkKSYmZCE9PTA7KWQ9ZS5pbnB1dC5jaGFyQ29kZUF0KCsrZS5wb3NpdGlvbik7ZzAoZSxyLGUucG9zaXRpb24sITEpfXJldHVybiEwfWZ1bmN0aW9uIGt3ZShlLHQpe3ZhciByLGk9ZS50YWcsYT1lLmFuY2hvcixuPVtdLG8scz0hMSxsO2ZvcihlLmFuY2hvciE9PW51bGwmJihlLmFuY2hvck1hcFtlLmFuY2hvcl09biksbD1lLmlucHV0LmNoYXJDb2RlQXQoZS5wb3NpdGlvbik7bCE9PTAmJiEobCE9PTQ1fHwobz1lLmlucHV0LmNoYXJDb2RlQXQoZS5wb3NpdGlvbisxKSwhZ24obykpKTspe2lmKHM9ITAsZS5wb3NpdGlvbisrLEoxKGUsITAsLTEpJiZlLmxpbmVJbmRlbnQ8PXQpe24ucHVzaChudWxsKSxsPWUuaW5wdXQuY2hhckNvZGVBdChlLnBvc2l0aW9uKTtjb250aW51ZX1pZihyPWUubGluZSxtdShlLHQsdXdlLCExLCEwKSxuLnB1c2goZS5yZXN1bHQpLEoxKGUsITAsLTEpLGw9ZS5pbnB1dC5jaGFyQ29kZUF0KGUucG9zaXRpb24pLChlLmxpbmU9PT1yfHxlLmxpbmVJbmRlbnQ+dCkmJmwhPT0wKXl0KGUsImJhZCBpbmRlbnRhdGlvbiBvZiBhIHNlcXVlbmNlIGVudHJ5Iik7ZWxzZSBpZihlLmxpbmVJbmRlbnQ8dClicmVha31yZXR1cm4gcz8oZS50YWc9aSxlLmFuY2hvcj1hLGUua2luZD0ic2VxdWVuY2UiLGUucmVzdWx0PW4sITApOiExfWZ1bmN0aW9uIEF4cihlLHQscil7dmFyIGksYSxuLG8scz1lLnRhZyxsPWUuYW5jaG9yLGM9e30sdT17fSxkPW51bGwsaD1udWxsLGY9bnVsbCx4PSExLHY9ITEsYjtmb3IoZS5hbmNob3IhPT1udWxsJiYoZS5hbmNob3JNYXBbZS5hbmNob3JdPWMpLGI9ZS5pbnB1dC5jaGFyQ29kZUF0KGUucG9zaXRpb24pO2IhPT0wOyl7aWYoaT1lLmlucHV0LmNoYXJDb2RlQXQoZS5wb3NpdGlvbisxKSxuPWUubGluZSxvPWUucG9zaXRpb24sKGI9PT02M3x8Yj09PTU4KSYmZ24oaSkpYj09PTYzPyh4JiYoZnUoZSxjLHUsZCxoLG51bGwpLGQ9aD1mPW51bGwpLHY9ITAseD0hMCxhPSEwKTp4Pyh4PSExLGE9ITApOnl0KGUsImluY29tcGxldGUgZXhwbGljaXQgbWFwcGluZyBwYWlyOyBhIGtleSBub2RlIGlzIG1pc3NlZDsgb3IgZm9sbG93ZWQgYnkgYSBub24tdGFidWxhdGVkIGVtcHR5IGxpbmUiKSxlLnBvc2l0aW9uKz0xLGI9aTtlbHNlIGlmKG11KGUscixkd2UsITEsITApKWlmKGUubGluZT09PW4pe2ZvcihiPWUuaW5wdXQuY2hhckNvZGVBdChlLnBvc2l0aW9uKTtCMyhiKTspYj1lLmlucHV0LmNoYXJDb2RlQXQoKytlLnBvc2l0aW9uKTtpZihiPT09NTgpYj1lLmlucHV0LmNoYXJDb2RlQXQoKytlLnBvc2l0aW9uKSxnbihiKXx8eXQoZSwiYSB3aGl0ZXNwYWNlIGNoYXJhY3RlciBpcyBleHBlY3RlZCBhZnRlciB0aGUga2V5LXZhbHVlIHNlcGFyYXRvciB3aXRoaW4gYSBibG9jayBtYXBwaW5nIikseCYmKGZ1KGUsYyx1LGQsaCxudWxsKSxkPWg9Zj1udWxsKSx2PSEwLHg9ITEsYT0hMSxkPWUudGFnLGg9ZS5yZXN1bHQ7ZWxzZSBpZih2KXl0KGUsImNhbiBub3QgcmVhZCBhbiBpbXBsaWNpdCBtYXBwaW5nIHBhaXI7IGEgY29sb24gaXMgbWlzc2VkIik7ZWxzZSByZXR1cm4gZS50YWc9cyxlLmFuY2hvcj1sLCEwfWVsc2UgaWYodil5dChlLCJjYW4gbm90IHJlYWQgYSBibG9jayBtYXBwaW5nIGVudHJ5OyBhIG11bHRpbGluZSBrZXkgbWF5IG5vdCBiZSBhbiBpbXBsaWNpdCBrZXkiKTtlbHNlIHJldHVybiBlLnRhZz1zLGUuYW5jaG9yPWwsITA7ZWxzZSBicmVhaztpZigoZS5saW5lPT09bnx8ZS5saW5lSW5kZW50PnQpJiYobXUoZSx0LGVNLCEwLGEpJiYoeD9oPWUucmVzdWx0OmY9ZS5yZXN1bHQpLHh8fChmdShlLGMsdSxkLGgsZixuLG8pLGQ9aD1mPW51bGwpLEoxKGUsITAsLTEpLGI9ZS5pbnB1dC5jaGFyQ29kZUF0KGUucG9zaXRpb24pKSxlLmxpbmVJbmRlbnQ+dCYmYiE9PTApeXQoZSwiYmFkIGluZGVudGF0aW9uIG9mIGEgbWFwcGluZyBlbnRyeSIpO2Vsc2UgaWYoZS5saW5lSW5kZW50PHQpYnJlYWt9cmV0dXJuIHgmJmZ1KGUsYyx1LGQsaCxudWxsKSx2JiYoZS50YWc9cyxlLmFuY2hvcj1sLGUua2luZD0ibWFwcGluZyIsZS5yZXN1bHQ9Yyksdn1mdW5jdGlvbiBEeHIoZSl7dmFyIHQscj0hMSxpPSExLGEsbixvO2lmKG89ZS5pbnB1dC5jaGFyQ29kZUF0KGUucG9zaXRpb24pLG8hPT0zMylyZXR1cm4hMTtpZihlLnRhZyE9PW51bGwmJnl0KGUsImR1cGxpY2F0aW9uIG9mIGEgdGFnIHByb3BlcnR5Iiksbz1lLmlucHV0LmNoYXJDb2RlQXQoKytlLnBvc2l0aW9uKSxvPT09NjA/KHI9ITAsbz1lLmlucHV0LmNoYXJDb2RlQXQoKytlLnBvc2l0aW9uKSk6bz09PTMzPyhpPSEwLGE9IiEhIixvPWUuaW5wdXQuY2hhckNvZGVBdCgrK2UucG9zaXRpb24pKTphPSIhIix0PWUucG9zaXRpb24scil7ZG8gbz1lLmlucHV0LmNoYXJDb2RlQXQoKytlLnBvc2l0aW9uKTt3aGlsZShvIT09MCYmbyE9PTYyKTtlLnBvc2l0aW9uPGUubGVuZ3RoPyhuPWUuaW5wdXQuc2xpY2UodCxlLnBvc2l0aW9uKSxvPWUuaW5wdXQuY2hhckNvZGVBdCgrK2UucG9zaXRpb24pKTp5dChlLCJ1bmV4cGVjdGVkIGVuZCBvZiB0aGUgc3RyZWFtIHdpdGhpbiBhIHZlcmJhdGltIHRhZyIpfWVsc2V7Zm9yKDtvIT09MCYmIWduKG8pOylvPT09MzMmJihpP3l0KGUsInRhZyBzdWZmaXggY2Fubm90IGNvbnRhaW4gZXhjbGFtYXRpb24gbWFya3MiKTooYT1lLmlucHV0LnNsaWNlKHQtMSxlLnBvc2l0aW9uKzEpLGh3ZS50ZXN0KGEpfHx5dChlLCJuYW1lZCB0YWcgaGFuZGxlIGNhbm5vdCBjb250YWluIHN1Y2ggY2hhcmFjdGVycyIpLGk9ITAsdD1lLnBvc2l0aW9uKzEpKSxvPWUuaW5wdXQuY2hhckNvZGVBdCgrK2UucG9zaXRpb24pO249ZS5pbnB1dC5zbGljZSh0LGUucG9zaXRpb24pLHh4ci50ZXN0KG4pJiZ5dChlLCJ0YWcgc3VmZml4IGNhbm5vdCBjb250YWluIGZsb3cgaW5kaWNhdG9yIGNoYXJhY3RlcnMiKX1yZXR1cm4gbiYmIWZ3ZS50ZXN0KG4pJiZ5dChlLCJ0YWcgbmFtZSBjYW5ub3QgY29udGFpbiBzdWNoIGNoYXJhY3RlcnM6ICIrbikscj9lLnRhZz1uOm0wLmNhbGwoZS50YWdNYXAsYSk/ZS50YWc9ZS50YWdNYXBbYV0rbjphPT09IiEiP2UudGFnPSIhIituOmE9PT0iISEiP2UudGFnPSJ0YWc6eWFtbC5vcmcsMjAwMjoiK246eXQoZSwndW5kZWNsYXJlZCB0YWcgaGFuZGxlICInK2ErJyInKSwhMH1mdW5jdGlvbiBFeHIoZSl7dmFyIHQscjtpZihyPWUuaW5wdXQuY2hhckNvZGVBdChlLnBvc2l0aW9uKSxyIT09MzgpcmV0dXJuITE7Zm9yKGUuYW5jaG9yIT09bnVsbCYmeXQoZSwiZHVwbGljYXRpb24gb2YgYW4gYW5jaG9yIHByb3BlcnR5Iikscj1lLmlucHV0LmNoYXJDb2RlQXQoKytlLnBvc2l0aW9uKSx0PWUucG9zaXRpb247ciE9PTAmJiFnbihyKSYmIWh1KHIpOylyPWUuaW5wdXQuY2hhckNvZGVBdCgrK2UucG9zaXRpb24pO3JldHVybiBlLnBvc2l0aW9uPT09dCYmeXQoZSwibmFtZSBvZiBhbiBhbmNob3Igbm9kZSBtdXN0IGNvbnRhaW4gYXQgbGVhc3Qgb25lIGNoYXJhY3RlciIpLGUuYW5jaG9yPWUuaW5wdXQuc2xpY2UodCxlLnBvc2l0aW9uKSwhMH1mdW5jdGlvbiAkeHIoZSl7dmFyIHQscixpO2lmKGk9ZS5pbnB1dC5jaGFyQ29kZUF0KGUucG9zaXRpb24pLGkhPT00MilyZXR1cm4hMTtmb3IoaT1lLmlucHV0LmNoYXJDb2RlQXQoKytlLnBvc2l0aW9uKSx0PWUucG9zaXRpb247aSE9PTAmJiFnbihpKSYmIWh1KGkpOylpPWUuaW5wdXQuY2hhckNvZGVBdCgrK2UucG9zaXRpb24pO3JldHVybiBlLnBvc2l0aW9uPT09dCYmeXQoZSwibmFtZSBvZiBhbiBhbGlhcyBub2RlIG11c3QgY29udGFpbiBhdCBsZWFzdCBvbmUgY2hhcmFjdGVyIikscj1lLmlucHV0LnNsaWNlKHQsZS5wb3NpdGlvbiksbTAuY2FsbChlLmFuY2hvck1hcCxyKXx8eXQoZSwndW5pZGVudGlmaWVkIGFsaWFzICInK3IrJyInKSxlLnJlc3VsdD1lLmFuY2hvck1hcFtyXSxKMShlLCEwLC0xKSwhMH1mdW5jdGlvbiBtdShlLHQscixpLGEpe3ZhciBuLG8scyxsPTEsYz0hMSx1PSExLGQsaCxmLHgsdjtpZihlLmxpc3RlbmVyIT09bnVsbCYmZS5saXN0ZW5lcigib3BlbiIsZSksZS50YWc9bnVsbCxlLmFuY2hvcj1udWxsLGUua2luZD1udWxsLGUucmVzdWx0PW51bGwsbj1vPXM9ZU09PT1yfHx1d2U9PT1yLGkmJkoxKGUsITAsLTEpJiYoYz0hMCxlLmxpbmVJbmRlbnQ+dD9sPTE6ZS5saW5lSW5kZW50PT09dD9sPTA6ZS5saW5lSW5kZW50PHQmJihsPS0xKSksbD09PTEpZm9yKDtEeHIoZSl8fEV4cihlKTspSjEoZSwhMCwtMSk/KGM9ITAscz1uLGUubGluZUluZGVudD50P2w9MTplLmxpbmVJbmRlbnQ9PT10P2w9MDplLmxpbmVJbmRlbnQ8dCYmKGw9LTEpKTpzPSExO2lmKHMmJihzPWN8fGEpLChsPT09MXx8ZU09PT1yKSYmKEt3PT09cnx8ZHdlPT09cj94PXQ6eD10KzEsdj1lLnBvc2l0aW9uLWUubGluZVN0YXJ0LGw9PT0xP3MmJihrd2UoZSx2KXx8QXhyKGUsdix4KSl8fF94cihlLHgpP3U9ITA6KG8mJkx4cihlLHgpfHxDeHIoZSx4KXx8VHhyKGUseCk/dT0hMDokeHIoZSk/KHU9ITAsKGUudGFnIT09bnVsbHx8ZS5hbmNob3IhPT1udWxsKSYmeXQoZSwiYWxpYXMgbm9kZSBzaG91bGQgbm90IGhhdmUgYW55IHByb3BlcnRpZXMiKSk6enhyKGUseCxLdz09PXIpJiYodT0hMCxlLnRhZz09PW51bGwmJihlLnRhZz0iPyIpKSxlLmFuY2hvciE9PW51bGwmJihlLmFuY2hvck1hcFtlLmFuY2hvcl09ZS5yZXN1bHQpKTpsPT09MCYmKHU9cyYma3dlKGUsdikpKSxlLnRhZyE9PW51bGwmJmUudGFnIT09IiEiKWlmKGUudGFnPT09Ij8iKXtmb3IoZS5yZXN1bHQhPT1udWxsJiZlLmtpbmQhPT0ic2NhbGFyIiYmeXQoZSwndW5hY2NlcHRhYmxlIG5vZGUga2luZCBmb3IgITw/PiB0YWc7IGl0IHNob3VsZCBiZSAic2NhbGFyIiwgbm90ICInK2Uua2luZCsnIicpLGQ9MCxoPWUuaW1wbGljaXRUeXBlcy5sZW5ndGg7ZDxoO2QrPTEpaWYoZj1lLmltcGxpY2l0VHlwZXNbZF0sZi5yZXNvbHZlKGUucmVzdWx0KSl7ZS5yZXN1bHQ9Zi5jb25zdHJ1Y3QoZS5yZXN1bHQpLGUudGFnPWYudGFnLGUuYW5jaG9yIT09bnVsbCYmKGUuYW5jaG9yTWFwW2UuYW5jaG9yXT1lLnJlc3VsdCk7YnJlYWt9fWVsc2UgbTAuY2FsbChlLnR5cGVNYXBbZS5raW5kfHwiZmFsbGJhY2siXSxlLnRhZyk/KGY9ZS50eXBlTWFwW2Uua2luZHx8ImZhbGxiYWNrIl1bZS50YWddLGUucmVzdWx0IT09bnVsbCYmZi5raW5kIT09ZS5raW5kJiZ5dChlLCJ1bmFjY2VwdGFibGUgbm9kZSBraW5kIGZvciAhPCIrZS50YWcrJz4gdGFnOyBpdCBzaG91bGQgYmUgIicrZi5raW5kKyciLCBub3QgIicrZS5raW5kKyciJyksZi5yZXNvbHZlKGUucmVzdWx0KT8oZS5yZXN1bHQ9Zi5jb25zdHJ1Y3QoZS5yZXN1bHQpLGUuYW5jaG9yIT09bnVsbCYmKGUuYW5jaG9yTWFwW2UuYW5jaG9yXT1lLnJlc3VsdCkpOnl0KGUsImNhbm5vdCByZXNvbHZlIGEgbm9kZSB3aXRoICE8IitlLnRhZysiPiBleHBsaWNpdCB0YWciKSk6eXQoZSwidW5rbm93biB0YWcgITwiK2UudGFnKyI+Iik7cmV0dXJuIGUubGlzdGVuZXIhPT1udWxsJiZlLmxpc3RlbmVyKCJjbG9zZSIsZSksZS50YWchPT1udWxsfHxlLmFuY2hvciE9PW51bGx8fHV9ZnVuY3Rpb24gSXhyKGUpe3ZhciB0PWUucG9zaXRpb24scixpLGEsbj0hMSxvO2ZvcihlLnZlcnNpb249bnVsbCxlLmNoZWNrTGluZUJyZWFrcz1lLmxlZ2FjeSxlLnRhZ01hcD17fSxlLmFuY2hvck1hcD17fTsobz1lLmlucHV0LmNoYXJDb2RlQXQoZS5wb3NpdGlvbikpIT09MCYmKEoxKGUsITAsLTEpLG89ZS5pbnB1dC5jaGFyQ29kZUF0KGUucG9zaXRpb24pLCEoZS5saW5lSW5kZW50PjB8fG8hPT0zNykpOyl7Zm9yKG49ITAsbz1lLmlucHV0LmNoYXJDb2RlQXQoKytlLnBvc2l0aW9uKSxyPWUucG9zaXRpb247byE9PTAmJiFnbihvKTspbz1lLmlucHV0LmNoYXJDb2RlQXQoKytlLnBvc2l0aW9uKTtmb3IoaT1lLmlucHV0LnNsaWNlKHIsZS5wb3NpdGlvbiksYT1bXSxpLmxlbmd0aDwxJiZ5dChlLCJkaXJlY3RpdmUgbmFtZSBtdXN0IG5vdCBiZSBsZXNzIHRoYW4gb25lIGNoYXJhY3RlciBpbiBsZW5ndGgiKTtvIT09MDspe2Zvcig7QjMobyk7KW89ZS5pbnB1dC5jaGFyQ29kZUF0KCsrZS5wb3NpdGlvbik7aWYobz09PTM1KXtkbyBvPWUuaW5wdXQuY2hhckNvZGVBdCgrK2UucG9zaXRpb24pO3doaWxlKG8hPT0wJiYhY3MobykpO2JyZWFrfWlmKGNzKG8pKWJyZWFrO2ZvcihyPWUucG9zaXRpb247byE9PTAmJiFnbihvKTspbz1lLmlucHV0LmNoYXJDb2RlQXQoKytlLnBvc2l0aW9uKTthLnB1c2goZS5pbnB1dC5zbGljZShyLGUucG9zaXRpb24pKX1vIT09MCYmTmooZSksbTAuY2FsbCh3d2UsaSk/d3dlW2ldKGUsaSxhKTp0TShlLCd1bmtub3duIGRvY3VtZW50IGRpcmVjdGl2ZSAiJytpKyciJyl9aWYoSjEoZSwhMCwtMSksZS5saW5lSW5kZW50PT09MCYmZS5pbnB1dC5jaGFyQ29kZUF0KGUucG9zaXRpb24pPT09NDUmJmUuaW5wdXQuY2hhckNvZGVBdChlLnBvc2l0aW9uKzEpPT09NDUmJmUuaW5wdXQuY2hhckNvZGVBdChlLnBvc2l0aW9uKzIpPT09NDU/KGUucG9zaXRpb24rPTMsSjEoZSwhMCwtMSkpOm4mJnl0KGUsImRpcmVjdGl2ZXMgZW5kIG1hcmsgaXMgZXhwZWN0ZWQiKSxtdShlLGUubGluZUluZGVudC0xLGVNLCExLCEwKSxKMShlLCEwLC0xKSxlLmNoZWNrTGluZUJyZWFrcyYmdnhyLnRlc3QoZS5pbnB1dC5zbGljZSh0LGUucG9zaXRpb24pKSYmdE0oZSwibm9uLUFTQ0lJIGxpbmUgYnJlYWtzIGFyZSBpbnRlcnByZXRlZCBhcyBjb250ZW50IiksZS5kb2N1bWVudHMucHVzaChlLnJlc3VsdCksZS5wb3NpdGlvbj09PWUubGluZVN0YXJ0JiZyTShlKSl7ZS5pbnB1dC5jaGFyQ29kZUF0KGUucG9zaXRpb24pPT09NDYmJihlLnBvc2l0aW9uKz0zLEoxKGUsITAsLTEpKTtyZXR1cm59aWYoZS5wb3NpdGlvbjxlLmxlbmd0aC0xKXl0KGUsImVuZCBvZiB0aGUgc3RyZWFtIG9yIGEgZG9jdW1lbnQgc2VwYXJhdG9yIGlzIGV4cGVjdGVkIik7ZWxzZSByZXR1cm59ZnVuY3Rpb24gU3dlKGUsdCl7ZT1TdHJpbmcoZSksdD10fHx7fSxlLmxlbmd0aCE9PTAmJihlLmNoYXJDb2RlQXQoZS5sZW5ndGgtMSkhPT0xMCYmZS5jaGFyQ29kZUF0KGUubGVuZ3RoLTEpIT09MTMmJihlKz1gCmApLGUuY2hhckNvZGVBdCgwKT09PTY1Mjc5JiYoZT1lLnNsaWNlKDEpKSk7dmFyIHI9bmV3IFN4cihlLHQpLGk9ZS5pbmRleE9mKCJcMCIpO2ZvcihpIT09LTEmJihyLnBvc2l0aW9uPWkseXQociwibnVsbCBieXRlIGlzIG5vdCBhbGxvd2VkIGluIGlucHV0IikpLHIuaW5wdXQrPSJcMCI7ci5pbnB1dC5jaGFyQ29kZUF0KHIucG9zaXRpb24pPT09MzI7KXIubGluZUluZGVudCs9MSxyLnBvc2l0aW9uKz0xO2Zvcig7ci5wb3NpdGlvbjxyLmxlbmd0aC0xOylJeHIocik7cmV0dXJuIHIuZG9jdW1lbnRzfWZ1bmN0aW9uIHp3ZShlLHQscil7dCE9PW51bGwmJnR5cGVvZiB0PT0ib2JqZWN0IiYmdHlwZW9mIHI+InUiJiYocj10LHQ9bnVsbCk7dmFyIGk9U3dlKGUscik7aWYodHlwZW9mIHQhPSJmdW5jdGlvbiIpcmV0dXJuIGk7Zm9yKHZhciBhPTAsbj1pLmxlbmd0aDthPG47YSs9MSl0KGlbYV0pfWZ1bmN0aW9uIEN3ZShlLHQpe3ZhciByPVN3ZShlLHQpO2lmKHIubGVuZ3RoIT09MCl7aWYoci5sZW5ndGg9PT0xKXJldHVybiByWzBdO3Rocm93IG5ldyBsd2UoImV4cGVjdGVkIGEgc2luZ2xlIGRvY3VtZW50IGluIHRoZSBzdHJlYW0sIGJ1dCBmb3VuZCBtb3JlIil9fWZ1bmN0aW9uIFB4cihlLHQscil7cmV0dXJuIHR5cGVvZiB0PT0ib2JqZWN0IiYmdCE9PW51bGwmJnR5cGVvZiByPiJ1IiYmKHI9dCx0PW51bGwpLHp3ZShlLHQsTGwuZXh0ZW5kKHtzY2hlbWE6Y3dlfSxyKSl9ZnVuY3Rpb24gTnhyKGUsdCl7cmV0dXJuIEN3ZShlLExsLmV4dGVuZCh7c2NoZW1hOmN3ZX0sdCkpfW43LmV4cG9ydHMubG9hZEFsbD16d2UsbjcuZXhwb3J0cy5sb2FkPUN3ZSxuNy5leHBvcnRzLnNhZmVMb2FkQWxsPVB4cixuNy5leHBvcnRzLnNhZmVMb2FkPU54cjt2YXIgSDN9KTt2YXIgWHdlPWplKChPRTEsSGopPT57InVzZSBzdHJpY3QiO3ZhciBvNz1GMygpLHM3PWR1KCksRnhyPWE3KCksT3hyPXB1KCksX3dlPU9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcsTHdlPU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHksUnhyPTksbDc9MTAsQnhyPTEzLEh4cj0zMixxeHI9MzMsanhyPTM0LEF3ZT0zNSxWeHI9MzcsVXhyPTM4LFd4cj0zOSxHeHI9NDIsRHdlPTQ0LFl4cj00NSxFd2U9NTgsWnhyPTYxLFh4cj02MixReHI9NjMsSnhyPTY0LCR3ZT05MSxJd2U9OTMsS3hyPTk2LFB3ZT0xMjMsZXlyPTEyNCxOd2U9MTI1LGJhPXt9O2JhWzBdPSJcXDAiLGJhWzddPSJcXGEiLGJhWzhdPSJcXGIiLGJhWzldPSJcXHQiLGJhWzEwXT0iXFxuIixiYVsxMV09IlxcdiIsYmFbMTJdPSJcXGYiLGJhWzEzXT0iXFxyIixiYVsyN109IlxcZSIsYmFbMzRdPSdcXCInLGJhWzkyXT0iXFxcXCIsYmFbMTMzXT0iXFxOIixiYVsxNjBdPSJcXF8iLGJhWzgyMzJdPSJcXEwiLGJhWzgyMzNdPSJcXFAiO3ZhciB0eXI9WyJ5IiwiWSIsInllcyIsIlllcyIsIllFUyIsIm9uIiwiT24iLCJPTiIsIm4iLCJOIiwibm8iLCJObyIsIk5PIiwib2ZmIiwiT2ZmIiwiT0ZGIl07ZnVuY3Rpb24gcnlyKGUsdCl7dmFyIHIsaSxhLG4sbyxzLGw7aWYodD09PW51bGwpcmV0dXJue307Zm9yKHI9e30saT1PYmplY3Qua2V5cyh0KSxhPTAsbj1pLmxlbmd0aDthPG47YSs9MSlvPWlbYV0scz1TdHJpbmcodFtvXSksby5zbGljZSgwLDIpPT09IiEhIiYmKG89InRhZzp5YW1sLm9yZywyMDAyOiIrby5zbGljZSgyKSksbD1lLmNvbXBpbGVkVHlwZU1hcC5mYWxsYmFja1tvXSxsJiZMd2UuY2FsbChsLnN0eWxlQWxpYXNlcyxzKSYmKHM9bC5zdHlsZUFsaWFzZXNbc10pLHJbb109cztyZXR1cm4gcn1mdW5jdGlvbiBGd2UoZSl7dmFyIHQscixpO2lmKHQ9ZS50b1N0cmluZygxNikudG9VcHBlckNhc2UoKSxlPD0yNTUpcj0ieCIsaT0yO2Vsc2UgaWYoZTw9NjU1MzUpcj0idSIsaT00O2Vsc2UgaWYoZTw9NDI5NDk2NzI5NSlyPSJVIixpPTg7ZWxzZSB0aHJvdyBuZXcgczcoImNvZGUgcG9pbnQgd2l0aGluIGEgc3RyaW5nIG1heSBub3QgYmUgZ3JlYXRlciB0aGFuIDB4RkZGRkZGRkYiKTtyZXR1cm4iXFwiK3IrbzcucmVwZWF0KCIwIixpLXQubGVuZ3RoKSt0fWZ1bmN0aW9uIGl5cihlKXt0aGlzLnNjaGVtYT1lLnNjaGVtYXx8RnhyLHRoaXMuaW5kZW50PU1hdGgubWF4KDEsZS5pbmRlbnR8fDIpLHRoaXMubm9BcnJheUluZGVudD1lLm5vQXJyYXlJbmRlbnR8fCExLHRoaXMuc2tpcEludmFsaWQ9ZS5za2lwSW52YWxpZHx8ITEsdGhpcy5mbG93TGV2ZWw9bzcuaXNOb3RoaW5nKGUuZmxvd0xldmVsKT8tMTplLmZsb3dMZXZlbCx0aGlzLnN0eWxlTWFwPXJ5cih0aGlzLnNjaGVtYSxlLnN0eWxlc3x8bnVsbCksdGhpcy5zb3J0S2V5cz1lLnNvcnRLZXlzfHwhMSx0aGlzLmxpbmVXaWR0aD1lLmxpbmVXaWR0aHx8ODAsdGhpcy5ub1JlZnM9ZS5ub1JlZnN8fCExLHRoaXMubm9Db21wYXRNb2RlPWUubm9Db21wYXRNb2RlfHwhMSx0aGlzLmNvbmRlbnNlRmxvdz1lLmNvbmRlbnNlRmxvd3x8ITEsdGhpcy5pbXBsaWNpdFR5cGVzPXRoaXMuc2NoZW1hLmNvbXBpbGVkSW1wbGljaXQsdGhpcy5leHBsaWNpdFR5cGVzPXRoaXMuc2NoZW1hLmNvbXBpbGVkRXhwbGljaXQsdGhpcy50YWc9bnVsbCx0aGlzLnJlc3VsdD0iIix0aGlzLmR1cGxpY2F0ZXM9W10sdGhpcy51c2VkRHVwbGljYXRlcz1udWxsfWZ1bmN0aW9uIE93ZShlLHQpe2Zvcih2YXIgcj1vNy5yZXBlYXQoIiAiLHQpLGk9MCxhPS0xLG49IiIsbyxzPWUubGVuZ3RoO2k8czspYT1lLmluZGV4T2YoYApgLGkpLGE9PT0tMT8obz1lLnNsaWNlKGkpLGk9cyk6KG89ZS5zbGljZShpLGErMSksaT1hKzEpLG8ubGVuZ3RoJiZvIT09YApgJiYobis9ciksbis9bztyZXR1cm4gbn1mdW5jdGlvbiBPaihlLHQpe3JldHVybmAKYCtvNy5yZXBlYXQoIiAiLGUuaW5kZW50KnQpfWZ1bmN0aW9uIGF5cihlLHQpe3ZhciByLGksYTtmb3Iocj0wLGk9ZS5pbXBsaWNpdFR5cGVzLmxlbmd0aDtyPGk7cis9MSlpZihhPWUuaW1wbGljaXRUeXBlc1tyXSxhLnJlc29sdmUodCkpcmV0dXJuITA7cmV0dXJuITF9ZnVuY3Rpb24gUmooZSl7cmV0dXJuIGU9PT1IeHJ8fGU9PT1SeHJ9ZnVuY3Rpb24gZ3UoZSl7cmV0dXJuIDMyPD1lJiZlPD0xMjZ8fDE2MTw9ZSYmZTw9NTUyOTUmJmUhPT04MjMyJiZlIT09ODIzM3x8NTczNDQ8PWUmJmU8PTY1NTMzJiZlIT09NjUyNzl8fDY1NTM2PD1lJiZlPD0xMTE0MTExfWZ1bmN0aW9uIG55cihlKXtyZXR1cm4gZ3UoZSkmJiFSaihlKSYmZSE9PTY1Mjc5JiZlIT09QnhyJiZlIT09bDd9ZnVuY3Rpb24gUndlKGUsdCl7cmV0dXJuIGd1KGUpJiZlIT09NjUyNzkmJmUhPT1Ed2UmJmUhPT0kd2UmJmUhPT1Jd2UmJmUhPT1Qd2UmJmUhPT1Od2UmJmUhPT1Fd2UmJihlIT09QXdlfHx0JiZueXIodCkpfWZ1bmN0aW9uIG95cihlKXtyZXR1cm4gZ3UoZSkmJmUhPT02NTI3OSYmIVJqKGUpJiZlIT09WXhyJiZlIT09UXhyJiZlIT09RXdlJiZlIT09RHdlJiZlIT09JHdlJiZlIT09SXdlJiZlIT09UHdlJiZlIT09TndlJiZlIT09QXdlJiZlIT09VXhyJiZlIT09R3hyJiZlIT09cXhyJiZlIT09ZXlyJiZlIT09WnhyJiZlIT09WHhyJiZlIT09V3hyJiZlIT09anhyJiZlIT09VnhyJiZlIT09SnhyJiZlIT09S3hyfWZ1bmN0aW9uIEJ3ZShlKXt2YXIgdD0vXlxuKiAvO3JldHVybiB0LnRlc3QoZSl9dmFyIEh3ZT0xLHF3ZT0yLGp3ZT0zLFZ3ZT00LGlNPTU7ZnVuY3Rpb24gc3lyKGUsdCxyLGksYSl7dmFyIG4sbyxzLGw9ITEsYz0hMSx1PWkhPT0tMSxkPS0xLGg9b3lyKGUuY2hhckNvZGVBdCgwKSkmJiFSaihlLmNoYXJDb2RlQXQoZS5sZW5ndGgtMSkpO2lmKHQpZm9yKG49MDtuPGUubGVuZ3RoO24rKyl7aWYobz1lLmNoYXJDb2RlQXQobiksIWd1KG8pKXJldHVybiBpTTtzPW4+MD9lLmNoYXJDb2RlQXQobi0xKTpudWxsLGg9aCYmUndlKG8scyl9ZWxzZXtmb3Iobj0wO248ZS5sZW5ndGg7bisrKXtpZihvPWUuY2hhckNvZGVBdChuKSxvPT09bDcpbD0hMCx1JiYoYz1jfHxuLWQtMT5pJiZlW2QrMV0hPT0iICIsZD1uKTtlbHNlIGlmKCFndShvKSlyZXR1cm4gaU07cz1uPjA/ZS5jaGFyQ29kZUF0KG4tMSk6bnVsbCxoPWgmJlJ3ZShvLHMpfWM9Y3x8dSYmbi1kLTE+aSYmZVtkKzFdIT09IiAifXJldHVybiFsJiYhYz9oJiYhYShlKT9Id2U6cXdlOnI+OSYmQndlKGUpP2lNOmM/VndlOmp3ZX1mdW5jdGlvbiBseXIoZSx0LHIsaSl7ZS5kdW1wPShmdW5jdGlvbigpe2lmKHQubGVuZ3RoPT09MClyZXR1cm4iJyciO2lmKCFlLm5vQ29tcGF0TW9kZSYmdHlyLmluZGV4T2YodCkhPT0tMSlyZXR1cm4iJyIrdCsiJyI7dmFyIGE9ZS5pbmRlbnQqTWF0aC5tYXgoMSxyKSxuPWUubGluZVdpZHRoPT09LTE/LTE6TWF0aC5tYXgoTWF0aC5taW4oZS5saW5lV2lkdGgsNDApLGUubGluZVdpZHRoLWEpLG89aXx8ZS5mbG93TGV2ZWw+LTEmJnI+PWUuZmxvd0xldmVsO2Z1bmN0aW9uIHMobCl7cmV0dXJuIGF5cihlLGwpfXN3aXRjaChzeXIodCxvLGUuaW5kZW50LG4scykpe2Nhc2UgSHdlOnJldHVybiB0O2Nhc2UgcXdlOnJldHVybiInIit0LnJlcGxhY2UoLycvZywiJyciKSsiJyI7Y2FzZSBqd2U6cmV0dXJuInwiK1V3ZSh0LGUuaW5kZW50KStXd2UoT3dlKHQsYSkpO2Nhc2UgVndlOnJldHVybiI+IitVd2UodCxlLmluZGVudCkrV3dlKE93ZShjeXIodCxuKSxhKSk7Y2FzZSBpTTpyZXR1cm4nIicrZHlyKHQsbikrJyInO2RlZmF1bHQ6dGhyb3cgbmV3IHM3KCJpbXBvc3NpYmxlIGVycm9yOiBpbnZhbGlkIHNjYWxhciBzdHlsZSIpfX0pKCl9ZnVuY3Rpb24gVXdlKGUsdCl7dmFyIHI9QndlKGUpP1N0cmluZyh0KToiIixpPWVbZS5sZW5ndGgtMV09PT1gCmAsYT1pJiYoZVtlLmxlbmd0aC0yXT09PWAKYHx8ZT09PWAKYCksbj1hPyIrIjppPyIiOiItIjtyZXR1cm4gcituK2AKYH1mdW5jdGlvbiBXd2UoZSl7cmV0dXJuIGVbZS5sZW5ndGgtMV09PT1gCmA/ZS5zbGljZSgwLC0xKTplfWZ1bmN0aW9uIGN5cihlLHQpe2Zvcih2YXIgcj0vKFxuKykoW15cbl0qKS9nLGk9KGZ1bmN0aW9uKCl7dmFyIGM9ZS5pbmRleE9mKGAKYCk7cmV0dXJuIGM9YyE9PS0xP2M6ZS5sZW5ndGgsci5sYXN0SW5kZXg9YyxHd2UoZS5zbGljZSgwLGMpLHQpfSkoKSxhPWVbMF09PT1gCmB8fGVbMF09PT0iICIsbixvO289ci5leGVjKGUpOyl7dmFyIHM9b1sxXSxsPW9bMl07bj1sWzBdPT09IiAiLGkrPXMrKCFhJiYhbiYmbCE9PSIiP2AKYDoiIikrR3dlKGwsdCksYT1ufXJldHVybiBpfWZ1bmN0aW9uIEd3ZShlLHQpe2lmKGU9PT0iInx8ZVswXT09PSIgIilyZXR1cm4gZTtmb3IodmFyIHI9LyBbXiBdL2csaSxhPTAsbixvPTAscz0wLGw9IiI7aT1yLmV4ZWMoZSk7KXM9aS5pbmRleCxzLWE+dCYmKG49bz5hP286cyxsKz1gCmArZS5zbGljZShhLG4pLGE9bisxKSxvPXM7cmV0dXJuIGwrPWAKYCxlLmxlbmd0aC1hPnQmJm8+YT9sKz1lLnNsaWNlKGEsbykrYApgK2Uuc2xpY2UobysxKTpsKz1lLnNsaWNlKGEpLGwuc2xpY2UoMSl9ZnVuY3Rpb24gZHlyKGUpe2Zvcih2YXIgdD0iIixyLGksYSxuPTA7bjxlLmxlbmd0aDtuKyspe2lmKHI9ZS5jaGFyQ29kZUF0KG4pLHI+PTU1Mjk2JiZyPD01NjMxOSYmKGk9ZS5jaGFyQ29kZUF0KG4rMSksaT49NTYzMjAmJmk8PTU3MzQzKSl7dCs9RndlKChyLTU1Mjk2KSoxMDI0K2ktNTYzMjArNjU1MzYpLG4rKztjb250aW51ZX1hPWJhW3JdLHQrPSFhJiZndShyKT9lW25dOmF8fEZ3ZShyKX1yZXR1cm4gdH1mdW5jdGlvbiB1eXIoZSx0LHIpe3ZhciBpPSIiLGE9ZS50YWcsbixvO2ZvcihuPTAsbz1yLmxlbmd0aDtuPG87bis9MSlxMyhlLHQscltuXSwhMSwhMSkmJihuIT09MCYmKGkrPSIsIisoZS5jb25kZW5zZUZsb3c/IiI6IiAiKSksaSs9ZS5kdW1wKTtlLnRhZz1hLGUuZHVtcD0iWyIraSsiXSJ9ZnVuY3Rpb24gcHlyKGUsdCxyLGkpe3ZhciBhPSIiLG49ZS50YWcsbyxzO2ZvcihvPTAscz1yLmxlbmd0aDtvPHM7bys9MSlxMyhlLHQrMSxyW29dLCEwLCEwKSYmKCghaXx8byE9PTApJiYoYSs9T2ooZSx0KSksZS5kdW1wJiZsNz09PWUuZHVtcC5jaGFyQ29kZUF0KDApP2ErPSItIjphKz0iLSAiLGErPWUuZHVtcCk7ZS50YWc9bixlLmR1bXA9YXx8IltdIn1mdW5jdGlvbiBoeXIoZSx0LHIpe3ZhciBpPSIiLGE9ZS50YWcsbj1PYmplY3Qua2V5cyhyKSxvLHMsbCxjLHU7Zm9yKG89MCxzPW4ubGVuZ3RoO288cztvKz0xKXU9IiIsbyE9PTAmJih1Kz0iLCAiKSxlLmNvbmRlbnNlRmxvdyYmKHUrPSciJyksbD1uW29dLGM9cltsXSxxMyhlLHQsbCwhMSwhMSkmJihlLmR1bXAubGVuZ3RoPjEwMjQmJih1Kz0iPyAiKSx1Kz1lLmR1bXArKGUuY29uZGVuc2VGbG93PyciJzoiIikrIjoiKyhlLmNvbmRlbnNlRmxvdz8iIjoiICIpLHEzKGUsdCxjLCExLCExKSYmKHUrPWUuZHVtcCxpKz11KSk7ZS50YWc9YSxlLmR1bXA9InsiK2krIn0ifWZ1bmN0aW9uIGZ5cihlLHQscixpKXt2YXIgYT0iIixuPWUudGFnLG89T2JqZWN0LmtleXMocikscyxsLGMsdSxkLGg7aWYoZS5zb3J0S2V5cz09PSEwKW8uc29ydCgpO2Vsc2UgaWYodHlwZW9mIGUuc29ydEtleXM9PSJmdW5jdGlvbiIpby5zb3J0KGUuc29ydEtleXMpO2Vsc2UgaWYoZS5zb3J0S2V5cyl0aHJvdyBuZXcgczcoInNvcnRLZXlzIG11c3QgYmUgYSBib29sZWFuIG9yIGEgZnVuY3Rpb24iKTtmb3Iocz0wLGw9by5sZW5ndGg7czxsO3MrPTEpaD0iIiwoIWl8fHMhPT0wKSYmKGgrPU9qKGUsdCkpLGM9b1tzXSx1PXJbY10scTMoZSx0KzEsYywhMCwhMCwhMCkmJihkPWUudGFnIT09bnVsbCYmZS50YWchPT0iPyJ8fGUuZHVtcCYmZS5kdW1wLmxlbmd0aD4xMDI0LGQmJihlLmR1bXAmJmw3PT09ZS5kdW1wLmNoYXJDb2RlQXQoMCk/aCs9Ij8iOmgrPSI/ICIpLGgrPWUuZHVtcCxkJiYoaCs9T2ooZSx0KSkscTMoZSx0KzEsdSwhMCxkKSYmKGUuZHVtcCYmbDc9PT1lLmR1bXAuY2hhckNvZGVBdCgwKT9oKz0iOiI6aCs9IjogIixoKz1lLmR1bXAsYSs9aCkpO2UudGFnPW4sZS5kdW1wPWF8fCJ7fSJ9ZnVuY3Rpb24gWXdlKGUsdCxyKXt2YXIgaSxhLG4sbyxzLGw7Zm9yKGE9cj9lLmV4cGxpY2l0VHlwZXM6ZS5pbXBsaWNpdFR5cGVzLG49MCxvPWEubGVuZ3RoO248bztuKz0xKWlmKHM9YVtuXSwocy5pbnN0YW5jZU9mfHxzLnByZWRpY2F0ZSkmJighcy5pbnN0YW5jZU9mfHx0eXBlb2YgdD09Im9iamVjdCImJnQgaW5zdGFuY2VvZiBzLmluc3RhbmNlT2YpJiYoIXMucHJlZGljYXRlfHxzLnByZWRpY2F0ZSh0KSkpe2lmKGUudGFnPXI/cy50YWc6Ij8iLHMucmVwcmVzZW50KXtpZihsPWUuc3R5bGVNYXBbcy50YWddfHxzLmRlZmF1bHRTdHlsZSxfd2UuY2FsbChzLnJlcHJlc2VudCk9PT0iW29iamVjdCBGdW5jdGlvbl0iKWk9cy5yZXByZXNlbnQodCxsKTtlbHNlIGlmKEx3ZS5jYWxsKHMucmVwcmVzZW50LGwpKWk9cy5yZXByZXNlbnRbbF0odCxsKTtlbHNlIHRocm93IG5ldyBzNygiITwiK3MudGFnKyc+IHRhZyByZXNvbHZlciBhY2NlcHRzIG5vdCAiJytsKyciIHN0eWxlJyk7ZS5kdW1wPWl9cmV0dXJuITB9cmV0dXJuITF9ZnVuY3Rpb24gcTMoZSx0LHIsaSxhLG4pe2UudGFnPW51bGwsZS5kdW1wPXIsWXdlKGUsciwhMSl8fFl3ZShlLHIsITApO3ZhciBvPV93ZS5jYWxsKGUuZHVtcCk7aSYmKGk9ZS5mbG93TGV2ZWw8MHx8ZS5mbG93TGV2ZWw+dCk7dmFyIHM9bz09PSJbb2JqZWN0IE9iamVjdF0ifHxvPT09IltvYmplY3QgQXJyYXldIixsLGM7aWYocyYmKGw9ZS5kdXBsaWNhdGVzLmluZGV4T2YociksYz1sIT09LTEpLChlLnRhZyE9PW51bGwmJmUudGFnIT09Ij8ifHxjfHxlLmluZGVudCE9PTImJnQ+MCkmJihhPSExKSxjJiZlLnVzZWREdXBsaWNhdGVzW2xdKWUuZHVtcD0iKnJlZl8iK2w7ZWxzZXtpZihzJiZjJiYhZS51c2VkRHVwbGljYXRlc1tsXSYmKGUudXNlZER1cGxpY2F0ZXNbbF09ITApLG89PT0iW29iamVjdCBPYmplY3RdIilpJiZPYmplY3Qua2V5cyhlLmR1bXApLmxlbmd0aCE9PTA/KGZ5cihlLHQsZS5kdW1wLGEpLGMmJihlLmR1bXA9IiZyZWZfIitsK2UuZHVtcCkpOihoeXIoZSx0LGUuZHVtcCksYyYmKGUuZHVtcD0iJnJlZl8iK2wrIiAiK2UuZHVtcCkpO2Vsc2UgaWYobz09PSJbb2JqZWN0IEFycmF5XSIpe3ZhciB1PWUubm9BcnJheUluZGVudCYmdD4wP3QtMTp0O2kmJmUuZHVtcC5sZW5ndGghPT0wPyhweXIoZSx1LGUuZHVtcCxhKSxjJiYoZS5kdW1wPSImcmVmXyIrbCtlLmR1bXApKToodXlyKGUsdSxlLmR1bXApLGMmJihlLmR1bXA9IiZyZWZfIitsKyIgIitlLmR1bXApKX1lbHNlIGlmKG89PT0iW29iamVjdCBTdHJpbmddIillLnRhZyE9PSI/IiYmbHlyKGUsZS5kdW1wLHQsbik7ZWxzZXtpZihlLnNraXBJbnZhbGlkKXJldHVybiExO3Rocm93IG5ldyBzNygidW5hY2NlcHRhYmxlIGtpbmQgb2YgYW4gb2JqZWN0IHRvIGR1bXAgIitvKX1lLnRhZyE9PW51bGwmJmUudGFnIT09Ij8iJiYoZS5kdW1wPSIhPCIrZS50YWcrIj4gIitlLmR1bXApfXJldHVybiEwfWZ1bmN0aW9uIG15cihlLHQpe3ZhciByPVtdLGk9W10sYSxuO2ZvcihCaihlLHIsaSksYT0wLG49aS5sZW5ndGg7YTxuO2ErPTEpdC5kdXBsaWNhdGVzLnB1c2gocltpW2FdXSk7dC51c2VkRHVwbGljYXRlcz1uZXcgQXJyYXkobil9ZnVuY3Rpb24gQmooZSx0LHIpe3ZhciBpLGEsbjtpZihlIT09bnVsbCYmdHlwZW9mIGU9PSJvYmplY3QiKWlmKGE9dC5pbmRleE9mKGUpLGEhPT0tMSlyLmluZGV4T2YoYSk9PT0tMSYmci5wdXNoKGEpO2Vsc2UgaWYodC5wdXNoKGUpLEFycmF5LmlzQXJyYXkoZSkpZm9yKGE9MCxuPWUubGVuZ3RoO2E8bjthKz0xKUJqKGVbYV0sdCxyKTtlbHNlIGZvcihpPU9iamVjdC5rZXlzKGUpLGE9MCxuPWkubGVuZ3RoO2E8bjthKz0xKUJqKGVbaVthXV0sdCxyKX1mdW5jdGlvbiBad2UoZSx0KXt0PXR8fHt9O3ZhciByPW5ldyBpeXIodCk7cmV0dXJuIHIubm9SZWZzfHxteXIoZSxyKSxxMyhyLDAsZSwhMCwhMCk/ci5kdW1wK2AKYDoiIn1mdW5jdGlvbiBneXIoZSx0KXtyZXR1cm4gWndlKGUsbzcuZXh0ZW5kKHtzY2hlbWE6T3hyfSx0KSl9SGouZXhwb3J0cy5kdW1wPVp3ZSxIai5leHBvcnRzLnNhZmVEdW1wPWd5cn0pO3ZhciBKd2U9amUoKFJFMSxUMSk9PnsidXNlIHN0cmljdCI7dmFyIGFNPVR3ZSgpLFF3ZT1Yd2UoKTtmdW5jdGlvbiBuTShlKXtyZXR1cm4gZnVuY3Rpb24oKXt0aHJvdyBuZXcgRXJyb3IoIkZ1bmN0aW9uICIrZSsiIGlzIGRlcHJlY2F0ZWQgYW5kIGNhbm5vdCBiZSB1c2VkLiIpfX1UMS5leHBvcnRzLlR5cGU9dWkoKSxUMS5leHBvcnRzLlNjaGVtYT1PMygpLFQxLmV4cG9ydHMuRkFJTFNBRkVfU0NIRU1BPVF3KCksVDEuZXhwb3J0cy5KU09OX1NDSEVNQT1FaigpLFQxLmV4cG9ydHMuQ09SRV9TQ0hFTUE9JGooKSxUMS5leHBvcnRzLkRFRkFVTFRfU0FGRV9TQ0hFTUE9cHUoKSxUMS5leHBvcnRzLkRFRkFVTFRfRlVMTF9TQ0hFTUE9YTcoKSxUMS5leHBvcnRzLmxvYWQ9YU0ubG9hZCxUMS5leHBvcnRzLmxvYWRBbGw9YU0ubG9hZEFsbCxUMS5leHBvcnRzLnNhZmVMb2FkPWFNLnNhZmVMb2FkLFQxLmV4cG9ydHMuc2FmZUxvYWRBbGw9YU0uc2FmZUxvYWRBbGwsVDEuZXhwb3J0cy5kdW1wPVF3ZS5kdW1wLFQxLmV4cG9ydHMuc2FmZUR1bXA9UXdlLnNhZmVEdW1wLFQxLmV4cG9ydHMuWUFNTEV4Y2VwdGlvbj1kdSgpLFQxLmV4cG9ydHMuTUlOSU1BTF9TQ0hFTUE9UXcoKSxUMS5leHBvcnRzLlNBRkVfU0NIRU1BPXB1KCksVDEuZXhwb3J0cy5ERUZBVUxUX1NDSEVNQT1hNygpLFQxLmV4cG9ydHMuc2Nhbj1uTSgic2NhbiIpLFQxLmV4cG9ydHMucGFyc2U9bk0oInBhcnNlIiksVDEuZXhwb3J0cy5jb21wb3NlPW5NKCJjb21wb3NlIiksVDEuZXhwb3J0cy5hZGRDb25zdHJ1Y3Rvcj1uTSgiYWRkQ29uc3RydWN0b3IiKX0pO3ZhciBlTWU9amUoKEJFMSxLd2UpPT57InVzZSBzdHJpY3QiO3ZhciBieXI9SndlKCk7S3dlLmV4cG9ydHM9YnlyfSk7dmFyIHRNZT1qZShkcz0+eyJ1c2Ugc3RyaWN0Ijt2YXIgdnlyPWRzJiZkcy5fX2NyZWF0ZUJpbmRpbmd8fChPYmplY3QuY3JlYXRlPyhmdW5jdGlvbihlLHQscixpKXtpPT09dm9pZCAwJiYoaT1yKSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZSxpLHtlbnVtZXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiB0W3JdfX0pfSk6KGZ1bmN0aW9uKGUsdCxyLGkpe2k9PT12b2lkIDAmJihpPXIpLGVbaV09dFtyXX0pKSx4eXI9ZHMmJmRzLl9fc2V0TW9kdWxlRGVmYXVsdHx8KE9iamVjdC5jcmVhdGU/KGZ1bmN0aW9uKGUsdCl7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsImRlZmF1bHQiLHtlbnVtZXJhYmxlOiEwLHZhbHVlOnR9KX0pOmZ1bmN0aW9uKGUsdCl7ZS5kZWZhdWx0PXR9KSx5eXI9ZHMmJmRzLl9faW1wb3J0U3Rhcnx8ZnVuY3Rpb24oZSl7aWYoZSYmZS5fX2VzTW9kdWxlKXJldHVybiBlO3ZhciB0PXt9O2lmKGUhPW51bGwpZm9yKHZhciByIGluIGUpciE9PSJkZWZhdWx0IiYmT2JqZWN0Lmhhc093blByb3BlcnR5LmNhbGwoZSxyKSYmdnlyKHQsZSxyKTtyZXR1cm4geHlyKHQsZSksdH07T2JqZWN0LmRlZmluZVByb3BlcnR5KGRzLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxkcy5qc1lhbWw9dm9pZCAwO3ZhciB3eXI9eXlyKGVNZSgpKTtkcy5qc1lhbWw9d3lyfSk7dmFyIGlNZT1qZShwbz0+eyJ1c2Ugc3RyaWN0Ijt2YXIgTXlyPXBvJiZwby5fX2NyZWF0ZUJpbmRpbmd8fChPYmplY3QuY3JlYXRlPyhmdW5jdGlvbihlLHQscixpKXtpPT09dm9pZCAwJiYoaT1yKSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZSxpLHtlbnVtZXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiB0W3JdfX0pfSk6KGZ1bmN0aW9uKGUsdCxyLGkpe2k9PT12b2lkIDAmJihpPXIpLGVbaV09dFtyXX0pKSxreXI9cG8mJnBvLl9fc2V0TW9kdWxlRGVmYXVsdHx8KE9iamVjdC5jcmVhdGU/KGZ1bmN0aW9uKGUsdCl7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsImRlZmF1bHQiLHtlbnVtZXJhYmxlOiEwLHZhbHVlOnR9KX0pOmZ1bmN0aW9uKGUsdCl7ZS5kZWZhdWx0PXR9KSxTeXI9cG8mJnBvLl9faW1wb3J0U3Rhcnx8ZnVuY3Rpb24oZSl7aWYoZSYmZS5fX2VzTW9kdWxlKXJldHVybiBlO3ZhciB0PXt9O2lmKGUhPW51bGwpZm9yKHZhciByIGluIGUpciE9PSJkZWZhdWx0IiYmT2JqZWN0Lmhhc093blByb3BlcnR5LmNhbGwoZSxyKSYmTXlyKHQsZSxyKTtyZXR1cm4ga3lyKHQsZSksdH07T2JqZWN0LmRlZmluZVByb3BlcnR5KHBvLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxwby5vYmplY3RUb1lhbWxTdHJpbmc9cG8ueWFtbFN0cmluZ1RvT2JqZWN0PXZvaWQgMDt2YXIgck1lPVN5cih0TWUoKSk7cG8ueWFtbFN0cmluZ1RvT2JqZWN0PWFzeW5jKGUsdD17fSk9PnJNZS5qc1lhbWwuc2FmZUxvYWQoZSkscG8ub2JqZWN0VG9ZYW1sU3RyaW5nPWFzeW5jKGUsdD17fSk9PnJNZS5qc1lhbWwuc2FmZUR1bXAoZSl9KTtmdW5jdGlvbiBxaihlKXtpZihlKXRocm93IGV9dmFyIGFNZT1wKCgpPT57fSk7dmFyIGhNZT1qZSgoVkUxLHBNZSk9PnsidXNlIHN0cmljdCI7dmFyIG9NPU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHksbk1lPU9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcsb01lPU9iamVjdC5kZWZpbmVQcm9wZXJ0eSxzTWU9T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcixsTWU9ZnVuY3Rpb24odCl7cmV0dXJuIHR5cGVvZiBBcnJheS5pc0FycmF5PT0iZnVuY3Rpb24iP0FycmF5LmlzQXJyYXkodCk6bk1lLmNhbGwodCk9PT0iW29iamVjdCBBcnJheV0ifSxjTWU9ZnVuY3Rpb24odCl7aWYoIXR8fG5NZS5jYWxsKHQpIT09IltvYmplY3QgT2JqZWN0XSIpcmV0dXJuITE7dmFyIHI9b00uY2FsbCh0LCJjb25zdHJ1Y3RvciIpLGk9dC5jb25zdHJ1Y3RvciYmdC5jb25zdHJ1Y3Rvci5wcm90b3R5cGUmJm9NLmNhbGwodC5jb25zdHJ1Y3Rvci5wcm90b3R5cGUsImlzUHJvdG90eXBlT2YiKTtpZih0LmNvbnN0cnVjdG9yJiYhciYmIWkpcmV0dXJuITE7dmFyIGE7Zm9yKGEgaW4gdCk7cmV0dXJuIHR5cGVvZiBhPiJ1Inx8b00uY2FsbCh0LGEpfSxkTWU9ZnVuY3Rpb24odCxyKXtvTWUmJnIubmFtZT09PSJfX3Byb3RvX18iP29NZSh0LHIubmFtZSx7ZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsdmFsdWU6ci5uZXdWYWx1ZSx3cml0YWJsZTohMH0pOnRbci5uYW1lXT1yLm5ld1ZhbHVlfSx1TWU9ZnVuY3Rpb24odCxyKXtpZihyPT09Il9fcHJvdG9fXyIpaWYob00uY2FsbCh0LHIpKXtpZihzTWUpcmV0dXJuIHNNZSh0LHIpLnZhbHVlfWVsc2UgcmV0dXJuO3JldHVybiB0W3JdfTtwTWUuZXhwb3J0cz1mdW5jdGlvbiBlKCl7dmFyIHQscixpLGEsbixvLHM9YXJndW1lbnRzWzBdLGw9MSxjPWFyZ3VtZW50cy5sZW5ndGgsdT0hMTtmb3IodHlwZW9mIHM9PSJib29sZWFuIiYmKHU9cyxzPWFyZ3VtZW50c1sxXXx8e30sbD0yKSwocz09bnVsbHx8dHlwZW9mIHMhPSJvYmplY3QiJiZ0eXBlb2YgcyE9ImZ1bmN0aW9uIikmJihzPXt9KTtsPGM7KytsKWlmKHQ9YXJndW1lbnRzW2xdLHQhPW51bGwpZm9yKHIgaW4gdClpPXVNZShzLHIpLGE9dU1lKHQscikscyE9PWEmJih1JiZhJiYoY01lKGEpfHwobj1sTWUoYSkpKT8obj8obj0hMSxvPWkmJmxNZShpKT9pOltdKTpvPWkmJmNNZShpKT9pOnt9LGRNZShzLHtuYW1lOnIsbmV3VmFsdWU6ZSh1LG8sYSl9KSk6dHlwZW9mIGE8InUiJiZkTWUocyx7bmFtZTpyLG5ld1ZhbHVlOmF9KSk7cmV0dXJuIHN9fSk7dmFyIGIwPXAoKCk9Pnt9KTtmdW5jdGlvbiBjNyhlKXtpZih0eXBlb2YgZSE9Im9iamVjdCJ8fGU9PT1udWxsKXJldHVybiExO2xldCB0PU9iamVjdC5nZXRQcm90b3R5cGVPZihlKTtyZXR1cm4odD09PW51bGx8fHQ9PT1PYmplY3QucHJvdG90eXBlfHxPYmplY3QuZ2V0UHJvdG90eXBlT2YodCk9PT1udWxsKSYmIShTeW1ib2wudG9TdHJpbmdUYWcgaW4gZSkmJiEoU3ltYm9sLml0ZXJhdG9yIGluIGUpfXZhciBmTWU9cCgoKT0+e30pO2Z1bmN0aW9uIGpqKCl7bGV0IGU9W10sdD17cnVuOnIsdXNlOml9O3JldHVybiB0O2Z1bmN0aW9uIHIoLi4uYSl7bGV0IG49LTEsbz1hLnBvcCgpO2lmKHR5cGVvZiBvIT0iZnVuY3Rpb24iKXRocm93IG5ldyBUeXBlRXJyb3IoIkV4cGVjdGVkIGZ1bmN0aW9uIGFzIGxhc3QgYXJndW1lbnQsIG5vdCAiK28pO3MobnVsbCwuLi5hKTtmdW5jdGlvbiBzKGwsLi4uYyl7bGV0IHU9ZVsrK25dLGQ9LTE7aWYobCl7byhsKTtyZXR1cm59Zm9yKDsrK2Q8YS5sZW5ndGg7KShjW2RdPT09bnVsbHx8Y1tkXT09PXZvaWQgMCkmJihjW2RdPWFbZF0pO2E9Yyx1P21NZSh1LHMpKC4uLmMpOm8obnVsbCwuLi5jKX19ZnVuY3Rpb24gaShhKXtpZih0eXBlb2YgYSE9ImZ1bmN0aW9uIil0aHJvdyBuZXcgVHlwZUVycm9yKCJFeHBlY3RlZCBgbWlkZGVsd2FyZWAgdG8gYmUgYSBmdW5jdGlvbiwgbm90ICIrYSk7cmV0dXJuIGUucHVzaChhKSx0fX1mdW5jdGlvbiBtTWUoZSx0KXtsZXQgcjtyZXR1cm4gaTtmdW5jdGlvbiBpKC4uLm8pe2xldCBzPWUubGVuZ3RoPm8ubGVuZ3RoLGw7cyYmby5wdXNoKGEpO3RyeXtsPWUuYXBwbHkodGhpcyxvKX1jYXRjaChjKXtsZXQgdT1jO2lmKHMmJnIpdGhyb3cgdTtyZXR1cm4gYSh1KX1zfHwobCYmbC50aGVuJiZ0eXBlb2YgbC50aGVuPT0iZnVuY3Rpb24iP2wudGhlbihuLGEpOmwgaW5zdGFuY2VvZiBFcnJvcj9hKGwpOm4obCkpfWZ1bmN0aW9uIGEobywuLi5zKXtyfHwocj0hMCx0KG8sLi4ucykpfWZ1bmN0aW9uIG4obyl7YShudWxsLG8pfX12YXIgZ01lPXAoKCk9Pnt9KTt2YXIgYk1lPXAoKCk9PntnTWUoKX0pO2Z1bmN0aW9uIHYwKGUpe3JldHVybiFlfHx0eXBlb2YgZSE9Im9iamVjdCI/IiI6InBvc2l0aW9uImluIGV8fCJ0eXBlImluIGU/dk1lKGUucG9zaXRpb24pOiJzdGFydCJpbiBlfHwiZW5kImluIGU/dk1lKGUpOiJsaW5lImluIGV8fCJjb2x1bW4iaW4gZT9WaihlKToiIn1mdW5jdGlvbiBWaihlKXtyZXR1cm4geE1lKGUmJmUubGluZSkrIjoiK3hNZShlJiZlLmNvbHVtbil9ZnVuY3Rpb24gdk1lKGUpe3JldHVybiBWaihlJiZlLnN0YXJ0KSsiLSIrVmooZSYmZS5lbmQpfWZ1bmN0aW9uIHhNZShlKXtyZXR1cm4gZSYmdHlwZW9mIGU9PSJudW1iZXIiP2U6MX12YXIgeU1lPXAoKCk9Pnt9KTt2YXIgVWo9cCgoKT0+e3lNZSgpfSk7dmFyIExpLHdNZT1wKCgpPT57VWooKTtMaT1jbGFzcyBleHRlbmRzIEVycm9ye2NvbnN0cnVjdG9yKHQscixpKXtzdXBlcigpLHR5cGVvZiByPT0ic3RyaW5nIiYmKGk9cixyPXZvaWQgMCk7bGV0IGE9IiIsbj17fSxvPSExO2lmKHImJigibGluZSJpbiByJiYiY29sdW1uImluIHI/bj17cGxhY2U6cn06InN0YXJ0ImluIHImJiJlbmQiaW4gcj9uPXtwbGFjZTpyfToidHlwZSJpbiByP249e2FuY2VzdG9yczpbcl0scGxhY2U6ci5wb3NpdGlvbn06bj17Li4ucn0pLHR5cGVvZiB0PT0ic3RyaW5nIj9hPXQ6IW4uY2F1c2UmJnQmJihvPSEwLGE9dC5tZXNzYWdlLG4uY2F1c2U9dCksIW4ucnVsZUlkJiYhbi5zb3VyY2UmJnR5cGVvZiBpPT0ic3RyaW5nIil7bGV0IGw9aS5pbmRleE9mKCI6Iik7bD09PS0xP24ucnVsZUlkPWk6KG4uc291cmNlPWkuc2xpY2UoMCxsKSxuLnJ1bGVJZD1pLnNsaWNlKGwrMSkpfWlmKCFuLnBsYWNlJiZuLmFuY2VzdG9ycyYmbi5hbmNlc3RvcnMpe2xldCBsPW4uYW5jZXN0b3JzW24uYW5jZXN0b3JzLmxlbmd0aC0xXTtsJiYobi5wbGFjZT1sLnBvc2l0aW9uKX1sZXQgcz1uLnBsYWNlJiYic3RhcnQiaW4gbi5wbGFjZT9uLnBsYWNlLnN0YXJ0Om4ucGxhY2U7dGhpcy5hbmNlc3RvcnM9bi5hbmNlc3RvcnN8fHZvaWQgMCx0aGlzLmNhdXNlPW4uY2F1c2V8fHZvaWQgMCx0aGlzLmNvbHVtbj1zP3MuY29sdW1uOnZvaWQgMCx0aGlzLmZhdGFsPXZvaWQgMCx0aGlzLmZpbGU9IiIsdGhpcy5tZXNzYWdlPWEsdGhpcy5saW5lPXM/cy5saW5lOnZvaWQgMCx0aGlzLm5hbWU9djAobi5wbGFjZSl8fCIxOjEiLHRoaXMucGxhY2U9bi5wbGFjZXx8dm9pZCAwLHRoaXMucmVhc29uPXRoaXMubWVzc2FnZSx0aGlzLnJ1bGVJZD1uLnJ1bGVJZHx8dm9pZCAwLHRoaXMuc291cmNlPW4uc291cmNlfHx2b2lkIDAsdGhpcy5zdGFjaz1vJiZuLmNhdXNlJiZ0eXBlb2Ygbi5jYXVzZS5zdGFjaz09InN0cmluZyI/bi5jYXVzZS5zdGFjazoiIix0aGlzLmFjdHVhbD12b2lkIDAsdGhpcy5leHBlY3RlZD12b2lkIDAsdGhpcy5ub3RlPXZvaWQgMCx0aGlzLnVybD12b2lkIDB9fTtMaS5wcm90b3R5cGUuZmlsZT0iIixMaS5wcm90b3R5cGUubmFtZT0iIixMaS5wcm90b3R5cGUucmVhc29uPSIiLExpLnByb3RvdHlwZS5tZXNzYWdlPSIiLExpLnByb3RvdHlwZS5zdGFjaz0iIixMaS5wcm90b3R5cGUuY29sdW1uPXZvaWQgMCxMaS5wcm90b3R5cGUubGluZT12b2lkIDAsTGkucHJvdG90eXBlLmFuY2VzdG9ycz12b2lkIDAsTGkucHJvdG90eXBlLmNhdXNlPXZvaWQgMCxMaS5wcm90b3R5cGUuZmF0YWw9dm9pZCAwLExpLnByb3RvdHlwZS5wbGFjZT12b2lkIDAsTGkucHJvdG90eXBlLnJ1bGVJZD12b2lkIDAsTGkucHJvdG90eXBlLnNvdXJjZT12b2lkIDB9KTt2YXIgTU1lPXAoKCk9Pnt3TWUoKX0pO2Z1bmN0aW9uIHp5cihlLHQpe2lmKHQhPT12b2lkIDAmJnR5cGVvZiB0IT0ic3RyaW5nIil0aHJvdyBuZXcgVHlwZUVycm9yKCciZXh0IiBhcmd1bWVudCBtdXN0IGJlIGEgc3RyaW5nJyk7ZDcoZSk7bGV0IHI9MCxpPS0xLGE9ZS5sZW5ndGgsbjtpZih0PT09dm9pZCAwfHx0Lmxlbmd0aD09PTB8fHQubGVuZ3RoPmUubGVuZ3RoKXtmb3IoO2EtLTspaWYoZS5jb2RlUG9pbnRBdChhKT09PTQ3KXtpZihuKXtyPWErMTticmVha319ZWxzZSBpPDAmJihuPSEwLGk9YSsxKTtyZXR1cm4gaTwwPyIiOmUuc2xpY2UocixpKX1pZih0PT09ZSlyZXR1cm4iIjtsZXQgbz0tMSxzPXQubGVuZ3RoLTE7Zm9yKDthLS07KWlmKGUuY29kZVBvaW50QXQoYSk9PT00Nyl7aWYobil7cj1hKzE7YnJlYWt9fWVsc2UgbzwwJiYobj0hMCxvPWErMSkscz4tMSYmKGUuY29kZVBvaW50QXQoYSk9PT10LmNvZGVQb2ludEF0KHMtLSk/czwwJiYoaT1hKToocz0tMSxpPW8pKTtyZXR1cm4gcj09PWk/aT1vOmk8MCYmKGk9ZS5sZW5ndGgpLGUuc2xpY2UocixpKX1mdW5jdGlvbiBDeXIoZSl7aWYoZDcoZSksZS5sZW5ndGg9PT0wKXJldHVybiIuIjtsZXQgdD0tMSxyPWUubGVuZ3RoLGk7Zm9yKDstLXI7KWlmKGUuY29kZVBvaW50QXQocik9PT00Nyl7aWYoaSl7dD1yO2JyZWFrfX1lbHNlIGl8fChpPSEwKTtyZXR1cm4gdDwwP2UuY29kZVBvaW50QXQoMCk9PT00Nz8iLyI6Ii4iOnQ9PT0xJiZlLmNvZGVQb2ludEF0KDApPT09NDc/Ii8vIjplLnNsaWNlKDAsdCl9ZnVuY3Rpb24gVHlyKGUpe2Q3KGUpO2xldCB0PWUubGVuZ3RoLHI9LTEsaT0wLGE9LTEsbj0wLG87Zm9yKDt0LS07KXtsZXQgcz1lLmNvZGVQb2ludEF0KHQpO2lmKHM9PT00Nyl7aWYobyl7aT10KzE7YnJlYWt9Y29udGludWV9cjwwJiYobz0hMCxyPXQrMSkscz09PTQ2P2E8MD9hPXQ6biE9PTEmJihuPTEpOmE+LTEmJihuPS0xKX1yZXR1cm4gYTwwfHxyPDB8fG49PT0wfHxuPT09MSYmYT09PXItMSYmYT09PWkrMT8iIjplLnNsaWNlKGEscil9ZnVuY3Rpb24gX3lyKC4uLmUpe2xldCB0PS0xLHI7Zm9yKDsrK3Q8ZS5sZW5ndGg7KWQ3KGVbdF0pLGVbdF0mJihyPXI9PT12b2lkIDA/ZVt0XTpyKyIvIitlW3RdKTtyZXR1cm4gcj09PXZvaWQgMD8iLiI6THlyKHIpfWZ1bmN0aW9uIEx5cihlKXtkNyhlKTtsZXQgdD1lLmNvZGVQb2ludEF0KDApPT09NDcscj1BeXIoZSwhdCk7cmV0dXJuIHIubGVuZ3RoPT09MCYmIXQmJihyPSIuIiksci5sZW5ndGg+MCYmZS5jb2RlUG9pbnRBdChlLmxlbmd0aC0xKT09PTQ3JiYocis9Ii8iKSx0PyIvIityOnJ9ZnVuY3Rpb24gQXlyKGUsdCl7bGV0IHI9IiIsaT0wLGE9LTEsbj0wLG89LTEscyxsO2Zvcig7KytvPD1lLmxlbmd0aDspe2lmKG88ZS5sZW5ndGgpcz1lLmNvZGVQb2ludEF0KG8pO2Vsc2V7aWYocz09PTQ3KWJyZWFrO3M9NDd9aWYocz09PTQ3KXtpZighKGE9PT1vLTF8fG49PT0xKSlpZihhIT09by0xJiZuPT09Mil7aWYoci5sZW5ndGg8Mnx8aSE9PTJ8fHIuY29kZVBvaW50QXQoci5sZW5ndGgtMSkhPT00Nnx8ci5jb2RlUG9pbnRBdChyLmxlbmd0aC0yKSE9PTQ2KXtpZihyLmxlbmd0aD4yKXtpZihsPXIubGFzdEluZGV4T2YoIi8iKSxsIT09ci5sZW5ndGgtMSl7bDwwPyhyPSIiLGk9MCk6KHI9ci5zbGljZSgwLGwpLGk9ci5sZW5ndGgtMS1yLmxhc3RJbmRleE9mKCIvIikpLGE9byxuPTA7Y29udGludWV9fWVsc2UgaWYoci5sZW5ndGg+MCl7cj0iIixpPTAsYT1vLG49MDtjb250aW51ZX19dCYmKHI9ci5sZW5ndGg+MD9yKyIvLi4iOiIuLiIsaT0yKX1lbHNlIHIubGVuZ3RoPjA/cis9Ii8iK2Uuc2xpY2UoYSsxLG8pOnI9ZS5zbGljZShhKzEsbyksaT1vLWEtMTthPW8sbj0wfWVsc2Ugcz09PTQ2JiZuPi0xP24rKzpuPS0xfXJldHVybiByfWZ1bmN0aW9uIGQ3KGUpe2lmKHR5cGVvZiBlIT0ic3RyaW5nIil0aHJvdyBuZXcgVHlwZUVycm9yKCJQYXRoIG11c3QgYmUgYSBzdHJpbmcuIFJlY2VpdmVkICIrSlNPTi5zdHJpbmdpZnkoZSkpfXZhciBvMixrTWU9cCgoKT0+e28yPXtiYXNlbmFtZTp6eXIsZGlybmFtZTpDeXIsZXh0bmFtZTpUeXIsam9pbjpfeXIsc2VwOiIvIn19KTtmdW5jdGlvbiBEeXIoKXtyZXR1cm4iLyJ9dmFyIFNNZSx6TWU9cCgoKT0+e1NNZT17Y3dkOkR5cn19KTtmdW5jdGlvbiBidShlKXtyZXR1cm4hIShlIT09bnVsbCYmdHlwZW9mIGU9PSJvYmplY3QiJiYiaHJlZiJpbiBlJiZlLmhyZWYmJiJwcm90b2NvbCJpbiBlJiZlLnByb3RvY29sJiZlLmF1dGg9PT12b2lkIDApfXZhciBXaj1wKCgpPT57fSk7ZnVuY3Rpb24gQ01lKGUpe2lmKHR5cGVvZiBlPT0ic3RyaW5nIillPW5ldyBVUkwoZSk7ZWxzZSBpZighYnUoZSkpe2xldCB0PW5ldyBUeXBlRXJyb3IoJ1RoZSAicGF0aCIgYXJndW1lbnQgbXVzdCBiZSBvZiB0eXBlIHN0cmluZyBvciBhbiBpbnN0YW5jZSBvZiBVUkwuIFJlY2VpdmVkIGAnK2UrImAiKTt0aHJvdyB0LmNvZGU9IkVSUl9JTlZBTElEX0FSR19UWVBFIix0fWlmKGUucHJvdG9jb2whPT0iZmlsZToiKXtsZXQgdD1uZXcgVHlwZUVycm9yKCJUaGUgVVJMIG11c3QgYmUgb2Ygc2NoZW1lIGZpbGUiKTt0aHJvdyB0LmNvZGU9IkVSUl9JTlZBTElEX1VSTF9TQ0hFTUUiLHR9cmV0dXJuIEV5cihlKX1mdW5jdGlvbiBFeXIoZSl7aWYoZS5ob3N0bmFtZSE9PSIiKXtsZXQgaT1uZXcgVHlwZUVycm9yKCdGaWxlIFVSTCBob3N0IG11c3QgYmUgImxvY2FsaG9zdCIgb3IgZW1wdHkgb24gZGFyd2luJyk7dGhyb3cgaS5jb2RlPSJFUlJfSU5WQUxJRF9GSUxFX1VSTF9IT1NUIixpfWxldCB0PWUucGF0aG5hbWUscj0tMTtmb3IoOysrcjx0Lmxlbmd0aDspaWYodC5jb2RlUG9pbnRBdChyKT09PTM3JiZ0LmNvZGVQb2ludEF0KHIrMSk9PT01MCl7bGV0IGk9dC5jb2RlUG9pbnRBdChyKzIpO2lmKGk9PT03MHx8aT09PTEwMil7bGV0IGE9bmV3IFR5cGVFcnJvcigiRmlsZSBVUkwgcGF0aCBtdXN0IG5vdCBpbmNsdWRlIGVuY29kZWQgLyBjaGFyYWN0ZXJzIik7dGhyb3cgYS5jb2RlPSJFUlJfSU5WQUxJRF9GSUxFX1VSTF9QQVRIIixhfX1yZXR1cm4gZGVjb2RlVVJJQ29tcG9uZW50KHQpfXZhciBUTWU9cCgoKT0+e1dqKCk7V2ooKX0pO2Z1bmN0aW9uIFlqKGUsdCl7aWYoZSYmZS5pbmNsdWRlcyhvMi5zZXApKXRocm93IG5ldyBFcnJvcigiYCIrdCsiYCBjYW5ub3QgYmUgYSBwYXRoOiBkaWQgbm90IGV4cGVjdCBgIitvMi5zZXArImAiKX1mdW5jdGlvbiBaaihlLHQpe2lmKCFlKXRocm93IG5ldyBFcnJvcigiYCIrdCsiYCBjYW5ub3QgYmUgZW1wdHkiKX1mdW5jdGlvbiBfTWUoZSx0KXtpZighZSl0aHJvdyBuZXcgRXJyb3IoIlNldHRpbmcgYCIrdCsiYCByZXF1aXJlcyBgcGF0aGAgdG8gYmUgc2V0IHRvbyIpfWZ1bmN0aW9uICR5cihlKXtyZXR1cm4hIShlJiZ0eXBlb2YgZT09Im9iamVjdCImJiJieXRlTGVuZ3RoImluIGUmJiJieXRlT2Zmc2V0ImluIGUpfXZhciBHaix1NyxMTWU9cCgoKT0+e01NZSgpO2tNZSgpO3pNZSgpO1RNZSgpO0dqPVsiaGlzdG9yeSIsInBhdGgiLCJiYXNlbmFtZSIsInN0ZW0iLCJleHRuYW1lIiwiZGlybmFtZSJdLHU3PWNsYXNze2NvbnN0cnVjdG9yKHQpe2xldCByO3Q/YnUodCk/cj17cGF0aDp0fTp0eXBlb2YgdD09InN0cmluZyJ8fCR5cih0KT9yPXt2YWx1ZTp0fTpyPXQ6cj17fSx0aGlzLmN3ZD0iY3dkImluIHI/IiI6U01lLmN3ZCgpLHRoaXMuZGF0YT17fSx0aGlzLmhpc3Rvcnk9W10sdGhpcy5tZXNzYWdlcz1bXSx0aGlzLnZhbHVlLHRoaXMubWFwLHRoaXMucmVzdWx0LHRoaXMuc3RvcmVkO2xldCBpPS0xO2Zvcig7KytpPEdqLmxlbmd0aDspe2xldCBuPUdqW2ldO24gaW4gciYmcltuXSE9PXZvaWQgMCYmcltuXSE9PW51bGwmJih0aGlzW25dPW49PT0iaGlzdG9yeSI/Wy4uLnJbbl1dOnJbbl0pfWxldCBhO2ZvcihhIGluIHIpR2ouaW5jbHVkZXMoYSl8fCh0aGlzW2FdPXJbYV0pfWdldCBiYXNlbmFtZSgpe3JldHVybiB0eXBlb2YgdGhpcy5wYXRoPT0ic3RyaW5nIj9vMi5iYXNlbmFtZSh0aGlzLnBhdGgpOnZvaWQgMH1zZXQgYmFzZW5hbWUodCl7WmoodCwiYmFzZW5hbWUiKSxZaih0LCJiYXNlbmFtZSIpLHRoaXMucGF0aD1vMi5qb2luKHRoaXMuZGlybmFtZXx8IiIsdCl9Z2V0IGRpcm5hbWUoKXtyZXR1cm4gdHlwZW9mIHRoaXMucGF0aD09InN0cmluZyI/bzIuZGlybmFtZSh0aGlzLnBhdGgpOnZvaWQgMH1zZXQgZGlybmFtZSh0KXtfTWUodGhpcy5iYXNlbmFtZSwiZGlybmFtZSIpLHRoaXMucGF0aD1vMi5qb2luKHR8fCIiLHRoaXMuYmFzZW5hbWUpfWdldCBleHRuYW1lKCl7cmV0dXJuIHR5cGVvZiB0aGlzLnBhdGg9PSJzdHJpbmciP28yLmV4dG5hbWUodGhpcy5wYXRoKTp2b2lkIDB9c2V0IGV4dG5hbWUodCl7aWYoWWoodCwiZXh0bmFtZSIpLF9NZSh0aGlzLmRpcm5hbWUsImV4dG5hbWUiKSx0KXtpZih0LmNvZGVQb2ludEF0KDApIT09NDYpdGhyb3cgbmV3IEVycm9yKCJgZXh0bmFtZWAgbXVzdCBzdGFydCB3aXRoIGAuYCIpO2lmKHQuaW5jbHVkZXMoIi4iLDEpKXRocm93IG5ldyBFcnJvcigiYGV4dG5hbWVgIGNhbm5vdCBjb250YWluIG11bHRpcGxlIGRvdHMiKX10aGlzLnBhdGg9bzIuam9pbih0aGlzLmRpcm5hbWUsdGhpcy5zdGVtKyh0fHwiIikpfWdldCBwYXRoKCl7cmV0dXJuIHRoaXMuaGlzdG9yeVt0aGlzLmhpc3RvcnkubGVuZ3RoLTFdfXNldCBwYXRoKHQpe2J1KHQpJiYodD1DTWUodCkpLFpqKHQsInBhdGgiKSx0aGlzLnBhdGghPT10JiZ0aGlzLmhpc3RvcnkucHVzaCh0KX1nZXQgc3RlbSgpe3JldHVybiB0eXBlb2YgdGhpcy5wYXRoPT0ic3RyaW5nIj9vMi5iYXNlbmFtZSh0aGlzLnBhdGgsdGhpcy5leHRuYW1lKTp2b2lkIDB9c2V0IHN0ZW0odCl7WmoodCwic3RlbSIpLFlqKHQsInN0ZW0iKSx0aGlzLnBhdGg9bzIuam9pbih0aGlzLmRpcm5hbWV8fCIiLHQrKHRoaXMuZXh0bmFtZXx8IiIpKX1mYWlsKHQscixpKXtsZXQgYT10aGlzLm1lc3NhZ2UodCxyLGkpO3Rocm93IGEuZmF0YWw9ITAsYX1pbmZvKHQscixpKXtsZXQgYT10aGlzLm1lc3NhZ2UodCxyLGkpO3JldHVybiBhLmZhdGFsPXZvaWQgMCxhfW1lc3NhZ2UodCxyLGkpe2xldCBhPW5ldyBMaSh0LHIsaSk7cmV0dXJuIHRoaXMucGF0aCYmKGEubmFtZT10aGlzLnBhdGgrIjoiK2EubmFtZSxhLmZpbGU9dGhpcy5wYXRoKSxhLmZhdGFsPSExLHRoaXMubWVzc2FnZXMucHVzaChhKSxhfXRvU3RyaW5nKHQpe3JldHVybiB0aGlzLnZhbHVlPT09dm9pZCAwPyIiOnR5cGVvZiB0aGlzLnZhbHVlPT0ic3RyaW5nIj90aGlzLnZhbHVlOm5ldyBUZXh0RGVjb2Rlcih0fHx2b2lkIDApLmRlY29kZSh0aGlzLnZhbHVlKX19fSk7dmFyIEFNZT1wKCgpPT57TE1lKCl9KTt2YXIgRE1lLEVNZT1wKCgpPT57RE1lPShmdW5jdGlvbihlKXtsZXQgaT10aGlzLmNvbnN0cnVjdG9yLnByb3RvdHlwZSxhPWlbZV0sbj1mdW5jdGlvbigpe3JldHVybiBhLmFwcGx5KG4sYXJndW1lbnRzKX07cmV0dXJuIE9iamVjdC5zZXRQcm90b3R5cGVPZihuLGkpLG59KX0pO2Z1bmN0aW9uIFFqKGUsdCl7aWYodHlwZW9mIHQhPSJmdW5jdGlvbiIpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGAiK2UrImAgd2l0aG91dCBgcGFyc2VyYCIpfWZ1bmN0aW9uIEpqKGUsdCl7aWYodHlwZW9mIHQhPSJmdW5jdGlvbiIpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGAiK2UrImAgd2l0aG91dCBgY29tcGlsZXJgIil9ZnVuY3Rpb24gS2ooZSx0KXtpZih0KXRocm93IG5ldyBFcnJvcigiQ2Fubm90IGNhbGwgYCIrZSsiYCBvbiBhIGZyb3plbiBwcm9jZXNzb3IuXG5DcmVhdGUgYSBuZXcgcHJvY2Vzc29yIGZpcnN0LCBieSBjYWxsaW5nIGl0OiB1c2UgYHByb2Nlc3NvcigpYCBpbnN0ZWFkIG9mIGBwcm9jZXNzb3JgLiIpfWZ1bmN0aW9uICRNZShlKXtpZighYzcoZSl8fHR5cGVvZiBlLnR5cGUhPSJzdHJpbmciKXRocm93IG5ldyBUeXBlRXJyb3IoIkV4cGVjdGVkIG5vZGUsIGdvdCBgIitlKyJgIil9ZnVuY3Rpb24gSU1lKGUsdCxyKXtpZighcil0aHJvdyBuZXcgRXJyb3IoImAiK2UrImAgZmluaXNoZWQgYXN5bmMuIFVzZSBgIit0KyJgIGluc3RlYWQiKX1mdW5jdGlvbiBzTShlKXtyZXR1cm4gUHlyKGUpP2U6bmV3IHU3KGUpfWZ1bmN0aW9uIFB5cihlKXtyZXR1cm4hIShlJiZ0eXBlb2YgZT09Im9iamVjdCImJiJtZXNzYWdlImluIGUmJiJtZXNzYWdlcyJpbiBlKX1mdW5jdGlvbiBOeXIoZSl7cmV0dXJuIHR5cGVvZiBlPT0ic3RyaW5nInx8RnlyKGUpfWZ1bmN0aW9uIEZ5cihlKXtyZXR1cm4hIShlJiZ0eXBlb2YgZT09Im9iamVjdCImJiJieXRlTGVuZ3RoImluIGUmJiJieXRlT2Zmc2V0ImluIGUpfXZhciBsTSxJeXIsWGoscDcsUE1lPXAoKCk9PnthTWUoKTtsTT1lcihoTWUoKSwxKTtiMCgpO2ZNZSgpO2JNZSgpO0FNZSgpO0VNZSgpO0l5cj17fS5oYXNPd25Qcm9wZXJ0eSxYaj1jbGFzcyBlIGV4dGVuZHMgRE1le2NvbnN0cnVjdG9yKCl7c3VwZXIoImNvcHkiKSx0aGlzLkNvbXBpbGVyPXZvaWQgMCx0aGlzLlBhcnNlcj12b2lkIDAsdGhpcy5hdHRhY2hlcnM9W10sdGhpcy5jb21waWxlcj12b2lkIDAsdGhpcy5mcmVlemVJbmRleD0tMSx0aGlzLmZyb3plbj12b2lkIDAsdGhpcy5uYW1lc3BhY2U9e30sdGhpcy5wYXJzZXI9dm9pZCAwLHRoaXMudHJhbnNmb3JtZXJzPWpqKCl9Y29weSgpe2xldCB0PW5ldyBlLHI9LTE7Zm9yKDsrK3I8dGhpcy5hdHRhY2hlcnMubGVuZ3RoOyl7bGV0IGk9dGhpcy5hdHRhY2hlcnNbcl07dC51c2UoLi4uaSl9cmV0dXJuIHQuZGF0YSgoMCxsTS5kZWZhdWx0KSghMCx7fSx0aGlzLm5hbWVzcGFjZSkpLHR9ZGF0YSh0LHIpe3JldHVybiB0eXBlb2YgdD09InN0cmluZyI/YXJndW1lbnRzLmxlbmd0aD09PTI/KEtqKCJkYXRhIix0aGlzLmZyb3plbiksdGhpcy5uYW1lc3BhY2VbdF09cix0aGlzKTpJeXIuY2FsbCh0aGlzLm5hbWVzcGFjZSx0KSYmdGhpcy5uYW1lc3BhY2VbdF18fHZvaWQgMDp0PyhLaigiZGF0YSIsdGhpcy5mcm96ZW4pLHRoaXMubmFtZXNwYWNlPXQsdGhpcyk6dGhpcy5uYW1lc3BhY2V9ZnJlZXplKCl7aWYodGhpcy5mcm96ZW4pcmV0dXJuIHRoaXM7bGV0IHQ9dGhpcztmb3IoOysrdGhpcy5mcmVlemVJbmRleDx0aGlzLmF0dGFjaGVycy5sZW5ndGg7KXtsZXRbciwuLi5pXT10aGlzLmF0dGFjaGVyc1t0aGlzLmZyZWV6ZUluZGV4XTtpZihpWzBdPT09ITEpY29udGludWU7aVswXT09PSEwJiYoaVswXT12b2lkIDApO2xldCBhPXIuY2FsbCh0LC4uLmkpO3R5cGVvZiBhPT0iZnVuY3Rpb24iJiZ0aGlzLnRyYW5zZm9ybWVycy51c2UoYSl9cmV0dXJuIHRoaXMuZnJvemVuPSEwLHRoaXMuZnJlZXplSW5kZXg9TnVtYmVyLlBPU0lUSVZFX0lORklOSVRZLHRoaXN9cGFyc2UodCl7dGhpcy5mcmVlemUoKTtsZXQgcj1zTSh0KSxpPXRoaXMucGFyc2VyfHx0aGlzLlBhcnNlcjtyZXR1cm4gUWooInBhcnNlIixpKSxpKFN0cmluZyhyKSxyKX1wcm9jZXNzKHQscil7bGV0IGk9dGhpcztyZXR1cm4gdGhpcy5mcmVlemUoKSxRaigicHJvY2VzcyIsdGhpcy5wYXJzZXJ8fHRoaXMuUGFyc2VyKSxKaigicHJvY2VzcyIsdGhpcy5jb21waWxlcnx8dGhpcy5Db21waWxlcikscj9hKHZvaWQgMCxyKTpuZXcgUHJvbWlzZShhKTtmdW5jdGlvbiBhKG4sbyl7bGV0IHM9c00odCksbD1pLnBhcnNlKHMpO2kucnVuKGwscyxmdW5jdGlvbih1LGQsaCl7aWYodXx8IWR8fCFoKXJldHVybiBjKHUpO2xldCBmPWQseD1pLnN0cmluZ2lmeShmLGgpO055cih4KT9oLnZhbHVlPXg6aC5yZXN1bHQ9eCxjKHUsaCl9KTtmdW5jdGlvbiBjKHUsZCl7dXx8IWQ/byh1KTpuP24oZCk6cih2b2lkIDAsZCl9fX1wcm9jZXNzU3luYyh0KXtsZXQgcj0hMSxpO3JldHVybiB0aGlzLmZyZWV6ZSgpLFFqKCJwcm9jZXNzU3luYyIsdGhpcy5wYXJzZXJ8fHRoaXMuUGFyc2VyKSxKaigicHJvY2Vzc1N5bmMiLHRoaXMuY29tcGlsZXJ8fHRoaXMuQ29tcGlsZXIpLHRoaXMucHJvY2Vzcyh0LGEpLElNZSgicHJvY2Vzc1N5bmMiLCJwcm9jZXNzIixyKSxpO2Z1bmN0aW9uIGEobixvKXtyPSEwLHFqKG4pLGk9b319cnVuKHQscixpKXskTWUodCksdGhpcy5mcmVlemUoKTtsZXQgYT10aGlzLnRyYW5zZm9ybWVycztyZXR1cm4haSYmdHlwZW9mIHI9PSJmdW5jdGlvbiImJihpPXIscj12b2lkIDApLGk/bih2b2lkIDAsaSk6bmV3IFByb21pc2Uobik7ZnVuY3Rpb24gbihvLHMpe2xldCBsPXNNKHIpO2EucnVuKHQsbCxjKTtmdW5jdGlvbiBjKHUsZCxoKXtsZXQgZj1kfHx0O3U/cyh1KTpvP28oZik6aSh2b2lkIDAsZixoKX19fXJ1blN5bmModCxyKXtsZXQgaT0hMSxhO3JldHVybiB0aGlzLnJ1bih0LHIsbiksSU1lKCJydW5TeW5jIiwicnVuIixpKSxhO2Z1bmN0aW9uIG4obyxzKXtxaihvKSxhPXMsaT0hMH19c3RyaW5naWZ5KHQscil7dGhpcy5mcmVlemUoKTtsZXQgaT1zTShyKSxhPXRoaXMuY29tcGlsZXJ8fHRoaXMuQ29tcGlsZXI7cmV0dXJuIEpqKCJzdHJpbmdpZnkiLGEpLCRNZSh0KSxhKHQsaSl9dXNlKHQsLi4ucil7bGV0IGk9dGhpcy5hdHRhY2hlcnMsYT10aGlzLm5hbWVzcGFjZTtpZihLaigidXNlIix0aGlzLmZyb3plbiksdCE9bnVsbClpZih0eXBlb2YgdD09ImZ1bmN0aW9uIilsKHQscik7ZWxzZSBpZih0eXBlb2YgdD09Im9iamVjdCIpQXJyYXkuaXNBcnJheSh0KT9zKHQpOm8odCk7ZWxzZSB0aHJvdyBuZXcgVHlwZUVycm9yKCJFeHBlY3RlZCB1c2FibGUgdmFsdWUsIG5vdCBgIit0KyJgIik7cmV0dXJuIHRoaXM7ZnVuY3Rpb24gbihjKXtpZih0eXBlb2YgYz09ImZ1bmN0aW9uIilsKGMsW10pO2Vsc2UgaWYodHlwZW9mIGM9PSJvYmplY3QiKWlmKEFycmF5LmlzQXJyYXkoYykpe2xldFt1LC4uLmRdPWM7bCh1LGQpfWVsc2UgbyhjKTtlbHNlIHRocm93IG5ldyBUeXBlRXJyb3IoIkV4cGVjdGVkIHVzYWJsZSB2YWx1ZSwgbm90IGAiK2MrImAiKX1mdW5jdGlvbiBvKGMpe2lmKCEoInBsdWdpbnMiaW4gYykmJiEoInNldHRpbmdzImluIGMpKXRocm93IG5ldyBFcnJvcigiRXhwZWN0ZWQgdXNhYmxlIHZhbHVlIGJ1dCByZWNlaXZlZCBhbiBlbXB0eSBwcmVzZXQsIHdoaWNoIGlzIHByb2JhYmx5IGEgbWlzdGFrZTogcHJlc2V0cyB0eXBpY2FsbHkgY29tZSB3aXRoIGBwbHVnaW5zYCBhbmQgc29tZXRpbWVzIHdpdGggYHNldHRpbmdzYCwgYnV0IHRoaXMgaGFzIG5laXRoZXIiKTtzKGMucGx1Z2lucyksYy5zZXR0aW5ncyYmKGEuc2V0dGluZ3M9KDAsbE0uZGVmYXVsdCkoITAsYS5zZXR0aW5ncyxjLnNldHRpbmdzKSl9ZnVuY3Rpb24gcyhjKXtsZXQgdT0tMTtpZihjIT1udWxsKWlmKEFycmF5LmlzQXJyYXkoYykpZm9yKDsrK3U8Yy5sZW5ndGg7KXtsZXQgZD1jW3VdO24oZCl9ZWxzZSB0aHJvdyBuZXcgVHlwZUVycm9yKCJFeHBlY3RlZCBhIGxpc3Qgb2YgcGx1Z2lucywgbm90IGAiK2MrImAiKX1mdW5jdGlvbiBsKGMsdSl7bGV0IGQ9LTEsaD0tMTtmb3IoOysrZDxpLmxlbmd0aDspaWYoaVtkXVswXT09PWMpe2g9ZDticmVha31pZihoPT09LTEpaS5wdXNoKFtjLC4uLnVdKTtlbHNlIGlmKHUubGVuZ3RoPjApe2xldFtmLC4uLnhdPXUsdj1pW2hdWzFdO2M3KHYpJiZjNyhmKSYmKGY9KDAsbE0uZGVmYXVsdCkoITAsdixmKSksaVtoXT1bYyxmLC4uLnhdfX19fSxwNz1uZXcgWGooKS5mcmVlemUoKX0pO3ZhciBOTWU9cCgoKT0+e1BNZSgpfSk7ZnVuY3Rpb24geHUoZSx0KXtsZXQgcj1TdHJpbmcoZSk7aWYodHlwZW9mIHQhPSJzdHJpbmciKXRocm93IG5ldyBUeXBlRXJyb3IoIkV4cGVjdGVkIGNoYXJhY3RlciIpO2xldCBpPTAsYT1yLmluZGV4T2YodCk7Zm9yKDthIT09LTE7KWkrKyxhPXIuaW5kZXhPZih0LGErdC5sZW5ndGgpO3JldHVybiBpfXZhciBlVj1wKCgpPT57fSk7ZnVuY3Rpb24gajMoZSl7cmV0dXJuIGUhPT1udWxsJiYoZTwzMnx8ZT09PTEyNyl9ZnVuY3Rpb24gV2UoZSl7cmV0dXJuIGUhPT1udWxsJiZlPC0yfWZ1bmN0aW9uIFp0KGUpe3JldHVybiBlIT09bnVsbCYmKGU8MHx8ZT09PTMyKX1mdW5jdGlvbiBsdChlKXtyZXR1cm4gZT09PS0yfHxlPT09LTF8fGU9PT0zMn1mdW5jdGlvbiB4MChlKXtyZXR1cm4gdDtmdW5jdGlvbiB0KHIpe3JldHVybiByIT09bnVsbCYmcj4tMSYmZS50ZXN0KFN0cmluZy5mcm9tQ2hhckNvZGUocikpfX12YXIgcGksXzEsRk1lLGg3LE9NZSxSTWUsVjMsdXMsdHI9cCgoKT0+e3BpPXgwKC9bQS1aYS16XS8pLF8xPXgwKC9bXGRBLVphLXpdLyksRk1lPXgwKC9bIy0nKitcLS05PT9BLVpeLX5dLyk7aDc9eDAoL1xkLyksT01lPXgwKC9bXGRBLUZhLWZdLyksUk1lPXgwKC9bIS0vOi1AWy1gey1+XS8pO1YzPXgwKC9ccHtQfXxccHtTfS91KSx1cz14MCgvXHMvKX0pO2Z1bmN0aW9uIE95cihlKXtsZXQgdD1bXSxyPS0xO2Zvcig7KytyPGUubGVuZ3RoOyl0W3JdPUFsKGVbcl0pO3JldHVybiBjTShpKTtmdW5jdGlvbiBpKC4uLmEpe2xldCBuPS0xO2Zvcig7KytuPHQubGVuZ3RoOylpZih0W25dLmFwcGx5KHRoaXMsYSkpcmV0dXJuITA7cmV0dXJuITF9fWZ1bmN0aW9uIFJ5cihlKXtsZXQgdD1lO3JldHVybiBjTShyKTtmdW5jdGlvbiByKGkpe2xldCBhPWksbjtmb3IobiBpbiBlKWlmKGFbbl0hPT10W25dKXJldHVybiExO3JldHVybiEwfX1mdW5jdGlvbiBCeXIoZSl7cmV0dXJuIGNNKHQpO2Z1bmN0aW9uIHQocil7cmV0dXJuIHImJnIudHlwZT09PWV9fWZ1bmN0aW9uIGNNKGUpe3JldHVybiB0O2Z1bmN0aW9uIHQocixpLGEpe3JldHVybiEhKEJNZShyKSYmZS5jYWxsKHRoaXMscix0eXBlb2YgaT09Im51bWJlciI/aTp2b2lkIDAsYXx8dm9pZCAwKSl9fWZ1bmN0aW9uIEh5cigpe3JldHVybiEwfWZ1bmN0aW9uIEJNZShlKXtyZXR1cm4gZSE9PW51bGwmJnR5cGVvZiBlPT0ib2JqZWN0IiYmInR5cGUiaW4gZX12YXIgSE1lLEFsLHFNZT1wKCgpPT57SE1lPShmdW5jdGlvbihlLHQscixpLGEpe2xldCBuPUFsKHQpO2lmKHIhPW51bGwmJih0eXBlb2YgciE9Im51bWJlciJ8fHI8MHx8cj09PU51bWJlci5QT1NJVElWRV9JTkZJTklUWSkpdGhyb3cgbmV3IEVycm9yKCJFeHBlY3RlZCBwb3NpdGl2ZSBmaW5pdGUgaW5kZXgiKTtpZihpIT1udWxsJiYoIUhNZShpKXx8IWkuY2hpbGRyZW4pKXRocm93IG5ldyBFcnJvcigiRXhwZWN0ZWQgcGFyZW50IG5vZGUiKTtpZihpPT1udWxsIT0ocj09bnVsbCkpdGhyb3cgbmV3IEVycm9yKCJFeHBlY3RlZCBib3RoIHBhcmVudCBhbmQgaW5kZXgiKTtyZXR1cm4gQk1lKGUpP24uY2FsbChhLGUscixpKTohMX0pLEFsPShmdW5jdGlvbihlKXtpZihlPT1udWxsKXJldHVybiBIeXI7aWYodHlwZW9mIGU9PSJmdW5jdGlvbiIpcmV0dXJuIGNNKGUpO2lmKHR5cGVvZiBlPT0ib2JqZWN0IilyZXR1cm4gQXJyYXkuaXNBcnJheShlKT9PeXIoZSk6UnlyKGUpO2lmKHR5cGVvZiBlPT0ic3RyaW5nIilyZXR1cm4gQnlyKGUpO3Rocm93IG5ldyBFcnJvcigiRXhwZWN0ZWQgZnVuY3Rpb24sIHN0cmluZywgb3Igb2JqZWN0IGFzIHRlc3QiKX0pfSk7dmFyIGRNPXAoKCk9PntxTWUoKX0pO3ZhciBqTWU9cCgoKT0+e30pO2Z1bmN0aW9uIGY3KGUsdCxyLGkpe2xldCBhO3R5cGVvZiB0PT0iZnVuY3Rpb24iJiZ0eXBlb2YgciE9ImZ1bmN0aW9uIj8oaT1yLHI9dCk6YT10O2xldCBuPUFsKGEpLG89aT8tMToxO3MoZSx2b2lkIDAsW10pKCk7ZnVuY3Rpb24gcyhsLGMsdSl7bGV0IGQ9bCYmdHlwZW9mIGw9PSJvYmplY3QiP2w6e307aWYodHlwZW9mIGQudHlwZT09InN0cmluZyIpe2xldCBmPXR5cGVvZiBkLnRhZ05hbWU9PSJzdHJpbmciP2QudGFnTmFtZTp0eXBlb2YgZC5uYW1lPT0ic3RyaW5nIj9kLm5hbWU6dm9pZCAwO09iamVjdC5kZWZpbmVQcm9wZXJ0eShoLCJuYW1lIix7dmFsdWU6Im5vZGUgKCIrKGwudHlwZSsoZj8iPCIrZisiPiI6IiIpKSsiKSJ9KX1yZXR1cm4gaDtmdW5jdGlvbiBoKCl7bGV0IGY9Vk1lLHgsdixiO2lmKCghdHx8bihsLGMsdVt1Lmxlbmd0aC0xXXx8dm9pZCAwKSkmJihmPXF5cihyKGwsdSkpLGZbMF09PT1VMykpcmV0dXJuIGY7aWYoImNoaWxkcmVuImluIGwmJmwuY2hpbGRyZW4pe2xldCB5PWw7aWYoeS5jaGlsZHJlbiYmZlswXSE9PXBNKWZvcih2PShpP3kuY2hpbGRyZW4ubGVuZ3RoOi0xKStvLGI9dS5jb25jYXQoeSk7dj4tMSYmdjx5LmNoaWxkcmVuLmxlbmd0aDspe2xldCB3PXkuY2hpbGRyZW5bdl07aWYoeD1zKHcsdixiKSgpLHhbMF09PT1VMylyZXR1cm4geDt2PXR5cGVvZiB4WzFdPT0ibnVtYmVyIj94WzFdOnYrb319cmV0dXJuIGZ9fX1mdW5jdGlvbiBxeXIoZSl7cmV0dXJuIEFycmF5LmlzQXJyYXkoZSk/ZTp0eXBlb2YgZT09Im51bWJlciI/W3VNLGVdOmU9PW51bGw/Vk1lOltlXX12YXIgVk1lLHVNLFUzLHBNLFVNZT1wKCgpPT57ZE0oKTtqTWUoKTtWTWU9W10sdU09ITAsVTM9ITEscE09InNraXAifSk7dmFyIGhNPXAoKCk9PntVTWUoKX0pO2Z1bmN0aW9uIHRWKGUsdCxyKXtsZXQgYT1BbCgocnx8e30pLmlnbm9yZXx8W10pLG49anlyKHQpLG89LTE7Zm9yKDsrK288bi5sZW5ndGg7KWY3KGUsInRleHQiLHMpO2Z1bmN0aW9uIHMoYyx1KXtsZXQgZD0tMSxoO2Zvcig7KytkPHUubGVuZ3RoOyl7bGV0IGY9dVtkXSx4PWg/aC5jaGlsZHJlbjp2b2lkIDA7aWYoYShmLHg/eC5pbmRleE9mKGYpOnZvaWQgMCxoKSlyZXR1cm47aD1mfWlmKGgpcmV0dXJuIGwoYyx1KX1mdW5jdGlvbiBsKGMsdSl7bGV0IGQ9dVt1Lmxlbmd0aC0xXSxoPW5bb11bMF0sZj1uW29dWzFdLHg9MCxiPWQuY2hpbGRyZW4uaW5kZXhPZihjKSx5PSExLHc9W107aC5sYXN0SW5kZXg9MDtsZXQgaz1oLmV4ZWMoYy52YWx1ZSk7Zm9yKDtrOyl7bGV0IE89ay5pbmRleCx6PXtpbmRleDprLmluZGV4LGlucHV0OmsuaW5wdXQsc3RhY2s6Wy4uLnUsY119LE09ZiguLi5rLHopO2lmKHR5cGVvZiBNPT0ic3RyaW5nIiYmKE09TS5sZW5ndGg+MD97dHlwZToidGV4dCIsdmFsdWU6TX06dm9pZCAwKSxNPT09ITE/aC5sYXN0SW5kZXg9TysxOih4IT09TyYmdy5wdXNoKHt0eXBlOiJ0ZXh0Iix2YWx1ZTpjLnZhbHVlLnNsaWNlKHgsTyl9KSxBcnJheS5pc0FycmF5KE0pP3cucHVzaCguLi5NKTpNJiZ3LnB1c2goTSkseD1PK2tbMF0ubGVuZ3RoLHk9ITApLCFoLmdsb2JhbClicmVhaztrPWguZXhlYyhjLnZhbHVlKX1yZXR1cm4geT8oeDxjLnZhbHVlLmxlbmd0aCYmdy5wdXNoKHt0eXBlOiJ0ZXh0Iix2YWx1ZTpjLnZhbHVlLnNsaWNlKHgpfSksZC5jaGlsZHJlbi5zcGxpY2UoYiwxLC4uLncpKTp3PVtjXSxiK3cubGVuZ3RofX1mdW5jdGlvbiBqeXIoZSl7bGV0IHQ9W107aWYoIUFycmF5LmlzQXJyYXkoZSkpdGhyb3cgbmV3IFR5cGVFcnJvcigiRXhwZWN0ZWQgZmluZCBhbmQgcmVwbGFjZSB0dXBsZSBvciBsaXN0IG9mIHR1cGxlcyIpO2xldCByPSFlWzBdfHxBcnJheS5pc0FycmF5KGVbMF0pP2U6W2VdLGk9LTE7Zm9yKDsrK2k8ci5sZW5ndGg7KXtsZXQgYT1yW2ldO3QucHVzaChbVnlyKGFbMF0pLFV5cihhWzFdKV0pfXJldHVybiB0fWZ1bmN0aW9uIFZ5cihlKXtyZXR1cm4gdHlwZW9mIGU9PSJzdHJpbmciP25ldyBSZWdFeHAoZjMoZSksImciKTplfWZ1bmN0aW9uIFV5cihlKXtyZXR1cm4gdHlwZW9mIGU9PSJmdW5jdGlvbiI/ZTpmdW5jdGlvbigpe3JldHVybiBlfX12YXIgV01lPXAoKCk9PntseCgpO2hNKCk7ZE0oKX0pO3ZhciBHTWU9cCgoKT0+e1dNZSgpfSk7ZnVuY3Rpb24gblYoKXtyZXR1cm57dHJhbnNmb3JtczpbUXlyXSxlbnRlcjp7bGl0ZXJhbEF1dG9saW5rOld5cixsaXRlcmFsQXV0b2xpbmtFbWFpbDphVixsaXRlcmFsQXV0b2xpbmtIdHRwOmFWLGxpdGVyYWxBdXRvbGlua1d3dzphVn0sZXhpdDp7bGl0ZXJhbEF1dG9saW5rOlh5cixsaXRlcmFsQXV0b2xpbmtFbWFpbDpaeXIsbGl0ZXJhbEF1dG9saW5rSHR0cDpHeXIsbGl0ZXJhbEF1dG9saW5rV3d3Oll5cn19fWZ1bmN0aW9uIG9WKCl7cmV0dXJue3Vuc2FmZTpbe2NoYXJhY3RlcjoiQCIsYmVmb3JlOiJbK1xcLS5cXHddIixhZnRlcjoiW1xcLS5cXHddIixpbkNvbnN0cnVjdDpyVixub3RJbkNvbnN0cnVjdDppVn0se2NoYXJhY3RlcjoiLiIsYmVmb3JlOiJbV3ddIixhZnRlcjoiW1xcLS5cXHddIixpbkNvbnN0cnVjdDpyVixub3RJbkNvbnN0cnVjdDppVn0se2NoYXJhY3RlcjoiOiIsYmVmb3JlOiJbcHNdIixhZnRlcjoiXFwvIixpbkNvbnN0cnVjdDpyVixub3RJbkNvbnN0cnVjdDppVn1dfX1mdW5jdGlvbiBXeXIoZSl7dGhpcy5lbnRlcih7dHlwZToibGluayIsdGl0bGU6bnVsbCx1cmw6IiIsY2hpbGRyZW46W119LGUpfWZ1bmN0aW9uIGFWKGUpe3RoaXMuY29uZmlnLmVudGVyLmF1dG9saW5rUHJvdG9jb2wuY2FsbCh0aGlzLGUpfWZ1bmN0aW9uIEd5cihlKXt0aGlzLmNvbmZpZy5leGl0LmF1dG9saW5rUHJvdG9jb2wuY2FsbCh0aGlzLGUpfWZ1bmN0aW9uIFl5cihlKXt0aGlzLmNvbmZpZy5leGl0LmRhdGEuY2FsbCh0aGlzLGUpO2xldCB0PXRoaXMuc3RhY2tbdGhpcy5zdGFjay5sZW5ndGgtMV07dC50eXBlLHQudXJsPSJodHRwOi8vIit0aGlzLnNsaWNlU2VyaWFsaXplKGUpfWZ1bmN0aW9uIFp5cihlKXt0aGlzLmNvbmZpZy5leGl0LmF1dG9saW5rRW1haWwuY2FsbCh0aGlzLGUpfWZ1bmN0aW9uIFh5cihlKXt0aGlzLmV4aXQoZSl9ZnVuY3Rpb24gUXlyKGUpe3RWKGUsW1svKGh0dHBzPzpcL1wvfHd3dyg/PVwuKSkoWy0uXHddKykoW14gXHRcclxuXSopL2dpLEp5cl0sWy8oPzw9Xnxcc3xccHtQfXxccHtTfSkoWy0uXHcrXSspQChbLVx3XSsoPzpcLlstXHddKykrKS9ndSxLeXJdXSx7aWdub3JlOlsibGluayIsImxpbmtSZWZlcmVuY2UiXX0pfWZ1bmN0aW9uIEp5cihlLHQscixpLGEpe2xldCBuPSIiO2lmKCFZTWUoYSl8fCgvXncvaS50ZXN0KHQpJiYocj10K3IsdD0iIixuPSJodHRwOi8vIiksIWV3cihyKSkpcmV0dXJuITE7bGV0IG89dHdyKHIraSk7aWYoIW9bMF0pcmV0dXJuITE7bGV0IHM9e3R5cGU6ImxpbmsiLHRpdGxlOm51bGwsdXJsOm4rdCtvWzBdLGNoaWxkcmVuOlt7dHlwZToidGV4dCIsdmFsdWU6dCtvWzBdfV19O3JldHVybiBvWzFdP1tzLHt0eXBlOiJ0ZXh0Iix2YWx1ZTpvWzFdfV06c31mdW5jdGlvbiBLeXIoZSx0LHIsaSl7cmV0dXJuIVlNZShpLCEwKXx8L1stXGRfXSQvLnRlc3Qocik/ITE6e3R5cGU6ImxpbmsiLHRpdGxlOm51bGwsdXJsOiJtYWlsdG86Iit0KyJAIityLGNoaWxkcmVuOlt7dHlwZToidGV4dCIsdmFsdWU6dCsiQCIrcn1dfX1mdW5jdGlvbiBld3IoZSl7bGV0IHQ9ZS5zcGxpdCgiLiIpO3JldHVybiEodC5sZW5ndGg8Mnx8dFt0Lmxlbmd0aC0xXSYmKC9fLy50ZXN0KHRbdC5sZW5ndGgtMV0pfHwhL1thLXpBLVpcZF0vLnRlc3QodFt0Lmxlbmd0aC0xXSkpfHx0W3QubGVuZ3RoLTJdJiYoL18vLnRlc3QodFt0Lmxlbmd0aC0yXSl8fCEvW2EtekEtWlxkXS8udGVzdCh0W3QubGVuZ3RoLTJdKSkpfWZ1bmN0aW9uIHR3cihlKXtsZXQgdD0vWyEiJicpLC46Ozw+P1xdfV0rJC8uZXhlYyhlKTtpZighdClyZXR1cm5bZSx2b2lkIDBdO2U9ZS5zbGljZSgwLHQuaW5kZXgpO2xldCByPXRbMF0saT1yLmluZGV4T2YoIikiKSxhPXh1KGUsIigiKSxuPXh1KGUsIikiKTtmb3IoO2khPT0tMSYmYT5uOyllKz1yLnNsaWNlKDAsaSsxKSxyPXIuc2xpY2UoaSsxKSxpPXIuaW5kZXhPZigiKSIpLG4rKztyZXR1cm5bZSxyXX1mdW5jdGlvbiBZTWUoZSx0KXtsZXQgcj1lLmlucHV0LmNoYXJDb2RlQXQoZS5pbmRleC0xKTtyZXR1cm4oZS5pbmRleD09PTB8fHVzKHIpfHxWMyhyKSkmJighdHx8ciE9PTQ3KX12YXIgclYsaVYsWk1lPXAoKCk9PntlVigpO2IwKCk7dHIoKTtHTWUoKTtyVj0icGhyYXNpbmciLGlWPVsiYXV0b2xpbmsiLCJsaW5rIiwiaW1hZ2UiLCJsYWJlbCJdfSk7dmFyIFhNZT1wKCgpPT57Wk1lKCl9KTtmdW5jdGlvbiBMMShlKXtyZXR1cm4gZS5yZXBsYWNlKC9bXHRcblxyIF0rL2csIiAiKS5yZXBsYWNlKC9eIHwgJC9nLCIiKS50b0xvd2VyQ2FzZSgpLnRvVXBwZXJDYXNlKCl9dmFyIHkwPXAoKCk9Pnt9KTtmdW5jdGlvbiByd3IoKXt0aGlzLmJ1ZmZlcigpfWZ1bmN0aW9uIGl3cihlKXt0aGlzLmVudGVyKHt0eXBlOiJmb290bm90ZVJlZmVyZW5jZSIsaWRlbnRpZmllcjoiIixsYWJlbDoiIn0sZSl9ZnVuY3Rpb24gYXdyKCl7dGhpcy5idWZmZXIoKX1mdW5jdGlvbiBud3IoZSl7dGhpcy5lbnRlcih7dHlwZToiZm9vdG5vdGVEZWZpbml0aW9uIixpZGVudGlmaWVyOiIiLGxhYmVsOiIiLGNoaWxkcmVuOltdfSxlKX1mdW5jdGlvbiBvd3IoZSl7bGV0IHQ9dGhpcy5yZXN1bWUoKSxyPXRoaXMuc3RhY2tbdGhpcy5zdGFjay5sZW5ndGgtMV07ci50eXBlLHIuaWRlbnRpZmllcj1MMSh0aGlzLnNsaWNlU2VyaWFsaXplKGUpKS50b0xvd2VyQ2FzZSgpLHIubGFiZWw9dH1mdW5jdGlvbiBzd3IoZSl7dGhpcy5leGl0KGUpfWZ1bmN0aW9uIGx3cihlKXtsZXQgdD10aGlzLnJlc3VtZSgpLHI9dGhpcy5zdGFja1t0aGlzLnN0YWNrLmxlbmd0aC0xXTtyLnR5cGUsci5pZGVudGlmaWVyPUwxKHRoaXMuc2xpY2VTZXJpYWxpemUoZSkpLnRvTG93ZXJDYXNlKCksci5sYWJlbD10fWZ1bmN0aW9uIGN3cihlKXt0aGlzLmV4aXQoZSl9ZnVuY3Rpb24gZHdyKCl7cmV0dXJuIlsifWZ1bmN0aW9uIFFNZShlLHQscixpKXtsZXQgYT1yLmNyZWF0ZVRyYWNrZXIoaSksbj1hLm1vdmUoIlteIiksbz1yLmVudGVyKCJmb290bm90ZVJlZmVyZW5jZSIpLHM9ci5lbnRlcigicmVmZXJlbmNlIik7cmV0dXJuIG4rPWEubW92ZShyLnNhZmUoci5hc3NvY2lhdGlvbklkKGUpLHthZnRlcjoiXSIsYmVmb3JlOm59KSkscygpLG8oKSxuKz1hLm1vdmUoIl0iKSxufWZ1bmN0aW9uIHNWKCl7cmV0dXJue2VudGVyOntnZm1Gb290bm90ZUNhbGxTdHJpbmc6cndyLGdmbUZvb3Rub3RlQ2FsbDppd3IsZ2ZtRm9vdG5vdGVEZWZpbml0aW9uTGFiZWxTdHJpbmc6YXdyLGdmbUZvb3Rub3RlRGVmaW5pdGlvbjpud3J9LGV4aXQ6e2dmbUZvb3Rub3RlQ2FsbFN0cmluZzpvd3IsZ2ZtRm9vdG5vdGVDYWxsOnN3cixnZm1Gb290bm90ZURlZmluaXRpb25MYWJlbFN0cmluZzpsd3IsZ2ZtRm9vdG5vdGVEZWZpbml0aW9uOmN3cn19fWZ1bmN0aW9uIGxWKGUpe2xldCB0PSExO3JldHVybiBlJiZlLmZpcnN0TGluZUJsYW5rJiYodD0hMCkse2hhbmRsZXJzOntmb290bm90ZURlZmluaXRpb246cixmb290bm90ZVJlZmVyZW5jZTpRTWV9LHVuc2FmZTpbe2NoYXJhY3RlcjoiWyIsaW5Db25zdHJ1Y3Q6WyJsYWJlbCIsInBocmFzaW5nIiwicmVmZXJlbmNlIl19XX07ZnVuY3Rpb24gcihpLGEsbixvKXtsZXQgcz1uLmNyZWF0ZVRyYWNrZXIobyksbD1zLm1vdmUoIlteIiksYz1uLmVudGVyKCJmb290bm90ZURlZmluaXRpb24iKSx1PW4uZW50ZXIoImxhYmVsIik7cmV0dXJuIGwrPXMubW92ZShuLnNhZmUobi5hc3NvY2lhdGlvbklkKGkpLHtiZWZvcmU6bCxhZnRlcjoiXSJ9KSksdSgpLGwrPXMubW92ZSgiXToiKSxpLmNoaWxkcmVuJiZpLmNoaWxkcmVuLmxlbmd0aD4wJiYocy5zaGlmdCg0KSxsKz1zLm1vdmUoKHQ/YApgOiIgIikrbi5pbmRlbnRMaW5lcyhuLmNvbnRhaW5lckZsb3coaSxzLmN1cnJlbnQoKSksdD9KTWU6dXdyKSkpLGMoKSxsfX1mdW5jdGlvbiB1d3IoZSx0LHIpe3JldHVybiB0PT09MD9lOkpNZShlLHQscil9ZnVuY3Rpb24gSk1lKGUsdCxyKXtyZXR1cm4ocj8iIjoiICAgICIpK2V9dmFyIEtNZT1wKCgpPT57YjAoKTt5MCgpO1FNZS5wZWVrPWR3cn0pO3ZhciBla2U9cCgoKT0+e0tNZSgpfSk7ZnVuY3Rpb24gY1YoKXtyZXR1cm57Y2FuQ29udGFpbkVvbHM6WyJkZWxldGUiXSxlbnRlcjp7c3RyaWtldGhyb3VnaDpod3J9LGV4aXQ6e3N0cmlrZXRocm91Z2g6ZndyfX19ZnVuY3Rpb24gZFYoKXtyZXR1cm57dW5zYWZlOlt7Y2hhcmFjdGVyOiJ+IixpbkNvbnN0cnVjdDoicGhyYXNpbmciLG5vdEluQ29uc3RydWN0OnB3cn1dLGhhbmRsZXJzOntkZWxldGU6dGtlfX19ZnVuY3Rpb24gaHdyKGUpe3RoaXMuZW50ZXIoe3R5cGU6ImRlbGV0ZSIsY2hpbGRyZW46W119LGUpfWZ1bmN0aW9uIGZ3cihlKXt0aGlzLmV4aXQoZSl9ZnVuY3Rpb24gdGtlKGUsdCxyLGkpe2xldCBhPXIuY3JlYXRlVHJhY2tlcihpKSxuPXIuZW50ZXIoInN0cmlrZXRocm91Z2giKSxvPWEubW92ZSgifn4iKTtyZXR1cm4gbys9ci5jb250YWluZXJQaHJhc2luZyhlLHsuLi5hLmN1cnJlbnQoKSxiZWZvcmU6byxhZnRlcjoifiJ9KSxvKz1hLm1vdmUoIn5+IiksbigpLG99ZnVuY3Rpb24gbXdyKCl7cmV0dXJuIn4ifXZhciBwd3IscmtlPXAoKCk9Pntwd3I9WyJhdXRvbGluayIsImRlc3RpbmF0aW9uTGl0ZXJhbCIsImRlc3RpbmF0aW9uUmF3IiwicmVmZXJlbmNlIiwidGl0bGVRdW90ZSIsInRpdGxlQXBvc3Ryb3BoZSJdO3RrZS5wZWVrPW13cn0pO3ZhciBpa2U9cCgoKT0+e3JrZSgpfSk7ZnVuY3Rpb24gZ3dyKGUpe3JldHVybiBlLmxlbmd0aH1mdW5jdGlvbiBua2UoZSx0KXtsZXQgcj10fHx7fSxpPShyLmFsaWdufHxbXSkuY29uY2F0KCksYT1yLnN0cmluZ0xlbmd0aHx8Z3dyLG49W10sbz1bXSxzPVtdLGw9W10sYz0wLHU9LTE7Zm9yKDsrK3U8ZS5sZW5ndGg7KXtsZXQgdj1bXSxiPVtdLHk9LTE7Zm9yKGVbdV0ubGVuZ3RoPmMmJihjPWVbdV0ubGVuZ3RoKTsrK3k8ZVt1XS5sZW5ndGg7KXtsZXQgdz1id3IoZVt1XVt5XSk7aWYoci5hbGlnbkRlbGltaXRlcnMhPT0hMSl7bGV0IGs9YSh3KTtiW3ldPWssKGxbeV09PT12b2lkIDB8fGs+bFt5XSkmJihsW3ldPWspfXYucHVzaCh3KX1vW3VdPXYsc1t1XT1ifWxldCBkPS0xO2lmKHR5cGVvZiBpPT0ib2JqZWN0IiYmImxlbmd0aCJpbiBpKWZvcig7KytkPGM7KW5bZF09YWtlKGlbZF0pO2Vsc2V7bGV0IHY9YWtlKGkpO2Zvcig7KytkPGM7KW5bZF09dn1kPS0xO2xldCBoPVtdLGY9W107Zm9yKDsrK2Q8Yzspe2xldCB2PW5bZF0sYj0iIix5PSIiO3Y9PT05OT8oYj0iOiIseT0iOiIpOnY9PT0xMDg/Yj0iOiI6dj09PTExNCYmKHk9IjoiKTtsZXQgdz1yLmFsaWduRGVsaW1pdGVycz09PSExPzE6TWF0aC5tYXgoMSxsW2RdLWIubGVuZ3RoLXkubGVuZ3RoKSxrPWIrIi0iLnJlcGVhdCh3KSt5O3IuYWxpZ25EZWxpbWl0ZXJzIT09ITEmJih3PWIubGVuZ3RoK3creS5sZW5ndGgsdz5sW2RdJiYobFtkXT13KSxmW2RdPXcpLGhbZF09a31vLnNwbGljZSgxLDAsaCkscy5zcGxpY2UoMSwwLGYpLHU9LTE7bGV0IHg9W107Zm9yKDsrK3U8by5sZW5ndGg7KXtsZXQgdj1vW3VdLGI9c1t1XTtkPS0xO2xldCB5PVtdO2Zvcig7KytkPGM7KXtsZXQgdz12W2RdfHwiIixrPSIiLE89IiI7aWYoci5hbGlnbkRlbGltaXRlcnMhPT0hMSl7bGV0IHo9bFtkXS0oYltkXXx8MCksTT1uW2RdO009PT0xMTQ/az0iICIucmVwZWF0KHopOk09PT05OT96JTI/KGs9IiAiLnJlcGVhdCh6LzIrLjUpLE89IiAiLnJlcGVhdCh6LzItLjUpKTooaz0iICIucmVwZWF0KHovMiksTz1rKTpPPSIgIi5yZXBlYXQoeil9ci5kZWxpbWl0ZXJTdGFydCE9PSExJiYhZCYmeS5wdXNoKCJ8Iiksci5wYWRkaW5nIT09ITEmJiEoci5hbGlnbkRlbGltaXRlcnM9PT0hMSYmdz09PSIiKSYmKHIuZGVsaW1pdGVyU3RhcnQhPT0hMXx8ZCkmJnkucHVzaCgiICIpLHIuYWxpZ25EZWxpbWl0ZXJzIT09ITEmJnkucHVzaChrKSx5LnB1c2godyksci5hbGlnbkRlbGltaXRlcnMhPT0hMSYmeS5wdXNoKE8pLHIucGFkZGluZyE9PSExJiZ5LnB1c2goIiAiKSwoci5kZWxpbWl0ZXJFbmQhPT0hMXx8ZCE9PWMtMSkmJnkucHVzaCgifCIpfXgucHVzaChyLmRlbGltaXRlckVuZD09PSExP3kuam9pbigiIikucmVwbGFjZSgvICskLywiIik6eS5qb2luKCIiKSl9cmV0dXJuIHguam9pbihgCmApfWZ1bmN0aW9uIGJ3cihlKXtyZXR1cm4gZT09bnVsbD8iIjpTdHJpbmcoZSl9ZnVuY3Rpb24gYWtlKGUpe2xldCB0PXR5cGVvZiBlPT0ic3RyaW5nIj9lLmNvZGVQb2ludEF0KDApOjA7cmV0dXJuIHQ9PT02N3x8dD09PTk5Pzk5OnQ9PT03Nnx8dD09PTEwOD8xMDg6dD09PTgyfHx0PT09MTE0PzExNDowfXZhciBva2U9cCgoKT0+e30pO2Z1bmN0aW9uIGZNKGUsdCl7bGV0IHI9dHx8e307ZnVuY3Rpb24gaShhLC4uLm4pe2xldCBvPWkuaW52YWxpZCxzPWkuaGFuZGxlcnM7aWYoYSYmc2tlLmNhbGwoYSxlKSl7bGV0IGw9U3RyaW5nKGFbZV0pO289c2tlLmNhbGwocyxsKT9zW2xdOmkudW5rbm93bn1pZihvKXJldHVybiBvLmNhbGwodGhpcyxhLC4uLm4pfXJldHVybiBpLmhhbmRsZXJzPXIuaGFuZGxlcnN8fHt9LGkuaW52YWxpZD1yLmludmFsaWQsaS51bmtub3duPXIudW5rbm93bixpfXZhciBza2UsdVY9cCgoKT0+e3NrZT17fS5oYXNPd25Qcm9wZXJ0eX0pO2Z1bmN0aW9uIHBWKGUsdCl7bGV0IHI9LTEsaTtpZih0LmV4dGVuc2lvbnMpZm9yKDsrK3I8dC5leHRlbnNpb25zLmxlbmd0aDspcFYoZSx0LmV4dGVuc2lvbnNbcl0pO2ZvcihpIGluIHQpaWYodndyLmNhbGwodCxpKSlzd2l0Y2goaSl7Y2FzZSJleHRlbnNpb25zIjpicmVhaztjYXNlInVuc2FmZSI6e2xrZShlW2ldLHRbaV0pO2JyZWFrfWNhc2Uiam9pbiI6e2xrZShlW2ldLHRbaV0pO2JyZWFrfWNhc2UiaGFuZGxlcnMiOnt4d3IoZVtpXSx0W2ldKTticmVha31kZWZhdWx0OmUub3B0aW9uc1tpXT10W2ldfXJldHVybiBlfWZ1bmN0aW9uIGxrZShlLHQpe3QmJmUucHVzaCguLi50KX1mdW5jdGlvbiB4d3IoZSx0KXt0JiZPYmplY3QuYXNzaWduKGUsdCl9dmFyIHZ3cixja2U9cCgoKT0+e3Z3cj17fS5oYXNPd25Qcm9wZXJ0eX0pO2Z1bmN0aW9uIGRrZShlLHQscixpKXtsZXQgYT1yLmVudGVyKCJibG9ja3F1b3RlIiksbj1yLmNyZWF0ZVRyYWNrZXIoaSk7bi5tb3ZlKCI+ICIpLG4uc2hpZnQoMik7bGV0IG89ci5pbmRlbnRMaW5lcyhyLmNvbnRhaW5lckZsb3coZSxuLmN1cnJlbnQoKSkseXdyKTtyZXR1cm4gYSgpLG99ZnVuY3Rpb24geXdyKGUsdCxyKXtyZXR1cm4iPiIrKHI/IiI6IiAiKStlfXZhciB1a2U9cCgoKT0+e30pO2Z1bmN0aW9uIG1NKGUsdCl7cmV0dXJuIHBrZShlLHQuaW5Db25zdHJ1Y3QsITApJiYhcGtlKGUsdC5ub3RJbkNvbnN0cnVjdCwhMSl9ZnVuY3Rpb24gcGtlKGUsdCxyKXtpZih0eXBlb2YgdD09InN0cmluZyImJih0PVt0XSksIXR8fHQubGVuZ3RoPT09MClyZXR1cm4gcjtsZXQgaT0tMTtmb3IoOysraTx0Lmxlbmd0aDspaWYoZS5pbmNsdWRlcyh0W2ldKSlyZXR1cm4hMDtyZXR1cm4hMX12YXIgaFY9cCgoKT0+e30pO2Z1bmN0aW9uIGZWKGUsdCxyLGkpe2xldCBhPS0xO2Zvcig7KythPHIudW5zYWZlLmxlbmd0aDspaWYoci51bnNhZmVbYV0uY2hhcmFjdGVyPT09YApgJiZtTShyLnN0YWNrLHIudW5zYWZlW2FdKSlyZXR1cm4vWyBcdF0vLnRlc3QoaS5iZWZvcmUpPyIiOiIgIjtyZXR1cm5gXFwKYH12YXIgaGtlPXAoKCk9PntoVigpfSk7ZnVuY3Rpb24gZmtlKGUsdCl7bGV0IHI9U3RyaW5nKGUpLGk9ci5pbmRleE9mKHQpLGE9aSxuPTAsbz0wO2lmKHR5cGVvZiB0IT0ic3RyaW5nIil0aHJvdyBuZXcgVHlwZUVycm9yKCJFeHBlY3RlZCBzdWJzdHJpbmciKTtmb3IoO2khPT0tMTspaT09PWE/KytuPm8mJihvPW4pOm49MSxhPWkrdC5sZW5ndGgsaT1yLmluZGV4T2YodCxhKTtyZXR1cm4gb312YXIgbWtlPXAoKCk9Pnt9KTtmdW5jdGlvbiBtNyhlLHQpe3JldHVybiEhKHQub3B0aW9ucy5mZW5jZXM9PT0hMSYmZS52YWx1ZSYmIWUubGFuZyYmL1teIFxyXG5dLy50ZXN0KGUudmFsdWUpJiYhL15bXHQgXSooPzpbXHJcbl18JCl8KD86XnxbXHJcbl0pW1x0IF0qJC8udGVzdChlLnZhbHVlKSl9dmFyIG1WPXAoKCk9Pnt9KTtmdW5jdGlvbiBna2UoZSl7bGV0IHQ9ZS5vcHRpb25zLmZlbmNlfHwiYCI7aWYodCE9PSJgIiYmdCE9PSJ+Iil0aHJvdyBuZXcgRXJyb3IoIkNhbm5vdCBzZXJpYWxpemUgY29kZSB3aXRoIGAiK3QrImAgZm9yIGBvcHRpb25zLmZlbmNlYCwgZXhwZWN0ZWQgYGAgYCBgYCBvciBgfmAiKTtyZXR1cm4gdH12YXIgYmtlPXAoKCk9Pnt9KTtmdW5jdGlvbiB2a2UoZSx0LHIsaSl7bGV0IGE9Z2tlKHIpLG49ZS52YWx1ZXx8IiIsbz1hPT09ImAiPyJHcmF2ZUFjY2VudCI6IlRpbGRlIjtpZihtNyhlLHIpKXtsZXQgZD1yLmVudGVyKCJjb2RlSW5kZW50ZWQiKSxoPXIuaW5kZW50TGluZXMobix3d3IpO3JldHVybiBkKCksaH1sZXQgcz1yLmNyZWF0ZVRyYWNrZXIoaSksbD1hLnJlcGVhdChNYXRoLm1heChma2UobixhKSsxLDMpKSxjPXIuZW50ZXIoImNvZGVGZW5jZWQiKSx1PXMubW92ZShsKTtpZihlLmxhbmcpe2xldCBkPXIuZW50ZXIoYGNvZGVGZW5jZWRMYW5nJHtvfWApO3UrPXMubW92ZShyLnNhZmUoZS5sYW5nLHtiZWZvcmU6dSxhZnRlcjoiICIsZW5jb2RlOlsiYCJdLC4uLnMuY3VycmVudCgpfSkpLGQoKX1pZihlLmxhbmcmJmUubWV0YSl7bGV0IGQ9ci5lbnRlcihgY29kZUZlbmNlZE1ldGEke299YCk7dSs9cy5tb3ZlKCIgIiksdSs9cy5tb3ZlKHIuc2FmZShlLm1ldGEse2JlZm9yZTp1LGFmdGVyOmAKYCxlbmNvZGU6WyJgIl0sLi4ucy5jdXJyZW50KCl9KSksZCgpfXJldHVybiB1Kz1zLm1vdmUoYApgKSxuJiYodSs9cy5tb3ZlKG4rYApgKSksdSs9cy5tb3ZlKGwpLGMoKSx1fWZ1bmN0aW9uIHd3cihlLHQscil7cmV0dXJuKHI/IiI6IiAgICAiKStlfXZhciB4a2U9cCgoKT0+e21rZSgpO21WKCk7YmtlKCl9KTtmdW5jdGlvbiB5dShlKXtsZXQgdD1lLm9wdGlvbnMucXVvdGV8fCciJztpZih0IT09JyInJiZ0IT09IiciKXRocm93IG5ldyBFcnJvcigiQ2Fubm90IHNlcmlhbGl6ZSB0aXRsZSB3aXRoIGAiK3QrImAgZm9yIGBvcHRpb25zLnF1b3RlYCwgZXhwZWN0ZWQgYFwiYCwgb3IgYCdgIik7cmV0dXJuIHR9dmFyIGdNPXAoKCk9Pnt9KTtmdW5jdGlvbiB5a2UoZSx0LHIsaSl7bGV0IGE9eXUociksbj1hPT09JyInPyJRdW90ZSI6IkFwb3N0cm9waGUiLG89ci5lbnRlcigiZGVmaW5pdGlvbiIpLHM9ci5lbnRlcigibGFiZWwiKSxsPXIuY3JlYXRlVHJhY2tlcihpKSxjPWwubW92ZSgiWyIpO3JldHVybiBjKz1sLm1vdmUoci5zYWZlKHIuYXNzb2NpYXRpb25JZChlKSx7YmVmb3JlOmMsYWZ0ZXI6Il0iLC4uLmwuY3VycmVudCgpfSkpLGMrPWwubW92ZSgiXTogIikscygpLCFlLnVybHx8L1tcMC0gXHUwMDdGXS8udGVzdChlLnVybCk/KHM9ci5lbnRlcigiZGVzdGluYXRpb25MaXRlcmFsIiksYys9bC5tb3ZlKCI8IiksYys9bC5tb3ZlKHIuc2FmZShlLnVybCx7YmVmb3JlOmMsYWZ0ZXI6Ij4iLC4uLmwuY3VycmVudCgpfSkpLGMrPWwubW92ZSgiPiIpKToocz1yLmVudGVyKCJkZXN0aW5hdGlvblJhdyIpLGMrPWwubW92ZShyLnNhZmUoZS51cmwse2JlZm9yZTpjLGFmdGVyOmUudGl0bGU/IiAiOmAKYCwuLi5sLmN1cnJlbnQoKX0pKSkscygpLGUudGl0bGUmJihzPXIuZW50ZXIoYHRpdGxlJHtufWApLGMrPWwubW92ZSgiICIrYSksYys9bC5tb3ZlKHIuc2FmZShlLnRpdGxlLHtiZWZvcmU6YyxhZnRlcjphLC4uLmwuY3VycmVudCgpfSkpLGMrPWwubW92ZShhKSxzKCkpLG8oKSxjfXZhciB3a2U9cCgoKT0+e2dNKCl9KTtmdW5jdGlvbiBNa2UoZSl7bGV0IHQ9ZS5vcHRpb25zLmVtcGhhc2lzfHwiKiI7aWYodCE9PSIqIiYmdCE9PSJfIil0aHJvdyBuZXcgRXJyb3IoIkNhbm5vdCBzZXJpYWxpemUgZW1waGFzaXMgd2l0aCBgIit0KyJgIGZvciBgb3B0aW9ucy5lbXBoYXNpc2AsIGV4cGVjdGVkIGAqYCwgb3IgYF9gIik7cmV0dXJuIHR9dmFyIGtrZT1wKCgpPT57fSk7ZnVuY3Rpb24gTm4oZSl7cmV0dXJuIiYjeCIrZS50b1N0cmluZygxNikudG9VcHBlckNhc2UoKSsiOyJ9dmFyIHd1PXAoKCk9Pnt9KTtmdW5jdGlvbiBEbChlKXtpZihlPT09bnVsbHx8WnQoZSl8fHVzKGUpKXJldHVybiAxO2lmKFYzKGUpKXJldHVybiAyfXZhciBiTT1wKCgpPT57dHIoKX0pO2Z1bmN0aW9uIE11KGUsdCxyKXtsZXQgaT1EbChlKSxhPURsKHQpO3JldHVybiBpPT09dm9pZCAwP2E9PT12b2lkIDA/cj09PSJfIj97aW5zaWRlOiEwLG91dHNpZGU6ITB9OntpbnNpZGU6ITEsb3V0c2lkZTohMX06YT09PTE/e2luc2lkZTohMCxvdXRzaWRlOiEwfTp7aW5zaWRlOiExLG91dHNpZGU6ITB9Omk9PT0xP2E9PT12b2lkIDA/e2luc2lkZTohMSxvdXRzaWRlOiExfTphPT09MT97aW5zaWRlOiEwLG91dHNpZGU6ITB9OntpbnNpZGU6ITEsb3V0c2lkZTohMX06YT09PXZvaWQgMD97aW5zaWRlOiExLG91dHNpZGU6ITF9OmE9PT0xP3tpbnNpZGU6ITAsb3V0c2lkZTohMX06e2luc2lkZTohMSxvdXRzaWRlOiExfX12YXIgZ1Y9cCgoKT0+e2JNKCl9KTtmdW5jdGlvbiBiVihlLHQscixpKXtsZXQgYT1Na2Uociksbj1yLmVudGVyKCJlbXBoYXNpcyIpLG89ci5jcmVhdGVUcmFja2VyKGkpLHM9by5tb3ZlKGEpLGw9by5tb3ZlKHIuY29udGFpbmVyUGhyYXNpbmcoZSx7YWZ0ZXI6YSxiZWZvcmU6cywuLi5vLmN1cnJlbnQoKX0pKSxjPWwuY2hhckNvZGVBdCgwKSx1PU11KGkuYmVmb3JlLmNoYXJDb2RlQXQoaS5iZWZvcmUubGVuZ3RoLTEpLGMsYSk7dS5pbnNpZGUmJihsPU5uKGMpK2wuc2xpY2UoMSkpO2xldCBkPWwuY2hhckNvZGVBdChsLmxlbmd0aC0xKSxoPU11KGkuYWZ0ZXIuY2hhckNvZGVBdCgwKSxkLGEpO2guaW5zaWRlJiYobD1sLnNsaWNlKDAsLTEpK05uKGQpKTtsZXQgZj1vLm1vdmUoYSk7cmV0dXJuIG4oKSxyLmF0dGVudGlvbkVuY29kZVN1cnJvdW5kaW5nSW5mbz17YWZ0ZXI6aC5vdXRzaWRlLGJlZm9yZTp1Lm91dHNpZGV9LHMrbCtmfWZ1bmN0aW9uIE13cihlLHQscil7cmV0dXJuIHIub3B0aW9ucy5lbXBoYXNpc3x8IioifXZhciBTa2U9cCgoKT0+e2trZSgpO3d1KCk7Z1YoKTtiVi5wZWVrPU13cn0pO2Z1bmN0aW9uIGc3KGUsdCxyLGkpe2xldCBhLG4sbzt0eXBlb2YgdD09ImZ1bmN0aW9uIiYmdHlwZW9mIHIhPSJmdW5jdGlvbiI/KG49dm9pZCAwLG89dCxhPXIpOihuPXQsbz1yLGE9aSksZjcoZSxuLHMsYSk7ZnVuY3Rpb24gcyhsLGMpe2xldCB1PWNbYy5sZW5ndGgtMV0sZD11P3UuY2hpbGRyZW4uaW5kZXhPZihsKTp2b2lkIDA7cmV0dXJuIG8obCxkLHUpfX12YXIgemtlPXAoKCk9PntoTSgpO2hNKCl9KTt2YXIgdlY9cCgoKT0+e3prZSgpfSk7ZnVuY3Rpb24gVzMoZSx0KXtsZXQgcj10fHxrd3IsaT10eXBlb2Ygci5pbmNsdWRlSW1hZ2VBbHQ9PSJib29sZWFuIj9yLmluY2x1ZGVJbWFnZUFsdDohMCxhPXR5cGVvZiByLmluY2x1ZGVIdG1sPT0iYm9vbGVhbiI/ci5pbmNsdWRlSHRtbDohMDtyZXR1cm4gQ2tlKGUsaSxhKX1mdW5jdGlvbiBDa2UoZSx0LHIpe2lmKFN3cihlKSl7aWYoInZhbHVlImluIGUpcmV0dXJuIGUudHlwZT09PSJodG1sIiYmIXI/IiI6ZS52YWx1ZTtpZih0JiYiYWx0ImluIGUmJmUuYWx0KXJldHVybiBlLmFsdDtpZigiY2hpbGRyZW4iaW4gZSlyZXR1cm4gVGtlKGUuY2hpbGRyZW4sdCxyKX1yZXR1cm4gQXJyYXkuaXNBcnJheShlKT9Ua2UoZSx0LHIpOiIifWZ1bmN0aW9uIFRrZShlLHQscil7bGV0IGk9W10sYT0tMTtmb3IoOysrYTxlLmxlbmd0aDspaVthXT1Da2UoZVthXSx0LHIpO3JldHVybiBpLmpvaW4oIiIpfWZ1bmN0aW9uIFN3cihlKXtyZXR1cm4hIShlJiZ0eXBlb2YgZT09Im9iamVjdCIpfXZhciBrd3IsX2tlPXAoKCk9Pntrd3I9e319KTt2YXIgdk09cCgoKT0+e19rZSgpfSk7ZnVuY3Rpb24geE0oZSx0KXtsZXQgcj0hMTtyZXR1cm4gZzcoZSxmdW5jdGlvbihpKXtpZigidmFsdWUiaW4gaSYmL1xyP1xufFxyLy50ZXN0KGkudmFsdWUpfHxpLnR5cGU9PT0iYnJlYWsiKXJldHVybiByPSEwLFUzfSksISEoKCFlLmRlcHRofHxlLmRlcHRoPDMpJiZXMyhlKSYmKHQub3B0aW9ucy5zZXRleHR8fHIpKX12YXIgeFY9cCgoKT0+e3ZWKCk7dk0oKX0pO2Z1bmN0aW9uIExrZShlLHQscixpKXtsZXQgYT1NYXRoLm1heChNYXRoLm1pbig2LGUuZGVwdGh8fDEpLDEpLG49ci5jcmVhdGVUcmFja2VyKGkpO2lmKHhNKGUscikpe2xldCB1PXIuZW50ZXIoImhlYWRpbmdTZXRleHQiKSxkPXIuZW50ZXIoInBocmFzaW5nIiksaD1yLmNvbnRhaW5lclBocmFzaW5nKGUsey4uLm4uY3VycmVudCgpLGJlZm9yZTpgCmAsYWZ0ZXI6YApgfSk7cmV0dXJuIGQoKSx1KCksaCtgCmArKGE9PT0xPyI9IjoiLSIpLnJlcGVhdChoLmxlbmd0aC0oTWF0aC5tYXgoaC5sYXN0SW5kZXhPZigiXHIiKSxoLmxhc3RJbmRleE9mKGAKYCkpKzEpKX1sZXQgbz0iIyIucmVwZWF0KGEpLHM9ci5lbnRlcigiaGVhZGluZ0F0eCIpLGw9ci5lbnRlcigicGhyYXNpbmciKTtuLm1vdmUobysiICIpO2xldCBjPXIuY29udGFpbmVyUGhyYXNpbmcoZSx7YmVmb3JlOiIjICIsYWZ0ZXI6YApgLC4uLm4uY3VycmVudCgpfSk7cmV0dXJuL15bXHQgXS8udGVzdChjKSYmKGM9Tm4oYy5jaGFyQ29kZUF0KDApKStjLnNsaWNlKDEpKSxjPWM/bysiICIrYzpvLHIub3B0aW9ucy5jbG9zZUF0eCYmKGMrPSIgIitvKSxsKCkscygpLGN9dmFyIEFrZT1wKCgpPT57d3UoKTt4VigpfSk7ZnVuY3Rpb24geVYoZSl7cmV0dXJuIGUudmFsdWV8fCIifWZ1bmN0aW9uIHp3cigpe3JldHVybiI8In12YXIgRGtlPXAoKCk9Pnt5Vi5wZWVrPXp3cn0pO2Z1bmN0aW9uIHdWKGUsdCxyLGkpe2xldCBhPXl1KHIpLG49YT09PSciJz8iUXVvdGUiOiJBcG9zdHJvcGhlIixvPXIuZW50ZXIoImltYWdlIikscz1yLmVudGVyKCJsYWJlbCIpLGw9ci5jcmVhdGVUcmFja2VyKGkpLGM9bC5tb3ZlKCIhWyIpO3JldHVybiBjKz1sLm1vdmUoci5zYWZlKGUuYWx0LHtiZWZvcmU6YyxhZnRlcjoiXSIsLi4ubC5jdXJyZW50KCl9KSksYys9bC5tb3ZlKCJdKCIpLHMoKSwhZS51cmwmJmUudGl0bGV8fC9bXDAtIFx1MDA3Rl0vLnRlc3QoZS51cmwpPyhzPXIuZW50ZXIoImRlc3RpbmF0aW9uTGl0ZXJhbCIpLGMrPWwubW92ZSgiPCIpLGMrPWwubW92ZShyLnNhZmUoZS51cmwse2JlZm9yZTpjLGFmdGVyOiI+IiwuLi5sLmN1cnJlbnQoKX0pKSxjKz1sLm1vdmUoIj4iKSk6KHM9ci5lbnRlcigiZGVzdGluYXRpb25SYXciKSxjKz1sLm1vdmUoci5zYWZlKGUudXJsLHtiZWZvcmU6YyxhZnRlcjplLnRpdGxlPyIgIjoiKSIsLi4ubC5jdXJyZW50KCl9KSkpLHMoKSxlLnRpdGxlJiYocz1yLmVudGVyKGB0aXRsZSR7bn1gKSxjKz1sLm1vdmUoIiAiK2EpLGMrPWwubW92ZShyLnNhZmUoZS50aXRsZSx7YmVmb3JlOmMsYWZ0ZXI6YSwuLi5sLmN1cnJlbnQoKX0pKSxjKz1sLm1vdmUoYSkscygpKSxjKz1sLm1vdmUoIikiKSxvKCksY31mdW5jdGlvbiBDd3IoKXtyZXR1cm4iISJ9dmFyIEVrZT1wKCgpPT57Z00oKTt3Vi5wZWVrPUN3cn0pO2Z1bmN0aW9uIE1WKGUsdCxyLGkpe2xldCBhPWUucmVmZXJlbmNlVHlwZSxuPXIuZW50ZXIoImltYWdlUmVmZXJlbmNlIiksbz1yLmVudGVyKCJsYWJlbCIpLHM9ci5jcmVhdGVUcmFja2VyKGkpLGw9cy5tb3ZlKCIhWyIpLGM9ci5zYWZlKGUuYWx0LHtiZWZvcmU6bCxhZnRlcjoiXSIsLi4ucy5jdXJyZW50KCl9KTtsKz1zLm1vdmUoYysiXVsiKSxvKCk7bGV0IHU9ci5zdGFjaztyLnN0YWNrPVtdLG89ci5lbnRlcigicmVmZXJlbmNlIik7bGV0IGQ9ci5zYWZlKHIuYXNzb2NpYXRpb25JZChlKSx7YmVmb3JlOmwsYWZ0ZXI6Il0iLC4uLnMuY3VycmVudCgpfSk7cmV0dXJuIG8oKSxyLnN0YWNrPXUsbigpLGE9PT0iZnVsbCJ8fCFjfHxjIT09ZD9sKz1zLm1vdmUoZCsiXSIpOmE9PT0ic2hvcnRjdXQiP2w9bC5zbGljZSgwLC0xKTpsKz1zLm1vdmUoIl0iKSxsfWZ1bmN0aW9uIFR3cigpe3JldHVybiIhIn12YXIgJGtlPXAoKCk9PntNVi5wZWVrPVR3cn0pO2Z1bmN0aW9uIGtWKGUsdCxyKXtsZXQgaT1lLnZhbHVlfHwiIixhPSJgIixuPS0xO2Zvcig7bmV3IFJlZ0V4cCgiKF58W15gXSkiK2ErIihbXmBdfCQpIikudGVzdChpKTspYSs9ImAiO2ZvcigvW14gXHJcbl0vLnRlc3QoaSkmJigvXlsgXHJcbl0vLnRlc3QoaSkmJi9bIFxyXG5dJC8udGVzdChpKXx8L15gfGAkLy50ZXN0KGkpKSYmKGk9IiAiK2krIiAiKTsrK248ci51bnNhZmUubGVuZ3RoOyl7bGV0IG89ci51bnNhZmVbbl0scz1yLmNvbXBpbGVQYXR0ZXJuKG8pLGw7aWYoby5hdEJyZWFrKWZvcig7bD1zLmV4ZWMoaSk7KXtsZXQgYz1sLmluZGV4O2kuY2hhckNvZGVBdChjKT09PTEwJiZpLmNoYXJDb2RlQXQoYy0xKT09PTEzJiZjLS0saT1pLnNsaWNlKDAsYykrIiAiK2kuc2xpY2UobC5pbmRleCsxKX19cmV0dXJuIGEraSthfWZ1bmN0aW9uIF93cigpe3JldHVybiJgIn12YXIgSWtlPXAoKCk9PntrVi5wZWVrPV93cn0pO2Z1bmN0aW9uIFNWKGUsdCl7bGV0IHI9VzMoZSk7cmV0dXJuISEoIXQub3B0aW9ucy5yZXNvdXJjZUxpbmsmJmUudXJsJiYhZS50aXRsZSYmZS5jaGlsZHJlbiYmZS5jaGlsZHJlbi5sZW5ndGg9PT0xJiZlLmNoaWxkcmVuWzBdLnR5cGU9PT0idGV4dCImJihyPT09ZS51cmx8fCJtYWlsdG86IityPT09ZS51cmwpJiYvXlthLXpdW2EteisuLV0rOi9pLnRlc3QoZS51cmwpJiYhL1tcMC0gPD5cdTAwN0ZdLy50ZXN0KGUudXJsKSl9dmFyIFBrZT1wKCgpPT57dk0oKX0pO2Z1bmN0aW9uIHpWKGUsdCxyLGkpe2xldCBhPXl1KHIpLG49YT09PSciJz8iUXVvdGUiOiJBcG9zdHJvcGhlIixvPXIuY3JlYXRlVHJhY2tlcihpKSxzLGw7aWYoU1YoZSxyKSl7bGV0IHU9ci5zdGFjaztyLnN0YWNrPVtdLHM9ci5lbnRlcigiYXV0b2xpbmsiKTtsZXQgZD1vLm1vdmUoIjwiKTtyZXR1cm4gZCs9by5tb3ZlKHIuY29udGFpbmVyUGhyYXNpbmcoZSx7YmVmb3JlOmQsYWZ0ZXI6Ij4iLC4uLm8uY3VycmVudCgpfSkpLGQrPW8ubW92ZSgiPiIpLHMoKSxyLnN0YWNrPXUsZH1zPXIuZW50ZXIoImxpbmsiKSxsPXIuZW50ZXIoImxhYmVsIik7bGV0IGM9by5tb3ZlKCJbIik7cmV0dXJuIGMrPW8ubW92ZShyLmNvbnRhaW5lclBocmFzaW5nKGUse2JlZm9yZTpjLGFmdGVyOiJdKCIsLi4uby5jdXJyZW50KCl9KSksYys9by5tb3ZlKCJdKCIpLGwoKSwhZS51cmwmJmUudGl0bGV8fC9bXDAtIFx1MDA3Rl0vLnRlc3QoZS51cmwpPyhsPXIuZW50ZXIoImRlc3RpbmF0aW9uTGl0ZXJhbCIpLGMrPW8ubW92ZSgiPCIpLGMrPW8ubW92ZShyLnNhZmUoZS51cmwse2JlZm9yZTpjLGFmdGVyOiI+IiwuLi5vLmN1cnJlbnQoKX0pKSxjKz1vLm1vdmUoIj4iKSk6KGw9ci5lbnRlcigiZGVzdGluYXRpb25SYXciKSxjKz1vLm1vdmUoci5zYWZlKGUudXJsLHtiZWZvcmU6YyxhZnRlcjplLnRpdGxlPyIgIjoiKSIsLi4uby5jdXJyZW50KCl9KSkpLGwoKSxlLnRpdGxlJiYobD1yLmVudGVyKGB0aXRsZSR7bn1gKSxjKz1vLm1vdmUoIiAiK2EpLGMrPW8ubW92ZShyLnNhZmUoZS50aXRsZSx7YmVmb3JlOmMsYWZ0ZXI6YSwuLi5vLmN1cnJlbnQoKX0pKSxjKz1vLm1vdmUoYSksbCgpKSxjKz1vLm1vdmUoIikiKSxzKCksY31mdW5jdGlvbiBMd3IoZSx0LHIpe3JldHVybiBTVihlLHIpPyI8IjoiWyJ9dmFyIE5rZT1wKCgpPT57Z00oKTtQa2UoKTt6Vi5wZWVrPUx3cn0pO2Z1bmN0aW9uIENWKGUsdCxyLGkpe2xldCBhPWUucmVmZXJlbmNlVHlwZSxuPXIuZW50ZXIoImxpbmtSZWZlcmVuY2UiKSxvPXIuZW50ZXIoImxhYmVsIikscz1yLmNyZWF0ZVRyYWNrZXIoaSksbD1zLm1vdmUoIlsiKSxjPXIuY29udGFpbmVyUGhyYXNpbmcoZSx7YmVmb3JlOmwsYWZ0ZXI6Il0iLC4uLnMuY3VycmVudCgpfSk7bCs9cy5tb3ZlKGMrIl1bIiksbygpO2xldCB1PXIuc3RhY2s7ci5zdGFjaz1bXSxvPXIuZW50ZXIoInJlZmVyZW5jZSIpO2xldCBkPXIuc2FmZShyLmFzc29jaWF0aW9uSWQoZSkse2JlZm9yZTpsLGFmdGVyOiJdIiwuLi5zLmN1cnJlbnQoKX0pO3JldHVybiBvKCksci5zdGFjaz11LG4oKSxhPT09ImZ1bGwifHwhY3x8YyE9PWQ/bCs9cy5tb3ZlKGQrIl0iKTphPT09InNob3J0Y3V0Ij9sPWwuc2xpY2UoMCwtMSk6bCs9cy5tb3ZlKCJdIiksbH1mdW5jdGlvbiBBd3IoKXtyZXR1cm4iWyJ9dmFyIEZrZT1wKCgpPT57Q1YucGVlaz1Bd3J9KTtmdW5jdGlvbiBrdShlKXtsZXQgdD1lLm9wdGlvbnMuYnVsbGV0fHwiKiI7aWYodCE9PSIqIiYmdCE9PSIrIiYmdCE9PSItIil0aHJvdyBuZXcgRXJyb3IoIkNhbm5vdCBzZXJpYWxpemUgaXRlbXMgd2l0aCBgIit0KyJgIGZvciBgb3B0aW9ucy5idWxsZXRgLCBleHBlY3RlZCBgKmAsIGArYCwgb3IgYC1gIik7cmV0dXJuIHR9dmFyIHlNPXAoKCk9Pnt9KTtmdW5jdGlvbiBPa2UoZSl7bGV0IHQ9a3UoZSkscj1lLm9wdGlvbnMuYnVsbGV0T3RoZXI7aWYoIXIpcmV0dXJuIHQ9PT0iKiI/Ii0iOiIqIjtpZihyIT09IioiJiZyIT09IisiJiZyIT09Ii0iKXRocm93IG5ldyBFcnJvcigiQ2Fubm90IHNlcmlhbGl6ZSBpdGVtcyB3aXRoIGAiK3IrImAgZm9yIGBvcHRpb25zLmJ1bGxldE90aGVyYCwgZXhwZWN0ZWQgYCpgLCBgK2AsIG9yIGAtYCIpO2lmKHI9PT10KXRocm93IG5ldyBFcnJvcigiRXhwZWN0ZWQgYGJ1bGxldGAgKGAiK3QrImApIGFuZCBgYnVsbGV0T3RoZXJgIChgIityKyJgKSB0byBiZSBkaWZmZXJlbnQiKTtyZXR1cm4gcn12YXIgUmtlPXAoKCk9Pnt5TSgpfSk7ZnVuY3Rpb24gQmtlKGUpe2xldCB0PWUub3B0aW9ucy5idWxsZXRPcmRlcmVkfHwiLiI7aWYodCE9PSIuIiYmdCE9PSIpIil0aHJvdyBuZXcgRXJyb3IoIkNhbm5vdCBzZXJpYWxpemUgaXRlbXMgd2l0aCBgIit0KyJgIGZvciBgb3B0aW9ucy5idWxsZXRPcmRlcmVkYCwgZXhwZWN0ZWQgYC5gIG9yIGApYCIpO3JldHVybiB0fXZhciBIa2U9cCgoKT0+e30pO2Z1bmN0aW9uIHdNKGUpe2xldCB0PWUub3B0aW9ucy5ydWxlfHwiKiI7aWYodCE9PSIqIiYmdCE9PSItIiYmdCE9PSJfIil0aHJvdyBuZXcgRXJyb3IoIkNhbm5vdCBzZXJpYWxpemUgcnVsZXMgd2l0aCBgIit0KyJgIGZvciBgb3B0aW9ucy5ydWxlYCwgZXhwZWN0ZWQgYCpgLCBgLWAsIG9yIGBfYCIpO3JldHVybiB0fXZhciBUVj1wKCgpPT57fSk7ZnVuY3Rpb24gcWtlKGUsdCxyLGkpe2xldCBhPXIuZW50ZXIoImxpc3QiKSxuPXIuYnVsbGV0Q3VycmVudCxvPWUub3JkZXJlZD9Ca2Uocik6a3Uocikscz1lLm9yZGVyZWQ/bz09PSIuIj8iKSI6Ii4iOk9rZShyKSxsPXQmJnIuYnVsbGV0TGFzdFVzZWQ/bz09PXIuYnVsbGV0TGFzdFVzZWQ6ITE7aWYoIWUub3JkZXJlZCl7bGV0IHU9ZS5jaGlsZHJlbj9lLmNoaWxkcmVuWzBdOnZvaWQgMDtpZigobz09PSIqInx8bz09PSItIikmJnUmJighdS5jaGlsZHJlbnx8IXUuY2hpbGRyZW5bMF0pJiZyLnN0YWNrW3Iuc3RhY2subGVuZ3RoLTFdPT09Imxpc3QiJiZyLnN0YWNrW3Iuc3RhY2subGVuZ3RoLTJdPT09Imxpc3RJdGVtIiYmci5zdGFja1tyLnN0YWNrLmxlbmd0aC0zXT09PSJsaXN0IiYmci5zdGFja1tyLnN0YWNrLmxlbmd0aC00XT09PSJsaXN0SXRlbSImJnIuaW5kZXhTdGFja1tyLmluZGV4U3RhY2subGVuZ3RoLTFdPT09MCYmci5pbmRleFN0YWNrW3IuaW5kZXhTdGFjay5sZW5ndGgtMl09PT0wJiZyLmluZGV4U3RhY2tbci5pbmRleFN0YWNrLmxlbmd0aC0zXT09PTAmJihsPSEwKSx3TShyKT09PW8mJnUpe2xldCBkPS0xO2Zvcig7KytkPGUuY2hpbGRyZW4ubGVuZ3RoOyl7bGV0IGg9ZS5jaGlsZHJlbltkXTtpZihoJiZoLnR5cGU9PT0ibGlzdEl0ZW0iJiZoLmNoaWxkcmVuJiZoLmNoaWxkcmVuWzBdJiZoLmNoaWxkcmVuWzBdLnR5cGU9PT0idGhlbWF0aWNCcmVhayIpe2w9ITA7YnJlYWt9fX19bCYmKG89cyksci5idWxsZXRDdXJyZW50PW87bGV0IGM9ci5jb250YWluZXJGbG93KGUsaSk7cmV0dXJuIHIuYnVsbGV0TGFzdFVzZWQ9byxyLmJ1bGxldEN1cnJlbnQ9bixhKCksY312YXIgamtlPXAoKCk9Pnt5TSgpO1JrZSgpO0hrZSgpO1RWKCl9KTtmdW5jdGlvbiBWa2UoZSl7bGV0IHQ9ZS5vcHRpb25zLmxpc3RJdGVtSW5kZW50fHwib25lIjtpZih0IT09InRhYiImJnQhPT0ib25lIiYmdCE9PSJtaXhlZCIpdGhyb3cgbmV3IEVycm9yKCJDYW5ub3Qgc2VyaWFsaXplIGl0ZW1zIHdpdGggYCIrdCsiYCBmb3IgYG9wdGlvbnMubGlzdEl0ZW1JbmRlbnRgLCBleHBlY3RlZCBgdGFiYCwgYG9uZWAsIG9yIGBtaXhlZGAiKTtyZXR1cm4gdH12YXIgVWtlPXAoKCk9Pnt9KTtmdW5jdGlvbiBXa2UoZSx0LHIsaSl7bGV0IGE9VmtlKHIpLG49ci5idWxsZXRDdXJyZW50fHxrdShyKTt0JiZ0LnR5cGU9PT0ibGlzdCImJnQub3JkZXJlZCYmKG49KHR5cGVvZiB0LnN0YXJ0PT0ibnVtYmVyIiYmdC5zdGFydD4tMT90LnN0YXJ0OjEpKyhyLm9wdGlvbnMuaW5jcmVtZW50TGlzdE1hcmtlcj09PSExPzA6dC5jaGlsZHJlbi5pbmRleE9mKGUpKStuKTtsZXQgbz1uLmxlbmd0aCsxOyhhPT09InRhYiJ8fGE9PT0ibWl4ZWQiJiYodCYmdC50eXBlPT09Imxpc3QiJiZ0LnNwcmVhZHx8ZS5zcHJlYWQpKSYmKG89TWF0aC5jZWlsKG8vNCkqNCk7bGV0IHM9ci5jcmVhdGVUcmFja2VyKGkpO3MubW92ZShuKyIgIi5yZXBlYXQoby1uLmxlbmd0aCkpLHMuc2hpZnQobyk7bGV0IGw9ci5lbnRlcigibGlzdEl0ZW0iKSxjPXIuaW5kZW50TGluZXMoci5jb250YWluZXJGbG93KGUscy5jdXJyZW50KCkpLHUpO3JldHVybiBsKCksYztmdW5jdGlvbiB1KGQsaCxmKXtyZXR1cm4gaD8oZj8iIjoiICIucmVwZWF0KG8pKStkOihmP246bisiICIucmVwZWF0KG8tbi5sZW5ndGgpKStkfX12YXIgR2tlPXAoKCk9Pnt5TSgpO1VrZSgpfSk7ZnVuY3Rpb24gWWtlKGUsdCxyLGkpe2xldCBhPXIuZW50ZXIoInBhcmFncmFwaCIpLG49ci5lbnRlcigicGhyYXNpbmciKSxvPXIuY29udGFpbmVyUGhyYXNpbmcoZSxpKTtyZXR1cm4gbigpLGEoKSxvfXZhciBaa2U9cCgoKT0+e30pO3ZhciBfVixYa2U9cCgoKT0+e2RNKCk7X1Y9QWwoWyJicmVhayIsImRlbGV0ZSIsImVtcGhhc2lzIiwiZm9vdG5vdGUiLCJmb290bm90ZVJlZmVyZW5jZSIsImltYWdlIiwiaW1hZ2VSZWZlcmVuY2UiLCJpbmxpbmVDb2RlIiwiaW5saW5lTWF0aCIsImxpbmsiLCJsaW5rUmVmZXJlbmNlIiwibWR4SnN4VGV4dEVsZW1lbnQiLCJtZHhUZXh0RXhwcmVzc2lvbiIsInN0cm9uZyIsInRleHQiLCJ0ZXh0RGlyZWN0aXZlIl0pfSk7dmFyIFFrZT1wKCgpPT57WGtlKCl9KTtmdW5jdGlvbiBKa2UoZSx0LHIsaSl7cmV0dXJuKGUuY2hpbGRyZW4uc29tZShmdW5jdGlvbihvKXtyZXR1cm4gX1Yobyl9KT9yLmNvbnRhaW5lclBocmFzaW5nOnIuY29udGFpbmVyRmxvdykuY2FsbChyLGUsaSl9dmFyIEtrZT1wKCgpPT57UWtlKCl9KTtmdW5jdGlvbiBlU2UoZSl7bGV0IHQ9ZS5vcHRpb25zLnN0cm9uZ3x8IioiO2lmKHQhPT0iKiImJnQhPT0iXyIpdGhyb3cgbmV3IEVycm9yKCJDYW5ub3Qgc2VyaWFsaXplIHN0cm9uZyB3aXRoIGAiK3QrImAgZm9yIGBvcHRpb25zLnN0cm9uZ2AsIGV4cGVjdGVkIGAqYCwgb3IgYF9gIik7cmV0dXJuIHR9dmFyIHRTZT1wKCgpPT57fSk7ZnVuY3Rpb24gTFYoZSx0LHIsaSl7bGV0IGE9ZVNlKHIpLG49ci5lbnRlcigic3Ryb25nIiksbz1yLmNyZWF0ZVRyYWNrZXIoaSkscz1vLm1vdmUoYSthKSxsPW8ubW92ZShyLmNvbnRhaW5lclBocmFzaW5nKGUse2FmdGVyOmEsYmVmb3JlOnMsLi4uby5jdXJyZW50KCl9KSksYz1sLmNoYXJDb2RlQXQoMCksdT1NdShpLmJlZm9yZS5jaGFyQ29kZUF0KGkuYmVmb3JlLmxlbmd0aC0xKSxjLGEpO3UuaW5zaWRlJiYobD1ObihjKStsLnNsaWNlKDEpKTtsZXQgZD1sLmNoYXJDb2RlQXQobC5sZW5ndGgtMSksaD1NdShpLmFmdGVyLmNoYXJDb2RlQXQoMCksZCxhKTtoLmluc2lkZSYmKGw9bC5zbGljZSgwLC0xKStObihkKSk7bGV0IGY9by5tb3ZlKGErYSk7cmV0dXJuIG4oKSxyLmF0dGVudGlvbkVuY29kZVN1cnJvdW5kaW5nSW5mbz17YWZ0ZXI6aC5vdXRzaWRlLGJlZm9yZTp1Lm91dHNpZGV9LHMrbCtmfWZ1bmN0aW9uIER3cihlLHQscil7cmV0dXJuIHIub3B0aW9ucy5zdHJvbmd8fCIqIn12YXIgclNlPXAoKCk9Pnt0U2UoKTt3dSgpO2dWKCk7TFYucGVlaz1Ed3J9KTtmdW5jdGlvbiBpU2UoZSx0LHIsaSl7cmV0dXJuIHIuc2FmZShlLnZhbHVlLGkpfXZhciBhU2U9cCgoKT0+e30pO2Z1bmN0aW9uIG5TZShlKXtsZXQgdD1lLm9wdGlvbnMucnVsZVJlcGV0aXRpb258fDM7aWYodDwzKXRocm93IG5ldyBFcnJvcigiQ2Fubm90IHNlcmlhbGl6ZSBydWxlcyB3aXRoIHJlcGV0aXRpb24gYCIrdCsiYCBmb3IgYG9wdGlvbnMucnVsZVJlcGV0aXRpb25gLCBleHBlY3RlZCBgM2Agb3IgbW9yZSIpO3JldHVybiB0fXZhciBvU2U9cCgoKT0+e30pO2Z1bmN0aW9uIHNTZShlLHQscil7bGV0IGk9KHdNKHIpKyhyLm9wdGlvbnMucnVsZVNwYWNlcz8iICI6IiIpKS5yZXBlYXQoblNlKHIpKTtyZXR1cm4gci5vcHRpb25zLnJ1bGVTcGFjZXM/aS5zbGljZSgwLC0xKTppfXZhciBsU2U9cCgoKT0+e29TZSgpO1RWKCl9KTt2YXIgRzMsQVY9cCgoKT0+e3VrZSgpO2hrZSgpO3hrZSgpO3drZSgpO1NrZSgpO0FrZSgpO0RrZSgpO0VrZSgpOyRrZSgpO0lrZSgpO05rZSgpO0ZrZSgpO2prZSgpO0drZSgpO1prZSgpO0trZSgpO3JTZSgpO2FTZSgpO2xTZSgpO0czPXtibG9ja3F1b3RlOmRrZSxicmVhazpmVixjb2RlOnZrZSxkZWZpbml0aW9uOnlrZSxlbXBoYXNpczpiVixoYXJkQnJlYWs6ZlYsaGVhZGluZzpMa2UsaHRtbDp5VixpbWFnZTp3VixpbWFnZVJlZmVyZW5jZTpNVixpbmxpbmVDb2RlOmtWLGxpbms6elYsbGlua1JlZmVyZW5jZTpDVixsaXN0OnFrZSxsaXN0SXRlbTpXa2UscGFyYWdyYXBoOllrZSxyb290OkprZSxzdHJvbmc6TFYsdGV4dDppU2UsdGhlbWF0aWNCcmVhazpzU2V9fSk7ZnVuY3Rpb24gRXdyKGUsdCxyLGkpe2lmKHQudHlwZT09PSJjb2RlIiYmbTcodCxpKSYmKGUudHlwZT09PSJsaXN0Inx8ZS50eXBlPT09dC50eXBlJiZtNyhlLGkpKSlyZXR1cm4hMTtpZigic3ByZWFkImluIHImJnR5cGVvZiByLnNwcmVhZD09ImJvb2xlYW4iKXJldHVybiBlLnR5cGU9PT0icGFyYWdyYXBoIiYmKGUudHlwZT09PXQudHlwZXx8dC50eXBlPT09ImRlZmluaXRpb24ifHx0LnR5cGU9PT0iaGVhZGluZyImJnhNKHQsaSkpP3ZvaWQgMDpyLnNwcmVhZD8xOjB9dmFyIGNTZSxkU2U9cCgoKT0+e21WKCk7eFYoKTtjU2U9W0V3cl19KTt2YXIgWTMsdVNlLHBTZT1wKCgpPT57WTM9WyJhdXRvbGluayIsImRlc3RpbmF0aW9uTGl0ZXJhbCIsImRlc3RpbmF0aW9uUmF3IiwicmVmZXJlbmNlIiwidGl0bGVRdW90ZSIsInRpdGxlQXBvc3Ryb3BoZSJdLHVTZT1be2NoYXJhY3RlcjoiCSIsYWZ0ZXI6IltcXHJcXG5dIixpbkNvbnN0cnVjdDoicGhyYXNpbmcifSx7Y2hhcmFjdGVyOiIJIixiZWZvcmU6IltcXHJcXG5dIixpbkNvbnN0cnVjdDoicGhyYXNpbmcifSx7Y2hhcmFjdGVyOiIJIixpbkNvbnN0cnVjdDpbImNvZGVGZW5jZWRMYW5nR3JhdmVBY2NlbnQiLCJjb2RlRmVuY2VkTGFuZ1RpbGRlIl19LHtjaGFyYWN0ZXI6IlxyIixpbkNvbnN0cnVjdDpbImNvZGVGZW5jZWRMYW5nR3JhdmVBY2NlbnQiLCJjb2RlRmVuY2VkTGFuZ1RpbGRlIiwiY29kZUZlbmNlZE1ldGFHcmF2ZUFjY2VudCIsImNvZGVGZW5jZWRNZXRhVGlsZGUiLCJkZXN0aW5hdGlvbkxpdGVyYWwiLCJoZWFkaW5nQXR4Il19LHtjaGFyYWN0ZXI6YApgLGluQ29uc3RydWN0OlsiY29kZUZlbmNlZExhbmdHcmF2ZUFjY2VudCIsImNvZGVGZW5jZWRMYW5nVGlsZGUiLCJjb2RlRmVuY2VkTWV0YUdyYXZlQWNjZW50IiwiY29kZUZlbmNlZE1ldGFUaWxkZSIsImRlc3RpbmF0aW9uTGl0ZXJhbCIsImhlYWRpbmdBdHgiXX0se2NoYXJhY3RlcjoiICIsYWZ0ZXI6IltcXHJcXG5dIixpbkNvbnN0cnVjdDoicGhyYXNpbmcifSx7Y2hhcmFjdGVyOiIgIixiZWZvcmU6IltcXHJcXG5dIixpbkNvbnN0cnVjdDoicGhyYXNpbmcifSx7Y2hhcmFjdGVyOiIgIixpbkNvbnN0cnVjdDpbImNvZGVGZW5jZWRMYW5nR3JhdmVBY2NlbnQiLCJjb2RlRmVuY2VkTGFuZ1RpbGRlIl19LHtjaGFyYWN0ZXI6IiEiLGFmdGVyOiJcXFsiLGluQ29uc3RydWN0OiJwaHJhc2luZyIsbm90SW5Db25zdHJ1Y3Q6WTN9LHtjaGFyYWN0ZXI6JyInLGluQ29uc3RydWN0OiJ0aXRsZVF1b3RlIn0se2F0QnJlYWs6ITAsY2hhcmFjdGVyOiIjIn0se2NoYXJhY3RlcjoiIyIsaW5Db25zdHJ1Y3Q6ImhlYWRpbmdBdHgiLGFmdGVyOmAoPzpbXHIKXXwkKWB9LHtjaGFyYWN0ZXI6IiYiLGFmdGVyOiJbI0EtWmEtel0iLGluQ29uc3RydWN0OiJwaHJhc2luZyJ9LHtjaGFyYWN0ZXI6IiciLGluQ29uc3RydWN0OiJ0aXRsZUFwb3N0cm9waGUifSx7Y2hhcmFjdGVyOiIoIixpbkNvbnN0cnVjdDoiZGVzdGluYXRpb25SYXcifSx7YmVmb3JlOiJcXF0iLGNoYXJhY3RlcjoiKCIsaW5Db25zdHJ1Y3Q6InBocmFzaW5nIixub3RJbkNvbnN0cnVjdDpZM30se2F0QnJlYWs6ITAsYmVmb3JlOiJcXGQrIixjaGFyYWN0ZXI6IikifSx7Y2hhcmFjdGVyOiIpIixpbkNvbnN0cnVjdDoiZGVzdGluYXRpb25SYXcifSx7YXRCcmVhazohMCxjaGFyYWN0ZXI6IioiLGFmdGVyOmAoPzpbIAlccgoqXSlgfSx7Y2hhcmFjdGVyOiIqIixpbkNvbnN0cnVjdDoicGhyYXNpbmciLG5vdEluQ29uc3RydWN0OlkzfSx7YXRCcmVhazohMCxjaGFyYWN0ZXI6IisiLGFmdGVyOmAoPzpbIAlccgpdKWB9LHthdEJyZWFrOiEwLGNoYXJhY3RlcjoiLSIsYWZ0ZXI6YCg/OlsgCVxyCi1dKWB9LHthdEJyZWFrOiEwLGJlZm9yZToiXFxkKyIsY2hhcmFjdGVyOiIuIixhZnRlcjpgKD86WyAJXHIKXXwkKWB9LHthdEJyZWFrOiEwLGNoYXJhY3RlcjoiPCIsYWZ0ZXI6IlshLz9BLVphLXpdIn0se2NoYXJhY3RlcjoiPCIsYWZ0ZXI6IlshLz9BLVphLXpdIixpbkNvbnN0cnVjdDoicGhyYXNpbmciLG5vdEluQ29uc3RydWN0OlkzfSx7Y2hhcmFjdGVyOiI8IixpbkNvbnN0cnVjdDoiZGVzdGluYXRpb25MaXRlcmFsIn0se2F0QnJlYWs6ITAsY2hhcmFjdGVyOiI9In0se2F0QnJlYWs6ITAsY2hhcmFjdGVyOiI+In0se2NoYXJhY3RlcjoiPiIsaW5Db25zdHJ1Y3Q6ImRlc3RpbmF0aW9uTGl0ZXJhbCJ9LHthdEJyZWFrOiEwLGNoYXJhY3RlcjoiWyJ9LHtjaGFyYWN0ZXI6IlsiLGluQ29uc3RydWN0OiJwaHJhc2luZyIsbm90SW5Db25zdHJ1Y3Q6WTN9LHtjaGFyYWN0ZXI6IlsiLGluQ29uc3RydWN0OlsibGFiZWwiLCJyZWZlcmVuY2UiXX0se2NoYXJhY3RlcjoiXFwiLGFmdGVyOiJbXFxyXFxuXSIsaW5Db25zdHJ1Y3Q6InBocmFzaW5nIn0se2NoYXJhY3RlcjoiXSIsaW5Db25zdHJ1Y3Q6WyJsYWJlbCIsInJlZmVyZW5jZSJdfSx7YXRCcmVhazohMCxjaGFyYWN0ZXI6Il8ifSx7Y2hhcmFjdGVyOiJfIixpbkNvbnN0cnVjdDoicGhyYXNpbmciLG5vdEluQ29uc3RydWN0OlkzfSx7YXRCcmVhazohMCxjaGFyYWN0ZXI6ImAifSx7Y2hhcmFjdGVyOiJgIixpbkNvbnN0cnVjdDpbImNvZGVGZW5jZWRMYW5nR3JhdmVBY2NlbnQiLCJjb2RlRmVuY2VkTWV0YUdyYXZlQWNjZW50Il19LHtjaGFyYWN0ZXI6ImAiLGluQ29uc3RydWN0OiJwaHJhc2luZyIsbm90SW5Db25zdHJ1Y3Q6WTN9LHthdEJyZWFrOiEwLGNoYXJhY3RlcjoifiJ9XX0pO2Z1bmN0aW9uIHcwKGUpe2xldCB0PSImIitlKyI7IjtoU2UuaW5uZXJIVE1MPXQ7bGV0IHI9aFNlLnRleHRDb250ZW50O3JldHVybiByLmNoYXJDb2RlQXQoci5sZW5ndGgtMSk9PT01OSYmZSE9PSJzZW1pInx8cj09PXQ/ITE6cn12YXIgaFNlLGI3PXAoKCk9PntoU2U9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiaSIpfSk7ZnVuY3Rpb24gU3UoZSx0KXtsZXQgcj1OdW1iZXIucGFyc2VJbnQoZSx0KTtyZXR1cm4gcjw5fHxyPT09MTF8fHI+MTMmJnI8MzJ8fHI+MTI2JiZyPDE2MHx8cj41NTI5NSYmcjw1NzM0NHx8cj42NDk3NSYmcjw2NTAwOHx8KHImNjU1MzUpPT09NjU1MzV8fChyJjY1NTM1KT09PTY1NTM0fHxyPjExMTQxMTE/Ilx1RkZGRCI6U3RyaW5nLmZyb21Db2RlUG9pbnQocil9dmFyIE1NPXAoKCk9Pnt9KTtmdW5jdGlvbiBrTShlKXtyZXR1cm4gZS5yZXBsYWNlKCR3cixJd3IpfWZ1bmN0aW9uIEl3cihlLHQscil7aWYodClyZXR1cm4gdDtpZihyLmNoYXJDb2RlQXQoMCk9PT0zNSl7bGV0IGE9ci5jaGFyQ29kZUF0KDEpLG49YT09PTEyMHx8YT09PTg4O3JldHVybiBTdShyLnNsaWNlKG4/MjoxKSxuPzE2OjEwKX1yZXR1cm4gdzAocil8fGV9dmFyICR3cixEVj1wKCgpPT57YjcoKTtNTSgpOyR3cj0vXFwoWyEtLzotQFstYHstfl0pfCYoIyg/OlxkezEsN318eFtcZGEtZl17MSw2fSl8W1xkYS16XXsxLDMxfSk7L2dpfSk7ZnVuY3Rpb24gZlNlKGUpe3JldHVybiBlLmxhYmVsfHwhZS5pZGVudGlmaWVyP2UubGFiZWx8fCIiOmtNKGUuaWRlbnRpZmllcil9dmFyIG1TZT1wKCgpPT57RFYoKX0pO2Z1bmN0aW9uIGdTZShlKXtpZighZS5fY29tcGlsZWQpe2xldCB0PShlLmF0QnJlYWs/IltcXHJcXG5dW1xcdCBdKiI6IiIpKyhlLmJlZm9yZT8iKD86IitlLmJlZm9yZSsiKSI6IiIpO2UuX2NvbXBpbGVkPW5ldyBSZWdFeHAoKHQ/IigiK3QrIikiOiIiKSsoL1t8XFx7fSgpW1xdXiQrKj8uLV0vLnRlc3QoZS5jaGFyYWN0ZXIpPyJcXCI6IiIpK2UuY2hhcmFjdGVyKyhlLmFmdGVyPyIoPzoiK2UuYWZ0ZXIrIikiOiIiKSwiZyIpfXJldHVybiBlLl9jb21waWxlZH12YXIgYlNlPXAoKCk9Pnt9KTtmdW5jdGlvbiB2U2UoZSx0LHIpe2xldCBpPXQuaW5kZXhTdGFjayxhPWUuY2hpbGRyZW58fFtdLG49W10sbz0tMSxzPXIuYmVmb3JlLGw7aS5wdXNoKC0xKTtsZXQgYz10LmNyZWF0ZVRyYWNrZXIocik7Zm9yKDsrK288YS5sZW5ndGg7KXtsZXQgdT1hW29dLGQ7aWYoaVtpLmxlbmd0aC0xXT1vLG8rMTxhLmxlbmd0aCl7bGV0IHg9dC5oYW5kbGUuaGFuZGxlcnNbYVtvKzFdLnR5cGVdO3gmJngucGVlayYmKHg9eC5wZWVrKSxkPXg/eChhW28rMV0sZSx0LHtiZWZvcmU6IiIsYWZ0ZXI6IiIsLi4uYy5jdXJyZW50KCl9KS5jaGFyQXQoMCk6IiJ9ZWxzZSBkPXIuYWZ0ZXI7bi5sZW5ndGg+MCYmKHM9PT0iXHIifHxzPT09YApgKSYmdS50eXBlPT09Imh0bWwiJiYobltuLmxlbmd0aC0xXT1uW24ubGVuZ3RoLTFdLnJlcGxhY2UoLyhccj9cbnxccikkLywiICIpLHM9IiAiLGM9dC5jcmVhdGVUcmFja2VyKHIpLGMubW92ZShuLmpvaW4oIiIpKSk7bGV0IGg9dC5oYW5kbGUodSxlLHQsey4uLmMuY3VycmVudCgpLGFmdGVyOmQsYmVmb3JlOnN9KTtsJiZsPT09aC5zbGljZSgwLDEpJiYoaD1ObihsLmNoYXJDb2RlQXQoMCkpK2guc2xpY2UoMSkpO2xldCBmPXQuYXR0ZW50aW9uRW5jb2RlU3Vycm91bmRpbmdJbmZvO3QuYXR0ZW50aW9uRW5jb2RlU3Vycm91bmRpbmdJbmZvPXZvaWQgMCxsPXZvaWQgMCxmJiYobi5sZW5ndGg+MCYmZi5iZWZvcmUmJnM9PT1uW24ubGVuZ3RoLTFdLnNsaWNlKC0xKSYmKG5bbi5sZW5ndGgtMV09bltuLmxlbmd0aC0xXS5zbGljZSgwLC0xKStObihzLmNoYXJDb2RlQXQoMCkpKSxmLmFmdGVyJiYobD1kKSksYy5tb3ZlKGgpLG4ucHVzaChoKSxzPWguc2xpY2UoLTEpfXJldHVybiBpLnBvcCgpLG4uam9pbigiIil9dmFyIHhTZT1wKCgpPT57d3UoKX0pO2Z1bmN0aW9uIHlTZShlLHQscil7bGV0IGk9dC5pbmRleFN0YWNrLGE9ZS5jaGlsZHJlbnx8W10sbj10LmNyZWF0ZVRyYWNrZXIociksbz1bXSxzPS0xO2ZvcihpLnB1c2goLTEpOysrczxhLmxlbmd0aDspe2xldCBsPWFbc107aVtpLmxlbmd0aC0xXT1zLG8ucHVzaChuLm1vdmUodC5oYW5kbGUobCxlLHQse2JlZm9yZTpgCmAsYWZ0ZXI6YApgLC4uLm4uY3VycmVudCgpfSkpKSxsLnR5cGUhPT0ibGlzdCImJih0LmJ1bGxldExhc3RVc2VkPXZvaWQgMCksczxhLmxlbmd0aC0xJiZvLnB1c2gobi5tb3ZlKFB3cihsLGFbcysxXSxlLHQpKSl9cmV0dXJuIGkucG9wKCksby5qb2luKCIiKX1mdW5jdGlvbiBQd3IoZSx0LHIsaSl7bGV0IGE9aS5qb2luLmxlbmd0aDtmb3IoO2EtLTspe2xldCBuPWkuam9pblthXShlLHQscixpKTtpZihuPT09ITB8fG49PT0xKWJyZWFrO2lmKHR5cGVvZiBuPT0ibnVtYmVyIilyZXR1cm5gCmAucmVwZWF0KDErbik7aWYobj09PSExKXJldHVybmAKCjwhLS0tLT4KCmB9cmV0dXJuYAoKYH12YXIgd1NlPXAoKCk9Pnt9KTtmdW5jdGlvbiBNU2UoZSx0KXtsZXQgcj1bXSxpPTAsYT0wLG47Zm9yKDtuPU53ci5leGVjKGUpOylvKGUuc2xpY2UoaSxuLmluZGV4KSksci5wdXNoKG5bMF0pLGk9bi5pbmRleCtuWzBdLmxlbmd0aCxhKys7cmV0dXJuIG8oZS5zbGljZShpKSksci5qb2luKCIiKTtmdW5jdGlvbiBvKHMpe3IucHVzaCh0KHMsYSwhcykpfX12YXIgTndyLGtTZT1wKCgpPT57TndyPS9ccj9cbnxcci9nfSk7ZnVuY3Rpb24gelNlKGUsdCxyKXtsZXQgaT0oci5iZWZvcmV8fCIiKSsodHx8IiIpKyhyLmFmdGVyfHwiIiksYT1bXSxuPVtdLG89e30scz0tMTtmb3IoOysrczxlLnVuc2FmZS5sZW5ndGg7KXtsZXQgdT1lLnVuc2FmZVtzXTtpZighbU0oZS5zdGFjayx1KSljb250aW51ZTtsZXQgZD1lLmNvbXBpbGVQYXR0ZXJuKHUpLGg7Zm9yKDtoPWQuZXhlYyhpKTspe2xldCBmPSJiZWZvcmUiaW4gdXx8ISF1LmF0QnJlYWsseD0iYWZ0ZXIiaW4gdSx2PWguaW5kZXgrKGY/aFsxXS5sZW5ndGg6MCk7YS5pbmNsdWRlcyh2KT8ob1t2XS5iZWZvcmUmJiFmJiYob1t2XS5iZWZvcmU9ITEpLG9bdl0uYWZ0ZXImJiF4JiYob1t2XS5hZnRlcj0hMSkpOihhLnB1c2godiksb1t2XT17YmVmb3JlOmYsYWZ0ZXI6eH0pfX1hLnNvcnQoRndyKTtsZXQgbD1yLmJlZm9yZT9yLmJlZm9yZS5sZW5ndGg6MCxjPWkubGVuZ3RoLShyLmFmdGVyP3IuYWZ0ZXIubGVuZ3RoOjApO2ZvcihzPS0xOysrczxhLmxlbmd0aDspe2xldCB1PWFbc107dTxsfHx1Pj1jfHx1KzE8YyYmYVtzKzFdPT09dSsxJiZvW3VdLmFmdGVyJiYhb1t1KzFdLmJlZm9yZSYmIW9bdSsxXS5hZnRlcnx8YVtzLTFdPT09dS0xJiZvW3VdLmJlZm9yZSYmIW9bdS0xXS5iZWZvcmUmJiFvW3UtMV0uYWZ0ZXJ8fChsIT09dSYmbi5wdXNoKFNTZShpLnNsaWNlKGwsdSksIlxcIikpLGw9dSwvWyEtLzotQFstYHstfl0vLnRlc3QoaS5jaGFyQXQodSkpJiYoIXIuZW5jb2RlfHwhci5lbmNvZGUuaW5jbHVkZXMoaS5jaGFyQXQodSkpKT9uLnB1c2goIlxcIik6KG4ucHVzaChObihpLmNoYXJDb2RlQXQodSkpKSxsKyspKX1yZXR1cm4gbi5wdXNoKFNTZShpLnNsaWNlKGwsYyksci5hZnRlcikpLG4uam9pbigiIil9ZnVuY3Rpb24gRndyKGUsdCl7cmV0dXJuIGUtdH1mdW5jdGlvbiBTU2UoZSx0KXtsZXQgcj0vXFwoPz1bIS0vOi1AWy1gey1+XSkvZyxpPVtdLGE9W10sbj1lK3Qsbz0tMSxzPTAsbDtmb3IoO2w9ci5leGVjKG4pOylpLnB1c2gobC5pbmRleCk7Zm9yKDsrK288aS5sZW5ndGg7KXMhPT1pW29dJiZhLnB1c2goZS5zbGljZShzLGlbb10pKSxhLnB1c2goIlxcIikscz1pW29dO3JldHVybiBhLnB1c2goZS5zbGljZShzKSksYS5qb2luKCIiKX12YXIgQ1NlPXAoKCk9Pnt3dSgpO2hWKCl9KTtmdW5jdGlvbiBUU2UoZSl7bGV0IHQ9ZXx8e30scj10Lm5vd3x8e30saT10LmxpbmVTaGlmdHx8MCxhPXIubGluZXx8MSxuPXIuY29sdW1ufHwxO3JldHVybnttb3ZlOmwsY3VycmVudDpvLHNoaWZ0OnN9O2Z1bmN0aW9uIG8oKXtyZXR1cm57bm93OntsaW5lOmEsY29sdW1uOm59LGxpbmVTaGlmdDppfX1mdW5jdGlvbiBzKGMpe2krPWN9ZnVuY3Rpb24gbChjKXtsZXQgdT1jfHwiIixkPXUuc3BsaXQoL1xyP1xufFxyL2cpLGg9ZFtkLmxlbmd0aC0xXTtyZXR1cm4gYSs9ZC5sZW5ndGgtMSxuPWQubGVuZ3RoPT09MT9uK2gubGVuZ3RoOjEraC5sZW5ndGgraSx1fX12YXIgX1NlPXAoKCk9Pnt9KTtmdW5jdGlvbiBFVihlLHQpe2xldCByPXR8fHt9LGk9e2Fzc29jaWF0aW9uSWQ6ZlNlLGNvbnRhaW5lclBocmFzaW5nOkh3cixjb250YWluZXJGbG93OnF3cixjcmVhdGVUcmFja2VyOlRTZSxjb21waWxlUGF0dGVybjpnU2UsZW50ZXI6bixoYW5kbGVyczp7Li4uRzN9LGhhbmRsZTp2b2lkIDAsaW5kZW50TGluZXM6TVNlLGluZGV4U3RhY2s6W10sam9pbjpbLi4uY1NlXSxvcHRpb25zOnt9LHNhZmU6andyLHN0YWNrOltdLHVuc2FmZTpbLi4udVNlXX07cFYoaSxyKSxpLm9wdGlvbnMudGlnaHREZWZpbml0aW9ucyYmaS5qb2luLnB1c2goQndyKSxpLmhhbmRsZT1mTSgidHlwZSIse2ludmFsaWQ6T3dyLHVua25vd246UndyLGhhbmRsZXJzOmkuaGFuZGxlcnN9KTtsZXQgYT1pLmhhbmRsZShlLHZvaWQgMCxpLHtiZWZvcmU6YApgLGFmdGVyOmAKYCxub3c6e2xpbmU6MSxjb2x1bW46MX0sbGluZVNoaWZ0OjB9KTtyZXR1cm4gYSYmYS5jaGFyQ29kZUF0KGEubGVuZ3RoLTEpIT09MTAmJmEuY2hhckNvZGVBdChhLmxlbmd0aC0xKSE9PTEzJiYoYSs9YApgKSxhO2Z1bmN0aW9uIG4obyl7cmV0dXJuIGkuc3RhY2sucHVzaChvKSxzO2Z1bmN0aW9uIHMoKXtpLnN0YWNrLnBvcCgpfX19ZnVuY3Rpb24gT3dyKGUpe3Rocm93IG5ldyBFcnJvcigiQ2Fubm90IGhhbmRsZSB2YWx1ZSBgIitlKyJgLCBleHBlY3RlZCBub2RlIil9ZnVuY3Rpb24gUndyKGUpe2xldCB0PWU7dGhyb3cgbmV3IEVycm9yKCJDYW5ub3QgaGFuZGxlIHVua25vd24gbm9kZSBgIit0LnR5cGUrImAiKX1mdW5jdGlvbiBCd3IoZSx0KXtpZihlLnR5cGU9PT0iZGVmaW5pdGlvbiImJmUudHlwZT09PXQudHlwZSlyZXR1cm4gMH1mdW5jdGlvbiBId3IoZSx0KXtyZXR1cm4gdlNlKGUsdGhpcyx0KX1mdW5jdGlvbiBxd3IoZSx0KXtyZXR1cm4geVNlKGUsdGhpcyx0KX1mdW5jdGlvbiBqd3IoZSx0KXtyZXR1cm4gelNlKHRoaXMsZSx0KX12YXIgTFNlPXAoKCk9Pnt1VigpO2NrZSgpO0FWKCk7ZFNlKCk7cFNlKCk7bVNlKCk7YlNlKCk7eFNlKCk7d1NlKCk7a1NlKCk7Q1NlKCk7X1NlKCl9KTt2YXIgU009cCgoKT0+e0xTZSgpO0FWKCl9KTtmdW5jdGlvbiBJVigpe3JldHVybntlbnRlcjp7dGFibGU6VndyLHRhYmxlRGF0YTpBU2UsdGFibGVIZWFkZXI6QVNlLHRhYmxlUm93Old3cn0sZXhpdDp7Y29kZVRleHQ6R3dyLHRhYmxlOlV3cix0YWJsZURhdGE6JFYsdGFibGVIZWFkZXI6JFYsdGFibGVSb3c6JFZ9fX1mdW5jdGlvbiBWd3IoZSl7bGV0IHQ9ZS5fYWxpZ247dGhpcy5lbnRlcih7dHlwZToidGFibGUiLGFsaWduOnQubWFwKGZ1bmN0aW9uKHIpe3JldHVybiByPT09Im5vbmUiP251bGw6cn0pLGNoaWxkcmVuOltdfSxlKSx0aGlzLmRhdGEuaW5UYWJsZT0hMH1mdW5jdGlvbiBVd3IoZSl7dGhpcy5leGl0KGUpLHRoaXMuZGF0YS5pblRhYmxlPXZvaWQgMH1mdW5jdGlvbiBXd3IoZSl7dGhpcy5lbnRlcih7dHlwZToidGFibGVSb3ciLGNoaWxkcmVuOltdfSxlKX1mdW5jdGlvbiAkVihlKXt0aGlzLmV4aXQoZSl9ZnVuY3Rpb24gQVNlKGUpe3RoaXMuZW50ZXIoe3R5cGU6InRhYmxlQ2VsbCIsY2hpbGRyZW46W119LGUpfWZ1bmN0aW9uIEd3cihlKXtsZXQgdD10aGlzLnJlc3VtZSgpO3RoaXMuZGF0YS5pblRhYmxlJiYodD10LnJlcGxhY2UoL1xcKFtcXHxdKS9nLFl3cikpO2xldCByPXRoaXMuc3RhY2tbdGhpcy5zdGFjay5sZW5ndGgtMV07ci50eXBlLHIudmFsdWU9dCx0aGlzLmV4aXQoZSl9ZnVuY3Rpb24gWXdyKGUsdCl7cmV0dXJuIHQ9PT0ifCI/dDplfWZ1bmN0aW9uIFBWKGUpe2xldCB0PWV8fHt9LHI9dC50YWJsZUNlbGxQYWRkaW5nLGk9dC50YWJsZVBpcGVBbGlnbixhPXQuc3RyaW5nTGVuZ3RoLG49cj8iICI6InwiO3JldHVybnt1bnNhZmU6W3tjaGFyYWN0ZXI6IlxyIixpbkNvbnN0cnVjdDoidGFibGVDZWxsIn0se2NoYXJhY3RlcjpgCmAsaW5Db25zdHJ1Y3Q6InRhYmxlQ2VsbCJ9LHthdEJyZWFrOiEwLGNoYXJhY3RlcjoifCIsYWZ0ZXI6IlsJIDotXSJ9LHtjaGFyYWN0ZXI6InwiLGluQ29uc3RydWN0OiJ0YWJsZUNlbGwifSx7YXRCcmVhazohMCxjaGFyYWN0ZXI6IjoiLGFmdGVyOiItIn0se2F0QnJlYWs6ITAsY2hhcmFjdGVyOiItIixhZnRlcjoiWzp8LV0ifV0saGFuZGxlcnM6e2lubGluZUNvZGU6aCx0YWJsZTpvLHRhYmxlQ2VsbDpsLHRhYmxlUm93OnN9fTtmdW5jdGlvbiBvKGYseCx2LGIpe3JldHVybiBjKHUoZix2LGIpLGYuYWxpZ24pfWZ1bmN0aW9uIHMoZix4LHYsYil7bGV0IHk9ZChmLHYsYiksdz1jKFt5XSk7cmV0dXJuIHcuc2xpY2UoMCx3LmluZGV4T2YoYApgKSl9ZnVuY3Rpb24gbChmLHgsdixiKXtsZXQgeT12LmVudGVyKCJ0YWJsZUNlbGwiKSx3PXYuZW50ZXIoInBocmFzaW5nIiksaz12LmNvbnRhaW5lclBocmFzaW5nKGYsey4uLmIsYmVmb3JlOm4sYWZ0ZXI6bn0pO3JldHVybiB3KCkseSgpLGt9ZnVuY3Rpb24gYyhmLHgpe3JldHVybiBua2UoZix7YWxpZ246eCxhbGlnbkRlbGltaXRlcnM6aSxwYWRkaW5nOnIsc3RyaW5nTGVuZ3RoOmF9KX1mdW5jdGlvbiB1KGYseCx2KXtsZXQgYj1mLmNoaWxkcmVuLHk9LTEsdz1bXSxrPXguZW50ZXIoInRhYmxlIik7Zm9yKDsrK3k8Yi5sZW5ndGg7KXdbeV09ZChiW3ldLHgsdik7cmV0dXJuIGsoKSx3fWZ1bmN0aW9uIGQoZix4LHYpe2xldCBiPWYuY2hpbGRyZW4seT0tMSx3PVtdLGs9eC5lbnRlcigidGFibGVSb3ciKTtmb3IoOysreTxiLmxlbmd0aDspd1t5XT1sKGJbeV0sZix4LHYpO3JldHVybiBrKCksd31mdW5jdGlvbiBoKGYseCx2KXtsZXQgYj1HMy5pbmxpbmVDb2RlKGYseCx2KTtyZXR1cm4gdi5zdGFjay5pbmNsdWRlcygidGFibGVDZWxsIikmJihiPWIucmVwbGFjZSgvXHwvZywiXFwkJiIpKSxifX12YXIgRFNlPXAoKCk9PntiMCgpO29rZSgpO1NNKCl9KTt2YXIgRVNlPXAoKCk9PntEU2UoKX0pO2Z1bmN0aW9uIE5WKCl7cmV0dXJue2V4aXQ6e3Rhc2tMaXN0Q2hlY2tWYWx1ZUNoZWNrZWQ6JFNlLHRhc2tMaXN0Q2hlY2tWYWx1ZVVuY2hlY2tlZDokU2UscGFyYWdyYXBoOlp3cn19fWZ1bmN0aW9uIEZWKCl7cmV0dXJue3Vuc2FmZTpbe2F0QnJlYWs6ITAsY2hhcmFjdGVyOiItIixhZnRlcjoiWzp8LV0ifV0saGFuZGxlcnM6e2xpc3RJdGVtOlh3cn19fWZ1bmN0aW9uICRTZShlKXtsZXQgdD10aGlzLnN0YWNrW3RoaXMuc3RhY2subGVuZ3RoLTJdO3QudHlwZSx0LmNoZWNrZWQ9ZS50eXBlPT09InRhc2tMaXN0Q2hlY2tWYWx1ZUNoZWNrZWQifWZ1bmN0aW9uIFp3cihlKXtsZXQgdD10aGlzLnN0YWNrW3RoaXMuc3RhY2subGVuZ3RoLTJdO2lmKHQmJnQudHlwZT09PSJsaXN0SXRlbSImJnR5cGVvZiB0LmNoZWNrZWQ9PSJib29sZWFuIil7bGV0IHI9dGhpcy5zdGFja1t0aGlzLnN0YWNrLmxlbmd0aC0xXTtyLnR5cGU7bGV0IGk9ci5jaGlsZHJlblswXTtpZihpJiZpLnR5cGU9PT0idGV4dCIpe2xldCBhPXQuY2hpbGRyZW4sbj0tMSxvO2Zvcig7KytuPGEubGVuZ3RoOyl7bGV0IHM9YVtuXTtpZihzLnR5cGU9PT0icGFyYWdyYXBoIil7bz1zO2JyZWFrfX1vPT09ciYmKGkudmFsdWU9aS52YWx1ZS5zbGljZSgxKSxpLnZhbHVlLmxlbmd0aD09PTA/ci5jaGlsZHJlbi5zaGlmdCgpOnIucG9zaXRpb24mJmkucG9zaXRpb24mJnR5cGVvZiBpLnBvc2l0aW9uLnN0YXJ0Lm9mZnNldD09Im51bWJlciImJihpLnBvc2l0aW9uLnN0YXJ0LmNvbHVtbisrLGkucG9zaXRpb24uc3RhcnQub2Zmc2V0Kyssci5wb3NpdGlvbi5zdGFydD1PYmplY3QuYXNzaWduKHt9LGkucG9zaXRpb24uc3RhcnQpKSl9fXRoaXMuZXhpdChlKX1mdW5jdGlvbiBYd3IoZSx0LHIsaSl7bGV0IGE9ZS5jaGlsZHJlblswXSxuPXR5cGVvZiBlLmNoZWNrZWQ9PSJib29sZWFuIiYmYSYmYS50eXBlPT09InBhcmFncmFwaCIsbz0iWyIrKGUuY2hlY2tlZD8ieCI6IiAiKSsiXSAiLHM9ci5jcmVhdGVUcmFja2VyKGkpO24mJnMubW92ZShvKTtsZXQgbD1HMy5saXN0SXRlbShlLHQscix7Li4uaSwuLi5zLmN1cnJlbnQoKX0pO3JldHVybiBuJiYobD1sLnJlcGxhY2UoL14oPzpbKistXXxcZCtcLikoW1xyXG5dfCB7MSwzfSkvLGMpKSxsO2Z1bmN0aW9uIGModSl7cmV0dXJuIHUrb319dmFyIElTZT1wKCgpPT57YjAoKTtTTSgpfSk7dmFyIFBTZT1wKCgpPT57SVNlKCl9KTtmdW5jdGlvbiBPVigpe3JldHVybltuVigpLHNWKCksY1YoKSxJVigpLE5WKCldfWZ1bmN0aW9uIFJWKGUpe3JldHVybntleHRlbnNpb25zOltvVigpLGxWKGUpLGRWKCksUFYoZSksRlYoKV19fXZhciBOU2U9cCgoKT0+e1hNZSgpO2VrZSgpO2lrZSgpO0VTZSgpO1BTZSgpfSk7dmFyIEZTZT1wKCgpPT57TlNlKCl9KTtmdW5jdGlvbiBSMShlLHQscixpKXtsZXQgYT1lLmxlbmd0aCxuPTAsbztpZih0PDA/dD0tdD5hPzA6YSt0OnQ9dD5hP2E6dCxyPXI+MD9yOjAsaS5sZW5ndGg8MWU0KW89QXJyYXkuZnJvbShpKSxvLnVuc2hpZnQodCxyKSxlLnNwbGljZSguLi5vKTtlbHNlIGZvcihyJiZlLnNwbGljZSh0LHIpO248aS5sZW5ndGg7KW89aS5zbGljZShuLG4rMWU0KSxvLnVuc2hpZnQodCwwKSxlLnNwbGljZSguLi5vKSxuKz0xZTQsdCs9MWU0fWZ1bmN0aW9uIEsxKGUsdCl7cmV0dXJuIGUubGVuZ3RoPjA/KFIxKGUsZS5sZW5ndGgsMCx0KSxlKTp0fXZhciBwcz1wKCgpPT57fSk7ZnVuY3Rpb24gek0oZSl7bGV0IHQ9e30scj0tMTtmb3IoOysrcjxlLmxlbmd0aDspUXdyKHQsZVtyXSk7cmV0dXJuIHR9ZnVuY3Rpb24gUXdyKGUsdCl7bGV0IHI7Zm9yKHIgaW4gdCl7bGV0IGE9KEJWLmNhbGwoZSxyKT9lW3JdOnZvaWQgMCl8fChlW3JdPXt9KSxuPXRbcl0sbztpZihuKWZvcihvIGluIG4pe0JWLmNhbGwoYSxvKXx8KGFbb109W10pO2xldCBzPW5bb107SndyKGFbb10sQXJyYXkuaXNBcnJheShzKT9zOnM/W3NdOltdKX19fWZ1bmN0aW9uIEp3cihlLHQpe2xldCByPS0xLGk9W107Zm9yKDsrK3I8dC5sZW5ndGg7KSh0W3JdLmFkZD09PSJhZnRlciI/ZTppKS5wdXNoKHRbcl0pO1IxKGUsMCwwLGkpfWZ1bmN0aW9uIENNKGUpe2xldCB0PXt9LHI9LTE7Zm9yKDsrK3I8ZS5sZW5ndGg7KUt3cih0LGVbcl0pO3JldHVybiB0fWZ1bmN0aW9uIEt3cihlLHQpe2xldCByO2ZvcihyIGluIHQpe2xldCBhPShCVi5jYWxsKGUscik/ZVtyXTp2b2lkIDApfHwoZVtyXT17fSksbj10W3JdLG87aWYobilmb3IobyBpbiBuKWFbb109bltvXX19dmFyIEJWLFRNPXAoKCk9PntwcygpO0JWPXt9Lmhhc093blByb3BlcnR5fSk7ZnVuY3Rpb24galYoKXtyZXR1cm57dGV4dDpoc319ZnVuY3Rpb24gck1yKGUsdCxyKXtsZXQgaT10aGlzLGEsbjtyZXR1cm4gbztmdW5jdGlvbiBvKGQpe3JldHVybiFIVihkKXx8IVVTZS5jYWxsKGksaS5wcmV2aW91cyl8fHFWKGkuZXZlbnRzKT9yKGQpOihlLmVudGVyKCJsaXRlcmFsQXV0b2xpbmsiKSxlLmVudGVyKCJsaXRlcmFsQXV0b2xpbmtFbWFpbCIpLHMoZCkpfWZ1bmN0aW9uIHMoZCl7cmV0dXJuIEhWKGQpPyhlLmNvbnN1bWUoZCkscyk6ZD09PTY0PyhlLmNvbnN1bWUoZCksbCk6cihkKX1mdW5jdGlvbiBsKGQpe3JldHVybiBkPT09NDY/ZS5jaGVjayh0TXIsdSxjKShkKTpkPT09NDV8fGQ9PT05NXx8XzEoZCk/KG49ITAsZS5jb25zdW1lKGQpLGwpOnUoZCl9ZnVuY3Rpb24gYyhkKXtyZXR1cm4gZS5jb25zdW1lKGQpLGE9ITAsbH1mdW5jdGlvbiB1KGQpe3JldHVybiBuJiZhJiZwaShpLnByZXZpb3VzKT8oZS5leGl0KCJsaXRlcmFsQXV0b2xpbmtFbWFpbCIpLGUuZXhpdCgibGl0ZXJhbEF1dG9saW5rIiksdChkKSk6cihkKX19ZnVuY3Rpb24gaU1yKGUsdCxyKXtsZXQgaT10aGlzO3JldHVybiBhO2Z1bmN0aW9uIGEobyl7cmV0dXJuIG8hPT04NyYmbyE9PTExOXx8IWpTZS5jYWxsKGksaS5wcmV2aW91cyl8fHFWKGkuZXZlbnRzKT9yKG8pOihlLmVudGVyKCJsaXRlcmFsQXV0b2xpbmsiKSxlLmVudGVyKCJsaXRlcmFsQXV0b2xpbmtXd3ciKSxlLmNoZWNrKGVNcixlLmF0dGVtcHQoT1NlLGUuYXR0ZW1wdChSU2UsbikscikscikobykpfWZ1bmN0aW9uIG4obyl7cmV0dXJuIGUuZXhpdCgibGl0ZXJhbEF1dG9saW5rV3d3IiksZS5leGl0KCJsaXRlcmFsQXV0b2xpbmsiKSx0KG8pfX1mdW5jdGlvbiBhTXIoZSx0LHIpe2xldCBpPXRoaXMsYT0iIixuPSExO3JldHVybiBvO2Z1bmN0aW9uIG8oZCl7cmV0dXJuKGQ9PT03Mnx8ZD09PTEwNCkmJlZTZS5jYWxsKGksaS5wcmV2aW91cykmJiFxVihpLmV2ZW50cyk/KGUuZW50ZXIoImxpdGVyYWxBdXRvbGluayIpLGUuZW50ZXIoImxpdGVyYWxBdXRvbGlua0h0dHAiKSxhKz1TdHJpbmcuZnJvbUNvZGVQb2ludChkKSxlLmNvbnN1bWUoZCkscyk6cihkKX1mdW5jdGlvbiBzKGQpe2lmKHBpKGQpJiZhLmxlbmd0aDw1KXJldHVybiBhKz1TdHJpbmcuZnJvbUNvZGVQb2ludChkKSxlLmNvbnN1bWUoZCkscztpZihkPT09NTgpe2xldCBoPWEudG9Mb3dlckNhc2UoKTtpZihoPT09Imh0dHAifHxoPT09Imh0dHBzIilyZXR1cm4gZS5jb25zdW1lKGQpLGx9cmV0dXJuIHIoZCl9ZnVuY3Rpb24gbChkKXtyZXR1cm4gZD09PTQ3PyhlLmNvbnN1bWUoZCksbj9jOihuPSEwLGwpKTpyKGQpfWZ1bmN0aW9uIGMoZCl7cmV0dXJuIGQ9PT1udWxsfHxqMyhkKXx8WnQoZCl8fHVzKGQpfHxWMyhkKT9yKGQpOmUuYXR0ZW1wdChPU2UsZS5hdHRlbXB0KFJTZSx1KSxyKShkKX1mdW5jdGlvbiB1KGQpe3JldHVybiBlLmV4aXQoImxpdGVyYWxBdXRvbGlua0h0dHAiKSxlLmV4aXQoImxpdGVyYWxBdXRvbGluayIpLHQoZCl9fWZ1bmN0aW9uIG5NcihlLHQscil7bGV0IGk9MDtyZXR1cm4gYTtmdW5jdGlvbiBhKG8pe3JldHVybihvPT09ODd8fG89PT0xMTkpJiZpPDM/KGkrKyxlLmNvbnN1bWUobyksYSk6bz09PTQ2JiZpPT09Mz8oZS5jb25zdW1lKG8pLG4pOnIobyl9ZnVuY3Rpb24gbihvKXtyZXR1cm4gbz09PW51bGw/cihvKTp0KG8pfX1mdW5jdGlvbiBvTXIoZSx0LHIpe2xldCBpLGEsbjtyZXR1cm4gbztmdW5jdGlvbiBvKGMpe3JldHVybiBjPT09NDZ8fGM9PT05NT9lLmNoZWNrKEJTZSxsLHMpKGMpOmM9PT1udWxsfHxadChjKXx8dXMoYyl8fGMhPT00NSYmVjMoYyk/bChjKToobj0hMCxlLmNvbnN1bWUoYyksbyl9ZnVuY3Rpb24gcyhjKXtyZXR1cm4gYz09PTk1P2k9ITA6KGE9aSxpPXZvaWQgMCksZS5jb25zdW1lKGMpLG99ZnVuY3Rpb24gbChjKXtyZXR1cm4gYXx8aXx8IW4/cihjKTp0KGMpfX1mdW5jdGlvbiBzTXIoZSx0KXtsZXQgcj0wLGk9MDtyZXR1cm4gYTtmdW5jdGlvbiBhKG8pe3JldHVybiBvPT09NDA/KHIrKyxlLmNvbnN1bWUobyksYSk6bz09PTQxJiZpPHI/bihvKTpvPT09MzN8fG89PT0zNHx8bz09PTM4fHxvPT09Mzl8fG89PT00MXx8bz09PTQyfHxvPT09NDR8fG89PT00Nnx8bz09PTU4fHxvPT09NTl8fG89PT02MHx8bz09PTYzfHxvPT09OTN8fG89PT05NXx8bz09PTEyNj9lLmNoZWNrKEJTZSx0LG4pKG8pOm89PT1udWxsfHxadChvKXx8dXMobyk/dChvKTooZS5jb25zdW1lKG8pLGEpfWZ1bmN0aW9uIG4obyl7cmV0dXJuIG89PT00MSYmaSsrLGUuY29uc3VtZShvKSxhfX1mdW5jdGlvbiBsTXIoZSx0LHIpe3JldHVybiBpO2Z1bmN0aW9uIGkocyl7cmV0dXJuIHM9PT0zM3x8cz09PTM0fHxzPT09Mzl8fHM9PT00MXx8cz09PTQyfHxzPT09NDR8fHM9PT00Nnx8cz09PTU4fHxzPT09NTl8fHM9PT02M3x8cz09PTk1fHxzPT09MTI2PyhlLmNvbnN1bWUocyksaSk6cz09PTM4PyhlLmNvbnN1bWUocyksbik6cz09PTkzPyhlLmNvbnN1bWUocyksYSk6cz09PTYwfHxzPT09bnVsbHx8WnQocyl8fHVzKHMpP3Qocyk6cihzKX1mdW5jdGlvbiBhKHMpe3JldHVybiBzPT09bnVsbHx8cz09PTQwfHxzPT09OTF8fFp0KHMpfHx1cyhzKT90KHMpOmkocyl9ZnVuY3Rpb24gbihzKXtyZXR1cm4gcGkocyk/byhzKTpyKHMpfWZ1bmN0aW9uIG8ocyl7cmV0dXJuIHM9PT01OT8oZS5jb25zdW1lKHMpLGkpOnBpKHMpPyhlLmNvbnN1bWUocyksbyk6cihzKX19ZnVuY3Rpb24gY01yKGUsdCxyKXtyZXR1cm4gaTtmdW5jdGlvbiBpKG4pe3JldHVybiBlLmNvbnN1bWUobiksYX1mdW5jdGlvbiBhKG4pe3JldHVybiBfMShuKT9yKG4pOnQobil9fWZ1bmN0aW9uIGpTZShlKXtyZXR1cm4gZT09PW51bGx8fGU9PT00MHx8ZT09PTQyfHxlPT09OTV8fGU9PT05MXx8ZT09PTkzfHxlPT09MTI2fHxadChlKX1mdW5jdGlvbiBWU2UoZSl7cmV0dXJuIXBpKGUpfWZ1bmN0aW9uIFVTZShlKXtyZXR1cm4hKGU9PT00N3x8SFYoZSkpfWZ1bmN0aW9uIEhWKGUpe3JldHVybiBlPT09NDN8fGU9PT00NXx8ZT09PTQ2fHxlPT09OTV8fF8xKGUpfWZ1bmN0aW9uIHFWKGUpe2xldCB0PWUubGVuZ3RoLHI9ITE7Zm9yKDt0LS07KXtsZXQgaT1lW3RdWzFdO2lmKChpLnR5cGU9PT0ibGFiZWxMaW5rInx8aS50eXBlPT09ImxhYmVsSW1hZ2UiKSYmIWkuX2JhbGFuY2VkKXtyPSEwO2JyZWFrfWlmKGkuX2dmbUF1dG9saW5rTGl0ZXJhbFdhbGtlZEludG8pe3I9ITE7YnJlYWt9fXJldHVybiBlLmxlbmd0aD4wJiYhciYmKGVbZS5sZW5ndGgtMV1bMV0uX2dmbUF1dG9saW5rTGl0ZXJhbFdhbGtlZEludG89ITApLHJ9dmFyIGVNcixPU2UsUlNlLEJTZSx0TXIsSFNlLHFTZSxFbCxocyxXU2U9cCgoKT0+e3RyKCk7ZU1yPXt0b2tlbml6ZTpuTXIscGFydGlhbDohMH0sT1NlPXt0b2tlbml6ZTpvTXIscGFydGlhbDohMH0sUlNlPXt0b2tlbml6ZTpzTXIscGFydGlhbDohMH0sQlNlPXt0b2tlbml6ZTpsTXIscGFydGlhbDohMH0sdE1yPXt0b2tlbml6ZTpjTXIscGFydGlhbDohMH0sSFNlPXtuYW1lOiJ3d3dBdXRvbGluayIsdG9rZW5pemU6aU1yLHByZXZpb3VzOmpTZX0scVNlPXtuYW1lOiJwcm90b2NvbEF1dG9saW5rIix0b2tlbml6ZTphTXIscHJldmlvdXM6VlNlfSxFbD17bmFtZToiZW1haWxBdXRvbGluayIsdG9rZW5pemU6ck1yLHByZXZpb3VzOlVTZX0saHM9e307Zm9yKHZhciBaMz00ODtaMzwxMjM7KWhzW1ozXT1FbCxaMysrLFozPT09NTg/WjM9NjU6WjM9PT05MSYmKFozPTk3KTtoc1s0M109RWwsaHNbNDVdPUVsLGhzWzQ2XT1FbCxoc1s5NV09RWwsaHNbNzJdPVtFbCxxU2VdLGhzWzEwNF09W0VsLHFTZV0saHNbODddPVtFbCxIU2VdLGhzWzExOV09W0VsLEhTZV19KTtmdW5jdGlvbiBfTShlKXtyZXR1cm4gZS5yZXBsYWNlKC9bIiY8Pl0vZyx0KTtmdW5jdGlvbiB0KHIpe3JldHVybiImIitkTXJbcl0rIjsifX12YXIgZE1yLFZWPXAoKCk9PntkTXI9eyciJzoicXVvdCIsIiYiOiJhbXAiLCI8IjoibHQiLCI+IjoiZ3QifX0pO2Z1bmN0aW9uIGZzKGUsdCl7bGV0IHI9X00oRm4oZXx8IiIpKTtpZighdClyZXR1cm4gcjtsZXQgaT1yLmluZGV4T2YoIjoiKSxhPXIuaW5kZXhPZigiPyIpLG49ci5pbmRleE9mKCIjIiksbz1yLmluZGV4T2YoIi8iKTtyZXR1cm4gaTwwfHxvPi0xJiZpPm98fGE+LTEmJmk+YXx8bj4tMSYmaT5ufHx0LnRlc3Qoci5zbGljZSgwLGkpKT9yOiIifWZ1bmN0aW9uIEZuKGUpe2xldCB0PVtdLHI9LTEsaT0wLGE9MDtmb3IoOysrcjxlLmxlbmd0aDspe2xldCBuPWUuY2hhckNvZGVBdChyKSxvPSIiO2lmKG49PT0zNyYmXzEoZS5jaGFyQ29kZUF0KHIrMSkpJiZfMShlLmNoYXJDb2RlQXQocisyKSkpYT0yO2Vsc2UgaWYobjwxMjgpL1shIyQmLTs9Py1aX2Eten5dLy50ZXN0KFN0cmluZy5mcm9tQ2hhckNvZGUobikpfHwobz1TdHJpbmcuZnJvbUNoYXJDb2RlKG4pKTtlbHNlIGlmKG4+NTUyOTUmJm48NTczNDQpe2xldCBzPWUuY2hhckNvZGVBdChyKzEpO248NTYzMjAmJnM+NTYzMTkmJnM8NTczNDQ/KG89U3RyaW5nLmZyb21DaGFyQ29kZShuLHMpLGE9MSk6bz0iXHVGRkZEIn1lbHNlIG89U3RyaW5nLmZyb21DaGFyQ29kZShuKTtvJiYodC5wdXNoKGUuc2xpY2UoaSxyKSxlbmNvZGVVUklDb21wb25lbnQobykpLGk9cithKzEsbz0iIiksYSYmKHIrPWEsYT0wKX1yZXR1cm4gdC5qb2luKCIiKStlLnNsaWNlKGkpfXZhciBtcz1wKCgpPT57dHIoKTtWVigpfSk7ZnVuY3Rpb24gV1YoKXtyZXR1cm57ZXhpdDp7bGl0ZXJhbEF1dG9saW5rRW1haWw6cE1yLGxpdGVyYWxBdXRvbGlua0h0dHA6aE1yLGxpdGVyYWxBdXRvbGlua1d3dzp1TXJ9fX1mdW5jdGlvbiB1TXIoZSl7VVYuY2FsbCh0aGlzLGUsImh0dHA6Ly8iKX1mdW5jdGlvbiBwTXIoZSl7VVYuY2FsbCh0aGlzLGUsIm1haWx0bzoiKX1mdW5jdGlvbiBoTXIoZSl7VVYuY2FsbCh0aGlzLGUpfWZ1bmN0aW9uIFVWKGUsdCl7bGV0IHI9dGhpcy5zbGljZVNlcmlhbGl6ZShlKTt0aGlzLnRhZygnPGEgaHJlZj0iJytmcygodHx8IiIpK3IpKyciPicpLHRoaXMucmF3KHRoaXMuZW5jb2RlKHIpKSx0aGlzLnRhZygiPC9hPiIpfXZhciBHU2U9cCgoKT0+e21zKCl9KTt2YXIgWVNlPXAoKCk9PntXU2UoKTtHU2UoKX0pO2Z1bmN0aW9uIE0wKGUsdCxyKXtsZXQgaT1bXSxhPS0xO2Zvcig7KythPGUubGVuZ3RoOyl7bGV0IG49ZVthXS5yZXNvbHZlQWxsO24mJiFpLmluY2x1ZGVzKG4pJiYodD1uKHQsciksaS5wdXNoKG4pKX1yZXR1cm4gdH12YXIgdjc9cCgoKT0+e30pO2Z1bmN0aW9uIGZNcihlLHQpe2xldCByPS0xLGksYSxuLG8scyxsLGMsdTtmb3IoOysrcjxlLmxlbmd0aDspaWYoZVtyXVswXT09PSJlbnRlciImJmVbcl1bMV0udHlwZT09PSJhdHRlbnRpb25TZXF1ZW5jZSImJmVbcl1bMV0uX2Nsb3NlKXtmb3IoaT1yO2ktLTspaWYoZVtpXVswXT09PSJleGl0IiYmZVtpXVsxXS50eXBlPT09ImF0dGVudGlvblNlcXVlbmNlIiYmZVtpXVsxXS5fb3BlbiYmdC5zbGljZVNlcmlhbGl6ZShlW2ldWzFdKS5jaGFyQ29kZUF0KDApPT09dC5zbGljZVNlcmlhbGl6ZShlW3JdWzFdKS5jaGFyQ29kZUF0KDApKXtpZigoZVtpXVsxXS5fY2xvc2V8fGVbcl1bMV0uX29wZW4pJiYoZVtyXVsxXS5lbmQub2Zmc2V0LWVbcl1bMV0uc3RhcnQub2Zmc2V0KSUzJiYhKChlW2ldWzFdLmVuZC5vZmZzZXQtZVtpXVsxXS5zdGFydC5vZmZzZXQrZVtyXVsxXS5lbmQub2Zmc2V0LWVbcl1bMV0uc3RhcnQub2Zmc2V0KSUzKSljb250aW51ZTtsPWVbaV1bMV0uZW5kLm9mZnNldC1lW2ldWzFdLnN0YXJ0Lm9mZnNldD4xJiZlW3JdWzFdLmVuZC5vZmZzZXQtZVtyXVsxXS5zdGFydC5vZmZzZXQ+MT8yOjE7bGV0IGQ9ey4uLmVbaV1bMV0uZW5kfSxoPXsuLi5lW3JdWzFdLnN0YXJ0fTtaU2UoZCwtbCksWlNlKGgsbCksbz17dHlwZTpsPjE/InN0cm9uZ1NlcXVlbmNlIjoiZW1waGFzaXNTZXF1ZW5jZSIsc3RhcnQ6ZCxlbmQ6ey4uLmVbaV1bMV0uZW5kfX0scz17dHlwZTpsPjE/InN0cm9uZ1NlcXVlbmNlIjoiZW1waGFzaXNTZXF1ZW5jZSIsc3RhcnQ6ey4uLmVbcl1bMV0uc3RhcnR9LGVuZDpofSxuPXt0eXBlOmw+MT8ic3Ryb25nVGV4dCI6ImVtcGhhc2lzVGV4dCIsc3RhcnQ6ey4uLmVbaV1bMV0uZW5kfSxlbmQ6ey4uLmVbcl1bMV0uc3RhcnR9fSxhPXt0eXBlOmw+MT8ic3Ryb25nIjoiZW1waGFzaXMiLHN0YXJ0OnsuLi5vLnN0YXJ0fSxlbmQ6ey4uLnMuZW5kfX0sZVtpXVsxXS5lbmQ9ey4uLm8uc3RhcnR9LGVbcl1bMV0uc3RhcnQ9ey4uLnMuZW5kfSxjPVtdLGVbaV1bMV0uZW5kLm9mZnNldC1lW2ldWzFdLnN0YXJ0Lm9mZnNldCYmKGM9SzEoYyxbWyJlbnRlciIsZVtpXVsxXSx0XSxbImV4aXQiLGVbaV1bMV0sdF1dKSksYz1LMShjLFtbImVudGVyIixhLHRdLFsiZW50ZXIiLG8sdF0sWyJleGl0IixvLHRdLFsiZW50ZXIiLG4sdF1dKSxjPUsxKGMsTTAodC5wYXJzZXIuY29uc3RydWN0cy5pbnNpZGVTcGFuLm51bGwsZS5zbGljZShpKzEsciksdCkpLGM9SzEoYyxbWyJleGl0IixuLHRdLFsiZW50ZXIiLHMsdF0sWyJleGl0IixzLHRdLFsiZXhpdCIsYSx0XV0pLGVbcl1bMV0uZW5kLm9mZnNldC1lW3JdWzFdLnN0YXJ0Lm9mZnNldD8odT0yLGM9SzEoYyxbWyJlbnRlciIsZVtyXVsxXSx0XSxbImV4aXQiLGVbcl1bMV0sdF1dKSk6dT0wLFIxKGUsaS0xLHItaSszLGMpLHI9aStjLmxlbmd0aC11LTI7YnJlYWt9fWZvcihyPS0xOysrcjxlLmxlbmd0aDspZVtyXVsxXS50eXBlPT09ImF0dGVudGlvblNlcXVlbmNlIiYmKGVbcl1bMV0udHlwZT0iZGF0YSIpO3JldHVybiBlfWZ1bmN0aW9uIG1NcihlLHQpe2xldCByPXRoaXMucGFyc2VyLmNvbnN0cnVjdHMuYXR0ZW50aW9uTWFya2Vycy5udWxsLGk9dGhpcy5wcmV2aW91cyxhPURsKGkpLG47cmV0dXJuIG87ZnVuY3Rpb24gbyhsKXtyZXR1cm4gbj1sLGUuZW50ZXIoImF0dGVudGlvblNlcXVlbmNlIikscyhsKX1mdW5jdGlvbiBzKGwpe2lmKGw9PT1uKXJldHVybiBlLmNvbnN1bWUobCkscztsZXQgYz1lLmV4aXQoImF0dGVudGlvblNlcXVlbmNlIiksdT1EbChsKSxkPSF1fHx1PT09MiYmYXx8ci5pbmNsdWRlcyhsKSxoPSFhfHxhPT09MiYmdXx8ci5pbmNsdWRlcyhpKTtyZXR1cm4gYy5fb3Blbj0hIShuPT09NDI/ZDpkJiYoYXx8IWgpKSxjLl9jbG9zZT0hIShuPT09NDI/aDpoJiYodXx8IWQpKSx0KGwpfX1mdW5jdGlvbiBaU2UoZSx0KXtlLmNvbHVtbis9dCxlLm9mZnNldCs9dCxlLl9idWZmZXJJbmRleCs9dH12YXIgeDcsWFNlPXAoKCk9PntwcygpO2JNKCk7djcoKTt4Nz17bmFtZToiYXR0ZW50aW9uIixyZXNvbHZlQWxsOmZNcix0b2tlbml6ZTptTXJ9fSk7ZnVuY3Rpb24gZ01yKGUsdCxyKXtsZXQgaT0wO3JldHVybiBhO2Z1bmN0aW9uIGEoZil7cmV0dXJuIGUuZW50ZXIoImF1dG9saW5rIiksZS5lbnRlcigiYXV0b2xpbmtNYXJrZXIiKSxlLmNvbnN1bWUoZiksZS5leGl0KCJhdXRvbGlua01hcmtlciIpLGUuZW50ZXIoImF1dG9saW5rUHJvdG9jb2wiKSxufWZ1bmN0aW9uIG4oZil7cmV0dXJuIHBpKGYpPyhlLmNvbnN1bWUoZiksbyk6Zj09PTY0P3IoZik6YyhmKX1mdW5jdGlvbiBvKGYpe3JldHVybiBmPT09NDN8fGY9PT00NXx8Zj09PTQ2fHxfMShmKT8oaT0xLHMoZikpOmMoZil9ZnVuY3Rpb24gcyhmKXtyZXR1cm4gZj09PTU4PyhlLmNvbnN1bWUoZiksaT0wLGwpOihmPT09NDN8fGY9PT00NXx8Zj09PTQ2fHxfMShmKSkmJmkrKzwzMj8oZS5jb25zdW1lKGYpLHMpOihpPTAsYyhmKSl9ZnVuY3Rpb24gbChmKXtyZXR1cm4gZj09PTYyPyhlLmV4aXQoImF1dG9saW5rUHJvdG9jb2wiKSxlLmVudGVyKCJhdXRvbGlua01hcmtlciIpLGUuY29uc3VtZShmKSxlLmV4aXQoImF1dG9saW5rTWFya2VyIiksZS5leGl0KCJhdXRvbGluayIpLHQpOmY9PT1udWxsfHxmPT09MzJ8fGY9PT02MHx8ajMoZik/cihmKTooZS5jb25zdW1lKGYpLGwpfWZ1bmN0aW9uIGMoZil7cmV0dXJuIGY9PT02ND8oZS5jb25zdW1lKGYpLHUpOkZNZShmKT8oZS5jb25zdW1lKGYpLGMpOnIoZil9ZnVuY3Rpb24gdShmKXtyZXR1cm4gXzEoZik/ZChmKTpyKGYpfWZ1bmN0aW9uIGQoZil7cmV0dXJuIGY9PT00Nj8oZS5jb25zdW1lKGYpLGk9MCx1KTpmPT09NjI/KGUuZXhpdCgiYXV0b2xpbmtQcm90b2NvbCIpLnR5cGU9ImF1dG9saW5rRW1haWwiLGUuZW50ZXIoImF1dG9saW5rTWFya2VyIiksZS5jb25zdW1lKGYpLGUuZXhpdCgiYXV0b2xpbmtNYXJrZXIiKSxlLmV4aXQoImF1dG9saW5rIiksdCk6aChmKX1mdW5jdGlvbiBoKGYpe2lmKChmPT09NDV8fF8xKGYpKSYmaSsrPDYzKXtsZXQgeD1mPT09NDU/aDpkO3JldHVybiBlLmNvbnN1bWUoZikseH1yZXR1cm4gcihmKX19dmFyIEdWLFFTZT1wKCgpPT57dHIoKTtHVj17bmFtZToiYXV0b2xpbmsiLHRva2VuaXplOmdNcn19KTtmdW5jdGlvbiBtdChlLHQscixpKXtsZXQgYT1pP2ktMTpOdW1iZXIuUE9TSVRJVkVfSU5GSU5JVFksbj0wO3JldHVybiBvO2Z1bmN0aW9uIG8obCl7cmV0dXJuIGx0KGwpPyhlLmVudGVyKHIpLHMobCkpOnQobCl9ZnVuY3Rpb24gcyhsKXtyZXR1cm4gbHQobCkmJm4rKzxhPyhlLmNvbnN1bWUobCkscyk6KGUuZXhpdChyKSx0KGwpKX19dmFyIEIxPXAoKCk9Pnt0cigpfSk7ZnVuY3Rpb24gYk1yKGUsdCxyKXtyZXR1cm4gaTtmdW5jdGlvbiBpKG4pe3JldHVybiBsdChuKT9tdChlLGEsImxpbmVQcmVmaXgiKShuKTphKG4pfWZ1bmN0aW9uIGEobil7cmV0dXJuIG49PT1udWxsfHxXZShuKT90KG4pOnIobil9fXZhciBncyxMTT1wKCgpPT57QjEoKTt0cigpO2dzPXtwYXJ0aWFsOiEwLHRva2VuaXplOmJNcn19KTtmdW5jdGlvbiB2TXIoZSx0LHIpe2xldCBpPXRoaXM7cmV0dXJuIGE7ZnVuY3Rpb24gYShvKXtpZihvPT09NjIpe2xldCBzPWkuY29udGFpbmVyU3RhdGU7cmV0dXJuIHMub3Blbnx8KGUuZW50ZXIoImJsb2NrUXVvdGUiLHtfY29udGFpbmVyOiEwfSkscy5vcGVuPSEwKSxlLmVudGVyKCJibG9ja1F1b3RlUHJlZml4IiksZS5lbnRlcigiYmxvY2tRdW90ZU1hcmtlciIpLGUuY29uc3VtZShvKSxlLmV4aXQoImJsb2NrUXVvdGVNYXJrZXIiKSxufXJldHVybiByKG8pfWZ1bmN0aW9uIG4obyl7cmV0dXJuIGx0KG8pPyhlLmVudGVyKCJibG9ja1F1b3RlUHJlZml4V2hpdGVzcGFjZSIpLGUuY29uc3VtZShvKSxlLmV4aXQoImJsb2NrUXVvdGVQcmVmaXhXaGl0ZXNwYWNlIiksZS5leGl0KCJibG9ja1F1b3RlUHJlZml4IiksdCk6KGUuZXhpdCgiYmxvY2tRdW90ZVByZWZpeCIpLHQobykpfX1mdW5jdGlvbiB4TXIoZSx0LHIpe2xldCBpPXRoaXM7cmV0dXJuIGE7ZnVuY3Rpb24gYShvKXtyZXR1cm4gbHQobyk/bXQoZSxuLCJsaW5lUHJlZml4IixpLnBhcnNlci5jb25zdHJ1Y3RzLmRpc2FibGUubnVsbC5pbmNsdWRlcygiY29kZUluZGVudGVkIik/dm9pZCAwOjQpKG8pOm4obyl9ZnVuY3Rpb24gbihvKXtyZXR1cm4gZS5hdHRlbXB0KEFNLHQscikobyl9fWZ1bmN0aW9uIHlNcihlKXtlLmV4aXQoImJsb2NrUXVvdGUiKX12YXIgQU0sSlNlPXAoKCk9PntCMSgpO3RyKCk7QU09e2NvbnRpbnVhdGlvbjp7dG9rZW5pemU6eE1yfSxleGl0OnlNcixuYW1lOiJibG9ja1F1b3RlIix0b2tlbml6ZTp2TXJ9fSk7ZnVuY3Rpb24gd01yKGUsdCxyKXtyZXR1cm4gaTtmdW5jdGlvbiBpKG4pe3JldHVybiBlLmVudGVyKCJjaGFyYWN0ZXJFc2NhcGUiKSxlLmVudGVyKCJlc2NhcGVNYXJrZXIiKSxlLmNvbnN1bWUobiksZS5leGl0KCJlc2NhcGVNYXJrZXIiKSxhfWZ1bmN0aW9uIGEobil7cmV0dXJuIFJNZShuKT8oZS5lbnRlcigiY2hhcmFjdGVyRXNjYXBlVmFsdWUiKSxlLmNvbnN1bWUobiksZS5leGl0KCJjaGFyYWN0ZXJFc2NhcGVWYWx1ZSIpLGUuZXhpdCgiY2hhcmFjdGVyRXNjYXBlIiksdCk6cihuKX19dmFyIERNLEtTZT1wKCgpPT57dHIoKTtETT17bmFtZToiY2hhcmFjdGVyRXNjYXBlIix0b2tlbml6ZTp3TXJ9fSk7ZnVuY3Rpb24gTU1yKGUsdCxyKXtsZXQgaT10aGlzLGE9MCxuLG87cmV0dXJuIHM7ZnVuY3Rpb24gcyhkKXtyZXR1cm4gZS5lbnRlcigiY2hhcmFjdGVyUmVmZXJlbmNlIiksZS5lbnRlcigiY2hhcmFjdGVyUmVmZXJlbmNlTWFya2VyIiksZS5jb25zdW1lKGQpLGUuZXhpdCgiY2hhcmFjdGVyUmVmZXJlbmNlTWFya2VyIiksbH1mdW5jdGlvbiBsKGQpe3JldHVybiBkPT09MzU/KGUuZW50ZXIoImNoYXJhY3RlclJlZmVyZW5jZU1hcmtlck51bWVyaWMiKSxlLmNvbnN1bWUoZCksZS5leGl0KCJjaGFyYWN0ZXJSZWZlcmVuY2VNYXJrZXJOdW1lcmljIiksYyk6KGUuZW50ZXIoImNoYXJhY3RlclJlZmVyZW5jZVZhbHVlIiksbj0zMSxvPV8xLHUoZCkpfWZ1bmN0aW9uIGMoZCl7cmV0dXJuIGQ9PT04OHx8ZD09PTEyMD8oZS5lbnRlcigiY2hhcmFjdGVyUmVmZXJlbmNlTWFya2VySGV4YWRlY2ltYWwiKSxlLmNvbnN1bWUoZCksZS5leGl0KCJjaGFyYWN0ZXJSZWZlcmVuY2VNYXJrZXJIZXhhZGVjaW1hbCIpLGUuZW50ZXIoImNoYXJhY3RlclJlZmVyZW5jZVZhbHVlIiksbj02LG89T01lLHUpOihlLmVudGVyKCJjaGFyYWN0ZXJSZWZlcmVuY2VWYWx1ZSIpLG49NyxvPWg3LHUoZCkpfWZ1bmN0aW9uIHUoZCl7aWYoZD09PTU5JiZhKXtsZXQgaD1lLmV4aXQoImNoYXJhY3RlclJlZmVyZW5jZVZhbHVlIik7cmV0dXJuIG89PT1fMSYmIXcwKGkuc2xpY2VTZXJpYWxpemUoaCkpP3IoZCk6KGUuZW50ZXIoImNoYXJhY3RlclJlZmVyZW5jZU1hcmtlciIpLGUuY29uc3VtZShkKSxlLmV4aXQoImNoYXJhY3RlclJlZmVyZW5jZU1hcmtlciIpLGUuZXhpdCgiY2hhcmFjdGVyUmVmZXJlbmNlIiksdCl9cmV0dXJuIG8oZCkmJmErKzxuPyhlLmNvbnN1bWUoZCksdSk6cihkKX19dmFyIEVNLGV6ZT1wKCgpPT57YjcoKTt0cigpO0VNPXtuYW1lOiJjaGFyYWN0ZXJSZWZlcmVuY2UiLHRva2VuaXplOk1Ncn19KTtmdW5jdGlvbiBrTXIoZSx0LHIpe2xldCBpPXRoaXMsYT17cGFydGlhbDohMCx0b2tlbml6ZTp6fSxuPTAsbz0wLHM7cmV0dXJuIGw7ZnVuY3Rpb24gbChNKXtyZXR1cm4gYyhNKX1mdW5jdGlvbiBjKE0pe2xldCBGPWkuZXZlbnRzW2kuZXZlbnRzLmxlbmd0aC0xXTtyZXR1cm4gbj1GJiZGWzFdLnR5cGU9PT0ibGluZVByZWZpeCI/RlsyXS5zbGljZVNlcmlhbGl6ZShGWzFdLCEwKS5sZW5ndGg6MCxzPU0sZS5lbnRlcigiY29kZUZlbmNlZCIpLGUuZW50ZXIoImNvZGVGZW5jZWRGZW5jZSIpLGUuZW50ZXIoImNvZGVGZW5jZWRGZW5jZVNlcXVlbmNlIiksdShNKX1mdW5jdGlvbiB1KE0pe3JldHVybiBNPT09cz8obysrLGUuY29uc3VtZShNKSx1KTpvPDM/cihNKTooZS5leGl0KCJjb2RlRmVuY2VkRmVuY2VTZXF1ZW5jZSIpLGx0KE0pP210KGUsZCwid2hpdGVzcGFjZSIpKE0pOmQoTSkpfWZ1bmN0aW9uIGQoTSl7cmV0dXJuIE09PT1udWxsfHxXZShNKT8oZS5leGl0KCJjb2RlRmVuY2VkRmVuY2UiKSxpLmludGVycnVwdD90KE0pOmUuY2hlY2sodHplLHYsTykoTSkpOihlLmVudGVyKCJjb2RlRmVuY2VkRmVuY2VJbmZvIiksZS5lbnRlcigiY2h1bmtTdHJpbmciLHtjb250ZW50VHlwZToic3RyaW5nIn0pLGgoTSkpfWZ1bmN0aW9uIGgoTSl7cmV0dXJuIE09PT1udWxsfHxXZShNKT8oZS5leGl0KCJjaHVua1N0cmluZyIpLGUuZXhpdCgiY29kZUZlbmNlZEZlbmNlSW5mbyIpLGQoTSkpOmx0KE0pPyhlLmV4aXQoImNodW5rU3RyaW5nIiksZS5leGl0KCJjb2RlRmVuY2VkRmVuY2VJbmZvIiksbXQoZSxmLCJ3aGl0ZXNwYWNlIikoTSkpOk09PT05NiYmTT09PXM/cihNKTooZS5jb25zdW1lKE0pLGgpfWZ1bmN0aW9uIGYoTSl7cmV0dXJuIE09PT1udWxsfHxXZShNKT9kKE0pOihlLmVudGVyKCJjb2RlRmVuY2VkRmVuY2VNZXRhIiksZS5lbnRlcigiY2h1bmtTdHJpbmciLHtjb250ZW50VHlwZToic3RyaW5nIn0pLHgoTSkpfWZ1bmN0aW9uIHgoTSl7cmV0dXJuIE09PT1udWxsfHxXZShNKT8oZS5leGl0KCJjaHVua1N0cmluZyIpLGUuZXhpdCgiY29kZUZlbmNlZEZlbmNlTWV0YSIpLGQoTSkpOk09PT05NiYmTT09PXM/cihNKTooZS5jb25zdW1lKE0pLHgpfWZ1bmN0aW9uIHYoTSl7cmV0dXJuIGUuYXR0ZW1wdChhLE8sYikoTSl9ZnVuY3Rpb24gYihNKXtyZXR1cm4gZS5lbnRlcigibGluZUVuZGluZyIpLGUuY29uc3VtZShNKSxlLmV4aXQoImxpbmVFbmRpbmciKSx5fWZ1bmN0aW9uIHkoTSl7cmV0dXJuIG4+MCYmbHQoTSk/bXQoZSx3LCJsaW5lUHJlZml4IixuKzEpKE0pOncoTSl9ZnVuY3Rpb24gdyhNKXtyZXR1cm4gTT09PW51bGx8fFdlKE0pP2UuY2hlY2sodHplLHYsTykoTSk6KGUuZW50ZXIoImNvZGVGbG93VmFsdWUiKSxrKE0pKX1mdW5jdGlvbiBrKE0pe3JldHVybiBNPT09bnVsbHx8V2UoTSk/KGUuZXhpdCgiY29kZUZsb3dWYWx1ZSIpLHcoTSkpOihlLmNvbnN1bWUoTSksayl9ZnVuY3Rpb24gTyhNKXtyZXR1cm4gZS5leGl0KCJjb2RlRmVuY2VkIiksdChNKX1mdW5jdGlvbiB6KE0sRixEKXtsZXQgTj0wO3JldHVybiBSO2Z1bmN0aW9uIFIoRSl7cmV0dXJuIE0uZW50ZXIoImxpbmVFbmRpbmciKSxNLmNvbnN1bWUoRSksTS5leGl0KCJsaW5lRW5kaW5nIiksX31mdW5jdGlvbiBfKEUpe3JldHVybiBNLmVudGVyKCJjb2RlRmVuY2VkRmVuY2UiKSxsdChFKT9tdChNLFMsImxpbmVQcmVmaXgiLGkucGFyc2VyLmNvbnN0cnVjdHMuZGlzYWJsZS5udWxsLmluY2x1ZGVzKCJjb2RlSW5kZW50ZWQiKT92b2lkIDA6NCkoRSk6UyhFKX1mdW5jdGlvbiBTKEUpe3JldHVybiBFPT09cz8oTS5lbnRlcigiY29kZUZlbmNlZEZlbmNlU2VxdWVuY2UiKSwkKEUpKTpEKEUpfWZ1bmN0aW9uICQoRSl7cmV0dXJuIEU9PT1zPyhOKyssTS5jb25zdW1lKEUpLCQpOk4+PW8/KE0uZXhpdCgiY29kZUZlbmNlZEZlbmNlU2VxdWVuY2UiKSxsdChFKT9tdChNLFQsIndoaXRlc3BhY2UiKShFKTpUKEUpKTpEKEUpfWZ1bmN0aW9uIFQoRSl7cmV0dXJuIEU9PT1udWxsfHxXZShFKT8oTS5leGl0KCJjb2RlRmVuY2VkRmVuY2UiKSxGKEUpKTpEKEUpfX19ZnVuY3Rpb24gU01yKGUsdCxyKXtsZXQgaT10aGlzO3JldHVybiBhO2Z1bmN0aW9uIGEobyl7cmV0dXJuIG89PT1udWxsP3Iobyk6KGUuZW50ZXIoImxpbmVFbmRpbmciKSxlLmNvbnN1bWUobyksZS5leGl0KCJsaW5lRW5kaW5nIiksbil9ZnVuY3Rpb24gbihvKXtyZXR1cm4gaS5wYXJzZXIubGF6eVtpLm5vdygpLmxpbmVdP3Iobyk6dChvKX19dmFyIHR6ZSwkTSxyemU9cCgoKT0+e0IxKCk7dHIoKTt0emU9e3BhcnRpYWw6ITAsdG9rZW5pemU6U01yfSwkTT17Y29uY3JldGU6ITAsbmFtZToiY29kZUZlbmNlZCIsdG9rZW5pemU6a01yfX0pO2Z1bmN0aW9uIENNcihlLHQscil7bGV0IGk9dGhpcztyZXR1cm4gYTtmdW5jdGlvbiBhKGMpe3JldHVybiBlLmVudGVyKCJjb2RlSW5kZW50ZWQiKSxtdChlLG4sImxpbmVQcmVmaXgiLDUpKGMpfWZ1bmN0aW9uIG4oYyl7bGV0IHU9aS5ldmVudHNbaS5ldmVudHMubGVuZ3RoLTFdO3JldHVybiB1JiZ1WzFdLnR5cGU9PT0ibGluZVByZWZpeCImJnVbMl0uc2xpY2VTZXJpYWxpemUodVsxXSwhMCkubGVuZ3RoPj00P28oYyk6cihjKX1mdW5jdGlvbiBvKGMpe3JldHVybiBjPT09bnVsbD9sKGMpOldlKGMpP2UuYXR0ZW1wdCh6TXIsbyxsKShjKTooZS5lbnRlcigiY29kZUZsb3dWYWx1ZSIpLHMoYykpfWZ1bmN0aW9uIHMoYyl7cmV0dXJuIGM9PT1udWxsfHxXZShjKT8oZS5leGl0KCJjb2RlRmxvd1ZhbHVlIiksbyhjKSk6KGUuY29uc3VtZShjKSxzKX1mdW5jdGlvbiBsKGMpe3JldHVybiBlLmV4aXQoImNvZGVJbmRlbnRlZCIpLHQoYyl9fWZ1bmN0aW9uIFRNcihlLHQscil7bGV0IGk9dGhpcztyZXR1cm4gYTtmdW5jdGlvbiBhKG8pe3JldHVybiBpLnBhcnNlci5sYXp5W2kubm93KCkubGluZV0/cihvKTpXZShvKT8oZS5lbnRlcigibGluZUVuZGluZyIpLGUuY29uc3VtZShvKSxlLmV4aXQoImxpbmVFbmRpbmciKSxhKTptdChlLG4sImxpbmVQcmVmaXgiLDUpKG8pfWZ1bmN0aW9uIG4obyl7bGV0IHM9aS5ldmVudHNbaS5ldmVudHMubGVuZ3RoLTFdO3JldHVybiBzJiZzWzFdLnR5cGU9PT0ibGluZVByZWZpeCImJnNbMl0uc2xpY2VTZXJpYWxpemUoc1sxXSwhMCkubGVuZ3RoPj00P3Qobyk6V2Uobyk/YShvKTpyKG8pfX12YXIgeTcsek1yLGl6ZT1wKCgpPT57QjEoKTt0cigpO3k3PXtuYW1lOiJjb2RlSW5kZW50ZWQiLHRva2VuaXplOkNNcn0sek1yPXtwYXJ0aWFsOiEwLHRva2VuaXplOlRNcn19KTtmdW5jdGlvbiBfTXIoZSl7bGV0IHQ9ZS5sZW5ndGgtNCxyPTMsaSxhO2lmKChlW3JdWzFdLnR5cGU9PT0ibGluZUVuZGluZyJ8fGVbcl1bMV0udHlwZT09PSJzcGFjZSIpJiYoZVt0XVsxXS50eXBlPT09ImxpbmVFbmRpbmcifHxlW3RdWzFdLnR5cGU9PT0ic3BhY2UiKSl7Zm9yKGk9cjsrK2k8dDspaWYoZVtpXVsxXS50eXBlPT09ImNvZGVUZXh0RGF0YSIpe2Vbcl1bMV0udHlwZT0iY29kZVRleHRQYWRkaW5nIixlW3RdWzFdLnR5cGU9ImNvZGVUZXh0UGFkZGluZyIscis9Mix0LT0yO2JyZWFrfX1mb3IoaT1yLTEsdCsrOysraTw9dDspYT09PXZvaWQgMD9pIT09dCYmZVtpXVsxXS50eXBlIT09ImxpbmVFbmRpbmciJiYoYT1pKTooaT09PXR8fGVbaV1bMV0udHlwZT09PSJsaW5lRW5kaW5nIikmJihlW2FdWzFdLnR5cGU9ImNvZGVUZXh0RGF0YSIsaSE9PWErMiYmKGVbYV1bMV0uZW5kPWVbaS0xXVsxXS5lbmQsZS5zcGxpY2UoYSsyLGktYS0yKSx0LT1pLWEtMixpPWErMiksYT12b2lkIDApO3JldHVybiBlfWZ1bmN0aW9uIExNcihlKXtyZXR1cm4gZSE9PTk2fHx0aGlzLmV2ZW50c1t0aGlzLmV2ZW50cy5sZW5ndGgtMV1bMV0udHlwZT09PSJjaGFyYWN0ZXJFc2NhcGUifWZ1bmN0aW9uIEFNcihlLHQscil7bGV0IGk9dGhpcyxhPTAsbixvO3JldHVybiBzO2Z1bmN0aW9uIHMoaCl7cmV0dXJuIGUuZW50ZXIoImNvZGVUZXh0IiksZS5lbnRlcigiY29kZVRleHRTZXF1ZW5jZSIpLGwoaCl9ZnVuY3Rpb24gbChoKXtyZXR1cm4gaD09PTk2PyhlLmNvbnN1bWUoaCksYSsrLGwpOihlLmV4aXQoImNvZGVUZXh0U2VxdWVuY2UiKSxjKGgpKX1mdW5jdGlvbiBjKGgpe3JldHVybiBoPT09bnVsbD9yKGgpOmg9PT0zMj8oZS5lbnRlcigic3BhY2UiKSxlLmNvbnN1bWUoaCksZS5leGl0KCJzcGFjZSIpLGMpOmg9PT05Nj8obz1lLmVudGVyKCJjb2RlVGV4dFNlcXVlbmNlIiksbj0wLGQoaCkpOldlKGgpPyhlLmVudGVyKCJsaW5lRW5kaW5nIiksZS5jb25zdW1lKGgpLGUuZXhpdCgibGluZUVuZGluZyIpLGMpOihlLmVudGVyKCJjb2RlVGV4dERhdGEiKSx1KGgpKX1mdW5jdGlvbiB1KGgpe3JldHVybiBoPT09bnVsbHx8aD09PTMyfHxoPT09OTZ8fFdlKGgpPyhlLmV4aXQoImNvZGVUZXh0RGF0YSIpLGMoaCkpOihlLmNvbnN1bWUoaCksdSl9ZnVuY3Rpb24gZChoKXtyZXR1cm4gaD09PTk2PyhlLmNvbnN1bWUoaCksbisrLGQpOm49PT1hPyhlLmV4aXQoImNvZGVUZXh0U2VxdWVuY2UiKSxlLmV4aXQoImNvZGVUZXh0IiksdChoKSk6KG8udHlwZT0iY29kZVRleHREYXRhIix1KGgpKX19dmFyIFlWLGF6ZT1wKCgpPT57dHIoKTtZVj17bmFtZToiY29kZVRleHQiLHByZXZpb3VzOkxNcixyZXNvbHZlOl9Ncix0b2tlbml6ZTpBTXJ9fSk7ZnVuY3Rpb24gdzcoZSx0KXtsZXQgcj0wO2lmKHQubGVuZ3RoPDFlNCllLnB1c2goLi4udCk7ZWxzZSBmb3IoO3I8dC5sZW5ndGg7KWUucHVzaCguLi50LnNsaWNlKHIscisxZTQpKSxyKz0xZTR9dmFyIE03LFpWPXAoKCk9PntNNz1jbGFzc3tjb25zdHJ1Y3Rvcih0KXt0aGlzLmxlZnQ9dD9bLi4udF06W10sdGhpcy5yaWdodD1bXX1nZXQodCl7aWYodDwwfHx0Pj10aGlzLmxlZnQubGVuZ3RoK3RoaXMucmlnaHQubGVuZ3RoKXRocm93IG5ldyBSYW5nZUVycm9yKCJDYW5ub3QgYWNjZXNzIGluZGV4IGAiK3QrImAgaW4gYSBzcGxpY2UgYnVmZmVyIG9mIHNpemUgYCIrKHRoaXMubGVmdC5sZW5ndGgrdGhpcy5yaWdodC5sZW5ndGgpKyJgIik7cmV0dXJuIHQ8dGhpcy5sZWZ0Lmxlbmd0aD90aGlzLmxlZnRbdF06dGhpcy5yaWdodFt0aGlzLnJpZ2h0Lmxlbmd0aC10K3RoaXMubGVmdC5sZW5ndGgtMV19Z2V0IGxlbmd0aCgpe3JldHVybiB0aGlzLmxlZnQubGVuZ3RoK3RoaXMucmlnaHQubGVuZ3RofXNoaWZ0KCl7cmV0dXJuIHRoaXMuc2V0Q3Vyc29yKDApLHRoaXMucmlnaHQucG9wKCl9c2xpY2UodCxyKXtsZXQgaT1yPz9OdW1iZXIuUE9TSVRJVkVfSU5GSU5JVFk7cmV0dXJuIGk8dGhpcy5sZWZ0Lmxlbmd0aD90aGlzLmxlZnQuc2xpY2UodCxpKTp0PnRoaXMubGVmdC5sZW5ndGg/dGhpcy5yaWdodC5zbGljZSh0aGlzLnJpZ2h0Lmxlbmd0aC1pK3RoaXMubGVmdC5sZW5ndGgsdGhpcy5yaWdodC5sZW5ndGgtdCt0aGlzLmxlZnQubGVuZ3RoKS5yZXZlcnNlKCk6dGhpcy5sZWZ0LnNsaWNlKHQpLmNvbmNhdCh0aGlzLnJpZ2h0LnNsaWNlKHRoaXMucmlnaHQubGVuZ3RoLWkrdGhpcy5sZWZ0Lmxlbmd0aCkucmV2ZXJzZSgpKX1zcGxpY2UodCxyLGkpe2xldCBhPXJ8fDA7dGhpcy5zZXRDdXJzb3IoTWF0aC50cnVuYyh0KSk7bGV0IG49dGhpcy5yaWdodC5zcGxpY2UodGhpcy5yaWdodC5sZW5ndGgtYSxOdW1iZXIuUE9TSVRJVkVfSU5GSU5JVFkpO3JldHVybiBpJiZ3Nyh0aGlzLmxlZnQsaSksbi5yZXZlcnNlKCl9cG9wKCl7cmV0dXJuIHRoaXMuc2V0Q3Vyc29yKE51bWJlci5QT1NJVElWRV9JTkZJTklUWSksdGhpcy5sZWZ0LnBvcCgpfXB1c2godCl7dGhpcy5zZXRDdXJzb3IoTnVtYmVyLlBPU0lUSVZFX0lORklOSVRZKSx0aGlzLmxlZnQucHVzaCh0KX1wdXNoTWFueSh0KXt0aGlzLnNldEN1cnNvcihOdW1iZXIuUE9TSVRJVkVfSU5GSU5JVFkpLHc3KHRoaXMubGVmdCx0KX11bnNoaWZ0KHQpe3RoaXMuc2V0Q3Vyc29yKDApLHRoaXMucmlnaHQucHVzaCh0KX11bnNoaWZ0TWFueSh0KXt0aGlzLnNldEN1cnNvcigwKSx3Nyh0aGlzLnJpZ2h0LHQucmV2ZXJzZSgpKX1zZXRDdXJzb3IodCl7aWYoISh0PT09dGhpcy5sZWZ0Lmxlbmd0aHx8dD50aGlzLmxlZnQubGVuZ3RoJiZ0aGlzLnJpZ2h0Lmxlbmd0aD09PTB8fHQ8MCYmdGhpcy5sZWZ0Lmxlbmd0aD09PTApKWlmKHQ8dGhpcy5sZWZ0Lmxlbmd0aCl7bGV0IHI9dGhpcy5sZWZ0LnNwbGljZSh0LE51bWJlci5QT1NJVElWRV9JTkZJTklUWSk7dzcodGhpcy5yaWdodCxyLnJldmVyc2UoKSl9ZWxzZXtsZXQgcj10aGlzLnJpZ2h0LnNwbGljZSh0aGlzLmxlZnQubGVuZ3RoK3RoaXMucmlnaHQubGVuZ3RoLXQsTnVtYmVyLlBPU0lUSVZFX0lORklOSVRZKTt3Nyh0aGlzLmxlZnQsci5yZXZlcnNlKCkpfX19fSk7ZnVuY3Rpb24gSU0oZSl7bGV0IHQ9e30scj0tMSxpLGEsbixvLHMsbCxjLHU9bmV3IE03KGUpO2Zvcig7KytyPHUubGVuZ3RoOyl7Zm9yKDtyIGluIHQ7KXI9dFtyXTtpZihpPXUuZ2V0KHIpLHImJmlbMV0udHlwZT09PSJjaHVua0Zsb3ciJiZ1LmdldChyLTEpWzFdLnR5cGU9PT0ibGlzdEl0ZW1QcmVmaXgiJiYobD1pWzFdLl90b2tlbml6ZXIuZXZlbnRzLG49MCxuPGwubGVuZ3RoJiZsW25dWzFdLnR5cGU9PT0ibGluZUVuZGluZ0JsYW5rIiYmKG4rPTIpLG48bC5sZW5ndGgmJmxbbl1bMV0udHlwZT09PSJjb250ZW50IikpZm9yKDsrK248bC5sZW5ndGgmJmxbbl1bMV0udHlwZSE9PSJjb250ZW50IjspbFtuXVsxXS50eXBlPT09ImNodW5rVGV4dCImJihsW25dWzFdLl9pc0luRmlyc3RDb250ZW50T2ZMaXN0SXRlbT0hMCxuKyspO2lmKGlbMF09PT0iZW50ZXIiKWlbMV0uY29udGVudFR5cGUmJihPYmplY3QuYXNzaWduKHQsRE1yKHUscikpLHI9dFtyXSxjPSEwKTtlbHNlIGlmKGlbMV0uX2NvbnRhaW5lcil7Zm9yKG49cixhPXZvaWQgMDtuLS07KWlmKG89dS5nZXQobiksb1sxXS50eXBlPT09ImxpbmVFbmRpbmcifHxvWzFdLnR5cGU9PT0ibGluZUVuZGluZ0JsYW5rIilvWzBdPT09ImVudGVyIiYmKGEmJih1LmdldChhKVsxXS50eXBlPSJsaW5lRW5kaW5nQmxhbmsiKSxvWzFdLnR5cGU9ImxpbmVFbmRpbmciLGE9bik7ZWxzZSBpZighKG9bMV0udHlwZT09PSJsaW5lUHJlZml4Inx8b1sxXS50eXBlPT09Imxpc3RJdGVtSW5kZW50IikpYnJlYWs7YSYmKGlbMV0uZW5kPXsuLi51LmdldChhKVsxXS5zdGFydH0scz11LnNsaWNlKGEscikscy51bnNoaWZ0KGkpLHUuc3BsaWNlKGEsci1hKzEscykpfX1yZXR1cm4gUjEoZSwwLE51bWJlci5QT1NJVElWRV9JTkZJTklUWSx1LnNsaWNlKDApKSwhY31mdW5jdGlvbiBETXIoZSx0KXtsZXQgcj1lLmdldCh0KVsxXSxpPWUuZ2V0KHQpWzJdLGE9dC0xLG49W10sbz1yLl90b2tlbml6ZXI7b3x8KG89aS5wYXJzZXJbci5jb250ZW50VHlwZV0oci5zdGFydCksci5fY29udGVudFR5cGVUZXh0VHJhaWxpbmcmJihvLl9jb250ZW50VHlwZVRleHRUcmFpbGluZz0hMCkpO2xldCBzPW8uZXZlbnRzLGw9W10sYz17fSx1LGQsaD0tMSxmPXIseD0wLHY9MCxiPVt2XTtmb3IoO2Y7KXtmb3IoO2UuZ2V0KCsrYSlbMV0hPT1mOyk7bi5wdXNoKGEpLGYuX3Rva2VuaXplcnx8KHU9aS5zbGljZVN0cmVhbShmKSxmLm5leHR8fHUucHVzaChudWxsKSxkJiZvLmRlZmluZVNraXAoZi5zdGFydCksZi5faXNJbkZpcnN0Q29udGVudE9mTGlzdEl0ZW0mJihvLl9nZm1UYXNrbGlzdEZpcnN0Q29udGVudE9mTGlzdEl0ZW09ITApLG8ud3JpdGUodSksZi5faXNJbkZpcnN0Q29udGVudE9mTGlzdEl0ZW0mJihvLl9nZm1UYXNrbGlzdEZpcnN0Q29udGVudE9mTGlzdEl0ZW09dm9pZCAwKSksZD1mLGY9Zi5uZXh0fWZvcihmPXI7KytoPHMubGVuZ3RoOylzW2hdWzBdPT09ImV4aXQiJiZzW2gtMV1bMF09PT0iZW50ZXIiJiZzW2hdWzFdLnR5cGU9PT1zW2gtMV1bMV0udHlwZSYmc1toXVsxXS5zdGFydC5saW5lIT09c1toXVsxXS5lbmQubGluZSYmKHY9aCsxLGIucHVzaCh2KSxmLl90b2tlbml6ZXI9dm9pZCAwLGYucHJldmlvdXM9dm9pZCAwLGY9Zi5uZXh0KTtmb3Ioby5ldmVudHM9W10sZj8oZi5fdG9rZW5pemVyPXZvaWQgMCxmLnByZXZpb3VzPXZvaWQgMCk6Yi5wb3AoKSxoPWIubGVuZ3RoO2gtLTspe2xldCB5PXMuc2xpY2UoYltoXSxiW2grMV0pLHc9bi5wb3AoKTtsLnB1c2goW3csdyt5Lmxlbmd0aC0xXSksZS5zcGxpY2UodywyLHkpfWZvcihsLnJldmVyc2UoKSxoPS0xOysraDxsLmxlbmd0aDspY1t4K2xbaF1bMF1dPXgrbFtoXVsxXSx4Kz1sW2hdWzFdLWxbaF1bMF0tMTtyZXR1cm4gY312YXIgWFY9cCgoKT0+e3BzKCk7WlYoKTtaVigpfSk7ZnVuY3Rpb24gJE1yKGUpe3JldHVybiBJTShlKSxlfWZ1bmN0aW9uIElNcihlLHQpe2xldCByO3JldHVybiBpO2Z1bmN0aW9uIGkocyl7cmV0dXJuIGUuZW50ZXIoImNvbnRlbnQiKSxyPWUuZW50ZXIoImNodW5rQ29udGVudCIse2NvbnRlbnRUeXBlOiJjb250ZW50In0pLGEocyl9ZnVuY3Rpb24gYShzKXtyZXR1cm4gcz09PW51bGw/bihzKTpXZShzKT9lLmNoZWNrKEVNcixvLG4pKHMpOihlLmNvbnN1bWUocyksYSl9ZnVuY3Rpb24gbihzKXtyZXR1cm4gZS5leGl0KCJjaHVua0NvbnRlbnQiKSxlLmV4aXQoImNvbnRlbnQiKSx0KHMpfWZ1bmN0aW9uIG8ocyl7cmV0dXJuIGUuY29uc3VtZShzKSxlLmV4aXQoImNodW5rQ29udGVudCIpLHIubmV4dD1lLmVudGVyKCJjaHVua0NvbnRlbnQiLHtjb250ZW50VHlwZToiY29udGVudCIscHJldmlvdXM6cn0pLHI9ci5uZXh0LGF9fWZ1bmN0aW9uIFBNcihlLHQscil7bGV0IGk9dGhpcztyZXR1cm4gYTtmdW5jdGlvbiBhKG8pe3JldHVybiBlLmV4aXQoImNodW5rQ29udGVudCIpLGUuZW50ZXIoImxpbmVFbmRpbmciKSxlLmNvbnN1bWUobyksZS5leGl0KCJsaW5lRW5kaW5nIiksbXQoZSxuLCJsaW5lUHJlZml4Iil9ZnVuY3Rpb24gbihvKXtpZihvPT09bnVsbHx8V2UobykpcmV0dXJuIHIobyk7bGV0IHM9aS5ldmVudHNbaS5ldmVudHMubGVuZ3RoLTFdO3JldHVybiFpLnBhcnNlci5jb25zdHJ1Y3RzLmRpc2FibGUubnVsbC5pbmNsdWRlcygiY29kZUluZGVudGVkIikmJnMmJnNbMV0udHlwZT09PSJsaW5lUHJlZml4IiYmc1syXS5zbGljZVNlcmlhbGl6ZShzWzFdLCEwKS5sZW5ndGg+PTQ/dChvKTplLmludGVycnVwdChpLnBhcnNlci5jb25zdHJ1Y3RzLmZsb3cscix0KShvKX19dmFyIFFWLEVNcixuemU9cCgoKT0+e0IxKCk7dHIoKTtYVigpO1FWPXtyZXNvbHZlOiRNcix0b2tlbml6ZTpJTXJ9LEVNcj17cGFydGlhbDohMCx0b2tlbml6ZTpQTXJ9fSk7ZnVuY3Rpb24gUE0oZSx0LHIsaSxhLG4sbyxzLGwpe2xldCBjPWx8fE51bWJlci5QT1NJVElWRV9JTkZJTklUWSx1PTA7cmV0dXJuIGQ7ZnVuY3Rpb24gZCh5KXtyZXR1cm4geT09PTYwPyhlLmVudGVyKGkpLGUuZW50ZXIoYSksZS5lbnRlcihuKSxlLmNvbnN1bWUoeSksZS5leGl0KG4pLGgpOnk9PT1udWxsfHx5PT09MzJ8fHk9PT00MXx8ajMoeSk/cih5KTooZS5lbnRlcihpKSxlLmVudGVyKG8pLGUuZW50ZXIocyksZS5lbnRlcigiY2h1bmtTdHJpbmciLHtjb250ZW50VHlwZToic3RyaW5nIn0pLHYoeSkpfWZ1bmN0aW9uIGgoeSl7cmV0dXJuIHk9PT02Mj8oZS5lbnRlcihuKSxlLmNvbnN1bWUoeSksZS5leGl0KG4pLGUuZXhpdChhKSxlLmV4aXQoaSksdCk6KGUuZW50ZXIocyksZS5lbnRlcigiY2h1bmtTdHJpbmciLHtjb250ZW50VHlwZToic3RyaW5nIn0pLGYoeSkpfWZ1bmN0aW9uIGYoeSl7cmV0dXJuIHk9PT02Mj8oZS5leGl0KCJjaHVua1N0cmluZyIpLGUuZXhpdChzKSxoKHkpKTp5PT09bnVsbHx8eT09PTYwfHxXZSh5KT9yKHkpOihlLmNvbnN1bWUoeSkseT09PTkyP3g6Zil9ZnVuY3Rpb24geCh5KXtyZXR1cm4geT09PTYwfHx5PT09NjJ8fHk9PT05Mj8oZS5jb25zdW1lKHkpLGYpOmYoeSl9ZnVuY3Rpb24gdih5KXtyZXR1cm4hdSYmKHk9PT1udWxsfHx5PT09NDF8fFp0KHkpKT8oZS5leGl0KCJjaHVua1N0cmluZyIpLGUuZXhpdChzKSxlLmV4aXQobyksZS5leGl0KGkpLHQoeSkpOnU8YyYmeT09PTQwPyhlLmNvbnN1bWUoeSksdSsrLHYpOnk9PT00MT8oZS5jb25zdW1lKHkpLHUtLSx2KTp5PT09bnVsbHx8eT09PTMyfHx5PT09NDB8fGozKHkpP3IoeSk6KGUuY29uc3VtZSh5KSx5PT09OTI/Yjp2KX1mdW5jdGlvbiBiKHkpe3JldHVybiB5PT09NDB8fHk9PT00MXx8eT09PTkyPyhlLmNvbnN1bWUoeSksdik6dih5KX19dmFyIEpWPXAoKCk9Pnt0cigpfSk7ZnVuY3Rpb24gTk0oZSx0LHIsaSxhLG4pe2xldCBvPXRoaXMscz0wLGw7cmV0dXJuIGM7ZnVuY3Rpb24gYyhmKXtyZXR1cm4gZS5lbnRlcihpKSxlLmVudGVyKGEpLGUuY29uc3VtZShmKSxlLmV4aXQoYSksZS5lbnRlcihuKSx1fWZ1bmN0aW9uIHUoZil7cmV0dXJuIHM+OTk5fHxmPT09bnVsbHx8Zj09PTkxfHxmPT09OTMmJiFsfHxmPT09OTQmJiFzJiYiX2hpZGRlbkZvb3Rub3RlU3VwcG9ydCJpbiBvLnBhcnNlci5jb25zdHJ1Y3RzP3IoZik6Zj09PTkzPyhlLmV4aXQobiksZS5lbnRlcihhKSxlLmNvbnN1bWUoZiksZS5leGl0KGEpLGUuZXhpdChpKSx0KTpXZShmKT8oZS5lbnRlcigibGluZUVuZGluZyIpLGUuY29uc3VtZShmKSxlLmV4aXQoImxpbmVFbmRpbmciKSx1KTooZS5lbnRlcigiY2h1bmtTdHJpbmciLHtjb250ZW50VHlwZToic3RyaW5nIn0pLGQoZikpfWZ1bmN0aW9uIGQoZil7cmV0dXJuIGY9PT1udWxsfHxmPT09OTF8fGY9PT05M3x8V2UoZil8fHMrKz45OTk/KGUuZXhpdCgiY2h1bmtTdHJpbmciKSx1KGYpKTooZS5jb25zdW1lKGYpLGx8fChsPSFsdChmKSksZj09PTkyP2g6ZCl9ZnVuY3Rpb24gaChmKXtyZXR1cm4gZj09PTkxfHxmPT09OTJ8fGY9PT05Mz8oZS5jb25zdW1lKGYpLHMrKyxkKTpkKGYpfX12YXIgS1Y9cCgoKT0+e3RyKCl9KTtmdW5jdGlvbiBGTShlLHQscixpLGEsbil7bGV0IG87cmV0dXJuIHM7ZnVuY3Rpb24gcyhoKXtyZXR1cm4gaD09PTM0fHxoPT09Mzl8fGg9PT00MD8oZS5lbnRlcihpKSxlLmVudGVyKGEpLGUuY29uc3VtZShoKSxlLmV4aXQoYSksbz1oPT09NDA/NDE6aCxsKTpyKGgpfWZ1bmN0aW9uIGwoaCl7cmV0dXJuIGg9PT1vPyhlLmVudGVyKGEpLGUuY29uc3VtZShoKSxlLmV4aXQoYSksZS5leGl0KGkpLHQpOihlLmVudGVyKG4pLGMoaCkpfWZ1bmN0aW9uIGMoaCl7cmV0dXJuIGg9PT1vPyhlLmV4aXQobiksbChvKSk6aD09PW51bGw/cihoKTpXZShoKT8oZS5lbnRlcigibGluZUVuZGluZyIpLGUuY29uc3VtZShoKSxlLmV4aXQoImxpbmVFbmRpbmciKSxtdChlLGMsImxpbmVQcmVmaXgiKSk6KGUuZW50ZXIoImNodW5rU3RyaW5nIix7Y29udGVudFR5cGU6InN0cmluZyJ9KSx1KGgpKX1mdW5jdGlvbiB1KGgpe3JldHVybiBoPT09b3x8aD09PW51bGx8fFdlKGgpPyhlLmV4aXQoImNodW5rU3RyaW5nIiksYyhoKSk6KGUuY29uc3VtZShoKSxoPT09OTI/ZDp1KX1mdW5jdGlvbiBkKGgpe3JldHVybiBoPT09b3x8aD09PTkyPyhlLmNvbnN1bWUoaCksdSk6dShoKX19dmFyIGVVPXAoKCk9PntCMSgpO3RyKCl9KTtmdW5jdGlvbiBYMyhlLHQpe2xldCByO3JldHVybiBpO2Z1bmN0aW9uIGkoYSl7cmV0dXJuIFdlKGEpPyhlLmVudGVyKCJsaW5lRW5kaW5nIiksZS5jb25zdW1lKGEpLGUuZXhpdCgibGluZUVuZGluZyIpLHI9ITAsaSk6bHQoYSk/bXQoZSxpLHI/ImxpbmVQcmVmaXgiOiJsaW5lU3VmZml4IikoYSk6dChhKX19dmFyIHRVPXAoKCk9PntCMSgpO3RyKCl9KTtmdW5jdGlvbiBGTXIoZSx0LHIpe2xldCBpPXRoaXMsYTtyZXR1cm4gbjtmdW5jdGlvbiBuKGYpe3JldHVybiBlLmVudGVyKCJkZWZpbml0aW9uIiksbyhmKX1mdW5jdGlvbiBvKGYpe3JldHVybiBOTS5jYWxsKGksZSxzLHIsImRlZmluaXRpb25MYWJlbCIsImRlZmluaXRpb25MYWJlbE1hcmtlciIsImRlZmluaXRpb25MYWJlbFN0cmluZyIpKGYpfWZ1bmN0aW9uIHMoZil7cmV0dXJuIGE9TDEoaS5zbGljZVNlcmlhbGl6ZShpLmV2ZW50c1tpLmV2ZW50cy5sZW5ndGgtMV1bMV0pLnNsaWNlKDEsLTEpKSxmPT09NTg/KGUuZW50ZXIoImRlZmluaXRpb25NYXJrZXIiKSxlLmNvbnN1bWUoZiksZS5leGl0KCJkZWZpbml0aW9uTWFya2VyIiksbCk6cihmKX1mdW5jdGlvbiBsKGYpe3JldHVybiBadChmKT9YMyhlLGMpKGYpOmMoZil9ZnVuY3Rpb24gYyhmKXtyZXR1cm4gUE0oZSx1LHIsImRlZmluaXRpb25EZXN0aW5hdGlvbiIsImRlZmluaXRpb25EZXN0aW5hdGlvbkxpdGVyYWwiLCJkZWZpbml0aW9uRGVzdGluYXRpb25MaXRlcmFsTWFya2VyIiwiZGVmaW5pdGlvbkRlc3RpbmF0aW9uUmF3IiwiZGVmaW5pdGlvbkRlc3RpbmF0aW9uU3RyaW5nIikoZil9ZnVuY3Rpb24gdShmKXtyZXR1cm4gZS5hdHRlbXB0KE5NcixkLGQpKGYpfWZ1bmN0aW9uIGQoZil7cmV0dXJuIGx0KGYpP210KGUsaCwid2hpdGVzcGFjZSIpKGYpOmgoZil9ZnVuY3Rpb24gaChmKXtyZXR1cm4gZj09PW51bGx8fFdlKGYpPyhlLmV4aXQoImRlZmluaXRpb24iKSxpLnBhcnNlci5kZWZpbmVkLnB1c2goYSksdChmKSk6cihmKX19ZnVuY3Rpb24gT01yKGUsdCxyKXtyZXR1cm4gaTtmdW5jdGlvbiBpKHMpe3JldHVybiBadChzKT9YMyhlLGEpKHMpOnIocyl9ZnVuY3Rpb24gYShzKXtyZXR1cm4gRk0oZSxuLHIsImRlZmluaXRpb25UaXRsZSIsImRlZmluaXRpb25UaXRsZU1hcmtlciIsImRlZmluaXRpb25UaXRsZVN0cmluZyIpKHMpfWZ1bmN0aW9uIG4ocyl7cmV0dXJuIGx0KHMpP210KGUsbywid2hpdGVzcGFjZSIpKHMpOm8ocyl9ZnVuY3Rpb24gbyhzKXtyZXR1cm4gcz09PW51bGx8fFdlKHMpP3Qocyk6cihzKX19dmFyIHJVLE5NcixvemU9cCgoKT0+e0pWKCk7S1YoKTtCMSgpO2VVKCk7dFUoKTt0cigpO3kwKCk7clU9e25hbWU6ImRlZmluaXRpb24iLHRva2VuaXplOkZNcn0sTk1yPXtwYXJ0aWFsOiEwLHRva2VuaXplOk9Ncn19KTtmdW5jdGlvbiBSTXIoZSx0LHIpe3JldHVybiBpO2Z1bmN0aW9uIGkobil7cmV0dXJuIGUuZW50ZXIoImhhcmRCcmVha0VzY2FwZSIpLGUuY29uc3VtZShuKSxhfWZ1bmN0aW9uIGEobil7cmV0dXJuIFdlKG4pPyhlLmV4aXQoImhhcmRCcmVha0VzY2FwZSIpLHQobikpOnIobil9fXZhciBpVSxzemU9cCgoKT0+e3RyKCk7aVU9e25hbWU6ImhhcmRCcmVha0VzY2FwZSIsdG9rZW5pemU6Uk1yfX0pO2Z1bmN0aW9uIEJNcihlLHQpe2xldCByPWUubGVuZ3RoLTIsaT0zLGEsbjtyZXR1cm4gZVtpXVsxXS50eXBlPT09IndoaXRlc3BhY2UiJiYoaSs9Miksci0yPmkmJmVbcl1bMV0udHlwZT09PSJ3aGl0ZXNwYWNlIiYmKHItPTIpLGVbcl1bMV0udHlwZT09PSJhdHhIZWFkaW5nU2VxdWVuY2UiJiYoaT09PXItMXx8ci00PmkmJmVbci0yXVsxXS50eXBlPT09IndoaXRlc3BhY2UiKSYmKHItPWkrMT09PXI/Mjo0KSxyPmkmJihhPXt0eXBlOiJhdHhIZWFkaW5nVGV4dCIsc3RhcnQ6ZVtpXVsxXS5zdGFydCxlbmQ6ZVtyXVsxXS5lbmR9LG49e3R5cGU6ImNodW5rVGV4dCIsc3RhcnQ6ZVtpXVsxXS5zdGFydCxlbmQ6ZVtyXVsxXS5lbmQsY29udGVudFR5cGU6InRleHQifSxSMShlLGksci1pKzEsW1siZW50ZXIiLGEsdF0sWyJlbnRlciIsbix0XSxbImV4aXQiLG4sdF0sWyJleGl0IixhLHRdXSkpLGV9ZnVuY3Rpb24gSE1yKGUsdCxyKXtsZXQgaT0wO3JldHVybiBhO2Z1bmN0aW9uIGEodSl7cmV0dXJuIGUuZW50ZXIoImF0eEhlYWRpbmciKSxuKHUpfWZ1bmN0aW9uIG4odSl7cmV0dXJuIGUuZW50ZXIoImF0eEhlYWRpbmdTZXF1ZW5jZSIpLG8odSl9ZnVuY3Rpb24gbyh1KXtyZXR1cm4gdT09PTM1JiZpKys8Nj8oZS5jb25zdW1lKHUpLG8pOnU9PT1udWxsfHxadCh1KT8oZS5leGl0KCJhdHhIZWFkaW5nU2VxdWVuY2UiKSxzKHUpKTpyKHUpfWZ1bmN0aW9uIHModSl7cmV0dXJuIHU9PT0zNT8oZS5lbnRlcigiYXR4SGVhZGluZ1NlcXVlbmNlIiksbCh1KSk6dT09PW51bGx8fFdlKHUpPyhlLmV4aXQoImF0eEhlYWRpbmciKSx0KHUpKTpsdCh1KT9tdChlLHMsIndoaXRlc3BhY2UiKSh1KTooZS5lbnRlcigiYXR4SGVhZGluZ1RleHQiKSxjKHUpKX1mdW5jdGlvbiBsKHUpe3JldHVybiB1PT09MzU/KGUuY29uc3VtZSh1KSxsKTooZS5leGl0KCJhdHhIZWFkaW5nU2VxdWVuY2UiKSxzKHUpKX1mdW5jdGlvbiBjKHUpe3JldHVybiB1PT09bnVsbHx8dT09PTM1fHxadCh1KT8oZS5leGl0KCJhdHhIZWFkaW5nVGV4dCIpLHModSkpOihlLmNvbnN1bWUodSksYyl9fXZhciBhVSxsemU9cCgoKT0+e0IxKCk7dHIoKTtwcygpO2FVPXtuYW1lOiJoZWFkaW5nQXR4IixyZXNvbHZlOkJNcix0b2tlbml6ZTpITXJ9fSk7dmFyIGN6ZSxuVSxkemU9cCgoKT0+e2N6ZT1bImFkZHJlc3MiLCJhcnRpY2xlIiwiYXNpZGUiLCJiYXNlIiwiYmFzZWZvbnQiLCJibG9ja3F1b3RlIiwiYm9keSIsImNhcHRpb24iLCJjZW50ZXIiLCJjb2wiLCJjb2xncm91cCIsImRkIiwiZGV0YWlscyIsImRpYWxvZyIsImRpciIsImRpdiIsImRsIiwiZHQiLCJmaWVsZHNldCIsImZpZ2NhcHRpb24iLCJmaWd1cmUiLCJmb290ZXIiLCJmb3JtIiwiZnJhbWUiLCJmcmFtZXNldCIsImgxIiwiaDIiLCJoMyIsImg0IiwiaDUiLCJoNiIsImhlYWQiLCJoZWFkZXIiLCJociIsImh0bWwiLCJpZnJhbWUiLCJsZWdlbmQiLCJsaSIsImxpbmsiLCJtYWluIiwibWVudSIsIm1lbnVpdGVtIiwibmF2Iiwibm9mcmFtZXMiLCJvbCIsIm9wdGdyb3VwIiwib3B0aW9uIiwicCIsInBhcmFtIiwic2VhcmNoIiwic2VjdGlvbiIsInN1bW1hcnkiLCJ0YWJsZSIsInRib2R5IiwidGQiLCJ0Zm9vdCIsInRoIiwidGhlYWQiLCJ0aXRsZSIsInRyIiwidHJhY2siLCJ1bCJdLG5VPVsicHJlIiwic2NyaXB0Iiwic3R5bGUiLCJ0ZXh0YXJlYSJdfSk7ZnVuY3Rpb24gVk1yKGUpe2xldCB0PWUubGVuZ3RoO2Zvcig7dC0tJiYhKGVbdF1bMF09PT0iZW50ZXIiJiZlW3RdWzFdLnR5cGU9PT0iaHRtbEZsb3ciKTspO3JldHVybiB0PjEmJmVbdC0yXVsxXS50eXBlPT09ImxpbmVQcmVmaXgiJiYoZVt0XVsxXS5zdGFydD1lW3QtMl1bMV0uc3RhcnQsZVt0KzFdWzFdLnN0YXJ0PWVbdC0yXVsxXS5zdGFydCxlLnNwbGljZSh0LTIsMikpLGV9ZnVuY3Rpb24gVU1yKGUsdCxyKXtsZXQgaT10aGlzLGEsbixvLHMsbDtyZXR1cm4gYztmdW5jdGlvbiBjKEkpe3JldHVybiB1KEkpfWZ1bmN0aW9uIHUoSSl7cmV0dXJuIGUuZW50ZXIoImh0bWxGbG93IiksZS5lbnRlcigiaHRtbEZsb3dEYXRhIiksZS5jb25zdW1lKEkpLGR9ZnVuY3Rpb24gZChJKXtyZXR1cm4gST09PTMzPyhlLmNvbnN1bWUoSSksaCk6ST09PTQ3PyhlLmNvbnN1bWUoSSksbj0hMCx2KTpJPT09NjM/KGUuY29uc3VtZShJKSxhPTMsaS5pbnRlcnJ1cHQ/dDpQKTpwaShJKT8oZS5jb25zdW1lKEkpLG89U3RyaW5nLmZyb21DaGFyQ29kZShJKSxiKTpyKEkpfWZ1bmN0aW9uIGgoSSl7cmV0dXJuIEk9PT00NT8oZS5jb25zdW1lKEkpLGE9MixmKTpJPT09OTE/KGUuY29uc3VtZShJKSxhPTUscz0wLHgpOnBpKEkpPyhlLmNvbnN1bWUoSSksYT00LGkuaW50ZXJydXB0P3Q6UCk6cihJKX1mdW5jdGlvbiBmKEkpe3JldHVybiBJPT09NDU/KGUuY29uc3VtZShJKSxpLmludGVycnVwdD90OlApOnIoSSl9ZnVuY3Rpb24geChJKXtsZXQgbmU9IkNEQVRBWyI7cmV0dXJuIEk9PT1uZS5jaGFyQ29kZUF0KHMrKyk/KGUuY29uc3VtZShJKSxzPT09bmUubGVuZ3RoP2kuaW50ZXJydXB0P3Q6Uzp4KTpyKEkpfWZ1bmN0aW9uIHYoSSl7cmV0dXJuIHBpKEkpPyhlLmNvbnN1bWUoSSksbz1TdHJpbmcuZnJvbUNoYXJDb2RlKEkpLGIpOnIoSSl9ZnVuY3Rpb24gYihJKXtpZihJPT09bnVsbHx8ST09PTQ3fHxJPT09NjJ8fFp0KEkpKXtsZXQgbmU9ST09PTQ3LGtlPW8udG9Mb3dlckNhc2UoKTtyZXR1cm4hbmUmJiFuJiZuVS5pbmNsdWRlcyhrZSk/KGE9MSxpLmludGVycnVwdD90KEkpOlMoSSkpOmN6ZS5pbmNsdWRlcyhvLnRvTG93ZXJDYXNlKCkpPyhhPTYsbmU/KGUuY29uc3VtZShJKSx5KTppLmludGVycnVwdD90KEkpOlMoSSkpOihhPTcsaS5pbnRlcnJ1cHQmJiFpLnBhcnNlci5sYXp5W2kubm93KCkubGluZV0/cihJKTpuP3coSSk6ayhJKSl9cmV0dXJuIEk9PT00NXx8XzEoSSk/KGUuY29uc3VtZShJKSxvKz1TdHJpbmcuZnJvbUNoYXJDb2RlKEkpLGIpOnIoSSl9ZnVuY3Rpb24geShJKXtyZXR1cm4gST09PTYyPyhlLmNvbnN1bWUoSSksaS5pbnRlcnJ1cHQ/dDpTKTpyKEkpfWZ1bmN0aW9uIHcoSSl7cmV0dXJuIGx0KEkpPyhlLmNvbnN1bWUoSSksdyk6UihJKX1mdW5jdGlvbiBrKEkpe3JldHVybiBJPT09NDc/KGUuY29uc3VtZShJKSxSKTpJPT09NTh8fEk9PT05NXx8cGkoSSk/KGUuY29uc3VtZShJKSxPKTpsdChJKT8oZS5jb25zdW1lKEkpLGspOlIoSSl9ZnVuY3Rpb24gTyhJKXtyZXR1cm4gST09PTQ1fHxJPT09NDZ8fEk9PT01OHx8ST09PTk1fHxfMShJKT8oZS5jb25zdW1lKEkpLE8pOnooSSl9ZnVuY3Rpb24geihJKXtyZXR1cm4gST09PTYxPyhlLmNvbnN1bWUoSSksTSk6bHQoSSk/KGUuY29uc3VtZShJKSx6KTprKEkpfWZ1bmN0aW9uIE0oSSl7cmV0dXJuIEk9PT1udWxsfHxJPT09NjB8fEk9PT02MXx8ST09PTYyfHxJPT09OTY/cihJKTpJPT09MzR8fEk9PT0zOT8oZS5jb25zdW1lKEkpLGw9SSxGKTpsdChJKT8oZS5jb25zdW1lKEkpLE0pOkQoSSl9ZnVuY3Rpb24gRihJKXtyZXR1cm4gST09PWw/KGUuY29uc3VtZShJKSxsPW51bGwsTik6ST09PW51bGx8fFdlKEkpP3IoSSk6KGUuY29uc3VtZShJKSxGKX1mdW5jdGlvbiBEKEkpe3JldHVybiBJPT09bnVsbHx8ST09PTM0fHxJPT09Mzl8fEk9PT00N3x8ST09PTYwfHxJPT09NjF8fEk9PT02Mnx8ST09PTk2fHxadChJKT96KEkpOihlLmNvbnN1bWUoSSksRCl9ZnVuY3Rpb24gTihJKXtyZXR1cm4gST09PTQ3fHxJPT09NjJ8fGx0KEkpP2soSSk6cihJKX1mdW5jdGlvbiBSKEkpe3JldHVybiBJPT09NjI/KGUuY29uc3VtZShJKSxfKTpyKEkpfWZ1bmN0aW9uIF8oSSl7cmV0dXJuIEk9PT1udWxsfHxXZShJKT9TKEkpOmx0KEkpPyhlLmNvbnN1bWUoSSksXyk6cihJKX1mdW5jdGlvbiBTKEkpe3JldHVybiBJPT09NDUmJmE9PT0yPyhlLmNvbnN1bWUoSSkscSk6ST09PTYwJiZhPT09MT8oZS5jb25zdW1lKEkpLEIpOkk9PT02MiYmYT09PTQ/KGUuY29uc3VtZShJKSxnZSk6ST09PTYzJiZhPT09Mz8oZS5jb25zdW1lKEkpLFApOkk9PT05MyYmYT09PTU/KGUuY29uc3VtZShJKSxlZSk6V2UoSSkmJihhPT09Nnx8YT09PTcpPyhlLmV4aXQoImh0bWxGbG93RGF0YSIpLGUuY2hlY2socU1yLHdlLCQpKEkpKTpJPT09bnVsbHx8V2UoSSk/KGUuZXhpdCgiaHRtbEZsb3dEYXRhIiksJChJKSk6KGUuY29uc3VtZShJKSxTKX1mdW5jdGlvbiAkKEkpe3JldHVybiBlLmNoZWNrKGpNcixULHdlKShJKX1mdW5jdGlvbiBUKEkpe3JldHVybiBlLmVudGVyKCJsaW5lRW5kaW5nIiksZS5jb25zdW1lKEkpLGUuZXhpdCgibGluZUVuZGluZyIpLEV9ZnVuY3Rpb24gRShJKXtyZXR1cm4gST09PW51bGx8fFdlKEkpPyQoSSk6KGUuZW50ZXIoImh0bWxGbG93RGF0YSIpLFMoSSkpfWZ1bmN0aW9uIHEoSSl7cmV0dXJuIEk9PT00NT8oZS5jb25zdW1lKEkpLFApOlMoSSl9ZnVuY3Rpb24gQihJKXtyZXR1cm4gST09PTQ3PyhlLmNvbnN1bWUoSSksbz0iIixHKTpTKEkpfWZ1bmN0aW9uIEcoSSl7aWYoST09PTYyKXtsZXQgbmU9by50b0xvd2VyQ2FzZSgpO3JldHVybiBuVS5pbmNsdWRlcyhuZSk/KGUuY29uc3VtZShJKSxnZSk6UyhJKX1yZXR1cm4gcGkoSSkmJm8ubGVuZ3RoPDg/KGUuY29uc3VtZShJKSxvKz1TdHJpbmcuZnJvbUNoYXJDb2RlKEkpLEcpOlMoSSl9ZnVuY3Rpb24gZWUoSSl7cmV0dXJuIEk9PT05Mz8oZS5jb25zdW1lKEkpLFApOlMoSSl9ZnVuY3Rpb24gUChJKXtyZXR1cm4gST09PTYyPyhlLmNvbnN1bWUoSSksZ2UpOkk9PT00NSYmYT09PTI/KGUuY29uc3VtZShJKSxQKTpTKEkpfWZ1bmN0aW9uIGdlKEkpe3JldHVybiBJPT09bnVsbHx8V2UoSSk/KGUuZXhpdCgiaHRtbEZsb3dEYXRhIiksd2UoSSkpOihlLmNvbnN1bWUoSSksZ2UpfWZ1bmN0aW9uIHdlKEkpe3JldHVybiBlLmV4aXQoImh0bWxGbG93IiksdChJKX19ZnVuY3Rpb24gV01yKGUsdCxyKXtsZXQgaT10aGlzO3JldHVybiBhO2Z1bmN0aW9uIGEobyl7cmV0dXJuIFdlKG8pPyhlLmVudGVyKCJsaW5lRW5kaW5nIiksZS5jb25zdW1lKG8pLGUuZXhpdCgibGluZUVuZGluZyIpLG4pOnIobyl9ZnVuY3Rpb24gbihvKXtyZXR1cm4gaS5wYXJzZXIubGF6eVtpLm5vdygpLmxpbmVdP3Iobyk6dChvKX19ZnVuY3Rpb24gR01yKGUsdCxyKXtyZXR1cm4gaTtmdW5jdGlvbiBpKGEpe3JldHVybiBlLmVudGVyKCJsaW5lRW5kaW5nIiksZS5jb25zdW1lKGEpLGUuZXhpdCgibGluZUVuZGluZyIpLGUuYXR0ZW1wdChncyx0LHIpfX12YXIgb1UscU1yLGpNcix1emU9cCgoKT0+e3RyKCk7ZHplKCk7TE0oKTtvVT17Y29uY3JldGU6ITAsbmFtZToiaHRtbEZsb3ciLHJlc29sdmVUbzpWTXIsdG9rZW5pemU6VU1yfSxxTXI9e3BhcnRpYWw6ITAsdG9rZW5pemU6R01yfSxqTXI9e3BhcnRpYWw6ITAsdG9rZW5pemU6V01yfX0pO2Z1bmN0aW9uIFlNcihlLHQscil7bGV0IGk9dGhpcyxhLG4sbztyZXR1cm4gcztmdW5jdGlvbiBzKFApe3JldHVybiBlLmVudGVyKCJodG1sVGV4dCIpLGUuZW50ZXIoImh0bWxUZXh0RGF0YSIpLGUuY29uc3VtZShQKSxsfWZ1bmN0aW9uIGwoUCl7cmV0dXJuIFA9PT0zMz8oZS5jb25zdW1lKFApLGMpOlA9PT00Nz8oZS5jb25zdW1lKFApLHopOlA9PT02Mz8oZS5jb25zdW1lKFApLGspOnBpKFApPyhlLmNvbnN1bWUoUCksRCk6cihQKX1mdW5jdGlvbiBjKFApe3JldHVybiBQPT09NDU/KGUuY29uc3VtZShQKSx1KTpQPT09OTE/KGUuY29uc3VtZShQKSxuPTAseCk6cGkoUCk/KGUuY29uc3VtZShQKSx3KTpyKFApfWZ1bmN0aW9uIHUoUCl7cmV0dXJuIFA9PT00NT8oZS5jb25zdW1lKFApLGYpOnIoUCl9ZnVuY3Rpb24gZChQKXtyZXR1cm4gUD09PW51bGw/cihQKTpQPT09NDU/KGUuY29uc3VtZShQKSxoKTpXZShQKT8obz1kLEIoUCkpOihlLmNvbnN1bWUoUCksZCl9ZnVuY3Rpb24gaChQKXtyZXR1cm4gUD09PTQ1PyhlLmNvbnN1bWUoUCksZik6ZChQKX1mdW5jdGlvbiBmKFApe3JldHVybiBQPT09NjI/cShQKTpQPT09NDU/aChQKTpkKFApfWZ1bmN0aW9uIHgoUCl7bGV0IGdlPSJDREFUQVsiO3JldHVybiBQPT09Z2UuY2hhckNvZGVBdChuKyspPyhlLmNvbnN1bWUoUCksbj09PWdlLmxlbmd0aD92OngpOnIoUCl9ZnVuY3Rpb24gdihQKXtyZXR1cm4gUD09PW51bGw/cihQKTpQPT09OTM/KGUuY29uc3VtZShQKSxiKTpXZShQKT8obz12LEIoUCkpOihlLmNvbnN1bWUoUCksdil9ZnVuY3Rpb24gYihQKXtyZXR1cm4gUD09PTkzPyhlLmNvbnN1bWUoUCkseSk6dihQKX1mdW5jdGlvbiB5KFApe3JldHVybiBQPT09NjI/cShQKTpQPT09OTM/KGUuY29uc3VtZShQKSx5KTp2KFApfWZ1bmN0aW9uIHcoUCl7cmV0dXJuIFA9PT1udWxsfHxQPT09NjI/cShQKTpXZShQKT8obz13LEIoUCkpOihlLmNvbnN1bWUoUCksdyl9ZnVuY3Rpb24gayhQKXtyZXR1cm4gUD09PW51bGw/cihQKTpQPT09NjM/KGUuY29uc3VtZShQKSxPKTpXZShQKT8obz1rLEIoUCkpOihlLmNvbnN1bWUoUCksayl9ZnVuY3Rpb24gTyhQKXtyZXR1cm4gUD09PTYyP3EoUCk6ayhQKX1mdW5jdGlvbiB6KFApe3JldHVybiBwaShQKT8oZS5jb25zdW1lKFApLE0pOnIoUCl9ZnVuY3Rpb24gTShQKXtyZXR1cm4gUD09PTQ1fHxfMShQKT8oZS5jb25zdW1lKFApLE0pOkYoUCl9ZnVuY3Rpb24gRihQKXtyZXR1cm4gV2UoUCk/KG89RixCKFApKTpsdChQKT8oZS5jb25zdW1lKFApLEYpOnEoUCl9ZnVuY3Rpb24gRChQKXtyZXR1cm4gUD09PTQ1fHxfMShQKT8oZS5jb25zdW1lKFApLEQpOlA9PT00N3x8UD09PTYyfHxadChQKT9OKFApOnIoUCl9ZnVuY3Rpb24gTihQKXtyZXR1cm4gUD09PTQ3PyhlLmNvbnN1bWUoUCkscSk6UD09PTU4fHxQPT09OTV8fHBpKFApPyhlLmNvbnN1bWUoUCksUik6V2UoUCk/KG89TixCKFApKTpsdChQKT8oZS5jb25zdW1lKFApLE4pOnEoUCl9ZnVuY3Rpb24gUihQKXtyZXR1cm4gUD09PTQ1fHxQPT09NDZ8fFA9PT01OHx8UD09PTk1fHxfMShQKT8oZS5jb25zdW1lKFApLFIpOl8oUCl9ZnVuY3Rpb24gXyhQKXtyZXR1cm4gUD09PTYxPyhlLmNvbnN1bWUoUCksUyk6V2UoUCk/KG89XyxCKFApKTpsdChQKT8oZS5jb25zdW1lKFApLF8pOk4oUCl9ZnVuY3Rpb24gUyhQKXtyZXR1cm4gUD09PW51bGx8fFA9PT02MHx8UD09PTYxfHxQPT09NjJ8fFA9PT05Nj9yKFApOlA9PT0zNHx8UD09PTM5PyhlLmNvbnN1bWUoUCksYT1QLCQpOldlKFApPyhvPVMsQihQKSk6bHQoUCk/KGUuY29uc3VtZShQKSxTKTooZS5jb25zdW1lKFApLFQpfWZ1bmN0aW9uICQoUCl7cmV0dXJuIFA9PT1hPyhlLmNvbnN1bWUoUCksYT12b2lkIDAsRSk6UD09PW51bGw/cihQKTpXZShQKT8obz0kLEIoUCkpOihlLmNvbnN1bWUoUCksJCl9ZnVuY3Rpb24gVChQKXtyZXR1cm4gUD09PW51bGx8fFA9PT0zNHx8UD09PTM5fHxQPT09NjB8fFA9PT02MXx8UD09PTk2P3IoUCk6UD09PTQ3fHxQPT09NjJ8fFp0KFApP04oUCk6KGUuY29uc3VtZShQKSxUKX1mdW5jdGlvbiBFKFApe3JldHVybiBQPT09NDd8fFA9PT02Mnx8WnQoUCk/TihQKTpyKFApfWZ1bmN0aW9uIHEoUCl7cmV0dXJuIFA9PT02Mj8oZS5jb25zdW1lKFApLGUuZXhpdCgiaHRtbFRleHREYXRhIiksZS5leGl0KCJodG1sVGV4dCIpLHQpOnIoUCl9ZnVuY3Rpb24gQihQKXtyZXR1cm4gZS5leGl0KCJodG1sVGV4dERhdGEiKSxlLmVudGVyKCJsaW5lRW5kaW5nIiksZS5jb25zdW1lKFApLGUuZXhpdCgibGluZUVuZGluZyIpLEd9ZnVuY3Rpb24gRyhQKXtyZXR1cm4gbHQoUCk/bXQoZSxlZSwibGluZVByZWZpeCIsaS5wYXJzZXIuY29uc3RydWN0cy5kaXNhYmxlLm51bGwuaW5jbHVkZXMoImNvZGVJbmRlbnRlZCIpP3ZvaWQgMDo0KShQKTplZShQKX1mdW5jdGlvbiBlZShQKXtyZXR1cm4gZS5lbnRlcigiaHRtbFRleHREYXRhIiksbyhQKX19dmFyIHNVLHB6ZT1wKCgpPT57QjEoKTt0cigpO3NVPXtuYW1lOiJodG1sVGV4dCIsdG9rZW5pemU6WU1yfX0pO2Z1bmN0aW9uIEpNcihlKXtsZXQgdD0tMSxyPVtdO2Zvcig7Kyt0PGUubGVuZ3RoOyl7bGV0IGk9ZVt0XVsxXTtpZihyLnB1c2goZVt0XSksaS50eXBlPT09ImxhYmVsSW1hZ2UifHxpLnR5cGU9PT0ibGFiZWxMaW5rInx8aS50eXBlPT09ImxhYmVsRW5kIil7bGV0IGE9aS50eXBlPT09ImxhYmVsSW1hZ2UiPzQ6MjtpLnR5cGU9ImRhdGEiLHQrPWF9fXJldHVybiBlLmxlbmd0aCE9PXIubGVuZ3RoJiZSMShlLDAsZS5sZW5ndGgsciksZX1mdW5jdGlvbiBLTXIoZSx0KXtsZXQgcj1lLmxlbmd0aCxpPTAsYSxuLG8scztmb3IoO3ItLTspaWYoYT1lW3JdWzFdLG4pe2lmKGEudHlwZT09PSJsaW5rInx8YS50eXBlPT09ImxhYmVsTGluayImJmEuX2luYWN0aXZlKWJyZWFrO2Vbcl1bMF09PT0iZW50ZXIiJiZhLnR5cGU9PT0ibGFiZWxMaW5rIiYmKGEuX2luYWN0aXZlPSEwKX1lbHNlIGlmKG8pe2lmKGVbcl1bMF09PT0iZW50ZXIiJiYoYS50eXBlPT09ImxhYmVsSW1hZ2UifHxhLnR5cGU9PT0ibGFiZWxMaW5rIikmJiFhLl9iYWxhbmNlZCYmKG49cixhLnR5cGUhPT0ibGFiZWxMaW5rIikpe2k9MjticmVha319ZWxzZSBhLnR5cGU9PT0ibGFiZWxFbmQiJiYobz1yKTtsZXQgbD17dHlwZTplW25dWzFdLnR5cGU9PT0ibGFiZWxMaW5rIj8ibGluayI6ImltYWdlIixzdGFydDp7Li4uZVtuXVsxXS5zdGFydH0sZW5kOnsuLi5lW2UubGVuZ3RoLTFdWzFdLmVuZH19LGM9e3R5cGU6ImxhYmVsIixzdGFydDp7Li4uZVtuXVsxXS5zdGFydH0sZW5kOnsuLi5lW29dWzFdLmVuZH19LHU9e3R5cGU6ImxhYmVsVGV4dCIsc3RhcnQ6ey4uLmVbbitpKzJdWzFdLmVuZH0sZW5kOnsuLi5lW28tMl1bMV0uc3RhcnR9fTtyZXR1cm4gcz1bWyJlbnRlciIsbCx0XSxbImVudGVyIixjLHRdXSxzPUsxKHMsZS5zbGljZShuKzEsbitpKzMpKSxzPUsxKHMsW1siZW50ZXIiLHUsdF1dKSxzPUsxKHMsTTAodC5wYXJzZXIuY29uc3RydWN0cy5pbnNpZGVTcGFuLm51bGwsZS5zbGljZShuK2krNCxvLTMpLHQpKSxzPUsxKHMsW1siZXhpdCIsdSx0XSxlW28tMl0sZVtvLTFdLFsiZXhpdCIsYyx0XV0pLHM9SzEocyxlLnNsaWNlKG8rMSkpLHM9SzEocyxbWyJleGl0IixsLHRdXSksUjEoZSxuLGUubGVuZ3RoLHMpLGV9ZnVuY3Rpb24gZWtyKGUsdCxyKXtsZXQgaT10aGlzLGE9aS5ldmVudHMubGVuZ3RoLG4sbztmb3IoO2EtLTspaWYoKGkuZXZlbnRzW2FdWzFdLnR5cGU9PT0ibGFiZWxJbWFnZSJ8fGkuZXZlbnRzW2FdWzFdLnR5cGU9PT0ibGFiZWxMaW5rIikmJiFpLmV2ZW50c1thXVsxXS5fYmFsYW5jZWQpe249aS5ldmVudHNbYV1bMV07YnJlYWt9cmV0dXJuIHM7ZnVuY3Rpb24gcyhoKXtyZXR1cm4gbj9uLl9pbmFjdGl2ZT9kKGgpOihvPWkucGFyc2VyLmRlZmluZWQuaW5jbHVkZXMoTDEoaS5zbGljZVNlcmlhbGl6ZSh7c3RhcnQ6bi5lbmQsZW5kOmkubm93KCl9KSkpLGUuZW50ZXIoImxhYmVsRW5kIiksZS5lbnRlcigibGFiZWxNYXJrZXIiKSxlLmNvbnN1bWUoaCksZS5leGl0KCJsYWJlbE1hcmtlciIpLGUuZXhpdCgibGFiZWxFbmQiKSxsKTpyKGgpfWZ1bmN0aW9uIGwoaCl7cmV0dXJuIGg9PT00MD9lLmF0dGVtcHQoWk1yLHUsbz91OmQpKGgpOmg9PT05MT9lLmF0dGVtcHQoWE1yLHUsbz9jOmQpKGgpOm8/dShoKTpkKGgpfWZ1bmN0aW9uIGMoaCl7cmV0dXJuIGUuYXR0ZW1wdChRTXIsdSxkKShoKX1mdW5jdGlvbiB1KGgpe3JldHVybiB0KGgpfWZ1bmN0aW9uIGQoaCl7cmV0dXJuIG4uX2JhbGFuY2VkPSEwLHIoaCl9fWZ1bmN0aW9uIHRrcihlLHQscil7cmV0dXJuIGk7ZnVuY3Rpb24gaShkKXtyZXR1cm4gZS5lbnRlcigicmVzb3VyY2UiKSxlLmVudGVyKCJyZXNvdXJjZU1hcmtlciIpLGUuY29uc3VtZShkKSxlLmV4aXQoInJlc291cmNlTWFya2VyIiksYX1mdW5jdGlvbiBhKGQpe3JldHVybiBadChkKT9YMyhlLG4pKGQpOm4oZCl9ZnVuY3Rpb24gbihkKXtyZXR1cm4gZD09PTQxP3UoZCk6UE0oZSxvLHMsInJlc291cmNlRGVzdGluYXRpb24iLCJyZXNvdXJjZURlc3RpbmF0aW9uTGl0ZXJhbCIsInJlc291cmNlRGVzdGluYXRpb25MaXRlcmFsTWFya2VyIiwicmVzb3VyY2VEZXN0aW5hdGlvblJhdyIsInJlc291cmNlRGVzdGluYXRpb25TdHJpbmciLDMyKShkKX1mdW5jdGlvbiBvKGQpe3JldHVybiBadChkKT9YMyhlLGwpKGQpOnUoZCl9ZnVuY3Rpb24gcyhkKXtyZXR1cm4gcihkKX1mdW5jdGlvbiBsKGQpe3JldHVybiBkPT09MzR8fGQ9PT0zOXx8ZD09PTQwP0ZNKGUsYyxyLCJyZXNvdXJjZVRpdGxlIiwicmVzb3VyY2VUaXRsZU1hcmtlciIsInJlc291cmNlVGl0bGVTdHJpbmciKShkKTp1KGQpfWZ1bmN0aW9uIGMoZCl7cmV0dXJuIFp0KGQpP1gzKGUsdSkoZCk6dShkKX1mdW5jdGlvbiB1KGQpe3JldHVybiBkPT09NDE/KGUuZW50ZXIoInJlc291cmNlTWFya2VyIiksZS5jb25zdW1lKGQpLGUuZXhpdCgicmVzb3VyY2VNYXJrZXIiKSxlLmV4aXQoInJlc291cmNlIiksdCk6cihkKX19ZnVuY3Rpb24gcmtyKGUsdCxyKXtsZXQgaT10aGlzO3JldHVybiBhO2Z1bmN0aW9uIGEocyl7cmV0dXJuIE5NLmNhbGwoaSxlLG4sbywicmVmZXJlbmNlIiwicmVmZXJlbmNlTWFya2VyIiwicmVmZXJlbmNlU3RyaW5nIikocyl9ZnVuY3Rpb24gbihzKXtyZXR1cm4gaS5wYXJzZXIuZGVmaW5lZC5pbmNsdWRlcyhMMShpLnNsaWNlU2VyaWFsaXplKGkuZXZlbnRzW2kuZXZlbnRzLmxlbmd0aC0xXVsxXSkuc2xpY2UoMSwtMSkpKT90KHMpOnIocyl9ZnVuY3Rpb24gbyhzKXtyZXR1cm4gcihzKX19ZnVuY3Rpb24gaWtyKGUsdCxyKXtyZXR1cm4gaTtmdW5jdGlvbiBpKG4pe3JldHVybiBlLmVudGVyKCJyZWZlcmVuY2UiKSxlLmVudGVyKCJyZWZlcmVuY2VNYXJrZXIiKSxlLmNvbnN1bWUobiksZS5leGl0KCJyZWZlcmVuY2VNYXJrZXIiKSxhfWZ1bmN0aW9uIGEobil7cmV0dXJuIG49PT05Mz8oZS5lbnRlcigicmVmZXJlbmNlTWFya2VyIiksZS5jb25zdW1lKG4pLGUuZXhpdCgicmVmZXJlbmNlTWFya2VyIiksZS5leGl0KCJyZWZlcmVuY2UiKSx0KTpyKG4pfX12YXIgUTMsWk1yLFhNcixRTXIsT009cCgoKT0+e0pWKCk7S1YoKTtlVSgpO3RVKCk7dHIoKTtwcygpO3kwKCk7djcoKTtRMz17bmFtZToibGFiZWxFbmQiLHJlc29sdmVBbGw6Sk1yLHJlc29sdmVUbzpLTXIsdG9rZW5pemU6ZWtyfSxaTXI9e3Rva2VuaXplOnRrcn0sWE1yPXt0b2tlbml6ZTpya3J9LFFNcj17dG9rZW5pemU6aWtyfX0pO2Z1bmN0aW9uIGFrcihlLHQscil7bGV0IGk9dGhpcztyZXR1cm4gYTtmdW5jdGlvbiBhKHMpe3JldHVybiBlLmVudGVyKCJsYWJlbEltYWdlIiksZS5lbnRlcigibGFiZWxJbWFnZU1hcmtlciIpLGUuY29uc3VtZShzKSxlLmV4aXQoImxhYmVsSW1hZ2VNYXJrZXIiKSxufWZ1bmN0aW9uIG4ocyl7cmV0dXJuIHM9PT05MT8oZS5lbnRlcigibGFiZWxNYXJrZXIiKSxlLmNvbnN1bWUocyksZS5leGl0KCJsYWJlbE1hcmtlciIpLGUuZXhpdCgibGFiZWxJbWFnZSIpLG8pOnIocyl9ZnVuY3Rpb24gbyhzKXtyZXR1cm4gcz09PTk0JiYiX2hpZGRlbkZvb3Rub3RlU3VwcG9ydCJpbiBpLnBhcnNlci5jb25zdHJ1Y3RzP3Iocyk6dChzKX19dmFyIGxVLGh6ZT1wKCgpPT57T00oKTtsVT17bmFtZToibGFiZWxTdGFydEltYWdlIixyZXNvbHZlQWxsOlEzLnJlc29sdmVBbGwsdG9rZW5pemU6YWtyfX0pO2Z1bmN0aW9uIG5rcihlLHQscil7bGV0IGk9dGhpcztyZXR1cm4gYTtmdW5jdGlvbiBhKG8pe3JldHVybiBlLmVudGVyKCJsYWJlbExpbmsiKSxlLmVudGVyKCJsYWJlbE1hcmtlciIpLGUuY29uc3VtZShvKSxlLmV4aXQoImxhYmVsTWFya2VyIiksZS5leGl0KCJsYWJlbExpbmsiKSxufWZ1bmN0aW9uIG4obyl7cmV0dXJuIG89PT05NCYmIl9oaWRkZW5Gb290bm90ZVN1cHBvcnQiaW4gaS5wYXJzZXIuY29uc3RydWN0cz9yKG8pOnQobyl9fXZhciBjVSxmemU9cCgoKT0+e09NKCk7Y1U9e25hbWU6ImxhYmVsU3RhcnRMaW5rIixyZXNvbHZlQWxsOlEzLnJlc29sdmVBbGwsdG9rZW5pemU6bmtyfX0pO2Z1bmN0aW9uIG9rcihlLHQpe3JldHVybiByO2Z1bmN0aW9uIHIoaSl7cmV0dXJuIGUuZW50ZXIoImxpbmVFbmRpbmciKSxlLmNvbnN1bWUoaSksZS5leGl0KCJsaW5lRW5kaW5nIiksbXQoZSx0LCJsaW5lUHJlZml4Iil9fXZhciBrNyxtemU9cCgoKT0+e0IxKCk7dHIoKTtrNz17bmFtZToibGluZUVuZGluZyIsdG9rZW5pemU6b2tyfX0pO2Z1bmN0aW9uIHNrcihlLHQscil7bGV0IGk9MCxhO3JldHVybiBuO2Z1bmN0aW9uIG4oYyl7cmV0dXJuIGUuZW50ZXIoInRoZW1hdGljQnJlYWsiKSxvKGMpfWZ1bmN0aW9uIG8oYyl7cmV0dXJuIGE9YyxzKGMpfWZ1bmN0aW9uIHMoYyl7cmV0dXJuIGM9PT1hPyhlLmVudGVyKCJ0aGVtYXRpY0JyZWFrU2VxdWVuY2UiKSxsKGMpKTppPj0zJiYoYz09PW51bGx8fFdlKGMpKT8oZS5leGl0KCJ0aGVtYXRpY0JyZWFrIiksdChjKSk6cihjKX1mdW5jdGlvbiBsKGMpe3JldHVybiBjPT09YT8oZS5jb25zdW1lKGMpLGkrKyxsKTooZS5leGl0KCJ0aGVtYXRpY0JyZWFrU2VxdWVuY2UiKSxsdChjKT9tdChlLHMsIndoaXRlc3BhY2UiKShjKTpzKGMpKX19dmFyIEozLGRVPXAoKCk9PntCMSgpO3RyKCk7SjM9e25hbWU6InRoZW1hdGljQnJlYWsiLHRva2VuaXplOnNrcn19KTtmdW5jdGlvbiBka3IoZSx0LHIpe2xldCBpPXRoaXMsYT1pLmV2ZW50c1tpLmV2ZW50cy5sZW5ndGgtMV0sbj1hJiZhWzFdLnR5cGU9PT0ibGluZVByZWZpeCI/YVsyXS5zbGljZVNlcmlhbGl6ZShhWzFdLCEwKS5sZW5ndGg6MCxvPTA7cmV0dXJuIHM7ZnVuY3Rpb24gcyhmKXtsZXQgeD1pLmNvbnRhaW5lclN0YXRlLnR5cGV8fChmPT09NDJ8fGY9PT00M3x8Zj09PTQ1PyJsaXN0VW5vcmRlcmVkIjoibGlzdE9yZGVyZWQiKTtpZih4PT09Imxpc3RVbm9yZGVyZWQiPyFpLmNvbnRhaW5lclN0YXRlLm1hcmtlcnx8Zj09PWkuY29udGFpbmVyU3RhdGUubWFya2VyOmg3KGYpKXtpZihpLmNvbnRhaW5lclN0YXRlLnR5cGV8fChpLmNvbnRhaW5lclN0YXRlLnR5cGU9eCxlLmVudGVyKHgse19jb250YWluZXI6ITB9KSkseD09PSJsaXN0VW5vcmRlcmVkIilyZXR1cm4gZS5lbnRlcigibGlzdEl0ZW1QcmVmaXgiKSxmPT09NDJ8fGY9PT00NT9lLmNoZWNrKEozLHIsYykoZik6YyhmKTtpZighaS5pbnRlcnJ1cHR8fGY9PT00OSlyZXR1cm4gZS5lbnRlcigibGlzdEl0ZW1QcmVmaXgiKSxlLmVudGVyKCJsaXN0SXRlbVZhbHVlIiksbChmKX1yZXR1cm4gcihmKX1mdW5jdGlvbiBsKGYpe3JldHVybiBoNyhmKSYmKytvPDEwPyhlLmNvbnN1bWUoZiksbCk6KCFpLmludGVycnVwdHx8bzwyKSYmKGkuY29udGFpbmVyU3RhdGUubWFya2VyP2Y9PT1pLmNvbnRhaW5lclN0YXRlLm1hcmtlcjpmPT09NDF8fGY9PT00Nik/KGUuZXhpdCgibGlzdEl0ZW1WYWx1ZSIpLGMoZikpOnIoZil9ZnVuY3Rpb24gYyhmKXtyZXR1cm4gZS5lbnRlcigibGlzdEl0ZW1NYXJrZXIiKSxlLmNvbnN1bWUoZiksZS5leGl0KCJsaXN0SXRlbU1hcmtlciIpLGkuY29udGFpbmVyU3RhdGUubWFya2VyPWkuY29udGFpbmVyU3RhdGUubWFya2VyfHxmLGUuY2hlY2soZ3MsaS5pbnRlcnJ1cHQ/cjp1LGUuYXR0ZW1wdChsa3IsaCxkKSl9ZnVuY3Rpb24gdShmKXtyZXR1cm4gaS5jb250YWluZXJTdGF0ZS5pbml0aWFsQmxhbmtMaW5lPSEwLG4rKyxoKGYpfWZ1bmN0aW9uIGQoZil7cmV0dXJuIGx0KGYpPyhlLmVudGVyKCJsaXN0SXRlbVByZWZpeFdoaXRlc3BhY2UiKSxlLmNvbnN1bWUoZiksZS5leGl0KCJsaXN0SXRlbVByZWZpeFdoaXRlc3BhY2UiKSxoKTpyKGYpfWZ1bmN0aW9uIGgoZil7cmV0dXJuIGkuY29udGFpbmVyU3RhdGUuc2l6ZT1uK2kuc2xpY2VTZXJpYWxpemUoZS5leGl0KCJsaXN0SXRlbVByZWZpeCIpLCEwKS5sZW5ndGgsdChmKX19ZnVuY3Rpb24gdWtyKGUsdCxyKXtsZXQgaT10aGlzO3JldHVybiBpLmNvbnRhaW5lclN0YXRlLl9jbG9zZUZsb3c9dm9pZCAwLGUuY2hlY2soZ3MsYSxuKTtmdW5jdGlvbiBhKHMpe3JldHVybiBpLmNvbnRhaW5lclN0YXRlLmZ1cnRoZXJCbGFua0xpbmVzPWkuY29udGFpbmVyU3RhdGUuZnVydGhlckJsYW5rTGluZXN8fGkuY29udGFpbmVyU3RhdGUuaW5pdGlhbEJsYW5rTGluZSxtdChlLHQsImxpc3RJdGVtSW5kZW50IixpLmNvbnRhaW5lclN0YXRlLnNpemUrMSkocyl9ZnVuY3Rpb24gbihzKXtyZXR1cm4gaS5jb250YWluZXJTdGF0ZS5mdXJ0aGVyQmxhbmtMaW5lc3x8IWx0KHMpPyhpLmNvbnRhaW5lclN0YXRlLmZ1cnRoZXJCbGFua0xpbmVzPXZvaWQgMCxpLmNvbnRhaW5lclN0YXRlLmluaXRpYWxCbGFua0xpbmU9dm9pZCAwLG8ocykpOihpLmNvbnRhaW5lclN0YXRlLmZ1cnRoZXJCbGFua0xpbmVzPXZvaWQgMCxpLmNvbnRhaW5lclN0YXRlLmluaXRpYWxCbGFua0xpbmU9dm9pZCAwLGUuYXR0ZW1wdChja3IsdCxvKShzKSl9ZnVuY3Rpb24gbyhzKXtyZXR1cm4gaS5jb250YWluZXJTdGF0ZS5fY2xvc2VGbG93PSEwLGkuaW50ZXJydXB0PXZvaWQgMCxtdChlLGUuYXR0ZW1wdCh2YSx0LHIpLCJsaW5lUHJlZml4IixpLnBhcnNlci5jb25zdHJ1Y3RzLmRpc2FibGUubnVsbC5pbmNsdWRlcygiY29kZUluZGVudGVkIik/dm9pZCAwOjQpKHMpfX1mdW5jdGlvbiBwa3IoZSx0LHIpe2xldCBpPXRoaXM7cmV0dXJuIG10KGUsYSwibGlzdEl0ZW1JbmRlbnQiLGkuY29udGFpbmVyU3RhdGUuc2l6ZSsxKTtmdW5jdGlvbiBhKG4pe2xldCBvPWkuZXZlbnRzW2kuZXZlbnRzLmxlbmd0aC0xXTtyZXR1cm4gbyYmb1sxXS50eXBlPT09Imxpc3RJdGVtSW5kZW50IiYmb1syXS5zbGljZVNlcmlhbGl6ZShvWzFdLCEwKS5sZW5ndGg9PT1pLmNvbnRhaW5lclN0YXRlLnNpemU/dChuKTpyKG4pfX1mdW5jdGlvbiBoa3IoZSl7ZS5leGl0KHRoaXMuY29udGFpbmVyU3RhdGUudHlwZSl9ZnVuY3Rpb24gZmtyKGUsdCxyKXtsZXQgaT10aGlzO3JldHVybiBtdChlLGEsImxpc3RJdGVtUHJlZml4V2hpdGVzcGFjZSIsaS5wYXJzZXIuY29uc3RydWN0cy5kaXNhYmxlLm51bGwuaW5jbHVkZXMoImNvZGVJbmRlbnRlZCIpP3ZvaWQgMDo1KTtmdW5jdGlvbiBhKG4pe2xldCBvPWkuZXZlbnRzW2kuZXZlbnRzLmxlbmd0aC0xXTtyZXR1cm4hbHQobikmJm8mJm9bMV0udHlwZT09PSJsaXN0SXRlbVByZWZpeFdoaXRlc3BhY2UiP3Qobik6cihuKX19dmFyIHZhLGxrcixja3IsZ3plPXAoKCk9PntCMSgpO3RyKCk7TE0oKTtkVSgpO3ZhPXtjb250aW51YXRpb246e3Rva2VuaXplOnVrcn0sZXhpdDpoa3IsbmFtZToibGlzdCIsdG9rZW5pemU6ZGtyfSxsa3I9e3BhcnRpYWw6ITAsdG9rZW5pemU6ZmtyfSxja3I9e3BhcnRpYWw6ITAsdG9rZW5pemU6cGtyfX0pO2Z1bmN0aW9uIG1rcihlLHQpe2xldCByPWUubGVuZ3RoLGksYSxuO2Zvcig7ci0tOylpZihlW3JdWzBdPT09ImVudGVyIil7aWYoZVtyXVsxXS50eXBlPT09ImNvbnRlbnQiKXtpPXI7YnJlYWt9ZVtyXVsxXS50eXBlPT09InBhcmFncmFwaCImJihhPXIpfWVsc2UgZVtyXVsxXS50eXBlPT09ImNvbnRlbnQiJiZlLnNwbGljZShyLDEpLCFuJiZlW3JdWzFdLnR5cGU9PT0iZGVmaW5pdGlvbiImJihuPXIpO2xldCBvPXt0eXBlOiJzZXRleHRIZWFkaW5nIixzdGFydDp7Li4uZVtpXVsxXS5zdGFydH0sZW5kOnsuLi5lW2UubGVuZ3RoLTFdWzFdLmVuZH19O3JldHVybiBlW2FdWzFdLnR5cGU9InNldGV4dEhlYWRpbmdUZXh0IixuPyhlLnNwbGljZShhLDAsWyJlbnRlciIsbyx0XSksZS5zcGxpY2UobisxLDAsWyJleGl0IixlW2ldWzFdLHRdKSxlW2ldWzFdLmVuZD17Li4uZVtuXVsxXS5lbmR9KTplW2ldWzFdPW8sZS5wdXNoKFsiZXhpdCIsbyx0XSksZX1mdW5jdGlvbiBna3IoZSx0LHIpe2xldCBpPXRoaXMsYTtyZXR1cm4gbjtmdW5jdGlvbiBuKGMpe2xldCB1PWkuZXZlbnRzLmxlbmd0aCxkO2Zvcig7dS0tOylpZihpLmV2ZW50c1t1XVsxXS50eXBlIT09ImxpbmVFbmRpbmciJiZpLmV2ZW50c1t1XVsxXS50eXBlIT09ImxpbmVQcmVmaXgiJiZpLmV2ZW50c1t1XVsxXS50eXBlIT09ImNvbnRlbnQiKXtkPWkuZXZlbnRzW3VdWzFdLnR5cGU9PT0icGFyYWdyYXBoIjticmVha31yZXR1cm4haS5wYXJzZXIubGF6eVtpLm5vdygpLmxpbmVdJiYoaS5pbnRlcnJ1cHR8fGQpPyhlLmVudGVyKCJzZXRleHRIZWFkaW5nTGluZSIpLGE9YyxvKGMpKTpyKGMpfWZ1bmN0aW9uIG8oYyl7cmV0dXJuIGUuZW50ZXIoInNldGV4dEhlYWRpbmdMaW5lU2VxdWVuY2UiKSxzKGMpfWZ1bmN0aW9uIHMoYyl7cmV0dXJuIGM9PT1hPyhlLmNvbnN1bWUoYykscyk6KGUuZXhpdCgic2V0ZXh0SGVhZGluZ0xpbmVTZXF1ZW5jZSIpLGx0KGMpP210KGUsbCwibGluZVN1ZmZpeCIpKGMpOmwoYykpfWZ1bmN0aW9uIGwoYyl7cmV0dXJuIGM9PT1udWxsfHxXZShjKT8oZS5leGl0KCJzZXRleHRIZWFkaW5nTGluZSIpLHQoYykpOnIoYyl9fXZhciBSTSxiemU9cCgoKT0+e0IxKCk7dHIoKTtSTT17bmFtZToic2V0ZXh0VW5kZXJsaW5lIixyZXNvbHZlVG86bWtyLHRva2VuaXplOmdrcn19KTt2YXIgQk09cCgoKT0+e1hTZSgpO1FTZSgpO0xNKCk7SlNlKCk7S1NlKCk7ZXplKCk7cnplKCk7aXplKCk7YXplKCk7bnplKCk7b3plKCk7c3plKCk7bHplKCk7dXplKCk7cHplKCk7T00oKTtoemUoKTtmemUoKTttemUoKTtnemUoKTtiemUoKTtkVSgpfSk7ZnVuY3Rpb24gdVUoKXtyZXR1cm57ZG9jdW1lbnQ6ezkxOntuYW1lOiJnZm1Gb290bm90ZURlZmluaXRpb24iLHRva2VuaXplOndrcixjb250aW51YXRpb246e3Rva2VuaXplOk1rcn0sZXhpdDpra3J9fSx0ZXh0Ons5MTp7bmFtZToiZ2ZtRm9vdG5vdGVDYWxsIix0b2tlbml6ZTp5a3J9LDkzOntuYW1lOiJnZm1Qb3RlbnRpYWxGb290bm90ZUNhbGwiLGFkZDoiYWZ0ZXIiLHRva2VuaXplOnZrcixyZXNvbHZlVG86eGtyfX19fWZ1bmN0aW9uIHZrcihlLHQscil7bGV0IGk9dGhpcyxhPWkuZXZlbnRzLmxlbmd0aCxuPWkucGFyc2VyLmdmbUZvb3Rub3Rlc3x8KGkucGFyc2VyLmdmbUZvb3Rub3Rlcz1bXSksbztmb3IoO2EtLTspe2xldCBsPWkuZXZlbnRzW2FdWzFdO2lmKGwudHlwZT09PSJsYWJlbEltYWdlIil7bz1sO2JyZWFrfWlmKGwudHlwZT09PSJnZm1Gb290bm90ZUNhbGwifHxsLnR5cGU9PT0ibGFiZWxMaW5rInx8bC50eXBlPT09ImxhYmVsInx8bC50eXBlPT09ImltYWdlInx8bC50eXBlPT09ImxpbmsiKWJyZWFrfXJldHVybiBzO2Z1bmN0aW9uIHMobCl7aWYoIW98fCFvLl9iYWxhbmNlZClyZXR1cm4gcihsKTtsZXQgYz1MMShpLnNsaWNlU2VyaWFsaXplKHtzdGFydDpvLmVuZCxlbmQ6aS5ub3coKX0pKTtyZXR1cm4gYy5jb2RlUG9pbnRBdCgwKSE9PTk0fHwhbi5pbmNsdWRlcyhjLnNsaWNlKDEpKT9yKGwpOihlLmVudGVyKCJnZm1Gb290bm90ZUNhbGxMYWJlbE1hcmtlciIpLGUuY29uc3VtZShsKSxlLmV4aXQoImdmbUZvb3Rub3RlQ2FsbExhYmVsTWFya2VyIiksdChsKSl9fWZ1bmN0aW9uIHhrcihlLHQpe2xldCByPWUubGVuZ3RoLGk7Zm9yKDtyLS07KWlmKGVbcl1bMV0udHlwZT09PSJsYWJlbEltYWdlIiYmZVtyXVswXT09PSJlbnRlciIpe2k9ZVtyXVsxXTticmVha31lW3IrMV1bMV0udHlwZT0iZGF0YSIsZVtyKzNdWzFdLnR5cGU9ImdmbUZvb3Rub3RlQ2FsbExhYmVsTWFya2VyIjtsZXQgYT17dHlwZToiZ2ZtRm9vdG5vdGVDYWxsIixzdGFydDpPYmplY3QuYXNzaWduKHt9LGVbciszXVsxXS5zdGFydCksZW5kOk9iamVjdC5hc3NpZ24oe30sZVtlLmxlbmd0aC0xXVsxXS5lbmQpfSxuPXt0eXBlOiJnZm1Gb290bm90ZUNhbGxNYXJrZXIiLHN0YXJ0Ok9iamVjdC5hc3NpZ24oe30sZVtyKzNdWzFdLmVuZCksZW5kOk9iamVjdC5hc3NpZ24oe30sZVtyKzNdWzFdLmVuZCl9O24uZW5kLmNvbHVtbisrLG4uZW5kLm9mZnNldCsrLG4uZW5kLl9idWZmZXJJbmRleCsrO2xldCBvPXt0eXBlOiJnZm1Gb290bm90ZUNhbGxTdHJpbmciLHN0YXJ0Ok9iamVjdC5hc3NpZ24oe30sbi5lbmQpLGVuZDpPYmplY3QuYXNzaWduKHt9LGVbZS5sZW5ndGgtMV1bMV0uc3RhcnQpfSxzPXt0eXBlOiJjaHVua1N0cmluZyIsY29udGVudFR5cGU6InN0cmluZyIsc3RhcnQ6T2JqZWN0LmFzc2lnbih7fSxvLnN0YXJ0KSxlbmQ6T2JqZWN0LmFzc2lnbih7fSxvLmVuZCl9LGw9W2VbcisxXSxlW3IrMl0sWyJlbnRlciIsYSx0XSxlW3IrM10sZVtyKzRdLFsiZW50ZXIiLG4sdF0sWyJleGl0IixuLHRdLFsiZW50ZXIiLG8sdF0sWyJlbnRlciIscyx0XSxbImV4aXQiLHMsdF0sWyJleGl0IixvLHRdLGVbZS5sZW5ndGgtMl0sZVtlLmxlbmd0aC0xXSxbImV4aXQiLGEsdF1dO3JldHVybiBlLnNwbGljZShyLGUubGVuZ3RoLXIrMSwuLi5sKSxlfWZ1bmN0aW9uIHlrcihlLHQscil7bGV0IGk9dGhpcyxhPWkucGFyc2VyLmdmbUZvb3Rub3Rlc3x8KGkucGFyc2VyLmdmbUZvb3Rub3Rlcz1bXSksbj0wLG87cmV0dXJuIHM7ZnVuY3Rpb24gcyhkKXtyZXR1cm4gZS5lbnRlcigiZ2ZtRm9vdG5vdGVDYWxsIiksZS5lbnRlcigiZ2ZtRm9vdG5vdGVDYWxsTGFiZWxNYXJrZXIiKSxlLmNvbnN1bWUoZCksZS5leGl0KCJnZm1Gb290bm90ZUNhbGxMYWJlbE1hcmtlciIpLGx9ZnVuY3Rpb24gbChkKXtyZXR1cm4gZCE9PTk0P3IoZCk6KGUuZW50ZXIoImdmbUZvb3Rub3RlQ2FsbE1hcmtlciIpLGUuY29uc3VtZShkKSxlLmV4aXQoImdmbUZvb3Rub3RlQ2FsbE1hcmtlciIpLGUuZW50ZXIoImdmbUZvb3Rub3RlQ2FsbFN0cmluZyIpLGUuZW50ZXIoImNodW5rU3RyaW5nIikuY29udGVudFR5cGU9InN0cmluZyIsYyl9ZnVuY3Rpb24gYyhkKXtpZihuPjk5OXx8ZD09PTkzJiYhb3x8ZD09PW51bGx8fGQ9PT05MXx8WnQoZCkpcmV0dXJuIHIoZCk7aWYoZD09PTkzKXtlLmV4aXQoImNodW5rU3RyaW5nIik7bGV0IGg9ZS5leGl0KCJnZm1Gb290bm90ZUNhbGxTdHJpbmciKTtyZXR1cm4gYS5pbmNsdWRlcyhMMShpLnNsaWNlU2VyaWFsaXplKGgpKSk/KGUuZW50ZXIoImdmbUZvb3Rub3RlQ2FsbExhYmVsTWFya2VyIiksZS5jb25zdW1lKGQpLGUuZXhpdCgiZ2ZtRm9vdG5vdGVDYWxsTGFiZWxNYXJrZXIiKSxlLmV4aXQoImdmbUZvb3Rub3RlQ2FsbCIpLHQpOnIoZCl9cmV0dXJuIFp0KGQpfHwobz0hMCksbisrLGUuY29uc3VtZShkKSxkPT09OTI/dTpjfWZ1bmN0aW9uIHUoZCl7cmV0dXJuIGQ9PT05MXx8ZD09PTkyfHxkPT09OTM/KGUuY29uc3VtZShkKSxuKyssYyk6YyhkKX19ZnVuY3Rpb24gd2tyKGUsdCxyKXtsZXQgaT10aGlzLGE9aS5wYXJzZXIuZ2ZtRm9vdG5vdGVzfHwoaS5wYXJzZXIuZ2ZtRm9vdG5vdGVzPVtdKSxuLG89MCxzO3JldHVybiBsO2Z1bmN0aW9uIGwoeCl7cmV0dXJuIGUuZW50ZXIoImdmbUZvb3Rub3RlRGVmaW5pdGlvbiIpLl9jb250YWluZXI9ITAsZS5lbnRlcigiZ2ZtRm9vdG5vdGVEZWZpbml0aW9uTGFiZWwiKSxlLmVudGVyKCJnZm1Gb290bm90ZURlZmluaXRpb25MYWJlbE1hcmtlciIpLGUuY29uc3VtZSh4KSxlLmV4aXQoImdmbUZvb3Rub3RlRGVmaW5pdGlvbkxhYmVsTWFya2VyIiksY31mdW5jdGlvbiBjKHgpe3JldHVybiB4PT09OTQ/KGUuZW50ZXIoImdmbUZvb3Rub3RlRGVmaW5pdGlvbk1hcmtlciIpLGUuY29uc3VtZSh4KSxlLmV4aXQoImdmbUZvb3Rub3RlRGVmaW5pdGlvbk1hcmtlciIpLGUuZW50ZXIoImdmbUZvb3Rub3RlRGVmaW5pdGlvbkxhYmVsU3RyaW5nIiksZS5lbnRlcigiY2h1bmtTdHJpbmciKS5jb250ZW50VHlwZT0ic3RyaW5nIix1KTpyKHgpfWZ1bmN0aW9uIHUoeCl7aWYobz45OTl8fHg9PT05MyYmIXN8fHg9PT1udWxsfHx4PT09OTF8fFp0KHgpKXJldHVybiByKHgpO2lmKHg9PT05Myl7ZS5leGl0KCJjaHVua1N0cmluZyIpO2xldCB2PWUuZXhpdCgiZ2ZtRm9vdG5vdGVEZWZpbml0aW9uTGFiZWxTdHJpbmciKTtyZXR1cm4gbj1MMShpLnNsaWNlU2VyaWFsaXplKHYpKSxlLmVudGVyKCJnZm1Gb290bm90ZURlZmluaXRpb25MYWJlbE1hcmtlciIpLGUuY29uc3VtZSh4KSxlLmV4aXQoImdmbUZvb3Rub3RlRGVmaW5pdGlvbkxhYmVsTWFya2VyIiksZS5leGl0KCJnZm1Gb290bm90ZURlZmluaXRpb25MYWJlbCIpLGh9cmV0dXJuIFp0KHgpfHwocz0hMCksbysrLGUuY29uc3VtZSh4KSx4PT09OTI/ZDp1fWZ1bmN0aW9uIGQoeCl7cmV0dXJuIHg9PT05MXx8eD09PTkyfHx4PT09OTM/KGUuY29uc3VtZSh4KSxvKyssdSk6dSh4KX1mdW5jdGlvbiBoKHgpe3JldHVybiB4PT09NTg/KGUuZW50ZXIoImRlZmluaXRpb25NYXJrZXIiKSxlLmNvbnN1bWUoeCksZS5leGl0KCJkZWZpbml0aW9uTWFya2VyIiksYS5pbmNsdWRlcyhuKXx8YS5wdXNoKG4pLG10KGUsZiwiZ2ZtRm9vdG5vdGVEZWZpbml0aW9uV2hpdGVzcGFjZSIpKTpyKHgpfWZ1bmN0aW9uIGYoeCl7cmV0dXJuIHQoeCl9fWZ1bmN0aW9uIE1rcihlLHQscil7cmV0dXJuIGUuY2hlY2soZ3MsdCxlLmF0dGVtcHQoYmtyLHQscikpfWZ1bmN0aW9uIGtrcihlKXtlLmV4aXQoImdmbUZvb3Rub3RlRGVmaW5pdGlvbiIpfWZ1bmN0aW9uIFNrcihlLHQscil7bGV0IGk9dGhpcztyZXR1cm4gbXQoZSxhLCJnZm1Gb290bm90ZURlZmluaXRpb25JbmRlbnQiLDUpO2Z1bmN0aW9uIGEobil7bGV0IG89aS5ldmVudHNbaS5ldmVudHMubGVuZ3RoLTFdO3JldHVybiBvJiZvWzFdLnR5cGU9PT0iZ2ZtRm9vdG5vdGVEZWZpbml0aW9uSW5kZW50IiYmb1syXS5zbGljZVNlcmlhbGl6ZShvWzFdLCEwKS5sZW5ndGg9PT00P3Qobik6cihuKX19dmFyIGJrcix2emU9cCgoKT0+e0JNKCk7QjEoKTt0cigpO3kwKCk7YmtyPXt0b2tlbml6ZTpTa3IscGFydGlhbDohMH19KTtmdW5jdGlvbiB4emUoZSx0KXtyZXR1cm4iQmFjayB0byByZWZlcmVuY2UgIisoZSsxKSsodD4xPyItIit0OiIiKX1mdW5jdGlvbiBwVShlKXtsZXQgdD1lfHxDa3Iscj10LmxhYmVsfHwiRm9vdG5vdGVzIixpPXQubGFiZWxUYWdOYW1lfHwiaDIiLGE9dC5sYWJlbEF0dHJpYnV0ZXM9PT1udWxsfHx0LmxhYmVsQXR0cmlidXRlcz09PXZvaWQgMD8nY2xhc3M9InNyLW9ubHkiJzp0LmxhYmVsQXR0cmlidXRlcyxuPXQuYmFja0xhYmVsfHx4emUsbz10LmNsb2JiZXJQcmVmaXg9PT1udWxsfHx0LmNsb2JiZXJQcmVmaXg9PT12b2lkIDA/InVzZXItY29udGVudC0iOnQuY2xvYmJlclByZWZpeDtyZXR1cm57ZW50ZXI6e2dmbUZvb3Rub3RlRGVmaW5pdGlvbigpe3RoaXMuZ2V0RGF0YSgidGlnaHRTdGFjayIpLnB1c2goITEpfSxnZm1Gb290bm90ZURlZmluaXRpb25MYWJlbFN0cmluZygpe3RoaXMuYnVmZmVyKCl9LGdmbUZvb3Rub3RlQ2FsbFN0cmluZygpe3RoaXMuYnVmZmVyKCl9fSxleGl0OntnZm1Gb290bm90ZURlZmluaXRpb24oKXtsZXQgcz10aGlzLmdldERhdGEoImdmbUZvb3Rub3RlRGVmaW5pdGlvbnMiKSxsPXRoaXMuZ2V0RGF0YSgiZ2ZtRm9vdG5vdGVEZWZpbml0aW9uU3RhY2siKSxjPXRoaXMuZ2V0RGF0YSgidGlnaHRTdGFjayIpLHU9bC5wb3AoKSxkPXRoaXMucmVzdW1lKCk7c3x8dGhpcy5zZXREYXRhKCJnZm1Gb290bm90ZURlZmluaXRpb25zIixzPXt9KSx6a3IuY2FsbChzLHUpfHwoc1t1XT1kKSxjLnBvcCgpLHRoaXMuc2V0RGF0YSgic2x1cnBPbmVMaW5lRW5kaW5nIiwhMCksdGhpcy5zZXREYXRhKCJsYXN0V2FzVGFnIil9LGdmbUZvb3Rub3RlRGVmaW5pdGlvbkxhYmVsU3RyaW5nKHMpe2xldCBsPXRoaXMuZ2V0RGF0YSgiZ2ZtRm9vdG5vdGVEZWZpbml0aW9uU3RhY2siKTtsfHx0aGlzLnNldERhdGEoImdmbUZvb3Rub3RlRGVmaW5pdGlvblN0YWNrIixsPVtdKSxsLnB1c2goTDEodGhpcy5zbGljZVNlcmlhbGl6ZShzKSkpLHRoaXMucmVzdW1lKCksdGhpcy5idWZmZXIoKX0sZ2ZtRm9vdG5vdGVDYWxsU3RyaW5nKHMpe2xldCBsPXRoaXMuZ2V0RGF0YSgiZ2ZtRm9vdG5vdGVDYWxsT3JkZXIiKSxjPXRoaXMuZ2V0RGF0YSgiZ2ZtRm9vdG5vdGVDYWxsQ291bnRzIiksdT1MMSh0aGlzLnNsaWNlU2VyaWFsaXplKHMpKSxkO3RoaXMucmVzdW1lKCksbHx8dGhpcy5zZXREYXRhKCJnZm1Gb290bm90ZUNhbGxPcmRlciIsbD1bXSksY3x8dGhpcy5zZXREYXRhKCJnZm1Gb290bm90ZUNhbGxDb3VudHMiLGM9e30pO2xldCBoPWwuaW5kZXhPZih1KSxmPWZzKHUudG9Mb3dlckNhc2UoKSk7aD09PS0xPyhsLnB1c2godSksY1t1XT0xLGQ9bC5sZW5ndGgpOihjW3VdKyssZD1oKzEpO2xldCB4PWNbdV07dGhpcy50YWcoJzxzdXA+PGEgaHJlZj0iIycrbysiZm4tIitmKyciIGlkPSInK28rImZucmVmLSIrZisoeD4xPyItIit4OiIiKSsnIiBkYXRhLWZvb3Rub3RlLXJlZj0iIiBhcmlhLWRlc2NyaWJlZGJ5PSJmb290bm90ZS1sYWJlbCI+JytTdHJpbmcoZCkrIjwvYT48L3N1cD4iKX0sbnVsbCgpe2xldCBzPXRoaXMuZ2V0RGF0YSgiZ2ZtRm9vdG5vdGVDYWxsT3JkZXIiKXx8W10sbD10aGlzLmdldERhdGEoImdmbUZvb3Rub3RlQ2FsbENvdW50cyIpfHx7fSxjPXRoaXMuZ2V0RGF0YSgiZ2ZtRm9vdG5vdGVEZWZpbml0aW9ucyIpfHx7fSx1PS0xO2ZvcihzLmxlbmd0aD4wJiYodGhpcy5saW5lRW5kaW5nSWZOZWVkZWQoKSx0aGlzLnRhZygnPHNlY3Rpb24gZGF0YS1mb290bm90ZXM9IiIgY2xhc3M9ImZvb3Rub3RlcyI+PCcraSsnIGlkPSJmb290bm90ZS1sYWJlbCInKyhhPyIgIithOiIiKSsiPiIpLHRoaXMucmF3KHRoaXMuZW5jb2RlKHIpKSx0aGlzLnRhZygiPC8iK2krIj4iKSx0aGlzLmxpbmVFbmRpbmdJZk5lZWRlZCgpLHRoaXMudGFnKCI8b2w+IikpOysrdTxzLmxlbmd0aDspe2xldCBkPXNbdV0saD1mcyhkLnRvTG93ZXJDYXNlKCkpLGY9MCx4PVtdO2Zvcig7KytmPD1sW2RdOyl4LnB1c2goJzxhIGhyZWY9IiMnK28rImZucmVmLSIraCsoZj4xPyItIitmOiIiKSsnIiBkYXRhLWZvb3Rub3RlLWJhY2tyZWY9IiIgYXJpYS1sYWJlbD0iJyt0aGlzLmVuY29kZSh0eXBlb2Ygbj09InN0cmluZyI/bjpuKHUsZikpKyciIGNsYXNzPSJkYXRhLWZvb3Rub3RlLWJhY2tyZWYiPlx1MjFBOScrKGY+MT8iPHN1cD4iK2YrIjwvc3VwPiI6IiIpKyI8L2E+Iik7bGV0IHY9eC5qb2luKCIgIiksYj0hMTt0aGlzLmxpbmVFbmRpbmdJZk5lZWRlZCgpLHRoaXMudGFnKCc8bGkgaWQ9IicrbysiZm4tIitoKyciPicpLHRoaXMubGluZUVuZGluZ0lmTmVlZGVkKCksdGhpcy50YWcoY1tkXS5yZXBsYWNlKC88XC9wPig/OlxyP1xufFxyKT8kLyxmdW5jdGlvbih5KXtyZXR1cm4gYj0hMCwiICIrdit5fSkpLGJ8fCh0aGlzLmxpbmVFbmRpbmdJZk5lZWRlZCgpLHRoaXMudGFnKHYpKSx0aGlzLmxpbmVFbmRpbmdJZk5lZWRlZCgpLHRoaXMudGFnKCI8L2xpPiIpfXMubGVuZ3RoPjAmJih0aGlzLmxpbmVFbmRpbmdJZk5lZWRlZCgpLHRoaXMudGFnKCI8L29sPiIpLHRoaXMubGluZUVuZGluZ0lmTmVlZGVkKCksdGhpcy50YWcoIjwvc2VjdGlvbj4iKSl9fX19dmFyIHprcixDa3IseXplPXAoKCk9Pnt5MCgpO21zKCk7emtyPXt9Lmhhc093blByb3BlcnR5LENrcj17fX0pO3ZhciB3emU9cCgoKT0+e3Z6ZSgpO3l6ZSgpfSk7ZnVuY3Rpb24gaFUoKXtyZXR1cm57ZW50ZXI6e3N0cmlrZXRocm91Z2goKXt0aGlzLnRhZygiPGRlbD4iKX19LGV4aXQ6e3N0cmlrZXRocm91Z2goKXt0aGlzLnRhZygiPC9kZWw+Iil9fX19dmFyIE16ZT1wKCgpPT57fSk7ZnVuY3Rpb24gZlUoZSl7bGV0IHI9KGV8fHt9KS5zaW5nbGVUaWxkZSxpPXtuYW1lOiJzdHJpa2V0aHJvdWdoIix0b2tlbml6ZTpuLHJlc29sdmVBbGw6YX07cmV0dXJuIHI9PW51bGwmJihyPSEwKSx7dGV4dDp7MTI2Oml9LGluc2lkZVNwYW46e251bGw6W2ldfSxhdHRlbnRpb25NYXJrZXJzOntudWxsOlsxMjZdfX07ZnVuY3Rpb24gYShvLHMpe2xldCBsPS0xO2Zvcig7KytsPG8ubGVuZ3RoOylpZihvW2xdWzBdPT09ImVudGVyIiYmb1tsXVsxXS50eXBlPT09InN0cmlrZXRocm91Z2hTZXF1ZW5jZVRlbXBvcmFyeSImJm9bbF1bMV0uX2Nsb3NlKXtsZXQgYz1sO2Zvcig7Yy0tOylpZihvW2NdWzBdPT09ImV4aXQiJiZvW2NdWzFdLnR5cGU9PT0ic3RyaWtldGhyb3VnaFNlcXVlbmNlVGVtcG9yYXJ5IiYmb1tjXVsxXS5fb3BlbiYmb1tsXVsxXS5lbmQub2Zmc2V0LW9bbF1bMV0uc3RhcnQub2Zmc2V0PT09b1tjXVsxXS5lbmQub2Zmc2V0LW9bY11bMV0uc3RhcnQub2Zmc2V0KXtvW2xdWzFdLnR5cGU9InN0cmlrZXRocm91Z2hTZXF1ZW5jZSIsb1tjXVsxXS50eXBlPSJzdHJpa2V0aHJvdWdoU2VxdWVuY2UiO2xldCB1PXt0eXBlOiJzdHJpa2V0aHJvdWdoIixzdGFydDpPYmplY3QuYXNzaWduKHt9LG9bY11bMV0uc3RhcnQpLGVuZDpPYmplY3QuYXNzaWduKHt9LG9bbF1bMV0uZW5kKX0sZD17dHlwZToic3RyaWtldGhyb3VnaFRleHQiLHN0YXJ0Ok9iamVjdC5hc3NpZ24oe30sb1tjXVsxXS5lbmQpLGVuZDpPYmplY3QuYXNzaWduKHt9LG9bbF1bMV0uc3RhcnQpfSxoPVtbImVudGVyIix1LHNdLFsiZW50ZXIiLG9bY11bMV0sc10sWyJleGl0IixvW2NdWzFdLHNdLFsiZW50ZXIiLGQsc11dLGY9cy5wYXJzZXIuY29uc3RydWN0cy5pbnNpZGVTcGFuLm51bGw7ZiYmUjEoaCxoLmxlbmd0aCwwLE0wKGYsby5zbGljZShjKzEsbCkscykpLFIxKGgsaC5sZW5ndGgsMCxbWyJleGl0IixkLHNdLFsiZW50ZXIiLG9bbF1bMV0sc10sWyJleGl0IixvW2xdWzFdLHNdLFsiZXhpdCIsdSxzXV0pLFIxKG8sYy0xLGwtYyszLGgpLGw9YytoLmxlbmd0aC0yO2JyZWFrfX1mb3IobD0tMTsrK2w8by5sZW5ndGg7KW9bbF1bMV0udHlwZT09PSJzdHJpa2V0aHJvdWdoU2VxdWVuY2VUZW1wb3JhcnkiJiYob1tsXVsxXS50eXBlPSJkYXRhIik7cmV0dXJuIG99ZnVuY3Rpb24gbihvLHMsbCl7bGV0IGM9dGhpcy5wcmV2aW91cyx1PXRoaXMuZXZlbnRzLGQ9MDtyZXR1cm4gaDtmdW5jdGlvbiBoKHgpe3JldHVybiBjPT09MTI2JiZ1W3UubGVuZ3RoLTFdWzFdLnR5cGUhPT0iY2hhcmFjdGVyRXNjYXBlIj9sKHgpOihvLmVudGVyKCJzdHJpa2V0aHJvdWdoU2VxdWVuY2VUZW1wb3JhcnkiKSxmKHgpKX1mdW5jdGlvbiBmKHgpe2xldCB2PURsKGMpO2lmKHg9PT0xMjYpcmV0dXJuIGQ+MT9sKHgpOihvLmNvbnN1bWUoeCksZCsrLGYpO2lmKGQ8MiYmIXIpcmV0dXJuIGwoeCk7bGV0IGI9by5leGl0KCJzdHJpa2V0aHJvdWdoU2VxdWVuY2VUZW1wb3JhcnkiKSx5PURsKHgpO3JldHVybiBiLl9vcGVuPSF5fHx5PT09MiYmISF2LGIuX2Nsb3NlPSF2fHx2PT09MiYmISF5LHMoeCl9fX12YXIga3plPXAoKCk9PntwcygpO2JNKCk7djcoKX0pO3ZhciBTemU9cCgoKT0+e016ZSgpO2t6ZSgpfSk7ZnVuY3Rpb24gZ1UoKXtyZXR1cm57ZW50ZXI6e3RhYmxlKGUpe2xldCB0PWUuX2FsaWduO3RoaXMubGluZUVuZGluZ0lmTmVlZGVkKCksdGhpcy50YWcoIjx0YWJsZT4iKSx0aGlzLnNldERhdGEoInRhYmxlQWxpZ24iLHQpfSx0YWJsZUJvZHkoKXt0aGlzLnRhZygiPHRib2R5PiIpfSx0YWJsZURhdGEoKXtsZXQgZT10aGlzLmdldERhdGEoInRhYmxlQWxpZ24iKSx0PXRoaXMuZ2V0RGF0YSgidGFibGVDb2x1bW4iKSxyPW1VW2VbdF1dO3I9PT12b2lkIDA/dGhpcy5idWZmZXIoKToodGhpcy5saW5lRW5kaW5nSWZOZWVkZWQoKSx0aGlzLnRhZygiPHRkIityKyI+IikpfSx0YWJsZUhlYWQoKXt0aGlzLmxpbmVFbmRpbmdJZk5lZWRlZCgpLHRoaXMudGFnKCI8dGhlYWQ+Iil9LHRhYmxlSGVhZGVyKCl7bGV0IGU9dGhpcy5nZXREYXRhKCJ0YWJsZUFsaWduIiksdD10aGlzLmdldERhdGEoInRhYmxlQ29sdW1uIikscj1tVVtlW3RdXTt0aGlzLmxpbmVFbmRpbmdJZk5lZWRlZCgpLHRoaXMudGFnKCI8dGgiK3IrIj4iKX0sdGFibGVSb3coKXt0aGlzLnNldERhdGEoInRhYmxlQ29sdW1uIiwwKSx0aGlzLmxpbmVFbmRpbmdJZk5lZWRlZCgpLHRoaXMudGFnKCI8dHI+Iil9fSxleGl0Ontjb2RlVGV4dERhdGEoZSl7bGV0IHQ9dGhpcy5zbGljZVNlcmlhbGl6ZShlKTt0aGlzLmdldERhdGEoInRhYmxlQWxpZ24iKSYmKHQ9dC5yZXBsYWNlKC9cXChbXFx8XSkvZyxUa3IpKSx0aGlzLnJhdyh0aGlzLmVuY29kZSh0KSl9LHRhYmxlKCl7dGhpcy5zZXREYXRhKCJ0YWJsZUFsaWduIiksdGhpcy5zZXREYXRhKCJzbHVycEFsbExpbmVFbmRpbmdzIiksdGhpcy5saW5lRW5kaW5nSWZOZWVkZWQoKSx0aGlzLnRhZygiPC90YWJsZT4iKX0sdGFibGVCb2R5KCl7dGhpcy5saW5lRW5kaW5nSWZOZWVkZWQoKSx0aGlzLnRhZygiPC90Ym9keT4iKX0sdGFibGVEYXRhKCl7bGV0IGU9dGhpcy5nZXREYXRhKCJ0YWJsZUFsaWduIiksdD10aGlzLmdldERhdGEoInRhYmxlQ29sdW1uIik7dCBpbiBlPyh0aGlzLnRhZygiPC90ZD4iKSx0aGlzLnNldERhdGEoInRhYmxlQ29sdW1uIix0KzEpKTp0aGlzLnJlc3VtZSgpfSx0YWJsZUhlYWQoKXt0aGlzLmxpbmVFbmRpbmdJZk5lZWRlZCgpLHRoaXMudGFnKCI8L3RoZWFkPiIpfSx0YWJsZUhlYWRlcigpe2xldCBlPXRoaXMuZ2V0RGF0YSgidGFibGVDb2x1bW4iKTt0aGlzLnRhZygiPC90aD4iKSx0aGlzLnNldERhdGEoInRhYmxlQ29sdW1uIixlKzEpfSx0YWJsZVJvdygpe2xldCBlPXRoaXMuZ2V0RGF0YSgidGFibGVBbGlnbiIpLHQ9dGhpcy5nZXREYXRhKCJ0YWJsZUNvbHVtbiIpO2Zvcig7dDxlLmxlbmd0aDspdGhpcy5saW5lRW5kaW5nSWZOZWVkZWQoKSx0aGlzLnRhZygiPHRkIittVVtlW3RdXSsiPjwvdGQ+IiksdCsrO3RoaXMuc2V0RGF0YSgidGFibGVDb2x1bW4iLHQpLHRoaXMubGluZUVuZGluZ0lmTmVlZGVkKCksdGhpcy50YWcoIjwvdHI+Iil9fX19ZnVuY3Rpb24gVGtyKGUsdCl7cmV0dXJuIHQ9PT0ifCI/dDplfXZhciBtVSx6emU9cCgoKT0+e21VPXtub25lOiIiLGxlZnQ6JyBhbGlnbj0ibGVmdCInLHJpZ2h0OicgYWxpZ249InJpZ2h0IicsY2VudGVyOicgYWxpZ249ImNlbnRlciInfX0pO2Z1bmN0aW9uIF9rcihlLHQscixpKXtsZXQgYT0wO2lmKCEocj09PTAmJmkubGVuZ3RoPT09MCkpe2Zvcig7YTxlLm1hcC5sZW5ndGg7KXtpZihlLm1hcFthXVswXT09PXQpe2UubWFwW2FdWzFdKz1yLGUubWFwW2FdWzJdLnB1c2goLi4uaSk7cmV0dXJufWErPTF9ZS5tYXAucHVzaChbdCxyLGldKX19dmFyIEhNLEN6ZT1wKCgpPT57SE09Y2xhc3N7Y29uc3RydWN0b3IoKXt0aGlzLm1hcD1bXX1hZGQodCxyLGkpe19rcih0aGlzLHQscixpKX1jb25zdW1lKHQpe2lmKHRoaXMubWFwLnNvcnQoZnVuY3Rpb24obixvKXtyZXR1cm4gblswXS1vWzBdfSksdGhpcy5tYXAubGVuZ3RoPT09MClyZXR1cm47bGV0IHI9dGhpcy5tYXAubGVuZ3RoLGk9W107Zm9yKDtyPjA7KXItPTEsaS5wdXNoKHQuc2xpY2UodGhpcy5tYXBbcl1bMF0rdGhpcy5tYXBbcl1bMV0pLHRoaXMubWFwW3JdWzJdKSx0Lmxlbmd0aD10aGlzLm1hcFtyXVswXTtpLnB1c2godC5zbGljZSgpKSx0Lmxlbmd0aD0wO2xldCBhPWkucG9wKCk7Zm9yKDthOyl7Zm9yKGxldCBuIG9mIGEpdC5wdXNoKG4pO2E9aS5wb3AoKX10aGlzLm1hcC5sZW5ndGg9MH19fSk7ZnVuY3Rpb24gVHplKGUsdCl7bGV0IHI9ITEsaT1bXTtmb3IoO3Q8ZS5sZW5ndGg7KXtsZXQgYT1lW3RdO2lmKHIpe2lmKGFbMF09PT0iZW50ZXIiKWFbMV0udHlwZT09PSJ0YWJsZUNvbnRlbnQiJiZpLnB1c2goZVt0KzFdWzFdLnR5cGU9PT0idGFibGVEZWxpbWl0ZXJNYXJrZXIiPyJsZWZ0Ijoibm9uZSIpO2Vsc2UgaWYoYVsxXS50eXBlPT09InRhYmxlQ29udGVudCIpe2lmKGVbdC0xXVsxXS50eXBlPT09InRhYmxlRGVsaW1pdGVyTWFya2VyIil7bGV0IG49aS5sZW5ndGgtMTtpW25dPWlbbl09PT0ibGVmdCI/ImNlbnRlciI6InJpZ2h0In19ZWxzZSBpZihhWzFdLnR5cGU9PT0idGFibGVEZWxpbWl0ZXJSb3ciKWJyZWFrfWVsc2UgYVswXT09PSJlbnRlciImJmFbMV0udHlwZT09PSJ0YWJsZURlbGltaXRlclJvdyImJihyPSEwKTt0Kz0xfXJldHVybiBpfXZhciBfemU9cCgoKT0+e30pO2Z1bmN0aW9uIGJVKCl7cmV0dXJue2Zsb3c6e251bGw6e25hbWU6InRhYmxlIix0b2tlbml6ZTpMa3IscmVzb2x2ZUFsbDpBa3J9fX19ZnVuY3Rpb24gTGtyKGUsdCxyKXtsZXQgaT10aGlzLGE9MCxuPTAsbztyZXR1cm4gcztmdW5jdGlvbiBzKFIpe2xldCBfPWkuZXZlbnRzLmxlbmd0aC0xO2Zvcig7Xz4tMTspe2xldCBUPWkuZXZlbnRzW19dWzFdLnR5cGU7aWYoVD09PSJsaW5lRW5kaW5nInx8VD09PSJsaW5lUHJlZml4IilfLS07ZWxzZSBicmVha31sZXQgUz1fPi0xP2kuZXZlbnRzW19dWzFdLnR5cGU6bnVsbCwkPVM9PT0idGFibGVIZWFkInx8Uz09PSJ0YWJsZVJvdyI/TTpsO3JldHVybiAkPT09TSYmaS5wYXJzZXIubGF6eVtpLm5vdygpLmxpbmVdP3IoUik6JChSKX1mdW5jdGlvbiBsKFIpe3JldHVybiBlLmVudGVyKCJ0YWJsZUhlYWQiKSxlLmVudGVyKCJ0YWJsZVJvdyIpLGMoUil9ZnVuY3Rpb24gYyhSKXtyZXR1cm4gUj09PTEyNHx8KG89ITAsbis9MSksdShSKX1mdW5jdGlvbiB1KFIpe3JldHVybiBSPT09bnVsbD9yKFIpOldlKFIpP24+MT8obj0wLGkuaW50ZXJydXB0PSEwLGUuZXhpdCgidGFibGVSb3ciKSxlLmVudGVyKCJsaW5lRW5kaW5nIiksZS5jb25zdW1lKFIpLGUuZXhpdCgibGluZUVuZGluZyIpLGYpOnIoUik6bHQoUik/bXQoZSx1LCJ3aGl0ZXNwYWNlIikoUik6KG4rPTEsbyYmKG89ITEsYSs9MSksUj09PTEyND8oZS5lbnRlcigidGFibGVDZWxsRGl2aWRlciIpLGUuY29uc3VtZShSKSxlLmV4aXQoInRhYmxlQ2VsbERpdmlkZXIiKSxvPSEwLHUpOihlLmVudGVyKCJkYXRhIiksZChSKSkpfWZ1bmN0aW9uIGQoUil7cmV0dXJuIFI9PT1udWxsfHxSPT09MTI0fHxadChSKT8oZS5leGl0KCJkYXRhIiksdShSKSk6KGUuY29uc3VtZShSKSxSPT09OTI/aDpkKX1mdW5jdGlvbiBoKFIpe3JldHVybiBSPT09OTJ8fFI9PT0xMjQ/KGUuY29uc3VtZShSKSxkKTpkKFIpfWZ1bmN0aW9uIGYoUil7cmV0dXJuIGkuaW50ZXJydXB0PSExLGkucGFyc2VyLmxhenlbaS5ub3coKS5saW5lXT9yKFIpOihlLmVudGVyKCJ0YWJsZURlbGltaXRlclJvdyIpLG89ITEsbHQoUik/bXQoZSx4LCJsaW5lUHJlZml4IixpLnBhcnNlci5jb25zdHJ1Y3RzLmRpc2FibGUubnVsbC5pbmNsdWRlcygiY29kZUluZGVudGVkIik/dm9pZCAwOjQpKFIpOngoUikpfWZ1bmN0aW9uIHgoUil7cmV0dXJuIFI9PT00NXx8Uj09PTU4P2IoUik6Uj09PTEyND8obz0hMCxlLmVudGVyKCJ0YWJsZUNlbGxEaXZpZGVyIiksZS5jb25zdW1lKFIpLGUuZXhpdCgidGFibGVDZWxsRGl2aWRlciIpLHYpOnooUil9ZnVuY3Rpb24gdihSKXtyZXR1cm4gbHQoUik/bXQoZSxiLCJ3aGl0ZXNwYWNlIikoUik6YihSKX1mdW5jdGlvbiBiKFIpe3JldHVybiBSPT09NTg/KG4rPTEsbz0hMCxlLmVudGVyKCJ0YWJsZURlbGltaXRlck1hcmtlciIpLGUuY29uc3VtZShSKSxlLmV4aXQoInRhYmxlRGVsaW1pdGVyTWFya2VyIikseSk6Uj09PTQ1PyhuKz0xLHkoUikpOlI9PT1udWxsfHxXZShSKT9PKFIpOnooUil9ZnVuY3Rpb24geShSKXtyZXR1cm4gUj09PTQ1PyhlLmVudGVyKCJ0YWJsZURlbGltaXRlckZpbGxlciIpLHcoUikpOnooUil9ZnVuY3Rpb24gdyhSKXtyZXR1cm4gUj09PTQ1PyhlLmNvbnN1bWUoUiksdyk6Uj09PTU4PyhvPSEwLGUuZXhpdCgidGFibGVEZWxpbWl0ZXJGaWxsZXIiKSxlLmVudGVyKCJ0YWJsZURlbGltaXRlck1hcmtlciIpLGUuY29uc3VtZShSKSxlLmV4aXQoInRhYmxlRGVsaW1pdGVyTWFya2VyIiksayk6KGUuZXhpdCgidGFibGVEZWxpbWl0ZXJGaWxsZXIiKSxrKFIpKX1mdW5jdGlvbiBrKFIpe3JldHVybiBsdChSKT9tdChlLE8sIndoaXRlc3BhY2UiKShSKTpPKFIpfWZ1bmN0aW9uIE8oUil7cmV0dXJuIFI9PT0xMjQ/eChSKTpSPT09bnVsbHx8V2UoUik/IW98fGEhPT1uP3ooUik6KGUuZXhpdCgidGFibGVEZWxpbWl0ZXJSb3ciKSxlLmV4aXQoInRhYmxlSGVhZCIpLHQoUikpOnooUil9ZnVuY3Rpb24geihSKXtyZXR1cm4gcihSKX1mdW5jdGlvbiBNKFIpe3JldHVybiBlLmVudGVyKCJ0YWJsZVJvdyIpLEYoUil9ZnVuY3Rpb24gRihSKXtyZXR1cm4gUj09PTEyND8oZS5lbnRlcigidGFibGVDZWxsRGl2aWRlciIpLGUuY29uc3VtZShSKSxlLmV4aXQoInRhYmxlQ2VsbERpdmlkZXIiKSxGKTpSPT09bnVsbHx8V2UoUik/KGUuZXhpdCgidGFibGVSb3ciKSx0KFIpKTpsdChSKT9tdChlLEYsIndoaXRlc3BhY2UiKShSKTooZS5lbnRlcigiZGF0YSIpLEQoUikpfWZ1bmN0aW9uIEQoUil7cmV0dXJuIFI9PT1udWxsfHxSPT09MTI0fHxadChSKT8oZS5leGl0KCJkYXRhIiksRihSKSk6KGUuY29uc3VtZShSKSxSPT09OTI/TjpEKX1mdW5jdGlvbiBOKFIpe3JldHVybiBSPT09OTJ8fFI9PT0xMjQ/KGUuY29uc3VtZShSKSxEKTpEKFIpfX1mdW5jdGlvbiBBa3IoZSx0KXtsZXQgcj0tMSxpPSEwLGE9MCxuPVswLDAsMCwwXSxvPVswLDAsMCwwXSxzPSExLGw9MCxjLHUsZCxoPW5ldyBITTtmb3IoOysrcjxlLmxlbmd0aDspe2xldCBmPWVbcl0seD1mWzFdO2ZbMF09PT0iZW50ZXIiP3gudHlwZT09PSJ0YWJsZUhlYWQiPyhzPSExLGwhPT0wJiYoTHplKGgsdCxsLGMsdSksdT12b2lkIDAsbD0wKSxjPXt0eXBlOiJ0YWJsZSIsc3RhcnQ6T2JqZWN0LmFzc2lnbih7fSx4LnN0YXJ0KSxlbmQ6T2JqZWN0LmFzc2lnbih7fSx4LmVuZCl9LGguYWRkKHIsMCxbWyJlbnRlciIsYyx0XV0pKTp4LnR5cGU9PT0idGFibGVSb3cifHx4LnR5cGU9PT0idGFibGVEZWxpbWl0ZXJSb3ciPyhpPSEwLGQ9dm9pZCAwLG49WzAsMCwwLDBdLG89WzAscisxLDAsMF0scyYmKHM9ITEsdT17dHlwZToidGFibGVCb2R5IixzdGFydDpPYmplY3QuYXNzaWduKHt9LHguc3RhcnQpLGVuZDpPYmplY3QuYXNzaWduKHt9LHguZW5kKX0saC5hZGQociwwLFtbImVudGVyIix1LHRdXSkpLGE9eC50eXBlPT09InRhYmxlRGVsaW1pdGVyUm93Ij8yOnU/MzoxKTphJiYoeC50eXBlPT09ImRhdGEifHx4LnR5cGU9PT0idGFibGVEZWxpbWl0ZXJNYXJrZXIifHx4LnR5cGU9PT0idGFibGVEZWxpbWl0ZXJGaWxsZXIiKT8oaT0hMSxvWzJdPT09MCYmKG5bMV0hPT0wJiYob1swXT1vWzFdLGQ9cU0oaCx0LG4sYSx2b2lkIDAsZCksbj1bMCwwLDAsMF0pLG9bMl09cikpOngudHlwZT09PSJ0YWJsZUNlbGxEaXZpZGVyIiYmKGk/aT0hMTooblsxXSE9PTAmJihvWzBdPW9bMV0sZD1xTShoLHQsbixhLHZvaWQgMCxkKSksbj1vLG89W25bMV0sciwwLDBdKSk6eC50eXBlPT09InRhYmxlSGVhZCI/KHM9ITAsbD1yKTp4LnR5cGU9PT0idGFibGVSb3cifHx4LnR5cGU9PT0idGFibGVEZWxpbWl0ZXJSb3ciPyhsPXIsblsxXSE9PTA/KG9bMF09b1sxXSxkPXFNKGgsdCxuLGEscixkKSk6b1sxXSE9PTAmJihkPXFNKGgsdCxvLGEscixkKSksYT0wKTphJiYoeC50eXBlPT09ImRhdGEifHx4LnR5cGU9PT0idGFibGVEZWxpbWl0ZXJNYXJrZXIifHx4LnR5cGU9PT0idGFibGVEZWxpbWl0ZXJGaWxsZXIiKSYmKG9bM109cil9Zm9yKGwhPT0wJiZMemUoaCx0LGwsYyx1KSxoLmNvbnN1bWUodC5ldmVudHMpLHI9LTE7KytyPHQuZXZlbnRzLmxlbmd0aDspe2xldCBmPXQuZXZlbnRzW3JdO2ZbMF09PT0iZW50ZXIiJiZmWzFdLnR5cGU9PT0idGFibGUiJiYoZlsxXS5fYWxpZ249VHplKHQuZXZlbnRzLHIpKX1yZXR1cm4gZX1mdW5jdGlvbiBxTShlLHQscixpLGEsbil7bGV0IG89aT09PTE/InRhYmxlSGVhZGVyIjppPT09Mj8idGFibGVEZWxpbWl0ZXIiOiJ0YWJsZURhdGEiLHM9InRhYmxlQ29udGVudCI7clswXSE9PTAmJihuLmVuZD1PYmplY3QuYXNzaWduKHt9LHp1KHQuZXZlbnRzLHJbMF0pKSxlLmFkZChyWzBdLDAsW1siZXhpdCIsbix0XV0pKTtsZXQgbD16dSh0LmV2ZW50cyxyWzFdKTtpZihuPXt0eXBlOm8sc3RhcnQ6T2JqZWN0LmFzc2lnbih7fSxsKSxlbmQ6T2JqZWN0LmFzc2lnbih7fSxsKX0sZS5hZGQoclsxXSwwLFtbImVudGVyIixuLHRdXSksclsyXSE9PTApe2xldCBjPXp1KHQuZXZlbnRzLHJbMl0pLHU9enUodC5ldmVudHMsclszXSksZD17dHlwZTpzLHN0YXJ0Ok9iamVjdC5hc3NpZ24oe30sYyksZW5kOk9iamVjdC5hc3NpZ24oe30sdSl9O2lmKGUuYWRkKHJbMl0sMCxbWyJlbnRlciIsZCx0XV0pLGkhPT0yKXtsZXQgaD10LmV2ZW50c1tyWzJdXSxmPXQuZXZlbnRzW3JbM11dO2lmKGhbMV0uZW5kPU9iamVjdC5hc3NpZ24oe30sZlsxXS5lbmQpLGhbMV0udHlwZT0iY2h1bmtUZXh0IixoWzFdLmNvbnRlbnRUeXBlPSJ0ZXh0IixyWzNdPnJbMl0rMSl7bGV0IHg9clsyXSsxLHY9clszXS1yWzJdLTE7ZS5hZGQoeCx2LFtdKX19ZS5hZGQoclszXSsxLDAsW1siZXhpdCIsZCx0XV0pfXJldHVybiBhIT09dm9pZCAwJiYobi5lbmQ9T2JqZWN0LmFzc2lnbih7fSx6dSh0LmV2ZW50cyxhKSksZS5hZGQoYSwwLFtbImV4aXQiLG4sdF1dKSxuPXZvaWQgMCksbn1mdW5jdGlvbiBMemUoZSx0LHIsaSxhKXtsZXQgbj1bXSxvPXp1KHQuZXZlbnRzLHIpO2EmJihhLmVuZD1PYmplY3QuYXNzaWduKHt9LG8pLG4ucHVzaChbImV4aXQiLGEsdF0pKSxpLmVuZD1PYmplY3QuYXNzaWduKHt9LG8pLG4ucHVzaChbImV4aXQiLGksdF0pLGUuYWRkKHIrMSwwLG4pfWZ1bmN0aW9uIHp1KGUsdCl7bGV0IHI9ZVt0XSxpPXJbMF09PT0iZW50ZXIiPyJzdGFydCI6ImVuZCI7cmV0dXJuIHJbMV1baV19dmFyIEF6ZT1wKCgpPT57QjEoKTt0cigpO0N6ZSgpO196ZSgpfSk7dmFyIER6ZT1wKCgpPT57enplKCk7QXplKCl9KTtmdW5jdGlvbiB2VSgpe3JldHVybntleGl0OntodG1sRmxvd0RhdGEoZSl7JHplLmNhbGwodGhpcyxlLEV6ZSl9LGh0bWxUZXh0RGF0YShlKXskemUuY2FsbCh0aGlzLGUsRGtyKX19fX1mdW5jdGlvbiAkemUoZSx0KXtsZXQgcj10aGlzLnNsaWNlU2VyaWFsaXplKGUpO3RoaXMub3B0aW9ucy5hbGxvd0Rhbmdlcm91c0h0bWwmJihyPXIucmVwbGFjZSh0LCImbHQ7JDEkMiIpKSx0aGlzLnJhdyh0aGlzLmVuY29kZShyKSl9dmFyIEV6ZSxEa3IsSXplPXAoKCk9PntFemU9LzwoXC8/KShpZnJhbWV8bm9lbWJlZHxub2ZyYW1lc3xwbGFpbnRleHR8c2NyaXB0fHN0eWxlfHRpdGxlfHRleHRhcmVhfHhtcCkoPz1bXHRcblxmXHIgLz5dKS9naSxEa3I9bmV3IFJlZ0V4cCgiXiIrRXplLnNvdXJjZSwiaSIpfSk7dmFyIFB6ZT1wKCgpPT57SXplKCl9KTtmdW5jdGlvbiB4VSgpe3JldHVybntlbnRlcjp7dGFza0xpc3RDaGVjaygpe3RoaXMudGFnKCc8aW5wdXQgdHlwZT0iY2hlY2tib3giIGRpc2FibGVkPSIiICcpfX0sZXhpdDp7dGFza0xpc3RDaGVjaygpe3RoaXMudGFnKCIvPiIpfSx0YXNrTGlzdENoZWNrVmFsdWVDaGVja2VkKCl7dGhpcy50YWcoJ2NoZWNrZWQ9IiIgJyl9fX19dmFyIE56ZT1wKCgpPT57fSk7ZnVuY3Rpb24geVUoKXtyZXR1cm57dGV4dDp7OTE6RWtyfX19ZnVuY3Rpb24gJGtyKGUsdCxyKXtsZXQgaT10aGlzO3JldHVybiBhO2Z1bmN0aW9uIGEobCl7cmV0dXJuIGkucHJldmlvdXMhPT1udWxsfHwhaS5fZ2ZtVGFza2xpc3RGaXJzdENvbnRlbnRPZkxpc3RJdGVtP3IobCk6KGUuZW50ZXIoInRhc2tMaXN0Q2hlY2siKSxlLmVudGVyKCJ0YXNrTGlzdENoZWNrTWFya2VyIiksZS5jb25zdW1lKGwpLGUuZXhpdCgidGFza0xpc3RDaGVja01hcmtlciIpLG4pfWZ1bmN0aW9uIG4obCl7cmV0dXJuIFp0KGwpPyhlLmVudGVyKCJ0YXNrTGlzdENoZWNrVmFsdWVVbmNoZWNrZWQiKSxlLmNvbnN1bWUobCksZS5leGl0KCJ0YXNrTGlzdENoZWNrVmFsdWVVbmNoZWNrZWQiKSxvKTpsPT09ODh8fGw9PT0xMjA/KGUuZW50ZXIoInRhc2tMaXN0Q2hlY2tWYWx1ZUNoZWNrZWQiKSxlLmNvbnN1bWUobCksZS5leGl0KCJ0YXNrTGlzdENoZWNrVmFsdWVDaGVja2VkIiksbyk6cihsKX1mdW5jdGlvbiBvKGwpe3JldHVybiBsPT09OTM/KGUuZW50ZXIoInRhc2tMaXN0Q2hlY2tNYXJrZXIiKSxlLmNvbnN1bWUobCksZS5leGl0KCJ0YXNrTGlzdENoZWNrTWFya2VyIiksZS5leGl0KCJ0YXNrTGlzdENoZWNrIikscyk6cihsKX1mdW5jdGlvbiBzKGwpe3JldHVybiBXZShsKT90KGwpOmx0KGwpP2UuY2hlY2soe3Rva2VuaXplOklrcn0sdCxyKShsKTpyKGwpfX1mdW5jdGlvbiBJa3IoZSx0LHIpe3JldHVybiBtdChlLGksIndoaXRlc3BhY2UiKTtmdW5jdGlvbiBpKGEpe3JldHVybiBhPT09bnVsbD9yKGEpOnQoYSl9fXZhciBFa3IsRnplPXAoKCk9PntCMSgpO3RyKCk7RWtyPXtuYW1lOiJ0YXNrbGlzdENoZWNrIix0b2tlbml6ZToka3J9fSk7dmFyIE96ZT1wKCgpPT57TnplKCk7RnplKCl9KTtmdW5jdGlvbiBSemUoZSl7cmV0dXJuIHpNKFtqVigpLHVVKCksZlUoZSksYlUoKSx5VSgpXSl9ZnVuY3Rpb24gTUIxKGUpe3JldHVybiBDTShbV1YoKSxwVShlKSxoVSgpLGdVKCksdlUoKSx4VSgpXSl9dmFyIEJ6ZT1wKCgpPT57VE0oKTtZU2UoKTt3emUoKTtTemUoKTtEemUoKTtQemUoKTtPemUoKX0pO2Z1bmN0aW9uIEN1KGUpe2xldCB0PXRoaXMscj1lfHxQa3IsaT10LmRhdGEoKSxhPWkubWljcm9tYXJrRXh0ZW5zaW9uc3x8KGkubWljcm9tYXJrRXh0ZW5zaW9ucz1bXSksbj1pLmZyb21NYXJrZG93bkV4dGVuc2lvbnN8fChpLmZyb21NYXJrZG93bkV4dGVuc2lvbnM9W10pLG89aS50b01hcmtkb3duRXh0ZW5zaW9uc3x8KGkudG9NYXJrZG93bkV4dGVuc2lvbnM9W10pO2EucHVzaChSemUocikpLG4ucHVzaChPVigpKSxvLnB1c2goUlYocikpfXZhciBQa3IsSHplPXAoKCk9PntGU2UoKTtCemUoKTtQa3I9e319KTt2YXIgcXplPXAoKCk9PntIemUoKX0pO2Z1bmN0aW9uIHdVKGUpe2xldCB0PWV8fHt9LHI9ITAsaT17fSxhPVtbXV0sbj1bXSxvPVtdLGw9Q00oW3tlbnRlcjp7YmxvY2tRdW90ZTpFLGNvZGVGZW5jZWQ6ZWUsY29kZUZlbmNlZEZlbmNlSW5mbzpiLGNvZGVGZW5jZWRGZW5jZU1ldGE6Yixjb2RlSW5kZW50ZWQ6d2UsY29kZVRleHQ6YWUsY29udGVudDpDZSxkZWZpbml0aW9uOkxlLGRlZmluaXRpb25EZXN0aW5hdGlvblN0cmluZzpILGRlZmluaXRpb25MYWJlbFN0cmluZzpiLGRlZmluaXRpb25UaXRsZVN0cmluZzpiLGVtcGhhc2lzOkx0LGh0bWxGbG93OlVlLGh0bWxUZXh0Oml0LGltYWdlOm5lLGxhYmVsOmIsbGluazprZSxsaXN0SXRlbU1hcmtlcjpfLGxpc3RJdGVtVmFsdWU6UixsaXN0T3JkZXJlZDpELGxpc3RVbm9yZGVyZWQ6TixwYXJhZ3JhcGg6QixyZWZlcmVuY2U6YixyZXNvdXJjZTpVLHJlc291cmNlRGVzdGluYXRpb25TdHJpbmc6VixyZXNvdXJjZVRpdGxlU3RyaW5nOmIsc2V0ZXh0SGVhZGluZzppZSxzdHJvbmc6V3R9LGV4aXQ6e2F0eEhlYWRpbmc6SWUsYXR4SGVhZGluZ1NlcXVlbmNlOmhlLGF1dG9saW5rRW1haWw6V28sYXV0b2xpbmtQcm90b2NvbDpVbyxibG9ja1F1b3RlOnEsY2hhcmFjdGVyRXNjYXBlVmFsdWU6WixjaGFyYWN0ZXJSZWZlcmVuY2VNYXJrZXJIZXhhZGVjaW1hbDpZcixjaGFyYWN0ZXJSZWZlcmVuY2VNYXJrZXJOdW1lcmljOllyLGNoYXJhY3RlclJlZmVyZW5jZVZhbHVlOmRuLGNvZGVGZW5jZWQ6SSxjb2RlRmVuY2VkRmVuY2U6Z2UsY29kZUZlbmNlZEZlbmNlSW5mbzpQLGNvZGVGZW5jZWRGZW5jZU1ldGE6Rixjb2RlRmxvd1ZhbHVlOm1lLGNvZGVJbmRlbnRlZDpJLGNvZGVUZXh0OnNlLGNvZGVUZXh0RGF0YTpaLGRhdGE6WixkZWZpbml0aW9uOnVlLGRlZmluaXRpb25EZXN0aW5hdGlvblN0cmluZzp0ZSxkZWZpbml0aW9uTGFiZWxTdHJpbmc6VyxkZWZpbml0aW9uVGl0bGVTdHJpbmc6YmUsZW1waGFzaXM6X2UsaGFyZEJyZWFrRXNjYXBlOkVlLGhhcmRCcmVha1RyYWlsaW5nOkVlLGh0bWxGbG93Ok10LGh0bWxGbG93RGF0YTpaLGh0bWxUZXh0Ok10LGh0bWxUZXh0RGF0YTpaLGltYWdlOnZlLGxhYmVsOkEsbGFiZWxUZXh0OlksbGluZUVuZGluZzpKLGxpbms6dmUsbGlzdE9yZGVyZWQ6UyxsaXN0VW5vcmRlcmVkOiQscGFyYWdyYXBoOkcscmVmZXJlbmNlOkYscmVmZXJlbmNlU3RyaW5nOkwscmVzb3VyY2U6RixyZXNvdXJjZURlc3RpbmF0aW9uU3RyaW5nOlgscmVzb3VyY2VUaXRsZVN0cmluZzpkZSxzZXRleHRIZWFkaW5nOkssc2V0ZXh0SGVhZGluZ0xpbmVTZXF1ZW5jZTpaZSxzZXRleHRIZWFkaW5nVGV4dDpTZSxzdHJvbmc6dnQsdGhlbWF0aWNCcmVhazpTdH19LC4uLnQuaHRtbEV4dGVuc2lvbnN8fFtdXSksYz17ZGVmaW5pdGlvbnM6aSx0aWdodFN0YWNrOm99LHU9e2J1ZmZlcjpiLGVuY29kZTpNLGdldERhdGE6dixsaW5lRW5kaW5nSWZOZWVkZWQ6eixvcHRpb25zOnQscmF3OmsscmVzdW1lOnksc2V0RGF0YTp4LHRhZzp3fSxkPXQuZGVmYXVsdExpbmVFbmRpbmc7cmV0dXJuIGg7ZnVuY3Rpb24gaChNZSl7bGV0ICRlPS0xLEJ0PTAsRnI9W10sWnI9W10sbjE9W107Zm9yKDsrKyRlPE1lLmxlbmd0aDspIWQmJihNZVskZV1bMV0udHlwZT09PSJsaW5lRW5kaW5nInx8TWVbJGVdWzFdLnR5cGU9PT0ibGluZUVuZGluZ0JsYW5rIikmJihkPU1lWyRlXVsyXS5zbGljZVNlcmlhbGl6ZShNZVskZV1bMV0pKSwoTWVbJGVdWzFdLnR5cGU9PT0ibGlzdE9yZGVyZWQifHxNZVskZV1bMV0udHlwZT09PSJsaXN0VW5vcmRlcmVkIikmJihNZVskZV1bMF09PT0iZW50ZXIiP0ZyLnB1c2goJGUpOmYoTWUuc2xpY2UoRnIucG9wKCksJGUpKSksTWVbJGVdWzFdLnR5cGU9PT0iZGVmaW5pdGlvbiImJihNZVskZV1bMF09PT0iZW50ZXIiPyhuMT1LMShuMSxNZS5zbGljZShCdCwkZSkpLEJ0PSRlKTooWnI9SzEoWnIsTWUuc2xpY2UoQnQsJGUrMSkpLEJ0PSRlKzEpKTtacj1LMShacixuMSksWnI9SzEoWnIsTWUuc2xpY2UoQnQpKSwkZT0tMTtsZXQgWHI9WnI7Zm9yKGwuZW50ZXIubnVsbCYmbC5lbnRlci5udWxsLmNhbGwodSk7KyskZTxNZS5sZW5ndGg7KXtsZXQgR289bFtYclskZV1bMF1dLFlvPVhyWyRlXVsxXS50eXBlLFpvPUdvW1lvXTtqemUuY2FsbChHbyxZbykmJlpvJiZaby5jYWxsKHtzbGljZVNlcmlhbGl6ZTpYclskZV1bMl0uc2xpY2VTZXJpYWxpemUsLi4udX0sWHJbJGVdWzFdKX1yZXR1cm4gbC5leGl0Lm51bGwmJmwuZXhpdC5udWxsLmNhbGwodSksYVswXS5qb2luKCIiKX1mdW5jdGlvbiBmKE1lKXtsZXQgJGU9TWUubGVuZ3RoLEJ0PTAsRnI9MCxacj0hMSxuMTtmb3IoOysrQnQ8JGU7KXtsZXQgWHI9TWVbQnRdO2lmKFhyWzFdLl9jb250YWluZXIpbjE9dm9pZCAwLFhyWzBdPT09ImVudGVyIj9GcisrOkZyLS07ZWxzZSBzd2l0Y2goWHJbMV0udHlwZSl7Y2FzZSJsaXN0SXRlbVByZWZpeCI6e1hyWzBdPT09ImV4aXQiJiYobjE9ITApO2JyZWFrfWNhc2UibGluZVByZWZpeCI6YnJlYWs7Y2FzZSJsaW5lRW5kaW5nQmxhbmsiOntYclswXT09PSJlbnRlciImJiFGciYmKG4xP24xPXZvaWQgMDpacj0hMCk7YnJlYWt9ZGVmYXVsdDpuMT12b2lkIDB9fU1lWzBdWzFdLl9sb29zZT1acn1mdW5jdGlvbiB4KE1lLCRlKXtjW01lXT0kZX1mdW5jdGlvbiB2KE1lKXtyZXR1cm4gY1tNZV19ZnVuY3Rpb24gYigpe2EucHVzaChbXSl9ZnVuY3Rpb24geSgpe3JldHVybiBhLnBvcCgpLmpvaW4oIiIpfWZ1bmN0aW9uIHcoTWUpe3ImJih4KCJsYXN0V2FzVGFnIiwhMCksYVthLmxlbmd0aC0xXS5wdXNoKE1lKSl9ZnVuY3Rpb24gayhNZSl7eCgibGFzdFdhc1RhZyIpLGFbYS5sZW5ndGgtMV0ucHVzaChNZSl9ZnVuY3Rpb24gTygpe2soZHx8YApgKX1mdW5jdGlvbiB6KCl7bGV0IE1lPWFbYS5sZW5ndGgtMV0sJGU9TWVbTWUubGVuZ3RoLTFdLEJ0PSRlPyRlLmNoYXJDb2RlQXQoJGUubGVuZ3RoLTEpOm51bGw7QnQ9PT0xMHx8QnQ9PT0xM3x8QnQ9PT1udWxsfHxPKCl9ZnVuY3Rpb24gTShNZSl7cmV0dXJuIHYoImlnbm9yZUVuY29kZSIpP01lOl9NKE1lKX1mdW5jdGlvbiBGKCl7eSgpfWZ1bmN0aW9uIEQoTWUpe28ucHVzaCghTWUuX2xvb3NlKSx6KCksdygiPG9sIikseCgiZXhwZWN0Rmlyc3RJdGVtIiwhMCl9ZnVuY3Rpb24gTihNZSl7by5wdXNoKCFNZS5fbG9vc2UpLHooKSx3KCI8dWwiKSx4KCJleHBlY3RGaXJzdEl0ZW0iLCEwKX1mdW5jdGlvbiBSKE1lKXtpZih2KCJleHBlY3RGaXJzdEl0ZW0iKSl7bGV0ICRlPU51bWJlci5wYXJzZUludCh0aGlzLnNsaWNlU2VyaWFsaXplKE1lKSwxMCk7JGUhPT0xJiZ3KCcgc3RhcnQ9IicrTShTdHJpbmcoJGUpKSsnIicpfX1mdW5jdGlvbiBfKCl7digiZXhwZWN0Rmlyc3RJdGVtIik/dygiPiIpOlQoKSx6KCksdygiPGxpPiIpLHgoImV4cGVjdEZpcnN0SXRlbSIpLHgoImxhc3RXYXNUYWciKX1mdW5jdGlvbiBTKCl7VCgpLG8ucG9wKCksTygpLHcoIjwvb2w+Iil9ZnVuY3Rpb24gJCgpe1QoKSxvLnBvcCgpLE8oKSx3KCI8L3VsPiIpfWZ1bmN0aW9uIFQoKXt2KCJsYXN0V2FzVGFnIikmJiF2KCJzbHVycEFsbExpbmVFbmRpbmdzIikmJnooKSx3KCI8L2xpPiIpLHgoInNsdXJwQWxsTGluZUVuZGluZ3MiKX1mdW5jdGlvbiBFKCl7by5wdXNoKCExKSx6KCksdygiPGJsb2NrcXVvdGU+Iil9ZnVuY3Rpb24gcSgpe28ucG9wKCkseigpLHcoIjwvYmxvY2txdW90ZT4iKSx4KCJzbHVycEFsbExpbmVFbmRpbmdzIil9ZnVuY3Rpb24gQigpe29bby5sZW5ndGgtMV18fCh6KCksdygiPHA+IikpLHgoInNsdXJwQWxsTGluZUVuZGluZ3MiKX1mdW5jdGlvbiBHKCl7b1tvLmxlbmd0aC0xXT94KCJzbHVycEFsbExpbmVFbmRpbmdzIiwhMCk6dygiPC9wPiIpfWZ1bmN0aW9uIGVlKCl7eigpLHcoIjxwcmU+PGNvZGUiKSx4KCJmZW5jZXNDb3VudCIsMCl9ZnVuY3Rpb24gUCgpe2xldCBNZT15KCk7dygnIGNsYXNzPSJsYW5ndWFnZS0nK01lKyciJyl9ZnVuY3Rpb24gZ2UoKXtsZXQgTWU9digiZmVuY2VzQ291bnQiKXx8MDtNZXx8KHcoIj4iKSx4KCJzbHVycE9uZUxpbmVFbmRpbmciLCEwKSkseCgiZmVuY2VzQ291bnQiLE1lKzEpfWZ1bmN0aW9uIHdlKCl7eigpLHcoIjxwcmU+PGNvZGU+Iil9ZnVuY3Rpb24gSSgpe2xldCBNZT12KCJmZW5jZXNDb3VudCIpO01lIT09dm9pZCAwJiZNZTwyJiZjLnRpZ2h0U3RhY2subGVuZ3RoPjAmJiF2KCJsYXN0V2FzVGFnIikmJk8oKSx2KCJmbG93Q29kZVNlZW5EYXRhIikmJnooKSx3KCI8L2NvZGU+PC9wcmU+IiksTWUhPT12b2lkIDAmJk1lPDImJnooKSx4KCJmbG93Q29kZVNlZW5EYXRhIikseCgiZmVuY2VzQ291bnQiKSx4KCJzbHVycE9uZUxpbmVFbmRpbmciKX1mdW5jdGlvbiBuZSgpe24ucHVzaCh7aW1hZ2U6ITB9KSxyPXZvaWQgMH1mdW5jdGlvbiBrZSgpe24ucHVzaCh7fSl9ZnVuY3Rpb24gWShNZSl7bltuLmxlbmd0aC0xXS5sYWJlbElkPXRoaXMuc2xpY2VTZXJpYWxpemUoTWUpfWZ1bmN0aW9uIEEoKXtuW24ubGVuZ3RoLTFdLmxhYmVsPXkoKX1mdW5jdGlvbiBMKE1lKXtuW24ubGVuZ3RoLTFdLnJlZmVyZW5jZUlkPXRoaXMuc2xpY2VTZXJpYWxpemUoTWUpfWZ1bmN0aW9uIFUoKXtiKCksbltuLmxlbmd0aC0xXS5kZXN0aW5hdGlvbj0iIn1mdW5jdGlvbiBWKCl7YigpLHgoImlnbm9yZUVuY29kZSIsITApfWZ1bmN0aW9uIFgoKXtuW24ubGVuZ3RoLTFdLmRlc3RpbmF0aW9uPXkoKSx4KCJpZ25vcmVFbmNvZGUiKX1mdW5jdGlvbiBkZSgpe25bbi5sZW5ndGgtMV0udGl0bGU9eSgpfWZ1bmN0aW9uIHZlKCl7bGV0IE1lPW4ubGVuZ3RoLTEsJGU9bltNZV0sQnQ9JGUucmVmZXJlbmNlSWR8fCRlLmxhYmVsSWQsRnI9JGUuZGVzdGluYXRpb249PT12b2lkIDA/aVtMMShCdCldOiRlO2ZvcihyPSEwO01lLS07KWlmKG5bTWVdLmltYWdlKXtyPXZvaWQgMDticmVha30kZS5pbWFnZT8odygnPGltZyBzcmM9IicrZnMoRnIuZGVzdGluYXRpb24sdC5hbGxvd0Rhbmdlcm91c1Byb3RvY29sP3ZvaWQgMDpOa3IpKyciIGFsdD0iJyksaygkZS5sYWJlbCksdygnIicpKTp3KCc8YSBocmVmPSInK2ZzKEZyLmRlc3RpbmF0aW9uLHQuYWxsb3dEYW5nZXJvdXNQcm90b2NvbD92b2lkIDA6VnplKSsnIicpLHcoRnIudGl0bGU/JyB0aXRsZT0iJytGci50aXRsZSsnIic6IiIpLCRlLmltYWdlP3coIiAvPiIpOih3KCI+IiksaygkZS5sYWJlbCksdygiPC9hPiIpKSxuLnBvcCgpfWZ1bmN0aW9uIExlKCl7YigpLG4ucHVzaCh7fSl9ZnVuY3Rpb24gVyhNZSl7eSgpLG5bbi5sZW5ndGgtMV0ubGFiZWxJZD10aGlzLnNsaWNlU2VyaWFsaXplKE1lKX1mdW5jdGlvbiBIKCl7YigpLHgoImlnbm9yZUVuY29kZSIsITApfWZ1bmN0aW9uIHRlKCl7bltuLmxlbmd0aC0xXS5kZXN0aW5hdGlvbj15KCkseCgiaWdub3JlRW5jb2RlIil9ZnVuY3Rpb24gYmUoKXtuW24ubGVuZ3RoLTFdLnRpdGxlPXkoKX1mdW5jdGlvbiB1ZSgpe2xldCBNZT1uW24ubGVuZ3RoLTFdLCRlPUwxKE1lLmxhYmVsSWQpO3koKSxqemUuY2FsbChpLCRlKXx8KGlbJGVdPW5bbi5sZW5ndGgtMV0pLG4ucG9wKCl9ZnVuY3Rpb24gQ2UoKXt4KCJzbHVycEFsbExpbmVFbmRpbmdzIiwhMCl9ZnVuY3Rpb24gaGUoTWUpe3YoImhlYWRpbmdSYW5rIil8fCh4KCJoZWFkaW5nUmFuayIsdGhpcy5zbGljZVNlcmlhbGl6ZShNZSkubGVuZ3RoKSx6KCksdygiPGgiK3YoImhlYWRpbmdSYW5rIikrIj4iKSl9ZnVuY3Rpb24gaWUoKXtiKCkseCgic2x1cnBBbGxMaW5lRW5kaW5ncyIpfWZ1bmN0aW9uIFNlKCl7eCgic2x1cnBBbGxMaW5lRW5kaW5ncyIsITApfWZ1bmN0aW9uIEllKCl7dygiPC9oIit2KCJoZWFkaW5nUmFuayIpKyI+IikseCgiaGVhZGluZ1JhbmsiKX1mdW5jdGlvbiBaZShNZSl7eCgiaGVhZGluZ1JhbmsiLHRoaXMuc2xpY2VTZXJpYWxpemUoTWUpLmNoYXJDb2RlQXQoMCk9PT02MT8xOjIpfWZ1bmN0aW9uIEsoKXtsZXQgTWU9eSgpO3ooKSx3KCI8aCIrdigiaGVhZGluZ1JhbmsiKSsiPiIpLGsoTWUpLHcoIjwvaCIrdigiaGVhZGluZ1JhbmsiKSsiPiIpLHgoInNsdXJwQWxsTGluZUVuZGluZ3MiKSx4KCJoZWFkaW5nUmFuayIpfWZ1bmN0aW9uIFooTWUpe2soTSh0aGlzLnNsaWNlU2VyaWFsaXplKE1lKSkpfWZ1bmN0aW9uIEooTWUpe2lmKCF2KCJzbHVycEFsbExpbmVFbmRpbmdzIikpe2lmKHYoInNsdXJwT25lTGluZUVuZGluZyIpKXt4KCJzbHVycE9uZUxpbmVFbmRpbmciKTtyZXR1cm59aWYodigiaW5Db2RlVGV4dCIpKXtrKCIgIik7cmV0dXJufWsoTSh0aGlzLnNsaWNlU2VyaWFsaXplKE1lKSkpfX1mdW5jdGlvbiBtZShNZSl7ayhNKHRoaXMuc2xpY2VTZXJpYWxpemUoTWUpKSkseCgiZmxvd0NvZGVTZWVuRGF0YSIsITApfWZ1bmN0aW9uIEVlKCl7dygiPGJyIC8+Iil9ZnVuY3Rpb24gVWUoKXt6KCksaXQoKX1mdW5jdGlvbiBNdCgpe3goImlnbm9yZUVuY29kZSIpfWZ1bmN0aW9uIGl0KCl7dC5hbGxvd0Rhbmdlcm91c0h0bWwmJngoImlnbm9yZUVuY29kZSIsITApfWZ1bmN0aW9uIEx0KCl7dygiPGVtPiIpfWZ1bmN0aW9uIFd0KCl7dygiPHN0cm9uZz4iKX1mdW5jdGlvbiBhZSgpe3goImluQ29kZVRleHQiLCEwKSx3KCI8Y29kZT4iKX1mdW5jdGlvbiBzZSgpe3goImluQ29kZVRleHQiKSx3KCI8L2NvZGU+Iil9ZnVuY3Rpb24gX2UoKXt3KCI8L2VtPiIpfWZ1bmN0aW9uIHZ0KCl7dygiPC9zdHJvbmc+Iil9ZnVuY3Rpb24gU3QoKXt6KCksdygiPGhyIC8+Iil9ZnVuY3Rpb24gWXIoTWUpe3goImNoYXJhY3RlclJlZmVyZW5jZVR5cGUiLE1lLnR5cGUpfWZ1bmN0aW9uIGRuKE1lKXtsZXQgJGU9dGhpcy5zbGljZVNlcmlhbGl6ZShNZSksQnQ9digiY2hhcmFjdGVyUmVmZXJlbmNlVHlwZSIpP1N1KCRlLHYoImNoYXJhY3RlclJlZmVyZW5jZVR5cGUiKT09PSJjaGFyYWN0ZXJSZWZlcmVuY2VNYXJrZXJOdW1lcmljIj8xMDoxNik6dzAoJGUpO2soTShCdCkpLHgoImNoYXJhY3RlclJlZmVyZW5jZVR5cGUiKX1mdW5jdGlvbiBVbyhNZSl7bGV0ICRlPXRoaXMuc2xpY2VTZXJpYWxpemUoTWUpO3coJzxhIGhyZWY9IicrZnMoJGUsdC5hbGxvd0Rhbmdlcm91c1Byb3RvY29sP3ZvaWQgMDpWemUpKyciPicpLGsoTSgkZSkpLHcoIjwvYT4iKX1mdW5jdGlvbiBXbyhNZSl7bGV0ICRlPXRoaXMuc2xpY2VTZXJpYWxpemUoTWUpO3coJzxhIGhyZWY9IicrZnMoIm1haWx0bzoiKyRlKSsnIj4nKSxrKE0oJGUpKSx3KCI8L2E+Iil9fXZhciBqemUsVnplLE5rcixNVT1wKCgpPT57YjcoKTtwcygpO1RNKCk7TU0oKTtWVigpO3kwKCk7bXMoKTtqemU9e30uaGFzT3duUHJvcGVydHksVnplPS9eKGh0dHBzP3xpcmNzP3xtYWlsdG98eG1wcCkkL2ksTmtyPS9eaHR0cHM/JC9pfSk7ZnVuY3Rpb24gRmtyKGUpe2xldCB0PWUuYXR0ZW1wdCh0aGlzLnBhcnNlci5jb25zdHJ1Y3RzLmNvbnRlbnRJbml0aWFsLGksYSkscjtyZXR1cm4gdDtmdW5jdGlvbiBpKHMpe2lmKHM9PT1udWxsKXtlLmNvbnN1bWUocyk7cmV0dXJufXJldHVybiBlLmVudGVyKCJsaW5lRW5kaW5nIiksZS5jb25zdW1lKHMpLGUuZXhpdCgibGluZUVuZGluZyIpLG10KGUsdCwibGluZVByZWZpeCIpfWZ1bmN0aW9uIGEocyl7cmV0dXJuIGUuZW50ZXIoInBhcmFncmFwaCIpLG4ocyl9ZnVuY3Rpb24gbihzKXtsZXQgbD1lLmVudGVyKCJjaHVua1RleHQiLHtjb250ZW50VHlwZToidGV4dCIscHJldmlvdXM6cn0pO3JldHVybiByJiYoci5uZXh0PWwpLHI9bCxvKHMpfWZ1bmN0aW9uIG8ocyl7aWYocz09PW51bGwpe2UuZXhpdCgiY2h1bmtUZXh0IiksZS5leGl0KCJwYXJhZ3JhcGgiKSxlLmNvbnN1bWUocyk7cmV0dXJufXJldHVybiBXZShzKT8oZS5jb25zdW1lKHMpLGUuZXhpdCgiY2h1bmtUZXh0Iiksbik6KGUuY29uc3VtZShzKSxvKX19dmFyIFV6ZSxXemU9cCgoKT0+e0IxKCk7dHIoKTtVemU9e3Rva2VuaXplOkZrcn19KTtmdW5jdGlvbiBPa3IoZSl7bGV0IHQ9dGhpcyxyPVtdLGk9MCxhLG4sbztyZXR1cm4gcztmdW5jdGlvbiBzKGspe2lmKGk8ci5sZW5ndGgpe2xldCBPPXJbaV07cmV0dXJuIHQuY29udGFpbmVyU3RhdGU9T1sxXSxlLmF0dGVtcHQoT1swXS5jb250aW51YXRpb24sbCxjKShrKX1yZXR1cm4gYyhrKX1mdW5jdGlvbiBsKGspe2lmKGkrKyx0LmNvbnRhaW5lclN0YXRlLl9jbG9zZUZsb3cpe3QuY29udGFpbmVyU3RhdGUuX2Nsb3NlRmxvdz12b2lkIDAsYSYmdygpO2xldCBPPXQuZXZlbnRzLmxlbmd0aCx6PU8sTTtmb3IoO3otLTspaWYodC5ldmVudHNbel1bMF09PT0iZXhpdCImJnQuZXZlbnRzW3pdWzFdLnR5cGU9PT0iY2h1bmtGbG93Iil7TT10LmV2ZW50c1t6XVsxXS5lbmQ7YnJlYWt9eShpKTtsZXQgRj1PO2Zvcig7Rjx0LmV2ZW50cy5sZW5ndGg7KXQuZXZlbnRzW0ZdWzFdLmVuZD17Li4uTX0sRisrO3JldHVybiBSMSh0LmV2ZW50cyx6KzEsMCx0LmV2ZW50cy5zbGljZShPKSksdC5ldmVudHMubGVuZ3RoPUYsYyhrKX1yZXR1cm4gcyhrKX1mdW5jdGlvbiBjKGspe2lmKGk9PT1yLmxlbmd0aCl7aWYoIWEpcmV0dXJuIGgoayk7aWYoYS5jdXJyZW50Q29uc3RydWN0JiZhLmN1cnJlbnRDb25zdHJ1Y3QuY29uY3JldGUpcmV0dXJuIHgoayk7dC5pbnRlcnJ1cHQ9ISEoYS5jdXJyZW50Q29uc3RydWN0JiYhYS5fZ2ZtVGFibGVEeW5hbWljSW50ZXJydXB0SGFjayl9cmV0dXJuIHQuY29udGFpbmVyU3RhdGU9e30sZS5jaGVjayhHemUsdSxkKShrKX1mdW5jdGlvbiB1KGspe3JldHVybiBhJiZ3KCkseShpKSxoKGspfWZ1bmN0aW9uIGQoayl7cmV0dXJuIHQucGFyc2VyLmxhenlbdC5ub3coKS5saW5lXT1pIT09ci5sZW5ndGgsbz10Lm5vdygpLm9mZnNldCx4KGspfWZ1bmN0aW9uIGgoayl7cmV0dXJuIHQuY29udGFpbmVyU3RhdGU9e30sZS5hdHRlbXB0KEd6ZSxmLHgpKGspfWZ1bmN0aW9uIGYoayl7cmV0dXJuIGkrKyxyLnB1c2goW3QuY3VycmVudENvbnN0cnVjdCx0LmNvbnRhaW5lclN0YXRlXSksaChrKX1mdW5jdGlvbiB4KGspe2lmKGs9PT1udWxsKXthJiZ3KCkseSgwKSxlLmNvbnN1bWUoayk7cmV0dXJufXJldHVybiBhPWF8fHQucGFyc2VyLmZsb3codC5ub3coKSksZS5lbnRlcigiY2h1bmtGbG93Iix7X3Rva2VuaXplcjphLGNvbnRlbnRUeXBlOiJmbG93IixwcmV2aW91czpufSksdihrKX1mdW5jdGlvbiB2KGspe2lmKGs9PT1udWxsKXtiKGUuZXhpdCgiY2h1bmtGbG93IiksITApLHkoMCksZS5jb25zdW1lKGspO3JldHVybn1yZXR1cm4gV2Uoayk/KGUuY29uc3VtZShrKSxiKGUuZXhpdCgiY2h1bmtGbG93IikpLGk9MCx0LmludGVycnVwdD12b2lkIDAscyk6KGUuY29uc3VtZShrKSx2KX1mdW5jdGlvbiBiKGssTyl7bGV0IHo9dC5zbGljZVN0cmVhbShrKTtpZihPJiZ6LnB1c2gobnVsbCksay5wcmV2aW91cz1uLG4mJihuLm5leHQ9ayksbj1rLGEuZGVmaW5lU2tpcChrLnN0YXJ0KSxhLndyaXRlKHopLHQucGFyc2VyLmxhenlbay5zdGFydC5saW5lXSl7bGV0IE09YS5ldmVudHMubGVuZ3RoO2Zvcig7TS0tOylpZihhLmV2ZW50c1tNXVsxXS5zdGFydC5vZmZzZXQ8byYmKCFhLmV2ZW50c1tNXVsxXS5lbmR8fGEuZXZlbnRzW01dWzFdLmVuZC5vZmZzZXQ+bykpcmV0dXJuO2xldCBGPXQuZXZlbnRzLmxlbmd0aCxEPUYsTixSO2Zvcig7RC0tOylpZih0LmV2ZW50c1tEXVswXT09PSJleGl0IiYmdC5ldmVudHNbRF1bMV0udHlwZT09PSJjaHVua0Zsb3ciKXtpZihOKXtSPXQuZXZlbnRzW0RdWzFdLmVuZDticmVha31OPSEwfWZvcih5KGkpLE09RjtNPHQuZXZlbnRzLmxlbmd0aDspdC5ldmVudHNbTV1bMV0uZW5kPXsuLi5SfSxNKys7UjEodC5ldmVudHMsRCsxLDAsdC5ldmVudHMuc2xpY2UoRikpLHQuZXZlbnRzLmxlbmd0aD1NfX1mdW5jdGlvbiB5KGspe2xldCBPPXIubGVuZ3RoO2Zvcig7Ty0tID5rOyl7bGV0IHo9cltPXTt0LmNvbnRhaW5lclN0YXRlPXpbMV0selswXS5leGl0LmNhbGwodCxlKX1yLmxlbmd0aD1rfWZ1bmN0aW9uIHcoKXthLndyaXRlKFtudWxsXSksbj12b2lkIDAsYT12b2lkIDAsdC5jb250YWluZXJTdGF0ZS5fY2xvc2VGbG93PXZvaWQgMH19ZnVuY3Rpb24gUmtyKGUsdCxyKXtyZXR1cm4gbXQoZSxlLmF0dGVtcHQodGhpcy5wYXJzZXIuY29uc3RydWN0cy5kb2N1bWVudCx0LHIpLCJsaW5lUHJlZml4Iix0aGlzLnBhcnNlci5jb25zdHJ1Y3RzLmRpc2FibGUubnVsbC5pbmNsdWRlcygiY29kZUluZGVudGVkIik/dm9pZCAwOjQpfXZhciBZemUsR3plLFp6ZT1wKCgpPT57QjEoKTt0cigpO3BzKCk7WXplPXt0b2tlbml6ZTpPa3J9LEd6ZT17dG9rZW5pemU6UmtyfX0pO2Z1bmN0aW9uIEJrcihlKXtsZXQgdD10aGlzLHI9ZS5hdHRlbXB0KGdzLGksZS5hdHRlbXB0KHRoaXMucGFyc2VyLmNvbnN0cnVjdHMuZmxvd0luaXRpYWwsYSxtdChlLGUuYXR0ZW1wdCh0aGlzLnBhcnNlci5jb25zdHJ1Y3RzLmZsb3csYSxlLmF0dGVtcHQoUVYsYSkpLCJsaW5lUHJlZml4IikpKTtyZXR1cm4gcjtmdW5jdGlvbiBpKG4pe2lmKG49PT1udWxsKXtlLmNvbnN1bWUobik7cmV0dXJufXJldHVybiBlLmVudGVyKCJsaW5lRW5kaW5nQmxhbmsiKSxlLmNvbnN1bWUobiksZS5leGl0KCJsaW5lRW5kaW5nQmxhbmsiKSx0LmN1cnJlbnRDb25zdHJ1Y3Q9dm9pZCAwLHJ9ZnVuY3Rpb24gYShuKXtpZihuPT09bnVsbCl7ZS5jb25zdW1lKG4pO3JldHVybn1yZXR1cm4gZS5lbnRlcigibGluZUVuZGluZyIpLGUuY29uc3VtZShuKSxlLmV4aXQoImxpbmVFbmRpbmciKSx0LmN1cnJlbnRDb25zdHJ1Y3Q9dm9pZCAwLHJ9fXZhciBYemUsUXplPXAoKCk9PntCTSgpO0IxKCk7dHIoKTtYemU9e3Rva2VuaXplOkJrcn19KTtmdW5jdGlvbiBKemUoZSl7cmV0dXJue3Jlc29sdmVBbGw6S3plKGU9PT0idGV4dCI/SGtyOnZvaWQgMCksdG9rZW5pemU6dH07ZnVuY3Rpb24gdChyKXtsZXQgaT10aGlzLGE9dGhpcy5wYXJzZXIuY29uc3RydWN0c1tlXSxuPXIuYXR0ZW1wdChhLG8scyk7cmV0dXJuIG87ZnVuY3Rpb24gbyh1KXtyZXR1cm4gYyh1KT9uKHUpOnModSl9ZnVuY3Rpb24gcyh1KXtpZih1PT09bnVsbCl7ci5jb25zdW1lKHUpO3JldHVybn1yZXR1cm4gci5lbnRlcigiZGF0YSIpLHIuY29uc3VtZSh1KSxsfWZ1bmN0aW9uIGwodSl7cmV0dXJuIGModSk/KHIuZXhpdCgiZGF0YSIpLG4odSkpOihyLmNvbnN1bWUodSksbCl9ZnVuY3Rpb24gYyh1KXtpZih1PT09bnVsbClyZXR1cm4hMDtsZXQgZD1hW3VdLGg9LTE7aWYoZClmb3IoOysraDxkLmxlbmd0aDspe2xldCBmPWRbaF07aWYoIWYucHJldmlvdXN8fGYucHJldmlvdXMuY2FsbChpLGkucHJldmlvdXMpKXJldHVybiEwfXJldHVybiExfX19ZnVuY3Rpb24gS3plKGUpe3JldHVybiB0O2Z1bmN0aW9uIHQocixpKXtsZXQgYT0tMSxuO2Zvcig7KythPD1yLmxlbmd0aDspbj09PXZvaWQgMD9yW2FdJiZyW2FdWzFdLnR5cGU9PT0iZGF0YSImJihuPWEsYSsrKTooIXJbYV18fHJbYV1bMV0udHlwZSE9PSJkYXRhIikmJihhIT09bisyJiYocltuXVsxXS5lbmQ9clthLTFdWzFdLmVuZCxyLnNwbGljZShuKzIsYS1uLTIpLGE9bisyKSxuPXZvaWQgMCk7cmV0dXJuIGU/ZShyLGkpOnJ9fWZ1bmN0aW9uIEhrcihlLHQpe2xldCByPTA7Zm9yKDsrK3I8PWUubGVuZ3RoOylpZigocj09PWUubGVuZ3RofHxlW3JdWzFdLnR5cGU9PT0ibGluZUVuZGluZyIpJiZlW3ItMV1bMV0udHlwZT09PSJkYXRhIil7bGV0IGk9ZVtyLTFdWzFdLGE9dC5zbGljZVN0cmVhbShpKSxuPWEubGVuZ3RoLG89LTEscz0wLGw7Zm9yKDtuLS07KXtsZXQgYz1hW25dO2lmKHR5cGVvZiBjPT0ic3RyaW5nIil7Zm9yKG89Yy5sZW5ndGg7Yy5jaGFyQ29kZUF0KG8tMSk9PT0zMjspcysrLG8tLTtpZihvKWJyZWFrO289LTF9ZWxzZSBpZihjPT09LTIpbD0hMCxzKys7ZWxzZSBpZihjIT09LTEpe24rKzticmVha319aWYodC5fY29udGVudFR5cGVUZXh0VHJhaWxpbmcmJnI9PT1lLmxlbmd0aCYmKHM9MCkscyl7bGV0IGM9e3R5cGU6cj09PWUubGVuZ3RofHxsfHxzPDI/ImxpbmVTdWZmaXgiOiJoYXJkQnJlYWtUcmFpbGluZyIsc3RhcnQ6e19idWZmZXJJbmRleDpuP286aS5zdGFydC5fYnVmZmVySW5kZXgrbyxfaW5kZXg6aS5zdGFydC5faW5kZXgrbixsaW5lOmkuZW5kLmxpbmUsY29sdW1uOmkuZW5kLmNvbHVtbi1zLG9mZnNldDppLmVuZC5vZmZzZXQtc30sZW5kOnsuLi5pLmVuZH19O2kuZW5kPXsuLi5jLnN0YXJ0fSxpLnN0YXJ0Lm9mZnNldD09PWkuZW5kLm9mZnNldD9PYmplY3QuYXNzaWduKGksYyk6KGUuc3BsaWNlKHIsMCxbImVudGVyIixjLHRdLFsiZXhpdCIsYyx0XSkscis9Mil9cisrfXJldHVybiBlfXZhciBlQ2UsdENlLHJDZSxrVT1wKCgpPT57ZUNlPXtyZXNvbHZlQWxsOkt6ZSgpfSx0Q2U9SnplKCJzdHJpbmciKSxyQ2U9SnplKCJ0ZXh0Iil9KTt2YXIgU1U9e307RmUoU1Use2F0dGVudGlvbk1hcmtlcnM6KCk9Plprcixjb250ZW50SW5pdGlhbDooKT0+amtyLGRpc2FibGU6KCk9Plhrcixkb2N1bWVudDooKT0+cWtyLGZsb3c6KCk9PlVrcixmbG93SW5pdGlhbDooKT0+VmtyLGluc2lkZVNwYW46KCk9PllrcixzdHJpbmc6KCk9Pldrcix0ZXh0OigpPT5Ha3J9KTt2YXIgcWtyLGprcixWa3IsVWtyLFdrcixHa3IsWWtyLFprcixYa3IsaUNlPXAoKCk9PntCTSgpO2tVKCk7cWtyPXs0Mjp2YSw0Mzp2YSw0NTp2YSw0ODp2YSw0OTp2YSw1MDp2YSw1MTp2YSw1Mjp2YSw1Mzp2YSw1NDp2YSw1NTp2YSw1Njp2YSw1Nzp2YSw2MjpBTX0samtyPXs5MTpyVX0sVmtyPXtbLTJdOnk3LFstMV06eTcsMzI6eTd9LFVrcj17MzU6YVUsNDI6SjMsNDU6W1JNLEozXSw2MDpvVSw2MTpSTSw5NTpKMyw5NjokTSwxMjY6JE19LFdrcj17Mzg6RU0sOTI6RE19LEdrcj17Wy01XTprNyxbLTRdOms3LFstM106azcsMzM6bFUsMzg6RU0sNDI6eDcsNjA6W0dWLHNVXSw5MTpjVSw5MjpbaVUsRE1dLDkzOlEzLDk1Ong3LDk2OllWfSxZa3I9e251bGw6W3g3LGVDZV19LFprcj17bnVsbDpbNDIsOTVdfSxYa3I9e251bGw6W119fSk7ZnVuY3Rpb24gYUNlKGUsdCxyKXtsZXQgaT17X2J1ZmZlckluZGV4Oi0xLF9pbmRleDowLGxpbmU6ciYmci5saW5lfHwxLGNvbHVtbjpyJiZyLmNvbHVtbnx8MSxvZmZzZXQ6ciYmci5vZmZzZXR8fDB9LGE9e30sbj1bXSxvPVtdLHM9W10sbD0hMCxjPXthdHRlbXB0Ok4oRiksY2hlY2s6TihEKSxjb25zdW1lOk8sZW50ZXI6eixleGl0Ok0saW50ZXJydXB0Ok4oRCx7aW50ZXJydXB0OiEwfSl9LHU9e2NvZGU6bnVsbCxjb250YWluZXJTdGF0ZTp7fSxkZWZpbmVTa2lwOnksZXZlbnRzOltdLG5vdzpiLHBhcnNlcjplLHByZXZpb3VzOm51bGwsc2xpY2VTZXJpYWxpemU6eCxzbGljZVN0cmVhbTp2LHdyaXRlOmZ9LGQ9dC50b2tlbml6ZS5jYWxsKHUsYyksaDtyZXR1cm4gdC5yZXNvbHZlQWxsJiZuLnB1c2godCksdTtmdW5jdGlvbiBmKCQpe3JldHVybiBvPUsxKG8sJCksdygpLG9bby5sZW5ndGgtMV0hPT1udWxsP1tdOihSKHQsMCksdS5ldmVudHM9TTAobix1LmV2ZW50cyx1KSx1LmV2ZW50cyl9ZnVuY3Rpb24geCgkLFQpe3JldHVybiBKa3IodigkKSxUKX1mdW5jdGlvbiB2KCQpe3JldHVybiBRa3IobywkKX1mdW5jdGlvbiBiKCl7bGV0e19idWZmZXJJbmRleDokLF9pbmRleDpULGxpbmU6RSxjb2x1bW46cSxvZmZzZXQ6Qn09aTtyZXR1cm57X2J1ZmZlckluZGV4OiQsX2luZGV4OlQsbGluZTpFLGNvbHVtbjpxLG9mZnNldDpCfX1mdW5jdGlvbiB5KCQpe2FbJC5saW5lXT0kLmNvbHVtbixTKCl9ZnVuY3Rpb24gdygpe2xldCAkO2Zvcig7aS5faW5kZXg8by5sZW5ndGg7KXtsZXQgVD1vW2kuX2luZGV4XTtpZih0eXBlb2YgVD09InN0cmluZyIpZm9yKCQ9aS5faW5kZXgsaS5fYnVmZmVySW5kZXg8MCYmKGkuX2J1ZmZlckluZGV4PTApO2kuX2luZGV4PT09JCYmaS5fYnVmZmVySW5kZXg8VC5sZW5ndGg7KWsoVC5jaGFyQ29kZUF0KGkuX2J1ZmZlckluZGV4KSk7ZWxzZSBrKFQpfX1mdW5jdGlvbiBrKCQpe2w9dm9pZCAwLGg9JCxkPWQoJCl9ZnVuY3Rpb24gTygkKXtXZSgkKT8oaS5saW5lKyssaS5jb2x1bW49MSxpLm9mZnNldCs9JD09PS0zPzI6MSxTKCkpOiQhPT0tMSYmKGkuY29sdW1uKyssaS5vZmZzZXQrKyksaS5fYnVmZmVySW5kZXg8MD9pLl9pbmRleCsrOihpLl9idWZmZXJJbmRleCsrLGkuX2J1ZmZlckluZGV4PT09b1tpLl9pbmRleF0ubGVuZ3RoJiYoaS5fYnVmZmVySW5kZXg9LTEsaS5faW5kZXgrKykpLHUucHJldmlvdXM9JCxsPSEwfWZ1bmN0aW9uIHooJCxUKXtsZXQgRT1UfHx7fTtyZXR1cm4gRS50eXBlPSQsRS5zdGFydD1iKCksdS5ldmVudHMucHVzaChbImVudGVyIixFLHVdKSxzLnB1c2goRSksRX1mdW5jdGlvbiBNKCQpe2xldCBUPXMucG9wKCk7cmV0dXJuIFQuZW5kPWIoKSx1LmV2ZW50cy5wdXNoKFsiZXhpdCIsVCx1XSksVH1mdW5jdGlvbiBGKCQsVCl7UigkLFQuZnJvbSl9ZnVuY3Rpb24gRCgkLFQpe1QucmVzdG9yZSgpfWZ1bmN0aW9uIE4oJCxUKXtyZXR1cm4gRTtmdW5jdGlvbiBFKHEsQixHKXtsZXQgZWUsUCxnZSx3ZTtyZXR1cm4gQXJyYXkuaXNBcnJheShxKT9uZShxKToidG9rZW5pemUiaW4gcT9uZShbcV0pOkkocSk7ZnVuY3Rpb24gSShMKXtyZXR1cm4gVTtmdW5jdGlvbiBVKFYpe2xldCBYPVYhPT1udWxsJiZMW1ZdLGRlPVYhPT1udWxsJiZMLm51bGwsdmU9Wy4uLkFycmF5LmlzQXJyYXkoWCk/WDpYP1tYXTpbXSwuLi5BcnJheS5pc0FycmF5KGRlKT9kZTpkZT9bZGVdOltdXTtyZXR1cm4gbmUodmUpKFYpfX1mdW5jdGlvbiBuZShMKXtyZXR1cm4gZWU9TCxQPTAsTC5sZW5ndGg9PT0wP0c6a2UoTFtQXSl9ZnVuY3Rpb24ga2UoTCl7cmV0dXJuIFU7ZnVuY3Rpb24gVShWKXtyZXR1cm4gd2U9XygpLGdlPUwsTC5wYXJ0aWFsfHwodS5jdXJyZW50Q29uc3RydWN0PUwpLEwubmFtZSYmdS5wYXJzZXIuY29uc3RydWN0cy5kaXNhYmxlLm51bGwuaW5jbHVkZXMoTC5uYW1lKT9BKFYpOkwudG9rZW5pemUuY2FsbChUP09iamVjdC5hc3NpZ24oT2JqZWN0LmNyZWF0ZSh1KSxUKTp1LGMsWSxBKShWKX19ZnVuY3Rpb24gWShMKXtyZXR1cm4gbD0hMCwkKGdlLHdlKSxCfWZ1bmN0aW9uIEEoTCl7cmV0dXJuIGw9ITAsd2UucmVzdG9yZSgpLCsrUDxlZS5sZW5ndGg/a2UoZWVbUF0pOkd9fX1mdW5jdGlvbiBSKCQsVCl7JC5yZXNvbHZlQWxsJiYhbi5pbmNsdWRlcygkKSYmbi5wdXNoKCQpLCQucmVzb2x2ZSYmUjEodS5ldmVudHMsVCx1LmV2ZW50cy5sZW5ndGgtVCwkLnJlc29sdmUodS5ldmVudHMuc2xpY2UoVCksdSkpLCQucmVzb2x2ZVRvJiYodS5ldmVudHM9JC5yZXNvbHZlVG8odS5ldmVudHMsdSkpfWZ1bmN0aW9uIF8oKXtsZXQgJD1iKCksVD11LnByZXZpb3VzLEU9dS5jdXJyZW50Q29uc3RydWN0LHE9dS5ldmVudHMubGVuZ3RoLEI9QXJyYXkuZnJvbShzKTtyZXR1cm57ZnJvbTpxLHJlc3RvcmU6R307ZnVuY3Rpb24gRygpe2k9JCx1LnByZXZpb3VzPVQsdS5jdXJyZW50Q29uc3RydWN0PUUsdS5ldmVudHMubGVuZ3RoPXEscz1CLFMoKX19ZnVuY3Rpb24gUygpe2kubGluZSBpbiBhJiZpLmNvbHVtbjwyJiYoaS5jb2x1bW49YVtpLmxpbmVdLGkub2Zmc2V0Kz1hW2kubGluZV0tMSl9fWZ1bmN0aW9uIFFrcihlLHQpe2xldCByPXQuc3RhcnQuX2luZGV4LGk9dC5zdGFydC5fYnVmZmVySW5kZXgsYT10LmVuZC5faW5kZXgsbj10LmVuZC5fYnVmZmVySW5kZXgsbztpZihyPT09YSlvPVtlW3JdLnNsaWNlKGksbildO2Vsc2V7aWYobz1lLnNsaWNlKHIsYSksaT4tMSl7bGV0IHM9b1swXTt0eXBlb2Ygcz09InN0cmluZyI/b1swXT1zLnNsaWNlKGkpOm8uc2hpZnQoKX1uPjAmJm8ucHVzaChlW2FdLnNsaWNlKDAsbikpfXJldHVybiBvfWZ1bmN0aW9uIEprcihlLHQpe2xldCByPS0xLGk9W10sYTtmb3IoOysrcjxlLmxlbmd0aDspe2xldCBuPWVbcl0sbztpZih0eXBlb2Ygbj09InN0cmluZyIpbz1uO2Vsc2Ugc3dpdGNoKG4pe2Nhc2UtNTp7bz0iXHIiO2JyZWFrfWNhc2UtNDp7bz1gCmA7YnJlYWt9Y2FzZS0zOntvPWBccgpgO2JyZWFrfWNhc2UtMjp7bz10PyIgIjoiCSI7YnJlYWt9Y2FzZS0xOntpZighdCYmYSljb250aW51ZTtvPSIgIjticmVha31kZWZhdWx0Om89U3RyaW5nLmZyb21DaGFyQ29kZShuKX1hPW49PT0tMixpLnB1c2gobyl9cmV0dXJuIGkuam9pbigiIil9dmFyIG5DZT1wKCgpPT57dHIoKTtwcygpO3Y3KCl9KTtmdW5jdGlvbiBTNyhlKXtsZXQgaT17Y29uc3RydWN0czp6TShbU1UsLi4uKGV8fHt9KS5leHRlbnNpb25zfHxbXV0pLGNvbnRlbnQ6YShVemUpLGRlZmluZWQ6W10sZG9jdW1lbnQ6YShZemUpLGZsb3c6YShYemUpLGxhenk6e30sc3RyaW5nOmEodENlKSx0ZXh0OmEockNlKX07cmV0dXJuIGk7ZnVuY3Rpb24gYShuKXtyZXR1cm4gbztmdW5jdGlvbiBvKHMpe3JldHVybiBhQ2UoaSxuLHMpfX19dmFyIHpVPXAoKCk9PntUTSgpO1d6ZSgpO1p6ZSgpO1F6ZSgpO2tVKCk7aUNlKCk7bkNlKCl9KTtmdW5jdGlvbiB6NyhlKXtmb3IoOyFJTShlKTspO3JldHVybiBlfXZhciBDVT1wKCgpPT57WFYoKX0pO2Z1bmN0aW9uIEM3KCl7bGV0IGU9MSx0PSIiLHI9ITAsaTtyZXR1cm4gYTtmdW5jdGlvbiBhKG4sbyxzKXtsZXQgbD1bXSxjLHUsZCxoLGY7Zm9yKG49dCsodHlwZW9mIG49PSJzdHJpbmciP24udG9TdHJpbmcoKTpuZXcgVGV4dERlY29kZXIob3x8dm9pZCAwKS5kZWNvZGUobikpLGQ9MCx0PSIiLHImJihuLmNoYXJDb2RlQXQoMCk9PT02NTI3OSYmZCsrLHI9dm9pZCAwKTtkPG4ubGVuZ3RoOyl7aWYob0NlLmxhc3RJbmRleD1kLGM9b0NlLmV4ZWMobiksaD1jJiZjLmluZGV4IT09dm9pZCAwP2MuaW5kZXg6bi5sZW5ndGgsZj1uLmNoYXJDb2RlQXQoaCksIWMpe3Q9bi5zbGljZShkKTticmVha31pZihmPT09MTAmJmQ9PT1oJiZpKWwucHVzaCgtMyksaT12b2lkIDA7ZWxzZSBzd2l0Y2goaSYmKGwucHVzaCgtNSksaT12b2lkIDApLGQ8aCYmKGwucHVzaChuLnNsaWNlKGQsaCkpLGUrPWgtZCksZil7Y2FzZSAwOntsLnB1c2goNjU1MzMpLGUrKzticmVha31jYXNlIDk6e2Zvcih1PU1hdGguY2VpbChlLzQpKjQsbC5wdXNoKC0yKTtlKys8dTspbC5wdXNoKC0xKTticmVha31jYXNlIDEwOntsLnB1c2goLTQpLGU9MTticmVha31kZWZhdWx0Omk9ITAsZT0xfWQ9aCsxfXJldHVybiBzJiYoaSYmbC5wdXNoKC01KSx0JiZsLnB1c2godCksbC5wdXNoKG51bGwpKSxsfX12YXIgb0NlLFRVPXAoKCk9PntvQ2U9L1tcMFx0XG5ccl0vZ30pO2Z1bmN0aW9uIGdIMShlLHQscil7cmV0dXJuIHR5cGVvZiB0IT0ic3RyaW5nIiYmKHI9dCx0PXZvaWQgMCksd1UocikoejcoUzcocikuZG9jdW1lbnQoKS53cml0ZShDNygpKGUsdCwhMCkpKSl9dmFyIHNDZT1wKCgpPT57TVUoKTt6VSgpO0NVKCk7VFUoKTtNVSgpO3pVKCk7Q1UoKTtUVSgpfSk7ZnVuY3Rpb24gX1UoZSx0LHIpe3JldHVybiB0JiZ0eXBlb2YgdD09Im9iamVjdCImJihyPXQsdD12b2lkIDApLEtrcihyKSh6NyhTNyhyKS5kb2N1bWVudCgpLndyaXRlKEM3KCkoZSx0LCEwKSkpKX1mdW5jdGlvbiBLa3IoZSl7bGV0IHQ9e3RyYW5zZm9ybXM6W10sY2FuQ29udGFpbkVvbHM6WyJlbXBoYXNpcyIsImZyYWdtZW50IiwiaGVhZGluZyIsInBhcmFncmFwaCIsInN0cm9uZyJdLGVudGVyOnthdXRvbGluazpuKHVlKSxhdXRvbGlua1Byb3RvY29sOk4sYXV0b2xpbmtFbWFpbDpOLGF0eEhlYWRpbmc6bihXKSxibG9ja1F1b3RlOm4oViksY2hhcmFjdGVyRXNjYXBlOk4sY2hhcmFjdGVyUmVmZXJlbmNlOk4sY29kZUZlbmNlZDpuKFgpLGNvZGVGZW5jZWRGZW5jZUluZm86byxjb2RlRmVuY2VkRmVuY2VNZXRhOm8sY29kZUluZGVudGVkOm4oWCxvKSxjb2RlVGV4dDpuKGRlLG8pLGNvZGVUZXh0RGF0YTpOLGRhdGE6Tixjb2RlRmxvd1ZhbHVlOk4sZGVmaW5pdGlvbjpuKHZlKSxkZWZpbml0aW9uRGVzdGluYXRpb25TdHJpbmc6byxkZWZpbml0aW9uTGFiZWxTdHJpbmc6byxkZWZpbml0aW9uVGl0bGVTdHJpbmc6byxlbXBoYXNpczpuKExlKSxoYXJkQnJlYWtFc2NhcGU6bihIKSxoYXJkQnJlYWtUcmFpbGluZzpuKEgpLGh0bWxGbG93Om4odGUsbyksaHRtbEZsb3dEYXRhOk4saHRtbFRleHQ6bih0ZSxvKSxodG1sVGV4dERhdGE6TixpbWFnZTpuKGJlKSxsYWJlbDpvLGxpbms6bih1ZSksbGlzdEl0ZW06bihoZSksbGlzdEl0ZW1WYWx1ZTpoLGxpc3RPcmRlcmVkOm4oQ2UsZCksbGlzdFVub3JkZXJlZDpuKENlKSxwYXJhZ3JhcGg6bihpZSkscmVmZXJlbmNlOkkscmVmZXJlbmNlU3RyaW5nOm8scmVzb3VyY2VEZXN0aW5hdGlvblN0cmluZzpvLHJlc291cmNlVGl0bGVTdHJpbmc6byxzZXRleHRIZWFkaW5nOm4oVyksc3Ryb25nOm4oU2UpLHRoZW1hdGljQnJlYWs6bihaZSl9LGV4aXQ6e2F0eEhlYWRpbmc6bCgpLGF0eEhlYWRpbmdTZXF1ZW5jZTp6LGF1dG9saW5rOmwoKSxhdXRvbGlua0VtYWlsOlUsYXV0b2xpbmtQcm90b2NvbDpMLGJsb2NrUXVvdGU6bCgpLGNoYXJhY3RlckVzY2FwZVZhbHVlOlIsY2hhcmFjdGVyUmVmZXJlbmNlTWFya2VySGV4YWRlY2ltYWw6a2UsY2hhcmFjdGVyUmVmZXJlbmNlTWFya2VyTnVtZXJpYzprZSxjaGFyYWN0ZXJSZWZlcmVuY2VWYWx1ZTpZLGNoYXJhY3RlclJlZmVyZW5jZTpBLGNvZGVGZW5jZWQ6bChiKSxjb2RlRmVuY2VkRmVuY2U6dixjb2RlRmVuY2VkRmVuY2VJbmZvOmYsY29kZUZlbmNlZEZlbmNlTWV0YTp4LGNvZGVGbG93VmFsdWU6Uixjb2RlSW5kZW50ZWQ6bCh5KSxjb2RlVGV4dDpsKEUpLGNvZGVUZXh0RGF0YTpSLGRhdGE6UixkZWZpbml0aW9uOmwoKSxkZWZpbml0aW9uRGVzdGluYXRpb25TdHJpbmc6TyxkZWZpbml0aW9uTGFiZWxTdHJpbmc6dyxkZWZpbml0aW9uVGl0bGVTdHJpbmc6ayxlbXBoYXNpczpsKCksaGFyZEJyZWFrRXNjYXBlOmwoUyksaGFyZEJyZWFrVHJhaWxpbmc6bChTKSxodG1sRmxvdzpsKCQpLGh0bWxGbG93RGF0YTpSLGh0bWxUZXh0OmwoVCksaHRtbFRleHREYXRhOlIsaW1hZ2U6bChCKSxsYWJlbDplZSxsYWJlbFRleHQ6RyxsaW5lRW5kaW5nOl8sbGluazpsKHEpLGxpc3RJdGVtOmwoKSxsaXN0T3JkZXJlZDpsKCksbGlzdFVub3JkZXJlZDpsKCkscGFyYWdyYXBoOmwoKSxyZWZlcmVuY2VTdHJpbmc6bmUscmVzb3VyY2VEZXN0aW5hdGlvblN0cmluZzpQLHJlc291cmNlVGl0bGVTdHJpbmc6Z2UscmVzb3VyY2U6d2Usc2V0ZXh0SGVhZGluZzpsKEQpLHNldGV4dEhlYWRpbmdMaW5lU2VxdWVuY2U6RixzZXRleHRIZWFkaW5nVGV4dDpNLHN0cm9uZzpsKCksdGhlbWF0aWNCcmVhazpsKCl9fTtjQ2UodCwoZXx8e30pLm1kYXN0RXh0ZW5zaW9uc3x8W10pO2xldCByPXt9O3JldHVybiBpO2Z1bmN0aW9uIGkoSyl7bGV0IFo9e3R5cGU6InJvb3QiLGNoaWxkcmVuOltdfSxKPXtzdGFjazpbWl0sdG9rZW5TdGFjazpbXSxjb25maWc6dCxlbnRlcjpzLGV4aXQ6YyxidWZmZXI6byxyZXN1bWU6dSxkYXRhOnJ9LG1lPVtdLEVlPS0xO2Zvcig7KytFZTxLLmxlbmd0aDspaWYoS1tFZV1bMV0udHlwZT09PSJsaXN0T3JkZXJlZCJ8fEtbRWVdWzFdLnR5cGU9PT0ibGlzdFVub3JkZXJlZCIpaWYoS1tFZV1bMF09PT0iZW50ZXIiKW1lLnB1c2goRWUpO2Vsc2V7bGV0IFVlPW1lLnBvcCgpO0VlPWEoSyxVZSxFZSl9Zm9yKEVlPS0xOysrRWU8Sy5sZW5ndGg7KXtsZXQgVWU9dFtLW0VlXVswXV07bENlLmNhbGwoVWUsS1tFZV1bMV0udHlwZSkmJlVlW0tbRWVdWzFdLnR5cGVdLmNhbGwoT2JqZWN0LmFzc2lnbih7c2xpY2VTZXJpYWxpemU6S1tFZV1bMl0uc2xpY2VTZXJpYWxpemV9LEopLEtbRWVdWzFdKX1pZihKLnRva2VuU3RhY2subGVuZ3RoPjApe2xldCBVZT1KLnRva2VuU3RhY2tbSi50b2tlblN0YWNrLmxlbmd0aC0xXTsoVWVbMV18fGRDZSkuY2FsbChKLHZvaWQgMCxVZVswXSl9Zm9yKFoucG9zaXRpb249e3N0YXJ0OmswKEsubGVuZ3RoPjA/S1swXVsxXS5zdGFydDp7bGluZToxLGNvbHVtbjoxLG9mZnNldDowfSksZW5kOmswKEsubGVuZ3RoPjA/S1tLLmxlbmd0aC0yXVsxXS5lbmQ6e2xpbmU6MSxjb2x1bW46MSxvZmZzZXQ6MH0pfSxFZT0tMTsrK0VlPHQudHJhbnNmb3Jtcy5sZW5ndGg7KVo9dC50cmFuc2Zvcm1zW0VlXShaKXx8WjtyZXR1cm4gWn1mdW5jdGlvbiBhKEssWixKKXtsZXQgbWU9Wi0xLEVlPS0xLFVlPSExLE10LGl0LEx0LFd0O2Zvcig7KyttZTw9Sjspe2xldCBhZT1LW21lXTtzd2l0Y2goYWVbMV0udHlwZSl7Y2FzZSJsaXN0VW5vcmRlcmVkIjpjYXNlImxpc3RPcmRlcmVkIjpjYXNlImJsb2NrUXVvdGUiOnthZVswXT09PSJlbnRlciI/RWUrKzpFZS0tLFd0PXZvaWQgMDticmVha31jYXNlImxpbmVFbmRpbmdCbGFuayI6e2FlWzBdPT09ImVudGVyIiYmKE10JiYhV3QmJiFFZSYmIUx0JiYoTHQ9bWUpLFd0PXZvaWQgMCk7YnJlYWt9Y2FzZSJsaW5lUHJlZml4IjpjYXNlImxpc3RJdGVtVmFsdWUiOmNhc2UibGlzdEl0ZW1NYXJrZXIiOmNhc2UibGlzdEl0ZW1QcmVmaXgiOmNhc2UibGlzdEl0ZW1QcmVmaXhXaGl0ZXNwYWNlIjpicmVhaztkZWZhdWx0Old0PXZvaWQgMH1pZighRWUmJmFlWzBdPT09ImVudGVyIiYmYWVbMV0udHlwZT09PSJsaXN0SXRlbVByZWZpeCJ8fEVlPT09LTEmJmFlWzBdPT09ImV4aXQiJiYoYWVbMV0udHlwZT09PSJsaXN0VW5vcmRlcmVkInx8YWVbMV0udHlwZT09PSJsaXN0T3JkZXJlZCIpKXtpZihNdCl7bGV0IHNlPW1lO2ZvcihpdD12b2lkIDA7c2UtLTspe2xldCBfZT1LW3NlXTtpZihfZVsxXS50eXBlPT09ImxpbmVFbmRpbmcifHxfZVsxXS50eXBlPT09ImxpbmVFbmRpbmdCbGFuayIpe2lmKF9lWzBdPT09ImV4aXQiKWNvbnRpbnVlO2l0JiYoS1tpdF1bMV0udHlwZT0ibGluZUVuZGluZ0JsYW5rIixVZT0hMCksX2VbMV0udHlwZT0ibGluZUVuZGluZyIsaXQ9c2V9ZWxzZSBpZighKF9lWzFdLnR5cGU9PT0ibGluZVByZWZpeCJ8fF9lWzFdLnR5cGU9PT0iYmxvY2tRdW90ZVByZWZpeCJ8fF9lWzFdLnR5cGU9PT0iYmxvY2tRdW90ZVByZWZpeFdoaXRlc3BhY2UifHxfZVsxXS50eXBlPT09ImJsb2NrUXVvdGVNYXJrZXIifHxfZVsxXS50eXBlPT09Imxpc3RJdGVtSW5kZW50IikpYnJlYWt9THQmJighaXR8fEx0PGl0KSYmKE10Ll9zcHJlYWQ9ITApLE10LmVuZD1PYmplY3QuYXNzaWduKHt9LGl0P0tbaXRdWzFdLnN0YXJ0OmFlWzFdLmVuZCksSy5zcGxpY2UoaXR8fG1lLDAsWyJleGl0IixNdCxhZVsyXV0pLG1lKyssSisrfWlmKGFlWzFdLnR5cGU9PT0ibGlzdEl0ZW1QcmVmaXgiKXtsZXQgc2U9e3R5cGU6Imxpc3RJdGVtIixfc3ByZWFkOiExLHN0YXJ0Ok9iamVjdC5hc3NpZ24oe30sYWVbMV0uc3RhcnQpLGVuZDp2b2lkIDB9O010PXNlLEsuc3BsaWNlKG1lLDAsWyJlbnRlciIsc2UsYWVbMl1dKSxtZSsrLEorKyxMdD12b2lkIDAsV3Q9ITB9fX1yZXR1cm4gS1taXVsxXS5fc3ByZWFkPVVlLEp9ZnVuY3Rpb24gbihLLFope3JldHVybiBKO2Z1bmN0aW9uIEoobWUpe3MuY2FsbCh0aGlzLEsobWUpLG1lKSxaJiZaLmNhbGwodGhpcyxtZSl9fWZ1bmN0aW9uIG8oKXt0aGlzLnN0YWNrLnB1c2goe3R5cGU6ImZyYWdtZW50IixjaGlsZHJlbjpbXX0pfWZ1bmN0aW9uIHMoSyxaLEope3RoaXMuc3RhY2tbdGhpcy5zdGFjay5sZW5ndGgtMV0uY2hpbGRyZW4ucHVzaChLKSx0aGlzLnN0YWNrLnB1c2goSyksdGhpcy50b2tlblN0YWNrLnB1c2goW1osSnx8dm9pZCAwXSksSy5wb3NpdGlvbj17c3RhcnQ6azAoWi5zdGFydCksZW5kOnZvaWQgMH19ZnVuY3Rpb24gbChLKXtyZXR1cm4gWjtmdW5jdGlvbiBaKEope0smJksuY2FsbCh0aGlzLEopLGMuY2FsbCh0aGlzLEopfX1mdW5jdGlvbiBjKEssWil7bGV0IEo9dGhpcy5zdGFjay5wb3AoKSxtZT10aGlzLnRva2VuU3RhY2sucG9wKCk7aWYobWUpbWVbMF0udHlwZSE9PUsudHlwZSYmKFo/Wi5jYWxsKHRoaXMsSyxtZVswXSk6KG1lWzFdfHxkQ2UpLmNhbGwodGhpcyxLLG1lWzBdKSk7ZWxzZSB0aHJvdyBuZXcgRXJyb3IoIkNhbm5vdCBjbG9zZSBgIitLLnR5cGUrImAgKCIrdjAoe3N0YXJ0Oksuc3RhcnQsZW5kOksuZW5kfSkrIik6IGl0XHUyMDE5cyBub3Qgb3BlbiIpO0oucG9zaXRpb24uZW5kPWswKEsuZW5kKX1mdW5jdGlvbiB1KCl7cmV0dXJuIFczKHRoaXMuc3RhY2sucG9wKCkpfWZ1bmN0aW9uIGQoKXt0aGlzLmRhdGEuZXhwZWN0aW5nRmlyc3RMaXN0SXRlbVZhbHVlPSEwfWZ1bmN0aW9uIGgoSyl7aWYodGhpcy5kYXRhLmV4cGVjdGluZ0ZpcnN0TGlzdEl0ZW1WYWx1ZSl7bGV0IFo9dGhpcy5zdGFja1t0aGlzLnN0YWNrLmxlbmd0aC0yXTtaLnN0YXJ0PU51bWJlci5wYXJzZUludCh0aGlzLnNsaWNlU2VyaWFsaXplKEspLDEwKSx0aGlzLmRhdGEuZXhwZWN0aW5nRmlyc3RMaXN0SXRlbVZhbHVlPXZvaWQgMH19ZnVuY3Rpb24gZigpe2xldCBLPXRoaXMucmVzdW1lKCksWj10aGlzLnN0YWNrW3RoaXMuc3RhY2subGVuZ3RoLTFdO1oubGFuZz1LfWZ1bmN0aW9uIHgoKXtsZXQgSz10aGlzLnJlc3VtZSgpLFo9dGhpcy5zdGFja1t0aGlzLnN0YWNrLmxlbmd0aC0xXTtaLm1ldGE9S31mdW5jdGlvbiB2KCl7dGhpcy5kYXRhLmZsb3dDb2RlSW5zaWRlfHwodGhpcy5idWZmZXIoKSx0aGlzLmRhdGEuZmxvd0NvZGVJbnNpZGU9ITApfWZ1bmN0aW9uIGIoKXtsZXQgSz10aGlzLnJlc3VtZSgpLFo9dGhpcy5zdGFja1t0aGlzLnN0YWNrLmxlbmd0aC0xXTtaLnZhbHVlPUsucmVwbGFjZSgvXihccj9cbnxccil8KFxyP1xufFxyKSQvZywiIiksdGhpcy5kYXRhLmZsb3dDb2RlSW5zaWRlPXZvaWQgMH1mdW5jdGlvbiB5KCl7bGV0IEs9dGhpcy5yZXN1bWUoKSxaPXRoaXMuc3RhY2tbdGhpcy5zdGFjay5sZW5ndGgtMV07Wi52YWx1ZT1LLnJlcGxhY2UoLyhccj9cbnxccikkL2csIiIpfWZ1bmN0aW9uIHcoSyl7bGV0IFo9dGhpcy5yZXN1bWUoKSxKPXRoaXMuc3RhY2tbdGhpcy5zdGFjay5sZW5ndGgtMV07Si5sYWJlbD1aLEouaWRlbnRpZmllcj1MMSh0aGlzLnNsaWNlU2VyaWFsaXplKEspKS50b0xvd2VyQ2FzZSgpfWZ1bmN0aW9uIGsoKXtsZXQgSz10aGlzLnJlc3VtZSgpLFo9dGhpcy5zdGFja1t0aGlzLnN0YWNrLmxlbmd0aC0xXTtaLnRpdGxlPUt9ZnVuY3Rpb24gTygpe2xldCBLPXRoaXMucmVzdW1lKCksWj10aGlzLnN0YWNrW3RoaXMuc3RhY2subGVuZ3RoLTFdO1oudXJsPUt9ZnVuY3Rpb24geihLKXtsZXQgWj10aGlzLnN0YWNrW3RoaXMuc3RhY2subGVuZ3RoLTFdO2lmKCFaLmRlcHRoKXtsZXQgSj10aGlzLnNsaWNlU2VyaWFsaXplKEspLmxlbmd0aDtaLmRlcHRoPUp9fWZ1bmN0aW9uIE0oKXt0aGlzLmRhdGEuc2V0ZXh0SGVhZGluZ1NsdXJwTGluZUVuZGluZz0hMH1mdW5jdGlvbiBGKEspe2xldCBaPXRoaXMuc3RhY2tbdGhpcy5zdGFjay5sZW5ndGgtMV07Wi5kZXB0aD10aGlzLnNsaWNlU2VyaWFsaXplKEspLmNvZGVQb2ludEF0KDApPT09NjE/MToyfWZ1bmN0aW9uIEQoKXt0aGlzLmRhdGEuc2V0ZXh0SGVhZGluZ1NsdXJwTGluZUVuZGluZz12b2lkIDB9ZnVuY3Rpb24gTihLKXtsZXQgSj10aGlzLnN0YWNrW3RoaXMuc3RhY2subGVuZ3RoLTFdLmNoaWxkcmVuLG1lPUpbSi5sZW5ndGgtMV07KCFtZXx8bWUudHlwZSE9PSJ0ZXh0IikmJihtZT1JZSgpLG1lLnBvc2l0aW9uPXtzdGFydDprMChLLnN0YXJ0KSxlbmQ6dm9pZCAwfSxKLnB1c2gobWUpKSx0aGlzLnN0YWNrLnB1c2gobWUpfWZ1bmN0aW9uIFIoSyl7bGV0IFo9dGhpcy5zdGFjay5wb3AoKTtaLnZhbHVlKz10aGlzLnNsaWNlU2VyaWFsaXplKEspLFoucG9zaXRpb24uZW5kPWswKEsuZW5kKX1mdW5jdGlvbiBfKEspe2xldCBaPXRoaXMuc3RhY2tbdGhpcy5zdGFjay5sZW5ndGgtMV07aWYodGhpcy5kYXRhLmF0SGFyZEJyZWFrKXtsZXQgSj1aLmNoaWxkcmVuW1ouY2hpbGRyZW4ubGVuZ3RoLTFdO0oucG9zaXRpb24uZW5kPWswKEsuZW5kKSx0aGlzLmRhdGEuYXRIYXJkQnJlYWs9dm9pZCAwO3JldHVybn0hdGhpcy5kYXRhLnNldGV4dEhlYWRpbmdTbHVycExpbmVFbmRpbmcmJnQuY2FuQ29udGFpbkVvbHMuaW5jbHVkZXMoWi50eXBlKSYmKE4uY2FsbCh0aGlzLEspLFIuY2FsbCh0aGlzLEspKX1mdW5jdGlvbiBTKCl7dGhpcy5kYXRhLmF0SGFyZEJyZWFrPSEwfWZ1bmN0aW9uICQoKXtsZXQgSz10aGlzLnJlc3VtZSgpLFo9dGhpcy5zdGFja1t0aGlzLnN0YWNrLmxlbmd0aC0xXTtaLnZhbHVlPUt9ZnVuY3Rpb24gVCgpe2xldCBLPXRoaXMucmVzdW1lKCksWj10aGlzLnN0YWNrW3RoaXMuc3RhY2subGVuZ3RoLTFdO1oudmFsdWU9S31mdW5jdGlvbiBFKCl7bGV0IEs9dGhpcy5yZXN1bWUoKSxaPXRoaXMuc3RhY2tbdGhpcy5zdGFjay5sZW5ndGgtMV07Wi52YWx1ZT1LfWZ1bmN0aW9uIHEoKXtsZXQgSz10aGlzLnN0YWNrW3RoaXMuc3RhY2subGVuZ3RoLTFdO2lmKHRoaXMuZGF0YS5pblJlZmVyZW5jZSl7bGV0IFo9dGhpcy5kYXRhLnJlZmVyZW5jZVR5cGV8fCJzaG9ydGN1dCI7Sy50eXBlKz0iUmVmZXJlbmNlIixLLnJlZmVyZW5jZVR5cGU9WixkZWxldGUgSy51cmwsZGVsZXRlIEsudGl0bGV9ZWxzZSBkZWxldGUgSy5pZGVudGlmaWVyLGRlbGV0ZSBLLmxhYmVsO3RoaXMuZGF0YS5yZWZlcmVuY2VUeXBlPXZvaWQgMH1mdW5jdGlvbiBCKCl7bGV0IEs9dGhpcy5zdGFja1t0aGlzLnN0YWNrLmxlbmd0aC0xXTtpZih0aGlzLmRhdGEuaW5SZWZlcmVuY2Upe2xldCBaPXRoaXMuZGF0YS5yZWZlcmVuY2VUeXBlfHwic2hvcnRjdXQiO0sudHlwZSs9IlJlZmVyZW5jZSIsSy5yZWZlcmVuY2VUeXBlPVosZGVsZXRlIEsudXJsLGRlbGV0ZSBLLnRpdGxlfWVsc2UgZGVsZXRlIEsuaWRlbnRpZmllcixkZWxldGUgSy5sYWJlbDt0aGlzLmRhdGEucmVmZXJlbmNlVHlwZT12b2lkIDB9ZnVuY3Rpb24gRyhLKXtsZXQgWj10aGlzLnNsaWNlU2VyaWFsaXplKEspLEo9dGhpcy5zdGFja1t0aGlzLnN0YWNrLmxlbmd0aC0yXTtKLmxhYmVsPWtNKFopLEouaWRlbnRpZmllcj1MMShaKS50b0xvd2VyQ2FzZSgpfWZ1bmN0aW9uIGVlKCl7bGV0IEs9dGhpcy5zdGFja1t0aGlzLnN0YWNrLmxlbmd0aC0xXSxaPXRoaXMucmVzdW1lKCksSj10aGlzLnN0YWNrW3RoaXMuc3RhY2subGVuZ3RoLTFdO2lmKHRoaXMuZGF0YS5pblJlZmVyZW5jZT0hMCxKLnR5cGU9PT0ibGluayIpe2xldCBtZT1LLmNoaWxkcmVuO0ouY2hpbGRyZW49bWV9ZWxzZSBKLmFsdD1afWZ1bmN0aW9uIFAoKXtsZXQgSz10aGlzLnJlc3VtZSgpLFo9dGhpcy5zdGFja1t0aGlzLnN0YWNrLmxlbmd0aC0xXTtaLnVybD1LfWZ1bmN0aW9uIGdlKCl7bGV0IEs9dGhpcy5yZXN1bWUoKSxaPXRoaXMuc3RhY2tbdGhpcy5zdGFjay5sZW5ndGgtMV07Wi50aXRsZT1LfWZ1bmN0aW9uIHdlKCl7dGhpcy5kYXRhLmluUmVmZXJlbmNlPXZvaWQgMH1mdW5jdGlvbiBJKCl7dGhpcy5kYXRhLnJlZmVyZW5jZVR5cGU9ImNvbGxhcHNlZCJ9ZnVuY3Rpb24gbmUoSyl7bGV0IFo9dGhpcy5yZXN1bWUoKSxKPXRoaXMuc3RhY2tbdGhpcy5zdGFjay5sZW5ndGgtMV07Si5sYWJlbD1aLEouaWRlbnRpZmllcj1MMSh0aGlzLnNsaWNlU2VyaWFsaXplKEspKS50b0xvd2VyQ2FzZSgpLHRoaXMuZGF0YS5yZWZlcmVuY2VUeXBlPSJmdWxsIn1mdW5jdGlvbiBrZShLKXt0aGlzLmRhdGEuY2hhcmFjdGVyUmVmZXJlbmNlVHlwZT1LLnR5cGV9ZnVuY3Rpb24gWShLKXtsZXQgWj10aGlzLnNsaWNlU2VyaWFsaXplKEspLEo9dGhpcy5kYXRhLmNoYXJhY3RlclJlZmVyZW5jZVR5cGUsbWU7Sj8obWU9U3UoWixKPT09ImNoYXJhY3RlclJlZmVyZW5jZU1hcmtlck51bWVyaWMiPzEwOjE2KSx0aGlzLmRhdGEuY2hhcmFjdGVyUmVmZXJlbmNlVHlwZT12b2lkIDApOm1lPXcwKFopO2xldCBFZT10aGlzLnN0YWNrW3RoaXMuc3RhY2subGVuZ3RoLTFdO0VlLnZhbHVlKz1tZX1mdW5jdGlvbiBBKEspe2xldCBaPXRoaXMuc3RhY2sucG9wKCk7Wi5wb3NpdGlvbi5lbmQ9azAoSy5lbmQpfWZ1bmN0aW9uIEwoSyl7Ui5jYWxsKHRoaXMsSyk7bGV0IFo9dGhpcy5zdGFja1t0aGlzLnN0YWNrLmxlbmd0aC0xXTtaLnVybD10aGlzLnNsaWNlU2VyaWFsaXplKEspfWZ1bmN0aW9uIFUoSyl7Ui5jYWxsKHRoaXMsSyk7bGV0IFo9dGhpcy5zdGFja1t0aGlzLnN0YWNrLmxlbmd0aC0xXTtaLnVybD0ibWFpbHRvOiIrdGhpcy5zbGljZVNlcmlhbGl6ZShLKX1mdW5jdGlvbiBWKCl7cmV0dXJue3R5cGU6ImJsb2NrcXVvdGUiLGNoaWxkcmVuOltdfX1mdW5jdGlvbiBYKCl7cmV0dXJue3R5cGU6ImNvZGUiLGxhbmc6bnVsbCxtZXRhOm51bGwsdmFsdWU6IiJ9fWZ1bmN0aW9uIGRlKCl7cmV0dXJue3R5cGU6ImlubGluZUNvZGUiLHZhbHVlOiIifX1mdW5jdGlvbiB2ZSgpe3JldHVybnt0eXBlOiJkZWZpbml0aW9uIixpZGVudGlmaWVyOiIiLGxhYmVsOm51bGwsdGl0bGU6bnVsbCx1cmw6IiJ9fWZ1bmN0aW9uIExlKCl7cmV0dXJue3R5cGU6ImVtcGhhc2lzIixjaGlsZHJlbjpbXX19ZnVuY3Rpb24gVygpe3JldHVybnt0eXBlOiJoZWFkaW5nIixkZXB0aDowLGNoaWxkcmVuOltdfX1mdW5jdGlvbiBIKCl7cmV0dXJue3R5cGU6ImJyZWFrIn19ZnVuY3Rpb24gdGUoKXtyZXR1cm57dHlwZToiaHRtbCIsdmFsdWU6IiJ9fWZ1bmN0aW9uIGJlKCl7cmV0dXJue3R5cGU6ImltYWdlIix0aXRsZTpudWxsLHVybDoiIixhbHQ6bnVsbH19ZnVuY3Rpb24gdWUoKXtyZXR1cm57dHlwZToibGluayIsdGl0bGU6bnVsbCx1cmw6IiIsY2hpbGRyZW46W119fWZ1bmN0aW9uIENlKEspe3JldHVybnt0eXBlOiJsaXN0IixvcmRlcmVkOksudHlwZT09PSJsaXN0T3JkZXJlZCIsc3RhcnQ6bnVsbCxzcHJlYWQ6Sy5fc3ByZWFkLGNoaWxkcmVuOltdfX1mdW5jdGlvbiBoZShLKXtyZXR1cm57dHlwZToibGlzdEl0ZW0iLHNwcmVhZDpLLl9zcHJlYWQsY2hlY2tlZDpudWxsLGNoaWxkcmVuOltdfX1mdW5jdGlvbiBpZSgpe3JldHVybnt0eXBlOiJwYXJhZ3JhcGgiLGNoaWxkcmVuOltdfX1mdW5jdGlvbiBTZSgpe3JldHVybnt0eXBlOiJzdHJvbmciLGNoaWxkcmVuOltdfX1mdW5jdGlvbiBJZSgpe3JldHVybnt0eXBlOiJ0ZXh0Iix2YWx1ZToiIn19ZnVuY3Rpb24gWmUoKXtyZXR1cm57dHlwZToidGhlbWF0aWNCcmVhayJ9fX1mdW5jdGlvbiBrMChlKXtyZXR1cm57bGluZTplLmxpbmUsY29sdW1uOmUuY29sdW1uLG9mZnNldDplLm9mZnNldH19ZnVuY3Rpb24gY0NlKGUsdCl7bGV0IHI9LTE7Zm9yKDsrK3I8dC5sZW5ndGg7KXtsZXQgaT10W3JdO0FycmF5LmlzQXJyYXkoaSk/Y0NlKGUsaSk6ZVNyKGUsaSl9fWZ1bmN0aW9uIGVTcihlLHQpe2xldCByO2ZvcihyIGluIHQpaWYobENlLmNhbGwodCxyKSlzd2l0Y2gocil7Y2FzZSJjYW5Db250YWluRW9scyI6e2xldCBpPXRbcl07aSYmZVtyXS5wdXNoKC4uLmkpO2JyZWFrfWNhc2UidHJhbnNmb3JtcyI6e2xldCBpPXRbcl07aSYmZVtyXS5wdXNoKC4uLmkpO2JyZWFrfWNhc2UiZW50ZXIiOmNhc2UiZXhpdCI6e2xldCBpPXRbcl07aSYmT2JqZWN0LmFzc2lnbihlW3JdLGkpO2JyZWFrfX19ZnVuY3Rpb24gZENlKGUsdCl7dGhyb3cgZT9uZXcgRXJyb3IoIkNhbm5vdCBjbG9zZSBgIitlLnR5cGUrImAgKCIrdjAoe3N0YXJ0OmUuc3RhcnQsZW5kOmUuZW5kfSkrIik6IGEgZGlmZmVyZW50IHRva2VuIChgIit0LnR5cGUrImAsICIrdjAoe3N0YXJ0OnQuc3RhcnQsZW5kOnQuZW5kfSkrIikgaXMgb3BlbiIpOm5ldyBFcnJvcigiQ2Fubm90IGNsb3NlIGRvY3VtZW50LCBhIHRva2VuIChgIit0LnR5cGUrImAsICIrdjAoe3N0YXJ0OnQuc3RhcnQsZW5kOnQuZW5kfSkrIikgaXMgc3RpbGwgb3BlbiIpfXZhciBsQ2UsdUNlPXAoKCk9Pnt2TSgpO3NDZSgpO01NKCk7RFYoKTt5MCgpO2I3KCk7VWooKTtsQ2U9e30uaGFzT3duUHJvcGVydHl9KTt2YXIgcENlPXAoKCk9Pnt1Q2UoKX0pO2Z1bmN0aW9uIFR1KGUpe2xldCB0PXRoaXM7dC5wYXJzZXI9cjtmdW5jdGlvbiByKGkpe3JldHVybiBfVShpLHsuLi50LmRhdGEoInNldHRpbmdzIiksLi4uZSxleHRlbnNpb25zOnQuZGF0YSgibWljcm9tYXJrRXh0ZW5zaW9ucyIpfHxbXSxtZGFzdEV4dGVuc2lvbnM6dC5kYXRhKCJmcm9tTWFya2Rvd25FeHRlbnNpb25zIil8fFtdfSl9fXZhciBoQ2U9cCgoKT0+e3BDZSgpfSk7dmFyIGZDZT1wKCgpPT57aENlKCl9KTt2YXIgbUNlPWplKChOSDEsTFUpPT57KGZ1bmN0aW9uKCl7dmFyIGU7dHlwZW9mIExVPCJ1Ij9lPUxVLmV4cG9ydHM9aTplPShmdW5jdGlvbigpe3JldHVybiB0aGlzfHwoMCxldmFsKSgidGhpcyIpfSkoKSxlLmZvcm1hdD1pLGUudnNwcmludGY9cix0eXBlb2YgY29uc29sZTwidSImJnR5cGVvZiBjb25zb2xlLmxvZz09ImZ1bmN0aW9uIiYmKGUucHJpbnRmPXQpO2Z1bmN0aW9uIHQoKXtjb25zb2xlLmxvZyhpLmFwcGx5KG51bGwsYXJndW1lbnRzKSl9ZnVuY3Rpb24gcihhLG4pe3JldHVybiBpLmFwcGx5KG51bGwsW2FdLmNvbmNhdChuKSl9ZnVuY3Rpb24gaShhKXtmb3IodmFyIG49MSxvPVtdLnNsaWNlLmNhbGwoYXJndW1lbnRzKSxzPTAsbD1hLmxlbmd0aCxjPSIiLHUsZD0hMSxoLGYseD0hMSx2LGI9ZnVuY3Rpb24oKXtyZXR1cm4gb1tuKytdfSx5PWZ1bmN0aW9uKCl7Zm9yKHZhciB3PSIiOy9cZC8udGVzdChhW3NdKTspdys9YVtzKytdLHU9YVtzXTtyZXR1cm4gdy5sZW5ndGg+MD9wYXJzZUludCh3KTpudWxsfTtzPGw7KytzKWlmKHU9YVtzXSxkKXN3aXRjaChkPSExLHU9PSIuIj8oeD0hMSx1PWFbKytzXSk6dT09IjAiJiZhW3MrMV09PSIuIj8oeD0hMCxzKz0yLHU9YVtzXSk6eD0hMCx2PXkoKSx1KXtjYXNlImIiOmMrPXBhcnNlSW50KGIoKSwxMCkudG9TdHJpbmcoMik7YnJlYWs7Y2FzZSJjIjpoPWIoKSx0eXBlb2YgaD09InN0cmluZyJ8fGggaW5zdGFuY2VvZiBTdHJpbmc/Yys9aDpjKz1TdHJpbmcuZnJvbUNoYXJDb2RlKHBhcnNlSW50KGgsMTApKTticmVhaztjYXNlImQiOmMrPXBhcnNlSW50KGIoKSwxMCk7YnJlYWs7Y2FzZSJmIjpmPVN0cmluZyhwYXJzZUZsb2F0KGIoKSkudG9GaXhlZCh2fHw2KSksYys9eD9mOmYucmVwbGFjZSgvXjAvLCIiKTticmVhaztjYXNlImoiOmMrPUpTT04uc3RyaW5naWZ5KGIoKSk7YnJlYWs7Y2FzZSJvIjpjKz0iMCIrcGFyc2VJbnQoYigpLDEwKS50b1N0cmluZyg4KTticmVhaztjYXNlInMiOmMrPWIoKTticmVhaztjYXNlIngiOmMrPSIweCIrcGFyc2VJbnQoYigpLDEwKS50b1N0cmluZygxNik7YnJlYWs7Y2FzZSJYIjpjKz0iMHgiK3BhcnNlSW50KGIoKSwxMCkudG9TdHJpbmcoMTYpLnRvVXBwZXJDYXNlKCk7YnJlYWs7ZGVmYXVsdDpjKz11O2JyZWFrfWVsc2UgdT09PSIlIj9kPSEwOmMrPXU7cmV0dXJuIGN9fSkoKX0pO2Z1bmN0aW9uIEszKGUpe3JldHVybiB0LmRpc3BsYXlOYW1lPWUuZGlzcGxheU5hbWV8fGUubmFtZSx0O2Z1bmN0aW9uIHQociwuLi5pKXtsZXQgYT1yJiYoMCxnQ2UuZGVmYXVsdCkociwuLi5pKTtyZXR1cm4gbmV3IGUoYSl9fXZhciBnQ2UsVDcsYkNlPXAoKCk9PntnQ2U9ZXIobUNlKCksMSksVDc9T2JqZWN0LmFzc2lnbihLMyhFcnJvcikse2V2YWw6SzMoRXZhbEVycm9yKSxyYW5nZTpLMyhSYW5nZUVycm9yKSxyZWZlcmVuY2U6SzMoUmVmZXJlbmNlRXJyb3IpLHN5bnRheDpLMyhTeW50YXhFcnJvciksdHlwZTpLMyhUeXBlRXJyb3IpLHVyaTpLMyhVUklFcnJvcil9KX0pO2Z1bmN0aW9uIF91KGUpe2xldCB0PVtdLHI9LTEsaT1BcnJheS5pc0FycmF5KGUpP2U6ZT9bZV06WyJ5YW1sIl07Zm9yKDsrK3I8aS5sZW5ndGg7KXRbcl09dFNyKGlbcl0pO3JldHVybiB0fWZ1bmN0aW9uIHRTcihlKXtsZXQgdD1lO2lmKHR5cGVvZiB0PT0ic3RyaW5nIil7aWYoIWpNLmNhbGwodkNlLHQpKXRocm93IFQ3KCJNaXNzaW5nIG1hdHRlciBkZWZpbml0aW9uIGZvciBgJXNgIix0KTt0PXt0eXBlOnQsbWFya2VyOnZDZVt0XX19ZWxzZSBpZih0eXBlb2YgdCE9Im9iamVjdCIpdGhyb3cgVDcoIkV4cGVjdGVkIG1hdHRlciB0byBiZSBhbiBvYmplY3QsIG5vdCBgJWpgIix0KTtpZighak0uY2FsbCh0LCJ0eXBlIikpdGhyb3cgVDcoIk1pc3NpbmcgYHR5cGVgIGluIG1hdHRlciBgJWpgIix0KTtpZighak0uY2FsbCh0LCJmZW5jZSIpJiYhak0uY2FsbCh0LCJtYXJrZXIiKSl0aHJvdyBUNygiTWlzc2luZyBgbWFya2VyYCBvciBgZmVuY2VgIGluIG1hdHRlciBgJWpgIix0KTtyZXR1cm4gdH12YXIgak0sdkNlLEFVPXAoKCk9PntiQ2UoKTtqTT17fS5oYXNPd25Qcm9wZXJ0eSx2Q2U9e3lhbWw6Ii0iLHRvbWw6IisifX0pO2Z1bmN0aW9uIEVVKGUpe2xldCB0PV91KGUpLHI9e30saT0tMTtmb3IoOysraTx0Lmxlbmd0aDspe2xldCBhPXRbaV0sbj1EVShhLCJvcGVuIikuY2hhckNvZGVBdCgwKSxvPXJTcihhKSxzPXJbbl07QXJyYXkuaXNBcnJheShzKT9zLnB1c2gobyk6cltuXT1bb119cmV0dXJue2Zsb3c6cn19ZnVuY3Rpb24gclNyKGUpe2xldCB0PWUuYW55d2hlcmUscj1lLnR5cGUsaT1yKyJGZW5jZSIsYT1pKyJTZXF1ZW5jZSIsbj1yKyJWYWx1ZSIsbz17dG9rZW5pemU6dSxwYXJ0aWFsOiEwfSxzLGw9MDtyZXR1cm57dG9rZW5pemU6Yyxjb25jcmV0ZTohMH07ZnVuY3Rpb24gYyhkLGgsZil7bGV0IHg9dGhpcztyZXR1cm4gdjtmdW5jdGlvbiB2KEYpe2xldCBEPXgubm93KCk7cmV0dXJuIEQuY29sdW1uPT09MSYmKEQubGluZT09PTF8fHQpJiYocz1EVShlLCJvcGVuIiksbD0wLEY9PT1zLmNoYXJDb2RlQXQobCkpPyhkLmVudGVyKHIpLGQuZW50ZXIoaSksZC5lbnRlcihhKSxiKEYpKTpmKEYpfWZ1bmN0aW9uIGIoRil7cmV0dXJuIGw9PT1zLmxlbmd0aD8oZC5leGl0KGEpLGx0KEYpPyhkLmVudGVyKCJ3aGl0ZXNwYWNlIikseShGKSk6dyhGKSk6Rj09PXMuY2hhckNvZGVBdChsKyspPyhkLmNvbnN1bWUoRiksYik6ZihGKX1mdW5jdGlvbiB5KEYpe3JldHVybiBsdChGKT8oZC5jb25zdW1lKEYpLHkpOihkLmV4aXQoIndoaXRlc3BhY2UiKSx3KEYpKX1mdW5jdGlvbiB3KEYpe3JldHVybiBXZShGKT8oZC5leGl0KGkpLGQuZW50ZXIoImxpbmVFbmRpbmciKSxkLmNvbnN1bWUoRiksZC5leGl0KCJsaW5lRW5kaW5nIikscz1EVShlLCJjbG9zZSIpLGw9MCxkLmF0dGVtcHQobyxNLGspKTpmKEYpfWZ1bmN0aW9uIGsoRil7cmV0dXJuIEY9PT1udWxsfHxXZShGKT96KEYpOihkLmVudGVyKG4pLE8oRikpfWZ1bmN0aW9uIE8oRil7cmV0dXJuIEY9PT1udWxsfHxXZShGKT8oZC5leGl0KG4pLHooRikpOihkLmNvbnN1bWUoRiksTyl9ZnVuY3Rpb24geihGKXtyZXR1cm4gRj09PW51bGw/ZihGKTooZC5lbnRlcigibGluZUVuZGluZyIpLGQuY29uc3VtZShGKSxkLmV4aXQoImxpbmVFbmRpbmciKSxkLmF0dGVtcHQobyxNLGspKX1mdW5jdGlvbiBNKEYpe3JldHVybiBkLmV4aXQociksaChGKX19ZnVuY3Rpb24gdShkLGgsZil7bGV0IHg9MDtyZXR1cm4gdjtmdW5jdGlvbiB2KGspe3JldHVybiBrPT09cy5jaGFyQ29kZUF0KHgpPyhkLmVudGVyKGkpLGQuZW50ZXIoYSksYihrKSk6ZihrKX1mdW5jdGlvbiBiKGspe3JldHVybiB4PT09cy5sZW5ndGg/KGQuZXhpdChhKSxsdChrKT8oZC5lbnRlcigid2hpdGVzcGFjZSIpLHkoaykpOncoaykpOms9PT1zLmNoYXJDb2RlQXQoeCsrKT8oZC5jb25zdW1lKGspLGIpOmYoayl9ZnVuY3Rpb24geShrKXtyZXR1cm4gbHQoayk/KGQuY29uc3VtZShrKSx5KTooZC5leGl0KCJ3aGl0ZXNwYWNlIiksdyhrKSl9ZnVuY3Rpb24gdyhrKXtyZXR1cm4gaz09PW51bGx8fFdlKGspPyhkLmV4aXQoaSksaChrKSk6ZihrKX19fWZ1bmN0aW9uIERVKGUsdCl7cmV0dXJuIGUubWFya2VyP3hDZShlLm1hcmtlcix0KS5yZXBlYXQoMyk6eENlKGUuZmVuY2UsdCl9ZnVuY3Rpb24geENlKGUsdCl7cmV0dXJuIHR5cGVvZiBlPT0ic3RyaW5nIj9lOmVbdF19dmFyIHlDZT1wKCgpPT57dHIoKTtBVSgpfSk7dmFyIHdDZT1wKCgpPT57fSk7dmFyICRVPXAoKCk9Pnt5Q2UoKTt3Q2UoKTtBVSgpfSk7ZnVuY3Rpb24gUFUoZSl7bGV0IHQ9X3UoZSkscj17fSxpPXt9LGE9LTE7Zm9yKDsrK2E8dC5sZW5ndGg7KXtsZXQgbj10W2FdO3Jbbi50eXBlXT1pU3IobiksaVtuLnR5cGVdPWFTcixpW24udHlwZSsiVmFsdWUiXT1uU3J9cmV0dXJue2VudGVyOnIsZXhpdDppfX1mdW5jdGlvbiBpU3IoZSl7cmV0dXJuIHQ7ZnVuY3Rpb24gdChyKXt0aGlzLmVudGVyKHt0eXBlOmUudHlwZSx2YWx1ZToiIn0sciksdGhpcy5idWZmZXIoKX19ZnVuY3Rpb24gYVNyKGUpe2xldCB0PXRoaXMucmVzdW1lKCkscj10aGlzLnN0YWNrW3RoaXMuc3RhY2subGVuZ3RoLTFdOyJ2YWx1ZSJpbiByLHRoaXMuZXhpdChlKSxyLnZhbHVlPXQucmVwbGFjZSgvXihccj9cbnxccil8KFxyP1xufFxyKSQvZywiIil9ZnVuY3Rpb24gblNyKGUpe3RoaXMuY29uZmlnLmVudGVyLmRhdGEuY2FsbCh0aGlzLGUpLHRoaXMuY29uZmlnLmV4aXQuZGF0YS5jYWxsKHRoaXMsZSl9ZnVuY3Rpb24gTlUoZSl7bGV0IHQ9W10scj17fSxpPV91KGUpLGE9LTE7Zm9yKDsrK2E8aS5sZW5ndGg7KXtsZXQgbj1pW2FdO3Jbbi50eXBlXT1vU3Iobik7bGV0IG89SVUobiwib3BlbiIpO3QucHVzaCh7YXRCcmVhazohMCxjaGFyYWN0ZXI6by5jaGFyQXQoMCksYWZ0ZXI6ZjMoby5jaGFyQXQoMSkpfSl9cmV0dXJue3Vuc2FmZTp0LGhhbmRsZXJzOnJ9fWZ1bmN0aW9uIG9TcihlKXtsZXQgdD1JVShlLCJvcGVuIikscj1JVShlLCJjbG9zZSIpO3JldHVybiBpO2Z1bmN0aW9uIGkoYSl7cmV0dXJuIHQrKGEudmFsdWU/YApgK2EudmFsdWU6IiIpK2AKYCtyfX1mdW5jdGlvbiBJVShlLHQpe3JldHVybiBlLm1hcmtlcj9NQ2UoZS5tYXJrZXIsdCkucmVwZWF0KDMpOk1DZShlLmZlbmNlLHQpfWZ1bmN0aW9uIE1DZShlLHQpe3JldHVybiB0eXBlb2YgZT09InN0cmluZyI/ZTplW3RdfXZhciBrQ2U9cCgoKT0+e2IwKCk7JFUoKTtseCgpfSk7dmFyIFNDZT1wKCgpPT57a0NlKCl9KTtmdW5jdGlvbiBMdShlKXtsZXQgdD10aGlzLHI9ZXx8c1NyLGk9dC5kYXRhKCksYT1pLm1pY3JvbWFya0V4dGVuc2lvbnN8fChpLm1pY3JvbWFya0V4dGVuc2lvbnM9W10pLG49aS5mcm9tTWFya2Rvd25FeHRlbnNpb25zfHwoaS5mcm9tTWFya2Rvd25FeHRlbnNpb25zPVtdKSxvPWkudG9NYXJrZG93bkV4dGVuc2lvbnN8fChpLnRvTWFya2Rvd25FeHRlbnNpb25zPVtdKTthLnB1c2goRVUocikpLG4ucHVzaChQVShyKSksby5wdXNoKE5VKHIpKX12YXIgc1NyLHpDZT1wKCgpPT57U0NlKCk7JFUoKTtzU3I9InlhbWwifSk7dmFyIENDZT1wKCgpPT57ekNlKCl9KTt2YXIgRlU9cCgoKT0+e30pO3ZhciBUQ2UsbFNyLFlNLF9DZT1wKCgpPT57RlUoKTtUQ2U9dHlwZW9mIHNlbGY9PSJvYmplY3QiP3NlbGY6Z2xvYmFsVGhpcyxsU3I9KGUsdCk9PntsZXQgcj0oYSxuKT0+KGUuc2V0KG4sYSksYSksaT1hPT57aWYoZS5oYXMoYSkpcmV0dXJuIGUuZ2V0KGEpO2xldFtuLG9dPXRbYV07c3dpdGNoKG4pe2Nhc2UgMDpjYXNlLTE6cmV0dXJuIHIobyxhKTtjYXNlIDE6e2xldCBzPXIoW10sYSk7Zm9yKGxldCBsIG9mIG8pcy5wdXNoKGkobCkpO3JldHVybiBzfWNhc2UgMjp7bGV0IHM9cih7fSxhKTtmb3IobGV0W2wsY11vZiBvKXNbaShsKV09aShjKTtyZXR1cm4gc31jYXNlIDM6cmV0dXJuIHIobmV3IERhdGUobyksYSk7Y2FzZSA0OntsZXR7c291cmNlOnMsZmxhZ3M6bH09bztyZXR1cm4gcihuZXcgUmVnRXhwKHMsbCksYSl9Y2FzZSA1OntsZXQgcz1yKG5ldyBNYXAsYSk7Zm9yKGxldFtsLGNdb2YgbylzLnNldChpKGwpLGkoYykpO3JldHVybiBzfWNhc2UgNjp7bGV0IHM9cihuZXcgU2V0LGEpO2ZvcihsZXQgbCBvZiBvKXMuYWRkKGkobCkpO3JldHVybiBzfWNhc2UgNzp7bGV0e25hbWU6cyxtZXNzYWdlOmx9PW87cmV0dXJuIHIobmV3IFRDZVtzXShsKSxhKX1jYXNlIDg6cmV0dXJuIHIoQmlnSW50KG8pLGEpO2Nhc2UiQmlnSW50IjpyZXR1cm4gcihPYmplY3QoQmlnSW50KG8pKSxhKTtjYXNlIkFycmF5QnVmZmVyIjpyZXR1cm4gcihuZXcgVWludDhBcnJheShvKS5idWZmZXIsbyk7Y2FzZSJEYXRhVmlldyI6e2xldHtidWZmZXI6c309bmV3IFVpbnQ4QXJyYXkobyk7cmV0dXJuIHIobmV3IERhdGFWaWV3KHMpLG8pfX1yZXR1cm4gcihuZXcgVENlW25dKG8pLGEpfTtyZXR1cm4gaX0sWU09ZT0+bFNyKG5ldyBNYXAsZSkoMCl9KTt2YXIgRHUsY1NyLGRTcixBNyxaTSx1U3IsWE0sTENlPXAoKCk9PntGVSgpO0R1PSIiLHt0b1N0cmluZzpjU3J9PXt9LHtrZXlzOmRTcn09T2JqZWN0LEE3PWU9PntsZXQgdD10eXBlb2YgZTtpZih0IT09Im9iamVjdCJ8fCFlKXJldHVyblswLHRdO2xldCByPWNTci5jYWxsKGUpLnNsaWNlKDgsLTEpO3N3aXRjaChyKXtjYXNlIkFycmF5IjpyZXR1cm5bMSxEdV07Y2FzZSJPYmplY3QiOnJldHVyblsyLER1XTtjYXNlIkRhdGUiOnJldHVyblszLER1XTtjYXNlIlJlZ0V4cCI6cmV0dXJuWzQsRHVdO2Nhc2UiTWFwIjpyZXR1cm5bNSxEdV07Y2FzZSJTZXQiOnJldHVybls2LER1XTtjYXNlIkRhdGFWaWV3IjpyZXR1cm5bMSxyXX1yZXR1cm4gci5pbmNsdWRlcygiQXJyYXkiKT9bMSxyXTpyLmluY2x1ZGVzKCJFcnJvciIpP1s3LHJdOlsyLHJdfSxaTT0oW2UsdF0pPT5lPT09MCYmKHQ9PT0iZnVuY3Rpb24ifHx0PT09InN5bWJvbCIpLHVTcj0oZSx0LHIsaSk9PntsZXQgYT0obyxzKT0+e2xldCBsPWkucHVzaChvKS0xO3JldHVybiByLnNldChzLGwpLGx9LG49bz0+e2lmKHIuaGFzKG8pKXJldHVybiByLmdldChvKTtsZXRbcyxsXT1BNyhvKTtzd2l0Y2gocyl7Y2FzZSAwOntsZXQgdT1vO3N3aXRjaChsKXtjYXNlImJpZ2ludCI6cz04LHU9by50b1N0cmluZygpO2JyZWFrO2Nhc2UiZnVuY3Rpb24iOmNhc2Uic3ltYm9sIjppZihlKXRocm93IG5ldyBUeXBlRXJyb3IoInVuYWJsZSB0byBzZXJpYWxpemUgIitsKTt1PW51bGw7YnJlYWs7Y2FzZSJ1bmRlZmluZWQiOnJldHVybiBhKFstMV0sbyl9cmV0dXJuIGEoW3MsdV0sbyl9Y2FzZSAxOntpZihsKXtsZXQgaD1vO3JldHVybiBsPT09IkRhdGFWaWV3Ij9oPW5ldyBVaW50OEFycmF5KG8uYnVmZmVyKTpsPT09IkFycmF5QnVmZmVyIiYmKGg9bmV3IFVpbnQ4QXJyYXkobykpLGEoW2wsWy4uLmhdXSxvKX1sZXQgdT1bXSxkPWEoW3MsdV0sbyk7Zm9yKGxldCBoIG9mIG8pdS5wdXNoKG4oaCkpO3JldHVybiBkfWNhc2UgMjp7aWYobClzd2l0Y2gobCl7Y2FzZSJCaWdJbnQiOnJldHVybiBhKFtsLG8udG9TdHJpbmcoKV0sbyk7Y2FzZSJCb29sZWFuIjpjYXNlIk51bWJlciI6Y2FzZSJTdHJpbmciOnJldHVybiBhKFtsLG8udmFsdWVPZigpXSxvKX1pZih0JiYidG9KU09OImluIG8pcmV0dXJuIG4oby50b0pTT04oKSk7bGV0IHU9W10sZD1hKFtzLHVdLG8pO2ZvcihsZXQgaCBvZiBkU3IobykpKGV8fCFaTShBNyhvW2hdKSkpJiZ1LnB1c2goW24oaCksbihvW2hdKV0pO3JldHVybiBkfWNhc2UgMzpyZXR1cm4gYShbcyxvLnRvSVNPU3RyaW5nKCldLG8pO2Nhc2UgNDp7bGV0e3NvdXJjZTp1LGZsYWdzOmR9PW87cmV0dXJuIGEoW3Mse3NvdXJjZTp1LGZsYWdzOmR9XSxvKX1jYXNlIDU6e2xldCB1PVtdLGQ9YShbcyx1XSxvKTtmb3IobGV0W2gsZl1vZiBvKShlfHwhKFpNKEE3KGgpKXx8Wk0oQTcoZikpKSkmJnUucHVzaChbbihoKSxuKGYpXSk7cmV0dXJuIGR9Y2FzZSA2OntsZXQgdT1bXSxkPWEoW3MsdV0sbyk7Zm9yKGxldCBoIG9mIG8pKGV8fCFaTShBNyhoKSkpJiZ1LnB1c2gobihoKSk7cmV0dXJuIGR9fWxldHttZXNzYWdlOmN9PW87cmV0dXJuIGEoW3Mse25hbWU6bCxtZXNzYWdlOmN9XSxvKX07cmV0dXJuIG59LFhNPShlLHtqc29uOnQsbG9zc3k6cn09e30pPT57bGV0IGk9W107cmV0dXJuIHVTcighKHR8fHIpLCEhdCxuZXcgTWFwLGkpKGUpLGl9fSk7dmFyIFMwLFFNPXAoKCk9PntfQ2UoKTtMQ2UoKTtTMD10eXBlb2Ygc3RydWN0dXJlZENsb25lPT0iZnVuY3Rpb24iPyhlLHQpPT50JiYoImpzb24iaW4gdHx8Imxvc3N5ImluIHQpP1lNKFhNKGUsdCkpOnN0cnVjdHVyZWRDbG9uZShlKTooZSx0KT0+WU0oWE0oZSx0KSl9KTtmdW5jdGlvbiBBQ2UoZSl7cmV0dXJuIHQ7ZnVuY3Rpb24gdChyKXtsZXQgaT1yJiZyLnBvc2l0aW9uJiZyLnBvc2l0aW9uW2VdfHx7fTtpZih0eXBlb2YgaS5saW5lPT0ibnVtYmVyIiYmaS5saW5lPjAmJnR5cGVvZiBpLmNvbHVtbj09Im51bWJlciImJmkuY29sdW1uPjApcmV0dXJue2xpbmU6aS5saW5lLGNvbHVtbjppLmNvbHVtbixvZmZzZXQ6dHlwZW9mIGkub2Zmc2V0PT0ibnVtYmVyIiYmaS5vZmZzZXQ+LTE/aS5vZmZzZXQ6dm9pZCAwfX19ZnVuY3Rpb24gRDcoZSl7bGV0IHQ9S00oZSkscj1KTShlKTtpZih0JiZyKXJldHVybntzdGFydDp0LGVuZDpyfX12YXIgSk0sS00sRENlPXAoKCk9PntKTT1BQ2UoImVuZCIpLEtNPUFDZSgic3RhcnQiKX0pO3ZhciBlaz1wKCgpPT57RENlKCl9KTt2YXIgZTYsdGssSFU9cCgoKT0+e2U2PVsiYXJpYURlc2NyaWJlZEJ5IiwiYXJpYUxhYmVsIiwiYXJpYUxhYmVsbGVkQnkiXSx0az17YW5jZXN0b3JzOnt0Ym9keTpbInRhYmxlIl0sdGQ6WyJ0YWJsZSJdLHRoOlsidGFibGUiXSx0aGVhZDpbInRhYmxlIl0sdGZvb3Q6WyJ0YWJsZSJdLHRyOlsidGFibGUiXX0sYXR0cmlidXRlczp7YTpbLi4uZTYsImRhdGFGb290bm90ZUJhY2tyZWYiLCJkYXRhRm9vdG5vdGVSZWYiLFsiY2xhc3NOYW1lIiwiZGF0YS1mb290bm90ZS1iYWNrcmVmIl0sImhyZWYiXSxibG9ja3F1b3RlOlsiY2l0ZSJdLGNvZGU6W1siY2xhc3NOYW1lIiwvXmxhbmd1YWdlLS4vXV0sZGVsOlsiY2l0ZSJdLGRpdjpbIml0ZW1TY29wZSIsIml0ZW1UeXBlIl0sZGw6Wy4uLmU2XSxoMjpbWyJjbGFzc05hbWUiLCJzci1vbmx5Il1dLGltZzpbLi4uZTYsImxvbmdEZXNjIiwic3JjIl0saW5wdXQ6W1siZGlzYWJsZWQiLCEwXSxbInR5cGUiLCJjaGVja2JveCJdXSxpbnM6WyJjaXRlIl0sbGk6W1siY2xhc3NOYW1lIiwidGFzay1saXN0LWl0ZW0iXV0sb2w6Wy4uLmU2LFsiY2xhc3NOYW1lIiwiY29udGFpbnMtdGFzay1saXN0Il1dLHE6WyJjaXRlIl0sc2VjdGlvbjpbImRhdGFGb290bm90ZXMiLFsiY2xhc3NOYW1lIiwiZm9vdG5vdGVzIl1dLHNvdXJjZTpbInNyY1NldCJdLHN1bW1hcnk6Wy4uLmU2XSx0YWJsZTpbLi4uZTZdLHVsOlsuLi5lNixbImNsYXNzTmFtZSIsImNvbnRhaW5zLXRhc2stbGlzdCJdXSwiKiI6WyJhYmJyIiwiYWNjZXB0IiwiYWNjZXB0Q2hhcnNldCIsImFjY2Vzc0tleSIsImFjdGlvbiIsImFsaWduIiwiYWx0IiwiYXhpcyIsImJvcmRlciIsImNlbGxQYWRkaW5nIiwiY2VsbFNwYWNpbmciLCJjaGFyIiwiY2hhck9mZiIsImNoYXJTZXQiLCJjaGVja2VkIiwiY2xlYXIiLCJjb2xTcGFuIiwiY29sb3IiLCJjb2xzIiwiY29tcGFjdCIsImNvb3JkcyIsImRhdGVUaW1lIiwiZGlyIiwiZW5jVHlwZSIsImZyYW1lIiwiaFNwYWNlIiwiaGVhZGVycyIsImhlaWdodCIsImhyZWZMYW5nIiwiaHRtbEZvciIsImlkIiwiaXNNYXAiLCJpdGVtUHJvcCIsImxhYmVsIiwibGFuZyIsIm1heExlbmd0aCIsIm1lZGlhIiwibWV0aG9kIiwibXVsdGlwbGUiLCJuYW1lIiwibm9IcmVmIiwibm9TaGFkZSIsIm5vV3JhcCIsIm9wZW4iLCJwcm9tcHQiLCJyZWFkT25seSIsInJldiIsInJvd1NwYW4iLCJyb3dzIiwicnVsZXMiLCJzY29wZSIsInNlbGVjdGVkIiwic2hhcGUiLCJzaXplIiwic3BhbiIsInN0YXJ0Iiwic3VtbWFyeSIsInRhYkluZGV4IiwidGl0bGUiLCJ1c2VNYXAiLCJ2QWxpZ24iLCJ2YWx1ZSIsIndpZHRoIl19LGNsb2JiZXI6WyJhcmlhRGVzY3JpYmVkQnkiLCJhcmlhTGFiZWxsZWRCeSIsImlkIiwibmFtZSJdLGNsb2JiZXJQcmVmaXg6InVzZXItY29udGVudC0iLHByb3RvY29sczp7Y2l0ZTpbImh0dHAiLCJodHRwcyJdLGhyZWY6WyJodHRwIiwiaHR0cHMiLCJpcmMiLCJpcmNzIiwibWFpbHRvIiwieG1wcCJdLGxvbmdEZXNjOlsiaHR0cCIsImh0dHBzIl0sc3JjOlsiaHR0cCIsImh0dHBzIl19LHJlcXVpcmVkOntpbnB1dDp7ZGlzYWJsZWQ6ITAsdHlwZToiY2hlY2tib3gifX0sc3RyaXA6WyJzY3JpcHQiXSx0YWdOYW1lczpbImEiLCJiIiwiYmxvY2txdW90ZSIsImJyIiwiY29kZSIsImRkIiwiZGVsIiwiZGV0YWlscyIsImRpdiIsImRsIiwiZHQiLCJlbSIsImgxIiwiaDIiLCJoMyIsImg0IiwiaDUiLCJoNiIsImhyIiwiaSIsImltZyIsImlucHV0IiwiaW5zIiwia2JkIiwibGkiLCJvbCIsInAiLCJwaWN0dXJlIiwicHJlIiwicSIsInJwIiwicnQiLCJydWJ5IiwicyIsInNhbXAiLCJzZWN0aW9uIiwic291cmNlIiwic3BhbiIsInN0cmlrZSIsInN0cm9uZyIsInN1YiIsInN1bW1hcnkiLCJzdXAiLCJ0YWJsZSIsInRib2R5IiwidGQiLCJ0Zm9vdCIsInRoIiwidGhlYWQiLCJ0ciIsInR0IiwidWwiLCJ2YXIiXX19KTtmdW5jdGlvbiBxVShlLHQpe2xldCByPXt0eXBlOiJyb290IixjaGlsZHJlbjpbXX0saT17c2NoZW1hOnQ/ey4uLnRrLC4uLnR9OnRrLHN0YWNrOltdfSxhPUVDZShpLGUpO3JldHVybiBhJiYoQXJyYXkuaXNBcnJheShhKT9hLmxlbmd0aD09PTE/cj1hWzBdOnIuY2hpbGRyZW49YTpyPWEpLHJ9ZnVuY3Rpb24gRUNlKGUsdCl7aWYodCYmdHlwZW9mIHQ9PSJvYmplY3QiKXtsZXQgcj10O3N3aXRjaCh0eXBlb2Ygci50eXBlPT0ic3RyaW5nIj9yLnR5cGU6IiIpe2Nhc2UiY29tbWVudCI6cmV0dXJuIHBTcihlLHIpO2Nhc2UiZG9jdHlwZSI6cmV0dXJuIGhTcihlLHIpO2Nhc2UiZWxlbWVudCI6cmV0dXJuIGZTcihlLHIpO2Nhc2Uicm9vdCI6cmV0dXJuIG1TcihlLHIpO2Nhc2UidGV4dCI6cmV0dXJuIGdTcihlLHIpO2RlZmF1bHQ6fX19ZnVuY3Rpb24gcFNyKGUsdCl7aWYoZS5zY2hlbWEuYWxsb3dDb21tZW50cyl7bGV0IHI9dHlwZW9mIHQudmFsdWU9PSJzdHJpbmciP3QudmFsdWU6IiIsaT1yLmluZGV4T2YoIi0tPiIpLG49e3R5cGU6ImNvbW1lbnQiLHZhbHVlOmk8MD9yOnIuc2xpY2UoMCxpKX07cmV0dXJuIEU3KG4sdCksbn19ZnVuY3Rpb24gaFNyKGUsdCl7aWYoZS5zY2hlbWEuYWxsb3dEb2N0eXBlcyl7bGV0IHI9e3R5cGU6ImRvY3R5cGUifTtyZXR1cm4gRTcocix0KSxyfX1mdW5jdGlvbiBmU3IoZSx0KXtsZXQgcj10eXBlb2YgdC50YWdOYW1lPT0ic3RyaW5nIj90LnRhZ05hbWU6IiI7ZS5zdGFjay5wdXNoKHIpO2xldCBpPSRDZShlLHQuY2hpbGRyZW4pLGE9YlNyKGUsdC5wcm9wZXJ0aWVzKTtlLnN0YWNrLnBvcCgpO2xldCBuPSExO2lmKHImJnIhPT0iKiImJighZS5zY2hlbWEudGFnTmFtZXN8fGUuc2NoZW1hLnRhZ05hbWVzLmluY2x1ZGVzKHIpKSYmKG49ITAsZS5zY2hlbWEuYW5jZXN0b3JzJiZ6MC5jYWxsKGUuc2NoZW1hLmFuY2VzdG9ycyxyKSkpe2xldCBzPWUuc2NoZW1hLmFuY2VzdG9yc1tyXSxsPS0xO2ZvcihuPSExOysrbDxzLmxlbmd0aDspZS5zdGFjay5pbmNsdWRlcyhzW2xdKSYmKG49ITApfWlmKCFuKXJldHVybiBlLnNjaGVtYS5zdHJpcCYmIWUuc2NoZW1hLnN0cmlwLmluY2x1ZGVzKHIpP2k6dm9pZCAwO2xldCBvPXt0eXBlOiJlbGVtZW50Iix0YWdOYW1lOnIscHJvcGVydGllczphLGNoaWxkcmVuOml9O3JldHVybiBFNyhvLHQpLG99ZnVuY3Rpb24gbVNyKGUsdCl7bGV0IGk9e3R5cGU6InJvb3QiLGNoaWxkcmVuOiRDZShlLHQuY2hpbGRyZW4pfTtyZXR1cm4gRTcoaSx0KSxpfWZ1bmN0aW9uIGdTcihlLHQpe2xldCBpPXt0eXBlOiJ0ZXh0Iix2YWx1ZTp0eXBlb2YgdC52YWx1ZT09InN0cmluZyI/dC52YWx1ZToiIn07cmV0dXJuIEU3KGksdCksaX1mdW5jdGlvbiAkQ2UoZSx0KXtsZXQgcj1bXTtpZihBcnJheS5pc0FycmF5KHQpKXtsZXQgaT10LGE9LTE7Zm9yKDsrK2E8aS5sZW5ndGg7KXtsZXQgbj1FQ2UoZSxpW2FdKTtuJiYoQXJyYXkuaXNBcnJheShuKT9yLnB1c2goLi4ubik6ci5wdXNoKG4pKX19cmV0dXJuIHJ9ZnVuY3Rpb24gYlNyKGUsdCl7bGV0IHI9ZS5zdGFja1tlLnN0YWNrLmxlbmd0aC0xXSxpPWUuc2NoZW1hLmF0dHJpYnV0ZXMsYT1lLnNjaGVtYS5yZXF1aXJlZCxuPWkmJnowLmNhbGwoaSxyKT9pW3JdOnZvaWQgMCxvPWkmJnowLmNhbGwoaSwiKiIpP2lbIioiXTp2b2lkIDAscz10JiZ0eXBlb2YgdD09Im9iamVjdCI/dDp7fSxsPXt9LGM7Zm9yKGMgaW4gcylpZih6MC5jYWxsKHMsYykpe2xldCB1PXNbY10sZD1JQ2UoZSxOQ2UobixjKSxjLHUpO2Q9PW51bGwmJihkPUlDZShlLE5DZShvLGMpLGMsdSkpLGQhPW51bGwmJihsW2NdPWQpfWlmKGEmJnowLmNhbGwoYSxyKSl7bGV0IHU9YVtyXTtmb3IoYyBpbiB1KXowLmNhbGwodSxjKSYmIXowLmNhbGwobCxjKSYmKGxbY109dVtjXSl9cmV0dXJuIGx9ZnVuY3Rpb24gSUNlKGUsdCxyLGkpe3JldHVybiB0P0FycmF5LmlzQXJyYXkoaSk/dlNyKGUsdCxyLGkpOlBDZShlLHQscixpKTp2b2lkIDB9ZnVuY3Rpb24gdlNyKGUsdCxyLGkpe2xldCBhPS0xLG49W107Zm9yKDsrK2E8aS5sZW5ndGg7KXtsZXQgbz1QQ2UoZSx0LHIsaVthXSk7KHR5cGVvZiBvPT0ibnVtYmVyInx8dHlwZW9mIG89PSJzdHJpbmciKSYmbi5wdXNoKG8pfXJldHVybiBufWZ1bmN0aW9uIFBDZShlLHQscixpKXtpZighKHR5cGVvZiBpIT0iYm9vbGVhbiImJnR5cGVvZiBpIT0ibnVtYmVyIiYmdHlwZW9mIGkhPSJzdHJpbmciKSYmeFNyKGUscixpKSl7aWYodHlwZW9mIHQ9PSJvYmplY3QiJiZ0Lmxlbmd0aD4xKXtsZXQgYT0hMSxuPTA7Zm9yKDsrK248dC5sZW5ndGg7KXtsZXQgbz10W25dO2lmKG8mJnR5cGVvZiBvPT0ib2JqZWN0IiYmImZsYWdzImluIG8pe2lmKG8udGVzdChTdHJpbmcoaSkpKXthPSEwO2JyZWFrfX1lbHNlIGlmKG89PT1pKXthPSEwO2JyZWFrfX1pZighYSlyZXR1cm59cmV0dXJuIGUuc2NoZW1hLmNsb2JiZXImJmUuc2NoZW1hLmNsb2JiZXJQcmVmaXgmJmUuc2NoZW1hLmNsb2JiZXIuaW5jbHVkZXMocik/ZS5zY2hlbWEuY2xvYmJlclByZWZpeCtpOml9fWZ1bmN0aW9uIHhTcihlLHQscil7bGV0IGk9ZS5zY2hlbWEucHJvdG9jb2xzJiZ6MC5jYWxsKGUuc2NoZW1hLnByb3RvY29scyx0KT9lLnNjaGVtYS5wcm90b2NvbHNbdF06dm9pZCAwO2lmKCFpfHxpLmxlbmd0aD09PTApcmV0dXJuITA7bGV0IGE9U3RyaW5nKHIpLG49YS5pbmRleE9mKCI6Iiksbz1hLmluZGV4T2YoIj8iKSxzPWEuaW5kZXhPZigiIyIpLGw9YS5pbmRleE9mKCIvIik7aWYobjwwfHxsPi0xJiZuPmx8fG8+LTEmJm4+b3x8cz4tMSYmbj5zKXJldHVybiEwO2xldCBjPS0xO2Zvcig7KytjPGkubGVuZ3RoOyl7bGV0IHU9aVtjXTtpZihuPT09dS5sZW5ndGgmJmEuc2xpY2UoMCx1Lmxlbmd0aCk9PT11KXJldHVybiEwfXJldHVybiExfWZ1bmN0aW9uIEU3KGUsdCl7bGV0IHI9RDcodCk7dC5kYXRhJiYoZS5kYXRhPVMwKHQuZGF0YSkpLHImJihlLnBvc2l0aW9uPXIpfWZ1bmN0aW9uIE5DZShlLHQpe2xldCByLGk9LTE7aWYoZSlmb3IoOysraTxlLmxlbmd0aDspe2xldCBhPWVbaV0sbj10eXBlb2YgYT09InN0cmluZyI/YTphWzBdO2lmKG49PT10KXJldHVybiBhO249PT0iZGF0YSoiJiYocj1hKX1pZih0Lmxlbmd0aD40JiZ0LnNsaWNlKDAsNCkudG9Mb3dlckNhc2UoKT09PSJkYXRhIilyZXR1cm4gcn12YXIgejAsRkNlPXAoKCk9PntRTSgpO2VrKCk7SFUoKTt6MD17fS5oYXNPd25Qcm9wZXJ0eX0pO3ZhciBPQ2U9cCgoKT0+e0ZDZSgpO0hVKCl9KTtmdW5jdGlvbiBSQ2UoZSx0KXtsZXQgcj17dHlwZToiZWxlbWVudCIsdGFnTmFtZToiYmxvY2txdW90ZSIscHJvcGVydGllczp7fSxjaGlsZHJlbjplLndyYXAoZS5hbGwodCksITApfTtyZXR1cm4gZS5wYXRjaCh0LHIpLGUuYXBwbHlEYXRhKHQscil9dmFyIEJDZT1wKCgpPT57fSk7ZnVuY3Rpb24gSENlKGUsdCl7bGV0IHI9e3R5cGU6ImVsZW1lbnQiLHRhZ05hbWU6ImJyIixwcm9wZXJ0aWVzOnt9LGNoaWxkcmVuOltdfTtyZXR1cm4gZS5wYXRjaCh0LHIpLFtlLmFwcGx5RGF0YSh0LHIpLHt0eXBlOiJ0ZXh0Iix2YWx1ZTpgCmB9XX12YXIgcUNlPXAoKCk9Pnt9KTtmdW5jdGlvbiBqQ2UoZSx0KXtsZXQgcj10LnZhbHVlP3QudmFsdWUrYApgOiIiLGk9e30sYT10Lmxhbmc/dC5sYW5nLnNwbGl0KC9ccysvKTpbXTthLmxlbmd0aD4wJiYoaS5jbGFzc05hbWU9WyJsYW5ndWFnZS0iK2FbMF1dKTtsZXQgbj17dHlwZToiZWxlbWVudCIsdGFnTmFtZToiY29kZSIscHJvcGVydGllczppLGNoaWxkcmVuOlt7dHlwZToidGV4dCIsdmFsdWU6cn1dfTtyZXR1cm4gdC5tZXRhJiYobi5kYXRhPXttZXRhOnQubWV0YX0pLGUucGF0Y2godCxuKSxuPWUuYXBwbHlEYXRhKHQsbiksbj17dHlwZToiZWxlbWVudCIsdGFnTmFtZToicHJlIixwcm9wZXJ0aWVzOnt9LGNoaWxkcmVuOltuXX0sZS5wYXRjaCh0LG4pLG59dmFyIFZDZT1wKCgpPT57fSk7ZnVuY3Rpb24gVUNlKGUsdCl7bGV0IHI9e3R5cGU6ImVsZW1lbnQiLHRhZ05hbWU6ImRlbCIscHJvcGVydGllczp7fSxjaGlsZHJlbjplLmFsbCh0KX07cmV0dXJuIGUucGF0Y2godCxyKSxlLmFwcGx5RGF0YSh0LHIpfXZhciBXQ2U9cCgoKT0+e30pO2Z1bmN0aW9uIEdDZShlLHQpe2xldCByPXt0eXBlOiJlbGVtZW50Iix0YWdOYW1lOiJlbSIscHJvcGVydGllczp7fSxjaGlsZHJlbjplLmFsbCh0KX07cmV0dXJuIGUucGF0Y2godCxyKSxlLmFwcGx5RGF0YSh0LHIpfXZhciBZQ2U9cCgoKT0+e30pO2Z1bmN0aW9uIFpDZShlLHQpe2xldCByPXR5cGVvZiBlLm9wdGlvbnMuY2xvYmJlclByZWZpeD09InN0cmluZyI/ZS5vcHRpb25zLmNsb2JiZXJQcmVmaXg6InVzZXItY29udGVudC0iLGk9U3RyaW5nKHQuaWRlbnRpZmllcikudG9VcHBlckNhc2UoKSxhPUZuKGkudG9Mb3dlckNhc2UoKSksbj1lLmZvb3Rub3RlT3JkZXIuaW5kZXhPZihpKSxvLHM9ZS5mb290bm90ZUNvdW50cy5nZXQoaSk7cz09PXZvaWQgMD8ocz0wLGUuZm9vdG5vdGVPcmRlci5wdXNoKGkpLG89ZS5mb290bm90ZU9yZGVyLmxlbmd0aCk6bz1uKzEscys9MSxlLmZvb3Rub3RlQ291bnRzLnNldChpLHMpO2xldCBsPXt0eXBlOiJlbGVtZW50Iix0YWdOYW1lOiJhIixwcm9wZXJ0aWVzOntocmVmOiIjIityKyJmbi0iK2EsaWQ6cisiZm5yZWYtIithKyhzPjE/Ii0iK3M6IiIpLGRhdGFGb290bm90ZVJlZjohMCxhcmlhRGVzY3JpYmVkQnk6WyJmb290bm90ZS1sYWJlbCJdfSxjaGlsZHJlbjpbe3R5cGU6InRleHQiLHZhbHVlOlN0cmluZyhvKX1dfTtlLnBhdGNoKHQsbCk7bGV0IGM9e3R5cGU6ImVsZW1lbnQiLHRhZ05hbWU6InN1cCIscHJvcGVydGllczp7fSxjaGlsZHJlbjpbbF19O3JldHVybiBlLnBhdGNoKHQsYyksZS5hcHBseURhdGEodCxjKX12YXIgWENlPXAoKCk9PnttcygpfSk7ZnVuY3Rpb24gUUNlKGUsdCl7bGV0IHI9e3R5cGU6ImVsZW1lbnQiLHRhZ05hbWU6ImgiK3QuZGVwdGgscHJvcGVydGllczp7fSxjaGlsZHJlbjplLmFsbCh0KX07cmV0dXJuIGUucGF0Y2godCxyKSxlLmFwcGx5RGF0YSh0LHIpfXZhciBKQ2U9cCgoKT0+e30pO2Z1bmN0aW9uIEtDZShlLHQpe2lmKGUub3B0aW9ucy5hbGxvd0Rhbmdlcm91c0h0bWwpe2xldCByPXt0eXBlOiJyYXciLHZhbHVlOnQudmFsdWV9O3JldHVybiBlLnBhdGNoKHQsciksZS5hcHBseURhdGEodCxyKX19dmFyIGVUZT1wKCgpPT57fSk7ZnVuY3Rpb24gcmsoZSx0KXtsZXQgcj10LnJlZmVyZW5jZVR5cGUsaT0iXSI7aWYocj09PSJjb2xsYXBzZWQiP2krPSJbXSI6cj09PSJmdWxsIiYmKGkrPSJbIisodC5sYWJlbHx8dC5pZGVudGlmaWVyKSsiXSIpLHQudHlwZT09PSJpbWFnZVJlZmVyZW5jZSIpcmV0dXJuW3t0eXBlOiJ0ZXh0Iix2YWx1ZToiIVsiK3QuYWx0K2l9XTtsZXQgYT1lLmFsbCh0KSxuPWFbMF07biYmbi50eXBlPT09InRleHQiP24udmFsdWU9IlsiK24udmFsdWU6YS51bnNoaWZ0KHt0eXBlOiJ0ZXh0Iix2YWx1ZToiWyJ9KTtsZXQgbz1hW2EubGVuZ3RoLTFdO3JldHVybiBvJiZvLnR5cGU9PT0idGV4dCI/by52YWx1ZSs9aTphLnB1c2goe3R5cGU6InRleHQiLHZhbHVlOml9KSxhfXZhciBqVT1wKCgpPT57fSk7ZnVuY3Rpb24gdFRlKGUsdCl7bGV0IHI9U3RyaW5nKHQuaWRlbnRpZmllcikudG9VcHBlckNhc2UoKSxpPWUuZGVmaW5pdGlvbkJ5SWQuZ2V0KHIpO2lmKCFpKXJldHVybiByayhlLHQpO2xldCBhPXtzcmM6Rm4oaS51cmx8fCIiKSxhbHQ6dC5hbHR9O2kudGl0bGUhPT1udWxsJiZpLnRpdGxlIT09dm9pZCAwJiYoYS50aXRsZT1pLnRpdGxlKTtsZXQgbj17dHlwZToiZWxlbWVudCIsdGFnTmFtZToiaW1nIixwcm9wZXJ0aWVzOmEsY2hpbGRyZW46W119O3JldHVybiBlLnBhdGNoKHQsbiksZS5hcHBseURhdGEodCxuKX12YXIgclRlPXAoKCk9PnttcygpO2pVKCl9KTtmdW5jdGlvbiBpVGUoZSx0KXtsZXQgcj17c3JjOkZuKHQudXJsKX07dC5hbHQhPT1udWxsJiZ0LmFsdCE9PXZvaWQgMCYmKHIuYWx0PXQuYWx0KSx0LnRpdGxlIT09bnVsbCYmdC50aXRsZSE9PXZvaWQgMCYmKHIudGl0bGU9dC50aXRsZSk7bGV0IGk9e3R5cGU6ImVsZW1lbnQiLHRhZ05hbWU6ImltZyIscHJvcGVydGllczpyLGNoaWxkcmVuOltdfTtyZXR1cm4gZS5wYXRjaCh0LGkpLGUuYXBwbHlEYXRhKHQsaSl9dmFyIGFUZT1wKCgpPT57bXMoKX0pO2Z1bmN0aW9uIG5UZShlLHQpe2xldCByPXt0eXBlOiJ0ZXh0Iix2YWx1ZTp0LnZhbHVlLnJlcGxhY2UoL1xyP1xufFxyL2csIiAiKX07ZS5wYXRjaCh0LHIpO2xldCBpPXt0eXBlOiJlbGVtZW50Iix0YWdOYW1lOiJjb2RlIixwcm9wZXJ0aWVzOnt9LGNoaWxkcmVuOltyXX07cmV0dXJuIGUucGF0Y2godCxpKSxlLmFwcGx5RGF0YSh0LGkpfXZhciBvVGU9cCgoKT0+e30pO2Z1bmN0aW9uIHNUZShlLHQpe2xldCByPVN0cmluZyh0LmlkZW50aWZpZXIpLnRvVXBwZXJDYXNlKCksaT1lLmRlZmluaXRpb25CeUlkLmdldChyKTtpZighaSlyZXR1cm4gcmsoZSx0KTtsZXQgYT17aHJlZjpGbihpLnVybHx8IiIpfTtpLnRpdGxlIT09bnVsbCYmaS50aXRsZSE9PXZvaWQgMCYmKGEudGl0bGU9aS50aXRsZSk7bGV0IG49e3R5cGU6ImVsZW1lbnQiLHRhZ05hbWU6ImEiLHByb3BlcnRpZXM6YSxjaGlsZHJlbjplLmFsbCh0KX07cmV0dXJuIGUucGF0Y2godCxuKSxlLmFwcGx5RGF0YSh0LG4pfXZhciBsVGU9cCgoKT0+e21zKCk7alUoKX0pO2Z1bmN0aW9uIGNUZShlLHQpe2xldCByPXtocmVmOkZuKHQudXJsKX07dC50aXRsZSE9PW51bGwmJnQudGl0bGUhPT12b2lkIDAmJihyLnRpdGxlPXQudGl0bGUpO2xldCBpPXt0eXBlOiJlbGVtZW50Iix0YWdOYW1lOiJhIixwcm9wZXJ0aWVzOnIsY2hpbGRyZW46ZS5hbGwodCl9O3JldHVybiBlLnBhdGNoKHQsaSksZS5hcHBseURhdGEodCxpKX12YXIgZFRlPXAoKCk9PnttcygpfSk7ZnVuY3Rpb24gcFRlKGUsdCxyKXtsZXQgaT1lLmFsbCh0KSxhPXI/eVNyKHIpOnVUZSh0KSxuPXt9LG89W107aWYodHlwZW9mIHQuY2hlY2tlZD09ImJvb2xlYW4iKXtsZXQgdT1pWzBdLGQ7dSYmdS50eXBlPT09ImVsZW1lbnQiJiZ1LnRhZ05hbWU9PT0icCI/ZD11OihkPXt0eXBlOiJlbGVtZW50Iix0YWdOYW1lOiJwIixwcm9wZXJ0aWVzOnt9LGNoaWxkcmVuOltdfSxpLnVuc2hpZnQoZCkpLGQuY2hpbGRyZW4ubGVuZ3RoPjAmJmQuY2hpbGRyZW4udW5zaGlmdCh7dHlwZToidGV4dCIsdmFsdWU6IiAifSksZC5jaGlsZHJlbi51bnNoaWZ0KHt0eXBlOiJlbGVtZW50Iix0YWdOYW1lOiJpbnB1dCIscHJvcGVydGllczp7dHlwZToiY2hlY2tib3giLGNoZWNrZWQ6dC5jaGVja2VkLGRpc2FibGVkOiEwfSxjaGlsZHJlbjpbXX0pLG4uY2xhc3NOYW1lPVsidGFzay1saXN0LWl0ZW0iXX1sZXQgcz0tMTtmb3IoOysrczxpLmxlbmd0aDspe2xldCB1PWlbc107KGF8fHMhPT0wfHx1LnR5cGUhPT0iZWxlbWVudCJ8fHUudGFnTmFtZSE9PSJwIikmJm8ucHVzaCh7dHlwZToidGV4dCIsdmFsdWU6YApgfSksdS50eXBlPT09ImVsZW1lbnQiJiZ1LnRhZ05hbWU9PT0icCImJiFhP28ucHVzaCguLi51LmNoaWxkcmVuKTpvLnB1c2godSl9bGV0IGw9aVtpLmxlbmd0aC0xXTtsJiYoYXx8bC50eXBlIT09ImVsZW1lbnQifHxsLnRhZ05hbWUhPT0icCIpJiZvLnB1c2goe3R5cGU6InRleHQiLHZhbHVlOmAKYH0pO2xldCBjPXt0eXBlOiJlbGVtZW50Iix0YWdOYW1lOiJsaSIscHJvcGVydGllczpuLGNoaWxkcmVuOm99O3JldHVybiBlLnBhdGNoKHQsYyksZS5hcHBseURhdGEodCxjKX1mdW5jdGlvbiB5U3IoZSl7bGV0IHQ9ITE7aWYoZS50eXBlPT09Imxpc3QiKXt0PWUuc3ByZWFkfHwhMTtsZXQgcj1lLmNoaWxkcmVuLGk9LTE7Zm9yKDshdCYmKytpPHIubGVuZ3RoOyl0PXVUZShyW2ldKX1yZXR1cm4gdH1mdW5jdGlvbiB1VGUoZSl7bGV0IHQ9ZS5zcHJlYWQ7cmV0dXJuIHQ/P2UuY2hpbGRyZW4ubGVuZ3RoPjF9dmFyIGhUZT1wKCgpPT57fSk7ZnVuY3Rpb24gZlRlKGUsdCl7bGV0IHI9e30saT1lLmFsbCh0KSxhPS0xO2Zvcih0eXBlb2YgdC5zdGFydD09Im51bWJlciImJnQuc3RhcnQhPT0xJiYoci5zdGFydD10LnN0YXJ0KTsrK2E8aS5sZW5ndGg7KXtsZXQgbz1pW2FdO2lmKG8udHlwZT09PSJlbGVtZW50IiYmby50YWdOYW1lPT09ImxpIiYmby5wcm9wZXJ0aWVzJiZBcnJheS5pc0FycmF5KG8ucHJvcGVydGllcy5jbGFzc05hbWUpJiZvLnByb3BlcnRpZXMuY2xhc3NOYW1lLmluY2x1ZGVzKCJ0YXNrLWxpc3QtaXRlbSIpKXtyLmNsYXNzTmFtZT1bImNvbnRhaW5zLXRhc2stbGlzdCJdO2JyZWFrfX1sZXQgbj17dHlwZToiZWxlbWVudCIsdGFnTmFtZTp0Lm9yZGVyZWQ/Im9sIjoidWwiLHByb3BlcnRpZXM6cixjaGlsZHJlbjplLndyYXAoaSwhMCl9O3JldHVybiBlLnBhdGNoKHQsbiksZS5hcHBseURhdGEodCxuKX12YXIgbVRlPXAoKCk9Pnt9KTtmdW5jdGlvbiBnVGUoZSx0KXtsZXQgcj17dHlwZToiZWxlbWVudCIsdGFnTmFtZToicCIscHJvcGVydGllczp7fSxjaGlsZHJlbjplLmFsbCh0KX07cmV0dXJuIGUucGF0Y2godCxyKSxlLmFwcGx5RGF0YSh0LHIpfXZhciBiVGU9cCgoKT0+e30pO2Z1bmN0aW9uIHZUZShlLHQpe2xldCByPXt0eXBlOiJyb290IixjaGlsZHJlbjplLndyYXAoZS5hbGwodCkpfTtyZXR1cm4gZS5wYXRjaCh0LHIpLGUuYXBwbHlEYXRhKHQscil9dmFyIHhUZT1wKCgpPT57fSk7ZnVuY3Rpb24geVRlKGUsdCl7bGV0IHI9e3R5cGU6ImVsZW1lbnQiLHRhZ05hbWU6InN0cm9uZyIscHJvcGVydGllczp7fSxjaGlsZHJlbjplLmFsbCh0KX07cmV0dXJuIGUucGF0Y2godCxyKSxlLmFwcGx5RGF0YSh0LHIpfXZhciB3VGU9cCgoKT0+e30pO2Z1bmN0aW9uIE1UZShlLHQpe2xldCByPWUuYWxsKHQpLGk9ci5zaGlmdCgpLGE9W107aWYoaSl7bGV0IG89e3R5cGU6ImVsZW1lbnQiLHRhZ05hbWU6InRoZWFkIixwcm9wZXJ0aWVzOnt9LGNoaWxkcmVuOmUud3JhcChbaV0sITApfTtlLnBhdGNoKHQuY2hpbGRyZW5bMF0sbyksYS5wdXNoKG8pfWlmKHIubGVuZ3RoPjApe2xldCBvPXt0eXBlOiJlbGVtZW50Iix0YWdOYW1lOiJ0Ym9keSIscHJvcGVydGllczp7fSxjaGlsZHJlbjplLndyYXAociwhMCl9LHM9S00odC5jaGlsZHJlblsxXSksbD1KTSh0LmNoaWxkcmVuW3QuY2hpbGRyZW4ubGVuZ3RoLTFdKTtzJiZsJiYoby5wb3NpdGlvbj17c3RhcnQ6cyxlbmQ6bH0pLGEucHVzaChvKX1sZXQgbj17dHlwZToiZWxlbWVudCIsdGFnTmFtZToidGFibGUiLHByb3BlcnRpZXM6e30sY2hpbGRyZW46ZS53cmFwKGEsITApfTtyZXR1cm4gZS5wYXRjaCh0LG4pLGUuYXBwbHlEYXRhKHQsbil9dmFyIGtUZT1wKCgpPT57ZWsoKX0pO2Z1bmN0aW9uIFNUZShlLHQscil7bGV0IGk9cj9yLmNoaWxkcmVuOnZvaWQgMCxuPShpP2kuaW5kZXhPZih0KToxKT09PTA/InRoIjoidGQiLG89ciYmci50eXBlPT09InRhYmxlIj9yLmFsaWduOnZvaWQgMCxzPW8/by5sZW5ndGg6dC5jaGlsZHJlbi5sZW5ndGgsbD0tMSxjPVtdO2Zvcig7KytsPHM7KXtsZXQgZD10LmNoaWxkcmVuW2xdLGg9e30sZj1vP29bbF06dm9pZCAwO2YmJihoLmFsaWduPWYpO2xldCB4PXt0eXBlOiJlbGVtZW50Iix0YWdOYW1lOm4scHJvcGVydGllczpoLGNoaWxkcmVuOltdfTtkJiYoeC5jaGlsZHJlbj1lLmFsbChkKSxlLnBhdGNoKGQseCkseD1lLmFwcGx5RGF0YShkLHgpKSxjLnB1c2goeCl9bGV0IHU9e3R5cGU6ImVsZW1lbnQiLHRhZ05hbWU6InRyIixwcm9wZXJ0aWVzOnt9LGNoaWxkcmVuOmUud3JhcChjLCEwKX07cmV0dXJuIGUucGF0Y2godCx1KSxlLmFwcGx5RGF0YSh0LHUpfXZhciB6VGU9cCgoKT0+e30pO2Z1bmN0aW9uIENUZShlLHQpe2xldCByPXt0eXBlOiJlbGVtZW50Iix0YWdOYW1lOiJ0ZCIscHJvcGVydGllczp7fSxjaGlsZHJlbjplLmFsbCh0KX07cmV0dXJuIGUucGF0Y2godCxyKSxlLmFwcGx5RGF0YSh0LHIpfXZhciBUVGU9cCgoKT0+e30pO2Z1bmN0aW9uIExUZShlKXtsZXQgdD1TdHJpbmcoZSkscj0vXHI/XG58XHIvZyxpPXIuZXhlYyh0KSxhPTAsbj1bXTtmb3IoO2k7KW4ucHVzaChfVGUodC5zbGljZShhLGkuaW5kZXgpLGE+MCwhMCksaVswXSksYT1pLmluZGV4K2lbMF0ubGVuZ3RoLGk9ci5leGVjKHQpO3JldHVybiBuLnB1c2goX1RlKHQuc2xpY2UoYSksYT4wLCExKSksbi5qb2luKCIiKX1mdW5jdGlvbiBfVGUoZSx0LHIpe2xldCBpPTAsYT1lLmxlbmd0aDtpZih0KXtsZXQgbj1lLmNvZGVQb2ludEF0KGkpO2Zvcig7bj09PTl8fG49PT0zMjspaSsrLG49ZS5jb2RlUG9pbnRBdChpKX1pZihyKXtsZXQgbj1lLmNvZGVQb2ludEF0KGEtMSk7Zm9yKDtuPT09OXx8bj09PTMyOylhLS0sbj1lLmNvZGVQb2ludEF0KGEtMSl9cmV0dXJuIGE+aT9lLnNsaWNlKGksYSk6IiJ9dmFyIHRqMSxyajEsQVRlPXAoKCk9Pnt0ajE9OSxyajE9MzJ9KTtmdW5jdGlvbiBEVGUoZSx0KXtsZXQgcj17dHlwZToidGV4dCIsdmFsdWU6TFRlKFN0cmluZyh0LnZhbHVlKSl9O3JldHVybiBlLnBhdGNoKHQsciksZS5hcHBseURhdGEodCxyKX12YXIgRVRlPXAoKCk9PntBVGUoKX0pO2Z1bmN0aW9uICRUZShlLHQpe2xldCByPXt0eXBlOiJlbGVtZW50Iix0YWdOYW1lOiJociIscHJvcGVydGllczp7fSxjaGlsZHJlbjpbXX07cmV0dXJuIGUucGF0Y2godCxyKSxlLmFwcGx5RGF0YSh0LHIpfXZhciBJVGU9cCgoKT0+e30pO2Z1bmN0aW9uIGlrKCl7fXZhciBWVSxVVT1wKCgpPT57QkNlKCk7cUNlKCk7VkNlKCk7V0NlKCk7WUNlKCk7WENlKCk7SkNlKCk7ZVRlKCk7clRlKCk7YVRlKCk7b1RlKCk7bFRlKCk7ZFRlKCk7aFRlKCk7bVRlKCk7YlRlKCk7eFRlKCk7d1RlKCk7a1RlKCk7elRlKCk7VFRlKCk7RVRlKCk7SVRlKCk7VlU9e2Jsb2NrcXVvdGU6UkNlLGJyZWFrOkhDZSxjb2RlOmpDZSxkZWxldGU6VUNlLGVtcGhhc2lzOkdDZSxmb290bm90ZVJlZmVyZW5jZTpaQ2UsaGVhZGluZzpRQ2UsaHRtbDpLQ2UsaW1hZ2VSZWZlcmVuY2U6dFRlLGltYWdlOmlUZSxpbmxpbmVDb2RlOm5UZSxsaW5rUmVmZXJlbmNlOnNUZSxsaW5rOmNUZSxsaXN0SXRlbTpwVGUsbGlzdDpmVGUscGFyYWdyYXBoOmdUZSxyb290OnZUZSxzdHJvbmc6eVRlLHRhYmxlOk1UZSx0YWJsZUNlbGw6Q1RlLHRhYmxlUm93OlNUZSx0ZXh0OkRUZSx0aGVtYXRpY0JyZWFrOiRUZSx0b21sOmlrLHlhbWw6aWssZGVmaW5pdGlvbjppayxmb290bm90ZURlZmluaXRpb246aWt9fSk7ZnVuY3Rpb24gUFRlKGUsdCl7bGV0IHI9W3t0eXBlOiJ0ZXh0Iix2YWx1ZToiXHUyMUE5In1dO3JldHVybiB0PjEmJnIucHVzaCh7dHlwZToiZWxlbWVudCIsdGFnTmFtZToic3VwIixwcm9wZXJ0aWVzOnt9LGNoaWxkcmVuOlt7dHlwZToidGV4dCIsdmFsdWU6U3RyaW5nKHQpfV19KSxyfWZ1bmN0aW9uIE5UZShlLHQpe3JldHVybiJCYWNrIHRvIHJlZmVyZW5jZSAiKyhlKzEpKyh0PjE/Ii0iK3Q6IiIpfWZ1bmN0aW9uIEZUZShlKXtsZXQgdD10eXBlb2YgZS5vcHRpb25zLmNsb2JiZXJQcmVmaXg9PSJzdHJpbmciP2Uub3B0aW9ucy5jbG9iYmVyUHJlZml4OiJ1c2VyLWNvbnRlbnQtIixyPWUub3B0aW9ucy5mb290bm90ZUJhY2tDb250ZW50fHxQVGUsaT1lLm9wdGlvbnMuZm9vdG5vdGVCYWNrTGFiZWx8fE5UZSxhPWUub3B0aW9ucy5mb290bm90ZUxhYmVsfHwiRm9vdG5vdGVzIixuPWUub3B0aW9ucy5mb290bm90ZUxhYmVsVGFnTmFtZXx8ImgyIixvPWUub3B0aW9ucy5mb290bm90ZUxhYmVsUHJvcGVydGllc3x8e2NsYXNzTmFtZTpbInNyLW9ubHkiXX0scz1bXSxsPS0xO2Zvcig7KytsPGUuZm9vdG5vdGVPcmRlci5sZW5ndGg7KXtsZXQgYz1lLmZvb3Rub3RlQnlJZC5nZXQoZS5mb290bm90ZU9yZGVyW2xdKTtpZighYyljb250aW51ZTtsZXQgdT1lLmFsbChjKSxkPVN0cmluZyhjLmlkZW50aWZpZXIpLnRvVXBwZXJDYXNlKCksaD1GbihkLnRvTG93ZXJDYXNlKCkpLGY9MCx4PVtdLHY9ZS5mb290bm90ZUNvdW50cy5nZXQoZCk7Zm9yKDt2IT09dm9pZCAwJiYrK2Y8PXY7KXt4Lmxlbmd0aD4wJiZ4LnB1c2goe3R5cGU6InRleHQiLHZhbHVlOiIgIn0pO2xldCB3PXR5cGVvZiByPT0ic3RyaW5nIj9yOnIobCxmKTt0eXBlb2Ygdz09InN0cmluZyImJih3PXt0eXBlOiJ0ZXh0Iix2YWx1ZTp3fSkseC5wdXNoKHt0eXBlOiJlbGVtZW50Iix0YWdOYW1lOiJhIixwcm9wZXJ0aWVzOntocmVmOiIjIit0KyJmbnJlZi0iK2grKGY+MT8iLSIrZjoiIiksZGF0YUZvb3Rub3RlQmFja3JlZjoiIixhcmlhTGFiZWw6dHlwZW9mIGk9PSJzdHJpbmciP2k6aShsLGYpLGNsYXNzTmFtZTpbImRhdGEtZm9vdG5vdGUtYmFja3JlZiJdfSxjaGlsZHJlbjpBcnJheS5pc0FycmF5KHcpP3c6W3ddfSl9bGV0IGI9dVt1Lmxlbmd0aC0xXTtpZihiJiZiLnR5cGU9PT0iZWxlbWVudCImJmIudGFnTmFtZT09PSJwIil7bGV0IHc9Yi5jaGlsZHJlbltiLmNoaWxkcmVuLmxlbmd0aC0xXTt3JiZ3LnR5cGU9PT0idGV4dCI/dy52YWx1ZSs9IiAiOmIuY2hpbGRyZW4ucHVzaCh7dHlwZToidGV4dCIsdmFsdWU6IiAifSksYi5jaGlsZHJlbi5wdXNoKC4uLngpfWVsc2UgdS5wdXNoKC4uLngpO2xldCB5PXt0eXBlOiJlbGVtZW50Iix0YWdOYW1lOiJsaSIscHJvcGVydGllczp7aWQ6dCsiZm4tIitofSxjaGlsZHJlbjplLndyYXAodSwhMCl9O2UucGF0Y2goYyx5KSxzLnB1c2goeSl9aWYocy5sZW5ndGghPT0wKXJldHVybnt0eXBlOiJlbGVtZW50Iix0YWdOYW1lOiJzZWN0aW9uIixwcm9wZXJ0aWVzOntkYXRhRm9vdG5vdGVzOiEwLGNsYXNzTmFtZTpbImZvb3Rub3RlcyJdfSxjaGlsZHJlbjpbe3R5cGU6ImVsZW1lbnQiLHRhZ05hbWU6bixwcm9wZXJ0aWVzOnsuLi5TMChvKSxpZDoiZm9vdG5vdGUtbGFiZWwifSxjaGlsZHJlbjpbe3R5cGU6InRleHQiLHZhbHVlOmF9XX0se3R5cGU6InRleHQiLHZhbHVlOmAKYH0se3R5cGU6ImVsZW1lbnQiLHRhZ05hbWU6Im9sIixwcm9wZXJ0aWVzOnt9LGNoaWxkcmVuOmUud3JhcChzLCEwKX0se3R5cGU6InRleHQiLHZhbHVlOmAKYH1dfX12YXIgV1U9cCgoKT0+e1FNKCk7bXMoKX0pO2Z1bmN0aW9uIFJUZShlLHQpe2xldCByPXR8fHdTcixpPW5ldyBNYXAsYT1uZXcgTWFwLG49bmV3IE1hcCxvPXsuLi5WVSwuLi5yLmhhbmRsZXJzfSxzPXthbGw6YyxhcHBseURhdGE6a1NyLGRlZmluaXRpb25CeUlkOmksZm9vdG5vdGVCeUlkOmEsZm9vdG5vdGVDb3VudHM6bixmb290bm90ZU9yZGVyOltdLGhhbmRsZXJzOm8sb25lOmwsb3B0aW9uczpyLHBhdGNoOk1Tcix3cmFwOnpTcn07cmV0dXJuIGc3KGUsZnVuY3Rpb24odSl7aWYodS50eXBlPT09ImRlZmluaXRpb24ifHx1LnR5cGU9PT0iZm9vdG5vdGVEZWZpbml0aW9uIil7bGV0IGQ9dS50eXBlPT09ImRlZmluaXRpb24iP2k6YSxoPVN0cmluZyh1LmlkZW50aWZpZXIpLnRvVXBwZXJDYXNlKCk7ZC5oYXMoaCl8fGQuc2V0KGgsdSl9fSkscztmdW5jdGlvbiBsKHUsZCl7bGV0IGg9dS50eXBlLGY9cy5oYW5kbGVyc1toXTtpZihHVS5jYWxsKHMuaGFuZGxlcnMsaCkmJmYpcmV0dXJuIGYocyx1LGQpO2lmKHMub3B0aW9ucy5wYXNzVGhyb3VnaCYmcy5vcHRpb25zLnBhc3NUaHJvdWdoLmluY2x1ZGVzKGgpKXtpZigiY2hpbGRyZW4iaW4gdSl7bGV0e2NoaWxkcmVuOnYsLi4uYn09dSx5PVMwKGIpO3JldHVybiB5LmNoaWxkcmVuPXMuYWxsKHUpLHl9cmV0dXJuIFMwKHUpfXJldHVybihzLm9wdGlvbnMudW5rbm93bkhhbmRsZXJ8fFNTcikocyx1LGQpfWZ1bmN0aW9uIGModSl7bGV0IGQ9W107aWYoImNoaWxkcmVuImluIHUpe2xldCBoPXUuY2hpbGRyZW4sZj0tMTtmb3IoOysrZjxoLmxlbmd0aDspe2xldCB4PXMub25lKGhbZl0sdSk7aWYoeCl7aWYoZiYmaFtmLTFdLnR5cGU9PT0iYnJlYWsiJiYoIUFycmF5LmlzQXJyYXkoeCkmJngudHlwZT09PSJ0ZXh0IiYmKHgudmFsdWU9T1RlKHgudmFsdWUpKSwhQXJyYXkuaXNBcnJheSh4KSYmeC50eXBlPT09ImVsZW1lbnQiKSl7bGV0IHY9eC5jaGlsZHJlblswXTt2JiZ2LnR5cGU9PT0idGV4dCImJih2LnZhbHVlPU9UZSh2LnZhbHVlKSl9QXJyYXkuaXNBcnJheSh4KT9kLnB1c2goLi4ueCk6ZC5wdXNoKHgpfX19cmV0dXJuIGR9fWZ1bmN0aW9uIE1TcihlLHQpe2UucG9zaXRpb24mJih0LnBvc2l0aW9uPUQ3KGUpKX1mdW5jdGlvbiBrU3IoZSx0KXtsZXQgcj10O2lmKGUmJmUuZGF0YSl7bGV0IGk9ZS5kYXRhLmhOYW1lLGE9ZS5kYXRhLmhDaGlsZHJlbixuPWUuZGF0YS5oUHJvcGVydGllcztpZih0eXBlb2YgaT09InN0cmluZyIpaWYoci50eXBlPT09ImVsZW1lbnQiKXIudGFnTmFtZT1pO2Vsc2V7bGV0IG89ImNoaWxkcmVuImluIHI/ci5jaGlsZHJlbjpbcl07cj17dHlwZToiZWxlbWVudCIsdGFnTmFtZTppLHByb3BlcnRpZXM6e30sY2hpbGRyZW46b319ci50eXBlPT09ImVsZW1lbnQiJiZuJiZPYmplY3QuYXNzaWduKHIucHJvcGVydGllcyxTMChuKSksImNoaWxkcmVuImluIHImJnIuY2hpbGRyZW4mJmEhPT1udWxsJiZhIT09dm9pZCAwJiYoci5jaGlsZHJlbj1hKX1yZXR1cm4gcn1mdW5jdGlvbiBTU3IoZSx0KXtsZXQgcj10LmRhdGF8fHt9LGk9InZhbHVlImluIHQmJiEoR1UuY2FsbChyLCJoUHJvcGVydGllcyIpfHxHVS5jYWxsKHIsImhDaGlsZHJlbiIpKT97dHlwZToidGV4dCIsdmFsdWU6dC52YWx1ZX06e3R5cGU6ImVsZW1lbnQiLHRhZ05hbWU6ImRpdiIscHJvcGVydGllczp7fSxjaGlsZHJlbjplLmFsbCh0KX07cmV0dXJuIGUucGF0Y2godCxpKSxlLmFwcGx5RGF0YSh0LGkpfWZ1bmN0aW9uIHpTcihlLHQpe2xldCByPVtdLGk9LTE7Zm9yKHQmJnIucHVzaCh7dHlwZToidGV4dCIsdmFsdWU6YApgfSk7KytpPGUubGVuZ3RoOylpJiZyLnB1c2goe3R5cGU6InRleHQiLHZhbHVlOmAKYH0pLHIucHVzaChlW2ldKTtyZXR1cm4gdCYmZS5sZW5ndGg+MCYmci5wdXNoKHt0eXBlOiJ0ZXh0Iix2YWx1ZTpgCmB9KSxyfWZ1bmN0aW9uIE9UZShlKXtsZXQgdD0wLHI9ZS5jaGFyQ29kZUF0KHQpO2Zvcig7cj09PTl8fHI9PT0zMjspdCsrLHI9ZS5jaGFyQ29kZUF0KHQpO3JldHVybiBlLnNsaWNlKHQpfXZhciBHVSx3U3IsQlRlPXAoKCk9PntRTSgpO3ZWKCk7ZWsoKTtVVSgpO0dVPXt9Lmhhc093blByb3BlcnR5LHdTcj17fX0pO2Z1bmN0aW9uIFlVKGUsdCl7bGV0IHI9UlRlKGUsdCksaT1yLm9uZShlLHZvaWQgMCksYT1GVGUociksbj1BcnJheS5pc0FycmF5KGkpP3t0eXBlOiJyb290IixjaGlsZHJlbjppfTppfHx7dHlwZToicm9vdCIsY2hpbGRyZW46W119O3JldHVybiBhJiYoImNoaWxkcmVuImluIG4sbi5jaGlsZHJlbi5wdXNoKHt0eXBlOiJ0ZXh0Iix2YWx1ZTpgCmB9LGEpKSxufXZhciBIVGU9cCgoKT0+e2IwKCk7V1UoKTtCVGUoKX0pO3ZhciBxVGU9cCgoKT0+e1VVKCk7SFRlKCk7V1UoKX0pO3ZhciBqVGUsVlRlPXAoKCk9PntqVGU9WyJhcmVhIiwiYmFzZSIsImJhc2Vmb250IiwiYmdzb3VuZCIsImJyIiwiY29sIiwiY29tbWFuZCIsImVtYmVkIiwiZnJhbWUiLCJociIsImltYWdlIiwiaW1nIiwiaW5wdXQiLCJrZXlnZW4iLCJsaW5rIiwibWV0YSIsInBhcmFtIiwic291cmNlIiwidHJhY2siLCJ3YnIiXX0pO3ZhciAkbCxaVT1wKCgpPT57JGw9Y2xhc3N7Y29uc3RydWN0b3IodCxyLGkpe3RoaXMubm9ybWFsPXIsdGhpcy5wcm9wZXJ0eT10LGkmJih0aGlzLnNwYWNlPWkpfX07JGwucHJvdG90eXBlLm5vcm1hbD17fSwkbC5wcm90b3R5cGUucHJvcGVydHk9e30sJGwucHJvdG90eXBlLnNwYWNlPXZvaWQgMH0pO2Z1bmN0aW9uIFhVKGUsdCl7bGV0IHI9e30saT17fTtmb3IobGV0IGEgb2YgZSlPYmplY3QuYXNzaWduKHIsYS5wcm9wZXJ0eSksT2JqZWN0LmFzc2lnbihpLGEubm9ybWFsKTtyZXR1cm4gbmV3ICRsKHIsaSx0KX12YXIgVVRlPXAoKCk9PntaVSgpfSk7ZnVuY3Rpb24gRXUoZSl7cmV0dXJuIGUudG9Mb3dlckNhc2UoKX12YXIgYWs9cCgoKT0+e30pO3ZhciBBaSxRVT1wKCgpPT57QWk9Y2xhc3N7Y29uc3RydWN0b3IodCxyKXt0aGlzLmF0dHJpYnV0ZT1yLHRoaXMucHJvcGVydHk9dH19O0FpLnByb3RvdHlwZS5hdHRyaWJ1dGU9IiIsQWkucHJvdG90eXBlLmJvb2xlYW5pc2g9ITEsQWkucHJvdG90eXBlLmJvb2xlYW49ITEsQWkucHJvdG90eXBlLmNvbW1hT3JTcGFjZVNlcGFyYXRlZD0hMSxBaS5wcm90b3R5cGUuY29tbWFTZXBhcmF0ZWQ9ITEsQWkucHJvdG90eXBlLmRlZmluZWQ9ITEsQWkucHJvdG90eXBlLm11c3RVc2VQcm9wZXJ0eT0hMSxBaS5wcm90b3R5cGUubnVtYmVyPSExLEFpLnByb3RvdHlwZS5vdmVybG9hZGVkQm9vbGVhbj0hMSxBaS5wcm90b3R5cGUucHJvcGVydHk9IiIsQWkucHJvdG90eXBlLnNwYWNlU2VwYXJhdGVkPSExLEFpLnByb3RvdHlwZS5zcGFjZT12b2lkIDB9KTt2YXIgJDc9e307RmUoJDcse2Jvb2xlYW46KCk9PkR0LGJvb2xlYW5pc2g6KCk9PkExLGNvbW1hT3JTcGFjZVNlcGFyYXRlZDooKT0+Ym4sY29tbWFTZXBhcmF0ZWQ6KCk9PkMwLG51bWJlcjooKT0+SGUsb3ZlcmxvYWRlZEJvb2xlYW46KCk9Pm5rLHNwYWNlU2VwYXJhdGVkOigpPT5Icn0pO2Z1bmN0aW9uIHQ2KCl7cmV0dXJuIDIqKisrQ1NyfXZhciBDU3IsRHQsQTEsbmssSGUsSHIsQzAsYm4sSTc9cCgoKT0+e0NTcj0wLER0PXQ2KCksQTE9dDYoKSxuaz10NigpLEhlPXQ2KCksSHI9dDYoKSxDMD10NigpLGJuPXQ2KCl9KTtmdW5jdGlvbiBXVGUoZSx0LHIpe3ImJihlW3RdPXIpfXZhciBKVSxyNixLVT1wKCgpPT57UVUoKTtJNygpO0pVPU9iamVjdC5rZXlzKCQ3KSxyNj1jbGFzcyBleHRlbmRzIEFpe2NvbnN0cnVjdG9yKHQscixpLGEpe2xldCBuPS0xO2lmKHN1cGVyKHQsciksV1RlKHRoaXMsInNwYWNlIixhKSx0eXBlb2YgaT09Im51bWJlciIpZm9yKDsrK248SlUubGVuZ3RoOyl7bGV0IG89SlVbbl07V1RlKHRoaXMsSlVbbl0sKGkmJDdbb10pPT09JDdbb10pfX19O3I2LnByb3RvdHlwZS5kZWZpbmVkPSEwfSk7ZnVuY3Rpb24gaG8oZSl7bGV0IHQ9e30scj17fTtmb3IobGV0W2ksYV1vZiBPYmplY3QuZW50cmllcyhlLnByb3BlcnRpZXMpKXtsZXQgbj1uZXcgcjYoaSxlLnRyYW5zZm9ybShlLmF0dHJpYnV0ZXN8fHt9LGkpLGEsZS5zcGFjZSk7ZS5tdXN0VXNlUHJvcGVydHkmJmUubXVzdFVzZVByb3BlcnR5LmluY2x1ZGVzKGkpJiYobi5tdXN0VXNlUHJvcGVydHk9ITApLHRbaV09bixyW0V1KGkpXT1pLHJbRXUobi5hdHRyaWJ1dGUpXT1pfXJldHVybiBuZXcgJGwodCxyLGUuc3BhY2UpfXZhciBpNj1wKCgpPT57YWsoKTtLVSgpO1pVKCl9KTt2YXIgZVcsR1RlPXAoKCk9PntpNigpO0k3KCk7ZVc9aG8oe3Byb3BlcnRpZXM6e2FyaWFBY3RpdmVEZXNjZW5kYW50Om51bGwsYXJpYUF0b21pYzpBMSxhcmlhQXV0b0NvbXBsZXRlOm51bGwsYXJpYUJ1c3k6QTEsYXJpYUNoZWNrZWQ6QTEsYXJpYUNvbENvdW50OkhlLGFyaWFDb2xJbmRleDpIZSxhcmlhQ29sU3BhbjpIZSxhcmlhQ29udHJvbHM6SHIsYXJpYUN1cnJlbnQ6bnVsbCxhcmlhRGVzY3JpYmVkQnk6SHIsYXJpYURldGFpbHM6bnVsbCxhcmlhRGlzYWJsZWQ6QTEsYXJpYURyb3BFZmZlY3Q6SHIsYXJpYUVycm9yTWVzc2FnZTpudWxsLGFyaWFFeHBhbmRlZDpBMSxhcmlhRmxvd1RvOkhyLGFyaWFHcmFiYmVkOkExLGFyaWFIYXNQb3B1cDpudWxsLGFyaWFIaWRkZW46QTEsYXJpYUludmFsaWQ6bnVsbCxhcmlhS2V5U2hvcnRjdXRzOm51bGwsYXJpYUxhYmVsOm51bGwsYXJpYUxhYmVsbGVkQnk6SHIsYXJpYUxldmVsOkhlLGFyaWFMaXZlOm51bGwsYXJpYU1vZGFsOkExLGFyaWFNdWx0aUxpbmU6QTEsYXJpYU11bHRpU2VsZWN0YWJsZTpBMSxhcmlhT3JpZW50YXRpb246bnVsbCxhcmlhT3duczpIcixhcmlhUGxhY2Vob2xkZXI6bnVsbCxhcmlhUG9zSW5TZXQ6SGUsYXJpYVByZXNzZWQ6QTEsYXJpYVJlYWRPbmx5OkExLGFyaWFSZWxldmFudDpudWxsLGFyaWFSZXF1aXJlZDpBMSxhcmlhUm9sZURlc2NyaXB0aW9uOkhyLGFyaWFSb3dDb3VudDpIZSxhcmlhUm93SW5kZXg6SGUsYXJpYVJvd1NwYW46SGUsYXJpYVNlbGVjdGVkOkExLGFyaWFTZXRTaXplOkhlLGFyaWFTb3J0Om51bGwsYXJpYVZhbHVlTWF4OkhlLGFyaWFWYWx1ZU1pbjpIZSxhcmlhVmFsdWVOb3c6SGUsYXJpYVZhbHVlVGV4dDpudWxsLHJvbGU6bnVsbH0sdHJhbnNmb3JtKGUsdCl7cmV0dXJuIHQ9PT0icm9sZSI/dDoiYXJpYS0iK3Quc2xpY2UoNCkudG9Mb3dlckNhc2UoKX19KX0pO2Z1bmN0aW9uIG9rKGUsdCl7cmV0dXJuIHQgaW4gZT9lW3RdOnR9dmFyIHRXPXAoKCk9Pnt9KTtmdW5jdGlvbiBzayhlLHQpe3JldHVybiBvayhlLHQudG9Mb3dlckNhc2UoKSl9dmFyIHJXPXAoKCk9Pnt0VygpfSk7dmFyIFlUZSxaVGU9cCgoKT0+e3JXKCk7aTYoKTtJNygpO1lUZT1obyh7YXR0cmlidXRlczp7YWNjZXB0Y2hhcnNldDoiYWNjZXB0LWNoYXJzZXQiLGNsYXNzbmFtZToiY2xhc3MiLGh0bWxmb3I6ImZvciIsaHR0cGVxdWl2OiJodHRwLWVxdWl2In0sbXVzdFVzZVByb3BlcnR5OlsiY2hlY2tlZCIsIm11bHRpcGxlIiwibXV0ZWQiLCJzZWxlY3RlZCJdLHByb3BlcnRpZXM6e2FiYnI6bnVsbCxhY2NlcHQ6QzAsYWNjZXB0Q2hhcnNldDpIcixhY2Nlc3NLZXk6SHIsYWN0aW9uOm51bGwsYWxsb3c6bnVsbCxhbGxvd0Z1bGxTY3JlZW46RHQsYWxsb3dQYXltZW50UmVxdWVzdDpEdCxhbGxvd1VzZXJNZWRpYTpEdCxhbHQ6bnVsbCxhczpudWxsLGFzeW5jOkR0LGF1dG9DYXBpdGFsaXplOm51bGwsYXV0b0NvbXBsZXRlOkhyLGF1dG9Gb2N1czpEdCxhdXRvUGxheTpEdCxibG9ja2luZzpIcixjYXB0dXJlOm51bGwsY2hhclNldDpudWxsLGNoZWNrZWQ6RHQsY2l0ZTpudWxsLGNsYXNzTmFtZTpIcixjb2xzOkhlLGNvbFNwYW46bnVsbCxjb250ZW50Om51bGwsY29udGVudEVkaXRhYmxlOkExLGNvbnRyb2xzOkR0LGNvbnRyb2xzTGlzdDpIcixjb29yZHM6SGV8QzAsY3Jvc3NPcmlnaW46bnVsbCxkYXRhOm51bGwsZGF0ZVRpbWU6bnVsbCxkZWNvZGluZzpudWxsLGRlZmF1bHQ6RHQsZGVmZXI6RHQsZGlyOm51bGwsZGlyTmFtZTpudWxsLGRpc2FibGVkOkR0LGRvd25sb2FkOm5rLGRyYWdnYWJsZTpBMSxlbmNUeXBlOm51bGwsZW50ZXJLZXlIaW50Om51bGwsZmV0Y2hQcmlvcml0eTpudWxsLGZvcm06bnVsbCxmb3JtQWN0aW9uOm51bGwsZm9ybUVuY1R5cGU6bnVsbCxmb3JtTWV0aG9kOm51bGwsZm9ybU5vVmFsaWRhdGU6RHQsZm9ybVRhcmdldDpudWxsLGhlYWRlcnM6SHIsaGVpZ2h0OkhlLGhpZGRlbjpuayxoaWdoOkhlLGhyZWY6bnVsbCxocmVmTGFuZzpudWxsLGh0bWxGb3I6SHIsaHR0cEVxdWl2OkhyLGlkOm51bGwsaW1hZ2VTaXplczpudWxsLGltYWdlU3JjU2V0Om51bGwsaW5lcnQ6RHQsaW5wdXRNb2RlOm51bGwsaW50ZWdyaXR5Om51bGwsaXM6bnVsbCxpc01hcDpEdCxpdGVtSWQ6bnVsbCxpdGVtUHJvcDpIcixpdGVtUmVmOkhyLGl0ZW1TY29wZTpEdCxpdGVtVHlwZTpIcixraW5kOm51bGwsbGFiZWw6bnVsbCxsYW5nOm51bGwsbGFuZ3VhZ2U6bnVsbCxsaXN0Om51bGwsbG9hZGluZzpudWxsLGxvb3A6RHQsbG93OkhlLG1hbmlmZXN0Om51bGwsbWF4Om51bGwsbWF4TGVuZ3RoOkhlLG1lZGlhOm51bGwsbWV0aG9kOm51bGwsbWluOm51bGwsbWluTGVuZ3RoOkhlLG11bHRpcGxlOkR0LG11dGVkOkR0LG5hbWU6bnVsbCxub25jZTpudWxsLG5vTW9kdWxlOkR0LG5vVmFsaWRhdGU6RHQsb25BYm9ydDpudWxsLG9uQWZ0ZXJQcmludDpudWxsLG9uQXV4Q2xpY2s6bnVsbCxvbkJlZm9yZU1hdGNoOm51bGwsb25CZWZvcmVQcmludDpudWxsLG9uQmVmb3JlVG9nZ2xlOm51bGwsb25CZWZvcmVVbmxvYWQ6bnVsbCxvbkJsdXI6bnVsbCxvbkNhbmNlbDpudWxsLG9uQ2FuUGxheTpudWxsLG9uQ2FuUGxheVRocm91Z2g6bnVsbCxvbkNoYW5nZTpudWxsLG9uQ2xpY2s6bnVsbCxvbkNsb3NlOm51bGwsb25Db250ZXh0TG9zdDpudWxsLG9uQ29udGV4dE1lbnU6bnVsbCxvbkNvbnRleHRSZXN0b3JlZDpudWxsLG9uQ29weTpudWxsLG9uQ3VlQ2hhbmdlOm51bGwsb25DdXQ6bnVsbCxvbkRibENsaWNrOm51bGwsb25EcmFnOm51bGwsb25EcmFnRW5kOm51bGwsb25EcmFnRW50ZXI6bnVsbCxvbkRyYWdFeGl0Om51bGwsb25EcmFnTGVhdmU6bnVsbCxvbkRyYWdPdmVyOm51bGwsb25EcmFnU3RhcnQ6bnVsbCxvbkRyb3A6bnVsbCxvbkR1cmF0aW9uQ2hhbmdlOm51bGwsb25FbXB0aWVkOm51bGwsb25FbmRlZDpudWxsLG9uRXJyb3I6bnVsbCxvbkZvY3VzOm51bGwsb25Gb3JtRGF0YTpudWxsLG9uSGFzaENoYW5nZTpudWxsLG9uSW5wdXQ6bnVsbCxvbkludmFsaWQ6bnVsbCxvbktleURvd246bnVsbCxvbktleVByZXNzOm51bGwsb25LZXlVcDpudWxsLG9uTGFuZ3VhZ2VDaGFuZ2U6bnVsbCxvbkxvYWQ6bnVsbCxvbkxvYWRlZERhdGE6bnVsbCxvbkxvYWRlZE1ldGFkYXRhOm51bGwsb25Mb2FkRW5kOm51bGwsb25Mb2FkU3RhcnQ6bnVsbCxvbk1lc3NhZ2U6bnVsbCxvbk1lc3NhZ2VFcnJvcjpudWxsLG9uTW91c2VEb3duOm51bGwsb25Nb3VzZUVudGVyOm51bGwsb25Nb3VzZUxlYXZlOm51bGwsb25Nb3VzZU1vdmU6bnVsbCxvbk1vdXNlT3V0Om51bGwsb25Nb3VzZU92ZXI6bnVsbCxvbk1vdXNlVXA6bnVsbCxvbk9mZmxpbmU6bnVsbCxvbk9ubGluZTpudWxsLG9uUGFnZUhpZGU6bnVsbCxvblBhZ2VTaG93Om51bGwsb25QYXN0ZTpudWxsLG9uUGF1c2U6bnVsbCxvblBsYXk6bnVsbCxvblBsYXlpbmc6bnVsbCxvblBvcFN0YXRlOm51bGwsb25Qcm9ncmVzczpudWxsLG9uUmF0ZUNoYW5nZTpudWxsLG9uUmVqZWN0aW9uSGFuZGxlZDpudWxsLG9uUmVzZXQ6bnVsbCxvblJlc2l6ZTpudWxsLG9uU2Nyb2xsOm51bGwsb25TY3JvbGxFbmQ6bnVsbCxvblNlY3VyaXR5UG9saWN5VmlvbGF0aW9uOm51bGwsb25TZWVrZWQ6bnVsbCxvblNlZWtpbmc6bnVsbCxvblNlbGVjdDpudWxsLG9uU2xvdENoYW5nZTpudWxsLG9uU3RhbGxlZDpudWxsLG9uU3RvcmFnZTpudWxsLG9uU3VibWl0Om51bGwsb25TdXNwZW5kOm51bGwsb25UaW1lVXBkYXRlOm51bGwsb25Ub2dnbGU6bnVsbCxvblVuaGFuZGxlZFJlamVjdGlvbjpudWxsLG9uVW5sb2FkOm51bGwsb25Wb2x1bWVDaGFuZ2U6bnVsbCxvbldhaXRpbmc6bnVsbCxvbldoZWVsOm51bGwsb3BlbjpEdCxvcHRpbXVtOkhlLHBhdHRlcm46bnVsbCxwaW5nOkhyLHBsYWNlaG9sZGVyOm51bGwscGxheXNJbmxpbmU6RHQscG9wb3ZlcjpudWxsLHBvcG92ZXJUYXJnZXQ6bnVsbCxwb3BvdmVyVGFyZ2V0QWN0aW9uOm51bGwscG9zdGVyOm51bGwscHJlbG9hZDpudWxsLHJlYWRPbmx5OkR0LHJlZmVycmVyUG9saWN5Om51bGwscmVsOkhyLHJlcXVpcmVkOkR0LHJldmVyc2VkOkR0LHJvd3M6SGUscm93U3BhbjpIZSxzYW5kYm94OkhyLHNjb3BlOm51bGwsc2NvcGVkOkR0LHNlYW1sZXNzOkR0LHNlbGVjdGVkOkR0LHNoYWRvd1Jvb3RDbG9uYWJsZTpEdCxzaGFkb3dSb290RGVsZWdhdGVzRm9jdXM6RHQsc2hhZG93Um9vdE1vZGU6bnVsbCxzaGFwZTpudWxsLHNpemU6SGUsc2l6ZXM6bnVsbCxzbG90Om51bGwsc3BhbjpIZSxzcGVsbENoZWNrOkExLHNyYzpudWxsLHNyY0RvYzpudWxsLHNyY0xhbmc6bnVsbCxzcmNTZXQ6bnVsbCxzdGFydDpIZSxzdGVwOm51bGwsc3R5bGU6bnVsbCx0YWJJbmRleDpIZSx0YXJnZXQ6bnVsbCx0aXRsZTpudWxsLHRyYW5zbGF0ZTpudWxsLHR5cGU6bnVsbCx0eXBlTXVzdE1hdGNoOkR0LHVzZU1hcDpudWxsLHZhbHVlOkExLHdpZHRoOkhlLHdyYXA6bnVsbCx3cml0aW5nU3VnZ2VzdGlvbnM6bnVsbCxhbGlnbjpudWxsLGFMaW5rOm51bGwsYXJjaGl2ZTpIcixheGlzOm51bGwsYmFja2dyb3VuZDpudWxsLGJnQ29sb3I6bnVsbCxib3JkZXI6SGUsYm9yZGVyQ29sb3I6bnVsbCxib3R0b21NYXJnaW46SGUsY2VsbFBhZGRpbmc6bnVsbCxjZWxsU3BhY2luZzpudWxsLGNoYXI6bnVsbCxjaGFyT2ZmOm51bGwsY2xhc3NJZDpudWxsLGNsZWFyOm51bGwsY29kZTpudWxsLGNvZGVCYXNlOm51bGwsY29kZVR5cGU6bnVsbCxjb2xvcjpudWxsLGNvbXBhY3Q6RHQsZGVjbGFyZTpEdCxldmVudDpudWxsLGZhY2U6bnVsbCxmcmFtZTpudWxsLGZyYW1lQm9yZGVyOm51bGwsaFNwYWNlOkhlLGxlZnRNYXJnaW46SGUsbGluazpudWxsLGxvbmdEZXNjOm51bGwsbG93U3JjOm51bGwsbWFyZ2luSGVpZ2h0OkhlLG1hcmdpbldpZHRoOkhlLG5vUmVzaXplOkR0LG5vSHJlZjpEdCxub1NoYWRlOkR0LG5vV3JhcDpEdCxvYmplY3Q6bnVsbCxwcm9maWxlOm51bGwscHJvbXB0Om51bGwscmV2Om51bGwscmlnaHRNYXJnaW46SGUscnVsZXM6bnVsbCxzY2hlbWU6bnVsbCxzY3JvbGxpbmc6QTEsc3RhbmRieTpudWxsLHN1bW1hcnk6bnVsbCx0ZXh0Om51bGwsdG9wTWFyZ2luOkhlLHZhbHVlVHlwZTpudWxsLHZlcnNpb246bnVsbCx2QWxpZ246bnVsbCx2TGluazpudWxsLHZTcGFjZTpIZSxhbGxvd1RyYW5zcGFyZW5jeTpudWxsLGF1dG9Db3JyZWN0Om51bGwsYXV0b1NhdmU6bnVsbCxkaXNhYmxlUGljdHVyZUluUGljdHVyZTpEdCxkaXNhYmxlUmVtb3RlUGxheWJhY2s6RHQscHJlZml4Om51bGwscHJvcGVydHk6bnVsbCxyZXN1bHRzOkhlLHNlY3VyaXR5Om51bGwsdW5zZWxlY3RhYmxlOm51bGx9LHNwYWNlOiJodG1sIix0cmFuc2Zvcm06c2t9KX0pO3ZhciBYVGUsUVRlPXAoKCk9Pnt0VygpO2k2KCk7STcoKTtYVGU9aG8oe2F0dHJpYnV0ZXM6e2FjY2VudEhlaWdodDoiYWNjZW50LWhlaWdodCIsYWxpZ25tZW50QmFzZWxpbmU6ImFsaWdubWVudC1iYXNlbGluZSIsYXJhYmljRm9ybToiYXJhYmljLWZvcm0iLGJhc2VsaW5lU2hpZnQ6ImJhc2VsaW5lLXNoaWZ0IixjYXBIZWlnaHQ6ImNhcC1oZWlnaHQiLGNsYXNzTmFtZToiY2xhc3MiLGNsaXBQYXRoOiJjbGlwLXBhdGgiLGNsaXBSdWxlOiJjbGlwLXJ1bGUiLGNvbG9ySW50ZXJwb2xhdGlvbjoiY29sb3ItaW50ZXJwb2xhdGlvbiIsY29sb3JJbnRlcnBvbGF0aW9uRmlsdGVyczoiY29sb3ItaW50ZXJwb2xhdGlvbi1maWx0ZXJzIixjb2xvclByb2ZpbGU6ImNvbG9yLXByb2ZpbGUiLGNvbG9yUmVuZGVyaW5nOiJjb2xvci1yZW5kZXJpbmciLGNyb3NzT3JpZ2luOiJjcm9zc29yaWdpbiIsZGF0YVR5cGU6ImRhdGF0eXBlIixkb21pbmFudEJhc2VsaW5lOiJkb21pbmFudC1iYXNlbGluZSIsZW5hYmxlQmFja2dyb3VuZDoiZW5hYmxlLWJhY2tncm91bmQiLGZpbGxPcGFjaXR5OiJmaWxsLW9wYWNpdHkiLGZpbGxSdWxlOiJmaWxsLXJ1bGUiLGZsb29kQ29sb3I6ImZsb29kLWNvbG9yIixmbG9vZE9wYWNpdHk6ImZsb29kLW9wYWNpdHkiLGZvbnRGYW1pbHk6ImZvbnQtZmFtaWx5Iixmb250U2l6ZToiZm9udC1zaXplIixmb250U2l6ZUFkanVzdDoiZm9udC1zaXplLWFkanVzdCIsZm9udFN0cmV0Y2g6ImZvbnQtc3RyZXRjaCIsZm9udFN0eWxlOiJmb250LXN0eWxlIixmb250VmFyaWFudDoiZm9udC12YXJpYW50Iixmb250V2VpZ2h0OiJmb250LXdlaWdodCIsZ2x5cGhOYW1lOiJnbHlwaC1uYW1lIixnbHlwaE9yaWVudGF0aW9uSG9yaXpvbnRhbDoiZ2x5cGgtb3JpZW50YXRpb24taG9yaXpvbnRhbCIsZ2x5cGhPcmllbnRhdGlvblZlcnRpY2FsOiJnbHlwaC1vcmllbnRhdGlvbi12ZXJ0aWNhbCIsaHJlZkxhbmc6ImhyZWZsYW5nIixob3JpekFkdlg6Imhvcml6LWFkdi14Iixob3Jpek9yaWdpblg6Imhvcml6LW9yaWdpbi14Iixob3Jpek9yaWdpblk6Imhvcml6LW9yaWdpbi15IixpbWFnZVJlbmRlcmluZzoiaW1hZ2UtcmVuZGVyaW5nIixsZXR0ZXJTcGFjaW5nOiJsZXR0ZXItc3BhY2luZyIsbGlnaHRpbmdDb2xvcjoibGlnaHRpbmctY29sb3IiLG1hcmtlckVuZDoibWFya2VyLWVuZCIsbWFya2VyTWlkOiJtYXJrZXItbWlkIixtYXJrZXJTdGFydDoibWFya2VyLXN0YXJ0IixuYXZEb3duOiJuYXYtZG93biIsbmF2RG93bkxlZnQ6Im5hdi1kb3duLWxlZnQiLG5hdkRvd25SaWdodDoibmF2LWRvd24tcmlnaHQiLG5hdkxlZnQ6Im5hdi1sZWZ0IixuYXZOZXh0OiJuYXYtbmV4dCIsbmF2UHJldjoibmF2LXByZXYiLG5hdlJpZ2h0OiJuYXYtcmlnaHQiLG5hdlVwOiJuYXYtdXAiLG5hdlVwTGVmdDoibmF2LXVwLWxlZnQiLG5hdlVwUmlnaHQ6Im5hdi11cC1yaWdodCIsb25BYm9ydDoib25hYm9ydCIsb25BY3RpdmF0ZToib25hY3RpdmF0ZSIsb25BZnRlclByaW50OiJvbmFmdGVycHJpbnQiLG9uQmVmb3JlUHJpbnQ6Im9uYmVmb3JlcHJpbnQiLG9uQmVnaW46Im9uYmVnaW4iLG9uQ2FuY2VsOiJvbmNhbmNlbCIsb25DYW5QbGF5OiJvbmNhbnBsYXkiLG9uQ2FuUGxheVRocm91Z2g6Im9uY2FucGxheXRocm91Z2giLG9uQ2hhbmdlOiJvbmNoYW5nZSIsb25DbGljazoib25jbGljayIsb25DbG9zZToib25jbG9zZSIsb25Db3B5OiJvbmNvcHkiLG9uQ3VlQ2hhbmdlOiJvbmN1ZWNoYW5nZSIsb25DdXQ6Im9uY3V0IixvbkRibENsaWNrOiJvbmRibGNsaWNrIixvbkRyYWc6Im9uZHJhZyIsb25EcmFnRW5kOiJvbmRyYWdlbmQiLG9uRHJhZ0VudGVyOiJvbmRyYWdlbnRlciIsb25EcmFnRXhpdDoib25kcmFnZXhpdCIsb25EcmFnTGVhdmU6Im9uZHJhZ2xlYXZlIixvbkRyYWdPdmVyOiJvbmRyYWdvdmVyIixvbkRyYWdTdGFydDoib25kcmFnc3RhcnQiLG9uRHJvcDoib25kcm9wIixvbkR1cmF0aW9uQ2hhbmdlOiJvbmR1cmF0aW9uY2hhbmdlIixvbkVtcHRpZWQ6Im9uZW1wdGllZCIsb25FbmQ6Im9uZW5kIixvbkVuZGVkOiJvbmVuZGVkIixvbkVycm9yOiJvbmVycm9yIixvbkZvY3VzOiJvbmZvY3VzIixvbkZvY3VzSW46Im9uZm9jdXNpbiIsb25Gb2N1c091dDoib25mb2N1c291dCIsb25IYXNoQ2hhbmdlOiJvbmhhc2hjaGFuZ2UiLG9uSW5wdXQ6Im9uaW5wdXQiLG9uSW52YWxpZDoib25pbnZhbGlkIixvbktleURvd246Im9ua2V5ZG93biIsb25LZXlQcmVzczoib25rZXlwcmVzcyIsb25LZXlVcDoib25rZXl1cCIsb25Mb2FkOiJvbmxvYWQiLG9uTG9hZGVkRGF0YToib25sb2FkZWRkYXRhIixvbkxvYWRlZE1ldGFkYXRhOiJvbmxvYWRlZG1ldGFkYXRhIixvbkxvYWRTdGFydDoib25sb2Fkc3RhcnQiLG9uTWVzc2FnZToib25tZXNzYWdlIixvbk1vdXNlRG93bjoib25tb3VzZWRvd24iLG9uTW91c2VFbnRlcjoib25tb3VzZWVudGVyIixvbk1vdXNlTGVhdmU6Im9ubW91c2VsZWF2ZSIsb25Nb3VzZU1vdmU6Im9ubW91c2Vtb3ZlIixvbk1vdXNlT3V0OiJvbm1vdXNlb3V0Iixvbk1vdXNlT3Zlcjoib25tb3VzZW92ZXIiLG9uTW91c2VVcDoib25tb3VzZXVwIixvbk1vdXNlV2hlZWw6Im9ubW91c2V3aGVlbCIsb25PZmZsaW5lOiJvbm9mZmxpbmUiLG9uT25saW5lOiJvbm9ubGluZSIsb25QYWdlSGlkZToib25wYWdlaGlkZSIsb25QYWdlU2hvdzoib25wYWdlc2hvdyIsb25QYXN0ZToib25wYXN0ZSIsb25QYXVzZToib25wYXVzZSIsb25QbGF5OiJvbnBsYXkiLG9uUGxheWluZzoib25wbGF5aW5nIixvblBvcFN0YXRlOiJvbnBvcHN0YXRlIixvblByb2dyZXNzOiJvbnByb2dyZXNzIixvblJhdGVDaGFuZ2U6Im9ucmF0ZWNoYW5nZSIsb25SZXBlYXQ6Im9ucmVwZWF0IixvblJlc2V0OiJvbnJlc2V0IixvblJlc2l6ZToib25yZXNpemUiLG9uU2Nyb2xsOiJvbnNjcm9sbCIsb25TZWVrZWQ6Im9uc2Vla2VkIixvblNlZWtpbmc6Im9uc2Vla2luZyIsb25TZWxlY3Q6Im9uc2VsZWN0IixvblNob3c6Im9uc2hvdyIsb25TdGFsbGVkOiJvbnN0YWxsZWQiLG9uU3RvcmFnZToib25zdG9yYWdlIixvblN1Ym1pdDoib25zdWJtaXQiLG9uU3VzcGVuZDoib25zdXNwZW5kIixvblRpbWVVcGRhdGU6Im9udGltZXVwZGF0ZSIsb25Ub2dnbGU6Im9udG9nZ2xlIixvblVubG9hZDoib251bmxvYWQiLG9uVm9sdW1lQ2hhbmdlOiJvbnZvbHVtZWNoYW5nZSIsb25XYWl0aW5nOiJvbndhaXRpbmciLG9uWm9vbToib256b29tIixvdmVybGluZVBvc2l0aW9uOiJvdmVybGluZS1wb3NpdGlvbiIsb3ZlcmxpbmVUaGlja25lc3M6Im92ZXJsaW5lLXRoaWNrbmVzcyIscGFpbnRPcmRlcjoicGFpbnQtb3JkZXIiLHBhbm9zZTE6InBhbm9zZS0xIixwb2ludGVyRXZlbnRzOiJwb2ludGVyLWV2ZW50cyIscmVmZXJyZXJQb2xpY3k6InJlZmVycmVycG9saWN5IixyZW5kZXJpbmdJbnRlbnQ6InJlbmRlcmluZy1pbnRlbnQiLHNoYXBlUmVuZGVyaW5nOiJzaGFwZS1yZW5kZXJpbmciLHN0b3BDb2xvcjoic3RvcC1jb2xvciIsc3RvcE9wYWNpdHk6InN0b3Atb3BhY2l0eSIsc3RyaWtldGhyb3VnaFBvc2l0aW9uOiJzdHJpa2V0aHJvdWdoLXBvc2l0aW9uIixzdHJpa2V0aHJvdWdoVGhpY2tuZXNzOiJzdHJpa2V0aHJvdWdoLXRoaWNrbmVzcyIsc3Ryb2tlRGFzaEFycmF5OiJzdHJva2UtZGFzaGFycmF5IixzdHJva2VEYXNoT2Zmc2V0OiJzdHJva2UtZGFzaG9mZnNldCIsc3Ryb2tlTGluZUNhcDoic3Ryb2tlLWxpbmVjYXAiLHN0cm9rZUxpbmVKb2luOiJzdHJva2UtbGluZWpvaW4iLHN0cm9rZU1pdGVyTGltaXQ6InN0cm9rZS1taXRlcmxpbWl0IixzdHJva2VPcGFjaXR5OiJzdHJva2Utb3BhY2l0eSIsc3Ryb2tlV2lkdGg6InN0cm9rZS13aWR0aCIsdGFiSW5kZXg6InRhYmluZGV4Iix0ZXh0QW5jaG9yOiJ0ZXh0LWFuY2hvciIsdGV4dERlY29yYXRpb246InRleHQtZGVjb3JhdGlvbiIsdGV4dFJlbmRlcmluZzoidGV4dC1yZW5kZXJpbmciLHRyYW5zZm9ybU9yaWdpbjoidHJhbnNmb3JtLW9yaWdpbiIsdHlwZU9mOiJ0eXBlb2YiLHVuZGVybGluZVBvc2l0aW9uOiJ1bmRlcmxpbmUtcG9zaXRpb24iLHVuZGVybGluZVRoaWNrbmVzczoidW5kZXJsaW5lLXRoaWNrbmVzcyIsdW5pY29kZUJpZGk6InVuaWNvZGUtYmlkaSIsdW5pY29kZVJhbmdlOiJ1bmljb2RlLXJhbmdlIix1bml0c1BlckVtOiJ1bml0cy1wZXItZW0iLHZBbHBoYWJldGljOiJ2LWFscGhhYmV0aWMiLHZIYW5naW5nOiJ2LWhhbmdpbmciLHZJZGVvZ3JhcGhpYzoidi1pZGVvZ3JhcGhpYyIsdk1hdGhlbWF0aWNhbDoidi1tYXRoZW1hdGljYWwiLHZlY3RvckVmZmVjdDoidmVjdG9yLWVmZmVjdCIsdmVydEFkdlk6InZlcnQtYWR2LXkiLHZlcnRPcmlnaW5YOiJ2ZXJ0LW9yaWdpbi14Iix2ZXJ0T3JpZ2luWToidmVydC1vcmlnaW4teSIsd29yZFNwYWNpbmc6IndvcmQtc3BhY2luZyIsd3JpdGluZ01vZGU6IndyaXRpbmctbW9kZSIseEhlaWdodDoieC1oZWlnaHQiLHBsYXliYWNrT3JkZXI6InBsYXliYWNrb3JkZXIiLHRpbWVsaW5lQmVnaW46InRpbWVsaW5lYmVnaW4ifSxwcm9wZXJ0aWVzOnthYm91dDpibixhY2NlbnRIZWlnaHQ6SGUsYWNjdW11bGF0ZTpudWxsLGFkZGl0aXZlOm51bGwsYWxpZ25tZW50QmFzZWxpbmU6bnVsbCxhbHBoYWJldGljOkhlLGFtcGxpdHVkZTpIZSxhcmFiaWNGb3JtOm51bGwsYXNjZW50OkhlLGF0dHJpYnV0ZU5hbWU6bnVsbCxhdHRyaWJ1dGVUeXBlOm51bGwsYXppbXV0aDpIZSxiYW5kd2lkdGg6bnVsbCxiYXNlbGluZVNoaWZ0Om51bGwsYmFzZUZyZXF1ZW5jeTpudWxsLGJhc2VQcm9maWxlOm51bGwsYmJveDpudWxsLGJlZ2luOm51bGwsYmlhczpIZSxieTpudWxsLGNhbGNNb2RlOm51bGwsY2FwSGVpZ2h0OkhlLGNsYXNzTmFtZTpIcixjbGlwOm51bGwsY2xpcFBhdGg6bnVsbCxjbGlwUGF0aFVuaXRzOm51bGwsY2xpcFJ1bGU6bnVsbCxjb2xvcjpudWxsLGNvbG9ySW50ZXJwb2xhdGlvbjpudWxsLGNvbG9ySW50ZXJwb2xhdGlvbkZpbHRlcnM6bnVsbCxjb2xvclByb2ZpbGU6bnVsbCxjb2xvclJlbmRlcmluZzpudWxsLGNvbnRlbnQ6bnVsbCxjb250ZW50U2NyaXB0VHlwZTpudWxsLGNvbnRlbnRTdHlsZVR5cGU6bnVsbCxjcm9zc09yaWdpbjpudWxsLGN1cnNvcjpudWxsLGN4Om51bGwsY3k6bnVsbCxkOm51bGwsZGF0YVR5cGU6bnVsbCxkZWZhdWx0QWN0aW9uOm51bGwsZGVzY2VudDpIZSxkaWZmdXNlQ29uc3RhbnQ6SGUsZGlyZWN0aW9uOm51bGwsZGlzcGxheTpudWxsLGR1cjpudWxsLGRpdmlzb3I6SGUsZG9taW5hbnRCYXNlbGluZTpudWxsLGRvd25sb2FkOkR0LGR4Om51bGwsZHk6bnVsbCxlZGdlTW9kZTpudWxsLGVkaXRhYmxlOm51bGwsZWxldmF0aW9uOkhlLGVuYWJsZUJhY2tncm91bmQ6bnVsbCxlbmQ6bnVsbCxldmVudDpudWxsLGV4cG9uZW50OkhlLGV4dGVybmFsUmVzb3VyY2VzUmVxdWlyZWQ6bnVsbCxmaWxsOm51bGwsZmlsbE9wYWNpdHk6SGUsZmlsbFJ1bGU6bnVsbCxmaWx0ZXI6bnVsbCxmaWx0ZXJSZXM6bnVsbCxmaWx0ZXJVbml0czpudWxsLGZsb29kQ29sb3I6bnVsbCxmbG9vZE9wYWNpdHk6bnVsbCxmb2N1c2FibGU6bnVsbCxmb2N1c0hpZ2hsaWdodDpudWxsLGZvbnRGYW1pbHk6bnVsbCxmb250U2l6ZTpudWxsLGZvbnRTaXplQWRqdXN0Om51bGwsZm9udFN0cmV0Y2g6bnVsbCxmb250U3R5bGU6bnVsbCxmb250VmFyaWFudDpudWxsLGZvbnRXZWlnaHQ6bnVsbCxmb3JtYXQ6bnVsbCxmcjpudWxsLGZyb206bnVsbCxmeDpudWxsLGZ5Om51bGwsZzE6QzAsZzI6QzAsZ2x5cGhOYW1lOkMwLGdseXBoT3JpZW50YXRpb25Ib3Jpem9udGFsOm51bGwsZ2x5cGhPcmllbnRhdGlvblZlcnRpY2FsOm51bGwsZ2x5cGhSZWY6bnVsbCxncmFkaWVudFRyYW5zZm9ybTpudWxsLGdyYWRpZW50VW5pdHM6bnVsbCxoYW5kbGVyOm51bGwsaGFuZ2luZzpIZSxoYXRjaENvbnRlbnRVbml0czpudWxsLGhhdGNoVW5pdHM6bnVsbCxoZWlnaHQ6bnVsbCxocmVmOm51bGwsaHJlZkxhbmc6bnVsbCxob3JpekFkdlg6SGUsaG9yaXpPcmlnaW5YOkhlLGhvcml6T3JpZ2luWTpIZSxpZDpudWxsLGlkZW9ncmFwaGljOkhlLGltYWdlUmVuZGVyaW5nOm51bGwsaW5pdGlhbFZpc2liaWxpdHk6bnVsbCxpbjpudWxsLGluMjpudWxsLGludGVyY2VwdDpIZSxrOkhlLGsxOkhlLGsyOkhlLGszOkhlLGs0OkhlLGtlcm5lbE1hdHJpeDpibixrZXJuZWxVbml0TGVuZ3RoOm51bGwsa2V5UG9pbnRzOm51bGwsa2V5U3BsaW5lczpudWxsLGtleVRpbWVzOm51bGwsa2VybmluZzpudWxsLGxhbmc6bnVsbCxsZW5ndGhBZGp1c3Q6bnVsbCxsZXR0ZXJTcGFjaW5nOm51bGwsbGlnaHRpbmdDb2xvcjpudWxsLGxpbWl0aW5nQ29uZUFuZ2xlOkhlLGxvY2FsOm51bGwsbWFya2VyRW5kOm51bGwsbWFya2VyTWlkOm51bGwsbWFya2VyU3RhcnQ6bnVsbCxtYXJrZXJIZWlnaHQ6bnVsbCxtYXJrZXJVbml0czpudWxsLG1hcmtlcldpZHRoOm51bGwsbWFzazpudWxsLG1hc2tDb250ZW50VW5pdHM6bnVsbCxtYXNrVW5pdHM6bnVsbCxtYXRoZW1hdGljYWw6bnVsbCxtYXg6bnVsbCxtZWRpYTpudWxsLG1lZGlhQ2hhcmFjdGVyRW5jb2Rpbmc6bnVsbCxtZWRpYUNvbnRlbnRFbmNvZGluZ3M6bnVsbCxtZWRpYVNpemU6SGUsbWVkaWFUaW1lOm51bGwsbWV0aG9kOm51bGwsbWluOm51bGwsbW9kZTpudWxsLG5hbWU6bnVsbCxuYXZEb3duOm51bGwsbmF2RG93bkxlZnQ6bnVsbCxuYXZEb3duUmlnaHQ6bnVsbCxuYXZMZWZ0Om51bGwsbmF2TmV4dDpudWxsLG5hdlByZXY6bnVsbCxuYXZSaWdodDpudWxsLG5hdlVwOm51bGwsbmF2VXBMZWZ0Om51bGwsbmF2VXBSaWdodDpudWxsLG51bU9jdGF2ZXM6bnVsbCxvYnNlcnZlcjpudWxsLG9mZnNldDpudWxsLG9uQWJvcnQ6bnVsbCxvbkFjdGl2YXRlOm51bGwsb25BZnRlclByaW50Om51bGwsb25CZWZvcmVQcmludDpudWxsLG9uQmVnaW46bnVsbCxvbkNhbmNlbDpudWxsLG9uQ2FuUGxheTpudWxsLG9uQ2FuUGxheVRocm91Z2g6bnVsbCxvbkNoYW5nZTpudWxsLG9uQ2xpY2s6bnVsbCxvbkNsb3NlOm51bGwsb25Db3B5Om51bGwsb25DdWVDaGFuZ2U6bnVsbCxvbkN1dDpudWxsLG9uRGJsQ2xpY2s6bnVsbCxvbkRyYWc6bnVsbCxvbkRyYWdFbmQ6bnVsbCxvbkRyYWdFbnRlcjpudWxsLG9uRHJhZ0V4aXQ6bnVsbCxvbkRyYWdMZWF2ZTpudWxsLG9uRHJhZ092ZXI6bnVsbCxvbkRyYWdTdGFydDpudWxsLG9uRHJvcDpudWxsLG9uRHVyYXRpb25DaGFuZ2U6bnVsbCxvbkVtcHRpZWQ6bnVsbCxvbkVuZDpudWxsLG9uRW5kZWQ6bnVsbCxvbkVycm9yOm51bGwsb25Gb2N1czpudWxsLG9uRm9jdXNJbjpudWxsLG9uRm9jdXNPdXQ6bnVsbCxvbkhhc2hDaGFuZ2U6bnVsbCxvbklucHV0Om51bGwsb25JbnZhbGlkOm51bGwsb25LZXlEb3duOm51bGwsb25LZXlQcmVzczpudWxsLG9uS2V5VXA6bnVsbCxvbkxvYWQ6bnVsbCxvbkxvYWRlZERhdGE6bnVsbCxvbkxvYWRlZE1ldGFkYXRhOm51bGwsb25Mb2FkU3RhcnQ6bnVsbCxvbk1lc3NhZ2U6bnVsbCxvbk1vdXNlRG93bjpudWxsLG9uTW91c2VFbnRlcjpudWxsLG9uTW91c2VMZWF2ZTpudWxsLG9uTW91c2VNb3ZlOm51bGwsb25Nb3VzZU91dDpudWxsLG9uTW91c2VPdmVyOm51bGwsb25Nb3VzZVVwOm51bGwsb25Nb3VzZVdoZWVsOm51bGwsb25PZmZsaW5lOm51bGwsb25PbmxpbmU6bnVsbCxvblBhZ2VIaWRlOm51bGwsb25QYWdlU2hvdzpudWxsLG9uUGFzdGU6bnVsbCxvblBhdXNlOm51bGwsb25QbGF5Om51bGwsb25QbGF5aW5nOm51bGwsb25Qb3BTdGF0ZTpudWxsLG9uUHJvZ3Jlc3M6bnVsbCxvblJhdGVDaGFuZ2U6bnVsbCxvblJlcGVhdDpudWxsLG9uUmVzZXQ6bnVsbCxvblJlc2l6ZTpudWxsLG9uU2Nyb2xsOm51bGwsb25TZWVrZWQ6bnVsbCxvblNlZWtpbmc6bnVsbCxvblNlbGVjdDpudWxsLG9uU2hvdzpudWxsLG9uU3RhbGxlZDpudWxsLG9uU3RvcmFnZTpudWxsLG9uU3VibWl0Om51bGwsb25TdXNwZW5kOm51bGwsb25UaW1lVXBkYXRlOm51bGwsb25Ub2dnbGU6bnVsbCxvblVubG9hZDpudWxsLG9uVm9sdW1lQ2hhbmdlOm51bGwsb25XYWl0aW5nOm51bGwsb25ab29tOm51bGwsb3BhY2l0eTpudWxsLG9wZXJhdG9yOm51bGwsb3JkZXI6bnVsbCxvcmllbnQ6bnVsbCxvcmllbnRhdGlvbjpudWxsLG9yaWdpbjpudWxsLG92ZXJmbG93Om51bGwsb3ZlcmxheTpudWxsLG92ZXJsaW5lUG9zaXRpb246SGUsb3ZlcmxpbmVUaGlja25lc3M6SGUscGFpbnRPcmRlcjpudWxsLHBhbm9zZTE6bnVsbCxwYXRoOm51bGwscGF0aExlbmd0aDpIZSxwYXR0ZXJuQ29udGVudFVuaXRzOm51bGwscGF0dGVyblRyYW5zZm9ybTpudWxsLHBhdHRlcm5Vbml0czpudWxsLHBoYXNlOm51bGwscGluZzpIcixwaXRjaDpudWxsLHBsYXliYWNrT3JkZXI6bnVsbCxwb2ludGVyRXZlbnRzOm51bGwscG9pbnRzOm51bGwscG9pbnRzQXRYOkhlLHBvaW50c0F0WTpIZSxwb2ludHNBdFo6SGUscHJlc2VydmVBbHBoYTpudWxsLHByZXNlcnZlQXNwZWN0UmF0aW86bnVsbCxwcmltaXRpdmVVbml0czpudWxsLHByb3BhZ2F0ZTpudWxsLHByb3BlcnR5OmJuLHI6bnVsbCxyYWRpdXM6bnVsbCxyZWZlcnJlclBvbGljeTpudWxsLHJlZlg6bnVsbCxyZWZZOm51bGwscmVsOmJuLHJldjpibixyZW5kZXJpbmdJbnRlbnQ6bnVsbCxyZXBlYXRDb3VudDpudWxsLHJlcGVhdER1cjpudWxsLHJlcXVpcmVkRXh0ZW5zaW9uczpibixyZXF1aXJlZEZlYXR1cmVzOmJuLHJlcXVpcmVkRm9udHM6Ym4scmVxdWlyZWRGb3JtYXRzOmJuLHJlc291cmNlOm51bGwscmVzdGFydDpudWxsLHJlc3VsdDpudWxsLHJvdGF0ZTpudWxsLHJ4Om51bGwscnk6bnVsbCxzY2FsZTpudWxsLHNlZWQ6bnVsbCxzaGFwZVJlbmRlcmluZzpudWxsLHNpZGU6bnVsbCxzbG9wZTpudWxsLHNuYXBzaG90VGltZTpudWxsLHNwZWN1bGFyQ29uc3RhbnQ6SGUsc3BlY3VsYXJFeHBvbmVudDpIZSxzcHJlYWRNZXRob2Q6bnVsbCxzcGFjaW5nOm51bGwsc3RhcnRPZmZzZXQ6bnVsbCxzdGREZXZpYXRpb246bnVsbCxzdGVtaDpudWxsLHN0ZW12Om51bGwsc3RpdGNoVGlsZXM6bnVsbCxzdG9wQ29sb3I6bnVsbCxzdG9wT3BhY2l0eTpudWxsLHN0cmlrZXRocm91Z2hQb3NpdGlvbjpIZSxzdHJpa2V0aHJvdWdoVGhpY2tuZXNzOkhlLHN0cmluZzpudWxsLHN0cm9rZTpudWxsLHN0cm9rZURhc2hBcnJheTpibixzdHJva2VEYXNoT2Zmc2V0Om51bGwsc3Ryb2tlTGluZUNhcDpudWxsLHN0cm9rZUxpbmVKb2luOm51bGwsc3Ryb2tlTWl0ZXJMaW1pdDpIZSxzdHJva2VPcGFjaXR5OkhlLHN0cm9rZVdpZHRoOm51bGwsc3R5bGU6bnVsbCxzdXJmYWNlU2NhbGU6SGUsc3luY0JlaGF2aW9yOm51bGwsc3luY0JlaGF2aW9yRGVmYXVsdDpudWxsLHN5bmNNYXN0ZXI6bnVsbCxzeW5jVG9sZXJhbmNlOm51bGwsc3luY1RvbGVyYW5jZURlZmF1bHQ6bnVsbCxzeXN0ZW1MYW5ndWFnZTpibix0YWJJbmRleDpIZSx0YWJsZVZhbHVlczpudWxsLHRhcmdldDpudWxsLHRhcmdldFg6SGUsdGFyZ2V0WTpIZSx0ZXh0QW5jaG9yOm51bGwsdGV4dERlY29yYXRpb246bnVsbCx0ZXh0UmVuZGVyaW5nOm51bGwsdGV4dExlbmd0aDpudWxsLHRpbWVsaW5lQmVnaW46bnVsbCx0aXRsZTpudWxsLHRyYW5zZm9ybUJlaGF2aW9yOm51bGwsdHlwZTpudWxsLHR5cGVPZjpibix0bzpudWxsLHRyYW5zZm9ybTpudWxsLHRyYW5zZm9ybU9yaWdpbjpudWxsLHUxOm51bGwsdTI6bnVsbCx1bmRlcmxpbmVQb3NpdGlvbjpIZSx1bmRlcmxpbmVUaGlja25lc3M6SGUsdW5pY29kZTpudWxsLHVuaWNvZGVCaWRpOm51bGwsdW5pY29kZVJhbmdlOm51bGwsdW5pdHNQZXJFbTpIZSx2YWx1ZXM6bnVsbCx2QWxwaGFiZXRpYzpIZSx2TWF0aGVtYXRpY2FsOkhlLHZlY3RvckVmZmVjdDpudWxsLHZIYW5naW5nOkhlLHZJZGVvZ3JhcGhpYzpIZSx2ZXJzaW9uOm51bGwsdmVydEFkdlk6SGUsdmVydE9yaWdpblg6SGUsdmVydE9yaWdpblk6SGUsdmlld0JveDpudWxsLHZpZXdUYXJnZXQ6bnVsbCx2aXNpYmlsaXR5Om51bGwsd2lkdGg6bnVsbCx3aWR0aHM6bnVsbCx3b3JkU3BhY2luZzpudWxsLHdyaXRpbmdNb2RlOm51bGwseDpudWxsLHgxOm51bGwseDI6bnVsbCx4Q2hhbm5lbFNlbGVjdG9yOm51bGwseEhlaWdodDpIZSx5Om51bGwseTE6bnVsbCx5MjpudWxsLHlDaGFubmVsU2VsZWN0b3I6bnVsbCx6Om51bGwsem9vbUFuZFBhbjpudWxsfSxzcGFjZToic3ZnIix0cmFuc2Zvcm06b2t9KX0pO3ZhciBpVyxKVGU9cCgoKT0+e2k2KCk7aVc9aG8oe3Byb3BlcnRpZXM6e3hMaW5rQWN0dWF0ZTpudWxsLHhMaW5rQXJjUm9sZTpudWxsLHhMaW5rSHJlZjpudWxsLHhMaW5rUm9sZTpudWxsLHhMaW5rU2hvdzpudWxsLHhMaW5rVGl0bGU6bnVsbCx4TGlua1R5cGU6bnVsbH0sc3BhY2U6InhsaW5rIix0cmFuc2Zvcm0oZSx0KXtyZXR1cm4ieGxpbms6Iit0LnNsaWNlKDUpLnRvTG93ZXJDYXNlKCl9fSl9KTt2YXIgYVcsS1RlPXAoKCk9PntpNigpO3JXKCk7YVc9aG8oe2F0dHJpYnV0ZXM6e3htbG5zeGxpbms6InhtbG5zOnhsaW5rIn0scHJvcGVydGllczp7eG1sbnNYTGluazpudWxsLHhtbG5zOm51bGx9LHNwYWNlOiJ4bWxucyIsdHJhbnNmb3JtOnNrfSl9KTt2YXIgblcsZV9lPXAoKCk9PntpNigpO25XPWhvKHtwcm9wZXJ0aWVzOnt4bWxCYXNlOm51bGwseG1sTGFuZzpudWxsLHhtbFNwYWNlOm51bGx9LHNwYWNlOiJ4bWwiLHRyYW5zZm9ybShlLHQpe3JldHVybiJ4bWw6Iit0LnNsaWNlKDMpLnRvTG93ZXJDYXNlKCl9fSl9KTt2YXIgdF9lPXAoKCk9Pnt9KTtmdW5jdGlvbiBvVyhlLHQpe2xldCByPUV1KHQpLGk9dCxhPUFpO2lmKHIgaW4gZS5ub3JtYWwpcmV0dXJuIGUucHJvcGVydHlbZS5ub3JtYWxbcl1dO2lmKHIubGVuZ3RoPjQmJnIuc2xpY2UoMCw0KT09PSJkYXRhIiYmX1NyLnRlc3QodCkpe2lmKHQuY2hhckF0KDQpPT09Ii0iKXtsZXQgbj10LnNsaWNlKDUpLnJlcGxhY2Uocl9lLEFTcik7aT0iZGF0YSIrbi5jaGFyQXQoMCkudG9VcHBlckNhc2UoKStuLnNsaWNlKDEpfWVsc2V7bGV0IG49dC5zbGljZSg0KTtpZighcl9lLnRlc3Qobikpe2xldCBvPW4ucmVwbGFjZShUU3IsTFNyKTtvLmNoYXJBdCgwKSE9PSItIiYmKG89Ii0iK28pLHQ9ImRhdGEiK299fWE9cjZ9cmV0dXJuIG5ldyBhKGksdCl9ZnVuY3Rpb24gTFNyKGUpe3JldHVybiItIitlLnRvTG93ZXJDYXNlKCl9ZnVuY3Rpb24gQVNyKGUpe3JldHVybiBlLmNoYXJBdCgxKS50b1VwcGVyQ2FzZSgpfXZhciBUU3Iscl9lLF9TcixpX2U9cCgoKT0+e0tVKCk7UVUoKTthaygpO1RTcj0vW0EtWl0vZyxyX2U9Ly1bYS16XS9nLF9Tcj0vXmRhdGFbLVx3LjpdKyQvaX0pO3ZhciBhX2UsbGssc1c9cCgoKT0+e1VUZSgpO0dUZSgpO1pUZSgpO1FUZSgpO0pUZSgpO0tUZSgpO2VfZSgpO3RfZSgpO2lfZSgpO2FrKCk7YV9lPVhVKFtlVyxZVGUsaVcsYVcsblddLCJodG1sIiksbGs9WFUoW2VXLFhUZSxpVyxhVyxuV10sInN2ZyIpfSk7ZnVuY3Rpb24gbFcoZSx0KXtpZihlPWUucmVwbGFjZSh0LnN1YnNldD9QU3IodC5zdWJzZXQpOkRTcixpKSx0LnN1YnNldHx8dC5lc2NhcGVPbmx5KXJldHVybiBlO3JldHVybiBlLnJlcGxhY2UoRVNyLHIpLnJlcGxhY2UoJFNyLGkpO2Z1bmN0aW9uIHIoYSxuLG8pe3JldHVybiB0LmZvcm1hdCgoYS5jaGFyQ29kZUF0KDApLTU1Mjk2KSoxMDI0K2EuY2hhckNvZGVBdCgxKS01NjMyMCs2NTUzNixvLmNoYXJDb2RlQXQobisyKSx0KX1mdW5jdGlvbiBpKGEsbixvKXtyZXR1cm4gdC5mb3JtYXQoYS5jaGFyQ29kZUF0KDApLG8uY2hhckNvZGVBdChuKzEpLHQpfX1mdW5jdGlvbiBQU3IoZSl7bGV0IHQ9bl9lLmdldChlKTtyZXR1cm4gdHx8KHQ9TlNyKGUpLG5fZS5zZXQoZSx0KSksdH1mdW5jdGlvbiBOU3IoZSl7bGV0IHQ9W10scj0tMTtmb3IoOysrcjxlLmxlbmd0aDspdC5wdXNoKGVbcl0ucmVwbGFjZShJU3IsIlxcJCYiKSk7cmV0dXJuIG5ldyBSZWdFeHAoIig/OiIrdC5qb2luKCJ8IikrIikiLCJnIil9dmFyIERTcixFU3IsJFNyLElTcixuX2Usb19lPXAoKCk9PntEU3I9L1siJic8PmBdL2csRVNyPS9bXHVEODAwLVx1REJGRl1bXHVEQzAwLVx1REZGRl0vZywkU3I9L1tceDAxLVx0XHZcZlx4MEUtXHgxRlx4N0ZceDgxXHg4RFx4OEZceDkwXHg5RFx4QTAtXHVGRkZGXS9nLElTcj0vW3xcXHt9KClbXF1eJCsqPy5dL2csbl9lPW5ldyBXZWFrTWFwfSk7ZnVuY3Rpb24gc19lKGUsdCxyKXtsZXQgaT0iJiN4IitlLnRvU3RyaW5nKDE2KS50b1VwcGVyQ2FzZSgpO3JldHVybiByJiZ0JiYhRlNyLnRlc3QoU3RyaW5nLmZyb21DaGFyQ29kZSh0KSk/aTppKyI7In12YXIgRlNyLGxfZT1wKCgpPT57RlNyPS9bXGRBLUZhLWZdL30pO2Z1bmN0aW9uIGNfZShlLHQscil7bGV0IGk9IiYjIitTdHJpbmcoZSk7cmV0dXJuIHImJnQmJiFPU3IudGVzdChTdHJpbmcuZnJvbUNoYXJDb2RlKHQpKT9pOmkrIjsifXZhciBPU3IsZF9lPXAoKCk9PntPU3I9L1xkL30pO3ZhciB1X2UscF9lPXAoKCk9Pnt1X2U9WyJBRWxpZyIsIkFNUCIsIkFhY3V0ZSIsIkFjaXJjIiwiQWdyYXZlIiwiQXJpbmciLCJBdGlsZGUiLCJBdW1sIiwiQ09QWSIsIkNjZWRpbCIsIkVUSCIsIkVhY3V0ZSIsIkVjaXJjIiwiRWdyYXZlIiwiRXVtbCIsIkdUIiwiSWFjdXRlIiwiSWNpcmMiLCJJZ3JhdmUiLCJJdW1sIiwiTFQiLCJOdGlsZGUiLCJPYWN1dGUiLCJPY2lyYyIsIk9ncmF2ZSIsIk9zbGFzaCIsIk90aWxkZSIsIk91bWwiLCJRVU9UIiwiUkVHIiwiVEhPUk4iLCJVYWN1dGUiLCJVY2lyYyIsIlVncmF2ZSIsIlV1bWwiLCJZYWN1dGUiLCJhYWN1dGUiLCJhY2lyYyIsImFjdXRlIiwiYWVsaWciLCJhZ3JhdmUiLCJhbXAiLCJhcmluZyIsImF0aWxkZSIsImF1bWwiLCJicnZiYXIiLCJjY2VkaWwiLCJjZWRpbCIsImNlbnQiLCJjb3B5IiwiY3VycmVuIiwiZGVnIiwiZGl2aWRlIiwiZWFjdXRlIiwiZWNpcmMiLCJlZ3JhdmUiLCJldGgiLCJldW1sIiwiZnJhYzEyIiwiZnJhYzE0IiwiZnJhYzM0IiwiZ3QiLCJpYWN1dGUiLCJpY2lyYyIsImlleGNsIiwiaWdyYXZlIiwiaXF1ZXN0IiwiaXVtbCIsImxhcXVvIiwibHQiLCJtYWNyIiwibWljcm8iLCJtaWRkb3QiLCJuYnNwIiwibm90IiwibnRpbGRlIiwib2FjdXRlIiwib2NpcmMiLCJvZ3JhdmUiLCJvcmRmIiwib3JkbSIsIm9zbGFzaCIsIm90aWxkZSIsIm91bWwiLCJwYXJhIiwicGx1c21uIiwicG91bmQiLCJxdW90IiwicmFxdW8iLCJyZWciLCJzZWN0Iiwic2h5Iiwic3VwMSIsInN1cDIiLCJzdXAzIiwic3psaWciLCJ0aG9ybiIsInRpbWVzIiwidWFjdXRlIiwidWNpcmMiLCJ1Z3JhdmUiLCJ1bWwiLCJ1dW1sIiwieWFjdXRlIiwieWVuIiwieXVtbCJdfSk7dmFyIGNrLGhfZT1wKCgpPT57Y2s9e25ic3A6Ilx4QTAiLGlleGNsOiJceEExIixjZW50OiJceEEyIixwb3VuZDoiXHhBMyIsY3VycmVuOiJceEE0Iix5ZW46Ilx4QTUiLGJydmJhcjoiXHhBNiIsc2VjdDoiXHhBNyIsdW1sOiJceEE4Iixjb3B5OiJceEE5IixvcmRmOiJceEFBIixsYXF1bzoiXHhBQiIsbm90OiJceEFDIixzaHk6Ilx4QUQiLHJlZzoiXHhBRSIsbWFjcjoiXHhBRiIsZGVnOiJceEIwIixwbHVzbW46Ilx4QjEiLHN1cDI6Ilx4QjIiLHN1cDM6Ilx4QjMiLGFjdXRlOiJceEI0IixtaWNybzoiXHhCNSIscGFyYToiXHhCNiIsbWlkZG90OiJceEI3IixjZWRpbDoiXHhCOCIsc3VwMToiXHhCOSIsb3JkbToiXHhCQSIscmFxdW86Ilx4QkIiLGZyYWMxNDoiXHhCQyIsZnJhYzEyOiJceEJEIixmcmFjMzQ6Ilx4QkUiLGlxdWVzdDoiXHhCRiIsQWdyYXZlOiJceEMwIixBYWN1dGU6Ilx4QzEiLEFjaXJjOiJceEMyIixBdGlsZGU6Ilx4QzMiLEF1bWw6Ilx4QzQiLEFyaW5nOiJceEM1IixBRWxpZzoiXHhDNiIsQ2NlZGlsOiJceEM3IixFZ3JhdmU6Ilx4QzgiLEVhY3V0ZToiXHhDOSIsRWNpcmM6Ilx4Q0EiLEV1bWw6Ilx4Q0IiLElncmF2ZToiXHhDQyIsSWFjdXRlOiJceENEIixJY2lyYzoiXHhDRSIsSXVtbDoiXHhDRiIsRVRIOiJceEQwIixOdGlsZGU6Ilx4RDEiLE9ncmF2ZToiXHhEMiIsT2FjdXRlOiJceEQzIixPY2lyYzoiXHhENCIsT3RpbGRlOiJceEQ1IixPdW1sOiJceEQ2Iix0aW1lczoiXHhENyIsT3NsYXNoOiJceEQ4IixVZ3JhdmU6Ilx4RDkiLFVhY3V0ZToiXHhEQSIsVWNpcmM6Ilx4REIiLFV1bWw6Ilx4REMiLFlhY3V0ZToiXHhERCIsVEhPUk46Ilx4REUiLHN6bGlnOiJceERGIixhZ3JhdmU6Ilx4RTAiLGFhY3V0ZToiXHhFMSIsYWNpcmM6Ilx4RTIiLGF0aWxkZToiXHhFMyIsYXVtbDoiXHhFNCIsYXJpbmc6Ilx4RTUiLGFlbGlnOiJceEU2IixjY2VkaWw6Ilx4RTciLGVncmF2ZToiXHhFOCIsZWFjdXRlOiJceEU5IixlY2lyYzoiXHhFQSIsZXVtbDoiXHhFQiIsaWdyYXZlOiJceEVDIixpYWN1dGU6Ilx4RUQiLGljaXJjOiJceEVFIixpdW1sOiJceEVGIixldGg6Ilx4RjAiLG50aWxkZToiXHhGMSIsb2dyYXZlOiJceEYyIixvYWN1dGU6Ilx4RjMiLG9jaXJjOiJceEY0IixvdGlsZGU6Ilx4RjUiLG91bWw6Ilx4RjYiLGRpdmlkZToiXHhGNyIsb3NsYXNoOiJceEY4Iix1Z3JhdmU6Ilx4RjkiLHVhY3V0ZToiXHhGQSIsdWNpcmM6Ilx4RkIiLHV1bWw6Ilx4RkMiLHlhY3V0ZToiXHhGRCIsdGhvcm46Ilx4RkUiLHl1bWw6Ilx4RkYiLGZub2Y6Ilx1MDE5MiIsQWxwaGE6Ilx1MDM5MSIsQmV0YToiXHUwMzkyIixHYW1tYToiXHUwMzkzIixEZWx0YToiXHUwMzk0IixFcHNpbG9uOiJcdTAzOTUiLFpldGE6Ilx1MDM5NiIsRXRhOiJcdTAzOTciLFRoZXRhOiJcdTAzOTgiLElvdGE6Ilx1MDM5OSIsS2FwcGE6Ilx1MDM5QSIsTGFtYmRhOiJcdTAzOUIiLE11OiJcdTAzOUMiLE51OiJcdTAzOUQiLFhpOiJcdTAzOUUiLE9taWNyb246Ilx1MDM5RiIsUGk6Ilx1MDNBMCIsUmhvOiJcdTAzQTEiLFNpZ21hOiJcdTAzQTMiLFRhdToiXHUwM0E0IixVcHNpbG9uOiJcdTAzQTUiLFBoaToiXHUwM0E2IixDaGk6Ilx1MDNBNyIsUHNpOiJcdTAzQTgiLE9tZWdhOiJcdTAzQTkiLGFscGhhOiJcdTAzQjEiLGJldGE6Ilx1MDNCMiIsZ2FtbWE6Ilx1MDNCMyIsZGVsdGE6Ilx1MDNCNCIsZXBzaWxvbjoiXHUwM0I1Iix6ZXRhOiJcdTAzQjYiLGV0YToiXHUwM0I3Iix0aGV0YToiXHUwM0I4Iixpb3RhOiJcdTAzQjkiLGthcHBhOiJcdTAzQkEiLGxhbWJkYToiXHUwM0JCIixtdToiXHUwM0JDIixudToiXHUwM0JEIix4aToiXHUwM0JFIixvbWljcm9uOiJcdTAzQkYiLHBpOiJcdTAzQzAiLHJobzoiXHUwM0MxIixzaWdtYWY6Ilx1MDNDMiIsc2lnbWE6Ilx1MDNDMyIsdGF1OiJcdTAzQzQiLHVwc2lsb246Ilx1MDNDNSIscGhpOiJcdTAzQzYiLGNoaToiXHUwM0M3Iixwc2k6Ilx1MDNDOCIsb21lZ2E6Ilx1MDNDOSIsdGhldGFzeW06Ilx1MDNEMSIsdXBzaWg6Ilx1MDNEMiIscGl2OiJcdTAzRDYiLGJ1bGw6Ilx1MjAyMiIsaGVsbGlwOiJcdTIwMjYiLHByaW1lOiJcdTIwMzIiLFByaW1lOiJcdTIwMzMiLG9saW5lOiJcdTIwM0UiLGZyYXNsOiJcdTIwNDQiLHdlaWVycDoiXHUyMTE4IixpbWFnZToiXHUyMTExIixyZWFsOiJcdTIxMUMiLHRyYWRlOiJcdTIxMjIiLGFsZWZzeW06Ilx1MjEzNSIsbGFycjoiXHUyMTkwIix1YXJyOiJcdTIxOTEiLHJhcnI6Ilx1MjE5MiIsZGFycjoiXHUyMTkzIixoYXJyOiJcdTIxOTQiLGNyYXJyOiJcdTIxQjUiLGxBcnI6Ilx1MjFEMCIsdUFycjoiXHUyMUQxIixyQXJyOiJcdTIxRDIiLGRBcnI6Ilx1MjFEMyIsaEFycjoiXHUyMUQ0Iixmb3JhbGw6Ilx1MjIwMCIscGFydDoiXHUyMjAyIixleGlzdDoiXHUyMjAzIixlbXB0eToiXHUyMjA1IixuYWJsYToiXHUyMjA3Iixpc2luOiJcdTIyMDgiLG5vdGluOiJcdTIyMDkiLG5pOiJcdTIyMEIiLHByb2Q6Ilx1MjIwRiIsc3VtOiJcdTIyMTEiLG1pbnVzOiJcdTIyMTIiLGxvd2FzdDoiXHUyMjE3IixyYWRpYzoiXHUyMjFBIixwcm9wOiJcdTIyMUQiLGluZmluOiJcdTIyMUUiLGFuZzoiXHUyMjIwIixhbmQ6Ilx1MjIyNyIsb3I6Ilx1MjIyOCIsY2FwOiJcdTIyMjkiLGN1cDoiXHUyMjJBIixpbnQ6Ilx1MjIyQiIsdGhlcmU0OiJcdTIyMzQiLHNpbToiXHUyMjNDIixjb25nOiJcdTIyNDUiLGFzeW1wOiJcdTIyNDgiLG5lOiJcdTIyNjAiLGVxdWl2OiJcdTIyNjEiLGxlOiJcdTIyNjQiLGdlOiJcdTIyNjUiLHN1YjoiXHUyMjgyIixzdXA6Ilx1MjI4MyIsbnN1YjoiXHUyMjg0IixzdWJlOiJcdTIyODYiLHN1cGU6Ilx1MjI4NyIsb3BsdXM6Ilx1MjI5NSIsb3RpbWVzOiJcdTIyOTciLHBlcnA6Ilx1MjJBNSIsc2RvdDoiXHUyMkM1IixsY2VpbDoiXHUyMzA4IixyY2VpbDoiXHUyMzA5IixsZmxvb3I6Ilx1MjMwQSIscmZsb29yOiJcdTIzMEIiLGxhbmc6Ilx1MjMyOSIscmFuZzoiXHUyMzJBIixsb3o6Ilx1MjVDQSIsc3BhZGVzOiJcdTI2NjAiLGNsdWJzOiJcdTI2NjMiLGhlYXJ0czoiXHUyNjY1IixkaWFtczoiXHUyNjY2IixxdW90OiciJyxhbXA6IiYiLGx0OiI8IixndDoiPiIsT0VsaWc6Ilx1MDE1MiIsb2VsaWc6Ilx1MDE1MyIsU2Nhcm9uOiJcdTAxNjAiLHNjYXJvbjoiXHUwMTYxIixZdW1sOiJcdTAxNzgiLGNpcmM6Ilx1MDJDNiIsdGlsZGU6Ilx1MDJEQyIsZW5zcDoiXHUyMDAyIixlbXNwOiJcdTIwMDMiLHRoaW5zcDoiXHUyMDA5Iix6d25qOiJcdTIwMEMiLHp3ajoiXHUyMDBEIixscm06Ilx1MjAwRSIscmxtOiJcdTIwMEYiLG5kYXNoOiJcdTIwMTMiLG1kYXNoOiJcdTIwMTQiLGxzcXVvOiJcdTIwMTgiLHJzcXVvOiJcdTIwMTkiLHNicXVvOiJcdTIwMUEiLGxkcXVvOiJcdTIwMUMiLHJkcXVvOiJcdTIwMUQiLGJkcXVvOiJcdTIwMUUiLGRhZ2dlcjoiXHUyMDIwIixEYWdnZXI6Ilx1MjAyMSIscGVybWlsOiJcdTIwMzAiLGxzYXF1bzoiXHUyMDM5Iixyc2FxdW86Ilx1MjAzQSIsZXVybzoiXHUyMEFDIn19KTt2YXIgZl9lLG1fZT1wKCgpPT57Zl9lPVsiY2VudCIsImNvcHkiLCJkaXZpZGUiLCJndCIsImx0Iiwibm90IiwicGFyYSIsInRpbWVzIl19KTtmdW5jdGlvbiBiX2UoZSx0LHIsaSl7bGV0IGE9U3RyaW5nLmZyb21DaGFyQ29kZShlKTtpZihnX2UuY2FsbChjVyxhKSl7bGV0IG49Y1dbYV0sbz0iJiIrbjtyZXR1cm4gciYmdV9lLmluY2x1ZGVzKG4pJiYhZl9lLmluY2x1ZGVzKG4pJiYoIWl8fHQmJnQhPT02MSYmUlNyLnRlc3QoU3RyaW5nLmZyb21DaGFyQ29kZSh0KSkpP286bysiOyJ9cmV0dXJuIiJ9dmFyIGdfZSxjVyxkayxSU3Isdl9lPXAoKCk9PntwX2UoKTtoX2UoKTttX2UoKTtnX2U9e30uaGFzT3duUHJvcGVydHksY1c9e307Zm9yKGRrIGluIGNrKWdfZS5jYWxsKGNrLGRrKSYmKGNXW2NrW2RrXV09ZGspO1JTcj0vW15cZEEtWmEtel0vfSk7ZnVuY3Rpb24geF9lKGUsdCxyKXtsZXQgaT1zX2UoZSx0LHIub21pdE9wdGlvbmFsU2VtaWNvbG9ucyksYTtpZigoci51c2VOYW1lZFJlZmVyZW5jZXN8fHIudXNlU2hvcnRlc3RSZWZlcmVuY2VzKSYmKGE9Yl9lKGUsdCxyLm9taXRPcHRpb25hbFNlbWljb2xvbnMsci5hdHRyaWJ1dGUpKSwoci51c2VTaG9ydGVzdFJlZmVyZW5jZXN8fCFhKSYmci51c2VTaG9ydGVzdFJlZmVyZW5jZXMpe2xldCBuPWNfZShlLHQsci5vbWl0T3B0aW9uYWxTZW1pY29sb25zKTtuLmxlbmd0aDxpLmxlbmd0aCYmKGk9bil9cmV0dXJuIGEmJighci51c2VTaG9ydGVzdFJlZmVyZW5jZXN8fGEubGVuZ3RoPGkubGVuZ3RoKT9hOml9dmFyIHlfZT1wKCgpPT57bF9lKCk7ZF9lKCk7dl9lKCl9KTtmdW5jdGlvbiB3X2UoZSl7cmV0dXJuIiYjeCIrZS50b1N0cmluZygxNikudG9VcHBlckNhc2UoKSsiOyJ9dmFyIE1fZT1wKCgpPT57fSk7ZnVuY3Rpb24gSWwoZSx0KXtyZXR1cm4gbFcoZSxPYmplY3QuYXNzaWduKHtmb3JtYXQ6eF9lfSx0KSl9ZnVuY3Rpb24gc1UxKGUsdCl7cmV0dXJuIGxXKGUsT2JqZWN0LmFzc2lnbih7Zm9ybWF0OndfZX0sdCkpfXZhciBrX2U9cCgoKT0+e29fZSgpO3lfZSgpO01fZSgpfSk7dmFyIHVrPXAoKCk9PntrX2UoKX0pO2Z1bmN0aW9uIFNfZShlLHQscixpKXtyZXR1cm4gaS5zZXR0aW5ncy5ib2d1c0NvbW1lbnRzPyI8PyIrSWwoZS52YWx1ZSxPYmplY3QuYXNzaWduKHt9LGkuc2V0dGluZ3MuY2hhcmFjdGVyUmVmZXJlbmNlcyx7c3Vic2V0OkhTcn0pKSsiPiI6IjwhLS0iK2UudmFsdWUucmVwbGFjZShCU3IsYSkrIi0tPiI7ZnVuY3Rpb24gYShuKXtyZXR1cm4gSWwobixPYmplY3QuYXNzaWduKHt9LGkuc2V0dGluZ3MuY2hhcmFjdGVyUmVmZXJlbmNlcyx7c3Vic2V0OnFTcn0pKX19dmFyIEJTcixIU3IscVNyLHpfZT1wKCgpPT57dWsoKTtCU3I9L14+fF4tPnw8IS0tfC0tPnwtLSE+fDwhLSQvZyxIU3I9WyI+Il0scVNyPVsiPCIsIj4iXX0pO2Z1bmN0aW9uIENfZShlLHQscixpKXtyZXR1cm4iPCEiKyhpLnNldHRpbmdzLnVwcGVyRG9jdHlwZT8iRE9DVFlQRSI6ImRvY3R5cGUiKSsoaS5zZXR0aW5ncy50aWdodERvY3R5cGU/IiI6IiAiKSsiaHRtbD4ifXZhciBUX2U9cCgoKT0+e30pO2Z1bmN0aW9uIGZVMShlKXtsZXQgdD1bXSxyPVN0cmluZyhlfHwiIiksaT1yLmluZGV4T2YoIiwiKSxhPTAsbj0hMTtmb3IoOyFuOyl7aT09PS0xJiYoaT1yLmxlbmd0aCxuPSEwKTtsZXQgbz1yLnNsaWNlKGEsaSkudHJpbSgpOyhvfHwhbikmJnQucHVzaChvKSxhPWkrMSxpPXIuaW5kZXhPZigiLCIsYSl9cmV0dXJuIHR9ZnVuY3Rpb24gX19lKGUsdCl7bGV0IHI9dHx8e307cmV0dXJuKGVbZS5sZW5ndGgtMV09PT0iIj9bLi4uZSwiIl06ZSkuam9pbigoci5wYWRSaWdodD8iICI6IiIpKyIsIisoci5wYWRMZWZ0PT09ITE/IiI6IiAiKSkudHJpbSgpfXZhciBMX2U9cCgoKT0+e30pO2Z1bmN0aW9uIGdVMShlKXtsZXQgdD1TdHJpbmcoZXx8IiIpLnRyaW0oKTtyZXR1cm4gdD90LnNwbGl0KC9bIFx0XG5cclxmXSsvZyk6W119ZnVuY3Rpb24gQV9lKGUpe3JldHVybiBlLmpvaW4oIiAiKS50cmltKCl9dmFyIERfZT1wKCgpPT57fSk7ZnVuY3Rpb24gYTYoZSl7cmV0dXJuIHR5cGVvZiBlPT0ib2JqZWN0Ij9lLnR5cGU9PT0idGV4dCI/RV9lKGUudmFsdWUpOiExOkVfZShlKX1mdW5jdGlvbiBFX2UoZSl7cmV0dXJuIGUucmVwbGFjZShqU3IsIiIpPT09IiJ9dmFyIGpTciwkX2U9cCgoKT0+e2pTcj0vWyBcdFxuXGZccl0vZ30pO3ZhciBwaz1wKCgpPT57JF9lKCl9KTtmdW5jdGlvbiBJX2UoZSl7cmV0dXJuIHQ7ZnVuY3Rpb24gdChyLGksYSl7bGV0IG49cj9yLmNoaWxkcmVuOlZTcixvPShpfHwwKStlLHM9bltvXTtpZighYSlmb3IoO3MmJmE2KHMpOylvKz1lLHM9bltvXTtyZXR1cm4gc319dmFyIEgxLGRXLFZTcix1Vz1wKCgpPT57cGsoKTtIMT1JX2UoMSksZFc9SV9lKC0xKSxWU3I9W119KTtmdW5jdGlvbiBoayhlKXtyZXR1cm4gdDtmdW5jdGlvbiB0KHIsaSxhKXtyZXR1cm4gVVNyLmNhbGwoZSxyLnRhZ05hbWUpJiZlW3IudGFnTmFtZV0ocixpLGEpfX12YXIgVVNyLHBXPXAoKCk9PntVU3I9e30uaGFzT3duUHJvcGVydHl9KTtmdW5jdGlvbiBoVyhlLHQscil7bGV0IGk9SDEocix0LCEwKTtyZXR1cm4haXx8aS50eXBlIT09ImNvbW1lbnQiJiYhKGkudHlwZT09PSJ0ZXh0IiYmYTYoaS52YWx1ZS5jaGFyQXQoMCkpKX1mdW5jdGlvbiBXU3IoZSx0LHIpe2xldCBpPUgxKHIsdCk7cmV0dXJuIWl8fGkudHlwZSE9PSJjb21tZW50In1mdW5jdGlvbiBHU3IoZSx0LHIpe2xldCBpPUgxKHIsdCk7cmV0dXJuIWl8fGkudHlwZSE9PSJjb21tZW50In1mdW5jdGlvbiBZU3IoZSx0LHIpe2xldCBpPUgxKHIsdCk7cmV0dXJuIGk/aS50eXBlPT09ImVsZW1lbnQiJiYoaS50YWdOYW1lPT09ImFkZHJlc3MifHxpLnRhZ05hbWU9PT0iYXJ0aWNsZSJ8fGkudGFnTmFtZT09PSJhc2lkZSJ8fGkudGFnTmFtZT09PSJibG9ja3F1b3RlInx8aS50YWdOYW1lPT09ImRldGFpbHMifHxpLnRhZ05hbWU9PT0iZGl2Inx8aS50YWdOYW1lPT09ImRsInx8aS50YWdOYW1lPT09ImZpZWxkc2V0Inx8aS50YWdOYW1lPT09ImZpZ2NhcHRpb24ifHxpLnRhZ05hbWU9PT0iZmlndXJlInx8aS50YWdOYW1lPT09ImZvb3RlciJ8fGkudGFnTmFtZT09PSJmb3JtInx8aS50YWdOYW1lPT09ImgxInx8aS50YWdOYW1lPT09ImgyInx8aS50YWdOYW1lPT09ImgzInx8aS50YWdOYW1lPT09Img0Inx8aS50YWdOYW1lPT09Img1Inx8aS50YWdOYW1lPT09Img2Inx8aS50YWdOYW1lPT09ImhlYWRlciJ8fGkudGFnTmFtZT09PSJoZ3JvdXAifHxpLnRhZ05hbWU9PT0iaHIifHxpLnRhZ05hbWU9PT0ibWFpbiJ8fGkudGFnTmFtZT09PSJtZW51Inx8aS50YWdOYW1lPT09Im5hdiJ8fGkudGFnTmFtZT09PSJvbCJ8fGkudGFnTmFtZT09PSJwInx8aS50YWdOYW1lPT09InByZSJ8fGkudGFnTmFtZT09PSJzZWN0aW9uInx8aS50YWdOYW1lPT09InRhYmxlInx8aS50YWdOYW1lPT09InVsIik6IXJ8fCEoci50eXBlPT09ImVsZW1lbnQiJiYoci50YWdOYW1lPT09ImEifHxyLnRhZ05hbWU9PT0iYXVkaW8ifHxyLnRhZ05hbWU9PT0iZGVsInx8ci50YWdOYW1lPT09ImlucyJ8fHIudGFnTmFtZT09PSJtYXAifHxyLnRhZ05hbWU9PT0ibm9zY3JpcHQifHxyLnRhZ05hbWU9PT0idmlkZW8iKSl9ZnVuY3Rpb24gWlNyKGUsdCxyKXtsZXQgaT1IMShyLHQpO3JldHVybiFpfHxpLnR5cGU9PT0iZWxlbWVudCImJmkudGFnTmFtZT09PSJsaSJ9ZnVuY3Rpb24gWFNyKGUsdCxyKXtsZXQgaT1IMShyLHQpO3JldHVybiEhKGkmJmkudHlwZT09PSJlbGVtZW50IiYmKGkudGFnTmFtZT09PSJkdCJ8fGkudGFnTmFtZT09PSJkZCIpKX1mdW5jdGlvbiBRU3IoZSx0LHIpe2xldCBpPUgxKHIsdCk7cmV0dXJuIWl8fGkudHlwZT09PSJlbGVtZW50IiYmKGkudGFnTmFtZT09PSJkdCJ8fGkudGFnTmFtZT09PSJkZCIpfWZ1bmN0aW9uIFBfZShlLHQscil7bGV0IGk9SDEocix0KTtyZXR1cm4haXx8aS50eXBlPT09ImVsZW1lbnQiJiYoaS50YWdOYW1lPT09InJwInx8aS50YWdOYW1lPT09InJ0Iil9ZnVuY3Rpb24gSlNyKGUsdCxyKXtsZXQgaT1IMShyLHQpO3JldHVybiFpfHxpLnR5cGU9PT0iZWxlbWVudCImJmkudGFnTmFtZT09PSJvcHRncm91cCJ9ZnVuY3Rpb24gS1NyKGUsdCxyKXtsZXQgaT1IMShyLHQpO3JldHVybiFpfHxpLnR5cGU9PT0iZWxlbWVudCImJihpLnRhZ05hbWU9PT0ib3B0aW9uInx8aS50YWdOYW1lPT09Im9wdGdyb3VwIil9ZnVuY3Rpb24gZXpyKGUsdCxyKXtsZXQgaT1IMShyLHQpO3JldHVybiEhKGkmJmkudHlwZT09PSJlbGVtZW50IiYmKGkudGFnTmFtZT09PSJ0Ym9keSJ8fGkudGFnTmFtZT09PSJ0Zm9vdCIpKX1mdW5jdGlvbiB0enIoZSx0LHIpe2xldCBpPUgxKHIsdCk7cmV0dXJuIWl8fGkudHlwZT09PSJlbGVtZW50IiYmKGkudGFnTmFtZT09PSJ0Ym9keSJ8fGkudGFnTmFtZT09PSJ0Zm9vdCIpfWZ1bmN0aW9uIHJ6cihlLHQscil7cmV0dXJuIUgxKHIsdCl9ZnVuY3Rpb24gaXpyKGUsdCxyKXtsZXQgaT1IMShyLHQpO3JldHVybiFpfHxpLnR5cGU9PT0iZWxlbWVudCImJmkudGFnTmFtZT09PSJ0ciJ9ZnVuY3Rpb24gTl9lKGUsdCxyKXtsZXQgaT1IMShyLHQpO3JldHVybiFpfHxpLnR5cGU9PT0iZWxlbWVudCImJihpLnRhZ05hbWU9PT0idGQifHxpLnRhZ05hbWU9PT0idGgiKX12YXIgUDcsZlc9cCgoKT0+e3BrKCk7dVcoKTtwVygpO1A3PWhrKHtib2R5OkdTcixjYXB0aW9uOmhXLGNvbGdyb3VwOmhXLGRkOlFTcixkdDpYU3IsaGVhZDpoVyxodG1sOldTcixsaTpaU3Isb3B0Z3JvdXA6SlNyLG9wdGlvbjpLU3IscDpZU3IscnA6UF9lLHJ0OlBfZSx0Ym9keTp0enIsdGQ6Tl9lLHRmb290OnJ6cix0aDpOX2UsdGhlYWQ6ZXpyLHRyOml6cn0pfSk7ZnVuY3Rpb24gYXpyKGUpe2xldCB0PUgxKGUsLTEpO3JldHVybiF0fHx0LnR5cGUhPT0iY29tbWVudCJ9ZnVuY3Rpb24gbnpyKGUpe2xldCB0PW5ldyBTZXQ7Zm9yKGxldCBpIG9mIGUuY2hpbGRyZW4paWYoaS50eXBlPT09ImVsZW1lbnQiJiYoaS50YWdOYW1lPT09ImJhc2UifHxpLnRhZ05hbWU9PT0idGl0bGUiKSl7aWYodC5oYXMoaS50YWdOYW1lKSlyZXR1cm4hMTt0LmFkZChpLnRhZ05hbWUpfWxldCByPWUuY2hpbGRyZW5bMF07cmV0dXJuIXJ8fHIudHlwZT09PSJlbGVtZW50In1mdW5jdGlvbiBvenIoZSl7bGV0IHQ9SDEoZSwtMSwhMCk7cmV0dXJuIXR8fHQudHlwZSE9PSJjb21tZW50IiYmISh0LnR5cGU9PT0idGV4dCImJmE2KHQudmFsdWUuY2hhckF0KDApKSkmJiEodC50eXBlPT09ImVsZW1lbnQiJiYodC50YWdOYW1lPT09Im1ldGEifHx0LnRhZ05hbWU9PT0ibGluayJ8fHQudGFnTmFtZT09PSJzY3JpcHQifHx0LnRhZ05hbWU9PT0ic3R5bGUifHx0LnRhZ05hbWU9PT0idGVtcGxhdGUiKSl9ZnVuY3Rpb24gc3pyKGUsdCxyKXtsZXQgaT1kVyhyLHQpLGE9SDEoZSwtMSwhMCk7cmV0dXJuIHImJmkmJmkudHlwZT09PSJlbGVtZW50IiYmaS50YWdOYW1lPT09ImNvbGdyb3VwIiYmUDcoaSxyLmNoaWxkcmVuLmluZGV4T2YoaSkscik/ITE6ISEoYSYmYS50eXBlPT09ImVsZW1lbnQiJiZhLnRhZ05hbWU9PT0iY29sIil9ZnVuY3Rpb24gbHpyKGUsdCxyKXtsZXQgaT1kVyhyLHQpLGE9SDEoZSwtMSk7cmV0dXJuIHImJmkmJmkudHlwZT09PSJlbGVtZW50IiYmKGkudGFnTmFtZT09PSJ0aGVhZCJ8fGkudGFnTmFtZT09PSJ0Ym9keSIpJiZQNyhpLHIuY2hpbGRyZW4uaW5kZXhPZihpKSxyKT8hMTohIShhJiZhLnR5cGU9PT0iZWxlbWVudCImJmEudGFnTmFtZT09PSJ0ciIpfXZhciBGX2UsT19lPXAoKCk9PntwaygpO3VXKCk7ZlcoKTtwVygpO0ZfZT1oayh7Ym9keTpvenIsY29sZ3JvdXA6c3pyLGhlYWQ6bnpyLGh0bWw6YXpyLHRib2R5Omx6cn0pfSk7ZnVuY3Rpb24gUl9lKGUsdCxyLGkpe2xldCBhPWkuc2NoZW1hLG49YS5zcGFjZT09PSJzdmciPyExOmkuc2V0dGluZ3Mub21pdE9wdGlvbmFsVGFncyxvPWEuc3BhY2U9PT0ic3ZnIj9pLnNldHRpbmdzLmNsb3NlRW1wdHlFbGVtZW50czppLnNldHRpbmdzLnZvaWRzLmluY2x1ZGVzKGUudGFnTmFtZS50b0xvd2VyQ2FzZSgpKSxzPVtdLGw7YS5zcGFjZT09PSJodG1sIiYmZS50YWdOYW1lPT09InN2ZyImJihpLnNjaGVtYT1sayk7bGV0IGM9Y3pyKGksZS5wcm9wZXJ0aWVzKSx1PWkuYWxsKGEuc3BhY2U9PT0iaHRtbCImJmUudGFnTmFtZT09PSJ0ZW1wbGF0ZSI/ZS5jb250ZW50OmUpO3JldHVybiBpLnNjaGVtYT1hLHUmJihvPSExKSwoY3x8IW58fCFGX2UoZSx0LHIpKSYmKHMucHVzaCgiPCIsZS50YWdOYW1lLGM/IiAiK2M6IiIpLG8mJihhLnNwYWNlPT09InN2ZyJ8fGkuc2V0dGluZ3MuY2xvc2VTZWxmQ2xvc2luZykmJihsPWMuY2hhckF0KGMubGVuZ3RoLTEpLCghaS5zZXR0aW5ncy50aWdodFNlbGZDbG9zaW5nfHxsPT09Ii8ifHxsJiZsIT09JyInJiZsIT09IiciKSYmcy5wdXNoKCIgIikscy5wdXNoKCIvIikpLHMucHVzaCgiPiIpKSxzLnB1c2godSksIW8mJighbnx8IVA3KGUsdCxyKSkmJnMucHVzaCgiPC8iK2UudGFnTmFtZSsiPiIpLHMuam9pbigiIil9ZnVuY3Rpb24gY3pyKGUsdCl7bGV0IHI9W10saT0tMSxhO2lmKHQpe2ZvcihhIGluIHQpaWYodFthXSE9PW51bGwmJnRbYV0hPT12b2lkIDApe2xldCBuPWR6cihlLGEsdFthXSk7biYmci5wdXNoKG4pfX1mb3IoOysraTxyLmxlbmd0aDspe2xldCBuPWUuc2V0dGluZ3MudGlnaHRBdHRyaWJ1dGVzP3JbaV0uY2hhckF0KHJbaV0ubGVuZ3RoLTEpOnZvaWQgMDtpIT09ci5sZW5ndGgtMSYmbiE9PSciJyYmbiE9PSInIiYmKHJbaV0rPSIgIil9cmV0dXJuIHIuam9pbigiIil9ZnVuY3Rpb24gZHpyKGUsdCxyKXtsZXQgaT1vVyhlLnNjaGVtYSx0KSxhPWUuc2V0dGluZ3MuYWxsb3dQYXJzZUVycm9ycyYmZS5zY2hlbWEuc3BhY2U9PT0iaHRtbCI/MDoxLG49ZS5zZXR0aW5ncy5hbGxvd0Rhbmdlcm91c0NoYXJhY3RlcnM/MDoxLG89ZS5xdW90ZSxzO2lmKGkub3ZlcmxvYWRlZEJvb2xlYW4mJihyPT09aS5hdHRyaWJ1dGV8fHI9PT0iIik/cj0hMDooaS5ib29sZWFufHxpLm92ZXJsb2FkZWRCb29sZWFuKSYmKHR5cGVvZiByIT0ic3RyaW5nInx8cj09PWkuYXR0cmlidXRlfHxyPT09IiIpJiYocj0hIXIpLHI9PW51bGx8fHI9PT0hMXx8dHlwZW9mIHI9PSJudW1iZXIiJiZOdW1iZXIuaXNOYU4ocikpcmV0dXJuIiI7bGV0IGw9SWwoaS5hdHRyaWJ1dGUsT2JqZWN0LmFzc2lnbih7fSxlLnNldHRpbmdzLmNoYXJhY3RlclJlZmVyZW5jZXMse3N1YnNldDpmay5uYW1lW2FdW25dfSkpO3JldHVybiByPT09ITB8fChyPUFycmF5LmlzQXJyYXkocik/KGkuY29tbWFTZXBhcmF0ZWQ/X19lOkFfZSkocix7cGFkTGVmdDohZS5zZXR0aW5ncy50aWdodENvbW1hU2VwYXJhdGVkTGlzdHN9KTpTdHJpbmcociksZS5zZXR0aW5ncy5jb2xsYXBzZUVtcHR5QXR0cmlidXRlcyYmIXIpP2w6KGUuc2V0dGluZ3MucHJlZmVyVW5xdW90ZWQmJihzPUlsKHIsT2JqZWN0LmFzc2lnbih7fSxlLnNldHRpbmdzLmNoYXJhY3RlclJlZmVyZW5jZXMse2F0dHJpYnV0ZTohMCxzdWJzZXQ6ZmsudW5xdW90ZWRbYV1bbl19KSkpLHMhPT1yJiYoZS5zZXR0aW5ncy5xdW90ZVNtYXJ0JiZ4dShyLG8pPnh1KHIsZS5hbHRlcm5hdGl2ZSkmJihvPWUuYWx0ZXJuYXRpdmUpLHM9bytJbChyLE9iamVjdC5hc3NpZ24oe30sZS5zZXR0aW5ncy5jaGFyYWN0ZXJSZWZlcmVuY2VzLHtzdWJzZXQ6KG89PT0iJyI/Zmsuc2luZ2xlOmZrLmRvdWJsZSlbYV1bbl0sYXR0cmlidXRlOiEwfSkpK28pLGwrKHMmJiI9IitzKSl9dmFyIGZrLEJfZT1wKCgpPT57ZVYoKTtMX2UoKTtzVygpO0RfZSgpO3VrKCk7ZlcoKTtPX2UoKTtmaz17bmFtZTpbW2AJClxmXHIgJi89PmAuc3BsaXQoIiIpLGAJClxmXHIgIiYnLz0+XGBgLnNwbGl0KCIiKV0sW2BcMAkKXGZcciAiJicvPD0+YC5zcGxpdCgiIiksYFwwCQpcZlxyICImJy88PT5cYGAuc3BsaXQoIiIpXV0sdW5xdW90ZWQ6W1tgCQpcZlxyICY+YC5zcGxpdCgiIiksYFwwCQpcZlxyICImJzw9PlxgYC5zcGxpdCgiIildLFtgXDAJClxmXHIgIiYnPD0+XGBgLnNwbGl0KCIiKSxgXDAJClxmXHIgIiYnPD0+XGBgLnNwbGl0KCIiKV1dLHNpbmdsZTpbWyImJyIuc3BsaXQoIiIpLCJcIiYnYCIuc3BsaXQoIiIpXSxbIlwwJiciLnNwbGl0KCIiKSwiXDBcIiYnYCIuc3BsaXQoIiIpXV0sZG91YmxlOltbJyImJy5zcGxpdCgiIiksIlwiJidgIi5zcGxpdCgiIildLFsnXDAiJicuc3BsaXQoIiIpLCJcMFwiJidgIi5zcGxpdCgiIildXX19KTtmdW5jdGlvbiBtayhlLHQscixpKXtyZXR1cm4gciYmci50eXBlPT09ImVsZW1lbnQiJiYoci50YWdOYW1lPT09InNjcmlwdCJ8fHIudGFnTmFtZT09PSJzdHlsZSIpP2UudmFsdWU6SWwoZS52YWx1ZSxPYmplY3QuYXNzaWduKHt9LGkuc2V0dGluZ3MuY2hhcmFjdGVyUmVmZXJlbmNlcyx7c3Vic2V0OnV6cn0pKX12YXIgdXpyLG1XPXAoKCk9Pnt1aygpO3V6cj1bIjwiLCImIl19KTtmdW5jdGlvbiBIX2UoZSx0LHIsaSl7cmV0dXJuIGkuc2V0dGluZ3MuYWxsb3dEYW5nZXJvdXNIdG1sP2UudmFsdWU6bWsoZSx0LHIsaSl9dmFyIHFfZT1wKCgpPT57bVcoKX0pO2Z1bmN0aW9uIGpfZShlLHQscixpKXtyZXR1cm4gaS5hbGwoZSl9dmFyIFZfZT1wKCgpPT57fSk7ZnVuY3Rpb24gcHpyKGUpe3Rocm93IG5ldyBFcnJvcigiRXhwZWN0ZWQgbm9kZSwgbm90IGAiK2UrImAiKX1mdW5jdGlvbiBoenIoZSl7bGV0IHQ9ZTt0aHJvdyBuZXcgRXJyb3IoIkNhbm5vdCBjb21waWxlIHVua25vd24gbm9kZSBgIit0LnR5cGUrImAiKX12YXIgVV9lLFdfZT1wKCgpPT57dVYoKTt6X2UoKTtUX2UoKTtCX2UoKTtxX2UoKTtWX2UoKTttVygpO1VfZT1mTSgidHlwZSIse2ludmFsaWQ6cHpyLHVua25vd246aHpyLGhhbmRsZXJzOntjb21tZW50OlNfZSxkb2N0eXBlOkNfZSxlbGVtZW50OlJfZSxyYXc6SF9lLHJvb3Q6al9lLHRleHQ6bWt9fSl9KTtmdW5jdGlvbiBnVyhlLHQpe2xldCByPXR8fGZ6cixpPXIucXVvdGV8fCciJyxhPWk9PT0nIic/IiciOiciJztpZihpIT09JyInJiZpIT09IiciKXRocm93IG5ldyBFcnJvcigiSW52YWxpZCBxdW90ZSBgIitpKyJgLCBleHBlY3RlZCBgJ2Agb3IgYFwiYCIpO3JldHVybntvbmU6YnpyLGFsbDp2enIsc2V0dGluZ3M6e29taXRPcHRpb25hbFRhZ3M6ci5vbWl0T3B0aW9uYWxUYWdzfHwhMSxhbGxvd1BhcnNlRXJyb3JzOnIuYWxsb3dQYXJzZUVycm9yc3x8ITEsYWxsb3dEYW5nZXJvdXNDaGFyYWN0ZXJzOnIuYWxsb3dEYW5nZXJvdXNDaGFyYWN0ZXJzfHwhMSxxdW90ZVNtYXJ0OnIucXVvdGVTbWFydHx8ITEscHJlZmVyVW5xdW90ZWQ6ci5wcmVmZXJVbnF1b3RlZHx8ITEsdGlnaHRBdHRyaWJ1dGVzOnIudGlnaHRBdHRyaWJ1dGVzfHwhMSx1cHBlckRvY3R5cGU6ci51cHBlckRvY3R5cGV8fCExLHRpZ2h0RG9jdHlwZTpyLnRpZ2h0RG9jdHlwZXx8ITEsYm9ndXNDb21tZW50czpyLmJvZ3VzQ29tbWVudHN8fCExLHRpZ2h0Q29tbWFTZXBhcmF0ZWRMaXN0czpyLnRpZ2h0Q29tbWFTZXBhcmF0ZWRMaXN0c3x8ITEsdGlnaHRTZWxmQ2xvc2luZzpyLnRpZ2h0U2VsZkNsb3Npbmd8fCExLGNvbGxhcHNlRW1wdHlBdHRyaWJ1dGVzOnIuY29sbGFwc2VFbXB0eUF0dHJpYnV0ZXN8fCExLGFsbG93RGFuZ2Vyb3VzSHRtbDpyLmFsbG93RGFuZ2Vyb3VzSHRtbHx8ITEsdm9pZHM6ci52b2lkc3x8alRlLGNoYXJhY3RlclJlZmVyZW5jZXM6ci5jaGFyYWN0ZXJSZWZlcmVuY2VzfHxtenIsY2xvc2VTZWxmQ2xvc2luZzpyLmNsb3NlU2VsZkNsb3Npbmd8fCExLGNsb3NlRW1wdHlFbGVtZW50czpyLmNsb3NlRW1wdHlFbGVtZW50c3x8ITF9LHNjaGVtYTpyLnNwYWNlPT09InN2ZyI/bGs6YV9lLHF1b3RlOmksYWx0ZXJuYXRpdmU6YX0ub25lKEFycmF5LmlzQXJyYXkoZSk/e3R5cGU6InJvb3QiLGNoaWxkcmVuOmV9OmUsdm9pZCAwLHZvaWQgMCl9ZnVuY3Rpb24gYnpyKGUsdCxyKXtyZXR1cm4gVV9lKGUsdCxyLHRoaXMpfWZ1bmN0aW9uIHZ6cihlKXtsZXQgdD1bXSxyPWUmJmUuY2hpbGRyZW58fGd6cixpPS0xO2Zvcig7KytpPHIubGVuZ3RoOyl0W2ldPXRoaXMub25lKHJbaV0saSxlKTtyZXR1cm4gdC5qb2luKCIiKX12YXIgZnpyLG16cixnenIsR19lPXAoKCk9PntWVGUoKTtzVygpO1dfZSgpO2Z6cj17fSxtenI9e30sZ3pyPVtdfSk7dmFyIFlfZT1wKCgpPT57R19lKCl9KTtmdW5jdGlvbiAkdShlKXtsZXQgdD10aGlzLHtoYW5kbGVyczpyLHNhbml0aXplOmksLi4uYX09ZXx8eHpyLG49ITEsbzt0eXBlb2YgaT09ImJvb2xlYW4iP249IWk6aSYmKG89aSksdC5jb21waWxlcj1zO2Z1bmN0aW9uIHMobCxjKXtsZXQgdT1ZVShsLHtoYW5kbGVyczpyLGFsbG93RGFuZ2Vyb3VzSHRtbDpufSksZD1uP3U6cVUodSxvKSxoPWdXKGQsey4uLmEsYWxsb3dEYW5nZXJvdXNIdG1sOm59KTtyZXR1cm4gYy5leHRuYW1lJiYoYy5leHRuYW1lPSIuaHRtbCIpLGwmJmwudHlwZT09PSJyb290IiYmaCYmL1teXHJcbl0vLnRlc3QoaC5jaGFyQXQoaC5sZW5ndGgtMSkpP2grYApgOmh9fXZhciB4enIsWl9lPXAoKCk9PntPQ2UoKTtxVGUoKTtZX2UoKTt4enI9e319KTt2YXIgWF9lPXAoKCk9PntaX2UoKX0pO2Z1bmN0aW9uIEl1KGUpe2xldCB0PXRoaXM7dC5jb21waWxlcj1yO2Z1bmN0aW9uIHIoaSl7cmV0dXJuIEVWKGksey4uLnQuZGF0YSgic2V0dGluZ3MiKSwuLi5lLGV4dGVuc2lvbnM6dC5kYXRhKCJ0b01hcmtkb3duRXh0ZW5zaW9ucyIpfHxbXX0pfX12YXIgUV9lPXAoKCk9PntTTSgpfSk7dmFyIEpfZT1wKCgpPT57UV9lKCl9KTtmdW5jdGlvbiB5enIoZSl7Zm9yKHZhciB0PTE7dDxhcmd1bWVudHMubGVuZ3RoO3QrKyl7dmFyIHI9YXJndW1lbnRzW3RdO2Zvcih2YXIgaSBpbiByKXIuaGFzT3duUHJvcGVydHkoaSkmJihlW2ldPXJbaV0pfXJldHVybiBlfWZ1bmN0aW9uIGJXKGUsdCl7cmV0dXJuIEFycmF5KHQrMSkuam9pbihlKX1mdW5jdGlvbiBLX2UoZSl7cmV0dXJuIGUucmVwbGFjZSgvXlxuKi8sIiIpfWZ1bmN0aW9uIGVMZShlKXtmb3IodmFyIHQ9ZS5sZW5ndGg7dD4wJiZlW3QtMV09PT1gCmA7KXQtLTtyZXR1cm4gZS5zdWJzdHJpbmcoMCx0KX1mdW5jdGlvbiB0TGUoZSl7cmV0dXJuIGVMZShLX2UoZSkpfWZ1bmN0aW9uIHZXKGUpe3JldHVybiB4VyhlLHd6cil9ZnVuY3Rpb24gaUxlKGUpe3JldHVybiB4VyhlLHJMZSl9ZnVuY3Rpb24gTXpyKGUpe3JldHVybiBuTGUoZSxyTGUpfWZ1bmN0aW9uIGt6cihlKXtyZXR1cm4geFcoZSxhTGUpfWZ1bmN0aW9uIFN6cihlKXtyZXR1cm4gbkxlKGUsYUxlKX1mdW5jdGlvbiB4VyhlLHQpe3JldHVybiB0LmluZGV4T2YoZS5ub2RlTmFtZSk+PTB9ZnVuY3Rpb24gbkxlKGUsdCl7cmV0dXJuIGUuZ2V0RWxlbWVudHNCeVRhZ05hbWUmJnQuc29tZShmdW5jdGlvbihyKXtyZXR1cm4gZS5nZXRFbGVtZW50c0J5VGFnTmFtZShyKS5sZW5ndGh9KX1mdW5jdGlvbiBnayhlKXtyZXR1cm4gZT9lLnJlcGxhY2UoLyhcbitccyopKy9nLGAKYCk6IiJ9ZnVuY3Rpb24gb0xlKGUpe3RoaXMub3B0aW9ucz1lLHRoaXMuX2tlZXA9W10sdGhpcy5fcmVtb3ZlPVtdLHRoaXMuYmxhbmtSdWxlPXtyZXBsYWNlbWVudDplLmJsYW5rUmVwbGFjZW1lbnR9LHRoaXMua2VlcFJlcGxhY2VtZW50PWUua2VlcFJlcGxhY2VtZW50LHRoaXMuZGVmYXVsdFJ1bGU9e3JlcGxhY2VtZW50OmUuZGVmYXVsdFJlcGxhY2VtZW50fSx0aGlzLmFycmF5PVtdO2Zvcih2YXIgdCBpbiBlLnJ1bGVzKXRoaXMuYXJyYXkucHVzaChlLnJ1bGVzW3RdKX1mdW5jdGlvbiB5VyhlLHQscil7Zm9yKHZhciBpPTA7aTxlLmxlbmd0aDtpKyspe3ZhciBhPWVbaV07aWYoenpyKGEsdCxyKSlyZXR1cm4gYX19ZnVuY3Rpb24genpyKGUsdCxyKXt2YXIgaT1lLmZpbHRlcjtpZih0eXBlb2YgaT09InN0cmluZyIpe2lmKGk9PT10Lm5vZGVOYW1lLnRvTG93ZXJDYXNlKCkpcmV0dXJuITB9ZWxzZSBpZihBcnJheS5pc0FycmF5KGkpKXtpZihpLmluZGV4T2YodC5ub2RlTmFtZS50b0xvd2VyQ2FzZSgpKT4tMSlyZXR1cm4hMH1lbHNlIGlmKHR5cGVvZiBpPT0iZnVuY3Rpb24iKXtpZihpLmNhbGwoZSx0LHIpKXJldHVybiEwfWVsc2UgdGhyb3cgbmV3IFR5cGVFcnJvcigiYGZpbHRlcmAgbmVlZHMgdG8gYmUgYSBzdHJpbmcsIGFycmF5LCBvciBmdW5jdGlvbiIpfWZ1bmN0aW9uIEN6cihlKXt2YXIgdD1lLmVsZW1lbnQscj1lLmlzQmxvY2ssaT1lLmlzVm9pZCxhPWUuaXNQcmV8fGZ1bmN0aW9uKGQpe3JldHVybiBkLm5vZGVOYW1lPT09IlBSRSJ9O2lmKCEoIXQuZmlyc3RDaGlsZHx8YSh0KSkpe2Zvcih2YXIgbj1udWxsLG89ITEscz1udWxsLGw9c0xlKHMsdCxhKTtsIT09dDspe2lmKGwubm9kZVR5cGU9PT0zfHxsLm5vZGVUeXBlPT09NCl7dmFyIGM9bC5kYXRhLnJlcGxhY2UoL1sgXHJcblx0XSsvZywiICIpO2lmKCghbnx8LyAkLy50ZXN0KG4uZGF0YSkpJiYhbyYmY1swXT09PSIgIiYmKGM9Yy5zdWJzdHIoMSkpLCFjKXtsPXdXKGwpO2NvbnRpbnVlfWwuZGF0YT1jLG49bH1lbHNlIGlmKGwubm9kZVR5cGU9PT0xKXIobCl8fGwubm9kZU5hbWU9PT0iQlIiPyhuJiYobi5kYXRhPW4uZGF0YS5yZXBsYWNlKC8gJC8sIiIpKSxuPW51bGwsbz0hMSk6aShsKXx8YShsKT8obj1udWxsLG89ITApOm4mJihvPSExKTtlbHNle2w9d1cobCk7Y29udGludWV9dmFyIHU9c0xlKHMsbCxhKTtzPWwsbD11fW4mJihuLmRhdGE9bi5kYXRhLnJlcGxhY2UoLyAkLywiIiksbi5kYXRhfHx3VyhuKSl9fWZ1bmN0aW9uIHdXKGUpe3ZhciB0PWUubmV4dFNpYmxpbmd8fGUucGFyZW50Tm9kZTtyZXR1cm4gZS5wYXJlbnROb2RlLnJlbW92ZUNoaWxkKGUpLHR9ZnVuY3Rpb24gc0xlKGUsdCxyKXtyZXR1cm4gZSYmZS5wYXJlbnROb2RlPT09dHx8cih0KT90Lm5leHRTaWJsaW5nfHx0LnBhcmVudE5vZGU6dC5maXJzdENoaWxkfHx0Lm5leHRTaWJsaW5nfHx0LnBhcmVudE5vZGV9ZnVuY3Rpb24gVHpyKCl7dmFyIGU9TVcuRE9NUGFyc2VyLHQ9ITE7dHJ5e25ldyBlKCkucGFyc2VGcm9tU3RyaW5nKCIiLCJ0ZXh0L2h0bWwiKSYmKHQ9ITApfWNhdGNoe31yZXR1cm4gdH1mdW5jdGlvbiBfenIoKXt2YXIgZT1mdW5jdGlvbigpe307cmV0dXJuIEx6cigpP2UucHJvdG90eXBlLnBhcnNlRnJvbVN0cmluZz1mdW5jdGlvbih0KXt2YXIgcj1uZXcgd2luZG93LkFjdGl2ZVhPYmplY3QoImh0bWxmaWxlIik7cmV0dXJuIHIuZGVzaWduTW9kZT0ib24iLHIub3BlbigpLHIud3JpdGUodCksci5jbG9zZSgpLHJ9OmUucHJvdG90eXBlLnBhcnNlRnJvbVN0cmluZz1mdW5jdGlvbih0KXt2YXIgcj1kb2N1bWVudC5pbXBsZW1lbnRhdGlvbi5jcmVhdGVIVE1MRG9jdW1lbnQoIiIpO3JldHVybiByLm9wZW4oKSxyLndyaXRlKHQpLHIuY2xvc2UoKSxyfSxlfWZ1bmN0aW9uIEx6cigpe3ZhciBlPSExO3RyeXtkb2N1bWVudC5pbXBsZW1lbnRhdGlvbi5jcmVhdGVIVE1MRG9jdW1lbnQoIiIpLm9wZW4oKX1jYXRjaHtNVy5BY3RpdmVYT2JqZWN0JiYoZT0hMCl9cmV0dXJuIGV9ZnVuY3Rpb24gRHpyKGUsdCl7dmFyIHI7aWYodHlwZW9mIGU9PSJzdHJpbmciKXt2YXIgaT1FenIoKS5wYXJzZUZyb21TdHJpbmcoJzx4LXR1cm5kb3duIGlkPSJ0dXJuZG93bi1yb290Ij4nK2UrIjwveC10dXJuZG93bj4iLCJ0ZXh0L2h0bWwiKTtyPWkuZ2V0RWxlbWVudEJ5SWQoInR1cm5kb3duLXJvb3QiKX1lbHNlIHI9ZS5jbG9uZU5vZGUoITApO3JldHVybiBDenIoe2VsZW1lbnQ6cixpc0Jsb2NrOnZXLGlzVm9pZDppTGUsaXNQcmU6dC5wcmVmb3JtYXR0ZWRDb2RlPyR6cjpudWxsfSkscn1mdW5jdGlvbiBFenIoKXtyZXR1cm4ga1c9a1d8fG5ldyBBenIsa1d9ZnVuY3Rpb24gJHpyKGUpe3JldHVybiBlLm5vZGVOYW1lPT09IlBSRSJ8fGUubm9kZU5hbWU9PT0iQ09ERSJ9ZnVuY3Rpb24gSXpyKGUsdCl7cmV0dXJuIGUuaXNCbG9jaz12VyhlKSxlLmlzQ29kZT1lLm5vZGVOYW1lPT09IkNPREUifHxlLnBhcmVudE5vZGUuaXNDb2RlLGUuaXNCbGFuaz1QenIoZSksZS5mbGFua2luZ1doaXRlc3BhY2U9TnpyKGUsdCksZX1mdW5jdGlvbiBQenIoZSl7cmV0dXJuIWlMZShlKSYmIWt6cihlKSYmL15ccyokL2kudGVzdChlLnRleHRDb250ZW50KSYmIU16cihlKSYmIVN6cihlKX1mdW5jdGlvbiBOenIoZSx0KXtpZihlLmlzQmxvY2t8fHQucHJlZm9ybWF0dGVkQ29kZSYmZS5pc0NvZGUpcmV0dXJue2xlYWRpbmc6IiIsdHJhaWxpbmc6IiJ9O3ZhciByPUZ6cihlLnRleHRDb250ZW50KTtyZXR1cm4gci5sZWFkaW5nQXNjaWkmJmxMZSgibGVmdCIsZSx0KSYmKHIubGVhZGluZz1yLmxlYWRpbmdOb25Bc2NpaSksci50cmFpbGluZ0FzY2lpJiZsTGUoInJpZ2h0IixlLHQpJiYoci50cmFpbGluZz1yLnRyYWlsaW5nTm9uQXNjaWkpLHtsZWFkaW5nOnIubGVhZGluZyx0cmFpbGluZzpyLnRyYWlsaW5nfX1mdW5jdGlvbiBGenIoZSl7dmFyIHQ9ZS5tYXRjaCgvXigoWyBcdFxyXG5dKikoXHMqKSkoPzooPz1cUylbXHNcU10qXFMpPygoXHMqPykoWyBcdFxyXG5dKikpJC8pO3JldHVybntsZWFkaW5nOnRbMV0sbGVhZGluZ0FzY2lpOnRbMl0sbGVhZGluZ05vbkFzY2lpOnRbM10sdHJhaWxpbmc6dFs0XSx0cmFpbGluZ05vbkFzY2lpOnRbNV0sdHJhaWxpbmdBc2NpaTp0WzZdfX1mdW5jdGlvbiBsTGUoZSx0LHIpe3ZhciBpLGEsbjtyZXR1cm4gZT09PSJsZWZ0Ij8oaT10LnByZXZpb3VzU2libGluZyxhPS8gJC8pOihpPXQubmV4dFNpYmxpbmcsYT0vXiAvKSxpJiYoaS5ub2RlVHlwZT09PTM/bj1hLnRlc3QoaS5ub2RlVmFsdWUpOnIucHJlZm9ybWF0dGVkQ29kZSYmaS5ub2RlTmFtZT09PSJDT0RFIj9uPSExOmkubm9kZVR5cGU9PT0xJiYhdlcoaSkmJihuPWEudGVzdChpLnRleHRDb250ZW50KSkpLG59ZnVuY3Rpb24gYmsoZSl7aWYoISh0aGlzIGluc3RhbmNlb2YgYmspKXJldHVybiBuZXcgYmsoZSk7dmFyIHQ9e3J1bGVzOnhhLGhlYWRpbmdTdHlsZToic2V0ZXh0IixocjoiKiAqICoiLGJ1bGxldExpc3RNYXJrZXI6IioiLGNvZGVCbG9ja1N0eWxlOiJpbmRlbnRlZCIsZmVuY2U6ImBgYCIsZW1EZWxpbWl0ZXI6Il8iLHN0cm9uZ0RlbGltaXRlcjoiKioiLGxpbmtTdHlsZToiaW5saW5lZCIsbGlua1JlZmVyZW5jZVN0eWxlOiJmdWxsIixicjoiICAiLHByZWZvcm1hdHRlZENvZGU6ITEsYmxhbmtSZXBsYWNlbWVudDpmdW5jdGlvbihyLGkpe3JldHVybiBpLmlzQmxvY2s/YAoKYDoiIn0sa2VlcFJlcGxhY2VtZW50OmZ1bmN0aW9uKHIsaSl7cmV0dXJuIGkuaXNCbG9jaz9gCgpgK2kub3V0ZXJIVE1MK2AKCmA6aS5vdXRlckhUTUx9LGRlZmF1bHRSZXBsYWNlbWVudDpmdW5jdGlvbihyLGkpe3JldHVybiBpLmlzQmxvY2s/YAoKYCtyK2AKCmA6cn19O3RoaXMub3B0aW9ucz15enIoe30sdCxlKSx0aGlzLnJ1bGVzPW5ldyBvTGUodGhpcy5vcHRpb25zKX1mdW5jdGlvbiBjTGUoZSl7dmFyIHQ9dGhpcztyZXR1cm4gT3pyLmNhbGwoZS5jaGlsZE5vZGVzLGZ1bmN0aW9uKHIsaSl7aT1uZXcgSXpyKGksdC5vcHRpb25zKTt2YXIgYT0iIjtyZXR1cm4gaS5ub2RlVHlwZT09PTM/YT1pLmlzQ29kZT9pLm5vZGVWYWx1ZTp0LmVzY2FwZShpLm5vZGVWYWx1ZSk6aS5ub2RlVHlwZT09PTEmJihhPUh6ci5jYWxsKHQsaSkpLGRMZShyLGEpfSwiIil9ZnVuY3Rpb24gQnpyKGUpe3ZhciB0PXRoaXM7cmV0dXJuIHRoaXMucnVsZXMuZm9yRWFjaChmdW5jdGlvbihyKXt0eXBlb2Ygci5hcHBlbmQ9PSJmdW5jdGlvbiImJihlPWRMZShlLHIuYXBwZW5kKHQub3B0aW9ucykpKX0pLGUucmVwbGFjZSgvXltcdFxyXG5dKy8sIiIpLnJlcGxhY2UoL1tcdFxyXG5cc10rJC8sIiIpfWZ1bmN0aW9uIEh6cihlKXt2YXIgdD10aGlzLnJ1bGVzLmZvck5vZGUoZSkscj1jTGUuY2FsbCh0aGlzLGUpLGk9ZS5mbGFua2luZ1doaXRlc3BhY2U7cmV0dXJuKGkubGVhZGluZ3x8aS50cmFpbGluZykmJihyPXIudHJpbSgpKSxpLmxlYWRpbmcrdC5yZXBsYWNlbWVudChyLGUsdGhpcy5vcHRpb25zKStpLnRyYWlsaW5nfWZ1bmN0aW9uIGRMZShlLHQpe3ZhciByPWVMZShlKSxpPUtfZSh0KSxhPU1hdGgubWF4KGUubGVuZ3RoLXIubGVuZ3RoLHQubGVuZ3RoLWkubGVuZ3RoKSxuPWAKCmAuc3Vic3RyaW5nKDAsYSk7cmV0dXJuIHIrbitpfWZ1bmN0aW9uIHF6cihlKXtyZXR1cm4gZSE9bnVsbCYmKHR5cGVvZiBlPT0ic3RyaW5nInx8ZS5ub2RlVHlwZSYmKGUubm9kZVR5cGU9PT0xfHxlLm5vZGVUeXBlPT09OXx8ZS5ub2RlVHlwZT09PTExKSl9dmFyIHd6cixyTGUsYUxlLHhhLE1XLEF6cixrVyxPenIsUnpyLHZrLHVMZT1wKCgpPT57d3pyPVsiQUREUkVTUyIsIkFSVElDTEUiLCJBU0lERSIsIkFVRElPIiwiQkxPQ0tRVU9URSIsIkJPRFkiLCJDQU5WQVMiLCJDRU5URVIiLCJERCIsIkRJUiIsIkRJViIsIkRMIiwiRFQiLCJGSUVMRFNFVCIsIkZJR0NBUFRJT04iLCJGSUdVUkUiLCJGT09URVIiLCJGT1JNIiwiRlJBTUVTRVQiLCJIMSIsIkgyIiwiSDMiLCJINCIsIkg1IiwiSDYiLCJIRUFERVIiLCJIR1JPVVAiLCJIUiIsIkhUTUwiLCJJU0lOREVYIiwiTEkiLCJNQUlOIiwiTUVOVSIsIk5BViIsIk5PRlJBTUVTIiwiTk9TQ1JJUFQiLCJPTCIsIk9VVFBVVCIsIlAiLCJQUkUiLCJTRUNUSU9OIiwiVEFCTEUiLCJUQk9EWSIsIlREIiwiVEZPT1QiLCJUSCIsIlRIRUFEIiwiVFIiLCJVTCJdO3JMZT1bIkFSRUEiLCJCQVNFIiwiQlIiLCJDT0wiLCJDT01NQU5EIiwiRU1CRUQiLCJIUiIsIklNRyIsIklOUFVUIiwiS0VZR0VOIiwiTElOSyIsIk1FVEEiLCJQQVJBTSIsIlNPVVJDRSIsIlRSQUNLIiwiV0JSIl07YUxlPVsiQSIsIlRBQkxFIiwiVEhFQUQiLCJUQk9EWSIsIlRGT09UIiwiVEgiLCJURCIsIklGUkFNRSIsIlNDUklQVCIsIkFVRElPIiwiVklERU8iXTt4YT17fTt4YS5wYXJhZ3JhcGg9e2ZpbHRlcjoicCIscmVwbGFjZW1lbnQ6ZnVuY3Rpb24oZSl7cmV0dXJuYAoKYCtlK2AKCmB9fSx4YS5saW5lQnJlYWs9e2ZpbHRlcjoiYnIiLHJlcGxhY2VtZW50OmZ1bmN0aW9uKGUsdCxyKXtyZXR1cm4gci5icitgCmB9fSx4YS5oZWFkaW5nPXtmaWx0ZXI6WyJoMSIsImgyIiwiaDMiLCJoNCIsImg1IiwiaDYiXSxyZXBsYWNlbWVudDpmdW5jdGlvbihlLHQscil7dmFyIGk9TnVtYmVyKHQubm9kZU5hbWUuY2hhckF0KDEpKTtpZihyLmhlYWRpbmdTdHlsZT09PSJzZXRleHQiJiZpPDMpe3ZhciBhPWJXKGk9PT0xPyI9IjoiLSIsZS5sZW5ndGgpO3JldHVybmAKCmArZStgCmArYStgCgpgfWVsc2UgcmV0dXJuYAoKYCtiVygiIyIsaSkrIiAiK2UrYAoKYH19LHhhLmJsb2NrcXVvdGU9e2ZpbHRlcjoiYmxvY2txdW90ZSIscmVwbGFjZW1lbnQ6ZnVuY3Rpb24oZSl7cmV0dXJuIGU9dExlKGUpLnJlcGxhY2UoL14vZ20sIj4gIiksYAoKYCtlK2AKCmB9fSx4YS5saXN0PXtmaWx0ZXI6WyJ1bCIsIm9sIl0scmVwbGFjZW1lbnQ6ZnVuY3Rpb24oZSx0KXt2YXIgcj10LnBhcmVudE5vZGU7cmV0dXJuIHIubm9kZU5hbWU9PT0iTEkiJiZyLmxhc3RFbGVtZW50Q2hpbGQ9PT10P2AKYCtlOmAKCmArZStgCgpgfX0seGEubGlzdEl0ZW09e2ZpbHRlcjoibGkiLHJlcGxhY2VtZW50OmZ1bmN0aW9uKGUsdCxyKXt2YXIgaT1yLmJ1bGxldExpc3RNYXJrZXIrIiAgICIsYT10LnBhcmVudE5vZGU7aWYoYS5ub2RlTmFtZT09PSJPTCIpe3ZhciBuPWEuZ2V0QXR0cmlidXRlKCJzdGFydCIpLG89QXJyYXkucHJvdG90eXBlLmluZGV4T2YuY2FsbChhLmNoaWxkcmVuLHQpO2k9KG4/TnVtYmVyKG4pK286bysxKSsiLiAgIn12YXIgcz0vXG4kLy50ZXN0KGUpO3JldHVybiBlPXRMZShlKSsocz9gCmA6IiIpLGU9ZS5yZXBsYWNlKC9cbi9nbSxgCmArIiAiLnJlcGVhdChpLmxlbmd0aCkpLGkrZSsodC5uZXh0U2libGluZz9gCmA6IiIpfX0seGEuaW5kZW50ZWRDb2RlQmxvY2s9e2ZpbHRlcjpmdW5jdGlvbihlLHQpe3JldHVybiB0LmNvZGVCbG9ja1N0eWxlPT09ImluZGVudGVkIiYmZS5ub2RlTmFtZT09PSJQUkUiJiZlLmZpcnN0Q2hpbGQmJmUuZmlyc3RDaGlsZC5ub2RlTmFtZT09PSJDT0RFIn0scmVwbGFjZW1lbnQ6ZnVuY3Rpb24oZSx0LHIpe3JldHVybmAKCiAgICBgK3QuZmlyc3RDaGlsZC50ZXh0Q29udGVudC5yZXBsYWNlKC9cbi9nLGAKICAgIGApK2AKCmB9fSx4YS5mZW5jZWRDb2RlQmxvY2s9e2ZpbHRlcjpmdW5jdGlvbihlLHQpe3JldHVybiB0LmNvZGVCbG9ja1N0eWxlPT09ImZlbmNlZCImJmUubm9kZU5hbWU9PT0iUFJFIiYmZS5maXJzdENoaWxkJiZlLmZpcnN0Q2hpbGQubm9kZU5hbWU9PT0iQ09ERSJ9LHJlcGxhY2VtZW50OmZ1bmN0aW9uKGUsdCxyKXtmb3IodmFyIGk9dC5maXJzdENoaWxkLmdldEF0dHJpYnV0ZSgiY2xhc3MiKXx8IiIsYT0oaS5tYXRjaCgvbGFuZ3VhZ2UtKFxTKykvKXx8W251bGwsIiJdKVsxXSxuPXQuZmlyc3RDaGlsZC50ZXh0Q29udGVudCxvPXIuZmVuY2UuY2hhckF0KDApLHM9MyxsPW5ldyBSZWdFeHAoIl4iK28rInszLH0iLCJnbSIpLGM7Yz1sLmV4ZWMobik7KWNbMF0ubGVuZ3RoPj1zJiYocz1jWzBdLmxlbmd0aCsxKTt2YXIgdT1iVyhvLHMpO3JldHVybmAKCmArdSthK2AKYCtuLnJlcGxhY2UoL1xuJC8sIiIpK2AKYCt1K2AKCmB9fSx4YS5ob3Jpem9udGFsUnVsZT17ZmlsdGVyOiJociIscmVwbGFjZW1lbnQ6ZnVuY3Rpb24oZSx0LHIpe3JldHVybmAKCmArci5ocitgCgpgfX0seGEuaW5saW5lTGluaz17ZmlsdGVyOmZ1bmN0aW9uKGUsdCl7cmV0dXJuIHQubGlua1N0eWxlPT09ImlubGluZWQiJiZlLm5vZGVOYW1lPT09IkEiJiZlLmdldEF0dHJpYnV0ZSgiaHJlZiIpfSxyZXBsYWNlbWVudDpmdW5jdGlvbihlLHQpe3ZhciByPXQuZ2V0QXR0cmlidXRlKCJocmVmIik7ciYmKHI9ci5yZXBsYWNlKC8oWygpXSkvZywiXFwkMSIpKTt2YXIgaT1nayh0LmdldEF0dHJpYnV0ZSgidGl0bGUiKSk7cmV0dXJuIGkmJihpPScgIicraS5yZXBsYWNlKC8iL2csJ1xcIicpKyciJyksIlsiK2UrIl0oIityK2krIikifX0seGEucmVmZXJlbmNlTGluaz17ZmlsdGVyOmZ1bmN0aW9uKGUsdCl7cmV0dXJuIHQubGlua1N0eWxlPT09InJlZmVyZW5jZWQiJiZlLm5vZGVOYW1lPT09IkEiJiZlLmdldEF0dHJpYnV0ZSgiaHJlZiIpfSxyZXBsYWNlbWVudDpmdW5jdGlvbihlLHQscil7dmFyIGk9dC5nZXRBdHRyaWJ1dGUoImhyZWYiKSxhPWdrKHQuZ2V0QXR0cmlidXRlKCJ0aXRsZSIpKTthJiYoYT0nICInK2ErJyInKTt2YXIgbixvO3N3aXRjaChyLmxpbmtSZWZlcmVuY2VTdHlsZSl7Y2FzZSJjb2xsYXBzZWQiOm49IlsiK2UrIl1bXSIsbz0iWyIrZSsiXTogIitpK2E7YnJlYWs7Y2FzZSJzaG9ydGN1dCI6bj0iWyIrZSsiXSIsbz0iWyIrZSsiXTogIitpK2E7YnJlYWs7ZGVmYXVsdDp2YXIgcz10aGlzLnJlZmVyZW5jZXMubGVuZ3RoKzE7bj0iWyIrZSsiXVsiK3MrIl0iLG89IlsiK3MrIl06ICIraSthfXJldHVybiB0aGlzLnJlZmVyZW5jZXMucHVzaChvKSxufSxyZWZlcmVuY2VzOltdLGFwcGVuZDpmdW5jdGlvbihlKXt2YXIgdD0iIjtyZXR1cm4gdGhpcy5yZWZlcmVuY2VzLmxlbmd0aCYmKHQ9YAoKYCt0aGlzLnJlZmVyZW5jZXMuam9pbihgCmApK2AKCmAsdGhpcy5yZWZlcmVuY2VzPVtdKSx0fX0seGEuZW1waGFzaXM9e2ZpbHRlcjpbImVtIiwiaSJdLHJlcGxhY2VtZW50OmZ1bmN0aW9uKGUsdCxyKXtyZXR1cm4gZS50cmltKCk/ci5lbURlbGltaXRlcitlK3IuZW1EZWxpbWl0ZXI6IiJ9fSx4YS5zdHJvbmc9e2ZpbHRlcjpbInN0cm9uZyIsImIiXSxyZXBsYWNlbWVudDpmdW5jdGlvbihlLHQscil7cmV0dXJuIGUudHJpbSgpP3Iuc3Ryb25nRGVsaW1pdGVyK2Urci5zdHJvbmdEZWxpbWl0ZXI6IiJ9fSx4YS5jb2RlPXtmaWx0ZXI6ZnVuY3Rpb24oZSl7dmFyIHQ9ZS5wcmV2aW91c1NpYmxpbmd8fGUubmV4dFNpYmxpbmcscj1lLnBhcmVudE5vZGUubm9kZU5hbWU9PT0iUFJFIiYmIXQ7cmV0dXJuIGUubm9kZU5hbWU9PT0iQ09ERSImJiFyfSxyZXBsYWNlbWVudDpmdW5jdGlvbihlKXtpZighZSlyZXR1cm4iIjtlPWUucmVwbGFjZSgvXHI/XG58XHIvZywiICIpO2Zvcih2YXIgdD0vXmB8XiAuKj9bXiBdLiogJHxgJC8udGVzdChlKT8iICI6IiIscj0iYCIsaT1lLm1hdGNoKC9gKy9nbSl8fFtdO2kuaW5kZXhPZihyKSE9PS0xOylyPXIrImAiO3JldHVybiByK3QrZSt0K3J9fSx4YS5pbWFnZT17ZmlsdGVyOiJpbWciLHJlcGxhY2VtZW50OmZ1bmN0aW9uKGUsdCl7dmFyIHI9Z2sodC5nZXRBdHRyaWJ1dGUoImFsdCIpKSxpPXQuZ2V0QXR0cmlidXRlKCJzcmMiKXx8IiIsYT1nayh0LmdldEF0dHJpYnV0ZSgidGl0bGUiKSksbj1hPycgIicrYSsnIic6IiI7cmV0dXJuIGk/IiFbIityKyJdKCIraStuKyIpIjoiIn19O29MZS5wcm90b3R5cGU9e2FkZDpmdW5jdGlvbihlLHQpe3RoaXMuYXJyYXkudW5zaGlmdCh0KX0sa2VlcDpmdW5jdGlvbihlKXt0aGlzLl9rZWVwLnVuc2hpZnQoe2ZpbHRlcjplLHJlcGxhY2VtZW50OnRoaXMua2VlcFJlcGxhY2VtZW50fSl9LHJlbW92ZTpmdW5jdGlvbihlKXt0aGlzLl9yZW1vdmUudW5zaGlmdCh7ZmlsdGVyOmUscmVwbGFjZW1lbnQ6ZnVuY3Rpb24oKXtyZXR1cm4iIn19KX0sZm9yTm9kZTpmdW5jdGlvbihlKXtpZihlLmlzQmxhbmspcmV0dXJuIHRoaXMuYmxhbmtSdWxlO3ZhciB0O3JldHVybih0PXlXKHRoaXMuYXJyYXksZSx0aGlzLm9wdGlvbnMpKXx8KHQ9eVcodGhpcy5fa2VlcCxlLHRoaXMub3B0aW9ucykpfHwodD15Vyh0aGlzLl9yZW1vdmUsZSx0aGlzLm9wdGlvbnMpKT90OnRoaXMuZGVmYXVsdFJ1bGV9LGZvckVhY2g6ZnVuY3Rpb24oZSl7Zm9yKHZhciB0PTA7dDx0aGlzLmFycmF5Lmxlbmd0aDt0KyspZSh0aGlzLmFycmF5W3RdLHQpfX07TVc9dHlwZW9mIHdpbmRvdzwidSI/d2luZG93Ont9O0F6cj1UenIoKT9NVy5ET01QYXJzZXI6X3pyKCk7T3pyPUFycmF5LnByb3RvdHlwZS5yZWR1Y2UsUnpyPVtbL1xcL2csIlxcXFwiXSxbL1wqL2csIlxcKiJdLFsvXi0vZywiXFwtIl0sWy9eXCsgL2csIlxcKyAiXSxbL14oPSspL2csIlxcJDEiXSxbL14oI3sxLDZ9KSAvZywiXFwkMSAiXSxbL2AvZywiXFxgIl0sWy9efn5+L2csIlxcfn5+Il0sWy9cWy9nLCJcXFsiXSxbL1xdL2csIlxcXSJdLFsvXj4vZywiXFw+Il0sWy9fL2csIlxcXyJdLFsvXihcZCspXC4gL2csIiQxXFwuICJdXTtiay5wcm90b3R5cGU9e3R1cm5kb3duOmZ1bmN0aW9uKGUpe2lmKCFxenIoZSkpdGhyb3cgbmV3IFR5cGVFcnJvcihlKyIgaXMgbm90IGEgc3RyaW5nLCBvciBhbiBlbGVtZW50L2RvY3VtZW50L2ZyYWdtZW50IG5vZGUuIik7aWYoZT09PSIiKXJldHVybiIiO3ZhciB0PWNMZS5jYWxsKHRoaXMsbmV3IER6cihlLHRoaXMub3B0aW9ucykpO3JldHVybiBCenIuY2FsbCh0aGlzLHQpfSx1c2U6ZnVuY3Rpb24oZSl7aWYoQXJyYXkuaXNBcnJheShlKSlmb3IodmFyIHQ9MDt0PGUubGVuZ3RoO3QrKyl0aGlzLnVzZShlW3RdKTtlbHNlIGlmKHR5cGVvZiBlPT0iZnVuY3Rpb24iKWUodGhpcyk7ZWxzZSB0aHJvdyBuZXcgVHlwZUVycm9yKCJwbHVnaW4gbXVzdCBiZSBhIEZ1bmN0aW9uIG9yIGFuIEFycmF5IG9mIEZ1bmN0aW9ucyIpO3JldHVybiB0aGlzfSxhZGRSdWxlOmZ1bmN0aW9uKGUsdCl7cmV0dXJuIHRoaXMucnVsZXMuYWRkKGUsdCksdGhpc30sa2VlcDpmdW5jdGlvbihlKXtyZXR1cm4gdGhpcy5ydWxlcy5rZWVwKGUpLHRoaXN9LHJlbW92ZTpmdW5jdGlvbihlKXtyZXR1cm4gdGhpcy5ydWxlcy5yZW1vdmUoZSksdGhpc30sZXNjYXBlOmZ1bmN0aW9uKGUpe3JldHVybiBSenIucmVkdWNlKGZ1bmN0aW9uKHQscil7cmV0dXJuIHQucmVwbGFjZShyWzBdLHJbMV0pfSxlKX19O3ZrPWJrfSk7dmFyIE43PXt9O0ZlKE43LHtnZm06KCk9PmZMZSxoaWdobGlnaHRlZENvZGVCbG9jazooKT0+elcsc3RyaWtldGhyb3VnaDooKT0+Q1csdGFibGVzOigpPT5UVyx0YXNrTGlzdEl0ZW1zOigpPT5fV30pO2Z1bmN0aW9uIHpXKGUpe2UuYWRkUnVsZSgiaGlnaGxpZ2h0ZWRDb2RlQmxvY2siLHtmaWx0ZXI6ZnVuY3Rpb24odCl7dmFyIHI9dC5maXJzdENoaWxkO3JldHVybiB0Lm5vZGVOYW1lPT09IkRJViImJnBMZS50ZXN0KHQuY2xhc3NOYW1lKSYmciYmci5ub2RlTmFtZT09PSJQUkUifSxyZXBsYWNlbWVudDpmdW5jdGlvbih0LHIsaSl7dmFyIGE9ci5jbGFzc05hbWV8fCIiLG49KGEubWF0Y2gocExlKXx8W251bGwsIiJdKVsxXTtyZXR1cm5gCgpgK2kuZmVuY2UrbitgCmArci5maXJzdENoaWxkLnRleHRDb250ZW50K2AKYCtpLmZlbmNlK2AKCmB9fSl9ZnVuY3Rpb24gQ1coZSl7ZS5hZGRSdWxlKCJzdHJpa2V0aHJvdWdoIix7ZmlsdGVyOlsiZGVsIiwicyIsInN0cmlrZSJdLHJlcGxhY2VtZW50OmZ1bmN0aW9uKHQpe3JldHVybiJ+Iit0KyJ+In19KX1mdW5jdGlvbiBTVyhlKXt2YXIgdD1lLnBhcmVudE5vZGU7cmV0dXJuIHQubm9kZU5hbWU9PT0iVEhFQUQifHx0LmZpcnN0Q2hpbGQ9PT1lJiYodC5ub2RlTmFtZT09PSJUQUJMRSJ8fFV6cih0KSkmJlZ6ci5jYWxsKGUuY2hpbGROb2RlcyxmdW5jdGlvbihyKXtyZXR1cm4gci5ub2RlTmFtZT09PSJUSCJ9KX1mdW5jdGlvbiBVenIoZSl7dmFyIHQ9ZS5wcmV2aW91c1NpYmxpbmc7cmV0dXJuIGUubm9kZU5hbWU9PT0iVEJPRFkiJiYoIXR8fHQubm9kZU5hbWU9PT0iVEhFQUQiJiYvXlxzKiQvaS50ZXN0KHQudGV4dENvbnRlbnQpKX1mdW5jdGlvbiBoTGUoZSx0KXt2YXIgcj1qenIuY2FsbCh0LnBhcmVudE5vZGUuY2hpbGROb2Rlcyx0KSxpPSIgIjtyZXR1cm4gcj09PTAmJihpPSJ8ICIpLGkrZSsiIHwifWZ1bmN0aW9uIFRXKGUpe2Uua2VlcChmdW5jdGlvbihyKXtyZXR1cm4gci5ub2RlTmFtZT09PSJUQUJMRSImJiFTVyhyLnJvd3NbMF0pfSk7Zm9yKHZhciB0IGluIFB1KWUuYWRkUnVsZSh0LFB1W3RdKX1mdW5jdGlvbiBfVyhlKXtlLmFkZFJ1bGUoInRhc2tMaXN0SXRlbXMiLHtmaWx0ZXI6ZnVuY3Rpb24odCl7cmV0dXJuIHQudHlwZT09PSJjaGVja2JveCImJnQucGFyZW50Tm9kZS5ub2RlTmFtZT09PSJMSSJ9LHJlcGxhY2VtZW50OmZ1bmN0aW9uKHQscil7cmV0dXJuKHIuY2hlY2tlZD8iW3hdIjoiWyBdIikrIiAifX0pfWZ1bmN0aW9uIGZMZShlKXtlLnVzZShbelcsQ1csVFcsX1ddKX12YXIgcExlLGp6cixWenIsUHUsbUxlPXAoKCk9PntwTGU9L2hpZ2hsaWdodC0oPzp0ZXh0fHNvdXJjZSktKFthLXowLTldKykvO2p6cj1BcnJheS5wcm90b3R5cGUuaW5kZXhPZixWenI9QXJyYXkucHJvdG90eXBlLmV2ZXJ5LFB1PXt9O1B1LnRhYmxlQ2VsbD17ZmlsdGVyOlsidGgiLCJ0ZCJdLHJlcGxhY2VtZW50OmZ1bmN0aW9uKGUsdCl7cmV0dXJuIGhMZShlLHQpfX0sUHUudGFibGVSb3c9e2ZpbHRlcjoidHIiLHJlcGxhY2VtZW50OmZ1bmN0aW9uKGUsdCl7dmFyIHI9IiIsaT17bGVmdDoiOi0tIixyaWdodDoiLS06IixjZW50ZXI6IjotOiJ9O2lmKFNXKHQpKWZvcih2YXIgYT0wO2E8dC5jaGlsZE5vZGVzLmxlbmd0aDthKyspe3ZhciBuPSItLS0iLG89KHQuY2hpbGROb2Rlc1thXS5nZXRBdHRyaWJ1dGUoImFsaWduIil8fCIiKS50b0xvd2VyQ2FzZSgpO28mJihuPWlbb118fG4pLHIrPWhMZShuLHQuY2hpbGROb2Rlc1thXSl9cmV0dXJuYApgK2UrKHI/YApgK3I6IiIpfX0sUHUudGFibGU9e2ZpbHRlcjpmdW5jdGlvbihlKXtyZXR1cm4gZS5ub2RlTmFtZT09PSJUQUJMRSImJlNXKGUucm93c1swXSl9LHJlcGxhY2VtZW50OmZ1bmN0aW9uKGUpe3JldHVybiBlPWUucmVwbGFjZShgCgpgLGAKYCksYAoKYCtlK2AKCmB9fSxQdS50YWJsZVNlY3Rpb249e2ZpbHRlcjpbInRoZWFkIiwidGJvZHkiLCJ0Zm9vdCJdLHJlcGxhY2VtZW50OmZ1bmN0aW9uKGUpe3JldHVybiBlfX19KTt2YXIgTFcsQVc9cCgoKT0+e0xXPWVyKGlNZSgpLDEpO05NZSgpO3F6ZSgpO2ZDZSgpO0NDZSgpO1hfZSgpO0pfZSgpO3VMZSgpO21MZSgpfSk7dmFyIHhrLGJMZT1wKCgpPT57QVcoKTt4az1jbGFzcyBle3N0YXRpYyBhc3luYyBjcmVhdGVGcm9tTWFya2Rvd25TdHJpbmcodCl7bGV0IHI9bmV3IGU7cmV0dXJuIGF3YWl0IHIudXBkYXRlRnJvbU1hcmtkb3duU3RyaW5nKHQpLHJ9YXN5bmMgdXBkYXRlRnJvbU1hcmtkb3duU3RyaW5nKHQpe2xldCByLGk9YXdhaXQgcDcoKS51c2UoVHUpLnVzZShDdSkudXNlKEx1LFsieWFtbCIsInRvbWwiXSkudXNlKEl1KS51c2UoJHUpLnVzZSgoKT0+YT0+e2NvbnNvbGUuZGlyKGEpO2xldCBuPWEuY2hpbGRyZW4uZmluZChvPT5vLnR5cGU9PT0ieWFtbCIpO24mJihyPW4udmFsdWUpfSkucHJvY2Vzcyh0KTt0aGlzLmh0bWw9aS50b1N0cmluZygpLHI/dGhpcy5mcm9udG1hdHRlckRhdGE9YXdhaXQgTFcueWFtbFN0cmluZ1RvT2JqZWN0KHIpOnRoaXMuZnJvbnRtYXR0ZXJEYXRhPXt9fX19KTt2YXIgTnU9e307RmUoTnUse1NtYXJ0TWFya2Rvd246KCk9PkRXfSk7dmFyIERXLEVXPXAoKCk9PntBVygpO2JMZSgpO0RXPWNsYXNzIGV7c3RhdGljIGFzeW5jIGVhc3lNYXJrZG93blRvSHRtbCh0KXtyZXR1cm4oYXdhaXQgbmV3IGUoKS5nZXRNZFBhcnNlZFJlc3VsdEZyb21NYXJrZG93bih0KSkuaHRtbH1jb25zdHJ1Y3Rvcigpe31hc3luYyBnZXRNZFBhcnNlZFJlc3VsdEZyb21NYXJrZG93bih0KXtyZXR1cm4gYXdhaXQgeGsuY3JlYXRlRnJvbU1hcmtkb3duU3RyaW5nKHQpfWh0bWxUb01hcmtkb3duKHQpe2xldCByPW5ldyB2ayh7aGVhZGluZ1N0eWxlOiJhdHgiLGNvZGVCbG9ja1N0eWxlOiJmZW5jZWQifSk7cmV0dXJuIHIudXNlKE43LmdmbSksci50dXJuZG93bih0KX19fSk7dmFyIGtMZT1qZShzMj0+eyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkoczIsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLHMyLlBhdGhFcnJvcj1zMi5Ub2tlbkRhdGE9dm9pZCAwLHMyLnBhcnNlPU5XLHMyLmNvbXBpbGU9WXpyLHMyLm1hdGNoPVh6cixzMi5wYXRoVG9SZWdleHA9eUxlLHMyLnN0cmluZ2lmeT1LenI7dmFyICRXPSIvIixJVz1lPT5lLHZMZT0vXlskX1xwe0lEX1N0YXJ0fV0kL3UsUFc9L15bJFx1MjAwY1x1MjAwZFxwe0lEX0NvbnRpbnVlfV0kL3UsV3pyPXsieyI6InsiLCJ9IjoifSIsIigiOiIoIiwiKSI6IikiLCJbIjoiWyIsIl0iOiJdIiwiKyI6IisiLCI/IjoiPyIsIiEiOiIhIn07ZnVuY3Rpb24gR3pyKGUpe3JldHVybiBlLnJlcGxhY2UoL1t7fSgpXFtcXSs/IToqXFxdL2csIlxcJCYiKX1mdW5jdGlvbiBicyhlKXtyZXR1cm4gZS5yZXBsYWNlKC9bLisqP14ke30oKVtcXXwvXFxdL2csIlxcJCYiKX12YXIgeWs9Y2xhc3N7Y29uc3RydWN0b3IodCxyKXt0aGlzLnRva2Vucz10LHRoaXMub3JpZ2luYWxQYXRoPXJ9fTtzMi5Ub2tlbkRhdGE9eWs7dmFyIG42PWNsYXNzIGV4dGVuZHMgVHlwZUVycm9ye2NvbnN0cnVjdG9yKHQscil7bGV0IGk9dDtyJiYoaSs9YDogJHtyfWApLGkrPSI7IHZpc2l0IGh0dHBzOi8vZ2l0Lm5ldy9wYXRoVG9SZWdleHBFcnJvciBmb3IgaW5mbyIsc3VwZXIoaSksdGhpcy5vcmlnaW5hbFBhdGg9cn19O3MyLlBhdGhFcnJvcj1uNjtmdW5jdGlvbiBOVyhlLHQ9e30pe2xldHtlbmNvZGVQYXRoOnI9SVd9PXQsaT1bLi4uZV0sYT1bXSxuPTAsbz0wO2Z1bmN0aW9uIHMoKXtsZXQgYz0iIjtpZih2TGUudGVzdChpW25dKSlkbyBjKz1pW24rK107d2hpbGUoUFcudGVzdChpW25dKSk7ZWxzZSBpZihpW25dPT09JyInKXtsZXQgdT1uO2Zvcig7bisrPGkubGVuZ3RoOyl7aWYoaVtuXT09PSciJyl7bisrLHU9MDticmVha31pW25dPT09IlxcIiYmbisrLGMrPWlbbl19aWYodSl0aHJvdyBuZXcgbjYoYFVudGVybWluYXRlZCBxdW90ZSBhdCBpbmRleCAke3V9YCxlKX1pZighYyl0aHJvdyBuZXcgbjYoYE1pc3NpbmcgcGFyYW1ldGVyIG5hbWUgYXQgaW5kZXggJHtufWAsZSk7cmV0dXJuIGN9Zm9yKDtuPGkubGVuZ3RoOyl7bGV0IGM9aVtuXSx1PVd6cltjXTt1P2EucHVzaCh7dHlwZTp1LGluZGV4Om4rKyx2YWx1ZTpjfSk6Yz09PSJcXCI/YS5wdXNoKHt0eXBlOiJlc2NhcGUiLGluZGV4Om4rKyx2YWx1ZTppW24rK119KTpjPT09IjoiP2EucHVzaCh7dHlwZToicGFyYW0iLGluZGV4Om4rKyx2YWx1ZTpzKCl9KTpjPT09IioiP2EucHVzaCh7dHlwZToid2lsZGNhcmQiLGluZGV4Om4rKyx2YWx1ZTpzKCl9KTphLnB1c2goe3R5cGU6ImNoYXIiLGluZGV4Om4rKyx2YWx1ZTpjfSl9YS5wdXNoKHt0eXBlOiJlbmQiLGluZGV4Om4sdmFsdWU6IiJ9KTtmdW5jdGlvbiBsKGMpe2xldCB1PVtdO2Zvcig7Oyl7bGV0IGQ9YVtvKytdO2lmKGQudHlwZT09PWMpYnJlYWs7aWYoZC50eXBlPT09ImNoYXIifHxkLnR5cGU9PT0iZXNjYXBlIil7bGV0IGg9ZC52YWx1ZSxmPWFbb107Zm9yKDtmLnR5cGU9PT0iY2hhciJ8fGYudHlwZT09PSJlc2NhcGUiOyloKz1mLnZhbHVlLGY9YVsrK29dO3UucHVzaCh7dHlwZToidGV4dCIsdmFsdWU6cihoKX0pO2NvbnRpbnVlfWlmKGQudHlwZT09PSJwYXJhbSJ8fGQudHlwZT09PSJ3aWxkY2FyZCIpe3UucHVzaCh7dHlwZTpkLnR5cGUsbmFtZTpkLnZhbHVlfSk7Y29udGludWV9aWYoZC50eXBlPT09InsiKXt1LnB1c2goe3R5cGU6Imdyb3VwIix0b2tlbnM6bCgifSIpfSk7Y29udGludWV9dGhyb3cgbmV3IG42KGBVbmV4cGVjdGVkICR7ZC50eXBlfSBhdCBpbmRleCAke2QuaW5kZXh9LCBleHBlY3RlZCAke2N9YCxlKX1yZXR1cm4gdX1yZXR1cm4gbmV3IHlrKGwoImVuZCIpLGUpfWZ1bmN0aW9uIFl6cihlLHQ9e30pe2xldHtlbmNvZGU6cj1lbmNvZGVVUklDb21wb25lbnQsZGVsaW1pdGVyOmk9JFd9PXQsYT10eXBlb2YgZT09Im9iamVjdCI/ZTpOVyhlLHQpLG49eExlKGEudG9rZW5zLGkscik7cmV0dXJuIGZ1bmN0aW9uKHM9e30pe2xldFtsLC4uLmNdPW4ocyk7aWYoYy5sZW5ndGgpdGhyb3cgbmV3IFR5cGVFcnJvcihgTWlzc2luZyBwYXJhbWV0ZXJzOiAke2Muam9pbigiLCAiKX1gKTtyZXR1cm4gbH19ZnVuY3Rpb24geExlKGUsdCxyKXtsZXQgaT1lLm1hcChhPT5aenIoYSx0LHIpKTtyZXR1cm4gYT0+e2xldCBuPVsiIl07Zm9yKGxldCBvIG9mIGkpe2xldFtzLC4uLmxdPW8oYSk7blswXSs9cyxuLnB1c2goLi4ubCl9cmV0dXJuIG59fWZ1bmN0aW9uIFp6cihlLHQscil7aWYoZS50eXBlPT09InRleHQiKXJldHVybigpPT5bZS52YWx1ZV07aWYoZS50eXBlPT09Imdyb3VwIil7bGV0IGE9eExlKGUudG9rZW5zLHQscik7cmV0dXJuIG49PntsZXRbbywuLi5zXT1hKG4pO3JldHVybiBzLmxlbmd0aD9bIiJdOltvXX19bGV0IGk9cnx8SVc7cmV0dXJuIGUudHlwZT09PSJ3aWxkY2FyZCImJnIhPT0hMT9hPT57bGV0IG49YVtlLm5hbWVdO2lmKG49PW51bGwpcmV0dXJuWyIiLGUubmFtZV07aWYoIUFycmF5LmlzQXJyYXkobil8fG4ubGVuZ3RoPT09MCl0aHJvdyBuZXcgVHlwZUVycm9yKGBFeHBlY3RlZCAiJHtlLm5hbWV9IiB0byBiZSBhIG5vbi1lbXB0eSBhcnJheWApO3JldHVybltuLm1hcCgobyxzKT0+e2lmKHR5cGVvZiBvIT0ic3RyaW5nIil0aHJvdyBuZXcgVHlwZUVycm9yKGBFeHBlY3RlZCAiJHtlLm5hbWV9LyR7c30iIHRvIGJlIGEgc3RyaW5nYCk7cmV0dXJuIGkobyl9KS5qb2luKHQpXX06YT0+e2xldCBuPWFbZS5uYW1lXTtpZihuPT1udWxsKXJldHVyblsiIixlLm5hbWVdO2lmKHR5cGVvZiBuIT0ic3RyaW5nIil0aHJvdyBuZXcgVHlwZUVycm9yKGBFeHBlY3RlZCAiJHtlLm5hbWV9IiB0byBiZSBhIHN0cmluZ2ApO3JldHVybltpKG4pXX19ZnVuY3Rpb24gWHpyKGUsdD17fSl7bGV0e2RlY29kZTpyPWRlY29kZVVSSUNvbXBvbmVudCxkZWxpbWl0ZXI6aT0kV309dCx7cmVnZXhwOmEsa2V5czpufT15TGUoZSx0KSxvPW4ubWFwKHM9PnI9PT0hMT9JVzpzLnR5cGU9PT0icGFyYW0iP3I6bD0+bC5zcGxpdChpKS5tYXAocikpO3JldHVybiBmdW5jdGlvbihsKXtsZXQgYz1hLmV4ZWMobCk7aWYoIWMpcmV0dXJuITE7bGV0IHU9Y1swXSxkPU9iamVjdC5jcmVhdGUobnVsbCk7Zm9yKGxldCBoPTE7aDxjLmxlbmd0aDtoKyspe2lmKGNbaF09PT12b2lkIDApY29udGludWU7bGV0IGY9bltoLTFdLHg9b1toLTFdO2RbZi5uYW1lXT14KGNbaF0pfXJldHVybntwYXRoOnUscGFyYW1zOmR9fX1mdW5jdGlvbiB5TGUoZSx0PXt9KXtsZXR7ZGVsaW1pdGVyOnI9JFcsZW5kOmk9ITAsc2Vuc2l0aXZlOmE9ITEsdHJhaWxpbmc6bj0hMH09dCxvPVtdLHM9YT8iIjoiaSIsbD1bXTtmb3IobGV0IGQgb2Ygd0xlKGUsW10pKXtsZXQgaD10eXBlb2YgZD09Im9iamVjdCI/ZDpOVyhkLHQpO2ZvcihsZXQgZiBvZiB3ayhoLnRva2VucywwLFtdKSlsLnB1c2goUXpyKGYscixvLGgub3JpZ2luYWxQYXRoKSl9bGV0IGM9YF4oPzoke2wuam9pbigifCIpfSlgO3JldHVybiBuJiYoYys9YCg/OiR7YnMocil9JCk/YCksYys9aT8iJCI6YCg/PSR7YnMocil9fCQpYCx7cmVnZXhwOm5ldyBSZWdFeHAoYyxzKSxrZXlzOm99fWZ1bmN0aW9uIHdMZShlLHQpe2lmKEFycmF5LmlzQXJyYXkoZSkpZm9yKGxldCByIG9mIGUpd0xlKHIsdCk7ZWxzZSB0LnB1c2goZSk7cmV0dXJuIHR9ZnVuY3Rpb24qd2soZSx0LHIpe2lmKHQ9PT1lLmxlbmd0aClyZXR1cm4geWllbGQgcjtsZXQgaT1lW3RdO2lmKGkudHlwZT09PSJncm91cCIpZm9yKGxldCBhIG9mIHdrKGkudG9rZW5zLDAsci5zbGljZSgpKSl5aWVsZCp3ayhlLHQrMSxhKTtlbHNlIHIucHVzaChpKTt5aWVsZCp3ayhlLHQrMSxyKX1mdW5jdGlvbiBRenIoZSx0LHIsaSl7bGV0IGE9IiIsbj0iIixvPSEwO2ZvcihsZXQgcyBvZiBlKXtpZihzLnR5cGU9PT0idGV4dCIpe2ErPWJzKHMudmFsdWUpLG4rPXMudmFsdWUsb3x8KG89cy52YWx1ZS5pbmNsdWRlcyh0KSk7Y29udGludWV9aWYocy50eXBlPT09InBhcmFtInx8cy50eXBlPT09IndpbGRjYXJkIil7aWYoIW8mJiFuKXRocm93IG5ldyBuNihgTWlzc2luZyB0ZXh0IGJlZm9yZSAiJHtzLm5hbWV9IiAke3MudHlwZX1gLGkpO3MudHlwZT09PSJwYXJhbSI/YSs9YCgke0p6cih0LG8/IiI6bil9KylgOmErPSIoW1xcc1xcU10rKSIsci5wdXNoKHMpLG49IiIsbz0hMTtjb250aW51ZX19cmV0dXJuIGF9ZnVuY3Rpb24gSnpyKGUsdCl7cmV0dXJuIHQubGVuZ3RoPDI/ZS5sZW5ndGg8Mj9gW14ke2JzKGUrdCl9XWA6YCg/Oig/ISR7YnMoZSl9KVteJHticyh0KX1dKWA6ZS5sZW5ndGg8Mj9gKD86KD8hJHticyh0KX0pW14ke2JzKGUpfV0pYDpgKD86KD8hJHticyh0KX18JHticyhlKX0pW1xcc1xcU10pYH1mdW5jdGlvbiBNTGUoZSl7bGV0IHQ9IiIscj0wO2Z1bmN0aW9uIGkoYSl7cmV0dXJuIGVDcihhKSYmdENyKGVbcl0pP2E6SlNPTi5zdHJpbmdpZnkoYSl9Zm9yKDtyPGUubGVuZ3RoOyl7bGV0IGE9ZVtyKytdO2lmKGEudHlwZT09PSJ0ZXh0Iil7dCs9R3pyKGEudmFsdWUpO2NvbnRpbnVlfWlmKGEudHlwZT09PSJncm91cCIpe3QrPWB7JHtNTGUoYS50b2tlbnMpfX1gO2NvbnRpbnVlfWlmKGEudHlwZT09PSJwYXJhbSIpe3QrPWA6JHtpKGEubmFtZSl9YDtjb250aW51ZX1pZihhLnR5cGU9PT0id2lsZGNhcmQiKXt0Kz1gKiR7aShhLm5hbWUpfWA7Y29udGludWV9dGhyb3cgbmV3IFR5cGVFcnJvcihgVW5rbm93biB0b2tlbiB0eXBlOiAke2EudHlwZX1gKX1yZXR1cm4gdH1mdW5jdGlvbiBLenIoZSl7cmV0dXJuIE1MZShlLnRva2Vucyl9ZnVuY3Rpb24gZUNyKGUpe2xldFt0LC4uLnJdPWU7cmV0dXJuIHZMZS50ZXN0KHQpJiZyLmV2ZXJ5KGk9PlBXLnRlc3QoaSkpfWZ1bmN0aW9uIHRDcihlKXtyZXR1cm4gZSYmZS50eXBlPT09InRleHQiPyFQVy50ZXN0KGUudmFsdWVbMF0pOiEwfX0pO3ZhciBGVyxPVz1wKCgpPT57X2YoKTt0MigpO0ZXPWVyKGtMZSgpLDEpfSk7dmFyIE1rLFNMZT1wKCgpPT57T1coKTtNaz1jbGFzc3tjb25zdHJ1Y3Rvcigpe31nZXRBbGxBc09iamVjdCgpe2xldCB0PW5ldyBVUkxTZWFyY2hQYXJhbXMod2luZG93LmxvY2F0aW9uLnNlYXJjaCk7cmV0dXJuIE9iamVjdC5mcm9tRW50cmllcyh0LmVudHJpZXMoKSl9c2V0UXVlcnlQYXJhbSh0LHIsaT0icmVwbGFjZSIpe3ZhciBhPW5ldyBVUkxTZWFyY2hQYXJhbXMod2luZG93LmxvY2F0aW9uLnNlYXJjaCk7YS5zZXQodCxyKSxpPT09InB1c2giP2hpc3RvcnkucHVzaFN0YXRlKG51bGwsbnVsbCwiPyIrYS50b1N0cmluZygpKTpoaXN0b3J5LnJlcGxhY2VTdGF0ZShudWxsLG51bGwsIj8iK2EudG9TdHJpbmcoKSl9ZGVsZXRlUXVlcnlQYXJhbSh0LHI9InJlcGxhY2UiKXt2YXIgaT1uZXcgVVJMU2VhcmNoUGFyYW1zKHdpbmRvdy5sb2NhdGlvbi5zZWFyY2gpO2kuZGVsZXRlKHQpLHI9PT0icHVzaCI/aGlzdG9yeS5wdXNoU3RhdGUobnVsbCxudWxsLCI/IitpLnRvU3RyaW5nKCkpOmhpc3RvcnkucmVwbGFjZVN0YXRlKG51bGwsbnVsbCwiPyIraS50b1N0cmluZygpKX1nZXRRdWVyeVBhcmFtKHQpe3JldHVybiB0aGlzLmdldEFsbEFzT2JqZWN0KClbdF19fX0pO3ZhciBBVzEsUlcsekxlPXAoKCk9PntPVygpO1NMZSgpO0FXMT1lPT57Y29uc29sZS5sb2coYCVjW1JvdXRlcl0lYyAke2V9YCwiY29sb3I6IHJnYigyNTUsIDEwNSwgMTAwKTsiLCJjb2xvcjogaW5oZXJpdCIpfSxSVz1jbGFzcyBle2NvbnN0cnVjdG9yKHQscj0iIil7dGhpcy5vcHRpb25zPXtkZWJ1ZzohMX0sdGhpcy5xdWVyeVBhcmFtcz1uZXcgTWssdGhpcy5yb3V0ZXM9W10sdGhpcy5vcHRpb25zPXsuLi50aGlzLm9wdGlvbnMsLi4udH0sdGhpcy5iYXNlUGF0aD1yLHRoaXMucG9wc3RhdGVMaXN0ZW5lcj1pPT57aS5wcmV2ZW50RGVmYXVsdCgpLHRoaXMuX2hhbmRsZVJvdXRlU3RhdGUoKX0sd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoInBvcHN0YXRlIix0aGlzLnBvcHN0YXRlTGlzdGVuZXIpfWNyZWF0ZVN1YlJvdXRlcih0LHIpe2xldCBpPWAke3RoaXMuYmFzZVBhdGh9JHt0fWA7cmV0dXJuIG5ldyBlKHsuLi50aGlzLm9wdGlvbnMsLi4ucn0saSl9YXN5bmMgcHVzaFVybCh0PSIvIixyPXt9KXtsZXQgaT1gJHt0aGlzLmJhc2VQYXRofSR7dH1gO2khPT13aW5kb3cubG9jYXRpb24ucGF0aG5hbWU/d2luZG93Lmhpc3RvcnkucHVzaFN0YXRlKHIsd2luZG93LmRvY3VtZW50LnRpdGxlLGkpOndpbmRvdy5oaXN0b3J5LnJlcGxhY2VTdGF0ZShyLHdpbmRvdy5kb2N1bWVudC50aXRsZSxpKSxhd2FpdCB0aGlzLl9oYW5kbGVSb3V0ZVN0YXRlKCl9b24odCxyKXtsZXQgaT1gJHt0aGlzLmJhc2VQYXRofSR7dH1gLGE9e21hdGNoRnVuY3Rpb246RlcubWF0Y2goaSksaGFuZGxlcjpyfTtyZXR1cm4gdGhpcy5yb3V0ZXMucHVzaChhKSwoKT0+e3RoaXMucm91dGVzLnNwbGljZSh0aGlzLnJvdXRlcy5pbmRleE9mKGEpLDEpfX1hc3luYyBfaGFuZGxlUm91dGVTdGF0ZSgpe2xldCB0PXdpbmRvdy5sb2NhdGlvbi5wYXRobmFtZSxyPXRoaXMucm91dGVzLmZpbHRlcihpPT4hIWkubWF0Y2hGdW5jdGlvbih0KSk7Zm9yKGxldCBpIG9mIHIpe2xldCBhPWkubWF0Y2hGdW5jdGlvbih0KTtpLmhhbmRsZXIoey4uLmEudmFsdWVPZigpLHF1ZXJ5UGFyYW1zOnRoaXMucXVlcnlQYXJhbXMuZ2V0QWxsQXNPYmplY3QoKX0pfX1kZXN0cm95KCl7d2luZG93LnJlbW92ZUV2ZW50TGlzdGVuZXIoInBvcHN0YXRlIix0aGlzLnBvcHN0YXRlTGlzdGVuZXIpLHRoaXMucm91dGVzPVtdfX19KTt2YXIgVDA9e307RmUoVDAse1NtYXJ0Um91dGVyOigpPT5SV30pO3ZhciBCVz1wKCgpPT57ekxlKCl9KTt2YXIgQ0xlPXAoKCk9PntRNSgpO2F1KCl9KTtmdW5jdGlvbiB2cyhlLHQpe3JldHVybiBlPj4+dHxlPDwzMi10fWZ1bmN0aW9uIG9DcihlLHQpe2xldCByPXRbMF0saT10WzFdLGE9dFsyXSxuPXRbM10sbz10WzRdLHM9dFs1XSxsPXRbNl0sYz10WzddO2ZvcihsZXQgdT0wO3U8NjQ7dSsrKXtpZih1Pj0xNil7bGV0IHk9dnMoZVt1LTE1XSw3KV52cyhlW3UtMTVdLDE4KV5lW3UtMTVdPj4+Myx3PXZzKGVbdS0yXSwxNylednMoZVt1LTJdLDE5KV5lW3UtMl0+Pj4xMDtlW3VdPWVbdS0xNl0reStlW3UtN10rdz4+PjB9bGV0IGQ9dnMobyw2KV52cyhvLDExKV52cyhvLDI1KSxoPW8mc15+byZsLGY9YytkK2grYUNyW3VdK2VbdV0+Pj4wLHg9dnMociwyKV52cyhyLDEzKV52cyhyLDIyKSx2PXImaV5yJmFeaSZhLGI9eCt2Pj4+MDtjPWwsbD1zLHM9byxvPW4rZj4+PjAsbj1hLGE9aSxpPXIscj1mK2I+Pj4wfXRbMF09dFswXStyPj4+MCx0WzFdPXRbMV0raT4+PjAsdFsyXT10WzJdK2E+Pj4wLHRbM109dFszXStuPj4+MCx0WzRdPXRbNF0rbz4+PjAsdFs1XT10WzVdK3M+Pj4wLHRbNl09dFs2XStsPj4+MCx0WzddPXRbN10rYz4+PjB9ZnVuY3Rpb24gSFcoZSl7bGV0IHQ9Wy4uLm5Dcl0scj1lLmxlbmd0aCxpPXIqOCxhPXIlNjQ8NTY/NTYtciU2NDoxMjAtciU2NCxuPW5ldyBVaW50OEFycmF5KHIrYSs4KTtuLnNldChlKSxuW3JdPTEyODtsZXQgbz1uZXcgRGF0YVZpZXcobi5idWZmZXIpO28uc2V0VWludDMyKG4ubGVuZ3RoLTgsMCwhMSksby5zZXRVaW50MzIobi5sZW5ndGgtNCxpPj4+MCwhMSk7Zm9yKGxldCBsPTA7bDxuLmxlbmd0aDtsKz02NCl7bGV0IGM9bmV3IEFycmF5KDY0KTtmb3IobGV0IHU9MDt1PDE2O3UrKyljW3VdPW8uZ2V0VWludDMyKGwrdSo0LCExKTtvQ3IoYyx0KX1sZXQgcz0iIjtmb3IobGV0IGw9MDtsPDg7bCsrKXMrPXRbbF0udG9TdHJpbmcoMTYpLnBhZFN0YXJ0KDgsIjAiKTtyZXR1cm4gc312YXIgYUNyLG5DcixUTGU9cCgoKT0+e2FDcj1bMTExNjM1MjQwOCwxODk5NDQ3NDQxLDMwNDkzMjM0NzEsMzkyMTAwOTU3Myw5NjE5ODcxNjMsMTUwODk3MDk5MywyNDUzNjM1NzQ4LDI4NzA3NjMyMjEsMzYyNDM4MTA4MCwzMTA1OTg0MDEsNjA3MjI1Mjc4LDE0MjY4ODE5ODcsMTkyNTA3ODM4OCwyMTYyMDc4MjA2LDI2MTQ4ODgxMDMsMzI0ODIyMjU4MCwzODM1MzkwNDAxLDQwMjIyMjQ3NzQsMjY0MzQ3MDc4LDYwNDgwNzYyOCw3NzAyNTU5ODMsMTI0OTE1MDEyMiwxNTU1MDgxNjkyLDE5OTYwNjQ5ODYsMjU1NDIyMDg4MiwyODIxODM0MzQ5LDI5NTI5OTY4MDgsMzIxMDMxMzY3MSwzMzM2NTcxODkxLDM1ODQ1Mjg3MTEsMTEzOTI2OTkzLDMzODI0MTg5NSw2NjYzMDcyMDUsNzczNTI5OTEyLDEyOTQ3NTczNzIsMTM5NjE4MjI5MSwxNjk1MTgzNzAwLDE5ODY2NjEwNTEsMjE3NzAyNjM1MCwyNDU2OTU2MDM3LDI3MzA0ODU5MjEsMjgyMDMwMjQxMSwzMjU5NzMwODAwLDMzNDU3NjQ3NzEsMzUxNjA2NTgxNywzNjAwMzUyODA0LDQwOTQ1NzE5MDksMjc1NDIzMzQ0LDQzMDIyNzczNCw1MDY5NDg2MTYsNjU5MDYwNTU2LDg4Mzk5Nzg3Nyw5NTgxMzk1NzEsMTMyMjgyMjIxOCwxNTM3MDAyMDYzLDE3NDc4NzM3NzksMTk1NTU2MjIyMiwyMDI0MTA0ODE1LDIyMjc3MzA0NTIsMjM2MTg1MjQyNCwyNDI4NDM2NDc0LDI3NTY3MzQxODcsMzIwNDAzMTQ3OSwzMzI5MzI1Mjk4XSxuQ3I9WzE3NzkwMzM3MDMsMzE0NDEzNDI3NywxMDEzOTA0MjQyLDI3NzM0ODA3NjIsMTM1OTg5MzExOSwyNjAwODIyOTI0LDUyODczNDYzNSwxNTQxNDU5MjI1XX0pO3ZhciBGNz17fTtGZShGNyx7bWQ1RnJvbVN0cmluZzooKT0+cENyLHNoYTI1NkZyb21CdWZmZXI6KCk9PmxDcixzaGEyNTZGcm9tRmlsZTooKT0+dUNyLHNoYTI1NkZyb21TdHJlYW06KCk9PmRDcixzaGEyNTZGcm9tU3RyaW5nOigpPT5BTGUsc2hhMjU2RnJvbVN0cmluZ1N5bmM6KCk9PnNDcixzaGEyNjVGcm9tT2JqZWN0OigpPT5jQ3J9KTt2YXIgX0xlLExMZSxBTGUsc0NyLGxDcixjQ3IsZENyLHVDcixwQ3IsRExlPXAoKCk9PntDTGUoKTtUTGUoKTtfTGU9ZT0+e2xldCB0PVtdLHI9bmV3IERhdGFWaWV3KGUpO2ZvcihsZXQgaT0wO2k8ci5ieXRlTGVuZ3RoO2krPTQpe2xldCBuPXIuZ2V0VWludDMyKGkpLnRvU3RyaW5nKDE2KSxvPSIwMDAwMDAwMCIscz0obytuKS5zbGljZSgtby5sZW5ndGgpO3QucHVzaChzKX1yZXR1cm4gdC5qb2luKCIiKX0sTExlPSgpPT50eXBlb2YgY3J5cHRvPCJ1IiYmY3J5cHRvLnN1YnRsZSE9PXZvaWQgMCxBTGU9YXN5bmMgZT0+e2xldCB0PW5ldyBUZXh0RW5jb2RlcigpLmVuY29kZShlKTtpZihMTGUoKSl7bGV0IHI9YXdhaXQgY3J5cHRvLnN1YnRsZS5kaWdlc3QoIlNIQS0yNTYiLHQpO3JldHVybiBfTGUocil9ZWxzZSByZXR1cm4gSFcodCl9LHNDcj1lPT57dGhyb3cgY29uc29sZS53YXJuKCJzaGEyNTZGcm9tU3RyaW5nU3luYyBpcyBub3QgdHJ1bHkgc3luY2hyb25vdXMgaW4gYnJvd3NlciBlbnZpcm9ubWVudCIpLG5ldyBFcnJvcigic2hhMjU2RnJvbVN0cmluZ1N5bmMgaXMgbm90IHN1cHBvcnRlZCBpbiBicm93c2VyIGVudmlyb25tZW50LiBVc2Ugc2hhMjU2RnJvbVN0cmluZyBpbnN0ZWFkLiIpfSxsQ3I9YXN5bmMgZT0+e2lmKExMZSgpKXtsZXQgdDtpZihlIGluc3RhbmNlb2YgVWludDhBcnJheSl7bGV0IGE9ZTt0PWEuYnVmZmVyLnNsaWNlKGEuYnl0ZU9mZnNldCxhLmJ5dGVPZmZzZXQrYS5ieXRlTGVuZ3RoKX1lbHNlIHQ9ZTtsZXQgcj1hd2FpdCBjcnlwdG8uc3VidGxlLmRpZ2VzdCgiU0hBLTI1NiIsdCk7cmV0dXJuIF9MZShyKX1lbHNle2xldCB0PWUgaW5zdGFuY2VvZiBVaW50OEFycmF5P2U6bmV3IFVpbnQ4QXJyYXkoZSk7cmV0dXJuIEhXKHQpfX0sY0NyPWFzeW5jIGU9PntsZXQgdD12MS5zdHJpbmdpZnkoZSk7cmV0dXJuIGF3YWl0IEFMZSh0KX0sZENyPWU9Pnt0aHJvdyBuZXcgRXJyb3IoInNoYTI1NkZyb21TdHJlYW0gaXMgbm90IHN1cHBvcnRlZCBpbiBicm93c2VyIGVudmlyb25tZW50Iil9LHVDcj1hc3luYyBlPT57dGhyb3cgbmV3IEVycm9yKCJzaGEyNTZGcm9tRmlsZSBpcyBub3Qgc3VwcG9ydGVkIGluIGJyb3dzZXIgZW52aXJvbm1lbnQiKX0scENyPWFzeW5jIGU9Pnt0aHJvdyBuZXcgRXJyb3IoIm1kNUZyb21TdHJpbmcgaXMgbm90IHN1cHBvcnRlZCBpbiBicm93c2VyIGVudmlyb25tZW50LiBXZWIgQ3J5cHRvIEFQSSBkb2VzIG5vdCBzdXBwb3J0IE1ENS4iKX19KTt2YXIgRUxlPXAoKCk9PntzYSgpfSk7dmFyICRMZT1wKCgpPT57fSk7dmFyIHFXLElMZT1wKCgpPT57RUxlKCk7JExlKCk7cVc9Y2xhc3N7Y29uc3RydWN0b3IoKXt0aGlzLmxvYWRlZFNjcmlwdHM9W119YXN5bmMgZ2V0RW52QXdhcmVNb2R1bGUodCl7aWYodGhpcy5pc05vZGUpcmV0dXJuIGF3YWl0IHRoaXMuZ2V0U2FmZU5vZGVNb2R1bGUodC5ub2RlTW9kdWxlTmFtZSk7aWYodGhpcy5pc0Jyb3dzZXIpcmV0dXJuIGF3YWl0IHRoaXMuZ2V0U2FmZVdlYk1vZHVsZSh0LndlYlVybEFyZyx0LmdldEZ1bmN0aW9uKTtjb25zb2xlLmVycm9yKCJwbGF0Zm9ybSBmb3IgbG9hZGluZyBub3Qgc3VwcG9ydGVkIGJ5IHNtYXJ0ZW52Iil9YXN5bmMgZ2V0U2FmZU5vZGVNb2R1bGUodCxyKXtpZighdGhpcy5pc05vZGUmJiF0aGlzLmlzRGVubyYmIXRoaXMuaXNCdW4pe2NvbnNvbGUuZXJyb3IoYFlvdSB0cmllZCB0byBsb2FkIGEgc2VydmVyIG1vZHVsZSBpbiBhIHdyb25nIGNvbnRleHQ6ICR7dH0uIFRoaXMgZG9lcyBub3QgdGhyb3cuYCk7cmV0dXJufWxldCBpPWF3YWl0IG5ldyBGdW5jdGlvbihgcmV0dXJuIGltcG9ydCgnJHt0fScpYCkoKTtyZXR1cm4gciYmYXdhaXQgcihpKSxpfWFzeW5jIGdldFNhZmVXZWJNb2R1bGUodCxyKXtpZighdGhpcy5pc0Jyb3dzZXIpe2NvbnNvbGUuZXJyb3IoIllvdSB0cmllZCB0byBsb2FkIGEgd2ViIG1vZHVsZSBpbiBhIHdyb25nIGNvbnRleHQiKTtyZXR1cm59aWYodGhpcy5sb2FkZWRTY3JpcHRzLmluY2x1ZGVzKHQpKXJldHVybiByKCk7dGhpcy5sb2FkZWRTY3JpcHRzLnB1c2godCk7bGV0IGk9S2UuZGVmZXIoKTtpZihnbG9iYWxUaGlzLmltcG9ydFNjcmlwdHMpZ2xvYmFsVGhpcy5pbXBvcnRTY3JpcHRzKHQpLGkucmVzb2x2ZSgpO2Vsc2V7bGV0IGE9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgic2NyaXB0Iik7YS5vbmxvYWQ9KCk9PntpLnJlc29sdmUoKX0sYS5zcmM9dCxkb2N1bWVudC5oZWFkLmFwcGVuZENoaWxkKGEpfXJldHVybiBhd2FpdCBpLnByb21pc2UscigpfWdldCBydW50aW1lRW52KCl7cmV0dXJuIHR5cGVvZiBnbG9iYWxUaGlzLkRlbm88InUiJiZ0eXBlb2YgZ2xvYmFsVGhpcy5EZW5vPy52ZXJzaW9uPCJ1Ij8iZGVubyI6dHlwZW9mIGdsb2JhbFRoaXMuQnVuPCJ1IiYmdHlwZW9mIGdsb2JhbFRoaXMuQnVuPy52ZXJzaW9uPCJ1Ij8iYnVuIjp0eXBlb2YgZ2xvYmFsVGhpcy5wcm9jZXNzPCJ1IiYmdHlwZW9mIGdsb2JhbFRoaXMucHJvY2Vzcz8udmVyc2lvbnM/Lm5vZGU8InUiPyJub2RlIjoodHlwZW9mIGdsb2JhbFRoaXMud2luZG93PCJ1IiYmdHlwZW9mIGdsb2JhbFRoaXMuZG9jdW1lbnQ8InUiLCJicm93c2VyIil9Z2V0IGlzQnJvd3Nlcigpe3JldHVybiB0aGlzLnJ1bnRpbWVFbnY9PT0iYnJvd3NlciJ9Z2V0IGlzTm9kZSgpe3JldHVybiB0aGlzLnJ1bnRpbWVFbnY9PT0ibm9kZSJ9Z2V0IGlzRGVubygpe3JldHVybiB0aGlzLnJ1bnRpbWVFbnY9PT0iZGVubyJ9Z2V0IGlzQnVuKCl7cmV0dXJuIHRoaXMucnVudGltZUVudj09PSJidW4ifWdldCB1c2VyQWdlbnQoKXtyZXR1cm4gdGhpcy5pc0Jyb3dzZXI/bmF2aWdhdG9yLnVzZXJBZ2VudDoidW5kZWZpbmVkIn1nZXQgbm9kZVZlcnNpb24oKXtyZXR1cm4gdGhpcy5pc05vZGU/cHJvY2Vzcy52ZXJzaW9uOiJ1bmRlZmluZWQifWdldCBkZW5vVmVyc2lvbigpe3JldHVybiB0aGlzLmlzRGVubz9nbG9iYWxUaGlzLkRlbm8udmVyc2lvbi5kZW5vOiJ1bmRlZmluZWQifWdldCBidW5WZXJzaW9uKCl7cmV0dXJuIHRoaXMuaXNCdW4/Z2xvYmFsVGhpcy5CdW4udmVyc2lvbjoidW5kZWZpbmVkIn1hc3luYyBnZXRTYWZlTW9kdWxlRm9yKHQscixpKXtsZXQgYTtpZihBcnJheS5pc0FycmF5KHQpP2E9dC5mbGF0TWFwKG49Pm49PT0ic2VydmVyIj9bIm5vZGUiLCJkZW5vIiwiYnVuIl06W25dKTp0PT09InNlcnZlciI/YT1bIm5vZGUiLCJkZW5vIiwiYnVuIl06YT1bdF0sIWEuaW5jbHVkZXModGhpcy5ydW50aW1lRW52KSl7Y29uc29sZS53YXJuKGBNb2R1bGUgIiR7cn0iIHJlcXVlc3RlZCBmb3IgcnVudGltZShzKSBbJHthLmpvaW4oIiwgIil9XSBidXQgY3VycmVudCBydW50aW1lIGlzICIke3RoaXMucnVudGltZUVudn0iLiBTa2lwcGluZyBsb2FkLmApO3JldHVybn1pZih0aGlzLmlzTm9kZXx8dGhpcy5pc0Rlbm98fHRoaXMuaXNCdW4pcmV0dXJuIGF3YWl0IHRoaXMuZ2V0U2FmZU5vZGVNb2R1bGUocik7aWYodGhpcy5pc0Jyb3dzZXIpe2lmKCFpKXtjb25zb2xlLmVycm9yKGBCcm93c2VyIG1vZHVsZSBsb2FkIHJlcXVpcmVzIGdldEZ1bmN0aW9uIHBhcmFtZXRlciBmb3IgIiR7cn0iYCk7cmV0dXJufXJldHVybiBhd2FpdCB0aGlzLmdldFNhZmVXZWJNb2R1bGUocixpKX19Z2V0IGlzQ0koKXtyZXR1cm4gdGhpcy5pc05vZGU/ISFwcm9jZXNzLmVudi5DSTohMX1hc3luYyBpc01hY0FzeW5jKCl7cmV0dXJuIHRoaXMuaXNOb2RlPyhhd2FpdCB0aGlzLmdldFNhZmVOb2RlTW9kdWxlKCJvcyIpKS5wbGF0Zm9ybSgpPT09ImRhcndpbiI6ITF9YXN5bmMgaXNXaW5kb3dzQXN5bmMoKXtyZXR1cm4gdGhpcy5pc05vZGU/KGF3YWl0IHRoaXMuZ2V0U2FmZU5vZGVNb2R1bGUoIm9zIikpLnBsYXRmb3JtKCk9PT0id2luMzIiOiExfWFzeW5jIGlzTGludXhBc3luYygpe3JldHVybiB0aGlzLmlzTm9kZT8oYXdhaXQgdGhpcy5nZXRTYWZlTm9kZU1vZHVsZSgib3MiKSkucGxhdGZvcm0oKT09PSJsaW51eCI6ITF9YXN5bmMgcHJpbnRFbnYoKXt0aGlzLmlzTm9kZT8oY29uc29sZS5sb2coInJ1bm5pbmcgb24gTk9ERSIpLGNvbnNvbGUubG9nKCJub2RlIHZlcnNpb24gaXMgIit0aGlzLm5vZGVWZXJzaW9uKSk6dGhpcy5pc0Rlbm8/KGNvbnNvbGUubG9nKCJydW5uaW5nIG9uIERFTk8iKSxjb25zb2xlLmxvZygiZGVubyB2ZXJzaW9uIGlzICIrdGhpcy5kZW5vVmVyc2lvbikpOnRoaXMuaXNCdW4/KGNvbnNvbGUubG9nKCJydW5uaW5nIG9uIEJVTiIpLGNvbnNvbGUubG9nKCJidW4gdmVyc2lvbiBpcyAiK3RoaXMuYnVuVmVyc2lvbikpOihjb25zb2xlLmxvZygicnVubmluZyBvbiBCUk9XU0VSIiksY29uc29sZS5sb2coImJyb3dzZXIgaXMgIit0aGlzLnVzZXJBZ2VudCkpfX19KTt2YXIgalc9e307RmUoalcse1NtYXJ0ZW52OigpPT5xV30pO3ZhciBQTGU9cCgoKT0+e0lMZSgpfSk7dmFyIGtrLE5MZSxTayxWVz1wKCgpPT57UExlKCk7T2YoKTtraz1lcihIcSgpLDEpLE5MZT1lcihxcSgpLDEpLFNrPU5MZS5kZWZhdWx0fSk7ZnVuY3Rpb24gbUNyKGUpe3JldHVybiB0eXBlb2YgQnVmZmVyPCJ1Ij9CdWZmZXIuZnJvbShlKS50b1N0cmluZygiYmFzZTY0Iik6YnRvYShTdHJpbmcuZnJvbUNoYXJDb2RlKC4uLmUpKX1mdW5jdGlvbiBnQ3IoZSl7aWYodHlwZW9mIEJ1ZmZlcjwidSIpe2xldCB0PUJ1ZmZlci5mcm9tKGUsImJhc2U2NCIpO3JldHVybiBuZXcgVWludDhBcnJheSh0LmJ1ZmZlcix0LmJ5dGVPZmZzZXQsdC5ieXRlTGVuZ3RoKX1yZXR1cm4gbmV3IFVpbnQ4QXJyYXkoQXJyYXkuZnJvbShhdG9iKGUpKS5tYXAodD0+dC5jaGFyQ29kZUF0KDApKSl9ZnVuY3Rpb24gV1coZSx0KXtyZXR1cm4gSlNPTi5zdHJpbmdpZnkoZSx6ayx0KX1mdW5jdGlvbiBHVyhlKXtyZXR1cm4gSlNPTi5wYXJzZShlLEZMZSl9ZnVuY3Rpb24gYkNyKGUpe3JldHVybiBSTGUoZSkmJmUudHlwZT09PSJFbmNvZGVkQnVmZmVyIiYmVVcoZS5kYXRhKX1mdW5jdGlvbiB2Q3IoZSl7cmV0dXJuIFJMZShlKSYmZS50eXBlPT09IkJ1ZmZlciImJihPTGUoZS5kYXRhKXx8VVcoZS5kYXRhKSl8fGUgaW5zdGFuY2VvZiBVaW50OEFycmF5fWZ1bmN0aW9uIE9MZShlKXtyZXR1cm4gQXJyYXkuaXNBcnJheShlKX1mdW5jdGlvbiBVVyhlKXtyZXR1cm4gdHlwZW9mIGU9PSJzdHJpbmcifWZ1bmN0aW9uIFJMZShlKXtyZXR1cm4gdHlwZW9mIGU9PSJvYmplY3QiJiZlIT09bnVsbH12YXIgemssRkxlLEJMZT1wKCgpPT57VlcoKTt6az0oZSx0KT0+e2lmKHZDcih0KSl7bGV0IHI7aWYoImRhdGEiaW4gdCYmT0xlKHQuZGF0YSkpcj1uZXcgVWludDhBcnJheSh0LmRhdGEpO2Vsc2UgaWYodCBpbnN0YW5jZW9mIFVpbnQ4QXJyYXkpcj10O2Vsc2UgcmV0dXJuIHQ7cmV0dXJue3R5cGU6IkVuY29kZWRCdWZmZXIiLGRhdGE6ImJhc2U2NDoiK21DcihyKX19cmV0dXJuIHR9LEZMZT0oZSx0KT0+e2lmKGJDcih0KSYmVVcodC5kYXRhKSYmdC5kYXRhLnN0YXJ0c1dpdGgoImJhc2U2NDoiKSl7bGV0IHI9dC5kYXRhLnNsaWNlKDcpO3JldHVybiBnQ3Iocil9cmV0dXJuIHR9fSk7dmFyIE83PXt9O0ZlKE83LHtTbWFydGpzb246KCk9PlpXLGRlZXBFcXVhbEpzb25MU3RyaW5nczooKT0+Q0NyLGRlZXBFcXVhbE9iamVjdHM6KCk9PkhMZSxmb2xkRGVjOigpPT56Q3IscGFyc2U6KCk9PkNrLHBhcnNlQmFzZTY0OigpPT5TQ3IscGFyc2VKc29uTDooKT0+WVcsc3RhYmxlT25lV2F5U3RyaW5naWZ5OigpPT53Q3Isc3RyaW5naWZ5OigpPT5vNixzdHJpbmdpZnlCYXNlNjQ6KCk9PmtDcixzdHJpbmdpZnlKc29uTDooKT0+eUNyLHN0cmluZ2lmeVByZXR0eTooKT0+TUNyfSk7dmFyIENrLFlXLHlDcix3Q3IsbzYsTUNyLGtDcixTQ3IsWlcsekNyLEhMZSxDQ3IscUxlPXAoKCk9PntWVygpO0JMZSgpO0NrPUdXLFlXPWU9PmUuc3BsaXQoYApgKS5yZWR1Y2UoKGksYSk9PntsZXQgbj1hLnRyaW0oKTtyZXR1cm4gbi5sZW5ndGg+MCYmaS5wdXNoKENrKG4pKSxpfSxbXSkseUNyPWU9PmUubWFwKHQ9Pm82KHQpKS5qb2luKGAKYCksd0NyPShlLHQscj17fSk9PntsZXQgaT1uZXcgV2Vha1NldCxhPXM9PntpZihzPT09bnVsbHx8dHlwZW9mIHMhPSJvYmplY3QiKXJldHVybiBzO2xldCBsPXprKCIiLHMpO2lmKGwmJmwudHlwZT09PSJFbmNvZGVkQnVmZmVyIiYmdHlwZW9mIGwuZGF0YT09InN0cmluZyIpcmV0dXJuIGw7aWYoaS5oYXMocykpcmV0dXJuIl9fY3ljbGVfXyI7aWYoaS5hZGQocyksQXJyYXkuaXNBcnJheShzKSlyZXR1cm4gcy5tYXAodT0+YSh1KSk7bGV0IGM9e307Zm9yKGxldCB1IG9mIE9iamVjdC5rZXlzKHMpKXRyeXtjW3VdPWEoc1t1XSl9Y2F0Y2h7Y1t1XT0iX191bnNlcmlhbGl6YWJsZV9fIn1yZXR1cm4gY30sbj1hKGUpLG89ey4uLnIsY3ljbGVzOiEwfTtpZih0JiYhby5jbXApe2xldCBzPW5ldyBNYXA7dC5mb3JFYWNoKChsLGMpPT5zLnNldChsLGMpKSxvLmNtcD0obCxjKT0+e2xldCB1PXMuaGFzKGwua2V5KT9zLmdldChsLmtleSk6TnVtYmVyLlBPU0lUSVZFX0lORklOSVRZLGQ9cy5oYXMoYy5rZXkpP3MuZ2V0KGMua2V5KTpOdW1iZXIuUE9TSVRJVkVfSU5GSU5JVFk7cmV0dXJuIHUhPT1kP3UtZDpsLmtleTxjLmtleT8tMTpsLmtleT5jLmtleT8xOjB9fXJldHVybiBTayhuLG8pfSxvNj0oZSx0LHI9e30pPT57bGV0IGk9V1coZSk7ZT1KU09OLnBhcnNlKGkpO2xldCBhPXsuLi5yfTtpZih0JiYhYS5jbXApe2xldCBvPW5ldyBNYXA7dC5mb3JFYWNoKChzLGwpPT5vLnNldChzLGwpKSxhLmNtcD0ocyxsKT0+e2xldCBjPW8uaGFzKHMua2V5KT9vLmdldChzLmtleSk6TnVtYmVyLlBPU0lUSVZFX0lORklOSVRZLHU9by5oYXMobC5rZXkpP28uZ2V0KGwua2V5KTpOdW1iZXIuUE9TSVRJVkVfSU5GSU5JVFk7cmV0dXJuIGMhPT11P2MtdTpzLmtleTxsLmtleT8tMTpzLmtleT5sLmtleT8xOjB9fXJldHVybiBTayhlLGEpfSxNQ3I9ZT0+e2xldCB0PW82KGUpLHI9SlNPTi5wYXJzZSh0KTtyZXR1cm4gSlNPTi5zdHJpbmdpZnkocixudWxsLDIpfSxrQ3I9KC4uLmUpPT57bGV0IHQ9bzYoLi4uZSk7cmV0dXJuIGdhLmJhc2U2NC5lbmNvZGVVcmkodCl9LFNDcj1lPT57bGV0IHQ9Z2EuYmFzZTY0LGk9KHQuZGVjb2RlVXJpfHx0LmRlY29kZSkoZSk7cmV0dXJuIENrKGkpfSxaVz1jbGFzcyBle3N0YXRpYyBlbmZvbGRGcm9tT2JqZWN0KHQpe2xldCByPW5ldyB0aGlzLGk9ci5zYXZlYWJsZVByb3BlcnRpZXN8fFtdO2ZvcihsZXQgYSBpbiB0KWkuaW5kZXhPZihhKSE9PS0xJiYoclthXT10W2FdKTtyZXR1cm4gcn1zdGF0aWMgZW5mb2xkRnJvbUpzb24odCl7bGV0IHI9Q2sodCk7cmV0dXJuIHRoaXMuZW5mb2xkRnJvbU9iamVjdChyKX1zYXZlYWJsZVByb3BlcnRpZXM7Zm9sZFRvT2JqZWN0KCl7bGV0IHQ9bmV3IFNldDtyZXR1cm4gdC5hZGQodGhpcyksdGhpcy5mb2xkVG9PYmplY3RJbnRlcm5hbCh0KX1mb2xkVG9PYmplY3RJbnRlcm5hbCh0KXtsZXQgcj17fSxpPW49PntpZihuIGluc3RhbmNlb2YgZSl7aWYodC5oYXMobikpdGhyb3cgbmV3IEVycm9yKCJjeWNsZSBkZXRlY3RlZCIpO3JldHVybiB0LmFkZChuKSxuLmZvbGRUb09iamVjdEludGVybmFsKHQpfXJldHVybiBBcnJheS5pc0FycmF5KG4pP24ubWFwKG89PmkobykpOmtrLmRlZmF1bHQobil9LGE9dGhpcy5zYXZlYWJsZVByb3BlcnRpZXN8fFtdO2ZvcihsZXQgbiBvZiBhKXtsZXQgbz10aGlzW25dO3Jbbl09aShvKX1yZXR1cm4gcn1mb2xkVG9Kc29uKCl7bGV0IHQ9dGhpcy5mb2xkVG9PYmplY3QoKTtyZXR1cm4gbzYodCl9fSx6Q3I9KCk9PihlLHQpPT57bGV0IHI9U3RyaW5nKHQubmFtZSk7dC5hZGRJbml0aWFsaXplcihmdW5jdGlvbigpe3RoaXMuc2F2ZWFibGVQcm9wZXJ0aWVzfHwodGhpcy5zYXZlYWJsZVByb3BlcnRpZXM9W10pLHRoaXMuc2F2ZWFibGVQcm9wZXJ0aWVzLmluY2x1ZGVzKHIpfHx0aGlzLnNhdmVhYmxlUHJvcGVydGllcy5wdXNoKHIpfSl9LEhMZT0oZSx0KT0+e2xldCByPW82KGUpLGk9bzYodCk7cmV0dXJuIHI9PT1pfSxDQ3I9KGUsdCk9PntsZXQgcj1ZVyhlKSxpPVlXKHQpO3JldHVybiBITGUocixpKX19KTt2YXIgVGs9cCgoKT0+e0RMZSgpO3FMZSgpO3NhKCk7dDIoKTtVZigpfSk7dmFyIFI3LFhXPXAoKCk9PntUaygpO19rKCk7Ujc9Y2xhc3N7Y29uc3RydWN0b3IodCxyKXt0aGlzLnN0YXRlUGFydFJlZj10LHRoaXMuYWN0aW9uRGVmPXJ9dHJpZ2dlcih0KXtyZXR1cm4gdGhpcy5zdGF0ZVBhcnRSZWYuZGlzcGF0Y2hBY3Rpb24odGhpcyx0KX19fSk7dmFyIEI3LF9rPXAoKCk9PntUaygpO1hXKCk7Qjc9Y2xhc3N7Y29uc3RydWN0b3IodCxyKXt0aGlzLnN0YXRlPW5ldyBpci5yeGpzLlN1YmplY3QsdGhpcy5jdW11bGF0aXZlRGVmZXJyZWQ9S2UuY3VtdWxhdGl2ZURlZmVyKCksdGhpcy5wZW5kaW5nQ3VtdWxhdGl2ZU5vdGlmaWNhdGlvbj1udWxsLHRoaXMud2ViU3RvcmU9bnVsbCx0aGlzLm5hbWU9dCxyJiYodGhpcy53ZWJTdG9yZU9wdGlvbnM9cil9YXN5bmMgaW5pdCgpe2lmKHRoaXMud2ViU3RvcmVPcHRpb25zKXt0aGlzLndlYlN0b3JlPW5ldyBqYS5XZWJTdG9yZSh0aGlzLndlYlN0b3JlT3B0aW9ucyksYXdhaXQgdGhpcy53ZWJTdG9yZS5pbml0KCk7bGV0IHQ9YXdhaXQgdGhpcy53ZWJTdG9yZS5nZXQoU3RyaW5nKHRoaXMubmFtZSkpO3QmJnRoaXMudmFsaWRhdGVTdGF0ZSh0KSYmKHRoaXMuc3RhdGVTdG9yZT10LGF3YWl0IHRoaXMubm90aWZ5Q2hhbmdlKCkpfX1nZXRTdGF0ZSgpe3JldHVybiB0aGlzLnN0YXRlU3RvcmV9YXN5bmMgc2V0U3RhdGUodCl7aWYoIXRoaXMudmFsaWRhdGVTdGF0ZSh0KSl0aHJvdyBuZXcgRXJyb3IoYEludmFsaWQgc3RhdGUgc3RydWN0dXJlIGZvciBzdGF0ZSBwYXJ0ICcke3RoaXMubmFtZX0nYCk7cmV0dXJuIHRoaXMud2ViU3RvcmUmJmF3YWl0IHRoaXMud2ViU3RvcmUuc2V0KFN0cmluZyh0aGlzLm5hbWUpLHQpLHRoaXMuc3RhdGVTdG9yZT10LGF3YWl0IHRoaXMubm90aWZ5Q2hhbmdlKCksdGhpcy5zdGF0ZVN0b3JlfXZhbGlkYXRlU3RhdGUodCl7cmV0dXJuIHQhPW51bGx9YXN5bmMgbm90aWZ5Q2hhbmdlKCl7aWYoIXRoaXMuc3RhdGVTdG9yZSlyZXR1cm47bGV0IHI9YXdhaXQoYXN5bmMgaT0+YXdhaXQgRjcuc2hhMjU2RnJvbVN0cmluZyhPNy5zdGFibGVPbmVXYXlTdHJpbmdpZnkoaSkpKSh0aGlzLnN0YXRlU3RvcmUpO3RoaXMubGFzdFN0YXRlTm90aWZpY2F0aW9uUGF5bG9hZEhhc2gmJnI9PT10aGlzLmxhc3RTdGF0ZU5vdGlmaWNhdGlvblBheWxvYWRIYXNofHwodGhpcy5sYXN0U3RhdGVOb3RpZmljYXRpb25QYXlsb2FkSGFzaD1yLHRoaXMuc3RhdGUubmV4dCh0aGlzLnN0YXRlU3RvcmUpKX1ub3RpZnlDaGFuZ2VDdW11bGF0aXZlKCl7dGhpcy5wZW5kaW5nQ3VtdWxhdGl2ZU5vdGlmaWNhdGlvbiYmY2xlYXJUaW1lb3V0KHRoaXMucGVuZGluZ0N1bXVsYXRpdmVOb3RpZmljYXRpb24pLHRoaXMucGVuZGluZ0N1bXVsYXRpdmVOb3RpZmljYXRpb249c2V0VGltZW91dChhc3luYygpPT57dGhpcy5wZW5kaW5nQ3VtdWxhdGl2ZU5vdGlmaWNhdGlvbj1udWxsLHRoaXMuc3RhdGVTdG9yZSYmYXdhaXQgdGhpcy5ub3RpZnlDaGFuZ2UoKX0sMCl9c2VsZWN0KHQpe3JldHVybiB0fHwodD1pPT5pKSx0aGlzLnN0YXRlLnBpcGUoaXIucnhqcy5vcHMuc3RhcnRXaXRoKHRoaXMuZ2V0U3RhdGUoKSksaXIucnhqcy5vcHMuZmlsdGVyKGk9PmkhPT12b2lkIDApLGlyLnJ4anMub3BzLm1hcChpPT57dHJ5e3JldHVybiB0KGkpfWNhdGNoKGEpe2NvbnNvbGUuZXJyb3IoYFNlbGVjdG9yIGVycm9yIGluIHN0YXRlIHBhcnQgJyR7dGhpcy5uYW1lfSc6YCxhKTtyZXR1cm59fSkpfWNyZWF0ZUFjdGlvbih0KXtyZXR1cm4gbmV3IFI3KHRoaXMsdCl9YXN5bmMgZGlzcGF0Y2hBY3Rpb24odCxyKXthd2FpdCB0aGlzLmN1bXVsYXRpdmVEZWZlcnJlZC5wcm9taXNlO2xldCBpPWF3YWl0IHQuYWN0aW9uRGVmKHRoaXMscik7cmV0dXJuIGF3YWl0IHRoaXMuc2V0U3RhdGUoaSksdGhpcy5nZXRTdGF0ZSgpfWFzeW5jIHdhaXRVbnRpbFByZXNlbnQodCxyKXtsZXQgaT1LZS5kZWZlcigpLGE9dGhpcy5zZWxlY3QodCksbj0hMSxvPWEuc3Vic2NyaWJlKGw9PntsJiYhbiYmKG49ITAsaS5yZXNvbHZlKGwpKX0pLHM7ciYmKHM9c2V0VGltZW91dCgoKT0+e258fChuPSEwLG8udW5zdWJzY3JpYmUoKSxpLnJlamVjdChuZXcgRXJyb3IoYHdhaXRVbnRpbFByZXNlbnQgdGltZWQgb3V0IGFmdGVyICR7cn1tc2ApKSl9LHIpKTt0cnl7cmV0dXJuIGF3YWl0IGkucHJvbWlzZX1maW5hbGx5e28udW5zdWJzY3JpYmUoKSxzJiZjbGVhclRpbWVvdXQocyl9fWFzeW5jIHN0YXRlU2V0dXAodCl7bGV0IHI9dCh0aGlzKTt0aGlzLmN1bXVsYXRpdmVEZWZlcnJlZC5hZGRQcm9taXNlKHIpLGF3YWl0IHRoaXMuc2V0U3RhdGUoYXdhaXQgcil9fX0pO3ZhciBRVyxqTGU9cCgoKT0+e1RrKCk7X2soKTtRVz1jbGFzc3tjb25zdHJ1Y3Rvcigpe3RoaXMuc3RhdGVQYXJ0TWFwPXt9LHRoaXMucGVuZGluZ1N0YXRlUGFydENyZWF0aW9uPW5ldyBNYXB9YXN5bmMgZ2V0U3RhdGVQYXJ0KHQscixpPSJzb2Z0Iil7bGV0IGE9dGhpcy5wZW5kaW5nU3RhdGVQYXJ0Q3JlYXRpb24uZ2V0KHQpO2lmKGEpcmV0dXJuIGE7bGV0IG49dGhpcy5zdGF0ZVBhcnRNYXBbdF07aWYobilzd2l0Y2goaSl7Y2FzZSJtYW5kYXRvcnkiOnRocm93IG5ldyBFcnJvcihgU3RhdGUgcGFydCAnJHt0fScgYWxyZWFkeSBleGlzdHMsIGJ1dCBpbml0TW9kZSBpcyAnbWFuZGF0b3J5J2ApO2Nhc2UiZm9yY2UiOmJyZWFrO2RlZmF1bHQ6cmV0dXJuIG59ZWxzZSBpZighcil0aHJvdyBuZXcgRXJyb3IoYFN0YXRlIHBhcnQgJyR7dH0nIGRvZXMgbm90IGV4aXN0IGFuZCBubyBpbml0aWFsIHN0YXRlIHByb3ZpZGVkYCk7bGV0IG89dGhpcy5jcmVhdGVTdGF0ZVBhcnQodCxyLGkpO3RoaXMucGVuZGluZ1N0YXRlUGFydENyZWF0aW9uLnNldCh0LG8pO3RyeXtyZXR1cm4gYXdhaXQgb31maW5hbGx5e3RoaXMucGVuZGluZ1N0YXRlUGFydENyZWF0aW9uLmRlbGV0ZSh0KX19YXN5bmMgY3JlYXRlU3RhdGVQYXJ0KHQscixpPSJzb2Z0Iil7bGV0IGE9bmV3IEI3KHQsaT09PSJwZXJzaXN0ZW50Ij97ZGJOYW1lOiJzbWFydHN0YXRlIixzdG9yZU5hbWU6dH06bnVsbCk7YXdhaXQgYS5pbml0KCk7bGV0IG49YS5nZXRTdGF0ZSgpO3JldHVybiBpPT09InBlcnNpc3RlbnQiJiZuIT09dm9pZCAwP2F3YWl0IGEuc2V0U3RhdGUoey4uLnIsLi4ubn0pOmF3YWl0IGEuc2V0U3RhdGUociksdGhpcy5zdGF0ZVBhcnRNYXBbdF09YSxhfX19KTt2YXIgXzA9e307RmUoXzAse1NtYXJ0c3RhdGU6KCk9PlFXLFN0YXRlQWN0aW9uOigpPT5SNyxTdGF0ZVBhcnQ6KCk9PkI3fSk7dmFyIEpXPXAoKCk9PntqTGUoKTtfaygpO1hXKCl9KTt2YXIgVkxlPXAoKCk9Pnt9KTt2YXIgS1csVUxlPXAoKCk9PntWTGUoKTtLVz1jbGFzcyBle3N0YXRpYyBjcmVhdGVGcm9tVXJsKHQscil7bGV0IGk9bmV3IFVSTCh0KSxhPXt9LG49W107aS5zZWFyY2gmJmkuc2VhcmNoLnJlcGxhY2UoIj8iLCIiKS5zcGxpdCgiJiIpLm1hcChjPT57bi5wdXNoKHtrZXk6Yy5zcGxpdCgiPSIpWzBdLHZhbHVlOmMuc3BsaXQoIj0iKVsxXX0pfSk7Zm9yKGxldCBjIG9mIG4pYVtjLmtleV09Yy52YWx1ZTtpZihyPy5zZWFyY2hQYXJhbXMpZm9yKGxldCBjIG9mIE9iamVjdC5rZXlzKHIuc2VhcmNoUGFyYW1zKSlhW2NdPXIuc2VhcmNoUGFyYW1zW2NdO2xldCBvPWkucGF0aG5hbWV8fCIiO2lmKE9iamVjdC5rZXlzKGEpLmxlbmd0aD4wKXtvKz0iPyI7bGV0IGM9ITA7Zm9yKGxldCB1IG9mIE9iamVjdC5rZXlzKGEpKWM/Yz0hMTpvKz0iJiIsbys9YCR7dX09JHthW3VdfWB9bGV0IHM9ey4uLmksaHJlZjppLmhyZWYsb3JpZ2luOmkub3JpZ2luLHByb3RvY29sOmkucHJvdG9jb2wsdXNlcm5hbWU6aS51c2VybmFtZSxwYXNzd29yZDppLnBhc3N3b3JkLGhvc3Q6aS5ob3N0LGhvc3RuYW1lOmkuaG9zdG5hbWUscG9ydDppLnBvcnQscGF0aDpvLHBhdGhuYW1lOmkucGF0aG5hbWUsc2VhcmNoOmkuc2VhcmNoLHNlYXJjaFBhcmFtczphLGhhc2g6aS5oYXNofTshcy5wb3J0JiZzLnByb3RvY29sPT09Imh0dHBzOiImJihzLnBvcnQ9IjQ0MyIpLCFzLnBvcnQmJnMucHJvdG9jb2w9PT0iaHR0cDoiJiYocy5wb3J0PSI4MCIpO2xldCBsPW5ldyBlO3JldHVybiBPYmplY3QuYXNzaWduKGwscyksbH1zdGF0aWMgY3JlYXRlRnJvbVBhcnNlZFVybCh0KXtsZXQgcj1uZXcgZTtyZXR1cm4gT2JqZWN0LmFzc2lnbihyLHQpLHJ9Y29uc3RydWN0b3IoKXt0aGlzLnNlYXJjaFBhcmFtcz17fX1jbG9uZSgpe2xldCB0PW5ldyBlO3JldHVybiBPYmplY3QuYXNzaWduKHQsdGhpcyksdC5zZWFyY2hQYXJhbXM9ey4uLnRoaXMuc2VhcmNoUGFyYW1zfSx0fXNldCh0LHIpe3JldHVybiB0aGlzW3RdPXIsdGhpc310b1N0cmluZygpe2xldCB0PSIiO3JldHVybiB0aGlzLnVzZXJuYW1lJiYhdGhpcy5wYXNzd29yZCYmKHQ9YCR7dGhpcy51c2VybmFtZX1AYCksdGhpcy51c2VybmFtZSYmdGhpcy5wYXNzd29yZCYmKHQ9YCR7dGhpcy51c2VybmFtZX06JHt0aGlzLnBhc3N3b3JkfUBgKSxgJHt0aGlzLnByb3RvY29sfS8vJHt0fSR7dGhpcy5ob3N0bmFtZX06JHt0aGlzLnBvcnR9JHt0aGlzLnBhdGh9YH19fSk7dmFyIEwwPXt9O0ZlKEwwLHtTbWFydHVybDooKT0+S1d9KTt2YXIgZUc9cCgoKT0+e1VMZSgpfSk7dmFyIFdMZT1wKCgpPT57WTIoKTtRNSgpO2F1KCk7c2EoKTtVZigpfSk7dmFyIHJHPXt9O0ZlKHJHLHtXZWJSZXF1ZXN0OigpPT50R30pO3ZhciB0RyxHTGU9cCgoKT0+e1dMZSgpO3RHPWNsYXNze2NvbnN0cnVjdG9yKHQ9e30pe3RoaXMub3B0aW9uc0FyZz10LHRoaXMuY2FjaGVTdG9yZT1uZXcgamEuV2ViU3RvcmUoe2RiTmFtZToid2VicmVxdWVzdCIsc3RvcmVOYW1lOiJ3ZWJyZXF1ZXN0In0pLHRoaXMub3B0aW9ucz17bG9nZ2luZzohMCwuLi50fX1hc3luYyBnZXRKc29uKHQscj0hMSl7bGV0IGE9YXdhaXQoYXdhaXQgdGhpcy5yZXF1ZXN0KHQse21ldGhvZDoiR0VUIix1c2VDYWNoZTpyfSkpLnRleHQoKTtyZXR1cm4gdjEucGFyc2UoYSl9YXN5bmMgcG9zdEpzb24odCxyLGk9ITEpe2xldCBuPWF3YWl0KGF3YWl0IHRoaXMucmVxdWVzdCh0LHttZXRob2Q6IlBPU1QiLGhlYWRlcnM6eyJDb250ZW50LVR5cGUiOiJhcHBsaWNhdGlvbi9qc29uIn0sYm9keTp2MS5zdHJpbmdpZnkociksdXNlQ2FjaGU6aX0pKS50ZXh0KCk7cmV0dXJuIHYxLnBhcnNlKG4pfWFzeW5jIHB1dEpzb24odCxyLGk9ITEpe2xldCBuPWF3YWl0KGF3YWl0IHRoaXMucmVxdWVzdCh0LHttZXRob2Q6IlBVVCIsaGVhZGVyczp7IkNvbnRlbnQtVHlwZSI6ImFwcGxpY2F0aW9uL2pzb24ifSxib2R5OnYxLnN0cmluZ2lmeShyKX0pKS50ZXh0KCk7cmV0dXJuIHYxLnBhcnNlKG4pfWFzeW5jIGRlbGV0ZUpzb24odCxyPSExKXtsZXQgYT1hd2FpdChhd2FpdCB0aGlzLnJlcXVlc3QodCx7aGVhZGVyczp7IkNvbnRlbnQtVHlwZSI6ImFwcGxpY2F0aW9uL2pzb24ifSxtZXRob2Q6IkdFVCJ9KSkudGV4dCgpO3JldHVybiB2MS5wYXJzZShhKX1hc3luYyByZXF1ZXN0KHQscil7cj17dGltZW91dE1zOjZlNCx1c2VDYWNoZTohMSwuLi5yfTtsZXQgaT1uZXcgQWJvcnRDb250cm9sbGVyO3p0LmRlbGF5Rm9yKHIudGltZW91dE1zKS50aGVuKCgpPT57aS5hYm9ydCgpfSk7bGV0IGE9S2UuZGVmZXIoKSxuPSExO2lmKHIudXNlQ2FjaGUmJmF3YWl0IHRoaXMuY2FjaGVTdG9yZS5jaGVjayh0KSl7bGV0IHM9YXdhaXQgdGhpcy5jYWNoZVN0b3JlLmdldCh0KTthLnJlc29sdmUobmV3IFJlc3BvbnNlKHMse30pKX1lbHNlIGEucmVzb2x2ZShudWxsKTtsZXQgbz1hd2FpdCBmZXRjaCh0LHtzaWduYWw6aS5zaWduYWwsbWV0aG9kOnIubWV0aG9kLGhlYWRlcnM6ey4uLnIuaGVhZGVyc3x8e319LGJvZHk6ci5ib2R5fSkuY2F0Y2goYXN5bmMgcz0+ci51c2VDYWNoZSYmYXdhaXQgYS5wcm9taXNlPyhuPSEwLGEucHJvbWlzZSk6cyk7aWYoci51c2VDYWNoZSYmYXdhaXQgYS5wcm9taXNlJiZvLnN0YXR1cz09PTUwMCYmKG49ITAsbz1hd2FpdCBhLnByb21pc2UpLCFuJiZyLnVzZUNhY2hlJiZvLnN0YXR1czwzMDApe2xldCBzPWF3YWl0IG8uY2xvbmUoKS5hcnJheUJ1ZmZlcigpO2F3YWl0IHRoaXMuY2FjaGVTdG9yZS5zZXQodCxzKX1yZXR1cm4gdGhpcy5sb2coYCR7dH0gYW5zd2VycyB3aXRoIHN0YXR1czogJHtvLnN0YXR1c31gKSxvfWFzeW5jIHJlcXVlc3RNdWx0aUVuZHBvaW50KHQscil7bGV0IGksYT0wO0FycmF5LmlzQXJyYXkodCk/aT10Omk9W3RdO2xldCBuPVtdLG89YXN5bmMgYz0+e24ucHVzaChjKSxjPT09IjQyOSImJihjb25zb2xlLmxvZygiZ290IDQyOSwgc28gd2FpdGluZyBhIGxpdHRsZSBiaXQuIiksYXdhaXQgenQuZGVsYXlGb3IoTWF0aC5mbG9vcihNYXRoLnJhbmRvbSgpKjEwMDEpKzFlMykpO2xldCB1PTA7Zm9yKGxldCBkIG9mIG4pZD09PWMmJnUrKzt1PjIqaS5sZW5ndGgqYSYmYSsrfSxzPWFzeW5jIGM9PntpZighYyl0aHJvdyBuZXcgRXJyb3IoInJlcXVlc3QgZmFpbGVkIHBlcm1hbmVudGx5Iik7dGhpcy5sb2coYEdldHRpbmcgJHtjfSB3aXRoIG1ldGhvZCAke3IubWV0aG9kfWApO2xldCB1PWF3YWl0IGZldGNoKGMse21ldGhvZDpyLm1ldGhvZCxoZWFkZXJzOnsiQ29udGVudC1UeXBlIjoiYXBwbGljYXRpb24vanNvbiIsLi4uci5oZWFkZXJzfHx7fX0sYm9keTpyLmJvZHl9KTtyZXR1cm4gdGhpcy5sb2coYCR7Y30gYW5zd2VycyB3aXRoIHN0YXR1czogJHt1LnN0YXR1c31gKSx1LnN0YXR1cz49MjAwJiZ1LnN0YXR1czwzMDA/dTooYXdhaXQgbyh1LnN0YXR1cy50b1N0cmluZygpKSxhd2FpdCBzKGlbYV0pKX07cmV0dXJuIGF3YWl0IHMoaVthXSl9bG9nKHQpe3RoaXMub3B0aW9ucy5sb2dnaW5nJiZjb25zb2xlLmxvZyh0KX19fSk7dmFyIExrLHM2LEFrPXAoKCk9PntMaz1jbGFzc3tjbGFpbSgpe2lmKHRoaXMuY2xhaW1lZCl0aHJvdyBuZXcgRXJyb3IoIkRlZmVycmVkIGFscmVhZHkgY2xhaW1lZCIpO3RoaXMuY2xhaW1lZD0hMH1nZXQgZHVyYXRpb24oKXtyZXR1cm4gdGhpcy5zdG9wcGVkQXQ/dGhpcy5zdG9wcGVkQXQtdGhpcy5zdGFydGVkQXQ6RGF0ZS5ub3coKS10aGlzLnN0YXJ0ZWRBdH1jb25zdHJ1Y3Rvcigpe3RoaXMuY2xhaW1lZD0hMSx0aGlzLnByb21pc2U9bmV3IFByb21pc2UoKHQscik9Pnt0aGlzLnJlc29sdmU9aT0+e3RoaXMuc3RhdHVzPSJmdWxmaWxsZWQiLHRoaXMuc3RvcHBlZEF0PURhdGUubm93KCksdChpKX0sdGhpcy5yZWplY3Q9aT0+e3RoaXMuc3RhdHVzPSJyZWplY3RlZCIsdGhpcy5zdG9wcGVkQXQ9RGF0ZS5ub3coKSxyKGkpfSx0aGlzLnN0YXJ0ZWRBdD1EYXRlLm5vdygpLHRoaXMuc3RhdHVzPSJwZW5kaW5nIn0pfX0sczY9KCk9Pm5ldyBMa30pO3ZhciBEayxMQ3IsWUxlPXAoKCk9PntBaygpO0RrPWNsYXNze2NvbnN0cnVjdG9yKCl7dGhpcy5hY2N1bXVsYXRlZFByb21pc2VzPVtdLHRoaXMuZGVmZXJyZWQ9czYoKSx0aGlzLnByb21pc2U9dGhpcy5kZWZlcnJlZC5wcm9taXNlLHNldFRpbWVvdXQoYXN5bmMoKT0+e2Zvcig7dGhpcy5hY2N1bXVsYXRlZFByb21pc2VzLmxlbmd0aD4wOylhd2FpdCB0aGlzLmFjY3VtdWxhdGVkUHJvbWlzZXMuc2hpZnQoKTt0aGlzLmRlZmVycmVkLnJlc29sdmUoKX0sMCl9YWRkUHJvbWlzZSh0KXt0aGlzLmFjY3VtdWxhdGVkUHJvbWlzZXMucHVzaCh0KX19LExDcj0oKT0+bmV3IERrfSk7dmFyIGw2PXt9O0ZlKGw2LHtDdW11bGF0aXZlRGVmZXJyZWQ6KCk9PkRrLERlZmVycmVkOigpPT5MayxjdW11bGF0aXZlRGVmZXI6KCk9PkxDcixkZWZlcjooKT0+czYsZ2V0Rmlyc3RUcnVlT3JGYWxzZTooKT0+SUNyLG1hcDooKT0+RUNyLHJlamVjdGVkUHJvbWlzZTooKT0+RENyLHJlc29sdmVkUHJvbWlzZTooKT0+QUNyLHRpbWVvdXRBbmRDb250aW51ZTooKT0+JENyLHRpbWVvdXRXcmFwOigpPT5aTGV9KTt2YXIgQUNyLERDcixFQ3IsWkxlLCRDcixJQ3IsaUc9cCgoKT0+e0FrKCk7WUxlKCk7QWsoKTtBQ3I9ZT0+UHJvbWlzZS5yZXNvbHZlKGUpLERDcj1lPT5Qcm9taXNlLnJlamVjdChlKSxFQ3I9YXN5bmMoZSx0KT0+e2xldCByPVtdLGk9W107Zm9yKGxldCBhIG9mIGUpe2xldCBuPXQoYSk7ci5wdXNoKG4pLG4udGhlbihvPT57aS5wdXNoKG8pfSl9cmV0dXJuIGF3YWl0IFByb21pc2UuYWxsKHIpLGl9LFpMZT1hc3luYyhlLHQscj0hMCk9Pm5ldyBQcm9taXNlKChpLGEpPT57c2V0VGltZW91dCgoKT0+e3I/YShuZXcgRXJyb3IoInRpbWVvdXQiKSk6aShudWxsKX0sdCksZS50aGVuKGksYSl9KSwkQ3I9YXN5bmMoZSx0PTZlNCk9PlpMZShlLHQsITEpLElDcj1hc3luYyBlPT57bGV0IHQ9czYoKTtmb3IobGV0IHIgb2YgZSlyLnRoZW4oaT0+e2k9PT0hMCYmdC5yZXNvbHZlKCEwKX0pO3JldHVybiBQcm9taXNlLmFsbChlKS50aGVuKCgpPT57dC5yZXNvbHZlKCExKX0pLHQucHJvbWlzZX19KTt2YXIgYUc9e307RmUoYUcse1RpbWVvdXQ6KCk9PkVrLGRlbGF5Rm9yOigpPT5YTGUsZGVsYXlGb3JSYW5kb206KCk9PlBDcn0pO3ZhciBYTGUsUENyLEVrLFFMZT1wKCgpPT57aUcoKTtYTGU9YXN5bmMoZSx0LHI9ITEpPT4oYXdhaXQgbmV3IEVrKGUsbnVsbCxyKS5wcm9taXNlLHQpLFBDcj1hc3luYyhlLHQscixpPSExKT0+KGF3YWl0IFhMZShNYXRoLnJhbmRvbSgpKih0LWUpK2UsbnVsbCxpKSxyKSxFaz1jbGFzc3tjb25zdHJ1Y3Rvcih0LHIsaT0hMSl7dGhpcy5fY2FuY2VsbGVkPSExLHRoaXMudGltZW91dEluTWlsbGlzPXQsdGhpcy5fZGVmZXJyZWQ9czYoKSx0aGlzLnByb21pc2U9dGhpcy5fZGVmZXJyZWQucHJvbWlzZSx0aGlzLl90aW1lb3V0PXNldFRpbWVvdXQoKCk9Pnt0aGlzLl9jYW5jZWxsZWR8fHRoaXMuX2RlZmVycmVkLnJlc29sdmUocil9LHQpLHRoaXMuc3RhcnRlZD1EYXRlLm5vdygpLGkmJnRoaXMubWFrZVVucmVmZWQoKX1tYWtlVW5yZWZlZCgpe3RoaXMuX3RpbWVvdXQudW5yZWYoKX1jYW5jZWwoKXt0aGlzLl9jYW5jZWxsZWQ9ITAsY2xlYXJUaW1lb3V0KHRoaXMuX3RpbWVvdXQpfWdldFRpbWVMZWZ0KCl7bGV0IHQ9dGhpcy5zdGFydGVkK3RoaXMudGltZW91dEluTWlsbGlzLURhdGUubm93KCk7cmV0dXJuIHQ+MD90OjB9fX0pO3ZhciBKTGU9cCgoKT0+e30pO3ZhciAkaz1wKCgpPT57eHMoKX0pO3ZhciBJaz1wKCgpPT57eHMoKTt4cygpfSk7dmFyIEtMZT1wKCgpPT57eHMoKX0pO3ZhciBlQWU9cCgoKT0+e30pO3ZhciB0QWU9cCgoKT0+e3hzKCl9KTt2YXIgckFlPXAoKCk9Pnt4cygpfSk7dmFyIGlBZT1wKCgpPT57fSk7dmFyIGFBZT1wKCgpPT57fSk7dmFyIG5HPXt9O3ZhciBQaz1wKCgpPT57S0xlKCk7ZUFlKCk7dEFlKCk7ckFlKCk7aUFlKCk7YUFlKCl9KTt2YXIgb0csbkFlPXAoKCk9PntQaygpOyRrKCk7SWsoKTtvRz1jbGFzc3t9fSk7dmFyIG9BZT1wKCgpPT57fSk7dmFyIHNBZT1wKCgpPT57fSk7dmFyIGxBZT1wKCgpPT57fSk7dmFyIGNBZT1wKCgpPT57fSk7dmFyIHNHPXt9O3ZhciBsRz1wKCgpPT57b0FlKCk7c0FlKCk7bEFlKCk7Y0FlKCl9KTt2YXIgZEFlPXAoKCk9PntjRygpO1BrKCk7bEcoKX0pO3ZhciB1QWU9cCgoKT0+e30pO3ZhciBwQWU9cCgoKT0+e0lrKCl9KTt2YXIgaEFlPXAoKCk9Pnt9KTt2YXIgTms9e307RmUoTmsse0lKb2I6KCk9Pm9HfSk7dmFyIGNHPXAoKCk9PntKTGUoKTskaygpO0lrKCk7bkFlKCk7ZEFlKCk7dUFlKCk7cEFlKCk7aEFlKCl9KTt2YXIgZkFlPXAoKCk9Pnt9KTt2YXIgbUFlPXAoKCk9Pnt9KTt2YXIgZEc9e307dmFyIGdBZT1wKCgpPT57ZkFlKCk7bUFlKCl9KTt2YXIgYkFlPXAoKCk9Pnt9KTt2YXIgdkFlPXAoKCk9Pnt9KTt2YXIgdUc9e307dmFyIHhBZT1wKCgpPT57YkFlKCk7dkFlKCl9KTt2YXIgcEc9cCgoKT0+e3hzKCl9KTt2YXIgeUFlPXAoKCk9Pnt4cygpfSk7dmFyIHdBZT1wKCgpPT57cEcoKX0pO3ZhciBoRz17fTt2YXIgTUFlPXAoKCk9PntwRygpO3lBZSgpO3dBZSgpfSk7dmFyIGtBZT1wKCgpPT57fSk7dmFyIFNBZT1wKCgpPT57fSk7dmFyIGZHPXt9O3ZhciB6QWU9cCgoKT0+e2tBZSgpO1NBZSgpfSk7dmFyIG1HPXAoKCk9Pnt9KTt2YXIgZ0csQ0FlPXAoKCk9PnttRygpO2dHPWNsYXNze319KTt2YXIgVEFlPXAoKCk9Pnt9KTt2YXIgX0FlPXAoKCk9Pnt9KTt2YXIgTEFlPXAoKCk9Pnt9KTt2YXIgQUFlPXAoKCk9Pnt9KTt2YXIgREFlPXAoKCk9Pnt9KTt2YXIgRUFlPXAoKCk9Pnt9KTt2YXIgJEFlPXAoKCk9Pnt9KTt2YXIgSUFlPXAoKCk9Pnt9KTt2YXIgUEFlPXAoKCk9Pnt9KTt2YXIgRms9e307RmUoRmsse0lDbmFtZURlc2NyaXB0b3I6KCk9PmdHfSk7dmFyIE5BZT1wKCgpPT57bUcoKTtDQWUoKTtUQWUoKTtfQWUoKTtMQWUoKTtBQWUoKTtEQWUoKTtFQWUoKTskQWUoKTtJQWUoKTtQQWUoKX0pO3ZhciBiRz1wKCgpPT57JGsoKX0pO3ZhciBGQWU9cCgoKT0+e2JHKCl9KTt2YXIgdkc9e307dmFyIE9BZT1wKCgpPT57RkFlKCk7YkcoKX0pO3ZhciB4Rz17fTt2YXIgUkFlPXAoKCk9Pnt9KTt2YXIgQkFlPXAoKCk9Pnt9KTt2YXIgSEFlPXAoKCk9Pnt9KTt2YXIgcUFlPXAoKCk9Pnt9KTt2YXIgeUc9e307dmFyIGpBZT1wKCgpPT57QkFlKCk7SEFlKCk7cUFlKCl9KTt2YXIgVkFlPXAoKCk9Pnt9KTt2YXIgd0c9e307RmUod0cse2J1c2luZXNzOigpPT5Oayxjb2RlOigpPT5kRyxjb250YWluZXI6KCk9PnVHLGNvbnRlbnQ6KCk9PmhHLGRhdGFiYXNlOigpPT5zRyxmaW5hbmNlOigpPT5uRyxnZW5lcmFsOigpPT5mRyxuZXR3b3JrOigpPT5GayxzYWFzOigpPT52RyxzdG9yYWdlOigpPT54Ryx3ZWJzaXRlOigpPT55R30pO3ZhciB4cz1wKCgpPT57Y0coKTtnQWUoKTt4QWUoKTtsRygpO1BrKCk7TUFlKCk7ekFlKCk7TkFlKCk7T0FlKCk7UkFlKCk7akFlKCk7VkFlKCl9KTt2YXIgUGw9cCgoKT0+e1FMZSgpO2lHKCk7eHMoKX0pO3ZhciBPaz1wKCgpPT57UGwoKX0pO3ZhciBBMCxINz1wKCgpPT57UGwoKTtBMD1jbGFzc3thcHBlbmRUb0RvbSgpeyF0aGlzLmVsZW1lbnRSZWYucGFyZW50RWxlbWVudCYmIXRoaXMuZWxlbWVudFJlZi5wYXJlbnROb2RlJiZkb2N1bWVudC5nZXRFbGVtZW50c0J5VGFnTmFtZSgiaGVhZCIpWzBdLmFwcGVuZENoaWxkKHRoaXMuZWxlbWVudFJlZil9cmVtb3ZlRnJvbURvbSgpe3RoaXMuZWxlbWVudFJlZi5wYXJlbnRFbGVtZW50P3RoaXMuZWxlbWVudFJlZi5wYXJlbnRFbGVtZW50LnJlbW92ZUNoaWxkKHRoaXMuZWxlbWVudFJlZik6dGhpcy5lbGVtZW50UmVmLnBhcmVudE5vZGUmJnRoaXMuZWxlbWVudFJlZi5wYXJlbnROb2RlLnJlbW92ZUNoaWxkKHRoaXMuZWxlbWVudFJlZil9fX0pO3ZhciBjNixSaz1wKCgpPT57UGwoKTtPaygpO0g3KCk7YzY9Y2xhc3MgZSBleHRlbmRzIEEwe3N0YXRpYyBjcmVhdGVDb21wYW55SnNvbkxkKHQpe2xldCByPXsiQGNvbnRleHQiOiJodHRwczovL3NjaGVtYS5vcmciLCJAdHlwZSI6IkNvcnBvcmF0aW9uIixuYW1lOnQubmFtZSxhbHRlcm5hdGVOYW1lOnQubmFtZS5yZXBsYWNlKCIgR21iSCIsIiIpLHVybDp0LmNvbnRhY3Qud2Vic2l0ZSxsb2dvOnQuY29udGFjdC5sb2dvVXJsLGNvbnRhY3RQb2ludDp7IkB0eXBlIjoiQ29udGFjdFBvaW50Iix0ZWxlcGhvbmU6dC5jb250YWN0LnBob25lLGNvbnRhY3RUeXBlOiJjdXN0b21lciBzZXJ2aWNlIixhcmVhU2VydmVkOiJERSIsYXZhaWxhYmxlTGFuZ3VhZ2U6WyJlbiIsIkdlcm1hbiJdfSxzYW1lQXM6W119O3JldHVybiB0LmNvbnRhY3QuZmFjZWJvb2tVcmwmJnIuc2FtZUFzLnB1c2godC5jb250YWN0LmZhY2Vib29rVXJsKSx0LmNvbnRhY3QudHdpdHRlclVybCYmci5zYW1lQXMucHVzaCh0LmNvbnRhY3QudHdpdHRlclVybCksbmV3IGUocil9c3RhdGljIGNyZWF0ZU5ld3NBcnRpY2xlSnNvbkxkKHQpe2xldCByPXsiQGNvbnRleHQiOiJodHRwczovL3NjaGVtYS5vcmciLCJAdHlwZSI6Ik5ld3NBcnRpY2xlIixtYWluRW50aXR5T2ZQYWdlOnsiQHR5cGUiOiJXZWJQYWdlIiwiQGlkIjp3aW5kb3cubG9jYXRpb24uaHJlZn0saGVhZGxpbmU6IkFydGljbGUgaGVhZGxpbmUiLGltYWdlOlt0LmZlYXR1cmVkSW1hZ2VVcmxdLGRhdGVQdWJsaXNoZWQ6bmV3IERhdGUodC50aW1lc3RhbXApLnRvSVNPU3RyaW5nKCksZGF0ZU1vZGlmaWVkOm5ldyBEYXRlKHQudGltZXN0YW1wKS50b0lTT1N0cmluZygpLGF1dGhvcjp7IkB0eXBlIjoiUGVyc29uIixuYW1lOmAke3QuYXV0aG9yLmZpcnN0TmFtZX0gJHt0LmF1dGhvci5zdXJOYW1lfWB9LHB1Ymxpc2hlcjp7IkB0eXBlIjoiT3JnYW5pemF0aW9uIixuYW1lOnQuYXV0aG9yLnN1ck5hbWUsbG9nbzp7IkB0eXBlIjoiSW1hZ2VPYmplY3QiLHVybDp0LmF1dGhvci5zdXJOYW1lfX0sZGVzY3JpcHRpb246dC5hdXRob3IuZmlyc3ROYW1lfTtyZXR1cm4gbmV3IGUocil9c3RhdGljIGNyZWF0ZVByb2R1Y3RKc29uTGQodCxyKXtsZXQgaT17IkBjb250ZXh0IjoiaHR0cHM6Ly9zY2hlbWEub3JnIiwiQHR5cGUiOiJTb2Z0d2FyZUFwcGxpY2F0aW9uIixuYW1lOnQubmFtZSxkZXNjcmlwdGlvbjp0LmRlc2NyaXB0aW9uLG9wZXJhdGluZ1N5c3RlbTp0Lm9zLGFwcGxpY2F0aW9uQ2F0ZWdvcnk6dC5jYXRlZ29yeSxvZmZlcnM6eyJAdHlwZSI6Ik9mZmVyIixuYW1lOiJVc2VyLWJhc2VkIFBsYW4iLHByaWNlU3BlY2lmaWNhdGlvbjp7IkB0eXBlIjoiUHJvcGVydHlWYWx1ZVNwZWNpZmljYXRpb24iLHZhbHVlTmFtZToiTnVtYmVyIG9mIFVzZXJzIix2YWx1ZVJlcXVpcmVkOiEwLHByaWNlOiI0Ljk5IixwcmljZUN1cnJlbmN5OiJFVVIifX0scHVibGlzaGVyOnRoaXMuY3JlYXRlQ29tcGFueUpzb25MZChyKS5lbGVtZW50UmVmLnRleHRDb250ZW50LHNjcmVlbnNob3Q6Imh0dHBzOi8vd3d3LnNvY2lhbC5pby9zY3JlZW5zaG90LnBuZyIsdXJsOiJodHRwczovL3d3dy5zb2NpYWwuaW8vIn07cmV0dXJuIG5ldyBlKGkpfWNvbnN0cnVjdG9yKHQpe3N1cGVyKCk7bGV0IHI9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgic2NyaXB0Iik7ci50eXBlPSJhcHBsaWNhdGlvbi9sZCtqc29uIixyLnRleHQ9SlNPTi5zdHJpbmdpZnkodCksdGhpcy5lbGVtZW50UmVmPXJ9fX0pO3ZhciBVYSxCaz1wKCgpPT57UGwoKTtINygpO1VhPWNsYXNzIGUgZXh0ZW5kcyBBMHtzdGF0aWMgY3JlYXRlTmV3c0FydGljbGVPZ1RhZ3ModCl7bGV0IHI9W107cmV0dXJuIHIucHVzaChuZXcgZSgib2c6dXJsIix0LnVybCkpLHIucHVzaChuZXcgZSgib2c6dGl0bGUiLHQudGl0bGUpKSxyLnB1c2gobmV3IGUoIm9nOmRlc2NyaXB0aW9uIix0LmNvbnRlbnQpKSxyLnB1c2gobmV3IGUoIm9nOmltYWdlIix0LmZlYXR1cmVkSW1hZ2VVcmwpKSxyfXN0YXRpYyBjcmVhdGVQcm9kdWN0T2dUYWdzKHQpe2xldCByPVtdO3JldHVybiByLnB1c2gobmV3IGUoIm9nOnVybCIsZ2xvYmFsVGhpcy5sb2NhdGlvbi5ocmVmKSksci5wdXNoKG5ldyBlKCJvZzp0aXRsZSIsYCR7dC5uYW1lfSAtICR7dC5zbG9nYW59YCkpLHIucHVzaChuZXcgZSgib2c6c2l0ZV9uYW1lIix0Lm5hbWUpKSxyLnB1c2gobmV3IGUoIm9nOmRlc2NyaXB0aW9uIix0LmRlc2NyaXB0aW9uKSksci5wdXNoKG5ldyBlKCJvZzppbWFnZSIsdC5sb2dvTGluaykpLHJ9Y29uc3RydWN0b3IodCxyKXtzdXBlcigpO2xldCBpPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIm1ldGEiKTtpLnNldEF0dHJpYnV0ZSgicHJvcGVydHkiLHQpLGkuY29udGVudD1yLHRoaXMuZWxlbWVudFJlZj1pfX19KTt2YXIgRnUsTUc9cCgoKT0+e0g3KCk7UmsoKTtCaygpO2tHKCk7UGwoKTtGdT1jbGFzc3tzZXQgdGl0bGUodCl7dGhpcy50aXRsZVN0b3JlPXQsdGhpcy5zdGF0ZT09PSJlbmFibGVkIiYmKGRvY3VtZW50LnRpdGxlPXRoaXMudGl0bGVTdG9yZSl9Z2V0IHRpdGxlKCl7cmV0dXJuIHRoaXMudGl0bGVTdG9yZX1jb25zdHJ1Y3Rvcih0LHIpe3RoaXMudGFncz1bXSx0aGlzLnN0YXRlPSJkaXNhYmxlZCIsdGhpcy50YWdNYW5hZ2VyUmVmPXR9YWRkVGFnKHQpe2lmKHQgaW5zdGFuY2VvZiBBcnJheSlmb3IobGV0IHIgb2YgdCl0aGlzLmFkZFRhZyhyKTtlbHNlIHRoaXMudGFncy5wdXNoKHQpLHRoaXMuc3RhdGU9PT0iZW5hYmxlZCImJnQuYXBwZW5kVG9Eb20oKX1hc3luYyBhZGRDb21wYW55SW5mbyh0KXt0aGlzLmFkZFRhZyhjNi5jcmVhdGVDb21wYW55SnNvbkxkKHQpKSx0aGlzLmFkZFRhZyhuZXcgVWEoIm9nOnR5cGUiLCJidXNpbmVzcy5idXNpbmVzcyIpKSx0aGlzLmFkZFRhZyhuZXcgVWEoIm9nOnRpdGxlIix0Lm5hbWUpKSx0aGlzLmFkZFRhZyhuZXcgVWEoIm9nOnVybCIsdC5jb250YWN0LndlYnNpdGUpKSx0aGlzLmFkZFRhZyhuZXcgVWEoIm9nOmltYWdlIix0LmNvbnRhY3QubG9nb1VybCkpLHRoaXMuYWRkVGFnKG5ldyBVYSgiYnVzaW5lc3M6Y29udGFjdF9kYXRhOnN0cmVldF9hZGRyZXNzIixgJHt0LmNvbnRhY3QuYWRkcmVzcy5zdHJlZXROYW1lfSAke3QuY29udGFjdC5hZGRyZXNzLmhvdXNlTnVtYmVyfWApKSx0aGlzLmFkZFRhZyhuZXcgVWEoImJ1c2luZXNzOmNvbnRhY3RfZGF0YTpsb2NhbGl0eSIsdC5jb250YWN0LmFkZHJlc3MucG9zdGFsQ29kZSkpLHRoaXMuYWRkVGFnKG5ldyBVYSgiYnVzaW5lc3M6Y29udGFjdF9kYXRhOnJlZ2lvbiIsdC5jb250YWN0LmFkZHJlc3MuY2l0eSkpLHRoaXMuYWRkVGFnKG5ldyBVYSgiYnVzaW5lc3M6Y29udGFjdF9kYXRhOnBvc3RhbF9jb2RlIix0LmNvbnRhY3QuYWRkcmVzcy5wb3N0YWxDb2RlKSksdGhpcy5hZGRUYWcobmV3IFVhKCJidXNpbmVzczpjb250YWN0X2RhdGE6Y291bnRyeV9uYW1lIix0LmNvbnRhY3QuYWRkcmVzcy5jb3VudHJ5KSl9YWRkTmV3c0FydGljbGVJbmZvKHQpe3RoaXMuYWRkVGFnKGM2LmNyZWF0ZU5ld3NBcnRpY2xlSnNvbkxkKHQpKSx0aGlzLmFkZFRhZyhVYS5jcmVhdGVOZXdzQXJ0aWNsZU9nVGFncyh0KSl9YWRkUHJvZHVjdEluZm8odCxyKXt0aGlzLmFkZFRhZyhjNi5jcmVhdGVQcm9kdWN0SnNvbkxkKHQscikpLHRoaXMuYWRkVGFnKFVhLmNyZWF0ZVByb2R1Y3RPZ1RhZ3ModCkpfWFzeW5jIGVuYWJsZSgpe3RoaXMudGl0bGUmJihkb2N1bWVudC50aXRsZT10aGlzLnRpdGxlKTtmb3IobGV0IHQgb2YgdGhpcy50YWdzKXQuYXBwZW5kVG9Eb20oKTt0aGlzLnN0YXRlPSJlbmFibGVkIn1hc3luYyBkaXNhYmxlKCl7Zm9yKGxldCB0IG9mIHRoaXMudGFncyl0LnJlbW92ZUZyb21Eb20oKTt0aGlzLnN0YXRlPSJkaXNhYmxlZCJ9fX0pO3ZhciBmbyxTRz1wKCgpPT57SDcoKTtmbz1jbGFzcyBleHRlbmRzIEEwe2NvbnN0cnVjdG9yKHQscil7c3VwZXIoKTtsZXQgaT1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJtZXRhIik7aS5uYW1lPXQsaS5jb250ZW50PXIsdGhpcy5lbGVtZW50UmVmPWl9fX0pO3ZhciBIayxrRz1wKCgpPT57TUcoKTtQbCgpO09rKCk7U0coKTtSaygpO0JrKCk7SGs9Y2xhc3N7Y29uc3RydWN0b3IoKXt0aGlzLmdsb2JhbExldmVsPW5ldyBGdSh0aGlzLCJnbG9iYWwiKSx0aGlzLmJhc2VMZXZlbD1uZXcgRnUodGhpcywiYmFzZSIpfWFzeW5jIHNldHVwKHQpe3N3aXRjaCh0aGlzLmdsb2JhbExldmVsLmFkZFRhZyhuZXcgZm8oImdvb2dsZSIsIm5vdHJhbnNsYXRlIikpLHRoaXMuZ2xvYmFsTGV2ZWwuYWRkVGFnKG5ldyBmbygicmV2aXNpdC1hZnRlciIsIjEgZGF5cyIpKSx0LnR3aXR0ZXJIYW5kbGUmJih0aGlzLmdsb2JhbExldmVsLmFkZFRhZyhuZXcgZm8oInR3aXR0ZXI6Y2FyZCIsInN1bW1hcnlfbGFyZ2VfaW1hZ2UiKSksdGhpcy5nbG9iYWxMZXZlbC5hZGRUYWcobmV3IGZvKCJ0d2l0dGVyOnNpdGUiLHQudHdpdHRlckhhbmRsZSkpLHRoaXMuZ2xvYmFsTGV2ZWwuYWRkVGFnKG5ldyBmbygidHdpdHRlcjpjcmVhdG9yIix0LnR3aXR0ZXJIYW5kbGUpKSksdGhpcy5iYXNlTGV2ZWwudGl0bGU9dC50aXRsZSx0LmRlc2NyaXB0aW9uJiZ0aGlzLmJhc2VMZXZlbC5hZGRUYWcobmV3IGZvKCJkZXNjcmlwdGlvbiIsdC5kZXNjcmlwdGlvbikpLHQuY2Fub25pY2FsRG9tYWluJiZ0aGlzLmJhc2VMZXZlbC5hZGRUYWcobmV3IGZvKCJjYW5vbmljYWwiLHQuY2Fub25pY2FsRG9tYWluKSksITApe2Nhc2UodC5sZENvbXBhbnkmJiF0LmxkUHJvZHVjdCk6dGhpcy5iYXNlTGV2ZWwuYWRkQ29tcGFueUluZm8odC5sZENvbXBhbnkpO2JyZWFrO2Nhc2UhIXQubGRQcm9kdWN0OnRoaXMuYmFzZUxldmVsLmFkZFByb2R1Y3RJbmZvKHQubGRQcm9kdWN0LHQubGRDb21wYW55KTticmVha31hd2FpdCB0aGlzLmdsb2JhbExldmVsLmVuYWJsZSgpLHRoaXMuYWN0aXZlTGV2ZWw9dGhpcy5iYXNlTGV2ZWwsYXdhaXQgdGhpcy5hY3RpdmVMZXZlbC5lbmFibGUoKX1hc3luYyBzZXRTdWJQYWdlTGV2ZWwodCl7bGV0IHI9bmV3IEZ1KHRoaXMsInN1YnBhZ2UiKTtyZXR1cm4gci50aXRsZT10LnRpdGxlLHQuZGVzY3JpcHRpb24mJnIuYWRkVGFnKG5ldyBmbygiZGVzY3JpcHRpb24iLHQuZGVzY3JpcHRpb24pKSxhd2FpdCB0aGlzLmFjdGl2ZUxldmVsLmRpc2FibGUoKSx0aGlzLmFjdGl2ZUxldmVsPXIsYXdhaXQgdGhpcy5hY3RpdmVMZXZlbC5lbmFibGUoKSxyfWFzeW5jIHJldmVydFRvQmFzZUxldmVsKCl7dGhpcy5hY3RpdmVMZXZlbCE9PXRoaXMuYmFzZUxldmVsJiYoYXdhaXQgdGhpcy5hY3RpdmVMZXZlbC5kaXNhYmxlKCksdGhpcy5hY3RpdmVMZXZlbD10aGlzLmJhc2VMZXZlbCxhd2FpdCB0aGlzLmFjdGl2ZUxldmVsLmVuYWJsZSgpKX19fSk7dmFyIHE3LFVBZT1wKCgpPT57UGwoKTtPaygpO2tHKCk7TUcoKTtxNz1jbGFzc3tjb25zdHJ1Y3Rvcih0KXt0aGlzLnRhZ01hbmFnZXI9bmV3IEhrLHRoaXMucmVhZHlEZWZlcnJlZD1sNi5kZWZlcigpLHRoaXMucmVhZHlGb3JTbWFydHNzckRlZmVycmVkPWw2LmRlZmVyKCksdGhpcy5yZWFkeVByb21pc2U9dGhpcy5yZWFkeURlZmVycmVkLnByb21pc2UsdGhpcy5yZWFkeUZvclNtYXJ0c3NyUHJvbWlzZT10aGlzLnJlYWR5Rm9yU21hcnRzc3JEZWZlcnJlZC5wcm9taXNlLHRoaXMub3B0aW9ucz10LHRoaXMuc2V0dXAoKS50aGVuKCgpPT57dGhpcy5yZWFkeURlZmVycmVkLnJlc29sdmUoKSx0aGlzLm9wdGlvbnMuc21hcnRzc3JXYWl0Rm9yUmVhZHlTaWduYWx8fHRoaXMucmVhZHlGb3JTbWFydHNzckRlZmVycmVkLnJlc29sdmUoKX0pfWFzeW5jIHNldHVwKHQpe3QmJih0aGlzLm9wdGlvbnM9dCksYXdhaXQgdGhpcy50YWdNYW5hZ2VyLnNldHVwKHRoaXMub3B0aW9ucy5tZXRhT2JqZWN0KX1yZXZlcnRUb0Jhc2VMZXZlbCgpe3RoaXMudGFnTWFuYWdlci5yZXZlcnRUb0Jhc2VMZXZlbCgpfWFzeW5jIHNldFN1YkxldmVsKHQpe3JldHVybiBhd2FpdCB0aGlzLnRhZ01hbmFnZXIuc2V0U3ViUGFnZUxldmVsKHQpfWZsYXNoVGl0bGUodCl7fWluZm9ybVJlYWR5Rm9yU21hcnRzc3IoKXt0aGlzLm9wdGlvbnMuc21hcnRzc3JXYWl0Rm9yUmVhZHlTaWduYWx8fGNvbnNvbGUuZXJyb3IoIllvdSBoYXZlIG5vdCBpbmRpY2F0ZWQgdGhhdCB5b3UgaW5mb3JtIHNtYXJ0c3NyIGJ5IGEgZGVkaWNhdGVkIHNpZ25hbCEgUGxlYXNlIGNvbnNpZGVyIGRvaW5nIHNvISIpLHRoaXMucmVhZHlGb3JTbWFydHNzckRlZmVycmVkLnJlc29sdmUoKX19fSk7dmFyIHpHLFdBZT1wKCgpPT57UGwoKTt6Rz1jbGFzc3t9fSk7dmFyIENHPXt9O0ZlKENHLHtKc29uTGRUYWc6KCk9PmM2LE1ldGFUYWc6KCk9PmZvLE9wZW5ncmFwaFRhZzooKT0+VWEsVGl0bGU6KCk9PnpHLFdlYlNldHVwOigpPT5xN30pO3ZhciBxaz1wKCgpPT57VUFlKCk7U0coKTtCaygpO1JrKCk7V0FlKCl9KTt2YXIgR0FlLGprPXAoKCk9PntZMigpO0lCKCk7c2EoKTt0MigpO2lxKCk7R0FlPWVyKG5xKCksMSl9KTt2YXIgT3UsVEc9cCgoKT0+e2prKCk7T3U9Y2xhc3MgZXtjb25zdHJ1Y3Rvcigpe3RoaXMubWFwT2JqZWN0PXt9fWlzVW5pcXVlS2V5KHQpe3JldHVybiF0aGlzLm1hcE9iamVjdFt0XX1hZGRUb01hcCh0LHIsaSl7cmV0dXJuIHRoaXMuaXNVbmlxdWVLZXkodCl8fGkmJmkuZm9yY2U/KHRoaXMubWFwT2JqZWN0W3RdPXIsITApOiExfWdldEJ5S2V5KHQpe3JldHVybiB0aGlzLm1hcE9iamVjdFt0XX1yZW1vdmVGcm9tTWFwKHQpe2xldCByPXRoaXMuZ2V0QnlLZXkodCk7cmV0dXJuIGRlbGV0ZSB0aGlzLm1hcE9iamVjdFt0XSxyfWdldEtleXMoKXtsZXQgdD1bXTtmb3IobGV0IHIgaW4gdGhpcy5tYXBPYmplY3QpdGhpcy5tYXBPYmplY3Rbcl0mJnQucHVzaChyKTtyZXR1cm4gdH1jbGVhbigpe3RoaXMubWFwT2JqZWN0PXt9fWNvbmNhdCh0KXtsZXQgcj1uZXcgZTtmb3IobGV0IGkgb2YgdGhpcy5nZXRLZXlzKCkpci5hZGRUb01hcChpLHRoaXMuZ2V0QnlLZXkoaSkpO2ZvcihsZXQgaSBvZiB0LmdldEtleXMoKSlyLmFkZFRvTWFwKGksdC5nZXRCeUtleShpKSx7Zm9yY2U6ITB9KTtyZXR1cm4gcn1hZGRBbGxGcm9tT3RoZXIodCl7Zm9yKGxldCByIG9mIHQuZ2V0S2V5cygpKXRoaXMuYWRkVG9NYXAocix0LmdldEJ5S2V5KHIpLHtmb3JjZTohMH0pfWFzeW5jIGZpbmQodCl7Zm9yKGxldCByIG9mIHRoaXMuZ2V0S2V5cygpKXtsZXQgaT10aGlzLmdldEJ5S2V5KHIpO2lmKGF3YWl0IHQoaSkpcmV0dXJuIGl9fX19KTt2YXIgRkNyLFZrLFpBZT1wKCgpPT57amsoKTtURygpO0ZDcj0oZT0idW5pIik9PmAke2V9eHh4eHh4eHh4eHhgLnJlcGxhY2UoL1t4eV0vZyx0PT57bGV0IHI9TWF0aC5yYW5kb20oKSoxNnwwO3JldHVybih0PT09IngiP3I6ciYzfDgpLnRvU3RyaW5nKDE2KX0pLFZrPWNsYXNzIGV7Y29uc3RydWN0b3IoKXt0aGlzLmZhc3RNYXA9bmV3IE91LHRoaXMuZXZlbnRTdWJqZWN0PW5ldyBpci5yeGpzLlN1YmplY3R9YWRkTWFwcGVkVW5pcXVlKHQscil7dGhpcy5mYXN0TWFwLmFkZFRvTWFwKHQscil9Z2V0TWFwcGVkVW5pcXVlKHQpe3JldHVybiB0aGlzLmZhc3RNYXAuZ2V0QnlLZXkodCl9cmVtb3ZlTWFwcGVkVW5pcXVlKHQpe2xldCByPXRoaXMuZ2V0TWFwcGVkVW5pcXVlKHQpfWFkZCh0KXtmb3IobGV0IGkgb2YgdGhpcy5mYXN0TWFwLmdldEtleXMoKSlpZih0aGlzLmZhc3RNYXAuZ2V0QnlLZXkoaSk9PT10KXJldHVybiBpO2xldCByPUZDcigia2V5Iik7cmV0dXJuIHRoaXMuYWRkTWFwcGVkVW5pcXVlKHIsdCksdGhpcy5ldmVudFN1YmplY3QubmV4dCh7b3BlcmF0aW9uOiJhZGQiLHBheWxvYWQ6dH0pLHJ9YWRkQXJyYXkodCl7Zm9yKGxldCByIG9mIHQpdGhpcy5hZGQocil9Y2hlY2tGb3JPYmplY3QodCl7cmV0dXJuISF0aGlzLmdldEtleUZvck9iamVjdCh0KX1nZXRLZXlGb3JPYmplY3QodCl7bGV0IHI9bnVsbDtmb3IobGV0IGkgb2YgdGhpcy5mYXN0TWFwLmdldEtleXMoKSlpZighciYmdGhpcy5mYXN0TWFwLmdldEJ5S2V5KGkpPT09dClyPWk7ZWxzZSBjb250aW51ZTtyZXR1cm4gcn1hc3luYyBmaW5kKHQpe3JldHVybiB0aGlzLmZhc3RNYXAuZmluZCh0KX1maW5kU3luYyh0KXtmb3IobGV0IHIgb2YgdGhpcy5mYXN0TWFwLmdldEtleXMoKSlpZih0KHRoaXMuZmFzdE1hcC5nZXRCeUtleShyKSkpcmV0dXJuIHRoaXMuZ2V0TWFwcGVkVW5pcXVlKHIpfWFzeW5jIGZpbmRPbmVBbmRSZW1vdmUodCl7bGV0IHI9YXdhaXQgdGhpcy5maW5kKHQpO3JldHVybiByJiZ0aGlzLnJlbW92ZShyKSxyfWZpbmRPbmVBbmRSZW1vdmVTeW5jKHQpe2xldCByPXRoaXMuZmluZFN5bmModCk7cmV0dXJuIHImJnRoaXMucmVtb3ZlKHIpLHJ9YXN5bmMgZm9yRWFjaCh0KXtmb3IobGV0IHIgb2YgdGhpcy5mYXN0TWFwLmdldEtleXMoKSlhd2FpdCB0KHRoaXMuZmFzdE1hcC5nZXRCeUtleShyKSl9Z2V0T25lQW5kUmVtb3ZlKCl7bGV0IHQ9dGhpcy5mYXN0TWFwLmdldEtleXMoKTtpZih0Lmxlbmd0aD09PTApcmV0dXJuIG51bGw7e2xldCByPXRbMF0saT10aGlzLmZhc3RNYXAucmVtb3ZlRnJvbU1hcChyKTtyZXR1cm4gdGhpcy5ldmVudFN1YmplY3QubmV4dCh7b3BlcmF0aW9uOiJyZW1vdmUiLHBheWxvYWQ6aX0pLGl9fWdldEFycmF5KCl7bGV0IHQ9W107Zm9yKGxldCByIG9mIHRoaXMuZmFzdE1hcC5nZXRLZXlzKCkpdC5wdXNoKHRoaXMuZmFzdE1hcC5nZXRCeUtleShyKSk7cmV0dXJuIHR9aXNFbXB0eSgpe3JldHVybiB0aGlzLmZhc3RNYXAuZ2V0S2V5cygpLmxlbmd0aD09PTB9cmVtb3ZlKHQpe2lmKHRoaXMuY2hlY2tGb3JPYmplY3QodCkpe2xldCByPXRoaXMuZ2V0S2V5Rm9yT2JqZWN0KHQpLGk9dGhpcy5mYXN0TWFwLnJlbW92ZUZyb21NYXAocik7cmV0dXJuIHRoaXMuZXZlbnRTdWJqZWN0Lm5leHQoe29wZXJhdGlvbjoicmVtb3ZlIixwYXlsb2FkOml9KSxpfXJldHVybiBudWxsfXdpcGUoKXtmb3IobGV0IHQgb2YgdGhpcy5mYXN0TWFwLmdldEtleXMoKSl0aGlzLmZhc3RNYXAucmVtb3ZlRnJvbU1hcCh0KX1jb25jYXQodCl7bGV0IHI9bmV3IGU7cmV0dXJuIHIuZmFzdE1hcC5hZGRBbGxGcm9tT3RoZXIodGhpcy5mYXN0TWFwKSxyLmZhc3RNYXAuYWRkQWxsRnJvbU90aGVyKHQuZmFzdE1hcCkscn1hZGRBbGxGcm9tT3RoZXIodCl7dGhpcy5mYXN0TWFwLmFkZEFsbEZyb21PdGhlcih0LmZhc3RNYXApfX19KTt2YXIgVWssWEFlPXAoKCk9PntqaygpO1VrPWNsYXNze2NvbnN0cnVjdG9yKCl7dGhpcy5fc3RyaW5nQXJyYXk9W10sdGhpcy5fdHJpZ2dlclVudGlsVHJ1ZUZ1bmN0aW9uQXJyYXk9W119YWRkU3RyaW5nKHQpe3RoaXMuX3N0cmluZ0FycmF5LnB1c2godCksdGhpcy5ub3RpZnlUcmlnZ2VyKCl9YWRkU3RyaW5nQXJyYXkodCl7Zm9yKGxldCByIG9mIHQpdGhpcy5hZGRTdHJpbmcocil9cmVtb3ZlU3RyaW5nKHQpe2ZvcihsZXQgciBpbiB0aGlzLl9zdHJpbmdBcnJheSl0aGlzLl9zdHJpbmdBcnJheVtyXT09PXQmJnRoaXMuX3N0cmluZ0FycmF5LnNwbGljZShwYXJzZUludChyKSwxKTt0aGlzLm5vdGlmeVRyaWdnZXIoKX13aXBlKCl7dGhpcy5fc3RyaW5nQXJyYXk9W10sdGhpcy5ub3RpZnlUcmlnZ2VyKCl9Y2hlY2tTdHJpbmcodCl7cmV0dXJuIHRoaXMuX3N0cmluZ0FycmF5LmluZGV4T2YodCkhPT0tMX1jaGVja01pbmltYXRjaCh0KXtsZXQgcj1uZXcgbWwuU21hcnRNYXRjaCh0KSxpPSExO2ZvcihsZXQgYSBvZiB0aGlzLl9zdHJpbmdBcnJheSlyLm1hdGNoKGEpJiYoaT0hMCk7cmV0dXJuIGl9Y2hlY2tJc0VtcHR5KCl7cmV0dXJuIHRoaXMuX3N0cmluZ0FycmF5Lmxlbmd0aD09PTB9Z2V0U3RyaW5nQXJyYXkoKXtsZXQgdD1bXTtmb3IobGV0IHIgb2YgdGhpcy5fc3RyaW5nQXJyYXkpdC5wdXNoKHIpO3JldHVybiB0fXJlZ2lzdGVyVW50aWxUcnVlKHQscil7bGV0IGk9S2UuZGVmZXIoKTtyZXR1cm4gdGhpcy5fdHJpZ2dlclVudGlsVHJ1ZUZ1bmN0aW9uQXJyYXkucHVzaCgoKT0+e2xldCBhPXQodGhpcy5nZXRTdHJpbmdBcnJheSgpKTtyZXR1cm4gYT09PSEwJiYociYmcigpLGkucmVzb2x2ZSgpKSxhfSksdGhpcy5ub3RpZnlUcmlnZ2VyKCksaS5wcm9taXNlfW5vdGlmeVRyaWdnZXIoKXtsZXQgdD10aGlzLl90cmlnZ2VyVW50aWxUcnVlRnVuY3Rpb25BcnJheS5maWx0ZXIocj0+IXIoKSk7dGhpcy5fdHJpZ2dlclVudGlsVHJ1ZUZ1bmN0aW9uQXJyYXk9dH19fSk7ZnVuY3Rpb24gUUFlKGUsdCxyKXtyZXR1cm4gTWF0aC5tYXgoZSxNYXRoLm1pbih0LHIpKX1mdW5jdGlvbiBSQ3IoZSx0LHIpe3JldHVybigxLXIpKmUrcip0fWZ1bmN0aW9uIEJDcihlLHQscixpKXtyZXR1cm4gUkNyKGUsdCwxLU1hdGguZXhwKC1yKmkpKX1mdW5jdGlvbiBIQ3IoZSx0KXtyZXR1cm4oZSV0K3QpJXR9ZnVuY3Rpb24gakNyKGUsdCl7bGV0IHI7cmV0dXJuIGZ1bmN0aW9uKC4uLmkpe2xldCBhPXRoaXM7Y2xlYXJUaW1lb3V0KHIpLHI9c2V0VGltZW91dCgoKT0+e3I9dm9pZCAwLGUuYXBwbHkoYSxpKX0sdCl9fXZhciBPQ3IscUNyLFZDcixKQWUsS0FlLEQwLFVDcixlRGUsajcsdERlPXAoKCk9PntPQ3I9IjEuMy4xNyI7cUNyPWNsYXNze2lzUnVubmluZz0hMTt2YWx1ZT0wO2Zyb209MDt0bz0wO2N1cnJlbnRUaW1lPTA7bGVycDtkdXJhdGlvbjtlYXNpbmc7b25VcGRhdGU7YWR2YW5jZShlKXtpZighdGhpcy5pc1J1bm5pbmcpcmV0dXJuO2xldCB0PSExO2lmKHRoaXMuZHVyYXRpb24mJnRoaXMuZWFzaW5nKXt0aGlzLmN1cnJlbnRUaW1lKz1lO2xldCByPVFBZSgwLHRoaXMuY3VycmVudFRpbWUvdGhpcy5kdXJhdGlvbiwxKTt0PXI+PTE7bGV0IGk9dD8xOnRoaXMuZWFzaW5nKHIpO3RoaXMudmFsdWU9dGhpcy5mcm9tKyh0aGlzLnRvLXRoaXMuZnJvbSkqaX1lbHNlIHRoaXMubGVycD8odGhpcy52YWx1ZT1CQ3IodGhpcy52YWx1ZSx0aGlzLnRvLHRoaXMubGVycCo2MCxlKSxNYXRoLnJvdW5kKHRoaXMudmFsdWUpPT09dGhpcy50byYmKHRoaXMudmFsdWU9dGhpcy50byx0PSEwKSk6KHRoaXMudmFsdWU9dGhpcy50byx0PSEwKTt0JiZ0aGlzLnN0b3AoKSx0aGlzLm9uVXBkYXRlPy4odGhpcy52YWx1ZSx0KX1zdG9wKCl7dGhpcy5pc1J1bm5pbmc9ITF9ZnJvbVRvKGUsdCx7bGVycDpyLGR1cmF0aW9uOmksZWFzaW5nOmEsb25TdGFydDpuLG9uVXBkYXRlOm99KXt0aGlzLmZyb209dGhpcy52YWx1ZT1lLHRoaXMudG89dCx0aGlzLmxlcnA9cix0aGlzLmR1cmF0aW9uPWksdGhpcy5lYXNpbmc9YSx0aGlzLmN1cnJlbnRUaW1lPTAsdGhpcy5pc1J1bm5pbmc9ITAsbj8uKCksdGhpcy5vblVwZGF0ZT1vfX07VkNyPWNsYXNze2NvbnN0cnVjdG9yKGUsdCx7YXV0b1Jlc2l6ZTpyPSEwLGRlYm91bmNlOmk9MjUwfT17fSl7dGhpcy53cmFwcGVyPWUsdGhpcy5jb250ZW50PXQsciYmKHRoaXMuZGVib3VuY2VkUmVzaXplPWpDcih0aGlzLnJlc2l6ZSxpKSx0aGlzLndyYXBwZXIgaW5zdGFuY2VvZiBXaW5kb3c/d2luZG93LmFkZEV2ZW50TGlzdGVuZXIoInJlc2l6ZSIsdGhpcy5kZWJvdW5jZWRSZXNpemUsITEpOih0aGlzLndyYXBwZXJSZXNpemVPYnNlcnZlcj1uZXcgUmVzaXplT2JzZXJ2ZXIodGhpcy5kZWJvdW5jZWRSZXNpemUpLHRoaXMud3JhcHBlclJlc2l6ZU9ic2VydmVyLm9ic2VydmUodGhpcy53cmFwcGVyKSksdGhpcy5jb250ZW50UmVzaXplT2JzZXJ2ZXI9bmV3IFJlc2l6ZU9ic2VydmVyKHRoaXMuZGVib3VuY2VkUmVzaXplKSx0aGlzLmNvbnRlbnRSZXNpemVPYnNlcnZlci5vYnNlcnZlKHRoaXMuY29udGVudCkpLHRoaXMucmVzaXplKCl9d2lkdGg9MDtoZWlnaHQ9MDtzY3JvbGxIZWlnaHQ9MDtzY3JvbGxXaWR0aD0wO2RlYm91bmNlZFJlc2l6ZTt3cmFwcGVyUmVzaXplT2JzZXJ2ZXI7Y29udGVudFJlc2l6ZU9ic2VydmVyO2Rlc3Ryb3koKXt0aGlzLndyYXBwZXJSZXNpemVPYnNlcnZlcj8uZGlzY29ubmVjdCgpLHRoaXMuY29udGVudFJlc2l6ZU9ic2VydmVyPy5kaXNjb25uZWN0KCksdGhpcy53cmFwcGVyPT09d2luZG93JiZ0aGlzLmRlYm91bmNlZFJlc2l6ZSYmd2luZG93LnJlbW92ZUV2ZW50TGlzdGVuZXIoInJlc2l6ZSIsdGhpcy5kZWJvdW5jZWRSZXNpemUsITEpfXJlc2l6ZT0oKT0+e3RoaXMub25XcmFwcGVyUmVzaXplKCksdGhpcy5vbkNvbnRlbnRSZXNpemUoKX07b25XcmFwcGVyUmVzaXplPSgpPT57dGhpcy53cmFwcGVyIGluc3RhbmNlb2YgV2luZG93Pyh0aGlzLndpZHRoPXdpbmRvdy5pbm5lcldpZHRoLHRoaXMuaGVpZ2h0PXdpbmRvdy5pbm5lckhlaWdodCk6KHRoaXMud2lkdGg9dGhpcy53cmFwcGVyLmNsaWVudFdpZHRoLHRoaXMuaGVpZ2h0PXRoaXMud3JhcHBlci5jbGllbnRIZWlnaHQpfTtvbkNvbnRlbnRSZXNpemU9KCk9Pnt0aGlzLndyYXBwZXIgaW5zdGFuY2VvZiBXaW5kb3c/KHRoaXMuc2Nyb2xsSGVpZ2h0PXRoaXMuY29udGVudC5zY3JvbGxIZWlnaHQsdGhpcy5zY3JvbGxXaWR0aD10aGlzLmNvbnRlbnQuc2Nyb2xsV2lkdGgpOih0aGlzLnNjcm9sbEhlaWdodD10aGlzLndyYXBwZXIuc2Nyb2xsSGVpZ2h0LHRoaXMuc2Nyb2xsV2lkdGg9dGhpcy53cmFwcGVyLnNjcm9sbFdpZHRoKX07Z2V0IGxpbWl0KCl7cmV0dXJue3g6dGhpcy5zY3JvbGxXaWR0aC10aGlzLndpZHRoLHk6dGhpcy5zY3JvbGxIZWlnaHQtdGhpcy5oZWlnaHR9fX0sSkFlPWNsYXNze2V2ZW50cz17fTtlbWl0KGUsLi4udCl7bGV0IHI9dGhpcy5ldmVudHNbZV18fFtdO2ZvcihsZXQgaT0wLGE9ci5sZW5ndGg7aTxhO2krKylyW2ldPy4oLi4udCl9b24oZSx0KXtyZXR1cm4gdGhpcy5ldmVudHNbZV0/LnB1c2godCl8fCh0aGlzLmV2ZW50c1tlXT1bdF0pLCgpPT57dGhpcy5ldmVudHNbZV09dGhpcy5ldmVudHNbZV0/LmZpbHRlcihyPT50IT09cil9fW9mZihlLHQpe3RoaXMuZXZlbnRzW2VdPXRoaXMuZXZlbnRzW2VdPy5maWx0ZXIocj0+dCE9PXIpfWRlc3Ryb3koKXt0aGlzLmV2ZW50cz17fX19LEtBZT0xMDAvNixEMD17cGFzc2l2ZTohMX0sVUNyPWNsYXNze2NvbnN0cnVjdG9yKGUsdD17d2hlZWxNdWx0aXBsaWVyOjEsdG91Y2hNdWx0aXBsaWVyOjF9KXt0aGlzLmVsZW1lbnQ9ZSx0aGlzLm9wdGlvbnM9dCx3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigicmVzaXplIix0aGlzLm9uV2luZG93UmVzaXplLCExKSx0aGlzLm9uV2luZG93UmVzaXplKCksdGhpcy5lbGVtZW50LmFkZEV2ZW50TGlzdGVuZXIoIndoZWVsIix0aGlzLm9uV2hlZWwsRDApLHRoaXMuZWxlbWVudC5hZGRFdmVudExpc3RlbmVyKCJ0b3VjaHN0YXJ0Iix0aGlzLm9uVG91Y2hTdGFydCxEMCksdGhpcy5lbGVtZW50LmFkZEV2ZW50TGlzdGVuZXIoInRvdWNobW92ZSIsdGhpcy5vblRvdWNoTW92ZSxEMCksdGhpcy5lbGVtZW50LmFkZEV2ZW50TGlzdGVuZXIoInRvdWNoZW5kIix0aGlzLm9uVG91Y2hFbmQsRDApfXRvdWNoU3RhcnQ9e3g6MCx5OjB9O2xhc3REZWx0YT17eDowLHk6MH07d2luZG93PXt3aWR0aDowLGhlaWdodDowfTtlbWl0dGVyPW5ldyBKQWU7b24oZSx0KXtyZXR1cm4gdGhpcy5lbWl0dGVyLm9uKGUsdCl9ZGVzdHJveSgpe3RoaXMuZW1pdHRlci5kZXN0cm95KCksd2luZG93LnJlbW92ZUV2ZW50TGlzdGVuZXIoInJlc2l6ZSIsdGhpcy5vbldpbmRvd1Jlc2l6ZSwhMSksdGhpcy5lbGVtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoIndoZWVsIix0aGlzLm9uV2hlZWwsRDApLHRoaXMuZWxlbWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCJ0b3VjaHN0YXJ0Iix0aGlzLm9uVG91Y2hTdGFydCxEMCksdGhpcy5lbGVtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoInRvdWNobW92ZSIsdGhpcy5vblRvdWNoTW92ZSxEMCksdGhpcy5lbGVtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoInRvdWNoZW5kIix0aGlzLm9uVG91Y2hFbmQsRDApfW9uVG91Y2hTdGFydD1lPT57bGV0e2NsaWVudFg6dCxjbGllbnRZOnJ9PWUudGFyZ2V0VG91Y2hlcz9lLnRhcmdldFRvdWNoZXNbMF06ZTt0aGlzLnRvdWNoU3RhcnQueD10LHRoaXMudG91Y2hTdGFydC55PXIsdGhpcy5sYXN0RGVsdGE9e3g6MCx5OjB9LHRoaXMuZW1pdHRlci5lbWl0KCJzY3JvbGwiLHtkZWx0YVg6MCxkZWx0YVk6MCxldmVudDplfSl9O29uVG91Y2hNb3ZlPWU9PntsZXR7Y2xpZW50WDp0LGNsaWVudFk6cn09ZS50YXJnZXRUb3VjaGVzP2UudGFyZ2V0VG91Y2hlc1swXTplLGk9LSh0LXRoaXMudG91Y2hTdGFydC54KSp0aGlzLm9wdGlvbnMudG91Y2hNdWx0aXBsaWVyLGE9LShyLXRoaXMudG91Y2hTdGFydC55KSp0aGlzLm9wdGlvbnMudG91Y2hNdWx0aXBsaWVyO3RoaXMudG91Y2hTdGFydC54PXQsdGhpcy50b3VjaFN0YXJ0Lnk9cix0aGlzLmxhc3REZWx0YT17eDppLHk6YX0sdGhpcy5lbWl0dGVyLmVtaXQoInNjcm9sbCIse2RlbHRhWDppLGRlbHRhWTphLGV2ZW50OmV9KX07b25Ub3VjaEVuZD1lPT57dGhpcy5lbWl0dGVyLmVtaXQoInNjcm9sbCIse2RlbHRhWDp0aGlzLmxhc3REZWx0YS54LGRlbHRhWTp0aGlzLmxhc3REZWx0YS55LGV2ZW50OmV9KX07b25XaGVlbD1lPT57bGV0e2RlbHRhWDp0LGRlbHRhWTpyLGRlbHRhTW9kZTppfT1lLGE9aT09PTE/S0FlOmk9PT0yP3RoaXMud2luZG93LndpZHRoOjEsbj1pPT09MT9LQWU6aT09PTI/dGhpcy53aW5kb3cuaGVpZ2h0OjE7dCo9YSxyKj1uLHQqPXRoaXMub3B0aW9ucy53aGVlbE11bHRpcGxpZXIscio9dGhpcy5vcHRpb25zLndoZWVsTXVsdGlwbGllcix0aGlzLmVtaXR0ZXIuZW1pdCgic2Nyb2xsIix7ZGVsdGFYOnQsZGVsdGFZOnIsZXZlbnQ6ZX0pfTtvbldpbmRvd1Jlc2l6ZT0oKT0+e3RoaXMud2luZG93PXt3aWR0aDp3aW5kb3cuaW5uZXJXaWR0aCxoZWlnaHQ6d2luZG93LmlubmVySGVpZ2h0fX19LGVEZT1lPT5NYXRoLm1pbigxLDEuMDAxLU1hdGgucG93KDIsLTEwKmUpKSxqNz1jbGFzc3tfaXNTY3JvbGxpbmc9ITE7X2lzU3RvcHBlZD0hMTtfaXNMb2NrZWQ9ITE7X3ByZXZlbnROZXh0TmF0aXZlU2Nyb2xsRXZlbnQ9ITE7X3Jlc2V0VmVsb2NpdHlUaW1lb3V0PW51bGw7X3JhZklkPW51bGw7aXNUb3VjaGluZzt0aW1lPTA7dXNlckRhdGE9e307bGFzdFZlbG9jaXR5PTA7dmVsb2NpdHk9MDtkaXJlY3Rpb249MDtvcHRpb25zO3RhcmdldFNjcm9sbDthbmltYXRlZFNjcm9sbDthbmltYXRlPW5ldyBxQ3I7ZW1pdHRlcj1uZXcgSkFlO2RpbWVuc2lvbnM7dmlydHVhbFNjcm9sbDtjb25zdHJ1Y3Rvcih7d3JhcHBlcjplPXdpbmRvdyxjb250ZW50OnQ9ZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LGV2ZW50c1RhcmdldDpyPWUsc21vb3RoV2hlZWw6aT0hMCxzeW5jVG91Y2g6YT0hMSxzeW5jVG91Y2hMZXJwOm49LjA3NSx0b3VjaEluZXJ0aWFFeHBvbmVudDpvPTEuNyxkdXJhdGlvbjpzLGVhc2luZzpsLGxlcnA6Yz0uMSxpbmZpbml0ZTp1PSExLG9yaWVudGF0aW9uOmQ9InZlcnRpY2FsIixnZXN0dXJlT3JpZW50YXRpb246aD1kPT09Imhvcml6b250YWwiPyJib3RoIjoidmVydGljYWwiLHRvdWNoTXVsdGlwbGllcjpmPTEsd2hlZWxNdWx0aXBsaWVyOng9MSxhdXRvUmVzaXplOnY9ITAscHJldmVudDpiLHZpcnR1YWxTY3JvbGw6eSxvdmVyc2Nyb2xsOnc9ITAsYXV0b1JhZjprPSExLGFuY2hvcnM6Tz0hMSxhdXRvVG9nZ2xlOno9ITEsYWxsb3dOZXN0ZWRTY3JvbGw6TT0hMSxfX2V4cGVyaW1lbnRhbF9fbmFpdmVEaW1lbnNpb25zOkY9ITEsbmFpdmVEaW1lbnNpb25zOkQ9RixzdG9wSW5lcnRpYU9uTmF2aWdhdGU6Tj0hMX09e30pe3dpbmRvdy5sZW5pc1ZlcnNpb249T0NyLCghZXx8ZT09PWRvY3VtZW50LmRvY3VtZW50RWxlbWVudCkmJihlPXdpbmRvdyksdHlwZW9mIHM9PSJudW1iZXIiJiZ0eXBlb2YgbCE9ImZ1bmN0aW9uIj9sPWVEZTp0eXBlb2YgbD09ImZ1bmN0aW9uIiYmdHlwZW9mIHMhPSJudW1iZXIiJiYocz0xKSx0aGlzLm9wdGlvbnM9e3dyYXBwZXI6ZSxjb250ZW50OnQsZXZlbnRzVGFyZ2V0OnIsc21vb3RoV2hlZWw6aSxzeW5jVG91Y2g6YSxzeW5jVG91Y2hMZXJwOm4sdG91Y2hJbmVydGlhRXhwb25lbnQ6byxkdXJhdGlvbjpzLGVhc2luZzpsLGxlcnA6YyxpbmZpbml0ZTp1LGdlc3R1cmVPcmllbnRhdGlvbjpoLG9yaWVudGF0aW9uOmQsdG91Y2hNdWx0aXBsaWVyOmYsd2hlZWxNdWx0aXBsaWVyOngsYXV0b1Jlc2l6ZTp2LHByZXZlbnQ6Yix2aXJ0dWFsU2Nyb2xsOnksb3ZlcnNjcm9sbDp3LGF1dG9SYWY6ayxhbmNob3JzOk8sYXV0b1RvZ2dsZTp6LGFsbG93TmVzdGVkU2Nyb2xsOk0sbmFpdmVEaW1lbnNpb25zOkQsc3RvcEluZXJ0aWFPbk5hdmlnYXRlOk59LHRoaXMuZGltZW5zaW9ucz1uZXcgVkNyKGUsdCx7YXV0b1Jlc2l6ZTp2fSksdGhpcy51cGRhdGVDbGFzc05hbWUoKSx0aGlzLnRhcmdldFNjcm9sbD10aGlzLmFuaW1hdGVkU2Nyb2xsPXRoaXMuYWN0dWFsU2Nyb2xsLHRoaXMub3B0aW9ucy53cmFwcGVyLmFkZEV2ZW50TGlzdGVuZXIoInNjcm9sbCIsdGhpcy5vbk5hdGl2ZVNjcm9sbCwhMSksdGhpcy5vcHRpb25zLndyYXBwZXIuYWRkRXZlbnRMaXN0ZW5lcigic2Nyb2xsZW5kIix0aGlzLm9uU2Nyb2xsRW5kLHtjYXB0dXJlOiEwfSksKHRoaXMub3B0aW9ucy5hbmNob3JzfHx0aGlzLm9wdGlvbnMuc3RvcEluZXJ0aWFPbk5hdmlnYXRlKSYmdGhpcy5vcHRpb25zLndyYXBwZXIuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLHRoaXMub25DbGljaywhMSksdGhpcy5vcHRpb25zLndyYXBwZXIuYWRkRXZlbnRMaXN0ZW5lcigicG9pbnRlcmRvd24iLHRoaXMub25Qb2ludGVyRG93biwhMSksdGhpcy52aXJ0dWFsU2Nyb2xsPW5ldyBVQ3Iocix7dG91Y2hNdWx0aXBsaWVyOmYsd2hlZWxNdWx0aXBsaWVyOnh9KSx0aGlzLnZpcnR1YWxTY3JvbGwub24oInNjcm9sbCIsdGhpcy5vblZpcnR1YWxTY3JvbGwpLHRoaXMub3B0aW9ucy5hdXRvVG9nZ2xlJiYodGhpcy5jaGVja092ZXJmbG93KCksdGhpcy5yb290RWxlbWVudC5hZGRFdmVudExpc3RlbmVyKCJ0cmFuc2l0aW9uZW5kIix0aGlzLm9uVHJhbnNpdGlvbkVuZCx7cGFzc2l2ZTohMH0pKSx0aGlzLm9wdGlvbnMuYXV0b1JhZiYmKHRoaXMuX3JhZklkPXJlcXVlc3RBbmltYXRpb25GcmFtZSh0aGlzLnJhZikpfWRlc3Ryb3koKXt0aGlzLmVtaXR0ZXIuZGVzdHJveSgpLHRoaXMub3B0aW9ucy53cmFwcGVyLnJlbW92ZUV2ZW50TGlzdGVuZXIoInNjcm9sbCIsdGhpcy5vbk5hdGl2ZVNjcm9sbCwhMSksdGhpcy5vcHRpb25zLndyYXBwZXIucmVtb3ZlRXZlbnRMaXN0ZW5lcigic2Nyb2xsZW5kIix0aGlzLm9uU2Nyb2xsRW5kLHtjYXB0dXJlOiEwfSksdGhpcy5vcHRpb25zLndyYXBwZXIucmVtb3ZlRXZlbnRMaXN0ZW5lcigicG9pbnRlcmRvd24iLHRoaXMub25Qb2ludGVyRG93biwhMSksKHRoaXMub3B0aW9ucy5hbmNob3JzfHx0aGlzLm9wdGlvbnMuc3RvcEluZXJ0aWFPbk5hdmlnYXRlKSYmdGhpcy5vcHRpb25zLndyYXBwZXIucmVtb3ZlRXZlbnRMaXN0ZW5lcigiY2xpY2siLHRoaXMub25DbGljaywhMSksdGhpcy52aXJ0dWFsU2Nyb2xsLmRlc3Ryb3koKSx0aGlzLmRpbWVuc2lvbnMuZGVzdHJveSgpLHRoaXMuY2xlYW5VcENsYXNzTmFtZSgpLHRoaXMuX3JhZklkJiZjYW5jZWxBbmltYXRpb25GcmFtZSh0aGlzLl9yYWZJZCl9b24oZSx0KXtyZXR1cm4gdGhpcy5lbWl0dGVyLm9uKGUsdCl9b2ZmKGUsdCl7cmV0dXJuIHRoaXMuZW1pdHRlci5vZmYoZSx0KX1vblNjcm9sbEVuZD1lPT57ZSBpbnN0YW5jZW9mIEN1c3RvbUV2ZW50fHwodGhpcy5pc1Njcm9sbGluZz09PSJzbW9vdGgifHx0aGlzLmlzU2Nyb2xsaW5nPT09ITEpJiZlLnN0b3BQcm9wYWdhdGlvbigpfTtkaXNwYXRjaFNjcm9sbGVuZEV2ZW50PSgpPT57dGhpcy5vcHRpb25zLndyYXBwZXIuZGlzcGF0Y2hFdmVudChuZXcgQ3VzdG9tRXZlbnQoInNjcm9sbGVuZCIse2J1YmJsZXM6dGhpcy5vcHRpb25zLndyYXBwZXI9PT13aW5kb3csZGV0YWlsOntsZW5pc1Njcm9sbEVuZDohMH19KSl9O2dldCBvdmVyZmxvdygpe2xldCBlPXRoaXMuaXNIb3Jpem9udGFsPyJvdmVyZmxvdy14Ijoib3ZlcmZsb3cteSI7cmV0dXJuIGdldENvbXB1dGVkU3R5bGUodGhpcy5yb290RWxlbWVudClbZV19Y2hlY2tPdmVyZmxvdygpe1siaGlkZGVuIiwiY2xpcCJdLmluY2x1ZGVzKHRoaXMub3ZlcmZsb3cpP3RoaXMuaW50ZXJuYWxTdG9wKCk6dGhpcy5pbnRlcm5hbFN0YXJ0KCl9b25UcmFuc2l0aW9uRW5kPWU9PntlLnByb3BlcnR5TmFtZS5pbmNsdWRlcygib3ZlcmZsb3ciKSYmdGhpcy5jaGVja092ZXJmbG93KCl9O3NldFNjcm9sbChlKXt0aGlzLmlzSG9yaXpvbnRhbD90aGlzLm9wdGlvbnMud3JhcHBlci5zY3JvbGxUbyh7bGVmdDplLGJlaGF2aW9yOiJpbnN0YW50In0pOnRoaXMub3B0aW9ucy53cmFwcGVyLnNjcm9sbFRvKHt0b3A6ZSxiZWhhdmlvcjoiaW5zdGFudCJ9KX1vbkNsaWNrPWU9PntsZXQgcj1lLmNvbXBvc2VkUGF0aCgpLmZpbHRlcihpPT5pIGluc3RhbmNlb2YgSFRNTEFuY2hvckVsZW1lbnQmJmkuZ2V0QXR0cmlidXRlKCJocmVmIikpO2lmKHRoaXMub3B0aW9ucy5hbmNob3JzKXtsZXQgaT1yLmZpbmQoYT0+YS5nZXRBdHRyaWJ1dGUoImhyZWYiKT8uaW5jbHVkZXMoIiMiKSk7aWYoaSl7bGV0IGE9aS5nZXRBdHRyaWJ1dGUoImhyZWYiKTtpZihhKXtsZXQgbj10eXBlb2YgdGhpcy5vcHRpb25zLmFuY2hvcnM9PSJvYmplY3QiJiZ0aGlzLm9wdGlvbnMuYW5jaG9ycz90aGlzLm9wdGlvbnMuYW5jaG9yczp2b2lkIDAsbz1gIyR7YS5zcGxpdCgiIyIpWzFdfWA7dGhpcy5zY3JvbGxUbyhvLG4pfX19dGhpcy5vcHRpb25zLnN0b3BJbmVydGlhT25OYXZpZ2F0ZSYmci5maW5kKGE9PmEuaG9zdD09PXdpbmRvdy5sb2NhdGlvbi5ob3N0KSYmdGhpcy5yZXNldCgpfTtvblBvaW50ZXJEb3duPWU9PntlLmJ1dHRvbj09PTEmJnRoaXMucmVzZXQoKX07b25WaXJ0dWFsU2Nyb2xsPWU9PntpZih0eXBlb2YgdGhpcy5vcHRpb25zLnZpcnR1YWxTY3JvbGw9PSJmdW5jdGlvbiImJnRoaXMub3B0aW9ucy52aXJ0dWFsU2Nyb2xsKGUpPT09ITEpcmV0dXJuO2xldHtkZWx0YVg6dCxkZWx0YVk6cixldmVudDppfT1lO2lmKHRoaXMuZW1pdHRlci5lbWl0KCJ2aXJ0dWFsLXNjcm9sbCIse2RlbHRhWDp0LGRlbHRhWTpyLGV2ZW50Oml9KSxpLmN0cmxLZXl8fGkubGVuaXNTdG9wUHJvcGFnYXRpb24pcmV0dXJuO2xldCBhPWkudHlwZS5pbmNsdWRlcygidG91Y2giKSxuPWkudHlwZS5pbmNsdWRlcygid2hlZWwiKTt0aGlzLmlzVG91Y2hpbmc9aS50eXBlPT09InRvdWNoc3RhcnQifHxpLnR5cGU9PT0idG91Y2htb3ZlIjtsZXQgbz10PT09MCYmcj09PTA7aWYodGhpcy5vcHRpb25zLnN5bmNUb3VjaCYmYSYmaS50eXBlPT09InRvdWNoc3RhcnQiJiZvJiYhdGhpcy5pc1N0b3BwZWQmJiF0aGlzLmlzTG9ja2VkKXt0aGlzLnJlc2V0KCk7cmV0dXJufWxldCBsPXRoaXMub3B0aW9ucy5nZXN0dXJlT3JpZW50YXRpb249PT0idmVydGljYWwiJiZyPT09MHx8dGhpcy5vcHRpb25zLmdlc3R1cmVPcmllbnRhdGlvbj09PSJob3Jpem9udGFsIiYmdD09PTA7aWYob3x8bClyZXR1cm47bGV0IGM9aS5jb21wb3NlZFBhdGgoKTtjPWMuc2xpY2UoMCxjLmluZGV4T2YodGhpcy5yb290RWxlbWVudCkpO2xldCB1PXRoaXMub3B0aW9ucy5wcmV2ZW50O2lmKGMuZmluZChiPT5iIGluc3RhbmNlb2YgSFRNTEVsZW1lbnQmJih0eXBlb2YgdT09ImZ1bmN0aW9uIiYmdT8uKGIpfHxiLmhhc0F0dHJpYnV0ZT8uKCJkYXRhLWxlbmlzLXByZXZlbnQiKXx8YSYmYi5oYXNBdHRyaWJ1dGU/LigiZGF0YS1sZW5pcy1wcmV2ZW50LXRvdWNoIil8fG4mJmIuaGFzQXR0cmlidXRlPy4oImRhdGEtbGVuaXMtcHJldmVudC13aGVlbCIpfHx0aGlzLm9wdGlvbnMuYWxsb3dOZXN0ZWRTY3JvbGwmJnRoaXMuY2hlY2tOZXN0ZWRTY3JvbGwoYix7ZGVsdGFYOnQsZGVsdGFZOnJ9KSkpKXJldHVybjtpZih0aGlzLmlzU3RvcHBlZHx8dGhpcy5pc0xvY2tlZCl7aS5jYW5jZWxhYmxlJiZpLnByZXZlbnREZWZhdWx0KCk7cmV0dXJufWlmKCEodGhpcy5vcHRpb25zLnN5bmNUb3VjaCYmYXx8dGhpcy5vcHRpb25zLnNtb290aFdoZWVsJiZuKSl7dGhpcy5pc1Njcm9sbGluZz0ibmF0aXZlIix0aGlzLmFuaW1hdGUuc3RvcCgpLGkubGVuaXNTdG9wUHJvcGFnYXRpb249ITA7cmV0dXJufWxldCBoPXI7dGhpcy5vcHRpb25zLmdlc3R1cmVPcmllbnRhdGlvbj09PSJib3RoIj9oPU1hdGguYWJzKHIpPk1hdGguYWJzKHQpP3I6dDp0aGlzLm9wdGlvbnMuZ2VzdHVyZU9yaWVudGF0aW9uPT09Imhvcml6b250YWwiJiYoaD10KSwoIXRoaXMub3B0aW9ucy5vdmVyc2Nyb2xsfHx0aGlzLm9wdGlvbnMuaW5maW5pdGV8fHRoaXMub3B0aW9ucy53cmFwcGVyIT09d2luZG93JiZ0aGlzLmxpbWl0PjAmJih0aGlzLmFuaW1hdGVkU2Nyb2xsPjAmJnRoaXMuYW5pbWF0ZWRTY3JvbGw8dGhpcy5saW1pdHx8dGhpcy5hbmltYXRlZFNjcm9sbD09PTAmJnI+MHx8dGhpcy5hbmltYXRlZFNjcm9sbD09PXRoaXMubGltaXQmJnI8MCkpJiYoaS5sZW5pc1N0b3BQcm9wYWdhdGlvbj0hMCksaS5jYW5jZWxhYmxlJiZpLnByZXZlbnREZWZhdWx0KCk7bGV0IGY9YSYmdGhpcy5vcHRpb25zLnN5bmNUb3VjaCx2PWEmJmkudHlwZT09PSJ0b3VjaGVuZCI7diYmKGg9TWF0aC5zaWduKHRoaXMudmVsb2NpdHkpKk1hdGgucG93KE1hdGguYWJzKHRoaXMudmVsb2NpdHkpLHRoaXMub3B0aW9ucy50b3VjaEluZXJ0aWFFeHBvbmVudCkpLHRoaXMuc2Nyb2xsVG8odGhpcy50YXJnZXRTY3JvbGwraCx7cHJvZ3JhbW1hdGljOiExLC4uLmY/e2xlcnA6dj90aGlzLm9wdGlvbnMuc3luY1RvdWNoTGVycDoxfTp7bGVycDp0aGlzLm9wdGlvbnMubGVycCxkdXJhdGlvbjp0aGlzLm9wdGlvbnMuZHVyYXRpb24sZWFzaW5nOnRoaXMub3B0aW9ucy5lYXNpbmd9fSl9O3Jlc2l6ZSgpe3RoaXMuZGltZW5zaW9ucy5yZXNpemUoKSx0aGlzLmFuaW1hdGVkU2Nyb2xsPXRoaXMudGFyZ2V0U2Nyb2xsPXRoaXMuYWN0dWFsU2Nyb2xsLHRoaXMuZW1pdCgpfWVtaXQoKXt0aGlzLmVtaXR0ZXIuZW1pdCgic2Nyb2xsIix0aGlzKX1vbk5hdGl2ZVNjcm9sbD0oKT0+e2lmKHRoaXMuX3Jlc2V0VmVsb2NpdHlUaW1lb3V0IT09bnVsbCYmKGNsZWFyVGltZW91dCh0aGlzLl9yZXNldFZlbG9jaXR5VGltZW91dCksdGhpcy5fcmVzZXRWZWxvY2l0eVRpbWVvdXQ9bnVsbCksdGhpcy5fcHJldmVudE5leHROYXRpdmVTY3JvbGxFdmVudCl7dGhpcy5fcHJldmVudE5leHROYXRpdmVTY3JvbGxFdmVudD0hMTtyZXR1cm59aWYodGhpcy5pc1Njcm9sbGluZz09PSExfHx0aGlzLmlzU2Nyb2xsaW5nPT09Im5hdGl2ZSIpe2xldCBlPXRoaXMuYW5pbWF0ZWRTY3JvbGw7dGhpcy5hbmltYXRlZFNjcm9sbD10aGlzLnRhcmdldFNjcm9sbD10aGlzLmFjdHVhbFNjcm9sbCx0aGlzLmxhc3RWZWxvY2l0eT10aGlzLnZlbG9jaXR5LHRoaXMudmVsb2NpdHk9dGhpcy5hbmltYXRlZFNjcm9sbC1lLHRoaXMuZGlyZWN0aW9uPU1hdGguc2lnbih0aGlzLmFuaW1hdGVkU2Nyb2xsLWUpLHRoaXMuaXNTdG9wcGVkfHwodGhpcy5pc1Njcm9sbGluZz0ibmF0aXZlIiksdGhpcy5lbWl0KCksdGhpcy52ZWxvY2l0eSE9PTAmJih0aGlzLl9yZXNldFZlbG9jaXR5VGltZW91dD1zZXRUaW1lb3V0KCgpPT57dGhpcy5sYXN0VmVsb2NpdHk9dGhpcy52ZWxvY2l0eSx0aGlzLnZlbG9jaXR5PTAsdGhpcy5pc1Njcm9sbGluZz0hMSx0aGlzLmVtaXQoKX0sNDAwKSl9fTtyZXNldCgpe3RoaXMuaXNMb2NrZWQ9ITEsdGhpcy5pc1Njcm9sbGluZz0hMSx0aGlzLmFuaW1hdGVkU2Nyb2xsPXRoaXMudGFyZ2V0U2Nyb2xsPXRoaXMuYWN0dWFsU2Nyb2xsLHRoaXMubGFzdFZlbG9jaXR5PXRoaXMudmVsb2NpdHk9MCx0aGlzLmFuaW1hdGUuc3RvcCgpfXN0YXJ0KCl7aWYodGhpcy5pc1N0b3BwZWQpe2lmKHRoaXMub3B0aW9ucy5hdXRvVG9nZ2xlKXt0aGlzLnJvb3RFbGVtZW50LnN0eWxlLnJlbW92ZVByb3BlcnR5KCJvdmVyZmxvdyIpO3JldHVybn10aGlzLmludGVybmFsU3RhcnQoKX19aW50ZXJuYWxTdGFydCgpe3RoaXMuaXNTdG9wcGVkJiYodGhpcy5yZXNldCgpLHRoaXMuaXNTdG9wcGVkPSExLHRoaXMuZW1pdCgpKX1zdG9wKCl7aWYoIXRoaXMuaXNTdG9wcGVkKXtpZih0aGlzLm9wdGlvbnMuYXV0b1RvZ2dsZSl7dGhpcy5yb290RWxlbWVudC5zdHlsZS5zZXRQcm9wZXJ0eSgib3ZlcmZsb3ciLCJjbGlwIik7cmV0dXJufXRoaXMuaW50ZXJuYWxTdG9wKCl9fWludGVybmFsU3RvcCgpe3RoaXMuaXNTdG9wcGVkfHwodGhpcy5yZXNldCgpLHRoaXMuaXNTdG9wcGVkPSEwLHRoaXMuZW1pdCgpKX1yYWY9ZT0+e2xldCB0PWUtKHRoaXMudGltZXx8ZSk7dGhpcy50aW1lPWUsdGhpcy5hbmltYXRlLmFkdmFuY2UodCouMDAxKSx0aGlzLm9wdGlvbnMuYXV0b1JhZiYmKHRoaXMuX3JhZklkPXJlcXVlc3RBbmltYXRpb25GcmFtZSh0aGlzLnJhZikpfTtzY3JvbGxUbyhlLHtvZmZzZXQ6dD0wLGltbWVkaWF0ZTpyPSExLGxvY2s6aT0hMSxwcm9ncmFtbWF0aWM6YT0hMCxsZXJwOm49YT90aGlzLm9wdGlvbnMubGVycDp2b2lkIDAsZHVyYXRpb246bz1hP3RoaXMub3B0aW9ucy5kdXJhdGlvbjp2b2lkIDAsZWFzaW5nOnM9YT90aGlzLm9wdGlvbnMuZWFzaW5nOnZvaWQgMCxvblN0YXJ0Omwsb25Db21wbGV0ZTpjLGZvcmNlOnU9ITEsdXNlckRhdGE6ZH09e30pe2lmKCEoKHRoaXMuaXNTdG9wcGVkfHx0aGlzLmlzTG9ja2VkKSYmIXUpKXtpZih0eXBlb2YgZT09InN0cmluZyImJlsidG9wIiwibGVmdCIsInN0YXJ0IiwiIyJdLmluY2x1ZGVzKGUpKWU9MDtlbHNlIGlmKHR5cGVvZiBlPT0ic3RyaW5nIiYmWyJib3R0b20iLCJyaWdodCIsImVuZCJdLmluY2x1ZGVzKGUpKWU9dGhpcy5saW1pdDtlbHNle2xldCBoO2lmKHR5cGVvZiBlPT0ic3RyaW5nIj8oaD1kb2N1bWVudC5xdWVyeVNlbGVjdG9yKGUpLGh8fChlPT09IiN0b3AiP2U9MDpjb25zb2xlLndhcm4oIkxlbmlzOiBUYXJnZXQgbm90IGZvdW5kIixlKSkpOmUgaW5zdGFuY2VvZiBIVE1MRWxlbWVudCYmZT8ubm9kZVR5cGUmJihoPWUpLGgpe2lmKHRoaXMub3B0aW9ucy53cmFwcGVyIT09d2luZG93KXtsZXQgeD10aGlzLnJvb3RFbGVtZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO3QtPXRoaXMuaXNIb3Jpem9udGFsP3gubGVmdDp4LnRvcH1sZXQgZj1oLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO2U9KHRoaXMuaXNIb3Jpem9udGFsP2YubGVmdDpmLnRvcCkrdGhpcy5hbmltYXRlZFNjcm9sbH19aWYodHlwZW9mIGU9PSJudW1iZXIiKXtpZihlKz10LGU9TWF0aC5yb3VuZChlKSx0aGlzLm9wdGlvbnMuaW5maW5pdGUpe2lmKGEpe3RoaXMudGFyZ2V0U2Nyb2xsPXRoaXMuYW5pbWF0ZWRTY3JvbGw9dGhpcy5zY3JvbGw7bGV0IGg9ZS10aGlzLmFuaW1hdGVkU2Nyb2xsO2g+dGhpcy5saW1pdC8yP2U9ZS10aGlzLmxpbWl0Omg8LXRoaXMubGltaXQvMiYmKGU9ZSt0aGlzLmxpbWl0KX19ZWxzZSBlPVFBZSgwLGUsdGhpcy5saW1pdCk7aWYoZT09PXRoaXMudGFyZ2V0U2Nyb2xsKXtsPy4odGhpcyksYz8uKHRoaXMpO3JldHVybn1pZih0aGlzLnVzZXJEYXRhPWQ/P3t9LHIpe3RoaXMuYW5pbWF0ZWRTY3JvbGw9dGhpcy50YXJnZXRTY3JvbGw9ZSx0aGlzLnNldFNjcm9sbCh0aGlzLnNjcm9sbCksdGhpcy5yZXNldCgpLHRoaXMucHJldmVudE5leHROYXRpdmVTY3JvbGxFdmVudCgpLHRoaXMuZW1pdCgpLGM/Lih0aGlzKSx0aGlzLnVzZXJEYXRhPXt9LHJlcXVlc3RBbmltYXRpb25GcmFtZSgoKT0+e3RoaXMuZGlzcGF0Y2hTY3JvbGxlbmRFdmVudCgpfSk7cmV0dXJufWF8fCh0aGlzLnRhcmdldFNjcm9sbD1lKSx0eXBlb2Ygbz09Im51bWJlciImJnR5cGVvZiBzIT0iZnVuY3Rpb24iP3M9ZURlOnR5cGVvZiBzPT0iZnVuY3Rpb24iJiZ0eXBlb2YgbyE9Im51bWJlciImJihvPTEpLHRoaXMuYW5pbWF0ZS5mcm9tVG8odGhpcy5hbmltYXRlZFNjcm9sbCxlLHtkdXJhdGlvbjpvLGVhc2luZzpzLGxlcnA6bixvblN0YXJ0OigpPT57aSYmKHRoaXMuaXNMb2NrZWQ9ITApLHRoaXMuaXNTY3JvbGxpbmc9InNtb290aCIsbD8uKHRoaXMpfSxvblVwZGF0ZTooaCxmKT0+e3RoaXMuaXNTY3JvbGxpbmc9InNtb290aCIsdGhpcy5sYXN0VmVsb2NpdHk9dGhpcy52ZWxvY2l0eSx0aGlzLnZlbG9jaXR5PWgtdGhpcy5hbmltYXRlZFNjcm9sbCx0aGlzLmRpcmVjdGlvbj1NYXRoLnNpZ24odGhpcy52ZWxvY2l0eSksdGhpcy5hbmltYXRlZFNjcm9sbD1oLHRoaXMuc2V0U2Nyb2xsKHRoaXMuc2Nyb2xsKSxhJiYodGhpcy50YXJnZXRTY3JvbGw9aCksZnx8dGhpcy5lbWl0KCksZiYmKHRoaXMucmVzZXQoKSx0aGlzLmVtaXQoKSxjPy4odGhpcyksdGhpcy51c2VyRGF0YT17fSxyZXF1ZXN0QW5pbWF0aW9uRnJhbWUoKCk9Pnt0aGlzLmRpc3BhdGNoU2Nyb2xsZW5kRXZlbnQoKX0pLHRoaXMucHJldmVudE5leHROYXRpdmVTY3JvbGxFdmVudCgpKX19KX19fXByZXZlbnROZXh0TmF0aXZlU2Nyb2xsRXZlbnQoKXt0aGlzLl9wcmV2ZW50TmV4dE5hdGl2ZVNjcm9sbEV2ZW50PSEwLHJlcXVlc3RBbmltYXRpb25GcmFtZSgoKT0+e3RoaXMuX3ByZXZlbnROZXh0TmF0aXZlU2Nyb2xsRXZlbnQ9ITF9KX1jaGVja05lc3RlZFNjcm9sbChlLHtkZWx0YVg6dCxkZWx0YVk6cn0pe2xldCBpPURhdGUubm93KCksYT1lLl9sZW5pcz8/PXt9LG4sbyxzLGwsYyx1LGQsaCxmPXRoaXMub3B0aW9ucy5nZXN0dXJlT3JpZW50YXRpb247aWYoaS0oYS50aW1lPz8wKT4yZTMpe2EudGltZT1EYXRlLm5vdygpO2xldCB6PXdpbmRvdy5nZXRDb21wdXRlZFN0eWxlKGUpO2EuY29tcHV0ZWRTdHlsZT16O2xldCBNPXoub3ZlcmZsb3dYLEY9ei5vdmVyZmxvd1k7aWYobj1bImF1dG8iLCJvdmVybGF5Iiwic2Nyb2xsIl0uaW5jbHVkZXMoTSksbz1bImF1dG8iLCJvdmVybGF5Iiwic2Nyb2xsIl0uaW5jbHVkZXMoRiksYS5oYXNPdmVyZmxvd1g9bixhLmhhc092ZXJmbG93WT1vLCFuJiYhb3x8Zj09PSJ2ZXJ0aWNhbCImJiFvfHxmPT09Imhvcml6b250YWwiJiYhbilyZXR1cm4hMTtjPWUuc2Nyb2xsV2lkdGgsdT1lLnNjcm9sbEhlaWdodCxkPWUuY2xpZW50V2lkdGgsaD1lLmNsaWVudEhlaWdodCxzPWM+ZCxsPXU+aCxhLmlzU2Nyb2xsYWJsZVg9cyxhLmlzU2Nyb2xsYWJsZVk9bCxhLnNjcm9sbFdpZHRoPWMsYS5zY3JvbGxIZWlnaHQ9dSxhLmNsaWVudFdpZHRoPWQsYS5jbGllbnRIZWlnaHQ9aH1lbHNlIHM9YS5pc1Njcm9sbGFibGVYLGw9YS5pc1Njcm9sbGFibGVZLG49YS5oYXNPdmVyZmxvd1gsbz1hLmhhc092ZXJmbG93WSxjPWEuc2Nyb2xsV2lkdGgsdT1hLnNjcm9sbEhlaWdodCxkPWEuY2xpZW50V2lkdGgsaD1hLmNsaWVudEhlaWdodDtpZighbiYmIW98fCFzJiYhbHx8Zj09PSJ2ZXJ0aWNhbCImJighb3x8IWwpfHxmPT09Imhvcml6b250YWwiJiYoIW58fCFzKSlyZXR1cm4hMTtsZXQgeDtpZihmPT09Imhvcml6b250YWwiKXg9IngiO2Vsc2UgaWYoZj09PSJ2ZXJ0aWNhbCIpeD0ieSI7ZWxzZXtsZXQgej10IT09MCxNPXIhPT0wO3omJm4mJnMmJih4PSJ4IiksTSYmbyYmbCYmKHg9InkiKX1pZigheClyZXR1cm4hMTtsZXQgdixiLHksdyxrO2lmKHg9PT0ieCIpdj1lLnNjcm9sbExlZnQsYj1jLWQseT10LHc9bixrPXM7ZWxzZSBpZih4PT09InkiKXY9ZS5zY3JvbGxUb3AsYj11LWgseT1yLHc9byxrPWw7ZWxzZSByZXR1cm4hMTtyZXR1cm4oeT4wP3Y8Yjp2PjApJiZ3JiZrfWdldCByb290RWxlbWVudCgpe3JldHVybiB0aGlzLm9wdGlvbnMud3JhcHBlcj09PXdpbmRvdz9kb2N1bWVudC5kb2N1bWVudEVsZW1lbnQ6dGhpcy5vcHRpb25zLndyYXBwZXJ9Z2V0IGxpbWl0KCl7cmV0dXJuIHRoaXMub3B0aW9ucy5uYWl2ZURpbWVuc2lvbnM/dGhpcy5pc0hvcml6b250YWw/dGhpcy5yb290RWxlbWVudC5zY3JvbGxXaWR0aC10aGlzLnJvb3RFbGVtZW50LmNsaWVudFdpZHRoOnRoaXMucm9vdEVsZW1lbnQuc2Nyb2xsSGVpZ2h0LXRoaXMucm9vdEVsZW1lbnQuY2xpZW50SGVpZ2h0OnRoaXMuZGltZW5zaW9ucy5saW1pdFt0aGlzLmlzSG9yaXpvbnRhbD8ieCI6InkiXX1nZXQgaXNIb3Jpem9udGFsKCl7cmV0dXJuIHRoaXMub3B0aW9ucy5vcmllbnRhdGlvbj09PSJob3Jpem9udGFsIn1nZXQgYWN0dWFsU2Nyb2xsKCl7bGV0IGU9dGhpcy5vcHRpb25zLndyYXBwZXI7cmV0dXJuIHRoaXMuaXNIb3Jpem9udGFsP2Uuc2Nyb2xsWD8/ZS5zY3JvbGxMZWZ0OmUuc2Nyb2xsWT8/ZS5zY3JvbGxUb3B9Z2V0IHNjcm9sbCgpe3JldHVybiB0aGlzLm9wdGlvbnMuaW5maW5pdGU/SENyKHRoaXMuYW5pbWF0ZWRTY3JvbGwsdGhpcy5saW1pdCk6dGhpcy5hbmltYXRlZFNjcm9sbH1nZXQgcHJvZ3Jlc3MoKXtyZXR1cm4gdGhpcy5saW1pdD09PTA/MTp0aGlzLnNjcm9sbC90aGlzLmxpbWl0fWdldCBpc1Njcm9sbGluZygpe3JldHVybiB0aGlzLl9pc1Njcm9sbGluZ31zZXQgaXNTY3JvbGxpbmcoZSl7dGhpcy5faXNTY3JvbGxpbmchPT1lJiYodGhpcy5faXNTY3JvbGxpbmc9ZSx0aGlzLnVwZGF0ZUNsYXNzTmFtZSgpKX1nZXQgaXNTdG9wcGVkKCl7cmV0dXJuIHRoaXMuX2lzU3RvcHBlZH1zZXQgaXNTdG9wcGVkKGUpe3RoaXMuX2lzU3RvcHBlZCE9PWUmJih0aGlzLl9pc1N0b3BwZWQ9ZSx0aGlzLnVwZGF0ZUNsYXNzTmFtZSgpKX1nZXQgaXNMb2NrZWQoKXtyZXR1cm4gdGhpcy5faXNMb2NrZWR9c2V0IGlzTG9ja2VkKGUpe3RoaXMuX2lzTG9ja2VkIT09ZSYmKHRoaXMuX2lzTG9ja2VkPWUsdGhpcy51cGRhdGVDbGFzc05hbWUoKSl9Z2V0IGlzU21vb3RoKCl7cmV0dXJuIHRoaXMuaXNTY3JvbGxpbmc9PT0ic21vb3RoIn1nZXQgY2xhc3NOYW1lKCl7bGV0IGU9ImxlbmlzIjtyZXR1cm4gdGhpcy5vcHRpb25zLmF1dG9Ub2dnbGUmJihlKz0iIGxlbmlzLWF1dG9Ub2dnbGUiKSx0aGlzLmlzU3RvcHBlZCYmKGUrPSIgbGVuaXMtc3RvcHBlZCIpLHRoaXMuaXNMb2NrZWQmJihlKz0iIGxlbmlzLWxvY2tlZCIpLHRoaXMuaXNTY3JvbGxpbmcmJihlKz0iIGxlbmlzLXNjcm9sbGluZyIpLHRoaXMuaXNTY3JvbGxpbmc9PT0ic21vb3RoIiYmKGUrPSIgbGVuaXMtc21vb3RoIiksZX11cGRhdGVDbGFzc05hbWUoKXt0aGlzLmNsZWFuVXBDbGFzc05hbWUoKSx0aGlzLnJvb3RFbGVtZW50LmNsYXNzTmFtZT1gJHt0aGlzLnJvb3RFbGVtZW50LmNsYXNzTmFtZX0gJHt0aGlzLmNsYXNzTmFtZX1gLnRyaW0oKX1jbGVhblVwQ2xhc3NOYW1lKCl7dGhpcy5yb290RWxlbWVudC5jbGFzc05hbWU9dGhpcy5yb290RWxlbWVudC5jbGFzc05hbWUucmVwbGFjZSgvbGVuaXMoLVx3Kyk/L2csIiIpLnRyaW0oKX19fSk7dmFyIEFHPWplKChfRyxMRyk9PnsoZnVuY3Rpb24oZSx0KXt0eXBlb2YgX0c9PSJvYmplY3QiJiZ0eXBlb2YgTEc8InUiP0xHLmV4cG9ydHM9dCgpOnR5cGVvZiBkZWZpbmU9PSJmdW5jdGlvbiImJmRlZmluZS5hbWQ/ZGVmaW5lKHQpOihlPWV8fHNlbGYsZS5Td2VldFNjcm9sbD10KCkpfSkoX0csZnVuY3Rpb24oKXsidXNlIHN0cmljdCI7dmFyIGU9ZnVuY3Rpb24oKXtyZXR1cm4gZT1PYmplY3QuYXNzaWdufHxmdW5jdGlvbihMKXtmb3IodmFyIFUsVj0xLFg9YXJndW1lbnRzLmxlbmd0aDtWPFg7VisrKXtVPWFyZ3VtZW50c1tWXTtmb3IodmFyIGRlIGluIFUpT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKFUsZGUpJiYoTFtkZV09VVtkZV0pfXJldHVybiBMfSxlLmFwcGx5KHRoaXMsYXJndW1lbnRzKX0sdD0hISh0eXBlb2Ygd2luZG93PCJ1IiYmd2luZG93LmRvY3VtZW50JiZ3aW5kb3cuZG9jdW1lbnQuY3JlYXRlRWxlbWVudCkscj10P3dpbmRvdy5oaXN0b3J5JiYicHVzaFN0YXRlImluIHdpbmRvdy5oaXN0b3J5JiZ3aW5kb3cubG9jYXRpb24ucHJvdG9jb2whPT0iZmlsZToiOiExLGk9KGZ1bmN0aW9uKCl7dmFyIEE9ITE7aWYoIXQpcmV0dXJuIEE7dHJ5e3ZhciBMPXdpbmRvdyxVPU9iamVjdC5kZWZpbmVQcm9wZXJ0eSh7fSwicGFzc2l2ZSIse2dldDpmdW5jdGlvbigpe0E9ITB9fSk7TC5hZGRFdmVudExpc3RlbmVyKCJ0ZXN0IixudWxsLFUpLEwucmVtb3ZlRXZlbnRMaXN0ZW5lcigidGVzdCIsbnVsbCxVKX1jYXRjaHt9cmV0dXJuIEF9KSgpLGE9ZnVuY3Rpb24oQSl7cmV0dXJuIHR5cGVvZiBBPT0ic3RyaW5nIn0sbj1mdW5jdGlvbihBKXtyZXR1cm4gdHlwZW9mIEE9PSJmdW5jdGlvbiJ9LG89ZnVuY3Rpb24oQSl7cmV0dXJuIEFycmF5LmlzQXJyYXkoQSl9LHM9ZnVuY3Rpb24oQSl7cmV0dXJuIW8oQSkmJkEtcGFyc2VGbG9hdChBKSsxPj0wfSxsPWZ1bmN0aW9uKEEsTCl7cmV0dXJuIEEmJkEuaGFzT3duUHJvcGVydHkoTCl9LGM9dD93aW5kb3cucmVxdWVzdEFuaW1hdGlvbkZyYW1lLmJpbmQod2luZG93KTpudWxsLHU9dD93aW5kb3cuY2FuY2VsQW5pbWF0aW9uRnJhbWUuYmluZCh3aW5kb3cpOm51bGwsZD1NYXRoLmNvcyxoPU1hdGguc2luLGY9TWF0aC5wb3cseD1NYXRoLnNxcnQsdj1NYXRoLlBJLGI9e2xpbmVhcjpmdW5jdGlvbihBKXtyZXR1cm4gQX0sZWFzZUluUXVhZDpmdW5jdGlvbihBLEwsVSxWLFgpe3JldHVybiBWKihMLz1YKSpMK1V9LGVhc2VPdXRRdWFkOmZ1bmN0aW9uKEEsTCxVLFYsWCl7cmV0dXJuLVYqKEwvPVgpKihMLTIpK1V9LGVhc2VJbk91dFF1YWQ6ZnVuY3Rpb24oQSxMLFUsVixYKXtyZXR1cm4oTC89WC8yKTwxP1YvMipMKkwrVTotVi8yKigtLUwqKEwtMiktMSkrVX0sZWFzZUluQ3ViaWM6ZnVuY3Rpb24oQSxMLFUsVixYKXtyZXR1cm4gViooTC89WCkqTCpMK1V9LGVhc2VPdXRDdWJpYzpmdW5jdGlvbihBLEwsVSxWLFgpe3JldHVybiBWKigoTD1ML1gtMSkqTCpMKzEpK1V9LGVhc2VJbk91dEN1YmljOmZ1bmN0aW9uKEEsTCxVLFYsWCl7cmV0dXJuKEwvPVgvMik8MT9WLzIqTCpMKkwrVTpWLzIqKChMLT0yKSpMKkwrMikrVX0sZWFzZUluUXVhcnQ6ZnVuY3Rpb24oQSxMLFUsVixYKXtyZXR1cm4gViooTC89WCkqTCpMKkwrVX0sZWFzZU91dFF1YXJ0OmZ1bmN0aW9uKEEsTCxVLFYsWCl7cmV0dXJuLVYqKChMPUwvWC0xKSpMKkwqTC0xKStVfSxlYXNlSW5PdXRRdWFydDpmdW5jdGlvbihBLEwsVSxWLFgpe3JldHVybihMLz1YLzIpPDE/Vi8yKkwqTCpMKkwrVTotVi8yKigoTC09MikqTCpMKkwtMikrVX0sZWFzZUluUXVpbnQ6ZnVuY3Rpb24oQSxMLFUsVixYKXtyZXR1cm4gViooTC89WCkqTCpMKkwqTCtVfSxlYXNlT3V0UXVpbnQ6ZnVuY3Rpb24oQSxMLFUsVixYKXtyZXR1cm4gViooKEw9TC9YLTEpKkwqTCpMKkwrMSkrVX0sZWFzZUluT3V0UXVpbnQ6ZnVuY3Rpb24oQSxMLFUsVixYKXtyZXR1cm4oTC89WC8yKTwxP1YvMipMKkwqTCpMKkwrVTpWLzIqKChMLT0yKSpMKkwqTCpMKzIpK1V9LGVhc2VJblNpbmU6ZnVuY3Rpb24oQSxMLFUsVixYKXtyZXR1cm4tVipkKEwvWCoodi8yKSkrVitVfSxlYXNlT3V0U2luZTpmdW5jdGlvbihBLEwsVSxWLFgpe3JldHVybiBWKmgoTC9YKih2LzIpKStVfSxlYXNlSW5PdXRTaW5lOmZ1bmN0aW9uKEEsTCxVLFYsWCl7cmV0dXJuLVYvMiooZCh2KkwvWCktMSkrVX0sZWFzZUluRXhwbzpmdW5jdGlvbihBLEwsVSxWLFgpe3JldHVybiBMPT09MD9VOlYqZigyLDEwKihML1gtMSkpK1V9LGVhc2VPdXRFeHBvOmZ1bmN0aW9uKEEsTCxVLFYsWCl7cmV0dXJuIEw9PT1YP1UrVjpWKigtZigyLC0xMCpML1gpKzEpK1V9LGVhc2VJbk91dEV4cG86ZnVuY3Rpb24oQSxMLFUsVixYKXtyZXR1cm4gTD09PTA/VTpMPT09WD9VK1Y6KEwvPVgvMik8MT9WLzIqZigyLDEwKihMLTEpKStVOlYvMiooLWYoMiwtMTAqLS1MKSsyKStVfSxlYXNlSW5DaXJjOmZ1bmN0aW9uKEEsTCxVLFYsWCl7cmV0dXJuLVYqKHgoMS0oTC89WCkqTCktMSkrVX0sZWFzZU91dENpcmM6ZnVuY3Rpb24oQSxMLFUsVixYKXtyZXR1cm4gVip4KDEtKEw9TC9YLTEpKkwpK1V9LGVhc2VJbk91dENpcmM6ZnVuY3Rpb24oQSxMLFUsVixYKXtyZXR1cm4oTC89WC8yKTwxPy1WLzIqKHgoMS1MKkwpLTEpK1U6Vi8yKih4KDEtKEwtPTIpKkwpKzEpK1V9fSx5PWZ1bmN0aW9uKEEpe3JldHVybiBBcnJheS5wcm90b3R5cGUuc2xpY2UuY2FsbChBP2RvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoQSk6W10pfSx3PWZ1bmN0aW9uKEEpe3JldHVybiB5KEEpLnNoaWZ0KCl8fG51bGx9LGs9ZnVuY3Rpb24oQSl7cmV0dXJuIEEgaW5zdGFuY2VvZiBFbGVtZW50fSxPPWZ1bmN0aW9uKEEpe3JldHVybiBBPT09d2luZG93fSx6PWZ1bmN0aW9uKEEpe3JldHVybiBBPT09ZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50fHxBPT09ZG9jdW1lbnQuYm9keX0sTT1mdW5jdGlvbihBLEwpe2lmKGsoTCkpcmV0dXJuIEE9PT1MO2Zvcih2YXIgVT15KEwpLFY9VS5sZW5ndGg7LS1WPj0wJiZVW1ZdIT09QTspO3JldHVybiBWPi0xfSxGPWZ1bmN0aW9uKEEpe3JldHVybiBNYXRoLm1heChBLnNjcm9sbEhlaWdodCxBLmNsaWVudEhlaWdodCxBLm9mZnNldEhlaWdodCl9LEQ9ZnVuY3Rpb24oQSl7cmV0dXJuIE1hdGgubWF4KEEuc2Nyb2xsV2lkdGgsQS5jbGllbnRXaWR0aCxBLm9mZnNldFdpZHRoKX0sTj1mdW5jdGlvbihBKXtyZXR1cm57d2lkdGg6RChBKSxoZWlnaHQ6RihBKX19LFI9ZnVuY3Rpb24oQSl7dmFyIEw9TyhBKXx8eihBKTtyZXR1cm57dmlld3BvcnQ6e3dpZHRoOkw/TWF0aC5taW4od2luZG93LmlubmVyV2lkdGgsZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LmNsaWVudFdpZHRoKTpBLmNsaWVudFdpZHRoLGhlaWdodDpMP3dpbmRvdy5pbm5lckhlaWdodDpBLmNsaWVudEhlaWdodH0sc2l6ZTpMP3t3aWR0aDpNYXRoLm1heChEKGRvY3VtZW50LmJvZHkpLEQoZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50KSksaGVpZ2h0Ok1hdGgubWF4KEYoZG9jdW1lbnQuYm9keSksRihkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQpKX06TihBKX19LF89e3k6InNjcm9sbFRvcCIseDoic2Nyb2xsTGVmdCJ9LFM9e3k6InBhZ2VZT2Zmc2V0Iix4OiJwYWdlWE9mZnNldCJ9LCQ9ZnVuY3Rpb24oQSxMKXtyZXR1cm4gTyhBKT9BW1NbTF1dOkFbX1tMXV19LFQ9ZnVuY3Rpb24oQSxMLFUpe2lmKE8oQSkpe3ZhciBWPVU9PT0ieSI7QS5zY3JvbGxUbyhWP0EucGFnZVhPZmZzZXQ6TCxWP0w6QS5wYWdlWU9mZnNldCl9ZWxzZSBBW19bVV1dPUx9LEU9ZnVuY3Rpb24oQSxMKXt2YXIgVT1BLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO2lmKFUud2lkdGh8fFUuaGVpZ2h0KXt2YXIgVj17dG9wOjAsbGVmdDowfSxYPXZvaWQgMDtpZihPKEwpfHx6KEwpKVg9ZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LFYudG9wPXdpbmRvd1tTLnldLFYubGVmdD13aW5kb3dbUy54XTtlbHNle1g9TDt2YXIgZGU9WC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtWLnRvcD1kZS50b3AqLTErWFtfLnldLFYubGVmdD1kZS5sZWZ0Ki0xK1hbXy54XX1yZXR1cm57dG9wOlUudG9wK1YudG9wLVguY2xpZW50VG9wLGxlZnQ6VS5sZWZ0K1YubGVmdC1YLmNsaWVudExlZnR9fXJldHVybiBVfSxxPShmdW5jdGlvbigpe3JldHVybiB0PyJvbndoZWVsImluIGRvY3VtZW50PyJ3aGVlbCI6Im1vdXNld2hlZWwiOiJ3aGVlbCJ9KSgpLEI9ZnVuY3Rpb24oQSl7cmV0dXJuIEE9PT0id2hlZWwiP3E6QX0sRz1mdW5jdGlvbihBLEwsVSxWLFgpe1Uuc3BsaXQoIiAiKS5mb3JFYWNoKGZ1bmN0aW9uKGRlKXtBW0xdKEIoZGUpLFYsaT97cGFzc2l2ZTpYfTohMSl9KX0sZWU9ZnVuY3Rpb24oQSxMLFUsVil7cmV0dXJuIEcoQSwiYWRkRXZlbnRMaXN0ZW5lciIsTCxVLFYpfSxQPWZ1bmN0aW9uKEEsTCxVLFYpe3JldHVybiBHKEEsInJlbW92ZUV2ZW50TGlzdGVuZXIiLEwsVSxWKX0sZ2U9L14oXCt8LSk9KFxkKyg/OlwuXGQrKT8pJC8sd2U9ZnVuY3Rpb24oQSxMKXt2YXIgVT17dG9wOjAsbGVmdDowLHJlbGF0aXZlOiExfTtpZihsKEEsInRvcCIpfHxsKEEsImxlZnQiKSlVPWUoe30sVSxBKTtlbHNlIGlmKG8oQSkpaWYoQS5sZW5ndGg+MSlVLnRvcD1BWzBdLFUubGVmdD1BWzFdO2Vsc2UgaWYoQS5sZW5ndGg9PT0xKVUudG9wPUw/QVswXTowLFUubGVmdD1MPzA6QVswXTtlbHNlIHJldHVybiBudWxsO2Vsc2UgaWYocyhBKSlMP1UudG9wPUE6VS5sZWZ0PUE7ZWxzZSBpZihhKEEpKXt2YXIgVj1BLnRyaW0oKS5tYXRjaChnZSk7aWYoIVYpcmV0dXJuIG51bGw7dmFyIFg9VlsxXSxkZT1wYXJzZUludChWWzJdLDEwKTtYPT09IisiPyhVLnRvcD1MP2RlOjAsVS5sZWZ0PUw/MDpkZSk6KFUudG9wPUw/LWRlOjAsVS5sZWZ0PUw/MDotZGUpLFUucmVsYXRpdmU9ITB9ZWxzZSByZXR1cm4gbnVsbDtyZXR1cm4gVX0sST17dHJpZ2dlcjoiW2RhdGEtc2Nyb2xsXSIsaGVhZGVyOiJbZGF0YS1zY3JvbGwtaGVhZGVyXSIsZHVyYXRpb246MWUzLGVhc2luZzoiZWFzZU91dFF1aW50IixvZmZzZXQ6MCx2ZXJ0aWNhbDohMCxob3Jpem9udGFsOiExLGNhbmNlbGxhYmxlOiEwLHVwZGF0ZVVSTDohMSxwcmV2ZW50RGVmYXVsdDohMCxzdG9wUHJvcGFnYXRpb246ITAsYmVmb3JlOm51bGwsYWZ0ZXI6bnVsbCxjYW5jZWw6bnVsbCxjb21wbGV0ZTpudWxsLHN0ZXA6bnVsbH0sbmU9ImNsaWNrIixrZT0id2hlZWwgdG91Y2hzdGFydCB0b3VjaG1vdmUiLFk9KGZ1bmN0aW9uKCl7ZnVuY3Rpb24gQShMLFUpe3ZhciBWPXRoaXM7dGhpcy4kZWw9bnVsbCx0aGlzLmN0eD17JHRyaWdnZXI6bnVsbCxvcHRzOm51bGwscHJvZ3Jlc3M6ITEscG9zOm51bGwsc3RhcnRQb3M6bnVsbCxlYXNpbmc6bnVsbCxzdGFydDowLGlkOjAsY2FuY2VsOiExLGhhc2g6bnVsbH0sdGhpcy5sb29wPWZ1bmN0aW9uKGRlKXt2YXIgdmU9VixMZT12ZS4kZWwsVz12ZS5jdHg7aWYoVy5zdGFydHx8KFcuc3RhcnQ9ZGUpLCFXLnByb2dyZXNzfHwhTGUpe1Yuc3RvcCgpO3JldHVybn12YXIgSD1XLm9wdHMsdGU9Vy5wb3MsYmU9Vy5zdGFydCx1ZT1XLnN0YXJ0UG9zLENlPVcuZWFzaW5nLGhlPUguZHVyYXRpb24saWU9e3RvcDoieSIsbGVmdDoieCJ9LFNlPWRlLWJlLEllPU1hdGgubWluKDEsTWF0aC5tYXgoU2UvaGUsMCkpO09iamVjdC5rZXlzKHRlKS5mb3JFYWNoKGZ1bmN0aW9uKFplKXt2YXIgSz10ZVtaZV0sWj11ZVtaZV0sSj1LLVo7aWYoSiE9PTApe3ZhciBtZT1DZShJZSxoZSpJZSwwLDEsaGUpO1QoTGUsTWF0aC5yb3VuZChaK0oqbWUpLGllW1plXSl9fSksU2U8PWhlPyhWLmhvb2soSCwic3RlcCIsSWUpLFcuaWQ9QS5yYWYoVi5sb29wKSk6Vi5zdG9wKCEwKX0sdGhpcy5oYW5kbGVDbGljaz1mdW5jdGlvbihkZSl7Zm9yKHZhciB2ZT1WLm9wdHMsTGU9ZGUudGFyZ2V0O0xlJiZMZSE9PWRvY3VtZW50O0xlPUxlLnBhcmVudE5vZGUpaWYoTShMZSx2ZS50cmlnZ2VyKSl7dmFyIFc9SlNPTi5wYXJzZShMZS5nZXRBdHRyaWJ1dGUoImRhdGEtc2Nyb2xsLW9wdGlvbnMiKXx8Int9IiksSD1MZS5nZXRBdHRyaWJ1dGUoImRhdGEtc2Nyb2xsIiksdGU9SHx8TGUuZ2V0QXR0cmlidXRlKCJocmVmIiksYmU9ZSh7fSx2ZSxXKSx1ZT1iZS5wcmV2ZW50RGVmYXVsdCxDZT1iZS5zdG9wUHJvcGFnYXRpb24saGU9YmUudmVydGljYWwsaWU9YmUuaG9yaXpvbnRhbDt1ZSYmZGUucHJldmVudERlZmF1bHQoKSxDZSYmZGUuc3RvcFByb3BhZ2F0aW9uKCksVi5jdHguJHRyaWdnZXI9TGUsaWUmJmhlP1YudG8odGUsYmUpOmhlP1YudG9Ub3AodGUsYmUpOmllJiZWLnRvTGVmdCh0ZSxiZSk7YnJlYWt9fSx0aGlzLmhhbmRsZVN0b3A9ZnVuY3Rpb24oZGUpe3ZhciB2ZT1WLmN0eCxMZT12ZS5vcHRzO0xlJiZMZS5jYW5jZWxsYWJsZT8odmUuY2FuY2VsPSEwLFYuc3RvcCgpKTpkZS5wcmV2ZW50RGVmYXVsdCgpfSx0aGlzLm9wdHM9ZSh7fSxJLEx8fHt9KTt2YXIgWD1udWxsO3QmJih0eXBlb2YgVT09InN0cmluZyI/WD13KFUpOlUhPW51bGw/WD1VOlg9d2luZG93KSx0aGlzLiRlbD1YLFgmJnRoaXMuYmluZCghMCwhMSl9cmV0dXJuIEEuY3JlYXRlPWZ1bmN0aW9uKEwsVSl7cmV0dXJuIG5ldyBBKEwsVSl9LEEucHJvdG90eXBlLnRvPWZ1bmN0aW9uKEwsVSl7aWYodCl7dmFyIFY9dGhpcyxYPVYuJGVsLGRlPVYuY3R4LHZlPVYub3B0cyxMZT1kZS4kdHJpZ2dlcixXPWUoe30sdmUsVXx8e30pLEg9Vy5vZmZzZXQsdGU9Vy52ZXJ0aWNhbCxiZT1XLmhvcml6b250YWwsdWU9ayhXLmhlYWRlcik/Vy5oZWFkZXI6dyhXLmhlYWRlciksQ2U9L14jLyxoZT1hKEwpJiZDZS50ZXN0KEwpP0w6bnVsbDtpZihkZS5vcHRzPVcsZGUuY2FuY2VsPSExLGRlLmhhc2g9aGUsdGhpcy5zdG9wKCksISFYKXt2YXIgaWU9d2UoSCx0ZSksU2U9d2UoTCx0ZSksSWU9e3RvcDowLGxlZnQ6MH07aWYoU2UpaWYoU2UucmVsYXRpdmUpe3ZhciBaZT0kKFgsdGU/InkiOiJ4Iik7SWUudG9wPXRlP1plK1NlLnRvcDpTZS50b3AsSWUubGVmdD10ZT9TZS5sZWZ0OlplK1NlLmxlZnR9ZWxzZSBJZT1TZTtlbHNlIGlmKGEoTCkmJkwhPT0iIyIpe3ZhciBLPXcoTCk7aWYoIUspcmV0dXJuO0llPUUoSyxYKX1pZSYmKEllLnRvcCs9aWUudG9wLEllLmxlZnQrPWllLmxlZnQpLHVlJiYoSWUudG9wPU1hdGgubWF4KDAsSWUudG9wLU4odWUpLmhlaWdodCkpO3ZhciBaPVIoWCksSj1aLnZpZXdwb3J0LG1lPVouc2l6ZTtpZihJZS50b3A9dGU/TWF0aC5tYXgoMCxNYXRoLm1pbihtZS5oZWlnaHQtSi5oZWlnaHQsSWUudG9wKSk6JChYLCJ5IiksSWUubGVmdD1iZT9NYXRoLm1heCgwLE1hdGgubWluKG1lLndpZHRoLUoud2lkdGgsSWUubGVmdCkpOiQoWCwieCIpLHRoaXMuaG9vayhXLCJiZWZvcmUiLEllLExlKT09PSExKXtkZS5vcHRzPW51bGw7cmV0dXJufWRlLnBvcz1JZSx0aGlzLnN0YXJ0KFcpLHRoaXMuYmluZCghMSwhMCl9fX0sQS5wcm90b3R5cGUudG9Ub3A9ZnVuY3Rpb24oTCxVKXt0aGlzLnRvKEwsZSh7fSxVfHx7fSx7dmVydGljYWw6ITAsaG9yaXpvbnRhbDohMX0pKX0sQS5wcm90b3R5cGUudG9MZWZ0PWZ1bmN0aW9uKEwsVSl7dGhpcy50byhMLGUoe30sVXx8e30se3ZlcnRpY2FsOiExLGhvcml6b250YWw6ITB9KSl9LEEucHJvdG90eXBlLnRvRWxlbWVudD1mdW5jdGlvbihMLFUpe3ZhciBWPXRoaXMuJGVsOyF0fHwhVnx8dGhpcy50byhFKEwsViksVXx8e30pfSxBLnByb3RvdHlwZS5zdG9wPWZ1bmN0aW9uKEwpe0w9PT12b2lkIDAmJihMPSExKTt2YXIgVT10aGlzLFY9VS4kZWwsWD1VLmN0eCxkZT1YLnBvczshVnx8IVgucHJvZ3Jlc3N8fChBLmNhZihYLmlkKSxYLnByb2dyZXNzPSExLFguc3RhcnQ9MCxYLmlkPTAsTCYmZGUmJihUKFYsZGUubGVmdCwieCIpLFQoVixkZS50b3AsInkiKSksdGhpcy5jb21wbGV0ZSgpKX0sQS5wcm90b3R5cGUudXBkYXRlPWZ1bmN0aW9uKEwpe2lmKHRoaXMuJGVsKXt2YXIgVT1lKHt9LHRoaXMub3B0cyxMKTt0aGlzLnN0b3AoKSx0aGlzLnVuYmluZCghMCwhMCksdGhpcy5vcHRzPVUsdGhpcy5iaW5kKCEwLCExKX19LEEucHJvdG90eXBlLmRlc3Ryb3k9ZnVuY3Rpb24oKXt0aGlzLiRlbCYmKHRoaXMuc3RvcCgpLHRoaXMudW5iaW5kKCEwLCEwKSx0aGlzLiRlbD1udWxsKX0sQS5wcm90b3R5cGUub25CZWZvcmU9ZnVuY3Rpb24oTCxVKXtyZXR1cm4hMH0sQS5wcm90b3R5cGUub25TdGVwPWZ1bmN0aW9uKEwpe30sQS5wcm90b3R5cGUub25BZnRlcj1mdW5jdGlvbihMLFUpe30sQS5wcm90b3R5cGUub25DYW5jZWw9ZnVuY3Rpb24oKXt9LEEucHJvdG90eXBlLm9uQ29tcGxldGU9ZnVuY3Rpb24oTCl7fSxBLnByb3RvdHlwZS5zdGFydD1mdW5jdGlvbihMKXt2YXIgVT10aGlzLmN0eDtVLm9wdHM9TCxVLnByb2dyZXNzPSEwLFUuZWFzaW5nPW4oTC5lYXNpbmcpP0wuZWFzaW5nOmJbTC5lYXNpbmddO3ZhciBWPXRoaXMuJGVsLFg9e3RvcDokKFYsInkiKSxsZWZ0OiQoViwieCIpfTtVLnN0YXJ0UG9zPVgsVS5pZD1BLnJhZih0aGlzLmxvb3ApfSxBLnByb3RvdHlwZS5jb21wbGV0ZT1mdW5jdGlvbigpe3ZhciBMPXRoaXMsVT1MLiRlbCxWPUwuY3R4LFg9Vi5oYXNoLGRlPVYuY2FuY2VsLHZlPVYub3B0cyxMZT1WLnBvcyxXPVYuJHRyaWdnZXI7aWYoISghVXx8IXZlKSl7aWYoWCE9bnVsbCYmWCE9PXdpbmRvdy5sb2NhdGlvbi5oYXNoKXt2YXIgSD12ZS51cGRhdGVVUkw7dCYmciYmSCE9PSExJiZ3aW5kb3cuaGlzdG9yeVtIPT09InJlcGxhY2UiPyJyZXBsYWNlU3RhdGUiOiJwdXNoU3RhdGUiXShudWxsLCIiLFgpfXRoaXMudW5iaW5kKCExLCEwKSxWLm9wdHM9bnVsbCxWLiR0cmlnZ2VyPW51bGwsZGU/dGhpcy5ob29rKHZlLCJjYW5jZWwiKTp0aGlzLmhvb2sodmUsImFmdGVyIixMZSxXKSx0aGlzLmhvb2sodmUsImNvbXBsZXRlIixkZSl9fSxBLnByb3RvdHlwZS5ob29rPWZ1bmN0aW9uKEwsVSl7Zm9yKHZhciBWPVtdLFg9MjtYPGFyZ3VtZW50cy5sZW5ndGg7WCsrKVZbWC0yXT1hcmd1bWVudHNbWF07dmFyIGRlLHZlPUxbVV0sTGUsVztyZXR1cm4gbih2ZSkmJihMZT12ZS5hcHBseSh0aGlzLFYuY29uY2F0KFt0aGlzXSkpKSxXPShkZT10aGlzKVsib24iKyhVWzBdLnRvVXBwZXJDYXNlKCkrVS5zbGljZSgxKSldLmFwcGx5KGRlLFYpLExlIT09dm9pZCAwP0xlOld9LEEucHJvdG90eXBlLmJpbmQ9ZnVuY3Rpb24oTCxVKXt2YXIgVj10aGlzLFg9Vi4kZWwsZGU9Vi5jdHgub3B0cztYJiYoTCYmZWUoWCxuZSx0aGlzLmhhbmRsZUNsaWNrLCExKSxVJiZlZShYLGtlLHRoaXMuaGFuZGxlU3RvcCxkZT9kZS5jYW5jZWxsYWJsZTohMCkpfSxBLnByb3RvdHlwZS51bmJpbmQ9ZnVuY3Rpb24oTCxVKXt2YXIgVj10aGlzLFg9Vi4kZWwsZGU9Vi5jdHgub3B0cztYJiYoTCYmUChYLG5lLHRoaXMuaGFuZGxlQ2xpY2ssITEpLFUmJlAoWCxrZSx0aGlzLmhhbmRsZVN0b3AsZGU/ZGUuY2FuY2VsbGFibGU6ITApKX0sQS5yYWY9YyxBLmNhZj11LEF9KSgpO3JldHVybiBZfSl9KTt2YXIgV2ssVjcsUnU9cCgoKT0+e2N5ZSgpO0tmKCk7WTIoKTthdSgpO0VXKCk7c2EoKTtCVygpO3QyKCk7SlcoKTtPZigpO2VHKCk7R0xlKCk7cWsoKTtVZigpO1pBZSgpO1hBZSgpO1RHKCk7dERlKCk7V2s9ZXIoQUcoKSwxKSxWNz17T2JqZWN0TWFwOlZrLFN0cmluZ21hcDpVayxGYXN0TWFwOk91fX0pO3ZhciB5cz17fTtGZSh5cyx7Y3NzRm9yRGVza3RvcDooKT0+V0NyLGNzc0Zvck5vdGVib29rOigpPT5HQ3IsY3NzRm9yUGhhYmxldDooKT0+WkNyLGNzc0ZvclBob25lOigpPT5YQ3IsY3NzRm9yVGFibGV0OigpPT5ZQ3IsZGVza3RvcDooKT0+REcsbm90ZWJvb2s6KCk9PkVHLHBoYWJsZXQ6KCk9PklHLHBob25lOigpPT5QRyx0YWJsZXQ6KCk9PiRHfSk7dmFyIERHLEVHLCRHLElHLFBHLFdDcixHQ3IsWUNyLFpDcixYQ3IsTkc9cCgoKT0+e0J1KCk7VTIoKTtERz0xNjAwLEVHPTEyNDAsJEc9MTAyNCxJRz02MDAsUEc9NDAwLFdDcj1lPT53MShgCiAgICBAY29udGFpbmVyIHdjY1Rvb2xzVmlld3BvcnQgKG1pbi13aWR0aDogJHtER31weCkgewogICAgICAke2UuY3NzVGV4dH0KICAgIH0KICAgIEBtZWRpYSAobWluLXdpZHRoOiAke0RHfXB4KSB7CiAgICAgICR7ZS5jc3NUZXh0fQogICAgfQogIGApLEdDcj1lPT53MShgCiAgICBAY29udGFpbmVyIHdjY1Rvb2xzVmlld3BvcnQgKG1heC13aWR0aDogJHtFR31weCkgewogICAgICAke2UuY3NzVGV4dH0KICAgIH0KICAgIEBtZWRpYSAobWF4LXdpZHRoOiAke0VHfXB4KSB7CiAgICAgICR7ZS5jc3NUZXh0fQogICAgfQogIGApLFlDcj1lPT53MShgCiAgICBAY29udGFpbmVyIHdjY1Rvb2xzVmlld3BvcnQgKG1heC13aWR0aDogJHskR31weCkgewogICAgICAke2UuY3NzVGV4dH0KICAgIH0KICAgIEBtZWRpYSAobWF4LXdpZHRoOiAkeyRHfXB4KSB7CiAgICAgICR7ZS5jc3NUZXh0fQogICAgfQogIGApLFpDcj1lPT53MShgCiAgICBAY29udGFpbmVyIHdjY1Rvb2xzVmlld3BvcnQgKG1heC13aWR0aDogJHtJR31weCkgewogICAgICAke2UuY3NzVGV4dH0KICAgIH0KICAgIEBtZWRpYSAobWF4LXdpZHRoOiAke0lHfXB4KSB7CiAgICAgICR7ZS5jc3NUZXh0fQogICAgfQogIGApLFhDcj1lPT53MShgCiAgICBAY29udGFpbmVyIHdjY1Rvb2xzVmlld3BvcnQgKG1heC13aWR0aDogJHtQR31weCkgewogICAgICAke2UuY3NzVGV4dH0KICAgIH0KICAgIEBtZWRpYSAobWF4LXdpZHRoOiAke1BHfXB4KSB7CiAgICAgICR7ZS5jc3NUZXh0fQogICAgfQogIGApfSk7dmFyIFlrLHJEZT1wKCgpPT57UnUoKTtZaz1jbGFzc3tkb210b29sc0luc3RhbmNlO3Njcm9sbENhbGxiYWNrcz1bXTtsZW5pc0luc3RhbmNlPW51bGw7aGFuZGxlTmF0aXZlU2Nyb2xsPXQ9Pnt0aGlzLmV4ZWN1dGVTY3JvbGxDYWxsYmFja3MoKX07aGFuZGxlTGVuaXNTY3JvbGw9dD0+e3RoaXMuZXhlY3V0ZVNjcm9sbENhbGxiYWNrcygpfTtjb25zdHJ1Y3Rvcih0KXt0aGlzLmRvbXRvb2xzSW5zdGFuY2U9dCx0aGlzLmF0dGFjaE5hdGl2ZVNjcm9sbExpc3RlbmVyKCl9c3dlZXRTY3JvbGxlcj1uZXcgV2suZGVmYXVsdCh7fSk7YXN5bmMgdG9FbGVtZW50KHQscil7dGhpcy5zd2VldFNjcm9sbGVyLnRvRWxlbWVudCh0LHIpLGF3YWl0IHp0LmRlbGF5Rm9yKHIuZHVyYXRpb24pfWFzeW5jIGRldGVjdE5hdGl2ZVNtb290aFNjcm9sbCgpe2xldCB0PUtlLmRlZmVyKCkscj0xMDAsaT0zLGE9Ljc1LG49W107ZnVuY3Rpb24gbyhsKXtuLnB1c2gobC5kZWx0YVkpLG4ubGVuZ3RoPj1yJiYod2luZG93LnJlbW92ZUV2ZW50TGlzdGVuZXIoIndoZWVsIixvKSxzKCkpfWZ1bmN0aW9uIHMoKXtsZXQgbD1uLmxlbmd0aC0xLGM9MDtmb3IobGV0IGQ9MDtkPGw7ZCsrKU1hdGguYWJzKG5bZCsxXS1uW2RdKTw9aSYmYysrO2MvbD49YT8oY29uc29sZS5sb2coIlNtb290aCBzY3JvbGxpbmcgZGV0ZWN0ZWQuIiksdC5yZXNvbHZlKCEwKSk6KGNvbnNvbGUubG9nKCJTbW9vdGggc2Nyb2xsaW5nIE5PVCBkZXRlY3RlZC4iKSx0LnJlc29sdmUoITEpKX1yZXR1cm4gd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoIndoZWVsIixvKSx0LnByb21pc2V9YXN5bmMgZW5hYmxlTGVuaXNTY3JvbGwodCl7bGV0IHI9bmV3IGo3KHthdXRvUmFmOiEwfSk7aWYodD8uZGlzYWJsZU9uTmF0aXZlU21vb3RoU2Nyb2xsJiZhd2FpdCB0aGlzLmRldGVjdE5hdGl2ZVNtb290aFNjcm9sbCgpKXtyLmRlc3Ryb3koKTtyZXR1cm59dGhpcy5sZW5pc0luc3RhbmNlPXIsdGhpcy5kZXRhY2hOYXRpdmVTY3JvbGxMaXN0ZW5lcigpLHRoaXMuYXR0YWNoTGVuaXNTY3JvbGxMaXN0ZW5lcigpO2xldCBpPXIuZGVzdHJveS5iaW5kKHIpO3IuZGVzdHJveT0oKT0+e2koKSx0aGlzLmRldGFjaExlbmlzU2Nyb2xsTGlzdGVuZXIoKSx0aGlzLmF0dGFjaE5hdGl2ZVNjcm9sbExpc3RlbmVyKCksdGhpcy5sZW5pc0luc3RhbmNlPW51bGx9fW9uU2Nyb2xsKHQpe3RoaXMuc2Nyb2xsQ2FsbGJhY2tzLnB1c2godCl9ZXhlY3V0ZVNjcm9sbENhbGxiYWNrcygpe3RoaXMuc2Nyb2xsQ2FsbGJhY2tzLmZvckVhY2godD0+e3RyeXt0KCl9Y2F0Y2gocil7Y29uc29sZS5lcnJvcigiRXJyb3IgaW4gc2Nyb2xsIGNhbGxiYWNrOiIscil9fSl9YXR0YWNoTmF0aXZlU2Nyb2xsTGlzdGVuZXIoKXt3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigic2Nyb2xsIix0aGlzLmhhbmRsZU5hdGl2ZVNjcm9sbCl9ZGV0YWNoTmF0aXZlU2Nyb2xsTGlzdGVuZXIoKXt3aW5kb3cucmVtb3ZlRXZlbnRMaXN0ZW5lcigic2Nyb2xsIix0aGlzLmhhbmRsZU5hdGl2ZVNjcm9sbCl9YXR0YWNoTGVuaXNTY3JvbGxMaXN0ZW5lcigpe3RoaXMubGVuaXNJbnN0YW5jZSYmdGhpcy5sZW5pc0luc3RhbmNlLm9uKCJzY3JvbGwiLHRoaXMuaGFuZGxlTGVuaXNTY3JvbGwpfWRldGFjaExlbmlzU2Nyb2xsTGlzdGVuZXIoKXt0aGlzLmxlbmlzSW5zdGFuY2UmJnRoaXMubGVuaXNJbnN0YW5jZS5vZmYoInNjcm9sbCIsdGhpcy5oYW5kbGVMZW5pc1Njcm9sbCl9fX0pO3ZhciBaayxpRGU9cCgoKT0+e0J1KCk7UnUoKTtaaz1jbGFzc3tkb210b29sc1JlZjtnb0JyaWdodEJvb2xlYW49ITE7cHJlZmVycmVkQ29sb3JTY2hlbWVNZWRpYU1hdGNoPXdpbmRvdy5tYXRjaE1lZGlhKCIocHJlZmVycy1jb2xvci1zY2hlbWU6IGxpZ2h0KSIpO3RoZW1lT2JzZXJ2YWJsZT1uZXcgaXIucnhqcy5SZXBsYXlTdWJqZWN0KDEpO2NvbnN0cnVjdG9yKHQpe3RoaXMuZG9tdG9vbHNSZWY9dCx0aGlzLmdvQnJpZ2h0Qm9vbGVhbj10aGlzLnByZWZlcnJlZENvbG9yU2NoZW1lTWVkaWFNYXRjaC5tYXRjaGVzLHRoaXMucHJlZmVycmVkQ29sb3JTY2hlbWVNZWRpYU1hdGNoLmFkZEV2ZW50TGlzdGVuZXIoImNoYW5nZSIscj0+e3RoaXMuZ29CcmlnaHRCb29sZWFuPXIubWF0Y2hlcyx0aGlzLnVwZGF0ZUFsbENvbm5lY3RlZEVsZW1lbnRzKCl9KSx0aGlzLnVwZGF0ZUFsbENvbm5lY3RlZEVsZW1lbnRzKCl9YXN5bmMgZW5hYmxlQXV0b21hdGljR2xvYmFsVGhlbWVDaGFuZ2UoKXtkb2N1bWVudC5ib2R5JiZkb2N1bWVudC5ib2R5LnN0eWxlJiZ0aGlzLnRoZW1lT2JzZXJ2YWJsZS5zdWJzY3JpYmUoe25leHQ6dD0+e2RvY3VtZW50LmJvZHkuc3R5bGUuYmFja2dyb3VuZD10PyIjZmZmIjoiIzAwMCJ9fSl9YXN5bmMgdXBkYXRlQWxsQ29ubmVjdGVkRWxlbWVudHMoKXt0aGlzLnRoZW1lT2JzZXJ2YWJsZS5uZXh0KHRoaXMuZ29CcmlnaHRCb29sZWFuKX1nb0JyaWdodCgpe3RoaXMuZ29CcmlnaHRCb29sZWFuPSEwLHRoaXMudXBkYXRlQWxsQ29ubmVjdGVkRWxlbWVudHMoKX1nb0RhcmsoKXt0aGlzLmdvQnJpZ2h0Qm9vbGVhbj0hMSx0aGlzLnVwZGF0ZUFsbENvbm5lY3RlZEVsZW1lbnRzKCl9dG9nZ2xlRGFya0JyaWdodCgpe3RoaXMuZ29CcmlnaHRCb29sZWFuPSF0aGlzLmdvQnJpZ2h0Qm9vbGVhbix0aGlzLnVwZGF0ZUFsbENvbm5lY3RlZEVsZW1lbnRzKCl9fX0pO3ZhciBGRyxYayxhRGU9cCgoKT0+e1J1KCk7KGZ1bmN0aW9uKGUpe2VbZS5CYWNrc3BhY2U9OF09IkJhY2tzcGFjZSIsZVtlLlRhYj05XT0iVGFiIixlW2UuRW50ZXI9MTNdPSJFbnRlciIsZVtlLlNoaWZ0PTE2XT0iU2hpZnQiLGVbZS5DdHJsPTE3XT0iQ3RybCIsZVtlLkFsdD0xOF09IkFsdCIsZVtlLlBhdXNlQnJlYWs9MTldPSJQYXVzZUJyZWFrIixlW2UuQ2Fwc0xvY2s9MjBdPSJDYXBzTG9jayIsZVtlLkVzY2FwZT0yN109IkVzY2FwZSIsZVtlLlNwYWNlPTMyXT0iU3BhY2UiLGVbZS5QYWdlVXA9MzNdPSJQYWdlVXAiLGVbZS5QYWdlRG93bj0zNF09IlBhZ2VEb3duIixlW2UuRW5kPTM1XT0iRW5kIixlW2UuSG9tZT0zNl09IkhvbWUiLGVbZS5MZWZ0QXJyb3c9MzddPSJMZWZ0QXJyb3ciLGVbZS5VcEFycm93PTM4XT0iVXBBcnJvdyIsZVtlLlJpZ2h0QXJyb3c9MzldPSJSaWdodEFycm93IixlW2UuRG93bkFycm93PTQwXT0iRG93bkFycm93IixlW2UuSW5zZXJ0PTQ1XT0iSW5zZXJ0IixlW2UuRGVsZXRlPTQ2XT0iRGVsZXRlIixlW2UuWmVybz00OF09Ilplcm8iLGVbZS5DbG9zZWRQYXJlbj00OF09IkNsb3NlZFBhcmVuIixlW2UuT25lPTQ5XT0iT25lIixlW2UuRXhjbGFtYXRpb25NYXJrPTQ5XT0iRXhjbGFtYXRpb25NYXJrIixlW2UuVHdvPTUwXT0iVHdvIixlW2UuQXRTaWduPTUwXT0iQXRTaWduIixlW2UuVGhyZWU9NTFdPSJUaHJlZSIsZVtlLlBvdW5kU2lnbj01MV09IlBvdW5kU2lnbiIsZVtlLkhhc2g9NTFdPSJIYXNoIixlW2UuRm91cj01Ml09IkZvdXIiLGVbZS5Eb2xsYXJTaWduPTUyXT0iRG9sbGFyU2lnbiIsZVtlLkZpdmU9NTNdPSJGaXZlIixlW2UuUGVyY2VudFNpZ249NTNdPSJQZXJjZW50U2lnbiIsZVtlLlNpeD01NF09IlNpeCIsZVtlLkNhcmV0PTU0XT0iQ2FyZXQiLGVbZS5IYXQ9NTRdPSJIYXQiLGVbZS5TZXZlbj01NV09IlNldmVuIixlW2UuQW1wZXJzYW5kPTU1XT0iQW1wZXJzYW5kIixlW2UuRWlnaHQ9NTZdPSJFaWdodCIsZVtlLlN0YXI9NTZdPSJTdGFyIixlW2UuQXN0ZXJpaz01Nl09IkFzdGVyaWsiLGVbZS5OaW5lPTU3XT0iTmluZSIsZVtlLk9wZW5QYXJlbj01N109Ik9wZW5QYXJlbiIsZVtlLkE9NjVdPSJBIixlW2UuQj02Nl09IkIiLGVbZS5DPTY3XT0iQyIsZVtlLkQ9NjhdPSJEIixlW2UuRT02OV09IkUiLGVbZS5GPTcwXT0iRiIsZVtlLkc9NzFdPSJHIixlW2UuSD03Ml09IkgiLGVbZS5JPTczXT0iSSIsZVtlLko9NzRdPSJKIixlW2UuSz03NV09IksiLGVbZS5MPTc2XT0iTCIsZVtlLk09NzddPSJNIixlW2UuTj03OF09Ik4iLGVbZS5PPTc5XT0iTyIsZVtlLlA9ODBdPSJQIixlW2UuUT04MV09IlEiLGVbZS5SPTgyXT0iUiIsZVtlLlM9ODNdPSJTIixlW2UuVD04NF09IlQiLGVbZS5VPTg1XT0iVSIsZVtlLlY9ODZdPSJWIixlW2UuVz04N109IlciLGVbZS5YPTg4XT0iWCIsZVtlLlk9ODldPSJZIixlW2UuWj05MF09IloiLGVbZS5MZWZ0V2luZG93S2V5PTkxXT0iTGVmdFdpbmRvd0tleSIsZVtlLlJpZ2h0V2luZG93S2V5PTkyXT0iUmlnaHRXaW5kb3dLZXkiLGVbZS5TZWxlY3RLZXk9OTNdPSJTZWxlY3RLZXkiLGVbZS5OdW1wYWQwPTk2XT0iTnVtcGFkMCIsZVtlLk51bXBhZDE9OTddPSJOdW1wYWQxIixlW2UuTnVtcGFkMj05OF09Ik51bXBhZDIiLGVbZS5OdW1wYWQzPTk5XT0iTnVtcGFkMyIsZVtlLk51bXBhZDQ9MTAwXT0iTnVtcGFkNCIsZVtlLk51bXBhZDU9MTAxXT0iTnVtcGFkNSIsZVtlLk51bXBhZDY9MTAyXT0iTnVtcGFkNiIsZVtlLk51bXBhZDc9MTAzXT0iTnVtcGFkNyIsZVtlLk51bXBhZDg9MTA0XT0iTnVtcGFkOCIsZVtlLk51bXBhZDk9MTA1XT0iTnVtcGFkOSIsZVtlLk11bHRpcGx5PTEwNl09Ik11bHRpcGx5IixlW2UuQWRkPTEwN109IkFkZCIsZVtlLlN1YnRyYWN0PTEwOV09IlN1YnRyYWN0IixlW2UuRGVjaW1hbFBvaW50PTExMF09IkRlY2ltYWxQb2ludCIsZVtlLkRpdmlkZT0xMTFdPSJEaXZpZGUiLGVbZS5GMT0xMTJdPSJGMSIsZVtlLkYyPTExM109IkYyIixlW2UuRjM9MTE0XT0iRjMiLGVbZS5GND0xMTVdPSJGNCIsZVtlLkY1PTExNl09IkY1IixlW2UuRjY9MTE3XT0iRjYiLGVbZS5GNz0xMThdPSJGNyIsZVtlLkY4PTExOV09IkY4IixlW2UuRjk9MTIwXT0iRjkiLGVbZS5GMTA9MTIxXT0iRjEwIixlW2UuRjExPTEyMl09IkYxMSIsZVtlLkYxMj0xMjNdPSJGMTIiLGVbZS5OdW1Mb2NrPTE0NF09Ik51bUxvY2siLGVbZS5TY3JvbGxMb2NrPTE0NV09IlNjcm9sbExvY2siLGVbZS5TZW1pQ29sb249MTg2XT0iU2VtaUNvbG9uIixlW2UuRXF1YWxzPTE4N109IkVxdWFscyIsZVtlLkNvbW1hPTE4OF09IkNvbW1hIixlW2UuRGFzaD0xODldPSJEYXNoIixlW2UuUGVyaW9kPTE5MF09IlBlcmlvZCIsZVtlLlVuZGVyU2NvcmU9MTg5XT0iVW5kZXJTY29yZSIsZVtlLlBsdXNTaWduPTE4N109IlBsdXNTaWduIixlW2UuRm9yd2FyZFNsYXNoPTE5MV09IkZvcndhcmRTbGFzaCIsZVtlLlRpbGRlPTE5Ml09IlRpbGRlIixlW2UuR3JhdmVBY2NlbnQ9MTkyXT0iR3JhdmVBY2NlbnQiLGVbZS5PcGVuQnJhY2tldD0yMTldPSJPcGVuQnJhY2tldCIsZVtlLkNsb3NlZEJyYWNrZXQ9MjIxXT0iQ2xvc2VkQnJhY2tldCIsZVtlLlF1b3RlPTIyMl09IlF1b3RlIn0pKEZHfHwoRkc9e30pKTtYaz1jbGFzc3tkb21Ob2RlO21hcENvbWJvc1RvSGFuZGxlcnM9bmV3IE1hcDtwcmVzc2VkS2V5cz1uZXcgU2V0O2NvbnN0cnVjdG9yKHQpe3RoaXMuZG9tTm9kZT10LHRoaXMuc3RhcnRMaXN0ZW5pbmcoKX1rZXlFbnVtPUZHO29uKHQpe2xldCByPW5ldyBpci5yeGpzLlN1YmplY3Q7cmV0dXJuIHRoaXMucmVnaXN0ZXJLZXlzKHQscikscn10cmlnZ2VyS2V5UHJlc3ModCl7Zm9yKGxldCByIG9mIHQpdGhpcy5wcmVzc2VkS2V5cy5hZGQocik7dGhpcy5jaGVja01hdGNoaW5nS2V5Ym9hcmRTdWJqZWN0cygpO2ZvcihsZXQgciBvZiB0KXRoaXMucHJlc3NlZEtleXMuZGVsZXRlKHIpfXN0YXJ0TGlzdGVuaW5nKCl7dGhpcy5kb21Ob2RlLmFkZEV2ZW50TGlzdGVuZXIoImtleWRvd24iLHRoaXMuaGFuZGxlS2V5RG93biksdGhpcy5kb21Ob2RlLmFkZEV2ZW50TGlzdGVuZXIoImtleXVwIix0aGlzLmhhbmRsZUtleVVwKX1zdG9wTGlzdGVuaW5nKCl7dGhpcy5kb21Ob2RlLnJlbW92ZUV2ZW50TGlzdGVuZXIoImtleWRvd24iLHRoaXMuaGFuZGxlS2V5RG93biksdGhpcy5kb21Ob2RlLnJlbW92ZUV2ZW50TGlzdGVuZXIoImtleXVwIix0aGlzLmhhbmRsZUtleVVwKX1jbGVhcigpe3RoaXMuc3RvcExpc3RlbmluZygpLHRoaXMubWFwQ29tYm9zVG9IYW5kbGVycy5jbGVhcigpLHRoaXMucHJlc3NlZEtleXMuY2xlYXIoKX1oYW5kbGVLZXlEb3duPXQ9Pnt0aGlzLnByZXNzZWRLZXlzLmFkZCh0LmtleUNvZGUpLHRoaXMuY2hlY2tNYXRjaGluZ0tleWJvYXJkU3ViamVjdHModCl9O2NoZWNrTWF0Y2hpbmdLZXlib2FyZFN1YmplY3RzKHQpe3RoaXMubWFwQ29tYm9zVG9IYW5kbGVycy5mb3JFYWNoKChyLGkpPT57dGhpcy5hcmVBbGxLZXlzUHJlc3NlZChpKSYmci5uZXh0KHQpfSl9aGFuZGxlS2V5VXA9dD0+e3RoaXMucHJlc3NlZEtleXMuZGVsZXRlKHQua2V5Q29kZSl9O2FyZUFsbEtleXNQcmVzc2VkKHQpe2xldCByPSEwO3JldHVybiB0LmZvckVhY2goaT0+e3RoaXMucHJlc3NlZEtleXMuaGFzKGkpfHwocj0hMSl9KSxyfXJlZ2lzdGVyS2V5cyh0LHIpe2lmKCF0aGlzLm1hcENvbWJvc1RvSGFuZGxlcnMuaGFzKHQpKXRoaXMubWFwQ29tYm9zVG9IYW5kbGVycy5zZXQodCxyKTtlbHNlIHJldHVybiB0aGlzLm1hcENvbWJvc1RvSGFuZGxlcnMuZ2V0KHQpfX19KTt2YXIgd3MsQnU9cCgoKT0+e1J1KCk7TkcoKTtyRGUoKTtxaygpO2lEZSgpO2FEZSgpO3dzPWNsYXNzIGV7c3RhdGljIGluaXRpYWxpemF0aW9uUHJvbWlzZT1udWxsO3N0YXRpYyBhc3luYyBzZXR1cERvbVRvb2xzKHQ9e30pe3JldHVybiF0Lmlnbm9yZUdsb2JhbCYmZS5pbml0aWFsaXphdGlvblByb21pc2U/YXdhaXQgZS5pbml0aWFsaXphdGlvblByb21pc2U6dC5pZ25vcmVHbG9iYWw/bmV3IGUodCk6KGUuaW5pdGlhbGl6YXRpb25Qcm9taXNlPShhc3luYygpPT57bGV0IHI7aWYoZ2xvYmFsVGhpcy5kZWVzRG9tVG9vbHMpcj1nbG9iYWxUaGlzLmRlZXNEb21Ub29scztlbHNle2dsb2JhbFRoaXMuZGVlc0RvbVRvb2xzPW5ldyBlKHQpLHI9Z2xvYmFsVGhpcy5kZWVzRG9tVG9vbHM7bGV0IGk9KCk9PnsoZG9jdW1lbnQucmVhZHlTdGF0ZT09PSJpbnRlcmFjdGl2ZSJ8fGRvY3VtZW50LnJlYWR5U3RhdGU9PT0iY29tcGxldGUiKSYmKHIuZWxlbWVudHMuaGVhZEVsZW1lbnQ9ZG9jdW1lbnQucXVlcnlTZWxlY3RvcigiaGVhZCIpLHIuZWxlbWVudHMuYm9keUVsZW1lbnQ9ZG9jdW1lbnQucXVlcnlTZWxlY3RvcigiYm9keSIpLHIua2V5Ym9hcmQ9bmV3IFhrKGRvY3VtZW50LmJvZHkpLHIuZG9tUmVhZHkucmVzb2x2ZSgpKX07ZG9jdW1lbnQucmVhZHlTdGF0ZT09PSJpbnRlcmFjdGl2ZSJ8fGRvY3VtZW50LnJlYWR5U3RhdGU9PT0iY29tcGxldGUiP2koKTpkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCJyZWFkeXN0YXRlY2hhbmdlIixpKSxyLmRvbVRvb2xzUmVhZHkucmVzb2x2ZSgpfXJldHVybiBhd2FpdCByLmRvbVRvb2xzUmVhZHkucHJvbWlzZSxyfSkoKSxhd2FpdCBlLmluaXRpYWxpemF0aW9uUHJvbWlzZSl9c3RhdGljIGdldEdsb2JhbERvbVRvb2xzU3luYygpe2lmKCFnbG9iYWxUaGlzLmRlZXNEb21Ub29scyl0aHJvdyBuZXcgRXJyb3IoIllvdSB0cmllZCB0byBhY2Nlc3MgZG9tdG9vbHMgc3luY2hyb25vdXNseSB0b28gZWFybHkiKTtyZXR1cm4gZ2xvYmFsVGhpcy5kZWVzRG9tVG9vbHN9ZWxlbWVudHM9e2hlYWRFbGVtZW50Om51bGwsYm9keUVsZW1lbnQ6bnVsbH07d2Vic2V0dXA9bmV3IHE3KHttZXRhT2JqZWN0Ont0aXRsZToiIn19KTtzbWFydHN0YXRlPW5ldyBfMC5TbWFydHN0YXRlO2RvbVRvb2xzU3RhdGVQYXJ0PXRoaXMuc21hcnRzdGF0ZS5nZXRTdGF0ZVBhcnQoImRvbXRvb2xzIix7dmlydHVhbFZpZXdwb3J0OiJuYXRpdmUiLGp3dDpudWxsfSk7cm91dGVyPW5ldyBUMC5TbWFydFJvdXRlcih7ZGVidWc6ITF9KTtjb252ZW5pZW5jZT17dHlwZWRyZXF1ZXN0OlZhLHNtYXJ0ZGVsYXk6enQsc21hcnRqc29uOnYxLHNtYXJ0dXJsOkwwfTtkZWVzQ29tbXM9bmV3IHI3LkRlZXNDb21tcztzY3JvbGxlcj1uZXcgWWsodGhpcyk7dGhlbWVNYW5hZ2VyPW5ldyBaayh0aGlzKTtrZXlib2FyZD1udWxsO2RvbVRvb2xzUmVhZHk9S2UuZGVmZXIoKTtkb21SZWFkeT1LZS5kZWZlcigpO2dsb2JhbFN0eWxlc1JlYWR5PUtlLmRlZmVyKCk7Y29uc3RydWN0b3IodCl7fXJ1bk9uY2VUcmFja2VyU3RyaW5nTWFwPW5ldyBWNy5TdHJpbmdtYXA7cnVuT25jZVJlc3VsdE1hcD1uZXcgVjcuRmFzdE1hcDtydW5PbmNlRXJyb3JNYXA9bmV3IFY3LkZhc3RNYXA7YXN5bmMgcnVuT25jZSh0LHIpe2xldCBpPWAke3R9K3J1bm5pbmdDaGVja2A7aWYoIXRoaXMucnVuT25jZVRyYWNrZXJTdHJpbmdNYXAuY2hlY2tTdHJpbmcodCkpe3RoaXMucnVuT25jZVRyYWNrZXJTdHJpbmdNYXAuYWRkU3RyaW5nKHQpLHRoaXMucnVuT25jZVRyYWNrZXJTdHJpbmdNYXAuYWRkU3RyaW5nKGkpO3RyeXtsZXQgYT1hd2FpdCByKCk7dGhpcy5ydW5PbmNlUmVzdWx0TWFwLmFkZFRvTWFwKHQsYSl9Y2F0Y2goYSl7dGhpcy5ydW5PbmNlRXJyb3JNYXAuYWRkVG9NYXAodCxhKX1maW5hbGx5e3RoaXMucnVuT25jZVRyYWNrZXJTdHJpbmdNYXAucmVtb3ZlU3RyaW5nKGkpfX1yZXR1cm4gYXdhaXQgdGhpcy5ydW5PbmNlVHJhY2tlclN0cmluZ01hcC5yZWdpc3RlclVudGlsVHJ1ZShhPT4hYS5pbmNsdWRlcyhpKSwoKT0+e2xldCBhPXRoaXMucnVuT25jZUVycm9yTWFwLmdldEJ5S2V5KHQpO2lmKGEpdGhyb3cgYTtyZXR1cm4gdGhpcy5ydW5PbmNlUmVzdWx0TWFwLmdldEJ5S2V5KHQpfSl9YXN5bmMgc2V0R2xvYmFsU3R5bGVzKHQpe2F3YWl0IHRoaXMuZG9tUmVhZHkucHJvbWlzZTtsZXQgcj1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJzdHlsZSIpO3IudHlwZT0idGV4dC9jc3MiLHIuYXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUodCkpLHRoaXMuZWxlbWVudHMuaGVhZEVsZW1lbnQuYXBwZW5kQ2hpbGQocil9YXN5bmMgc2V0RXh0ZXJuYWxTY3JpcHQodCl7YXdhaXQgdGhpcy5kb21SZWFkeS5wcm9taXNlO2xldCByPUtlLmRlZmVyKCksaT1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJzY3JpcHQiKTtpLnNyYz10LGkuYWRkRXZlbnRMaXN0ZW5lcigibG9hZCIsZnVuY3Rpb24oKXtyLnJlc29sdmUoKX0pLChkb2N1bWVudC5oZWFkfHxkb2N1bWVudC5ib2R5KS5hcHBlbmQoaSksYXdhaXQgci5wcm9taXNlfWFzeW5jIHNldEV4dGVybmFsQ3NzKHQpe2xldCByPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImxpbmsiKTtyLnJlbD0ic3R5bGVzaGVldCIsci5jcm9zc09yaWdpbj0iYW5vbnltb3VzIixyLmhyZWY9dCxkb2N1bWVudC5oZWFkLmFwcGVuZChyKX1hc3luYyBzZXRXZWJzaXRlSW5mbyh0KXthd2FpdCB0aGlzLndlYnNldHVwLnNldHVwKHQpLGF3YWl0IHRoaXMud2Vic2V0dXAucmVhZHlQcm9taXNlfX19KTt2YXIgUWssbkRlLG9EZT1wKCgpPT57QnUoKTtVMigpO1FrPSgoKT0+e2xldCBlPW5hdmlnYXRvci51c2VyQWdlbnQuaW5kZXhPZigiTWFjIE9TIFgiKT09PS0xP1oxYGAuY3NzVGV4dDoiIjtyZXR1cm4gWjFgCiAgICAvKiB3aWR0aCAqLwogICAgOjotd2Via2l0LXNjcm9sbGJhciB7CiAgICAgIHdpZHRoOiAwcHg7CiAgICB9CiAgICBib2R5IHsKICAgICAgc2Nyb2xsYmFyLXdpZHRoOiBub25lOwogICAgfQogIGAuY3NzVGV4dH0pKCksbkRlPVoxYAogIC8qCiAgQGZvbnQtZmFjZSB7CiAgICBmb250LWZhbWlseTogJ01hdGVyaWFsIEljb25zJzsKICAgIGZvbnQtc3R5bGU6IG5vcm1hbDsKICAgIGZvbnQtd2VpZ2h0OiA0MDA7CiAgICBzcmM6IHVybChodHRwczovL2ZvbnRzLmdzdGF0aWMuY29tL3MvbWF0ZXJpYWxpY29ucy92NDIvZmxVaFJxNnR6WmNsUUVKLVZkZy1JdWlhRHNOY0loUTh0US53b2ZmMikKICAgICAgZm9ybWF0KCd3b2ZmMicpOwogIH0gKi8KCiAgLyogZ2xvYmFsIGJvZHkgc3R5bGVzICovCiAgYm9keSB7CiAgICBtYXJnaW46IDBweDsKICAgIGZvbnQtZmFtaWx5OiAnR2Vpc3QgU2FucycsICdJbnRlcicsIHNhbnMtc2VyaWY7CiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94OwogIH0KCiAgLyogc2Nyb2xsIGJhciBzdHlsZXMgKi8KICAke3cxKFFrKX0KYC5jc3NUZXh0fSk7dmFyIEh1PXt9O0ZlKEh1LHtzZXR1cDooKT0+S0NyLHN0YXRpY1N0eWxlczooKT0+UUNyLHN0eWxlczooKT0+SkNyfSk7dmFyIFFDcixKQ3IsS0NyLHNEZT1wKCgpPT57UnUoKTtCdSgpO29EZSgpO1UyKCk7UUNyPVoxYAogICogewogICAgdHJhbnNpdGlvbjogYmFja2dyb3VuZCAwLjFzLCBjb2xvciAwLjFzOwogICAgYm94LXNpemluZzogYm9yZGVyLWJveDsKICB9CgogIDpob3N0IHsKICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7CiAgICBmb250LWZhbWlseTogJ0dlaXN0IFNhbnMnLCAnSW50ZXInLCBzYW5zLXNlcmlmOwogIH0KCiAgJHt3MShRayl9CmAsSkNyPXVyYAogIDxzdHlsZT4KICAgICogewogICAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kIDAuMXMsIGNvbG9yIDAuMXM7CiAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7CiAgICB9CgogICAgOmhvc3QgewogICAgICBmb250LWZhbWlseTogJ0dlaXN0IFNhbnMnLCAnSW50ZXInLCBzYW5zLXNlcmlmOwogICAgfQoKICAgICR7UWt9CiAgPC9zdHlsZT4KYCxLQ3I9YXN5bmMoZSx0PXt9KT0+e2xldCByPWF3YWl0IHdzLnNldHVwRG9tVG9vbHModCk7cmV0dXJuIHIucnVuT25jZSgiZWxlbWVudEJhc2ljU2V0dXAiLGFzeW5jKCk9PntyLnNldEdsb2JhbFN0eWxlcyhuRGUpfSkscn19KTt2YXIgSms9e307RmUoSmsse2Nzc0dyaWRDb2x1bW5zOigpPT5lVHJ9KTt2YXIgZVRyLGxEZT1wKCgpPT57ZVRyPShlLHQpPT57bGV0IHI9IiI7Zm9yKGxldCBpPTA7aTxlO2krKylyKz1gIGNhbGMoKDEwMCUvJHtlfSkgLSAoJHt0KihlLTEpfXB4LyR7ZX0pKWA7cmV0dXJuIHJ9fSk7dmFyIEtrPXt9O0ZlKEtrLHtTd2VldFNjcm9sbDooKT0+T0cuZGVmYXVsdCxzbWFydGRlbGF5OigpPT56dCxzbWFydG1hcmtkb3duOigpPT5OdSxzbWFydHByb21pc2U6KCk9PktlLHNtYXJ0cm91dGVyOigpPT5UMCxzbWFydHJ4OigpPT5pcixzbWFydHN0YXRlOigpPT5fMCxzbWFydHN0cmluZzooKT0+Z2Esc21hcnR1cmw6KCk9PkwwLHR5cGVkcmVxdWVzdDooKT0+VmF9KTt2YXIgT0csY0RlPXAoKCk9PntZMigpO0VXKCk7c2EoKTtPRz1lcihBRygpLDEpO0pXKCk7QlcoKTt0MigpO09mKCk7ZUcoKTtLZigpfSk7dmFyIG1vPXt9O0ZlKG1vLHtEb21Ub29sczooKT0+d3MsVHlwZWRSZXF1ZXN0OigpPT5KZixicmVha3BvaW50czooKT0+eXMsY3NzOigpPT5KayxlbGVtZW50QmFzaWM6KCk9Pkh1LHBsdWdpbnM6KCk9PktrfSk7dmFyIGVTPXAoKCk9PntvcGUoKTtzRGUoKTtORygpO2xEZSgpO0J1KCk7S2YoKTtxaygpO2NEZSgpfSk7dmFyIFJHLEUwLEJHPXAoKCk9PntSRz1lcih1digpLDEpO3QyKCk7VTIoKTtucGUoKTtlUygpO0UwPXtjc3M6WjEsdW5zYWZlQ1NTOncxLExpdEVsZW1lbnQ6cGwscHJvcGVydHk6aDN9fSk7dmFyIHRTLHVEZT1wKCgpPT57VTIoKTtCRygpO2VTKCk7dFM9Y2xhc3MgZXtzdGF0aWMgaW5zdGFuY2U9bnVsbDtzdGF0aWMgZ2V0U2luZ2xldG9uKCl7cmV0dXJuIGUuaW5zdGFuY2V8fChlLmluc3RhbmNlPW5ldyBlKSxlLmluc3RhbmNlfWRvbXRvb2xzUHJvbWlzZT13cy5zZXR1cERvbVRvb2xzKCk7Z29CcmlnaHQ9ITE7YmRWYXJUcmlwbGV0U3RvcmU9W107Y29uc3RydWN0b3IoKXt0aGlzLmRvbXRvb2xzUHJvbWlzZS50aGVuKGFzeW5jIHQ9Pnt0LnRoZW1lTWFuYWdlci50aGVtZU9ic2VydmFibGUuc3Vic2NyaWJlKGFzeW5jIHI9Pnt0aGlzLmdvQnJpZ2h0PXIsYXdhaXQgdC5kb21SZWFkeS5wcm9taXNlO2ZvcihsZXQgaSBvZiB0aGlzLmJkVmFyVHJpcGxldFN0b3JlKWRvY3VtZW50LmJvZHkuc3R5bGUuc2V0UHJvcGVydHkoaS5jc3NWYXJOYW1lLHRoaXMuZ29CcmlnaHQ/aS5icmlnaHRWYWx1ZTppLmRhcmtWYWx1ZSl9KX0pfWdldCBkZWZhdWx0U3R5bGVzKCl7cmV0dXJuIEh1LnN0YXRpY1N0eWxlc31jc3NGb3JEZXNrdG9wKHQpe3JldHVybiB3MSh5cy5jc3NGb3JEZXNrdG9wKHQpKX1jc3NGb3JOb3RlYm9vayh0KXtyZXR1cm4gdzEoeXMuY3NzRm9yTm90ZWJvb2sodCkpfWNzc0ZvclRhYmxldCh0KXtyZXR1cm4gdzEoeXMuY3NzRm9yVGFibGV0KHQpKX1jc3NGb3JQaGFibGV0KHQpe3JldHVybiB3MSh5cy5jc3NGb3JQaGFibGV0KHQpKX1jc3NGb3JQaG9uZSh0KXtyZXR1cm4gdzEoeXMuY3NzRm9yUGhvbmUodCkpfWJkVGhlbWUodCxyKXtsZXQgaSxhO3dzLmdldEdsb2JhbERvbVRvb2xzU3luYygpP2E9d3MuZ2V0R2xvYmFsRG9tVG9vbHNTeW5jKCkudGhlbWVNYW5hZ2VyLmdvQnJpZ2h0Qm9vbGVhbj90OnI6YT1yO2xldCBuPXRoaXMuYmRWYXJUcmlwbGV0U3RvcmUuZmluZChvPT5vLmRhcmtWYWx1ZT09PXImJm8uYnJpZ2h0VmFsdWU9PT10KTtpZihuKWk9bi5jc3NWYXJOYW1lO2Vsc2V7bGV0IG89e2Nzc1Zhck5hbWU6YC0tJHtSRy51bmkoKX1gLGJyaWdodFZhbHVlOnQsZGFya1ZhbHVlOnJ9O3RoaXMuYmRWYXJUcmlwbGV0U3RvcmUucHVzaChvKSx0aGlzLmRvbXRvb2xzUHJvbWlzZS50aGVuKGFzeW5jIHM9Pnthd2FpdCBzLmRvbVJlYWR5LnByb21pc2UsZG9jdW1lbnQuYm9keS5zdHlsZS5zZXRQcm9wZXJ0eShvLmNzc1Zhck5hbWUsYSl9KSxpPW8uY3NzVmFyTmFtZX1yZXR1cm4gRTAudW5zYWZlQ1NTKGB2YXIoJHtpfSwgJHthfSlgKX1jc3NHcmlkQ29sdW1ucz0odCxyKT0+e2xldCBpPSIiO2ZvcihsZXQgYT0wO2E8dDthKyspaSs9YCBjYWxjKCgxMDAlLyR7dH0pIC0gKCR7cioodC0xKX1weC8ke3R9KSlgO3JldHVybiBFMC51bnNhZmVDU1MoaSl9fX0pO3ZhciBIRyx0VHIscUcsclRyLHBEZSxyUyxqRyxpVHIsYVRyLGhEZT1wKCgpPT57UW8oKTtIRz1TeW1ib2wuZm9yKCIiKSx0VHI9ZT0+e2lmKGU/LnI9PT1IRylyZXR1cm4gZT8uXyRsaXRTdGF0aWMkfSxxRz1lPT4oe18kbGl0U3RhdGljJDplLHI6SEd9KSxyVHI9KGUsLi4udCk9Pih7XyRsaXRTdGF0aWMkOnQucmVkdWNlKChyLGksYSk9PnIrKG49PntpZihuLl8kbGl0U3RhdGljJCE9PXZvaWQgMClyZXR1cm4gbi5fJGxpdFN0YXRpYyQ7dGhyb3cgRXJyb3IoYFZhbHVlIHBhc3NlZCB0byAnbGl0ZXJhbCcgZnVuY3Rpb24gbXVzdCBiZSBhICdsaXRlcmFsJyByZXN1bHQ6ICR7bn0uIFVzZSAndW5zYWZlU3RhdGljJyB0byBwYXNzIG5vbi1saXRlcmFsIHZhbHVlcywgYnV0CiAgICAgICAgICAgIHRha2UgY2FyZSB0byBlbnN1cmUgcGFnZSBzZWN1cml0eS5gKX0pKGkpK2VbYSsxXSxlWzBdKSxyOkhHfSkscERlPW5ldyBNYXAsclM9ZT0+KHQsLi4ucik9PntsZXQgaT1yLmxlbmd0aCxhLG4sbz1bXSxzPVtdLGwsYz0wLHU9ITE7Zm9yKDtjPGk7KXtmb3IobD10W2NdO2M8aSYmKG49cltjXSwoYT10VHIobikpIT09dm9pZCAwKTspbCs9YSt0WysrY10sdT0hMDtjIT09aSYmcy5wdXNoKG4pLG8ucHVzaChsKSxjKyt9aWYoYz09PWkmJm8ucHVzaCh0W2ldKSx1KXtsZXQgZD1vLmpvaW4oIiQkbGl0JCQiKTsodD1wRGUuZ2V0KGQpKT09PXZvaWQgMCYmKG8ucmF3PW8scERlLnNldChkLHQ9bykpLHI9c31yZXR1cm4gZSh0LC4uLnIpfSxqRz1yUyh1ciksaVRyPXJTKElGKSxhVHI9clMoUEYpfSk7dmFyIGZEZT1wKCgpPT57aERlKCl9KTt2YXIgTXMsZWksZ28sTmw9cCgoKT0+e01zPXtBVFRSSUJVVEU6MSxDSElMRDoyLFBST1BFUlRZOjMsQk9PTEVBTl9BVFRSSUJVVEU6NCxFVkVOVDo1LEVMRU1FTlQ6Nn0sZWk9ZT0+KC4uLnQpPT4oe18kbGl0RGlyZWN0aXZlJDplLHZhbHVlczp0fSksZ289Y2xhc3N7Y29uc3RydWN0b3IodCl7fWdldCBfJEFVKCl7cmV0dXJuIHRoaXMuXyRBTS5fJEFVfV8kQVQodCxyLGkpe3RoaXMuXyRDdD10LHRoaXMuXyRBTT1yLHRoaXMuXyRDaT1pfV8kQVModCxyKXtyZXR1cm4gdGhpcy51cGRhdGUodCxyKX11cGRhdGUodCxyKXtyZXR1cm4gdGhpcy5yZW5kZXIoLi4ucil9fX0pO3ZhciBxdSxWRyxtRGU9cCgoKT0+e1FvKCk7TmwoKTtxdT1jbGFzcyBleHRlbmRzIGdve2NvbnN0cnVjdG9yKHQpe2lmKHN1cGVyKHQpLHRoaXMuaXQ9YjEsdC50eXBlIT09TXMuQ0hJTEQpdGhyb3cgRXJyb3IodGhpcy5jb25zdHJ1Y3Rvci5kaXJlY3RpdmVOYW1lKyIoKSBjYW4gb25seSBiZSB1c2VkIGluIGNoaWxkIGJpbmRpbmdzIil9cmVuZGVyKHQpe2lmKHQ9PT1iMXx8dD09bnVsbClyZXR1cm4gdGhpcy5fdD12b2lkIDAsdGhpcy5pdD10O2lmKHQ9PT1vMSlyZXR1cm4gdDtpZih0eXBlb2YgdCE9InN0cmluZyIpdGhyb3cgRXJyb3IodGhpcy5jb25zdHJ1Y3Rvci5kaXJlY3RpdmVOYW1lKyIoKSBjYWxsZWQgd2l0aCBhIG5vbi1zdHJpbmcgdmFsdWUiKTtpZih0PT09dGhpcy5pdClyZXR1cm4gdGhpcy5fdDt0aGlzLml0PXQ7bGV0IHI9W3RdO3JldHVybiByLnJhdz1yLHRoaXMuX3Q9e18kbGl0VHlwZSQ6dGhpcy5jb25zdHJ1Y3Rvci5yZXN1bHRUeXBlLHN0cmluZ3M6cix2YWx1ZXM6W119fX07cXUuZGlyZWN0aXZlTmFtZT0idW5zYWZlSFRNTCIscXUucmVzdWx0VHlwZT0xO1ZHPWVpKHF1KX0pO3ZhciBnRGU9cCgoKT0+e21EZSgpfSk7dmFyIGhpLFVHPXAoKCk9PntoaT1lPT4odCxyKT0+e3IhPT12b2lkIDA/ci5hZGRJbml0aWFsaXplcigoKT0+e2N1c3RvbUVsZW1lbnRzLmRlZmluZShlLHQpfSk6Y3VzdG9tRWxlbWVudHMuZGVmaW5lKGUsdCl9fSk7dmFyIGJEZT1wKCgpPT57VUcoKX0pO2Z1bmN0aW9uIGFyKGUpe3JldHVybiBoMyh7Li4uZSxzdGF0ZTohMCxhdHRyaWJ1dGU6ITF9KX12YXIgdkRlPXAoKCk9PntveCgpO30pO2Z1bmN0aW9uIG5UcihlKXtyZXR1cm4odCxyKT0+e2xldCBpPXR5cGVvZiB0PT0iZnVuY3Rpb24iP3Q6dFtyXTtPYmplY3QuYXNzaWduKGksZSl9fXZhciB4RGU9cCgoKT0+e30pO3ZhciBibyxqdT1wKCgpPT57Ym89KGUsdCxyKT0+KHIuY29uZmlndXJhYmxlPSEwLHIuZW51bWVyYWJsZT0hMCxSZWZsZWN0LmRlY29yYXRlJiZ0eXBlb2YgdCE9Im9iamVjdCImJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShlLHQscikscil9KTtmdW5jdGlvbiBXRyhlLHQpe3JldHVybihyLGksYSk9PntsZXQgbj1vPT5vLnJlbmRlclJvb3Q/LnF1ZXJ5U2VsZWN0b3IoZSk/P251bGw7aWYodCl7bGV0e2dldDpvLHNldDpzfT10eXBlb2YgaT09Im9iamVjdCI/cjphPz8oKCk9PntsZXQgbD1TeW1ib2woKTtyZXR1cm57Z2V0KCl7cmV0dXJuIHRoaXNbbF19LHNldChjKXt0aGlzW2xdPWN9fX0pKCk7cmV0dXJuIGJvKHIsaSx7Z2V0KCl7bGV0IGw9by5jYWxsKHRoaXMpO3JldHVybiBsPT09dm9pZCAwJiYobD1uKHRoaXMpLChsIT09bnVsbHx8dGhpcy5oYXNVcGRhdGVkKSYmcy5jYWxsKHRoaXMsbCkpLGx9fSl9cmV0dXJuIGJvKHIsaSx7Z2V0KCl7cmV0dXJuIG4odGhpcyl9fSl9fXZhciB5RGU9cCgoKT0+e2p1KCk7fSk7ZnVuY3Rpb24gR0coZSl7cmV0dXJuKHQscik9PmJvKHQscix7Z2V0KCl7cmV0dXJuKHRoaXMucmVuZGVyUm9vdD8/KG9Ucj8/PWRvY3VtZW50LmNyZWF0ZURvY3VtZW50RnJhZ21lbnQoKSkpLnF1ZXJ5U2VsZWN0b3JBbGwoZSl9fSl9dmFyIG9Ucix3RGU9cCgoKT0+e2p1KCk7fSk7ZnVuY3Rpb24gWUcoZSl7cmV0dXJuKHQscik9PmJvKHQscix7YXN5bmMgZ2V0KCl7cmV0dXJuIGF3YWl0IHRoaXMudXBkYXRlQ29tcGxldGUsdGhpcy5yZW5kZXJSb290Py5xdWVyeVNlbGVjdG9yKGUpPz9udWxsfX0pfXZhciBNRGU9cCgoKT0+e2p1KCk7fSk7ZnVuY3Rpb24gc1RyKGUpe3JldHVybih0LHIpPT57bGV0e3Nsb3Q6aSxzZWxlY3RvcjphfT1lPz97fSxuPSJzbG90IisoaT9gW25hbWU9JHtpfV1gOiI6bm90KFtuYW1lXSkiKTtyZXR1cm4gYm8odCxyLHtnZXQoKXtsZXQgbz10aGlzLnJlbmRlclJvb3Q/LnF1ZXJ5U2VsZWN0b3Iobikscz1vPy5hc3NpZ25lZEVsZW1lbnRzKGUpPz9bXTtyZXR1cm4gYT09PXZvaWQgMD9zOnMuZmlsdGVyKGw9PmwubWF0Y2hlcyhhKSl9fSl9fXZhciBrRGU9cCgoKT0+e2p1KCk7fSk7ZnVuY3Rpb24gbFRyKGUpe3JldHVybih0LHIpPT57bGV0e3Nsb3Q6aX09ZT8/e30sYT0ic2xvdCIrKGk/YFtuYW1lPSR7aX1dYDoiOm5vdChbbmFtZV0pIik7cmV0dXJuIGJvKHQscix7Z2V0KCl7cmV0dXJuIHRoaXMucmVuZGVyUm9vdD8ucXVlcnlTZWxlY3RvcihhKT8uYXNzaWduZWROb2RlcyhlKT8/W119fSl9fXZhciBTRGU9cCgoKT0+e2p1KCk7fSk7dmFyIHpEZT1wKCgpPT57VUcoKTtveCgpO3ZEZSgpO3hEZSgpO3lEZSgpO3dEZSgpO01EZSgpO2tEZSgpO1NEZSgpfSk7dmFyIENEZSxpUyxEaSxURGU9cCgoKT0+e0JHKCk7Q0RlPWZ1bmN0aW9uKGUsdCxyLGksYSxuKXtmdW5jdGlvbiBvKHkpe2lmKHkhPT12b2lkIDAmJnR5cGVvZiB5IT0iZnVuY3Rpb24iKXRocm93IG5ldyBUeXBlRXJyb3IoIkZ1bmN0aW9uIGV4cGVjdGVkIik7cmV0dXJuIHl9Zm9yKHZhciBzPWkua2luZCxsPXM9PT0iZ2V0dGVyIj8iZ2V0IjpzPT09InNldHRlciI/InNldCI6InZhbHVlIixjPSF0JiZlP2kuc3RhdGljP2U6ZS5wcm90b3R5cGU6bnVsbCx1PXR8fChjP09iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoYyxpLm5hbWUpOnt9KSxkLGg9ITEsZj1yLmxlbmd0aC0xO2Y+PTA7Zi0tKXt2YXIgeD17fTtmb3IodmFyIHYgaW4gaSl4W3ZdPXY9PT0iYWNjZXNzIj97fTppW3ZdO2Zvcih2YXIgdiBpbiBpLmFjY2Vzcyl4LmFjY2Vzc1t2XT1pLmFjY2Vzc1t2XTt4LmFkZEluaXRpYWxpemVyPWZ1bmN0aW9uKHkpe2lmKGgpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGFkZCBpbml0aWFsaXplcnMgYWZ0ZXIgZGVjb3JhdGlvbiBoYXMgY29tcGxldGVkIik7bi5wdXNoKG8oeXx8bnVsbCkpfTt2YXIgYj0oMCxyW2ZdKShzPT09ImFjY2Vzc29yIj97Z2V0OnUuZ2V0LHNldDp1LnNldH06dVtsXSx4KTtpZihzPT09ImFjY2Vzc29yIil7aWYoYj09PXZvaWQgMCljb250aW51ZTtpZihiPT09bnVsbHx8dHlwZW9mIGIhPSJvYmplY3QiKXRocm93IG5ldyBUeXBlRXJyb3IoIk9iamVjdCBleHBlY3RlZCIpOyhkPW8oYi5nZXQpKSYmKHUuZ2V0PWQpLChkPW8oYi5zZXQpKSYmKHUuc2V0PWQpLChkPW8oYi5pbml0KSkmJmEudW5zaGlmdChkKX1lbHNlKGQ9byhiKSkmJihzPT09ImZpZWxkIj9hLnVuc2hpZnQoZCk6dVtsXT1kKX1jJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoYyxpLm5hbWUsdSksaD0hMH0saVM9ZnVuY3Rpb24oZSx0LHIpe2Zvcih2YXIgaT1hcmd1bWVudHMubGVuZ3RoPjIsYT0wO2E8dC5sZW5ndGg7YSsrKXI9aT90W2FdLmNhbGwoZSxyKTp0W2FdLmNhbGwoZSk7cmV0dXJuIGk/cjp2b2lkIDB9LERpPSgoKT0+e2xldCBlPUUwLkxpdEVsZW1lbnQsdCxyPVtdLGk9W10sYSxuPVtdLG89W107cmV0dXJuIGNsYXNzIGV4dGVuZHMgZXtzdGF0aWN7bGV0IGw9dHlwZW9mIFN5bWJvbD09ImZ1bmN0aW9uIiYmU3ltYm9sLm1ldGFkYXRhP09iamVjdC5jcmVhdGUoZVtTeW1ib2wubWV0YWRhdGFdPz9udWxsKTp2b2lkIDA7dD1bRTAucHJvcGVydHkoe3R5cGU6Qm9vbGVhbn0pXSxhPVtFMC5wcm9wZXJ0eSgpXSxDRGUodGhpcyxudWxsLHQse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJnb0JyaWdodCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6Yz0+ImdvQnJpZ2h0ImluIGMsZ2V0OmM9PmMuZ29CcmlnaHQsc2V0OihjLHUpPT57Yy5nb0JyaWdodD11fX0sbWV0YWRhdGE6bH0scixpKSxDRGUodGhpcyxudWxsLGEse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJkb210b29scyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6Yz0+ImRvbXRvb2xzImluIGMsZ2V0OmM9PmMuZG9tdG9vbHMsc2V0OihjLHUpPT57Yy5kb210b29scz11fX0sbWV0YWRhdGE6bH0sbixvKSxsJiZPYmplY3QuZGVmaW5lUHJvcGVydHkodGhpcyxTeW1ib2wubWV0YWRhdGEse2VudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwLHZhbHVlOmx9KX0jZT1pUyh0aGlzLHIsITEpO2dldCBnb0JyaWdodCgpe3JldHVybiB0aGlzLiNlfXNldCBnb0JyaWdodChsKXt0aGlzLiNlPWx9ZG9tdG9vbHNQcm9taXNlPWlTKHRoaXMsaSk7I3Q9aVModGhpcyxuLHZvaWQgMCk7Z2V0IGRvbXRvb2xzKCl7cmV0dXJuIHRoaXMuI3R9c2V0IGRvbXRvb2xzKGwpe3RoaXMuI3Q9bH1yeFN1YnNjcmlwdGlvbnM9KGlTKHRoaXMsbyksW10pO3RoZW1lU3Vic2NyaXB0aW9uO2VsZW1lbnREb21SZWFkeURlZmVycmVkPW1vLnBsdWdpbnMuc21hcnRwcm9taXNlLmRlZmVyKCk7ZWxlbWVudERvbVJlYWR5PXRoaXMuZWxlbWVudERvbVJlYWR5RGVmZXJyZWQucHJvbWlzZTtjb25zdHJ1Y3RvcihsPXt9KXtzdXBlcigpLHRoaXMuZG9tdG9vbHNQcm9taXNlPW1vLmVsZW1lbnRCYXNpYy5zZXR1cCh0aGlzLGwpLHRoaXMuZG9tdG9vbHNQcm9taXNlLnRoZW4oYz0+e3RoaXMuZG9tdG9vbHM9Y30pfWFzeW5jIGNvbm5lY3RlZENhbGxiYWNrKCl7c3VwZXIuY29ubmVjdGVkQ2FsbGJhY2soKTtsZXQgbD1hd2FpdCB0aGlzLmRvbXRvb2xzUHJvbWlzZTt0aGlzLnRoZW1lU3Vic2NyaXB0aW9uPWwudGhlbWVNYW5hZ2VyLnRoZW1lT2JzZXJ2YWJsZS5zdWJzY3JpYmUoYz0+e3RoaXMuZ29CcmlnaHQ9Yyx0aGlzLnRoZW1lQ2hhbmdlZCYmdGhpcy50aGVtZUNoYW5nZWQoYyl9KSx0aGlzLnJ4U3Vic2NyaXB0aW9ucy5wdXNoKHRoaXMudGhlbWVTdWJzY3JpcHRpb24pO2ZvcihsZXQgYyBvZiB0aGlzLnN0YXJ0dXBGdW5jdGlvbnMpYXdhaXQgYygpO3RoaXMuZGlzcGF0Y2hFdmVudChuZXcgQ3VzdG9tRXZlbnQoImRlZXNFbGVtZW50Q29ubmVjdGVkIikpfWZpcnN0VXBkYXRlZChsKXtzdXBlci5maXJzdFVwZGF0ZWQobCksdGhpcy5lbGVtZW50RG9tUmVhZHlEZWZlcnJlZC5yZXNvbHZlKCl9c3RhcnR1cEZ1bmN0aW9ucz1bXTtyZWdpc3RlclN0YXJ0dXBGdW5jdGlvbihsKXt0aGlzLnN0YXJ0dXBGdW5jdGlvbnMucHVzaChsKX1nYXJiYWdlRnVuY3Rpb25zPVtdO3JlZ2lzdGVyR2FyYmFnZUZ1bmN0aW9uKGwpe3RoaXMuZ2FyYmFnZUZ1bmN0aW9ucy5wdXNoKGwpfWFzeW5jIGRpc2Nvbm5lY3RlZENhbGxiYWNrKCl7YXdhaXQgdGhpcy5kb210b29sc1Byb21pc2Usc3VwZXIuZGlzY29ubmVjdGVkQ2FsbGJhY2soKTtmb3IobGV0IGwgb2YgdGhpcy5yeFN1YnNjcmlwdGlvbnMpbC51bnN1YnNjcmliZSgpO2ZvcihsZXQgbCBvZiB0aGlzLmdhcmJhZ2VGdW5jdGlvbnMpYXdhaXQgbCgpO3RoaXMuZGlzcGF0Y2hFdmVudChuZXcgQ3VzdG9tRXZlbnQoImRlZXNFbGVtZW50RGlzY29ubmVjdGVkIikpfX19KSgpfSk7dmFyIGNUcixfRGUsWkcsZFRyLHVUcixwVHIsaFRyLGZUcixYRyxMRGUsRmwsbDIsbVRyLFU3LFFHLFc3LEpHLFZ1PXAoKCk9PntRbygpOyh7STpjVHJ9PU5GKSxfRGU9ZT0+ZSxaRz1lPT5lPT09bnVsbHx8dHlwZW9mIGUhPSJvYmplY3QiJiZ0eXBlb2YgZSE9ImZ1bmN0aW9uIixkVHI9e0hUTUw6MSxTVkc6MixNQVRITUw6M30sdVRyPShlLHQpPT50PT09dm9pZCAwP2U/Ll8kbGl0VHlwZSQhPT12b2lkIDA6ZT8uXyRsaXRUeXBlJD09PXQscFRyPWU9PmU/Ll8kbGl0VHlwZSQ/LmghPW51bGwsaFRyPWU9PmU/Ll8kbGl0RGlyZWN0aXZlJCE9PXZvaWQgMCxmVHI9ZT0+ZT8uXyRsaXREaXJlY3RpdmUkLFhHPWU9PmUuc3RyaW5ncz09PXZvaWQgMCxMRGU9KCk9PmRvY3VtZW50LmNyZWF0ZUNvbW1lbnQoIiIpLEZsPShlLHQscik9PntsZXQgaT1lLl8kQUEucGFyZW50Tm9kZSxhPXQ9PT12b2lkIDA/ZS5fJEFCOnQuXyRBQTtpZihyPT09dm9pZCAwKXtsZXQgbj1pLmluc2VydEJlZm9yZShMRGUoKSxhKSxvPWkuaW5zZXJ0QmVmb3JlKExEZSgpLGEpO3I9bmV3IGNUcihuLG8sZSxlLm9wdGlvbnMpfWVsc2V7bGV0IG49ci5fJEFCLm5leHRTaWJsaW5nLG89ci5fJEFNLHM9byE9PWU7aWYocyl7bGV0IGw7ci5fJEFRPy4oZSksci5fJEFNPWUsci5fJEFQIT09dm9pZCAwJiYobD1lLl8kQVUpIT09by5fJEFVJiZyLl8kQVAobCl9aWYobiE9PWF8fHMpe2xldCBsPXIuXyRBQTtmb3IoO2whPT1uOyl7bGV0IGM9X0RlKGwpLm5leHRTaWJsaW5nO19EZShpKS5pbnNlcnRCZWZvcmUobCxhKSxsPWN9fX1yZXR1cm4gcn0sbDI9KGUsdCxyPWUpPT4oZS5fJEFJKHQsciksZSksbVRyPXt9LFU3PShlLHQ9bVRyKT0+ZS5fJEFIPXQsUUc9ZT0+ZS5fJEFILFc3PWU9PntlLl8kQVIoKSxlLl8kQUEucmVtb3ZlKCl9LEpHPWU9PntlLl8kQVIoKX19KTtmdW5jdGlvbiBnVHIoZSl7dGhpcy5fJEFOIT09dm9pZCAwPyhhUyh0aGlzKSx0aGlzLl8kQU09ZSxBRGUodGhpcykpOnRoaXMuXyRBTT1lfWZ1bmN0aW9uIGJUcihlLHQ9ITEscj0wKXtsZXQgaT10aGlzLl8kQUgsYT10aGlzLl8kQU47aWYoYSE9PXZvaWQgMCYmYS5zaXplIT09MClpZih0KWlmKEFycmF5LmlzQXJyYXkoaSkpZm9yKGxldCBuPXI7bjxpLmxlbmd0aDtuKyspRzcoaVtuXSwhMSksYVMoaVtuXSk7ZWxzZSBpIT1udWxsJiYoRzcoaSwhMSksYVMoaSkpO2Vsc2UgRzcodGhpcyxlKX12YXIgRzcsYVMsQURlLHZUcixPbixuUz1wKCgpPT57VnUoKTtObCgpO05sKCk7Rzc9KGUsdCk9PntsZXQgcj1lLl8kQU47aWYocj09PXZvaWQgMClyZXR1cm4hMTtmb3IobGV0IGkgb2YgcilpLl8kQU8/Lih0LCExKSxHNyhpLHQpO3JldHVybiEwfSxhUz1lPT57bGV0IHQscjtkb3tpZigodD1lLl8kQU0pPT09dm9pZCAwKWJyZWFrO3I9dC5fJEFOLHIuZGVsZXRlKGUpLGU9dH13aGlsZShyPy5zaXplPT09MCl9LEFEZT1lPT57Zm9yKGxldCB0O3Q9ZS5fJEFNO2U9dCl7bGV0IHI9dC5fJEFOO2lmKHI9PT12b2lkIDApdC5fJEFOPXI9bmV3IFNldDtlbHNlIGlmKHIuaGFzKGUpKWJyZWFrO3IuYWRkKGUpLHZUcih0KX19O3ZUcj1lPT57ZS50eXBlPT1Ncy5DSElMRCYmKGUuXyRBUD8/PWJUcixlLl8kQVE/Pz1nVHIpfSxPbj1jbGFzcyBleHRlbmRzIGdve2NvbnN0cnVjdG9yKCl7c3VwZXIoLi4uYXJndW1lbnRzKSx0aGlzLl8kQU49dm9pZCAwfV8kQVQodCxyLGkpe3N1cGVyLl8kQVQodCxyLGkpLEFEZSh0aGlzKSx0aGlzLmlzQ29ubmVjdGVkPXQuXyRBVX1fJEFPKHQscj0hMCl7dCE9PXRoaXMuaXNDb25uZWN0ZWQmJih0aGlzLmlzQ29ubmVjdGVkPXQsdD90aGlzLnJlY29ubmVjdGVkPy4oKTp0aGlzLmRpc2Nvbm5lY3RlZD8uKCkpLHImJihHNyh0aGlzLHQpLGFTKHRoaXMpKX1zZXRWYWx1ZSh0KXtpZihYRyh0aGlzLl8kQ3QpKXRoaXMuXyRDdC5fJEFJKHQsdGhpcyk7ZWxzZXtsZXQgcj1bLi4udGhpcy5fJEN0Ll8kQUhdO3JbdGhpcy5fJENpXT10LHRoaXMuXyRDdC5fJEFJKHIsdGhpcywwKX19ZGlzY29ubmVjdGVkKCl7fXJlY29ubmVjdGVkKCl7fX19KTt2YXIgb1M9cCgoKT0+e25TKCl9KTt2YXIgS0csRERlLHhUcixFRGU9cCgoKT0+e1UyKCk7b1MoKTtLRz1jbGFzcyBleHRlbmRzIE9ue3Byb21pc2U7aGFzUHJvbWlzZVNldHRsZWQ9ITE7cmVuZGVyKHQpe3JldHVybiB0aGlzLnByb21pc2UhPT10JiYodGhpcy5wcm9taXNlPXQsdGhpcy5pc0Nvbm5lY3RlZCYmdGhpcy5oYW5kbGVQcm9taXNlKHQpKSxvMX1oYW5kbGVQcm9taXNlKHQpe3RoaXMuaGFzUHJvbWlzZVNldHRsZWQ9ITEsdC50aGVuKHI9Pnt0aGlzLnByb21pc2U9PT10JiYhdGhpcy5oYXNQcm9taXNlU2V0dGxlZCYmKHRoaXMuc2V0VmFsdWUociksdGhpcy5oYXNQcm9taXNlU2V0dGxlZD0hMCl9KS5jYXRjaChyPT57dGhpcy5wcm9taXNlPT09dCYmIXRoaXMuaGFzUHJvbWlzZVNldHRsZWQmJih0aGlzLnNldFZhbHVlKHIpLHRoaXMuaGFzUHJvbWlzZVNldHRsZWQ9ITApfSl9ZGlzY29ubmVjdGVkKCl7dGhpcy5oYXNQcm9taXNlU2V0dGxlZD0hMH1yZWNvbm5lY3RlZCgpe3RoaXMuaGFzUHJvbWlzZVNldHRsZWR8fHRoaXMuaGFuZGxlUHJvbWlzZSh0aGlzLnByb21pc2UpfX0sRERlPWVpKEtHKSx4VHI9ZT0+RERlKGUoKSl9KTt2YXIgZVkseVRyLCREZT1wKCgpPT57VTIoKTtvUygpO3QyKCk7ZVk9Y2xhc3MgZXh0ZW5kcyBPbntvYnNlcnZhYmxlO3N1Yj1udWxsO3JlbmRlcih0KXtyZXR1cm4gdGhpcy5vYnNlcnZhYmxlIT09dCYmKHRoaXMuc3ViPy51bnN1YnNjcmliZSgpLHRoaXMub2JzZXJ2YWJsZT10LHRoaXMuaXNDb25uZWN0ZWQmJnRoaXMuc3Vic2NyaWJlKHQpKSxvMX1zdWJzY3JpYmUodCl7dGhpcy5zdWI9dC5zdWJzY3JpYmUocj0+e3RoaXMuc2V0VmFsdWUocil9KX1kaXNjb25uZWN0ZWQoKXt0aGlzLnN1Yj8udW5zdWJzY3JpYmUoKX1yZWNvbm5lY3RlZCgpe3RoaXMuc3Vic2NyaWJlKHRoaXMub2JzZXJ2YWJsZSl9fSx5VHI9ZWkoZVkpfSk7dmFyIHRZLElEZSxQRGU9cCgoKT0+e1UyKCk7b1MoKTt0MigpO3RZPWNsYXNzIGV4dGVuZHMgT257b2JzZXJ2YWJsZTt0ZW1wbGF0ZUZuO3N1Yj1udWxsO3JlbmRlcih0LHIpe3JldHVybih0aGlzLm9ic2VydmFibGUhPT10fHx0aGlzLnRlbXBsYXRlRm4hPT1yKSYmKHRoaXMuc3ViPy51bnN1YnNjcmliZSgpLHRoaXMub2JzZXJ2YWJsZT10LHRoaXMudGVtcGxhdGVGbj1yLHRoaXMuaXNDb25uZWN0ZWQmJnRoaXMuc3RhcnRTdWJzY3JpcHRpb24oKSksbzF9c3RhcnRTdWJzY3JpcHRpb24oKXt0aGlzLnN1Yj10aGlzLm9ic2VydmFibGUuc3Vic2NyaWJlKHQ9PntsZXQgcj10aGlzLnRlbXBsYXRlRm4odCk7dGhpcy5zZXRWYWx1ZShyKX0pfWRpc2Nvbm5lY3RlZCgpe3RoaXMuc3ViPy51bnN1YnNjcmliZSgpfXJlY29ubmVjdGVkKCl7dGhpcy5zdGFydFN1YnNjcmlwdGlvbigpfX0sSURlPWVpKHRZKX0pO3ZhciByWSxkNix1NixpWT1wKCgpPT57clk9YXN5bmMoZSx0KT0+e2ZvciBhd2FpdChsZXQgciBvZiBlKWlmKGF3YWl0IHQocik9PT0hMSlyZXR1cm59LGQ2PWNsYXNze2NvbnN0cnVjdG9yKHQpe3RoaXMuRz10fWRpc2Nvbm5lY3QoKXt0aGlzLkc9dm9pZCAwfXJlY29ubmVjdCh0KXt0aGlzLkc9dH1kZXJlZigpe3JldHVybiB0aGlzLkd9fSx1Nj1jbGFzc3tjb25zdHJ1Y3Rvcigpe3RoaXMuWT12b2lkIDAsdGhpcy5aPXZvaWQgMH1nZXQoKXtyZXR1cm4gdGhpcy5ZfXBhdXNlKCl7dGhpcy5ZPz89bmV3IFByb21pc2UodD0+dGhpcy5aPXQpfXJlc3VtZSgpe3RoaXMuWj8uKCksdGhpcy5ZPXRoaXMuWj12b2lkIDB9fX0pO3ZhciBORGUsRkRlLHNTLGFZLE9EZT1wKCgpPT57UW8oKTtWdSgpO25TKCk7aVkoKTtObCgpO05EZT1lPT4hWkcoZSkmJnR5cGVvZiBlLnRoZW49PSJmdW5jdGlvbiIsRkRlPTEwNzM3NDE4MjMsc1M9Y2xhc3MgZXh0ZW5kcyBPbntjb25zdHJ1Y3Rvcigpe3N1cGVyKC4uLmFyZ3VtZW50cyksdGhpcy5fJEN3dD1GRGUsdGhpcy5fJENidD1bXSx0aGlzLl8kQ0s9bmV3IGQ2KHRoaXMpLHRoaXMuXyRDWD1uZXcgdTZ9cmVuZGVyKC4uLnQpe3JldHVybiB0LmZpbmQocj0+IU5EZShyKSk/P28xfXVwZGF0ZSh0LHIpe2xldCBpPXRoaXMuXyRDYnQsYT1pLmxlbmd0aDt0aGlzLl8kQ2J0PXI7bGV0IG49dGhpcy5fJENLLG89dGhpcy5fJENYO3RoaXMuaXNDb25uZWN0ZWR8fHRoaXMuZGlzY29ubmVjdGVkKCk7Zm9yKGxldCBzPTA7czxyLmxlbmd0aCYmIShzPnRoaXMuXyRDd3QpO3MrKyl7bGV0IGw9cltzXTtpZighTkRlKGwpKXJldHVybiB0aGlzLl8kQ3d0PXMsbDtzPGEmJmw9PT1pW3NdfHwodGhpcy5fJEN3dD1GRGUsYT0wLFByb21pc2UucmVzb2x2ZShsKS50aGVuKGFzeW5jIGM9Pntmb3IoO28uZ2V0KCk7KWF3YWl0IG8uZ2V0KCk7bGV0IHU9bi5kZXJlZigpO2lmKHUhPT12b2lkIDApe2xldCBkPXUuXyRDYnQuaW5kZXhPZihsKTtkPi0xJiZkPHUuXyRDd3QmJih1Ll8kQ3d0PWQsdS5zZXRWYWx1ZShjKSl9fSkpfXJldHVybiBvMX1kaXNjb25uZWN0ZWQoKXt0aGlzLl8kQ0suZGlzY29ubmVjdCgpLHRoaXMuXyRDWC5wYXVzZSgpfXJlY29ubmVjdGVkKCl7dGhpcy5fJENLLnJlY29ubmVjdCh0aGlzKSx0aGlzLl8kQ1gucmVzdW1lKCl9fSxhWT1laShzUyl9KTt2YXIgUkRlPXAoKCk9PntPRGUoKX0pO3ZhciBVdSx3VHIsQkRlPXAoKCk9PntRbygpO25TKCk7aVkoKTtObCgpO1V1PWNsYXNzIGV4dGVuZHMgT257Y29uc3RydWN0b3IoKXtzdXBlciguLi5hcmd1bWVudHMpLHRoaXMuXyRDSz1uZXcgZDYodGhpcyksdGhpcy5fJENYPW5ldyB1Nn1yZW5kZXIodCxyKXtyZXR1cm4gbzF9dXBkYXRlKHQsW3IsaV0pe2lmKHRoaXMuaXNDb25uZWN0ZWR8fHRoaXMuZGlzY29ubmVjdGVkKCkscj09PXRoaXMuXyRDSilyZXR1cm4gbzE7dGhpcy5fJENKPXI7bGV0IGE9MCx7XyRDSzpuLF8kQ1g6b309dGhpcztyZXR1cm4gclkocixhc3luYyBzPT57Zm9yKDtvLmdldCgpOylhd2FpdCBvLmdldCgpO2xldCBsPW4uZGVyZWYoKTtpZihsIT09dm9pZCAwKXtpZihsLl8kQ0ohPT1yKXJldHVybiExO2khPT12b2lkIDAmJihzPWkocyxhKSksbC5jb21taXRWYWx1ZShzLGEpLGErK31yZXR1cm4hMH0pLG8xfWNvbW1pdFZhbHVlKHQscil7dGhpcy5zZXRWYWx1ZSh0KX1kaXNjb25uZWN0ZWQoKXt0aGlzLl8kQ0suZGlzY29ubmVjdCgpLHRoaXMuXyRDWC5wYXVzZSgpfXJlY29ubmVjdGVkKCl7dGhpcy5fJENLLnJlY29ubmVjdCh0aGlzKSx0aGlzLl8kQ1gucmVzdW1lKCl9fSx3VHI9ZWkoVXUpfSk7dmFyIG5ZLEhEZT1wKCgpPT57TmwoKTtCRGUoKTtWdSgpO25ZPWVpKGNsYXNzIGV4dGVuZHMgVXV7Y29uc3RydWN0b3IoZSl7aWYoc3VwZXIoZSksZS50eXBlIT09TXMuQ0hJTEQpdGhyb3cgRXJyb3IoImFzeW5jQXBwZW5kIGNhbiBvbmx5IGJlIHVzZWQgaW4gY2hpbGQgZXhwcmVzc2lvbnMiKX11cGRhdGUoZSx0KXtyZXR1cm4gdGhpcy5fJEN0dD1lLHN1cGVyLnVwZGF0ZShlLHQpfWNvbW1pdFZhbHVlKGUsdCl7dD09PTAmJkpHKHRoaXMuXyRDdHQpO2xldCByPUZsKHRoaXMuXyRDdHQpO2wyKHIsZSl9fSl9KTt2YXIgcURlPXAoKCk9PntIRGUoKX0pO3ZhciBvWSxqRGU9cCgoKT0+e1FvKCk7TmwoKTtWdSgpO29ZPWVpKGNsYXNzIGV4dGVuZHMgZ297Y29uc3RydWN0b3IoKXtzdXBlciguLi5hcmd1bWVudHMpLHRoaXMua2V5PWIxfXJlbmRlcihlLHQpe3JldHVybiB0aGlzLmtleT1lLHR9dXBkYXRlKGUsW3Qscl0pe3JldHVybiB0IT09dGhpcy5rZXkmJihVNyhlKSx0aGlzLmtleT10KSxyfX0pfSk7dmFyIFZEZT1wKCgpPT57akRlKCl9KTt2YXIgVURlLHNZLFdEZT1wKCgpPT57UW8oKTtObCgpO1Z1KCk7VURlPShlLHQscik9PntsZXQgaT1uZXcgTWFwO2ZvcihsZXQgYT10O2E8PXI7YSsrKWkuc2V0KGVbYV0sYSk7cmV0dXJuIGl9LHNZPWVpKGNsYXNzIGV4dGVuZHMgZ297Y29uc3RydWN0b3IoZSl7aWYoc3VwZXIoZSksZS50eXBlIT09TXMuQ0hJTEQpdGhyb3cgRXJyb3IoInJlcGVhdCgpIGNhbiBvbmx5IGJlIHVzZWQgaW4gdGV4dCBleHByZXNzaW9ucyIpfWR0KGUsdCxyKXtsZXQgaTtyPT09dm9pZCAwP3I9dDp0IT09dm9pZCAwJiYoaT10KTtsZXQgYT1bXSxuPVtdLG89MDtmb3IobGV0IHMgb2YgZSlhW29dPWk/aShzLG8pOm8sbltvXT1yKHMsbyksbysrO3JldHVybnt2YWx1ZXM6bixrZXlzOmF9fXJlbmRlcihlLHQscil7cmV0dXJuIHRoaXMuZHQoZSx0LHIpLnZhbHVlc311cGRhdGUoZSxbdCxyLGldKXtsZXQgYT1RRyhlKSx7dmFsdWVzOm4sa2V5czpvfT10aGlzLmR0KHQscixpKTtpZighQXJyYXkuaXNBcnJheShhKSlyZXR1cm4gdGhpcy51dD1vLG47bGV0IHM9dGhpcy51dD8/PVtdLGw9W10sYyx1LGQ9MCxoPWEubGVuZ3RoLTEsZj0wLHg9bi5sZW5ndGgtMTtmb3IoO2Q8PWgmJmY8PXg7KWlmKGFbZF09PT1udWxsKWQrKztlbHNlIGlmKGFbaF09PT1udWxsKWgtLTtlbHNlIGlmKHNbZF09PT1vW2ZdKWxbZl09bDIoYVtkXSxuW2ZdKSxkKyssZisrO2Vsc2UgaWYoc1toXT09PW9beF0pbFt4XT1sMihhW2hdLG5beF0pLGgtLSx4LS07ZWxzZSBpZihzW2RdPT09b1t4XSlsW3hdPWwyKGFbZF0sblt4XSksRmwoZSxsW3grMV0sYVtkXSksZCsrLHgtLTtlbHNlIGlmKHNbaF09PT1vW2ZdKWxbZl09bDIoYVtoXSxuW2ZdKSxGbChlLGFbZF0sYVtoXSksaC0tLGYrKztlbHNlIGlmKGM9PT12b2lkIDAmJihjPVVEZShvLGYseCksdT1VRGUocyxkLGgpKSxjLmhhcyhzW2RdKSlpZihjLmhhcyhzW2hdKSl7bGV0IHY9dS5nZXQob1tmXSksYj12IT09dm9pZCAwP2Fbdl06bnVsbDtpZihiPT09bnVsbCl7bGV0IHk9RmwoZSxhW2RdKTtsMih5LG5bZl0pLGxbZl09eX1lbHNlIGxbZl09bDIoYixuW2ZdKSxGbChlLGFbZF0sYiksYVt2XT1udWxsO2YrK31lbHNlIFc3KGFbaF0pLGgtLTtlbHNlIFc3KGFbZF0pLGQrKztmb3IoO2Y8PXg7KXtsZXQgdj1GbChlLGxbeCsxXSk7bDIodixuW2ZdKSxsW2YrK109dn1mb3IoO2Q8PWg7KXtsZXQgdj1hW2QrK107diE9PW51bGwmJlc3KHYpfXJldHVybiB0aGlzLnV0PW8sVTcoZSxsKSxvMX19KX0pO3ZhciBHRGU9cCgoKT0+e1dEZSgpfSk7dmFyIGxTPXt9O0ZlKGxTLHthc3luY0FwcGVuZDooKT0+blksa2V5ZWQ6KCk9Pm9ZLHJlcGVhdDooKT0+c1kscmVzb2x2ZTooKT0+RERlLHJlc29sdmVFeGVjOigpPT54VHIsc3Vic2NyaWJlOigpPT55VHIsc3Vic2NyaWJlV2l0aFRlbXBsYXRlOigpPT5JRGUsdW50aWw6KCk9PmFZfSk7dmFyIFlEZT1wKCgpPT57RURlKCk7JERlKCk7UERlKCk7UkRlKCk7cURlKCk7VkRlKCk7R0RlKCl9KTt2YXIgWTc9e307RmUoWTcse0RlZXNFbGVtZW50OigpPT5EaSxjc3M6KCk9PloxLGNzc01hbmFnZXI6KCk9PldpLGN1c3RvbUVsZW1lbnQ6KCk9PmhpLGRpcmVjdGl2ZXM6KCk9PmxTLGRvbXRvb2xzOigpPT5tbyxodG1sOigpPT51cixwcm9wZXJ0eTooKT0+aDMscXVlcnk6KCk9PldHLHF1ZXJ5QWxsOigpPT5HRyxxdWVyeUFzeW5jOigpPT5ZRyxyZW5kZXI6KCk9Pk5oLHN0YXRlOigpPT5hcixzdGF0aWM6KCk9PmpHLHVuc2FmZUNTUzooKT0+dzEsdW5zYWZlSFRNTDooKT0+VkcsdW5zYWZlU3RhdGljOigpPT5xR30pO3ZhciBXaSx2bz1wKCgpPT57dURlKCk7VTIoKTtmRGUoKTtnRGUoKTtiRGUoKTt6RGUoKTtlUygpO1REZSgpO1lEZSgpO1dpPXRTLmdldFNpbmdsZXRvbigpfSk7ZnVuY3Rpb24gTVRyKGUsdCl7bGV0IHI9ZmlbZV07cmV0dXJuIHR5cGVvZiByPT0ib2JqZWN0IiYmdD9yW3RdfHwiYXV0byI6dHlwZW9mIHI9PSJudW1iZXIiP3I6ImF1dG8ifXZhciBmaSxrVHIsY1MsS3IseG89cCgoKT0+e2ZpPXtiYXNlOntjb250ZW50OiJhdXRvIixpbnB1dEVsZW1lbnRzOjF9LGZpeGVkOnthcHBCYXI6MTAsc2lkZU1lbnU6MTAsbW9iaWxlTmF2OjI1MH0sYmFja2Ryb3A6e2Ryb3Bkb3duOjE5OTksbW9kYWw6Mjk5OSxjb250ZXh0TWVudTozOTk5fSxvdmVybGF5Ontkcm9wZG93bjoyZTMsbW9kYWw6M2UzLGNvbnRleHRNZW51OjRlMyx0b2FzdDo1ZTN9LG1vZGFsRHJvcGRvd246MzUwMCx3eXNpd3lnTWVudXM6NDUwMH07a1RyPXsiZGVlcy1tb2RhbCI6Zmkub3ZlcmxheS5tb2RhbCwiZGVlcy13aW5kb3dsYXllciI6Zmkub3ZlcmxheS5kcm9wZG93biwiZGVlcy1jb250ZXh0bWVudSI6Zmkub3ZlcmxheS5jb250ZXh0TWVudSwiZGVlcy10b2FzdCI6Zmkub3ZlcmxheS50b2FzdCwiZGVlcy1hcHB1aS1tYWlubWVudSI6ZmkuZml4ZWQuYXBwQmFyLCJkZWVzLW1vYmlsZW5hdmlnYXRpb24iOmZpLmZpeGVkLm1vYmlsZU5hdiwiZGVlcy1zbGFzaC1tZW51IjpmaS53eXNpd3lnTWVudXMsImRlZXMtZm9ybWF0dGluZy1tZW51IjpmaS53eXNpd3lnTWVudXN9LGNTPWNsYXNzIGV7c3RhdGljIGluc3RhbmNlO2FjdGl2ZUVsZW1lbnRzPW5ldyBTZXQ7ZWxlbWVudFpJbmRleE1hcD1uZXcgV2Vha01hcDtjdXJyZW50WkluZGV4PTFlMztjb25zdHJ1Y3Rvcigpe31zdGF0aWMgZ2V0SW5zdGFuY2UoKXtyZXR1cm4gZS5pbnN0YW5jZXx8KGUuaW5zdGFuY2U9bmV3IGUpLGUuaW5zdGFuY2V9Z2V0TmV4dFpJbmRleCgpe3JldHVybiB0aGlzLmN1cnJlbnRaSW5kZXgrPTEwLHRoaXMuY3VycmVudFpJbmRleH1yZWdpc3Rlcih0LHIpe3RoaXMuYWN0aXZlRWxlbWVudHMuYWRkKHQpLHRoaXMuZWxlbWVudFpJbmRleE1hcC5zZXQodCxyKX11bnJlZ2lzdGVyKHQpe3RoaXMuYWN0aXZlRWxlbWVudHMuZGVsZXRlKHQpLHRoaXMuZWxlbWVudFpJbmRleE1hcC5kZWxldGUodCksdGhpcy5hY3RpdmVFbGVtZW50cy5zaXplPT09MCYmKHRoaXMuY3VycmVudFpJbmRleD0xZTMpfWdldEVsZW1lbnRaSW5kZXgodCl7cmV0dXJuIHRoaXMuZWxlbWVudFpJbmRleE1hcC5nZXQodCl9Z2V0QWN0aXZlQ291bnQoKXtyZXR1cm4gdGhpcy5hY3RpdmVFbGVtZW50cy5zaXplfWdldEN1cnJlbnRaSW5kZXgoKXtyZXR1cm4gdGhpcy5jdXJyZW50WkluZGV4fWNsZWFyKCl7dGhpcy5hY3RpdmVFbGVtZW50cy5jbGVhcigpLHRoaXMuZWxlbWVudFpJbmRleE1hcD1uZXcgV2Vha01hcCx0aGlzLmN1cnJlbnRaSW5kZXg9MWUzfWdldEFjdGl2ZUVsZW1lbnRzSW5PcmRlcigpe3JldHVybiBBcnJheS5mcm9tKHRoaXMuYWN0aXZlRWxlbWVudHMpLnNvcnQoKHQscik9PntsZXQgaT10aGlzLmVsZW1lbnRaSW5kZXhNYXAuZ2V0KHQpfHwwLGE9dGhpcy5lbGVtZW50WkluZGV4TWFwLmdldChyKXx8MDtyZXR1cm4gaS1hfSl9fSxLcj1jUy5nZXRJbnN0YW5jZSgpfSk7dmFyIGRTLFo3LGxZLFpEZSxXdSxrcixvZSx1UyxYNyxjWT1wKCgpPT57ZFM9Z2xvYmFsVGhpcyxaNz1kUy5TaGFkb3dSb290JiYoZFMuU2hhZHlDU1M9PT12b2lkIDB8fGRTLlNoYWR5Q1NTLm5hdGl2ZVNoYWRvdykmJiJhZG9wdGVkU3R5bGVTaGVldHMiaW4gRG9jdW1lbnQucHJvdG90eXBlJiYicmVwbGFjZSJpbiBDU1NTdHlsZVNoZWV0LnByb3RvdHlwZSxsWT1TeW1ib2woKSxaRGU9bmV3IFdlYWtNYXAsV3U9Y2xhc3N7Y29uc3RydWN0b3IodCxyLGkpe2lmKHRoaXMuXyRjc3NSZXN1bHQkPSEwLGkhPT1sWSl0aHJvdyBFcnJvcigiQ1NTUmVzdWx0IGlzIG5vdCBjb25zdHJ1Y3RhYmxlLiBVc2UgYHVuc2FmZUNTU2Agb3IgYGNzc2AgaW5zdGVhZC4iKTt0aGlzLmNzc1RleHQ9dCx0aGlzLnQ9cn1nZXQgc3R5bGVTaGVldCgpe2xldCB0PXRoaXMubyxyPXRoaXMudDtpZihaNyYmdD09PXZvaWQgMCl7bGV0IGk9ciE9PXZvaWQgMCYmci5sZW5ndGg9PT0xO2kmJih0PVpEZS5nZXQocikpLHQ9PT12b2lkIDAmJigodGhpcy5vPXQ9bmV3IENTU1N0eWxlU2hlZXQpLnJlcGxhY2VTeW5jKHRoaXMuY3NzVGV4dCksaSYmWkRlLnNldChyLHQpKX1yZXR1cm4gdH10b1N0cmluZygpe3JldHVybiB0aGlzLmNzc1RleHR9fSxrcj1lPT5uZXcgV3UodHlwZW9mIGU9PSJzdHJpbmciP2U6ZSsiIix2b2lkIDAsbFkpLG9lPShlLC4uLnQpPT57bGV0IHI9ZS5sZW5ndGg9PT0xP2VbMF06dC5yZWR1Y2UoKGksYSxuKT0+aSsobz0+e2lmKG8uXyRjc3NSZXN1bHQkPT09ITApcmV0dXJuIG8uY3NzVGV4dDtpZih0eXBlb2Ygbz09Im51bWJlciIpcmV0dXJuIG87dGhyb3cgRXJyb3IoIlZhbHVlIHBhc3NlZCB0byAnY3NzJyBmdW5jdGlvbiBtdXN0IGJlIGEgJ2NzcycgZnVuY3Rpb24gcmVzdWx0OiAiK28rIi4gVXNlICd1bnNhZmVDU1MnIHRvIHBhc3Mgbm9uLWxpdGVyYWwgdmFsdWVzLCBidXQgdGFrZSBjYXJlIHRvIGVuc3VyZSBwYWdlIHNlY3VyaXR5LiIpfSkoYSkrZVtuKzFdLGVbMF0pO3JldHVybiBuZXcgV3UocixlLGxZKX0sdVM9KGUsdCk9PntpZihaNyllLmFkb3B0ZWRTdHlsZVNoZWV0cz10Lm1hcChyPT5yIGluc3RhbmNlb2YgQ1NTU3R5bGVTaGVldD9yOnIuc3R5bGVTaGVldCk7ZWxzZSBmb3IobGV0IHIgb2YgdCl7bGV0IGk9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgic3R5bGUiKSxhPWRTLmxpdE5vbmNlO2EhPT12b2lkIDAmJmkuc2V0QXR0cmlidXRlKCJub25jZSIsYSksaS50ZXh0Q29udGVudD1yLmNzc1RleHQsZS5hcHBlbmRDaGlsZChpKX19LFg3PVo3P2U9PmU6ZT0+ZSBpbnN0YW5jZW9mIENTU1N0eWxlU2hlZXQ/KHQ9PntsZXQgcj0iIjtmb3IobGV0IGkgb2YgdC5jc3NSdWxlcylyKz1pLmNzc1RleHQ7cmV0dXJuIGtyKHIpfSkoZSk6ZX0pO3ZhciBTVHIselRyLENUcixUVHIsX1RyLExUcixwUyxYRGUsQVRyLERUcixRNyxHdSxKNyxRRGUsa3MsSzc9cCgoKT0+e2NZKCk7Y1koKTsoe2lzOlNUcixkZWZpbmVQcm9wZXJ0eTp6VHIsZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yOkNUcixnZXRPd25Qcm9wZXJ0eU5hbWVzOlRUcixnZXRPd25Qcm9wZXJ0eVN5bWJvbHM6X1RyLGdldFByb3RvdHlwZU9mOkxUcn09T2JqZWN0KSxwUz1nbG9iYWxUaGlzLFhEZT1wUy50cnVzdGVkVHlwZXMsQVRyPVhEZT9YRGUuZW1wdHlTY3JpcHQ6IiIsRFRyPXBTLnJlYWN0aXZlRWxlbWVudFBvbHlmaWxsU3VwcG9ydCxRNz0oZSx0KT0+ZSxHdT17dG9BdHRyaWJ1dGUoZSx0KXtzd2l0Y2godCl7Y2FzZSBCb29sZWFuOmU9ZT9BVHI6bnVsbDticmVhaztjYXNlIE9iamVjdDpjYXNlIEFycmF5OmU9ZT09bnVsbD9lOkpTT04uc3RyaW5naWZ5KGUpfXJldHVybiBlfSxmcm9tQXR0cmlidXRlKGUsdCl7bGV0IHI9ZTtzd2l0Y2godCl7Y2FzZSBCb29sZWFuOnI9ZSE9PW51bGw7YnJlYWs7Y2FzZSBOdW1iZXI6cj1lPT09bnVsbD9udWxsOk51bWJlcihlKTticmVhaztjYXNlIE9iamVjdDpjYXNlIEFycmF5OnRyeXtyPUpTT04ucGFyc2UoZSl9Y2F0Y2h7cj1udWxsfX1yZXR1cm4gcn19LEo3PShlLHQpPT4hU1RyKGUsdCksUURlPXthdHRyaWJ1dGU6ITAsdHlwZTpTdHJpbmcsY29udmVydGVyOkd1LHJlZmxlY3Q6ITEsdXNlRGVmYXVsdDohMSxoYXNDaGFuZ2VkOko3fTtTeW1ib2wubWV0YWRhdGE/Pz1TeW1ib2woIm1ldGFkYXRhIikscFMubGl0UHJvcGVydHlNZXRhZGF0YT8/PW5ldyBXZWFrTWFwO2tzPWNsYXNzIGV4dGVuZHMgSFRNTEVsZW1lbnR7c3RhdGljIGFkZEluaXRpYWxpemVyKHQpe3RoaXMuXyRFaSgpLCh0aGlzLmw/Pz1bXSkucHVzaCh0KX1zdGF0aWMgZ2V0IG9ic2VydmVkQXR0cmlidXRlcygpe3JldHVybiB0aGlzLmZpbmFsaXplKCksdGhpcy5fJEVoJiZbLi4udGhpcy5fJEVoLmtleXMoKV19c3RhdGljIGNyZWF0ZVByb3BlcnR5KHQscj1RRGUpe2lmKHIuc3RhdGUmJihyLmF0dHJpYnV0ZT0hMSksdGhpcy5fJEVpKCksdGhpcy5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkodCkmJigocj1PYmplY3QuY3JlYXRlKHIpKS53cmFwcGVkPSEwKSx0aGlzLmVsZW1lbnRQcm9wZXJ0aWVzLnNldCh0LHIpLCFyLm5vQWNjZXNzb3Ipe2xldCBpPVN5bWJvbCgpLGE9dGhpcy5nZXRQcm9wZXJ0eURlc2NyaXB0b3IodCxpLHIpO2EhPT12b2lkIDAmJnpUcih0aGlzLnByb3RvdHlwZSx0LGEpfX1zdGF0aWMgZ2V0UHJvcGVydHlEZXNjcmlwdG9yKHQscixpKXtsZXR7Z2V0OmEsc2V0Om59PUNUcih0aGlzLnByb3RvdHlwZSx0KT8/e2dldCgpe3JldHVybiB0aGlzW3JdfSxzZXQobyl7dGhpc1tyXT1vfX07cmV0dXJue2dldDphLHNldChvKXtsZXQgcz1hPy5jYWxsKHRoaXMpO24/LmNhbGwodGhpcyxvKSx0aGlzLnJlcXVlc3RVcGRhdGUodCxzLGkpfSxjb25maWd1cmFibGU6ITAsZW51bWVyYWJsZTohMH19c3RhdGljIGdldFByb3BlcnR5T3B0aW9ucyh0KXtyZXR1cm4gdGhpcy5lbGVtZW50UHJvcGVydGllcy5nZXQodCk/P1FEZX1zdGF0aWMgXyRFaSgpe2lmKHRoaXMuaGFzT3duUHJvcGVydHkoUTcoImVsZW1lbnRQcm9wZXJ0aWVzIikpKXJldHVybjtsZXQgdD1MVHIodGhpcyk7dC5maW5hbGl6ZSgpLHQubCE9PXZvaWQgMCYmKHRoaXMubD1bLi4udC5sXSksdGhpcy5lbGVtZW50UHJvcGVydGllcz1uZXcgTWFwKHQuZWxlbWVudFByb3BlcnRpZXMpfXN0YXRpYyBmaW5hbGl6ZSgpe2lmKHRoaXMuaGFzT3duUHJvcGVydHkoUTcoImZpbmFsaXplZCIpKSlyZXR1cm47aWYodGhpcy5maW5hbGl6ZWQ9ITAsdGhpcy5fJEVpKCksdGhpcy5oYXNPd25Qcm9wZXJ0eShRNygicHJvcGVydGllcyIpKSl7bGV0IHI9dGhpcy5wcm9wZXJ0aWVzLGk9Wy4uLlRUcihyKSwuLi5fVHIocildO2ZvcihsZXQgYSBvZiBpKXRoaXMuY3JlYXRlUHJvcGVydHkoYSxyW2FdKX1sZXQgdD10aGlzW1N5bWJvbC5tZXRhZGF0YV07aWYodCE9PW51bGwpe2xldCByPWxpdFByb3BlcnR5TWV0YWRhdGEuZ2V0KHQpO2lmKHIhPT12b2lkIDApZm9yKGxldFtpLGFdb2Ygcil0aGlzLmVsZW1lbnRQcm9wZXJ0aWVzLnNldChpLGEpfXRoaXMuXyRFaD1uZXcgTWFwO2ZvcihsZXRbcixpXW9mIHRoaXMuZWxlbWVudFByb3BlcnRpZXMpe2xldCBhPXRoaXMuXyRFdShyLGkpO2EhPT12b2lkIDAmJnRoaXMuXyRFaC5zZXQoYSxyKX10aGlzLmVsZW1lbnRTdHlsZXM9dGhpcy5maW5hbGl6ZVN0eWxlcyh0aGlzLnN0eWxlcyl9c3RhdGljIGZpbmFsaXplU3R5bGVzKHQpe2xldCByPVtdO2lmKEFycmF5LmlzQXJyYXkodCkpe2xldCBpPW5ldyBTZXQodC5mbGF0KDEvMCkucmV2ZXJzZSgpKTtmb3IobGV0IGEgb2YgaSlyLnVuc2hpZnQoWDcoYSkpfWVsc2UgdCE9PXZvaWQgMCYmci5wdXNoKFg3KHQpKTtyZXR1cm4gcn1zdGF0aWMgXyRFdSh0LHIpe2xldCBpPXIuYXR0cmlidXRlO3JldHVybiBpPT09ITE/dm9pZCAwOnR5cGVvZiBpPT0ic3RyaW5nIj9pOnR5cGVvZiB0PT0ic3RyaW5nIj90LnRvTG93ZXJDYXNlKCk6dm9pZCAwfWNvbnN0cnVjdG9yKCl7c3VwZXIoKSx0aGlzLl8kRXA9dm9pZCAwLHRoaXMuaXNVcGRhdGVQZW5kaW5nPSExLHRoaXMuaGFzVXBkYXRlZD0hMSx0aGlzLl8kRW09bnVsbCx0aGlzLl8kRXYoKX1fJEV2KCl7dGhpcy5fJEVTPW5ldyBQcm9taXNlKHQ9PnRoaXMuZW5hYmxlVXBkYXRpbmc9dCksdGhpcy5fJEFMPW5ldyBNYXAsdGhpcy5fJEVfKCksdGhpcy5yZXF1ZXN0VXBkYXRlKCksdGhpcy5jb25zdHJ1Y3Rvci5sPy5mb3JFYWNoKHQ9PnQodGhpcykpfWFkZENvbnRyb2xsZXIodCl7KHRoaXMuXyRFTz8/PW5ldyBTZXQpLmFkZCh0KSx0aGlzLnJlbmRlclJvb3QhPT12b2lkIDAmJnRoaXMuaXNDb25uZWN0ZWQmJnQuaG9zdENvbm5lY3RlZD8uKCl9cmVtb3ZlQ29udHJvbGxlcih0KXt0aGlzLl8kRU8/LmRlbGV0ZSh0KX1fJEVfKCl7bGV0IHQ9bmV3IE1hcCxyPXRoaXMuY29uc3RydWN0b3IuZWxlbWVudFByb3BlcnRpZXM7Zm9yKGxldCBpIG9mIHIua2V5cygpKXRoaXMuaGFzT3duUHJvcGVydHkoaSkmJih0LnNldChpLHRoaXNbaV0pLGRlbGV0ZSB0aGlzW2ldKTt0LnNpemU+MCYmKHRoaXMuXyRFcD10KX1jcmVhdGVSZW5kZXJSb290KCl7bGV0IHQ9dGhpcy5zaGFkb3dSb290Pz90aGlzLmF0dGFjaFNoYWRvdyh0aGlzLmNvbnN0cnVjdG9yLnNoYWRvd1Jvb3RPcHRpb25zKTtyZXR1cm4gdVModCx0aGlzLmNvbnN0cnVjdG9yLmVsZW1lbnRTdHlsZXMpLHR9Y29ubmVjdGVkQ2FsbGJhY2soKXt0aGlzLnJlbmRlclJvb3Q/Pz10aGlzLmNyZWF0ZVJlbmRlclJvb3QoKSx0aGlzLmVuYWJsZVVwZGF0aW5nKCEwKSx0aGlzLl8kRU8/LmZvckVhY2godD0+dC5ob3N0Q29ubmVjdGVkPy4oKSl9ZW5hYmxlVXBkYXRpbmcodCl7fWRpc2Nvbm5lY3RlZENhbGxiYWNrKCl7dGhpcy5fJEVPPy5mb3JFYWNoKHQ9PnQuaG9zdERpc2Nvbm5lY3RlZD8uKCkpfWF0dHJpYnV0ZUNoYW5nZWRDYWxsYmFjayh0LHIsaSl7dGhpcy5fJEFLKHQsaSl9XyRFVCh0LHIpe2xldCBpPXRoaXMuY29uc3RydWN0b3IuZWxlbWVudFByb3BlcnRpZXMuZ2V0KHQpLGE9dGhpcy5jb25zdHJ1Y3Rvci5fJEV1KHQsaSk7aWYoYSE9PXZvaWQgMCYmaS5yZWZsZWN0PT09ITApe2xldCBuPShpLmNvbnZlcnRlcj8udG9BdHRyaWJ1dGUhPT12b2lkIDA/aS5jb252ZXJ0ZXI6R3UpLnRvQXR0cmlidXRlKHIsaS50eXBlKTt0aGlzLl8kRW09dCxuPT1udWxsP3RoaXMucmVtb3ZlQXR0cmlidXRlKGEpOnRoaXMuc2V0QXR0cmlidXRlKGEsbiksdGhpcy5fJEVtPW51bGx9fV8kQUsodCxyKXtsZXQgaT10aGlzLmNvbnN0cnVjdG9yLGE9aS5fJEVoLmdldCh0KTtpZihhIT09dm9pZCAwJiZ0aGlzLl8kRW0hPT1hKXtsZXQgbj1pLmdldFByb3BlcnR5T3B0aW9ucyhhKSxvPXR5cGVvZiBuLmNvbnZlcnRlcj09ImZ1bmN0aW9uIj97ZnJvbUF0dHJpYnV0ZTpuLmNvbnZlcnRlcn06bi5jb252ZXJ0ZXI/LmZyb21BdHRyaWJ1dGUhPT12b2lkIDA/bi5jb252ZXJ0ZXI6R3U7dGhpcy5fJEVtPWE7bGV0IHM9by5mcm9tQXR0cmlidXRlKHIsbi50eXBlKTt0aGlzW2FdPXM/P3RoaXMuXyRFaj8uZ2V0KGEpPz9zLHRoaXMuXyRFbT1udWxsfX1yZXF1ZXN0VXBkYXRlKHQscixpLGE9ITEsbil7aWYodCE9PXZvaWQgMCl7bGV0IG89dGhpcy5jb25zdHJ1Y3RvcjtpZihhPT09ITEmJihuPXRoaXNbdF0pLGk/Pz1vLmdldFByb3BlcnR5T3B0aW9ucyh0KSwhKChpLmhhc0NoYW5nZWQ/P0o3KShuLHIpfHxpLnVzZURlZmF1bHQmJmkucmVmbGVjdCYmbj09PXRoaXMuXyRFaj8uZ2V0KHQpJiYhdGhpcy5oYXNBdHRyaWJ1dGUoby5fJEV1KHQsaSkpKSlyZXR1cm47dGhpcy5DKHQscixpKX10aGlzLmlzVXBkYXRlUGVuZGluZz09PSExJiYodGhpcy5fJEVTPXRoaXMuXyRFUCgpKX1DKHQscix7dXNlRGVmYXVsdDppLHJlZmxlY3Q6YSx3cmFwcGVkOm59LG8pe2kmJiEodGhpcy5fJEVqPz89bmV3IE1hcCkuaGFzKHQpJiYodGhpcy5fJEVqLnNldCh0LG8/P3I/P3RoaXNbdF0pLG4hPT0hMHx8byE9PXZvaWQgMCl8fCh0aGlzLl8kQUwuaGFzKHQpfHwodGhpcy5oYXNVcGRhdGVkfHxpfHwocj12b2lkIDApLHRoaXMuXyRBTC5zZXQodCxyKSksYT09PSEwJiZ0aGlzLl8kRW0hPT10JiYodGhpcy5fJEVxPz89bmV3IFNldCkuYWRkKHQpKX1hc3luYyBfJEVQKCl7dGhpcy5pc1VwZGF0ZVBlbmRpbmc9ITA7dHJ5e2F3YWl0IHRoaXMuXyRFU31jYXRjaChyKXtQcm9taXNlLnJlamVjdChyKX1sZXQgdD10aGlzLnNjaGVkdWxlVXBkYXRlKCk7cmV0dXJuIHQhPW51bGwmJmF3YWl0IHQsIXRoaXMuaXNVcGRhdGVQZW5kaW5nfXNjaGVkdWxlVXBkYXRlKCl7cmV0dXJuIHRoaXMucGVyZm9ybVVwZGF0ZSgpfXBlcmZvcm1VcGRhdGUoKXtpZighdGhpcy5pc1VwZGF0ZVBlbmRpbmcpcmV0dXJuO2lmKCF0aGlzLmhhc1VwZGF0ZWQpe2lmKHRoaXMucmVuZGVyUm9vdD8/PXRoaXMuY3JlYXRlUmVuZGVyUm9vdCgpLHRoaXMuXyRFcCl7Zm9yKGxldFthLG5db2YgdGhpcy5fJEVwKXRoaXNbYV09bjt0aGlzLl8kRXA9dm9pZCAwfWxldCBpPXRoaXMuY29uc3RydWN0b3IuZWxlbWVudFByb3BlcnRpZXM7aWYoaS5zaXplPjApZm9yKGxldFthLG5db2YgaSl7bGV0e3dyYXBwZWQ6b309bixzPXRoaXNbYV07byE9PSEwfHx0aGlzLl8kQUwuaGFzKGEpfHxzPT09dm9pZCAwfHx0aGlzLkMoYSx2b2lkIDAsbixzKX19bGV0IHQ9ITEscj10aGlzLl8kQUw7dHJ5e3Q9dGhpcy5zaG91bGRVcGRhdGUociksdD8odGhpcy53aWxsVXBkYXRlKHIpLHRoaXMuXyRFTz8uZm9yRWFjaChpPT5pLmhvc3RVcGRhdGU/LigpKSx0aGlzLnVwZGF0ZShyKSk6dGhpcy5fJEVNKCl9Y2F0Y2goaSl7dGhyb3cgdD0hMSx0aGlzLl8kRU0oKSxpfXQmJnRoaXMuXyRBRShyKX13aWxsVXBkYXRlKHQpe31fJEFFKHQpe3RoaXMuXyRFTz8uZm9yRWFjaChyPT5yLmhvc3RVcGRhdGVkPy4oKSksdGhpcy5oYXNVcGRhdGVkfHwodGhpcy5oYXNVcGRhdGVkPSEwLHRoaXMuZmlyc3RVcGRhdGVkKHQpKSx0aGlzLnVwZGF0ZWQodCl9XyRFTSgpe3RoaXMuXyRBTD1uZXcgTWFwLHRoaXMuaXNVcGRhdGVQZW5kaW5nPSExfWdldCB1cGRhdGVDb21wbGV0ZSgpe3JldHVybiB0aGlzLmdldFVwZGF0ZUNvbXBsZXRlKCl9Z2V0VXBkYXRlQ29tcGxldGUoKXtyZXR1cm4gdGhpcy5fJEVTfXNob3VsZFVwZGF0ZSh0KXtyZXR1cm4hMH11cGRhdGUodCl7dGhpcy5fJEVxJiY9dGhpcy5fJEVxLmZvckVhY2gocj0+dGhpcy5fJEVUKHIsdGhpc1tyXSkpLHRoaXMuXyRFTSgpfXVwZGF0ZWQodCl7fWZpcnN0VXBkYXRlZCh0KXt9fTtrcy5lbGVtZW50U3R5bGVzPVtdLGtzLnNoYWRvd1Jvb3RPcHRpb25zPXttb2RlOiJvcGVuIn0sa3NbUTcoImVsZW1lbnRQcm9wZXJ0aWVzIildPW5ldyBNYXAsa3NbUTcoImZpbmFsaXplZCIpXT1uZXcgTWFwLERUcj8uKHtSZWFjdGl2ZUVsZW1lbnQ6a3N9KSwocFMucmVhY3RpdmVFbGVtZW50VmVyc2lvbnM/Pz1bXSkucHVzaCgiMi4xLjIiKX0pO2Z1bmN0aW9uIHNFZShlLHQpe2lmKCFoWShlKXx8IWUuaGFzT3duUHJvcGVydHkoInJhdyIpKXRocm93IEVycm9yKCJpbnZhbGlkIHRlbXBsYXRlIHN0cmluZ3MgYXJyYXkiKTtyZXR1cm4gS0RlIT09dm9pZCAwP0tEZS5jcmVhdGVIVE1MKHQpOnR9ZnVuY3Rpb24gbTYoZSx0LHI9ZSxpKXtpZih0PT09bDEpcmV0dXJuIHQ7bGV0IGE9aSE9PXZvaWQgMD9yLl8kQ28/LltpXTpyLl8kQ2wsbj10bSh0KT92b2lkIDA6dC5fJGxpdERpcmVjdGl2ZSQ7cmV0dXJuIGE/LmNvbnN0cnVjdG9yIT09biYmKGE/Ll8kQU8/LighMSksbj09PXZvaWQgMD9hPXZvaWQgMDooYT1uZXcgbihlKSxhLl8kQVQoZSxyLGkpKSxpIT09dm9pZCAwPyhyLl8kQ28/Pz1bXSlbaV09YTpyLl8kQ2w9YSksYSE9PXZvaWQgMCYmKHQ9bTYoZSxhLl8kQVMoZSx0LnZhbHVlcyksYSxpKSksdH12YXIgZFksSkRlLGhTLEtEZSx1WSxPbCxwWSxFVHIscDYsZW0sdG0saFksZUVlLGZZLHJtLHRFZSxyRWUsaDYsaUVlLGFFZSxuRWUsbVksQyxnWSxiWSxsMSx4MSxvRWUsZjYsbEVlLGltLGZTLFl1LGc2LG1TLGdTLGJTLHZTLHZZLCRUcixiNixjMj1wKCgpPT57ZFk9Z2xvYmFsVGhpcyxKRGU9ZT0+ZSxoUz1kWS50cnVzdGVkVHlwZXMsS0RlPWhTP2hTLmNyZWF0ZVBvbGljeSgibGl0LWh0bWwiLHtjcmVhdGVIVE1MOmU9PmV9KTp2b2lkIDAsdVk9IiRsaXQkIixPbD1gbGl0JCR7TWF0aC5yYW5kb20oKS50b0ZpeGVkKDkpLnNsaWNlKDIpfSRgLHBZPSI/IitPbCxFVHI9YDwke3BZfT5gLHA2PWRvY3VtZW50LGVtPSgpPT5wNi5jcmVhdGVDb21tZW50KCIiKSx0bT1lPT5lPT09bnVsbHx8dHlwZW9mIGUhPSJvYmplY3QiJiZ0eXBlb2YgZSE9ImZ1bmN0aW9uIixoWT1BcnJheS5pc0FycmF5LGVFZT1lPT5oWShlKXx8dHlwZW9mIGU/LltTeW1ib2wuaXRlcmF0b3JdPT0iZnVuY3Rpb24iLGZZPWBbIAkKXGZccl1gLHJtPS88KD86KCEtLXxcL1teYS16QS1aXSl8KFwvP1thLXpBLVpdW14+XHNdKil8KFwvPyQpKS9nLHRFZT0vLS0+L2csckVlPS8+L2csaDY9UmVnRXhwKGA+fCR7Zll9KD86KFteXFxzIic+PS9dKykoJHtmWX0qPSR7Zll9Kig/OlteIAkKXGZcciInXGA8Pj1dfCgifCcpfCkpfCQpYCwiZyIpLGlFZT0vJy9nLGFFZT0vIi9nLG5FZT0vXig/OnNjcmlwdHxzdHlsZXx0ZXh0YXJlYXx0aXRsZSkkL2ksbVk9ZT0+KHQsLi4ucik9Pih7XyRsaXRUeXBlJDplLHN0cmluZ3M6dCx2YWx1ZXM6cn0pLEM9bVkoMSksZ1k9bVkoMiksYlk9bVkoMyksbDE9U3ltYm9sLmZvcigibGl0LW5vQ2hhbmdlIikseDE9U3ltYm9sLmZvcigibGl0LW5vdGhpbmciKSxvRWU9bmV3IFdlYWtNYXAsZjY9cDYuY3JlYXRlVHJlZVdhbGtlcihwNiwxMjkpO2xFZT0oZSx0KT0+e2xldCByPWUubGVuZ3RoLTEsaT1bXSxhLG49dD09PTI/Ijxzdmc+Ijp0PT09Mz8iPG1hdGg+IjoiIixvPXJtO2ZvcihsZXQgcz0wO3M8cjtzKyspe2xldCBsPWVbc10sYyx1LGQ9LTEsaD0wO2Zvcig7aDxsLmxlbmd0aCYmKG8ubGFzdEluZGV4PWgsdT1vLmV4ZWMobCksdSE9PW51bGwpOyloPW8ubGFzdEluZGV4LG89PT1ybT91WzFdPT09IiEtLSI/bz10RWU6dVsxXSE9PXZvaWQgMD9vPXJFZTp1WzJdIT09dm9pZCAwPyhuRWUudGVzdCh1WzJdKSYmKGE9UmVnRXhwKCI8LyIrdVsyXSwiZyIpKSxvPWg2KTp1WzNdIT09dm9pZCAwJiYobz1oNik6bz09PWg2P3VbMF09PT0iPiI/KG89YT8/cm0sZD0tMSk6dVsxXT09PXZvaWQgMD9kPS0yOihkPW8ubGFzdEluZGV4LXVbMl0ubGVuZ3RoLGM9dVsxXSxvPXVbM109PT12b2lkIDA/aDY6dVszXT09PSciJz9hRWU6aUVlKTpvPT09YUVlfHxvPT09aUVlP289aDY6bz09PXRFZXx8bz09PXJFZT9vPXJtOihvPWg2LGE9dm9pZCAwKTtsZXQgZj1vPT09aDYmJmVbcysxXS5zdGFydHNXaXRoKCIvPiIpPyIgIjoiIjtuKz1vPT09cm0/bCtFVHI6ZD49MD8oaS5wdXNoKGMpLGwuc2xpY2UoMCxkKSt1WStsLnNsaWNlKGQpK09sK2YpOmwrT2wrKGQ9PT0tMj9zOmYpfXJldHVybltzRWUoZSxuKyhlW3JdfHwiPD8+IikrKHQ9PT0yPyI8L3N2Zz4iOnQ9PT0zPyI8L21hdGg+IjoiIikpLGldfSxpbT1jbGFzcyBle2NvbnN0cnVjdG9yKHtzdHJpbmdzOnQsXyRsaXRUeXBlJDpyfSxpKXtsZXQgYTt0aGlzLnBhcnRzPVtdO2xldCBuPTAsbz0wLHM9dC5sZW5ndGgtMSxsPXRoaXMucGFydHMsW2MsdV09bEVlKHQscik7aWYodGhpcy5lbD1lLmNyZWF0ZUVsZW1lbnQoYyxpKSxmNi5jdXJyZW50Tm9kZT10aGlzLmVsLmNvbnRlbnQscj09PTJ8fHI9PT0zKXtsZXQgZD10aGlzLmVsLmNvbnRlbnQuZmlyc3RDaGlsZDtkLnJlcGxhY2VXaXRoKC4uLmQuY2hpbGROb2Rlcyl9Zm9yKDsoYT1mNi5uZXh0Tm9kZSgpKSE9PW51bGwmJmwubGVuZ3RoPHM7KXtpZihhLm5vZGVUeXBlPT09MSl7aWYoYS5oYXNBdHRyaWJ1dGVzKCkpZm9yKGxldCBkIG9mIGEuZ2V0QXR0cmlidXRlTmFtZXMoKSlpZihkLmVuZHNXaXRoKHVZKSl7bGV0IGg9dVtvKytdLGY9YS5nZXRBdHRyaWJ1dGUoZCkuc3BsaXQoT2wpLHg9LyhbLj9AXSk/KC4qKS8uZXhlYyhoKTtsLnB1c2goe3R5cGU6MSxpbmRleDpuLG5hbWU6eFsyXSxzdHJpbmdzOmYsY3Rvcjp4WzFdPT09Ii4iP21TOnhbMV09PT0iPyI/Z1M6eFsxXT09PSJAIj9iUzpnNn0pLGEucmVtb3ZlQXR0cmlidXRlKGQpfWVsc2UgZC5zdGFydHNXaXRoKE9sKSYmKGwucHVzaCh7dHlwZTo2LGluZGV4Om59KSxhLnJlbW92ZUF0dHJpYnV0ZShkKSk7aWYobkVlLnRlc3QoYS50YWdOYW1lKSl7bGV0IGQ9YS50ZXh0Q29udGVudC5zcGxpdChPbCksaD1kLmxlbmd0aC0xO2lmKGg+MCl7YS50ZXh0Q29udGVudD1oUz9oUy5lbXB0eVNjcmlwdDoiIjtmb3IobGV0IGY9MDtmPGg7ZisrKWEuYXBwZW5kKGRbZl0sZW0oKSksZjYubmV4dE5vZGUoKSxsLnB1c2goe3R5cGU6MixpbmRleDorK259KTthLmFwcGVuZChkW2hdLGVtKCkpfX19ZWxzZSBpZihhLm5vZGVUeXBlPT09OClpZihhLmRhdGE9PT1wWSlsLnB1c2goe3R5cGU6MixpbmRleDpufSk7ZWxzZXtsZXQgZD0tMTtmb3IoOyhkPWEuZGF0YS5pbmRleE9mKE9sLGQrMSkpIT09LTE7KWwucHVzaCh7dHlwZTo3LGluZGV4Om59KSxkKz1PbC5sZW5ndGgtMX1uKyt9fXN0YXRpYyBjcmVhdGVFbGVtZW50KHQscil7bGV0IGk9cDYuY3JlYXRlRWxlbWVudCgidGVtcGxhdGUiKTtyZXR1cm4gaS5pbm5lckhUTUw9dCxpfX07ZlM9Y2xhc3N7Y29uc3RydWN0b3IodCxyKXt0aGlzLl8kQVY9W10sdGhpcy5fJEFOPXZvaWQgMCx0aGlzLl8kQUQ9dCx0aGlzLl8kQU09cn1nZXQgcGFyZW50Tm9kZSgpe3JldHVybiB0aGlzLl8kQU0ucGFyZW50Tm9kZX1nZXQgXyRBVSgpe3JldHVybiB0aGlzLl8kQU0uXyRBVX11KHQpe2xldHtlbDp7Y29udGVudDpyfSxwYXJ0czppfT10aGlzLl8kQUQsYT0odD8uY3JlYXRpb25TY29wZT8/cDYpLmltcG9ydE5vZGUociwhMCk7ZjYuY3VycmVudE5vZGU9YTtsZXQgbj1mNi5uZXh0Tm9kZSgpLG89MCxzPTAsbD1pWzBdO2Zvcig7bCE9PXZvaWQgMDspe2lmKG89PT1sLmluZGV4KXtsZXQgYztsLnR5cGU9PT0yP2M9bmV3IFl1KG4sbi5uZXh0U2libGluZyx0aGlzLHQpOmwudHlwZT09PTE/Yz1uZXcgbC5jdG9yKG4sbC5uYW1lLGwuc3RyaW5ncyx0aGlzLHQpOmwudHlwZT09PTYmJihjPW5ldyB2UyhuLHRoaXMsdCkpLHRoaXMuXyRBVi5wdXNoKGMpLGw9aVsrK3NdfW8hPT1sPy5pbmRleCYmKG49ZjYubmV4dE5vZGUoKSxvKyspfXJldHVybiBmNi5jdXJyZW50Tm9kZT1wNixhfXAodCl7bGV0IHI9MDtmb3IobGV0IGkgb2YgdGhpcy5fJEFWKWkhPT12b2lkIDAmJihpLnN0cmluZ3MhPT12b2lkIDA/KGkuXyRBSSh0LGkscikscis9aS5zdHJpbmdzLmxlbmd0aC0yKTppLl8kQUkodFtyXSkpLHIrK319LFl1PWNsYXNzIGV7Z2V0IF8kQVUoKXtyZXR1cm4gdGhpcy5fJEFNPy5fJEFVPz90aGlzLl8kQ3Z9Y29uc3RydWN0b3IodCxyLGksYSl7dGhpcy50eXBlPTIsdGhpcy5fJEFIPXgxLHRoaXMuXyRBTj12b2lkIDAsdGhpcy5fJEFBPXQsdGhpcy5fJEFCPXIsdGhpcy5fJEFNPWksdGhpcy5vcHRpb25zPWEsdGhpcy5fJEN2PWE/LmlzQ29ubmVjdGVkPz8hMH1nZXQgcGFyZW50Tm9kZSgpe2xldCB0PXRoaXMuXyRBQS5wYXJlbnROb2RlLHI9dGhpcy5fJEFNO3JldHVybiByIT09dm9pZCAwJiZ0Py5ub2RlVHlwZT09PTExJiYodD1yLnBhcmVudE5vZGUpLHR9Z2V0IHN0YXJ0Tm9kZSgpe3JldHVybiB0aGlzLl8kQUF9Z2V0IGVuZE5vZGUoKXtyZXR1cm4gdGhpcy5fJEFCfV8kQUkodCxyPXRoaXMpe3Q9bTYodGhpcyx0LHIpLHRtKHQpP3Q9PT14MXx8dD09bnVsbHx8dD09PSIiPyh0aGlzLl8kQUghPT14MSYmdGhpcy5fJEFSKCksdGhpcy5fJEFIPXgxKTp0IT09dGhpcy5fJEFIJiZ0IT09bDEmJnRoaXMuXyh0KTp0Ll8kbGl0VHlwZSQhPT12b2lkIDA/dGhpcy4kKHQpOnQubm9kZVR5cGUhPT12b2lkIDA/dGhpcy5UKHQpOmVFZSh0KT90aGlzLmsodCk6dGhpcy5fKHQpfU8odCl7cmV0dXJuIHRoaXMuXyRBQS5wYXJlbnROb2RlLmluc2VydEJlZm9yZSh0LHRoaXMuXyRBQil9VCh0KXt0aGlzLl8kQUghPT10JiYodGhpcy5fJEFSKCksdGhpcy5fJEFIPXRoaXMuTyh0KSl9Xyh0KXt0aGlzLl8kQUghPT14MSYmdG0odGhpcy5fJEFIKT90aGlzLl8kQUEubmV4dFNpYmxpbmcuZGF0YT10OnRoaXMuVChwNi5jcmVhdGVUZXh0Tm9kZSh0KSksdGhpcy5fJEFIPXR9JCh0KXtsZXR7dmFsdWVzOnIsXyRsaXRUeXBlJDppfT10LGE9dHlwZW9mIGk9PSJudW1iZXIiP3RoaXMuXyRBQyh0KTooaS5lbD09PXZvaWQgMCYmKGkuZWw9aW0uY3JlYXRlRWxlbWVudChzRWUoaS5oLGkuaFswXSksdGhpcy5vcHRpb25zKSksaSk7aWYodGhpcy5fJEFIPy5fJEFEPT09YSl0aGlzLl8kQUgucChyKTtlbHNle2xldCBuPW5ldyBmUyhhLHRoaXMpLG89bi51KHRoaXMub3B0aW9ucyk7bi5wKHIpLHRoaXMuVChvKSx0aGlzLl8kQUg9bn19XyRBQyh0KXtsZXQgcj1vRWUuZ2V0KHQuc3RyaW5ncyk7cmV0dXJuIHI9PT12b2lkIDAmJm9FZS5zZXQodC5zdHJpbmdzLHI9bmV3IGltKHQpKSxyfWsodCl7aFkodGhpcy5fJEFIKXx8KHRoaXMuXyRBSD1bXSx0aGlzLl8kQVIoKSk7bGV0IHI9dGhpcy5fJEFILGksYT0wO2ZvcihsZXQgbiBvZiB0KWE9PT1yLmxlbmd0aD9yLnB1c2goaT1uZXcgZSh0aGlzLk8oZW0oKSksdGhpcy5PKGVtKCkpLHRoaXMsdGhpcy5vcHRpb25zKSk6aT1yW2FdLGkuXyRBSShuKSxhKys7YTxyLmxlbmd0aCYmKHRoaXMuXyRBUihpJiZpLl8kQUIubmV4dFNpYmxpbmcsYSksci5sZW5ndGg9YSl9XyRBUih0PXRoaXMuXyRBQS5uZXh0U2libGluZyxyKXtmb3IodGhpcy5fJEFQPy4oITEsITAscik7dCE9PXRoaXMuXyRBQjspe2xldCBpPUpEZSh0KS5uZXh0U2libGluZztKRGUodCkucmVtb3ZlKCksdD1pfX1zZXRDb25uZWN0ZWQodCl7dGhpcy5fJEFNPT09dm9pZCAwJiYodGhpcy5fJEN2PXQsdGhpcy5fJEFQPy4odCkpfX0sZzY9Y2xhc3N7Z2V0IHRhZ05hbWUoKXtyZXR1cm4gdGhpcy5lbGVtZW50LnRhZ05hbWV9Z2V0IF8kQVUoKXtyZXR1cm4gdGhpcy5fJEFNLl8kQVV9Y29uc3RydWN0b3IodCxyLGksYSxuKXt0aGlzLnR5cGU9MSx0aGlzLl8kQUg9eDEsdGhpcy5fJEFOPXZvaWQgMCx0aGlzLmVsZW1lbnQ9dCx0aGlzLm5hbWU9cix0aGlzLl8kQU09YSx0aGlzLm9wdGlvbnM9bixpLmxlbmd0aD4yfHxpWzBdIT09IiJ8fGlbMV0hPT0iIj8odGhpcy5fJEFIPUFycmF5KGkubGVuZ3RoLTEpLmZpbGwobmV3IFN0cmluZyksdGhpcy5zdHJpbmdzPWkpOnRoaXMuXyRBSD14MX1fJEFJKHQscj10aGlzLGksYSl7bGV0IG49dGhpcy5zdHJpbmdzLG89ITE7aWYobj09PXZvaWQgMCl0PW02KHRoaXMsdCxyLDApLG89IXRtKHQpfHx0IT09dGhpcy5fJEFIJiZ0IT09bDEsbyYmKHRoaXMuXyRBSD10KTtlbHNle2xldCBzPXQsbCxjO2Zvcih0PW5bMF0sbD0wO2w8bi5sZW5ndGgtMTtsKyspYz1tNih0aGlzLHNbaStsXSxyLGwpLGM9PT1sMSYmKGM9dGhpcy5fJEFIW2xdKSxvfHw9IXRtKGMpfHxjIT09dGhpcy5fJEFIW2xdLGM9PT14MT90PXgxOnQhPT14MSYmKHQrPShjPz8iIikrbltsKzFdKSx0aGlzLl8kQUhbbF09Y31vJiYhYSYmdGhpcy5qKHQpfWoodCl7dD09PXgxP3RoaXMuZWxlbWVudC5yZW1vdmVBdHRyaWJ1dGUodGhpcy5uYW1lKTp0aGlzLmVsZW1lbnQuc2V0QXR0cmlidXRlKHRoaXMubmFtZSx0Pz8iIil9fSxtUz1jbGFzcyBleHRlbmRzIGc2e2NvbnN0cnVjdG9yKCl7c3VwZXIoLi4uYXJndW1lbnRzKSx0aGlzLnR5cGU9M31qKHQpe3RoaXMuZWxlbWVudFt0aGlzLm5hbWVdPXQ9PT14MT92b2lkIDA6dH19LGdTPWNsYXNzIGV4dGVuZHMgZzZ7Y29uc3RydWN0b3IoKXtzdXBlciguLi5hcmd1bWVudHMpLHRoaXMudHlwZT00fWoodCl7dGhpcy5lbGVtZW50LnRvZ2dsZUF0dHJpYnV0ZSh0aGlzLm5hbWUsISF0JiZ0IT09eDEpfX0sYlM9Y2xhc3MgZXh0ZW5kcyBnNntjb25zdHJ1Y3Rvcih0LHIsaSxhLG4pe3N1cGVyKHQscixpLGEsbiksdGhpcy50eXBlPTV9XyRBSSh0LHI9dGhpcyl7aWYoKHQ9bTYodGhpcyx0LHIsMCk/P3gxKT09PWwxKXJldHVybjtsZXQgaT10aGlzLl8kQUgsYT10PT09eDEmJmkhPT14MXx8dC5jYXB0dXJlIT09aS5jYXB0dXJlfHx0Lm9uY2UhPT1pLm9uY2V8fHQucGFzc2l2ZSE9PWkucGFzc2l2ZSxuPXQhPT14MSYmKGk9PT14MXx8YSk7YSYmdGhpcy5lbGVtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIodGhpcy5uYW1lLHRoaXMsaSksbiYmdGhpcy5lbGVtZW50LmFkZEV2ZW50TGlzdGVuZXIodGhpcy5uYW1lLHRoaXMsdCksdGhpcy5fJEFIPXR9aGFuZGxlRXZlbnQodCl7dHlwZW9mIHRoaXMuXyRBSD09ImZ1bmN0aW9uIj90aGlzLl8kQUguY2FsbCh0aGlzLm9wdGlvbnM/Lmhvc3Q/P3RoaXMuZWxlbWVudCx0KTp0aGlzLl8kQUguaGFuZGxlRXZlbnQodCl9fSx2Uz1jbGFzc3tjb25zdHJ1Y3Rvcih0LHIsaSl7dGhpcy5lbGVtZW50PXQsdGhpcy50eXBlPTYsdGhpcy5fJEFOPXZvaWQgMCx0aGlzLl8kQU09cix0aGlzLm9wdGlvbnM9aX1nZXQgXyRBVSgpe3JldHVybiB0aGlzLl8kQU0uXyRBVX1fJEFJKHQpe202KHRoaXMsdCl9fSx2WT17TTp1WSxQOk9sLEE6cFksQzoxLEw6bEVlLFI6ZlMsRDplRWUsVjptNixJOll1LEg6ZzYsTjpnUyxVOmJTLEI6bVMsRjp2U30sJFRyPWRZLmxpdEh0bWxQb2x5ZmlsbFN1cHBvcnQ7JFRyPy4oaW0sWXUpLChkWS5saXRIdG1sVmVyc2lvbnM/Pz1bXSkucHVzaCgiMy4zLjIiKTtiNj0oZSx0LHIpPT57bGV0IGk9cj8ucmVuZGVyQmVmb3JlPz90LGE9aS5fJGxpdFBhcnQkO2lmKGE9PT12b2lkIDApe2xldCBuPXI/LnJlbmRlckJlZm9yZT8/bnVsbDtpLl8kbGl0UGFydCQ9YT1uZXcgWXUodC5pbnNlcnRCZWZvcmUoZW0oKSxuKSxuLHZvaWQgMCxyPz97fSl9cmV0dXJuIGEuXyRBSShlKSxhfX0pO3ZhciB4WSxSbCxJVHIsUFRyLGNFZT1wKCgpPT57SzcoKTtLNygpO2MyKCk7YzIoKTt4WT1nbG9iYWxUaGlzLFJsPWNsYXNzIGV4dGVuZHMga3N7Y29uc3RydWN0b3IoKXtzdXBlciguLi5hcmd1bWVudHMpLHRoaXMucmVuZGVyT3B0aW9ucz17aG9zdDp0aGlzfSx0aGlzLl8kRG89dm9pZCAwfWNyZWF0ZVJlbmRlclJvb3QoKXtsZXQgdD1zdXBlci5jcmVhdGVSZW5kZXJSb290KCk7cmV0dXJuIHRoaXMucmVuZGVyT3B0aW9ucy5yZW5kZXJCZWZvcmU/Pz10LmZpcnN0Q2hpbGQsdH11cGRhdGUodCl7bGV0IHI9dGhpcy5yZW5kZXIoKTt0aGlzLmhhc1VwZGF0ZWR8fCh0aGlzLnJlbmRlck9wdGlvbnMuaXNDb25uZWN0ZWQ9dGhpcy5pc0Nvbm5lY3RlZCksc3VwZXIudXBkYXRlKHQpLHRoaXMuXyREbz1iNihyLHRoaXMucmVuZGVyUm9vdCx0aGlzLnJlbmRlck9wdGlvbnMpfWNvbm5lY3RlZENhbGxiYWNrKCl7c3VwZXIuY29ubmVjdGVkQ2FsbGJhY2soKSx0aGlzLl8kRG8/LnNldENvbm5lY3RlZCghMCl9ZGlzY29ubmVjdGVkQ2FsbGJhY2soKXtzdXBlci5kaXNjb25uZWN0ZWRDYWxsYmFjaygpLHRoaXMuXyREbz8uc2V0Q29ubmVjdGVkKCExKX1yZW5kZXIoKXtyZXR1cm4gbDF9fTtSbC5fJGxpdEVsZW1lbnQkPSEwLFJsLmZpbmFsaXplZD0hMCx4WS5saXRFbGVtZW50SHlkcmF0ZVN1cHBvcnQ/Lih7TGl0RWxlbWVudDpSbH0pO0lUcj14WS5saXRFbGVtZW50UG9seWZpbGxTdXBwb3J0O0lUcj8uKHtMaXRFbGVtZW50OlJsfSk7UFRyPXtfJEFLOihlLHQscik9PntlLl8kQUsodCxyKX0sXyRBTDplPT5lLl8kQUx9Oyh4WS5saXRFbGVtZW50VmVyc2lvbnM/Pz1bXSkucHVzaCgiNC4yLjIiKX0pO3ZhciBOVHIsZEVlPXAoKCk9PntOVHI9ITF9KTt2YXIgU3M9cCgoKT0+e0s3KCk7YzIoKTtjRWUoKTtkRWUoKX0pO3ZhciB5Uz1qZSh4Uz0+eyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkoeFMsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLHhTLnVuaT12b2lkIDA7dmFyIEZUcj0oZT0idW5pIik9PmAke2V9XyR7Inh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eCIucmVwbGFjZSgvW3h5XS9nLHQ9PntsZXQgcj1NYXRoLnJhbmRvbSgpKjE2fDA7cmV0dXJuKHQ9PT0ieCI/cjpyJjN8OCkudG9TdHJpbmcoMTYpfSl9YDt4Uy51bmk9RlRyfSk7dmFyIHdTLCQwLE1TPXAoKCk9Pnt3Uz1jbGFzc3tjbGFpbSgpe2lmKHRoaXMuY2xhaW1lZCl0aHJvdyBuZXcgRXJyb3IoIkRlZmVycmVkIGFscmVhZHkgY2xhaW1lZCIpO3RoaXMuY2xhaW1lZD0hMH1nZXQgZHVyYXRpb24oKXtyZXR1cm4gdGhpcy5zdG9wcGVkQXQ/dGhpcy5zdG9wcGVkQXQtdGhpcy5zdGFydGVkQXQ6RGF0ZS5ub3coKS10aGlzLnN0YXJ0ZWRBdH1jb25zdHJ1Y3Rvcigpe3RoaXMuY2xhaW1lZD0hMSx0aGlzLnByb21pc2U9bmV3IFByb21pc2UoKHQscik9Pnt0aGlzLnJlc29sdmU9aT0+e3RoaXMuc3RhdHVzPSJmdWxmaWxsZWQiLHRoaXMuc3RvcHBlZEF0PURhdGUubm93KCksdChpKX0sdGhpcy5yZWplY3Q9aT0+e3RoaXMuc3RhdHVzPSJyZWplY3RlZCIsdGhpcy5zdG9wcGVkQXQ9RGF0ZS5ub3coKSxyKGkpfSx0aGlzLnN0YXJ0ZWRBdD1EYXRlLm5vdygpLHRoaXMuc3RhdHVzPSJwZW5kaW5nIn0pfX0sJDA9KCk9Pm5ldyB3U30pO3ZhciBrUyxPVHIsdUVlPXAoKCk9PntNUygpO2tTPWNsYXNze2NvbnN0cnVjdG9yKCl7dGhpcy5hY2N1bXVsYXRlZFByb21pc2VzPVtdLHRoaXMuZGVmZXJyZWQ9JDAoKSx0aGlzLnByb21pc2U9dGhpcy5kZWZlcnJlZC5wcm9taXNlLHNldFRpbWVvdXQoYXN5bmMoKT0+e2Zvcig7dGhpcy5hY2N1bXVsYXRlZFByb21pc2VzLmxlbmd0aD4wOylhd2FpdCB0aGlzLmFjY3VtdWxhdGVkUHJvbWlzZXMuc2hpZnQoKTt0aGlzLmRlZmVycmVkLnJlc29sdmUoKX0sMCl9c3ViRGVmZXIoKXtsZXQgdD0kMCgpO3JldHVybiB0aGlzLmFkZFByb21pc2UodC5wcm9taXNlKSx0fWFkZFByb21pc2UodCl7dGhpcy5hY2N1bXVsYXRlZFByb21pc2VzLnB1c2godCl9fSxPVHI9KCk9Pm5ldyBrU30pO3ZhciBYZT17fTtGZShYZSx7Q3VtdWxhdGl2ZURlZmVycmVkOigpPT5rUyxEZWZlcnJlZDooKT0+d1MsY3VtdWxhdGl2ZURlZmVyOigpPT5PVHIsZGVmZXI6KCk9PiQwLGZyb21DYWxsYmFjazooKT0+VlRyLGdldEZpcnN0VHJ1ZU9yRmFsc2U6KCk9PmpUcixtYXA6KCk9PkhUcixyZWplY3RlZFByb21pc2U6KCk9PkJUcixyZXNvbHZlZFByb21pc2U6KCk9PlJUcix0aW1lb3V0QW5kQ29udGludWU6KCk9PnFUcix0aW1lb3V0V3JhcDooKT0+cEVlfSk7dmFyIFJUcixCVHIsSFRyLHBFZSxxVHIsalRyLFZUcixFaT1wKCgpPT57TVMoKTt1RWUoKTtNUygpO1JUcj1lPT5Qcm9taXNlLnJlc29sdmUoZSksQlRyPWU9PlByb21pc2UucmVqZWN0KGUpLEhUcj1hc3luYyhlLHQpPT57bGV0IHI9W10saT1bXTtmb3IobGV0IGEgb2YgZSl7bGV0IG49dChhKTtyLnB1c2gobiksbi50aGVuKG89PntpLnB1c2gobyl9KX1yZXR1cm4gYXdhaXQgUHJvbWlzZS5hbGwociksaX0scEVlPWFzeW5jKGUsdCxyPSEwKT0+bmV3IFByb21pc2UoKGksYSk9PntzZXRUaW1lb3V0KCgpPT57cj9hKG5ldyBFcnJvcigidGltZW91dCIpKTppKG51bGwpfSx0KSxlLnRoZW4oaSxhKX0pLHFUcj1hc3luYyhlLHQ9NmU0KT0+cEVlKGUsdCwhMSksalRyPWFzeW5jIGU9PntsZXQgdD0kMCgpO2ZvcihsZXQgciBvZiBlKXIudGhlbihpPT57aT09PSEwJiZ0LnJlc29sdmUoITApfSk7cmV0dXJuIFByb21pc2UuYWxsKGUpLnRoZW4oKCk9Pnt0LnJlc29sdmUoITEpfSksdC5wcm9taXNlfSxWVHI9ZT0+bmV3IFByb21pc2UoKHQscik9PntlKChpLGEpPT57aT9yKGkpOnQoYSl9KX0pfSk7dmFyIFNTPXAoKCk9PntFaSgpfSk7ZnVuY3Rpb24gWHQoZSx0KXtpZih0eXBlb2YgdCE9ImZ1bmN0aW9uIiYmdCE9PW51bGwpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2xhc3MgZXh0ZW5kcyB2YWx1ZSAiK1N0cmluZyh0KSsiIGlzIG5vdCBhIGNvbnN0cnVjdG9yIG9yIG51bGwiKTt5WShlLHQpO2Z1bmN0aW9uIHIoKXt0aGlzLmNvbnN0cnVjdG9yPWV9ZS5wcm90b3R5cGU9dD09PW51bGw/T2JqZWN0LmNyZWF0ZSh0KTooci5wcm90b3R5cGU9dC5wcm90b3R5cGUsbmV3IHIpfWZ1bmN0aW9uIFdUcihlLHQpe3ZhciByPXt9O2Zvcih2YXIgaSBpbiBlKU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChlLGkpJiZ0LmluZGV4T2YoaSk8MCYmKHJbaV09ZVtpXSk7aWYoZSE9bnVsbCYmdHlwZW9mIE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHM9PSJmdW5jdGlvbiIpZm9yKHZhciBhPTAsaT1PYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKGUpO2E8aS5sZW5ndGg7YSsrKXQuaW5kZXhPZihpW2FdKTwwJiZPYmplY3QucHJvdG90eXBlLnByb3BlcnR5SXNFbnVtZXJhYmxlLmNhbGwoZSxpW2FdKSYmKHJbaVthXV09ZVtpW2FdXSk7cmV0dXJuIHJ9ZnVuY3Rpb24gR1RyKGUsdCxyLGkpe3ZhciBhPWFyZ3VtZW50cy5sZW5ndGgsbj1hPDM/dDppPT09bnVsbD9pPU9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IodCxyKTppLG87aWYodHlwZW9mIFJlZmxlY3Q9PSJvYmplY3QiJiZ0eXBlb2YgUmVmbGVjdC5kZWNvcmF0ZT09ImZ1bmN0aW9uIiluPVJlZmxlY3QuZGVjb3JhdGUoZSx0LHIsaSk7ZWxzZSBmb3IodmFyIHM9ZS5sZW5ndGgtMTtzPj0wO3MtLSkobz1lW3NdKSYmKG49KGE8Mz9vKG4pOmE+Mz9vKHQscixuKTpvKHQscikpfHxuKTtyZXR1cm4gYT4zJiZuJiZPYmplY3QuZGVmaW5lUHJvcGVydHkodCxyLG4pLG59ZnVuY3Rpb24gWVRyKGUsdCl7cmV0dXJuIGZ1bmN0aW9uKHIsaSl7dChyLGksZSl9fWZ1bmN0aW9uIFpUcihlLHQscixpLGEsbil7ZnVuY3Rpb24gbyh5KXtpZih5IT09dm9pZCAwJiZ0eXBlb2YgeSE9ImZ1bmN0aW9uIil0aHJvdyBuZXcgVHlwZUVycm9yKCJGdW5jdGlvbiBleHBlY3RlZCIpO3JldHVybiB5fWZvcih2YXIgcz1pLmtpbmQsbD1zPT09ImdldHRlciI/ImdldCI6cz09PSJzZXR0ZXIiPyJzZXQiOiJ2YWx1ZSIsYz0hdCYmZT9pLnN0YXRpYz9lOmUucHJvdG90eXBlOm51bGwsdT10fHwoYz9PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGMsaS5uYW1lKTp7fSksZCxoPSExLGY9ci5sZW5ndGgtMTtmPj0wO2YtLSl7dmFyIHg9e307Zm9yKHZhciB2IGluIGkpeFt2XT12PT09ImFjY2VzcyI/e306aVt2XTtmb3IodmFyIHYgaW4gaS5hY2Nlc3MpeC5hY2Nlc3Nbdl09aS5hY2Nlc3Nbdl07eC5hZGRJbml0aWFsaXplcj1mdW5jdGlvbih5KXtpZihoKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBhZGQgaW5pdGlhbGl6ZXJzIGFmdGVyIGRlY29yYXRpb24gaGFzIGNvbXBsZXRlZCIpO24ucHVzaChvKHl8fG51bGwpKX07dmFyIGI9KDAscltmXSkocz09PSJhY2Nlc3NvciI/e2dldDp1LmdldCxzZXQ6dS5zZXR9OnVbbF0seCk7aWYocz09PSJhY2Nlc3NvciIpe2lmKGI9PT12b2lkIDApY29udGludWU7aWYoYj09PW51bGx8fHR5cGVvZiBiIT0ib2JqZWN0Iil0aHJvdyBuZXcgVHlwZUVycm9yKCJPYmplY3QgZXhwZWN0ZWQiKTsoZD1vKGIuZ2V0KSkmJih1LmdldD1kKSwoZD1vKGIuc2V0KSkmJih1LnNldD1kKSwoZD1vKGIuaW5pdCkpJiZhLnVuc2hpZnQoZCl9ZWxzZShkPW8oYikpJiYocz09PSJmaWVsZCI/YS51bnNoaWZ0KGQpOnVbbF09ZCl9YyYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGMsaS5uYW1lLHUpLGg9ITB9ZnVuY3Rpb24gWFRyKGUsdCxyKXtmb3IodmFyIGk9YXJndW1lbnRzLmxlbmd0aD4yLGE9MDthPHQubGVuZ3RoO2ErKylyPWk/dFthXS5jYWxsKGUscik6dFthXS5jYWxsKGUpO3JldHVybiBpP3I6dm9pZCAwfWZ1bmN0aW9uIFFUcihlKXtyZXR1cm4gdHlwZW9mIGU9PSJzeW1ib2wiP2U6IiIuY29uY2F0KGUpfWZ1bmN0aW9uIEpUcihlLHQscil7cmV0dXJuIHR5cGVvZiB0PT0ic3ltYm9sIiYmKHQ9dC5kZXNjcmlwdGlvbj8iWyIuY29uY2F0KHQuZGVzY3JpcHRpb24sIl0iKToiIiksT2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIm5hbWUiLHtjb25maWd1cmFibGU6ITAsdmFsdWU6cj8iIi5jb25jYXQociwiICIsdCk6dH0pfWZ1bmN0aW9uIEtUcihlLHQpe2lmKHR5cGVvZiBSZWZsZWN0PT0ib2JqZWN0IiYmdHlwZW9mIFJlZmxlY3QubWV0YWRhdGE9PSJmdW5jdGlvbiIpcmV0dXJuIFJlZmxlY3QubWV0YWRhdGEoZSx0KX1mdW5jdGlvbiBTWShlLHQscixpKXtmdW5jdGlvbiBhKG4pe3JldHVybiBuIGluc3RhbmNlb2Ygcj9uOm5ldyByKGZ1bmN0aW9uKG8pe28obil9KX1yZXR1cm4gbmV3KHJ8fChyPVByb21pc2UpKShmdW5jdGlvbihuLG8pe2Z1bmN0aW9uIHModSl7dHJ5e2MoaS5uZXh0KHUpKX1jYXRjaChkKXtvKGQpfX1mdW5jdGlvbiBsKHUpe3RyeXtjKGkudGhyb3codSkpfWNhdGNoKGQpe28oZCl9fWZ1bmN0aW9uIGModSl7dS5kb25lP24odS52YWx1ZSk6YSh1LnZhbHVlKS50aGVuKHMsbCl9YygoaT1pLmFwcGx5KGUsdHx8W10pKS5uZXh0KCkpfSl9ZnVuY3Rpb24gYW0oZSx0KXt2YXIgcj17bGFiZWw6MCxzZW50OmZ1bmN0aW9uKCl7aWYoblswXSYxKXRocm93IG5bMV07cmV0dXJuIG5bMV19LHRyeXM6W10sb3BzOltdfSxpLGEsbixvPU9iamVjdC5jcmVhdGUoKHR5cGVvZiBJdGVyYXRvcj09ImZ1bmN0aW9uIj9JdGVyYXRvcjpPYmplY3QpLnByb3RvdHlwZSk7cmV0dXJuIG8ubmV4dD1zKDApLG8udGhyb3c9cygxKSxvLnJldHVybj1zKDIpLHR5cGVvZiBTeW1ib2w9PSJmdW5jdGlvbiImJihvW1N5bWJvbC5pdGVyYXRvcl09ZnVuY3Rpb24oKXtyZXR1cm4gdGhpc30pLG87ZnVuY3Rpb24gcyhjKXtyZXR1cm4gZnVuY3Rpb24odSl7cmV0dXJuIGwoW2MsdV0pfX1mdW5jdGlvbiBsKGMpe2lmKGkpdGhyb3cgbmV3IFR5cGVFcnJvcigiR2VuZXJhdG9yIGlzIGFscmVhZHkgZXhlY3V0aW5nLiIpO2Zvcig7byYmKG89MCxjWzBdJiYocj0wKSkscjspdHJ5e2lmKGk9MSxhJiYobj1jWzBdJjI/YS5yZXR1cm46Y1swXT9hLnRocm93fHwoKG49YS5yZXR1cm4pJiZuLmNhbGwoYSksMCk6YS5uZXh0KSYmIShuPW4uY2FsbChhLGNbMV0pKS5kb25lKXJldHVybiBuO3N3aXRjaChhPTAsbiYmKGM9W2NbMF0mMixuLnZhbHVlXSksY1swXSl7Y2FzZSAwOmNhc2UgMTpuPWM7YnJlYWs7Y2FzZSA0OnJldHVybiByLmxhYmVsKysse3ZhbHVlOmNbMV0sZG9uZTohMX07Y2FzZSA1OnIubGFiZWwrKyxhPWNbMV0sYz1bMF07Y29udGludWU7Y2FzZSA3OmM9ci5vcHMucG9wKCksci50cnlzLnBvcCgpO2NvbnRpbnVlO2RlZmF1bHQ6aWYobj1yLnRyeXMsIShuPW4ubGVuZ3RoPjAmJm5bbi5sZW5ndGgtMV0pJiYoY1swXT09PTZ8fGNbMF09PT0yKSl7cj0wO2NvbnRpbnVlfWlmKGNbMF09PT0zJiYoIW58fGNbMV0+blswXSYmY1sxXTxuWzNdKSl7ci5sYWJlbD1jWzFdO2JyZWFrfWlmKGNbMF09PT02JiZyLmxhYmVsPG5bMV0pe3IubGFiZWw9blsxXSxuPWM7YnJlYWt9aWYobiYmci5sYWJlbDxuWzJdKXtyLmxhYmVsPW5bMl0sci5vcHMucHVzaChjKTticmVha31uWzJdJiZyLm9wcy5wb3AoKSxyLnRyeXMucG9wKCk7Y29udGludWV9Yz10LmNhbGwoZSxyKX1jYXRjaCh1KXtjPVs2LHVdLGE9MH1maW5hbGx5e2k9bj0wfWlmKGNbMF0mNSl0aHJvdyBjWzFdO3JldHVybnt2YWx1ZTpjWzBdP2NbMV06dm9pZCAwLGRvbmU6ITB9fX1mdW5jdGlvbiBlX3IoZSx0KXtmb3IodmFyIHIgaW4gZSlyIT09ImRlZmF1bHQiJiYhT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHQscikmJk1ZKHQsZSxyKX1mdW5jdGlvbiB5YShlKXt2YXIgdD10eXBlb2YgU3ltYm9sPT0iZnVuY3Rpb24iJiZTeW1ib2wuaXRlcmF0b3Iscj10JiZlW3RdLGk9MDtpZihyKXJldHVybiByLmNhbGwoZSk7aWYoZSYmdHlwZW9mIGUubGVuZ3RoPT0ibnVtYmVyIilyZXR1cm57bmV4dDpmdW5jdGlvbigpe3JldHVybiBlJiZpPj1lLmxlbmd0aCYmKGU9dm9pZCAwKSx7dmFsdWU6ZSYmZVtpKytdLGRvbmU6IWV9fX07dGhyb3cgbmV3IFR5cGVFcnJvcih0PyJPYmplY3QgaXMgbm90IGl0ZXJhYmxlLiI6IlN5bWJvbC5pdGVyYXRvciBpcyBub3QgZGVmaW5lZC4iKX1mdW5jdGlvbiB0aShlLHQpe3ZhciByPXR5cGVvZiBTeW1ib2w9PSJmdW5jdGlvbiImJmVbU3ltYm9sLml0ZXJhdG9yXTtpZighcilyZXR1cm4gZTt2YXIgaT1yLmNhbGwoZSksYSxuPVtdLG87dHJ5e2Zvcig7KHQ9PT12b2lkIDB8fHQtLSA+MCkmJiEoYT1pLm5leHQoKSkuZG9uZTspbi5wdXNoKGEudmFsdWUpfWNhdGNoKHMpe289e2Vycm9yOnN9fWZpbmFsbHl7dHJ5e2EmJiFhLmRvbmUmJihyPWkucmV0dXJuKSYmci5jYWxsKGkpfWZpbmFsbHl7aWYobyl0aHJvdyBvLmVycm9yfX1yZXR1cm4gbn1mdW5jdGlvbiB0X3IoKXtmb3IodmFyIGU9W10sdD0wO3Q8YXJndW1lbnRzLmxlbmd0aDt0KyspZT1lLmNvbmNhdCh0aShhcmd1bWVudHNbdF0pKTtyZXR1cm4gZX1mdW5jdGlvbiByX3IoKXtmb3IodmFyIGU9MCx0PTAscj1hcmd1bWVudHMubGVuZ3RoO3Q8cjt0KyspZSs9YXJndW1lbnRzW3RdLmxlbmd0aDtmb3IodmFyIGk9QXJyYXkoZSksYT0wLHQ9MDt0PHI7dCsrKWZvcih2YXIgbj1hcmd1bWVudHNbdF0sbz0wLHM9bi5sZW5ndGg7bzxzO28rKyxhKyspaVthXT1uW29dO3JldHVybiBpfWZ1bmN0aW9uIEdpKGUsdCxyKXtpZihyfHxhcmd1bWVudHMubGVuZ3RoPT09Milmb3IodmFyIGk9MCxhPXQubGVuZ3RoLG47aTxhO2krKykobnx8IShpIGluIHQpKSYmKG58fChuPUFycmF5LnByb3RvdHlwZS5zbGljZS5jYWxsKHQsMCxpKSksbltpXT10W2ldKTtyZXR1cm4gZS5jb25jYXQobnx8QXJyYXkucHJvdG90eXBlLnNsaWNlLmNhbGwodCkpfWZ1bmN0aW9uIEJsKGUpe3JldHVybiB0aGlzIGluc3RhbmNlb2YgQmw/KHRoaXMudj1lLHRoaXMpOm5ldyBCbChlKX1mdW5jdGlvbiB6WShlLHQscil7aWYoIVN5bWJvbC5hc3luY0l0ZXJhdG9yKXRocm93IG5ldyBUeXBlRXJyb3IoIlN5bWJvbC5hc3luY0l0ZXJhdG9yIGlzIG5vdCBkZWZpbmVkLiIpO3ZhciBpPXIuYXBwbHkoZSx0fHxbXSksYSxuPVtdO3JldHVybiBhPU9iamVjdC5jcmVhdGUoKHR5cGVvZiBBc3luY0l0ZXJhdG9yPT0iZnVuY3Rpb24iP0FzeW5jSXRlcmF0b3I6T2JqZWN0KS5wcm90b3R5cGUpLHMoIm5leHQiKSxzKCJ0aHJvdyIpLHMoInJldHVybiIsbyksYVtTeW1ib2wuYXN5bmNJdGVyYXRvcl09ZnVuY3Rpb24oKXtyZXR1cm4gdGhpc30sYTtmdW5jdGlvbiBvKGYpe3JldHVybiBmdW5jdGlvbih4KXtyZXR1cm4gUHJvbWlzZS5yZXNvbHZlKHgpLnRoZW4oZixkKX19ZnVuY3Rpb24gcyhmLHgpe2lbZl0mJihhW2ZdPWZ1bmN0aW9uKHYpe3JldHVybiBuZXcgUHJvbWlzZShmdW5jdGlvbihiLHkpe24ucHVzaChbZix2LGIseV0pPjF8fGwoZix2KX0pfSx4JiYoYVtmXT14KGFbZl0pKSl9ZnVuY3Rpb24gbChmLHgpe3RyeXtjKGlbZl0oeCkpfWNhdGNoKHYpe2goblswXVszXSx2KX19ZnVuY3Rpb24gYyhmKXtmLnZhbHVlIGluc3RhbmNlb2YgQmw/UHJvbWlzZS5yZXNvbHZlKGYudmFsdWUudikudGhlbih1LGQpOmgoblswXVsyXSxmKX1mdW5jdGlvbiB1KGYpe2woIm5leHQiLGYpfWZ1bmN0aW9uIGQoZil7bCgidGhyb3ciLGYpfWZ1bmN0aW9uIGgoZix4KXtmKHgpLG4uc2hpZnQoKSxuLmxlbmd0aCYmbChuWzBdWzBdLG5bMF1bMV0pfX1mdW5jdGlvbiBpX3IoZSl7dmFyIHQscjtyZXR1cm4gdD17fSxpKCJuZXh0IiksaSgidGhyb3ciLGZ1bmN0aW9uKGEpe3Rocm93IGF9KSxpKCJyZXR1cm4iKSx0W1N5bWJvbC5pdGVyYXRvcl09ZnVuY3Rpb24oKXtyZXR1cm4gdGhpc30sdDtmdW5jdGlvbiBpKGEsbil7dFthXT1lW2FdP2Z1bmN0aW9uKG8pe3JldHVybihyPSFyKT97dmFsdWU6QmwoZVthXShvKSksZG9uZTohMX06bj9uKG8pOm99Om59fWZ1bmN0aW9uIENZKGUpe2lmKCFTeW1ib2wuYXN5bmNJdGVyYXRvcil0aHJvdyBuZXcgVHlwZUVycm9yKCJTeW1ib2wuYXN5bmNJdGVyYXRvciBpcyBub3QgZGVmaW5lZC4iKTt2YXIgdD1lW1N5bWJvbC5hc3luY0l0ZXJhdG9yXSxyO3JldHVybiB0P3QuY2FsbChlKTooZT10eXBlb2YgeWE9PSJmdW5jdGlvbiI/eWEoZSk6ZVtTeW1ib2wuaXRlcmF0b3JdKCkscj17fSxpKCJuZXh0IiksaSgidGhyb3ciKSxpKCJyZXR1cm4iKSxyW1N5bWJvbC5hc3luY0l0ZXJhdG9yXT1mdW5jdGlvbigpe3JldHVybiB0aGlzfSxyKTtmdW5jdGlvbiBpKG4pe3Jbbl09ZVtuXSYmZnVuY3Rpb24obyl7cmV0dXJuIG5ldyBQcm9taXNlKGZ1bmN0aW9uKHMsbCl7bz1lW25dKG8pLGEocyxsLG8uZG9uZSxvLnZhbHVlKX0pfX1mdW5jdGlvbiBhKG4sbyxzLGwpe1Byb21pc2UucmVzb2x2ZShsKS50aGVuKGZ1bmN0aW9uKGMpe24oe3ZhbHVlOmMsZG9uZTpzfSl9LG8pfX1mdW5jdGlvbiBhX3IoZSx0KXtyZXR1cm4gT2JqZWN0LmRlZmluZVByb3BlcnR5P09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJyYXciLHt2YWx1ZTp0fSk6ZS5yYXc9dCxlfWZ1bmN0aW9uIG9fcihlKXtpZihlJiZlLl9fZXNNb2R1bGUpcmV0dXJuIGU7dmFyIHQ9e307aWYoZSE9bnVsbClmb3IodmFyIHI9a1koZSksaT0wO2k8ci5sZW5ndGg7aSsrKXJbaV0hPT0iZGVmYXVsdCImJk1ZKHQsZSxyW2ldKTtyZXR1cm4gbl9yKHQsZSksdH1mdW5jdGlvbiBzX3IoZSl7cmV0dXJuIGUmJmUuX19lc01vZHVsZT9lOntkZWZhdWx0OmV9fWZ1bmN0aW9uIGxfcihlLHQscixpKXtpZihyPT09ImEiJiYhaSl0aHJvdyBuZXcgVHlwZUVycm9yKCJQcml2YXRlIGFjY2Vzc29yIHdhcyBkZWZpbmVkIHdpdGhvdXQgYSBnZXR0ZXIiKTtpZih0eXBlb2YgdD09ImZ1bmN0aW9uIj9lIT09dHx8IWk6IXQuaGFzKGUpKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCByZWFkIHByaXZhdGUgbWVtYmVyIGZyb20gYW4gb2JqZWN0IHdob3NlIGNsYXNzIGRpZCBub3QgZGVjbGFyZSBpdCIpO3JldHVybiByPT09Im0iP2k6cj09PSJhIj9pLmNhbGwoZSk6aT9pLnZhbHVlOnQuZ2V0KGUpfWZ1bmN0aW9uIGNfcihlLHQscixpLGEpe2lmKGk9PT0ibSIpdGhyb3cgbmV3IFR5cGVFcnJvcigiUHJpdmF0ZSBtZXRob2QgaXMgbm90IHdyaXRhYmxlIik7aWYoaT09PSJhIiYmIWEpdGhyb3cgbmV3IFR5cGVFcnJvcigiUHJpdmF0ZSBhY2Nlc3NvciB3YXMgZGVmaW5lZCB3aXRob3V0IGEgc2V0dGVyIik7aWYodHlwZW9mIHQ9PSJmdW5jdGlvbiI/ZSE9PXR8fCFhOiF0LmhhcyhlKSl0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3Qgd3JpdGUgcHJpdmF0ZSBtZW1iZXIgdG8gYW4gb2JqZWN0IHdob3NlIGNsYXNzIGRpZCBub3QgZGVjbGFyZSBpdCIpO3JldHVybiBpPT09ImEiP2EuY2FsbChlLHIpOmE/YS52YWx1ZT1yOnQuc2V0KGUscikscn1mdW5jdGlvbiBkX3IoZSx0KXtpZih0PT09bnVsbHx8dHlwZW9mIHQhPSJvYmplY3QiJiZ0eXBlb2YgdCE9ImZ1bmN0aW9uIil0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgdXNlICdpbicgb3BlcmF0b3Igb24gbm9uLW9iamVjdCIpO3JldHVybiB0eXBlb2YgZT09ImZ1bmN0aW9uIj90PT09ZTplLmhhcyh0KX1mdW5jdGlvbiB1X3IoZSx0LHIpe2lmKHQhPW51bGwpe2lmKHR5cGVvZiB0IT0ib2JqZWN0IiYmdHlwZW9mIHQhPSJmdW5jdGlvbiIpdGhyb3cgbmV3IFR5cGVFcnJvcigiT2JqZWN0IGV4cGVjdGVkLiIpO3ZhciBpLGE7aWYocil7aWYoIVN5bWJvbC5hc3luY0Rpc3Bvc2UpdGhyb3cgbmV3IFR5cGVFcnJvcigiU3ltYm9sLmFzeW5jRGlzcG9zZSBpcyBub3QgZGVmaW5lZC4iKTtpPXRbU3ltYm9sLmFzeW5jRGlzcG9zZV19aWYoaT09PXZvaWQgMCl7aWYoIVN5bWJvbC5kaXNwb3NlKXRocm93IG5ldyBUeXBlRXJyb3IoIlN5bWJvbC5kaXNwb3NlIGlzIG5vdCBkZWZpbmVkLiIpO2k9dFtTeW1ib2wuZGlzcG9zZV0sciYmKGE9aSl9aWYodHlwZW9mIGkhPSJmdW5jdGlvbiIpdGhyb3cgbmV3IFR5cGVFcnJvcigiT2JqZWN0IG5vdCBkaXNwb3NhYmxlLiIpO2EmJihpPWZ1bmN0aW9uKCl7dHJ5e2EuY2FsbCh0aGlzKX1jYXRjaChuKXtyZXR1cm4gUHJvbWlzZS5yZWplY3Qobil9fSksZS5zdGFjay5wdXNoKHt2YWx1ZTp0LGRpc3Bvc2U6aSxhc3luYzpyfSl9ZWxzZSByJiZlLnN0YWNrLnB1c2goe2FzeW5jOiEwfSk7cmV0dXJuIHR9ZnVuY3Rpb24gaF9yKGUpe2Z1bmN0aW9uIHQobil7ZS5lcnJvcj1lLmhhc0Vycm9yP25ldyBwX3IobixlLmVycm9yLCJBbiBlcnJvciB3YXMgc3VwcHJlc3NlZCBkdXJpbmcgZGlzcG9zYWwuIik6bixlLmhhc0Vycm9yPSEwfXZhciByLGk9MDtmdW5jdGlvbiBhKCl7Zm9yKDtyPWUuc3RhY2sucG9wKCk7KXRyeXtpZighci5hc3luYyYmaT09PTEpcmV0dXJuIGk9MCxlLnN0YWNrLnB1c2gociksUHJvbWlzZS5yZXNvbHZlKCkudGhlbihhKTtpZihyLmRpc3Bvc2Upe3ZhciBuPXIuZGlzcG9zZS5jYWxsKHIudmFsdWUpO2lmKHIuYXN5bmMpcmV0dXJuIGl8PTIsUHJvbWlzZS5yZXNvbHZlKG4pLnRoZW4oYSxmdW5jdGlvbihvKXtyZXR1cm4gdChvKSxhKCl9KX1lbHNlIGl8PTF9Y2F0Y2gobyl7dChvKX1pZihpPT09MSlyZXR1cm4gZS5oYXNFcnJvcj9Qcm9taXNlLnJlamVjdChlLmVycm9yKTpQcm9taXNlLnJlc29sdmUoKTtpZihlLmhhc0Vycm9yKXRocm93IGUuZXJyb3J9cmV0dXJuIGEoKX1mdW5jdGlvbiBmX3IoZSx0KXtyZXR1cm4gdHlwZW9mIGU9PSJzdHJpbmciJiYvXlwuXC4/XC8vLnRlc3QoZSk/ZS5yZXBsYWNlKC9cLih0c3gpJHwoKD86XC5kKT8pKCg/OlwuW14uL10rPyk/KVwuKFtjbV0/KXRzJC9pLGZ1bmN0aW9uKHIsaSxhLG4sbyl7cmV0dXJuIGk/dD8iLmpzeCI6Ii5qcyI6YSYmKCFufHwhbyk/cjphK24rIi4iK28udG9Mb3dlckNhc2UoKSsianMifSk6ZX12YXIgeVksd1ksTVksbl9yLGtZLHBfcixBSjEscXI9cCgoKT0+e3lZPWZ1bmN0aW9uKGUsdCl7cmV0dXJuIHlZPU9iamVjdC5zZXRQcm90b3R5cGVPZnx8e19fcHJvdG9fXzpbXX1pbnN0YW5jZW9mIEFycmF5JiZmdW5jdGlvbihyLGkpe3IuX19wcm90b19fPWl9fHxmdW5jdGlvbihyLGkpe2Zvcih2YXIgYSBpbiBpKU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChpLGEpJiYoclthXT1pW2FdKX0seVkoZSx0KX07d1k9ZnVuY3Rpb24oKXtyZXR1cm4gd1k9T2JqZWN0LmFzc2lnbnx8ZnVuY3Rpb24odCl7Zm9yKHZhciByLGk9MSxhPWFyZ3VtZW50cy5sZW5ndGg7aTxhO2krKyl7cj1hcmd1bWVudHNbaV07Zm9yKHZhciBuIGluIHIpT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHIsbikmJih0W25dPXJbbl0pfXJldHVybiB0fSx3WS5hcHBseSh0aGlzLGFyZ3VtZW50cyl9O01ZPU9iamVjdC5jcmVhdGU/KGZ1bmN0aW9uKGUsdCxyLGkpe2k9PT12b2lkIDAmJihpPXIpO3ZhciBhPU9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IodCxyKTsoIWF8fCgiZ2V0ImluIGE/IXQuX19lc01vZHVsZTphLndyaXRhYmxlfHxhLmNvbmZpZ3VyYWJsZSkpJiYoYT17ZW51bWVyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdFtyXX19KSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZSxpLGEpfSk6KGZ1bmN0aW9uKGUsdCxyLGkpe2k9PT12b2lkIDAmJihpPXIpLGVbaV09dFtyXX0pO25fcj1PYmplY3QuY3JlYXRlPyhmdW5jdGlvbihlLHQpe09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJkZWZhdWx0Iix7ZW51bWVyYWJsZTohMCx2YWx1ZTp0fSl9KTpmdW5jdGlvbihlLHQpe2UuZGVmYXVsdD10fSxrWT1mdW5jdGlvbihlKXtyZXR1cm4ga1k9T2JqZWN0LmdldE93blByb3BlcnR5TmFtZXN8fGZ1bmN0aW9uKHQpe3ZhciByPVtdO2Zvcih2YXIgaSBpbiB0KU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbCh0LGkpJiYocltyLmxlbmd0aF09aSk7cmV0dXJuIHJ9LGtZKGUpfTtwX3I9dHlwZW9mIFN1cHByZXNzZWRFcnJvcj09ImZ1bmN0aW9uIj9TdXBwcmVzc2VkRXJyb3I6ZnVuY3Rpb24oZSx0LHIpe3ZhciBpPW5ldyBFcnJvcihyKTtyZXR1cm4gaS5uYW1lPSJTdXBwcmVzc2VkRXJyb3IiLGkuZXJyb3I9ZSxpLnN1cHByZXNzZWQ9dCxpfTtBSjE9e19fZXh0ZW5kczpYdCxfX2Fzc2lnbjp3WSxfX3Jlc3Q6V1RyLF9fZGVjb3JhdGU6R1RyLF9fcGFyYW06WVRyLF9fZXNEZWNvcmF0ZTpaVHIsX19ydW5Jbml0aWFsaXplcnM6WFRyLF9fcHJvcEtleTpRVHIsX19zZXRGdW5jdGlvbk5hbWU6SlRyLF9fbWV0YWRhdGE6S1RyLF9fYXdhaXRlcjpTWSxfX2dlbmVyYXRvcjphbSxfX2NyZWF0ZUJpbmRpbmc6TVksX19leHBvcnRTdGFyOmVfcixfX3ZhbHVlczp5YSxfX3JlYWQ6dGksX19zcHJlYWQ6dF9yLF9fc3ByZWFkQXJyYXlzOnJfcixfX3NwcmVhZEFycmF5OkdpLF9fYXdhaXQ6QmwsX19hc3luY0dlbmVyYXRvcjp6WSxfX2FzeW5jRGVsZWdhdG9yOmlfcixfX2FzeW5jVmFsdWVzOkNZLF9fbWFrZVRlbXBsYXRlT2JqZWN0OmFfcixfX2ltcG9ydFN0YXI6b19yLF9faW1wb3J0RGVmYXVsdDpzX3IsX19jbGFzc1ByaXZhdGVGaWVsZEdldDpsX3IsX19jbGFzc1ByaXZhdGVGaWVsZFNldDpjX3IsX19jbGFzc1ByaXZhdGVGaWVsZEluOmRfcixfX2FkZERpc3Bvc2FibGVSZXNvdXJjZTp1X3IsX19kaXNwb3NlUmVzb3VyY2VzOmhfcixfX3Jld3JpdGVSZWxhdGl2ZUltcG9ydEV4dGVuc2lvbjpmX3J9fSk7ZnVuY3Rpb24gX3QoZSl7cmV0dXJuIHR5cGVvZiBlPT0iZnVuY3Rpb24ifXZhciAkaT1wKCgpPT57fSk7ZnVuY3Rpb24gdm4oZSl7dmFyIHQ9ZnVuY3Rpb24oaSl7RXJyb3IuY2FsbChpKSxpLnN0YWNrPW5ldyBFcnJvcigpLnN0YWNrfSxyPWUodCk7cmV0dXJuIHIucHJvdG90eXBlPU9iamVjdC5jcmVhdGUoRXJyb3IucHJvdG90eXBlKSxyLnByb3RvdHlwZS5jb25zdHJ1Y3Rvcj1yLHJ9dmFyIEkwPXAoKCk9Pnt9KTt2YXIgbm0sVFk9cCgoKT0+e0kwKCk7bm09dm4oZnVuY3Rpb24oZSl7cmV0dXJuIGZ1bmN0aW9uKHIpe2UodGhpcyksdGhpcy5tZXNzYWdlPXI/ci5sZW5ndGgrYCBlcnJvcnMgb2NjdXJyZWQgZHVyaW5nIHVuc3Vic2NyaXB0aW9uOgpgK3IubWFwKGZ1bmN0aW9uKGksYSl7cmV0dXJuIGErMSsiKSAiK2kudG9TdHJpbmcoKX0pLmpvaW4oYAogIGApOiIiLHRoaXMubmFtZT0iVW5zdWJzY3JpcHRpb25FcnJvciIsdGhpcy5lcnJvcnM9cn19KX0pO2Z1bmN0aW9uIGQyKGUsdCl7aWYoZSl7dmFyIHI9ZS5pbmRleE9mKHQpOzA8PXImJmUuc3BsaWNlKHIsMSl9fXZhciBadT1wKCgpPT57fSk7ZnVuY3Rpb24gelMoZSl7cmV0dXJuIGUgaW5zdGFuY2VvZiBxMXx8ZSYmImNsb3NlZCJpbiBlJiZfdChlLnJlbW92ZSkmJl90KGUuYWRkKSYmX3QoZS51bnN1YnNjcmliZSl9ZnVuY3Rpb24gaEVlKGUpe190KGUpP2UoKTplLnVuc3Vic2NyaWJlKCl9dmFyIHExLF9ZLHpzPXAoKCk9PntxcigpOyRpKCk7VFkoKTtadSgpO3ExPShmdW5jdGlvbigpe2Z1bmN0aW9uIGUodCl7dGhpcy5pbml0aWFsVGVhcmRvd249dCx0aGlzLmNsb3NlZD0hMSx0aGlzLl9wYXJlbnRhZ2U9bnVsbCx0aGlzLl9maW5hbGl6ZXJzPW51bGx9cmV0dXJuIGUucHJvdG90eXBlLnVuc3Vic2NyaWJlPWZ1bmN0aW9uKCl7dmFyIHQscixpLGEsbjtpZighdGhpcy5jbG9zZWQpe3RoaXMuY2xvc2VkPSEwO3ZhciBvPXRoaXMuX3BhcmVudGFnZTtpZihvKWlmKHRoaXMuX3BhcmVudGFnZT1udWxsLEFycmF5LmlzQXJyYXkobykpdHJ5e2Zvcih2YXIgcz15YShvKSxsPXMubmV4dCgpOyFsLmRvbmU7bD1zLm5leHQoKSl7dmFyIGM9bC52YWx1ZTtjLnJlbW92ZSh0aGlzKX19Y2F0Y2godil7dD17ZXJyb3I6dn19ZmluYWxseXt0cnl7bCYmIWwuZG9uZSYmKHI9cy5yZXR1cm4pJiZyLmNhbGwocyl9ZmluYWxseXtpZih0KXRocm93IHQuZXJyb3J9fWVsc2Ugby5yZW1vdmUodGhpcyk7dmFyIHU9dGhpcy5pbml0aWFsVGVhcmRvd247aWYoX3QodSkpdHJ5e3UoKX1jYXRjaCh2KXtuPXYgaW5zdGFuY2VvZiBubT92LmVycm9yczpbdl19dmFyIGQ9dGhpcy5fZmluYWxpemVycztpZihkKXt0aGlzLl9maW5hbGl6ZXJzPW51bGw7dHJ5e2Zvcih2YXIgaD15YShkKSxmPWgubmV4dCgpOyFmLmRvbmU7Zj1oLm5leHQoKSl7dmFyIHg9Zi52YWx1ZTt0cnl7aEVlKHgpfWNhdGNoKHYpe249bj8/W10sdiBpbnN0YW5jZW9mIG5tP249R2koR2koW10sdGkobikpLHRpKHYuZXJyb3JzKSk6bi5wdXNoKHYpfX19Y2F0Y2godil7aT17ZXJyb3I6dn19ZmluYWxseXt0cnl7ZiYmIWYuZG9uZSYmKGE9aC5yZXR1cm4pJiZhLmNhbGwoaCl9ZmluYWxseXtpZihpKXRocm93IGkuZXJyb3J9fX1pZihuKXRocm93IG5ldyBubShuKX19LGUucHJvdG90eXBlLmFkZD1mdW5jdGlvbih0KXt2YXIgcjtpZih0JiZ0IT09dGhpcylpZih0aGlzLmNsb3NlZCloRWUodCk7ZWxzZXtpZih0IGluc3RhbmNlb2YgZSl7aWYodC5jbG9zZWR8fHQuX2hhc1BhcmVudCh0aGlzKSlyZXR1cm47dC5fYWRkUGFyZW50KHRoaXMpfSh0aGlzLl9maW5hbGl6ZXJzPShyPXRoaXMuX2ZpbmFsaXplcnMpIT09bnVsbCYmciE9PXZvaWQgMD9yOltdKS5wdXNoKHQpfX0sZS5wcm90b3R5cGUuX2hhc1BhcmVudD1mdW5jdGlvbih0KXt2YXIgcj10aGlzLl9wYXJlbnRhZ2U7cmV0dXJuIHI9PT10fHxBcnJheS5pc0FycmF5KHIpJiZyLmluY2x1ZGVzKHQpfSxlLnByb3RvdHlwZS5fYWRkUGFyZW50PWZ1bmN0aW9uKHQpe3ZhciByPXRoaXMuX3BhcmVudGFnZTt0aGlzLl9wYXJlbnRhZ2U9QXJyYXkuaXNBcnJheShyKT8oci5wdXNoKHQpLHIpOnI/W3IsdF06dH0sZS5wcm90b3R5cGUuX3JlbW92ZVBhcmVudD1mdW5jdGlvbih0KXt2YXIgcj10aGlzLl9wYXJlbnRhZ2U7cj09PXQ/dGhpcy5fcGFyZW50YWdlPW51bGw6QXJyYXkuaXNBcnJheShyKSYmZDIocix0KX0sZS5wcm90b3R5cGUucmVtb3ZlPWZ1bmN0aW9uKHQpe3ZhciByPXRoaXMuX2ZpbmFsaXplcnM7ciYmZDIocix0KSx0IGluc3RhbmNlb2YgZSYmdC5fcmVtb3ZlUGFyZW50KHRoaXMpfSxlLkVNUFRZPShmdW5jdGlvbigpe3ZhciB0PW5ldyBlO3JldHVybiB0LmNsb3NlZD0hMCx0fSkoKSxlfSkoKSxfWT1xMS5FTVBUWX0pO3ZhciB5byxYdT1wKCgpPT57eW89e29uVW5oYW5kbGVkRXJyb3I6bnVsbCxvblN0b3BwZWROb3RpZmljYXRpb246bnVsbCxQcm9taXNlOnZvaWQgMCx1c2VEZXByZWNhdGVkU3luY2hyb25vdXNFcnJvckhhbmRsaW5nOiExLHVzZURlcHJlY2F0ZWROZXh0Q29udGV4dDohMX19KTt2YXIgUXUsTFk9cCgoKT0+e3FyKCk7UXU9e3NldFRpbWVvdXQ6ZnVuY3Rpb24oZSx0KXtmb3IodmFyIHI9W10saT0yO2k8YXJndW1lbnRzLmxlbmd0aDtpKyspcltpLTJdPWFyZ3VtZW50c1tpXTt2YXIgYT1RdS5kZWxlZ2F0ZTtyZXR1cm4gYT8uc2V0VGltZW91dD9hLnNldFRpbWVvdXQuYXBwbHkoYSxHaShbZSx0XSx0aShyKSkpOnNldFRpbWVvdXQuYXBwbHkodm9pZCAwLEdpKFtlLHRdLHRpKHIpKSl9LGNsZWFyVGltZW91dDpmdW5jdGlvbihlKXt2YXIgdD1RdS5kZWxlZ2F0ZTtyZXR1cm4odD8uY2xlYXJUaW1lb3V0fHxjbGVhclRpbWVvdXQpKGUpfSxkZWxlZ2F0ZTp2b2lkIDB9fSk7ZnVuY3Rpb24gQ1MoZSl7UXUuc2V0VGltZW91dChmdW5jdGlvbigpe3ZhciB0PXlvLm9uVW5oYW5kbGVkRXJyb3I7aWYodCl0KGUpO2Vsc2UgdGhyb3cgZX0pfXZhciBBWT1wKCgpPT57WHUoKTtMWSgpfSk7ZnVuY3Rpb24gd28oKXt9dmFyIHY2PXAoKCk9Pnt9KTtmdW5jdGlvbiBtRWUoZSl7cmV0dXJuIERZKCJFIix2b2lkIDAsZSl9ZnVuY3Rpb24gZ0VlKGUpe3JldHVybiBEWSgiTiIsZSx2b2lkIDApfWZ1bmN0aW9uIERZKGUsdCxyKXtyZXR1cm57a2luZDplLHZhbHVlOnQsZXJyb3I6cn19dmFyIGZFZSxiRWU9cCgoKT0+e2ZFZT0oZnVuY3Rpb24oKXtyZXR1cm4gRFkoIkMiLHZvaWQgMCx2b2lkIDApfSkoKX0pO2Z1bmN0aW9uIEp1KGUpe2lmKHlvLnVzZURlcHJlY2F0ZWRTeW5jaHJvbm91c0Vycm9ySGFuZGxpbmcpe3ZhciB0PSF4NjtpZih0JiYoeDY9e2Vycm9yVGhyb3duOiExLGVycm9yOm51bGx9KSxlKCksdCl7dmFyIHI9eDYsaT1yLmVycm9yVGhyb3duLGE9ci5lcnJvcjtpZih4Nj1udWxsLGkpdGhyb3cgYX19ZWxzZSBlKCl9ZnVuY3Rpb24gdkVlKGUpe3lvLnVzZURlcHJlY2F0ZWRTeW5jaHJvbm91c0Vycm9ySGFuZGxpbmcmJng2JiYoeDYuZXJyb3JUaHJvd249ITAseDYuZXJyb3I9ZSl9dmFyIHg2LFRTPXAoKCk9PntYdSgpO3g2PW51bGx9KTtmdW5jdGlvbiBFWShlLHQpe3JldHVybiBtX3IuY2FsbChlLHQpfWZ1bmN0aW9uIF9TKGUpe3lvLnVzZURlcHJlY2F0ZWRTeW5jaHJvbm91c0Vycm9ySGFuZGxpbmc/dkVlKGUpOkNTKGUpfWZ1bmN0aW9uIGJfcihlKXt0aHJvdyBlfWZ1bmN0aW9uICRZKGUsdCl7dmFyIHI9eW8ub25TdG9wcGVkTm90aWZpY2F0aW9uO3ImJlF1LnNldFRpbWVvdXQoZnVuY3Rpb24oKXtyZXR1cm4gcihlLHQpfSl9dmFyIHk2LG1fcixnX3Isb20sdl9yLExTPXAoKCk9PntxcigpOyRpKCk7enMoKTtYdSgpO0FZKCk7djYoKTtiRWUoKTtMWSgpO1RTKCk7eTY9KGZ1bmN0aW9uKGUpe1h0KHQsZSk7ZnVuY3Rpb24gdChyKXt2YXIgaT1lLmNhbGwodGhpcyl8fHRoaXM7cmV0dXJuIGkuaXNTdG9wcGVkPSExLHI/KGkuZGVzdGluYXRpb249cix6UyhyKSYmci5hZGQoaSkpOmkuZGVzdGluYXRpb249dl9yLGl9cmV0dXJuIHQuY3JlYXRlPWZ1bmN0aW9uKHIsaSxhKXtyZXR1cm4gbmV3IG9tKHIsaSxhKX0sdC5wcm90b3R5cGUubmV4dD1mdW5jdGlvbihyKXt0aGlzLmlzU3RvcHBlZD8kWShnRWUociksdGhpcyk6dGhpcy5fbmV4dChyKX0sdC5wcm90b3R5cGUuZXJyb3I9ZnVuY3Rpb24ocil7dGhpcy5pc1N0b3BwZWQ/JFkobUVlKHIpLHRoaXMpOih0aGlzLmlzU3RvcHBlZD0hMCx0aGlzLl9lcnJvcihyKSl9LHQucHJvdG90eXBlLmNvbXBsZXRlPWZ1bmN0aW9uKCl7dGhpcy5pc1N0b3BwZWQ/JFkoZkVlLHRoaXMpOih0aGlzLmlzU3RvcHBlZD0hMCx0aGlzLl9jb21wbGV0ZSgpKX0sdC5wcm90b3R5cGUudW5zdWJzY3JpYmU9ZnVuY3Rpb24oKXt0aGlzLmNsb3NlZHx8KHRoaXMuaXNTdG9wcGVkPSEwLGUucHJvdG90eXBlLnVuc3Vic2NyaWJlLmNhbGwodGhpcyksdGhpcy5kZXN0aW5hdGlvbj1udWxsKX0sdC5wcm90b3R5cGUuX25leHQ9ZnVuY3Rpb24ocil7dGhpcy5kZXN0aW5hdGlvbi5uZXh0KHIpfSx0LnByb3RvdHlwZS5fZXJyb3I9ZnVuY3Rpb24ocil7dHJ5e3RoaXMuZGVzdGluYXRpb24uZXJyb3Iocil9ZmluYWxseXt0aGlzLnVuc3Vic2NyaWJlKCl9fSx0LnByb3RvdHlwZS5fY29tcGxldGU9ZnVuY3Rpb24oKXt0cnl7dGhpcy5kZXN0aW5hdGlvbi5jb21wbGV0ZSgpfWZpbmFsbHl7dGhpcy51bnN1YnNjcmliZSgpfX0sdH0pKHExKSxtX3I9RnVuY3Rpb24ucHJvdG90eXBlLmJpbmQ7Z19yPShmdW5jdGlvbigpe2Z1bmN0aW9uIGUodCl7dGhpcy5wYXJ0aWFsT2JzZXJ2ZXI9dH1yZXR1cm4gZS5wcm90b3R5cGUubmV4dD1mdW5jdGlvbih0KXt2YXIgcj10aGlzLnBhcnRpYWxPYnNlcnZlcjtpZihyLm5leHQpdHJ5e3IubmV4dCh0KX1jYXRjaChpKXtfUyhpKX19LGUucHJvdG90eXBlLmVycm9yPWZ1bmN0aW9uKHQpe3ZhciByPXRoaXMucGFydGlhbE9ic2VydmVyO2lmKHIuZXJyb3IpdHJ5e3IuZXJyb3IodCl9Y2F0Y2goaSl7X1MoaSl9ZWxzZSBfUyh0KX0sZS5wcm90b3R5cGUuY29tcGxldGU9ZnVuY3Rpb24oKXt2YXIgdD10aGlzLnBhcnRpYWxPYnNlcnZlcjtpZih0LmNvbXBsZXRlKXRyeXt0LmNvbXBsZXRlKCl9Y2F0Y2gocil7X1Mocil9fSxlfSkoKSxvbT0oZnVuY3Rpb24oZSl7WHQodCxlKTtmdW5jdGlvbiB0KHIsaSxhKXt2YXIgbj1lLmNhbGwodGhpcyl8fHRoaXMsbztpZihfdChyKXx8IXIpbz17bmV4dDpyPz92b2lkIDAsZXJyb3I6aT8/dm9pZCAwLGNvbXBsZXRlOmE/P3ZvaWQgMH07ZWxzZXt2YXIgcztuJiZ5by51c2VEZXByZWNhdGVkTmV4dENvbnRleHQ/KHM9T2JqZWN0LmNyZWF0ZShyKSxzLnVuc3Vic2NyaWJlPWZ1bmN0aW9uKCl7cmV0dXJuIG4udW5zdWJzY3JpYmUoKX0sbz17bmV4dDpyLm5leHQmJkVZKHIubmV4dCxzKSxlcnJvcjpyLmVycm9yJiZFWShyLmVycm9yLHMpLGNvbXBsZXRlOnIuY29tcGxldGUmJkVZKHIuY29tcGxldGUscyl9KTpvPXJ9cmV0dXJuIG4uZGVzdGluYXRpb249bmV3IGdfcihvKSxufXJldHVybiB0fSkoeTYpO3Zfcj17Y2xvc2VkOiEwLG5leHQ6d28sZXJyb3I6Yl9yLGNvbXBsZXRlOndvfX0pO3ZhciB3NixzbT1wKCgpPT57dzY9KGZ1bmN0aW9uKCl7cmV0dXJuIHR5cGVvZiBTeW1ib2w9PSJmdW5jdGlvbiImJlN5bWJvbC5vYnNlcnZhYmxlfHwiQEBvYnNlcnZhYmxlIn0pKCl9KTtmdW5jdGlvbiBsbShlKXtyZXR1cm4gZX12YXIgQVM9cCgoKT0+e30pO2Z1bmN0aW9uIHhfcigpe2Zvcih2YXIgZT1bXSx0PTA7dDxhcmd1bWVudHMubGVuZ3RoO3QrKyllW3RdPWFyZ3VtZW50c1t0XTtyZXR1cm4gSVkoZSl9ZnVuY3Rpb24gSVkoZSl7cmV0dXJuIGUubGVuZ3RoPT09MD9sbTplLmxlbmd0aD09PTE/ZVswXTpmdW5jdGlvbihyKXtyZXR1cm4gZS5yZWR1Y2UoZnVuY3Rpb24oaSxhKXtyZXR1cm4gYShpKX0scil9fXZhciBQWT1wKCgpPT57QVMoKX0pO2Z1bmN0aW9uIHhFZShlKXt2YXIgdDtyZXR1cm4odD1lPz95by5Qcm9taXNlKSE9PW51bGwmJnQhPT12b2lkIDA/dDpQcm9taXNlfWZ1bmN0aW9uIHlfcihlKXtyZXR1cm4gZSYmX3QoZS5uZXh0KSYmX3QoZS5lcnJvcikmJl90KGUuY29tcGxldGUpfWZ1bmN0aW9uIHdfcihlKXtyZXR1cm4gZSYmZSBpbnN0YW5jZW9mIHk2fHx5X3IoZSkmJnpTKGUpfXZhciBxdCx4bj1wKCgpPT57TFMoKTt6cygpO3NtKCk7UFkoKTtYdSgpOyRpKCk7VFMoKTtxdD0oZnVuY3Rpb24oKXtmdW5jdGlvbiBlKHQpe3QmJih0aGlzLl9zdWJzY3JpYmU9dCl9cmV0dXJuIGUucHJvdG90eXBlLmxpZnQ9ZnVuY3Rpb24odCl7dmFyIHI9bmV3IGU7cmV0dXJuIHIuc291cmNlPXRoaXMsci5vcGVyYXRvcj10LHJ9LGUucHJvdG90eXBlLnN1YnNjcmliZT1mdW5jdGlvbih0LHIsaSl7dmFyIGE9dGhpcyxuPXdfcih0KT90Om5ldyBvbSh0LHIsaSk7cmV0dXJuIEp1KGZ1bmN0aW9uKCl7dmFyIG89YSxzPW8ub3BlcmF0b3IsbD1vLnNvdXJjZTtuLmFkZChzP3MuY2FsbChuLGwpOmw/YS5fc3Vic2NyaWJlKG4pOmEuX3RyeVN1YnNjcmliZShuKSl9KSxufSxlLnByb3RvdHlwZS5fdHJ5U3Vic2NyaWJlPWZ1bmN0aW9uKHQpe3RyeXtyZXR1cm4gdGhpcy5fc3Vic2NyaWJlKHQpfWNhdGNoKHIpe3QuZXJyb3Iocil9fSxlLnByb3RvdHlwZS5mb3JFYWNoPWZ1bmN0aW9uKHQscil7dmFyIGk9dGhpcztyZXR1cm4gcj14RWUociksbmV3IHIoZnVuY3Rpb24oYSxuKXt2YXIgbz1uZXcgb20oe25leHQ6ZnVuY3Rpb24ocyl7dHJ5e3Qocyl9Y2F0Y2gobCl7bihsKSxvLnVuc3Vic2NyaWJlKCl9fSxlcnJvcjpuLGNvbXBsZXRlOmF9KTtpLnN1YnNjcmliZShvKX0pfSxlLnByb3RvdHlwZS5fc3Vic2NyaWJlPWZ1bmN0aW9uKHQpe3ZhciByO3JldHVybihyPXRoaXMuc291cmNlKT09PW51bGx8fHI9PT12b2lkIDA/dm9pZCAwOnIuc3Vic2NyaWJlKHQpfSxlLnByb3RvdHlwZVt3Nl09ZnVuY3Rpb24oKXtyZXR1cm4gdGhpc30sZS5wcm90b3R5cGUucGlwZT1mdW5jdGlvbigpe2Zvcih2YXIgdD1bXSxyPTA7cjxhcmd1bWVudHMubGVuZ3RoO3IrKyl0W3JdPWFyZ3VtZW50c1tyXTtyZXR1cm4gSVkodCkodGhpcyl9LGUucHJvdG90eXBlLnRvUHJvbWlzZT1mdW5jdGlvbih0KXt2YXIgcj10aGlzO3JldHVybiB0PXhFZSh0KSxuZXcgdChmdW5jdGlvbihpLGEpe3ZhciBuO3Iuc3Vic2NyaWJlKGZ1bmN0aW9uKG8pe3JldHVybiBuPW99LGZ1bmN0aW9uKG8pe3JldHVybiBhKG8pfSxmdW5jdGlvbigpe3JldHVybiBpKG4pfSl9KX0sZS5jcmVhdGU9ZnVuY3Rpb24odCl7cmV0dXJuIG5ldyBlKHQpfSxlfSkoKX0pO2Z1bmN0aW9uIE5ZKGUpe3JldHVybiBfdChlPy5saWZ0KX1mdW5jdGlvbiBEcihlKXtyZXR1cm4gZnVuY3Rpb24odCl7aWYoTlkodCkpcmV0dXJuIHQubGlmdChmdW5jdGlvbihyKXt0cnl7cmV0dXJuIGUocix0aGlzKX1jYXRjaChpKXt0aGlzLmVycm9yKGkpfX0pO3Rocm93IG5ldyBUeXBlRXJyb3IoIlVuYWJsZSB0byBsaWZ0IHVua25vd24gT2JzZXJ2YWJsZSB0eXBlIil9fXZhciBZaT1wKCgpPT57JGkoKX0pO2Z1bmN0aW9uIHdyKGUsdCxyLGksYSl7cmV0dXJuIG5ldyB5RWUoZSx0LHIsaSxhKX12YXIgeUVlLFdhPXAoKCk9PntxcigpO0xTKCk7eUVlPShmdW5jdGlvbihlKXtYdCh0LGUpO2Z1bmN0aW9uIHQocixpLGEsbixvLHMpe3ZhciBsPWUuY2FsbCh0aGlzLHIpfHx0aGlzO3JldHVybiBsLm9uRmluYWxpemU9byxsLnNob3VsZFVuc3Vic2NyaWJlPXMsbC5fbmV4dD1pP2Z1bmN0aW9uKGMpe3RyeXtpKGMpfWNhdGNoKHUpe3IuZXJyb3IodSl9fTplLnByb3RvdHlwZS5fbmV4dCxsLl9lcnJvcj1uP2Z1bmN0aW9uKGMpe3RyeXtuKGMpfWNhdGNoKHUpe3IuZXJyb3IodSl9ZmluYWxseXt0aGlzLnVuc3Vic2NyaWJlKCl9fTplLnByb3RvdHlwZS5fZXJyb3IsbC5fY29tcGxldGU9YT9mdW5jdGlvbigpe3RyeXthKCl9Y2F0Y2goYyl7ci5lcnJvcihjKX1maW5hbGx5e3RoaXMudW5zdWJzY3JpYmUoKX19OmUucHJvdG90eXBlLl9jb21wbGV0ZSxsfXJldHVybiB0LnByb3RvdHlwZS51bnN1YnNjcmliZT1mdW5jdGlvbigpe3ZhciByO2lmKCF0aGlzLnNob3VsZFVuc3Vic2NyaWJlfHx0aGlzLnNob3VsZFVuc3Vic2NyaWJlKCkpe3ZhciBpPXRoaXMuY2xvc2VkO2UucHJvdG90eXBlLnVuc3Vic2NyaWJlLmNhbGwodGhpcyksIWkmJigocj10aGlzLm9uRmluYWxpemUpPT09bnVsbHx8cj09PXZvaWQgMHx8ci5jYWxsKHRoaXMpKX19LHR9KSh5Nil9KTtmdW5jdGlvbiBEUygpe3JldHVybiBEcihmdW5jdGlvbihlLHQpe3ZhciByPW51bGw7ZS5fcmVmQ291bnQrKzt2YXIgaT13cih0LHZvaWQgMCx2b2lkIDAsdm9pZCAwLGZ1bmN0aW9uKCl7aWYoIWV8fGUuX3JlZkNvdW50PD0wfHwwPC0tZS5fcmVmQ291bnQpe3I9bnVsbDtyZXR1cm59dmFyIGE9ZS5fY29ubmVjdGlvbixuPXI7cj1udWxsLGEmJighbnx8YT09PW4pJiZhLnVuc3Vic2NyaWJlKCksdC51bnN1YnNjcmliZSgpfSk7ZS5zdWJzY3JpYmUoaSksaS5jbG9zZWR8fChyPWUuY29ubmVjdCgpKX0pfXZhciBFUz1wKCgpPT57WWkoKTtXYSgpfSk7dmFyIHdFZSxNRWU9cCgoKT0+e3FyKCk7eG4oKTt6cygpO0VTKCk7V2EoKTtZaSgpO3dFZT0oZnVuY3Rpb24oZSl7WHQodCxlKTtmdW5jdGlvbiB0KHIsaSl7dmFyIGE9ZS5jYWxsKHRoaXMpfHx0aGlzO3JldHVybiBhLnNvdXJjZT1yLGEuc3ViamVjdEZhY3Rvcnk9aSxhLl9zdWJqZWN0PW51bGwsYS5fcmVmQ291bnQ9MCxhLl9jb25uZWN0aW9uPW51bGwsTlkocikmJihhLmxpZnQ9ci5saWZ0KSxhfXJldHVybiB0LnByb3RvdHlwZS5fc3Vic2NyaWJlPWZ1bmN0aW9uKHIpe3JldHVybiB0aGlzLmdldFN1YmplY3QoKS5zdWJzY3JpYmUocil9LHQucHJvdG90eXBlLmdldFN1YmplY3Q9ZnVuY3Rpb24oKXt2YXIgcj10aGlzLl9zdWJqZWN0O3JldHVybighcnx8ci5pc1N0b3BwZWQpJiYodGhpcy5fc3ViamVjdD10aGlzLnN1YmplY3RGYWN0b3J5KCkpLHRoaXMuX3N1YmplY3R9LHQucHJvdG90eXBlLl90ZWFyZG93bj1mdW5jdGlvbigpe3RoaXMuX3JlZkNvdW50PTA7dmFyIHI9dGhpcy5fY29ubmVjdGlvbjt0aGlzLl9zdWJqZWN0PXRoaXMuX2Nvbm5lY3Rpb249bnVsbCxyPy51bnN1YnNjcmliZSgpfSx0LnByb3RvdHlwZS5jb25uZWN0PWZ1bmN0aW9uKCl7dmFyIHI9dGhpcyxpPXRoaXMuX2Nvbm5lY3Rpb247aWYoIWkpe2k9dGhpcy5fY29ubmVjdGlvbj1uZXcgcTE7dmFyIGE9dGhpcy5nZXRTdWJqZWN0KCk7aS5hZGQodGhpcy5zb3VyY2Uuc3Vic2NyaWJlKHdyKGEsdm9pZCAwLGZ1bmN0aW9uKCl7ci5fdGVhcmRvd24oKSxhLmNvbXBsZXRlKCl9LGZ1bmN0aW9uKG4pe3IuX3RlYXJkb3duKCksYS5lcnJvcihuKX0sZnVuY3Rpb24oKXtyZXR1cm4gci5fdGVhcmRvd24oKX0pKSksaS5jbG9zZWQmJih0aGlzLl9jb25uZWN0aW9uPW51bGwsaT1xMS5FTVBUWSl9cmV0dXJuIGl9LHQucHJvdG90eXBlLnJlZkNvdW50PWZ1bmN0aW9uKCl7cmV0dXJuIERTKCkodGhpcyl9LHR9KShxdCl9KTt2YXIgRlksa0VlPXAoKCk9PntGWT17bm93OmZ1bmN0aW9uKCl7cmV0dXJuKEZZLmRlbGVnYXRlfHxwZXJmb3JtYW5jZSkubm93KCl9LGRlbGVnYXRlOnZvaWQgMH19KTt2YXIgSGwsT1k9cCgoKT0+e3FyKCk7enMoKTtIbD17c2NoZWR1bGU6ZnVuY3Rpb24oZSl7dmFyIHQ9cmVxdWVzdEFuaW1hdGlvbkZyYW1lLHI9Y2FuY2VsQW5pbWF0aW9uRnJhbWUsaT1IbC5kZWxlZ2F0ZTtpJiYodD1pLnJlcXVlc3RBbmltYXRpb25GcmFtZSxyPWkuY2FuY2VsQW5pbWF0aW9uRnJhbWUpO3ZhciBhPXQoZnVuY3Rpb24obil7cj12b2lkIDAsZShuKX0pO3JldHVybiBuZXcgcTEoZnVuY3Rpb24oKXtyZXR1cm4gcj8uKGEpfSl9LHJlcXVlc3RBbmltYXRpb25GcmFtZTpmdW5jdGlvbigpe2Zvcih2YXIgZT1bXSx0PTA7dDxhcmd1bWVudHMubGVuZ3RoO3QrKyllW3RdPWFyZ3VtZW50c1t0XTt2YXIgcj1IbC5kZWxlZ2F0ZTtyZXR1cm4ocj8ucmVxdWVzdEFuaW1hdGlvbkZyYW1lfHxyZXF1ZXN0QW5pbWF0aW9uRnJhbWUpLmFwcGx5KHZvaWQgMCxHaShbXSx0aShlKSkpfSxjYW5jZWxBbmltYXRpb25GcmFtZTpmdW5jdGlvbigpe2Zvcih2YXIgZT1bXSx0PTA7dDxhcmd1bWVudHMubGVuZ3RoO3QrKyllW3RdPWFyZ3VtZW50c1t0XTt2YXIgcj1IbC5kZWxlZ2F0ZTtyZXR1cm4ocj8uY2FuY2VsQW5pbWF0aW9uRnJhbWV8fGNhbmNlbEFuaW1hdGlvbkZyYW1lKS5hcHBseSh2b2lkIDAsR2koW10sdGkoZSkpKX0sZGVsZWdhdGU6dm9pZCAwfX0pO2Z1bmN0aW9uIE1fcihlKXtyZXR1cm4gZT9TRWUoZSk6a19yfWZ1bmN0aW9uIFNFZShlKXtyZXR1cm4gbmV3IHF0KGZ1bmN0aW9uKHQpe3ZhciByPWV8fEZZLGk9ci5ub3coKSxhPTAsbj1mdW5jdGlvbigpe3QuY2xvc2VkfHwoYT1IbC5yZXF1ZXN0QW5pbWF0aW9uRnJhbWUoZnVuY3Rpb24obyl7YT0wO3ZhciBzPXIubm93KCk7dC5uZXh0KHt0aW1lc3RhbXA6ZT9zOm8sZWxhcHNlZDpzLWl9KSxuKCl9KSl9O3JldHVybiBuKCksZnVuY3Rpb24oKXthJiZIbC5jYW5jZWxBbmltYXRpb25GcmFtZShhKX19KX12YXIga19yLHpFZT1wKCgpPT57eG4oKTtrRWUoKTtPWSgpO2tfcj1TRWUoKX0pO3ZhciBSWSxCWT1wKCgpPT57STAoKTtSWT12bihmdW5jdGlvbihlKXtyZXR1cm4gZnVuY3Rpb24oKXtlKHRoaXMpLHRoaXMubmFtZT0iT2JqZWN0VW5zdWJzY3JpYmVkRXJyb3IiLHRoaXMubWVzc2FnZT0ib2JqZWN0IHVuc3Vic2NyaWJlZCJ9fSl9KTt2YXIgeW4sSFksY209cCgoKT0+e3FyKCk7eG4oKTt6cygpO0JZKCk7WnUoKTtUUygpO3luPShmdW5jdGlvbihlKXtYdCh0LGUpO2Z1bmN0aW9uIHQoKXt2YXIgcj1lLmNhbGwodGhpcyl8fHRoaXM7cmV0dXJuIHIuY2xvc2VkPSExLHIuY3VycmVudE9ic2VydmVycz1udWxsLHIub2JzZXJ2ZXJzPVtdLHIuaXNTdG9wcGVkPSExLHIuaGFzRXJyb3I9ITEsci50aHJvd25FcnJvcj1udWxsLHJ9cmV0dXJuIHQucHJvdG90eXBlLmxpZnQ9ZnVuY3Rpb24ocil7dmFyIGk9bmV3IEhZKHRoaXMsdGhpcyk7cmV0dXJuIGkub3BlcmF0b3I9cixpfSx0LnByb3RvdHlwZS5fdGhyb3dJZkNsb3NlZD1mdW5jdGlvbigpe2lmKHRoaXMuY2xvc2VkKXRocm93IG5ldyBSWX0sdC5wcm90b3R5cGUubmV4dD1mdW5jdGlvbihyKXt2YXIgaT10aGlzO0p1KGZ1bmN0aW9uKCl7dmFyIGEsbjtpZihpLl90aHJvd0lmQ2xvc2VkKCksIWkuaXNTdG9wcGVkKXtpLmN1cnJlbnRPYnNlcnZlcnN8fChpLmN1cnJlbnRPYnNlcnZlcnM9QXJyYXkuZnJvbShpLm9ic2VydmVycykpO3RyeXtmb3IodmFyIG89eWEoaS5jdXJyZW50T2JzZXJ2ZXJzKSxzPW8ubmV4dCgpOyFzLmRvbmU7cz1vLm5leHQoKSl7dmFyIGw9cy52YWx1ZTtsLm5leHQocil9fWNhdGNoKGMpe2E9e2Vycm9yOmN9fWZpbmFsbHl7dHJ5e3MmJiFzLmRvbmUmJihuPW8ucmV0dXJuKSYmbi5jYWxsKG8pfWZpbmFsbHl7aWYoYSl0aHJvdyBhLmVycm9yfX19fSl9LHQucHJvdG90eXBlLmVycm9yPWZ1bmN0aW9uKHIpe3ZhciBpPXRoaXM7SnUoZnVuY3Rpb24oKXtpZihpLl90aHJvd0lmQ2xvc2VkKCksIWkuaXNTdG9wcGVkKXtpLmhhc0Vycm9yPWkuaXNTdG9wcGVkPSEwLGkudGhyb3duRXJyb3I9cjtmb3IodmFyIGE9aS5vYnNlcnZlcnM7YS5sZW5ndGg7KWEuc2hpZnQoKS5lcnJvcihyKX19KX0sdC5wcm90b3R5cGUuY29tcGxldGU9ZnVuY3Rpb24oKXt2YXIgcj10aGlzO0p1KGZ1bmN0aW9uKCl7aWYoci5fdGhyb3dJZkNsb3NlZCgpLCFyLmlzU3RvcHBlZCl7ci5pc1N0b3BwZWQ9ITA7Zm9yKHZhciBpPXIub2JzZXJ2ZXJzO2kubGVuZ3RoOylpLnNoaWZ0KCkuY29tcGxldGUoKX19KX0sdC5wcm90b3R5cGUudW5zdWJzY3JpYmU9ZnVuY3Rpb24oKXt0aGlzLmlzU3RvcHBlZD10aGlzLmNsb3NlZD0hMCx0aGlzLm9ic2VydmVycz10aGlzLmN1cnJlbnRPYnNlcnZlcnM9bnVsbH0sT2JqZWN0LmRlZmluZVByb3BlcnR5KHQucHJvdG90eXBlLCJvYnNlcnZlZCIse2dldDpmdW5jdGlvbigpe3ZhciByO3JldHVybigocj10aGlzLm9ic2VydmVycyk9PT1udWxsfHxyPT09dm9pZCAwP3ZvaWQgMDpyLmxlbmd0aCk+MH0sZW51bWVyYWJsZTohMSxjb25maWd1cmFibGU6ITB9KSx0LnByb3RvdHlwZS5fdHJ5U3Vic2NyaWJlPWZ1bmN0aW9uKHIpe3JldHVybiB0aGlzLl90aHJvd0lmQ2xvc2VkKCksZS5wcm90b3R5cGUuX3RyeVN1YnNjcmliZS5jYWxsKHRoaXMscil9LHQucHJvdG90eXBlLl9zdWJzY3JpYmU9ZnVuY3Rpb24ocil7cmV0dXJuIHRoaXMuX3Rocm93SWZDbG9zZWQoKSx0aGlzLl9jaGVja0ZpbmFsaXplZFN0YXR1c2VzKHIpLHRoaXMuX2lubmVyU3Vic2NyaWJlKHIpfSx0LnByb3RvdHlwZS5faW5uZXJTdWJzY3JpYmU9ZnVuY3Rpb24ocil7dmFyIGk9dGhpcyxhPXRoaXMsbj1hLmhhc0Vycm9yLG89YS5pc1N0b3BwZWQscz1hLm9ic2VydmVycztyZXR1cm4gbnx8bz9fWToodGhpcy5jdXJyZW50T2JzZXJ2ZXJzPW51bGwscy5wdXNoKHIpLG5ldyBxMShmdW5jdGlvbigpe2kuY3VycmVudE9ic2VydmVycz1udWxsLGQyKHMscil9KSl9LHQucHJvdG90eXBlLl9jaGVja0ZpbmFsaXplZFN0YXR1c2VzPWZ1bmN0aW9uKHIpe3ZhciBpPXRoaXMsYT1pLmhhc0Vycm9yLG49aS50aHJvd25FcnJvcixvPWkuaXNTdG9wcGVkO2E/ci5lcnJvcihuKTpvJiZyLmNvbXBsZXRlKCl9LHQucHJvdG90eXBlLmFzT2JzZXJ2YWJsZT1mdW5jdGlvbigpe3ZhciByPW5ldyBxdDtyZXR1cm4gci5zb3VyY2U9dGhpcyxyfSx0LmNyZWF0ZT1mdW5jdGlvbihyLGkpe3JldHVybiBuZXcgSFkocixpKX0sdH0pKHF0KSxIWT0oZnVuY3Rpb24oZSl7WHQodCxlKTtmdW5jdGlvbiB0KHIsaSl7dmFyIGE9ZS5jYWxsKHRoaXMpfHx0aGlzO3JldHVybiBhLmRlc3RpbmF0aW9uPXIsYS5zb3VyY2U9aSxhfXJldHVybiB0LnByb3RvdHlwZS5uZXh0PWZ1bmN0aW9uKHIpe3ZhciBpLGE7KGE9KGk9dGhpcy5kZXN0aW5hdGlvbik9PT1udWxsfHxpPT09dm9pZCAwP3ZvaWQgMDppLm5leHQpPT09bnVsbHx8YT09PXZvaWQgMHx8YS5jYWxsKGkscil9LHQucHJvdG90eXBlLmVycm9yPWZ1bmN0aW9uKHIpe3ZhciBpLGE7KGE9KGk9dGhpcy5kZXN0aW5hdGlvbik9PT1udWxsfHxpPT09dm9pZCAwP3ZvaWQgMDppLmVycm9yKT09PW51bGx8fGE9PT12b2lkIDB8fGEuY2FsbChpLHIpfSx0LnByb3RvdHlwZS5jb21wbGV0ZT1mdW5jdGlvbigpe3ZhciByLGk7KGk9KHI9dGhpcy5kZXN0aW5hdGlvbik9PT1udWxsfHxyPT09dm9pZCAwP3ZvaWQgMDpyLmNvbXBsZXRlKT09PW51bGx8fGk9PT12b2lkIDB8fGkuY2FsbChyKX0sdC5wcm90b3R5cGUuX3N1YnNjcmliZT1mdW5jdGlvbihyKXt2YXIgaSxhO3JldHVybihhPShpPXRoaXMuc291cmNlKT09PW51bGx8fGk9PT12b2lkIDA/dm9pZCAwOmkuc3Vic2NyaWJlKHIpKSE9PW51bGwmJmEhPT12b2lkIDA/YTpfWX0sdH0pKHluKX0pO3ZhciBDRWUsVEVlPXAoKCk9PntxcigpO2NtKCk7Q0VlPShmdW5jdGlvbihlKXtYdCh0LGUpO2Z1bmN0aW9uIHQocil7dmFyIGk9ZS5jYWxsKHRoaXMpfHx0aGlzO3JldHVybiBpLl92YWx1ZT1yLGl9cmV0dXJuIE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LnByb3RvdHlwZSwidmFsdWUiLHtnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5nZXRWYWx1ZSgpfSxlbnVtZXJhYmxlOiExLGNvbmZpZ3VyYWJsZTohMH0pLHQucHJvdG90eXBlLl9zdWJzY3JpYmU9ZnVuY3Rpb24ocil7dmFyIGk9ZS5wcm90b3R5cGUuX3N1YnNjcmliZS5jYWxsKHRoaXMscik7cmV0dXJuIWkuY2xvc2VkJiZyLm5leHQodGhpcy5fdmFsdWUpLGl9LHQucHJvdG90eXBlLmdldFZhbHVlPWZ1bmN0aW9uKCl7dmFyIHI9dGhpcyxpPXIuaGFzRXJyb3IsYT1yLnRocm93bkVycm9yLG49ci5fdmFsdWU7aWYoaSl0aHJvdyBhO3JldHVybiB0aGlzLl90aHJvd0lmQ2xvc2VkKCksbn0sdC5wcm90b3R5cGUubmV4dD1mdW5jdGlvbihyKXtlLnByb3RvdHlwZS5uZXh0LmNhbGwodGhpcyx0aGlzLl92YWx1ZT1yKX0sdH0pKHluKX0pO3ZhciBkbSxxWT1wKCgpPT57ZG09e25vdzpmdW5jdGlvbigpe3JldHVybihkbS5kZWxlZ2F0ZXx8RGF0ZSkubm93KCl9LGRlbGVnYXRlOnZvaWQgMH19KTt2YXIgJFMsX0VlPXAoKCk9PntxcigpO2NtKCk7cVkoKTskUz0oZnVuY3Rpb24oZSl7WHQodCxlKTtmdW5jdGlvbiB0KHIsaSxhKXtyPT09dm9pZCAwJiYocj0xLzApLGk9PT12b2lkIDAmJihpPTEvMCksYT09PXZvaWQgMCYmKGE9ZG0pO3ZhciBuPWUuY2FsbCh0aGlzKXx8dGhpcztyZXR1cm4gbi5fYnVmZmVyU2l6ZT1yLG4uX3dpbmRvd1RpbWU9aSxuLl90aW1lc3RhbXBQcm92aWRlcj1hLG4uX2J1ZmZlcj1bXSxuLl9pbmZpbml0ZVRpbWVXaW5kb3c9ITAsbi5faW5maW5pdGVUaW1lV2luZG93PWk9PT0xLzAsbi5fYnVmZmVyU2l6ZT1NYXRoLm1heCgxLHIpLG4uX3dpbmRvd1RpbWU9TWF0aC5tYXgoMSxpKSxufXJldHVybiB0LnByb3RvdHlwZS5uZXh0PWZ1bmN0aW9uKHIpe3ZhciBpPXRoaXMsYT1pLmlzU3RvcHBlZCxuPWkuX2J1ZmZlcixvPWkuX2luZmluaXRlVGltZVdpbmRvdyxzPWkuX3RpbWVzdGFtcFByb3ZpZGVyLGw9aS5fd2luZG93VGltZTthfHwobi5wdXNoKHIpLCFvJiZuLnB1c2gocy5ub3coKStsKSksdGhpcy5fdHJpbUJ1ZmZlcigpLGUucHJvdG90eXBlLm5leHQuY2FsbCh0aGlzLHIpfSx0LnByb3RvdHlwZS5fc3Vic2NyaWJlPWZ1bmN0aW9uKHIpe3RoaXMuX3Rocm93SWZDbG9zZWQoKSx0aGlzLl90cmltQnVmZmVyKCk7Zm9yKHZhciBpPXRoaXMuX2lubmVyU3Vic2NyaWJlKHIpLGE9dGhpcyxuPWEuX2luZmluaXRlVGltZVdpbmRvdyxvPWEuX2J1ZmZlcixzPW8uc2xpY2UoKSxsPTA7bDxzLmxlbmd0aCYmIXIuY2xvc2VkO2wrPW4/MToyKXIubmV4dChzW2xdKTtyZXR1cm4gdGhpcy5fY2hlY2tGaW5hbGl6ZWRTdGF0dXNlcyhyKSxpfSx0LnByb3RvdHlwZS5fdHJpbUJ1ZmZlcj1mdW5jdGlvbigpe3ZhciByPXRoaXMsaT1yLl9idWZmZXJTaXplLGE9ci5fdGltZXN0YW1wUHJvdmlkZXIsbj1yLl9idWZmZXIsbz1yLl9pbmZpbml0ZVRpbWVXaW5kb3cscz0obz8xOjIpKmk7aWYoaTwxLzAmJnM8bi5sZW5ndGgmJm4uc3BsaWNlKDAsbi5sZW5ndGgtcyksIW8pe2Zvcih2YXIgbD1hLm5vdygpLGM9MCx1PTE7dTxuLmxlbmd0aCYmblt1XTw9bDt1Kz0yKWM9dTtjJiZuLnNwbGljZSgwLGMrMSl9fSx0fSkoeW4pfSk7dmFyIExFZSxBRWU9cCgoKT0+e3FyKCk7Y20oKTtMRWU9KGZ1bmN0aW9uKGUpe1h0KHQsZSk7ZnVuY3Rpb24gdCgpe3ZhciByPWUhPT1udWxsJiZlLmFwcGx5KHRoaXMsYXJndW1lbnRzKXx8dGhpcztyZXR1cm4gci5fdmFsdWU9bnVsbCxyLl9oYXNWYWx1ZT0hMSxyLl9pc0NvbXBsZXRlPSExLHJ9cmV0dXJuIHQucHJvdG90eXBlLl9jaGVja0ZpbmFsaXplZFN0YXR1c2VzPWZ1bmN0aW9uKHIpe3ZhciBpPXRoaXMsYT1pLmhhc0Vycm9yLG49aS5faGFzVmFsdWUsbz1pLl92YWx1ZSxzPWkudGhyb3duRXJyb3IsbD1pLmlzU3RvcHBlZCxjPWkuX2lzQ29tcGxldGU7YT9yLmVycm9yKHMpOihsfHxjKSYmKG4mJnIubmV4dChvKSxyLmNvbXBsZXRlKCkpfSx0LnByb3RvdHlwZS5uZXh0PWZ1bmN0aW9uKHIpe3RoaXMuaXNTdG9wcGVkfHwodGhpcy5fdmFsdWU9cix0aGlzLl9oYXNWYWx1ZT0hMCl9LHQucHJvdG90eXBlLmNvbXBsZXRlPWZ1bmN0aW9uKCl7dmFyIHI9dGhpcyxpPXIuX2hhc1ZhbHVlLGE9ci5fdmFsdWUsbj1yLl9pc0NvbXBsZXRlO258fCh0aGlzLl9pc0NvbXBsZXRlPSEwLGkmJmUucHJvdG90eXBlLm5leHQuY2FsbCh0aGlzLGEpLGUucHJvdG90eXBlLmNvbXBsZXRlLmNhbGwodGhpcykpfSx0fSkoeW4pfSk7dmFyIGpZLERFZT1wKCgpPT57cXIoKTt6cygpO2pZPShmdW5jdGlvbihlKXtYdCh0LGUpO2Z1bmN0aW9uIHQocixpKXtyZXR1cm4gZS5jYWxsKHRoaXMpfHx0aGlzfXJldHVybiB0LnByb3RvdHlwZS5zY2hlZHVsZT1mdW5jdGlvbihyLGkpe3JldHVybiBpPT09dm9pZCAwJiYoaT0wKSx0aGlzfSx0fSkocTEpfSk7dmFyIHVtLEVFZT1wKCgpPT57cXIoKTt1bT17c2V0SW50ZXJ2YWw6ZnVuY3Rpb24oZSx0KXtmb3IodmFyIHI9W10saT0yO2k8YXJndW1lbnRzLmxlbmd0aDtpKyspcltpLTJdPWFyZ3VtZW50c1tpXTt2YXIgYT11bS5kZWxlZ2F0ZTtyZXR1cm4gYT8uc2V0SW50ZXJ2YWw/YS5zZXRJbnRlcnZhbC5hcHBseShhLEdpKFtlLHRdLHRpKHIpKSk6c2V0SW50ZXJ2YWwuYXBwbHkodm9pZCAwLEdpKFtlLHRdLHRpKHIpKSl9LGNsZWFySW50ZXJ2YWw6ZnVuY3Rpb24oZSl7dmFyIHQ9dW0uZGVsZWdhdGU7cmV0dXJuKHQ/LmNsZWFySW50ZXJ2YWx8fGNsZWFySW50ZXJ2YWwpKGUpfSxkZWxlZ2F0ZTp2b2lkIDB9fSk7dmFyIHUyLEt1PXAoKCk9PntxcigpO0RFZSgpO0VFZSgpO1p1KCk7dTI9KGZ1bmN0aW9uKGUpe1h0KHQsZSk7ZnVuY3Rpb24gdChyLGkpe3ZhciBhPWUuY2FsbCh0aGlzLHIsaSl8fHRoaXM7cmV0dXJuIGEuc2NoZWR1bGVyPXIsYS53b3JrPWksYS5wZW5kaW5nPSExLGF9cmV0dXJuIHQucHJvdG90eXBlLnNjaGVkdWxlPWZ1bmN0aW9uKHIsaSl7dmFyIGE7aWYoaT09PXZvaWQgMCYmKGk9MCksdGhpcy5jbG9zZWQpcmV0dXJuIHRoaXM7dGhpcy5zdGF0ZT1yO3ZhciBuPXRoaXMuaWQsbz10aGlzLnNjaGVkdWxlcjtyZXR1cm4gbiE9bnVsbCYmKHRoaXMuaWQ9dGhpcy5yZWN5Y2xlQXN5bmNJZChvLG4saSkpLHRoaXMucGVuZGluZz0hMCx0aGlzLmRlbGF5PWksdGhpcy5pZD0oYT10aGlzLmlkKSE9PW51bGwmJmEhPT12b2lkIDA/YTp0aGlzLnJlcXVlc3RBc3luY0lkKG8sdGhpcy5pZCxpKSx0aGlzfSx0LnByb3RvdHlwZS5yZXF1ZXN0QXN5bmNJZD1mdW5jdGlvbihyLGksYSl7cmV0dXJuIGE9PT12b2lkIDAmJihhPTApLHVtLnNldEludGVydmFsKHIuZmx1c2guYmluZChyLHRoaXMpLGEpfSx0LnByb3RvdHlwZS5yZWN5Y2xlQXN5bmNJZD1mdW5jdGlvbihyLGksYSl7aWYoYT09PXZvaWQgMCYmKGE9MCksYSE9bnVsbCYmdGhpcy5kZWxheT09PWEmJnRoaXMucGVuZGluZz09PSExKXJldHVybiBpO2khPW51bGwmJnVtLmNsZWFySW50ZXJ2YWwoaSl9LHQucHJvdG90eXBlLmV4ZWN1dGU9ZnVuY3Rpb24ocixpKXtpZih0aGlzLmNsb3NlZClyZXR1cm4gbmV3IEVycm9yKCJleGVjdXRpbmcgYSBjYW5jZWxsZWQgYWN0aW9uIik7dGhpcy5wZW5kaW5nPSExO3ZhciBhPXRoaXMuX2V4ZWN1dGUocixpKTtpZihhKXJldHVybiBhO3RoaXMucGVuZGluZz09PSExJiZ0aGlzLmlkIT1udWxsJiYodGhpcy5pZD10aGlzLnJlY3ljbGVBc3luY0lkKHRoaXMuc2NoZWR1bGVyLHRoaXMuaWQsbnVsbCkpfSx0LnByb3RvdHlwZS5fZXhlY3V0ZT1mdW5jdGlvbihyLGkpe3ZhciBhPSExLG47dHJ5e3RoaXMud29yayhyKX1jYXRjaChvKXthPSEwLG49b3x8bmV3IEVycm9yKCJTY2hlZHVsZWQgYWN0aW9uIHRocmV3IGZhbHN5IGVycm9yIil9aWYoYSlyZXR1cm4gdGhpcy51bnN1YnNjcmliZSgpLG59LHQucHJvdG90eXBlLnVuc3Vic2NyaWJlPWZ1bmN0aW9uKCl7aWYoIXRoaXMuY2xvc2VkKXt2YXIgcj10aGlzLGk9ci5pZCxhPXIuc2NoZWR1bGVyLG49YS5hY3Rpb25zO3RoaXMud29yaz10aGlzLnN0YXRlPXRoaXMuc2NoZWR1bGVyPW51bGwsdGhpcy5wZW5kaW5nPSExLGQyKG4sdGhpcyksaSE9bnVsbCYmKHRoaXMuaWQ9dGhpcy5yZWN5Y2xlQXN5bmNJZChhLGksbnVsbCkpLHRoaXMuZGVsYXk9bnVsbCxlLnByb3RvdHlwZS51bnN1YnNjcmliZS5jYWxsKHRoaXMpfX0sdH0pKGpZKX0pO2Z1bmN0aW9uICRFZShlKXtyZXR1cm4gZSBpbiBJUz8oZGVsZXRlIElTW2VdLCEwKTohMX12YXIgU19yLFZZLElTLFVZLHhlaSxJRWU9cCgoKT0+e1Nfcj0xLElTPXt9O1VZPXtzZXRJbW1lZGlhdGU6ZnVuY3Rpb24oZSl7dmFyIHQ9U19yKys7cmV0dXJuIElTW3RdPSEwLFZZfHwoVlk9UHJvbWlzZS5yZXNvbHZlKCkpLFZZLnRoZW4oZnVuY3Rpb24oKXtyZXR1cm4gJEVlKHQpJiZlKCl9KSx0fSxjbGVhckltbWVkaWF0ZTpmdW5jdGlvbihlKXskRWUoZSl9fSx4ZWk9e3BlbmRpbmc6ZnVuY3Rpb24oKXtyZXR1cm4gT2JqZWN0LmtleXMoSVMpLmxlbmd0aH19fSk7dmFyIHpfcixDX3IscG0sUEVlPXAoKCk9PntxcigpO0lFZSgpO3pfcj1VWS5zZXRJbW1lZGlhdGUsQ19yPVVZLmNsZWFySW1tZWRpYXRlLHBtPXtzZXRJbW1lZGlhdGU6ZnVuY3Rpb24oKXtmb3IodmFyIGU9W10sdD0wO3Q8YXJndW1lbnRzLmxlbmd0aDt0KyspZVt0XT1hcmd1bWVudHNbdF07dmFyIHI9cG0uZGVsZWdhdGU7cmV0dXJuKHI/LnNldEltbWVkaWF0ZXx8el9yKS5hcHBseSh2b2lkIDAsR2koW10sdGkoZSkpKX0sY2xlYXJJbW1lZGlhdGU6ZnVuY3Rpb24oZSl7dmFyIHQ9cG0uZGVsZWdhdGU7cmV0dXJuKHQ/LmNsZWFySW1tZWRpYXRlfHxDX3IpKGUpfSxkZWxlZ2F0ZTp2b2lkIDB9fSk7dmFyIFdZLE5FZT1wKCgpPT57cXIoKTtLdSgpO1BFZSgpO1dZPShmdW5jdGlvbihlKXtYdCh0LGUpO2Z1bmN0aW9uIHQocixpKXt2YXIgYT1lLmNhbGwodGhpcyxyLGkpfHx0aGlzO3JldHVybiBhLnNjaGVkdWxlcj1yLGEud29yaz1pLGF9cmV0dXJuIHQucHJvdG90eXBlLnJlcXVlc3RBc3luY0lkPWZ1bmN0aW9uKHIsaSxhKXtyZXR1cm4gYT09PXZvaWQgMCYmKGE9MCksYSE9PW51bGwmJmE+MD9lLnByb3RvdHlwZS5yZXF1ZXN0QXN5bmNJZC5jYWxsKHRoaXMscixpLGEpOihyLmFjdGlvbnMucHVzaCh0aGlzKSxyLl9zY2hlZHVsZWR8fChyLl9zY2hlZHVsZWQ9cG0uc2V0SW1tZWRpYXRlKHIuZmx1c2guYmluZChyLHZvaWQgMCkpKSl9LHQucHJvdG90eXBlLnJlY3ljbGVBc3luY0lkPWZ1bmN0aW9uKHIsaSxhKXt2YXIgbjtpZihhPT09dm9pZCAwJiYoYT0wKSxhIT1udWxsP2E+MDp0aGlzLmRlbGF5PjApcmV0dXJuIGUucHJvdG90eXBlLnJlY3ljbGVBc3luY0lkLmNhbGwodGhpcyxyLGksYSk7dmFyIG89ci5hY3Rpb25zO2khPW51bGwmJigobj1vW28ubGVuZ3RoLTFdKT09PW51bGx8fG49PT12b2lkIDA/dm9pZCAwOm4uaWQpIT09aSYmKHBtLmNsZWFySW1tZWRpYXRlKGkpLHIuX3NjaGVkdWxlZD09PWkmJihyLl9zY2hlZHVsZWQ9dm9pZCAwKSl9LHR9KSh1Mil9KTt2YXIgaG0sR1k9cCgoKT0+e3FZKCk7aG09KGZ1bmN0aW9uKCl7ZnVuY3Rpb24gZSh0LHIpe3I9PT12b2lkIDAmJihyPWUubm93KSx0aGlzLnNjaGVkdWxlckFjdGlvbkN0b3I9dCx0aGlzLm5vdz1yfXJldHVybiBlLnByb3RvdHlwZS5zY2hlZHVsZT1mdW5jdGlvbih0LHIsaSl7cmV0dXJuIHI9PT12b2lkIDAmJihyPTApLG5ldyB0aGlzLnNjaGVkdWxlckFjdGlvbkN0b3IodGhpcyx0KS5zY2hlZHVsZShpLHIpfSxlLm5vdz1kbS5ub3csZX0pKCl9KTt2YXIgcDIsZTg9cCgoKT0+e3FyKCk7R1koKTtwMj0oZnVuY3Rpb24oZSl7WHQodCxlKTtmdW5jdGlvbiB0KHIsaSl7aT09PXZvaWQgMCYmKGk9aG0ubm93KTt2YXIgYT1lLmNhbGwodGhpcyxyLGkpfHx0aGlzO3JldHVybiBhLmFjdGlvbnM9W10sYS5fYWN0aXZlPSExLGF9cmV0dXJuIHQucHJvdG90eXBlLmZsdXNoPWZ1bmN0aW9uKHIpe3ZhciBpPXRoaXMuYWN0aW9ucztpZih0aGlzLl9hY3RpdmUpe2kucHVzaChyKTtyZXR1cm59dmFyIGE7dGhpcy5fYWN0aXZlPSEwO2RvIGlmKGE9ci5leGVjdXRlKHIuc3RhdGUsci5kZWxheSkpYnJlYWs7d2hpbGUocj1pLnNoaWZ0KCkpO2lmKHRoaXMuX2FjdGl2ZT0hMSxhKXtmb3IoO3I9aS5zaGlmdCgpOylyLnVuc3Vic2NyaWJlKCk7dGhyb3cgYX19LHR9KShobSl9KTt2YXIgWVksRkVlPXAoKCk9PntxcigpO2U4KCk7WVk9KGZ1bmN0aW9uKGUpe1h0KHQsZSk7ZnVuY3Rpb24gdCgpe3JldHVybiBlIT09bnVsbCYmZS5hcHBseSh0aGlzLGFyZ3VtZW50cyl8fHRoaXN9cmV0dXJuIHQucHJvdG90eXBlLmZsdXNoPWZ1bmN0aW9uKHIpe3RoaXMuX2FjdGl2ZT0hMDt2YXIgaT10aGlzLl9zY2hlZHVsZWQ7dGhpcy5fc2NoZWR1bGVkPXZvaWQgMDt2YXIgYT10aGlzLmFjdGlvbnMsbjtyPXJ8fGEuc2hpZnQoKTtkbyBpZihuPXIuZXhlY3V0ZShyLnN0YXRlLHIuZGVsYXkpKWJyZWFrO3doaWxlKChyPWFbMF0pJiZyLmlkPT09aSYmYS5zaGlmdCgpKTtpZih0aGlzLl9hY3RpdmU9ITEsbil7Zm9yKDsocj1hWzBdKSYmci5pZD09PWkmJmEuc2hpZnQoKTspci51bnN1YnNjcmliZSgpO3Rocm93IG59fSx0fSkocDIpfSk7dmFyIE9FZSxUX3IsUkVlPXAoKCk9PntORWUoKTtGRWUoKTtPRWU9bmV3IFlZKFdZKSxUX3I9T0VlfSk7dmFyIENzLFpZLE02PXAoKCk9PntLdSgpO2U4KCk7Q3M9bmV3IHAyKHUyKSxaWT1Dc30pO3ZhciBYWSxCRWU9cCgoKT0+e3FyKCk7S3UoKTtYWT0oZnVuY3Rpb24oZSl7WHQodCxlKTtmdW5jdGlvbiB0KHIsaSl7dmFyIGE9ZS5jYWxsKHRoaXMscixpKXx8dGhpcztyZXR1cm4gYS5zY2hlZHVsZXI9cixhLndvcms9aSxhfXJldHVybiB0LnByb3RvdHlwZS5zY2hlZHVsZT1mdW5jdGlvbihyLGkpe3JldHVybiBpPT09dm9pZCAwJiYoaT0wKSxpPjA/ZS5wcm90b3R5cGUuc2NoZWR1bGUuY2FsbCh0aGlzLHIsaSk6KHRoaXMuZGVsYXk9aSx0aGlzLnN0YXRlPXIsdGhpcy5zY2hlZHVsZXIuZmx1c2godGhpcyksdGhpcyl9LHQucHJvdG90eXBlLmV4ZWN1dGU9ZnVuY3Rpb24ocixpKXtyZXR1cm4gaT4wfHx0aGlzLmNsb3NlZD9lLnByb3RvdHlwZS5leGVjdXRlLmNhbGwodGhpcyxyLGkpOnRoaXMuX2V4ZWN1dGUocixpKX0sdC5wcm90b3R5cGUucmVxdWVzdEFzeW5jSWQ9ZnVuY3Rpb24ocixpLGEpe3JldHVybiBhPT09dm9pZCAwJiYoYT0wKSxhIT1udWxsJiZhPjB8fGE9PW51bGwmJnRoaXMuZGVsYXk+MD9lLnByb3RvdHlwZS5yZXF1ZXN0QXN5bmNJZC5jYWxsKHRoaXMscixpLGEpOihyLmZsdXNoKHRoaXMpLDApfSx0fSkodTIpfSk7dmFyIFFZLEhFZT1wKCgpPT57cXIoKTtlOCgpO1FZPShmdW5jdGlvbihlKXtYdCh0LGUpO2Z1bmN0aW9uIHQoKXtyZXR1cm4gZSE9PW51bGwmJmUuYXBwbHkodGhpcyxhcmd1bWVudHMpfHx0aGlzfXJldHVybiB0fSkocDIpfSk7dmFyIHFFZSxfX3IsakVlPXAoKCk9PntCRWUoKTtIRWUoKTtxRWU9bmV3IFFZKFhZKSxfX3I9cUVlfSk7dmFyIEpZLFZFZT1wKCgpPT57cXIoKTtLdSgpO09ZKCk7Slk9KGZ1bmN0aW9uKGUpe1h0KHQsZSk7ZnVuY3Rpb24gdChyLGkpe3ZhciBhPWUuY2FsbCh0aGlzLHIsaSl8fHRoaXM7cmV0dXJuIGEuc2NoZWR1bGVyPXIsYS53b3JrPWksYX1yZXR1cm4gdC5wcm90b3R5cGUucmVxdWVzdEFzeW5jSWQ9ZnVuY3Rpb24ocixpLGEpe3JldHVybiBhPT09dm9pZCAwJiYoYT0wKSxhIT09bnVsbCYmYT4wP2UucHJvdG90eXBlLnJlcXVlc3RBc3luY0lkLmNhbGwodGhpcyxyLGksYSk6KHIuYWN0aW9ucy5wdXNoKHRoaXMpLHIuX3NjaGVkdWxlZHx8KHIuX3NjaGVkdWxlZD1IbC5yZXF1ZXN0QW5pbWF0aW9uRnJhbWUoZnVuY3Rpb24oKXtyZXR1cm4gci5mbHVzaCh2b2lkIDApfSkpKX0sdC5wcm90b3R5cGUucmVjeWNsZUFzeW5jSWQ9ZnVuY3Rpb24ocixpLGEpe3ZhciBuO2lmKGE9PT12b2lkIDAmJihhPTApLGEhPW51bGw/YT4wOnRoaXMuZGVsYXk+MClyZXR1cm4gZS5wcm90b3R5cGUucmVjeWNsZUFzeW5jSWQuY2FsbCh0aGlzLHIsaSxhKTt2YXIgbz1yLmFjdGlvbnM7aSE9bnVsbCYmaT09PXIuX3NjaGVkdWxlZCYmKChuPW9bby5sZW5ndGgtMV0pPT09bnVsbHx8bj09PXZvaWQgMD92b2lkIDA6bi5pZCkhPT1pJiYoSGwuY2FuY2VsQW5pbWF0aW9uRnJhbWUoaSksci5fc2NoZWR1bGVkPXZvaWQgMCl9LHR9KSh1Mil9KTt2YXIgS1ksVUVlPXAoKCk9PntxcigpO2U4KCk7S1k9KGZ1bmN0aW9uKGUpe1h0KHQsZSk7ZnVuY3Rpb24gdCgpe3JldHVybiBlIT09bnVsbCYmZS5hcHBseSh0aGlzLGFyZ3VtZW50cyl8fHRoaXN9cmV0dXJuIHQucHJvdG90eXBlLmZsdXNoPWZ1bmN0aW9uKHIpe3RoaXMuX2FjdGl2ZT0hMDt2YXIgaTtyP2k9ci5pZDooaT10aGlzLl9zY2hlZHVsZWQsdGhpcy5fc2NoZWR1bGVkPXZvaWQgMCk7dmFyIGE9dGhpcy5hY3Rpb25zLG47cj1yfHxhLnNoaWZ0KCk7ZG8gaWYobj1yLmV4ZWN1dGUoci5zdGF0ZSxyLmRlbGF5KSlicmVhazt3aGlsZSgocj1hWzBdKSYmci5pZD09PWkmJmEuc2hpZnQoKSk7aWYodGhpcy5fYWN0aXZlPSExLG4pe2Zvcig7KHI9YVswXSkmJnIuaWQ9PT1pJiZhLnNoaWZ0KCk7KXIudW5zdWJzY3JpYmUoKTt0aHJvdyBufX0sdH0pKHAyKX0pO3ZhciBXRWUsTF9yLEdFZT1wKCgpPT57VkVlKCk7VUVlKCk7V0VlPW5ldyBLWShKWSksTF9yPVdFZX0pO3ZhciBZRWUsZVosWkVlPXAoKCk9PntxcigpO0t1KCk7enMoKTtlOCgpO1lFZT0oZnVuY3Rpb24oZSl7WHQodCxlKTtmdW5jdGlvbiB0KHIsaSl7cj09PXZvaWQgMCYmKHI9ZVopLGk9PT12b2lkIDAmJihpPTEvMCk7dmFyIGE9ZS5jYWxsKHRoaXMscixmdW5jdGlvbigpe3JldHVybiBhLmZyYW1lfSl8fHRoaXM7cmV0dXJuIGEubWF4RnJhbWVzPWksYS5mcmFtZT0wLGEuaW5kZXg9LTEsYX1yZXR1cm4gdC5wcm90b3R5cGUuZmx1c2g9ZnVuY3Rpb24oKXtmb3IodmFyIHI9dGhpcyxpPXIuYWN0aW9ucyxhPXIubWF4RnJhbWVzLG4sbzsobz1pWzBdKSYmby5kZWxheTw9YSYmKGkuc2hpZnQoKSx0aGlzLmZyYW1lPW8uZGVsYXksIShuPW8uZXhlY3V0ZShvLnN0YXRlLG8uZGVsYXkpKSk7KTtpZihuKXtmb3IoO289aS5zaGlmdCgpOylvLnVuc3Vic2NyaWJlKCk7dGhyb3cgbn19LHQuZnJhbWVUaW1lRmFjdG9yPTEwLHR9KShwMiksZVo9KGZ1bmN0aW9uKGUpe1h0KHQsZSk7ZnVuY3Rpb24gdChyLGksYSl7YT09PXZvaWQgMCYmKGE9ci5pbmRleCs9MSk7dmFyIG49ZS5jYWxsKHRoaXMscixpKXx8dGhpcztyZXR1cm4gbi5zY2hlZHVsZXI9cixuLndvcms9aSxuLmluZGV4PWEsbi5hY3RpdmU9ITAsbi5pbmRleD1yLmluZGV4PWEsbn1yZXR1cm4gdC5wcm90b3R5cGUuc2NoZWR1bGU9ZnVuY3Rpb24ocixpKXtpZihpPT09dm9pZCAwJiYoaT0wKSxOdW1iZXIuaXNGaW5pdGUoaSkpe2lmKCF0aGlzLmlkKXJldHVybiBlLnByb3RvdHlwZS5zY2hlZHVsZS5jYWxsKHRoaXMscixpKTt0aGlzLmFjdGl2ZT0hMTt2YXIgYT1uZXcgdCh0aGlzLnNjaGVkdWxlcix0aGlzLndvcmspO3JldHVybiB0aGlzLmFkZChhKSxhLnNjaGVkdWxlKHIsaSl9ZWxzZSByZXR1cm4gcTEuRU1QVFl9LHQucHJvdG90eXBlLnJlcXVlc3RBc3luY0lkPWZ1bmN0aW9uKHIsaSxhKXthPT09dm9pZCAwJiYoYT0wKSx0aGlzLmRlbGF5PXIuZnJhbWUrYTt2YXIgbj1yLmFjdGlvbnM7cmV0dXJuIG4ucHVzaCh0aGlzKSxuLnNvcnQodC5zb3J0QWN0aW9ucyksMX0sdC5wcm90b3R5cGUucmVjeWNsZUFzeW5jSWQ9ZnVuY3Rpb24ocixpLGEpe2E9PT12b2lkIDAmJihhPTApfSx0LnByb3RvdHlwZS5fZXhlY3V0ZT1mdW5jdGlvbihyLGkpe2lmKHRoaXMuYWN0aXZlPT09ITApcmV0dXJuIGUucHJvdG90eXBlLl9leGVjdXRlLmNhbGwodGhpcyxyLGkpfSx0LnNvcnRBY3Rpb25zPWZ1bmN0aW9uKHIsaSl7cmV0dXJuIHIuZGVsYXk9PT1pLmRlbGF5P3IuaW5kZXg9PT1pLmluZGV4PzA6ci5pbmRleD5pLmluZGV4PzE6LTE6ci5kZWxheT5pLmRlbGF5PzE6LTF9LHR9KSh1Mil9KTtmdW5jdGlvbiBBX3IoZSl7cmV0dXJuIGU/RF9yKGUpOlBTfWZ1bmN0aW9uIERfcihlKXtyZXR1cm4gbmV3IHF0KGZ1bmN0aW9uKHQpe3JldHVybiBlLnNjaGVkdWxlKGZ1bmN0aW9uKCl7cmV0dXJuIHQuY29tcGxldGUoKX0pfSl9dmFyIFBTLE5TPXAoKCk9Pnt4bigpO1BTPW5ldyBxdChmdW5jdGlvbihlKXtyZXR1cm4gZS5jb21wbGV0ZSgpfSl9KTtmdW5jdGlvbiBGUyhlKXtyZXR1cm4gZSYmX3QoZS5zY2hlZHVsZSl9dmFyIHRaPXAoKCk9PnskaSgpfSk7ZnVuY3Rpb24gclooZSl7cmV0dXJuIGVbZS5sZW5ndGgtMV19ZnVuY3Rpb24gdnRpKGUpe3JldHVybiBfdChyWihlKSk/ZS5wb3AoKTp2b2lkIDB9ZnVuY3Rpb24gUDAoZSl7cmV0dXJuIEZTKHJaKGUpKT9lLnBvcCgpOnZvaWQgMH1mdW5jdGlvbiB4dGkoZSx0KXtyZXR1cm4gdHlwZW9mIHJaKGUpPT0ibnVtYmVyIj9lLnBvcCgpOnR9dmFyIGZtPXAoKCk9PnskaSgpO3RaKCl9KTt2YXIgdDgsT1M9cCgoKT0+e3Q4PShmdW5jdGlvbihlKXtyZXR1cm4gZSYmdHlwZW9mIGUubGVuZ3RoPT0ibnVtYmVyIiYmdHlwZW9mIGUhPSJmdW5jdGlvbiJ9KX0pO2Z1bmN0aW9uIFJTKGUpe3JldHVybiBfdChlPy50aGVuKX12YXIgaVo9cCgoKT0+eyRpKCl9KTtmdW5jdGlvbiBCUyhlKXtyZXR1cm4gX3QoZVt3Nl0pfXZhciBhWj1wKCgpPT57c20oKTskaSgpfSk7ZnVuY3Rpb24gSFMoZSl7cmV0dXJuIFN5bWJvbC5hc3luY0l0ZXJhdG9yJiZfdChlPy5bU3ltYm9sLmFzeW5jSXRlcmF0b3JdKX12YXIgblo9cCgoKT0+eyRpKCl9KTtmdW5jdGlvbiBxUyhlKXtyZXR1cm4gbmV3IFR5cGVFcnJvcigiWW91IHByb3ZpZGVkICIrKGUhPT1udWxsJiZ0eXBlb2YgZT09Im9iamVjdCI/ImFuIGludmFsaWQgb2JqZWN0IjoiJyIrZSsiJyIpKyIgd2hlcmUgYSBzdHJlYW0gd2FzIGV4cGVjdGVkLiBZb3UgY2FuIHByb3ZpZGUgYW4gT2JzZXJ2YWJsZSwgUHJvbWlzZSwgUmVhZGFibGVTdHJlYW0sIEFycmF5LCBBc3luY0l0ZXJhYmxlLCBvciBJdGVyYWJsZS4iKX12YXIgb1o9cCgoKT0+e30pO2Z1bmN0aW9uIEVfcigpe3JldHVybiB0eXBlb2YgU3ltYm9sIT0iZnVuY3Rpb24ifHwhU3ltYm9sLml0ZXJhdG9yPyJAQGl0ZXJhdG9yIjpTeW1ib2wuaXRlcmF0b3J9dmFyIGpTLHNaPXAoKCk9PntqUz1FX3IoKX0pO2Z1bmN0aW9uIFZTKGUpe3JldHVybiBfdChlPy5balNdKX12YXIgbFo9cCgoKT0+e3NaKCk7JGkoKX0pO2Z1bmN0aW9uIFVTKGUpe3JldHVybiB6WSh0aGlzLGFyZ3VtZW50cyxmdW5jdGlvbigpe3ZhciByLGksYSxuO3JldHVybiBhbSh0aGlzLGZ1bmN0aW9uKG8pe3N3aXRjaChvLmxhYmVsKXtjYXNlIDA6cj1lLmdldFJlYWRlcigpLG8ubGFiZWw9MTtjYXNlIDE6by50cnlzLnB1c2goWzEsLDksMTBdKSxvLmxhYmVsPTI7Y2FzZSAyOnJldHVybls0LEJsKHIucmVhZCgpKV07Y2FzZSAzOnJldHVybiBpPW8uc2VudCgpLGE9aS52YWx1ZSxuPWkuZG9uZSxuP1s0LEJsKHZvaWQgMCldOlszLDVdO2Nhc2UgNDpyZXR1cm5bMixvLnNlbnQoKV07Y2FzZSA1OnJldHVybls0LEJsKGEpXTtjYXNlIDY6cmV0dXJuWzQsby5zZW50KCldO2Nhc2UgNzpyZXR1cm4gby5zZW50KCksWzMsMl07Y2FzZSA4OnJldHVyblszLDEwXTtjYXNlIDk6cmV0dXJuIHIucmVsZWFzZUxvY2soKSxbN107Y2FzZSAxMDpyZXR1cm5bMl19fSl9KX1mdW5jdGlvbiBXUyhlKXtyZXR1cm4gX3QoZT8uZ2V0UmVhZGVyKX12YXIgR1M9cCgoKT0+e3FyKCk7JGkoKX0pO2Z1bmN0aW9uIEQxKGUpe2lmKGUgaW5zdGFuY2VvZiBxdClyZXR1cm4gZTtpZihlIT1udWxsKXtpZihCUyhlKSlyZXR1cm4gJF9yKGUpO2lmKHQ4KGUpKXJldHVybiBJX3IoZSk7aWYoUlMoZSkpcmV0dXJuIFBfcihlKTtpZihIUyhlKSlyZXR1cm4gWEVlKGUpO2lmKFZTKGUpKXJldHVybiBOX3IoZSk7aWYoV1MoZSkpcmV0dXJuIEZfcihlKX10aHJvdyBxUyhlKX1mdW5jdGlvbiAkX3IoZSl7cmV0dXJuIG5ldyBxdChmdW5jdGlvbih0KXt2YXIgcj1lW3c2XSgpO2lmKF90KHIuc3Vic2NyaWJlKSlyZXR1cm4gci5zdWJzY3JpYmUodCk7dGhyb3cgbmV3IFR5cGVFcnJvcigiUHJvdmlkZWQgb2JqZWN0IGRvZXMgbm90IGNvcnJlY3RseSBpbXBsZW1lbnQgU3ltYm9sLm9ic2VydmFibGUiKX0pfWZ1bmN0aW9uIElfcihlKXtyZXR1cm4gbmV3IHF0KGZ1bmN0aW9uKHQpe2Zvcih2YXIgcj0wO3I8ZS5sZW5ndGgmJiF0LmNsb3NlZDtyKyspdC5uZXh0KGVbcl0pO3QuY29tcGxldGUoKX0pfWZ1bmN0aW9uIFBfcihlKXtyZXR1cm4gbmV3IHF0KGZ1bmN0aW9uKHQpe2UudGhlbihmdW5jdGlvbihyKXt0LmNsb3NlZHx8KHQubmV4dChyKSx0LmNvbXBsZXRlKCkpfSxmdW5jdGlvbihyKXtyZXR1cm4gdC5lcnJvcihyKX0pLnRoZW4obnVsbCxDUyl9KX1mdW5jdGlvbiBOX3IoZSl7cmV0dXJuIG5ldyBxdChmdW5jdGlvbih0KXt2YXIgcixpO3RyeXtmb3IodmFyIGE9eWEoZSksbj1hLm5leHQoKTshbi5kb25lO249YS5uZXh0KCkpe3ZhciBvPW4udmFsdWU7aWYodC5uZXh0KG8pLHQuY2xvc2VkKXJldHVybn19Y2F0Y2gocyl7cj17ZXJyb3I6c319ZmluYWxseXt0cnl7biYmIW4uZG9uZSYmKGk9YS5yZXR1cm4pJiZpLmNhbGwoYSl9ZmluYWxseXtpZihyKXRocm93IHIuZXJyb3J9fXQuY29tcGxldGUoKX0pfWZ1bmN0aW9uIFhFZShlKXtyZXR1cm4gbmV3IHF0KGZ1bmN0aW9uKHQpe09fcihlLHQpLmNhdGNoKGZ1bmN0aW9uKHIpe3JldHVybiB0LmVycm9yKHIpfSl9KX1mdW5jdGlvbiBGX3IoZSl7cmV0dXJuIFhFZShVUyhlKSl9ZnVuY3Rpb24gT19yKGUsdCl7dmFyIHIsaSxhLG47cmV0dXJuIFNZKHRoaXMsdm9pZCAwLHZvaWQgMCxmdW5jdGlvbigpe3ZhciBvLHM7cmV0dXJuIGFtKHRoaXMsZnVuY3Rpb24obCl7c3dpdGNoKGwubGFiZWwpe2Nhc2UgMDpsLnRyeXMucHVzaChbMCw1LDYsMTFdKSxyPUNZKGUpLGwubGFiZWw9MTtjYXNlIDE6cmV0dXJuWzQsci5uZXh0KCldO2Nhc2UgMjppZihpPWwuc2VudCgpLCEhaS5kb25lKXJldHVyblszLDRdO2lmKG89aS52YWx1ZSx0Lm5leHQobyksdC5jbG9zZWQpcmV0dXJuWzJdO2wubGFiZWw9MztjYXNlIDM6cmV0dXJuWzMsMV07Y2FzZSA0OnJldHVyblszLDExXTtjYXNlIDU6cmV0dXJuIHM9bC5zZW50KCksYT17ZXJyb3I6c30sWzMsMTFdO2Nhc2UgNjpyZXR1cm4gbC50cnlzLnB1c2goWzYsLDksMTBdKSxpJiYhaS5kb25lJiYobj1yLnJldHVybik/WzQsbi5jYWxsKHIpXTpbMyw4XTtjYXNlIDc6bC5zZW50KCksbC5sYWJlbD04O2Nhc2UgODpyZXR1cm5bMywxMF07Y2FzZSA5OmlmKGEpdGhyb3cgYS5lcnJvcjtyZXR1cm5bN107Y2FzZSAxMDpyZXR1cm5bN107Y2FzZSAxMTpyZXR1cm4gdC5jb21wbGV0ZSgpLFsyXX19KX0pfXZhciBNbz1wKCgpPT57cXIoKTtPUygpO2laKCk7eG4oKTthWigpO25aKCk7b1ooKTtsWigpO0dTKCk7JGkoKTtBWSgpO3NtKCl9KTtmdW5jdGlvbiBaaShlLHQscixpLGEpe2k9PT12b2lkIDAmJihpPTApLGE9PT12b2lkIDAmJihhPSExKTt2YXIgbj10LnNjaGVkdWxlKGZ1bmN0aW9uKCl7cigpLGE/ZS5hZGQodGhpcy5zY2hlZHVsZShudWxsLGkpKTp0aGlzLnVuc3Vic2NyaWJlKCl9LGkpO2lmKGUuYWRkKG4pLCFhKXJldHVybiBufXZhciBrNj1wKCgpPT57fSk7ZnVuY3Rpb24gcjgoZSx0KXtyZXR1cm4gdD09PXZvaWQgMCYmKHQ9MCksRHIoZnVuY3Rpb24ocixpKXtyLnN1YnNjcmliZSh3cihpLGZ1bmN0aW9uKGEpe3JldHVybiBaaShpLGUsZnVuY3Rpb24oKXtyZXR1cm4gaS5uZXh0KGEpfSx0KX0sZnVuY3Rpb24oKXtyZXR1cm4gWmkoaSxlLGZ1bmN0aW9uKCl7cmV0dXJuIGkuY29tcGxldGUoKX0sdCl9LGZ1bmN0aW9uKGEpe3JldHVybiBaaShpLGUsZnVuY3Rpb24oKXtyZXR1cm4gaS5lcnJvcihhKX0sdCl9KSl9KX12YXIgbW09cCgoKT0+e2s2KCk7WWkoKTtXYSgpfSk7ZnVuY3Rpb24gaTgoZSx0KXtyZXR1cm4gdD09PXZvaWQgMCYmKHQ9MCksRHIoZnVuY3Rpb24ocixpKXtpLmFkZChlLnNjaGVkdWxlKGZ1bmN0aW9uKCl7cmV0dXJuIHIuc3Vic2NyaWJlKGkpfSx0KSl9KX12YXIgZ209cCgoKT0+e1lpKCl9KTtmdW5jdGlvbiBRRWUoZSx0KXtyZXR1cm4gRDEoZSkucGlwZShpOCh0KSxyOCh0KSl9dmFyIEpFZT1wKCgpPT57TW8oKTttbSgpO2dtKCl9KTtmdW5jdGlvbiBLRWUoZSx0KXtyZXR1cm4gRDEoZSkucGlwZShpOCh0KSxyOCh0KSl9dmFyIGUkZT1wKCgpPT57TW8oKTttbSgpO2dtKCl9KTtmdW5jdGlvbiB0JGUoZSx0KXtyZXR1cm4gbmV3IHF0KGZ1bmN0aW9uKHIpe3ZhciBpPTA7cmV0dXJuIHQuc2NoZWR1bGUoZnVuY3Rpb24oKXtpPT09ZS5sZW5ndGg/ci5jb21wbGV0ZSgpOihyLm5leHQoZVtpKytdKSxyLmNsb3NlZHx8dGhpcy5zY2hlZHVsZSgpKX0pfSl9dmFyIHIkZT1wKCgpPT57eG4oKX0pO2Z1bmN0aW9uIGkkZShlLHQpe3JldHVybiBuZXcgcXQoZnVuY3Rpb24ocil7dmFyIGk7cmV0dXJuIFppKHIsdCxmdW5jdGlvbigpe2k9ZVtqU10oKSxaaShyLHQsZnVuY3Rpb24oKXt2YXIgYSxuLG87dHJ5e2E9aS5uZXh0KCksbj1hLnZhbHVlLG89YS5kb25lfWNhdGNoKHMpe3IuZXJyb3Iocyk7cmV0dXJufW8/ci5jb21wbGV0ZSgpOnIubmV4dChuKX0sMCwhMCl9KSxmdW5jdGlvbigpe3JldHVybiBfdChpPy5yZXR1cm4pJiZpLnJldHVybigpfX0pfXZhciBhJGU9cCgoKT0+e3huKCk7c1ooKTskaSgpO2s2KCl9KTtmdW5jdGlvbiBZUyhlLHQpe2lmKCFlKXRocm93IG5ldyBFcnJvcigiSXRlcmFibGUgY2Fubm90IGJlIG51bGwiKTtyZXR1cm4gbmV3IHF0KGZ1bmN0aW9uKHIpe1ppKHIsdCxmdW5jdGlvbigpe3ZhciBpPWVbU3ltYm9sLmFzeW5jSXRlcmF0b3JdKCk7Wmkocix0LGZ1bmN0aW9uKCl7aS5uZXh0KCkudGhlbihmdW5jdGlvbihhKXthLmRvbmU/ci5jb21wbGV0ZSgpOnIubmV4dChhLnZhbHVlKX0pfSwwLCEwKX0pfSl9dmFyIGNaPXAoKCk9Pnt4bigpO2s2KCl9KTtmdW5jdGlvbiBuJGUoZSx0KXtyZXR1cm4gWVMoVVMoZSksdCl9dmFyIG8kZT1wKCgpPT57Y1ooKTtHUygpfSk7ZnVuY3Rpb24gZFooZSx0KXtpZihlIT1udWxsKXtpZihCUyhlKSlyZXR1cm4gUUVlKGUsdCk7aWYodDgoZSkpcmV0dXJuIHQkZShlLHQpO2lmKFJTKGUpKXJldHVybiBLRWUoZSx0KTtpZihIUyhlKSlyZXR1cm4gWVMoZSx0KTtpZihWUyhlKSlyZXR1cm4gaSRlKGUsdCk7aWYoV1MoZSkpcmV0dXJuIG4kZShlLHQpfXRocm93IHFTKGUpfXZhciB1Wj1wKCgpPT57SkVlKCk7ZSRlKCk7ciRlKCk7YSRlKCk7Y1ooKTthWigpO2laKCk7T1MoKTtsWigpO25aKCk7b1ooKTtHUygpO28kZSgpfSk7ZnVuY3Rpb24gUzYoZSx0KXtyZXR1cm4gdD9kWihlLHQpOkQxKGUpfXZhciBaUz1wKCgpPT57dVooKTtNbygpfSk7ZnVuY3Rpb24gYm0oKXtmb3IodmFyIGU9W10sdD0wO3Q8YXJndW1lbnRzLmxlbmd0aDt0KyspZVt0XT1hcmd1bWVudHNbdF07dmFyIHI9UDAoZSk7cmV0dXJuIFM2KGUscil9dmFyIHBaPXAoKCk9PntmbSgpO1pTKCl9KTtmdW5jdGlvbiBoWihlLHQpe3ZhciByPV90KGUpP2U6ZnVuY3Rpb24oKXtyZXR1cm4gZX0saT1mdW5jdGlvbihhKXtyZXR1cm4gYS5lcnJvcihyKCkpfTtyZXR1cm4gbmV3IHF0KHQ/ZnVuY3Rpb24oYSl7cmV0dXJuIHQuc2NoZWR1bGUoaSwwLGEpfTppKX12YXIgZlo9cCgoKT0+e3huKCk7JGkoKX0pO2Z1bmN0aW9uIFJfcihlLHQpe3ZhciByLGksYSxuPWUsbz1uLmtpbmQscz1uLnZhbHVlLGw9bi5lcnJvcjtpZih0eXBlb2YgbyE9InN0cmluZyIpdGhyb3cgbmV3IFR5cGVFcnJvcignSW52YWxpZCBub3RpZmljYXRpb24sIG1pc3NpbmcgImtpbmQiJyk7bz09PSJOIj8ocj10Lm5leHQpPT09bnVsbHx8cj09PXZvaWQgMHx8ci5jYWxsKHQscyk6bz09PSJFIj8oaT10LmVycm9yKT09PW51bGx8fGk9PT12b2lkIDB8fGkuY2FsbCh0LGwpOihhPXQuY29tcGxldGUpPT09bnVsbHx8YT09PXZvaWQgMHx8YS5jYWxsKHQpfXZhciBtWixzJGUsbCRlPXAoKCk9PntOUygpO3BaKCk7ZlooKTskaSgpOyhmdW5jdGlvbihlKXtlLk5FWFQ9Ik4iLGUuRVJST1I9IkUiLGUuQ09NUExFVEU9IkMifSkobVp8fChtWj17fSkpO3MkZT0oZnVuY3Rpb24oKXtmdW5jdGlvbiBlKHQscixpKXt0aGlzLmtpbmQ9dCx0aGlzLnZhbHVlPXIsdGhpcy5lcnJvcj1pLHRoaXMuaGFzVmFsdWU9dD09PSJOIn1yZXR1cm4gZS5wcm90b3R5cGUub2JzZXJ2ZT1mdW5jdGlvbih0KXtyZXR1cm4gUl9yKHRoaXMsdCl9LGUucHJvdG90eXBlLmRvPWZ1bmN0aW9uKHQscixpKXt2YXIgYT10aGlzLG49YS5raW5kLG89YS52YWx1ZSxzPWEuZXJyb3I7cmV0dXJuIG49PT0iTiI/dD8uKG8pOm49PT0iRSI/cj8uKHMpOmk/LigpfSxlLnByb3RvdHlwZS5hY2NlcHQ9ZnVuY3Rpb24odCxyLGkpe3ZhciBhO3JldHVybiBfdCgoYT10KT09PW51bGx8fGE9PT12b2lkIDA/dm9pZCAwOmEubmV4dCk/dGhpcy5vYnNlcnZlKHQpOnRoaXMuZG8odCxyLGkpfSxlLnByb3RvdHlwZS50b09ic2VydmFibGU9ZnVuY3Rpb24oKXt2YXIgdD10aGlzLHI9dC5raW5kLGk9dC52YWx1ZSxhPXQuZXJyb3Isbj1yPT09Ik4iP2JtKGkpOnI9PT0iRSI/aFooZnVuY3Rpb24oKXtyZXR1cm4gYX0pOnI9PT0iQyI/UFM6MDtpZighbil0aHJvdyBuZXcgVHlwZUVycm9yKCJVbmV4cGVjdGVkIG5vdGlmaWNhdGlvbiBraW5kICIrcik7cmV0dXJuIG59LGUuY3JlYXRlTmV4dD1mdW5jdGlvbih0KXtyZXR1cm4gbmV3IGUoIk4iLHQpfSxlLmNyZWF0ZUVycm9yPWZ1bmN0aW9uKHQpe3JldHVybiBuZXcgZSgiRSIsdm9pZCAwLHQpfSxlLmNyZWF0ZUNvbXBsZXRlPWZ1bmN0aW9uKCl7cmV0dXJuIGUuY29tcGxldGVOb3RpZmljYXRpb259LGUuY29tcGxldGVOb3RpZmljYXRpb249bmV3IGUoIkMiKSxlfSkoKX0pO3ZhciBjJGU9cCgoKT0+e30pO3ZhciBCX3IsZCRlPXAoKCk9PntJMCgpO0Jfcj12bihmdW5jdGlvbihlKXtyZXR1cm4gZnVuY3Rpb24oKXtlKHRoaXMpLHRoaXMubmFtZT0iRW1wdHlFcnJvciIsdGhpcy5tZXNzYWdlPSJubyBlbGVtZW50cyBpbiBzZXF1ZW5jZSJ9fSl9KTt2YXIgdSRlPXAoKCk9Pnt9KTt2YXIgcCRlPXAoKCk9Pnt9KTt2YXIgSF9yLGgkZT1wKCgpPT57STAoKTtIX3I9dm4oZnVuY3Rpb24oZSl7cmV0dXJuIGZ1bmN0aW9uKCl7ZSh0aGlzKSx0aGlzLm5hbWU9IkFyZ3VtZW50T3V0T2ZSYW5nZUVycm9yIix0aGlzLm1lc3NhZ2U9ImFyZ3VtZW50IG91dCBvZiByYW5nZSJ9fSl9KTt2YXIgcV9yLGYkZT1wKCgpPT57STAoKTtxX3I9dm4oZnVuY3Rpb24oZSl7cmV0dXJuIGZ1bmN0aW9uKHIpe2UodGhpcyksdGhpcy5uYW1lPSJOb3RGb3VuZEVycm9yIix0aGlzLm1lc3NhZ2U9cn19KX0pO3ZhciBqX3IsbSRlPXAoKCk9PntJMCgpO2pfcj12bihmdW5jdGlvbihlKXtyZXR1cm4gZnVuY3Rpb24ocil7ZSh0aGlzKSx0aGlzLm5hbWU9IlNlcXVlbmNlRXJyb3IiLHRoaXMubWVzc2FnZT1yfX0pfSk7ZnVuY3Rpb24gWFMoZSl7cmV0dXJuIGUgaW5zdGFuY2VvZiBEYXRlJiYhaXNOYU4oZSl9dmFyIGdaPXAoKCk9Pnt9KTtmdW5jdGlvbiBiJGUoZSx0KXt2YXIgcj1YUyhlKT97Zmlyc3Q6ZX06dHlwZW9mIGU9PSJudW1iZXIiP3tlYWNoOmV9OmUsaT1yLmZpcnN0LGE9ci5lYWNoLG49ci53aXRoLG89bj09PXZvaWQgMD9WX3I6bixzPXIuc2NoZWR1bGVyLGw9cz09PXZvaWQgMD90Pz9DczpzLGM9ci5tZXRhLHU9Yz09PXZvaWQgMD9udWxsOmM7aWYoaT09bnVsbCYmYT09bnVsbCl0aHJvdyBuZXcgVHlwZUVycm9yKCJObyB0aW1lb3V0IHByb3ZpZGVkLiIpO3JldHVybiBEcihmdW5jdGlvbihkLGgpe3ZhciBmLHgsdj1udWxsLGI9MCx5PWZ1bmN0aW9uKHcpe3g9WmkoaCxsLGZ1bmN0aW9uKCl7dHJ5e2YudW5zdWJzY3JpYmUoKSxEMShvKHttZXRhOnUsbGFzdFZhbHVlOnYsc2VlbjpifSkpLnN1YnNjcmliZShoKX1jYXRjaChrKXtoLmVycm9yKGspfX0sdyl9O2Y9ZC5zdWJzY3JpYmUod3IoaCxmdW5jdGlvbih3KXt4Py51bnN1YnNjcmliZSgpLGIrKyxoLm5leHQodj13KSxhPjAmJnkoYSl9LHZvaWQgMCx2b2lkIDAsZnVuY3Rpb24oKXt4Py5jbG9zZWR8fHg/LnVuc3Vic2NyaWJlKCksdj1udWxsfSkpLCFiJiZ5KGkhPW51bGw/dHlwZW9mIGk9PSJudW1iZXIiP2k6K2ktbC5ub3coKTphKX0pfWZ1bmN0aW9uIFZfcihlKXt0aHJvdyBuZXcgZyRlKGUpfXZhciBnJGUsUVM9cCgoKT0+e002KCk7Z1ooKTtZaSgpO01vKCk7STAoKTtXYSgpO2s2KCk7ZyRlPXZuKGZ1bmN0aW9uKGUpe3JldHVybiBmdW5jdGlvbihyKXtyPT09dm9pZCAwJiYocj1udWxsKSxlKHRoaXMpLHRoaXMubWVzc2FnZT0iVGltZW91dCBoYXMgb2NjdXJyZWQiLHRoaXMubmFtZT0iVGltZW91dEVycm9yIix0aGlzLmluZm89cn19KX0pO2Z1bmN0aW9uIE4wKGUsdCl7cmV0dXJuIERyKGZ1bmN0aW9uKHIsaSl7dmFyIGE9MDtyLnN1YnNjcmliZSh3cihpLGZ1bmN0aW9uKG4pe2kubmV4dChlLmNhbGwodCxuLGErKykpfSkpfSl9dmFyIHZtPXAoKCk9PntZaSgpO1dhKCl9KTtmdW5jdGlvbiBXX3IoZSx0KXtyZXR1cm4gVV9yKHQpP2UuYXBwbHkodm9pZCAwLEdpKFtdLHRpKHQpKSk6ZSh0KX1mdW5jdGlvbiB2JGUoZSl7cmV0dXJuIE4wKGZ1bmN0aW9uKHQpe3JldHVybiBXX3IoZSx0KX0pfXZhciBVX3IseCRlPXAoKCk9PntxcigpO3ZtKCk7VV9yPUFycmF5LmlzQXJyYXl9KTt2YXIgeSRlPXAoKCk9Pnt9KTt2YXIgdyRlPXAoKCk9Pnt9KTt2YXIgTSRlPXAoKCk9Pnt9KTtmdW5jdGlvbiBrJGUoZSx0LHIsaSxhLG4sbyxzKXt2YXIgbD1bXSxjPTAsdT0wLGQ9ITEsaD1mdW5jdGlvbigpe2QmJiFsLmxlbmd0aCYmIWMmJnQuY29tcGxldGUoKX0sZj1mdW5jdGlvbih2KXtyZXR1cm4gYzxpP3godik6bC5wdXNoKHYpfSx4PWZ1bmN0aW9uKHYpe24mJnQubmV4dCh2KSxjKys7dmFyIGI9ITE7RDEocih2LHUrKykpLnN1YnNjcmliZSh3cih0LGZ1bmN0aW9uKHkpe2E/Lih5KSxuP2YoeSk6dC5uZXh0KHkpfSxmdW5jdGlvbigpe2I9ITB9LHZvaWQgMCxmdW5jdGlvbigpe2lmKGIpdHJ5e2MtLTtmb3IodmFyIHk9ZnVuY3Rpb24oKXt2YXIgdz1sLnNoaWZ0KCk7bz9aaSh0LG8sZnVuY3Rpb24oKXtyZXR1cm4geCh3KX0pOngodyl9O2wubGVuZ3RoJiZjPGk7KXkoKTtoKCl9Y2F0Y2godyl7dC5lcnJvcih3KX19KSl9O3JldHVybiBlLnN1YnNjcmliZSh3cih0LGYsZnVuY3Rpb24oKXtkPSEwLGgoKX0pKSxmdW5jdGlvbigpe3M/LigpfX12YXIgUyRlPXAoKCk9PntNbygpO2s2KCk7V2EoKX0pO2Z1bmN0aW9uIHo2KGUsdCxyKXtyZXR1cm4gcj09PXZvaWQgMCYmKHI9MS8wKSxfdCh0KT96NihmdW5jdGlvbihpLGEpe3JldHVybiBOMChmdW5jdGlvbihuLG8pe3JldHVybiB0KGksbixhLG8pfSkoRDEoZShpLGEpKSl9LHIpOih0eXBlb2YgdD09Im51bWJlciImJihyPXQpLERyKGZ1bmN0aW9uKGksYSl7cmV0dXJuIGskZShpLGEsZSxyKX0pKX12YXIgeG09cCgoKT0+e3ZtKCk7TW8oKTtZaSgpO1MkZSgpOyRpKCl9KTtmdW5jdGlvbiBKUyhlKXtyZXR1cm4gZT09PXZvaWQgMCYmKGU9MS8wKSx6NihsbSxlKX12YXIgS1M9cCgoKT0+e3htKCk7QVMoKX0pO2Z1bmN0aW9uIGV6KCl7cmV0dXJuIEpTKDEpfXZhciB0ej1wKCgpPT57S1MoKX0pO2Z1bmN0aW9uIHJ6KCl7Zm9yKHZhciBlPVtdLHQ9MDt0PGFyZ3VtZW50cy5sZW5ndGg7dCsrKWVbdF09YXJndW1lbnRzW3RdO3JldHVybiBleigpKFM2KGUsUDAoZSkpKX12YXIgYlo9cCgoKT0+e3R6KCk7Zm0oKTtaUygpfSk7dmFyIHokZT1wKCgpPT57fSk7dmFyIEMkZT1wKCgpPT57fSk7dmFyIFQkZT1wKCgpPT57fSk7ZnVuY3Rpb24gQzYoZSx0LHIsaSl7aWYoX3QocikmJihpPXIscj12b2lkIDApLGkpcmV0dXJuIEM2KGUsdCxyKS5waXBlKHYkZShpKSk7dmFyIGE9dGkoSl9yKGUpP1lfci5tYXAoZnVuY3Rpb24ocyl7cmV0dXJuIGZ1bmN0aW9uKGwpe3JldHVybiBlW3NdKHQsbCxyKX19KTpYX3IoZSk/R19yLm1hcChfJGUoZSx0KSk6UV9yKGUpP1pfci5tYXAoXyRlKGUsdCkpOltdLDIpLG49YVswXSxvPWFbMV07aWYoIW4mJnQ4KGUpKXJldHVybiB6NihmdW5jdGlvbihzKXtyZXR1cm4gQzYocyx0LHIpfSkoRDEoZSkpO2lmKCFuKXRocm93IG5ldyBUeXBlRXJyb3IoIkludmFsaWQgZXZlbnQgdGFyZ2V0Iik7cmV0dXJuIG5ldyBxdChmdW5jdGlvbihzKXt2YXIgbD1mdW5jdGlvbigpe2Zvcih2YXIgYz1bXSx1PTA7dTxhcmd1bWVudHMubGVuZ3RoO3UrKyljW3VdPWFyZ3VtZW50c1t1XTtyZXR1cm4gcy5uZXh0KDE8Yy5sZW5ndGg/YzpjWzBdKX07cmV0dXJuIG4obCksZnVuY3Rpb24oKXtyZXR1cm4gbyhsKX19KX1mdW5jdGlvbiBfJGUoZSx0KXtyZXR1cm4gZnVuY3Rpb24ocil7cmV0dXJuIGZ1bmN0aW9uKGkpe3JldHVybiBlW3JdKHQsaSl9fX1mdW5jdGlvbiBYX3IoZSl7cmV0dXJuIF90KGUuYWRkTGlzdGVuZXIpJiZfdChlLnJlbW92ZUxpc3RlbmVyKX1mdW5jdGlvbiBRX3IoZSl7cmV0dXJuIF90KGUub24pJiZfdChlLm9mZil9ZnVuY3Rpb24gSl9yKGUpe3JldHVybiBfdChlLmFkZEV2ZW50TGlzdGVuZXIpJiZfdChlLnJlbW92ZUV2ZW50TGlzdGVuZXIpfXZhciBHX3IsWV9yLFpfcixMJGU9cCgoKT0+e3FyKCk7TW8oKTt4bigpO3htKCk7T1MoKTskaSgpO3gkZSgpO0dfcj1bImFkZExpc3RlbmVyIiwicmVtb3ZlTGlzdGVuZXIiXSxZX3I9WyJhZGRFdmVudExpc3RlbmVyIiwicmVtb3ZlRXZlbnRMaXN0ZW5lciJdLFpfcj1bIm9uIiwib2ZmIl19KTt2YXIgQSRlPXAoKCk9Pnt9KTt2YXIgRCRlPXAoKCk9Pnt9KTt2YXIgRSRlPXAoKCk9Pnt9KTtmdW5jdGlvbiB2WihlLHQscil7ZT09PXZvaWQgMCYmKGU9MCkscj09PXZvaWQgMCYmKHI9WlkpO3ZhciBpPS0xO3JldHVybiB0IT1udWxsJiYoRlModCk/cj10Omk9dCksbmV3IHF0KGZ1bmN0aW9uKGEpe3ZhciBuPVhTKGUpPytlLXIubm93KCk6ZTtuPDAmJihuPTApO3ZhciBvPTA7cmV0dXJuIHIuc2NoZWR1bGUoZnVuY3Rpb24oKXthLmNsb3NlZHx8KGEubmV4dChvKyspLDA8PWk/dGhpcy5zY2hlZHVsZSh2b2lkIDAsaSk6YS5jb21wbGV0ZSgpKX0sbil9KX12YXIgeFo9cCgoKT0+e3huKCk7TTYoKTt0WigpO2daKCl9KTt2YXIgJCRlPXAoKCk9Pnt9KTt2YXIgSSRlPXAoKCk9Pnt9KTtmdW5jdGlvbiBLX3IoKXtyZXR1cm4gUCRlfXZhciBQJGUseVo9cCgoKT0+e3huKCk7djYoKTtQJGU9bmV3IHF0KHdvKX0pO3ZhciBOJGU9cCgoKT0+e30pO3ZhciBGJGU9cCgoKT0+e30pO2Z1bmN0aW9uIGl6KGUsdCl7cmV0dXJuIERyKGZ1bmN0aW9uKHIsaSl7dmFyIGE9MDtyLnN1YnNjcmliZSh3cihpLGZ1bmN0aW9uKG4pe3JldHVybiBlLmNhbGwodCxuLGErKykmJmkubmV4dChuKX0pKX0pfXZhciB3Wj1wKCgpPT57WWkoKTtXYSgpfSk7dmFyIE8kZT1wKCgpPT57fSk7dmFyIFIkZT1wKCgpPT57fSk7dmFyIEIkZT1wKCgpPT57fSk7dmFyIEgkZT1wKCgpPT57fSk7dmFyIHEkZT1wKCgpPT57fSk7dmFyIGokZT1wKCgpPT57fSk7dmFyIE1aPXAoKCk9Pnt9KTt2YXIga1o9cCgoKT0+e30pO2Z1bmN0aW9uIGF6KGUpe3JldHVybiBEcihmdW5jdGlvbih0LHIpe3ZhciBpPVtdO3JldHVybiB0LnN1YnNjcmliZSh3cihyLGZ1bmN0aW9uKGEpe3JldHVybiBpLnB1c2goYSl9LGZ1bmN0aW9uKCl7ci5uZXh0KGkpLHIuY29tcGxldGUoKX0pKSxEMShlKS5zdWJzY3JpYmUod3IocixmdW5jdGlvbigpe3ZhciBhPWk7aT1bXSxyLm5leHQoYSl9LHdvKSksZnVuY3Rpb24oKXtpPW51bGx9fSl9dmFyIFNaPXAoKCk9PntZaSgpO3Y2KCk7V2EoKTtNbygpfSk7ZnVuY3Rpb24gbnooZSx0KXtyZXR1cm4gdD09PXZvaWQgMCYmKHQ9bnVsbCksdD10Pz9lLERyKGZ1bmN0aW9uKHIsaSl7dmFyIGE9W10sbj0wO3Iuc3Vic2NyaWJlKHdyKGksZnVuY3Rpb24obyl7dmFyIHMsbCxjLHUsZD1udWxsO24rKyV0PT09MCYmYS5wdXNoKFtdKTt0cnl7Zm9yKHZhciBoPXlhKGEpLGY9aC5uZXh0KCk7IWYuZG9uZTtmPWgubmV4dCgpKXt2YXIgeD1mLnZhbHVlO3gucHVzaChvKSxlPD14Lmxlbmd0aCYmKGQ9ZD8/W10sZC5wdXNoKHgpKX19Y2F0Y2goeSl7cz17ZXJyb3I6eX19ZmluYWxseXt0cnl7ZiYmIWYuZG9uZSYmKGw9aC5yZXR1cm4pJiZsLmNhbGwoaCl9ZmluYWxseXtpZihzKXRocm93IHMuZXJyb3J9fWlmKGQpdHJ5e2Zvcih2YXIgdj15YShkKSxiPXYubmV4dCgpOyFiLmRvbmU7Yj12Lm5leHQoKSl7dmFyIHg9Yi52YWx1ZTtkMihhLHgpLGkubmV4dCh4KX19Y2F0Y2goeSl7Yz17ZXJyb3I6eX19ZmluYWxseXt0cnl7YiYmIWIuZG9uZSYmKHU9di5yZXR1cm4pJiZ1LmNhbGwodil9ZmluYWxseXtpZihjKXRocm93IGMuZXJyb3J9fX0sZnVuY3Rpb24oKXt2YXIgbyxzO3RyeXtmb3IodmFyIGw9eWEoYSksYz1sLm5leHQoKTshYy5kb25lO2M9bC5uZXh0KCkpe3ZhciB1PWMudmFsdWU7aS5uZXh0KHUpfX1jYXRjaChkKXtvPXtlcnJvcjpkfX1maW5hbGx5e3RyeXtjJiYhYy5kb25lJiYocz1sLnJldHVybikmJnMuY2FsbChsKX1maW5hbGx5e2lmKG8pdGhyb3cgby5lcnJvcn19aS5jb21wbGV0ZSgpfSx2b2lkIDAsZnVuY3Rpb24oKXthPW51bGx9KSl9KX12YXIgelo9cCgoKT0+e3FyKCk7WWkoKTtXYSgpO1p1KCl9KTtmdW5jdGlvbiBveihlKXtmb3IodmFyIHQscixpPVtdLGE9MTthPGFyZ3VtZW50cy5sZW5ndGg7YSsrKWlbYS0xXT1hcmd1bWVudHNbYV07dmFyIG49KHQ9UDAoaSkpIT09bnVsbCYmdCE9PXZvaWQgMD90OkNzLG89KHI9aVswXSkhPT1udWxsJiZyIT09dm9pZCAwP3I6bnVsbCxzPWlbMV18fDEvMDtyZXR1cm4gRHIoZnVuY3Rpb24obCxjKXt2YXIgdT1bXSxkPSExLGg9ZnVuY3Rpb24odil7dmFyIGI9di5idWZmZXIseT12LnN1YnM7eS51bnN1YnNjcmliZSgpLGQyKHUsdiksYy5uZXh0KGIpLGQmJmYoKX0sZj1mdW5jdGlvbigpe2lmKHUpe3ZhciB2PW5ldyBxMTtjLmFkZCh2KTt2YXIgYj1bXSx5PXtidWZmZXI6YixzdWJzOnZ9O3UucHVzaCh5KSxaaSh2LG4sZnVuY3Rpb24oKXtyZXR1cm4gaCh5KX0sZSl9fTtvIT09bnVsbCYmbz49MD9aaShjLG4sZixvLCEwKTpkPSEwLGYoKTt2YXIgeD13cihjLGZ1bmN0aW9uKHYpe3ZhciBiLHksdz11LnNsaWNlKCk7dHJ5e2Zvcih2YXIgaz15YSh3KSxPPWsubmV4dCgpOyFPLmRvbmU7Tz1rLm5leHQoKSl7dmFyIHo9Ty52YWx1ZSxNPXouYnVmZmVyO00ucHVzaCh2KSxzPD1NLmxlbmd0aCYmaCh6KX19Y2F0Y2goRil7Yj17ZXJyb3I6Rn19ZmluYWxseXt0cnl7TyYmIU8uZG9uZSYmKHk9ay5yZXR1cm4pJiZ5LmNhbGwoayl9ZmluYWxseXtpZihiKXRocm93IGIuZXJyb3J9fX0sZnVuY3Rpb24oKXtmb3IoO3U/Lmxlbmd0aDspYy5uZXh0KHUuc2hpZnQoKS5idWZmZXIpO3g/LnVuc3Vic2NyaWJlKCksYy5jb21wbGV0ZSgpLGMudW5zdWJzY3JpYmUoKX0sdm9pZCAwLGZ1bmN0aW9uKCl7cmV0dXJuIHU9bnVsbH0pO2wuc3Vic2NyaWJlKHgpfSl9dmFyIENaPXAoKCk9PntxcigpO3pzKCk7WWkoKTtXYSgpO1p1KCk7TTYoKTtmbSgpO2s2KCl9KTt2YXIgVFo9cCgoKT0+e30pO3ZhciBfWj1wKCgpPT57fSk7dmFyIExaPXAoKCk9Pnt9KTt2YXIgQVo9cCgoKT0+e30pO3ZhciBEWj1wKCgpPT57fSk7dmFyIEVaPXAoKCk9Pnt9KTt2YXIgJFo9cCgoKT0+e30pO3ZhciBWJGU9cCgoKT0+e30pO3ZhciBJWj1wKCgpPT57fSk7dmFyIFBaPXAoKCk9Pnt9KTt2YXIgTlo9cCgoKT0+e30pO3ZhciBVJGU9cCgoKT0+e30pO3ZhciBGWj1wKCgpPT57fSk7dmFyIE9aPXAoKCk9Pnt9KTt2YXIgUlo9cCgoKT0+e30pO2Z1bmN0aW9uIHN6KGUpe3JldHVybiBEcihmdW5jdGlvbih0LHIpe3ZhciBpPSExLGE9bnVsbCxuPW51bGwsbz1mdW5jdGlvbigpe2lmKG4/LnVuc3Vic2NyaWJlKCksbj1udWxsLGkpe2k9ITE7dmFyIHM9YTthPW51bGwsci5uZXh0KHMpfX07dC5zdWJzY3JpYmUod3IocixmdW5jdGlvbihzKXtuPy51bnN1YnNjcmliZSgpLGk9ITAsYT1zLG49d3IocixvLHdvKSxEMShlKHMpKS5zdWJzY3JpYmUobil9LGZ1bmN0aW9uKCl7bygpLHIuY29tcGxldGUoKX0sdm9pZCAwLGZ1bmN0aW9uKCl7YT1uPW51bGx9KSl9KX12YXIgQlo9cCgoKT0+e1lpKCk7djYoKTtXYSgpO01vKCl9KTtmdW5jdGlvbiBseihlLHQpe3JldHVybiB0PT09dm9pZCAwJiYodD1DcyksRHIoZnVuY3Rpb24ocixpKXt2YXIgYT1udWxsLG49bnVsbCxvPW51bGwscz1mdW5jdGlvbigpe2lmKGEpe2EudW5zdWJzY3JpYmUoKSxhPW51bGw7dmFyIGM9bjtuPW51bGwsaS5uZXh0KGMpfX07ZnVuY3Rpb24gbCgpe3ZhciBjPW8rZSx1PXQubm93KCk7aWYodTxjKXthPXRoaXMuc2NoZWR1bGUodm9pZCAwLGMtdSksaS5hZGQoYSk7cmV0dXJufXMoKX1yLnN1YnNjcmliZSh3cihpLGZ1bmN0aW9uKGMpe249YyxvPXQubm93KCksYXx8KGE9dC5zY2hlZHVsZShsLGUpLGkuYWRkKGEpKX0sZnVuY3Rpb24oKXtzKCksaS5jb21wbGV0ZSgpfSx2b2lkIDAsZnVuY3Rpb24oKXtuPWE9bnVsbH0pKX0pfXZhciBIWj1wKCgpPT57TTYoKTtZaSgpO1dhKCl9KTt2YXIgcVo9cCgoKT0+e30pO3ZhciBqWj1wKCgpPT57fSk7dmFyIFZaPXAoKCk9Pnt9KTt2YXIgVVo9cCgoKT0+e30pO3ZhciBXWj1wKCgpPT57fSk7dmFyIEdaPXAoKCk9Pnt9KTt2YXIgWVo9cCgoKT0+e30pO3ZhciBaWj1wKCgpPT57fSk7dmFyIFhaPXAoKCk9Pnt9KTt2YXIgUVo9cCgoKT0+e30pO3ZhciBKWj1wKCgpPT57fSk7dmFyIEtaPXAoKCk9Pnt9KTt2YXIgZVg9cCgoKT0+e30pO3ZhciB0WD1wKCgpPT57fSk7dmFyIHJYPXAoKCk9Pnt9KTt2YXIgaVg9cCgoKT0+e30pO3ZhciBhWD1wKCgpPT57fSk7dmFyIG5YPXAoKCk9Pnt9KTt2YXIgb1g9cCgoKT0+e30pO3ZhciBzWD1wKCgpPT57fSk7dmFyIGxYPXAoKCk9Pnt9KTt2YXIgY1g9cCgoKT0+e30pO3ZhciBkWD1wKCgpPT57fSk7dmFyIHVYPXAoKCk9Pnt9KTt2YXIgcFg9cCgoKT0+e30pO3ZhciBoWD1wKCgpPT57fSk7dmFyIGZYPXAoKCk9Pnt9KTt2YXIgbVg9cCgoKT0+e30pO3ZhciBnWD1wKCgpPT57fSk7dmFyIGJYPXAoKCk9Pnt9KTt2YXIgdlg9cCgoKT0+e30pO3ZhciBXJGU9cCgoKT0+e30pO3ZhciB4WD1wKCgpPT57fSk7dmFyIHlYPXAoKCk9Pnt9KTt2YXIgd1g9cCgoKT0+e30pO3ZhciBNWD1wKCgpPT57fSk7dmFyIGtYPXAoKCk9Pnt9KTt2YXIgU1g9cCgoKT0+e30pO3ZhciB6WD1wKCgpPT57fSk7dmFyIENYPXAoKCk9Pnt9KTt2YXIgVFg9cCgoKT0+e30pO3ZhciBfWD1wKCgpPT57fSk7dmFyIExYPXAoKCk9Pnt9KTt2YXIgQVg9cCgoKT0+e30pO3ZhciBEWD1wKCgpPT57fSk7dmFyIEVYPXAoKCk9Pnt9KTt2YXIgJFg9cCgoKT0+e30pO3ZhciBJWD1wKCgpPT57fSk7dmFyIFBYPXAoKCk9Pnt9KTt2YXIgTlg9cCgoKT0+e30pO3ZhciBGWD1wKCgpPT57fSk7dmFyIE9YPXAoKCk9Pnt9KTt2YXIgUlg9cCgoKT0+e30pO3ZhciBCWD1wKCgpPT57fSk7dmFyIEhYPXAoKCk9Pnt9KTt2YXIgcVg9cCgoKT0+e30pO3ZhciBqWD1wKCgpPT57fSk7dmFyIFZYPXAoKCk9Pnt9KTtmdW5jdGlvbiBjeigpe2Zvcih2YXIgZT1bXSx0PTA7dDxhcmd1bWVudHMubGVuZ3RoO3QrKyllW3RdPWFyZ3VtZW50c1t0XTt2YXIgcj1QMChlKTtyZXR1cm4gRHIoZnVuY3Rpb24oaSxhKXsocj9yeihlLGkscik6cnooZSxpKSkuc3Vic2NyaWJlKGEpfSl9dmFyIFVYPXAoKCk9PntiWigpO2ZtKCk7WWkoKX0pO3ZhciBXWD1wKCgpPT57fSk7dmFyIEdYPXAoKCk9Pnt9KTt2YXIgWVg9cCgoKT0+e30pO3ZhciBaWD1wKCgpPT57fSk7ZnVuY3Rpb24gZHooZSl7cmV0dXJuIERyKGZ1bmN0aW9uKHQscil7RDEoZSkuc3Vic2NyaWJlKHdyKHIsZnVuY3Rpb24oKXtyZXR1cm4gci5jb21wbGV0ZSgpfSx3bykpLCFyLmNsb3NlZCYmdC5zdWJzY3JpYmUocil9KX12YXIgWFg9cCgoKT0+e1lpKCk7V2EoKTtNbygpO3Y2KCl9KTt2YXIgUVg9cCgoKT0+e30pO3ZhciBKWD1wKCgpPT57fSk7ZnVuY3Rpb24gdXooZSx0KXtyZXR1cm4gRHIoZnVuY3Rpb24ocixpKXt2YXIgYT10Pz97fSxuPWEubGVhZGluZyxvPW49PT12b2lkIDA/ITA6bixzPWEudHJhaWxpbmcsbD1zPT09dm9pZCAwPyExOnMsYz0hMSx1PW51bGwsZD1udWxsLGg9ITEsZj1mdW5jdGlvbigpe2Q/LnVuc3Vic2NyaWJlKCksZD1udWxsLGwmJihiKCksaCYmaS5jb21wbGV0ZSgpKX0seD1mdW5jdGlvbigpe2Q9bnVsbCxoJiZpLmNvbXBsZXRlKCl9LHY9ZnVuY3Rpb24oeSl7cmV0dXJuIGQ9RDEoZSh5KSkuc3Vic2NyaWJlKHdyKGksZix4KSl9LGI9ZnVuY3Rpb24oKXtpZihjKXtjPSExO3ZhciB5PXU7dT1udWxsLGkubmV4dCh5KSwhaCYmdih5KX19O3Iuc3Vic2NyaWJlKHdyKGksZnVuY3Rpb24oeSl7Yz0hMCx1PXksIShkJiYhZC5jbG9zZWQpJiYobz9iKCk6dih5KSl9LGZ1bmN0aW9uKCl7aD0hMCwhKGwmJmMmJmQmJiFkLmNsb3NlZCkmJmkuY29tcGxldGUoKX0pKX0pfXZhciBwej1wKCgpPT57WWkoKTtXYSgpO01vKCl9KTtmdW5jdGlvbiBoeihlLHQscil7dD09PXZvaWQgMCYmKHQ9Q3MpO3ZhciBpPXZaKGUsdCk7cmV0dXJuIHV6KGZ1bmN0aW9uKCl7cmV0dXJuIGl9LHIpfXZhciBLWD1wKCgpPT57TTYoKTtweigpO3haKCl9KTt2YXIgZVE9cCgoKT0+e30pO3ZhciB0UT1wKCgpPT57fSk7dmFyIHJRPXAoKCk9Pnt9KTt2YXIgaVE9cCgoKT0+e30pO3ZhciBhUT1wKCgpPT57fSk7dmFyIG5RPXAoKCk9Pnt9KTt2YXIgb1E9cCgoKT0+e30pO3ZhciBzUT1wKCgpPT57fSk7dmFyIGxRPXAoKCk9Pnt9KTt2YXIgY1E9cCgoKT0+e30pO3ZhciBHJGU9cCgoKT0+e30pO3ZhciBkUT1wKCgpPT57fSk7dmFyIHVRPXAoKCk9Pnt4bigpO01FZSgpO3NtKCk7ekVlKCk7Y20oKTtURWUoKTtfRWUoKTtBRWUoKTtSRWUoKTtNNigpO2pFZSgpO0dFZSgpO1pFZSgpO0dZKCk7enMoKTtMUygpO2wkZSgpO1BZKCk7djYoKTtBUygpO2MkZSgpO3UkZSgpO3AkZSgpO2gkZSgpO2QkZSgpO2YkZSgpO0JZKCk7bSRlKCk7UVMoKTtUWSgpO3kkZSgpO3ckZSgpO00kZSgpO2JaKCk7QyRlKCk7eiRlKCk7TlMoKTtUJGUoKTtaUygpO0wkZSgpO0EkZSgpO0QkZSgpO0UkZSgpOyQkZSgpO0kkZSgpO3laKCk7cFooKTtOJGUoKTtGJGUoKTtPJGUoKTtSJGUoKTtCJGUoKTtmWigpO3haKCk7SCRlKCk7cSRlKCk7dVooKTtOUygpO3laKCk7aiRlKCk7WHUoKTtNWigpO2taKCk7U1ooKTt6WigpO0NaKCk7VFooKTtfWigpO0xaKCk7JFooKTtFWigpO0laKCk7dHooKTtQWigpO05aKCk7RlooKTtPWigpO1JaKCk7QlooKTtIWigpO3FaKCk7R1ooKTtXWigpO1laKCk7WlooKTtYWigpO1FaKCk7S1ooKTtlWCgpO3RYKCk7YVgoKTtpWCgpO3JYKCk7blgoKTt3WigpO29YKCk7c1goKTtsWCgpO2NYKCk7ZFgoKTtWWigpO3VYKCk7aFgoKTt2bSgpO1VaKCk7ZlgoKTttWCgpO0tTKCk7Z1goKTt4bSgpO2JYKCk7dlgoKTt4WCgpO3lYKCk7d1goKTttbSgpO01YKCk7a1goKTtTWCgpO3pYKCk7Q1goKTtUWCgpO19YKCk7TFgoKTtBWigpO0FYKCk7RFgoKTtFWCgpOyRYKCk7RVMoKTtJWCgpO1BYKCk7TlgoKTtGWCgpO09YKCk7UlgoKTtCWCgpO0hYKCk7cVgoKTtqWCgpO1ZYKCk7VVgoKTtnbSgpO0dYKCk7V1goKTtZWCgpO1pYKCk7alooKTtwWCgpO1hYKCk7UVgoKTtKWCgpO3B6KCk7S1goKTtKWigpO2VRKCk7UVMoKTt0USgpO3JRKCk7RFooKTtpUSgpO2FRKCk7blEoKTtvUSgpO3NRKCk7bFEoKTtjUSgpO2RRKCl9KTt2YXIgWSRlPXAoKCk9Pnt9KTt2YXIgWiRlPXAoKCk9Pnt9KTt2YXIgWCRlPXAoKCk9PntNWigpO2taKCk7U1ooKTt6WigpO0NaKCk7VFooKTtfWigpO0xaKCk7JFooKTtFWigpO1YkZSgpO0laKCk7VSRlKCk7dHooKTtQWigpO05aKCk7RlooKTtPWigpO1JaKCk7QlooKTtIWigpO3FaKCk7R1ooKTtXWigpO1laKCk7WlooKTtYWigpO1FaKCk7S1ooKTtlWCgpO3RYKCk7YVgoKTtpWCgpO3JYKCk7blgoKTt3WigpO29YKCk7c1goKTtsWCgpO2NYKCk7ZFgoKTtWWigpO3VYKCk7aFgoKTt2bSgpO1VaKCk7ZlgoKTttWCgpO1ckZSgpO0tTKCk7Z1goKTt4bSgpO2JYKCk7dlgoKTt4WCgpO3lYKCk7d1goKTttbSgpO01YKCk7a1goKTtZJGUoKTtTWCgpO3pYKCk7Q1goKTtUWCgpO19YKCk7WiRlKCk7TFgoKTtBWigpO0FYKCk7RFgoKTtFWCgpOyRYKCk7RVMoKTtJWCgpO1BYKCk7TlgoKTtGWCgpO09YKCk7UlgoKTtCWCgpO0hYKCk7cVgoKTtqWCgpO1ZYKCk7VVgoKTtnbSgpO0dYKCk7V1goKTtZWCgpO1pYKCk7alooKTtwWCgpO1hYKCk7UVgoKTtKWCgpO3B6KCk7S1goKTtKWigpO2VRKCk7UVMoKTt0USgpO3JRKCk7RFooKTtpUSgpO2FRKCk7blEoKTtvUSgpO3NRKCk7bFEoKTtHJGUoKTtjUSgpO2RRKCl9KTt2YXIgYTg9e307RmUoYTgse09ic2VydmFibGU6KCk9PnF0LFJlcGxheVN1YmplY3Q6KCk9PiRTLFN1YmplY3Q6KCk9PnluLFN1YnNjcmlwdGlvbjooKT0+cTEsZnJvbTooKT0+UzYsZnJvbUV2ZW50OigpPT5DNixvZjooKT0+Ym0sb3BzOigpPT5JQXJ9KTt2YXIgSUFyLGZ6PXAoKCk9Pnt1USgpO1gkZSgpO0lBcj17YnVmZmVyOmF6LGJ1ZmZlckNvdW50Om56LGJ1ZmZlclRpbWU6b3osZGVib3VuY2U6c3osZGVib3VuY2VUaW1lOmx6LGZpbHRlcjppeixtYXA6TjAsc3RhcnRXaXRoOmN6LHRha2VVbnRpbDpkeix0aHJvdHRsZVRpbWU6aHp9fSk7dmFyIHBRLFEkZT1wKCgpPT57U1MoKTtmeigpO3BRPWNsYXNze2NvbnN0cnVjdG9yKCl7dGhpcy5vYnNlcnZhYmxlRXZlbnRFbWl0dGVyQnVuZGxlQXJyYXk9bmV3IEFycmF5LHRoaXMub2JzZXJ2YWJsZUV2ZW50VGFyZ2V0QnVuZGxlQXJyYXk9bmV3IEFycmF5fWdldFN1YmplY3RGb3JFbWl0dGVyRXZlbnQodCxyKXtsZXQgaT10aGlzLm9ic2VydmFibGVFdmVudEVtaXR0ZXJCdW5kbGVBcnJheS5maW5kKGE9PmEuZXZlbnRSZWY9PT10JiZhLmV2ZW50PT09cik7aWYoaSlyZXR1cm4gaS5zdWJqZWN0O3tsZXQgYT1DNih0LHIpLG49bmV3IHluO2Euc3Vic2NyaWJlKG4pO2xldCBvPXtzdWJqZWN0Om4sZXZlbnRSZWY6dCxldmVudDpyfTtyZXR1cm4gdGhpcy5vYnNlcnZhYmxlRXZlbnRFbWl0dGVyQnVuZGxlQXJyYXkucHVzaChvKSxvLnN1YmplY3R9fWdldFN1YmplY3RGb3JFdmVudFRhcmdldCh0LHIpe2xldCBpPXRoaXMub2JzZXJ2YWJsZUV2ZW50VGFyZ2V0QnVuZGxlQXJyYXkuZmluZChhPT5hLmV2ZW50UmVmPT09dCYmYS5ldmVudD09PXIpO2lmKGkpcmV0dXJuIGkuc3ViamVjdDt7bGV0IG49e3N1YmplY3Q6bmV3IHluLGV2ZW50UmVmOnQsZXZlbnQ6cn07cmV0dXJuIHRoaXMub2JzZXJ2YWJsZUV2ZW50VGFyZ2V0QnVuZGxlQXJyYXkucHVzaChuKSxuLnN1YmplY3R9fX19KTt2YXIgaFEsSiRlPXAoKCk9PntTUygpO2Z6KCk7aFE9Y2xhc3N7Y29uc3RydWN0b3IoKXt0aGlzLm9ic2VydmFibGVGdW5jdGlvbnM9e25leHQ6dD0+e30sY29tcGxldGU6dD0+e319LHRoaXMuZ2VuZXJhdG9yPW51bGwsdGhpcy5idWZmZXJlZD0hMSx0aGlzLnBheWxvYWRCdWZmZXI9W10sdGhpcy5vYnNlcnZhYmxlPW5ldyBxdCh0PT57dGhpcy5vYnNlcnZhYmxlRnVuY3Rpb25zLm5leHQ9KC4uLnIpPT50Lm5leHQociksdGhpcy5vYnNlcnZhYmxlRnVuY3Rpb25zLmNvbXBsZXRlPSgpPT4odGhpcy5jb21wbGV0ZWREZWZmZXJlZC5yZXNvbHZlKCksdC5jb21wbGV0ZSgpKX0pLHRoaXMuY29tcGxldGVkRGVmZmVyZWQ9WGUuZGVmZXIoKSx0aGlzLmNvbXBsZXRlZD10aGlzLmNvbXBsZXRlZERlZmZlcmVkLnByb21pc2V9c2V0T2JzZXJ2YWJsZSh0KXt0aGlzLm9ic2VydmFibGU9dH1wdXNoKHQpe3RoaXMuYnVmZmVyZWQ/dGhpcy5wYXlsb2FkQnVmZmVyLnB1c2godCk6dGhpcy5pbnRlcm5hbFB1c2godCl9cHVzaE1hbnkodCl7Zm9yKGxldCByIG9mIHQpdGhpcy5wdXNoKHIpfXNldEdlbmVyYXRvcih0KXt0aGlzLmdlbmVyYXRvcj10fW1ha2VCdWZmZXJlZCgpe3RoaXMuYnVmZmVyZWQ9ITB9c3Vic2NyaWJlKC4uLnQpe3JldHVybiB0aGlzLm9ic2VydmFibGUuc3Vic2NyaWJlKC4uLnQpfXJlcXVlc3QodCl7aWYodCE9PTApZm9yKGxldCByPTA7ciE9PXQ7cisrKWlmKHRoaXMucGF5bG9hZEJ1ZmZlci5sZW5ndGg+MCl0aGlzLmludGVybmFsUHVzaCh0aGlzLnBheWxvYWRCdWZmZXIuc2hpZnQoKSk7ZWxzZXtsZXQgaT10aGlzLmdlbmVyYXRvci5uZXh0KCk7dGhpcy5pbnRlcm5hbFB1c2goaS52YWx1ZSl9fXNpZ25hbENvbXBsZXRlKCl7dGhpcy5vYnNlcnZhYmxlRnVuY3Rpb25zLmNvbXBsZXRlKCl9aW50ZXJuYWxQdXNoKHQpe3RoaXMub2JzZXJ2YWJsZUZ1bmN0aW9ucy5uZXh0KHQpfX19KTtmdW5jdGlvbiBQQXIoZSl7cmV0dXJuIG5ldyBxdCh0PT57bGV0IHI9KCk9PmUucGF1c2UoKSxpPSgpPT5wcm9jZXNzLm5leHRUaWNrKCgpPT5lLnJlc3VtZSgpKSxhPW49PntyKCksdC5uZXh0KG4pLGkoKX07cmV0dXJuIGUub24oImRhdGEiLGEpLGUub24oImVycm9yIixuPT50LmVycm9yKG4pKSxlLm9uKCJlbmQiLCgpPT50LmNvbXBsZXRlKCkpLGUub24oImNsb3NlIiwoKT0+dC5jb21wbGV0ZSgpKSwoKT0+e2UucmVtb3ZlTGlzdGVuZXIoImRhdGEiLGEpLGUucmVtb3ZlTGlzdGVuZXIoImVycm9yIix0LmVycm9yKSxlLnJlbW92ZUxpc3RlbmVyKCJlbmQiLHQuY29tcGxldGUpLGUucmVtb3ZlTGlzdGVuZXIoImNsb3NlIix0LmNvbXBsZXRlKX19KX12YXIgSyRlPXAoKCk9Pnt1USgpfSk7dmFyIG5yPXt9O0ZlKG5yLHtPYnNlcnZhYmxlSW50YWtlOigpPT5oUSxPYnNlcnZhYmxlbWFwOigpPT5wUSxmcm9tU3RyZWFtV2l0aEJhY2twcmVzc3VyZTooKT0+UEFyLHJ4anM6KCk9PmE4fSk7dmFyIGgyPXAoKCk9PntTUygpO1EkZSgpO0okZSgpO0skZSgpO2Z6KCl9KTtmdW5jdGlvbiBqKGUpe3JldHVybih0LHIpPT50eXBlb2Ygcj09Im9iamVjdCI/ZUllKGUsdCxyKTooKGksYSxuKT0+e2xldCBvPWEuaGFzT3duUHJvcGVydHkobik7cmV0dXJuIGEuY29uc3RydWN0b3IuY3JlYXRlUHJvcGVydHkobixpKSxvP09iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoYSxuKTp2b2lkIDB9KShlLHQscil9dmFyIE5BcixlSWUsbXo9cCgoKT0+e0s3KCk7TkFyPXthdHRyaWJ1dGU6ITAsdHlwZTpTdHJpbmcsY29udmVydGVyOkd1LHJlZmxlY3Q6ITEsaGFzQ2hhbmdlZDpKN30sZUllPShlPU5Bcix0LHIpPT57bGV0e2tpbmQ6aSxtZXRhZGF0YTphfT1yLG49Z2xvYmFsVGhpcy5saXRQcm9wZXJ0eU1ldGFkYXRhLmdldChhKTtpZihuPT09dm9pZCAwJiZnbG9iYWxUaGlzLmxpdFByb3BlcnR5TWV0YWRhdGEuc2V0KGEsbj1uZXcgTWFwKSxpPT09InNldHRlciImJigoZT1PYmplY3QuY3JlYXRlKGUpKS53cmFwcGVkPSEwKSxuLnNldChyLm5hbWUsZSksaT09PSJhY2Nlc3NvciIpe2xldHtuYW1lOm99PXI7cmV0dXJue3NldChzKXtsZXQgbD10LmdldC5jYWxsKHRoaXMpO3Quc2V0LmNhbGwodGhpcyxzKSx0aGlzLnJlcXVlc3RVcGRhdGUobyxsLGUsITAscyl9LGluaXQocyl7cmV0dXJuIHMhPT12b2lkIDAmJnRoaXMuQyhvLHZvaWQgMCxlLHMpLHN9fX1pZihpPT09InNldHRlciIpe2xldHtuYW1lOm99PXI7cmV0dXJuIGZ1bmN0aW9uKHMpe2xldCBsPXRoaXNbb107dC5jYWxsKHRoaXMscyksdGhpcy5yZXF1ZXN0VXBkYXRlKG8sbCxlLCEwLHMpfX10aHJvdyBFcnJvcigiVW5zdXBwb3J0ZWQgZGVjb3JhdG9yIGxvY2F0aW9uOiAiK2kpfX0pO3ZhciB0SWU9cCgoKT0+e216KCl9KTt2YXIgckllPXAoKCk9Pnt9KTt2YXIgQ3Q9e307RmUoQ3Qse1RpbWVvdXQ6KCk9Pmd6LGRlbGF5Rm9yOigpPT5pSWUsZGVsYXlGb3JSYW5kb206KCk9PkZBcn0pO3ZhciBpSWUsRkFyLGd6LFRzPXAoKCk9PntFaSgpO2lJZT1hc3luYyhlLHQscj0hMSk9Pihhd2FpdCBuZXcgZ3ooZSxudWxsLHIpLnByb21pc2UsdCksRkFyPWFzeW5jKGUsdCxyLGk9ITEpPT4oYXdhaXQgaUllKE1hdGgucmFuZG9tKCkqKHQtZSkrZSxudWxsLGkpLHIpLGd6PWNsYXNze2NvbnN0cnVjdG9yKHQscixpPSExKXt0aGlzLl9jYW5jZWxsZWQ9ITEsdGhpcy50aW1lb3V0SW5NaWxsaXM9dCx0aGlzLl9kZWZlcnJlZD0kMCgpLHRoaXMucHJvbWlzZT10aGlzLl9kZWZlcnJlZC5wcm9taXNlLHRoaXMuX3RpbWVvdXQ9c2V0VGltZW91dCgoKT0+e3RoaXMuX2NhbmNlbGxlZHx8dGhpcy5fZGVmZXJyZWQucmVzb2x2ZShyKX0sdCksdGhpcy5zdGFydGVkPURhdGUubm93KCksaSYmdGhpcy5tYWtlVW5yZWZlZCgpfW1ha2VVbnJlZmVkKCl7dGhpcy5fdGltZW91dC51bnJlZigpfWNhbmNlbCgpe3RoaXMuX2NhbmNlbGxlZD0hMCxjbGVhclRpbWVvdXQodGhpcy5fdGltZW91dCl9Z2V0VGltZUxlZnQoKXtsZXQgdD10aGlzLnN0YXJ0ZWQrdGhpcy50aW1lb3V0SW5NaWxsaXMtRGF0ZS5ub3coKTtyZXR1cm4gdD4wP3Q6MH19fSk7dmFyIG44PXt9O3ZhciBiej1wKCgpPT57fSk7ZnVuY3Rpb24gVDYoZSl7aWYodHlwZW9mIGUhPSJzdHJpbmciKXRocm93IG5ldyBUeXBlRXJyb3IoIkV4cGVjdGVkIGEgc3RyaW5nIik7cmV0dXJuIGUucmVwbGFjZSgvW3xcXHt9KClbXF1eJCsqPy5dL2csIlxcJCYiKS5yZXBsYWNlKC8tL2csIlxceDJkIil9dmFyIHZ6PXAoKCk9Pnt9KTt2YXIgeW09e307RmUoeW0se2lzTWF0Y2g6KCk9PkJBcixtYXRjaGVyOigpPT5SQXJ9KTtmdW5jdGlvbiBSQXIoZSx0LHIpe3JldHVybiBuSWUoZSx0LHIsITEpfWZ1bmN0aW9uIEJBcihlLHQscil7cmV0dXJuIG5JZShlLHQsciwhMCkubGVuZ3RoPjB9dmFyIGZRLGFJZSxPQXIsbkllLG9JZT1wKCgpPT57dnooKTtmUT1uZXcgTWFwLGFJZT0oZSx0KT0+e2lmKCFBcnJheS5pc0FycmF5KGUpKXN3aXRjaCh0eXBlb2YgZSl7Y2FzZSJzdHJpbmciOmU9W2VdO2JyZWFrO2Nhc2UidW5kZWZpbmVkIjplPVtdO2JyZWFrO2RlZmF1bHQ6dGhyb3cgbmV3IFR5cGVFcnJvcihgRXhwZWN0ZWQgJyR7dH0nIHRvIGJlIGEgc3RyaW5nIG9yIGFuIGFycmF5LCBidXQgZ290IGEgdHlwZSBvZiAnJHt0eXBlb2YgZX0nYCl9cmV0dXJuIGUuZmlsdGVyKHI9PntpZih0eXBlb2YgciE9InN0cmluZyIpe2lmKHR5cGVvZiByPiJ1IilyZXR1cm4hMTt0aHJvdyBuZXcgVHlwZUVycm9yKGBFeHBlY3RlZCAnJHt0fScgdG8gYmUgYW4gYXJyYXkgb2Ygc3RyaW5ncywgYnV0IGZvdW5kIGEgdHlwZSBvZiAnJHt0eXBlb2Ygcn0nIGluIHRoZSBhcnJheWApfXJldHVybiEwfSl9LE9Bcj0oZSx0KT0+e3Q9e2Nhc2VTZW5zaXRpdmU6ITEsLi4udH07bGV0IHI9ZStKU09OLnN0cmluZ2lmeSh0KTtpZihmUS5oYXMocikpcmV0dXJuIGZRLmdldChyKTtsZXQgaT1lWzBdPT09IiEiO2kmJihlPWUuc2xpY2UoMSkpLGU9VDYoZSkucmVwbGFjZSgvXFxcKi9nLCJbXFxzXFxTXSoiKTtsZXQgYT1uZXcgUmVnRXhwKGBeJHtlfSRgLHQuY2FzZVNlbnNpdGl2ZT8iIjoiaSIpO3JldHVybiBhLm5lZ2F0ZWQ9aSxmUS5zZXQocixhKSxhfSxuSWU9KGUsdCxyLGkpPT57aWYoZT1hSWUoZSwiaW5wdXRzIiksdD1hSWUodCwicGF0dGVybnMiKSx0Lmxlbmd0aD09PTApcmV0dXJuW107dD10Lm1hcChvPT5PQXIobyxyKSk7bGV0e2FsbFBhdHRlcm5zOmF9PXJ8fHt9LG49W107Zm9yKGxldCBvIG9mIGUpe2xldCBzLGw9Wy4uLnRdLmZpbGwoITEpO2ZvcihsZXRbYyx1XW9mIHQuZW50cmllcygpKWlmKHUudGVzdChvKSYmKGxbY109ITAscz0hdS5uZWdhdGVkLCFzKSlicmVhaztpZighKHM9PT0hMXx8cz09PXZvaWQgMCYmdC5zb21lKGM9PiFjLm5lZ2F0ZWQpfHxhJiZsLnNvbWUoKGMsdSk9PiFjJiYhdFt1XS5uZWdhdGVkKSkmJihuLnB1c2gobyksaSkpYnJlYWt9cmV0dXJuIG59fSk7dmFyIHNJZT1wKCgpPT57b0llKCl9KTt2YXIgcWw9e307RmUocWwse1NtYXJ0TWF0Y2g6KCk9Pm1RfSk7dmFyIG1RLGdRPXAoKCk9PntzSWUoKTttUT1jbGFzc3tjb25zdHJ1Y3Rvcih0KXt0aGlzLndpbGRjYXJkPXR9bWF0Y2godCl7cmV0dXJuIHltLmlzTWF0Y2godCx0aGlzLndpbGRjYXJkKX19fSk7dmFyIFNtPXt9O0ZlKFNtLHtDcm9uOigpPT5oSWUsQ3JvbkRhdGU6KCk9Pm1pLENyb25QYXR0ZXJuOigpPT54eixzY2hlZHVsZWRKb2JzOigpPT5vOH0pO2Z1bmN0aW9uIHdtKGUpe3JldHVybiBEYXRlLlVUQyhlLnksZS5tLTEsZS5kLGUuaCxlLmksZS5zKX1mdW5jdGlvbiBiUShlLHQpe3JldHVybiBlLnk9PT10LnkmJmUubT09PXQubSYmZS5kPT09dC5kJiZlLmg9PT10LmgmJmUuaT09PXQuaSYmZS5zPT09dC5zfWZ1bmN0aW9uIHFBcihlLHQpe2xldCByPW5ldyBEYXRlKERhdGUucGFyc2UoZSkpO2lmKGlzTmFOKHIpKXRocm93IG5ldyBFcnJvcigiSW52YWxpZCBJU084NjAxIHBhc3NlZCB0byB0aW1lem9uZSBwYXJzZXIuIik7bGV0IGk9ZS5zdWJzdHJpbmcoOSk7cmV0dXJuIGkuaW5jbHVkZXMoIloiKXx8aS5pbmNsdWRlcygiKyIpfHxpLmluY2x1ZGVzKCItIik/dlEoci5nZXRVVENGdWxsWWVhcigpLHIuZ2V0VVRDTW9udGgoKSsxLHIuZ2V0VVRDRGF0ZSgpLHIuZ2V0VVRDSG91cnMoKSxyLmdldFVUQ01pbnV0ZXMoKSxyLmdldFVUQ1NlY29uZHMoKSwiRXRjL1VUQyIpOnZRKHIuZ2V0RnVsbFllYXIoKSxyLmdldE1vbnRoKCkrMSxyLmdldERhdGUoKSxyLmdldEhvdXJzKCksci5nZXRNaW51dGVzKCksci5nZXRTZWNvbmRzKCksdCl9ZnVuY3Rpb24gbEllKGUsdCxyKXtyZXR1cm4gY0llKHFBcihlLHQpLHIpfWZ1bmN0aW9uIGNJZShlLHQpe2xldCByPW5ldyBEYXRlKHdtKGUpKSxpPU1tKHIsZS50eiksYT13bShlKSxuPXdtKGkpLG89YS1uLHM9bmV3IERhdGUoci5nZXRUaW1lKCkrbyksbD1NbShzLGUudHopO2lmKGJRKGwsZSkpe2xldCBkPW5ldyBEYXRlKHMuZ2V0VGltZSgpLTM2ZTUpLGg9TW0oZCxlLnR6KTtyZXR1cm4gYlEoaCxlKT9kOnN9bGV0IGM9bmV3IERhdGUocy5nZXRUaW1lKCkrd20oZSktd20obCkpLHU9TW0oYyxlLnR6KTtpZihiUSh1LGUpKXJldHVybiBjO2lmKHQpdGhyb3cgbmV3IEVycm9yKCJJbnZhbGlkIGRhdGUgcGFzc2VkIHRvIGZyb21UWigpIik7cmV0dXJuIHMuZ2V0VGltZSgpPmMuZ2V0VGltZSgpP3M6Y31mdW5jdGlvbiBNbShlLHQpe2xldCByLGk7dHJ5e3I9bmV3IEludGwuRGF0ZVRpbWVGb3JtYXQoImVuLVVTIix7dGltZVpvbmU6dCx5ZWFyOiJudW1lcmljIixtb250aDoibnVtZXJpYyIsZGF5OiJudW1lcmljIixob3VyOiJudW1lcmljIixtaW51dGU6Im51bWVyaWMiLHNlY29uZDoibnVtZXJpYyIsaG91cjEyOiExfSksaT1yLmZvcm1hdFRvUGFydHMoZSl9Y2F0Y2gobil7bGV0IG89biBpbnN0YW5jZW9mIEVycm9yP24ubWVzc2FnZTpTdHJpbmcobik7dGhyb3cgbmV3IFJhbmdlRXJyb3IoYHRvVFo6IEludmFsaWQgdGltZXpvbmUgJyR7dH0nIG9yIGRhdGUuIFBsZWFzZSBwcm92aWRlIGEgdmFsaWQgSUFOQSB0aW1lem9uZSAoZS5nLiwgJ0FtZXJpY2EvTmV3X1lvcmsnLCAnRXVyb3BlL1N0b2NraG9sbScpLiBPcmlnaW5hbCBlcnJvcjogJHtvfWApfWxldCBhPXt5ZWFyOjAsbW9udGg6MCxkYXk6MCxob3VyOjAsbWludXRlOjAsc2Vjb25kOjB9O2ZvcihsZXQgbiBvZiBpKShuLnR5cGU9PT0ieWVhciJ8fG4udHlwZT09PSJtb250aCJ8fG4udHlwZT09PSJkYXkifHxuLnR5cGU9PT0iaG91ciJ8fG4udHlwZT09PSJtaW51dGUifHxuLnR5cGU9PT0ic2Vjb25kIikmJihhW24udHlwZV09cGFyc2VJbnQobi52YWx1ZSwxMCkpO2lmKGlzTmFOKGEueWVhcil8fGlzTmFOKGEubW9udGgpfHxpc05hTihhLmRheSl8fGlzTmFOKGEuaG91cil8fGlzTmFOKGEubWludXRlKXx8aXNOYU4oYS5zZWNvbmQpKXRocm93IG5ldyBFcnJvcihgdG9UWjogRmFpbGVkIHRvIHBhcnNlIGFsbCBkYXRlIGNvbXBvbmVudHMgZnJvbSB0aW1lem9uZSAnJHt0fScuIFRoaXMgbWF5IGluZGljYXRlIGFuIGludmFsaWQgZGF0ZSBvciB0aW1lem9uZSBjb25maWd1cmF0aW9uLiBQYXJzZWQgY29tcG9uZW50czogJHtKU09OLnN0cmluZ2lmeShhKX1gKTtyZXR1cm4gYS5ob3VyPT09MjQmJihhLmhvdXI9MCkse3k6YS55ZWFyLG06YS5tb250aCxkOmEuZGF5LGg6YS5ob3VyLGk6YS5taW51dGUsczphLnNlY29uZCx0ejp0fX1mdW5jdGlvbiB2UShlLHQscixpLGEsbixvKXtyZXR1cm57eTplLG06dCxkOnIsaDppLGk6YSxzOm4sdHo6b319ZnVuY3Rpb24gakFyKGUpe2lmKGU9PT12b2lkIDAmJihlPXt9KSxkZWxldGUgZS5uYW1lLGUubGVnYWN5TW9kZSE9PXZvaWQgMCYmZS5kb21BbmREb3c9PT12b2lkIDA/ZS5kb21BbmREb3c9IWUubGVnYWN5TW9kZTplLmRvbUFuZERvdz09PXZvaWQgMCYmKGUuZG9tQW5kRG93PSExKSxlLmxlZ2FjeU1vZGU9IWUuZG9tQW5kRG93LGUucGF1c2VkPWUucGF1c2VkPT09dm9pZCAwPyExOmUucGF1c2VkLGUubWF4UnVucz1lLm1heFJ1bnM9PT12b2lkIDA/MS8wOmUubWF4UnVucyxlLmNhdGNoPWUuY2F0Y2g9PT12b2lkIDA/ITE6ZS5jYXRjaCxlLmludGVydmFsPWUuaW50ZXJ2YWw9PT12b2lkIDA/MDpwYXJzZUludChlLmludGVydmFsLnRvU3RyaW5nKCksMTApLGUudXRjT2Zmc2V0PWUudXRjT2Zmc2V0PT09dm9pZCAwP3ZvaWQgMDpwYXJzZUludChlLnV0Y09mZnNldC50b1N0cmluZygpLDEwKSxlLmRheU9mZnNldD1lLmRheU9mZnNldD09PXZvaWQgMD8wOnBhcnNlSW50KGUuZGF5T2Zmc2V0LnRvU3RyaW5nKCksMTApLGUudW5yZWY9ZS51bnJlZj09PXZvaWQgMD8hMTplLnVucmVmLGUubW9kZT1lLm1vZGU9PT12b2lkIDA/ImF1dG8iOmUubW9kZSxlLmFsdGVybmF0aXZlV2Vla2RheXM9ZS5hbHRlcm5hdGl2ZVdlZWtkYXlzPT09dm9pZCAwPyExOmUuYWx0ZXJuYXRpdmVXZWVrZGF5cyxlLnNsb3BweVJhbmdlcz1lLnNsb3BweVJhbmdlcz09PXZvaWQgMD8hMTplLnNsb3BweVJhbmdlcywhWyJhdXRvIiwiNS1wYXJ0IiwiNi1wYXJ0IiwiNy1wYXJ0IiwiNS1vci02LXBhcnRzIiwiNi1vci03LXBhcnRzIl0uaW5jbHVkZXMoZS5tb2RlKSl0aHJvdyBuZXcgRXJyb3IoIkNyb25PcHRpb25zOiBtb2RlIG11c3QgYmUgb25lIG9mICdhdXRvJywgJzUtcGFydCcsICc2LXBhcnQnLCAnNy1wYXJ0JywgJzUtb3ItNi1wYXJ0cycsIG9yICc2LW9yLTctcGFydHMnLiIpO2lmKGUuc3RhcnRBdCYmKGUuc3RhcnRBdD1uZXcgbWkoZS5zdGFydEF0LGUudGltZXpvbmUpKSxlLnN0b3BBdCYmKGUuc3RvcEF0PW5ldyBtaShlLnN0b3BBdCxlLnRpbWV6b25lKSksZS5pbnRlcnZhbCE9PW51bGwpe2lmKGlzTmFOKGUuaW50ZXJ2YWwpKXRocm93IG5ldyBFcnJvcigiQ3Jvbk9wdGlvbnM6IFN1cHBsaWVkIHZhbHVlIGZvciBpbnRlcnZhbCBpcyBub3QgYSBudW1iZXIiKTtpZihlLmludGVydmFsPDApdGhyb3cgbmV3IEVycm9yKCJDcm9uT3B0aW9uczogU3VwcGxpZWQgdmFsdWUgZm9yIGludGVydmFsIGNhbiBub3QgYmUgbmVnYXRpdmUiKX1pZihlLnV0Y09mZnNldCE9PXZvaWQgMCl7aWYoaXNOYU4oZS51dGNPZmZzZXQpKXRocm93IG5ldyBFcnJvcigiQ3Jvbk9wdGlvbnM6IEludmFsaWQgdmFsdWUgcGFzc2VkIGZvciB1dGNPZmZzZXQsIHNob3VsZCBiZSBudW1iZXIgcmVwcmVzZW50aW5nIG1pbnV0ZXMgb2Zmc2V0IGZyb20gVVRDLiIpO2lmKGUudXRjT2Zmc2V0PC04NzB8fGUudXRjT2Zmc2V0Pjg3MCl0aHJvdyBuZXcgRXJyb3IoIkNyb25PcHRpb25zOiB1dGNPZmZzZXQgb3V0IG9mIGJvdW5kcy4iKTtpZihlLnV0Y09mZnNldCE9PXZvaWQgMCYmZS50aW1lem9uZSl0aHJvdyBuZXcgRXJyb3IoIkNyb25PcHRpb25zOiBDb21iaW5pbmcgJ3V0Y09mZnNldCcgd2l0aCAndGltZXpvbmUnIGlzIG5vdCBhbGxvd2VkLiIpfWlmKGUudW5yZWYhPT0hMCYmZS51bnJlZiE9PSExKXRocm93IG5ldyBFcnJvcigiQ3Jvbk9wdGlvbnM6IFVucmVmIHNob3VsZCBiZSBlaXRoZXIgdHJ1ZSwgZmFsc2Ugb3IgdW5kZWZpbmVkKGZhbHNlKS4iKTtpZihlLmRheU9mZnNldCE9PXZvaWQgMCYmZS5kYXlPZmZzZXQhPT0wJiZpc05hTihlLmRheU9mZnNldCkpdGhyb3cgbmV3IEVycm9yKCJDcm9uT3B0aW9uczogSW52YWxpZCB2YWx1ZSBwYXNzZWQgZm9yIGRheU9mZnNldCwgc2hvdWxkIGJlIGEgbnVtYmVyIHJlcHJlc2VudGluZyBkYXlzIHRvIG9mZnNldC4iKTtyZXR1cm4gZX1mdW5jdGlvbiBrbShlKXtyZXR1cm4gT2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKGUpPT09IltvYmplY3QgRnVuY3Rpb25dInx8dHlwZW9mIGU9PSJmdW5jdGlvbiJ8fGUgaW5zdGFuY2VvZiBGdW5jdGlvbn1mdW5jdGlvbiBWQXIoZSl7cmV0dXJuIGttKGUpfWZ1bmN0aW9uIFVBcihlKXt0eXBlb2YgRGVubzwidSImJnR5cGVvZiBEZW5vLnVucmVmVGltZXI8InUiP0Rlbm8udW5yZWZUaW1lcihlKTplJiZ0eXBlb2YgZS51bnJlZjwidSImJmUudW5yZWYoKX12YXIgZEllLHh6LHhRLGMxLG1pLHVJZSxvOCxoSWUsZkllPXAoKCk9PntkSWU9WzEsMiw0LDgsMTZdLHh6PWNsYXNze3BhdHRlcm47dGltZXpvbmU7bW9kZTthbHRlcm5hdGl2ZVdlZWtkYXlzO3Nsb3BweVJhbmdlcztzZWNvbmQ7bWludXRlO2hvdXI7ZGF5O21vbnRoO2RheU9mV2Vlazt5ZWFyO2xhc3REYXlPZk1vbnRoO2xhc3RXZWVrZGF5O25lYXJlc3RXZWVrZGF5cztzdGFyRE9NO3N0YXJET1c7c3RhclllYXI7dXNlQW5kTG9naWM7Y29uc3RydWN0b3IoZSx0LHIpe3RoaXMucGF0dGVybj1lLHRoaXMudGltZXpvbmU9dCx0aGlzLm1vZGU9cj8ubW9kZT8/ImF1dG8iLHRoaXMuYWx0ZXJuYXRpdmVXZWVrZGF5cz1yPy5hbHRlcm5hdGl2ZVdlZWtkYXlzPz8hMSx0aGlzLnNsb3BweVJhbmdlcz1yPy5zbG9wcHlSYW5nZXM/PyExLHRoaXMuc2Vjb25kPUFycmF5KDYwKS5maWxsKDApLHRoaXMubWludXRlPUFycmF5KDYwKS5maWxsKDApLHRoaXMuaG91cj1BcnJheSgyNCkuZmlsbCgwKSx0aGlzLmRheT1BcnJheSgzMSkuZmlsbCgwKSx0aGlzLm1vbnRoPUFycmF5KDEyKS5maWxsKDApLHRoaXMuZGF5T2ZXZWVrPUFycmF5KDcpLmZpbGwoMCksdGhpcy55ZWFyPUFycmF5KDFlNCkuZmlsbCgwKSx0aGlzLmxhc3REYXlPZk1vbnRoPSExLHRoaXMubGFzdFdlZWtkYXk9ITEsdGhpcy5uZWFyZXN0V2Vla2RheXM9QXJyYXkoMzEpLmZpbGwoMCksdGhpcy5zdGFyRE9NPSExLHRoaXMuc3RhckRPVz0hMSx0aGlzLnN0YXJZZWFyPSExLHRoaXMudXNlQW5kTG9naWM9ITEsdGhpcy5wYXJzZSgpfXBhcnNlKCl7aWYoISh0eXBlb2YgdGhpcy5wYXR0ZXJuPT0ic3RyaW5nInx8dGhpcy5wYXR0ZXJuIGluc3RhbmNlb2YgU3RyaW5nKSl0aHJvdyBuZXcgVHlwZUVycm9yKCJDcm9uUGF0dGVybjogUGF0dGVybiBoYXMgdG8gYmUgb2YgdHlwZSBzdHJpbmcuIik7dGhpcy5wYXR0ZXJuLmluZGV4T2YoIkAiKT49MCYmKHRoaXMucGF0dGVybj10aGlzLmhhbmRsZU5pY2tuYW1lcyh0aGlzLnBhdHRlcm4pLnRyaW0oKSk7bGV0IGU9dGhpcy5wYXR0ZXJuLm1hdGNoKC9cUysvZyl8fFsiIl0sdD1lLmxlbmd0aDtpZihlLmxlbmd0aDw1fHxlLmxlbmd0aD43KXRocm93IG5ldyBUeXBlRXJyb3IoIkNyb25QYXR0ZXJuOiBpbnZhbGlkIGNvbmZpZ3VyYXRpb24gZm9ybWF0ICgnIit0aGlzLnBhdHRlcm4rIicpLCBleGFjdGx5IGZpdmUsIHNpeCwgb3Igc2V2ZW4gc3BhY2Ugc2VwYXJhdGVkIHBhcnRzIGFyZSByZXF1aXJlZC4iKTtpZih0aGlzLm1vZGUhPT0iYXV0byIpe2xldCBpO3N3aXRjaCh0aGlzLm1vZGUpe2Nhc2UiNS1wYXJ0IjppPTU7YnJlYWs7Y2FzZSI2LXBhcnQiOmk9NjticmVhaztjYXNlIjctcGFydCI6aT03O2JyZWFrO2Nhc2UiNS1vci02LXBhcnRzIjppPVs1LDZdO2JyZWFrO2Nhc2UiNi1vci03LXBhcnRzIjppPVs2LDddO2JyZWFrO2RlZmF1bHQ6aT0wfWlmKCEoQXJyYXkuaXNBcnJheShpKT9pLmluY2x1ZGVzKHQpOnQ9PT1pKSl7bGV0IGE9QXJyYXkuaXNBcnJheShpKT9pLmpvaW4oIiBvciAiKTppLnRvU3RyaW5nKCk7dGhyb3cgbmV3IFR5cGVFcnJvcihgQ3JvblBhdHRlcm46IG1vZGUgJyR7dGhpcy5tb2RlfScgcmVxdWlyZXMgZXhhY3RseSAke2F9IHBhcnRzLCBidXQgcGF0dGVybiAnJHt0aGlzLnBhdHRlcm59JyBoYXMgJHt0fSBwYXJ0cy5gKX19aWYoZS5sZW5ndGg9PT01JiZlLnVuc2hpZnQoIjAiKSxlLmxlbmd0aD09PTYmJmUucHVzaCgiKiIpLGVbM10udG9VcHBlckNhc2UoKT09PSJMVyI/KHRoaXMubGFzdFdlZWtkYXk9ITAsZVszXT0iIik6ZVszXS50b1VwcGVyQ2FzZSgpLmluZGV4T2YoIkwiKT49MCYmKGVbM109ZVszXS5yZXBsYWNlKC9ML2dpLCIiKSx0aGlzLmxhc3REYXlPZk1vbnRoPSEwKSxlWzNdPT0iKiImJih0aGlzLnN0YXJET009ITApLGVbNl09PSIqIiYmKHRoaXMuc3RhclllYXI9ITApLGVbNF0ubGVuZ3RoPj0zJiYoZVs0XT10aGlzLnJlcGxhY2VBbHBoYU1vbnRocyhlWzRdKSksZVs1XS5sZW5ndGg+PTMmJihlWzVdPXRoaXMuYWx0ZXJuYXRpdmVXZWVrZGF5cz90aGlzLnJlcGxhY2VBbHBoYURheXNRdWFydHooZVs1XSk6dGhpcy5yZXBsYWNlQWxwaGFEYXlzKGVbNV0pKSxlWzVdLnN0YXJ0c1dpdGgoIisiKSYmKHRoaXMudXNlQW5kTG9naWM9ITAsZVs1XT1lWzVdLnN1YnN0cmluZygxKSxlWzVdPT09IiIpKXRocm93IG5ldyBUeXBlRXJyb3IoIkNyb25QYXR0ZXJuOiBEYXktb2Ytd2VlayBmaWVsZCBjYW5ub3QgYmUgZW1wdHkgYWZ0ZXIgJysnIG1vZGlmaWVyLiIpO3N3aXRjaChlWzVdPT0iKiImJih0aGlzLnN0YXJET1c9ITApLHRoaXMucGF0dGVybi5pbmRleE9mKCI/Iik+PTAmJihlWzBdPWVbMF0ucmVwbGFjZSgvXD8vZywiKiIpLGVbMV09ZVsxXS5yZXBsYWNlKC9cPy9nLCIqIiksZVsyXT1lWzJdLnJlcGxhY2UoL1w/L2csIioiKSxlWzNdPWVbM10ucmVwbGFjZSgvXD8vZywiKiIpLGVbNF09ZVs0XS5yZXBsYWNlKC9cPy9nLCIqIiksZVs1XT1lWzVdLnJlcGxhY2UoL1w/L2csIioiKSxlWzZdJiYoZVs2XT1lWzZdLnJlcGxhY2UoL1w/L2csIioiKSkpLHRoaXMubW9kZSl7Y2FzZSI1LXBhcnQiOmVbMF09IjAiLGVbNl09IioiO2JyZWFrO2Nhc2UiNi1wYXJ0IjplWzZdPSIqIjticmVhaztjYXNlIjUtb3ItNi1wYXJ0cyI6ZVs2XT0iKiI7YnJlYWs7Y2FzZSI2LW9yLTctcGFydHMiOmJyZWFrO2Nhc2UiNy1wYXJ0IjpjYXNlImF1dG8iOmJyZWFrfXRoaXMudGhyb3dBdElsbGVnYWxDaGFyYWN0ZXJzKGUpLHRoaXMucGFydFRvQXJyYXkoInNlY29uZCIsZVswXSwwLDEpLHRoaXMucGFydFRvQXJyYXkoIm1pbnV0ZSIsZVsxXSwwLDEpLHRoaXMucGFydFRvQXJyYXkoImhvdXIiLGVbMl0sMCwxKSx0aGlzLnBhcnRUb0FycmF5KCJkYXkiLGVbM10sLTEsMSksdGhpcy5wYXJ0VG9BcnJheSgibW9udGgiLGVbNF0sLTEsMSk7bGV0IHI9dGhpcy5hbHRlcm5hdGl2ZVdlZWtkYXlzPy0xOjA7dGhpcy5wYXJ0VG9BcnJheSgiZGF5T2ZXZWVrIixlWzVdLHIsNjMpLHRoaXMucGFydFRvQXJyYXkoInllYXIiLGVbNl0sMCwxKSwhdGhpcy5hbHRlcm5hdGl2ZVdlZWtkYXlzJiZ0aGlzLmRheU9mV2Vla1s3XSYmKHRoaXMuZGF5T2ZXZWVrWzBdPXRoaXMuZGF5T2ZXZWVrWzddKX1wYXJ0VG9BcnJheShlLHQscixpKXtsZXQgYT10aGlzW2VdLG49ZT09PSJkYXkiJiZ0aGlzLmxhc3REYXlPZk1vbnRoLG89ZT09PSJkYXkiJiZ0aGlzLmxhc3RXZWVrZGF5O2lmKHQ9PT0iIiYmIW4mJiFvKXRocm93IG5ldyBUeXBlRXJyb3IoIkNyb25QYXR0ZXJuOiBjb25maWd1cmF0aW9uIGVudHJ5ICIrZSsiICgiK3QrIikgaXMgZW1wdHksIGNoZWNrIGZvciB0cmFpbGluZyBzcGFjZXMuIik7aWYodD09PSIqIilyZXR1cm4gYS5maWxsKGkpO2xldCBzPXQuc3BsaXQoIiwiKTtpZihzLmxlbmd0aD4xKWZvcihsZXQgbD0wO2w8cy5sZW5ndGg7bCsrKXRoaXMucGFydFRvQXJyYXkoZSxzW2xdLHIsaSk7ZWxzZSB0LmluZGV4T2YoIi0iKSE9PS0xJiZ0LmluZGV4T2YoIi8iKSE9PS0xP3RoaXMuaGFuZGxlUmFuZ2VXaXRoU3RlcHBpbmcodCxlLHIsaSk6dC5pbmRleE9mKCItIikhPT0tMT90aGlzLmhhbmRsZVJhbmdlKHQsZSxyLGkpOnQuaW5kZXhPZigiLyIpIT09LTE/dGhpcy5oYW5kbGVTdGVwcGluZyh0LGUscixpKTp0IT09IiImJnRoaXMuaGFuZGxlTnVtYmVyKHQsZSxyLGkpfXRocm93QXRJbGxlZ2FsQ2hhcmFjdGVycyhlKXtmb3IobGV0IHQ9MDt0PGUubGVuZ3RoO3QrKylpZigodD09PTM/L1teLyowLTksXC1Xd0xsXSsvOnQ9PT01Py9bXi8qMC05LFwtI0xsXSsvOi9bXi8qMC05LFwtXSsvKS50ZXN0KGVbdF0pKXRocm93IG5ldyBUeXBlRXJyb3IoIkNyb25QYXR0ZXJuOiBjb25maWd1cmF0aW9uIGVudHJ5ICIrdCsiICgiK2VbdF0rIikgY29udGFpbnMgaWxsZWdhbCBjaGFyYWN0ZXJzLiIpfWhhbmRsZU51bWJlcihlLHQscixpKXtsZXQgYT10aGlzLmV4dHJhY3ROdGgoZSx0KSxuPWUudG9VcHBlckNhc2UoKS5pbmNsdWRlcygiVyIpO2lmKHQhPT0iZGF5IiYmbil0aHJvdyBuZXcgVHlwZUVycm9yKCJDcm9uUGF0dGVybjogTmVhcmVzdCB3ZWVrZGF5IG1vZGlmaWVyIChXKSBvbmx5IGFsbG93ZWQgaW4gZGF5LW9mLW1vbnRoLiIpO24mJih0PSJuZWFyZXN0V2Vla2RheXMiKTtsZXQgbz1wYXJzZUludChhWzBdLDEwKStyO2lmKGlzTmFOKG8pKXRocm93IG5ldyBUeXBlRXJyb3IoIkNyb25QYXR0ZXJuOiAiK3QrIiBpcyBub3QgYSBudW1iZXI6ICciK2UrIiciKTt0aGlzLnNldFBhcnQodCxvLGFbMV18fGkpfXNldFBhcnQoZSx0LHIpe2lmKCFPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwodGhpcyxlKSl0aHJvdyBuZXcgVHlwZUVycm9yKCJDcm9uUGF0dGVybjogSW52YWxpZCBwYXJ0IHNwZWNpZmllZDogIitlKTtpZihlPT09ImRheU9mV2VlayIpe2lmKHQ9PT03JiYodD0wKSx0PDB8fHQ+Nil0aHJvdyBuZXcgUmFuZ2VFcnJvcigiQ3JvblBhdHRlcm46IEludmFsaWQgdmFsdWUgZm9yIGRheU9mV2VlazogIit0KTt0aGlzLnNldE50aFdlZWtkYXlPZk1vbnRoKHQscik7cmV0dXJufWlmKGU9PT0ic2Vjb25kInx8ZT09PSJtaW51dGUiKXtpZih0PDB8fHQ+PTYwKXRocm93IG5ldyBSYW5nZUVycm9yKCJDcm9uUGF0dGVybjogSW52YWxpZCB2YWx1ZSBmb3IgIitlKyI6ICIrdCl9ZWxzZSBpZihlPT09ImhvdXIiKXtpZih0PDB8fHQ+PTI0KXRocm93IG5ldyBSYW5nZUVycm9yKCJDcm9uUGF0dGVybjogSW52YWxpZCB2YWx1ZSBmb3IgIitlKyI6ICIrdCl9ZWxzZSBpZihlPT09ImRheSJ8fGU9PT0ibmVhcmVzdFdlZWtkYXlzIil7aWYodDwwfHx0Pj0zMSl0aHJvdyBuZXcgUmFuZ2VFcnJvcigiQ3JvblBhdHRlcm46IEludmFsaWQgdmFsdWUgZm9yICIrZSsiOiAiK3QpfWVsc2UgaWYoZT09PSJtb250aCIpe2lmKHQ8MHx8dD49MTIpdGhyb3cgbmV3IFJhbmdlRXJyb3IoIkNyb25QYXR0ZXJuOiBJbnZhbGlkIHZhbHVlIGZvciAiK2UrIjogIit0KX1lbHNlIGlmKGU9PT0ieWVhciImJih0PDF8fHQ+PTFlNCkpdGhyb3cgbmV3IFJhbmdlRXJyb3IoIkNyb25QYXR0ZXJuOiBJbnZhbGlkIHZhbHVlIGZvciAiK2UrIjogIit0KyIgKHN1cHBvcnRlZCByYW5nZTogMS05OTk5KSIpO3RoaXNbZV1bdF09cn12YWxpZGF0ZU5vdE5hTihlLHQpe2lmKGlzTmFOKGUpKXRocm93IG5ldyBUeXBlRXJyb3IodCl9dmFsaWRhdGVSYW5nZShlLHQscixpLGEpe2lmKGU+dCl0aHJvdyBuZXcgVHlwZUVycm9yKCJDcm9uUGF0dGVybjogRnJvbSB2YWx1ZSBpcyBsYXJnZXIgdGhhbiB0byB2YWx1ZTogJyIrYSsiJyIpO2lmKHIhPT12b2lkIDApe2lmKHI9PT0wKXRocm93IG5ldyBUeXBlRXJyb3IoIkNyb25QYXR0ZXJuOiBTeW50YXggZXJyb3IsIGlsbGVnYWwgc3RlcHBpbmc6IDAiKTtpZihyPnRoaXNbaV0ubGVuZ3RoKXRocm93IG5ldyBUeXBlRXJyb3IoIkNyb25QYXR0ZXJuOiBTeW50YXggZXJyb3IsIHN0ZXBzIGNhbm5vdCBiZSBncmVhdGVyIHRoYW4gbWF4aW11bSB2YWx1ZSBvZiBwYXJ0ICgiK3RoaXNbaV0ubGVuZ3RoKyIpIil9fWhhbmRsZVJhbmdlV2l0aFN0ZXBwaW5nKGUsdCxyLGkpe2lmKGUudG9VcHBlckNhc2UoKS5pbmNsdWRlcygiVyIpKXRocm93IG5ldyBUeXBlRXJyb3IoIkNyb25QYXR0ZXJuOiBTeW50YXggZXJyb3IsIFcgaXMgbm90IGFsbG93ZWQgaW4gcmFuZ2VzIHdpdGggc3RlcHBpbmcuIik7bGV0IGE9dGhpcy5leHRyYWN0TnRoKGUsdCksbj1hWzBdLm1hdGNoKC9eKFxkKyktKFxkKylcLyhcZCspJC8pO2lmKG49PT1udWxsKXRocm93IG5ldyBUeXBlRXJyb3IoIkNyb25QYXR0ZXJuOiBTeW50YXggZXJyb3IsIGlsbGVnYWwgcmFuZ2Ugd2l0aCBzdGVwcGluZzogJyIrZSsiJyIpO2xldFssbyxzLGxdPW4sYz1wYXJzZUludChvLDEwKStyLHU9cGFyc2VJbnQocywxMCkrcixkPXBhcnNlSW50KGwsMTApO3RoaXMudmFsaWRhdGVOb3ROYU4oYywiQ3JvblBhdHRlcm46IFN5bnRheCBlcnJvciwgaWxsZWdhbCBsb3dlciByYW5nZSAoTmFOKSIpLHRoaXMudmFsaWRhdGVOb3ROYU4odSwiQ3JvblBhdHRlcm46IFN5bnRheCBlcnJvciwgaWxsZWdhbCB1cHBlciByYW5nZSAoTmFOKSIpLHRoaXMudmFsaWRhdGVOb3ROYU4oZCwiQ3JvblBhdHRlcm46IFN5bnRheCBlcnJvciwgaWxsZWdhbCBzdGVwcGluZzogKE5hTikiKSx0aGlzLnZhbGlkYXRlUmFuZ2UoYyx1LGQsdCxlKTtmb3IobGV0IGg9YztoPD11O2grPWQpdGhpcy5zZXRQYXJ0KHQsaCxhWzFdfHxpKX1leHRyYWN0TnRoKGUsdCl7bGV0IHI9ZSxpO2lmKHIuaW5jbHVkZXMoIiMiKSl7aWYodCE9PSJkYXlPZldlZWsiKXRocm93IG5ldyBFcnJvcigiQ3JvblBhdHRlcm46IG50aCAoIykgb25seSBhbGxvd2VkIGluIGRheS1vZi13ZWVrIGZpZWxkIik7aT1yLnNwbGl0KCIjIilbMV0scj1yLnNwbGl0KCIjIilbMF19ZWxzZSBpZihyLnRvVXBwZXJDYXNlKCkuZW5kc1dpdGgoIkwiKSl7aWYodCE9PSJkYXlPZldlZWsiKXRocm93IG5ldyBFcnJvcigiQ3JvblBhdHRlcm46IEwgbW9kaWZpZXIgb25seSBhbGxvd2VkIGluIGRheS1vZi13ZWVrIGZpZWxkICh1c2UgTCBhbG9uZSBmb3IgZGF5LW9mLW1vbnRoKSIpO2k9IkwiLHI9ci5zbGljZSgwLC0xKX1yZXR1cm5bcixpXX1oYW5kbGVSYW5nZShlLHQscixpKXtpZihlLnRvVXBwZXJDYXNlKCkuaW5jbHVkZXMoIlciKSl0aHJvdyBuZXcgVHlwZUVycm9yKCJDcm9uUGF0dGVybjogU3ludGF4IGVycm9yLCBXIGlzIG5vdCBhbGxvd2VkIGluIGEgcmFuZ2UuIik7bGV0IGE9dGhpcy5leHRyYWN0TnRoKGUsdCksbj1hWzBdLnNwbGl0KCItIik7aWYobi5sZW5ndGghPT0yKXRocm93IG5ldyBUeXBlRXJyb3IoIkNyb25QYXR0ZXJuOiBTeW50YXggZXJyb3IsIGlsbGVnYWwgcmFuZ2U6ICciK2UrIiciKTtsZXQgbz1wYXJzZUludChuWzBdLDEwKStyLHM9cGFyc2VJbnQoblsxXSwxMCkrcjt0aGlzLnZhbGlkYXRlTm90TmFOKG8sIkNyb25QYXR0ZXJuOiBTeW50YXggZXJyb3IsIGlsbGVnYWwgbG93ZXIgcmFuZ2UgKE5hTikiKSx0aGlzLnZhbGlkYXRlTm90TmFOKHMsIkNyb25QYXR0ZXJuOiBTeW50YXggZXJyb3IsIGlsbGVnYWwgdXBwZXIgcmFuZ2UgKE5hTikiKSx0aGlzLnZhbGlkYXRlUmFuZ2UobyxzLHZvaWQgMCx0LGUpO2ZvcihsZXQgbD1vO2w8PXM7bCsrKXRoaXMuc2V0UGFydCh0LGwsYVsxXXx8aSl9aGFuZGxlU3RlcHBpbmcoZSx0LHIsaSl7aWYoZS50b1VwcGVyQ2FzZSgpLmluY2x1ZGVzKCJXIikpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ3JvblBhdHRlcm46IFN5bnRheCBlcnJvciwgVyBpcyBub3QgYWxsb3dlZCBpbiBwYXJ0cyB3aXRoIHN0ZXBwaW5nLiIpO2xldCBhPXRoaXMuZXh0cmFjdE50aChlLHQpLG49YVswXS5zcGxpdCgiLyIpO2lmKG4ubGVuZ3RoIT09Mil0aHJvdyBuZXcgVHlwZUVycm9yKCJDcm9uUGF0dGVybjogU3ludGF4IGVycm9yLCBpbGxlZ2FsIHN0ZXBwaW5nOiAnIitlKyInIik7aWYodGhpcy5zbG9wcHlSYW5nZXMpblswXT09PSIiJiYoblswXT0iKiIpO2Vsc2V7aWYoblswXT09PSIiKXRocm93IG5ldyBUeXBlRXJyb3IoIkNyb25QYXR0ZXJuOiBTeW50YXggZXJyb3IsIHN0ZXBwaW5nIHdpdGggbWlzc2luZyBwcmVmaXggKCciK2UrIicpIGlzIG5vdCBhbGxvd2VkLiBVc2Ugd2lsZGNhcmQgKCovc3RlcCkgb3IgcmFuZ2UgKG1pbi1tYXgvc3RlcCkgaW5zdGVhZC4iKTtpZihuWzBdIT09IioiKXRocm93IG5ldyBUeXBlRXJyb3IoIkNyb25QYXR0ZXJuOiBTeW50YXggZXJyb3IsIHN0ZXBwaW5nIHdpdGggbnVtZXJpYyBwcmVmaXggKCciK2UrIicpIGlzIG5vdCBhbGxvd2VkLiBVc2Ugd2lsZGNhcmQgKCovc3RlcCkgb3IgcmFuZ2UgKG1pbi1tYXgvc3RlcCkgaW5zdGVhZC4iKX1sZXQgbz0wO25bMF0hPT0iKiImJihvPXBhcnNlSW50KG5bMF0sMTApK3IpO2xldCBzPXBhcnNlSW50KG5bMV0sMTApO3RoaXMudmFsaWRhdGVOb3ROYU4ocywiQ3JvblBhdHRlcm46IFN5bnRheCBlcnJvciwgaWxsZWdhbCBzdGVwcGluZzogKE5hTikiKSx0aGlzLnZhbGlkYXRlUmFuZ2UoMCx0aGlzW3RdLmxlbmd0aC0xLHMsdCxlKTtmb3IobGV0IGw9bztsPHRoaXNbdF0ubGVuZ3RoO2wrPXMpdGhpcy5zZXRQYXJ0KHQsbCxhWzFdfHxpKX1yZXBsYWNlQWxwaGFEYXlzKGUpe3JldHVybiBlLnJlcGxhY2UoLy1zdW4vZ2ksIi03IikucmVwbGFjZSgvc3VuL2dpLCIwIikucmVwbGFjZSgvbW9uL2dpLCIxIikucmVwbGFjZSgvdHVlL2dpLCIyIikucmVwbGFjZSgvd2VkL2dpLCIzIikucmVwbGFjZSgvdGh1L2dpLCI0IikucmVwbGFjZSgvZnJpL2dpLCI1IikucmVwbGFjZSgvc2F0L2dpLCI2Iil9cmVwbGFjZUFscGhhRGF5c1F1YXJ0eihlKXtyZXR1cm4gZS5yZXBsYWNlKC9zdW4vZ2ksIjEiKS5yZXBsYWNlKC9tb24vZ2ksIjIiKS5yZXBsYWNlKC90dWUvZ2ksIjMiKS5yZXBsYWNlKC93ZWQvZ2ksIjQiKS5yZXBsYWNlKC90aHUvZ2ksIjUiKS5yZXBsYWNlKC9mcmkvZ2ksIjYiKS5yZXBsYWNlKC9zYXQvZ2ksIjciKX1yZXBsYWNlQWxwaGFNb250aHMoZSl7cmV0dXJuIGUucmVwbGFjZSgvamFuL2dpLCIxIikucmVwbGFjZSgvZmViL2dpLCIyIikucmVwbGFjZSgvbWFyL2dpLCIzIikucmVwbGFjZSgvYXByL2dpLCI0IikucmVwbGFjZSgvbWF5L2dpLCI1IikucmVwbGFjZSgvanVuL2dpLCI2IikucmVwbGFjZSgvanVsL2dpLCI3IikucmVwbGFjZSgvYXVnL2dpLCI4IikucmVwbGFjZSgvc2VwL2dpLCI5IikucmVwbGFjZSgvb2N0L2dpLCIxMCIpLnJlcGxhY2UoL25vdi9naSwiMTEiKS5yZXBsYWNlKC9kZWMvZ2ksIjEyIil9aGFuZGxlTmlja25hbWVzKGUpe2xldCB0PWUudHJpbSgpLnRvTG93ZXJDYXNlKCk7aWYodD09PSJAeWVhcmx5Inx8dD09PSJAYW5udWFsbHkiKXJldHVybiIwIDAgMSAxICoiO2lmKHQ9PT0iQG1vbnRobHkiKXJldHVybiIwIDAgMSAqICoiO2lmKHQ9PT0iQHdlZWtseSIpcmV0dXJuIjAgMCAqICogMCI7aWYodD09PSJAZGFpbHkifHx0PT09IkBtaWRuaWdodCIpcmV0dXJuIjAgMCAqICogKiI7aWYodD09PSJAaG91cmx5IilyZXR1cm4iMCAqICogKiAqIjtpZih0PT09IkByZWJvb3QiKXRocm93IG5ldyBUeXBlRXJyb3IoIkNyb25QYXR0ZXJuOiBAcmVib290IGlzIG5vdCBzdXBwb3J0ZWQgaW4gdGhpcyBlbnZpcm9ubWVudC4gVGhpcyBpcyBhbiBldmVudC1iYXNlZCB0cmlnZ2VyIHRoYXQgcmVxdWlyZXMgc3lzdGVtIHN0YXJ0dXAgZGV0ZWN0aW9uLiIpO3JldHVybiBlfXNldE50aFdlZWtkYXlPZk1vbnRoKGUsdCl7aWYodHlwZW9mIHQhPSJudW1iZXIiJiZ0LnRvVXBwZXJDYXNlKCk9PT0iTCIpdGhpcy5kYXlPZldlZWtbZV09dGhpcy5kYXlPZldlZWtbZV18MzI7ZWxzZSBpZih0PT09NjMpdGhpcy5kYXlPZldlZWtbZV09NjM7ZWxzZSBpZih0PDYmJnQ+MCl0aGlzLmRheU9mV2Vla1tlXT10aGlzLmRheU9mV2Vla1tlXXxkSWVbdC0xXTtlbHNlIHRocm93IG5ldyBUeXBlRXJyb3IoYENyb25QYXR0ZXJuOiBudGggd2Vla2RheSBvdXQgb2YgcmFuZ2UsIHNob3VsZCBiZSAxLTUgb3IgTC4gVmFsdWU6ICR7dH0sIFR5cGU6ICR7dHlwZW9mIHR9YCl9fSx4UT1bMzEsMjgsMzEsMzAsMzEsMzAsMzEsMzEsMzAsMzEsMzAsMzFdLGMxPVtbIm1vbnRoIiwieWVhciIsMF0sWyJkYXkiLCJtb250aCIsLTFdLFsiaG91ciIsImRheSIsMF0sWyJtaW51dGUiLCJob3VyIiwwXSxbInNlY29uZCIsIm1pbnV0ZSIsMF1dLG1pPWNsYXNzIHBJZXt0ejttcztzZWNvbmQ7bWludXRlO2hvdXI7ZGF5O21vbnRoO3llYXI7Y29uc3RydWN0b3IodCxyKXtpZih0aGlzLnR6PXIsdCYmdCBpbnN0YW5jZW9mIERhdGUpaWYoIWlzTmFOKHQpKXRoaXMuZnJvbURhdGUodCk7ZWxzZSB0aHJvdyBuZXcgVHlwZUVycm9yKCJDcm9uRGF0ZTogSW52YWxpZCBkYXRlIHBhc3NlZCB0byBDcm9uRGF0ZSBjb25zdHJ1Y3RvciIpO2Vsc2UgaWYodD09bnVsbCl0aGlzLmZyb21EYXRlKG5ldyBEYXRlKTtlbHNlIGlmKHQmJnR5cGVvZiB0PT0ic3RyaW5nIil0aGlzLmZyb21TdHJpbmcodCk7ZWxzZSBpZih0IGluc3RhbmNlb2YgcEllKXRoaXMuZnJvbUNyb25EYXRlKHQpO2Vsc2UgdGhyb3cgbmV3IFR5cGVFcnJvcigiQ3JvbkRhdGU6IEludmFsaWQgdHlwZSAoIit0eXBlb2YgdCsiKSBwYXNzZWQgdG8gQ3JvbkRhdGUgY29uc3RydWN0b3IiKX1nZXRMYXN0RGF5T2ZNb250aCh0LHIpe3JldHVybiByIT09MT94UVtyXTpuZXcgRGF0ZShEYXRlLlVUQyh0LHIrMSwwKSkuZ2V0VVRDRGF0ZSgpfWdldExhc3RXZWVrZGF5KHQscil7bGV0IGk9dGhpcy5nZXRMYXN0RGF5T2ZNb250aCh0LHIpLGE9bmV3IERhdGUoRGF0ZS5VVEModCxyLGkpKS5nZXRVVENEYXkoKTtyZXR1cm4gYT09PTA/aS0yOmE9PT02P2ktMTppfWdldE5lYXJlc3RXZWVrZGF5KHQscixpKXtsZXQgYT10aGlzLmdldExhc3REYXlPZk1vbnRoKHQscik7aWYoaT5hKXJldHVybi0xO2xldCBuPW5ldyBEYXRlKERhdGUuVVRDKHQscixpKSkuZ2V0VVRDRGF5KCk7cmV0dXJuIG49PT0wP2k9PT1hP2ktMjppKzE6bj09PTY/aT09PTE/aSsyOmktMTppfWlzTnRoV2Vla2RheU9mTW9udGgodCxyLGksYSl7bGV0IG49bmV3IERhdGUoRGF0ZS5VVEModCxyLGkpKS5nZXRVVENEYXkoKSxvPTA7Zm9yKGxldCBzPTE7czw9aTtzKyspbmV3IERhdGUoRGF0ZS5VVEModCxyLHMpKS5nZXRVVENEYXkoKT09PW4mJm8rKztpZihhJjYzJiZkSWVbby0xXSZhKXJldHVybiEwO2lmKGEmMzIpe2xldCBzPXRoaXMuZ2V0TGFzdERheU9mTW9udGgodCxyKTtmb3IobGV0IGw9aSsxO2w8PXM7bCsrKWlmKG5ldyBEYXRlKERhdGUuVVRDKHQscixsKSkuZ2V0VVRDRGF5KCk9PT1uKXJldHVybiExO3JldHVybiEwfXJldHVybiExfWZyb21EYXRlKHQpe2lmKHRoaXMudHohPT12b2lkIDApaWYodHlwZW9mIHRoaXMudHo9PSJudW1iZXIiKXRoaXMubXM9dC5nZXRVVENNaWxsaXNlY29uZHMoKSx0aGlzLnNlY29uZD10LmdldFVUQ1NlY29uZHMoKSx0aGlzLm1pbnV0ZT10LmdldFVUQ01pbnV0ZXMoKSt0aGlzLnR6LHRoaXMuaG91cj10LmdldFVUQ0hvdXJzKCksdGhpcy5kYXk9dC5nZXRVVENEYXRlKCksdGhpcy5tb250aD10LmdldFVUQ01vbnRoKCksdGhpcy55ZWFyPXQuZ2V0VVRDRnVsbFllYXIoKSx0aGlzLmFwcGx5KCk7ZWxzZSB0cnl7bGV0IHI9TW0odCx0aGlzLnR6KTt0aGlzLm1zPXQuZ2V0TWlsbGlzZWNvbmRzKCksdGhpcy5zZWNvbmQ9ci5zLHRoaXMubWludXRlPXIuaSx0aGlzLmhvdXI9ci5oLHRoaXMuZGF5PXIuZCx0aGlzLm1vbnRoPXIubS0xLHRoaXMueWVhcj1yLnl9Y2F0Y2gocil7bGV0IGk9ciBpbnN0YW5jZW9mIEVycm9yP3IubWVzc2FnZTpTdHJpbmcocik7dGhyb3cgbmV3IFR5cGVFcnJvcihgQ3JvbkRhdGU6IEZhaWxlZCB0byBjb252ZXJ0IGRhdGUgdG8gdGltZXpvbmUgJyR7dGhpcy50en0nLiBUaGlzIG1heSBoYXBwZW4gd2l0aCBpbnZhbGlkIHRpbWV6b25lIG5hbWVzIG9yIGRhdGVzLiBPcmlnaW5hbCBlcnJvcjogJHtpfWApfWVsc2UgdGhpcy5tcz10LmdldE1pbGxpc2Vjb25kcygpLHRoaXMuc2Vjb25kPXQuZ2V0U2Vjb25kcygpLHRoaXMubWludXRlPXQuZ2V0TWludXRlcygpLHRoaXMuaG91cj10LmdldEhvdXJzKCksdGhpcy5kYXk9dC5nZXREYXRlKCksdGhpcy5tb250aD10LmdldE1vbnRoKCksdGhpcy55ZWFyPXQuZ2V0RnVsbFllYXIoKX1mcm9tQ3JvbkRhdGUodCl7dGhpcy50ej10LnR6LHRoaXMueWVhcj10LnllYXIsdGhpcy5tb250aD10Lm1vbnRoLHRoaXMuZGF5PXQuZGF5LHRoaXMuaG91cj10LmhvdXIsdGhpcy5taW51dGU9dC5taW51dGUsdGhpcy5zZWNvbmQ9dC5zZWNvbmQsdGhpcy5tcz10Lm1zfWFwcGx5KCl7aWYodGhpcy5tb250aD4xMXx8dGhpcy5tb250aDwwfHx0aGlzLmRheT54UVt0aGlzLm1vbnRoXXx8dGhpcy5kYXk8MXx8dGhpcy5ob3VyPjU5fHx0aGlzLm1pbnV0ZT41OXx8dGhpcy5zZWNvbmQ+NTl8fHRoaXMuaG91cjwwfHx0aGlzLm1pbnV0ZTwwfHx0aGlzLnNlY29uZDwwKXtsZXQgdD1uZXcgRGF0ZShEYXRlLlVUQyh0aGlzLnllYXIsdGhpcy5tb250aCx0aGlzLmRheSx0aGlzLmhvdXIsdGhpcy5taW51dGUsdGhpcy5zZWNvbmQsdGhpcy5tcykpO3JldHVybiB0aGlzLm1zPXQuZ2V0VVRDTWlsbGlzZWNvbmRzKCksdGhpcy5zZWNvbmQ9dC5nZXRVVENTZWNvbmRzKCksdGhpcy5taW51dGU9dC5nZXRVVENNaW51dGVzKCksdGhpcy5ob3VyPXQuZ2V0VVRDSG91cnMoKSx0aGlzLmRheT10LmdldFVUQ0RhdGUoKSx0aGlzLm1vbnRoPXQuZ2V0VVRDTW9udGgoKSx0aGlzLnllYXI9dC5nZXRVVENGdWxsWWVhcigpLCEwfWVsc2UgcmV0dXJuITF9ZnJvbVN0cmluZyh0KXtpZih0eXBlb2YgdGhpcy50ej09Im51bWJlciIpe2xldCByPWxJZSh0KTt0aGlzLm1zPXIuZ2V0VVRDTWlsbGlzZWNvbmRzKCksdGhpcy5zZWNvbmQ9ci5nZXRVVENTZWNvbmRzKCksdGhpcy5taW51dGU9ci5nZXRVVENNaW51dGVzKCksdGhpcy5ob3VyPXIuZ2V0VVRDSG91cnMoKSx0aGlzLmRheT1yLmdldFVUQ0RhdGUoKSx0aGlzLm1vbnRoPXIuZ2V0VVRDTW9udGgoKSx0aGlzLnllYXI9ci5nZXRVVENGdWxsWWVhcigpLHRoaXMuYXBwbHkoKX1lbHNlIHJldHVybiB0aGlzLmZyb21EYXRlKGxJZSh0LHRoaXMudHopKX1maW5kTmV4dCh0LHIsaSxhKXtyZXR1cm4gdGhpcy5fZmluZE1hdGNoKHQscixpLGEsMSl9X2ZpbmRNYXRjaCh0LHIsaSxhLG4pe2xldCBvPXRoaXNbcl0scztpLmxhc3REYXlPZk1vbnRoJiYocz10aGlzLmdldExhc3REYXlPZk1vbnRoKHRoaXMueWVhcix0aGlzLm1vbnRoKSk7bGV0IGw9IWkuc3RhckRPVyYmcj09ImRheSI/bmV3IERhdGUoRGF0ZS5VVEModGhpcy55ZWFyLHRoaXMubW9udGgsMSwwLDAsMCwwKSkuZ2V0VVRDRGF5KCk6dm9pZCAwLGM9dGhpc1tyXSthLHU9bj09PTE/ZD0+ZDxpW3JdLmxlbmd0aDpkPT5kPj0wO2ZvcihsZXQgZD1jO3UoZCk7ZCs9bil7bGV0IGg9aVtyXVtkXTtpZihyPT09ImRheSImJiFoKXtmb3IobGV0IGY9MDtmPGkubmVhcmVzdFdlZWtkYXlzLmxlbmd0aDtmKyspaWYoaS5uZWFyZXN0V2Vla2RheXNbZl0pe2xldCB4PXRoaXMuZ2V0TmVhcmVzdFdlZWtkYXkodGhpcy55ZWFyLHRoaXMubW9udGgsZi1hKTtpZih4PT09LTEpY29udGludWU7aWYoeD09PWQtYSl7aD0xO2JyZWFrfX19aWYocj09PSJkYXkiJiZpLmxhc3RXZWVrZGF5KXtsZXQgZj10aGlzLmdldExhc3RXZWVrZGF5KHRoaXMueWVhcix0aGlzLm1vbnRoKTtkLWE9PT1mJiYoaD0xKX1pZihyPT09ImRheSImJmkubGFzdERheU9mTW9udGgmJmQtYT09cyYmKGg9MSkscj09PSJkYXkiJiYhaS5zdGFyRE9XKXtsZXQgZj1pLmRheU9mV2Vla1sobCsoZC1hLTEpKSU3XTtpZihmJiZmJjYzKWY9dGhpcy5pc050aFdlZWtkYXlPZk1vbnRoKHRoaXMueWVhcix0aGlzLm1vbnRoLGQtYSxmKT8xOjA7ZWxzZSBpZihmKXRocm93IG5ldyBFcnJvcihgQ3JvbkRhdGU6IEludmFsaWQgdmFsdWUgZm9yIGRheU9mV2VlayBlbmNvdW50ZXJlZC4gJHtmfWApO2kudXNlQW5kTG9naWM/aD1oJiZmOiF0LmRvbUFuZERvdyYmIWkuc3RhckRPTT9oPWh8fGY6aD1oJiZmfWlmKGgpcmV0dXJuIHRoaXNbcl09ZC1hLG8hPT10aGlzW3JdPzI6MX1yZXR1cm4gM31yZWN1cnNlKHQscixpKXtpZihpPT09MCYmIXQuc3RhclllYXIpe2lmKHRoaXMueWVhcj49MCYmdGhpcy55ZWFyPHQueWVhci5sZW5ndGgmJnQueWVhclt0aGlzLnllYXJdPT09MCl7bGV0IG49LTE7Zm9yKGxldCBvPXRoaXMueWVhcisxO288dC55ZWFyLmxlbmd0aCYmbzwxZTQ7bysrKWlmKHQueWVhcltvXT09PTEpe249bzticmVha31pZihuPT09LTEpcmV0dXJuIG51bGw7dGhpcy55ZWFyPW4sdGhpcy5tb250aD0wLHRoaXMuZGF5PTEsdGhpcy5ob3VyPTAsdGhpcy5taW51dGU9MCx0aGlzLnNlY29uZD0wLHRoaXMubXM9MH1pZih0aGlzLnllYXI+PTFlNClyZXR1cm4gbnVsbH1sZXQgYT10aGlzLmZpbmROZXh0KHIsYzFbaV1bMF0sdCxjMVtpXVsyXSk7aWYoYT4xKXtsZXQgbj1pKzE7Zm9yKDtuPGMxLmxlbmd0aDspdGhpc1tjMVtuXVswXV09LWMxW25dWzJdLG4rKztpZihhPT09Myl7aWYodGhpc1tjMVtpXVsxXV0rKyx0aGlzW2MxW2ldWzBdXT0tYzFbaV1bMl0sdGhpcy5hcHBseSgpLGk9PT0wJiYhdC5zdGFyWWVhcil7Zm9yKDt0aGlzLnllYXI+PTAmJnRoaXMueWVhcjx0LnllYXIubGVuZ3RoJiZ0LnllYXJbdGhpcy55ZWFyXT09PTAmJnRoaXMueWVhcjwxZTQ7KXRoaXMueWVhcisrO2lmKHRoaXMueWVhcj49MWU0fHx0aGlzLnllYXI+PXQueWVhci5sZW5ndGgpcmV0dXJuIG51bGx9cmV0dXJuIHRoaXMucmVjdXJzZSh0LHIsMCl9ZWxzZSBpZih0aGlzLmFwcGx5KCkpcmV0dXJuIHRoaXMucmVjdXJzZSh0LHIsaS0xKX1yZXR1cm4gaSs9MSxpPj1jMS5sZW5ndGg/dGhpczoodC5zdGFyWWVhcj90aGlzLnllYXI+PTNlMzp0aGlzLnllYXI+PTFlNCk/bnVsbDp0aGlzLnJlY3Vyc2UodCxyLGkpfWluY3JlbWVudCh0LHIsaSl7cmV0dXJuIHRoaXMuc2Vjb25kKz1yLmludGVydmFsIT09dm9pZCAwJiZyLmludGVydmFsPjEmJmk/ci5pbnRlcnZhbDoxLHRoaXMubXM9MCx0aGlzLmFwcGx5KCksdGhpcy5yZWN1cnNlKHQsciwwKX1kZWNyZW1lbnQodCxyKXtyZXR1cm4gdGhpcy5zZWNvbmQtPXIuaW50ZXJ2YWwhPT12b2lkIDAmJnIuaW50ZXJ2YWw+MT9yLmludGVydmFsOjEsdGhpcy5tcz0wLHRoaXMuYXBwbHkoKSx0aGlzLnJlY3Vyc2VCYWNrd2FyZCh0LHIsMCwwKX1yZWN1cnNlQmFja3dhcmQodCxyLGksYT0wKXtpZihhPjFlNClyZXR1cm4gbnVsbDtpZihpPT09MCYmIXQuc3RhclllYXIpe2lmKHRoaXMueWVhcj49MCYmdGhpcy55ZWFyPHQueWVhci5sZW5ndGgmJnQueWVhclt0aGlzLnllYXJdPT09MCl7bGV0IG89LTE7Zm9yKGxldCBzPXRoaXMueWVhci0xO3M+PTA7cy0tKWlmKHQueWVhcltzXT09PTEpe289czticmVha31pZihvPT09LTEpcmV0dXJuIG51bGw7dGhpcy55ZWFyPW8sdGhpcy5tb250aD0xMSx0aGlzLmRheT0zMSx0aGlzLmhvdXI9MjMsdGhpcy5taW51dGU9NTksdGhpcy5zZWNvbmQ9NTksdGhpcy5tcz0wfWlmKHRoaXMueWVhcjwwKXJldHVybiBudWxsfWxldCBuPXRoaXMuZmluZFByZXZpb3VzKHIsYzFbaV1bMF0sdCxjMVtpXVsyXSk7aWYobj4xKXtsZXQgbz1pKzE7Zm9yKDtvPGMxLmxlbmd0aDspe2xldCBzPWMxW29dWzBdLGw9YzFbb11bMl0sYz10aGlzLmdldE1heFBhdHRlcm5WYWx1ZShzLHQsbCk7dGhpc1tzXT1jLG8rK31pZihuPT09Myl7aWYodGhpc1tjMVtpXVsxXV0tLSxpPT09MCl7bGV0IHU9dGhpcy5nZXRMYXN0RGF5T2ZNb250aCh0aGlzLnllYXIsdGhpcy5tb250aCk7dGhpcy5kYXk+dSYmKHRoaXMuZGF5PXUpfWlmKGk9PT0xKWlmKHRoaXMuZGF5PD0wKXRoaXMuZGF5PTE7ZWxzZXtsZXQgdT10aGlzLnllYXIsZD10aGlzLm1vbnRoO2Zvcig7ZDwwOylkKz0xMix1LS07Zm9yKDtkPjExOylkLT0xMix1Kys7bGV0IGg9ZCE9PTE/eFFbZF06bmV3IERhdGUoRGF0ZS5VVEModSxkKzEsMCkpLmdldFVUQ0RhdGUoKTt0aGlzLmRheT5oJiYodGhpcy5kYXk9aCl9dGhpcy5hcHBseSgpO2xldCBzPWMxW2ldWzBdLGw9YzFbaV1bMl0sYz10aGlzLmdldE1heFBhdHRlcm5WYWx1ZShzLHQsbCk7aWYocz09PSJkYXkiKXtsZXQgdT10aGlzLmdldExhc3REYXlPZk1vbnRoKHRoaXMueWVhcix0aGlzLm1vbnRoKTt0aGlzW3NdPU1hdGgubWluKGMsdSl9ZWxzZSB0aGlzW3NdPWM7aWYodGhpcy5hcHBseSgpLGk9PT0wKXtsZXQgdT1jMVsxXVsyXSxkPXRoaXMuZ2V0TWF4UGF0dGVyblZhbHVlKCJkYXkiLHQsdSksaD10aGlzLmdldExhc3REYXlPZk1vbnRoKHRoaXMueWVhcix0aGlzLm1vbnRoKSxmPU1hdGgubWluKGQsaCk7ZiE9PXRoaXMuZGF5JiYodGhpcy5kYXk9Zix0aGlzLmhvdXI9dGhpcy5nZXRNYXhQYXR0ZXJuVmFsdWUoImhvdXIiLHQsYzFbMl1bMl0pLHRoaXMubWludXRlPXRoaXMuZ2V0TWF4UGF0dGVyblZhbHVlKCJtaW51dGUiLHQsYzFbM11bMl0pLHRoaXMuc2Vjb25kPXRoaXMuZ2V0TWF4UGF0dGVyblZhbHVlKCJzZWNvbmQiLHQsYzFbNF1bMl0pKX1pZihpPT09MCYmIXQuc3RhclllYXIpe2Zvcig7dGhpcy55ZWFyPj0wJiZ0aGlzLnllYXI8dC55ZWFyLmxlbmd0aCYmdC55ZWFyW3RoaXMueWVhcl09PT0wOyl0aGlzLnllYXItLTtpZih0aGlzLnllYXI8MClyZXR1cm4gbnVsbH1yZXR1cm4gdGhpcy5yZWN1cnNlQmFja3dhcmQodCxyLDAsYSsxKX1lbHNlIGlmKHRoaXMuYXBwbHkoKSlyZXR1cm4gdGhpcy5yZWN1cnNlQmFja3dhcmQodCxyLGktMSxhKzEpfXJldHVybiBpKz0xLGk+PWMxLmxlbmd0aD90aGlzOnRoaXMueWVhcjwwP251bGw6dGhpcy5yZWN1cnNlQmFja3dhcmQodCxyLGksYSsxKX1nZXRNYXhQYXR0ZXJuVmFsdWUodCxyLGkpe2lmKHQ9PT0iZGF5IiYmci5sYXN0RGF5T2ZNb250aClyZXR1cm4gdGhpcy5nZXRMYXN0RGF5T2ZNb250aCh0aGlzLnllYXIsdGhpcy5tb250aCk7aWYodD09PSJkYXkiJiYhci5zdGFyRE9XKXJldHVybiB0aGlzLmdldExhc3REYXlPZk1vbnRoKHRoaXMueWVhcix0aGlzLm1vbnRoKTtmb3IobGV0IGE9clt0XS5sZW5ndGgtMTthPj0wO2EtLSlpZihyW3RdW2FdKXJldHVybiBhLWk7cmV0dXJuIHJbdF0ubGVuZ3RoLTEtaX1maW5kUHJldmlvdXModCxyLGksYSl7cmV0dXJuIHRoaXMuX2ZpbmRNYXRjaCh0LHIsaSxhLC0xKX1nZXREYXRlKHQpe3JldHVybiB0fHx0aGlzLnR6PT09dm9pZCAwP25ldyBEYXRlKHRoaXMueWVhcix0aGlzLm1vbnRoLHRoaXMuZGF5LHRoaXMuaG91cix0aGlzLm1pbnV0ZSx0aGlzLnNlY29uZCx0aGlzLm1zKTp0eXBlb2YgdGhpcy50ej09Im51bWJlciI/bmV3IERhdGUoRGF0ZS5VVEModGhpcy55ZWFyLHRoaXMubW9udGgsdGhpcy5kYXksdGhpcy5ob3VyLHRoaXMubWludXRlLXRoaXMudHosdGhpcy5zZWNvbmQsdGhpcy5tcykpOmNJZSh2USh0aGlzLnllYXIsdGhpcy5tb250aCsxLHRoaXMuZGF5LHRoaXMuaG91cix0aGlzLm1pbnV0ZSx0aGlzLnNlY29uZCx0aGlzLnR6KSwhMSl9Z2V0VGltZSgpe3JldHVybiB0aGlzLmdldERhdGUoITEpLmdldFRpbWUoKX1tYXRjaCh0LHIpe2lmKCF0LnN0YXJZZWFyJiYodGhpcy55ZWFyPDB8fHRoaXMueWVhcj49dC55ZWFyLmxlbmd0aHx8dC55ZWFyW3RoaXMueWVhcl09PT0wKSlyZXR1cm4hMTtmb3IobGV0IGk9MDtpPGMxLmxlbmd0aDtpKyspe2xldCBhPWMxW2ldWzBdLG49YzFbaV1bMl0sbz10aGlzW2FdO2lmKG8rbjwwfHxvK24+PXRbYV0ubGVuZ3RoKXJldHVybiExO2xldCBzPXRbYV1bbytuXTtpZihhPT09ImRheSIpe2lmKCFzKXtmb3IobGV0IGw9MDtsPHQubmVhcmVzdFdlZWtkYXlzLmxlbmd0aDtsKyspaWYodC5uZWFyZXN0V2Vla2RheXNbbF0pe2xldCBjPXRoaXMuZ2V0TmVhcmVzdFdlZWtkYXkodGhpcy55ZWFyLHRoaXMubW9udGgsbC1uKTtpZihjIT09LTEmJmM9PT1vKXtzPTE7YnJlYWt9fX1pZih0Lmxhc3RXZWVrZGF5KXtsZXQgbD10aGlzLmdldExhc3RXZWVrZGF5KHRoaXMueWVhcix0aGlzLm1vbnRoKTtvPT09bCYmKHM9MSl9aWYodC5sYXN0RGF5T2ZNb250aCl7bGV0IGw9dGhpcy5nZXRMYXN0RGF5T2ZNb250aCh0aGlzLnllYXIsdGhpcy5tb250aCk7bz09PWwmJihzPTEpfWlmKCF0LnN0YXJET1cpe2xldCBsPW5ldyBEYXRlKERhdGUuVVRDKHRoaXMueWVhcix0aGlzLm1vbnRoLDEsMCwwLDAsMCkpLmdldFVUQ0RheSgpLGM9dC5kYXlPZldlZWtbKGwrKG8tMSkpJTddO2MmJmMmNjMmJihjPXRoaXMuaXNOdGhXZWVrZGF5T2ZNb250aCh0aGlzLnllYXIsdGhpcy5tb250aCxvLGMpPzE6MCksdC51c2VBbmRMb2dpYz9zPXMmJmM6IXIuZG9tQW5kRG93JiYhdC5zdGFyRE9NP3M9c3x8YzpzPXMmJmN9fWlmKCFzKXJldHVybiExfXJldHVybiEwfX07dUllPTMwKjFlMyxvOD1bXSxoSWU9Y2xhc3N7bmFtZTtvcHRpb25zO19zdGF0ZXM7Zm47Z2V0VHooKXtyZXR1cm4gdGhpcy5vcHRpb25zLnRpbWV6b25lfHx0aGlzLm9wdGlvbnMudXRjT2Zmc2V0fWFwcGx5RGF5T2Zmc2V0KGUpe2lmKHRoaXMub3B0aW9ucy5kYXlPZmZzZXQhPT12b2lkIDAmJnRoaXMub3B0aW9ucy5kYXlPZmZzZXQhPT0wKXtsZXQgdD10aGlzLm9wdGlvbnMuZGF5T2Zmc2V0KjI0KjYwKjYwKjFlMztyZXR1cm4gbmV3IERhdGUoZS5nZXRUaW1lKCkrdCl9cmV0dXJuIGV9Y29uc3RydWN0b3IoZSx0LHIpe2xldCBpLGE7aWYoa20odCkpYT10O2Vsc2UgaWYodHlwZW9mIHQ9PSJvYmplY3QiKWk9dDtlbHNlIGlmKHQhPT12b2lkIDApdGhyb3cgbmV3IEVycm9yKCJDcm9uOiBJbnZhbGlkIGFyZ3VtZW50IHBhc3NlZCBmb3Igb3B0aW9uc0luLiBTaG91bGQgYmUgb25lIG9mIGZ1bmN0aW9uLCBvciBvYmplY3QgKG9wdGlvbnMpLiIpO2lmKGttKHIpKWE9cjtlbHNlIGlmKHR5cGVvZiByPT0ib2JqZWN0IilpPXI7ZWxzZSBpZihyIT09dm9pZCAwKXRocm93IG5ldyBFcnJvcigiQ3JvbjogSW52YWxpZCBhcmd1bWVudCBwYXNzZWQgZm9yIGZ1bmNJbi4gU2hvdWxkIGJlIG9uZSBvZiBmdW5jdGlvbiwgb3Igb2JqZWN0IChvcHRpb25zKS4iKTtpZih0aGlzLm5hbWU9aT8ubmFtZSx0aGlzLm9wdGlvbnM9akFyKGkpLHRoaXMuX3N0YXRlcz17a2lsbDohMSxibG9ja2luZzohMSxwcmV2aW91c1J1bjp2b2lkIDAsY3VycmVudFJ1bjp2b2lkIDAsb25jZTp2b2lkIDAsY3VycmVudFRpbWVvdXQ6dm9pZCAwLG1heFJ1bnM6aT9pLm1heFJ1bnM6dm9pZCAwLHBhdXNlZDppP2kucGF1c2VkOiExLHBhdHRlcm46bmV3IHh6KCIqICogKiAqICoiLHZvaWQgMCx7bW9kZToiYXV0byJ9KX0sZSYmKGUgaW5zdGFuY2VvZiBEYXRlfHx0eXBlb2YgZT09InN0cmluZyImJmUuaW5kZXhPZigiOiIpPjApP3RoaXMuX3N0YXRlcy5vbmNlPW5ldyBtaShlLHRoaXMuZ2V0VHooKSk6dGhpcy5fc3RhdGVzLnBhdHRlcm49bmV3IHh6KGUsdGhpcy5vcHRpb25zLnRpbWV6b25lLHttb2RlOnRoaXMub3B0aW9ucy5tb2RlLGFsdGVybmF0aXZlV2Vla2RheXM6dGhpcy5vcHRpb25zLmFsdGVybmF0aXZlV2Vla2RheXMsc2xvcHB5UmFuZ2VzOnRoaXMub3B0aW9ucy5zbG9wcHlSYW5nZXN9KSx0aGlzLm5hbWUpe2lmKG84LmZpbmQobj0+bi5uYW1lPT09dGhpcy5uYW1lKSl0aHJvdyBuZXcgRXJyb3IoIkNyb246IFRyaWVkIHRvIGluaXRpYWxpemUgbmV3IG5hbWVkIGpvYiAnIit0aGlzLm5hbWUrIicsIGJ1dCBuYW1lIGFscmVhZHkgdGFrZW4uIik7bzgucHVzaCh0aGlzKX1yZXR1cm4gYSE9PXZvaWQgMCYmVkFyKGEpJiYodGhpcy5mbj1hLHRoaXMuc2NoZWR1bGUoKSksdGhpc31uZXh0UnVuKGUpe2xldCB0PXRoaXMuX25leHQoZSk7cmV0dXJuIHQ/dGhpcy5hcHBseURheU9mZnNldCh0LmdldERhdGUoITEpKTpudWxsfW5leHRSdW5zKGUsdCl7dGhpcy5fc3RhdGVzLm1heFJ1bnMhPT12b2lkIDAmJmU+dGhpcy5fc3RhdGVzLm1heFJ1bnMmJihlPXRoaXMuX3N0YXRlcy5tYXhSdW5zKTtsZXQgcj10fHx0aGlzLl9zdGF0ZXMuY3VycmVudFJ1bnx8dm9pZCAwO3JldHVybiB0aGlzLl9lbnVtZXJhdGVSdW5zKGUsciwibmV4dCIpfXByZXZpb3VzUnVucyhlLHQpe3JldHVybiB0aGlzLl9lbnVtZXJhdGVSdW5zKGUsdHx8dm9pZCAwLCJwcmV2aW91cyIpfV9lbnVtZXJhdGVSdW5zKGUsdCxyKXtsZXQgaT1bXSxhPXQ/bmV3IG1pKHQsdGhpcy5nZXRUeigpKTpudWxsLG49cj09PSJuZXh0Ij90aGlzLl9uZXh0OnRoaXMuX3ByZXZpb3VzO2Zvcig7ZS0tOyl7bGV0IG89bi5jYWxsKHRoaXMsYSk7aWYoIW8pYnJlYWs7bGV0IHM9by5nZXREYXRlKCExKTtpLnB1c2godGhpcy5hcHBseURheU9mZnNldChzKSksYT1vfXJldHVybiBpfW1hdGNoKGUpe2lmKHRoaXMuX3N0YXRlcy5vbmNlKXtsZXQgcj1uZXcgbWkoZSx0aGlzLmdldFR6KCkpO3IubXM9MDtsZXQgaT1uZXcgbWkodGhpcy5fc3RhdGVzLm9uY2UsdGhpcy5nZXRUeigpKTtyZXR1cm4gaS5tcz0wLHIuZ2V0VGltZSgpPT09aS5nZXRUaW1lKCl9bGV0IHQ9bmV3IG1pKGUsdGhpcy5nZXRUeigpKTtyZXR1cm4gdC5tcz0wLHQubWF0Y2godGhpcy5fc3RhdGVzLnBhdHRlcm4sdGhpcy5vcHRpb25zKX1nZXRQYXR0ZXJuKCl7aWYoIXRoaXMuX3N0YXRlcy5vbmNlKXJldHVybiB0aGlzLl9zdGF0ZXMucGF0dGVybj90aGlzLl9zdGF0ZXMucGF0dGVybi5wYXR0ZXJuOnZvaWQgMH1nZXRPbmNlKCl7cmV0dXJuIHRoaXMuX3N0YXRlcy5vbmNlP3RoaXMuX3N0YXRlcy5vbmNlLmdldERhdGUoKTpudWxsfWlzUnVubmluZygpe2xldCBlPXRoaXMubmV4dFJ1bih0aGlzLl9zdGF0ZXMuY3VycmVudFJ1biksdD0hdGhpcy5fc3RhdGVzLnBhdXNlZCxyPXRoaXMuZm4hPT12b2lkIDAsaT0hdGhpcy5fc3RhdGVzLmtpbGw7cmV0dXJuIHQmJnImJmkmJmUhPT1udWxsfWlzU3RvcHBlZCgpe3JldHVybiB0aGlzLl9zdGF0ZXMua2lsbH1pc0J1c3koKXtyZXR1cm4gdGhpcy5fc3RhdGVzLmJsb2NraW5nfWN1cnJlbnRSdW4oKXtyZXR1cm4gdGhpcy5fc3RhdGVzLmN1cnJlbnRSdW4/dGhpcy5fc3RhdGVzLmN1cnJlbnRSdW4uZ2V0RGF0ZSgpOm51bGx9cHJldmlvdXNSdW4oKXtyZXR1cm4gdGhpcy5fc3RhdGVzLnByZXZpb3VzUnVuP3RoaXMuX3N0YXRlcy5wcmV2aW91c1J1bi5nZXREYXRlKCk6bnVsbH1tc1RvTmV4dChlKXtsZXQgdD10aGlzLl9uZXh0KGUpO3JldHVybiB0P2UgaW5zdGFuY2VvZiBtaXx8ZSBpbnN0YW5jZW9mIERhdGU/dC5nZXRUaW1lKCktZS5nZXRUaW1lKCk6dC5nZXRUaW1lKCktbmV3IG1pKGUpLmdldFRpbWUoKTpudWxsfXN0b3AoKXt0aGlzLl9zdGF0ZXMua2lsbD0hMCx0aGlzLl9zdGF0ZXMuY3VycmVudFRpbWVvdXQmJmNsZWFyVGltZW91dCh0aGlzLl9zdGF0ZXMuY3VycmVudFRpbWVvdXQpO2xldCBlPW84LmluZGV4T2YodGhpcyk7ZT49MCYmbzguc3BsaWNlKGUsMSl9cGF1c2UoKXtyZXR1cm4gdGhpcy5fc3RhdGVzLnBhdXNlZD0hMCwhdGhpcy5fc3RhdGVzLmtpbGx9cmVzdW1lKCl7cmV0dXJuIHRoaXMuX3N0YXRlcy5wYXVzZWQ9ITEsIXRoaXMuX3N0YXRlcy5raWxsfXNjaGVkdWxlKGUpe2lmKGUmJnRoaXMuZm4pdGhyb3cgbmV3IEVycm9yKCJDcm9uOiBJdCBpcyBub3QgYWxsb3dlZCB0byBzY2hlZHVsZSB0d28gZnVuY3Rpb25zIHVzaW5nIHRoZSBzYW1lIENyb25lciBpbnN0YW5jZS4iKTtlJiYodGhpcy5mbj1lKTtsZXQgdD10aGlzLm1zVG9OZXh0KCkscj10aGlzLm5leHRSdW4odGhpcy5fc3RhdGVzLmN1cnJlbnRSdW4pO3JldHVybiB0PT1udWxsfHxpc05hTih0KXx8cj09PW51bGw/dGhpczoodD51SWUmJih0PXVJZSksdGhpcy5fc3RhdGVzLmN1cnJlbnRUaW1lb3V0PXNldFRpbWVvdXQoKCk9PnRoaXMuX2NoZWNrVHJpZ2dlcihyKSx0KSx0aGlzLl9zdGF0ZXMuY3VycmVudFRpbWVvdXQmJnRoaXMub3B0aW9ucy51bnJlZiYmVUFyKHRoaXMuX3N0YXRlcy5jdXJyZW50VGltZW91dCksdGhpcyl9YXN5bmMgX3RyaWdnZXIoZSl7dGhpcy5fc3RhdGVzLmJsb2NraW5nPSEwLHRoaXMuX3N0YXRlcy5jdXJyZW50UnVuPW5ldyBtaSh2b2lkIDAsdGhpcy5nZXRUeigpKTt0cnl7aWYodGhpcy5vcHRpb25zLmNhdGNoKXRyeXt0aGlzLmZuIT09dm9pZCAwJiZhd2FpdCB0aGlzLmZuKHRoaXMsdGhpcy5vcHRpb25zLmNvbnRleHQpfWNhdGNoKHQpe2lmKGttKHRoaXMub3B0aW9ucy5jYXRjaCkpdHJ5e3RoaXMub3B0aW9ucy5jYXRjaCh0LHRoaXMpfWNhdGNoe319ZWxzZSB0aGlzLmZuIT09dm9pZCAwJiZhd2FpdCB0aGlzLmZuKHRoaXMsdGhpcy5vcHRpb25zLmNvbnRleHQpfWZpbmFsbHl7dGhpcy5fc3RhdGVzLnByZXZpb3VzUnVuPW5ldyBtaShlLHRoaXMuZ2V0VHooKSksdGhpcy5fc3RhdGVzLmJsb2NraW5nPSExfX1hc3luYyB0cmlnZ2VyKCl7YXdhaXQgdGhpcy5fdHJpZ2dlcigpfXJ1bnNMZWZ0KCl7cmV0dXJuIHRoaXMuX3N0YXRlcy5tYXhSdW5zfV9jaGVja1RyaWdnZXIoZSl7bGV0IHQ9bmV3IERhdGUscj0hdGhpcy5fc3RhdGVzLnBhdXNlZCYmdC5nZXRUaW1lKCk+PWUuZ2V0VGltZSgpLGk9dGhpcy5fc3RhdGVzLmJsb2NraW5nJiZ0aGlzLm9wdGlvbnMucHJvdGVjdDtyJiYhaT8odGhpcy5fc3RhdGVzLm1heFJ1bnMhPT12b2lkIDAmJnRoaXMuX3N0YXRlcy5tYXhSdW5zLS0sdGhpcy5fdHJpZ2dlcigpKTpyJiZpJiZrbSh0aGlzLm9wdGlvbnMucHJvdGVjdCkmJnNldFRpbWVvdXQoKCk9PnRoaXMub3B0aW9ucy5wcm90ZWN0KHRoaXMpLDApLHRoaXMuc2NoZWR1bGUoKX1fbmV4dChlKXtsZXQgdD0hIShlfHx0aGlzLl9zdGF0ZXMuY3VycmVudFJ1bikscj0hMTshZSYmdGhpcy5vcHRpb25zLnN0YXJ0QXQmJnRoaXMub3B0aW9ucy5pbnRlcnZhbCYmKFtlLHRdPXRoaXMuX2NhbGN1bGF0ZVByZXZpb3VzUnVuKGUsdCkscj0hZSksZT1uZXcgbWkoZSx0aGlzLmdldFR6KCkpLHRoaXMub3B0aW9ucy5zdGFydEF0JiZlJiZlLmdldFRpbWUoKTx0aGlzLm9wdGlvbnMuc3RhcnRBdC5nZXRUaW1lKCkmJihlPXRoaXMub3B0aW9ucy5zdGFydEF0KTtsZXQgaT10aGlzLl9zdGF0ZXMub25jZXx8bmV3IG1pKGUsdGhpcy5nZXRUeigpKTtyZXR1cm4hciYmaSE9PXRoaXMuX3N0YXRlcy5vbmNlJiYoaT1pLmluY3JlbWVudCh0aGlzLl9zdGF0ZXMucGF0dGVybix0aGlzLm9wdGlvbnMsdCkpLHRoaXMuX3N0YXRlcy5vbmNlJiZ0aGlzLl9zdGF0ZXMub25jZS5nZXRUaW1lKCk8PWUuZ2V0VGltZSgpfHxpPT09bnVsbHx8dGhpcy5fc3RhdGVzLm1heFJ1bnMhPT12b2lkIDAmJnRoaXMuX3N0YXRlcy5tYXhSdW5zPD0wfHx0aGlzLl9zdGF0ZXMua2lsbHx8dGhpcy5vcHRpb25zLnN0b3BBdCYmaS5nZXRUaW1lKCk+PXRoaXMub3B0aW9ucy5zdG9wQXQuZ2V0VGltZSgpP251bGw6aX1fcHJldmlvdXMoZSl7bGV0IHQ9bmV3IG1pKGUsdGhpcy5nZXRUeigpKTt0aGlzLm9wdGlvbnMuc3RvcEF0JiZ0LmdldFRpbWUoKT50aGlzLm9wdGlvbnMuc3RvcEF0LmdldFRpbWUoKSYmKHQ9dGhpcy5vcHRpb25zLnN0b3BBdCk7bGV0IHI9bmV3IG1pKHQsdGhpcy5nZXRUeigpKTtyZXR1cm4gdGhpcy5fc3RhdGVzLm9uY2U/dGhpcy5fc3RhdGVzLm9uY2UuZ2V0VGltZSgpPHQuZ2V0VGltZSgpP3RoaXMuX3N0YXRlcy5vbmNlOm51bGw6KHI9ci5kZWNyZW1lbnQodGhpcy5fc3RhdGVzLnBhdHRlcm4sdGhpcy5vcHRpb25zKSxyPT09bnVsbHx8dGhpcy5vcHRpb25zLnN0YXJ0QXQmJnIuZ2V0VGltZSgpPHRoaXMub3B0aW9ucy5zdGFydEF0LmdldFRpbWUoKT9udWxsOnIpfV9jYWxjdWxhdGVQcmV2aW91c1J1bihlLHQpe2xldCByPW5ldyBtaSh2b2lkIDAsdGhpcy5nZXRUeigpKSxpPWU7aWYodGhpcy5vcHRpb25zLnN0YXJ0QXQuZ2V0VGltZSgpPD1yLmdldFRpbWUoKSl7aT10aGlzLm9wdGlvbnMuc3RhcnRBdDtsZXQgYT1pLmdldFRpbWUoKSt0aGlzLm9wdGlvbnMuaW50ZXJ2YWwqMWUzO2Zvcig7YTw9ci5nZXRUaW1lKCk7KWk9bmV3IG1pKGksdGhpcy5nZXRUeigpKS5pbmNyZW1lbnQodGhpcy5fc3RhdGVzLnBhdHRlcm4sdGhpcy5vcHRpb25zLCEwKSxhPWkuZ2V0VGltZSgpK3RoaXMub3B0aW9ucy5pbnRlcnZhbCoxZTM7dD0hMH1yZXR1cm4gaT09PW51bGwmJihpPXZvaWQgMCksW2ksdF19fX0pO3ZhciB3eix6bSxXQXIsdTRpLF9zLE16LHdhLFJuLHM4LHlRLEYwLGw4LGt6LFN6LHp6LEN6LF82LGM4LHl6LG1JZSx3USxNUSxnSWUsa1EsUnQ9cCgoKT0+e3d6PTcsem09MzY1LjI0MjUsV0FyPU1hdGgucG93KDEwLDgpKjI0KjYwKjYwKjFlMyx1NGk9LVdBcixfcz02MDQ4ZTUsTXo9ODY0ZTUsd2E9NmU0LFJuPTM2ZTUsczg9MWUzLHlRPTUyNTYwMCxGMD00MzIwMCxsOD0xNDQwLGt6PTYwLFN6PTMseno9MTIsQ3o9NCxfNj0zNjAwLGM4PTYwLHl6PV82KjI0LG1JZT15eio3LHdRPXl6KjM2NS4yNDI1LE1RPXdRLzEyLGdJZT1NUSozLGtRPVN5bWJvbC5mb3IoImNvbnN0cnVjdERhdGVGcm9tIil9KTtmdW5jdGlvbiBOZShlLHQpe3JldHVybiB0eXBlb2YgZT09ImZ1bmN0aW9uIj9lKHQpOmUmJnR5cGVvZiBlPT0ib2JqZWN0IiYma1EgaW4gZT9lW2tRXSh0KTplIGluc3RhbmNlb2YgRGF0ZT9uZXcgZS5jb25zdHJ1Y3Rvcih0KTpuZXcgRGF0ZSh0KX12YXIgZjRpLGd0PXAoKCk9PntSdCgpO2Y0aT1OZX0pO2Z1bmN0aW9uIGNlKGUsdCl7cmV0dXJuIE5lKHR8fGUsZSl9dmFyIGI0aSxSZT1wKCgpPT57Z3QoKTtiNGk9Y2V9KTtmdW5jdGlvbiBnaShlLHQscil7bGV0IGk9Y2UoZSxyPy5pbik7cmV0dXJuIGlzTmFOKHQpP05lKHI/LmlufHxlLE5hTik6KHQmJmkuc2V0RGF0ZShpLmdldERhdGUoKSt0KSxpKX12YXIgdzRpLExzPXAoKCk9PntndCgpO1JlKCk7dzRpPWdpfSk7ZnVuY3Rpb24gQXMoZSx0LHIpe2xldCBpPWNlKGUscj8uaW4pO2lmKGlzTmFOKHQpKXJldHVybiBOZShyPy5pbnx8ZSxOYU4pO2lmKCF0KXJldHVybiBpO2xldCBhPWkuZ2V0RGF0ZSgpLG49TmUocj8uaW58fGUsaS5nZXRUaW1lKCkpO24uc2V0TW9udGgoaS5nZXRNb250aCgpK3QrMSwwKTtsZXQgbz1uLmdldERhdGUoKTtyZXR1cm4gYT49bz9uOihpLnNldEZ1bGxZZWFyKG4uZ2V0RnVsbFllYXIoKSxuLmdldE1vbnRoKCksYSksaSl9dmFyIHo0aSxkOD1wKCgpPT57Z3QoKTtSZSgpO3o0aT1Bc30pO2Z1bmN0aW9uIE8wKGUsdCxyKXtsZXR7eWVhcnM6aT0wLG1vbnRoczphPTAsd2Vla3M6bj0wLGRheXM6bz0wLGhvdXJzOnM9MCxtaW51dGVzOmw9MCxzZWNvbmRzOmM9MH09dCx1PWNlKGUscj8uaW4pLGQ9YXx8aT9Bcyh1LGEraSoxMik6dSxoPW98fG4/Z2koZCxvK24qNyk6ZCxmPWwrcyo2MCx2PShjK2YqNjApKjFlMztyZXR1cm4gTmUocj8uaW58fGUsK2grdil9dmFyIEQ0aSxTUT1wKCgpPT57THMoKTtkOCgpO2d0KCk7UmUoKTtENGk9TzB9KTtmdW5jdGlvbiBUeihlLHQpe3JldHVybiBjZShlLHQ/LmluKS5nZXREYXkoKT09PTZ9dmFyIEk0aSx6UT1wKCgpPT57UmUoKTtJNGk9VHp9KTtmdW5jdGlvbiBfeihlLHQpe3JldHVybiBjZShlLHQ/LmluKS5nZXREYXkoKT09PTB9dmFyIEY0aSxDUT1wKCgpPT57UmUoKTtGNGk9X3p9KTtmdW5jdGlvbiBEcyhlLHQpe2xldCByPWNlKGUsdD8uaW4pLmdldERheSgpO3JldHVybiByPT09MHx8cj09PTZ9dmFyIEI0aSxDbT1wKCgpPT57UmUoKTtCNGk9RHN9KTtmdW5jdGlvbiBMeihlLHQscil7bGV0IGk9Y2UoZSxyPy5pbiksYT1EcyhpLHIpO2lmKGlzTmFOKHQpKXJldHVybiBOZShyPy5pbixOYU4pO2xldCBuPWkuZ2V0SG91cnMoKSxvPXQ8MD8tMToxLHM9TWF0aC50cnVuYyh0LzUpO2kuc2V0RGF0ZShpLmdldERhdGUoKStzKjcpO2xldCBsPU1hdGguYWJzKHQlNSk7Zm9yKDtsPjA7KWkuc2V0RGF0ZShpLmdldERhdGUoKStvKSxEcyhpLHIpfHwobC09MSk7cmV0dXJuIGEmJkRzKGkscikmJnQhPT0wJiYoVHooaSxyKSYmaS5zZXREYXRlKGkuZ2V0RGF0ZSgpKyhvPDA/MjotMSkpLF96KGkscikmJmkuc2V0RGF0ZShpLmdldERhdGUoKSsobzwwPzE6LTIpKSksaS5zZXRIb3VycyhuKSxpfXZhciBHNGksVFE9cCgoKT0+e2d0KCk7elEoKTtDUSgpO0NtKCk7UmUoKTtHNGk9THp9KTtmdW5jdGlvbiBSMChlLHQscil7cmV0dXJuIE5lKHI/LmlufHxlLCtjZShlKSt0KX12YXIgUTRpLFRtPXAoKCk9PntndCgpO1JlKCk7UTRpPVIwfSk7ZnVuY3Rpb24gQXooZSx0LHIpe3JldHVybiBSMChlLHQqUm4scil9dmFyIHQzaSxfUT1wKCgpPT57VG0oKTtSdCgpO3QzaT1Ben0pO2Z1bmN0aW9uIEVyKCl7cmV0dXJuIGJJZX1mdW5jdGlvbiB2SWUoZSl7YkllPWV9dmFyIGJJZSxNYT1wKCgpPT57YkllPXt9fSk7ZnVuY3Rpb24gZTEoZSx0KXtsZXQgcj1FcigpLGk9dD8ud2Vla1N0YXJ0c09uPz90Py5sb2NhbGU/Lm9wdGlvbnM/LndlZWtTdGFydHNPbj8/ci53ZWVrU3RhcnRzT24/P3IubG9jYWxlPy5vcHRpb25zPy53ZWVrU3RhcnRzT24/PzAsYT1jZShlLHQ/LmluKSxuPWEuZ2V0RGF5KCksbz0objxpPzc6MCkrbi1pO3JldHVybiBhLnNldERhdGUoYS5nZXREYXRlKCktbyksYS5zZXRIb3VycygwLDAsMCwwKSxhfXZhciBvM2ksZjI9cCgoKT0+e01hKCk7UmUoKTtvM2k9ZTF9KTtmdW5jdGlvbiByaShlLHQpe3JldHVybiBlMShlLHsuLi50LHdlZWtTdGFydHNPbjoxfSl9dmFyIGMzaSxFcz1wKCgpPT57ZjIoKTtjM2k9cml9KTtmdW5jdGlvbiBHYShlLHQpe2xldCByPWNlKGUsdD8uaW4pLGk9ci5nZXRGdWxsWWVhcigpLGE9TmUociwwKTthLnNldEZ1bGxZZWFyKGkrMSwwLDQpLGEuc2V0SG91cnMoMCwwLDAsMCk7bGV0IG49cmkoYSksbz1OZShyLDApO28uc2V0RnVsbFllYXIoaSwwLDQpLG8uc2V0SG91cnMoMCwwLDAsMCk7bGV0IHM9cmkobyk7cmV0dXJuIHIuZ2V0VGltZSgpPj1uLmdldFRpbWUoKT9pKzE6ci5nZXRUaW1lKCk+PXMuZ2V0VGltZSgpP2k6aS0xfXZhciBmM2ksQjA9cCgoKT0+e2d0KCk7RXMoKTtSZSgpO2YzaT1HYX0pO2Z1bmN0aW9uIEUxKGUpe2xldCB0PWNlKGUpLHI9bmV3IERhdGUoRGF0ZS5VVEModC5nZXRGdWxsWWVhcigpLHQuZ2V0TW9udGgoKSx0LmdldERhdGUoKSx0LmdldEhvdXJzKCksdC5nZXRNaW51dGVzKCksdC5nZXRTZWNvbmRzKCksdC5nZXRNaWxsaXNlY29uZHMoKSkpO3JldHVybiByLnNldFVUQ0Z1bGxZZWFyKHQuZ2V0RnVsbFllYXIoKSksK2UtK3J9dmFyIGpsPXAoKCk9PntSZSgpfSk7ZnVuY3Rpb24gdXQoZSwuLi50KXtsZXQgcj1OZS5iaW5kKG51bGwsZXx8dC5maW5kKGk9PnR5cGVvZiBpPT0ib2JqZWN0IikpO3JldHVybiB0Lm1hcChyKX12YXIganI9cCgoKT0+e2d0KCl9KTtmdW5jdGlvbiAkcyhlLHQpe2xldCByPWNlKGUsdD8uaW4pO3JldHVybiByLnNldEhvdXJzKDAsMCwwLDApLHJ9dmFyIHczaSxfbT1wKCgpPT57UmUoKTt3M2k9JHN9KTtmdW5jdGlvbiBJaShlLHQscil7bGV0W2ksYV09dXQocj8uaW4sZSx0KSxuPSRzKGkpLG89JHMoYSkscz0rbi1FMShuKSxsPStvLUUxKG8pO3JldHVybiBNYXRoLnJvdW5kKChzLWwpL016KX12YXIgVDNpLFZsPXAoKCk9PntqbCgpO2pyKCk7UnQoKTtfbSgpO1QzaT1JaX0pO2Z1bmN0aW9uIEJuKGUsdCl7bGV0IHI9R2EoZSx0KSxpPU5lKHQ/LmlufHxlLDApO3JldHVybiBpLnNldEZ1bGxZZWFyKHIsMCw0KSxpLnNldEhvdXJzKDAsMCwwLDApLHJpKGkpfXZhciBFM2ksdTg9cCgoKT0+e2d0KCk7QjAoKTtFcygpO0UzaT1Cbn0pO2Z1bmN0aW9uIER6KGUsdCxyKXtsZXQgaT1jZShlLHI/LmluKSxhPUlpKGksQm4oaSxyKSksbj1OZShyPy5pbnx8ZSwwKTtyZXR1cm4gbi5zZXRGdWxsWWVhcih0LDAsNCksbi5zZXRIb3VycygwLDAsMCwwKSxpPUJuKG4pLGkuc2V0RGF0ZShpLmdldERhdGUoKSthKSxpfXZhciBPM2ksTFE9cCgoKT0+e2d0KCk7VmwoKTt1OCgpO1JlKCk7TzNpPUR6fSk7ZnVuY3Rpb24gRXooZSx0LHIpe3JldHVybiBEeihlLEdhKGUscikrdCxyKX12YXIgcTNpLEFRPXAoKCk9PntCMCgpO0xRKCk7cTNpPUV6fSk7ZnVuY3Rpb24gcDgoZSx0LHIpe2xldCBpPWNlKGUscj8uaW4pO3JldHVybiBpLnNldFRpbWUoaS5nZXRUaW1lKCkrdCp3YSksaX12YXIgVzNpLCR6PXAoKCk9PntSdCgpO1JlKCk7VzNpPXA4fSk7ZnVuY3Rpb24gaDgoZSx0LHIpe3JldHVybiBBcyhlLHQqMyxyKX12YXIgWjNpLEl6PXAoKCk9PntkOCgpO1ozaT1oOH0pO2Z1bmN0aW9uIFB6KGUsdCxyKXtyZXR1cm4gUjAoZSx0KjFlMyxyKX12YXIgSjNpLERRPXAoKCk9PntUbSgpO0ozaT1Qen0pO2Z1bmN0aW9uIEgwKGUsdCxyKXtyZXR1cm4gZ2koZSx0Kjcscil9dmFyIHQ2aSxMbT1wKCgpPT57THMoKTt0Nmk9SDB9KTtmdW5jdGlvbiBOeihlLHQscil7cmV0dXJuIEFzKGUsdCoxMixyKX12YXIgYTZpLEVRPXAoKCk9PntkOCgpO2E2aT1Oen0pO2Z1bmN0aW9uIHhJZShlLHQscil7bGV0W2ksYV09WytjZShlLnN0YXJ0LHI/LmluKSwrY2UoZS5lbmQscj8uaW4pXS5zb3J0KChzLGwpPT5zLWwpLFtuLG9dPVsrY2UodC5zdGFydCxyPy5pbiksK2NlKHQuZW5kLHI/LmluKV0uc29ydCgocyxsKT0+cy1sKTtyZXR1cm4gcj8uaW5jbHVzaXZlP2k8PW8mJm48PWE6aTxvJiZuPGF9dmFyIHM2aSx5SWU9cCgoKT0+e1JlKCk7czZpPXhJZX0pO2Z1bmN0aW9uIEZ6KGUsdCl7bGV0IHIsaT10Py5pbjtyZXR1cm4gZS5mb3JFYWNoKGE9PnshaSYmdHlwZW9mIGE9PSJvYmplY3QiJiYoaT1OZS5iaW5kKG51bGwsYSkpO2xldCBuPWNlKGEsaSk7KCFyfHxyPG58fGlzTmFOKCtuKSkmJihyPW4pfSksTmUoaSxyfHxOYU4pfXZhciB1NmksJFE9cCgoKT0+e2d0KCk7UmUoKTt1Nmk9Rnp9KTtmdW5jdGlvbiBPeihlLHQpe2xldCByLGk9dD8uaW47cmV0dXJuIGUuZm9yRWFjaChhPT57IWkmJnR5cGVvZiBhPT0ib2JqZWN0IiYmKGk9TmUuYmluZChudWxsLGEpKTtsZXQgbj1jZShhLGkpOyghcnx8cj5ufHxpc05hTigrbikpJiYocj1uKX0pLE5lKGkscnx8TmFOKX12YXIgbTZpLElRPXAoKCk9PntndCgpO1JlKCk7bTZpPU96fSk7ZnVuY3Rpb24gd0llKGUsdCxyKXtsZXRbaSxhLG5dPXV0KHI/LmluLGUsdC5zdGFydCx0LmVuZCk7cmV0dXJuIE96KFtGeihbaSxhXSxyKSxuXSxyKX12YXIgeTZpLE1JZT1wKCgpPT57anIoKTskUSgpO0lRKCk7eTZpPXdJZX0pO2Z1bmN0aW9uIFJ6KGUsdCl7bGV0IHI9K2NlKGUpO2lmKGlzTmFOKHIpKXJldHVybiBOYU47bGV0IGksYTtyZXR1cm4gdC5mb3JFYWNoKChuLG8pPT57bGV0IHM9Y2Uobik7aWYoaXNOYU4oK3MpKXtpPU5hTixhPU5hTjtyZXR1cm59bGV0IGw9TWF0aC5hYnMoci0rcyk7KGk9PW51bGx8fGw8YSkmJihpPW8sYT1sKX0pLGl9dmFyIGs2aSxQUT1wKCgpPT57UmUoKTtrNmk9Unp9KTtmdW5jdGlvbiBrSWUoZSx0LHIpe2xldFtpLC4uLmFdPXV0KHI/LmluLGUsLi4udCksbj1SeihpLGEpO2lmKHR5cGVvZiBuPT0ibnVtYmVyIiYmaXNOYU4obikpcmV0dXJuIE5lKGksTmFOKTtpZihuIT09dm9pZCAwKXJldHVybiBhW25dfXZhciBfNmksU0llPXAoKCk9PntqcigpO1BRKCk7Z3QoKTtfNmk9a0llfSk7ZnVuY3Rpb24ga2EoZSx0KXtsZXQgcj0rY2UoZSktK2NlKHQpO3JldHVybiByPDA/LTE6cj4wPzE6cn12YXIgRDZpLEw2PXAoKCk9PntSZSgpO0Q2aT1rYX0pO2Z1bmN0aW9uIHpJZShlLHQpe2xldCByPStjZShlKS0rY2UodCk7cmV0dXJuIHI+MD8tMTpyPDA/MTpyfXZhciBJNmksQ0llPXAoKCk9PntSZSgpO0k2aT16SWV9KTtmdW5jdGlvbiBRdChlKXtyZXR1cm4gTmUoZSxEYXRlLm5vdygpKX12YXIgRjZpLGJpPXAoKCk9PntndCgpO0Y2aT1RdH0pO2Z1bmN0aW9uIFRJZShlKXtsZXQgdD1NYXRoLnRydW5jKGUvNyk7cmV0dXJuIHQ9PT0wPzA6dH12YXIgQjZpLF9JZT1wKCgpPT57UnQoKTtCNmk9VEllfSk7ZnVuY3Rpb24gSXMoZSx0LHIpe2xldFtpLGFdPXV0KHI/LmluLGUsdCk7cmV0dXJuKyRzKGkpPT0rJHMoYSl9dmFyIFY2aSxmOD1wKCgpPT57anIoKTtfbSgpO1Y2aT1Jc30pO2Z1bmN0aW9uIEJ6KGUpe3JldHVybiBlIGluc3RhbmNlb2YgRGF0ZXx8dHlwZW9mIGU9PSJvYmplY3QiJiZPYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwoZSk9PT0iW29iamVjdCBEYXRlXSJ9dmFyIFc2aSxOUT1wKCgpPT57VzZpPUJ6fSk7ZnVuY3Rpb24gWGkoZSl7cmV0dXJuISghQnooZSkmJnR5cGVvZiBlIT0ibnVtYmVyInx8aXNOYU4oK2NlKGUpKSl9dmFyIFg2aSxVbD1wKCgpPT57TlEoKTtSZSgpO1g2aT1YaX0pO2Z1bmN0aW9uIExJZShlLHQscil7bGV0W2ksYV09dXQocj8uaW4sZSx0KTtpZighWGkoaSl8fCFYaShhKSlyZXR1cm4gTmFOO2xldCBuPUlpKGksYSksbz1uPDA/LTE6MSxzPU1hdGgudHJ1bmMobi83KSxsPXMqNSxjPWdpKGEscyo3KTtmb3IoOyFJcyhpLGMpOylsKz1EcyhjLHIpPzA6byxjPWdpKGMsbyk7cmV0dXJuIGw9PT0wPzA6bH12YXIgYWRpLEFJZT1wKCgpPT57anIoKTtMcygpO1ZsKCk7ZjgoKTtVbCgpO0NtKCk7YWRpPUxJZX0pO2Z1bmN0aW9uIEh6KGUsdCxyKXtsZXRbaSxhXT11dChyPy5pbixlLHQpO3JldHVybiBHYShpLHIpLUdhKGEscil9dmFyIGxkaSxGUT1wKCgpPT57anIoKTtCMCgpO2xkaT1Ien0pO2Z1bmN0aW9uIERJZShlLHQscil7bGV0W2ksYV09dXQocj8uaW4sZSx0KSxuPXJpKGkpLG89cmkoYSkscz0rbi1FMShuKSxsPStvLUUxKG8pO3JldHVybiBNYXRoLnJvdW5kKChzLWwpL19zKX12YXIgZmRpLEVJZT1wKCgpPT57amwoKTtqcigpO1J0KCk7RXMoKTtmZGk9REllfSk7ZnVuY3Rpb24gQTYoZSx0LHIpe2xldFtpLGFdPXV0KHI/LmluLGUsdCksbj1pLmdldEZ1bGxZZWFyKCktYS5nZXRGdWxsWWVhcigpLG89aS5nZXRNb250aCgpLWEuZ2V0TW9udGgoKTtyZXR1cm4gbioxMitvfXZhciBiZGkscXo9cCgoKT0+e2pyKCk7YmRpPUE2fSk7ZnVuY3Rpb24gQW0oZSx0KXtsZXQgcj1jZShlLHQ/LmluKTtyZXR1cm4gTWF0aC50cnVuYyhyLmdldE1vbnRoKCkvMykrMX12YXIgeWRpLE9RPXAoKCk9PntSZSgpO3lkaT1BbX0pO2Z1bmN0aW9uIG04KGUsdCxyKXtsZXRbaSxhXT11dChyPy5pbixlLHQpLG49aS5nZXRGdWxsWWVhcigpLWEuZ2V0RnVsbFllYXIoKSxvPUFtKGkpLUFtKGEpO3JldHVybiBuKjQrb312YXIgU2RpLFJRPXAoKCk9PntqcigpO09RKCk7U2RpPW04fSk7ZnVuY3Rpb24gRDYoZSx0LHIpe2xldFtpLGFdPXV0KHI/LmluLGUsdCksbj1lMShpLHIpLG89ZTEoYSxyKSxzPStuLUUxKG4pLGw9K28tRTEobyk7cmV0dXJuIE1hdGgucm91bmQoKHMtbCkvX3MpfXZhciBBZGksano9cCgoKT0+e2psKCk7anIoKTtSdCgpO2YyKCk7QWRpPUQ2fSk7ZnVuY3Rpb24gcTAoZSx0LHIpe2xldFtpLGFdPXV0KHI/LmluLGUsdCk7cmV0dXJuIGkuZ2V0RnVsbFllYXIoKS1hLmdldEZ1bGxZZWFyKCl9dmFyICRkaSxWej1wKCgpPT57anIoKTskZGk9cTB9KTtmdW5jdGlvbiBnOChlLHQscil7bGV0W2ksYV09dXQocj8uaW4sZSx0KSxuPSRJZShpLGEpLG89TWF0aC5hYnMoSWkoaSxhKSk7aS5zZXREYXRlKGkuZ2V0RGF0ZSgpLW4qbyk7bGV0IHM9KygkSWUoaSxhKT09PS1uKSxsPW4qKG8tcyk7cmV0dXJuIGw9PT0wPzA6bH1mdW5jdGlvbiAkSWUoZSx0KXtsZXQgcj1lLmdldEZ1bGxZZWFyKCktdC5nZXRGdWxsWWVhcigpfHxlLmdldE1vbnRoKCktdC5nZXRNb250aCgpfHxlLmdldERhdGUoKS10LmdldERhdGUoKXx8ZS5nZXRIb3VycygpLXQuZ2V0SG91cnMoKXx8ZS5nZXRNaW51dGVzKCktdC5nZXRNaW51dGVzKCl8fGUuZ2V0U2Vjb25kcygpLXQuZ2V0U2Vjb25kcygpfHxlLmdldE1pbGxpc2Vjb25kcygpLXQuZ2V0TWlsbGlzZWNvbmRzKCk7cmV0dXJuIHI8MD8tMTpyPjA/MTpyfXZhciBGZGksVXo9cCgoKT0+e2pyKCk7VmwoKTtGZGk9Zzh9KTtmdW5jdGlvbiBTYShlKXtyZXR1cm4gdD0+e2xldCBpPShlP01hdGhbZV06TWF0aC50cnVuYykodCk7cmV0dXJuIGk9PT0wPzA6aX19dmFyIFdsPXAoKCk9Pnt9KTtmdW5jdGlvbiBFNihlLHQscil7bGV0W2ksYV09dXQocj8uaW4sZSx0KSxuPSgraS0rYSkvUm47cmV0dXJuIFNhKHI/LnJvdW5kaW5nTWV0aG9kKShuKX12YXIgamRpLFd6PXAoKCk9PntXbCgpO2pyKCk7UnQoKTtqZGk9RTZ9KTtmdW5jdGlvbiBHeihlLHQscil7cmV0dXJuIEV6KGUsLXQscil9dmFyIFdkaSxCUT1wKCgpPT57QVEoKTtXZGk9R3p9KTtmdW5jdGlvbiBJSWUoZSx0LHIpe2xldFtpLGFdPXV0KHI/LmluLGUsdCksbj1rYShpLGEpLG89TWF0aC5hYnMoSHooaSxhLHIpKSxzPUd6KGksbipvLHIpLGw9KyhrYShzLGEpPT09LW4pLGM9biooby1sKTtyZXR1cm4gYz09PTA/MDpjfXZhciBKZGksUEllPXAoKCk9PntqcigpO0w2KCk7RlEoKTtCUSgpO0pkaT1JSWV9KTtmdW5jdGlvbiBiOChlLHQpe3JldHVybitjZShlKS0rY2UodCl9dmFyIHQ1aSxZej1wKCgpPT57UmUoKTt0NWk9Yjh9KTtmdW5jdGlvbiAkNihlLHQscil7bGV0IGk9YjgoZSx0KS93YTtyZXR1cm4gU2Eocj8ucm91bmRpbmdNZXRob2QpKGkpfXZhciBvNWksWno9cCgoKT0+e1dsKCk7UnQoKTtZeigpO281aT0kNn0pO2Z1bmN0aW9uIHY4KGUsdCl7bGV0IHI9Y2UoZSx0Py5pbik7cmV0dXJuIHIuc2V0SG91cnMoMjMsNTksNTksOTk5KSxyfXZhciBjNWksWHo9cCgoKT0+e1JlKCk7YzVpPXY4fSk7ZnVuY3Rpb24geDgoZSx0KXtsZXQgcj1jZShlLHQ/LmluKSxpPXIuZ2V0TW9udGgoKTtyZXR1cm4gci5zZXRGdWxsWWVhcihyLmdldEZ1bGxZZWFyKCksaSsxLDApLHIuc2V0SG91cnMoMjMsNTksNTksOTk5KSxyfXZhciBwNWksUXo9cCgoKT0+e1JlKCk7cDVpPXg4fSk7ZnVuY3Rpb24gSnooZSx0KXtsZXQgcj1jZShlLHQ/LmluKTtyZXR1cm4rdjgocix0KT09K3g4KHIsdCl9dmFyIGI1aSxIUT1wKCgpPT57WHooKTtReigpO1JlKCk7YjVpPUp6fSk7ZnVuY3Rpb24gajAoZSx0LHIpe2xldFtpLGEsbl09dXQocj8uaW4sZSxlLHQpLG89a2EoYSxuKSxzPU1hdGguYWJzKEE2KGEsbikpO2lmKHM8MSlyZXR1cm4gMDthLmdldE1vbnRoKCk9PT0xJiZhLmdldERhdGUoKT4yNyYmYS5zZXREYXRlKDMwKSxhLnNldE1vbnRoKGEuZ2V0TW9udGgoKS1vKnMpO2xldCBsPWthKGEsbik9PT0tbztKeihpKSYmcz09PTEmJmthKGksbik9PT0xJiYobD0hMSk7bGV0IGM9byoocy0rbCk7cmV0dXJuIGM9PT0wPzA6Y312YXIgazVpLERtPXAoKCk9PntqcigpO0w2KCk7cXooKTtIUSgpO2s1aT1qMH0pO2Z1bmN0aW9uIE5JZShlLHQscil7bGV0IGk9ajAoZSx0LHIpLzM7cmV0dXJuIFNhKHI/LnJvdW5kaW5nTWV0aG9kKShpKX12YXIgVDVpLEZJZT1wKCgpPT57V2woKTtEbSgpO1Q1aT1OSWV9KTtmdW5jdGlvbiBQcyhlLHQscil7bGV0IGk9YjgoZSx0KS8xZTM7cmV0dXJuIFNhKHI/LnJvdW5kaW5nTWV0aG9kKShpKX12YXIgRDVpLEVtPXAoKCk9PntXbCgpO1l6KCk7RDVpPVBzfSk7ZnVuY3Rpb24gT0llKGUsdCxyKXtsZXQgaT1nOChlLHQscikvNztyZXR1cm4gU2Eocj8ucm91bmRpbmdNZXRob2QpKGkpfXZhciBQNWksUkllPXAoKCk9PntXbCgpO1V6KCk7UDVpPU9JZX0pO2Z1bmN0aW9uIEt6KGUsdCxyKXtsZXRbaSxhXT11dChyPy5pbixlLHQpLG49a2EoaSxhKSxvPU1hdGguYWJzKHEwKGksYSkpO2kuc2V0RnVsbFllYXIoMTU4NCksYS5zZXRGdWxsWWVhcigxNTg0KTtsZXQgcz1rYShpLGEpPT09LW4sbD1uKihvLStzKTtyZXR1cm4gbD09PTA/MDpsfXZhciBCNWkscVE9cCgoKT0+e2pyKCk7TDYoKTtWeigpO0I1aT1Len0pO2Z1bmN0aW9uIFBpKGUsdCl7bGV0W3IsaV09dXQoZSx0LnN0YXJ0LHQuZW5kKTtyZXR1cm57c3RhcnQ6cixlbmQ6aX19dmFyIE5zPXAoKCk9PntqcigpfSk7ZnVuY3Rpb24gZUMoZSx0KXtsZXR7c3RhcnQ6cixlbmQ6aX09UGkodD8uaW4sZSksYT0rcj4raSxuPWE/K3I6K2ksbz1hP2k6cjtvLnNldEhvdXJzKDAsMCwwLDApO2xldCBzPXQ/LnN0ZXA/PzE7aWYoIXMpcmV0dXJuW107czwwJiYocz0tcyxhPSFhKTtsZXQgbD1bXTtmb3IoOytvPD1uOylsLnB1c2goTmUocixvKSksby5zZXREYXRlKG8uZ2V0RGF0ZSgpK3MpLG8uc2V0SG91cnMoMCwwLDAsMCk7cmV0dXJuIGE/bC5yZXZlcnNlKCk6bH12YXIgVzVpLGpRPXAoKCk9PntOcygpO2d0KCk7VzVpPWVDfSk7ZnVuY3Rpb24gQkllKGUsdCl7bGV0e3N0YXJ0OnIsZW5kOml9PVBpKHQ/LmluLGUpLGE9K3I+K2ksbj1hPytyOitpLG89YT9pOnI7by5zZXRNaW51dGVzKDAsMCwwKTtsZXQgcz10Py5zdGVwPz8xO2lmKCFzKXJldHVybltdO3M8MCYmKHM9LXMsYT0hYSk7bGV0IGw9W107Zm9yKDsrbzw9bjspbC5wdXNoKE5lKHIsbykpLG8uc2V0SG91cnMoby5nZXRIb3VycygpK3MpO3JldHVybiBhP2wucmV2ZXJzZSgpOmx9dmFyIFg1aSxISWU9cCgoKT0+e05zKCk7Z3QoKTtYNWk9QkllfSk7ZnVuY3Rpb24gcUllKGUsdCl7bGV0e3N0YXJ0OnIsZW5kOml9PVBpKHQ/LmluLGUpO3Iuc2V0U2Vjb25kcygwLDApO2xldCBhPStyPitpLG49YT8rcjoraSxvPWE/aTpyLHM9dD8uc3RlcD8/MTtpZighcylyZXR1cm5bXTtzPDAmJihzPS1zLGE9IWEpO2xldCBsPVtdO2Zvcig7K288PW47KWwucHVzaChOZShyLG8pKSxvPXA4KG8scyk7cmV0dXJuIGE/bC5yZXZlcnNlKCk6bH12YXIgdHVpLGpJZT1wKCgpPT57TnMoKTskeigpO2d0KCk7dHVpPXFJZX0pO2Z1bmN0aW9uIFZJZShlLHQpe2xldHtzdGFydDpyLGVuZDppfT1QaSh0Py5pbixlKSxhPStyPitpLG49YT8rcjoraSxvPWE/aTpyO28uc2V0SG91cnMoMCwwLDAsMCksby5zZXREYXRlKDEpO2xldCBzPXQ/LnN0ZXA/PzE7aWYoIXMpcmV0dXJuW107czwwJiYocz0tcyxhPSFhKTtsZXQgbD1bXTtmb3IoOytvPD1uOylsLnB1c2goTmUocixvKSksby5zZXRNb250aChvLmdldE1vbnRoKCkrcyk7cmV0dXJuIGE/bC5yZXZlcnNlKCk6bH12YXIgbnVpLFVJZT1wKCgpPT57TnMoKTtndCgpO251aT1WSWV9KTtmdW5jdGlvbiBGcyhlLHQpe2xldCByPWNlKGUsdD8uaW4pLGk9ci5nZXRNb250aCgpLGE9aS1pJTM7cmV0dXJuIHIuc2V0TW9udGgoYSwxKSxyLnNldEhvdXJzKDAsMCwwLDApLHJ9dmFyIGx1aSx0Qz1wKCgpPT57UmUoKTtsdWk9RnN9KTtmdW5jdGlvbiBXSWUoZSx0KXtsZXR7c3RhcnQ6cixlbmQ6aX09UGkodD8uaW4sZSksYT0rcj4raSxuPWE/K0ZzKHIpOitGcyhpKSxvPWE/RnMoaSk6RnMocikscz10Py5zdGVwPz8xO2lmKCFzKXJldHVybltdO3M8MCYmKHM9LXMsYT0hYSk7bGV0IGw9W107Zm9yKDsrbzw9bjspbC5wdXNoKE5lKHIsbykpLG89aDgobyxzKTtyZXR1cm4gYT9sLnJldmVyc2UoKTpsfXZhciBmdWksR0llPXAoKCk9PntOcygpO0l6KCk7Z3QoKTt0QygpO2Z1aT1XSWV9KTtmdW5jdGlvbiBZSWUoZSx0KXtsZXR7c3RhcnQ6cixlbmQ6aX09UGkodD8uaW4sZSksYT0rcj4raSxuPWE/ZTEoaSx0KTplMShyLHQpLG89YT9lMShyLHQpOmUxKGksdCk7bi5zZXRIb3VycygxNSksby5zZXRIb3VycygxNSk7bGV0IHM9K28uZ2V0VGltZSgpLGw9bixjPXQ/LnN0ZXA/PzE7aWYoIWMpcmV0dXJuW107YzwwJiYoYz0tYyxhPSFhKTtsZXQgdT1bXTtmb3IoOytsPD1zOylsLnNldEhvdXJzKDApLHUucHVzaChOZShyLGwpKSxsPUgwKGwsYyksbC5zZXRIb3VycygxNSk7cmV0dXJuIGE/dS5yZXZlcnNlKCk6dX12YXIgeXVpLFpJZT1wKCgpPT57TnMoKTtMbSgpO2d0KCk7ZjIoKTt5dWk9WUllfSk7ZnVuY3Rpb24geTgoZSx0KXtsZXR7c3RhcnQ6cixlbmQ6aX09UGkodD8uaW4sZSksYT1lQyh7c3RhcnQ6cixlbmQ6aX0sdCksbj1bXSxvPTA7Zm9yKDtvPGEubGVuZ3RoOyl7bGV0IHM9YVtvKytdO0RzKHMpJiZuLnB1c2goTmUocixzKSl9cmV0dXJuIG59dmFyIEN1aSxyQz1wKCgpPT57TnMoKTtndCgpO2pRKCk7Q20oKTtDdWk9eTh9KTtmdW5jdGlvbiBWMChlLHQpe2xldCByPWNlKGUsdD8uaW4pO3JldHVybiByLnNldERhdGUoMSksci5zZXRIb3VycygwLDAsMCwwKSxyfXZhciBMdWksJG09cCgoKT0+e1JlKCk7THVpPVYwfSk7ZnVuY3Rpb24gWEllKGUsdCl7bGV0IHI9VjAoZSx0KSxpPXg4KGUsdCk7cmV0dXJuIHk4KHtzdGFydDpyLGVuZDppfSx0KX12YXIgSXVpLFFJZT1wKCgpPT57ckMoKTtReigpOyRtKCk7SXVpPVhJZX0pO2Z1bmN0aW9uIGlDKGUsdCl7bGV0IHI9Y2UoZSx0Py5pbiksaT1yLmdldEZ1bGxZZWFyKCk7cmV0dXJuIHIuc2V0RnVsbFllYXIoaSsxLDAsMCksci5zZXRIb3VycygyMyw1OSw1OSw5OTkpLHJ9dmFyIEZ1aSxWUT1wKCgpPT57UmUoKTtGdWk9aUN9KTtmdW5jdGlvbiB3OChlLHQpe2xldCByPWNlKGUsdD8uaW4pO3JldHVybiByLnNldEZ1bGxZZWFyKHIuZ2V0RnVsbFllYXIoKSwwLDEpLHIuc2V0SG91cnMoMCwwLDAsMCkscn12YXIgQnVpLGFDPXAoKCk9PntSZSgpO0J1aT13OH0pO2Z1bmN0aW9uIEpJZShlLHQpe2xldCByPXc4KGUsdCksaT1pQyhlLHQpO3JldHVybiB5OCh7c3RhcnQ6cixlbmQ6aX0sdCl9dmFyIFV1aSxLSWU9cCgoKT0+e3JDKCk7VlEoKTthQygpO1V1aT1KSWV9KTtmdW5jdGlvbiBlUGUoZSx0KXtsZXR7c3RhcnQ6cixlbmQ6aX09UGkodD8uaW4sZSksYT0rcj4raSxuPWE/K3I6K2ksbz1hP2k6cjtvLnNldEhvdXJzKDAsMCwwLDApLG8uc2V0TW9udGgoMCwxKTtsZXQgcz10Py5zdGVwPz8xO2lmKCFzKXJldHVybltdO3M8MCYmKHM9LXMsYT0hYSk7bGV0IGw9W107Zm9yKDsrbzw9bjspbC5wdXNoKE5lKHIsbykpLG8uc2V0RnVsbFllYXIoby5nZXRGdWxsWWVhcigpK3MpO3JldHVybiBhP2wucmV2ZXJzZSgpOmx9dmFyIFp1aSx0UGU9cCgoKT0+e05zKCk7Z3QoKTtadWk9ZVBlfSk7ZnVuY3Rpb24gclBlKGUsdCl7bGV0IHI9Y2UoZSx0Py5pbiksaT1yLmdldEZ1bGxZZWFyKCksYT05K01hdGguZmxvb3IoaS8xMCkqMTA7cmV0dXJuIHIuc2V0RnVsbFllYXIoYSwxMSwzMSksci5zZXRIb3VycygyMyw1OSw1OSw5OTkpLHJ9dmFyIEp1aSxpUGU9cCgoKT0+e1JlKCk7SnVpPXJQZX0pO2Z1bmN0aW9uIGFQZShlLHQpe2xldCByPWNlKGUsdD8uaW4pO3JldHVybiByLnNldE1pbnV0ZXMoNTksNTksOTk5KSxyfXZhciB0OGksblBlPXAoKCk9PntSZSgpO3Q4aT1hUGV9KTtmdW5jdGlvbiBuQyhlLHQpe2xldCByPUVyKCksaT10Py53ZWVrU3RhcnRzT24/P3Q/LmxvY2FsZT8ub3B0aW9ucz8ud2Vla1N0YXJ0c09uPz9yLndlZWtTdGFydHNPbj8/ci5sb2NhbGU/Lm9wdGlvbnM/LndlZWtTdGFydHNPbj8/MCxhPWNlKGUsdD8uaW4pLG49YS5nZXREYXkoKSxvPShuPGk/LTc6MCkrNi0obi1pKTtyZXR1cm4gYS5zZXREYXRlKGEuZ2V0RGF0ZSgpK28pLGEuc2V0SG91cnMoMjMsNTksNTksOTk5KSxhfXZhciBuOGksVVE9cCgoKT0+e01hKCk7UmUoKTtuOGk9bkN9KTtmdW5jdGlvbiBvUGUoZSx0KXtyZXR1cm4gbkMoZSx7Li4udCx3ZWVrU3RhcnRzT246MX0pfXZhciBsOGksc1BlPXAoKCk9PntVUSgpO2w4aT1vUGV9KTtmdW5jdGlvbiBsUGUoZSx0KXtsZXQgcj1HYShlLHQpLGk9TmUodD8uaW58fGUsMCk7aS5zZXRGdWxsWWVhcihyKzEsMCw0KSxpLnNldEhvdXJzKDAsMCwwLDApO2xldCBhPXJpKGksdCk7cmV0dXJuIGEuc2V0TWlsbGlzZWNvbmRzKGEuZ2V0TWlsbGlzZWNvbmRzKCktMSksYX12YXIgaDhpLGNQZT1wKCgpPT57Z3QoKTtCMCgpO0VzKCk7aDhpPWxQZX0pO2Z1bmN0aW9uIGRQZShlLHQpe2xldCByPWNlKGUsdD8uaW4pO3JldHVybiByLnNldFNlY29uZHMoNTksOTk5KSxyfXZhciBnOGksdVBlPXAoKCk9PntSZSgpO2c4aT1kUGV9KTtmdW5jdGlvbiBwUGUoZSx0KXtsZXQgcj1jZShlLHQ/LmluKSxpPXIuZ2V0TW9udGgoKSxhPWktaSUzKzM7cmV0dXJuIHIuc2V0TW9udGgoYSwwKSxyLnNldEhvdXJzKDIzLDU5LDU5LDk5OSkscn12YXIgeDhpLGhQZT1wKCgpPT57UmUoKTt4OGk9cFBlfSk7ZnVuY3Rpb24gZlBlKGUsdCl7bGV0IHI9Y2UoZSx0Py5pbik7cmV0dXJuIHIuc2V0TWlsbGlzZWNvbmRzKDk5OSkscn12YXIgTThpLG1QZT1wKCgpPT57UmUoKTtNOGk9ZlBlfSk7ZnVuY3Rpb24gZ1BlKGUpe3JldHVybiB2OChEYXRlLm5vdygpLGUpfXZhciB6OGksYlBlPXAoKCk9PntYeigpO3o4aT1nUGV9KTtmdW5jdGlvbiB2UGUoZSl7bGV0IHQ9UXQoZT8uaW4pLHI9dC5nZXRGdWxsWWVhcigpLGk9dC5nZXRNb250aCgpLGE9dC5nZXREYXRlKCksbj1RdChlPy5pbik7cmV0dXJuIG4uc2V0RnVsbFllYXIocixpLGErMSksbi5zZXRIb3VycygyMyw1OSw1OSw5OTkpLGU/LmluP2UuaW4obik6bn12YXIgXzhpLHhQZT1wKCgpPT57YmkoKTtfOGk9dlBlfSk7ZnVuY3Rpb24geVBlKGUpe2xldCB0PVF0KGU/LmluKSxyPU5lKGU/LmluLDApO3JldHVybiByLnNldEZ1bGxZZWFyKHQuZ2V0RnVsbFllYXIoKSx0LmdldE1vbnRoKCksdC5nZXREYXRlKCktMSksci5zZXRIb3VycygyMyw1OSw1OSw5OTkpLHJ9dmFyIEU4aSx3UGU9cCgoKT0+e2d0KCk7YmkoKTtFOGk9eVBlfSk7dmFyIEdBcixNUGUsa1BlPXAoKCk9PntHQXI9e2xlc3NUaGFuWFNlY29uZHM6e29uZToibGVzcyB0aGFuIGEgc2Vjb25kIixvdGhlcjoibGVzcyB0aGFuIHt7Y291bnR9fSBzZWNvbmRzIn0seFNlY29uZHM6e29uZToiMSBzZWNvbmQiLG90aGVyOiJ7e2NvdW50fX0gc2Vjb25kcyJ9LGhhbGZBTWludXRlOiJoYWxmIGEgbWludXRlIixsZXNzVGhhblhNaW51dGVzOntvbmU6Imxlc3MgdGhhbiBhIG1pbnV0ZSIsb3RoZXI6Imxlc3MgdGhhbiB7e2NvdW50fX0gbWludXRlcyJ9LHhNaW51dGVzOntvbmU6IjEgbWludXRlIixvdGhlcjoie3tjb3VudH19IG1pbnV0ZXMifSxhYm91dFhIb3Vyczp7b25lOiJhYm91dCAxIGhvdXIiLG90aGVyOiJhYm91dCB7e2NvdW50fX0gaG91cnMifSx4SG91cnM6e29uZToiMSBob3VyIixvdGhlcjoie3tjb3VudH19IGhvdXJzIn0seERheXM6e29uZToiMSBkYXkiLG90aGVyOiJ7e2NvdW50fX0gZGF5cyJ9LGFib3V0WFdlZWtzOntvbmU6ImFib3V0IDEgd2VlayIsb3RoZXI6ImFib3V0IHt7Y291bnR9fSB3ZWVrcyJ9LHhXZWVrczp7b25lOiIxIHdlZWsiLG90aGVyOiJ7e2NvdW50fX0gd2Vla3MifSxhYm91dFhNb250aHM6e29uZToiYWJvdXQgMSBtb250aCIsb3RoZXI6ImFib3V0IHt7Y291bnR9fSBtb250aHMifSx4TW9udGhzOntvbmU6IjEgbW9udGgiLG90aGVyOiJ7e2NvdW50fX0gbW9udGhzIn0sYWJvdXRYWWVhcnM6e29uZToiYWJvdXQgMSB5ZWFyIixvdGhlcjoiYWJvdXQge3tjb3VudH19IHllYXJzIn0seFllYXJzOntvbmU6IjEgeWVhciIsb3RoZXI6Int7Y291bnR9fSB5ZWFycyJ9LG92ZXJYWWVhcnM6e29uZToib3ZlciAxIHllYXIiLG90aGVyOiJvdmVyIHt7Y291bnR9fSB5ZWFycyJ9LGFsbW9zdFhZZWFyczp7b25lOiJhbG1vc3QgMSB5ZWFyIixvdGhlcjoiYWxtb3N0IHt7Y291bnR9fSB5ZWFycyJ9fSxNUGU9KGUsdCxyKT0+e2xldCBpLGE9R0FyW2VdO3JldHVybiB0eXBlb2YgYT09InN0cmluZyI/aT1hOnQ9PT0xP2k9YS5vbmU6aT1hLm90aGVyLnJlcGxhY2UoInt7Y291bnR9fSIsdC50b1N0cmluZygpKSxyPy5hZGRTdWZmaXg/ci5jb21wYXJpc29uJiZyLmNvbXBhcmlzb24+MD8iaW4gIitpOmkrIiBhZ28iOml9fSk7ZnVuY3Rpb24gb0MoZSl7cmV0dXJuKHQ9e30pPT57bGV0IHI9dC53aWR0aD9TdHJpbmcodC53aWR0aCk6ZS5kZWZhdWx0V2lkdGg7cmV0dXJuIGUuZm9ybWF0c1tyXXx8ZS5mb3JtYXRzW2UuZGVmYXVsdFdpZHRoXX19dmFyIFNQZT1wKCgpPT57fSk7dmFyIFlBcixaQXIsWEFyLHpQZSxDUGU9cCgoKT0+e1NQZSgpO1lBcj17ZnVsbDoiRUVFRSwgTU1NTSBkbywgeSIsbG9uZzoiTU1NTSBkbywgeSIsbWVkaXVtOiJNTU0gZCwgeSIsc2hvcnQ6Ik1NL2RkL3l5eXkifSxaQXI9e2Z1bGw6Img6bW06c3MgYSB6enp6Iixsb25nOiJoOm1tOnNzIGEgeiIsbWVkaXVtOiJoOm1tOnNzIGEiLHNob3J0OiJoOm1tIGEifSxYQXI9e2Z1bGw6Int7ZGF0ZX19ICdhdCcge3t0aW1lfX0iLGxvbmc6Int7ZGF0ZX19ICdhdCcge3t0aW1lfX0iLG1lZGl1bToie3tkYXRlfX0sIHt7dGltZX19IixzaG9ydDoie3tkYXRlfX0sIHt7dGltZX19In0selBlPXtkYXRlOm9DKHtmb3JtYXRzOllBcixkZWZhdWx0V2lkdGg6ImZ1bGwifSksdGltZTpvQyh7Zm9ybWF0czpaQXIsZGVmYXVsdFdpZHRoOiJmdWxsIn0pLGRhdGVUaW1lOm9DKHtmb3JtYXRzOlhBcixkZWZhdWx0V2lkdGg6ImZ1bGwifSl9fSk7dmFyIFFBcixUUGUsX1BlPXAoKCk9PntRQXI9e2xhc3RXZWVrOiInbGFzdCcgZWVlZSAnYXQnIHAiLHllc3RlcmRheToiJ3llc3RlcmRheSBhdCcgcCIsdG9kYXk6Iid0b2RheSBhdCcgcCIsdG9tb3Jyb3c6Iid0b21vcnJvdyBhdCcgcCIsbmV4dFdlZWs6ImVlZWUgJ2F0JyBwIixvdGhlcjoiUCJ9LFRQZT0oZSx0LHIsaSk9PlFBcltlXX0pO2Z1bmN0aW9uIE04KGUpe3JldHVybih0LHIpPT57bGV0IGk9cj8uY29udGV4dD9TdHJpbmcoci5jb250ZXh0KToic3RhbmRhbG9uZSIsYTtpZihpPT09ImZvcm1hdHRpbmciJiZlLmZvcm1hdHRpbmdWYWx1ZXMpe2xldCBvPWUuZGVmYXVsdEZvcm1hdHRpbmdXaWR0aHx8ZS5kZWZhdWx0V2lkdGgscz1yPy53aWR0aD9TdHJpbmcoci53aWR0aCk6bzthPWUuZm9ybWF0dGluZ1ZhbHVlc1tzXXx8ZS5mb3JtYXR0aW5nVmFsdWVzW29dfWVsc2V7bGV0IG89ZS5kZWZhdWx0V2lkdGgscz1yPy53aWR0aD9TdHJpbmcoci53aWR0aCk6ZS5kZWZhdWx0V2lkdGg7YT1lLnZhbHVlc1tzXXx8ZS52YWx1ZXNbb119bGV0IG49ZS5hcmd1bWVudENhbGxiYWNrP2UuYXJndW1lbnRDYWxsYmFjayh0KTp0O3JldHVybiBhW25dfX12YXIgTFBlPXAoKCk9Pnt9KTt2YXIgSkFyLEtBcixlRHIsdERyLHJEcixpRHIsYURyLEFQZSxEUGU9cCgoKT0+e0xQZSgpO0pBcj17bmFycm93OlsiQiIsIkEiXSxhYmJyZXZpYXRlZDpbIkJDIiwiQUQiXSx3aWRlOlsiQmVmb3JlIENocmlzdCIsIkFubm8gRG9taW5pIl19LEtBcj17bmFycm93OlsiMSIsIjIiLCIzIiwiNCJdLGFiYnJldmlhdGVkOlsiUTEiLCJRMiIsIlEzIiwiUTQiXSx3aWRlOlsiMXN0IHF1YXJ0ZXIiLCIybmQgcXVhcnRlciIsIjNyZCBxdWFydGVyIiwiNHRoIHF1YXJ0ZXIiXX0sZURyPXtuYXJyb3c6WyJKIiwiRiIsIk0iLCJBIiwiTSIsIkoiLCJKIiwiQSIsIlMiLCJPIiwiTiIsIkQiXSxhYmJyZXZpYXRlZDpbIkphbiIsIkZlYiIsIk1hciIsIkFwciIsIk1heSIsIkp1biIsIkp1bCIsIkF1ZyIsIlNlcCIsIk9jdCIsIk5vdiIsIkRlYyJdLHdpZGU6WyJKYW51YXJ5IiwiRmVicnVhcnkiLCJNYXJjaCIsIkFwcmlsIiwiTWF5IiwiSnVuZSIsIkp1bHkiLCJBdWd1c3QiLCJTZXB0ZW1iZXIiLCJPY3RvYmVyIiwiTm92ZW1iZXIiLCJEZWNlbWJlciJdfSx0RHI9e25hcnJvdzpbIlMiLCJNIiwiVCIsIlciLCJUIiwiRiIsIlMiXSxzaG9ydDpbIlN1IiwiTW8iLCJUdSIsIldlIiwiVGgiLCJGciIsIlNhIl0sYWJicmV2aWF0ZWQ6WyJTdW4iLCJNb24iLCJUdWUiLCJXZWQiLCJUaHUiLCJGcmkiLCJTYXQiXSx3aWRlOlsiU3VuZGF5IiwiTW9uZGF5IiwiVHVlc2RheSIsIldlZG5lc2RheSIsIlRodXJzZGF5IiwiRnJpZGF5IiwiU2F0dXJkYXkiXX0sckRyPXtuYXJyb3c6e2FtOiJhIixwbToicCIsbWlkbmlnaHQ6Im1pIixub29uOiJuIixtb3JuaW5nOiJtb3JuaW5nIixhZnRlcm5vb246ImFmdGVybm9vbiIsZXZlbmluZzoiZXZlbmluZyIsbmlnaHQ6Im5pZ2h0In0sYWJicmV2aWF0ZWQ6e2FtOiJBTSIscG06IlBNIixtaWRuaWdodDoibWlkbmlnaHQiLG5vb246Im5vb24iLG1vcm5pbmc6Im1vcm5pbmciLGFmdGVybm9vbjoiYWZ0ZXJub29uIixldmVuaW5nOiJldmVuaW5nIixuaWdodDoibmlnaHQifSx3aWRlOnthbToiYS5tLiIscG06InAubS4iLG1pZG5pZ2h0OiJtaWRuaWdodCIsbm9vbjoibm9vbiIsbW9ybmluZzoibW9ybmluZyIsYWZ0ZXJub29uOiJhZnRlcm5vb24iLGV2ZW5pbmc6ImV2ZW5pbmciLG5pZ2h0OiJuaWdodCJ9fSxpRHI9e25hcnJvdzp7YW06ImEiLHBtOiJwIixtaWRuaWdodDoibWkiLG5vb246Im4iLG1vcm5pbmc6ImluIHRoZSBtb3JuaW5nIixhZnRlcm5vb246ImluIHRoZSBhZnRlcm5vb24iLGV2ZW5pbmc6ImluIHRoZSBldmVuaW5nIixuaWdodDoiYXQgbmlnaHQifSxhYmJyZXZpYXRlZDp7YW06IkFNIixwbToiUE0iLG1pZG5pZ2h0OiJtaWRuaWdodCIsbm9vbjoibm9vbiIsbW9ybmluZzoiaW4gdGhlIG1vcm5pbmciLGFmdGVybm9vbjoiaW4gdGhlIGFmdGVybm9vbiIsZXZlbmluZzoiaW4gdGhlIGV2ZW5pbmciLG5pZ2h0OiJhdCBuaWdodCJ9LHdpZGU6e2FtOiJhLm0uIixwbToicC5tLiIsbWlkbmlnaHQ6Im1pZG5pZ2h0Iixub29uOiJub29uIixtb3JuaW5nOiJpbiB0aGUgbW9ybmluZyIsYWZ0ZXJub29uOiJpbiB0aGUgYWZ0ZXJub29uIixldmVuaW5nOiJpbiB0aGUgZXZlbmluZyIsbmlnaHQ6ImF0IG5pZ2h0In19LGFEcj0oZSx0KT0+e2xldCByPU51bWJlcihlKSxpPXIlMTAwO2lmKGk+MjB8fGk8MTApc3dpdGNoKGklMTApe2Nhc2UgMTpyZXR1cm4gcisic3QiO2Nhc2UgMjpyZXR1cm4gcisibmQiO2Nhc2UgMzpyZXR1cm4gcisicmQifXJldHVybiByKyJ0aCJ9LEFQZT17b3JkaW5hbE51bWJlcjphRHIsZXJhOk04KHt2YWx1ZXM6SkFyLGRlZmF1bHRXaWR0aDoid2lkZSJ9KSxxdWFydGVyOk04KHt2YWx1ZXM6S0FyLGRlZmF1bHRXaWR0aDoid2lkZSIsYXJndW1lbnRDYWxsYmFjazplPT5lLTF9KSxtb250aDpNOCh7dmFsdWVzOmVEcixkZWZhdWx0V2lkdGg6IndpZGUifSksZGF5Ok04KHt2YWx1ZXM6dERyLGRlZmF1bHRXaWR0aDoid2lkZSJ9KSxkYXlQZXJpb2Q6TTgoe3ZhbHVlczpyRHIsZGVmYXVsdFdpZHRoOiJ3aWRlIixmb3JtYXR0aW5nVmFsdWVzOmlEcixkZWZhdWx0Rm9ybWF0dGluZ1dpZHRoOiJ3aWRlIn0pfX0pO2Z1bmN0aW9uIGs4KGUpe3JldHVybih0LHI9e30pPT57bGV0IGk9ci53aWR0aCxhPWkmJmUubWF0Y2hQYXR0ZXJuc1tpXXx8ZS5tYXRjaFBhdHRlcm5zW2UuZGVmYXVsdE1hdGNoV2lkdGhdLG49dC5tYXRjaChhKTtpZighbilyZXR1cm4gbnVsbDtsZXQgbz1uWzBdLHM9aSYmZS5wYXJzZVBhdHRlcm5zW2ldfHxlLnBhcnNlUGF0dGVybnNbZS5kZWZhdWx0UGFyc2VXaWR0aF0sbD1BcnJheS5pc0FycmF5KHMpP29EcihzLGQ9PmQudGVzdChvKSk6bkRyKHMsZD0+ZC50ZXN0KG8pKSxjO2M9ZS52YWx1ZUNhbGxiYWNrP2UudmFsdWVDYWxsYmFjayhsKTpsLGM9ci52YWx1ZUNhbGxiYWNrP3IudmFsdWVDYWxsYmFjayhjKTpjO2xldCB1PXQuc2xpY2Uoby5sZW5ndGgpO3JldHVybnt2YWx1ZTpjLHJlc3Q6dX19fWZ1bmN0aW9uIG5EcihlLHQpe2ZvcihsZXQgciBpbiBlKWlmKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChlLHIpJiZ0KGVbcl0pKXJldHVybiByfWZ1bmN0aW9uIG9EcihlLHQpe2ZvcihsZXQgcj0wO3I8ZS5sZW5ndGg7cisrKWlmKHQoZVtyXSkpcmV0dXJuIHJ9dmFyIEVQZT1wKCgpPT57fSk7ZnVuY3Rpb24gJFBlKGUpe3JldHVybih0LHI9e30pPT57bGV0IGk9dC5tYXRjaChlLm1hdGNoUGF0dGVybik7aWYoIWkpcmV0dXJuIG51bGw7bGV0IGE9aVswXSxuPXQubWF0Y2goZS5wYXJzZVBhdHRlcm4pO2lmKCFuKXJldHVybiBudWxsO2xldCBvPWUudmFsdWVDYWxsYmFjaz9lLnZhbHVlQ2FsbGJhY2soblswXSk6blswXTtvPXIudmFsdWVDYWxsYmFjaz9yLnZhbHVlQ2FsbGJhY2sobyk6bztsZXQgcz10LnNsaWNlKGEubGVuZ3RoKTtyZXR1cm57dmFsdWU6byxyZXN0OnN9fX12YXIgSVBlPXAoKCk9Pnt9KTt2YXIgc0RyLGxEcixjRHIsZERyLHVEcixwRHIsaERyLGZEcixtRHIsZ0RyLGJEcix2RHIsUFBlLE5QZT1wKCgpPT57RVBlKCk7SVBlKCk7c0RyPS9eKFxkKykodGh8c3R8bmR8cmQpPy9pLGxEcj0vXGQrL2ksY0RyPXtuYXJyb3c6L14oYnxhKS9pLGFiYnJldmlhdGVkOi9eKGJcLj9ccz9jXC4/fGJcLj9ccz9jXC4/XHM/ZVwuP3xhXC4/XHM/ZFwuP3xjXC4/XHM/ZVwuPykvaSx3aWRlOi9eKGJlZm9yZSBjaHJpc3R8YmVmb3JlIGNvbW1vbiBlcmF8YW5ubyBkb21pbml8Y29tbW9uIGVyYSkvaX0sZERyPXthbnk6Wy9eYi9pLC9eKGF8YykvaV19LHVEcj17bmFycm93Oi9eWzEyMzRdL2ksYWJicmV2aWF0ZWQ6L15xWzEyMzRdL2ksd2lkZTovXlsxMjM0XSh0aHxzdHxuZHxyZCk/IHF1YXJ0ZXIvaX0scERyPXthbnk6Wy8xL2ksLzIvaSwvMy9pLC80L2ldfSxoRHI9e25hcnJvdzovXltqZm1hc29uZF0vaSxhYmJyZXZpYXRlZDovXihqYW58ZmVifG1hcnxhcHJ8bWF5fGp1bnxqdWx8YXVnfHNlcHxvY3R8bm92fGRlYykvaSx3aWRlOi9eKGphbnVhcnl8ZmVicnVhcnl8bWFyY2h8YXByaWx8bWF5fGp1bmV8anVseXxhdWd1c3R8c2VwdGVtYmVyfG9jdG9iZXJ8bm92ZW1iZXJ8ZGVjZW1iZXIpL2l9LGZEcj17bmFycm93OlsvXmovaSwvXmYvaSwvXm0vaSwvXmEvaSwvXm0vaSwvXmovaSwvXmovaSwvXmEvaSwvXnMvaSwvXm8vaSwvXm4vaSwvXmQvaV0sYW55OlsvXmphL2ksL15mL2ksL15tYXIvaSwvXmFwL2ksL15tYXkvaSwvXmp1bi9pLC9eanVsL2ksL15hdS9pLC9ecy9pLC9eby9pLC9ebi9pLC9eZC9pXX0sbURyPXtuYXJyb3c6L15bc210d2ZdL2ksc2hvcnQ6L14oc3V8bW98dHV8d2V8dGh8ZnJ8c2EpL2ksYWJicmV2aWF0ZWQ6L14oc3VufG1vbnx0dWV8d2VkfHRodXxmcml8c2F0KS9pLHdpZGU6L14oc3VuZGF5fG1vbmRheXx0dWVzZGF5fHdlZG5lc2RheXx0aHVyc2RheXxmcmlkYXl8c2F0dXJkYXkpL2l9LGdEcj17bmFycm93OlsvXnMvaSwvXm0vaSwvXnQvaSwvXncvaSwvXnQvaSwvXmYvaSwvXnMvaV0sYW55OlsvXnN1L2ksL15tL2ksL150dS9pLC9edy9pLC9edGgvaSwvXmYvaSwvXnNhL2ldfSxiRHI9e25hcnJvdzovXihhfHB8bWl8bnwoaW4gdGhlfGF0KSAobW9ybmluZ3xhZnRlcm5vb258ZXZlbmluZ3xuaWdodCkpL2ksYW55Oi9eKFthcF1cLj9ccz9tXC4/fG1pZG5pZ2h0fG5vb258KGluIHRoZXxhdCkgKG1vcm5pbmd8YWZ0ZXJub29ufGV2ZW5pbmd8bmlnaHQpKS9pfSx2RHI9e2FueTp7YW06L15hL2kscG06L15wL2ksbWlkbmlnaHQ6L15taS9pLG5vb246L15uby9pLG1vcm5pbmc6L21vcm5pbmcvaSxhZnRlcm5vb246L2FmdGVybm9vbi9pLGV2ZW5pbmc6L2V2ZW5pbmcvaSxuaWdodDovbmlnaHQvaX19LFBQZT17b3JkaW5hbE51bWJlcjokUGUoe21hdGNoUGF0dGVybjpzRHIscGFyc2VQYXR0ZXJuOmxEcix2YWx1ZUNhbGxiYWNrOmU9PnBhcnNlSW50KGUsMTApfSksZXJhOms4KHttYXRjaFBhdHRlcm5zOmNEcixkZWZhdWx0TWF0Y2hXaWR0aDoid2lkZSIscGFyc2VQYXR0ZXJuczpkRHIsZGVmYXVsdFBhcnNlV2lkdGg6ImFueSJ9KSxxdWFydGVyOms4KHttYXRjaFBhdHRlcm5zOnVEcixkZWZhdWx0TWF0Y2hXaWR0aDoid2lkZSIscGFyc2VQYXR0ZXJuczpwRHIsZGVmYXVsdFBhcnNlV2lkdGg6ImFueSIsdmFsdWVDYWxsYmFjazplPT5lKzF9KSxtb250aDprOCh7bWF0Y2hQYXR0ZXJuczpoRHIsZGVmYXVsdE1hdGNoV2lkdGg6IndpZGUiLHBhcnNlUGF0dGVybnM6ZkRyLGRlZmF1bHRQYXJzZVdpZHRoOiJhbnkifSksZGF5Oms4KHttYXRjaFBhdHRlcm5zOm1EcixkZWZhdWx0TWF0Y2hXaWR0aDoid2lkZSIscGFyc2VQYXR0ZXJuczpnRHIsZGVmYXVsdFBhcnNlV2lkdGg6ImFueSJ9KSxkYXlQZXJpb2Q6azgoe21hdGNoUGF0dGVybnM6YkRyLGRlZmF1bHRNYXRjaFdpZHRoOiJhbnkiLHBhcnNlUGF0dGVybnM6dkRyLGRlZmF1bHRQYXJzZVdpZHRoOiJhbnkifSl9fSk7dmFyIHduLEo4aSxGUGU9cCgoKT0+e2tQZSgpO0NQZSgpO19QZSgpO0RQZSgpO05QZSgpO3duPXtjb2RlOiJlbi1VUyIsZm9ybWF0RGlzdGFuY2U6TVBlLGZvcm1hdExvbmc6elBlLGZvcm1hdFJlbGF0aXZlOlRQZSxsb2NhbGl6ZTpBUGUsbWF0Y2g6UFBlLG9wdGlvbnM6e3dlZWtTdGFydHNPbjowLGZpcnN0V2Vla0NvbnRhaW5zRGF0ZToxfX0sSjhpPXdufSk7dmFyIEk2PXAoKCk9PntGUGUoKX0pO2Z1bmN0aW9uIHNDKGUsdCl7bGV0IHI9Y2UoZSx0Py5pbik7cmV0dXJuIElpKHIsdzgocikpKzF9dmFyIG5waSxXUT1wKCgpPT57VmwoKTthQygpO1JlKCk7bnBpPXNDfSk7ZnVuY3Rpb24gUzgoZSx0KXtsZXQgcj1jZShlLHQ/LmluKSxpPStyaShyKS0rQm4ocik7cmV0dXJuIE1hdGgucm91bmQoaS9fcykrMX12YXIgdXBpLGxDPXAoKCk9PntSdCgpO0VzKCk7dTgoKTtSZSgpO3VwaT1TOH0pO2Z1bmN0aW9uIFUwKGUsdCl7bGV0IHI9Y2UoZSx0Py5pbiksaT1yLmdldEZ1bGxZZWFyKCksYT1FcigpLG49dD8uZmlyc3RXZWVrQ29udGFpbnNEYXRlPz90Py5sb2NhbGU/Lm9wdGlvbnM/LmZpcnN0V2Vla0NvbnRhaW5zRGF0ZT8/YS5maXJzdFdlZWtDb250YWluc0RhdGU/P2EubG9jYWxlPy5vcHRpb25zPy5maXJzdFdlZWtDb250YWluc0RhdGU/PzEsbz1OZSh0Py5pbnx8ZSwwKTtvLnNldEZ1bGxZZWFyKGkrMSwwLG4pLG8uc2V0SG91cnMoMCwwLDAsMCk7bGV0IHM9ZTEobyx0KSxsPU5lKHQ/LmlufHxlLDApO2wuc2V0RnVsbFllYXIoaSwwLG4pLGwuc2V0SG91cnMoMCwwLDAsMCk7bGV0IGM9ZTEobCx0KTtyZXR1cm4rcj49K3M/aSsxOityPj0rYz9pOmktMX12YXIgYnBpLEltPXAoKCk9PntNYSgpO2d0KCk7ZjIoKTtSZSgpO2JwaT1VMH0pO2Z1bmN0aW9uIFA2KGUsdCl7bGV0IHI9RXIoKSxpPXQ/LmZpcnN0V2Vla0NvbnRhaW5zRGF0ZT8/dD8ubG9jYWxlPy5vcHRpb25zPy5maXJzdFdlZWtDb250YWluc0RhdGU/P3IuZmlyc3RXZWVrQ29udGFpbnNEYXRlPz9yLmxvY2FsZT8ub3B0aW9ucz8uZmlyc3RXZWVrQ29udGFpbnNEYXRlPz8xLGE9VTAoZSx0KSxuPU5lKHQ/LmlufHxlLDApO3JldHVybiBuLnNldEZ1bGxZZWFyKGEsMCxpKSxuLnNldEhvdXJzKDAsMCwwLDApLGUxKG4sdCl9dmFyIGtwaSxjQz1wKCgpPT57TWEoKTtndCgpO0ltKCk7ZjIoKTtrcGk9UDZ9KTtmdW5jdGlvbiB6OChlLHQpe2xldCByPWNlKGUsdD8uaW4pLGk9K2UxKHIsdCktK1A2KHIsdCk7cmV0dXJuIE1hdGgucm91bmQoaS9fcykrMX12YXIgTHBpLGRDPXAoKCk9PntSdCgpO2YyKCk7Y0MoKTtSZSgpO0xwaT16OH0pO2Z1bmN0aW9uIG50KGUsdCl7bGV0IHI9ZTwwPyItIjoiIixpPU1hdGguYWJzKGUpLnRvU3RyaW5nKCkucGFkU3RhcnQodCwiMCIpO3JldHVybiByK2l9dmFyIE42PXAoKCk9Pnt9KTt2YXIgSG4sR1E9cCgoKT0+e042KCk7SG49e3koZSx0KXtsZXQgcj1lLmdldEZ1bGxZZWFyKCksaT1yPjA/cjoxLXI7cmV0dXJuIG50KHQ9PT0ieXkiP2klMTAwOmksdC5sZW5ndGgpfSxNKGUsdCl7bGV0IHI9ZS5nZXRNb250aCgpO3JldHVybiB0PT09Ik0iP1N0cmluZyhyKzEpOm50KHIrMSwyKX0sZChlLHQpe3JldHVybiBudChlLmdldERhdGUoKSx0Lmxlbmd0aCl9LGEoZSx0KXtsZXQgcj1lLmdldEhvdXJzKCkvMTI+PTE/InBtIjoiYW0iO3N3aXRjaCh0KXtjYXNlImEiOmNhc2UiYWEiOnJldHVybiByLnRvVXBwZXJDYXNlKCk7Y2FzZSJhYWEiOnJldHVybiByO2Nhc2UiYWFhYWEiOnJldHVybiByWzBdO2RlZmF1bHQ6cmV0dXJuIHI9PT0iYW0iPyJhLm0uIjoicC5tLiJ9fSxoKGUsdCl7cmV0dXJuIG50KGUuZ2V0SG91cnMoKSUxMnx8MTIsdC5sZW5ndGgpfSxIKGUsdCl7cmV0dXJuIG50KGUuZ2V0SG91cnMoKSx0Lmxlbmd0aCl9LG0oZSx0KXtyZXR1cm4gbnQoZS5nZXRNaW51dGVzKCksdC5sZW5ndGgpfSxzKGUsdCl7cmV0dXJuIG50KGUuZ2V0U2Vjb25kcygpLHQubGVuZ3RoKX0sUyhlLHQpe2xldCByPXQubGVuZ3RoLGk9ZS5nZXRNaWxsaXNlY29uZHMoKSxhPU1hdGgudHJ1bmMoaSpNYXRoLnBvdygxMCxyLTMpKTtyZXR1cm4gbnQoYSx0Lmxlbmd0aCl9fX0pO2Z1bmN0aW9uIE9QZShlLHQ9IiIpe2xldCByPWU+MD8iLSI6IisiLGk9TWF0aC5hYnMoZSksYT1NYXRoLnRydW5jKGkvNjApLG49aSU2MDtyZXR1cm4gbj09PTA/citTdHJpbmcoYSk6citTdHJpbmcoYSkrdCtudChuLDIpfWZ1bmN0aW9uIFJQZShlLHQpe3JldHVybiBlJTYwPT09MD8oZT4wPyItIjoiKyIpK250KE1hdGguYWJzKGUpLzYwLDIpOkY2KGUsdCl9ZnVuY3Rpb24gRjYoZSx0PSIiKXtsZXQgcj1lPjA/Ii0iOiIrIixpPU1hdGguYWJzKGUpLGE9bnQoTWF0aC50cnVuYyhpLzYwKSwyKSxuPW50KGklNjAsMik7cmV0dXJuIHIrYSt0K259dmFyIEM4LFBtLEJQZT1wKCgpPT57V1EoKTtsQygpO0IwKCk7ZEMoKTtJbSgpO042KCk7R1EoKTtDOD17YW06ImFtIixwbToicG0iLG1pZG5pZ2h0OiJtaWRuaWdodCIsbm9vbjoibm9vbiIsbW9ybmluZzoibW9ybmluZyIsYWZ0ZXJub29uOiJhZnRlcm5vb24iLGV2ZW5pbmc6ImV2ZW5pbmciLG5pZ2h0OiJuaWdodCJ9LFBtPXtHOmZ1bmN0aW9uKGUsdCxyKXtsZXQgaT1lLmdldEZ1bGxZZWFyKCk+MD8xOjA7c3dpdGNoKHQpe2Nhc2UiRyI6Y2FzZSJHRyI6Y2FzZSJHR0ciOnJldHVybiByLmVyYShpLHt3aWR0aDoiYWJicmV2aWF0ZWQifSk7Y2FzZSJHR0dHRyI6cmV0dXJuIHIuZXJhKGkse3dpZHRoOiJuYXJyb3cifSk7ZGVmYXVsdDpyZXR1cm4gci5lcmEoaSx7d2lkdGg6IndpZGUifSl9fSx5OmZ1bmN0aW9uKGUsdCxyKXtpZih0PT09InlvIil7bGV0IGk9ZS5nZXRGdWxsWWVhcigpLGE9aT4wP2k6MS1pO3JldHVybiByLm9yZGluYWxOdW1iZXIoYSx7dW5pdDoieWVhciJ9KX1yZXR1cm4gSG4ueShlLHQpfSxZOmZ1bmN0aW9uKGUsdCxyLGkpe2xldCBhPVUwKGUsaSksbj1hPjA/YToxLWE7aWYodD09PSJZWSIpe2xldCBvPW4lMTAwO3JldHVybiBudChvLDIpfXJldHVybiB0PT09IllvIj9yLm9yZGluYWxOdW1iZXIobix7dW5pdDoieWVhciJ9KTpudChuLHQubGVuZ3RoKX0sUjpmdW5jdGlvbihlLHQpe2xldCByPUdhKGUpO3JldHVybiBudChyLHQubGVuZ3RoKX0sdTpmdW5jdGlvbihlLHQpe2xldCByPWUuZ2V0RnVsbFllYXIoKTtyZXR1cm4gbnQocix0Lmxlbmd0aCl9LFE6ZnVuY3Rpb24oZSx0LHIpe2xldCBpPU1hdGguY2VpbCgoZS5nZXRNb250aCgpKzEpLzMpO3N3aXRjaCh0KXtjYXNlIlEiOnJldHVybiBTdHJpbmcoaSk7Y2FzZSJRUSI6cmV0dXJuIG50KGksMik7Y2FzZSJRbyI6cmV0dXJuIHIub3JkaW5hbE51bWJlcihpLHt1bml0OiJxdWFydGVyIn0pO2Nhc2UiUVFRIjpyZXR1cm4gci5xdWFydGVyKGkse3dpZHRoOiJhYmJyZXZpYXRlZCIsY29udGV4dDoiZm9ybWF0dGluZyJ9KTtjYXNlIlFRUVFRIjpyZXR1cm4gci5xdWFydGVyKGkse3dpZHRoOiJuYXJyb3ciLGNvbnRleHQ6ImZvcm1hdHRpbmcifSk7ZGVmYXVsdDpyZXR1cm4gci5xdWFydGVyKGkse3dpZHRoOiJ3aWRlIixjb250ZXh0OiJmb3JtYXR0aW5nIn0pfX0scTpmdW5jdGlvbihlLHQscil7bGV0IGk9TWF0aC5jZWlsKChlLmdldE1vbnRoKCkrMSkvMyk7c3dpdGNoKHQpe2Nhc2UicSI6cmV0dXJuIFN0cmluZyhpKTtjYXNlInFxIjpyZXR1cm4gbnQoaSwyKTtjYXNlInFvIjpyZXR1cm4gci5vcmRpbmFsTnVtYmVyKGkse3VuaXQ6InF1YXJ0ZXIifSk7Y2FzZSJxcXEiOnJldHVybiByLnF1YXJ0ZXIoaSx7d2lkdGg6ImFiYnJldmlhdGVkIixjb250ZXh0OiJzdGFuZGFsb25lIn0pO2Nhc2UicXFxcXEiOnJldHVybiByLnF1YXJ0ZXIoaSx7d2lkdGg6Im5hcnJvdyIsY29udGV4dDoic3RhbmRhbG9uZSJ9KTtkZWZhdWx0OnJldHVybiByLnF1YXJ0ZXIoaSx7d2lkdGg6IndpZGUiLGNvbnRleHQ6InN0YW5kYWxvbmUifSl9fSxNOmZ1bmN0aW9uKGUsdCxyKXtsZXQgaT1lLmdldE1vbnRoKCk7c3dpdGNoKHQpe2Nhc2UiTSI6Y2FzZSJNTSI6cmV0dXJuIEhuLk0oZSx0KTtjYXNlIk1vIjpyZXR1cm4gci5vcmRpbmFsTnVtYmVyKGkrMSx7dW5pdDoibW9udGgifSk7Y2FzZSJNTU0iOnJldHVybiByLm1vbnRoKGkse3dpZHRoOiJhYmJyZXZpYXRlZCIsY29udGV4dDoiZm9ybWF0dGluZyJ9KTtjYXNlIk1NTU1NIjpyZXR1cm4gci5tb250aChpLHt3aWR0aDoibmFycm93Iixjb250ZXh0OiJmb3JtYXR0aW5nIn0pO2RlZmF1bHQ6cmV0dXJuIHIubW9udGgoaSx7d2lkdGg6IndpZGUiLGNvbnRleHQ6ImZvcm1hdHRpbmcifSl9fSxMOmZ1bmN0aW9uKGUsdCxyKXtsZXQgaT1lLmdldE1vbnRoKCk7c3dpdGNoKHQpe2Nhc2UiTCI6cmV0dXJuIFN0cmluZyhpKzEpO2Nhc2UiTEwiOnJldHVybiBudChpKzEsMik7Y2FzZSJMbyI6cmV0dXJuIHIub3JkaW5hbE51bWJlcihpKzEse3VuaXQ6Im1vbnRoIn0pO2Nhc2UiTExMIjpyZXR1cm4gci5tb250aChpLHt3aWR0aDoiYWJicmV2aWF0ZWQiLGNvbnRleHQ6InN0YW5kYWxvbmUifSk7Y2FzZSJMTExMTCI6cmV0dXJuIHIubW9udGgoaSx7d2lkdGg6Im5hcnJvdyIsY29udGV4dDoic3RhbmRhbG9uZSJ9KTtkZWZhdWx0OnJldHVybiByLm1vbnRoKGkse3dpZHRoOiJ3aWRlIixjb250ZXh0OiJzdGFuZGFsb25lIn0pfX0sdzpmdW5jdGlvbihlLHQscixpKXtsZXQgYT16OChlLGkpO3JldHVybiB0PT09IndvIj9yLm9yZGluYWxOdW1iZXIoYSx7dW5pdDoid2VlayJ9KTpudChhLHQubGVuZ3RoKX0sSTpmdW5jdGlvbihlLHQscil7bGV0IGk9UzgoZSk7cmV0dXJuIHQ9PT0iSW8iP3Iub3JkaW5hbE51bWJlcihpLHt1bml0OiJ3ZWVrIn0pOm50KGksdC5sZW5ndGgpfSxkOmZ1bmN0aW9uKGUsdCxyKXtyZXR1cm4gdD09PSJkbyI/ci5vcmRpbmFsTnVtYmVyKGUuZ2V0RGF0ZSgpLHt1bml0OiJkYXRlIn0pOkhuLmQoZSx0KX0sRDpmdW5jdGlvbihlLHQscil7bGV0IGk9c0MoZSk7cmV0dXJuIHQ9PT0iRG8iP3Iub3JkaW5hbE51bWJlcihpLHt1bml0OiJkYXlPZlllYXIifSk6bnQoaSx0Lmxlbmd0aCl9LEU6ZnVuY3Rpb24oZSx0LHIpe2xldCBpPWUuZ2V0RGF5KCk7c3dpdGNoKHQpe2Nhc2UiRSI6Y2FzZSJFRSI6Y2FzZSJFRUUiOnJldHVybiByLmRheShpLHt3aWR0aDoiYWJicmV2aWF0ZWQiLGNvbnRleHQ6ImZvcm1hdHRpbmcifSk7Y2FzZSJFRUVFRSI6cmV0dXJuIHIuZGF5KGkse3dpZHRoOiJuYXJyb3ciLGNvbnRleHQ6ImZvcm1hdHRpbmcifSk7Y2FzZSJFRUVFRUUiOnJldHVybiByLmRheShpLHt3aWR0aDoic2hvcnQiLGNvbnRleHQ6ImZvcm1hdHRpbmcifSk7ZGVmYXVsdDpyZXR1cm4gci5kYXkoaSx7d2lkdGg6IndpZGUiLGNvbnRleHQ6ImZvcm1hdHRpbmcifSl9fSxlOmZ1bmN0aW9uKGUsdCxyLGkpe2xldCBhPWUuZ2V0RGF5KCksbj0oYS1pLndlZWtTdGFydHNPbis4KSU3fHw3O3N3aXRjaCh0KXtjYXNlImUiOnJldHVybiBTdHJpbmcobik7Y2FzZSJlZSI6cmV0dXJuIG50KG4sMik7Y2FzZSJlbyI6cmV0dXJuIHIub3JkaW5hbE51bWJlcihuLHt1bml0OiJkYXkifSk7Y2FzZSJlZWUiOnJldHVybiByLmRheShhLHt3aWR0aDoiYWJicmV2aWF0ZWQiLGNvbnRleHQ6ImZvcm1hdHRpbmcifSk7Y2FzZSJlZWVlZSI6cmV0dXJuIHIuZGF5KGEse3dpZHRoOiJuYXJyb3ciLGNvbnRleHQ6ImZvcm1hdHRpbmcifSk7Y2FzZSJlZWVlZWUiOnJldHVybiByLmRheShhLHt3aWR0aDoic2hvcnQiLGNvbnRleHQ6ImZvcm1hdHRpbmcifSk7ZGVmYXVsdDpyZXR1cm4gci5kYXkoYSx7d2lkdGg6IndpZGUiLGNvbnRleHQ6ImZvcm1hdHRpbmcifSl9fSxjOmZ1bmN0aW9uKGUsdCxyLGkpe2xldCBhPWUuZ2V0RGF5KCksbj0oYS1pLndlZWtTdGFydHNPbis4KSU3fHw3O3N3aXRjaCh0KXtjYXNlImMiOnJldHVybiBTdHJpbmcobik7Y2FzZSJjYyI6cmV0dXJuIG50KG4sdC5sZW5ndGgpO2Nhc2UiY28iOnJldHVybiByLm9yZGluYWxOdW1iZXIobix7dW5pdDoiZGF5In0pO2Nhc2UiY2NjIjpyZXR1cm4gci5kYXkoYSx7d2lkdGg6ImFiYnJldmlhdGVkIixjb250ZXh0OiJzdGFuZGFsb25lIn0pO2Nhc2UiY2NjY2MiOnJldHVybiByLmRheShhLHt3aWR0aDoibmFycm93Iixjb250ZXh0OiJzdGFuZGFsb25lIn0pO2Nhc2UiY2NjY2NjIjpyZXR1cm4gci5kYXkoYSx7d2lkdGg6InNob3J0Iixjb250ZXh0OiJzdGFuZGFsb25lIn0pO2RlZmF1bHQ6cmV0dXJuIHIuZGF5KGEse3dpZHRoOiJ3aWRlIixjb250ZXh0OiJzdGFuZGFsb25lIn0pfX0saTpmdW5jdGlvbihlLHQscil7bGV0IGk9ZS5nZXREYXkoKSxhPWk9PT0wPzc6aTtzd2l0Y2godCl7Y2FzZSJpIjpyZXR1cm4gU3RyaW5nKGEpO2Nhc2UiaWkiOnJldHVybiBudChhLHQubGVuZ3RoKTtjYXNlImlvIjpyZXR1cm4gci5vcmRpbmFsTnVtYmVyKGEse3VuaXQ6ImRheSJ9KTtjYXNlImlpaSI6cmV0dXJuIHIuZGF5KGkse3dpZHRoOiJhYmJyZXZpYXRlZCIsY29udGV4dDoiZm9ybWF0dGluZyJ9KTtjYXNlImlpaWlpIjpyZXR1cm4gci5kYXkoaSx7d2lkdGg6Im5hcnJvdyIsY29udGV4dDoiZm9ybWF0dGluZyJ9KTtjYXNlImlpaWlpaSI6cmV0dXJuIHIuZGF5KGkse3dpZHRoOiJzaG9ydCIsY29udGV4dDoiZm9ybWF0dGluZyJ9KTtkZWZhdWx0OnJldHVybiByLmRheShpLHt3aWR0aDoid2lkZSIsY29udGV4dDoiZm9ybWF0dGluZyJ9KX19LGE6ZnVuY3Rpb24oZSx0LHIpe2xldCBhPWUuZ2V0SG91cnMoKS8xMj49MT8icG0iOiJhbSI7c3dpdGNoKHQpe2Nhc2UiYSI6Y2FzZSJhYSI6cmV0dXJuIHIuZGF5UGVyaW9kKGEse3dpZHRoOiJhYmJyZXZpYXRlZCIsY29udGV4dDoiZm9ybWF0dGluZyJ9KTtjYXNlImFhYSI6cmV0dXJuIHIuZGF5UGVyaW9kKGEse3dpZHRoOiJhYmJyZXZpYXRlZCIsY29udGV4dDoiZm9ybWF0dGluZyJ9KS50b0xvd2VyQ2FzZSgpO2Nhc2UiYWFhYWEiOnJldHVybiByLmRheVBlcmlvZChhLHt3aWR0aDoibmFycm93Iixjb250ZXh0OiJmb3JtYXR0aW5nIn0pO2RlZmF1bHQ6cmV0dXJuIHIuZGF5UGVyaW9kKGEse3dpZHRoOiJ3aWRlIixjb250ZXh0OiJmb3JtYXR0aW5nIn0pfX0sYjpmdW5jdGlvbihlLHQscil7bGV0IGk9ZS5nZXRIb3VycygpLGE7c3dpdGNoKGk9PT0xMj9hPUM4Lm5vb246aT09PTA/YT1DOC5taWRuaWdodDphPWkvMTI+PTE/InBtIjoiYW0iLHQpe2Nhc2UiYiI6Y2FzZSJiYiI6cmV0dXJuIHIuZGF5UGVyaW9kKGEse3dpZHRoOiJhYmJyZXZpYXRlZCIsY29udGV4dDoiZm9ybWF0dGluZyJ9KTtjYXNlImJiYiI6cmV0dXJuIHIuZGF5UGVyaW9kKGEse3dpZHRoOiJhYmJyZXZpYXRlZCIsY29udGV4dDoiZm9ybWF0dGluZyJ9KS50b0xvd2VyQ2FzZSgpO2Nhc2UiYmJiYmIiOnJldHVybiByLmRheVBlcmlvZChhLHt3aWR0aDoibmFycm93Iixjb250ZXh0OiJmb3JtYXR0aW5nIn0pO2RlZmF1bHQ6cmV0dXJuIHIuZGF5UGVyaW9kKGEse3dpZHRoOiJ3aWRlIixjb250ZXh0OiJmb3JtYXR0aW5nIn0pfX0sQjpmdW5jdGlvbihlLHQscil7bGV0IGk9ZS5nZXRIb3VycygpLGE7c3dpdGNoKGk+PTE3P2E9QzguZXZlbmluZzppPj0xMj9hPUM4LmFmdGVybm9vbjppPj00P2E9QzgubW9ybmluZzphPUM4Lm5pZ2h0LHQpe2Nhc2UiQiI6Y2FzZSJCQiI6Y2FzZSJCQkIiOnJldHVybiByLmRheVBlcmlvZChhLHt3aWR0aDoiYWJicmV2aWF0ZWQiLGNvbnRleHQ6ImZvcm1hdHRpbmcifSk7Y2FzZSJCQkJCQiI6cmV0dXJuIHIuZGF5UGVyaW9kKGEse3dpZHRoOiJuYXJyb3ciLGNvbnRleHQ6ImZvcm1hdHRpbmcifSk7ZGVmYXVsdDpyZXR1cm4gci5kYXlQZXJpb2QoYSx7d2lkdGg6IndpZGUiLGNvbnRleHQ6ImZvcm1hdHRpbmcifSl9fSxoOmZ1bmN0aW9uKGUsdCxyKXtpZih0PT09ImhvIil7bGV0IGk9ZS5nZXRIb3VycygpJTEyO3JldHVybiBpPT09MCYmKGk9MTIpLHIub3JkaW5hbE51bWJlcihpLHt1bml0OiJob3VyIn0pfXJldHVybiBIbi5oKGUsdCl9LEg6ZnVuY3Rpb24oZSx0LHIpe3JldHVybiB0PT09IkhvIj9yLm9yZGluYWxOdW1iZXIoZS5nZXRIb3VycygpLHt1bml0OiJob3VyIn0pOkhuLkgoZSx0KX0sSzpmdW5jdGlvbihlLHQscil7bGV0IGk9ZS5nZXRIb3VycygpJTEyO3JldHVybiB0PT09IktvIj9yLm9yZGluYWxOdW1iZXIoaSx7dW5pdDoiaG91ciJ9KTpudChpLHQubGVuZ3RoKX0sazpmdW5jdGlvbihlLHQscil7bGV0IGk9ZS5nZXRIb3VycygpO3JldHVybiBpPT09MCYmKGk9MjQpLHQ9PT0ia28iP3Iub3JkaW5hbE51bWJlcihpLHt1bml0OiJob3VyIn0pOm50KGksdC5sZW5ndGgpfSxtOmZ1bmN0aW9uKGUsdCxyKXtyZXR1cm4gdD09PSJtbyI/ci5vcmRpbmFsTnVtYmVyKGUuZ2V0TWludXRlcygpLHt1bml0OiJtaW51dGUifSk6SG4ubShlLHQpfSxzOmZ1bmN0aW9uKGUsdCxyKXtyZXR1cm4gdD09PSJzbyI/ci5vcmRpbmFsTnVtYmVyKGUuZ2V0U2Vjb25kcygpLHt1bml0OiJzZWNvbmQifSk6SG4ucyhlLHQpfSxTOmZ1bmN0aW9uKGUsdCl7cmV0dXJuIEhuLlMoZSx0KX0sWDpmdW5jdGlvbihlLHQscil7bGV0IGk9ZS5nZXRUaW1lem9uZU9mZnNldCgpO2lmKGk9PT0wKXJldHVybiJaIjtzd2l0Y2godCl7Y2FzZSJYIjpyZXR1cm4gUlBlKGkpO2Nhc2UiWFhYWCI6Y2FzZSJYWCI6cmV0dXJuIEY2KGkpO2RlZmF1bHQ6cmV0dXJuIEY2KGksIjoiKX19LHg6ZnVuY3Rpb24oZSx0LHIpe2xldCBpPWUuZ2V0VGltZXpvbmVPZmZzZXQoKTtzd2l0Y2godCl7Y2FzZSJ4IjpyZXR1cm4gUlBlKGkpO2Nhc2UieHh4eCI6Y2FzZSJ4eCI6cmV0dXJuIEY2KGkpO2RlZmF1bHQ6cmV0dXJuIEY2KGksIjoiKX19LE86ZnVuY3Rpb24oZSx0LHIpe2xldCBpPWUuZ2V0VGltZXpvbmVPZmZzZXQoKTtzd2l0Y2godCl7Y2FzZSJPIjpjYXNlIk9PIjpjYXNlIk9PTyI6cmV0dXJuIkdNVCIrT1BlKGksIjoiKTtkZWZhdWx0OnJldHVybiJHTVQiK0Y2KGksIjoiKX19LHo6ZnVuY3Rpb24oZSx0LHIpe2xldCBpPWUuZ2V0VGltZXpvbmVPZmZzZXQoKTtzd2l0Y2godCl7Y2FzZSJ6IjpjYXNlInp6IjpjYXNlInp6eiI6cmV0dXJuIkdNVCIrT1BlKGksIjoiKTtkZWZhdWx0OnJldHVybiJHTVQiK0Y2KGksIjoiKX19LHQ6ZnVuY3Rpb24oZSx0LHIpe2xldCBpPU1hdGgudHJ1bmMoK2UvMWUzKTtyZXR1cm4gbnQoaSx0Lmxlbmd0aCl9LFQ6ZnVuY3Rpb24oZSx0LHIpe3JldHVybiBudCgrZSx0Lmxlbmd0aCl9fX0pO3ZhciBIUGUscVBlLHhEcixXMCxZUT1wKCgpPT57SFBlPShlLHQpPT57c3dpdGNoKGUpe2Nhc2UiUCI6cmV0dXJuIHQuZGF0ZSh7d2lkdGg6InNob3J0In0pO2Nhc2UiUFAiOnJldHVybiB0LmRhdGUoe3dpZHRoOiJtZWRpdW0ifSk7Y2FzZSJQUFAiOnJldHVybiB0LmRhdGUoe3dpZHRoOiJsb25nIn0pO2RlZmF1bHQ6cmV0dXJuIHQuZGF0ZSh7d2lkdGg6ImZ1bGwifSl9fSxxUGU9KGUsdCk9Pntzd2l0Y2goZSl7Y2FzZSJwIjpyZXR1cm4gdC50aW1lKHt3aWR0aDoic2hvcnQifSk7Y2FzZSJwcCI6cmV0dXJuIHQudGltZSh7d2lkdGg6Im1lZGl1bSJ9KTtjYXNlInBwcCI6cmV0dXJuIHQudGltZSh7d2lkdGg6ImxvbmcifSk7ZGVmYXVsdDpyZXR1cm4gdC50aW1lKHt3aWR0aDoiZnVsbCJ9KX19LHhEcj0oZSx0KT0+e2xldCByPWUubWF0Y2goLyhQKykocCspPy8pfHxbXSxpPXJbMV0sYT1yWzJdO2lmKCFhKXJldHVybiBIUGUoZSx0KTtsZXQgbjtzd2l0Y2goaSl7Y2FzZSJQIjpuPXQuZGF0ZVRpbWUoe3dpZHRoOiJzaG9ydCJ9KTticmVhaztjYXNlIlBQIjpuPXQuZGF0ZVRpbWUoe3dpZHRoOiJtZWRpdW0ifSk7YnJlYWs7Y2FzZSJQUFAiOm49dC5kYXRlVGltZSh7d2lkdGg6ImxvbmcifSk7YnJlYWs7ZGVmYXVsdDpuPXQuZGF0ZVRpbWUoe3dpZHRoOiJmdWxsIn0pO2JyZWFrfXJldHVybiBuLnJlcGxhY2UoInt7ZGF0ZX19IixIUGUoaSx0KSkucmVwbGFjZSgie3t0aW1lfX0iLHFQZShhLHQpKX0sVzA9e3A6cVBlLFA6eERyfX0pO2Z1bmN0aW9uIHVDKGUpe3JldHVybiB5RHIudGVzdChlKX1mdW5jdGlvbiBwQyhlKXtyZXR1cm4gd0RyLnRlc3QoZSl9ZnVuY3Rpb24gTm0oZSx0LHIpe2xldCBpPWtEcihlLHQscik7aWYoY29uc29sZS53YXJuKGkpLE1Eci5pbmNsdWRlcyhlKSl0aHJvdyBuZXcgUmFuZ2VFcnJvcihpKX1mdW5jdGlvbiBrRHIoZSx0LHIpe2xldCBpPWVbMF09PT0iWSI/InllYXJzIjoiZGF5cyBvZiB0aGUgbW9udGgiO3JldHVybmBVc2UgXGAke2UudG9Mb3dlckNhc2UoKX1cYCBpbnN0ZWFkIG9mIFxgJHtlfVxgIChpbiBcYCR7dH1cYCkgZm9yIGZvcm1hdHRpbmcgJHtpfSB0byB0aGUgaW5wdXQgXGAke3J9XGA7IHNlZTogaHR0cHM6Ly9naXRodWIuY29tL2RhdGUtZm5zL2RhdGUtZm5zL2Jsb2IvbWFzdGVyL2RvY3MvdW5pY29kZVRva2Vucy5tZGB9dmFyIHlEcix3RHIsTURyLFpRPXAoKCk9Pnt5RHI9L15EKyQvLHdEcj0vXlkrJC8sTURyPVsiRCIsIkREIiwiWVkiLCJZWVlZIl19KTtmdW5jdGlvbiBGbShlLHQscil7bGV0IGk9RXIoKSxhPXI/LmxvY2FsZT8/aS5sb2NhbGU/P3duLG49cj8uZmlyc3RXZWVrQ29udGFpbnNEYXRlPz9yPy5sb2NhbGU/Lm9wdGlvbnM/LmZpcnN0V2Vla0NvbnRhaW5zRGF0ZT8/aS5maXJzdFdlZWtDb250YWluc0RhdGU/P2kubG9jYWxlPy5vcHRpb25zPy5maXJzdFdlZWtDb250YWluc0RhdGU/PzEsbz1yPy53ZWVrU3RhcnRzT24/P3I/LmxvY2FsZT8ub3B0aW9ucz8ud2Vla1N0YXJ0c09uPz9pLndlZWtTdGFydHNPbj8/aS5sb2NhbGU/Lm9wdGlvbnM/LndlZWtTdGFydHNPbj8/MCxzPWNlKGUscj8uaW4pO2lmKCFYaShzKSl0aHJvdyBuZXcgUmFuZ2VFcnJvcigiSW52YWxpZCB0aW1lIHZhbHVlIik7bGV0IGw9dC5tYXRjaCh6RHIpLm1hcCh1PT57bGV0IGQ9dVswXTtpZihkPT09InAifHxkPT09IlAiKXtsZXQgaD1XMFtkXTtyZXR1cm4gaCh1LGEuZm9ybWF0TG9uZyl9cmV0dXJuIHV9KS5qb2luKCIiKS5tYXRjaChTRHIpLm1hcCh1PT57aWYodT09PSInJyIpcmV0dXJue2lzVG9rZW46ITEsdmFsdWU6IicifTtsZXQgZD11WzBdO2lmKGQ9PT0iJyIpcmV0dXJue2lzVG9rZW46ITEsdmFsdWU6TERyKHUpfTtpZihQbVtkXSlyZXR1cm57aXNUb2tlbjohMCx2YWx1ZTp1fTtpZihkLm1hdGNoKF9EcikpdGhyb3cgbmV3IFJhbmdlRXJyb3IoIkZvcm1hdCBzdHJpbmcgY29udGFpbnMgYW4gdW5lc2NhcGVkIGxhdGluIGFscGhhYmV0IGNoYXJhY3RlciBgIitkKyJgIik7cmV0dXJue2lzVG9rZW46ITEsdmFsdWU6dX19KTthLmxvY2FsaXplLnByZXByb2Nlc3NvciYmKGw9YS5sb2NhbGl6ZS5wcmVwcm9jZXNzb3IocyxsKSk7bGV0IGM9e2ZpcnN0V2Vla0NvbnRhaW5zRGF0ZTpuLHdlZWtTdGFydHNPbjpvLGxvY2FsZTphfTtyZXR1cm4gbC5tYXAodT0+e2lmKCF1LmlzVG9rZW4pcmV0dXJuIHUudmFsdWU7bGV0IGQ9dS52YWx1ZTsoIXI/LnVzZUFkZGl0aW9uYWxXZWVrWWVhclRva2VucyYmcEMoZCl8fCFyPy51c2VBZGRpdGlvbmFsRGF5T2ZZZWFyVG9rZW5zJiZ1QyhkKSkmJk5tKGQsdCxTdHJpbmcoZSkpO2xldCBoPVBtW2RbMF1dO3JldHVybiBoKHMsZCxhLmxvY2FsaXplLGMpfSkuam9pbigiIil9ZnVuY3Rpb24gTERyKGUpe2xldCB0PWUubWF0Y2goQ0RyKTtyZXR1cm4gdD90WzFdLnJlcGxhY2UoVERyLCInIik6ZX12YXIgU0RyLHpEcixDRHIsVERyLF9EcixRcGksWFE9cCgoKT0+e0k2KCk7TWEoKTtCUGUoKTtZUSgpO1pRKCk7VWwoKTtSZSgpO1NEcj0vW3lZUXFNTHdJZERlY2loSEtrbXNdb3woXHcpXDEqfCcnfCcoJyd8W14nXSkrKCd8JCl8Li9nLHpEcj0vUCtwK3xQK3xwK3wnJ3wnKCcnfFteJ10pKygnfCQpfC4vZyxDRHI9L14nKFteXSo/KSc/JC8sVERyPS8nJy9nLF9Ecj0vW2EtekEtWl0vO1FwaT1GbX0pO2Z1bmN0aW9uIGhDKGUsdCxyKXtsZXQgaT1FcigpLGE9cj8ubG9jYWxlPz9pLmxvY2FsZT8/d24sbj0yNTIwLG89a2EoZSx0KTtpZihpc05hTihvKSl0aHJvdyBuZXcgUmFuZ2VFcnJvcigiSW52YWxpZCB0aW1lIHZhbHVlIik7bGV0IHM9T2JqZWN0LmFzc2lnbih7fSxyLHthZGRTdWZmaXg6cj8uYWRkU3VmZml4LGNvbXBhcmlzb246b30pLFtsLGNdPXV0KHI/LmluLC4uLm8+MD9bdCxlXTpbZSx0XSksdT1QcyhjLGwpLGQ9KEUxKGMpLUUxKGwpKS8xZTMsaD1NYXRoLnJvdW5kKCh1LWQpLzYwKSxmO2lmKGg8MilyZXR1cm4gcj8uaW5jbHVkZVNlY29uZHM/dTw1P2EuZm9ybWF0RGlzdGFuY2UoImxlc3NUaGFuWFNlY29uZHMiLDUscyk6dTwxMD9hLmZvcm1hdERpc3RhbmNlKCJsZXNzVGhhblhTZWNvbmRzIiwxMCxzKTp1PDIwP2EuZm9ybWF0RGlzdGFuY2UoImxlc3NUaGFuWFNlY29uZHMiLDIwLHMpOnU8NDA/YS5mb3JtYXREaXN0YW5jZSgiaGFsZkFNaW51dGUiLDAscyk6dTw2MD9hLmZvcm1hdERpc3RhbmNlKCJsZXNzVGhhblhNaW51dGVzIiwxLHMpOmEuZm9ybWF0RGlzdGFuY2UoInhNaW51dGVzIiwxLHMpOmg9PT0wP2EuZm9ybWF0RGlzdGFuY2UoImxlc3NUaGFuWE1pbnV0ZXMiLDEscyk6YS5mb3JtYXREaXN0YW5jZSgieE1pbnV0ZXMiLGgscyk7aWYoaDw0NSlyZXR1cm4gYS5mb3JtYXREaXN0YW5jZSgieE1pbnV0ZXMiLGgscyk7aWYoaDw5MClyZXR1cm4gYS5mb3JtYXREaXN0YW5jZSgiYWJvdXRYSG91cnMiLDEscyk7aWYoaDxsOCl7bGV0IHg9TWF0aC5yb3VuZChoLzYwKTtyZXR1cm4gYS5mb3JtYXREaXN0YW5jZSgiYWJvdXRYSG91cnMiLHgscyl9ZWxzZXtpZihoPG4pcmV0dXJuIGEuZm9ybWF0RGlzdGFuY2UoInhEYXlzIiwxLHMpO2lmKGg8RjApe2xldCB4PU1hdGgucm91bmQoaC9sOCk7cmV0dXJuIGEuZm9ybWF0RGlzdGFuY2UoInhEYXlzIix4LHMpfWVsc2UgaWYoaDxGMCoyKXJldHVybiBmPU1hdGgucm91bmQoaC9GMCksYS5mb3JtYXREaXN0YW5jZSgiYWJvdXRYTW9udGhzIixmLHMpfWlmKGY9ajAoYyxsKSxmPDEyKXtsZXQgeD1NYXRoLnJvdW5kKGgvRjApO3JldHVybiBhLmZvcm1hdERpc3RhbmNlKCJ4TW9udGhzIix4LHMpfWVsc2V7bGV0IHg9ZiUxMix2PU1hdGgudHJ1bmMoZi8xMik7cmV0dXJuIHg8Mz9hLmZvcm1hdERpc3RhbmNlKCJhYm91dFhZZWFycyIsdixzKTp4PDk/YS5mb3JtYXREaXN0YW5jZSgib3ZlclhZZWFycyIsdixzKTphLmZvcm1hdERpc3RhbmNlKCJhbG1vc3RYWWVhcnMiLHYrMSxzKX19dmFyIHNoaSxRUT1wKCgpPT57STYoKTtNYSgpO2psKCk7anIoKTtMNigpO1J0KCk7RG0oKTtFbSgpO3NoaT1oQ30pO2Z1bmN0aW9uIGZDKGUsdCxyKXtsZXQgaT1FcigpLGE9cj8ubG9jYWxlPz9pLmxvY2FsZT8/d24sbj1rYShlLHQpO2lmKGlzTmFOKG4pKXRocm93IG5ldyBSYW5nZUVycm9yKCJJbnZhbGlkIHRpbWUgdmFsdWUiKTtsZXQgbz1PYmplY3QuYXNzaWduKHt9LHIse2FkZFN1ZmZpeDpyPy5hZGRTdWZmaXgsY29tcGFyaXNvbjpufSksW3MsbF09dXQocj8uaW4sLi4ubj4wP1t0LGVdOltlLHRdKSxjPVNhKHI/LnJvdW5kaW5nTWV0aG9kPz8icm91bmQiKSx1PWwuZ2V0VGltZSgpLXMuZ2V0VGltZSgpLGQ9dS93YSxoPUUxKGwpLUUxKHMpLGY9KHUtaCkvd2EseD1yPy51bml0LHY7aWYoeD92PXg6ZDwxP3Y9InNlY29uZCI6ZDw2MD92PSJtaW51dGUiOmQ8bDg/dj0iaG91ciI6ZjxGMD92PSJkYXkiOmY8eVE/dj0ibW9udGgiOnY9InllYXIiLHY9PT0ic2Vjb25kIil7bGV0IGI9Yyh1LzFlMyk7cmV0dXJuIGEuZm9ybWF0RGlzdGFuY2UoInhTZWNvbmRzIixiLG8pfWVsc2UgaWYodj09PSJtaW51dGUiKXtsZXQgYj1jKGQpO3JldHVybiBhLmZvcm1hdERpc3RhbmNlKCJ4TWludXRlcyIsYixvKX1lbHNlIGlmKHY9PT0iaG91ciIpe2xldCBiPWMoZC82MCk7cmV0dXJuIGEuZm9ybWF0RGlzdGFuY2UoInhIb3VycyIsYixvKX1lbHNlIGlmKHY9PT0iZGF5Iil7bGV0IGI9YyhmL2w4KTtyZXR1cm4gYS5mb3JtYXREaXN0YW5jZSgieERheXMiLGIsbyl9ZWxzZSBpZih2PT09Im1vbnRoIil7bGV0IGI9YyhmL0YwKTtyZXR1cm4gYj09PTEyJiZ4IT09Im1vbnRoIj9hLmZvcm1hdERpc3RhbmNlKCJ4WWVhcnMiLDEsbyk6YS5mb3JtYXREaXN0YW5jZSgieE1vbnRocyIsYixvKX1lbHNle2xldCBiPWMoZi95USk7cmV0dXJuIGEuZm9ybWF0RGlzdGFuY2UoInhZZWFycyIsYixvKX19dmFyIGdoaSxKUT1wKCgpPT57STYoKTtNYSgpO1dsKCk7amwoKTtqcigpO0w2KCk7UnQoKTtnaGk9ZkN9KTtmdW5jdGlvbiBqUGUoZSx0KXtyZXR1cm4gaEMoZSxRdChlKSx0KX12YXIgeWhpLFZQZT1wKCgpPT57YmkoKTtRUSgpO3loaT1qUGV9KTtmdW5jdGlvbiBVUGUoZSx0KXtyZXR1cm4gZkMoZSxRdChlKSx0KX12YXIgU2hpLFdQZT1wKCgpPT57YmkoKTtKUSgpO1NoaT1VUGV9KTtmdW5jdGlvbiBHUGUoZSx0KXtsZXQgcj1FcigpLGk9dD8ubG9jYWxlPz9yLmxvY2FsZT8/d24sYT10Py5mb3JtYXQ/P0FEcixuPXQ/Lnplcm8/PyExLG89dD8uZGVsaW1pdGVyPz8iICI7cmV0dXJuIGkuZm9ybWF0RGlzdGFuY2U/YS5yZWR1Y2UoKGwsYyk9PntsZXQgdT1geCR7Yy5yZXBsYWNlKC8oXi4pLyxoPT5oLnRvVXBwZXJDYXNlKCkpfWAsZD1lW2NdO3JldHVybiBkIT09dm9pZCAwJiYobnx8ZVtjXSk/bC5jb25jYXQoaS5mb3JtYXREaXN0YW5jZSh1LGQpKTpsfSxbXSkuam9pbihvKToiIn12YXIgQURyLF9oaSxZUGU9cCgoKT0+e0k2KCk7TWEoKTtBRHI9WyJ5ZWFycyIsIm1vbnRocyIsIndlZWtzIiwiZGF5cyIsImhvdXJzIiwibWludXRlcyIsInNlY29uZHMiXTtfaGk9R1BlfSk7ZnVuY3Rpb24gWlBlKGUsdCl7bGV0IHI9Y2UoZSx0Py5pbik7aWYoaXNOYU4oK3IpKXRocm93IG5ldyBSYW5nZUVycm9yKCJJbnZhbGlkIHRpbWUgdmFsdWUiKTtsZXQgaT10Py5mb3JtYXQ/PyJleHRlbmRlZCIsYT10Py5yZXByZXNlbnRhdGlvbj8/ImNvbXBsZXRlIixuPSIiLG89IiIscz1pPT09ImV4dGVuZGVkIj8iLSI6IiIsbD1pPT09ImV4dGVuZGVkIj8iOiI6IiI7aWYoYSE9PSJ0aW1lIil7bGV0IGM9bnQoci5nZXREYXRlKCksMiksdT1udChyLmdldE1vbnRoKCkrMSwyKTtuPWAke250KHIuZ2V0RnVsbFllYXIoKSw0KX0ke3N9JHt1fSR7c30ke2N9YH1pZihhIT09ImRhdGUiKXtsZXQgYz1yLmdldFRpbWV6b25lT2Zmc2V0KCk7aWYoYyE9PTApe2xldCB2PU1hdGguYWJzKGMpLGI9bnQoTWF0aC50cnVuYyh2LzYwKSwyKSx5PW50KHYlNjAsMik7bz1gJHtjPDA/IisiOiItIn0ke2J9OiR7eX1gfWVsc2Ugbz0iWiI7bGV0IHU9bnQoci5nZXRIb3VycygpLDIpLGQ9bnQoci5nZXRNaW51dGVzKCksMiksaD1udChyLmdldFNlY29uZHMoKSwyKSxmPW49PT0iIj8iIjoiVCIseD1bdSxkLGhdLmpvaW4obCk7bj1gJHtufSR7Zn0ke3h9JHtvfWB9cmV0dXJuIG59dmFyIEVoaSxYUGU9cCgoKT0+e042KCk7UmUoKTtFaGk9WlBlfSk7ZnVuY3Rpb24gUVBlKGUsdCl7bGV0IHI9Y2UoZSx0Py5pbik7aWYoIVhpKHIpKXRocm93IG5ldyBSYW5nZUVycm9yKCJJbnZhbGlkIHRpbWUgdmFsdWUiKTtsZXQgaT10Py5mb3JtYXQ/PyJleHRlbmRlZCIsYT10Py5yZXByZXNlbnRhdGlvbj8/ImNvbXBsZXRlIixuPSIiLG89aT09PSJleHRlbmRlZCI/Ii0iOiIiLHM9aT09PSJleHRlbmRlZCI/IjoiOiIiO2lmKGEhPT0idGltZSIpe2xldCBsPW50KHIuZ2V0RGF0ZSgpLDIpLGM9bnQoci5nZXRNb250aCgpKzEsMik7bj1gJHtudChyLmdldEZ1bGxZZWFyKCksNCl9JHtvfSR7Y30ke299JHtsfWB9aWYoYSE9PSJkYXRlIil7bGV0IGw9bnQoci5nZXRIb3VycygpLDIpLGM9bnQoci5nZXRNaW51dGVzKCksMiksdT1udChyLmdldFNlY29uZHMoKSwyKTtuPWAke259JHtuPT09IiI/IiI6IiAifSR7bH0ke3N9JHtjfSR7c30ke3V9YH1yZXR1cm4gbn12YXIgRmhpLEpQZT1wKCgpPT57TjYoKTtVbCgpO1JlKCk7RmhpPVFQZX0pO2Z1bmN0aW9uIEtQZShlKXtsZXR7eWVhcnM6dD0wLG1vbnRoczpyPTAsZGF5czppPTAsaG91cnM6YT0wLG1pbnV0ZXM6bj0wLHNlY29uZHM6bz0wfT1lO3JldHVybmBQJHt0fVkke3J9TSR7aX1EVCR7YX1IJHtufU0ke299U2B9dmFyIFJoaSxlTmU9cCgoKT0+e1JoaT1LUGV9KTtmdW5jdGlvbiB0TmUoZSx0KXtsZXQgcj1jZShlLHQ/LmluKTtpZighWGkocikpdGhyb3cgbmV3IFJhbmdlRXJyb3IoIkludmFsaWQgdGltZSB2YWx1ZSIpO2xldCBpPXQ/LmZyYWN0aW9uRGlnaXRzPz8wLGE9bnQoci5nZXREYXRlKCksMiksbj1udChyLmdldE1vbnRoKCkrMSwyKSxvPXIuZ2V0RnVsbFllYXIoKSxzPW50KHIuZ2V0SG91cnMoKSwyKSxsPW50KHIuZ2V0TWludXRlcygpLDIpLGM9bnQoci5nZXRTZWNvbmRzKCksMiksdT0iIjtpZihpPjApe2xldCBmPXIuZ2V0TWlsbGlzZWNvbmRzKCkseD1NYXRoLnRydW5jKGYqTWF0aC5wb3coMTAsaS0zKSk7dT0iLiIrbnQoeCxpKX1sZXQgZD0iIixoPXIuZ2V0VGltZXpvbmVPZmZzZXQoKTtpZihoIT09MCl7bGV0IGY9TWF0aC5hYnMoaCkseD1udChNYXRoLnRydW5jKGYvNjApLDIpLHY9bnQoZiU2MCwyKTtkPWAke2g8MD8iKyI6Ii0ifSR7eH06JHt2fWB9ZWxzZSBkPSJaIjtyZXR1cm5gJHtvfS0ke259LSR7YX1UJHtzfToke2x9OiR7Y30ke3V9JHtkfWB9dmFyIFZoaSxyTmU9cCgoKT0+e042KCk7VWwoKTtSZSgpO1ZoaT10TmV9KTtmdW5jdGlvbiBpTmUoZSl7bGV0IHQ9Y2UoZSk7aWYoIVhpKHQpKXRocm93IG5ldyBSYW5nZUVycm9yKCJJbnZhbGlkIHRpbWUgdmFsdWUiKTtsZXQgcj1ERHJbdC5nZXRVVENEYXkoKV0saT1udCh0LmdldFVUQ0RhdGUoKSwyKSxhPUVEclt0LmdldFVUQ01vbnRoKCldLG49dC5nZXRVVENGdWxsWWVhcigpLG89bnQodC5nZXRVVENIb3VycygpLDIpLHM9bnQodC5nZXRVVENNaW51dGVzKCksMiksbD1udCh0LmdldFVUQ1NlY29uZHMoKSwyKTtyZXR1cm5gJHtyfSwgJHtpfSAke2F9ICR7bn0gJHtvfToke3N9OiR7bH0gR01UYH12YXIgRERyLEVEcixaaGksYU5lPXAoKCk9PntONigpO1VsKCk7UmUoKTtERHI9WyJTdW4iLCJNb24iLCJUdWUiLCJXZWQiLCJUaHUiLCJGcmkiLCJTYXQiXSxFRHI9WyJKYW4iLCJGZWIiLCJNYXIiLCJBcHIiLCJNYXkiLCJKdW4iLCJKdWwiLCJBdWciLCJTZXAiLCJPY3QiLCJOb3YiLCJEZWMiXTtaaGk9aU5lfSk7ZnVuY3Rpb24gbk5lKGUsdCxyKXtsZXRbaSxhXT11dChyPy5pbixlLHQpLG49RXIoKSxvPXI/LmxvY2FsZT8/bi5sb2NhbGU/P3duLHM9cj8ud2Vla1N0YXJ0c09uPz9yPy5sb2NhbGU/Lm9wdGlvbnM/LndlZWtTdGFydHNPbj8/bi53ZWVrU3RhcnRzT24/P24ubG9jYWxlPy5vcHRpb25zPy53ZWVrU3RhcnRzT24/PzAsbD1JaShpLGEpO2lmKGlzTmFOKGwpKXRocm93IG5ldyBSYW5nZUVycm9yKCJJbnZhbGlkIHRpbWUgdmFsdWUiKTtsZXQgYztsPC02P2M9Im90aGVyIjpsPC0xP2M9Imxhc3RXZWVrIjpsPDA/Yz0ieWVzdGVyZGF5IjpsPDE/Yz0idG9kYXkiOmw8Mj9jPSJ0b21vcnJvdyI6bDw3P2M9Im5leHRXZWVrIjpjPSJvdGhlciI7bGV0IHU9by5mb3JtYXRSZWxhdGl2ZShjLGksYSx7bG9jYWxlOm8sd2Vla1N0YXJ0c09uOnN9KTtyZXR1cm4gRm0oaSx1LHtsb2NhbGU6byx3ZWVrU3RhcnRzT246c30pfXZhciByZmksb05lPXAoKCk9PntJNigpO01hKCk7anIoKTtWbCgpO1hRKCk7cmZpPW5OZX0pO2Z1bmN0aW9uIHNOZShlLHQpe3JldHVybiBjZShlKjFlMyx0Py5pbil9dmFyIG5maSxsTmU9cCgoKT0+e1JlKCk7bmZpPXNOZX0pO2Z1bmN0aW9uIG1DKGUsdCl7cmV0dXJuIGNlKGUsdD8uaW4pLmdldERhdGUoKX12YXIgbGZpLEtRPXAoKCk9PntSZSgpO2xmaT1tQ30pO2Z1bmN0aW9uIEcwKGUsdCl7cmV0dXJuIGNlKGUsdD8uaW4pLmdldERheSgpfXZhciB1ZmksT209cCgoKT0+e1JlKCk7dWZpPUcwfSk7ZnVuY3Rpb24gZ0MoZSx0KXtsZXQgcj1jZShlLHQ/LmluKSxpPXIuZ2V0RnVsbFllYXIoKSxhPXIuZ2V0TW9udGgoKSxuPU5lKHIsMCk7cmV0dXJuIG4uc2V0RnVsbFllYXIoaSxhKzEsMCksbi5zZXRIb3VycygwLDAsMCwwKSxuLmdldERhdGUoKX12YXIgbWZpLGVKPXAoKCk9PntndCgpO1JlKCk7bWZpPWdDfSk7ZnVuY3Rpb24gYkMoZSx0KXtsZXQgaT1jZShlLHQ/LmluKS5nZXRGdWxsWWVhcigpO3JldHVybiBpJTQwMD09PTB8fGklND09PTAmJmklMTAwIT09MH12YXIgdmZpLHRKPXAoKCk9PntSZSgpO3ZmaT1iQ30pO2Z1bmN0aW9uIGNOZShlLHQpe2xldCByPWNlKGUsdD8uaW4pO3JldHVybiBOdW1iZXIuaXNOYU4oK3IpP05hTjpiQyhyKT8zNjY6MzY1fXZhciBNZmksZE5lPXAoKCk9Pnt0SigpO1JlKCk7TWZpPWNOZX0pO2Z1bmN0aW9uIHVOZShlLHQpe2xldCBpPWNlKGUsdD8uaW4pLmdldEZ1bGxZZWFyKCk7cmV0dXJuIE1hdGguZmxvb3IoaS8xMCkqMTB9dmFyIHpmaSxwTmU9cCgoKT0+e1JlKCk7emZpPXVOZX0pO2Z1bmN0aW9uIHZDKCl7cmV0dXJuIE9iamVjdC5hc3NpZ24oe30sRXIoKSl9dmFyIF9maSxySj1wKCgpPT57TWEoKTtfZmk9dkN9KTtmdW5jdGlvbiBoTmUoZSx0KXtyZXR1cm4gY2UoZSx0Py5pbikuZ2V0SG91cnMoKX12YXIgRGZpLGZOZT1wKCgpPT57UmUoKTtEZmk9aE5lfSk7ZnVuY3Rpb24geEMoZSx0KXtsZXQgcj1jZShlLHQ/LmluKS5nZXREYXkoKTtyZXR1cm4gcj09PTA/NzpyfXZhciBJZmksaUo9cCgoKT0+e1JlKCk7SWZpPXhDfSk7ZnVuY3Rpb24gbU5lKGUsdCl7bGV0IHI9Qm4oZSx0KSxhPStCbihIMChyLDYwKSktK3I7cmV0dXJuIE1hdGgucm91bmQoYS9fcyl9dmFyIFJmaSxnTmU9cCgoKT0+e0xtKCk7UnQoKTt1OCgpO1JmaT1tTmV9KTtmdW5jdGlvbiBiTmUoZSl7cmV0dXJuIGNlKGUpLmdldE1pbGxpc2Vjb25kcygpfXZhciBxZmksdk5lPXAoKCk9PntSZSgpO3FmaT1iTmV9KTtmdW5jdGlvbiB4TmUoZSx0KXtyZXR1cm4gY2UoZSx0Py5pbikuZ2V0TWludXRlcygpfXZhciBVZmkseU5lPXAoKCk9PntSZSgpO1VmaT14TmV9KTtmdW5jdGlvbiB3TmUoZSx0KXtyZXR1cm4gY2UoZSx0Py5pbikuZ2V0TW9udGgoKX12YXIgWWZpLE1OZT1wKCgpPT57UmUoKTtZZmk9d05lfSk7ZnVuY3Rpb24ga05lKGUsdCl7bGV0W3IsaV09WytjZShlLnN0YXJ0KSwrY2UoZS5lbmQpXS5zb3J0KChkLGgpPT5kLWgpLFthLG5dPVsrY2UodC5zdGFydCksK2NlKHQuZW5kKV0uc29ydCgoZCxoKT0+ZC1oKTtpZighKHI8biYmYTxpKSlyZXR1cm4gMDtsZXQgcz1hPHI/cjphLGw9cy1FMShzKSxjPW4+aT9pOm4sdT1jLUUxKGMpO3JldHVybiBNYXRoLmNlaWwoKHUtbCkvTXopfXZhciBLZmksU05lPXAoKCk9PntqbCgpO1J0KCk7UmUoKTtLZmk9a05lfSk7ZnVuY3Rpb24gek5lKGUpe3JldHVybiBjZShlKS5nZXRTZWNvbmRzKCl9dmFyIHI3aSxDTmU9cCgoKT0+e1JlKCk7cjdpPXpOZX0pO2Z1bmN0aW9uIFROZShlKXtyZXR1cm4rY2UoZSl9dmFyIG43aSxfTmU9cCgoKT0+e1JlKCk7bjdpPVROZX0pO2Z1bmN0aW9uIExOZShlKXtyZXR1cm4gTWF0aC50cnVuYygrY2UoZSkvMWUzKX12YXIgbDdpLEFOZT1wKCgpPT57UmUoKTtsN2k9TE5lfSk7ZnVuY3Rpb24gRE5lKGUsdCl7bGV0IHI9RXIoKSxpPXQ/LndlZWtTdGFydHNPbj8/dD8ubG9jYWxlPy5vcHRpb25zPy53ZWVrU3RhcnRzT24/P3Iud2Vla1N0YXJ0c09uPz9yLmxvY2FsZT8ub3B0aW9ucz8ud2Vla1N0YXJ0c09uPz8wLGE9bUMoY2UoZSx0Py5pbikpO2lmKGlzTmFOKGEpKXJldHVybiBOYU47bGV0IG49RzAoVjAoZSx0KSksbz1pLW47bzw9MCYmKG8rPTcpO2xldCBzPWEtbztyZXR1cm4gTWF0aC5jZWlsKHMvNykrMX12YXIgbTdpLEVOZT1wKCgpPT57TWEoKTtLUSgpO09tKCk7JG0oKTtSZSgpO203aT1ETmV9KTtmdW5jdGlvbiB5QyhlLHQpe2xldCByPWNlKGUsdD8uaW4pLGk9ci5nZXRNb250aCgpO3JldHVybiByLnNldEZ1bGxZZWFyKHIuZ2V0RnVsbFllYXIoKSxpKzEsMCksci5zZXRIb3VycygwLDAsMCwwKSxjZShyLHQ/LmluKX12YXIgdjdpLGFKPXAoKCk9PntSZSgpO3Y3aT15Q30pO2Z1bmN0aW9uICROZShlLHQpe2xldCByPWNlKGUsdD8uaW4pO3JldHVybiBENih5QyhyLHQpLFYwKHIsdCksdCkrMX12YXIgUzdpLElOZT1wKCgpPT57anooKTthSigpOyRtKCk7UmUoKTtTN2k9JE5lfSk7ZnVuY3Rpb24gUE5lKGUsdCl7cmV0dXJuIGNlKGUsdD8uaW4pLmdldEZ1bGxZZWFyKCl9dmFyIFQ3aSxOTmU9cCgoKT0+e1JlKCk7VDdpPVBOZX0pO2Z1bmN0aW9uIEZOZShlKXtyZXR1cm4gTWF0aC50cnVuYyhlKlJuKX12YXIgQTdpLE9OZT1wKCgpPT57UnQoKTtBN2k9Rk5lfSk7ZnVuY3Rpb24gUk5lKGUpe3JldHVybiBNYXRoLnRydW5jKGUqa3opfXZhciAkN2ksQk5lPXAoKCk9PntSdCgpOyQ3aT1STmV9KTtmdW5jdGlvbiBITmUoZSl7cmV0dXJuIE1hdGgudHJ1bmMoZSpfNil9dmFyIE43aSxxTmU9cCgoKT0+e1J0KCk7TjdpPUhOZX0pO2Z1bmN0aW9uIGpOZShlLHQscil7bGV0W2ksYV09dXQocj8uaW4sZSx0KTtpZihpc05hTigraSkpdGhyb3cgbmV3IFR5cGVFcnJvcigiU3RhcnQgZGF0ZSBpcyBpbnZhbGlkIik7aWYoaXNOYU4oK2EpKXRocm93IG5ldyBUeXBlRXJyb3IoIkVuZCBkYXRlIGlzIGludmFsaWQiKTtpZihyPy5hc3NlcnRQb3NpdGl2ZSYmK2k+K2EpdGhyb3cgbmV3IFR5cGVFcnJvcigiRW5kIGRhdGUgbXVzdCBiZSBhZnRlciBzdGFydCBkYXRlIik7cmV0dXJue3N0YXJ0OmksZW5kOmF9fXZhciBSN2ksVk5lPXAoKCk9PntqcigpO1I3aT1qTmV9KTtmdW5jdGlvbiBVTmUoZSx0KXtsZXR7c3RhcnQ6cixlbmQ6aX09UGkodD8uaW4sZSksYT17fSxuPUt6KGkscik7biYmKGEueWVhcnM9bik7bGV0IG89TzAocix7eWVhcnM6YS55ZWFyc30pLHM9ajAoaSxvKTtzJiYoYS5tb250aHM9cyk7bGV0IGw9TzAobyx7bW9udGhzOmEubW9udGhzfSksYz1nOChpLGwpO2MmJihhLmRheXM9Yyk7bGV0IHU9TzAobCx7ZGF5czphLmRheXN9KSxkPUU2KGksdSk7ZCYmKGEuaG91cnM9ZCk7bGV0IGg9TzAodSx7aG91cnM6YS5ob3Vyc30pLGY9JDYoaSxoKTtmJiYoYS5taW51dGVzPWYpO2xldCB4PU8wKGgse21pbnV0ZXM6YS5taW51dGVzfSksdj1QcyhpLHgpO3JldHVybiB2JiYoYS5zZWNvbmRzPXYpLGF9dmFyIFo3aSxXTmU9cCgoKT0+e05zKCk7U1EoKTtVeigpO1d6KCk7WnooKTtEbSgpO0VtKCk7cVEoKTtaN2k9VU5lfSk7ZnVuY3Rpb24gR05lKGUsdCxyKXtsZXQgaTtyZXR1cm4gJERyKHQpP2k9dDpyPXQsbmV3IEludGwuRGF0ZVRpbWVGb3JtYXQocj8ubG9jYWxlLGkpLmZvcm1hdChjZShlKSl9ZnVuY3Rpb24gJERyKGUpe3JldHVybiBlIT09dm9pZCAwJiYhKCJsb2NhbGUiaW4gZSl9dmFyIEo3aSxZTmU9cCgoKT0+e1JlKCk7SjdpPUdOZX0pO2Z1bmN0aW9uIFpOZShlLHQscil7bGV0IGk9MCxhLFtuLG9dPXV0KHI/LmluLGUsdCk7aWYocj8udW5pdClhPXI/LnVuaXQsYT09PSJzZWNvbmQiP2k9UHMobixvKTphPT09Im1pbnV0ZSI/aT0kNihuLG8pOmE9PT0iaG91ciI/aT1FNihuLG8pOmE9PT0iZGF5Ij9pPUlpKG4sbyk6YT09PSJ3ZWVrIj9pPUQ2KG4sbyk6YT09PSJtb250aCI/aT1BNihuLG8pOmE9PT0icXVhcnRlciI/aT1tOChuLG8pOmE9PT0ieWVhciImJihpPXEwKG4sbykpO2Vsc2V7bGV0IGw9UHMobixvKTtNYXRoLmFicyhsKTxjOD8oaT1QcyhuLG8pLGE9InNlY29uZCIpOk1hdGguYWJzKGwpPF82PyhpPSQ2KG4sbyksYT0ibWludXRlIik6TWF0aC5hYnMobCk8eXomJk1hdGguYWJzKElpKG4sbykpPDE/KGk9RTYobixvKSxhPSJob3VyIik6TWF0aC5hYnMobCk8bUllJiYoaT1JaShuLG8pKSYmTWF0aC5hYnMoaSk8Nz9hPSJkYXkiOk1hdGguYWJzKGwpPE1RPyhpPUQ2KG4sbyksYT0id2VlayIpOk1hdGguYWJzKGwpPGdJZT8oaT1BNihuLG8pLGE9Im1vbnRoIik6TWF0aC5hYnMobCk8d1E/bTgobixvKTw0PyhpPW04KG4sbyksYT0icXVhcnRlciIpOihpPXEwKG4sbyksYT0ieWVhciIpOihpPXEwKG4sbyksYT0ieWVhciIpfXJldHVybiBuZXcgSW50bC5SZWxhdGl2ZVRpbWVGb3JtYXQocj8ubG9jYWxlLHtudW1lcmljOiJhdXRvIiwuLi5yfSkuZm9ybWF0KGksYSl9dmFyIGRtaSxYTmU9cCgoKT0+e2pyKCk7UnQoKTtWbCgpO3F6KCk7UlEoKTtqeigpO1Z6KCk7V3ooKTtaeigpO0VtKCk7ZG1pPVpOZX0pO2Z1bmN0aW9uIFFOZShlLHQpe3JldHVybitjZShlKT4rY2UodCl9dmFyIGhtaSxKTmU9cCgoKT0+e1JlKCk7aG1pPVFOZX0pO2Z1bmN0aW9uIEtOZShlLHQpe3JldHVybitjZShlKTwrY2UodCl9dmFyIGdtaSxlRmU9cCgoKT0+e1JlKCk7Z21pPUtOZX0pO2Z1bmN0aW9uIHRGZShlLHQpe3JldHVybitjZShlKT09K2NlKHQpfXZhciB4bWksckZlPXAoKCk9PntSZSgpO3htaT10RmV9KTtmdW5jdGlvbiBpRmUoZSx0LHIpe2xldCBpPW5ldyBEYXRlKGUsdCxyKTtyZXR1cm4gaS5nZXRGdWxsWWVhcigpPT09ZSYmaS5nZXRNb250aCgpPT09dCYmaS5nZXREYXRlKCk9PT1yfXZhciB3bWksYUZlPXAoKCk9Pnt3bWk9aUZlfSk7ZnVuY3Rpb24gbkZlKGUsdCl7cmV0dXJuIGNlKGUsdD8uaW4pLmdldERhdGUoKT09PTF9dmFyIFNtaSxvRmU9cCgoKT0+e1JlKCk7U21pPW5GZX0pO2Z1bmN0aW9uIHNGZShlLHQpe3JldHVybiBjZShlLHQ/LmluKS5nZXREYXkoKT09PTV9dmFyIFRtaSxsRmU9cCgoKT0+e1JlKCk7VG1pPXNGZX0pO2Z1bmN0aW9uIGNGZShlKXtyZXR1cm4rY2UoZSk+RGF0ZS5ub3coKX12YXIgQW1pLGRGZT1wKCgpPT57UmUoKTtBbWk9Y0ZlfSk7ZnVuY3Rpb24gd0MoZSx0KXtsZXQgcj1JRHIodCk/bmV3IHQoMCk6TmUodCwwKTtyZXR1cm4gci5zZXRGdWxsWWVhcihlLmdldEZ1bGxZZWFyKCksZS5nZXRNb250aCgpLGUuZ2V0RGF0ZSgpKSxyLnNldEhvdXJzKGUuZ2V0SG91cnMoKSxlLmdldE1pbnV0ZXMoKSxlLmdldFNlY29uZHMoKSxlLmdldE1pbGxpc2Vjb25kcygpKSxyfWZ1bmN0aW9uIElEcihlKXtyZXR1cm4gdHlwZW9mIGU9PSJmdW5jdGlvbiImJmUucHJvdG90eXBlPy5jb25zdHJ1Y3Rvcj09PWV9dmFyICRtaSxuSj1wKCgpPT57Z3QoKTskbWk9d0N9KTt2YXIgUERyLE1DLGtDLFNDLG9KPXAoKCk9PntndCgpO25KKCk7UERyPTEwLE1DPWNsYXNze3N1YlByaW9yaXR5PTA7dmFsaWRhdGUodCxyKXtyZXR1cm4hMH19LGtDPWNsYXNzIGV4dGVuZHMgTUN7Y29uc3RydWN0b3IodCxyLGksYSxuKXtzdXBlcigpLHRoaXMudmFsdWU9dCx0aGlzLnZhbGlkYXRlVmFsdWU9cix0aGlzLnNldFZhbHVlPWksdGhpcy5wcmlvcml0eT1hLG4mJih0aGlzLnN1YlByaW9yaXR5PW4pfXZhbGlkYXRlKHQscil7cmV0dXJuIHRoaXMudmFsaWRhdGVWYWx1ZSh0LHRoaXMudmFsdWUscil9c2V0KHQscixpKXtyZXR1cm4gdGhpcy5zZXRWYWx1ZSh0LHIsdGhpcy52YWx1ZSxpKX19LFNDPWNsYXNzIGV4dGVuZHMgTUN7cHJpb3JpdHk9UERyO3N1YlByaW9yaXR5PS0xO2NvbnN0cnVjdG9yKHQscil7c3VwZXIoKSx0aGlzLmNvbnRleHQ9dHx8KGk9Pk5lKHIsaSkpfXNldCh0LHIpe3JldHVybiByLnRpbWVzdGFtcElzU2V0P3Q6TmUodCx3Qyh0LHRoaXMuY29udGV4dCkpfX19KTt2YXIgcnQsTXI9cCgoKT0+e29KKCk7cnQ9Y2xhc3N7cnVuKHQscixpLGEpe2xldCBuPXRoaXMucGFyc2UodCxyLGksYSk7cmV0dXJuIG4/e3NldHRlcjpuZXcga0Mobi52YWx1ZSx0aGlzLnZhbGlkYXRlLHRoaXMuc2V0LHRoaXMucHJpb3JpdHksdGhpcy5zdWJQcmlvcml0eSkscmVzdDpuLnJlc3R9Om51bGx9dmFsaWRhdGUodCxyLGkpe3JldHVybiEwfX19KTt2YXIgekMsdUZlPXAoKCk9PntNcigpO3pDPWNsYXNzIGV4dGVuZHMgcnR7cHJpb3JpdHk9MTQwO3BhcnNlKHQscixpKXtzd2l0Y2gocil7Y2FzZSJHIjpjYXNlIkdHIjpjYXNlIkdHRyI6cmV0dXJuIGkuZXJhKHQse3dpZHRoOiJhYmJyZXZpYXRlZCJ9KXx8aS5lcmEodCx7d2lkdGg6Im5hcnJvdyJ9KTtjYXNlIkdHR0dHIjpyZXR1cm4gaS5lcmEodCx7d2lkdGg6Im5hcnJvdyJ9KTtkZWZhdWx0OnJldHVybiBpLmVyYSh0LHt3aWR0aDoid2lkZSJ9KXx8aS5lcmEodCx7d2lkdGg6ImFiYnJldmlhdGVkIn0pfHxpLmVyYSh0LHt3aWR0aDoibmFycm93In0pfX1zZXQodCxyLGkpe3JldHVybiByLmVyYT1pLHQuc2V0RnVsbFllYXIoaSwwLDEpLHQuc2V0SG91cnMoMCwwLDAsMCksdH1pbmNvbXBhdGlibGVUb2tlbnM9WyJSIiwidSIsInQiLCJUIl19fSk7dmFyIGhyLGtvLHphPXAoKCk9Pntocj17bW9udGg6L14oMVswLTJdfDA/XGQpLyxkYXRlOi9eKDNbMC0xXXxbMC0yXT9cZCkvLGRheU9mWWVhcjovXigzNlswLTZdfDNbMC01XVxkfFswLTJdP1xkP1xkKS8sd2VlazovXig1WzAtM118WzAtNF0/XGQpLyxob3VyMjNoOi9eKDJbMC0zXXxbMC0xXT9cZCkvLGhvdXIyNGg6L14oMlswLTRdfFswLTFdP1xkKS8saG91cjExaDovXigxWzAtMV18MD9cZCkvLGhvdXIxMmg6L14oMVswLTJdfDA/XGQpLyxtaW51dGU6L15bMC01XT9cZC8sc2Vjb25kOi9eWzAtNV0/XGQvLHNpbmdsZURpZ2l0Oi9eXGQvLHR3b0RpZ2l0czovXlxkezEsMn0vLHRocmVlRGlnaXRzOi9eXGR7MSwzfS8sZm91ckRpZ2l0czovXlxkezEsNH0vLGFueURpZ2l0c1NpZ25lZDovXi0/XGQrLyxzaW5nbGVEaWdpdFNpZ25lZDovXi0/XGQvLHR3b0RpZ2l0c1NpZ25lZDovXi0/XGR7MSwyfS8sdGhyZWVEaWdpdHNTaWduZWQ6L14tP1xkezEsM30vLGZvdXJEaWdpdHNTaWduZWQ6L14tP1xkezEsNH0vfSxrbz17YmFzaWNPcHRpb25hbE1pbnV0ZXM6L14oWystXSkoXGR7Mn0pKFxkezJ9KT98Wi8sYmFzaWM6L14oWystXSkoXGR7Mn0pKFxkezJ9KXxaLyxiYXNpY09wdGlvbmFsU2Vjb25kczovXihbKy1dKShcZHsyfSkoXGR7Mn0pKChcZHsyfSkpP3xaLyxleHRlbmRlZDovXihbKy1dKShcZHsyfSk6KFxkezJ9KXxaLyxleHRlbmRlZE9wdGlvbmFsU2Vjb25kczovXihbKy1dKShcZHsyfSk6KFxkezJ9KSg6KFxkezJ9KSk/fFovfX0pO2Z1bmN0aW9uIFZyKGUsdCl7cmV0dXJuIGUmJnt2YWx1ZTp0KGUudmFsdWUpLHJlc3Q6ZS5yZXN0fX1mdW5jdGlvbiBjcihlLHQpe2xldCByPXQubWF0Y2goZSk7cmV0dXJuIHI/e3ZhbHVlOnBhcnNlSW50KHJbMF0sMTApLHJlc3Q6dC5zbGljZShyWzBdLmxlbmd0aCl9Om51bGx9ZnVuY3Rpb24gU28oZSx0KXtsZXQgcj10Lm1hdGNoKGUpO2lmKCFyKXJldHVybiBudWxsO2lmKHJbMF09PT0iWiIpcmV0dXJue3ZhbHVlOjAscmVzdDp0LnNsaWNlKDEpfTtsZXQgaT1yWzFdPT09IisiPzE6LTEsYT1yWzJdP3BhcnNlSW50KHJbMl0sMTApOjAsbj1yWzNdP3BhcnNlSW50KHJbM10sMTApOjAsbz1yWzVdP3BhcnNlSW50KHJbNV0sMTApOjA7cmV0dXJue3ZhbHVlOmkqKGEqUm4rbip3YStvKnM4KSxyZXN0OnQuc2xpY2UoclswXS5sZW5ndGgpfX1mdW5jdGlvbiBDQyhlKXtyZXR1cm4gY3IoaHIuYW55RGlnaXRzU2lnbmVkLGUpfWZ1bmN0aW9uIFB0KGUsdCl7c3dpdGNoKGUpe2Nhc2UgMTpyZXR1cm4gY3IoaHIuc2luZ2xlRGlnaXQsdCk7Y2FzZSAyOnJldHVybiBjcihoci50d29EaWdpdHMsdCk7Y2FzZSAzOnJldHVybiBjcihoci50aHJlZURpZ2l0cyx0KTtjYXNlIDQ6cmV0dXJuIGNyKGhyLmZvdXJEaWdpdHMsdCk7ZGVmYXVsdDpyZXR1cm4gY3IobmV3IFJlZ0V4cCgiXlxcZHsxLCIrZSsifSIpLHQpfX1mdW5jdGlvbiBUOChlLHQpe3N3aXRjaChlKXtjYXNlIDE6cmV0dXJuIGNyKGhyLnNpbmdsZURpZ2l0U2lnbmVkLHQpO2Nhc2UgMjpyZXR1cm4gY3IoaHIudHdvRGlnaXRzU2lnbmVkLHQpO2Nhc2UgMzpyZXR1cm4gY3IoaHIudGhyZWVEaWdpdHNTaWduZWQsdCk7Y2FzZSA0OnJldHVybiBjcihoci5mb3VyRGlnaXRzU2lnbmVkLHQpO2RlZmF1bHQ6cmV0dXJuIGNyKG5ldyBSZWdFeHAoIl4tP1xcZHsxLCIrZSsifSIpLHQpfX1mdW5jdGlvbiBfOChlKXtzd2l0Y2goZSl7Y2FzZSJtb3JuaW5nIjpyZXR1cm4gNDtjYXNlImV2ZW5pbmciOnJldHVybiAxNztjYXNlInBtIjpjYXNlIm5vb24iOmNhc2UiYWZ0ZXJub29uIjpyZXR1cm4gMTI7ZGVmYXVsdDpyZXR1cm4gMH19ZnVuY3Rpb24gVEMoZSx0KXtsZXQgcj10PjAsaT1yP3Q6MS10LGE7aWYoaTw9NTApYT1lfHwxMDA7ZWxzZXtsZXQgbj1pKzUwLG89TWF0aC50cnVuYyhuLzEwMCkqMTAwLHM9ZT49biUxMDA7YT1lK28tKHM/MTAwOjApfXJldHVybiByP2E6MS1hfWZ1bmN0aW9uIF9DKGUpe3JldHVybiBlJTQwMD09PTB8fGUlND09PTAmJmUlMTAwIT09MH12YXIgJHI9cCgoKT0+e1J0KCk7emEoKX0pO3ZhciBMQyxwRmU9cCgoKT0+e01yKCk7JHIoKTtMQz1jbGFzcyBleHRlbmRzIHJ0e3ByaW9yaXR5PTEzMDtpbmNvbXBhdGlibGVUb2tlbnM9WyJZIiwiUiIsInUiLCJ3IiwiSSIsImkiLCJlIiwiYyIsInQiLCJUIl07cGFyc2UodCxyLGkpe2xldCBhPW49Pih7eWVhcjpuLGlzVHdvRGlnaXRZZWFyOnI9PT0ieXkifSk7c3dpdGNoKHIpe2Nhc2UieSI6cmV0dXJuIFZyKFB0KDQsdCksYSk7Y2FzZSJ5byI6cmV0dXJuIFZyKGkub3JkaW5hbE51bWJlcih0LHt1bml0OiJ5ZWFyIn0pLGEpO2RlZmF1bHQ6cmV0dXJuIFZyKFB0KHIubGVuZ3RoLHQpLGEpfX12YWxpZGF0ZSh0LHIpe3JldHVybiByLmlzVHdvRGlnaXRZZWFyfHxyLnllYXI+MH1zZXQodCxyLGkpe2xldCBhPXQuZ2V0RnVsbFllYXIoKTtpZihpLmlzVHdvRGlnaXRZZWFyKXtsZXQgbz1UQyhpLnllYXIsYSk7cmV0dXJuIHQuc2V0RnVsbFllYXIobywwLDEpLHQuc2V0SG91cnMoMCwwLDAsMCksdH1sZXQgbj0hKCJlcmEiaW4gcil8fHIuZXJhPT09MT9pLnllYXI6MS1pLnllYXI7cmV0dXJuIHQuc2V0RnVsbFllYXIobiwwLDEpLHQuc2V0SG91cnMoMCwwLDAsMCksdH19fSk7dmFyIEFDLGhGZT1wKCgpPT57SW0oKTtmMigpO01yKCk7JHIoKTtBQz1jbGFzcyBleHRlbmRzIHJ0e3ByaW9yaXR5PTEzMDtwYXJzZSh0LHIsaSl7bGV0IGE9bj0+KHt5ZWFyOm4saXNUd29EaWdpdFllYXI6cj09PSJZWSJ9KTtzd2l0Y2gocil7Y2FzZSJZIjpyZXR1cm4gVnIoUHQoNCx0KSxhKTtjYXNlIllvIjpyZXR1cm4gVnIoaS5vcmRpbmFsTnVtYmVyKHQse3VuaXQ6InllYXIifSksYSk7ZGVmYXVsdDpyZXR1cm4gVnIoUHQoci5sZW5ndGgsdCksYSl9fXZhbGlkYXRlKHQscil7cmV0dXJuIHIuaXNUd29EaWdpdFllYXJ8fHIueWVhcj4wfXNldCh0LHIsaSxhKXtsZXQgbj1VMCh0LGEpO2lmKGkuaXNUd29EaWdpdFllYXIpe2xldCBzPVRDKGkueWVhcixuKTtyZXR1cm4gdC5zZXRGdWxsWWVhcihzLDAsYS5maXJzdFdlZWtDb250YWluc0RhdGUpLHQuc2V0SG91cnMoMCwwLDAsMCksZTEodCxhKX1sZXQgbz0hKCJlcmEiaW4gcil8fHIuZXJhPT09MT9pLnllYXI6MS1pLnllYXI7cmV0dXJuIHQuc2V0RnVsbFllYXIobywwLGEuZmlyc3RXZWVrQ29udGFpbnNEYXRlKSx0LnNldEhvdXJzKDAsMCwwLDApLGUxKHQsYSl9aW5jb21wYXRpYmxlVG9rZW5zPVsieSIsIlIiLCJ1IiwiUSIsInEiLCJNIiwiTCIsIkkiLCJkIiwiRCIsImkiLCJ0IiwiVCJdfX0pO3ZhciBEQyxmRmU9cCgoKT0+e0VzKCk7Z3QoKTtNcigpOyRyKCk7REM9Y2xhc3MgZXh0ZW5kcyBydHtwcmlvcml0eT0xMzA7cGFyc2UodCxyKXtyZXR1cm4gcj09PSJSIj9UOCg0LHQpOlQ4KHIubGVuZ3RoLHQpfXNldCh0LHIsaSl7bGV0IGE9TmUodCwwKTtyZXR1cm4gYS5zZXRGdWxsWWVhcihpLDAsNCksYS5zZXRIb3VycygwLDAsMCwwKSxyaShhKX1pbmNvbXBhdGlibGVUb2tlbnM9WyJHIiwieSIsIlkiLCJ1IiwiUSIsInEiLCJNIiwiTCIsInciLCJkIiwiRCIsImUiLCJjIiwidCIsIlQiXX19KTt2YXIgRUMsbUZlPXAoKCk9PntNcigpOyRyKCk7RUM9Y2xhc3MgZXh0ZW5kcyBydHtwcmlvcml0eT0xMzA7cGFyc2UodCxyKXtyZXR1cm4gcj09PSJ1Ij9UOCg0LHQpOlQ4KHIubGVuZ3RoLHQpfXNldCh0LHIsaSl7cmV0dXJuIHQuc2V0RnVsbFllYXIoaSwwLDEpLHQuc2V0SG91cnMoMCwwLDAsMCksdH1pbmNvbXBhdGlibGVUb2tlbnM9WyJHIiwieSIsIlkiLCJSIiwidyIsIkkiLCJpIiwiZSIsImMiLCJ0IiwiVCJdfX0pO3ZhciAkQyxnRmU9cCgoKT0+e01yKCk7JHIoKTskQz1jbGFzcyBleHRlbmRzIHJ0e3ByaW9yaXR5PTEyMDtwYXJzZSh0LHIsaSl7c3dpdGNoKHIpe2Nhc2UiUSI6Y2FzZSJRUSI6cmV0dXJuIFB0KHIubGVuZ3RoLHQpO2Nhc2UiUW8iOnJldHVybiBpLm9yZGluYWxOdW1iZXIodCx7dW5pdDoicXVhcnRlciJ9KTtjYXNlIlFRUSI6cmV0dXJuIGkucXVhcnRlcih0LHt3aWR0aDoiYWJicmV2aWF0ZWQiLGNvbnRleHQ6ImZvcm1hdHRpbmcifSl8fGkucXVhcnRlcih0LHt3aWR0aDoibmFycm93Iixjb250ZXh0OiJmb3JtYXR0aW5nIn0pO2Nhc2UiUVFRUVEiOnJldHVybiBpLnF1YXJ0ZXIodCx7d2lkdGg6Im5hcnJvdyIsY29udGV4dDoiZm9ybWF0dGluZyJ9KTtkZWZhdWx0OnJldHVybiBpLnF1YXJ0ZXIodCx7d2lkdGg6IndpZGUiLGNvbnRleHQ6ImZvcm1hdHRpbmcifSl8fGkucXVhcnRlcih0LHt3aWR0aDoiYWJicmV2aWF0ZWQiLGNvbnRleHQ6ImZvcm1hdHRpbmcifSl8fGkucXVhcnRlcih0LHt3aWR0aDoibmFycm93Iixjb250ZXh0OiJmb3JtYXR0aW5nIn0pfX12YWxpZGF0ZSh0LHIpe3JldHVybiByPj0xJiZyPD00fXNldCh0LHIsaSl7cmV0dXJuIHQuc2V0TW9udGgoKGktMSkqMywxKSx0LnNldEhvdXJzKDAsMCwwLDApLHR9aW5jb21wYXRpYmxlVG9rZW5zPVsiWSIsIlIiLCJxIiwiTSIsIkwiLCJ3IiwiSSIsImQiLCJEIiwiaSIsImUiLCJjIiwidCIsIlQiXX19KTt2YXIgSUMsYkZlPXAoKCk9PntNcigpOyRyKCk7SUM9Y2xhc3MgZXh0ZW5kcyBydHtwcmlvcml0eT0xMjA7cGFyc2UodCxyLGkpe3N3aXRjaChyKXtjYXNlInEiOmNhc2UicXEiOnJldHVybiBQdChyLmxlbmd0aCx0KTtjYXNlInFvIjpyZXR1cm4gaS5vcmRpbmFsTnVtYmVyKHQse3VuaXQ6InF1YXJ0ZXIifSk7Y2FzZSJxcXEiOnJldHVybiBpLnF1YXJ0ZXIodCx7d2lkdGg6ImFiYnJldmlhdGVkIixjb250ZXh0OiJzdGFuZGFsb25lIn0pfHxpLnF1YXJ0ZXIodCx7d2lkdGg6Im5hcnJvdyIsY29udGV4dDoic3RhbmRhbG9uZSJ9KTtjYXNlInFxcXFxIjpyZXR1cm4gaS5xdWFydGVyKHQse3dpZHRoOiJuYXJyb3ciLGNvbnRleHQ6InN0YW5kYWxvbmUifSk7ZGVmYXVsdDpyZXR1cm4gaS5xdWFydGVyKHQse3dpZHRoOiJ3aWRlIixjb250ZXh0OiJzdGFuZGFsb25lIn0pfHxpLnF1YXJ0ZXIodCx7d2lkdGg6ImFiYnJldmlhdGVkIixjb250ZXh0OiJzdGFuZGFsb25lIn0pfHxpLnF1YXJ0ZXIodCx7d2lkdGg6Im5hcnJvdyIsY29udGV4dDoic3RhbmRhbG9uZSJ9KX19dmFsaWRhdGUodCxyKXtyZXR1cm4gcj49MSYmcjw9NH1zZXQodCxyLGkpe3JldHVybiB0LnNldE1vbnRoKChpLTEpKjMsMSksdC5zZXRIb3VycygwLDAsMCwwKSx0fWluY29tcGF0aWJsZVRva2Vucz1bIlkiLCJSIiwiUSIsIk0iLCJMIiwidyIsIkkiLCJkIiwiRCIsImkiLCJlIiwiYyIsInQiLCJUIl19fSk7dmFyIFBDLHZGZT1wKCgpPT57emEoKTtNcigpOyRyKCk7UEM9Y2xhc3MgZXh0ZW5kcyBydHtpbmNvbXBhdGlibGVUb2tlbnM9WyJZIiwiUiIsInEiLCJRIiwiTCIsInciLCJJIiwiRCIsImkiLCJlIiwiYyIsInQiLCJUIl07cHJpb3JpdHk9MTEwO3BhcnNlKHQscixpKXtsZXQgYT1uPT5uLTE7c3dpdGNoKHIpe2Nhc2UiTSI6cmV0dXJuIFZyKGNyKGhyLm1vbnRoLHQpLGEpO2Nhc2UiTU0iOnJldHVybiBWcihQdCgyLHQpLGEpO2Nhc2UiTW8iOnJldHVybiBWcihpLm9yZGluYWxOdW1iZXIodCx7dW5pdDoibW9udGgifSksYSk7Y2FzZSJNTU0iOnJldHVybiBpLm1vbnRoKHQse3dpZHRoOiJhYmJyZXZpYXRlZCIsY29udGV4dDoiZm9ybWF0dGluZyJ9KXx8aS5tb250aCh0LHt3aWR0aDoibmFycm93Iixjb250ZXh0OiJmb3JtYXR0aW5nIn0pO2Nhc2UiTU1NTU0iOnJldHVybiBpLm1vbnRoKHQse3dpZHRoOiJuYXJyb3ciLGNvbnRleHQ6ImZvcm1hdHRpbmcifSk7ZGVmYXVsdDpyZXR1cm4gaS5tb250aCh0LHt3aWR0aDoid2lkZSIsY29udGV4dDoiZm9ybWF0dGluZyJ9KXx8aS5tb250aCh0LHt3aWR0aDoiYWJicmV2aWF0ZWQiLGNvbnRleHQ6ImZvcm1hdHRpbmcifSl8fGkubW9udGgodCx7d2lkdGg6Im5hcnJvdyIsY29udGV4dDoiZm9ybWF0dGluZyJ9KX19dmFsaWRhdGUodCxyKXtyZXR1cm4gcj49MCYmcjw9MTF9c2V0KHQscixpKXtyZXR1cm4gdC5zZXRNb250aChpLDEpLHQuc2V0SG91cnMoMCwwLDAsMCksdH19fSk7dmFyIE5DLHhGZT1wKCgpPT57emEoKTtNcigpOyRyKCk7TkM9Y2xhc3MgZXh0ZW5kcyBydHtwcmlvcml0eT0xMTA7cGFyc2UodCxyLGkpe2xldCBhPW49Pm4tMTtzd2l0Y2gocil7Y2FzZSJMIjpyZXR1cm4gVnIoY3IoaHIubW9udGgsdCksYSk7Y2FzZSJMTCI6cmV0dXJuIFZyKFB0KDIsdCksYSk7Y2FzZSJMbyI6cmV0dXJuIFZyKGkub3JkaW5hbE51bWJlcih0LHt1bml0OiJtb250aCJ9KSxhKTtjYXNlIkxMTCI6cmV0dXJuIGkubW9udGgodCx7d2lkdGg6ImFiYnJldmlhdGVkIixjb250ZXh0OiJzdGFuZGFsb25lIn0pfHxpLm1vbnRoKHQse3dpZHRoOiJuYXJyb3ciLGNvbnRleHQ6InN0YW5kYWxvbmUifSk7Y2FzZSJMTExMTCI6cmV0dXJuIGkubW9udGgodCx7d2lkdGg6Im5hcnJvdyIsY29udGV4dDoic3RhbmRhbG9uZSJ9KTtkZWZhdWx0OnJldHVybiBpLm1vbnRoKHQse3dpZHRoOiJ3aWRlIixjb250ZXh0OiJzdGFuZGFsb25lIn0pfHxpLm1vbnRoKHQse3dpZHRoOiJhYmJyZXZpYXRlZCIsY29udGV4dDoic3RhbmRhbG9uZSJ9KXx8aS5tb250aCh0LHt3aWR0aDoibmFycm93Iixjb250ZXh0OiJzdGFuZGFsb25lIn0pfX12YWxpZGF0ZSh0LHIpe3JldHVybiByPj0wJiZyPD0xMX1zZXQodCxyLGkpe3JldHVybiB0LnNldE1vbnRoKGksMSksdC5zZXRIb3VycygwLDAsMCwwKSx0fWluY29tcGF0aWJsZVRva2Vucz1bIlkiLCJSIiwicSIsIlEiLCJNIiwidyIsIkkiLCJEIiwiaSIsImUiLCJjIiwidCIsIlQiXX19KTtmdW5jdGlvbiBGQyhlLHQscil7bGV0IGk9Y2UoZSxyPy5pbiksYT16OChpLHIpLXQ7cmV0dXJuIGkuc2V0RGF0ZShpLmdldERhdGUoKS1hKjcpLGNlKGkscj8uaW4pfXZhciBTOWksc0o9cCgoKT0+e2RDKCk7UmUoKTtTOWk9RkN9KTt2YXIgT0MseUZlPXAoKCk9PntzSigpO2YyKCk7emEoKTtNcigpOyRyKCk7T0M9Y2xhc3MgZXh0ZW5kcyBydHtwcmlvcml0eT0xMDA7cGFyc2UodCxyLGkpe3N3aXRjaChyKXtjYXNlInciOnJldHVybiBjcihoci53ZWVrLHQpO2Nhc2Uid28iOnJldHVybiBpLm9yZGluYWxOdW1iZXIodCx7dW5pdDoid2VlayJ9KTtkZWZhdWx0OnJldHVybiBQdChyLmxlbmd0aCx0KX19dmFsaWRhdGUodCxyKXtyZXR1cm4gcj49MSYmcjw9NTN9c2V0KHQscixpLGEpe3JldHVybiBlMShGQyh0LGksYSksYSl9aW5jb21wYXRpYmxlVG9rZW5zPVsieSIsIlIiLCJ1IiwicSIsIlEiLCJNIiwiTCIsIkkiLCJkIiwiRCIsImkiLCJ0IiwiVCJdfX0pO2Z1bmN0aW9uIFJDKGUsdCxyKXtsZXQgaT1jZShlLHI/LmluKSxhPVM4KGksciktdDtyZXR1cm4gaS5zZXREYXRlKGkuZ2V0RGF0ZSgpLWEqNyksaX12YXIgSTlpLGxKPXAoKCk9PntsQygpO1JlKCk7STlpPVJDfSk7dmFyIEJDLHdGZT1wKCgpPT57bEooKTtFcygpO3phKCk7TXIoKTskcigpO0JDPWNsYXNzIGV4dGVuZHMgcnR7cHJpb3JpdHk9MTAwO3BhcnNlKHQscixpKXtzd2l0Y2gocil7Y2FzZSJJIjpyZXR1cm4gY3IoaHIud2Vlayx0KTtjYXNlIklvIjpyZXR1cm4gaS5vcmRpbmFsTnVtYmVyKHQse3VuaXQ6IndlZWsifSk7ZGVmYXVsdDpyZXR1cm4gUHQoci5sZW5ndGgsdCl9fXZhbGlkYXRlKHQscil7cmV0dXJuIHI+PTEmJnI8PTUzfXNldCh0LHIsaSl7cmV0dXJuIHJpKFJDKHQsaSkpfWluY29tcGF0aWJsZVRva2Vucz1bInkiLCJZIiwidSIsInEiLCJRIiwiTSIsIkwiLCJ3IiwiZCIsIkQiLCJlIiwiYyIsInQiLCJUIl19fSk7dmFyIE5EcixGRHIsSEMsTUZlPXAoKCk9Pnt6YSgpO01yKCk7JHIoKTtORHI9WzMxLDI4LDMxLDMwLDMxLDMwLDMxLDMxLDMwLDMxLDMwLDMxXSxGRHI9WzMxLDI5LDMxLDMwLDMxLDMwLDMxLDMxLDMwLDMxLDMwLDMxXSxIQz1jbGFzcyBleHRlbmRzIHJ0e3ByaW9yaXR5PTkwO3N1YlByaW9yaXR5PTE7cGFyc2UodCxyLGkpe3N3aXRjaChyKXtjYXNlImQiOnJldHVybiBjcihoci5kYXRlLHQpO2Nhc2UiZG8iOnJldHVybiBpLm9yZGluYWxOdW1iZXIodCx7dW5pdDoiZGF0ZSJ9KTtkZWZhdWx0OnJldHVybiBQdChyLmxlbmd0aCx0KX19dmFsaWRhdGUodCxyKXtsZXQgaT10LmdldEZ1bGxZZWFyKCksYT1fQyhpKSxuPXQuZ2V0TW9udGgoKTtyZXR1cm4gYT9yPj0xJiZyPD1GRHJbbl06cj49MSYmcjw9TkRyW25dfXNldCh0LHIsaSl7cmV0dXJuIHQuc2V0RGF0ZShpKSx0LnNldEhvdXJzKDAsMCwwLDApLHR9aW5jb21wYXRpYmxlVG9rZW5zPVsiWSIsIlIiLCJxIiwiUSIsInciLCJJIiwiRCIsImkiLCJlIiwiYyIsInQiLCJUIl19fSk7dmFyIHFDLGtGZT1wKCgpPT57emEoKTtNcigpOyRyKCk7cUM9Y2xhc3MgZXh0ZW5kcyBydHtwcmlvcml0eT05MDtzdWJwcmlvcml0eT0xO3BhcnNlKHQscixpKXtzd2l0Y2gocil7Y2FzZSJEIjpjYXNlIkREIjpyZXR1cm4gY3IoaHIuZGF5T2ZZZWFyLHQpO2Nhc2UiRG8iOnJldHVybiBpLm9yZGluYWxOdW1iZXIodCx7dW5pdDoiZGF0ZSJ9KTtkZWZhdWx0OnJldHVybiBQdChyLmxlbmd0aCx0KX19dmFsaWRhdGUodCxyKXtsZXQgaT10LmdldEZ1bGxZZWFyKCk7cmV0dXJuIF9DKGkpP3I+PTEmJnI8PTM2NjpyPj0xJiZyPD0zNjV9c2V0KHQscixpKXtyZXR1cm4gdC5zZXRNb250aCgwLGkpLHQuc2V0SG91cnMoMCwwLDAsMCksdH1pbmNvbXBhdGlibGVUb2tlbnM9WyJZIiwiUiIsInEiLCJRIiwiTSIsIkwiLCJ3IiwiSSIsImQiLCJFIiwiaSIsImUiLCJjIiwidCIsIlQiXX19KTtmdW5jdGlvbiBZMChlLHQscil7bGV0IGk9RXIoKSxhPXI/LndlZWtTdGFydHNPbj8/cj8ubG9jYWxlPy5vcHRpb25zPy53ZWVrU3RhcnRzT24/P2kud2Vla1N0YXJ0c09uPz9pLmxvY2FsZT8ub3B0aW9ucz8ud2Vla1N0YXJ0c09uPz8wLG49Y2UoZSxyPy5pbiksbz1uLmdldERheSgpLGw9KHQlNys3KSU3LGM9Ny1hLHU9dDwwfHx0PjY/dC0obytjKSU3OihsK2MpJTctKG8rYyklNztyZXR1cm4gZ2kobix1LHIpfXZhciBLOWksUm09cCgoKT0+e01hKCk7THMoKTtSZSgpO0s5aT1ZMH0pO3ZhciBqQyxTRmU9cCgoKT0+e1JtKCk7TXIoKTtqQz1jbGFzcyBleHRlbmRzIHJ0e3ByaW9yaXR5PTkwO3BhcnNlKHQscixpKXtzd2l0Y2gocil7Y2FzZSJFIjpjYXNlIkVFIjpjYXNlIkVFRSI6cmV0dXJuIGkuZGF5KHQse3dpZHRoOiJhYmJyZXZpYXRlZCIsY29udGV4dDoiZm9ybWF0dGluZyJ9KXx8aS5kYXkodCx7d2lkdGg6InNob3J0Iixjb250ZXh0OiJmb3JtYXR0aW5nIn0pfHxpLmRheSh0LHt3aWR0aDoibmFycm93Iixjb250ZXh0OiJmb3JtYXR0aW5nIn0pO2Nhc2UiRUVFRUUiOnJldHVybiBpLmRheSh0LHt3aWR0aDoibmFycm93Iixjb250ZXh0OiJmb3JtYXR0aW5nIn0pO2Nhc2UiRUVFRUVFIjpyZXR1cm4gaS5kYXkodCx7d2lkdGg6InNob3J0Iixjb250ZXh0OiJmb3JtYXR0aW5nIn0pfHxpLmRheSh0LHt3aWR0aDoibmFycm93Iixjb250ZXh0OiJmb3JtYXR0aW5nIn0pO2RlZmF1bHQ6cmV0dXJuIGkuZGF5KHQse3dpZHRoOiJ3aWRlIixjb250ZXh0OiJmb3JtYXR0aW5nIn0pfHxpLmRheSh0LHt3aWR0aDoiYWJicmV2aWF0ZWQiLGNvbnRleHQ6ImZvcm1hdHRpbmcifSl8fGkuZGF5KHQse3dpZHRoOiJzaG9ydCIsY29udGV4dDoiZm9ybWF0dGluZyJ9KXx8aS5kYXkodCx7d2lkdGg6Im5hcnJvdyIsY29udGV4dDoiZm9ybWF0dGluZyJ9KX19dmFsaWRhdGUodCxyKXtyZXR1cm4gcj49MCYmcjw9Nn1zZXQodCxyLGksYSl7cmV0dXJuIHQ9WTAodCxpLGEpLHQuc2V0SG91cnMoMCwwLDAsMCksdH1pbmNvbXBhdGlibGVUb2tlbnM9WyJEIiwiaSIsImUiLCJjIiwidCIsIlQiXX19KTt2YXIgVkMsekZlPXAoKCk9PntSbSgpO01yKCk7JHIoKTtWQz1jbGFzcyBleHRlbmRzIHJ0e3ByaW9yaXR5PTkwO3BhcnNlKHQscixpLGEpe2xldCBuPW89PntsZXQgcz1NYXRoLmZsb29yKChvLTEpLzcpKjc7cmV0dXJuKG8rYS53ZWVrU3RhcnRzT24rNiklNytzfTtzd2l0Y2gocil7Y2FzZSJlIjpjYXNlImVlIjpyZXR1cm4gVnIoUHQoci5sZW5ndGgsdCksbik7Y2FzZSJlbyI6cmV0dXJuIFZyKGkub3JkaW5hbE51bWJlcih0LHt1bml0OiJkYXkifSksbik7Y2FzZSJlZWUiOnJldHVybiBpLmRheSh0LHt3aWR0aDoiYWJicmV2aWF0ZWQiLGNvbnRleHQ6ImZvcm1hdHRpbmcifSl8fGkuZGF5KHQse3dpZHRoOiJzaG9ydCIsY29udGV4dDoiZm9ybWF0dGluZyJ9KXx8aS5kYXkodCx7d2lkdGg6Im5hcnJvdyIsY29udGV4dDoiZm9ybWF0dGluZyJ9KTtjYXNlImVlZWVlIjpyZXR1cm4gaS5kYXkodCx7d2lkdGg6Im5hcnJvdyIsY29udGV4dDoiZm9ybWF0dGluZyJ9KTtjYXNlImVlZWVlZSI6cmV0dXJuIGkuZGF5KHQse3dpZHRoOiJzaG9ydCIsY29udGV4dDoiZm9ybWF0dGluZyJ9KXx8aS5kYXkodCx7d2lkdGg6Im5hcnJvdyIsY29udGV4dDoiZm9ybWF0dGluZyJ9KTtkZWZhdWx0OnJldHVybiBpLmRheSh0LHt3aWR0aDoid2lkZSIsY29udGV4dDoiZm9ybWF0dGluZyJ9KXx8aS5kYXkodCx7d2lkdGg6ImFiYnJldmlhdGVkIixjb250ZXh0OiJmb3JtYXR0aW5nIn0pfHxpLmRheSh0LHt3aWR0aDoic2hvcnQiLGNvbnRleHQ6ImZvcm1hdHRpbmcifSl8fGkuZGF5KHQse3dpZHRoOiJuYXJyb3ciLGNvbnRleHQ6ImZvcm1hdHRpbmcifSl9fXZhbGlkYXRlKHQscil7cmV0dXJuIHI+PTAmJnI8PTZ9c2V0KHQscixpLGEpe3JldHVybiB0PVkwKHQsaSxhKSx0LnNldEhvdXJzKDAsMCwwLDApLHR9aW5jb21wYXRpYmxlVG9rZW5zPVsieSIsIlIiLCJ1IiwicSIsIlEiLCJNIiwiTCIsIkkiLCJkIiwiRCIsIkUiLCJpIiwiYyIsInQiLCJUIl19fSk7dmFyIFVDLENGZT1wKCgpPT57Um0oKTtNcigpOyRyKCk7VUM9Y2xhc3MgZXh0ZW5kcyBydHtwcmlvcml0eT05MDtwYXJzZSh0LHIsaSxhKXtsZXQgbj1vPT57bGV0IHM9TWF0aC5mbG9vcigoby0xKS83KSo3O3JldHVybihvK2Eud2Vla1N0YXJ0c09uKzYpJTcrc307c3dpdGNoKHIpe2Nhc2UiYyI6Y2FzZSJjYyI6cmV0dXJuIFZyKFB0KHIubGVuZ3RoLHQpLG4pO2Nhc2UiY28iOnJldHVybiBWcihpLm9yZGluYWxOdW1iZXIodCx7dW5pdDoiZGF5In0pLG4pO2Nhc2UiY2NjIjpyZXR1cm4gaS5kYXkodCx7d2lkdGg6ImFiYnJldmlhdGVkIixjb250ZXh0OiJzdGFuZGFsb25lIn0pfHxpLmRheSh0LHt3aWR0aDoic2hvcnQiLGNvbnRleHQ6InN0YW5kYWxvbmUifSl8fGkuZGF5KHQse3dpZHRoOiJuYXJyb3ciLGNvbnRleHQ6InN0YW5kYWxvbmUifSk7Y2FzZSJjY2NjYyI6cmV0dXJuIGkuZGF5KHQse3dpZHRoOiJuYXJyb3ciLGNvbnRleHQ6InN0YW5kYWxvbmUifSk7Y2FzZSJjY2NjY2MiOnJldHVybiBpLmRheSh0LHt3aWR0aDoic2hvcnQiLGNvbnRleHQ6InN0YW5kYWxvbmUifSl8fGkuZGF5KHQse3dpZHRoOiJuYXJyb3ciLGNvbnRleHQ6InN0YW5kYWxvbmUifSk7ZGVmYXVsdDpyZXR1cm4gaS5kYXkodCx7d2lkdGg6IndpZGUiLGNvbnRleHQ6InN0YW5kYWxvbmUifSl8fGkuZGF5KHQse3dpZHRoOiJhYmJyZXZpYXRlZCIsY29udGV4dDoic3RhbmRhbG9uZSJ9KXx8aS5kYXkodCx7d2lkdGg6InNob3J0Iixjb250ZXh0OiJzdGFuZGFsb25lIn0pfHxpLmRheSh0LHt3aWR0aDoibmFycm93Iixjb250ZXh0OiJzdGFuZGFsb25lIn0pfX12YWxpZGF0ZSh0LHIpe3JldHVybiByPj0wJiZyPD02fXNldCh0LHIsaSxhKXtyZXR1cm4gdD1ZMCh0LGksYSksdC5zZXRIb3VycygwLDAsMCwwKSx0fWluY29tcGF0aWJsZVRva2Vucz1bInkiLCJSIiwidSIsInEiLCJRIiwiTSIsIkwiLCJJIiwiZCIsIkQiLCJFIiwiaSIsImUiLCJ0IiwiVCJdfX0pO2Z1bmN0aW9uIFdDKGUsdCxyKXtsZXQgaT1jZShlLHI/LmluKSxhPXhDKGksciksbj10LWE7cmV0dXJuIGdpKGksbixyKX12YXIgbWdpLGNKPXAoKCk9PntMcygpO2lKKCk7UmUoKTttZ2k9V0N9KTt2YXIgR0MsVEZlPXAoKCk9PntjSigpO01yKCk7JHIoKTtHQz1jbGFzcyBleHRlbmRzIHJ0e3ByaW9yaXR5PTkwO3BhcnNlKHQscixpKXtsZXQgYT1uPT5uPT09MD83Om47c3dpdGNoKHIpe2Nhc2UiaSI6Y2FzZSJpaSI6cmV0dXJuIFB0KHIubGVuZ3RoLHQpO2Nhc2UiaW8iOnJldHVybiBpLm9yZGluYWxOdW1iZXIodCx7dW5pdDoiZGF5In0pO2Nhc2UiaWlpIjpyZXR1cm4gVnIoaS5kYXkodCx7d2lkdGg6ImFiYnJldmlhdGVkIixjb250ZXh0OiJmb3JtYXR0aW5nIn0pfHxpLmRheSh0LHt3aWR0aDoic2hvcnQiLGNvbnRleHQ6ImZvcm1hdHRpbmcifSl8fGkuZGF5KHQse3dpZHRoOiJuYXJyb3ciLGNvbnRleHQ6ImZvcm1hdHRpbmcifSksYSk7Y2FzZSJpaWlpaSI6cmV0dXJuIFZyKGkuZGF5KHQse3dpZHRoOiJuYXJyb3ciLGNvbnRleHQ6ImZvcm1hdHRpbmcifSksYSk7Y2FzZSJpaWlpaWkiOnJldHVybiBWcihpLmRheSh0LHt3aWR0aDoic2hvcnQiLGNvbnRleHQ6ImZvcm1hdHRpbmcifSl8fGkuZGF5KHQse3dpZHRoOiJuYXJyb3ciLGNvbnRleHQ6ImZvcm1hdHRpbmcifSksYSk7ZGVmYXVsdDpyZXR1cm4gVnIoaS5kYXkodCx7d2lkdGg6IndpZGUiLGNvbnRleHQ6ImZvcm1hdHRpbmcifSl8fGkuZGF5KHQse3dpZHRoOiJhYmJyZXZpYXRlZCIsY29udGV4dDoiZm9ybWF0dGluZyJ9KXx8aS5kYXkodCx7d2lkdGg6InNob3J0Iixjb250ZXh0OiJmb3JtYXR0aW5nIn0pfHxpLmRheSh0LHt3aWR0aDoibmFycm93Iixjb250ZXh0OiJmb3JtYXR0aW5nIn0pLGEpfX12YWxpZGF0ZSh0LHIpe3JldHVybiByPj0xJiZyPD03fXNldCh0LHIsaSl7cmV0dXJuIHQ9V0ModCxpKSx0LnNldEhvdXJzKDAsMCwwLDApLHR9aW5jb21wYXRpYmxlVG9rZW5zPVsieSIsIlkiLCJ1IiwicSIsIlEiLCJNIiwiTCIsInciLCJkIiwiRCIsIkUiLCJlIiwiYyIsInQiLCJUIl19fSk7dmFyIFlDLF9GZT1wKCgpPT57TXIoKTskcigpO1lDPWNsYXNzIGV4dGVuZHMgcnR7cHJpb3JpdHk9ODA7cGFyc2UodCxyLGkpe3N3aXRjaChyKXtjYXNlImEiOmNhc2UiYWEiOmNhc2UiYWFhIjpyZXR1cm4gaS5kYXlQZXJpb2QodCx7d2lkdGg6ImFiYnJldmlhdGVkIixjb250ZXh0OiJmb3JtYXR0aW5nIn0pfHxpLmRheVBlcmlvZCh0LHt3aWR0aDoibmFycm93Iixjb250ZXh0OiJmb3JtYXR0aW5nIn0pO2Nhc2UiYWFhYWEiOnJldHVybiBpLmRheVBlcmlvZCh0LHt3aWR0aDoibmFycm93Iixjb250ZXh0OiJmb3JtYXR0aW5nIn0pO2RlZmF1bHQ6cmV0dXJuIGkuZGF5UGVyaW9kKHQse3dpZHRoOiJ3aWRlIixjb250ZXh0OiJmb3JtYXR0aW5nIn0pfHxpLmRheVBlcmlvZCh0LHt3aWR0aDoiYWJicmV2aWF0ZWQiLGNvbnRleHQ6ImZvcm1hdHRpbmcifSl8fGkuZGF5UGVyaW9kKHQse3dpZHRoOiJuYXJyb3ciLGNvbnRleHQ6ImZvcm1hdHRpbmcifSl9fXNldCh0LHIsaSl7cmV0dXJuIHQuc2V0SG91cnMoXzgoaSksMCwwLDApLHR9aW5jb21wYXRpYmxlVG9rZW5zPVsiYiIsIkIiLCJIIiwiayIsInQiLCJUIl19fSk7dmFyIFpDLExGZT1wKCgpPT57TXIoKTskcigpO1pDPWNsYXNzIGV4dGVuZHMgcnR7cHJpb3JpdHk9ODA7cGFyc2UodCxyLGkpe3N3aXRjaChyKXtjYXNlImIiOmNhc2UiYmIiOmNhc2UiYmJiIjpyZXR1cm4gaS5kYXlQZXJpb2QodCx7d2lkdGg6ImFiYnJldmlhdGVkIixjb250ZXh0OiJmb3JtYXR0aW5nIn0pfHxpLmRheVBlcmlvZCh0LHt3aWR0aDoibmFycm93Iixjb250ZXh0OiJmb3JtYXR0aW5nIn0pO2Nhc2UiYmJiYmIiOnJldHVybiBpLmRheVBlcmlvZCh0LHt3aWR0aDoibmFycm93Iixjb250ZXh0OiJmb3JtYXR0aW5nIn0pO2RlZmF1bHQ6cmV0dXJuIGkuZGF5UGVyaW9kKHQse3dpZHRoOiJ3aWRlIixjb250ZXh0OiJmb3JtYXR0aW5nIn0pfHxpLmRheVBlcmlvZCh0LHt3aWR0aDoiYWJicmV2aWF0ZWQiLGNvbnRleHQ6ImZvcm1hdHRpbmcifSl8fGkuZGF5UGVyaW9kKHQse3dpZHRoOiJuYXJyb3ciLGNvbnRleHQ6ImZvcm1hdHRpbmcifSl9fXNldCh0LHIsaSl7cmV0dXJuIHQuc2V0SG91cnMoXzgoaSksMCwwLDApLHR9aW5jb21wYXRpYmxlVG9rZW5zPVsiYSIsIkIiLCJIIiwiayIsInQiLCJUIl19fSk7dmFyIFhDLEFGZT1wKCgpPT57TXIoKTskcigpO1hDPWNsYXNzIGV4dGVuZHMgcnR7cHJpb3JpdHk9ODA7cGFyc2UodCxyLGkpe3N3aXRjaChyKXtjYXNlIkIiOmNhc2UiQkIiOmNhc2UiQkJCIjpyZXR1cm4gaS5kYXlQZXJpb2QodCx7d2lkdGg6ImFiYnJldmlhdGVkIixjb250ZXh0OiJmb3JtYXR0aW5nIn0pfHxpLmRheVBlcmlvZCh0LHt3aWR0aDoibmFycm93Iixjb250ZXh0OiJmb3JtYXR0aW5nIn0pO2Nhc2UiQkJCQkIiOnJldHVybiBpLmRheVBlcmlvZCh0LHt3aWR0aDoibmFycm93Iixjb250ZXh0OiJmb3JtYXR0aW5nIn0pO2RlZmF1bHQ6cmV0dXJuIGkuZGF5UGVyaW9kKHQse3dpZHRoOiJ3aWRlIixjb250ZXh0OiJmb3JtYXR0aW5nIn0pfHxpLmRheVBlcmlvZCh0LHt3aWR0aDoiYWJicmV2aWF0ZWQiLGNvbnRleHQ6ImZvcm1hdHRpbmcifSl8fGkuZGF5UGVyaW9kKHQse3dpZHRoOiJuYXJyb3ciLGNvbnRleHQ6ImZvcm1hdHRpbmcifSl9fXNldCh0LHIsaSl7cmV0dXJuIHQuc2V0SG91cnMoXzgoaSksMCwwLDApLHR9aW5jb21wYXRpYmxlVG9rZW5zPVsiYSIsImIiLCJ0IiwiVCJdfX0pO3ZhciBRQyxERmU9cCgoKT0+e3phKCk7TXIoKTskcigpO1FDPWNsYXNzIGV4dGVuZHMgcnR7cHJpb3JpdHk9NzA7cGFyc2UodCxyLGkpe3N3aXRjaChyKXtjYXNlImgiOnJldHVybiBjcihoci5ob3VyMTJoLHQpO2Nhc2UiaG8iOnJldHVybiBpLm9yZGluYWxOdW1iZXIodCx7dW5pdDoiaG91ciJ9KTtkZWZhdWx0OnJldHVybiBQdChyLmxlbmd0aCx0KX19dmFsaWRhdGUodCxyKXtyZXR1cm4gcj49MSYmcjw9MTJ9c2V0KHQscixpKXtsZXQgYT10LmdldEhvdXJzKCk+PTEyO3JldHVybiBhJiZpPDEyP3Quc2V0SG91cnMoaSsxMiwwLDAsMCk6IWEmJmk9PT0xMj90LnNldEhvdXJzKDAsMCwwLDApOnQuc2V0SG91cnMoaSwwLDAsMCksdH1pbmNvbXBhdGlibGVUb2tlbnM9WyJIIiwiSyIsImsiLCJ0IiwiVCJdfX0pO3ZhciBKQyxFRmU9cCgoKT0+e3phKCk7TXIoKTskcigpO0pDPWNsYXNzIGV4dGVuZHMgcnR7cHJpb3JpdHk9NzA7cGFyc2UodCxyLGkpe3N3aXRjaChyKXtjYXNlIkgiOnJldHVybiBjcihoci5ob3VyMjNoLHQpO2Nhc2UiSG8iOnJldHVybiBpLm9yZGluYWxOdW1iZXIodCx7dW5pdDoiaG91ciJ9KTtkZWZhdWx0OnJldHVybiBQdChyLmxlbmd0aCx0KX19dmFsaWRhdGUodCxyKXtyZXR1cm4gcj49MCYmcjw9MjN9c2V0KHQscixpKXtyZXR1cm4gdC5zZXRIb3VycyhpLDAsMCwwKSx0fWluY29tcGF0aWJsZVRva2Vucz1bImEiLCJiIiwiaCIsIksiLCJrIiwidCIsIlQiXX19KTt2YXIgS0MsJEZlPXAoKCk9Pnt6YSgpO01yKCk7JHIoKTtLQz1jbGFzcyBleHRlbmRzIHJ0e3ByaW9yaXR5PTcwO3BhcnNlKHQscixpKXtzd2l0Y2gocil7Y2FzZSJLIjpyZXR1cm4gY3IoaHIuaG91cjExaCx0KTtjYXNlIktvIjpyZXR1cm4gaS5vcmRpbmFsTnVtYmVyKHQse3VuaXQ6ImhvdXIifSk7ZGVmYXVsdDpyZXR1cm4gUHQoci5sZW5ndGgsdCl9fXZhbGlkYXRlKHQscil7cmV0dXJuIHI+PTAmJnI8PTExfXNldCh0LHIsaSl7cmV0dXJuIHQuZ2V0SG91cnMoKT49MTImJmk8MTI/dC5zZXRIb3VycyhpKzEyLDAsMCwwKTp0LnNldEhvdXJzKGksMCwwLDApLHR9aW5jb21wYXRpYmxlVG9rZW5zPVsiaCIsIkgiLCJrIiwidCIsIlQiXX19KTt2YXIgZVQsSUZlPXAoKCk9Pnt6YSgpO01yKCk7JHIoKTtlVD1jbGFzcyBleHRlbmRzIHJ0e3ByaW9yaXR5PTcwO3BhcnNlKHQscixpKXtzd2l0Y2gocil7Y2FzZSJrIjpyZXR1cm4gY3IoaHIuaG91cjI0aCx0KTtjYXNlImtvIjpyZXR1cm4gaS5vcmRpbmFsTnVtYmVyKHQse3VuaXQ6ImhvdXIifSk7ZGVmYXVsdDpyZXR1cm4gUHQoci5sZW5ndGgsdCl9fXZhbGlkYXRlKHQscil7cmV0dXJuIHI+PTEmJnI8PTI0fXNldCh0LHIsaSl7bGV0IGE9aTw9MjQ/aSUyNDppO3JldHVybiB0LnNldEhvdXJzKGEsMCwwLDApLHR9aW5jb21wYXRpYmxlVG9rZW5zPVsiYSIsImIiLCJoIiwiSCIsIksiLCJ0IiwiVCJdfX0pO3ZhciB0VCxQRmU9cCgoKT0+e3phKCk7TXIoKTskcigpO3RUPWNsYXNzIGV4dGVuZHMgcnR7cHJpb3JpdHk9NjA7cGFyc2UodCxyLGkpe3N3aXRjaChyKXtjYXNlIm0iOnJldHVybiBjcihoci5taW51dGUsdCk7Y2FzZSJtbyI6cmV0dXJuIGkub3JkaW5hbE51bWJlcih0LHt1bml0OiJtaW51dGUifSk7ZGVmYXVsdDpyZXR1cm4gUHQoci5sZW5ndGgsdCl9fXZhbGlkYXRlKHQscil7cmV0dXJuIHI+PTAmJnI8PTU5fXNldCh0LHIsaSl7cmV0dXJuIHQuc2V0TWludXRlcyhpLDAsMCksdH1pbmNvbXBhdGlibGVUb2tlbnM9WyJ0IiwiVCJdfX0pO3ZhciByVCxORmU9cCgoKT0+e3phKCk7TXIoKTskcigpO3JUPWNsYXNzIGV4dGVuZHMgcnR7cHJpb3JpdHk9NTA7cGFyc2UodCxyLGkpe3N3aXRjaChyKXtjYXNlInMiOnJldHVybiBjcihoci5zZWNvbmQsdCk7Y2FzZSJzbyI6cmV0dXJuIGkub3JkaW5hbE51bWJlcih0LHt1bml0OiJzZWNvbmQifSk7ZGVmYXVsdDpyZXR1cm4gUHQoci5sZW5ndGgsdCl9fXZhbGlkYXRlKHQscil7cmV0dXJuIHI+PTAmJnI8PTU5fXNldCh0LHIsaSl7cmV0dXJuIHQuc2V0U2Vjb25kcyhpLDApLHR9aW5jb21wYXRpYmxlVG9rZW5zPVsidCIsIlQiXX19KTt2YXIgaVQsRkZlPXAoKCk9PntNcigpOyRyKCk7aVQ9Y2xhc3MgZXh0ZW5kcyBydHtwcmlvcml0eT0zMDtwYXJzZSh0LHIpe2xldCBpPWE9Pk1hdGgudHJ1bmMoYSpNYXRoLnBvdygxMCwtci5sZW5ndGgrMykpO3JldHVybiBWcihQdChyLmxlbmd0aCx0KSxpKX1zZXQodCxyLGkpe3JldHVybiB0LnNldE1pbGxpc2Vjb25kcyhpKSx0fWluY29tcGF0aWJsZVRva2Vucz1bInQiLCJUIl19fSk7dmFyIGFULE9GZT1wKCgpPT57Z3QoKTtqbCgpO3phKCk7TXIoKTskcigpO2FUPWNsYXNzIGV4dGVuZHMgcnR7cHJpb3JpdHk9MTA7cGFyc2UodCxyKXtzd2l0Y2gocil7Y2FzZSJYIjpyZXR1cm4gU28oa28uYmFzaWNPcHRpb25hbE1pbnV0ZXMsdCk7Y2FzZSJYWCI6cmV0dXJuIFNvKGtvLmJhc2ljLHQpO2Nhc2UiWFhYWCI6cmV0dXJuIFNvKGtvLmJhc2ljT3B0aW9uYWxTZWNvbmRzLHQpO2Nhc2UiWFhYWFgiOnJldHVybiBTbyhrby5leHRlbmRlZE9wdGlvbmFsU2Vjb25kcyx0KTtkZWZhdWx0OnJldHVybiBTbyhrby5leHRlbmRlZCx0KX19c2V0KHQscixpKXtyZXR1cm4gci50aW1lc3RhbXBJc1NldD90Ok5lKHQsdC5nZXRUaW1lKCktRTEodCktaSl9aW5jb21wYXRpYmxlVG9rZW5zPVsidCIsIlQiLCJ4Il19fSk7dmFyIG5ULFJGZT1wKCgpPT57Z3QoKTtqbCgpO3phKCk7TXIoKTskcigpO25UPWNsYXNzIGV4dGVuZHMgcnR7cHJpb3JpdHk9MTA7cGFyc2UodCxyKXtzd2l0Y2gocil7Y2FzZSJ4IjpyZXR1cm4gU28oa28uYmFzaWNPcHRpb25hbE1pbnV0ZXMsdCk7Y2FzZSJ4eCI6cmV0dXJuIFNvKGtvLmJhc2ljLHQpO2Nhc2UieHh4eCI6cmV0dXJuIFNvKGtvLmJhc2ljT3B0aW9uYWxTZWNvbmRzLHQpO2Nhc2UieHh4eHgiOnJldHVybiBTbyhrby5leHRlbmRlZE9wdGlvbmFsU2Vjb25kcyx0KTtkZWZhdWx0OnJldHVybiBTbyhrby5leHRlbmRlZCx0KX19c2V0KHQscixpKXtyZXR1cm4gci50aW1lc3RhbXBJc1NldD90Ok5lKHQsdC5nZXRUaW1lKCktRTEodCktaSl9aW5jb21wYXRpYmxlVG9rZW5zPVsidCIsIlQiLCJYIl19fSk7dmFyIG9ULEJGZT1wKCgpPT57Z3QoKTtNcigpOyRyKCk7b1Q9Y2xhc3MgZXh0ZW5kcyBydHtwcmlvcml0eT00MDtwYXJzZSh0KXtyZXR1cm4gQ0ModCl9c2V0KHQscixpKXtyZXR1cm5bTmUodCxpKjFlMykse3RpbWVzdGFtcElzU2V0OiEwfV19aW5jb21wYXRpYmxlVG9rZW5zPSIqIn19KTt2YXIgc1QsSEZlPXAoKCk9PntndCgpO01yKCk7JHIoKTtzVD1jbGFzcyBleHRlbmRzIHJ0e3ByaW9yaXR5PTIwO3BhcnNlKHQpe3JldHVybiBDQyh0KX1zZXQodCxyLGkpe3JldHVybltOZSh0LGkpLHt0aW1lc3RhbXBJc1NldDohMH1dfWluY29tcGF0aWJsZVRva2Vucz0iKiJ9fSk7dmFyIGxULHFGZT1wKCgpPT57dUZlKCk7cEZlKCk7aEZlKCk7ZkZlKCk7bUZlKCk7Z0ZlKCk7YkZlKCk7dkZlKCk7eEZlKCk7eUZlKCk7d0ZlKCk7TUZlKCk7a0ZlKCk7U0ZlKCk7ekZlKCk7Q0ZlKCk7VEZlKCk7X0ZlKCk7TEZlKCk7QUZlKCk7REZlKCk7RUZlKCk7JEZlKCk7SUZlKCk7UEZlKCk7TkZlKCk7RkZlKCk7T0ZlKCk7UkZlKCk7QkZlKCk7SEZlKCk7bFQ9e0c6bmV3IHpDLHk6bmV3IExDLFk6bmV3IEFDLFI6bmV3IERDLHU6bmV3IEVDLFE6bmV3ICRDLHE6bmV3IElDLE06bmV3IFBDLEw6bmV3IE5DLHc6bmV3IE9DLEk6bmV3IEJDLGQ6bmV3IEhDLEQ6bmV3IHFDLEU6bmV3IGpDLGU6bmV3IFZDLGM6bmV3IFVDLGk6bmV3IEdDLGE6bmV3IFlDLGI6bmV3IFpDLEI6bmV3IFhDLGg6bmV3IFFDLEg6bmV3IEpDLEs6bmV3IEtDLGs6bmV3IGVULG06bmV3IHRULHM6bmV3IHJULFM6bmV3IGlULFg6bmV3IGFULHg6bmV3IG5ULHQ6bmV3IG9ULFQ6bmV3IHNUfX0pO2Z1bmN0aW9uIGNUKGUsdCxyLGkpe2xldCBhPSgpPT5OZShpPy5pbnx8cixOYU4pLG49dkMoKSxvPWk/LmxvY2FsZT8/bi5sb2NhbGU/P3duLHM9aT8uZmlyc3RXZWVrQ29udGFpbnNEYXRlPz9pPy5sb2NhbGU/Lm9wdGlvbnM/LmZpcnN0V2Vla0NvbnRhaW5zRGF0ZT8/bi5maXJzdFdlZWtDb250YWluc0RhdGU/P24ubG9jYWxlPy5vcHRpb25zPy5maXJzdFdlZWtDb250YWluc0RhdGU/PzEsbD1pPy53ZWVrU3RhcnRzT24/P2k/LmxvY2FsZT8ub3B0aW9ucz8ud2Vla1N0YXJ0c09uPz9uLndlZWtTdGFydHNPbj8/bi5sb2NhbGU/Lm9wdGlvbnM/LndlZWtTdGFydHNPbj8/MDtpZighdClyZXR1cm4gZT9hKCk6Y2UocixpPy5pbik7bGV0IGM9e2ZpcnN0V2Vla0NvbnRhaW5zRGF0ZTpzLHdlZWtTdGFydHNPbjpsLGxvY2FsZTpvfSx1PVtuZXcgU0MoaT8uaW4scildLGQ9dC5tYXRjaChSRHIpLm1hcChiPT57bGV0IHk9YlswXTtpZih5IGluIFcwKXtsZXQgdz1XMFt5XTtyZXR1cm4gdyhiLG8uZm9ybWF0TG9uZyl9cmV0dXJuIGJ9KS5qb2luKCIiKS5tYXRjaChPRHIpLGg9W107Zm9yKGxldCBiIG9mIGQpeyFpPy51c2VBZGRpdGlvbmFsV2Vla1llYXJUb2tlbnMmJnBDKGIpJiZObShiLHQsZSksIWk/LnVzZUFkZGl0aW9uYWxEYXlPZlllYXJUb2tlbnMmJnVDKGIpJiZObShiLHQsZSk7bGV0IHk9YlswXSx3PWxUW3ldO2lmKHcpe2xldHtpbmNvbXBhdGlibGVUb2tlbnM6a309dztpZihBcnJheS5pc0FycmF5KGspKXtsZXQgej1oLmZpbmQoTT0+ay5pbmNsdWRlcyhNLnRva2VuKXx8TS50b2tlbj09PXkpO2lmKHopdGhyb3cgbmV3IFJhbmdlRXJyb3IoYFRoZSBmb3JtYXQgc3RyaW5nIG11c3RuJ3QgY29udGFpbiBcYCR7ei5mdWxsVG9rZW59XGAgYW5kIFxgJHtifVxgIGF0IHRoZSBzYW1lIHRpbWVgKX1lbHNlIGlmKHcuaW5jb21wYXRpYmxlVG9rZW5zPT09IioiJiZoLmxlbmd0aD4wKXRocm93IG5ldyBSYW5nZUVycm9yKGBUaGUgZm9ybWF0IHN0cmluZyBtdXN0bid0IGNvbnRhaW4gXGAke2J9XGAgYW5kIGFueSBvdGhlciB0b2tlbiBhdCB0aGUgc2FtZSB0aW1lYCk7aC5wdXNoKHt0b2tlbjp5LGZ1bGxUb2tlbjpifSk7bGV0IE89dy5ydW4oZSxiLG8ubWF0Y2gsYyk7aWYoIU8pcmV0dXJuIGEoKTt1LnB1c2goTy5zZXR0ZXIpLGU9Ty5yZXN0fWVsc2V7aWYoeS5tYXRjaChqRHIpKXRocm93IG5ldyBSYW5nZUVycm9yKCJGb3JtYXQgc3RyaW5nIGNvbnRhaW5zIGFuIHVuZXNjYXBlZCBsYXRpbiBhbHBoYWJldCBjaGFyYWN0ZXIgYCIreSsiYCIpO2lmKGI9PT0iJyciP2I9IiciOnk9PT0iJyImJihiPVZEcihiKSksZS5pbmRleE9mKGIpPT09MCllPWUuc2xpY2UoYi5sZW5ndGgpO2Vsc2UgcmV0dXJuIGEoKX19aWYoZS5sZW5ndGg+MCYmcURyLnRlc3QoZSkpcmV0dXJuIGEoKTtsZXQgZj11Lm1hcChiPT5iLnByaW9yaXR5KS5zb3J0KChiLHkpPT55LWIpLmZpbHRlcigoYix5LHcpPT53LmluZGV4T2YoYik9PT15KS5tYXAoYj0+dS5maWx0ZXIoeT0+eS5wcmlvcml0eT09PWIpLnNvcnQoKHksdyk9Pncuc3ViUHJpb3JpdHkteS5zdWJQcmlvcml0eSkpLm1hcChiPT5iWzBdKSx4PWNlKHIsaT8uaW4pO2lmKGlzTmFOKCt4KSlyZXR1cm4gYSgpO2xldCB2PXt9O2ZvcihsZXQgYiBvZiBmKXtpZighYi52YWxpZGF0ZSh4LGMpKXJldHVybiBhKCk7bGV0IHk9Yi5zZXQoeCx2LGMpO0FycmF5LmlzQXJyYXkoeSk/KHg9eVswXSxPYmplY3QuYXNzaWduKHYseVsxXSkpOng9eX1yZXR1cm4geH1mdW5jdGlvbiBWRHIoZSl7cmV0dXJuIGUubWF0Y2goQkRyKVsxXS5yZXBsYWNlKEhEciwiJyIpfXZhciBPRHIsUkRyLEJEcixIRHIscURyLGpEcixjdmksZEo9cCgoKT0+e0k2KCk7WVEoKTtaUSgpO2d0KCk7ckooKTtSZSgpO29KKCk7cUZlKCk7T0RyPS9beVlRcU1Md0lkRGVjaWhIS2ttc11vfChcdylcMSp8Jyd8JygnJ3xbXiddKSsoJ3wkKXwuL2csUkRyPS9QK3ArfFArfHArfCcnfCcoJyd8W14nXSkrKCd8JCl8Li9nLEJEcj0vXicoW15dKj8pJz8kLyxIRHI9LycnL2cscURyPS9cUy8sakRyPS9bYS16QS1aXS87Y3ZpPWNUfSk7ZnVuY3Rpb24gakZlKGUsdCxyKXtyZXR1cm4gWGkoY1QoZSx0LG5ldyBEYXRlLHIpKX12YXIgaHZpLFZGZT1wKCgpPT57VWwoKTtkSigpO2h2aT1qRmV9KTtmdW5jdGlvbiBVRmUoZSx0KXtyZXR1cm4gY2UoZSx0Py5pbikuZ2V0RGF5KCk9PT0xfXZhciBndmksV0ZlPXAoKCk9PntSZSgpO2d2aT1VRmV9KTtmdW5jdGlvbiBHRmUoZSl7cmV0dXJuK2NlKGUpPERhdGUubm93KCl9dmFyIHh2aSxZRmU9cCgoKT0+e1JlKCk7eHZpPUdGZX0pO2Z1bmN0aW9uIEJtKGUsdCl7bGV0IHI9Y2UoZSx0Py5pbik7cmV0dXJuIHIuc2V0TWludXRlcygwLDAsMCkscn12YXIgTXZpLHVKPXAoKCk9PntSZSgpO012aT1CbX0pO2Z1bmN0aW9uIGRUKGUsdCxyKXtsZXRbaSxhXT11dChyPy5pbixlLHQpO3JldHVybitCbShpKT09K0JtKGEpfXZhciBDdmkscEo9cCgoKT0+e2pyKCk7dUooKTtDdmk9ZFR9KTtmdW5jdGlvbiBMOChlLHQscil7bGV0W2ksYV09dXQocj8uaW4sZSx0KTtyZXR1cm4rZTEoaSxyKT09K2UxKGEscil9dmFyIEF2aSx1VD1wKCgpPT57anIoKTtmMigpO0F2aT1MOH0pO2Z1bmN0aW9uIHBUKGUsdCxyKXtyZXR1cm4gTDgoZSx0LHsuLi5yLHdlZWtTdGFydHNPbjoxfSl9dmFyICR2aSxoSj1wKCgpPT57dVQoKTskdmk9cFR9KTtmdW5jdGlvbiBaRmUoZSx0LHIpe2xldFtpLGFdPXV0KHI/LmluLGUsdCk7cmV0dXJuK0JuKGkpPT0rQm4oYSl9dmFyIEZ2aSxYRmU9cCgoKT0+e3U4KCk7anIoKTtGdmk9WkZlfSk7ZnVuY3Rpb24gSG0oZSx0KXtsZXQgcj1jZShlLHQ/LmluKTtyZXR1cm4gci5zZXRTZWNvbmRzKDAsMCkscn12YXIgQnZpLGZKPXAoKCk9PntSZSgpO0J2aT1IbX0pO2Z1bmN0aW9uIGhUKGUsdCl7cmV0dXJuK0htKGUpPT0rSG0odCl9dmFyIGp2aSxtSj1wKCgpPT57ZkooKTtqdmk9aFR9KTtmdW5jdGlvbiBmVChlLHQscil7bGV0W2ksYV09dXQocj8uaW4sZSx0KTtyZXR1cm4gaS5nZXRGdWxsWWVhcigpPT09YS5nZXRGdWxsWWVhcigpJiZpLmdldE1vbnRoKCk9PT1hLmdldE1vbnRoKCl9dmFyIFd2aSxnSj1wKCgpPT57anIoKTtXdmk9ZlR9KTtmdW5jdGlvbiBtVChlLHQscil7bGV0W2ksYV09dXQocj8uaW4sZSx0KTtyZXR1cm4rRnMoaSk9PStGcyhhKX12YXIgWHZpLGJKPXAoKCk9PntqcigpO3RDKCk7WHZpPW1UfSk7ZnVuY3Rpb24gcW0oZSx0KXtsZXQgcj1jZShlLHQ/LmluKTtyZXR1cm4gci5zZXRNaWxsaXNlY29uZHMoMCkscn12YXIgS3ZpLHZKPXAoKCk9PntSZSgpO0t2aT1xbX0pO2Z1bmN0aW9uIGdUKGUsdCl7cmV0dXJuK3FtKGUpPT0rcW0odCl9dmFyIHJ4aSx4Sj1wKCgpPT57dkooKTtyeGk9Z1R9KTtmdW5jdGlvbiBiVChlLHQscil7bGV0W2ksYV09dXQocj8uaW4sZSx0KTtyZXR1cm4gaS5nZXRGdWxsWWVhcigpPT09YS5nZXRGdWxsWWVhcigpfXZhciBueGkseUo9cCgoKT0+e2pyKCk7bnhpPWJUfSk7ZnVuY3Rpb24gUUZlKGUsdCl7cmV0dXJuIGRUKGNlKGUsdD8uaW4pLFF0KHQ/LmlufHxlKSl9dmFyIGR4aSxKRmU9cCgoKT0+e2JpKCk7cEooKTtSZSgpO2R4aT1RRmV9KTtmdW5jdGlvbiBLRmUoZSx0KXtyZXR1cm4gcFQoTmUodD8uaW58fGUsZSksUXQodD8uaW58fGUpKX12YXIgbXhpLGVPZT1wKCgpPT57Z3QoKTtiaSgpO2hKKCk7bXhpPUtGZX0pO2Z1bmN0aW9uIHRPZShlKXtyZXR1cm4gaFQoZSxRdChlKSl9dmFyIHh4aSxyT2U9cCgoKT0+e2JpKCk7bUooKTt4eGk9dE9lfSk7ZnVuY3Rpb24gaU9lKGUsdCl7cmV0dXJuIGZUKE5lKHQ/LmlufHxlLGUpLFF0KHQ/LmlufHxlKSl9dmFyIFN4aSxhT2U9cCgoKT0+e2d0KCk7YmkoKTtnSigpO1N4aT1pT2V9KTtmdW5jdGlvbiBuT2UoZSx0KXtyZXR1cm4gbVQoTmUodD8uaW58fGUsZSksUXQodD8uaW58fGUpKX12YXIgTHhpLG9PZT1wKCgpPT57Z3QoKTtiaSgpO2JKKCk7THhpPW5PZX0pO2Z1bmN0aW9uIHNPZShlKXtyZXR1cm4gZ1QoZSxRdChlKSl9dmFyICR4aSxsT2U9cCgoKT0+e2JpKCk7eEooKTskeGk9c09lfSk7ZnVuY3Rpb24gY09lKGUsdCl7cmV0dXJuIEw4KE5lKHQ/LmlufHxlLGUpLFF0KHQ/LmlufHxlKSx0KX12YXIgT3hpLGRPZT1wKCgpPT57Z3QoKTtiaSgpO3VUKCk7T3hpPWNPZX0pO2Z1bmN0aW9uIHVPZShlLHQpe3JldHVybiBiVChOZSh0Py5pbnx8ZSxlKSxRdCh0Py5pbnx8ZSkpfXZhciBqeGkscE9lPXAoKCk9PntndCgpO2JpKCk7eUooKTtqeGk9dU9lfSk7ZnVuY3Rpb24gaE9lKGUsdCl7cmV0dXJuIGNlKGUsdD8uaW4pLmdldERheSgpPT09NH12YXIgV3hpLGZPZT1wKCgpPT57UmUoKTtXeGk9aE9lfSk7ZnVuY3Rpb24gbU9lKGUsdCl7cmV0dXJuIElzKE5lKHQ/LmlufHxlLGUpLFF0KHQ/LmlufHxlKSl9dmFyIFF4aSxnT2U9cCgoKT0+e2d0KCk7YmkoKTtmOCgpO1F4aT1tT2V9KTtmdW5jdGlvbiBiT2UoZSx0KXtyZXR1cm4gSXMoZSxnaShRdCh0Py5pbnx8ZSksMSksdCl9dmFyIHJ5aSx2T2U9cCgoKT0+e0xzKCk7YmkoKTtmOCgpO3J5aT1iT2V9KTtmdW5jdGlvbiB4T2UoZSx0KXtyZXR1cm4gY2UoZSx0Py5pbikuZ2V0RGF5KCk9PT0yfXZhciBueWkseU9lPXAoKCk9PntSZSgpO255aT14T2V9KTtmdW5jdGlvbiB3T2UoZSx0KXtyZXR1cm4gY2UoZSx0Py5pbikuZ2V0RGF5KCk9PT0zfXZhciBseWksTU9lPXAoKCk9PntSZSgpO2x5aT13T2V9KTtmdW5jdGlvbiBrT2UoZSx0LHIpe2xldCBpPStjZShlLHI/LmluKSxbYSxuXT1bK2NlKHQuc3RhcnQscj8uaW4pLCtjZSh0LmVuZCxyPy5pbildLnNvcnQoKG8scyk9Pm8tcyk7cmV0dXJuIGk+PWEmJmk8PW59dmFyIHV5aSxTT2U9cCgoKT0+e1JlKCk7dXlpPWtPZX0pO2Z1bmN0aW9uIFowKGUsdCxyKXtyZXR1cm4gZ2koZSwtdCxyKX12YXIgZnlpLGptPXAoKCk9PntMcygpO2Z5aT1aMH0pO2Z1bmN0aW9uIHpPZShlLHQpe3JldHVybiBJcyhOZSh0Py5pbnx8ZSxlKSxaMChRdCh0Py5pbnx8ZSksMSkpfXZhciB5eWksQ09lPXAoKCk9PntndCgpO2JpKCk7ZjgoKTtqbSgpO3l5aT16T2V9KTtmdW5jdGlvbiBUT2UoZSx0KXtsZXQgcj1jZShlLHQ/LmluKSxpPXIuZ2V0RnVsbFllYXIoKSxhPTkrTWF0aC5mbG9vcihpLzEwKSoxMDtyZXR1cm4gci5zZXRGdWxsWWVhcihhKzEsMCwwKSxyLnNldEhvdXJzKDAsMCwwLDApLGNlKHIsdD8uaW4pfXZhciBreWksX09lPXAoKCk9PntSZSgpO2t5aT1UT2V9KTtmdW5jdGlvbiB2VChlLHQpe2xldCByPUVyKCksaT10Py53ZWVrU3RhcnRzT24/P3Q/LmxvY2FsZT8ub3B0aW9ucz8ud2Vla1N0YXJ0c09uPz9yLndlZWtTdGFydHNPbj8/ci5sb2NhbGU/Lm9wdGlvbnM/LndlZWtTdGFydHNPbj8/MCxhPWNlKGUsdD8uaW4pLG49YS5nZXREYXkoKSxvPShuPGk/LTc6MCkrNi0obi1pKTtyZXR1cm4gYS5zZXRIb3VycygwLDAsMCwwKSxhLnNldERhdGUoYS5nZXREYXRlKCkrbyksYX12YXIgVHlpLHdKPXAoKCk9PntNYSgpO1JlKCk7VHlpPXZUfSk7ZnVuY3Rpb24gTE9lKGUsdCl7cmV0dXJuIHZUKGUsey4uLnQsd2Vla1N0YXJ0c09uOjF9KX12YXIgQXlpLEFPZT1wKCgpPT57d0ooKTtBeWk9TE9lfSk7ZnVuY3Rpb24gRE9lKGUsdCl7bGV0IHI9R2EoZSx0KSxpPU5lKHQ/LmlufHxlLDApO2kuc2V0RnVsbFllYXIocisxLDAsNCksaS5zZXRIb3VycygwLDAsMCwwKTtsZXQgYT1yaShpLHQpO3JldHVybiBhLnNldERhdGUoYS5nZXREYXRlKCktMSksYX12YXIgUHlpLEVPZT1wKCgpPT57Z3QoKTtCMCgpO0VzKCk7UHlpPURPZX0pO2Z1bmN0aW9uICRPZShlLHQpe2xldCByPWNlKGUsdD8uaW4pLGk9ci5nZXRNb250aCgpLGE9aS1pJTMrMztyZXR1cm4gci5zZXRNb250aChhLDApLHIuc2V0SG91cnMoMCwwLDAsMCkscn12YXIgT3lpLElPZT1wKCgpPT57UmUoKTtPeWk9JE9lfSk7ZnVuY3Rpb24gUE9lKGUsdCl7bGV0IHI9Y2UoZSx0Py5pbiksaT1yLmdldEZ1bGxZZWFyKCk7cmV0dXJuIHIuc2V0RnVsbFllYXIoaSsxLDAsMCksci5zZXRIb3VycygwLDAsMCwwKSxyfXZhciBIeWksTk9lPXAoKCk9PntSZSgpO0h5aT1QT2V9KTtmdW5jdGlvbiBGT2UoZSx0KXtsZXQgcj1jZShlKTtpZighWGkocikpdGhyb3cgbmV3IFJhbmdlRXJyb3IoIkludmFsaWQgdGltZSB2YWx1ZSIpO2xldCBpPXQubWF0Y2goVURyKTtyZXR1cm4gaT9pLm1hcChuPT57aWYobj09PSInJyIpcmV0dXJuIiciO2xldCBvPW5bMF07aWYobz09PSInIilyZXR1cm4gWkRyKG4pO2xldCBzPUhuW29dO2lmKHMpcmV0dXJuIHMocixuKTtpZihvLm1hdGNoKFlEcikpdGhyb3cgbmV3IFJhbmdlRXJyb3IoIkZvcm1hdCBzdHJpbmcgY29udGFpbnMgYW4gdW5lc2NhcGVkIGxhdGluIGFscGhhYmV0IGNoYXJhY3RlciBgIitvKyJgIik7cmV0dXJuIG59KS5qb2luKCIiKToiIn1mdW5jdGlvbiBaRHIoZSl7bGV0IHQ9ZS5tYXRjaChXRHIpO3JldHVybiB0P3RbMV0ucmVwbGFjZShHRHIsIiciKTplfXZhciBVRHIsV0RyLEdEcixZRHIsV3lpLE9PZT1wKCgpPT57R1EoKTtVbCgpO1JlKCk7VURyPS8oXHcpXDEqfCcnfCcoJyd8W14nXSkrKCd8JCl8Li9nLFdEcj0vXicoW15dKj8pJz8kLyxHRHI9LycnL2csWURyPS9bYS16QS1aXS87V3lpPUZPZX0pO2Z1bmN0aW9uIFJPZSh7eWVhcnM6ZSxtb250aHM6dCx3ZWVrczpyLGRheXM6aSxob3VyczphLG1pbnV0ZXM6bixzZWNvbmRzOm99KXtsZXQgcz0wO2UmJihzKz1lKjM2NS4yNDI1KSx0JiYocys9dCooMzY1LjI0MjUvMTIpKSxyJiYocys9cio3KSxpJiYocys9aSk7bGV0IGw9cyoyNCo2MCo2MDtyZXR1cm4gYSYmKGwrPWEqNjAqNjApLG4mJihsKz1uKjYwKSxvJiYobCs9byksTWF0aC50cnVuYyhsKjFlMyl9dmFyIFp5aSxCT2U9cCgoKT0+e1J0KCk7WnlpPVJPZX0pO2Z1bmN0aW9uIEhPZShlKXtsZXQgdD1lL1JuO3JldHVybiBNYXRoLnRydW5jKHQpfXZhciBKeWkscU9lPXAoKCk9PntSdCgpO0p5aT1IT2V9KTtmdW5jdGlvbiBqT2UoZSl7bGV0IHQ9ZS93YTtyZXR1cm4gTWF0aC50cnVuYyh0KX12YXIgdHdpLFZPZT1wKCgpPT57UnQoKTt0d2k9ak9lfSk7ZnVuY3Rpb24gVU9lKGUpe2xldCB0PWUvczg7cmV0dXJuIE1hdGgudHJ1bmModCl9dmFyIGF3aSxXT2U9cCgoKT0+e1J0KCk7YXdpPVVPZX0pO2Z1bmN0aW9uIEdPZShlKXtsZXQgdD1lL2t6O3JldHVybiBNYXRoLnRydW5jKHQpfXZhciBzd2ksWU9lPXAoKCk9PntSdCgpO3N3aT1HT2V9KTtmdW5jdGlvbiBaT2UoZSl7cmV0dXJuIE1hdGgudHJ1bmMoZSp3YSl9dmFyIGR3aSxYT2U9cCgoKT0+e1J0KCk7ZHdpPVpPZX0pO2Z1bmN0aW9uIFFPZShlKXtyZXR1cm4gTWF0aC50cnVuYyhlKmM4KX12YXIgaHdpLEpPZT1wKCgpPT57UnQoKTtod2k9UU9lfSk7ZnVuY3Rpb24gS09lKGUpe2xldCB0PWUvU3o7cmV0dXJuIE1hdGgudHJ1bmModCl9dmFyIGd3aSxlUmU9cCgoKT0+e1J0KCk7Z3dpPUtPZX0pO2Z1bmN0aW9uIHRSZShlKXtsZXQgdD1lL3p6O3JldHVybiBNYXRoLnRydW5jKHQpfXZhciB4d2ksclJlPXAoKCk9PntSdCgpO3h3aT10UmV9KTtmdW5jdGlvbiBDYShlLHQscil7bGV0IGk9dC1HMChlLHIpO3JldHVybiBpPD0wJiYoaSs9NyksZ2koZSxpLHIpfXZhciBrd2ksR2w9cCgoKT0+e0xzKCk7T20oKTtrd2k9Q2F9KTtmdW5jdGlvbiBpUmUoZSx0KXtyZXR1cm4gQ2EoZSw1LHQpfXZhciBDd2ksYVJlPXAoKCk9PntHbCgpO0N3aT1pUmV9KTtmdW5jdGlvbiBuUmUoZSx0KXtyZXR1cm4gQ2EoZSwxLHQpfXZhciBMd2ksb1JlPXAoKCk9PntHbCgpO0x3aT1uUmV9KTtmdW5jdGlvbiBzUmUoZSx0KXtyZXR1cm4gQ2EoZSw2LHQpfXZhciBFd2ksbFJlPXAoKCk9PntHbCgpO0V3aT1zUmV9KTtmdW5jdGlvbiBjUmUoZSx0KXtyZXR1cm4gQ2EoZSwwLHQpfXZhciBQd2ksZFJlPXAoKCk9PntHbCgpO1B3aT1jUmV9KTtmdW5jdGlvbiB1UmUoZSx0KXtyZXR1cm4gQ2EoZSw0LHQpfXZhciBPd2kscFJlPXAoKCk9PntHbCgpO093aT11UmV9KTtmdW5jdGlvbiBoUmUoZSx0KXtyZXR1cm4gQ2EoZSwyLHQpfXZhciBId2ksZlJlPXAoKCk9PntHbCgpO0h3aT1oUmV9KTtmdW5jdGlvbiBtUmUoZSx0KXtyZXR1cm4gQ2EoZSwzLHQpfXZhciBWd2ksZ1JlPXAoKCk9PntHbCgpO1Z3aT1tUmV9KTtmdW5jdGlvbiB2UmUoZSx0KXtsZXQgcj0oKT0+TmUodD8uaW4sTmFOKSxpPXQ/LmFkZGl0aW9uYWxEaWdpdHM/PzIsYT1LRHIoZSksbjtpZihhLmRhdGUpe2xldCBjPWVFcihhLmRhdGUsaSk7bj10RXIoYy5yZXN0RGF0ZVN0cmluZyxjLnllYXIpfWlmKCFufHxpc05hTigrbikpcmV0dXJuIHIoKTtsZXQgbz0rbixzPTAsbDtpZihhLnRpbWUmJihzPXJFcihhLnRpbWUpLGlzTmFOKHMpKSlyZXR1cm4gcigpO2lmKGEudGltZXpvbmUpe2lmKGw9aUVyKGEudGltZXpvbmUpLGlzTmFOKGwpKXJldHVybiByKCl9ZWxzZXtsZXQgYz1uZXcgRGF0ZShvK3MpLHU9Y2UoMCx0Py5pbik7cmV0dXJuIHUuc2V0RnVsbFllYXIoYy5nZXRVVENGdWxsWWVhcigpLGMuZ2V0VVRDTW9udGgoKSxjLmdldFVUQ0RhdGUoKSksdS5zZXRIb3VycyhjLmdldFVUQ0hvdXJzKCksYy5nZXRVVENNaW51dGVzKCksYy5nZXRVVENTZWNvbmRzKCksYy5nZXRVVENNaWxsaXNlY29uZHMoKSksdX1yZXR1cm4gY2UobytzK2wsdD8uaW4pfWZ1bmN0aW9uIEtEcihlKXtsZXQgdD17fSxyPWUuc3BsaXQoeFQuZGF0ZVRpbWVEZWxpbWl0ZXIpLGk7aWYoci5sZW5ndGg+MilyZXR1cm4gdDtpZigvOi8udGVzdChyWzBdKT9pPXJbMF06KHQuZGF0ZT1yWzBdLGk9clsxXSx4VC50aW1lWm9uZURlbGltaXRlci50ZXN0KHQuZGF0ZSkmJih0LmRhdGU9ZS5zcGxpdCh4VC50aW1lWm9uZURlbGltaXRlcilbMF0saT1lLnN1YnN0cih0LmRhdGUubGVuZ3RoLGUubGVuZ3RoKSkpLGkpe2xldCBhPXhULnRpbWV6b25lLmV4ZWMoaSk7YT8odC50aW1lPWkucmVwbGFjZShhWzFdLCIiKSx0LnRpbWV6b25lPWFbMV0pOnQudGltZT1pfXJldHVybiB0fWZ1bmN0aW9uIGVFcihlLHQpe2xldCByPW5ldyBSZWdFeHAoIl4oPzooXFxkezR9fFsrLV1cXGR7IisoNCt0KSsifSl8KFxcZHsyfXxbKy1dXFxkeyIrKDIrdCkrIn0pJCkiKSxpPWUubWF0Y2gocik7aWYoIWkpcmV0dXJue3llYXI6TmFOLHJlc3REYXRlU3RyaW5nOiIifTtsZXQgYT1pWzFdP3BhcnNlSW50KGlbMV0pOm51bGwsbj1pWzJdP3BhcnNlSW50KGlbMl0pOm51bGw7cmV0dXJue3llYXI6bj09PW51bGw/YTpuKjEwMCxyZXN0RGF0ZVN0cmluZzplLnNsaWNlKChpWzFdfHxpWzJdKS5sZW5ndGgpfX1mdW5jdGlvbiB0RXIoZSx0KXtpZih0PT09bnVsbClyZXR1cm4gbmV3IERhdGUoTmFOKTtsZXQgcj1lLm1hdGNoKFhEcik7aWYoIXIpcmV0dXJuIG5ldyBEYXRlKE5hTik7bGV0IGk9ISFyWzRdLGE9Vm0oclsxXSksbj1WbShyWzJdKS0xLG89Vm0oclszXSkscz1WbShyWzRdKSxsPVZtKHJbNV0pLTE7aWYoaSlyZXR1cm4gbEVyKHQscyxsKT9hRXIodCxzLGwpOm5ldyBEYXRlKE5hTik7e2xldCBjPW5ldyBEYXRlKDApO3JldHVybiFvRXIodCxuLG8pfHwhc0VyKHQsYSk/bmV3IERhdGUoTmFOKTooYy5zZXRVVENGdWxsWWVhcih0LG4sTWF0aC5tYXgoYSxvKSksYyl9fWZ1bmN0aW9uIFZtKGUpe3JldHVybiBlP3BhcnNlSW50KGUpOjF9ZnVuY3Rpb24gckVyKGUpe2xldCB0PWUubWF0Y2goUURyKTtpZighdClyZXR1cm4gTmFOO2xldCByPU1KKHRbMV0pLGk9TUoodFsyXSksYT1NSih0WzNdKTtyZXR1cm4gY0VyKHIsaSxhKT9yKlJuK2kqd2ErYSoxZTM6TmFOfWZ1bmN0aW9uIE1KKGUpe3JldHVybiBlJiZwYXJzZUZsb2F0KGUucmVwbGFjZSgiLCIsIi4iKSl8fDB9ZnVuY3Rpb24gaUVyKGUpe2lmKGU9PT0iWiIpcmV0dXJuIDA7bGV0IHQ9ZS5tYXRjaChKRHIpO2lmKCF0KXJldHVybiAwO2xldCByPXRbMV09PT0iKyI/LTE6MSxpPXBhcnNlSW50KHRbMl0pLGE9dFszXSYmcGFyc2VJbnQodFszXSl8fDA7cmV0dXJuIGRFcihpLGEpP3IqKGkqUm4rYSp3YSk6TmFOfWZ1bmN0aW9uIGFFcihlLHQscil7bGV0IGk9bmV3IERhdGUoMCk7aS5zZXRVVENGdWxsWWVhcihlLDAsNCk7bGV0IGE9aS5nZXRVVENEYXkoKXx8NyxuPSh0LTEpKjcrcisxLWE7cmV0dXJuIGkuc2V0VVRDRGF0ZShpLmdldFVUQ0RhdGUoKStuKSxpfWZ1bmN0aW9uIGJSZShlKXtyZXR1cm4gZSU0MDA9PT0wfHxlJTQ9PT0wJiZlJTEwMCE9PTB9ZnVuY3Rpb24gb0VyKGUsdCxyKXtyZXR1cm4gdD49MCYmdDw9MTEmJnI+PTEmJnI8PShuRXJbdF18fChiUmUoZSk/Mjk6MjgpKX1mdW5jdGlvbiBzRXIoZSx0KXtyZXR1cm4gdD49MSYmdDw9KGJSZShlKT8zNjY6MzY1KX1mdW5jdGlvbiBsRXIoZSx0LHIpe3JldHVybiB0Pj0xJiZ0PD01MyYmcj49MCYmcjw9Nn1mdW5jdGlvbiBjRXIoZSx0LHIpe3JldHVybiBlPT09MjQ/dD09PTAmJnI9PT0wOnI+PTAmJnI8NjAmJnQ+PTAmJnQ8NjAmJmU+PTAmJmU8MjV9ZnVuY3Rpb24gZEVyKGUsdCl7cmV0dXJuIHQ+PTAmJnQ8PTU5fXZhciB4VCxYRHIsUURyLEpEcixuRXIsWndpLHhSZT1wKCgpPT57UnQoKTtndCgpO1JlKCk7eFQ9e2RhdGVUaW1lRGVsaW1pdGVyOi9bVCBdLyx0aW1lWm9uZURlbGltaXRlcjovW1ogXS9pLHRpbWV6b25lOi8oW1orLV0uKikkL30sWERyPS9eLT8oPzooXGR7M30pfChcZHsyfSkoPzotPyhcZHsyfSkpP3xXKFxkezJ9KSg/Oi0/KFxkezF9KSk/fCkkLyxRRHI9L14oXGR7Mn0oPzpbLixdXGQqKT8pKD86Oj8oXGR7Mn0oPzpbLixdXGQqKT8pKT8oPzo6PyhcZHsyfSg/OlsuLF1cZCopPykpPyQvLEpEcj0vXihbKy1dKShcZHsyfSkoPzo6PyhcZHsyfSkpPyQvO25Fcj1bMzEsbnVsbCwzMSwzMCwzMSwzMCwzMSwzMSwzMCwzMSwzMCwzMV07WndpPXZSZX0pO2Z1bmN0aW9uIHlSZShlLHQpe2xldCByPWUubWF0Y2goLyhcZHs0fSktKFxkezJ9KS0oXGR7Mn0pW1QgXShcZHsyfSk6KFxkezJ9KTooXGR7Mn0pKD86XC4oXGR7MCw3fSkpPyg/Olp8KC4pKFxkezJ9KTo/KFxkezJ9KT8pPy8pO3JldHVybiByP2NlKERhdGUuVVRDKCtyWzFdLCtyWzJdLTEsK3JbM10sK3JbNF0tKCtyWzldfHwwKSoocls4XT09Ii0iPy0xOjEpLCtyWzVdLSgrclsxMF18fDApKihyWzhdPT0iLSI/LTE6MSksK3JbNl0sKygocls3XXx8IjAiKSsiMDAiKS5zdWJzdHJpbmcoMCwzKSksdD8uaW4pOmNlKE5hTix0Py5pbil9dmFyIEp3aSx3UmU9cCgoKT0+e1JlKCk7SndpPXlSZX0pO2Z1bmN0aW9uIFRhKGUsdCxyKXtsZXQgaT1HMChlLHIpLXQ7cmV0dXJuIGk8PTAmJihpKz03KSxaMChlLGkscil9dmFyIHJNaSxZbD1wKCgpPT57T20oKTtqbSgpO3JNaT1UYX0pO2Z1bmN0aW9uIE1SZShlLHQpe3JldHVybiBUYShlLDUsdCl9dmFyIG5NaSxrUmU9cCgoKT0+e1lsKCk7bk1pPU1SZX0pO2Z1bmN0aW9uIFNSZShlLHQpe3JldHVybiBUYShlLDEsdCl9dmFyIGxNaSx6UmU9cCgoKT0+e1lsKCk7bE1pPVNSZX0pO2Z1bmN0aW9uIENSZShlLHQpe3JldHVybiBUYShlLDYsdCl9dmFyIHVNaSxUUmU9cCgoKT0+e1lsKCk7dU1pPUNSZX0pO2Z1bmN0aW9uIF9SZShlLHQpe3JldHVybiBUYShlLDAsdCl9dmFyIGZNaSxMUmU9cCgoKT0+e1lsKCk7Zk1pPV9SZX0pO2Z1bmN0aW9uIEFSZShlLHQpe3JldHVybiBUYShlLDQsdCl9dmFyIGJNaSxEUmU9cCgoKT0+e1lsKCk7Yk1pPUFSZX0pO2Z1bmN0aW9uIEVSZShlLHQpe3JldHVybiBUYShlLDIsdCl9dmFyIHlNaSwkUmU9cCgoKT0+e1lsKCk7eU1pPUVSZX0pO2Z1bmN0aW9uIElSZShlLHQpe3JldHVybiBUYShlLDMsdCl9dmFyIGtNaSxQUmU9cCgoKT0+e1lsKCk7a01pPUlSZX0pO2Z1bmN0aW9uIE5SZShlKXtyZXR1cm4gTWF0aC50cnVuYyhlKlN6KX12YXIgQ01pLEZSZT1wKCgpPT57UnQoKTtDTWk9TlJlfSk7ZnVuY3Rpb24gT1JlKGUpe2xldCB0PWUvQ3o7cmV0dXJuIE1hdGgudHJ1bmModCl9dmFyIExNaSxSUmU9cCgoKT0+e1J0KCk7TE1pPU9SZX0pO2Z1bmN0aW9uIEJSZShlLHQpe2xldCByPXQ/Lm5lYXJlc3RUbz8/MTtpZihyPDF8fHI+MTIpcmV0dXJuIE5lKHQ/LmlufHxlLE5hTik7bGV0IGk9Y2UoZSx0Py5pbiksYT1pLmdldE1pbnV0ZXMoKS82MCxuPWkuZ2V0U2Vjb25kcygpLzYwLzYwLG89aS5nZXRNaWxsaXNlY29uZHMoKS8xZTMvNjAvNjAscz1pLmdldEhvdXJzKCkrYStuK28sbD10Py5yb3VuZGluZ01ldGhvZD8/InJvdW5kIix1PVNhKGwpKHMvcikqcjtyZXR1cm4gaS5zZXRIb3Vycyh1LDAsMCwwKSxpfXZhciBJTWksSFJlPXAoKCk9PntXbCgpO2d0KCk7UmUoKTtJTWk9QlJlfSk7ZnVuY3Rpb24gcVJlKGUsdCl7bGV0IHI9dD8ubmVhcmVzdFRvPz8xO2lmKHI8MXx8cj4zMClyZXR1cm4gTmUoZSxOYU4pO2xldCBpPWNlKGUsdD8uaW4pLGE9aS5nZXRTZWNvbmRzKCkvNjAsbj1pLmdldE1pbGxpc2Vjb25kcygpLzFlMy82MCxvPWkuZ2V0TWludXRlcygpK2ErbixzPXQ/LnJvdW5kaW5nTWV0aG9kPz8icm91bmQiLGM9U2Eocykoby9yKSpyO3JldHVybiBpLnNldE1pbnV0ZXMoYywwLDApLGl9dmFyIFJNaSxqUmU9cCgoKT0+e1dsKCk7Z3QoKTtSZSgpO1JNaT1xUmV9KTtmdW5jdGlvbiBWUmUoZSl7bGV0IHQ9ZS9fNjtyZXR1cm4gTWF0aC50cnVuYyh0KX12YXIgcU1pLFVSZT1wKCgpPT57UnQoKTtxTWk9VlJlfSk7ZnVuY3Rpb24gV1JlKGUpe3JldHVybiBlKnM4fXZhciBVTWksR1JlPXAoKCk9PntSdCgpO1VNaT1XUmV9KTtmdW5jdGlvbiBZUmUoZSl7bGV0IHQ9ZS9jODtyZXR1cm4gTWF0aC50cnVuYyh0KX12YXIgWU1pLFpSZT1wKCgpPT57UnQoKTtZTWk9WVJlfSk7ZnVuY3Rpb24gQTgoZSx0LHIpe2xldCBpPWNlKGUscj8uaW4pLGE9aS5nZXRGdWxsWWVhcigpLG49aS5nZXREYXRlKCksbz1OZShyPy5pbnx8ZSwwKTtvLnNldEZ1bGxZZWFyKGEsdCwxNSksby5zZXRIb3VycygwLDAsMCwwKTtsZXQgcz1nQyhvKTtyZXR1cm4gaS5zZXRNb250aCh0LE1hdGgubWluKG4scykpLGl9dmFyIEtNaSx5VD1wKCgpPT57Z3QoKTtlSigpO1JlKCk7S01pPUE4fSk7ZnVuY3Rpb24gWFJlKGUsdCxyKXtsZXQgaT1jZShlLHI/LmluKTtyZXR1cm4gaXNOYU4oK2kpP05lKHI/LmlufHxlLE5hTik6KHQueWVhciE9bnVsbCYmaS5zZXRGdWxsWWVhcih0LnllYXIpLHQubW9udGghPW51bGwmJihpPUE4KGksdC5tb250aCkpLHQuZGF0ZSE9bnVsbCYmaS5zZXREYXRlKHQuZGF0ZSksdC5ob3VycyE9bnVsbCYmaS5zZXRIb3Vycyh0LmhvdXJzKSx0Lm1pbnV0ZXMhPW51bGwmJmkuc2V0TWludXRlcyh0Lm1pbnV0ZXMpLHQuc2Vjb25kcyE9bnVsbCYmaS5zZXRTZWNvbmRzKHQuc2Vjb25kcyksdC5taWxsaXNlY29uZHMhPW51bGwmJmkuc2V0TWlsbGlzZWNvbmRzKHQubWlsbGlzZWNvbmRzKSxpKX12YXIgYWtpLFFSZT1wKCgpPT57Z3QoKTt5VCgpO1JlKCk7YWtpPVhSZX0pO2Z1bmN0aW9uIEpSZShlLHQscil7bGV0IGk9Y2UoZSxyPy5pbik7cmV0dXJuIGkuc2V0RGF0ZSh0KSxpfXZhciBza2ksS1JlPXAoKCk9PntSZSgpO3NraT1KUmV9KTtmdW5jdGlvbiBlQmUoZSx0LHIpe2xldCBpPWNlKGUscj8uaW4pO3JldHVybiBpLnNldE1vbnRoKDApLGkuc2V0RGF0ZSh0KSxpfXZhciBka2ksdEJlPXAoKCk9PntSZSgpO2RraT1lQmV9KTtmdW5jdGlvbiByQmUoZSl7bGV0IHQ9e30scj1FcigpO2ZvcihsZXQgaSBpbiByKU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChyLGkpJiYodFtpXT1yW2ldKTtmb3IobGV0IGkgaW4gZSlPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoZSxpKSYmKGVbaV09PT12b2lkIDA/ZGVsZXRlIHRbaV06dFtpXT1lW2ldKTt2SWUodCl9dmFyIGhraSxpQmU9cCgoKT0+e01hKCk7aGtpPXJCZX0pO2Z1bmN0aW9uIGFCZShlLHQscil7bGV0IGk9Y2UoZSxyPy5pbik7cmV0dXJuIGkuc2V0SG91cnModCksaX12YXIgZ2tpLG5CZT1wKCgpPT57UmUoKTtna2k9YUJlfSk7ZnVuY3Rpb24gb0JlKGUsdCxyKXtsZXQgaT1jZShlLHI/LmluKTtyZXR1cm4gaS5zZXRNaWxsaXNlY29uZHModCksaX12YXIgeGtpLHNCZT1wKCgpPT57UmUoKTt4a2k9b0JlfSk7ZnVuY3Rpb24gbEJlKGUsdCxyKXtsZXQgaT1jZShlLHI/LmluKTtyZXR1cm4gaS5zZXRNaW51dGVzKHQpLGl9dmFyIE1raSxjQmU9cCgoKT0+e1JlKCk7TWtpPWxCZX0pO2Z1bmN0aW9uIGRCZShlLHQscil7bGV0IGk9Y2UoZSxyPy5pbiksYT1NYXRoLnRydW5jKGkuZ2V0TW9udGgoKS8zKSsxLG49dC1hO3JldHVybiBBOChpLGkuZ2V0TW9udGgoKStuKjMpfXZhciBDa2ksdUJlPXAoKCk9Pnt5VCgpO1JlKCk7Q2tpPWRCZX0pO2Z1bmN0aW9uIHBCZShlLHQscil7bGV0IGk9Y2UoZSxyPy5pbik7cmV0dXJuIGkuc2V0U2Vjb25kcyh0KSxpfXZhciBMa2ksaEJlPXAoKCk9PntSZSgpO0xraT1wQmV9KTtmdW5jdGlvbiBmQmUoZSx0LHIpe2xldCBpPUVyKCksYT1yPy5maXJzdFdlZWtDb250YWluc0RhdGU/P3I/LmxvY2FsZT8ub3B0aW9ucz8uZmlyc3RXZWVrQ29udGFpbnNEYXRlPz9pLmZpcnN0V2Vla0NvbnRhaW5zRGF0ZT8/aS5sb2NhbGU/Lm9wdGlvbnM/LmZpcnN0V2Vla0NvbnRhaW5zRGF0ZT8/MSxuPUlpKGNlKGUscj8uaW4pLFA2KGUsciksciksbz1OZShyPy5pbnx8ZSwwKTtvLnNldEZ1bGxZZWFyKHQsMCxhKSxvLnNldEhvdXJzKDAsMCwwLDApO2xldCBzPVA2KG8scik7cmV0dXJuIHMuc2V0RGF0ZShzLmdldERhdGUoKStuKSxzfXZhciBOa2ksbUJlPXAoKCk9PntNYSgpO2d0KCk7VmwoKTtjQygpO1JlKCk7TmtpPWZCZX0pO2Z1bmN0aW9uIGdCZShlLHQscil7bGV0IGk9Y2UoZSxyPy5pbik7cmV0dXJuIGlzTmFOKCtpKT9OZShyPy5pbnx8ZSxOYU4pOihpLnNldEZ1bGxZZWFyKHQpLGkpfXZhciBCa2ksYkJlPXAoKCk9PntndCgpO1JlKCk7QmtpPWdCZX0pO2Z1bmN0aW9uIHZCZShlLHQpe2xldCByPWNlKGUsdD8uaW4pLGk9ci5nZXRGdWxsWWVhcigpLGE9TWF0aC5mbG9vcihpLzEwKSoxMDtyZXR1cm4gci5zZXRGdWxsWWVhcihhLDAsMSksci5zZXRIb3VycygwLDAsMCwwKSxyfXZhciBqa2kseEJlPXAoKCk9PntSZSgpO2praT12QmV9KTtmdW5jdGlvbiB5QmUoZSl7cmV0dXJuICRzKERhdGUubm93KCksZSl9dmFyIFdraSx3QmU9cCgoKT0+e19tKCk7V2tpPXlCZX0pO2Z1bmN0aW9uIE1CZShlKXtsZXQgdD1RdChlPy5pbikscj10LmdldEZ1bGxZZWFyKCksaT10LmdldE1vbnRoKCksYT10LmdldERhdGUoKSxuPU5lKGU/LmluLDApO3JldHVybiBuLnNldEZ1bGxZZWFyKHIsaSxhKzEpLG4uc2V0SG91cnMoMCwwLDAsMCksbn12YXIgWGtpLGtCZT1wKCgpPT57Z3QoKTtiaSgpO1hraT1NQmV9KTtmdW5jdGlvbiBTQmUoZSl7bGV0IHQ9UXQoZT8uaW4pLHI9dC5nZXRGdWxsWWVhcigpLGk9dC5nZXRNb250aCgpLGE9dC5nZXREYXRlKCksbj1RdChlPy5pbik7cmV0dXJuIG4uc2V0RnVsbFllYXIocixpLGEtMSksbi5zZXRIb3VycygwLDAsMCwwKSxufXZhciBLa2ksekJlPXAoKCk9PntiaSgpO0traT1TQmV9KTtmdW5jdGlvbiB3VChlLHQscil7cmV0dXJuIEFzKGUsLXQscil9dmFyIHJTaSxrSj1wKCgpPT57ZDgoKTtyU2k9d1R9KTtmdW5jdGlvbiBDQmUoZSx0LHIpe2xldHt5ZWFyczppPTAsbW9udGhzOmE9MCx3ZWVrczpuPTAsZGF5czpvPTAsaG91cnM6cz0wLG1pbnV0ZXM6bD0wLHNlY29uZHM6Yz0wfT10LHU9d1QoZSxhK2kqMTIsciksZD1aMCh1LG8rbio3LHIpLGg9bCtzKjYwLHg9KGMraCo2MCkqMWUzO3JldHVybiBOZShyPy5pbnx8ZSwrZC14KX12YXIgc1NpLFRCZT1wKCgpPT57Z3QoKTtqbSgpO2tKKCk7c1NpPUNCZX0pO2Z1bmN0aW9uIF9CZShlLHQscil7cmV0dXJuIEx6KGUsLXQscil9dmFyIGRTaSxMQmU9cCgoKT0+e1RRKCk7ZFNpPV9CZX0pO2Z1bmN0aW9uIEFCZShlLHQscil7cmV0dXJuIEF6KGUsLXQscil9dmFyIGhTaSxEQmU9cCgoKT0+e19RKCk7aFNpPUFCZX0pO2Z1bmN0aW9uIEVCZShlLHQscil7cmV0dXJuIFIwKGUsLXQscil9dmFyIGdTaSwkQmU9cCgoKT0+e1RtKCk7Z1NpPUVCZX0pO2Z1bmN0aW9uIElCZShlLHQscil7cmV0dXJuIHA4KGUsLXQscil9dmFyIHhTaSxQQmU9cCgoKT0+eyR6KCk7eFNpPUlCZX0pO2Z1bmN0aW9uIE5CZShlLHQscil7cmV0dXJuIGg4KGUsLXQscil9dmFyIE1TaSxGQmU9cCgoKT0+e0l6KCk7TVNpPU5CZX0pO2Z1bmN0aW9uIE9CZShlLHQscil7cmV0dXJuIFB6KGUsLXQscil9dmFyIHpTaSxSQmU9cCgoKT0+e0RRKCk7elNpPU9CZX0pO2Z1bmN0aW9uIEJCZShlLHQscil7cmV0dXJuIEgwKGUsLXQscil9dmFyIF9TaSxIQmU9cCgoKT0+e0xtKCk7X1NpPUJCZX0pO2Z1bmN0aW9uIHFCZShlLHQscil7cmV0dXJuIE56KGUsLXQscil9dmFyIERTaSxqQmU9cCgoKT0+e0VRKCk7RFNpPXFCZX0pO2Z1bmN0aW9uIFZCZShlKXtyZXR1cm4gTWF0aC50cnVuYyhlKjcpfXZhciBJU2ksVUJlPXAoKCk9PntSdCgpO0lTaT1WQmV9KTtmdW5jdGlvbiBXQmUoZSl7cmV0dXJuIE1hdGgudHJ1bmMoZSozNjUuMjQyNSl9dmFyIEZTaSxHQmU9cCgoKT0+e1J0KCk7RlNpPVdCZX0pO2Z1bmN0aW9uIFlCZShlKXtyZXR1cm4gTWF0aC50cnVuYyhlKnp6KX12YXIgQlNpLFpCZT1wKCgpPT57UnQoKTtCU2k9WUJlfSk7ZnVuY3Rpb24gWEJlKGUpe3JldHVybiBNYXRoLnRydW5jKGUqQ3opfXZhciBqU2ksUUJlPXAoKCk9PntSdCgpO2pTaT1YQmV9KTt2YXIgVW09e307RmUoVW0se2FkZDooKT0+TzAsYWRkQnVzaW5lc3NEYXlzOigpPT5MeixhZGREYXlzOigpPT5naSxhZGRIb3VyczooKT0+QXosYWRkSVNPV2Vla1llYXJzOigpPT5FeixhZGRNaWxsaXNlY29uZHM6KCk9PlIwLGFkZE1pbnV0ZXM6KCk9PnA4LGFkZE1vbnRoczooKT0+QXMsYWRkUXVhcnRlcnM6KCk9Pmg4LGFkZFNlY29uZHM6KCk9PlB6LGFkZFdlZWtzOigpPT5IMCxhZGRZZWFyczooKT0+TnosYXJlSW50ZXJ2YWxzT3ZlcmxhcHBpbmc6KCk9PnhJZSxjbGFtcDooKT0+d0llLGNsb3Nlc3RJbmRleFRvOigpPT5SeixjbG9zZXN0VG86KCk9PmtJZSxjb21wYXJlQXNjOigpPT5rYSxjb21wYXJlRGVzYzooKT0+ekllLGNvbnN0cnVjdEZyb206KCk9Pk5lLGNvbnN0cnVjdE5vdzooKT0+UXQsZGF5c1RvV2Vla3M6KCk9PlRJZSxkaWZmZXJlbmNlSW5CdXNpbmVzc0RheXM6KCk9PkxJZSxkaWZmZXJlbmNlSW5DYWxlbmRhckRheXM6KCk9PklpLGRpZmZlcmVuY2VJbkNhbGVuZGFySVNPV2Vla1llYXJzOigpPT5IeixkaWZmZXJlbmNlSW5DYWxlbmRhcklTT1dlZWtzOigpPT5ESWUsZGlmZmVyZW5jZUluQ2FsZW5kYXJNb250aHM6KCk9PkE2LGRpZmZlcmVuY2VJbkNhbGVuZGFyUXVhcnRlcnM6KCk9Pm04LGRpZmZlcmVuY2VJbkNhbGVuZGFyV2Vla3M6KCk9PkQ2LGRpZmZlcmVuY2VJbkNhbGVuZGFyWWVhcnM6KCk9PnEwLGRpZmZlcmVuY2VJbkRheXM6KCk9Pmc4LGRpZmZlcmVuY2VJbkhvdXJzOigpPT5FNixkaWZmZXJlbmNlSW5JU09XZWVrWWVhcnM6KCk9PklJZSxkaWZmZXJlbmNlSW5NaWxsaXNlY29uZHM6KCk9PmI4LGRpZmZlcmVuY2VJbk1pbnV0ZXM6KCk9PiQ2LGRpZmZlcmVuY2VJbk1vbnRoczooKT0+ajAsZGlmZmVyZW5jZUluUXVhcnRlcnM6KCk9Pk5JZSxkaWZmZXJlbmNlSW5TZWNvbmRzOigpPT5QcyxkaWZmZXJlbmNlSW5XZWVrczooKT0+T0llLGRpZmZlcmVuY2VJblllYXJzOigpPT5LeixlYWNoRGF5T2ZJbnRlcnZhbDooKT0+ZUMsZWFjaEhvdXJPZkludGVydmFsOigpPT5CSWUsZWFjaE1pbnV0ZU9mSW50ZXJ2YWw6KCk9PnFJZSxlYWNoTW9udGhPZkludGVydmFsOigpPT5WSWUsZWFjaFF1YXJ0ZXJPZkludGVydmFsOigpPT5XSWUsZWFjaFdlZWtPZkludGVydmFsOigpPT5ZSWUsZWFjaFdlZWtlbmRPZkludGVydmFsOigpPT55OCxlYWNoV2Vla2VuZE9mTW9udGg6KCk9PlhJZSxlYWNoV2Vla2VuZE9mWWVhcjooKT0+SkllLGVhY2hZZWFyT2ZJbnRlcnZhbDooKT0+ZVBlLGVuZE9mRGF5OigpPT52OCxlbmRPZkRlY2FkZTooKT0+clBlLGVuZE9mSG91cjooKT0+YVBlLGVuZE9mSVNPV2VlazooKT0+b1BlLGVuZE9mSVNPV2Vla1llYXI6KCk9PmxQZSxlbmRPZk1pbnV0ZTooKT0+ZFBlLGVuZE9mTW9udGg6KCk9Png4LGVuZE9mUXVhcnRlcjooKT0+cFBlLGVuZE9mU2Vjb25kOigpPT5mUGUsZW5kT2ZUb2RheTooKT0+Z1BlLGVuZE9mVG9tb3Jyb3c6KCk9PnZQZSxlbmRPZldlZWs6KCk9Pm5DLGVuZE9mWWVhcjooKT0+aUMsZW5kT2ZZZXN0ZXJkYXk6KCk9PnlQZSxmb3JtYXQ6KCk9PkZtLGZvcm1hdERhdGU6KCk9PkZtLGZvcm1hdERpc3RhbmNlOigpPT5oQyxmb3JtYXREaXN0YW5jZVN0cmljdDooKT0+ZkMsZm9ybWF0RGlzdGFuY2VUb05vdzooKT0+alBlLGZvcm1hdERpc3RhbmNlVG9Ob3dTdHJpY3Q6KCk9PlVQZSxmb3JtYXREdXJhdGlvbjooKT0+R1BlLGZvcm1hdElTTzooKT0+WlBlLGZvcm1hdElTTzkwNzU6KCk9PlFQZSxmb3JtYXRJU09EdXJhdGlvbjooKT0+S1BlLGZvcm1hdFJGQzMzMzk6KCk9PnROZSxmb3JtYXRSRkM3MjMxOigpPT5pTmUsZm9ybWF0UmVsYXRpdmU6KCk9Pm5OZSxmb3JtYXR0ZXJzOigpPT5QbSxmcm9tVW5peFRpbWU6KCk9PnNOZSxnZXREYXRlOigpPT5tQyxnZXREYXk6KCk9PkcwLGdldERheU9mWWVhcjooKT0+c0MsZ2V0RGF5c0luTW9udGg6KCk9PmdDLGdldERheXNJblllYXI6KCk9PmNOZSxnZXREZWNhZGU6KCk9PnVOZSxnZXREZWZhdWx0T3B0aW9uczooKT0+dkMsZ2V0SG91cnM6KCk9PmhOZSxnZXRJU09EYXk6KCk9PnhDLGdldElTT1dlZWs6KCk9PlM4LGdldElTT1dlZWtZZWFyOigpPT5HYSxnZXRJU09XZWVrc0luWWVhcjooKT0+bU5lLGdldE1pbGxpc2Vjb25kczooKT0+Yk5lLGdldE1pbnV0ZXM6KCk9PnhOZSxnZXRNb250aDooKT0+d05lLGdldE92ZXJsYXBwaW5nRGF5c0luSW50ZXJ2YWxzOigpPT5rTmUsZ2V0UXVhcnRlcjooKT0+QW0sZ2V0U2Vjb25kczooKT0+ek5lLGdldFRpbWU6KCk9PlROZSxnZXRVbml4VGltZTooKT0+TE5lLGdldFdlZWs6KCk9Pno4LGdldFdlZWtPZk1vbnRoOigpPT5ETmUsZ2V0V2Vla1llYXI6KCk9PlUwLGdldFdlZWtzSW5Nb250aDooKT0+JE5lLGdldFllYXI6KCk9PlBOZSxob3Vyc1RvTWlsbGlzZWNvbmRzOigpPT5GTmUsaG91cnNUb01pbnV0ZXM6KCk9PlJOZSxob3Vyc1RvU2Vjb25kczooKT0+SE5lLGludGVydmFsOigpPT5qTmUsaW50ZXJ2YWxUb0R1cmF0aW9uOigpPT5VTmUsaW50bEZvcm1hdDooKT0+R05lLGludGxGb3JtYXREaXN0YW5jZTooKT0+Wk5lLGlzQWZ0ZXI6KCk9PlFOZSxpc0JlZm9yZTooKT0+S05lLGlzRGF0ZTooKT0+QnosaXNFcXVhbDooKT0+dEZlLGlzRXhpc3RzOigpPT5pRmUsaXNGaXJzdERheU9mTW9udGg6KCk9Pm5GZSxpc0ZyaWRheTooKT0+c0ZlLGlzRnV0dXJlOigpPT5jRmUsaXNMYXN0RGF5T2ZNb250aDooKT0+SnosaXNMZWFwWWVhcjooKT0+YkMsaXNNYXRjaDooKT0+akZlLGlzTW9uZGF5OigpPT5VRmUsaXNQYXN0OigpPT5HRmUsaXNTYW1lRGF5OigpPT5Jcyxpc1NhbWVIb3VyOigpPT5kVCxpc1NhbWVJU09XZWVrOigpPT5wVCxpc1NhbWVJU09XZWVrWWVhcjooKT0+WkZlLGlzU2FtZU1pbnV0ZTooKT0+aFQsaXNTYW1lTW9udGg6KCk9PmZULGlzU2FtZVF1YXJ0ZXI6KCk9Pm1ULGlzU2FtZVNlY29uZDooKT0+Z1QsaXNTYW1lV2VlazooKT0+TDgsaXNTYW1lWWVhcjooKT0+YlQsaXNTYXR1cmRheTooKT0+VHosaXNTdW5kYXk6KCk9Pl96LGlzVGhpc0hvdXI6KCk9PlFGZSxpc1RoaXNJU09XZWVrOigpPT5LRmUsaXNUaGlzTWludXRlOigpPT50T2UsaXNUaGlzTW9udGg6KCk9PmlPZSxpc1RoaXNRdWFydGVyOigpPT5uT2UsaXNUaGlzU2Vjb25kOigpPT5zT2UsaXNUaGlzV2VlazooKT0+Y09lLGlzVGhpc1llYXI6KCk9PnVPZSxpc1RodXJzZGF5OigpPT5oT2UsaXNUb2RheTooKT0+bU9lLGlzVG9tb3Jyb3c6KCk9PmJPZSxpc1R1ZXNkYXk6KCk9PnhPZSxpc1ZhbGlkOigpPT5YaSxpc1dlZG5lc2RheTooKT0+d09lLGlzV2Vla2VuZDooKT0+RHMsaXNXaXRoaW5JbnRlcnZhbDooKT0+a09lLGlzWWVzdGVyZGF5OigpPT56T2UsbGFzdERheU9mRGVjYWRlOigpPT5UT2UsbGFzdERheU9mSVNPV2VlazooKT0+TE9lLGxhc3REYXlPZklTT1dlZWtZZWFyOigpPT5ET2UsbGFzdERheU9mTW9udGg6KCk9PnlDLGxhc3REYXlPZlF1YXJ0ZXI6KCk9PiRPZSxsYXN0RGF5T2ZXZWVrOigpPT52VCxsYXN0RGF5T2ZZZWFyOigpPT5QT2UsbGlnaHRGb3JtYXQ6KCk9PkZPZSxsaWdodEZvcm1hdHRlcnM6KCk9PkhuLGxvbmdGb3JtYXR0ZXJzOigpPT5XMCxtYXg6KCk9PkZ6LG1pbGxpc2Vjb25kczooKT0+Uk9lLG1pbGxpc2Vjb25kc1RvSG91cnM6KCk9PkhPZSxtaWxsaXNlY29uZHNUb01pbnV0ZXM6KCk9PmpPZSxtaWxsaXNlY29uZHNUb1NlY29uZHM6KCk9PlVPZSxtaW46KCk9Pk96LG1pbnV0ZXNUb0hvdXJzOigpPT5HT2UsbWludXRlc1RvTWlsbGlzZWNvbmRzOigpPT5aT2UsbWludXRlc1RvU2Vjb25kczooKT0+UU9lLG1vbnRoc1RvUXVhcnRlcnM6KCk9PktPZSxtb250aHNUb1llYXJzOigpPT50UmUsbmV4dERheTooKT0+Q2EsbmV4dEZyaWRheTooKT0+aVJlLG5leHRNb25kYXk6KCk9Pm5SZSxuZXh0U2F0dXJkYXk6KCk9PnNSZSxuZXh0U3VuZGF5OigpPT5jUmUsbmV4dFRodXJzZGF5OigpPT51UmUsbmV4dFR1ZXNkYXk6KCk9PmhSZSxuZXh0V2VkbmVzZGF5OigpPT5tUmUscGFyc2U6KCk9PmNULHBhcnNlSVNPOigpPT52UmUscGFyc2VKU09OOigpPT55UmUscGFyc2VyczooKT0+bFQscHJldmlvdXNEYXk6KCk9PlRhLHByZXZpb3VzRnJpZGF5OigpPT5NUmUscHJldmlvdXNNb25kYXk6KCk9PlNSZSxwcmV2aW91c1NhdHVyZGF5OigpPT5DUmUscHJldmlvdXNTdW5kYXk6KCk9Pl9SZSxwcmV2aW91c1RodXJzZGF5OigpPT5BUmUscHJldmlvdXNUdWVzZGF5OigpPT5FUmUscHJldmlvdXNXZWRuZXNkYXk6KCk9PklSZSxxdWFydGVyc1RvTW9udGhzOigpPT5OUmUscXVhcnRlcnNUb1llYXJzOigpPT5PUmUscm91bmRUb05lYXJlc3RIb3VyczooKT0+QlJlLHJvdW5kVG9OZWFyZXN0TWludXRlczooKT0+cVJlLHNlY29uZHNUb0hvdXJzOigpPT5WUmUsc2Vjb25kc1RvTWlsbGlzZWNvbmRzOigpPT5XUmUsc2Vjb25kc1RvTWludXRlczooKT0+WVJlLHNldDooKT0+WFJlLHNldERhdGU6KCk9PkpSZSxzZXREYXk6KCk9PlkwLHNldERheU9mWWVhcjooKT0+ZUJlLHNldERlZmF1bHRPcHRpb25zOigpPT5yQmUsc2V0SG91cnM6KCk9PmFCZSxzZXRJU09EYXk6KCk9PldDLHNldElTT1dlZWs6KCk9PlJDLHNldElTT1dlZWtZZWFyOigpPT5EeixzZXRNaWxsaXNlY29uZHM6KCk9Pm9CZSxzZXRNaW51dGVzOigpPT5sQmUsc2V0TW9udGg6KCk9PkE4LHNldFF1YXJ0ZXI6KCk9PmRCZSxzZXRTZWNvbmRzOigpPT5wQmUsc2V0V2VlazooKT0+RkMsc2V0V2Vla1llYXI6KCk9PmZCZSxzZXRZZWFyOigpPT5nQmUsc3RhcnRPZkRheTooKT0+JHMsc3RhcnRPZkRlY2FkZTooKT0+dkJlLHN0YXJ0T2ZIb3VyOigpPT5CbSxzdGFydE9mSVNPV2VlazooKT0+cmksc3RhcnRPZklTT1dlZWtZZWFyOigpPT5CbixzdGFydE9mTWludXRlOigpPT5IbSxzdGFydE9mTW9udGg6KCk9PlYwLHN0YXJ0T2ZRdWFydGVyOigpPT5GcyxzdGFydE9mU2Vjb25kOigpPT5xbSxzdGFydE9mVG9kYXk6KCk9PnlCZSxzdGFydE9mVG9tb3Jyb3c6KCk9Pk1CZSxzdGFydE9mV2VlazooKT0+ZTEsc3RhcnRPZldlZWtZZWFyOigpPT5QNixzdGFydE9mWWVhcjooKT0+dzgsc3RhcnRPZlllc3RlcmRheTooKT0+U0JlLHN1YjooKT0+Q0JlLHN1YkJ1c2luZXNzRGF5czooKT0+X0JlLHN1YkRheXM6KCk9PlowLHN1YkhvdXJzOigpPT5BQmUsc3ViSVNPV2Vla1llYXJzOigpPT5HeixzdWJNaWxsaXNlY29uZHM6KCk9PkVCZSxzdWJNaW51dGVzOigpPT5JQmUsc3ViTW9udGhzOigpPT53VCxzdWJRdWFydGVyczooKT0+TkJlLHN1YlNlY29uZHM6KCk9Pk9CZSxzdWJXZWVrczooKT0+QkJlLHN1YlllYXJzOigpPT5xQmUsdG9EYXRlOigpPT5jZSx0cmFuc3Bvc2U6KCk9PndDLHdlZWtzVG9EYXlzOigpPT5WQmUseWVhcnNUb0RheXM6KCk9PldCZSx5ZWFyc1RvTW9udGhzOigpPT5ZQmUseWVhcnNUb1F1YXJ0ZXJzOigpPT5YQmV9KTt2YXIgSkJlPXAoKCk9PntTUSgpO1RRKCk7THMoKTtfUSgpO0FRKCk7VG0oKTskeigpO2Q4KCk7SXooKTtEUSgpO0xtKCk7RVEoKTt5SWUoKTtNSWUoKTtQUSgpO1NJZSgpO0w2KCk7Q0llKCk7Z3QoKTtiaSgpO19JZSgpO0FJZSgpO1ZsKCk7RlEoKTtFSWUoKTtxeigpO1JRKCk7anooKTtWeigpO1V6KCk7V3ooKTtQSWUoKTtZeigpO1p6KCk7RG0oKTtGSWUoKTtFbSgpO1JJZSgpO3FRKCk7alEoKTtISWUoKTtqSWUoKTtVSWUoKTtHSWUoKTtaSWUoKTtyQygpO1FJZSgpO0tJZSgpO3RQZSgpO1h6KCk7aVBlKCk7blBlKCk7c1BlKCk7Y1BlKCk7dVBlKCk7UXooKTtoUGUoKTttUGUoKTtiUGUoKTt4UGUoKTtVUSgpO1ZRKCk7d1BlKCk7WFEoKTtRUSgpO0pRKCk7VlBlKCk7V1BlKCk7WVBlKCk7WFBlKCk7SlBlKCk7ZU5lKCk7ck5lKCk7YU5lKCk7b05lKCk7bE5lKCk7S1EoKTtPbSgpO1dRKCk7ZUooKTtkTmUoKTtwTmUoKTtySigpO2ZOZSgpO2lKKCk7bEMoKTtCMCgpO2dOZSgpO3ZOZSgpO3lOZSgpO01OZSgpO1NOZSgpO09RKCk7Q05lKCk7X05lKCk7QU5lKCk7ZEMoKTtFTmUoKTtJbSgpO0lOZSgpO05OZSgpO09OZSgpO0JOZSgpO3FOZSgpO1ZOZSgpO1dOZSgpO1lOZSgpO1hOZSgpO0pOZSgpO2VGZSgpO05RKCk7ckZlKCk7YUZlKCk7b0ZlKCk7bEZlKCk7ZEZlKCk7SFEoKTt0SigpO1ZGZSgpO1dGZSgpO1lGZSgpO2Y4KCk7cEooKTtoSigpO1hGZSgpO21KKCk7Z0ooKTtiSigpO3hKKCk7dVQoKTt5SigpO3pRKCk7Q1EoKTtKRmUoKTtlT2UoKTtyT2UoKTthT2UoKTtvT2UoKTtsT2UoKTtkT2UoKTtwT2UoKTtmT2UoKTtnT2UoKTt2T2UoKTt5T2UoKTtVbCgpO01PZSgpO0NtKCk7U09lKCk7Q09lKCk7X09lKCk7QU9lKCk7RU9lKCk7YUooKTtJT2UoKTt3SigpO05PZSgpO09PZSgpOyRRKCk7Qk9lKCk7cU9lKCk7Vk9lKCk7V09lKCk7SVEoKTtZT2UoKTtYT2UoKTtKT2UoKTtlUmUoKTtyUmUoKTtHbCgpO2FSZSgpO29SZSgpO2xSZSgpO2RSZSgpO3BSZSgpO2ZSZSgpO2dSZSgpO2RKKCk7eFJlKCk7d1JlKCk7WWwoKTtrUmUoKTt6UmUoKTtUUmUoKTtMUmUoKTtEUmUoKTskUmUoKTtQUmUoKTtGUmUoKTtSUmUoKTtIUmUoKTtqUmUoKTtVUmUoKTtHUmUoKTtaUmUoKTtRUmUoKTtLUmUoKTtSbSgpO3RCZSgpO2lCZSgpO25CZSgpO2NKKCk7bEooKTtMUSgpO3NCZSgpO2NCZSgpO3lUKCk7dUJlKCk7aEJlKCk7c0ooKTttQmUoKTtiQmUoKTtfbSgpO3hCZSgpO3VKKCk7RXMoKTt1OCgpO2ZKKCk7JG0oKTt0QygpO3ZKKCk7d0JlKCk7a0JlKCk7ZjIoKTtjQygpO2FDKCk7ekJlKCk7VEJlKCk7TEJlKCk7am0oKTtEQmUoKTtCUSgpOyRCZSgpO1BCZSgpO2tKKCk7RkJlKCk7UkJlKCk7SEJlKCk7akJlKCk7UmUoKTtuSigpO1VCZSgpO0dCZSgpO1pCZSgpO1FCZSgpfSk7dmFyIEtCZT1qZSgoU0osekopPT57KGZ1bmN0aW9uKGUsdCl7dHlwZW9mIFNKPT0ib2JqZWN0IiYmdHlwZW9mIHpKPCJ1Ij96Si5leHBvcnRzPXQoKTp0eXBlb2YgZGVmaW5lPT0iZnVuY3Rpb24iJiZkZWZpbmUuYW1kP2RlZmluZSh0KTooZT10eXBlb2YgZ2xvYmFsVGhpczwidSI/Z2xvYmFsVGhpczplfHxzZWxmKS5kYXlqcz10KCl9KShTSiwoZnVuY3Rpb24oKXsidXNlIHN0cmljdCI7dmFyIGU9MWUzLHQ9NmU0LHI9MzZlNSxpPSJtaWxsaXNlY29uZCIsYT0ic2Vjb25kIixuPSJtaW51dGUiLG89ImhvdXIiLHM9ImRheSIsbD0id2VlayIsYz0ibW9udGgiLHU9InF1YXJ0ZXIiLGQ9InllYXIiLGg9ImRhdGUiLGY9IkludmFsaWQgRGF0ZSIseD0vXihcZHs0fSlbLS9dPyhcZHsxLDJ9KT9bLS9dPyhcZHswLDJ9KVtUdFxzXSooXGR7MSwyfSk/Oj8oXGR7MSwyfSk/Oj8oXGR7MSwyfSk/Wy46XT8oXGQrKT8kLyx2PS9cWyhbXlxdXSspXXxZezEsNH18TXsxLDR9fER7MSwyfXxkezEsNH18SHsxLDJ9fGh7MSwyfXxhfEF8bXsxLDJ9fHN7MSwyfXxaezEsMn18U1NTL2csYj17bmFtZToiZW4iLHdlZWtkYXlzOiJTdW5kYXlfTW9uZGF5X1R1ZXNkYXlfV2VkbmVzZGF5X1RodXJzZGF5X0ZyaWRheV9TYXR1cmRheSIuc3BsaXQoIl8iKSxtb250aHM6IkphbnVhcnlfRmVicnVhcnlfTWFyY2hfQXByaWxfTWF5X0p1bmVfSnVseV9BdWd1c3RfU2VwdGVtYmVyX09jdG9iZXJfTm92ZW1iZXJfRGVjZW1iZXIiLnNwbGl0KCJfIiksb3JkaW5hbDpmdW5jdGlvbihTKXt2YXIgJD1bInRoIiwic3QiLCJuZCIsInJkIl0sVD1TJTEwMDtyZXR1cm4iWyIrUysoJFsoVC0yMCklMTBdfHwkW1RdfHwkWzBdKSsiXSJ9fSx5PWZ1bmN0aW9uKFMsJCxUKXt2YXIgRT1TdHJpbmcoUyk7cmV0dXJuIUV8fEUubGVuZ3RoPj0kP1M6IiIrQXJyYXkoJCsxLUUubGVuZ3RoKS5qb2luKFQpK1N9LHc9e3M6eSx6OmZ1bmN0aW9uKFMpe3ZhciAkPS1TLnV0Y09mZnNldCgpLFQ9TWF0aC5hYnMoJCksRT1NYXRoLmZsb29yKFQvNjApLHE9VCU2MDtyZXR1cm4oJDw9MD8iKyI6Ii0iKSt5KEUsMiwiMCIpKyI6Iit5KHEsMiwiMCIpfSxtOmZ1bmN0aW9uIFMoJCxUKXtpZigkLmRhdGUoKTxULmRhdGUoKSlyZXR1cm4tUyhULCQpO3ZhciBFPTEyKihULnllYXIoKS0kLnllYXIoKSkrKFQubW9udGgoKS0kLm1vbnRoKCkpLHE9JC5jbG9uZSgpLmFkZChFLGMpLEI9VC1xPDAsRz0kLmNsb25lKCkuYWRkKEUrKEI/LTE6MSksYyk7cmV0dXJuKygtKEUrKFQtcSkvKEI/cS1HOkctcSkpfHwwKX0sYTpmdW5jdGlvbihTKXtyZXR1cm4gUzwwP01hdGguY2VpbChTKXx8MDpNYXRoLmZsb29yKFMpfSxwOmZ1bmN0aW9uKFMpe3JldHVybntNOmMseTpkLHc6bCxkOnMsRDpoLGg6byxtOm4sczphLG1zOmksUTp1fVtTXXx8U3RyaW5nKFN8fCIiKS50b0xvd2VyQ2FzZSgpLnJlcGxhY2UoL3MkLywiIil9LHU6ZnVuY3Rpb24oUyl7cmV0dXJuIFM9PT12b2lkIDB9fSxrPSJlbiIsTz17fTtPW2tdPWI7dmFyIHo9IiRpc0RheWpzT2JqZWN0IixNPWZ1bmN0aW9uKFMpe3JldHVybiBTIGluc3RhbmNlb2YgUnx8ISghU3x8IVNbel0pfSxGPWZ1bmN0aW9uIFMoJCxULEUpe3ZhciBxO2lmKCEkKXJldHVybiBrO2lmKHR5cGVvZiAkPT0ic3RyaW5nIil7dmFyIEI9JC50b0xvd2VyQ2FzZSgpO09bQl0mJihxPUIpLFQmJihPW0JdPVQscT1CKTt2YXIgRz0kLnNwbGl0KCItIik7aWYoIXEmJkcubGVuZ3RoPjEpcmV0dXJuIFMoR1swXSl9ZWxzZXt2YXIgZWU9JC5uYW1lO09bZWVdPSQscT1lZX1yZXR1cm4hRSYmcSYmKGs9cSkscXx8IUUmJmt9LEQ9ZnVuY3Rpb24oUywkKXtpZihNKFMpKXJldHVybiBTLmNsb25lKCk7dmFyIFQ9dHlwZW9mICQ9PSJvYmplY3QiPyQ6e307cmV0dXJuIFQuZGF0ZT1TLFQuYXJncz1hcmd1bWVudHMsbmV3IFIoVCl9LE49dztOLmw9RixOLmk9TSxOLnc9ZnVuY3Rpb24oUywkKXtyZXR1cm4gRChTLHtsb2NhbGU6JC4kTCx1dGM6JC4kdSx4OiQuJHgsJG9mZnNldDokLiRvZmZzZXR9KX07dmFyIFI9KGZ1bmN0aW9uKCl7ZnVuY3Rpb24gUyhUKXt0aGlzLiRMPUYoVC5sb2NhbGUsbnVsbCwhMCksdGhpcy5wYXJzZShUKSx0aGlzLiR4PXRoaXMuJHh8fFQueHx8e30sdGhpc1t6XT0hMH12YXIgJD1TLnByb3RvdHlwZTtyZXR1cm4gJC5wYXJzZT1mdW5jdGlvbihUKXt0aGlzLiRkPShmdW5jdGlvbihFKXt2YXIgcT1FLmRhdGUsQj1FLnV0YztpZihxPT09bnVsbClyZXR1cm4gbmV3IERhdGUoTmFOKTtpZihOLnUocSkpcmV0dXJuIG5ldyBEYXRlO2lmKHEgaW5zdGFuY2VvZiBEYXRlKXJldHVybiBuZXcgRGF0ZShxKTtpZih0eXBlb2YgcT09InN0cmluZyImJiEvWiQvaS50ZXN0KHEpKXt2YXIgRz1xLm1hdGNoKHgpO2lmKEcpe3ZhciBlZT1HWzJdLTF8fDAsUD0oR1s3XXx8IjAiKS5zdWJzdHJpbmcoMCwzKTtyZXR1cm4gQj9uZXcgRGF0ZShEYXRlLlVUQyhHWzFdLGVlLEdbM118fDEsR1s0XXx8MCxHWzVdfHwwLEdbNl18fDAsUCkpOm5ldyBEYXRlKEdbMV0sZWUsR1szXXx8MSxHWzRdfHwwLEdbNV18fDAsR1s2XXx8MCxQKX19cmV0dXJuIG5ldyBEYXRlKHEpfSkoVCksdGhpcy5pbml0KCl9LCQuaW5pdD1mdW5jdGlvbigpe3ZhciBUPXRoaXMuJGQ7dGhpcy4keT1ULmdldEZ1bGxZZWFyKCksdGhpcy4kTT1ULmdldE1vbnRoKCksdGhpcy4kRD1ULmdldERhdGUoKSx0aGlzLiRXPVQuZ2V0RGF5KCksdGhpcy4kSD1ULmdldEhvdXJzKCksdGhpcy4kbT1ULmdldE1pbnV0ZXMoKSx0aGlzLiRzPVQuZ2V0U2Vjb25kcygpLHRoaXMuJG1zPVQuZ2V0TWlsbGlzZWNvbmRzKCl9LCQuJHV0aWxzPWZ1bmN0aW9uKCl7cmV0dXJuIE59LCQuaXNWYWxpZD1mdW5jdGlvbigpe3JldHVybiB0aGlzLiRkLnRvU3RyaW5nKCkhPT1mfSwkLmlzU2FtZT1mdW5jdGlvbihULEUpe3ZhciBxPUQoVCk7cmV0dXJuIHRoaXMuc3RhcnRPZihFKTw9cSYmcTw9dGhpcy5lbmRPZihFKX0sJC5pc0FmdGVyPWZ1bmN0aW9uKFQsRSl7cmV0dXJuIEQoVCk8dGhpcy5zdGFydE9mKEUpfSwkLmlzQmVmb3JlPWZ1bmN0aW9uKFQsRSl7cmV0dXJuIHRoaXMuZW5kT2YoRSk8RChUKX0sJC4kZz1mdW5jdGlvbihULEUscSl7cmV0dXJuIE4udShUKT90aGlzW0VdOnRoaXMuc2V0KHEsVCl9LCQudW5peD1mdW5jdGlvbigpe3JldHVybiBNYXRoLmZsb29yKHRoaXMudmFsdWVPZigpLzFlMyl9LCQudmFsdWVPZj1mdW5jdGlvbigpe3JldHVybiB0aGlzLiRkLmdldFRpbWUoKX0sJC5zdGFydE9mPWZ1bmN0aW9uKFQsRSl7dmFyIHE9dGhpcyxCPSEhTi51KEUpfHxFLEc9Ti5wKFQpLGVlPWZ1bmN0aW9uKEEsTCl7dmFyIFU9Ti53KHEuJHU/RGF0ZS5VVEMocS4keSxMLEEpOm5ldyBEYXRlKHEuJHksTCxBKSxxKTtyZXR1cm4gQj9VOlUuZW5kT2Yocyl9LFA9ZnVuY3Rpb24oQSxMKXtyZXR1cm4gTi53KHEudG9EYXRlKClbQV0uYXBwbHkocS50b0RhdGUoInMiKSwoQj9bMCwwLDAsMF06WzIzLDU5LDU5LDk5OV0pLnNsaWNlKEwpKSxxKX0sZ2U9dGhpcy4kVyx3ZT10aGlzLiRNLEk9dGhpcy4kRCxuZT0ic2V0IisodGhpcy4kdT8iVVRDIjoiIik7c3dpdGNoKEcpe2Nhc2UgZDpyZXR1cm4gQj9lZSgxLDApOmVlKDMxLDExKTtjYXNlIGM6cmV0dXJuIEI/ZWUoMSx3ZSk6ZWUoMCx3ZSsxKTtjYXNlIGw6dmFyIGtlPXRoaXMuJGxvY2FsZSgpLndlZWtTdGFydHx8MCxZPShnZTxrZT9nZSs3OmdlKS1rZTtyZXR1cm4gZWUoQj9JLVk6SSsoNi1ZKSx3ZSk7Y2FzZSBzOmNhc2UgaDpyZXR1cm4gUChuZSsiSG91cnMiLDApO2Nhc2UgbzpyZXR1cm4gUChuZSsiTWludXRlcyIsMSk7Y2FzZSBuOnJldHVybiBQKG5lKyJTZWNvbmRzIiwyKTtjYXNlIGE6cmV0dXJuIFAobmUrIk1pbGxpc2Vjb25kcyIsMyk7ZGVmYXVsdDpyZXR1cm4gdGhpcy5jbG9uZSgpfX0sJC5lbmRPZj1mdW5jdGlvbihUKXtyZXR1cm4gdGhpcy5zdGFydE9mKFQsITEpfSwkLiRzZXQ9ZnVuY3Rpb24oVCxFKXt2YXIgcSxCPU4ucChUKSxHPSJzZXQiKyh0aGlzLiR1PyJVVEMiOiIiKSxlZT0ocT17fSxxW3NdPUcrIkRhdGUiLHFbaF09RysiRGF0ZSIscVtjXT1HKyJNb250aCIscVtkXT1HKyJGdWxsWWVhciIscVtvXT1HKyJIb3VycyIscVtuXT1HKyJNaW51dGVzIixxW2FdPUcrIlNlY29uZHMiLHFbaV09RysiTWlsbGlzZWNvbmRzIixxKVtCXSxQPUI9PT1zP3RoaXMuJEQrKEUtdGhpcy4kVyk6RTtpZihCPT09Y3x8Qj09PWQpe3ZhciBnZT10aGlzLmNsb25lKCkuc2V0KGgsMSk7Z2UuJGRbZWVdKFApLGdlLmluaXQoKSx0aGlzLiRkPWdlLnNldChoLE1hdGgubWluKHRoaXMuJEQsZ2UuZGF5c0luTW9udGgoKSkpLiRkfWVsc2UgZWUmJnRoaXMuJGRbZWVdKFApO3JldHVybiB0aGlzLmluaXQoKSx0aGlzfSwkLnNldD1mdW5jdGlvbihULEUpe3JldHVybiB0aGlzLmNsb25lKCkuJHNldChULEUpfSwkLmdldD1mdW5jdGlvbihUKXtyZXR1cm4gdGhpc1tOLnAoVCldKCl9LCQuYWRkPWZ1bmN0aW9uKFQsRSl7dmFyIHEsQj10aGlzO1Q9TnVtYmVyKFQpO3ZhciBHPU4ucChFKSxlZT1mdW5jdGlvbih3ZSl7dmFyIEk9RChCKTtyZXR1cm4gTi53KEkuZGF0ZShJLmRhdGUoKStNYXRoLnJvdW5kKHdlKlQpKSxCKX07aWYoRz09PWMpcmV0dXJuIHRoaXMuc2V0KGMsdGhpcy4kTStUKTtpZihHPT09ZClyZXR1cm4gdGhpcy5zZXQoZCx0aGlzLiR5K1QpO2lmKEc9PT1zKXJldHVybiBlZSgxKTtpZihHPT09bClyZXR1cm4gZWUoNyk7dmFyIFA9KHE9e30scVtuXT10LHFbb109cixxW2FdPWUscSlbR118fDEsZ2U9dGhpcy4kZC5nZXRUaW1lKCkrVCpQO3JldHVybiBOLncoZ2UsdGhpcyl9LCQuc3VidHJhY3Q9ZnVuY3Rpb24oVCxFKXtyZXR1cm4gdGhpcy5hZGQoLTEqVCxFKX0sJC5mb3JtYXQ9ZnVuY3Rpb24oVCl7dmFyIEU9dGhpcyxxPXRoaXMuJGxvY2FsZSgpO2lmKCF0aGlzLmlzVmFsaWQoKSlyZXR1cm4gcS5pbnZhbGlkRGF0ZXx8Zjt2YXIgQj1UfHwiWVlZWS1NTS1ERFRISDptbTpzc1oiLEc9Ti56KHRoaXMpLGVlPXRoaXMuJEgsUD10aGlzLiRtLGdlPXRoaXMuJE0sd2U9cS53ZWVrZGF5cyxJPXEubW9udGhzLG5lPXEubWVyaWRpZW0sa2U9ZnVuY3Rpb24oTCxVLFYsWCl7cmV0dXJuIEwmJihMW1VdfHxMKEUsQikpfHxWW1VdLnNsaWNlKDAsWCl9LFk9ZnVuY3Rpb24oTCl7cmV0dXJuIE4ucyhlZSUxMnx8MTIsTCwiMCIpfSxBPW5lfHxmdW5jdGlvbihMLFUsVil7dmFyIFg9TDwxMj8iQU0iOiJQTSI7cmV0dXJuIFY/WC50b0xvd2VyQ2FzZSgpOlh9O3JldHVybiBCLnJlcGxhY2UodiwoZnVuY3Rpb24oTCxVKXtyZXR1cm4gVXx8KGZ1bmN0aW9uKFYpe3N3aXRjaChWKXtjYXNlIllZIjpyZXR1cm4gU3RyaW5nKEUuJHkpLnNsaWNlKC0yKTtjYXNlIllZWVkiOnJldHVybiBOLnMoRS4keSw0LCIwIik7Y2FzZSJNIjpyZXR1cm4gZ2UrMTtjYXNlIk1NIjpyZXR1cm4gTi5zKGdlKzEsMiwiMCIpO2Nhc2UiTU1NIjpyZXR1cm4ga2UocS5tb250aHNTaG9ydCxnZSxJLDMpO2Nhc2UiTU1NTSI6cmV0dXJuIGtlKEksZ2UpO2Nhc2UiRCI6cmV0dXJuIEUuJEQ7Y2FzZSJERCI6cmV0dXJuIE4ucyhFLiRELDIsIjAiKTtjYXNlImQiOnJldHVybiBTdHJpbmcoRS4kVyk7Y2FzZSJkZCI6cmV0dXJuIGtlKHEud2Vla2RheXNNaW4sRS4kVyx3ZSwyKTtjYXNlImRkZCI6cmV0dXJuIGtlKHEud2Vla2RheXNTaG9ydCxFLiRXLHdlLDMpO2Nhc2UiZGRkZCI6cmV0dXJuIHdlW0UuJFddO2Nhc2UiSCI6cmV0dXJuIFN0cmluZyhlZSk7Y2FzZSJISCI6cmV0dXJuIE4ucyhlZSwyLCIwIik7Y2FzZSJoIjpyZXR1cm4gWSgxKTtjYXNlImhoIjpyZXR1cm4gWSgyKTtjYXNlImEiOnJldHVybiBBKGVlLFAsITApO2Nhc2UiQSI6cmV0dXJuIEEoZWUsUCwhMSk7Y2FzZSJtIjpyZXR1cm4gU3RyaW5nKFApO2Nhc2UibW0iOnJldHVybiBOLnMoUCwyLCIwIik7Y2FzZSJzIjpyZXR1cm4gU3RyaW5nKEUuJHMpO2Nhc2Uic3MiOnJldHVybiBOLnMoRS4kcywyLCIwIik7Y2FzZSJTU1MiOnJldHVybiBOLnMoRS4kbXMsMywiMCIpO2Nhc2UiWiI6cmV0dXJuIEd9cmV0dXJuIG51bGx9KShMKXx8Ry5yZXBsYWNlKCI6IiwiIil9KSl9LCQudXRjT2Zmc2V0PWZ1bmN0aW9uKCl7cmV0dXJuIDE1Ki1NYXRoLnJvdW5kKHRoaXMuJGQuZ2V0VGltZXpvbmVPZmZzZXQoKS8xNSl9LCQuZGlmZj1mdW5jdGlvbihULEUscSl7dmFyIEIsRz10aGlzLGVlPU4ucChFKSxQPUQoVCksZ2U9KFAudXRjT2Zmc2V0KCktdGhpcy51dGNPZmZzZXQoKSkqdCx3ZT10aGlzLVAsST1mdW5jdGlvbigpe3JldHVybiBOLm0oRyxQKX07c3dpdGNoKGVlKXtjYXNlIGQ6Qj1JKCkvMTI7YnJlYWs7Y2FzZSBjOkI9SSgpO2JyZWFrO2Nhc2UgdTpCPUkoKS8zO2JyZWFrO2Nhc2UgbDpCPSh3ZS1nZSkvNjA0OGU1O2JyZWFrO2Nhc2UgczpCPSh3ZS1nZSkvODY0ZTU7YnJlYWs7Y2FzZSBvOkI9d2UvcjticmVhaztjYXNlIG46Qj13ZS90O2JyZWFrO2Nhc2UgYTpCPXdlL2U7YnJlYWs7ZGVmYXVsdDpCPXdlfXJldHVybiBxP0I6Ti5hKEIpfSwkLmRheXNJbk1vbnRoPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuZW5kT2YoYykuJER9LCQuJGxvY2FsZT1mdW5jdGlvbigpe3JldHVybiBPW3RoaXMuJExdfSwkLmxvY2FsZT1mdW5jdGlvbihULEUpe2lmKCFUKXJldHVybiB0aGlzLiRMO3ZhciBxPXRoaXMuY2xvbmUoKSxCPUYoVCxFLCEwKTtyZXR1cm4gQiYmKHEuJEw9QikscX0sJC5jbG9uZT1mdW5jdGlvbigpe3JldHVybiBOLncodGhpcy4kZCx0aGlzKX0sJC50b0RhdGU9ZnVuY3Rpb24oKXtyZXR1cm4gbmV3IERhdGUodGhpcy52YWx1ZU9mKCkpfSwkLnRvSlNPTj1mdW5jdGlvbigpe3JldHVybiB0aGlzLmlzVmFsaWQoKT90aGlzLnRvSVNPU3RyaW5nKCk6bnVsbH0sJC50b0lTT1N0cmluZz1mdW5jdGlvbigpe3JldHVybiB0aGlzLiRkLnRvSVNPU3RyaW5nKCl9LCQudG9TdHJpbmc9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy4kZC50b1VUQ1N0cmluZygpfSxTfSkoKSxfPVIucHJvdG90eXBlO3JldHVybiBELnByb3RvdHlwZT1fLFtbIiRtcyIsaV0sWyIkcyIsYV0sWyIkbSIsbl0sWyIkSCIsb10sWyIkVyIsc10sWyIkTSIsY10sWyIkeSIsZF0sWyIkRCIsaF1dLmZvckVhY2goKGZ1bmN0aW9uKFMpe19bU1sxXV09ZnVuY3Rpb24oJCl7cmV0dXJuIHRoaXMuJGcoJCxTWzBdLFNbMV0pfX0pKSxELmV4dGVuZD1mdW5jdGlvbihTLCQpe3JldHVybiBTLiRpfHwoUygkLFIsRCksUy4kaT0hMCksRH0sRC5sb2NhbGU9RixELmlzRGF5anM9TSxELnVuaXg9ZnVuY3Rpb24oUyl7cmV0dXJuIEQoMWUzKlMpfSxELmVuPU9ba10sRC5Mcz1PLEQucD17fSxEfSkpfSk7dmFyIGVIZT1qZSgoQ0osVEopPT57KGZ1bmN0aW9uKGUsdCl7dHlwZW9mIENKPT0ib2JqZWN0IiYmdHlwZW9mIFRKPCJ1Ij9USi5leHBvcnRzPXQoKTp0eXBlb2YgZGVmaW5lPT0iZnVuY3Rpb24iJiZkZWZpbmUuYW1kP2RlZmluZSh0KTooZT10eXBlb2YgZ2xvYmFsVGhpczwidSI/Z2xvYmFsVGhpczplfHxzZWxmKS5kYXlqc19wbHVnaW5faXNUb2RheT10KCl9KShDSiwoZnVuY3Rpb24oKXsidXNlIHN0cmljdCI7cmV0dXJuIGZ1bmN0aW9uKGUsdCxyKXt0LnByb3RvdHlwZS5pc1RvZGF5PWZ1bmN0aW9uKCl7dmFyIGk9IllZWVktTU0tREQiLGE9cigpO3JldHVybiB0aGlzLmZvcm1hdChpKT09PWEuZm9ybWF0KGkpfX19KSl9KTtmdW5jdGlvbiB1RXIoZSl7cmV0dXJue2RheXM6TWF0aC50cnVuYyhlLzg2NGU1KSxob3VyczpNYXRoLnRydW5jKGUvMzZlNSUyNCksbWludXRlczpNYXRoLnRydW5jKGUvNmU0JTYwKSxzZWNvbmRzOk1hdGgudHJ1bmMoZS8xZTMlNjApLG1pbGxpc2Vjb25kczpNYXRoLnRydW5jKGUlMWUzKSxtaWNyb3NlY29uZHM6TWF0aC50cnVuYyh0SGUoZSoxZTMpJTFlMyksbmFub3NlY29uZHM6TWF0aC50cnVuYyh0SGUoZSoxZTYpJTFlMyl9fWZ1bmN0aW9uIHBFcihlKXtyZXR1cm57ZGF5czplLzg2NDAwMDAwbixob3VyczplLzM2MDAwMDBuJTI0bixtaW51dGVzOmUvNjAwMDBuJTYwbixzZWNvbmRzOmUvMTAwMG4lNjBuLG1pbGxpc2Vjb25kczplJTEwMDBuLG1pY3Jvc2Vjb25kczowbixuYW5vc2Vjb25kczowbn19ZnVuY3Rpb24gX0ooZSl7c3dpdGNoKHR5cGVvZiBlKXtjYXNlIm51bWJlciI6e2lmKE51bWJlci5pc0Zpbml0ZShlKSlyZXR1cm4gdUVyKGUpO2JyZWFrfWNhc2UiYmlnaW50IjpyZXR1cm4gcEVyKGUpfXRocm93IG5ldyBUeXBlRXJyb3IoIkV4cGVjdGVkIGEgZmluaXRlIG51bWJlciBvciBiaWdpbnQiKX12YXIgdEhlLHJIZT1wKCgpPT57dEhlPWU9Pk51bWJlci5pc0Zpbml0ZShlKT9lOjB9KTtmdW5jdGlvbiBXbShlLHQpe2xldCByPXR5cGVvZiBlPT0iYmlnaW50IjtpZighciYmIU51bWJlci5pc0Zpbml0ZShlKSl0aHJvdyBuZXcgVHlwZUVycm9yKCJFeHBlY3RlZCBhIGZpbml0ZSBudW1iZXIgb3IgYmlnaW50Iik7dD17Li4udH07bGV0IGk9ZTwwPyItIjoiIjtlPWU8MD8tZTplLHQuY29sb25Ob3RhdGlvbiYmKHQuY29tcGFjdD0hMSx0LmZvcm1hdFN1Yk1pbGxpc2Vjb25kcz0hMSx0LnNlcGFyYXRlTWlsbGlzZWNvbmRzPSExLHQudmVyYm9zZT0hMSksdC5jb21wYWN0JiYodC51bml0Q291bnQ9MSx0LnNlY29uZHNEZWNpbWFsRGlnaXRzPTAsdC5taWxsaXNlY29uZHNEZWNpbWFsRGlnaXRzPTApO2xldCBhPVtdLG49KHUsZCk9PntsZXQgaD1NYXRoLmZsb29yKHUqMTAqKmQrbUVyKTtyZXR1cm4oTWF0aC5yb3VuZChoKS8xMCoqZCkudG9GaXhlZChkKX0sbz0odSxkLGgsZik9PntpZighKChhLmxlbmd0aD09PTB8fCF0LmNvbG9uTm90YXRpb24pJiZoRXIodSkmJiEodC5jb2xvbk5vdGF0aW9uJiZoPT09Im0iKSkpe2lmKGY/Pz1TdHJpbmcodSksdC5jb2xvbk5vdGF0aW9uKXtsZXQgeD1mLmluY2x1ZGVzKCIuIik/Zi5zcGxpdCgiLiIpWzBdLmxlbmd0aDpmLmxlbmd0aCx2PWEubGVuZ3RoPjA/MjoxO2Y9IjAiLnJlcGVhdChNYXRoLm1heCgwLHYteCkpK2Z9ZWxzZSBmKz10LnZlcmJvc2U/IiAiK2ZFcihkLHUpOmg7YS5wdXNoKGYpfX0scz1fSihlKSxsPUJpZ0ludChzLmRheXMpO2lmKHQuaGlkZVllYXJBbmREYXlzP28oQmlnSW50KGwpKjI0bitCaWdJbnQocy5ob3VycyksImhvdXIiLCJoIik6KHQuaGlkZVllYXI/byhsLCJkYXkiLCJkIik6KG8obC8zNjVuLCJ5ZWFyIiwieSIpLG8obCUzNjVuLCJkYXkiLCJkIikpLG8oTnVtYmVyKHMuaG91cnMpLCJob3VyIiwiaCIpKSxvKE51bWJlcihzLm1pbnV0ZXMpLCJtaW51dGUiLCJtIiksIXQuaGlkZVNlY29uZHMpaWYodC5zZXBhcmF0ZU1pbGxpc2Vjb25kc3x8dC5mb3JtYXRTdWJNaWxsaXNlY29uZHN8fCF0LmNvbG9uTm90YXRpb24mJmU8MWUzJiYhdC5zdWJTZWNvbmRzQXNEZWNpbWFscyl7bGV0IHU9TnVtYmVyKHMuc2Vjb25kcyksZD1OdW1iZXIocy5taWxsaXNlY29uZHMpLGg9TnVtYmVyKHMubWljcm9zZWNvbmRzKSxmPU51bWJlcihzLm5hbm9zZWNvbmRzKTtpZihvKHUsInNlY29uZCIsInMiKSx0LmZvcm1hdFN1Yk1pbGxpc2Vjb25kcylvKGQsIm1pbGxpc2Vjb25kIiwibXMiKSxvKGgsIm1pY3Jvc2Vjb25kIiwiXHhCNXMiKSxvKGYsIm5hbm9zZWNvbmQiLCJucyIpO2Vsc2V7bGV0IHg9ZCtoLzFlMytmLzFlNix2PXR5cGVvZiB0Lm1pbGxpc2Vjb25kc0RlY2ltYWxEaWdpdHM9PSJudW1iZXIiP3QubWlsbGlzZWNvbmRzRGVjaW1hbERpZ2l0czowLGI9eD49MT9NYXRoLnJvdW5kKHgpOk1hdGguY2VpbCh4KSx5PXY/eC50b0ZpeGVkKHYpOmI7byhOdW1iZXIucGFyc2VGbG9hdCh5KSwibWlsbGlzZWNvbmQiLCJtcyIseSl9fWVsc2V7bGV0IHU9KHI/TnVtYmVyKGUlZ0VyKTplKS8xZTMlNjAsZD10eXBlb2YgdC5zZWNvbmRzRGVjaW1hbERpZ2l0cz09Im51bWJlciI/dC5zZWNvbmRzRGVjaW1hbERpZ2l0czoxLGg9bih1LGQpLGY9dC5rZWVwRGVjaW1hbHNPbldob2xlU2Vjb25kcz9oOmgucmVwbGFjZSgvXC4wKyQvLCIiKTtvKE51bWJlci5wYXJzZUZsb2F0KGYpLCJzZWNvbmQiLCJzIixmKX1pZihhLmxlbmd0aD09PTApcmV0dXJuIGkrIjAiKyh0LnZlcmJvc2U/IiBtaWxsaXNlY29uZHMiOiJtcyIpO2xldCBjPXQuY29sb25Ob3RhdGlvbj8iOiI6IiAiO3JldHVybiB0eXBlb2YgdC51bml0Q291bnQ9PSJudW1iZXIiJiYoYT1hLnNsaWNlKDAsTWF0aC5tYXgodC51bml0Q291bnQsMSkpKSxpK2Euam9pbihjKX12YXIgaEVyLGZFcixtRXIsZ0VyLGlIZT1wKCgpPT57ckhlKCk7aEVyPWU9PmU9PT0wfHxlPT09MG4sZkVyPShlLHQpPT50PT09MXx8dD09PTFuP2U6YCR7ZX1zYCxtRXI9MWUtNyxnRXI9MjRuKjYwbio2MG4qMTAwMG59KTt2YXIgTzYsYUhlLFgwPXAoKCk9PntHbSgpO1RzKCk7RWkoKTtmSWUoKTtKQmUoKTtPNj1lcihLQmUoKSwxKSxhSGU9ZXIoZUhlKCksMSk7aUhlKCk7TzYuZGVmYXVsdC5leHRlbmQoYUhlLmRlZmF1bHQpfSk7dmFyIFltLExKPXAoKCk9PntYMCgpO0FKKCk7WW09Y2xhc3N7Y29uc3RydWN0b3IodCxyLGkpe3RoaXMuc3RhdHVzPSJpbml0aWFsIix0aGlzLm5leHRFeGVjdXRpb25Vbml4PTAsdGhpcy5jcm9uRXhwcmVzc2lvbj1yLHRoaXMuam9iRnVuY3Rpb249aSx0aGlzLmNyb25QYXJzZXI9bmV3IFNtLkNyb24ocil9Y2hlY2tFeGVjdXRpb24oKXtpZih0aGlzLnN0YXR1cz09PSJzdG9wcGVkIilyZXR1cm4gdGhpcy5uZXh0RXhlY3V0aW9uVW5peDtpZih0aGlzLm5leHRFeGVjdXRpb25Vbml4PT09MCYmdGhpcy5nZXROZXh0RXhlY3V0aW9uVGltZSgpLERhdGUubm93KCk+dGhpcy5uZXh0RXhlY3V0aW9uVW5peCl7bGV0IHQ9dGhpcy5qb2JGdW5jdGlvbih0aGlzLm5leHRFeGVjdXRpb25Vbml4KTt0IGluc3RhbmNlb2YgUHJvbWlzZSYmdC5jYXRjaChyPT5jb25zb2xlLmxvZyhyKSksdGhpcy5uZXh0RXhlY3V0aW9uVW5peD10aGlzLmdldE5leHRFeGVjdXRpb25UaW1lKCl9cmV0dXJuIHRoaXMubmV4dEV4ZWN1dGlvblVuaXh9Z2V0TmV4dEV4ZWN1dGlvblRpbWUoKXtyZXR1cm4gdGhpcy5uZXh0RXhlY3V0aW9uVW5peD1EYXRlLm5vdygpK3RoaXMuZ2V0VGltZVRvTmV4dEV4ZWN1dGlvbigpfWdldFRpbWVUb05leHRFeGVjdXRpb24oKXtyZXR1cm4gdGhpcy5jcm9uUGFyc2VyLm1zVG9OZXh0KCl9c3RhcnQoKXt0aGlzLnN0YXR1cz0ic3RhcnRlZCJ9c3RvcCgpe3RoaXMuc3RhdHVzPSJzdG9wcGVkIn19fSk7dmFyIERKLEFKPXAoKCk9PntYMCgpO0xKKCk7REo9Y2xhc3N7Y29uc3RydWN0b3IoKXt0aGlzLnN0YXR1cz0ic3RvcHBlZCIsdGhpcy5jcm9uam9icz1uZXcgdmkuT2JqZWN0TWFwLHRoaXMuY3ljbGVXYWtlRGVmZXJyZWQ9bnVsbH13YWtlQ3ljbGUoKXt0aGlzLmN5Y2xlV2FrZURlZmVycmVkJiZ0aGlzLmN5Y2xlV2FrZURlZmVycmVkLnN0YXR1cz09PSJwZW5kaW5nIiYmdGhpcy5jeWNsZVdha2VEZWZlcnJlZC5yZXNvbHZlKCl9YWRkQ3JvbmpvYih0LHIpe2xldCBpPW5ldyBZbSh0aGlzLHQscik7cmV0dXJuIHRoaXMuY3JvbmpvYnMuYWRkKGkpLHRoaXMuc3RhdHVzPT09InN0YXJ0ZWQiJiYoaS5zdGFydCgpLHRoaXMud2FrZUN5Y2xlKCkpLGl9cmVtb3ZlQ3JvbmpvYih0KXt0LnN0b3AoKSx0aGlzLmNyb25qb2JzLnJlbW92ZSh0KSx0aGlzLnN0YXR1cz09PSJzdGFydGVkIiYmdGhpcy53YWtlQ3ljbGUoKX1zdGFydCgpe2lmKHRoaXMuc3RhdHVzIT09InN0YXJ0ZWQiKXt0aGlzLnN0YXR1cz0ic3RhcnRlZCI7Zm9yKGxldCB0IG9mIHRoaXMuY3JvbmpvYnMuZ2V0QXJyYXkoKSl0LnN0YXJ0KCk7dGhpcy5ydW5Dcm9uQ3ljbGUoKX19YXN5bmMgcnVuQ3JvbkN5Y2xlKCl7Zm9yKDt0aGlzLnN0YXR1cz09PSJzdGFydGVkIjspe3RoaXMuY3ljbGVXYWtlRGVmZXJyZWQ9bmV3IFhlLkRlZmVycmVkO2xldCB0PTEvMDtmb3IobGV0IHIgb2YgdGhpcy5jcm9uam9icy5nZXRBcnJheSgpKXtyLmNoZWNrRXhlY3V0aW9uKCk7bGV0IGk9ci5nZXRUaW1lVG9OZXh0RXhlY3V0aW9uKCk7aTx0JiYodD1pKX1pZih0PDEvMCYmdD4wKXRoaXMuZXhlY3V0aW9uVGltZW91dD1uZXcgQ3QuVGltZW91dCh0KSxhd2FpdCBQcm9taXNlLnJhY2UoW3RoaXMuZXhlY3V0aW9uVGltZW91dC5wcm9taXNlLHRoaXMuY3ljbGVXYWtlRGVmZXJyZWQucHJvbWlzZV0pLHRoaXMuZXhlY3V0aW9uVGltZW91dC5jYW5jZWwoKTtlbHNle2lmKHQ8PTApY29udGludWU7YXdhaXQgdGhpcy5jeWNsZVdha2VEZWZlcnJlZC5wcm9taXNlfX10aGlzLmN5Y2xlV2FrZURlZmVycmVkPW51bGx9c3RvcCgpe3RoaXMuc3RhdHVzPT09InN0YXJ0ZWQiJiYodGhpcy5zdGF0dXM9InN0b3BwZWQiLHRoaXMuZXhlY3V0aW9uVGltZW91dCYmdGhpcy5leGVjdXRpb25UaW1lb3V0LmNhbmNlbCgpLHRoaXMud2FrZUN5Y2xlKCkpO2ZvcihsZXQgdCBvZiB0aGlzLmNyb25qb2JzLmdldEFycmF5KCkpdC5zdG9wKCl9fX0pO3ZhciBRMCxFSixiRXIsdkVyLCRKPXAoKCk9PntYMCgpO1EwPXt5ZWFyczooZT0xKT0+ZSozMTU0ZTcsbW9udGhzOihlPTEpPT5lKjI2MjhlNix3ZWVrczooZT0xKT0+ZSo2MDQ4ZTUsZGF5czooZT0xKT0+ZSo4NjRlNSxob3VyczooZT0xKT0+ZSozNmU1LG1pbnV0ZXM6KGU9MSk9PmUqNmU0LHNlY29uZHM6KGU9MSk9PmUqMWUzfSxFSj1lPT57bGV0IHQ9MCxyPWk9Pnt0PXQraX07cmV0dXJuIGUueWVhcnMmJnIoUTAueWVhcnMoZS55ZWFycykpLGUubW9udGhzJiZyKFEwLm1vbnRocyhlLm1vbnRocykpLGUud2Vla3MmJnIoUTAud2Vla3MoZS53ZWVrcykpLGUuZGF5cyYmcihRMC5kYXlzKGUuZGF5cykpLGUuaG91cnMmJnIoUTAuaG91cnMoZS5ob3VycykpLGUubWludXRlcyYmcihRMC5taW51dGVzKGUubWludXRlcykpLGUuc2Vjb25kcyYmcihRMC5zZWNvbmRzKGUuc2Vjb25kcykpLHR9LGJFcj1lPT5XbShlKSx2RXI9ZT0+VW0uZm9ybWF0RGlzdGFuY2VUb05vdyhuZXcgRGF0ZShlKSl9KTt2YXIgSUosbkhlPXAoKCk9PntYMCgpOyRKKCk7SUo9Y2xhc3MgZSBleHRlbmRzIERhdGV7c3RhdGljIGZyb21NaWxsaXModCl7cmV0dXJuIG5ldyBlKHQpfXN0YXRpYyBmcm9tRGF0ZSh0KXtyZXR1cm4gbmV3IGUodC5nZXRUaW1lKCkpfXN0YXRpYyBmcm9tRXVyb3BlYW5EYXRlKHQpe2xldCByPS8oLiopXC4oLiopXC4oLiopLy5leGVjKHQpLGE9bmV3IERhdGUocGFyc2VGbG9hdChyWzNdKSxwYXJzZUZsb2F0KHJbMl0pLTEscGFyc2VGbG9hdChyWzFdKSkuZ2V0VGltZSgpO3JldHVybiBuZXcgZShhKX1zdGF0aWMgZnJvbUh5cGhlZERhdGUodCl7bGV0IHI9bmV3IERhdGUodCkuZ2V0VGltZSgpO3JldHVybiBuZXcgZShyKX1zdGF0aWMgZnJvbUV1cm9wZWFuRGF0ZUFuZFRpbWUodCxyPSIxMjowMDowMCIsaT0iRXVyb3BlL0JlcmxpbiIpe2xldCBhPS8oLiopXC4oLiopXC4oLiopLy5leGVjKHQpLG49Yz0+YDAke2N9YC5zbGljZSgtMiksbz1gJHthWzNdfS0ke24oYVsyXSl9LSR7bihhWzFdKX1UJHtyfWAsbD1PNi5kZWZhdWx0KG8pLnRvRGF0ZSgpLmdldFRpbWUoKTtyZXR1cm4gbmV3IGUobCl9Y29uc3RydWN0b3IodD1EYXRlLm5vdygpKXtzdXBlcih0KX1leHBvcnRUb0V1cm9wZWFuRGF0ZSgpe2xldCB0PXRoaXMuZXhwb3J0VG9Vbml0cygpO3JldHVybmAke3QuZGF5U3RyaW5nfS4ke3QubW9udGhTdHJpbmd9LiR7dC55ZWFyU3RyaW5nfWB9ZXhwb3J0VG9IeXBoZWRTb3J0YWJsZURhdGUoKXtsZXQgdD10aGlzLmV4cG9ydFRvVW5pdHMoKTtyZXR1cm5gJHt0LnllYXJTdHJpbmd9LSR7dC5tb250aFN0cmluZ30tJHt0LmRheVN0cmluZ31gfWV4cG9ydFRvVW5pdHMoKXtsZXQgdD1bIkphbnVhcnkiLCJGZWJydWFyeSIsIk1hcmNoIiwiQXByaWwiLCJNYXkiLCJKdW5lIiwiSnVseSIsIkF1Z3VzdCIsIlNlcHRlbWJlciIsIk9jdG9iZXIiLCJOb3ZlbWJlciIsIkRlY2VtYmVyIl0scj1bIk1vbmRheSIsIlR1ZXNkYXkiLCJXZWRuZXNkYXkiLCJUaHVyc2RheSIsIkZyaWRheSIsIlNhdHVyZGF5IiwiU3VuZGF5Il07cmV0dXJue3llYXI6dGhpcy5nZXRGdWxsWWVhcigpLHllYXJTdHJpbmc6YCR7dGhpcy5nZXRGdWxsWWVhcigpfWAsbW9udGg6dGhpcy5nZXRNb250aCgpKzEsbW9udGhTdHJpbmc6KCIwIisodGhpcy5nZXRNb250aCgpKzEpKS5zbGljZSgtMiksbW9udGhOYW1lOnRbdGhpcy5nZXRNb250aCgpXSxkYXk6dGhpcy5nZXREYXRlKCksZGF5U3RyaW5nOigiMCIrdGhpcy5nZXREYXRlKCkpLnNsaWNlKC0yKSxkYXlPZlRoZVdlZWs6dGhpcy5nZXREYXkoKSxkYXlPZlRoZVdlZWtOYW1lOnJbdGhpcy5nZXREYXkoKV19fWZvcm1hdCh0KXtyZXR1cm4gTzYuZGVmYXVsdCh0aGlzLmdldFRpbWUoKSkuZm9ybWF0KHQpfWlzVG9kYXkoKXtyZXR1cm4gTzYuZGVmYXVsdCh0aGlzLmdldFRpbWUoKSkuaXNUb2RheSgpfWxlc3NUaW1lUGFzc2VkVG9Ob3codCl7bGV0IHI9RUoodCk7cmV0dXJuIERhdGUubm93KCktdGhpcy5nZXRUaW1lKCk8cn1tb3JlVGltZVBhc3NlZFRvTm93KHQpe3JldHVybiF0aGlzLmxlc3NUaW1lUGFzc2VkVG9Ob3codCl9fX0pO3ZhciBQSixvSGU9cCgoKT0+e1BKPWNsYXNze2NvbnN0cnVjdG9yKCl7dGhpcy5uYW5vU2Vjb25kcz1udWxsLHRoaXMubWlsbGlTZWNvbmRzPW51bGwsdGhpcy5fbWlsbGlTdGFydD1udWxsLHRoaXMuX21pbGxpRGlmZj1udWxsLHRoaXMuX3N0YXJ0ZWQ9ITF9c3RhcnQoKXt0aGlzLl9zdGFydGVkPSEwLHRoaXMuX21pbGxpU3RhcnQ9RGF0ZS5ub3coKX1zdG9wKCl7aWYodGhpcy5fc3RhcnRlZD09PSExKXtjb25zb2xlLmxvZygiSGFzbid0IHN0YXJ0ZWQgeWV0Iik7cmV0dXJufXJldHVybiB0aGlzLl9taWxsaURpZmY9RGF0ZS5ub3coKS10aGlzLl9taWxsaVN0YXJ0LHRoaXMubmFub1NlY29uZHM9dGhpcy5fbWlsbGlEaWZmKjFlMyx0aGlzLm1pbGxpU2Vjb25kcz10aGlzLl9taWxsaURpZmYsdGhpc31yZXNldCgpe3RoaXMubmFub1NlY29uZHM9bnVsbCx0aGlzLm1pbGxpU2Vjb25kcz1udWxsLHRoaXMuX21pbGxpU3RhcnQ9bnVsbCx0aGlzLl9taWxsaURpZmY9bnVsbCx0aGlzLl9zdGFydGVkPSExfX19KTt2YXIgTkosc0hlPXAoKCk9PntYMCgpO05KPWNsYXNze2NvbnN0cnVjdG9yKHQpe3RoaXMuc3RhdHVzPSJpbml0aWFsIix0aGlzLnN0YXR1c0F1dGhvcml6YXRpb249bnVsbCx0aGlzLmludGVydmFsSm9icz1bXSx0aGlzLmludGVydmFsTWlsbGlzZWNvbmRzPXR9c3RhcnQoKXt0aGlzLnN0YXR1cz0ic3RhcnRlZCI7bGV0IHQ9bmV3IERhdGU7dGhpcy5zdGF0dXNBdXRob3JpemF0aW9uPXQsKGFzeW5jKCk9Pntmb3IoO3RoaXMuc3RhdHVzPT09InN0YXJ0ZWQiJiZ0aGlzLnN0YXR1c0F1dGhvcml6YXRpb249PT10Oylhd2FpdCBDdC5kZWxheUZvcih0aGlzLmludGVydmFsTWlsbGlzZWNvbmRzKSx0aGlzLmV4ZWN1dGVJbnRlcnZhbEpvYnMoKX0pKCl9c3RvcCgpe3RoaXMuc3RhdHVzPSJzdG9wcGVkIix0aGlzLnN0YXR1c0F1dGhvcml6YXRpb249bnVsbH1hZGRJbnRlcnZhbEpvYih0KXt0aGlzLmludGVydmFsSm9icy5wdXNoKHQpfWV4ZWN1dGVJbnRlcnZhbEpvYnMoKXtmb3IobGV0IHQgb2YgdGhpcy5pbnRlcnZhbEpvYnMpdCgpfX19KTt2YXIgRTgsRko9cCgoKT0+e1gwKCk7RTg9Y2xhc3MgZXtzdGF0aWMgZnJvbU1pbGxpU2Vjb25kcyh0KXtyZXR1cm4gbmV3IGUodCl9c3RhdGljIGZyb21UaW1lU3RhbXAodCl7bGV0IHI9bmV3IGU7cmV0dXJuIHIuY2hhbmdlPXIubWlsbGlTZWNvbmRzLXQubWlsbGlTZWNvbmRzLHJ9Y29uc3RydWN0b3IodCl7dGhpcy5jaGFuZ2U9bnVsbCx0P3R5cGVvZiB0PT0ibnVtYmVyIiYmKHRoaXMuZGF0ZT1uZXcgRGF0ZSh0KSk6dGhpcy5kYXRlPW5ldyBEYXRlLHRoaXMubWlsbGlTZWNvbmRzPXRoaXMuZGF0ZS5nZXRUaW1lKCksdGhpcy5lcG9jaHRpbWU9TWF0aC5mbG9vcih0aGlzLm1pbGxpU2Vjb25kcy8xZTMpfWlzT2xkZXJUaGFuT3RoZXJUaW1lU3RhbXAodCxyPTApe3JldHVybiB0aGlzLm1pbGxpU2Vjb25kczx0Lm1pbGxpU2Vjb25kcy1yfWlzT2xkZXJUaGFuKHQscj0wKXtyZXR1cm4gdGhpcy5taWxsaVNlY29uZHMrcjx0Lm1pbGxpU2Vjb25kc31pc1lvdW5nZXJUaGFuT3RoZXJUaW1lU3RhbXAodCxyPTApe3JldHVybiB0aGlzLm1pbGxpU2Vjb25kcz50Lm1pbGxpU2Vjb25kcytyfWlzWW91bmdlclRoYW5NaWxsaVNlY29uZHModCl7bGV0IGk9bmV3IGUoKS5lcG9jaHRpbWUtdCxhPW5ldyBlKGkpO3JldHVybiB0aGlzLmlzWW91bmdlclRoYW5PdGhlclRpbWVTdGFtcChhKX19fSk7dmFyIE9KLGxIZT1wKCgpPT57WDAoKTtGSigpO09KPWNsYXNze2dldCB0aW1lTGVmdCgpe3JldHVybiB0aGlzLnRpbWVJbk1pbGxpc2Vjb25kcy10aGlzLnBhdXNlZEF0LmNoYW5nZX1jb25zdHJ1Y3Rvcih0KXt0aGlzLnN0YXRlPSJpbml0aWF0ZWQiLHRoaXMuY29tcGxldGVkRGVmZXJyZWQ9WGUuZGVmZXIoKSx0aGlzLnRpbWVJbk1pbGxpc2Vjb25kcz10LHRoaXMuY29tcGxldGVkPXRoaXMuY29tcGxldGVkRGVmZXJyZWQucHJvbWlzZX1zdGFydCgpe2lmKCF0aGlzLnN0YXJ0ZWRBdCl0aGlzLmN1cnJlbnRUaW1lb3V0PXNldFRpbWVvdXQoKCk9Pnt0aGlzLmNvbXBsZXRlZERlZmVycmVkLnJlc29sdmUoKX0sdGhpcy50aW1lSW5NaWxsaXNlY29uZHMpLHRoaXMuc3RhcnRlZEF0PW5ldyBFODtlbHNlIHRocm93IG5ldyBFcnJvcigidGltZXIgaGFzIGJlZW4gc3RhcnRlZCBiZWZvcmUuIFBsZWFzZSB1c2UgcmVzdW1lIGluc3RlYWQiKX1wYXVzZSgpe3RoaXMuc3RhcnRlZEF0JiYoY2xlYXJUaW1lb3V0KHRoaXMuY3VycmVudFRpbWVvdXQpLHRoaXMuY3VycmVudFRpbWVvdXQ9bnVsbCx0aGlzLnBhdXNlZEF0PUU4LmZyb21UaW1lU3RhbXAodGhpcy5zdGFydGVkQXQpKX1yZXN1bWUoKXtpZih0aGlzLnN0YXJ0ZWRBdCl0aGlzLmN1cnJlbnRUaW1lb3V0PXNldFRpbWVvdXQoKCk9Pnt0aGlzLmNvbXBsZXRlZERlZmVycmVkLnJlc29sdmUoKX0sdGhpcy50aW1lTGVmdCk7ZWxzZSB0aHJvdyBuZXcgRXJyb3IoInRpbWVyIGhhcyBOT1QgYmVlbiBzdGFydGVkIGJlZm9yZS4gUGxlYXNlIHVzZSAuc3RhcnQoKSBpbnN0ZWFkIil9cmVzZXQoKXt0aGlzLnBhdXNlKCksdGhpcy5zdGFydGVkQXQ9bnVsbCx0aGlzLnBhdXNlZEF0PW51bGx9fX0pO3ZhciBabD17fTtGZShabCx7Q3JvbkpvYjooKT0+WW0sQ3Jvbk1hbmFnZXI6KCk9PkRKLEV4dGVuZGVkRGF0ZTooKT0+SUosSHJ0TWVhc3VyZW1lbnQ6KCk9PlBKLEludGVydmFsOigpPT5OSixUaW1lU3RhbXA6KCk9PkU4LFRpbWVyOigpPT5PSixnZXRNaWxsaVNlY29uZHNBc0h1bWFuUmVhZGFibGVBZ29UaW1lOigpPT52RXIsZ2V0TWlsbGlTZWNvbmRzQXNIdW1hblJlYWRhYmxlU3RyaW5nOigpPT5iRXIsZ2V0TWlsbGlTZWNvbmRzRnJvbVVuaXRzOigpPT5FSix1bml0czooKT0+UTB9KTt2YXIgUko9cCgoKT0+e0FKKCk7TEooKTtuSGUoKTtvSGUoKTtzSGUoKTtsSGUoKTtGSigpOyRKKCl9KTt2YXIgZEhlPWplKChVTGksY0hlKT0+eyJ1c2Ugc3RyaWN0IjtjSGUuZXhwb3J0cz1jbGFzc3tjb25zdHJ1Y3Rvcigpe3RoaXMucGFyZW50PW51bGwsdGhpcy5wcmV2aW91c1NpYmxpbmc9bnVsbCx0aGlzLm5leHRTaWJsaW5nPW51bGwsdGhpcy5maXJzdENoaWxkPW51bGwsdGhpcy5sYXN0Q2hpbGQ9bnVsbCx0aGlzLmNoaWxkcmVuVmVyc2lvbj0wLHRoaXMuY2hpbGRJbmRleENhY2hlZFVwVG89bnVsbCx0aGlzLmNhY2hlZEluZGV4PS0xLHRoaXMuY2FjaGVkSW5kZXhWZXJzaW9uPU5hTn1nZXQgaXNBdHRhY2hlZCgpe3JldHVybiEhKHRoaXMucGFyZW50fHx0aGlzLnByZXZpb3VzU2libGluZ3x8dGhpcy5uZXh0U2libGluZyl9Z2V0IGhhc0NoaWxkcmVuKCl7cmV0dXJuISF0aGlzLmZpcnN0Q2hpbGR9Y2hpbGRyZW5DaGFuZ2VkKCl7dGhpcy5jaGlsZHJlblZlcnNpb249dGhpcy5jaGlsZHJlblZlcnNpb24rMSY0Mjk0OTY3Mjk1LHRoaXMuY2hpbGRJbmRleENhY2hlZFVwVG89bnVsbH1nZXRDYWNoZWRJbmRleCh0KXtyZXR1cm4gdGhpcy5jYWNoZWRJbmRleFZlcnNpb24hPT10LmNoaWxkcmVuVmVyc2lvbj8odGhpcy5jYWNoZWRJbmRleFZlcnNpb249TmFOLC0xKTp0aGlzLmNhY2hlZEluZGV4fXNldENhY2hlZEluZGV4KHQscil7dGhpcy5jYWNoZWRJbmRleFZlcnNpb249dC5jaGlsZHJlblZlcnNpb24sdGhpcy5jYWNoZWRJbmRleD1yfX19KTt2YXIgcEhlPWplKChXTGksdUhlKT0+eyJ1c2Ugc3RyaWN0Ijt1SGUuZXhwb3J0cz1PYmplY3QuZnJlZXplKHtESVNDT05ORUNURUQ6MSxQUkVDRURJTkc6MixGT0xMT1dJTkc6NCxDT05UQUlOUzo4LENPTlRBSU5FRF9CWToxNn0pfSk7dmFyIGJIZT1qZSgoR0xpLGdIZSk9PnsidXNlIHN0cmljdCI7dmFyIGhIZT1TeW1ib2woKSxmSGU9U3ltYm9sKCksSjA9U3ltYm9sKCksbUhlPVN5bWJvbCgpLG0yPWNsYXNze2NvbnN0cnVjdG9yKHQscixpLGEpe3RoaXNbaEhlXT10LHRoaXNbZkhlXT1yLHRoaXNbSjBdPWksdGhpc1ttSGVdPWF9bmV4dCgpe2xldCB0PXRoaXNbaEhlXSxyPXRoaXNbbUhlXSxpPXRoaXNbZkhlXTtpZighdGhpc1tKMF0pcmV0dXJue2RvbmU6ITAsdmFsdWU6aX07bGV0IGE9dGhpc1tKMF07cmV0dXJuIHI9PT0xP3RoaXNbSjBdPXQuX25vZGUoYSkucHJldmlvdXNTaWJsaW5nOnI9PT0yP3RoaXNbSjBdPXQuX25vZGUoYSkubmV4dFNpYmxpbmc6cj09PTM/dGhpc1tKMF09dC5fbm9kZShhKS5wYXJlbnQ6cj09PTQ/dGhpc1tKMF09dC5wcmVjZWRpbmcoYSx7cm9vdDppfSk6dGhpc1tKMF09dC5mb2xsb3dpbmcoYSx7cm9vdDppfSkse2RvbmU6ITEsdmFsdWU6YX19fTtPYmplY3QuZGVmaW5lUHJvcGVydHkobTIucHJvdG90eXBlLFN5bWJvbC5pdGVyYXRvcix7dmFsdWU6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpc30sd3JpdGFibGU6ITF9KSxtMi5QUkVWPTEsbTIuTkVYVD0yLG0yLlBBUkVOVD0zLG0yLlBSRUNFRElORz00LG0yLkZPTExPV0lORz01LE9iamVjdC5mcmVlemUobTIpLE9iamVjdC5mcmVlemUobTIucHJvdG90eXBlKSxnSGUuZXhwb3J0cz1tMn0pO3ZhciBISj1qZSgoWUxpLHZIZSk9PnsidXNlIHN0cmljdCI7dmFyIHlFcj1kSGUoKSxLMD1wSGUoKSx6bz1iSGUoKTtmdW5jdGlvbiBCSigpe3JldHVybiEwfWZ1bmN0aW9uICQ4KGUsdCl7cmV0dXJuIGVbZS5sZW5ndGgtMS10XX12YXIgTVQ9Y2xhc3N7Y29uc3RydWN0b3IodCl7dGhpcy5zeW1ib2w9U3ltYm9sKHR8fCJTeW1ib2xUcmVlIGRhdGEiKX1pbml0aWFsaXplKHQpe3JldHVybiB0aGlzLl9ub2RlKHQpLHR9X25vZGUodCl7aWYoIXQpcmV0dXJuIG51bGw7bGV0IHI9dFt0aGlzLnN5bWJvbF07cmV0dXJuIHJ8fCh0W3RoaXMuc3ltYm9sXT1uZXcgeUVyKX1oYXNDaGlsZHJlbih0KXtyZXR1cm4gdGhpcy5fbm9kZSh0KS5oYXNDaGlsZHJlbn1maXJzdENoaWxkKHQpe3JldHVybiB0aGlzLl9ub2RlKHQpLmZpcnN0Q2hpbGR9bGFzdENoaWxkKHQpe3JldHVybiB0aGlzLl9ub2RlKHQpLmxhc3RDaGlsZH1wcmV2aW91c1NpYmxpbmcodCl7cmV0dXJuIHRoaXMuX25vZGUodCkucHJldmlvdXNTaWJsaW5nfW5leHRTaWJsaW5nKHQpe3JldHVybiB0aGlzLl9ub2RlKHQpLm5leHRTaWJsaW5nfXBhcmVudCh0KXtyZXR1cm4gdGhpcy5fbm9kZSh0KS5wYXJlbnR9bGFzdEluY2x1c2l2ZURlc2NlbmRhbnQodCl7bGV0IHIsaT10O2Zvcig7cj10aGlzLl9ub2RlKGkpLmxhc3RDaGlsZDspaT1yO3JldHVybiBpfXByZWNlZGluZyh0LHIpe2xldCBpPXImJnIucm9vdDtpZih0PT09aSlyZXR1cm4gbnVsbDtsZXQgYT10aGlzLl9ub2RlKHQpLnByZXZpb3VzU2libGluZztyZXR1cm4gYT90aGlzLmxhc3RJbmNsdXNpdmVEZXNjZW5kYW50KGEpOnRoaXMuX25vZGUodCkucGFyZW50fWZvbGxvd2luZyh0LHIpe2xldCBpPXImJnIucm9vdCxuPSEociYmci5za2lwQ2hpbGRyZW4pJiZ0aGlzLl9ub2RlKHQpLmZpcnN0Q2hpbGQ7aWYobilyZXR1cm4gbjtsZXQgbz10O2Rve2lmKG89PT1pKXJldHVybiBudWxsO2xldCBzPXRoaXMuX25vZGUobykubmV4dFNpYmxpbmc7aWYocylyZXR1cm4gcztvPXRoaXMuX25vZGUobykucGFyZW50fXdoaWxlKG8pO3JldHVybiBudWxsfWNoaWxkcmVuVG9BcnJheSh0LHIpe2xldCBpPXImJnIuYXJyYXl8fFtdLGE9ciYmci5maWx0ZXJ8fEJKLG49ciYmci50aGlzQXJnfHx2b2lkIDAsbz10aGlzLl9ub2RlKHQpLHM9by5maXJzdENoaWxkLGw9MDtmb3IoO3M7KXtsZXQgYz10aGlzLl9ub2RlKHMpO2Muc2V0Q2FjaGVkSW5kZXgobyxsKSxhLmNhbGwobixzKSYmaS5wdXNoKHMpLHM9Yy5uZXh0U2libGluZywrK2x9cmV0dXJuIGl9YW5jZXN0b3JzVG9BcnJheSh0LHIpe2xldCBpPXImJnIuYXJyYXl8fFtdLGE9ciYmci5maWx0ZXJ8fEJKLG49ciYmci50aGlzQXJnfHx2b2lkIDAsbz10O2Zvcig7bzspYS5jYWxsKG4sbykmJmkucHVzaChvKSxvPXRoaXMuX25vZGUobykucGFyZW50O3JldHVybiBpfXRyZWVUb0FycmF5KHQscil7bGV0IGk9ciYmci5hcnJheXx8W10sYT1yJiZyLmZpbHRlcnx8Qkosbj1yJiZyLnRoaXNBcmd8fHZvaWQgMCxvPXQ7Zm9yKDtvOylhLmNhbGwobixvKSYmaS5wdXNoKG8pLG89dGhpcy5mb2xsb3dpbmcobyx7cm9vdDp0fSk7cmV0dXJuIGl9Y2hpbGRyZW5JdGVyYXRvcih0LHIpe2xldCBpPXImJnIucmV2ZXJzZSxhPXRoaXMuX25vZGUodCk7cmV0dXJuIG5ldyB6byh0aGlzLHQsaT9hLmxhc3RDaGlsZDphLmZpcnN0Q2hpbGQsaT96by5QUkVWOnpvLk5FWFQpfXByZXZpb3VzU2libGluZ3NJdGVyYXRvcih0KXtyZXR1cm4gbmV3IHpvKHRoaXMsdCx0aGlzLl9ub2RlKHQpLnByZXZpb3VzU2libGluZyx6by5QUkVWKX1uZXh0U2libGluZ3NJdGVyYXRvcih0KXtyZXR1cm4gbmV3IHpvKHRoaXMsdCx0aGlzLl9ub2RlKHQpLm5leHRTaWJsaW5nLHpvLk5FWFQpfWFuY2VzdG9yc0l0ZXJhdG9yKHQpe3JldHVybiBuZXcgem8odGhpcyx0LHQsem8uUEFSRU5UKX10cmVlSXRlcmF0b3IodCxyKXtsZXQgaT1yJiZyLnJldmVyc2U7cmV0dXJuIG5ldyB6byh0aGlzLHQsaT90aGlzLmxhc3RJbmNsdXNpdmVEZXNjZW5kYW50KHQpOnQsaT96by5QUkVDRURJTkc6em8uRk9MTE9XSU5HKX1pbmRleCh0KXtsZXQgcj10aGlzLl9ub2RlKHQpLGk9dGhpcy5fbm9kZShyLnBhcmVudCk7aWYoIWkpcmV0dXJuLTE7bGV0IGE9ci5nZXRDYWNoZWRJbmRleChpKTtpZihhPj0wKXJldHVybiBhO2E9MDtsZXQgbj1pLmZpcnN0Q2hpbGQ7aWYoaS5jaGlsZEluZGV4Q2FjaGVkVXBUbyl7bGV0IG89dGhpcy5fbm9kZShpLmNoaWxkSW5kZXhDYWNoZWRVcFRvKTtuPW8ubmV4dFNpYmxpbmcsYT1vLmdldENhY2hlZEluZGV4KGkpKzF9Zm9yKDtuOyl7bGV0IG89dGhpcy5fbm9kZShuKTtpZihvLnNldENhY2hlZEluZGV4KGksYSksbj09PXQpYnJlYWs7KythLG49by5uZXh0U2libGluZ31yZXR1cm4gaS5jaGlsZEluZGV4Q2FjaGVkVXBUbz10LGF9Y2hpbGRyZW5Db3VudCh0KXtsZXQgcj10aGlzLl9ub2RlKHQpO3JldHVybiByLmxhc3RDaGlsZD90aGlzLmluZGV4KHIubGFzdENoaWxkKSsxOjB9Y29tcGFyZVRyZWVQb3NpdGlvbih0LHIpe2lmKHQ9PT1yKXJldHVybiAwO2xldCBpPVtdO3tsZXQgdT10O2Zvcig7dTspe2lmKHU9PT1yKXJldHVybiBLMC5DT05UQUlOU3xLMC5QUkVDRURJTkc7aS5wdXNoKHUpLHU9dGhpcy5wYXJlbnQodSl9fWxldCBhPVtdO3tsZXQgdT1yO2Zvcig7dTspe2lmKHU9PT10KXJldHVybiBLMC5DT05UQUlORURfQll8SzAuRk9MTE9XSU5HO2EucHVzaCh1KSx1PXRoaXMucGFyZW50KHUpfX1sZXQgbj0kOChpLDApO2lmKCFufHxuIT09JDgoYSwwKSlyZXR1cm4gSzAuRElTQ09OTkVDVEVEO2xldCBvPTAscz1NYXRoLm1pbihpLmxlbmd0aCxhLmxlbmd0aCk7Zm9yKGxldCB1PTA7dTxzOysrdSl7bGV0IGQ9JDgoaSx1KSxoPSQ4KGEsdSk7aWYoZCE9PWgpYnJlYWs7bz11fWxldCBsPXRoaXMuaW5kZXgoJDgoaSxvKzEpKTtyZXR1cm4gdGhpcy5pbmRleCgkOChhLG8rMSkpPGw/SzAuUFJFQ0VESU5HOkswLkZPTExPV0lOR31yZW1vdmUodCl7bGV0IHI9dGhpcy5fbm9kZSh0KSxpPXRoaXMuX25vZGUoci5wYXJlbnQpLGE9dGhpcy5fbm9kZShyLnByZXZpb3VzU2libGluZyksbj10aGlzLl9ub2RlKHIubmV4dFNpYmxpbmcpO3JldHVybiBpJiYoaS5maXJzdENoaWxkPT09dCYmKGkuZmlyc3RDaGlsZD1yLm5leHRTaWJsaW5nKSxpLmxhc3RDaGlsZD09PXQmJihpLmxhc3RDaGlsZD1yLnByZXZpb3VzU2libGluZykpLGEmJihhLm5leHRTaWJsaW5nPXIubmV4dFNpYmxpbmcpLG4mJihuLnByZXZpb3VzU2libGluZz1yLnByZXZpb3VzU2libGluZyksci5wYXJlbnQ9bnVsbCxyLnByZXZpb3VzU2libGluZz1udWxsLHIubmV4dFNpYmxpbmc9bnVsbCxyLmNhY2hlZEluZGV4PS0xLHIuY2FjaGVkSW5kZXhWZXJzaW9uPU5hTixpJiZpLmNoaWxkcmVuQ2hhbmdlZCgpLHR9aW5zZXJ0QmVmb3JlKHQscil7bGV0IGk9dGhpcy5fbm9kZSh0KSxhPXRoaXMuX25vZGUoaS5wcmV2aW91c1NpYmxpbmcpLG49dGhpcy5fbm9kZShyKSxvPXRoaXMuX25vZGUoaS5wYXJlbnQpO2lmKG4uaXNBdHRhY2hlZCl0aHJvdyBFcnJvcigiR2l2ZW4gb2JqZWN0IGlzIGFscmVhZHkgcHJlc2VudCBpbiB0aGlzIFN5bWJvbFRyZWUsIHJlbW92ZSBpdCBmaXJzdCIpO3JldHVybiBuLnBhcmVudD1pLnBhcmVudCxuLnByZXZpb3VzU2libGluZz1pLnByZXZpb3VzU2libGluZyxuLm5leHRTaWJsaW5nPXQsaS5wcmV2aW91c1NpYmxpbmc9cixhJiYoYS5uZXh0U2libGluZz1yKSxvJiZvLmZpcnN0Q2hpbGQ9PT10JiYoby5maXJzdENoaWxkPXIpLG8mJm8uY2hpbGRyZW5DaGFuZ2VkKCkscn1pbnNlcnRBZnRlcih0LHIpe2xldCBpPXRoaXMuX25vZGUodCksYT10aGlzLl9ub2RlKGkubmV4dFNpYmxpbmcpLG49dGhpcy5fbm9kZShyKSxvPXRoaXMuX25vZGUoaS5wYXJlbnQpO2lmKG4uaXNBdHRhY2hlZCl0aHJvdyBFcnJvcigiR2l2ZW4gb2JqZWN0IGlzIGFscmVhZHkgcHJlc2VudCBpbiB0aGlzIFN5bWJvbFRyZWUsIHJlbW92ZSBpdCBmaXJzdCIpO3JldHVybiBuLnBhcmVudD1pLnBhcmVudCxuLnByZXZpb3VzU2libGluZz10LG4ubmV4dFNpYmxpbmc9aS5uZXh0U2libGluZyxpLm5leHRTaWJsaW5nPXIsYSYmKGEucHJldmlvdXNTaWJsaW5nPXIpLG8mJm8ubGFzdENoaWxkPT09dCYmKG8ubGFzdENoaWxkPXIpLG8mJm8uY2hpbGRyZW5DaGFuZ2VkKCkscn1wcmVwZW5kQ2hpbGQodCxyKXtsZXQgaT10aGlzLl9ub2RlKHQpLGE9dGhpcy5fbm9kZShyKTtpZihhLmlzQXR0YWNoZWQpdGhyb3cgRXJyb3IoIkdpdmVuIG9iamVjdCBpcyBhbHJlYWR5IHByZXNlbnQgaW4gdGhpcyBTeW1ib2xUcmVlLCByZW1vdmUgaXQgZmlyc3QiKTtyZXR1cm4gaS5oYXNDaGlsZHJlbj90aGlzLmluc2VydEJlZm9yZShpLmZpcnN0Q2hpbGQscik6KGEucGFyZW50PXQsaS5maXJzdENoaWxkPXIsaS5sYXN0Q2hpbGQ9cixpLmNoaWxkcmVuQ2hhbmdlZCgpKSxyfWFwcGVuZENoaWxkKHQscil7bGV0IGk9dGhpcy5fbm9kZSh0KSxhPXRoaXMuX25vZGUocik7aWYoYS5pc0F0dGFjaGVkKXRocm93IEVycm9yKCJHaXZlbiBvYmplY3QgaXMgYWxyZWFkeSBwcmVzZW50IGluIHRoaXMgU3ltYm9sVHJlZSwgcmVtb3ZlIGl0IGZpcnN0Iik7cmV0dXJuIGkuaGFzQ2hpbGRyZW4/dGhpcy5pbnNlcnRBZnRlcihpLmxhc3RDaGlsZCxyKTooYS5wYXJlbnQ9dCxpLmZpcnN0Q2hpbGQ9cixpLmxhc3RDaGlsZD1yLGkuY2hpbGRyZW5DaGFuZ2VkKCkpLHJ9fTt2SGUuZXhwb3J0cz1NVCxNVC5UcmVlUG9zaXRpb249SzB9KTt2YXIga1QsQ289cCgoKT0+e1RzKCk7Z1EoKTtFaSgpO2gyKCk7UkooKTtrVD1lcihISigpLDEpfSk7dmFyIHFKLHhIZT1wKCgpPT57Q28oKTtxSj1jbGFzc3tjb25zdHJ1Y3Rvcigpe3RoaXMuZXhlY3V0aW9uU2xvdHM9W10sdGhpcy5pc1Byb2Nlc3Npbmc9ITEsdGhpcy5ub25FeGNsdXNpdmVNYXhDb25jdXJyZW5jeT0xLzAsdGhpcy5ub25FeGNsdXNpdmVDdXJyZW50Q291bnQ9MCx0aGlzLm5vbkV4Y2x1c2l2ZVBlbmRpbmdRdWV1ZT1bXX1hc3luYyBnZXRFeGNsdXNpdmVFeGVjdXRpb25TbG90KHQscil7bGV0IGk9WGUuZGVmZXIoKSxhPXtmdW5jVG9FeGVjdXRlOnQsZXhlY3V0aW9uRGVmZXJyZWQ6aSx0aW1lb3V0OnIsbW9kZToiZXhjbHVzaXZlIn07cmV0dXJuIHRoaXMuZXhlY3V0aW9uU2xvdHMucHVzaChhKSx0aGlzLnByb2Nlc3NFeGVjdXRpb25TbG90cygpLGkucHJvbWlzZX1hc3luYyBnZXROb25FeGNsdXNpdmVFeGVjdXRpb25TbG90KHQscil7bGV0IGk9WGUuZGVmZXIoKSxhPXtmdW5jVG9FeGVjdXRlOnQsZXhlY3V0aW9uRGVmZXJyZWQ6aSx0aW1lb3V0OnIsbW9kZToibm9uZXhjbHVzaXZlIn07cmV0dXJuIHRoaXMuZXhlY3V0aW9uU2xvdHMucHVzaChhKSx0aGlzLnByb2Nlc3NFeGVjdXRpb25TbG90cygpLGkucHJvbWlzZX1zZXROb25FeGNsdXNpdmVNYXhDb25jdXJyZW5jeSh0KXtpZighTnVtYmVyLmlzRmluaXRlKHQpfHx0PDEpdGhyb3cgbmV3IEVycm9yKCJub25FeGNsdXNpdmVNYXhDb25jdXJyZW5jeSBtdXN0IGJlIGEgZmluaXRlIG51bWJlciA+PSAxIik7dGhpcy5ub25FeGNsdXNpdmVNYXhDb25jdXJyZW5jeT10fWdldE5vbkV4Y2x1c2l2ZU1heENvbmN1cnJlbmN5KCl7cmV0dXJuIHRoaXMubm9uRXhjbHVzaXZlTWF4Q29uY3VycmVuY3l9Z2V0QWN0aXZlTm9uRXhjbHVzaXZlQ291bnQoKXtyZXR1cm4gdGhpcy5ub25FeGNsdXNpdmVDdXJyZW50Q291bnR9Z2V0UGVuZGluZ05vbkV4Y2x1c2l2ZUNvdW50KCl7cmV0dXJuIHRoaXMubm9uRXhjbHVzaXZlUGVuZGluZ1F1ZXVlLmxlbmd0aH1hc3luYyBwcm9jZXNzRXhlY3V0aW9uU2xvdHMoKXtpZighdGhpcy5pc1Byb2Nlc3Npbmcpe2Zvcih0aGlzLmlzUHJvY2Vzc2luZz0hMDt0aGlzLmV4ZWN1dGlvblNsb3RzLmxlbmd0aD4wOyl7bGV0IHQ9dGhpcy5leGVjdXRpb25TbG90c1swXTtpZih0Lm1vZGU9PT0iZXhjbHVzaXZlIilhd2FpdCB0aGlzLmV4ZWN1dGVFeGNsdXNpdmVTbG90KHQpLHRoaXMuZXhlY3V0aW9uU2xvdHMuc2hpZnQoKTtlbHNle2xldCByPVtdO2Zvcig7dGhpcy5leGVjdXRpb25TbG90cy5sZW5ndGg+MCYmdGhpcy5leGVjdXRpb25TbG90c1swXS5tb2RlPT09Im5vbmV4Y2x1c2l2ZSI7KXIucHVzaCh0aGlzLmV4ZWN1dGlvblNsb3RzLnNoaWZ0KCkpO2F3YWl0IHRoaXMuZXhlY3V0ZU5vbkV4Y2x1c2l2ZVNsb3RzKHIpfX10aGlzLmlzUHJvY2Vzc2luZz0hMX19YXN5bmMgZXhlY3V0ZUV4Y2x1c2l2ZVNsb3QodCl7dHJ5e2lmKHQudGltZW91dCl7bGV0IHI9YXdhaXQgUHJvbWlzZS5yYWNlKFt0LmZ1bmNUb0V4ZWN1dGUoKSxDdC5kZWxheUZvcih0LnRpbWVvdXQpLnRoZW4oKCk9Pnt0aHJvdyBuZXcgRXJyb3IoIlRpbWVvdXQgcmVhY2hlZCIpfSldKTt0LmV4ZWN1dGlvbkRlZmVycmVkLnJlc29sdmUocil9ZWxzZXtsZXQgcj1hd2FpdCB0LmZ1bmNUb0V4ZWN1dGUoKTt0LmV4ZWN1dGlvbkRlZmVycmVkLnJlc29sdmUocil9fWNhdGNoKHIpe3QuZXhlY3V0aW9uRGVmZXJyZWQucmVqZWN0KHIpfX1hc3luYyBleGVjdXRlTm9uRXhjbHVzaXZlU2xvdHModCl7bGV0IHI9dC5tYXAoYXN5bmMgaT0+e2F3YWl0IHRoaXMud2FpdEZvck5vbkV4Y2x1c2l2ZVNsb3QoKTt0cnl7aWYoaS50aW1lb3V0KXtsZXQgYT1hd2FpdCBQcm9taXNlLnJhY2UoW2kuZnVuY1RvRXhlY3V0ZSgpLEN0LmRlbGF5Rm9yKGkudGltZW91dCkudGhlbigoKT0+e3Rocm93IG5ldyBFcnJvcigiVGltZW91dCByZWFjaGVkIil9KV0pO2kuZXhlY3V0aW9uRGVmZXJyZWQucmVzb2x2ZShhKX1lbHNle2xldCBhPWF3YWl0IGkuZnVuY1RvRXhlY3V0ZSgpO2kuZXhlY3V0aW9uRGVmZXJyZWQucmVzb2x2ZShhKX19Y2F0Y2goYSl7aS5leGVjdXRpb25EZWZlcnJlZC5yZWplY3QoYSl9ZmluYWxseXt0aGlzLnJlbGVhc2VOb25FeGNsdXNpdmVTbG90KCl9fSk7YXdhaXQgUHJvbWlzZS5hbGwocil9d2FpdEZvck5vbkV4Y2x1c2l2ZVNsb3QoKXtyZXR1cm4gdGhpcy5ub25FeGNsdXNpdmVDdXJyZW50Q291bnQ8dGhpcy5ub25FeGNsdXNpdmVNYXhDb25jdXJyZW5jeT8odGhpcy5ub25FeGNsdXNpdmVDdXJyZW50Q291bnQrKyxQcm9taXNlLnJlc29sdmUoKSk6bmV3IFByb21pc2UodD0+e3RoaXMubm9uRXhjbHVzaXZlUGVuZGluZ1F1ZXVlLnB1c2goKCk9Pnt0aGlzLm5vbkV4Y2x1c2l2ZUN1cnJlbnRDb3VudCsrLHQoKX0pfSl9cmVsZWFzZU5vbkV4Y2x1c2l2ZVNsb3QoKXt0aGlzLm5vbkV4Y2x1c2l2ZUN1cnJlbnRDb3VudC0tO2xldCB0PXRoaXMubm9uRXhjbHVzaXZlUGVuZGluZ1F1ZXVlLnNoaWZ0KCk7dCYmdCgpfX19KTt2YXIgakoseUhlPXAoKCk9PntDbygpO2pKPWNsYXNze2NvbnN0cnVjdG9yKHQ9MTYpe3RoaXMuaGFzU3BhY2U9bmV3IG5yLnJ4anMuU3ViamVjdCx0aGlzLml0ZW1zQXZhaWxhYmxlPW5ldyBuci5yeGpzLlN1YmplY3QsdGhpcy5kYXRhPVtdLHRoaXMuaGlnaFdhdGVyTWFyaz10fXB1c2godCl7dGhpcy5kYXRhLnB1c2godCksdGhpcy5pdGVtc0F2YWlsYWJsZS5uZXh0KCJpdGVtc0F2YWlsYWJsZSIpO2xldCByPXRoaXMuY2hlY2tTcGFjZUF2YWlsYWJsZSgpO3JldHVybiByJiZ0aGlzLmhhc1NwYWNlLm5leHQoImhhc1NwYWNlIikscn1zaGlmdCgpe2xldCB0PXRoaXMuZGF0YS5zaGlmdCgpO3JldHVybiB0aGlzLmNoZWNrU3BhY2VBdmFpbGFibGUoKSYmdGhpcy5oYXNTcGFjZS5uZXh0KCJoYXNTcGFjZSIpLHR9Y2hlY2tTcGFjZUF2YWlsYWJsZSgpe3JldHVybiB0aGlzLmRhdGEubGVuZ3RoPHRoaXMuaGlnaFdhdGVyTWFya31jaGVja0hhc0l0ZW1zKCl7cmV0dXJuIHRoaXMuZGF0YS5sZW5ndGg+MH13YWl0Rm9yU3BhY2UoKXtyZXR1cm4gbmV3IFByb21pc2UodD0+e2lmKHRoaXMuY2hlY2tTcGFjZUF2YWlsYWJsZSgpKXQoKTtlbHNle2xldCByPXRoaXMuaGFzU3BhY2Uuc3Vic2NyaWJlKCgpPT57ci51bnN1YnNjcmliZSgpLHQoKX0pfX0pfXdhaXRGb3JJdGVtcygpe3JldHVybiBuZXcgUHJvbWlzZSh0PT57aWYodGhpcy5kYXRhLmxlbmd0aD4wKXQoKTtlbHNle2xldCByPXRoaXMuaXRlbXNBdmFpbGFibGUuc3Vic2NyaWJlKCgpPT57ci51bnN1YnNjcmliZSgpLHQoKX0pfX0pfX19KTt2YXIgWm0sVko9cCgoKT0+e0NvKCk7Wm09Y2xhc3MgZXtjb25zdHJ1Y3Rvcigpe3RoaXMubWFwT2JqZWN0PXt9fWlzVW5pcXVlS2V5KHQpe3JldHVybiF0aGlzLm1hcE9iamVjdFt0XX1hZGRUb01hcCh0LHIsaSl7cmV0dXJuIHRoaXMuaXNVbmlxdWVLZXkodCl8fGkmJmkuZm9yY2U/KHRoaXMubWFwT2JqZWN0W3RdPXIsITApOiExfWdldEJ5S2V5KHQpe3JldHVybiB0aGlzLm1hcE9iamVjdFt0XX1yZW1vdmVGcm9tTWFwKHQpe2xldCByPXRoaXMuZ2V0QnlLZXkodCk7cmV0dXJuIGRlbGV0ZSB0aGlzLm1hcE9iamVjdFt0XSxyfWdldEtleXMoKXtsZXQgdD1bXTtmb3IobGV0IHIgaW4gdGhpcy5tYXBPYmplY3QpdGhpcy5tYXBPYmplY3Rbcl0mJnQucHVzaChyKTtyZXR1cm4gdH1jbGVhbigpe3RoaXMubWFwT2JqZWN0PXt9fWNvbmNhdCh0KXtsZXQgcj1uZXcgZTtmb3IobGV0IGkgb2YgdGhpcy5nZXRLZXlzKCkpci5hZGRUb01hcChpLHRoaXMuZ2V0QnlLZXkoaSkpO2ZvcihsZXQgaSBvZiB0LmdldEtleXMoKSlyLmFkZFRvTWFwKGksdC5nZXRCeUtleShpKSx7Zm9yY2U6ITB9KTtyZXR1cm4gcn1hZGRBbGxGcm9tT3RoZXIodCl7Zm9yKGxldCByIG9mIHQuZ2V0S2V5cygpKXRoaXMuYWRkVG9NYXAocix0LmdldEJ5S2V5KHIpLHtmb3JjZTohMH0pfWFzeW5jIGZpbmQodCl7Zm9yKGxldCByIG9mIHRoaXMuZ2V0S2V5cygpKXtsZXQgaT10aGlzLmdldEJ5S2V5KHIpO2lmKGF3YWl0IHQoaSkpcmV0dXJuIGl9fX19KTt2YXIgd0hlLFI2LFNUPXAoKCk9PntDbygpO1ZKKCk7d0hlPShlPSJ1bmkiKT0+YCR7ZX14eHh4eHh4eHh4eGAucmVwbGFjZSgvW3h5XS9nLHQ9PntsZXQgcj1NYXRoLnJhbmRvbSgpKjE2fDA7cmV0dXJuKHQ9PT0ieCI/cjpyJjN8OCkudG9TdHJpbmcoMTYpfSksUjY9Y2xhc3MgZXtjb25zdHJ1Y3Rvcigpe3RoaXMuZmFzdE1hcD1uZXcgWm0sdGhpcy5ldmVudFN1YmplY3Q9bmV3IG5yLnJ4anMuU3ViamVjdH1hZGRNYXBwZWRVbmlxdWUodCxyKXt0aGlzLmZhc3RNYXAuYWRkVG9NYXAodCxyKX1nZXRNYXBwZWRVbmlxdWUodCl7cmV0dXJuIHRoaXMuZmFzdE1hcC5nZXRCeUtleSh0KX1yZW1vdmVNYXBwZWRVbmlxdWUodCl7bGV0IHI9dGhpcy5nZXRNYXBwZWRVbmlxdWUodCl9YWRkKHQpe2ZvcihsZXQgaSBvZiB0aGlzLmZhc3RNYXAuZ2V0S2V5cygpKWlmKHRoaXMuZmFzdE1hcC5nZXRCeUtleShpKT09PXQpcmV0dXJuIGk7bGV0IHI9d0hlKCJrZXkiKTtyZXR1cm4gdGhpcy5hZGRNYXBwZWRVbmlxdWUocix0KSx0aGlzLmV2ZW50U3ViamVjdC5uZXh0KHtvcGVyYXRpb246ImFkZCIscGF5bG9hZDp0fSkscn1hZGRBcnJheSh0KXtmb3IobGV0IHIgb2YgdCl0aGlzLmFkZChyKX1jaGVja0Zvck9iamVjdCh0KXtyZXR1cm4hIXRoaXMuZ2V0S2V5Rm9yT2JqZWN0KHQpfWdldEtleUZvck9iamVjdCh0KXtsZXQgcj1udWxsO2ZvcihsZXQgaSBvZiB0aGlzLmZhc3RNYXAuZ2V0S2V5cygpKWlmKCFyJiZ0aGlzLmZhc3RNYXAuZ2V0QnlLZXkoaSk9PT10KXI9aTtlbHNlIGNvbnRpbnVlO3JldHVybiByfWFzeW5jIGZpbmQodCl7cmV0dXJuIHRoaXMuZmFzdE1hcC5maW5kKHQpfWZpbmRTeW5jKHQpe2ZvcihsZXQgciBvZiB0aGlzLmZhc3RNYXAuZ2V0S2V5cygpKWlmKHQodGhpcy5mYXN0TWFwLmdldEJ5S2V5KHIpKSlyZXR1cm4gdGhpcy5nZXRNYXBwZWRVbmlxdWUocil9YXN5bmMgZmluZE9uZUFuZFJlbW92ZSh0KXtsZXQgcj1hd2FpdCB0aGlzLmZpbmQodCk7cmV0dXJuIHImJnRoaXMucmVtb3ZlKHIpLHJ9ZmluZE9uZUFuZFJlbW92ZVN5bmModCl7bGV0IHI9dGhpcy5maW5kU3luYyh0KTtyZXR1cm4gciYmdGhpcy5yZW1vdmUocikscn1hc3luYyBmb3JFYWNoKHQpe2ZvcihsZXQgciBvZiB0aGlzLmZhc3RNYXAuZ2V0S2V5cygpKWF3YWl0IHQodGhpcy5mYXN0TWFwLmdldEJ5S2V5KHIpKX1nZXRPbmVBbmRSZW1vdmUoKXtsZXQgdD10aGlzLmZhc3RNYXAuZ2V0S2V5cygpO2lmKHQubGVuZ3RoPT09MClyZXR1cm4gbnVsbDt7bGV0IHI9dFswXSxpPXRoaXMuZmFzdE1hcC5yZW1vdmVGcm9tTWFwKHIpO3JldHVybiB0aGlzLmV2ZW50U3ViamVjdC5uZXh0KHtvcGVyYXRpb246InJlbW92ZSIscGF5bG9hZDppfSksaX19Z2V0QXJyYXkoKXtsZXQgdD1bXTtmb3IobGV0IHIgb2YgdGhpcy5mYXN0TWFwLmdldEtleXMoKSl0LnB1c2godGhpcy5mYXN0TWFwLmdldEJ5S2V5KHIpKTtyZXR1cm4gdH1pc0VtcHR5KCl7cmV0dXJuIHRoaXMuZmFzdE1hcC5nZXRLZXlzKCkubGVuZ3RoPT09MH1yZW1vdmUodCl7aWYodGhpcy5jaGVja0Zvck9iamVjdCh0KSl7bGV0IHI9dGhpcy5nZXRLZXlGb3JPYmplY3QodCksaT10aGlzLmZhc3RNYXAucmVtb3ZlRnJvbU1hcChyKTtyZXR1cm4gdGhpcy5ldmVudFN1YmplY3QubmV4dCh7b3BlcmF0aW9uOiJyZW1vdmUiLHBheWxvYWQ6aX0pLGl9cmV0dXJuIG51bGx9d2lwZSgpe2ZvcihsZXQgdCBvZiB0aGlzLmZhc3RNYXAuZ2V0S2V5cygpKXRoaXMuZmFzdE1hcC5yZW1vdmVGcm9tTWFwKHQpfWNvbmNhdCh0KXtsZXQgcj1uZXcgZTtyZXR1cm4gci5mYXN0TWFwLmFkZEFsbEZyb21PdGhlcih0aGlzLmZhc3RNYXApLHIuZmFzdE1hcC5hZGRBbGxGcm9tT3RoZXIodC5mYXN0TWFwKSxyfWFkZEFsbEZyb21PdGhlcih0KXt0aGlzLmZhc3RNYXAuYWRkQWxsRnJvbU90aGVyKHQuZmFzdE1hcCl9fX0pO3ZhciBYbSxVSj1wKCgpPT57Q28oKTtXSigpO1htPWNsYXNze2dldCBjb21wYXJpc29uU3RyaW5nKCl7cmV0dXJuIHRoaXMuY29tcGFyaXNvbkZ1bmModGhpcy5vcmlnaW5hbEludGVyZXN0KX1mdWxsZmlsbEludGVyZXN0KHQpe3RoaXMuaXNGdWxsZmlsbGVkPSEwLHRoaXMuZnVsbGZpbGxtZW50U3RvcmU9W10sdGhpcy5pbnRlcmVzdERlZmVycmVkLnJlc29sdmUodCl9Y29uc3RydWN0b3IodCxyLGksYSl7dGhpcy5kZXN0cnVjdGlvblRpbWVyPW5ldyBabC5UaW1lcigxZTQpLHRoaXMuaXNGdWxsZmlsbGVkPSExLHRoaXMuZnVsbGZpbGxtZW50U3RvcmU9W10sdGhpcy5pbnRlcmVzdERlZmVycmVkPW5ldyBYZS5EZWZlcnJlZCx0aGlzLmludGVyZXN0RnVsbGZpbGxlZD10aGlzLmludGVyZXN0RGVmZXJyZWQucHJvbWlzZSx0aGlzLmludGVyZXN0TWFwUmVmPXQsdGhpcy5vcmlnaW5hbEludGVyZXN0PXIsdGhpcy5jb21wYXJpc29uRnVuYz1pLHRoaXMub3B0aW9ucz1hLHRoaXMuZGVzdHJ1Y3Rpb25UaW1lci5jb21wbGV0ZWQudGhlbigoKT0+e3RoaXMuZGVzdHJveSgpfSksdGhpcy5vcHRpb25zPy5tYXJrTG9zdEFmdGVyRGVmYXVsdCYmQ3QuZGVsYXlGb3IodGhpcy5vcHRpb25zLm1hcmtMb3N0QWZ0ZXJEZWZhdWx0KS50aGVuKHRoaXMubWFya0xvc3QpfWRlc3Ryb3koKXt0aGlzLmludGVyZXN0TWFwUmVmLnJlbW92ZUludGVyZXN0KHRoaXMpLCF0aGlzLmlzRnVsbGZpbGxlZCYmdGhpcy5vcHRpb25zLmRlZmF1bHRGdWxsZmlsbG1lbnQmJnRoaXMuZnVsbGZpbGxJbnRlcmVzdCh0aGlzLm9wdGlvbnMuZGVmYXVsdEZ1bGxmaWxsbWVudCl9bWFya0xvc3QoKXt0aGlzLmRlc3RydWN0aW9uVGltZXIuc3RhcnQoKX1yZW5ldygpe3RoaXMuZGVzdHJ1Y3Rpb25UaW1lci5yZXNldCgpfX19KTt2YXIgR0osV0o9cCgoKT0+e0NvKCk7U1QoKTtVSigpO0dKPWNsYXNze2NvbnN0cnVjdG9yKHQscj17fSl7dGhpcy5pbnRlcmVzdE9iamVjdE1hcD1uZXcgUjYsdGhpcy5pbnRlcmVzdE9ic2VydmFibGU9bmV3IG5yLk9ic2VydmFibGVJbnRha2UsdGhpcy5jb21wYXJpc29uRnVuYz10LHRoaXMub3B0aW9ucz1yfWFzeW5jIGFkZEludGVyZXN0KHQscil7bGV0IGk9dGhpcy5jb21wYXJpc29uRnVuYyh0KSxhLG49bmV3IFhtKHRoaXMsdCx0aGlzLmNvbXBhcmlzb25GdW5jLHttYXJrTG9zdEFmdGVyRGVmYXVsdDp0aGlzLm9wdGlvbnMubWFya0xvc3RBZnRlckRlZmF1bHQsZGVmYXVsdEZ1bGxmaWxsbWVudDpyfSksbz0hMTtyZXR1cm4gYXdhaXQgdGhpcy5pbnRlcmVzdE9iamVjdE1hcC5mb3JFYWNoKHM9PnshbyYmcy5jb21wYXJpc29uU3RyaW5nPT09bi5jb21wYXJpc29uU3RyaW5nJiYoY29uc29sZS5sb2coImluZm8iLGBpbnRlcmVzdCBhbHJlYWR5IGV4aXN0cyBmb3IgJHtuLmNvbXBhcmlzb25TdHJpbmd9YCksbz0hMCxhPXMsYS5yZW5ldygpKX0pLGF8fChhPW4sdGhpcy5pbnRlcmVzdE9iamVjdE1hcC5hZGQoYSkpLHRoaXMuaW50ZXJlc3RPYnNlcnZhYmxlLnB1c2goYSksYX1yZW1vdmVJbnRlcmVzdCh0KXtsZXQgcj10aGlzLmludGVyZXN0T2JqZWN0TWFwLmZpbmRPbmVBbmRSZW1vdmVTeW5jKGk9PnQuY29tcGFyaXNvblN0cmluZz09PWkuY29tcGFyaXNvblN0cmluZyl9Y2hlY2tJbnRlcmVzdCh0KXtsZXQgcj10aGlzLmNvbXBhcmlzb25GdW5jKHQpO3JldHVybiB0aGlzLmNoZWNrSW50ZXJlc3RCeVN0cmluZyhyKX1jaGVja0ludGVyZXN0QnlTdHJpbmcodCl7cmV0dXJuISF0aGlzLmludGVyZXN0T2JqZWN0TWFwLmZpbmRTeW5jKGk9PmkuY29tcGFyaXNvblN0cmluZz09PXQpfWluZm9ybUxvc3RJbnRlcmVzdCh0KXtsZXQgcj10aGlzLmZpbmRJbnRlcmVzdCh0KTtyJiZyLm1hcmtMb3N0KCl9ZmluZEludGVyZXN0KHQpe2xldCByPXRoaXMuY29tcGFyaXNvbkZ1bmModCk7cmV0dXJuIHRoaXMuaW50ZXJlc3RPYmplY3RNYXAuZmluZFN5bmMoYT0+YS5jb21wYXJpc29uU3RyaW5nPT09cil9fX0pO3ZhciBZSixNSGU9cCgoKT0+e0NvKCk7WUo9Y2xhc3N7Y29uc3RydWN0b3IodCl7dGhpcy5hcnJheT1bXSx0aGlzLmFycmF5TGltaXQ9dH1hZGRPbmUodCl7dGhpcy5hcnJheS51bnNoaWZ0KHQpLHRoaXMuYXJyYXkubGVuZ3RoPnRoaXMuYXJyYXlMaW1pdCYmKHRoaXMuYXJyYXkubGVuZ3RoPXRoaXMuYXJyYXlMaW1pdCl9YWRkTWFueSh0KXtmb3IobGV0IHIgb2YgdCl0aGlzLmFkZE9uZShyKX1zZXRMaW1pdCh0KXt0aGlzLmFycmF5TGltaXQ9dCx0aGlzLmFycmF5Lmxlbmd0aD50aGlzLmFycmF5TGltaXQmJih0aGlzLmFycmF5Lmxlbmd0aD10aGlzLmFycmF5TGltaXQpfWdldEF2ZXJhZ2UoKXtpZih0eXBlb2YgdGhpcy5hcnJheVswXT09Im51bWJlciIpe2xldCB0PTA7Zm9yKGxldCByIG9mIHRoaXMuYXJyYXkpdD10K3I7cmV0dXJuIHQvdGhpcy5hcnJheS5sZW5ndGh9ZWxzZSByZXR1cm4gbnVsbH19fSk7dmFyIFpKLGtIZT1wKCgpPT57Q28oKTtTVCgpO1pKPWNsYXNze2NvbnN0cnVjdG9yKCl7dGhpcy5yZWZlcmVuY2VPYmplY3RNYXA9bmV3IFI2fWNoZWNrQW5kVHJhY2sodCl7cmV0dXJuIHRoaXMucmVmZXJlbmNlT2JqZWN0TWFwLmNoZWNrRm9yT2JqZWN0KHQpPyExOih0aGlzLnJlZmVyZW5jZU9iamVjdE1hcC5hZGQodCksITApfX19KTt2YXIgWEosU0hlPXAoKCk9PntDbygpO1hKPWNsYXNze2NvbnN0cnVjdG9yKCl7dGhpcy5fc3RyaW5nQXJyYXk9W10sdGhpcy5fdHJpZ2dlclVudGlsVHJ1ZUZ1bmN0aW9uQXJyYXk9W119YWRkU3RyaW5nKHQpe3RoaXMuX3N0cmluZ0FycmF5LnB1c2godCksdGhpcy5ub3RpZnlUcmlnZ2VyKCl9YWRkU3RyaW5nQXJyYXkodCl7Zm9yKGxldCByIG9mIHQpdGhpcy5hZGRTdHJpbmcocil9cmVtb3ZlU3RyaW5nKHQpe2ZvcihsZXQgciBpbiB0aGlzLl9zdHJpbmdBcnJheSl0aGlzLl9zdHJpbmdBcnJheVtyXT09PXQmJnRoaXMuX3N0cmluZ0FycmF5LnNwbGljZShwYXJzZUludChyKSwxKTt0aGlzLm5vdGlmeVRyaWdnZXIoKX13aXBlKCl7dGhpcy5fc3RyaW5nQXJyYXk9W10sdGhpcy5ub3RpZnlUcmlnZ2VyKCl9Y2hlY2tTdHJpbmcodCl7cmV0dXJuIHRoaXMuX3N0cmluZ0FycmF5LmluZGV4T2YodCkhPT0tMX1jaGVja01pbmltYXRjaCh0KXtsZXQgcj1uZXcgcWwuU21hcnRNYXRjaCh0KSxpPSExO2ZvcihsZXQgYSBvZiB0aGlzLl9zdHJpbmdBcnJheSlyLm1hdGNoKGEpJiYoaT0hMCk7cmV0dXJuIGl9Y2hlY2tJc0VtcHR5KCl7cmV0dXJuIHRoaXMuX3N0cmluZ0FycmF5Lmxlbmd0aD09PTB9Z2V0U3RyaW5nQXJyYXkoKXtsZXQgdD1bXTtmb3IobGV0IHIgb2YgdGhpcy5fc3RyaW5nQXJyYXkpdC5wdXNoKHIpO3JldHVybiB0fXJlZ2lzdGVyVW50aWxUcnVlKHQscil7bGV0IGk9WGUuZGVmZXIoKTtyZXR1cm4gdGhpcy5fdHJpZ2dlclVudGlsVHJ1ZUZ1bmN0aW9uQXJyYXkucHVzaCgoKT0+e2xldCBhPXQodGhpcy5nZXRTdHJpbmdBcnJheSgpKTtyZXR1cm4gYT09PSEwJiYociYmcigpLGkucmVzb2x2ZSgpKSxhfSksdGhpcy5ub3RpZnlUcmlnZ2VyKCksaS5wcm9taXNlfW5vdGlmeVRyaWdnZXIoKXtsZXQgdD10aGlzLl90cmlnZ2VyVW50aWxUcnVlRnVuY3Rpb25BcnJheS5maWx0ZXIocj0+IXIoKSk7dGhpcy5fdHJpZ2dlclVudGlsVHJ1ZUZ1bmN0aW9uQXJyYXk9dH19fSk7dmFyIFFKLHpIZT1wKCgpPT57Q28oKTtRSj1jbGFzc3tjb25zdHJ1Y3Rvcih0KXt0aGlzLnN0b3JhZ2VBcnJheT1bXSx0aGlzLm9wdGlvbnM9dH1jaGVja0FnZ3JlZ2F0aW9uU3RhdHVzKCl7bGV0IHQ9KCk9Pnt0aGlzLmFnZ3JlZ2F0aW9uVGltZXI9bmV3IFpsLlRpbWVyKHRoaXMub3B0aW9ucy5hZ2dyZWdhdGlvbkludGVydmFsSW5NaWxsaXMpLHRoaXMuYWdncmVnYXRpb25UaW1lci5jb21wbGV0ZWQudGhlbigoKT0+e2xldCByPXRoaXMuc3RvcmFnZUFycmF5O2lmKHIubGVuZ3RoPT09MCl7dGhpcy5hZ2dyZWdhdGlvblRpbWVyPW51bGw7cmV0dXJufXRoaXMuc3RvcmFnZUFycmF5PVtdLHQoKSx0aGlzLm9wdGlvbnMuZnVuY3Rpb25Gb3JBZ2dyZWdhdGlvbihyKX0pLHRoaXMuYWdncmVnYXRpb25UaW1lci5zdGFydCgpfTt0aGlzLmFnZ3JlZ2F0aW9uVGltZXJ8fHQoKX1hZGQodCl7dGhpcy5zdG9yYWdlQXJyYXkucHVzaCh0KSx0aGlzLmNoZWNrQWdncmVnYXRpb25TdGF0dXMoKX19fSk7dmFyIEpKLENIZT1wKCgpPT57Q28oKTtKSj1jbGFzc3tjb25zdHJ1Y3Rvcigpe3RoaXMuc3ltYm9sVHJlZT1uZXcga1QuZGVmYXVsdH1pbml0aWFsaXplKHQpe3JldHVybiB0aGlzLnN5bWJvbFRyZWUuaW5pdGlhbGl6ZSh0KX1oYXNDaGlsZHJlbih0KXtyZXR1cm4gdGhpcy5zeW1ib2xUcmVlLmhhc0NoaWxkcmVuKHQpfWZpcnN0Q2hpbGQodCl7cmV0dXJuIHRoaXMuc3ltYm9sVHJlZS5maXJzdENoaWxkKHQpfWxhc3RDaGlsZCh0KXtyZXR1cm4gdGhpcy5zeW1ib2xUcmVlLmxhc3RDaGlsZCh0KX1wcmV2aW91c1NpYmxpbmcodCl7cmV0dXJuIHRoaXMuc3ltYm9sVHJlZS5wcmV2aW91c1NpYmxpbmcodCl9bmV4dFNpYmxpbmcodCl7cmV0dXJuIHRoaXMuc3ltYm9sVHJlZS5uZXh0U2libGluZyh0KX1wYXJlbnQodCl7cmV0dXJuIHRoaXMuc3ltYm9sVHJlZS5wYXJlbnQodCl9bGFzdEluY2x1c2l2ZURlc2NlbmRhbnQodCl7cmV0dXJuIHRoaXMuc3ltYm9sVHJlZS5sYXN0SW5jbHVzaXZlRGVzY2VuZGFudCh0KX1wcmVjZWRpbmcodCxyKXtyZXR1cm4gdGhpcy5zeW1ib2xUcmVlLnByZWNlZGluZyh0LHIpfWZvbGxvd2luZyh0LHIpe3JldHVybiB0aGlzLnN5bWJvbFRyZWUuZm9sbG93aW5nKHQscil9Y2hpbGRyZW5Ub0FycmF5KHQscil7cmV0dXJuIHRoaXMuc3ltYm9sVHJlZS5jaGlsZHJlblRvQXJyYXkodCxyKX1hbmNlc3RvcnNUb0FycmF5KHQscil7cmV0dXJuIHRoaXMuc3ltYm9sVHJlZS5hbmNlc3RvcnNUb0FycmF5KHQscil9dHJlZVRvQXJyYXkodCxyKXtyZXR1cm4gdGhpcy5zeW1ib2xUcmVlLnRyZWVUb0FycmF5KHQscil9Y2hpbGRyZW5JdGVyYXRvcih0LHIpe3JldHVybiB0aGlzLnN5bWJvbFRyZWUuY2hpbGRyZW5JdGVyYXRvcih0LHIpfXByZXZpb3VzU2libGluZ3NJdGVyYXRvcih0KXtyZXR1cm4gdGhpcy5zeW1ib2xUcmVlLnByZXZpb3VzU2libGluZ3NJdGVyYXRvcih0KX1uZXh0U2libGluZ3NJdGVyYXRvcih0KXtyZXR1cm4gdGhpcy5zeW1ib2xUcmVlLm5leHRTaWJsaW5nc0l0ZXJhdG9yKCl9YW5jZXN0b3JzSXRlcmF0b3IodCl7dGhpcy5zeW1ib2xUcmVlLmFuY2VzdG9yc0l0ZXJhdG9yKCl9dHJlZUl0ZXJhdG9yKHQscil7cmV0dXJuIHRoaXMuc3ltYm9sVHJlZS50cmVlSXRlcmF0b3IodCl9aW5kZXgodCl7cmV0dXJuIHRoaXMuc3ltYm9sVHJlZS5pbmRleCh0KX1jaGlsZHJlbkNvdW50KHQpe3JldHVybiB0aGlzLnN5bWJvbFRyZWUuY2hpbGRyZW5Db3VudCh0KX1jb21wYXJlVHJlZVBvc2l0aW9uKHQscil7cmV0dXJuIHRoaXMuY29tcGFyZVRyZWVQb3NpdGlvbih0LHIpfXJlbW92ZSh0KXtyZXR1cm4gdGhpcy5zeW1ib2xUcmVlLnJlbW92ZSh0KX1pbnNlcnRCZWZvcmUodCxyKXtyZXR1cm4gdGhpcy5zeW1ib2xUcmVlLmluc2VydEJlZm9yZSh0LHIpfWluc2VydEFmdGVyKHQscil7cmV0dXJuIHRoaXMuc3ltYm9sVHJlZS5pbnNlcnRBZnRlcih0LHIpfXByZXBlbmRDaGlsZCh0LHIpe3JldHVybiB0aGlzLnN5bWJvbFRyZWUucHJlcGVuZENoaWxkKHQscil9YXBwZW5kQ2hpbGQodCxyKXtyZXR1cm4gdGhpcy5zeW1ib2xUcmVlLmFwcGVuZENoaWxkKHQscil9dG9Kc29uV2l0aEhpZXJhY2h5KHQpe2xldCByPXRoaXMudHJlZUl0ZXJhdG9yKHQse30pO2ZvcihsZXQgaSBvZiByKWNvbnNvbGUubG9nKGkpfWZyb21Kc29uV2l0aEhpZXJhY2h5KHQpe319fSk7dmFyIHZpPXt9O0ZlKHZpLHtBc3luY0V4ZWN1dGlvblN0YWNrOigpPT5xSixCYWNrcHJlc3N1cmVkQXJyYXk6KCk9PmpKLEZhc3RNYXA6KCk9PlptLEludGVyZXN0OigpPT5YbSxJbnRlcmVzdE1hcDooKT0+R0osTGltaXRlZEFycmF5OigpPT5ZSixMb29wVHJhY2tlcjooKT0+WkosT2JqZWN0TWFwOigpPT5SNixTdHJpbmdtYXA6KCk9PlhKLFRpbWVkQWdncmVndG9yOigpPT5RSixUcmVlOigpPT5KSix1bmk6KCk9PndIZX0pO3ZhciBHbT1wKCgpPT57eEhlKCk7eUhlKCk7VkooKTtXSigpO1VKKCk7TUhlKCk7a0hlKCk7U1QoKTtTSGUoKTt6SGUoKTtDSGUoKX0pO3ZhciByND17fTtGZShyNCx7YXJlVWludDhBcnJheXNFcXVhbDooKT0+X0VyLGFzc2VydFVpbnQ4QXJyYXk6KCk9PnQ0LGFzc2VydFVpbnQ4QXJyYXlPckFycmF5QnVmZmVyOigpPT5ESGUsYmFzZTY0VG9TdHJpbmc6KCk9PklFcixiYXNlNjRUb1VpbnQ4QXJyYXk6KCk9PlBIZSxjb21wYXJlVWludDhBcnJheXM6KCk9PkxFcixjb25jYXRVaW50OEFycmF5czooKT0+VEVyLGdldFVpbnRCRTooKT0+T0VyLGhleFRvVWludDhBcnJheTooKT0+RkVyLGluY2x1ZGVzOigpPT5SRXIsaW5kZXhPZjooKT0+TkhlLGlzVWludDhBcnJheTooKT0+S0osc3RyaW5nVG9CYXNlNjQ6KCk9PiRFcixzdHJpbmdUb1VpbnQ4QXJyYXk6KCk9PiRIZSx0b1VpbnQ4QXJyYXk6KCk9PkNFcix1aW50OEFycmF5VG9CYXNlNjQ6KCk9PklIZSx1aW50OEFycmF5VG9IZXg6KCk9Pk5Fcix1aW50OEFycmF5VG9TdHJpbmc6KCk9PkVIZX0pO2Z1bmN0aW9uIFRIZShlLHQscil7cmV0dXJuIGU/ZS5jb25zdHJ1Y3Rvcj09PXQ/ITA6d0VyLmNhbGwoZSk9PT1yOiExfWZ1bmN0aW9uIEtKKGUpe3JldHVybiBUSGUoZSxVaW50OEFycmF5LE1Fcil9ZnVuY3Rpb24gU0VyKGUpe3JldHVybiBUSGUoZSxBcnJheUJ1ZmZlcixrRXIpfWZ1bmN0aW9uIHpFcihlKXtyZXR1cm4gS0ooZSl8fFNFcihlKX1mdW5jdGlvbiB0NChlKXtpZighS0ooZSkpdGhyb3cgbmV3IFR5cGVFcnJvcihgRXhwZWN0ZWQgXGBVaW50OEFycmF5XGAsIGdvdCBcYCR7dHlwZW9mIGV9XGBgKX1mdW5jdGlvbiBESGUoZSl7aWYoIXpFcihlKSl0aHJvdyBuZXcgVHlwZUVycm9yKGBFeHBlY3RlZCBcYFVpbnQ4QXJyYXlcYCBvciBcYEFycmF5QnVmZmVyXGAsIGdvdCBcYCR7dHlwZW9mIGV9XGBgKX1mdW5jdGlvbiBDRXIoZSl7aWYoZSBpbnN0YW5jZW9mIEFycmF5QnVmZmVyKXJldHVybiBuZXcgVWludDhBcnJheShlKTtpZihBcnJheUJ1ZmZlci5pc1ZpZXcoZSkpcmV0dXJuIG5ldyBVaW50OEFycmF5KGUuYnVmZmVyLGUuYnl0ZU9mZnNldCxlLmJ5dGVMZW5ndGgpO3Rocm93IG5ldyBUeXBlRXJyb3IoYFVuc3VwcG9ydGVkIHZhbHVlLCBnb3QgXGAke3R5cGVvZiBlfVxgLmApfWZ1bmN0aW9uIFRFcihlLHQpe2lmKGUubGVuZ3RoPT09MClyZXR1cm4gbmV3IFVpbnQ4QXJyYXkoMCk7dD8/PWUucmVkdWNlKChhLG4pPT5hK24ubGVuZ3RoLDApO2xldCByPW5ldyBVaW50OEFycmF5KHQpLGk9MDtmb3IobGV0IGEgb2YgZSl0NChhKSxyLnNldChhLGkpLGkrPWEubGVuZ3RoO3JldHVybiByfWZ1bmN0aW9uIF9FcihlLHQpe2lmKHQ0KGUpLHQ0KHQpLGU9PT10KXJldHVybiEwO2lmKGUubGVuZ3RoIT09dC5sZW5ndGgpcmV0dXJuITE7Zm9yKGxldCByPTA7cjxlLmxlbmd0aDtyKyspaWYoZVtyXSE9PXRbcl0pcmV0dXJuITE7cmV0dXJuITB9ZnVuY3Rpb24gTEVyKGUsdCl7dDQoZSksdDQodCk7bGV0IHI9TWF0aC5taW4oZS5sZW5ndGgsdC5sZW5ndGgpO2ZvcihsZXQgaT0wO2k8cjtpKyspe2xldCBhPWVbaV0tdFtpXTtpZihhIT09MClyZXR1cm4gTWF0aC5zaWduKGEpfXJldHVybiBNYXRoLnNpZ24oZS5sZW5ndGgtdC5sZW5ndGgpfWZ1bmN0aW9uIEVIZShlLHQ9InV0ZjgiKXtyZXR1cm4gREhlKGUpLF9IZVt0XT8/PW5ldyBnbG9iYWxUaGlzLlRleHREZWNvZGVyKHQpLF9IZVt0XS5kZWNvZGUoZSl9ZnVuY3Rpb24gUW0oZSl7aWYodHlwZW9mIGUhPSJzdHJpbmciKXRocm93IG5ldyBUeXBlRXJyb3IoYEV4cGVjdGVkIFxgc3RyaW5nXGAsIGdvdCBcYCR7dHlwZW9mIGV9XGBgKX1mdW5jdGlvbiAkSGUoZSl7cmV0dXJuIFFtKGUpLEFFci5lbmNvZGUoZSl9ZnVuY3Rpb24gREVyKGUpe3JldHVybiBlLnJlcGxhY2VBbGwoIisiLCItIikucmVwbGFjZUFsbCgiLyIsIl8iKS5yZXBsYWNlKC89KyQvLCIiKX1mdW5jdGlvbiBFRXIoZSl7bGV0IHQ9ZS5yZXBsYWNlQWxsKCItIiwiKyIpLnJlcGxhY2VBbGwoIl8iLCIvIikscj0oNC10Lmxlbmd0aCU0KSU0O3JldHVybiB0KyI9Ii5yZXBlYXQocil9ZnVuY3Rpb24gSUhlKGUse3VybFNhZmU6dD0hMX09e30pe3Q0KGUpO2xldCByPSIiO2ZvcihsZXQgaT0wO2k8ZS5sZW5ndGg7aSs9TEhlKXtsZXQgYT1lLnN1YmFycmF5KGksaStMSGUpO3IrPWdsb2JhbFRoaXMuYnRvYShTdHJpbmcuZnJvbUNvZGVQb2ludC5hcHBseSh2b2lkIDAsYSkpfXJldHVybiB0P0RFcihyKTpyfWZ1bmN0aW9uIFBIZShlKXtyZXR1cm4gUW0oZSksVWludDhBcnJheS5mcm9tKGdsb2JhbFRoaXMuYXRvYihFRXIoZSkpLHQ9PnQuY29kZVBvaW50QXQoMCkpfWZ1bmN0aW9uICRFcihlLHt1cmxTYWZlOnQ9ITF9PXt9KXtyZXR1cm4gUW0oZSksSUhlKCRIZShlKSx7dXJsU2FmZTp0fSl9ZnVuY3Rpb24gSUVyKGUpe3JldHVybiBRbShlKSxFSGUoUEhlKGUpKX1mdW5jdGlvbiBORXIoZSl7dDQoZSk7bGV0IHQ9IiI7Zm9yKGxldCByPTA7cjxlLmxlbmd0aDtyKyspdCs9UEVyW2Vbcl1dO3JldHVybiB0fWZ1bmN0aW9uIEZFcihlKXtpZihRbShlKSxlLmxlbmd0aCUyIT09MCl0aHJvdyBuZXcgRXJyb3IoIkludmFsaWQgSGV4IHN0cmluZyBsZW5ndGguIik7bGV0IHQ9ZS5sZW5ndGgvMixyPW5ldyBVaW50OEFycmF5KHQpO2ZvcihsZXQgaT0wO2k8dDtpKyspe2xldCBhPUFIZVtlW2kqMl1dLG49QUhlW2VbaSoyKzFdXTtpZihhPT09dm9pZCAwfHxuPT09dm9pZCAwKXRocm93IG5ldyBFcnJvcihgSW52YWxpZCBIZXggY2hhcmFjdGVyIGVuY291bnRlcmVkIGF0IHBvc2l0aW9uICR7aSoyfWApO3JbaV09YTw8NHxufXJldHVybiByfWZ1bmN0aW9uIE9FcihlKXtsZXR7Ynl0ZUxlbmd0aDp0fT1lO2lmKHQ9PT02KXJldHVybiBlLmdldFVpbnQxNigwKSoyKiozMitlLmdldFVpbnQzMigyKTtpZih0PT09NSlyZXR1cm4gZS5nZXRVaW50OCgwKSoyKiozMitlLmdldFVpbnQzMigxKTtpZih0PT09NClyZXR1cm4gZS5nZXRVaW50MzIoMCk7aWYodD09PTMpcmV0dXJuIGUuZ2V0VWludDgoMCkqMioqMTYrZS5nZXRVaW50MTYoMSk7aWYodD09PTIpcmV0dXJuIGUuZ2V0VWludDE2KDApO2lmKHQ9PT0xKXJldHVybiBlLmdldFVpbnQ4KDApfWZ1bmN0aW9uIE5IZShlLHQpe2xldCByPWUubGVuZ3RoLGk9dC5sZW5ndGg7aWYoaT09PTB8fGk+cilyZXR1cm4tMTtsZXQgYT1yLWk7Zm9yKGxldCBuPTA7bjw9YTtuKyspe2xldCBvPSEwO2ZvcihsZXQgcz0wO3M8aTtzKyspaWYoZVtuK3NdIT09dFtzXSl7bz0hMTticmVha31pZihvKXJldHVybiBufXJldHVybi0xfWZ1bmN0aW9uIFJFcihlLHQpe3JldHVybiBOSGUoZSx0KSE9PS0xfXZhciB3RXIsTUVyLGtFcixfSGUsQUVyLExIZSxQRXIsQUhlLEZIZT1wKCgpPT57d0VyPU9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcsTUVyPSJbb2JqZWN0IFVpbnQ4QXJyYXldIixrRXI9IltvYmplY3QgQXJyYXlCdWZmZXJdIjtfSGU9e3V0Zjg6bmV3IGdsb2JhbFRoaXMuVGV4dERlY29kZXIoInV0ZjgiKX07QUVyPW5ldyBnbG9iYWxUaGlzLlRleHRFbmNvZGVyO0xIZT02NTUzNTtQRXI9QXJyYXkuZnJvbSh7bGVuZ3RoOjI1Nn0sKGUsdCk9PnQudG9TdHJpbmcoMTYpLnBhZFN0YXJ0KDIsIjAiKSk7QUhlPXswOjAsMToxLDI6MiwzOjMsNDo0LDU6NSw2OjYsNzo3LDg6OCw5OjksYToxMCxiOjExLGM6MTIsZDoxMyxlOjE0LGY6MTUsQToxMCxCOjExLEM6MTIsRDoxMyxFOjE0LEY6MTV9fSk7dmFyIE9IZT1wKCgpPT57RkhlKCl9KTt2YXIgSTg9e307RmUoSTgse2Jhc2U2NFRvVWludDhBcnJheTooKT0+akVyLGVuc3VyZVB1cmVVaW50OEFycmF5OigpPT5XRXIsaXNCdWZmZXJMaWtlOigpPT5VRXIsaXNVaW50OEFycmF5OigpPT5WRXIsdUludDhBcnJheUV4dHJhczooKT0+SEVyLHVJbnQ4QXJyYXlUb0Jhc2U2NDooKT0+cUVyfSk7ZnVuY3Rpb24gcUVyKGUpe3JldHVybiByNC51aW50OEFycmF5VG9CYXNlNjQoZSl9ZnVuY3Rpb24gakVyKGUpe3JldHVybiByNC5iYXNlNjRUb1VpbnQ4QXJyYXkoZSl9ZnVuY3Rpb24gVUVyKGUpe3JldHVybiBlJiZ0eXBlb2YgZS5ieXRlTGVuZ3RoPT0ibnVtYmVyIj8hMDp0eXBlb2YgQnVmZmVyPCJ1IiYmQnVmZmVyLmlzQnVmZmVyP0J1ZmZlci5pc0J1ZmZlcihlKTohMX1mdW5jdGlvbiBXRXIoZSl7bGV0IHQ9bmV3IFVpbnQ4QXJyYXkoZS5sZW5ndGgpO3JldHVybiB0LnNldChlKSx0fXZhciBIRXIsVkVyLFJIZT1wKCgpPT57T0hlKCk7SEVyPXI0O1ZFcj1lPT5yNC5pc1VpbnQ4QXJyYXkoZSl9KTt2YXIgSm09cCgoKT0+e0VpKCl9KTt2YXIgS20selQ9cCgoKT0+e0ptKCk7S209Y2xhc3N7Y29uc3RydWN0b3IodCxyKXt0aGlzLmd1YXJkRnVuY3Rpb249dCx0aGlzLm9wdGlvbnM9cn1hc3luYyBleGVjKHQpe3JldHVybiBhd2FpdCB0aGlzLmd1YXJkRnVuY3Rpb24odCl9YXN5bmMgZ2V0RmFpbGVkSGludCh0KXtyZXR1cm4gYXdhaXQgdGhpcy5leGVjKHQpP251bGw6dGhpcy5vcHRpb25zLmZhaWxlZEhpbnR9fX0pO3ZhciBlOSxlSz1wKCgpPT57Sm0oKTtlOT1jbGFzcyBleHRlbmRzIEVycm9ye2NvbnN0cnVjdG9yKHQpe3N1cGVyKHQpLHRoaXMubmFtZT0iR3VhcmRFcnJvciJ9fX0pO3ZhciB0OSx0Sz1wKCgpPT57Sm0oKTt6VCgpO3Q5PWNsYXNzIGV4dGVuZHMgS217Y29uc3RydWN0b3IodD1bXSl7c3VwZXIoYXN5bmMgcj0+dGhpcy5hbGxHdWFyZHNQYXNzKHIpKSx0aGlzLmd1YXJkcz10fWFzeW5jIGV4ZWNBbGxXaXRoRGF0YSh0LHI9e21vZGU6InBhcmFsbGVsIixzdG9wT25GYWlsOiExfSl7bGV0IGk9W107Zm9yKGxldCBuIG9mIHRoaXMuZ3VhcmRzKXtsZXQgbz1uLmV4ZWModCk7aWYoci5tb2RlPT09InNlcmlhbCImJmF3YWl0IG8saS5wdXNoKG8pLHIuc3RvcE9uRmFpbCYmIWF3YWl0IG8pcmV0dXJuIGF3YWl0IFByb21pc2UuYWxsKGkpfXJldHVybiBhd2FpdCBQcm9taXNlLmFsbChpKX1hc3luYyBhbGxHdWFyZHNQYXNzKHQscj17bW9kZToicGFyYWxsZWwiLHN0b3BPbkZhaWw6ITF9KXtyZXR1cm4oYXdhaXQgdGhpcy5leGVjQWxsV2l0aERhdGEodCxyKSkuZXZlcnkoYT0+YSl9YXN5bmMgYW55R3VhcmRzUGFzcyh0KXtyZXR1cm4oYXdhaXQgdGhpcy5leGVjQWxsV2l0aERhdGEodCx7bW9kZToicGFyYWxsZWwiLHN0b3BPbkZhaWw6ITF9KSkuc29tZShpPT5pKX1nZXRGYWlsZWRIaW50KHQpe2ZvcihsZXQgciBvZiB0aGlzLmd1YXJkcyl7bGV0IGk9ci5nZXRGYWlsZWRIaW50KHQpO2lmKGkpcmV0dXJuIGl9fX19KTt2YXIgcjk9e307RmUocjkse0d1YXJkOigpPT5LbSxHdWFyZEVycm9yOigpPT5lOSxHdWFyZFNldDooKT0+dDkscGFzc0d1YXJkc09yUmVqZWN0OigpPT5HRXJ9KTt2YXIgR0VyLEJIZT1wKCgpPT57Sm0oKTt6VCgpO2VLKCk7elQoKTt0SygpO3RLKCk7ZUsoKTtHRXI9YXN5bmMoZSx0KT0+e2xldCByPW5ldyB0OSh0KTtpZighYXdhaXQgci5hbGxHdWFyZHNQYXNzKGUpKXtsZXQgYT1hd2FpdCByLmdldEZhaWxlZEhpbnQoZSk7dGhyb3cgbmV3IGU5KGBHdWFyZHMgZmFpbGVkOgoke2F9CiAgICBgKX19fSk7dmFyIFA4LHJLPXAoKCk9PntQOD1jbGFzc3tjb25zdHJ1Y3Rvcigpe3RoaXMucmVxdWVzdEludGVyY2VwdG9ycz1bXSx0aGlzLnJlc3BvbnNlSW50ZXJjZXB0b3JzPVtdLHRoaXMuZXJyb3JJbnRlcmNlcHRvcnM9W119YWRkUmVxdWVzdEludGVyY2VwdG9yKHQpe3RoaXMucmVxdWVzdEludGVyY2VwdG9ycy5wdXNoKHQpfWFkZFJlc3BvbnNlSW50ZXJjZXB0b3IodCl7dGhpcy5yZXNwb25zZUludGVyY2VwdG9ycy5wdXNoKHQpfWFkZEVycm9ySW50ZXJjZXB0b3IodCl7dGhpcy5lcnJvckludGVyY2VwdG9ycy5wdXNoKHQpfXJlbW92ZVJlcXVlc3RJbnRlcmNlcHRvcih0KXtsZXQgcj10aGlzLnJlcXVlc3RJbnRlcmNlcHRvcnMuaW5kZXhPZih0KTtyPi0xJiZ0aGlzLnJlcXVlc3RJbnRlcmNlcHRvcnMuc3BsaWNlKHIsMSl9cmVtb3ZlUmVzcG9uc2VJbnRlcmNlcHRvcih0KXtsZXQgcj10aGlzLnJlc3BvbnNlSW50ZXJjZXB0b3JzLmluZGV4T2YodCk7cj4tMSYmdGhpcy5yZXNwb25zZUludGVyY2VwdG9ycy5zcGxpY2UociwxKX1yZW1vdmVFcnJvckludGVyY2VwdG9yKHQpe2xldCByPXRoaXMuZXJyb3JJbnRlcmNlcHRvcnMuaW5kZXhPZih0KTtyPi0xJiZ0aGlzLmVycm9ySW50ZXJjZXB0b3JzLnNwbGljZShyLDEpfWNsZWFyQWxsKCl7dGhpcy5yZXF1ZXN0SW50ZXJjZXB0b3JzPVtdLHRoaXMucmVzcG9uc2VJbnRlcmNlcHRvcnM9W10sdGhpcy5lcnJvckludGVyY2VwdG9ycz1bXX1hc3luYyBwcm9jZXNzUmVxdWVzdCh0KXtsZXQgcj10O2ZvcihsZXQgaSBvZiB0aGlzLnJlcXVlc3RJbnRlcmNlcHRvcnMpdHJ5e3I9YXdhaXQgaShyKX1jYXRjaChhKXt0aHJvdyBhd2FpdCB0aGlzLnByb2Nlc3NFcnJvcihhIGluc3RhbmNlb2YgRXJyb3I/YTpuZXcgRXJyb3IoU3RyaW5nKGEpKSl9cmV0dXJuIHJ9YXN5bmMgcHJvY2Vzc1Jlc3BvbnNlKHQpe2xldCByPXQ7Zm9yKGxldCBpIG9mIHRoaXMucmVzcG9uc2VJbnRlcmNlcHRvcnMpdHJ5e3I9YXdhaXQgaShyKX1jYXRjaChhKXt0aHJvdyBhd2FpdCB0aGlzLnByb2Nlc3NFcnJvcihhIGluc3RhbmNlb2YgRXJyb3I/YTpuZXcgRXJyb3IoU3RyaW5nKGEpKSl9cmV0dXJuIHJ9YXN5bmMgcHJvY2Vzc0Vycm9yKHQpe2xldCByPXQ7Zm9yKGxldCBpIG9mIHRoaXMuZXJyb3JJbnRlcmNlcHRvcnMpdHJ5e3I9YXdhaXQgaShyKX1jYXRjaChhKXtyPWEgaW5zdGFuY2VvZiBFcnJvcj9hOm5ldyBFcnJvcihTdHJpbmcoYSkpfXJldHVybiByfWdldEludGVyY2VwdG9yQ291bnRzKCl7cmV0dXJue3JlcXVlc3Q6dGhpcy5yZXF1ZXN0SW50ZXJjZXB0b3JzLmxlbmd0aCxyZXNwb25zZTp0aGlzLnJlc3BvbnNlSW50ZXJjZXB0b3JzLmxlbmd0aCxlcnJvcjp0aGlzLmVycm9ySW50ZXJjZXB0b3JzLmxlbmd0aH19fX0pO3ZhciBISGU9cCgoKT0+e0VpKCl9KTt2YXIgcUhlPXAoKCk9Pnt9KTt2YXIgaUssakhlPXAoKCk9PntISGUoKTtxSGUoKTtpSz1jbGFzc3tjb25zdHJ1Y3Rvcigpe3RoaXMubG9hZGVkU2NyaXB0cz1bXX1hc3luYyBnZXRFbnZBd2FyZU1vZHVsZSh0KXtpZih0aGlzLmlzTm9kZSlyZXR1cm4gYXdhaXQgdGhpcy5nZXRTYWZlTm9kZU1vZHVsZSh0Lm5vZGVNb2R1bGVOYW1lKTtpZih0aGlzLmlzQnJvd3NlcilyZXR1cm4gYXdhaXQgdGhpcy5nZXRTYWZlV2ViTW9kdWxlKHQud2ViVXJsQXJnLHQuZ2V0RnVuY3Rpb24pO2NvbnNvbGUuZXJyb3IoInBsYXRmb3JtIGZvciBsb2FkaW5nIG5vdCBzdXBwb3J0ZWQgYnkgc21hcnRlbnYiKX1hc3luYyBnZXRTYWZlTm9kZU1vZHVsZSh0LHIpe2lmKCF0aGlzLmlzTm9kZSl7Y29uc29sZS5lcnJvcihgWW91IHRyaWVkIHRvIGxvYWQgYSBub2RlIG1vZHVsZSBpbiBhIHdyb25nIGNvbnRleHQ6ICR7dH0uIFRoaXMgZG9lcyBub3QgdGhyb3cuYCk7cmV0dXJufWxldCBpPWF3YWl0IG5ldyBGdW5jdGlvbihgcmV0dXJuIGltcG9ydCgnJHt0fScpYCkoKTtyZXR1cm4gciYmYXdhaXQgcihpKSxpfWFzeW5jIGdldFNhZmVXZWJNb2R1bGUodCxyKXtpZighdGhpcy5pc0Jyb3dzZXIpe2NvbnNvbGUuZXJyb3IoIllvdSB0cmllZCB0byBsb2FkIGEgd2ViIG1vZHVsZSBpbiBhIHdyb25nIGNvbnRleHQiKTtyZXR1cm59aWYodGhpcy5sb2FkZWRTY3JpcHRzLmluY2x1ZGVzKHQpKXJldHVybiByKCk7dGhpcy5sb2FkZWRTY3JpcHRzLnB1c2godCk7bGV0IGk9WGUuZGVmZXIoKTtpZihnbG9iYWxUaGlzLmltcG9ydFNjcmlwdHMpZ2xvYmFsVGhpcy5pbXBvcnRTY3JpcHRzKHQpLGkucmVzb2x2ZSgpO2Vsc2V7bGV0IGE9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgic2NyaXB0Iik7YS5vbmxvYWQ9KCk9PntpLnJlc29sdmUoKX0sYS5zcmM9dCxkb2N1bWVudC5oZWFkLmFwcGVuZENoaWxkKGEpfXJldHVybiBhd2FpdCBpLnByb21pc2UscigpfWdldCBydW50aW1lRW52KCl7cmV0dXJuIHR5cGVvZiBwcm9jZXNzPCJ1Ij8ibm9kZSI6ImJyb3dzZXIifWdldCBpc0Jyb3dzZXIoKXtyZXR1cm4hdGhpcy5pc05vZGV9Z2V0IHVzZXJBZ2VudCgpe3JldHVybiB0aGlzLmlzQnJvd3Nlcj9uYXZpZ2F0b3IudXNlckFnZW50OiJ1bmRlZmluZWQifWdldCBpc05vZGUoKXtyZXR1cm4gdGhpcy5ydW50aW1lRW52PT09Im5vZGUifWdldCBub2RlVmVyc2lvbigpe3JldHVybiBwcm9jZXNzLnZlcnNpb259Z2V0IGlzQ0koKXtyZXR1cm4gdGhpcy5pc05vZGU/ISFwcm9jZXNzLmVudi5DSTohMX1hc3luYyBpc01hY0FzeW5jKCl7cmV0dXJuIHRoaXMuaXNOb2RlPyhhd2FpdCB0aGlzLmdldFNhZmVOb2RlTW9kdWxlKCJvcyIpKS5wbGF0Zm9ybSgpPT09ImRhcndpbiI6ITF9YXN5bmMgaXNXaW5kb3dzQXN5bmMoKXtyZXR1cm4gdGhpcy5pc05vZGU/KGF3YWl0IHRoaXMuZ2V0U2FmZU5vZGVNb2R1bGUoIm9zIikpLnBsYXRmb3JtKCk9PT0id2luMzIiOiExfWFzeW5jIGlzTGludXhBc3luYygpe3JldHVybiB0aGlzLmlzTm9kZT8oYXdhaXQgdGhpcy5nZXRTYWZlTm9kZU1vZHVsZSgib3MiKSkucGxhdGZvcm0oKT09PSJsaW51eCI6ITF9YXN5bmMgcHJpbnRFbnYoKXt0aGlzLmlzTm9kZT8oY29uc29sZS5sb2coInJ1bm5pbmcgb24gTk9ERSIpLGNvbnNvbGUubG9nKCJub2RlIHZlcnNpb24gaXMgIit0aGlzLm5vZGVWZXJzaW9uKSk6KGNvbnNvbGUubG9nKCJydW5uaW5nIG9uIEJST1dTRVIiKSxjb25zb2xlLmxvZygiYnJvd3NlciBpcyAiK3RoaXMudXNlckFnZW50KSl9fX0pO3ZhciBxbj17fTtGZShxbix7U21hcnRlbnY6KCk9PmlLfSk7dmFyIE44PXAoKCk9PntqSGUoKX0pO3ZhciBhSyxGOD1wKCgpPT57YUs9ZXIoeVMoKSwxKX0pO3ZhciBDVD17fTtGZShDVCx7Y3JlYXRlQ3J5cHRvUmFuZG9tU3RyaW5nOigpPT5LRXIsY3JlYXRlUmFuZG9tU3RyaW5nOigpPT5KRXJ9KTt2YXIgWEVyLFFFcixKRXIsS0VyLFZIZT1wKCgpPT57RjgoKTtYRXI9KGUsdCk9PntpZih0eXBlb2YgZ2xvYmFsVGhpczwidSImJmdsb2JhbFRoaXMuY3J5cHRvJiZnbG9iYWxUaGlzLmNyeXB0by5nZXRSYW5kb21WYWx1ZXMpe2xldCByPXQtZSxpPW5ldyBVaW50MzJBcnJheSgxKTtyZXR1cm4gZ2xvYmFsVGhpcy5jcnlwdG8uZ2V0UmFuZG9tVmFsdWVzKGkpLGUraVswXSVyfWVsc2UgcmV0dXJuIE1hdGguZmxvb3IoTWF0aC5yYW5kb20oKSoodC1lKSkrZX0sUUVyPShlLHQscik9PntsZXQgaT17QToiQUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVoiLGE6ImFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6IiwwOiIwMTIzNDU2Nzg5IiwiISI6IiFAIyQlXiYqKClfKy09W117fXw7OiwuPD4/IiwiKiI6IkFCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFlaYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXowMTIzNDU2Nzg5IUAjJCVeJiooKV8rLT1bXXt9fDs6LC48Pj8ifSxhPWU7dCYmdD5lLmxlbmd0aD9hPWUucmVwZWF0KE1hdGguY2VpbCh0L2UubGVuZ3RoKSkuc2xpY2UoMCx0KTp0JiYoYT1lLnNsaWNlKDAsdCkpO2xldCBuPSIiO2ZvcihsZXQgbyBvZiBhKWlmKGlbb10pe2xldCBzPWlbb10sbD1YRXIoMCxzLmxlbmd0aCk7bis9c1tsXX1lbHNlIG4rPW87cmV0dXJuIG59LEpFcj0oZSx0LHIpPT5RRXIoZSx0LHIpLEtFcj0oKT0+YUsudW5pKCl9KTt2YXIgVFQ9e307RmUoVFQse21ha2VFbnZPYmplY3Q6KCk9PmUkcn0pO3ZhciBlJHIsVUhlPXAoKCk9PntGOCgpO2Ukcj1mdW5jdGlvbihlKXtsZXQgdD17fSxyPS8oLiopPSguKikvO2lmKHR5cGVvZiBlPCJ1Iilmb3IobGV0IGkgaW4gZSl7bGV0IGE9ci5leGVjKGVbaV0pO3RbYVsxXV09YVsyXX1yZXR1cm4gdH19KTt2YXIgQjY9e307RmUoQjYse2luZGVudDooKT0+ciRyLGluZGVudFdpdGhQcmVmaXg6KCk9Pmkkcixub3JtYWxpemU6KCk9PmEkcn0pO3ZhciBuSyxvSyx0JHIsciRyLGkkcixhJHIsV0hlPXAoKCk9PntGOCgpO25LPWU9PntsZXQgdD1lLnNwbGl0KGAKYCk7cmV0dXJuIHQkcih0KX0sb0s9ZT0+e2xldCB0PSIiO2ZvcihsZXQgciBvZiBlKXQ9dCtyK2AKYDtyZXR1cm4gdH0sdCRyPWU9PntsZXQgdD0vXltcc10qJC87cmV0dXJuIHQudGVzdChlWzBdKSYmZS5zaGlmdCgpLHQudGVzdChlW2UubGVuZ3RoLTFdKSYmZS5wb3AoKSxlfSxyJHI9KGUsdCk9PntsZXQgcj1uSyhlKTtmb3IobGV0IGEgb2YgcilhPSIgIi5yZXBlYXQodCkrYTtyZXR1cm4gb0socil9LGkkcj0oZSx0KT0+e2xldCByLGk9bksoZSksYT1bXTtmb3IobGV0IG4gb2YgaSlhLnB1c2godCtuKTtyZXR1cm4gcj1vSyhhKSxyfSxhJHI9ZT0+e2xldCB0LHI9bksoZSksaSxhPS9eKFxzKikvLG49L14oXHMqKSQvO2ZvcihsZXQgcyBvZiByKXtsZXQgbD1hLmV4ZWMocylbMV07KHR5cGVvZiBpPiJ1Inx8bC5sZW5ndGg8aSkmJiFuLnRlc3QocykmJihpPWwubGVuZ3RoKX1sZXQgbz1bXTtmb3IobGV0IHMgb2YgcilvLnB1c2gocy5zdWJzdHIoaSkpO3JldHVybiB0PW9LKG8pLHR9fSk7dmFyIF9UPXt9O0ZlKF9ULHtyZXBsYWNlQWxsOigpPT5HSGUsc3RhbmRhcmQ6KCk9Pm8kcn0pO3ZhciBHSGUsbiRyLG8kcixZSGU9cCgoKT0+e0dIZT0oZSx0LHIpPT5lLnJlcGxhY2UobmV3IFJlZ0V4cCh0LCJnIiksciksbiRyPWU9PntsZXQgdD1lLnNwbGl0KGAKYCkscj0xLzA7Zm9yKGxldCBpIG9mIHQpaWYoaS50cmltKCkubGVuZ3RoPjApe2xldCBhPWkubWF0Y2goL14oXHMqKS8pO2EmJihyPU1hdGgubWluKHIsYVsxXS5sZW5ndGgpKX1yZXR1cm4gcj09PTEvMHx8cj09PTA/ZTp0Lm1hcChpPT5pLmxlbmd0aD49cj9pLnNsaWNlKHIpOmkpLmpvaW4oYApgKX0sbyRyPShlLHQpPT57bGV0IHI9ZTtyZXR1cm4oIXR8fHQuc3RyaXBJbmRlbnQpJiYocj1uJHIocikpLCghdHx8dC5ub3JtYWxpemVOZXdsaW5lKSYmKHI9ci5yZXBsYWNlKC9cclxuL2csYApgKSksKCF0fHx0LnJlcGxhY2VUYWJzKSYmKHI9R0hlKHIsIgkvIiwiICIpKSwoIXR8fHQuc3RyaXBMZWFkaW5nVHJhaWxpbmdFbXB0eUxpbmVzKSYmKHI9ci5yZXBsYWNlKC9eXHMqW1xyXG5dL2dtLCIiKS5yZXBsYWNlKC9ccypbXHJcbl0kL2dtLCIiKSksKCF0fHx0LnN0cmlwQWxsRW1wdHlMaW5lcykmJihyPXIucmVwbGFjZSgvXlxzKltcclxuXS9nbSwiIikpLHJ9fSk7dmFyIHNLLExULE84LGxLPXAoKCk9PntzSz17ZW5jb2RlOmU9PntpZih0eXBlb2YgQnVmZmVyPCJ1IilyZXR1cm4gQnVmZmVyLmZyb20oZSwidXRmOCIpLnRvU3RyaW5nKCJiYXNlNjQiKTtpZih0eXBlb2YgYnRvYTwidSIpe2xldCB0PW5ldyBUZXh0RW5jb2RlcigpLmVuY29kZShlKSxyPUFycmF5LmZyb20odCxpPT5TdHJpbmcuZnJvbUNoYXJDb2RlKGkpKS5qb2luKCIiKTtyZXR1cm4gYnRvYShyKX1lbHNle2xldCB0PSJBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWmFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6MDEyMzQ1Njc4OSsvIixyPW5ldyBUZXh0RW5jb2RlcigpLmVuY29kZShlKSxpPSIiLGE9MDtmb3IoO2E8ci5sZW5ndGg7KXtsZXQgbj1yW2ErK10sbz1hPHIubGVuZ3RoP3JbYSsrXTowLHM9YTxyLmxlbmd0aD9yW2ErK106MCxsPW48PDE2fG88PDh8cztpKz10LmNoYXJBdChsPj4xOCY2MyksaSs9dC5jaGFyQXQobD4+MTImNjMpLGkrPWEtMjxyLmxlbmd0aD90LmNoYXJBdChsPj42JjYzKToiPSIsaSs9YS0xPHIubGVuZ3RoP3QuY2hhckF0KGwmNjMpOiI9In1yZXR1cm4gaX19LGRlY29kZTplPT57bGV0IHQ9ZS5yZXBsYWNlKC8tL2csIisiKS5yZXBsYWNlKC9fL2csIi8iKS5wYWRFbmQoZS5sZW5ndGgrKDQtZS5sZW5ndGglNCklNCwiPSIpO2lmKHR5cGVvZiBCdWZmZXI8InUiKXJldHVybiBCdWZmZXIuZnJvbSh0LCJiYXNlNjQiKS50b1N0cmluZygidXRmOCIpO2lmKHR5cGVvZiBhdG9iPCJ1Iil7bGV0IHI9YXRvYih0KSxpPW5ldyBVaW50OEFycmF5KHIubGVuZ3RoKTtmb3IobGV0IGE9MDthPHIubGVuZ3RoO2ErKylpW2FdPXIuY2hhckNvZGVBdChhKTtyZXR1cm4gbmV3IFRleHREZWNvZGVyKCkuZGVjb2RlKGkpfWVsc2V7bGV0IHI9IkFCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFlaYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXowMTIzNDU2Nzg5Ky8iLGk9W10sYT0wO2Zvcig7YTx0Lmxlbmd0aDspe2xldCBuPXIuaW5kZXhPZih0LmNoYXJBdChhKyspKSxvPXIuaW5kZXhPZih0LmNoYXJBdChhKyspKSxzPXIuaW5kZXhPZih0LmNoYXJBdChhKyspKSxsPXIuaW5kZXhPZih0LmNoYXJBdChhKyspKSxjPW48PDE4fG88PDEyfHM8PDZ8bDtpLnB1c2goYz4+MTYmMjU1KSxzIT09NjQmJmkucHVzaChjPj44JjI1NSksbCE9PTY0JiZpLnB1c2goYyYyNTUpfXJldHVybiBuZXcgVGV4dERlY29kZXIoKS5kZWNvZGUobmV3IFVpbnQ4QXJyYXkoaSkpfX19LExUPWNsYXNze2NvbnN0cnVjdG9yKHQscil7c3dpdGNoKHIpe2Nhc2Uic3RyaW5nIjp0aGlzLnJlZlN0cmluZz10O2JyZWFrO2Nhc2UiYmFzZTY0Ijp0aGlzLnJlZlN0cmluZz1POC5kZWNvZGUodCk7YnJlYWs7Y2FzZSJiYXNlNjR1cmkiOnRoaXMucmVmU3RyaW5nPU84LmRlY29kZSh0KX19Z2V0IHNpbXBsZVN0cmluZygpe3JldHVybiB0aGlzLnJlZlN0cmluZ31nZXQgYmFzZTY0U3RyaW5nKCl7cmV0dXJuIE84LmVuY29kZSh0aGlzLnJlZlN0cmluZyl9Z2V0IGJhc2U2NFVyaVN0cmluZygpe3JldHVybiBPOC5lbmNvZGVVcmkodGhpcy5yZWZTdHJpbmcpfX0sTzg9e2VuY29kZTplPT5zSy5lbmNvZGUoZSksZW5jb2RlVXJpOmU9PnNLLmVuY29kZShlKS5yZXBsYWNlKC9cKy9nLCItIikucmVwbGFjZSgvXC8vZywiXyIpLnJlcGxhY2UoLz0vZywiIiksZGVjb2RlOmU9PnNLLmRlY29kZShlKSxpc0Jhc2U2NDplPT4vXihbQS1aYS16MC05Ky9dezR9KSooW0EtWmEtejAtOSsvXXszfT18W0EtWmEtejAtOSsvXXsyfT09KT8kLy50ZXN0KGUpfX0pO3ZhciBBVD17fTtGZShBVCx7aXNCYXNlNjQ6KCk9Pmwkcixpc1V0Zjg6KCk9PnMkcn0pO3ZhciBzJHIsbCRyLFpIZT1wKCgpPT57RjgoKTtsSygpO3Mkcj1lPT57bGV0IHI9bmV3IFRleHRFbmNvZGVyKCkuZW5jb2RlKGUpLGk9MDtmb3IoO2k8ci5sZW5ndGg7KXtpZihyW2ldPT09OXx8cltpXT09PTEwfHxyW2ldPT09MTN8fDMyPD1yW2ldJiZyW2ldPD0xMjYpe2krPTE7Y29udGludWV9aWYoMTk0PD1yW2ldJiZyW2ldPD0yMjMmJjEyODw9cltpKzFdJiZyW2krMV08PTE5MSl7aSs9Mjtjb250aW51ZX1pZihyW2ldPT09MjI0JiYxNjA8PXJbaSsxXSYmcltpKzFdPD0xOTEmJjEyODw9cltpKzJdJiZyW2krMl08PTE5MXx8KDIyNTw9cltpXSYmcltpXTw9MjM2fHxyW2ldPT09MjM4fHxyW2ldPT09MjM5KSYmMTI4PD1yW2krMV0mJnJbaSsxXTw9MTkxJiYxMjg8PXJbaSsyXSYmcltpKzJdPD0xOTF8fHJbaV09PT0yMzcmJjEyODw9cltpKzFdJiZyW2krMV08PTE1OSYmMTI4PD1yW2krMl0mJnJbaSsyXTw9MTkxKXtpKz0zO2NvbnRpbnVlfWlmKHJbaV09PT0yNDAmJjE0NDw9cltpKzFdJiZyW2krMV08PTE5MSYmMTI4PD1yW2krMl0mJnJbaSsyXTw9MTkxJiYxMjg8PXJbaSszXSYmcltpKzNdPD0xOTF8fDI0MTw9cltpXSYmcltpXTw9MjQzJiYxMjg8PXJbaSsxXSYmcltpKzFdPD0xOTEmJjEyODw9cltpKzJdJiZyW2krMl08PTE5MSYmMTI4PD1yW2krM10mJnJbaSszXTw9MTkxfHxyW2ldPT09MjQ0JiYxMjg8PXJbaSsxXSYmcltpKzFdPD0xNDMmJjEyODw9cltpKzJdJiZyW2krMl08PTE5MSYmMTI4PD1yW2krM10mJnJbaSszXTw9MTkxKXtpKz00O2NvbnRpbnVlfXJldHVybiExfXJldHVybiEwfSxsJHI9ZT0+e2xldCB0PS9bXkEtWjAtOStcLz1dL2kscj1lLmxlbmd0aDtpZighcnx8ciU0IT09MHx8dC50ZXN0KGUpKXJldHVybiExO2xldCBpPWUuaW5kZXhPZigiPSIpO3JldHVybiBpPT09LTF8fGk9PT1yLTF8fGk9PT1yLTImJmVbci0xXT09PSI9In19KTt2YXIgRFQsWEhlPXAoKCk9PntEVD1jbGFzc3tjb25zdHJ1Y3Rvcih0KXt0aGlzLnByb3RvY29sPXRoaXMuX3Byb3RvY29sUmVnZXgodCksdGhpcy5wcm90b2NvbHx8KHQ9YGh0dHBzOi8vJHt0fWApLHRoaXMubm9kZVBhcnNlZFVybD1uZXcgVVJMKHQpLHRoaXMucG9ydD10aGlzLm5vZGVQYXJzZWRVcmwucG9ydDtsZXQgcj10aGlzLl9kb21haW5SZWdleCh0LnJlcGxhY2UodGhpcy5ub2RlUGFyc2VkVXJsLnBhdGhuYW1lLCIiKSk7dGhpcy5mdWxsTmFtZT0iIjtmb3IobGV0IGk9MTtpPD01O2krKylpZihyW2ktMV0pe2xldCBhPXJbaS0xXTt0aGlzWyJsZXZlbCIraS50b1N0cmluZygpXT1hLHRoaXMuZnVsbE5hbWU9PT0iIj90aGlzLmZ1bGxOYW1lPWE6dGhpcy5mdWxsTmFtZT1hKyIuIit0aGlzLmZ1bGxOYW1lfWVsc2UgdGhpc1sibGV2ZWwiK2kudG9TdHJpbmcoKV09dm9pZCAwO3RoaXMuem9uZU5hbWU9dGhpcy5sZXZlbDIrIi4iK3RoaXMubGV2ZWwxLHRoaXMudG9wTGV2ZWw9dGhpcy5sZXZlbDEsdGhpcy5kb21haW5OYW1lPXRoaXMubGV2ZWwyLHRoaXMuc3ViRG9tYWluPXRoaXMubGV2ZWwzfV9kb21haW5SZWdleCh0KXtsZXQgaT0vKFthLXpBLVowLTlcLVxfXSopXC57MCwxfShbYS16QS1aMC05XC1cX10qKVwuezAsMX0oW2EtekEtWjAtOVwtXF9dKilcLnswLDF9KFthLXpBLVowLTlcLVxfXSopXC57MCwxfShbYS16QS1aMC05XC1cX10qKVwuezAsMX0kLy5leGVjKHQpO3JldHVybiBpLnJldmVyc2UoKSxpLnBvcCgpLGkuZmlsdGVyKGZ1bmN0aW9uKG4pe3JldHVybiBuIT09IiJ9KX1fcHJvdG9jb2xSZWdleCh0KXtsZXQgaT0vXihbYS16QS1aMC05XSopOlwvXC8vLmV4ZWModCk7aWYoaSlyZXR1cm4gaVsxXX1fcG9ydFJlZ2V4KHQpe2xldCBpPS9eKFthLXpBLVowLTldKik6XC9cLy8uZXhlYyh0KTtpZihpKXJldHVybiBpWzFdfX19KTt2YXIgRVQsYyRyLFFIZSxKSGU9cCgoKT0+e0Y4KCk7RVQ9Y2xhc3N7Y29uc3RydWN0b3IodCxyKXtsZXQgaT1jJHIodCk7dGhpcy5ob3N0PWlbMV0sdGhpcy51c2VyPWlbMl0sdGhpcy5yZXBvPWlbM10sdGhpcy5hY2Nlc3NUb2tlbj1yLHRoaXMuc3NoVXJsPVFIZSh0aGlzLmhvc3QsdGhpcy51c2VyLHRoaXMucmVwbyx0aGlzLmFjY2Vzc1Rva2VuLCJzc2giKSx0aGlzLmh0dHBzVXJsPVFIZSh0aGlzLmhvc3QsdGhpcy51c2VyLHRoaXMucmVwbyx0aGlzLmFjY2Vzc1Rva2VuLCJodHRwcyIpfX0sYyRyPWZ1bmN0aW9uKGUpe3JldHVybi8oW2EtekEtWjAtOVwtX1wuXSopKD86XC98XDopKFthLXpBLVowLTlcLV9cLl0qKSg/OlwvKShbYS16QS1aMC05XC1fXC5dKikoPzpcLmdpdCkvLmV4ZWMoZSl9LFFIZT1mdW5jdGlvbihlLHQscixpPSIiLGEpe2xldCBuO3N3aXRjaChpIT09IiImJihpPWkrIkAiKSxhKXtjYXNlImh0dHBzIjpuPSJodHRwczovLyIraStlKyIvIit0KyIvIityKyIuZ2l0IjticmVhaztjYXNlInNzaCI6bj0iZ2l0QCIrZSsiOiIrdCsiLyIrcisiLmdpdCI7YnJlYWs7ZGVmYXVsdDpjb25zb2xlLmVycm9yKCJMaW5rIFR5cGUgIithKyIgbm90IGtub3duIik7YnJlYWt9cmV0dXJuIG59fSk7dmFyIFFpPXt9O0ZlKFFpLHtCYXNlNjQ6KCk9PkxULERvbWFpbjooKT0+RFQsR2l0UmVwbzooKT0+RVQsYmFzZTY0OigpPT5POCxjcmVhdGU6KCk9PkNULGRvY2tlcjooKT0+VFQsaW5kZW50OigpPT5CNixub3JtYWxpemU6KCk9Pl9ULHR5cGU6KCk9PkFUfSk7dmFyIFI4PXAoKCk9PntWSGUoKTtVSGUoKTtXSGUoKTtZSGUoKTtaSGUoKTtsSygpO1hIZSgpO0pIZSgpfSk7dmFyIGtLPWplKChuOSxqOCk9Pnt2YXIgZCRyPTIwMCxLSGU9Il9fbG9kYXNoX2hhc2hfdW5kZWZpbmVkX18iLGVxZT05MDA3MTk5MjU0NzQwOTkxLGNLPSJbb2JqZWN0IEFyZ3VtZW50c10iLHUkcj0iW29iamVjdCBBcnJheV0iLHRxZT0iW29iamVjdCBCb29sZWFuXSIscnFlPSJbb2JqZWN0IERhdGVdIixwJHI9IltvYmplY3QgRXJyb3JdIixkSz0iW29iamVjdCBGdW5jdGlvbl0iLGlxZT0iW29iamVjdCBHZW5lcmF0b3JGdW5jdGlvbl0iLCRUPSJbb2JqZWN0IE1hcF0iLGFxZT0iW29iamVjdCBOdW1iZXJdIix1Sz0iW29iamVjdCBPYmplY3RdIixucWU9IltvYmplY3QgUHJvbWlzZV0iLG9xZT0iW29iamVjdCBSZWdFeHBdIixJVD0iW29iamVjdCBTZXRdIixzcWU9IltvYmplY3QgU3RyaW5nXSIsbHFlPSJbb2JqZWN0IFN5bWJvbF0iLHBLPSJbb2JqZWN0IFdlYWtNYXBdIixjcWU9IltvYmplY3QgQXJyYXlCdWZmZXJdIixQVD0iW29iamVjdCBEYXRhVmlld10iLGRxZT0iW29iamVjdCBGbG9hdDMyQXJyYXldIix1cWU9IltvYmplY3QgRmxvYXQ2NEFycmF5XSIscHFlPSJbb2JqZWN0IEludDhBcnJheV0iLGhxZT0iW29iamVjdCBJbnQxNkFycmF5XSIsZnFlPSJbb2JqZWN0IEludDMyQXJyYXldIixtcWU9IltvYmplY3QgVWludDhBcnJheV0iLGdxZT0iW29iamVjdCBVaW50OENsYW1wZWRBcnJheV0iLGJxZT0iW29iamVjdCBVaW50MTZBcnJheV0iLHZxZT0iW29iamVjdCBVaW50MzJBcnJheV0iLGgkcj0vW1xcXiQuKis/KClbXF17fXxdL2csZiRyPS9cdyokLyxtJHI9L15cW29iamVjdCAuKz9Db25zdHJ1Y3RvclxdJC8sZyRyPS9eKD86MHxbMS05XVxkKikkLyxhMT17fTthMVtjS109YTFbdSRyXT1hMVtjcWVdPWExW1BUXT1hMVt0cWVdPWExW3JxZV09YTFbZHFlXT1hMVt1cWVdPWExW3BxZV09YTFbaHFlXT1hMVtmcWVdPWExWyRUXT1hMVthcWVdPWExW3VLXT1hMVtvcWVdPWExW0lUXT1hMVtzcWVdPWExW2xxZV09YTFbbXFlXT1hMVtncWVdPWExW2JxZV09YTFbdnFlXT0hMCxhMVtwJHJdPWExW2RLXT1hMVtwS109ITE7dmFyIGIkcj10eXBlb2YgZ2xvYmFsPT0ib2JqZWN0IiYmZ2xvYmFsJiZnbG9iYWwuT2JqZWN0PT09T2JqZWN0JiZnbG9iYWwsdiRyPXR5cGVvZiBzZWxmPT0ib2JqZWN0IiYmc2VsZiYmc2VsZi5PYmplY3Q9PT1PYmplY3QmJnNlbGYsWGw9YiRyfHx2JHJ8fEZ1bmN0aW9uKCJyZXR1cm4gdGhpcyIpKCkseHFlPXR5cGVvZiBuOT09Im9iamVjdCImJm45JiYhbjkubm9kZVR5cGUmJm45LHlxZT14cWUmJnR5cGVvZiBqOD09Im9iamVjdCImJmo4JiYhajgubm9kZVR5cGUmJmo4LHgkcj15cWUmJnlxZS5leHBvcnRzPT09eHFlO2Z1bmN0aW9uIHkkcihlLHQpe3JldHVybiBlLnNldCh0WzBdLHRbMV0pLGV9ZnVuY3Rpb24gdyRyKGUsdCl7cmV0dXJuIGUuYWRkKHQpLGV9ZnVuY3Rpb24gTSRyKGUsdCl7Zm9yKHZhciByPS0xLGk9ZT9lLmxlbmd0aDowOysrcjxpJiZ0KGVbcl0scixlKSE9PSExOyk7cmV0dXJuIGV9ZnVuY3Rpb24gayRyKGUsdCl7Zm9yKHZhciByPS0xLGk9dC5sZW5ndGgsYT1lLmxlbmd0aDsrK3I8aTspZVthK3JdPXRbcl07cmV0dXJuIGV9ZnVuY3Rpb24gd3FlKGUsdCxyLGkpe3ZhciBhPS0xLG49ZT9lLmxlbmd0aDowO2ZvcihpJiZuJiYocj1lWysrYV0pOysrYTxuOylyPXQocixlW2FdLGEsZSk7cmV0dXJuIHJ9ZnVuY3Rpb24gUyRyKGUsdCl7Zm9yKHZhciByPS0xLGk9QXJyYXkoZSk7KytyPGU7KWlbcl09dChyKTtyZXR1cm4gaX1mdW5jdGlvbiB6JHIoZSx0KXtyZXR1cm4gZT8uW3RdfWZ1bmN0aW9uIE1xZShlKXt2YXIgdD0hMTtpZihlIT1udWxsJiZ0eXBlb2YgZS50b1N0cmluZyE9ImZ1bmN0aW9uIil0cnl7dD0hIShlKyIiKX1jYXRjaHt9cmV0dXJuIHR9ZnVuY3Rpb24ga3FlKGUpe3ZhciB0PS0xLHI9QXJyYXkoZS5zaXplKTtyZXR1cm4gZS5mb3JFYWNoKGZ1bmN0aW9uKGksYSl7clsrK3RdPVthLGldfSkscn1mdW5jdGlvbiBoSyhlLHQpe3JldHVybiBmdW5jdGlvbihyKXtyZXR1cm4gZSh0KHIpKX19ZnVuY3Rpb24gU3FlKGUpe3ZhciB0PS0xLHI9QXJyYXkoZS5zaXplKTtyZXR1cm4gZS5mb3JFYWNoKGZ1bmN0aW9uKGkpe3JbKyt0XT1pfSkscn12YXIgQyRyPUFycmF5LnByb3RvdHlwZSxUJHI9RnVuY3Rpb24ucHJvdG90eXBlLE5UPU9iamVjdC5wcm90b3R5cGUsZks9WGxbIl9fY29yZS1qc19zaGFyZWRfXyJdLHpxZT0oZnVuY3Rpb24oKXt2YXIgZT0vW14uXSskLy5leGVjKGZLJiZmSy5rZXlzJiZmSy5rZXlzLklFX1BST1RPfHwiIik7cmV0dXJuIGU/IlN5bWJvbChzcmMpXzEuIitlOiIifSkoKSxDcWU9VCRyLnRvU3RyaW5nLGk0PU5ULmhhc093blByb3BlcnR5LEZUPU5ULnRvU3RyaW5nLF8kcj1SZWdFeHAoIl4iK0NxZS5jYWxsKGk0KS5yZXBsYWNlKGgkciwiXFwkJiIpLnJlcGxhY2UoL2hhc093blByb3BlcnR5fChmdW5jdGlvbikuKj8oPz1cXFwoKXwgZm9yIC4rPyg/PVxcXF0pL2csIiQxLio/IikrIiQiKSxUcWU9eCRyP1hsLkJ1ZmZlcjp2b2lkIDAsX3FlPVhsLlN5bWJvbCxMcWU9WGwuVWludDhBcnJheSxMJHI9aEsoT2JqZWN0LmdldFByb3RvdHlwZU9mLE9iamVjdCksQSRyPU9iamVjdC5jcmVhdGUsRCRyPU5ULnByb3BlcnR5SXNFbnVtZXJhYmxlLEUkcj1DJHIuc3BsaWNlLEFxZT1PYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzLCQkcj1UcWU/VHFlLmlzQnVmZmVyOnZvaWQgMCxJJHI9aEsoT2JqZWN0LmtleXMsT2JqZWN0KSxtSz1xOChYbCwiRGF0YVZpZXciKSxpOT1xOChYbCwiTWFwIiksZ0s9cTgoWGwsIlByb21pc2UiKSxiSz1xOChYbCwiU2V0Iiksdks9cTgoWGwsIldlYWtNYXAiKSxhOT1xOChPYmplY3QsImNyZWF0ZSIpLFAkcj1qNihtSyksTiRyPWo2KGk5KSxGJHI9ajYoZ0spLE8kcj1qNihiSyksUiRyPWo2KHZLKSxEcWU9X3FlP19xZS5wcm90b3R5cGU6dm9pZCAwLEVxZT1EcWU/RHFlLnZhbHVlT2Y6dm9pZCAwO2Z1bmN0aW9uIEg2KGUpe3ZhciB0PS0xLHI9ZT9lLmxlbmd0aDowO2Zvcih0aGlzLmNsZWFyKCk7Kyt0PHI7KXt2YXIgaT1lW3RdO3RoaXMuc2V0KGlbMF0saVsxXSl9fWZ1bmN0aW9uIEIkcigpe3RoaXMuX19kYXRhX189YTk/YTkobnVsbCk6e319ZnVuY3Rpb24gSCRyKGUpe3JldHVybiB0aGlzLmhhcyhlKSYmZGVsZXRlIHRoaXMuX19kYXRhX19bZV19ZnVuY3Rpb24gcSRyKGUpe3ZhciB0PXRoaXMuX19kYXRhX187aWYoYTkpe3ZhciByPXRbZV07cmV0dXJuIHI9PT1LSGU/dm9pZCAwOnJ9cmV0dXJuIGk0LmNhbGwodCxlKT90W2VdOnZvaWQgMH1mdW5jdGlvbiBqJHIoZSl7dmFyIHQ9dGhpcy5fX2RhdGFfXztyZXR1cm4gYTk/dFtlXSE9PXZvaWQgMDppNC5jYWxsKHQsZSl9ZnVuY3Rpb24gViRyKGUsdCl7dmFyIHI9dGhpcy5fX2RhdGFfXztyZXR1cm4gcltlXT1hOSYmdD09PXZvaWQgMD9LSGU6dCx0aGlzfUg2LnByb3RvdHlwZS5jbGVhcj1CJHIsSDYucHJvdG90eXBlLmRlbGV0ZT1IJHIsSDYucHJvdG90eXBlLmdldD1xJHIsSDYucHJvdG90eXBlLmhhcz1qJHIsSDYucHJvdG90eXBlLnNldD1WJHI7ZnVuY3Rpb24gUWwoZSl7dmFyIHQ9LTEscj1lP2UubGVuZ3RoOjA7Zm9yKHRoaXMuY2xlYXIoKTsrK3Q8cjspe3ZhciBpPWVbdF07dGhpcy5zZXQoaVswXSxpWzFdKX19ZnVuY3Rpb24gVSRyKCl7dGhpcy5fX2RhdGFfXz1bXX1mdW5jdGlvbiBXJHIoZSl7dmFyIHQ9dGhpcy5fX2RhdGFfXyxyPU9UKHQsZSk7aWYocjwwKXJldHVybiExO3ZhciBpPXQubGVuZ3RoLTE7cmV0dXJuIHI9PWk/dC5wb3AoKTpFJHIuY2FsbCh0LHIsMSksITB9ZnVuY3Rpb24gRyRyKGUpe3ZhciB0PXRoaXMuX19kYXRhX18scj1PVCh0LGUpO3JldHVybiByPDA/dm9pZCAwOnRbcl1bMV19ZnVuY3Rpb24gWSRyKGUpe3JldHVybiBPVCh0aGlzLl9fZGF0YV9fLGUpPi0xfWZ1bmN0aW9uIFokcihlLHQpe3ZhciByPXRoaXMuX19kYXRhX18saT1PVChyLGUpO3JldHVybiBpPDA/ci5wdXNoKFtlLHRdKTpyW2ldWzFdPXQsdGhpc31RbC5wcm90b3R5cGUuY2xlYXI9VSRyLFFsLnByb3RvdHlwZS5kZWxldGU9VyRyLFFsLnByb3RvdHlwZS5nZXQ9RyRyLFFsLnByb3RvdHlwZS5oYXM9WSRyLFFsLnByb3RvdHlwZS5zZXQ9WiRyO2Z1bmN0aW9uIEI4KGUpe3ZhciB0PS0xLHI9ZT9lLmxlbmd0aDowO2Zvcih0aGlzLmNsZWFyKCk7Kyt0PHI7KXt2YXIgaT1lW3RdO3RoaXMuc2V0KGlbMF0saVsxXSl9fWZ1bmN0aW9uIFgkcigpe3RoaXMuX19kYXRhX189e2hhc2g6bmV3IEg2LG1hcDpuZXcoaTl8fFFsKSxzdHJpbmc6bmV3IEg2fX1mdW5jdGlvbiBRJHIoZSl7cmV0dXJuIFJUKHRoaXMsZSkuZGVsZXRlKGUpfWZ1bmN0aW9uIEokcihlKXtyZXR1cm4gUlQodGhpcyxlKS5nZXQoZSl9ZnVuY3Rpb24gSyRyKGUpe3JldHVybiBSVCh0aGlzLGUpLmhhcyhlKX1mdW5jdGlvbiBlSXIoZSx0KXtyZXR1cm4gUlQodGhpcyxlKS5zZXQoZSx0KSx0aGlzfUI4LnByb3RvdHlwZS5jbGVhcj1YJHIsQjgucHJvdG90eXBlLmRlbGV0ZT1RJHIsQjgucHJvdG90eXBlLmdldD1KJHIsQjgucHJvdG90eXBlLmhhcz1LJHIsQjgucHJvdG90eXBlLnNldD1lSXI7ZnVuY3Rpb24gSDgoZSl7dGhpcy5fX2RhdGFfXz1uZXcgUWwoZSl9ZnVuY3Rpb24gdElyKCl7dGhpcy5fX2RhdGFfXz1uZXcgUWx9ZnVuY3Rpb24gcklyKGUpe3JldHVybiB0aGlzLl9fZGF0YV9fLmRlbGV0ZShlKX1mdW5jdGlvbiBpSXIoZSl7cmV0dXJuIHRoaXMuX19kYXRhX18uZ2V0KGUpfWZ1bmN0aW9uIGFJcihlKXtyZXR1cm4gdGhpcy5fX2RhdGFfXy5oYXMoZSl9ZnVuY3Rpb24gbklyKGUsdCl7dmFyIHI9dGhpcy5fX2RhdGFfXztpZihyIGluc3RhbmNlb2YgUWwpe3ZhciBpPXIuX19kYXRhX187aWYoIWk5fHxpLmxlbmd0aDxkJHItMSlyZXR1cm4gaS5wdXNoKFtlLHRdKSx0aGlzO3I9dGhpcy5fX2RhdGFfXz1uZXcgQjgoaSl9cmV0dXJuIHIuc2V0KGUsdCksdGhpc31IOC5wcm90b3R5cGUuY2xlYXI9dElyLEg4LnByb3RvdHlwZS5kZWxldGU9cklyLEg4LnByb3RvdHlwZS5nZXQ9aUlyLEg4LnByb3RvdHlwZS5oYXM9YUlyLEg4LnByb3RvdHlwZS5zZXQ9bklyO2Z1bmN0aW9uIG9JcihlLHQpe3ZhciByPXdLKGUpfHxBSXIoZSk/UyRyKGUubGVuZ3RoLFN0cmluZyk6W10saT1yLmxlbmd0aCxhPSEhaTtmb3IodmFyIG4gaW4gZSkodHx8aTQuY2FsbChlLG4pKSYmIShhJiYobj09Imxlbmd0aCJ8fENJcihuLGkpKSkmJnIucHVzaChuKTtyZXR1cm4gcn1mdW5jdGlvbiAkcWUoZSx0LHIpe3ZhciBpPWVbdF07KCEoaTQuY2FsbChlLHQpJiZGcWUoaSxyKSl8fHI9PT12b2lkIDAmJiEodCBpbiBlKSkmJihlW3RdPXIpfWZ1bmN0aW9uIE9UKGUsdCl7Zm9yKHZhciByPWUubGVuZ3RoO3ItLTspaWYoRnFlKGVbcl1bMF0sdCkpcmV0dXJuIHI7cmV0dXJuLTF9ZnVuY3Rpb24gc0lyKGUsdCl7cmV0dXJuIGUmJklxZSh0LE1LKHQpLGUpfWZ1bmN0aW9uIHhLKGUsdCxyLGksYSxuLG8pe3ZhciBzO2lmKGkmJihzPW4/aShlLGEsbixvKTppKGUpKSxzIT09dm9pZCAwKXJldHVybiBzO2lmKCFCVChlKSlyZXR1cm4gZTt2YXIgbD13SyhlKTtpZihsKXtpZihzPWtJcihlKSwhdClyZXR1cm4geUlyKGUscyl9ZWxzZXt2YXIgYz1xNihlKSx1PWM9PWRLfHxjPT1pcWU7aWYoRUlyKGUpKXJldHVybiBoSXIoZSx0KTtpZihjPT11S3x8Yz09Y0t8fHUmJiFuKXtpZihNcWUoZSkpcmV0dXJuIG4/ZTp7fTtpZihzPVNJcih1P3t9OmUpLCF0KXJldHVybiB3SXIoZSxzSXIocyxlKSl9ZWxzZXtpZighYTFbY10pcmV0dXJuIG4/ZTp7fTtzPXpJcihlLGMseEssdCl9fW98fChvPW5ldyBIOCk7dmFyIGQ9by5nZXQoZSk7aWYoZClyZXR1cm4gZDtpZihvLnNldChlLHMpLCFsKXZhciBoPXI/TUlyKGUpOk1LKGUpO3JldHVybiBNJHIoaHx8ZSxmdW5jdGlvbihmLHgpe2gmJih4PWYsZj1lW3hdKSwkcWUocyx4LHhLKGYsdCxyLGkseCxlLG8pKX0pLHN9ZnVuY3Rpb24gbElyKGUpe3JldHVybiBCVChlKT9BJHIoZSk6e319ZnVuY3Rpb24gY0lyKGUsdCxyKXt2YXIgaT10KGUpO3JldHVybiB3SyhlKT9pOmskcihpLHIoZSkpfWZ1bmN0aW9uIGRJcihlKXtyZXR1cm4gRlQuY2FsbChlKX1mdW5jdGlvbiB1SXIoZSl7aWYoIUJUKGUpfHxfSXIoZSkpcmV0dXJuITE7dmFyIHQ9UnFlKGUpfHxNcWUoZSk/XyRyOm0kcjtyZXR1cm4gdC50ZXN0KGo2KGUpKX1mdW5jdGlvbiBwSXIoZSl7aWYoIU5xZShlKSlyZXR1cm4gSSRyKGUpO3ZhciB0PVtdO2Zvcih2YXIgciBpbiBPYmplY3QoZSkpaTQuY2FsbChlLHIpJiZyIT0iY29uc3RydWN0b3IiJiZ0LnB1c2gocik7cmV0dXJuIHR9ZnVuY3Rpb24gaElyKGUsdCl7aWYodClyZXR1cm4gZS5zbGljZSgpO3ZhciByPW5ldyBlLmNvbnN0cnVjdG9yKGUubGVuZ3RoKTtyZXR1cm4gZS5jb3B5KHIpLHJ9ZnVuY3Rpb24geUsoZSl7dmFyIHQ9bmV3IGUuY29uc3RydWN0b3IoZS5ieXRlTGVuZ3RoKTtyZXR1cm4gbmV3IExxZSh0KS5zZXQobmV3IExxZShlKSksdH1mdW5jdGlvbiBmSXIoZSx0KXt2YXIgcj10P3lLKGUuYnVmZmVyKTplLmJ1ZmZlcjtyZXR1cm4gbmV3IGUuY29uc3RydWN0b3IocixlLmJ5dGVPZmZzZXQsZS5ieXRlTGVuZ3RoKX1mdW5jdGlvbiBtSXIoZSx0LHIpe3ZhciBpPXQ/cihrcWUoZSksITApOmtxZShlKTtyZXR1cm4gd3FlKGkseSRyLG5ldyBlLmNvbnN0cnVjdG9yKX1mdW5jdGlvbiBnSXIoZSl7dmFyIHQ9bmV3IGUuY29uc3RydWN0b3IoZS5zb3VyY2UsZiRyLmV4ZWMoZSkpO3JldHVybiB0Lmxhc3RJbmRleD1lLmxhc3RJbmRleCx0fWZ1bmN0aW9uIGJJcihlLHQscil7dmFyIGk9dD9yKFNxZShlKSwhMCk6U3FlKGUpO3JldHVybiB3cWUoaSx3JHIsbmV3IGUuY29uc3RydWN0b3IpfWZ1bmN0aW9uIHZJcihlKXtyZXR1cm4gRXFlP09iamVjdChFcWUuY2FsbChlKSk6e319ZnVuY3Rpb24geElyKGUsdCl7dmFyIHI9dD95SyhlLmJ1ZmZlcik6ZS5idWZmZXI7cmV0dXJuIG5ldyBlLmNvbnN0cnVjdG9yKHIsZS5ieXRlT2Zmc2V0LGUubGVuZ3RoKX1mdW5jdGlvbiB5SXIoZSx0KXt2YXIgcj0tMSxpPWUubGVuZ3RoO2Zvcih0fHwodD1BcnJheShpKSk7KytyPGk7KXRbcl09ZVtyXTtyZXR1cm4gdH1mdW5jdGlvbiBJcWUoZSx0LHIsaSl7cnx8KHI9e30pO2Zvcih2YXIgYT0tMSxuPXQubGVuZ3RoOysrYTxuOyl7dmFyIG89dFthXSxzPWk/aShyW29dLGVbb10sbyxyLGUpOnZvaWQgMDskcWUocixvLHM9PT12b2lkIDA/ZVtvXTpzKX1yZXR1cm4gcn1mdW5jdGlvbiB3SXIoZSx0KXtyZXR1cm4gSXFlKGUsUHFlKGUpLHQpfWZ1bmN0aW9uIE1JcihlKXtyZXR1cm4gY0lyKGUsTUssUHFlKX1mdW5jdGlvbiBSVChlLHQpe3ZhciByPWUuX19kYXRhX187cmV0dXJuIFRJcih0KT9yW3R5cGVvZiB0PT0ic3RyaW5nIj8ic3RyaW5nIjoiaGFzaCJdOnIubWFwfWZ1bmN0aW9uIHE4KGUsdCl7dmFyIHI9eiRyKGUsdCk7cmV0dXJuIHVJcihyKT9yOnZvaWQgMH12YXIgUHFlPUFxZT9oSyhBcWUsT2JqZWN0KTpQSXIscTY9ZElyOyhtSyYmcTYobmV3IG1LKG5ldyBBcnJheUJ1ZmZlcigxKSkpIT1QVHx8aTkmJnE2KG5ldyBpOSkhPSRUfHxnSyYmcTYoZ0sucmVzb2x2ZSgpKSE9bnFlfHxiSyYmcTYobmV3IGJLKSE9SVR8fHZLJiZxNihuZXcgdkspIT1wSykmJihxNj1mdW5jdGlvbihlKXt2YXIgdD1GVC5jYWxsKGUpLHI9dD09dUs/ZS5jb25zdHJ1Y3Rvcjp2b2lkIDAsaT1yP2o2KHIpOnZvaWQgMDtpZihpKXN3aXRjaChpKXtjYXNlIFAkcjpyZXR1cm4gUFQ7Y2FzZSBOJHI6cmV0dXJuICRUO2Nhc2UgRiRyOnJldHVybiBucWU7Y2FzZSBPJHI6cmV0dXJuIElUO2Nhc2UgUiRyOnJldHVybiBwS31yZXR1cm4gdH0pO2Z1bmN0aW9uIGtJcihlKXt2YXIgdD1lLmxlbmd0aCxyPWUuY29uc3RydWN0b3IodCk7cmV0dXJuIHQmJnR5cGVvZiBlWzBdPT0ic3RyaW5nIiYmaTQuY2FsbChlLCJpbmRleCIpJiYoci5pbmRleD1lLmluZGV4LHIuaW5wdXQ9ZS5pbnB1dCkscn1mdW5jdGlvbiBTSXIoZSl7cmV0dXJuIHR5cGVvZiBlLmNvbnN0cnVjdG9yPT0iZnVuY3Rpb24iJiYhTnFlKGUpP2xJcihMJHIoZSkpOnt9fWZ1bmN0aW9uIHpJcihlLHQscixpKXt2YXIgYT1lLmNvbnN0cnVjdG9yO3N3aXRjaCh0KXtjYXNlIGNxZTpyZXR1cm4geUsoZSk7Y2FzZSB0cWU6Y2FzZSBycWU6cmV0dXJuIG5ldyBhKCtlKTtjYXNlIFBUOnJldHVybiBmSXIoZSxpKTtjYXNlIGRxZTpjYXNlIHVxZTpjYXNlIHBxZTpjYXNlIGhxZTpjYXNlIGZxZTpjYXNlIG1xZTpjYXNlIGdxZTpjYXNlIGJxZTpjYXNlIHZxZTpyZXR1cm4geElyKGUsaSk7Y2FzZSAkVDpyZXR1cm4gbUlyKGUsaSxyKTtjYXNlIGFxZTpjYXNlIHNxZTpyZXR1cm4gbmV3IGEoZSk7Y2FzZSBvcWU6cmV0dXJuIGdJcihlKTtjYXNlIElUOnJldHVybiBiSXIoZSxpLHIpO2Nhc2UgbHFlOnJldHVybiB2SXIoZSl9fWZ1bmN0aW9uIENJcihlLHQpe3JldHVybiB0PXQ/P2VxZSwhIXQmJih0eXBlb2YgZT09Im51bWJlciJ8fGckci50ZXN0KGUpKSYmZT4tMSYmZSUxPT0wJiZlPHR9ZnVuY3Rpb24gVElyKGUpe3ZhciB0PXR5cGVvZiBlO3JldHVybiB0PT0ic3RyaW5nInx8dD09Im51bWJlciJ8fHQ9PSJzeW1ib2wifHx0PT0iYm9vbGVhbiI/ZSE9PSJfX3Byb3RvX18iOmU9PT1udWxsfWZ1bmN0aW9uIF9JcihlKXtyZXR1cm4hIXpxZSYmenFlIGluIGV9ZnVuY3Rpb24gTnFlKGUpe3ZhciB0PWUmJmUuY29uc3RydWN0b3Iscj10eXBlb2YgdD09ImZ1bmN0aW9uIiYmdC5wcm90b3R5cGV8fE5UO3JldHVybiBlPT09cn1mdW5jdGlvbiBqNihlKXtpZihlIT1udWxsKXt0cnl7cmV0dXJuIENxZS5jYWxsKGUpfWNhdGNoe310cnl7cmV0dXJuIGUrIiJ9Y2F0Y2h7fX1yZXR1cm4iIn1mdW5jdGlvbiBMSXIoZSl7cmV0dXJuIHhLKGUsITAsITApfWZ1bmN0aW9uIEZxZShlLHQpe3JldHVybiBlPT09dHx8ZSE9PWUmJnQhPT10fWZ1bmN0aW9uIEFJcihlKXtyZXR1cm4gRElyKGUpJiZpNC5jYWxsKGUsImNhbGxlZSIpJiYoIUQkci5jYWxsKGUsImNhbGxlZSIpfHxGVC5jYWxsKGUpPT1jSyl9dmFyIHdLPUFycmF5LmlzQXJyYXk7ZnVuY3Rpb24gT3FlKGUpe3JldHVybiBlIT1udWxsJiYkSXIoZS5sZW5ndGgpJiYhUnFlKGUpfWZ1bmN0aW9uIERJcihlKXtyZXR1cm4gSUlyKGUpJiZPcWUoZSl9dmFyIEVJcj0kJHJ8fE5JcjtmdW5jdGlvbiBScWUoZSl7dmFyIHQ9QlQoZSk/RlQuY2FsbChlKToiIjtyZXR1cm4gdD09ZEt8fHQ9PWlxZX1mdW5jdGlvbiAkSXIoZSl7cmV0dXJuIHR5cGVvZiBlPT0ibnVtYmVyIiYmZT4tMSYmZSUxPT0wJiZlPD1lcWV9ZnVuY3Rpb24gQlQoZSl7dmFyIHQ9dHlwZW9mIGU7cmV0dXJuISFlJiYodD09Im9iamVjdCJ8fHQ9PSJmdW5jdGlvbiIpfWZ1bmN0aW9uIElJcihlKXtyZXR1cm4hIWUmJnR5cGVvZiBlPT0ib2JqZWN0In1mdW5jdGlvbiBNSyhlKXtyZXR1cm4gT3FlKGUpP29JcihlKTpwSXIoZSl9ZnVuY3Rpb24gUElyKCl7cmV0dXJuW119ZnVuY3Rpb24gTklyKCl7cmV0dXJuITF9ajguZXhwb3J0cz1MSXJ9KTt2YXIgU0s9amUoKGFEaSxCcWUpPT57InVzZSBzdHJpY3QiO0JxZS5leHBvcnRzPWZ1bmN0aW9uKGUsdCl7dHx8KHQ9e30pLHR5cGVvZiB0PT0iZnVuY3Rpb24iJiYodD17Y21wOnR9KTt2YXIgcj10eXBlb2YgdC5jeWNsZXM9PSJib29sZWFuIj90LmN5Y2xlczohMSxpPXQuY21wJiYoZnVuY3Rpb24obil7cmV0dXJuIGZ1bmN0aW9uKG8pe3JldHVybiBmdW5jdGlvbihzLGwpe3ZhciBjPXtrZXk6cyx2YWx1ZTpvW3NdfSx1PXtrZXk6bCx2YWx1ZTpvW2xdfTtyZXR1cm4gbihjLHUpfX19KSh0LmNtcCksYT1bXTtyZXR1cm4oZnVuY3Rpb24gbihvKXtpZihvJiZvLnRvSlNPTiYmdHlwZW9mIG8udG9KU09OPT0iZnVuY3Rpb24iJiYobz1vLnRvSlNPTigpKSxvIT09dm9pZCAwKXtpZih0eXBlb2Ygbz09Im51bWJlciIpcmV0dXJuIGlzRmluaXRlKG8pPyIiK286Im51bGwiO2lmKHR5cGVvZiBvIT0ib2JqZWN0IilyZXR1cm4gSlNPTi5zdHJpbmdpZnkobyk7dmFyIHMsbDtpZihBcnJheS5pc0FycmF5KG8pKXtmb3IobD0iWyIscz0wO3M8by5sZW5ndGg7cysrKXMmJihsKz0iLCIpLGwrPW4ob1tzXSl8fCJudWxsIjtyZXR1cm4gbCsiXSJ9aWYobz09PW51bGwpcmV0dXJuIm51bGwiO2lmKGEuaW5kZXhPZihvKSE9PS0xKXtpZihyKXJldHVybiBKU09OLnN0cmluZ2lmeSgiX19jeWNsZV9fIik7dGhyb3cgbmV3IFR5cGVFcnJvcigiQ29udmVydGluZyBjaXJjdWxhciBzdHJ1Y3R1cmUgdG8gSlNPTiIpfXZhciBjPWEucHVzaChvKS0xLHU9T2JqZWN0LmtleXMobykuc29ydChpJiZpKG8pKTtmb3IobD0iIixzPTA7czx1Lmxlbmd0aDtzKyspe3ZhciBkPXVbc10saD1uKG9bZF0pO2gmJihsJiYobCs9IiwiKSxsKz1KU09OLnN0cmluZ2lmeShkKSsiOiIraCl9cmV0dXJuIGEuc3BsaWNlKGMsMSksInsiK2wrIn0ifX0pKGUpfX0pO3ZhciBIVCxIcWUscVQseks9cCgoKT0+e044KCk7UjgoKTtIVD1lcihrSygpLDEpLEhxZT1lcihTSygpLDEpLHFUPUhxZS5kZWZhdWx0fSk7ZnVuY3Rpb24gT0lyKGUpe3JldHVybiB0eXBlb2YgQnVmZmVyPCJ1Ij9CdWZmZXIuZnJvbShlKS50b1N0cmluZygiYmFzZTY0Iik6YnRvYShTdHJpbmcuZnJvbUNoYXJDb2RlKC4uLmUpKX1mdW5jdGlvbiBSSXIoZSl7aWYodHlwZW9mIEJ1ZmZlcjwidSIpe2xldCB0PUJ1ZmZlci5mcm9tKGUsImJhc2U2NCIpO3JldHVybiBuZXcgVWludDhBcnJheSh0LmJ1ZmZlcix0LmJ5dGVPZmZzZXQsdC5ieXRlTGVuZ3RoKX1yZXR1cm4gbmV3IFVpbnQ4QXJyYXkoQXJyYXkuZnJvbShhdG9iKGUpKS5tYXAodD0+dC5jaGFyQ29kZUF0KDApKSl9ZnVuY3Rpb24gVEsoZSx0KXtyZXR1cm4gSlNPTi5zdHJpbmdpZnkoZSxqVCx0KX1mdW5jdGlvbiBfSyhlKXtyZXR1cm4gSlNPTi5wYXJzZShlLHFxZSl9ZnVuY3Rpb24gQklyKGUpe3JldHVybiBWcWUoZSkmJmUudHlwZT09PSJFbmNvZGVkQnVmZmVyIiYmQ0soZS5kYXRhKX1mdW5jdGlvbiBISXIoZSl7cmV0dXJuIFZxZShlKSYmZS50eXBlPT09IkJ1ZmZlciImJihqcWUoZS5kYXRhKXx8Q0soZS5kYXRhKSl8fGUgaW5zdGFuY2VvZiBVaW50OEFycmF5fWZ1bmN0aW9uIGpxZShlKXtyZXR1cm4gQXJyYXkuaXNBcnJheShlKX1mdW5jdGlvbiBDSyhlKXtyZXR1cm4gdHlwZW9mIGU9PSJzdHJpbmcifWZ1bmN0aW9uIFZxZShlKXtyZXR1cm4gdHlwZW9mIGU9PSJvYmplY3QiJiZlIT09bnVsbH12YXIgalQscXFlLFVxZT1wKCgpPT57eksoKTtqVD0oZSx0KT0+e2lmKEhJcih0KSl7bGV0IHI7aWYoImRhdGEiaW4gdCYmanFlKHQuZGF0YSkpcj1uZXcgVWludDhBcnJheSh0LmRhdGEpO2Vsc2UgaWYodCBpbnN0YW5jZW9mIFVpbnQ4QXJyYXkpcj10O2Vsc2UgcmV0dXJuIHQ7cmV0dXJue3R5cGU6IkVuY29kZWRCdWZmZXIiLGRhdGE6ImJhc2U2NDoiK09JcihyKX19cmV0dXJuIHR9LHFxZT0oZSx0KT0+e2lmKEJJcih0KSYmQ0sodC5kYXRhKSYmdC5kYXRhLnN0YXJ0c1dpdGgoImJhc2U2NDoiKSl7bGV0IHI9dC5kYXRhLnNsaWNlKDcpO3JldHVybiBSSXIocil9cmV0dXJuIHR9fSk7dmFyIHkxPXt9O0ZlKHkxLHtTbWFydGpzb246KCk9PkFLLGRlZXBFcXVhbEpzb25MU3RyaW5nczooKT0+WklyLGRlZXBFcXVhbE9iamVjdHM6KCk9PldxZSxmb2xkRGVjOigpPT5ZSXIscGFyc2U6KCk9PlZULHBhcnNlQmFzZTY0OigpPT5HSXIscGFyc2VKc29uTDooKT0+TEssc3RhYmxlT25lV2F5U3RyaW5naWZ5OigpPT5WSXIsc3RyaW5naWZ5OigpPT5WNixzdHJpbmdpZnlCYXNlNjQ6KCk9PldJcixzdHJpbmdpZnlKc29uTDooKT0+aklyLHN0cmluZ2lmeVByZXR0eTooKT0+VUlyfSk7dmFyIFZULExLLGpJcixWSXIsVjYsVUlyLFdJcixHSXIsQUssWUlyLFdxZSxaSXIsVjg9cCgoKT0+e3pLKCk7VXFlKCk7VlQ9X0ssTEs9ZT0+ZS5zcGxpdChgCmApLnJlZHVjZSgoaSxhKT0+e2xldCBuPWEudHJpbSgpO3JldHVybiBuLmxlbmd0aD4wJiZpLnB1c2goVlQobikpLGl9LFtdKSxqSXI9ZT0+ZS5tYXAodD0+VjYodCkpLmpvaW4oYApgKSxWSXI9KGUsdCxyPXt9KT0+e2xldCBpPW5ldyBXZWFrU2V0LGE9cz0+e2lmKHM9PT1udWxsfHx0eXBlb2YgcyE9Im9iamVjdCIpcmV0dXJuIHM7bGV0IGw9alQoIiIscyk7aWYobCYmbC50eXBlPT09IkVuY29kZWRCdWZmZXIiJiZ0eXBlb2YgbC5kYXRhPT0ic3RyaW5nIilyZXR1cm4gbDtpZihpLmhhcyhzKSlyZXR1cm4iX19jeWNsZV9fIjtpZihpLmFkZChzKSxBcnJheS5pc0FycmF5KHMpKXJldHVybiBzLm1hcCh1PT5hKHUpKTtsZXQgYz17fTtmb3IobGV0IHUgb2YgT2JqZWN0LmtleXMocykpdHJ5e2NbdV09YShzW3VdKX1jYXRjaHtjW3VdPSJfX3Vuc2VyaWFsaXphYmxlX18ifXJldHVybiBjfSxuPWEoZSksbz17Li4ucixjeWNsZXM6ITB9O2lmKHQmJiFvLmNtcCl7bGV0IHM9bmV3IE1hcDt0LmZvckVhY2goKGwsYyk9PnMuc2V0KGwsYykpLG8uY21wPShsLGMpPT57bGV0IHU9cy5oYXMobC5rZXkpP3MuZ2V0KGwua2V5KTpOdW1iZXIuUE9TSVRJVkVfSU5GSU5JVFksZD1zLmhhcyhjLmtleSk/cy5nZXQoYy5rZXkpOk51bWJlci5QT1NJVElWRV9JTkZJTklUWTtyZXR1cm4gdSE9PWQ/dS1kOmwua2V5PGMua2V5Py0xOmwua2V5PmMua2V5PzE6MH19cmV0dXJuIHFUKG4sbyl9LFY2PShlLHQscj17fSk9PntsZXQgaT1USyhlKTtlPUpTT04ucGFyc2UoaSk7bGV0IGE9ey4uLnJ9O2lmKHQmJiFhLmNtcCl7bGV0IG89bmV3IE1hcDt0LmZvckVhY2goKHMsbCk9Pm8uc2V0KHMsbCkpLGEuY21wPShzLGwpPT57bGV0IGM9by5oYXMocy5rZXkpP28uZ2V0KHMua2V5KTpOdW1iZXIuUE9TSVRJVkVfSU5GSU5JVFksdT1vLmhhcyhsLmtleSk/by5nZXQobC5rZXkpOk51bWJlci5QT1NJVElWRV9JTkZJTklUWTtyZXR1cm4gYyE9PXU/Yy11OnMua2V5PGwua2V5Py0xOnMua2V5Pmwua2V5PzE6MH19cmV0dXJuIHFUKGUsYSl9LFVJcj1lPT57bGV0IHQ9VjYoZSkscj1KU09OLnBhcnNlKHQpO3JldHVybiBKU09OLnN0cmluZ2lmeShyLG51bGwsMil9LFdJcj0oLi4uZSk9PntsZXQgdD1WNiguLi5lKTtyZXR1cm4gUWkuYmFzZTY0LmVuY29kZVVyaSh0KX0sR0lyPWU9PntsZXQgdD1RaS5iYXNlNjQsaT0odC5kZWNvZGVVcml8fHQuZGVjb2RlKShlKTtyZXR1cm4gVlQoaSl9LEFLPWNsYXNzIGV7c3RhdGljIGVuZm9sZEZyb21PYmplY3QodCl7bGV0IHI9bmV3IHRoaXMsaT1yLnNhdmVhYmxlUHJvcGVydGllc3x8W107Zm9yKGxldCBhIGluIHQpaS5pbmRleE9mKGEpIT09LTEmJihyW2FdPXRbYV0pO3JldHVybiByfXN0YXRpYyBlbmZvbGRGcm9tSnNvbih0KXtsZXQgcj1WVCh0KTtyZXR1cm4gdGhpcy5lbmZvbGRGcm9tT2JqZWN0KHIpfWZvbGRUb09iamVjdCgpe2xldCB0PW5ldyBTZXQ7cmV0dXJuIHQuYWRkKHRoaXMpLHRoaXMuZm9sZFRvT2JqZWN0SW50ZXJuYWwodCl9Zm9sZFRvT2JqZWN0SW50ZXJuYWwodCl7bGV0IHI9e30saT1uPT57aWYobiBpbnN0YW5jZW9mIGUpe2lmKHQuaGFzKG4pKXRocm93IG5ldyBFcnJvcigiY3ljbGUgZGV0ZWN0ZWQiKTtyZXR1cm4gdC5hZGQobiksbi5mb2xkVG9PYmplY3RJbnRlcm5hbCh0KX1yZXR1cm4gQXJyYXkuaXNBcnJheShuKT9uLm1hcChvPT5pKG8pKTpIVC5kZWZhdWx0KG4pfSxhPXRoaXMuc2F2ZWFibGVQcm9wZXJ0aWVzfHxbXTtmb3IobGV0IG4gb2YgYSl7bGV0IG89dGhpc1tuXTtyW25dPWkobyl9cmV0dXJuIHJ9Zm9sZFRvSnNvbigpe2xldCB0PXRoaXMuZm9sZFRvT2JqZWN0KCk7cmV0dXJuIFY2KHQpfX0sWUlyPSgpPT4oZSx0KT0+e2Uuc2F2ZWFibGVQcm9wZXJ0aWVzfHwoZS5zYXZlYWJsZVByb3BlcnRpZXM9W10pLGUuc2F2ZWFibGVQcm9wZXJ0aWVzLnB1c2godCl9LFdxZT0oZSx0KT0+e2xldCByPVY2KGUpLGk9VjYodCk7cmV0dXJuIHI9PT1pfSxaSXI9KGUsdCk9PntsZXQgcj1MSyhlKSxpPUxLKHQpO3JldHVybiBXcWUocixpKX19KTt2YXIgczk9e307RmUoczkse2RlbGV0ZURCOigpPT50amUsb3BlbkRCOigpPT5lamUsdW53cmFwOigpPT5vOSx3cmFwOigpPT5Pc30pO2Z1bmN0aW9uIFhJcigpe3JldHVybiBHcWV8fChHcWU9W0lEQkRhdGFiYXNlLElEQk9iamVjdFN0b3JlLElEQkluZGV4LElEQkN1cnNvcixJREJUcmFuc2FjdGlvbl0pfWZ1bmN0aW9uIFFJcigpe3JldHVybiBZcWV8fChZcWU9W0lEQkN1cnNvci5wcm90b3R5cGUuYWR2YW5jZSxJREJDdXJzb3IucHJvdG90eXBlLmNvbnRpbnVlLElEQkN1cnNvci5wcm90b3R5cGUuY29udGludWVQcmltYXJ5S2V5XSl9ZnVuY3Rpb24gSklyKGUpe2xldCB0PW5ldyBQcm9taXNlKChyLGkpPT57bGV0IGE9KCk9PntlLnJlbW92ZUV2ZW50TGlzdGVuZXIoInN1Y2Nlc3MiLG4pLGUucmVtb3ZlRXZlbnRMaXN0ZW5lcigiZXJyb3IiLG8pfSxuPSgpPT57cihPcyhlLnJlc3VsdCkpLGEoKX0sbz0oKT0+e2koZS5lcnJvciksYSgpfTtlLmFkZEV2ZW50TGlzdGVuZXIoInN1Y2Nlc3MiLG4pLGUuYWRkRXZlbnRMaXN0ZW5lcigiZXJyb3IiLG8pfSk7cmV0dXJuIFVULnNldCh0LGUpLHR9ZnVuY3Rpb24gS0lyKGUpe2lmKEVLLmhhcyhlKSlyZXR1cm47bGV0IHQ9bmV3IFByb21pc2UoKHIsaSk9PntsZXQgYT0oKT0+e2UucmVtb3ZlRXZlbnRMaXN0ZW5lcigiY29tcGxldGUiLG4pLGUucmVtb3ZlRXZlbnRMaXN0ZW5lcigiZXJyb3IiLG8pLGUucmVtb3ZlRXZlbnRMaXN0ZW5lcigiYWJvcnQiLG8pfSxuPSgpPT57cigpLGEoKX0sbz0oKT0+e2koZS5lcnJvcnx8bmV3IERPTUV4Y2VwdGlvbigiQWJvcnRFcnJvciIsIkFib3J0RXJyb3IiKSksYSgpfTtlLmFkZEV2ZW50TGlzdGVuZXIoImNvbXBsZXRlIixuKSxlLmFkZEV2ZW50TGlzdGVuZXIoImVycm9yIixvKSxlLmFkZEV2ZW50TGlzdGVuZXIoImFib3J0IixvKX0pO0VLLnNldChlLHQpfWZ1bmN0aW9uIFpxZShlKXtJSz1lKElLKX1mdW5jdGlvbiBlUHIoZSl7cmV0dXJuIFFJcigpLmluY2x1ZGVzKGUpP2Z1bmN0aW9uKC4uLnQpe3JldHVybiBlLmFwcGx5KG85KHRoaXMpLHQpLE9zKHRoaXMucmVxdWVzdCl9OmZ1bmN0aW9uKC4uLnQpe3JldHVybiBPcyhlLmFwcGx5KG85KHRoaXMpLHQpKX19ZnVuY3Rpb24gdFByKGUpe3JldHVybiB0eXBlb2YgZT09ImZ1bmN0aW9uIj9lUHIoZSk6KGUgaW5zdGFuY2VvZiBJREJUcmFuc2FjdGlvbiYmS0lyKGUpLERLKGUsWElyKCkpP25ldyBQcm94eShlLElLKTplKX1mdW5jdGlvbiBPcyhlKXtpZihlIGluc3RhbmNlb2YgSURCUmVxdWVzdClyZXR1cm4gSklyKGUpO2lmKCRLLmhhcyhlKSlyZXR1cm4gJEsuZ2V0KGUpO2xldCB0PXRQcihlKTtyZXR1cm4gdCE9PWUmJigkSy5zZXQoZSx0KSxVVC5zZXQodCxlKSksdH1mdW5jdGlvbiBlamUoZSx0LHtibG9ja2VkOnIsdXBncmFkZTppLGJsb2NraW5nOmEsdGVybWluYXRlZDpufT17fSl7bGV0IG89aW5kZXhlZERCLm9wZW4oZSx0KSxzPU9zKG8pO3JldHVybiBpJiZvLmFkZEV2ZW50TGlzdGVuZXIoInVwZ3JhZGVuZWVkZWQiLGw9PntpKE9zKG8ucmVzdWx0KSxsLm9sZFZlcnNpb24sbC5uZXdWZXJzaW9uLE9zKG8udHJhbnNhY3Rpb24pLGwpfSksciYmby5hZGRFdmVudExpc3RlbmVyKCJibG9ja2VkIixsPT5yKGwub2xkVmVyc2lvbixsLm5ld1ZlcnNpb24sbCkpLHMudGhlbihsPT57biYmbC5hZGRFdmVudExpc3RlbmVyKCJjbG9zZSIsKCk9Pm4oKSksYSYmbC5hZGRFdmVudExpc3RlbmVyKCJ2ZXJzaW9uY2hhbmdlIixjPT5hKGMub2xkVmVyc2lvbixjLm5ld1ZlcnNpb24sYykpfSkuY2F0Y2goKCk9Pnt9KSxzfWZ1bmN0aW9uIHRqZShlLHtibG9ja2VkOnR9PXt9KXtsZXQgcj1pbmRleGVkREIuZGVsZXRlRGF0YWJhc2UoZSk7cmV0dXJuIHQmJnIuYWRkRXZlbnRMaXN0ZW5lcigiYmxvY2tlZCIsaT0+dChpLm9sZFZlcnNpb24saSkpLE9zKHIpLnRoZW4oKCk9Pnt9KX1mdW5jdGlvbiBYcWUoZSx0KXtpZighKGUgaW5zdGFuY2VvZiBJREJEYXRhYmFzZSYmISh0IGluIGUpJiZ0eXBlb2YgdD09InN0cmluZyIpKXJldHVybjtpZihQSy5nZXQodCkpcmV0dXJuIFBLLmdldCh0KTtsZXQgcj10LnJlcGxhY2UoL0Zyb21JbmRleCQvLCIiKSxpPXQhPT1yLGE9aVByLmluY2x1ZGVzKHIpO2lmKCEociBpbihpP0lEQkluZGV4OklEQk9iamVjdFN0b3JlKS5wcm90b3R5cGUpfHwhKGF8fHJQci5pbmNsdWRlcyhyKSkpcmV0dXJuO2xldCBuPWFzeW5jIGZ1bmN0aW9uKG8sLi4ucyl7bGV0IGw9dGhpcy50cmFuc2FjdGlvbihvLGE/InJlYWR3cml0ZSI6InJlYWRvbmx5IiksYz1sLnN0b3JlO3JldHVybiBpJiYoYz1jLmluZGV4KHMuc2hpZnQoKSkpLChhd2FpdCBQcm9taXNlLmFsbChbY1tyXSguLi5zKSxhJiZsLmRvbmVdKSlbMF19O3JldHVybiBQSy5zZXQodCxuKSxufWFzeW5jIGZ1bmN0aW9uKm9QciguLi5lKXtsZXQgdD10aGlzO2lmKHQgaW5zdGFuY2VvZiBJREJDdXJzb3J8fCh0PWF3YWl0IHQub3BlbkN1cnNvciguLi5lKSksIXQpcmV0dXJuO3Q9dDtsZXQgcj1uZXcgUHJveHkodCxuUHIpO2ZvcihKcWUuc2V0KHIsdCksVVQuc2V0KHIsbzkodCkpO3Q7KXlpZWxkIHIsdD1hd2FpdChOSy5nZXQocil8fHQuY29udGludWUoKSksTksuZGVsZXRlKHIpfWZ1bmN0aW9uIEtxZShlLHQpe3JldHVybiB0PT09U3ltYm9sLmFzeW5jSXRlcmF0b3ImJkRLKGUsW0lEQkluZGV4LElEQk9iamVjdFN0b3JlLElEQkN1cnNvcl0pfHx0PT09Iml0ZXJhdGUiJiZESyhlLFtJREJJbmRleCxJREJPYmplY3RTdG9yZV0pfXZhciBESyxHcWUsWXFlLEVLLCRLLFVULElLLG85LHJQcixpUHIsUEssYVByLFFxZSxOSyxKcWUsblByLHJqZT1wKCgpPT57REs9KGUsdCk9PnQuc29tZShyPT5lIGluc3RhbmNlb2Ygcik7RUs9bmV3IFdlYWtNYXAsJEs9bmV3IFdlYWtNYXAsVVQ9bmV3IFdlYWtNYXA7SUs9e2dldChlLHQscil7aWYoZSBpbnN0YW5jZW9mIElEQlRyYW5zYWN0aW9uKXtpZih0PT09ImRvbmUiKXJldHVybiBFSy5nZXQoZSk7aWYodD09PSJzdG9yZSIpcmV0dXJuIHIub2JqZWN0U3RvcmVOYW1lc1sxXT92b2lkIDA6ci5vYmplY3RTdG9yZShyLm9iamVjdFN0b3JlTmFtZXNbMF0pfXJldHVybiBPcyhlW3RdKX0sc2V0KGUsdCxyKXtyZXR1cm4gZVt0XT1yLCEwfSxoYXMoZSx0KXtyZXR1cm4gZSBpbnN0YW5jZW9mIElEQlRyYW5zYWN0aW9uJiYodD09PSJkb25lInx8dD09PSJzdG9yZSIpPyEwOnQgaW4gZX19O285PWU9PlVULmdldChlKTtyUHI9WyJnZXQiLCJnZXRLZXkiLCJnZXRBbGwiLCJnZXRBbGxLZXlzIiwiY291bnQiXSxpUHI9WyJwdXQiLCJhZGQiLCJkZWxldGUiLCJjbGVhciJdLFBLPW5ldyBNYXA7WnFlKGU9Pih7Li4uZSxnZXQ6KHQscixpKT0+WHFlKHQscil8fGUuZ2V0KHQscixpKSxoYXM6KHQscik9PiEhWHFlKHQscil8fGUuaGFzKHQscil9KSk7YVByPVsiY29udGludWUiLCJjb250aW51ZVByaW1hcnlLZXkiLCJhZHZhbmNlIl0sUXFlPXt9LE5LPW5ldyBXZWFrTWFwLEpxZT1uZXcgV2Vha01hcCxuUHI9e2dldChlLHQpe2lmKCFhUHIuaW5jbHVkZXModCkpcmV0dXJuIGVbdF07bGV0IHI9UXFlW3RdO3JldHVybiByfHwocj1RcWVbdF09ZnVuY3Rpb24oLi4uaSl7Tksuc2V0KHRoaXMsSnFlLmdldCh0aGlzKVt0XSguLi5pKSl9KSxyfX07WnFlKGU9Pih7Li4uZSxnZXQodCxyLGkpe3JldHVybiBLcWUodCxyKT9vUHI6ZS5nZXQodCxyLGkpfSxoYXModCxyKXtyZXR1cm4gS3FlKHQscil8fGUuaGFzKHQscil9fSkpfSk7dmFyIEZLPXAoKCk9PntHbSgpO044KCk7VjgoKTtFaSgpO2gyKCk7YnooKTtyamUoKX0pO3ZhciBsOSxPSz1wKCgpPT57RksoKTtsOT1jbGFzc3tjb25zdHJ1Y3Rvcih0KXt0aGlzLmluaXRDYWxsZWQ9ITEsdGhpcy5yZWFkeURlZmVycmVkPVhlLmRlZmVyKCksdGhpcy5vcHRpb25zPXR9YXN5bmMgaW5pdCgpe2lmKHRoaXMuaW5pdENhbGxlZCl7YXdhaXQgdGhpcy5yZWFkeURlZmVycmVkLnByb21pc2U7cmV0dXJufXRoaXMuaW5pdENhbGxlZD0hMDtsZXQgdD1uZXcgcW4uU21hcnRlbnY7aWYoIXQuaXNCcm93c2VyJiYhZ2xvYmFsVGhpcy5pbmRleGVkREImJihjb25zb2xlLmxvZygiaGV5IiksY29uc29sZS5sb2coZ2xvYmFsVGhpcy5pbmRleGVkREIpLGF3YWl0IHQuZ2V0U2FmZU5vZGVNb2R1bGUoImZha2UtaW5kZXhlZGRiL2F1dG8iKSwhZ2xvYmFsVGhpcy5pbmRleGVkREIpKXtsZXQgcj1hd2FpdCB0LmdldFNhZmVOb2RlTW9kdWxlKCJmYWtlLWluZGV4ZWRkYiIpO2dsb2JhbFRoaXMuaW5kZXhlZERCPW5ldyByLklEQkZhY3Rvcnl9dGhpcy5kYj1hd2FpdCBzOS5vcGVuREIodGhpcy5vcHRpb25zLmRiTmFtZSwxLHt1cGdyYWRlOnI9PntyLmNyZWF0ZU9iamVjdFN0b3JlKHRoaXMub3B0aW9ucy5zdG9yZU5hbWUpfX0pLHRoaXMucmVhZHlEZWZlcnJlZC5yZXNvbHZlKCl9YXN5bmMgZ2V0KHQpe3JldHVybiBhd2FpdCB0aGlzLmluaXQoKSx0aGlzLmRiLmdldCh0aGlzLm9wdGlvbnMuc3RvcmVOYW1lLHQpfWFzeW5jIGNoZWNrKHQpe3JldHVybiBhd2FpdCB0aGlzLmluaXQoKSwhIWF3YWl0IHRoaXMuZ2V0KHQpfWFzeW5jIHNldCh0LHIpe3JldHVybiBhd2FpdCB0aGlzLmluaXQoKSx0aGlzLmRiLnB1dCh0aGlzLm9wdGlvbnMuc3RvcmVOYW1lLHIsdCl9YXN5bmMgZGVsZXRlKHQpe3JldHVybiBhd2FpdCB0aGlzLmluaXQoKSx0aGlzLmRiLmRlbGV0ZSh0aGlzLm9wdGlvbnMuc3RvcmVOYW1lLHQpfWFzeW5jIGNsZWFyKCl7cmV0dXJuIGF3YWl0IHRoaXMuaW5pdCgpLHRoaXMuZGIuY2xlYXIodGhpcy5vcHRpb25zLnN0b3JlTmFtZSl9YXN5bmMga2V5cygpe3JldHVybiBhd2FpdCB0aGlzLmluaXQoKSx0aGlzLmRiLmdldEFsbEtleXModGhpcy5vcHRpb25zLnN0b3JlTmFtZSl9fX0pO3ZhciBSSyxhamU9cCgoKT0+e09LKCk7RksoKTtSSz1jbGFzc3tjb25zdHJ1Y3Rvcih0PSJkZWZhdWx0Iil7dGhpcy53ZWJzdG9yZT1uZXcgbDkoe2RiTmFtZToidHJTdG9yZSIsc3RvcmVOYW1lOmB0clN0b3JlLSR7dH1gfSl9YnVpbGRLZXkodCl7cmV0dXJuIHkxLnN0cmluZ2lmeSh7bWV0aG9kOnQubWV0aG9kLHJlcXVlc3Q6dC5yZXF1ZXN0fSl9YXN5bmMgc2V0QnlSZXF1ZXN0KHQpe2lmKCF0LnJlc3BvbnNlKXRocm93IG5ldyBFcnJvcigiWW91IGNhbm5vdCBzdG9yZSByZXF1ZXN0cyB3aXRob3V0IGEgcmVzcG9uc2UgcHJlc2VudCIpO2F3YWl0IHRoaXMud2Vic3RvcmUuc2V0KHRoaXMuYnVpbGRLZXkodCksdCl9YXN5bmMgZ2V0QnlSZXF1ZXN0KHQpe3JldHVybiBhd2FpdCB0aGlzLndlYnN0b3JlLmdldCh0aGlzLmJ1aWxkS2V5KHQpKX19fSk7dmFyIFlhPXt9O0ZlKFlhLHtUeXBlZHJlcXVlc3RDYWNoZTooKT0+UkssV2ViU3RvcmU6KCk9Pmw5fSk7dmFyIGM5PXAoKCk9PnthamUoKTtPSygpfSk7dmFyIGQ5PXAoKCk9PntUcygpO044KCk7VjgoKTtFaSgpO2M5KCl9KTt2YXIgVTgsR1Q9cCgoKT0+e2Q5KCk7VTg9Y2xhc3N7Y29uc3RydWN0b3IodD0id2VicmVxdWVzdC12NCIscj0iY2FjaGUiKXt0aGlzLndlYnN0b3JlPW5ldyBZYS5XZWJTdG9yZSh7ZGJOYW1lOnQsc3RvcmVOYW1lOnJ9KSx0aGlzLmluaXRQcm9taXNlPXRoaXMuaW5pdCgpfWFzeW5jIGluaXQoKXt9Z2VuZXJhdGVDYWNoZUtleSh0KXtsZXQgcj10LnVybCxpPXQubWV0aG9kO3JldHVybiBpPT09IkdFVCI/cjpgJHtpfToke3J9YH1hc3luYyBzZXQodCxyKXthd2FpdCB0aGlzLmluaXRQcm9taXNlLGF3YWl0IHRoaXMud2Vic3RvcmUuc2V0KHQscil9YXN5bmMgZ2V0KHQpe2F3YWl0IHRoaXMuaW5pdFByb21pc2U7dHJ5e3JldHVybiBhd2FpdCB0aGlzLndlYnN0b3JlLmdldCh0KXx8bnVsbH1jYXRjaHtyZXR1cm4gbnVsbH19YXN5bmMgaGFzKHQpe3JldHVybiBhd2FpdCB0aGlzLmluaXRQcm9taXNlLGF3YWl0IHRoaXMud2Vic3RvcmUuY2hlY2sodCl9YXN5bmMgZGVsZXRlKHQpe2F3YWl0IHRoaXMuaW5pdFByb21pc2UsYXdhaXQgdGhpcy53ZWJzdG9yZS5kZWxldGUodCl9YXN5bmMgY2xlYXIoKXthd2FpdCB0aGlzLmluaXRQcm9taXNlLGF3YWl0IHRoaXMud2Vic3RvcmUuY2xlYXIoKX1yZXNwb25zZUZyb21DYWNoZUVudHJ5KHQpe2xldCByPW5ldyBIZWFkZXJzKHQuaGVhZGVycyk7cmV0dXJuIG5ldyBSZXNwb25zZSh0LnJlc3BvbnNlLHtzdGF0dXM6dC5zdGF0dXMsc3RhdHVzVGV4dDp0LnN0YXR1c1RleHQsaGVhZGVyczpyfSl9YXN5bmMgY2FjaGVFbnRyeUZyb21SZXNwb25zZSh0LHIsaSl7bGV0IGE9ci5jbG9uZSgpLG49YXdhaXQgYS5hcnJheUJ1ZmZlcigpLG89e307cmV0dXJuIGEuaGVhZGVycy5mb3JFYWNoKChzLGwpPT57b1tsXT1zfSkse3Jlc3BvbnNlOm4saGVhZGVyczpvLHRpbWVzdGFtcDpEYXRlLm5vdygpLGV0YWc6aT8uZXRhZ3x8YS5oZWFkZXJzLmdldCgiZXRhZyIpfHx2b2lkIDAsbGFzdE1vZGlmaWVkOmk/Lmxhc3RNb2RpZmllZHx8YS5oZWFkZXJzLmdldCgibGFzdC1tb2RpZmllZCIpfHx2b2lkIDAsbWF4QWdlOmk/Lm1heEFnZSx1cmw6dCxzdGF0dXM6YS5zdGF0dXMsc3RhdHVzVGV4dDphLnN0YXR1c1RleHR9fWFzeW5jIHBydW5lRXhwaXJlZCgpe3JldHVybiBhd2FpdCB0aGlzLmluaXRQcm9taXNlLDB9fX0pO2Z1bmN0aW9uIHNQcihlKXtsZXQgdD17bWF4QWdlOjAsaW1tdXRhYmxlOiExLG5vQ2FjaGU6ITEsbm9TdG9yZTohMSxtdXN0UmV2YWxpZGF0ZTohMX07aWYoIWUpcmV0dXJuIHQ7bGV0IHI9ZS50b0xvd2VyQ2FzZSgpLnNwbGl0KCIsIikubWFwKGk9PmkudHJpbSgpKTtmb3IobGV0IGkgb2YgcilpZihpPT09Im5vLWNhY2hlIil0Lm5vQ2FjaGU9ITA7ZWxzZSBpZihpPT09Im5vLXN0b3JlIil0Lm5vU3RvcmU9ITA7ZWxzZSBpZihpPT09ImltbXV0YWJsZSIpdC5pbW11dGFibGU9ITA7ZWxzZSBpZihpPT09Im11c3QtcmV2YWxpZGF0ZSIpdC5tdXN0UmV2YWxpZGF0ZT0hMDtlbHNlIGlmKGkuc3RhcnRzV2l0aCgibWF4LWFnZT0iKSl7bGV0IGE9cGFyc2VJbnQoaS5zcGxpdCgiPSIpWzFdLDEwKTtpc05hTihhKXx8KHQubWF4QWdlPWEqMWUzKX1yZXR1cm4gdH1mdW5jdGlvbiBsUHIoZSl7aWYoZSl0cnl7cmV0dXJuIG5ldyBEYXRlKGUpLmdldFRpbWUoKX1jYXRjaHtyZXR1cm59fWZ1bmN0aW9uIFJzKGUpe2xldCB0PWUuZ2V0KCJjYWNoZS1jb250cm9sIikscj1lLmdldCgiZXhwaXJlcyIpLGk9ZS5nZXQoImV0YWciKSxhPWUuZ2V0KCJsYXN0LW1vZGlmaWVkIiksbj1zUHIodCk7aWYobi5tYXhBZ2U9PT0wJiZyKXtsZXQgbz1sUHIocik7byYmKG4ubWF4QWdlPU1hdGgubWF4KDAsby1EYXRlLm5vdygpKSl9cmV0dXJue21heEFnZTpuLm1heEFnZXx8MCxldGFnOml8fHZvaWQgMCxsYXN0TW9kaWZpZWQ6YXx8dm9pZCAwLGltbXV0YWJsZTpuLmltbXV0YWJsZXx8ITEsbm9DYWNoZTpuLm5vQ2FjaGV8fCExLG5vU3RvcmU6bi5ub1N0b3JlfHwhMSxtdXN0UmV2YWxpZGF0ZTpuLm11c3RSZXZhbGlkYXRlfHwhMX19ZnVuY3Rpb24gdTkoZSx0KXtpZih0Lm5vU3RvcmUpcmV0dXJuITE7aWYodC5pbW11dGFibGUpcmV0dXJuITA7bGV0IHI9RGF0ZS5ub3coKS1lLnRpbWVzdGFtcCxpPWUubWF4QWdlfHx0Lm1heEFnZXx8MDtyZXR1cm4gaT09PTA/ITE6cjxpfWZ1bmN0aW9uIHA5KGUpe3JldHVybiBlLm5vQ2FjaGV8fGUubXVzdFJldmFsaWRhdGV9ZnVuY3Rpb24gWVQoZSl7bGV0IHQ9e307cmV0dXJuIGUuZXRhZyYmKHRbImlmLW5vbmUtbWF0Y2giXT1lLmV0YWcpLGUubGFzdE1vZGlmaWVkJiYodFsiaWYtbW9kaWZpZWQtc2luY2UiXT1lLmxhc3RNb2RpZmllZCksdH1mdW5jdGlvbiBaVChlKXtsZXQgdD17fTtyZXR1cm4gZS5mb3JFYWNoKChyLGkpPT57dFtpXT1yfSksdH1mdW5jdGlvbiBuamUoZSl7bGV0IHQ9bmV3IEhlYWRlcnM7cmV0dXJuIE9iamVjdC5lbnRyaWVzKGUpLmZvckVhY2goKFtyLGldKT0+e3Quc2V0KHIsaSl9KSx0fXZhciBYVD1wKCgpPT57fSk7ZnVuY3Rpb24gb2plKGUpe3N3aXRjaChlKXtjYXNlIm5ldHdvcmstZmlyc3QiOnJldHVybiBuZXcgUVQ7Y2FzZSJjYWNoZS1maXJzdCI6cmV0dXJuIG5ldyBCSztjYXNlInN0YWxlLXdoaWxlLXJldmFsaWRhdGUiOnJldHVybiBuZXcgSEs7Y2FzZSJuZXR3b3JrLW9ubHkiOnJldHVybiBuZXcgcUs7Y2FzZSJjYWNoZS1vbmx5IjpyZXR1cm4gbmV3IGpLO2RlZmF1bHQ6cmV0dXJuIG5ldyBRVH19dmFyIFFULEJLLEhLLHFLLGpLLHNqZT1wKCgpPT57R1QoKTtYVCgpO1FUPWNsYXNze2FzeW5jIGV4ZWN1dGUodCl7dHJ5e2xldCByPWF3YWl0IHQuZmV0Y2hGbih0LnJlcXVlc3QpO3JldHVybiByLm9rJiZhd2FpdCB0aGlzLmNhY2hlUmVzcG9uc2UodCxyKSx7cmVzcG9uc2U6cixmcm9tQ2FjaGU6ITEscmV2YWxpZGF0ZWQ6ITF9fWNhdGNoKHIpe3QubG9nZ2luZyYmY29uc29sZS5sb2coIlt3ZWJyZXF1ZXN0XSBOZXR3b3JrIGZhaWxlZCwgdHJ5aW5nIGNhY2hlOiIscik7bGV0IGk9YXdhaXQgdC5jYWNoZVN0b3JlLmdldCh0LmNhY2hlS2V5KTtpZihpKXJldHVybntyZXNwb25zZTp0LmNhY2hlU3RvcmUucmVzcG9uc2VGcm9tQ2FjaGVFbnRyeShpKSxmcm9tQ2FjaGU6ITAscmV2YWxpZGF0ZWQ6ITF9O3Rocm93IHJ9fWFzeW5jIGNhY2hlUmVzcG9uc2UodCxyKXtsZXQgaT1ScyhyLmhlYWRlcnMpO2lmKGkubm9TdG9yZSlyZXR1cm47bGV0IGE9YXdhaXQgdC5jYWNoZVN0b3JlLmNhY2hlRW50cnlGcm9tUmVzcG9uc2UodC5yZXF1ZXN0LnVybCxyLGkpO2F3YWl0IHQuY2FjaGVTdG9yZS5zZXQodC5jYWNoZUtleSxhKX19LEJLPWNsYXNze2FzeW5jIGV4ZWN1dGUodCl7bGV0IHI9YXdhaXQgdC5jYWNoZVN0b3JlLmdldCh0LmNhY2hlS2V5KTtpZihyKXtsZXQgbj1ScyhuZXcgSGVhZGVycyhyLmhlYWRlcnMpKTtpZih1OShyLG4pKXJldHVybiB0LmxvZ2dpbmcmJmNvbnNvbGUubG9nKCJbd2VicmVxdWVzdF0gQ2FjaGUgaGl0IChmcmVzaCk6Iix0LnJlcXVlc3QudXJsKSx7cmVzcG9uc2U6dC5jYWNoZVN0b3JlLnJlc3BvbnNlRnJvbUNhY2hlRW50cnkociksZnJvbUNhY2hlOiEwLHJldmFsaWRhdGVkOiExfTtpZihwOShuKSYmKHIuZXRhZ3x8ci5sYXN0TW9kaWZpZWQpKXJldHVybiBhd2FpdCB0aGlzLnJldmFsaWRhdGUodCxyKX10LmxvZ2dpbmcmJmNvbnNvbGUubG9nKCJbd2VicmVxdWVzdF0gQ2FjaGUgbWlzcywgZmV0Y2hpbmc6Iix0LnJlcXVlc3QudXJsKTtsZXQgaT1hd2FpdCB0LmZldGNoRm4odC5yZXF1ZXN0KSxhPVJzKGkuaGVhZGVycyk7aWYoIWEubm9TdG9yZSl7bGV0IG49YXdhaXQgdC5jYWNoZVN0b3JlLmNhY2hlRW50cnlGcm9tUmVzcG9uc2UodC5yZXF1ZXN0LnVybCxpLGEpO2F3YWl0IHQuY2FjaGVTdG9yZS5zZXQodC5jYWNoZUtleSxuKX1yZXR1cm57cmVzcG9uc2U6aSxmcm9tQ2FjaGU6ITEscmV2YWxpZGF0ZWQ6ITF9fWFzeW5jIHJldmFsaWRhdGUodCxyKXtsZXQgaT1ZVChyKSxhPW5ldyBSZXF1ZXN0KHQucmVxdWVzdC51cmwse21ldGhvZDp0LnJlcXVlc3QubWV0aG9kLGhlYWRlcnM6ey4uLlpUKHQucmVxdWVzdC5oZWFkZXJzKSwuLi5pfX0pO3RyeXtsZXQgbj1hd2FpdCB0LmZldGNoRm4oYSk7aWYobi5zdGF0dXM9PT0zMDQpcmV0dXJuIHQubG9nZ2luZyYmY29uc29sZS5sb2coIlt3ZWJyZXF1ZXN0XSBDYWNoZSByZXZhbGlkYXRlZCAoMzA0KToiLHQucmVxdWVzdC51cmwpLHIudGltZXN0YW1wPURhdGUubm93KCksYXdhaXQgdC5jYWNoZVN0b3JlLnNldCh0LmNhY2hlS2V5LHIpLHtyZXNwb25zZTp0LmNhY2hlU3RvcmUucmVzcG9uc2VGcm9tQ2FjaGVFbnRyeShyKSxmcm9tQ2FjaGU6ITAscmV2YWxpZGF0ZWQ6ITB9O2lmKG4ub2spe2xldCBvPVJzKG4uaGVhZGVycyk7aWYoIW8ubm9TdG9yZSl7bGV0IHM9YXdhaXQgdC5jYWNoZVN0b3JlLmNhY2hlRW50cnlGcm9tUmVzcG9uc2UodC5yZXF1ZXN0LnVybCxuLG8pO2F3YWl0IHQuY2FjaGVTdG9yZS5zZXQodC5jYWNoZUtleSxzKX19cmV0dXJue3Jlc3BvbnNlOm4sZnJvbUNhY2hlOiExLHJldmFsaWRhdGVkOiEwfX1jYXRjaChuKXtyZXR1cm4gdC5sb2dnaW5nJiZjb25zb2xlLmxvZygiW3dlYnJlcXVlc3RdIFJldmFsaWRhdGlvbiBmYWlsZWQsIHVzaW5nIGNhY2hlOiIsbikse3Jlc3BvbnNlOnQuY2FjaGVTdG9yZS5yZXNwb25zZUZyb21DYWNoZUVudHJ5KHIpLGZyb21DYWNoZTohMCxyZXZhbGlkYXRlZDohMX19fX0sSEs9Y2xhc3N7YXN5bmMgZXhlY3V0ZSh0KXtsZXQgcj1hd2FpdCB0LmNhY2hlU3RvcmUuZ2V0KHQuY2FjaGVLZXkpO2lmKHIpe2xldCBuPXQuY2FjaGVTdG9yZS5yZXNwb25zZUZyb21DYWNoZUVudHJ5KHIpO3JldHVybiB0aGlzLnJldmFsaWRhdGVJbkJhY2tncm91bmQodCxyKS5jYXRjaChvPT57dC5sb2dnaW5nJiZjb25zb2xlLndhcm4oIlt3ZWJyZXF1ZXN0XSBCYWNrZ3JvdW5kIHJldmFsaWRhdGlvbiBmYWlsZWQ6IixvKX0pLHtyZXNwb25zZTpuLGZyb21DYWNoZTohMCxyZXZhbGlkYXRlZDohMX19bGV0IGk9YXdhaXQgdC5mZXRjaEZuKHQucmVxdWVzdCksYT1ScyhpLmhlYWRlcnMpO2lmKCFhLm5vU3RvcmUmJmkub2spe2xldCBuPWF3YWl0IHQuY2FjaGVTdG9yZS5jYWNoZUVudHJ5RnJvbVJlc3BvbnNlKHQucmVxdWVzdC51cmwsaSxhKTthd2FpdCB0LmNhY2hlU3RvcmUuc2V0KHQuY2FjaGVLZXksbil9cmV0dXJue3Jlc3BvbnNlOmksZnJvbUNhY2hlOiExLHJldmFsaWRhdGVkOiExfX1hc3luYyByZXZhbGlkYXRlSW5CYWNrZ3JvdW5kKHQscil7bGV0IGk9UnMobmV3IEhlYWRlcnMoci5oZWFkZXJzKSk7aWYoISh1OShyLGkpJiYhcDkoaSkpKXRyeXtsZXQgYT1hd2FpdCB0LmZldGNoRm4odC5yZXF1ZXN0KTtpZihhLm9rKXtsZXQgbj1ScyhhLmhlYWRlcnMpO2lmKCFuLm5vU3RvcmUpe2xldCBvPWF3YWl0IHQuY2FjaGVTdG9yZS5jYWNoZUVudHJ5RnJvbVJlc3BvbnNlKHQucmVxdWVzdC51cmwsYSxuKTthd2FpdCB0LmNhY2hlU3RvcmUuc2V0KHQuY2FjaGVLZXksbyksdC5sb2dnaW5nJiZjb25zb2xlLmxvZygiW3dlYnJlcXVlc3RdIEJhY2tncm91bmQgcmV2YWxpZGF0aW9uIGNvbXBsZXRlOiIsdC5yZXF1ZXN0LnVybCl9fX1jYXRjaChhKXt0LmxvZ2dpbmcmJmNvbnNvbGUud2FybigiW3dlYnJlcXVlc3RdIEJhY2tncm91bmQgcmV2YWxpZGF0aW9uIGZhaWxlZDoiLGEpfX19LHFLPWNsYXNze2FzeW5jIGV4ZWN1dGUodCl7cmV0dXJue3Jlc3BvbnNlOmF3YWl0IHQuZmV0Y2hGbih0LnJlcXVlc3QpLGZyb21DYWNoZTohMSxyZXZhbGlkYXRlZDohMX19fSxqSz1jbGFzc3thc3luYyBleGVjdXRlKHQpe2xldCByPWF3YWl0IHQuY2FjaGVTdG9yZS5nZXQodC5jYWNoZUtleSk7aWYoIXIpdGhyb3cgbmV3IEVycm9yKGBDYWNoZSBtaXNzIGZvciAke3QucmVxdWVzdC51cmx9IChjYWNoZS1vbmx5IG1vZGUpYCk7cmV0dXJue3Jlc3BvbnNlOnQuY2FjaGVTdG9yZS5yZXNwb25zZUZyb21DYWNoZUVudHJ5KHIpLGZyb21DYWNoZTohMCxyZXZhbGlkYXRlZDohMX19fX0pO3ZhciBXOCxWSz1wKCgpPT57R1QoKTtzamUoKTtYVCgpO1c4PWNsYXNze2NvbnN0cnVjdG9yKHQscil7dGhpcy5jYWNoZVN0b3JlPW5ldyBVOCh0LHIpfWFzeW5jIGV4ZWN1dGUodCxyLGkpe2xldCBhPXRoaXMuZGV0ZXJtaW5lU3RyYXRlZ3kodCxyKTtpZihhPT09Im5ldHdvcmstb25seSIpcmV0dXJue3Jlc3BvbnNlOmF3YWl0IGkodCksZnJvbUNhY2hlOiExLHJldmFsaWRhdGVkOiExfTtsZXQgbj10aGlzLmdlbmVyYXRlQ2FjaGVLZXkodCxyKSxvPW9qZShhKSxzPXtyZXF1ZXN0OnQsY2FjaGVLZXk6bixjYWNoZVN0b3JlOnRoaXMuY2FjaGVTdG9yZSxmZXRjaEZuOmksbG9nZ2luZzpyLmxvZ2dpbmd9O3JldHVybiBhd2FpdCBvLmV4ZWN1dGUocyl9ZGV0ZXJtaW5lU3RyYXRlZ3kodCxyKXtyZXR1cm4gci5jYWNoZVN0cmF0ZWd5P3IuY2FjaGVTdHJhdGVneTpyLmNhY2hlP3RoaXMubWFwQ2FjaGVNb2RlVG9TdHJhdGVneShyLmNhY2hlKTp0LmNhY2hlP3RoaXMubWFwQ2FjaGVNb2RlVG9TdHJhdGVneSh0LmNhY2hlKToibmV0d29yay1maXJzdCJ9bWFwQ2FjaGVNb2RlVG9TdHJhdGVneSh0KXtzd2l0Y2godCl7Y2FzZSJkZWZhdWx0IjpyZXR1cm4ibmV0d29yay1maXJzdCI7Y2FzZSJuby1zdG9yZSI6Y2FzZSJyZWxvYWQiOnJldHVybiJuZXR3b3JrLW9ubHkiO2Nhc2Uibm8tY2FjaGUiOnJldHVybiJuZXR3b3JrLWZpcnN0IjtjYXNlImZvcmNlLWNhY2hlIjpyZXR1cm4iY2FjaGUtZmlyc3QiO2Nhc2Uib25seS1pZi1jYWNoZWQiOnJldHVybiJjYWNoZS1vbmx5IjtkZWZhdWx0OnJldHVybiJuZXR3b3JrLWZpcnN0In19Z2VuZXJhdGVDYWNoZUtleSh0LHIpe3JldHVybiByLmNhY2hlS2V5P3R5cGVvZiByLmNhY2hlS2V5PT0iZnVuY3Rpb24iP3IuY2FjaGVLZXkodCk6ci5jYWNoZUtleTp0aGlzLmNhY2hlU3RvcmUuZ2VuZXJhdGVDYWNoZUtleSh0KX1hc3luYyBjbGVhcigpe2F3YWl0IHRoaXMuY2FjaGVTdG9yZS5jbGVhcigpfWFzeW5jIGRlbGV0ZSh0KXthd2FpdCB0aGlzLmNhY2hlU3RvcmUuZGVsZXRlKHQpfWFzeW5jIGhhcyh0KXtyZXR1cm4gYXdhaXQgdGhpcy5jYWNoZVN0b3JlLmhhcyh0KX1nZXRTdG9yZSgpe3JldHVybiB0aGlzLmNhY2hlU3RvcmV9fX0pO2Z1bmN0aW9uIGxqZShlKXtzd2l0Y2goZSl7Y2FzZSJleHBvbmVudGlhbCI6cmV0dXJuIG5ldyBKVDtjYXNlImxpbmVhciI6cmV0dXJuIG5ldyBVSztjYXNlImNvbnN0YW50IjpyZXR1cm4gbmV3IFdLO2RlZmF1bHQ6cmV0dXJuIG5ldyBKVH19ZnVuY3Rpb24gY2plKGUsdD0uMSl7bGV0IHI9ZSp0Kk1hdGgucmFuZG9tKCk7cmV0dXJuIGUrcn12YXIgSlQsVUssV0ssZGplPXAoKCk9PntKVD1jbGFzc3tjYWxjdWxhdGUodCxyLGkpe2xldCBhPXIqTWF0aC5wb3coMix0LTEpO3JldHVybiBNYXRoLm1pbihhLGkpfX0sVUs9Y2xhc3N7Y2FsY3VsYXRlKHQscixpKXtsZXQgYT1yKnQ7cmV0dXJuIE1hdGgubWluKGEsaSl9fSxXSz1jbGFzc3tjYWxjdWxhdGUodCxyLGkpe3JldHVybiBNYXRoLm1pbihyLGkpfX19KTt2YXIgRzgsR0s9cCgoKT0+e2Q5KCk7ZGplKCk7Rzg9Y2xhc3N7Y29uc3RydWN0b3IodD17fSl7dGhpcy5vcHRpb25zPXttYXhBdHRlbXB0czp0Lm1heEF0dGVtcHRzPz8zLGJhY2tvZmY6dC5iYWNrb2ZmPz8iZXhwb25lbnRpYWwiLGluaXRpYWxEZWxheTp0LmluaXRpYWxEZWxheT8/MWUzLG1heERlbGF5OnQubWF4RGVsYXk/PzNlNCxyZXRyeU9uOnQucmV0cnlPbj8/WzQwOCw0MjksNTAwLDUwMiw1MDMsNTA0XSxvblJldHJ5OnQub25SZXRyeT8/KCgpPT57fSl9fWFzeW5jIGV4ZWN1dGUodCxyKXtsZXQgaSxhO2ZvcihsZXQgbj0xO248PXRoaXMub3B0aW9ucy5tYXhBdHRlbXB0cztuKyspdHJ5e2xldCBvPWF3YWl0IHQoKTtpZihvIGluc3RhbmNlb2YgUmVzcG9uc2UmJnRoaXMuc2hvdWxkUmV0cnlSZXNwb25zZShvKSl7aWYoYT1vLG49PT10aGlzLm9wdGlvbnMubWF4QXR0ZW1wdHMpcmV0dXJuIG87bGV0IHM9dGhpcy5jYWxjdWxhdGVEZWxheShuKTt0aGlzLm9wdGlvbnMub25SZXRyeShuLG5ldyBFcnJvcihgSFRUUCAke28uc3RhdHVzfWApLHMpLGF3YWl0IHRoaXMuZGVsYXkocyk7Y29udGludWV9cmV0dXJuIG99Y2F0Y2gobyl7aT1vIGluc3RhbmNlb2YgRXJyb3I/bzpuZXcgRXJyb3IoU3RyaW5nKG8pKTtsZXQgcz1yP3IobyxuKTp0aGlzLnNob3VsZFJldHJ5RXJyb3Iobyk7aWYobj09PXRoaXMub3B0aW9ucy5tYXhBdHRlbXB0c3x8IXMpdGhyb3cgaTtsZXQgbD10aGlzLmNhbGN1bGF0ZURlbGF5KG4pO3RoaXMub3B0aW9ucy5vblJldHJ5KG4saSxsKSxhd2FpdCB0aGlzLmRlbGF5KGwpfXRocm93IGl8fG5ldyBFcnJvcigiTWF4IHJldHJ5IGF0dGVtcHRzIHJlYWNoZWQiKX1hc3luYyBleGVjdXRlV2l0aEZhbGxiYWNrcyh0LHIsaSl7aWYodC5sZW5ndGg9PT0wKXRocm93IG5ldyBFcnJvcigiTm8gVVJMcyBwcm92aWRlZCBmb3IgZmFsbGJhY2sgZXhlY3V0aW9uIik7bGV0IGEsbj1bXTtmb3IobGV0IG8gb2YgdCl0cnl7bGV0IHM9YXdhaXQgdGhpcy5leGVjdXRlKGFzeW5jKCk9PmF3YWl0IGkobyxyKSk7aWYocy5zdGF0dXM8NDAwfHxzLnN0YXR1cz49NDAwJiZzLnN0YXR1czw1MDAmJnMuc3RhdHVzIT09NDA4KXJldHVybiBzO24ucHVzaChvKSxhPW5ldyBFcnJvcihgUmVxdWVzdCBmYWlsZWQgd2l0aCBzdGF0dXMgJHtzLnN0YXR1c31gKX1jYXRjaChzKXtuLnB1c2gobyksYT1zIGluc3RhbmNlb2YgRXJyb3I/czpuZXcgRXJyb3IoU3RyaW5nKHMpKX10aHJvdyBuZXcgRXJyb3IoYEFsbCBVUkxzIGZhaWxlZDogJHtuLmpvaW4oIiwgIil9LiBMYXN0IGVycm9yOiAke2E/Lm1lc3NhZ2V8fCJVbmtub3duIGVycm9yIn1gKX1zaG91bGRSZXRyeVJlc3BvbnNlKHQpe2xldCByPXRoaXMub3B0aW9ucy5yZXRyeU9uO3JldHVybiB0eXBlb2Ygcj09ImZ1bmN0aW9uIj9yKHQpOkFycmF5LmlzQXJyYXkocik/ci5pbmNsdWRlcyh0LnN0YXR1cyk6ITF9c2hvdWxkUmV0cnlFcnJvcih0KXtpZih0IGluc3RhbmNlb2YgVHlwZUVycm9yJiZ0Lm1lc3NhZ2UuaW5jbHVkZXMoImZldGNoIil8fHQubmFtZT09PSJBYm9ydEVycm9yInx8dC5tZXNzYWdlLmluY2x1ZGVzKCJ0aW1lb3V0IikpcmV0dXJuITA7bGV0IHI9dGhpcy5vcHRpb25zLnJldHJ5T247cmV0dXJuIHR5cGVvZiByPT0iZnVuY3Rpb24iP3Iodm9pZCAwLHQpOiExfWNhbGN1bGF0ZURlbGF5KHQpe2xldCBpPWxqZSh0aGlzLm9wdGlvbnMuYmFja29mZikuY2FsY3VsYXRlKHQsdGhpcy5vcHRpb25zLmluaXRpYWxEZWxheSx0aGlzLm9wdGlvbnMubWF4RGVsYXkpO3JldHVybiBjamUoaSl9YXN5bmMgZGVsYXkodCl7YXdhaXQgQ3QuZGVsYXlGb3IodCl9fX0pO3ZhciBZOCxZSz1wKCgpPT57ZDkoKTtZOD1jbGFzc3tjb25zdHJ1Y3Rvcigpe3RoaXMuaW5GbGlnaHRSZXF1ZXN0cz1uZXcgTWFwfWdlbmVyYXRlS2V5KHQpe2xldCByPXQudXJsLGk9dC5tZXRob2Q7cmV0dXJuIGk9PT0iR0VUInx8aT09PSJIRUFEIj9gJHtpfToke3J9YDpgJHtpfToke3J9OiR7RGF0ZS5ub3coKX1gfWFzeW5jIGV4ZWN1dGUodCxyKXtsZXQgaT10aGlzLmluRmxpZ2h0UmVxdWVzdHMuZ2V0KHQpO2lmKGkpcmV0dXJue3Jlc3BvbnNlOihhd2FpdCBpLnByb21pc2UpLmNsb25lKCksd2FzRGVkdXBsaWNhdGVkOiEwfTtsZXQgYT1YZS5kZWZlcigpO3RoaXMuaW5GbGlnaHRSZXF1ZXN0cy5zZXQodCxhKTt0cnl7bGV0IG49YXdhaXQgcigpO3JldHVybiBhLnJlc29sdmUobiksdGhpcy5pbkZsaWdodFJlcXVlc3RzLmRlbGV0ZSh0KSx7cmVzcG9uc2U6bix3YXNEZWR1cGxpY2F0ZWQ6ITF9fWNhdGNoKG4pe3Rocm93IGEucmVqZWN0KG4pLHRoaXMuaW5GbGlnaHRSZXF1ZXN0cy5kZWxldGUodCksbn19aXNJbkZsaWdodCh0KXtyZXR1cm4gdGhpcy5pbkZsaWdodFJlcXVlc3RzLmhhcyh0KX1nZXRJbkZsaWdodENvdW50KCl7cmV0dXJuIHRoaXMuaW5GbGlnaHRSZXF1ZXN0cy5zaXplfWNsZWFyKCl7dGhpcy5pbkZsaWdodFJlcXVlc3RzLmNsZWFyKCl9fX0pO2Z1bmN0aW9uIGNQcihlKXtsZXQgdD1uZXcgQWJvcnRDb250cm9sbGVyLHI9bmV3IEN0LlRpbWVvdXQoZSxudWxsKTtyZXR1cm4gci5wcm9taXNlLnRoZW4oKCk9Pnt0LmFib3J0KCl9KSx7Y29udHJvbGxlcjp0LGNsZWFudXA6KCk9PntyLmNhbmNlbCgpfX19YXN5bmMgZnVuY3Rpb24gWksoZSx0LHIpe2xldHtjb250cm9sbGVyOmksY2xlYW51cDphfT1jUHIocik7dHJ5e2xldCBuPWF3YWl0IGZldGNoKGUsey4uLnQsc2lnbmFsOmkuc2lnbmFsfSk7cmV0dXJuIGEoKSxufWNhdGNoKG4pe3Rocm93IGEoKSxuIGluc3RhbmNlb2YgRXJyb3ImJm4ubmFtZT09PSJBYm9ydEVycm9yIj9uZXcgRXJyb3IoYFJlcXVlc3QgdGltZW91dCBhZnRlciAke3J9bXM6ICR7ZX1gKTpufX12YXIgdWplPXAoKCk9PntkOSgpfSk7dmFyIFU2LFhLPXAoKCk9PntySygpO1ZLKCk7R0soKTtZSygpO3VqZSgpO1U2PWNsYXNze2NvbnN0cnVjdG9yKHQ9e30pe3RoaXMuZGVmYXVsdE9wdGlvbnM9dCx0aGlzLmludGVyY2VwdG9yTWFuYWdlcj1uZXcgUDgsdGhpcy5jYWNoZU1hbmFnZXI9bmV3IFc4LHRoaXMuZGVkdXBsaWNhdG9yPW5ldyBZOH1hZGRSZXF1ZXN0SW50ZXJjZXB0b3IodCl7dGhpcy5pbnRlcmNlcHRvck1hbmFnZXIuYWRkUmVxdWVzdEludGVyY2VwdG9yKHQpfWFkZFJlc3BvbnNlSW50ZXJjZXB0b3IodCl7dGhpcy5pbnRlcmNlcHRvck1hbmFnZXIuYWRkUmVzcG9uc2VJbnRlcmNlcHRvcih0KX1hZGRFcnJvckludGVyY2VwdG9yKHQpe3RoaXMuaW50ZXJjZXB0b3JNYW5hZ2VyLmFkZEVycm9ySW50ZXJjZXB0b3IodCl9cmVtb3ZlUmVxdWVzdEludGVyY2VwdG9yKHQpe3RoaXMuaW50ZXJjZXB0b3JNYW5hZ2VyLnJlbW92ZVJlcXVlc3RJbnRlcmNlcHRvcih0KX1yZW1vdmVSZXNwb25zZUludGVyY2VwdG9yKHQpe3RoaXMuaW50ZXJjZXB0b3JNYW5hZ2VyLnJlbW92ZVJlc3BvbnNlSW50ZXJjZXB0b3IodCl9cmVtb3ZlRXJyb3JJbnRlcmNlcHRvcih0KXt0aGlzLmludGVyY2VwdG9yTWFuYWdlci5yZW1vdmVFcnJvckludGVyY2VwdG9yKHQpfWNsZWFySW50ZXJjZXB0b3JzKCl7dGhpcy5pbnRlcmNlcHRvck1hbmFnZXIuY2xlYXJBbGwoKX1hc3luYyBjbGVhckNhY2hlKCl7YXdhaXQgdGhpcy5jYWNoZU1hbmFnZXIuY2xlYXIoKX1hc3luYyByZXF1ZXN0KHQscj17fSl7bGV0IGk9ey4uLnRoaXMuZGVmYXVsdE9wdGlvbnMsLi4ucn0sYTtpZih0eXBlb2YgdD09InN0cmluZyI/YT1uZXcgUmVxdWVzdCh0LGkpOmE9dCxhPWF3YWl0IHRoaXMuaW50ZXJjZXB0b3JNYW5hZ2VyLnByb2Nlc3NSZXF1ZXN0KGEpLGkuaW50ZXJjZXB0b3JzPy5yZXF1ZXN0KWZvcihsZXQgbyBvZiBpLmludGVyY2VwdG9ycy5yZXF1ZXN0KWE9YXdhaXQgbyhhKTtpZihpLmRlZHVwbGljYXRlPz8hMSl7bGV0IG89dGhpcy5kZWR1cGxpY2F0b3IuZ2VuZXJhdGVLZXkoYSk7cmV0dXJuKGF3YWl0IHRoaXMuZGVkdXBsaWNhdG9yLmV4ZWN1dGUobyxhc3luYygpPT5hd2FpdCB0aGlzLmV4ZWN1dGVSZXF1ZXN0KGEsaSkpKS5yZXNwb25zZX1yZXR1cm4gYXdhaXQgdGhpcy5leGVjdXRlUmVxdWVzdChhLGkpfWFzeW5jIGV4ZWN1dGVSZXF1ZXN0KHQscil7dHJ5e2xldCBpPXR5cGVvZiByLnJldHJ5PT0ib2JqZWN0Ij9yLnJldHJ5OnIucmV0cnk/e306dm9pZCAwLGE9YXN5bmMgcz0+e2xldCBsPXIudGltZW91dD8/NmU0O3JldHVybiBhd2FpdCBaSyhzLnVybCx7bWV0aG9kOnMubWV0aG9kLGhlYWRlcnM6cy5oZWFkZXJzLGJvZHk6cy5ib2R5LC4uLnJ9LGwpfSxuPWFzeW5jKHMsbCk9PntsZXQgYz1yLnRpbWVvdXQ/PzZlNDtyZXR1cm4gYXdhaXQgWksocyxsLGMpfSxvO2lmKGkpe2xldCBzPW5ldyBHOChpKTtpZihyLmZhbGxiYWNrVXJscyYmci5mYWxsYmFja1VybHMubGVuZ3RoPjApe2xldCBsPVt0LnVybCwuLi5yLmZhbGxiYWNrVXJsc107bz1hd2FpdCBzLmV4ZWN1dGVXaXRoRmFsbGJhY2tzKGwse21ldGhvZDp0Lm1ldGhvZCxoZWFkZXJzOnQuaGVhZGVycyxib2R5OnQuYm9keSwuLi5yfSxuKX1lbHNlIG89YXdhaXQgcy5leGVjdXRlKGFzeW5jKCk9Pihhd2FpdCB0aGlzLmNhY2hlTWFuYWdlci5leGVjdXRlKHQscixhKSkucmVzcG9uc2UpfWVsc2Ugbz0oYXdhaXQgdGhpcy5jYWNoZU1hbmFnZXIuZXhlY3V0ZSh0LHIsYSkpLnJlc3BvbnNlO2lmKG89YXdhaXQgdGhpcy5pbnRlcmNlcHRvck1hbmFnZXIucHJvY2Vzc1Jlc3BvbnNlKG8pLHIuaW50ZXJjZXB0b3JzPy5yZXNwb25zZSlmb3IobGV0IHMgb2Ygci5pbnRlcmNlcHRvcnMucmVzcG9uc2Upbz1hd2FpdCBzKG8pO3JldHVybiBvfWNhdGNoKGkpe3Rocm93IGF3YWl0IHRoaXMuaW50ZXJjZXB0b3JNYW5hZ2VyLnByb2Nlc3NFcnJvcihpIGluc3RhbmNlb2YgRXJyb3I/aTpuZXcgRXJyb3IoU3RyaW5nKGkpKSl9fWFzeW5jIGdldEpzb24odCxyPXt9KXtsZXQgaT1hd2FpdCB0aGlzLnJlcXVlc3QodCx7Li4ucixtZXRob2Q6IkdFVCIsaGVhZGVyczp7QWNjZXB0OiJhcHBsaWNhdGlvbi9qc29uIiwuLi5yLmhlYWRlcnN8fHt9fX0pO2lmKCFpLm9rKXRocm93IG5ldyBFcnJvcihgSFRUUCAke2kuc3RhdHVzfTogJHtpLnN0YXR1c1RleHR9YCk7cmV0dXJuIGF3YWl0IGkuanNvbigpfWFzeW5jIHBvc3RKc29uKHQscixpPXt9KXtsZXQgYT1hd2FpdCB0aGlzLnJlcXVlc3QodCx7Li4uaSxtZXRob2Q6IlBPU1QiLGhlYWRlcnM6eyJDb250ZW50LVR5cGUiOiJhcHBsaWNhdGlvbi9qc29uIixBY2NlcHQ6ImFwcGxpY2F0aW9uL2pzb24iLC4uLmkuaGVhZGVyc3x8e319LGJvZHk6SlNPTi5zdHJpbmdpZnkocil9KTtpZighYS5vayl0aHJvdyBuZXcgRXJyb3IoYEhUVFAgJHthLnN0YXR1c306ICR7YS5zdGF0dXNUZXh0fWApO3JldHVybiBhd2FpdCBhLmpzb24oKX1hc3luYyBwdXRKc29uKHQscixpPXt9KXtsZXQgYT1hd2FpdCB0aGlzLnJlcXVlc3QodCx7Li4uaSxtZXRob2Q6IlBVVCIsaGVhZGVyczp7IkNvbnRlbnQtVHlwZSI6ImFwcGxpY2F0aW9uL2pzb24iLEFjY2VwdDoiYXBwbGljYXRpb24vanNvbiIsLi4uaS5oZWFkZXJzfHx7fX0sYm9keTpKU09OLnN0cmluZ2lmeShyKX0pO2lmKCFhLm9rKXRocm93IG5ldyBFcnJvcihgSFRUUCAke2Euc3RhdHVzfTogJHthLnN0YXR1c1RleHR9YCk7cmV0dXJuIGF3YWl0IGEuanNvbigpfWFzeW5jIGRlbGV0ZUpzb24odCxyPXt9KXtsZXQgaT1hd2FpdCB0aGlzLnJlcXVlc3QodCx7Li4ucixtZXRob2Q6IkRFTEVURSIsaGVhZGVyczp7QWNjZXB0OiJhcHBsaWNhdGlvbi9qc29uIiwuLi5yLmhlYWRlcnN8fHt9fX0pO2lmKCFpLm9rKXRocm93IG5ldyBFcnJvcihgSFRUUCAke2kuc3RhdHVzfTogJHtpLnN0YXR1c1RleHR9YCk7cmV0dXJuIGF3YWl0IGkuanNvbigpfX19KTthc3luYyBmdW5jdGlvbiBqbihlLHQpe2xldCByPWUgaW5zdGFuY2VvZiBSZXF1ZXN0P2UudXJsOlN0cmluZyhlKSxpPWUgaW5zdGFuY2VvZiBSZXF1ZXN0P2U6bmV3IFJlcXVlc3Qocix0KTtyZXR1cm4gYXdhaXQgZzIucmVxdWVzdChpLHQpfXZhciBnMixwamU9cCgoKT0+e1hLKCk7ZzI9bmV3IFU2O2puLmdldEpzb249YXN5bmMgZnVuY3Rpb24oZSx0KXtyZXR1cm4gYXdhaXQgZzIuZ2V0SnNvbihlLHQpfSxqbi5wb3N0SnNvbj1hc3luYyBmdW5jdGlvbihlLHQscil7cmV0dXJuIGF3YWl0IGcyLnBvc3RKc29uKGUsdCxyKX0sam4ucHV0SnNvbj1hc3luYyBmdW5jdGlvbihlLHQscil7cmV0dXJuIGF3YWl0IGcyLnB1dEpzb24oZSx0LHIpfSxqbi5kZWxldGVKc29uPWFzeW5jIGZ1bmN0aW9uKGUsdCl7cmV0dXJuIGF3YWl0IGcyLmRlbGV0ZUpzb24oZSx0KX0sam4uYWRkUmVxdWVzdEludGVyY2VwdG9yPWZ1bmN0aW9uKGUpe2cyLmFkZFJlcXVlc3RJbnRlcmNlcHRvcihlKX0sam4uYWRkUmVzcG9uc2VJbnRlcmNlcHRvcj1mdW5jdGlvbihlKXtnMi5hZGRSZXNwb25zZUludGVyY2VwdG9yKGUpfSxqbi5hZGRFcnJvckludGVyY2VwdG9yPWZ1bmN0aW9uKGUpe2cyLmFkZEVycm9ySW50ZXJjZXB0b3IoZSl9LGpuLmNsZWFySW50ZXJjZXB0b3JzPWZ1bmN0aW9uKCl7ZzIuY2xlYXJJbnRlcmNlcHRvcnMoKX0sam4uY2xlYXJDYWNoZT1hc3luYyBmdW5jdGlvbigpe2F3YWl0IGcyLmNsZWFyQ2FjaGUoKX0sam4uY3JlYXRlQ2xpZW50PWZ1bmN0aW9uKGUpe3JldHVybiBuZXcgVTYoZSl9LGpuLmdldERlZmF1bHRDbGllbnQ9ZnVuY3Rpb24oKXtyZXR1cm4gZzJ9fSk7dmFyIGg5PXt9O0ZlKGg5LHtDYWNoZU1hbmFnZXI6KCk9Plc4LENhY2hlU3RvcmU6KCk9PlU4LEludGVyY2VwdG9yTWFuYWdlcjooKT0+UDgsUmVxdWVzdERlZHVwbGljYXRvcjooKT0+WTgsUmV0cnlNYW5hZ2VyOigpPT5HOCxXZWJyZXF1ZXN0Q2xpZW50OigpPT5VNixjcmVhdGVDb25kaXRpb25hbEhlYWRlcnM6KCk9PllULGV4dHJhY3RDYWNoZU1ldGFkYXRhOigpPT5ScyxoZWFkZXJzVG9PYmplY3Q6KCk9PlpULGlzRnJlc2g6KCk9PnU5LG9iamVjdFRvSGVhZGVyczooKT0+bmplLHJlcXVpcmVzUmV2YWxpZGF0aW9uOigpPT5wOSx3ZWJyZXF1ZXN0OigpPT5qbn0pO3ZhciBoamU9cCgoKT0+e3BqZSgpO1hLKCk7VksoKTtHVCgpO0dLKCk7cksoKTtZSygpO1hUKCl9KTt2YXIgYTQsbjQ9cCgoKT0+e2J6KCk7YTQ9ZXIoeVMoKSwxKTtHbSgpO1JIZSgpO1RzKCk7QkhlKCk7RWkoKTtoamUoKX0pO3ZhciBKbCxmOT1wKCgpPT57bjQoKTtKbD1jbGFzc3tjb25zdHJ1Y3Rvcih0LHIpe3RoaXMuZXJyb3JUZXh0PXQsdGhpcy5lcnJvckRhdGE9cn19fSk7dmFyIGVfLGZqZT1wKCgpPT57ZjkoKTtuNCgpO2VfPWNsYXNze2NvbnN0cnVjdG9yKCl7dGhpcy5sb2NhbERhdGE9e319YXN5bmMgcGFzc0d1YXJkcyh0LHIpe2xldCBpPW5ldyByOS5HdWFyZFNldCh0KTtpZighYXdhaXQgaS5hbGxHdWFyZHNQYXNzKHIpKXtsZXQgbj1hd2FpdCBpLmdldEZhaWxlZEhpbnQocik7dGhyb3cgbmV3IEpsKGBndWFyZCBmYWlsZWQ6ICR7bn1gLHtmYWlsZWRIaW50Om59KX19fX0pO3ZhciBRSyxKSz1wKCgpPT57bjQoKTtmOSgpO2ZqZSgpO1FLPWNsYXNze2NvbnN0cnVjdG9yKHQscil7dGhpcy5tZXRob2Q9dCx0aGlzLmhhbmRsZXJGdW5jdGlvbj1yfWFzeW5jIGFkZFJlc3BvbnNlKHQpe2lmKHQubWV0aG9kIT09dGhpcy5tZXRob2QpdGhyb3cgbmV3IEVycm9yKCJ0aGlzIGhhbmRsZXIgaGFzIGJlZW4gZ2l2ZW4gYSB3cm9uZyBtZXRob2QgdG8gYW5zd2VyIHRvLiBQbGVhc2UgdXNlIGEgVHlwZWRSb3V0ZXIgdG8gZmlsdGVyIHJlcXVlc3RzIik7bGV0IHIsaT1uZXcgZV87dC5sb2NhbERhdGEmJihpLmxvY2FsRGF0YT10LmxvY2FsRGF0YSk7bGV0IGE9YXdhaXQgdGhpcy5oYW5kbGVyRnVuY3Rpb24odC5yZXF1ZXN0LGkpLmNhdGNoKG49PntuIGluc3RhbmNlb2YgSmw/cj1uOmNvbnNvbGUubG9nKG4pfSk7cmV0dXJuIHImJih0LmVycm9yPXt0ZXh0OnIuZXJyb3JUZXh0LGRhdGE6ci5lcnJvckRhdGF9KSxhJiYodC5yZXNwb25zZT1hKSx0Py5jb3JyZWxhdGlvbj8ucGhhc2UmJih0LmNvcnJlbGF0aW9uLnBoYXNlPSJyZXNwb25zZSIpLHR9fX0pO3ZhciBXNixtOT1wKCgpPT57bjQoKTt0XygpO0pLKCk7S0soKTtXNj1jbGFzcyBle2NvbnN0cnVjdG9yKCl7dGhpcy5ob29rcz17fSx0aGlzLnJvdXRlck1hcD1uZXcgdmkuT2JqZWN0TWFwLHRoaXMuaGFuZGxlck1hcD1uZXcgdmkuT2JqZWN0TWFwLHRoaXMucmVnaXN0ZXJlZFZpcnR1YWxTdHJlYW1zPW5ldyB2aS5PYmplY3RNYXAsdGhpcy5maXJlRXZlbnRJbnRlcmVzdE1hcD1uZXcgdmkuSW50ZXJlc3RNYXAodD0+dCl9c3RhdGljIGdldCBnbG9iYWxIb29rcygpe3JldHVybiBnbG9iYWxUaGlzLl9fdHlwZWRSb3V0ZXJHbG9iYWxIb29rc3x8KGdsb2JhbFRoaXMuX190eXBlZFJvdXRlckdsb2JhbEhvb2tzPXt9KSxnbG9iYWxUaGlzLl9fdHlwZWRSb3V0ZXJHbG9iYWxIb29rc31zdGF0aWMgc2V0IGdsb2JhbEhvb2tzKHQpe2dsb2JhbFRoaXMuX190eXBlZFJvdXRlckdsb2JhbEhvb2tzPXR9c3RhdGljIHNldEdsb2JhbEhvb2tzKHQpe2xldCByPWUuZ2xvYmFsSG9va3M7ZS5nbG9iYWxIb29rcz17Li4uciwuLi50fX1zdGF0aWMgY2xlYXJHbG9iYWxIb29rcygpe2dsb2JhbFRoaXMuX190eXBlZFJvdXRlckdsb2JhbEhvb2tzPXt9fXNldEhvb2tzKHQpe3RoaXMuaG9va3M9ey4uLnRoaXMuaG9va3MsLi4udH19Y2FsbEhvb2sodCxyKXt0cnl7ZS5nbG9iYWxIb29rc1t0XT8uKHIpLHRoaXMuaG9va3NbdF0/LihyKX1jYXRjaChpKXtjb25zb2xlLmVycm9yKGBUeXBlZFJvdXRlciBob29rIGVycm9yICgke3R9KTpgLGkpfX1hZGRUeXBlZEhhbmRsZXIodCl7aWYodGhpcy5nZXRUeXBlZEhhbmRsZXJGb3JNZXRob2QodC5tZXRob2QpKXRocm93IG5ldyBFcnJvcihgYSBUeXBlZEhhbmRsZXIgZm9yICR7dC5tZXRob2R9IGFscmVkeSBleGlzdHMhIENhbid0IGFkZCBhbm90aGVyIG9uZS5gKTt0aGlzLmhhbmRsZXJNYXAuYWRkKHQpfWFkZFR5cGVkUm91dGVyKHQpe3RoaXMucm91dGVyTWFwLmZpbmRTeW5jKGk9Pmk9PT10KXx8KHRoaXMucm91dGVyTWFwLmFkZCh0KSx0LmFkZFR5cGVkUm91dGVyKHRoaXMpKX1jaGVja0ZvclR5cGVkSGFuZGxlcih0KXtyZXR1cm4hIXRoaXMuZ2V0VHlwZWRIYW5kbGVyRm9yTWV0aG9kKHQpfWdldFR5cGVkSGFuZGxlckZvck1ldGhvZCh0LHI9W10pe3IucHVzaCh0aGlzKTtsZXQgaTtyZXR1cm4gaT10aGlzLmhhbmRsZXJNYXAuZmluZFN5bmMoYT0+YS5tZXRob2Q9PT10KSxpfHx0aGlzLnJvdXRlck1hcC5nZXRBcnJheSgpLmZvckVhY2goYT0+eyFpJiYhci5pbmNsdWRlcyhhKSYmKGk9YS5nZXRUeXBlZEhhbmRsZXJGb3JNZXRob2QodCxyKSl9KSxpfXN0YXRpY3t0aGlzLmRlZmF1bHRSb3V0ZU9wdGlvbnM9e2xvY2FsUmVxdWVzdDohMSxza2lwSG9va3M6ITF9fWFzeW5jIHJvdXRlQW5kQWRkUmVzcG9uc2UodCxyPXt9KXtsZXQgaT17Li4uZS5kZWZhdWx0Um91dGVPcHRpb25zLC4uLnJ9O2lmKHQ9QnMuZGVjb2RlUGF5bG9hZEZyb21OZXR3b3JrKHQse3R5cGVkcm91dGVyOnRoaXN9KSx0LmxvY2FsRGF0YT10LmxvY2FsRGF0YXx8e30sdC5sb2NhbERhdGEuZmlyc3RUeXBlZHJvdXRlcj10aGlzLHQubWV0aG9kPT09IiMjVmlydHVhbFN0cmVhbSMjIil7bGV0IGE9YXdhaXQgdGhpcy5oYW5kbGVTdHJlYW1UeXBlZFJlcXVlc3QodCk7cmV0dXJuIGEubG9jYWxEYXRhPW51bGwsYX1pZih0Py5jb3JyZWxhdGlvbj8ucGhhc2U9PT0icmVxdWVzdCJ8fGkubG9jYWxSZXF1ZXN0KXtsZXQgYT1EYXRlLm5vdygpO2kuc2tpcEhvb2tzfHx0aGlzLmNhbGxIb29rKCJvbkluY29taW5nUmVxdWVzdCIse2NvcnJlbGF0aW9uSWQ6dC5jb3JyZWxhdGlvbj8uaWR8fCJ1bmtub3duIixtZXRob2Q6dC5tZXRob2QsZGlyZWN0aW9uOiJpbmNvbWluZyIscGhhc2U6InJlcXVlc3QiLHRpbWVzdGFtcDphLHBheWxvYWQ6dC5yZXF1ZXN0fSk7bGV0IG49dGhpcy5nZXRUeXBlZEhhbmRsZXJGb3JNZXRob2QodC5tZXRob2QpO3JldHVybiBuPyh0PWF3YWl0IG4uYWRkUmVzcG9uc2UodCksdC5sb2NhbERhdGE9bnVsbCx0PUJzLmVuY29kZVBheWxvYWRGb3JOZXR3b3JrKHQse3R5cGVkcm91dGVyOnRoaXN9KSxpLnNraXBIb29rc3x8dGhpcy5jYWxsSG9vaygib25PdXRnb2luZ1Jlc3BvbnNlIix7Y29ycmVsYXRpb25JZDp0LmNvcnJlbGF0aW9uPy5pZHx8InVua25vd24iLG1ldGhvZDp0Lm1ldGhvZCxkaXJlY3Rpb246Im91dGdvaW5nIixwaGFzZToicmVzcG9uc2UiLHRpbWVzdGFtcDpEYXRlLm5vdygpLGR1cmF0aW9uTXM6RGF0ZS5ub3coKS1hLHBheWxvYWQ6dC5yZXNwb25zZSxlcnJvcjp0LmVycm9yPy50ZXh0fSksdCk6KGNvbnNvbGUubG9nKGBDYW5ub3QgZmluZCBoYW5kbGVyIGZvciBtZXRob2RuYW1lICR7dC5tZXRob2R9YCksdC5lcnJvcj17dGV4dDoiVGhlcmUgaXMgbm8gYXZhaWxhYmxlIG1ldGhvZCBmb3IgdGhpcyBjYWxsIG9uIHRoZSBzZXJ2ZXIgc2lkZSIsZGF0YTp7fX0sdC5jb3JyZWxhdGlvbi5waGFzZT0icmVzcG9uc2UiLHQubG9jYWxEYXRhPW51bGwsdD1Ccy5lbmNvZGVQYXlsb2FkRm9yTmV0d29yayh0LHt0eXBlZHJvdXRlcjp0aGlzfSksaS5za2lwSG9va3N8fHRoaXMuY2FsbEhvb2soIm9uT3V0Z29pbmdSZXNwb25zZSIse2NvcnJlbGF0aW9uSWQ6dC5jb3JyZWxhdGlvbj8uaWR8fCJ1bmtub3duIixtZXRob2Q6dC5tZXRob2QsZGlyZWN0aW9uOiJvdXRnb2luZyIscGhhc2U6InJlc3BvbnNlIix0aW1lc3RhbXA6RGF0ZS5ub3coKSxkdXJhdGlvbk1zOkRhdGUubm93KCktYSxwYXlsb2FkOnQucmVzcG9uc2UsZXJyb3I6dC5lcnJvcj8udGV4dH0pLHQpfWVsc2UgcmV0dXJuIHQ/LmNvcnJlbGF0aW9uPy5waGFzZT09PSJyZXNwb25zZSI/KGkuc2tpcEhvb2tzfHx0aGlzLmNhbGxIb29rKCJvbkluY29taW5nUmVzcG9uc2UiLHtjb3JyZWxhdGlvbklkOnQuY29ycmVsYXRpb24/LmlkfHwidW5rbm93biIsbWV0aG9kOnQubWV0aG9kLGRpcmVjdGlvbjoiaW5jb21pbmciLHBoYXNlOiJyZXNwb25zZSIsdGltZXN0YW1wOkRhdGUubm93KCkscGF5bG9hZDp0LnJlc3BvbnNlLGVycm9yOnQuZXJyb3I/LnRleHR9KSx0aGlzLmZpcmVFdmVudEludGVyZXN0TWFwLmZpbmRJbnRlcmVzdCh0LmNvcnJlbGF0aW9uLmlkKT8uZnVsbGZpbGxJbnRlcmVzdCh0KSxudWxsKTooY29uc29sZS5sb2coInJlY2VpdmVkIHdlaXJkbHkgc2hhcGVkIHJlcXVlc3QiKSxjb25zb2xlLmxvZyh0KSxudWxsKX1hc3luYyBoYW5kbGVTdHJlYW1UeXBlZFJlcXVlc3QodCl7bGV0IHI9YXdhaXQgdGhpcy5yZWdpc3RlcmVkVmlydHVhbFN0cmVhbXMuZmluZChhc3luYyBhPT5hLnN0cmVhbUlkPT09dC5yZXF1ZXN0LnN0cmVhbUlkKTtpZihyKWNvbnNvbGUubG9nKGBzdWNjZXNzOiBmb3VuZCByZWxldmFudCB2aXJ0dWFsIHN0cmVhbSB3aXRoIGlkICR7dC5yZXF1ZXN0LnN0cmVhbUlkfWApO2Vsc2UgcmV0dXJuIGNvbnNvbGUubG9nKGBubyByZWxldmFudCB2aXJ0dWFsIHN0cmVhbSBmb3VuZCBmb3Igc3RyZWFtIHdpdGggaWQgJHt0LnJlcXVlc3Quc3RyZWFtSWR9YCksY29uc29sZS5sb2codGhpcy5yZWdpc3RlcmVkVmlydHVhbFN0cmVhbXMuZ2V0QXJyYXkoKSksdDtyZXR1cm4gYXdhaXQgci5oYW5kbGVTdHJlYW1Ucih0KX19fSk7dmFyIG1qZSxCcyx0Xz1wKCgpPT57bjQoKTttOSgpO21qZT0iIyMjIyMjIyMjIyMjI0NMT1NJTkcgQklUIyMjIyMjIyMjIyMjIyIsQnM9Y2xhc3MgZXtzdGF0aWMgZW5jb2RlUGF5bG9hZEZvck5ldHdvcmsodCxyLGksYT1bXSl7cmV0dXJuIXR8fEk4LmlzQnVmZmVyTGlrZSh0KT90OnQgaW5zdGFuY2VvZiBlPyghdC5zaWRlJiZyLnNlbmRNZXRob2QmJih0LnNpZGU9InJlcXVlc3RpbmciLHQuc2VuZE1ldGhvZD1yLnNlbmRNZXRob2QpLCF0LnNpZGUmJnIudHlwZWRyb3V0ZXImJih0LnNpZGU9InJlc3BvbmRpbmciLHQudHlwZWRyb3V0ZXI9ci50eXBlZHJvdXRlcixyLnR5cGVkcm91dGVyLnJlZ2lzdGVyZWRWaXJ0dWFsU3RyZWFtcy5hZGQodCkpLCFpLnJlc3BvbnNlfHxhLmluY2x1ZGVzKCJyZXNwb25zZSIpPyh0LnN0YXJ0S2VlcEFsaXZlTG9vcCgpLHtfaXNWaXJ0dWFsU3RyZWFtOiEwLHN0cmVhbUlkOnQuc3RyZWFtSWR9KTp7X09CTUlUVEVEX1ZJUlRVQUxfU1RSRUFNOiEwLHJlYXNvbjoicGF0aCBpcyB1bmRlciAucmVxdWVzdDogb2JtaXR0ZWQgZm9yIGRlZHVwbGljYXRpb24gcmVhc29ucyBpbiByZXNwb25zZSBjeWNsZS4ifSk6QXJyYXkuaXNBcnJheSh0KT90Lm1hcCgobixvKT0+ZS5lbmNvZGVQYXlsb2FkRm9yTmV0d29yayhuLHIsaXx8dCxhLmNvbmNhdChTdHJpbmcobykpKSk6dCE9PW51bGwmJnR5cGVvZiB0PT0ib2JqZWN0Ij9PYmplY3QuZW50cmllcyh0KS5yZWR1Y2UoKG4sW28sc10pPT57bGV0IGw9YS5jb25jYXQobyk7cmV0dXJuIG5bb109ZS5lbmNvZGVQYXlsb2FkRm9yTmV0d29yayhzLHIsaXx8dCxsKSxufSx7fSk6dH1zdGF0aWMgZGVjb2RlUGF5bG9hZEZyb21OZXR3b3JrKHQscil7aWYoSTguaXNCdWZmZXJMaWtlKHQpfHx0IGluc3RhbmNlb2YgVzYpcmV0dXJuIHQ7aWYodCE9PW51bGwmJnR5cGVvZiB0PT0ib2JqZWN0Iil7aWYodCBpbnN0YW5jZW9mIFNldHx8dCBpbnN0YW5jZW9mIE1hcHx8dCBpbnN0YW5jZW9mIERhdGV8fHQgaW5zdGFuY2VvZiBSZWdFeHB8fHQgaW5zdGFuY2VvZiBFcnJvcnx8dCBpbnN0YW5jZW9mIFByb21pc2V8fHR5cGVvZiB0LnRoZW49PSJmdW5jdGlvbiIpcmV0dXJuIHQ7aWYodC5faXNWaXJ0dWFsU3RyZWFtKXtsZXQgaT1uZXcgZTtyZXR1cm4gaS5zdHJlYW1JZD10LnN0cmVhbUlkLCFpLnNpZGUmJnIuc2VuZE1ldGhvZCYmKGkuc2lkZT0icmVxdWVzdGluZyIsaS5zZW5kTWV0aG9kPXIuc2VuZE1ldGhvZCksIWkuc2lkZSYmci50eXBlZHJvdXRlciYmKGkuc2lkZT0icmVzcG9uZGluZyIsaS50eXBlZHJvdXRlcj1yLnR5cGVkcm91dGVyLHIudHlwZWRyb3V0ZXIucmVnaXN0ZXJlZFZpcnR1YWxTdHJlYW1zLmFkZChpKSksaS5zdGFydEtlZXBBbGl2ZUxvb3AoKSxpfWVsc2UgaWYoQXJyYXkuaXNBcnJheSh0KSl7bGV0IGk9W107Zm9yKGxldCBhIG9mIHQpaS5wdXNoKGUuZGVjb2RlUGF5bG9hZEZyb21OZXR3b3JrKGEscikpO3JldHVybiBpfWVsc2UgcmV0dXJuIE9iamVjdC5rZXlzKHQpLnJlZHVjZSgoaSxhKT0+KGlbYV09ZS5kZWNvZGVQYXlsb2FkRnJvbU5ldHdvcmsodFthXSxyKSxpKSx7fSl9ZWxzZSByZXR1cm4gdH1jb25zdHJ1Y3Rvcigpe3RoaXMuc3RyZWFtSWQ9YTQudW5pKCksdGhpcy5rZWVwQWxpdmU9ITAsdGhpcy5zZW5kQmFja3ByZXNzdXJlZEFycmF5PW5ldyB2aS5CYWNrcHJlc3N1cmVkQXJyYXkoMTYpLHRoaXMucmVjZWl2ZUJhY2twcmVzc3VyZWRBcnJheT1uZXcgdmkuQmFja3ByZXNzdXJlZEFycmF5KDE2KX1hc3luYyB3b3JrT25RdWV1ZSgpe2lmKHRoaXMud29ya2luZ0RlZmVycmVkKXJldHVybiB0aGlzLndvcmtpbmdEZWZlcnJlZC5wcm9taXNlO2lmKHRoaXMud29ya2luZ0RlZmVycmVkPVhlLmRlZmVyKCksdGhpcy5zaWRlPT09InJlcXVlc3RpbmciKXtsZXQgdD0hdGhpcy5yZWNlaXZlQmFja3ByZXNzdXJlZEFycmF5LmNoZWNrU3BhY2VBdmFpbGFibGUoKSxyPSExLGk9ITEsYT1hc3luYygpPT57bGV0IG49YXdhaXQgdGhpcy5zZW5kTWV0aG9kKHttZXRob2Q6IiMjVmlydHVhbFN0cmVhbSMjIixyZXF1ZXN0OntzdHJlYW1JZDp0aGlzLnN0cmVhbUlkLGN5Y2xlSWQ6YTQudW5pKCksY3ljbGU6InJlcXVlc3QiLG1haW5QdXJwb3NlOiJmZWVkYmFjayIsbmV4dDp0aGlzLnNlbmRCYWNrcHJlc3N1cmVkQXJyYXkuZGF0YS5sZW5ndGg+MCxiYWNrcHJlc3N1cmU6IXRoaXMucmVjZWl2ZUJhY2twcmVzc3VyZWRBcnJheS5jaGVja1NwYWNlQXZhaWxhYmxlKCl9LHJlc3BvbnNlOm51bGx9KS5jYXRjaCgoKT0+e2NvbnNvbGUubG9nKCJzdHJlYW0gZW5kZWQgaW1tYXR1cmVseSIpLHRoaXMua2VlcEFsaXZlPSExfSk7biYmbi5yZXNwb25zZSYmKGk9bi5yZXNwb25zZS5iYWNrcHJlc3N1cmUscj1uLnJlc3BvbnNlLm5leHQpfTtmb3IoYXdhaXQgYSgpO3RoaXMuc2VuZEJhY2twcmVzc3VyZWRBcnJheS5kYXRhLmxlbmd0aD4wfHxyOyl7aWYoaSlmb3IoO2k7KWNvbnNvbGUubG9nKCJ3YWl0aW5nIGZvciBmZWVkYmFjayBiZWNhdXNlIG9mIGJhY2twcmVzc3VyZS4uLiIpLGF3YWl0IEN0LmRlbGF5Rm9yKDUwKSxhd2FpdCBhKCk7bGV0IG47dGhpcy5zZW5kQmFja3ByZXNzdXJlZEFycmF5LmRhdGEubGVuZ3RoPjAmJihuPXRoaXMuc2VuZEJhY2twcmVzc3VyZWRBcnJheS5zaGlmdCgpKTtsZXQgbztvPWF3YWl0IHRoaXMuc2VuZE1ldGhvZCh7bWV0aG9kOiIjI1ZpcnR1YWxTdHJlYW0jIyIscmVxdWVzdDp7c3RyZWFtSWQ6dGhpcy5zdHJlYW1JZCxjeWNsZUlkOmE0LnVuaSgpLGN5Y2xlOiJyZXF1ZXN0IixtYWluUHVycG9zZTpuPyJjaHVuayI6InJlYWQiLGJhY2twcmVzc3VyZTp0LG5leHQ6dGhpcy5zZW5kQmFja3ByZXNzdXJlZEFycmF5LmRhdGEubGVuZ3RoPjAsLi4ubj97Y2h1bmtEYXRhOm59Ont9fSxyZXNwb25zZTpudWxsfSkuY2F0Y2goKCk9Pihjb25zb2xlLmxvZygic3RyZWFtIGVuZGVkIGltbWF0dXJlbHkiKSx0aGlzLmtlZXBBbGl2ZT0hMSxudWxsKSksbyYmby5yZXNwb25zZSYmby5yZXNwb25zZS5jaHVua0RhdGEmJnRoaXMucmVjZWl2ZUJhY2twcmVzc3VyZWRBcnJheS5wdXNoKG8ucmVzcG9uc2UuY2h1bmtEYXRhKSxpPW8mJm8ucmVzcG9uc2UmJm8ucmVzcG9uc2UuYmFja3ByZXNzdXJlLHQ9IXRoaXMucmVjZWl2ZUJhY2twcmVzc3VyZWRBcnJheS5jaGVja1NwYWNlQXZhaWxhYmxlKCkscj1vJiZvLnJlc3BvbnNlJiZvLnJlc3BvbnNlLm5leHR9fXRoaXMud29ya2luZ0RlZmVycmVkLnJlc29sdmUoKSx0aGlzLndvcmtpbmdEZWZlcnJlZD1udWxsfWFzeW5jIGhhbmRsZVN0cmVhbVRyKHQpe2lmKHQucmVxdWVzdC5rZWVwQWxpdmU9PT0hMCYmdGhpcy5rZWVwQWxpdmU9PT0hMD90aGlzLmxhc3RLZWVwQWxpdmVFdmVudD1EYXRlLm5vdygpOnQucmVxdWVzdC5rZWVwQWxpdmU9PT0hMSYmKHRoaXMua2VlcEFsaXZlPSExKSx0LnJlcXVlc3QubWFpblB1cnBvc2U9PT0ia2VlcEFsaXZlIiYmKHQucmVzcG9uc2U9e3N0cmVhbUlkOnRoaXMuc3RyZWFtSWQsY3ljbGVJZDp0LnJlcXVlc3QuY3ljbGVJZCxjeWNsZToicmVzcG9uc2UiLG1haW5QdXJwb3NlOiJrZWVwQWxpdmUiLGtlZXBBbGl2ZTp0aGlzLmtlZXBBbGl2ZSxuZXh0OnRoaXMuc2VuZEJhY2twcmVzc3VyZWRBcnJheS5kYXRhLmxlbmd0aD4wLGJhY2twcmVzc3VyZTohdGhpcy5yZWNlaXZlQmFja3ByZXNzdXJlZEFycmF5LmNoZWNrU3BhY2VBdmFpbGFibGUoKX0pLHQucmVxdWVzdC5tYWluUHVycG9zZT09PSJmZWVkYmFjayImJih0LnJlc3BvbnNlPXtzdHJlYW1JZDp0aGlzLnN0cmVhbUlkLGN5Y2xlSWQ6dC5yZXF1ZXN0LmN5Y2xlSWQsY3ljbGU6InJlc3BvbnNlIixtYWluUHVycG9zZToiZmVlZGJhY2siLG5leHQ6dGhpcy5zZW5kQmFja3ByZXNzdXJlZEFycmF5LmRhdGEubGVuZ3RoPjAsYmFja3ByZXNzdXJlOiF0aGlzLnJlY2VpdmVCYWNrcHJlc3N1cmVkQXJyYXkuY2hlY2tTcGFjZUF2YWlsYWJsZSgpfSksdC5yZXF1ZXN0Lm1haW5QdXJwb3NlPT09ImNodW5rIil7aWYodGhpcy5yZWNlaXZlQmFja3ByZXNzdXJlZEFycmF5LnB1c2godC5yZXF1ZXN0LmNodW5rRGF0YSksdGhpcy5zZW5kQmFja3ByZXNzdXJlZEFycmF5LmRhdGEubGVuZ3RoPjAmJnQucmVzcG9uc2UuYmFja3ByZXNzdXJlPT09ITEpe2xldCByPXRoaXMuc2VuZEJhY2twcmVzc3VyZWRBcnJheS5zaGlmdCgpO3QucmVzcG9uc2U9e3N0cmVhbUlkOnRoaXMuc3RyZWFtSWQsY3ljbGVJZDp0LnJlcXVlc3QuY3ljbGVJZCxjeWNsZToicmVzcG9uc2UiLG1haW5QdXJwb3NlOiJjaHVuayIsbmV4dDp0aGlzLnNlbmRCYWNrcHJlc3N1cmVkQXJyYXkuZGF0YS5sZW5ndGg+MSxiYWNrcHJlc3N1cmU6IXRoaXMucmVjZWl2ZUJhY2twcmVzc3VyZWRBcnJheS5jaGVja1NwYWNlQXZhaWxhYmxlKCksY2h1bmtEYXRhOnRoaXMuc2VuZEJhY2twcmVzc3VyZWRBcnJheS5zaGlmdCgpfX1lbHNlIHQucmVzcG9uc2U9e3N0cmVhbUlkOnRoaXMuc3RyZWFtSWQsY3ljbGVJZDp0LnJlcXVlc3QuY3ljbGVJZCxjeWNsZToicmVzcG9uc2UiLG1haW5QdXJwb3NlOiJmZWVkYmFjayIsbmV4dDp0aGlzLnNlbmRCYWNrcHJlc3N1cmVkQXJyYXkuZGF0YS5sZW5ndGg+MCxiYWNrcHJlc3N1cmU6IXRoaXMucmVjZWl2ZUJhY2twcmVzc3VyZWRBcnJheS5jaGVja1NwYWNlQXZhaWxhYmxlKCl9O3QucmVxdWVzdD1udWxsfXJldHVybiB0fWFzeW5jIGNsZWFudXAoKXt0aGlzLnR5cGVkcm91dGVyJiZ0aGlzLnR5cGVkcm91dGVyLnJlZ2lzdGVyZWRWaXJ0dWFsU3RyZWFtcy5yZW1vdmUodGhpcyl9YXN5bmMgc3RhcnRLZWVwQWxpdmVMb29wKCl7aWYodGhpcy5zaWRlPT09InJlc3BvbmRpbmciKXJldHVybjthd2FpdCBDdC5kZWxheUZvcigwKSxjb25zb2xlLmxvZyhgc3RhcnRpbmcga2VlcGFsaXZlIGxvb3Agb24gc2lkZSAke3RoaXMuc2lkZX1gKTtsZXQgdD0wO2Zvcig7dGhpcy5rZWVwQWxpdmU7KWF3YWl0IHRoaXMudHJpZ2dlcktlZXBBbGl2ZSgpLGF3YWl0IEN0LmRlbGF5Rm9yKDFlMyk7YXdhaXQgQ3QuZGVsYXlGb3IoMWUzKSxhd2FpdCB0aGlzLmNsZWFudXAoKSxjb25zb2xlLmxvZyhgY2xlYW5lZCB1cCBmb3Igc3RyZWFtICR7dGhpcy5zdHJlYW1JZH1gKX1hc3luYyB0cmlnZ2VyS2VlcEFsaXZlKCl7aWYodGhpcy5zaWRlPT09InJlcXVlc3RpbmciKXtjb25zb2xlLmxvZygia2VlcGFsaXZlIHNlbnQuIik7bGV0IHQ9YXdhaXQgdGhpcy5zZW5kTWV0aG9kKHttZXRob2Q6IiMjVmlydHVhbFN0cmVhbSMjIixyZXF1ZXN0OntzdHJlYW1JZDp0aGlzLnN0cmVhbUlkLGN5Y2xlSWQ6YTQudW5pKCksY3ljbGU6InJlcXVlc3QiLG1haW5QdXJwb3NlOiJrZWVwQWxpdmUiLGtlZXBBbGl2ZTp0aGlzLmtlZXBBbGl2ZX0scmVzcG9uc2U6bnVsbH0pLmNhdGNoKCgpPT57dGhpcy5rZWVwQWxpdmU9ITF9KTt0JiZ0LnJlc3BvbnNlJiZ0LnJlc3BvbnNlLmtlZXBBbGl2ZT09PSExP3RoaXMua2VlcEFsaXZlPSExOnRoaXMubGFzdEtlZXBBbGl2ZUV2ZW50PURhdGUubm93KCksdCYmdC5yZXNwb25zZSYmdC5yZXNwb25zZS5uZXh0JiZ0aGlzLndvcmtPblF1ZXVlKCl9RGF0ZS5ub3coKS10aGlzLmxhc3RLZWVwQWxpdmVFdmVudD4xZTQmJihjb25zb2xlLmxvZyhgY2xvc2luZyBzdHJlYW0gZm9yICR7dGhpcy5zdHJlYW1JZH1gKSx0aGlzLmtlZXBBbGl2ZT0hMSl9YXN5bmMgc2VuZERhdGEodCl7dGhpcy5zZW5kQmFja3ByZXNzdXJlZEFycmF5LnB1c2godCksdGhpcy53b3JrT25RdWV1ZSgpLGF3YWl0IHRoaXMuc2VuZEJhY2twcmVzc3VyZWRBcnJheS53YWl0Rm9yU3BhY2UoKX1hc3luYyBmZXRjaERhdGEoKXtyZXR1cm4gdGhpcy5yZWNlaXZlQmFja3ByZXNzdXJlZEFycmF5Lmhhc1NwYWNlLGF3YWl0IHRoaXMucmVjZWl2ZUJhY2twcmVzc3VyZWRBcnJheS53YWl0Rm9ySXRlbXMoKSx0aGlzLnJlY2VpdmVCYWNrcHJlc3N1cmVkQXJyYXkuc2hpZnQoKX1hc3luYyByZWFkRnJvbVdlYnN0cmVhbSh0LHI9ITApe2xldCBpPXQuZ2V0UmVhZGVyKCksYT0hMTtmb3IoOyFhOyl7bGV0e3ZhbHVlOm4sZG9uZTpvfT1hd2FpdCBpLnJlYWQoKTtuJiZhd2FpdCB0aGlzLnNlbmREYXRhKG4pLGE9b31yJiZhd2FpdCB0aGlzLmNsb3NlKCEwKX1hc3luYyB3cml0ZVRvV2Vic3RyZWFtKHQpe2xldCByPXQuZ2V0V3JpdGVyKCk7Zm9yKDt0aGlzLmtlZXBBbGl2ZXx8dGhpcy5yZWNlaXZlQmFja3ByZXNzdXJlZEFycmF5LmNoZWNrSGFzSXRlbXMoKTspe2xldCBpPWF3YWl0IHRoaXMuZmV0Y2hEYXRhKCk7aWYoaT09PW1qZSl7ci5yZWxlYXNlTG9jaygpLGF3YWl0IHQuY2xvc2UoKTticmVha31hd2FpdCByLndyaXRlKGkpfX1hc3luYyBjbG9zZSh0PSExKXt0JiZ0aGlzLnNlbmREYXRhKG1qZSksdGhpcy5rZWVwQWxpdmU9ITF9fX0pO3ZhciBlZWUsdGVlPXAoKCk9PnttOSgpO240KCk7ZWVlPWNsYXNze2NvbnN0cnVjdG9yKHQpe2lmKHQucG9zdE1ldGhvZFdpdGhUeXBlZFJvdXRlciYmIXQudHlwZWRSb3V0ZXJSZWYpdGhyb3cgbmV3IEVycm9yKCJ5b3UgaGF2ZSB0byBzcGVjaWZ5IGEgdHlwZWRyb3V0ZXIgd2hlbiB1c2luZyBwb3N0bWV0aG9kIHdpdGggdHlwZWRyb3V0ZXIiKTt0aGlzLm9wdGlvbnM9dH1hc3luYyBwb3N0KHQpe2xldCByO3RoaXMub3B0aW9ucy50eXBlZFJvdXRlclJlZiYmKHI9YXdhaXQgdGhpcy5vcHRpb25zLnR5cGVkUm91dGVyUmVmLmZpcmVFdmVudEludGVyZXN0TWFwLmFkZEludGVyZXN0KHQuY29ycmVsYXRpb24uaWQsdCkpO2xldCBhPWF3YWl0KHRoaXMub3B0aW9ucy5wb3N0TWV0aG9kfHx0aGlzLm9wdGlvbnMucG9zdE1ldGhvZFdpdGhUeXBlZFJvdXRlcikodCksbjtyZXR1cm4gcj9uPWF3YWl0IHIuaW50ZXJlc3RGdWxsZmlsbGVkOmE/bj1hOm49dCxufX19KTtmdW5jdGlvbiBnamUoZSx0KXt0cnl7VzYuZ2xvYmFsSG9va3NbZV0/Lih0KX1jYXRjaChyKXtjb25zb2xlLmVycm9yKGBUeXBlZFJlcXVlc3QgaG9vayBlcnJvciAoJHtlfSk6YCxyKX19dmFyIGRQcixnOSxLSz1wKCgpPT57bjQoKTt0XygpO2Y5KCk7bTkoKTt0ZWUoKTtkUHI9bmV3IGg5LldlYnJlcXVlc3RDbGllbnQ7Zzk9Y2xhc3N7Y29uc3RydWN0b3IodCxyKXt0aGlzLnNraXBIb29rcz0hMSx0eXBlb2YgdD09InN0cmluZyI/dGhpcy51cmxFbmRQb2ludD10OnRoaXMudHlwZWRUYXJnZXQ9dCx0aGlzLm1ldGhvZD1yfWFzeW5jIGZpcmUodCxyPSExKXtsZXQgaT1EYXRlLm5vdygpLGE9e21ldGhvZDp0aGlzLm1ldGhvZCxyZXF1ZXN0OnQscmVzcG9uc2U6bnVsbCxjb3JyZWxhdGlvbjp7aWQ6YTQudW5pKCkscGhhc2U6InJlcXVlc3QifX07YT1Ccy5lbmNvZGVQYXlsb2FkRm9yTmV0d29yayhhLHtzZW5kTWV0aG9kOm89PnRoaXMucG9zdFRyT2JqZWN0KG8pfSksdGhpcy5za2lwSG9va3N8fGdqZSgib25PdXRnb2luZ1JlcXVlc3QiLHtjb3JyZWxhdGlvbklkOmEuY29ycmVsYXRpb24uaWQsbWV0aG9kOnRoaXMubWV0aG9kLGRpcmVjdGlvbjoib3V0Z29pbmciLHBoYXNlOiJyZXF1ZXN0Iix0aW1lc3RhbXA6aSxwYXlsb2FkOnR9KTtsZXQgbjtyZXR1cm4gbj1hd2FpdCB0aGlzLnBvc3RUck9iamVjdChhLHIpLG49QnMuZGVjb2RlUGF5bG9hZEZyb21OZXR3b3JrKG4se3NlbmRNZXRob2Q6bz0+dGhpcy5wb3N0VHJPYmplY3Qobyl9KSx0aGlzLnNraXBIb29rc3x8Z2plKCJvbkluY29taW5nUmVzcG9uc2UiLHtjb3JyZWxhdGlvbklkOmEuY29ycmVsYXRpb24uaWQsbWV0aG9kOnRoaXMubWV0aG9kLGRpcmVjdGlvbjoiaW5jb21pbmciLHBoYXNlOiJyZXNwb25zZSIsdGltZXN0YW1wOkRhdGUubm93KCksZHVyYXRpb25NczpEYXRlLm5vdygpLWkscGF5bG9hZDpuPy5yZXNwb25zZSxlcnJvcjpuPy5lcnJvcj8udGV4dH0pLG4ucmVzcG9uc2V9YXN5bmMgcG9zdFRyT2JqZWN0KHQscj0hMSl7bGV0IGk7aWYodGhpcy51cmxFbmRQb2ludD9pPWF3YWl0IGRQci5wb3N0SnNvbih0aGlzLnVybEVuZFBvaW50LHQscj97Y2FjaGVTdHJhdGVneToiY2FjaGUtZmlyc3QifTp7fSk6aT1hd2FpdCB0aGlzLnR5cGVkVGFyZ2V0LnBvc3QodCksaS5lcnJvcil7aWYoY29uc29sZS5lcnJvcihgbWV0aG9kOiA+PiR7dGhpcy5tZXRob2R9PDwgZ290IGFuIEVSUk9SOiAiJHtpLmVycm9yLnRleHR9IiB3aXRoIGRhdGEgJHtKU09OLnN0cmluZ2lmeShpLmVycm9yLmRhdGEsbnVsbCwyKX1gKSwhaS5yZXRyeSl0aHJvdyBuZXcgSmwoaS5lcnJvci50ZXh0LGkuZXJyb3IuZGF0YSk7cmV0dXJuIG51bGx9cmV0dXJuIGkucmV0cnkmJihjb25zb2xlLmxvZyhgc2VydmVyIHJlcXVlc3RlZCByZXRyeSBmb3IgdGhlIGZvbGxvd2luZyByZWFzb246ICR7aS5yZXRyeS5yZWFzb259YCksYXdhaXQgQ3QuZGVsYXlGb3IoaS5yZXRyeS53YWl0Rm9yTXMpLGk9YXdhaXQgdGhpcy5wb3N0VHJPYmplY3QodCxyKSksaX19fSk7dmFyIFphPXt9O0ZlKFphLHtUeXBlZEhhbmRsZXI6KCk9PlFLLFR5cGVkUmVxdWVzdDooKT0+ZzksVHlwZWRSZXNwb25zZUVycm9yOigpPT5KbCxUeXBlZFJvdXRlcjooKT0+VzYsVHlwZWRUYXJnZXQ6KCk9PmVlZSxWaXJ0dWFsU3RyZWFtOigpPT5Cc30pO3ZhciBiOT1wKCgpPT57S0soKTtKSygpO205KCk7ZjkoKTt0ZWUoKTt0XygpfSk7ZnVuY3Rpb24gYmplKGUpe3JldHVybiBlJiZ0eXBlb2YgZS50aGVuPT0iZnVuY3Rpb24ifWZ1bmN0aW9uIEhzKGUsdCl7cmV0dXJuIGV8fChlPTApLG5ldyBQcm9taXNlKGZ1bmN0aW9uKHIpe3JldHVybiBzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7cmV0dXJuIHIodCl9LGUpfSl9ZnVuY3Rpb24geWplKGUsdCl7cmV0dXJuIE1hdGguZmxvb3IoTWF0aC5yYW5kb20oKSoodC1lKzEpK2UpfWZ1bmN0aW9uIEtsKCl7cmV0dXJuIE1hdGgucmFuZG9tKCkudG9TdHJpbmcoMzYpLnN1YnN0cmluZygyKX1mdW5jdGlvbiBlYygpe3ZhciBlPURhdGUubm93KCkqMWUzO3JldHVybiBlPD1yZWUmJihlPXJlZSsxKSxyZWU9ZSxlfWZ1bmN0aW9uIHdqZSgpe3JldHVybiB0eXBlb2YgbmF2aWdhdG9yPCJ1IiYmdHlwZW9mIG5hdmlnYXRvci5sb2NrczwidSImJnR5cGVvZiBuYXZpZ2F0b3IubG9ja3MucmVxdWVzdD09ImZ1bmN0aW9uIn12YXIgdmplLHhqZSxWbixyZWUsbzQ9cCgoKT0+e3ZqZT1Qcm9taXNlLnJlc29sdmUoITEpLHhqZT1Qcm9taXNlLnJlc29sdmUoITApLFZuPVByb21pc2UucmVzb2x2ZSgpO3JlZT0wfSk7ZnVuY3Rpb24gaFByKGUpe3ZhciB0PXt0aW1lOmVjKCksbWVzc2FnZXNDYWxsYmFjazpudWxsLGJjOm5ldyBCcm9hZGNhc3RDaGFubmVsKGUpLHN1YkZuczpbXX07cmV0dXJuIHQuYmMub25tZXNzYWdlPWZ1bmN0aW9uKHIpe3QubWVzc2FnZXNDYWxsYmFjayYmdC5tZXNzYWdlc0NhbGxiYWNrKHIuZGF0YSl9LHR9ZnVuY3Rpb24gZlByKGUpe2UuYmMuY2xvc2UoKSxlLnN1YkZucz1bXX1mdW5jdGlvbiBtUHIoZSx0KXt0cnl7cmV0dXJuIGUuYmMucG9zdE1lc3NhZ2UodCwhMSksVm59Y2F0Y2gocil7cmV0dXJuIFByb21pc2UucmVqZWN0KHIpfX1mdW5jdGlvbiBnUHIoZSx0KXtlLm1lc3NhZ2VzQ2FsbGJhY2s9dH1mdW5jdGlvbiBiUHIoKXtpZih0eXBlb2YgZ2xvYmFsVGhpczwidSImJmdsb2JhbFRoaXMuRGVubyYmZ2xvYmFsVGhpcy5EZW5vLmFyZ3MpcmV0dXJuITA7aWYoKHR5cGVvZiB3aW5kb3c8InUifHx0eXBlb2Ygc2VsZjwidSIpJiZ0eXBlb2YgQnJvYWRjYXN0Q2hhbm5lbD09ImZ1bmN0aW9uIil7aWYoQnJvYWRjYXN0Q2hhbm5lbC5fcHVia2V5KXRocm93IG5ldyBFcnJvcigiQnJvYWRjYXN0Q2hhbm5lbDogRG8gbm90IG92ZXJ3cml0ZSB3aW5kb3cuQnJvYWRjYXN0Q2hhbm5lbCB3aXRoIHRoaXMgbW9kdWxlLCB0aGlzIGlzIG5vdCBhIHBvbHlmaWxsIik7cmV0dXJuITB9ZWxzZSByZXR1cm4hMX1mdW5jdGlvbiB2UHIoKXtyZXR1cm4gMTUwfXZhciB1UHIscFByLE1qZSxramU9cCgoKT0+e280KCk7dVByPWVjLHBQcj0ibmF0aXZlIjtNamU9e2NyZWF0ZTpoUHIsY2xvc2U6ZlByLG9uTWVzc2FnZTpnUHIscG9zdE1lc3NhZ2U6bVByLGNhbkJlVXNlZDpiUHIsdHlwZTpwUHIsYXZlcmFnZVJlc3BvbnNlVGltZTp2UHIsbWljcm9TZWNvbmRzOnVQcn19KTtmdW5jdGlvbiB4UHIoZSl7bGV0IHQ9aWVlKCktZS50dGwscj1lLm1hcFtTeW1ib2wuaXRlcmF0b3JdKCk7Zm9yKDs7KXtsZXQgaT1yLm5leHQoKS52YWx1ZTtpZighaSlicmVhaztsZXQgYT1pWzBdO2lmKGlbMV08dCllLm1hcC5kZWxldGUoYSk7ZWxzZSBicmVha319ZnVuY3Rpb24gaWVlKCl7cmV0dXJuIERhdGUubm93KCl9dmFyIFo4LGFlZT1wKCgpPT57Wjg9Y2xhc3N7dHRsO21hcD1uZXcgTWFwO190bz0hMTtjb25zdHJ1Y3Rvcih0KXt0aGlzLnR0bD10fWhhcyh0KXtsZXQgcj10aGlzLm1hcC5nZXQodCk7cmV0dXJuIHR5cGVvZiByPiJ1Ij8hMTpyPGllZSgpLXRoaXMudHRsPyh0aGlzLm1hcC5kZWxldGUodCksITEpOiEwfWFkZCh0KXt0aGlzLm1hcC5kZWxldGUodCksdGhpcy5tYXAuc2V0KHQsaWVlKCkpLHRoaXMuX3RvfHwodGhpcy5fdG89ITAsc2V0VGltZW91dCgoKT0+e3RoaXMuX3RvPSExLHhQcih0aGlzKX0sMCkpfWNsZWFyKCl7dGhpcy5tYXAuY2xlYXIoKX19fSk7ZnVuY3Rpb24gRzYoKXt2YXIgZT1hcmd1bWVudHMubGVuZ3RoPjAmJmFyZ3VtZW50c1swXSE9PXZvaWQgMD9hcmd1bWVudHNbMF06e30sdD1KU09OLnBhcnNlKEpTT04uc3RyaW5naWZ5KGUpKTtyZXR1cm4gdHlwZW9mIHQud2ViV29ya2VyU3VwcG9ydD4idSImJih0LndlYldvcmtlclN1cHBvcnQ9ITApLHQuaWRifHwodC5pZGI9e30pLHQuaWRiLnR0bHx8KHQuaWRiLnR0bD0xZTMqNDUpLHQuaWRiLmZhbGxiYWNrSW50ZXJ2YWx8fCh0LmlkYi5mYWxsYmFja0ludGVydmFsPTE1MCksZS5pZGImJnR5cGVvZiBlLmlkYi5vbmNsb3NlPT0iZnVuY3Rpb24iJiYodC5pZGIub25jbG9zZT1lLmlkYi5vbmNsb3NlKSx0LmxvY2Fsc3RvcmFnZXx8KHQubG9jYWxzdG9yYWdlPXt9KSx0LmxvY2Fsc3RvcmFnZS5yZW1vdmVUaW1lb3V0fHwodC5sb2NhbHN0b3JhZ2UucmVtb3ZlVGltZW91dD0xZTMqNjApLGUubWV0aG9kcyYmKHQubWV0aG9kcz1lLm1ldGhvZHMpLHQubm9kZXx8KHQubm9kZT17fSksdC5ub2RlLnR0bHx8KHQubm9kZS50dGw9MWUzKjYwKjIpLHQubm9kZS5tYXhQYXJhbGxlbFdyaXRlc3x8KHQubm9kZS5tYXhQYXJhbGxlbFdyaXRlcz0yMDQ4KSx0eXBlb2YgdC5ub2RlLnVzZUZhc3RQYXRoPiJ1IiYmKHQubm9kZS51c2VGYXN0UGF0aD0hMCksdH12YXIgcl89cCgoKT0+e30pO2Z1bmN0aW9uIFNqZSgpe2lmKHR5cGVvZiBpbmRleGVkREI8InUiKXJldHVybiBpbmRleGVkREI7aWYodHlwZW9mIHdpbmRvdzwidSIpe2lmKHR5cGVvZiB3aW5kb3cubW96SW5kZXhlZERCPCJ1IilyZXR1cm4gd2luZG93Lm1vekluZGV4ZWREQjtpZih0eXBlb2Ygd2luZG93LndlYmtpdEluZGV4ZWREQjwidSIpcmV0dXJuIHdpbmRvdy53ZWJraXRJbmRleGVkREI7aWYodHlwZW9mIHdpbmRvdy5tc0luZGV4ZWREQjwidSIpcmV0dXJuIHdpbmRvdy5tc0luZGV4ZWREQn1yZXR1cm4hMX1mdW5jdGlvbiBpXyhlKXtlLmNvbW1pdCYmZS5jb21taXQoKX1mdW5jdGlvbiBrUHIoZSl7dmFyIHQ9U2plKCkscj13UHIrZSxpPXQub3BlbihyKTtyZXR1cm4gaS5vbnVwZ3JhZGVuZWVkZWQ9ZnVuY3Rpb24oYSl7dmFyIG49YS50YXJnZXQucmVzdWx0O24uY3JlYXRlT2JqZWN0U3RvcmUoYjIse2tleVBhdGg6ImlkIixhdXRvSW5jcmVtZW50OiEwfSl9LG5ldyBQcm9taXNlKGZ1bmN0aW9uKGEsbil7aS5vbmVycm9yPWZ1bmN0aW9uKG8pe3JldHVybiBuKG8pfSxpLm9uc3VjY2Vzcz1mdW5jdGlvbigpe2EoaS5yZXN1bHQpfX0pfWZ1bmN0aW9uIFNQcihlLHQscil7dmFyIGk9RGF0ZS5ub3coKSxhPXt1dWlkOnQsdGltZTppLGRhdGE6cn0sbj1lLnRyYW5zYWN0aW9uKFtiMl0sInJlYWR3cml0ZSIsdjkpO3JldHVybiBuZXcgUHJvbWlzZShmdW5jdGlvbihvLHMpe24ub25jb21wbGV0ZT1mdW5jdGlvbigpe3JldHVybiBvKCl9LG4ub25lcnJvcj1mdW5jdGlvbihjKXtyZXR1cm4gcyhjKX07dmFyIGw9bi5vYmplY3RTdG9yZShiMik7bC5hZGQoYSksaV8obil9KX1mdW5jdGlvbiBMRWkoZSl7dmFyIHQ9ZS50cmFuc2FjdGlvbihiMiwicmVhZG9ubHkiLHY5KSxyPXQub2JqZWN0U3RvcmUoYjIpLGk9W107cmV0dXJuIG5ldyBQcm9taXNlKGZ1bmN0aW9uKGEpe3Iub3BlbkN1cnNvcigpLm9uc3VjY2Vzcz1mdW5jdGlvbihuKXt2YXIgbz1uLnRhcmdldC5yZXN1bHQ7bz8oaS5wdXNoKG8udmFsdWUpLG8uY29udGludWUoKSk6KGlfKHQpLGEoaSkpfX0pfWZ1bmN0aW9uIHpQcihlLHQpe3ZhciByPWUudHJhbnNhY3Rpb24oYjIsInJlYWRvbmx5Iix2OSksaT1yLm9iamVjdFN0b3JlKGIyKSxhPVtdLG49SURCS2V5UmFuZ2UuYm91bmQodCsxLDEvMCk7aWYoaS5nZXRBbGwpe3ZhciBvPWkuZ2V0QWxsKG4pO3JldHVybiBuZXcgUHJvbWlzZShmdW5jdGlvbihsLGMpe28ub25lcnJvcj1mdW5jdGlvbih1KXtyZXR1cm4gYyh1KX0sby5vbnN1Y2Nlc3M9ZnVuY3Rpb24odSl7bCh1LnRhcmdldC5yZXN1bHQpfX0pfWZ1bmN0aW9uIHMoKXt0cnl7cmV0dXJuIG49SURCS2V5UmFuZ2UuYm91bmQodCsxLDEvMCksaS5vcGVuQ3Vyc29yKG4pfWNhdGNoe3JldHVybiBpLm9wZW5DdXJzb3IoKX19cmV0dXJuIG5ldyBQcm9taXNlKGZ1bmN0aW9uKGwsYyl7dmFyIHU9cygpO3Uub25lcnJvcj1mdW5jdGlvbihkKXtyZXR1cm4gYyhkKX0sdS5vbnN1Y2Nlc3M9ZnVuY3Rpb24oZCl7dmFyIGg9ZC50YXJnZXQucmVzdWx0O2g/aC52YWx1ZS5pZDx0KzE/aC5jb250aW51ZSh0KzEpOihhLnB1c2goaC52YWx1ZSksaC5jb250aW51ZSgpKTooaV8ociksbChhKSl9fSl9ZnVuY3Rpb24gQ1ByKGUsdCl7aWYoZS5jbG9zZWQpcmV0dXJuIFByb21pc2UucmVzb2x2ZShbXSk7dmFyIHI9ZS5kYi50cmFuc2FjdGlvbihiMiwicmVhZHdyaXRlIix2OSksaT1yLm9iamVjdFN0b3JlKGIyKTtyZXR1cm4gUHJvbWlzZS5hbGwodC5tYXAoZnVuY3Rpb24oYSl7dmFyIG49aS5kZWxldGUoYSk7cmV0dXJuIG5ldyBQcm9taXNlKGZ1bmN0aW9uKG8pe24ub25zdWNjZXNzPWZ1bmN0aW9uKCl7cmV0dXJuIG8oKX19KX0pKX1mdW5jdGlvbiBUUHIoZSx0KXt2YXIgcj1EYXRlLm5vdygpLXQsaT1lLnRyYW5zYWN0aW9uKGIyLCJyZWFkb25seSIsdjkpLGE9aS5vYmplY3RTdG9yZShiMiksbj1bXTtyZXR1cm4gbmV3IFByb21pc2UoZnVuY3Rpb24obyl7YS5vcGVuQ3Vyc29yKCkub25zdWNjZXNzPWZ1bmN0aW9uKHMpe3ZhciBsPXMudGFyZ2V0LnJlc3VsdDtpZihsKXt2YXIgYz1sLnZhbHVlO2MudGltZTxyPyhuLnB1c2goYyksbC5jb250aW51ZSgpKTooaV8oaSksbyhuKSl9ZWxzZSBvKG4pfX0pfWZ1bmN0aW9uIF9QcihlKXtyZXR1cm4gVFByKGUuZGIsZS5vcHRpb25zLmlkYi50dGwpLnRoZW4oZnVuY3Rpb24odCl7cmV0dXJuIENQcihlLHQubWFwKGZ1bmN0aW9uKHIpe3JldHVybiByLmlkfSkpfSl9ZnVuY3Rpb24gTFByKGUsdCl7cmV0dXJuIHQ9RzYodCksa1ByKGUpLnRoZW4oZnVuY3Rpb24ocil7dmFyIGk9e2Nsb3NlZDohMSxsYXN0Q3Vyc29ySWQ6MCxjaGFubmVsTmFtZTplLG9wdGlvbnM6dCx1dWlkOktsKCksZU1JczpuZXcgWjgodC5pZGIudHRsKjIpLHdyaXRlQmxvY2tQcm9taXNlOlZuLG1lc3NhZ2VzQ2FsbGJhY2s6bnVsbCxyZWFkUXVldWVQcm9taXNlczpbXSxkYjpyfTtyZXR1cm4gci5vbmNsb3NlPWZ1bmN0aW9uKCl7aS5jbG9zZWQ9ITAsdC5pZGIub25jbG9zZSYmdC5pZGIub25jbG9zZSgpfSx6amUoaSksaX0pfWZ1bmN0aW9uIHpqZShlKXtlLmNsb3NlZHx8Q2plKGUpLnRoZW4oZnVuY3Rpb24oKXtyZXR1cm4gSHMoZS5vcHRpb25zLmlkYi5mYWxsYmFja0ludGVydmFsKX0pLnRoZW4oZnVuY3Rpb24oKXtyZXR1cm4gemplKGUpfSl9ZnVuY3Rpb24gQVByKGUsdCl7cmV0dXJuIShlLnV1aWQ9PT10LnV1aWR8fHQuZU1Jcy5oYXMoZS5pZCl8fGUuZGF0YS50aW1lPHQubWVzc2FnZXNDYWxsYmFja1RpbWUpfWZ1bmN0aW9uIENqZShlKXtyZXR1cm4gZS5jbG9zZWQ/Vm46ZS5tZXNzYWdlc0NhbGxiYWNrP3pQcihlLmRiLGUubGFzdEN1cnNvcklkKS50aGVuKGZ1bmN0aW9uKHQpe3ZhciByPXQuZmlsdGVyKGZ1bmN0aW9uKGkpe3JldHVybiEhaX0pLm1hcChmdW5jdGlvbihpKXtyZXR1cm4gaS5pZD5lLmxhc3RDdXJzb3JJZCYmKGUubGFzdEN1cnNvcklkPWkuaWQpLGl9KS5maWx0ZXIoZnVuY3Rpb24oaSl7cmV0dXJuIEFQcihpLGUpfSkuc29ydChmdW5jdGlvbihpLGEpe3JldHVybiBpLnRpbWUtYS50aW1lfSk7cmV0dXJuIHIuZm9yRWFjaChmdW5jdGlvbihpKXtlLm1lc3NhZ2VzQ2FsbGJhY2smJihlLmVNSXMuYWRkKGkuaWQpLGUubWVzc2FnZXNDYWxsYmFjayhpLmRhdGEpKX0pLFZufSk6Vm59ZnVuY3Rpb24gRFByKGUpe2UuY2xvc2VkPSEwLGUuZGIuY2xvc2UoKX1mdW5jdGlvbiBFUHIoZSx0KXtyZXR1cm4gZS53cml0ZUJsb2NrUHJvbWlzZT1lLndyaXRlQmxvY2tQcm9taXNlLnRoZW4oZnVuY3Rpb24oKXtyZXR1cm4gU1ByKGUuZGIsZS51dWlkLHQpfSkudGhlbihmdW5jdGlvbigpe3lqZSgwLDEwKT09PTAmJl9QcihlKX0pLGUud3JpdGVCbG9ja1Byb21pc2V9ZnVuY3Rpb24gJFByKGUsdCxyKXtlLm1lc3NhZ2VzQ2FsbGJhY2tUaW1lPXIsZS5tZXNzYWdlc0NhbGxiYWNrPXQsQ2plKGUpfWZ1bmN0aW9uIElQcigpe3JldHVybiEhU2plKCl9ZnVuY3Rpb24gUFByKGUpe3JldHVybiBlLmlkYi5mYWxsYmFja0ludGVydmFsKjJ9dmFyIHlQcix3UHIsYjIsdjksTVByLFRqZSxfamU9cCgoKT0+e280KCk7YWVlKCk7cl8oKTt5UHI9ZWMsd1ByPSJwdWJrZXkuYnJvYWRjYXN0LWNoYW5uZWwtMC0iLGIyPSJtZXNzYWdlcyIsdjk9e2R1cmFiaWxpdHk6InJlbGF4ZWQifSxNUHI9ImlkYiI7VGplPXtjcmVhdGU6TFByLGNsb3NlOkRQcixvbk1lc3NhZ2U6JFByLHBvc3RNZXNzYWdlOkVQcixjYW5CZVVzZWQ6SVByLHR5cGU6TVByLGF2ZXJhZ2VSZXNwb25zZVRpbWU6UFByLG1pY3JvU2Vjb25kczp5UHJ9fSk7ZnVuY3Rpb24gTGplKCl7dmFyIGU7aWYodHlwZW9mIHdpbmRvdz4idSIpcmV0dXJuIG51bGw7dHJ5e2U9d2luZG93LmxvY2FsU3RvcmFnZSxlPXdpbmRvd1siaWU4LWV2ZW50bGlzdGVuZXIvc3RvcmFnZSJdfHx3aW5kb3cubG9jYWxTdG9yYWdlfWNhdGNoe31yZXR1cm4gZX1mdW5jdGlvbiBBamUoZSl7cmV0dXJuIEZQcitlfWZ1bmN0aW9uIFJQcihlLHQpe3JldHVybiBuZXcgUHJvbWlzZShmdW5jdGlvbihyKXtIcygpLnRoZW4oZnVuY3Rpb24oKXt2YXIgaT1BamUoZS5jaGFubmVsTmFtZSksYT17dG9rZW46S2woKSx0aW1lOkRhdGUubm93KCksZGF0YTp0LHV1aWQ6ZS51dWlkfSxuPUpTT04uc3RyaW5naWZ5KGEpO0xqZSgpLnNldEl0ZW0oaSxuKTt2YXIgbz1kb2N1bWVudC5jcmVhdGVFdmVudCgiRXZlbnQiKTtvLmluaXRFdmVudCgic3RvcmFnZSIsITAsITApLG8ua2V5PWksby5uZXdWYWx1ZT1uLHdpbmRvdy5kaXNwYXRjaEV2ZW50KG8pLHIoKX0pfSl9ZnVuY3Rpb24gQlByKGUsdCl7dmFyIHI9QWplKGUpLGk9ZnVuY3Rpb24obil7bi5rZXk9PT1yJiZ0KEpTT04ucGFyc2Uobi5uZXdWYWx1ZSkpfTtyZXR1cm4gd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoInN0b3JhZ2UiLGkpLGl9ZnVuY3Rpb24gSFByKGUpe3dpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyKCJzdG9yYWdlIixlKX1mdW5jdGlvbiBxUHIoZSx0KXtpZih0PUc2KHQpLCFEamUoKSl0aHJvdyBuZXcgRXJyb3IoIkJyb2FkY2FzdENoYW5uZWw6IGxvY2Fsc3RvcmFnZSBjYW5ub3QgYmUgdXNlZCIpO3ZhciByPUtsKCksaT1uZXcgWjgodC5sb2NhbHN0b3JhZ2UucmVtb3ZlVGltZW91dCksYT17Y2hhbm5lbE5hbWU6ZSx1dWlkOnIsZU1JczppfTtyZXR1cm4gYS5saXN0ZW5lcj1CUHIoZSxmdW5jdGlvbihuKXthLm1lc3NhZ2VzQ2FsbGJhY2smJm4udXVpZCE9PXImJighbi50b2tlbnx8aS5oYXMobi50b2tlbil8fG4uZGF0YS50aW1lJiZuLmRhdGEudGltZTxhLm1lc3NhZ2VzQ2FsbGJhY2tUaW1lfHwoaS5hZGQobi50b2tlbiksYS5tZXNzYWdlc0NhbGxiYWNrKG4uZGF0YSkpKX0pLGF9ZnVuY3Rpb24galByKGUpe0hQcihlLmxpc3RlbmVyKX1mdW5jdGlvbiBWUHIoZSx0LHIpe2UubWVzc2FnZXNDYWxsYmFja1RpbWU9cixlLm1lc3NhZ2VzQ2FsbGJhY2s9dH1mdW5jdGlvbiBEamUoKXt2YXIgZT1MamUoKTtpZighZSlyZXR1cm4hMTt0cnl7dmFyIHQ9Il9fYnJvYWRjYXN0Y2hhbm5lbF9jaGVjayI7ZS5zZXRJdGVtKHQsIndvcmtzIiksZS5yZW1vdmVJdGVtKHQpfWNhdGNoe3JldHVybiExfXJldHVybiEwfWZ1bmN0aW9uIFVQcigpe3ZhciBlPTEyMCx0PW5hdmlnYXRvci51c2VyQWdlbnQudG9Mb3dlckNhc2UoKTtyZXR1cm4gdC5pbmNsdWRlcygic2FmYXJpIikmJiF0LmluY2x1ZGVzKCJjaHJvbWUiKT9lKjI6ZX12YXIgTlByLEZQcixPUHIsRWplLCRqZT1wKCgpPT57YWVlKCk7cl8oKTtvNCgpO05Qcj1lYyxGUHI9InB1YmtleS5icm9hZGNhc3RDaGFubmVsLSIsT1ByPSJsb2NhbHN0b3JhZ2UiO0VqZT17Y3JlYXRlOnFQcixjbG9zZTpqUHIsb25NZXNzYWdlOlZQcixwb3N0TWVzc2FnZTpSUHIsY2FuQmVVc2VkOkRqZSx0eXBlOk9QcixhdmVyYWdlUmVzcG9uc2VUaW1lOlVQcixtaWNyb1NlY29uZHM6TlByfX0pO2Z1bmN0aW9uIEdQcihlKXt2YXIgdD17dGltZTpJamUoKSxuYW1lOmUsbWVzc2FnZXNDYWxsYmFjazpudWxsfTtyZXR1cm4gbmVlLmFkZCh0KSx0fWZ1bmN0aW9uIFlQcihlKXtuZWUuZGVsZXRlKGUpfWZ1bmN0aW9uIFpQcihlLHQpe3JldHVybiBuZXcgUHJvbWlzZShmdW5jdGlvbihyKXtyZXR1cm4gc2V0VGltZW91dChmdW5jdGlvbigpe3ZhciBpPUFycmF5LmZyb20obmVlKTtpLmZvckVhY2goZnVuY3Rpb24oYSl7YS5uYW1lPT09ZS5uYW1lJiZhIT09ZSYmYS5tZXNzYWdlc0NhbGxiYWNrJiZhLnRpbWU8dC50aW1lJiZhLm1lc3NhZ2VzQ2FsbGJhY2sodCl9KSxyKCl9LFBqZSl9KX1mdW5jdGlvbiBYUHIoZSx0KXtlLm1lc3NhZ2VzQ2FsbGJhY2s9dH1mdW5jdGlvbiBRUHIoKXtyZXR1cm4hMH1mdW5jdGlvbiBKUHIoKXtyZXR1cm4gUGplfXZhciBJamUsV1ByLG5lZSxQamUsTmplLEZqZT1wKCgpPT57bzQoKTtJamU9ZWMsV1ByPSJzaW11bGF0ZSIsbmVlPW5ldyBTZXQ7UGplPTU7TmplPXtjcmVhdGU6R1ByLGNsb3NlOllQcixvbk1lc3NhZ2U6WFByLHBvc3RNZXNzYWdlOlpQcixjYW5CZVVzZWQ6UVByLHR5cGU6V1ByLGF2ZXJhZ2VSZXNwb25zZVRpbWU6SlByLG1pY3JvU2Vjb25kczpJamV9fSk7ZnVuY3Rpb24gb2VlKGUpe3ZhciB0PVtdLmNvbmNhdChlLm1ldGhvZHMsT2plKS5maWx0ZXIoQm9vbGVhbik7aWYoZS50eXBlKXtpZihlLnR5cGU9PT0ic2ltdWxhdGUiKXJldHVybiBOamU7dmFyIHI9dC5maW5kKGZ1bmN0aW9uKGEpe3JldHVybiBhLnR5cGU9PT1lLnR5cGV9KTtpZihyKXJldHVybiByO3Rocm93IG5ldyBFcnJvcigibWV0aG9kLXR5cGUgIitlLnR5cGUrIiBub3QgZm91bmQiKX1lLndlYldvcmtlclN1cHBvcnR8fCh0PXQuZmlsdGVyKGZ1bmN0aW9uKGEpe3JldHVybiBhLnR5cGUhPT0iaWRiIn0pKTt2YXIgaT10LmZpbmQoZnVuY3Rpb24oYSl7cmV0dXJuIGEuY2FuQmVVc2VkKCl9KTtpZihpKXJldHVybiBpO3Rocm93IG5ldyBFcnJvcigiTm8gdXNhYmxlIG1ldGhvZCBmb3VuZCBpbiAiK0pTT04uc3RyaW5naWZ5KE9qZS5tYXAoZnVuY3Rpb24oYSl7cmV0dXJuIGEudHlwZX0pKSl9dmFyIE9qZSxSamU9cCgoKT0+e2tqZSgpO19qZSgpOyRqZSgpO0ZqZSgpO09qZT1bTWplLFRqZSxFamVdfSk7ZnVuY3Rpb24gZU5yKGUpe2U9RzYoZSk7dmFyIHQ9b2VlKGUpO3JldHVybiB0LnR5cGU9PT0ibm9kZSI/dC5jbGVhck5vZGVGb2xkZXIoKS50aGVuKGZ1bmN0aW9uKCl7cmV0dXJuITB9KTp2amV9ZnVuY3Rpb24gdE5yKGUpe3NlZT1lfWZ1bmN0aW9uIEJqZShlLHQscil7dmFyIGk9ZS5tZXRob2QubWljcm9TZWNvbmRzKCksYT17dGltZTppLHR5cGU6dCxkYXRhOnJ9LG49ZS5fcHJlcFA/ZS5fcHJlcFA6Vm47cmV0dXJuIG4udGhlbihmdW5jdGlvbigpe3ZhciBvPWUubWV0aG9kLnBvc3RNZXNzYWdlKGUuX3N0YXRlLGEpO3JldHVybiBlLl91TVAuYWRkKG8pLG8uY2F0Y2goKS50aGVuKGZ1bmN0aW9uKCl7cmV0dXJuIGUuX3VNUC5kZWxldGUobyl9KSxvfSl9ZnVuY3Rpb24gck5yKGUpe3ZhciB0PWUubWV0aG9kLmNyZWF0ZShlLm5hbWUsZS5vcHRpb25zKTtiamUodCk/KGUuX3ByZXBQPXQsdC50aGVuKGZ1bmN0aW9uKHIpe2UuX3N0YXRlPXJ9KSk6ZS5fc3RhdGU9dH1mdW5jdGlvbiBIamUoZSl7cmV0dXJuIGUuX2FkZEVMLm1lc3NhZ2UubGVuZ3RoPjB8fGUuX2FkZEVMLmludGVybmFsLmxlbmd0aD4wfWZ1bmN0aW9uIHFqZShlLHQscil7ZS5fYWRkRUxbdF0ucHVzaChyKSxpTnIoZSl9ZnVuY3Rpb24gamplKGUsdCxyKXtlLl9hZGRFTFt0XT1lLl9hZGRFTFt0XS5maWx0ZXIoZnVuY3Rpb24oaSl7cmV0dXJuIGkhPT1yfSksYU5yKGUpfWZ1bmN0aW9uIGlOcihlKXtpZighZS5faUwmJkhqZShlKSl7dmFyIHQ9ZnVuY3Rpb24oYSl7ZS5fYWRkRUxbYS50eXBlXS5mb3JFYWNoKGZ1bmN0aW9uKG4pe2EudGltZT49bi50aW1lJiZuLmZuKGEuZGF0YSl9KX0scj1lLm1ldGhvZC5taWNyb1NlY29uZHMoKTtlLl9wcmVwUD9lLl9wcmVwUC50aGVuKGZ1bmN0aW9uKCl7ZS5faUw9ITAsZS5tZXRob2Qub25NZXNzYWdlKGUuX3N0YXRlLHQscil9KTooZS5faUw9ITAsZS5tZXRob2Qub25NZXNzYWdlKGUuX3N0YXRlLHQscikpfX1mdW5jdGlvbiBhTnIoZSl7aWYoZS5faUwmJiFIamUoZSkpe2UuX2lMPSExO3ZhciB0PWUubWV0aG9kLm1pY3JvU2Vjb25kcygpO2UubWV0aG9kLm9uTWVzc2FnZShlLl9zdGF0ZSxudWxsLHQpfX12YXIgbGVlLEtQcixZNixzZWUsVmplPXAoKCk9PntvNCgpO1JqZSgpO3JfKCk7bGVlPW5ldyBTZXQsS1ByPTAsWTY9ZnVuY3Rpb24odCxyKXt0aGlzLmlkPUtQcisrLGxlZS5hZGQodGhpcyksdGhpcy5uYW1lPXQsc2VlJiYocj1zZWUpLHRoaXMub3B0aW9ucz1HNihyKSx0aGlzLm1ldGhvZD1vZWUodGhpcy5vcHRpb25zKSx0aGlzLl9pTD0hMSx0aGlzLl9vbk1MPW51bGwsdGhpcy5fYWRkRUw9e21lc3NhZ2U6W10saW50ZXJuYWw6W119LHRoaXMuX3VNUD1uZXcgU2V0LHRoaXMuX2JlZkM9W10sdGhpcy5fcHJlcFA9bnVsbCxyTnIodGhpcyl9O1k2Ll9wdWJrZXk9ITA7WTYucHJvdG90eXBlPXtwb3N0TWVzc2FnZTpmdW5jdGlvbih0KXtpZih0aGlzLmNsb3NlZCl0aHJvdyBuZXcgRXJyb3IoIkJyb2FkY2FzdENoYW5uZWwucG9zdE1lc3NhZ2UoKTogQ2Fubm90IHBvc3QgbWVzc2FnZSBhZnRlciBjaGFubmVsIGhhcyBjbG9zZWQgIitKU09OLnN0cmluZ2lmeSh0KSk7cmV0dXJuIEJqZSh0aGlzLCJtZXNzYWdlIix0KX0scG9zdEludGVybmFsOmZ1bmN0aW9uKHQpe3JldHVybiBCamUodGhpcywiaW50ZXJuYWwiLHQpfSxzZXQgb25tZXNzYWdlKGUpe3ZhciB0PXRoaXMubWV0aG9kLm1pY3JvU2Vjb25kcygpLHI9e3RpbWU6dCxmbjplfTtqamUodGhpcywibWVzc2FnZSIsdGhpcy5fb25NTCksZSYmdHlwZW9mIGU9PSJmdW5jdGlvbiI/KHRoaXMuX29uTUw9cixxamUodGhpcywibWVzc2FnZSIscikpOnRoaXMuX29uTUw9bnVsbH0sYWRkRXZlbnRMaXN0ZW5lcjpmdW5jdGlvbih0LHIpe3ZhciBpPXRoaXMubWV0aG9kLm1pY3JvU2Vjb25kcygpLGE9e3RpbWU6aSxmbjpyfTtxamUodGhpcyx0LGEpfSxyZW1vdmVFdmVudExpc3RlbmVyOmZ1bmN0aW9uKHQscil7dmFyIGk9dGhpcy5fYWRkRUxbdF0uZmluZChmdW5jdGlvbihhKXtyZXR1cm4gYS5mbj09PXJ9KTtqamUodGhpcyx0LGkpfSxjbG9zZTpmdW5jdGlvbigpe3ZhciB0PXRoaXM7aWYoIXRoaXMuY2xvc2VkKXtsZWUuZGVsZXRlKHRoaXMpLHRoaXMuY2xvc2VkPSEwO3ZhciByPXRoaXMuX3ByZXBQP3RoaXMuX3ByZXBQOlZuO3JldHVybiB0aGlzLl9vbk1MPW51bGwsdGhpcy5fYWRkRUwubWVzc2FnZT1bXSxyLnRoZW4oZnVuY3Rpb24oKXtyZXR1cm4gUHJvbWlzZS5hbGwoQXJyYXkuZnJvbSh0Ll91TVApKX0pLnRoZW4oZnVuY3Rpb24oKXtyZXR1cm4gUHJvbWlzZS5hbGwodC5fYmVmQy5tYXAoZnVuY3Rpb24oaSl7cmV0dXJuIGkoKX0pKX0pLnRoZW4oZnVuY3Rpb24oKXtyZXR1cm4gdC5tZXRob2QuY2xvc2UodC5fc3RhdGUpfSl9fSxnZXQgdHlwZSgpe3JldHVybiB0aGlzLm1ldGhvZC50eXBlfSxnZXQgaXNDbG9zZWQoKXtyZXR1cm4gdGhpcy5jbG9zZWR9fX0pO2Z1bmN0aW9uIFVqZShlKXtpZih0eXBlb2YgV29ya2VyR2xvYmFsU2NvcGU9PSJmdW5jdGlvbiImJnNlbGYgaW5zdGFuY2VvZiBXb3JrZXJHbG9iYWxTY29wZSl7dmFyIHQ9c2VsZi5jbG9zZS5iaW5kKHNlbGYpO3NlbGYuY2xvc2U9ZnVuY3Rpb24oKXtyZXR1cm4gZSgpLHQoKX19ZWxzZXtpZih0eXBlb2Ygd2luZG93LmFkZEV2ZW50TGlzdGVuZXIhPSJmdW5jdGlvbiIpcmV0dXJuO3dpbmRvdy5hZGRFdmVudExpc3RlbmVyKCJiZWZvcmV1bmxvYWQiLGZ1bmN0aW9uKCl7ZSgpfSwhMCksd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoInVubG9hZCIsZnVuY3Rpb24oKXtlKCl9LCEwKX19dmFyIFdqZT1wKCgpPT57fSk7ZnVuY3Rpb24gR2plKGUpe3Byb2Nlc3Mub24oImV4aXQiLGZ1bmN0aW9uKCl7cmV0dXJuIGUoKX0pLHByb2Nlc3Mub24oImJlZm9yZUV4aXQiLGZ1bmN0aW9uKCl7cmV0dXJuIGUoKS50aGVuKGZ1bmN0aW9uKCl7cmV0dXJuIHByb2Nlc3MuZXhpdCgpfSl9KSxwcm9jZXNzLm9uKCJTSUdJTlQiLGZ1bmN0aW9uKCl7cmV0dXJuIGUoKS50aGVuKGZ1bmN0aW9uKCl7cmV0dXJuIHByb2Nlc3MuZXhpdCgpfSl9KSxwcm9jZXNzLm9uKCJ1bmNhdWdodEV4Y2VwdGlvbiIsZnVuY3Rpb24odCl7cmV0dXJuIGUoKS50aGVuKGZ1bmN0aW9uKCl7Y29uc29sZS50cmFjZSh0KSxwcm9jZXNzLmV4aXQoMTAxKX0pfSl9dmFyIFlqZT1wKCgpPT57fSk7ZnVuY3Rpb24gc05yKCl7WmplfHwoWmplPSEwLG9OcihsTnIpKX1mdW5jdGlvbiBYamUoZSl7aWYoc05yKCksdHlwZW9mIGUhPSJmdW5jdGlvbiIpdGhyb3cgbmV3IEVycm9yKCJMaXN0ZW5lciBpcyBubyBmdW5jdGlvbiIpO1o2LmFkZChlKTt2YXIgdD17cmVtb3ZlOmZ1bmN0aW9uKCl7cmV0dXJuIFo2LmRlbGV0ZShlKX0scnVuOmZ1bmN0aW9uKCl7cmV0dXJuIFo2LmRlbGV0ZShlKSxlKCl9fTtyZXR1cm4gdH1mdW5jdGlvbiBsTnIoKXt2YXIgZT1bXTtyZXR1cm4gWjYuZm9yRWFjaChmdW5jdGlvbih0KXtlLnB1c2godCgpKSxaNi5kZWxldGUodCl9KSxQcm9taXNlLmFsbChlKX1mdW5jdGlvbiBYRWkoKXtaNi5jbGVhcigpfWZ1bmN0aW9uIFFFaSgpe3JldHVybiBaNi5zaXplfXZhciBuTnIsb05yLFo2LFpqZSxRamU9cCgoKT0+e1dqZSgpO1lqZSgpO25Ocj1PYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwodHlwZW9mIHByb2Nlc3M8InUiP3Byb2Nlc3M6MCk9PT0iW29iamVjdCBwcm9jZXNzXSIsb05yPW5Ocj9HamU6VWplLFo2PW5ldyBTZXQsWmplPSExfSk7ZnVuY3Rpb24gdGMoZSx0KXt2YXIgcj17Y29udGV4dDoibGVhZGVyIixhY3Rpb246dCx0b2tlbjplLnRva2VufTtyZXR1cm4gZS5icm9hZGNhc3RDaGFubmVsLnBvc3RJbnRlcm5hbChyKX1mdW5jdGlvbiB4OShlKXtlLmlzTGVhZGVyPSEwLGUuX2hhc0xlYWRlcj0hMDt2YXIgdD1YamUoZnVuY3Rpb24oKXtyZXR1cm4gZS5kaWUoKX0pO2UuX3VubC5wdXNoKHQpO3ZhciByPWZ1bmN0aW9uKGEpe2EuY29udGV4dD09PSJsZWFkZXIiJiZhLmFjdGlvbj09PSJhcHBseSImJnRjKGUsInRlbGwiKSxhLmNvbnRleHQ9PT0ibGVhZGVyIiYmYS5hY3Rpb249PT0idGVsbCImJiFlLl9kcExDJiYoZS5fZHBMQz0hMCxlLl9kcEwoKSx0YyhlLCJ0ZWxsIikpfTtyZXR1cm4gZS5icm9hZGNhc3RDaGFubmVsLmFkZEV2ZW50TGlzdGVuZXIoImludGVybmFsIixyKSxlLl9sc3Rucy5wdXNoKHIpLHRjKGUsInRlbGwiKX12YXIgYV89cCgoKT0+e1FqZSgpfSk7dmFyIGNlZSxKamUsS2plPXAoKCk9PntvNCgpO2FfKCk7Y2VlPWZ1bmN0aW9uKHQscil7dmFyIGk9dGhpczt0aGlzLmJyb2FkY2FzdENoYW5uZWw9dCx0Ll9iZWZDLnB1c2goZnVuY3Rpb24oKXtyZXR1cm4gaS5kaWUoKX0pLHRoaXMuX29wdGlvbnM9cix0aGlzLmlzTGVhZGVyPSExLHRoaXMuaXNEZWFkPSExLHRoaXMudG9rZW49S2woKSx0aGlzLl9sc3Rucz1bXSx0aGlzLl91bmw9W10sdGhpcy5fZHBMPWZ1bmN0aW9uKCl7fSx0aGlzLl9kcExDPSExLHRoaXMuX3dLTUM9e30sdGhpcy5sTj0icHVia2V5LWJjfHwiK3QubWV0aG9kLnR5cGUrInx8Iit0Lm5hbWV9LEpqZT0iTGVhZGVyRWxlY3Rpb25XZWJMb2NrLmRpZSgpIGNhbGxlZCI7Y2VlLnByb3RvdHlwZT17aGFzTGVhZGVyOmZ1bmN0aW9uKCl7dmFyIHQ9dGhpcztyZXR1cm4gbmF2aWdhdG9yLmxvY2tzLnF1ZXJ5KCkudGhlbihmdW5jdGlvbihyKXt2YXIgaT1yLmhlbGQ/ci5oZWxkLmZpbHRlcihmdW5jdGlvbihhKXtyZXR1cm4gYS5uYW1lPT09dC5sTn0pOltdO3JldHVybiEhKGkmJmkubGVuZ3RoPjApfSl9LGF3YWl0TGVhZGVyc2hpcDpmdW5jdGlvbigpe3ZhciB0PXRoaXM7aWYoIXRoaXMuX3dMTVApe3RoaXMuX3dLTUMuYz1uZXcgQWJvcnRDb250cm9sbGVyO3ZhciByPW5ldyBQcm9taXNlKGZ1bmN0aW9uKGksYSl7dC5fd0tNQy5yZXM9aSx0Ll93S01DLnJlaj1hfSk7dGhpcy5fd0xNUD1uZXcgUHJvbWlzZShmdW5jdGlvbihpLGEpe25hdmlnYXRvci5sb2Nrcy5yZXF1ZXN0KHQubE4se3NpZ25hbDp0Ll93S01DLmMuc2lnbmFsfSxmdW5jdGlvbigpe3JldHVybiB0Ll93S01DLmM9dm9pZCAwLHg5KHQpLGkoKSxyfSkuY2F0Y2goZnVuY3Rpb24obil7bi5tZXNzYWdlJiZuLm1lc3NhZ2U9PT1KamV8fCh0Ll93S01DLnJlaiYmdC5fd0tNQy5yZWoobiksYShuKSl9KX0pfXJldHVybiB0aGlzLl93TE1QfSxzZXQgb25kdXBsaWNhdGUoZSl7fSxkaWU6ZnVuY3Rpb24oKXt2YXIgdD10aGlzO3JldHVybiB0aGlzLl9sc3Rucy5mb3JFYWNoKGZ1bmN0aW9uKHIpe3JldHVybiB0LmJyb2FkY2FzdENoYW5uZWwucmVtb3ZlRXZlbnRMaXN0ZW5lcigiaW50ZXJuYWwiLHIpfSksdGhpcy5fbHN0bnM9W10sdGhpcy5fdW5sLmZvckVhY2goZnVuY3Rpb24ocil7cmV0dXJuIHIucmVtb3ZlKCl9KSx0aGlzLl91bmw9W10sdGhpcy5pc0xlYWRlciYmKHRoaXMuaXNMZWFkZXI9ITEpLHRoaXMuaXNEZWFkPSEwLHRoaXMuX3dLTUMucmVzJiZ0aGlzLl93S01DLnJlcygpLHRoaXMuX3dLTUMuYyYmdGhpcy5fd0tNQy5jLmFib3J0KG5ldyBFcnJvcihKamUpKSx0Yyh0aGlzLCJkZWF0aCIpfX19KTtmdW5jdGlvbiBjTnIoZSl7cmV0dXJuIGUuaXNMZWFkZXI/Vm46bmV3IFByb21pc2UoZnVuY3Rpb24odCl7dmFyIHI9ITE7ZnVuY3Rpb24gaSgpe3J8fChyPSEwLGUuYnJvYWRjYXN0Q2hhbm5lbC5yZW1vdmVFdmVudExpc3RlbmVyKCJpbnRlcm5hbCIsbiksdCghMCkpfWUuYXBwbHlPbmNlKCkudGhlbihmdW5jdGlvbigpe2UuaXNMZWFkZXImJmkoKX0pO3ZhciBhPWZ1bmN0aW9uKCl7cmV0dXJuIEhzKGUuX29wdGlvbnMuZmFsbGJhY2tJbnRlcnZhbCkudGhlbihmdW5jdGlvbigpe2lmKCEoZS5pc0RlYWR8fHIpKWlmKGUuaXNMZWFkZXIpaSgpO2Vsc2UgcmV0dXJuIGUuYXBwbHlPbmNlKCEwKS50aGVuKGZ1bmN0aW9uKCl7ZS5pc0xlYWRlcj9pKCk6YSgpfSl9KX07YSgpO3ZhciBuPWZ1bmN0aW9uKHMpe3MuY29udGV4dD09PSJsZWFkZXIiJiZzLmFjdGlvbj09PSJkZWF0aCImJihlLl9oYXNMZWFkZXI9ITEsZS5hcHBseU9uY2UoKS50aGVuKGZ1bmN0aW9uKCl7ZS5pc0xlYWRlciYmaSgpfSkpfTtlLmJyb2FkY2FzdENoYW5uZWwuYWRkRXZlbnRMaXN0ZW5lcigiaW50ZXJuYWwiLG4pLGUuX2xzdG5zLnB1c2gobil9KX1mdW5jdGlvbiBkTnIoZSx0KXtyZXR1cm4gZXx8KGU9e30pLGU9SlNPTi5wYXJzZShKU09OLnN0cmluZ2lmeShlKSksZS5mYWxsYmFja0ludGVydmFsfHwoZS5mYWxsYmFja0ludGVydmFsPTNlMyksZS5yZXNwb25zZVRpbWV8fChlLnJlc3BvbnNlVGltZT10Lm1ldGhvZC5hdmVyYWdlUmVzcG9uc2VUaW1lKHQub3B0aW9ucykpLGV9ZnVuY3Rpb24gdU5yKGUsdCl7aWYoZS5fbGVhZGVyRWxlY3Rvcil0aHJvdyBuZXcgRXJyb3IoIkJyb2FkY2FzdENoYW5uZWwgYWxyZWFkeSBoYXMgYSBsZWFkZXItZWxlY3RvciIpO3Q9ZE5yKHQsZSk7dmFyIHI9d2plKCk/bmV3IGNlZShlLHQpOm5ldyBlVmUoZSx0KTtyZXR1cm4gZS5fYmVmQy5wdXNoKGZ1bmN0aW9uKCl7cmV0dXJuIHIuZGllKCl9KSxlLl9sZWFkZXJFbGVjdG9yPXIscn12YXIgZVZlLHRWZT1wKCgpPT57bzQoKTthXygpO0tqZSgpO2VWZT1mdW5jdGlvbih0LHIpe3ZhciBpPXRoaXM7dGhpcy5icm9hZGNhc3RDaGFubmVsPXQsdGhpcy5fb3B0aW9ucz1yLHRoaXMuaXNMZWFkZXI9ITEsdGhpcy5faGFzTGVhZGVyPSExLHRoaXMuaXNEZWFkPSExLHRoaXMudG9rZW49S2woKSx0aGlzLl9hcGxRPVZuLHRoaXMuX2FwbFFDPTAsdGhpcy5fdW5sPVtdLHRoaXMuX2xzdG5zPVtdLHRoaXMuX2RwTD1mdW5jdGlvbigpe30sdGhpcy5fZHBMQz0hMTt2YXIgYT1mdW5jdGlvbihvKXtvLmNvbnRleHQ9PT0ibGVhZGVyIiYmKG8uYWN0aW9uPT09ImRlYXRoIiYmKGkuX2hhc0xlYWRlcj0hMSksby5hY3Rpb249PT0idGVsbCImJihpLl9oYXNMZWFkZXI9ITApKX07dGhpcy5icm9hZGNhc3RDaGFubmVsLmFkZEV2ZW50TGlzdGVuZXIoImludGVybmFsIixhKSx0aGlzLl9sc3Rucy5wdXNoKGEpfTtlVmUucHJvdG90eXBlPXtoYXNMZWFkZXI6ZnVuY3Rpb24oKXtyZXR1cm4gUHJvbWlzZS5yZXNvbHZlKHRoaXMuX2hhc0xlYWRlcil9LGFwcGx5T25jZTpmdW5jdGlvbih0KXt2YXIgcj10aGlzO2lmKHRoaXMuaXNMZWFkZXIpcmV0dXJuIEhzKDAsITApO2lmKHRoaXMuaXNEZWFkKXJldHVybiBIcygwLCExKTtpZih0aGlzLl9hcGxRQz4xKXJldHVybiB0aGlzLl9hcGxRO3ZhciBpPWZ1bmN0aW9uKCl7aWYoci5pc0xlYWRlcilyZXR1cm4geGplO3ZhciBuPSExLG8scz1uZXcgUHJvbWlzZShmdW5jdGlvbih1KXtvPWZ1bmN0aW9uKCl7bj0hMCx1KCl9fSksbD1mdW5jdGlvbihkKXtkLmNvbnRleHQ9PT0ibGVhZGVyIiYmZC50b2tlbiE9ci50b2tlbiYmKGQuYWN0aW9uPT09ImFwcGx5IiYmZC50b2tlbj5yLnRva2VuJiZvKCksZC5hY3Rpb249PT0idGVsbCImJihvKCksci5faGFzTGVhZGVyPSEwKSl9O3IuYnJvYWRjYXN0Q2hhbm5lbC5hZGRFdmVudExpc3RlbmVyKCJpbnRlcm5hbCIsbCk7dmFyIGM9dD9yLl9vcHRpb25zLnJlc3BvbnNlVGltZSo0OnIuX29wdGlvbnMucmVzcG9uc2VUaW1lO3JldHVybiB0YyhyLCJhcHBseSIpLnRoZW4oZnVuY3Rpb24oKXtyZXR1cm4gUHJvbWlzZS5yYWNlKFtIcyhjKSxzLnRoZW4oZnVuY3Rpb24oKXtyZXR1cm4gUHJvbWlzZS5yZWplY3QobmV3IEVycm9yKX0pXSl9KS50aGVuKGZ1bmN0aW9uKCl7cmV0dXJuIHRjKHIsImFwcGx5Iil9KS50aGVuKGZ1bmN0aW9uKCl7cmV0dXJuIFByb21pc2UucmFjZShbSHMoYykscy50aGVuKGZ1bmN0aW9uKCl7cmV0dXJuIFByb21pc2UucmVqZWN0KG5ldyBFcnJvcil9KV0pfSkuY2F0Y2goZnVuY3Rpb24oKXt9KS50aGVuKGZ1bmN0aW9uKCl7cmV0dXJuIHIuYnJvYWRjYXN0Q2hhbm5lbC5yZW1vdmVFdmVudExpc3RlbmVyKCJpbnRlcm5hbCIsbCksbj8hMTp4OShyKS50aGVuKGZ1bmN0aW9uKCl7cmV0dXJuITB9KX0pfTtyZXR1cm4gdGhpcy5fYXBsUUM9dGhpcy5fYXBsUUMrMSx0aGlzLl9hcGxRPXRoaXMuX2FwbFEudGhlbihmdW5jdGlvbigpe3JldHVybiBpKCl9KS50aGVuKGZ1bmN0aW9uKCl7ci5fYXBsUUM9ci5fYXBsUUMtMX0pLHRoaXMuX2FwbFEudGhlbihmdW5jdGlvbigpe3JldHVybiByLmlzTGVhZGVyfSl9LGF3YWl0TGVhZGVyc2hpcDpmdW5jdGlvbigpe3JldHVybiB0aGlzLl9hTFB8fCh0aGlzLl9hTFA9Y05yKHRoaXMpKSx0aGlzLl9hTFB9LHNldCBvbmR1cGxpY2F0ZShlKXt0aGlzLl9kcEw9ZX0sZGllOmZ1bmN0aW9uKCl7dmFyIHQ9dGhpcztyZXR1cm4gdGhpcy5fbHN0bnMuZm9yRWFjaChmdW5jdGlvbihyKXtyZXR1cm4gdC5icm9hZGNhc3RDaGFubmVsLnJlbW92ZUV2ZW50TGlzdGVuZXIoImludGVybmFsIixyKX0pLHRoaXMuX2xzdG5zPVtdLHRoaXMuX3VubC5mb3JFYWNoKGZ1bmN0aW9uKHIpe3JldHVybiByLnJlbW92ZSgpfSksdGhpcy5fdW5sPVtdLHRoaXMuaXNMZWFkZXImJih0aGlzLl9oYXNMZWFkZXI9ITEsdGhpcy5pc0xlYWRlcj0hMSksdGhpcy5pc0RlYWQ9ITAsdGModGhpcywiZGVhdGgiKX19fSk7dmFyIHJWZT1wKCgpPT57VmplKCk7dFZlKCk7YV8oKX0pO3ZhciBpVmU9cCgoKT0+e1RzKCk7YnooKTtiOSgpO3JWZSgpfSk7dmFyIGRlZSx1ZWUsYVZlPXAoKCk9PntpVmUoKTtkZWU9Z2xvYmFsVGhpcy5Ccm9hZGNhc3RDaGFubmVsO2RlZXx8KGRlZT1ZNik7dWVlPWNsYXNze2NvbnN0cnVjdG9yKCl7dGhpcy5icm9hZGNhc3RDaGFubmVsPW5ldyBkZWUoImRlZXMtY29tbXMiKSx0aGlzLnR5cGVkcm91dGVyPW5ldyBaYS5UeXBlZFJvdXRlcix0aGlzLnR5cGVkdGFyZ2V0PW5ldyBaYS5UeXBlZFRhcmdldCh7cG9zdE1ldGhvZFdpdGhUeXBlZFJvdXRlcjphc3luYyB0PT57dGhpcy5wb3N0TWVzc2FnZSh0KX0sdHlwZWRSb3V0ZXJSZWY6dGhpcy50eXBlZHJvdXRlcn0pLHRoaXMuYnJvYWRjYXN0Q2hhbm5lbC5vbm1lc3NhZ2U9YXN5bmMgdD0+e2xldCByPXQubWV0aG9kP3Q6dC5kYXRhO2NvbnNvbGUubG9nKEpTT04uc3RyaW5naWZ5KHIpKTtsZXQgaT1hd2FpdCB0aGlzLnR5cGVkcm91dGVyLnJvdXRlQW5kQWRkUmVzcG9uc2Uocix7c2tpcEhvb2tzOiEwfSk7aSYmIWkuZXJyb3ImJnRoaXMucG9zdE1lc3NhZ2UoaSl9fWNyZWF0ZVR5cGVkUmVxdWVzdCh0KXtyZXR1cm4gbmV3IFphLlR5cGVkUmVxdWVzdCh0aGlzLnR5cGVkdGFyZ2V0LHQpfWFzeW5jIHBvc3RNZXNzYWdlKHQpe3RoaXMuYnJvYWRjYXN0Q2hhbm5lbC5wb3N0TWVzc2FnZSh0KX1hc3luYyBjcmVhdGVUeXBlZEhhbmRsZXIodCxyKXt0aGlzLnR5cGVkcm91dGVyLmFkZFR5cGVkSGFuZGxlcihuZXcgWmEuVHlwZWRIYW5kbGVyKHQscikpfX19KTt2YXIgeTk9e307RmUoeTkse0RlZXNDb21tczooKT0+dWVlfSk7dmFyIG5WZT1wKCgpPT57YVZlKCl9KTt2YXIgUTY9amUoKG0kaSxYNik9PnsidXNlIHN0cmljdCI7ZnVuY3Rpb24gb1ZlKGUpe3JldHVybiB0eXBlb2YgZT4idSJ8fGU9PT1udWxsfWZ1bmN0aW9uIGhOcihlKXtyZXR1cm4gdHlwZW9mIGU9PSJvYmplY3QiJiZlIT09bnVsbH1mdW5jdGlvbiBmTnIoZSl7cmV0dXJuIEFycmF5LmlzQXJyYXkoZSk/ZTpvVmUoZSk/W106W2VdfWZ1bmN0aW9uIG1OcihlLHQpe3ZhciByLGksYSxuO2lmKHQpZm9yKG49T2JqZWN0LmtleXModCkscj0wLGk9bi5sZW5ndGg7cjxpO3IrPTEpYT1uW3JdLGVbYV09dFthXTtyZXR1cm4gZX1mdW5jdGlvbiBnTnIoZSx0KXt2YXIgcj0iIixpO2ZvcihpPTA7aTx0O2krPTEpcis9ZTtyZXR1cm4gcn1mdW5jdGlvbiBiTnIoZSl7cmV0dXJuIGU9PT0wJiZOdW1iZXIuTkVHQVRJVkVfSU5GSU5JVFk9PT0xL2V9WDYuZXhwb3J0cy5pc05vdGhpbmc9b1ZlLFg2LmV4cG9ydHMuaXNPYmplY3Q9aE5yLFg2LmV4cG9ydHMudG9BcnJheT1mTnIsWDYuZXhwb3J0cy5yZXBlYXQ9Z05yLFg2LmV4cG9ydHMuaXNOZWdhdGl2ZVplcm89Yk5yLFg2LmV4cG9ydHMuZXh0ZW5kPW1Ocn0pO3ZhciBYOD1qZSgoZyRpLHNWZSk9PnsidXNlIHN0cmljdCI7ZnVuY3Rpb24gdzkoZSx0KXtFcnJvci5jYWxsKHRoaXMpLHRoaXMubmFtZT0iWUFNTEV4Y2VwdGlvbiIsdGhpcy5yZWFzb249ZSx0aGlzLm1hcms9dCx0aGlzLm1lc3NhZ2U9KHRoaXMucmVhc29ufHwiKHVua25vd24gcmVhc29uKSIpKyh0aGlzLm1hcms/IiAiK3RoaXMubWFyay50b1N0cmluZygpOiIiKSxFcnJvci5jYXB0dXJlU3RhY2tUcmFjZT9FcnJvci5jYXB0dXJlU3RhY2tUcmFjZSh0aGlzLHRoaXMuY29uc3RydWN0b3IpOnRoaXMuc3RhY2s9bmV3IEVycm9yKCkuc3RhY2t8fCIifXc5LnByb3RvdHlwZT1PYmplY3QuY3JlYXRlKEVycm9yLnByb3RvdHlwZSksdzkucHJvdG90eXBlLmNvbnN0cnVjdG9yPXc5LHc5LnByb3RvdHlwZS50b1N0cmluZz1mdW5jdGlvbih0KXt2YXIgcj10aGlzLm5hbWUrIjogIjtyZXR1cm4gcis9dGhpcy5yZWFzb258fCIodW5rbm93biByZWFzb24pIiwhdCYmdGhpcy5tYXJrJiYocis9IiAiK3RoaXMubWFyay50b1N0cmluZygpKSxyfSxzVmUuZXhwb3J0cz13OX0pO3ZhciBkVmU9amUoKGIkaSxjVmUpPT57InVzZSBzdHJpY3QiO3ZhciBsVmU9UTYoKTtmdW5jdGlvbiBwZWUoZSx0LHIsaSxhKXt0aGlzLm5hbWU9ZSx0aGlzLmJ1ZmZlcj10LHRoaXMucG9zaXRpb249cix0aGlzLmxpbmU9aSx0aGlzLmNvbHVtbj1hfXBlZS5wcm90b3R5cGUuZ2V0U25pcHBldD1mdW5jdGlvbih0LHIpe3ZhciBpLGEsbixvLHM7aWYoIXRoaXMuYnVmZmVyKXJldHVybiBudWxsO2Zvcih0PXR8fDQscj1yfHw3NSxpPSIiLGE9dGhpcy5wb3NpdGlvbjthPjAmJmBcMFxyClx4ODVcdTIwMjhcdTIwMjlgLmluZGV4T2YodGhpcy5idWZmZXIuY2hhckF0KGEtMSkpPT09LTE7KWlmKGEtPTEsdGhpcy5wb3NpdGlvbi1hPnIvMi0xKXtpPSIgLi4uICIsYSs9NTticmVha31mb3Iobj0iIixvPXRoaXMucG9zaXRpb247bzx0aGlzLmJ1ZmZlci5sZW5ndGgmJmBcMFxyClx4ODVcdTIwMjhcdTIwMjlgLmluZGV4T2YodGhpcy5idWZmZXIuY2hhckF0KG8pKT09PS0xOylpZihvKz0xLG8tdGhpcy5wb3NpdGlvbj5yLzItMSl7bj0iIC4uLiAiLG8tPTU7YnJlYWt9cmV0dXJuIHM9dGhpcy5idWZmZXIuc2xpY2UoYSxvKSxsVmUucmVwZWF0KCIgIix0KStpK3MrbitgCmArbFZlLnJlcGVhdCgiICIsdCt0aGlzLnBvc2l0aW9uLWEraS5sZW5ndGgpKyJeIn0scGVlLnByb3RvdHlwZS50b1N0cmluZz1mdW5jdGlvbih0KXt2YXIgcixpPSIiO3JldHVybiB0aGlzLm5hbWUmJihpKz0naW4gIicrdGhpcy5uYW1lKyciICcpLGkrPSJhdCBsaW5lICIrKHRoaXMubGluZSsxKSsiLCBjb2x1bW4gIisodGhpcy5jb2x1bW4rMSksdHx8KHI9dGhpcy5nZXRTbmlwcGV0KCksciYmKGkrPWA6CmArcikpLGl9LGNWZS5leHBvcnRzPXBlZX0pO3ZhciB4aT1qZSgodiRpLHBWZSk9PnsidXNlIHN0cmljdCI7dmFyIHVWZT1YOCgpLHZOcj1bImtpbmQiLCJyZXNvbHZlIiwiY29uc3RydWN0IiwiaW5zdGFuY2VPZiIsInByZWRpY2F0ZSIsInJlcHJlc2VudCIsImRlZmF1bHRTdHlsZSIsInN0eWxlQWxpYXNlcyJdLHhOcj1bInNjYWxhciIsInNlcXVlbmNlIiwibWFwcGluZyJdO2Z1bmN0aW9uIHlOcihlKXt2YXIgdD17fTtyZXR1cm4gZSE9PW51bGwmJk9iamVjdC5rZXlzKGUpLmZvckVhY2goZnVuY3Rpb24ocil7ZVtyXS5mb3JFYWNoKGZ1bmN0aW9uKGkpe3RbU3RyaW5nKGkpXT1yfSl9KSx0fWZ1bmN0aW9uIHdOcihlLHQpe2lmKHQ9dHx8e30sT2JqZWN0LmtleXModCkuZm9yRWFjaChmdW5jdGlvbihyKXtpZih2TnIuaW5kZXhPZihyKT09PS0xKXRocm93IG5ldyB1VmUoJ1Vua25vd24gb3B0aW9uICInK3IrJyIgaXMgbWV0IGluIGRlZmluaXRpb24gb2YgIicrZSsnIiBZQU1MIHR5cGUuJyl9KSx0aGlzLnRhZz1lLHRoaXMua2luZD10LmtpbmR8fG51bGwsdGhpcy5yZXNvbHZlPXQucmVzb2x2ZXx8ZnVuY3Rpb24oKXtyZXR1cm4hMH0sdGhpcy5jb25zdHJ1Y3Q9dC5jb25zdHJ1Y3R8fGZ1bmN0aW9uKHIpe3JldHVybiByfSx0aGlzLmluc3RhbmNlT2Y9dC5pbnN0YW5jZU9mfHxudWxsLHRoaXMucHJlZGljYXRlPXQucHJlZGljYXRlfHxudWxsLHRoaXMucmVwcmVzZW50PXQucmVwcmVzZW50fHxudWxsLHRoaXMuZGVmYXVsdFN0eWxlPXQuZGVmYXVsdFN0eWxlfHxudWxsLHRoaXMuc3R5bGVBbGlhc2VzPXlOcih0LnN0eWxlQWxpYXNlc3x8bnVsbCkseE5yLmluZGV4T2YodGhpcy5raW5kKT09PS0xKXRocm93IG5ldyB1VmUoJ1Vua25vd24ga2luZCAiJyt0aGlzLmtpbmQrJyIgaXMgc3BlY2lmaWVkIGZvciAiJytlKyciIFlBTUwgdHlwZS4nKX1wVmUuZXhwb3J0cz13TnJ9KTt2YXIgSjY9amUoKHgkaSxmVmUpPT57InVzZSBzdHJpY3QiO3ZhciBoVmU9UTYoKSxuXz1YOCgpLE1Ocj14aSgpO2Z1bmN0aW9uIGhlZShlLHQscil7dmFyIGk9W107cmV0dXJuIGUuaW5jbHVkZS5mb3JFYWNoKGZ1bmN0aW9uKGEpe3I9aGVlKGEsdCxyKX0pLGVbdF0uZm9yRWFjaChmdW5jdGlvbihhKXtyLmZvckVhY2goZnVuY3Rpb24obixvKXtuLnRhZz09PWEudGFnJiZuLmtpbmQ9PT1hLmtpbmQmJmkucHVzaChvKX0pLHIucHVzaChhKX0pLHIuZmlsdGVyKGZ1bmN0aW9uKGEsbil7cmV0dXJuIGkuaW5kZXhPZihuKT09PS0xfSl9ZnVuY3Rpb24ga05yKCl7dmFyIGU9e3NjYWxhcjp7fSxzZXF1ZW5jZTp7fSxtYXBwaW5nOnt9LGZhbGxiYWNrOnt9fSx0LHI7ZnVuY3Rpb24gaShhKXtlW2Eua2luZF1bYS50YWddPWUuZmFsbGJhY2tbYS50YWddPWF9Zm9yKHQ9MCxyPWFyZ3VtZW50cy5sZW5ndGg7dDxyO3QrPTEpYXJndW1lbnRzW3RdLmZvckVhY2goaSk7cmV0dXJuIGV9ZnVuY3Rpb24gUTgoZSl7dGhpcy5pbmNsdWRlPWUuaW5jbHVkZXx8W10sdGhpcy5pbXBsaWNpdD1lLmltcGxpY2l0fHxbXSx0aGlzLmV4cGxpY2l0PWUuZXhwbGljaXR8fFtdLHRoaXMuaW1wbGljaXQuZm9yRWFjaChmdW5jdGlvbih0KXtpZih0LmxvYWRLaW5kJiZ0LmxvYWRLaW5kIT09InNjYWxhciIpdGhyb3cgbmV3IG5fKCJUaGVyZSBpcyBhIG5vbi1zY2FsYXIgdHlwZSBpbiB0aGUgaW1wbGljaXQgbGlzdCBvZiBhIHNjaGVtYS4gSW1wbGljaXQgcmVzb2x2aW5nIG9mIHN1Y2ggdHlwZXMgaXMgbm90IHN1cHBvcnRlZC4iKX0pLHRoaXMuY29tcGlsZWRJbXBsaWNpdD1oZWUodGhpcywiaW1wbGljaXQiLFtdKSx0aGlzLmNvbXBpbGVkRXhwbGljaXQ9aGVlKHRoaXMsImV4cGxpY2l0IixbXSksdGhpcy5jb21waWxlZFR5cGVNYXA9a05yKHRoaXMuY29tcGlsZWRJbXBsaWNpdCx0aGlzLmNvbXBpbGVkRXhwbGljaXQpfVE4LkRFRkFVTFQ9bnVsbCxROC5jcmVhdGU9ZnVuY3Rpb24oKXt2YXIgdCxyO3N3aXRjaChhcmd1bWVudHMubGVuZ3RoKXtjYXNlIDE6dD1ROC5ERUZBVUxULHI9YXJndW1lbnRzWzBdO2JyZWFrO2Nhc2UgMjp0PWFyZ3VtZW50c1swXSxyPWFyZ3VtZW50c1sxXTticmVhaztkZWZhdWx0OnRocm93IG5ldyBuXygiV3JvbmcgbnVtYmVyIG9mIGFyZ3VtZW50cyBmb3IgU2NoZW1hLmNyZWF0ZSBmdW5jdGlvbiIpfWlmKHQ9aFZlLnRvQXJyYXkodCkscj1oVmUudG9BcnJheShyKSwhdC5ldmVyeShmdW5jdGlvbihpKXtyZXR1cm4gaSBpbnN0YW5jZW9mIFE4fSkpdGhyb3cgbmV3IG5fKCJTcGVjaWZpZWQgbGlzdCBvZiBzdXBlciBzY2hlbWFzIChvciBhIHNpbmdsZSBTY2hlbWEgb2JqZWN0KSBjb250YWlucyBhIG5vbi1TY2hlbWEgb2JqZWN0LiIpO2lmKCFyLmV2ZXJ5KGZ1bmN0aW9uKGkpe3JldHVybiBpIGluc3RhbmNlb2YgTU5yfSkpdGhyb3cgbmV3IG5fKCJTcGVjaWZpZWQgbGlzdCBvZiBZQU1MIHR5cGVzIChvciBhIHNpbmdsZSBUeXBlIG9iamVjdCkgY29udGFpbnMgYSBub24tVHlwZSBvYmplY3QuIik7cmV0dXJuIG5ldyBROCh7aW5jbHVkZTp0LGV4cGxpY2l0OnJ9KX0sZlZlLmV4cG9ydHM9UTh9KTt2YXIgZ1ZlPWplKCh5JGksbVZlKT0+eyJ1c2Ugc3RyaWN0Ijt2YXIgU05yPXhpKCk7bVZlLmV4cG9ydHM9bmV3IFNOcigidGFnOnlhbWwub3JnLDIwMDI6c3RyIix7a2luZDoic2NhbGFyIixjb25zdHJ1Y3Q6ZnVuY3Rpb24oZSl7cmV0dXJuIGUhPT1udWxsP2U6IiJ9fSl9KTt2YXIgdlZlPWplKCh3JGksYlZlKT0+eyJ1c2Ugc3RyaWN0Ijt2YXIgek5yPXhpKCk7YlZlLmV4cG9ydHM9bmV3IHpOcigidGFnOnlhbWwub3JnLDIwMDI6c2VxIix7a2luZDoic2VxdWVuY2UiLGNvbnN0cnVjdDpmdW5jdGlvbihlKXtyZXR1cm4gZSE9PW51bGw/ZTpbXX19KX0pO3ZhciB5VmU9amUoKE0kaSx4VmUpPT57InVzZSBzdHJpY3QiO3ZhciBDTnI9eGkoKTt4VmUuZXhwb3J0cz1uZXcgQ05yKCJ0YWc6eWFtbC5vcmcsMjAwMjptYXAiLHtraW5kOiJtYXBwaW5nIixjb25zdHJ1Y3Q6ZnVuY3Rpb24oZSl7cmV0dXJuIGUhPT1udWxsP2U6e319fSl9KTt2YXIgb189amUoKGskaSx3VmUpPT57InVzZSBzdHJpY3QiO3ZhciBUTnI9SjYoKTt3VmUuZXhwb3J0cz1uZXcgVE5yKHtleHBsaWNpdDpbZ1ZlKCksdlZlKCkseVZlKCldfSl9KTt2YXIga1ZlPWplKChTJGksTVZlKT0+eyJ1c2Ugc3RyaWN0Ijt2YXIgX05yPXhpKCk7ZnVuY3Rpb24gTE5yKGUpe2lmKGU9PT1udWxsKXJldHVybiEwO3ZhciB0PWUubGVuZ3RoO3JldHVybiB0PT09MSYmZT09PSJ+Inx8dD09PTQmJihlPT09Im51bGwifHxlPT09Ik51bGwifHxlPT09Ik5VTEwiKX1mdW5jdGlvbiBBTnIoKXtyZXR1cm4gbnVsbH1mdW5jdGlvbiBETnIoZSl7cmV0dXJuIGU9PT1udWxsfU1WZS5leHBvcnRzPW5ldyBfTnIoInRhZzp5YW1sLm9yZywyMDAyOm51bGwiLHtraW5kOiJzY2FsYXIiLHJlc29sdmU6TE5yLGNvbnN0cnVjdDpBTnIscHJlZGljYXRlOkROcixyZXByZXNlbnQ6e2Nhbm9uaWNhbDpmdW5jdGlvbigpe3JldHVybiJ+In0sbG93ZXJjYXNlOmZ1bmN0aW9uKCl7cmV0dXJuIm51bGwifSx1cHBlcmNhc2U6ZnVuY3Rpb24oKXtyZXR1cm4iTlVMTCJ9LGNhbWVsY2FzZTpmdW5jdGlvbigpe3JldHVybiJOdWxsIn19LGRlZmF1bHRTdHlsZToibG93ZXJjYXNlIn0pfSk7dmFyIHpWZT1qZSgoeiRpLFNWZSk9PnsidXNlIHN0cmljdCI7dmFyIEVOcj14aSgpO2Z1bmN0aW9uICROcihlKXtpZihlPT09bnVsbClyZXR1cm4hMTt2YXIgdD1lLmxlbmd0aDtyZXR1cm4gdD09PTQmJihlPT09InRydWUifHxlPT09IlRydWUifHxlPT09IlRSVUUiKXx8dD09PTUmJihlPT09ImZhbHNlInx8ZT09PSJGYWxzZSJ8fGU9PT0iRkFMU0UiKX1mdW5jdGlvbiBJTnIoZSl7cmV0dXJuIGU9PT0idHJ1ZSJ8fGU9PT0iVHJ1ZSJ8fGU9PT0iVFJVRSJ9ZnVuY3Rpb24gUE5yKGUpe3JldHVybiBPYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwoZSk9PT0iW29iamVjdCBCb29sZWFuXSJ9U1ZlLmV4cG9ydHM9bmV3IEVOcigidGFnOnlhbWwub3JnLDIwMDI6Ym9vbCIse2tpbmQ6InNjYWxhciIscmVzb2x2ZTokTnIsY29uc3RydWN0OklOcixwcmVkaWNhdGU6UE5yLHJlcHJlc2VudDp7bG93ZXJjYXNlOmZ1bmN0aW9uKGUpe3JldHVybiBlPyJ0cnVlIjoiZmFsc2UifSx1cHBlcmNhc2U6ZnVuY3Rpb24oZSl7cmV0dXJuIGU/IlRSVUUiOiJGQUxTRSJ9LGNhbWVsY2FzZTpmdW5jdGlvbihlKXtyZXR1cm4gZT8iVHJ1ZSI6IkZhbHNlIn19LGRlZmF1bHRTdHlsZToibG93ZXJjYXNlIn0pfSk7dmFyIFRWZT1qZSgoQyRpLENWZSk9PnsidXNlIHN0cmljdCI7dmFyIE5Ocj1RNigpLEZOcj14aSgpO2Z1bmN0aW9uIE9OcihlKXtyZXR1cm4gNDg8PWUmJmU8PTU3fHw2NTw9ZSYmZTw9NzB8fDk3PD1lJiZlPD0xMDJ9ZnVuY3Rpb24gUk5yKGUpe3JldHVybiA0ODw9ZSYmZTw9NTV9ZnVuY3Rpb24gQk5yKGUpe3JldHVybiA0ODw9ZSYmZTw9NTd9ZnVuY3Rpb24gSE5yKGUpe2lmKGU9PT1udWxsKXJldHVybiExO3ZhciB0PWUubGVuZ3RoLHI9MCxpPSExLGE7aWYoIXQpcmV0dXJuITE7aWYoYT1lW3JdLChhPT09Ii0ifHxhPT09IisiKSYmKGE9ZVsrK3JdKSxhPT09IjAiKXtpZihyKzE9PT10KXJldHVybiEwO2lmKGE9ZVsrK3JdLGE9PT0iYiIpe2ZvcihyKys7cjx0O3IrKylpZihhPWVbcl0sYSE9PSJfIil7aWYoYSE9PSIwIiYmYSE9PSIxIilyZXR1cm4hMTtpPSEwfXJldHVybiBpJiZhIT09Il8ifWlmKGE9PT0ieCIpe2ZvcihyKys7cjx0O3IrKylpZihhPWVbcl0sYSE9PSJfIil7aWYoIU9OcihlLmNoYXJDb2RlQXQocikpKXJldHVybiExO2k9ITB9cmV0dXJuIGkmJmEhPT0iXyJ9Zm9yKDtyPHQ7cisrKWlmKGE9ZVtyXSxhIT09Il8iKXtpZighUk5yKGUuY2hhckNvZGVBdChyKSkpcmV0dXJuITE7aT0hMH1yZXR1cm4gaSYmYSE9PSJfIn1pZihhPT09Il8iKXJldHVybiExO2Zvcig7cjx0O3IrKylpZihhPWVbcl0sYSE9PSJfIil7aWYoYT09PSI6IilicmVhaztpZighQk5yKGUuY2hhckNvZGVBdChyKSkpcmV0dXJuITE7aT0hMH1yZXR1cm4haXx8YT09PSJfIj8hMTphIT09IjoiPyEwOi9eKDpbMC01XT9bMC05XSkrJC8udGVzdChlLnNsaWNlKHIpKX1mdW5jdGlvbiBxTnIoZSl7dmFyIHQ9ZSxyPTEsaSxhLG49W107cmV0dXJuIHQuaW5kZXhPZigiXyIpIT09LTEmJih0PXQucmVwbGFjZSgvXy9nLCIiKSksaT10WzBdLChpPT09Ii0ifHxpPT09IisiKSYmKGk9PT0iLSImJihyPS0xKSx0PXQuc2xpY2UoMSksaT10WzBdKSx0PT09IjAiPzA6aT09PSIwIj90WzFdPT09ImIiP3IqcGFyc2VJbnQodC5zbGljZSgyKSwyKTp0WzFdPT09IngiP3IqcGFyc2VJbnQodCwxNik6cipwYXJzZUludCh0LDgpOnQuaW5kZXhPZigiOiIpIT09LTE/KHQuc3BsaXQoIjoiKS5mb3JFYWNoKGZ1bmN0aW9uKG8pe24udW5zaGlmdChwYXJzZUludChvLDEwKSl9KSx0PTAsYT0xLG4uZm9yRWFjaChmdW5jdGlvbihvKXt0Kz1vKmEsYSo9NjB9KSxyKnQpOnIqcGFyc2VJbnQodCwxMCl9ZnVuY3Rpb24gak5yKGUpe3JldHVybiBPYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwoZSk9PT0iW29iamVjdCBOdW1iZXJdIiYmZSUxPT09MCYmIU5Oci5pc05lZ2F0aXZlWmVybyhlKX1DVmUuZXhwb3J0cz1uZXcgRk5yKCJ0YWc6eWFtbC5vcmcsMjAwMjppbnQiLHtraW5kOiJzY2FsYXIiLHJlc29sdmU6SE5yLGNvbnN0cnVjdDpxTnIscHJlZGljYXRlOmpOcixyZXByZXNlbnQ6e2JpbmFyeTpmdW5jdGlvbihlKXtyZXR1cm4gZT49MD8iMGIiK2UudG9TdHJpbmcoMik6Ii0wYiIrZS50b1N0cmluZygyKS5zbGljZSgxKX0sb2N0YWw6ZnVuY3Rpb24oZSl7cmV0dXJuIGU+PTA/IjAiK2UudG9TdHJpbmcoOCk6Ii0wIitlLnRvU3RyaW5nKDgpLnNsaWNlKDEpfSxkZWNpbWFsOmZ1bmN0aW9uKGUpe3JldHVybiBlLnRvU3RyaW5nKDEwKX0saGV4YWRlY2ltYWw6ZnVuY3Rpb24oZSl7cmV0dXJuIGU+PTA/IjB4IitlLnRvU3RyaW5nKDE2KS50b1VwcGVyQ2FzZSgpOiItMHgiK2UudG9TdHJpbmcoMTYpLnRvVXBwZXJDYXNlKCkuc2xpY2UoMSl9fSxkZWZhdWx0U3R5bGU6ImRlY2ltYWwiLHN0eWxlQWxpYXNlczp7YmluYXJ5OlsyLCJiaW4iXSxvY3RhbDpbOCwib2N0Il0sZGVjaW1hbDpbMTAsImRlYyJdLGhleGFkZWNpbWFsOlsxNiwiaGV4Il19fSl9KTt2YXIgQVZlPWplKChUJGksTFZlKT0+eyJ1c2Ugc3RyaWN0Ijt2YXIgX1ZlPVE2KCksVk5yPXhpKCksVU5yPW5ldyBSZWdFeHAoIl4oPzpbLStdPyg/OjB8WzEtOV1bMC05X10qKSg/OlxcLlswLTlfXSopPyg/OltlRV1bLStdP1swLTldKyk/fFxcLlswLTlfXSsoPzpbZUVdWy0rXT9bMC05XSspP3xbLStdP1swLTldWzAtOV9dKig/OjpbMC01XT9bMC05XSkrXFwuWzAtOV9dKnxbLStdP1xcLig/OmluZnxJbmZ8SU5GKXxcXC4oPzpuYW58TmFOfE5BTikpJCIpO2Z1bmN0aW9uIFdOcihlKXtyZXR1cm4hKGU9PT1udWxsfHwhVU5yLnRlc3QoZSl8fGVbZS5sZW5ndGgtMV09PT0iXyIpfWZ1bmN0aW9uIEdOcihlKXt2YXIgdCxyLGksYTtyZXR1cm4gdD1lLnJlcGxhY2UoL18vZywiIikudG9Mb3dlckNhc2UoKSxyPXRbMF09PT0iLSI/LTE6MSxhPVtdLCIrLSIuaW5kZXhPZih0WzBdKT49MCYmKHQ9dC5zbGljZSgxKSksdD09PSIuaW5mIj9yPT09MT9OdW1iZXIuUE9TSVRJVkVfSU5GSU5JVFk6TnVtYmVyLk5FR0FUSVZFX0lORklOSVRZOnQ9PT0iLm5hbiI/TmFOOnQuaW5kZXhPZigiOiIpPj0wPyh0LnNwbGl0KCI6IikuZm9yRWFjaChmdW5jdGlvbihuKXthLnVuc2hpZnQocGFyc2VGbG9hdChuLDEwKSl9KSx0PTAsaT0xLGEuZm9yRWFjaChmdW5jdGlvbihuKXt0Kz1uKmksaSo9NjB9KSxyKnQpOnIqcGFyc2VGbG9hdCh0LDEwKX12YXIgWU5yPS9eWy0rXT9bMC05XStlLztmdW5jdGlvbiBaTnIoZSx0KXt2YXIgcjtpZihpc05hTihlKSlzd2l0Y2godCl7Y2FzZSJsb3dlcmNhc2UiOnJldHVybiIubmFuIjtjYXNlInVwcGVyY2FzZSI6cmV0dXJuIi5OQU4iO2Nhc2UiY2FtZWxjYXNlIjpyZXR1cm4iLk5hTiJ9ZWxzZSBpZihOdW1iZXIuUE9TSVRJVkVfSU5GSU5JVFk9PT1lKXN3aXRjaCh0KXtjYXNlImxvd2VyY2FzZSI6cmV0dXJuIi5pbmYiO2Nhc2UidXBwZXJjYXNlIjpyZXR1cm4iLklORiI7Y2FzZSJjYW1lbGNhc2UiOnJldHVybiIuSW5mIn1lbHNlIGlmKE51bWJlci5ORUdBVElWRV9JTkZJTklUWT09PWUpc3dpdGNoKHQpe2Nhc2UibG93ZXJjYXNlIjpyZXR1cm4iLS5pbmYiO2Nhc2UidXBwZXJjYXNlIjpyZXR1cm4iLS5JTkYiO2Nhc2UiY2FtZWxjYXNlIjpyZXR1cm4iLS5JbmYifWVsc2UgaWYoX1ZlLmlzTmVnYXRpdmVaZXJvKGUpKXJldHVybiItMC4wIjtyZXR1cm4gcj1lLnRvU3RyaW5nKDEwKSxZTnIudGVzdChyKT9yLnJlcGxhY2UoImUiLCIuZSIpOnJ9ZnVuY3Rpb24gWE5yKGUpe3JldHVybiBPYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwoZSk9PT0iW29iamVjdCBOdW1iZXJdIiYmKGUlMSE9PTB8fF9WZS5pc05lZ2F0aXZlWmVybyhlKSl9TFZlLmV4cG9ydHM9bmV3IFZOcigidGFnOnlhbWwub3JnLDIwMDI6ZmxvYXQiLHtraW5kOiJzY2FsYXIiLHJlc29sdmU6V05yLGNvbnN0cnVjdDpHTnIscHJlZGljYXRlOlhOcixyZXByZXNlbnQ6Wk5yLGRlZmF1bHRTdHlsZToibG93ZXJjYXNlIn0pfSk7dmFyIGZlZT1qZSgoXyRpLERWZSk9PnsidXNlIHN0cmljdCI7dmFyIFFOcj1KNigpO0RWZS5leHBvcnRzPW5ldyBRTnIoe2luY2x1ZGU6W29fKCldLGltcGxpY2l0OltrVmUoKSx6VmUoKSxUVmUoKSxBVmUoKV19KX0pO3ZhciBtZWU9amUoKEwkaSxFVmUpPT57InVzZSBzdHJpY3QiO3ZhciBKTnI9SjYoKTtFVmUuZXhwb3J0cz1uZXcgSk5yKHtpbmNsdWRlOltmZWUoKV19KX0pO3ZhciBOVmU9amUoKEEkaSxQVmUpPT57InVzZSBzdHJpY3QiO3ZhciBLTnI9eGkoKSwkVmU9bmV3IFJlZ0V4cCgiXihbMC05XVswLTldWzAtOV1bMC05XSktKFswLTldWzAtOV0pLShbMC05XVswLTldKSQiKSxJVmU9bmV3IFJlZ0V4cCgiXihbMC05XVswLTldWzAtOV1bMC05XSktKFswLTldWzAtOV0/KS0oWzAtOV1bMC05XT8pKD86W1R0XXxbIFxcdF0rKShbMC05XVswLTldPyk6KFswLTldWzAtOV0pOihbMC05XVswLTldKSg/OlxcLihbMC05XSopKT8oPzpbIFxcdF0qKFp8KFstK10pKFswLTldWzAtOV0/KSg/OjooWzAtOV1bMC05XSkpPykpPyQiKTtmdW5jdGlvbiBlRnIoZSl7cmV0dXJuIGU9PT1udWxsPyExOiRWZS5leGVjKGUpIT09bnVsbHx8SVZlLmV4ZWMoZSkhPT1udWxsfWZ1bmN0aW9uIHRGcihlKXt2YXIgdCxyLGksYSxuLG8scyxsPTAsYz1udWxsLHUsZCxoO2lmKHQ9JFZlLmV4ZWMoZSksdD09PW51bGwmJih0PUlWZS5leGVjKGUpKSx0PT09bnVsbCl0aHJvdyBuZXcgRXJyb3IoIkRhdGUgcmVzb2x2ZSBlcnJvciIpO2lmKHI9K3RbMV0saT0rdFsyXS0xLGE9K3RbM10sIXRbNF0pcmV0dXJuIG5ldyBEYXRlKERhdGUuVVRDKHIsaSxhKSk7aWYobj0rdFs0XSxvPSt0WzVdLHM9K3RbNl0sdFs3XSl7Zm9yKGw9dFs3XS5zbGljZSgwLDMpO2wubGVuZ3RoPDM7KWwrPSIwIjtsPStsfXJldHVybiB0WzldJiYodT0rdFsxMF0sZD0rKHRbMTFdfHwwKSxjPSh1KjYwK2QpKjZlNCx0WzldPT09Ii0iJiYoYz0tYykpLGg9bmV3IERhdGUoRGF0ZS5VVEMocixpLGEsbixvLHMsbCkpLGMmJmguc2V0VGltZShoLmdldFRpbWUoKS1jKSxofWZ1bmN0aW9uIHJGcihlKXtyZXR1cm4gZS50b0lTT1N0cmluZygpfVBWZS5leHBvcnRzPW5ldyBLTnIoInRhZzp5YW1sLm9yZywyMDAyOnRpbWVzdGFtcCIse2tpbmQ6InNjYWxhciIscmVzb2x2ZTplRnIsY29uc3RydWN0OnRGcixpbnN0YW5jZU9mOkRhdGUscmVwcmVzZW50OnJGcn0pfSk7dmFyIE9WZT1qZSgoRCRpLEZWZSk9PnsidXNlIHN0cmljdCI7dmFyIGlGcj14aSgpO2Z1bmN0aW9uIGFGcihlKXtyZXR1cm4gZT09PSI8PCJ8fGU9PT1udWxsfUZWZS5leHBvcnRzPW5ldyBpRnIoInRhZzp5YW1sLm9yZywyMDAyOm1lcmdlIix7a2luZDoic2NhbGFyIixyZXNvbHZlOmFGcn0pfSk7dmFyIEhWZT1qZSgoRSRpLEJWZSk9PnsidXNlIHN0cmljdCI7dmFyIEs2O3RyeXtSVmU9UmMsSzY9UlZlKCJidWZmZXIiKS5CdWZmZXJ9Y2F0Y2h7fXZhciBuRnI9eGkoKSxnZWU9YEFCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFlaYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXowMTIzNDU2Nzg5Ky89ClxyYDtmdW5jdGlvbiBvRnIoZSl7aWYoZT09PW51bGwpcmV0dXJuITE7dmFyIHQscixpPTAsYT1lLmxlbmd0aCxuPWdlZTtmb3Iocj0wO3I8YTtyKyspaWYodD1uLmluZGV4T2YoZS5jaGFyQXQocikpLCEodD42NCkpe2lmKHQ8MClyZXR1cm4hMTtpKz02fXJldHVybiBpJTg9PT0wfWZ1bmN0aW9uIHNGcihlKXt2YXIgdCxyLGk9ZS5yZXBsYWNlKC9bXHJcbj1dL2csIiIpLGE9aS5sZW5ndGgsbj1nZWUsbz0wLHM9W107Zm9yKHQ9MDt0PGE7dCsrKXQlND09PTAmJnQmJihzLnB1c2gobz4+MTYmMjU1KSxzLnB1c2gobz4+OCYyNTUpLHMucHVzaChvJjI1NSkpLG89bzw8NnxuLmluZGV4T2YoaS5jaGFyQXQodCkpO3JldHVybiByPWElNCo2LHI9PT0wPyhzLnB1c2gobz4+MTYmMjU1KSxzLnB1c2gobz4+OCYyNTUpLHMucHVzaChvJjI1NSkpOnI9PT0xOD8ocy5wdXNoKG8+PjEwJjI1NSkscy5wdXNoKG8+PjImMjU1KSk6cj09PTEyJiZzLnB1c2gobz4+NCYyNTUpLEs2P0s2LmZyb20/SzYuZnJvbShzKTpuZXcgSzYocyk6c31mdW5jdGlvbiBsRnIoZSl7dmFyIHQ9IiIscj0wLGksYSxuPWUubGVuZ3RoLG89Z2VlO2ZvcihpPTA7aTxuO2krKylpJTM9PT0wJiZpJiYodCs9b1tyPj4xOCY2M10sdCs9b1tyPj4xMiY2M10sdCs9b1tyPj42JjYzXSx0Kz1vW3ImNjNdKSxyPShyPDw4KStlW2ldO3JldHVybiBhPW4lMyxhPT09MD8odCs9b1tyPj4xOCY2M10sdCs9b1tyPj4xMiY2M10sdCs9b1tyPj42JjYzXSx0Kz1vW3ImNjNdKTphPT09Mj8odCs9b1tyPj4xMCY2M10sdCs9b1tyPj40JjYzXSx0Kz1vW3I8PDImNjNdLHQrPW9bNjRdKTphPT09MSYmKHQrPW9bcj4+MiY2M10sdCs9b1tyPDw0JjYzXSx0Kz1vWzY0XSx0Kz1vWzY0XSksdH1mdW5jdGlvbiBjRnIoZSl7cmV0dXJuIEs2JiZLNi5pc0J1ZmZlcihlKX1CVmUuZXhwb3J0cz1uZXcgbkZyKCJ0YWc6eWFtbC5vcmcsMjAwMjpiaW5hcnkiLHtraW5kOiJzY2FsYXIiLHJlc29sdmU6b0ZyLGNvbnN0cnVjdDpzRnIscHJlZGljYXRlOmNGcixyZXByZXNlbnQ6bEZyfSk7dmFyIFJWZX0pO3ZhciBqVmU9amUoKEkkaSxxVmUpPT57InVzZSBzdHJpY3QiO3ZhciBkRnI9eGkoKSx1RnI9T2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eSxwRnI9T2JqZWN0LnByb3RvdHlwZS50b1N0cmluZztmdW5jdGlvbiBoRnIoZSl7aWYoZT09PW51bGwpcmV0dXJuITA7dmFyIHQ9W10scixpLGEsbixvLHM9ZTtmb3Iocj0wLGk9cy5sZW5ndGg7cjxpO3IrPTEpe2lmKGE9c1tyXSxvPSExLHBGci5jYWxsKGEpIT09IltvYmplY3QgT2JqZWN0XSIpcmV0dXJuITE7Zm9yKG4gaW4gYSlpZih1RnIuY2FsbChhLG4pKWlmKCFvKW89ITA7ZWxzZSByZXR1cm4hMTtpZighbylyZXR1cm4hMTtpZih0LmluZGV4T2Yobik9PT0tMSl0LnB1c2gobik7ZWxzZSByZXR1cm4hMX1yZXR1cm4hMH1mdW5jdGlvbiBmRnIoZSl7cmV0dXJuIGUhPT1udWxsP2U6W119cVZlLmV4cG9ydHM9bmV3IGRGcigidGFnOnlhbWwub3JnLDIwMDI6b21hcCIse2tpbmQ6InNlcXVlbmNlIixyZXNvbHZlOmhGcixjb25zdHJ1Y3Q6ZkZyfSl9KTt2YXIgVVZlPWplKChQJGksVlZlKT0+eyJ1c2Ugc3RyaWN0Ijt2YXIgbUZyPXhpKCksZ0ZyPU9iamVjdC5wcm90b3R5cGUudG9TdHJpbmc7ZnVuY3Rpb24gYkZyKGUpe2lmKGU9PT1udWxsKXJldHVybiEwO3ZhciB0LHIsaSxhLG4sbz1lO2ZvcihuPW5ldyBBcnJheShvLmxlbmd0aCksdD0wLHI9by5sZW5ndGg7dDxyO3QrPTEpe2lmKGk9b1t0XSxnRnIuY2FsbChpKSE9PSJbb2JqZWN0IE9iamVjdF0ifHwoYT1PYmplY3Qua2V5cyhpKSxhLmxlbmd0aCE9PTEpKXJldHVybiExO25bdF09W2FbMF0saVthWzBdXV19cmV0dXJuITB9ZnVuY3Rpb24gdkZyKGUpe2lmKGU9PT1udWxsKXJldHVybltdO3ZhciB0LHIsaSxhLG4sbz1lO2ZvcihuPW5ldyBBcnJheShvLmxlbmd0aCksdD0wLHI9by5sZW5ndGg7dDxyO3QrPTEpaT1vW3RdLGE9T2JqZWN0LmtleXMoaSksblt0XT1bYVswXSxpW2FbMF1dXTtyZXR1cm4gbn1WVmUuZXhwb3J0cz1uZXcgbUZyKCJ0YWc6eWFtbC5vcmcsMjAwMjpwYWlycyIse2tpbmQ6InNlcXVlbmNlIixyZXNvbHZlOmJGcixjb25zdHJ1Y3Q6dkZyfSl9KTt2YXIgR1ZlPWplKChOJGksV1ZlKT0+eyJ1c2Ugc3RyaWN0Ijt2YXIgeEZyPXhpKCkseUZyPU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHk7ZnVuY3Rpb24gd0ZyKGUpe2lmKGU9PT1udWxsKXJldHVybiEwO3ZhciB0LHI9ZTtmb3IodCBpbiByKWlmKHlGci5jYWxsKHIsdCkmJnJbdF0hPT1udWxsKXJldHVybiExO3JldHVybiEwfWZ1bmN0aW9uIE1GcihlKXtyZXR1cm4gZSE9PW51bGw/ZTp7fX1XVmUuZXhwb3J0cz1uZXcgeEZyKCJ0YWc6eWFtbC5vcmcsMjAwMjpzZXQiLHtraW5kOiJtYXBwaW5nIixyZXNvbHZlOndGcixjb25zdHJ1Y3Q6TUZyfSl9KTt2YXIgSjg9amUoKEYkaSxZVmUpPT57InVzZSBzdHJpY3QiO3ZhciBrRnI9SjYoKTtZVmUuZXhwb3J0cz1uZXcga0ZyKHtpbmNsdWRlOlttZWUoKV0saW1wbGljaXQ6W05WZSgpLE9WZSgpXSxleHBsaWNpdDpbSFZlKCksalZlKCksVVZlKCksR1ZlKCldfSl9KTt2YXIgWFZlPWplKChPJGksWlZlKT0+eyJ1c2Ugc3RyaWN0Ijt2YXIgU0ZyPXhpKCk7ZnVuY3Rpb24gekZyKCl7cmV0dXJuITB9ZnVuY3Rpb24gQ0ZyKCl7fWZ1bmN0aW9uIFRGcigpe3JldHVybiIifWZ1bmN0aW9uIF9GcihlKXtyZXR1cm4gdHlwZW9mIGU+InUifVpWZS5leHBvcnRzPW5ldyBTRnIoInRhZzp5YW1sLm9yZywyMDAyOmpzL3VuZGVmaW5lZCIse2tpbmQ6InNjYWxhciIscmVzb2x2ZTp6RnIsY29uc3RydWN0OkNGcixwcmVkaWNhdGU6X0ZyLHJlcHJlc2VudDpURnJ9KX0pO3ZhciBKVmU9amUoKFIkaSxRVmUpPT57InVzZSBzdHJpY3QiO3ZhciBMRnI9eGkoKTtmdW5jdGlvbiBBRnIoZSl7aWYoZT09PW51bGx8fGUubGVuZ3RoPT09MClyZXR1cm4hMTt2YXIgdD1lLHI9L1wvKFtnaW1dKikkLy5leGVjKGUpLGk9IiI7cmV0dXJuISh0WzBdPT09Ii8iJiYociYmKGk9clsxXSksaS5sZW5ndGg+M3x8dFt0Lmxlbmd0aC1pLmxlbmd0aC0xXSE9PSIvIikpfWZ1bmN0aW9uIERGcihlKXt2YXIgdD1lLHI9L1wvKFtnaW1dKikkLy5leGVjKGUpLGk9IiI7cmV0dXJuIHRbMF09PT0iLyImJihyJiYoaT1yWzFdKSx0PXQuc2xpY2UoMSx0Lmxlbmd0aC1pLmxlbmd0aC0xKSksbmV3IFJlZ0V4cCh0LGkpfWZ1bmN0aW9uIEVGcihlKXt2YXIgdD0iLyIrZS5zb3VyY2UrIi8iO3JldHVybiBlLmdsb2JhbCYmKHQrPSJnIiksZS5tdWx0aWxpbmUmJih0Kz0ibSIpLGUuaWdub3JlQ2FzZSYmKHQrPSJpIiksdH1mdW5jdGlvbiAkRnIoZSl7cmV0dXJuIE9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbChlKT09PSJbb2JqZWN0IFJlZ0V4cF0ifVFWZS5leHBvcnRzPW5ldyBMRnIoInRhZzp5YW1sLm9yZywyMDAyOmpzL3JlZ2V4cCIse2tpbmQ6InNjYWxhciIscmVzb2x2ZTpBRnIsY29uc3RydWN0OkRGcixwcmVkaWNhdGU6JEZyLHJlcHJlc2VudDpFRnJ9KX0pO3ZhciB0VWU9amUoKEIkaSxlVWUpPT57InVzZSBzdHJpY3QiO3ZhciBzXzt0cnl7S1ZlPVJjLHNfPUtWZSgiZXNwcmltYSIpfWNhdGNoe3R5cGVvZiB3aW5kb3c8InUiJiYoc189d2luZG93LmVzcHJpbWEpfXZhciBJRnI9eGkoKTtmdW5jdGlvbiBQRnIoZSl7aWYoZT09PW51bGwpcmV0dXJuITE7dHJ5e3ZhciB0PSIoIitlKyIpIixyPXNfLnBhcnNlKHQse3JhbmdlOiEwfSk7cmV0dXJuIShyLnR5cGUhPT0iUHJvZ3JhbSJ8fHIuYm9keS5sZW5ndGghPT0xfHxyLmJvZHlbMF0udHlwZSE9PSJFeHByZXNzaW9uU3RhdGVtZW50Inx8ci5ib2R5WzBdLmV4cHJlc3Npb24udHlwZSE9PSJBcnJvd0Z1bmN0aW9uRXhwcmVzc2lvbiImJnIuYm9keVswXS5leHByZXNzaW9uLnR5cGUhPT0iRnVuY3Rpb25FeHByZXNzaW9uIil9Y2F0Y2h7cmV0dXJuITF9fWZ1bmN0aW9uIE5GcihlKXt2YXIgdD0iKCIrZSsiKSIscj1zXy5wYXJzZSh0LHtyYW5nZTohMH0pLGk9W10sYTtpZihyLnR5cGUhPT0iUHJvZ3JhbSJ8fHIuYm9keS5sZW5ndGghPT0xfHxyLmJvZHlbMF0udHlwZSE9PSJFeHByZXNzaW9uU3RhdGVtZW50Inx8ci5ib2R5WzBdLmV4cHJlc3Npb24udHlwZSE9PSJBcnJvd0Z1bmN0aW9uRXhwcmVzc2lvbiImJnIuYm9keVswXS5leHByZXNzaW9uLnR5cGUhPT0iRnVuY3Rpb25FeHByZXNzaW9uIil0aHJvdyBuZXcgRXJyb3IoIkZhaWxlZCB0byByZXNvbHZlIGZ1bmN0aW9uIik7cmV0dXJuIHIuYm9keVswXS5leHByZXNzaW9uLnBhcmFtcy5mb3JFYWNoKGZ1bmN0aW9uKG4pe2kucHVzaChuLm5hbWUpfSksYT1yLmJvZHlbMF0uZXhwcmVzc2lvbi5ib2R5LnJhbmdlLHIuYm9keVswXS5leHByZXNzaW9uLmJvZHkudHlwZT09PSJCbG9ja1N0YXRlbWVudCI/bmV3IEZ1bmN0aW9uKGksdC5zbGljZShhWzBdKzEsYVsxXS0xKSk6bmV3IEZ1bmN0aW9uKGksInJldHVybiAiK3Quc2xpY2UoYVswXSxhWzFdKSl9ZnVuY3Rpb24gRkZyKGUpe3JldHVybiBlLnRvU3RyaW5nKCl9ZnVuY3Rpb24gT0ZyKGUpe3JldHVybiBPYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwoZSk9PT0iW29iamVjdCBGdW5jdGlvbl0ifWVVZS5leHBvcnRzPW5ldyBJRnIoInRhZzp5YW1sLm9yZywyMDAyOmpzL2Z1bmN0aW9uIix7a2luZDoic2NhbGFyIixyZXNvbHZlOlBGcixjb25zdHJ1Y3Q6TkZyLHByZWRpY2F0ZTpPRnIscmVwcmVzZW50OkZGcn0pO3ZhciBLVmV9KTt2YXIgTTk9amUoKHEkaSxpVWUpPT57InVzZSBzdHJpY3QiO3ZhciByVWU9SjYoKTtpVWUuZXhwb3J0cz1yVWUuREVGQVVMVD1uZXcgclVlKHtpbmNsdWRlOltKOCgpXSxleHBsaWNpdDpbWFZlKCksSlZlKCksdFVlKCldfSl9KTt2YXIga1VlPWplKChqJGksazkpPT57InVzZSBzdHJpY3QiO3ZhciByYz1RNigpLGFVZT1YOCgpLFJGcj1kVmUoKSxuVWU9SjgoKSxCRnI9TTkoKSxzND1PYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LGxfPTEsb1VlPTIsc1VlPTMsY189NCxiZWU9MSxIRnI9MixsVWU9MyxxRnI9L1tceDAwLVx4MDhceDBCXHgwQ1x4MEUtXHgxRlx4N0YtXHg4NFx4ODYtXHg5Rlx1RkZGRVx1RkZGRl18W1x1RDgwMC1cdURCRkZdKD8hW1x1REMwMC1cdURGRkZdKXwoPzpbXlx1RDgwMC1cdURCRkZdfF4pW1x1REMwMC1cdURGRkZdLyxqRnI9L1tceDg1XHUyMDI4XHUyMDI5XS8sVkZyPS9bLFxbXF1ce1x9XS8sY1VlPS9eKD86IXwhIXwhW2EtelwtXSshKSQvaSxkVWU9L14oPzohfFteLFxbXF1ce1x9XSkoPzolWzAtOWEtZl17Mn18WzAtOWEtelwtIztcL1w/OkAmPVwrXCQsX1wuIX5cKidcKFwpXFtcXV0pKiQvaTtmdW5jdGlvbiB1VWUoZSl7cmV0dXJuIE9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbChlKX1mdW5jdGlvbiBxcyhlKXtyZXR1cm4gZT09PTEwfHxlPT09MTN9ZnVuY3Rpb24gZWQoZSl7cmV0dXJuIGU9PT05fHxlPT09MzJ9ZnVuY3Rpb24gTW4oZSl7cmV0dXJuIGU9PT05fHxlPT09MzJ8fGU9PT0xMHx8ZT09PTEzfWZ1bmN0aW9uIEs4KGUpe3JldHVybiBlPT09NDR8fGU9PT05MXx8ZT09PTkzfHxlPT09MTIzfHxlPT09MTI1fWZ1bmN0aW9uIFVGcihlKXt2YXIgdDtyZXR1cm4gNDg8PWUmJmU8PTU3P2UtNDg6KHQ9ZXwzMiw5Nzw9dCYmdDw9MTAyP3QtOTcrMTA6LTEpfWZ1bmN0aW9uIFdGcihlKXtyZXR1cm4gZT09PTEyMD8yOmU9PT0xMTc/NDplPT09ODU/ODowfWZ1bmN0aW9uIEdGcihlKXtyZXR1cm4gNDg8PWUmJmU8PTU3P2UtNDg6LTF9ZnVuY3Rpb24gcFVlKGUpe3JldHVybiBlPT09NDg/IlwwIjplPT09OTc/Ilx4MDciOmU9PT05OD8iXGIiOmU9PT0xMTZ8fGU9PT05PyIJIjplPT09MTEwP2AKYDplPT09MTE4PyJcdiI6ZT09PTEwMj8iXGYiOmU9PT0xMTQ/IlxyIjplPT09MTAxPyJceDFCIjplPT09MzI/IiAiOmU9PT0zND8nIic6ZT09PTQ3PyIvIjplPT09OTI/IlxcIjplPT09Nzg/Ilx4ODUiOmU9PT05NT8iXHhBMCI6ZT09PTc2PyJcdTIwMjgiOmU9PT04MD8iXHUyMDI5IjoiIn1mdW5jdGlvbiBZRnIoZSl7cmV0dXJuIGU8PTY1NTM1P1N0cmluZy5mcm9tQ2hhckNvZGUoZSk6U3RyaW5nLmZyb21DaGFyQ29kZSgoZS02NTUzNj4+MTApKzU1Mjk2LChlLTY1NTM2JjEwMjMpKzU2MzIwKX1mdW5jdGlvbiBoVWUoZSx0LHIpe3Q9PT0iX19wcm90b19fIj9PYmplY3QuZGVmaW5lUHJvcGVydHkoZSx0LHtjb25maWd1cmFibGU6ITAsZW51bWVyYWJsZTohMCx3cml0YWJsZTohMCx2YWx1ZTpyfSk6ZVt0XT1yfXZhciBmVWU9bmV3IEFycmF5KDI1NiksbVVlPW5ldyBBcnJheSgyNTYpO2Zvcih0ZD0wO3RkPDI1Njt0ZCsrKWZVZVt0ZF09cFVlKHRkKT8xOjAsbVVlW3RkXT1wVWUodGQpO2Z1bmN0aW9uIFpGcihlLHQpe3RoaXMuaW5wdXQ9ZSx0aGlzLmZpbGVuYW1lPXQuZmlsZW5hbWV8fG51bGwsdGhpcy5zY2hlbWE9dC5zY2hlbWF8fEJGcix0aGlzLm9uV2FybmluZz10Lm9uV2FybmluZ3x8bnVsbCx0aGlzLmxlZ2FjeT10LmxlZ2FjeXx8ITEsdGhpcy5qc29uPXQuanNvbnx8ITEsdGhpcy5saXN0ZW5lcj10Lmxpc3RlbmVyfHxudWxsLHRoaXMuaW1wbGljaXRUeXBlcz10aGlzLnNjaGVtYS5jb21waWxlZEltcGxpY2l0LHRoaXMudHlwZU1hcD10aGlzLnNjaGVtYS5jb21waWxlZFR5cGVNYXAsdGhpcy5sZW5ndGg9ZS5sZW5ndGgsdGhpcy5wb3NpdGlvbj0wLHRoaXMubGluZT0wLHRoaXMubGluZVN0YXJ0PTAsdGhpcy5saW5lSW5kZW50PTAsdGhpcy5kb2N1bWVudHM9W119ZnVuY3Rpb24gZ1VlKGUsdCl7cmV0dXJuIG5ldyBhVWUodCxuZXcgUkZyKGUuZmlsZW5hbWUsZS5pbnB1dCxlLnBvc2l0aW9uLGUubGluZSxlLnBvc2l0aW9uLWUubGluZVN0YXJ0KSl9ZnVuY3Rpb24gd3QoZSx0KXt0aHJvdyBnVWUoZSx0KX1mdW5jdGlvbiBkXyhlLHQpe2Uub25XYXJuaW5nJiZlLm9uV2FybmluZy5jYWxsKG51bGwsZ1VlKGUsdCkpfXZhciBiVWU9e1lBTUw6ZnVuY3Rpb24odCxyLGkpe3ZhciBhLG4sbzt0LnZlcnNpb24hPT1udWxsJiZ3dCh0LCJkdXBsaWNhdGlvbiBvZiAlWUFNTCBkaXJlY3RpdmUiKSxpLmxlbmd0aCE9PTEmJnd0KHQsIllBTUwgZGlyZWN0aXZlIGFjY2VwdHMgZXhhY3RseSBvbmUgYXJndW1lbnQiKSxhPS9eKFswLTldKylcLihbMC05XSspJC8uZXhlYyhpWzBdKSxhPT09bnVsbCYmd3QodCwiaWxsLWZvcm1lZCBhcmd1bWVudCBvZiB0aGUgWUFNTCBkaXJlY3RpdmUiKSxuPXBhcnNlSW50KGFbMV0sMTApLG89cGFyc2VJbnQoYVsyXSwxMCksbiE9PTEmJnd0KHQsInVuYWNjZXB0YWJsZSBZQU1MIHZlcnNpb24gb2YgdGhlIGRvY3VtZW50IiksdC52ZXJzaW9uPWlbMF0sdC5jaGVja0xpbmVCcmVha3M9bzwyLG8hPT0xJiZvIT09MiYmZF8odCwidW5zdXBwb3J0ZWQgWUFNTCB2ZXJzaW9uIG9mIHRoZSBkb2N1bWVudCIpfSxUQUc6ZnVuY3Rpb24odCxyLGkpe3ZhciBhLG47aS5sZW5ndGghPT0yJiZ3dCh0LCJUQUcgZGlyZWN0aXZlIGFjY2VwdHMgZXhhY3RseSB0d28gYXJndW1lbnRzIiksYT1pWzBdLG49aVsxXSxjVWUudGVzdChhKXx8d3QodCwiaWxsLWZvcm1lZCB0YWcgaGFuZGxlIChmaXJzdCBhcmd1bWVudCkgb2YgdGhlIFRBRyBkaXJlY3RpdmUiKSxzNC5jYWxsKHQudGFnTWFwLGEpJiZ3dCh0LCd0aGVyZSBpcyBhIHByZXZpb3VzbHkgZGVjbGFyZWQgc3VmZml4IGZvciAiJythKyciIHRhZyBoYW5kbGUnKSxkVWUudGVzdChuKXx8d3QodCwiaWxsLWZvcm1lZCB0YWcgcHJlZml4IChzZWNvbmQgYXJndW1lbnQpIG9mIHRoZSBUQUcgZGlyZWN0aXZlIiksdC50YWdNYXBbYV09bn19O2Z1bmN0aW9uIGw0KGUsdCxyLGkpe3ZhciBhLG4sbyxzO2lmKHQ8cil7aWYocz1lLmlucHV0LnNsaWNlKHQsciksaSlmb3IoYT0wLG49cy5sZW5ndGg7YTxuO2ErPTEpbz1zLmNoYXJDb2RlQXQoYSksbz09PTl8fDMyPD1vJiZvPD0xMTE0MTExfHx3dChlLCJleHBlY3RlZCB2YWxpZCBKU09OIGNoYXJhY3RlciIpO2Vsc2UgcUZyLnRlc3QocykmJnd0KGUsInRoZSBzdHJlYW0gY29udGFpbnMgbm9uLXByaW50YWJsZSBjaGFyYWN0ZXJzIik7ZS5yZXN1bHQrPXN9fWZ1bmN0aW9uIHZVZShlLHQscixpKXt2YXIgYSxuLG8scztmb3IocmMuaXNPYmplY3Qocil8fHd0KGUsImNhbm5vdCBtZXJnZSBtYXBwaW5nczsgdGhlIHByb3ZpZGVkIHNvdXJjZSBvYmplY3QgaXMgdW5hY2NlcHRhYmxlIiksYT1PYmplY3Qua2V5cyhyKSxvPTAscz1hLmxlbmd0aDtvPHM7bys9MSluPWFbb10sczQuY2FsbCh0LG4pfHwoaFVlKHQsbixyW25dKSxpW25dPSEwKX1mdW5jdGlvbiBlcChlLHQscixpLGEsbixvLHMpe3ZhciBsLGM7aWYoQXJyYXkuaXNBcnJheShhKSlmb3IoYT1BcnJheS5wcm90b3R5cGUuc2xpY2UuY2FsbChhKSxsPTAsYz1hLmxlbmd0aDtsPGM7bCs9MSlBcnJheS5pc0FycmF5KGFbbF0pJiZ3dChlLCJuZXN0ZWQgYXJyYXlzIGFyZSBub3Qgc3VwcG9ydGVkIGluc2lkZSBrZXlzIiksdHlwZW9mIGE9PSJvYmplY3QiJiZ1VWUoYVtsXSk9PT0iW29iamVjdCBPYmplY3RdIiYmKGFbbF09IltvYmplY3QgT2JqZWN0XSIpO2lmKHR5cGVvZiBhPT0ib2JqZWN0IiYmdVVlKGEpPT09IltvYmplY3QgT2JqZWN0XSImJihhPSJbb2JqZWN0IE9iamVjdF0iKSxhPVN0cmluZyhhKSx0PT09bnVsbCYmKHQ9e30pLGk9PT0idGFnOnlhbWwub3JnLDIwMDI6bWVyZ2UiKWlmKEFycmF5LmlzQXJyYXkobikpZm9yKGw9MCxjPW4ubGVuZ3RoO2w8YztsKz0xKXZVZShlLHQsbltsXSxyKTtlbHNlIHZVZShlLHQsbixyKTtlbHNlIWUuanNvbiYmIXM0LmNhbGwocixhKSYmczQuY2FsbCh0LGEpJiYoZS5saW5lPW98fGUubGluZSxlLnBvc2l0aW9uPXN8fGUucG9zaXRpb24sd3QoZSwiZHVwbGljYXRlZCBtYXBwaW5nIGtleSIpKSxoVWUodCxhLG4pLGRlbGV0ZSByW2FdO3JldHVybiB0fWZ1bmN0aW9uIHZlZShlKXt2YXIgdDt0PWUuaW5wdXQuY2hhckNvZGVBdChlLnBvc2l0aW9uKSx0PT09MTA/ZS5wb3NpdGlvbisrOnQ9PT0xMz8oZS5wb3NpdGlvbisrLGUuaW5wdXQuY2hhckNvZGVBdChlLnBvc2l0aW9uKT09PTEwJiZlLnBvc2l0aW9uKyspOnd0KGUsImEgbGluZSBicmVhayBpcyBleHBlY3RlZCIpLGUubGluZSs9MSxlLmxpbmVTdGFydD1lLnBvc2l0aW9ufWZ1bmN0aW9uIGlpKGUsdCxyKXtmb3IodmFyIGk9MCxhPWUuaW5wdXQuY2hhckNvZGVBdChlLnBvc2l0aW9uKTthIT09MDspe2Zvcig7ZWQoYSk7KWE9ZS5pbnB1dC5jaGFyQ29kZUF0KCsrZS5wb3NpdGlvbik7aWYodCYmYT09PTM1KWRvIGE9ZS5pbnB1dC5jaGFyQ29kZUF0KCsrZS5wb3NpdGlvbik7d2hpbGUoYSE9PTEwJiZhIT09MTMmJmEhPT0wKTtpZihxcyhhKSlmb3IodmVlKGUpLGE9ZS5pbnB1dC5jaGFyQ29kZUF0KGUucG9zaXRpb24pLGkrKyxlLmxpbmVJbmRlbnQ9MDthPT09MzI7KWUubGluZUluZGVudCsrLGE9ZS5pbnB1dC5jaGFyQ29kZUF0KCsrZS5wb3NpdGlvbik7ZWxzZSBicmVha31yZXR1cm4gciE9PS0xJiZpIT09MCYmZS5saW5lSW5kZW50PHImJmRfKGUsImRlZmljaWVudCBpbmRlbnRhdGlvbiIpLGl9ZnVuY3Rpb24gdV8oZSl7dmFyIHQ9ZS5wb3NpdGlvbixyO3JldHVybiByPWUuaW5wdXQuY2hhckNvZGVBdCh0KSwhISgocj09PTQ1fHxyPT09NDYpJiZyPT09ZS5pbnB1dC5jaGFyQ29kZUF0KHQrMSkmJnI9PT1lLmlucHV0LmNoYXJDb2RlQXQodCsyKSYmKHQrPTMscj1lLmlucHV0LmNoYXJDb2RlQXQodCkscj09PTB8fE1uKHIpKSl9ZnVuY3Rpb24geGVlKGUsdCl7dD09PTE/ZS5yZXN1bHQrPSIgIjp0PjEmJihlLnJlc3VsdCs9cmMucmVwZWF0KGAKYCx0LTEpKX1mdW5jdGlvbiBYRnIoZSx0LHIpe3ZhciBpLGEsbixvLHMsbCxjLHUsZD1lLmtpbmQsaD1lLnJlc3VsdCxmO2lmKGY9ZS5pbnB1dC5jaGFyQ29kZUF0KGUucG9zaXRpb24pLE1uKGYpfHxLOChmKXx8Zj09PTM1fHxmPT09Mzh8fGY9PT00Mnx8Zj09PTMzfHxmPT09MTI0fHxmPT09NjJ8fGY9PT0zOXx8Zj09PTM0fHxmPT09Mzd8fGY9PT02NHx8Zj09PTk2fHwoZj09PTYzfHxmPT09NDUpJiYoYT1lLmlucHV0LmNoYXJDb2RlQXQoZS5wb3NpdGlvbisxKSxNbihhKXx8ciYmSzgoYSkpKXJldHVybiExO2ZvcihlLmtpbmQ9InNjYWxhciIsZS5yZXN1bHQ9IiIsbj1vPWUucG9zaXRpb24scz0hMTtmIT09MDspe2lmKGY9PT01OCl7aWYoYT1lLmlucHV0LmNoYXJDb2RlQXQoZS5wb3NpdGlvbisxKSxNbihhKXx8ciYmSzgoYSkpYnJlYWt9ZWxzZSBpZihmPT09MzUpe2lmKGk9ZS5pbnB1dC5jaGFyQ29kZUF0KGUucG9zaXRpb24tMSksTW4oaSkpYnJlYWt9ZWxzZXtpZihlLnBvc2l0aW9uPT09ZS5saW5lU3RhcnQmJnVfKGUpfHxyJiZLOChmKSlicmVhaztpZihxcyhmKSlpZihsPWUubGluZSxjPWUubGluZVN0YXJ0LHU9ZS5saW5lSW5kZW50LGlpKGUsITEsLTEpLGUubGluZUluZGVudD49dCl7cz0hMCxmPWUuaW5wdXQuY2hhckNvZGVBdChlLnBvc2l0aW9uKTtjb250aW51ZX1lbHNle2UucG9zaXRpb249byxlLmxpbmU9bCxlLmxpbmVTdGFydD1jLGUubGluZUluZGVudD11O2JyZWFrfX1zJiYobDQoZSxuLG8sITEpLHhlZShlLGUubGluZS1sKSxuPW89ZS5wb3NpdGlvbixzPSExKSxlZChmKXx8KG89ZS5wb3NpdGlvbisxKSxmPWUuaW5wdXQuY2hhckNvZGVBdCgrK2UucG9zaXRpb24pfXJldHVybiBsNChlLG4sbywhMSksZS5yZXN1bHQ/ITA6KGUua2luZD1kLGUucmVzdWx0PWgsITEpfWZ1bmN0aW9uIFFGcihlLHQpe3ZhciByLGksYTtpZihyPWUuaW5wdXQuY2hhckNvZGVBdChlLnBvc2l0aW9uKSxyIT09MzkpcmV0dXJuITE7Zm9yKGUua2luZD0ic2NhbGFyIixlLnJlc3VsdD0iIixlLnBvc2l0aW9uKyssaT1hPWUucG9zaXRpb247KHI9ZS5pbnB1dC5jaGFyQ29kZUF0KGUucG9zaXRpb24pKSE9PTA7KWlmKHI9PT0zOSlpZihsNChlLGksZS5wb3NpdGlvbiwhMCkscj1lLmlucHV0LmNoYXJDb2RlQXQoKytlLnBvc2l0aW9uKSxyPT09MzkpaT1lLnBvc2l0aW9uLGUucG9zaXRpb24rKyxhPWUucG9zaXRpb247ZWxzZSByZXR1cm4hMDtlbHNlIHFzKHIpPyhsNChlLGksYSwhMCkseGVlKGUsaWkoZSwhMSx0KSksaT1hPWUucG9zaXRpb24pOmUucG9zaXRpb249PT1lLmxpbmVTdGFydCYmdV8oZSk/d3QoZSwidW5leHBlY3RlZCBlbmQgb2YgdGhlIGRvY3VtZW50IHdpdGhpbiBhIHNpbmdsZSBxdW90ZWQgc2NhbGFyIik6KGUucG9zaXRpb24rKyxhPWUucG9zaXRpb24pO3d0KGUsInVuZXhwZWN0ZWQgZW5kIG9mIHRoZSBzdHJlYW0gd2l0aGluIGEgc2luZ2xlIHF1b3RlZCBzY2FsYXIiKX1mdW5jdGlvbiBKRnIoZSx0KXt2YXIgcixpLGEsbixvLHM7aWYocz1lLmlucHV0LmNoYXJDb2RlQXQoZS5wb3NpdGlvbikscyE9PTM0KXJldHVybiExO2ZvcihlLmtpbmQ9InNjYWxhciIsZS5yZXN1bHQ9IiIsZS5wb3NpdGlvbisrLHI9aT1lLnBvc2l0aW9uOyhzPWUuaW5wdXQuY2hhckNvZGVBdChlLnBvc2l0aW9uKSkhPT0wOyl7aWYocz09PTM0KXJldHVybiBsNChlLHIsZS5wb3NpdGlvbiwhMCksZS5wb3NpdGlvbisrLCEwO2lmKHM9PT05Mil7aWYobDQoZSxyLGUucG9zaXRpb24sITApLHM9ZS5pbnB1dC5jaGFyQ29kZUF0KCsrZS5wb3NpdGlvbikscXMocykpaWkoZSwhMSx0KTtlbHNlIGlmKHM8MjU2JiZmVWVbc10pZS5yZXN1bHQrPW1VZVtzXSxlLnBvc2l0aW9uKys7ZWxzZSBpZigobz1XRnIocykpPjApe2ZvcihhPW8sbj0wO2E+MDthLS0pcz1lLmlucHV0LmNoYXJDb2RlQXQoKytlLnBvc2l0aW9uKSwobz1VRnIocykpPj0wP249KG48PDQpK286d3QoZSwiZXhwZWN0ZWQgaGV4YWRlY2ltYWwgY2hhcmFjdGVyIik7ZS5yZXN1bHQrPVlGcihuKSxlLnBvc2l0aW9uKyt9ZWxzZSB3dChlLCJ1bmtub3duIGVzY2FwZSBzZXF1ZW5jZSIpO3I9aT1lLnBvc2l0aW9ufWVsc2UgcXMocyk/KGw0KGUscixpLCEwKSx4ZWUoZSxpaShlLCExLHQpKSxyPWk9ZS5wb3NpdGlvbik6ZS5wb3NpdGlvbj09PWUubGluZVN0YXJ0JiZ1XyhlKT93dChlLCJ1bmV4cGVjdGVkIGVuZCBvZiB0aGUgZG9jdW1lbnQgd2l0aGluIGEgZG91YmxlIHF1b3RlZCBzY2FsYXIiKTooZS5wb3NpdGlvbisrLGk9ZS5wb3NpdGlvbil9d3QoZSwidW5leHBlY3RlZCBlbmQgb2YgdGhlIHN0cmVhbSB3aXRoaW4gYSBkb3VibGUgcXVvdGVkIHNjYWxhciIpfWZ1bmN0aW9uIEtGcihlLHQpe3ZhciByPSEwLGksYT1lLnRhZyxuLG89ZS5hbmNob3IscyxsLGMsdSxkLGg9e30sZix4LHYsYjtpZihiPWUuaW5wdXQuY2hhckNvZGVBdChlLnBvc2l0aW9uKSxiPT09OTEpbD05MyxkPSExLG49W107ZWxzZSBpZihiPT09MTIzKWw9MTI1LGQ9ITAsbj17fTtlbHNlIHJldHVybiExO2ZvcihlLmFuY2hvciE9PW51bGwmJihlLmFuY2hvck1hcFtlLmFuY2hvcl09biksYj1lLmlucHV0LmNoYXJDb2RlQXQoKytlLnBvc2l0aW9uKTtiIT09MDspe2lmKGlpKGUsITAsdCksYj1lLmlucHV0LmNoYXJDb2RlQXQoZS5wb3NpdGlvbiksYj09PWwpcmV0dXJuIGUucG9zaXRpb24rKyxlLnRhZz1hLGUuYW5jaG9yPW8sZS5raW5kPWQ/Im1hcHBpbmciOiJzZXF1ZW5jZSIsZS5yZXN1bHQ9biwhMDtyfHx3dChlLCJtaXNzZWQgY29tbWEgYmV0d2VlbiBmbG93IGNvbGxlY3Rpb24gZW50cmllcyIpLHg9Zj12PW51bGwsYz11PSExLGI9PT02MyYmKHM9ZS5pbnB1dC5jaGFyQ29kZUF0KGUucG9zaXRpb24rMSksTW4ocykmJihjPXU9ITAsZS5wb3NpdGlvbisrLGlpKGUsITAsdCkpKSxpPWUubGluZSx0cChlLHQsbF8sITEsITApLHg9ZS50YWcsZj1lLnJlc3VsdCxpaShlLCEwLHQpLGI9ZS5pbnB1dC5jaGFyQ29kZUF0KGUucG9zaXRpb24pLCh1fHxlLmxpbmU9PT1pKSYmYj09PTU4JiYoYz0hMCxiPWUuaW5wdXQuY2hhckNvZGVBdCgrK2UucG9zaXRpb24pLGlpKGUsITAsdCksdHAoZSx0LGxfLCExLCEwKSx2PWUucmVzdWx0KSxkP2VwKGUsbixoLHgsZix2KTpjP24ucHVzaChlcChlLG51bGwsaCx4LGYsdikpOm4ucHVzaChmKSxpaShlLCEwLHQpLGI9ZS5pbnB1dC5jaGFyQ29kZUF0KGUucG9zaXRpb24pLGI9PT00ND8ocj0hMCxiPWUuaW5wdXQuY2hhckNvZGVBdCgrK2UucG9zaXRpb24pKTpyPSExfXd0KGUsInVuZXhwZWN0ZWQgZW5kIG9mIHRoZSBzdHJlYW0gd2l0aGluIGEgZmxvdyBjb2xsZWN0aW9uIil9ZnVuY3Rpb24gZU9yKGUsdCl7dmFyIHIsaSxhPWJlZSxuPSExLG89ITEscz10LGw9MCxjPSExLHUsZDtpZihkPWUuaW5wdXQuY2hhckNvZGVBdChlLnBvc2l0aW9uKSxkPT09MTI0KWk9ITE7ZWxzZSBpZihkPT09NjIpaT0hMDtlbHNlIHJldHVybiExO2ZvcihlLmtpbmQ9InNjYWxhciIsZS5yZXN1bHQ9IiI7ZCE9PTA7KWlmKGQ9ZS5pbnB1dC5jaGFyQ29kZUF0KCsrZS5wb3NpdGlvbiksZD09PTQzfHxkPT09NDUpYmVlPT09YT9hPWQ9PT00Mz9sVWU6SEZyOnd0KGUsInJlcGVhdCBvZiBhIGNob21waW5nIG1vZGUgaWRlbnRpZmllciIpO2Vsc2UgaWYoKHU9R0ZyKGQpKT49MCl1PT09MD93dChlLCJiYWQgZXhwbGljaXQgaW5kZW50YXRpb24gd2lkdGggb2YgYSBibG9jayBzY2FsYXI7IGl0IGNhbm5vdCBiZSBsZXNzIHRoYW4gb25lIik6bz93dChlLCJyZXBlYXQgb2YgYW4gaW5kZW50YXRpb24gd2lkdGggaWRlbnRpZmllciIpOihzPXQrdS0xLG89ITApO2Vsc2UgYnJlYWs7aWYoZWQoZCkpe2RvIGQ9ZS5pbnB1dC5jaGFyQ29kZUF0KCsrZS5wb3NpdGlvbik7d2hpbGUoZWQoZCkpO2lmKGQ9PT0zNSlkbyBkPWUuaW5wdXQuY2hhckNvZGVBdCgrK2UucG9zaXRpb24pO3doaWxlKCFxcyhkKSYmZCE9PTApfWZvcig7ZCE9PTA7KXtmb3IodmVlKGUpLGUubGluZUluZGVudD0wLGQ9ZS5pbnB1dC5jaGFyQ29kZUF0KGUucG9zaXRpb24pOyghb3x8ZS5saW5lSW5kZW50PHMpJiZkPT09MzI7KWUubGluZUluZGVudCsrLGQ9ZS5pbnB1dC5jaGFyQ29kZUF0KCsrZS5wb3NpdGlvbik7aWYoIW8mJmUubGluZUluZGVudD5zJiYocz1lLmxpbmVJbmRlbnQpLHFzKGQpKXtsKys7Y29udGludWV9aWYoZS5saW5lSW5kZW50PHMpe2E9PT1sVWU/ZS5yZXN1bHQrPXJjLnJlcGVhdChgCmAsbj8xK2w6bCk6YT09PWJlZSYmbiYmKGUucmVzdWx0Kz1gCmApO2JyZWFrfWZvcihpP2VkKGQpPyhjPSEwLGUucmVzdWx0Kz1yYy5yZXBlYXQoYApgLG4/MStsOmwpKTpjPyhjPSExLGUucmVzdWx0Kz1yYy5yZXBlYXQoYApgLGwrMSkpOmw9PT0wP24mJihlLnJlc3VsdCs9IiAiKTplLnJlc3VsdCs9cmMucmVwZWF0KGAKYCxsKTplLnJlc3VsdCs9cmMucmVwZWF0KGAKYCxuPzErbDpsKSxuPSEwLG89ITAsbD0wLHI9ZS5wb3NpdGlvbjshcXMoZCkmJmQhPT0wOylkPWUuaW5wdXQuY2hhckNvZGVBdCgrK2UucG9zaXRpb24pO2w0KGUscixlLnBvc2l0aW9uLCExKX1yZXR1cm4hMH1mdW5jdGlvbiB4VWUoZSx0KXt2YXIgcixpPWUudGFnLGE9ZS5hbmNob3Isbj1bXSxvLHM9ITEsbDtmb3IoZS5hbmNob3IhPT1udWxsJiYoZS5hbmNob3JNYXBbZS5hbmNob3JdPW4pLGw9ZS5pbnB1dC5jaGFyQ29kZUF0KGUucG9zaXRpb24pO2whPT0wJiYhKGwhPT00NXx8KG89ZS5pbnB1dC5jaGFyQ29kZUF0KGUucG9zaXRpb24rMSksIU1uKG8pKSk7KXtpZihzPSEwLGUucG9zaXRpb24rKyxpaShlLCEwLC0xKSYmZS5saW5lSW5kZW50PD10KXtuLnB1c2gobnVsbCksbD1lLmlucHV0LmNoYXJDb2RlQXQoZS5wb3NpdGlvbik7Y29udGludWV9aWYocj1lLmxpbmUsdHAoZSx0LHNVZSwhMSwhMCksbi5wdXNoKGUucmVzdWx0KSxpaShlLCEwLC0xKSxsPWUuaW5wdXQuY2hhckNvZGVBdChlLnBvc2l0aW9uKSwoZS5saW5lPT09cnx8ZS5saW5lSW5kZW50PnQpJiZsIT09MCl3dChlLCJiYWQgaW5kZW50YXRpb24gb2YgYSBzZXF1ZW5jZSBlbnRyeSIpO2Vsc2UgaWYoZS5saW5lSW5kZW50PHQpYnJlYWt9cmV0dXJuIHM/KGUudGFnPWksZS5hbmNob3I9YSxlLmtpbmQ9InNlcXVlbmNlIixlLnJlc3VsdD1uLCEwKTohMX1mdW5jdGlvbiB0T3IoZSx0LHIpe3ZhciBpLGEsbixvLHM9ZS50YWcsbD1lLmFuY2hvcixjPXt9LHU9e30sZD1udWxsLGg9bnVsbCxmPW51bGwseD0hMSx2PSExLGI7Zm9yKGUuYW5jaG9yIT09bnVsbCYmKGUuYW5jaG9yTWFwW2UuYW5jaG9yXT1jKSxiPWUuaW5wdXQuY2hhckNvZGVBdChlLnBvc2l0aW9uKTtiIT09MDspe2lmKGk9ZS5pbnB1dC5jaGFyQ29kZUF0KGUucG9zaXRpb24rMSksbj1lLmxpbmUsbz1lLnBvc2l0aW9uLChiPT09NjN8fGI9PT01OCkmJk1uKGkpKWI9PT02Mz8oeCYmKGVwKGUsYyx1LGQsaCxudWxsKSxkPWg9Zj1udWxsKSx2PSEwLHg9ITAsYT0hMCk6eD8oeD0hMSxhPSEwKTp3dChlLCJpbmNvbXBsZXRlIGV4cGxpY2l0IG1hcHBpbmcgcGFpcjsgYSBrZXkgbm9kZSBpcyBtaXNzZWQ7IG9yIGZvbGxvd2VkIGJ5IGEgbm9uLXRhYnVsYXRlZCBlbXB0eSBsaW5lIiksZS5wb3NpdGlvbis9MSxiPWk7ZWxzZSBpZih0cChlLHIsb1VlLCExLCEwKSlpZihlLmxpbmU9PT1uKXtmb3IoYj1lLmlucHV0LmNoYXJDb2RlQXQoZS5wb3NpdGlvbik7ZWQoYik7KWI9ZS5pbnB1dC5jaGFyQ29kZUF0KCsrZS5wb3NpdGlvbik7aWYoYj09PTU4KWI9ZS5pbnB1dC5jaGFyQ29kZUF0KCsrZS5wb3NpdGlvbiksTW4oYil8fHd0KGUsImEgd2hpdGVzcGFjZSBjaGFyYWN0ZXIgaXMgZXhwZWN0ZWQgYWZ0ZXIgdGhlIGtleS12YWx1ZSBzZXBhcmF0b3Igd2l0aGluIGEgYmxvY2sgbWFwcGluZyIpLHgmJihlcChlLGMsdSxkLGgsbnVsbCksZD1oPWY9bnVsbCksdj0hMCx4PSExLGE9ITEsZD1lLnRhZyxoPWUucmVzdWx0O2Vsc2UgaWYodil3dChlLCJjYW4gbm90IHJlYWQgYW4gaW1wbGljaXQgbWFwcGluZyBwYWlyOyBhIGNvbG9uIGlzIG1pc3NlZCIpO2Vsc2UgcmV0dXJuIGUudGFnPXMsZS5hbmNob3I9bCwhMH1lbHNlIGlmKHYpd3QoZSwiY2FuIG5vdCByZWFkIGEgYmxvY2sgbWFwcGluZyBlbnRyeTsgYSBtdWx0aWxpbmUga2V5IG1heSBub3QgYmUgYW4gaW1wbGljaXQga2V5Iik7ZWxzZSByZXR1cm4gZS50YWc9cyxlLmFuY2hvcj1sLCEwO2Vsc2UgYnJlYWs7aWYoKGUubGluZT09PW58fGUubGluZUluZGVudD50KSYmKHRwKGUsdCxjXywhMCxhKSYmKHg/aD1lLnJlc3VsdDpmPWUucmVzdWx0KSx4fHwoZXAoZSxjLHUsZCxoLGYsbixvKSxkPWg9Zj1udWxsKSxpaShlLCEwLC0xKSxiPWUuaW5wdXQuY2hhckNvZGVBdChlLnBvc2l0aW9uKSksZS5saW5lSW5kZW50PnQmJmIhPT0wKXd0KGUsImJhZCBpbmRlbnRhdGlvbiBvZiBhIG1hcHBpbmcgZW50cnkiKTtlbHNlIGlmKGUubGluZUluZGVudDx0KWJyZWFrfXJldHVybiB4JiZlcChlLGMsdSxkLGgsbnVsbCksdiYmKGUudGFnPXMsZS5hbmNob3I9bCxlLmtpbmQ9Im1hcHBpbmciLGUucmVzdWx0PWMpLHZ9ZnVuY3Rpb24gck9yKGUpe3ZhciB0LHI9ITEsaT0hMSxhLG4sbztpZihvPWUuaW5wdXQuY2hhckNvZGVBdChlLnBvc2l0aW9uKSxvIT09MzMpcmV0dXJuITE7aWYoZS50YWchPT1udWxsJiZ3dChlLCJkdXBsaWNhdGlvbiBvZiBhIHRhZyBwcm9wZXJ0eSIpLG89ZS5pbnB1dC5jaGFyQ29kZUF0KCsrZS5wb3NpdGlvbiksbz09PTYwPyhyPSEwLG89ZS5pbnB1dC5jaGFyQ29kZUF0KCsrZS5wb3NpdGlvbikpOm89PT0zMz8oaT0hMCxhPSIhISIsbz1lLmlucHV0LmNoYXJDb2RlQXQoKytlLnBvc2l0aW9uKSk6YT0iISIsdD1lLnBvc2l0aW9uLHIpe2RvIG89ZS5pbnB1dC5jaGFyQ29kZUF0KCsrZS5wb3NpdGlvbik7d2hpbGUobyE9PTAmJm8hPT02Mik7ZS5wb3NpdGlvbjxlLmxlbmd0aD8obj1lLmlucHV0LnNsaWNlKHQsZS5wb3NpdGlvbiksbz1lLmlucHV0LmNoYXJDb2RlQXQoKytlLnBvc2l0aW9uKSk6d3QoZSwidW5leHBlY3RlZCBlbmQgb2YgdGhlIHN0cmVhbSB3aXRoaW4gYSB2ZXJiYXRpbSB0YWciKX1lbHNle2Zvcig7byE9PTAmJiFNbihvKTspbz09PTMzJiYoaT93dChlLCJ0YWcgc3VmZml4IGNhbm5vdCBjb250YWluIGV4Y2xhbWF0aW9uIG1hcmtzIik6KGE9ZS5pbnB1dC5zbGljZSh0LTEsZS5wb3NpdGlvbisxKSxjVWUudGVzdChhKXx8d3QoZSwibmFtZWQgdGFnIGhhbmRsZSBjYW5ub3QgY29udGFpbiBzdWNoIGNoYXJhY3RlcnMiKSxpPSEwLHQ9ZS5wb3NpdGlvbisxKSksbz1lLmlucHV0LmNoYXJDb2RlQXQoKytlLnBvc2l0aW9uKTtuPWUuaW5wdXQuc2xpY2UodCxlLnBvc2l0aW9uKSxWRnIudGVzdChuKSYmd3QoZSwidGFnIHN1ZmZpeCBjYW5ub3QgY29udGFpbiBmbG93IGluZGljYXRvciBjaGFyYWN0ZXJzIil9cmV0dXJuIG4mJiFkVWUudGVzdChuKSYmd3QoZSwidGFnIG5hbWUgY2Fubm90IGNvbnRhaW4gc3VjaCBjaGFyYWN0ZXJzOiAiK24pLHI/ZS50YWc9bjpzNC5jYWxsKGUudGFnTWFwLGEpP2UudGFnPWUudGFnTWFwW2FdK246YT09PSIhIj9lLnRhZz0iISIrbjphPT09IiEhIj9lLnRhZz0idGFnOnlhbWwub3JnLDIwMDI6IituOnd0KGUsJ3VuZGVjbGFyZWQgdGFnIGhhbmRsZSAiJythKyciJyksITB9ZnVuY3Rpb24gaU9yKGUpe3ZhciB0LHI7aWYocj1lLmlucHV0LmNoYXJDb2RlQXQoZS5wb3NpdGlvbiksciE9PTM4KXJldHVybiExO2ZvcihlLmFuY2hvciE9PW51bGwmJnd0KGUsImR1cGxpY2F0aW9uIG9mIGFuIGFuY2hvciBwcm9wZXJ0eSIpLHI9ZS5pbnB1dC5jaGFyQ29kZUF0KCsrZS5wb3NpdGlvbiksdD1lLnBvc2l0aW9uO3IhPT0wJiYhTW4ocikmJiFLOChyKTspcj1lLmlucHV0LmNoYXJDb2RlQXQoKytlLnBvc2l0aW9uKTtyZXR1cm4gZS5wb3NpdGlvbj09PXQmJnd0KGUsIm5hbWUgb2YgYW4gYW5jaG9yIG5vZGUgbXVzdCBjb250YWluIGF0IGxlYXN0IG9uZSBjaGFyYWN0ZXIiKSxlLmFuY2hvcj1lLmlucHV0LnNsaWNlKHQsZS5wb3NpdGlvbiksITB9ZnVuY3Rpb24gYU9yKGUpe3ZhciB0LHIsaTtpZihpPWUuaW5wdXQuY2hhckNvZGVBdChlLnBvc2l0aW9uKSxpIT09NDIpcmV0dXJuITE7Zm9yKGk9ZS5pbnB1dC5jaGFyQ29kZUF0KCsrZS5wb3NpdGlvbiksdD1lLnBvc2l0aW9uO2khPT0wJiYhTW4oaSkmJiFLOChpKTspaT1lLmlucHV0LmNoYXJDb2RlQXQoKytlLnBvc2l0aW9uKTtyZXR1cm4gZS5wb3NpdGlvbj09PXQmJnd0KGUsIm5hbWUgb2YgYW4gYWxpYXMgbm9kZSBtdXN0IGNvbnRhaW4gYXQgbGVhc3Qgb25lIGNoYXJhY3RlciIpLHI9ZS5pbnB1dC5zbGljZSh0LGUucG9zaXRpb24pLHM0LmNhbGwoZS5hbmNob3JNYXAscil8fHd0KGUsJ3VuaWRlbnRpZmllZCBhbGlhcyAiJytyKyciJyksZS5yZXN1bHQ9ZS5hbmNob3JNYXBbcl0saWkoZSwhMCwtMSksITB9ZnVuY3Rpb24gdHAoZSx0LHIsaSxhKXt2YXIgbixvLHMsbD0xLGM9ITEsdT0hMSxkLGgsZix4LHY7aWYoZS5saXN0ZW5lciE9PW51bGwmJmUubGlzdGVuZXIoIm9wZW4iLGUpLGUudGFnPW51bGwsZS5hbmNob3I9bnVsbCxlLmtpbmQ9bnVsbCxlLnJlc3VsdD1udWxsLG49bz1zPWNfPT09cnx8c1VlPT09cixpJiZpaShlLCEwLC0xKSYmKGM9ITAsZS5saW5lSW5kZW50PnQ/bD0xOmUubGluZUluZGVudD09PXQ/bD0wOmUubGluZUluZGVudDx0JiYobD0tMSkpLGw9PT0xKWZvcig7ck9yKGUpfHxpT3IoZSk7KWlpKGUsITAsLTEpPyhjPSEwLHM9bixlLmxpbmVJbmRlbnQ+dD9sPTE6ZS5saW5lSW5kZW50PT09dD9sPTA6ZS5saW5lSW5kZW50PHQmJihsPS0xKSk6cz0hMTtpZihzJiYocz1jfHxhKSwobD09PTF8fGNfPT09cikmJihsXz09PXJ8fG9VZT09PXI/eD10Ong9dCsxLHY9ZS5wb3NpdGlvbi1lLmxpbmVTdGFydCxsPT09MT9zJiYoeFVlKGUsdil8fHRPcihlLHYseCkpfHxLRnIoZSx4KT91PSEwOihvJiZlT3IoZSx4KXx8UUZyKGUseCl8fEpGcihlLHgpP3U9ITA6YU9yKGUpPyh1PSEwLChlLnRhZyE9PW51bGx8fGUuYW5jaG9yIT09bnVsbCkmJnd0KGUsImFsaWFzIG5vZGUgc2hvdWxkIG5vdCBoYXZlIGFueSBwcm9wZXJ0aWVzIikpOlhGcihlLHgsbF89PT1yKSYmKHU9ITAsZS50YWc9PT1udWxsJiYoZS50YWc9Ij8iKSksZS5hbmNob3IhPT1udWxsJiYoZS5hbmNob3JNYXBbZS5hbmNob3JdPWUucmVzdWx0KSk6bD09PTAmJih1PXMmJnhVZShlLHYpKSksZS50YWchPT1udWxsJiZlLnRhZyE9PSIhIilpZihlLnRhZz09PSI/Iil7Zm9yKGUucmVzdWx0IT09bnVsbCYmZS5raW5kIT09InNjYWxhciImJnd0KGUsJ3VuYWNjZXB0YWJsZSBub2RlIGtpbmQgZm9yICE8Pz4gdGFnOyBpdCBzaG91bGQgYmUgInNjYWxhciIsIG5vdCAiJytlLmtpbmQrJyInKSxkPTAsaD1lLmltcGxpY2l0VHlwZXMubGVuZ3RoO2Q8aDtkKz0xKWlmKGY9ZS5pbXBsaWNpdFR5cGVzW2RdLGYucmVzb2x2ZShlLnJlc3VsdCkpe2UucmVzdWx0PWYuY29uc3RydWN0KGUucmVzdWx0KSxlLnRhZz1mLnRhZyxlLmFuY2hvciE9PW51bGwmJihlLmFuY2hvck1hcFtlLmFuY2hvcl09ZS5yZXN1bHQpO2JyZWFrfX1lbHNlIHM0LmNhbGwoZS50eXBlTWFwW2Uua2luZHx8ImZhbGxiYWNrIl0sZS50YWcpPyhmPWUudHlwZU1hcFtlLmtpbmR8fCJmYWxsYmFjayJdW2UudGFnXSxlLnJlc3VsdCE9PW51bGwmJmYua2luZCE9PWUua2luZCYmd3QoZSwidW5hY2NlcHRhYmxlIG5vZGUga2luZCBmb3IgITwiK2UudGFnKyc+IHRhZzsgaXQgc2hvdWxkIGJlICInK2Yua2luZCsnIiwgbm90ICInK2Uua2luZCsnIicpLGYucmVzb2x2ZShlLnJlc3VsdCk/KGUucmVzdWx0PWYuY29uc3RydWN0KGUucmVzdWx0KSxlLmFuY2hvciE9PW51bGwmJihlLmFuY2hvck1hcFtlLmFuY2hvcl09ZS5yZXN1bHQpKTp3dChlLCJjYW5ub3QgcmVzb2x2ZSBhIG5vZGUgd2l0aCAhPCIrZS50YWcrIj4gZXhwbGljaXQgdGFnIikpOnd0KGUsInVua25vd24gdGFnICE8IitlLnRhZysiPiIpO3JldHVybiBlLmxpc3RlbmVyIT09bnVsbCYmZS5saXN0ZW5lcigiY2xvc2UiLGUpLGUudGFnIT09bnVsbHx8ZS5hbmNob3IhPT1udWxsfHx1fWZ1bmN0aW9uIG5PcihlKXt2YXIgdD1lLnBvc2l0aW9uLHIsaSxhLG49ITEsbztmb3IoZS52ZXJzaW9uPW51bGwsZS5jaGVja0xpbmVCcmVha3M9ZS5sZWdhY3ksZS50YWdNYXA9e30sZS5hbmNob3JNYXA9e307KG89ZS5pbnB1dC5jaGFyQ29kZUF0KGUucG9zaXRpb24pKSE9PTAmJihpaShlLCEwLC0xKSxvPWUuaW5wdXQuY2hhckNvZGVBdChlLnBvc2l0aW9uKSwhKGUubGluZUluZGVudD4wfHxvIT09MzcpKTspe2ZvcihuPSEwLG89ZS5pbnB1dC5jaGFyQ29kZUF0KCsrZS5wb3NpdGlvbikscj1lLnBvc2l0aW9uO28hPT0wJiYhTW4obyk7KW89ZS5pbnB1dC5jaGFyQ29kZUF0KCsrZS5wb3NpdGlvbik7Zm9yKGk9ZS5pbnB1dC5zbGljZShyLGUucG9zaXRpb24pLGE9W10saS5sZW5ndGg8MSYmd3QoZSwiZGlyZWN0aXZlIG5hbWUgbXVzdCBub3QgYmUgbGVzcyB0aGFuIG9uZSBjaGFyYWN0ZXIgaW4gbGVuZ3RoIik7byE9PTA7KXtmb3IoO2VkKG8pOylvPWUuaW5wdXQuY2hhckNvZGVBdCgrK2UucG9zaXRpb24pO2lmKG89PT0zNSl7ZG8gbz1lLmlucHV0LmNoYXJDb2RlQXQoKytlLnBvc2l0aW9uKTt3aGlsZShvIT09MCYmIXFzKG8pKTticmVha31pZihxcyhvKSlicmVhaztmb3Iocj1lLnBvc2l0aW9uO28hPT0wJiYhTW4obyk7KW89ZS5pbnB1dC5jaGFyQ29kZUF0KCsrZS5wb3NpdGlvbik7YS5wdXNoKGUuaW5wdXQuc2xpY2UocixlLnBvc2l0aW9uKSl9byE9PTAmJnZlZShlKSxzNC5jYWxsKGJVZSxpKT9iVWVbaV0oZSxpLGEpOmRfKGUsJ3Vua25vd24gZG9jdW1lbnQgZGlyZWN0aXZlICInK2krJyInKX1pZihpaShlLCEwLC0xKSxlLmxpbmVJbmRlbnQ9PT0wJiZlLmlucHV0LmNoYXJDb2RlQXQoZS5wb3NpdGlvbik9PT00NSYmZS5pbnB1dC5jaGFyQ29kZUF0KGUucG9zaXRpb24rMSk9PT00NSYmZS5pbnB1dC5jaGFyQ29kZUF0KGUucG9zaXRpb24rMik9PT00NT8oZS5wb3NpdGlvbis9MyxpaShlLCEwLC0xKSk6biYmd3QoZSwiZGlyZWN0aXZlcyBlbmQgbWFyayBpcyBleHBlY3RlZCIpLHRwKGUsZS5saW5lSW5kZW50LTEsY18sITEsITApLGlpKGUsITAsLTEpLGUuY2hlY2tMaW5lQnJlYWtzJiZqRnIudGVzdChlLmlucHV0LnNsaWNlKHQsZS5wb3NpdGlvbikpJiZkXyhlLCJub24tQVNDSUkgbGluZSBicmVha3MgYXJlIGludGVycHJldGVkIGFzIGNvbnRlbnQiKSxlLmRvY3VtZW50cy5wdXNoKGUucmVzdWx0KSxlLnBvc2l0aW9uPT09ZS5saW5lU3RhcnQmJnVfKGUpKXtlLmlucHV0LmNoYXJDb2RlQXQoZS5wb3NpdGlvbik9PT00NiYmKGUucG9zaXRpb24rPTMsaWkoZSwhMCwtMSkpO3JldHVybn1pZihlLnBvc2l0aW9uPGUubGVuZ3RoLTEpd3QoZSwiZW5kIG9mIHRoZSBzdHJlYW0gb3IgYSBkb2N1bWVudCBzZXBhcmF0b3IgaXMgZXhwZWN0ZWQiKTtlbHNlIHJldHVybn1mdW5jdGlvbiB5VWUoZSx0KXtlPVN0cmluZyhlKSx0PXR8fHt9LGUubGVuZ3RoIT09MCYmKGUuY2hhckNvZGVBdChlLmxlbmd0aC0xKSE9PTEwJiZlLmNoYXJDb2RlQXQoZS5sZW5ndGgtMSkhPT0xMyYmKGUrPWAKYCksZS5jaGFyQ29kZUF0KDApPT09NjUyNzkmJihlPWUuc2xpY2UoMSkpKTt2YXIgcj1uZXcgWkZyKGUsdCksaT1lLmluZGV4T2YoIlwwIik7Zm9yKGkhPT0tMSYmKHIucG9zaXRpb249aSx3dChyLCJudWxsIGJ5dGUgaXMgbm90IGFsbG93ZWQgaW4gaW5wdXQiKSksci5pbnB1dCs9IlwwIjtyLmlucHV0LmNoYXJDb2RlQXQoci5wb3NpdGlvbik9PT0zMjspci5saW5lSW5kZW50Kz0xLHIucG9zaXRpb24rPTE7Zm9yKDtyLnBvc2l0aW9uPHIubGVuZ3RoLTE7KW5PcihyKTtyZXR1cm4gci5kb2N1bWVudHN9ZnVuY3Rpb24gd1VlKGUsdCxyKXt0IT09bnVsbCYmdHlwZW9mIHQ9PSJvYmplY3QiJiZ0eXBlb2Ygcj4idSImJihyPXQsdD1udWxsKTt2YXIgaT15VWUoZSxyKTtpZih0eXBlb2YgdCE9ImZ1bmN0aW9uIilyZXR1cm4gaTtmb3IodmFyIGE9MCxuPWkubGVuZ3RoO2E8bjthKz0xKXQoaVthXSl9ZnVuY3Rpb24gTVVlKGUsdCl7dmFyIHI9eVVlKGUsdCk7aWYoci5sZW5ndGghPT0wKXtpZihyLmxlbmd0aD09PTEpcmV0dXJuIHJbMF07dGhyb3cgbmV3IGFVZSgiZXhwZWN0ZWQgYSBzaW5nbGUgZG9jdW1lbnQgaW4gdGhlIHN0cmVhbSwgYnV0IGZvdW5kIG1vcmUiKX19ZnVuY3Rpb24gb09yKGUsdCxyKXtyZXR1cm4gdHlwZW9mIHQ9PSJvYmplY3QiJiZ0IT09bnVsbCYmdHlwZW9mIHI+InUiJiYocj10LHQ9bnVsbCksd1VlKGUsdCxyYy5leHRlbmQoe3NjaGVtYTpuVWV9LHIpKX1mdW5jdGlvbiBzT3IoZSx0KXtyZXR1cm4gTVVlKGUscmMuZXh0ZW5kKHtzY2hlbWE6blVlfSx0KSl9azkuZXhwb3J0cy5sb2FkQWxsPXdVZSxrOS5leHBvcnRzLmxvYWQ9TVVlLGs5LmV4cG9ydHMuc2FmZUxvYWRBbGw9b09yLGs5LmV4cG9ydHMuc2FmZUxvYWQ9c09yO3ZhciB0ZH0pO3ZhciBXVWU9amUoKFYkaSxrZWUpPT57InVzZSBzdHJpY3QiO3ZhciBTOT1RNigpLHo5PVg4KCksbE9yPU05KCksY09yPUo4KCksU1VlPU9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcselVlPU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHksZE9yPTksQzk9MTAsdU9yPTEzLHBPcj0zMixoT3I9MzMsZk9yPTM0LENVZT0zNSxtT3I9MzcsZ09yPTM4LGJPcj0zOSx2T3I9NDIsVFVlPTQ0LHhPcj00NSxfVWU9NTgseU9yPTYxLHdPcj02MixNT3I9NjMsa09yPTY0LExVZT05MSxBVWU9OTMsU09yPTk2LERVZT0xMjMsek9yPTEyNCxFVWU9MTI1LF9hPXt9O19hWzBdPSJcXDAiLF9hWzddPSJcXGEiLF9hWzhdPSJcXGIiLF9hWzldPSJcXHQiLF9hWzEwXT0iXFxuIixfYVsxMV09IlxcdiIsX2FbMTJdPSJcXGYiLF9hWzEzXT0iXFxyIixfYVsyN109IlxcZSIsX2FbMzRdPSdcXCInLF9hWzkyXT0iXFxcXCIsX2FbMTMzXT0iXFxOIixfYVsxNjBdPSJcXF8iLF9hWzgyMzJdPSJcXEwiLF9hWzgyMzNdPSJcXFAiO3ZhciBDT3I9WyJ5IiwiWSIsInllcyIsIlllcyIsIllFUyIsIm9uIiwiT24iLCJPTiIsIm4iLCJOIiwibm8iLCJObyIsIk5PIiwib2ZmIiwiT2ZmIiwiT0ZGIl07ZnVuY3Rpb24gVE9yKGUsdCl7dmFyIHIsaSxhLG4sbyxzLGw7aWYodD09PW51bGwpcmV0dXJue307Zm9yKHI9e30saT1PYmplY3Qua2V5cyh0KSxhPTAsbj1pLmxlbmd0aDthPG47YSs9MSlvPWlbYV0scz1TdHJpbmcodFtvXSksby5zbGljZSgwLDIpPT09IiEhIiYmKG89InRhZzp5YW1sLm9yZywyMDAyOiIrby5zbGljZSgyKSksbD1lLmNvbXBpbGVkVHlwZU1hcC5mYWxsYmFja1tvXSxsJiZ6VWUuY2FsbChsLnN0eWxlQWxpYXNlcyxzKSYmKHM9bC5zdHlsZUFsaWFzZXNbc10pLHJbb109cztyZXR1cm4gcn1mdW5jdGlvbiAkVWUoZSl7dmFyIHQscixpO2lmKHQ9ZS50b1N0cmluZygxNikudG9VcHBlckNhc2UoKSxlPD0yNTUpcj0ieCIsaT0yO2Vsc2UgaWYoZTw9NjU1MzUpcj0idSIsaT00O2Vsc2UgaWYoZTw9NDI5NDk2NzI5NSlyPSJVIixpPTg7ZWxzZSB0aHJvdyBuZXcgejkoImNvZGUgcG9pbnQgd2l0aGluIGEgc3RyaW5nIG1heSBub3QgYmUgZ3JlYXRlciB0aGFuIDB4RkZGRkZGRkYiKTtyZXR1cm4iXFwiK3IrUzkucmVwZWF0KCIwIixpLXQubGVuZ3RoKSt0fWZ1bmN0aW9uIF9PcihlKXt0aGlzLnNjaGVtYT1lLnNjaGVtYXx8bE9yLHRoaXMuaW5kZW50PU1hdGgubWF4KDEsZS5pbmRlbnR8fDIpLHRoaXMubm9BcnJheUluZGVudD1lLm5vQXJyYXlJbmRlbnR8fCExLHRoaXMuc2tpcEludmFsaWQ9ZS5za2lwSW52YWxpZHx8ITEsdGhpcy5mbG93TGV2ZWw9UzkuaXNOb3RoaW5nKGUuZmxvd0xldmVsKT8tMTplLmZsb3dMZXZlbCx0aGlzLnN0eWxlTWFwPVRPcih0aGlzLnNjaGVtYSxlLnN0eWxlc3x8bnVsbCksdGhpcy5zb3J0S2V5cz1lLnNvcnRLZXlzfHwhMSx0aGlzLmxpbmVXaWR0aD1lLmxpbmVXaWR0aHx8ODAsdGhpcy5ub1JlZnM9ZS5ub1JlZnN8fCExLHRoaXMubm9Db21wYXRNb2RlPWUubm9Db21wYXRNb2RlfHwhMSx0aGlzLmNvbmRlbnNlRmxvdz1lLmNvbmRlbnNlRmxvd3x8ITEsdGhpcy5pbXBsaWNpdFR5cGVzPXRoaXMuc2NoZW1hLmNvbXBpbGVkSW1wbGljaXQsdGhpcy5leHBsaWNpdFR5cGVzPXRoaXMuc2NoZW1hLmNvbXBpbGVkRXhwbGljaXQsdGhpcy50YWc9bnVsbCx0aGlzLnJlc3VsdD0iIix0aGlzLmR1cGxpY2F0ZXM9W10sdGhpcy51c2VkRHVwbGljYXRlcz1udWxsfWZ1bmN0aW9uIElVZShlLHQpe2Zvcih2YXIgcj1TOS5yZXBlYXQoIiAiLHQpLGk9MCxhPS0xLG49IiIsbyxzPWUubGVuZ3RoO2k8czspYT1lLmluZGV4T2YoYApgLGkpLGE9PT0tMT8obz1lLnNsaWNlKGkpLGk9cyk6KG89ZS5zbGljZShpLGErMSksaT1hKzEpLG8ubGVuZ3RoJiZvIT09YApgJiYobis9ciksbis9bztyZXR1cm4gbn1mdW5jdGlvbiB5ZWUoZSx0KXtyZXR1cm5gCmArUzkucmVwZWF0KCIgIixlLmluZGVudCp0KX1mdW5jdGlvbiBMT3IoZSx0KXt2YXIgcixpLGE7Zm9yKHI9MCxpPWUuaW1wbGljaXRUeXBlcy5sZW5ndGg7cjxpO3IrPTEpaWYoYT1lLmltcGxpY2l0VHlwZXNbcl0sYS5yZXNvbHZlKHQpKXJldHVybiEwO3JldHVybiExfWZ1bmN0aW9uIHdlZShlKXtyZXR1cm4gZT09PXBPcnx8ZT09PWRPcn1mdW5jdGlvbiBycChlKXtyZXR1cm4gMzI8PWUmJmU8PTEyNnx8MTYxPD1lJiZlPD01NTI5NSYmZSE9PTgyMzImJmUhPT04MjMzfHw1NzM0NDw9ZSYmZTw9NjU1MzMmJmUhPT02NTI3OXx8NjU1MzY8PWUmJmU8PTExMTQxMTF9ZnVuY3Rpb24gQU9yKGUpe3JldHVybiBycChlKSYmIXdlZShlKSYmZSE9PTY1Mjc5JiZlIT09dU9yJiZlIT09Qzl9ZnVuY3Rpb24gUFVlKGUsdCl7cmV0dXJuIHJwKGUpJiZlIT09NjUyNzkmJmUhPT1UVWUmJmUhPT1MVWUmJmUhPT1BVWUmJmUhPT1EVWUmJmUhPT1FVWUmJmUhPT1fVWUmJihlIT09Q1VlfHx0JiZBT3IodCkpfWZ1bmN0aW9uIERPcihlKXtyZXR1cm4gcnAoZSkmJmUhPT02NTI3OSYmIXdlZShlKSYmZSE9PXhPciYmZSE9PU1PciYmZSE9PV9VZSYmZSE9PVRVZSYmZSE9PUxVZSYmZSE9PUFVZSYmZSE9PURVZSYmZSE9PUVVZSYmZSE9PUNVZSYmZSE9PWdPciYmZSE9PXZPciYmZSE9PWhPciYmZSE9PXpPciYmZSE9PXlPciYmZSE9PXdPciYmZSE9PWJPciYmZSE9PWZPciYmZSE9PW1PciYmZSE9PWtPciYmZSE9PVNPcn1mdW5jdGlvbiBOVWUoZSl7dmFyIHQ9L15cbiogLztyZXR1cm4gdC50ZXN0KGUpfXZhciBGVWU9MSxPVWU9MixSVWU9MyxCVWU9NCxwXz01O2Z1bmN0aW9uIEVPcihlLHQscixpLGEpe3ZhciBuLG8scyxsPSExLGM9ITEsdT1pIT09LTEsZD0tMSxoPURPcihlLmNoYXJDb2RlQXQoMCkpJiYhd2VlKGUuY2hhckNvZGVBdChlLmxlbmd0aC0xKSk7aWYodClmb3Iobj0wO248ZS5sZW5ndGg7bisrKXtpZihvPWUuY2hhckNvZGVBdChuKSwhcnAobykpcmV0dXJuIHBfO3M9bj4wP2UuY2hhckNvZGVBdChuLTEpOm51bGwsaD1oJiZQVWUobyxzKX1lbHNle2ZvcihuPTA7bjxlLmxlbmd0aDtuKyspe2lmKG89ZS5jaGFyQ29kZUF0KG4pLG89PT1DOSlsPSEwLHUmJihjPWN8fG4tZC0xPmkmJmVbZCsxXSE9PSIgIixkPW4pO2Vsc2UgaWYoIXJwKG8pKXJldHVybiBwXztzPW4+MD9lLmNoYXJDb2RlQXQobi0xKTpudWxsLGg9aCYmUFVlKG8scyl9Yz1jfHx1JiZuLWQtMT5pJiZlW2QrMV0hPT0iICJ9cmV0dXJuIWwmJiFjP2gmJiFhKGUpP0ZVZTpPVWU6cj45JiZOVWUoZSk/cF86Yz9CVWU6UlVlfWZ1bmN0aW9uICRPcihlLHQscixpKXtlLmR1bXA9KGZ1bmN0aW9uKCl7aWYodC5sZW5ndGg9PT0wKXJldHVybiInJyI7aWYoIWUubm9Db21wYXRNb2RlJiZDT3IuaW5kZXhPZih0KSE9PS0xKXJldHVybiInIit0KyInIjt2YXIgYT1lLmluZGVudCpNYXRoLm1heCgxLHIpLG49ZS5saW5lV2lkdGg9PT0tMT8tMTpNYXRoLm1heChNYXRoLm1pbihlLmxpbmVXaWR0aCw0MCksZS5saW5lV2lkdGgtYSksbz1pfHxlLmZsb3dMZXZlbD4tMSYmcj49ZS5mbG93TGV2ZWw7ZnVuY3Rpb24gcyhsKXtyZXR1cm4gTE9yKGUsbCl9c3dpdGNoKEVPcih0LG8sZS5pbmRlbnQsbixzKSl7Y2FzZSBGVWU6cmV0dXJuIHQ7Y2FzZSBPVWU6cmV0dXJuIiciK3QucmVwbGFjZSgvJy9nLCInJyIpKyInIjtjYXNlIFJVZTpyZXR1cm4ifCIrSFVlKHQsZS5pbmRlbnQpK3FVZShJVWUodCxhKSk7Y2FzZSBCVWU6cmV0dXJuIj4iK0hVZSh0LGUuaW5kZW50KStxVWUoSVVlKElPcih0LG4pLGEpKTtjYXNlIHBfOnJldHVybiciJytQT3IodCxuKSsnIic7ZGVmYXVsdDp0aHJvdyBuZXcgejkoImltcG9zc2libGUgZXJyb3I6IGludmFsaWQgc2NhbGFyIHN0eWxlIil9fSkoKX1mdW5jdGlvbiBIVWUoZSx0KXt2YXIgcj1OVWUoZSk/U3RyaW5nKHQpOiIiLGk9ZVtlLmxlbmd0aC0xXT09PWAKYCxhPWkmJihlW2UubGVuZ3RoLTJdPT09YApgfHxlPT09YApgKSxuPWE/IisiOmk/IiI6Ii0iO3JldHVybiByK24rYApgfWZ1bmN0aW9uIHFVZShlKXtyZXR1cm4gZVtlLmxlbmd0aC0xXT09PWAKYD9lLnNsaWNlKDAsLTEpOmV9ZnVuY3Rpb24gSU9yKGUsdCl7Zm9yKHZhciByPS8oXG4rKShbXlxuXSopL2csaT0oZnVuY3Rpb24oKXt2YXIgYz1lLmluZGV4T2YoYApgKTtyZXR1cm4gYz1jIT09LTE/YzplLmxlbmd0aCxyLmxhc3RJbmRleD1jLGpVZShlLnNsaWNlKDAsYyksdCl9KSgpLGE9ZVswXT09PWAKYHx8ZVswXT09PSIgIixuLG87bz1yLmV4ZWMoZSk7KXt2YXIgcz1vWzFdLGw9b1syXTtuPWxbMF09PT0iICIsaSs9cysoIWEmJiFuJiZsIT09IiI/YApgOiIiKStqVWUobCx0KSxhPW59cmV0dXJuIGl9ZnVuY3Rpb24galVlKGUsdCl7aWYoZT09PSIifHxlWzBdPT09IiAiKXJldHVybiBlO2Zvcih2YXIgcj0vIFteIF0vZyxpLGE9MCxuLG89MCxzPTAsbD0iIjtpPXIuZXhlYyhlKTspcz1pLmluZGV4LHMtYT50JiYobj1vPmE/bzpzLGwrPWAKYCtlLnNsaWNlKGEsbiksYT1uKzEpLG89cztyZXR1cm4gbCs9YApgLGUubGVuZ3RoLWE+dCYmbz5hP2wrPWUuc2xpY2UoYSxvKStgCmArZS5zbGljZShvKzEpOmwrPWUuc2xpY2UoYSksbC5zbGljZSgxKX1mdW5jdGlvbiBQT3IoZSl7Zm9yKHZhciB0PSIiLHIsaSxhLG49MDtuPGUubGVuZ3RoO24rKyl7aWYocj1lLmNoYXJDb2RlQXQobikscj49NTUyOTYmJnI8PTU2MzE5JiYoaT1lLmNoYXJDb2RlQXQobisxKSxpPj01NjMyMCYmaTw9NTczNDMpKXt0Kz0kVWUoKHItNTUyOTYpKjEwMjQraS01NjMyMCs2NTUzNiksbisrO2NvbnRpbnVlfWE9X2Fbcl0sdCs9IWEmJnJwKHIpP2Vbbl06YXx8JFVlKHIpfXJldHVybiB0fWZ1bmN0aW9uIE5PcihlLHQscil7dmFyIGk9IiIsYT1lLnRhZyxuLG87Zm9yKG49MCxvPXIubGVuZ3RoO248bztuKz0xKXJkKGUsdCxyW25dLCExLCExKSYmKG4hPT0wJiYoaSs9IiwiKyhlLmNvbmRlbnNlRmxvdz8iIjoiICIpKSxpKz1lLmR1bXApO2UudGFnPWEsZS5kdW1wPSJbIitpKyJdIn1mdW5jdGlvbiBGT3IoZSx0LHIsaSl7dmFyIGE9IiIsbj1lLnRhZyxvLHM7Zm9yKG89MCxzPXIubGVuZ3RoO288cztvKz0xKXJkKGUsdCsxLHJbb10sITAsITApJiYoKCFpfHxvIT09MCkmJihhKz15ZWUoZSx0KSksZS5kdW1wJiZDOT09PWUuZHVtcC5jaGFyQ29kZUF0KDApP2ErPSItIjphKz0iLSAiLGErPWUuZHVtcCk7ZS50YWc9bixlLmR1bXA9YXx8IltdIn1mdW5jdGlvbiBPT3IoZSx0LHIpe3ZhciBpPSIiLGE9ZS50YWcsbj1PYmplY3Qua2V5cyhyKSxvLHMsbCxjLHU7Zm9yKG89MCxzPW4ubGVuZ3RoO288cztvKz0xKXU9IiIsbyE9PTAmJih1Kz0iLCAiKSxlLmNvbmRlbnNlRmxvdyYmKHUrPSciJyksbD1uW29dLGM9cltsXSxyZChlLHQsbCwhMSwhMSkmJihlLmR1bXAubGVuZ3RoPjEwMjQmJih1Kz0iPyAiKSx1Kz1lLmR1bXArKGUuY29uZGVuc2VGbG93PyciJzoiIikrIjoiKyhlLmNvbmRlbnNlRmxvdz8iIjoiICIpLHJkKGUsdCxjLCExLCExKSYmKHUrPWUuZHVtcCxpKz11KSk7ZS50YWc9YSxlLmR1bXA9InsiK2krIn0ifWZ1bmN0aW9uIFJPcihlLHQscixpKXt2YXIgYT0iIixuPWUudGFnLG89T2JqZWN0LmtleXMocikscyxsLGMsdSxkLGg7aWYoZS5zb3J0S2V5cz09PSEwKW8uc29ydCgpO2Vsc2UgaWYodHlwZW9mIGUuc29ydEtleXM9PSJmdW5jdGlvbiIpby5zb3J0KGUuc29ydEtleXMpO2Vsc2UgaWYoZS5zb3J0S2V5cyl0aHJvdyBuZXcgejkoInNvcnRLZXlzIG11c3QgYmUgYSBib29sZWFuIG9yIGEgZnVuY3Rpb24iKTtmb3Iocz0wLGw9by5sZW5ndGg7czxsO3MrPTEpaD0iIiwoIWl8fHMhPT0wKSYmKGgrPXllZShlLHQpKSxjPW9bc10sdT1yW2NdLHJkKGUsdCsxLGMsITAsITAsITApJiYoZD1lLnRhZyE9PW51bGwmJmUudGFnIT09Ij8ifHxlLmR1bXAmJmUuZHVtcC5sZW5ndGg+MTAyNCxkJiYoZS5kdW1wJiZDOT09PWUuZHVtcC5jaGFyQ29kZUF0KDApP2grPSI/IjpoKz0iPyAiKSxoKz1lLmR1bXAsZCYmKGgrPXllZShlLHQpKSxyZChlLHQrMSx1LCEwLGQpJiYoZS5kdW1wJiZDOT09PWUuZHVtcC5jaGFyQ29kZUF0KDApP2grPSI6IjpoKz0iOiAiLGgrPWUuZHVtcCxhKz1oKSk7ZS50YWc9bixlLmR1bXA9YXx8Int9In1mdW5jdGlvbiBWVWUoZSx0LHIpe3ZhciBpLGEsbixvLHMsbDtmb3IoYT1yP2UuZXhwbGljaXRUeXBlczplLmltcGxpY2l0VHlwZXMsbj0wLG89YS5sZW5ndGg7bjxvO24rPTEpaWYocz1hW25dLChzLmluc3RhbmNlT2Z8fHMucHJlZGljYXRlKSYmKCFzLmluc3RhbmNlT2Z8fHR5cGVvZiB0PT0ib2JqZWN0IiYmdCBpbnN0YW5jZW9mIHMuaW5zdGFuY2VPZikmJighcy5wcmVkaWNhdGV8fHMucHJlZGljYXRlKHQpKSl7aWYoZS50YWc9cj9zLnRhZzoiPyIscy5yZXByZXNlbnQpe2lmKGw9ZS5zdHlsZU1hcFtzLnRhZ118fHMuZGVmYXVsdFN0eWxlLFNVZS5jYWxsKHMucmVwcmVzZW50KT09PSJbb2JqZWN0IEZ1bmN0aW9uXSIpaT1zLnJlcHJlc2VudCh0LGwpO2Vsc2UgaWYoelVlLmNhbGwocy5yZXByZXNlbnQsbCkpaT1zLnJlcHJlc2VudFtsXSh0LGwpO2Vsc2UgdGhyb3cgbmV3IHo5KCIhPCIrcy50YWcrJz4gdGFnIHJlc29sdmVyIGFjY2VwdHMgbm90ICInK2wrJyIgc3R5bGUnKTtlLmR1bXA9aX1yZXR1cm4hMH1yZXR1cm4hMX1mdW5jdGlvbiByZChlLHQscixpLGEsbil7ZS50YWc9bnVsbCxlLmR1bXA9cixWVWUoZSxyLCExKXx8VlVlKGUsciwhMCk7dmFyIG89U1VlLmNhbGwoZS5kdW1wKTtpJiYoaT1lLmZsb3dMZXZlbDwwfHxlLmZsb3dMZXZlbD50KTt2YXIgcz1vPT09IltvYmplY3QgT2JqZWN0XSJ8fG89PT0iW29iamVjdCBBcnJheV0iLGwsYztpZihzJiYobD1lLmR1cGxpY2F0ZXMuaW5kZXhPZihyKSxjPWwhPT0tMSksKGUudGFnIT09bnVsbCYmZS50YWchPT0iPyJ8fGN8fGUuaW5kZW50IT09MiYmdD4wKSYmKGE9ITEpLGMmJmUudXNlZER1cGxpY2F0ZXNbbF0pZS5kdW1wPSIqcmVmXyIrbDtlbHNle2lmKHMmJmMmJiFlLnVzZWREdXBsaWNhdGVzW2xdJiYoZS51c2VkRHVwbGljYXRlc1tsXT0hMCksbz09PSJbb2JqZWN0IE9iamVjdF0iKWkmJk9iamVjdC5rZXlzKGUuZHVtcCkubGVuZ3RoIT09MD8oUk9yKGUsdCxlLmR1bXAsYSksYyYmKGUuZHVtcD0iJnJlZl8iK2wrZS5kdW1wKSk6KE9PcihlLHQsZS5kdW1wKSxjJiYoZS5kdW1wPSImcmVmXyIrbCsiICIrZS5kdW1wKSk7ZWxzZSBpZihvPT09IltvYmplY3QgQXJyYXldIil7dmFyIHU9ZS5ub0FycmF5SW5kZW50JiZ0PjA/dC0xOnQ7aSYmZS5kdW1wLmxlbmd0aCE9PTA/KEZPcihlLHUsZS5kdW1wLGEpLGMmJihlLmR1bXA9IiZyZWZfIitsK2UuZHVtcCkpOihOT3IoZSx1LGUuZHVtcCksYyYmKGUuZHVtcD0iJnJlZl8iK2wrIiAiK2UuZHVtcCkpfWVsc2UgaWYobz09PSJbb2JqZWN0IFN0cmluZ10iKWUudGFnIT09Ij8iJiYkT3IoZSxlLmR1bXAsdCxuKTtlbHNle2lmKGUuc2tpcEludmFsaWQpcmV0dXJuITE7dGhyb3cgbmV3IHo5KCJ1bmFjY2VwdGFibGUga2luZCBvZiBhbiBvYmplY3QgdG8gZHVtcCAiK28pfWUudGFnIT09bnVsbCYmZS50YWchPT0iPyImJihlLmR1bXA9IiE8IitlLnRhZysiPiAiK2UuZHVtcCl9cmV0dXJuITB9ZnVuY3Rpb24gQk9yKGUsdCl7dmFyIHI9W10saT1bXSxhLG47Zm9yKE1lZShlLHIsaSksYT0wLG49aS5sZW5ndGg7YTxuO2ErPTEpdC5kdXBsaWNhdGVzLnB1c2gocltpW2FdXSk7dC51c2VkRHVwbGljYXRlcz1uZXcgQXJyYXkobil9ZnVuY3Rpb24gTWVlKGUsdCxyKXt2YXIgaSxhLG47aWYoZSE9PW51bGwmJnR5cGVvZiBlPT0ib2JqZWN0IilpZihhPXQuaW5kZXhPZihlKSxhIT09LTEpci5pbmRleE9mKGEpPT09LTEmJnIucHVzaChhKTtlbHNlIGlmKHQucHVzaChlKSxBcnJheS5pc0FycmF5KGUpKWZvcihhPTAsbj1lLmxlbmd0aDthPG47YSs9MSlNZWUoZVthXSx0LHIpO2Vsc2UgZm9yKGk9T2JqZWN0LmtleXMoZSksYT0wLG49aS5sZW5ndGg7YTxuO2ErPTEpTWVlKGVbaVthXV0sdCxyKX1mdW5jdGlvbiBVVWUoZSx0KXt0PXR8fHt9O3ZhciByPW5ldyBfT3IodCk7cmV0dXJuIHIubm9SZWZzfHxCT3IoZSxyKSxyZChyLDAsZSwhMCwhMCk/ci5kdW1wK2AKYDoiIn1mdW5jdGlvbiBIT3IoZSx0KXtyZXR1cm4gVVVlKGUsUzkuZXh0ZW5kKHtzY2hlbWE6Y09yfSx0KSl9a2VlLmV4cG9ydHMuZHVtcD1VVWUsa2VlLmV4cG9ydHMuc2FmZUR1bXA9SE9yfSk7dmFyIFlVZT1qZSgoVSRpLCQxKT0+eyJ1c2Ugc3RyaWN0Ijt2YXIgaF89a1VlKCksR1VlPVdVZSgpO2Z1bmN0aW9uIGZfKGUpe3JldHVybiBmdW5jdGlvbigpe3Rocm93IG5ldyBFcnJvcigiRnVuY3Rpb24gIitlKyIgaXMgZGVwcmVjYXRlZCBhbmQgY2Fubm90IGJlIHVzZWQuIil9fSQxLmV4cG9ydHMuVHlwZT14aSgpLCQxLmV4cG9ydHMuU2NoZW1hPUo2KCksJDEuZXhwb3J0cy5GQUlMU0FGRV9TQ0hFTUE9b18oKSwkMS5leHBvcnRzLkpTT05fU0NIRU1BPWZlZSgpLCQxLmV4cG9ydHMuQ09SRV9TQ0hFTUE9bWVlKCksJDEuZXhwb3J0cy5ERUZBVUxUX1NBRkVfU0NIRU1BPUo4KCksJDEuZXhwb3J0cy5ERUZBVUxUX0ZVTExfU0NIRU1BPU05KCksJDEuZXhwb3J0cy5sb2FkPWhfLmxvYWQsJDEuZXhwb3J0cy5sb2FkQWxsPWhfLmxvYWRBbGwsJDEuZXhwb3J0cy5zYWZlTG9hZD1oXy5zYWZlTG9hZCwkMS5leHBvcnRzLnNhZmVMb2FkQWxsPWhfLnNhZmVMb2FkQWxsLCQxLmV4cG9ydHMuZHVtcD1HVWUuZHVtcCwkMS5leHBvcnRzLnNhZmVEdW1wPUdVZS5zYWZlRHVtcCwkMS5leHBvcnRzLllBTUxFeGNlcHRpb249WDgoKSwkMS5leHBvcnRzLk1JTklNQUxfU0NIRU1BPW9fKCksJDEuZXhwb3J0cy5TQUZFX1NDSEVNQT1KOCgpLCQxLmV4cG9ydHMuREVGQVVMVF9TQ0hFTUE9TTkoKSwkMS5leHBvcnRzLnNjYW49Zl8oInNjYW4iKSwkMS5leHBvcnRzLnBhcnNlPWZfKCJwYXJzZSIpLCQxLmV4cG9ydHMuY29tcG9zZT1mXygiY29tcG9zZSIpLCQxLmV4cG9ydHMuYWRkQ29uc3RydWN0b3I9Zl8oImFkZENvbnN0cnVjdG9yIil9KTt2YXIgWFVlPWplKChXJGksWlVlKT0+eyJ1c2Ugc3RyaWN0Ijt2YXIgcU9yPVlVZSgpO1pVZS5leHBvcnRzPXFPcn0pO3ZhciBRVWU9amUoanM9PnsidXNlIHN0cmljdCI7dmFyIGpPcj1qcyYmanMuX19jcmVhdGVCaW5kaW5nfHwoT2JqZWN0LmNyZWF0ZT8oZnVuY3Rpb24oZSx0LHIsaSl7aT09PXZvaWQgMCYmKGk9ciksT2JqZWN0LmRlZmluZVByb3BlcnR5KGUsaSx7ZW51bWVyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdFtyXX19KX0pOihmdW5jdGlvbihlLHQscixpKXtpPT09dm9pZCAwJiYoaT1yKSxlW2ldPXRbcl19KSksVk9yPWpzJiZqcy5fX3NldE1vZHVsZURlZmF1bHR8fChPYmplY3QuY3JlYXRlPyhmdW5jdGlvbihlLHQpe09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJkZWZhdWx0Iix7ZW51bWVyYWJsZTohMCx2YWx1ZTp0fSl9KTpmdW5jdGlvbihlLHQpe2UuZGVmYXVsdD10fSksVU9yPWpzJiZqcy5fX2ltcG9ydFN0YXJ8fGZ1bmN0aW9uKGUpe2lmKGUmJmUuX19lc01vZHVsZSlyZXR1cm4gZTt2YXIgdD17fTtpZihlIT1udWxsKWZvcih2YXIgciBpbiBlKXIhPT0iZGVmYXVsdCImJk9iamVjdC5oYXNPd25Qcm9wZXJ0eS5jYWxsKGUscikmJmpPcih0LGUscik7cmV0dXJuIFZPcih0LGUpLHR9O09iamVjdC5kZWZpbmVQcm9wZXJ0eShqcywiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksanMuanNZYW1sPXZvaWQgMDt2YXIgV09yPVVPcihYVWUoKSk7anMuanNZYW1sPVdPcn0pO3ZhciBLVWU9amUoVG89PnsidXNlIHN0cmljdCI7dmFyIEdPcj1UbyYmVG8uX19jcmVhdGVCaW5kaW5nfHwoT2JqZWN0LmNyZWF0ZT8oZnVuY3Rpb24oZSx0LHIsaSl7aT09PXZvaWQgMCYmKGk9ciksT2JqZWN0LmRlZmluZVByb3BlcnR5KGUsaSx7ZW51bWVyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdFtyXX19KX0pOihmdW5jdGlvbihlLHQscixpKXtpPT09dm9pZCAwJiYoaT1yKSxlW2ldPXRbcl19KSksWU9yPVRvJiZUby5fX3NldE1vZHVsZURlZmF1bHR8fChPYmplY3QuY3JlYXRlPyhmdW5jdGlvbihlLHQpe09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJkZWZhdWx0Iix7ZW51bWVyYWJsZTohMCx2YWx1ZTp0fSl9KTpmdW5jdGlvbihlLHQpe2UuZGVmYXVsdD10fSksWk9yPVRvJiZUby5fX2ltcG9ydFN0YXJ8fGZ1bmN0aW9uKGUpe2lmKGUmJmUuX19lc01vZHVsZSlyZXR1cm4gZTt2YXIgdD17fTtpZihlIT1udWxsKWZvcih2YXIgciBpbiBlKXIhPT0iZGVmYXVsdCImJk9iamVjdC5oYXNPd25Qcm9wZXJ0eS5jYWxsKGUscikmJkdPcih0LGUscik7cmV0dXJuIFlPcih0LGUpLHR9O09iamVjdC5kZWZpbmVQcm9wZXJ0eShUbywiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksVG8ub2JqZWN0VG9ZYW1sU3RyaW5nPVRvLnlhbWxTdHJpbmdUb09iamVjdD12b2lkIDA7dmFyIEpVZT1aT3IoUVVlKCkpO1RvLnlhbWxTdHJpbmdUb09iamVjdD1hc3luYyhlLHQ9e30pPT5KVWUuanNZYW1sLnNhZmVMb2FkKGUpLFRvLm9iamVjdFRvWWFtbFN0cmluZz1hc3luYyhlLHQ9e30pPT5KVWUuanNZYW1sLnNhZmVEdW1wKGUpfSk7ZnVuY3Rpb24gU2VlKGUpe2lmKGUpdGhyb3cgZX12YXIgZVdlPXAoKCk9Pnt9KTt2YXIgY1dlPWplKChYJGksbFdlKT0+eyJ1c2Ugc3RyaWN0Ijt2YXIgbV89T2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eSx0V2U9T2JqZWN0LnByb3RvdHlwZS50b1N0cmluZyxyV2U9T2JqZWN0LmRlZmluZVByb3BlcnR5LGlXZT1PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yLGFXZT1mdW5jdGlvbih0KXtyZXR1cm4gdHlwZW9mIEFycmF5LmlzQXJyYXk9PSJmdW5jdGlvbiI/QXJyYXkuaXNBcnJheSh0KTp0V2UuY2FsbCh0KT09PSJbb2JqZWN0IEFycmF5XSJ9LG5XZT1mdW5jdGlvbih0KXtpZighdHx8dFdlLmNhbGwodCkhPT0iW29iamVjdCBPYmplY3RdIilyZXR1cm4hMTt2YXIgcj1tXy5jYWxsKHQsImNvbnN0cnVjdG9yIiksaT10LmNvbnN0cnVjdG9yJiZ0LmNvbnN0cnVjdG9yLnByb3RvdHlwZSYmbV8uY2FsbCh0LmNvbnN0cnVjdG9yLnByb3RvdHlwZSwiaXNQcm90b3R5cGVPZiIpO2lmKHQuY29uc3RydWN0b3ImJiFyJiYhaSlyZXR1cm4hMTt2YXIgYTtmb3IoYSBpbiB0KTtyZXR1cm4gdHlwZW9mIGE+InUifHxtXy5jYWxsKHQsYSl9LG9XZT1mdW5jdGlvbih0LHIpe3JXZSYmci5uYW1lPT09Il9fcHJvdG9fXyI/cldlKHQsci5uYW1lLHtlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx2YWx1ZTpyLm5ld1ZhbHVlLHdyaXRhYmxlOiEwfSk6dFtyLm5hbWVdPXIubmV3VmFsdWV9LHNXZT1mdW5jdGlvbih0LHIpe2lmKHI9PT0iX19wcm90b19fIilpZihtXy5jYWxsKHQscikpe2lmKGlXZSlyZXR1cm4gaVdlKHQscikudmFsdWV9ZWxzZSByZXR1cm47cmV0dXJuIHRbcl19O2xXZS5leHBvcnRzPWZ1bmN0aW9uIGUoKXt2YXIgdCxyLGksYSxuLG8scz1hcmd1bWVudHNbMF0sbD0xLGM9YXJndW1lbnRzLmxlbmd0aCx1PSExO2Zvcih0eXBlb2Ygcz09ImJvb2xlYW4iJiYodT1zLHM9YXJndW1lbnRzWzFdfHx7fSxsPTIpLChzPT1udWxsfHx0eXBlb2YgcyE9Im9iamVjdCImJnR5cGVvZiBzIT0iZnVuY3Rpb24iKSYmKHM9e30pO2w8YzsrK2wpaWYodD1hcmd1bWVudHNbbF0sdCE9bnVsbClmb3IociBpbiB0KWk9c1dlKHMsciksYT1zV2UodCxyKSxzIT09YSYmKHUmJmEmJihuV2UoYSl8fChuPWFXZShhKSkpPyhuPyhuPSExLG89aSYmYVdlKGkpP2k6W10pOm89aSYmbldlKGkpP2k6e30sb1dlKHMse25hbWU6cixuZXdWYWx1ZTplKHUsbyxhKX0pKTp0eXBlb2YgYTwidSImJm9XZShzLHtuYW1lOnIsbmV3VmFsdWU6YX0pKTtyZXR1cm4gc319KTt2YXIgYzQ9cCgoKT0+e30pO2Z1bmN0aW9uIFQ5KGUpe2lmKHR5cGVvZiBlIT0ib2JqZWN0Inx8ZT09PW51bGwpcmV0dXJuITE7bGV0IHQ9T2JqZWN0LmdldFByb3RvdHlwZU9mKGUpO3JldHVybih0PT09bnVsbHx8dD09PU9iamVjdC5wcm90b3R5cGV8fE9iamVjdC5nZXRQcm90b3R5cGVPZih0KT09PW51bGwpJiYhKFN5bWJvbC50b1N0cmluZ1RhZyBpbiBlKSYmIShTeW1ib2wuaXRlcmF0b3IgaW4gZSl9dmFyIGRXZT1wKCgpPT57fSk7ZnVuY3Rpb24gemVlKCl7bGV0IGU9W10sdD17cnVuOnIsdXNlOml9O3JldHVybiB0O2Z1bmN0aW9uIHIoLi4uYSl7bGV0IG49LTEsbz1hLnBvcCgpO2lmKHR5cGVvZiBvIT0iZnVuY3Rpb24iKXRocm93IG5ldyBUeXBlRXJyb3IoIkV4cGVjdGVkIGZ1bmN0aW9uIGFzIGxhc3QgYXJndW1lbnQsIG5vdCAiK28pO3MobnVsbCwuLi5hKTtmdW5jdGlvbiBzKGwsLi4uYyl7bGV0IHU9ZVsrK25dLGQ9LTE7aWYobCl7byhsKTtyZXR1cm59Zm9yKDsrK2Q8YS5sZW5ndGg7KShjW2RdPT09bnVsbHx8Y1tkXT09PXZvaWQgMCkmJihjW2RdPWFbZF0pO2E9Yyx1P3VXZSh1LHMpKC4uLmMpOm8obnVsbCwuLi5jKX19ZnVuY3Rpb24gaShhKXtpZih0eXBlb2YgYSE9ImZ1bmN0aW9uIil0aHJvdyBuZXcgVHlwZUVycm9yKCJFeHBlY3RlZCBgbWlkZGVsd2FyZWAgdG8gYmUgYSBmdW5jdGlvbiwgbm90ICIrYSk7cmV0dXJuIGUucHVzaChhKSx0fX1mdW5jdGlvbiB1V2UoZSx0KXtsZXQgcjtyZXR1cm4gaTtmdW5jdGlvbiBpKC4uLm8pe2xldCBzPWUubGVuZ3RoPm8ubGVuZ3RoLGw7cyYmby5wdXNoKGEpO3RyeXtsPWUuYXBwbHkodGhpcyxvKX1jYXRjaChjKXtsZXQgdT1jO2lmKHMmJnIpdGhyb3cgdTtyZXR1cm4gYSh1KX1zfHwobCYmbC50aGVuJiZ0eXBlb2YgbC50aGVuPT0iZnVuY3Rpb24iP2wudGhlbihuLGEpOmwgaW5zdGFuY2VvZiBFcnJvcj9hKGwpOm4obCkpfWZ1bmN0aW9uIGEobywuLi5zKXtyfHwocj0hMCx0KG8sLi4ucykpfWZ1bmN0aW9uIG4obyl7YShudWxsLG8pfX12YXIgcFdlPXAoKCk9Pnt9KTt2YXIgaFdlPXAoKCk9PntwV2UoKX0pO2Z1bmN0aW9uIGQ0KGUpe3JldHVybiFlfHx0eXBlb2YgZSE9Im9iamVjdCI/IiI6InBvc2l0aW9uImluIGV8fCJ0eXBlImluIGU/ZldlKGUucG9zaXRpb24pOiJzdGFydCJpbiBlfHwiZW5kImluIGU/ZldlKGUpOiJsaW5lImluIGV8fCJjb2x1bW4iaW4gZT9DZWUoZSk6IiJ9ZnVuY3Rpb24gQ2VlKGUpe3JldHVybiBtV2UoZSYmZS5saW5lKSsiOiIrbVdlKGUmJmUuY29sdW1uKX1mdW5jdGlvbiBmV2UoZSl7cmV0dXJuIENlZShlJiZlLnN0YXJ0KSsiLSIrQ2VlKGUmJmUuZW5kKX1mdW5jdGlvbiBtV2UoZSl7cmV0dXJuIGUmJnR5cGVvZiBlPT0ibnVtYmVyIj9lOjF9dmFyIGdXZT1wKCgpPT57fSk7dmFyIFRlZT1wKCgpPT57Z1dlKCl9KTt2YXIgTmksYldlPXAoKCk9PntUZWUoKTtOaT1jbGFzcyBleHRlbmRzIEVycm9ye2NvbnN0cnVjdG9yKHQscixpKXtzdXBlcigpLHR5cGVvZiByPT0ic3RyaW5nIiYmKGk9cixyPXZvaWQgMCk7bGV0IGE9IiIsbj17fSxvPSExO2lmKHImJigibGluZSJpbiByJiYiY29sdW1uImluIHI/bj17cGxhY2U6cn06InN0YXJ0ImluIHImJiJlbmQiaW4gcj9uPXtwbGFjZTpyfToidHlwZSJpbiByP249e2FuY2VzdG9yczpbcl0scGxhY2U6ci5wb3NpdGlvbn06bj17Li4ucn0pLHR5cGVvZiB0PT0ic3RyaW5nIj9hPXQ6IW4uY2F1c2UmJnQmJihvPSEwLGE9dC5tZXNzYWdlLG4uY2F1c2U9dCksIW4ucnVsZUlkJiYhbi5zb3VyY2UmJnR5cGVvZiBpPT0ic3RyaW5nIil7bGV0IGw9aS5pbmRleE9mKCI6Iik7bD09PS0xP24ucnVsZUlkPWk6KG4uc291cmNlPWkuc2xpY2UoMCxsKSxuLnJ1bGVJZD1pLnNsaWNlKGwrMSkpfWlmKCFuLnBsYWNlJiZuLmFuY2VzdG9ycyYmbi5hbmNlc3RvcnMpe2xldCBsPW4uYW5jZXN0b3JzW24uYW5jZXN0b3JzLmxlbmd0aC0xXTtsJiYobi5wbGFjZT1sLnBvc2l0aW9uKX1sZXQgcz1uLnBsYWNlJiYic3RhcnQiaW4gbi5wbGFjZT9uLnBsYWNlLnN0YXJ0Om4ucGxhY2U7dGhpcy5hbmNlc3RvcnM9bi5hbmNlc3RvcnN8fHZvaWQgMCx0aGlzLmNhdXNlPW4uY2F1c2V8fHZvaWQgMCx0aGlzLmNvbHVtbj1zP3MuY29sdW1uOnZvaWQgMCx0aGlzLmZhdGFsPXZvaWQgMCx0aGlzLmZpbGU9IiIsdGhpcy5tZXNzYWdlPWEsdGhpcy5saW5lPXM/cy5saW5lOnZvaWQgMCx0aGlzLm5hbWU9ZDQobi5wbGFjZSl8fCIxOjEiLHRoaXMucGxhY2U9bi5wbGFjZXx8dm9pZCAwLHRoaXMucmVhc29uPXRoaXMubWVzc2FnZSx0aGlzLnJ1bGVJZD1uLnJ1bGVJZHx8dm9pZCAwLHRoaXMuc291cmNlPW4uc291cmNlfHx2b2lkIDAsdGhpcy5zdGFjaz1vJiZuLmNhdXNlJiZ0eXBlb2Ygbi5jYXVzZS5zdGFjaz09InN0cmluZyI/bi5jYXVzZS5zdGFjazoiIix0aGlzLmFjdHVhbD12b2lkIDAsdGhpcy5leHBlY3RlZD12b2lkIDAsdGhpcy5ub3RlPXZvaWQgMCx0aGlzLnVybD12b2lkIDB9fTtOaS5wcm90b3R5cGUuZmlsZT0iIixOaS5wcm90b3R5cGUubmFtZT0iIixOaS5wcm90b3R5cGUucmVhc29uPSIiLE5pLnByb3RvdHlwZS5tZXNzYWdlPSIiLE5pLnByb3RvdHlwZS5zdGFjaz0iIixOaS5wcm90b3R5cGUuY29sdW1uPXZvaWQgMCxOaS5wcm90b3R5cGUubGluZT12b2lkIDAsTmkucHJvdG90eXBlLmFuY2VzdG9ycz12b2lkIDAsTmkucHJvdG90eXBlLmNhdXNlPXZvaWQgMCxOaS5wcm90b3R5cGUuZmF0YWw9dm9pZCAwLE5pLnByb3RvdHlwZS5wbGFjZT12b2lkIDAsTmkucHJvdG90eXBlLnJ1bGVJZD12b2lkIDAsTmkucHJvdG90eXBlLnNvdXJjZT12b2lkIDB9KTt2YXIgdldlPXAoKCk9PntiV2UoKX0pO2Z1bmN0aW9uIFhPcihlLHQpe2lmKHQhPT12b2lkIDAmJnR5cGVvZiB0IT0ic3RyaW5nIil0aHJvdyBuZXcgVHlwZUVycm9yKCciZXh0IiBhcmd1bWVudCBtdXN0IGJlIGEgc3RyaW5nJyk7XzkoZSk7bGV0IHI9MCxpPS0xLGE9ZS5sZW5ndGgsbjtpZih0PT09dm9pZCAwfHx0Lmxlbmd0aD09PTB8fHQubGVuZ3RoPmUubGVuZ3RoKXtmb3IoO2EtLTspaWYoZS5jb2RlUG9pbnRBdChhKT09PTQ3KXtpZihuKXtyPWErMTticmVha319ZWxzZSBpPDAmJihuPSEwLGk9YSsxKTtyZXR1cm4gaTwwPyIiOmUuc2xpY2UocixpKX1pZih0PT09ZSlyZXR1cm4iIjtsZXQgbz0tMSxzPXQubGVuZ3RoLTE7Zm9yKDthLS07KWlmKGUuY29kZVBvaW50QXQoYSk9PT00Nyl7aWYobil7cj1hKzE7YnJlYWt9fWVsc2UgbzwwJiYobj0hMCxvPWErMSkscz4tMSYmKGUuY29kZVBvaW50QXQoYSk9PT10LmNvZGVQb2ludEF0KHMtLSk/czwwJiYoaT1hKToocz0tMSxpPW8pKTtyZXR1cm4gcj09PWk/aT1vOmk8MCYmKGk9ZS5sZW5ndGgpLGUuc2xpY2UocixpKX1mdW5jdGlvbiBRT3IoZSl7aWYoXzkoZSksZS5sZW5ndGg9PT0wKXJldHVybiIuIjtsZXQgdD0tMSxyPWUubGVuZ3RoLGk7Zm9yKDstLXI7KWlmKGUuY29kZVBvaW50QXQocik9PT00Nyl7aWYoaSl7dD1yO2JyZWFrfX1lbHNlIGl8fChpPSEwKTtyZXR1cm4gdDwwP2UuY29kZVBvaW50QXQoMCk9PT00Nz8iLyI6Ii4iOnQ9PT0xJiZlLmNvZGVQb2ludEF0KDApPT09NDc/Ii8vIjplLnNsaWNlKDAsdCl9ZnVuY3Rpb24gSk9yKGUpe185KGUpO2xldCB0PWUubGVuZ3RoLHI9LTEsaT0wLGE9LTEsbj0wLG87Zm9yKDt0LS07KXtsZXQgcz1lLmNvZGVQb2ludEF0KHQpO2lmKHM9PT00Nyl7aWYobyl7aT10KzE7YnJlYWt9Y29udGludWV9cjwwJiYobz0hMCxyPXQrMSkscz09PTQ2P2E8MD9hPXQ6biE9PTEmJihuPTEpOmE+LTEmJihuPS0xKX1yZXR1cm4gYTwwfHxyPDB8fG49PT0wfHxuPT09MSYmYT09PXItMSYmYT09PWkrMT8iIjplLnNsaWNlKGEscil9ZnVuY3Rpb24gS09yKC4uLmUpe2xldCB0PS0xLHI7Zm9yKDsrK3Q8ZS5sZW5ndGg7KV85KGVbdF0pLGVbdF0mJihyPXI9PT12b2lkIDA/ZVt0XTpyKyIvIitlW3RdKTtyZXR1cm4gcj09PXZvaWQgMD8iLiI6ZVJyKHIpfWZ1bmN0aW9uIGVScihlKXtfOShlKTtsZXQgdD1lLmNvZGVQb2ludEF0KDApPT09NDcscj10UnIoZSwhdCk7cmV0dXJuIHIubGVuZ3RoPT09MCYmIXQmJihyPSIuIiksci5sZW5ndGg+MCYmZS5jb2RlUG9pbnRBdChlLmxlbmd0aC0xKT09PTQ3JiYocis9Ii8iKSx0PyIvIityOnJ9ZnVuY3Rpb24gdFJyKGUsdCl7bGV0IHI9IiIsaT0wLGE9LTEsbj0wLG89LTEscyxsO2Zvcig7KytvPD1lLmxlbmd0aDspe2lmKG88ZS5sZW5ndGgpcz1lLmNvZGVQb2ludEF0KG8pO2Vsc2V7aWYocz09PTQ3KWJyZWFrO3M9NDd9aWYocz09PTQ3KXtpZighKGE9PT1vLTF8fG49PT0xKSlpZihhIT09by0xJiZuPT09Mil7aWYoci5sZW5ndGg8Mnx8aSE9PTJ8fHIuY29kZVBvaW50QXQoci5sZW5ndGgtMSkhPT00Nnx8ci5jb2RlUG9pbnRBdChyLmxlbmd0aC0yKSE9PTQ2KXtpZihyLmxlbmd0aD4yKXtpZihsPXIubGFzdEluZGV4T2YoIi8iKSxsIT09ci5sZW5ndGgtMSl7bDwwPyhyPSIiLGk9MCk6KHI9ci5zbGljZSgwLGwpLGk9ci5sZW5ndGgtMS1yLmxhc3RJbmRleE9mKCIvIikpLGE9byxuPTA7Y29udGludWV9fWVsc2UgaWYoci5sZW5ndGg+MCl7cj0iIixpPTAsYT1vLG49MDtjb250aW51ZX19dCYmKHI9ci5sZW5ndGg+MD9yKyIvLi4iOiIuLiIsaT0yKX1lbHNlIHIubGVuZ3RoPjA/cis9Ii8iK2Uuc2xpY2UoYSsxLG8pOnI9ZS5zbGljZShhKzEsbyksaT1vLWEtMTthPW8sbj0wfWVsc2Ugcz09PTQ2JiZuPi0xP24rKzpuPS0xfXJldHVybiByfWZ1bmN0aW9uIF85KGUpe2lmKHR5cGVvZiBlIT0ic3RyaW5nIil0aHJvdyBuZXcgVHlwZUVycm9yKCJQYXRoIG11c3QgYmUgYSBzdHJpbmcuIFJlY2VpdmVkICIrSlNPTi5zdHJpbmdpZnkoZSkpfXZhciB2Mix4V2U9cCgoKT0+e3YyPXtiYXNlbmFtZTpYT3IsZGlybmFtZTpRT3IsZXh0bmFtZTpKT3Isam9pbjpLT3Isc2VwOiIvIn19KTtmdW5jdGlvbiByUnIoKXtyZXR1cm4iLyJ9dmFyIHlXZSx3V2U9cCgoKT0+e3lXZT17Y3dkOnJScn19KTtmdW5jdGlvbiBpcChlKXtyZXR1cm4hIShlIT09bnVsbCYmdHlwZW9mIGU9PSJvYmplY3QiJiYiaHJlZiJpbiBlJiZlLmhyZWYmJiJwcm90b2NvbCJpbiBlJiZlLnByb3RvY29sJiZlLmF1dGg9PT12b2lkIDApfXZhciBfZWU9cCgoKT0+e30pO2Z1bmN0aW9uIE1XZShlKXtpZih0eXBlb2YgZT09InN0cmluZyIpZT1uZXcgVVJMKGUpO2Vsc2UgaWYoIWlwKGUpKXtsZXQgdD1uZXcgVHlwZUVycm9yKCdUaGUgInBhdGgiIGFyZ3VtZW50IG11c3QgYmUgb2YgdHlwZSBzdHJpbmcgb3IgYW4gaW5zdGFuY2Ugb2YgVVJMLiBSZWNlaXZlZCBgJytlKyJgIik7dGhyb3cgdC5jb2RlPSJFUlJfSU5WQUxJRF9BUkdfVFlQRSIsdH1pZihlLnByb3RvY29sIT09ImZpbGU6Iil7bGV0IHQ9bmV3IFR5cGVFcnJvcigiVGhlIFVSTCBtdXN0IGJlIG9mIHNjaGVtZSBmaWxlIik7dGhyb3cgdC5jb2RlPSJFUlJfSU5WQUxJRF9VUkxfU0NIRU1FIix0fXJldHVybiBpUnIoZSl9ZnVuY3Rpb24gaVJyKGUpe2lmKGUuaG9zdG5hbWUhPT0iIil7bGV0IGk9bmV3IFR5cGVFcnJvcignRmlsZSBVUkwgaG9zdCBtdXN0IGJlICJsb2NhbGhvc3QiIG9yIGVtcHR5IG9uIGRhcndpbicpO3Rocm93IGkuY29kZT0iRVJSX0lOVkFMSURfRklMRV9VUkxfSE9TVCIsaX1sZXQgdD1lLnBhdGhuYW1lLHI9LTE7Zm9yKDsrK3I8dC5sZW5ndGg7KWlmKHQuY29kZVBvaW50QXQocik9PT0zNyYmdC5jb2RlUG9pbnRBdChyKzEpPT09NTApe2xldCBpPXQuY29kZVBvaW50QXQocisyKTtpZihpPT09NzB8fGk9PT0xMDIpe2xldCBhPW5ldyBUeXBlRXJyb3IoIkZpbGUgVVJMIHBhdGggbXVzdCBub3QgaW5jbHVkZSBlbmNvZGVkIC8gY2hhcmFjdGVycyIpO3Rocm93IGEuY29kZT0iRVJSX0lOVkFMSURfRklMRV9VUkxfUEFUSCIsYX19cmV0dXJuIGRlY29kZVVSSUNvbXBvbmVudCh0KX12YXIga1dlPXAoKCk9PntfZWUoKTtfZWUoKX0pO2Z1bmN0aW9uIEFlZShlLHQpe2lmKGUmJmUuaW5jbHVkZXModjIuc2VwKSl0aHJvdyBuZXcgRXJyb3IoImAiK3QrImAgY2Fubm90IGJlIGEgcGF0aDogZGlkIG5vdCBleHBlY3QgYCIrdjIuc2VwKyJgIil9ZnVuY3Rpb24gRGVlKGUsdCl7aWYoIWUpdGhyb3cgbmV3IEVycm9yKCJgIit0KyJgIGNhbm5vdCBiZSBlbXB0eSIpfWZ1bmN0aW9uIFNXZShlLHQpe2lmKCFlKXRocm93IG5ldyBFcnJvcigiU2V0dGluZyBgIit0KyJgIHJlcXVpcmVzIGBwYXRoYCB0byBiZSBzZXQgdG9vIil9ZnVuY3Rpb24gYVJyKGUpe3JldHVybiEhKGUmJnR5cGVvZiBlPT0ib2JqZWN0IiYmImJ5dGVMZW5ndGgiaW4gZSYmImJ5dGVPZmZzZXQiaW4gZSl9dmFyIExlZSxMOSx6V2U9cCgoKT0+e3ZXZSgpO3hXZSgpO3dXZSgpO2tXZSgpO0xlZT1bImhpc3RvcnkiLCJwYXRoIiwiYmFzZW5hbWUiLCJzdGVtIiwiZXh0bmFtZSIsImRpcm5hbWUiXSxMOT1jbGFzc3tjb25zdHJ1Y3Rvcih0KXtsZXQgcjt0P2lwKHQpP3I9e3BhdGg6dH06dHlwZW9mIHQ9PSJzdHJpbmcifHxhUnIodCk/cj17dmFsdWU6dH06cj10OnI9e30sdGhpcy5jd2Q9ImN3ZCJpbiByPyIiOnlXZS5jd2QoKSx0aGlzLmRhdGE9e30sdGhpcy5oaXN0b3J5PVtdLHRoaXMubWVzc2FnZXM9W10sdGhpcy52YWx1ZSx0aGlzLm1hcCx0aGlzLnJlc3VsdCx0aGlzLnN0b3JlZDtsZXQgaT0tMTtmb3IoOysraTxMZWUubGVuZ3RoOyl7bGV0IG49TGVlW2ldO24gaW4gciYmcltuXSE9PXZvaWQgMCYmcltuXSE9PW51bGwmJih0aGlzW25dPW49PT0iaGlzdG9yeSI/Wy4uLnJbbl1dOnJbbl0pfWxldCBhO2ZvcihhIGluIHIpTGVlLmluY2x1ZGVzKGEpfHwodGhpc1thXT1yW2FdKX1nZXQgYmFzZW5hbWUoKXtyZXR1cm4gdHlwZW9mIHRoaXMucGF0aD09InN0cmluZyI/djIuYmFzZW5hbWUodGhpcy5wYXRoKTp2b2lkIDB9c2V0IGJhc2VuYW1lKHQpe0RlZSh0LCJiYXNlbmFtZSIpLEFlZSh0LCJiYXNlbmFtZSIpLHRoaXMucGF0aD12Mi5qb2luKHRoaXMuZGlybmFtZXx8IiIsdCl9Z2V0IGRpcm5hbWUoKXtyZXR1cm4gdHlwZW9mIHRoaXMucGF0aD09InN0cmluZyI/djIuZGlybmFtZSh0aGlzLnBhdGgpOnZvaWQgMH1zZXQgZGlybmFtZSh0KXtTV2UodGhpcy5iYXNlbmFtZSwiZGlybmFtZSIpLHRoaXMucGF0aD12Mi5qb2luKHR8fCIiLHRoaXMuYmFzZW5hbWUpfWdldCBleHRuYW1lKCl7cmV0dXJuIHR5cGVvZiB0aGlzLnBhdGg9PSJzdHJpbmciP3YyLmV4dG5hbWUodGhpcy5wYXRoKTp2b2lkIDB9c2V0IGV4dG5hbWUodCl7aWYoQWVlKHQsImV4dG5hbWUiKSxTV2UodGhpcy5kaXJuYW1lLCJleHRuYW1lIiksdCl7aWYodC5jb2RlUG9pbnRBdCgwKSE9PTQ2KXRocm93IG5ldyBFcnJvcigiYGV4dG5hbWVgIG11c3Qgc3RhcnQgd2l0aCBgLmAiKTtpZih0LmluY2x1ZGVzKCIuIiwxKSl0aHJvdyBuZXcgRXJyb3IoImBleHRuYW1lYCBjYW5ub3QgY29udGFpbiBtdWx0aXBsZSBkb3RzIil9dGhpcy5wYXRoPXYyLmpvaW4odGhpcy5kaXJuYW1lLHRoaXMuc3RlbSsodHx8IiIpKX1nZXQgcGF0aCgpe3JldHVybiB0aGlzLmhpc3RvcnlbdGhpcy5oaXN0b3J5Lmxlbmd0aC0xXX1zZXQgcGF0aCh0KXtpcCh0KSYmKHQ9TVdlKHQpKSxEZWUodCwicGF0aCIpLHRoaXMucGF0aCE9PXQmJnRoaXMuaGlzdG9yeS5wdXNoKHQpfWdldCBzdGVtKCl7cmV0dXJuIHR5cGVvZiB0aGlzLnBhdGg9PSJzdHJpbmciP3YyLmJhc2VuYW1lKHRoaXMucGF0aCx0aGlzLmV4dG5hbWUpOnZvaWQgMH1zZXQgc3RlbSh0KXtEZWUodCwic3RlbSIpLEFlZSh0LCJzdGVtIiksdGhpcy5wYXRoPXYyLmpvaW4odGhpcy5kaXJuYW1lfHwiIix0Kyh0aGlzLmV4dG5hbWV8fCIiKSl9ZmFpbCh0LHIsaSl7bGV0IGE9dGhpcy5tZXNzYWdlKHQscixpKTt0aHJvdyBhLmZhdGFsPSEwLGF9aW5mbyh0LHIsaSl7bGV0IGE9dGhpcy5tZXNzYWdlKHQscixpKTtyZXR1cm4gYS5mYXRhbD12b2lkIDAsYX1tZXNzYWdlKHQscixpKXtsZXQgYT1uZXcgTmkodCxyLGkpO3JldHVybiB0aGlzLnBhdGgmJihhLm5hbWU9dGhpcy5wYXRoKyI6IithLm5hbWUsYS5maWxlPXRoaXMucGF0aCksYS5mYXRhbD0hMSx0aGlzLm1lc3NhZ2VzLnB1c2goYSksYX10b1N0cmluZyh0KXtyZXR1cm4gdGhpcy52YWx1ZT09PXZvaWQgMD8iIjp0eXBlb2YgdGhpcy52YWx1ZT09InN0cmluZyI/dGhpcy52YWx1ZTpuZXcgVGV4dERlY29kZXIodHx8dm9pZCAwKS5kZWNvZGUodGhpcy52YWx1ZSl9fX0pO3ZhciBDV2U9cCgoKT0+e3pXZSgpfSk7dmFyIFRXZSxfV2U9cCgoKT0+e1RXZT0oZnVuY3Rpb24oZSl7bGV0IGk9dGhpcy5jb25zdHJ1Y3Rvci5wcm90b3R5cGUsYT1pW2VdLG49ZnVuY3Rpb24oKXtyZXR1cm4gYS5hcHBseShuLGFyZ3VtZW50cyl9O3JldHVybiBPYmplY3Quc2V0UHJvdG90eXBlT2YobixpKSxufSl9KTtmdW5jdGlvbiAkZWUoZSx0KXtpZih0eXBlb2YgdCE9ImZ1bmN0aW9uIil0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgYCIrZSsiYCB3aXRob3V0IGBwYXJzZXJgIil9ZnVuY3Rpb24gSWVlKGUsdCl7aWYodHlwZW9mIHQhPSJmdW5jdGlvbiIpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGAiK2UrImAgd2l0aG91dCBgY29tcGlsZXJgIil9ZnVuY3Rpb24gUGVlKGUsdCl7aWYodCl0aHJvdyBuZXcgRXJyb3IoIkNhbm5vdCBjYWxsIGAiK2UrImAgb24gYSBmcm96ZW4gcHJvY2Vzc29yLlxuQ3JlYXRlIGEgbmV3IHByb2Nlc3NvciBmaXJzdCwgYnkgY2FsbGluZyBpdDogdXNlIGBwcm9jZXNzb3IoKWAgaW5zdGVhZCBvZiBgcHJvY2Vzc29yYC4iKX1mdW5jdGlvbiBMV2UoZSl7aWYoIVQ5KGUpfHx0eXBlb2YgZS50eXBlIT0ic3RyaW5nIil0aHJvdyBuZXcgVHlwZUVycm9yKCJFeHBlY3RlZCBub2RlLCBnb3QgYCIrZSsiYCIpfWZ1bmN0aW9uIEFXZShlLHQscil7aWYoIXIpdGhyb3cgbmV3IEVycm9yKCJgIitlKyJgIGZpbmlzaGVkIGFzeW5jLiBVc2UgYCIrdCsiYCBpbnN0ZWFkIil9ZnVuY3Rpb24gZ18oZSl7cmV0dXJuIG9ScihlKT9lOm5ldyBMOShlKX1mdW5jdGlvbiBvUnIoZSl7cmV0dXJuISEoZSYmdHlwZW9mIGU9PSJvYmplY3QiJiYibWVzc2FnZSJpbiBlJiYibWVzc2FnZXMiaW4gZSl9ZnVuY3Rpb24gc1JyKGUpe3JldHVybiB0eXBlb2YgZT09InN0cmluZyJ8fGxScihlKX1mdW5jdGlvbiBsUnIoZSl7cmV0dXJuISEoZSYmdHlwZW9mIGU9PSJvYmplY3QiJiYiYnl0ZUxlbmd0aCJpbiBlJiYiYnl0ZU9mZnNldCJpbiBlKX12YXIgYl8sblJyLEVlZSxBOSxEV2U9cCgoKT0+e2VXZSgpO2JfPWVyKGNXZSgpLDEpO2M0KCk7ZFdlKCk7aFdlKCk7Q1dlKCk7X1dlKCk7blJyPXt9Lmhhc093blByb3BlcnR5LEVlZT1jbGFzcyBlIGV4dGVuZHMgVFdle2NvbnN0cnVjdG9yKCl7c3VwZXIoImNvcHkiKSx0aGlzLkNvbXBpbGVyPXZvaWQgMCx0aGlzLlBhcnNlcj12b2lkIDAsdGhpcy5hdHRhY2hlcnM9W10sdGhpcy5jb21waWxlcj12b2lkIDAsdGhpcy5mcmVlemVJbmRleD0tMSx0aGlzLmZyb3plbj12b2lkIDAsdGhpcy5uYW1lc3BhY2U9e30sdGhpcy5wYXJzZXI9dm9pZCAwLHRoaXMudHJhbnNmb3JtZXJzPXplZSgpfWNvcHkoKXtsZXQgdD1uZXcgZSxyPS0xO2Zvcig7KytyPHRoaXMuYXR0YWNoZXJzLmxlbmd0aDspe2xldCBpPXRoaXMuYXR0YWNoZXJzW3JdO3QudXNlKC4uLmkpfXJldHVybiB0LmRhdGEoKDAsYl8uZGVmYXVsdCkoITAse30sdGhpcy5uYW1lc3BhY2UpKSx0fWRhdGEodCxyKXtyZXR1cm4gdHlwZW9mIHQ9PSJzdHJpbmciP2FyZ3VtZW50cy5sZW5ndGg9PT0yPyhQZWUoImRhdGEiLHRoaXMuZnJvemVuKSx0aGlzLm5hbWVzcGFjZVt0XT1yLHRoaXMpOm5Sci5jYWxsKHRoaXMubmFtZXNwYWNlLHQpJiZ0aGlzLm5hbWVzcGFjZVt0XXx8dm9pZCAwOnQ/KFBlZSgiZGF0YSIsdGhpcy5mcm96ZW4pLHRoaXMubmFtZXNwYWNlPXQsdGhpcyk6dGhpcy5uYW1lc3BhY2V9ZnJlZXplKCl7aWYodGhpcy5mcm96ZW4pcmV0dXJuIHRoaXM7bGV0IHQ9dGhpcztmb3IoOysrdGhpcy5mcmVlemVJbmRleDx0aGlzLmF0dGFjaGVycy5sZW5ndGg7KXtsZXRbciwuLi5pXT10aGlzLmF0dGFjaGVyc1t0aGlzLmZyZWV6ZUluZGV4XTtpZihpWzBdPT09ITEpY29udGludWU7aVswXT09PSEwJiYoaVswXT12b2lkIDApO2xldCBhPXIuY2FsbCh0LC4uLmkpO3R5cGVvZiBhPT0iZnVuY3Rpb24iJiZ0aGlzLnRyYW5zZm9ybWVycy51c2UoYSl9cmV0dXJuIHRoaXMuZnJvemVuPSEwLHRoaXMuZnJlZXplSW5kZXg9TnVtYmVyLlBPU0lUSVZFX0lORklOSVRZLHRoaXN9cGFyc2UodCl7dGhpcy5mcmVlemUoKTtsZXQgcj1nXyh0KSxpPXRoaXMucGFyc2VyfHx0aGlzLlBhcnNlcjtyZXR1cm4gJGVlKCJwYXJzZSIsaSksaShTdHJpbmcocikscil9cHJvY2Vzcyh0LHIpe2xldCBpPXRoaXM7cmV0dXJuIHRoaXMuZnJlZXplKCksJGVlKCJwcm9jZXNzIix0aGlzLnBhcnNlcnx8dGhpcy5QYXJzZXIpLEllZSgicHJvY2VzcyIsdGhpcy5jb21waWxlcnx8dGhpcy5Db21waWxlcikscj9hKHZvaWQgMCxyKTpuZXcgUHJvbWlzZShhKTtmdW5jdGlvbiBhKG4sbyl7bGV0IHM9Z18odCksbD1pLnBhcnNlKHMpO2kucnVuKGwscyxmdW5jdGlvbih1LGQsaCl7aWYodXx8IWR8fCFoKXJldHVybiBjKHUpO2xldCBmPWQseD1pLnN0cmluZ2lmeShmLGgpO3NScih4KT9oLnZhbHVlPXg6aC5yZXN1bHQ9eCxjKHUsaCl9KTtmdW5jdGlvbiBjKHUsZCl7dXx8IWQ/byh1KTpuP24oZCk6cih2b2lkIDAsZCl9fX1wcm9jZXNzU3luYyh0KXtsZXQgcj0hMSxpO3JldHVybiB0aGlzLmZyZWV6ZSgpLCRlZSgicHJvY2Vzc1N5bmMiLHRoaXMucGFyc2VyfHx0aGlzLlBhcnNlciksSWVlKCJwcm9jZXNzU3luYyIsdGhpcy5jb21waWxlcnx8dGhpcy5Db21waWxlciksdGhpcy5wcm9jZXNzKHQsYSksQVdlKCJwcm9jZXNzU3luYyIsInByb2Nlc3MiLHIpLGk7ZnVuY3Rpb24gYShuLG8pe3I9ITAsU2VlKG4pLGk9b319cnVuKHQscixpKXtMV2UodCksdGhpcy5mcmVlemUoKTtsZXQgYT10aGlzLnRyYW5zZm9ybWVycztyZXR1cm4haSYmdHlwZW9mIHI9PSJmdW5jdGlvbiImJihpPXIscj12b2lkIDApLGk/bih2b2lkIDAsaSk6bmV3IFByb21pc2Uobik7ZnVuY3Rpb24gbihvLHMpe2xldCBsPWdfKHIpO2EucnVuKHQsbCxjKTtmdW5jdGlvbiBjKHUsZCxoKXtsZXQgZj1kfHx0O3U/cyh1KTpvP28oZik6aSh2b2lkIDAsZixoKX19fXJ1blN5bmModCxyKXtsZXQgaT0hMSxhO3JldHVybiB0aGlzLnJ1bih0LHIsbiksQVdlKCJydW5TeW5jIiwicnVuIixpKSxhO2Z1bmN0aW9uIG4obyxzKXtTZWUobyksYT1zLGk9ITB9fXN0cmluZ2lmeSh0LHIpe3RoaXMuZnJlZXplKCk7bGV0IGk9Z18ociksYT10aGlzLmNvbXBpbGVyfHx0aGlzLkNvbXBpbGVyO3JldHVybiBJZWUoInN0cmluZ2lmeSIsYSksTFdlKHQpLGEodCxpKX11c2UodCwuLi5yKXtsZXQgaT10aGlzLmF0dGFjaGVycyxhPXRoaXMubmFtZXNwYWNlO2lmKFBlZSgidXNlIix0aGlzLmZyb3plbiksdCE9bnVsbClpZih0eXBlb2YgdD09ImZ1bmN0aW9uIilsKHQscik7ZWxzZSBpZih0eXBlb2YgdD09Im9iamVjdCIpQXJyYXkuaXNBcnJheSh0KT9zKHQpOm8odCk7ZWxzZSB0aHJvdyBuZXcgVHlwZUVycm9yKCJFeHBlY3RlZCB1c2FibGUgdmFsdWUsIG5vdCBgIit0KyJgIik7cmV0dXJuIHRoaXM7ZnVuY3Rpb24gbihjKXtpZih0eXBlb2YgYz09ImZ1bmN0aW9uIilsKGMsW10pO2Vsc2UgaWYodHlwZW9mIGM9PSJvYmplY3QiKWlmKEFycmF5LmlzQXJyYXkoYykpe2xldFt1LC4uLmRdPWM7bCh1LGQpfWVsc2UgbyhjKTtlbHNlIHRocm93IG5ldyBUeXBlRXJyb3IoIkV4cGVjdGVkIHVzYWJsZSB2YWx1ZSwgbm90IGAiK2MrImAiKX1mdW5jdGlvbiBvKGMpe2lmKCEoInBsdWdpbnMiaW4gYykmJiEoInNldHRpbmdzImluIGMpKXRocm93IG5ldyBFcnJvcigiRXhwZWN0ZWQgdXNhYmxlIHZhbHVlIGJ1dCByZWNlaXZlZCBhbiBlbXB0eSBwcmVzZXQsIHdoaWNoIGlzIHByb2JhYmx5IGEgbWlzdGFrZTogcHJlc2V0cyB0eXBpY2FsbHkgY29tZSB3aXRoIGBwbHVnaW5zYCBhbmQgc29tZXRpbWVzIHdpdGggYHNldHRpbmdzYCwgYnV0IHRoaXMgaGFzIG5laXRoZXIiKTtzKGMucGx1Z2lucyksYy5zZXR0aW5ncyYmKGEuc2V0dGluZ3M9KDAsYl8uZGVmYXVsdCkoITAsYS5zZXR0aW5ncyxjLnNldHRpbmdzKSl9ZnVuY3Rpb24gcyhjKXtsZXQgdT0tMTtpZihjIT1udWxsKWlmKEFycmF5LmlzQXJyYXkoYykpZm9yKDsrK3U8Yy5sZW5ndGg7KXtsZXQgZD1jW3VdO24oZCl9ZWxzZSB0aHJvdyBuZXcgVHlwZUVycm9yKCJFeHBlY3RlZCBhIGxpc3Qgb2YgcGx1Z2lucywgbm90IGAiK2MrImAiKX1mdW5jdGlvbiBsKGMsdSl7bGV0IGQ9LTEsaD0tMTtmb3IoOysrZDxpLmxlbmd0aDspaWYoaVtkXVswXT09PWMpe2g9ZDticmVha31pZihoPT09LTEpaS5wdXNoKFtjLC4uLnVdKTtlbHNlIGlmKHUubGVuZ3RoPjApe2xldFtmLC4uLnhdPXUsdj1pW2hdWzFdO1Q5KHYpJiZUOShmKSYmKGY9KDAsYl8uZGVmYXVsdCkoITAsdixmKSksaVtoXT1bYyxmLC4uLnhdfX19fSxBOT1uZXcgRWVlKCkuZnJlZXplKCl9KTt2YXIgRVdlPXAoKCk9PntEV2UoKX0pO2Z1bmN0aW9uIG5wKGUsdCl7bGV0IHI9U3RyaW5nKGUpO2lmKHR5cGVvZiB0IT0ic3RyaW5nIil0aHJvdyBuZXcgVHlwZUVycm9yKCJFeHBlY3RlZCBjaGFyYWN0ZXIiKTtsZXQgaT0wLGE9ci5pbmRleE9mKHQpO2Zvcig7YSE9PS0xOylpKyssYT1yLmluZGV4T2YodCxhK3QubGVuZ3RoKTtyZXR1cm4gaX12YXIgTmVlPXAoKCk9Pnt9KTtmdW5jdGlvbiBpZChlKXtyZXR1cm4gZSE9PW51bGwmJihlPDMyfHxlPT09MTI3KX1mdW5jdGlvbiBHZShlKXtyZXR1cm4gZSE9PW51bGwmJmU8LTJ9ZnVuY3Rpb24gSnQoZSl7cmV0dXJuIGUhPT1udWxsJiYoZTwwfHxlPT09MzIpfWZ1bmN0aW9uIGN0KGUpe3JldHVybiBlPT09LTJ8fGU9PT0tMXx8ZT09PTMyfWZ1bmN0aW9uIHU0KGUpe3JldHVybiB0O2Z1bmN0aW9uIHQocil7cmV0dXJuIHIhPT1udWxsJiZyPi0xJiZlLnRlc3QoU3RyaW5nLmZyb21DaGFyQ29kZShyKSl9fXZhciB5aSxJMSwkV2UsRDksSVdlLFBXZSxhZCxWcyxycj1wKCgpPT57eWk9dTQoL1tBLVphLXpdLyksSTE9dTQoL1tcZEEtWmEtel0vKSwkV2U9dTQoL1sjLScqK1wtLTk9P0EtWl4tfl0vKTtEOT11NCgvXGQvKSxJV2U9dTQoL1tcZEEtRmEtZl0vKSxQV2U9dTQoL1shLS86LUBbLWB7LX5dLyk7YWQ9dTQoL1xwe1B9fFxwe1N9L3UpLFZzPXU0KC9ccy8pfSk7ZnVuY3Rpb24gY1JyKGUpe2xldCB0PVtdLHI9LTE7Zm9yKDsrK3I8ZS5sZW5ndGg7KXRbcl09aWMoZVtyXSk7cmV0dXJuIHZfKGkpO2Z1bmN0aW9uIGkoLi4uYSl7bGV0IG49LTE7Zm9yKDsrK248dC5sZW5ndGg7KWlmKHRbbl0uYXBwbHkodGhpcyxhKSlyZXR1cm4hMDtyZXR1cm4hMX19ZnVuY3Rpb24gZFJyKGUpe2xldCB0PWU7cmV0dXJuIHZfKHIpO2Z1bmN0aW9uIHIoaSl7bGV0IGE9aSxuO2ZvcihuIGluIGUpaWYoYVtuXSE9PXRbbl0pcmV0dXJuITE7cmV0dXJuITB9fWZ1bmN0aW9uIHVScihlKXtyZXR1cm4gdl8odCk7ZnVuY3Rpb24gdChyKXtyZXR1cm4gciYmci50eXBlPT09ZX19ZnVuY3Rpb24gdl8oZSl7cmV0dXJuIHQ7ZnVuY3Rpb24gdChyLGksYSl7cmV0dXJuISEoTldlKHIpJiZlLmNhbGwodGhpcyxyLHR5cGVvZiBpPT0ibnVtYmVyIj9pOnZvaWQgMCxhfHx2b2lkIDApKX19ZnVuY3Rpb24gcFJyKCl7cmV0dXJuITB9ZnVuY3Rpb24gTldlKGUpe3JldHVybiBlIT09bnVsbCYmdHlwZW9mIGU9PSJvYmplY3QiJiYidHlwZSJpbiBlfXZhciBGV2UsaWMsT1dlPXAoKCk9PntGV2U9KGZ1bmN0aW9uKGUsdCxyLGksYSl7bGV0IG49aWModCk7aWYociE9bnVsbCYmKHR5cGVvZiByIT0ibnVtYmVyInx8cjwwfHxyPT09TnVtYmVyLlBPU0lUSVZFX0lORklOSVRZKSl0aHJvdyBuZXcgRXJyb3IoIkV4cGVjdGVkIHBvc2l0aXZlIGZpbml0ZSBpbmRleCIpO2lmKGkhPW51bGwmJighRldlKGkpfHwhaS5jaGlsZHJlbikpdGhyb3cgbmV3IEVycm9yKCJFeHBlY3RlZCBwYXJlbnQgbm9kZSIpO2lmKGk9PW51bGwhPShyPT1udWxsKSl0aHJvdyBuZXcgRXJyb3IoIkV4cGVjdGVkIGJvdGggcGFyZW50IGFuZCBpbmRleCIpO3JldHVybiBOV2UoZSk/bi5jYWxsKGEsZSxyLGkpOiExfSksaWM9KGZ1bmN0aW9uKGUpe2lmKGU9PW51bGwpcmV0dXJuIHBScjtpZih0eXBlb2YgZT09ImZ1bmN0aW9uIilyZXR1cm4gdl8oZSk7aWYodHlwZW9mIGU9PSJvYmplY3QiKXJldHVybiBBcnJheS5pc0FycmF5KGUpP2NScihlKTpkUnIoZSk7aWYodHlwZW9mIGU9PSJzdHJpbmciKXJldHVybiB1UnIoZSk7dGhyb3cgbmV3IEVycm9yKCJFeHBlY3RlZCBmdW5jdGlvbiwgc3RyaW5nLCBvciBvYmplY3QgYXMgdGVzdCIpfSl9KTt2YXIgeF89cCgoKT0+e09XZSgpfSk7dmFyIFJXZT1wKCgpPT57fSk7ZnVuY3Rpb24gRTkoZSx0LHIsaSl7bGV0IGE7dHlwZW9mIHQ9PSJmdW5jdGlvbiImJnR5cGVvZiByIT0iZnVuY3Rpb24iPyhpPXIscj10KTphPXQ7bGV0IG49aWMoYSksbz1pPy0xOjE7cyhlLHZvaWQgMCxbXSkoKTtmdW5jdGlvbiBzKGwsYyx1KXtsZXQgZD1sJiZ0eXBlb2YgbD09Im9iamVjdCI/bDp7fTtpZih0eXBlb2YgZC50eXBlPT0ic3RyaW5nIil7bGV0IGY9dHlwZW9mIGQudGFnTmFtZT09InN0cmluZyI/ZC50YWdOYW1lOnR5cGVvZiBkLm5hbWU9PSJzdHJpbmciP2QubmFtZTp2b2lkIDA7T2JqZWN0LmRlZmluZVByb3BlcnR5KGgsIm5hbWUiLHt2YWx1ZToibm9kZSAoIisobC50eXBlKyhmPyI8IitmKyI+IjoiIikpKyIpIn0pfXJldHVybiBoO2Z1bmN0aW9uIGgoKXtsZXQgZj1CV2UseCx2LGI7aWYoKCF0fHxuKGwsYyx1W3UubGVuZ3RoLTFdfHx2b2lkIDApKSYmKGY9aFJyKHIobCx1KSksZlswXT09PW5kKSlyZXR1cm4gZjtpZigiY2hpbGRyZW4iaW4gbCYmbC5jaGlsZHJlbil7bGV0IHk9bDtpZih5LmNoaWxkcmVuJiZmWzBdIT09d18pZm9yKHY9KGk/eS5jaGlsZHJlbi5sZW5ndGg6LTEpK28sYj11LmNvbmNhdCh5KTt2Pi0xJiZ2PHkuY2hpbGRyZW4ubGVuZ3RoOyl7bGV0IHc9eS5jaGlsZHJlblt2XTtpZih4PXModyx2LGIpKCkseFswXT09PW5kKXJldHVybiB4O3Y9dHlwZW9mIHhbMV09PSJudW1iZXIiP3hbMV06ditvfX1yZXR1cm4gZn19fWZ1bmN0aW9uIGhScihlKXtyZXR1cm4gQXJyYXkuaXNBcnJheShlKT9lOnR5cGVvZiBlPT0ibnVtYmVyIj9beV8sZV06ZT09bnVsbD9CV2U6W2VdfXZhciBCV2UseV8sbmQsd18sSFdlPXAoKCk9Pnt4XygpO1JXZSgpO0JXZT1bXSx5Xz0hMCxuZD0hMSx3Xz0ic2tpcCJ9KTt2YXIgTV89cCgoKT0+e0hXZSgpfSk7ZnVuY3Rpb24gRmVlKGUsdCxyKXtsZXQgYT1pYygocnx8e30pLmlnbm9yZXx8W10pLG49ZlJyKHQpLG89LTE7Zm9yKDsrK288bi5sZW5ndGg7KUU5KGUsInRleHQiLHMpO2Z1bmN0aW9uIHMoYyx1KXtsZXQgZD0tMSxoO2Zvcig7KytkPHUubGVuZ3RoOyl7bGV0IGY9dVtkXSx4PWg/aC5jaGlsZHJlbjp2b2lkIDA7aWYoYShmLHg/eC5pbmRleE9mKGYpOnZvaWQgMCxoKSlyZXR1cm47aD1mfWlmKGgpcmV0dXJuIGwoYyx1KX1mdW5jdGlvbiBsKGMsdSl7bGV0IGQ9dVt1Lmxlbmd0aC0xXSxoPW5bb11bMF0sZj1uW29dWzFdLHg9MCxiPWQuY2hpbGRyZW4uaW5kZXhPZihjKSx5PSExLHc9W107aC5sYXN0SW5kZXg9MDtsZXQgaz1oLmV4ZWMoYy52YWx1ZSk7Zm9yKDtrOyl7bGV0IE89ay5pbmRleCx6PXtpbmRleDprLmluZGV4LGlucHV0OmsuaW5wdXQsc3RhY2s6Wy4uLnUsY119LE09ZiguLi5rLHopO2lmKHR5cGVvZiBNPT0ic3RyaW5nIiYmKE09TS5sZW5ndGg+MD97dHlwZToidGV4dCIsdmFsdWU6TX06dm9pZCAwKSxNPT09ITE/aC5sYXN0SW5kZXg9TysxOih4IT09TyYmdy5wdXNoKHt0eXBlOiJ0ZXh0Iix2YWx1ZTpjLnZhbHVlLnNsaWNlKHgsTyl9KSxBcnJheS5pc0FycmF5KE0pP3cucHVzaCguLi5NKTpNJiZ3LnB1c2goTSkseD1PK2tbMF0ubGVuZ3RoLHk9ITApLCFoLmdsb2JhbClicmVhaztrPWguZXhlYyhjLnZhbHVlKX1yZXR1cm4geT8oeDxjLnZhbHVlLmxlbmd0aCYmdy5wdXNoKHt0eXBlOiJ0ZXh0Iix2YWx1ZTpjLnZhbHVlLnNsaWNlKHgpfSksZC5jaGlsZHJlbi5zcGxpY2UoYiwxLC4uLncpKTp3PVtjXSxiK3cubGVuZ3RofX1mdW5jdGlvbiBmUnIoZSl7bGV0IHQ9W107aWYoIUFycmF5LmlzQXJyYXkoZSkpdGhyb3cgbmV3IFR5cGVFcnJvcigiRXhwZWN0ZWQgZmluZCBhbmQgcmVwbGFjZSB0dXBsZSBvciBsaXN0IG9mIHR1cGxlcyIpO2xldCByPSFlWzBdfHxBcnJheS5pc0FycmF5KGVbMF0pP2U6W2VdLGk9LTE7Zm9yKDsrK2k8ci5sZW5ndGg7KXtsZXQgYT1yW2ldO3QucHVzaChbbVJyKGFbMF0pLGdScihhWzFdKV0pfXJldHVybiB0fWZ1bmN0aW9uIG1ScihlKXtyZXR1cm4gdHlwZW9mIGU9PSJzdHJpbmciP25ldyBSZWdFeHAoVDYoZSksImciKTplfWZ1bmN0aW9uIGdScihlKXtyZXR1cm4gdHlwZW9mIGU9PSJmdW5jdGlvbiI/ZTpmdW5jdGlvbigpe3JldHVybiBlfX12YXIgcVdlPXAoKCk9Pnt2eigpO01fKCk7eF8oKX0pO3ZhciBqV2U9cCgoKT0+e3FXZSgpfSk7ZnVuY3Rpb24gSGVlKCl7cmV0dXJue3RyYW5zZm9ybXM6W01Scl0sZW50ZXI6e2xpdGVyYWxBdXRvbGluazpiUnIsbGl0ZXJhbEF1dG9saW5rRW1haWw6QmVlLGxpdGVyYWxBdXRvbGlua0h0dHA6QmVlLGxpdGVyYWxBdXRvbGlua1d3dzpCZWV9LGV4aXQ6e2xpdGVyYWxBdXRvbGluazp3UnIsbGl0ZXJhbEF1dG9saW5rRW1haWw6eVJyLGxpdGVyYWxBdXRvbGlua0h0dHA6dlJyLGxpdGVyYWxBdXRvbGlua1d3dzp4UnJ9fX1mdW5jdGlvbiBxZWUoKXtyZXR1cm57dW5zYWZlOlt7Y2hhcmFjdGVyOiJAIixiZWZvcmU6IlsrXFwtLlxcd10iLGFmdGVyOiJbXFwtLlxcd10iLGluQ29uc3RydWN0Ok9lZSxub3RJbkNvbnN0cnVjdDpSZWV9LHtjaGFyYWN0ZXI6Ii4iLGJlZm9yZToiW1d3XSIsYWZ0ZXI6IltcXC0uXFx3XSIsaW5Db25zdHJ1Y3Q6T2VlLG5vdEluQ29uc3RydWN0OlJlZX0se2NoYXJhY3RlcjoiOiIsYmVmb3JlOiJbcHNdIixhZnRlcjoiXFwvIixpbkNvbnN0cnVjdDpPZWUsbm90SW5Db25zdHJ1Y3Q6UmVlfV19fWZ1bmN0aW9uIGJScihlKXt0aGlzLmVudGVyKHt0eXBlOiJsaW5rIix0aXRsZTpudWxsLHVybDoiIixjaGlsZHJlbjpbXX0sZSl9ZnVuY3Rpb24gQmVlKGUpe3RoaXMuY29uZmlnLmVudGVyLmF1dG9saW5rUHJvdG9jb2wuY2FsbCh0aGlzLGUpfWZ1bmN0aW9uIHZScihlKXt0aGlzLmNvbmZpZy5leGl0LmF1dG9saW5rUHJvdG9jb2wuY2FsbCh0aGlzLGUpfWZ1bmN0aW9uIHhScihlKXt0aGlzLmNvbmZpZy5leGl0LmRhdGEuY2FsbCh0aGlzLGUpO2xldCB0PXRoaXMuc3RhY2tbdGhpcy5zdGFjay5sZW5ndGgtMV07dC50eXBlLHQudXJsPSJodHRwOi8vIit0aGlzLnNsaWNlU2VyaWFsaXplKGUpfWZ1bmN0aW9uIHlScihlKXt0aGlzLmNvbmZpZy5leGl0LmF1dG9saW5rRW1haWwuY2FsbCh0aGlzLGUpfWZ1bmN0aW9uIHdScihlKXt0aGlzLmV4aXQoZSl9ZnVuY3Rpb24gTVJyKGUpe0ZlZShlLFtbLyhodHRwcz86XC9cL3x3d3coPz1cLikpKFstLlx3XSspKFteIFx0XHJcbl0qKS9naSxrUnJdLFsvKD88PV58XHN8XHB7UH18XHB7U30pKFstLlx3K10rKUAoWy1cd10rKD86XC5bLVx3XSspKykvZ3UsU1JyXV0se2lnbm9yZTpbImxpbmsiLCJsaW5rUmVmZXJlbmNlIl19KX1mdW5jdGlvbiBrUnIoZSx0LHIsaSxhKXtsZXQgbj0iIjtpZighVldlKGEpfHwoL153L2kudGVzdCh0KSYmKHI9dCtyLHQ9IiIsbj0iaHR0cDovLyIpLCF6UnIocikpKXJldHVybiExO2xldCBvPUNScihyK2kpO2lmKCFvWzBdKXJldHVybiExO2xldCBzPXt0eXBlOiJsaW5rIix0aXRsZTpudWxsLHVybDpuK3Qrb1swXSxjaGlsZHJlbjpbe3R5cGU6InRleHQiLHZhbHVlOnQrb1swXX1dfTtyZXR1cm4gb1sxXT9bcyx7dHlwZToidGV4dCIsdmFsdWU6b1sxXX1dOnN9ZnVuY3Rpb24gU1JyKGUsdCxyLGkpe3JldHVybiFWV2UoaSwhMCl8fC9bLVxkX10kLy50ZXN0KHIpPyExOnt0eXBlOiJsaW5rIix0aXRsZTpudWxsLHVybDoibWFpbHRvOiIrdCsiQCIrcixjaGlsZHJlbjpbe3R5cGU6InRleHQiLHZhbHVlOnQrIkAiK3J9XX19ZnVuY3Rpb24gelJyKGUpe2xldCB0PWUuc3BsaXQoIi4iKTtyZXR1cm4hKHQubGVuZ3RoPDJ8fHRbdC5sZW5ndGgtMV0mJigvXy8udGVzdCh0W3QubGVuZ3RoLTFdKXx8IS9bYS16QS1aXGRdLy50ZXN0KHRbdC5sZW5ndGgtMV0pKXx8dFt0Lmxlbmd0aC0yXSYmKC9fLy50ZXN0KHRbdC5sZW5ndGgtMl0pfHwhL1thLXpBLVpcZF0vLnRlc3QodFt0Lmxlbmd0aC0yXSkpKX1mdW5jdGlvbiBDUnIoZSl7bGV0IHQ9L1shIiYnKSwuOjs8Pj9cXX1dKyQvLmV4ZWMoZSk7aWYoIXQpcmV0dXJuW2Usdm9pZCAwXTtlPWUuc2xpY2UoMCx0LmluZGV4KTtsZXQgcj10WzBdLGk9ci5pbmRleE9mKCIpIiksYT1ucChlLCIoIiksbj1ucChlLCIpIik7Zm9yKDtpIT09LTEmJmE+bjspZSs9ci5zbGljZSgwLGkrMSkscj1yLnNsaWNlKGkrMSksaT1yLmluZGV4T2YoIikiKSxuKys7cmV0dXJuW2Uscl19ZnVuY3Rpb24gVldlKGUsdCl7bGV0IHI9ZS5pbnB1dC5jaGFyQ29kZUF0KGUuaW5kZXgtMSk7cmV0dXJuKGUuaW5kZXg9PT0wfHxWcyhyKXx8YWQocikpJiYoIXR8fHIhPT00Nyl9dmFyIE9lZSxSZWUsVVdlPXAoKCk9PntOZWUoKTtjNCgpO3JyKCk7aldlKCk7T2VlPSJwaHJhc2luZyIsUmVlPVsiYXV0b2xpbmsiLCJsaW5rIiwiaW1hZ2UiLCJsYWJlbCJdfSk7dmFyIFdXZT1wKCgpPT57VVdlKCl9KTtmdW5jdGlvbiBQMShlKXtyZXR1cm4gZS5yZXBsYWNlKC9bXHRcblxyIF0rL2csIiAiKS5yZXBsYWNlKC9eIHwgJC9nLCIiKS50b0xvd2VyQ2FzZSgpLnRvVXBwZXJDYXNlKCl9dmFyIHA0PXAoKCk9Pnt9KTtmdW5jdGlvbiBUUnIoKXt0aGlzLmJ1ZmZlcigpfWZ1bmN0aW9uIF9ScihlKXt0aGlzLmVudGVyKHt0eXBlOiJmb290bm90ZVJlZmVyZW5jZSIsaWRlbnRpZmllcjoiIixsYWJlbDoiIn0sZSl9ZnVuY3Rpb24gTFJyKCl7dGhpcy5idWZmZXIoKX1mdW5jdGlvbiBBUnIoZSl7dGhpcy5lbnRlcih7dHlwZToiZm9vdG5vdGVEZWZpbml0aW9uIixpZGVudGlmaWVyOiIiLGxhYmVsOiIiLGNoaWxkcmVuOltdfSxlKX1mdW5jdGlvbiBEUnIoZSl7bGV0IHQ9dGhpcy5yZXN1bWUoKSxyPXRoaXMuc3RhY2tbdGhpcy5zdGFjay5sZW5ndGgtMV07ci50eXBlLHIuaWRlbnRpZmllcj1QMSh0aGlzLnNsaWNlU2VyaWFsaXplKGUpKS50b0xvd2VyQ2FzZSgpLHIubGFiZWw9dH1mdW5jdGlvbiBFUnIoZSl7dGhpcy5leGl0KGUpfWZ1bmN0aW9uICRScihlKXtsZXQgdD10aGlzLnJlc3VtZSgpLHI9dGhpcy5zdGFja1t0aGlzLnN0YWNrLmxlbmd0aC0xXTtyLnR5cGUsci5pZGVudGlmaWVyPVAxKHRoaXMuc2xpY2VTZXJpYWxpemUoZSkpLnRvTG93ZXJDYXNlKCksci5sYWJlbD10fWZ1bmN0aW9uIElScihlKXt0aGlzLmV4aXQoZSl9ZnVuY3Rpb24gUFJyKCl7cmV0dXJuIlsifWZ1bmN0aW9uIEdXZShlLHQscixpKXtsZXQgYT1yLmNyZWF0ZVRyYWNrZXIoaSksbj1hLm1vdmUoIlteIiksbz1yLmVudGVyKCJmb290bm90ZVJlZmVyZW5jZSIpLHM9ci5lbnRlcigicmVmZXJlbmNlIik7cmV0dXJuIG4rPWEubW92ZShyLnNhZmUoci5hc3NvY2lhdGlvbklkKGUpLHthZnRlcjoiXSIsYmVmb3JlOm59KSkscygpLG8oKSxuKz1hLm1vdmUoIl0iKSxufWZ1bmN0aW9uIGplZSgpe3JldHVybntlbnRlcjp7Z2ZtRm9vdG5vdGVDYWxsU3RyaW5nOlRScixnZm1Gb290bm90ZUNhbGw6X1JyLGdmbUZvb3Rub3RlRGVmaW5pdGlvbkxhYmVsU3RyaW5nOkxScixnZm1Gb290bm90ZURlZmluaXRpb246QVJyfSxleGl0OntnZm1Gb290bm90ZUNhbGxTdHJpbmc6RFJyLGdmbUZvb3Rub3RlQ2FsbDpFUnIsZ2ZtRm9vdG5vdGVEZWZpbml0aW9uTGFiZWxTdHJpbmc6JFJyLGdmbUZvb3Rub3RlRGVmaW5pdGlvbjpJUnJ9fX1mdW5jdGlvbiBWZWUoZSl7bGV0IHQ9ITE7cmV0dXJuIGUmJmUuZmlyc3RMaW5lQmxhbmsmJih0PSEwKSx7aGFuZGxlcnM6e2Zvb3Rub3RlRGVmaW5pdGlvbjpyLGZvb3Rub3RlUmVmZXJlbmNlOkdXZX0sdW5zYWZlOlt7Y2hhcmFjdGVyOiJbIixpbkNvbnN0cnVjdDpbImxhYmVsIiwicGhyYXNpbmciLCJyZWZlcmVuY2UiXX1dfTtmdW5jdGlvbiByKGksYSxuLG8pe2xldCBzPW4uY3JlYXRlVHJhY2tlcihvKSxsPXMubW92ZSgiW14iKSxjPW4uZW50ZXIoImZvb3Rub3RlRGVmaW5pdGlvbiIpLHU9bi5lbnRlcigibGFiZWwiKTtyZXR1cm4gbCs9cy5tb3ZlKG4uc2FmZShuLmFzc29jaWF0aW9uSWQoaSkse2JlZm9yZTpsLGFmdGVyOiJdIn0pKSx1KCksbCs9cy5tb3ZlKCJdOiIpLGkuY2hpbGRyZW4mJmkuY2hpbGRyZW4ubGVuZ3RoPjAmJihzLnNoaWZ0KDQpLGwrPXMubW92ZSgodD9gCmA6IiAiKStuLmluZGVudExpbmVzKG4uY29udGFpbmVyRmxvdyhpLHMuY3VycmVudCgpKSx0P1lXZTpOUnIpKSksYygpLGx9fWZ1bmN0aW9uIE5ScihlLHQscil7cmV0dXJuIHQ9PT0wP2U6WVdlKGUsdCxyKX1mdW5jdGlvbiBZV2UoZSx0LHIpe3JldHVybihyPyIiOiIgICAgIikrZX12YXIgWldlPXAoKCk9PntjNCgpO3A0KCk7R1dlLnBlZWs9UFJyfSk7dmFyIFhXZT1wKCgpPT57WldlKCl9KTtmdW5jdGlvbiBVZWUoKXtyZXR1cm57Y2FuQ29udGFpbkVvbHM6WyJkZWxldGUiXSxlbnRlcjp7c3RyaWtldGhyb3VnaDpPUnJ9LGV4aXQ6e3N0cmlrZXRocm91Z2g6UlJyfX19ZnVuY3Rpb24gV2VlKCl7cmV0dXJue3Vuc2FmZTpbe2NoYXJhY3RlcjoifiIsaW5Db25zdHJ1Y3Q6InBocmFzaW5nIixub3RJbkNvbnN0cnVjdDpGUnJ9XSxoYW5kbGVyczp7ZGVsZXRlOlFXZX19fWZ1bmN0aW9uIE9ScihlKXt0aGlzLmVudGVyKHt0eXBlOiJkZWxldGUiLGNoaWxkcmVuOltdfSxlKX1mdW5jdGlvbiBSUnIoZSl7dGhpcy5leGl0KGUpfWZ1bmN0aW9uIFFXZShlLHQscixpKXtsZXQgYT1yLmNyZWF0ZVRyYWNrZXIoaSksbj1yLmVudGVyKCJzdHJpa2V0aHJvdWdoIiksbz1hLm1vdmUoIn5+Iik7cmV0dXJuIG8rPXIuY29udGFpbmVyUGhyYXNpbmcoZSx7Li4uYS5jdXJyZW50KCksYmVmb3JlOm8sYWZ0ZXI6In4ifSksbys9YS5tb3ZlKCJ+fiIpLG4oKSxvfWZ1bmN0aW9uIEJScigpe3JldHVybiJ+In12YXIgRlJyLEpXZT1wKCgpPT57RlJyPVsiYXV0b2xpbmsiLCJkZXN0aW5hdGlvbkxpdGVyYWwiLCJkZXN0aW5hdGlvblJhdyIsInJlZmVyZW5jZSIsInRpdGxlUXVvdGUiLCJ0aXRsZUFwb3N0cm9waGUiXTtRV2UucGVlaz1CUnJ9KTt2YXIgS1dlPXAoKCk9PntKV2UoKX0pO2Z1bmN0aW9uIEhScihlKXtyZXR1cm4gZS5sZW5ndGh9ZnVuY3Rpb24gdEdlKGUsdCl7bGV0IHI9dHx8e30saT0oci5hbGlnbnx8W10pLmNvbmNhdCgpLGE9ci5zdHJpbmdMZW5ndGh8fEhScixuPVtdLG89W10scz1bXSxsPVtdLGM9MCx1PS0xO2Zvcig7Kyt1PGUubGVuZ3RoOyl7bGV0IHY9W10sYj1bXSx5PS0xO2ZvcihlW3VdLmxlbmd0aD5jJiYoYz1lW3VdLmxlbmd0aCk7Kyt5PGVbdV0ubGVuZ3RoOyl7bGV0IHc9cVJyKGVbdV1beV0pO2lmKHIuYWxpZ25EZWxpbWl0ZXJzIT09ITEpe2xldCBrPWEodyk7Ylt5XT1rLChsW3ldPT09dm9pZCAwfHxrPmxbeV0pJiYobFt5XT1rKX12LnB1c2godyl9b1t1XT12LHNbdV09Yn1sZXQgZD0tMTtpZih0eXBlb2YgaT09Im9iamVjdCImJiJsZW5ndGgiaW4gaSlmb3IoOysrZDxjOyluW2RdPWVHZShpW2RdKTtlbHNle2xldCB2PWVHZShpKTtmb3IoOysrZDxjOyluW2RdPXZ9ZD0tMTtsZXQgaD1bXSxmPVtdO2Zvcig7KytkPGM7KXtsZXQgdj1uW2RdLGI9IiIseT0iIjt2PT09OTk/KGI9IjoiLHk9IjoiKTp2PT09MTA4P2I9IjoiOnY9PT0xMTQmJih5PSI6Iik7bGV0IHc9ci5hbGlnbkRlbGltaXRlcnM9PT0hMT8xOk1hdGgubWF4KDEsbFtkXS1iLmxlbmd0aC15Lmxlbmd0aCksaz1iKyItIi5yZXBlYXQodykreTtyLmFsaWduRGVsaW1pdGVycyE9PSExJiYodz1iLmxlbmd0aCt3K3kubGVuZ3RoLHc+bFtkXSYmKGxbZF09dyksZltkXT13KSxoW2RdPWt9by5zcGxpY2UoMSwwLGgpLHMuc3BsaWNlKDEsMCxmKSx1PS0xO2xldCB4PVtdO2Zvcig7Kyt1PG8ubGVuZ3RoOyl7bGV0IHY9b1t1XSxiPXNbdV07ZD0tMTtsZXQgeT1bXTtmb3IoOysrZDxjOyl7bGV0IHc9dltkXXx8IiIsaz0iIixPPSIiO2lmKHIuYWxpZ25EZWxpbWl0ZXJzIT09ITEpe2xldCB6PWxbZF0tKGJbZF18fDApLE09bltkXTtNPT09MTE0P2s9IiAiLnJlcGVhdCh6KTpNPT09OTk/eiUyPyhrPSIgIi5yZXBlYXQoei8yKy41KSxPPSIgIi5yZXBlYXQoei8yLS41KSk6KGs9IiAiLnJlcGVhdCh6LzIpLE89ayk6Tz0iICIucmVwZWF0KHopfXIuZGVsaW1pdGVyU3RhcnQhPT0hMSYmIWQmJnkucHVzaCgifCIpLHIucGFkZGluZyE9PSExJiYhKHIuYWxpZ25EZWxpbWl0ZXJzPT09ITEmJnc9PT0iIikmJihyLmRlbGltaXRlclN0YXJ0IT09ITF8fGQpJiZ5LnB1c2goIiAiKSxyLmFsaWduRGVsaW1pdGVycyE9PSExJiZ5LnB1c2goaykseS5wdXNoKHcpLHIuYWxpZ25EZWxpbWl0ZXJzIT09ITEmJnkucHVzaChPKSxyLnBhZGRpbmchPT0hMSYmeS5wdXNoKCIgIiksKHIuZGVsaW1pdGVyRW5kIT09ITF8fGQhPT1jLTEpJiZ5LnB1c2goInwiKX14LnB1c2goci5kZWxpbWl0ZXJFbmQ9PT0hMT95LmpvaW4oIiIpLnJlcGxhY2UoLyArJC8sIiIpOnkuam9pbigiIikpfXJldHVybiB4LmpvaW4oYApgKX1mdW5jdGlvbiBxUnIoZSl7cmV0dXJuIGU9PW51bGw/IiI6U3RyaW5nKGUpfWZ1bmN0aW9uIGVHZShlKXtsZXQgdD10eXBlb2YgZT09InN0cmluZyI/ZS5jb2RlUG9pbnRBdCgwKTowO3JldHVybiB0PT09Njd8fHQ9PT05OT85OTp0PT09NzZ8fHQ9PT0xMDg/MTA4OnQ9PT04Mnx8dD09PTExND8xMTQ6MH12YXIgckdlPXAoKCk9Pnt9KTtmdW5jdGlvbiBrXyhlLHQpe2xldCByPXR8fHt9O2Z1bmN0aW9uIGkoYSwuLi5uKXtsZXQgbz1pLmludmFsaWQscz1pLmhhbmRsZXJzO2lmKGEmJmlHZS5jYWxsKGEsZSkpe2xldCBsPVN0cmluZyhhW2VdKTtvPWlHZS5jYWxsKHMsbCk/c1tsXTppLnVua25vd259aWYobylyZXR1cm4gby5jYWxsKHRoaXMsYSwuLi5uKX1yZXR1cm4gaS5oYW5kbGVycz1yLmhhbmRsZXJzfHx7fSxpLmludmFsaWQ9ci5pbnZhbGlkLGkudW5rbm93bj1yLnVua25vd24saX12YXIgaUdlLEdlZT1wKCgpPT57aUdlPXt9Lmhhc093blByb3BlcnR5fSk7ZnVuY3Rpb24gWWVlKGUsdCl7bGV0IHI9LTEsaTtpZih0LmV4dGVuc2lvbnMpZm9yKDsrK3I8dC5leHRlbnNpb25zLmxlbmd0aDspWWVlKGUsdC5leHRlbnNpb25zW3JdKTtmb3IoaSBpbiB0KWlmKGpSci5jYWxsKHQsaSkpc3dpdGNoKGkpe2Nhc2UiZXh0ZW5zaW9ucyI6YnJlYWs7Y2FzZSJ1bnNhZmUiOnthR2UoZVtpXSx0W2ldKTticmVha31jYXNlImpvaW4iOnthR2UoZVtpXSx0W2ldKTticmVha31jYXNlImhhbmRsZXJzIjp7VlJyKGVbaV0sdFtpXSk7YnJlYWt9ZGVmYXVsdDplLm9wdGlvbnNbaV09dFtpXX1yZXR1cm4gZX1mdW5jdGlvbiBhR2UoZSx0KXt0JiZlLnB1c2goLi4udCl9ZnVuY3Rpb24gVlJyKGUsdCl7dCYmT2JqZWN0LmFzc2lnbihlLHQpfXZhciBqUnIsbkdlPXAoKCk9PntqUnI9e30uaGFzT3duUHJvcGVydHl9KTtmdW5jdGlvbiBvR2UoZSx0LHIsaSl7bGV0IGE9ci5lbnRlcigiYmxvY2txdW90ZSIpLG49ci5jcmVhdGVUcmFja2VyKGkpO24ubW92ZSgiPiAiKSxuLnNoaWZ0KDIpO2xldCBvPXIuaW5kZW50TGluZXMoci5jb250YWluZXJGbG93KGUsbi5jdXJyZW50KCkpLFVScik7cmV0dXJuIGEoKSxvfWZ1bmN0aW9uIFVScihlLHQscil7cmV0dXJuIj4iKyhyPyIiOiIgIikrZX12YXIgc0dlPXAoKCk9Pnt9KTtmdW5jdGlvbiBTXyhlLHQpe3JldHVybiBsR2UoZSx0LmluQ29uc3RydWN0LCEwKSYmIWxHZShlLHQubm90SW5Db25zdHJ1Y3QsITEpfWZ1bmN0aW9uIGxHZShlLHQscil7aWYodHlwZW9mIHQ9PSJzdHJpbmciJiYodD1bdF0pLCF0fHx0Lmxlbmd0aD09PTApcmV0dXJuIHI7bGV0IGk9LTE7Zm9yKDsrK2k8dC5sZW5ndGg7KWlmKGUuaW5jbHVkZXModFtpXSkpcmV0dXJuITA7cmV0dXJuITF9dmFyIFplZT1wKCgpPT57fSk7ZnVuY3Rpb24gWGVlKGUsdCxyLGkpe2xldCBhPS0xO2Zvcig7KythPHIudW5zYWZlLmxlbmd0aDspaWYoci51bnNhZmVbYV0uY2hhcmFjdGVyPT09YApgJiZTXyhyLnN0YWNrLHIudW5zYWZlW2FdKSlyZXR1cm4vWyBcdF0vLnRlc3QoaS5iZWZvcmUpPyIiOiIgIjtyZXR1cm5gXFwKYH12YXIgY0dlPXAoKCk9PntaZWUoKX0pO2Z1bmN0aW9uIGRHZShlLHQpe2xldCByPVN0cmluZyhlKSxpPXIuaW5kZXhPZih0KSxhPWksbj0wLG89MDtpZih0eXBlb2YgdCE9InN0cmluZyIpdGhyb3cgbmV3IFR5cGVFcnJvcigiRXhwZWN0ZWQgc3Vic3RyaW5nIik7Zm9yKDtpIT09LTE7KWk9PT1hPysrbj5vJiYobz1uKTpuPTEsYT1pK3QubGVuZ3RoLGk9ci5pbmRleE9mKHQsYSk7cmV0dXJuIG99dmFyIHVHZT1wKCgpPT57fSk7ZnVuY3Rpb24gJDkoZSx0KXtyZXR1cm4hISh0Lm9wdGlvbnMuZmVuY2VzPT09ITEmJmUudmFsdWUmJiFlLmxhbmcmJi9bXiBcclxuXS8udGVzdChlLnZhbHVlKSYmIS9eW1x0IF0qKD86W1xyXG5dfCQpfCg/Ol58W1xyXG5dKVtcdCBdKiQvLnRlc3QoZS52YWx1ZSkpfXZhciBRZWU9cCgoKT0+e30pO2Z1bmN0aW9uIHBHZShlKXtsZXQgdD1lLm9wdGlvbnMuZmVuY2V8fCJgIjtpZih0IT09ImAiJiZ0IT09In4iKXRocm93IG5ldyBFcnJvcigiQ2Fubm90IHNlcmlhbGl6ZSBjb2RlIHdpdGggYCIrdCsiYCBmb3IgYG9wdGlvbnMuZmVuY2VgLCBleHBlY3RlZCBgYCBgIGBgIG9yIGB+YCIpO3JldHVybiB0fXZhciBoR2U9cCgoKT0+e30pO2Z1bmN0aW9uIGZHZShlLHQscixpKXtsZXQgYT1wR2Uociksbj1lLnZhbHVlfHwiIixvPWE9PT0iYCI/IkdyYXZlQWNjZW50IjoiVGlsZGUiO2lmKCQ5KGUscikpe2xldCBkPXIuZW50ZXIoImNvZGVJbmRlbnRlZCIpLGg9ci5pbmRlbnRMaW5lcyhuLFdScik7cmV0dXJuIGQoKSxofWxldCBzPXIuY3JlYXRlVHJhY2tlcihpKSxsPWEucmVwZWF0KE1hdGgubWF4KGRHZShuLGEpKzEsMykpLGM9ci5lbnRlcigiY29kZUZlbmNlZCIpLHU9cy5tb3ZlKGwpO2lmKGUubGFuZyl7bGV0IGQ9ci5lbnRlcihgY29kZUZlbmNlZExhbmcke299YCk7dSs9cy5tb3ZlKHIuc2FmZShlLmxhbmcse2JlZm9yZTp1LGFmdGVyOiIgIixlbmNvZGU6WyJgIl0sLi4ucy5jdXJyZW50KCl9KSksZCgpfWlmKGUubGFuZyYmZS5tZXRhKXtsZXQgZD1yLmVudGVyKGBjb2RlRmVuY2VkTWV0YSR7b31gKTt1Kz1zLm1vdmUoIiAiKSx1Kz1zLm1vdmUoci5zYWZlKGUubWV0YSx7YmVmb3JlOnUsYWZ0ZXI6YApgLGVuY29kZTpbImAiXSwuLi5zLmN1cnJlbnQoKX0pKSxkKCl9cmV0dXJuIHUrPXMubW92ZShgCmApLG4mJih1Kz1zLm1vdmUobitgCmApKSx1Kz1zLm1vdmUobCksYygpLHV9ZnVuY3Rpb24gV1JyKGUsdCxyKXtyZXR1cm4ocj8iIjoiICAgICIpK2V9dmFyIG1HZT1wKCgpPT57dUdlKCk7UWVlKCk7aEdlKCl9KTtmdW5jdGlvbiBvcChlKXtsZXQgdD1lLm9wdGlvbnMucXVvdGV8fCciJztpZih0IT09JyInJiZ0IT09IiciKXRocm93IG5ldyBFcnJvcigiQ2Fubm90IHNlcmlhbGl6ZSB0aXRsZSB3aXRoIGAiK3QrImAgZm9yIGBvcHRpb25zLnF1b3RlYCwgZXhwZWN0ZWQgYFwiYCwgb3IgYCdgIik7cmV0dXJuIHR9dmFyIHpfPXAoKCk9Pnt9KTtmdW5jdGlvbiBnR2UoZSx0LHIsaSl7bGV0IGE9b3Aociksbj1hPT09JyInPyJRdW90ZSI6IkFwb3N0cm9waGUiLG89ci5lbnRlcigiZGVmaW5pdGlvbiIpLHM9ci5lbnRlcigibGFiZWwiKSxsPXIuY3JlYXRlVHJhY2tlcihpKSxjPWwubW92ZSgiWyIpO3JldHVybiBjKz1sLm1vdmUoci5zYWZlKHIuYXNzb2NpYXRpb25JZChlKSx7YmVmb3JlOmMsYWZ0ZXI6Il0iLC4uLmwuY3VycmVudCgpfSkpLGMrPWwubW92ZSgiXTogIikscygpLCFlLnVybHx8L1tcMC0gXHUwMDdGXS8udGVzdChlLnVybCk/KHM9ci5lbnRlcigiZGVzdGluYXRpb25MaXRlcmFsIiksYys9bC5tb3ZlKCI8IiksYys9bC5tb3ZlKHIuc2FmZShlLnVybCx7YmVmb3JlOmMsYWZ0ZXI6Ij4iLC4uLmwuY3VycmVudCgpfSkpLGMrPWwubW92ZSgiPiIpKToocz1yLmVudGVyKCJkZXN0aW5hdGlvblJhdyIpLGMrPWwubW92ZShyLnNhZmUoZS51cmwse2JlZm9yZTpjLGFmdGVyOmUudGl0bGU/IiAiOmAKYCwuLi5sLmN1cnJlbnQoKX0pKSkscygpLGUudGl0bGUmJihzPXIuZW50ZXIoYHRpdGxlJHtufWApLGMrPWwubW92ZSgiICIrYSksYys9bC5tb3ZlKHIuc2FmZShlLnRpdGxlLHtiZWZvcmU6YyxhZnRlcjphLC4uLmwuY3VycmVudCgpfSkpLGMrPWwubW92ZShhKSxzKCkpLG8oKSxjfXZhciBiR2U9cCgoKT0+e3pfKCl9KTtmdW5jdGlvbiB2R2UoZSl7bGV0IHQ9ZS5vcHRpb25zLmVtcGhhc2lzfHwiKiI7aWYodCE9PSIqIiYmdCE9PSJfIil0aHJvdyBuZXcgRXJyb3IoIkNhbm5vdCBzZXJpYWxpemUgZW1waGFzaXMgd2l0aCBgIit0KyJgIGZvciBgb3B0aW9ucy5lbXBoYXNpc2AsIGV4cGVjdGVkIGAqYCwgb3IgYF9gIik7cmV0dXJuIHR9dmFyIHhHZT1wKCgpPT57fSk7ZnVuY3Rpb24gVW4oZSl7cmV0dXJuIiYjeCIrZS50b1N0cmluZygxNikudG9VcHBlckNhc2UoKSsiOyJ9dmFyIHNwPXAoKCk9Pnt9KTtmdW5jdGlvbiBhYyhlKXtpZihlPT09bnVsbHx8SnQoZSl8fFZzKGUpKXJldHVybiAxO2lmKGFkKGUpKXJldHVybiAyfXZhciBDXz1wKCgpPT57cnIoKX0pO2Z1bmN0aW9uIGxwKGUsdCxyKXtsZXQgaT1hYyhlKSxhPWFjKHQpO3JldHVybiBpPT09dm9pZCAwP2E9PT12b2lkIDA/cj09PSJfIj97aW5zaWRlOiEwLG91dHNpZGU6ITB9OntpbnNpZGU6ITEsb3V0c2lkZTohMX06YT09PTE/e2luc2lkZTohMCxvdXRzaWRlOiEwfTp7aW5zaWRlOiExLG91dHNpZGU6ITB9Omk9PT0xP2E9PT12b2lkIDA/e2luc2lkZTohMSxvdXRzaWRlOiExfTphPT09MT97aW5zaWRlOiEwLG91dHNpZGU6ITB9OntpbnNpZGU6ITEsb3V0c2lkZTohMX06YT09PXZvaWQgMD97aW5zaWRlOiExLG91dHNpZGU6ITF9OmE9PT0xP3tpbnNpZGU6ITAsb3V0c2lkZTohMX06e2luc2lkZTohMSxvdXRzaWRlOiExfX12YXIgSmVlPXAoKCk9PntDXygpfSk7ZnVuY3Rpb24gS2VlKGUsdCxyLGkpe2xldCBhPXZHZShyKSxuPXIuZW50ZXIoImVtcGhhc2lzIiksbz1yLmNyZWF0ZVRyYWNrZXIoaSkscz1vLm1vdmUoYSksbD1vLm1vdmUoci5jb250YWluZXJQaHJhc2luZyhlLHthZnRlcjphLGJlZm9yZTpzLC4uLm8uY3VycmVudCgpfSkpLGM9bC5jaGFyQ29kZUF0KDApLHU9bHAoaS5iZWZvcmUuY2hhckNvZGVBdChpLmJlZm9yZS5sZW5ndGgtMSksYyxhKTt1Lmluc2lkZSYmKGw9VW4oYykrbC5zbGljZSgxKSk7bGV0IGQ9bC5jaGFyQ29kZUF0KGwubGVuZ3RoLTEpLGg9bHAoaS5hZnRlci5jaGFyQ29kZUF0KDApLGQsYSk7aC5pbnNpZGUmJihsPWwuc2xpY2UoMCwtMSkrVW4oZCkpO2xldCBmPW8ubW92ZShhKTtyZXR1cm4gbigpLHIuYXR0ZW50aW9uRW5jb2RlU3Vycm91bmRpbmdJbmZvPXthZnRlcjpoLm91dHNpZGUsYmVmb3JlOnUub3V0c2lkZX0scytsK2Z9ZnVuY3Rpb24gR1JyKGUsdCxyKXtyZXR1cm4gci5vcHRpb25zLmVtcGhhc2lzfHwiKiJ9dmFyIHlHZT1wKCgpPT57eEdlKCk7c3AoKTtKZWUoKTtLZWUucGVlaz1HUnJ9KTtmdW5jdGlvbiBJOShlLHQscixpKXtsZXQgYSxuLG87dHlwZW9mIHQ9PSJmdW5jdGlvbiImJnR5cGVvZiByIT0iZnVuY3Rpb24iPyhuPXZvaWQgMCxvPXQsYT1yKToobj10LG89cixhPWkpLEU5KGUsbixzLGEpO2Z1bmN0aW9uIHMobCxjKXtsZXQgdT1jW2MubGVuZ3RoLTFdLGQ9dT91LmNoaWxkcmVuLmluZGV4T2YobCk6dm9pZCAwO3JldHVybiBvKGwsZCx1KX19dmFyIHdHZT1wKCgpPT57TV8oKTtNXygpfSk7dmFyIGV0ZT1wKCgpPT57d0dlKCl9KTtmdW5jdGlvbiBvZChlLHQpe2xldCByPXR8fFlScixpPXR5cGVvZiByLmluY2x1ZGVJbWFnZUFsdD09ImJvb2xlYW4iP3IuaW5jbHVkZUltYWdlQWx0OiEwLGE9dHlwZW9mIHIuaW5jbHVkZUh0bWw9PSJib29sZWFuIj9yLmluY2x1ZGVIdG1sOiEwO3JldHVybiBNR2UoZSxpLGEpfWZ1bmN0aW9uIE1HZShlLHQscil7aWYoWlJyKGUpKXtpZigidmFsdWUiaW4gZSlyZXR1cm4gZS50eXBlPT09Imh0bWwiJiYhcj8iIjplLnZhbHVlO2lmKHQmJiJhbHQiaW4gZSYmZS5hbHQpcmV0dXJuIGUuYWx0O2lmKCJjaGlsZHJlbiJpbiBlKXJldHVybiBrR2UoZS5jaGlsZHJlbix0LHIpfXJldHVybiBBcnJheS5pc0FycmF5KGUpP2tHZShlLHQscik6IiJ9ZnVuY3Rpb24ga0dlKGUsdCxyKXtsZXQgaT1bXSxhPS0xO2Zvcig7KythPGUubGVuZ3RoOylpW2FdPU1HZShlW2FdLHQscik7cmV0dXJuIGkuam9pbigiIil9ZnVuY3Rpb24gWlJyKGUpe3JldHVybiEhKGUmJnR5cGVvZiBlPT0ib2JqZWN0Iil9dmFyIFlScixTR2U9cCgoKT0+e1lScj17fX0pO3ZhciBUXz1wKCgpPT57U0dlKCl9KTtmdW5jdGlvbiBfXyhlLHQpe2xldCByPSExO3JldHVybiBJOShlLGZ1bmN0aW9uKGkpe2lmKCJ2YWx1ZSJpbiBpJiYvXHI/XG58XHIvLnRlc3QoaS52YWx1ZSl8fGkudHlwZT09PSJicmVhayIpcmV0dXJuIHI9ITAsbmR9KSwhISgoIWUuZGVwdGh8fGUuZGVwdGg8MykmJm9kKGUpJiYodC5vcHRpb25zLnNldGV4dHx8cikpfXZhciB0dGU9cCgoKT0+e2V0ZSgpO1RfKCl9KTtmdW5jdGlvbiB6R2UoZSx0LHIsaSl7bGV0IGE9TWF0aC5tYXgoTWF0aC5taW4oNixlLmRlcHRofHwxKSwxKSxuPXIuY3JlYXRlVHJhY2tlcihpKTtpZihfXyhlLHIpKXtsZXQgdT1yLmVudGVyKCJoZWFkaW5nU2V0ZXh0IiksZD1yLmVudGVyKCJwaHJhc2luZyIpLGg9ci5jb250YWluZXJQaHJhc2luZyhlLHsuLi5uLmN1cnJlbnQoKSxiZWZvcmU6YApgLGFmdGVyOmAKYH0pO3JldHVybiBkKCksdSgpLGgrYApgKyhhPT09MT8iPSI6Ii0iKS5yZXBlYXQoaC5sZW5ndGgtKE1hdGgubWF4KGgubGFzdEluZGV4T2YoIlxyIiksaC5sYXN0SW5kZXhPZihgCmApKSsxKSl9bGV0IG89IiMiLnJlcGVhdChhKSxzPXIuZW50ZXIoImhlYWRpbmdBdHgiKSxsPXIuZW50ZXIoInBocmFzaW5nIik7bi5tb3ZlKG8rIiAiKTtsZXQgYz1yLmNvbnRhaW5lclBocmFzaW5nKGUse2JlZm9yZToiIyAiLGFmdGVyOmAKYCwuLi5uLmN1cnJlbnQoKX0pO3JldHVybi9eW1x0IF0vLnRlc3QoYykmJihjPVVuKGMuY2hhckNvZGVBdCgwKSkrYy5zbGljZSgxKSksYz1jP28rIiAiK2M6byxyLm9wdGlvbnMuY2xvc2VBdHgmJihjKz0iICIrbyksbCgpLHMoKSxjfXZhciBDR2U9cCgoKT0+e3NwKCk7dHRlKCl9KTtmdW5jdGlvbiBydGUoZSl7cmV0dXJuIGUudmFsdWV8fCIifWZ1bmN0aW9uIFhScigpe3JldHVybiI8In12YXIgVEdlPXAoKCk9PntydGUucGVlaz1YUnJ9KTtmdW5jdGlvbiBpdGUoZSx0LHIsaSl7bGV0IGE9b3Aociksbj1hPT09JyInPyJRdW90ZSI6IkFwb3N0cm9waGUiLG89ci5lbnRlcigiaW1hZ2UiKSxzPXIuZW50ZXIoImxhYmVsIiksbD1yLmNyZWF0ZVRyYWNrZXIoaSksYz1sLm1vdmUoIiFbIik7cmV0dXJuIGMrPWwubW92ZShyLnNhZmUoZS5hbHQse2JlZm9yZTpjLGFmdGVyOiJdIiwuLi5sLmN1cnJlbnQoKX0pKSxjKz1sLm1vdmUoIl0oIikscygpLCFlLnVybCYmZS50aXRsZXx8L1tcMC0gXHUwMDdGXS8udGVzdChlLnVybCk/KHM9ci5lbnRlcigiZGVzdGluYXRpb25MaXRlcmFsIiksYys9bC5tb3ZlKCI8IiksYys9bC5tb3ZlKHIuc2FmZShlLnVybCx7YmVmb3JlOmMsYWZ0ZXI6Ij4iLC4uLmwuY3VycmVudCgpfSkpLGMrPWwubW92ZSgiPiIpKToocz1yLmVudGVyKCJkZXN0aW5hdGlvblJhdyIpLGMrPWwubW92ZShyLnNhZmUoZS51cmwse2JlZm9yZTpjLGFmdGVyOmUudGl0bGU/IiAiOiIpIiwuLi5sLmN1cnJlbnQoKX0pKSkscygpLGUudGl0bGUmJihzPXIuZW50ZXIoYHRpdGxlJHtufWApLGMrPWwubW92ZSgiICIrYSksYys9bC5tb3ZlKHIuc2FmZShlLnRpdGxlLHtiZWZvcmU6YyxhZnRlcjphLC4uLmwuY3VycmVudCgpfSkpLGMrPWwubW92ZShhKSxzKCkpLGMrPWwubW92ZSgiKSIpLG8oKSxjfWZ1bmN0aW9uIFFScigpe3JldHVybiIhIn12YXIgX0dlPXAoKCk9Pnt6XygpO2l0ZS5wZWVrPVFScn0pO2Z1bmN0aW9uIGF0ZShlLHQscixpKXtsZXQgYT1lLnJlZmVyZW5jZVR5cGUsbj1yLmVudGVyKCJpbWFnZVJlZmVyZW5jZSIpLG89ci5lbnRlcigibGFiZWwiKSxzPXIuY3JlYXRlVHJhY2tlcihpKSxsPXMubW92ZSgiIVsiKSxjPXIuc2FmZShlLmFsdCx7YmVmb3JlOmwsYWZ0ZXI6Il0iLC4uLnMuY3VycmVudCgpfSk7bCs9cy5tb3ZlKGMrIl1bIiksbygpO2xldCB1PXIuc3RhY2s7ci5zdGFjaz1bXSxvPXIuZW50ZXIoInJlZmVyZW5jZSIpO2xldCBkPXIuc2FmZShyLmFzc29jaWF0aW9uSWQoZSkse2JlZm9yZTpsLGFmdGVyOiJdIiwuLi5zLmN1cnJlbnQoKX0pO3JldHVybiBvKCksci5zdGFjaz11LG4oKSxhPT09ImZ1bGwifHwhY3x8YyE9PWQ/bCs9cy5tb3ZlKGQrIl0iKTphPT09InNob3J0Y3V0Ij9sPWwuc2xpY2UoMCwtMSk6bCs9cy5tb3ZlKCJdIiksbH1mdW5jdGlvbiBKUnIoKXtyZXR1cm4iISJ9dmFyIExHZT1wKCgpPT57YXRlLnBlZWs9SlJyfSk7ZnVuY3Rpb24gbnRlKGUsdCxyKXtsZXQgaT1lLnZhbHVlfHwiIixhPSJgIixuPS0xO2Zvcig7bmV3IFJlZ0V4cCgiKF58W15gXSkiK2ErIihbXmBdfCQpIikudGVzdChpKTspYSs9ImAiO2ZvcigvW14gXHJcbl0vLnRlc3QoaSkmJigvXlsgXHJcbl0vLnRlc3QoaSkmJi9bIFxyXG5dJC8udGVzdChpKXx8L15gfGAkLy50ZXN0KGkpKSYmKGk9IiAiK2krIiAiKTsrK248ci51bnNhZmUubGVuZ3RoOyl7bGV0IG89ci51bnNhZmVbbl0scz1yLmNvbXBpbGVQYXR0ZXJuKG8pLGw7aWYoby5hdEJyZWFrKWZvcig7bD1zLmV4ZWMoaSk7KXtsZXQgYz1sLmluZGV4O2kuY2hhckNvZGVBdChjKT09PTEwJiZpLmNoYXJDb2RlQXQoYy0xKT09PTEzJiZjLS0saT1pLnNsaWNlKDAsYykrIiAiK2kuc2xpY2UobC5pbmRleCsxKX19cmV0dXJuIGEraSthfWZ1bmN0aW9uIEtScigpe3JldHVybiJgIn12YXIgQUdlPXAoKCk9PntudGUucGVlaz1LUnJ9KTtmdW5jdGlvbiBvdGUoZSx0KXtsZXQgcj1vZChlKTtyZXR1cm4hISghdC5vcHRpb25zLnJlc291cmNlTGluayYmZS51cmwmJiFlLnRpdGxlJiZlLmNoaWxkcmVuJiZlLmNoaWxkcmVuLmxlbmd0aD09PTEmJmUuY2hpbGRyZW5bMF0udHlwZT09PSJ0ZXh0IiYmKHI9PT1lLnVybHx8Im1haWx0bzoiK3I9PT1lLnVybCkmJi9eW2Etel1bYS16Ky4tXSs6L2kudGVzdChlLnVybCkmJiEvW1wwLSA8Plx1MDA3Rl0vLnRlc3QoZS51cmwpKX12YXIgREdlPXAoKCk9PntUXygpfSk7ZnVuY3Rpb24gc3RlKGUsdCxyLGkpe2xldCBhPW9wKHIpLG49YT09PSciJz8iUXVvdGUiOiJBcG9zdHJvcGhlIixvPXIuY3JlYXRlVHJhY2tlcihpKSxzLGw7aWYob3RlKGUscikpe2xldCB1PXIuc3RhY2s7ci5zdGFjaz1bXSxzPXIuZW50ZXIoImF1dG9saW5rIik7bGV0IGQ9by5tb3ZlKCI8Iik7cmV0dXJuIGQrPW8ubW92ZShyLmNvbnRhaW5lclBocmFzaW5nKGUse2JlZm9yZTpkLGFmdGVyOiI+IiwuLi5vLmN1cnJlbnQoKX0pKSxkKz1vLm1vdmUoIj4iKSxzKCksci5zdGFjaz11LGR9cz1yLmVudGVyKCJsaW5rIiksbD1yLmVudGVyKCJsYWJlbCIpO2xldCBjPW8ubW92ZSgiWyIpO3JldHVybiBjKz1vLm1vdmUoci5jb250YWluZXJQaHJhc2luZyhlLHtiZWZvcmU6YyxhZnRlcjoiXSgiLC4uLm8uY3VycmVudCgpfSkpLGMrPW8ubW92ZSgiXSgiKSxsKCksIWUudXJsJiZlLnRpdGxlfHwvW1wwLSBcdTAwN0ZdLy50ZXN0KGUudXJsKT8obD1yLmVudGVyKCJkZXN0aW5hdGlvbkxpdGVyYWwiKSxjKz1vLm1vdmUoIjwiKSxjKz1vLm1vdmUoci5zYWZlKGUudXJsLHtiZWZvcmU6YyxhZnRlcjoiPiIsLi4uby5jdXJyZW50KCl9KSksYys9by5tb3ZlKCI+IikpOihsPXIuZW50ZXIoImRlc3RpbmF0aW9uUmF3IiksYys9by5tb3ZlKHIuc2FmZShlLnVybCx7YmVmb3JlOmMsYWZ0ZXI6ZS50aXRsZT8iICI6IikiLC4uLm8uY3VycmVudCgpfSkpKSxsKCksZS50aXRsZSYmKGw9ci5lbnRlcihgdGl0bGUke259YCksYys9by5tb3ZlKCIgIithKSxjKz1vLm1vdmUoci5zYWZlKGUudGl0bGUse2JlZm9yZTpjLGFmdGVyOmEsLi4uby5jdXJyZW50KCl9KSksYys9by5tb3ZlKGEpLGwoKSksYys9by5tb3ZlKCIpIikscygpLGN9ZnVuY3Rpb24gZUJyKGUsdCxyKXtyZXR1cm4gb3RlKGUscik/IjwiOiJbIn12YXIgRUdlPXAoKCk9Pnt6XygpO0RHZSgpO3N0ZS5wZWVrPWVCcn0pO2Z1bmN0aW9uIGx0ZShlLHQscixpKXtsZXQgYT1lLnJlZmVyZW5jZVR5cGUsbj1yLmVudGVyKCJsaW5rUmVmZXJlbmNlIiksbz1yLmVudGVyKCJsYWJlbCIpLHM9ci5jcmVhdGVUcmFja2VyKGkpLGw9cy5tb3ZlKCJbIiksYz1yLmNvbnRhaW5lclBocmFzaW5nKGUse2JlZm9yZTpsLGFmdGVyOiJdIiwuLi5zLmN1cnJlbnQoKX0pO2wrPXMubW92ZShjKyJdWyIpLG8oKTtsZXQgdT1yLnN0YWNrO3Iuc3RhY2s9W10sbz1yLmVudGVyKCJyZWZlcmVuY2UiKTtsZXQgZD1yLnNhZmUoci5hc3NvY2lhdGlvbklkKGUpLHtiZWZvcmU6bCxhZnRlcjoiXSIsLi4ucy5jdXJyZW50KCl9KTtyZXR1cm4gbygpLHIuc3RhY2s9dSxuKCksYT09PSJmdWxsInx8IWN8fGMhPT1kP2wrPXMubW92ZShkKyJdIik6YT09PSJzaG9ydGN1dCI/bD1sLnNsaWNlKDAsLTEpOmwrPXMubW92ZSgiXSIpLGx9ZnVuY3Rpb24gdEJyKCl7cmV0dXJuIlsifXZhciAkR2U9cCgoKT0+e2x0ZS5wZWVrPXRCcn0pO2Z1bmN0aW9uIGNwKGUpe2xldCB0PWUub3B0aW9ucy5idWxsZXR8fCIqIjtpZih0IT09IioiJiZ0IT09IisiJiZ0IT09Ii0iKXRocm93IG5ldyBFcnJvcigiQ2Fubm90IHNlcmlhbGl6ZSBpdGVtcyB3aXRoIGAiK3QrImAgZm9yIGBvcHRpb25zLmJ1bGxldGAsIGV4cGVjdGVkIGAqYCwgYCtgLCBvciBgLWAiKTtyZXR1cm4gdH12YXIgTF89cCgoKT0+e30pO2Z1bmN0aW9uIElHZShlKXtsZXQgdD1jcChlKSxyPWUub3B0aW9ucy5idWxsZXRPdGhlcjtpZighcilyZXR1cm4gdD09PSIqIj8iLSI6IioiO2lmKHIhPT0iKiImJnIhPT0iKyImJnIhPT0iLSIpdGhyb3cgbmV3IEVycm9yKCJDYW5ub3Qgc2VyaWFsaXplIGl0ZW1zIHdpdGggYCIrcisiYCBmb3IgYG9wdGlvbnMuYnVsbGV0T3RoZXJgLCBleHBlY3RlZCBgKmAsIGArYCwgb3IgYC1gIik7aWYocj09PXQpdGhyb3cgbmV3IEVycm9yKCJFeHBlY3RlZCBgYnVsbGV0YCAoYCIrdCsiYCkgYW5kIGBidWxsZXRPdGhlcmAgKGAiK3IrImApIHRvIGJlIGRpZmZlcmVudCIpO3JldHVybiByfXZhciBQR2U9cCgoKT0+e0xfKCl9KTtmdW5jdGlvbiBOR2UoZSl7bGV0IHQ9ZS5vcHRpb25zLmJ1bGxldE9yZGVyZWR8fCIuIjtpZih0IT09Ii4iJiZ0IT09IikiKXRocm93IG5ldyBFcnJvcigiQ2Fubm90IHNlcmlhbGl6ZSBpdGVtcyB3aXRoIGAiK3QrImAgZm9yIGBvcHRpb25zLmJ1bGxldE9yZGVyZWRgLCBleHBlY3RlZCBgLmAgb3IgYClgIik7cmV0dXJuIHR9dmFyIEZHZT1wKCgpPT57fSk7ZnVuY3Rpb24gQV8oZSl7bGV0IHQ9ZS5vcHRpb25zLnJ1bGV8fCIqIjtpZih0IT09IioiJiZ0IT09Ii0iJiZ0IT09Il8iKXRocm93IG5ldyBFcnJvcigiQ2Fubm90IHNlcmlhbGl6ZSBydWxlcyB3aXRoIGAiK3QrImAgZm9yIGBvcHRpb25zLnJ1bGVgLCBleHBlY3RlZCBgKmAsIGAtYCwgb3IgYF9gIik7cmV0dXJuIHR9dmFyIGN0ZT1wKCgpPT57fSk7ZnVuY3Rpb24gT0dlKGUsdCxyLGkpe2xldCBhPXIuZW50ZXIoImxpc3QiKSxuPXIuYnVsbGV0Q3VycmVudCxvPWUub3JkZXJlZD9OR2Uocik6Y3Aocikscz1lLm9yZGVyZWQ/bz09PSIuIj8iKSI6Ii4iOklHZShyKSxsPXQmJnIuYnVsbGV0TGFzdFVzZWQ/bz09PXIuYnVsbGV0TGFzdFVzZWQ6ITE7aWYoIWUub3JkZXJlZCl7bGV0IHU9ZS5jaGlsZHJlbj9lLmNoaWxkcmVuWzBdOnZvaWQgMDtpZigobz09PSIqInx8bz09PSItIikmJnUmJighdS5jaGlsZHJlbnx8IXUuY2hpbGRyZW5bMF0pJiZyLnN0YWNrW3Iuc3RhY2subGVuZ3RoLTFdPT09Imxpc3QiJiZyLnN0YWNrW3Iuc3RhY2subGVuZ3RoLTJdPT09Imxpc3RJdGVtIiYmci5zdGFja1tyLnN0YWNrLmxlbmd0aC0zXT09PSJsaXN0IiYmci5zdGFja1tyLnN0YWNrLmxlbmd0aC00XT09PSJsaXN0SXRlbSImJnIuaW5kZXhTdGFja1tyLmluZGV4U3RhY2subGVuZ3RoLTFdPT09MCYmci5pbmRleFN0YWNrW3IuaW5kZXhTdGFjay5sZW5ndGgtMl09PT0wJiZyLmluZGV4U3RhY2tbci5pbmRleFN0YWNrLmxlbmd0aC0zXT09PTAmJihsPSEwKSxBXyhyKT09PW8mJnUpe2xldCBkPS0xO2Zvcig7KytkPGUuY2hpbGRyZW4ubGVuZ3RoOyl7bGV0IGg9ZS5jaGlsZHJlbltkXTtpZihoJiZoLnR5cGU9PT0ibGlzdEl0ZW0iJiZoLmNoaWxkcmVuJiZoLmNoaWxkcmVuWzBdJiZoLmNoaWxkcmVuWzBdLnR5cGU9PT0idGhlbWF0aWNCcmVhayIpe2w9ITA7YnJlYWt9fX19bCYmKG89cyksci5idWxsZXRDdXJyZW50PW87bGV0IGM9ci5jb250YWluZXJGbG93KGUsaSk7cmV0dXJuIHIuYnVsbGV0TGFzdFVzZWQ9byxyLmJ1bGxldEN1cnJlbnQ9bixhKCksY312YXIgUkdlPXAoKCk9PntMXygpO1BHZSgpO0ZHZSgpO2N0ZSgpfSk7ZnVuY3Rpb24gQkdlKGUpe2xldCB0PWUub3B0aW9ucy5saXN0SXRlbUluZGVudHx8Im9uZSI7aWYodCE9PSJ0YWIiJiZ0IT09Im9uZSImJnQhPT0ibWl4ZWQiKXRocm93IG5ldyBFcnJvcigiQ2Fubm90IHNlcmlhbGl6ZSBpdGVtcyB3aXRoIGAiK3QrImAgZm9yIGBvcHRpb25zLmxpc3RJdGVtSW5kZW50YCwgZXhwZWN0ZWQgYHRhYmAsIGBvbmVgLCBvciBgbWl4ZWRgIik7cmV0dXJuIHR9dmFyIEhHZT1wKCgpPT57fSk7ZnVuY3Rpb24gcUdlKGUsdCxyLGkpe2xldCBhPUJHZShyKSxuPXIuYnVsbGV0Q3VycmVudHx8Y3Aocik7dCYmdC50eXBlPT09Imxpc3QiJiZ0Lm9yZGVyZWQmJihuPSh0eXBlb2YgdC5zdGFydD09Im51bWJlciImJnQuc3RhcnQ+LTE/dC5zdGFydDoxKSsoci5vcHRpb25zLmluY3JlbWVudExpc3RNYXJrZXI9PT0hMT8wOnQuY2hpbGRyZW4uaW5kZXhPZihlKSkrbik7bGV0IG89bi5sZW5ndGgrMTsoYT09PSJ0YWIifHxhPT09Im1peGVkIiYmKHQmJnQudHlwZT09PSJsaXN0IiYmdC5zcHJlYWR8fGUuc3ByZWFkKSkmJihvPU1hdGguY2VpbChvLzQpKjQpO2xldCBzPXIuY3JlYXRlVHJhY2tlcihpKTtzLm1vdmUobisiICIucmVwZWF0KG8tbi5sZW5ndGgpKSxzLnNoaWZ0KG8pO2xldCBsPXIuZW50ZXIoImxpc3RJdGVtIiksYz1yLmluZGVudExpbmVzKHIuY29udGFpbmVyRmxvdyhlLHMuY3VycmVudCgpKSx1KTtyZXR1cm4gbCgpLGM7ZnVuY3Rpb24gdShkLGgsZil7cmV0dXJuIGg/KGY/IiI6IiAiLnJlcGVhdChvKSkrZDooZj9uOm4rIiAiLnJlcGVhdChvLW4ubGVuZ3RoKSkrZH19dmFyIGpHZT1wKCgpPT57TF8oKTtIR2UoKX0pO2Z1bmN0aW9uIFZHZShlLHQscixpKXtsZXQgYT1yLmVudGVyKCJwYXJhZ3JhcGgiKSxuPXIuZW50ZXIoInBocmFzaW5nIiksbz1yLmNvbnRhaW5lclBocmFzaW5nKGUsaSk7cmV0dXJuIG4oKSxhKCksb312YXIgVUdlPXAoKCk9Pnt9KTt2YXIgZHRlLFdHZT1wKCgpPT57eF8oKTtkdGU9aWMoWyJicmVhayIsImRlbGV0ZSIsImVtcGhhc2lzIiwiZm9vdG5vdGUiLCJmb290bm90ZVJlZmVyZW5jZSIsImltYWdlIiwiaW1hZ2VSZWZlcmVuY2UiLCJpbmxpbmVDb2RlIiwiaW5saW5lTWF0aCIsImxpbmsiLCJsaW5rUmVmZXJlbmNlIiwibWR4SnN4VGV4dEVsZW1lbnQiLCJtZHhUZXh0RXhwcmVzc2lvbiIsInN0cm9uZyIsInRleHQiLCJ0ZXh0RGlyZWN0aXZlIl0pfSk7dmFyIEdHZT1wKCgpPT57V0dlKCl9KTtmdW5jdGlvbiBZR2UoZSx0LHIsaSl7cmV0dXJuKGUuY2hpbGRyZW4uc29tZShmdW5jdGlvbihvKXtyZXR1cm4gZHRlKG8pfSk/ci5jb250YWluZXJQaHJhc2luZzpyLmNvbnRhaW5lckZsb3cpLmNhbGwocixlLGkpfXZhciBaR2U9cCgoKT0+e0dHZSgpfSk7ZnVuY3Rpb24gWEdlKGUpe2xldCB0PWUub3B0aW9ucy5zdHJvbmd8fCIqIjtpZih0IT09IioiJiZ0IT09Il8iKXRocm93IG5ldyBFcnJvcigiQ2Fubm90IHNlcmlhbGl6ZSBzdHJvbmcgd2l0aCBgIit0KyJgIGZvciBgb3B0aW9ucy5zdHJvbmdgLCBleHBlY3RlZCBgKmAsIG9yIGBfYCIpO3JldHVybiB0fXZhciBRR2U9cCgoKT0+e30pO2Z1bmN0aW9uIHV0ZShlLHQscixpKXtsZXQgYT1YR2Uociksbj1yLmVudGVyKCJzdHJvbmciKSxvPXIuY3JlYXRlVHJhY2tlcihpKSxzPW8ubW92ZShhK2EpLGw9by5tb3ZlKHIuY29udGFpbmVyUGhyYXNpbmcoZSx7YWZ0ZXI6YSxiZWZvcmU6cywuLi5vLmN1cnJlbnQoKX0pKSxjPWwuY2hhckNvZGVBdCgwKSx1PWxwKGkuYmVmb3JlLmNoYXJDb2RlQXQoaS5iZWZvcmUubGVuZ3RoLTEpLGMsYSk7dS5pbnNpZGUmJihsPVVuKGMpK2wuc2xpY2UoMSkpO2xldCBkPWwuY2hhckNvZGVBdChsLmxlbmd0aC0xKSxoPWxwKGkuYWZ0ZXIuY2hhckNvZGVBdCgwKSxkLGEpO2guaW5zaWRlJiYobD1sLnNsaWNlKDAsLTEpK1VuKGQpKTtsZXQgZj1vLm1vdmUoYSthKTtyZXR1cm4gbigpLHIuYXR0ZW50aW9uRW5jb2RlU3Vycm91bmRpbmdJbmZvPXthZnRlcjpoLm91dHNpZGUsYmVmb3JlOnUub3V0c2lkZX0scytsK2Z9ZnVuY3Rpb24gckJyKGUsdCxyKXtyZXR1cm4gci5vcHRpb25zLnN0cm9uZ3x8IioifXZhciBKR2U9cCgoKT0+e1FHZSgpO3NwKCk7SmVlKCk7dXRlLnBlZWs9ckJyfSk7ZnVuY3Rpb24gS0dlKGUsdCxyLGkpe3JldHVybiByLnNhZmUoZS52YWx1ZSxpKX12YXIgZVllPXAoKCk9Pnt9KTtmdW5jdGlvbiB0WWUoZSl7bGV0IHQ9ZS5vcHRpb25zLnJ1bGVSZXBldGl0aW9ufHwzO2lmKHQ8Myl0aHJvdyBuZXcgRXJyb3IoIkNhbm5vdCBzZXJpYWxpemUgcnVsZXMgd2l0aCByZXBldGl0aW9uIGAiK3QrImAgZm9yIGBvcHRpb25zLnJ1bGVSZXBldGl0aW9uYCwgZXhwZWN0ZWQgYDNgIG9yIG1vcmUiKTtyZXR1cm4gdH12YXIgclllPXAoKCk9Pnt9KTtmdW5jdGlvbiBpWWUoZSx0LHIpe2xldCBpPShBXyhyKSsoci5vcHRpb25zLnJ1bGVTcGFjZXM/IiAiOiIiKSkucmVwZWF0KHRZZShyKSk7cmV0dXJuIHIub3B0aW9ucy5ydWxlU3BhY2VzP2kuc2xpY2UoMCwtMSk6aX12YXIgYVllPXAoKCk9PntyWWUoKTtjdGUoKX0pO3ZhciBzZCxwdGU9cCgoKT0+e3NHZSgpO2NHZSgpO21HZSgpO2JHZSgpO3lHZSgpO0NHZSgpO1RHZSgpO19HZSgpO0xHZSgpO0FHZSgpO0VHZSgpOyRHZSgpO1JHZSgpO2pHZSgpO1VHZSgpO1pHZSgpO0pHZSgpO2VZZSgpO2FZZSgpO3NkPXtibG9ja3F1b3RlOm9HZSxicmVhazpYZWUsY29kZTpmR2UsZGVmaW5pdGlvbjpnR2UsZW1waGFzaXM6S2VlLGhhcmRCcmVhazpYZWUsaGVhZGluZzp6R2UsaHRtbDpydGUsaW1hZ2U6aXRlLGltYWdlUmVmZXJlbmNlOmF0ZSxpbmxpbmVDb2RlOm50ZSxsaW5rOnN0ZSxsaW5rUmVmZXJlbmNlOmx0ZSxsaXN0Ok9HZSxsaXN0SXRlbTpxR2UscGFyYWdyYXBoOlZHZSxyb290OllHZSxzdHJvbmc6dXRlLHRleHQ6S0dlLHRoZW1hdGljQnJlYWs6aVllfX0pO2Z1bmN0aW9uIGlCcihlLHQscixpKXtpZih0LnR5cGU9PT0iY29kZSImJiQ5KHQsaSkmJihlLnR5cGU9PT0ibGlzdCJ8fGUudHlwZT09PXQudHlwZSYmJDkoZSxpKSkpcmV0dXJuITE7aWYoInNwcmVhZCJpbiByJiZ0eXBlb2Ygci5zcHJlYWQ9PSJib29sZWFuIilyZXR1cm4gZS50eXBlPT09InBhcmFncmFwaCImJihlLnR5cGU9PT10LnR5cGV8fHQudHlwZT09PSJkZWZpbml0aW9uInx8dC50eXBlPT09ImhlYWRpbmciJiZfXyh0LGkpKT92b2lkIDA6ci5zcHJlYWQ/MTowfXZhciBuWWUsb1llPXAoKCk9PntRZWUoKTt0dGUoKTtuWWU9W2lCcl19KTt2YXIgbGQsc1llLGxZZT1wKCgpPT57bGQ9WyJhdXRvbGluayIsImRlc3RpbmF0aW9uTGl0ZXJhbCIsImRlc3RpbmF0aW9uUmF3IiwicmVmZXJlbmNlIiwidGl0bGVRdW90ZSIsInRpdGxlQXBvc3Ryb3BoZSJdLHNZZT1be2NoYXJhY3RlcjoiCSIsYWZ0ZXI6IltcXHJcXG5dIixpbkNvbnN0cnVjdDoicGhyYXNpbmcifSx7Y2hhcmFjdGVyOiIJIixiZWZvcmU6IltcXHJcXG5dIixpbkNvbnN0cnVjdDoicGhyYXNpbmcifSx7Y2hhcmFjdGVyOiIJIixpbkNvbnN0cnVjdDpbImNvZGVGZW5jZWRMYW5nR3JhdmVBY2NlbnQiLCJjb2RlRmVuY2VkTGFuZ1RpbGRlIl19LHtjaGFyYWN0ZXI6IlxyIixpbkNvbnN0cnVjdDpbImNvZGVGZW5jZWRMYW5nR3JhdmVBY2NlbnQiLCJjb2RlRmVuY2VkTGFuZ1RpbGRlIiwiY29kZUZlbmNlZE1ldGFHcmF2ZUFjY2VudCIsImNvZGVGZW5jZWRNZXRhVGlsZGUiLCJkZXN0aW5hdGlvbkxpdGVyYWwiLCJoZWFkaW5nQXR4Il19LHtjaGFyYWN0ZXI6YApgLGluQ29uc3RydWN0OlsiY29kZUZlbmNlZExhbmdHcmF2ZUFjY2VudCIsImNvZGVGZW5jZWRMYW5nVGlsZGUiLCJjb2RlRmVuY2VkTWV0YUdyYXZlQWNjZW50IiwiY29kZUZlbmNlZE1ldGFUaWxkZSIsImRlc3RpbmF0aW9uTGl0ZXJhbCIsImhlYWRpbmdBdHgiXX0se2NoYXJhY3RlcjoiICIsYWZ0ZXI6IltcXHJcXG5dIixpbkNvbnN0cnVjdDoicGhyYXNpbmcifSx7Y2hhcmFjdGVyOiIgIixiZWZvcmU6IltcXHJcXG5dIixpbkNvbnN0cnVjdDoicGhyYXNpbmcifSx7Y2hhcmFjdGVyOiIgIixpbkNvbnN0cnVjdDpbImNvZGVGZW5jZWRMYW5nR3JhdmVBY2NlbnQiLCJjb2RlRmVuY2VkTGFuZ1RpbGRlIl19LHtjaGFyYWN0ZXI6IiEiLGFmdGVyOiJcXFsiLGluQ29uc3RydWN0OiJwaHJhc2luZyIsbm90SW5Db25zdHJ1Y3Q6bGR9LHtjaGFyYWN0ZXI6JyInLGluQ29uc3RydWN0OiJ0aXRsZVF1b3RlIn0se2F0QnJlYWs6ITAsY2hhcmFjdGVyOiIjIn0se2NoYXJhY3RlcjoiIyIsaW5Db25zdHJ1Y3Q6ImhlYWRpbmdBdHgiLGFmdGVyOmAoPzpbXHIKXXwkKWB9LHtjaGFyYWN0ZXI6IiYiLGFmdGVyOiJbI0EtWmEtel0iLGluQ29uc3RydWN0OiJwaHJhc2luZyJ9LHtjaGFyYWN0ZXI6IiciLGluQ29uc3RydWN0OiJ0aXRsZUFwb3N0cm9waGUifSx7Y2hhcmFjdGVyOiIoIixpbkNvbnN0cnVjdDoiZGVzdGluYXRpb25SYXcifSx7YmVmb3JlOiJcXF0iLGNoYXJhY3RlcjoiKCIsaW5Db25zdHJ1Y3Q6InBocmFzaW5nIixub3RJbkNvbnN0cnVjdDpsZH0se2F0QnJlYWs6ITAsYmVmb3JlOiJcXGQrIixjaGFyYWN0ZXI6IikifSx7Y2hhcmFjdGVyOiIpIixpbkNvbnN0cnVjdDoiZGVzdGluYXRpb25SYXcifSx7YXRCcmVhazohMCxjaGFyYWN0ZXI6IioiLGFmdGVyOmAoPzpbIAlccgoqXSlgfSx7Y2hhcmFjdGVyOiIqIixpbkNvbnN0cnVjdDoicGhyYXNpbmciLG5vdEluQ29uc3RydWN0OmxkfSx7YXRCcmVhazohMCxjaGFyYWN0ZXI6IisiLGFmdGVyOmAoPzpbIAlccgpdKWB9LHthdEJyZWFrOiEwLGNoYXJhY3RlcjoiLSIsYWZ0ZXI6YCg/OlsgCVxyCi1dKWB9LHthdEJyZWFrOiEwLGJlZm9yZToiXFxkKyIsY2hhcmFjdGVyOiIuIixhZnRlcjpgKD86WyAJXHIKXXwkKWB9LHthdEJyZWFrOiEwLGNoYXJhY3RlcjoiPCIsYWZ0ZXI6IlshLz9BLVphLXpdIn0se2NoYXJhY3RlcjoiPCIsYWZ0ZXI6IlshLz9BLVphLXpdIixpbkNvbnN0cnVjdDoicGhyYXNpbmciLG5vdEluQ29uc3RydWN0OmxkfSx7Y2hhcmFjdGVyOiI8IixpbkNvbnN0cnVjdDoiZGVzdGluYXRpb25MaXRlcmFsIn0se2F0QnJlYWs6ITAsY2hhcmFjdGVyOiI9In0se2F0QnJlYWs6ITAsY2hhcmFjdGVyOiI+In0se2NoYXJhY3RlcjoiPiIsaW5Db25zdHJ1Y3Q6ImRlc3RpbmF0aW9uTGl0ZXJhbCJ9LHthdEJyZWFrOiEwLGNoYXJhY3RlcjoiWyJ9LHtjaGFyYWN0ZXI6IlsiLGluQ29uc3RydWN0OiJwaHJhc2luZyIsbm90SW5Db25zdHJ1Y3Q6bGR9LHtjaGFyYWN0ZXI6IlsiLGluQ29uc3RydWN0OlsibGFiZWwiLCJyZWZlcmVuY2UiXX0se2NoYXJhY3RlcjoiXFwiLGFmdGVyOiJbXFxyXFxuXSIsaW5Db25zdHJ1Y3Q6InBocmFzaW5nIn0se2NoYXJhY3RlcjoiXSIsaW5Db25zdHJ1Y3Q6WyJsYWJlbCIsInJlZmVyZW5jZSJdfSx7YXRCcmVhazohMCxjaGFyYWN0ZXI6Il8ifSx7Y2hhcmFjdGVyOiJfIixpbkNvbnN0cnVjdDoicGhyYXNpbmciLG5vdEluQ29uc3RydWN0OmxkfSx7YXRCcmVhazohMCxjaGFyYWN0ZXI6ImAifSx7Y2hhcmFjdGVyOiJgIixpbkNvbnN0cnVjdDpbImNvZGVGZW5jZWRMYW5nR3JhdmVBY2NlbnQiLCJjb2RlRmVuY2VkTWV0YUdyYXZlQWNjZW50Il19LHtjaGFyYWN0ZXI6ImAiLGluQ29uc3RydWN0OiJwaHJhc2luZyIsbm90SW5Db25zdHJ1Y3Q6bGR9LHthdEJyZWFrOiEwLGNoYXJhY3RlcjoifiJ9XX0pO2Z1bmN0aW9uIGg0KGUpe2xldCB0PSImIitlKyI7IjtjWWUuaW5uZXJIVE1MPXQ7bGV0IHI9Y1llLnRleHRDb250ZW50O3JldHVybiByLmNoYXJDb2RlQXQoci5sZW5ndGgtMSk9PT01OSYmZSE9PSJzZW1pInx8cj09PXQ/ITE6cn12YXIgY1llLFA5PXAoKCk9PntjWWU9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiaSIpfSk7ZnVuY3Rpb24gZHAoZSx0KXtsZXQgcj1OdW1iZXIucGFyc2VJbnQoZSx0KTtyZXR1cm4gcjw5fHxyPT09MTF8fHI+MTMmJnI8MzJ8fHI+MTI2JiZyPDE2MHx8cj41NTI5NSYmcjw1NzM0NHx8cj42NDk3NSYmcjw2NTAwOHx8KHImNjU1MzUpPT09NjU1MzV8fChyJjY1NTM1KT09PTY1NTM0fHxyPjExMTQxMTE/Ilx1RkZGRCI6U3RyaW5nLmZyb21Db2RlUG9pbnQocil9dmFyIERfPXAoKCk9Pnt9KTtmdW5jdGlvbiBFXyhlKXtyZXR1cm4gZS5yZXBsYWNlKGFCcixuQnIpfWZ1bmN0aW9uIG5CcihlLHQscil7aWYodClyZXR1cm4gdDtpZihyLmNoYXJDb2RlQXQoMCk9PT0zNSl7bGV0IGE9ci5jaGFyQ29kZUF0KDEpLG49YT09PTEyMHx8YT09PTg4O3JldHVybiBkcChyLnNsaWNlKG4/MjoxKSxuPzE2OjEwKX1yZXR1cm4gaDQocil8fGV9dmFyIGFCcixodGU9cCgoKT0+e1A5KCk7RF8oKTthQnI9L1xcKFshLS86LUBbLWB7LX5dKXwmKCMoPzpcZHsxLDd9fHhbXGRhLWZdezEsNn0pfFtcZGEtel17MSwzMX0pOy9naX0pO2Z1bmN0aW9uIGRZZShlKXtyZXR1cm4gZS5sYWJlbHx8IWUuaWRlbnRpZmllcj9lLmxhYmVsfHwiIjpFXyhlLmlkZW50aWZpZXIpfXZhciB1WWU9cCgoKT0+e2h0ZSgpfSk7ZnVuY3Rpb24gcFllKGUpe2lmKCFlLl9jb21waWxlZCl7bGV0IHQ9KGUuYXRCcmVhaz8iW1xcclxcbl1bXFx0IF0qIjoiIikrKGUuYmVmb3JlPyIoPzoiK2UuYmVmb3JlKyIpIjoiIik7ZS5fY29tcGlsZWQ9bmV3IFJlZ0V4cCgodD8iKCIrdCsiKSI6IiIpKygvW3xcXHt9KClbXF1eJCsqPy4tXS8udGVzdChlLmNoYXJhY3Rlcik/IlxcIjoiIikrZS5jaGFyYWN0ZXIrKGUuYWZ0ZXI/Iig/OiIrZS5hZnRlcisiKSI6IiIpLCJnIil9cmV0dXJuIGUuX2NvbXBpbGVkfXZhciBoWWU9cCgoKT0+e30pO2Z1bmN0aW9uIGZZZShlLHQscil7bGV0IGk9dC5pbmRleFN0YWNrLGE9ZS5jaGlsZHJlbnx8W10sbj1bXSxvPS0xLHM9ci5iZWZvcmUsbDtpLnB1c2goLTEpO2xldCBjPXQuY3JlYXRlVHJhY2tlcihyKTtmb3IoOysrbzxhLmxlbmd0aDspe2xldCB1PWFbb10sZDtpZihpW2kubGVuZ3RoLTFdPW8sbysxPGEubGVuZ3RoKXtsZXQgeD10LmhhbmRsZS5oYW5kbGVyc1thW28rMV0udHlwZV07eCYmeC5wZWVrJiYoeD14LnBlZWspLGQ9eD94KGFbbysxXSxlLHQse2JlZm9yZToiIixhZnRlcjoiIiwuLi5jLmN1cnJlbnQoKX0pLmNoYXJBdCgwKToiIn1lbHNlIGQ9ci5hZnRlcjtuLmxlbmd0aD4wJiYocz09PSJcciJ8fHM9PT1gCmApJiZ1LnR5cGU9PT0iaHRtbCImJihuW24ubGVuZ3RoLTFdPW5bbi5sZW5ndGgtMV0ucmVwbGFjZSgvKFxyP1xufFxyKSQvLCIgIikscz0iICIsYz10LmNyZWF0ZVRyYWNrZXIociksYy5tb3ZlKG4uam9pbigiIikpKTtsZXQgaD10LmhhbmRsZSh1LGUsdCx7Li4uYy5jdXJyZW50KCksYWZ0ZXI6ZCxiZWZvcmU6c30pO2wmJmw9PT1oLnNsaWNlKDAsMSkmJihoPVVuKGwuY2hhckNvZGVBdCgwKSkraC5zbGljZSgxKSk7bGV0IGY9dC5hdHRlbnRpb25FbmNvZGVTdXJyb3VuZGluZ0luZm87dC5hdHRlbnRpb25FbmNvZGVTdXJyb3VuZGluZ0luZm89dm9pZCAwLGw9dm9pZCAwLGYmJihuLmxlbmd0aD4wJiZmLmJlZm9yZSYmcz09PW5bbi5sZW5ndGgtMV0uc2xpY2UoLTEpJiYobltuLmxlbmd0aC0xXT1uW24ubGVuZ3RoLTFdLnNsaWNlKDAsLTEpK1VuKHMuY2hhckNvZGVBdCgwKSkpLGYuYWZ0ZXImJihsPWQpKSxjLm1vdmUoaCksbi5wdXNoKGgpLHM9aC5zbGljZSgtMSl9cmV0dXJuIGkucG9wKCksbi5qb2luKCIiKX12YXIgbVllPXAoKCk9PntzcCgpfSk7ZnVuY3Rpb24gZ1llKGUsdCxyKXtsZXQgaT10LmluZGV4U3RhY2ssYT1lLmNoaWxkcmVufHxbXSxuPXQuY3JlYXRlVHJhY2tlcihyKSxvPVtdLHM9LTE7Zm9yKGkucHVzaCgtMSk7KytzPGEubGVuZ3RoOyl7bGV0IGw9YVtzXTtpW2kubGVuZ3RoLTFdPXMsby5wdXNoKG4ubW92ZSh0LmhhbmRsZShsLGUsdCx7YmVmb3JlOmAKYCxhZnRlcjpgCmAsLi4ubi5jdXJyZW50KCl9KSkpLGwudHlwZSE9PSJsaXN0IiYmKHQuYnVsbGV0TGFzdFVzZWQ9dm9pZCAwKSxzPGEubGVuZ3RoLTEmJm8ucHVzaChuLm1vdmUob0JyKGwsYVtzKzFdLGUsdCkpKX1yZXR1cm4gaS5wb3AoKSxvLmpvaW4oIiIpfWZ1bmN0aW9uIG9CcihlLHQscixpKXtsZXQgYT1pLmpvaW4ubGVuZ3RoO2Zvcig7YS0tOyl7bGV0IG49aS5qb2luW2FdKGUsdCxyLGkpO2lmKG49PT0hMHx8bj09PTEpYnJlYWs7aWYodHlwZW9mIG49PSJudW1iZXIiKXJldHVybmAKYC5yZXBlYXQoMStuKTtpZihuPT09ITEpcmV0dXJuYAoKPCEtLS0tPgoKYH1yZXR1cm5gCgpgfXZhciBiWWU9cCgoKT0+e30pO2Z1bmN0aW9uIHZZZShlLHQpe2xldCByPVtdLGk9MCxhPTAsbjtmb3IoO249c0JyLmV4ZWMoZSk7KW8oZS5zbGljZShpLG4uaW5kZXgpKSxyLnB1c2goblswXSksaT1uLmluZGV4K25bMF0ubGVuZ3RoLGErKztyZXR1cm4gbyhlLnNsaWNlKGkpKSxyLmpvaW4oIiIpO2Z1bmN0aW9uIG8ocyl7ci5wdXNoKHQocyxhLCFzKSl9fXZhciBzQnIseFllPXAoKCk9PntzQnI9L1xyP1xufFxyL2d9KTtmdW5jdGlvbiB3WWUoZSx0LHIpe2xldCBpPShyLmJlZm9yZXx8IiIpKyh0fHwiIikrKHIuYWZ0ZXJ8fCIiKSxhPVtdLG49W10sbz17fSxzPS0xO2Zvcig7KytzPGUudW5zYWZlLmxlbmd0aDspe2xldCB1PWUudW5zYWZlW3NdO2lmKCFTXyhlLnN0YWNrLHUpKWNvbnRpbnVlO2xldCBkPWUuY29tcGlsZVBhdHRlcm4odSksaDtmb3IoO2g9ZC5leGVjKGkpOyl7bGV0IGY9ImJlZm9yZSJpbiB1fHwhIXUuYXRCcmVhayx4PSJhZnRlciJpbiB1LHY9aC5pbmRleCsoZj9oWzFdLmxlbmd0aDowKTthLmluY2x1ZGVzKHYpPyhvW3ZdLmJlZm9yZSYmIWYmJihvW3ZdLmJlZm9yZT0hMSksb1t2XS5hZnRlciYmIXgmJihvW3ZdLmFmdGVyPSExKSk6KGEucHVzaCh2KSxvW3ZdPXtiZWZvcmU6ZixhZnRlcjp4fSl9fWEuc29ydChsQnIpO2xldCBsPXIuYmVmb3JlP3IuYmVmb3JlLmxlbmd0aDowLGM9aS5sZW5ndGgtKHIuYWZ0ZXI/ci5hZnRlci5sZW5ndGg6MCk7Zm9yKHM9LTE7KytzPGEubGVuZ3RoOyl7bGV0IHU9YVtzXTt1PGx8fHU+PWN8fHUrMTxjJiZhW3MrMV09PT11KzEmJm9bdV0uYWZ0ZXImJiFvW3UrMV0uYmVmb3JlJiYhb1t1KzFdLmFmdGVyfHxhW3MtMV09PT11LTEmJm9bdV0uYmVmb3JlJiYhb1t1LTFdLmJlZm9yZSYmIW9bdS0xXS5hZnRlcnx8KGwhPT11JiZuLnB1c2goeVllKGkuc2xpY2UobCx1KSwiXFwiKSksbD11LC9bIS0vOi1AWy1gey1+XS8udGVzdChpLmNoYXJBdCh1KSkmJighci5lbmNvZGV8fCFyLmVuY29kZS5pbmNsdWRlcyhpLmNoYXJBdCh1KSkpP24ucHVzaCgiXFwiKToobi5wdXNoKFVuKGkuY2hhckNvZGVBdCh1KSkpLGwrKykpfXJldHVybiBuLnB1c2goeVllKGkuc2xpY2UobCxjKSxyLmFmdGVyKSksbi5qb2luKCIiKX1mdW5jdGlvbiBsQnIoZSx0KXtyZXR1cm4gZS10fWZ1bmN0aW9uIHlZZShlLHQpe2xldCByPS9cXCg/PVshLS86LUBbLWB7LX5dKS9nLGk9W10sYT1bXSxuPWUrdCxvPS0xLHM9MCxsO2Zvcig7bD1yLmV4ZWMobik7KWkucHVzaChsLmluZGV4KTtmb3IoOysrbzxpLmxlbmd0aDspcyE9PWlbb10mJmEucHVzaChlLnNsaWNlKHMsaVtvXSkpLGEucHVzaCgiXFwiKSxzPWlbb107cmV0dXJuIGEucHVzaChlLnNsaWNlKHMpKSxhLmpvaW4oIiIpfXZhciBNWWU9cCgoKT0+e3NwKCk7WmVlKCl9KTtmdW5jdGlvbiBrWWUoZSl7bGV0IHQ9ZXx8e30scj10Lm5vd3x8e30saT10LmxpbmVTaGlmdHx8MCxhPXIubGluZXx8MSxuPXIuY29sdW1ufHwxO3JldHVybnttb3ZlOmwsY3VycmVudDpvLHNoaWZ0OnN9O2Z1bmN0aW9uIG8oKXtyZXR1cm57bm93OntsaW5lOmEsY29sdW1uOm59LGxpbmVTaGlmdDppfX1mdW5jdGlvbiBzKGMpe2krPWN9ZnVuY3Rpb24gbChjKXtsZXQgdT1jfHwiIixkPXUuc3BsaXQoL1xyP1xufFxyL2cpLGg9ZFtkLmxlbmd0aC0xXTtyZXR1cm4gYSs9ZC5sZW5ndGgtMSxuPWQubGVuZ3RoPT09MT9uK2gubGVuZ3RoOjEraC5sZW5ndGgraSx1fX12YXIgU1llPXAoKCk9Pnt9KTtmdW5jdGlvbiBmdGUoZSx0KXtsZXQgcj10fHx7fSxpPXthc3NvY2lhdGlvbklkOmRZZSxjb250YWluZXJQaHJhc2luZzpwQnIsY29udGFpbmVyRmxvdzpoQnIsY3JlYXRlVHJhY2tlcjprWWUsY29tcGlsZVBhdHRlcm46cFllLGVudGVyOm4saGFuZGxlcnM6ey4uLnNkfSxoYW5kbGU6dm9pZCAwLGluZGVudExpbmVzOnZZZSxpbmRleFN0YWNrOltdLGpvaW46Wy4uLm5ZZV0sb3B0aW9uczp7fSxzYWZlOmZCcixzdGFjazpbXSx1bnNhZmU6Wy4uLnNZZV19O1llZShpLHIpLGkub3B0aW9ucy50aWdodERlZmluaXRpb25zJiZpLmpvaW4ucHVzaCh1QnIpLGkuaGFuZGxlPWtfKCJ0eXBlIix7aW52YWxpZDpjQnIsdW5rbm93bjpkQnIsaGFuZGxlcnM6aS5oYW5kbGVyc30pO2xldCBhPWkuaGFuZGxlKGUsdm9pZCAwLGkse2JlZm9yZTpgCmAsYWZ0ZXI6YApgLG5vdzp7bGluZToxLGNvbHVtbjoxfSxsaW5lU2hpZnQ6MH0pO3JldHVybiBhJiZhLmNoYXJDb2RlQXQoYS5sZW5ndGgtMSkhPT0xMCYmYS5jaGFyQ29kZUF0KGEubGVuZ3RoLTEpIT09MTMmJihhKz1gCmApLGE7ZnVuY3Rpb24gbihvKXtyZXR1cm4gaS5zdGFjay5wdXNoKG8pLHM7ZnVuY3Rpb24gcygpe2kuc3RhY2sucG9wKCl9fX1mdW5jdGlvbiBjQnIoZSl7dGhyb3cgbmV3IEVycm9yKCJDYW5ub3QgaGFuZGxlIHZhbHVlIGAiK2UrImAsIGV4cGVjdGVkIG5vZGUiKX1mdW5jdGlvbiBkQnIoZSl7bGV0IHQ9ZTt0aHJvdyBuZXcgRXJyb3IoIkNhbm5vdCBoYW5kbGUgdW5rbm93biBub2RlIGAiK3QudHlwZSsiYCIpfWZ1bmN0aW9uIHVCcihlLHQpe2lmKGUudHlwZT09PSJkZWZpbml0aW9uIiYmZS50eXBlPT09dC50eXBlKXJldHVybiAwfWZ1bmN0aW9uIHBCcihlLHQpe3JldHVybiBmWWUoZSx0aGlzLHQpfWZ1bmN0aW9uIGhCcihlLHQpe3JldHVybiBnWWUoZSx0aGlzLHQpfWZ1bmN0aW9uIGZCcihlLHQpe3JldHVybiB3WWUodGhpcyxlLHQpfXZhciB6WWU9cCgoKT0+e0dlZSgpO25HZSgpO3B0ZSgpO29ZZSgpO2xZZSgpO3VZZSgpO2hZZSgpO21ZZSgpO2JZZSgpO3hZZSgpO01ZZSgpO1NZZSgpfSk7dmFyICRfPXAoKCk9Pnt6WWUoKTtwdGUoKX0pO2Z1bmN0aW9uIGd0ZSgpe3JldHVybntlbnRlcjp7dGFibGU6bUJyLHRhYmxlRGF0YTpDWWUsdGFibGVIZWFkZXI6Q1llLHRhYmxlUm93OmJCcn0sZXhpdDp7Y29kZVRleHQ6dkJyLHRhYmxlOmdCcix0YWJsZURhdGE6bXRlLHRhYmxlSGVhZGVyOm10ZSx0YWJsZVJvdzptdGV9fX1mdW5jdGlvbiBtQnIoZSl7bGV0IHQ9ZS5fYWxpZ247dGhpcy5lbnRlcih7dHlwZToidGFibGUiLGFsaWduOnQubWFwKGZ1bmN0aW9uKHIpe3JldHVybiByPT09Im5vbmUiP251bGw6cn0pLGNoaWxkcmVuOltdfSxlKSx0aGlzLmRhdGEuaW5UYWJsZT0hMH1mdW5jdGlvbiBnQnIoZSl7dGhpcy5leGl0KGUpLHRoaXMuZGF0YS5pblRhYmxlPXZvaWQgMH1mdW5jdGlvbiBiQnIoZSl7dGhpcy5lbnRlcih7dHlwZToidGFibGVSb3ciLGNoaWxkcmVuOltdfSxlKX1mdW5jdGlvbiBtdGUoZSl7dGhpcy5leGl0KGUpfWZ1bmN0aW9uIENZZShlKXt0aGlzLmVudGVyKHt0eXBlOiJ0YWJsZUNlbGwiLGNoaWxkcmVuOltdfSxlKX1mdW5jdGlvbiB2QnIoZSl7bGV0IHQ9dGhpcy5yZXN1bWUoKTt0aGlzLmRhdGEuaW5UYWJsZSYmKHQ9dC5yZXBsYWNlKC9cXChbXFx8XSkvZyx4QnIpKTtsZXQgcj10aGlzLnN0YWNrW3RoaXMuc3RhY2subGVuZ3RoLTFdO3IudHlwZSxyLnZhbHVlPXQsdGhpcy5leGl0KGUpfWZ1bmN0aW9uIHhCcihlLHQpe3JldHVybiB0PT09InwiP3Q6ZX1mdW5jdGlvbiBidGUoZSl7bGV0IHQ9ZXx8e30scj10LnRhYmxlQ2VsbFBhZGRpbmcsaT10LnRhYmxlUGlwZUFsaWduLGE9dC5zdHJpbmdMZW5ndGgsbj1yPyIgIjoifCI7cmV0dXJue3Vuc2FmZTpbe2NoYXJhY3RlcjoiXHIiLGluQ29uc3RydWN0OiJ0YWJsZUNlbGwifSx7Y2hhcmFjdGVyOmAKYCxpbkNvbnN0cnVjdDoidGFibGVDZWxsIn0se2F0QnJlYWs6ITAsY2hhcmFjdGVyOiJ8IixhZnRlcjoiWwkgOi1dIn0se2NoYXJhY3RlcjoifCIsaW5Db25zdHJ1Y3Q6InRhYmxlQ2VsbCJ9LHthdEJyZWFrOiEwLGNoYXJhY3RlcjoiOiIsYWZ0ZXI6Ii0ifSx7YXRCcmVhazohMCxjaGFyYWN0ZXI6Ii0iLGFmdGVyOiJbOnwtXSJ9XSxoYW5kbGVyczp7aW5saW5lQ29kZTpoLHRhYmxlOm8sdGFibGVDZWxsOmwsdGFibGVSb3c6c319O2Z1bmN0aW9uIG8oZix4LHYsYil7cmV0dXJuIGModShmLHYsYiksZi5hbGlnbil9ZnVuY3Rpb24gcyhmLHgsdixiKXtsZXQgeT1kKGYsdixiKSx3PWMoW3ldKTtyZXR1cm4gdy5zbGljZSgwLHcuaW5kZXhPZihgCmApKX1mdW5jdGlvbiBsKGYseCx2LGIpe2xldCB5PXYuZW50ZXIoInRhYmxlQ2VsbCIpLHc9di5lbnRlcigicGhyYXNpbmciKSxrPXYuY29udGFpbmVyUGhyYXNpbmcoZix7Li4uYixiZWZvcmU6bixhZnRlcjpufSk7cmV0dXJuIHcoKSx5KCksa31mdW5jdGlvbiBjKGYseCl7cmV0dXJuIHRHZShmLHthbGlnbjp4LGFsaWduRGVsaW1pdGVyczppLHBhZGRpbmc6cixzdHJpbmdMZW5ndGg6YX0pfWZ1bmN0aW9uIHUoZix4LHYpe2xldCBiPWYuY2hpbGRyZW4seT0tMSx3PVtdLGs9eC5lbnRlcigidGFibGUiKTtmb3IoOysreTxiLmxlbmd0aDspd1t5XT1kKGJbeV0seCx2KTtyZXR1cm4gaygpLHd9ZnVuY3Rpb24gZChmLHgsdil7bGV0IGI9Zi5jaGlsZHJlbix5PS0xLHc9W10saz14LmVudGVyKCJ0YWJsZVJvdyIpO2Zvcig7Kyt5PGIubGVuZ3RoOyl3W3ldPWwoYlt5XSxmLHgsdik7cmV0dXJuIGsoKSx3fWZ1bmN0aW9uIGgoZix4LHYpe2xldCBiPXNkLmlubGluZUNvZGUoZix4LHYpO3JldHVybiB2LnN0YWNrLmluY2x1ZGVzKCJ0YWJsZUNlbGwiKSYmKGI9Yi5yZXBsYWNlKC9cfC9nLCJcXCQmIikpLGJ9fXZhciBUWWU9cCgoKT0+e2M0KCk7ckdlKCk7JF8oKX0pO3ZhciBfWWU9cCgoKT0+e1RZZSgpfSk7ZnVuY3Rpb24gdnRlKCl7cmV0dXJue2V4aXQ6e3Rhc2tMaXN0Q2hlY2tWYWx1ZUNoZWNrZWQ6TFllLHRhc2tMaXN0Q2hlY2tWYWx1ZVVuY2hlY2tlZDpMWWUscGFyYWdyYXBoOnlCcn19fWZ1bmN0aW9uIHh0ZSgpe3JldHVybnt1bnNhZmU6W3thdEJyZWFrOiEwLGNoYXJhY3RlcjoiLSIsYWZ0ZXI6Ils6fC1dIn1dLGhhbmRsZXJzOntsaXN0SXRlbTp3QnJ9fX1mdW5jdGlvbiBMWWUoZSl7bGV0IHQ9dGhpcy5zdGFja1t0aGlzLnN0YWNrLmxlbmd0aC0yXTt0LnR5cGUsdC5jaGVja2VkPWUudHlwZT09PSJ0YXNrTGlzdENoZWNrVmFsdWVDaGVja2VkIn1mdW5jdGlvbiB5QnIoZSl7bGV0IHQ9dGhpcy5zdGFja1t0aGlzLnN0YWNrLmxlbmd0aC0yXTtpZih0JiZ0LnR5cGU9PT0ibGlzdEl0ZW0iJiZ0eXBlb2YgdC5jaGVja2VkPT0iYm9vbGVhbiIpe2xldCByPXRoaXMuc3RhY2tbdGhpcy5zdGFjay5sZW5ndGgtMV07ci50eXBlO2xldCBpPXIuY2hpbGRyZW5bMF07aWYoaSYmaS50eXBlPT09InRleHQiKXtsZXQgYT10LmNoaWxkcmVuLG49LTEsbztmb3IoOysrbjxhLmxlbmd0aDspe2xldCBzPWFbbl07aWYocy50eXBlPT09InBhcmFncmFwaCIpe289czticmVha319bz09PXImJihpLnZhbHVlPWkudmFsdWUuc2xpY2UoMSksaS52YWx1ZS5sZW5ndGg9PT0wP3IuY2hpbGRyZW4uc2hpZnQoKTpyLnBvc2l0aW9uJiZpLnBvc2l0aW9uJiZ0eXBlb2YgaS5wb3NpdGlvbi5zdGFydC5vZmZzZXQ9PSJudW1iZXIiJiYoaS5wb3NpdGlvbi5zdGFydC5jb2x1bW4rKyxpLnBvc2l0aW9uLnN0YXJ0Lm9mZnNldCsrLHIucG9zaXRpb24uc3RhcnQ9T2JqZWN0LmFzc2lnbih7fSxpLnBvc2l0aW9uLnN0YXJ0KSkpfX10aGlzLmV4aXQoZSl9ZnVuY3Rpb24gd0JyKGUsdCxyLGkpe2xldCBhPWUuY2hpbGRyZW5bMF0sbj10eXBlb2YgZS5jaGVja2VkPT0iYm9vbGVhbiImJmEmJmEudHlwZT09PSJwYXJhZ3JhcGgiLG89IlsiKyhlLmNoZWNrZWQ/IngiOiIgIikrIl0gIixzPXIuY3JlYXRlVHJhY2tlcihpKTtuJiZzLm1vdmUobyk7bGV0IGw9c2QubGlzdEl0ZW0oZSx0LHIsey4uLmksLi4ucy5jdXJyZW50KCl9KTtyZXR1cm4gbiYmKGw9bC5yZXBsYWNlKC9eKD86WyorLV18XGQrXC4pKFtcclxuXXwgezEsM30pLyxjKSksbDtmdW5jdGlvbiBjKHUpe3JldHVybiB1K299fXZhciBBWWU9cCgoKT0+e2M0KCk7JF8oKX0pO3ZhciBEWWU9cCgoKT0+e0FZZSgpfSk7ZnVuY3Rpb24geXRlKCl7cmV0dXJuW0hlZSgpLGplZSgpLFVlZSgpLGd0ZSgpLHZ0ZSgpXX1mdW5jdGlvbiB3dGUoZSl7cmV0dXJue2V4dGVuc2lvbnM6W3FlZSgpLFZlZShlKSxXZWUoKSxidGUoZSkseHRlKCldfX12YXIgRVllPXAoKCk9PntXV2UoKTtYV2UoKTtLV2UoKTtfWWUoKTtEWWUoKX0pO3ZhciAkWWU9cCgoKT0+e0VZZSgpfSk7ZnVuY3Rpb24gajEoZSx0LHIsaSl7bGV0IGE9ZS5sZW5ndGgsbj0wLG87aWYodDwwP3Q9LXQ+YT8wOmErdDp0PXQ+YT9hOnQscj1yPjA/cjowLGkubGVuZ3RoPDFlNClvPUFycmF5LmZyb20oaSksby51bnNoaWZ0KHQsciksZS5zcGxpY2UoLi4ubyk7ZWxzZSBmb3IociYmZS5zcGxpY2UodCxyKTtuPGkubGVuZ3RoOylvPWkuc2xpY2UobixuKzFlNCksby51bnNoaWZ0KHQsMCksZS5zcGxpY2UoLi4ubyksbis9MWU0LHQrPTFlNH1mdW5jdGlvbiBhaShlLHQpe3JldHVybiBlLmxlbmd0aD4wPyhqMShlLGUubGVuZ3RoLDAsdCksZSk6dH12YXIgVXM9cCgoKT0+e30pO2Z1bmN0aW9uIElfKGUpe2xldCB0PXt9LHI9LTE7Zm9yKDsrK3I8ZS5sZW5ndGg7KU1Ccih0LGVbcl0pO3JldHVybiB0fWZ1bmN0aW9uIE1CcihlLHQpe2xldCByO2ZvcihyIGluIHQpe2xldCBhPShNdGUuY2FsbChlLHIpP2Vbcl06dm9pZCAwKXx8KGVbcl09e30pLG49dFtyXSxvO2lmKG4pZm9yKG8gaW4gbil7TXRlLmNhbGwoYSxvKXx8KGFbb109W10pO2xldCBzPW5bb107a0JyKGFbb10sQXJyYXkuaXNBcnJheShzKT9zOnM/W3NdOltdKX19fWZ1bmN0aW9uIGtCcihlLHQpe2xldCByPS0xLGk9W107Zm9yKDsrK3I8dC5sZW5ndGg7KSh0W3JdLmFkZD09PSJhZnRlciI/ZTppKS5wdXNoKHRbcl0pO2oxKGUsMCwwLGkpfWZ1bmN0aW9uIFBfKGUpe2xldCB0PXt9LHI9LTE7Zm9yKDsrK3I8ZS5sZW5ndGg7KVNCcih0LGVbcl0pO3JldHVybiB0fWZ1bmN0aW9uIFNCcihlLHQpe2xldCByO2ZvcihyIGluIHQpe2xldCBhPShNdGUuY2FsbChlLHIpP2Vbcl06dm9pZCAwKXx8KGVbcl09e30pLG49dFtyXSxvO2lmKG4pZm9yKG8gaW4gbilhW29dPW5bb119fXZhciBNdGUsTl89cCgoKT0+e1VzKCk7TXRlPXt9Lmhhc093blByb3BlcnR5fSk7ZnVuY3Rpb24genRlKCl7cmV0dXJue3RleHQ6V3N9fWZ1bmN0aW9uIFRCcihlLHQscil7bGV0IGk9dGhpcyxhLG47cmV0dXJuIG87ZnVuY3Rpb24gbyhkKXtyZXR1cm4ha3RlKGQpfHwhSFllLmNhbGwoaSxpLnByZXZpb3VzKXx8U3RlKGkuZXZlbnRzKT9yKGQpOihlLmVudGVyKCJsaXRlcmFsQXV0b2xpbmsiKSxlLmVudGVyKCJsaXRlcmFsQXV0b2xpbmtFbWFpbCIpLHMoZCkpfWZ1bmN0aW9uIHMoZCl7cmV0dXJuIGt0ZShkKT8oZS5jb25zdW1lKGQpLHMpOmQ9PT02ND8oZS5jb25zdW1lKGQpLGwpOnIoZCl9ZnVuY3Rpb24gbChkKXtyZXR1cm4gZD09PTQ2P2UuY2hlY2soQ0JyLHUsYykoZCk6ZD09PTQ1fHxkPT09OTV8fEkxKGQpPyhuPSEwLGUuY29uc3VtZShkKSxsKTp1KGQpfWZ1bmN0aW9uIGMoZCl7cmV0dXJuIGUuY29uc3VtZShkKSxhPSEwLGx9ZnVuY3Rpb24gdShkKXtyZXR1cm4gbiYmYSYmeWkoaS5wcmV2aW91cyk/KGUuZXhpdCgibGl0ZXJhbEF1dG9saW5rRW1haWwiKSxlLmV4aXQoImxpdGVyYWxBdXRvbGluayIpLHQoZCkpOnIoZCl9fWZ1bmN0aW9uIF9CcihlLHQscil7bGV0IGk9dGhpcztyZXR1cm4gYTtmdW5jdGlvbiBhKG8pe3JldHVybiBvIT09ODcmJm8hPT0xMTl8fCFSWWUuY2FsbChpLGkucHJldmlvdXMpfHxTdGUoaS5ldmVudHMpP3Iobyk6KGUuZW50ZXIoImxpdGVyYWxBdXRvbGluayIpLGUuZW50ZXIoImxpdGVyYWxBdXRvbGlua1d3dyIpLGUuY2hlY2soekJyLGUuYXR0ZW1wdChJWWUsZS5hdHRlbXB0KFBZZSxuKSxyKSxyKShvKSl9ZnVuY3Rpb24gbihvKXtyZXR1cm4gZS5leGl0KCJsaXRlcmFsQXV0b2xpbmtXd3ciKSxlLmV4aXQoImxpdGVyYWxBdXRvbGluayIpLHQobyl9fWZ1bmN0aW9uIExCcihlLHQscil7bGV0IGk9dGhpcyxhPSIiLG49ITE7cmV0dXJuIG87ZnVuY3Rpb24gbyhkKXtyZXR1cm4oZD09PTcyfHxkPT09MTA0KSYmQlllLmNhbGwoaSxpLnByZXZpb3VzKSYmIVN0ZShpLmV2ZW50cyk/KGUuZW50ZXIoImxpdGVyYWxBdXRvbGluayIpLGUuZW50ZXIoImxpdGVyYWxBdXRvbGlua0h0dHAiKSxhKz1TdHJpbmcuZnJvbUNvZGVQb2ludChkKSxlLmNvbnN1bWUoZCkscyk6cihkKX1mdW5jdGlvbiBzKGQpe2lmKHlpKGQpJiZhLmxlbmd0aDw1KXJldHVybiBhKz1TdHJpbmcuZnJvbUNvZGVQb2ludChkKSxlLmNvbnN1bWUoZCkscztpZihkPT09NTgpe2xldCBoPWEudG9Mb3dlckNhc2UoKTtpZihoPT09Imh0dHAifHxoPT09Imh0dHBzIilyZXR1cm4gZS5jb25zdW1lKGQpLGx9cmV0dXJuIHIoZCl9ZnVuY3Rpb24gbChkKXtyZXR1cm4gZD09PTQ3PyhlLmNvbnN1bWUoZCksbj9jOihuPSEwLGwpKTpyKGQpfWZ1bmN0aW9uIGMoZCl7cmV0dXJuIGQ9PT1udWxsfHxpZChkKXx8SnQoZCl8fFZzKGQpfHxhZChkKT9yKGQpOmUuYXR0ZW1wdChJWWUsZS5hdHRlbXB0KFBZZSx1KSxyKShkKX1mdW5jdGlvbiB1KGQpe3JldHVybiBlLmV4aXQoImxpdGVyYWxBdXRvbGlua0h0dHAiKSxlLmV4aXQoImxpdGVyYWxBdXRvbGluayIpLHQoZCl9fWZ1bmN0aW9uIEFCcihlLHQscil7bGV0IGk9MDtyZXR1cm4gYTtmdW5jdGlvbiBhKG8pe3JldHVybihvPT09ODd8fG89PT0xMTkpJiZpPDM/KGkrKyxlLmNvbnN1bWUobyksYSk6bz09PTQ2JiZpPT09Mz8oZS5jb25zdW1lKG8pLG4pOnIobyl9ZnVuY3Rpb24gbihvKXtyZXR1cm4gbz09PW51bGw/cihvKTp0KG8pfX1mdW5jdGlvbiBEQnIoZSx0LHIpe2xldCBpLGEsbjtyZXR1cm4gbztmdW5jdGlvbiBvKGMpe3JldHVybiBjPT09NDZ8fGM9PT05NT9lLmNoZWNrKE5ZZSxsLHMpKGMpOmM9PT1udWxsfHxKdChjKXx8VnMoYyl8fGMhPT00NSYmYWQoYyk/bChjKToobj0hMCxlLmNvbnN1bWUoYyksbyl9ZnVuY3Rpb24gcyhjKXtyZXR1cm4gYz09PTk1P2k9ITA6KGE9aSxpPXZvaWQgMCksZS5jb25zdW1lKGMpLG99ZnVuY3Rpb24gbChjKXtyZXR1cm4gYXx8aXx8IW4/cihjKTp0KGMpfX1mdW5jdGlvbiBFQnIoZSx0KXtsZXQgcj0wLGk9MDtyZXR1cm4gYTtmdW5jdGlvbiBhKG8pe3JldHVybiBvPT09NDA/KHIrKyxlLmNvbnN1bWUobyksYSk6bz09PTQxJiZpPHI/bihvKTpvPT09MzN8fG89PT0zNHx8bz09PTM4fHxvPT09Mzl8fG89PT00MXx8bz09PTQyfHxvPT09NDR8fG89PT00Nnx8bz09PTU4fHxvPT09NTl8fG89PT02MHx8bz09PTYzfHxvPT09OTN8fG89PT05NXx8bz09PTEyNj9lLmNoZWNrKE5ZZSx0LG4pKG8pOm89PT1udWxsfHxKdChvKXx8VnMobyk/dChvKTooZS5jb25zdW1lKG8pLGEpfWZ1bmN0aW9uIG4obyl7cmV0dXJuIG89PT00MSYmaSsrLGUuY29uc3VtZShvKSxhfX1mdW5jdGlvbiAkQnIoZSx0LHIpe3JldHVybiBpO2Z1bmN0aW9uIGkocyl7cmV0dXJuIHM9PT0zM3x8cz09PTM0fHxzPT09Mzl8fHM9PT00MXx8cz09PTQyfHxzPT09NDR8fHM9PT00Nnx8cz09PTU4fHxzPT09NTl8fHM9PT02M3x8cz09PTk1fHxzPT09MTI2PyhlLmNvbnN1bWUocyksaSk6cz09PTM4PyhlLmNvbnN1bWUocyksbik6cz09PTkzPyhlLmNvbnN1bWUocyksYSk6cz09PTYwfHxzPT09bnVsbHx8SnQocyl8fFZzKHMpP3Qocyk6cihzKX1mdW5jdGlvbiBhKHMpe3JldHVybiBzPT09bnVsbHx8cz09PTQwfHxzPT09OTF8fEp0KHMpfHxWcyhzKT90KHMpOmkocyl9ZnVuY3Rpb24gbihzKXtyZXR1cm4geWkocyk/byhzKTpyKHMpfWZ1bmN0aW9uIG8ocyl7cmV0dXJuIHM9PT01OT8oZS5jb25zdW1lKHMpLGkpOnlpKHMpPyhlLmNvbnN1bWUocyksbyk6cihzKX19ZnVuY3Rpb24gSUJyKGUsdCxyKXtyZXR1cm4gaTtmdW5jdGlvbiBpKG4pe3JldHVybiBlLmNvbnN1bWUobiksYX1mdW5jdGlvbiBhKG4pe3JldHVybiBJMShuKT9yKG4pOnQobil9fWZ1bmN0aW9uIFJZZShlKXtyZXR1cm4gZT09PW51bGx8fGU9PT00MHx8ZT09PTQyfHxlPT09OTV8fGU9PT05MXx8ZT09PTkzfHxlPT09MTI2fHxKdChlKX1mdW5jdGlvbiBCWWUoZSl7cmV0dXJuIXlpKGUpfWZ1bmN0aW9uIEhZZShlKXtyZXR1cm4hKGU9PT00N3x8a3RlKGUpKX1mdW5jdGlvbiBrdGUoZSl7cmV0dXJuIGU9PT00M3x8ZT09PTQ1fHxlPT09NDZ8fGU9PT05NXx8STEoZSl9ZnVuY3Rpb24gU3RlKGUpe2xldCB0PWUubGVuZ3RoLHI9ITE7Zm9yKDt0LS07KXtsZXQgaT1lW3RdWzFdO2lmKChpLnR5cGU9PT0ibGFiZWxMaW5rInx8aS50eXBlPT09ImxhYmVsSW1hZ2UiKSYmIWkuX2JhbGFuY2VkKXtyPSEwO2JyZWFrfWlmKGkuX2dmbUF1dG9saW5rTGl0ZXJhbFdhbGtlZEludG8pe3I9ITE7YnJlYWt9fXJldHVybiBlLmxlbmd0aD4wJiYhciYmKGVbZS5sZW5ndGgtMV1bMV0uX2dmbUF1dG9saW5rTGl0ZXJhbFdhbGtlZEludG89ITApLHJ9dmFyIHpCcixJWWUsUFllLE5ZZSxDQnIsRlllLE9ZZSxuYyxXcyxxWWU9cCgoKT0+e3JyKCk7ekJyPXt0b2tlbml6ZTpBQnIscGFydGlhbDohMH0sSVllPXt0b2tlbml6ZTpEQnIscGFydGlhbDohMH0sUFllPXt0b2tlbml6ZTpFQnIscGFydGlhbDohMH0sTlllPXt0b2tlbml6ZTokQnIscGFydGlhbDohMH0sQ0JyPXt0b2tlbml6ZTpJQnIscGFydGlhbDohMH0sRlllPXtuYW1lOiJ3d3dBdXRvbGluayIsdG9rZW5pemU6X0JyLHByZXZpb3VzOlJZZX0sT1llPXtuYW1lOiJwcm90b2NvbEF1dG9saW5rIix0b2tlbml6ZTpMQnIscHJldmlvdXM6QlllfSxuYz17bmFtZToiZW1haWxBdXRvbGluayIsdG9rZW5pemU6VEJyLHByZXZpb3VzOkhZZX0sV3M9e307Zm9yKHZhciBjZD00ODtjZDwxMjM7KVdzW2NkXT1uYyxjZCsrLGNkPT09NTg/Y2Q9NjU6Y2Q9PT05MSYmKGNkPTk3KTtXc1s0M109bmMsV3NbNDVdPW5jLFdzWzQ2XT1uYyxXc1s5NV09bmMsV3NbNzJdPVtuYyxPWWVdLFdzWzEwNF09W25jLE9ZZV0sV3NbODddPVtuYyxGWWVdLFdzWzExOV09W25jLEZZZV19KTtmdW5jdGlvbiBGXyhlKXtyZXR1cm4gZS5yZXBsYWNlKC9bIiY8Pl0vZyx0KTtmdW5jdGlvbiB0KHIpe3JldHVybiImIitQQnJbcl0rIjsifX12YXIgUEJyLEN0ZT1wKCgpPT57UEJyPXsnIic6InF1b3QiLCImIjoiYW1wIiwiPCI6Imx0IiwiPiI6Imd0In19KTtmdW5jdGlvbiBHcyhlLHQpe2xldCByPUZfKFduKGV8fCIiKSk7aWYoIXQpcmV0dXJuIHI7bGV0IGk9ci5pbmRleE9mKCI6IiksYT1yLmluZGV4T2YoIj8iKSxuPXIuaW5kZXhPZigiIyIpLG89ci5pbmRleE9mKCIvIik7cmV0dXJuIGk8MHx8bz4tMSYmaT5vfHxhPi0xJiZpPmF8fG4+LTEmJmk+bnx8dC50ZXN0KHIuc2xpY2UoMCxpKSk/cjoiIn1mdW5jdGlvbiBXbihlKXtsZXQgdD1bXSxyPS0xLGk9MCxhPTA7Zm9yKDsrK3I8ZS5sZW5ndGg7KXtsZXQgbj1lLmNoYXJDb2RlQXQociksbz0iIjtpZihuPT09MzcmJkkxKGUuY2hhckNvZGVBdChyKzEpKSYmSTEoZS5jaGFyQ29kZUF0KHIrMikpKWE9MjtlbHNlIGlmKG48MTI4KS9bISMkJi07PT8tWl9hLXp+XS8udGVzdChTdHJpbmcuZnJvbUNoYXJDb2RlKG4pKXx8KG89U3RyaW5nLmZyb21DaGFyQ29kZShuKSk7ZWxzZSBpZihuPjU1Mjk1JiZuPDU3MzQ0KXtsZXQgcz1lLmNoYXJDb2RlQXQocisxKTtuPDU2MzIwJiZzPjU2MzE5JiZzPDU3MzQ0PyhvPVN0cmluZy5mcm9tQ2hhckNvZGUobixzKSxhPTEpOm89Ilx1RkZGRCJ9ZWxzZSBvPVN0cmluZy5mcm9tQ2hhckNvZGUobik7byYmKHQucHVzaChlLnNsaWNlKGksciksZW5jb2RlVVJJQ29tcG9uZW50KG8pKSxpPXIrYSsxLG89IiIpLGEmJihyKz1hLGE9MCl9cmV0dXJuIHQuam9pbigiIikrZS5zbGljZShpKX12YXIgWXM9cCgoKT0+e3JyKCk7Q3RlKCl9KTtmdW5jdGlvbiBfdGUoKXtyZXR1cm57ZXhpdDp7bGl0ZXJhbEF1dG9saW5rRW1haWw6RkJyLGxpdGVyYWxBdXRvbGlua0h0dHA6T0JyLGxpdGVyYWxBdXRvbGlua1d3dzpOQnJ9fX1mdW5jdGlvbiBOQnIoZSl7VHRlLmNhbGwodGhpcyxlLCJodHRwOi8vIil9ZnVuY3Rpb24gRkJyKGUpe1R0ZS5jYWxsKHRoaXMsZSwibWFpbHRvOiIpfWZ1bmN0aW9uIE9CcihlKXtUdGUuY2FsbCh0aGlzLGUpfWZ1bmN0aW9uIFR0ZShlLHQpe2xldCByPXRoaXMuc2xpY2VTZXJpYWxpemUoZSk7dGhpcy50YWcoJzxhIGhyZWY9IicrR3MoKHR8fCIiKStyKSsnIj4nKSx0aGlzLnJhdyh0aGlzLmVuY29kZShyKSksdGhpcy50YWcoIjwvYT4iKX12YXIgalllPXAoKCk9PntZcygpfSk7dmFyIFZZZT1wKCgpPT57cVllKCk7alllKCl9KTtmdW5jdGlvbiBmNChlLHQscil7bGV0IGk9W10sYT0tMTtmb3IoOysrYTxlLmxlbmd0aDspe2xldCBuPWVbYV0ucmVzb2x2ZUFsbDtuJiYhaS5pbmNsdWRlcyhuKSYmKHQ9bih0LHIpLGkucHVzaChuKSl9cmV0dXJuIHR9dmFyIE45PXAoKCk9Pnt9KTtmdW5jdGlvbiBSQnIoZSx0KXtsZXQgcj0tMSxpLGEsbixvLHMsbCxjLHU7Zm9yKDsrK3I8ZS5sZW5ndGg7KWlmKGVbcl1bMF09PT0iZW50ZXIiJiZlW3JdWzFdLnR5cGU9PT0iYXR0ZW50aW9uU2VxdWVuY2UiJiZlW3JdWzFdLl9jbG9zZSl7Zm9yKGk9cjtpLS07KWlmKGVbaV1bMF09PT0iZXhpdCImJmVbaV1bMV0udHlwZT09PSJhdHRlbnRpb25TZXF1ZW5jZSImJmVbaV1bMV0uX29wZW4mJnQuc2xpY2VTZXJpYWxpemUoZVtpXVsxXSkuY2hhckNvZGVBdCgwKT09PXQuc2xpY2VTZXJpYWxpemUoZVtyXVsxXSkuY2hhckNvZGVBdCgwKSl7aWYoKGVbaV1bMV0uX2Nsb3NlfHxlW3JdWzFdLl9vcGVuKSYmKGVbcl1bMV0uZW5kLm9mZnNldC1lW3JdWzFdLnN0YXJ0Lm9mZnNldCklMyYmISgoZVtpXVsxXS5lbmQub2Zmc2V0LWVbaV1bMV0uc3RhcnQub2Zmc2V0K2Vbcl1bMV0uZW5kLm9mZnNldC1lW3JdWzFdLnN0YXJ0Lm9mZnNldCklMykpY29udGludWU7bD1lW2ldWzFdLmVuZC5vZmZzZXQtZVtpXVsxXS5zdGFydC5vZmZzZXQ+MSYmZVtyXVsxXS5lbmQub2Zmc2V0LWVbcl1bMV0uc3RhcnQub2Zmc2V0PjE/MjoxO2xldCBkPXsuLi5lW2ldWzFdLmVuZH0saD17Li4uZVtyXVsxXS5zdGFydH07VVllKGQsLWwpLFVZZShoLGwpLG89e3R5cGU6bD4xPyJzdHJvbmdTZXF1ZW5jZSI6ImVtcGhhc2lzU2VxdWVuY2UiLHN0YXJ0OmQsZW5kOnsuLi5lW2ldWzFdLmVuZH19LHM9e3R5cGU6bD4xPyJzdHJvbmdTZXF1ZW5jZSI6ImVtcGhhc2lzU2VxdWVuY2UiLHN0YXJ0OnsuLi5lW3JdWzFdLnN0YXJ0fSxlbmQ6aH0sbj17dHlwZTpsPjE/InN0cm9uZ1RleHQiOiJlbXBoYXNpc1RleHQiLHN0YXJ0OnsuLi5lW2ldWzFdLmVuZH0sZW5kOnsuLi5lW3JdWzFdLnN0YXJ0fX0sYT17dHlwZTpsPjE/InN0cm9uZyI6ImVtcGhhc2lzIixzdGFydDp7Li4uby5zdGFydH0sZW5kOnsuLi5zLmVuZH19LGVbaV1bMV0uZW5kPXsuLi5vLnN0YXJ0fSxlW3JdWzFdLnN0YXJ0PXsuLi5zLmVuZH0sYz1bXSxlW2ldWzFdLmVuZC5vZmZzZXQtZVtpXVsxXS5zdGFydC5vZmZzZXQmJihjPWFpKGMsW1siZW50ZXIiLGVbaV1bMV0sdF0sWyJleGl0IixlW2ldWzFdLHRdXSkpLGM9YWkoYyxbWyJlbnRlciIsYSx0XSxbImVudGVyIixvLHRdLFsiZXhpdCIsbyx0XSxbImVudGVyIixuLHRdXSksYz1haShjLGY0KHQucGFyc2VyLmNvbnN0cnVjdHMuaW5zaWRlU3Bhbi5udWxsLGUuc2xpY2UoaSsxLHIpLHQpKSxjPWFpKGMsW1siZXhpdCIsbix0XSxbImVudGVyIixzLHRdLFsiZXhpdCIscyx0XSxbImV4aXQiLGEsdF1dKSxlW3JdWzFdLmVuZC5vZmZzZXQtZVtyXVsxXS5zdGFydC5vZmZzZXQ/KHU9MixjPWFpKGMsW1siZW50ZXIiLGVbcl1bMV0sdF0sWyJleGl0IixlW3JdWzFdLHRdXSkpOnU9MCxqMShlLGktMSxyLWkrMyxjKSxyPWkrYy5sZW5ndGgtdS0yO2JyZWFrfX1mb3Iocj0tMTsrK3I8ZS5sZW5ndGg7KWVbcl1bMV0udHlwZT09PSJhdHRlbnRpb25TZXF1ZW5jZSImJihlW3JdWzFdLnR5cGU9ImRhdGEiKTtyZXR1cm4gZX1mdW5jdGlvbiBCQnIoZSx0KXtsZXQgcj10aGlzLnBhcnNlci5jb25zdHJ1Y3RzLmF0dGVudGlvbk1hcmtlcnMubnVsbCxpPXRoaXMucHJldmlvdXMsYT1hYyhpKSxuO3JldHVybiBvO2Z1bmN0aW9uIG8obCl7cmV0dXJuIG49bCxlLmVudGVyKCJhdHRlbnRpb25TZXF1ZW5jZSIpLHMobCl9ZnVuY3Rpb24gcyhsKXtpZihsPT09bilyZXR1cm4gZS5jb25zdW1lKGwpLHM7bGV0IGM9ZS5leGl0KCJhdHRlbnRpb25TZXF1ZW5jZSIpLHU9YWMobCksZD0hdXx8dT09PTImJmF8fHIuaW5jbHVkZXMobCksaD0hYXx8YT09PTImJnV8fHIuaW5jbHVkZXMoaSk7cmV0dXJuIGMuX29wZW49ISEobj09PTQyP2Q6ZCYmKGF8fCFoKSksYy5fY2xvc2U9ISEobj09PTQyP2g6aCYmKHV8fCFkKSksdChsKX19ZnVuY3Rpb24gVVllKGUsdCl7ZS5jb2x1bW4rPXQsZS5vZmZzZXQrPXQsZS5fYnVmZmVySW5kZXgrPXR9dmFyIEY5LFdZZT1wKCgpPT57VXMoKTtDXygpO045KCk7Rjk9e25hbWU6ImF0dGVudGlvbiIscmVzb2x2ZUFsbDpSQnIsdG9rZW5pemU6QkJyfX0pO2Z1bmN0aW9uIEhCcihlLHQscil7bGV0IGk9MDtyZXR1cm4gYTtmdW5jdGlvbiBhKGYpe3JldHVybiBlLmVudGVyKCJhdXRvbGluayIpLGUuZW50ZXIoImF1dG9saW5rTWFya2VyIiksZS5jb25zdW1lKGYpLGUuZXhpdCgiYXV0b2xpbmtNYXJrZXIiKSxlLmVudGVyKCJhdXRvbGlua1Byb3RvY29sIiksbn1mdW5jdGlvbiBuKGYpe3JldHVybiB5aShmKT8oZS5jb25zdW1lKGYpLG8pOmY9PT02ND9yKGYpOmMoZil9ZnVuY3Rpb24gbyhmKXtyZXR1cm4gZj09PTQzfHxmPT09NDV8fGY9PT00Nnx8STEoZik/KGk9MSxzKGYpKTpjKGYpfWZ1bmN0aW9uIHMoZil7cmV0dXJuIGY9PT01OD8oZS5jb25zdW1lKGYpLGk9MCxsKTooZj09PTQzfHxmPT09NDV8fGY9PT00Nnx8STEoZikpJiZpKys8MzI/KGUuY29uc3VtZShmKSxzKTooaT0wLGMoZikpfWZ1bmN0aW9uIGwoZil7cmV0dXJuIGY9PT02Mj8oZS5leGl0KCJhdXRvbGlua1Byb3RvY29sIiksZS5lbnRlcigiYXV0b2xpbmtNYXJrZXIiKSxlLmNvbnN1bWUoZiksZS5leGl0KCJhdXRvbGlua01hcmtlciIpLGUuZXhpdCgiYXV0b2xpbmsiKSx0KTpmPT09bnVsbHx8Zj09PTMyfHxmPT09NjB8fGlkKGYpP3IoZik6KGUuY29uc3VtZShmKSxsKX1mdW5jdGlvbiBjKGYpe3JldHVybiBmPT09NjQ/KGUuY29uc3VtZShmKSx1KTokV2UoZik/KGUuY29uc3VtZShmKSxjKTpyKGYpfWZ1bmN0aW9uIHUoZil7cmV0dXJuIEkxKGYpP2QoZik6cihmKX1mdW5jdGlvbiBkKGYpe3JldHVybiBmPT09NDY/KGUuY29uc3VtZShmKSxpPTAsdSk6Zj09PTYyPyhlLmV4aXQoImF1dG9saW5rUHJvdG9jb2wiKS50eXBlPSJhdXRvbGlua0VtYWlsIixlLmVudGVyKCJhdXRvbGlua01hcmtlciIpLGUuY29uc3VtZShmKSxlLmV4aXQoImF1dG9saW5rTWFya2VyIiksZS5leGl0KCJhdXRvbGluayIpLHQpOmgoZil9ZnVuY3Rpb24gaChmKXtpZigoZj09PTQ1fHxJMShmKSkmJmkrKzw2Myl7bGV0IHg9Zj09PTQ1P2g6ZDtyZXR1cm4gZS5jb25zdW1lKGYpLHh9cmV0dXJuIHIoZil9fXZhciBMdGUsR1llPXAoKCk9PntycigpO0x0ZT17bmFtZToiYXV0b2xpbmsiLHRva2VuaXplOkhCcn19KTtmdW5jdGlvbiBidChlLHQscixpKXtsZXQgYT1pP2ktMTpOdW1iZXIuUE9TSVRJVkVfSU5GSU5JVFksbj0wO3JldHVybiBvO2Z1bmN0aW9uIG8obCl7cmV0dXJuIGN0KGwpPyhlLmVudGVyKHIpLHMobCkpOnQobCl9ZnVuY3Rpb24gcyhsKXtyZXR1cm4gY3QobCkmJm4rKzxhPyhlLmNvbnN1bWUobCkscyk6KGUuZXhpdChyKSx0KGwpKX19dmFyIFYxPXAoKCk9PntycigpfSk7ZnVuY3Rpb24gcUJyKGUsdCxyKXtyZXR1cm4gaTtmdW5jdGlvbiBpKG4pe3JldHVybiBjdChuKT9idChlLGEsImxpbmVQcmVmaXgiKShuKTphKG4pfWZ1bmN0aW9uIGEobil7cmV0dXJuIG49PT1udWxsfHxHZShuKT90KG4pOnIobil9fXZhciBacyxPXz1wKCgpPT57VjEoKTtycigpO1pzPXtwYXJ0aWFsOiEwLHRva2VuaXplOnFCcn19KTtmdW5jdGlvbiBqQnIoZSx0LHIpe2xldCBpPXRoaXM7cmV0dXJuIGE7ZnVuY3Rpb24gYShvKXtpZihvPT09NjIpe2xldCBzPWkuY29udGFpbmVyU3RhdGU7cmV0dXJuIHMub3Blbnx8KGUuZW50ZXIoImJsb2NrUXVvdGUiLHtfY29udGFpbmVyOiEwfSkscy5vcGVuPSEwKSxlLmVudGVyKCJibG9ja1F1b3RlUHJlZml4IiksZS5lbnRlcigiYmxvY2tRdW90ZU1hcmtlciIpLGUuY29uc3VtZShvKSxlLmV4aXQoImJsb2NrUXVvdGVNYXJrZXIiKSxufXJldHVybiByKG8pfWZ1bmN0aW9uIG4obyl7cmV0dXJuIGN0KG8pPyhlLmVudGVyKCJibG9ja1F1b3RlUHJlZml4V2hpdGVzcGFjZSIpLGUuY29uc3VtZShvKSxlLmV4aXQoImJsb2NrUXVvdGVQcmVmaXhXaGl0ZXNwYWNlIiksZS5leGl0KCJibG9ja1F1b3RlUHJlZml4IiksdCk6KGUuZXhpdCgiYmxvY2tRdW90ZVByZWZpeCIpLHQobykpfX1mdW5jdGlvbiBWQnIoZSx0LHIpe2xldCBpPXRoaXM7cmV0dXJuIGE7ZnVuY3Rpb24gYShvKXtyZXR1cm4gY3Qobyk/YnQoZSxuLCJsaW5lUHJlZml4IixpLnBhcnNlci5jb25zdHJ1Y3RzLmRpc2FibGUubnVsbC5pbmNsdWRlcygiY29kZUluZGVudGVkIik/dm9pZCAwOjQpKG8pOm4obyl9ZnVuY3Rpb24gbihvKXtyZXR1cm4gZS5hdHRlbXB0KFJfLHQscikobyl9fWZ1bmN0aW9uIFVCcihlKXtlLmV4aXQoImJsb2NrUXVvdGUiKX12YXIgUl8sWVllPXAoKCk9PntWMSgpO3JyKCk7Ul89e2NvbnRpbnVhdGlvbjp7dG9rZW5pemU6VkJyfSxleGl0OlVCcixuYW1lOiJibG9ja1F1b3RlIix0b2tlbml6ZTpqQnJ9fSk7ZnVuY3Rpb24gV0JyKGUsdCxyKXtyZXR1cm4gaTtmdW5jdGlvbiBpKG4pe3JldHVybiBlLmVudGVyKCJjaGFyYWN0ZXJFc2NhcGUiKSxlLmVudGVyKCJlc2NhcGVNYXJrZXIiKSxlLmNvbnN1bWUobiksZS5leGl0KCJlc2NhcGVNYXJrZXIiKSxhfWZ1bmN0aW9uIGEobil7cmV0dXJuIFBXZShuKT8oZS5lbnRlcigiY2hhcmFjdGVyRXNjYXBlVmFsdWUiKSxlLmNvbnN1bWUobiksZS5leGl0KCJjaGFyYWN0ZXJFc2NhcGVWYWx1ZSIpLGUuZXhpdCgiY2hhcmFjdGVyRXNjYXBlIiksdCk6cihuKX19dmFyIEJfLFpZZT1wKCgpPT57cnIoKTtCXz17bmFtZToiY2hhcmFjdGVyRXNjYXBlIix0b2tlbml6ZTpXQnJ9fSk7ZnVuY3Rpb24gR0JyKGUsdCxyKXtsZXQgaT10aGlzLGE9MCxuLG87cmV0dXJuIHM7ZnVuY3Rpb24gcyhkKXtyZXR1cm4gZS5lbnRlcigiY2hhcmFjdGVyUmVmZXJlbmNlIiksZS5lbnRlcigiY2hhcmFjdGVyUmVmZXJlbmNlTWFya2VyIiksZS5jb25zdW1lKGQpLGUuZXhpdCgiY2hhcmFjdGVyUmVmZXJlbmNlTWFya2VyIiksbH1mdW5jdGlvbiBsKGQpe3JldHVybiBkPT09MzU/KGUuZW50ZXIoImNoYXJhY3RlclJlZmVyZW5jZU1hcmtlck51bWVyaWMiKSxlLmNvbnN1bWUoZCksZS5leGl0KCJjaGFyYWN0ZXJSZWZlcmVuY2VNYXJrZXJOdW1lcmljIiksYyk6KGUuZW50ZXIoImNoYXJhY3RlclJlZmVyZW5jZVZhbHVlIiksbj0zMSxvPUkxLHUoZCkpfWZ1bmN0aW9uIGMoZCl7cmV0dXJuIGQ9PT04OHx8ZD09PTEyMD8oZS5lbnRlcigiY2hhcmFjdGVyUmVmZXJlbmNlTWFya2VySGV4YWRlY2ltYWwiKSxlLmNvbnN1bWUoZCksZS5leGl0KCJjaGFyYWN0ZXJSZWZlcmVuY2VNYXJrZXJIZXhhZGVjaW1hbCIpLGUuZW50ZXIoImNoYXJhY3RlclJlZmVyZW5jZVZhbHVlIiksbj02LG89SVdlLHUpOihlLmVudGVyKCJjaGFyYWN0ZXJSZWZlcmVuY2VWYWx1ZSIpLG49NyxvPUQ5LHUoZCkpfWZ1bmN0aW9uIHUoZCl7aWYoZD09PTU5JiZhKXtsZXQgaD1lLmV4aXQoImNoYXJhY3RlclJlZmVyZW5jZVZhbHVlIik7cmV0dXJuIG89PT1JMSYmIWg0KGkuc2xpY2VTZXJpYWxpemUoaCkpP3IoZCk6KGUuZW50ZXIoImNoYXJhY3RlclJlZmVyZW5jZU1hcmtlciIpLGUuY29uc3VtZShkKSxlLmV4aXQoImNoYXJhY3RlclJlZmVyZW5jZU1hcmtlciIpLGUuZXhpdCgiY2hhcmFjdGVyUmVmZXJlbmNlIiksdCl9cmV0dXJuIG8oZCkmJmErKzxuPyhlLmNvbnN1bWUoZCksdSk6cihkKX19dmFyIEhfLFhZZT1wKCgpPT57UDkoKTtycigpO0hfPXtuYW1lOiJjaGFyYWN0ZXJSZWZlcmVuY2UiLHRva2VuaXplOkdCcn19KTtmdW5jdGlvbiBZQnIoZSx0LHIpe2xldCBpPXRoaXMsYT17cGFydGlhbDohMCx0b2tlbml6ZTp6fSxuPTAsbz0wLHM7cmV0dXJuIGw7ZnVuY3Rpb24gbChNKXtyZXR1cm4gYyhNKX1mdW5jdGlvbiBjKE0pe2xldCBGPWkuZXZlbnRzW2kuZXZlbnRzLmxlbmd0aC0xXTtyZXR1cm4gbj1GJiZGWzFdLnR5cGU9PT0ibGluZVByZWZpeCI/RlsyXS5zbGljZVNlcmlhbGl6ZShGWzFdLCEwKS5sZW5ndGg6MCxzPU0sZS5lbnRlcigiY29kZUZlbmNlZCIpLGUuZW50ZXIoImNvZGVGZW5jZWRGZW5jZSIpLGUuZW50ZXIoImNvZGVGZW5jZWRGZW5jZVNlcXVlbmNlIiksdShNKX1mdW5jdGlvbiB1KE0pe3JldHVybiBNPT09cz8obysrLGUuY29uc3VtZShNKSx1KTpvPDM/cihNKTooZS5leGl0KCJjb2RlRmVuY2VkRmVuY2VTZXF1ZW5jZSIpLGN0KE0pP2J0KGUsZCwid2hpdGVzcGFjZSIpKE0pOmQoTSkpfWZ1bmN0aW9uIGQoTSl7cmV0dXJuIE09PT1udWxsfHxHZShNKT8oZS5leGl0KCJjb2RlRmVuY2VkRmVuY2UiKSxpLmludGVycnVwdD90KE0pOmUuY2hlY2soUVllLHYsTykoTSkpOihlLmVudGVyKCJjb2RlRmVuY2VkRmVuY2VJbmZvIiksZS5lbnRlcigiY2h1bmtTdHJpbmciLHtjb250ZW50VHlwZToic3RyaW5nIn0pLGgoTSkpfWZ1bmN0aW9uIGgoTSl7cmV0dXJuIE09PT1udWxsfHxHZShNKT8oZS5leGl0KCJjaHVua1N0cmluZyIpLGUuZXhpdCgiY29kZUZlbmNlZEZlbmNlSW5mbyIpLGQoTSkpOmN0KE0pPyhlLmV4aXQoImNodW5rU3RyaW5nIiksZS5leGl0KCJjb2RlRmVuY2VkRmVuY2VJbmZvIiksYnQoZSxmLCJ3aGl0ZXNwYWNlIikoTSkpOk09PT05NiYmTT09PXM/cihNKTooZS5jb25zdW1lKE0pLGgpfWZ1bmN0aW9uIGYoTSl7cmV0dXJuIE09PT1udWxsfHxHZShNKT9kKE0pOihlLmVudGVyKCJjb2RlRmVuY2VkRmVuY2VNZXRhIiksZS5lbnRlcigiY2h1bmtTdHJpbmciLHtjb250ZW50VHlwZToic3RyaW5nIn0pLHgoTSkpfWZ1bmN0aW9uIHgoTSl7cmV0dXJuIE09PT1udWxsfHxHZShNKT8oZS5leGl0KCJjaHVua1N0cmluZyIpLGUuZXhpdCgiY29kZUZlbmNlZEZlbmNlTWV0YSIpLGQoTSkpOk09PT05NiYmTT09PXM/cihNKTooZS5jb25zdW1lKE0pLHgpfWZ1bmN0aW9uIHYoTSl7cmV0dXJuIGUuYXR0ZW1wdChhLE8sYikoTSl9ZnVuY3Rpb24gYihNKXtyZXR1cm4gZS5lbnRlcigibGluZUVuZGluZyIpLGUuY29uc3VtZShNKSxlLmV4aXQoImxpbmVFbmRpbmciKSx5fWZ1bmN0aW9uIHkoTSl7cmV0dXJuIG4+MCYmY3QoTSk/YnQoZSx3LCJsaW5lUHJlZml4IixuKzEpKE0pOncoTSl9ZnVuY3Rpb24gdyhNKXtyZXR1cm4gTT09PW51bGx8fEdlKE0pP2UuY2hlY2soUVllLHYsTykoTSk6KGUuZW50ZXIoImNvZGVGbG93VmFsdWUiKSxrKE0pKX1mdW5jdGlvbiBrKE0pe3JldHVybiBNPT09bnVsbHx8R2UoTSk/KGUuZXhpdCgiY29kZUZsb3dWYWx1ZSIpLHcoTSkpOihlLmNvbnN1bWUoTSksayl9ZnVuY3Rpb24gTyhNKXtyZXR1cm4gZS5leGl0KCJjb2RlRmVuY2VkIiksdChNKX1mdW5jdGlvbiB6KE0sRixEKXtsZXQgTj0wO3JldHVybiBSO2Z1bmN0aW9uIFIoRSl7cmV0dXJuIE0uZW50ZXIoImxpbmVFbmRpbmciKSxNLmNvbnN1bWUoRSksTS5leGl0KCJsaW5lRW5kaW5nIiksX31mdW5jdGlvbiBfKEUpe3JldHVybiBNLmVudGVyKCJjb2RlRmVuY2VkRmVuY2UiKSxjdChFKT9idChNLFMsImxpbmVQcmVmaXgiLGkucGFyc2VyLmNvbnN0cnVjdHMuZGlzYWJsZS5udWxsLmluY2x1ZGVzKCJjb2RlSW5kZW50ZWQiKT92b2lkIDA6NCkoRSk6UyhFKX1mdW5jdGlvbiBTKEUpe3JldHVybiBFPT09cz8oTS5lbnRlcigiY29kZUZlbmNlZEZlbmNlU2VxdWVuY2UiKSwkKEUpKTpEKEUpfWZ1bmN0aW9uICQoRSl7cmV0dXJuIEU9PT1zPyhOKyssTS5jb25zdW1lKEUpLCQpOk4+PW8/KE0uZXhpdCgiY29kZUZlbmNlZEZlbmNlU2VxdWVuY2UiKSxjdChFKT9idChNLFQsIndoaXRlc3BhY2UiKShFKTpUKEUpKTpEKEUpfWZ1bmN0aW9uIFQoRSl7cmV0dXJuIEU9PT1udWxsfHxHZShFKT8oTS5leGl0KCJjb2RlRmVuY2VkRmVuY2UiKSxGKEUpKTpEKEUpfX19ZnVuY3Rpb24gWkJyKGUsdCxyKXtsZXQgaT10aGlzO3JldHVybiBhO2Z1bmN0aW9uIGEobyl7cmV0dXJuIG89PT1udWxsP3Iobyk6KGUuZW50ZXIoImxpbmVFbmRpbmciKSxlLmNvbnN1bWUobyksZS5leGl0KCJsaW5lRW5kaW5nIiksbil9ZnVuY3Rpb24gbihvKXtyZXR1cm4gaS5wYXJzZXIubGF6eVtpLm5vdygpLmxpbmVdP3Iobyk6dChvKX19dmFyIFFZZSxxXyxKWWU9cCgoKT0+e1YxKCk7cnIoKTtRWWU9e3BhcnRpYWw6ITAsdG9rZW5pemU6WkJyfSxxXz17Y29uY3JldGU6ITAsbmFtZToiY29kZUZlbmNlZCIsdG9rZW5pemU6WUJyfX0pO2Z1bmN0aW9uIFFCcihlLHQscil7bGV0IGk9dGhpcztyZXR1cm4gYTtmdW5jdGlvbiBhKGMpe3JldHVybiBlLmVudGVyKCJjb2RlSW5kZW50ZWQiKSxidChlLG4sImxpbmVQcmVmaXgiLDUpKGMpfWZ1bmN0aW9uIG4oYyl7bGV0IHU9aS5ldmVudHNbaS5ldmVudHMubGVuZ3RoLTFdO3JldHVybiB1JiZ1WzFdLnR5cGU9PT0ibGluZVByZWZpeCImJnVbMl0uc2xpY2VTZXJpYWxpemUodVsxXSwhMCkubGVuZ3RoPj00P28oYyk6cihjKX1mdW5jdGlvbiBvKGMpe3JldHVybiBjPT09bnVsbD9sKGMpOkdlKGMpP2UuYXR0ZW1wdChYQnIsbyxsKShjKTooZS5lbnRlcigiY29kZUZsb3dWYWx1ZSIpLHMoYykpfWZ1bmN0aW9uIHMoYyl7cmV0dXJuIGM9PT1udWxsfHxHZShjKT8oZS5leGl0KCJjb2RlRmxvd1ZhbHVlIiksbyhjKSk6KGUuY29uc3VtZShjKSxzKX1mdW5jdGlvbiBsKGMpe3JldHVybiBlLmV4aXQoImNvZGVJbmRlbnRlZCIpLHQoYyl9fWZ1bmN0aW9uIEpCcihlLHQscil7bGV0IGk9dGhpcztyZXR1cm4gYTtmdW5jdGlvbiBhKG8pe3JldHVybiBpLnBhcnNlci5sYXp5W2kubm93KCkubGluZV0/cihvKTpHZShvKT8oZS5lbnRlcigibGluZUVuZGluZyIpLGUuY29uc3VtZShvKSxlLmV4aXQoImxpbmVFbmRpbmciKSxhKTpidChlLG4sImxpbmVQcmVmaXgiLDUpKG8pfWZ1bmN0aW9uIG4obyl7bGV0IHM9aS5ldmVudHNbaS5ldmVudHMubGVuZ3RoLTFdO3JldHVybiBzJiZzWzFdLnR5cGU9PT0ibGluZVByZWZpeCImJnNbMl0uc2xpY2VTZXJpYWxpemUoc1sxXSwhMCkubGVuZ3RoPj00P3Qobyk6R2Uobyk/YShvKTpyKG8pfX12YXIgTzksWEJyLEtZZT1wKCgpPT57VjEoKTtycigpO085PXtuYW1lOiJjb2RlSW5kZW50ZWQiLHRva2VuaXplOlFCcn0sWEJyPXtwYXJ0aWFsOiEwLHRva2VuaXplOkpCcn19KTtmdW5jdGlvbiBLQnIoZSl7bGV0IHQ9ZS5sZW5ndGgtNCxyPTMsaSxhO2lmKChlW3JdWzFdLnR5cGU9PT0ibGluZUVuZGluZyJ8fGVbcl1bMV0udHlwZT09PSJzcGFjZSIpJiYoZVt0XVsxXS50eXBlPT09ImxpbmVFbmRpbmcifHxlW3RdWzFdLnR5cGU9PT0ic3BhY2UiKSl7Zm9yKGk9cjsrK2k8dDspaWYoZVtpXVsxXS50eXBlPT09ImNvZGVUZXh0RGF0YSIpe2Vbcl1bMV0udHlwZT0iY29kZVRleHRQYWRkaW5nIixlW3RdWzFdLnR5cGU9ImNvZGVUZXh0UGFkZGluZyIscis9Mix0LT0yO2JyZWFrfX1mb3IoaT1yLTEsdCsrOysraTw9dDspYT09PXZvaWQgMD9pIT09dCYmZVtpXVsxXS50eXBlIT09ImxpbmVFbmRpbmciJiYoYT1pKTooaT09PXR8fGVbaV1bMV0udHlwZT09PSJsaW5lRW5kaW5nIikmJihlW2FdWzFdLnR5cGU9ImNvZGVUZXh0RGF0YSIsaSE9PWErMiYmKGVbYV1bMV0uZW5kPWVbaS0xXVsxXS5lbmQsZS5zcGxpY2UoYSsyLGktYS0yKSx0LT1pLWEtMixpPWErMiksYT12b2lkIDApO3JldHVybiBlfWZ1bmN0aW9uIGVIcihlKXtyZXR1cm4gZSE9PTk2fHx0aGlzLmV2ZW50c1t0aGlzLmV2ZW50cy5sZW5ndGgtMV1bMV0udHlwZT09PSJjaGFyYWN0ZXJFc2NhcGUifWZ1bmN0aW9uIHRIcihlLHQscil7bGV0IGk9dGhpcyxhPTAsbixvO3JldHVybiBzO2Z1bmN0aW9uIHMoaCl7cmV0dXJuIGUuZW50ZXIoImNvZGVUZXh0IiksZS5lbnRlcigiY29kZVRleHRTZXF1ZW5jZSIpLGwoaCl9ZnVuY3Rpb24gbChoKXtyZXR1cm4gaD09PTk2PyhlLmNvbnN1bWUoaCksYSsrLGwpOihlLmV4aXQoImNvZGVUZXh0U2VxdWVuY2UiKSxjKGgpKX1mdW5jdGlvbiBjKGgpe3JldHVybiBoPT09bnVsbD9yKGgpOmg9PT0zMj8oZS5lbnRlcigic3BhY2UiKSxlLmNvbnN1bWUoaCksZS5leGl0KCJzcGFjZSIpLGMpOmg9PT05Nj8obz1lLmVudGVyKCJjb2RlVGV4dFNlcXVlbmNlIiksbj0wLGQoaCkpOkdlKGgpPyhlLmVudGVyKCJsaW5lRW5kaW5nIiksZS5jb25zdW1lKGgpLGUuZXhpdCgibGluZUVuZGluZyIpLGMpOihlLmVudGVyKCJjb2RlVGV4dERhdGEiKSx1KGgpKX1mdW5jdGlvbiB1KGgpe3JldHVybiBoPT09bnVsbHx8aD09PTMyfHxoPT09OTZ8fEdlKGgpPyhlLmV4aXQoImNvZGVUZXh0RGF0YSIpLGMoaCkpOihlLmNvbnN1bWUoaCksdSl9ZnVuY3Rpb24gZChoKXtyZXR1cm4gaD09PTk2PyhlLmNvbnN1bWUoaCksbisrLGQpOm49PT1hPyhlLmV4aXQoImNvZGVUZXh0U2VxdWVuY2UiKSxlLmV4aXQoImNvZGVUZXh0IiksdChoKSk6KG8udHlwZT0iY29kZVRleHREYXRhIix1KGgpKX19dmFyIEF0ZSxlWmU9cCgoKT0+e3JyKCk7QXRlPXtuYW1lOiJjb2RlVGV4dCIscHJldmlvdXM6ZUhyLHJlc29sdmU6S0JyLHRva2VuaXplOnRIcn19KTtmdW5jdGlvbiBSOShlLHQpe2xldCByPTA7aWYodC5sZW5ndGg8MWU0KWUucHVzaCguLi50KTtlbHNlIGZvcig7cjx0Lmxlbmd0aDspZS5wdXNoKC4uLnQuc2xpY2UocixyKzFlNCkpLHIrPTFlNH12YXIgQjksRHRlPXAoKCk9PntCOT1jbGFzc3tjb25zdHJ1Y3Rvcih0KXt0aGlzLmxlZnQ9dD9bLi4udF06W10sdGhpcy5yaWdodD1bXX1nZXQodCl7aWYodDwwfHx0Pj10aGlzLmxlZnQubGVuZ3RoK3RoaXMucmlnaHQubGVuZ3RoKXRocm93IG5ldyBSYW5nZUVycm9yKCJDYW5ub3QgYWNjZXNzIGluZGV4IGAiK3QrImAgaW4gYSBzcGxpY2UgYnVmZmVyIG9mIHNpemUgYCIrKHRoaXMubGVmdC5sZW5ndGgrdGhpcy5yaWdodC5sZW5ndGgpKyJgIik7cmV0dXJuIHQ8dGhpcy5sZWZ0Lmxlbmd0aD90aGlzLmxlZnRbdF06dGhpcy5yaWdodFt0aGlzLnJpZ2h0Lmxlbmd0aC10K3RoaXMubGVmdC5sZW5ndGgtMV19Z2V0IGxlbmd0aCgpe3JldHVybiB0aGlzLmxlZnQubGVuZ3RoK3RoaXMucmlnaHQubGVuZ3RofXNoaWZ0KCl7cmV0dXJuIHRoaXMuc2V0Q3Vyc29yKDApLHRoaXMucmlnaHQucG9wKCl9c2xpY2UodCxyKXtsZXQgaT1yPz9OdW1iZXIuUE9TSVRJVkVfSU5GSU5JVFk7cmV0dXJuIGk8dGhpcy5sZWZ0Lmxlbmd0aD90aGlzLmxlZnQuc2xpY2UodCxpKTp0PnRoaXMubGVmdC5sZW5ndGg/dGhpcy5yaWdodC5zbGljZSh0aGlzLnJpZ2h0Lmxlbmd0aC1pK3RoaXMubGVmdC5sZW5ndGgsdGhpcy5yaWdodC5sZW5ndGgtdCt0aGlzLmxlZnQubGVuZ3RoKS5yZXZlcnNlKCk6dGhpcy5sZWZ0LnNsaWNlKHQpLmNvbmNhdCh0aGlzLnJpZ2h0LnNsaWNlKHRoaXMucmlnaHQubGVuZ3RoLWkrdGhpcy5sZWZ0Lmxlbmd0aCkucmV2ZXJzZSgpKX1zcGxpY2UodCxyLGkpe2xldCBhPXJ8fDA7dGhpcy5zZXRDdXJzb3IoTWF0aC50cnVuYyh0KSk7bGV0IG49dGhpcy5yaWdodC5zcGxpY2UodGhpcy5yaWdodC5sZW5ndGgtYSxOdW1iZXIuUE9TSVRJVkVfSU5GSU5JVFkpO3JldHVybiBpJiZSOSh0aGlzLmxlZnQsaSksbi5yZXZlcnNlKCl9cG9wKCl7cmV0dXJuIHRoaXMuc2V0Q3Vyc29yKE51bWJlci5QT1NJVElWRV9JTkZJTklUWSksdGhpcy5sZWZ0LnBvcCgpfXB1c2godCl7dGhpcy5zZXRDdXJzb3IoTnVtYmVyLlBPU0lUSVZFX0lORklOSVRZKSx0aGlzLmxlZnQucHVzaCh0KX1wdXNoTWFueSh0KXt0aGlzLnNldEN1cnNvcihOdW1iZXIuUE9TSVRJVkVfSU5GSU5JVFkpLFI5KHRoaXMubGVmdCx0KX11bnNoaWZ0KHQpe3RoaXMuc2V0Q3Vyc29yKDApLHRoaXMucmlnaHQucHVzaCh0KX11bnNoaWZ0TWFueSh0KXt0aGlzLnNldEN1cnNvcigwKSxSOSh0aGlzLnJpZ2h0LHQucmV2ZXJzZSgpKX1zZXRDdXJzb3IodCl7aWYoISh0PT09dGhpcy5sZWZ0Lmxlbmd0aHx8dD50aGlzLmxlZnQubGVuZ3RoJiZ0aGlzLnJpZ2h0Lmxlbmd0aD09PTB8fHQ8MCYmdGhpcy5sZWZ0Lmxlbmd0aD09PTApKWlmKHQ8dGhpcy5sZWZ0Lmxlbmd0aCl7bGV0IHI9dGhpcy5sZWZ0LnNwbGljZSh0LE51bWJlci5QT1NJVElWRV9JTkZJTklUWSk7UjkodGhpcy5yaWdodCxyLnJldmVyc2UoKSl9ZWxzZXtsZXQgcj10aGlzLnJpZ2h0LnNwbGljZSh0aGlzLmxlZnQubGVuZ3RoK3RoaXMucmlnaHQubGVuZ3RoLXQsTnVtYmVyLlBPU0lUSVZFX0lORklOSVRZKTtSOSh0aGlzLmxlZnQsci5yZXZlcnNlKCkpfX19fSk7ZnVuY3Rpb24gal8oZSl7bGV0IHQ9e30scj0tMSxpLGEsbixvLHMsbCxjLHU9bmV3IEI5KGUpO2Zvcig7KytyPHUubGVuZ3RoOyl7Zm9yKDtyIGluIHQ7KXI9dFtyXTtpZihpPXUuZ2V0KHIpLHImJmlbMV0udHlwZT09PSJjaHVua0Zsb3ciJiZ1LmdldChyLTEpWzFdLnR5cGU9PT0ibGlzdEl0ZW1QcmVmaXgiJiYobD1pWzFdLl90b2tlbml6ZXIuZXZlbnRzLG49MCxuPGwubGVuZ3RoJiZsW25dWzFdLnR5cGU9PT0ibGluZUVuZGluZ0JsYW5rIiYmKG4rPTIpLG48bC5sZW5ndGgmJmxbbl1bMV0udHlwZT09PSJjb250ZW50IikpZm9yKDsrK248bC5sZW5ndGgmJmxbbl1bMV0udHlwZSE9PSJjb250ZW50IjspbFtuXVsxXS50eXBlPT09ImNodW5rVGV4dCImJihsW25dWzFdLl9pc0luRmlyc3RDb250ZW50T2ZMaXN0SXRlbT0hMCxuKyspO2lmKGlbMF09PT0iZW50ZXIiKWlbMV0uY29udGVudFR5cGUmJihPYmplY3QuYXNzaWduKHQsckhyKHUscikpLHI9dFtyXSxjPSEwKTtlbHNlIGlmKGlbMV0uX2NvbnRhaW5lcil7Zm9yKG49cixhPXZvaWQgMDtuLS07KWlmKG89dS5nZXQobiksb1sxXS50eXBlPT09ImxpbmVFbmRpbmcifHxvWzFdLnR5cGU9PT0ibGluZUVuZGluZ0JsYW5rIilvWzBdPT09ImVudGVyIiYmKGEmJih1LmdldChhKVsxXS50eXBlPSJsaW5lRW5kaW5nQmxhbmsiKSxvWzFdLnR5cGU9ImxpbmVFbmRpbmciLGE9bik7ZWxzZSBpZighKG9bMV0udHlwZT09PSJsaW5lUHJlZml4Inx8b1sxXS50eXBlPT09Imxpc3RJdGVtSW5kZW50IikpYnJlYWs7YSYmKGlbMV0uZW5kPXsuLi51LmdldChhKVsxXS5zdGFydH0scz11LnNsaWNlKGEscikscy51bnNoaWZ0KGkpLHUuc3BsaWNlKGEsci1hKzEscykpfX1yZXR1cm4gajEoZSwwLE51bWJlci5QT1NJVElWRV9JTkZJTklUWSx1LnNsaWNlKDApKSwhY31mdW5jdGlvbiBySHIoZSx0KXtsZXQgcj1lLmdldCh0KVsxXSxpPWUuZ2V0KHQpWzJdLGE9dC0xLG49W10sbz1yLl90b2tlbml6ZXI7b3x8KG89aS5wYXJzZXJbci5jb250ZW50VHlwZV0oci5zdGFydCksci5fY29udGVudFR5cGVUZXh0VHJhaWxpbmcmJihvLl9jb250ZW50VHlwZVRleHRUcmFpbGluZz0hMCkpO2xldCBzPW8uZXZlbnRzLGw9W10sYz17fSx1LGQsaD0tMSxmPXIseD0wLHY9MCxiPVt2XTtmb3IoO2Y7KXtmb3IoO2UuZ2V0KCsrYSlbMV0hPT1mOyk7bi5wdXNoKGEpLGYuX3Rva2VuaXplcnx8KHU9aS5zbGljZVN0cmVhbShmKSxmLm5leHR8fHUucHVzaChudWxsKSxkJiZvLmRlZmluZVNraXAoZi5zdGFydCksZi5faXNJbkZpcnN0Q29udGVudE9mTGlzdEl0ZW0mJihvLl9nZm1UYXNrbGlzdEZpcnN0Q29udGVudE9mTGlzdEl0ZW09ITApLG8ud3JpdGUodSksZi5faXNJbkZpcnN0Q29udGVudE9mTGlzdEl0ZW0mJihvLl9nZm1UYXNrbGlzdEZpcnN0Q29udGVudE9mTGlzdEl0ZW09dm9pZCAwKSksZD1mLGY9Zi5uZXh0fWZvcihmPXI7KytoPHMubGVuZ3RoOylzW2hdWzBdPT09ImV4aXQiJiZzW2gtMV1bMF09PT0iZW50ZXIiJiZzW2hdWzFdLnR5cGU9PT1zW2gtMV1bMV0udHlwZSYmc1toXVsxXS5zdGFydC5saW5lIT09c1toXVsxXS5lbmQubGluZSYmKHY9aCsxLGIucHVzaCh2KSxmLl90b2tlbml6ZXI9dm9pZCAwLGYucHJldmlvdXM9dm9pZCAwLGY9Zi5uZXh0KTtmb3Ioby5ldmVudHM9W10sZj8oZi5fdG9rZW5pemVyPXZvaWQgMCxmLnByZXZpb3VzPXZvaWQgMCk6Yi5wb3AoKSxoPWIubGVuZ3RoO2gtLTspe2xldCB5PXMuc2xpY2UoYltoXSxiW2grMV0pLHc9bi5wb3AoKTtsLnB1c2goW3csdyt5Lmxlbmd0aC0xXSksZS5zcGxpY2UodywyLHkpfWZvcihsLnJldmVyc2UoKSxoPS0xOysraDxsLmxlbmd0aDspY1t4K2xbaF1bMF1dPXgrbFtoXVsxXSx4Kz1sW2hdWzFdLWxbaF1bMF0tMTtyZXR1cm4gY312YXIgRXRlPXAoKCk9PntVcygpO0R0ZSgpO0R0ZSgpfSk7ZnVuY3Rpb24gYUhyKGUpe3JldHVybiBqXyhlKSxlfWZ1bmN0aW9uIG5IcihlLHQpe2xldCByO3JldHVybiBpO2Z1bmN0aW9uIGkocyl7cmV0dXJuIGUuZW50ZXIoImNvbnRlbnQiKSxyPWUuZW50ZXIoImNodW5rQ29udGVudCIse2NvbnRlbnRUeXBlOiJjb250ZW50In0pLGEocyl9ZnVuY3Rpb24gYShzKXtyZXR1cm4gcz09PW51bGw/bihzKTpHZShzKT9lLmNoZWNrKGlIcixvLG4pKHMpOihlLmNvbnN1bWUocyksYSl9ZnVuY3Rpb24gbihzKXtyZXR1cm4gZS5leGl0KCJjaHVua0NvbnRlbnQiKSxlLmV4aXQoImNvbnRlbnQiKSx0KHMpfWZ1bmN0aW9uIG8ocyl7cmV0dXJuIGUuY29uc3VtZShzKSxlLmV4aXQoImNodW5rQ29udGVudCIpLHIubmV4dD1lLmVudGVyKCJjaHVua0NvbnRlbnQiLHtjb250ZW50VHlwZToiY29udGVudCIscHJldmlvdXM6cn0pLHI9ci5uZXh0LGF9fWZ1bmN0aW9uIG9IcihlLHQscil7bGV0IGk9dGhpcztyZXR1cm4gYTtmdW5jdGlvbiBhKG8pe3JldHVybiBlLmV4aXQoImNodW5rQ29udGVudCIpLGUuZW50ZXIoImxpbmVFbmRpbmciKSxlLmNvbnN1bWUobyksZS5leGl0KCJsaW5lRW5kaW5nIiksYnQoZSxuLCJsaW5lUHJlZml4Iil9ZnVuY3Rpb24gbihvKXtpZihvPT09bnVsbHx8R2UobykpcmV0dXJuIHIobyk7bGV0IHM9aS5ldmVudHNbaS5ldmVudHMubGVuZ3RoLTFdO3JldHVybiFpLnBhcnNlci5jb25zdHJ1Y3RzLmRpc2FibGUubnVsbC5pbmNsdWRlcygiY29kZUluZGVudGVkIikmJnMmJnNbMV0udHlwZT09PSJsaW5lUHJlZml4IiYmc1syXS5zbGljZVNlcmlhbGl6ZShzWzFdLCEwKS5sZW5ndGg+PTQ/dChvKTplLmludGVycnVwdChpLnBhcnNlci5jb25zdHJ1Y3RzLmZsb3cscix0KShvKX19dmFyICR0ZSxpSHIsdFplPXAoKCk9PntWMSgpO3JyKCk7RXRlKCk7JHRlPXtyZXNvbHZlOmFIcix0b2tlbml6ZTpuSHJ9LGlIcj17cGFydGlhbDohMCx0b2tlbml6ZTpvSHJ9fSk7ZnVuY3Rpb24gVl8oZSx0LHIsaSxhLG4sbyxzLGwpe2xldCBjPWx8fE51bWJlci5QT1NJVElWRV9JTkZJTklUWSx1PTA7cmV0dXJuIGQ7ZnVuY3Rpb24gZCh5KXtyZXR1cm4geT09PTYwPyhlLmVudGVyKGkpLGUuZW50ZXIoYSksZS5lbnRlcihuKSxlLmNvbnN1bWUoeSksZS5leGl0KG4pLGgpOnk9PT1udWxsfHx5PT09MzJ8fHk9PT00MXx8aWQoeSk/cih5KTooZS5lbnRlcihpKSxlLmVudGVyKG8pLGUuZW50ZXIocyksZS5lbnRlcigiY2h1bmtTdHJpbmciLHtjb250ZW50VHlwZToic3RyaW5nIn0pLHYoeSkpfWZ1bmN0aW9uIGgoeSl7cmV0dXJuIHk9PT02Mj8oZS5lbnRlcihuKSxlLmNvbnN1bWUoeSksZS5leGl0KG4pLGUuZXhpdChhKSxlLmV4aXQoaSksdCk6KGUuZW50ZXIocyksZS5lbnRlcigiY2h1bmtTdHJpbmciLHtjb250ZW50VHlwZToic3RyaW5nIn0pLGYoeSkpfWZ1bmN0aW9uIGYoeSl7cmV0dXJuIHk9PT02Mj8oZS5leGl0KCJjaHVua1N0cmluZyIpLGUuZXhpdChzKSxoKHkpKTp5PT09bnVsbHx8eT09PTYwfHxHZSh5KT9yKHkpOihlLmNvbnN1bWUoeSkseT09PTkyP3g6Zil9ZnVuY3Rpb24geCh5KXtyZXR1cm4geT09PTYwfHx5PT09NjJ8fHk9PT05Mj8oZS5jb25zdW1lKHkpLGYpOmYoeSl9ZnVuY3Rpb24gdih5KXtyZXR1cm4hdSYmKHk9PT1udWxsfHx5PT09NDF8fEp0KHkpKT8oZS5leGl0KCJjaHVua1N0cmluZyIpLGUuZXhpdChzKSxlLmV4aXQobyksZS5leGl0KGkpLHQoeSkpOnU8YyYmeT09PTQwPyhlLmNvbnN1bWUoeSksdSsrLHYpOnk9PT00MT8oZS5jb25zdW1lKHkpLHUtLSx2KTp5PT09bnVsbHx8eT09PTMyfHx5PT09NDB8fGlkKHkpP3IoeSk6KGUuY29uc3VtZSh5KSx5PT09OTI/Yjp2KX1mdW5jdGlvbiBiKHkpe3JldHVybiB5PT09NDB8fHk9PT00MXx8eT09PTkyPyhlLmNvbnN1bWUoeSksdik6dih5KX19dmFyIEl0ZT1wKCgpPT57cnIoKX0pO2Z1bmN0aW9uIFVfKGUsdCxyLGksYSxuKXtsZXQgbz10aGlzLHM9MCxsO3JldHVybiBjO2Z1bmN0aW9uIGMoZil7cmV0dXJuIGUuZW50ZXIoaSksZS5lbnRlcihhKSxlLmNvbnN1bWUoZiksZS5leGl0KGEpLGUuZW50ZXIobiksdX1mdW5jdGlvbiB1KGYpe3JldHVybiBzPjk5OXx8Zj09PW51bGx8fGY9PT05MXx8Zj09PTkzJiYhbHx8Zj09PTk0JiYhcyYmIl9oaWRkZW5Gb290bm90ZVN1cHBvcnQiaW4gby5wYXJzZXIuY29uc3RydWN0cz9yKGYpOmY9PT05Mz8oZS5leGl0KG4pLGUuZW50ZXIoYSksZS5jb25zdW1lKGYpLGUuZXhpdChhKSxlLmV4aXQoaSksdCk6R2UoZik/KGUuZW50ZXIoImxpbmVFbmRpbmciKSxlLmNvbnN1bWUoZiksZS5leGl0KCJsaW5lRW5kaW5nIiksdSk6KGUuZW50ZXIoImNodW5rU3RyaW5nIix7Y29udGVudFR5cGU6InN0cmluZyJ9KSxkKGYpKX1mdW5jdGlvbiBkKGYpe3JldHVybiBmPT09bnVsbHx8Zj09PTkxfHxmPT09OTN8fEdlKGYpfHxzKys+OTk5PyhlLmV4aXQoImNodW5rU3RyaW5nIiksdShmKSk6KGUuY29uc3VtZShmKSxsfHwobD0hY3QoZikpLGY9PT05Mj9oOmQpfWZ1bmN0aW9uIGgoZil7cmV0dXJuIGY9PT05MXx8Zj09PTkyfHxmPT09OTM/KGUuY29uc3VtZShmKSxzKyssZCk6ZChmKX19dmFyIFB0ZT1wKCgpPT57cnIoKX0pO2Z1bmN0aW9uIFdfKGUsdCxyLGksYSxuKXtsZXQgbztyZXR1cm4gcztmdW5jdGlvbiBzKGgpe3JldHVybiBoPT09MzR8fGg9PT0zOXx8aD09PTQwPyhlLmVudGVyKGkpLGUuZW50ZXIoYSksZS5jb25zdW1lKGgpLGUuZXhpdChhKSxvPWg9PT00MD80MTpoLGwpOnIoaCl9ZnVuY3Rpb24gbChoKXtyZXR1cm4gaD09PW8/KGUuZW50ZXIoYSksZS5jb25zdW1lKGgpLGUuZXhpdChhKSxlLmV4aXQoaSksdCk6KGUuZW50ZXIobiksYyhoKSl9ZnVuY3Rpb24gYyhoKXtyZXR1cm4gaD09PW8/KGUuZXhpdChuKSxsKG8pKTpoPT09bnVsbD9yKGgpOkdlKGgpPyhlLmVudGVyKCJsaW5lRW5kaW5nIiksZS5jb25zdW1lKGgpLGUuZXhpdCgibGluZUVuZGluZyIpLGJ0KGUsYywibGluZVByZWZpeCIpKTooZS5lbnRlcigiY2h1bmtTdHJpbmciLHtjb250ZW50VHlwZToic3RyaW5nIn0pLHUoaCkpfWZ1bmN0aW9uIHUoaCl7cmV0dXJuIGg9PT1vfHxoPT09bnVsbHx8R2UoaCk/KGUuZXhpdCgiY2h1bmtTdHJpbmciKSxjKGgpKTooZS5jb25zdW1lKGgpLGg9PT05Mj9kOnUpfWZ1bmN0aW9uIGQoaCl7cmV0dXJuIGg9PT1vfHxoPT09OTI/KGUuY29uc3VtZShoKSx1KTp1KGgpfX12YXIgTnRlPXAoKCk9PntWMSgpO3JyKCl9KTtmdW5jdGlvbiBkZChlLHQpe2xldCByO3JldHVybiBpO2Z1bmN0aW9uIGkoYSl7cmV0dXJuIEdlKGEpPyhlLmVudGVyKCJsaW5lRW5kaW5nIiksZS5jb25zdW1lKGEpLGUuZXhpdCgibGluZUVuZGluZyIpLHI9ITAsaSk6Y3QoYSk/YnQoZSxpLHI/ImxpbmVQcmVmaXgiOiJsaW5lU3VmZml4IikoYSk6dChhKX19dmFyIEZ0ZT1wKCgpPT57VjEoKTtycigpfSk7ZnVuY3Rpb24gbEhyKGUsdCxyKXtsZXQgaT10aGlzLGE7cmV0dXJuIG47ZnVuY3Rpb24gbihmKXtyZXR1cm4gZS5lbnRlcigiZGVmaW5pdGlvbiIpLG8oZil9ZnVuY3Rpb24gbyhmKXtyZXR1cm4gVV8uY2FsbChpLGUscyxyLCJkZWZpbml0aW9uTGFiZWwiLCJkZWZpbml0aW9uTGFiZWxNYXJrZXIiLCJkZWZpbml0aW9uTGFiZWxTdHJpbmciKShmKX1mdW5jdGlvbiBzKGYpe3JldHVybiBhPVAxKGkuc2xpY2VTZXJpYWxpemUoaS5ldmVudHNbaS5ldmVudHMubGVuZ3RoLTFdWzFdKS5zbGljZSgxLC0xKSksZj09PTU4PyhlLmVudGVyKCJkZWZpbml0aW9uTWFya2VyIiksZS5jb25zdW1lKGYpLGUuZXhpdCgiZGVmaW5pdGlvbk1hcmtlciIpLGwpOnIoZil9ZnVuY3Rpb24gbChmKXtyZXR1cm4gSnQoZik/ZGQoZSxjKShmKTpjKGYpfWZ1bmN0aW9uIGMoZil7cmV0dXJuIFZfKGUsdSxyLCJkZWZpbml0aW9uRGVzdGluYXRpb24iLCJkZWZpbml0aW9uRGVzdGluYXRpb25MaXRlcmFsIiwiZGVmaW5pdGlvbkRlc3RpbmF0aW9uTGl0ZXJhbE1hcmtlciIsImRlZmluaXRpb25EZXN0aW5hdGlvblJhdyIsImRlZmluaXRpb25EZXN0aW5hdGlvblN0cmluZyIpKGYpfWZ1bmN0aW9uIHUoZil7cmV0dXJuIGUuYXR0ZW1wdChzSHIsZCxkKShmKX1mdW5jdGlvbiBkKGYpe3JldHVybiBjdChmKT9idChlLGgsIndoaXRlc3BhY2UiKShmKTpoKGYpfWZ1bmN0aW9uIGgoZil7cmV0dXJuIGY9PT1udWxsfHxHZShmKT8oZS5leGl0KCJkZWZpbml0aW9uIiksaS5wYXJzZXIuZGVmaW5lZC5wdXNoKGEpLHQoZikpOnIoZil9fWZ1bmN0aW9uIGNIcihlLHQscil7cmV0dXJuIGk7ZnVuY3Rpb24gaShzKXtyZXR1cm4gSnQocyk/ZGQoZSxhKShzKTpyKHMpfWZ1bmN0aW9uIGEocyl7cmV0dXJuIFdfKGUsbixyLCJkZWZpbml0aW9uVGl0bGUiLCJkZWZpbml0aW9uVGl0bGVNYXJrZXIiLCJkZWZpbml0aW9uVGl0bGVTdHJpbmciKShzKX1mdW5jdGlvbiBuKHMpe3JldHVybiBjdChzKT9idChlLG8sIndoaXRlc3BhY2UiKShzKTpvKHMpfWZ1bmN0aW9uIG8ocyl7cmV0dXJuIHM9PT1udWxsfHxHZShzKT90KHMpOnIocyl9fXZhciBPdGUsc0hyLHJaZT1wKCgpPT57SXRlKCk7UHRlKCk7VjEoKTtOdGUoKTtGdGUoKTtycigpO3A0KCk7T3RlPXtuYW1lOiJkZWZpbml0aW9uIix0b2tlbml6ZTpsSHJ9LHNIcj17cGFydGlhbDohMCx0b2tlbml6ZTpjSHJ9fSk7ZnVuY3Rpb24gZEhyKGUsdCxyKXtyZXR1cm4gaTtmdW5jdGlvbiBpKG4pe3JldHVybiBlLmVudGVyKCJoYXJkQnJlYWtFc2NhcGUiKSxlLmNvbnN1bWUobiksYX1mdW5jdGlvbiBhKG4pe3JldHVybiBHZShuKT8oZS5leGl0KCJoYXJkQnJlYWtFc2NhcGUiKSx0KG4pKTpyKG4pfX12YXIgUnRlLGlaZT1wKCgpPT57cnIoKTtSdGU9e25hbWU6ImhhcmRCcmVha0VzY2FwZSIsdG9rZW5pemU6ZEhyfX0pO2Z1bmN0aW9uIHVIcihlLHQpe2xldCByPWUubGVuZ3RoLTIsaT0zLGEsbjtyZXR1cm4gZVtpXVsxXS50eXBlPT09IndoaXRlc3BhY2UiJiYoaSs9Miksci0yPmkmJmVbcl1bMV0udHlwZT09PSJ3aGl0ZXNwYWNlIiYmKHItPTIpLGVbcl1bMV0udHlwZT09PSJhdHhIZWFkaW5nU2VxdWVuY2UiJiYoaT09PXItMXx8ci00PmkmJmVbci0yXVsxXS50eXBlPT09IndoaXRlc3BhY2UiKSYmKHItPWkrMT09PXI/Mjo0KSxyPmkmJihhPXt0eXBlOiJhdHhIZWFkaW5nVGV4dCIsc3RhcnQ6ZVtpXVsxXS5zdGFydCxlbmQ6ZVtyXVsxXS5lbmR9LG49e3R5cGU6ImNodW5rVGV4dCIsc3RhcnQ6ZVtpXVsxXS5zdGFydCxlbmQ6ZVtyXVsxXS5lbmQsY29udGVudFR5cGU6InRleHQifSxqMShlLGksci1pKzEsW1siZW50ZXIiLGEsdF0sWyJlbnRlciIsbix0XSxbImV4aXQiLG4sdF0sWyJleGl0IixhLHRdXSkpLGV9ZnVuY3Rpb24gcEhyKGUsdCxyKXtsZXQgaT0wO3JldHVybiBhO2Z1bmN0aW9uIGEodSl7cmV0dXJuIGUuZW50ZXIoImF0eEhlYWRpbmciKSxuKHUpfWZ1bmN0aW9uIG4odSl7cmV0dXJuIGUuZW50ZXIoImF0eEhlYWRpbmdTZXF1ZW5jZSIpLG8odSl9ZnVuY3Rpb24gbyh1KXtyZXR1cm4gdT09PTM1JiZpKys8Nj8oZS5jb25zdW1lKHUpLG8pOnU9PT1udWxsfHxKdCh1KT8oZS5leGl0KCJhdHhIZWFkaW5nU2VxdWVuY2UiKSxzKHUpKTpyKHUpfWZ1bmN0aW9uIHModSl7cmV0dXJuIHU9PT0zNT8oZS5lbnRlcigiYXR4SGVhZGluZ1NlcXVlbmNlIiksbCh1KSk6dT09PW51bGx8fEdlKHUpPyhlLmV4aXQoImF0eEhlYWRpbmciKSx0KHUpKTpjdCh1KT9idChlLHMsIndoaXRlc3BhY2UiKSh1KTooZS5lbnRlcigiYXR4SGVhZGluZ1RleHQiKSxjKHUpKX1mdW5jdGlvbiBsKHUpe3JldHVybiB1PT09MzU/KGUuY29uc3VtZSh1KSxsKTooZS5leGl0KCJhdHhIZWFkaW5nU2VxdWVuY2UiKSxzKHUpKX1mdW5jdGlvbiBjKHUpe3JldHVybiB1PT09bnVsbHx8dT09PTM1fHxKdCh1KT8oZS5leGl0KCJhdHhIZWFkaW5nVGV4dCIpLHModSkpOihlLmNvbnN1bWUodSksYyl9fXZhciBCdGUsYVplPXAoKCk9PntWMSgpO3JyKCk7VXMoKTtCdGU9e25hbWU6ImhlYWRpbmdBdHgiLHJlc29sdmU6dUhyLHRva2VuaXplOnBIcn19KTt2YXIgblplLEh0ZSxvWmU9cCgoKT0+e25aZT1bImFkZHJlc3MiLCJhcnRpY2xlIiwiYXNpZGUiLCJiYXNlIiwiYmFzZWZvbnQiLCJibG9ja3F1b3RlIiwiYm9keSIsImNhcHRpb24iLCJjZW50ZXIiLCJjb2wiLCJjb2xncm91cCIsImRkIiwiZGV0YWlscyIsImRpYWxvZyIsImRpciIsImRpdiIsImRsIiwiZHQiLCJmaWVsZHNldCIsImZpZ2NhcHRpb24iLCJmaWd1cmUiLCJmb290ZXIiLCJmb3JtIiwiZnJhbWUiLCJmcmFtZXNldCIsImgxIiwiaDIiLCJoMyIsImg0IiwiaDUiLCJoNiIsImhlYWQiLCJoZWFkZXIiLCJociIsImh0bWwiLCJpZnJhbWUiLCJsZWdlbmQiLCJsaSIsImxpbmsiLCJtYWluIiwibWVudSIsIm1lbnVpdGVtIiwibmF2Iiwibm9mcmFtZXMiLCJvbCIsIm9wdGdyb3VwIiwib3B0aW9uIiwicCIsInBhcmFtIiwic2VhcmNoIiwic2VjdGlvbiIsInN1bW1hcnkiLCJ0YWJsZSIsInRib2R5IiwidGQiLCJ0Zm9vdCIsInRoIiwidGhlYWQiLCJ0aXRsZSIsInRyIiwidHJhY2siLCJ1bCJdLEh0ZT1bInByZSIsInNjcmlwdCIsInN0eWxlIiwidGV4dGFyZWEiXX0pO2Z1bmN0aW9uIG1IcihlKXtsZXQgdD1lLmxlbmd0aDtmb3IoO3QtLSYmIShlW3RdWzBdPT09ImVudGVyIiYmZVt0XVsxXS50eXBlPT09Imh0bWxGbG93Iik7KTtyZXR1cm4gdD4xJiZlW3QtMl1bMV0udHlwZT09PSJsaW5lUHJlZml4IiYmKGVbdF1bMV0uc3RhcnQ9ZVt0LTJdWzFdLnN0YXJ0LGVbdCsxXVsxXS5zdGFydD1lW3QtMl1bMV0uc3RhcnQsZS5zcGxpY2UodC0yLDIpKSxlfWZ1bmN0aW9uIGdIcihlLHQscil7bGV0IGk9dGhpcyxhLG4sbyxzLGw7cmV0dXJuIGM7ZnVuY3Rpb24gYyhJKXtyZXR1cm4gdShJKX1mdW5jdGlvbiB1KEkpe3JldHVybiBlLmVudGVyKCJodG1sRmxvdyIpLGUuZW50ZXIoImh0bWxGbG93RGF0YSIpLGUuY29uc3VtZShJKSxkfWZ1bmN0aW9uIGQoSSl7cmV0dXJuIEk9PT0zMz8oZS5jb25zdW1lKEkpLGgpOkk9PT00Nz8oZS5jb25zdW1lKEkpLG49ITAsdik6ST09PTYzPyhlLmNvbnN1bWUoSSksYT0zLGkuaW50ZXJydXB0P3Q6UCk6eWkoSSk/KGUuY29uc3VtZShJKSxvPVN0cmluZy5mcm9tQ2hhckNvZGUoSSksYik6cihJKX1mdW5jdGlvbiBoKEkpe3JldHVybiBJPT09NDU/KGUuY29uc3VtZShJKSxhPTIsZik6ST09PTkxPyhlLmNvbnN1bWUoSSksYT01LHM9MCx4KTp5aShJKT8oZS5jb25zdW1lKEkpLGE9NCxpLmludGVycnVwdD90OlApOnIoSSl9ZnVuY3Rpb24gZihJKXtyZXR1cm4gST09PTQ1PyhlLmNvbnN1bWUoSSksaS5pbnRlcnJ1cHQ/dDpQKTpyKEkpfWZ1bmN0aW9uIHgoSSl7bGV0IG5lPSJDREFUQVsiO3JldHVybiBJPT09bmUuY2hhckNvZGVBdChzKyspPyhlLmNvbnN1bWUoSSkscz09PW5lLmxlbmd0aD9pLmludGVycnVwdD90OlM6eCk6cihJKX1mdW5jdGlvbiB2KEkpe3JldHVybiB5aShJKT8oZS5jb25zdW1lKEkpLG89U3RyaW5nLmZyb21DaGFyQ29kZShJKSxiKTpyKEkpfWZ1bmN0aW9uIGIoSSl7aWYoST09PW51bGx8fEk9PT00N3x8ST09PTYyfHxKdChJKSl7bGV0IG5lPUk9PT00NyxrZT1vLnRvTG93ZXJDYXNlKCk7cmV0dXJuIW5lJiYhbiYmSHRlLmluY2x1ZGVzKGtlKT8oYT0xLGkuaW50ZXJydXB0P3QoSSk6UyhJKSk6blplLmluY2x1ZGVzKG8udG9Mb3dlckNhc2UoKSk/KGE9NixuZT8oZS5jb25zdW1lKEkpLHkpOmkuaW50ZXJydXB0P3QoSSk6UyhJKSk6KGE9NyxpLmludGVycnVwdCYmIWkucGFyc2VyLmxhenlbaS5ub3coKS5saW5lXT9yKEkpOm4/dyhJKTprKEkpKX1yZXR1cm4gST09PTQ1fHxJMShJKT8oZS5jb25zdW1lKEkpLG8rPVN0cmluZy5mcm9tQ2hhckNvZGUoSSksYik6cihJKX1mdW5jdGlvbiB5KEkpe3JldHVybiBJPT09NjI/KGUuY29uc3VtZShJKSxpLmludGVycnVwdD90OlMpOnIoSSl9ZnVuY3Rpb24gdyhJKXtyZXR1cm4gY3QoSSk/KGUuY29uc3VtZShJKSx3KTpSKEkpfWZ1bmN0aW9uIGsoSSl7cmV0dXJuIEk9PT00Nz8oZS5jb25zdW1lKEkpLFIpOkk9PT01OHx8ST09PTk1fHx5aShJKT8oZS5jb25zdW1lKEkpLE8pOmN0KEkpPyhlLmNvbnN1bWUoSSksayk6UihJKX1mdW5jdGlvbiBPKEkpe3JldHVybiBJPT09NDV8fEk9PT00Nnx8ST09PTU4fHxJPT09OTV8fEkxKEkpPyhlLmNvbnN1bWUoSSksTyk6eihJKX1mdW5jdGlvbiB6KEkpe3JldHVybiBJPT09NjE/KGUuY29uc3VtZShJKSxNKTpjdChJKT8oZS5jb25zdW1lKEkpLHopOmsoSSl9ZnVuY3Rpb24gTShJKXtyZXR1cm4gST09PW51bGx8fEk9PT02MHx8ST09PTYxfHxJPT09NjJ8fEk9PT05Nj9yKEkpOkk9PT0zNHx8ST09PTM5PyhlLmNvbnN1bWUoSSksbD1JLEYpOmN0KEkpPyhlLmNvbnN1bWUoSSksTSk6RChJKX1mdW5jdGlvbiBGKEkpe3JldHVybiBJPT09bD8oZS5jb25zdW1lKEkpLGw9bnVsbCxOKTpJPT09bnVsbHx8R2UoSSk/cihJKTooZS5jb25zdW1lKEkpLEYpfWZ1bmN0aW9uIEQoSSl7cmV0dXJuIEk9PT1udWxsfHxJPT09MzR8fEk9PT0zOXx8ST09PTQ3fHxJPT09NjB8fEk9PT02MXx8ST09PTYyfHxJPT09OTZ8fEp0KEkpP3ooSSk6KGUuY29uc3VtZShJKSxEKX1mdW5jdGlvbiBOKEkpe3JldHVybiBJPT09NDd8fEk9PT02Mnx8Y3QoSSk/ayhJKTpyKEkpfWZ1bmN0aW9uIFIoSSl7cmV0dXJuIEk9PT02Mj8oZS5jb25zdW1lKEkpLF8pOnIoSSl9ZnVuY3Rpb24gXyhJKXtyZXR1cm4gST09PW51bGx8fEdlKEkpP1MoSSk6Y3QoSSk/KGUuY29uc3VtZShJKSxfKTpyKEkpfWZ1bmN0aW9uIFMoSSl7cmV0dXJuIEk9PT00NSYmYT09PTI/KGUuY29uc3VtZShJKSxxKTpJPT09NjAmJmE9PT0xPyhlLmNvbnN1bWUoSSksQik6ST09PTYyJiZhPT09ND8oZS5jb25zdW1lKEkpLGdlKTpJPT09NjMmJmE9PT0zPyhlLmNvbnN1bWUoSSksUCk6ST09PTkzJiZhPT09NT8oZS5jb25zdW1lKEkpLGVlKTpHZShJKSYmKGE9PT02fHxhPT09Nyk/KGUuZXhpdCgiaHRtbEZsb3dEYXRhIiksZS5jaGVjayhoSHIsd2UsJCkoSSkpOkk9PT1udWxsfHxHZShJKT8oZS5leGl0KCJodG1sRmxvd0RhdGEiKSwkKEkpKTooZS5jb25zdW1lKEkpLFMpfWZ1bmN0aW9uICQoSSl7cmV0dXJuIGUuY2hlY2soZkhyLFQsd2UpKEkpfWZ1bmN0aW9uIFQoSSl7cmV0dXJuIGUuZW50ZXIoImxpbmVFbmRpbmciKSxlLmNvbnN1bWUoSSksZS5leGl0KCJsaW5lRW5kaW5nIiksRX1mdW5jdGlvbiBFKEkpe3JldHVybiBJPT09bnVsbHx8R2UoSSk/JChJKTooZS5lbnRlcigiaHRtbEZsb3dEYXRhIiksUyhJKSl9ZnVuY3Rpb24gcShJKXtyZXR1cm4gST09PTQ1PyhlLmNvbnN1bWUoSSksUCk6UyhJKX1mdW5jdGlvbiBCKEkpe3JldHVybiBJPT09NDc/KGUuY29uc3VtZShJKSxvPSIiLEcpOlMoSSl9ZnVuY3Rpb24gRyhJKXtpZihJPT09NjIpe2xldCBuZT1vLnRvTG93ZXJDYXNlKCk7cmV0dXJuIEh0ZS5pbmNsdWRlcyhuZSk/KGUuY29uc3VtZShJKSxnZSk6UyhJKX1yZXR1cm4geWkoSSkmJm8ubGVuZ3RoPDg/KGUuY29uc3VtZShJKSxvKz1TdHJpbmcuZnJvbUNoYXJDb2RlKEkpLEcpOlMoSSl9ZnVuY3Rpb24gZWUoSSl7cmV0dXJuIEk9PT05Mz8oZS5jb25zdW1lKEkpLFApOlMoSSl9ZnVuY3Rpb24gUChJKXtyZXR1cm4gST09PTYyPyhlLmNvbnN1bWUoSSksZ2UpOkk9PT00NSYmYT09PTI/KGUuY29uc3VtZShJKSxQKTpTKEkpfWZ1bmN0aW9uIGdlKEkpe3JldHVybiBJPT09bnVsbHx8R2UoSSk/KGUuZXhpdCgiaHRtbEZsb3dEYXRhIiksd2UoSSkpOihlLmNvbnN1bWUoSSksZ2UpfWZ1bmN0aW9uIHdlKEkpe3JldHVybiBlLmV4aXQoImh0bWxGbG93IiksdChJKX19ZnVuY3Rpb24gYkhyKGUsdCxyKXtsZXQgaT10aGlzO3JldHVybiBhO2Z1bmN0aW9uIGEobyl7cmV0dXJuIEdlKG8pPyhlLmVudGVyKCJsaW5lRW5kaW5nIiksZS5jb25zdW1lKG8pLGUuZXhpdCgibGluZUVuZGluZyIpLG4pOnIobyl9ZnVuY3Rpb24gbihvKXtyZXR1cm4gaS5wYXJzZXIubGF6eVtpLm5vdygpLmxpbmVdP3Iobyk6dChvKX19ZnVuY3Rpb24gdkhyKGUsdCxyKXtyZXR1cm4gaTtmdW5jdGlvbiBpKGEpe3JldHVybiBlLmVudGVyKCJsaW5lRW5kaW5nIiksZS5jb25zdW1lKGEpLGUuZXhpdCgibGluZUVuZGluZyIpLGUuYXR0ZW1wdChacyx0LHIpfX12YXIgcXRlLGhIcixmSHIsc1plPXAoKCk9PntycigpO29aZSgpO09fKCk7cXRlPXtjb25jcmV0ZTohMCxuYW1lOiJodG1sRmxvdyIscmVzb2x2ZVRvOm1Icix0b2tlbml6ZTpnSHJ9LGhIcj17cGFydGlhbDohMCx0b2tlbml6ZTp2SHJ9LGZIcj17cGFydGlhbDohMCx0b2tlbml6ZTpiSHJ9fSk7ZnVuY3Rpb24geEhyKGUsdCxyKXtsZXQgaT10aGlzLGEsbixvO3JldHVybiBzO2Z1bmN0aW9uIHMoUCl7cmV0dXJuIGUuZW50ZXIoImh0bWxUZXh0IiksZS5lbnRlcigiaHRtbFRleHREYXRhIiksZS5jb25zdW1lKFApLGx9ZnVuY3Rpb24gbChQKXtyZXR1cm4gUD09PTMzPyhlLmNvbnN1bWUoUCksYyk6UD09PTQ3PyhlLmNvbnN1bWUoUCkseik6UD09PTYzPyhlLmNvbnN1bWUoUCksayk6eWkoUCk/KGUuY29uc3VtZShQKSxEKTpyKFApfWZ1bmN0aW9uIGMoUCl7cmV0dXJuIFA9PT00NT8oZS5jb25zdW1lKFApLHUpOlA9PT05MT8oZS5jb25zdW1lKFApLG49MCx4KTp5aShQKT8oZS5jb25zdW1lKFApLHcpOnIoUCl9ZnVuY3Rpb24gdShQKXtyZXR1cm4gUD09PTQ1PyhlLmNvbnN1bWUoUCksZik6cihQKX1mdW5jdGlvbiBkKFApe3JldHVybiBQPT09bnVsbD9yKFApOlA9PT00NT8oZS5jb25zdW1lKFApLGgpOkdlKFApPyhvPWQsQihQKSk6KGUuY29uc3VtZShQKSxkKX1mdW5jdGlvbiBoKFApe3JldHVybiBQPT09NDU/KGUuY29uc3VtZShQKSxmKTpkKFApfWZ1bmN0aW9uIGYoUCl7cmV0dXJuIFA9PT02Mj9xKFApOlA9PT00NT9oKFApOmQoUCl9ZnVuY3Rpb24geChQKXtsZXQgZ2U9IkNEQVRBWyI7cmV0dXJuIFA9PT1nZS5jaGFyQ29kZUF0KG4rKyk/KGUuY29uc3VtZShQKSxuPT09Z2UubGVuZ3RoP3Y6eCk6cihQKX1mdW5jdGlvbiB2KFApe3JldHVybiBQPT09bnVsbD9yKFApOlA9PT05Mz8oZS5jb25zdW1lKFApLGIpOkdlKFApPyhvPXYsQihQKSk6KGUuY29uc3VtZShQKSx2KX1mdW5jdGlvbiBiKFApe3JldHVybiBQPT09OTM/KGUuY29uc3VtZShQKSx5KTp2KFApfWZ1bmN0aW9uIHkoUCl7cmV0dXJuIFA9PT02Mj9xKFApOlA9PT05Mz8oZS5jb25zdW1lKFApLHkpOnYoUCl9ZnVuY3Rpb24gdyhQKXtyZXR1cm4gUD09PW51bGx8fFA9PT02Mj9xKFApOkdlKFApPyhvPXcsQihQKSk6KGUuY29uc3VtZShQKSx3KX1mdW5jdGlvbiBrKFApe3JldHVybiBQPT09bnVsbD9yKFApOlA9PT02Mz8oZS5jb25zdW1lKFApLE8pOkdlKFApPyhvPWssQihQKSk6KGUuY29uc3VtZShQKSxrKX1mdW5jdGlvbiBPKFApe3JldHVybiBQPT09NjI/cShQKTprKFApfWZ1bmN0aW9uIHooUCl7cmV0dXJuIHlpKFApPyhlLmNvbnN1bWUoUCksTSk6cihQKX1mdW5jdGlvbiBNKFApe3JldHVybiBQPT09NDV8fEkxKFApPyhlLmNvbnN1bWUoUCksTSk6RihQKX1mdW5jdGlvbiBGKFApe3JldHVybiBHZShQKT8obz1GLEIoUCkpOmN0KFApPyhlLmNvbnN1bWUoUCksRik6cShQKX1mdW5jdGlvbiBEKFApe3JldHVybiBQPT09NDV8fEkxKFApPyhlLmNvbnN1bWUoUCksRCk6UD09PTQ3fHxQPT09NjJ8fEp0KFApP04oUCk6cihQKX1mdW5jdGlvbiBOKFApe3JldHVybiBQPT09NDc/KGUuY29uc3VtZShQKSxxKTpQPT09NTh8fFA9PT05NXx8eWkoUCk/KGUuY29uc3VtZShQKSxSKTpHZShQKT8obz1OLEIoUCkpOmN0KFApPyhlLmNvbnN1bWUoUCksTik6cShQKX1mdW5jdGlvbiBSKFApe3JldHVybiBQPT09NDV8fFA9PT00Nnx8UD09PTU4fHxQPT09OTV8fEkxKFApPyhlLmNvbnN1bWUoUCksUik6XyhQKX1mdW5jdGlvbiBfKFApe3JldHVybiBQPT09NjE/KGUuY29uc3VtZShQKSxTKTpHZShQKT8obz1fLEIoUCkpOmN0KFApPyhlLmNvbnN1bWUoUCksXyk6TihQKX1mdW5jdGlvbiBTKFApe3JldHVybiBQPT09bnVsbHx8UD09PTYwfHxQPT09NjF8fFA9PT02Mnx8UD09PTk2P3IoUCk6UD09PTM0fHxQPT09Mzk/KGUuY29uc3VtZShQKSxhPVAsJCk6R2UoUCk/KG89UyxCKFApKTpjdChQKT8oZS5jb25zdW1lKFApLFMpOihlLmNvbnN1bWUoUCksVCl9ZnVuY3Rpb24gJChQKXtyZXR1cm4gUD09PWE/KGUuY29uc3VtZShQKSxhPXZvaWQgMCxFKTpQPT09bnVsbD9yKFApOkdlKFApPyhvPSQsQihQKSk6KGUuY29uc3VtZShQKSwkKX1mdW5jdGlvbiBUKFApe3JldHVybiBQPT09bnVsbHx8UD09PTM0fHxQPT09Mzl8fFA9PT02MHx8UD09PTYxfHxQPT09OTY/cihQKTpQPT09NDd8fFA9PT02Mnx8SnQoUCk/TihQKTooZS5jb25zdW1lKFApLFQpfWZ1bmN0aW9uIEUoUCl7cmV0dXJuIFA9PT00N3x8UD09PTYyfHxKdChQKT9OKFApOnIoUCl9ZnVuY3Rpb24gcShQKXtyZXR1cm4gUD09PTYyPyhlLmNvbnN1bWUoUCksZS5leGl0KCJodG1sVGV4dERhdGEiKSxlLmV4aXQoImh0bWxUZXh0IiksdCk6cihQKX1mdW5jdGlvbiBCKFApe3JldHVybiBlLmV4aXQoImh0bWxUZXh0RGF0YSIpLGUuZW50ZXIoImxpbmVFbmRpbmciKSxlLmNvbnN1bWUoUCksZS5leGl0KCJsaW5lRW5kaW5nIiksR31mdW5jdGlvbiBHKFApe3JldHVybiBjdChQKT9idChlLGVlLCJsaW5lUHJlZml4IixpLnBhcnNlci5jb25zdHJ1Y3RzLmRpc2FibGUubnVsbC5pbmNsdWRlcygiY29kZUluZGVudGVkIik/dm9pZCAwOjQpKFApOmVlKFApfWZ1bmN0aW9uIGVlKFApe3JldHVybiBlLmVudGVyKCJodG1sVGV4dERhdGEiKSxvKFApfX12YXIganRlLGxaZT1wKCgpPT57VjEoKTtycigpO2p0ZT17bmFtZToiaHRtbFRleHQiLHRva2VuaXplOnhIcn19KTtmdW5jdGlvbiBrSHIoZSl7bGV0IHQ9LTEscj1bXTtmb3IoOysrdDxlLmxlbmd0aDspe2xldCBpPWVbdF1bMV07aWYoci5wdXNoKGVbdF0pLGkudHlwZT09PSJsYWJlbEltYWdlInx8aS50eXBlPT09ImxhYmVsTGluayJ8fGkudHlwZT09PSJsYWJlbEVuZCIpe2xldCBhPWkudHlwZT09PSJsYWJlbEltYWdlIj80OjI7aS50eXBlPSJkYXRhIix0Kz1hfX1yZXR1cm4gZS5sZW5ndGghPT1yLmxlbmd0aCYmajEoZSwwLGUubGVuZ3RoLHIpLGV9ZnVuY3Rpb24gU0hyKGUsdCl7bGV0IHI9ZS5sZW5ndGgsaT0wLGEsbixvLHM7Zm9yKDtyLS07KWlmKGE9ZVtyXVsxXSxuKXtpZihhLnR5cGU9PT0ibGluayJ8fGEudHlwZT09PSJsYWJlbExpbmsiJiZhLl9pbmFjdGl2ZSlicmVhaztlW3JdWzBdPT09ImVudGVyIiYmYS50eXBlPT09ImxhYmVsTGluayImJihhLl9pbmFjdGl2ZT0hMCl9ZWxzZSBpZihvKXtpZihlW3JdWzBdPT09ImVudGVyIiYmKGEudHlwZT09PSJsYWJlbEltYWdlInx8YS50eXBlPT09ImxhYmVsTGluayIpJiYhYS5fYmFsYW5jZWQmJihuPXIsYS50eXBlIT09ImxhYmVsTGluayIpKXtpPTI7YnJlYWt9fWVsc2UgYS50eXBlPT09ImxhYmVsRW5kIiYmKG89cik7bGV0IGw9e3R5cGU6ZVtuXVsxXS50eXBlPT09ImxhYmVsTGluayI/ImxpbmsiOiJpbWFnZSIsc3RhcnQ6ey4uLmVbbl1bMV0uc3RhcnR9LGVuZDp7Li4uZVtlLmxlbmd0aC0xXVsxXS5lbmR9fSxjPXt0eXBlOiJsYWJlbCIsc3RhcnQ6ey4uLmVbbl1bMV0uc3RhcnR9LGVuZDp7Li4uZVtvXVsxXS5lbmR9fSx1PXt0eXBlOiJsYWJlbFRleHQiLHN0YXJ0OnsuLi5lW24raSsyXVsxXS5lbmR9LGVuZDp7Li4uZVtvLTJdWzFdLnN0YXJ0fX07cmV0dXJuIHM9W1siZW50ZXIiLGwsdF0sWyJlbnRlciIsYyx0XV0scz1haShzLGUuc2xpY2UobisxLG4raSszKSkscz1haShzLFtbImVudGVyIix1LHRdXSkscz1haShzLGY0KHQucGFyc2VyLmNvbnN0cnVjdHMuaW5zaWRlU3Bhbi5udWxsLGUuc2xpY2UobitpKzQsby0zKSx0KSkscz1haShzLFtbImV4aXQiLHUsdF0sZVtvLTJdLGVbby0xXSxbImV4aXQiLGMsdF1dKSxzPWFpKHMsZS5zbGljZShvKzEpKSxzPWFpKHMsW1siZXhpdCIsbCx0XV0pLGoxKGUsbixlLmxlbmd0aCxzKSxlfWZ1bmN0aW9uIHpIcihlLHQscil7bGV0IGk9dGhpcyxhPWkuZXZlbnRzLmxlbmd0aCxuLG87Zm9yKDthLS07KWlmKChpLmV2ZW50c1thXVsxXS50eXBlPT09ImxhYmVsSW1hZ2UifHxpLmV2ZW50c1thXVsxXS50eXBlPT09ImxhYmVsTGluayIpJiYhaS5ldmVudHNbYV1bMV0uX2JhbGFuY2VkKXtuPWkuZXZlbnRzW2FdWzFdO2JyZWFrfXJldHVybiBzO2Z1bmN0aW9uIHMoaCl7cmV0dXJuIG4/bi5faW5hY3RpdmU/ZChoKToobz1pLnBhcnNlci5kZWZpbmVkLmluY2x1ZGVzKFAxKGkuc2xpY2VTZXJpYWxpemUoe3N0YXJ0Om4uZW5kLGVuZDppLm5vdygpfSkpKSxlLmVudGVyKCJsYWJlbEVuZCIpLGUuZW50ZXIoImxhYmVsTWFya2VyIiksZS5jb25zdW1lKGgpLGUuZXhpdCgibGFiZWxNYXJrZXIiKSxlLmV4aXQoImxhYmVsRW5kIiksbCk6cihoKX1mdW5jdGlvbiBsKGgpe3JldHVybiBoPT09NDA/ZS5hdHRlbXB0KHlIcix1LG8/dTpkKShoKTpoPT09OTE/ZS5hdHRlbXB0KHdIcix1LG8/YzpkKShoKTpvP3UoaCk6ZChoKX1mdW5jdGlvbiBjKGgpe3JldHVybiBlLmF0dGVtcHQoTUhyLHUsZCkoaCl9ZnVuY3Rpb24gdShoKXtyZXR1cm4gdChoKX1mdW5jdGlvbiBkKGgpe3JldHVybiBuLl9iYWxhbmNlZD0hMCxyKGgpfX1mdW5jdGlvbiBDSHIoZSx0LHIpe3JldHVybiBpO2Z1bmN0aW9uIGkoZCl7cmV0dXJuIGUuZW50ZXIoInJlc291cmNlIiksZS5lbnRlcigicmVzb3VyY2VNYXJrZXIiKSxlLmNvbnN1bWUoZCksZS5leGl0KCJyZXNvdXJjZU1hcmtlciIpLGF9ZnVuY3Rpb24gYShkKXtyZXR1cm4gSnQoZCk/ZGQoZSxuKShkKTpuKGQpfWZ1bmN0aW9uIG4oZCl7cmV0dXJuIGQ9PT00MT91KGQpOlZfKGUsbyxzLCJyZXNvdXJjZURlc3RpbmF0aW9uIiwicmVzb3VyY2VEZXN0aW5hdGlvbkxpdGVyYWwiLCJyZXNvdXJjZURlc3RpbmF0aW9uTGl0ZXJhbE1hcmtlciIsInJlc291cmNlRGVzdGluYXRpb25SYXciLCJyZXNvdXJjZURlc3RpbmF0aW9uU3RyaW5nIiwzMikoZCl9ZnVuY3Rpb24gbyhkKXtyZXR1cm4gSnQoZCk/ZGQoZSxsKShkKTp1KGQpfWZ1bmN0aW9uIHMoZCl7cmV0dXJuIHIoZCl9ZnVuY3Rpb24gbChkKXtyZXR1cm4gZD09PTM0fHxkPT09Mzl8fGQ9PT00MD9XXyhlLGMsciwicmVzb3VyY2VUaXRsZSIsInJlc291cmNlVGl0bGVNYXJrZXIiLCJyZXNvdXJjZVRpdGxlU3RyaW5nIikoZCk6dShkKX1mdW5jdGlvbiBjKGQpe3JldHVybiBKdChkKT9kZChlLHUpKGQpOnUoZCl9ZnVuY3Rpb24gdShkKXtyZXR1cm4gZD09PTQxPyhlLmVudGVyKCJyZXNvdXJjZU1hcmtlciIpLGUuY29uc3VtZShkKSxlLmV4aXQoInJlc291cmNlTWFya2VyIiksZS5leGl0KCJyZXNvdXJjZSIpLHQpOnIoZCl9fWZ1bmN0aW9uIFRIcihlLHQscil7bGV0IGk9dGhpcztyZXR1cm4gYTtmdW5jdGlvbiBhKHMpe3JldHVybiBVXy5jYWxsKGksZSxuLG8sInJlZmVyZW5jZSIsInJlZmVyZW5jZU1hcmtlciIsInJlZmVyZW5jZVN0cmluZyIpKHMpfWZ1bmN0aW9uIG4ocyl7cmV0dXJuIGkucGFyc2VyLmRlZmluZWQuaW5jbHVkZXMoUDEoaS5zbGljZVNlcmlhbGl6ZShpLmV2ZW50c1tpLmV2ZW50cy5sZW5ndGgtMV1bMV0pLnNsaWNlKDEsLTEpKSk/dChzKTpyKHMpfWZ1bmN0aW9uIG8ocyl7cmV0dXJuIHIocyl9fWZ1bmN0aW9uIF9IcihlLHQscil7cmV0dXJuIGk7ZnVuY3Rpb24gaShuKXtyZXR1cm4gZS5lbnRlcigicmVmZXJlbmNlIiksZS5lbnRlcigicmVmZXJlbmNlTWFya2VyIiksZS5jb25zdW1lKG4pLGUuZXhpdCgicmVmZXJlbmNlTWFya2VyIiksYX1mdW5jdGlvbiBhKG4pe3JldHVybiBuPT09OTM/KGUuZW50ZXIoInJlZmVyZW5jZU1hcmtlciIpLGUuY29uc3VtZShuKSxlLmV4aXQoInJlZmVyZW5jZU1hcmtlciIpLGUuZXhpdCgicmVmZXJlbmNlIiksdCk6cihuKX19dmFyIHVkLHlIcix3SHIsTUhyLEdfPXAoKCk9PntJdGUoKTtQdGUoKTtOdGUoKTtGdGUoKTtycigpO1VzKCk7cDQoKTtOOSgpO3VkPXtuYW1lOiJsYWJlbEVuZCIscmVzb2x2ZUFsbDprSHIscmVzb2x2ZVRvOlNIcix0b2tlbml6ZTp6SHJ9LHlIcj17dG9rZW5pemU6Q0hyfSx3SHI9e3Rva2VuaXplOlRIcn0sTUhyPXt0b2tlbml6ZTpfSHJ9fSk7ZnVuY3Rpb24gTEhyKGUsdCxyKXtsZXQgaT10aGlzO3JldHVybiBhO2Z1bmN0aW9uIGEocyl7cmV0dXJuIGUuZW50ZXIoImxhYmVsSW1hZ2UiKSxlLmVudGVyKCJsYWJlbEltYWdlTWFya2VyIiksZS5jb25zdW1lKHMpLGUuZXhpdCgibGFiZWxJbWFnZU1hcmtlciIpLG59ZnVuY3Rpb24gbihzKXtyZXR1cm4gcz09PTkxPyhlLmVudGVyKCJsYWJlbE1hcmtlciIpLGUuY29uc3VtZShzKSxlLmV4aXQoImxhYmVsTWFya2VyIiksZS5leGl0KCJsYWJlbEltYWdlIiksbyk6cihzKX1mdW5jdGlvbiBvKHMpe3JldHVybiBzPT09OTQmJiJfaGlkZGVuRm9vdG5vdGVTdXBwb3J0ImluIGkucGFyc2VyLmNvbnN0cnVjdHM/cihzKTp0KHMpfX12YXIgVnRlLGNaZT1wKCgpPT57R18oKTtWdGU9e25hbWU6ImxhYmVsU3RhcnRJbWFnZSIscmVzb2x2ZUFsbDp1ZC5yZXNvbHZlQWxsLHRva2VuaXplOkxIcn19KTtmdW5jdGlvbiBBSHIoZSx0LHIpe2xldCBpPXRoaXM7cmV0dXJuIGE7ZnVuY3Rpb24gYShvKXtyZXR1cm4gZS5lbnRlcigibGFiZWxMaW5rIiksZS5lbnRlcigibGFiZWxNYXJrZXIiKSxlLmNvbnN1bWUobyksZS5leGl0KCJsYWJlbE1hcmtlciIpLGUuZXhpdCgibGFiZWxMaW5rIiksbn1mdW5jdGlvbiBuKG8pe3JldHVybiBvPT09OTQmJiJfaGlkZGVuRm9vdG5vdGVTdXBwb3J0ImluIGkucGFyc2VyLmNvbnN0cnVjdHM/cihvKTp0KG8pfX12YXIgVXRlLGRaZT1wKCgpPT57R18oKTtVdGU9e25hbWU6ImxhYmVsU3RhcnRMaW5rIixyZXNvbHZlQWxsOnVkLnJlc29sdmVBbGwsdG9rZW5pemU6QUhyfX0pO2Z1bmN0aW9uIERIcihlLHQpe3JldHVybiByO2Z1bmN0aW9uIHIoaSl7cmV0dXJuIGUuZW50ZXIoImxpbmVFbmRpbmciKSxlLmNvbnN1bWUoaSksZS5leGl0KCJsaW5lRW5kaW5nIiksYnQoZSx0LCJsaW5lUHJlZml4Iil9fXZhciBIOSx1WmU9cCgoKT0+e1YxKCk7cnIoKTtIOT17bmFtZToibGluZUVuZGluZyIsdG9rZW5pemU6REhyfX0pO2Z1bmN0aW9uIEVIcihlLHQscil7bGV0IGk9MCxhO3JldHVybiBuO2Z1bmN0aW9uIG4oYyl7cmV0dXJuIGUuZW50ZXIoInRoZW1hdGljQnJlYWsiKSxvKGMpfWZ1bmN0aW9uIG8oYyl7cmV0dXJuIGE9YyxzKGMpfWZ1bmN0aW9uIHMoYyl7cmV0dXJuIGM9PT1hPyhlLmVudGVyKCJ0aGVtYXRpY0JyZWFrU2VxdWVuY2UiKSxsKGMpKTppPj0zJiYoYz09PW51bGx8fEdlKGMpKT8oZS5leGl0KCJ0aGVtYXRpY0JyZWFrIiksdChjKSk6cihjKX1mdW5jdGlvbiBsKGMpe3JldHVybiBjPT09YT8oZS5jb25zdW1lKGMpLGkrKyxsKTooZS5leGl0KCJ0aGVtYXRpY0JyZWFrU2VxdWVuY2UiKSxjdChjKT9idChlLHMsIndoaXRlc3BhY2UiKShjKTpzKGMpKX19dmFyIHBkLFd0ZT1wKCgpPT57VjEoKTtycigpO3BkPXtuYW1lOiJ0aGVtYXRpY0JyZWFrIix0b2tlbml6ZTpFSHJ9fSk7ZnVuY3Rpb24gUEhyKGUsdCxyKXtsZXQgaT10aGlzLGE9aS5ldmVudHNbaS5ldmVudHMubGVuZ3RoLTFdLG49YSYmYVsxXS50eXBlPT09ImxpbmVQcmVmaXgiP2FbMl0uc2xpY2VTZXJpYWxpemUoYVsxXSwhMCkubGVuZ3RoOjAsbz0wO3JldHVybiBzO2Z1bmN0aW9uIHMoZil7bGV0IHg9aS5jb250YWluZXJTdGF0ZS50eXBlfHwoZj09PTQyfHxmPT09NDN8fGY9PT00NT8ibGlzdFVub3JkZXJlZCI6Imxpc3RPcmRlcmVkIik7aWYoeD09PSJsaXN0VW5vcmRlcmVkIj8haS5jb250YWluZXJTdGF0ZS5tYXJrZXJ8fGY9PT1pLmNvbnRhaW5lclN0YXRlLm1hcmtlcjpEOShmKSl7aWYoaS5jb250YWluZXJTdGF0ZS50eXBlfHwoaS5jb250YWluZXJTdGF0ZS50eXBlPXgsZS5lbnRlcih4LHtfY29udGFpbmVyOiEwfSkpLHg9PT0ibGlzdFVub3JkZXJlZCIpcmV0dXJuIGUuZW50ZXIoImxpc3RJdGVtUHJlZml4IiksZj09PTQyfHxmPT09NDU/ZS5jaGVjayhwZCxyLGMpKGYpOmMoZik7aWYoIWkuaW50ZXJydXB0fHxmPT09NDkpcmV0dXJuIGUuZW50ZXIoImxpc3RJdGVtUHJlZml4IiksZS5lbnRlcigibGlzdEl0ZW1WYWx1ZSIpLGwoZil9cmV0dXJuIHIoZil9ZnVuY3Rpb24gbChmKXtyZXR1cm4gRDkoZikmJisrbzwxMD8oZS5jb25zdW1lKGYpLGwpOighaS5pbnRlcnJ1cHR8fG88MikmJihpLmNvbnRhaW5lclN0YXRlLm1hcmtlcj9mPT09aS5jb250YWluZXJTdGF0ZS5tYXJrZXI6Zj09PTQxfHxmPT09NDYpPyhlLmV4aXQoImxpc3RJdGVtVmFsdWUiKSxjKGYpKTpyKGYpfWZ1bmN0aW9uIGMoZil7cmV0dXJuIGUuZW50ZXIoImxpc3RJdGVtTWFya2VyIiksZS5jb25zdW1lKGYpLGUuZXhpdCgibGlzdEl0ZW1NYXJrZXIiKSxpLmNvbnRhaW5lclN0YXRlLm1hcmtlcj1pLmNvbnRhaW5lclN0YXRlLm1hcmtlcnx8ZixlLmNoZWNrKFpzLGkuaW50ZXJydXB0P3I6dSxlLmF0dGVtcHQoJEhyLGgsZCkpfWZ1bmN0aW9uIHUoZil7cmV0dXJuIGkuY29udGFpbmVyU3RhdGUuaW5pdGlhbEJsYW5rTGluZT0hMCxuKyssaChmKX1mdW5jdGlvbiBkKGYpe3JldHVybiBjdChmKT8oZS5lbnRlcigibGlzdEl0ZW1QcmVmaXhXaGl0ZXNwYWNlIiksZS5jb25zdW1lKGYpLGUuZXhpdCgibGlzdEl0ZW1QcmVmaXhXaGl0ZXNwYWNlIiksaCk6cihmKX1mdW5jdGlvbiBoKGYpe3JldHVybiBpLmNvbnRhaW5lclN0YXRlLnNpemU9bitpLnNsaWNlU2VyaWFsaXplKGUuZXhpdCgibGlzdEl0ZW1QcmVmaXgiKSwhMCkubGVuZ3RoLHQoZil9fWZ1bmN0aW9uIE5IcihlLHQscil7bGV0IGk9dGhpcztyZXR1cm4gaS5jb250YWluZXJTdGF0ZS5fY2xvc2VGbG93PXZvaWQgMCxlLmNoZWNrKFpzLGEsbik7ZnVuY3Rpb24gYShzKXtyZXR1cm4gaS5jb250YWluZXJTdGF0ZS5mdXJ0aGVyQmxhbmtMaW5lcz1pLmNvbnRhaW5lclN0YXRlLmZ1cnRoZXJCbGFua0xpbmVzfHxpLmNvbnRhaW5lclN0YXRlLmluaXRpYWxCbGFua0xpbmUsYnQoZSx0LCJsaXN0SXRlbUluZGVudCIsaS5jb250YWluZXJTdGF0ZS5zaXplKzEpKHMpfWZ1bmN0aW9uIG4ocyl7cmV0dXJuIGkuY29udGFpbmVyU3RhdGUuZnVydGhlckJsYW5rTGluZXN8fCFjdChzKT8oaS5jb250YWluZXJTdGF0ZS5mdXJ0aGVyQmxhbmtMaW5lcz12b2lkIDAsaS5jb250YWluZXJTdGF0ZS5pbml0aWFsQmxhbmtMaW5lPXZvaWQgMCxvKHMpKTooaS5jb250YWluZXJTdGF0ZS5mdXJ0aGVyQmxhbmtMaW5lcz12b2lkIDAsaS5jb250YWluZXJTdGF0ZS5pbml0aWFsQmxhbmtMaW5lPXZvaWQgMCxlLmF0dGVtcHQoSUhyLHQsbykocykpfWZ1bmN0aW9uIG8ocyl7cmV0dXJuIGkuY29udGFpbmVyU3RhdGUuX2Nsb3NlRmxvdz0hMCxpLmludGVycnVwdD12b2lkIDAsYnQoZSxlLmF0dGVtcHQoTGEsdCxyKSwibGluZVByZWZpeCIsaS5wYXJzZXIuY29uc3RydWN0cy5kaXNhYmxlLm51bGwuaW5jbHVkZXMoImNvZGVJbmRlbnRlZCIpP3ZvaWQgMDo0KShzKX19ZnVuY3Rpb24gRkhyKGUsdCxyKXtsZXQgaT10aGlzO3JldHVybiBidChlLGEsImxpc3RJdGVtSW5kZW50IixpLmNvbnRhaW5lclN0YXRlLnNpemUrMSk7ZnVuY3Rpb24gYShuKXtsZXQgbz1pLmV2ZW50c1tpLmV2ZW50cy5sZW5ndGgtMV07cmV0dXJuIG8mJm9bMV0udHlwZT09PSJsaXN0SXRlbUluZGVudCImJm9bMl0uc2xpY2VTZXJpYWxpemUob1sxXSwhMCkubGVuZ3RoPT09aS5jb250YWluZXJTdGF0ZS5zaXplP3Qobik6cihuKX19ZnVuY3Rpb24gT0hyKGUpe2UuZXhpdCh0aGlzLmNvbnRhaW5lclN0YXRlLnR5cGUpfWZ1bmN0aW9uIFJIcihlLHQscil7bGV0IGk9dGhpcztyZXR1cm4gYnQoZSxhLCJsaXN0SXRlbVByZWZpeFdoaXRlc3BhY2UiLGkucGFyc2VyLmNvbnN0cnVjdHMuZGlzYWJsZS5udWxsLmluY2x1ZGVzKCJjb2RlSW5kZW50ZWQiKT92b2lkIDA6NSk7ZnVuY3Rpb24gYShuKXtsZXQgbz1pLmV2ZW50c1tpLmV2ZW50cy5sZW5ndGgtMV07cmV0dXJuIWN0KG4pJiZvJiZvWzFdLnR5cGU9PT0ibGlzdEl0ZW1QcmVmaXhXaGl0ZXNwYWNlIj90KG4pOnIobil9fXZhciBMYSwkSHIsSUhyLHBaZT1wKCgpPT57VjEoKTtycigpO09fKCk7V3RlKCk7TGE9e2NvbnRpbnVhdGlvbjp7dG9rZW5pemU6TkhyfSxleGl0Ok9IcixuYW1lOiJsaXN0Iix0b2tlbml6ZTpQSHJ9LCRIcj17cGFydGlhbDohMCx0b2tlbml6ZTpSSHJ9LElIcj17cGFydGlhbDohMCx0b2tlbml6ZTpGSHJ9fSk7ZnVuY3Rpb24gQkhyKGUsdCl7bGV0IHI9ZS5sZW5ndGgsaSxhLG47Zm9yKDtyLS07KWlmKGVbcl1bMF09PT0iZW50ZXIiKXtpZihlW3JdWzFdLnR5cGU9PT0iY29udGVudCIpe2k9cjticmVha31lW3JdWzFdLnR5cGU9PT0icGFyYWdyYXBoIiYmKGE9cil9ZWxzZSBlW3JdWzFdLnR5cGU9PT0iY29udGVudCImJmUuc3BsaWNlKHIsMSksIW4mJmVbcl1bMV0udHlwZT09PSJkZWZpbml0aW9uIiYmKG49cik7bGV0IG89e3R5cGU6InNldGV4dEhlYWRpbmciLHN0YXJ0OnsuLi5lW2ldWzFdLnN0YXJ0fSxlbmQ6ey4uLmVbZS5sZW5ndGgtMV1bMV0uZW5kfX07cmV0dXJuIGVbYV1bMV0udHlwZT0ic2V0ZXh0SGVhZGluZ1RleHQiLG4/KGUuc3BsaWNlKGEsMCxbImVudGVyIixvLHRdKSxlLnNwbGljZShuKzEsMCxbImV4aXQiLGVbaV1bMV0sdF0pLGVbaV1bMV0uZW5kPXsuLi5lW25dWzFdLmVuZH0pOmVbaV1bMV09byxlLnB1c2goWyJleGl0IixvLHRdKSxlfWZ1bmN0aW9uIEhIcihlLHQscil7bGV0IGk9dGhpcyxhO3JldHVybiBuO2Z1bmN0aW9uIG4oYyl7bGV0IHU9aS5ldmVudHMubGVuZ3RoLGQ7Zm9yKDt1LS07KWlmKGkuZXZlbnRzW3VdWzFdLnR5cGUhPT0ibGluZUVuZGluZyImJmkuZXZlbnRzW3VdWzFdLnR5cGUhPT0ibGluZVByZWZpeCImJmkuZXZlbnRzW3VdWzFdLnR5cGUhPT0iY29udGVudCIpe2Q9aS5ldmVudHNbdV1bMV0udHlwZT09PSJwYXJhZ3JhcGgiO2JyZWFrfXJldHVybiFpLnBhcnNlci5sYXp5W2kubm93KCkubGluZV0mJihpLmludGVycnVwdHx8ZCk/KGUuZW50ZXIoInNldGV4dEhlYWRpbmdMaW5lIiksYT1jLG8oYykpOnIoYyl9ZnVuY3Rpb24gbyhjKXtyZXR1cm4gZS5lbnRlcigic2V0ZXh0SGVhZGluZ0xpbmVTZXF1ZW5jZSIpLHMoYyl9ZnVuY3Rpb24gcyhjKXtyZXR1cm4gYz09PWE/KGUuY29uc3VtZShjKSxzKTooZS5leGl0KCJzZXRleHRIZWFkaW5nTGluZVNlcXVlbmNlIiksY3QoYyk/YnQoZSxsLCJsaW5lU3VmZml4IikoYyk6bChjKSl9ZnVuY3Rpb24gbChjKXtyZXR1cm4gYz09PW51bGx8fEdlKGMpPyhlLmV4aXQoInNldGV4dEhlYWRpbmdMaW5lIiksdChjKSk6cihjKX19dmFyIFlfLGhaZT1wKCgpPT57VjEoKTtycigpO1lfPXtuYW1lOiJzZXRleHRVbmRlcmxpbmUiLHJlc29sdmVUbzpCSHIsdG9rZW5pemU6SEhyfX0pO3ZhciBaXz1wKCgpPT57V1llKCk7R1llKCk7T18oKTtZWWUoKTtaWWUoKTtYWWUoKTtKWWUoKTtLWWUoKTtlWmUoKTt0WmUoKTtyWmUoKTtpWmUoKTthWmUoKTtzWmUoKTtsWmUoKTtHXygpO2NaZSgpO2RaZSgpO3VaZSgpO3BaZSgpO2haZSgpO1d0ZSgpfSk7ZnVuY3Rpb24gR3RlKCl7cmV0dXJue2RvY3VtZW50Ons5MTp7bmFtZToiZ2ZtRm9vdG5vdGVEZWZpbml0aW9uIix0b2tlbml6ZTpXSHIsY29udGludWF0aW9uOnt0b2tlbml6ZTpHSHJ9LGV4aXQ6WUhyfX0sdGV4dDp7OTE6e25hbWU6ImdmbUZvb3Rub3RlQ2FsbCIsdG9rZW5pemU6VUhyfSw5Mzp7bmFtZToiZ2ZtUG90ZW50aWFsRm9vdG5vdGVDYWxsIixhZGQ6ImFmdGVyIix0b2tlbml6ZTpqSHIscmVzb2x2ZVRvOlZIcn19fX1mdW5jdGlvbiBqSHIoZSx0LHIpe2xldCBpPXRoaXMsYT1pLmV2ZW50cy5sZW5ndGgsbj1pLnBhcnNlci5nZm1Gb290bm90ZXN8fChpLnBhcnNlci5nZm1Gb290bm90ZXM9W10pLG87Zm9yKDthLS07KXtsZXQgbD1pLmV2ZW50c1thXVsxXTtpZihsLnR5cGU9PT0ibGFiZWxJbWFnZSIpe289bDticmVha31pZihsLnR5cGU9PT0iZ2ZtRm9vdG5vdGVDYWxsInx8bC50eXBlPT09ImxhYmVsTGluayJ8fGwudHlwZT09PSJsYWJlbCJ8fGwudHlwZT09PSJpbWFnZSJ8fGwudHlwZT09PSJsaW5rIilicmVha31yZXR1cm4gcztmdW5jdGlvbiBzKGwpe2lmKCFvfHwhby5fYmFsYW5jZWQpcmV0dXJuIHIobCk7bGV0IGM9UDEoaS5zbGljZVNlcmlhbGl6ZSh7c3RhcnQ6by5lbmQsZW5kOmkubm93KCl9KSk7cmV0dXJuIGMuY29kZVBvaW50QXQoMCkhPT05NHx8IW4uaW5jbHVkZXMoYy5zbGljZSgxKSk/cihsKTooZS5lbnRlcigiZ2ZtRm9vdG5vdGVDYWxsTGFiZWxNYXJrZXIiKSxlLmNvbnN1bWUobCksZS5leGl0KCJnZm1Gb290bm90ZUNhbGxMYWJlbE1hcmtlciIpLHQobCkpfX1mdW5jdGlvbiBWSHIoZSx0KXtsZXQgcj1lLmxlbmd0aCxpO2Zvcig7ci0tOylpZihlW3JdWzFdLnR5cGU9PT0ibGFiZWxJbWFnZSImJmVbcl1bMF09PT0iZW50ZXIiKXtpPWVbcl1bMV07YnJlYWt9ZVtyKzFdWzFdLnR5cGU9ImRhdGEiLGVbciszXVsxXS50eXBlPSJnZm1Gb290bm90ZUNhbGxMYWJlbE1hcmtlciI7bGV0IGE9e3R5cGU6ImdmbUZvb3Rub3RlQ2FsbCIsc3RhcnQ6T2JqZWN0LmFzc2lnbih7fSxlW3IrM11bMV0uc3RhcnQpLGVuZDpPYmplY3QuYXNzaWduKHt9LGVbZS5sZW5ndGgtMV1bMV0uZW5kKX0sbj17dHlwZToiZ2ZtRm9vdG5vdGVDYWxsTWFya2VyIixzdGFydDpPYmplY3QuYXNzaWduKHt9LGVbciszXVsxXS5lbmQpLGVuZDpPYmplY3QuYXNzaWduKHt9LGVbciszXVsxXS5lbmQpfTtuLmVuZC5jb2x1bW4rKyxuLmVuZC5vZmZzZXQrKyxuLmVuZC5fYnVmZmVySW5kZXgrKztsZXQgbz17dHlwZToiZ2ZtRm9vdG5vdGVDYWxsU3RyaW5nIixzdGFydDpPYmplY3QuYXNzaWduKHt9LG4uZW5kKSxlbmQ6T2JqZWN0LmFzc2lnbih7fSxlW2UubGVuZ3RoLTFdWzFdLnN0YXJ0KX0scz17dHlwZToiY2h1bmtTdHJpbmciLGNvbnRlbnRUeXBlOiJzdHJpbmciLHN0YXJ0Ok9iamVjdC5hc3NpZ24oe30sby5zdGFydCksZW5kOk9iamVjdC5hc3NpZ24oe30sby5lbmQpfSxsPVtlW3IrMV0sZVtyKzJdLFsiZW50ZXIiLGEsdF0sZVtyKzNdLGVbcis0XSxbImVudGVyIixuLHRdLFsiZXhpdCIsbix0XSxbImVudGVyIixvLHRdLFsiZW50ZXIiLHMsdF0sWyJleGl0IixzLHRdLFsiZXhpdCIsbyx0XSxlW2UubGVuZ3RoLTJdLGVbZS5sZW5ndGgtMV0sWyJleGl0IixhLHRdXTtyZXR1cm4gZS5zcGxpY2UocixlLmxlbmd0aC1yKzEsLi4ubCksZX1mdW5jdGlvbiBVSHIoZSx0LHIpe2xldCBpPXRoaXMsYT1pLnBhcnNlci5nZm1Gb290bm90ZXN8fChpLnBhcnNlci5nZm1Gb290bm90ZXM9W10pLG49MCxvO3JldHVybiBzO2Z1bmN0aW9uIHMoZCl7cmV0dXJuIGUuZW50ZXIoImdmbUZvb3Rub3RlQ2FsbCIpLGUuZW50ZXIoImdmbUZvb3Rub3RlQ2FsbExhYmVsTWFya2VyIiksZS5jb25zdW1lKGQpLGUuZXhpdCgiZ2ZtRm9vdG5vdGVDYWxsTGFiZWxNYXJrZXIiKSxsfWZ1bmN0aW9uIGwoZCl7cmV0dXJuIGQhPT05ND9yKGQpOihlLmVudGVyKCJnZm1Gb290bm90ZUNhbGxNYXJrZXIiKSxlLmNvbnN1bWUoZCksZS5leGl0KCJnZm1Gb290bm90ZUNhbGxNYXJrZXIiKSxlLmVudGVyKCJnZm1Gb290bm90ZUNhbGxTdHJpbmciKSxlLmVudGVyKCJjaHVua1N0cmluZyIpLmNvbnRlbnRUeXBlPSJzdHJpbmciLGMpfWZ1bmN0aW9uIGMoZCl7aWYobj45OTl8fGQ9PT05MyYmIW98fGQ9PT1udWxsfHxkPT09OTF8fEp0KGQpKXJldHVybiByKGQpO2lmKGQ9PT05Myl7ZS5leGl0KCJjaHVua1N0cmluZyIpO2xldCBoPWUuZXhpdCgiZ2ZtRm9vdG5vdGVDYWxsU3RyaW5nIik7cmV0dXJuIGEuaW5jbHVkZXMoUDEoaS5zbGljZVNlcmlhbGl6ZShoKSkpPyhlLmVudGVyKCJnZm1Gb290bm90ZUNhbGxMYWJlbE1hcmtlciIpLGUuY29uc3VtZShkKSxlLmV4aXQoImdmbUZvb3Rub3RlQ2FsbExhYmVsTWFya2VyIiksZS5leGl0KCJnZm1Gb290bm90ZUNhbGwiKSx0KTpyKGQpfXJldHVybiBKdChkKXx8KG89ITApLG4rKyxlLmNvbnN1bWUoZCksZD09PTkyP3U6Y31mdW5jdGlvbiB1KGQpe3JldHVybiBkPT09OTF8fGQ9PT05Mnx8ZD09PTkzPyhlLmNvbnN1bWUoZCksbisrLGMpOmMoZCl9fWZ1bmN0aW9uIFdIcihlLHQscil7bGV0IGk9dGhpcyxhPWkucGFyc2VyLmdmbUZvb3Rub3Rlc3x8KGkucGFyc2VyLmdmbUZvb3Rub3Rlcz1bXSksbixvPTAscztyZXR1cm4gbDtmdW5jdGlvbiBsKHgpe3JldHVybiBlLmVudGVyKCJnZm1Gb290bm90ZURlZmluaXRpb24iKS5fY29udGFpbmVyPSEwLGUuZW50ZXIoImdmbUZvb3Rub3RlRGVmaW5pdGlvbkxhYmVsIiksZS5lbnRlcigiZ2ZtRm9vdG5vdGVEZWZpbml0aW9uTGFiZWxNYXJrZXIiKSxlLmNvbnN1bWUoeCksZS5leGl0KCJnZm1Gb290bm90ZURlZmluaXRpb25MYWJlbE1hcmtlciIpLGN9ZnVuY3Rpb24gYyh4KXtyZXR1cm4geD09PTk0PyhlLmVudGVyKCJnZm1Gb290bm90ZURlZmluaXRpb25NYXJrZXIiKSxlLmNvbnN1bWUoeCksZS5leGl0KCJnZm1Gb290bm90ZURlZmluaXRpb25NYXJrZXIiKSxlLmVudGVyKCJnZm1Gb290bm90ZURlZmluaXRpb25MYWJlbFN0cmluZyIpLGUuZW50ZXIoImNodW5rU3RyaW5nIikuY29udGVudFR5cGU9InN0cmluZyIsdSk6cih4KX1mdW5jdGlvbiB1KHgpe2lmKG8+OTk5fHx4PT09OTMmJiFzfHx4PT09bnVsbHx8eD09PTkxfHxKdCh4KSlyZXR1cm4gcih4KTtpZih4PT09OTMpe2UuZXhpdCgiY2h1bmtTdHJpbmciKTtsZXQgdj1lLmV4aXQoImdmbUZvb3Rub3RlRGVmaW5pdGlvbkxhYmVsU3RyaW5nIik7cmV0dXJuIG49UDEoaS5zbGljZVNlcmlhbGl6ZSh2KSksZS5lbnRlcigiZ2ZtRm9vdG5vdGVEZWZpbml0aW9uTGFiZWxNYXJrZXIiKSxlLmNvbnN1bWUoeCksZS5leGl0KCJnZm1Gb290bm90ZURlZmluaXRpb25MYWJlbE1hcmtlciIpLGUuZXhpdCgiZ2ZtRm9vdG5vdGVEZWZpbml0aW9uTGFiZWwiKSxofXJldHVybiBKdCh4KXx8KHM9ITApLG8rKyxlLmNvbnN1bWUoeCkseD09PTkyP2Q6dX1mdW5jdGlvbiBkKHgpe3JldHVybiB4PT09OTF8fHg9PT05Mnx8eD09PTkzPyhlLmNvbnN1bWUoeCksbysrLHUpOnUoeCl9ZnVuY3Rpb24gaCh4KXtyZXR1cm4geD09PTU4PyhlLmVudGVyKCJkZWZpbml0aW9uTWFya2VyIiksZS5jb25zdW1lKHgpLGUuZXhpdCgiZGVmaW5pdGlvbk1hcmtlciIpLGEuaW5jbHVkZXMobil8fGEucHVzaChuKSxidChlLGYsImdmbUZvb3Rub3RlRGVmaW5pdGlvbldoaXRlc3BhY2UiKSk6cih4KX1mdW5jdGlvbiBmKHgpe3JldHVybiB0KHgpfX1mdW5jdGlvbiBHSHIoZSx0LHIpe3JldHVybiBlLmNoZWNrKFpzLHQsZS5hdHRlbXB0KHFIcix0LHIpKX1mdW5jdGlvbiBZSHIoZSl7ZS5leGl0KCJnZm1Gb290bm90ZURlZmluaXRpb24iKX1mdW5jdGlvbiBaSHIoZSx0LHIpe2xldCBpPXRoaXM7cmV0dXJuIGJ0KGUsYSwiZ2ZtRm9vdG5vdGVEZWZpbml0aW9uSW5kZW50Iiw1KTtmdW5jdGlvbiBhKG4pe2xldCBvPWkuZXZlbnRzW2kuZXZlbnRzLmxlbmd0aC0xXTtyZXR1cm4gbyYmb1sxXS50eXBlPT09ImdmbUZvb3Rub3RlRGVmaW5pdGlvbkluZGVudCImJm9bMl0uc2xpY2VTZXJpYWxpemUob1sxXSwhMCkubGVuZ3RoPT09ND90KG4pOnIobil9fXZhciBxSHIsZlplPXAoKCk9PntaXygpO1YxKCk7cnIoKTtwNCgpO3FIcj17dG9rZW5pemU6WkhyLHBhcnRpYWw6ITB9fSk7ZnVuY3Rpb24gbVplKGUsdCl7cmV0dXJuIkJhY2sgdG8gcmVmZXJlbmNlICIrKGUrMSkrKHQ+MT8iLSIrdDoiIil9ZnVuY3Rpb24gWXRlKGUpe2xldCB0PWV8fFFIcixyPXQubGFiZWx8fCJGb290bm90ZXMiLGk9dC5sYWJlbFRhZ05hbWV8fCJoMiIsYT10LmxhYmVsQXR0cmlidXRlcz09PW51bGx8fHQubGFiZWxBdHRyaWJ1dGVzPT09dm9pZCAwPydjbGFzcz0ic3Itb25seSInOnQubGFiZWxBdHRyaWJ1dGVzLG49dC5iYWNrTGFiZWx8fG1aZSxvPXQuY2xvYmJlclByZWZpeD09PW51bGx8fHQuY2xvYmJlclByZWZpeD09PXZvaWQgMD8idXNlci1jb250ZW50LSI6dC5jbG9iYmVyUHJlZml4O3JldHVybntlbnRlcjp7Z2ZtRm9vdG5vdGVEZWZpbml0aW9uKCl7dGhpcy5nZXREYXRhKCJ0aWdodFN0YWNrIikucHVzaCghMSl9LGdmbUZvb3Rub3RlRGVmaW5pdGlvbkxhYmVsU3RyaW5nKCl7dGhpcy5idWZmZXIoKX0sZ2ZtRm9vdG5vdGVDYWxsU3RyaW5nKCl7dGhpcy5idWZmZXIoKX19LGV4aXQ6e2dmbUZvb3Rub3RlRGVmaW5pdGlvbigpe2xldCBzPXRoaXMuZ2V0RGF0YSgiZ2ZtRm9vdG5vdGVEZWZpbml0aW9ucyIpLGw9dGhpcy5nZXREYXRhKCJnZm1Gb290bm90ZURlZmluaXRpb25TdGFjayIpLGM9dGhpcy5nZXREYXRhKCJ0aWdodFN0YWNrIiksdT1sLnBvcCgpLGQ9dGhpcy5yZXN1bWUoKTtzfHx0aGlzLnNldERhdGEoImdmbUZvb3Rub3RlRGVmaW5pdGlvbnMiLHM9e30pLFhIci5jYWxsKHMsdSl8fChzW3VdPWQpLGMucG9wKCksdGhpcy5zZXREYXRhKCJzbHVycE9uZUxpbmVFbmRpbmciLCEwKSx0aGlzLnNldERhdGEoImxhc3RXYXNUYWciKX0sZ2ZtRm9vdG5vdGVEZWZpbml0aW9uTGFiZWxTdHJpbmcocyl7bGV0IGw9dGhpcy5nZXREYXRhKCJnZm1Gb290bm90ZURlZmluaXRpb25TdGFjayIpO2x8fHRoaXMuc2V0RGF0YSgiZ2ZtRm9vdG5vdGVEZWZpbml0aW9uU3RhY2siLGw9W10pLGwucHVzaChQMSh0aGlzLnNsaWNlU2VyaWFsaXplKHMpKSksdGhpcy5yZXN1bWUoKSx0aGlzLmJ1ZmZlcigpfSxnZm1Gb290bm90ZUNhbGxTdHJpbmcocyl7bGV0IGw9dGhpcy5nZXREYXRhKCJnZm1Gb290bm90ZUNhbGxPcmRlciIpLGM9dGhpcy5nZXREYXRhKCJnZm1Gb290bm90ZUNhbGxDb3VudHMiKSx1PVAxKHRoaXMuc2xpY2VTZXJpYWxpemUocykpLGQ7dGhpcy5yZXN1bWUoKSxsfHx0aGlzLnNldERhdGEoImdmbUZvb3Rub3RlQ2FsbE9yZGVyIixsPVtdKSxjfHx0aGlzLnNldERhdGEoImdmbUZvb3Rub3RlQ2FsbENvdW50cyIsYz17fSk7bGV0IGg9bC5pbmRleE9mKHUpLGY9R3ModS50b0xvd2VyQ2FzZSgpKTtoPT09LTE/KGwucHVzaCh1KSxjW3VdPTEsZD1sLmxlbmd0aCk6KGNbdV0rKyxkPWgrMSk7bGV0IHg9Y1t1XTt0aGlzLnRhZygnPHN1cD48YSBocmVmPSIjJytvKyJmbi0iK2YrJyIgaWQ9IicrbysiZm5yZWYtIitmKyh4PjE/Ii0iK3g6IiIpKyciIGRhdGEtZm9vdG5vdGUtcmVmPSIiIGFyaWEtZGVzY3JpYmVkYnk9ImZvb3Rub3RlLWxhYmVsIj4nK1N0cmluZyhkKSsiPC9hPjwvc3VwPiIpfSxudWxsKCl7bGV0IHM9dGhpcy5nZXREYXRhKCJnZm1Gb290bm90ZUNhbGxPcmRlciIpfHxbXSxsPXRoaXMuZ2V0RGF0YSgiZ2ZtRm9vdG5vdGVDYWxsQ291bnRzIil8fHt9LGM9dGhpcy5nZXREYXRhKCJnZm1Gb290bm90ZURlZmluaXRpb25zIil8fHt9LHU9LTE7Zm9yKHMubGVuZ3RoPjAmJih0aGlzLmxpbmVFbmRpbmdJZk5lZWRlZCgpLHRoaXMudGFnKCc8c2VjdGlvbiBkYXRhLWZvb3Rub3Rlcz0iIiBjbGFzcz0iZm9vdG5vdGVzIj48JytpKycgaWQ9ImZvb3Rub3RlLWxhYmVsIicrKGE/IiAiK2E6IiIpKyI+IiksdGhpcy5yYXcodGhpcy5lbmNvZGUocikpLHRoaXMudGFnKCI8LyIraSsiPiIpLHRoaXMubGluZUVuZGluZ0lmTmVlZGVkKCksdGhpcy50YWcoIjxvbD4iKSk7Kyt1PHMubGVuZ3RoOyl7bGV0IGQ9c1t1XSxoPUdzKGQudG9Mb3dlckNhc2UoKSksZj0wLHg9W107Zm9yKDsrK2Y8PWxbZF07KXgucHVzaCgnPGEgaHJlZj0iIycrbysiZm5yZWYtIitoKyhmPjE/Ii0iK2Y6IiIpKyciIGRhdGEtZm9vdG5vdGUtYmFja3JlZj0iIiBhcmlhLWxhYmVsPSInK3RoaXMuZW5jb2RlKHR5cGVvZiBuPT0ic3RyaW5nIj9uOm4odSxmKSkrJyIgY2xhc3M9ImRhdGEtZm9vdG5vdGUtYmFja3JlZiI+XHUyMUE5JysoZj4xPyI8c3VwPiIrZisiPC9zdXA+IjoiIikrIjwvYT4iKTtsZXQgdj14LmpvaW4oIiAiKSxiPSExO3RoaXMubGluZUVuZGluZ0lmTmVlZGVkKCksdGhpcy50YWcoJzxsaSBpZD0iJytvKyJmbi0iK2grJyI+JyksdGhpcy5saW5lRW5kaW5nSWZOZWVkZWQoKSx0aGlzLnRhZyhjW2RdLnJlcGxhY2UoLzxcL3A+KD86XHI/XG58XHIpPyQvLGZ1bmN0aW9uKHkpe3JldHVybiBiPSEwLCIgIit2K3l9KSksYnx8KHRoaXMubGluZUVuZGluZ0lmTmVlZGVkKCksdGhpcy50YWcodikpLHRoaXMubGluZUVuZGluZ0lmTmVlZGVkKCksdGhpcy50YWcoIjwvbGk+Iil9cy5sZW5ndGg+MCYmKHRoaXMubGluZUVuZGluZ0lmTmVlZGVkKCksdGhpcy50YWcoIjwvb2w+IiksdGhpcy5saW5lRW5kaW5nSWZOZWVkZWQoKSx0aGlzLnRhZygiPC9zZWN0aW9uPiIpKX19fX12YXIgWEhyLFFIcixnWmU9cCgoKT0+e3A0KCk7WXMoKTtYSHI9e30uaGFzT3duUHJvcGVydHksUUhyPXt9fSk7dmFyIGJaZT1wKCgpPT57ZlplKCk7Z1plKCl9KTtmdW5jdGlvbiBadGUoKXtyZXR1cm57ZW50ZXI6e3N0cmlrZXRocm91Z2goKXt0aGlzLnRhZygiPGRlbD4iKX19LGV4aXQ6e3N0cmlrZXRocm91Z2goKXt0aGlzLnRhZygiPC9kZWw+Iil9fX19dmFyIHZaZT1wKCgpPT57fSk7ZnVuY3Rpb24gWHRlKGUpe2xldCByPShlfHx7fSkuc2luZ2xlVGlsZGUsaT17bmFtZToic3RyaWtldGhyb3VnaCIsdG9rZW5pemU6bixyZXNvbHZlQWxsOmF9O3JldHVybiByPT1udWxsJiYocj0hMCkse3RleHQ6ezEyNjppfSxpbnNpZGVTcGFuOntudWxsOltpXX0sYXR0ZW50aW9uTWFya2Vyczp7bnVsbDpbMTI2XX19O2Z1bmN0aW9uIGEobyxzKXtsZXQgbD0tMTtmb3IoOysrbDxvLmxlbmd0aDspaWYob1tsXVswXT09PSJlbnRlciImJm9bbF1bMV0udHlwZT09PSJzdHJpa2V0aHJvdWdoU2VxdWVuY2VUZW1wb3JhcnkiJiZvW2xdWzFdLl9jbG9zZSl7bGV0IGM9bDtmb3IoO2MtLTspaWYob1tjXVswXT09PSJleGl0IiYmb1tjXVsxXS50eXBlPT09InN0cmlrZXRocm91Z2hTZXF1ZW5jZVRlbXBvcmFyeSImJm9bY11bMV0uX29wZW4mJm9bbF1bMV0uZW5kLm9mZnNldC1vW2xdWzFdLnN0YXJ0Lm9mZnNldD09PW9bY11bMV0uZW5kLm9mZnNldC1vW2NdWzFdLnN0YXJ0Lm9mZnNldCl7b1tsXVsxXS50eXBlPSJzdHJpa2V0aHJvdWdoU2VxdWVuY2UiLG9bY11bMV0udHlwZT0ic3RyaWtldGhyb3VnaFNlcXVlbmNlIjtsZXQgdT17dHlwZToic3RyaWtldGhyb3VnaCIsc3RhcnQ6T2JqZWN0LmFzc2lnbih7fSxvW2NdWzFdLnN0YXJ0KSxlbmQ6T2JqZWN0LmFzc2lnbih7fSxvW2xdWzFdLmVuZCl9LGQ9e3R5cGU6InN0cmlrZXRocm91Z2hUZXh0IixzdGFydDpPYmplY3QuYXNzaWduKHt9LG9bY11bMV0uZW5kKSxlbmQ6T2JqZWN0LmFzc2lnbih7fSxvW2xdWzFdLnN0YXJ0KX0saD1bWyJlbnRlciIsdSxzXSxbImVudGVyIixvW2NdWzFdLHNdLFsiZXhpdCIsb1tjXVsxXSxzXSxbImVudGVyIixkLHNdXSxmPXMucGFyc2VyLmNvbnN0cnVjdHMuaW5zaWRlU3Bhbi5udWxsO2YmJmoxKGgsaC5sZW5ndGgsMCxmNChmLG8uc2xpY2UoYysxLGwpLHMpKSxqMShoLGgubGVuZ3RoLDAsW1siZXhpdCIsZCxzXSxbImVudGVyIixvW2xdWzFdLHNdLFsiZXhpdCIsb1tsXVsxXSxzXSxbImV4aXQiLHUsc11dKSxqMShvLGMtMSxsLWMrMyxoKSxsPWMraC5sZW5ndGgtMjticmVha319Zm9yKGw9LTE7KytsPG8ubGVuZ3RoOylvW2xdWzFdLnR5cGU9PT0ic3RyaWtldGhyb3VnaFNlcXVlbmNlVGVtcG9yYXJ5IiYmKG9bbF1bMV0udHlwZT0iZGF0YSIpO3JldHVybiBvfWZ1bmN0aW9uIG4obyxzLGwpe2xldCBjPXRoaXMucHJldmlvdXMsdT10aGlzLmV2ZW50cyxkPTA7cmV0dXJuIGg7ZnVuY3Rpb24gaCh4KXtyZXR1cm4gYz09PTEyNiYmdVt1Lmxlbmd0aC0xXVsxXS50eXBlIT09ImNoYXJhY3RlckVzY2FwZSI/bCh4KTooby5lbnRlcigic3RyaWtldGhyb3VnaFNlcXVlbmNlVGVtcG9yYXJ5IiksZih4KSl9ZnVuY3Rpb24gZih4KXtsZXQgdj1hYyhjKTtpZih4PT09MTI2KXJldHVybiBkPjE/bCh4KTooby5jb25zdW1lKHgpLGQrKyxmKTtpZihkPDImJiFyKXJldHVybiBsKHgpO2xldCBiPW8uZXhpdCgic3RyaWtldGhyb3VnaFNlcXVlbmNlVGVtcG9yYXJ5IikseT1hYyh4KTtyZXR1cm4gYi5fb3Blbj0heXx8eT09PTImJiEhdixiLl9jbG9zZT0hdnx8dj09PTImJiEheSxzKHgpfX19dmFyIHhaZT1wKCgpPT57VXMoKTtDXygpO045KCl9KTt2YXIgeVplPXAoKCk9Pnt2WmUoKTt4WmUoKX0pO2Z1bmN0aW9uIEp0ZSgpe3JldHVybntlbnRlcjp7dGFibGUoZSl7bGV0IHQ9ZS5fYWxpZ247dGhpcy5saW5lRW5kaW5nSWZOZWVkZWQoKSx0aGlzLnRhZygiPHRhYmxlPiIpLHRoaXMuc2V0RGF0YSgidGFibGVBbGlnbiIsdCl9LHRhYmxlQm9keSgpe3RoaXMudGFnKCI8dGJvZHk+Iil9LHRhYmxlRGF0YSgpe2xldCBlPXRoaXMuZ2V0RGF0YSgidGFibGVBbGlnbiIpLHQ9dGhpcy5nZXREYXRhKCJ0YWJsZUNvbHVtbiIpLHI9UXRlW2VbdF1dO3I9PT12b2lkIDA/dGhpcy5idWZmZXIoKToodGhpcy5saW5lRW5kaW5nSWZOZWVkZWQoKSx0aGlzLnRhZygiPHRkIityKyI+IikpfSx0YWJsZUhlYWQoKXt0aGlzLmxpbmVFbmRpbmdJZk5lZWRlZCgpLHRoaXMudGFnKCI8dGhlYWQ+Iil9LHRhYmxlSGVhZGVyKCl7bGV0IGU9dGhpcy5nZXREYXRhKCJ0YWJsZUFsaWduIiksdD10aGlzLmdldERhdGEoInRhYmxlQ29sdW1uIikscj1RdGVbZVt0XV07dGhpcy5saW5lRW5kaW5nSWZOZWVkZWQoKSx0aGlzLnRhZygiPHRoIityKyI+Iil9LHRhYmxlUm93KCl7dGhpcy5zZXREYXRhKCJ0YWJsZUNvbHVtbiIsMCksdGhpcy5saW5lRW5kaW5nSWZOZWVkZWQoKSx0aGlzLnRhZygiPHRyPiIpfX0sZXhpdDp7Y29kZVRleHREYXRhKGUpe2xldCB0PXRoaXMuc2xpY2VTZXJpYWxpemUoZSk7dGhpcy5nZXREYXRhKCJ0YWJsZUFsaWduIikmJih0PXQucmVwbGFjZSgvXFwoW1xcfF0pL2csSkhyKSksdGhpcy5yYXcodGhpcy5lbmNvZGUodCkpfSx0YWJsZSgpe3RoaXMuc2V0RGF0YSgidGFibGVBbGlnbiIpLHRoaXMuc2V0RGF0YSgic2x1cnBBbGxMaW5lRW5kaW5ncyIpLHRoaXMubGluZUVuZGluZ0lmTmVlZGVkKCksdGhpcy50YWcoIjwvdGFibGU+Iil9LHRhYmxlQm9keSgpe3RoaXMubGluZUVuZGluZ0lmTmVlZGVkKCksdGhpcy50YWcoIjwvdGJvZHk+Iil9LHRhYmxlRGF0YSgpe2xldCBlPXRoaXMuZ2V0RGF0YSgidGFibGVBbGlnbiIpLHQ9dGhpcy5nZXREYXRhKCJ0YWJsZUNvbHVtbiIpO3QgaW4gZT8odGhpcy50YWcoIjwvdGQ+IiksdGhpcy5zZXREYXRhKCJ0YWJsZUNvbHVtbiIsdCsxKSk6dGhpcy5yZXN1bWUoKX0sdGFibGVIZWFkKCl7dGhpcy5saW5lRW5kaW5nSWZOZWVkZWQoKSx0aGlzLnRhZygiPC90aGVhZD4iKX0sdGFibGVIZWFkZXIoKXtsZXQgZT10aGlzLmdldERhdGEoInRhYmxlQ29sdW1uIik7dGhpcy50YWcoIjwvdGg+IiksdGhpcy5zZXREYXRhKCJ0YWJsZUNvbHVtbiIsZSsxKX0sdGFibGVSb3coKXtsZXQgZT10aGlzLmdldERhdGEoInRhYmxlQWxpZ24iKSx0PXRoaXMuZ2V0RGF0YSgidGFibGVDb2x1bW4iKTtmb3IoO3Q8ZS5sZW5ndGg7KXRoaXMubGluZUVuZGluZ0lmTmVlZGVkKCksdGhpcy50YWcoIjx0ZCIrUXRlW2VbdF1dKyI+PC90ZD4iKSx0Kys7dGhpcy5zZXREYXRhKCJ0YWJsZUNvbHVtbiIsdCksdGhpcy5saW5lRW5kaW5nSWZOZWVkZWQoKSx0aGlzLnRhZygiPC90cj4iKX19fX1mdW5jdGlvbiBKSHIoZSx0KXtyZXR1cm4gdD09PSJ8Ij90OmV9dmFyIFF0ZSx3WmU9cCgoKT0+e1F0ZT17bm9uZToiIixsZWZ0OicgYWxpZ249ImxlZnQiJyxyaWdodDonIGFsaWduPSJyaWdodCInLGNlbnRlcjonIGFsaWduPSJjZW50ZXIiJ319KTtmdW5jdGlvbiBLSHIoZSx0LHIsaSl7bGV0IGE9MDtpZighKHI9PT0wJiZpLmxlbmd0aD09PTApKXtmb3IoO2E8ZS5tYXAubGVuZ3RoOyl7aWYoZS5tYXBbYV1bMF09PT10KXtlLm1hcFthXVsxXSs9cixlLm1hcFthXVsyXS5wdXNoKC4uLmkpO3JldHVybn1hKz0xfWUubWFwLnB1c2goW3QscixpXSl9fXZhciBYXyxNWmU9cCgoKT0+e1hfPWNsYXNze2NvbnN0cnVjdG9yKCl7dGhpcy5tYXA9W119YWRkKHQscixpKXtLSHIodGhpcyx0LHIsaSl9Y29uc3VtZSh0KXtpZih0aGlzLm1hcC5zb3J0KGZ1bmN0aW9uKG4sbyl7cmV0dXJuIG5bMF0tb1swXX0pLHRoaXMubWFwLmxlbmd0aD09PTApcmV0dXJuO2xldCByPXRoaXMubWFwLmxlbmd0aCxpPVtdO2Zvcig7cj4wOylyLT0xLGkucHVzaCh0LnNsaWNlKHRoaXMubWFwW3JdWzBdK3RoaXMubWFwW3JdWzFdKSx0aGlzLm1hcFtyXVsyXSksdC5sZW5ndGg9dGhpcy5tYXBbcl1bMF07aS5wdXNoKHQuc2xpY2UoKSksdC5sZW5ndGg9MDtsZXQgYT1pLnBvcCgpO2Zvcig7YTspe2ZvcihsZXQgbiBvZiBhKXQucHVzaChuKTthPWkucG9wKCl9dGhpcy5tYXAubGVuZ3RoPTB9fX0pO2Z1bmN0aW9uIGtaZShlLHQpe2xldCByPSExLGk9W107Zm9yKDt0PGUubGVuZ3RoOyl7bGV0IGE9ZVt0XTtpZihyKXtpZihhWzBdPT09ImVudGVyIilhWzFdLnR5cGU9PT0idGFibGVDb250ZW50IiYmaS5wdXNoKGVbdCsxXVsxXS50eXBlPT09InRhYmxlRGVsaW1pdGVyTWFya2VyIj8ibGVmdCI6Im5vbmUiKTtlbHNlIGlmKGFbMV0udHlwZT09PSJ0YWJsZUNvbnRlbnQiKXtpZihlW3QtMV1bMV0udHlwZT09PSJ0YWJsZURlbGltaXRlck1hcmtlciIpe2xldCBuPWkubGVuZ3RoLTE7aVtuXT1pW25dPT09ImxlZnQiPyJjZW50ZXIiOiJyaWdodCJ9fWVsc2UgaWYoYVsxXS50eXBlPT09InRhYmxlRGVsaW1pdGVyUm93IilicmVha31lbHNlIGFbMF09PT0iZW50ZXIiJiZhWzFdLnR5cGU9PT0idGFibGVEZWxpbWl0ZXJSb3ciJiYocj0hMCk7dCs9MX1yZXR1cm4gaX12YXIgU1plPXAoKCk9Pnt9KTtmdW5jdGlvbiBLdGUoKXtyZXR1cm57Zmxvdzp7bnVsbDp7bmFtZToidGFibGUiLHRva2VuaXplOmVxcixyZXNvbHZlQWxsOnRxcn19fX1mdW5jdGlvbiBlcXIoZSx0LHIpe2xldCBpPXRoaXMsYT0wLG49MCxvO3JldHVybiBzO2Z1bmN0aW9uIHMoUil7bGV0IF89aS5ldmVudHMubGVuZ3RoLTE7Zm9yKDtfPi0xOyl7bGV0IFQ9aS5ldmVudHNbX11bMV0udHlwZTtpZihUPT09ImxpbmVFbmRpbmcifHxUPT09ImxpbmVQcmVmaXgiKV8tLTtlbHNlIGJyZWFrfWxldCBTPV8+LTE/aS5ldmVudHNbX11bMV0udHlwZTpudWxsLCQ9Uz09PSJ0YWJsZUhlYWQifHxTPT09InRhYmxlUm93Ij9NOmw7cmV0dXJuICQ9PT1NJiZpLnBhcnNlci5sYXp5W2kubm93KCkubGluZV0/cihSKTokKFIpfWZ1bmN0aW9uIGwoUil7cmV0dXJuIGUuZW50ZXIoInRhYmxlSGVhZCIpLGUuZW50ZXIoInRhYmxlUm93IiksYyhSKX1mdW5jdGlvbiBjKFIpe3JldHVybiBSPT09MTI0fHwobz0hMCxuKz0xKSx1KFIpfWZ1bmN0aW9uIHUoUil7cmV0dXJuIFI9PT1udWxsP3IoUik6R2UoUik/bj4xPyhuPTAsaS5pbnRlcnJ1cHQ9ITAsZS5leGl0KCJ0YWJsZVJvdyIpLGUuZW50ZXIoImxpbmVFbmRpbmciKSxlLmNvbnN1bWUoUiksZS5leGl0KCJsaW5lRW5kaW5nIiksZik6cihSKTpjdChSKT9idChlLHUsIndoaXRlc3BhY2UiKShSKToobis9MSxvJiYobz0hMSxhKz0xKSxSPT09MTI0PyhlLmVudGVyKCJ0YWJsZUNlbGxEaXZpZGVyIiksZS5jb25zdW1lKFIpLGUuZXhpdCgidGFibGVDZWxsRGl2aWRlciIpLG89ITAsdSk6KGUuZW50ZXIoImRhdGEiKSxkKFIpKSl9ZnVuY3Rpb24gZChSKXtyZXR1cm4gUj09PW51bGx8fFI9PT0xMjR8fEp0KFIpPyhlLmV4aXQoImRhdGEiKSx1KFIpKTooZS5jb25zdW1lKFIpLFI9PT05Mj9oOmQpfWZ1bmN0aW9uIGgoUil7cmV0dXJuIFI9PT05Mnx8Uj09PTEyND8oZS5jb25zdW1lKFIpLGQpOmQoUil9ZnVuY3Rpb24gZihSKXtyZXR1cm4gaS5pbnRlcnJ1cHQ9ITEsaS5wYXJzZXIubGF6eVtpLm5vdygpLmxpbmVdP3IoUik6KGUuZW50ZXIoInRhYmxlRGVsaW1pdGVyUm93Iiksbz0hMSxjdChSKT9idChlLHgsImxpbmVQcmVmaXgiLGkucGFyc2VyLmNvbnN0cnVjdHMuZGlzYWJsZS5udWxsLmluY2x1ZGVzKCJjb2RlSW5kZW50ZWQiKT92b2lkIDA6NCkoUik6eChSKSl9ZnVuY3Rpb24geChSKXtyZXR1cm4gUj09PTQ1fHxSPT09NTg/YihSKTpSPT09MTI0PyhvPSEwLGUuZW50ZXIoInRhYmxlQ2VsbERpdmlkZXIiKSxlLmNvbnN1bWUoUiksZS5leGl0KCJ0YWJsZUNlbGxEaXZpZGVyIiksdik6eihSKX1mdW5jdGlvbiB2KFIpe3JldHVybiBjdChSKT9idChlLGIsIndoaXRlc3BhY2UiKShSKTpiKFIpfWZ1bmN0aW9uIGIoUil7cmV0dXJuIFI9PT01OD8obis9MSxvPSEwLGUuZW50ZXIoInRhYmxlRGVsaW1pdGVyTWFya2VyIiksZS5jb25zdW1lKFIpLGUuZXhpdCgidGFibGVEZWxpbWl0ZXJNYXJrZXIiKSx5KTpSPT09NDU/KG4rPTEseShSKSk6Uj09PW51bGx8fEdlKFIpP08oUik6eihSKX1mdW5jdGlvbiB5KFIpe3JldHVybiBSPT09NDU/KGUuZW50ZXIoInRhYmxlRGVsaW1pdGVyRmlsbGVyIiksdyhSKSk6eihSKX1mdW5jdGlvbiB3KFIpe3JldHVybiBSPT09NDU/KGUuY29uc3VtZShSKSx3KTpSPT09NTg/KG89ITAsZS5leGl0KCJ0YWJsZURlbGltaXRlckZpbGxlciIpLGUuZW50ZXIoInRhYmxlRGVsaW1pdGVyTWFya2VyIiksZS5jb25zdW1lKFIpLGUuZXhpdCgidGFibGVEZWxpbWl0ZXJNYXJrZXIiKSxrKTooZS5leGl0KCJ0YWJsZURlbGltaXRlckZpbGxlciIpLGsoUikpfWZ1bmN0aW9uIGsoUil7cmV0dXJuIGN0KFIpP2J0KGUsTywid2hpdGVzcGFjZSIpKFIpOk8oUil9ZnVuY3Rpb24gTyhSKXtyZXR1cm4gUj09PTEyND94KFIpOlI9PT1udWxsfHxHZShSKT8hb3x8YSE9PW4/eihSKTooZS5leGl0KCJ0YWJsZURlbGltaXRlclJvdyIpLGUuZXhpdCgidGFibGVIZWFkIiksdChSKSk6eihSKX1mdW5jdGlvbiB6KFIpe3JldHVybiByKFIpfWZ1bmN0aW9uIE0oUil7cmV0dXJuIGUuZW50ZXIoInRhYmxlUm93IiksRihSKX1mdW5jdGlvbiBGKFIpe3JldHVybiBSPT09MTI0PyhlLmVudGVyKCJ0YWJsZUNlbGxEaXZpZGVyIiksZS5jb25zdW1lKFIpLGUuZXhpdCgidGFibGVDZWxsRGl2aWRlciIpLEYpOlI9PT1udWxsfHxHZShSKT8oZS5leGl0KCJ0YWJsZVJvdyIpLHQoUikpOmN0KFIpP2J0KGUsRiwid2hpdGVzcGFjZSIpKFIpOihlLmVudGVyKCJkYXRhIiksRChSKSl9ZnVuY3Rpb24gRChSKXtyZXR1cm4gUj09PW51bGx8fFI9PT0xMjR8fEp0KFIpPyhlLmV4aXQoImRhdGEiKSxGKFIpKTooZS5jb25zdW1lKFIpLFI9PT05Mj9OOkQpfWZ1bmN0aW9uIE4oUil7cmV0dXJuIFI9PT05Mnx8Uj09PTEyND8oZS5jb25zdW1lKFIpLEQpOkQoUil9fWZ1bmN0aW9uIHRxcihlLHQpe2xldCByPS0xLGk9ITAsYT0wLG49WzAsMCwwLDBdLG89WzAsMCwwLDBdLHM9ITEsbD0wLGMsdSxkLGg9bmV3IFhfO2Zvcig7KytyPGUubGVuZ3RoOyl7bGV0IGY9ZVtyXSx4PWZbMV07ZlswXT09PSJlbnRlciI/eC50eXBlPT09InRhYmxlSGVhZCI/KHM9ITEsbCE9PTAmJih6WmUoaCx0LGwsYyx1KSx1PXZvaWQgMCxsPTApLGM9e3R5cGU6InRhYmxlIixzdGFydDpPYmplY3QuYXNzaWduKHt9LHguc3RhcnQpLGVuZDpPYmplY3QuYXNzaWduKHt9LHguZW5kKX0saC5hZGQociwwLFtbImVudGVyIixjLHRdXSkpOngudHlwZT09PSJ0YWJsZVJvdyJ8fHgudHlwZT09PSJ0YWJsZURlbGltaXRlclJvdyI/KGk9ITAsZD12b2lkIDAsbj1bMCwwLDAsMF0sbz1bMCxyKzEsMCwwXSxzJiYocz0hMSx1PXt0eXBlOiJ0YWJsZUJvZHkiLHN0YXJ0Ok9iamVjdC5hc3NpZ24oe30seC5zdGFydCksZW5kOk9iamVjdC5hc3NpZ24oe30seC5lbmQpfSxoLmFkZChyLDAsW1siZW50ZXIiLHUsdF1dKSksYT14LnR5cGU9PT0idGFibGVEZWxpbWl0ZXJSb3ciPzI6dT8zOjEpOmEmJih4LnR5cGU9PT0iZGF0YSJ8fHgudHlwZT09PSJ0YWJsZURlbGltaXRlck1hcmtlciJ8fHgudHlwZT09PSJ0YWJsZURlbGltaXRlckZpbGxlciIpPyhpPSExLG9bMl09PT0wJiYoblsxXSE9PTAmJihvWzBdPW9bMV0sZD1RXyhoLHQsbixhLHZvaWQgMCxkKSxuPVswLDAsMCwwXSksb1syXT1yKSk6eC50eXBlPT09InRhYmxlQ2VsbERpdmlkZXIiJiYoaT9pPSExOihuWzFdIT09MCYmKG9bMF09b1sxXSxkPVFfKGgsdCxuLGEsdm9pZCAwLGQpKSxuPW8sbz1bblsxXSxyLDAsMF0pKTp4LnR5cGU9PT0idGFibGVIZWFkIj8ocz0hMCxsPXIpOngudHlwZT09PSJ0YWJsZVJvdyJ8fHgudHlwZT09PSJ0YWJsZURlbGltaXRlclJvdyI/KGw9cixuWzFdIT09MD8ob1swXT1vWzFdLGQ9UV8oaCx0LG4sYSxyLGQpKTpvWzFdIT09MCYmKGQ9UV8oaCx0LG8sYSxyLGQpKSxhPTApOmEmJih4LnR5cGU9PT0iZGF0YSJ8fHgudHlwZT09PSJ0YWJsZURlbGltaXRlck1hcmtlciJ8fHgudHlwZT09PSJ0YWJsZURlbGltaXRlckZpbGxlciIpJiYob1szXT1yKX1mb3IobCE9PTAmJnpaZShoLHQsbCxjLHUpLGguY29uc3VtZSh0LmV2ZW50cykscj0tMTsrK3I8dC5ldmVudHMubGVuZ3RoOyl7bGV0IGY9dC5ldmVudHNbcl07ZlswXT09PSJlbnRlciImJmZbMV0udHlwZT09PSJ0YWJsZSImJihmWzFdLl9hbGlnbj1rWmUodC5ldmVudHMscikpfXJldHVybiBlfWZ1bmN0aW9uIFFfKGUsdCxyLGksYSxuKXtsZXQgbz1pPT09MT8idGFibGVIZWFkZXIiOmk9PT0yPyJ0YWJsZURlbGltaXRlciI6InRhYmxlRGF0YSIscz0idGFibGVDb250ZW50IjtyWzBdIT09MCYmKG4uZW5kPU9iamVjdC5hc3NpZ24oe30sdXAodC5ldmVudHMsclswXSkpLGUuYWRkKHJbMF0sMCxbWyJleGl0IixuLHRdXSkpO2xldCBsPXVwKHQuZXZlbnRzLHJbMV0pO2lmKG49e3R5cGU6byxzdGFydDpPYmplY3QuYXNzaWduKHt9LGwpLGVuZDpPYmplY3QuYXNzaWduKHt9LGwpfSxlLmFkZChyWzFdLDAsW1siZW50ZXIiLG4sdF1dKSxyWzJdIT09MCl7bGV0IGM9dXAodC5ldmVudHMsclsyXSksdT11cCh0LmV2ZW50cyxyWzNdKSxkPXt0eXBlOnMsc3RhcnQ6T2JqZWN0LmFzc2lnbih7fSxjKSxlbmQ6T2JqZWN0LmFzc2lnbih7fSx1KX07aWYoZS5hZGQoclsyXSwwLFtbImVudGVyIixkLHRdXSksaSE9PTIpe2xldCBoPXQuZXZlbnRzW3JbMl1dLGY9dC5ldmVudHNbclszXV07aWYoaFsxXS5lbmQ9T2JqZWN0LmFzc2lnbih7fSxmWzFdLmVuZCksaFsxXS50eXBlPSJjaHVua1RleHQiLGhbMV0uY29udGVudFR5cGU9InRleHQiLHJbM10+clsyXSsxKXtsZXQgeD1yWzJdKzEsdj1yWzNdLXJbMl0tMTtlLmFkZCh4LHYsW10pfX1lLmFkZChyWzNdKzEsMCxbWyJleGl0IixkLHRdXSl9cmV0dXJuIGEhPT12b2lkIDAmJihuLmVuZD1PYmplY3QuYXNzaWduKHt9LHVwKHQuZXZlbnRzLGEpKSxlLmFkZChhLDAsW1siZXhpdCIsbix0XV0pLG49dm9pZCAwKSxufWZ1bmN0aW9uIHpaZShlLHQscixpLGEpe2xldCBuPVtdLG89dXAodC5ldmVudHMscik7YSYmKGEuZW5kPU9iamVjdC5hc3NpZ24oe30sbyksbi5wdXNoKFsiZXhpdCIsYSx0XSkpLGkuZW5kPU9iamVjdC5hc3NpZ24oe30sbyksbi5wdXNoKFsiZXhpdCIsaSx0XSksZS5hZGQocisxLDAsbil9ZnVuY3Rpb24gdXAoZSx0KXtsZXQgcj1lW3RdLGk9clswXT09PSJlbnRlciI/InN0YXJ0IjoiZW5kIjtyZXR1cm4gclsxXVtpXX12YXIgQ1plPXAoKCk9PntWMSgpO3JyKCk7TVplKCk7U1plKCl9KTt2YXIgVFplPXAoKCk9Pnt3WmUoKTtDWmUoKX0pO2Z1bmN0aW9uIGVyZSgpe3JldHVybntleGl0OntodG1sRmxvd0RhdGEoZSl7TFplLmNhbGwodGhpcyxlLF9aZSl9LGh0bWxUZXh0RGF0YShlKXtMWmUuY2FsbCh0aGlzLGUscnFyKX19fX1mdW5jdGlvbiBMWmUoZSx0KXtsZXQgcj10aGlzLnNsaWNlU2VyaWFsaXplKGUpO3RoaXMub3B0aW9ucy5hbGxvd0Rhbmdlcm91c0h0bWwmJihyPXIucmVwbGFjZSh0LCImbHQ7JDEkMiIpKSx0aGlzLnJhdyh0aGlzLmVuY29kZShyKSl9dmFyIF9aZSxycXIsQVplPXAoKCk9PntfWmU9LzwoXC8/KShpZnJhbWV8bm9lbWJlZHxub2ZyYW1lc3xwbGFpbnRleHR8c2NyaXB0fHN0eWxlfHRpdGxlfHRleHRhcmVhfHhtcCkoPz1bXHRcblxmXHIgLz5dKS9naSxycXI9bmV3IFJlZ0V4cCgiXiIrX1plLnNvdXJjZSwiaSIpfSk7dmFyIERaZT1wKCgpPT57QVplKCl9KTtmdW5jdGlvbiB0cmUoKXtyZXR1cm57ZW50ZXI6e3Rhc2tMaXN0Q2hlY2soKXt0aGlzLnRhZygnPGlucHV0IHR5cGU9ImNoZWNrYm94IiBkaXNhYmxlZD0iIiAnKX19LGV4aXQ6e3Rhc2tMaXN0Q2hlY2soKXt0aGlzLnRhZygiLz4iKX0sdGFza0xpc3RDaGVja1ZhbHVlQ2hlY2tlZCgpe3RoaXMudGFnKCdjaGVja2VkPSIiICcpfX19fXZhciBFWmU9cCgoKT0+e30pO2Z1bmN0aW9uIHJyZSgpe3JldHVybnt0ZXh0Ons5MTppcXJ9fX1mdW5jdGlvbiBhcXIoZSx0LHIpe2xldCBpPXRoaXM7cmV0dXJuIGE7ZnVuY3Rpb24gYShsKXtyZXR1cm4gaS5wcmV2aW91cyE9PW51bGx8fCFpLl9nZm1UYXNrbGlzdEZpcnN0Q29udGVudE9mTGlzdEl0ZW0/cihsKTooZS5lbnRlcigidGFza0xpc3RDaGVjayIpLGUuZW50ZXIoInRhc2tMaXN0Q2hlY2tNYXJrZXIiKSxlLmNvbnN1bWUobCksZS5leGl0KCJ0YXNrTGlzdENoZWNrTWFya2VyIiksbil9ZnVuY3Rpb24gbihsKXtyZXR1cm4gSnQobCk/KGUuZW50ZXIoInRhc2tMaXN0Q2hlY2tWYWx1ZVVuY2hlY2tlZCIpLGUuY29uc3VtZShsKSxlLmV4aXQoInRhc2tMaXN0Q2hlY2tWYWx1ZVVuY2hlY2tlZCIpLG8pOmw9PT04OHx8bD09PTEyMD8oZS5lbnRlcigidGFza0xpc3RDaGVja1ZhbHVlQ2hlY2tlZCIpLGUuY29uc3VtZShsKSxlLmV4aXQoInRhc2tMaXN0Q2hlY2tWYWx1ZUNoZWNrZWQiKSxvKTpyKGwpfWZ1bmN0aW9uIG8obCl7cmV0dXJuIGw9PT05Mz8oZS5lbnRlcigidGFza0xpc3RDaGVja01hcmtlciIpLGUuY29uc3VtZShsKSxlLmV4aXQoInRhc2tMaXN0Q2hlY2tNYXJrZXIiKSxlLmV4aXQoInRhc2tMaXN0Q2hlY2siKSxzKTpyKGwpfWZ1bmN0aW9uIHMobCl7cmV0dXJuIEdlKGwpP3QobCk6Y3QobCk/ZS5jaGVjayh7dG9rZW5pemU6bnFyfSx0LHIpKGwpOnIobCl9fWZ1bmN0aW9uIG5xcihlLHQscil7cmV0dXJuIGJ0KGUsaSwid2hpdGVzcGFjZSIpO2Z1bmN0aW9uIGkoYSl7cmV0dXJuIGE9PT1udWxsP3IoYSk6dChhKX19dmFyIGlxciwkWmU9cCgoKT0+e1YxKCk7cnIoKTtpcXI9e25hbWU6InRhc2tsaXN0Q2hlY2siLHRva2VuaXplOmFxcn19KTt2YXIgSVplPXAoKCk9PntFWmUoKTskWmUoKX0pO2Z1bmN0aW9uIFBaZShlKXtyZXR1cm4gSV8oW3p0ZSgpLEd0ZSgpLFh0ZShlKSxLdGUoKSxycmUoKV0pfWZ1bmN0aW9uIF9IaShlKXtyZXR1cm4gUF8oW190ZSgpLFl0ZShlKSxadGUoKSxKdGUoKSxlcmUoKSx0cmUoKV0pfXZhciBOWmU9cCgoKT0+e05fKCk7VlllKCk7YlplKCk7eVplKCk7VFplKCk7RFplKCk7SVplKCl9KTtmdW5jdGlvbiBwcChlKXtsZXQgdD10aGlzLHI9ZXx8b3FyLGk9dC5kYXRhKCksYT1pLm1pY3JvbWFya0V4dGVuc2lvbnN8fChpLm1pY3JvbWFya0V4dGVuc2lvbnM9W10pLG49aS5mcm9tTWFya2Rvd25FeHRlbnNpb25zfHwoaS5mcm9tTWFya2Rvd25FeHRlbnNpb25zPVtdKSxvPWkudG9NYXJrZG93bkV4dGVuc2lvbnN8fChpLnRvTWFya2Rvd25FeHRlbnNpb25zPVtdKTthLnB1c2goUFplKHIpKSxuLnB1c2goeXRlKCkpLG8ucHVzaCh3dGUocikpfXZhciBvcXIsRlplPXAoKCk9PnskWWUoKTtOWmUoKTtvcXI9e319KTt2YXIgT1plPXAoKCk9PntGWmUoKX0pO2Z1bmN0aW9uIGlyZShlKXtsZXQgdD1lfHx7fSxyPSEwLGk9e30sYT1bW11dLG49W10sbz1bXSxsPVBfKFt7ZW50ZXI6e2Jsb2NrUXVvdGU6RSxjb2RlRmVuY2VkOmVlLGNvZGVGZW5jZWRGZW5jZUluZm86Yixjb2RlRmVuY2VkRmVuY2VNZXRhOmIsY29kZUluZGVudGVkOndlLGNvZGVUZXh0OmFlLGNvbnRlbnQ6Q2UsZGVmaW5pdGlvbjpMZSxkZWZpbml0aW9uRGVzdGluYXRpb25TdHJpbmc6SCxkZWZpbml0aW9uTGFiZWxTdHJpbmc6YixkZWZpbml0aW9uVGl0bGVTdHJpbmc6YixlbXBoYXNpczpMdCxodG1sRmxvdzpVZSxodG1sVGV4dDppdCxpbWFnZTpuZSxsYWJlbDpiLGxpbms6a2UsbGlzdEl0ZW1NYXJrZXI6XyxsaXN0SXRlbVZhbHVlOlIsbGlzdE9yZGVyZWQ6RCxsaXN0VW5vcmRlcmVkOk4scGFyYWdyYXBoOkIscmVmZXJlbmNlOmIscmVzb3VyY2U6VSxyZXNvdXJjZURlc3RpbmF0aW9uU3RyaW5nOlYscmVzb3VyY2VUaXRsZVN0cmluZzpiLHNldGV4dEhlYWRpbmc6aWUsc3Ryb25nOld0fSxleGl0OnthdHhIZWFkaW5nOkllLGF0eEhlYWRpbmdTZXF1ZW5jZTpoZSxhdXRvbGlua0VtYWlsOldvLGF1dG9saW5rUHJvdG9jb2w6VW8sYmxvY2tRdW90ZTpxLGNoYXJhY3RlckVzY2FwZVZhbHVlOlosY2hhcmFjdGVyUmVmZXJlbmNlTWFya2VySGV4YWRlY2ltYWw6WXIsY2hhcmFjdGVyUmVmZXJlbmNlTWFya2VyTnVtZXJpYzpZcixjaGFyYWN0ZXJSZWZlcmVuY2VWYWx1ZTpkbixjb2RlRmVuY2VkOkksY29kZUZlbmNlZEZlbmNlOmdlLGNvZGVGZW5jZWRGZW5jZUluZm86UCxjb2RlRmVuY2VkRmVuY2VNZXRhOkYsY29kZUZsb3dWYWx1ZTptZSxjb2RlSW5kZW50ZWQ6SSxjb2RlVGV4dDpzZSxjb2RlVGV4dERhdGE6WixkYXRhOlosZGVmaW5pdGlvbjp1ZSxkZWZpbml0aW9uRGVzdGluYXRpb25TdHJpbmc6dGUsZGVmaW5pdGlvbkxhYmVsU3RyaW5nOlcsZGVmaW5pdGlvblRpdGxlU3RyaW5nOmJlLGVtcGhhc2lzOl9lLGhhcmRCcmVha0VzY2FwZTpFZSxoYXJkQnJlYWtUcmFpbGluZzpFZSxodG1sRmxvdzpNdCxodG1sRmxvd0RhdGE6WixodG1sVGV4dDpNdCxodG1sVGV4dERhdGE6WixpbWFnZTp2ZSxsYWJlbDpBLGxhYmVsVGV4dDpZLGxpbmVFbmRpbmc6SixsaW5rOnZlLGxpc3RPcmRlcmVkOlMsbGlzdFVub3JkZXJlZDokLHBhcmFncmFwaDpHLHJlZmVyZW5jZTpGLHJlZmVyZW5jZVN0cmluZzpMLHJlc291cmNlOkYscmVzb3VyY2VEZXN0aW5hdGlvblN0cmluZzpYLHJlc291cmNlVGl0bGVTdHJpbmc6ZGUsc2V0ZXh0SGVhZGluZzpLLHNldGV4dEhlYWRpbmdMaW5lU2VxdWVuY2U6WmUsc2V0ZXh0SGVhZGluZ1RleHQ6U2Usc3Ryb25nOnZ0LHRoZW1hdGljQnJlYWs6U3R9fSwuLi50Lmh0bWxFeHRlbnNpb25zfHxbXV0pLGM9e2RlZmluaXRpb25zOmksdGlnaHRTdGFjazpvfSx1PXtidWZmZXI6YixlbmNvZGU6TSxnZXREYXRhOnYsbGluZUVuZGluZ0lmTmVlZGVkOnosb3B0aW9uczp0LHJhdzprLHJlc3VtZTp5LHNldERhdGE6eCx0YWc6d30sZD10LmRlZmF1bHRMaW5lRW5kaW5nO3JldHVybiBoO2Z1bmN0aW9uIGgoTWUpe2xldCAkZT0tMSxCdD0wLEZyPVtdLFpyPVtdLG4xPVtdO2Zvcig7KyskZTxNZS5sZW5ndGg7KSFkJiYoTWVbJGVdWzFdLnR5cGU9PT0ibGluZUVuZGluZyJ8fE1lWyRlXVsxXS50eXBlPT09ImxpbmVFbmRpbmdCbGFuayIpJiYoZD1NZVskZV1bMl0uc2xpY2VTZXJpYWxpemUoTWVbJGVdWzFdKSksKE1lWyRlXVsxXS50eXBlPT09Imxpc3RPcmRlcmVkInx8TWVbJGVdWzFdLnR5cGU9PT0ibGlzdFVub3JkZXJlZCIpJiYoTWVbJGVdWzBdPT09ImVudGVyIj9Gci5wdXNoKCRlKTpmKE1lLnNsaWNlKEZyLnBvcCgpLCRlKSkpLE1lWyRlXVsxXS50eXBlPT09ImRlZmluaXRpb24iJiYoTWVbJGVdWzBdPT09ImVudGVyIj8objE9YWkobjEsTWUuc2xpY2UoQnQsJGUpKSxCdD0kZSk6KFpyPWFpKFpyLE1lLnNsaWNlKEJ0LCRlKzEpKSxCdD0kZSsxKSk7WnI9YWkoWnIsbjEpLFpyPWFpKFpyLE1lLnNsaWNlKEJ0KSksJGU9LTE7bGV0IFhyPVpyO2ZvcihsLmVudGVyLm51bGwmJmwuZW50ZXIubnVsbC5jYWxsKHUpOysrJGU8TWUubGVuZ3RoOyl7bGV0IEdvPWxbWHJbJGVdWzBdXSxZbz1YclskZV1bMV0udHlwZSxabz1Hb1tZb107UlplLmNhbGwoR28sWW8pJiZabyYmWm8uY2FsbCh7c2xpY2VTZXJpYWxpemU6WHJbJGVdWzJdLnNsaWNlU2VyaWFsaXplLC4uLnV9LFhyWyRlXVsxXSl9cmV0dXJuIGwuZXhpdC5udWxsJiZsLmV4aXQubnVsbC5jYWxsKHUpLGFbMF0uam9pbigiIil9ZnVuY3Rpb24gZihNZSl7bGV0ICRlPU1lLmxlbmd0aCxCdD0wLEZyPTAsWnI9ITEsbjE7Zm9yKDsrK0J0PCRlOyl7bGV0IFhyPU1lW0J0XTtpZihYclsxXS5fY29udGFpbmVyKW4xPXZvaWQgMCxYclswXT09PSJlbnRlciI/RnIrKzpGci0tO2Vsc2Ugc3dpdGNoKFhyWzFdLnR5cGUpe2Nhc2UibGlzdEl0ZW1QcmVmaXgiOntYclswXT09PSJleGl0IiYmKG4xPSEwKTticmVha31jYXNlImxpbmVQcmVmaXgiOmJyZWFrO2Nhc2UibGluZUVuZGluZ0JsYW5rIjp7WHJbMF09PT0iZW50ZXIiJiYhRnImJihuMT9uMT12b2lkIDA6WnI9ITApO2JyZWFrfWRlZmF1bHQ6bjE9dm9pZCAwfX1NZVswXVsxXS5fbG9vc2U9WnJ9ZnVuY3Rpb24geChNZSwkZSl7Y1tNZV09JGV9ZnVuY3Rpb24gdihNZSl7cmV0dXJuIGNbTWVdfWZ1bmN0aW9uIGIoKXthLnB1c2goW10pfWZ1bmN0aW9uIHkoKXtyZXR1cm4gYS5wb3AoKS5qb2luKCIiKX1mdW5jdGlvbiB3KE1lKXtyJiYoeCgibGFzdFdhc1RhZyIsITApLGFbYS5sZW5ndGgtMV0ucHVzaChNZSkpfWZ1bmN0aW9uIGsoTWUpe3goImxhc3RXYXNUYWciKSxhW2EubGVuZ3RoLTFdLnB1c2goTWUpfWZ1bmN0aW9uIE8oKXtrKGR8fGAKYCl9ZnVuY3Rpb24geigpe2xldCBNZT1hW2EubGVuZ3RoLTFdLCRlPU1lW01lLmxlbmd0aC0xXSxCdD0kZT8kZS5jaGFyQ29kZUF0KCRlLmxlbmd0aC0xKTpudWxsO0J0PT09MTB8fEJ0PT09MTN8fEJ0PT09bnVsbHx8TygpfWZ1bmN0aW9uIE0oTWUpe3JldHVybiB2KCJpZ25vcmVFbmNvZGUiKT9NZTpGXyhNZSl9ZnVuY3Rpb24gRigpe3koKX1mdW5jdGlvbiBEKE1lKXtvLnB1c2goIU1lLl9sb29zZSkseigpLHcoIjxvbCIpLHgoImV4cGVjdEZpcnN0SXRlbSIsITApfWZ1bmN0aW9uIE4oTWUpe28ucHVzaCghTWUuX2xvb3NlKSx6KCksdygiPHVsIikseCgiZXhwZWN0Rmlyc3RJdGVtIiwhMCl9ZnVuY3Rpb24gUihNZSl7aWYodigiZXhwZWN0Rmlyc3RJdGVtIikpe2xldCAkZT1OdW1iZXIucGFyc2VJbnQodGhpcy5zbGljZVNlcmlhbGl6ZShNZSksMTApOyRlIT09MSYmdygnIHN0YXJ0PSInK00oU3RyaW5nKCRlKSkrJyInKX19ZnVuY3Rpb24gXygpe3YoImV4cGVjdEZpcnN0SXRlbSIpP3coIj4iKTpUKCkseigpLHcoIjxsaT4iKSx4KCJleHBlY3RGaXJzdEl0ZW0iKSx4KCJsYXN0V2FzVGFnIil9ZnVuY3Rpb24gUygpe1QoKSxvLnBvcCgpLE8oKSx3KCI8L29sPiIpfWZ1bmN0aW9uICQoKXtUKCksby5wb3AoKSxPKCksdygiPC91bD4iKX1mdW5jdGlvbiBUKCl7digibGFzdFdhc1RhZyIpJiYhdigic2x1cnBBbGxMaW5lRW5kaW5ncyIpJiZ6KCksdygiPC9saT4iKSx4KCJzbHVycEFsbExpbmVFbmRpbmdzIil9ZnVuY3Rpb24gRSgpe28ucHVzaCghMSkseigpLHcoIjxibG9ja3F1b3RlPiIpfWZ1bmN0aW9uIHEoKXtvLnBvcCgpLHooKSx3KCI8L2Jsb2NrcXVvdGU+IikseCgic2x1cnBBbGxMaW5lRW5kaW5ncyIpfWZ1bmN0aW9uIEIoKXtvW28ubGVuZ3RoLTFdfHwoeigpLHcoIjxwPiIpKSx4KCJzbHVycEFsbExpbmVFbmRpbmdzIil9ZnVuY3Rpb24gRygpe29bby5sZW5ndGgtMV0/eCgic2x1cnBBbGxMaW5lRW5kaW5ncyIsITApOncoIjwvcD4iKX1mdW5jdGlvbiBlZSgpe3ooKSx3KCI8cHJlPjxjb2RlIikseCgiZmVuY2VzQ291bnQiLDApfWZ1bmN0aW9uIFAoKXtsZXQgTWU9eSgpO3coJyBjbGFzcz0ibGFuZ3VhZ2UtJytNZSsnIicpfWZ1bmN0aW9uIGdlKCl7bGV0IE1lPXYoImZlbmNlc0NvdW50Iil8fDA7TWV8fCh3KCI+IikseCgic2x1cnBPbmVMaW5lRW5kaW5nIiwhMCkpLHgoImZlbmNlc0NvdW50IixNZSsxKX1mdW5jdGlvbiB3ZSgpe3ooKSx3KCI8cHJlPjxjb2RlPiIpfWZ1bmN0aW9uIEkoKXtsZXQgTWU9digiZmVuY2VzQ291bnQiKTtNZSE9PXZvaWQgMCYmTWU8MiYmYy50aWdodFN0YWNrLmxlbmd0aD4wJiYhdigibGFzdFdhc1RhZyIpJiZPKCksdigiZmxvd0NvZGVTZWVuRGF0YSIpJiZ6KCksdygiPC9jb2RlPjwvcHJlPiIpLE1lIT09dm9pZCAwJiZNZTwyJiZ6KCkseCgiZmxvd0NvZGVTZWVuRGF0YSIpLHgoImZlbmNlc0NvdW50IikseCgic2x1cnBPbmVMaW5lRW5kaW5nIil9ZnVuY3Rpb24gbmUoKXtuLnB1c2goe2ltYWdlOiEwfSkscj12b2lkIDB9ZnVuY3Rpb24ga2UoKXtuLnB1c2goe30pfWZ1bmN0aW9uIFkoTWUpe25bbi5sZW5ndGgtMV0ubGFiZWxJZD10aGlzLnNsaWNlU2VyaWFsaXplKE1lKX1mdW5jdGlvbiBBKCl7bltuLmxlbmd0aC0xXS5sYWJlbD15KCl9ZnVuY3Rpb24gTChNZSl7bltuLmxlbmd0aC0xXS5yZWZlcmVuY2VJZD10aGlzLnNsaWNlU2VyaWFsaXplKE1lKX1mdW5jdGlvbiBVKCl7YigpLG5bbi5sZW5ndGgtMV0uZGVzdGluYXRpb249IiJ9ZnVuY3Rpb24gVigpe2IoKSx4KCJpZ25vcmVFbmNvZGUiLCEwKX1mdW5jdGlvbiBYKCl7bltuLmxlbmd0aC0xXS5kZXN0aW5hdGlvbj15KCkseCgiaWdub3JlRW5jb2RlIil9ZnVuY3Rpb24gZGUoKXtuW24ubGVuZ3RoLTFdLnRpdGxlPXkoKX1mdW5jdGlvbiB2ZSgpe2xldCBNZT1uLmxlbmd0aC0xLCRlPW5bTWVdLEJ0PSRlLnJlZmVyZW5jZUlkfHwkZS5sYWJlbElkLEZyPSRlLmRlc3RpbmF0aW9uPT09dm9pZCAwP2lbUDEoQnQpXTokZTtmb3Iocj0hMDtNZS0tOylpZihuW01lXS5pbWFnZSl7cj12b2lkIDA7YnJlYWt9JGUuaW1hZ2U/KHcoJzxpbWcgc3JjPSInK0dzKEZyLmRlc3RpbmF0aW9uLHQuYWxsb3dEYW5nZXJvdXNQcm90b2NvbD92b2lkIDA6c3FyKSsnIiBhbHQ9IicpLGsoJGUubGFiZWwpLHcoJyInKSk6dygnPGEgaHJlZj0iJytHcyhGci5kZXN0aW5hdGlvbix0LmFsbG93RGFuZ2Vyb3VzUHJvdG9jb2w/dm9pZCAwOkJaZSkrJyInKSx3KEZyLnRpdGxlPycgdGl0bGU9IicrRnIudGl0bGUrJyInOiIiKSwkZS5pbWFnZT93KCIgLz4iKToodygiPiIpLGsoJGUubGFiZWwpLHcoIjwvYT4iKSksbi5wb3AoKX1mdW5jdGlvbiBMZSgpe2IoKSxuLnB1c2goe30pfWZ1bmN0aW9uIFcoTWUpe3koKSxuW24ubGVuZ3RoLTFdLmxhYmVsSWQ9dGhpcy5zbGljZVNlcmlhbGl6ZShNZSl9ZnVuY3Rpb24gSCgpe2IoKSx4KCJpZ25vcmVFbmNvZGUiLCEwKX1mdW5jdGlvbiB0ZSgpe25bbi5sZW5ndGgtMV0uZGVzdGluYXRpb249eSgpLHgoImlnbm9yZUVuY29kZSIpfWZ1bmN0aW9uIGJlKCl7bltuLmxlbmd0aC0xXS50aXRsZT15KCl9ZnVuY3Rpb24gdWUoKXtsZXQgTWU9bltuLmxlbmd0aC0xXSwkZT1QMShNZS5sYWJlbElkKTt5KCksUlplLmNhbGwoaSwkZSl8fChpWyRlXT1uW24ubGVuZ3RoLTFdKSxuLnBvcCgpfWZ1bmN0aW9uIENlKCl7eCgic2x1cnBBbGxMaW5lRW5kaW5ncyIsITApfWZ1bmN0aW9uIGhlKE1lKXt2KCJoZWFkaW5nUmFuayIpfHwoeCgiaGVhZGluZ1JhbmsiLHRoaXMuc2xpY2VTZXJpYWxpemUoTWUpLmxlbmd0aCkseigpLHcoIjxoIit2KCJoZWFkaW5nUmFuayIpKyI+IikpfWZ1bmN0aW9uIGllKCl7YigpLHgoInNsdXJwQWxsTGluZUVuZGluZ3MiKX1mdW5jdGlvbiBTZSgpe3goInNsdXJwQWxsTGluZUVuZGluZ3MiLCEwKX1mdW5jdGlvbiBJZSgpe3coIjwvaCIrdigiaGVhZGluZ1JhbmsiKSsiPiIpLHgoImhlYWRpbmdSYW5rIil9ZnVuY3Rpb24gWmUoTWUpe3goImhlYWRpbmdSYW5rIix0aGlzLnNsaWNlU2VyaWFsaXplKE1lKS5jaGFyQ29kZUF0KDApPT09NjE/MToyKX1mdW5jdGlvbiBLKCl7bGV0IE1lPXkoKTt6KCksdygiPGgiK3YoImhlYWRpbmdSYW5rIikrIj4iKSxrKE1lKSx3KCI8L2giK3YoImhlYWRpbmdSYW5rIikrIj4iKSx4KCJzbHVycEFsbExpbmVFbmRpbmdzIikseCgiaGVhZGluZ1JhbmsiKX1mdW5jdGlvbiBaKE1lKXtrKE0odGhpcy5zbGljZVNlcmlhbGl6ZShNZSkpKX1mdW5jdGlvbiBKKE1lKXtpZighdigic2x1cnBBbGxMaW5lRW5kaW5ncyIpKXtpZih2KCJzbHVycE9uZUxpbmVFbmRpbmciKSl7eCgic2x1cnBPbmVMaW5lRW5kaW5nIik7cmV0dXJufWlmKHYoImluQ29kZVRleHQiKSl7aygiICIpO3JldHVybn1rKE0odGhpcy5zbGljZVNlcmlhbGl6ZShNZSkpKX19ZnVuY3Rpb24gbWUoTWUpe2soTSh0aGlzLnNsaWNlU2VyaWFsaXplKE1lKSkpLHgoImZsb3dDb2RlU2VlbkRhdGEiLCEwKX1mdW5jdGlvbiBFZSgpe3coIjxiciAvPiIpfWZ1bmN0aW9uIFVlKCl7eigpLGl0KCl9ZnVuY3Rpb24gTXQoKXt4KCJpZ25vcmVFbmNvZGUiKX1mdW5jdGlvbiBpdCgpe3QuYWxsb3dEYW5nZXJvdXNIdG1sJiZ4KCJpZ25vcmVFbmNvZGUiLCEwKX1mdW5jdGlvbiBMdCgpe3coIjxlbT4iKX1mdW5jdGlvbiBXdCgpe3coIjxzdHJvbmc+Iil9ZnVuY3Rpb24gYWUoKXt4KCJpbkNvZGVUZXh0IiwhMCksdygiPGNvZGU+Iil9ZnVuY3Rpb24gc2UoKXt4KCJpbkNvZGVUZXh0IiksdygiPC9jb2RlPiIpfWZ1bmN0aW9uIF9lKCl7dygiPC9lbT4iKX1mdW5jdGlvbiB2dCgpe3coIjwvc3Ryb25nPiIpfWZ1bmN0aW9uIFN0KCl7eigpLHcoIjxociAvPiIpfWZ1bmN0aW9uIFlyKE1lKXt4KCJjaGFyYWN0ZXJSZWZlcmVuY2VUeXBlIixNZS50eXBlKX1mdW5jdGlvbiBkbihNZSl7bGV0ICRlPXRoaXMuc2xpY2VTZXJpYWxpemUoTWUpLEJ0PXYoImNoYXJhY3RlclJlZmVyZW5jZVR5cGUiKT9kcCgkZSx2KCJjaGFyYWN0ZXJSZWZlcmVuY2VUeXBlIik9PT0iY2hhcmFjdGVyUmVmZXJlbmNlTWFya2VyTnVtZXJpYyI/MTA6MTYpOmg0KCRlKTtrKE0oQnQpKSx4KCJjaGFyYWN0ZXJSZWZlcmVuY2VUeXBlIil9ZnVuY3Rpb24gVW8oTWUpe2xldCAkZT10aGlzLnNsaWNlU2VyaWFsaXplKE1lKTt3KCc8YSBocmVmPSInK0dzKCRlLHQuYWxsb3dEYW5nZXJvdXNQcm90b2NvbD92b2lkIDA6QlplKSsnIj4nKSxrKE0oJGUpKSx3KCI8L2E+Iil9ZnVuY3Rpb24gV28oTWUpe2xldCAkZT10aGlzLnNsaWNlU2VyaWFsaXplKE1lKTt3KCc8YSBocmVmPSInK0dzKCJtYWlsdG86IiskZSkrJyI+JyksayhNKCRlKSksdygiPC9hPiIpfX12YXIgUlplLEJaZSxzcXIsYXJlPXAoKCk9PntQOSgpO1VzKCk7Tl8oKTtEXygpO0N0ZSgpO3A0KCk7WXMoKTtSWmU9e30uaGFzT3duUHJvcGVydHksQlplPS9eKGh0dHBzP3xpcmNzP3xtYWlsdG98eG1wcCkkL2ksc3FyPS9eaHR0cHM/JC9pfSk7ZnVuY3Rpb24gbHFyKGUpe2xldCB0PWUuYXR0ZW1wdCh0aGlzLnBhcnNlci5jb25zdHJ1Y3RzLmNvbnRlbnRJbml0aWFsLGksYSkscjtyZXR1cm4gdDtmdW5jdGlvbiBpKHMpe2lmKHM9PT1udWxsKXtlLmNvbnN1bWUocyk7cmV0dXJufXJldHVybiBlLmVudGVyKCJsaW5lRW5kaW5nIiksZS5jb25zdW1lKHMpLGUuZXhpdCgibGluZUVuZGluZyIpLGJ0KGUsdCwibGluZVByZWZpeCIpfWZ1bmN0aW9uIGEocyl7cmV0dXJuIGUuZW50ZXIoInBhcmFncmFwaCIpLG4ocyl9ZnVuY3Rpb24gbihzKXtsZXQgbD1lLmVudGVyKCJjaHVua1RleHQiLHtjb250ZW50VHlwZToidGV4dCIscHJldmlvdXM6cn0pO3JldHVybiByJiYoci5uZXh0PWwpLHI9bCxvKHMpfWZ1bmN0aW9uIG8ocyl7aWYocz09PW51bGwpe2UuZXhpdCgiY2h1bmtUZXh0IiksZS5leGl0KCJwYXJhZ3JhcGgiKSxlLmNvbnN1bWUocyk7cmV0dXJufXJldHVybiBHZShzKT8oZS5jb25zdW1lKHMpLGUuZXhpdCgiY2h1bmtUZXh0Iiksbik6KGUuY29uc3VtZShzKSxvKX19dmFyIEhaZSxxWmU9cCgoKT0+e1YxKCk7cnIoKTtIWmU9e3Rva2VuaXplOmxxcn19KTtmdW5jdGlvbiBjcXIoZSl7bGV0IHQ9dGhpcyxyPVtdLGk9MCxhLG4sbztyZXR1cm4gcztmdW5jdGlvbiBzKGspe2lmKGk8ci5sZW5ndGgpe2xldCBPPXJbaV07cmV0dXJuIHQuY29udGFpbmVyU3RhdGU9T1sxXSxlLmF0dGVtcHQoT1swXS5jb250aW51YXRpb24sbCxjKShrKX1yZXR1cm4gYyhrKX1mdW5jdGlvbiBsKGspe2lmKGkrKyx0LmNvbnRhaW5lclN0YXRlLl9jbG9zZUZsb3cpe3QuY29udGFpbmVyU3RhdGUuX2Nsb3NlRmxvdz12b2lkIDAsYSYmdygpO2xldCBPPXQuZXZlbnRzLmxlbmd0aCx6PU8sTTtmb3IoO3otLTspaWYodC5ldmVudHNbel1bMF09PT0iZXhpdCImJnQuZXZlbnRzW3pdWzFdLnR5cGU9PT0iY2h1bmtGbG93Iil7TT10LmV2ZW50c1t6XVsxXS5lbmQ7YnJlYWt9eShpKTtsZXQgRj1PO2Zvcig7Rjx0LmV2ZW50cy5sZW5ndGg7KXQuZXZlbnRzW0ZdWzFdLmVuZD17Li4uTX0sRisrO3JldHVybiBqMSh0LmV2ZW50cyx6KzEsMCx0LmV2ZW50cy5zbGljZShPKSksdC5ldmVudHMubGVuZ3RoPUYsYyhrKX1yZXR1cm4gcyhrKX1mdW5jdGlvbiBjKGspe2lmKGk9PT1yLmxlbmd0aCl7aWYoIWEpcmV0dXJuIGgoayk7aWYoYS5jdXJyZW50Q29uc3RydWN0JiZhLmN1cnJlbnRDb25zdHJ1Y3QuY29uY3JldGUpcmV0dXJuIHgoayk7dC5pbnRlcnJ1cHQ9ISEoYS5jdXJyZW50Q29uc3RydWN0JiYhYS5fZ2ZtVGFibGVEeW5hbWljSW50ZXJydXB0SGFjayl9cmV0dXJuIHQuY29udGFpbmVyU3RhdGU9e30sZS5jaGVjayhqWmUsdSxkKShrKX1mdW5jdGlvbiB1KGspe3JldHVybiBhJiZ3KCkseShpKSxoKGspfWZ1bmN0aW9uIGQoayl7cmV0dXJuIHQucGFyc2VyLmxhenlbdC5ub3coKS5saW5lXT1pIT09ci5sZW5ndGgsbz10Lm5vdygpLm9mZnNldCx4KGspfWZ1bmN0aW9uIGgoayl7cmV0dXJuIHQuY29udGFpbmVyU3RhdGU9e30sZS5hdHRlbXB0KGpaZSxmLHgpKGspfWZ1bmN0aW9uIGYoayl7cmV0dXJuIGkrKyxyLnB1c2goW3QuY3VycmVudENvbnN0cnVjdCx0LmNvbnRhaW5lclN0YXRlXSksaChrKX1mdW5jdGlvbiB4KGspe2lmKGs9PT1udWxsKXthJiZ3KCkseSgwKSxlLmNvbnN1bWUoayk7cmV0dXJufXJldHVybiBhPWF8fHQucGFyc2VyLmZsb3codC5ub3coKSksZS5lbnRlcigiY2h1bmtGbG93Iix7X3Rva2VuaXplcjphLGNvbnRlbnRUeXBlOiJmbG93IixwcmV2aW91czpufSksdihrKX1mdW5jdGlvbiB2KGspe2lmKGs9PT1udWxsKXtiKGUuZXhpdCgiY2h1bmtGbG93IiksITApLHkoMCksZS5jb25zdW1lKGspO3JldHVybn1yZXR1cm4gR2Uoayk/KGUuY29uc3VtZShrKSxiKGUuZXhpdCgiY2h1bmtGbG93IikpLGk9MCx0LmludGVycnVwdD12b2lkIDAscyk6KGUuY29uc3VtZShrKSx2KX1mdW5jdGlvbiBiKGssTyl7bGV0IHo9dC5zbGljZVN0cmVhbShrKTtpZihPJiZ6LnB1c2gobnVsbCksay5wcmV2aW91cz1uLG4mJihuLm5leHQ9ayksbj1rLGEuZGVmaW5lU2tpcChrLnN0YXJ0KSxhLndyaXRlKHopLHQucGFyc2VyLmxhenlbay5zdGFydC5saW5lXSl7bGV0IE09YS5ldmVudHMubGVuZ3RoO2Zvcig7TS0tOylpZihhLmV2ZW50c1tNXVsxXS5zdGFydC5vZmZzZXQ8byYmKCFhLmV2ZW50c1tNXVsxXS5lbmR8fGEuZXZlbnRzW01dWzFdLmVuZC5vZmZzZXQ+bykpcmV0dXJuO2xldCBGPXQuZXZlbnRzLmxlbmd0aCxEPUYsTixSO2Zvcig7RC0tOylpZih0LmV2ZW50c1tEXVswXT09PSJleGl0IiYmdC5ldmVudHNbRF1bMV0udHlwZT09PSJjaHVua0Zsb3ciKXtpZihOKXtSPXQuZXZlbnRzW0RdWzFdLmVuZDticmVha31OPSEwfWZvcih5KGkpLE09RjtNPHQuZXZlbnRzLmxlbmd0aDspdC5ldmVudHNbTV1bMV0uZW5kPXsuLi5SfSxNKys7ajEodC5ldmVudHMsRCsxLDAsdC5ldmVudHMuc2xpY2UoRikpLHQuZXZlbnRzLmxlbmd0aD1NfX1mdW5jdGlvbiB5KGspe2xldCBPPXIubGVuZ3RoO2Zvcig7Ty0tID5rOyl7bGV0IHo9cltPXTt0LmNvbnRhaW5lclN0YXRlPXpbMV0selswXS5leGl0LmNhbGwodCxlKX1yLmxlbmd0aD1rfWZ1bmN0aW9uIHcoKXthLndyaXRlKFtudWxsXSksbj12b2lkIDAsYT12b2lkIDAsdC5jb250YWluZXJTdGF0ZS5fY2xvc2VGbG93PXZvaWQgMH19ZnVuY3Rpb24gZHFyKGUsdCxyKXtyZXR1cm4gYnQoZSxlLmF0dGVtcHQodGhpcy5wYXJzZXIuY29uc3RydWN0cy5kb2N1bWVudCx0LHIpLCJsaW5lUHJlZml4Iix0aGlzLnBhcnNlci5jb25zdHJ1Y3RzLmRpc2FibGUubnVsbC5pbmNsdWRlcygiY29kZUluZGVudGVkIik/dm9pZCAwOjQpfXZhciBWWmUsalplLFVaZT1wKCgpPT57VjEoKTtycigpO1VzKCk7VlplPXt0b2tlbml6ZTpjcXJ9LGpaZT17dG9rZW5pemU6ZHFyfX0pO2Z1bmN0aW9uIHVxcihlKXtsZXQgdD10aGlzLHI9ZS5hdHRlbXB0KFpzLGksZS5hdHRlbXB0KHRoaXMucGFyc2VyLmNvbnN0cnVjdHMuZmxvd0luaXRpYWwsYSxidChlLGUuYXR0ZW1wdCh0aGlzLnBhcnNlci5jb25zdHJ1Y3RzLmZsb3csYSxlLmF0dGVtcHQoJHRlLGEpKSwibGluZVByZWZpeCIpKSk7cmV0dXJuIHI7ZnVuY3Rpb24gaShuKXtpZihuPT09bnVsbCl7ZS5jb25zdW1lKG4pO3JldHVybn1yZXR1cm4gZS5lbnRlcigibGluZUVuZGluZ0JsYW5rIiksZS5jb25zdW1lKG4pLGUuZXhpdCgibGluZUVuZGluZ0JsYW5rIiksdC5jdXJyZW50Q29uc3RydWN0PXZvaWQgMCxyfWZ1bmN0aW9uIGEobil7aWYobj09PW51bGwpe2UuY29uc3VtZShuKTtyZXR1cm59cmV0dXJuIGUuZW50ZXIoImxpbmVFbmRpbmciKSxlLmNvbnN1bWUobiksZS5leGl0KCJsaW5lRW5kaW5nIiksdC5jdXJyZW50Q29uc3RydWN0PXZvaWQgMCxyfX12YXIgV1plLEdaZT1wKCgpPT57Wl8oKTtWMSgpO3JyKCk7V1plPXt0b2tlbml6ZTp1cXJ9fSk7ZnVuY3Rpb24gWVplKGUpe3JldHVybntyZXNvbHZlQWxsOlpaZShlPT09InRleHQiP3Bxcjp2b2lkIDApLHRva2VuaXplOnR9O2Z1bmN0aW9uIHQocil7bGV0IGk9dGhpcyxhPXRoaXMucGFyc2VyLmNvbnN0cnVjdHNbZV0sbj1yLmF0dGVtcHQoYSxvLHMpO3JldHVybiBvO2Z1bmN0aW9uIG8odSl7cmV0dXJuIGModSk/bih1KTpzKHUpfWZ1bmN0aW9uIHModSl7aWYodT09PW51bGwpe3IuY29uc3VtZSh1KTtyZXR1cm59cmV0dXJuIHIuZW50ZXIoImRhdGEiKSxyLmNvbnN1bWUodSksbH1mdW5jdGlvbiBsKHUpe3JldHVybiBjKHUpPyhyLmV4aXQoImRhdGEiKSxuKHUpKTooci5jb25zdW1lKHUpLGwpfWZ1bmN0aW9uIGModSl7aWYodT09PW51bGwpcmV0dXJuITA7bGV0IGQ9YVt1XSxoPS0xO2lmKGQpZm9yKDsrK2g8ZC5sZW5ndGg7KXtsZXQgZj1kW2hdO2lmKCFmLnByZXZpb3VzfHxmLnByZXZpb3VzLmNhbGwoaSxpLnByZXZpb3VzKSlyZXR1cm4hMH1yZXR1cm4hMX19fWZ1bmN0aW9uIFpaZShlKXtyZXR1cm4gdDtmdW5jdGlvbiB0KHIsaSl7bGV0IGE9LTEsbjtmb3IoOysrYTw9ci5sZW5ndGg7KW49PT12b2lkIDA/clthXSYmclthXVsxXS50eXBlPT09ImRhdGEiJiYobj1hLGErKyk6KCFyW2FdfHxyW2FdWzFdLnR5cGUhPT0iZGF0YSIpJiYoYSE9PW4rMiYmKHJbbl1bMV0uZW5kPXJbYS0xXVsxXS5lbmQsci5zcGxpY2UobisyLGEtbi0yKSxhPW4rMiksbj12b2lkIDApO3JldHVybiBlP2UocixpKTpyfX1mdW5jdGlvbiBwcXIoZSx0KXtsZXQgcj0wO2Zvcig7KytyPD1lLmxlbmd0aDspaWYoKHI9PT1lLmxlbmd0aHx8ZVtyXVsxXS50eXBlPT09ImxpbmVFbmRpbmciKSYmZVtyLTFdWzFdLnR5cGU9PT0iZGF0YSIpe2xldCBpPWVbci0xXVsxXSxhPXQuc2xpY2VTdHJlYW0oaSksbj1hLmxlbmd0aCxvPS0xLHM9MCxsO2Zvcig7bi0tOyl7bGV0IGM9YVtuXTtpZih0eXBlb2YgYz09InN0cmluZyIpe2ZvcihvPWMubGVuZ3RoO2MuY2hhckNvZGVBdChvLTEpPT09MzI7KXMrKyxvLS07aWYobylicmVhaztvPS0xfWVsc2UgaWYoYz09PS0yKWw9ITAscysrO2Vsc2UgaWYoYyE9PS0xKXtuKys7YnJlYWt9fWlmKHQuX2NvbnRlbnRUeXBlVGV4dFRyYWlsaW5nJiZyPT09ZS5sZW5ndGgmJihzPTApLHMpe2xldCBjPXt0eXBlOnI9PT1lLmxlbmd0aHx8bHx8czwyPyJsaW5lU3VmZml4IjoiaGFyZEJyZWFrVHJhaWxpbmciLHN0YXJ0OntfYnVmZmVySW5kZXg6bj9vOmkuc3RhcnQuX2J1ZmZlckluZGV4K28sX2luZGV4Omkuc3RhcnQuX2luZGV4K24sbGluZTppLmVuZC5saW5lLGNvbHVtbjppLmVuZC5jb2x1bW4tcyxvZmZzZXQ6aS5lbmQub2Zmc2V0LXN9LGVuZDp7Li4uaS5lbmR9fTtpLmVuZD17Li4uYy5zdGFydH0saS5zdGFydC5vZmZzZXQ9PT1pLmVuZC5vZmZzZXQ/T2JqZWN0LmFzc2lnbihpLGMpOihlLnNwbGljZShyLDAsWyJlbnRlciIsYyx0XSxbImV4aXQiLGMsdF0pLHIrPTIpfXIrK31yZXR1cm4gZX12YXIgWFplLFFaZSxKWmUsbnJlPXAoKCk9PntYWmU9e3Jlc29sdmVBbGw6WlplKCl9LFFaZT1ZWmUoInN0cmluZyIpLEpaZT1ZWmUoInRleHQiKX0pO3ZhciBvcmU9e307RmUob3JlLHthdHRlbnRpb25NYXJrZXJzOigpPT55cXIsY29udGVudEluaXRpYWw6KCk9PmZxcixkaXNhYmxlOigpPT53cXIsZG9jdW1lbnQ6KCk9PmhxcixmbG93OigpPT5ncXIsZmxvd0luaXRpYWw6KCk9Pm1xcixpbnNpZGVTcGFuOigpPT54cXIsc3RyaW5nOigpPT5icXIsdGV4dDooKT0+dnFyfSk7dmFyIGhxcixmcXIsbXFyLGdxcixicXIsdnFyLHhxcix5cXIsd3FyLEtaZT1wKCgpPT57Wl8oKTtucmUoKTtocXI9ezQyOkxhLDQzOkxhLDQ1OkxhLDQ4OkxhLDQ5OkxhLDUwOkxhLDUxOkxhLDUyOkxhLDUzOkxhLDU0OkxhLDU1OkxhLDU2OkxhLDU3OkxhLDYyOlJffSxmcXI9ezkxOk90ZX0sbXFyPXtbLTJdOk85LFstMV06TzksMzI6Tzl9LGdxcj17MzU6QnRlLDQyOnBkLDQ1OltZXyxwZF0sNjA6cXRlLDYxOllfLDk1OnBkLDk2OnFfLDEyNjpxX30sYnFyPXszODpIXyw5MjpCX30sdnFyPXtbLTVdOkg5LFstNF06SDksWy0zXTpIOSwzMzpWdGUsMzg6SF8sNDI6RjksNjA6W0x0ZSxqdGVdLDkxOlV0ZSw5MjpbUnRlLEJfXSw5Mzp1ZCw5NTpGOSw5NjpBdGV9LHhxcj17bnVsbDpbRjksWFplXX0seXFyPXtudWxsOls0Miw5NV19LHdxcj17bnVsbDpbXX19KTtmdW5jdGlvbiBlWGUoZSx0LHIpe2xldCBpPXtfYnVmZmVySW5kZXg6LTEsX2luZGV4OjAsbGluZTpyJiZyLmxpbmV8fDEsY29sdW1uOnImJnIuY29sdW1ufHwxLG9mZnNldDpyJiZyLm9mZnNldHx8MH0sYT17fSxuPVtdLG89W10scz1bXSxsPSEwLGM9e2F0dGVtcHQ6TihGKSxjaGVjazpOKEQpLGNvbnN1bWU6TyxlbnRlcjp6LGV4aXQ6TSxpbnRlcnJ1cHQ6TihELHtpbnRlcnJ1cHQ6ITB9KX0sdT17Y29kZTpudWxsLGNvbnRhaW5lclN0YXRlOnt9LGRlZmluZVNraXA6eSxldmVudHM6W10sbm93OmIscGFyc2VyOmUscHJldmlvdXM6bnVsbCxzbGljZVNlcmlhbGl6ZTp4LHNsaWNlU3RyZWFtOnYsd3JpdGU6Zn0sZD10LnRva2VuaXplLmNhbGwodSxjKSxoO3JldHVybiB0LnJlc29sdmVBbGwmJm4ucHVzaCh0KSx1O2Z1bmN0aW9uIGYoJCl7cmV0dXJuIG89YWkobywkKSx3KCksb1tvLmxlbmd0aC0xXSE9PW51bGw/W106KFIodCwwKSx1LmV2ZW50cz1mNChuLHUuZXZlbnRzLHUpLHUuZXZlbnRzKX1mdW5jdGlvbiB4KCQsVCl7cmV0dXJuIGtxcih2KCQpLFQpfWZ1bmN0aW9uIHYoJCl7cmV0dXJuIE1xcihvLCQpfWZ1bmN0aW9uIGIoKXtsZXR7X2J1ZmZlckluZGV4OiQsX2luZGV4OlQsbGluZTpFLGNvbHVtbjpxLG9mZnNldDpCfT1pO3JldHVybntfYnVmZmVySW5kZXg6JCxfaW5kZXg6VCxsaW5lOkUsY29sdW1uOnEsb2Zmc2V0OkJ9fWZ1bmN0aW9uIHkoJCl7YVskLmxpbmVdPSQuY29sdW1uLFMoKX1mdW5jdGlvbiB3KCl7bGV0ICQ7Zm9yKDtpLl9pbmRleDxvLmxlbmd0aDspe2xldCBUPW9baS5faW5kZXhdO2lmKHR5cGVvZiBUPT0ic3RyaW5nIilmb3IoJD1pLl9pbmRleCxpLl9idWZmZXJJbmRleDwwJiYoaS5fYnVmZmVySW5kZXg9MCk7aS5faW5kZXg9PT0kJiZpLl9idWZmZXJJbmRleDxULmxlbmd0aDspayhULmNoYXJDb2RlQXQoaS5fYnVmZmVySW5kZXgpKTtlbHNlIGsoVCl9fWZ1bmN0aW9uIGsoJCl7bD12b2lkIDAsaD0kLGQ9ZCgkKX1mdW5jdGlvbiBPKCQpe0dlKCQpPyhpLmxpbmUrKyxpLmNvbHVtbj0xLGkub2Zmc2V0Kz0kPT09LTM/MjoxLFMoKSk6JCE9PS0xJiYoaS5jb2x1bW4rKyxpLm9mZnNldCsrKSxpLl9idWZmZXJJbmRleDwwP2kuX2luZGV4Kys6KGkuX2J1ZmZlckluZGV4KyssaS5fYnVmZmVySW5kZXg9PT1vW2kuX2luZGV4XS5sZW5ndGgmJihpLl9idWZmZXJJbmRleD0tMSxpLl9pbmRleCsrKSksdS5wcmV2aW91cz0kLGw9ITB9ZnVuY3Rpb24geigkLFQpe2xldCBFPVR8fHt9O3JldHVybiBFLnR5cGU9JCxFLnN0YXJ0PWIoKSx1LmV2ZW50cy5wdXNoKFsiZW50ZXIiLEUsdV0pLHMucHVzaChFKSxFfWZ1bmN0aW9uIE0oJCl7bGV0IFQ9cy5wb3AoKTtyZXR1cm4gVC5lbmQ9YigpLHUuZXZlbnRzLnB1c2goWyJleGl0IixULHVdKSxUfWZ1bmN0aW9uIEYoJCxUKXtSKCQsVC5mcm9tKX1mdW5jdGlvbiBEKCQsVCl7VC5yZXN0b3JlKCl9ZnVuY3Rpb24gTigkLFQpe3JldHVybiBFO2Z1bmN0aW9uIEUocSxCLEcpe2xldCBlZSxQLGdlLHdlO3JldHVybiBBcnJheS5pc0FycmF5KHEpP25lKHEpOiJ0b2tlbml6ZSJpbiBxP25lKFtxXSk6SShxKTtmdW5jdGlvbiBJKEwpe3JldHVybiBVO2Z1bmN0aW9uIFUoVil7bGV0IFg9ViE9PW51bGwmJkxbVl0sZGU9ViE9PW51bGwmJkwubnVsbCx2ZT1bLi4uQXJyYXkuaXNBcnJheShYKT9YOlg/W1hdOltdLC4uLkFycmF5LmlzQXJyYXkoZGUpP2RlOmRlP1tkZV06W11dO3JldHVybiBuZSh2ZSkoVil9fWZ1bmN0aW9uIG5lKEwpe3JldHVybiBlZT1MLFA9MCxMLmxlbmd0aD09PTA/RzprZShMW1BdKX1mdW5jdGlvbiBrZShMKXtyZXR1cm4gVTtmdW5jdGlvbiBVKFYpe3JldHVybiB3ZT1fKCksZ2U9TCxMLnBhcnRpYWx8fCh1LmN1cnJlbnRDb25zdHJ1Y3Q9TCksTC5uYW1lJiZ1LnBhcnNlci5jb25zdHJ1Y3RzLmRpc2FibGUubnVsbC5pbmNsdWRlcyhMLm5hbWUpP0EoVik6TC50b2tlbml6ZS5jYWxsKFQ/T2JqZWN0LmFzc2lnbihPYmplY3QuY3JlYXRlKHUpLFQpOnUsYyxZLEEpKFYpfX1mdW5jdGlvbiBZKEwpe3JldHVybiBsPSEwLCQoZ2Usd2UpLEJ9ZnVuY3Rpb24gQShMKXtyZXR1cm4gbD0hMCx3ZS5yZXN0b3JlKCksKytQPGVlLmxlbmd0aD9rZShlZVtQXSk6R319fWZ1bmN0aW9uIFIoJCxUKXskLnJlc29sdmVBbGwmJiFuLmluY2x1ZGVzKCQpJiZuLnB1c2goJCksJC5yZXNvbHZlJiZqMSh1LmV2ZW50cyxULHUuZXZlbnRzLmxlbmd0aC1ULCQucmVzb2x2ZSh1LmV2ZW50cy5zbGljZShUKSx1KSksJC5yZXNvbHZlVG8mJih1LmV2ZW50cz0kLnJlc29sdmVUbyh1LmV2ZW50cyx1KSl9ZnVuY3Rpb24gXygpe2xldCAkPWIoKSxUPXUucHJldmlvdXMsRT11LmN1cnJlbnRDb25zdHJ1Y3QscT11LmV2ZW50cy5sZW5ndGgsQj1BcnJheS5mcm9tKHMpO3JldHVybntmcm9tOnEscmVzdG9yZTpHfTtmdW5jdGlvbiBHKCl7aT0kLHUucHJldmlvdXM9VCx1LmN1cnJlbnRDb25zdHJ1Y3Q9RSx1LmV2ZW50cy5sZW5ndGg9cSxzPUIsUygpfX1mdW5jdGlvbiBTKCl7aS5saW5lIGluIGEmJmkuY29sdW1uPDImJihpLmNvbHVtbj1hW2kubGluZV0saS5vZmZzZXQrPWFbaS5saW5lXS0xKX19ZnVuY3Rpb24gTXFyKGUsdCl7bGV0IHI9dC5zdGFydC5faW5kZXgsaT10LnN0YXJ0Ll9idWZmZXJJbmRleCxhPXQuZW5kLl9pbmRleCxuPXQuZW5kLl9idWZmZXJJbmRleCxvO2lmKHI9PT1hKW89W2Vbcl0uc2xpY2UoaSxuKV07ZWxzZXtpZihvPWUuc2xpY2UocixhKSxpPi0xKXtsZXQgcz1vWzBdO3R5cGVvZiBzPT0ic3RyaW5nIj9vWzBdPXMuc2xpY2UoaSk6by5zaGlmdCgpfW4+MCYmby5wdXNoKGVbYV0uc2xpY2UoMCxuKSl9cmV0dXJuIG99ZnVuY3Rpb24ga3FyKGUsdCl7bGV0IHI9LTEsaT1bXSxhO2Zvcig7KytyPGUubGVuZ3RoOyl7bGV0IG49ZVtyXSxvO2lmKHR5cGVvZiBuPT0ic3RyaW5nIilvPW47ZWxzZSBzd2l0Y2gobil7Y2FzZS01OntvPSJcciI7YnJlYWt9Y2FzZS00OntvPWAKYDticmVha31jYXNlLTM6e289YFxyCmA7YnJlYWt9Y2FzZS0yOntvPXQ/IiAiOiIJIjticmVha31jYXNlLTE6e2lmKCF0JiZhKWNvbnRpbnVlO289IiAiO2JyZWFrfWRlZmF1bHQ6bz1TdHJpbmcuZnJvbUNoYXJDb2RlKG4pfWE9bj09PS0yLGkucHVzaChvKX1yZXR1cm4gaS5qb2luKCIiKX12YXIgdFhlPXAoKCk9PntycigpO1VzKCk7TjkoKX0pO2Z1bmN0aW9uIHE5KGUpe2xldCBpPXtjb25zdHJ1Y3RzOklfKFtvcmUsLi4uKGV8fHt9KS5leHRlbnNpb25zfHxbXV0pLGNvbnRlbnQ6YShIWmUpLGRlZmluZWQ6W10sZG9jdW1lbnQ6YShWWmUpLGZsb3c6YShXWmUpLGxhenk6e30sc3RyaW5nOmEoUVplKSx0ZXh0OmEoSlplKX07cmV0dXJuIGk7ZnVuY3Rpb24gYShuKXtyZXR1cm4gbztmdW5jdGlvbiBvKHMpe3JldHVybiBlWGUoaSxuLHMpfX19dmFyIHNyZT1wKCgpPT57Tl8oKTtxWmUoKTtVWmUoKTtHWmUoKTtucmUoKTtLWmUoKTt0WGUoKX0pO2Z1bmN0aW9uIGo5KGUpe2Zvcig7IWpfKGUpOyk7cmV0dXJuIGV9dmFyIGxyZT1wKCgpPT57RXRlKCl9KTtmdW5jdGlvbiBWOSgpe2xldCBlPTEsdD0iIixyPSEwLGk7cmV0dXJuIGE7ZnVuY3Rpb24gYShuLG8scyl7bGV0IGw9W10sYyx1LGQsaCxmO2ZvcihuPXQrKHR5cGVvZiBuPT0ic3RyaW5nIj9uLnRvU3RyaW5nKCk6bmV3IFRleHREZWNvZGVyKG98fHZvaWQgMCkuZGVjb2RlKG4pKSxkPTAsdD0iIixyJiYobi5jaGFyQ29kZUF0KDApPT09NjUyNzkmJmQrKyxyPXZvaWQgMCk7ZDxuLmxlbmd0aDspe2lmKHJYZS5sYXN0SW5kZXg9ZCxjPXJYZS5leGVjKG4pLGg9YyYmYy5pbmRleCE9PXZvaWQgMD9jLmluZGV4Om4ubGVuZ3RoLGY9bi5jaGFyQ29kZUF0KGgpLCFjKXt0PW4uc2xpY2UoZCk7YnJlYWt9aWYoZj09PTEwJiZkPT09aCYmaSlsLnB1c2goLTMpLGk9dm9pZCAwO2Vsc2Ugc3dpdGNoKGkmJihsLnB1c2goLTUpLGk9dm9pZCAwKSxkPGgmJihsLnB1c2gobi5zbGljZShkLGgpKSxlKz1oLWQpLGYpe2Nhc2UgMDp7bC5wdXNoKDY1NTMzKSxlKys7YnJlYWt9Y2FzZSA5Ontmb3IodT1NYXRoLmNlaWwoZS80KSo0LGwucHVzaCgtMik7ZSsrPHU7KWwucHVzaCgtMSk7YnJlYWt9Y2FzZSAxMDp7bC5wdXNoKC00KSxlPTE7YnJlYWt9ZGVmYXVsdDppPSEwLGU9MX1kPWgrMX1yZXR1cm4gcyYmKGkmJmwucHVzaCgtNSksdCYmbC5wdXNoKHQpLGwucHVzaChudWxsKSksbH19dmFyIHJYZSxjcmU9cCgoKT0+e3JYZT0vW1wwXHRcblxyXS9nfSk7ZnVuY3Rpb24gTXFpKGUsdCxyKXtyZXR1cm4gdHlwZW9mIHQhPSJzdHJpbmciJiYocj10LHQ9dm9pZCAwKSxpcmUocikoajkocTkocikuZG9jdW1lbnQoKS53cml0ZShWOSgpKGUsdCwhMCkpKSl9dmFyIGlYZT1wKCgpPT57YXJlKCk7c3JlKCk7bHJlKCk7Y3JlKCk7YXJlKCk7c3JlKCk7bHJlKCk7Y3JlKCl9KTtmdW5jdGlvbiBkcmUoZSx0LHIpe3JldHVybiB0eXBlb2YgdCE9InN0cmluZyImJihyPXQsdD12b2lkIDApLFNxcihyKShqOShxOShyKS5kb2N1bWVudCgpLndyaXRlKFY5KCkoZSx0LCEwKSkpKX1mdW5jdGlvbiBTcXIoZSl7bGV0IHQ9e3RyYW5zZm9ybXM6W10sY2FuQ29udGFpbkVvbHM6WyJlbXBoYXNpcyIsImZyYWdtZW50IiwiaGVhZGluZyIsInBhcmFncmFwaCIsInN0cm9uZyJdLGVudGVyOnthdXRvbGluazpuKHVlKSxhdXRvbGlua1Byb3RvY29sOk4sYXV0b2xpbmtFbWFpbDpOLGF0eEhlYWRpbmc6bihXKSxibG9ja1F1b3RlOm4oViksY2hhcmFjdGVyRXNjYXBlOk4sY2hhcmFjdGVyUmVmZXJlbmNlOk4sY29kZUZlbmNlZDpuKFgpLGNvZGVGZW5jZWRGZW5jZUluZm86byxjb2RlRmVuY2VkRmVuY2VNZXRhOm8sY29kZUluZGVudGVkOm4oWCxvKSxjb2RlVGV4dDpuKGRlLG8pLGNvZGVUZXh0RGF0YTpOLGRhdGE6Tixjb2RlRmxvd1ZhbHVlOk4sZGVmaW5pdGlvbjpuKHZlKSxkZWZpbml0aW9uRGVzdGluYXRpb25TdHJpbmc6byxkZWZpbml0aW9uTGFiZWxTdHJpbmc6byxkZWZpbml0aW9uVGl0bGVTdHJpbmc6byxlbXBoYXNpczpuKExlKSxoYXJkQnJlYWtFc2NhcGU6bihIKSxoYXJkQnJlYWtUcmFpbGluZzpuKEgpLGh0bWxGbG93Om4odGUsbyksaHRtbEZsb3dEYXRhOk4saHRtbFRleHQ6bih0ZSxvKSxodG1sVGV4dERhdGE6TixpbWFnZTpuKGJlKSxsYWJlbDpvLGxpbms6bih1ZSksbGlzdEl0ZW06bihoZSksbGlzdEl0ZW1WYWx1ZTpoLGxpc3RPcmRlcmVkOm4oQ2UsZCksbGlzdFVub3JkZXJlZDpuKENlKSxwYXJhZ3JhcGg6bihpZSkscmVmZXJlbmNlOkkscmVmZXJlbmNlU3RyaW5nOm8scmVzb3VyY2VEZXN0aW5hdGlvblN0cmluZzpvLHJlc291cmNlVGl0bGVTdHJpbmc6byxzZXRleHRIZWFkaW5nOm4oVyksc3Ryb25nOm4oU2UpLHRoZW1hdGljQnJlYWs6bihaZSl9LGV4aXQ6e2F0eEhlYWRpbmc6bCgpLGF0eEhlYWRpbmdTZXF1ZW5jZTp6LGF1dG9saW5rOmwoKSxhdXRvbGlua0VtYWlsOlUsYXV0b2xpbmtQcm90b2NvbDpMLGJsb2NrUXVvdGU6bCgpLGNoYXJhY3RlckVzY2FwZVZhbHVlOlIsY2hhcmFjdGVyUmVmZXJlbmNlTWFya2VySGV4YWRlY2ltYWw6a2UsY2hhcmFjdGVyUmVmZXJlbmNlTWFya2VyTnVtZXJpYzprZSxjaGFyYWN0ZXJSZWZlcmVuY2VWYWx1ZTpZLGNoYXJhY3RlclJlZmVyZW5jZTpBLGNvZGVGZW5jZWQ6bChiKSxjb2RlRmVuY2VkRmVuY2U6dixjb2RlRmVuY2VkRmVuY2VJbmZvOmYsY29kZUZlbmNlZEZlbmNlTWV0YTp4LGNvZGVGbG93VmFsdWU6Uixjb2RlSW5kZW50ZWQ6bCh5KSxjb2RlVGV4dDpsKEUpLGNvZGVUZXh0RGF0YTpSLGRhdGE6UixkZWZpbml0aW9uOmwoKSxkZWZpbml0aW9uRGVzdGluYXRpb25TdHJpbmc6TyxkZWZpbml0aW9uTGFiZWxTdHJpbmc6dyxkZWZpbml0aW9uVGl0bGVTdHJpbmc6ayxlbXBoYXNpczpsKCksaGFyZEJyZWFrRXNjYXBlOmwoUyksaGFyZEJyZWFrVHJhaWxpbmc6bChTKSxodG1sRmxvdzpsKCQpLGh0bWxGbG93RGF0YTpSLGh0bWxUZXh0OmwoVCksaHRtbFRleHREYXRhOlIsaW1hZ2U6bChCKSxsYWJlbDplZSxsYWJlbFRleHQ6RyxsaW5lRW5kaW5nOl8sbGluazpsKHEpLGxpc3RJdGVtOmwoKSxsaXN0T3JkZXJlZDpsKCksbGlzdFVub3JkZXJlZDpsKCkscGFyYWdyYXBoOmwoKSxyZWZlcmVuY2VTdHJpbmc6bmUscmVzb3VyY2VEZXN0aW5hdGlvblN0cmluZzpQLHJlc291cmNlVGl0bGVTdHJpbmc6Z2UscmVzb3VyY2U6d2Usc2V0ZXh0SGVhZGluZzpsKEQpLHNldGV4dEhlYWRpbmdMaW5lU2VxdWVuY2U6RixzZXRleHRIZWFkaW5nVGV4dDpNLHN0cm9uZzpsKCksdGhlbWF0aWNCcmVhazpsKCl9fTtuWGUodCwoZXx8e30pLm1kYXN0RXh0ZW5zaW9uc3x8W10pO2xldCByPXt9O3JldHVybiBpO2Z1bmN0aW9uIGkoSyl7bGV0IFo9e3R5cGU6InJvb3QiLGNoaWxkcmVuOltdfSxKPXtzdGFjazpbWl0sdG9rZW5TdGFjazpbXSxjb25maWc6dCxlbnRlcjpzLGV4aXQ6YyxidWZmZXI6byxyZXN1bWU6dSxkYXRhOnJ9LG1lPVtdLEVlPS0xO2Zvcig7KytFZTxLLmxlbmd0aDspaWYoS1tFZV1bMV0udHlwZT09PSJsaXN0T3JkZXJlZCJ8fEtbRWVdWzFdLnR5cGU9PT0ibGlzdFVub3JkZXJlZCIpaWYoS1tFZV1bMF09PT0iZW50ZXIiKW1lLnB1c2goRWUpO2Vsc2V7bGV0IFVlPW1lLnBvcCgpO0VlPWEoSyxVZSxFZSl9Zm9yKEVlPS0xOysrRWU8Sy5sZW5ndGg7KXtsZXQgVWU9dFtLW0VlXVswXV07YVhlLmNhbGwoVWUsS1tFZV1bMV0udHlwZSkmJlVlW0tbRWVdWzFdLnR5cGVdLmNhbGwoT2JqZWN0LmFzc2lnbih7c2xpY2VTZXJpYWxpemU6S1tFZV1bMl0uc2xpY2VTZXJpYWxpemV9LEopLEtbRWVdWzFdKX1pZihKLnRva2VuU3RhY2subGVuZ3RoPjApe2xldCBVZT1KLnRva2VuU3RhY2tbSi50b2tlblN0YWNrLmxlbmd0aC0xXTsoVWVbMV18fG9YZSkuY2FsbChKLHZvaWQgMCxVZVswXSl9Zm9yKFoucG9zaXRpb249e3N0YXJ0Om00KEsubGVuZ3RoPjA/S1swXVsxXS5zdGFydDp7bGluZToxLGNvbHVtbjoxLG9mZnNldDowfSksZW5kOm00KEsubGVuZ3RoPjA/S1tLLmxlbmd0aC0yXVsxXS5lbmQ6e2xpbmU6MSxjb2x1bW46MSxvZmZzZXQ6MH0pfSxFZT0tMTsrK0VlPHQudHJhbnNmb3Jtcy5sZW5ndGg7KVo9dC50cmFuc2Zvcm1zW0VlXShaKXx8WjtyZXR1cm4gWn1mdW5jdGlvbiBhKEssWixKKXtsZXQgbWU9Wi0xLEVlPS0xLFVlPSExLE10LGl0LEx0LFd0O2Zvcig7KyttZTw9Sjspe2xldCBhZT1LW21lXTtzd2l0Y2goYWVbMV0udHlwZSl7Y2FzZSJsaXN0VW5vcmRlcmVkIjpjYXNlImxpc3RPcmRlcmVkIjpjYXNlImJsb2NrUXVvdGUiOnthZVswXT09PSJlbnRlciI/RWUrKzpFZS0tLFd0PXZvaWQgMDticmVha31jYXNlImxpbmVFbmRpbmdCbGFuayI6e2FlWzBdPT09ImVudGVyIiYmKE10JiYhV3QmJiFFZSYmIUx0JiYoTHQ9bWUpLFd0PXZvaWQgMCk7YnJlYWt9Y2FzZSJsaW5lUHJlZml4IjpjYXNlImxpc3RJdGVtVmFsdWUiOmNhc2UibGlzdEl0ZW1NYXJrZXIiOmNhc2UibGlzdEl0ZW1QcmVmaXgiOmNhc2UibGlzdEl0ZW1QcmVmaXhXaGl0ZXNwYWNlIjpicmVhaztkZWZhdWx0Old0PXZvaWQgMH1pZighRWUmJmFlWzBdPT09ImVudGVyIiYmYWVbMV0udHlwZT09PSJsaXN0SXRlbVByZWZpeCJ8fEVlPT09LTEmJmFlWzBdPT09ImV4aXQiJiYoYWVbMV0udHlwZT09PSJsaXN0VW5vcmRlcmVkInx8YWVbMV0udHlwZT09PSJsaXN0T3JkZXJlZCIpKXtpZihNdCl7bGV0IHNlPW1lO2ZvcihpdD12b2lkIDA7c2UtLTspe2xldCBfZT1LW3NlXTtpZihfZVsxXS50eXBlPT09ImxpbmVFbmRpbmcifHxfZVsxXS50eXBlPT09ImxpbmVFbmRpbmdCbGFuayIpe2lmKF9lWzBdPT09ImV4aXQiKWNvbnRpbnVlO2l0JiYoS1tpdF1bMV0udHlwZT0ibGluZUVuZGluZ0JsYW5rIixVZT0hMCksX2VbMV0udHlwZT0ibGluZUVuZGluZyIsaXQ9c2V9ZWxzZSBpZighKF9lWzFdLnR5cGU9PT0ibGluZVByZWZpeCJ8fF9lWzFdLnR5cGU9PT0iYmxvY2tRdW90ZVByZWZpeCJ8fF9lWzFdLnR5cGU9PT0iYmxvY2tRdW90ZVByZWZpeFdoaXRlc3BhY2UifHxfZVsxXS50eXBlPT09ImJsb2NrUXVvdGVNYXJrZXIifHxfZVsxXS50eXBlPT09Imxpc3RJdGVtSW5kZW50IikpYnJlYWt9THQmJighaXR8fEx0PGl0KSYmKE10Ll9zcHJlYWQ9ITApLE10LmVuZD1PYmplY3QuYXNzaWduKHt9LGl0P0tbaXRdWzFdLnN0YXJ0OmFlWzFdLmVuZCksSy5zcGxpY2UoaXR8fG1lLDAsWyJleGl0IixNdCxhZVsyXV0pLG1lKyssSisrfWlmKGFlWzFdLnR5cGU9PT0ibGlzdEl0ZW1QcmVmaXgiKXtsZXQgc2U9e3R5cGU6Imxpc3RJdGVtIixfc3ByZWFkOiExLHN0YXJ0Ok9iamVjdC5hc3NpZ24oe30sYWVbMV0uc3RhcnQpLGVuZDp2b2lkIDB9O010PXNlLEsuc3BsaWNlKG1lLDAsWyJlbnRlciIsc2UsYWVbMl1dKSxtZSsrLEorKyxMdD12b2lkIDAsV3Q9ITB9fX1yZXR1cm4gS1taXVsxXS5fc3ByZWFkPVVlLEp9ZnVuY3Rpb24gbihLLFope3JldHVybiBKO2Z1bmN0aW9uIEoobWUpe3MuY2FsbCh0aGlzLEsobWUpLG1lKSxaJiZaLmNhbGwodGhpcyxtZSl9fWZ1bmN0aW9uIG8oKXt0aGlzLnN0YWNrLnB1c2goe3R5cGU6ImZyYWdtZW50IixjaGlsZHJlbjpbXX0pfWZ1bmN0aW9uIHMoSyxaLEope3RoaXMuc3RhY2tbdGhpcy5zdGFjay5sZW5ndGgtMV0uY2hpbGRyZW4ucHVzaChLKSx0aGlzLnN0YWNrLnB1c2goSyksdGhpcy50b2tlblN0YWNrLnB1c2goW1osSnx8dm9pZCAwXSksSy5wb3NpdGlvbj17c3RhcnQ6bTQoWi5zdGFydCksZW5kOnZvaWQgMH19ZnVuY3Rpb24gbChLKXtyZXR1cm4gWjtmdW5jdGlvbiBaKEope0smJksuY2FsbCh0aGlzLEopLGMuY2FsbCh0aGlzLEopfX1mdW5jdGlvbiBjKEssWil7bGV0IEo9dGhpcy5zdGFjay5wb3AoKSxtZT10aGlzLnRva2VuU3RhY2sucG9wKCk7aWYobWUpbWVbMF0udHlwZSE9PUsudHlwZSYmKFo/Wi5jYWxsKHRoaXMsSyxtZVswXSk6KG1lWzFdfHxvWGUpLmNhbGwodGhpcyxLLG1lWzBdKSk7ZWxzZSB0aHJvdyBuZXcgRXJyb3IoIkNhbm5vdCBjbG9zZSBgIitLLnR5cGUrImAgKCIrZDQoe3N0YXJ0Oksuc3RhcnQsZW5kOksuZW5kfSkrIik6IGl0XHUyMDE5cyBub3Qgb3BlbiIpO0oucG9zaXRpb24uZW5kPW00KEsuZW5kKX1mdW5jdGlvbiB1KCl7cmV0dXJuIG9kKHRoaXMuc3RhY2sucG9wKCkpfWZ1bmN0aW9uIGQoKXt0aGlzLmRhdGEuZXhwZWN0aW5nRmlyc3RMaXN0SXRlbVZhbHVlPSEwfWZ1bmN0aW9uIGgoSyl7aWYodGhpcy5kYXRhLmV4cGVjdGluZ0ZpcnN0TGlzdEl0ZW1WYWx1ZSl7bGV0IFo9dGhpcy5zdGFja1t0aGlzLnN0YWNrLmxlbmd0aC0yXTtaLnN0YXJ0PU51bWJlci5wYXJzZUludCh0aGlzLnNsaWNlU2VyaWFsaXplKEspLDEwKSx0aGlzLmRhdGEuZXhwZWN0aW5nRmlyc3RMaXN0SXRlbVZhbHVlPXZvaWQgMH19ZnVuY3Rpb24gZigpe2xldCBLPXRoaXMucmVzdW1lKCksWj10aGlzLnN0YWNrW3RoaXMuc3RhY2subGVuZ3RoLTFdO1oubGFuZz1LfWZ1bmN0aW9uIHgoKXtsZXQgSz10aGlzLnJlc3VtZSgpLFo9dGhpcy5zdGFja1t0aGlzLnN0YWNrLmxlbmd0aC0xXTtaLm1ldGE9S31mdW5jdGlvbiB2KCl7dGhpcy5kYXRhLmZsb3dDb2RlSW5zaWRlfHwodGhpcy5idWZmZXIoKSx0aGlzLmRhdGEuZmxvd0NvZGVJbnNpZGU9ITApfWZ1bmN0aW9uIGIoKXtsZXQgSz10aGlzLnJlc3VtZSgpLFo9dGhpcy5zdGFja1t0aGlzLnN0YWNrLmxlbmd0aC0xXTtaLnZhbHVlPUsucmVwbGFjZSgvXihccj9cbnxccil8KFxyP1xufFxyKSQvZywiIiksdGhpcy5kYXRhLmZsb3dDb2RlSW5zaWRlPXZvaWQgMH1mdW5jdGlvbiB5KCl7bGV0IEs9dGhpcy5yZXN1bWUoKSxaPXRoaXMuc3RhY2tbdGhpcy5zdGFjay5sZW5ndGgtMV07Wi52YWx1ZT1LLnJlcGxhY2UoLyhccj9cbnxccikkL2csIiIpfWZ1bmN0aW9uIHcoSyl7bGV0IFo9dGhpcy5yZXN1bWUoKSxKPXRoaXMuc3RhY2tbdGhpcy5zdGFjay5sZW5ndGgtMV07Si5sYWJlbD1aLEouaWRlbnRpZmllcj1QMSh0aGlzLnNsaWNlU2VyaWFsaXplKEspKS50b0xvd2VyQ2FzZSgpfWZ1bmN0aW9uIGsoKXtsZXQgSz10aGlzLnJlc3VtZSgpLFo9dGhpcy5zdGFja1t0aGlzLnN0YWNrLmxlbmd0aC0xXTtaLnRpdGxlPUt9ZnVuY3Rpb24gTygpe2xldCBLPXRoaXMucmVzdW1lKCksWj10aGlzLnN0YWNrW3RoaXMuc3RhY2subGVuZ3RoLTFdO1oudXJsPUt9ZnVuY3Rpb24geihLKXtsZXQgWj10aGlzLnN0YWNrW3RoaXMuc3RhY2subGVuZ3RoLTFdO2lmKCFaLmRlcHRoKXtsZXQgSj10aGlzLnNsaWNlU2VyaWFsaXplKEspLmxlbmd0aDtaLmRlcHRoPUp9fWZ1bmN0aW9uIE0oKXt0aGlzLmRhdGEuc2V0ZXh0SGVhZGluZ1NsdXJwTGluZUVuZGluZz0hMH1mdW5jdGlvbiBGKEspe2xldCBaPXRoaXMuc3RhY2tbdGhpcy5zdGFjay5sZW5ndGgtMV07Wi5kZXB0aD10aGlzLnNsaWNlU2VyaWFsaXplKEspLmNvZGVQb2ludEF0KDApPT09NjE/MToyfWZ1bmN0aW9uIEQoKXt0aGlzLmRhdGEuc2V0ZXh0SGVhZGluZ1NsdXJwTGluZUVuZGluZz12b2lkIDB9ZnVuY3Rpb24gTihLKXtsZXQgSj10aGlzLnN0YWNrW3RoaXMuc3RhY2subGVuZ3RoLTFdLmNoaWxkcmVuLG1lPUpbSi5sZW5ndGgtMV07KCFtZXx8bWUudHlwZSE9PSJ0ZXh0IikmJihtZT1JZSgpLG1lLnBvc2l0aW9uPXtzdGFydDptNChLLnN0YXJ0KSxlbmQ6dm9pZCAwfSxKLnB1c2gobWUpKSx0aGlzLnN0YWNrLnB1c2gobWUpfWZ1bmN0aW9uIFIoSyl7bGV0IFo9dGhpcy5zdGFjay5wb3AoKTtaLnZhbHVlKz10aGlzLnNsaWNlU2VyaWFsaXplKEspLFoucG9zaXRpb24uZW5kPW00KEsuZW5kKX1mdW5jdGlvbiBfKEspe2xldCBaPXRoaXMuc3RhY2tbdGhpcy5zdGFjay5sZW5ndGgtMV07aWYodGhpcy5kYXRhLmF0SGFyZEJyZWFrKXtsZXQgSj1aLmNoaWxkcmVuW1ouY2hpbGRyZW4ubGVuZ3RoLTFdO0oucG9zaXRpb24uZW5kPW00KEsuZW5kKSx0aGlzLmRhdGEuYXRIYXJkQnJlYWs9dm9pZCAwO3JldHVybn0hdGhpcy5kYXRhLnNldGV4dEhlYWRpbmdTbHVycExpbmVFbmRpbmcmJnQuY2FuQ29udGFpbkVvbHMuaW5jbHVkZXMoWi50eXBlKSYmKE4uY2FsbCh0aGlzLEspLFIuY2FsbCh0aGlzLEspKX1mdW5jdGlvbiBTKCl7dGhpcy5kYXRhLmF0SGFyZEJyZWFrPSEwfWZ1bmN0aW9uICQoKXtsZXQgSz10aGlzLnJlc3VtZSgpLFo9dGhpcy5zdGFja1t0aGlzLnN0YWNrLmxlbmd0aC0xXTtaLnZhbHVlPUt9ZnVuY3Rpb24gVCgpe2xldCBLPXRoaXMucmVzdW1lKCksWj10aGlzLnN0YWNrW3RoaXMuc3RhY2subGVuZ3RoLTFdO1oudmFsdWU9S31mdW5jdGlvbiBFKCl7bGV0IEs9dGhpcy5yZXN1bWUoKSxaPXRoaXMuc3RhY2tbdGhpcy5zdGFjay5sZW5ndGgtMV07Wi52YWx1ZT1LfWZ1bmN0aW9uIHEoKXtsZXQgSz10aGlzLnN0YWNrW3RoaXMuc3RhY2subGVuZ3RoLTFdO2lmKHRoaXMuZGF0YS5pblJlZmVyZW5jZSl7bGV0IFo9dGhpcy5kYXRhLnJlZmVyZW5jZVR5cGV8fCJzaG9ydGN1dCI7Sy50eXBlKz0iUmVmZXJlbmNlIixLLnJlZmVyZW5jZVR5cGU9WixkZWxldGUgSy51cmwsZGVsZXRlIEsudGl0bGV9ZWxzZSBkZWxldGUgSy5pZGVudGlmaWVyLGRlbGV0ZSBLLmxhYmVsO3RoaXMuZGF0YS5yZWZlcmVuY2VUeXBlPXZvaWQgMH1mdW5jdGlvbiBCKCl7bGV0IEs9dGhpcy5zdGFja1t0aGlzLnN0YWNrLmxlbmd0aC0xXTtpZih0aGlzLmRhdGEuaW5SZWZlcmVuY2Upe2xldCBaPXRoaXMuZGF0YS5yZWZlcmVuY2VUeXBlfHwic2hvcnRjdXQiO0sudHlwZSs9IlJlZmVyZW5jZSIsSy5yZWZlcmVuY2VUeXBlPVosZGVsZXRlIEsudXJsLGRlbGV0ZSBLLnRpdGxlfWVsc2UgZGVsZXRlIEsuaWRlbnRpZmllcixkZWxldGUgSy5sYWJlbDt0aGlzLmRhdGEucmVmZXJlbmNlVHlwZT12b2lkIDB9ZnVuY3Rpb24gRyhLKXtsZXQgWj10aGlzLnNsaWNlU2VyaWFsaXplKEspLEo9dGhpcy5zdGFja1t0aGlzLnN0YWNrLmxlbmd0aC0yXTtKLmxhYmVsPUVfKFopLEouaWRlbnRpZmllcj1QMShaKS50b0xvd2VyQ2FzZSgpfWZ1bmN0aW9uIGVlKCl7bGV0IEs9dGhpcy5zdGFja1t0aGlzLnN0YWNrLmxlbmd0aC0xXSxaPXRoaXMucmVzdW1lKCksSj10aGlzLnN0YWNrW3RoaXMuc3RhY2subGVuZ3RoLTFdO2lmKHRoaXMuZGF0YS5pblJlZmVyZW5jZT0hMCxKLnR5cGU9PT0ibGluayIpe2xldCBtZT1LLmNoaWxkcmVuO0ouY2hpbGRyZW49bWV9ZWxzZSBKLmFsdD1afWZ1bmN0aW9uIFAoKXtsZXQgSz10aGlzLnJlc3VtZSgpLFo9dGhpcy5zdGFja1t0aGlzLnN0YWNrLmxlbmd0aC0xXTtaLnVybD1LfWZ1bmN0aW9uIGdlKCl7bGV0IEs9dGhpcy5yZXN1bWUoKSxaPXRoaXMuc3RhY2tbdGhpcy5zdGFjay5sZW5ndGgtMV07Wi50aXRsZT1LfWZ1bmN0aW9uIHdlKCl7dGhpcy5kYXRhLmluUmVmZXJlbmNlPXZvaWQgMH1mdW5jdGlvbiBJKCl7dGhpcy5kYXRhLnJlZmVyZW5jZVR5cGU9ImNvbGxhcHNlZCJ9ZnVuY3Rpb24gbmUoSyl7bGV0IFo9dGhpcy5yZXN1bWUoKSxKPXRoaXMuc3RhY2tbdGhpcy5zdGFjay5sZW5ndGgtMV07Si5sYWJlbD1aLEouaWRlbnRpZmllcj1QMSh0aGlzLnNsaWNlU2VyaWFsaXplKEspKS50b0xvd2VyQ2FzZSgpLHRoaXMuZGF0YS5yZWZlcmVuY2VUeXBlPSJmdWxsIn1mdW5jdGlvbiBrZShLKXt0aGlzLmRhdGEuY2hhcmFjdGVyUmVmZXJlbmNlVHlwZT1LLnR5cGV9ZnVuY3Rpb24gWShLKXtsZXQgWj10aGlzLnNsaWNlU2VyaWFsaXplKEspLEo9dGhpcy5kYXRhLmNoYXJhY3RlclJlZmVyZW5jZVR5cGUsbWU7Sj8obWU9ZHAoWixKPT09ImNoYXJhY3RlclJlZmVyZW5jZU1hcmtlck51bWVyaWMiPzEwOjE2KSx0aGlzLmRhdGEuY2hhcmFjdGVyUmVmZXJlbmNlVHlwZT12b2lkIDApOm1lPWg0KFopO2xldCBFZT10aGlzLnN0YWNrW3RoaXMuc3RhY2subGVuZ3RoLTFdO0VlLnZhbHVlKz1tZX1mdW5jdGlvbiBBKEspe2xldCBaPXRoaXMuc3RhY2sucG9wKCk7Wi5wb3NpdGlvbi5lbmQ9bTQoSy5lbmQpfWZ1bmN0aW9uIEwoSyl7Ui5jYWxsKHRoaXMsSyk7bGV0IFo9dGhpcy5zdGFja1t0aGlzLnN0YWNrLmxlbmd0aC0xXTtaLnVybD10aGlzLnNsaWNlU2VyaWFsaXplKEspfWZ1bmN0aW9uIFUoSyl7Ui5jYWxsKHRoaXMsSyk7bGV0IFo9dGhpcy5zdGFja1t0aGlzLnN0YWNrLmxlbmd0aC0xXTtaLnVybD0ibWFpbHRvOiIrdGhpcy5zbGljZVNlcmlhbGl6ZShLKX1mdW5jdGlvbiBWKCl7cmV0dXJue3R5cGU6ImJsb2NrcXVvdGUiLGNoaWxkcmVuOltdfX1mdW5jdGlvbiBYKCl7cmV0dXJue3R5cGU6ImNvZGUiLGxhbmc6bnVsbCxtZXRhOm51bGwsdmFsdWU6IiJ9fWZ1bmN0aW9uIGRlKCl7cmV0dXJue3R5cGU6ImlubGluZUNvZGUiLHZhbHVlOiIifX1mdW5jdGlvbiB2ZSgpe3JldHVybnt0eXBlOiJkZWZpbml0aW9uIixpZGVudGlmaWVyOiIiLGxhYmVsOm51bGwsdGl0bGU6bnVsbCx1cmw6IiJ9fWZ1bmN0aW9uIExlKCl7cmV0dXJue3R5cGU6ImVtcGhhc2lzIixjaGlsZHJlbjpbXX19ZnVuY3Rpb24gVygpe3JldHVybnt0eXBlOiJoZWFkaW5nIixkZXB0aDowLGNoaWxkcmVuOltdfX1mdW5jdGlvbiBIKCl7cmV0dXJue3R5cGU6ImJyZWFrIn19ZnVuY3Rpb24gdGUoKXtyZXR1cm57dHlwZToiaHRtbCIsdmFsdWU6IiJ9fWZ1bmN0aW9uIGJlKCl7cmV0dXJue3R5cGU6ImltYWdlIix0aXRsZTpudWxsLHVybDoiIixhbHQ6bnVsbH19ZnVuY3Rpb24gdWUoKXtyZXR1cm57dHlwZToibGluayIsdGl0bGU6bnVsbCx1cmw6IiIsY2hpbGRyZW46W119fWZ1bmN0aW9uIENlKEspe3JldHVybnt0eXBlOiJsaXN0IixvcmRlcmVkOksudHlwZT09PSJsaXN0T3JkZXJlZCIsc3RhcnQ6bnVsbCxzcHJlYWQ6Sy5fc3ByZWFkLGNoaWxkcmVuOltdfX1mdW5jdGlvbiBoZShLKXtyZXR1cm57dHlwZToibGlzdEl0ZW0iLHNwcmVhZDpLLl9zcHJlYWQsY2hlY2tlZDpudWxsLGNoaWxkcmVuOltdfX1mdW5jdGlvbiBpZSgpe3JldHVybnt0eXBlOiJwYXJhZ3JhcGgiLGNoaWxkcmVuOltdfX1mdW5jdGlvbiBTZSgpe3JldHVybnt0eXBlOiJzdHJvbmciLGNoaWxkcmVuOltdfX1mdW5jdGlvbiBJZSgpe3JldHVybnt0eXBlOiJ0ZXh0Iix2YWx1ZToiIn19ZnVuY3Rpb24gWmUoKXtyZXR1cm57dHlwZToidGhlbWF0aWNCcmVhayJ9fX1mdW5jdGlvbiBtNChlKXtyZXR1cm57bGluZTplLmxpbmUsY29sdW1uOmUuY29sdW1uLG9mZnNldDplLm9mZnNldH19ZnVuY3Rpb24gblhlKGUsdCl7bGV0IHI9LTE7Zm9yKDsrK3I8dC5sZW5ndGg7KXtsZXQgaT10W3JdO0FycmF5LmlzQXJyYXkoaSk/blhlKGUsaSk6enFyKGUsaSl9fWZ1bmN0aW9uIHpxcihlLHQpe2xldCByO2ZvcihyIGluIHQpaWYoYVhlLmNhbGwodCxyKSlzd2l0Y2gocil7Y2FzZSJjYW5Db250YWluRW9scyI6e2xldCBpPXRbcl07aSYmZVtyXS5wdXNoKC4uLmkpO2JyZWFrfWNhc2UidHJhbnNmb3JtcyI6e2xldCBpPXRbcl07aSYmZVtyXS5wdXNoKC4uLmkpO2JyZWFrfWNhc2UiZW50ZXIiOmNhc2UiZXhpdCI6e2xldCBpPXRbcl07aSYmT2JqZWN0LmFzc2lnbihlW3JdLGkpO2JyZWFrfX19ZnVuY3Rpb24gb1hlKGUsdCl7dGhyb3cgZT9uZXcgRXJyb3IoIkNhbm5vdCBjbG9zZSBgIitlLnR5cGUrImAgKCIrZDQoe3N0YXJ0OmUuc3RhcnQsZW5kOmUuZW5kfSkrIik6IGEgZGlmZmVyZW50IHRva2VuIChgIit0LnR5cGUrImAsICIrZDQoe3N0YXJ0OnQuc3RhcnQsZW5kOnQuZW5kfSkrIikgaXMgb3BlbiIpOm5ldyBFcnJvcigiQ2Fubm90IGNsb3NlIGRvY3VtZW50LCBhIHRva2VuIChgIit0LnR5cGUrImAsICIrZDQoe3N0YXJ0OnQuc3RhcnQsZW5kOnQuZW5kfSkrIikgaXMgc3RpbGwgb3BlbiIpfXZhciBhWGUsc1hlPXAoKCk9PntUXygpO2lYZSgpO0RfKCk7aHRlKCk7cDQoKTtQOSgpO1RlZSgpO2FYZT17fS5oYXNPd25Qcm9wZXJ0eX0pO3ZhciBsWGU9cCgoKT0+e3NYZSgpfSk7ZnVuY3Rpb24gaHAoZSl7bGV0IHQ9dGhpczt0LnBhcnNlcj1yO2Z1bmN0aW9uIHIoaSl7cmV0dXJuIGRyZShpLHsuLi50LmRhdGEoInNldHRpbmdzIiksLi4uZSxleHRlbnNpb25zOnQuZGF0YSgibWljcm9tYXJrRXh0ZW5zaW9ucyIpfHxbXSxtZGFzdEV4dGVuc2lvbnM6dC5kYXRhKCJmcm9tTWFya2Rvd25FeHRlbnNpb25zIil8fFtdfSl9fXZhciBjWGU9cCgoKT0+e2xYZSgpfSk7dmFyIGRYZT1wKCgpPT57Y1hlKCl9KTt2YXIgdVhlPWplKChxcWksdXJlKT0+eyhmdW5jdGlvbigpe3ZhciBlO3R5cGVvZiB1cmU8InUiP2U9dXJlLmV4cG9ydHM9aTplPShmdW5jdGlvbigpe3JldHVybiB0aGlzfHwoMCxldmFsKSgidGhpcyIpfSkoKSxlLmZvcm1hdD1pLGUudnNwcmludGY9cix0eXBlb2YgY29uc29sZTwidSImJnR5cGVvZiBjb25zb2xlLmxvZz09ImZ1bmN0aW9uIiYmKGUucHJpbnRmPXQpO2Z1bmN0aW9uIHQoKXtjb25zb2xlLmxvZyhpLmFwcGx5KG51bGwsYXJndW1lbnRzKSl9ZnVuY3Rpb24gcihhLG4pe3JldHVybiBpLmFwcGx5KG51bGwsW2FdLmNvbmNhdChuKSl9ZnVuY3Rpb24gaShhKXtmb3IodmFyIG49MSxvPVtdLnNsaWNlLmNhbGwoYXJndW1lbnRzKSxzPTAsbD1hLmxlbmd0aCxjPSIiLHUsZD0hMSxoLGYseD0hMSx2LGI9ZnVuY3Rpb24oKXtyZXR1cm4gb1tuKytdfSx5PWZ1bmN0aW9uKCl7Zm9yKHZhciB3PSIiOy9cZC8udGVzdChhW3NdKTspdys9YVtzKytdLHU9YVtzXTtyZXR1cm4gdy5sZW5ndGg+MD9wYXJzZUludCh3KTpudWxsfTtzPGw7KytzKWlmKHU9YVtzXSxkKXN3aXRjaChkPSExLHU9PSIuIj8oeD0hMSx1PWFbKytzXSk6dT09IjAiJiZhW3MrMV09PSIuIj8oeD0hMCxzKz0yLHU9YVtzXSk6eD0hMCx2PXkoKSx1KXtjYXNlImIiOmMrPXBhcnNlSW50KGIoKSwxMCkudG9TdHJpbmcoMik7YnJlYWs7Y2FzZSJjIjpoPWIoKSx0eXBlb2YgaD09InN0cmluZyJ8fGggaW5zdGFuY2VvZiBTdHJpbmc/Yys9aDpjKz1TdHJpbmcuZnJvbUNoYXJDb2RlKHBhcnNlSW50KGgsMTApKTticmVhaztjYXNlImQiOmMrPXBhcnNlSW50KGIoKSwxMCk7YnJlYWs7Y2FzZSJmIjpmPVN0cmluZyhwYXJzZUZsb2F0KGIoKSkudG9GaXhlZCh2fHw2KSksYys9eD9mOmYucmVwbGFjZSgvXjAvLCIiKTticmVhaztjYXNlImoiOmMrPUpTT04uc3RyaW5naWZ5KGIoKSk7YnJlYWs7Y2FzZSJvIjpjKz0iMCIrcGFyc2VJbnQoYigpLDEwKS50b1N0cmluZyg4KTticmVhaztjYXNlInMiOmMrPWIoKTticmVhaztjYXNlIngiOmMrPSIweCIrcGFyc2VJbnQoYigpLDEwKS50b1N0cmluZygxNik7YnJlYWs7Y2FzZSJYIjpjKz0iMHgiK3BhcnNlSW50KGIoKSwxMCkudG9TdHJpbmcoMTYpLnRvVXBwZXJDYXNlKCk7YnJlYWs7ZGVmYXVsdDpjKz11O2JyZWFrfWVsc2UgdT09PSIlIj9kPSEwOmMrPXU7cmV0dXJuIGN9fSkoKX0pO2Z1bmN0aW9uIGhkKGUpe3JldHVybiB0LmRpc3BsYXlOYW1lPWUuZGlzcGxheU5hbWV8fGUubmFtZSx0O2Z1bmN0aW9uIHQociwuLi5pKXtsZXQgYT1yJiYoMCxwWGUuZGVmYXVsdCkociwuLi5pKTtyZXR1cm4gbmV3IGUoYSl9fXZhciBwWGUsVTksaFhlPXAoKCk9PntwWGU9ZXIodVhlKCksMSksVTk9T2JqZWN0LmFzc2lnbihoZChFcnJvcikse2V2YWw6aGQoRXZhbEVycm9yKSxyYW5nZTpoZChSYW5nZUVycm9yKSxyZWZlcmVuY2U6aGQoUmVmZXJlbmNlRXJyb3IpLHN5bnRheDpoZChTeW50YXhFcnJvciksdHlwZTpoZChUeXBlRXJyb3IpLHVyaTpoZChVUklFcnJvcil9KX0pO2Z1bmN0aW9uIGZwKGUpe2xldCB0PVtdLHI9LTEsaT1BcnJheS5pc0FycmF5KGUpP2U6ZT9bZV06WyJ5YW1sIl07Zm9yKDsrK3I8aS5sZW5ndGg7KXRbcl09Q3FyKGlbcl0pO3JldHVybiB0fWZ1bmN0aW9uIENxcihlKXtsZXQgdD1lO2lmKHR5cGVvZiB0PT0ic3RyaW5nIil7aWYoIUpfLmNhbGwoZlhlLHQpKXRocm93IFU5KCJNaXNzaW5nIG1hdHRlciBkZWZpbml0aW9uIGZvciBgJXNgIix0KTt0PXt0eXBlOnQsbWFya2VyOmZYZVt0XX19ZWxzZSBpZih0eXBlb2YgdCE9Im9iamVjdCIpdGhyb3cgVTkoIkV4cGVjdGVkIG1hdHRlciB0byBiZSBhbiBvYmplY3QsIG5vdCBgJWpgIix0KTtpZighSl8uY2FsbCh0LCJ0eXBlIikpdGhyb3cgVTkoIk1pc3NpbmcgYHR5cGVgIGluIG1hdHRlciBgJWpgIix0KTtpZighSl8uY2FsbCh0LCJmZW5jZSIpJiYhSl8uY2FsbCh0LCJtYXJrZXIiKSl0aHJvdyBVOSgiTWlzc2luZyBgbWFya2VyYCBvciBgZmVuY2VgIGluIG1hdHRlciBgJWpgIix0KTtyZXR1cm4gdH12YXIgSl8sZlhlLHByZT1wKCgpPT57aFhlKCk7Sl89e30uaGFzT3duUHJvcGVydHksZlhlPXt5YW1sOiItIix0b21sOiIrIn19KTtmdW5jdGlvbiBmcmUoZSl7bGV0IHQ9ZnAoZSkscj17fSxpPS0xO2Zvcig7KytpPHQubGVuZ3RoOyl7bGV0IGE9dFtpXSxuPWhyZShhLCJvcGVuIikuY2hhckNvZGVBdCgwKSxvPVRxcihhKSxzPXJbbl07QXJyYXkuaXNBcnJheShzKT9zLnB1c2gobyk6cltuXT1bb119cmV0dXJue2Zsb3c6cn19ZnVuY3Rpb24gVHFyKGUpe2xldCB0PWUuYW55d2hlcmUscj1lLnR5cGUsaT1yKyJGZW5jZSIsYT1pKyJTZXF1ZW5jZSIsbj1yKyJWYWx1ZSIsbz17dG9rZW5pemU6dSxwYXJ0aWFsOiEwfSxzLGw9MDtyZXR1cm57dG9rZW5pemU6Yyxjb25jcmV0ZTohMH07ZnVuY3Rpb24gYyhkLGgsZil7bGV0IHg9dGhpcztyZXR1cm4gdjtmdW5jdGlvbiB2KEYpe2xldCBEPXgubm93KCk7cmV0dXJuIEQuY29sdW1uPT09MSYmKEQubGluZT09PTF8fHQpJiYocz1ocmUoZSwib3BlbiIpLGw9MCxGPT09cy5jaGFyQ29kZUF0KGwpKT8oZC5lbnRlcihyKSxkLmVudGVyKGkpLGQuZW50ZXIoYSksYihGKSk6ZihGKX1mdW5jdGlvbiBiKEYpe3JldHVybiBsPT09cy5sZW5ndGg/KGQuZXhpdChhKSxjdChGKT8oZC5lbnRlcigid2hpdGVzcGFjZSIpLHkoRikpOncoRikpOkY9PT1zLmNoYXJDb2RlQXQobCsrKT8oZC5jb25zdW1lKEYpLGIpOmYoRil9ZnVuY3Rpb24geShGKXtyZXR1cm4gY3QoRik/KGQuY29uc3VtZShGKSx5KTooZC5leGl0KCJ3aGl0ZXNwYWNlIiksdyhGKSl9ZnVuY3Rpb24gdyhGKXtyZXR1cm4gR2UoRik/KGQuZXhpdChpKSxkLmVudGVyKCJsaW5lRW5kaW5nIiksZC5jb25zdW1lKEYpLGQuZXhpdCgibGluZUVuZGluZyIpLHM9aHJlKGUsImNsb3NlIiksbD0wLGQuYXR0ZW1wdChvLE0saykpOmYoRil9ZnVuY3Rpb24gayhGKXtyZXR1cm4gRj09PW51bGx8fEdlKEYpP3ooRik6KGQuZW50ZXIobiksTyhGKSl9ZnVuY3Rpb24gTyhGKXtyZXR1cm4gRj09PW51bGx8fEdlKEYpPyhkLmV4aXQobikseihGKSk6KGQuY29uc3VtZShGKSxPKX1mdW5jdGlvbiB6KEYpe3JldHVybiBGPT09bnVsbD9mKEYpOihkLmVudGVyKCJsaW5lRW5kaW5nIiksZC5jb25zdW1lKEYpLGQuZXhpdCgibGluZUVuZGluZyIpLGQuYXR0ZW1wdChvLE0saykpfWZ1bmN0aW9uIE0oRil7cmV0dXJuIGQuZXhpdChyKSxoKEYpfX1mdW5jdGlvbiB1KGQsaCxmKXtsZXQgeD0wO3JldHVybiB2O2Z1bmN0aW9uIHYoayl7cmV0dXJuIGs9PT1zLmNoYXJDb2RlQXQoeCk/KGQuZW50ZXIoaSksZC5lbnRlcihhKSxiKGspKTpmKGspfWZ1bmN0aW9uIGIoayl7cmV0dXJuIHg9PT1zLmxlbmd0aD8oZC5leGl0KGEpLGN0KGspPyhkLmVudGVyKCJ3aGl0ZXNwYWNlIikseShrKSk6dyhrKSk6az09PXMuY2hhckNvZGVBdCh4KyspPyhkLmNvbnN1bWUoayksYik6ZihrKX1mdW5jdGlvbiB5KGspe3JldHVybiBjdChrKT8oZC5jb25zdW1lKGspLHkpOihkLmV4aXQoIndoaXRlc3BhY2UiKSx3KGspKX1mdW5jdGlvbiB3KGspe3JldHVybiBrPT09bnVsbHx8R2Uoayk/KGQuZXhpdChpKSxoKGspKTpmKGspfX19ZnVuY3Rpb24gaHJlKGUsdCl7cmV0dXJuIGUubWFya2VyP21YZShlLm1hcmtlcix0KS5yZXBlYXQoMyk6bVhlKGUuZmVuY2UsdCl9ZnVuY3Rpb24gbVhlKGUsdCl7cmV0dXJuIHR5cGVvZiBlPT0ic3RyaW5nIj9lOmVbdF19dmFyIGdYZT1wKCgpPT57cnIoKTtwcmUoKX0pO3ZhciBiWGU9cCgoKT0+e30pO3ZhciBtcmU9cCgoKT0+e2dYZSgpO2JYZSgpO3ByZSgpfSk7ZnVuY3Rpb24gYnJlKGUpe2xldCB0PWZwKGUpLHI9e30saT17fSxhPS0xO2Zvcig7KythPHQubGVuZ3RoOyl7bGV0IG49dFthXTtyW24udHlwZV09X3FyKG4pLGlbbi50eXBlXT1McXIsaVtuLnR5cGUrIlZhbHVlIl09QXFyfXJldHVybntlbnRlcjpyLGV4aXQ6aX19ZnVuY3Rpb24gX3FyKGUpe3JldHVybiB0O2Z1bmN0aW9uIHQocil7dGhpcy5lbnRlcih7dHlwZTplLnR5cGUsdmFsdWU6IiJ9LHIpLHRoaXMuYnVmZmVyKCl9fWZ1bmN0aW9uIExxcihlKXtsZXQgdD10aGlzLnJlc3VtZSgpLHI9dGhpcy5zdGFja1t0aGlzLnN0YWNrLmxlbmd0aC0xXTsidmFsdWUiaW4gcix0aGlzLmV4aXQoZSksci52YWx1ZT10LnJlcGxhY2UoL14oXHI/XG58XHIpfChccj9cbnxccikkL2csIiIpfWZ1bmN0aW9uIEFxcihlKXt0aGlzLmNvbmZpZy5lbnRlci5kYXRhLmNhbGwodGhpcyxlKSx0aGlzLmNvbmZpZy5leGl0LmRhdGEuY2FsbCh0aGlzLGUpfWZ1bmN0aW9uIHZyZShlKXtsZXQgdD1bXSxyPXt9LGk9ZnAoZSksYT0tMTtmb3IoOysrYTxpLmxlbmd0aDspe2xldCBuPWlbYV07cltuLnR5cGVdPURxcihuKTtsZXQgbz1ncmUobiwib3BlbiIpO3QucHVzaCh7YXRCcmVhazohMCxjaGFyYWN0ZXI6by5jaGFyQXQoMCksYWZ0ZXI6VDYoby5jaGFyQXQoMSkpfSl9cmV0dXJue3Vuc2FmZTp0LGhhbmRsZXJzOnJ9fWZ1bmN0aW9uIERxcihlKXtsZXQgdD1ncmUoZSwib3BlbiIpLHI9Z3JlKGUsImNsb3NlIik7cmV0dXJuIGk7ZnVuY3Rpb24gaShhKXtyZXR1cm4gdCsoYS52YWx1ZT9gCmArYS52YWx1ZToiIikrYApgK3J9fWZ1bmN0aW9uIGdyZShlLHQpe3JldHVybiBlLm1hcmtlcj92WGUoZS5tYXJrZXIsdCkucmVwZWF0KDMpOnZYZShlLmZlbmNlLHQpfWZ1bmN0aW9uIHZYZShlLHQpe3JldHVybiB0eXBlb2YgZT09InN0cmluZyI/ZTplW3RdfXZhciB4WGU9cCgoKT0+e2M0KCk7bXJlKCk7dnooKX0pO3ZhciB5WGU9cCgoKT0+e3hYZSgpfSk7ZnVuY3Rpb24gbXAoZSl7bGV0IHQ9dGhpcyxyPWV8fEVxcixpPXQuZGF0YSgpLGE9aS5taWNyb21hcmtFeHRlbnNpb25zfHwoaS5taWNyb21hcmtFeHRlbnNpb25zPVtdKSxuPWkuZnJvbU1hcmtkb3duRXh0ZW5zaW9uc3x8KGkuZnJvbU1hcmtkb3duRXh0ZW5zaW9ucz1bXSksbz1pLnRvTWFya2Rvd25FeHRlbnNpb25zfHwoaS50b01hcmtkb3duRXh0ZW5zaW9ucz1bXSk7YS5wdXNoKGZyZShyKSksbi5wdXNoKGJyZShyKSksby5wdXNoKHZyZShyKSl9dmFyIEVxcix3WGU9cCgoKT0+e3lYZSgpO21yZSgpO0Vxcj0ieWFtbCJ9KTt2YXIgTVhlPXAoKCk9Pnt3WGUoKX0pO3ZhciB4cmU9cCgoKT0+e30pO3ZhciBrWGUsJHFyLGlMLFNYZT1wKCgpPT57eHJlKCk7a1hlPXR5cGVvZiBzZWxmPT0ib2JqZWN0Ij9zZWxmOmdsb2JhbFRoaXMsJHFyPShlLHQpPT57bGV0IHI9KGEsbik9PihlLnNldChuLGEpLGEpLGk9YT0+e2lmKGUuaGFzKGEpKXJldHVybiBlLmdldChhKTtsZXRbbixvXT10W2FdO3N3aXRjaChuKXtjYXNlIDA6Y2FzZS0xOnJldHVybiByKG8sYSk7Y2FzZSAxOntsZXQgcz1yKFtdLGEpO2ZvcihsZXQgbCBvZiBvKXMucHVzaChpKGwpKTtyZXR1cm4gc31jYXNlIDI6e2xldCBzPXIoe30sYSk7Zm9yKGxldFtsLGNdb2YgbylzW2kobCldPWkoYyk7cmV0dXJuIHN9Y2FzZSAzOnJldHVybiByKG5ldyBEYXRlKG8pLGEpO2Nhc2UgNDp7bGV0e3NvdXJjZTpzLGZsYWdzOmx9PW87cmV0dXJuIHIobmV3IFJlZ0V4cChzLGwpLGEpfWNhc2UgNTp7bGV0IHM9cihuZXcgTWFwLGEpO2ZvcihsZXRbbCxjXW9mIG8pcy5zZXQoaShsKSxpKGMpKTtyZXR1cm4gc31jYXNlIDY6e2xldCBzPXIobmV3IFNldCxhKTtmb3IobGV0IGwgb2YgbylzLmFkZChpKGwpKTtyZXR1cm4gc31jYXNlIDc6e2xldHtuYW1lOnMsbWVzc2FnZTpsfT1vO3JldHVybiByKG5ldyBrWGVbc10obCksYSl9Y2FzZSA4OnJldHVybiByKEJpZ0ludChvKSxhKTtjYXNlIkJpZ0ludCI6cmV0dXJuIHIoT2JqZWN0KEJpZ0ludChvKSksYSk7Y2FzZSJBcnJheUJ1ZmZlciI6cmV0dXJuIHIobmV3IFVpbnQ4QXJyYXkobykuYnVmZmVyLG8pO2Nhc2UiRGF0YVZpZXciOntsZXR7YnVmZmVyOnN9PW5ldyBVaW50OEFycmF5KG8pO3JldHVybiByKG5ldyBEYXRhVmlldyhzKSxvKX19cmV0dXJuIHIobmV3IGtYZVtuXShvKSxhKX07cmV0dXJuIGl9LGlMPWU9PiRxcihuZXcgTWFwLGUpKDApfSk7dmFyIGJwLElxcixQcXIsWTksYUwsTnFyLG5MLHpYZT1wKCgpPT57eHJlKCk7YnA9IiIse3RvU3RyaW5nOklxcn09e30se2tleXM6UHFyfT1PYmplY3QsWTk9ZT0+e2xldCB0PXR5cGVvZiBlO2lmKHQhPT0ib2JqZWN0Inx8IWUpcmV0dXJuWzAsdF07bGV0IHI9SXFyLmNhbGwoZSkuc2xpY2UoOCwtMSk7c3dpdGNoKHIpe2Nhc2UiQXJyYXkiOnJldHVyblsxLGJwXTtjYXNlIk9iamVjdCI6cmV0dXJuWzIsYnBdO2Nhc2UiRGF0ZSI6cmV0dXJuWzMsYnBdO2Nhc2UiUmVnRXhwIjpyZXR1cm5bNCxicF07Y2FzZSJNYXAiOnJldHVybls1LGJwXTtjYXNlIlNldCI6cmV0dXJuWzYsYnBdO2Nhc2UiRGF0YVZpZXciOnJldHVyblsxLHJdfXJldHVybiByLmluY2x1ZGVzKCJBcnJheSIpP1sxLHJdOnIuaW5jbHVkZXMoIkVycm9yIik/Wzcscl06WzIscl19LGFMPShbZSx0XSk9PmU9PT0wJiYodD09PSJmdW5jdGlvbiJ8fHQ9PT0ic3ltYm9sIiksTnFyPShlLHQscixpKT0+e2xldCBhPShvLHMpPT57bGV0IGw9aS5wdXNoKG8pLTE7cmV0dXJuIHIuc2V0KHMsbCksbH0sbj1vPT57aWYoci5oYXMobykpcmV0dXJuIHIuZ2V0KG8pO2xldFtzLGxdPVk5KG8pO3N3aXRjaChzKXtjYXNlIDA6e2xldCB1PW87c3dpdGNoKGwpe2Nhc2UiYmlnaW50IjpzPTgsdT1vLnRvU3RyaW5nKCk7YnJlYWs7Y2FzZSJmdW5jdGlvbiI6Y2FzZSJzeW1ib2wiOmlmKGUpdGhyb3cgbmV3IFR5cGVFcnJvcigidW5hYmxlIHRvIHNlcmlhbGl6ZSAiK2wpO3U9bnVsbDticmVhaztjYXNlInVuZGVmaW5lZCI6cmV0dXJuIGEoWy0xXSxvKX1yZXR1cm4gYShbcyx1XSxvKX1jYXNlIDE6e2lmKGwpe2xldCBoPW87cmV0dXJuIGw9PT0iRGF0YVZpZXciP2g9bmV3IFVpbnQ4QXJyYXkoby5idWZmZXIpOmw9PT0iQXJyYXlCdWZmZXIiJiYoaD1uZXcgVWludDhBcnJheShvKSksYShbbCxbLi4uaF1dLG8pfWxldCB1PVtdLGQ9YShbcyx1XSxvKTtmb3IobGV0IGggb2Ygbyl1LnB1c2gobihoKSk7cmV0dXJuIGR9Y2FzZSAyOntpZihsKXN3aXRjaChsKXtjYXNlIkJpZ0ludCI6cmV0dXJuIGEoW2wsby50b1N0cmluZygpXSxvKTtjYXNlIkJvb2xlYW4iOmNhc2UiTnVtYmVyIjpjYXNlIlN0cmluZyI6cmV0dXJuIGEoW2wsby52YWx1ZU9mKCldLG8pfWlmKHQmJiJ0b0pTT04iaW4gbylyZXR1cm4gbihvLnRvSlNPTigpKTtsZXQgdT1bXSxkPWEoW3MsdV0sbyk7Zm9yKGxldCBoIG9mIFBxcihvKSkoZXx8IWFMKFk5KG9baF0pKSkmJnUucHVzaChbbihoKSxuKG9baF0pXSk7cmV0dXJuIGR9Y2FzZSAzOnJldHVybiBhKFtzLG8udG9JU09TdHJpbmcoKV0sbyk7Y2FzZSA0OntsZXR7c291cmNlOnUsZmxhZ3M6ZH09bztyZXR1cm4gYShbcyx7c291cmNlOnUsZmxhZ3M6ZH1dLG8pfWNhc2UgNTp7bGV0IHU9W10sZD1hKFtzLHVdLG8pO2ZvcihsZXRbaCxmXW9mIG8pKGV8fCEoYUwoWTkoaCkpfHxhTChZOShmKSkpKSYmdS5wdXNoKFtuKGgpLG4oZildKTtyZXR1cm4gZH1jYXNlIDY6e2xldCB1PVtdLGQ9YShbcyx1XSxvKTtmb3IobGV0IGggb2YgbykoZXx8IWFMKFk5KGgpKSkmJnUucHVzaChuKGgpKTtyZXR1cm4gZH19bGV0e21lc3NhZ2U6Y309bztyZXR1cm4gYShbcyx7bmFtZTpsLG1lc3NhZ2U6Y31dLG8pfTtyZXR1cm4gbn0sbkw9KGUse2pzb246dCxsb3NzeTpyfT17fSk9PntsZXQgaT1bXTtyZXR1cm4gTnFyKCEodHx8ciksISF0LG5ldyBNYXAsaSkoZSksaX19KTt2YXIgZzQsb0w9cCgoKT0+e1NYZSgpO3pYZSgpO2c0PXR5cGVvZiBzdHJ1Y3R1cmVkQ2xvbmU9PSJmdW5jdGlvbiI/KGUsdCk9PnQmJigianNvbiJpbiB0fHwibG9zc3kiaW4gdCk/aUwobkwoZSx0KSk6c3RydWN0dXJlZENsb25lKGUpOihlLHQpPT5pTChuTChlLHQpKX0pO2Z1bmN0aW9uIENYZShlKXtyZXR1cm4gdDtmdW5jdGlvbiB0KHIpe2xldCBpPXImJnIucG9zaXRpb24mJnIucG9zaXRpb25bZV18fHt9O2lmKHR5cGVvZiBpLmxpbmU9PSJudW1iZXIiJiZpLmxpbmU+MCYmdHlwZW9mIGkuY29sdW1uPT0ibnVtYmVyIiYmaS5jb2x1bW4+MClyZXR1cm57bGluZTppLmxpbmUsY29sdW1uOmkuY29sdW1uLG9mZnNldDp0eXBlb2YgaS5vZmZzZXQ9PSJudW1iZXIiJiZpLm9mZnNldD4tMT9pLm9mZnNldDp2b2lkIDB9fX1mdW5jdGlvbiBaOShlKXtsZXQgdD1sTChlKSxyPXNMKGUpO2lmKHQmJnIpcmV0dXJue3N0YXJ0OnQsZW5kOnJ9fXZhciBzTCxsTCxUWGU9cCgoKT0+e3NMPUNYZSgiZW5kIiksbEw9Q1hlKCJzdGFydCIpfSk7dmFyIGNMPXAoKCk9PntUWGUoKX0pO3ZhciBmZCxkTCxrcmU9cCgoKT0+e2ZkPVsiYXJpYURlc2NyaWJlZEJ5IiwiYXJpYUxhYmVsIiwiYXJpYUxhYmVsbGVkQnkiXSxkTD17YW5jZXN0b3JzOnt0Ym9keTpbInRhYmxlIl0sdGQ6WyJ0YWJsZSJdLHRoOlsidGFibGUiXSx0aGVhZDpbInRhYmxlIl0sdGZvb3Q6WyJ0YWJsZSJdLHRyOlsidGFibGUiXX0sYXR0cmlidXRlczp7YTpbLi4uZmQsImRhdGFGb290bm90ZUJhY2tyZWYiLCJkYXRhRm9vdG5vdGVSZWYiLFsiY2xhc3NOYW1lIiwiZGF0YS1mb290bm90ZS1iYWNrcmVmIl0sImhyZWYiXSxibG9ja3F1b3RlOlsiY2l0ZSJdLGNvZGU6W1siY2xhc3NOYW1lIiwvXmxhbmd1YWdlLS4vXV0sZGVsOlsiY2l0ZSJdLGRpdjpbIml0ZW1TY29wZSIsIml0ZW1UeXBlIl0sZGw6Wy4uLmZkXSxoMjpbWyJjbGFzc05hbWUiLCJzci1vbmx5Il1dLGltZzpbLi4uZmQsImxvbmdEZXNjIiwic3JjIl0saW5wdXQ6W1siZGlzYWJsZWQiLCEwXSxbInR5cGUiLCJjaGVja2JveCJdXSxpbnM6WyJjaXRlIl0sbGk6W1siY2xhc3NOYW1lIiwidGFzay1saXN0LWl0ZW0iXV0sb2w6Wy4uLmZkLFsiY2xhc3NOYW1lIiwiY29udGFpbnMtdGFzay1saXN0Il1dLHE6WyJjaXRlIl0sc2VjdGlvbjpbImRhdGFGb290bm90ZXMiLFsiY2xhc3NOYW1lIiwiZm9vdG5vdGVzIl1dLHNvdXJjZTpbInNyY1NldCJdLHN1bW1hcnk6Wy4uLmZkXSx0YWJsZTpbLi4uZmRdLHVsOlsuLi5mZCxbImNsYXNzTmFtZSIsImNvbnRhaW5zLXRhc2stbGlzdCJdXSwiKiI6WyJhYmJyIiwiYWNjZXB0IiwiYWNjZXB0Q2hhcnNldCIsImFjY2Vzc0tleSIsImFjdGlvbiIsImFsaWduIiwiYWx0IiwiYXhpcyIsImJvcmRlciIsImNlbGxQYWRkaW5nIiwiY2VsbFNwYWNpbmciLCJjaGFyIiwiY2hhck9mZiIsImNoYXJTZXQiLCJjaGVja2VkIiwiY2xlYXIiLCJjb2xTcGFuIiwiY29sb3IiLCJjb2xzIiwiY29tcGFjdCIsImNvb3JkcyIsImRhdGVUaW1lIiwiZGlyIiwiZW5jVHlwZSIsImZyYW1lIiwiaFNwYWNlIiwiaGVhZGVycyIsImhlaWdodCIsImhyZWZMYW5nIiwiaHRtbEZvciIsImlkIiwiaXNNYXAiLCJpdGVtUHJvcCIsImxhYmVsIiwibGFuZyIsIm1heExlbmd0aCIsIm1lZGlhIiwibWV0aG9kIiwibXVsdGlwbGUiLCJuYW1lIiwibm9IcmVmIiwibm9TaGFkZSIsIm5vV3JhcCIsIm9wZW4iLCJwcm9tcHQiLCJyZWFkT25seSIsInJldiIsInJvd1NwYW4iLCJyb3dzIiwicnVsZXMiLCJzY29wZSIsInNlbGVjdGVkIiwic2hhcGUiLCJzaXplIiwic3BhbiIsInN0YXJ0Iiwic3VtbWFyeSIsInRhYkluZGV4IiwidGl0bGUiLCJ1c2VNYXAiLCJ2QWxpZ24iLCJ2YWx1ZSIsIndpZHRoIl19LGNsb2JiZXI6WyJhcmlhRGVzY3JpYmVkQnkiLCJhcmlhTGFiZWxsZWRCeSIsImlkIiwibmFtZSJdLGNsb2JiZXJQcmVmaXg6InVzZXItY29udGVudC0iLHByb3RvY29sczp7Y2l0ZTpbImh0dHAiLCJodHRwcyJdLGhyZWY6WyJodHRwIiwiaHR0cHMiLCJpcmMiLCJpcmNzIiwibWFpbHRvIiwieG1wcCJdLGxvbmdEZXNjOlsiaHR0cCIsImh0dHBzIl0sc3JjOlsiaHR0cCIsImh0dHBzIl19LHJlcXVpcmVkOntpbnB1dDp7ZGlzYWJsZWQ6ITAsdHlwZToiY2hlY2tib3gifX0sc3RyaXA6WyJzY3JpcHQiXSx0YWdOYW1lczpbImEiLCJiIiwiYmxvY2txdW90ZSIsImJyIiwiY29kZSIsImRkIiwiZGVsIiwiZGV0YWlscyIsImRpdiIsImRsIiwiZHQiLCJlbSIsImgxIiwiaDIiLCJoMyIsImg0IiwiaDUiLCJoNiIsImhyIiwiaSIsImltZyIsImlucHV0IiwiaW5zIiwia2JkIiwibGkiLCJvbCIsInAiLCJwaWN0dXJlIiwicHJlIiwicSIsInJwIiwicnQiLCJydWJ5IiwicyIsInNhbXAiLCJzZWN0aW9uIiwic291cmNlIiwic3BhbiIsInN0cmlrZSIsInN0cm9uZyIsInN1YiIsInN1bW1hcnkiLCJzdXAiLCJ0YWJsZSIsInRib2R5IiwidGQiLCJ0Zm9vdCIsInRoIiwidGhlYWQiLCJ0ciIsInR0IiwidWwiLCJ2YXIiXX19KTtmdW5jdGlvbiBTcmUoZSx0KXtsZXQgcj17dHlwZToicm9vdCIsY2hpbGRyZW46W119LGk9e3NjaGVtYTp0P3suLi5kTCwuLi50fTpkTCxzdGFjazpbXX0sYT1fWGUoaSxlKTtyZXR1cm4gYSYmKEFycmF5LmlzQXJyYXkoYSk/YS5sZW5ndGg9PT0xP3I9YVswXTpyLmNoaWxkcmVuPWE6cj1hKSxyfWZ1bmN0aW9uIF9YZShlLHQpe2lmKHQmJnR5cGVvZiB0PT0ib2JqZWN0Iil7bGV0IHI9dDtzd2l0Y2godHlwZW9mIHIudHlwZT09InN0cmluZyI/ci50eXBlOiIiKXtjYXNlImNvbW1lbnQiOnJldHVybiBGcXIoZSxyKTtjYXNlImRvY3R5cGUiOnJldHVybiBPcXIoZSxyKTtjYXNlImVsZW1lbnQiOnJldHVybiBScXIoZSxyKTtjYXNlInJvb3QiOnJldHVybiBCcXIoZSxyKTtjYXNlInRleHQiOnJldHVybiBIcXIoZSxyKTtkZWZhdWx0On19fWZ1bmN0aW9uIEZxcihlLHQpe2lmKGUuc2NoZW1hLmFsbG93Q29tbWVudHMpe2xldCByPXR5cGVvZiB0LnZhbHVlPT0ic3RyaW5nIj90LnZhbHVlOiIiLGk9ci5pbmRleE9mKCItLT4iKSxuPXt0eXBlOiJjb21tZW50Iix2YWx1ZTppPDA/cjpyLnNsaWNlKDAsaSl9O3JldHVybiBYOShuLHQpLG59fWZ1bmN0aW9uIE9xcihlLHQpe2lmKGUuc2NoZW1hLmFsbG93RG9jdHlwZXMpe2xldCByPXt0eXBlOiJkb2N0eXBlIn07cmV0dXJuIFg5KHIsdCkscn19ZnVuY3Rpb24gUnFyKGUsdCl7bGV0IHI9dHlwZW9mIHQudGFnTmFtZT09InN0cmluZyI/dC50YWdOYW1lOiIiO2Uuc3RhY2sucHVzaChyKTtsZXQgaT1MWGUoZSx0LmNoaWxkcmVuKSxhPXFxcihlLHQucHJvcGVydGllcyk7ZS5zdGFjay5wb3AoKTtsZXQgbj0hMTtpZihyJiZyIT09IioiJiYoIWUuc2NoZW1hLnRhZ05hbWVzfHxlLnNjaGVtYS50YWdOYW1lcy5pbmNsdWRlcyhyKSkmJihuPSEwLGUuc2NoZW1hLmFuY2VzdG9ycyYmYjQuY2FsbChlLnNjaGVtYS5hbmNlc3RvcnMscikpKXtsZXQgcz1lLnNjaGVtYS5hbmNlc3RvcnNbcl0sbD0tMTtmb3Iobj0hMTsrK2w8cy5sZW5ndGg7KWUuc3RhY2suaW5jbHVkZXMoc1tsXSkmJihuPSEwKX1pZighbilyZXR1cm4gZS5zY2hlbWEuc3RyaXAmJiFlLnNjaGVtYS5zdHJpcC5pbmNsdWRlcyhyKT9pOnZvaWQgMDtsZXQgbz17dHlwZToiZWxlbWVudCIsdGFnTmFtZTpyLHByb3BlcnRpZXM6YSxjaGlsZHJlbjppfTtyZXR1cm4gWDkobyx0KSxvfWZ1bmN0aW9uIEJxcihlLHQpe2xldCBpPXt0eXBlOiJyb290IixjaGlsZHJlbjpMWGUoZSx0LmNoaWxkcmVuKX07cmV0dXJuIFg5KGksdCksaX1mdW5jdGlvbiBIcXIoZSx0KXtsZXQgaT17dHlwZToidGV4dCIsdmFsdWU6dHlwZW9mIHQudmFsdWU9PSJzdHJpbmciP3QudmFsdWU6IiJ9O3JldHVybiBYOShpLHQpLGl9ZnVuY3Rpb24gTFhlKGUsdCl7bGV0IHI9W107aWYoQXJyYXkuaXNBcnJheSh0KSl7bGV0IGk9dCxhPS0xO2Zvcig7KythPGkubGVuZ3RoOyl7bGV0IG49X1hlKGUsaVthXSk7biYmKEFycmF5LmlzQXJyYXkobik/ci5wdXNoKC4uLm4pOnIucHVzaChuKSl9fXJldHVybiByfWZ1bmN0aW9uIHFxcihlLHQpe2xldCByPWUuc3RhY2tbZS5zdGFjay5sZW5ndGgtMV0saT1lLnNjaGVtYS5hdHRyaWJ1dGVzLGE9ZS5zY2hlbWEucmVxdWlyZWQsbj1pJiZiNC5jYWxsKGkscik/aVtyXTp2b2lkIDAsbz1pJiZiNC5jYWxsKGksIioiKT9pWyIqIl06dm9pZCAwLHM9dCYmdHlwZW9mIHQ9PSJvYmplY3QiP3Q6e30sbD17fSxjO2ZvcihjIGluIHMpaWYoYjQuY2FsbChzLGMpKXtsZXQgdT1zW2NdLGQ9QVhlKGUsRVhlKG4sYyksYyx1KTtkPT1udWxsJiYoZD1BWGUoZSxFWGUobyxjKSxjLHUpKSxkIT1udWxsJiYobFtjXT1kKX1pZihhJiZiNC5jYWxsKGEscikpe2xldCB1PWFbcl07Zm9yKGMgaW4gdSliNC5jYWxsKHUsYykmJiFiNC5jYWxsKGwsYykmJihsW2NdPXVbY10pfXJldHVybiBsfWZ1bmN0aW9uIEFYZShlLHQscixpKXtyZXR1cm4gdD9BcnJheS5pc0FycmF5KGkpP2pxcihlLHQscixpKTpEWGUoZSx0LHIsaSk6dm9pZCAwfWZ1bmN0aW9uIGpxcihlLHQscixpKXtsZXQgYT0tMSxuPVtdO2Zvcig7KythPGkubGVuZ3RoOyl7bGV0IG89RFhlKGUsdCxyLGlbYV0pOyh0eXBlb2Ygbz09Im51bWJlciJ8fHR5cGVvZiBvPT0ic3RyaW5nIikmJm4ucHVzaChvKX1yZXR1cm4gbn1mdW5jdGlvbiBEWGUoZSx0LHIsaSl7aWYoISh0eXBlb2YgaSE9ImJvb2xlYW4iJiZ0eXBlb2YgaSE9Im51bWJlciImJnR5cGVvZiBpIT0ic3RyaW5nIikmJlZxcihlLHIsaSkpe2lmKHR5cGVvZiB0PT0ib2JqZWN0IiYmdC5sZW5ndGg+MSl7bGV0IGE9ITEsbj0wO2Zvcig7KytuPHQubGVuZ3RoOyl7bGV0IG89dFtuXTtpZihvJiZ0eXBlb2Ygbz09Im9iamVjdCImJiJmbGFncyJpbiBvKXtpZihvLnRlc3QoU3RyaW5nKGkpKSl7YT0hMDticmVha319ZWxzZSBpZihvPT09aSl7YT0hMDticmVha319aWYoIWEpcmV0dXJufXJldHVybiBlLnNjaGVtYS5jbG9iYmVyJiZlLnNjaGVtYS5jbG9iYmVyUHJlZml4JiZlLnNjaGVtYS5jbG9iYmVyLmluY2x1ZGVzKHIpP2Uuc2NoZW1hLmNsb2JiZXJQcmVmaXgraTppfX1mdW5jdGlvbiBWcXIoZSx0LHIpe2xldCBpPWUuc2NoZW1hLnByb3RvY29scyYmYjQuY2FsbChlLnNjaGVtYS5wcm90b2NvbHMsdCk/ZS5zY2hlbWEucHJvdG9jb2xzW3RdOnZvaWQgMDtpZighaXx8aS5sZW5ndGg9PT0wKXJldHVybiEwO2xldCBhPVN0cmluZyhyKSxuPWEuaW5kZXhPZigiOiIpLG89YS5pbmRleE9mKCI/Iikscz1hLmluZGV4T2YoIiMiKSxsPWEuaW5kZXhPZigiLyIpO2lmKG48MHx8bD4tMSYmbj5sfHxvPi0xJiZuPm98fHM+LTEmJm4+cylyZXR1cm4hMDtsZXQgYz0tMTtmb3IoOysrYzxpLmxlbmd0aDspe2xldCB1PWlbY107aWYobj09PXUubGVuZ3RoJiZhLnNsaWNlKDAsdS5sZW5ndGgpPT09dSlyZXR1cm4hMH1yZXR1cm4hMX1mdW5jdGlvbiBYOShlLHQpe2xldCByPVo5KHQpO3QuZGF0YSYmKGUuZGF0YT1nNCh0LmRhdGEpKSxyJiYoZS5wb3NpdGlvbj1yKX1mdW5jdGlvbiBFWGUoZSx0KXtsZXQgcixpPS0xO2lmKGUpZm9yKDsrK2k8ZS5sZW5ndGg7KXtsZXQgYT1lW2ldLG49dHlwZW9mIGE9PSJzdHJpbmciP2E6YVswXTtpZihuPT09dClyZXR1cm4gYTtuPT09ImRhdGEqIiYmKHI9YSl9aWYodC5sZW5ndGg+NCYmdC5zbGljZSgwLDQpLnRvTG93ZXJDYXNlKCk9PT0iZGF0YSIpcmV0dXJuIHJ9dmFyIGI0LCRYZT1wKCgpPT57b0woKTtjTCgpO2tyZSgpO2I0PXt9Lmhhc093blByb3BlcnR5fSk7dmFyIElYZT1wKCgpPT57JFhlKCk7a3JlKCl9KTtmdW5jdGlvbiBQWGUoZSx0KXtsZXQgcj17dHlwZToiZWxlbWVudCIsdGFnTmFtZToiYmxvY2txdW90ZSIscHJvcGVydGllczp7fSxjaGlsZHJlbjplLndyYXAoZS5hbGwodCksITApfTtyZXR1cm4gZS5wYXRjaCh0LHIpLGUuYXBwbHlEYXRhKHQscil9dmFyIE5YZT1wKCgpPT57fSk7ZnVuY3Rpb24gRlhlKGUsdCl7bGV0IHI9e3R5cGU6ImVsZW1lbnQiLHRhZ05hbWU6ImJyIixwcm9wZXJ0aWVzOnt9LGNoaWxkcmVuOltdfTtyZXR1cm4gZS5wYXRjaCh0LHIpLFtlLmFwcGx5RGF0YSh0LHIpLHt0eXBlOiJ0ZXh0Iix2YWx1ZTpgCmB9XX12YXIgT1hlPXAoKCk9Pnt9KTtmdW5jdGlvbiBSWGUoZSx0KXtsZXQgcj10LnZhbHVlP3QudmFsdWUrYApgOiIiLGk9e30sYT10Lmxhbmc/dC5sYW5nLnNwbGl0KC9ccysvKTpbXTthLmxlbmd0aD4wJiYoaS5jbGFzc05hbWU9WyJsYW5ndWFnZS0iK2FbMF1dKTtsZXQgbj17dHlwZToiZWxlbWVudCIsdGFnTmFtZToiY29kZSIscHJvcGVydGllczppLGNoaWxkcmVuOlt7dHlwZToidGV4dCIsdmFsdWU6cn1dfTtyZXR1cm4gdC5tZXRhJiYobi5kYXRhPXttZXRhOnQubWV0YX0pLGUucGF0Y2godCxuKSxuPWUuYXBwbHlEYXRhKHQsbiksbj17dHlwZToiZWxlbWVudCIsdGFnTmFtZToicHJlIixwcm9wZXJ0aWVzOnt9LGNoaWxkcmVuOltuXX0sZS5wYXRjaCh0LG4pLG59dmFyIEJYZT1wKCgpPT57fSk7ZnVuY3Rpb24gSFhlKGUsdCl7bGV0IHI9e3R5cGU6ImVsZW1lbnQiLHRhZ05hbWU6ImRlbCIscHJvcGVydGllczp7fSxjaGlsZHJlbjplLmFsbCh0KX07cmV0dXJuIGUucGF0Y2godCxyKSxlLmFwcGx5RGF0YSh0LHIpfXZhciBxWGU9cCgoKT0+e30pO2Z1bmN0aW9uIGpYZShlLHQpe2xldCByPXt0eXBlOiJlbGVtZW50Iix0YWdOYW1lOiJlbSIscHJvcGVydGllczp7fSxjaGlsZHJlbjplLmFsbCh0KX07cmV0dXJuIGUucGF0Y2godCxyKSxlLmFwcGx5RGF0YSh0LHIpfXZhciBWWGU9cCgoKT0+e30pO2Z1bmN0aW9uIFVYZShlLHQpe2xldCByPXR5cGVvZiBlLm9wdGlvbnMuY2xvYmJlclByZWZpeD09InN0cmluZyI/ZS5vcHRpb25zLmNsb2JiZXJQcmVmaXg6InVzZXItY29udGVudC0iLGk9U3RyaW5nKHQuaWRlbnRpZmllcikudG9VcHBlckNhc2UoKSxhPVduKGkudG9Mb3dlckNhc2UoKSksbj1lLmZvb3Rub3RlT3JkZXIuaW5kZXhPZihpKSxvLHM9ZS5mb290bm90ZUNvdW50cy5nZXQoaSk7cz09PXZvaWQgMD8ocz0wLGUuZm9vdG5vdGVPcmRlci5wdXNoKGkpLG89ZS5mb290bm90ZU9yZGVyLmxlbmd0aCk6bz1uKzEscys9MSxlLmZvb3Rub3RlQ291bnRzLnNldChpLHMpO2xldCBsPXt0eXBlOiJlbGVtZW50Iix0YWdOYW1lOiJhIixwcm9wZXJ0aWVzOntocmVmOiIjIityKyJmbi0iK2EsaWQ6cisiZm5yZWYtIithKyhzPjE/Ii0iK3M6IiIpLGRhdGFGb290bm90ZVJlZjohMCxhcmlhRGVzY3JpYmVkQnk6WyJmb290bm90ZS1sYWJlbCJdfSxjaGlsZHJlbjpbe3R5cGU6InRleHQiLHZhbHVlOlN0cmluZyhvKX1dfTtlLnBhdGNoKHQsbCk7bGV0IGM9e3R5cGU6ImVsZW1lbnQiLHRhZ05hbWU6InN1cCIscHJvcGVydGllczp7fSxjaGlsZHJlbjpbbF19O3JldHVybiBlLnBhdGNoKHQsYyksZS5hcHBseURhdGEodCxjKX12YXIgV1hlPXAoKCk9PntZcygpfSk7ZnVuY3Rpb24gR1hlKGUsdCl7bGV0IHI9e3R5cGU6ImVsZW1lbnQiLHRhZ05hbWU6ImgiK3QuZGVwdGgscHJvcGVydGllczp7fSxjaGlsZHJlbjplLmFsbCh0KX07cmV0dXJuIGUucGF0Y2godCxyKSxlLmFwcGx5RGF0YSh0LHIpfXZhciBZWGU9cCgoKT0+e30pO2Z1bmN0aW9uIFpYZShlLHQpe2lmKGUub3B0aW9ucy5hbGxvd0Rhbmdlcm91c0h0bWwpe2xldCByPXt0eXBlOiJyYXciLHZhbHVlOnQudmFsdWV9O3JldHVybiBlLnBhdGNoKHQsciksZS5hcHBseURhdGEodCxyKX19dmFyIFhYZT1wKCgpPT57fSk7ZnVuY3Rpb24gdUwoZSx0KXtsZXQgcj10LnJlZmVyZW5jZVR5cGUsaT0iXSI7aWYocj09PSJjb2xsYXBzZWQiP2krPSJbXSI6cj09PSJmdWxsIiYmKGkrPSJbIisodC5sYWJlbHx8dC5pZGVudGlmaWVyKSsiXSIpLHQudHlwZT09PSJpbWFnZVJlZmVyZW5jZSIpcmV0dXJuW3t0eXBlOiJ0ZXh0Iix2YWx1ZToiIVsiK3QuYWx0K2l9XTtsZXQgYT1lLmFsbCh0KSxuPWFbMF07biYmbi50eXBlPT09InRleHQiP24udmFsdWU9IlsiK24udmFsdWU6YS51bnNoaWZ0KHt0eXBlOiJ0ZXh0Iix2YWx1ZToiWyJ9KTtsZXQgbz1hW2EubGVuZ3RoLTFdO3JldHVybiBvJiZvLnR5cGU9PT0idGV4dCI/by52YWx1ZSs9aTphLnB1c2goe3R5cGU6InRleHQiLHZhbHVlOml9KSxhfXZhciB6cmU9cCgoKT0+e30pO2Z1bmN0aW9uIFFYZShlLHQpe2xldCByPVN0cmluZyh0LmlkZW50aWZpZXIpLnRvVXBwZXJDYXNlKCksaT1lLmRlZmluaXRpb25CeUlkLmdldChyKTtpZighaSlyZXR1cm4gdUwoZSx0KTtsZXQgYT17c3JjOlduKGkudXJsfHwiIiksYWx0OnQuYWx0fTtpLnRpdGxlIT09bnVsbCYmaS50aXRsZSE9PXZvaWQgMCYmKGEudGl0bGU9aS50aXRsZSk7bGV0IG49e3R5cGU6ImVsZW1lbnQiLHRhZ05hbWU6ImltZyIscHJvcGVydGllczphLGNoaWxkcmVuOltdfTtyZXR1cm4gZS5wYXRjaCh0LG4pLGUuYXBwbHlEYXRhKHQsbil9dmFyIEpYZT1wKCgpPT57WXMoKTt6cmUoKX0pO2Z1bmN0aW9uIEtYZShlLHQpe2xldCByPXtzcmM6V24odC51cmwpfTt0LmFsdCE9PW51bGwmJnQuYWx0IT09dm9pZCAwJiYoci5hbHQ9dC5hbHQpLHQudGl0bGUhPT1udWxsJiZ0LnRpdGxlIT09dm9pZCAwJiYoci50aXRsZT10LnRpdGxlKTtsZXQgaT17dHlwZToiZWxlbWVudCIsdGFnTmFtZToiaW1nIixwcm9wZXJ0aWVzOnIsY2hpbGRyZW46W119O3JldHVybiBlLnBhdGNoKHQsaSksZS5hcHBseURhdGEodCxpKX12YXIgZVFlPXAoKCk9PntZcygpfSk7ZnVuY3Rpb24gdFFlKGUsdCl7bGV0IHI9e3R5cGU6InRleHQiLHZhbHVlOnQudmFsdWUucmVwbGFjZSgvXHI/XG58XHIvZywiICIpfTtlLnBhdGNoKHQscik7bGV0IGk9e3R5cGU6ImVsZW1lbnQiLHRhZ05hbWU6ImNvZGUiLHByb3BlcnRpZXM6e30sY2hpbGRyZW46W3JdfTtyZXR1cm4gZS5wYXRjaCh0LGkpLGUuYXBwbHlEYXRhKHQsaSl9dmFyIHJRZT1wKCgpPT57fSk7ZnVuY3Rpb24gaVFlKGUsdCl7bGV0IHI9U3RyaW5nKHQuaWRlbnRpZmllcikudG9VcHBlckNhc2UoKSxpPWUuZGVmaW5pdGlvbkJ5SWQuZ2V0KHIpO2lmKCFpKXJldHVybiB1TChlLHQpO2xldCBhPXtocmVmOlduKGkudXJsfHwiIil9O2kudGl0bGUhPT1udWxsJiZpLnRpdGxlIT09dm9pZCAwJiYoYS50aXRsZT1pLnRpdGxlKTtsZXQgbj17dHlwZToiZWxlbWVudCIsdGFnTmFtZToiYSIscHJvcGVydGllczphLGNoaWxkcmVuOmUuYWxsKHQpfTtyZXR1cm4gZS5wYXRjaCh0LG4pLGUuYXBwbHlEYXRhKHQsbil9dmFyIGFRZT1wKCgpPT57WXMoKTt6cmUoKX0pO2Z1bmN0aW9uIG5RZShlLHQpe2xldCByPXtocmVmOlduKHQudXJsKX07dC50aXRsZSE9PW51bGwmJnQudGl0bGUhPT12b2lkIDAmJihyLnRpdGxlPXQudGl0bGUpO2xldCBpPXt0eXBlOiJlbGVtZW50Iix0YWdOYW1lOiJhIixwcm9wZXJ0aWVzOnIsY2hpbGRyZW46ZS5hbGwodCl9O3JldHVybiBlLnBhdGNoKHQsaSksZS5hcHBseURhdGEodCxpKX12YXIgb1FlPXAoKCk9PntZcygpfSk7ZnVuY3Rpb24gbFFlKGUsdCxyKXtsZXQgaT1lLmFsbCh0KSxhPXI/VXFyKHIpOnNRZSh0KSxuPXt9LG89W107aWYodHlwZW9mIHQuY2hlY2tlZD09ImJvb2xlYW4iKXtsZXQgdT1pWzBdLGQ7dSYmdS50eXBlPT09ImVsZW1lbnQiJiZ1LnRhZ05hbWU9PT0icCI/ZD11OihkPXt0eXBlOiJlbGVtZW50Iix0YWdOYW1lOiJwIixwcm9wZXJ0aWVzOnt9LGNoaWxkcmVuOltdfSxpLnVuc2hpZnQoZCkpLGQuY2hpbGRyZW4ubGVuZ3RoPjAmJmQuY2hpbGRyZW4udW5zaGlmdCh7dHlwZToidGV4dCIsdmFsdWU6IiAifSksZC5jaGlsZHJlbi51bnNoaWZ0KHt0eXBlOiJlbGVtZW50Iix0YWdOYW1lOiJpbnB1dCIscHJvcGVydGllczp7dHlwZToiY2hlY2tib3giLGNoZWNrZWQ6dC5jaGVja2VkLGRpc2FibGVkOiEwfSxjaGlsZHJlbjpbXX0pLG4uY2xhc3NOYW1lPVsidGFzay1saXN0LWl0ZW0iXX1sZXQgcz0tMTtmb3IoOysrczxpLmxlbmd0aDspe2xldCB1PWlbc107KGF8fHMhPT0wfHx1LnR5cGUhPT0iZWxlbWVudCJ8fHUudGFnTmFtZSE9PSJwIikmJm8ucHVzaCh7dHlwZToidGV4dCIsdmFsdWU6YApgfSksdS50eXBlPT09ImVsZW1lbnQiJiZ1LnRhZ05hbWU9PT0icCImJiFhP28ucHVzaCguLi51LmNoaWxkcmVuKTpvLnB1c2godSl9bGV0IGw9aVtpLmxlbmd0aC0xXTtsJiYoYXx8bC50eXBlIT09ImVsZW1lbnQifHxsLnRhZ05hbWUhPT0icCIpJiZvLnB1c2goe3R5cGU6InRleHQiLHZhbHVlOmAKYH0pO2xldCBjPXt0eXBlOiJlbGVtZW50Iix0YWdOYW1lOiJsaSIscHJvcGVydGllczpuLGNoaWxkcmVuOm99O3JldHVybiBlLnBhdGNoKHQsYyksZS5hcHBseURhdGEodCxjKX1mdW5jdGlvbiBVcXIoZSl7bGV0IHQ9ITE7aWYoZS50eXBlPT09Imxpc3QiKXt0PWUuc3ByZWFkfHwhMTtsZXQgcj1lLmNoaWxkcmVuLGk9LTE7Zm9yKDshdCYmKytpPHIubGVuZ3RoOyl0PXNRZShyW2ldKX1yZXR1cm4gdH1mdW5jdGlvbiBzUWUoZSl7bGV0IHQ9ZS5zcHJlYWQ7cmV0dXJuIHQ/P2UuY2hpbGRyZW4ubGVuZ3RoPjF9dmFyIGNRZT1wKCgpPT57fSk7ZnVuY3Rpb24gZFFlKGUsdCl7bGV0IHI9e30saT1lLmFsbCh0KSxhPS0xO2Zvcih0eXBlb2YgdC5zdGFydD09Im51bWJlciImJnQuc3RhcnQhPT0xJiYoci5zdGFydD10LnN0YXJ0KTsrK2E8aS5sZW5ndGg7KXtsZXQgbz1pW2FdO2lmKG8udHlwZT09PSJlbGVtZW50IiYmby50YWdOYW1lPT09ImxpIiYmby5wcm9wZXJ0aWVzJiZBcnJheS5pc0FycmF5KG8ucHJvcGVydGllcy5jbGFzc05hbWUpJiZvLnByb3BlcnRpZXMuY2xhc3NOYW1lLmluY2x1ZGVzKCJ0YXNrLWxpc3QtaXRlbSIpKXtyLmNsYXNzTmFtZT1bImNvbnRhaW5zLXRhc2stbGlzdCJdO2JyZWFrfX1sZXQgbj17dHlwZToiZWxlbWVudCIsdGFnTmFtZTp0Lm9yZGVyZWQ/Im9sIjoidWwiLHByb3BlcnRpZXM6cixjaGlsZHJlbjplLndyYXAoaSwhMCl9O3JldHVybiBlLnBhdGNoKHQsbiksZS5hcHBseURhdGEodCxuKX12YXIgdVFlPXAoKCk9Pnt9KTtmdW5jdGlvbiBwUWUoZSx0KXtsZXQgcj17dHlwZToiZWxlbWVudCIsdGFnTmFtZToicCIscHJvcGVydGllczp7fSxjaGlsZHJlbjplLmFsbCh0KX07cmV0dXJuIGUucGF0Y2godCxyKSxlLmFwcGx5RGF0YSh0LHIpfXZhciBoUWU9cCgoKT0+e30pO2Z1bmN0aW9uIGZRZShlLHQpe2xldCByPXt0eXBlOiJyb290IixjaGlsZHJlbjplLndyYXAoZS5hbGwodCkpfTtyZXR1cm4gZS5wYXRjaCh0LHIpLGUuYXBwbHlEYXRhKHQscil9dmFyIG1RZT1wKCgpPT57fSk7ZnVuY3Rpb24gZ1FlKGUsdCl7bGV0IHI9e3R5cGU6ImVsZW1lbnQiLHRhZ05hbWU6InN0cm9uZyIscHJvcGVydGllczp7fSxjaGlsZHJlbjplLmFsbCh0KX07cmV0dXJuIGUucGF0Y2godCxyKSxlLmFwcGx5RGF0YSh0LHIpfXZhciBiUWU9cCgoKT0+e30pO2Z1bmN0aW9uIHZRZShlLHQpe2xldCByPWUuYWxsKHQpLGk9ci5zaGlmdCgpLGE9W107aWYoaSl7bGV0IG89e3R5cGU6ImVsZW1lbnQiLHRhZ05hbWU6InRoZWFkIixwcm9wZXJ0aWVzOnt9LGNoaWxkcmVuOmUud3JhcChbaV0sITApfTtlLnBhdGNoKHQuY2hpbGRyZW5bMF0sbyksYS5wdXNoKG8pfWlmKHIubGVuZ3RoPjApe2xldCBvPXt0eXBlOiJlbGVtZW50Iix0YWdOYW1lOiJ0Ym9keSIscHJvcGVydGllczp7fSxjaGlsZHJlbjplLndyYXAociwhMCl9LHM9bEwodC5jaGlsZHJlblsxXSksbD1zTCh0LmNoaWxkcmVuW3QuY2hpbGRyZW4ubGVuZ3RoLTFdKTtzJiZsJiYoby5wb3NpdGlvbj17c3RhcnQ6cyxlbmQ6bH0pLGEucHVzaChvKX1sZXQgbj17dHlwZToiZWxlbWVudCIsdGFnTmFtZToidGFibGUiLHByb3BlcnRpZXM6e30sY2hpbGRyZW46ZS53cmFwKGEsITApfTtyZXR1cm4gZS5wYXRjaCh0LG4pLGUuYXBwbHlEYXRhKHQsbil9dmFyIHhRZT1wKCgpPT57Y0woKX0pO2Z1bmN0aW9uIHlRZShlLHQscil7bGV0IGk9cj9yLmNoaWxkcmVuOnZvaWQgMCxuPShpP2kuaW5kZXhPZih0KToxKT09PTA/InRoIjoidGQiLG89ciYmci50eXBlPT09InRhYmxlIj9yLmFsaWduOnZvaWQgMCxzPW8/by5sZW5ndGg6dC5jaGlsZHJlbi5sZW5ndGgsbD0tMSxjPVtdO2Zvcig7KytsPHM7KXtsZXQgZD10LmNoaWxkcmVuW2xdLGg9e30sZj1vP29bbF06dm9pZCAwO2YmJihoLmFsaWduPWYpO2xldCB4PXt0eXBlOiJlbGVtZW50Iix0YWdOYW1lOm4scHJvcGVydGllczpoLGNoaWxkcmVuOltdfTtkJiYoeC5jaGlsZHJlbj1lLmFsbChkKSxlLnBhdGNoKGQseCkseD1lLmFwcGx5RGF0YShkLHgpKSxjLnB1c2goeCl9bGV0IHU9e3R5cGU6ImVsZW1lbnQiLHRhZ05hbWU6InRyIixwcm9wZXJ0aWVzOnt9LGNoaWxkcmVuOmUud3JhcChjLCEwKX07cmV0dXJuIGUucGF0Y2godCx1KSxlLmFwcGx5RGF0YSh0LHUpfXZhciB3UWU9cCgoKT0+e30pO2Z1bmN0aW9uIE1RZShlLHQpe2xldCByPXt0eXBlOiJlbGVtZW50Iix0YWdOYW1lOiJ0ZCIscHJvcGVydGllczp7fSxjaGlsZHJlbjplLmFsbCh0KX07cmV0dXJuIGUucGF0Y2godCxyKSxlLmFwcGx5RGF0YSh0LHIpfXZhciBrUWU9cCgoKT0+e30pO2Z1bmN0aW9uIHpRZShlKXtsZXQgdD1TdHJpbmcoZSkscj0vXHI/XG58XHIvZyxpPXIuZXhlYyh0KSxhPTAsbj1bXTtmb3IoO2k7KW4ucHVzaChTUWUodC5zbGljZShhLGkuaW5kZXgpLGE+MCwhMCksaVswXSksYT1pLmluZGV4K2lbMF0ubGVuZ3RoLGk9ci5leGVjKHQpO3JldHVybiBuLnB1c2goU1FlKHQuc2xpY2UoYSksYT4wLCExKSksbi5qb2luKCIiKX1mdW5jdGlvbiBTUWUoZSx0LHIpe2xldCBpPTAsYT1lLmxlbmd0aDtpZih0KXtsZXQgbj1lLmNvZGVQb2ludEF0KGkpO2Zvcig7bj09PTl8fG49PT0zMjspaSsrLG49ZS5jb2RlUG9pbnRBdChpKX1pZihyKXtsZXQgbj1lLmNvZGVQb2ludEF0KGEtMSk7Zm9yKDtuPT09OXx8bj09PTMyOylhLS0sbj1lLmNvZGVQb2ludEF0KGEtMSl9cmV0dXJuIGE+aT9lLnNsaWNlKGksYSk6IiJ9dmFyIHNWaSxsVmksQ1FlPXAoKCk9PntzVmk9OSxsVmk9MzJ9KTtmdW5jdGlvbiBUUWUoZSx0KXtsZXQgcj17dHlwZToidGV4dCIsdmFsdWU6elFlKFN0cmluZyh0LnZhbHVlKSl9O3JldHVybiBlLnBhdGNoKHQsciksZS5hcHBseURhdGEodCxyKX12YXIgX1FlPXAoKCk9PntDUWUoKX0pO2Z1bmN0aW9uIExRZShlLHQpe2xldCByPXt0eXBlOiJlbGVtZW50Iix0YWdOYW1lOiJociIscHJvcGVydGllczp7fSxjaGlsZHJlbjpbXX07cmV0dXJuIGUucGF0Y2godCxyKSxlLmFwcGx5RGF0YSh0LHIpfXZhciBBUWU9cCgoKT0+e30pO2Z1bmN0aW9uIHBMKCl7fXZhciBDcmUsVHJlPXAoKCk9PntOWGUoKTtPWGUoKTtCWGUoKTtxWGUoKTtWWGUoKTtXWGUoKTtZWGUoKTtYWGUoKTtKWGUoKTtlUWUoKTtyUWUoKTthUWUoKTtvUWUoKTtjUWUoKTt1UWUoKTtoUWUoKTttUWUoKTtiUWUoKTt4UWUoKTt3UWUoKTtrUWUoKTtfUWUoKTtBUWUoKTtDcmU9e2Jsb2NrcXVvdGU6UFhlLGJyZWFrOkZYZSxjb2RlOlJYZSxkZWxldGU6SFhlLGVtcGhhc2lzOmpYZSxmb290bm90ZVJlZmVyZW5jZTpVWGUsaGVhZGluZzpHWGUsaHRtbDpaWGUsaW1hZ2VSZWZlcmVuY2U6UVhlLGltYWdlOktYZSxpbmxpbmVDb2RlOnRRZSxsaW5rUmVmZXJlbmNlOmlRZSxsaW5rOm5RZSxsaXN0SXRlbTpsUWUsbGlzdDpkUWUscGFyYWdyYXBoOnBRZSxyb290OmZRZSxzdHJvbmc6Z1FlLHRhYmxlOnZRZSx0YWJsZUNlbGw6TVFlLHRhYmxlUm93OnlRZSx0ZXh0OlRRZSx0aGVtYXRpY0JyZWFrOkxRZSx0b21sOnBMLHlhbWw6cEwsZGVmaW5pdGlvbjpwTCxmb290bm90ZURlZmluaXRpb246cEx9fSk7ZnVuY3Rpb24gRFFlKGUsdCl7bGV0IHI9W3t0eXBlOiJ0ZXh0Iix2YWx1ZToiXHUyMUE5In1dO3JldHVybiB0PjEmJnIucHVzaCh7dHlwZToiZWxlbWVudCIsdGFnTmFtZToic3VwIixwcm9wZXJ0aWVzOnt9LGNoaWxkcmVuOlt7dHlwZToidGV4dCIsdmFsdWU6U3RyaW5nKHQpfV19KSxyfWZ1bmN0aW9uIEVRZShlLHQpe3JldHVybiJCYWNrIHRvIHJlZmVyZW5jZSAiKyhlKzEpKyh0PjE/Ii0iK3Q6IiIpfWZ1bmN0aW9uICRRZShlKXtsZXQgdD10eXBlb2YgZS5vcHRpb25zLmNsb2JiZXJQcmVmaXg9PSJzdHJpbmciP2Uub3B0aW9ucy5jbG9iYmVyUHJlZml4OiJ1c2VyLWNvbnRlbnQtIixyPWUub3B0aW9ucy5mb290bm90ZUJhY2tDb250ZW50fHxEUWUsaT1lLm9wdGlvbnMuZm9vdG5vdGVCYWNrTGFiZWx8fEVRZSxhPWUub3B0aW9ucy5mb290bm90ZUxhYmVsfHwiRm9vdG5vdGVzIixuPWUub3B0aW9ucy5mb290bm90ZUxhYmVsVGFnTmFtZXx8ImgyIixvPWUub3B0aW9ucy5mb290bm90ZUxhYmVsUHJvcGVydGllc3x8e2NsYXNzTmFtZTpbInNyLW9ubHkiXX0scz1bXSxsPS0xO2Zvcig7KytsPGUuZm9vdG5vdGVPcmRlci5sZW5ndGg7KXtsZXQgYz1lLmZvb3Rub3RlQnlJZC5nZXQoZS5mb290bm90ZU9yZGVyW2xdKTtpZighYyljb250aW51ZTtsZXQgdT1lLmFsbChjKSxkPVN0cmluZyhjLmlkZW50aWZpZXIpLnRvVXBwZXJDYXNlKCksaD1XbihkLnRvTG93ZXJDYXNlKCkpLGY9MCx4PVtdLHY9ZS5mb290bm90ZUNvdW50cy5nZXQoZCk7Zm9yKDt2IT09dm9pZCAwJiYrK2Y8PXY7KXt4Lmxlbmd0aD4wJiZ4LnB1c2goe3R5cGU6InRleHQiLHZhbHVlOiIgIn0pO2xldCB3PXR5cGVvZiByPT0ic3RyaW5nIj9yOnIobCxmKTt0eXBlb2Ygdz09InN0cmluZyImJih3PXt0eXBlOiJ0ZXh0Iix2YWx1ZTp3fSkseC5wdXNoKHt0eXBlOiJlbGVtZW50Iix0YWdOYW1lOiJhIixwcm9wZXJ0aWVzOntocmVmOiIjIit0KyJmbnJlZi0iK2grKGY+MT8iLSIrZjoiIiksZGF0YUZvb3Rub3RlQmFja3JlZjoiIixhcmlhTGFiZWw6dHlwZW9mIGk9PSJzdHJpbmciP2k6aShsLGYpLGNsYXNzTmFtZTpbImRhdGEtZm9vdG5vdGUtYmFja3JlZiJdfSxjaGlsZHJlbjpBcnJheS5pc0FycmF5KHcpP3c6W3ddfSl9bGV0IGI9dVt1Lmxlbmd0aC0xXTtpZihiJiZiLnR5cGU9PT0iZWxlbWVudCImJmIudGFnTmFtZT09PSJwIil7bGV0IHc9Yi5jaGlsZHJlbltiLmNoaWxkcmVuLmxlbmd0aC0xXTt3JiZ3LnR5cGU9PT0idGV4dCI/dy52YWx1ZSs9IiAiOmIuY2hpbGRyZW4ucHVzaCh7dHlwZToidGV4dCIsdmFsdWU6IiAifSksYi5jaGlsZHJlbi5wdXNoKC4uLngpfWVsc2UgdS5wdXNoKC4uLngpO2xldCB5PXt0eXBlOiJlbGVtZW50Iix0YWdOYW1lOiJsaSIscHJvcGVydGllczp7aWQ6dCsiZm4tIitofSxjaGlsZHJlbjplLndyYXAodSwhMCl9O2UucGF0Y2goYyx5KSxzLnB1c2goeSl9aWYocy5sZW5ndGghPT0wKXJldHVybnt0eXBlOiJlbGVtZW50Iix0YWdOYW1lOiJzZWN0aW9uIixwcm9wZXJ0aWVzOntkYXRhRm9vdG5vdGVzOiEwLGNsYXNzTmFtZTpbImZvb3Rub3RlcyJdfSxjaGlsZHJlbjpbe3R5cGU6ImVsZW1lbnQiLHRhZ05hbWU6bixwcm9wZXJ0aWVzOnsuLi5nNChvKSxpZDoiZm9vdG5vdGUtbGFiZWwifSxjaGlsZHJlbjpbe3R5cGU6InRleHQiLHZhbHVlOmF9XX0se3R5cGU6InRleHQiLHZhbHVlOmAKYH0se3R5cGU6ImVsZW1lbnQiLHRhZ05hbWU6Im9sIixwcm9wZXJ0aWVzOnt9LGNoaWxkcmVuOmUud3JhcChzLCEwKX0se3R5cGU6InRleHQiLHZhbHVlOmAKYH1dfX12YXIgX3JlPXAoKCk9PntvTCgpO1lzKCl9KTtmdW5jdGlvbiBQUWUoZSx0KXtsZXQgcj10fHxXcXIsaT1uZXcgTWFwLGE9bmV3IE1hcCxuPW5ldyBNYXAsbz17Li4uQ3JlLC4uLnIuaGFuZGxlcnN9LHM9e2FsbDpjLGFwcGx5RGF0YTpZcXIsZGVmaW5pdGlvbkJ5SWQ6aSxmb290bm90ZUJ5SWQ6YSxmb290bm90ZUNvdW50czpuLGZvb3Rub3RlT3JkZXI6W10saGFuZGxlcnM6byxvbmU6bCxvcHRpb25zOnIscGF0Y2g6R3FyLHdyYXA6WHFyfTtyZXR1cm4gSTkoZSxmdW5jdGlvbih1KXtpZih1LnR5cGU9PT0iZGVmaW5pdGlvbiJ8fHUudHlwZT09PSJmb290bm90ZURlZmluaXRpb24iKXtsZXQgZD11LnR5cGU9PT0iZGVmaW5pdGlvbiI/aTphLGg9U3RyaW5nKHUuaWRlbnRpZmllcikudG9VcHBlckNhc2UoKTtkLmhhcyhoKXx8ZC5zZXQoaCx1KX19KSxzO2Z1bmN0aW9uIGwodSxkKXtsZXQgaD11LnR5cGUsZj1zLmhhbmRsZXJzW2hdO2lmKExyZS5jYWxsKHMuaGFuZGxlcnMsaCkmJmYpcmV0dXJuIGYocyx1LGQpO2lmKHMub3B0aW9ucy5wYXNzVGhyb3VnaCYmcy5vcHRpb25zLnBhc3NUaHJvdWdoLmluY2x1ZGVzKGgpKXtpZigiY2hpbGRyZW4iaW4gdSl7bGV0e2NoaWxkcmVuOnYsLi4uYn09dSx5PWc0KGIpO3JldHVybiB5LmNoaWxkcmVuPXMuYWxsKHUpLHl9cmV0dXJuIGc0KHUpfXJldHVybihzLm9wdGlvbnMudW5rbm93bkhhbmRsZXJ8fFpxcikocyx1LGQpfWZ1bmN0aW9uIGModSl7bGV0IGQ9W107aWYoImNoaWxkcmVuImluIHUpe2xldCBoPXUuY2hpbGRyZW4sZj0tMTtmb3IoOysrZjxoLmxlbmd0aDspe2xldCB4PXMub25lKGhbZl0sdSk7aWYoeCl7aWYoZiYmaFtmLTFdLnR5cGU9PT0iYnJlYWsiJiYoIUFycmF5LmlzQXJyYXkoeCkmJngudHlwZT09PSJ0ZXh0IiYmKHgudmFsdWU9SVFlKHgudmFsdWUpKSwhQXJyYXkuaXNBcnJheSh4KSYmeC50eXBlPT09ImVsZW1lbnQiKSl7bGV0IHY9eC5jaGlsZHJlblswXTt2JiZ2LnR5cGU9PT0idGV4dCImJih2LnZhbHVlPUlRZSh2LnZhbHVlKSl9QXJyYXkuaXNBcnJheSh4KT9kLnB1c2goLi4ueCk6ZC5wdXNoKHgpfX19cmV0dXJuIGR9fWZ1bmN0aW9uIEdxcihlLHQpe2UucG9zaXRpb24mJih0LnBvc2l0aW9uPVo5KGUpKX1mdW5jdGlvbiBZcXIoZSx0KXtsZXQgcj10O2lmKGUmJmUuZGF0YSl7bGV0IGk9ZS5kYXRhLmhOYW1lLGE9ZS5kYXRhLmhDaGlsZHJlbixuPWUuZGF0YS5oUHJvcGVydGllcztpZih0eXBlb2YgaT09InN0cmluZyIpaWYoci50eXBlPT09ImVsZW1lbnQiKXIudGFnTmFtZT1pO2Vsc2V7bGV0IG89ImNoaWxkcmVuImluIHI/ci5jaGlsZHJlbjpbcl07cj17dHlwZToiZWxlbWVudCIsdGFnTmFtZTppLHByb3BlcnRpZXM6e30sY2hpbGRyZW46b319ci50eXBlPT09ImVsZW1lbnQiJiZuJiZPYmplY3QuYXNzaWduKHIucHJvcGVydGllcyxnNChuKSksImNoaWxkcmVuImluIHImJnIuY2hpbGRyZW4mJmEhPT1udWxsJiZhIT09dm9pZCAwJiYoci5jaGlsZHJlbj1hKX1yZXR1cm4gcn1mdW5jdGlvbiBacXIoZSx0KXtsZXQgcj10LmRhdGF8fHt9LGk9InZhbHVlImluIHQmJiEoTHJlLmNhbGwociwiaFByb3BlcnRpZXMiKXx8THJlLmNhbGwociwiaENoaWxkcmVuIikpP3t0eXBlOiJ0ZXh0Iix2YWx1ZTp0LnZhbHVlfTp7dHlwZToiZWxlbWVudCIsdGFnTmFtZToiZGl2Iixwcm9wZXJ0aWVzOnt9LGNoaWxkcmVuOmUuYWxsKHQpfTtyZXR1cm4gZS5wYXRjaCh0LGkpLGUuYXBwbHlEYXRhKHQsaSl9ZnVuY3Rpb24gWHFyKGUsdCl7bGV0IHI9W10saT0tMTtmb3IodCYmci5wdXNoKHt0eXBlOiJ0ZXh0Iix2YWx1ZTpgCmB9KTsrK2k8ZS5sZW5ndGg7KWkmJnIucHVzaCh7dHlwZToidGV4dCIsdmFsdWU6YApgfSksci5wdXNoKGVbaV0pO3JldHVybiB0JiZlLmxlbmd0aD4wJiZyLnB1c2goe3R5cGU6InRleHQiLHZhbHVlOmAKYH0pLHJ9ZnVuY3Rpb24gSVFlKGUpe2xldCB0PTAscj1lLmNoYXJDb2RlQXQodCk7Zm9yKDtyPT09OXx8cj09PTMyOyl0Kysscj1lLmNoYXJDb2RlQXQodCk7cmV0dXJuIGUuc2xpY2UodCl9dmFyIExyZSxXcXIsTlFlPXAoKCk9PntvTCgpO2V0ZSgpO2NMKCk7VHJlKCk7THJlPXt9Lmhhc093blByb3BlcnR5LFdxcj17fX0pO2Z1bmN0aW9uIEFyZShlLHQpe2xldCByPVBRZShlLHQpLGk9ci5vbmUoZSx2b2lkIDApLGE9JFFlKHIpLG49QXJyYXkuaXNBcnJheShpKT97dHlwZToicm9vdCIsY2hpbGRyZW46aX06aXx8e3R5cGU6InJvb3QiLGNoaWxkcmVuOltdfTtyZXR1cm4gYSYmKCJjaGlsZHJlbiJpbiBuLG4uY2hpbGRyZW4ucHVzaCh7dHlwZToidGV4dCIsdmFsdWU6YApgfSxhKSksbn12YXIgRlFlPXAoKCk9PntjNCgpO19yZSgpO05RZSgpfSk7dmFyIE9RZT1wKCgpPT57VHJlKCk7RlFlKCk7X3JlKCl9KTt2YXIgUlFlLEJRZT1wKCgpPT57UlFlPVsiYXJlYSIsImJhc2UiLCJiYXNlZm9udCIsImJnc291bmQiLCJiciIsImNvbCIsImNvbW1hbmQiLCJlbWJlZCIsImZyYW1lIiwiaHIiLCJpbWFnZSIsImltZyIsImlucHV0Iiwia2V5Z2VuIiwibGluayIsIm1ldGEiLCJwYXJhbSIsInNvdXJjZSIsInRyYWNrIiwid2JyIl19KTt2YXIgb2MsRHJlPXAoKCk9PntvYz1jbGFzc3tjb25zdHJ1Y3Rvcih0LHIsaSl7dGhpcy5ub3JtYWw9cix0aGlzLnByb3BlcnR5PXQsaSYmKHRoaXMuc3BhY2U9aSl9fTtvYy5wcm90b3R5cGUubm9ybWFsPXt9LG9jLnByb3RvdHlwZS5wcm9wZXJ0eT17fSxvYy5wcm90b3R5cGUuc3BhY2U9dm9pZCAwfSk7ZnVuY3Rpb24gRXJlKGUsdCl7bGV0IHI9e30saT17fTtmb3IobGV0IGEgb2YgZSlPYmplY3QuYXNzaWduKHIsYS5wcm9wZXJ0eSksT2JqZWN0LmFzc2lnbihpLGEubm9ybWFsKTtyZXR1cm4gbmV3IG9jKHIsaSx0KX12YXIgSFFlPXAoKCk9PntEcmUoKX0pO2Z1bmN0aW9uIHZwKGUpe3JldHVybiBlLnRvTG93ZXJDYXNlKCl9dmFyIGhMPXAoKCk9Pnt9KTt2YXIgRmksJHJlPXAoKCk9PntGaT1jbGFzc3tjb25zdHJ1Y3Rvcih0LHIpe3RoaXMuYXR0cmlidXRlPXIsdGhpcy5wcm9wZXJ0eT10fX07RmkucHJvdG90eXBlLmF0dHJpYnV0ZT0iIixGaS5wcm90b3R5cGUuYm9vbGVhbmlzaD0hMSxGaS5wcm90b3R5cGUuYm9vbGVhbj0hMSxGaS5wcm90b3R5cGUuY29tbWFPclNwYWNlU2VwYXJhdGVkPSExLEZpLnByb3RvdHlwZS5jb21tYVNlcGFyYXRlZD0hMSxGaS5wcm90b3R5cGUuZGVmaW5lZD0hMSxGaS5wcm90b3R5cGUubXVzdFVzZVByb3BlcnR5PSExLEZpLnByb3RvdHlwZS5udW1iZXI9ITEsRmkucHJvdG90eXBlLm92ZXJsb2FkZWRCb29sZWFuPSExLEZpLnByb3RvdHlwZS5wcm9wZXJ0eT0iIixGaS5wcm90b3R5cGUuc3BhY2VTZXBhcmF0ZWQ9ITEsRmkucHJvdG90eXBlLnNwYWNlPXZvaWQgMH0pO3ZhciBROT17fTtGZShROSx7Ym9vbGVhbjooKT0+RXQsYm9vbGVhbmlzaDooKT0+TjEsY29tbWFPclNwYWNlU2VwYXJhdGVkOigpPT5rbixjb21tYVNlcGFyYXRlZDooKT0+djQsbnVtYmVyOigpPT5xZSxvdmVybG9hZGVkQm9vbGVhbjooKT0+Zkwsc3BhY2VTZXBhcmF0ZWQ6KCk9PlVyfSk7ZnVuY3Rpb24gbWQoKXtyZXR1cm4gMioqKytRcXJ9dmFyIFFxcixFdCxOMSxmTCxxZSxVcix2NCxrbixKOT1wKCgpPT57UXFyPTAsRXQ9bWQoKSxOMT1tZCgpLGZMPW1kKCkscWU9bWQoKSxVcj1tZCgpLHY0PW1kKCksa249bWQoKX0pO2Z1bmN0aW9uIHFRZShlLHQscil7ciYmKGVbdF09cil9dmFyIElyZSxnZCxQcmU9cCgoKT0+eyRyZSgpO0o5KCk7SXJlPU9iamVjdC5rZXlzKFE5KSxnZD1jbGFzcyBleHRlbmRzIEZpe2NvbnN0cnVjdG9yKHQscixpLGEpe2xldCBuPS0xO2lmKHN1cGVyKHQscikscVFlKHRoaXMsInNwYWNlIixhKSx0eXBlb2YgaT09Im51bWJlciIpZm9yKDsrK248SXJlLmxlbmd0aDspe2xldCBvPUlyZVtuXTtxUWUodGhpcyxJcmVbbl0sKGkmUTlbb10pPT09UTlbb10pfX19O2dkLnByb3RvdHlwZS5kZWZpbmVkPSEwfSk7ZnVuY3Rpb24gX28oZSl7bGV0IHQ9e30scj17fTtmb3IobGV0W2ksYV1vZiBPYmplY3QuZW50cmllcyhlLnByb3BlcnRpZXMpKXtsZXQgbj1uZXcgZ2QoaSxlLnRyYW5zZm9ybShlLmF0dHJpYnV0ZXN8fHt9LGkpLGEsZS5zcGFjZSk7ZS5tdXN0VXNlUHJvcGVydHkmJmUubXVzdFVzZVByb3BlcnR5LmluY2x1ZGVzKGkpJiYobi5tdXN0VXNlUHJvcGVydHk9ITApLHRbaV09bixyW3ZwKGkpXT1pLHJbdnAobi5hdHRyaWJ1dGUpXT1pfXJldHVybiBuZXcgb2ModCxyLGUuc3BhY2UpfXZhciBiZD1wKCgpPT57aEwoKTtQcmUoKTtEcmUoKX0pO3ZhciBOcmUsalFlPXAoKCk9PntiZCgpO0o5KCk7TnJlPV9vKHtwcm9wZXJ0aWVzOnthcmlhQWN0aXZlRGVzY2VuZGFudDpudWxsLGFyaWFBdG9taWM6TjEsYXJpYUF1dG9Db21wbGV0ZTpudWxsLGFyaWFCdXN5Ok4xLGFyaWFDaGVja2VkOk4xLGFyaWFDb2xDb3VudDpxZSxhcmlhQ29sSW5kZXg6cWUsYXJpYUNvbFNwYW46cWUsYXJpYUNvbnRyb2xzOlVyLGFyaWFDdXJyZW50Om51bGwsYXJpYURlc2NyaWJlZEJ5OlVyLGFyaWFEZXRhaWxzOm51bGwsYXJpYURpc2FibGVkOk4xLGFyaWFEcm9wRWZmZWN0OlVyLGFyaWFFcnJvck1lc3NhZ2U6bnVsbCxhcmlhRXhwYW5kZWQ6TjEsYXJpYUZsb3dUbzpVcixhcmlhR3JhYmJlZDpOMSxhcmlhSGFzUG9wdXA6bnVsbCxhcmlhSGlkZGVuOk4xLGFyaWFJbnZhbGlkOm51bGwsYXJpYUtleVNob3J0Y3V0czpudWxsLGFyaWFMYWJlbDpudWxsLGFyaWFMYWJlbGxlZEJ5OlVyLGFyaWFMZXZlbDpxZSxhcmlhTGl2ZTpudWxsLGFyaWFNb2RhbDpOMSxhcmlhTXVsdGlMaW5lOk4xLGFyaWFNdWx0aVNlbGVjdGFibGU6TjEsYXJpYU9yaWVudGF0aW9uOm51bGwsYXJpYU93bnM6VXIsYXJpYVBsYWNlaG9sZGVyOm51bGwsYXJpYVBvc0luU2V0OnFlLGFyaWFQcmVzc2VkOk4xLGFyaWFSZWFkT25seTpOMSxhcmlhUmVsZXZhbnQ6bnVsbCxhcmlhUmVxdWlyZWQ6TjEsYXJpYVJvbGVEZXNjcmlwdGlvbjpVcixhcmlhUm93Q291bnQ6cWUsYXJpYVJvd0luZGV4OnFlLGFyaWFSb3dTcGFuOnFlLGFyaWFTZWxlY3RlZDpOMSxhcmlhU2V0U2l6ZTpxZSxhcmlhU29ydDpudWxsLGFyaWFWYWx1ZU1heDpxZSxhcmlhVmFsdWVNaW46cWUsYXJpYVZhbHVlTm93OnFlLGFyaWFWYWx1ZVRleHQ6bnVsbCxyb2xlOm51bGx9LHRyYW5zZm9ybShlLHQpe3JldHVybiB0PT09InJvbGUiP3Q6ImFyaWEtIit0LnNsaWNlKDQpLnRvTG93ZXJDYXNlKCl9fSl9KTtmdW5jdGlvbiBtTChlLHQpe3JldHVybiB0IGluIGU/ZVt0XTp0fXZhciBGcmU9cCgoKT0+e30pO2Z1bmN0aW9uIGdMKGUsdCl7cmV0dXJuIG1MKGUsdC50b0xvd2VyQ2FzZSgpKX12YXIgT3JlPXAoKCk9PntGcmUoKX0pO3ZhciBWUWUsVVFlPXAoKCk9PntPcmUoKTtiZCgpO0o5KCk7VlFlPV9vKHthdHRyaWJ1dGVzOnthY2NlcHRjaGFyc2V0OiJhY2NlcHQtY2hhcnNldCIsY2xhc3NuYW1lOiJjbGFzcyIsaHRtbGZvcjoiZm9yIixodHRwZXF1aXY6Imh0dHAtZXF1aXYifSxtdXN0VXNlUHJvcGVydHk6WyJjaGVja2VkIiwibXVsdGlwbGUiLCJtdXRlZCIsInNlbGVjdGVkIl0scHJvcGVydGllczp7YWJicjpudWxsLGFjY2VwdDp2NCxhY2NlcHRDaGFyc2V0OlVyLGFjY2Vzc0tleTpVcixhY3Rpb246bnVsbCxhbGxvdzpudWxsLGFsbG93RnVsbFNjcmVlbjpFdCxhbGxvd1BheW1lbnRSZXF1ZXN0OkV0LGFsbG93VXNlck1lZGlhOkV0LGFsdDpudWxsLGFzOm51bGwsYXN5bmM6RXQsYXV0b0NhcGl0YWxpemU6bnVsbCxhdXRvQ29tcGxldGU6VXIsYXV0b0ZvY3VzOkV0LGF1dG9QbGF5OkV0LGJsb2NraW5nOlVyLGNhcHR1cmU6bnVsbCxjaGFyU2V0Om51bGwsY2hlY2tlZDpFdCxjaXRlOm51bGwsY2xhc3NOYW1lOlVyLGNvbHM6cWUsY29sU3BhbjpudWxsLGNvbnRlbnQ6bnVsbCxjb250ZW50RWRpdGFibGU6TjEsY29udHJvbHM6RXQsY29udHJvbHNMaXN0OlVyLGNvb3JkczpxZXx2NCxjcm9zc09yaWdpbjpudWxsLGRhdGE6bnVsbCxkYXRlVGltZTpudWxsLGRlY29kaW5nOm51bGwsZGVmYXVsdDpFdCxkZWZlcjpFdCxkaXI6bnVsbCxkaXJOYW1lOm51bGwsZGlzYWJsZWQ6RXQsZG93bmxvYWQ6ZkwsZHJhZ2dhYmxlOk4xLGVuY1R5cGU6bnVsbCxlbnRlcktleUhpbnQ6bnVsbCxmZXRjaFByaW9yaXR5Om51bGwsZm9ybTpudWxsLGZvcm1BY3Rpb246bnVsbCxmb3JtRW5jVHlwZTpudWxsLGZvcm1NZXRob2Q6bnVsbCxmb3JtTm9WYWxpZGF0ZTpFdCxmb3JtVGFyZ2V0Om51bGwsaGVhZGVyczpVcixoZWlnaHQ6cWUsaGlkZGVuOmZMLGhpZ2g6cWUsaHJlZjpudWxsLGhyZWZMYW5nOm51bGwsaHRtbEZvcjpVcixodHRwRXF1aXY6VXIsaWQ6bnVsbCxpbWFnZVNpemVzOm51bGwsaW1hZ2VTcmNTZXQ6bnVsbCxpbmVydDpFdCxpbnB1dE1vZGU6bnVsbCxpbnRlZ3JpdHk6bnVsbCxpczpudWxsLGlzTWFwOkV0LGl0ZW1JZDpudWxsLGl0ZW1Qcm9wOlVyLGl0ZW1SZWY6VXIsaXRlbVNjb3BlOkV0LGl0ZW1UeXBlOlVyLGtpbmQ6bnVsbCxsYWJlbDpudWxsLGxhbmc6bnVsbCxsYW5ndWFnZTpudWxsLGxpc3Q6bnVsbCxsb2FkaW5nOm51bGwsbG9vcDpFdCxsb3c6cWUsbWFuaWZlc3Q6bnVsbCxtYXg6bnVsbCxtYXhMZW5ndGg6cWUsbWVkaWE6bnVsbCxtZXRob2Q6bnVsbCxtaW46bnVsbCxtaW5MZW5ndGg6cWUsbXVsdGlwbGU6RXQsbXV0ZWQ6RXQsbmFtZTpudWxsLG5vbmNlOm51bGwsbm9Nb2R1bGU6RXQsbm9WYWxpZGF0ZTpFdCxvbkFib3J0Om51bGwsb25BZnRlclByaW50Om51bGwsb25BdXhDbGljazpudWxsLG9uQmVmb3JlTWF0Y2g6bnVsbCxvbkJlZm9yZVByaW50Om51bGwsb25CZWZvcmVUb2dnbGU6bnVsbCxvbkJlZm9yZVVubG9hZDpudWxsLG9uQmx1cjpudWxsLG9uQ2FuY2VsOm51bGwsb25DYW5QbGF5Om51bGwsb25DYW5QbGF5VGhyb3VnaDpudWxsLG9uQ2hhbmdlOm51bGwsb25DbGljazpudWxsLG9uQ2xvc2U6bnVsbCxvbkNvbnRleHRMb3N0Om51bGwsb25Db250ZXh0TWVudTpudWxsLG9uQ29udGV4dFJlc3RvcmVkOm51bGwsb25Db3B5Om51bGwsb25DdWVDaGFuZ2U6bnVsbCxvbkN1dDpudWxsLG9uRGJsQ2xpY2s6bnVsbCxvbkRyYWc6bnVsbCxvbkRyYWdFbmQ6bnVsbCxvbkRyYWdFbnRlcjpudWxsLG9uRHJhZ0V4aXQ6bnVsbCxvbkRyYWdMZWF2ZTpudWxsLG9uRHJhZ092ZXI6bnVsbCxvbkRyYWdTdGFydDpudWxsLG9uRHJvcDpudWxsLG9uRHVyYXRpb25DaGFuZ2U6bnVsbCxvbkVtcHRpZWQ6bnVsbCxvbkVuZGVkOm51bGwsb25FcnJvcjpudWxsLG9uRm9jdXM6bnVsbCxvbkZvcm1EYXRhOm51bGwsb25IYXNoQ2hhbmdlOm51bGwsb25JbnB1dDpudWxsLG9uSW52YWxpZDpudWxsLG9uS2V5RG93bjpudWxsLG9uS2V5UHJlc3M6bnVsbCxvbktleVVwOm51bGwsb25MYW5ndWFnZUNoYW5nZTpudWxsLG9uTG9hZDpudWxsLG9uTG9hZGVkRGF0YTpudWxsLG9uTG9hZGVkTWV0YWRhdGE6bnVsbCxvbkxvYWRFbmQ6bnVsbCxvbkxvYWRTdGFydDpudWxsLG9uTWVzc2FnZTpudWxsLG9uTWVzc2FnZUVycm9yOm51bGwsb25Nb3VzZURvd246bnVsbCxvbk1vdXNlRW50ZXI6bnVsbCxvbk1vdXNlTGVhdmU6bnVsbCxvbk1vdXNlTW92ZTpudWxsLG9uTW91c2VPdXQ6bnVsbCxvbk1vdXNlT3ZlcjpudWxsLG9uTW91c2VVcDpudWxsLG9uT2ZmbGluZTpudWxsLG9uT25saW5lOm51bGwsb25QYWdlSGlkZTpudWxsLG9uUGFnZVNob3c6bnVsbCxvblBhc3RlOm51bGwsb25QYXVzZTpudWxsLG9uUGxheTpudWxsLG9uUGxheWluZzpudWxsLG9uUG9wU3RhdGU6bnVsbCxvblByb2dyZXNzOm51bGwsb25SYXRlQ2hhbmdlOm51bGwsb25SZWplY3Rpb25IYW5kbGVkOm51bGwsb25SZXNldDpudWxsLG9uUmVzaXplOm51bGwsb25TY3JvbGw6bnVsbCxvblNjcm9sbEVuZDpudWxsLG9uU2VjdXJpdHlQb2xpY3lWaW9sYXRpb246bnVsbCxvblNlZWtlZDpudWxsLG9uU2Vla2luZzpudWxsLG9uU2VsZWN0Om51bGwsb25TbG90Q2hhbmdlOm51bGwsb25TdGFsbGVkOm51bGwsb25TdG9yYWdlOm51bGwsb25TdWJtaXQ6bnVsbCxvblN1c3BlbmQ6bnVsbCxvblRpbWVVcGRhdGU6bnVsbCxvblRvZ2dsZTpudWxsLG9uVW5oYW5kbGVkUmVqZWN0aW9uOm51bGwsb25VbmxvYWQ6bnVsbCxvblZvbHVtZUNoYW5nZTpudWxsLG9uV2FpdGluZzpudWxsLG9uV2hlZWw6bnVsbCxvcGVuOkV0LG9wdGltdW06cWUscGF0dGVybjpudWxsLHBpbmc6VXIscGxhY2Vob2xkZXI6bnVsbCxwbGF5c0lubGluZTpFdCxwb3BvdmVyOm51bGwscG9wb3ZlclRhcmdldDpudWxsLHBvcG92ZXJUYXJnZXRBY3Rpb246bnVsbCxwb3N0ZXI6bnVsbCxwcmVsb2FkOm51bGwscmVhZE9ubHk6RXQscmVmZXJyZXJQb2xpY3k6bnVsbCxyZWw6VXIscmVxdWlyZWQ6RXQscmV2ZXJzZWQ6RXQscm93czpxZSxyb3dTcGFuOnFlLHNhbmRib3g6VXIsc2NvcGU6bnVsbCxzY29wZWQ6RXQsc2VhbWxlc3M6RXQsc2VsZWN0ZWQ6RXQsc2hhZG93Um9vdENsb25hYmxlOkV0LHNoYWRvd1Jvb3REZWxlZ2F0ZXNGb2N1czpFdCxzaGFkb3dSb290TW9kZTpudWxsLHNoYXBlOm51bGwsc2l6ZTpxZSxzaXplczpudWxsLHNsb3Q6bnVsbCxzcGFuOnFlLHNwZWxsQ2hlY2s6TjEsc3JjOm51bGwsc3JjRG9jOm51bGwsc3JjTGFuZzpudWxsLHNyY1NldDpudWxsLHN0YXJ0OnFlLHN0ZXA6bnVsbCxzdHlsZTpudWxsLHRhYkluZGV4OnFlLHRhcmdldDpudWxsLHRpdGxlOm51bGwsdHJhbnNsYXRlOm51bGwsdHlwZTpudWxsLHR5cGVNdXN0TWF0Y2g6RXQsdXNlTWFwOm51bGwsdmFsdWU6TjEsd2lkdGg6cWUsd3JhcDpudWxsLHdyaXRpbmdTdWdnZXN0aW9uczpudWxsLGFsaWduOm51bGwsYUxpbms6bnVsbCxhcmNoaXZlOlVyLGF4aXM6bnVsbCxiYWNrZ3JvdW5kOm51bGwsYmdDb2xvcjpudWxsLGJvcmRlcjpxZSxib3JkZXJDb2xvcjpudWxsLGJvdHRvbU1hcmdpbjpxZSxjZWxsUGFkZGluZzpudWxsLGNlbGxTcGFjaW5nOm51bGwsY2hhcjpudWxsLGNoYXJPZmY6bnVsbCxjbGFzc0lkOm51bGwsY2xlYXI6bnVsbCxjb2RlOm51bGwsY29kZUJhc2U6bnVsbCxjb2RlVHlwZTpudWxsLGNvbG9yOm51bGwsY29tcGFjdDpFdCxkZWNsYXJlOkV0LGV2ZW50Om51bGwsZmFjZTpudWxsLGZyYW1lOm51bGwsZnJhbWVCb3JkZXI6bnVsbCxoU3BhY2U6cWUsbGVmdE1hcmdpbjpxZSxsaW5rOm51bGwsbG9uZ0Rlc2M6bnVsbCxsb3dTcmM6bnVsbCxtYXJnaW5IZWlnaHQ6cWUsbWFyZ2luV2lkdGg6cWUsbm9SZXNpemU6RXQsbm9IcmVmOkV0LG5vU2hhZGU6RXQsbm9XcmFwOkV0LG9iamVjdDpudWxsLHByb2ZpbGU6bnVsbCxwcm9tcHQ6bnVsbCxyZXY6bnVsbCxyaWdodE1hcmdpbjpxZSxydWxlczpudWxsLHNjaGVtZTpudWxsLHNjcm9sbGluZzpOMSxzdGFuZGJ5Om51bGwsc3VtbWFyeTpudWxsLHRleHQ6bnVsbCx0b3BNYXJnaW46cWUsdmFsdWVUeXBlOm51bGwsdmVyc2lvbjpudWxsLHZBbGlnbjpudWxsLHZMaW5rOm51bGwsdlNwYWNlOnFlLGFsbG93VHJhbnNwYXJlbmN5Om51bGwsYXV0b0NvcnJlY3Q6bnVsbCxhdXRvU2F2ZTpudWxsLGRpc2FibGVQaWN0dXJlSW5QaWN0dXJlOkV0LGRpc2FibGVSZW1vdGVQbGF5YmFjazpFdCxwcmVmaXg6bnVsbCxwcm9wZXJ0eTpudWxsLHJlc3VsdHM6cWUsc2VjdXJpdHk6bnVsbCx1bnNlbGVjdGFibGU6bnVsbH0sc3BhY2U6Imh0bWwiLHRyYW5zZm9ybTpnTH0pfSk7dmFyIFdRZSxHUWU9cCgoKT0+e0ZyZSgpO2JkKCk7SjkoKTtXUWU9X28oe2F0dHJpYnV0ZXM6e2FjY2VudEhlaWdodDoiYWNjZW50LWhlaWdodCIsYWxpZ25tZW50QmFzZWxpbmU6ImFsaWdubWVudC1iYXNlbGluZSIsYXJhYmljRm9ybToiYXJhYmljLWZvcm0iLGJhc2VsaW5lU2hpZnQ6ImJhc2VsaW5lLXNoaWZ0IixjYXBIZWlnaHQ6ImNhcC1oZWlnaHQiLGNsYXNzTmFtZToiY2xhc3MiLGNsaXBQYXRoOiJjbGlwLXBhdGgiLGNsaXBSdWxlOiJjbGlwLXJ1bGUiLGNvbG9ySW50ZXJwb2xhdGlvbjoiY29sb3ItaW50ZXJwb2xhdGlvbiIsY29sb3JJbnRlcnBvbGF0aW9uRmlsdGVyczoiY29sb3ItaW50ZXJwb2xhdGlvbi1maWx0ZXJzIixjb2xvclByb2ZpbGU6ImNvbG9yLXByb2ZpbGUiLGNvbG9yUmVuZGVyaW5nOiJjb2xvci1yZW5kZXJpbmciLGNyb3NzT3JpZ2luOiJjcm9zc29yaWdpbiIsZGF0YVR5cGU6ImRhdGF0eXBlIixkb21pbmFudEJhc2VsaW5lOiJkb21pbmFudC1iYXNlbGluZSIsZW5hYmxlQmFja2dyb3VuZDoiZW5hYmxlLWJhY2tncm91bmQiLGZpbGxPcGFjaXR5OiJmaWxsLW9wYWNpdHkiLGZpbGxSdWxlOiJmaWxsLXJ1bGUiLGZsb29kQ29sb3I6ImZsb29kLWNvbG9yIixmbG9vZE9wYWNpdHk6ImZsb29kLW9wYWNpdHkiLGZvbnRGYW1pbHk6ImZvbnQtZmFtaWx5Iixmb250U2l6ZToiZm9udC1zaXplIixmb250U2l6ZUFkanVzdDoiZm9udC1zaXplLWFkanVzdCIsZm9udFN0cmV0Y2g6ImZvbnQtc3RyZXRjaCIsZm9udFN0eWxlOiJmb250LXN0eWxlIixmb250VmFyaWFudDoiZm9udC12YXJpYW50Iixmb250V2VpZ2h0OiJmb250LXdlaWdodCIsZ2x5cGhOYW1lOiJnbHlwaC1uYW1lIixnbHlwaE9yaWVudGF0aW9uSG9yaXpvbnRhbDoiZ2x5cGgtb3JpZW50YXRpb24taG9yaXpvbnRhbCIsZ2x5cGhPcmllbnRhdGlvblZlcnRpY2FsOiJnbHlwaC1vcmllbnRhdGlvbi12ZXJ0aWNhbCIsaHJlZkxhbmc6ImhyZWZsYW5nIixob3JpekFkdlg6Imhvcml6LWFkdi14Iixob3Jpek9yaWdpblg6Imhvcml6LW9yaWdpbi14Iixob3Jpek9yaWdpblk6Imhvcml6LW9yaWdpbi15IixpbWFnZVJlbmRlcmluZzoiaW1hZ2UtcmVuZGVyaW5nIixsZXR0ZXJTcGFjaW5nOiJsZXR0ZXItc3BhY2luZyIsbGlnaHRpbmdDb2xvcjoibGlnaHRpbmctY29sb3IiLG1hcmtlckVuZDoibWFya2VyLWVuZCIsbWFya2VyTWlkOiJtYXJrZXItbWlkIixtYXJrZXJTdGFydDoibWFya2VyLXN0YXJ0IixuYXZEb3duOiJuYXYtZG93biIsbmF2RG93bkxlZnQ6Im5hdi1kb3duLWxlZnQiLG5hdkRvd25SaWdodDoibmF2LWRvd24tcmlnaHQiLG5hdkxlZnQ6Im5hdi1sZWZ0IixuYXZOZXh0OiJuYXYtbmV4dCIsbmF2UHJldjoibmF2LXByZXYiLG5hdlJpZ2h0OiJuYXYtcmlnaHQiLG5hdlVwOiJuYXYtdXAiLG5hdlVwTGVmdDoibmF2LXVwLWxlZnQiLG5hdlVwUmlnaHQ6Im5hdi11cC1yaWdodCIsb25BYm9ydDoib25hYm9ydCIsb25BY3RpdmF0ZToib25hY3RpdmF0ZSIsb25BZnRlclByaW50OiJvbmFmdGVycHJpbnQiLG9uQmVmb3JlUHJpbnQ6Im9uYmVmb3JlcHJpbnQiLG9uQmVnaW46Im9uYmVnaW4iLG9uQ2FuY2VsOiJvbmNhbmNlbCIsb25DYW5QbGF5OiJvbmNhbnBsYXkiLG9uQ2FuUGxheVRocm91Z2g6Im9uY2FucGxheXRocm91Z2giLG9uQ2hhbmdlOiJvbmNoYW5nZSIsb25DbGljazoib25jbGljayIsb25DbG9zZToib25jbG9zZSIsb25Db3B5OiJvbmNvcHkiLG9uQ3VlQ2hhbmdlOiJvbmN1ZWNoYW5nZSIsb25DdXQ6Im9uY3V0IixvbkRibENsaWNrOiJvbmRibGNsaWNrIixvbkRyYWc6Im9uZHJhZyIsb25EcmFnRW5kOiJvbmRyYWdlbmQiLG9uRHJhZ0VudGVyOiJvbmRyYWdlbnRlciIsb25EcmFnRXhpdDoib25kcmFnZXhpdCIsb25EcmFnTGVhdmU6Im9uZHJhZ2xlYXZlIixvbkRyYWdPdmVyOiJvbmRyYWdvdmVyIixvbkRyYWdTdGFydDoib25kcmFnc3RhcnQiLG9uRHJvcDoib25kcm9wIixvbkR1cmF0aW9uQ2hhbmdlOiJvbmR1cmF0aW9uY2hhbmdlIixvbkVtcHRpZWQ6Im9uZW1wdGllZCIsb25FbmQ6Im9uZW5kIixvbkVuZGVkOiJvbmVuZGVkIixvbkVycm9yOiJvbmVycm9yIixvbkZvY3VzOiJvbmZvY3VzIixvbkZvY3VzSW46Im9uZm9jdXNpbiIsb25Gb2N1c091dDoib25mb2N1c291dCIsb25IYXNoQ2hhbmdlOiJvbmhhc2hjaGFuZ2UiLG9uSW5wdXQ6Im9uaW5wdXQiLG9uSW52YWxpZDoib25pbnZhbGlkIixvbktleURvd246Im9ua2V5ZG93biIsb25LZXlQcmVzczoib25rZXlwcmVzcyIsb25LZXlVcDoib25rZXl1cCIsb25Mb2FkOiJvbmxvYWQiLG9uTG9hZGVkRGF0YToib25sb2FkZWRkYXRhIixvbkxvYWRlZE1ldGFkYXRhOiJvbmxvYWRlZG1ldGFkYXRhIixvbkxvYWRTdGFydDoib25sb2Fkc3RhcnQiLG9uTWVzc2FnZToib25tZXNzYWdlIixvbk1vdXNlRG93bjoib25tb3VzZWRvd24iLG9uTW91c2VFbnRlcjoib25tb3VzZWVudGVyIixvbk1vdXNlTGVhdmU6Im9ubW91c2VsZWF2ZSIsb25Nb3VzZU1vdmU6Im9ubW91c2Vtb3ZlIixvbk1vdXNlT3V0OiJvbm1vdXNlb3V0Iixvbk1vdXNlT3Zlcjoib25tb3VzZW92ZXIiLG9uTW91c2VVcDoib25tb3VzZXVwIixvbk1vdXNlV2hlZWw6Im9ubW91c2V3aGVlbCIsb25PZmZsaW5lOiJvbm9mZmxpbmUiLG9uT25saW5lOiJvbm9ubGluZSIsb25QYWdlSGlkZToib25wYWdlaGlkZSIsb25QYWdlU2hvdzoib25wYWdlc2hvdyIsb25QYXN0ZToib25wYXN0ZSIsb25QYXVzZToib25wYXVzZSIsb25QbGF5OiJvbnBsYXkiLG9uUGxheWluZzoib25wbGF5aW5nIixvblBvcFN0YXRlOiJvbnBvcHN0YXRlIixvblByb2dyZXNzOiJvbnByb2dyZXNzIixvblJhdGVDaGFuZ2U6Im9ucmF0ZWNoYW5nZSIsb25SZXBlYXQ6Im9ucmVwZWF0IixvblJlc2V0OiJvbnJlc2V0IixvblJlc2l6ZToib25yZXNpemUiLG9uU2Nyb2xsOiJvbnNjcm9sbCIsb25TZWVrZWQ6Im9uc2Vla2VkIixvblNlZWtpbmc6Im9uc2Vla2luZyIsb25TZWxlY3Q6Im9uc2VsZWN0IixvblNob3c6Im9uc2hvdyIsb25TdGFsbGVkOiJvbnN0YWxsZWQiLG9uU3RvcmFnZToib25zdG9yYWdlIixvblN1Ym1pdDoib25zdWJtaXQiLG9uU3VzcGVuZDoib25zdXNwZW5kIixvblRpbWVVcGRhdGU6Im9udGltZXVwZGF0ZSIsb25Ub2dnbGU6Im9udG9nZ2xlIixvblVubG9hZDoib251bmxvYWQiLG9uVm9sdW1lQ2hhbmdlOiJvbnZvbHVtZWNoYW5nZSIsb25XYWl0aW5nOiJvbndhaXRpbmciLG9uWm9vbToib256b29tIixvdmVybGluZVBvc2l0aW9uOiJvdmVybGluZS1wb3NpdGlvbiIsb3ZlcmxpbmVUaGlja25lc3M6Im92ZXJsaW5lLXRoaWNrbmVzcyIscGFpbnRPcmRlcjoicGFpbnQtb3JkZXIiLHBhbm9zZTE6InBhbm9zZS0xIixwb2ludGVyRXZlbnRzOiJwb2ludGVyLWV2ZW50cyIscmVmZXJyZXJQb2xpY3k6InJlZmVycmVycG9saWN5IixyZW5kZXJpbmdJbnRlbnQ6InJlbmRlcmluZy1pbnRlbnQiLHNoYXBlUmVuZGVyaW5nOiJzaGFwZS1yZW5kZXJpbmciLHN0b3BDb2xvcjoic3RvcC1jb2xvciIsc3RvcE9wYWNpdHk6InN0b3Atb3BhY2l0eSIsc3RyaWtldGhyb3VnaFBvc2l0aW9uOiJzdHJpa2V0aHJvdWdoLXBvc2l0aW9uIixzdHJpa2V0aHJvdWdoVGhpY2tuZXNzOiJzdHJpa2V0aHJvdWdoLXRoaWNrbmVzcyIsc3Ryb2tlRGFzaEFycmF5OiJzdHJva2UtZGFzaGFycmF5IixzdHJva2VEYXNoT2Zmc2V0OiJzdHJva2UtZGFzaG9mZnNldCIsc3Ryb2tlTGluZUNhcDoic3Ryb2tlLWxpbmVjYXAiLHN0cm9rZUxpbmVKb2luOiJzdHJva2UtbGluZWpvaW4iLHN0cm9rZU1pdGVyTGltaXQ6InN0cm9rZS1taXRlcmxpbWl0IixzdHJva2VPcGFjaXR5OiJzdHJva2Utb3BhY2l0eSIsc3Ryb2tlV2lkdGg6InN0cm9rZS13aWR0aCIsdGFiSW5kZXg6InRhYmluZGV4Iix0ZXh0QW5jaG9yOiJ0ZXh0LWFuY2hvciIsdGV4dERlY29yYXRpb246InRleHQtZGVjb3JhdGlvbiIsdGV4dFJlbmRlcmluZzoidGV4dC1yZW5kZXJpbmciLHRyYW5zZm9ybU9yaWdpbjoidHJhbnNmb3JtLW9yaWdpbiIsdHlwZU9mOiJ0eXBlb2YiLHVuZGVybGluZVBvc2l0aW9uOiJ1bmRlcmxpbmUtcG9zaXRpb24iLHVuZGVybGluZVRoaWNrbmVzczoidW5kZXJsaW5lLXRoaWNrbmVzcyIsdW5pY29kZUJpZGk6InVuaWNvZGUtYmlkaSIsdW5pY29kZVJhbmdlOiJ1bmljb2RlLXJhbmdlIix1bml0c1BlckVtOiJ1bml0cy1wZXItZW0iLHZBbHBoYWJldGljOiJ2LWFscGhhYmV0aWMiLHZIYW5naW5nOiJ2LWhhbmdpbmciLHZJZGVvZ3JhcGhpYzoidi1pZGVvZ3JhcGhpYyIsdk1hdGhlbWF0aWNhbDoidi1tYXRoZW1hdGljYWwiLHZlY3RvckVmZmVjdDoidmVjdG9yLWVmZmVjdCIsdmVydEFkdlk6InZlcnQtYWR2LXkiLHZlcnRPcmlnaW5YOiJ2ZXJ0LW9yaWdpbi14Iix2ZXJ0T3JpZ2luWToidmVydC1vcmlnaW4teSIsd29yZFNwYWNpbmc6IndvcmQtc3BhY2luZyIsd3JpdGluZ01vZGU6IndyaXRpbmctbW9kZSIseEhlaWdodDoieC1oZWlnaHQiLHBsYXliYWNrT3JkZXI6InBsYXliYWNrb3JkZXIiLHRpbWVsaW5lQmVnaW46InRpbWVsaW5lYmVnaW4ifSxwcm9wZXJ0aWVzOnthYm91dDprbixhY2NlbnRIZWlnaHQ6cWUsYWNjdW11bGF0ZTpudWxsLGFkZGl0aXZlOm51bGwsYWxpZ25tZW50QmFzZWxpbmU6bnVsbCxhbHBoYWJldGljOnFlLGFtcGxpdHVkZTpxZSxhcmFiaWNGb3JtOm51bGwsYXNjZW50OnFlLGF0dHJpYnV0ZU5hbWU6bnVsbCxhdHRyaWJ1dGVUeXBlOm51bGwsYXppbXV0aDpxZSxiYW5kd2lkdGg6bnVsbCxiYXNlbGluZVNoaWZ0Om51bGwsYmFzZUZyZXF1ZW5jeTpudWxsLGJhc2VQcm9maWxlOm51bGwsYmJveDpudWxsLGJlZ2luOm51bGwsYmlhczpxZSxieTpudWxsLGNhbGNNb2RlOm51bGwsY2FwSGVpZ2h0OnFlLGNsYXNzTmFtZTpVcixjbGlwOm51bGwsY2xpcFBhdGg6bnVsbCxjbGlwUGF0aFVuaXRzOm51bGwsY2xpcFJ1bGU6bnVsbCxjb2xvcjpudWxsLGNvbG9ySW50ZXJwb2xhdGlvbjpudWxsLGNvbG9ySW50ZXJwb2xhdGlvbkZpbHRlcnM6bnVsbCxjb2xvclByb2ZpbGU6bnVsbCxjb2xvclJlbmRlcmluZzpudWxsLGNvbnRlbnQ6bnVsbCxjb250ZW50U2NyaXB0VHlwZTpudWxsLGNvbnRlbnRTdHlsZVR5cGU6bnVsbCxjcm9zc09yaWdpbjpudWxsLGN1cnNvcjpudWxsLGN4Om51bGwsY3k6bnVsbCxkOm51bGwsZGF0YVR5cGU6bnVsbCxkZWZhdWx0QWN0aW9uOm51bGwsZGVzY2VudDpxZSxkaWZmdXNlQ29uc3RhbnQ6cWUsZGlyZWN0aW9uOm51bGwsZGlzcGxheTpudWxsLGR1cjpudWxsLGRpdmlzb3I6cWUsZG9taW5hbnRCYXNlbGluZTpudWxsLGRvd25sb2FkOkV0LGR4Om51bGwsZHk6bnVsbCxlZGdlTW9kZTpudWxsLGVkaXRhYmxlOm51bGwsZWxldmF0aW9uOnFlLGVuYWJsZUJhY2tncm91bmQ6bnVsbCxlbmQ6bnVsbCxldmVudDpudWxsLGV4cG9uZW50OnFlLGV4dGVybmFsUmVzb3VyY2VzUmVxdWlyZWQ6bnVsbCxmaWxsOm51bGwsZmlsbE9wYWNpdHk6cWUsZmlsbFJ1bGU6bnVsbCxmaWx0ZXI6bnVsbCxmaWx0ZXJSZXM6bnVsbCxmaWx0ZXJVbml0czpudWxsLGZsb29kQ29sb3I6bnVsbCxmbG9vZE9wYWNpdHk6bnVsbCxmb2N1c2FibGU6bnVsbCxmb2N1c0hpZ2hsaWdodDpudWxsLGZvbnRGYW1pbHk6bnVsbCxmb250U2l6ZTpudWxsLGZvbnRTaXplQWRqdXN0Om51bGwsZm9udFN0cmV0Y2g6bnVsbCxmb250U3R5bGU6bnVsbCxmb250VmFyaWFudDpudWxsLGZvbnRXZWlnaHQ6bnVsbCxmb3JtYXQ6bnVsbCxmcjpudWxsLGZyb206bnVsbCxmeDpudWxsLGZ5Om51bGwsZzE6djQsZzI6djQsZ2x5cGhOYW1lOnY0LGdseXBoT3JpZW50YXRpb25Ib3Jpem9udGFsOm51bGwsZ2x5cGhPcmllbnRhdGlvblZlcnRpY2FsOm51bGwsZ2x5cGhSZWY6bnVsbCxncmFkaWVudFRyYW5zZm9ybTpudWxsLGdyYWRpZW50VW5pdHM6bnVsbCxoYW5kbGVyOm51bGwsaGFuZ2luZzpxZSxoYXRjaENvbnRlbnRVbml0czpudWxsLGhhdGNoVW5pdHM6bnVsbCxoZWlnaHQ6bnVsbCxocmVmOm51bGwsaHJlZkxhbmc6bnVsbCxob3JpekFkdlg6cWUsaG9yaXpPcmlnaW5YOnFlLGhvcml6T3JpZ2luWTpxZSxpZDpudWxsLGlkZW9ncmFwaGljOnFlLGltYWdlUmVuZGVyaW5nOm51bGwsaW5pdGlhbFZpc2liaWxpdHk6bnVsbCxpbjpudWxsLGluMjpudWxsLGludGVyY2VwdDpxZSxrOnFlLGsxOnFlLGsyOnFlLGszOnFlLGs0OnFlLGtlcm5lbE1hdHJpeDprbixrZXJuZWxVbml0TGVuZ3RoOm51bGwsa2V5UG9pbnRzOm51bGwsa2V5U3BsaW5lczpudWxsLGtleVRpbWVzOm51bGwsa2VybmluZzpudWxsLGxhbmc6bnVsbCxsZW5ndGhBZGp1c3Q6bnVsbCxsZXR0ZXJTcGFjaW5nOm51bGwsbGlnaHRpbmdDb2xvcjpudWxsLGxpbWl0aW5nQ29uZUFuZ2xlOnFlLGxvY2FsOm51bGwsbWFya2VyRW5kOm51bGwsbWFya2VyTWlkOm51bGwsbWFya2VyU3RhcnQ6bnVsbCxtYXJrZXJIZWlnaHQ6bnVsbCxtYXJrZXJVbml0czpudWxsLG1hcmtlcldpZHRoOm51bGwsbWFzazpudWxsLG1hc2tDb250ZW50VW5pdHM6bnVsbCxtYXNrVW5pdHM6bnVsbCxtYXRoZW1hdGljYWw6bnVsbCxtYXg6bnVsbCxtZWRpYTpudWxsLG1lZGlhQ2hhcmFjdGVyRW5jb2Rpbmc6bnVsbCxtZWRpYUNvbnRlbnRFbmNvZGluZ3M6bnVsbCxtZWRpYVNpemU6cWUsbWVkaWFUaW1lOm51bGwsbWV0aG9kOm51bGwsbWluOm51bGwsbW9kZTpudWxsLG5hbWU6bnVsbCxuYXZEb3duOm51bGwsbmF2RG93bkxlZnQ6bnVsbCxuYXZEb3duUmlnaHQ6bnVsbCxuYXZMZWZ0Om51bGwsbmF2TmV4dDpudWxsLG5hdlByZXY6bnVsbCxuYXZSaWdodDpudWxsLG5hdlVwOm51bGwsbmF2VXBMZWZ0Om51bGwsbmF2VXBSaWdodDpudWxsLG51bU9jdGF2ZXM6bnVsbCxvYnNlcnZlcjpudWxsLG9mZnNldDpudWxsLG9uQWJvcnQ6bnVsbCxvbkFjdGl2YXRlOm51bGwsb25BZnRlclByaW50Om51bGwsb25CZWZvcmVQcmludDpudWxsLG9uQmVnaW46bnVsbCxvbkNhbmNlbDpudWxsLG9uQ2FuUGxheTpudWxsLG9uQ2FuUGxheVRocm91Z2g6bnVsbCxvbkNoYW5nZTpudWxsLG9uQ2xpY2s6bnVsbCxvbkNsb3NlOm51bGwsb25Db3B5Om51bGwsb25DdWVDaGFuZ2U6bnVsbCxvbkN1dDpudWxsLG9uRGJsQ2xpY2s6bnVsbCxvbkRyYWc6bnVsbCxvbkRyYWdFbmQ6bnVsbCxvbkRyYWdFbnRlcjpudWxsLG9uRHJhZ0V4aXQ6bnVsbCxvbkRyYWdMZWF2ZTpudWxsLG9uRHJhZ092ZXI6bnVsbCxvbkRyYWdTdGFydDpudWxsLG9uRHJvcDpudWxsLG9uRHVyYXRpb25DaGFuZ2U6bnVsbCxvbkVtcHRpZWQ6bnVsbCxvbkVuZDpudWxsLG9uRW5kZWQ6bnVsbCxvbkVycm9yOm51bGwsb25Gb2N1czpudWxsLG9uRm9jdXNJbjpudWxsLG9uRm9jdXNPdXQ6bnVsbCxvbkhhc2hDaGFuZ2U6bnVsbCxvbklucHV0Om51bGwsb25JbnZhbGlkOm51bGwsb25LZXlEb3duOm51bGwsb25LZXlQcmVzczpudWxsLG9uS2V5VXA6bnVsbCxvbkxvYWQ6bnVsbCxvbkxvYWRlZERhdGE6bnVsbCxvbkxvYWRlZE1ldGFkYXRhOm51bGwsb25Mb2FkU3RhcnQ6bnVsbCxvbk1lc3NhZ2U6bnVsbCxvbk1vdXNlRG93bjpudWxsLG9uTW91c2VFbnRlcjpudWxsLG9uTW91c2VMZWF2ZTpudWxsLG9uTW91c2VNb3ZlOm51bGwsb25Nb3VzZU91dDpudWxsLG9uTW91c2VPdmVyOm51bGwsb25Nb3VzZVVwOm51bGwsb25Nb3VzZVdoZWVsOm51bGwsb25PZmZsaW5lOm51bGwsb25PbmxpbmU6bnVsbCxvblBhZ2VIaWRlOm51bGwsb25QYWdlU2hvdzpudWxsLG9uUGFzdGU6bnVsbCxvblBhdXNlOm51bGwsb25QbGF5Om51bGwsb25QbGF5aW5nOm51bGwsb25Qb3BTdGF0ZTpudWxsLG9uUHJvZ3Jlc3M6bnVsbCxvblJhdGVDaGFuZ2U6bnVsbCxvblJlcGVhdDpudWxsLG9uUmVzZXQ6bnVsbCxvblJlc2l6ZTpudWxsLG9uU2Nyb2xsOm51bGwsb25TZWVrZWQ6bnVsbCxvblNlZWtpbmc6bnVsbCxvblNlbGVjdDpudWxsLG9uU2hvdzpudWxsLG9uU3RhbGxlZDpudWxsLG9uU3RvcmFnZTpudWxsLG9uU3VibWl0Om51bGwsb25TdXNwZW5kOm51bGwsb25UaW1lVXBkYXRlOm51bGwsb25Ub2dnbGU6bnVsbCxvblVubG9hZDpudWxsLG9uVm9sdW1lQ2hhbmdlOm51bGwsb25XYWl0aW5nOm51bGwsb25ab29tOm51bGwsb3BhY2l0eTpudWxsLG9wZXJhdG9yOm51bGwsb3JkZXI6bnVsbCxvcmllbnQ6bnVsbCxvcmllbnRhdGlvbjpudWxsLG9yaWdpbjpudWxsLG92ZXJmbG93Om51bGwsb3ZlcmxheTpudWxsLG92ZXJsaW5lUG9zaXRpb246cWUsb3ZlcmxpbmVUaGlja25lc3M6cWUscGFpbnRPcmRlcjpudWxsLHBhbm9zZTE6bnVsbCxwYXRoOm51bGwscGF0aExlbmd0aDpxZSxwYXR0ZXJuQ29udGVudFVuaXRzOm51bGwscGF0dGVyblRyYW5zZm9ybTpudWxsLHBhdHRlcm5Vbml0czpudWxsLHBoYXNlOm51bGwscGluZzpVcixwaXRjaDpudWxsLHBsYXliYWNrT3JkZXI6bnVsbCxwb2ludGVyRXZlbnRzOm51bGwscG9pbnRzOm51bGwscG9pbnRzQXRYOnFlLHBvaW50c0F0WTpxZSxwb2ludHNBdFo6cWUscHJlc2VydmVBbHBoYTpudWxsLHByZXNlcnZlQXNwZWN0UmF0aW86bnVsbCxwcmltaXRpdmVVbml0czpudWxsLHByb3BhZ2F0ZTpudWxsLHByb3BlcnR5OmtuLHI6bnVsbCxyYWRpdXM6bnVsbCxyZWZlcnJlclBvbGljeTpudWxsLHJlZlg6bnVsbCxyZWZZOm51bGwscmVsOmtuLHJldjprbixyZW5kZXJpbmdJbnRlbnQ6bnVsbCxyZXBlYXRDb3VudDpudWxsLHJlcGVhdER1cjpudWxsLHJlcXVpcmVkRXh0ZW5zaW9uczprbixyZXF1aXJlZEZlYXR1cmVzOmtuLHJlcXVpcmVkRm9udHM6a24scmVxdWlyZWRGb3JtYXRzOmtuLHJlc291cmNlOm51bGwscmVzdGFydDpudWxsLHJlc3VsdDpudWxsLHJvdGF0ZTpudWxsLHJ4Om51bGwscnk6bnVsbCxzY2FsZTpudWxsLHNlZWQ6bnVsbCxzaGFwZVJlbmRlcmluZzpudWxsLHNpZGU6bnVsbCxzbG9wZTpudWxsLHNuYXBzaG90VGltZTpudWxsLHNwZWN1bGFyQ29uc3RhbnQ6cWUsc3BlY3VsYXJFeHBvbmVudDpxZSxzcHJlYWRNZXRob2Q6bnVsbCxzcGFjaW5nOm51bGwsc3RhcnRPZmZzZXQ6bnVsbCxzdGREZXZpYXRpb246bnVsbCxzdGVtaDpudWxsLHN0ZW12Om51bGwsc3RpdGNoVGlsZXM6bnVsbCxzdG9wQ29sb3I6bnVsbCxzdG9wT3BhY2l0eTpudWxsLHN0cmlrZXRocm91Z2hQb3NpdGlvbjpxZSxzdHJpa2V0aHJvdWdoVGhpY2tuZXNzOnFlLHN0cmluZzpudWxsLHN0cm9rZTpudWxsLHN0cm9rZURhc2hBcnJheTprbixzdHJva2VEYXNoT2Zmc2V0Om51bGwsc3Ryb2tlTGluZUNhcDpudWxsLHN0cm9rZUxpbmVKb2luOm51bGwsc3Ryb2tlTWl0ZXJMaW1pdDpxZSxzdHJva2VPcGFjaXR5OnFlLHN0cm9rZVdpZHRoOm51bGwsc3R5bGU6bnVsbCxzdXJmYWNlU2NhbGU6cWUsc3luY0JlaGF2aW9yOm51bGwsc3luY0JlaGF2aW9yRGVmYXVsdDpudWxsLHN5bmNNYXN0ZXI6bnVsbCxzeW5jVG9sZXJhbmNlOm51bGwsc3luY1RvbGVyYW5jZURlZmF1bHQ6bnVsbCxzeXN0ZW1MYW5ndWFnZTprbix0YWJJbmRleDpxZSx0YWJsZVZhbHVlczpudWxsLHRhcmdldDpudWxsLHRhcmdldFg6cWUsdGFyZ2V0WTpxZSx0ZXh0QW5jaG9yOm51bGwsdGV4dERlY29yYXRpb246bnVsbCx0ZXh0UmVuZGVyaW5nOm51bGwsdGV4dExlbmd0aDpudWxsLHRpbWVsaW5lQmVnaW46bnVsbCx0aXRsZTpudWxsLHRyYW5zZm9ybUJlaGF2aW9yOm51bGwsdHlwZTpudWxsLHR5cGVPZjprbix0bzpudWxsLHRyYW5zZm9ybTpudWxsLHRyYW5zZm9ybU9yaWdpbjpudWxsLHUxOm51bGwsdTI6bnVsbCx1bmRlcmxpbmVQb3NpdGlvbjpxZSx1bmRlcmxpbmVUaGlja25lc3M6cWUsdW5pY29kZTpudWxsLHVuaWNvZGVCaWRpOm51bGwsdW5pY29kZVJhbmdlOm51bGwsdW5pdHNQZXJFbTpxZSx2YWx1ZXM6bnVsbCx2QWxwaGFiZXRpYzpxZSx2TWF0aGVtYXRpY2FsOnFlLHZlY3RvckVmZmVjdDpudWxsLHZIYW5naW5nOnFlLHZJZGVvZ3JhcGhpYzpxZSx2ZXJzaW9uOm51bGwsdmVydEFkdlk6cWUsdmVydE9yaWdpblg6cWUsdmVydE9yaWdpblk6cWUsdmlld0JveDpudWxsLHZpZXdUYXJnZXQ6bnVsbCx2aXNpYmlsaXR5Om51bGwsd2lkdGg6bnVsbCx3aWR0aHM6bnVsbCx3b3JkU3BhY2luZzpudWxsLHdyaXRpbmdNb2RlOm51bGwseDpudWxsLHgxOm51bGwseDI6bnVsbCx4Q2hhbm5lbFNlbGVjdG9yOm51bGwseEhlaWdodDpxZSx5Om51bGwseTE6bnVsbCx5MjpudWxsLHlDaGFubmVsU2VsZWN0b3I6bnVsbCx6Om51bGwsem9vbUFuZFBhbjpudWxsfSxzcGFjZToic3ZnIix0cmFuc2Zvcm06bUx9KX0pO3ZhciBScmUsWVFlPXAoKCk9PntiZCgpO1JyZT1fbyh7cHJvcGVydGllczp7eExpbmtBY3R1YXRlOm51bGwseExpbmtBcmNSb2xlOm51bGwseExpbmtIcmVmOm51bGwseExpbmtSb2xlOm51bGwseExpbmtTaG93Om51bGwseExpbmtUaXRsZTpudWxsLHhMaW5rVHlwZTpudWxsfSxzcGFjZToieGxpbmsiLHRyYW5zZm9ybShlLHQpe3JldHVybiJ4bGluazoiK3Quc2xpY2UoNSkudG9Mb3dlckNhc2UoKX19KX0pO3ZhciBCcmUsWlFlPXAoKCk9PntiZCgpO09yZSgpO0JyZT1fbyh7YXR0cmlidXRlczp7eG1sbnN4bGluazoieG1sbnM6eGxpbmsifSxwcm9wZXJ0aWVzOnt4bWxuc1hMaW5rOm51bGwseG1sbnM6bnVsbH0sc3BhY2U6InhtbG5zIix0cmFuc2Zvcm06Z0x9KX0pO3ZhciBIcmUsWFFlPXAoKCk9PntiZCgpO0hyZT1fbyh7cHJvcGVydGllczp7eG1sQmFzZTpudWxsLHhtbExhbmc6bnVsbCx4bWxTcGFjZTpudWxsfSxzcGFjZToieG1sIix0cmFuc2Zvcm0oZSx0KXtyZXR1cm4ieG1sOiIrdC5zbGljZSgzKS50b0xvd2VyQ2FzZSgpfX0pfSk7dmFyIFFRZT1wKCgpPT57fSk7ZnVuY3Rpb24gcXJlKGUsdCl7bGV0IHI9dnAodCksaT10LGE9Rmk7aWYociBpbiBlLm5vcm1hbClyZXR1cm4gZS5wcm9wZXJ0eVtlLm5vcm1hbFtyXV07aWYoci5sZW5ndGg+NCYmci5zbGljZSgwLDQpPT09ImRhdGEiJiZLcXIudGVzdCh0KSl7aWYodC5jaGFyQXQoNCk9PT0iLSIpe2xldCBuPXQuc2xpY2UoNSkucmVwbGFjZShKUWUsdGpyKTtpPSJkYXRhIituLmNoYXJBdCgwKS50b1VwcGVyQ2FzZSgpK24uc2xpY2UoMSl9ZWxzZXtsZXQgbj10LnNsaWNlKDQpO2lmKCFKUWUudGVzdChuKSl7bGV0IG89bi5yZXBsYWNlKEpxcixlanIpO28uY2hhckF0KDApIT09Ii0iJiYobz0iLSIrbyksdD0iZGF0YSIrb319YT1nZH1yZXR1cm4gbmV3IGEoaSx0KX1mdW5jdGlvbiBlanIoZSl7cmV0dXJuIi0iK2UudG9Mb3dlckNhc2UoKX1mdW5jdGlvbiB0anIoZSl7cmV0dXJuIGUuY2hhckF0KDEpLnRvVXBwZXJDYXNlKCl9dmFyIEpxcixKUWUsS3FyLEtRZT1wKCgpPT57UHJlKCk7JHJlKCk7aEwoKTtKcXI9L1tBLVpdL2csSlFlPS8tW2Etel0vZyxLcXI9L15kYXRhWy1cdy46XSskL2l9KTt2YXIgZUplLGJMLGpyZT1wKCgpPT57SFFlKCk7alFlKCk7VVFlKCk7R1FlKCk7WVFlKCk7WlFlKCk7WFFlKCk7UVFlKCk7S1FlKCk7aEwoKTtlSmU9RXJlKFtOcmUsVlFlLFJyZSxCcmUsSHJlXSwiaHRtbCIpLGJMPUVyZShbTnJlLFdRZSxScmUsQnJlLEhyZV0sInN2ZyIpfSk7ZnVuY3Rpb24gVnJlKGUsdCl7aWYoZT1lLnJlcGxhY2UodC5zdWJzZXQ/b2pyKHQuc3Vic2V0KTpyanIsaSksdC5zdWJzZXR8fHQuZXNjYXBlT25seSlyZXR1cm4gZTtyZXR1cm4gZS5yZXBsYWNlKGlqcixyKS5yZXBsYWNlKGFqcixpKTtmdW5jdGlvbiByKGEsbixvKXtyZXR1cm4gdC5mb3JtYXQoKGEuY2hhckNvZGVBdCgwKS01NTI5NikqMTAyNCthLmNoYXJDb2RlQXQoMSktNTYzMjArNjU1MzYsby5jaGFyQ29kZUF0KG4rMiksdCl9ZnVuY3Rpb24gaShhLG4sbyl7cmV0dXJuIHQuZm9ybWF0KGEuY2hhckNvZGVBdCgwKSxvLmNoYXJDb2RlQXQobisxKSx0KX19ZnVuY3Rpb24gb2pyKGUpe2xldCB0PXRKZS5nZXQoZSk7cmV0dXJuIHR8fCh0PXNqcihlKSx0SmUuc2V0KGUsdCkpLHR9ZnVuY3Rpb24gc2pyKGUpe2xldCB0PVtdLHI9LTE7Zm9yKDsrK3I8ZS5sZW5ndGg7KXQucHVzaChlW3JdLnJlcGxhY2UobmpyLCJcXCQmIikpO3JldHVybiBuZXcgUmVnRXhwKCIoPzoiK3Quam9pbigifCIpKyIpIiwiZyIpfXZhciByanIsaWpyLGFqcixuanIsdEplLHJKZT1wKCgpPT57cmpyPS9bIiYnPD5gXS9nLGlqcj0vW1x1RDgwMC1cdURCRkZdW1x1REMwMC1cdURGRkZdL2csYWpyPS9bXHgwMS1cdFx2XGZceDBFLVx4MUZceDdGXHg4MVx4OERceDhGXHg5MFx4OURceEEwLVx1RkZGRl0vZyxuanI9L1t8XFx7fSgpW1xdXiQrKj8uXS9nLHRKZT1uZXcgV2Vha01hcH0pO2Z1bmN0aW9uIGlKZShlLHQscil7bGV0IGk9IiYjeCIrZS50b1N0cmluZygxNikudG9VcHBlckNhc2UoKTtyZXR1cm4gciYmdCYmIWxqci50ZXN0KFN0cmluZy5mcm9tQ2hhckNvZGUodCkpP2k6aSsiOyJ9dmFyIGxqcixhSmU9cCgoKT0+e2xqcj0vW1xkQS1GYS1mXS99KTtmdW5jdGlvbiBuSmUoZSx0LHIpe2xldCBpPSImIyIrU3RyaW5nKGUpO3JldHVybiByJiZ0JiYhY2pyLnRlc3QoU3RyaW5nLmZyb21DaGFyQ29kZSh0KSk/aTppKyI7In12YXIgY2pyLG9KZT1wKCgpPT57Y2pyPS9cZC99KTt2YXIgc0plLGxKZT1wKCgpPT57c0plPVsiQUVsaWciLCJBTVAiLCJBYWN1dGUiLCJBY2lyYyIsIkFncmF2ZSIsIkFyaW5nIiwiQXRpbGRlIiwiQXVtbCIsIkNPUFkiLCJDY2VkaWwiLCJFVEgiLCJFYWN1dGUiLCJFY2lyYyIsIkVncmF2ZSIsIkV1bWwiLCJHVCIsIklhY3V0ZSIsIkljaXJjIiwiSWdyYXZlIiwiSXVtbCIsIkxUIiwiTnRpbGRlIiwiT2FjdXRlIiwiT2NpcmMiLCJPZ3JhdmUiLCJPc2xhc2giLCJPdGlsZGUiLCJPdW1sIiwiUVVPVCIsIlJFRyIsIlRIT1JOIiwiVWFjdXRlIiwiVWNpcmMiLCJVZ3JhdmUiLCJVdW1sIiwiWWFjdXRlIiwiYWFjdXRlIiwiYWNpcmMiLCJhY3V0ZSIsImFlbGlnIiwiYWdyYXZlIiwiYW1wIiwiYXJpbmciLCJhdGlsZGUiLCJhdW1sIiwiYnJ2YmFyIiwiY2NlZGlsIiwiY2VkaWwiLCJjZW50IiwiY29weSIsImN1cnJlbiIsImRlZyIsImRpdmlkZSIsImVhY3V0ZSIsImVjaXJjIiwiZWdyYXZlIiwiZXRoIiwiZXVtbCIsImZyYWMxMiIsImZyYWMxNCIsImZyYWMzNCIsImd0IiwiaWFjdXRlIiwiaWNpcmMiLCJpZXhjbCIsImlncmF2ZSIsImlxdWVzdCIsIml1bWwiLCJsYXF1byIsImx0IiwibWFjciIsIm1pY3JvIiwibWlkZG90IiwibmJzcCIsIm5vdCIsIm50aWxkZSIsIm9hY3V0ZSIsIm9jaXJjIiwib2dyYXZlIiwib3JkZiIsIm9yZG0iLCJvc2xhc2giLCJvdGlsZGUiLCJvdW1sIiwicGFyYSIsInBsdXNtbiIsInBvdW5kIiwicXVvdCIsInJhcXVvIiwicmVnIiwic2VjdCIsInNoeSIsInN1cDEiLCJzdXAyIiwic3VwMyIsInN6bGlnIiwidGhvcm4iLCJ0aW1lcyIsInVhY3V0ZSIsInVjaXJjIiwidWdyYXZlIiwidW1sIiwidXVtbCIsInlhY3V0ZSIsInllbiIsInl1bWwiXX0pO3ZhciB2TCxjSmU9cCgoKT0+e3ZMPXtuYnNwOiJceEEwIixpZXhjbDoiXHhBMSIsY2VudDoiXHhBMiIscG91bmQ6Ilx4QTMiLGN1cnJlbjoiXHhBNCIseWVuOiJceEE1IixicnZiYXI6Ilx4QTYiLHNlY3Q6Ilx4QTciLHVtbDoiXHhBOCIsY29weToiXHhBOSIsb3JkZjoiXHhBQSIsbGFxdW86Ilx4QUIiLG5vdDoiXHhBQyIsc2h5OiJceEFEIixyZWc6Ilx4QUUiLG1hY3I6Ilx4QUYiLGRlZzoiXHhCMCIscGx1c21uOiJceEIxIixzdXAyOiJceEIyIixzdXAzOiJceEIzIixhY3V0ZToiXHhCNCIsbWljcm86Ilx4QjUiLHBhcmE6Ilx4QjYiLG1pZGRvdDoiXHhCNyIsY2VkaWw6Ilx4QjgiLHN1cDE6Ilx4QjkiLG9yZG06Ilx4QkEiLHJhcXVvOiJceEJCIixmcmFjMTQ6Ilx4QkMiLGZyYWMxMjoiXHhCRCIsZnJhYzM0OiJceEJFIixpcXVlc3Q6Ilx4QkYiLEFncmF2ZToiXHhDMCIsQWFjdXRlOiJceEMxIixBY2lyYzoiXHhDMiIsQXRpbGRlOiJceEMzIixBdW1sOiJceEM0IixBcmluZzoiXHhDNSIsQUVsaWc6Ilx4QzYiLENjZWRpbDoiXHhDNyIsRWdyYXZlOiJceEM4IixFYWN1dGU6Ilx4QzkiLEVjaXJjOiJceENBIixFdW1sOiJceENCIixJZ3JhdmU6Ilx4Q0MiLElhY3V0ZToiXHhDRCIsSWNpcmM6Ilx4Q0UiLEl1bWw6Ilx4Q0YiLEVUSDoiXHhEMCIsTnRpbGRlOiJceEQxIixPZ3JhdmU6Ilx4RDIiLE9hY3V0ZToiXHhEMyIsT2NpcmM6Ilx4RDQiLE90aWxkZToiXHhENSIsT3VtbDoiXHhENiIsdGltZXM6Ilx4RDciLE9zbGFzaDoiXHhEOCIsVWdyYXZlOiJceEQ5IixVYWN1dGU6Ilx4REEiLFVjaXJjOiJceERCIixVdW1sOiJceERDIixZYWN1dGU6Ilx4REQiLFRIT1JOOiJceERFIixzemxpZzoiXHhERiIsYWdyYXZlOiJceEUwIixhYWN1dGU6Ilx4RTEiLGFjaXJjOiJceEUyIixhdGlsZGU6Ilx4RTMiLGF1bWw6Ilx4RTQiLGFyaW5nOiJceEU1IixhZWxpZzoiXHhFNiIsY2NlZGlsOiJceEU3IixlZ3JhdmU6Ilx4RTgiLGVhY3V0ZToiXHhFOSIsZWNpcmM6Ilx4RUEiLGV1bWw6Ilx4RUIiLGlncmF2ZToiXHhFQyIsaWFjdXRlOiJceEVEIixpY2lyYzoiXHhFRSIsaXVtbDoiXHhFRiIsZXRoOiJceEYwIixudGlsZGU6Ilx4RjEiLG9ncmF2ZToiXHhGMiIsb2FjdXRlOiJceEYzIixvY2lyYzoiXHhGNCIsb3RpbGRlOiJceEY1IixvdW1sOiJceEY2IixkaXZpZGU6Ilx4RjciLG9zbGFzaDoiXHhGOCIsdWdyYXZlOiJceEY5Iix1YWN1dGU6Ilx4RkEiLHVjaXJjOiJceEZCIix1dW1sOiJceEZDIix5YWN1dGU6Ilx4RkQiLHRob3JuOiJceEZFIix5dW1sOiJceEZGIixmbm9mOiJcdTAxOTIiLEFscGhhOiJcdTAzOTEiLEJldGE6Ilx1MDM5MiIsR2FtbWE6Ilx1MDM5MyIsRGVsdGE6Ilx1MDM5NCIsRXBzaWxvbjoiXHUwMzk1IixaZXRhOiJcdTAzOTYiLEV0YToiXHUwMzk3IixUaGV0YToiXHUwMzk4IixJb3RhOiJcdTAzOTkiLEthcHBhOiJcdTAzOUEiLExhbWJkYToiXHUwMzlCIixNdToiXHUwMzlDIixOdToiXHUwMzlEIixYaToiXHUwMzlFIixPbWljcm9uOiJcdTAzOUYiLFBpOiJcdTAzQTAiLFJobzoiXHUwM0ExIixTaWdtYToiXHUwM0EzIixUYXU6Ilx1MDNBNCIsVXBzaWxvbjoiXHUwM0E1IixQaGk6Ilx1MDNBNiIsQ2hpOiJcdTAzQTciLFBzaToiXHUwM0E4IixPbWVnYToiXHUwM0E5IixhbHBoYToiXHUwM0IxIixiZXRhOiJcdTAzQjIiLGdhbW1hOiJcdTAzQjMiLGRlbHRhOiJcdTAzQjQiLGVwc2lsb246Ilx1MDNCNSIsemV0YToiXHUwM0I2IixldGE6Ilx1MDNCNyIsdGhldGE6Ilx1MDNCOCIsaW90YToiXHUwM0I5IixrYXBwYToiXHUwM0JBIixsYW1iZGE6Ilx1MDNCQiIsbXU6Ilx1MDNCQyIsbnU6Ilx1MDNCRCIseGk6Ilx1MDNCRSIsb21pY3JvbjoiXHUwM0JGIixwaToiXHUwM0MwIixyaG86Ilx1MDNDMSIsc2lnbWFmOiJcdTAzQzIiLHNpZ21hOiJcdTAzQzMiLHRhdToiXHUwM0M0Iix1cHNpbG9uOiJcdTAzQzUiLHBoaToiXHUwM0M2IixjaGk6Ilx1MDNDNyIscHNpOiJcdTAzQzgiLG9tZWdhOiJcdTAzQzkiLHRoZXRhc3ltOiJcdTAzRDEiLHVwc2loOiJcdTAzRDIiLHBpdjoiXHUwM0Q2IixidWxsOiJcdTIwMjIiLGhlbGxpcDoiXHUyMDI2IixwcmltZToiXHUyMDMyIixQcmltZToiXHUyMDMzIixvbGluZToiXHUyMDNFIixmcmFzbDoiXHUyMDQ0Iix3ZWllcnA6Ilx1MjExOCIsaW1hZ2U6Ilx1MjExMSIscmVhbDoiXHUyMTFDIix0cmFkZToiXHUyMTIyIixhbGVmc3ltOiJcdTIxMzUiLGxhcnI6Ilx1MjE5MCIsdWFycjoiXHUyMTkxIixyYXJyOiJcdTIxOTIiLGRhcnI6Ilx1MjE5MyIsaGFycjoiXHUyMTk0IixjcmFycjoiXHUyMUI1IixsQXJyOiJcdTIxRDAiLHVBcnI6Ilx1MjFEMSIsckFycjoiXHUyMUQyIixkQXJyOiJcdTIxRDMiLGhBcnI6Ilx1MjFENCIsZm9yYWxsOiJcdTIyMDAiLHBhcnQ6Ilx1MjIwMiIsZXhpc3Q6Ilx1MjIwMyIsZW1wdHk6Ilx1MjIwNSIsbmFibGE6Ilx1MjIwNyIsaXNpbjoiXHUyMjA4Iixub3RpbjoiXHUyMjA5IixuaToiXHUyMjBCIixwcm9kOiJcdTIyMEYiLHN1bToiXHUyMjExIixtaW51czoiXHUyMjEyIixsb3dhc3Q6Ilx1MjIxNyIscmFkaWM6Ilx1MjIxQSIscHJvcDoiXHUyMjFEIixpbmZpbjoiXHUyMjFFIixhbmc6Ilx1MjIyMCIsYW5kOiJcdTIyMjciLG9yOiJcdTIyMjgiLGNhcDoiXHUyMjI5IixjdXA6Ilx1MjIyQSIsaW50OiJcdTIyMkIiLHRoZXJlNDoiXHUyMjM0IixzaW06Ilx1MjIzQyIsY29uZzoiXHUyMjQ1Iixhc3ltcDoiXHUyMjQ4IixuZToiXHUyMjYwIixlcXVpdjoiXHUyMjYxIixsZToiXHUyMjY0IixnZToiXHUyMjY1IixzdWI6Ilx1MjI4MiIsc3VwOiJcdTIyODMiLG5zdWI6Ilx1MjI4NCIsc3ViZToiXHUyMjg2IixzdXBlOiJcdTIyODciLG9wbHVzOiJcdTIyOTUiLG90aW1lczoiXHUyMjk3IixwZXJwOiJcdTIyQTUiLHNkb3Q6Ilx1MjJDNSIsbGNlaWw6Ilx1MjMwOCIscmNlaWw6Ilx1MjMwOSIsbGZsb29yOiJcdTIzMEEiLHJmbG9vcjoiXHUyMzBCIixsYW5nOiJcdTIzMjkiLHJhbmc6Ilx1MjMyQSIsbG96OiJcdTI1Q0EiLHNwYWRlczoiXHUyNjYwIixjbHViczoiXHUyNjYzIixoZWFydHM6Ilx1MjY2NSIsZGlhbXM6Ilx1MjY2NiIscXVvdDonIicsYW1wOiImIixsdDoiPCIsZ3Q6Ij4iLE9FbGlnOiJcdTAxNTIiLG9lbGlnOiJcdTAxNTMiLFNjYXJvbjoiXHUwMTYwIixzY2Fyb246Ilx1MDE2MSIsWXVtbDoiXHUwMTc4IixjaXJjOiJcdTAyQzYiLHRpbGRlOiJcdTAyREMiLGVuc3A6Ilx1MjAwMiIsZW1zcDoiXHUyMDAzIix0aGluc3A6Ilx1MjAwOSIsenduajoiXHUyMDBDIix6d2o6Ilx1MjAwRCIsbHJtOiJcdTIwMEUiLHJsbToiXHUyMDBGIixuZGFzaDoiXHUyMDEzIixtZGFzaDoiXHUyMDE0Iixsc3F1bzoiXHUyMDE4Iixyc3F1bzoiXHUyMDE5IixzYnF1bzoiXHUyMDFBIixsZHF1bzoiXHUyMDFDIixyZHF1bzoiXHUyMDFEIixiZHF1bzoiXHUyMDFFIixkYWdnZXI6Ilx1MjAyMCIsRGFnZ2VyOiJcdTIwMjEiLHBlcm1pbDoiXHUyMDMwIixsc2FxdW86Ilx1MjAzOSIscnNhcXVvOiJcdTIwM0EiLGV1cm86Ilx1MjBBQyJ9fSk7dmFyIGRKZSx1SmU9cCgoKT0+e2RKZT1bImNlbnQiLCJjb3B5IiwiZGl2aWRlIiwiZ3QiLCJsdCIsIm5vdCIsInBhcmEiLCJ0aW1lcyJdfSk7ZnVuY3Rpb24gaEplKGUsdCxyLGkpe2xldCBhPVN0cmluZy5mcm9tQ2hhckNvZGUoZSk7aWYocEplLmNhbGwoVXJlLGEpKXtsZXQgbj1VcmVbYV0sbz0iJiIrbjtyZXR1cm4gciYmc0plLmluY2x1ZGVzKG4pJiYhZEplLmluY2x1ZGVzKG4pJiYoIWl8fHQmJnQhPT02MSYmZGpyLnRlc3QoU3RyaW5nLmZyb21DaGFyQ29kZSh0KSkpP286bysiOyJ9cmV0dXJuIiJ9dmFyIHBKZSxVcmUseEwsZGpyLGZKZT1wKCgpPT57bEplKCk7Y0plKCk7dUplKCk7cEplPXt9Lmhhc093blByb3BlcnR5LFVyZT17fTtmb3IoeEwgaW4gdkwpcEplLmNhbGwodkwseEwpJiYoVXJlW3ZMW3hMXV09eEwpO2Rqcj0vW15cZEEtWmEtel0vfSk7ZnVuY3Rpb24gbUplKGUsdCxyKXtsZXQgaT1pSmUoZSx0LHIub21pdE9wdGlvbmFsU2VtaWNvbG9ucyksYTtpZigoci51c2VOYW1lZFJlZmVyZW5jZXN8fHIudXNlU2hvcnRlc3RSZWZlcmVuY2VzKSYmKGE9aEplKGUsdCxyLm9taXRPcHRpb25hbFNlbWljb2xvbnMsci5hdHRyaWJ1dGUpKSwoci51c2VTaG9ydGVzdFJlZmVyZW5jZXN8fCFhKSYmci51c2VTaG9ydGVzdFJlZmVyZW5jZXMpe2xldCBuPW5KZShlLHQsci5vbWl0T3B0aW9uYWxTZW1pY29sb25zKTtuLmxlbmd0aDxpLmxlbmd0aCYmKGk9bil9cmV0dXJuIGEmJighci51c2VTaG9ydGVzdFJlZmVyZW5jZXN8fGEubGVuZ3RoPGkubGVuZ3RoKT9hOml9dmFyIGdKZT1wKCgpPT57YUplKCk7b0plKCk7ZkplKCl9KTtmdW5jdGlvbiBiSmUoZSl7cmV0dXJuIiYjeCIrZS50b1N0cmluZygxNikudG9VcHBlckNhc2UoKSsiOyJ9dmFyIHZKZT1wKCgpPT57fSk7ZnVuY3Rpb24gc2MoZSx0KXtyZXR1cm4gVnJlKGUsT2JqZWN0LmFzc2lnbih7Zm9ybWF0Om1KZX0sdCkpfWZ1bmN0aW9uIGhXaShlLHQpe3JldHVybiBWcmUoZSxPYmplY3QuYXNzaWduKHtmb3JtYXQ6YkplfSx0KSl9dmFyIHhKZT1wKCgpPT57ckplKCk7Z0plKCk7dkplKCl9KTt2YXIgeUw9cCgoKT0+e3hKZSgpfSk7ZnVuY3Rpb24geUplKGUsdCxyLGkpe3JldHVybiBpLnNldHRpbmdzLmJvZ3VzQ29tbWVudHM/Ijw/IitzYyhlLnZhbHVlLE9iamVjdC5hc3NpZ24oe30saS5zZXR0aW5ncy5jaGFyYWN0ZXJSZWZlcmVuY2VzLHtzdWJzZXQ6cGpyfSkpKyI+IjoiPCEtLSIrZS52YWx1ZS5yZXBsYWNlKHVqcixhKSsiLS0+IjtmdW5jdGlvbiBhKG4pe3JldHVybiBzYyhuLE9iamVjdC5hc3NpZ24oe30saS5zZXR0aW5ncy5jaGFyYWN0ZXJSZWZlcmVuY2VzLHtzdWJzZXQ6aGpyfSkpfX12YXIgdWpyLHBqcixoanIsd0plPXAoKCk9Pnt5TCgpO3Vqcj0vXj58Xi0+fDwhLS18LS0+fC0tIT58PCEtJC9nLHBqcj1bIj4iXSxoanI9WyI8IiwiPiJdfSk7ZnVuY3Rpb24gTUplKGUsdCxyLGkpe3JldHVybiI8ISIrKGkuc2V0dGluZ3MudXBwZXJEb2N0eXBlPyJET0NUWVBFIjoiZG9jdHlwZSIpKyhpLnNldHRpbmdzLnRpZ2h0RG9jdHlwZT8iIjoiICIpKyJodG1sPiJ9dmFyIGtKZT1wKCgpPT57fSk7ZnVuY3Rpb24geVdpKGUpe2xldCB0PVtdLHI9U3RyaW5nKGV8fCIiKSxpPXIuaW5kZXhPZigiLCIpLGE9MCxuPSExO2Zvcig7IW47KXtpPT09LTEmJihpPXIubGVuZ3RoLG49ITApO2xldCBvPXIuc2xpY2UoYSxpKS50cmltKCk7KG98fCFuKSYmdC5wdXNoKG8pLGE9aSsxLGk9ci5pbmRleE9mKCIsIixhKX1yZXR1cm4gdH1mdW5jdGlvbiBTSmUoZSx0KXtsZXQgcj10fHx7fTtyZXR1cm4oZVtlLmxlbmd0aC0xXT09PSIiP1suLi5lLCIiXTplKS5qb2luKChyLnBhZFJpZ2h0PyIgIjoiIikrIiwiKyhyLnBhZExlZnQ9PT0hMT8iIjoiICIpKS50cmltKCl9dmFyIHpKZT1wKCgpPT57fSk7ZnVuY3Rpb24gTVdpKGUpe2xldCB0PVN0cmluZyhlfHwiIikudHJpbSgpO3JldHVybiB0P3Quc3BsaXQoL1sgXHRcblxyXGZdKy9nKTpbXX1mdW5jdGlvbiBDSmUoZSl7cmV0dXJuIGUuam9pbigiICIpLnRyaW0oKX12YXIgVEplPXAoKCk9Pnt9KTtmdW5jdGlvbiB2ZChlKXtyZXR1cm4gdHlwZW9mIGU9PSJvYmplY3QiP2UudHlwZT09PSJ0ZXh0Ij9fSmUoZS52YWx1ZSk6ITE6X0plKGUpfWZ1bmN0aW9uIF9KZShlKXtyZXR1cm4gZS5yZXBsYWNlKGZqciwiIik9PT0iIn12YXIgZmpyLExKZT1wKCgpPT57ZmpyPS9bIFx0XG5cZlxyXS9nfSk7dmFyIHdMPXAoKCk9PntMSmUoKX0pO2Z1bmN0aW9uIEFKZShlKXtyZXR1cm4gdDtmdW5jdGlvbiB0KHIsaSxhKXtsZXQgbj1yP3IuY2hpbGRyZW46bWpyLG89KGl8fDApK2Uscz1uW29dO2lmKCFhKWZvcig7cyYmdmQocyk7KW8rPWUscz1uW29dO3JldHVybiBzfX12YXIgVTEsV3JlLG1qcixHcmU9cCgoKT0+e3dMKCk7VTE9QUplKDEpLFdyZT1BSmUoLTEpLG1qcj1bXX0pO2Z1bmN0aW9uIE1MKGUpe3JldHVybiB0O2Z1bmN0aW9uIHQocixpLGEpe3JldHVybiBnanIuY2FsbChlLHIudGFnTmFtZSkmJmVbci50YWdOYW1lXShyLGksYSl9fXZhciBnanIsWXJlPXAoKCk9PntnanI9e30uaGFzT3duUHJvcGVydHl9KTtmdW5jdGlvbiBacmUoZSx0LHIpe2xldCBpPVUxKHIsdCwhMCk7cmV0dXJuIWl8fGkudHlwZSE9PSJjb21tZW50IiYmIShpLnR5cGU9PT0idGV4dCImJnZkKGkudmFsdWUuY2hhckF0KDApKSl9ZnVuY3Rpb24gYmpyKGUsdCxyKXtsZXQgaT1VMShyLHQpO3JldHVybiFpfHxpLnR5cGUhPT0iY29tbWVudCJ9ZnVuY3Rpb24gdmpyKGUsdCxyKXtsZXQgaT1VMShyLHQpO3JldHVybiFpfHxpLnR5cGUhPT0iY29tbWVudCJ9ZnVuY3Rpb24geGpyKGUsdCxyKXtsZXQgaT1VMShyLHQpO3JldHVybiBpP2kudHlwZT09PSJlbGVtZW50IiYmKGkudGFnTmFtZT09PSJhZGRyZXNzInx8aS50YWdOYW1lPT09ImFydGljbGUifHxpLnRhZ05hbWU9PT0iYXNpZGUifHxpLnRhZ05hbWU9PT0iYmxvY2txdW90ZSJ8fGkudGFnTmFtZT09PSJkZXRhaWxzInx8aS50YWdOYW1lPT09ImRpdiJ8fGkudGFnTmFtZT09PSJkbCJ8fGkudGFnTmFtZT09PSJmaWVsZHNldCJ8fGkudGFnTmFtZT09PSJmaWdjYXB0aW9uInx8aS50YWdOYW1lPT09ImZpZ3VyZSJ8fGkudGFnTmFtZT09PSJmb290ZXIifHxpLnRhZ05hbWU9PT0iZm9ybSJ8fGkudGFnTmFtZT09PSJoMSJ8fGkudGFnTmFtZT09PSJoMiJ8fGkudGFnTmFtZT09PSJoMyJ8fGkudGFnTmFtZT09PSJoNCJ8fGkudGFnTmFtZT09PSJoNSJ8fGkudGFnTmFtZT09PSJoNiJ8fGkudGFnTmFtZT09PSJoZWFkZXIifHxpLnRhZ05hbWU9PT0iaGdyb3VwInx8aS50YWdOYW1lPT09ImhyInx8aS50YWdOYW1lPT09Im1haW4ifHxpLnRhZ05hbWU9PT0ibWVudSJ8fGkudGFnTmFtZT09PSJuYXYifHxpLnRhZ05hbWU9PT0ib2wifHxpLnRhZ05hbWU9PT0icCJ8fGkudGFnTmFtZT09PSJwcmUifHxpLnRhZ05hbWU9PT0ic2VjdGlvbiJ8fGkudGFnTmFtZT09PSJ0YWJsZSJ8fGkudGFnTmFtZT09PSJ1bCIpOiFyfHwhKHIudHlwZT09PSJlbGVtZW50IiYmKHIudGFnTmFtZT09PSJhInx8ci50YWdOYW1lPT09ImF1ZGlvInx8ci50YWdOYW1lPT09ImRlbCJ8fHIudGFnTmFtZT09PSJpbnMifHxyLnRhZ05hbWU9PT0ibWFwInx8ci50YWdOYW1lPT09Im5vc2NyaXB0Inx8ci50YWdOYW1lPT09InZpZGVvIikpfWZ1bmN0aW9uIHlqcihlLHQscil7bGV0IGk9VTEocix0KTtyZXR1cm4haXx8aS50eXBlPT09ImVsZW1lbnQiJiZpLnRhZ05hbWU9PT0ibGkifWZ1bmN0aW9uIHdqcihlLHQscil7bGV0IGk9VTEocix0KTtyZXR1cm4hIShpJiZpLnR5cGU9PT0iZWxlbWVudCImJihpLnRhZ05hbWU9PT0iZHQifHxpLnRhZ05hbWU9PT0iZGQiKSl9ZnVuY3Rpb24gTWpyKGUsdCxyKXtsZXQgaT1VMShyLHQpO3JldHVybiFpfHxpLnR5cGU9PT0iZWxlbWVudCImJihpLnRhZ05hbWU9PT0iZHQifHxpLnRhZ05hbWU9PT0iZGQiKX1mdW5jdGlvbiBESmUoZSx0LHIpe2xldCBpPVUxKHIsdCk7cmV0dXJuIWl8fGkudHlwZT09PSJlbGVtZW50IiYmKGkudGFnTmFtZT09PSJycCJ8fGkudGFnTmFtZT09PSJydCIpfWZ1bmN0aW9uIGtqcihlLHQscil7bGV0IGk9VTEocix0KTtyZXR1cm4haXx8aS50eXBlPT09ImVsZW1lbnQiJiZpLnRhZ05hbWU9PT0ib3B0Z3JvdXAifWZ1bmN0aW9uIFNqcihlLHQscil7bGV0IGk9VTEocix0KTtyZXR1cm4haXx8aS50eXBlPT09ImVsZW1lbnQiJiYoaS50YWdOYW1lPT09Im9wdGlvbiJ8fGkudGFnTmFtZT09PSJvcHRncm91cCIpfWZ1bmN0aW9uIHpqcihlLHQscil7bGV0IGk9VTEocix0KTtyZXR1cm4hIShpJiZpLnR5cGU9PT0iZWxlbWVudCImJihpLnRhZ05hbWU9PT0idGJvZHkifHxpLnRhZ05hbWU9PT0idGZvb3QiKSl9ZnVuY3Rpb24gQ2pyKGUsdCxyKXtsZXQgaT1VMShyLHQpO3JldHVybiFpfHxpLnR5cGU9PT0iZWxlbWVudCImJihpLnRhZ05hbWU9PT0idGJvZHkifHxpLnRhZ05hbWU9PT0idGZvb3QiKX1mdW5jdGlvbiBUanIoZSx0LHIpe3JldHVybiFVMShyLHQpfWZ1bmN0aW9uIF9qcihlLHQscil7bGV0IGk9VTEocix0KTtyZXR1cm4haXx8aS50eXBlPT09ImVsZW1lbnQiJiZpLnRhZ05hbWU9PT0idHIifWZ1bmN0aW9uIEVKZShlLHQscil7bGV0IGk9VTEocix0KTtyZXR1cm4haXx8aS50eXBlPT09ImVsZW1lbnQiJiYoaS50YWdOYW1lPT09InRkInx8aS50YWdOYW1lPT09InRoIil9dmFyIEs5LFhyZT1wKCgpPT57d0woKTtHcmUoKTtZcmUoKTtLOT1NTCh7Ym9keTp2anIsY2FwdGlvbjpacmUsY29sZ3JvdXA6WnJlLGRkOk1qcixkdDp3anIsaGVhZDpacmUsaHRtbDpianIsbGk6eWpyLG9wdGdyb3VwOmtqcixvcHRpb246U2pyLHA6eGpyLHJwOkRKZSxydDpESmUsdGJvZHk6Q2pyLHRkOkVKZSx0Zm9vdDpUanIsdGg6RUplLHRoZWFkOnpqcix0cjpfanJ9KX0pO2Z1bmN0aW9uIExqcihlKXtsZXQgdD1VMShlLC0xKTtyZXR1cm4hdHx8dC50eXBlIT09ImNvbW1lbnQifWZ1bmN0aW9uIEFqcihlKXtsZXQgdD1uZXcgU2V0O2ZvcihsZXQgaSBvZiBlLmNoaWxkcmVuKWlmKGkudHlwZT09PSJlbGVtZW50IiYmKGkudGFnTmFtZT09PSJiYXNlInx8aS50YWdOYW1lPT09InRpdGxlIikpe2lmKHQuaGFzKGkudGFnTmFtZSkpcmV0dXJuITE7dC5hZGQoaS50YWdOYW1lKX1sZXQgcj1lLmNoaWxkcmVuWzBdO3JldHVybiFyfHxyLnR5cGU9PT0iZWxlbWVudCJ9ZnVuY3Rpb24gRGpyKGUpe2xldCB0PVUxKGUsLTEsITApO3JldHVybiF0fHx0LnR5cGUhPT0iY29tbWVudCImJiEodC50eXBlPT09InRleHQiJiZ2ZCh0LnZhbHVlLmNoYXJBdCgwKSkpJiYhKHQudHlwZT09PSJlbGVtZW50IiYmKHQudGFnTmFtZT09PSJtZXRhInx8dC50YWdOYW1lPT09ImxpbmsifHx0LnRhZ05hbWU9PT0ic2NyaXB0Inx8dC50YWdOYW1lPT09InN0eWxlInx8dC50YWdOYW1lPT09InRlbXBsYXRlIikpfWZ1bmN0aW9uIEVqcihlLHQscil7bGV0IGk9V3JlKHIsdCksYT1VMShlLC0xLCEwKTtyZXR1cm4gciYmaSYmaS50eXBlPT09ImVsZW1lbnQiJiZpLnRhZ05hbWU9PT0iY29sZ3JvdXAiJiZLOShpLHIuY2hpbGRyZW4uaW5kZXhPZihpKSxyKT8hMTohIShhJiZhLnR5cGU9PT0iZWxlbWVudCImJmEudGFnTmFtZT09PSJjb2wiKX1mdW5jdGlvbiAkanIoZSx0LHIpe2xldCBpPVdyZShyLHQpLGE9VTEoZSwtMSk7cmV0dXJuIHImJmkmJmkudHlwZT09PSJlbGVtZW50IiYmKGkudGFnTmFtZT09PSJ0aGVhZCJ8fGkudGFnTmFtZT09PSJ0Ym9keSIpJiZLOShpLHIuY2hpbGRyZW4uaW5kZXhPZihpKSxyKT8hMTohIShhJiZhLnR5cGU9PT0iZWxlbWVudCImJmEudGFnTmFtZT09PSJ0ciIpfXZhciAkSmUsSUplPXAoKCk9Pnt3TCgpO0dyZSgpO1hyZSgpO1lyZSgpOyRKZT1NTCh7Ym9keTpEanIsY29sZ3JvdXA6RWpyLGhlYWQ6QWpyLGh0bWw6TGpyLHRib2R5OiRqcn0pfSk7ZnVuY3Rpb24gUEplKGUsdCxyLGkpe2xldCBhPWkuc2NoZW1hLG49YS5zcGFjZT09PSJzdmciPyExOmkuc2V0dGluZ3Mub21pdE9wdGlvbmFsVGFncyxvPWEuc3BhY2U9PT0ic3ZnIj9pLnNldHRpbmdzLmNsb3NlRW1wdHlFbGVtZW50czppLnNldHRpbmdzLnZvaWRzLmluY2x1ZGVzKGUudGFnTmFtZS50b0xvd2VyQ2FzZSgpKSxzPVtdLGw7YS5zcGFjZT09PSJodG1sIiYmZS50YWdOYW1lPT09InN2ZyImJihpLnNjaGVtYT1iTCk7bGV0IGM9SWpyKGksZS5wcm9wZXJ0aWVzKSx1PWkuYWxsKGEuc3BhY2U9PT0iaHRtbCImJmUudGFnTmFtZT09PSJ0ZW1wbGF0ZSI/ZS5jb250ZW50OmUpO3JldHVybiBpLnNjaGVtYT1hLHUmJihvPSExKSwoY3x8IW58fCEkSmUoZSx0LHIpKSYmKHMucHVzaCgiPCIsZS50YWdOYW1lLGM/IiAiK2M6IiIpLG8mJihhLnNwYWNlPT09InN2ZyJ8fGkuc2V0dGluZ3MuY2xvc2VTZWxmQ2xvc2luZykmJihsPWMuY2hhckF0KGMubGVuZ3RoLTEpLCghaS5zZXR0aW5ncy50aWdodFNlbGZDbG9zaW5nfHxsPT09Ii8ifHxsJiZsIT09JyInJiZsIT09IiciKSYmcy5wdXNoKCIgIikscy5wdXNoKCIvIikpLHMucHVzaCgiPiIpKSxzLnB1c2godSksIW8mJighbnx8IUs5KGUsdCxyKSkmJnMucHVzaCgiPC8iK2UudGFnTmFtZSsiPiIpLHMuam9pbigiIil9ZnVuY3Rpb24gSWpyKGUsdCl7bGV0IHI9W10saT0tMSxhO2lmKHQpe2ZvcihhIGluIHQpaWYodFthXSE9PW51bGwmJnRbYV0hPT12b2lkIDApe2xldCBuPVBqcihlLGEsdFthXSk7biYmci5wdXNoKG4pfX1mb3IoOysraTxyLmxlbmd0aDspe2xldCBuPWUuc2V0dGluZ3MudGlnaHRBdHRyaWJ1dGVzP3JbaV0uY2hhckF0KHJbaV0ubGVuZ3RoLTEpOnZvaWQgMDtpIT09ci5sZW5ndGgtMSYmbiE9PSciJyYmbiE9PSInIiYmKHJbaV0rPSIgIil9cmV0dXJuIHIuam9pbigiIil9ZnVuY3Rpb24gUGpyKGUsdCxyKXtsZXQgaT1xcmUoZS5zY2hlbWEsdCksYT1lLnNldHRpbmdzLmFsbG93UGFyc2VFcnJvcnMmJmUuc2NoZW1hLnNwYWNlPT09Imh0bWwiPzA6MSxuPWUuc2V0dGluZ3MuYWxsb3dEYW5nZXJvdXNDaGFyYWN0ZXJzPzA6MSxvPWUucXVvdGUscztpZihpLm92ZXJsb2FkZWRCb29sZWFuJiYocj09PWkuYXR0cmlidXRlfHxyPT09IiIpP3I9ITA6KGkuYm9vbGVhbnx8aS5vdmVybG9hZGVkQm9vbGVhbikmJih0eXBlb2YgciE9InN0cmluZyJ8fHI9PT1pLmF0dHJpYnV0ZXx8cj09PSIiKSYmKHI9ISFyKSxyPT1udWxsfHxyPT09ITF8fHR5cGVvZiByPT0ibnVtYmVyIiYmTnVtYmVyLmlzTmFOKHIpKXJldHVybiIiO2xldCBsPXNjKGkuYXR0cmlidXRlLE9iamVjdC5hc3NpZ24oe30sZS5zZXR0aW5ncy5jaGFyYWN0ZXJSZWZlcmVuY2VzLHtzdWJzZXQ6a0wubmFtZVthXVtuXX0pKTtyZXR1cm4gcj09PSEwfHwocj1BcnJheS5pc0FycmF5KHIpPyhpLmNvbW1hU2VwYXJhdGVkP1NKZTpDSmUpKHIse3BhZExlZnQ6IWUuc2V0dGluZ3MudGlnaHRDb21tYVNlcGFyYXRlZExpc3RzfSk6U3RyaW5nKHIpLGUuc2V0dGluZ3MuY29sbGFwc2VFbXB0eUF0dHJpYnV0ZXMmJiFyKT9sOihlLnNldHRpbmdzLnByZWZlclVucXVvdGVkJiYocz1zYyhyLE9iamVjdC5hc3NpZ24oe30sZS5zZXR0aW5ncy5jaGFyYWN0ZXJSZWZlcmVuY2VzLHthdHRyaWJ1dGU6ITAsc3Vic2V0OmtMLnVucXVvdGVkW2FdW25dfSkpKSxzIT09ciYmKGUuc2V0dGluZ3MucXVvdGVTbWFydCYmbnAocixvKT5ucChyLGUuYWx0ZXJuYXRpdmUpJiYobz1lLmFsdGVybmF0aXZlKSxzPW8rc2MocixPYmplY3QuYXNzaWduKHt9LGUuc2V0dGluZ3MuY2hhcmFjdGVyUmVmZXJlbmNlcyx7c3Vic2V0OihvPT09IiciP2tMLnNpbmdsZTprTC5kb3VibGUpW2FdW25dLGF0dHJpYnV0ZTohMH0pKStvKSxsKyhzJiYiPSIrcykpfXZhciBrTCxOSmU9cCgoKT0+e05lZSgpO3pKZSgpO2pyZSgpO1RKZSgpO3lMKCk7WHJlKCk7SUplKCk7a0w9e25hbWU6W1tgCQpcZlxyICYvPT5gLnNwbGl0KCIiKSxgCQpcZlxyICImJy89PlxgYC5zcGxpdCgiIildLFtgXDAJClxmXHIgIiYnLzw9PmAuc3BsaXQoIiIpLGBcMAkKXGZcciAiJicvPD0+XGBgLnNwbGl0KCIiKV1dLHVucXVvdGVkOltbYAkKXGZcciAmPmAuc3BsaXQoIiIpLGBcMAkKXGZcciAiJic8PT5cYGAuc3BsaXQoIiIpXSxbYFwwCQpcZlxyICImJzw9PlxgYC5zcGxpdCgiIiksYFwwCQpcZlxyICImJzw9PlxgYC5zcGxpdCgiIildXSxzaW5nbGU6W1siJiciLnNwbGl0KCIiKSwiXCImJ2AiLnNwbGl0KCIiKV0sWyJcMCYnIi5zcGxpdCgiIiksIlwwXCImJ2AiLnNwbGl0KCIiKV1dLGRvdWJsZTpbWyciJicuc3BsaXQoIiIpLCJcIiYnYCIuc3BsaXQoIiIpXSxbJ1wwIiYnLnNwbGl0KCIiKSwiXDBcIiYnYCIuc3BsaXQoIiIpXV19fSk7ZnVuY3Rpb24gU0woZSx0LHIsaSl7cmV0dXJuIHImJnIudHlwZT09PSJlbGVtZW50IiYmKHIudGFnTmFtZT09PSJzY3JpcHQifHxyLnRhZ05hbWU9PT0ic3R5bGUiKT9lLnZhbHVlOnNjKGUudmFsdWUsT2JqZWN0LmFzc2lnbih7fSxpLnNldHRpbmdzLmNoYXJhY3RlclJlZmVyZW5jZXMse3N1YnNldDpOanJ9KSl9dmFyIE5qcixRcmU9cCgoKT0+e3lMKCk7TmpyPVsiPCIsIiYiXX0pO2Z1bmN0aW9uIEZKZShlLHQscixpKXtyZXR1cm4gaS5zZXR0aW5ncy5hbGxvd0Rhbmdlcm91c0h0bWw/ZS52YWx1ZTpTTChlLHQscixpKX12YXIgT0plPXAoKCk9PntRcmUoKX0pO2Z1bmN0aW9uIFJKZShlLHQscixpKXtyZXR1cm4gaS5hbGwoZSl9dmFyIEJKZT1wKCgpPT57fSk7ZnVuY3Rpb24gRmpyKGUpe3Rocm93IG5ldyBFcnJvcigiRXhwZWN0ZWQgbm9kZSwgbm90IGAiK2UrImAiKX1mdW5jdGlvbiBPanIoZSl7bGV0IHQ9ZTt0aHJvdyBuZXcgRXJyb3IoIkNhbm5vdCBjb21waWxlIHVua25vd24gbm9kZSBgIit0LnR5cGUrImAiKX12YXIgSEplLHFKZT1wKCgpPT57R2VlKCk7d0plKCk7a0plKCk7TkplKCk7T0plKCk7QkplKCk7UXJlKCk7SEplPWtfKCJ0eXBlIix7aW52YWxpZDpGanIsdW5rbm93bjpPanIsaGFuZGxlcnM6e2NvbW1lbnQ6eUplLGRvY3R5cGU6TUplLGVsZW1lbnQ6UEplLHJhdzpGSmUscm9vdDpSSmUsdGV4dDpTTH19KX0pO2Z1bmN0aW9uIEpyZShlLHQpe2xldCByPXR8fFJqcixpPXIucXVvdGV8fCciJyxhPWk9PT0nIic/IiciOiciJztpZihpIT09JyInJiZpIT09IiciKXRocm93IG5ldyBFcnJvcigiSW52YWxpZCBxdW90ZSBgIitpKyJgLCBleHBlY3RlZCBgJ2Agb3IgYFwiYCIpO3JldHVybntvbmU6cWpyLGFsbDpqanIsc2V0dGluZ3M6e29taXRPcHRpb25hbFRhZ3M6ci5vbWl0T3B0aW9uYWxUYWdzfHwhMSxhbGxvd1BhcnNlRXJyb3JzOnIuYWxsb3dQYXJzZUVycm9yc3x8ITEsYWxsb3dEYW5nZXJvdXNDaGFyYWN0ZXJzOnIuYWxsb3dEYW5nZXJvdXNDaGFyYWN0ZXJzfHwhMSxxdW90ZVNtYXJ0OnIucXVvdGVTbWFydHx8ITEscHJlZmVyVW5xdW90ZWQ6ci5wcmVmZXJVbnF1b3RlZHx8ITEsdGlnaHRBdHRyaWJ1dGVzOnIudGlnaHRBdHRyaWJ1dGVzfHwhMSx1cHBlckRvY3R5cGU6ci51cHBlckRvY3R5cGV8fCExLHRpZ2h0RG9jdHlwZTpyLnRpZ2h0RG9jdHlwZXx8ITEsYm9ndXNDb21tZW50czpyLmJvZ3VzQ29tbWVudHN8fCExLHRpZ2h0Q29tbWFTZXBhcmF0ZWRMaXN0czpyLnRpZ2h0Q29tbWFTZXBhcmF0ZWRMaXN0c3x8ITEsdGlnaHRTZWxmQ2xvc2luZzpyLnRpZ2h0U2VsZkNsb3Npbmd8fCExLGNvbGxhcHNlRW1wdHlBdHRyaWJ1dGVzOnIuY29sbGFwc2VFbXB0eUF0dHJpYnV0ZXN8fCExLGFsbG93RGFuZ2Vyb3VzSHRtbDpyLmFsbG93RGFuZ2Vyb3VzSHRtbHx8ITEsdm9pZHM6ci52b2lkc3x8UlFlLGNoYXJhY3RlclJlZmVyZW5jZXM6ci5jaGFyYWN0ZXJSZWZlcmVuY2VzfHxCanIsY2xvc2VTZWxmQ2xvc2luZzpyLmNsb3NlU2VsZkNsb3Npbmd8fCExLGNsb3NlRW1wdHlFbGVtZW50czpyLmNsb3NlRW1wdHlFbGVtZW50c3x8ITF9LHNjaGVtYTpyLnNwYWNlPT09InN2ZyI/Ykw6ZUplLHF1b3RlOmksYWx0ZXJuYXRpdmU6YX0ub25lKEFycmF5LmlzQXJyYXkoZSk/e3R5cGU6InJvb3QiLGNoaWxkcmVuOmV9OmUsdm9pZCAwLHZvaWQgMCl9ZnVuY3Rpb24gcWpyKGUsdCxyKXtyZXR1cm4gSEplKGUsdCxyLHRoaXMpfWZ1bmN0aW9uIGpqcihlKXtsZXQgdD1bXSxyPWUmJmUuY2hpbGRyZW58fEhqcixpPS0xO2Zvcig7KytpPHIubGVuZ3RoOyl0W2ldPXRoaXMub25lKHJbaV0saSxlKTtyZXR1cm4gdC5qb2luKCIiKX12YXIgUmpyLEJqcixIanIsakplPXAoKCk9PntCUWUoKTtqcmUoKTtxSmUoKTtSanI9e30sQmpyPXt9LEhqcj1bXX0pO3ZhciBWSmU9cCgoKT0+e2pKZSgpfSk7ZnVuY3Rpb24geHAoZSl7bGV0IHQ9dGhpcyx7aGFuZGxlcnM6cixzYW5pdGl6ZTppLC4uLmF9PWV8fFZqcixuPSExLG87dHlwZW9mIGk9PSJib29sZWFuIj9uPSFpOmkmJihvPWkpLHQuY29tcGlsZXI9cztmdW5jdGlvbiBzKGwsYyl7bGV0IHU9QXJlKGwse2hhbmRsZXJzOnIsYWxsb3dEYW5nZXJvdXNIdG1sOm59KSxkPW4/dTpTcmUodSxvKSxoPUpyZShkLHsuLi5hLGFsbG93RGFuZ2Vyb3VzSHRtbDpufSk7cmV0dXJuIGMuZXh0bmFtZSYmKGMuZXh0bmFtZT0iLmh0bWwiKSxsJiZsLnR5cGU9PT0icm9vdCImJmgmJi9bXlxyXG5dLy50ZXN0KGguY2hhckF0KGgubGVuZ3RoLTEpKT9oK2AKYDpofX12YXIgVmpyLFVKZT1wKCgpPT57SVhlKCk7T1FlKCk7VkplKCk7VmpyPXt9fSk7dmFyIFdKZT1wKCgpPT57VUplKCl9KTtmdW5jdGlvbiB5cChlKXtsZXQgdD10aGlzO3QuY29tcGlsZXI9cjtmdW5jdGlvbiByKGkpe3JldHVybiBmdGUoaSx7Li4udC5kYXRhKCJzZXR0aW5ncyIpLC4uLmUsZXh0ZW5zaW9uczp0LmRhdGEoInRvTWFya2Rvd25FeHRlbnNpb25zIil8fFtdfSl9fXZhciBHSmU9cCgoKT0+eyRfKCl9KTt2YXIgWUplPXAoKCk9PntHSmUoKX0pO2Z1bmN0aW9uIFVqcihlKXtmb3IodmFyIHQ9MTt0PGFyZ3VtZW50cy5sZW5ndGg7dCsrKXt2YXIgcj1hcmd1bWVudHNbdF07Zm9yKHZhciBpIGluIHIpci5oYXNPd25Qcm9wZXJ0eShpKSYmKGVbaV09cltpXSl9cmV0dXJuIGV9ZnVuY3Rpb24gS3JlKGUsdCl7cmV0dXJuIEFycmF5KHQrMSkuam9pbihlKX1mdW5jdGlvbiBaSmUoZSl7cmV0dXJuIGUucmVwbGFjZSgvXlxuKi8sIiIpfWZ1bmN0aW9uIFhKZShlKXtmb3IodmFyIHQ9ZS5sZW5ndGg7dD4wJiZlW3QtMV09PT1gCmA7KXQtLTtyZXR1cm4gZS5zdWJzdHJpbmcoMCx0KX1mdW5jdGlvbiBRSmUoZSl7cmV0dXJuIFhKZShaSmUoZSkpfWZ1bmN0aW9uIGUxZShlKXtyZXR1cm4gdDFlKGUsV2pyKX1mdW5jdGlvbiBLSmUoZSl7cmV0dXJuIHQxZShlLEpKZSl9ZnVuY3Rpb24gR2pyKGUpe3JldHVybiB0S2UoZSxKSmUpfWZ1bmN0aW9uIFlqcihlKXtyZXR1cm4gdDFlKGUsZUtlKX1mdW5jdGlvbiBaanIoZSl7cmV0dXJuIHRLZShlLGVLZSl9ZnVuY3Rpb24gdDFlKGUsdCl7cmV0dXJuIHQuaW5kZXhPZihlLm5vZGVOYW1lKT49MH1mdW5jdGlvbiB0S2UoZSx0KXtyZXR1cm4gZS5nZXRFbGVtZW50c0J5VGFnTmFtZSYmdC5zb21lKGZ1bmN0aW9uKHIpe3JldHVybiBlLmdldEVsZW1lbnRzQnlUYWdOYW1lKHIpLmxlbmd0aH0pfWZ1bmN0aW9uIHpMKGUpe3JldHVybiBlP2UucmVwbGFjZSgvKFxuK1xzKikrL2csYApgKToiIn1mdW5jdGlvbiByS2UoZSl7dGhpcy5vcHRpb25zPWUsdGhpcy5fa2VlcD1bXSx0aGlzLl9yZW1vdmU9W10sdGhpcy5ibGFua1J1bGU9e3JlcGxhY2VtZW50OmUuYmxhbmtSZXBsYWNlbWVudH0sdGhpcy5rZWVwUmVwbGFjZW1lbnQ9ZS5rZWVwUmVwbGFjZW1lbnQsdGhpcy5kZWZhdWx0UnVsZT17cmVwbGFjZW1lbnQ6ZS5kZWZhdWx0UmVwbGFjZW1lbnR9LHRoaXMuYXJyYXk9W107Zm9yKHZhciB0IGluIGUucnVsZXMpdGhpcy5hcnJheS5wdXNoKGUucnVsZXNbdF0pfWZ1bmN0aW9uIHIxZShlLHQscil7Zm9yKHZhciBpPTA7aTxlLmxlbmd0aDtpKyspe3ZhciBhPWVbaV07aWYoWGpyKGEsdCxyKSlyZXR1cm4gYX19ZnVuY3Rpb24gWGpyKGUsdCxyKXt2YXIgaT1lLmZpbHRlcjtpZih0eXBlb2YgaT09InN0cmluZyIpe2lmKGk9PT10Lm5vZGVOYW1lLnRvTG93ZXJDYXNlKCkpcmV0dXJuITB9ZWxzZSBpZihBcnJheS5pc0FycmF5KGkpKXtpZihpLmluZGV4T2YodC5ub2RlTmFtZS50b0xvd2VyQ2FzZSgpKT4tMSlyZXR1cm4hMH1lbHNlIGlmKHR5cGVvZiBpPT0iZnVuY3Rpb24iKXtpZihpLmNhbGwoZSx0LHIpKXJldHVybiEwfWVsc2UgdGhyb3cgbmV3IFR5cGVFcnJvcigiYGZpbHRlcmAgbmVlZHMgdG8gYmUgYSBzdHJpbmcsIGFycmF5LCBvciBmdW5jdGlvbiIpfWZ1bmN0aW9uIFFqcihlKXt2YXIgdD1lLmVsZW1lbnQscj1lLmlzQmxvY2ssaT1lLmlzVm9pZCxhPWUuaXNQcmV8fGZ1bmN0aW9uKGQpe3JldHVybiBkLm5vZGVOYW1lPT09IlBSRSJ9O2lmKCEoIXQuZmlyc3RDaGlsZHx8YSh0KSkpe2Zvcih2YXIgbj1udWxsLG89ITEscz1udWxsLGw9aUtlKHMsdCxhKTtsIT09dDspe2lmKGwubm9kZVR5cGU9PT0zfHxsLm5vZGVUeXBlPT09NCl7dmFyIGM9bC5kYXRhLnJlcGxhY2UoL1sgXHJcblx0XSsvZywiICIpO2lmKCghbnx8LyAkLy50ZXN0KG4uZGF0YSkpJiYhbyYmY1swXT09PSIgIiYmKGM9Yy5zdWJzdHIoMSkpLCFjKXtsPWkxZShsKTtjb250aW51ZX1sLmRhdGE9YyxuPWx9ZWxzZSBpZihsLm5vZGVUeXBlPT09MSlyKGwpfHxsLm5vZGVOYW1lPT09IkJSIj8obiYmKG4uZGF0YT1uLmRhdGEucmVwbGFjZSgvICQvLCIiKSksbj1udWxsLG89ITEpOmkobCl8fGEobCk/KG49bnVsbCxvPSEwKTpuJiYobz0hMSk7ZWxzZXtsPWkxZShsKTtjb250aW51ZX12YXIgdT1pS2UocyxsLGEpO3M9bCxsPXV9biYmKG4uZGF0YT1uLmRhdGEucmVwbGFjZSgvICQvLCIiKSxuLmRhdGF8fGkxZShuKSl9fWZ1bmN0aW9uIGkxZShlKXt2YXIgdD1lLm5leHRTaWJsaW5nfHxlLnBhcmVudE5vZGU7cmV0dXJuIGUucGFyZW50Tm9kZS5yZW1vdmVDaGlsZChlKSx0fWZ1bmN0aW9uIGlLZShlLHQscil7cmV0dXJuIGUmJmUucGFyZW50Tm9kZT09PXR8fHIodCk/dC5uZXh0U2libGluZ3x8dC5wYXJlbnROb2RlOnQuZmlyc3RDaGlsZHx8dC5uZXh0U2libGluZ3x8dC5wYXJlbnROb2RlfWZ1bmN0aW9uIEpqcigpe3ZhciBlPWExZS5ET01QYXJzZXIsdD0hMTt0cnl7bmV3IGUoKS5wYXJzZUZyb21TdHJpbmcoIiIsInRleHQvaHRtbCIpJiYodD0hMCl9Y2F0Y2h7fXJldHVybiB0fWZ1bmN0aW9uIEtqcigpe3ZhciBlPWZ1bmN0aW9uKCl7fTtyZXR1cm4gZVZyKCk/ZS5wcm90b3R5cGUucGFyc2VGcm9tU3RyaW5nPWZ1bmN0aW9uKHQpe3ZhciByPW5ldyB3aW5kb3cuQWN0aXZlWE9iamVjdCgiaHRtbGZpbGUiKTtyZXR1cm4gci5kZXNpZ25Nb2RlPSJvbiIsci5vcGVuKCksci53cml0ZSh0KSxyLmNsb3NlKCkscn06ZS5wcm90b3R5cGUucGFyc2VGcm9tU3RyaW5nPWZ1bmN0aW9uKHQpe3ZhciByPWRvY3VtZW50LmltcGxlbWVudGF0aW9uLmNyZWF0ZUhUTUxEb2N1bWVudCgiIik7cmV0dXJuIHIub3BlbigpLHIud3JpdGUodCksci5jbG9zZSgpLHJ9LGV9ZnVuY3Rpb24gZVZyKCl7dmFyIGU9ITE7dHJ5e2RvY3VtZW50LmltcGxlbWVudGF0aW9uLmNyZWF0ZUhUTUxEb2N1bWVudCgiIikub3BlbigpfWNhdGNoe2ExZS5BY3RpdmVYT2JqZWN0JiYoZT0hMCl9cmV0dXJuIGV9ZnVuY3Rpb24gclZyKGUsdCl7dmFyIHI7aWYodHlwZW9mIGU9PSJzdHJpbmciKXt2YXIgaT1pVnIoKS5wYXJzZUZyb21TdHJpbmcoJzx4LXR1cm5kb3duIGlkPSJ0dXJuZG93bi1yb290Ij4nK2UrIjwveC10dXJuZG93bj4iLCJ0ZXh0L2h0bWwiKTtyPWkuZ2V0RWxlbWVudEJ5SWQoInR1cm5kb3duLXJvb3QiKX1lbHNlIHI9ZS5jbG9uZU5vZGUoITApO3JldHVybiBRanIoe2VsZW1lbnQ6cixpc0Jsb2NrOmUxZSxpc1ZvaWQ6S0plLGlzUHJlOnQucHJlZm9ybWF0dGVkQ29kZT9hVnI6bnVsbH0pLHJ9ZnVuY3Rpb24gaVZyKCl7cmV0dXJuIG4xZT1uMWV8fG5ldyB0VnIsbjFlfWZ1bmN0aW9uIGFWcihlKXtyZXR1cm4gZS5ub2RlTmFtZT09PSJQUkUifHxlLm5vZGVOYW1lPT09IkNPREUifWZ1bmN0aW9uIG5WcihlLHQpe3JldHVybiBlLmlzQmxvY2s9ZTFlKGUpLGUuaXNDb2RlPWUubm9kZU5hbWU9PT0iQ09ERSJ8fGUucGFyZW50Tm9kZS5pc0NvZGUsZS5pc0JsYW5rPW9WcihlKSxlLmZsYW5raW5nV2hpdGVzcGFjZT1zVnIoZSx0KSxlfWZ1bmN0aW9uIG9WcihlKXtyZXR1cm4hS0plKGUpJiYhWWpyKGUpJiYvXlxzKiQvaS50ZXN0KGUudGV4dENvbnRlbnQpJiYhR2pyKGUpJiYhWmpyKGUpfWZ1bmN0aW9uIHNWcihlLHQpe2lmKGUuaXNCbG9ja3x8dC5wcmVmb3JtYXR0ZWRDb2RlJiZlLmlzQ29kZSlyZXR1cm57bGVhZGluZzoiIix0cmFpbGluZzoiIn07dmFyIHI9bFZyKGUudGV4dENvbnRlbnQpO3JldHVybiByLmxlYWRpbmdBc2NpaSYmYUtlKCJsZWZ0IixlLHQpJiYoci5sZWFkaW5nPXIubGVhZGluZ05vbkFzY2lpKSxyLnRyYWlsaW5nQXNjaWkmJmFLZSgicmlnaHQiLGUsdCkmJihyLnRyYWlsaW5nPXIudHJhaWxpbmdOb25Bc2NpaSkse2xlYWRpbmc6ci5sZWFkaW5nLHRyYWlsaW5nOnIudHJhaWxpbmd9fWZ1bmN0aW9uIGxWcihlKXt2YXIgdD1lLm1hdGNoKC9eKChbIFx0XHJcbl0qKShccyopKSg/Oig/PVxTKVtcc1xTXSpcUyk/KChccyo/KShbIFx0XHJcbl0qKSkkLyk7cmV0dXJue2xlYWRpbmc6dFsxXSxsZWFkaW5nQXNjaWk6dFsyXSxsZWFkaW5nTm9uQXNjaWk6dFszXSx0cmFpbGluZzp0WzRdLHRyYWlsaW5nTm9uQXNjaWk6dFs1XSx0cmFpbGluZ0FzY2lpOnRbNl19fWZ1bmN0aW9uIGFLZShlLHQscil7dmFyIGksYSxuO3JldHVybiBlPT09ImxlZnQiPyhpPXQucHJldmlvdXNTaWJsaW5nLGE9LyAkLyk6KGk9dC5uZXh0U2libGluZyxhPS9eIC8pLGkmJihpLm5vZGVUeXBlPT09Mz9uPWEudGVzdChpLm5vZGVWYWx1ZSk6ci5wcmVmb3JtYXR0ZWRDb2RlJiZpLm5vZGVOYW1lPT09IkNPREUiP249ITE6aS5ub2RlVHlwZT09PTEmJiFlMWUoaSkmJihuPWEudGVzdChpLnRleHRDb250ZW50KSkpLG59ZnVuY3Rpb24gQ0woZSl7aWYoISh0aGlzIGluc3RhbmNlb2YgQ0wpKXJldHVybiBuZXcgQ0woZSk7dmFyIHQ9e3J1bGVzOkFhLGhlYWRpbmdTdHlsZToic2V0ZXh0IixocjoiKiAqICoiLGJ1bGxldExpc3RNYXJrZXI6IioiLGNvZGVCbG9ja1N0eWxlOiJpbmRlbnRlZCIsZmVuY2U6ImBgYCIsZW1EZWxpbWl0ZXI6Il8iLHN0cm9uZ0RlbGltaXRlcjoiKioiLGxpbmtTdHlsZToiaW5saW5lZCIsbGlua1JlZmVyZW5jZVN0eWxlOiJmdWxsIixicjoiICAiLHByZWZvcm1hdHRlZENvZGU6ITEsYmxhbmtSZXBsYWNlbWVudDpmdW5jdGlvbihyLGkpe3JldHVybiBpLmlzQmxvY2s/YAoKYDoiIn0sa2VlcFJlcGxhY2VtZW50OmZ1bmN0aW9uKHIsaSl7cmV0dXJuIGkuaXNCbG9jaz9gCgpgK2kub3V0ZXJIVE1MK2AKCmA6aS5vdXRlckhUTUx9LGRlZmF1bHRSZXBsYWNlbWVudDpmdW5jdGlvbihyLGkpe3JldHVybiBpLmlzQmxvY2s/YAoKYCtyK2AKCmA6cn19O3RoaXMub3B0aW9ucz1VanIoe30sdCxlKSx0aGlzLnJ1bGVzPW5ldyByS2UodGhpcy5vcHRpb25zKX1mdW5jdGlvbiBuS2UoZSl7dmFyIHQ9dGhpcztyZXR1cm4gY1ZyLmNhbGwoZS5jaGlsZE5vZGVzLGZ1bmN0aW9uKHIsaSl7aT1uZXcgblZyKGksdC5vcHRpb25zKTt2YXIgYT0iIjtyZXR1cm4gaS5ub2RlVHlwZT09PTM/YT1pLmlzQ29kZT9pLm5vZGVWYWx1ZTp0LmVzY2FwZShpLm5vZGVWYWx1ZSk6aS5ub2RlVHlwZT09PTEmJihhPXBWci5jYWxsKHQsaSkpLG9LZShyLGEpfSwiIil9ZnVuY3Rpb24gdVZyKGUpe3ZhciB0PXRoaXM7cmV0dXJuIHRoaXMucnVsZXMuZm9yRWFjaChmdW5jdGlvbihyKXt0eXBlb2Ygci5hcHBlbmQ9PSJmdW5jdGlvbiImJihlPW9LZShlLHIuYXBwZW5kKHQub3B0aW9ucykpKX0pLGUucmVwbGFjZSgvXltcdFxyXG5dKy8sIiIpLnJlcGxhY2UoL1tcdFxyXG5cc10rJC8sIiIpfWZ1bmN0aW9uIHBWcihlKXt2YXIgdD10aGlzLnJ1bGVzLmZvck5vZGUoZSkscj1uS2UuY2FsbCh0aGlzLGUpLGk9ZS5mbGFua2luZ1doaXRlc3BhY2U7cmV0dXJuKGkubGVhZGluZ3x8aS50cmFpbGluZykmJihyPXIudHJpbSgpKSxpLmxlYWRpbmcrdC5yZXBsYWNlbWVudChyLGUsdGhpcy5vcHRpb25zKStpLnRyYWlsaW5nfWZ1bmN0aW9uIG9LZShlLHQpe3ZhciByPVhKZShlKSxpPVpKZSh0KSxhPU1hdGgubWF4KGUubGVuZ3RoLXIubGVuZ3RoLHQubGVuZ3RoLWkubGVuZ3RoKSxuPWAKCmAuc3Vic3RyaW5nKDAsYSk7cmV0dXJuIHIrbitpfWZ1bmN0aW9uIGhWcihlKXtyZXR1cm4gZSE9bnVsbCYmKHR5cGVvZiBlPT0ic3RyaW5nInx8ZS5ub2RlVHlwZSYmKGUubm9kZVR5cGU9PT0xfHxlLm5vZGVUeXBlPT09OXx8ZS5ub2RlVHlwZT09PTExKSl9dmFyIFdqcixKSmUsZUtlLEFhLGExZSx0VnIsbjFlLGNWcixkVnIsVEwsc0tlPXAoKCk9PntXanI9WyJBRERSRVNTIiwiQVJUSUNMRSIsIkFTSURFIiwiQVVESU8iLCJCTE9DS1FVT1RFIiwiQk9EWSIsIkNBTlZBUyIsIkNFTlRFUiIsIkREIiwiRElSIiwiRElWIiwiREwiLCJEVCIsIkZJRUxEU0VUIiwiRklHQ0FQVElPTiIsIkZJR1VSRSIsIkZPT1RFUiIsIkZPUk0iLCJGUkFNRVNFVCIsIkgxIiwiSDIiLCJIMyIsIkg0IiwiSDUiLCJINiIsIkhFQURFUiIsIkhHUk9VUCIsIkhSIiwiSFRNTCIsIklTSU5ERVgiLCJMSSIsIk1BSU4iLCJNRU5VIiwiTkFWIiwiTk9GUkFNRVMiLCJOT1NDUklQVCIsIk9MIiwiT1VUUFVUIiwiUCIsIlBSRSIsIlNFQ1RJT04iLCJUQUJMRSIsIlRCT0RZIiwiVEQiLCJURk9PVCIsIlRIIiwiVEhFQUQiLCJUUiIsIlVMIl07SkplPVsiQVJFQSIsIkJBU0UiLCJCUiIsIkNPTCIsIkNPTU1BTkQiLCJFTUJFRCIsIkhSIiwiSU1HIiwiSU5QVVQiLCJLRVlHRU4iLCJMSU5LIiwiTUVUQSIsIlBBUkFNIiwiU09VUkNFIiwiVFJBQ0siLCJXQlIiXTtlS2U9WyJBIiwiVEFCTEUiLCJUSEVBRCIsIlRCT0RZIiwiVEZPT1QiLCJUSCIsIlREIiwiSUZSQU1FIiwiU0NSSVBUIiwiQVVESU8iLCJWSURFTyJdO0FhPXt9O0FhLnBhcmFncmFwaD17ZmlsdGVyOiJwIixyZXBsYWNlbWVudDpmdW5jdGlvbihlKXtyZXR1cm5gCgpgK2UrYAoKYH19LEFhLmxpbmVCcmVhaz17ZmlsdGVyOiJiciIscmVwbGFjZW1lbnQ6ZnVuY3Rpb24oZSx0LHIpe3JldHVybiByLmJyK2AKYH19LEFhLmhlYWRpbmc9e2ZpbHRlcjpbImgxIiwiaDIiLCJoMyIsImg0IiwiaDUiLCJoNiJdLHJlcGxhY2VtZW50OmZ1bmN0aW9uKGUsdCxyKXt2YXIgaT1OdW1iZXIodC5ub2RlTmFtZS5jaGFyQXQoMSkpO2lmKHIuaGVhZGluZ1N0eWxlPT09InNldGV4dCImJmk8Myl7dmFyIGE9S3JlKGk9PT0xPyI9IjoiLSIsZS5sZW5ndGgpO3JldHVybmAKCmArZStgCmArYStgCgpgfWVsc2UgcmV0dXJuYAoKYCtLcmUoIiMiLGkpKyIgIitlK2AKCmB9fSxBYS5ibG9ja3F1b3RlPXtmaWx0ZXI6ImJsb2NrcXVvdGUiLHJlcGxhY2VtZW50OmZ1bmN0aW9uKGUpe3JldHVybiBlPVFKZShlKS5yZXBsYWNlKC9eL2dtLCI+ICIpLGAKCmArZStgCgpgfX0sQWEubGlzdD17ZmlsdGVyOlsidWwiLCJvbCJdLHJlcGxhY2VtZW50OmZ1bmN0aW9uKGUsdCl7dmFyIHI9dC5wYXJlbnROb2RlO3JldHVybiByLm5vZGVOYW1lPT09IkxJIiYmci5sYXN0RWxlbWVudENoaWxkPT09dD9gCmArZTpgCgpgK2UrYAoKYH19LEFhLmxpc3RJdGVtPXtmaWx0ZXI6ImxpIixyZXBsYWNlbWVudDpmdW5jdGlvbihlLHQscil7dmFyIGk9ci5idWxsZXRMaXN0TWFya2VyKyIgICAiLGE9dC5wYXJlbnROb2RlO2lmKGEubm9kZU5hbWU9PT0iT0wiKXt2YXIgbj1hLmdldEF0dHJpYnV0ZSgic3RhcnQiKSxvPUFycmF5LnByb3RvdHlwZS5pbmRleE9mLmNhbGwoYS5jaGlsZHJlbix0KTtpPShuP051bWJlcihuKStvOm8rMSkrIi4gICJ9dmFyIHM9L1xuJC8udGVzdChlKTtyZXR1cm4gZT1RSmUoZSkrKHM/YApgOiIiKSxlPWUucmVwbGFjZSgvXG4vZ20sYApgKyIgIi5yZXBlYXQoaS5sZW5ndGgpKSxpK2UrKHQubmV4dFNpYmxpbmc/YApgOiIiKX19LEFhLmluZGVudGVkQ29kZUJsb2NrPXtmaWx0ZXI6ZnVuY3Rpb24oZSx0KXtyZXR1cm4gdC5jb2RlQmxvY2tTdHlsZT09PSJpbmRlbnRlZCImJmUubm9kZU5hbWU9PT0iUFJFIiYmZS5maXJzdENoaWxkJiZlLmZpcnN0Q2hpbGQubm9kZU5hbWU9PT0iQ09ERSJ9LHJlcGxhY2VtZW50OmZ1bmN0aW9uKGUsdCxyKXtyZXR1cm5gCgogICAgYCt0LmZpcnN0Q2hpbGQudGV4dENvbnRlbnQucmVwbGFjZSgvXG4vZyxgCiAgICBgKStgCgpgfX0sQWEuZmVuY2VkQ29kZUJsb2NrPXtmaWx0ZXI6ZnVuY3Rpb24oZSx0KXtyZXR1cm4gdC5jb2RlQmxvY2tTdHlsZT09PSJmZW5jZWQiJiZlLm5vZGVOYW1lPT09IlBSRSImJmUuZmlyc3RDaGlsZCYmZS5maXJzdENoaWxkLm5vZGVOYW1lPT09IkNPREUifSxyZXBsYWNlbWVudDpmdW5jdGlvbihlLHQscil7Zm9yKHZhciBpPXQuZmlyc3RDaGlsZC5nZXRBdHRyaWJ1dGUoImNsYXNzIil8fCIiLGE9KGkubWF0Y2goL2xhbmd1YWdlLShcUyspLyl8fFtudWxsLCIiXSlbMV0sbj10LmZpcnN0Q2hpbGQudGV4dENvbnRlbnQsbz1yLmZlbmNlLmNoYXJBdCgwKSxzPTMsbD1uZXcgUmVnRXhwKCJeIitvKyJ7Myx9IiwiZ20iKSxjO2M9bC5leGVjKG4pOyljWzBdLmxlbmd0aD49cyYmKHM9Y1swXS5sZW5ndGgrMSk7dmFyIHU9S3JlKG8scyk7cmV0dXJuYAoKYCt1K2ErYApgK24ucmVwbGFjZSgvXG4kLywiIikrYApgK3UrYAoKYH19LEFhLmhvcml6b250YWxSdWxlPXtmaWx0ZXI6ImhyIixyZXBsYWNlbWVudDpmdW5jdGlvbihlLHQscil7cmV0dXJuYAoKYCtyLmhyK2AKCmB9fSxBYS5pbmxpbmVMaW5rPXtmaWx0ZXI6ZnVuY3Rpb24oZSx0KXtyZXR1cm4gdC5saW5rU3R5bGU9PT0iaW5saW5lZCImJmUubm9kZU5hbWU9PT0iQSImJmUuZ2V0QXR0cmlidXRlKCJocmVmIil9LHJlcGxhY2VtZW50OmZ1bmN0aW9uKGUsdCl7dmFyIHI9dC5nZXRBdHRyaWJ1dGUoImhyZWYiKTtyJiYocj1yLnJlcGxhY2UoLyhbKCldKS9nLCJcXCQxIikpO3ZhciBpPXpMKHQuZ2V0QXR0cmlidXRlKCJ0aXRsZSIpKTtyZXR1cm4gaSYmKGk9JyAiJytpLnJlcGxhY2UoLyIvZywnXFwiJykrJyInKSwiWyIrZSsiXSgiK3IraSsiKSJ9fSxBYS5yZWZlcmVuY2VMaW5rPXtmaWx0ZXI6ZnVuY3Rpb24oZSx0KXtyZXR1cm4gdC5saW5rU3R5bGU9PT0icmVmZXJlbmNlZCImJmUubm9kZU5hbWU9PT0iQSImJmUuZ2V0QXR0cmlidXRlKCJocmVmIil9LHJlcGxhY2VtZW50OmZ1bmN0aW9uKGUsdCxyKXt2YXIgaT10LmdldEF0dHJpYnV0ZSgiaHJlZiIpLGE9ekwodC5nZXRBdHRyaWJ1dGUoInRpdGxlIikpO2EmJihhPScgIicrYSsnIicpO3ZhciBuLG87c3dpdGNoKHIubGlua1JlZmVyZW5jZVN0eWxlKXtjYXNlImNvbGxhcHNlZCI6bj0iWyIrZSsiXVtdIixvPSJbIitlKyJdOiAiK2krYTticmVhaztjYXNlInNob3J0Y3V0IjpuPSJbIitlKyJdIixvPSJbIitlKyJdOiAiK2krYTticmVhaztkZWZhdWx0OnZhciBzPXRoaXMucmVmZXJlbmNlcy5sZW5ndGgrMTtuPSJbIitlKyJdWyIrcysiXSIsbz0iWyIrcysiXTogIitpK2F9cmV0dXJuIHRoaXMucmVmZXJlbmNlcy5wdXNoKG8pLG59LHJlZmVyZW5jZXM6W10sYXBwZW5kOmZ1bmN0aW9uKGUpe3ZhciB0PSIiO3JldHVybiB0aGlzLnJlZmVyZW5jZXMubGVuZ3RoJiYodD1gCgpgK3RoaXMucmVmZXJlbmNlcy5qb2luKGAKYCkrYAoKYCx0aGlzLnJlZmVyZW5jZXM9W10pLHR9fSxBYS5lbXBoYXNpcz17ZmlsdGVyOlsiZW0iLCJpIl0scmVwbGFjZW1lbnQ6ZnVuY3Rpb24oZSx0LHIpe3JldHVybiBlLnRyaW0oKT9yLmVtRGVsaW1pdGVyK2Urci5lbURlbGltaXRlcjoiIn19LEFhLnN0cm9uZz17ZmlsdGVyOlsic3Ryb25nIiwiYiJdLHJlcGxhY2VtZW50OmZ1bmN0aW9uKGUsdCxyKXtyZXR1cm4gZS50cmltKCk/ci5zdHJvbmdEZWxpbWl0ZXIrZStyLnN0cm9uZ0RlbGltaXRlcjoiIn19LEFhLmNvZGU9e2ZpbHRlcjpmdW5jdGlvbihlKXt2YXIgdD1lLnByZXZpb3VzU2libGluZ3x8ZS5uZXh0U2libGluZyxyPWUucGFyZW50Tm9kZS5ub2RlTmFtZT09PSJQUkUiJiYhdDtyZXR1cm4gZS5ub2RlTmFtZT09PSJDT0RFIiYmIXJ9LHJlcGxhY2VtZW50OmZ1bmN0aW9uKGUpe2lmKCFlKXJldHVybiIiO2U9ZS5yZXBsYWNlKC9ccj9cbnxcci9nLCIgIik7Zm9yKHZhciB0PS9eYHxeIC4qP1teIF0uKiAkfGAkLy50ZXN0KGUpPyIgIjoiIixyPSJgIixpPWUubWF0Y2goL2ArL2dtKXx8W107aS5pbmRleE9mKHIpIT09LTE7KXI9cisiYCI7cmV0dXJuIHIrdCtlK3Qrcn19LEFhLmltYWdlPXtmaWx0ZXI6ImltZyIscmVwbGFjZW1lbnQ6ZnVuY3Rpb24oZSx0KXt2YXIgcj16TCh0LmdldEF0dHJpYnV0ZSgiYWx0IikpLGk9dC5nZXRBdHRyaWJ1dGUoInNyYyIpfHwiIixhPXpMKHQuZ2V0QXR0cmlidXRlKCJ0aXRsZSIpKSxuPWE/JyAiJythKyciJzoiIjtyZXR1cm4gaT8iIVsiK3IrIl0oIitpK24rIikiOiIifX07cktlLnByb3RvdHlwZT17YWRkOmZ1bmN0aW9uKGUsdCl7dGhpcy5hcnJheS51bnNoaWZ0KHQpfSxrZWVwOmZ1bmN0aW9uKGUpe3RoaXMuX2tlZXAudW5zaGlmdCh7ZmlsdGVyOmUscmVwbGFjZW1lbnQ6dGhpcy5rZWVwUmVwbGFjZW1lbnR9KX0scmVtb3ZlOmZ1bmN0aW9uKGUpe3RoaXMuX3JlbW92ZS51bnNoaWZ0KHtmaWx0ZXI6ZSxyZXBsYWNlbWVudDpmdW5jdGlvbigpe3JldHVybiIifX0pfSxmb3JOb2RlOmZ1bmN0aW9uKGUpe2lmKGUuaXNCbGFuaylyZXR1cm4gdGhpcy5ibGFua1J1bGU7dmFyIHQ7cmV0dXJuKHQ9cjFlKHRoaXMuYXJyYXksZSx0aGlzLm9wdGlvbnMpKXx8KHQ9cjFlKHRoaXMuX2tlZXAsZSx0aGlzLm9wdGlvbnMpKXx8KHQ9cjFlKHRoaXMuX3JlbW92ZSxlLHRoaXMub3B0aW9ucykpP3Q6dGhpcy5kZWZhdWx0UnVsZX0sZm9yRWFjaDpmdW5jdGlvbihlKXtmb3IodmFyIHQ9MDt0PHRoaXMuYXJyYXkubGVuZ3RoO3QrKyllKHRoaXMuYXJyYXlbdF0sdCl9fTthMWU9dHlwZW9mIHdpbmRvdzwidSI/d2luZG93Ont9O3RWcj1KanIoKT9hMWUuRE9NUGFyc2VyOktqcigpO2NWcj1BcnJheS5wcm90b3R5cGUucmVkdWNlLGRWcj1bWy9cXC9nLCJcXFxcIl0sWy9cKi9nLCJcXCoiXSxbL14tL2csIlxcLSJdLFsvXlwrIC9nLCJcXCsgIl0sWy9eKD0rKS9nLCJcXCQxIl0sWy9eKCN7MSw2fSkgL2csIlxcJDEgIl0sWy9gL2csIlxcYCJdLFsvXn5+fi9nLCJcXH5+fiJdLFsvXFsvZywiXFxbIl0sWy9cXS9nLCJcXF0iXSxbL14+L2csIlxcPiJdLFsvXy9nLCJcXF8iXSxbL14oXGQrKVwuIC9nLCIkMVxcLiAiXV07Q0wucHJvdG90eXBlPXt0dXJuZG93bjpmdW5jdGlvbihlKXtpZighaFZyKGUpKXRocm93IG5ldyBUeXBlRXJyb3IoZSsiIGlzIG5vdCBhIHN0cmluZywgb3IgYW4gZWxlbWVudC9kb2N1bWVudC9mcmFnbWVudCBub2RlLiIpO2lmKGU9PT0iIilyZXR1cm4iIjt2YXIgdD1uS2UuY2FsbCh0aGlzLG5ldyByVnIoZSx0aGlzLm9wdGlvbnMpKTtyZXR1cm4gdVZyLmNhbGwodGhpcyx0KX0sdXNlOmZ1bmN0aW9uKGUpe2lmKEFycmF5LmlzQXJyYXkoZSkpZm9yKHZhciB0PTA7dDxlLmxlbmd0aDt0KyspdGhpcy51c2UoZVt0XSk7ZWxzZSBpZih0eXBlb2YgZT09ImZ1bmN0aW9uIillKHRoaXMpO2Vsc2UgdGhyb3cgbmV3IFR5cGVFcnJvcigicGx1Z2luIG11c3QgYmUgYSBGdW5jdGlvbiBvciBhbiBBcnJheSBvZiBGdW5jdGlvbnMiKTtyZXR1cm4gdGhpc30sYWRkUnVsZTpmdW5jdGlvbihlLHQpe3JldHVybiB0aGlzLnJ1bGVzLmFkZChlLHQpLHRoaXN9LGtlZXA6ZnVuY3Rpb24oZSl7cmV0dXJuIHRoaXMucnVsZXMua2VlcChlKSx0aGlzfSxyZW1vdmU6ZnVuY3Rpb24oZSl7cmV0dXJuIHRoaXMucnVsZXMucmVtb3ZlKGUpLHRoaXN9LGVzY2FwZTpmdW5jdGlvbihlKXtyZXR1cm4gZFZyLnJlZHVjZShmdW5jdGlvbih0LHIpe3JldHVybiB0LnJlcGxhY2UoclswXSxyWzFdKX0sZSl9fTtUTD1DTH0pO3ZhciBlZz17fTtGZShlZyx7Z2ZtOigpPT5kS2UsaGlnaGxpZ2h0ZWRDb2RlQmxvY2s6KCk9PnMxZSxzdHJpa2V0aHJvdWdoOigpPT5sMWUsdGFibGVzOigpPT5jMWUsdGFza0xpc3RJdGVtczooKT0+ZDFlfSk7ZnVuY3Rpb24gczFlKGUpe2UuYWRkUnVsZSgiaGlnaGxpZ2h0ZWRDb2RlQmxvY2siLHtmaWx0ZXI6ZnVuY3Rpb24odCl7dmFyIHI9dC5maXJzdENoaWxkO3JldHVybiB0Lm5vZGVOYW1lPT09IkRJViImJmxLZS50ZXN0KHQuY2xhc3NOYW1lKSYmciYmci5ub2RlTmFtZT09PSJQUkUifSxyZXBsYWNlbWVudDpmdW5jdGlvbih0LHIsaSl7dmFyIGE9ci5jbGFzc05hbWV8fCIiLG49KGEubWF0Y2gobEtlKXx8W251bGwsIiJdKVsxXTtyZXR1cm5gCgpgK2kuZmVuY2UrbitgCmArci5maXJzdENoaWxkLnRleHRDb250ZW50K2AKYCtpLmZlbmNlK2AKCmB9fSl9ZnVuY3Rpb24gbDFlKGUpe2UuYWRkUnVsZSgic3RyaWtldGhyb3VnaCIse2ZpbHRlcjpbImRlbCIsInMiLCJzdHJpa2UiXSxyZXBsYWNlbWVudDpmdW5jdGlvbih0KXtyZXR1cm4ifiIrdCsifiJ9fSl9ZnVuY3Rpb24gbzFlKGUpe3ZhciB0PWUucGFyZW50Tm9kZTtyZXR1cm4gdC5ub2RlTmFtZT09PSJUSEVBRCJ8fHQuZmlyc3RDaGlsZD09PWUmJih0Lm5vZGVOYW1lPT09IlRBQkxFInx8Z1ZyKHQpKSYmbVZyLmNhbGwoZS5jaGlsZE5vZGVzLGZ1bmN0aW9uKHIpe3JldHVybiByLm5vZGVOYW1lPT09IlRIIn0pfWZ1bmN0aW9uIGdWcihlKXt2YXIgdD1lLnByZXZpb3VzU2libGluZztyZXR1cm4gZS5ub2RlTmFtZT09PSJUQk9EWSImJighdHx8dC5ub2RlTmFtZT09PSJUSEVBRCImJi9eXHMqJC9pLnRlc3QodC50ZXh0Q29udGVudCkpfWZ1bmN0aW9uIGNLZShlLHQpe3ZhciByPWZWci5jYWxsKHQucGFyZW50Tm9kZS5jaGlsZE5vZGVzLHQpLGk9IiAiO3JldHVybiByPT09MCYmKGk9InwgIiksaStlKyIgfCJ9ZnVuY3Rpb24gYzFlKGUpe2Uua2VlcChmdW5jdGlvbihyKXtyZXR1cm4gci5ub2RlTmFtZT09PSJUQUJMRSImJiFvMWUoci5yb3dzWzBdKX0pO2Zvcih2YXIgdCBpbiB3cCllLmFkZFJ1bGUodCx3cFt0XSl9ZnVuY3Rpb24gZDFlKGUpe2UuYWRkUnVsZSgidGFza0xpc3RJdGVtcyIse2ZpbHRlcjpmdW5jdGlvbih0KXtyZXR1cm4gdC50eXBlPT09ImNoZWNrYm94IiYmdC5wYXJlbnROb2RlLm5vZGVOYW1lPT09IkxJIn0scmVwbGFjZW1lbnQ6ZnVuY3Rpb24odCxyKXtyZXR1cm4oci5jaGVja2VkPyJbeF0iOiJbIF0iKSsiICJ9fSl9ZnVuY3Rpb24gZEtlKGUpe2UudXNlKFtzMWUsbDFlLGMxZSxkMWVdKX12YXIgbEtlLGZWcixtVnIsd3AsdUtlPXAoKCk9PntsS2U9L2hpZ2hsaWdodC0oPzp0ZXh0fHNvdXJjZSktKFthLXowLTldKykvO2ZWcj1BcnJheS5wcm90b3R5cGUuaW5kZXhPZixtVnI9QXJyYXkucHJvdG90eXBlLmV2ZXJ5LHdwPXt9O3dwLnRhYmxlQ2VsbD17ZmlsdGVyOlsidGgiLCJ0ZCJdLHJlcGxhY2VtZW50OmZ1bmN0aW9uKGUsdCl7cmV0dXJuIGNLZShlLHQpfX0sd3AudGFibGVSb3c9e2ZpbHRlcjoidHIiLHJlcGxhY2VtZW50OmZ1bmN0aW9uKGUsdCl7dmFyIHI9IiIsaT17bGVmdDoiOi0tIixyaWdodDoiLS06IixjZW50ZXI6IjotOiJ9O2lmKG8xZSh0KSlmb3IodmFyIGE9MDthPHQuY2hpbGROb2Rlcy5sZW5ndGg7YSsrKXt2YXIgbj0iLS0tIixvPSh0LmNoaWxkTm9kZXNbYV0uZ2V0QXR0cmlidXRlKCJhbGlnbiIpfHwiIikudG9Mb3dlckNhc2UoKTtvJiYobj1pW29dfHxuKSxyKz1jS2Uobix0LmNoaWxkTm9kZXNbYV0pfXJldHVybmAKYCtlKyhyP2AKYCtyOiIiKX19LHdwLnRhYmxlPXtmaWx0ZXI6ZnVuY3Rpb24oZSl7cmV0dXJuIGUubm9kZU5hbWU9PT0iVEFCTEUiJiZvMWUoZS5yb3dzWzBdKX0scmVwbGFjZW1lbnQ6ZnVuY3Rpb24oZSl7cmV0dXJuIGU9ZS5yZXBsYWNlKGAKCmAsYApgKSxgCgpgK2UrYAoKYH19LHdwLnRhYmxlU2VjdGlvbj17ZmlsdGVyOlsidGhlYWQiLCJ0Ym9keSIsInRmb290Il0scmVwbGFjZW1lbnQ6ZnVuY3Rpb24oZSl7cmV0dXJuIGV9fX0pO3ZhciB1MWUscDFlPXAoKCk9Pnt1MWU9ZXIoS1VlKCksMSk7RVdlKCk7T1plKCk7ZFhlKCk7TVhlKCk7V0plKCk7WUplKCk7c0tlKCk7dUtlKCl9KTt2YXIgX0wsaEtlPXAoKCk9PntwMWUoKTtfTD1jbGFzcyBle3N0YXRpYyBhc3luYyBjcmVhdGVGcm9tTWFya2Rvd25TdHJpbmcodCl7bGV0IHI9bmV3IGU7cmV0dXJuIGF3YWl0IHIudXBkYXRlRnJvbU1hcmtkb3duU3RyaW5nKHQpLHJ9YXN5bmMgdXBkYXRlRnJvbU1hcmtkb3duU3RyaW5nKHQpe2xldCByLGk9YXdhaXQgQTkoKS51c2UoaHApLnVzZShwcCkudXNlKG1wLFsieWFtbCIsInRvbWwiXSkudXNlKHlwKS51c2UoeHApLnVzZSgoKT0+YT0+e2NvbnNvbGUuZGlyKGEpO2xldCBuPWEuY2hpbGRyZW4uZmluZChvPT5vLnR5cGU9PT0ieWFtbCIpO24mJihyPW4udmFsdWUpfSkucHJvY2Vzcyh0KTt0aGlzLmh0bWw9aS50b1N0cmluZygpLHI/dGhpcy5mcm9udG1hdHRlckRhdGE9YXdhaXQgdTFlLnlhbWxTdHJpbmdUb09iamVjdChyKTp0aGlzLmZyb250bWF0dGVyRGF0YT17fX19fSk7dmFyIE1wPXt9O0ZlKE1wLHtTbWFydE1hcmtkb3duOigpPT5oMWV9KTt2YXIgaDFlLGYxZT1wKCgpPT57cDFlKCk7aEtlKCk7aDFlPWNsYXNzIGV7c3RhdGljIGFzeW5jIGVhc3lNYXJrZG93blRvSHRtbCh0KXtyZXR1cm4oYXdhaXQgbmV3IGUoKS5nZXRNZFBhcnNlZFJlc3VsdEZyb21NYXJrZG93bih0KSkuaHRtbH1jb25zdHJ1Y3Rvcigpe31hc3luYyBnZXRNZFBhcnNlZFJlc3VsdEZyb21NYXJrZG93bih0KXtyZXR1cm4gYXdhaXQgX0wuY3JlYXRlRnJvbU1hcmtkb3duU3RyaW5nKHQpfWh0bWxUb01hcmtkb3duKHQpe2xldCByPW5ldyBUTCh7aGVhZGluZ1N0eWxlOiJhdHgiLGNvZGVCbG9ja1N0eWxlOiJmZW5jZWQifSk7cmV0dXJuIHIudXNlKGVnLmdmbSksci50dXJuZG93bih0KX19fSk7dmFyIHhLZT1qZSh4Mj0+eyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkoeDIsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLHgyLlBhdGhFcnJvcj14Mi5Ub2tlbkRhdGE9dm9pZCAwLHgyLnBhcnNlPXYxZSx4Mi5jb21waWxlPXhWcix4Mi5tYXRjaD13VnIseDIucGF0aFRvUmVnZXhwPWdLZSx4Mi5zdHJpbmdpZnk9U1ZyO3ZhciBtMWU9Ii8iLGcxZT1lPT5lLGZLZT0vXlskX1xwe0lEX1N0YXJ0fV0kL3UsYjFlPS9eWyRcdTIwMGNcdTIwMGRccHtJRF9Db250aW51ZX1dJC91LGJWcj17InsiOiJ7IiwifSI6In0iLCIoIjoiKCIsIikiOiIpIiwiWyI6IlsiLCJdIjoiXSIsIisiOiIrIiwiPyI6Ij8iLCIhIjoiISJ9O2Z1bmN0aW9uIHZWcihlKXtyZXR1cm4gZS5yZXBsYWNlKC9be30oKVxbXF0rPyE6KlxcXS9nLCJcXCQmIil9ZnVuY3Rpb24gWHMoZSl7cmV0dXJuIGUucmVwbGFjZSgvWy4rKj9eJHt9KClbXF18L1xcXS9nLCJcXCQmIil9dmFyIExMPWNsYXNze2NvbnN0cnVjdG9yKHQscil7dGhpcy50b2tlbnM9dCx0aGlzLm9yaWdpbmFsUGF0aD1yfX07eDIuVG9rZW5EYXRhPUxMO3ZhciB4ZD1jbGFzcyBleHRlbmRzIFR5cGVFcnJvcntjb25zdHJ1Y3Rvcih0LHIpe2xldCBpPXQ7ciYmKGkrPWA6ICR7cn1gKSxpKz0iOyB2aXNpdCBodHRwczovL2dpdC5uZXcvcGF0aFRvUmVnZXhwRXJyb3IgZm9yIGluZm8iLHN1cGVyKGkpLHRoaXMub3JpZ2luYWxQYXRoPXJ9fTt4Mi5QYXRoRXJyb3I9eGQ7ZnVuY3Rpb24gdjFlKGUsdD17fSl7bGV0e2VuY29kZVBhdGg6cj1nMWV9PXQsaT1bLi4uZV0sYT1bXSxuPTAsbz0wO2Z1bmN0aW9uIHMoKXtsZXQgYz0iIjtpZihmS2UudGVzdChpW25dKSlkbyBjKz1pW24rK107d2hpbGUoYjFlLnRlc3QoaVtuXSkpO2Vsc2UgaWYoaVtuXT09PSciJyl7bGV0IHU9bjtmb3IoO24rKzxpLmxlbmd0aDspe2lmKGlbbl09PT0nIicpe24rKyx1PTA7YnJlYWt9aVtuXT09PSJcXCImJm4rKyxjKz1pW25dfWlmKHUpdGhyb3cgbmV3IHhkKGBVbnRlcm1pbmF0ZWQgcXVvdGUgYXQgaW5kZXggJHt1fWAsZSl9aWYoIWMpdGhyb3cgbmV3IHhkKGBNaXNzaW5nIHBhcmFtZXRlciBuYW1lIGF0IGluZGV4ICR7bn1gLGUpO3JldHVybiBjfWZvcig7bjxpLmxlbmd0aDspe2xldCBjPWlbbl0sdT1iVnJbY107dT9hLnB1c2goe3R5cGU6dSxpbmRleDpuKyssdmFsdWU6Y30pOmM9PT0iXFwiP2EucHVzaCh7dHlwZToiZXNjYXBlIixpbmRleDpuKyssdmFsdWU6aVtuKytdfSk6Yz09PSI6Ij9hLnB1c2goe3R5cGU6InBhcmFtIixpbmRleDpuKyssdmFsdWU6cygpfSk6Yz09PSIqIj9hLnB1c2goe3R5cGU6IndpbGRjYXJkIixpbmRleDpuKyssdmFsdWU6cygpfSk6YS5wdXNoKHt0eXBlOiJjaGFyIixpbmRleDpuKyssdmFsdWU6Y30pfWEucHVzaCh7dHlwZToiZW5kIixpbmRleDpuLHZhbHVlOiIifSk7ZnVuY3Rpb24gbChjKXtsZXQgdT1bXTtmb3IoOzspe2xldCBkPWFbbysrXTtpZihkLnR5cGU9PT1jKWJyZWFrO2lmKGQudHlwZT09PSJjaGFyInx8ZC50eXBlPT09ImVzY2FwZSIpe2xldCBoPWQudmFsdWUsZj1hW29dO2Zvcig7Zi50eXBlPT09ImNoYXIifHxmLnR5cGU9PT0iZXNjYXBlIjspaCs9Zi52YWx1ZSxmPWFbKytvXTt1LnB1c2goe3R5cGU6InRleHQiLHZhbHVlOnIoaCl9KTtjb250aW51ZX1pZihkLnR5cGU9PT0icGFyYW0ifHxkLnR5cGU9PT0id2lsZGNhcmQiKXt1LnB1c2goe3R5cGU6ZC50eXBlLG5hbWU6ZC52YWx1ZX0pO2NvbnRpbnVlfWlmKGQudHlwZT09PSJ7Iil7dS5wdXNoKHt0eXBlOiJncm91cCIsdG9rZW5zOmwoIn0iKX0pO2NvbnRpbnVlfXRocm93IG5ldyB4ZChgVW5leHBlY3RlZCAke2QudHlwZX0gYXQgaW5kZXggJHtkLmluZGV4fSwgZXhwZWN0ZWQgJHtjfWAsZSl9cmV0dXJuIHV9cmV0dXJuIG5ldyBMTChsKCJlbmQiKSxlKX1mdW5jdGlvbiB4VnIoZSx0PXt9KXtsZXR7ZW5jb2RlOnI9ZW5jb2RlVVJJQ29tcG9uZW50LGRlbGltaXRlcjppPW0xZX09dCxhPXR5cGVvZiBlPT0ib2JqZWN0Ij9lOnYxZShlLHQpLG49bUtlKGEudG9rZW5zLGkscik7cmV0dXJuIGZ1bmN0aW9uKHM9e30pe2xldFtsLC4uLmNdPW4ocyk7aWYoYy5sZW5ndGgpdGhyb3cgbmV3IFR5cGVFcnJvcihgTWlzc2luZyBwYXJhbWV0ZXJzOiAke2Muam9pbigiLCAiKX1gKTtyZXR1cm4gbH19ZnVuY3Rpb24gbUtlKGUsdCxyKXtsZXQgaT1lLm1hcChhPT55VnIoYSx0LHIpKTtyZXR1cm4gYT0+e2xldCBuPVsiIl07Zm9yKGxldCBvIG9mIGkpe2xldFtzLC4uLmxdPW8oYSk7blswXSs9cyxuLnB1c2goLi4ubCl9cmV0dXJuIG59fWZ1bmN0aW9uIHlWcihlLHQscil7aWYoZS50eXBlPT09InRleHQiKXJldHVybigpPT5bZS52YWx1ZV07aWYoZS50eXBlPT09Imdyb3VwIil7bGV0IGE9bUtlKGUudG9rZW5zLHQscik7cmV0dXJuIG49PntsZXRbbywuLi5zXT1hKG4pO3JldHVybiBzLmxlbmd0aD9bIiJdOltvXX19bGV0IGk9cnx8ZzFlO3JldHVybiBlLnR5cGU9PT0id2lsZGNhcmQiJiZyIT09ITE/YT0+e2xldCBuPWFbZS5uYW1lXTtpZihuPT1udWxsKXJldHVyblsiIixlLm5hbWVdO2lmKCFBcnJheS5pc0FycmF5KG4pfHxuLmxlbmd0aD09PTApdGhyb3cgbmV3IFR5cGVFcnJvcihgRXhwZWN0ZWQgIiR7ZS5uYW1lfSIgdG8gYmUgYSBub24tZW1wdHkgYXJyYXlgKTtyZXR1cm5bbi5tYXAoKG8scyk9PntpZih0eXBlb2YgbyE9InN0cmluZyIpdGhyb3cgbmV3IFR5cGVFcnJvcihgRXhwZWN0ZWQgIiR7ZS5uYW1lfS8ke3N9IiB0byBiZSBhIHN0cmluZ2ApO3JldHVybiBpKG8pfSkuam9pbih0KV19OmE9PntsZXQgbj1hW2UubmFtZV07aWYobj09bnVsbClyZXR1cm5bIiIsZS5uYW1lXTtpZih0eXBlb2YgbiE9InN0cmluZyIpdGhyb3cgbmV3IFR5cGVFcnJvcihgRXhwZWN0ZWQgIiR7ZS5uYW1lfSIgdG8gYmUgYSBzdHJpbmdgKTtyZXR1cm5baShuKV19fWZ1bmN0aW9uIHdWcihlLHQ9e30pe2xldHtkZWNvZGU6cj1kZWNvZGVVUklDb21wb25lbnQsZGVsaW1pdGVyOmk9bTFlfT10LHtyZWdleHA6YSxrZXlzOm59PWdLZShlLHQpLG89bi5tYXAocz0+cj09PSExP2cxZTpzLnR5cGU9PT0icGFyYW0iP3I6bD0+bC5zcGxpdChpKS5tYXAocikpO3JldHVybiBmdW5jdGlvbihsKXtsZXQgYz1hLmV4ZWMobCk7aWYoIWMpcmV0dXJuITE7bGV0IHU9Y1swXSxkPU9iamVjdC5jcmVhdGUobnVsbCk7Zm9yKGxldCBoPTE7aDxjLmxlbmd0aDtoKyspe2lmKGNbaF09PT12b2lkIDApY29udGludWU7bGV0IGY9bltoLTFdLHg9b1toLTFdO2RbZi5uYW1lXT14KGNbaF0pfXJldHVybntwYXRoOnUscGFyYW1zOmR9fX1mdW5jdGlvbiBnS2UoZSx0PXt9KXtsZXR7ZGVsaW1pdGVyOnI9bTFlLGVuZDppPSEwLHNlbnNpdGl2ZTphPSExLHRyYWlsaW5nOm49ITB9PXQsbz1bXSxzPWE/IiI6ImkiLGw9W107Zm9yKGxldCBkIG9mIGJLZShlLFtdKSl7bGV0IGg9dHlwZW9mIGQ9PSJvYmplY3QiP2Q6djFlKGQsdCk7Zm9yKGxldCBmIG9mIEFMKGgudG9rZW5zLDAsW10pKWwucHVzaChNVnIoZixyLG8saC5vcmlnaW5hbFBhdGgpKX1sZXQgYz1gXig/OiR7bC5qb2luKCJ8Iil9KWA7cmV0dXJuIG4mJihjKz1gKD86JHtYcyhyKX0kKT9gKSxjKz1pPyIkIjpgKD89JHtYcyhyKX18JClgLHtyZWdleHA6bmV3IFJlZ0V4cChjLHMpLGtleXM6b319ZnVuY3Rpb24gYktlKGUsdCl7aWYoQXJyYXkuaXNBcnJheShlKSlmb3IobGV0IHIgb2YgZSliS2Uocix0KTtlbHNlIHQucHVzaChlKTtyZXR1cm4gdH1mdW5jdGlvbipBTChlLHQscil7aWYodD09PWUubGVuZ3RoKXJldHVybiB5aWVsZCByO2xldCBpPWVbdF07aWYoaS50eXBlPT09Imdyb3VwIilmb3IobGV0IGEgb2YgQUwoaS50b2tlbnMsMCxyLnNsaWNlKCkpKXlpZWxkKkFMKGUsdCsxLGEpO2Vsc2Ugci5wdXNoKGkpO3lpZWxkKkFMKGUsdCsxLHIpfWZ1bmN0aW9uIE1WcihlLHQscixpKXtsZXQgYT0iIixuPSIiLG89ITA7Zm9yKGxldCBzIG9mIGUpe2lmKHMudHlwZT09PSJ0ZXh0Iil7YSs9WHMocy52YWx1ZSksbis9cy52YWx1ZSxvfHwobz1zLnZhbHVlLmluY2x1ZGVzKHQpKTtjb250aW51ZX1pZihzLnR5cGU9PT0icGFyYW0ifHxzLnR5cGU9PT0id2lsZGNhcmQiKXtpZighbyYmIW4pdGhyb3cgbmV3IHhkKGBNaXNzaW5nIHRleHQgYmVmb3JlICIke3MubmFtZX0iICR7cy50eXBlfWAsaSk7cy50eXBlPT09InBhcmFtIj9hKz1gKCR7a1ZyKHQsbz8iIjpuKX0rKWA6YSs9IihbXFxzXFxTXSspIixyLnB1c2gocyksbj0iIixvPSExO2NvbnRpbnVlfX1yZXR1cm4gYX1mdW5jdGlvbiBrVnIoZSx0KXtyZXR1cm4gdC5sZW5ndGg8Mj9lLmxlbmd0aDwyP2BbXiR7WHMoZSt0KX1dYDpgKD86KD8hJHtYcyhlKX0pW14ke1hzKHQpfV0pYDplLmxlbmd0aDwyP2AoPzooPyEke1hzKHQpfSlbXiR7WHMoZSl9XSlgOmAoPzooPyEke1hzKHQpfXwke1hzKGUpfSlbXFxzXFxTXSlgfWZ1bmN0aW9uIHZLZShlKXtsZXQgdD0iIixyPTA7ZnVuY3Rpb24gaShhKXtyZXR1cm4gelZyKGEpJiZDVnIoZVtyXSk/YTpKU09OLnN0cmluZ2lmeShhKX1mb3IoO3I8ZS5sZW5ndGg7KXtsZXQgYT1lW3IrK107aWYoYS50eXBlPT09InRleHQiKXt0Kz12VnIoYS52YWx1ZSk7Y29udGludWV9aWYoYS50eXBlPT09Imdyb3VwIil7dCs9YHske3ZLZShhLnRva2Vucyl9fWA7Y29udGludWV9aWYoYS50eXBlPT09InBhcmFtIil7dCs9YDoke2koYS5uYW1lKX1gO2NvbnRpbnVlfWlmKGEudHlwZT09PSJ3aWxkY2FyZCIpe3QrPWAqJHtpKGEubmFtZSl9YDtjb250aW51ZX10aHJvdyBuZXcgVHlwZUVycm9yKGBVbmtub3duIHRva2VuIHR5cGU6ICR7YS50eXBlfWApfXJldHVybiB0fWZ1bmN0aW9uIFNWcihlKXtyZXR1cm4gdktlKGUudG9rZW5zKX1mdW5jdGlvbiB6VnIoZSl7bGV0W3QsLi4ucl09ZTtyZXR1cm4gZktlLnRlc3QodCkmJnIuZXZlcnkoaT0+YjFlLnRlc3QoaSkpfWZ1bmN0aW9uIENWcihlKXtyZXR1cm4gZSYmZS50eXBlPT09InRleHQiPyFiMWUudGVzdChlLnZhbHVlWzBdKTohMH19KTt2YXIgeDFlLHkxZT1wKCgpPT57R20oKTtoMigpO3gxZT1lcih4S2UoKSwxKX0pO3ZhciBETCx5S2U9cCgoKT0+e3kxZSgpO0RMPWNsYXNze2NvbnN0cnVjdG9yKCl7fWdldEFsbEFzT2JqZWN0KCl7bGV0IHQ9bmV3IFVSTFNlYXJjaFBhcmFtcyh3aW5kb3cubG9jYXRpb24uc2VhcmNoKTtyZXR1cm4gT2JqZWN0LmZyb21FbnRyaWVzKHQuZW50cmllcygpKX1zZXRRdWVyeVBhcmFtKHQscixpPSJyZXBsYWNlIil7dmFyIGE9bmV3IFVSTFNlYXJjaFBhcmFtcyh3aW5kb3cubG9jYXRpb24uc2VhcmNoKTthLnNldCh0LHIpLGk9PT0icHVzaCI/aGlzdG9yeS5wdXNoU3RhdGUobnVsbCxudWxsLCI/IithLnRvU3RyaW5nKCkpOmhpc3RvcnkucmVwbGFjZVN0YXRlKG51bGwsbnVsbCwiPyIrYS50b1N0cmluZygpKX1kZWxldGVRdWVyeVBhcmFtKHQscj0icmVwbGFjZSIpe3ZhciBpPW5ldyBVUkxTZWFyY2hQYXJhbXMod2luZG93LmxvY2F0aW9uLnNlYXJjaCk7aS5kZWxldGUodCkscj09PSJwdXNoIj9oaXN0b3J5LnB1c2hTdGF0ZShudWxsLG51bGwsIj8iK2kudG9TdHJpbmcoKSk6aGlzdG9yeS5yZXBsYWNlU3RhdGUobnVsbCxudWxsLCI/IitpLnRvU3RyaW5nKCkpfWdldFF1ZXJ5UGFyYW0odCl7cmV0dXJuIHRoaXMuZ2V0QWxsQXNPYmplY3QoKVt0XX19fSk7dmFyIE5HaSx3MWUsd0tlPXAoKCk9Pnt5MWUoKTt5S2UoKTtOR2k9ZT0+e2NvbnNvbGUubG9nKGAlY1tSb3V0ZXJdJWMgJHtlfWAsImNvbG9yOiByZ2IoMjU1LCAxMDUsIDEwMCk7IiwiY29sb3I6IGluaGVyaXQiKX0sdzFlPWNsYXNzIGV7Y29uc3RydWN0b3IodCxyPSIiKXt0aGlzLm9wdGlvbnM9e2RlYnVnOiExfSx0aGlzLnF1ZXJ5UGFyYW1zPW5ldyBETCx0aGlzLnJvdXRlcz1bXSx0aGlzLm9wdGlvbnM9ey4uLnRoaXMub3B0aW9ucywuLi50fSx0aGlzLmJhc2VQYXRoPXIsdGhpcy5wb3BzdGF0ZUxpc3RlbmVyPWk9PntpLnByZXZlbnREZWZhdWx0KCksdGhpcy5faGFuZGxlUm91dGVTdGF0ZSgpfSx3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigicG9wc3RhdGUiLHRoaXMucG9wc3RhdGVMaXN0ZW5lcil9Y3JlYXRlU3ViUm91dGVyKHQscil7bGV0IGk9YCR7dGhpcy5iYXNlUGF0aH0ke3R9YDtyZXR1cm4gbmV3IGUoey4uLnRoaXMub3B0aW9ucywuLi5yfSxpKX1hc3luYyBwdXNoVXJsKHQ9Ii8iLHI9e30pe2xldCBpPWAke3RoaXMuYmFzZVBhdGh9JHt0fWA7aSE9PXdpbmRvdy5sb2NhdGlvbi5wYXRobmFtZT93aW5kb3cuaGlzdG9yeS5wdXNoU3RhdGUocix3aW5kb3cuZG9jdW1lbnQudGl0bGUsaSk6d2luZG93Lmhpc3RvcnkucmVwbGFjZVN0YXRlKHIsd2luZG93LmRvY3VtZW50LnRpdGxlLGkpLGF3YWl0IHRoaXMuX2hhbmRsZVJvdXRlU3RhdGUoKX1vbih0LHIpe2xldCBpPWAke3RoaXMuYmFzZVBhdGh9JHt0fWAsYT17bWF0Y2hGdW5jdGlvbjp4MWUubWF0Y2goaSksaGFuZGxlcjpyfTtyZXR1cm4gdGhpcy5yb3V0ZXMucHVzaChhKSwoKT0+e3RoaXMucm91dGVzLnNwbGljZSh0aGlzLnJvdXRlcy5pbmRleE9mKGEpLDEpfX1hc3luYyBfaGFuZGxlUm91dGVTdGF0ZSgpe2xldCB0PXdpbmRvdy5sb2NhdGlvbi5wYXRobmFtZSxyPXRoaXMucm91dGVzLmZpbHRlcihpPT4hIWkubWF0Y2hGdW5jdGlvbih0KSk7Zm9yKGxldCBpIG9mIHIpe2xldCBhPWkubWF0Y2hGdW5jdGlvbih0KTtpLmhhbmRsZXIoey4uLmEudmFsdWVPZigpLHF1ZXJ5UGFyYW1zOnRoaXMucXVlcnlQYXJhbXMuZ2V0QWxsQXNPYmplY3QoKX0pfX1kZXN0cm95KCl7d2luZG93LnJlbW92ZUV2ZW50TGlzdGVuZXIoInBvcHN0YXRlIix0aGlzLnBvcHN0YXRlTGlzdGVuZXIpLHRoaXMucm91dGVzPVtdfX19KTt2YXIgeDQ9e307RmUoeDQse1NtYXJ0Um91dGVyOigpPT53MWV9KTt2YXIgTTFlPXAoKCk9Pnt3S2UoKX0pO3ZhciBNS2U9cCgoKT0+e044KCk7VjgoKX0pO2Z1bmN0aW9uIFFzKGUsdCl7cmV0dXJuIGU+Pj50fGU8PDMyLXR9ZnVuY3Rpb24gRFZyKGUsdCl7bGV0IHI9dFswXSxpPXRbMV0sYT10WzJdLG49dFszXSxvPXRbNF0scz10WzVdLGw9dFs2XSxjPXRbN107Zm9yKGxldCB1PTA7dTw2NDt1Kyspe2lmKHU+PTE2KXtsZXQgeT1RcyhlW3UtMTVdLDcpXlFzKGVbdS0xNV0sMTgpXmVbdS0xNV0+Pj4zLHc9UXMoZVt1LTJdLDE3KV5RcyhlW3UtMl0sMTkpXmVbdS0yXT4+PjEwO2VbdV09ZVt1LTE2XSt5K2VbdS03XSt3Pj4+MH1sZXQgZD1RcyhvLDYpXlFzKG8sMTEpXlFzKG8sMjUpLGg9byZzXn5vJmwsZj1jK2QraCtMVnJbdV0rZVt1XT4+PjAseD1RcyhyLDIpXlFzKHIsMTMpXlFzKHIsMjIpLHY9ciZpXnImYV5pJmEsYj14K3Y+Pj4wO2M9bCxsPXMscz1vLG89bitmPj4+MCxuPWEsYT1pLGk9cixyPWYrYj4+PjB9dFswXT10WzBdK3I+Pj4wLHRbMV09dFsxXStpPj4+MCx0WzJdPXRbMl0rYT4+PjAsdFszXT10WzNdK24+Pj4wLHRbNF09dFs0XStvPj4+MCx0WzVdPXRbNV0rcz4+PjAsdFs2XT10WzZdK2w+Pj4wLHRbN109dFs3XStjPj4+MH1mdW5jdGlvbiBrMWUoZSl7bGV0IHQ9Wy4uLkFWcl0scj1lLmxlbmd0aCxpPXIqOCxhPXIlNjQ8NTY/NTYtciU2NDoxMjAtciU2NCxuPW5ldyBVaW50OEFycmF5KHIrYSs4KTtuLnNldChlKSxuW3JdPTEyODtsZXQgbz1uZXcgRGF0YVZpZXcobi5idWZmZXIpO28uc2V0VWludDMyKG4ubGVuZ3RoLTgsMCwhMSksby5zZXRVaW50MzIobi5sZW5ndGgtNCxpPj4+MCwhMSk7Zm9yKGxldCBsPTA7bDxuLmxlbmd0aDtsKz02NCl7bGV0IGM9bmV3IEFycmF5KDY0KTtmb3IobGV0IHU9MDt1PDE2O3UrKyljW3VdPW8uZ2V0VWludDMyKGwrdSo0LCExKTtEVnIoYyx0KX1sZXQgcz0iIjtmb3IobGV0IGw9MDtsPDg7bCsrKXMrPXRbbF0udG9TdHJpbmcoMTYpLnBhZFN0YXJ0KDgsIjAiKTtyZXR1cm4gc312YXIgTFZyLEFWcixrS2U9cCgoKT0+e0xWcj1bMTExNjM1MjQwOCwxODk5NDQ3NDQxLDMwNDkzMjM0NzEsMzkyMTAwOTU3Myw5NjE5ODcxNjMsMTUwODk3MDk5MywyNDUzNjM1NzQ4LDI4NzA3NjMyMjEsMzYyNDM4MTA4MCwzMTA1OTg0MDEsNjA3MjI1Mjc4LDE0MjY4ODE5ODcsMTkyNTA3ODM4OCwyMTYyMDc4MjA2LDI2MTQ4ODgxMDMsMzI0ODIyMjU4MCwzODM1MzkwNDAxLDQwMjIyMjQ3NzQsMjY0MzQ3MDc4LDYwNDgwNzYyOCw3NzAyNTU5ODMsMTI0OTE1MDEyMiwxNTU1MDgxNjkyLDE5OTYwNjQ5ODYsMjU1NDIyMDg4MiwyODIxODM0MzQ5LDI5NTI5OTY4MDgsMzIxMDMxMzY3MSwzMzM2NTcxODkxLDM1ODQ1Mjg3MTEsMTEzOTI2OTkzLDMzODI0MTg5NSw2NjYzMDcyMDUsNzczNTI5OTEyLDEyOTQ3NTczNzIsMTM5NjE4MjI5MSwxNjk1MTgzNzAwLDE5ODY2NjEwNTEsMjE3NzAyNjM1MCwyNDU2OTU2MDM3LDI3MzA0ODU5MjEsMjgyMDMwMjQxMSwzMjU5NzMwODAwLDMzNDU3NjQ3NzEsMzUxNjA2NTgxNywzNjAwMzUyODA0LDQwOTQ1NzE5MDksMjc1NDIzMzQ0LDQzMDIyNzczNCw1MDY5NDg2MTYsNjU5MDYwNTU2LDg4Mzk5Nzg3Nyw5NTgxMzk1NzEsMTMyMjgyMjIxOCwxNTM3MDAyMDYzLDE3NDc4NzM3NzksMTk1NTU2MjIyMiwyMDI0MTA0ODE1LDIyMjc3MzA0NTIsMjM2MTg1MjQyNCwyNDI4NDM2NDc0LDI3NTY3MzQxODcsMzIwNDAzMTQ3OSwzMzI5MzI1Mjk4XSxBVnI9WzE3NzkwMzM3MDMsMzE0NDEzNDI3NywxMDEzOTA0MjQyLDI3NzM0ODA3NjIsMTM1OTg5MzExOSwyNjAwODIyOTI0LDUyODczNDYzNSwxNTQxNDU5MjI1XX0pO3ZhciB0Zz17fTtGZSh0Zyx7bWQ1RnJvbVN0cmluZzooKT0+RlZyLHNoYTI1NkZyb21CdWZmZXI6KCk9PiRWcixzaGEyNTZGcm9tRmlsZTooKT0+TlZyLHNoYTI1NkZyb21TdHJlYW06KCk9PlBWcixzaGEyNTZGcm9tU3RyaW5nOigpPT5DS2Usc2hhMjU2RnJvbVN0cmluZ1N5bmM6KCk9PkVWcixzaGEyNjVGcm9tT2JqZWN0OigpPT5JVnJ9KTt2YXIgU0tlLHpLZSxDS2UsRVZyLCRWcixJVnIsUFZyLE5WcixGVnIsVEtlPXAoKCk9PntNS2UoKTtrS2UoKTtTS2U9ZT0+e2xldCB0PVtdLHI9bmV3IERhdGFWaWV3KGUpO2ZvcihsZXQgaT0wO2k8ci5ieXRlTGVuZ3RoO2krPTQpe2xldCBuPXIuZ2V0VWludDMyKGkpLnRvU3RyaW5nKDE2KSxvPSIwMDAwMDAwMCIscz0obytuKS5zbGljZSgtby5sZW5ndGgpO3QucHVzaChzKX1yZXR1cm4gdC5qb2luKCIiKX0sektlPSgpPT50eXBlb2YgY3J5cHRvPCJ1IiYmY3J5cHRvLnN1YnRsZSE9PXZvaWQgMCxDS2U9YXN5bmMgZT0+e2xldCB0PW5ldyBUZXh0RW5jb2RlcigpLmVuY29kZShlKTtpZih6S2UoKSl7bGV0IHI9YXdhaXQgY3J5cHRvLnN1YnRsZS5kaWdlc3QoIlNIQS0yNTYiLHQpO3JldHVybiBTS2Uocil9ZWxzZSByZXR1cm4gazFlKHQpfSxFVnI9ZT0+e3Rocm93IGNvbnNvbGUud2Fybigic2hhMjU2RnJvbVN0cmluZ1N5bmMgaXMgbm90IHRydWx5IHN5bmNocm9ub3VzIGluIGJyb3dzZXIgZW52aXJvbm1lbnQiKSxuZXcgRXJyb3IoInNoYTI1NkZyb21TdHJpbmdTeW5jIGlzIG5vdCBzdXBwb3J0ZWQgaW4gYnJvd3NlciBlbnZpcm9ubWVudC4gVXNlIHNoYTI1NkZyb21TdHJpbmcgaW5zdGVhZC4iKX0sJFZyPWFzeW5jIGU9PntpZih6S2UoKSl7bGV0IHQ7aWYoZSBpbnN0YW5jZW9mIFVpbnQ4QXJyYXkpe2xldCBhPWU7dD1hLmJ1ZmZlci5zbGljZShhLmJ5dGVPZmZzZXQsYS5ieXRlT2Zmc2V0K2EuYnl0ZUxlbmd0aCl9ZWxzZSB0PWU7bGV0IHI9YXdhaXQgY3J5cHRvLnN1YnRsZS5kaWdlc3QoIlNIQS0yNTYiLHQpO3JldHVybiBTS2Uocil9ZWxzZXtsZXQgdD1lIGluc3RhbmNlb2YgVWludDhBcnJheT9lOm5ldyBVaW50OEFycmF5KGUpO3JldHVybiBrMWUodCl9fSxJVnI9YXN5bmMgZT0+e2xldCB0PXkxLnN0cmluZ2lmeShlKTtyZXR1cm4gYXdhaXQgQ0tlKHQpfSxQVnI9ZT0+e3Rocm93IG5ldyBFcnJvcigic2hhMjU2RnJvbVN0cmVhbSBpcyBub3Qgc3VwcG9ydGVkIGluIGJyb3dzZXIgZW52aXJvbm1lbnQiKX0sTlZyPWFzeW5jIGU9Pnt0aHJvdyBuZXcgRXJyb3IoInNoYTI1NkZyb21GaWxlIGlzIG5vdCBzdXBwb3J0ZWQgaW4gYnJvd3NlciBlbnZpcm9ubWVudCIpfSxGVnI9YXN5bmMgZT0+e3Rocm93IG5ldyBFcnJvcigibWQ1RnJvbVN0cmluZyBpcyBub3Qgc3VwcG9ydGVkIGluIGJyb3dzZXIgZW52aXJvbm1lbnQuIFdlYiBDcnlwdG8gQVBJIGRvZXMgbm90IHN1cHBvcnQgTUQ1LiIpfX0pO3ZhciBfS2U9cCgoKT0+e0VpKCl9KTt2YXIgTEtlPXAoKCk9Pnt9KTt2YXIgUzFlLEFLZT1wKCgpPT57X0tlKCk7TEtlKCk7UzFlPWNsYXNze2NvbnN0cnVjdG9yKCl7dGhpcy5sb2FkZWRTY3JpcHRzPVtdfWFzeW5jIGdldEVudkF3YXJlTW9kdWxlKHQpe2lmKHRoaXMuaXNOb2RlKXJldHVybiBhd2FpdCB0aGlzLmdldFNhZmVOb2RlTW9kdWxlKHQubm9kZU1vZHVsZU5hbWUpO2lmKHRoaXMuaXNCcm93c2VyKXJldHVybiBhd2FpdCB0aGlzLmdldFNhZmVXZWJNb2R1bGUodC53ZWJVcmxBcmcsdC5nZXRGdW5jdGlvbik7Y29uc29sZS5lcnJvcigicGxhdGZvcm0gZm9yIGxvYWRpbmcgbm90IHN1cHBvcnRlZCBieSBzbWFydGVudiIpfWFzeW5jIGdldFNhZmVOb2RlTW9kdWxlKHQscil7aWYoIXRoaXMuaXNOb2RlJiYhdGhpcy5pc0Rlbm8mJiF0aGlzLmlzQnVuKXtjb25zb2xlLmVycm9yKGBZb3UgdHJpZWQgdG8gbG9hZCBhIHNlcnZlciBtb2R1bGUgaW4gYSB3cm9uZyBjb250ZXh0OiAke3R9LiBUaGlzIGRvZXMgbm90IHRocm93LmApO3JldHVybn1sZXQgaT1hd2FpdCBuZXcgRnVuY3Rpb24oYHJldHVybiBpbXBvcnQoJyR7dH0nKWApKCk7cmV0dXJuIHImJmF3YWl0IHIoaSksaX1hc3luYyBnZXRTYWZlV2ViTW9kdWxlKHQscil7aWYoIXRoaXMuaXNCcm93c2VyKXtjb25zb2xlLmVycm9yKCJZb3UgdHJpZWQgdG8gbG9hZCBhIHdlYiBtb2R1bGUgaW4gYSB3cm9uZyBjb250ZXh0Iik7cmV0dXJufWlmKHRoaXMubG9hZGVkU2NyaXB0cy5pbmNsdWRlcyh0KSlyZXR1cm4gcigpO3RoaXMubG9hZGVkU2NyaXB0cy5wdXNoKHQpO2xldCBpPVhlLmRlZmVyKCk7aWYoZ2xvYmFsVGhpcy5pbXBvcnRTY3JpcHRzKWdsb2JhbFRoaXMuaW1wb3J0U2NyaXB0cyh0KSxpLnJlc29sdmUoKTtlbHNle2xldCBhPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInNjcmlwdCIpO2Eub25sb2FkPSgpPT57aS5yZXNvbHZlKCl9LGEuc3JjPXQsZG9jdW1lbnQuaGVhZC5hcHBlbmRDaGlsZChhKX1yZXR1cm4gYXdhaXQgaS5wcm9taXNlLHIoKX1nZXQgcnVudGltZUVudigpe3JldHVybiB0eXBlb2YgZ2xvYmFsVGhpcy5EZW5vPCJ1IiYmdHlwZW9mIGdsb2JhbFRoaXMuRGVubz8udmVyc2lvbjwidSI/ImRlbm8iOnR5cGVvZiBnbG9iYWxUaGlzLkJ1bjwidSImJnR5cGVvZiBnbG9iYWxUaGlzLkJ1bj8udmVyc2lvbjwidSI/ImJ1biI6dHlwZW9mIGdsb2JhbFRoaXMucHJvY2VzczwidSImJnR5cGVvZiBnbG9iYWxUaGlzLnByb2Nlc3M/LnZlcnNpb25zPy5ub2RlPCJ1Ij8ibm9kZSI6KHR5cGVvZiBnbG9iYWxUaGlzLndpbmRvdzwidSImJnR5cGVvZiBnbG9iYWxUaGlzLmRvY3VtZW50PCJ1IiwiYnJvd3NlciIpfWdldCBpc0Jyb3dzZXIoKXtyZXR1cm4gdGhpcy5ydW50aW1lRW52PT09ImJyb3dzZXIifWdldCBpc05vZGUoKXtyZXR1cm4gdGhpcy5ydW50aW1lRW52PT09Im5vZGUifWdldCBpc0Rlbm8oKXtyZXR1cm4gdGhpcy5ydW50aW1lRW52PT09ImRlbm8ifWdldCBpc0J1bigpe3JldHVybiB0aGlzLnJ1bnRpbWVFbnY9PT0iYnVuIn1nZXQgdXNlckFnZW50KCl7cmV0dXJuIHRoaXMuaXNCcm93c2VyP25hdmlnYXRvci51c2VyQWdlbnQ6InVuZGVmaW5lZCJ9Z2V0IG5vZGVWZXJzaW9uKCl7cmV0dXJuIHRoaXMuaXNOb2RlP3Byb2Nlc3MudmVyc2lvbjoidW5kZWZpbmVkIn1nZXQgZGVub1ZlcnNpb24oKXtyZXR1cm4gdGhpcy5pc0Rlbm8/Z2xvYmFsVGhpcy5EZW5vLnZlcnNpb24uZGVubzoidW5kZWZpbmVkIn1nZXQgYnVuVmVyc2lvbigpe3JldHVybiB0aGlzLmlzQnVuP2dsb2JhbFRoaXMuQnVuLnZlcnNpb246InVuZGVmaW5lZCJ9YXN5bmMgZ2V0U2FmZU1vZHVsZUZvcih0LHIsaSl7bGV0IGE7aWYoQXJyYXkuaXNBcnJheSh0KT9hPXQuZmxhdE1hcChuPT5uPT09InNlcnZlciI/WyJub2RlIiwiZGVubyIsImJ1biJdOltuXSk6dD09PSJzZXJ2ZXIiP2E9WyJub2RlIiwiZGVubyIsImJ1biJdOmE9W3RdLCFhLmluY2x1ZGVzKHRoaXMucnVudGltZUVudikpe2NvbnNvbGUud2FybihgTW9kdWxlICIke3J9IiByZXF1ZXN0ZWQgZm9yIHJ1bnRpbWUocykgWyR7YS5qb2luKCIsICIpfV0gYnV0IGN1cnJlbnQgcnVudGltZSBpcyAiJHt0aGlzLnJ1bnRpbWVFbnZ9Ii4gU2tpcHBpbmcgbG9hZC5gKTtyZXR1cm59aWYodGhpcy5pc05vZGV8fHRoaXMuaXNEZW5vfHx0aGlzLmlzQnVuKXJldHVybiBhd2FpdCB0aGlzLmdldFNhZmVOb2RlTW9kdWxlKHIpO2lmKHRoaXMuaXNCcm93c2VyKXtpZighaSl7Y29uc29sZS5lcnJvcihgQnJvd3NlciBtb2R1bGUgbG9hZCByZXF1aXJlcyBnZXRGdW5jdGlvbiBwYXJhbWV0ZXIgZm9yICIke3J9ImApO3JldHVybn1yZXR1cm4gYXdhaXQgdGhpcy5nZXRTYWZlV2ViTW9kdWxlKHIsaSl9fWdldCBpc0NJKCl7cmV0dXJuIHRoaXMuaXNOb2RlPyEhcHJvY2Vzcy5lbnYuQ0k6ITF9YXN5bmMgaXNNYWNBc3luYygpe3JldHVybiB0aGlzLmlzTm9kZT8oYXdhaXQgdGhpcy5nZXRTYWZlTm9kZU1vZHVsZSgib3MiKSkucGxhdGZvcm0oKT09PSJkYXJ3aW4iOiExfWFzeW5jIGlzV2luZG93c0FzeW5jKCl7cmV0dXJuIHRoaXMuaXNOb2RlPyhhd2FpdCB0aGlzLmdldFNhZmVOb2RlTW9kdWxlKCJvcyIpKS5wbGF0Zm9ybSgpPT09IndpbjMyIjohMX1hc3luYyBpc0xpbnV4QXN5bmMoKXtyZXR1cm4gdGhpcy5pc05vZGU/KGF3YWl0IHRoaXMuZ2V0U2FmZU5vZGVNb2R1bGUoIm9zIikpLnBsYXRmb3JtKCk9PT0ibGludXgiOiExfWFzeW5jIHByaW50RW52KCl7dGhpcy5pc05vZGU/KGNvbnNvbGUubG9nKCJydW5uaW5nIG9uIE5PREUiKSxjb25zb2xlLmxvZygibm9kZSB2ZXJzaW9uIGlzICIrdGhpcy5ub2RlVmVyc2lvbikpOnRoaXMuaXNEZW5vPyhjb25zb2xlLmxvZygicnVubmluZyBvbiBERU5PIiksY29uc29sZS5sb2coImRlbm8gdmVyc2lvbiBpcyAiK3RoaXMuZGVub1ZlcnNpb24pKTp0aGlzLmlzQnVuPyhjb25zb2xlLmxvZygicnVubmluZyBvbiBCVU4iKSxjb25zb2xlLmxvZygiYnVuIHZlcnNpb24gaXMgIit0aGlzLmJ1blZlcnNpb24pKTooY29uc29sZS5sb2coInJ1bm5pbmcgb24gQlJPV1NFUiIpLGNvbnNvbGUubG9nKCJicm93c2VyIGlzICIrdGhpcy51c2VyQWdlbnQpKX19fSk7dmFyIHoxZT17fTtGZSh6MWUse1NtYXJ0ZW52OigpPT5TMWV9KTt2YXIgREtlPXAoKCk9PntBS2UoKX0pO3ZhciBFTCxFS2UsJEwsQzFlPXAoKCk9PntES2UoKTtSOCgpO0VMPWVyKGtLKCksMSksRUtlPWVyKFNLKCksMSksJEw9RUtlLmRlZmF1bHR9KTtmdW5jdGlvbiBCVnIoZSl7cmV0dXJuIHR5cGVvZiBCdWZmZXI8InUiP0J1ZmZlci5mcm9tKGUpLnRvU3RyaW5nKCJiYXNlNjQiKTpidG9hKFN0cmluZy5mcm9tQ2hhckNvZGUoLi4uZSkpfWZ1bmN0aW9uIEhWcihlKXtpZih0eXBlb2YgQnVmZmVyPCJ1Iil7bGV0IHQ9QnVmZmVyLmZyb20oZSwiYmFzZTY0Iik7cmV0dXJuIG5ldyBVaW50OEFycmF5KHQuYnVmZmVyLHQuYnl0ZU9mZnNldCx0LmJ5dGVMZW5ndGgpfXJldHVybiBuZXcgVWludDhBcnJheShBcnJheS5mcm9tKGF0b2IoZSkpLm1hcCh0PT50LmNoYXJDb2RlQXQoMCkpKX1mdW5jdGlvbiBfMWUoZSx0KXtyZXR1cm4gSlNPTi5zdHJpbmdpZnkoZSxJTCx0KX1mdW5jdGlvbiBMMWUoZSl7cmV0dXJuIEpTT04ucGFyc2UoZSwkS2UpfWZ1bmN0aW9uIHFWcihlKXtyZXR1cm4gUEtlKGUpJiZlLnR5cGU9PT0iRW5jb2RlZEJ1ZmZlciImJlQxZShlLmRhdGEpfWZ1bmN0aW9uIGpWcihlKXtyZXR1cm4gUEtlKGUpJiZlLnR5cGU9PT0iQnVmZmVyIiYmKElLZShlLmRhdGEpfHxUMWUoZS5kYXRhKSl8fGUgaW5zdGFuY2VvZiBVaW50OEFycmF5fWZ1bmN0aW9uIElLZShlKXtyZXR1cm4gQXJyYXkuaXNBcnJheShlKX1mdW5jdGlvbiBUMWUoZSl7cmV0dXJuIHR5cGVvZiBlPT0ic3RyaW5nIn1mdW5jdGlvbiBQS2UoZSl7cmV0dXJuIHR5cGVvZiBlPT0ib2JqZWN0IiYmZSE9PW51bGx9dmFyIElMLCRLZSxOS2U9cCgoKT0+e0MxZSgpO0lMPShlLHQpPT57aWYoalZyKHQpKXtsZXQgcjtpZigiZGF0YSJpbiB0JiZJS2UodC5kYXRhKSlyPW5ldyBVaW50OEFycmF5KHQuZGF0YSk7ZWxzZSBpZih0IGluc3RhbmNlb2YgVWludDhBcnJheSlyPXQ7ZWxzZSByZXR1cm4gdDtyZXR1cm57dHlwZToiRW5jb2RlZEJ1ZmZlciIsZGF0YToiYmFzZTY0OiIrQlZyKHIpfX1yZXR1cm4gdH0sJEtlPShlLHQpPT57aWYocVZyKHQpJiZUMWUodC5kYXRhKSYmdC5kYXRhLnN0YXJ0c1dpdGgoImJhc2U2NDoiKSl7bGV0IHI9dC5kYXRhLnNsaWNlKDcpO3JldHVybiBIVnIocil9cmV0dXJuIHR9fSk7dmFyIHJnPXt9O0ZlKHJnLHtTbWFydGpzb246KCk9PkQxZSxkZWVwRXF1YWxKc29uTFN0cmluZ3M6KCk9PlFWcixkZWVwRXF1YWxPYmplY3RzOigpPT5GS2UsZm9sZERlYzooKT0+WFZyLHBhcnNlOigpPT5QTCxwYXJzZUJhc2U2NDooKT0+WlZyLHBhcnNlSnNvbkw6KCk9PkExZSxzdGFibGVPbmVXYXlTdHJpbmdpZnk6KCk9PldWcixzdHJpbmdpZnk6KCk9PnlkLHN0cmluZ2lmeUJhc2U2NDooKT0+WVZyLHN0cmluZ2lmeUpzb25MOigpPT5VVnIsc3RyaW5naWZ5UHJldHR5OigpPT5HVnJ9KTt2YXIgUEwsQTFlLFVWcixXVnIseWQsR1ZyLFlWcixaVnIsRDFlLFhWcixGS2UsUVZyLE9LZT1wKCgpPT57QzFlKCk7TktlKCk7UEw9TDFlLEExZT1lPT5lLnNwbGl0KGAKYCkucmVkdWNlKChpLGEpPT57bGV0IG49YS50cmltKCk7cmV0dXJuIG4ubGVuZ3RoPjAmJmkucHVzaChQTChuKSksaX0sW10pLFVWcj1lPT5lLm1hcCh0PT55ZCh0KSkuam9pbihgCmApLFdWcj0oZSx0LHI9e30pPT57bGV0IGk9bmV3IFdlYWtTZXQsYT1zPT57aWYocz09PW51bGx8fHR5cGVvZiBzIT0ib2JqZWN0IilyZXR1cm4gcztsZXQgbD1JTCgiIixzKTtpZihsJiZsLnR5cGU9PT0iRW5jb2RlZEJ1ZmZlciImJnR5cGVvZiBsLmRhdGE9PSJzdHJpbmciKXJldHVybiBsO2lmKGkuaGFzKHMpKXJldHVybiJfX2N5Y2xlX18iO2lmKGkuYWRkKHMpLEFycmF5LmlzQXJyYXkocykpcmV0dXJuIHMubWFwKHU9PmEodSkpO2xldCBjPXt9O2ZvcihsZXQgdSBvZiBPYmplY3Qua2V5cyhzKSl0cnl7Y1t1XT1hKHNbdV0pfWNhdGNoe2NbdV09Il9fdW5zZXJpYWxpemFibGVfXyJ9cmV0dXJuIGN9LG49YShlKSxvPXsuLi5yLGN5Y2xlczohMH07aWYodCYmIW8uY21wKXtsZXQgcz1uZXcgTWFwO3QuZm9yRWFjaCgobCxjKT0+cy5zZXQobCxjKSksby5jbXA9KGwsYyk9PntsZXQgdT1zLmhhcyhsLmtleSk/cy5nZXQobC5rZXkpOk51bWJlci5QT1NJVElWRV9JTkZJTklUWSxkPXMuaGFzKGMua2V5KT9zLmdldChjLmtleSk6TnVtYmVyLlBPU0lUSVZFX0lORklOSVRZO3JldHVybiB1IT09ZD91LWQ6bC5rZXk8Yy5rZXk/LTE6bC5rZXk+Yy5rZXk/MTowfX1yZXR1cm4gJEwobixvKX0seWQ9KGUsdCxyPXt9KT0+e2xldCBpPV8xZShlKTtlPUpTT04ucGFyc2UoaSk7bGV0IGE9ey4uLnJ9O2lmKHQmJiFhLmNtcCl7bGV0IG89bmV3IE1hcDt0LmZvckVhY2goKHMsbCk9Pm8uc2V0KHMsbCkpLGEuY21wPShzLGwpPT57bGV0IGM9by5oYXMocy5rZXkpP28uZ2V0KHMua2V5KTpOdW1iZXIuUE9TSVRJVkVfSU5GSU5JVFksdT1vLmhhcyhsLmtleSk/by5nZXQobC5rZXkpOk51bWJlci5QT1NJVElWRV9JTkZJTklUWTtyZXR1cm4gYyE9PXU/Yy11OnMua2V5PGwua2V5Py0xOnMua2V5Pmwua2V5PzE6MH19cmV0dXJuICRMKGUsYSl9LEdWcj1lPT57bGV0IHQ9eWQoZSkscj1KU09OLnBhcnNlKHQpO3JldHVybiBKU09OLnN0cmluZ2lmeShyLG51bGwsMil9LFlWcj0oLi4uZSk9PntsZXQgdD15ZCguLi5lKTtyZXR1cm4gUWkuYmFzZTY0LmVuY29kZVVyaSh0KX0sWlZyPWU9PntsZXQgdD1RaS5iYXNlNjQsaT0odC5kZWNvZGVVcml8fHQuZGVjb2RlKShlKTtyZXR1cm4gUEwoaSl9LEQxZT1jbGFzcyBle3N0YXRpYyBlbmZvbGRGcm9tT2JqZWN0KHQpe2xldCByPW5ldyB0aGlzLGk9ci5zYXZlYWJsZVByb3BlcnRpZXN8fFtdO2ZvcihsZXQgYSBpbiB0KWkuaW5kZXhPZihhKSE9PS0xJiYoclthXT10W2FdKTtyZXR1cm4gcn1zdGF0aWMgZW5mb2xkRnJvbUpzb24odCl7bGV0IHI9UEwodCk7cmV0dXJuIHRoaXMuZW5mb2xkRnJvbU9iamVjdChyKX1zYXZlYWJsZVByb3BlcnRpZXM7Zm9sZFRvT2JqZWN0KCl7bGV0IHQ9bmV3IFNldDtyZXR1cm4gdC5hZGQodGhpcyksdGhpcy5mb2xkVG9PYmplY3RJbnRlcm5hbCh0KX1mb2xkVG9PYmplY3RJbnRlcm5hbCh0KXtsZXQgcj17fSxpPW49PntpZihuIGluc3RhbmNlb2YgZSl7aWYodC5oYXMobikpdGhyb3cgbmV3IEVycm9yKCJjeWNsZSBkZXRlY3RlZCIpO3JldHVybiB0LmFkZChuKSxuLmZvbGRUb09iamVjdEludGVybmFsKHQpfXJldHVybiBBcnJheS5pc0FycmF5KG4pP24ubWFwKG89PmkobykpOkVMLmRlZmF1bHQobil9LGE9dGhpcy5zYXZlYWJsZVByb3BlcnRpZXN8fFtdO2ZvcihsZXQgbiBvZiBhKXtsZXQgbz10aGlzW25dO3Jbbl09aShvKX1yZXR1cm4gcn1mb2xkVG9Kc29uKCl7bGV0IHQ9dGhpcy5mb2xkVG9PYmplY3QoKTtyZXR1cm4geWQodCl9fSxYVnI9KCk9PihlLHQpPT57bGV0IHI9U3RyaW5nKHQubmFtZSk7dC5hZGRJbml0aWFsaXplcihmdW5jdGlvbigpe3RoaXMuc2F2ZWFibGVQcm9wZXJ0aWVzfHwodGhpcy5zYXZlYWJsZVByb3BlcnRpZXM9W10pLHRoaXMuc2F2ZWFibGVQcm9wZXJ0aWVzLmluY2x1ZGVzKHIpfHx0aGlzLnNhdmVhYmxlUHJvcGVydGllcy5wdXNoKHIpfSl9LEZLZT0oZSx0KT0+e2xldCByPXlkKGUpLGk9eWQodCk7cmV0dXJuIHI9PT1pfSxRVnI9KGUsdCk9PntsZXQgcj1BMWUoZSksaT1BMWUodCk7cmV0dXJuIEZLZShyLGkpfX0pO3ZhciBOTD1wKCgpPT57VEtlKCk7T0tlKCk7RWkoKTtoMigpO2M5KCl9KTt2YXIgaWcsRTFlPXAoKCk9PntOTCgpO0ZMKCk7aWc9Y2xhc3N7Y29uc3RydWN0b3IodCxyKXt0aGlzLnN0YXRlUGFydFJlZj10LHRoaXMuYWN0aW9uRGVmPXJ9dHJpZ2dlcih0KXtyZXR1cm4gdGhpcy5zdGF0ZVBhcnRSZWYuZGlzcGF0Y2hBY3Rpb24odGhpcyx0KX19fSk7dmFyIGFnLEZMPXAoKCk9PntOTCgpO0UxZSgpO2FnPWNsYXNze2NvbnN0cnVjdG9yKHQscil7dGhpcy5zdGF0ZT1uZXcgbnIucnhqcy5TdWJqZWN0LHRoaXMuY3VtdWxhdGl2ZURlZmVycmVkPVhlLmN1bXVsYXRpdmVEZWZlcigpLHRoaXMucGVuZGluZ0N1bXVsYXRpdmVOb3RpZmljYXRpb249bnVsbCx0aGlzLndlYlN0b3JlPW51bGwsdGhpcy5uYW1lPXQsciYmKHRoaXMud2ViU3RvcmVPcHRpb25zPXIpfWFzeW5jIGluaXQoKXtpZih0aGlzLndlYlN0b3JlT3B0aW9ucyl7dGhpcy53ZWJTdG9yZT1uZXcgWWEuV2ViU3RvcmUodGhpcy53ZWJTdG9yZU9wdGlvbnMpLGF3YWl0IHRoaXMud2ViU3RvcmUuaW5pdCgpO2xldCB0PWF3YWl0IHRoaXMud2ViU3RvcmUuZ2V0KFN0cmluZyh0aGlzLm5hbWUpKTt0JiZ0aGlzLnZhbGlkYXRlU3RhdGUodCkmJih0aGlzLnN0YXRlU3RvcmU9dCxhd2FpdCB0aGlzLm5vdGlmeUNoYW5nZSgpKX19Z2V0U3RhdGUoKXtyZXR1cm4gdGhpcy5zdGF0ZVN0b3JlfWFzeW5jIHNldFN0YXRlKHQpe2lmKCF0aGlzLnZhbGlkYXRlU3RhdGUodCkpdGhyb3cgbmV3IEVycm9yKGBJbnZhbGlkIHN0YXRlIHN0cnVjdHVyZSBmb3Igc3RhdGUgcGFydCAnJHt0aGlzLm5hbWV9J2ApO3JldHVybiB0aGlzLndlYlN0b3JlJiZhd2FpdCB0aGlzLndlYlN0b3JlLnNldChTdHJpbmcodGhpcy5uYW1lKSx0KSx0aGlzLnN0YXRlU3RvcmU9dCxhd2FpdCB0aGlzLm5vdGlmeUNoYW5nZSgpLHRoaXMuc3RhdGVTdG9yZX12YWxpZGF0ZVN0YXRlKHQpe3JldHVybiB0IT1udWxsfWFzeW5jIG5vdGlmeUNoYW5nZSgpe2lmKCF0aGlzLnN0YXRlU3RvcmUpcmV0dXJuO2xldCByPWF3YWl0KGFzeW5jIGk9PmF3YWl0IHRnLnNoYTI1NkZyb21TdHJpbmcocmcuc3RhYmxlT25lV2F5U3RyaW5naWZ5KGkpKSkodGhpcy5zdGF0ZVN0b3JlKTt0aGlzLmxhc3RTdGF0ZU5vdGlmaWNhdGlvblBheWxvYWRIYXNoJiZyPT09dGhpcy5sYXN0U3RhdGVOb3RpZmljYXRpb25QYXlsb2FkSGFzaHx8KHRoaXMubGFzdFN0YXRlTm90aWZpY2F0aW9uUGF5bG9hZEhhc2g9cix0aGlzLnN0YXRlLm5leHQodGhpcy5zdGF0ZVN0b3JlKSl9bm90aWZ5Q2hhbmdlQ3VtdWxhdGl2ZSgpe3RoaXMucGVuZGluZ0N1bXVsYXRpdmVOb3RpZmljYXRpb24mJmNsZWFyVGltZW91dCh0aGlzLnBlbmRpbmdDdW11bGF0aXZlTm90aWZpY2F0aW9uKSx0aGlzLnBlbmRpbmdDdW11bGF0aXZlTm90aWZpY2F0aW9uPXNldFRpbWVvdXQoYXN5bmMoKT0+e3RoaXMucGVuZGluZ0N1bXVsYXRpdmVOb3RpZmljYXRpb249bnVsbCx0aGlzLnN0YXRlU3RvcmUmJmF3YWl0IHRoaXMubm90aWZ5Q2hhbmdlKCl9LDApfXNlbGVjdCh0KXtyZXR1cm4gdHx8KHQ9aT0+aSksdGhpcy5zdGF0ZS5waXBlKG5yLnJ4anMub3BzLnN0YXJ0V2l0aCh0aGlzLmdldFN0YXRlKCkpLG5yLnJ4anMub3BzLmZpbHRlcihpPT5pIT09dm9pZCAwKSxuci5yeGpzLm9wcy5tYXAoaT0+e3RyeXtyZXR1cm4gdChpKX1jYXRjaChhKXtjb25zb2xlLmVycm9yKGBTZWxlY3RvciBlcnJvciBpbiBzdGF0ZSBwYXJ0ICcke3RoaXMubmFtZX0nOmAsYSk7cmV0dXJufX0pKX1jcmVhdGVBY3Rpb24odCl7cmV0dXJuIG5ldyBpZyh0aGlzLHQpfWFzeW5jIGRpc3BhdGNoQWN0aW9uKHQscil7YXdhaXQgdGhpcy5jdW11bGF0aXZlRGVmZXJyZWQucHJvbWlzZTtsZXQgaT1hd2FpdCB0LmFjdGlvbkRlZih0aGlzLHIpO3JldHVybiBhd2FpdCB0aGlzLnNldFN0YXRlKGkpLHRoaXMuZ2V0U3RhdGUoKX1hc3luYyB3YWl0VW50aWxQcmVzZW50KHQscil7bGV0IGk9WGUuZGVmZXIoKSxhPXRoaXMuc2VsZWN0KHQpLG49ITEsbz1hLnN1YnNjcmliZShsPT57bCYmIW4mJihuPSEwLGkucmVzb2x2ZShsKSl9KSxzO3ImJihzPXNldFRpbWVvdXQoKCk9PntufHwobj0hMCxvLnVuc3Vic2NyaWJlKCksaS5yZWplY3QobmV3IEVycm9yKGB3YWl0VW50aWxQcmVzZW50IHRpbWVkIG91dCBhZnRlciAke3J9bXNgKSkpfSxyKSk7dHJ5e3JldHVybiBhd2FpdCBpLnByb21pc2V9ZmluYWxseXtvLnVuc3Vic2NyaWJlKCkscyYmY2xlYXJUaW1lb3V0KHMpfX1hc3luYyBzdGF0ZVNldHVwKHQpe2xldCByPXQodGhpcyk7dGhpcy5jdW11bGF0aXZlRGVmZXJyZWQuYWRkUHJvbWlzZShyKSxhd2FpdCB0aGlzLnNldFN0YXRlKGF3YWl0IHIpfX19KTt2YXIgJDFlLFJLZT1wKCgpPT57TkwoKTtGTCgpOyQxZT1jbGFzc3tjb25zdHJ1Y3Rvcigpe3RoaXMuc3RhdGVQYXJ0TWFwPXt9LHRoaXMucGVuZGluZ1N0YXRlUGFydENyZWF0aW9uPW5ldyBNYXB9YXN5bmMgZ2V0U3RhdGVQYXJ0KHQscixpPSJzb2Z0Iil7bGV0IGE9dGhpcy5wZW5kaW5nU3RhdGVQYXJ0Q3JlYXRpb24uZ2V0KHQpO2lmKGEpcmV0dXJuIGE7bGV0IG49dGhpcy5zdGF0ZVBhcnRNYXBbdF07aWYobilzd2l0Y2goaSl7Y2FzZSJtYW5kYXRvcnkiOnRocm93IG5ldyBFcnJvcihgU3RhdGUgcGFydCAnJHt0fScgYWxyZWFkeSBleGlzdHMsIGJ1dCBpbml0TW9kZSBpcyAnbWFuZGF0b3J5J2ApO2Nhc2UiZm9yY2UiOmJyZWFrO2RlZmF1bHQ6cmV0dXJuIG59ZWxzZSBpZighcil0aHJvdyBuZXcgRXJyb3IoYFN0YXRlIHBhcnQgJyR7dH0nIGRvZXMgbm90IGV4aXN0IGFuZCBubyBpbml0aWFsIHN0YXRlIHByb3ZpZGVkYCk7bGV0IG89dGhpcy5jcmVhdGVTdGF0ZVBhcnQodCxyLGkpO3RoaXMucGVuZGluZ1N0YXRlUGFydENyZWF0aW9uLnNldCh0LG8pO3RyeXtyZXR1cm4gYXdhaXQgb31maW5hbGx5e3RoaXMucGVuZGluZ1N0YXRlUGFydENyZWF0aW9uLmRlbGV0ZSh0KX19YXN5bmMgY3JlYXRlU3RhdGVQYXJ0KHQscixpPSJzb2Z0Iil7bGV0IGE9bmV3IGFnKHQsaT09PSJwZXJzaXN0ZW50Ij97ZGJOYW1lOiJzbWFydHN0YXRlIixzdG9yZU5hbWU6dH06bnVsbCk7YXdhaXQgYS5pbml0KCk7bGV0IG49YS5nZXRTdGF0ZSgpO3JldHVybiBpPT09InBlcnNpc3RlbnQiJiZuIT09dm9pZCAwP2F3YWl0IGEuc2V0U3RhdGUoey4uLnIsLi4ubn0pOmF3YWl0IGEuc2V0U3RhdGUociksdGhpcy5zdGF0ZVBhcnRNYXBbdF09YSxhfX19KTt2YXIgeTQ9e307RmUoeTQse1NtYXJ0c3RhdGU6KCk9PiQxZSxTdGF0ZUFjdGlvbjooKT0+aWcsU3RhdGVQYXJ0OigpPT5hZ30pO3ZhciBJMWU9cCgoKT0+e1JLZSgpO0ZMKCk7RTFlKCl9KTt2YXIgQktlPXAoKCk9Pnt9KTt2YXIgUDFlLEhLZT1wKCgpPT57QktlKCk7UDFlPWNsYXNzIGV7c3RhdGljIGNyZWF0ZUZyb21VcmwodCxyKXtsZXQgaT1uZXcgVVJMKHQpLGE9e30sbj1bXTtpLnNlYXJjaCYmaS5zZWFyY2gucmVwbGFjZSgiPyIsIiIpLnNwbGl0KCImIikubWFwKGM9PntuLnB1c2goe2tleTpjLnNwbGl0KCI9IilbMF0sdmFsdWU6Yy5zcGxpdCgiPSIpWzFdfSl9KTtmb3IobGV0IGMgb2YgbilhW2Mua2V5XT1jLnZhbHVlO2lmKHI/LnNlYXJjaFBhcmFtcylmb3IobGV0IGMgb2YgT2JqZWN0LmtleXMoci5zZWFyY2hQYXJhbXMpKWFbY109ci5zZWFyY2hQYXJhbXNbY107bGV0IG89aS5wYXRobmFtZXx8IiI7aWYoT2JqZWN0LmtleXMoYSkubGVuZ3RoPjApe28rPSI/IjtsZXQgYz0hMDtmb3IobGV0IHUgb2YgT2JqZWN0LmtleXMoYSkpYz9jPSExOm8rPSImIixvKz1gJHt1fT0ke2FbdV19YH1sZXQgcz17Li4uaSxocmVmOmkuaHJlZixvcmlnaW46aS5vcmlnaW4scHJvdG9jb2w6aS5wcm90b2NvbCx1c2VybmFtZTppLnVzZXJuYW1lLHBhc3N3b3JkOmkucGFzc3dvcmQsaG9zdDppLmhvc3QsaG9zdG5hbWU6aS5ob3N0bmFtZSxwb3J0OmkucG9ydCxwYXRoOm8scGF0aG5hbWU6aS5wYXRobmFtZSxzZWFyY2g6aS5zZWFyY2gsc2VhcmNoUGFyYW1zOmEsaGFzaDppLmhhc2h9OyFzLnBvcnQmJnMucHJvdG9jb2w9PT0iaHR0cHM6IiYmKHMucG9ydD0iNDQzIiksIXMucG9ydCYmcy5wcm90b2NvbD09PSJodHRwOiImJihzLnBvcnQ9IjgwIik7bGV0IGw9bmV3IGU7cmV0dXJuIE9iamVjdC5hc3NpZ24obCxzKSxsfXN0YXRpYyBjcmVhdGVGcm9tUGFyc2VkVXJsKHQpe2xldCByPW5ldyBlO3JldHVybiBPYmplY3QuYXNzaWduKHIsdCkscn1jb25zdHJ1Y3Rvcigpe3RoaXMuc2VhcmNoUGFyYW1zPXt9fWNsb25lKCl7bGV0IHQ9bmV3IGU7cmV0dXJuIE9iamVjdC5hc3NpZ24odCx0aGlzKSx0LnNlYXJjaFBhcmFtcz17Li4udGhpcy5zZWFyY2hQYXJhbXN9LHR9c2V0KHQscil7cmV0dXJuIHRoaXNbdF09cix0aGlzfXRvU3RyaW5nKCl7bGV0IHQ9IiI7cmV0dXJuIHRoaXMudXNlcm5hbWUmJiF0aGlzLnBhc3N3b3JkJiYodD1gJHt0aGlzLnVzZXJuYW1lfUBgKSx0aGlzLnVzZXJuYW1lJiZ0aGlzLnBhc3N3b3JkJiYodD1gJHt0aGlzLnVzZXJuYW1lfToke3RoaXMucGFzc3dvcmR9QGApLGAke3RoaXMucHJvdG9jb2x9Ly8ke3R9JHt0aGlzLmhvc3RuYW1lfToke3RoaXMucG9ydH0ke3RoaXMucGF0aH1gfX19KTt2YXIgdzQ9e307RmUodzQse1NtYXJ0dXJsOigpPT5QMWV9KTt2YXIgTjFlPXAoKCk9PntIS2UoKX0pO3ZhciBxS2U9cCgoKT0+e1RzKCk7TjgoKTtWOCgpO0VpKCk7YzkoKX0pO3ZhciBPMWU9e307RmUoTzFlLHtXZWJSZXF1ZXN0OigpPT5GMWV9KTt2YXIgRjFlLGpLZT1wKCgpPT57cUtlKCk7RjFlPWNsYXNze2NvbnN0cnVjdG9yKHQ9e30pe3RoaXMub3B0aW9uc0FyZz10LHRoaXMuY2FjaGVTdG9yZT1uZXcgWWEuV2ViU3RvcmUoe2RiTmFtZToid2VicmVxdWVzdCIsc3RvcmVOYW1lOiJ3ZWJyZXF1ZXN0In0pLHRoaXMub3B0aW9ucz17bG9nZ2luZzohMCwuLi50fX1hc3luYyBnZXRKc29uKHQscj0hMSl7bGV0IGE9YXdhaXQoYXdhaXQgdGhpcy5yZXF1ZXN0KHQse21ldGhvZDoiR0VUIix1c2VDYWNoZTpyfSkpLnRleHQoKTtyZXR1cm4geTEucGFyc2UoYSl9YXN5bmMgcG9zdEpzb24odCxyLGk9ITEpe2xldCBuPWF3YWl0KGF3YWl0IHRoaXMucmVxdWVzdCh0LHttZXRob2Q6IlBPU1QiLGhlYWRlcnM6eyJDb250ZW50LVR5cGUiOiJhcHBsaWNhdGlvbi9qc29uIn0sYm9keTp5MS5zdHJpbmdpZnkociksdXNlQ2FjaGU6aX0pKS50ZXh0KCk7cmV0dXJuIHkxLnBhcnNlKG4pfWFzeW5jIHB1dEpzb24odCxyLGk9ITEpe2xldCBuPWF3YWl0KGF3YWl0IHRoaXMucmVxdWVzdCh0LHttZXRob2Q6IlBVVCIsaGVhZGVyczp7IkNvbnRlbnQtVHlwZSI6ImFwcGxpY2F0aW9uL2pzb24ifSxib2R5OnkxLnN0cmluZ2lmeShyKX0pKS50ZXh0KCk7cmV0dXJuIHkxLnBhcnNlKG4pfWFzeW5jIGRlbGV0ZUpzb24odCxyPSExKXtsZXQgYT1hd2FpdChhd2FpdCB0aGlzLnJlcXVlc3QodCx7aGVhZGVyczp7IkNvbnRlbnQtVHlwZSI6ImFwcGxpY2F0aW9uL2pzb24ifSxtZXRob2Q6IkdFVCJ9KSkudGV4dCgpO3JldHVybiB5MS5wYXJzZShhKX1hc3luYyByZXF1ZXN0KHQscil7cj17dGltZW91dE1zOjZlNCx1c2VDYWNoZTohMSwuLi5yfTtsZXQgaT1uZXcgQWJvcnRDb250cm9sbGVyO0N0LmRlbGF5Rm9yKHIudGltZW91dE1zKS50aGVuKCgpPT57aS5hYm9ydCgpfSk7bGV0IGE9WGUuZGVmZXIoKSxuPSExO2lmKHIudXNlQ2FjaGUmJmF3YWl0IHRoaXMuY2FjaGVTdG9yZS5jaGVjayh0KSl7bGV0IHM9YXdhaXQgdGhpcy5jYWNoZVN0b3JlLmdldCh0KTthLnJlc29sdmUobmV3IFJlc3BvbnNlKHMse30pKX1lbHNlIGEucmVzb2x2ZShudWxsKTtsZXQgbz1hd2FpdCBmZXRjaCh0LHtzaWduYWw6aS5zaWduYWwsbWV0aG9kOnIubWV0aG9kLGhlYWRlcnM6ey4uLnIuaGVhZGVyc3x8e319LGJvZHk6ci5ib2R5fSkuY2F0Y2goYXN5bmMgcz0+ci51c2VDYWNoZSYmYXdhaXQgYS5wcm9taXNlPyhuPSEwLGEucHJvbWlzZSk6cyk7aWYoci51c2VDYWNoZSYmYXdhaXQgYS5wcm9taXNlJiZvLnN0YXR1cz09PTUwMCYmKG49ITAsbz1hd2FpdCBhLnByb21pc2UpLCFuJiZyLnVzZUNhY2hlJiZvLnN0YXR1czwzMDApe2xldCBzPWF3YWl0IG8uY2xvbmUoKS5hcnJheUJ1ZmZlcigpO2F3YWl0IHRoaXMuY2FjaGVTdG9yZS5zZXQodCxzKX1yZXR1cm4gdGhpcy5sb2coYCR7dH0gYW5zd2VycyB3aXRoIHN0YXR1czogJHtvLnN0YXR1c31gKSxvfWFzeW5jIHJlcXVlc3RNdWx0aUVuZHBvaW50KHQscil7bGV0IGksYT0wO0FycmF5LmlzQXJyYXkodCk/aT10Omk9W3RdO2xldCBuPVtdLG89YXN5bmMgYz0+e24ucHVzaChjKSxjPT09IjQyOSImJihjb25zb2xlLmxvZygiZ290IDQyOSwgc28gd2FpdGluZyBhIGxpdHRsZSBiaXQuIiksYXdhaXQgQ3QuZGVsYXlGb3IoTWF0aC5mbG9vcihNYXRoLnJhbmRvbSgpKjEwMDEpKzFlMykpO2xldCB1PTA7Zm9yKGxldCBkIG9mIG4pZD09PWMmJnUrKzt1PjIqaS5sZW5ndGgqYSYmYSsrfSxzPWFzeW5jIGM9PntpZighYyl0aHJvdyBuZXcgRXJyb3IoInJlcXVlc3QgZmFpbGVkIHBlcm1hbmVudGx5Iik7dGhpcy5sb2coYEdldHRpbmcgJHtjfSB3aXRoIG1ldGhvZCAke3IubWV0aG9kfWApO2xldCB1PWF3YWl0IGZldGNoKGMse21ldGhvZDpyLm1ldGhvZCxoZWFkZXJzOnsiQ29udGVudC1UeXBlIjoiYXBwbGljYXRpb24vanNvbiIsLi4uci5oZWFkZXJzfHx7fX0sYm9keTpyLmJvZHl9KTtyZXR1cm4gdGhpcy5sb2coYCR7Y30gYW5zd2VycyB3aXRoIHN0YXR1czogJHt1LnN0YXR1c31gKSx1LnN0YXR1cz49MjAwJiZ1LnN0YXR1czwzMDA/dTooYXdhaXQgbyh1LnN0YXR1cy50b1N0cmluZygpKSxhd2FpdCBzKGlbYV0pKX07cmV0dXJuIGF3YWl0IHMoaVthXSl9bG9nKHQpe3RoaXMub3B0aW9ucy5sb2dnaW5nJiZjb25zb2xlLmxvZyh0KX19fSk7dmFyIE9MLHdkLFJMPXAoKCk9PntPTD1jbGFzc3tjbGFpbSgpe2lmKHRoaXMuY2xhaW1lZCl0aHJvdyBuZXcgRXJyb3IoIkRlZmVycmVkIGFscmVhZHkgY2xhaW1lZCIpO3RoaXMuY2xhaW1lZD0hMH1nZXQgZHVyYXRpb24oKXtyZXR1cm4gdGhpcy5zdG9wcGVkQXQ/dGhpcy5zdG9wcGVkQXQtdGhpcy5zdGFydGVkQXQ6RGF0ZS5ub3coKS10aGlzLnN0YXJ0ZWRBdH1jb25zdHJ1Y3Rvcigpe3RoaXMuY2xhaW1lZD0hMSx0aGlzLnByb21pc2U9bmV3IFByb21pc2UoKHQscik9Pnt0aGlzLnJlc29sdmU9aT0+e3RoaXMuc3RhdHVzPSJmdWxmaWxsZWQiLHRoaXMuc3RvcHBlZEF0PURhdGUubm93KCksdChpKX0sdGhpcy5yZWplY3Q9aT0+e3RoaXMuc3RhdHVzPSJyZWplY3RlZCIsdGhpcy5zdG9wcGVkQXQ9RGF0ZS5ub3coKSxyKGkpfSx0aGlzLnN0YXJ0ZWRBdD1EYXRlLm5vdygpLHRoaXMuc3RhdHVzPSJwZW5kaW5nIn0pfX0sd2Q9KCk9Pm5ldyBPTH0pO3ZhciBCTCxlVXIsVktlPXAoKCk9PntSTCgpO0JMPWNsYXNze2NvbnN0cnVjdG9yKCl7dGhpcy5hY2N1bXVsYXRlZFByb21pc2VzPVtdLHRoaXMuZGVmZXJyZWQ9d2QoKSx0aGlzLnByb21pc2U9dGhpcy5kZWZlcnJlZC5wcm9taXNlLHNldFRpbWVvdXQoYXN5bmMoKT0+e2Zvcig7dGhpcy5hY2N1bXVsYXRlZFByb21pc2VzLmxlbmd0aD4wOylhd2FpdCB0aGlzLmFjY3VtdWxhdGVkUHJvbWlzZXMuc2hpZnQoKTt0aGlzLmRlZmVycmVkLnJlc29sdmUoKX0sMCl9YWRkUHJvbWlzZSh0KXt0aGlzLmFjY3VtdWxhdGVkUHJvbWlzZXMucHVzaCh0KX19LGVVcj0oKT0+bmV3IEJMfSk7dmFyIE1kPXt9O0ZlKE1kLHtDdW11bGF0aXZlRGVmZXJyZWQ6KCk9PkJMLERlZmVycmVkOigpPT5PTCxjdW11bGF0aXZlRGVmZXI6KCk9PmVVcixkZWZlcjooKT0+d2QsZ2V0Rmlyc3RUcnVlT3JGYWxzZTooKT0+blVyLG1hcDooKT0+aVVyLHJlamVjdGVkUHJvbWlzZTooKT0+clVyLHJlc29sdmVkUHJvbWlzZTooKT0+dFVyLHRpbWVvdXRBbmRDb250aW51ZTooKT0+YVVyLHRpbWVvdXRXcmFwOigpPT5VS2V9KTt2YXIgdFVyLHJVcixpVXIsVUtlLGFVcixuVXIsUjFlPXAoKCk9PntSTCgpO1ZLZSgpO1JMKCk7dFVyPWU9PlByb21pc2UucmVzb2x2ZShlKSxyVXI9ZT0+UHJvbWlzZS5yZWplY3QoZSksaVVyPWFzeW5jKGUsdCk9PntsZXQgcj1bXSxpPVtdO2ZvcihsZXQgYSBvZiBlKXtsZXQgbj10KGEpO3IucHVzaChuKSxuLnRoZW4obz0+e2kucHVzaChvKX0pfXJldHVybiBhd2FpdCBQcm9taXNlLmFsbChyKSxpfSxVS2U9YXN5bmMoZSx0LHI9ITApPT5uZXcgUHJvbWlzZSgoaSxhKT0+e3NldFRpbWVvdXQoKCk9PntyP2EobmV3IEVycm9yKCJ0aW1lb3V0IikpOmkobnVsbCl9LHQpLGUudGhlbihpLGEpfSksYVVyPWFzeW5jKGUsdD02ZTQpPT5VS2UoZSx0LCExKSxuVXI9YXN5bmMgZT0+e2xldCB0PXdkKCk7Zm9yKGxldCByIG9mIGUpci50aGVuKGk9PntpPT09ITAmJnQucmVzb2x2ZSghMCl9KTtyZXR1cm4gUHJvbWlzZS5hbGwoZSkudGhlbigoKT0+e3QucmVzb2x2ZSghMSl9KSx0LnByb21pc2V9fSk7dmFyIEIxZT17fTtGZShCMWUse1RpbWVvdXQ6KCk9PkhMLGRlbGF5Rm9yOigpPT5XS2UsZGVsYXlGb3JSYW5kb206KCk9Pm9Vcn0pO3ZhciBXS2Usb1VyLEhMLEdLZT1wKCgpPT57UjFlKCk7V0tlPWFzeW5jKGUsdCxyPSExKT0+KGF3YWl0IG5ldyBITChlLG51bGwscikucHJvbWlzZSx0KSxvVXI9YXN5bmMoZSx0LHIsaT0hMSk9Pihhd2FpdCBXS2UoTWF0aC5yYW5kb20oKSoodC1lKStlLG51bGwsaSksciksSEw9Y2xhc3N7Y29uc3RydWN0b3IodCxyLGk9ITEpe3RoaXMuX2NhbmNlbGxlZD0hMSx0aGlzLnRpbWVvdXRJbk1pbGxpcz10LHRoaXMuX2RlZmVycmVkPXdkKCksdGhpcy5wcm9taXNlPXRoaXMuX2RlZmVycmVkLnByb21pc2UsdGhpcy5fdGltZW91dD1zZXRUaW1lb3V0KCgpPT57dGhpcy5fY2FuY2VsbGVkfHx0aGlzLl9kZWZlcnJlZC5yZXNvbHZlKHIpfSx0KSx0aGlzLnN0YXJ0ZWQ9RGF0ZS5ub3coKSxpJiZ0aGlzLm1ha2VVbnJlZmVkKCl9bWFrZVVucmVmZWQoKXt0aGlzLl90aW1lb3V0LnVucmVmKCl9Y2FuY2VsKCl7dGhpcy5fY2FuY2VsbGVkPSEwLGNsZWFyVGltZW91dCh0aGlzLl90aW1lb3V0KX1nZXRUaW1lTGVmdCgpe2xldCB0PXRoaXMuc3RhcnRlZCt0aGlzLnRpbWVvdXRJbk1pbGxpcy1EYXRlLm5vdygpO3JldHVybiB0PjA/dDowfX19KTt2YXIgWUtlPXAoKCk9Pnt9KTt2YXIgcUw9cCgoKT0+e0pzKCl9KTt2YXIgakw9cCgoKT0+e0pzKCk7SnMoKX0pO3ZhciBaS2U9cCgoKT0+e0pzKCl9KTt2YXIgWEtlPXAoKCk9Pnt9KTt2YXIgUUtlPXAoKCk9PntKcygpfSk7dmFyIEpLZT1wKCgpPT57SnMoKX0pO3ZhciBLS2U9cCgoKT0+e30pO3ZhciBlZXQ9cCgoKT0+e30pO3ZhciBIMWU9e307dmFyIFZMPXAoKCk9PntaS2UoKTtYS2UoKTtRS2UoKTtKS2UoKTtLS2UoKTtlZXQoKX0pO3ZhciBxMWUsdGV0PXAoKCk9PntWTCgpO3FMKCk7akwoKTtxMWU9Y2xhc3N7fX0pO3ZhciByZXQ9cCgoKT0+e30pO3ZhciBpZXQ9cCgoKT0+e30pO3ZhciBhZXQ9cCgoKT0+e30pO3ZhciBuZXQ9cCgoKT0+e30pO3ZhciBqMWU9e307dmFyIFYxZT1wKCgpPT57cmV0KCk7aWV0KCk7YWV0KCk7bmV0KCl9KTt2YXIgb2V0PXAoKCk9PntVMWUoKTtWTCgpO1YxZSgpfSk7dmFyIHNldD1wKCgpPT57fSk7dmFyIGNldD1wKCgpPT57akwoKX0pO3ZhciBkZXQ9cCgoKT0+e30pO3ZhciBVTD17fTtGZShVTCx7SUpvYjooKT0+cTFlfSk7dmFyIFUxZT1wKCgpPT57WUtlKCk7cUwoKTtqTCgpO3RldCgpO29ldCgpO3NldCgpO2NldCgpO2RldCgpfSk7dmFyIHVldD1wKCgpPT57fSk7dmFyIHBldD1wKCgpPT57fSk7dmFyIFcxZT17fTt2YXIgaGV0PXAoKCk9Pnt1ZXQoKTtwZXQoKX0pO3ZhciBmZXQ9cCgoKT0+e30pO3ZhciBtZXQ9cCgoKT0+e30pO3ZhciBHMWU9e307dmFyIGdldD1wKCgpPT57ZmV0KCk7bWV0KCl9KTt2YXIgWTFlPXAoKCk9PntKcygpfSk7dmFyIGJldD1wKCgpPT57SnMoKX0pO3ZhciB2ZXQ9cCgoKT0+e1kxZSgpfSk7dmFyIFoxZT17fTt2YXIgeGV0PXAoKCk9PntZMWUoKTtiZXQoKTt2ZXQoKX0pO3ZhciB5ZXQ9cCgoKT0+e30pO3ZhciB3ZXQ9cCgoKT0+e30pO3ZhciBYMWU9e307dmFyIE1ldD1wKCgpPT57eWV0KCk7d2V0KCl9KTt2YXIgUTFlPXAoKCk9Pnt9KTt2YXIgSjFlLGtldD1wKCgpPT57UTFlKCk7SjFlPWNsYXNze319KTt2YXIgemV0PXAoKCk9Pnt9KTt2YXIgQ2V0PXAoKCk9Pnt9KTt2YXIgVGV0PXAoKCk9Pnt9KTt2YXIgX2V0PXAoKCk9Pnt9KTt2YXIgTGV0PXAoKCk9Pnt9KTt2YXIgQWV0PXAoKCk9Pnt9KTt2YXIgRGV0PXAoKCk9Pnt9KTt2YXIgRWV0PXAoKCk9Pnt9KTt2YXIgJGV0PXAoKCk9Pnt9KTt2YXIgV0w9e307RmUoV0wse0lDbmFtZURlc2NyaXB0b3I6KCk9PkoxZX0pO3ZhciBJZXQ9cCgoKT0+e1ExZSgpO2tldCgpO3pldCgpO0NldCgpO1RldCgpO19ldCgpO0xldCgpO0FldCgpO0RldCgpO0VldCgpOyRldCgpfSk7dmFyIEsxZT1wKCgpPT57cUwoKX0pO3ZhciBQZXQ9cCgoKT0+e0sxZSgpfSk7dmFyIGVpZT17fTt2YXIgTmV0PXAoKCk9PntQZXQoKTtLMWUoKX0pO3ZhciB0aWU9e307dmFyIEZldD1wKCgpPT57fSk7dmFyIE9ldD1wKCgpPT57fSk7dmFyIFJldD1wKCgpPT57fSk7dmFyIEJldD1wKCgpPT57fSk7dmFyIHJpZT17fTt2YXIgSGV0PXAoKCk9PntPZXQoKTtSZXQoKTtCZXQoKX0pO3ZhciBxZXQ9cCgoKT0+e30pO3ZhciBpaWU9e307RmUoaWllLHtidXNpbmVzczooKT0+VUwsY29kZTooKT0+VzFlLGNvbnRhaW5lcjooKT0+RzFlLGNvbnRlbnQ6KCk9PloxZSxkYXRhYmFzZTooKT0+ajFlLGZpbmFuY2U6KCk9PkgxZSxnZW5lcmFsOigpPT5YMWUsbmV0d29yazooKT0+V0wsc2FhczooKT0+ZWllLHN0b3JhZ2U6KCk9PnRpZSx3ZWJzaXRlOigpPT5yaWV9KTt2YXIgSnM9cCgoKT0+e1UxZSgpO2hldCgpO2dldCgpO1YxZSgpO1ZMKCk7eGV0KCk7TWV0KCk7SWV0KCk7TmV0KCk7RmV0KCk7SGV0KCk7cWV0KCl9KTt2YXIgbGM9cCgoKT0+e0dLZSgpO1IxZSgpO0pzKCl9KTt2YXIgR0w9cCgoKT0+e2xjKCl9KTt2YXIgTTQsbmc9cCgoKT0+e2xjKCk7TTQ9Y2xhc3N7YXBwZW5kVG9Eb20oKXshdGhpcy5lbGVtZW50UmVmLnBhcmVudEVsZW1lbnQmJiF0aGlzLmVsZW1lbnRSZWYucGFyZW50Tm9kZSYmZG9jdW1lbnQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoImhlYWQiKVswXS5hcHBlbmRDaGlsZCh0aGlzLmVsZW1lbnRSZWYpfXJlbW92ZUZyb21Eb20oKXt0aGlzLmVsZW1lbnRSZWYucGFyZW50RWxlbWVudD90aGlzLmVsZW1lbnRSZWYucGFyZW50RWxlbWVudC5yZW1vdmVDaGlsZCh0aGlzLmVsZW1lbnRSZWYpOnRoaXMuZWxlbWVudFJlZi5wYXJlbnROb2RlJiZ0aGlzLmVsZW1lbnRSZWYucGFyZW50Tm9kZS5yZW1vdmVDaGlsZCh0aGlzLmVsZW1lbnRSZWYpfX19KTt2YXIga2QsWUw9cCgoKT0+e2xjKCk7R0woKTtuZygpO2tkPWNsYXNzIGUgZXh0ZW5kcyBNNHtzdGF0aWMgY3JlYXRlQ29tcGFueUpzb25MZCh0KXtsZXQgcj17IkBjb250ZXh0IjoiaHR0cHM6Ly9zY2hlbWEub3JnIiwiQHR5cGUiOiJDb3Jwb3JhdGlvbiIsbmFtZTp0Lm5hbWUsYWx0ZXJuYXRlTmFtZTp0Lm5hbWUucmVwbGFjZSgiIEdtYkgiLCIiKSx1cmw6dC5jb250YWN0LndlYnNpdGUsbG9nbzp0LmNvbnRhY3QubG9nb1VybCxjb250YWN0UG9pbnQ6eyJAdHlwZSI6IkNvbnRhY3RQb2ludCIsdGVsZXBob25lOnQuY29udGFjdC5waG9uZSxjb250YWN0VHlwZToiY3VzdG9tZXIgc2VydmljZSIsYXJlYVNlcnZlZDoiREUiLGF2YWlsYWJsZUxhbmd1YWdlOlsiZW4iLCJHZXJtYW4iXX0sc2FtZUFzOltdfTtyZXR1cm4gdC5jb250YWN0LmZhY2Vib29rVXJsJiZyLnNhbWVBcy5wdXNoKHQuY29udGFjdC5mYWNlYm9va1VybCksdC5jb250YWN0LnR3aXR0ZXJVcmwmJnIuc2FtZUFzLnB1c2godC5jb250YWN0LnR3aXR0ZXJVcmwpLG5ldyBlKHIpfXN0YXRpYyBjcmVhdGVOZXdzQXJ0aWNsZUpzb25MZCh0KXtsZXQgcj17IkBjb250ZXh0IjoiaHR0cHM6Ly9zY2hlbWEub3JnIiwiQHR5cGUiOiJOZXdzQXJ0aWNsZSIsbWFpbkVudGl0eU9mUGFnZTp7IkB0eXBlIjoiV2ViUGFnZSIsIkBpZCI6d2luZG93LmxvY2F0aW9uLmhyZWZ9LGhlYWRsaW5lOiJBcnRpY2xlIGhlYWRsaW5lIixpbWFnZTpbdC5mZWF0dXJlZEltYWdlVXJsXSxkYXRlUHVibGlzaGVkOm5ldyBEYXRlKHQudGltZXN0YW1wKS50b0lTT1N0cmluZygpLGRhdGVNb2RpZmllZDpuZXcgRGF0ZSh0LnRpbWVzdGFtcCkudG9JU09TdHJpbmcoKSxhdXRob3I6eyJAdHlwZSI6IlBlcnNvbiIsbmFtZTpgJHt0LmF1dGhvci5maXJzdE5hbWV9ICR7dC5hdXRob3Iuc3VyTmFtZX1gfSxwdWJsaXNoZXI6eyJAdHlwZSI6Ik9yZ2FuaXphdGlvbiIsbmFtZTp0LmF1dGhvci5zdXJOYW1lLGxvZ286eyJAdHlwZSI6IkltYWdlT2JqZWN0Iix1cmw6dC5hdXRob3Iuc3VyTmFtZX19LGRlc2NyaXB0aW9uOnQuYXV0aG9yLmZpcnN0TmFtZX07cmV0dXJuIG5ldyBlKHIpfXN0YXRpYyBjcmVhdGVQcm9kdWN0SnNvbkxkKHQscil7bGV0IGk9eyJAY29udGV4dCI6Imh0dHBzOi8vc2NoZW1hLm9yZyIsIkB0eXBlIjoiU29mdHdhcmVBcHBsaWNhdGlvbiIsbmFtZTp0Lm5hbWUsZGVzY3JpcHRpb246dC5kZXNjcmlwdGlvbixvcGVyYXRpbmdTeXN0ZW06dC5vcyxhcHBsaWNhdGlvbkNhdGVnb3J5OnQuY2F0ZWdvcnksb2ZmZXJzOnsiQHR5cGUiOiJPZmZlciIsbmFtZToiVXNlci1iYXNlZCBQbGFuIixwcmljZVNwZWNpZmljYXRpb246eyJAdHlwZSI6IlByb3BlcnR5VmFsdWVTcGVjaWZpY2F0aW9uIix2YWx1ZU5hbWU6Ik51bWJlciBvZiBVc2VycyIsdmFsdWVSZXF1aXJlZDohMCxwcmljZToiNC45OSIscHJpY2VDdXJyZW5jeToiRVVSIn19LHB1Ymxpc2hlcjp0aGlzLmNyZWF0ZUNvbXBhbnlKc29uTGQocikuZWxlbWVudFJlZi50ZXh0Q29udGVudCxzY3JlZW5zaG90OiJodHRwczovL3d3dy5zb2NpYWwuaW8vc2NyZWVuc2hvdC5wbmciLHVybDoiaHR0cHM6Ly93d3cuc29jaWFsLmlvLyJ9O3JldHVybiBuZXcgZShpKX1jb25zdHJ1Y3Rvcih0KXtzdXBlcigpO2xldCByPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInNjcmlwdCIpO3IudHlwZT0iYXBwbGljYXRpb24vbGQranNvbiIsci50ZXh0PUpTT04uc3RyaW5naWZ5KHQpLHRoaXMuZWxlbWVudFJlZj1yfX19KTt2YXIgWGEsWkw9cCgoKT0+e2xjKCk7bmcoKTtYYT1jbGFzcyBlIGV4dGVuZHMgTTR7c3RhdGljIGNyZWF0ZU5ld3NBcnRpY2xlT2dUYWdzKHQpe2xldCByPVtdO3JldHVybiByLnB1c2gobmV3IGUoIm9nOnVybCIsdC51cmwpKSxyLnB1c2gobmV3IGUoIm9nOnRpdGxlIix0LnRpdGxlKSksci5wdXNoKG5ldyBlKCJvZzpkZXNjcmlwdGlvbiIsdC5jb250ZW50KSksci5wdXNoKG5ldyBlKCJvZzppbWFnZSIsdC5mZWF0dXJlZEltYWdlVXJsKSkscn1zdGF0aWMgY3JlYXRlUHJvZHVjdE9nVGFncyh0KXtsZXQgcj1bXTtyZXR1cm4gci5wdXNoKG5ldyBlKCJvZzp1cmwiLGdsb2JhbFRoaXMubG9jYXRpb24uaHJlZikpLHIucHVzaChuZXcgZSgib2c6dGl0bGUiLGAke3QubmFtZX0gLSAke3Quc2xvZ2FufWApKSxyLnB1c2gobmV3IGUoIm9nOnNpdGVfbmFtZSIsdC5uYW1lKSksci5wdXNoKG5ldyBlKCJvZzpkZXNjcmlwdGlvbiIsdC5kZXNjcmlwdGlvbikpLHIucHVzaChuZXcgZSgib2c6aW1hZ2UiLHQubG9nb0xpbmspKSxyfWNvbnN0cnVjdG9yKHQscil7c3VwZXIoKTtsZXQgaT1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJtZXRhIik7aS5zZXRBdHRyaWJ1dGUoInByb3BlcnR5Iix0KSxpLmNvbnRlbnQ9cix0aGlzLmVsZW1lbnRSZWY9aX19fSk7dmFyIGtwLGFpZT1wKCgpPT57bmcoKTtZTCgpO1pMKCk7bmllKCk7bGMoKTtrcD1jbGFzc3tzZXQgdGl0bGUodCl7dGhpcy50aXRsZVN0b3JlPXQsdGhpcy5zdGF0ZT09PSJlbmFibGVkIiYmKGRvY3VtZW50LnRpdGxlPXRoaXMudGl0bGVTdG9yZSl9Z2V0IHRpdGxlKCl7cmV0dXJuIHRoaXMudGl0bGVTdG9yZX1jb25zdHJ1Y3Rvcih0LHIpe3RoaXMudGFncz1bXSx0aGlzLnN0YXRlPSJkaXNhYmxlZCIsdGhpcy50YWdNYW5hZ2VyUmVmPXR9YWRkVGFnKHQpe2lmKHQgaW5zdGFuY2VvZiBBcnJheSlmb3IobGV0IHIgb2YgdCl0aGlzLmFkZFRhZyhyKTtlbHNlIHRoaXMudGFncy5wdXNoKHQpLHRoaXMuc3RhdGU9PT0iZW5hYmxlZCImJnQuYXBwZW5kVG9Eb20oKX1hc3luYyBhZGRDb21wYW55SW5mbyh0KXt0aGlzLmFkZFRhZyhrZC5jcmVhdGVDb21wYW55SnNvbkxkKHQpKSx0aGlzLmFkZFRhZyhuZXcgWGEoIm9nOnR5cGUiLCJidXNpbmVzcy5idXNpbmVzcyIpKSx0aGlzLmFkZFRhZyhuZXcgWGEoIm9nOnRpdGxlIix0Lm5hbWUpKSx0aGlzLmFkZFRhZyhuZXcgWGEoIm9nOnVybCIsdC5jb250YWN0LndlYnNpdGUpKSx0aGlzLmFkZFRhZyhuZXcgWGEoIm9nOmltYWdlIix0LmNvbnRhY3QubG9nb1VybCkpLHRoaXMuYWRkVGFnKG5ldyBYYSgiYnVzaW5lc3M6Y29udGFjdF9kYXRhOnN0cmVldF9hZGRyZXNzIixgJHt0LmNvbnRhY3QuYWRkcmVzcy5zdHJlZXROYW1lfSAke3QuY29udGFjdC5hZGRyZXNzLmhvdXNlTnVtYmVyfWApKSx0aGlzLmFkZFRhZyhuZXcgWGEoImJ1c2luZXNzOmNvbnRhY3RfZGF0YTpsb2NhbGl0eSIsdC5jb250YWN0LmFkZHJlc3MucG9zdGFsQ29kZSkpLHRoaXMuYWRkVGFnKG5ldyBYYSgiYnVzaW5lc3M6Y29udGFjdF9kYXRhOnJlZ2lvbiIsdC5jb250YWN0LmFkZHJlc3MuY2l0eSkpLHRoaXMuYWRkVGFnKG5ldyBYYSgiYnVzaW5lc3M6Y29udGFjdF9kYXRhOnBvc3RhbF9jb2RlIix0LmNvbnRhY3QuYWRkcmVzcy5wb3N0YWxDb2RlKSksdGhpcy5hZGRUYWcobmV3IFhhKCJidXNpbmVzczpjb250YWN0X2RhdGE6Y291bnRyeV9uYW1lIix0LmNvbnRhY3QuYWRkcmVzcy5jb3VudHJ5KSl9YWRkTmV3c0FydGljbGVJbmZvKHQpe3RoaXMuYWRkVGFnKGtkLmNyZWF0ZU5ld3NBcnRpY2xlSnNvbkxkKHQpKSx0aGlzLmFkZFRhZyhYYS5jcmVhdGVOZXdzQXJ0aWNsZU9nVGFncyh0KSl9YWRkUHJvZHVjdEluZm8odCxyKXt0aGlzLmFkZFRhZyhrZC5jcmVhdGVQcm9kdWN0SnNvbkxkKHQscikpLHRoaXMuYWRkVGFnKFhhLmNyZWF0ZVByb2R1Y3RPZ1RhZ3ModCkpfWFzeW5jIGVuYWJsZSgpe3RoaXMudGl0bGUmJihkb2N1bWVudC50aXRsZT10aGlzLnRpdGxlKTtmb3IobGV0IHQgb2YgdGhpcy50YWdzKXQuYXBwZW5kVG9Eb20oKTt0aGlzLnN0YXRlPSJlbmFibGVkIn1hc3luYyBkaXNhYmxlKCl7Zm9yKGxldCB0IG9mIHRoaXMudGFncyl0LnJlbW92ZUZyb21Eb20oKTt0aGlzLnN0YXRlPSJkaXNhYmxlZCJ9fX0pO3ZhciBMbyxvaWU9cCgoKT0+e25nKCk7TG89Y2xhc3MgZXh0ZW5kcyBNNHtjb25zdHJ1Y3Rvcih0LHIpe3N1cGVyKCk7bGV0IGk9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgibWV0YSIpO2kubmFtZT10LGkuY29udGVudD1yLHRoaXMuZWxlbWVudFJlZj1pfX19KTt2YXIgWEwsbmllPXAoKCk9PnthaWUoKTtsYygpO0dMKCk7b2llKCk7WUwoKTtaTCgpO1hMPWNsYXNze2NvbnN0cnVjdG9yKCl7dGhpcy5nbG9iYWxMZXZlbD1uZXcga3AodGhpcywiZ2xvYmFsIiksdGhpcy5iYXNlTGV2ZWw9bmV3IGtwKHRoaXMsImJhc2UiKX1hc3luYyBzZXR1cCh0KXtzd2l0Y2godGhpcy5nbG9iYWxMZXZlbC5hZGRUYWcobmV3IExvKCJnb29nbGUiLCJub3RyYW5zbGF0ZSIpKSx0aGlzLmdsb2JhbExldmVsLmFkZFRhZyhuZXcgTG8oInJldmlzaXQtYWZ0ZXIiLCIxIGRheXMiKSksdC50d2l0dGVySGFuZGxlJiYodGhpcy5nbG9iYWxMZXZlbC5hZGRUYWcobmV3IExvKCJ0d2l0dGVyOmNhcmQiLCJzdW1tYXJ5X2xhcmdlX2ltYWdlIikpLHRoaXMuZ2xvYmFsTGV2ZWwuYWRkVGFnKG5ldyBMbygidHdpdHRlcjpzaXRlIix0LnR3aXR0ZXJIYW5kbGUpKSx0aGlzLmdsb2JhbExldmVsLmFkZFRhZyhuZXcgTG8oInR3aXR0ZXI6Y3JlYXRvciIsdC50d2l0dGVySGFuZGxlKSkpLHRoaXMuYmFzZUxldmVsLnRpdGxlPXQudGl0bGUsdC5kZXNjcmlwdGlvbiYmdGhpcy5iYXNlTGV2ZWwuYWRkVGFnKG5ldyBMbygiZGVzY3JpcHRpb24iLHQuZGVzY3JpcHRpb24pKSx0LmNhbm9uaWNhbERvbWFpbiYmdGhpcy5iYXNlTGV2ZWwuYWRkVGFnKG5ldyBMbygiY2Fub25pY2FsIix0LmNhbm9uaWNhbERvbWFpbikpLCEwKXtjYXNlKHQubGRDb21wYW55JiYhdC5sZFByb2R1Y3QpOnRoaXMuYmFzZUxldmVsLmFkZENvbXBhbnlJbmZvKHQubGRDb21wYW55KTticmVhaztjYXNlISF0LmxkUHJvZHVjdDp0aGlzLmJhc2VMZXZlbC5hZGRQcm9kdWN0SW5mbyh0LmxkUHJvZHVjdCx0LmxkQ29tcGFueSk7YnJlYWt9YXdhaXQgdGhpcy5nbG9iYWxMZXZlbC5lbmFibGUoKSx0aGlzLmFjdGl2ZUxldmVsPXRoaXMuYmFzZUxldmVsLGF3YWl0IHRoaXMuYWN0aXZlTGV2ZWwuZW5hYmxlKCl9YXN5bmMgc2V0U3ViUGFnZUxldmVsKHQpe2xldCByPW5ldyBrcCh0aGlzLCJzdWJwYWdlIik7cmV0dXJuIHIudGl0bGU9dC50aXRsZSx0LmRlc2NyaXB0aW9uJiZyLmFkZFRhZyhuZXcgTG8oImRlc2NyaXB0aW9uIix0LmRlc2NyaXB0aW9uKSksYXdhaXQgdGhpcy5hY3RpdmVMZXZlbC5kaXNhYmxlKCksdGhpcy5hY3RpdmVMZXZlbD1yLGF3YWl0IHRoaXMuYWN0aXZlTGV2ZWwuZW5hYmxlKCkscn1hc3luYyByZXZlcnRUb0Jhc2VMZXZlbCgpe3RoaXMuYWN0aXZlTGV2ZWwhPT10aGlzLmJhc2VMZXZlbCYmKGF3YWl0IHRoaXMuYWN0aXZlTGV2ZWwuZGlzYWJsZSgpLHRoaXMuYWN0aXZlTGV2ZWw9dGhpcy5iYXNlTGV2ZWwsYXdhaXQgdGhpcy5hY3RpdmVMZXZlbC5lbmFibGUoKSl9fX0pO3ZhciBvZyxqZXQ9cCgoKT0+e2xjKCk7R0woKTtuaWUoKTthaWUoKTtvZz1jbGFzc3tjb25zdHJ1Y3Rvcih0KXt0aGlzLnRhZ01hbmFnZXI9bmV3IFhMLHRoaXMucmVhZHlEZWZlcnJlZD1NZC5kZWZlcigpLHRoaXMucmVhZHlGb3JTbWFydHNzckRlZmVycmVkPU1kLmRlZmVyKCksdGhpcy5yZWFkeVByb21pc2U9dGhpcy5yZWFkeURlZmVycmVkLnByb21pc2UsdGhpcy5yZWFkeUZvclNtYXJ0c3NyUHJvbWlzZT10aGlzLnJlYWR5Rm9yU21hcnRzc3JEZWZlcnJlZC5wcm9taXNlLHRoaXMub3B0aW9ucz10LHRoaXMuc2V0dXAoKS50aGVuKCgpPT57dGhpcy5yZWFkeURlZmVycmVkLnJlc29sdmUoKSx0aGlzLm9wdGlvbnMuc21hcnRzc3JXYWl0Rm9yUmVhZHlTaWduYWx8fHRoaXMucmVhZHlGb3JTbWFydHNzckRlZmVycmVkLnJlc29sdmUoKX0pfWFzeW5jIHNldHVwKHQpe3QmJih0aGlzLm9wdGlvbnM9dCksYXdhaXQgdGhpcy50YWdNYW5hZ2VyLnNldHVwKHRoaXMub3B0aW9ucy5tZXRhT2JqZWN0KX1yZXZlcnRUb0Jhc2VMZXZlbCgpe3RoaXMudGFnTWFuYWdlci5yZXZlcnRUb0Jhc2VMZXZlbCgpfWFzeW5jIHNldFN1YkxldmVsKHQpe3JldHVybiBhd2FpdCB0aGlzLnRhZ01hbmFnZXIuc2V0U3ViUGFnZUxldmVsKHQpfWZsYXNoVGl0bGUodCl7fWluZm9ybVJlYWR5Rm9yU21hcnRzc3IoKXt0aGlzLm9wdGlvbnMuc21hcnRzc3JXYWl0Rm9yUmVhZHlTaWduYWx8fGNvbnNvbGUuZXJyb3IoIllvdSBoYXZlIG5vdCBpbmRpY2F0ZWQgdGhhdCB5b3UgaW5mb3JtIHNtYXJ0c3NyIGJ5IGEgZGVkaWNhdGVkIHNpZ25hbCEgUGxlYXNlIGNvbnNpZGVyIGRvaW5nIHNvISIpLHRoaXMucmVhZHlGb3JTbWFydHNzckRlZmVycmVkLnJlc29sdmUoKX19fSk7dmFyIHNpZSxWZXQ9cCgoKT0+e2xjKCk7c2llPWNsYXNze319KTt2YXIgbGllPXt9O0ZlKGxpZSx7SnNvbkxkVGFnOigpPT5rZCxNZXRhVGFnOigpPT5MbyxPcGVuZ3JhcGhUYWc6KCk9PlhhLFRpdGxlOigpPT5zaWUsV2ViU2V0dXA6KCk9Pm9nfSk7dmFyIFFMPXAoKCk9PntqZXQoKTtvaWUoKTtaTCgpO1lMKCk7VmV0KCl9KTt2YXIgVWV0LEpMPXAoKCk9PntUcygpO2dRKCk7RWkoKTtoMigpO1JKKCk7VWV0PWVyKEhKKCksMSl9KTt2YXIgU3AsY2llPXAoKCk9PntKTCgpO1NwPWNsYXNzIGV7Y29uc3RydWN0b3IoKXt0aGlzLm1hcE9iamVjdD17fX1pc1VuaXF1ZUtleSh0KXtyZXR1cm4hdGhpcy5tYXBPYmplY3RbdF19YWRkVG9NYXAodCxyLGkpe3JldHVybiB0aGlzLmlzVW5pcXVlS2V5KHQpfHxpJiZpLmZvcmNlPyh0aGlzLm1hcE9iamVjdFt0XT1yLCEwKTohMX1nZXRCeUtleSh0KXtyZXR1cm4gdGhpcy5tYXBPYmplY3RbdF19cmVtb3ZlRnJvbU1hcCh0KXtsZXQgcj10aGlzLmdldEJ5S2V5KHQpO3JldHVybiBkZWxldGUgdGhpcy5tYXBPYmplY3RbdF0scn1nZXRLZXlzKCl7bGV0IHQ9W107Zm9yKGxldCByIGluIHRoaXMubWFwT2JqZWN0KXRoaXMubWFwT2JqZWN0W3JdJiZ0LnB1c2gocik7cmV0dXJuIHR9Y2xlYW4oKXt0aGlzLm1hcE9iamVjdD17fX1jb25jYXQodCl7bGV0IHI9bmV3IGU7Zm9yKGxldCBpIG9mIHRoaXMuZ2V0S2V5cygpKXIuYWRkVG9NYXAoaSx0aGlzLmdldEJ5S2V5KGkpKTtmb3IobGV0IGkgb2YgdC5nZXRLZXlzKCkpci5hZGRUb01hcChpLHQuZ2V0QnlLZXkoaSkse2ZvcmNlOiEwfSk7cmV0dXJuIHJ9YWRkQWxsRnJvbU90aGVyKHQpe2ZvcihsZXQgciBvZiB0LmdldEtleXMoKSl0aGlzLmFkZFRvTWFwKHIsdC5nZXRCeUtleShyKSx7Zm9yY2U6ITB9KX1hc3luYyBmaW5kKHQpe2ZvcihsZXQgciBvZiB0aGlzLmdldEtleXMoKSl7bGV0IGk9dGhpcy5nZXRCeUtleShyKTtpZihhd2FpdCB0KGkpKXJldHVybiBpfX19fSk7dmFyIGxVcixLTCxHZXQ9cCgoKT0+e0pMKCk7Y2llKCk7bFVyPShlPSJ1bmkiKT0+YCR7ZX14eHh4eHh4eHh4eGAucmVwbGFjZSgvW3h5XS9nLHQ9PntsZXQgcj1NYXRoLnJhbmRvbSgpKjE2fDA7cmV0dXJuKHQ9PT0ieCI/cjpyJjN8OCkudG9TdHJpbmcoMTYpfSksS0w9Y2xhc3MgZXtjb25zdHJ1Y3Rvcigpe3RoaXMuZmFzdE1hcD1uZXcgU3AsdGhpcy5ldmVudFN1YmplY3Q9bmV3IG5yLnJ4anMuU3ViamVjdH1hZGRNYXBwZWRVbmlxdWUodCxyKXt0aGlzLmZhc3RNYXAuYWRkVG9NYXAodCxyKX1nZXRNYXBwZWRVbmlxdWUodCl7cmV0dXJuIHRoaXMuZmFzdE1hcC5nZXRCeUtleSh0KX1yZW1vdmVNYXBwZWRVbmlxdWUodCl7bGV0IHI9dGhpcy5nZXRNYXBwZWRVbmlxdWUodCl9YWRkKHQpe2ZvcihsZXQgaSBvZiB0aGlzLmZhc3RNYXAuZ2V0S2V5cygpKWlmKHRoaXMuZmFzdE1hcC5nZXRCeUtleShpKT09PXQpcmV0dXJuIGk7bGV0IHI9bFVyKCJrZXkiKTtyZXR1cm4gdGhpcy5hZGRNYXBwZWRVbmlxdWUocix0KSx0aGlzLmV2ZW50U3ViamVjdC5uZXh0KHtvcGVyYXRpb246ImFkZCIscGF5bG9hZDp0fSkscn1hZGRBcnJheSh0KXtmb3IobGV0IHIgb2YgdCl0aGlzLmFkZChyKX1jaGVja0Zvck9iamVjdCh0KXtyZXR1cm4hIXRoaXMuZ2V0S2V5Rm9yT2JqZWN0KHQpfWdldEtleUZvck9iamVjdCh0KXtsZXQgcj1udWxsO2ZvcihsZXQgaSBvZiB0aGlzLmZhc3RNYXAuZ2V0S2V5cygpKWlmKCFyJiZ0aGlzLmZhc3RNYXAuZ2V0QnlLZXkoaSk9PT10KXI9aTtlbHNlIGNvbnRpbnVlO3JldHVybiByfWFzeW5jIGZpbmQodCl7cmV0dXJuIHRoaXMuZmFzdE1hcC5maW5kKHQpfWZpbmRTeW5jKHQpe2ZvcihsZXQgciBvZiB0aGlzLmZhc3RNYXAuZ2V0S2V5cygpKWlmKHQodGhpcy5mYXN0TWFwLmdldEJ5S2V5KHIpKSlyZXR1cm4gdGhpcy5nZXRNYXBwZWRVbmlxdWUocil9YXN5bmMgZmluZE9uZUFuZFJlbW92ZSh0KXtsZXQgcj1hd2FpdCB0aGlzLmZpbmQodCk7cmV0dXJuIHImJnRoaXMucmVtb3ZlKHIpLHJ9ZmluZE9uZUFuZFJlbW92ZVN5bmModCl7bGV0IHI9dGhpcy5maW5kU3luYyh0KTtyZXR1cm4gciYmdGhpcy5yZW1vdmUocikscn1hc3luYyBmb3JFYWNoKHQpe2ZvcihsZXQgciBvZiB0aGlzLmZhc3RNYXAuZ2V0S2V5cygpKWF3YWl0IHQodGhpcy5mYXN0TWFwLmdldEJ5S2V5KHIpKX1nZXRPbmVBbmRSZW1vdmUoKXtsZXQgdD10aGlzLmZhc3RNYXAuZ2V0S2V5cygpO2lmKHQubGVuZ3RoPT09MClyZXR1cm4gbnVsbDt7bGV0IHI9dFswXSxpPXRoaXMuZmFzdE1hcC5yZW1vdmVGcm9tTWFwKHIpO3JldHVybiB0aGlzLmV2ZW50U3ViamVjdC5uZXh0KHtvcGVyYXRpb246InJlbW92ZSIscGF5bG9hZDppfSksaX19Z2V0QXJyYXkoKXtsZXQgdD1bXTtmb3IobGV0IHIgb2YgdGhpcy5mYXN0TWFwLmdldEtleXMoKSl0LnB1c2godGhpcy5mYXN0TWFwLmdldEJ5S2V5KHIpKTtyZXR1cm4gdH1pc0VtcHR5KCl7cmV0dXJuIHRoaXMuZmFzdE1hcC5nZXRLZXlzKCkubGVuZ3RoPT09MH1yZW1vdmUodCl7aWYodGhpcy5jaGVja0Zvck9iamVjdCh0KSl7bGV0IHI9dGhpcy5nZXRLZXlGb3JPYmplY3QodCksaT10aGlzLmZhc3RNYXAucmVtb3ZlRnJvbU1hcChyKTtyZXR1cm4gdGhpcy5ldmVudFN1YmplY3QubmV4dCh7b3BlcmF0aW9uOiJyZW1vdmUiLHBheWxvYWQ6aX0pLGl9cmV0dXJuIG51bGx9d2lwZSgpe2ZvcihsZXQgdCBvZiB0aGlzLmZhc3RNYXAuZ2V0S2V5cygpKXRoaXMuZmFzdE1hcC5yZW1vdmVGcm9tTWFwKHQpfWNvbmNhdCh0KXtsZXQgcj1uZXcgZTtyZXR1cm4gci5mYXN0TWFwLmFkZEFsbEZyb21PdGhlcih0aGlzLmZhc3RNYXApLHIuZmFzdE1hcC5hZGRBbGxGcm9tT3RoZXIodC5mYXN0TWFwKSxyfWFkZEFsbEZyb21PdGhlcih0KXt0aGlzLmZhc3RNYXAuYWRkQWxsRnJvbU90aGVyKHQuZmFzdE1hcCl9fX0pO3ZhciBlQSxZZXQ9cCgoKT0+e0pMKCk7ZUE9Y2xhc3N7Y29uc3RydWN0b3IoKXt0aGlzLl9zdHJpbmdBcnJheT1bXSx0aGlzLl90cmlnZ2VyVW50aWxUcnVlRnVuY3Rpb25BcnJheT1bXX1hZGRTdHJpbmcodCl7dGhpcy5fc3RyaW5nQXJyYXkucHVzaCh0KSx0aGlzLm5vdGlmeVRyaWdnZXIoKX1hZGRTdHJpbmdBcnJheSh0KXtmb3IobGV0IHIgb2YgdCl0aGlzLmFkZFN0cmluZyhyKX1yZW1vdmVTdHJpbmcodCl7Zm9yKGxldCByIGluIHRoaXMuX3N0cmluZ0FycmF5KXRoaXMuX3N0cmluZ0FycmF5W3JdPT09dCYmdGhpcy5fc3RyaW5nQXJyYXkuc3BsaWNlKHBhcnNlSW50KHIpLDEpO3RoaXMubm90aWZ5VHJpZ2dlcigpfXdpcGUoKXt0aGlzLl9zdHJpbmdBcnJheT1bXSx0aGlzLm5vdGlmeVRyaWdnZXIoKX1jaGVja1N0cmluZyh0KXtyZXR1cm4gdGhpcy5fc3RyaW5nQXJyYXkuaW5kZXhPZih0KSE9PS0xfWNoZWNrTWluaW1hdGNoKHQpe2xldCByPW5ldyBxbC5TbWFydE1hdGNoKHQpLGk9ITE7Zm9yKGxldCBhIG9mIHRoaXMuX3N0cmluZ0FycmF5KXIubWF0Y2goYSkmJihpPSEwKTtyZXR1cm4gaX1jaGVja0lzRW1wdHkoKXtyZXR1cm4gdGhpcy5fc3RyaW5nQXJyYXkubGVuZ3RoPT09MH1nZXRTdHJpbmdBcnJheSgpe2xldCB0PVtdO2ZvcihsZXQgciBvZiB0aGlzLl9zdHJpbmdBcnJheSl0LnB1c2gocik7cmV0dXJuIHR9cmVnaXN0ZXJVbnRpbFRydWUodCxyKXtsZXQgaT1YZS5kZWZlcigpO3JldHVybiB0aGlzLl90cmlnZ2VyVW50aWxUcnVlRnVuY3Rpb25BcnJheS5wdXNoKCgpPT57bGV0IGE9dCh0aGlzLmdldFN0cmluZ0FycmF5KCkpO3JldHVybiBhPT09ITAmJihyJiZyKCksaS5yZXNvbHZlKCkpLGF9KSx0aGlzLm5vdGlmeVRyaWdnZXIoKSxpLnByb21pc2V9bm90aWZ5VHJpZ2dlcigpe2xldCB0PXRoaXMuX3RyaWdnZXJVbnRpbFRydWVGdW5jdGlvbkFycmF5LmZpbHRlcihyPT4hcigpKTt0aGlzLl90cmlnZ2VyVW50aWxUcnVlRnVuY3Rpb25BcnJheT10fX19KTtmdW5jdGlvbiBaZXQoZSx0LHIpe3JldHVybiBNYXRoLm1heChlLE1hdGgubWluKHQscikpfWZ1bmN0aW9uIGRVcihlLHQscil7cmV0dXJuKDEtcikqZStyKnR9ZnVuY3Rpb24gdVVyKGUsdCxyLGkpe3JldHVybiBkVXIoZSx0LDEtTWF0aC5leHAoLXIqaSkpfWZ1bmN0aW9uIHBVcihlLHQpe3JldHVybihlJXQrdCkldH1mdW5jdGlvbiBmVXIoZSx0KXtsZXQgcjtyZXR1cm4gZnVuY3Rpb24oLi4uaSl7bGV0IGE9dGhpcztjbGVhclRpbWVvdXQocikscj1zZXRUaW1lb3V0KCgpPT57cj12b2lkIDAsZS5hcHBseShhLGkpfSx0KX19dmFyIGNVcixoVXIsbVVyLFhldCxRZXQsazQsZ1VyLEpldCxzZyxLZXQ9cCgoKT0+e2NVcj0iMS4zLjE3IjtoVXI9Y2xhc3N7aXNSdW5uaW5nPSExO3ZhbHVlPTA7ZnJvbT0wO3RvPTA7Y3VycmVudFRpbWU9MDtsZXJwO2R1cmF0aW9uO2Vhc2luZztvblVwZGF0ZTthZHZhbmNlKGUpe2lmKCF0aGlzLmlzUnVubmluZylyZXR1cm47bGV0IHQ9ITE7aWYodGhpcy5kdXJhdGlvbiYmdGhpcy5lYXNpbmcpe3RoaXMuY3VycmVudFRpbWUrPWU7bGV0IHI9WmV0KDAsdGhpcy5jdXJyZW50VGltZS90aGlzLmR1cmF0aW9uLDEpO3Q9cj49MTtsZXQgaT10PzE6dGhpcy5lYXNpbmcocik7dGhpcy52YWx1ZT10aGlzLmZyb20rKHRoaXMudG8tdGhpcy5mcm9tKSppfWVsc2UgdGhpcy5sZXJwPyh0aGlzLnZhbHVlPXVVcih0aGlzLnZhbHVlLHRoaXMudG8sdGhpcy5sZXJwKjYwLGUpLE1hdGgucm91bmQodGhpcy52YWx1ZSk9PT10aGlzLnRvJiYodGhpcy52YWx1ZT10aGlzLnRvLHQ9ITApKToodGhpcy52YWx1ZT10aGlzLnRvLHQ9ITApO3QmJnRoaXMuc3RvcCgpLHRoaXMub25VcGRhdGU/Lih0aGlzLnZhbHVlLHQpfXN0b3AoKXt0aGlzLmlzUnVubmluZz0hMX1mcm9tVG8oZSx0LHtsZXJwOnIsZHVyYXRpb246aSxlYXNpbmc6YSxvblN0YXJ0Om4sb25VcGRhdGU6b30pe3RoaXMuZnJvbT10aGlzLnZhbHVlPWUsdGhpcy50bz10LHRoaXMubGVycD1yLHRoaXMuZHVyYXRpb249aSx0aGlzLmVhc2luZz1hLHRoaXMuY3VycmVudFRpbWU9MCx0aGlzLmlzUnVubmluZz0hMCxuPy4oKSx0aGlzLm9uVXBkYXRlPW99fTttVXI9Y2xhc3N7Y29uc3RydWN0b3IoZSx0LHthdXRvUmVzaXplOnI9ITAsZGVib3VuY2U6aT0yNTB9PXt9KXt0aGlzLndyYXBwZXI9ZSx0aGlzLmNvbnRlbnQ9dCxyJiYodGhpcy5kZWJvdW5jZWRSZXNpemU9ZlVyKHRoaXMucmVzaXplLGkpLHRoaXMud3JhcHBlciBpbnN0YW5jZW9mIFdpbmRvdz93aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigicmVzaXplIix0aGlzLmRlYm91bmNlZFJlc2l6ZSwhMSk6KHRoaXMud3JhcHBlclJlc2l6ZU9ic2VydmVyPW5ldyBSZXNpemVPYnNlcnZlcih0aGlzLmRlYm91bmNlZFJlc2l6ZSksdGhpcy53cmFwcGVyUmVzaXplT2JzZXJ2ZXIub2JzZXJ2ZSh0aGlzLndyYXBwZXIpKSx0aGlzLmNvbnRlbnRSZXNpemVPYnNlcnZlcj1uZXcgUmVzaXplT2JzZXJ2ZXIodGhpcy5kZWJvdW5jZWRSZXNpemUpLHRoaXMuY29udGVudFJlc2l6ZU9ic2VydmVyLm9ic2VydmUodGhpcy5jb250ZW50KSksdGhpcy5yZXNpemUoKX13aWR0aD0wO2hlaWdodD0wO3Njcm9sbEhlaWdodD0wO3Njcm9sbFdpZHRoPTA7ZGVib3VuY2VkUmVzaXplO3dyYXBwZXJSZXNpemVPYnNlcnZlcjtjb250ZW50UmVzaXplT2JzZXJ2ZXI7ZGVzdHJveSgpe3RoaXMud3JhcHBlclJlc2l6ZU9ic2VydmVyPy5kaXNjb25uZWN0KCksdGhpcy5jb250ZW50UmVzaXplT2JzZXJ2ZXI/LmRpc2Nvbm5lY3QoKSx0aGlzLndyYXBwZXI9PT13aW5kb3cmJnRoaXMuZGVib3VuY2VkUmVzaXplJiZ3aW5kb3cucmVtb3ZlRXZlbnRMaXN0ZW5lcigicmVzaXplIix0aGlzLmRlYm91bmNlZFJlc2l6ZSwhMSl9cmVzaXplPSgpPT57dGhpcy5vbldyYXBwZXJSZXNpemUoKSx0aGlzLm9uQ29udGVudFJlc2l6ZSgpfTtvbldyYXBwZXJSZXNpemU9KCk9Pnt0aGlzLndyYXBwZXIgaW5zdGFuY2VvZiBXaW5kb3c/KHRoaXMud2lkdGg9d2luZG93LmlubmVyV2lkdGgsdGhpcy5oZWlnaHQ9d2luZG93LmlubmVySGVpZ2h0KToodGhpcy53aWR0aD10aGlzLndyYXBwZXIuY2xpZW50V2lkdGgsdGhpcy5oZWlnaHQ9dGhpcy53cmFwcGVyLmNsaWVudEhlaWdodCl9O29uQ29udGVudFJlc2l6ZT0oKT0+e3RoaXMud3JhcHBlciBpbnN0YW5jZW9mIFdpbmRvdz8odGhpcy5zY3JvbGxIZWlnaHQ9dGhpcy5jb250ZW50LnNjcm9sbEhlaWdodCx0aGlzLnNjcm9sbFdpZHRoPXRoaXMuY29udGVudC5zY3JvbGxXaWR0aCk6KHRoaXMuc2Nyb2xsSGVpZ2h0PXRoaXMud3JhcHBlci5zY3JvbGxIZWlnaHQsdGhpcy5zY3JvbGxXaWR0aD10aGlzLndyYXBwZXIuc2Nyb2xsV2lkdGgpfTtnZXQgbGltaXQoKXtyZXR1cm57eDp0aGlzLnNjcm9sbFdpZHRoLXRoaXMud2lkdGgseTp0aGlzLnNjcm9sbEhlaWdodC10aGlzLmhlaWdodH19fSxYZXQ9Y2xhc3N7ZXZlbnRzPXt9O2VtaXQoZSwuLi50KXtsZXQgcj10aGlzLmV2ZW50c1tlXXx8W107Zm9yKGxldCBpPTAsYT1yLmxlbmd0aDtpPGE7aSsrKXJbaV0/LiguLi50KX1vbihlLHQpe3JldHVybiB0aGlzLmV2ZW50c1tlXT8ucHVzaCh0KXx8KHRoaXMuZXZlbnRzW2VdPVt0XSksKCk9Pnt0aGlzLmV2ZW50c1tlXT10aGlzLmV2ZW50c1tlXT8uZmlsdGVyKHI9PnQhPT1yKX19b2ZmKGUsdCl7dGhpcy5ldmVudHNbZV09dGhpcy5ldmVudHNbZV0/LmZpbHRlcihyPT50IT09cil9ZGVzdHJveSgpe3RoaXMuZXZlbnRzPXt9fX0sUWV0PTEwMC82LGs0PXtwYXNzaXZlOiExfSxnVXI9Y2xhc3N7Y29uc3RydWN0b3IoZSx0PXt3aGVlbE11bHRpcGxpZXI6MSx0b3VjaE11bHRpcGxpZXI6MX0pe3RoaXMuZWxlbWVudD1lLHRoaXMub3B0aW9ucz10LHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCJyZXNpemUiLHRoaXMub25XaW5kb3dSZXNpemUsITEpLHRoaXMub25XaW5kb3dSZXNpemUoKSx0aGlzLmVsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigid2hlZWwiLHRoaXMub25XaGVlbCxrNCksdGhpcy5lbGVtZW50LmFkZEV2ZW50TGlzdGVuZXIoInRvdWNoc3RhcnQiLHRoaXMub25Ub3VjaFN0YXJ0LGs0KSx0aGlzLmVsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigidG91Y2htb3ZlIix0aGlzLm9uVG91Y2hNb3ZlLGs0KSx0aGlzLmVsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigidG91Y2hlbmQiLHRoaXMub25Ub3VjaEVuZCxrNCl9dG91Y2hTdGFydD17eDowLHk6MH07bGFzdERlbHRhPXt4OjAseTowfTt3aW5kb3c9e3dpZHRoOjAsaGVpZ2h0OjB9O2VtaXR0ZXI9bmV3IFhldDtvbihlLHQpe3JldHVybiB0aGlzLmVtaXR0ZXIub24oZSx0KX1kZXN0cm95KCl7dGhpcy5lbWl0dGVyLmRlc3Ryb3koKSx3aW5kb3cucmVtb3ZlRXZlbnRMaXN0ZW5lcigicmVzaXplIix0aGlzLm9uV2luZG93UmVzaXplLCExKSx0aGlzLmVsZW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcigid2hlZWwiLHRoaXMub25XaGVlbCxrNCksdGhpcy5lbGVtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoInRvdWNoc3RhcnQiLHRoaXMub25Ub3VjaFN0YXJ0LGs0KSx0aGlzLmVsZW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcigidG91Y2htb3ZlIix0aGlzLm9uVG91Y2hNb3ZlLGs0KSx0aGlzLmVsZW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcigidG91Y2hlbmQiLHRoaXMub25Ub3VjaEVuZCxrNCl9b25Ub3VjaFN0YXJ0PWU9PntsZXR7Y2xpZW50WDp0LGNsaWVudFk6cn09ZS50YXJnZXRUb3VjaGVzP2UudGFyZ2V0VG91Y2hlc1swXTplO3RoaXMudG91Y2hTdGFydC54PXQsdGhpcy50b3VjaFN0YXJ0Lnk9cix0aGlzLmxhc3REZWx0YT17eDowLHk6MH0sdGhpcy5lbWl0dGVyLmVtaXQoInNjcm9sbCIse2RlbHRhWDowLGRlbHRhWTowLGV2ZW50OmV9KX07b25Ub3VjaE1vdmU9ZT0+e2xldHtjbGllbnRYOnQsY2xpZW50WTpyfT1lLnRhcmdldFRvdWNoZXM/ZS50YXJnZXRUb3VjaGVzWzBdOmUsaT0tKHQtdGhpcy50b3VjaFN0YXJ0LngpKnRoaXMub3B0aW9ucy50b3VjaE11bHRpcGxpZXIsYT0tKHItdGhpcy50b3VjaFN0YXJ0LnkpKnRoaXMub3B0aW9ucy50b3VjaE11bHRpcGxpZXI7dGhpcy50b3VjaFN0YXJ0Lng9dCx0aGlzLnRvdWNoU3RhcnQueT1yLHRoaXMubGFzdERlbHRhPXt4OmkseTphfSx0aGlzLmVtaXR0ZXIuZW1pdCgic2Nyb2xsIix7ZGVsdGFYOmksZGVsdGFZOmEsZXZlbnQ6ZX0pfTtvblRvdWNoRW5kPWU9Pnt0aGlzLmVtaXR0ZXIuZW1pdCgic2Nyb2xsIix7ZGVsdGFYOnRoaXMubGFzdERlbHRhLngsZGVsdGFZOnRoaXMubGFzdERlbHRhLnksZXZlbnQ6ZX0pfTtvbldoZWVsPWU9PntsZXR7ZGVsdGFYOnQsZGVsdGFZOnIsZGVsdGFNb2RlOml9PWUsYT1pPT09MT9RZXQ6aT09PTI/dGhpcy53aW5kb3cud2lkdGg6MSxuPWk9PT0xP1FldDppPT09Mj90aGlzLndpbmRvdy5oZWlnaHQ6MTt0Kj1hLHIqPW4sdCo9dGhpcy5vcHRpb25zLndoZWVsTXVsdGlwbGllcixyKj10aGlzLm9wdGlvbnMud2hlZWxNdWx0aXBsaWVyLHRoaXMuZW1pdHRlci5lbWl0KCJzY3JvbGwiLHtkZWx0YVg6dCxkZWx0YVk6cixldmVudDplfSl9O29uV2luZG93UmVzaXplPSgpPT57dGhpcy53aW5kb3c9e3dpZHRoOndpbmRvdy5pbm5lcldpZHRoLGhlaWdodDp3aW5kb3cuaW5uZXJIZWlnaHR9fX0sSmV0PWU9Pk1hdGgubWluKDEsMS4wMDEtTWF0aC5wb3coMiwtMTAqZSkpLHNnPWNsYXNze19pc1Njcm9sbGluZz0hMTtfaXNTdG9wcGVkPSExO19pc0xvY2tlZD0hMTtfcHJldmVudE5leHROYXRpdmVTY3JvbGxFdmVudD0hMTtfcmVzZXRWZWxvY2l0eVRpbWVvdXQ9bnVsbDtfcmFmSWQ9bnVsbDtpc1RvdWNoaW5nO3RpbWU9MDt1c2VyRGF0YT17fTtsYXN0VmVsb2NpdHk9MDt2ZWxvY2l0eT0wO2RpcmVjdGlvbj0wO29wdGlvbnM7dGFyZ2V0U2Nyb2xsO2FuaW1hdGVkU2Nyb2xsO2FuaW1hdGU9bmV3IGhVcjtlbWl0dGVyPW5ldyBYZXQ7ZGltZW5zaW9uczt2aXJ0dWFsU2Nyb2xsO2NvbnN0cnVjdG9yKHt3cmFwcGVyOmU9d2luZG93LGNvbnRlbnQ6dD1kb2N1bWVudC5kb2N1bWVudEVsZW1lbnQsZXZlbnRzVGFyZ2V0OnI9ZSxzbW9vdGhXaGVlbDppPSEwLHN5bmNUb3VjaDphPSExLHN5bmNUb3VjaExlcnA6bj0uMDc1LHRvdWNoSW5lcnRpYUV4cG9uZW50Om89MS43LGR1cmF0aW9uOnMsZWFzaW5nOmwsbGVycDpjPS4xLGluZmluaXRlOnU9ITEsb3JpZW50YXRpb246ZD0idmVydGljYWwiLGdlc3R1cmVPcmllbnRhdGlvbjpoPWQ9PT0iaG9yaXpvbnRhbCI/ImJvdGgiOiJ2ZXJ0aWNhbCIsdG91Y2hNdWx0aXBsaWVyOmY9MSx3aGVlbE11bHRpcGxpZXI6eD0xLGF1dG9SZXNpemU6dj0hMCxwcmV2ZW50OmIsdmlydHVhbFNjcm9sbDp5LG92ZXJzY3JvbGw6dz0hMCxhdXRvUmFmOms9ITEsYW5jaG9yczpPPSExLGF1dG9Ub2dnbGU6ej0hMSxhbGxvd05lc3RlZFNjcm9sbDpNPSExLF9fZXhwZXJpbWVudGFsX19uYWl2ZURpbWVuc2lvbnM6Rj0hMSxuYWl2ZURpbWVuc2lvbnM6RD1GLHN0b3BJbmVydGlhT25OYXZpZ2F0ZTpOPSExfT17fSl7d2luZG93LmxlbmlzVmVyc2lvbj1jVXIsKCFlfHxlPT09ZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50KSYmKGU9d2luZG93KSx0eXBlb2Ygcz09Im51bWJlciImJnR5cGVvZiBsIT0iZnVuY3Rpb24iP2w9SmV0OnR5cGVvZiBsPT0iZnVuY3Rpb24iJiZ0eXBlb2YgcyE9Im51bWJlciImJihzPTEpLHRoaXMub3B0aW9ucz17d3JhcHBlcjplLGNvbnRlbnQ6dCxldmVudHNUYXJnZXQ6cixzbW9vdGhXaGVlbDppLHN5bmNUb3VjaDphLHN5bmNUb3VjaExlcnA6bix0b3VjaEluZXJ0aWFFeHBvbmVudDpvLGR1cmF0aW9uOnMsZWFzaW5nOmwsbGVycDpjLGluZmluaXRlOnUsZ2VzdHVyZU9yaWVudGF0aW9uOmgsb3JpZW50YXRpb246ZCx0b3VjaE11bHRpcGxpZXI6Zix3aGVlbE11bHRpcGxpZXI6eCxhdXRvUmVzaXplOnYscHJldmVudDpiLHZpcnR1YWxTY3JvbGw6eSxvdmVyc2Nyb2xsOncsYXV0b1JhZjprLGFuY2hvcnM6TyxhdXRvVG9nZ2xlOnosYWxsb3dOZXN0ZWRTY3JvbGw6TSxuYWl2ZURpbWVuc2lvbnM6RCxzdG9wSW5lcnRpYU9uTmF2aWdhdGU6Tn0sdGhpcy5kaW1lbnNpb25zPW5ldyBtVXIoZSx0LHthdXRvUmVzaXplOnZ9KSx0aGlzLnVwZGF0ZUNsYXNzTmFtZSgpLHRoaXMudGFyZ2V0U2Nyb2xsPXRoaXMuYW5pbWF0ZWRTY3JvbGw9dGhpcy5hY3R1YWxTY3JvbGwsdGhpcy5vcHRpb25zLndyYXBwZXIuYWRkRXZlbnRMaXN0ZW5lcigic2Nyb2xsIix0aGlzLm9uTmF0aXZlU2Nyb2xsLCExKSx0aGlzLm9wdGlvbnMud3JhcHBlci5hZGRFdmVudExpc3RlbmVyKCJzY3JvbGxlbmQiLHRoaXMub25TY3JvbGxFbmQse2NhcHR1cmU6ITB9KSwodGhpcy5vcHRpb25zLmFuY2hvcnN8fHRoaXMub3B0aW9ucy5zdG9wSW5lcnRpYU9uTmF2aWdhdGUpJiZ0aGlzLm9wdGlvbnMud3JhcHBlci5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsdGhpcy5vbkNsaWNrLCExKSx0aGlzLm9wdGlvbnMud3JhcHBlci5hZGRFdmVudExpc3RlbmVyKCJwb2ludGVyZG93biIsdGhpcy5vblBvaW50ZXJEb3duLCExKSx0aGlzLnZpcnR1YWxTY3JvbGw9bmV3IGdVcihyLHt0b3VjaE11bHRpcGxpZXI6Zix3aGVlbE11bHRpcGxpZXI6eH0pLHRoaXMudmlydHVhbFNjcm9sbC5vbigic2Nyb2xsIix0aGlzLm9uVmlydHVhbFNjcm9sbCksdGhpcy5vcHRpb25zLmF1dG9Ub2dnbGUmJih0aGlzLmNoZWNrT3ZlcmZsb3coKSx0aGlzLnJvb3RFbGVtZW50LmFkZEV2ZW50TGlzdGVuZXIoInRyYW5zaXRpb25lbmQiLHRoaXMub25UcmFuc2l0aW9uRW5kLHtwYXNzaXZlOiEwfSkpLHRoaXMub3B0aW9ucy5hdXRvUmFmJiYodGhpcy5fcmFmSWQ9cmVxdWVzdEFuaW1hdGlvbkZyYW1lKHRoaXMucmFmKSl9ZGVzdHJveSgpe3RoaXMuZW1pdHRlci5kZXN0cm95KCksdGhpcy5vcHRpb25zLndyYXBwZXIucmVtb3ZlRXZlbnRMaXN0ZW5lcigic2Nyb2xsIix0aGlzLm9uTmF0aXZlU2Nyb2xsLCExKSx0aGlzLm9wdGlvbnMud3JhcHBlci5yZW1vdmVFdmVudExpc3RlbmVyKCJzY3JvbGxlbmQiLHRoaXMub25TY3JvbGxFbmQse2NhcHR1cmU6ITB9KSx0aGlzLm9wdGlvbnMud3JhcHBlci5yZW1vdmVFdmVudExpc3RlbmVyKCJwb2ludGVyZG93biIsdGhpcy5vblBvaW50ZXJEb3duLCExKSwodGhpcy5vcHRpb25zLmFuY2hvcnN8fHRoaXMub3B0aW9ucy5zdG9wSW5lcnRpYU9uTmF2aWdhdGUpJiZ0aGlzLm9wdGlvbnMud3JhcHBlci5yZW1vdmVFdmVudExpc3RlbmVyKCJjbGljayIsdGhpcy5vbkNsaWNrLCExKSx0aGlzLnZpcnR1YWxTY3JvbGwuZGVzdHJveSgpLHRoaXMuZGltZW5zaW9ucy5kZXN0cm95KCksdGhpcy5jbGVhblVwQ2xhc3NOYW1lKCksdGhpcy5fcmFmSWQmJmNhbmNlbEFuaW1hdGlvbkZyYW1lKHRoaXMuX3JhZklkKX1vbihlLHQpe3JldHVybiB0aGlzLmVtaXR0ZXIub24oZSx0KX1vZmYoZSx0KXtyZXR1cm4gdGhpcy5lbWl0dGVyLm9mZihlLHQpfW9uU2Nyb2xsRW5kPWU9PntlIGluc3RhbmNlb2YgQ3VzdG9tRXZlbnR8fCh0aGlzLmlzU2Nyb2xsaW5nPT09InNtb290aCJ8fHRoaXMuaXNTY3JvbGxpbmc9PT0hMSkmJmUuc3RvcFByb3BhZ2F0aW9uKCl9O2Rpc3BhdGNoU2Nyb2xsZW5kRXZlbnQ9KCk9Pnt0aGlzLm9wdGlvbnMud3JhcHBlci5kaXNwYXRjaEV2ZW50KG5ldyBDdXN0b21FdmVudCgic2Nyb2xsZW5kIix7YnViYmxlczp0aGlzLm9wdGlvbnMud3JhcHBlcj09PXdpbmRvdyxkZXRhaWw6e2xlbmlzU2Nyb2xsRW5kOiEwfX0pKX07Z2V0IG92ZXJmbG93KCl7bGV0IGU9dGhpcy5pc0hvcml6b250YWw/Im92ZXJmbG93LXgiOiJvdmVyZmxvdy15IjtyZXR1cm4gZ2V0Q29tcHV0ZWRTdHlsZSh0aGlzLnJvb3RFbGVtZW50KVtlXX1jaGVja092ZXJmbG93KCl7WyJoaWRkZW4iLCJjbGlwIl0uaW5jbHVkZXModGhpcy5vdmVyZmxvdyk/dGhpcy5pbnRlcm5hbFN0b3AoKTp0aGlzLmludGVybmFsU3RhcnQoKX1vblRyYW5zaXRpb25FbmQ9ZT0+e2UucHJvcGVydHlOYW1lLmluY2x1ZGVzKCJvdmVyZmxvdyIpJiZ0aGlzLmNoZWNrT3ZlcmZsb3coKX07c2V0U2Nyb2xsKGUpe3RoaXMuaXNIb3Jpem9udGFsP3RoaXMub3B0aW9ucy53cmFwcGVyLnNjcm9sbFRvKHtsZWZ0OmUsYmVoYXZpb3I6Imluc3RhbnQifSk6dGhpcy5vcHRpb25zLndyYXBwZXIuc2Nyb2xsVG8oe3RvcDplLGJlaGF2aW9yOiJpbnN0YW50In0pfW9uQ2xpY2s9ZT0+e2xldCByPWUuY29tcG9zZWRQYXRoKCkuZmlsdGVyKGk9PmkgaW5zdGFuY2VvZiBIVE1MQW5jaG9yRWxlbWVudCYmaS5nZXRBdHRyaWJ1dGUoImhyZWYiKSk7aWYodGhpcy5vcHRpb25zLmFuY2hvcnMpe2xldCBpPXIuZmluZChhPT5hLmdldEF0dHJpYnV0ZSgiaHJlZiIpPy5pbmNsdWRlcygiIyIpKTtpZihpKXtsZXQgYT1pLmdldEF0dHJpYnV0ZSgiaHJlZiIpO2lmKGEpe2xldCBuPXR5cGVvZiB0aGlzLm9wdGlvbnMuYW5jaG9ycz09Im9iamVjdCImJnRoaXMub3B0aW9ucy5hbmNob3JzP3RoaXMub3B0aW9ucy5hbmNob3JzOnZvaWQgMCxvPWAjJHthLnNwbGl0KCIjIilbMV19YDt0aGlzLnNjcm9sbFRvKG8sbil9fX10aGlzLm9wdGlvbnMuc3RvcEluZXJ0aWFPbk5hdmlnYXRlJiZyLmZpbmQoYT0+YS5ob3N0PT09d2luZG93LmxvY2F0aW9uLmhvc3QpJiZ0aGlzLnJlc2V0KCl9O29uUG9pbnRlckRvd249ZT0+e2UuYnV0dG9uPT09MSYmdGhpcy5yZXNldCgpfTtvblZpcnR1YWxTY3JvbGw9ZT0+e2lmKHR5cGVvZiB0aGlzLm9wdGlvbnMudmlydHVhbFNjcm9sbD09ImZ1bmN0aW9uIiYmdGhpcy5vcHRpb25zLnZpcnR1YWxTY3JvbGwoZSk9PT0hMSlyZXR1cm47bGV0e2RlbHRhWDp0LGRlbHRhWTpyLGV2ZW50Oml9PWU7aWYodGhpcy5lbWl0dGVyLmVtaXQoInZpcnR1YWwtc2Nyb2xsIix7ZGVsdGFYOnQsZGVsdGFZOnIsZXZlbnQ6aX0pLGkuY3RybEtleXx8aS5sZW5pc1N0b3BQcm9wYWdhdGlvbilyZXR1cm47bGV0IGE9aS50eXBlLmluY2x1ZGVzKCJ0b3VjaCIpLG49aS50eXBlLmluY2x1ZGVzKCJ3aGVlbCIpO3RoaXMuaXNUb3VjaGluZz1pLnR5cGU9PT0idG91Y2hzdGFydCJ8fGkudHlwZT09PSJ0b3VjaG1vdmUiO2xldCBvPXQ9PT0wJiZyPT09MDtpZih0aGlzLm9wdGlvbnMuc3luY1RvdWNoJiZhJiZpLnR5cGU9PT0idG91Y2hzdGFydCImJm8mJiF0aGlzLmlzU3RvcHBlZCYmIXRoaXMuaXNMb2NrZWQpe3RoaXMucmVzZXQoKTtyZXR1cm59bGV0IGw9dGhpcy5vcHRpb25zLmdlc3R1cmVPcmllbnRhdGlvbj09PSJ2ZXJ0aWNhbCImJnI9PT0wfHx0aGlzLm9wdGlvbnMuZ2VzdHVyZU9yaWVudGF0aW9uPT09Imhvcml6b250YWwiJiZ0PT09MDtpZihvfHxsKXJldHVybjtsZXQgYz1pLmNvbXBvc2VkUGF0aCgpO2M9Yy5zbGljZSgwLGMuaW5kZXhPZih0aGlzLnJvb3RFbGVtZW50KSk7bGV0IHU9dGhpcy5vcHRpb25zLnByZXZlbnQ7aWYoYy5maW5kKGI9PmIgaW5zdGFuY2VvZiBIVE1MRWxlbWVudCYmKHR5cGVvZiB1PT0iZnVuY3Rpb24iJiZ1Py4oYil8fGIuaGFzQXR0cmlidXRlPy4oImRhdGEtbGVuaXMtcHJldmVudCIpfHxhJiZiLmhhc0F0dHJpYnV0ZT8uKCJkYXRhLWxlbmlzLXByZXZlbnQtdG91Y2giKXx8biYmYi5oYXNBdHRyaWJ1dGU/LigiZGF0YS1sZW5pcy1wcmV2ZW50LXdoZWVsIil8fHRoaXMub3B0aW9ucy5hbGxvd05lc3RlZFNjcm9sbCYmdGhpcy5jaGVja05lc3RlZFNjcm9sbChiLHtkZWx0YVg6dCxkZWx0YVk6cn0pKSkpcmV0dXJuO2lmKHRoaXMuaXNTdG9wcGVkfHx0aGlzLmlzTG9ja2VkKXtpLmNhbmNlbGFibGUmJmkucHJldmVudERlZmF1bHQoKTtyZXR1cm59aWYoISh0aGlzLm9wdGlvbnMuc3luY1RvdWNoJiZhfHx0aGlzLm9wdGlvbnMuc21vb3RoV2hlZWwmJm4pKXt0aGlzLmlzU2Nyb2xsaW5nPSJuYXRpdmUiLHRoaXMuYW5pbWF0ZS5zdG9wKCksaS5sZW5pc1N0b3BQcm9wYWdhdGlvbj0hMDtyZXR1cm59bGV0IGg9cjt0aGlzLm9wdGlvbnMuZ2VzdHVyZU9yaWVudGF0aW9uPT09ImJvdGgiP2g9TWF0aC5hYnMocik+TWF0aC5hYnModCk/cjp0OnRoaXMub3B0aW9ucy5nZXN0dXJlT3JpZW50YXRpb249PT0iaG9yaXpvbnRhbCImJihoPXQpLCghdGhpcy5vcHRpb25zLm92ZXJzY3JvbGx8fHRoaXMub3B0aW9ucy5pbmZpbml0ZXx8dGhpcy5vcHRpb25zLndyYXBwZXIhPT13aW5kb3cmJnRoaXMubGltaXQ+MCYmKHRoaXMuYW5pbWF0ZWRTY3JvbGw+MCYmdGhpcy5hbmltYXRlZFNjcm9sbDx0aGlzLmxpbWl0fHx0aGlzLmFuaW1hdGVkU2Nyb2xsPT09MCYmcj4wfHx0aGlzLmFuaW1hdGVkU2Nyb2xsPT09dGhpcy5saW1pdCYmcjwwKSkmJihpLmxlbmlzU3RvcFByb3BhZ2F0aW9uPSEwKSxpLmNhbmNlbGFibGUmJmkucHJldmVudERlZmF1bHQoKTtsZXQgZj1hJiZ0aGlzLm9wdGlvbnMuc3luY1RvdWNoLHY9YSYmaS50eXBlPT09InRvdWNoZW5kIjt2JiYoaD1NYXRoLnNpZ24odGhpcy52ZWxvY2l0eSkqTWF0aC5wb3coTWF0aC5hYnModGhpcy52ZWxvY2l0eSksdGhpcy5vcHRpb25zLnRvdWNoSW5lcnRpYUV4cG9uZW50KSksdGhpcy5zY3JvbGxUbyh0aGlzLnRhcmdldFNjcm9sbCtoLHtwcm9ncmFtbWF0aWM6ITEsLi4uZj97bGVycDp2P3RoaXMub3B0aW9ucy5zeW5jVG91Y2hMZXJwOjF9OntsZXJwOnRoaXMub3B0aW9ucy5sZXJwLGR1cmF0aW9uOnRoaXMub3B0aW9ucy5kdXJhdGlvbixlYXNpbmc6dGhpcy5vcHRpb25zLmVhc2luZ319KX07cmVzaXplKCl7dGhpcy5kaW1lbnNpb25zLnJlc2l6ZSgpLHRoaXMuYW5pbWF0ZWRTY3JvbGw9dGhpcy50YXJnZXRTY3JvbGw9dGhpcy5hY3R1YWxTY3JvbGwsdGhpcy5lbWl0KCl9ZW1pdCgpe3RoaXMuZW1pdHRlci5lbWl0KCJzY3JvbGwiLHRoaXMpfW9uTmF0aXZlU2Nyb2xsPSgpPT57aWYodGhpcy5fcmVzZXRWZWxvY2l0eVRpbWVvdXQhPT1udWxsJiYoY2xlYXJUaW1lb3V0KHRoaXMuX3Jlc2V0VmVsb2NpdHlUaW1lb3V0KSx0aGlzLl9yZXNldFZlbG9jaXR5VGltZW91dD1udWxsKSx0aGlzLl9wcmV2ZW50TmV4dE5hdGl2ZVNjcm9sbEV2ZW50KXt0aGlzLl9wcmV2ZW50TmV4dE5hdGl2ZVNjcm9sbEV2ZW50PSExO3JldHVybn1pZih0aGlzLmlzU2Nyb2xsaW5nPT09ITF8fHRoaXMuaXNTY3JvbGxpbmc9PT0ibmF0aXZlIil7bGV0IGU9dGhpcy5hbmltYXRlZFNjcm9sbDt0aGlzLmFuaW1hdGVkU2Nyb2xsPXRoaXMudGFyZ2V0U2Nyb2xsPXRoaXMuYWN0dWFsU2Nyb2xsLHRoaXMubGFzdFZlbG9jaXR5PXRoaXMudmVsb2NpdHksdGhpcy52ZWxvY2l0eT10aGlzLmFuaW1hdGVkU2Nyb2xsLWUsdGhpcy5kaXJlY3Rpb249TWF0aC5zaWduKHRoaXMuYW5pbWF0ZWRTY3JvbGwtZSksdGhpcy5pc1N0b3BwZWR8fCh0aGlzLmlzU2Nyb2xsaW5nPSJuYXRpdmUiKSx0aGlzLmVtaXQoKSx0aGlzLnZlbG9jaXR5IT09MCYmKHRoaXMuX3Jlc2V0VmVsb2NpdHlUaW1lb3V0PXNldFRpbWVvdXQoKCk9Pnt0aGlzLmxhc3RWZWxvY2l0eT10aGlzLnZlbG9jaXR5LHRoaXMudmVsb2NpdHk9MCx0aGlzLmlzU2Nyb2xsaW5nPSExLHRoaXMuZW1pdCgpfSw0MDApKX19O3Jlc2V0KCl7dGhpcy5pc0xvY2tlZD0hMSx0aGlzLmlzU2Nyb2xsaW5nPSExLHRoaXMuYW5pbWF0ZWRTY3JvbGw9dGhpcy50YXJnZXRTY3JvbGw9dGhpcy5hY3R1YWxTY3JvbGwsdGhpcy5sYXN0VmVsb2NpdHk9dGhpcy52ZWxvY2l0eT0wLHRoaXMuYW5pbWF0ZS5zdG9wKCl9c3RhcnQoKXtpZih0aGlzLmlzU3RvcHBlZCl7aWYodGhpcy5vcHRpb25zLmF1dG9Ub2dnbGUpe3RoaXMucm9vdEVsZW1lbnQuc3R5bGUucmVtb3ZlUHJvcGVydHkoIm92ZXJmbG93Iik7cmV0dXJufXRoaXMuaW50ZXJuYWxTdGFydCgpfX1pbnRlcm5hbFN0YXJ0KCl7dGhpcy5pc1N0b3BwZWQmJih0aGlzLnJlc2V0KCksdGhpcy5pc1N0b3BwZWQ9ITEsdGhpcy5lbWl0KCkpfXN0b3AoKXtpZighdGhpcy5pc1N0b3BwZWQpe2lmKHRoaXMub3B0aW9ucy5hdXRvVG9nZ2xlKXt0aGlzLnJvb3RFbGVtZW50LnN0eWxlLnNldFByb3BlcnR5KCJvdmVyZmxvdyIsImNsaXAiKTtyZXR1cm59dGhpcy5pbnRlcm5hbFN0b3AoKX19aW50ZXJuYWxTdG9wKCl7dGhpcy5pc1N0b3BwZWR8fCh0aGlzLnJlc2V0KCksdGhpcy5pc1N0b3BwZWQ9ITAsdGhpcy5lbWl0KCkpfXJhZj1lPT57bGV0IHQ9ZS0odGhpcy50aW1lfHxlKTt0aGlzLnRpbWU9ZSx0aGlzLmFuaW1hdGUuYWR2YW5jZSh0Ki4wMDEpLHRoaXMub3B0aW9ucy5hdXRvUmFmJiYodGhpcy5fcmFmSWQ9cmVxdWVzdEFuaW1hdGlvbkZyYW1lKHRoaXMucmFmKSl9O3Njcm9sbFRvKGUse29mZnNldDp0PTAsaW1tZWRpYXRlOnI9ITEsbG9jazppPSExLHByb2dyYW1tYXRpYzphPSEwLGxlcnA6bj1hP3RoaXMub3B0aW9ucy5sZXJwOnZvaWQgMCxkdXJhdGlvbjpvPWE/dGhpcy5vcHRpb25zLmR1cmF0aW9uOnZvaWQgMCxlYXNpbmc6cz1hP3RoaXMub3B0aW9ucy5lYXNpbmc6dm9pZCAwLG9uU3RhcnQ6bCxvbkNvbXBsZXRlOmMsZm9yY2U6dT0hMSx1c2VyRGF0YTpkfT17fSl7aWYoISgodGhpcy5pc1N0b3BwZWR8fHRoaXMuaXNMb2NrZWQpJiYhdSkpe2lmKHR5cGVvZiBlPT0ic3RyaW5nIiYmWyJ0b3AiLCJsZWZ0Iiwic3RhcnQiLCIjIl0uaW5jbHVkZXMoZSkpZT0wO2Vsc2UgaWYodHlwZW9mIGU9PSJzdHJpbmciJiZbImJvdHRvbSIsInJpZ2h0IiwiZW5kIl0uaW5jbHVkZXMoZSkpZT10aGlzLmxpbWl0O2Vsc2V7bGV0IGg7aWYodHlwZW9mIGU9PSJzdHJpbmciPyhoPWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoZSksaHx8KGU9PT0iI3RvcCI/ZT0wOmNvbnNvbGUud2FybigiTGVuaXM6IFRhcmdldCBub3QgZm91bmQiLGUpKSk6ZSBpbnN0YW5jZW9mIEhUTUxFbGVtZW50JiZlPy5ub2RlVHlwZSYmKGg9ZSksaCl7aWYodGhpcy5vcHRpb25zLndyYXBwZXIhPT13aW5kb3cpe2xldCB4PXRoaXMucm9vdEVsZW1lbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7dC09dGhpcy5pc0hvcml6b250YWw/eC5sZWZ0OngudG9wfWxldCBmPWguZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7ZT0odGhpcy5pc0hvcml6b250YWw/Zi5sZWZ0OmYudG9wKSt0aGlzLmFuaW1hdGVkU2Nyb2xsfX1pZih0eXBlb2YgZT09Im51bWJlciIpe2lmKGUrPXQsZT1NYXRoLnJvdW5kKGUpLHRoaXMub3B0aW9ucy5pbmZpbml0ZSl7aWYoYSl7dGhpcy50YXJnZXRTY3JvbGw9dGhpcy5hbmltYXRlZFNjcm9sbD10aGlzLnNjcm9sbDtsZXQgaD1lLXRoaXMuYW5pbWF0ZWRTY3JvbGw7aD50aGlzLmxpbWl0LzI/ZT1lLXRoaXMubGltaXQ6aDwtdGhpcy5saW1pdC8yJiYoZT1lK3RoaXMubGltaXQpfX1lbHNlIGU9WmV0KDAsZSx0aGlzLmxpbWl0KTtpZihlPT09dGhpcy50YXJnZXRTY3JvbGwpe2w/Lih0aGlzKSxjPy4odGhpcyk7cmV0dXJufWlmKHRoaXMudXNlckRhdGE9ZD8/e30scil7dGhpcy5hbmltYXRlZFNjcm9sbD10aGlzLnRhcmdldFNjcm9sbD1lLHRoaXMuc2V0U2Nyb2xsKHRoaXMuc2Nyb2xsKSx0aGlzLnJlc2V0KCksdGhpcy5wcmV2ZW50TmV4dE5hdGl2ZVNjcm9sbEV2ZW50KCksdGhpcy5lbWl0KCksYz8uKHRoaXMpLHRoaXMudXNlckRhdGE9e30scmVxdWVzdEFuaW1hdGlvbkZyYW1lKCgpPT57dGhpcy5kaXNwYXRjaFNjcm9sbGVuZEV2ZW50KCl9KTtyZXR1cm59YXx8KHRoaXMudGFyZ2V0U2Nyb2xsPWUpLHR5cGVvZiBvPT0ibnVtYmVyIiYmdHlwZW9mIHMhPSJmdW5jdGlvbiI/cz1KZXQ6dHlwZW9mIHM9PSJmdW5jdGlvbiImJnR5cGVvZiBvIT0ibnVtYmVyIiYmKG89MSksdGhpcy5hbmltYXRlLmZyb21Ubyh0aGlzLmFuaW1hdGVkU2Nyb2xsLGUse2R1cmF0aW9uOm8sZWFzaW5nOnMsbGVycDpuLG9uU3RhcnQ6KCk9PntpJiYodGhpcy5pc0xvY2tlZD0hMCksdGhpcy5pc1Njcm9sbGluZz0ic21vb3RoIixsPy4odGhpcyl9LG9uVXBkYXRlOihoLGYpPT57dGhpcy5pc1Njcm9sbGluZz0ic21vb3RoIix0aGlzLmxhc3RWZWxvY2l0eT10aGlzLnZlbG9jaXR5LHRoaXMudmVsb2NpdHk9aC10aGlzLmFuaW1hdGVkU2Nyb2xsLHRoaXMuZGlyZWN0aW9uPU1hdGguc2lnbih0aGlzLnZlbG9jaXR5KSx0aGlzLmFuaW1hdGVkU2Nyb2xsPWgsdGhpcy5zZXRTY3JvbGwodGhpcy5zY3JvbGwpLGEmJih0aGlzLnRhcmdldFNjcm9sbD1oKSxmfHx0aGlzLmVtaXQoKSxmJiYodGhpcy5yZXNldCgpLHRoaXMuZW1pdCgpLGM/Lih0aGlzKSx0aGlzLnVzZXJEYXRhPXt9LHJlcXVlc3RBbmltYXRpb25GcmFtZSgoKT0+e3RoaXMuZGlzcGF0Y2hTY3JvbGxlbmRFdmVudCgpfSksdGhpcy5wcmV2ZW50TmV4dE5hdGl2ZVNjcm9sbEV2ZW50KCkpfX0pfX19cHJldmVudE5leHROYXRpdmVTY3JvbGxFdmVudCgpe3RoaXMuX3ByZXZlbnROZXh0TmF0aXZlU2Nyb2xsRXZlbnQ9ITAscmVxdWVzdEFuaW1hdGlvbkZyYW1lKCgpPT57dGhpcy5fcHJldmVudE5leHROYXRpdmVTY3JvbGxFdmVudD0hMX0pfWNoZWNrTmVzdGVkU2Nyb2xsKGUse2RlbHRhWDp0LGRlbHRhWTpyfSl7bGV0IGk9RGF0ZS5ub3coKSxhPWUuX2xlbmlzPz89e30sbixvLHMsbCxjLHUsZCxoLGY9dGhpcy5vcHRpb25zLmdlc3R1cmVPcmllbnRhdGlvbjtpZihpLShhLnRpbWU/PzApPjJlMyl7YS50aW1lPURhdGUubm93KCk7bGV0IHo9d2luZG93LmdldENvbXB1dGVkU3R5bGUoZSk7YS5jb21wdXRlZFN0eWxlPXo7bGV0IE09ei5vdmVyZmxvd1gsRj16Lm92ZXJmbG93WTtpZihuPVsiYXV0byIsIm92ZXJsYXkiLCJzY3JvbGwiXS5pbmNsdWRlcyhNKSxvPVsiYXV0byIsIm92ZXJsYXkiLCJzY3JvbGwiXS5pbmNsdWRlcyhGKSxhLmhhc092ZXJmbG93WD1uLGEuaGFzT3ZlcmZsb3dZPW8sIW4mJiFvfHxmPT09InZlcnRpY2FsIiYmIW98fGY9PT0iaG9yaXpvbnRhbCImJiFuKXJldHVybiExO2M9ZS5zY3JvbGxXaWR0aCx1PWUuc2Nyb2xsSGVpZ2h0LGQ9ZS5jbGllbnRXaWR0aCxoPWUuY2xpZW50SGVpZ2h0LHM9Yz5kLGw9dT5oLGEuaXNTY3JvbGxhYmxlWD1zLGEuaXNTY3JvbGxhYmxlWT1sLGEuc2Nyb2xsV2lkdGg9YyxhLnNjcm9sbEhlaWdodD11LGEuY2xpZW50V2lkdGg9ZCxhLmNsaWVudEhlaWdodD1ofWVsc2Ugcz1hLmlzU2Nyb2xsYWJsZVgsbD1hLmlzU2Nyb2xsYWJsZVksbj1hLmhhc092ZXJmbG93WCxvPWEuaGFzT3ZlcmZsb3dZLGM9YS5zY3JvbGxXaWR0aCx1PWEuc2Nyb2xsSGVpZ2h0LGQ9YS5jbGllbnRXaWR0aCxoPWEuY2xpZW50SGVpZ2h0O2lmKCFuJiYhb3x8IXMmJiFsfHxmPT09InZlcnRpY2FsIiYmKCFvfHwhbCl8fGY9PT0iaG9yaXpvbnRhbCImJighbnx8IXMpKXJldHVybiExO2xldCB4O2lmKGY9PT0iaG9yaXpvbnRhbCIpeD0ieCI7ZWxzZSBpZihmPT09InZlcnRpY2FsIil4PSJ5IjtlbHNle2xldCB6PXQhPT0wLE09ciE9PTA7eiYmbiYmcyYmKHg9IngiKSxNJiZvJiZsJiYoeD0ieSIpfWlmKCF4KXJldHVybiExO2xldCB2LGIseSx3LGs7aWYoeD09PSJ4Iil2PWUuc2Nyb2xsTGVmdCxiPWMtZCx5PXQsdz1uLGs9cztlbHNlIGlmKHg9PT0ieSIpdj1lLnNjcm9sbFRvcCxiPXUtaCx5PXIsdz1vLGs9bDtlbHNlIHJldHVybiExO3JldHVybih5PjA/djxiOnY+MCkmJncmJmt9Z2V0IHJvb3RFbGVtZW50KCl7cmV0dXJuIHRoaXMub3B0aW9ucy53cmFwcGVyPT09d2luZG93P2RvY3VtZW50LmRvY3VtZW50RWxlbWVudDp0aGlzLm9wdGlvbnMud3JhcHBlcn1nZXQgbGltaXQoKXtyZXR1cm4gdGhpcy5vcHRpb25zLm5haXZlRGltZW5zaW9ucz90aGlzLmlzSG9yaXpvbnRhbD90aGlzLnJvb3RFbGVtZW50LnNjcm9sbFdpZHRoLXRoaXMucm9vdEVsZW1lbnQuY2xpZW50V2lkdGg6dGhpcy5yb290RWxlbWVudC5zY3JvbGxIZWlnaHQtdGhpcy5yb290RWxlbWVudC5jbGllbnRIZWlnaHQ6dGhpcy5kaW1lbnNpb25zLmxpbWl0W3RoaXMuaXNIb3Jpem9udGFsPyJ4IjoieSJdfWdldCBpc0hvcml6b250YWwoKXtyZXR1cm4gdGhpcy5vcHRpb25zLm9yaWVudGF0aW9uPT09Imhvcml6b250YWwifWdldCBhY3R1YWxTY3JvbGwoKXtsZXQgZT10aGlzLm9wdGlvbnMud3JhcHBlcjtyZXR1cm4gdGhpcy5pc0hvcml6b250YWw/ZS5zY3JvbGxYPz9lLnNjcm9sbExlZnQ6ZS5zY3JvbGxZPz9lLnNjcm9sbFRvcH1nZXQgc2Nyb2xsKCl7cmV0dXJuIHRoaXMub3B0aW9ucy5pbmZpbml0ZT9wVXIodGhpcy5hbmltYXRlZFNjcm9sbCx0aGlzLmxpbWl0KTp0aGlzLmFuaW1hdGVkU2Nyb2xsfWdldCBwcm9ncmVzcygpe3JldHVybiB0aGlzLmxpbWl0PT09MD8xOnRoaXMuc2Nyb2xsL3RoaXMubGltaXR9Z2V0IGlzU2Nyb2xsaW5nKCl7cmV0dXJuIHRoaXMuX2lzU2Nyb2xsaW5nfXNldCBpc1Njcm9sbGluZyhlKXt0aGlzLl9pc1Njcm9sbGluZyE9PWUmJih0aGlzLl9pc1Njcm9sbGluZz1lLHRoaXMudXBkYXRlQ2xhc3NOYW1lKCkpfWdldCBpc1N0b3BwZWQoKXtyZXR1cm4gdGhpcy5faXNTdG9wcGVkfXNldCBpc1N0b3BwZWQoZSl7dGhpcy5faXNTdG9wcGVkIT09ZSYmKHRoaXMuX2lzU3RvcHBlZD1lLHRoaXMudXBkYXRlQ2xhc3NOYW1lKCkpfWdldCBpc0xvY2tlZCgpe3JldHVybiB0aGlzLl9pc0xvY2tlZH1zZXQgaXNMb2NrZWQoZSl7dGhpcy5faXNMb2NrZWQhPT1lJiYodGhpcy5faXNMb2NrZWQ9ZSx0aGlzLnVwZGF0ZUNsYXNzTmFtZSgpKX1nZXQgaXNTbW9vdGgoKXtyZXR1cm4gdGhpcy5pc1Njcm9sbGluZz09PSJzbW9vdGgifWdldCBjbGFzc05hbWUoKXtsZXQgZT0ibGVuaXMiO3JldHVybiB0aGlzLm9wdGlvbnMuYXV0b1RvZ2dsZSYmKGUrPSIgbGVuaXMtYXV0b1RvZ2dsZSIpLHRoaXMuaXNTdG9wcGVkJiYoZSs9IiBsZW5pcy1zdG9wcGVkIiksdGhpcy5pc0xvY2tlZCYmKGUrPSIgbGVuaXMtbG9ja2VkIiksdGhpcy5pc1Njcm9sbGluZyYmKGUrPSIgbGVuaXMtc2Nyb2xsaW5nIiksdGhpcy5pc1Njcm9sbGluZz09PSJzbW9vdGgiJiYoZSs9IiBsZW5pcy1zbW9vdGgiKSxlfXVwZGF0ZUNsYXNzTmFtZSgpe3RoaXMuY2xlYW5VcENsYXNzTmFtZSgpLHRoaXMucm9vdEVsZW1lbnQuY2xhc3NOYW1lPWAke3RoaXMucm9vdEVsZW1lbnQuY2xhc3NOYW1lfSAke3RoaXMuY2xhc3NOYW1lfWAudHJpbSgpfWNsZWFuVXBDbGFzc05hbWUoKXt0aGlzLnJvb3RFbGVtZW50LmNsYXNzTmFtZT10aGlzLnJvb3RFbGVtZW50LmNsYXNzTmFtZS5yZXBsYWNlKC9sZW5pcygtXHcrKT8vZywiIikudHJpbSgpfX19KTt2YXIgcGllPWplKChkaWUsdWllKT0+eyhmdW5jdGlvbihlLHQpe3R5cGVvZiBkaWU9PSJvYmplY3QiJiZ0eXBlb2YgdWllPCJ1Ij91aWUuZXhwb3J0cz10KCk6dHlwZW9mIGRlZmluZT09ImZ1bmN0aW9uIiYmZGVmaW5lLmFtZD9kZWZpbmUodCk6KGU9ZXx8c2VsZixlLlN3ZWV0U2Nyb2xsPXQoKSl9KShkaWUsZnVuY3Rpb24oKXsidXNlIHN0cmljdCI7dmFyIGU9ZnVuY3Rpb24oKXtyZXR1cm4gZT1PYmplY3QuYXNzaWdufHxmdW5jdGlvbihMKXtmb3IodmFyIFUsVj0xLFg9YXJndW1lbnRzLmxlbmd0aDtWPFg7VisrKXtVPWFyZ3VtZW50c1tWXTtmb3IodmFyIGRlIGluIFUpT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKFUsZGUpJiYoTFtkZV09VVtkZV0pfXJldHVybiBMfSxlLmFwcGx5KHRoaXMsYXJndW1lbnRzKX0sdD0hISh0eXBlb2Ygd2luZG93PCJ1IiYmd2luZG93LmRvY3VtZW50JiZ3aW5kb3cuZG9jdW1lbnQuY3JlYXRlRWxlbWVudCkscj10P3dpbmRvdy5oaXN0b3J5JiYicHVzaFN0YXRlImluIHdpbmRvdy5oaXN0b3J5JiZ3aW5kb3cubG9jYXRpb24ucHJvdG9jb2whPT0iZmlsZToiOiExLGk9KGZ1bmN0aW9uKCl7dmFyIEE9ITE7aWYoIXQpcmV0dXJuIEE7dHJ5e3ZhciBMPXdpbmRvdyxVPU9iamVjdC5kZWZpbmVQcm9wZXJ0eSh7fSwicGFzc2l2ZSIse2dldDpmdW5jdGlvbigpe0E9ITB9fSk7TC5hZGRFdmVudExpc3RlbmVyKCJ0ZXN0IixudWxsLFUpLEwucmVtb3ZlRXZlbnRMaXN0ZW5lcigidGVzdCIsbnVsbCxVKX1jYXRjaHt9cmV0dXJuIEF9KSgpLGE9ZnVuY3Rpb24oQSl7cmV0dXJuIHR5cGVvZiBBPT0ic3RyaW5nIn0sbj1mdW5jdGlvbihBKXtyZXR1cm4gdHlwZW9mIEE9PSJmdW5jdGlvbiJ9LG89ZnVuY3Rpb24oQSl7cmV0dXJuIEFycmF5LmlzQXJyYXkoQSl9LHM9ZnVuY3Rpb24oQSl7cmV0dXJuIW8oQSkmJkEtcGFyc2VGbG9hdChBKSsxPj0wfSxsPWZ1bmN0aW9uKEEsTCl7cmV0dXJuIEEmJkEuaGFzT3duUHJvcGVydHkoTCl9LGM9dD93aW5kb3cucmVxdWVzdEFuaW1hdGlvbkZyYW1lLmJpbmQod2luZG93KTpudWxsLHU9dD93aW5kb3cuY2FuY2VsQW5pbWF0aW9uRnJhbWUuYmluZCh3aW5kb3cpOm51bGwsZD1NYXRoLmNvcyxoPU1hdGguc2luLGY9TWF0aC5wb3cseD1NYXRoLnNxcnQsdj1NYXRoLlBJLGI9e2xpbmVhcjpmdW5jdGlvbihBKXtyZXR1cm4gQX0sZWFzZUluUXVhZDpmdW5jdGlvbihBLEwsVSxWLFgpe3JldHVybiBWKihMLz1YKSpMK1V9LGVhc2VPdXRRdWFkOmZ1bmN0aW9uKEEsTCxVLFYsWCl7cmV0dXJuLVYqKEwvPVgpKihMLTIpK1V9LGVhc2VJbk91dFF1YWQ6ZnVuY3Rpb24oQSxMLFUsVixYKXtyZXR1cm4oTC89WC8yKTwxP1YvMipMKkwrVTotVi8yKigtLUwqKEwtMiktMSkrVX0sZWFzZUluQ3ViaWM6ZnVuY3Rpb24oQSxMLFUsVixYKXtyZXR1cm4gViooTC89WCkqTCpMK1V9LGVhc2VPdXRDdWJpYzpmdW5jdGlvbihBLEwsVSxWLFgpe3JldHVybiBWKigoTD1ML1gtMSkqTCpMKzEpK1V9LGVhc2VJbk91dEN1YmljOmZ1bmN0aW9uKEEsTCxVLFYsWCl7cmV0dXJuKEwvPVgvMik8MT9WLzIqTCpMKkwrVTpWLzIqKChMLT0yKSpMKkwrMikrVX0sZWFzZUluUXVhcnQ6ZnVuY3Rpb24oQSxMLFUsVixYKXtyZXR1cm4gViooTC89WCkqTCpMKkwrVX0sZWFzZU91dFF1YXJ0OmZ1bmN0aW9uKEEsTCxVLFYsWCl7cmV0dXJuLVYqKChMPUwvWC0xKSpMKkwqTC0xKStVfSxlYXNlSW5PdXRRdWFydDpmdW5jdGlvbihBLEwsVSxWLFgpe3JldHVybihMLz1YLzIpPDE/Vi8yKkwqTCpMKkwrVTotVi8yKigoTC09MikqTCpMKkwtMikrVX0sZWFzZUluUXVpbnQ6ZnVuY3Rpb24oQSxMLFUsVixYKXtyZXR1cm4gViooTC89WCkqTCpMKkwqTCtVfSxlYXNlT3V0UXVpbnQ6ZnVuY3Rpb24oQSxMLFUsVixYKXtyZXR1cm4gViooKEw9TC9YLTEpKkwqTCpMKkwrMSkrVX0sZWFzZUluT3V0UXVpbnQ6ZnVuY3Rpb24oQSxMLFUsVixYKXtyZXR1cm4oTC89WC8yKTwxP1YvMipMKkwqTCpMKkwrVTpWLzIqKChMLT0yKSpMKkwqTCpMKzIpK1V9LGVhc2VJblNpbmU6ZnVuY3Rpb24oQSxMLFUsVixYKXtyZXR1cm4tVipkKEwvWCoodi8yKSkrVitVfSxlYXNlT3V0U2luZTpmdW5jdGlvbihBLEwsVSxWLFgpe3JldHVybiBWKmgoTC9YKih2LzIpKStVfSxlYXNlSW5PdXRTaW5lOmZ1bmN0aW9uKEEsTCxVLFYsWCl7cmV0dXJuLVYvMiooZCh2KkwvWCktMSkrVX0sZWFzZUluRXhwbzpmdW5jdGlvbihBLEwsVSxWLFgpe3JldHVybiBMPT09MD9VOlYqZigyLDEwKihML1gtMSkpK1V9LGVhc2VPdXRFeHBvOmZ1bmN0aW9uKEEsTCxVLFYsWCl7cmV0dXJuIEw9PT1YP1UrVjpWKigtZigyLC0xMCpML1gpKzEpK1V9LGVhc2VJbk91dEV4cG86ZnVuY3Rpb24oQSxMLFUsVixYKXtyZXR1cm4gTD09PTA/VTpMPT09WD9VK1Y6KEwvPVgvMik8MT9WLzIqZigyLDEwKihMLTEpKStVOlYvMiooLWYoMiwtMTAqLS1MKSsyKStVfSxlYXNlSW5DaXJjOmZ1bmN0aW9uKEEsTCxVLFYsWCl7cmV0dXJuLVYqKHgoMS0oTC89WCkqTCktMSkrVX0sZWFzZU91dENpcmM6ZnVuY3Rpb24oQSxMLFUsVixYKXtyZXR1cm4gVip4KDEtKEw9TC9YLTEpKkwpK1V9LGVhc2VJbk91dENpcmM6ZnVuY3Rpb24oQSxMLFUsVixYKXtyZXR1cm4oTC89WC8yKTwxPy1WLzIqKHgoMS1MKkwpLTEpK1U6Vi8yKih4KDEtKEwtPTIpKkwpKzEpK1V9fSx5PWZ1bmN0aW9uKEEpe3JldHVybiBBcnJheS5wcm90b3R5cGUuc2xpY2UuY2FsbChBP2RvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoQSk6W10pfSx3PWZ1bmN0aW9uKEEpe3JldHVybiB5KEEpLnNoaWZ0KCl8fG51bGx9LGs9ZnVuY3Rpb24oQSl7cmV0dXJuIEEgaW5zdGFuY2VvZiBFbGVtZW50fSxPPWZ1bmN0aW9uKEEpe3JldHVybiBBPT09d2luZG93fSx6PWZ1bmN0aW9uKEEpe3JldHVybiBBPT09ZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50fHxBPT09ZG9jdW1lbnQuYm9keX0sTT1mdW5jdGlvbihBLEwpe2lmKGsoTCkpcmV0dXJuIEE9PT1MO2Zvcih2YXIgVT15KEwpLFY9VS5sZW5ndGg7LS1WPj0wJiZVW1ZdIT09QTspO3JldHVybiBWPi0xfSxGPWZ1bmN0aW9uKEEpe3JldHVybiBNYXRoLm1heChBLnNjcm9sbEhlaWdodCxBLmNsaWVudEhlaWdodCxBLm9mZnNldEhlaWdodCl9LEQ9ZnVuY3Rpb24oQSl7cmV0dXJuIE1hdGgubWF4KEEuc2Nyb2xsV2lkdGgsQS5jbGllbnRXaWR0aCxBLm9mZnNldFdpZHRoKX0sTj1mdW5jdGlvbihBKXtyZXR1cm57d2lkdGg6RChBKSxoZWlnaHQ6RihBKX19LFI9ZnVuY3Rpb24oQSl7dmFyIEw9TyhBKXx8eihBKTtyZXR1cm57dmlld3BvcnQ6e3dpZHRoOkw/TWF0aC5taW4od2luZG93LmlubmVyV2lkdGgsZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LmNsaWVudFdpZHRoKTpBLmNsaWVudFdpZHRoLGhlaWdodDpMP3dpbmRvdy5pbm5lckhlaWdodDpBLmNsaWVudEhlaWdodH0sc2l6ZTpMP3t3aWR0aDpNYXRoLm1heChEKGRvY3VtZW50LmJvZHkpLEQoZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50KSksaGVpZ2h0Ok1hdGgubWF4KEYoZG9jdW1lbnQuYm9keSksRihkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQpKX06TihBKX19LF89e3k6InNjcm9sbFRvcCIseDoic2Nyb2xsTGVmdCJ9LFM9e3k6InBhZ2VZT2Zmc2V0Iix4OiJwYWdlWE9mZnNldCJ9LCQ9ZnVuY3Rpb24oQSxMKXtyZXR1cm4gTyhBKT9BW1NbTF1dOkFbX1tMXV19LFQ9ZnVuY3Rpb24oQSxMLFUpe2lmKE8oQSkpe3ZhciBWPVU9PT0ieSI7QS5zY3JvbGxUbyhWP0EucGFnZVhPZmZzZXQ6TCxWP0w6QS5wYWdlWU9mZnNldCl9ZWxzZSBBW19bVV1dPUx9LEU9ZnVuY3Rpb24oQSxMKXt2YXIgVT1BLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO2lmKFUud2lkdGh8fFUuaGVpZ2h0KXt2YXIgVj17dG9wOjAsbGVmdDowfSxYPXZvaWQgMDtpZihPKEwpfHx6KEwpKVg9ZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LFYudG9wPXdpbmRvd1tTLnldLFYubGVmdD13aW5kb3dbUy54XTtlbHNle1g9TDt2YXIgZGU9WC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtWLnRvcD1kZS50b3AqLTErWFtfLnldLFYubGVmdD1kZS5sZWZ0Ki0xK1hbXy54XX1yZXR1cm57dG9wOlUudG9wK1YudG9wLVguY2xpZW50VG9wLGxlZnQ6VS5sZWZ0K1YubGVmdC1YLmNsaWVudExlZnR9fXJldHVybiBVfSxxPShmdW5jdGlvbigpe3JldHVybiB0PyJvbndoZWVsImluIGRvY3VtZW50PyJ3aGVlbCI6Im1vdXNld2hlZWwiOiJ3aGVlbCJ9KSgpLEI9ZnVuY3Rpb24oQSl7cmV0dXJuIEE9PT0id2hlZWwiP3E6QX0sRz1mdW5jdGlvbihBLEwsVSxWLFgpe1Uuc3BsaXQoIiAiKS5mb3JFYWNoKGZ1bmN0aW9uKGRlKXtBW0xdKEIoZGUpLFYsaT97cGFzc2l2ZTpYfTohMSl9KX0sZWU9ZnVuY3Rpb24oQSxMLFUsVil7cmV0dXJuIEcoQSwiYWRkRXZlbnRMaXN0ZW5lciIsTCxVLFYpfSxQPWZ1bmN0aW9uKEEsTCxVLFYpe3JldHVybiBHKEEsInJlbW92ZUV2ZW50TGlzdGVuZXIiLEwsVSxWKX0sZ2U9L14oXCt8LSk9KFxkKyg/OlwuXGQrKT8pJC8sd2U9ZnVuY3Rpb24oQSxMKXt2YXIgVT17dG9wOjAsbGVmdDowLHJlbGF0aXZlOiExfTtpZihsKEEsInRvcCIpfHxsKEEsImxlZnQiKSlVPWUoe30sVSxBKTtlbHNlIGlmKG8oQSkpaWYoQS5sZW5ndGg+MSlVLnRvcD1BWzBdLFUubGVmdD1BWzFdO2Vsc2UgaWYoQS5sZW5ndGg9PT0xKVUudG9wPUw/QVswXTowLFUubGVmdD1MPzA6QVswXTtlbHNlIHJldHVybiBudWxsO2Vsc2UgaWYocyhBKSlMP1UudG9wPUE6VS5sZWZ0PUE7ZWxzZSBpZihhKEEpKXt2YXIgVj1BLnRyaW0oKS5tYXRjaChnZSk7aWYoIVYpcmV0dXJuIG51bGw7dmFyIFg9VlsxXSxkZT1wYXJzZUludChWWzJdLDEwKTtYPT09IisiPyhVLnRvcD1MP2RlOjAsVS5sZWZ0PUw/MDpkZSk6KFUudG9wPUw/LWRlOjAsVS5sZWZ0PUw/MDotZGUpLFUucmVsYXRpdmU9ITB9ZWxzZSByZXR1cm4gbnVsbDtyZXR1cm4gVX0sST17dHJpZ2dlcjoiW2RhdGEtc2Nyb2xsXSIsaGVhZGVyOiJbZGF0YS1zY3JvbGwtaGVhZGVyXSIsZHVyYXRpb246MWUzLGVhc2luZzoiZWFzZU91dFF1aW50IixvZmZzZXQ6MCx2ZXJ0aWNhbDohMCxob3Jpem9udGFsOiExLGNhbmNlbGxhYmxlOiEwLHVwZGF0ZVVSTDohMSxwcmV2ZW50RGVmYXVsdDohMCxzdG9wUHJvcGFnYXRpb246ITAsYmVmb3JlOm51bGwsYWZ0ZXI6bnVsbCxjYW5jZWw6bnVsbCxjb21wbGV0ZTpudWxsLHN0ZXA6bnVsbH0sbmU9ImNsaWNrIixrZT0id2hlZWwgdG91Y2hzdGFydCB0b3VjaG1vdmUiLFk9KGZ1bmN0aW9uKCl7ZnVuY3Rpb24gQShMLFUpe3ZhciBWPXRoaXM7dGhpcy4kZWw9bnVsbCx0aGlzLmN0eD17JHRyaWdnZXI6bnVsbCxvcHRzOm51bGwscHJvZ3Jlc3M6ITEscG9zOm51bGwsc3RhcnRQb3M6bnVsbCxlYXNpbmc6bnVsbCxzdGFydDowLGlkOjAsY2FuY2VsOiExLGhhc2g6bnVsbH0sdGhpcy5sb29wPWZ1bmN0aW9uKGRlKXt2YXIgdmU9VixMZT12ZS4kZWwsVz12ZS5jdHg7aWYoVy5zdGFydHx8KFcuc3RhcnQ9ZGUpLCFXLnByb2dyZXNzfHwhTGUpe1Yuc3RvcCgpO3JldHVybn12YXIgSD1XLm9wdHMsdGU9Vy5wb3MsYmU9Vy5zdGFydCx1ZT1XLnN0YXJ0UG9zLENlPVcuZWFzaW5nLGhlPUguZHVyYXRpb24saWU9e3RvcDoieSIsbGVmdDoieCJ9LFNlPWRlLWJlLEllPU1hdGgubWluKDEsTWF0aC5tYXgoU2UvaGUsMCkpO09iamVjdC5rZXlzKHRlKS5mb3JFYWNoKGZ1bmN0aW9uKFplKXt2YXIgSz10ZVtaZV0sWj11ZVtaZV0sSj1LLVo7aWYoSiE9PTApe3ZhciBtZT1DZShJZSxoZSpJZSwwLDEsaGUpO1QoTGUsTWF0aC5yb3VuZChaK0oqbWUpLGllW1plXSl9fSksU2U8PWhlPyhWLmhvb2soSCwic3RlcCIsSWUpLFcuaWQ9QS5yYWYoVi5sb29wKSk6Vi5zdG9wKCEwKX0sdGhpcy5oYW5kbGVDbGljaz1mdW5jdGlvbihkZSl7Zm9yKHZhciB2ZT1WLm9wdHMsTGU9ZGUudGFyZ2V0O0xlJiZMZSE9PWRvY3VtZW50O0xlPUxlLnBhcmVudE5vZGUpaWYoTShMZSx2ZS50cmlnZ2VyKSl7dmFyIFc9SlNPTi5wYXJzZShMZS5nZXRBdHRyaWJ1dGUoImRhdGEtc2Nyb2xsLW9wdGlvbnMiKXx8Int9IiksSD1MZS5nZXRBdHRyaWJ1dGUoImRhdGEtc2Nyb2xsIiksdGU9SHx8TGUuZ2V0QXR0cmlidXRlKCJocmVmIiksYmU9ZSh7fSx2ZSxXKSx1ZT1iZS5wcmV2ZW50RGVmYXVsdCxDZT1iZS5zdG9wUHJvcGFnYXRpb24saGU9YmUudmVydGljYWwsaWU9YmUuaG9yaXpvbnRhbDt1ZSYmZGUucHJldmVudERlZmF1bHQoKSxDZSYmZGUuc3RvcFByb3BhZ2F0aW9uKCksVi5jdHguJHRyaWdnZXI9TGUsaWUmJmhlP1YudG8odGUsYmUpOmhlP1YudG9Ub3AodGUsYmUpOmllJiZWLnRvTGVmdCh0ZSxiZSk7YnJlYWt9fSx0aGlzLmhhbmRsZVN0b3A9ZnVuY3Rpb24oZGUpe3ZhciB2ZT1WLmN0eCxMZT12ZS5vcHRzO0xlJiZMZS5jYW5jZWxsYWJsZT8odmUuY2FuY2VsPSEwLFYuc3RvcCgpKTpkZS5wcmV2ZW50RGVmYXVsdCgpfSx0aGlzLm9wdHM9ZSh7fSxJLEx8fHt9KTt2YXIgWD1udWxsO3QmJih0eXBlb2YgVT09InN0cmluZyI/WD13KFUpOlUhPW51bGw/WD1VOlg9d2luZG93KSx0aGlzLiRlbD1YLFgmJnRoaXMuYmluZCghMCwhMSl9cmV0dXJuIEEuY3JlYXRlPWZ1bmN0aW9uKEwsVSl7cmV0dXJuIG5ldyBBKEwsVSl9LEEucHJvdG90eXBlLnRvPWZ1bmN0aW9uKEwsVSl7aWYodCl7dmFyIFY9dGhpcyxYPVYuJGVsLGRlPVYuY3R4LHZlPVYub3B0cyxMZT1kZS4kdHJpZ2dlcixXPWUoe30sdmUsVXx8e30pLEg9Vy5vZmZzZXQsdGU9Vy52ZXJ0aWNhbCxiZT1XLmhvcml6b250YWwsdWU9ayhXLmhlYWRlcik/Vy5oZWFkZXI6dyhXLmhlYWRlciksQ2U9L14jLyxoZT1hKEwpJiZDZS50ZXN0KEwpP0w6bnVsbDtpZihkZS5vcHRzPVcsZGUuY2FuY2VsPSExLGRlLmhhc2g9aGUsdGhpcy5zdG9wKCksISFYKXt2YXIgaWU9d2UoSCx0ZSksU2U9d2UoTCx0ZSksSWU9e3RvcDowLGxlZnQ6MH07aWYoU2UpaWYoU2UucmVsYXRpdmUpe3ZhciBaZT0kKFgsdGU/InkiOiJ4Iik7SWUudG9wPXRlP1plK1NlLnRvcDpTZS50b3AsSWUubGVmdD10ZT9TZS5sZWZ0OlplK1NlLmxlZnR9ZWxzZSBJZT1TZTtlbHNlIGlmKGEoTCkmJkwhPT0iIyIpe3ZhciBLPXcoTCk7aWYoIUspcmV0dXJuO0llPUUoSyxYKX1pZSYmKEllLnRvcCs9aWUudG9wLEllLmxlZnQrPWllLmxlZnQpLHVlJiYoSWUudG9wPU1hdGgubWF4KDAsSWUudG9wLU4odWUpLmhlaWdodCkpO3ZhciBaPVIoWCksSj1aLnZpZXdwb3J0LG1lPVouc2l6ZTtpZihJZS50b3A9dGU/TWF0aC5tYXgoMCxNYXRoLm1pbihtZS5oZWlnaHQtSi5oZWlnaHQsSWUudG9wKSk6JChYLCJ5IiksSWUubGVmdD1iZT9NYXRoLm1heCgwLE1hdGgubWluKG1lLndpZHRoLUoud2lkdGgsSWUubGVmdCkpOiQoWCwieCIpLHRoaXMuaG9vayhXLCJiZWZvcmUiLEllLExlKT09PSExKXtkZS5vcHRzPW51bGw7cmV0dXJufWRlLnBvcz1JZSx0aGlzLnN0YXJ0KFcpLHRoaXMuYmluZCghMSwhMCl9fX0sQS5wcm90b3R5cGUudG9Ub3A9ZnVuY3Rpb24oTCxVKXt0aGlzLnRvKEwsZSh7fSxVfHx7fSx7dmVydGljYWw6ITAsaG9yaXpvbnRhbDohMX0pKX0sQS5wcm90b3R5cGUudG9MZWZ0PWZ1bmN0aW9uKEwsVSl7dGhpcy50byhMLGUoe30sVXx8e30se3ZlcnRpY2FsOiExLGhvcml6b250YWw6ITB9KSl9LEEucHJvdG90eXBlLnRvRWxlbWVudD1mdW5jdGlvbihMLFUpe3ZhciBWPXRoaXMuJGVsOyF0fHwhVnx8dGhpcy50byhFKEwsViksVXx8e30pfSxBLnByb3RvdHlwZS5zdG9wPWZ1bmN0aW9uKEwpe0w9PT12b2lkIDAmJihMPSExKTt2YXIgVT10aGlzLFY9VS4kZWwsWD1VLmN0eCxkZT1YLnBvczshVnx8IVgucHJvZ3Jlc3N8fChBLmNhZihYLmlkKSxYLnByb2dyZXNzPSExLFguc3RhcnQ9MCxYLmlkPTAsTCYmZGUmJihUKFYsZGUubGVmdCwieCIpLFQoVixkZS50b3AsInkiKSksdGhpcy5jb21wbGV0ZSgpKX0sQS5wcm90b3R5cGUudXBkYXRlPWZ1bmN0aW9uKEwpe2lmKHRoaXMuJGVsKXt2YXIgVT1lKHt9LHRoaXMub3B0cyxMKTt0aGlzLnN0b3AoKSx0aGlzLnVuYmluZCghMCwhMCksdGhpcy5vcHRzPVUsdGhpcy5iaW5kKCEwLCExKX19LEEucHJvdG90eXBlLmRlc3Ryb3k9ZnVuY3Rpb24oKXt0aGlzLiRlbCYmKHRoaXMuc3RvcCgpLHRoaXMudW5iaW5kKCEwLCEwKSx0aGlzLiRlbD1udWxsKX0sQS5wcm90b3R5cGUub25CZWZvcmU9ZnVuY3Rpb24oTCxVKXtyZXR1cm4hMH0sQS5wcm90b3R5cGUub25TdGVwPWZ1bmN0aW9uKEwpe30sQS5wcm90b3R5cGUub25BZnRlcj1mdW5jdGlvbihMLFUpe30sQS5wcm90b3R5cGUub25DYW5jZWw9ZnVuY3Rpb24oKXt9LEEucHJvdG90eXBlLm9uQ29tcGxldGU9ZnVuY3Rpb24oTCl7fSxBLnByb3RvdHlwZS5zdGFydD1mdW5jdGlvbihMKXt2YXIgVT10aGlzLmN0eDtVLm9wdHM9TCxVLnByb2dyZXNzPSEwLFUuZWFzaW5nPW4oTC5lYXNpbmcpP0wuZWFzaW5nOmJbTC5lYXNpbmddO3ZhciBWPXRoaXMuJGVsLFg9e3RvcDokKFYsInkiKSxsZWZ0OiQoViwieCIpfTtVLnN0YXJ0UG9zPVgsVS5pZD1BLnJhZih0aGlzLmxvb3ApfSxBLnByb3RvdHlwZS5jb21wbGV0ZT1mdW5jdGlvbigpe3ZhciBMPXRoaXMsVT1MLiRlbCxWPUwuY3R4LFg9Vi5oYXNoLGRlPVYuY2FuY2VsLHZlPVYub3B0cyxMZT1WLnBvcyxXPVYuJHRyaWdnZXI7aWYoISghVXx8IXZlKSl7aWYoWCE9bnVsbCYmWCE9PXdpbmRvdy5sb2NhdGlvbi5oYXNoKXt2YXIgSD12ZS51cGRhdGVVUkw7dCYmciYmSCE9PSExJiZ3aW5kb3cuaGlzdG9yeVtIPT09InJlcGxhY2UiPyJyZXBsYWNlU3RhdGUiOiJwdXNoU3RhdGUiXShudWxsLCIiLFgpfXRoaXMudW5iaW5kKCExLCEwKSxWLm9wdHM9bnVsbCxWLiR0cmlnZ2VyPW51bGwsZGU/dGhpcy5ob29rKHZlLCJjYW5jZWwiKTp0aGlzLmhvb2sodmUsImFmdGVyIixMZSxXKSx0aGlzLmhvb2sodmUsImNvbXBsZXRlIixkZSl9fSxBLnByb3RvdHlwZS5ob29rPWZ1bmN0aW9uKEwsVSl7Zm9yKHZhciBWPVtdLFg9MjtYPGFyZ3VtZW50cy5sZW5ndGg7WCsrKVZbWC0yXT1hcmd1bWVudHNbWF07dmFyIGRlLHZlPUxbVV0sTGUsVztyZXR1cm4gbih2ZSkmJihMZT12ZS5hcHBseSh0aGlzLFYuY29uY2F0KFt0aGlzXSkpKSxXPShkZT10aGlzKVsib24iKyhVWzBdLnRvVXBwZXJDYXNlKCkrVS5zbGljZSgxKSldLmFwcGx5KGRlLFYpLExlIT09dm9pZCAwP0xlOld9LEEucHJvdG90eXBlLmJpbmQ9ZnVuY3Rpb24oTCxVKXt2YXIgVj10aGlzLFg9Vi4kZWwsZGU9Vi5jdHgub3B0cztYJiYoTCYmZWUoWCxuZSx0aGlzLmhhbmRsZUNsaWNrLCExKSxVJiZlZShYLGtlLHRoaXMuaGFuZGxlU3RvcCxkZT9kZS5jYW5jZWxsYWJsZTohMCkpfSxBLnByb3RvdHlwZS51bmJpbmQ9ZnVuY3Rpb24oTCxVKXt2YXIgVj10aGlzLFg9Vi4kZWwsZGU9Vi5jdHgub3B0cztYJiYoTCYmUChYLG5lLHRoaXMuaGFuZGxlQ2xpY2ssITEpLFUmJlAoWCxrZSx0aGlzLmhhbmRsZVN0b3AsZGU/ZGUuY2FuY2VsbGFibGU6ITApKX0sQS5yYWY9YyxBLmNhZj11LEF9KSgpO3JldHVybiBZfSl9KTt2YXIgdEEsbGcsenA9cCgoKT0+e25WZSgpO2I5KCk7VHMoKTtWOCgpO2YxZSgpO0VpKCk7TTFlKCk7aDIoKTtJMWUoKTtSOCgpO04xZSgpO2pLZSgpO1FMKCk7YzkoKTtHZXQoKTtZZXQoKTtjaWUoKTtLZXQoKTt0QT1lcihwaWUoKSwxKSxsZz17T2JqZWN0TWFwOktMLFN0cmluZ21hcDplQSxGYXN0TWFwOlNwfX0pO3ZhciBLcz17fTtGZShLcyx7Y3NzRm9yRGVza3RvcDooKT0+YlVyLGNzc0Zvck5vdGVib29rOigpPT52VXIsY3NzRm9yUGhhYmxldDooKT0+eVVyLGNzc0ZvclBob25lOigpPT53VXIsY3NzRm9yVGFibGV0OigpPT54VXIsZGVza3RvcDooKT0+aGllLG5vdGVib29rOigpPT5maWUscGhhYmxldDooKT0+Z2llLHBob25lOigpPT5iaWUsdGFibGV0OigpPT5taWV9KTt2YXIgaGllLGZpZSxtaWUsZ2llLGJpZSxiVXIsdlVyLHhVcix5VXIsd1VyLHZpZT1wKCgpPT57Q3AoKTtTcygpO2hpZT0xNjAwLGZpZT0xMjQwLG1pZT0xMDI0LGdpZT02MDAsYmllPTQwMCxiVXI9ZT0+a3IoYAogICAgQGNvbnRhaW5lciB3Y2NUb29sc1ZpZXdwb3J0IChtaW4td2lkdGg6ICR7aGllfXB4KSB7CiAgICAgICR7ZS5jc3NUZXh0fQogICAgfQogICAgQG1lZGlhIChtaW4td2lkdGg6ICR7aGllfXB4KSB7CiAgICAgICR7ZS5jc3NUZXh0fQogICAgfQogIGApLHZVcj1lPT5rcihgCiAgICBAY29udGFpbmVyIHdjY1Rvb2xzVmlld3BvcnQgKG1heC13aWR0aDogJHtmaWV9cHgpIHsKICAgICAgJHtlLmNzc1RleHR9CiAgICB9CiAgICBAbWVkaWEgKG1heC13aWR0aDogJHtmaWV9cHgpIHsKICAgICAgJHtlLmNzc1RleHR9CiAgICB9CiAgYCkseFVyPWU9PmtyKGAKICAgIEBjb250YWluZXIgd2NjVG9vbHNWaWV3cG9ydCAobWF4LXdpZHRoOiAke21pZX1weCkgewogICAgICAke2UuY3NzVGV4dH0KICAgIH0KICAgIEBtZWRpYSAobWF4LXdpZHRoOiAke21pZX1weCkgewogICAgICAke2UuY3NzVGV4dH0KICAgIH0KICBgKSx5VXI9ZT0+a3IoYAogICAgQGNvbnRhaW5lciB3Y2NUb29sc1ZpZXdwb3J0IChtYXgtd2lkdGg6ICR7Z2llfXB4KSB7CiAgICAgICR7ZS5jc3NUZXh0fQogICAgfQogICAgQG1lZGlhIChtYXgtd2lkdGg6ICR7Z2llfXB4KSB7CiAgICAgICR7ZS5jc3NUZXh0fQogICAgfQogIGApLHdVcj1lPT5rcihgCiAgICBAY29udGFpbmVyIHdjY1Rvb2xzVmlld3BvcnQgKG1heC13aWR0aDogJHtiaWV9cHgpIHsKICAgICAgJHtlLmNzc1RleHR9CiAgICB9CiAgICBAbWVkaWEgKG1heC13aWR0aDogJHtiaWV9cHgpIHsKICAgICAgJHtlLmNzc1RleHR9CiAgICB9CiAgYCl9KTt2YXIgaUEsZXR0PXAoKCk9Pnt6cCgpO2lBPWNsYXNze2RvbXRvb2xzSW5zdGFuY2U7c2Nyb2xsQ2FsbGJhY2tzPVtdO2xlbmlzSW5zdGFuY2U9bnVsbDtoYW5kbGVOYXRpdmVTY3JvbGw9dD0+e3RoaXMuZXhlY3V0ZVNjcm9sbENhbGxiYWNrcygpfTtoYW5kbGVMZW5pc1Njcm9sbD10PT57dGhpcy5leGVjdXRlU2Nyb2xsQ2FsbGJhY2tzKCl9O2NvbnN0cnVjdG9yKHQpe3RoaXMuZG9tdG9vbHNJbnN0YW5jZT10LHRoaXMuYXR0YWNoTmF0aXZlU2Nyb2xsTGlzdGVuZXIoKX1zd2VldFNjcm9sbGVyPW5ldyB0QS5kZWZhdWx0KHt9KTthc3luYyB0b0VsZW1lbnQodCxyKXt0aGlzLnN3ZWV0U2Nyb2xsZXIudG9FbGVtZW50KHQsciksYXdhaXQgQ3QuZGVsYXlGb3Ioci5kdXJhdGlvbil9YXN5bmMgZGV0ZWN0TmF0aXZlU21vb3RoU2Nyb2xsKCl7bGV0IHQ9WGUuZGVmZXIoKSxyPTEwMCxpPTMsYT0uNzUsbj1bXTtmdW5jdGlvbiBvKGwpe24ucHVzaChsLmRlbHRhWSksbi5sZW5ndGg+PXImJih3aW5kb3cucmVtb3ZlRXZlbnRMaXN0ZW5lcigid2hlZWwiLG8pLHMoKSl9ZnVuY3Rpb24gcygpe2xldCBsPW4ubGVuZ3RoLTEsYz0wO2ZvcihsZXQgZD0wO2Q8bDtkKyspTWF0aC5hYnMobltkKzFdLW5bZF0pPD1pJiZjKys7Yy9sPj1hPyhjb25zb2xlLmxvZygiU21vb3RoIHNjcm9sbGluZyBkZXRlY3RlZC4iKSx0LnJlc29sdmUoITApKTooY29uc29sZS5sb2coIlNtb290aCBzY3JvbGxpbmcgTk9UIGRldGVjdGVkLiIpLHQucmVzb2x2ZSghMSkpfXJldHVybiB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigid2hlZWwiLG8pLHQucHJvbWlzZX1hc3luYyBlbmFibGVMZW5pc1Njcm9sbCh0KXtsZXQgcj1uZXcgc2coe2F1dG9SYWY6ITB9KTtpZih0Py5kaXNhYmxlT25OYXRpdmVTbW9vdGhTY3JvbGwmJmF3YWl0IHRoaXMuZGV0ZWN0TmF0aXZlU21vb3RoU2Nyb2xsKCkpe3IuZGVzdHJveSgpO3JldHVybn10aGlzLmxlbmlzSW5zdGFuY2U9cix0aGlzLmRldGFjaE5hdGl2ZVNjcm9sbExpc3RlbmVyKCksdGhpcy5hdHRhY2hMZW5pc1Njcm9sbExpc3RlbmVyKCk7bGV0IGk9ci5kZXN0cm95LmJpbmQocik7ci5kZXN0cm95PSgpPT57aSgpLHRoaXMuZGV0YWNoTGVuaXNTY3JvbGxMaXN0ZW5lcigpLHRoaXMuYXR0YWNoTmF0aXZlU2Nyb2xsTGlzdGVuZXIoKSx0aGlzLmxlbmlzSW5zdGFuY2U9bnVsbH19b25TY3JvbGwodCl7dGhpcy5zY3JvbGxDYWxsYmFja3MucHVzaCh0KX1leGVjdXRlU2Nyb2xsQ2FsbGJhY2tzKCl7dGhpcy5zY3JvbGxDYWxsYmFja3MuZm9yRWFjaCh0PT57dHJ5e3QoKX1jYXRjaChyKXtjb25zb2xlLmVycm9yKCJFcnJvciBpbiBzY3JvbGwgY2FsbGJhY2s6IixyKX19KX1hdHRhY2hOYXRpdmVTY3JvbGxMaXN0ZW5lcigpe3dpbmRvdy5hZGRFdmVudExpc3RlbmVyKCJzY3JvbGwiLHRoaXMuaGFuZGxlTmF0aXZlU2Nyb2xsKX1kZXRhY2hOYXRpdmVTY3JvbGxMaXN0ZW5lcigpe3dpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyKCJzY3JvbGwiLHRoaXMuaGFuZGxlTmF0aXZlU2Nyb2xsKX1hdHRhY2hMZW5pc1Njcm9sbExpc3RlbmVyKCl7dGhpcy5sZW5pc0luc3RhbmNlJiZ0aGlzLmxlbmlzSW5zdGFuY2Uub24oInNjcm9sbCIsdGhpcy5oYW5kbGVMZW5pc1Njcm9sbCl9ZGV0YWNoTGVuaXNTY3JvbGxMaXN0ZW5lcigpe3RoaXMubGVuaXNJbnN0YW5jZSYmdGhpcy5sZW5pc0luc3RhbmNlLm9mZigic2Nyb2xsIix0aGlzLmhhbmRsZUxlbmlzU2Nyb2xsKX19fSk7dmFyIGFBLHR0dD1wKCgpPT57Q3AoKTt6cCgpO2FBPWNsYXNze2RvbXRvb2xzUmVmO2dvQnJpZ2h0Qm9vbGVhbj0hMTtwcmVmZXJyZWRDb2xvclNjaGVtZU1lZGlhTWF0Y2g9d2luZG93Lm1hdGNoTWVkaWEoIihwcmVmZXJzLWNvbG9yLXNjaGVtZTogbGlnaHQpIik7dGhlbWVPYnNlcnZhYmxlPW5ldyBuci5yeGpzLlJlcGxheVN1YmplY3QoMSk7Y29uc3RydWN0b3IodCl7dGhpcy5kb210b29sc1JlZj10LHRoaXMuZ29CcmlnaHRCb29sZWFuPXRoaXMucHJlZmVycmVkQ29sb3JTY2hlbWVNZWRpYU1hdGNoLm1hdGNoZXMsdGhpcy5wcmVmZXJyZWRDb2xvclNjaGVtZU1lZGlhTWF0Y2guYWRkRXZlbnRMaXN0ZW5lcigiY2hhbmdlIixyPT57dGhpcy5nb0JyaWdodEJvb2xlYW49ci5tYXRjaGVzLHRoaXMudXBkYXRlQWxsQ29ubmVjdGVkRWxlbWVudHMoKX0pLHRoaXMudXBkYXRlQWxsQ29ubmVjdGVkRWxlbWVudHMoKX1hc3luYyBlbmFibGVBdXRvbWF0aWNHbG9iYWxUaGVtZUNoYW5nZSgpe2RvY3VtZW50LmJvZHkmJmRvY3VtZW50LmJvZHkuc3R5bGUmJnRoaXMudGhlbWVPYnNlcnZhYmxlLnN1YnNjcmliZSh7bmV4dDp0PT57ZG9jdW1lbnQuYm9keS5zdHlsZS5iYWNrZ3JvdW5kPXQ/IiNmZmYiOiIjMDAwIn19KX1hc3luYyB1cGRhdGVBbGxDb25uZWN0ZWRFbGVtZW50cygpe3RoaXMudGhlbWVPYnNlcnZhYmxlLm5leHQodGhpcy5nb0JyaWdodEJvb2xlYW4pfWdvQnJpZ2h0KCl7dGhpcy5nb0JyaWdodEJvb2xlYW49ITAsdGhpcy51cGRhdGVBbGxDb25uZWN0ZWRFbGVtZW50cygpfWdvRGFyaygpe3RoaXMuZ29CcmlnaHRCb29sZWFuPSExLHRoaXMudXBkYXRlQWxsQ29ubmVjdGVkRWxlbWVudHMoKX10b2dnbGVEYXJrQnJpZ2h0KCl7dGhpcy5nb0JyaWdodEJvb2xlYW49IXRoaXMuZ29CcmlnaHRCb29sZWFuLHRoaXMudXBkYXRlQWxsQ29ubmVjdGVkRWxlbWVudHMoKX19fSk7dmFyIHhpZSxuQSxydHQ9cCgoKT0+e3pwKCk7KGZ1bmN0aW9uKGUpe2VbZS5CYWNrc3BhY2U9OF09IkJhY2tzcGFjZSIsZVtlLlRhYj05XT0iVGFiIixlW2UuRW50ZXI9MTNdPSJFbnRlciIsZVtlLlNoaWZ0PTE2XT0iU2hpZnQiLGVbZS5DdHJsPTE3XT0iQ3RybCIsZVtlLkFsdD0xOF09IkFsdCIsZVtlLlBhdXNlQnJlYWs9MTldPSJQYXVzZUJyZWFrIixlW2UuQ2Fwc0xvY2s9MjBdPSJDYXBzTG9jayIsZVtlLkVzY2FwZT0yN109IkVzY2FwZSIsZVtlLlNwYWNlPTMyXT0iU3BhY2UiLGVbZS5QYWdlVXA9MzNdPSJQYWdlVXAiLGVbZS5QYWdlRG93bj0zNF09IlBhZ2VEb3duIixlW2UuRW5kPTM1XT0iRW5kIixlW2UuSG9tZT0zNl09IkhvbWUiLGVbZS5MZWZ0QXJyb3c9MzddPSJMZWZ0QXJyb3ciLGVbZS5VcEFycm93PTM4XT0iVXBBcnJvdyIsZVtlLlJpZ2h0QXJyb3c9MzldPSJSaWdodEFycm93IixlW2UuRG93bkFycm93PTQwXT0iRG93bkFycm93IixlW2UuSW5zZXJ0PTQ1XT0iSW5zZXJ0IixlW2UuRGVsZXRlPTQ2XT0iRGVsZXRlIixlW2UuWmVybz00OF09Ilplcm8iLGVbZS5DbG9zZWRQYXJlbj00OF09IkNsb3NlZFBhcmVuIixlW2UuT25lPTQ5XT0iT25lIixlW2UuRXhjbGFtYXRpb25NYXJrPTQ5XT0iRXhjbGFtYXRpb25NYXJrIixlW2UuVHdvPTUwXT0iVHdvIixlW2UuQXRTaWduPTUwXT0iQXRTaWduIixlW2UuVGhyZWU9NTFdPSJUaHJlZSIsZVtlLlBvdW5kU2lnbj01MV09IlBvdW5kU2lnbiIsZVtlLkhhc2g9NTFdPSJIYXNoIixlW2UuRm91cj01Ml09IkZvdXIiLGVbZS5Eb2xsYXJTaWduPTUyXT0iRG9sbGFyU2lnbiIsZVtlLkZpdmU9NTNdPSJGaXZlIixlW2UuUGVyY2VudFNpZ249NTNdPSJQZXJjZW50U2lnbiIsZVtlLlNpeD01NF09IlNpeCIsZVtlLkNhcmV0PTU0XT0iQ2FyZXQiLGVbZS5IYXQ9NTRdPSJIYXQiLGVbZS5TZXZlbj01NV09IlNldmVuIixlW2UuQW1wZXJzYW5kPTU1XT0iQW1wZXJzYW5kIixlW2UuRWlnaHQ9NTZdPSJFaWdodCIsZVtlLlN0YXI9NTZdPSJTdGFyIixlW2UuQXN0ZXJpaz01Nl09IkFzdGVyaWsiLGVbZS5OaW5lPTU3XT0iTmluZSIsZVtlLk9wZW5QYXJlbj01N109Ik9wZW5QYXJlbiIsZVtlLkE9NjVdPSJBIixlW2UuQj02Nl09IkIiLGVbZS5DPTY3XT0iQyIsZVtlLkQ9NjhdPSJEIixlW2UuRT02OV09IkUiLGVbZS5GPTcwXT0iRiIsZVtlLkc9NzFdPSJHIixlW2UuSD03Ml09IkgiLGVbZS5JPTczXT0iSSIsZVtlLko9NzRdPSJKIixlW2UuSz03NV09IksiLGVbZS5MPTc2XT0iTCIsZVtlLk09NzddPSJNIixlW2UuTj03OF09Ik4iLGVbZS5PPTc5XT0iTyIsZVtlLlA9ODBdPSJQIixlW2UuUT04MV09IlEiLGVbZS5SPTgyXT0iUiIsZVtlLlM9ODNdPSJTIixlW2UuVD04NF09IlQiLGVbZS5VPTg1XT0iVSIsZVtlLlY9ODZdPSJWIixlW2UuVz04N109IlciLGVbZS5YPTg4XT0iWCIsZVtlLlk9ODldPSJZIixlW2UuWj05MF09IloiLGVbZS5MZWZ0V2luZG93S2V5PTkxXT0iTGVmdFdpbmRvd0tleSIsZVtlLlJpZ2h0V2luZG93S2V5PTkyXT0iUmlnaHRXaW5kb3dLZXkiLGVbZS5TZWxlY3RLZXk9OTNdPSJTZWxlY3RLZXkiLGVbZS5OdW1wYWQwPTk2XT0iTnVtcGFkMCIsZVtlLk51bXBhZDE9OTddPSJOdW1wYWQxIixlW2UuTnVtcGFkMj05OF09Ik51bXBhZDIiLGVbZS5OdW1wYWQzPTk5XT0iTnVtcGFkMyIsZVtlLk51bXBhZDQ9MTAwXT0iTnVtcGFkNCIsZVtlLk51bXBhZDU9MTAxXT0iTnVtcGFkNSIsZVtlLk51bXBhZDY9MTAyXT0iTnVtcGFkNiIsZVtlLk51bXBhZDc9MTAzXT0iTnVtcGFkNyIsZVtlLk51bXBhZDg9MTA0XT0iTnVtcGFkOCIsZVtlLk51bXBhZDk9MTA1XT0iTnVtcGFkOSIsZVtlLk11bHRpcGx5PTEwNl09Ik11bHRpcGx5IixlW2UuQWRkPTEwN109IkFkZCIsZVtlLlN1YnRyYWN0PTEwOV09IlN1YnRyYWN0IixlW2UuRGVjaW1hbFBvaW50PTExMF09IkRlY2ltYWxQb2ludCIsZVtlLkRpdmlkZT0xMTFdPSJEaXZpZGUiLGVbZS5GMT0xMTJdPSJGMSIsZVtlLkYyPTExM109IkYyIixlW2UuRjM9MTE0XT0iRjMiLGVbZS5GND0xMTVdPSJGNCIsZVtlLkY1PTExNl09IkY1IixlW2UuRjY9MTE3XT0iRjYiLGVbZS5GNz0xMThdPSJGNyIsZVtlLkY4PTExOV09IkY4IixlW2UuRjk9MTIwXT0iRjkiLGVbZS5GMTA9MTIxXT0iRjEwIixlW2UuRjExPTEyMl09IkYxMSIsZVtlLkYxMj0xMjNdPSJGMTIiLGVbZS5OdW1Mb2NrPTE0NF09Ik51bUxvY2siLGVbZS5TY3JvbGxMb2NrPTE0NV09IlNjcm9sbExvY2siLGVbZS5TZW1pQ29sb249MTg2XT0iU2VtaUNvbG9uIixlW2UuRXF1YWxzPTE4N109IkVxdWFscyIsZVtlLkNvbW1hPTE4OF09IkNvbW1hIixlW2UuRGFzaD0xODldPSJEYXNoIixlW2UuUGVyaW9kPTE5MF09IlBlcmlvZCIsZVtlLlVuZGVyU2NvcmU9MTg5XT0iVW5kZXJTY29yZSIsZVtlLlBsdXNTaWduPTE4N109IlBsdXNTaWduIixlW2UuRm9yd2FyZFNsYXNoPTE5MV09IkZvcndhcmRTbGFzaCIsZVtlLlRpbGRlPTE5Ml09IlRpbGRlIixlW2UuR3JhdmVBY2NlbnQ9MTkyXT0iR3JhdmVBY2NlbnQiLGVbZS5PcGVuQnJhY2tldD0yMTldPSJPcGVuQnJhY2tldCIsZVtlLkNsb3NlZEJyYWNrZXQ9MjIxXT0iQ2xvc2VkQnJhY2tldCIsZVtlLlF1b3RlPTIyMl09IlF1b3RlIn0pKHhpZXx8KHhpZT17fSkpO25BPWNsYXNze2RvbU5vZGU7bWFwQ29tYm9zVG9IYW5kbGVycz1uZXcgTWFwO3ByZXNzZWRLZXlzPW5ldyBTZXQ7Y29uc3RydWN0b3IodCl7dGhpcy5kb21Ob2RlPXQsdGhpcy5zdGFydExpc3RlbmluZygpfWtleUVudW09eGllO29uKHQpe2xldCByPW5ldyBuci5yeGpzLlN1YmplY3Q7cmV0dXJuIHRoaXMucmVnaXN0ZXJLZXlzKHQscikscn10cmlnZ2VyS2V5UHJlc3ModCl7Zm9yKGxldCByIG9mIHQpdGhpcy5wcmVzc2VkS2V5cy5hZGQocik7dGhpcy5jaGVja01hdGNoaW5nS2V5Ym9hcmRTdWJqZWN0cygpO2ZvcihsZXQgciBvZiB0KXRoaXMucHJlc3NlZEtleXMuZGVsZXRlKHIpfXN0YXJ0TGlzdGVuaW5nKCl7dGhpcy5kb21Ob2RlLmFkZEV2ZW50TGlzdGVuZXIoImtleWRvd24iLHRoaXMuaGFuZGxlS2V5RG93biksdGhpcy5kb21Ob2RlLmFkZEV2ZW50TGlzdGVuZXIoImtleXVwIix0aGlzLmhhbmRsZUtleVVwKX1zdG9wTGlzdGVuaW5nKCl7dGhpcy5kb21Ob2RlLnJlbW92ZUV2ZW50TGlzdGVuZXIoImtleWRvd24iLHRoaXMuaGFuZGxlS2V5RG93biksdGhpcy5kb21Ob2RlLnJlbW92ZUV2ZW50TGlzdGVuZXIoImtleXVwIix0aGlzLmhhbmRsZUtleVVwKX1jbGVhcigpe3RoaXMuc3RvcExpc3RlbmluZygpLHRoaXMubWFwQ29tYm9zVG9IYW5kbGVycy5jbGVhcigpLHRoaXMucHJlc3NlZEtleXMuY2xlYXIoKX1oYW5kbGVLZXlEb3duPXQ9Pnt0aGlzLnByZXNzZWRLZXlzLmFkZCh0LmtleUNvZGUpLHRoaXMuY2hlY2tNYXRjaGluZ0tleWJvYXJkU3ViamVjdHModCl9O2NoZWNrTWF0Y2hpbmdLZXlib2FyZFN1YmplY3RzKHQpe3RoaXMubWFwQ29tYm9zVG9IYW5kbGVycy5mb3JFYWNoKChyLGkpPT57dGhpcy5hcmVBbGxLZXlzUHJlc3NlZChpKSYmci5uZXh0KHQpfSl9aGFuZGxlS2V5VXA9dD0+e3RoaXMucHJlc3NlZEtleXMuZGVsZXRlKHQua2V5Q29kZSl9O2FyZUFsbEtleXNQcmVzc2VkKHQpe2xldCByPSEwO3JldHVybiB0LmZvckVhY2goaT0+e3RoaXMucHJlc3NlZEtleXMuaGFzKGkpfHwocj0hMSl9KSxyfXJlZ2lzdGVyS2V5cyh0LHIpe2lmKCF0aGlzLm1hcENvbWJvc1RvSGFuZGxlcnMuaGFzKHQpKXRoaXMubWFwQ29tYm9zVG9IYW5kbGVycy5zZXQodCxyKTtlbHNlIHJldHVybiB0aGlzLm1hcENvbWJvc1RvSGFuZGxlcnMuZ2V0KHQpfX19KTt2YXIgRGEsQ3A9cCgoKT0+e3pwKCk7dmllKCk7ZXR0KCk7UUwoKTt0dHQoKTtydHQoKTtEYT1jbGFzcyBle3N0YXRpYyBpbml0aWFsaXphdGlvblByb21pc2U9bnVsbDtzdGF0aWMgYXN5bmMgc2V0dXBEb21Ub29scyh0PXt9KXtyZXR1cm4hdC5pZ25vcmVHbG9iYWwmJmUuaW5pdGlhbGl6YXRpb25Qcm9taXNlP2F3YWl0IGUuaW5pdGlhbGl6YXRpb25Qcm9taXNlOnQuaWdub3JlR2xvYmFsP25ldyBlKHQpOihlLmluaXRpYWxpemF0aW9uUHJvbWlzZT0oYXN5bmMoKT0+e2xldCByO2lmKGdsb2JhbFRoaXMuZGVlc0RvbVRvb2xzKXI9Z2xvYmFsVGhpcy5kZWVzRG9tVG9vbHM7ZWxzZXtnbG9iYWxUaGlzLmRlZXNEb21Ub29scz1uZXcgZSh0KSxyPWdsb2JhbFRoaXMuZGVlc0RvbVRvb2xzO2xldCBpPSgpPT57KGRvY3VtZW50LnJlYWR5U3RhdGU9PT0iaW50ZXJhY3RpdmUifHxkb2N1bWVudC5yZWFkeVN0YXRlPT09ImNvbXBsZXRlIikmJihyLmVsZW1lbnRzLmhlYWRFbGVtZW50PWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoImhlYWQiKSxyLmVsZW1lbnRzLmJvZHlFbGVtZW50PWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoImJvZHkiKSxyLmtleWJvYXJkPW5ldyBuQShkb2N1bWVudC5ib2R5KSxyLmRvbVJlYWR5LnJlc29sdmUoKSl9O2RvY3VtZW50LnJlYWR5U3RhdGU9PT0iaW50ZXJhY3RpdmUifHxkb2N1bWVudC5yZWFkeVN0YXRlPT09ImNvbXBsZXRlIj9pKCk6ZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigicmVhZHlzdGF0ZWNoYW5nZSIsaSksci5kb21Ub29sc1JlYWR5LnJlc29sdmUoKX1yZXR1cm4gYXdhaXQgci5kb21Ub29sc1JlYWR5LnByb21pc2Uscn0pKCksYXdhaXQgZS5pbml0aWFsaXphdGlvblByb21pc2UpfXN0YXRpYyBnZXRHbG9iYWxEb21Ub29sc1N5bmMoKXtpZighZ2xvYmFsVGhpcy5kZWVzRG9tVG9vbHMpdGhyb3cgbmV3IEVycm9yKCJZb3UgdHJpZWQgdG8gYWNjZXNzIGRvbXRvb2xzIHN5bmNocm9ub3VzbHkgdG9vIGVhcmx5Iik7cmV0dXJuIGdsb2JhbFRoaXMuZGVlc0RvbVRvb2xzfWVsZW1lbnRzPXtoZWFkRWxlbWVudDpudWxsLGJvZHlFbGVtZW50Om51bGx9O3dlYnNldHVwPW5ldyBvZyh7bWV0YU9iamVjdDp7dGl0bGU6IiJ9fSk7c21hcnRzdGF0ZT1uZXcgeTQuU21hcnRzdGF0ZTtkb21Ub29sc1N0YXRlUGFydD10aGlzLnNtYXJ0c3RhdGUuZ2V0U3RhdGVQYXJ0KCJkb210b29scyIse3ZpcnR1YWxWaWV3cG9ydDoibmF0aXZlIixqd3Q6bnVsbH0pO3JvdXRlcj1uZXcgeDQuU21hcnRSb3V0ZXIoe2RlYnVnOiExfSk7Y29udmVuaWVuY2U9e3R5cGVkcmVxdWVzdDpaYSxzbWFydGRlbGF5OkN0LHNtYXJ0anNvbjp5MSxzbWFydHVybDp3NH07ZGVlc0NvbW1zPW5ldyB5OS5EZWVzQ29tbXM7c2Nyb2xsZXI9bmV3IGlBKHRoaXMpO3RoZW1lTWFuYWdlcj1uZXcgYUEodGhpcyk7a2V5Ym9hcmQ9bnVsbDtkb21Ub29sc1JlYWR5PVhlLmRlZmVyKCk7ZG9tUmVhZHk9WGUuZGVmZXIoKTtnbG9iYWxTdHlsZXNSZWFkeT1YZS5kZWZlcigpO2NvbnN0cnVjdG9yKHQpe31ydW5PbmNlVHJhY2tlclN0cmluZ01hcD1uZXcgbGcuU3RyaW5nbWFwO3J1bk9uY2VSZXN1bHRNYXA9bmV3IGxnLkZhc3RNYXA7cnVuT25jZUVycm9yTWFwPW5ldyBsZy5GYXN0TWFwO2FzeW5jIHJ1bk9uY2UodCxyKXtsZXQgaT1gJHt0fStydW5uaW5nQ2hlY2tgO2lmKCF0aGlzLnJ1bk9uY2VUcmFja2VyU3RyaW5nTWFwLmNoZWNrU3RyaW5nKHQpKXt0aGlzLnJ1bk9uY2VUcmFja2VyU3RyaW5nTWFwLmFkZFN0cmluZyh0KSx0aGlzLnJ1bk9uY2VUcmFja2VyU3RyaW5nTWFwLmFkZFN0cmluZyhpKTt0cnl7bGV0IGE9YXdhaXQgcigpO3RoaXMucnVuT25jZVJlc3VsdE1hcC5hZGRUb01hcCh0LGEpfWNhdGNoKGEpe3RoaXMucnVuT25jZUVycm9yTWFwLmFkZFRvTWFwKHQsYSl9ZmluYWxseXt0aGlzLnJ1bk9uY2VUcmFja2VyU3RyaW5nTWFwLnJlbW92ZVN0cmluZyhpKX19cmV0dXJuIGF3YWl0IHRoaXMucnVuT25jZVRyYWNrZXJTdHJpbmdNYXAucmVnaXN0ZXJVbnRpbFRydWUoYT0+IWEuaW5jbHVkZXMoaSksKCk9PntsZXQgYT10aGlzLnJ1bk9uY2VFcnJvck1hcC5nZXRCeUtleSh0KTtpZihhKXRocm93IGE7cmV0dXJuIHRoaXMucnVuT25jZVJlc3VsdE1hcC5nZXRCeUtleSh0KX0pfWFzeW5jIHNldEdsb2JhbFN0eWxlcyh0KXthd2FpdCB0aGlzLmRvbVJlYWR5LnByb21pc2U7bGV0IHI9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgic3R5bGUiKTtyLnR5cGU9InRleHQvY3NzIixyLmFwcGVuZENoaWxkKGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKHQpKSx0aGlzLmVsZW1lbnRzLmhlYWRFbGVtZW50LmFwcGVuZENoaWxkKHIpfWFzeW5jIHNldEV4dGVybmFsU2NyaXB0KHQpe2F3YWl0IHRoaXMuZG9tUmVhZHkucHJvbWlzZTtsZXQgcj1YZS5kZWZlcigpLGk9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgic2NyaXB0Iik7aS5zcmM9dCxpLmFkZEV2ZW50TGlzdGVuZXIoImxvYWQiLGZ1bmN0aW9uKCl7ci5yZXNvbHZlKCl9KSwoZG9jdW1lbnQuaGVhZHx8ZG9jdW1lbnQuYm9keSkuYXBwZW5kKGkpLGF3YWl0IHIucHJvbWlzZX1hc3luYyBzZXRFeHRlcm5hbENzcyh0KXtsZXQgcj1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJsaW5rIik7ci5yZWw9InN0eWxlc2hlZXQiLHIuY3Jvc3NPcmlnaW49ImFub255bW91cyIsci5ocmVmPXQsZG9jdW1lbnQuaGVhZC5hcHBlbmQocil9YXN5bmMgc2V0V2Vic2l0ZUluZm8odCl7YXdhaXQgdGhpcy53ZWJzZXR1cC5zZXR1cCh0KSxhd2FpdCB0aGlzLndlYnNldHVwLnJlYWR5UHJvbWlzZX19fSk7dmFyIG9BLGl0dCxhdHQ9cCgoKT0+e0NwKCk7U3MoKTtvQT0oKCk9PntsZXQgZT1uYXZpZ2F0b3IudXNlckFnZW50LmluZGV4T2YoIk1hYyBPUyBYIik9PT0tMT9vZWBgLmNzc1RleHQ6IiI7cmV0dXJuIG9lYAogICAgLyogd2lkdGggKi8KICAgIDo6LXdlYmtpdC1zY3JvbGxiYXIgewogICAgICB3aWR0aDogMHB4OwogICAgfQogICAgYm9keSB7CiAgICAgIHNjcm9sbGJhci13aWR0aDogbm9uZTsKICAgIH0KICBgLmNzc1RleHR9KSgpLGl0dD1vZWAKICAvKgogIEBmb250LWZhY2UgewogICAgZm9udC1mYW1pbHk6ICdNYXRlcmlhbCBJY29ucyc7CiAgICBmb250LXN0eWxlOiBub3JtYWw7CiAgICBmb250LXdlaWdodDogNDAwOwogICAgc3JjOiB1cmwoaHR0cHM6Ly9mb250cy5nc3RhdGljLmNvbS9zL21hdGVyaWFsaWNvbnMvdjQyL2ZsVWhScTZ0elpjbFFFSi1WZGctSXVpYURzTmNJaFE4dFEud29mZjIpCiAgICAgIGZvcm1hdCgnd29mZjInKTsKICB9ICovCgogIC8qIGdsb2JhbCBib2R5IHN0eWxlcyAqLwogIGJvZHkgewogICAgbWFyZ2luOiAwcHg7CiAgICBmb250LWZhbWlseTogJ0dlaXN0IFNhbnMnLCAnSW50ZXInLCBzYW5zLXNlcmlmOwogICAgYm94LXNpemluZzogYm9yZGVyLWJveDsKICB9CgogIC8qIHNjcm9sbCBiYXIgc3R5bGVzICovCiAgJHtrcihvQSl9CmAuY3NzVGV4dH0pO3ZhciBkMT17fTtGZShkMSx7c2V0dXA6KCk9PlNVcixzdGF0aWNTdHlsZXM6KCk9Pk1VcixzdHlsZXM6KCk9PmtVcn0pO3ZhciBNVXIsa1VyLFNVcixudHQ9cCgoKT0+e3pwKCk7Q3AoKTthdHQoKTtTcygpO01Vcj1vZWAKICAqIHsKICAgIHRyYW5zaXRpb246IGJhY2tncm91bmQgMC4xcywgY29sb3IgMC4xczsKICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7CiAgfQoKICA6aG9zdCB7CiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94OwogICAgZm9udC1mYW1pbHk6ICdHZWlzdCBTYW5zJywgJ0ludGVyJywgc2Fucy1zZXJpZjsKICB9CgogICR7a3Iob0EpfQpgLGtVcj1DYAogIDxzdHlsZT4KICAgICogewogICAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kIDAuMXMsIGNvbG9yIDAuMXM7CiAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7CiAgICB9CgogICAgOmhvc3QgewogICAgICBmb250LWZhbWlseTogJ0dlaXN0IFNhbnMnLCAnSW50ZXInLCBzYW5zLXNlcmlmOwogICAgfQoKICAgICR7b0F9CiAgPC9zdHlsZT4KYCxTVXI9YXN5bmMoZSx0PXt9KT0+e2xldCByPWF3YWl0IERhLnNldHVwRG9tVG9vbHModCk7cmV0dXJuIHIucnVuT25jZSgiZWxlbWVudEJhc2ljU2V0dXAiLGFzeW5jKCk9PntyLnNldEdsb2JhbFN0eWxlcyhpdHQpfSkscn19KTt2YXIgc0E9e307RmUoc0Ese2Nzc0dyaWRDb2x1bW5zOigpPT56VXJ9KTt2YXIgelVyLG90dD1wKCgpPT57elVyPShlLHQpPT57bGV0IHI9IiI7Zm9yKGxldCBpPTA7aTxlO2krKylyKz1gIGNhbGMoKDEwMCUvJHtlfSkgLSAoJHt0KihlLTEpfXB4LyR7ZX0pKWA7cmV0dXJuIHJ9fSk7dmFyIGp0PXt9O0ZlKGp0LHtTd2VldFNjcm9sbDooKT0+eWllLmRlZmF1bHQsc21hcnRkZWxheTooKT0+Q3Qsc21hcnRtYXJrZG93bjooKT0+TXAsc21hcnRwcm9taXNlOigpPT5YZSxzbWFydHJvdXRlcjooKT0+eDQsc21hcnRyeDooKT0+bnIsc21hcnRzdGF0ZTooKT0+eTQsc21hcnRzdHJpbmc6KCk9PlFpLHNtYXJ0dXJsOigpPT53NCx0eXBlZHJlcXVlc3Q6KCk9PlphfSk7dmFyIHlpZSxzdHQ9cCgoKT0+e1RzKCk7ZjFlKCk7RWkoKTt5aWU9ZXIocGllKCksMSk7STFlKCk7TTFlKCk7aDIoKTtSOCgpO04xZSgpO2I5KCl9KTt2YXIga3Q9e307RmUoa3Qse0RvbVRvb2xzOigpPT5EYSxUeXBlZFJlcXVlc3Q6KCk9Pmc5LGJyZWFrcG9pbnRzOigpPT5Lcyxjc3M6KCk9PnNBLGVsZW1lbnRCYXNpYzooKT0+ZDEscGx1Z2luczooKT0+anR9KTt2YXIgS3Q9cCgoKT0+e3JJZSgpO250dCgpO3ZpZSgpO290dCgpO0NwKCk7YjkoKTtRTCgpO3N0dCgpfSk7dmFyIHdpZSxTNCxNaWU9cCgoKT0+e3dpZT1lcih5UygpLDEpO2gyKCk7U3MoKTt0SWUoKTtLdCgpO1M0PXtjc3M6b2UsdW5zYWZlQ1NTOmtyLExpdEVsZW1lbnQ6UmwscHJvcGVydHk6an19KTt2YXIgbEEsY3R0PXAoKCk9PntTcygpO01pZSgpO0t0KCk7bEE9Y2xhc3MgZXtzdGF0aWMgaW5zdGFuY2U9bnVsbDtzdGF0aWMgZ2V0U2luZ2xldG9uKCl7cmV0dXJuIGUuaW5zdGFuY2V8fChlLmluc3RhbmNlPW5ldyBlKSxlLmluc3RhbmNlfWRvbXRvb2xzUHJvbWlzZT1EYS5zZXR1cERvbVRvb2xzKCk7Z29CcmlnaHQ9ITE7YmRWYXJUcmlwbGV0U3RvcmU9W107Y29uc3RydWN0b3IoKXt0aGlzLmRvbXRvb2xzUHJvbWlzZS50aGVuKGFzeW5jIHQ9Pnt0LnRoZW1lTWFuYWdlci50aGVtZU9ic2VydmFibGUuc3Vic2NyaWJlKGFzeW5jIHI9Pnt0aGlzLmdvQnJpZ2h0PXIsYXdhaXQgdC5kb21SZWFkeS5wcm9taXNlO2ZvcihsZXQgaSBvZiB0aGlzLmJkVmFyVHJpcGxldFN0b3JlKWRvY3VtZW50LmJvZHkuc3R5bGUuc2V0UHJvcGVydHkoaS5jc3NWYXJOYW1lLHRoaXMuZ29CcmlnaHQ/aS5icmlnaHRWYWx1ZTppLmRhcmtWYWx1ZSl9KX0pfWdldCBkZWZhdWx0U3R5bGVzKCl7cmV0dXJuIGQxLnN0YXRpY1N0eWxlc31jc3NGb3JEZXNrdG9wKHQpe3JldHVybiBrcihLcy5jc3NGb3JEZXNrdG9wKHQpKX1jc3NGb3JOb3RlYm9vayh0KXtyZXR1cm4ga3IoS3MuY3NzRm9yTm90ZWJvb2sodCkpfWNzc0ZvclRhYmxldCh0KXtyZXR1cm4ga3IoS3MuY3NzRm9yVGFibGV0KHQpKX1jc3NGb3JQaGFibGV0KHQpe3JldHVybiBrcihLcy5jc3NGb3JQaGFibGV0KHQpKX1jc3NGb3JQaG9uZSh0KXtyZXR1cm4ga3IoS3MuY3NzRm9yUGhvbmUodCkpfWJkVGhlbWUodCxyKXtsZXQgaSxhO0RhLmdldEdsb2JhbERvbVRvb2xzU3luYygpP2E9RGEuZ2V0R2xvYmFsRG9tVG9vbHNTeW5jKCkudGhlbWVNYW5hZ2VyLmdvQnJpZ2h0Qm9vbGVhbj90OnI6YT1yO2xldCBuPXRoaXMuYmRWYXJUcmlwbGV0U3RvcmUuZmluZChvPT5vLmRhcmtWYWx1ZT09PXImJm8uYnJpZ2h0VmFsdWU9PT10KTtpZihuKWk9bi5jc3NWYXJOYW1lO2Vsc2V7bGV0IG89e2Nzc1Zhck5hbWU6YC0tJHt3aWUudW5pKCl9YCxicmlnaHRWYWx1ZTp0LGRhcmtWYWx1ZTpyfTt0aGlzLmJkVmFyVHJpcGxldFN0b3JlLnB1c2gobyksdGhpcy5kb210b29sc1Byb21pc2UudGhlbihhc3luYyBzPT57YXdhaXQgcy5kb21SZWFkeS5wcm9taXNlLGRvY3VtZW50LmJvZHkuc3R5bGUuc2V0UHJvcGVydHkoby5jc3NWYXJOYW1lLGEpfSksaT1vLmNzc1Zhck5hbWV9cmV0dXJuIFM0LnVuc2FmZUNTUyhgdmFyKCR7aX0sICR7YX0pYCl9Y3NzR3JpZENvbHVtbnM9KHQscik9PntsZXQgaT0iIjtmb3IobGV0IGE9MDthPHQ7YSsrKWkrPWAgY2FsYygoMTAwJS8ke3R9KSAtICgke3IqKHQtMSl9cHgvJHt0fSkpYDtyZXR1cm4gUzQudW5zYWZlQ1NTKGkpfX19KTt2YXIga2llLENVcix1dHQsVFVyLGR0dCxjQSx6NCxfVXIsTFVyLHB0dD1wKCgpPT57YzIoKTtraWU9U3ltYm9sLmZvcigiIiksQ1VyPWU9PntpZihlPy5yPT09a2llKXJldHVybiBlPy5fJGxpdFN0YXRpYyR9LHV0dD1lPT4oe18kbGl0U3RhdGljJDplLHI6a2llfSksVFVyPShlLC4uLnQpPT4oe18kbGl0U3RhdGljJDp0LnJlZHVjZSgocixpLGEpPT5yKyhuPT57aWYobi5fJGxpdFN0YXRpYyQhPT12b2lkIDApcmV0dXJuIG4uXyRsaXRTdGF0aWMkO3Rocm93IEVycm9yKGBWYWx1ZSBwYXNzZWQgdG8gJ2xpdGVyYWwnIGZ1bmN0aW9uIG11c3QgYmUgYSAnbGl0ZXJhbCcgcmVzdWx0OiAke259LiBVc2UgJ3Vuc2FmZVN0YXRpYycgdG8gcGFzcyBub24tbGl0ZXJhbCB2YWx1ZXMsIGJ1dAogICAgICAgICAgICB0YWtlIGNhcmUgdG8gZW5zdXJlIHBhZ2Ugc2VjdXJpdHkuYCl9KShpKStlW2ErMV0sZVswXSkscjpraWV9KSxkdHQ9bmV3IE1hcCxjQT1lPT4odCwuLi5yKT0+e2xldCBpPXIubGVuZ3RoLGEsbixvPVtdLHM9W10sbCxjPTAsdT0hMTtmb3IoO2M8aTspe2ZvcihsPXRbY107YzxpJiYobj1yW2NdLChhPUNVcihuKSkhPT12b2lkIDApOylsKz1hK3RbKytjXSx1PSEwO2MhPT1pJiZzLnB1c2gobiksby5wdXNoKGwpLGMrK31pZihjPT09aSYmby5wdXNoKHRbaV0pLHUpe2xldCBkPW8uam9pbigiJCRsaXQkJCIpOyh0PWR0dC5nZXQoZCkpPT09dm9pZCAwJiYoby5yYXc9byxkdHQuc2V0KGQsdD1vKSkscj1zfXJldHVybiBlKHQsLi4ucil9LHo0PWNBKEMpLF9Vcj1jQShnWSksTFVyPWNBKGJZKX0pO3ZhciBodHQ9cCgoKT0+e3B0dCgpfSk7dmFyIGVsLG5pLEFvLGNjPXAoKCk9PntlbD17QVRUUklCVVRFOjEsQ0hJTEQ6MixQUk9QRVJUWTozLEJPT0xFQU5fQVRUUklCVVRFOjQsRVZFTlQ6NSxFTEVNRU5UOjZ9LG5pPWU9PiguLi50KT0+KHtfJGxpdERpcmVjdGl2ZSQ6ZSx2YWx1ZXM6dH0pLEFvPWNsYXNze2NvbnN0cnVjdG9yKHQpe31nZXQgXyRBVSgpe3JldHVybiB0aGlzLl8kQU0uXyRBVX1fJEFUKHQscixpKXt0aGlzLl8kQ3Q9dCx0aGlzLl8kQU09cix0aGlzLl8kQ2k9aX1fJEFTKHQscil7cmV0dXJuIHRoaXMudXBkYXRlKHQscil9dXBkYXRlKHQscil7cmV0dXJuIHRoaXMucmVuZGVyKC4uLnIpfX19KTt2YXIgVHAsZEEsZnR0PXAoKCk9PntjMigpO2NjKCk7VHA9Y2xhc3MgZXh0ZW5kcyBBb3tjb25zdHJ1Y3Rvcih0KXtpZihzdXBlcih0KSx0aGlzLml0PXgxLHQudHlwZSE9PWVsLkNISUxEKXRocm93IEVycm9yKHRoaXMuY29uc3RydWN0b3IuZGlyZWN0aXZlTmFtZSsiKCkgY2FuIG9ubHkgYmUgdXNlZCBpbiBjaGlsZCBiaW5kaW5ncyIpfXJlbmRlcih0KXtpZih0PT09eDF8fHQ9PW51bGwpcmV0dXJuIHRoaXMuX3Q9dm9pZCAwLHRoaXMuaXQ9dDtpZih0PT09bDEpcmV0dXJuIHQ7aWYodHlwZW9mIHQhPSJzdHJpbmciKXRocm93IEVycm9yKHRoaXMuY29uc3RydWN0b3IuZGlyZWN0aXZlTmFtZSsiKCkgY2FsbGVkIHdpdGggYSBub24tc3RyaW5nIHZhbHVlIik7aWYodD09PXRoaXMuaXQpcmV0dXJuIHRoaXMuX3Q7dGhpcy5pdD10O2xldCByPVt0XTtyZXR1cm4gci5yYXc9cix0aGlzLl90PXtfJGxpdFR5cGUkOnRoaXMuY29uc3RydWN0b3IucmVzdWx0VHlwZSxzdHJpbmdzOnIsdmFsdWVzOltdfX19O1RwLmRpcmVjdGl2ZU5hbWU9InVuc2FmZUhUTUwiLFRwLnJlc3VsdFR5cGU9MTtkQT1uaShUcCl9KTt2YXIgbXR0PXAoKCk9PntmdHQoKX0pO3ZhciB5ZSxTaWU9cCgoKT0+e3llPWU9Pih0LHIpPT57ciE9PXZvaWQgMD9yLmFkZEluaXRpYWxpemVyKCgpPT57Y3VzdG9tRWxlbWVudHMuZGVmaW5lKGUsdCl9KTpjdXN0b21FbGVtZW50cy5kZWZpbmUoZSx0KX19KTt2YXIgZ3R0PXAoKCk9PntTaWUoKX0pO2Z1bmN0aW9uIGZlKGUpe3JldHVybiBqKHsuLi5lLHN0YXRlOiEwLGF0dHJpYnV0ZTohMX0pfXZhciBidHQ9cCgoKT0+e216KCk7fSk7ZnVuY3Rpb24gQVVyKGUpe3JldHVybih0LHIpPT57bGV0IGk9dHlwZW9mIHQ9PSJmdW5jdGlvbiI/dDp0W3JdO09iamVjdC5hc3NpZ24oaSxlKX19dmFyIHZ0dD1wKCgpPT57fSk7dmFyIERvLF9wPXAoKCk9PntEbz0oZSx0LHIpPT4oci5jb25maWd1cmFibGU9ITAsci5lbnVtZXJhYmxlPSEwLFJlZmxlY3QuZGVjb3JhdGUmJnR5cGVvZiB0IT0ib2JqZWN0IiYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGUsdCxyKSxyKX0pO2Z1bmN0aW9uIHh0dChlLHQpe3JldHVybihyLGksYSk9PntsZXQgbj1vPT5vLnJlbmRlclJvb3Q/LnF1ZXJ5U2VsZWN0b3IoZSk/P251bGw7aWYodCl7bGV0e2dldDpvLHNldDpzfT10eXBlb2YgaT09Im9iamVjdCI/cjphPz8oKCk9PntsZXQgbD1TeW1ib2woKTtyZXR1cm57Z2V0KCl7cmV0dXJuIHRoaXNbbF19LHNldChjKXt0aGlzW2xdPWN9fX0pKCk7cmV0dXJuIERvKHIsaSx7Z2V0KCl7bGV0IGw9by5jYWxsKHRoaXMpO3JldHVybiBsPT09dm9pZCAwJiYobD1uKHRoaXMpLChsIT09bnVsbHx8dGhpcy5oYXNVcGRhdGVkKSYmcy5jYWxsKHRoaXMsbCkpLGx9fSl9cmV0dXJuIERvKHIsaSx7Z2V0KCl7cmV0dXJuIG4odGhpcyl9fSl9fXZhciB5dHQ9cCgoKT0+e19wKCk7fSk7ZnVuY3Rpb24gd3R0KGUpe3JldHVybih0LHIpPT5Ebyh0LHIse2dldCgpe3JldHVybih0aGlzLnJlbmRlclJvb3Q/PyhEVXI/Pz1kb2N1bWVudC5jcmVhdGVEb2N1bWVudEZyYWdtZW50KCkpKS5xdWVyeVNlbGVjdG9yQWxsKGUpfX0pfXZhciBEVXIsTXR0PXAoKCk9PntfcCgpO30pO2Z1bmN0aW9uIGt0dChlKXtyZXR1cm4odCxyKT0+RG8odCxyLHthc3luYyBnZXQoKXtyZXR1cm4gYXdhaXQgdGhpcy51cGRhdGVDb21wbGV0ZSx0aGlzLnJlbmRlclJvb3Q/LnF1ZXJ5U2VsZWN0b3IoZSk/P251bGx9fSl9dmFyIFN0dD1wKCgpPT57X3AoKTt9KTtmdW5jdGlvbiBFVXIoZSl7cmV0dXJuKHQscik9PntsZXR7c2xvdDppLHNlbGVjdG9yOmF9PWU/P3t9LG49InNsb3QiKyhpP2BbbmFtZT0ke2l9XWA6Ijpub3QoW25hbWVdKSIpO3JldHVybiBEbyh0LHIse2dldCgpe2xldCBvPXRoaXMucmVuZGVyUm9vdD8ucXVlcnlTZWxlY3RvcihuKSxzPW8/LmFzc2lnbmVkRWxlbWVudHMoZSk/P1tdO3JldHVybiBhPT09dm9pZCAwP3M6cy5maWx0ZXIobD0+bC5tYXRjaGVzKGEpKX19KX19dmFyIHp0dD1wKCgpPT57X3AoKTt9KTtmdW5jdGlvbiAkVXIoZSl7cmV0dXJuKHQscik9PntsZXR7c2xvdDppfT1lPz97fSxhPSJzbG90IisoaT9gW25hbWU9JHtpfV1gOiI6bm90KFtuYW1lXSkiKTtyZXR1cm4gRG8odCxyLHtnZXQoKXtyZXR1cm4gdGhpcy5yZW5kZXJSb290Py5xdWVyeVNlbGVjdG9yKGEpPy5hc3NpZ25lZE5vZGVzKGUpPz9bXX19KX19dmFyIEN0dD1wKCgpPT57X3AoKTt9KTt2YXIgVHR0PXAoKCk9PntTaWUoKTtteigpO2J0dCgpO3Z0dCgpO3l0dCgpO010dCgpO1N0dCgpO3p0dCgpO0N0dCgpfSk7dmFyIF90dCx1QSx6ZSxMdHQ9cCgoKT0+e01pZSgpO190dD1mdW5jdGlvbihlLHQscixpLGEsbil7ZnVuY3Rpb24gbyh5KXtpZih5IT09dm9pZCAwJiZ0eXBlb2YgeSE9ImZ1bmN0aW9uIil0aHJvdyBuZXcgVHlwZUVycm9yKCJGdW5jdGlvbiBleHBlY3RlZCIpO3JldHVybiB5fWZvcih2YXIgcz1pLmtpbmQsbD1zPT09ImdldHRlciI/ImdldCI6cz09PSJzZXR0ZXIiPyJzZXQiOiJ2YWx1ZSIsYz0hdCYmZT9pLnN0YXRpYz9lOmUucHJvdG90eXBlOm51bGwsdT10fHwoYz9PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGMsaS5uYW1lKTp7fSksZCxoPSExLGY9ci5sZW5ndGgtMTtmPj0wO2YtLSl7dmFyIHg9e307Zm9yKHZhciB2IGluIGkpeFt2XT12PT09ImFjY2VzcyI/e306aVt2XTtmb3IodmFyIHYgaW4gaS5hY2Nlc3MpeC5hY2Nlc3Nbdl09aS5hY2Nlc3Nbdl07eC5hZGRJbml0aWFsaXplcj1mdW5jdGlvbih5KXtpZihoKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBhZGQgaW5pdGlhbGl6ZXJzIGFmdGVyIGRlY29yYXRpb24gaGFzIGNvbXBsZXRlZCIpO24ucHVzaChvKHl8fG51bGwpKX07dmFyIGI9KDAscltmXSkocz09PSJhY2Nlc3NvciI/e2dldDp1LmdldCxzZXQ6dS5zZXR9OnVbbF0seCk7aWYocz09PSJhY2Nlc3NvciIpe2lmKGI9PT12b2lkIDApY29udGludWU7aWYoYj09PW51bGx8fHR5cGVvZiBiIT0ib2JqZWN0Iil0aHJvdyBuZXcgVHlwZUVycm9yKCJPYmplY3QgZXhwZWN0ZWQiKTsoZD1vKGIuZ2V0KSkmJih1LmdldD1kKSwoZD1vKGIuc2V0KSkmJih1LnNldD1kKSwoZD1vKGIuaW5pdCkpJiZhLnVuc2hpZnQoZCl9ZWxzZShkPW8oYikpJiYocz09PSJmaWVsZCI/YS51bnNoaWZ0KGQpOnVbbF09ZCl9YyYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGMsaS5uYW1lLHUpLGg9ITB9LHVBPWZ1bmN0aW9uKGUsdCxyKXtmb3IodmFyIGk9YXJndW1lbnRzLmxlbmd0aD4yLGE9MDthPHQubGVuZ3RoO2ErKylyPWk/dFthXS5jYWxsKGUscik6dFthXS5jYWxsKGUpO3JldHVybiBpP3I6dm9pZCAwfSx6ZT0oKCk9PntsZXQgZT1TNC5MaXRFbGVtZW50LHQscj1bXSxpPVtdLGEsbj1bXSxvPVtdO3JldHVybiBjbGFzcyBleHRlbmRzIGV7c3RhdGlje2xldCBsPXR5cGVvZiBTeW1ib2w9PSJmdW5jdGlvbiImJlN5bWJvbC5tZXRhZGF0YT9PYmplY3QuY3JlYXRlKGVbU3ltYm9sLm1ldGFkYXRhXT8/bnVsbCk6dm9pZCAwO3Q9W1M0LnByb3BlcnR5KHt0eXBlOkJvb2xlYW59KV0sYT1bUzQucHJvcGVydHkoKV0sX3R0KHRoaXMsbnVsbCx0LHtraW5kOiJhY2Nlc3NvciIsbmFtZToiZ29CcmlnaHQiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmM9PiJnb0JyaWdodCJpbiBjLGdldDpjPT5jLmdvQnJpZ2h0LHNldDooYyx1KT0+e2MuZ29CcmlnaHQ9dX19LG1ldGFkYXRhOmx9LHIsaSksX3R0KHRoaXMsbnVsbCxhLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiZG9tdG9vbHMiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmM9PiJkb210b29scyJpbiBjLGdldDpjPT5jLmRvbXRvb2xzLHNldDooYyx1KT0+e2MuZG9tdG9vbHM9dX19LG1ldGFkYXRhOmx9LG4sbyksbCYmT2JqZWN0LmRlZmluZVByb3BlcnR5KHRoaXMsU3ltYm9sLm1ldGFkYXRhLHtlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMCx2YWx1ZTpsfSl9I2U9dUEodGhpcyxyLCExKTtnZXQgZ29CcmlnaHQoKXtyZXR1cm4gdGhpcy4jZX1zZXQgZ29CcmlnaHQobCl7dGhpcy4jZT1sfWRvbXRvb2xzUHJvbWlzZT11QSh0aGlzLGkpOyN0PXVBKHRoaXMsbix2b2lkIDApO2dldCBkb210b29scygpe3JldHVybiB0aGlzLiN0fXNldCBkb210b29scyhsKXt0aGlzLiN0PWx9cnhTdWJzY3JpcHRpb25zPSh1QSh0aGlzLG8pLFtdKTt0aGVtZVN1YnNjcmlwdGlvbjtlbGVtZW50RG9tUmVhZHlEZWZlcnJlZD1rdC5wbHVnaW5zLnNtYXJ0cHJvbWlzZS5kZWZlcigpO2VsZW1lbnREb21SZWFkeT10aGlzLmVsZW1lbnREb21SZWFkeURlZmVycmVkLnByb21pc2U7Y29uc3RydWN0b3IobD17fSl7c3VwZXIoKSx0aGlzLmRvbXRvb2xzUHJvbWlzZT1rdC5lbGVtZW50QmFzaWMuc2V0dXAodGhpcyxsKSx0aGlzLmRvbXRvb2xzUHJvbWlzZS50aGVuKGM9Pnt0aGlzLmRvbXRvb2xzPWN9KX1hc3luYyBjb25uZWN0ZWRDYWxsYmFjaygpe3N1cGVyLmNvbm5lY3RlZENhbGxiYWNrKCk7bGV0IGw9YXdhaXQgdGhpcy5kb210b29sc1Byb21pc2U7dGhpcy50aGVtZVN1YnNjcmlwdGlvbj1sLnRoZW1lTWFuYWdlci50aGVtZU9ic2VydmFibGUuc3Vic2NyaWJlKGM9Pnt0aGlzLmdvQnJpZ2h0PWMsdGhpcy50aGVtZUNoYW5nZWQmJnRoaXMudGhlbWVDaGFuZ2VkKGMpfSksdGhpcy5yeFN1YnNjcmlwdGlvbnMucHVzaCh0aGlzLnRoZW1lU3Vic2NyaXB0aW9uKTtmb3IobGV0IGMgb2YgdGhpcy5zdGFydHVwRnVuY3Rpb25zKWF3YWl0IGMoKTt0aGlzLmRpc3BhdGNoRXZlbnQobmV3IEN1c3RvbUV2ZW50KCJkZWVzRWxlbWVudENvbm5lY3RlZCIpKX1maXJzdFVwZGF0ZWQobCl7c3VwZXIuZmlyc3RVcGRhdGVkKGwpLHRoaXMuZWxlbWVudERvbVJlYWR5RGVmZXJyZWQucmVzb2x2ZSgpfXN0YXJ0dXBGdW5jdGlvbnM9W107cmVnaXN0ZXJTdGFydHVwRnVuY3Rpb24obCl7dGhpcy5zdGFydHVwRnVuY3Rpb25zLnB1c2gobCl9Z2FyYmFnZUZ1bmN0aW9ucz1bXTtyZWdpc3RlckdhcmJhZ2VGdW5jdGlvbihsKXt0aGlzLmdhcmJhZ2VGdW5jdGlvbnMucHVzaChsKX1hc3luYyBkaXNjb25uZWN0ZWRDYWxsYmFjaygpe2F3YWl0IHRoaXMuZG9tdG9vbHNQcm9taXNlLHN1cGVyLmRpc2Nvbm5lY3RlZENhbGxiYWNrKCk7Zm9yKGxldCBsIG9mIHRoaXMucnhTdWJzY3JpcHRpb25zKWwudW5zdWJzY3JpYmUoKTtmb3IobGV0IGwgb2YgdGhpcy5nYXJiYWdlRnVuY3Rpb25zKWF3YWl0IGwoKTt0aGlzLmRpc3BhdGNoRXZlbnQobmV3IEN1c3RvbUV2ZW50KCJkZWVzRWxlbWVudERpc2Nvbm5lY3RlZCIpKX19fSkoKX0pO3ZhciBJVXIsQXR0LHppZSxQVXIsTlVyLEZVcixPVXIsUlVyLENpZSxEdHQsZGMseTIsQlVyLGNnLFRpZSxkZyxfaWUsTHA9cCgoKT0+e2MyKCk7KHtJOklVcn09dlkpLEF0dD1lPT5lLHppZT1lPT5lPT09bnVsbHx8dHlwZW9mIGUhPSJvYmplY3QiJiZ0eXBlb2YgZSE9ImZ1bmN0aW9uIixQVXI9e0hUTUw6MSxTVkc6MixNQVRITUw6M30sTlVyPShlLHQpPT50PT09dm9pZCAwP2U/Ll8kbGl0VHlwZSQhPT12b2lkIDA6ZT8uXyRsaXRUeXBlJD09PXQsRlVyPWU9PmU/Ll8kbGl0VHlwZSQ/LmghPW51bGwsT1VyPWU9PmU/Ll8kbGl0RGlyZWN0aXZlJCE9PXZvaWQgMCxSVXI9ZT0+ZT8uXyRsaXREaXJlY3RpdmUkLENpZT1lPT5lLnN0cmluZ3M9PT12b2lkIDAsRHR0PSgpPT5kb2N1bWVudC5jcmVhdGVDb21tZW50KCIiKSxkYz0oZSx0LHIpPT57bGV0IGk9ZS5fJEFBLnBhcmVudE5vZGUsYT10PT09dm9pZCAwP2UuXyRBQjp0Ll8kQUE7aWYocj09PXZvaWQgMCl7bGV0IG49aS5pbnNlcnRCZWZvcmUoRHR0KCksYSksbz1pLmluc2VydEJlZm9yZShEdHQoKSxhKTtyPW5ldyBJVXIobixvLGUsZS5vcHRpb25zKX1lbHNle2xldCBuPXIuXyRBQi5uZXh0U2libGluZyxvPXIuXyRBTSxzPW8hPT1lO2lmKHMpe2xldCBsO3IuXyRBUT8uKGUpLHIuXyRBTT1lLHIuXyRBUCE9PXZvaWQgMCYmKGw9ZS5fJEFVKSE9PW8uXyRBVSYmci5fJEFQKGwpfWlmKG4hPT1hfHxzKXtsZXQgbD1yLl8kQUE7Zm9yKDtsIT09bjspe2xldCBjPUF0dChsKS5uZXh0U2libGluZztBdHQoaSkuaW5zZXJ0QmVmb3JlKGwsYSksbD1jfX19cmV0dXJuIHJ9LHkyPShlLHQscj1lKT0+KGUuXyRBSSh0LHIpLGUpLEJVcj17fSxjZz0oZSx0PUJVcik9PmUuXyRBSD10LFRpZT1lPT5lLl8kQUgsZGc9ZT0+e2UuXyRBUigpLGUuXyRBQS5yZW1vdmUoKX0sX2llPWU9PntlLl8kQVIoKX19KTtmdW5jdGlvbiBIVXIoZSl7dGhpcy5fJEFOIT09dm9pZCAwPyhwQSh0aGlzKSx0aGlzLl8kQU09ZSxFdHQodGhpcykpOnRoaXMuXyRBTT1lfWZ1bmN0aW9uIHFVcihlLHQ9ITEscj0wKXtsZXQgaT10aGlzLl8kQUgsYT10aGlzLl8kQU47aWYoYSE9PXZvaWQgMCYmYS5zaXplIT09MClpZih0KWlmKEFycmF5LmlzQXJyYXkoaSkpZm9yKGxldCBuPXI7bjxpLmxlbmd0aDtuKyspdWcoaVtuXSwhMSkscEEoaVtuXSk7ZWxzZSBpIT1udWxsJiYodWcoaSwhMSkscEEoaSkpO2Vsc2UgdWcodGhpcyxlKX12YXIgdWcscEEsRXR0LGpVcixHbixoQT1wKCgpPT57THAoKTtjYygpO2NjKCk7dWc9KGUsdCk9PntsZXQgcj1lLl8kQU47aWYocj09PXZvaWQgMClyZXR1cm4hMTtmb3IobGV0IGkgb2YgcilpLl8kQU8/Lih0LCExKSx1ZyhpLHQpO3JldHVybiEwfSxwQT1lPT57bGV0IHQscjtkb3tpZigodD1lLl8kQU0pPT09dm9pZCAwKWJyZWFrO3I9dC5fJEFOLHIuZGVsZXRlKGUpLGU9dH13aGlsZShyPy5zaXplPT09MCl9LEV0dD1lPT57Zm9yKGxldCB0O3Q9ZS5fJEFNO2U9dCl7bGV0IHI9dC5fJEFOO2lmKHI9PT12b2lkIDApdC5fJEFOPXI9bmV3IFNldDtlbHNlIGlmKHIuaGFzKGUpKWJyZWFrO3IuYWRkKGUpLGpVcih0KX19O2pVcj1lPT57ZS50eXBlPT1lbC5DSElMRCYmKGUuXyRBUD8/PXFVcixlLl8kQVE/Pz1IVXIpfSxHbj1jbGFzcyBleHRlbmRzIEFve2NvbnN0cnVjdG9yKCl7c3VwZXIoLi4uYXJndW1lbnRzKSx0aGlzLl8kQU49dm9pZCAwfV8kQVQodCxyLGkpe3N1cGVyLl8kQVQodCxyLGkpLEV0dCh0aGlzKSx0aGlzLmlzQ29ubmVjdGVkPXQuXyRBVX1fJEFPKHQscj0hMCl7dCE9PXRoaXMuaXNDb25uZWN0ZWQmJih0aGlzLmlzQ29ubmVjdGVkPXQsdD90aGlzLnJlY29ubmVjdGVkPy4oKTp0aGlzLmRpc2Nvbm5lY3RlZD8uKCkpLHImJih1Zyh0aGlzLHQpLHBBKHRoaXMpKX1zZXRWYWx1ZSh0KXtpZihDaWUodGhpcy5fJEN0KSl0aGlzLl8kQ3QuXyRBSSh0LHRoaXMpO2Vsc2V7bGV0IHI9Wy4uLnRoaXMuXyRDdC5fJEFIXTtyW3RoaXMuXyRDaV09dCx0aGlzLl8kQ3QuXyRBSShyLHRoaXMsMCl9fWRpc2Nvbm5lY3RlZCgpe31yZWNvbm5lY3RlZCgpe319fSk7dmFyIGZBPXAoKCk9PntoQSgpfSk7dmFyIExpZSwkdHQsVlVyLEl0dD1wKCgpPT57U3MoKTtmQSgpO0xpZT1jbGFzcyBleHRlbmRzIEdue3Byb21pc2U7aGFzUHJvbWlzZVNldHRsZWQ9ITE7cmVuZGVyKHQpe3JldHVybiB0aGlzLnByb21pc2UhPT10JiYodGhpcy5wcm9taXNlPXQsdGhpcy5pc0Nvbm5lY3RlZCYmdGhpcy5oYW5kbGVQcm9taXNlKHQpKSxsMX1oYW5kbGVQcm9taXNlKHQpe3RoaXMuaGFzUHJvbWlzZVNldHRsZWQ9ITEsdC50aGVuKHI9Pnt0aGlzLnByb21pc2U9PT10JiYhdGhpcy5oYXNQcm9taXNlU2V0dGxlZCYmKHRoaXMuc2V0VmFsdWUociksdGhpcy5oYXNQcm9taXNlU2V0dGxlZD0hMCl9KS5jYXRjaChyPT57dGhpcy5wcm9taXNlPT09dCYmIXRoaXMuaGFzUHJvbWlzZVNldHRsZWQmJih0aGlzLnNldFZhbHVlKHIpLHRoaXMuaGFzUHJvbWlzZVNldHRsZWQ9ITApfSl9ZGlzY29ubmVjdGVkKCl7dGhpcy5oYXNQcm9taXNlU2V0dGxlZD0hMH1yZWNvbm5lY3RlZCgpe3RoaXMuaGFzUHJvbWlzZVNldHRsZWR8fHRoaXMuaGFuZGxlUHJvbWlzZSh0aGlzLnByb21pc2UpfX0sJHR0PW5pKExpZSksVlVyPWU9PiR0dChlKCkpfSk7dmFyIEFpZSxVVXIsUHR0PXAoKCk9PntTcygpO2ZBKCk7aDIoKTtBaWU9Y2xhc3MgZXh0ZW5kcyBHbntvYnNlcnZhYmxlO3N1Yj1udWxsO3JlbmRlcih0KXtyZXR1cm4gdGhpcy5vYnNlcnZhYmxlIT09dCYmKHRoaXMuc3ViPy51bnN1YnNjcmliZSgpLHRoaXMub2JzZXJ2YWJsZT10LHRoaXMuaXNDb25uZWN0ZWQmJnRoaXMuc3Vic2NyaWJlKHQpKSxsMX1zdWJzY3JpYmUodCl7dGhpcy5zdWI9dC5zdWJzY3JpYmUocj0+e3RoaXMuc2V0VmFsdWUocil9KX1kaXNjb25uZWN0ZWQoKXt0aGlzLnN1Yj8udW5zdWJzY3JpYmUoKX1yZWNvbm5lY3RlZCgpe3RoaXMuc3Vic2NyaWJlKHRoaXMub2JzZXJ2YWJsZSl9fSxVVXI9bmkoQWllKX0pO3ZhciBEaWUsTnR0LEZ0dD1wKCgpPT57U3MoKTtmQSgpO2gyKCk7RGllPWNsYXNzIGV4dGVuZHMgR257b2JzZXJ2YWJsZTt0ZW1wbGF0ZUZuO3N1Yj1udWxsO3JlbmRlcih0LHIpe3JldHVybih0aGlzLm9ic2VydmFibGUhPT10fHx0aGlzLnRlbXBsYXRlRm4hPT1yKSYmKHRoaXMuc3ViPy51bnN1YnNjcmliZSgpLHRoaXMub2JzZXJ2YWJsZT10LHRoaXMudGVtcGxhdGVGbj1yLHRoaXMuaXNDb25uZWN0ZWQmJnRoaXMuc3RhcnRTdWJzY3JpcHRpb24oKSksbDF9c3RhcnRTdWJzY3JpcHRpb24oKXt0aGlzLnN1Yj10aGlzLm9ic2VydmFibGUuc3Vic2NyaWJlKHQ9PntsZXQgcj10aGlzLnRlbXBsYXRlRm4odCk7dGhpcy5zZXRWYWx1ZShyKX0pfWRpc2Nvbm5lY3RlZCgpe3RoaXMuc3ViPy51bnN1YnNjcmliZSgpfXJlY29ubmVjdGVkKCl7dGhpcy5zdGFydFN1YnNjcmlwdGlvbigpfX0sTnR0PW5pKERpZSl9KTt2YXIgRWllLFNkLHpkLCRpZT1wKCgpPT57RWllPWFzeW5jKGUsdCk9Pntmb3IgYXdhaXQobGV0IHIgb2YgZSlpZihhd2FpdCB0KHIpPT09ITEpcmV0dXJufSxTZD1jbGFzc3tjb25zdHJ1Y3Rvcih0KXt0aGlzLkc9dH1kaXNjb25uZWN0KCl7dGhpcy5HPXZvaWQgMH1yZWNvbm5lY3QodCl7dGhpcy5HPXR9ZGVyZWYoKXtyZXR1cm4gdGhpcy5HfX0semQ9Y2xhc3N7Y29uc3RydWN0b3IoKXt0aGlzLlk9dm9pZCAwLHRoaXMuWj12b2lkIDB9Z2V0KCl7cmV0dXJuIHRoaXMuWX1wYXVzZSgpe3RoaXMuWT8/PW5ldyBQcm9taXNlKHQ9PnRoaXMuWj10KX1yZXN1bWUoKXt0aGlzLlo/LigpLHRoaXMuWT10aGlzLlo9dm9pZCAwfX19KTt2YXIgT3R0LFJ0dCxtQSxJaWUsQnR0PXAoKCk9PntjMigpO0xwKCk7aEEoKTskaWUoKTtjYygpO090dD1lPT4hemllKGUpJiZ0eXBlb2YgZS50aGVuPT0iZnVuY3Rpb24iLFJ0dD0xMDczNzQxODIzLG1BPWNsYXNzIGV4dGVuZHMgR257Y29uc3RydWN0b3IoKXtzdXBlciguLi5hcmd1bWVudHMpLHRoaXMuXyRDd3Q9UnR0LHRoaXMuXyRDYnQ9W10sdGhpcy5fJENLPW5ldyBTZCh0aGlzKSx0aGlzLl8kQ1g9bmV3IHpkfXJlbmRlciguLi50KXtyZXR1cm4gdC5maW5kKHI9PiFPdHQocikpPz9sMX11cGRhdGUodCxyKXtsZXQgaT10aGlzLl8kQ2J0LGE9aS5sZW5ndGg7dGhpcy5fJENidD1yO2xldCBuPXRoaXMuXyRDSyxvPXRoaXMuXyRDWDt0aGlzLmlzQ29ubmVjdGVkfHx0aGlzLmRpc2Nvbm5lY3RlZCgpO2ZvcihsZXQgcz0wO3M8ci5sZW5ndGgmJiEocz50aGlzLl8kQ3d0KTtzKyspe2xldCBsPXJbc107aWYoIU90dChsKSlyZXR1cm4gdGhpcy5fJEN3dD1zLGw7czxhJiZsPT09aVtzXXx8KHRoaXMuXyRDd3Q9UnR0LGE9MCxQcm9taXNlLnJlc29sdmUobCkudGhlbihhc3luYyBjPT57Zm9yKDtvLmdldCgpOylhd2FpdCBvLmdldCgpO2xldCB1PW4uZGVyZWYoKTtpZih1IT09dm9pZCAwKXtsZXQgZD11Ll8kQ2J0LmluZGV4T2YobCk7ZD4tMSYmZDx1Ll8kQ3d0JiYodS5fJEN3dD1kLHUuc2V0VmFsdWUoYykpfX0pKX1yZXR1cm4gbDF9ZGlzY29ubmVjdGVkKCl7dGhpcy5fJENLLmRpc2Nvbm5lY3QoKSx0aGlzLl8kQ1gucGF1c2UoKX1yZWNvbm5lY3RlZCgpe3RoaXMuXyRDSy5yZWNvbm5lY3QodGhpcyksdGhpcy5fJENYLnJlc3VtZSgpfX0sSWllPW5pKG1BKX0pO3ZhciBIdHQ9cCgoKT0+e0J0dCgpfSk7dmFyIEFwLFdVcixxdHQ9cCgoKT0+e2MyKCk7aEEoKTskaWUoKTtjYygpO0FwPWNsYXNzIGV4dGVuZHMgR257Y29uc3RydWN0b3IoKXtzdXBlciguLi5hcmd1bWVudHMpLHRoaXMuXyRDSz1uZXcgU2QodGhpcyksdGhpcy5fJENYPW5ldyB6ZH1yZW5kZXIodCxyKXtyZXR1cm4gbDF9dXBkYXRlKHQsW3IsaV0pe2lmKHRoaXMuaXNDb25uZWN0ZWR8fHRoaXMuZGlzY29ubmVjdGVkKCkscj09PXRoaXMuXyRDSilyZXR1cm4gbDE7dGhpcy5fJENKPXI7bGV0IGE9MCx7XyRDSzpuLF8kQ1g6b309dGhpcztyZXR1cm4gRWllKHIsYXN5bmMgcz0+e2Zvcig7by5nZXQoKTspYXdhaXQgby5nZXQoKTtsZXQgbD1uLmRlcmVmKCk7aWYobCE9PXZvaWQgMCl7aWYobC5fJENKIT09cilyZXR1cm4hMTtpIT09dm9pZCAwJiYocz1pKHMsYSkpLGwuY29tbWl0VmFsdWUocyxhKSxhKyt9cmV0dXJuITB9KSxsMX1jb21taXRWYWx1ZSh0LHIpe3RoaXMuc2V0VmFsdWUodCl9ZGlzY29ubmVjdGVkKCl7dGhpcy5fJENLLmRpc2Nvbm5lY3QoKSx0aGlzLl8kQ1gucGF1c2UoKX1yZWNvbm5lY3RlZCgpe3RoaXMuXyRDSy5yZWNvbm5lY3QodGhpcyksdGhpcy5fJENYLnJlc3VtZSgpfX0sV1VyPW5pKEFwKX0pO3ZhciBQaWUsanR0PXAoKCk9PntjYygpO3F0dCgpO0xwKCk7UGllPW5pKGNsYXNzIGV4dGVuZHMgQXB7Y29uc3RydWN0b3IoZSl7aWYoc3VwZXIoZSksZS50eXBlIT09ZWwuQ0hJTEQpdGhyb3cgRXJyb3IoImFzeW5jQXBwZW5kIGNhbiBvbmx5IGJlIHVzZWQgaW4gY2hpbGQgZXhwcmVzc2lvbnMiKX11cGRhdGUoZSx0KXtyZXR1cm4gdGhpcy5fJEN0dD1lLHN1cGVyLnVwZGF0ZShlLHQpfWNvbW1pdFZhbHVlKGUsdCl7dD09PTAmJl9pZSh0aGlzLl8kQ3R0KTtsZXQgcj1kYyh0aGlzLl8kQ3R0KTt5MihyLGUpfX0pfSk7dmFyIFZ0dD1wKCgpPT57anR0KCl9KTt2YXIgTmllLFV0dD1wKCgpPT57YzIoKTtjYygpO0xwKCk7TmllPW5pKGNsYXNzIGV4dGVuZHMgQW97Y29uc3RydWN0b3IoKXtzdXBlciguLi5hcmd1bWVudHMpLHRoaXMua2V5PXgxfXJlbmRlcihlLHQpe3JldHVybiB0aGlzLmtleT1lLHR9dXBkYXRlKGUsW3Qscl0pe3JldHVybiB0IT09dGhpcy5rZXkmJihjZyhlKSx0aGlzLmtleT10KSxyfX0pfSk7dmFyIFd0dD1wKCgpPT57VXR0KCl9KTt2YXIgR3R0LEZpZSxZdHQ9cCgoKT0+e2MyKCk7Y2MoKTtMcCgpO0d0dD0oZSx0LHIpPT57bGV0IGk9bmV3IE1hcDtmb3IobGV0IGE9dDthPD1yO2ErKylpLnNldChlW2FdLGEpO3JldHVybiBpfSxGaWU9bmkoY2xhc3MgZXh0ZW5kcyBBb3tjb25zdHJ1Y3RvcihlKXtpZihzdXBlcihlKSxlLnR5cGUhPT1lbC5DSElMRCl0aHJvdyBFcnJvcigicmVwZWF0KCkgY2FuIG9ubHkgYmUgdXNlZCBpbiB0ZXh0IGV4cHJlc3Npb25zIil9ZHQoZSx0LHIpe2xldCBpO3I9PT12b2lkIDA/cj10OnQhPT12b2lkIDAmJihpPXQpO2xldCBhPVtdLG49W10sbz0wO2ZvcihsZXQgcyBvZiBlKWFbb109aT9pKHMsbyk6byxuW29dPXIocyxvKSxvKys7cmV0dXJue3ZhbHVlczpuLGtleXM6YX19cmVuZGVyKGUsdCxyKXtyZXR1cm4gdGhpcy5kdChlLHQscikudmFsdWVzfXVwZGF0ZShlLFt0LHIsaV0pe2xldCBhPVRpZShlKSx7dmFsdWVzOm4sa2V5czpvfT10aGlzLmR0KHQscixpKTtpZighQXJyYXkuaXNBcnJheShhKSlyZXR1cm4gdGhpcy51dD1vLG47bGV0IHM9dGhpcy51dD8/PVtdLGw9W10sYyx1LGQ9MCxoPWEubGVuZ3RoLTEsZj0wLHg9bi5sZW5ndGgtMTtmb3IoO2Q8PWgmJmY8PXg7KWlmKGFbZF09PT1udWxsKWQrKztlbHNlIGlmKGFbaF09PT1udWxsKWgtLTtlbHNlIGlmKHNbZF09PT1vW2ZdKWxbZl09eTIoYVtkXSxuW2ZdKSxkKyssZisrO2Vsc2UgaWYoc1toXT09PW9beF0pbFt4XT15MihhW2hdLG5beF0pLGgtLSx4LS07ZWxzZSBpZihzW2RdPT09b1t4XSlsW3hdPXkyKGFbZF0sblt4XSksZGMoZSxsW3grMV0sYVtkXSksZCsrLHgtLTtlbHNlIGlmKHNbaF09PT1vW2ZdKWxbZl09eTIoYVtoXSxuW2ZdKSxkYyhlLGFbZF0sYVtoXSksaC0tLGYrKztlbHNlIGlmKGM9PT12b2lkIDAmJihjPUd0dChvLGYseCksdT1HdHQocyxkLGgpKSxjLmhhcyhzW2RdKSlpZihjLmhhcyhzW2hdKSl7bGV0IHY9dS5nZXQob1tmXSksYj12IT09dm9pZCAwP2Fbdl06bnVsbDtpZihiPT09bnVsbCl7bGV0IHk9ZGMoZSxhW2RdKTt5Mih5LG5bZl0pLGxbZl09eX1lbHNlIGxbZl09eTIoYixuW2ZdKSxkYyhlLGFbZF0sYiksYVt2XT1udWxsO2YrK31lbHNlIGRnKGFbaF0pLGgtLTtlbHNlIGRnKGFbZF0pLGQrKztmb3IoO2Y8PXg7KXtsZXQgdj1kYyhlLGxbeCsxXSk7eTIodixuW2ZdKSxsW2YrK109dn1mb3IoO2Q8PWg7KXtsZXQgdj1hW2QrK107diE9PW51bGwmJmRnKHYpfXJldHVybiB0aGlzLnV0PW8sY2coZSxsKSxsMX19KX0pO3ZhciBadHQ9cCgoKT0+e1l0dCgpfSk7dmFyIEVvPXt9O0ZlKEVvLHthc3luY0FwcGVuZDooKT0+UGllLGtleWVkOigpPT5OaWUscmVwZWF0OigpPT5GaWUscmVzb2x2ZTooKT0+JHR0LHJlc29sdmVFeGVjOigpPT5WVXIsc3Vic2NyaWJlOigpPT5VVXIsc3Vic2NyaWJlV2l0aFRlbXBsYXRlOigpPT5OdHQsdW50aWw6KCk9PklpZX0pO3ZhciBYdHQ9cCgoKT0+e0l0dCgpO1B0dCgpO0Z0dCgpO0h0dCgpO1Z0dCgpO1d0dCgpO1p0dCgpfSk7dmFyIG0seGU9cCgoKT0+e2N0dCgpO1NzKCk7aHR0KCk7bXR0KCk7Z3R0KCk7VHR0KCk7S3QoKTtMdHQoKTtYdHQoKTttPWxBLmdldFNpbmdsZXRvbigpfSk7dmFyIEM0LERlLEplPXAoKCk9Pnt4ZSgpO0M0PXtjb2xvcnM6e2xpZ2h0OntiZ1ByaW1hcnk6IiNmZmZmZmYiLGJnU2Vjb25kYXJ5OiIjZmFmYWZhIixiZ1RlcnRpYXJ5OiIjZjRmNGY1Iix0ZXh0UHJpbWFyeToiIzA5MDkwYiIsdGV4dFNlY29uZGFyeToiIzM3NDE1MSIsdGV4dE11dGVkOiIjNzE3MTdhIixib3JkZXJEZWZhdWx0OiIjZTVlN2ViIixib3JkZXJTdWJ0bGU6IiNmNGY0ZjUiLGJvcmRlclN0cm9uZzoiI2QxZDVkYiIsYWNjZW50UHJpbWFyeToiIzNiODJmNiIsYWNjZW50U3VjY2VzczoiIzIyYzU1ZSIsYWNjZW50V2FybmluZzoiI2Y1OWUwYiIsYWNjZW50RXJyb3I6IiNlZjQ0NDQifSxkYXJrOntiZ1ByaW1hcnk6IiMwOTA5MGIiLGJnU2Vjb25kYXJ5OiIjMGEwYTBhIixiZ1RlcnRpYXJ5OiIjMTgxODFiIix0ZXh0UHJpbWFyeToiI2ZhZmFmYSIsdGV4dFNlY29uZGFyeToiI2Q0ZDRkOCIsdGV4dE11dGVkOiIjYTFhMWFhIixib3JkZXJEZWZhdWx0OiIjMjcyNzJhIixib3JkZXJTdWJ0bGU6IiMxYTFhMWEiLGJvcmRlclN0cm9uZzoiIzNmM2Y0NiIsYWNjZW50UHJpbWFyeToiIzNiODJmNiIsYWNjZW50U3VjY2VzczoiIzIyYzU1ZSIsYWNjZW50V2FybmluZzoiI2Y1OWUwYiIsYWNjZW50RXJyb3I6IiNlZjQ0NDQifX0sc3BhY2luZzp7eHM6IjRweCIsc206IjhweCIsbWQ6IjEycHgiLGxnOiIxNnB4Iix4bDoiMjRweCIsIjJ4bCI6IjMycHgiLCIzeGwiOiI0OHB4In0scmFkaXVzOnt4czoiMnB4IixzbToiNHB4IixtZDoiNnB4IixsZzoiOHB4Iix4bDoiMTJweCIsZnVsbDoiOTk5cHgifSxzaGFkb3dzOnt4czoiMCAxcHggMnB4IDAgcmdiKDAgMCAwIC8gMC4wNSkiLHNtOiIwIDFweCAzcHggcmdiYSgwLCAwLCAwLCAwLjEpIixtZDoiMCAycHggOHB4IHJnYmEoMCwgMCwgMCwgMC4xNSkiLGxnOiIwIDRweCAxMnB4IHJnYmEoMCwgMCwgMCwgMC4xNSkifSx0cmFuc2l0aW9uczp7ZmFzdDoiMC4xcyIsZGVmYXVsdDoiMC4xNXMiLHNsb3c6IjAuMnMiLHNsb3dlcjoiMC4zcyJ9LGNvbnRyb2xIZWlnaHRzOntzbToiMzJweCIsbWQ6IjM2cHgiLGxnOiI0MHB4Iix4bDoiNDhweCJ9fSxEZT1vZWAKICA6aG9zdCB7CiAgICAvKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgICAgKiBTcGFjaW5nIFNjYWxlCiAgICAgKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCiAgICAtLWRlZXMtc3BhY2luZy14czogNHB4OwogICAgLS1kZWVzLXNwYWNpbmctc206IDhweDsKICAgIC0tZGVlcy1zcGFjaW5nLW1kOiAxMnB4OwogICAgLS1kZWVzLXNwYWNpbmctbGc6IDE2cHg7CiAgICAtLWRlZXMtc3BhY2luZy14bDogMjRweDsKICAgIC0tZGVlcy1zcGFjaW5nLTJ4bDogMzJweDsKICAgIC0tZGVlcy1zcGFjaW5nLTN4bDogNDhweDsKCiAgICAvKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgICAgKiBCb3JkZXIgUmFkaXVzIFNjYWxlCiAgICAgKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCiAgICAtLWRlZXMtcmFkaXVzLXhzOiAycHg7CiAgICAtLWRlZXMtcmFkaXVzLXNtOiA0cHg7CiAgICAtLWRlZXMtcmFkaXVzLW1kOiA2cHg7CiAgICAtLWRlZXMtcmFkaXVzLWxnOiA4cHg7CiAgICAtLWRlZXMtcmFkaXVzLXhsOiAxMnB4OwogICAgLS1kZWVzLXJhZGl1cy1mdWxsOiA5OTlweDsKCiAgICAvKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgICAgKiBTaGFkb3cgRWxldmF0aW9uIFNjYWxlCiAgICAgKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCiAgICAtLWRlZXMtc2hhZG93LXhzOiAwIDFweCAycHggMCByZ2IoMCAwIDAgLyAwLjA1KTsKICAgIC0tZGVlcy1zaGFkb3ctc206IDAgMXB4IDNweCByZ2JhKDAsIDAsIDAsIDAuMSk7CiAgICAtLWRlZXMtc2hhZG93LW1kOiAwIDJweCA4cHggcmdiYSgwLCAwLCAwLCAwLjE1KTsKICAgIC0tZGVlcy1zaGFkb3ctbGc6IDAgNHB4IDEycHggcmdiYSgwLCAwLCAwLCAwLjE1KTsKCiAgICAvKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgICAgKiBUcmFuc2l0aW9uIER1cmF0aW9uIFNjYWxlCiAgICAgKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCiAgICAtLWRlZXMtdHJhbnNpdGlvbi1mYXN0OiAwLjFzOwogICAgLS1kZWVzLXRyYW5zaXRpb24tZGVmYXVsdDogMC4xNXM7CiAgICAtLWRlZXMtdHJhbnNpdGlvbi1zbG93OiAwLjJzOwogICAgLS1kZWVzLXRyYW5zaXRpb24tc2xvd2VyOiAwLjNzOwoKICAgIC8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgICAqIENvbnRyb2wgSGVpZ2h0IFNjYWxlCiAgICAgKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCiAgICAtLWRlZXMtY29udHJvbC1oZWlnaHQtc206IDMycHg7CiAgICAtLWRlZXMtY29udHJvbC1oZWlnaHQtbWQ6IDM2cHg7CiAgICAtLWRlZXMtY29udHJvbC1oZWlnaHQtbGc6IDQwcHg7CiAgICAtLWRlZXMtY29udHJvbC1oZWlnaHQteGw6IDQ4cHg7CiAgfQpgfSk7dmFyIFF0dD1wKCgpPT57fSk7dmFyIE9pZT1wKCgpPT57dzIoKTt3MigpfSk7dmFyIEp0dD1wKCgpPT57fSk7dmFyIEt0dD1wKCgpPT57fSk7dmFyIGVydD1wKCgpPT57fSk7dmFyIHRydD1wKCgpPT57fSk7dmFyIFJpZT17fTt2YXIgQmllPXAoKCk9PntKdHQoKTtLdHQoKTtlcnQoKTt0cnQoKX0pO3ZhciBycnQ9cCgoKT0+e0JpZSgpO2dBKCl9KTt2YXIgaXJ0PXAoKCk9Pnt3MigpfSk7dmFyIGFydD1wKCgpPT57fSk7dmFyIG5ydD1wKCgpPT57dzIoKX0pO3ZhciBvcnQ9cCgoKT0+e3cyKCl9KTt2YXIgc3J0PXAoKCk9Pnt9KTt2YXIgbHJ0PXAoKCk9Pnt9KTt2YXIgY3J0PXAoKCk9Pnt9KTt2YXIgSGllPXt9O3ZhciBiQT1wKCgpPT57aXJ0KCk7YXJ0KCk7bnJ0KCk7b3J0KCk7c3J0KCk7bHJ0KCk7Y3J0KCl9KTt2YXIgZHJ0PXAoKCk9PntiQSgpO09pZSgpfSk7dmFyIHVydD1wKCgpPT57Z0EoKTtiQSgpfSk7dmFyIHBydD1wKCgpPT57fSk7dmFyIGhydD1wKCgpPT57fSk7dmFyIHFpZT17fTt2YXIgZ0E9cCgoKT0+e1F0dCgpO09pZSgpO3JydCgpO2RydCgpO3VydCgpO3BydCgpO2hydCgpfSk7dmFyIGZydD1wKCgpPT57fSk7dmFyIG1ydD1wKCgpPT57fSk7dmFyIGppZT17fTt2YXIgZ3J0PXAoKCk9PntmcnQoKTttcnQoKX0pO3ZhciBicnQ9cCgoKT0+e30pO3ZhciB2cnQ9cCgoKT0+e30pO3ZhciBWaWU9e307dmFyIHhydD1wKCgpPT57YnJ0KCk7dnJ0KCl9KTt2YXIgVWllPXt9O3ZhciB5cnQ9cCgoKT0+e30pO3ZhciBXaWU9cCgoKT0+e3cyKCl9KTt2YXIgd3J0PXAoKCk9Pnt3MigpfSk7dmFyIE1ydD1wKCgpPT57V2llKCl9KTt2YXIgR2llPXt9O3ZhciBrcnQ9cCgoKT0+e1dpZSgpO3dydCgpO01ydCgpfSk7dmFyIFNydD1wKCgpPT57fSk7dmFyIHpydD1wKCgpPT57fSk7dmFyIFlpZT17fTt2YXIgQ3J0PXAoKCk9PntTcnQoKTt6cnQoKX0pO3ZhciBaaWU9cCgoKT0+e30pO3ZhciBYaWUsVHJ0PXAoKCk9PntaaWUoKTtYaWU9Y2xhc3N7fX0pO3ZhciBfcnQ9cCgoKT0+e30pO3ZhciBMcnQ9cCgoKT0+e30pO3ZhciBBcnQ9cCgoKT0+e30pO3ZhciBEcnQ9cCgoKT0+e30pO3ZhciBFcnQ9cCgoKT0+e30pO3ZhciAkcnQ9cCgoKT0+e30pO3ZhciBJcnQ9cCgoKT0+e30pO3ZhciBQcnQ9cCgoKT0+e30pO3ZhciBOcnQ9cCgoKT0+e30pO3ZhciBGcnQ9cCgoKT0+e30pO3ZhciB2QT17fTtGZSh2QSx7SUNuYW1lRGVzY3JpcHRvcjooKT0+WGllfSk7dmFyIE9ydD1wKCgpPT57WmllKCk7VHJ0KCk7X3J0KCk7THJ0KCk7QXJ0KCk7RHJ0KCk7RXJ0KCk7JHJ0KCk7SXJ0KCk7UHJ0KCk7TnJ0KCk7RnJ0KCl9KTt2YXIgUWllPXAoKCk9Pnt9KTt2YXIgUnJ0PXAoKCk9PntRaWUoKX0pO3ZhciBKaWU9e307dmFyIEJydD1wKCgpPT57UnJ0KCk7UWllKCl9KTt2YXIgS2llPXt9O3ZhciBIcnQ9cCgoKT0+e30pO3ZhciBxcnQ9cCgoKT0+e30pO3ZhciBqcnQ9cCgoKT0+e30pO3ZhciBWcnQ9cCgoKT0+e30pO3ZhciBlYWU9e307dmFyIFVydD1wKCgpPT57cXJ0KCk7anJ0KCk7VnJ0KCl9KTt2YXIgV3J0PXAoKCk9Pnt9KTt2YXIgdGFlPXt9O0ZlKHRhZSx7YnVzaW5lc3M6KCk9PnFpZSxjb2RlOigpPT5qaWUsY29udGFpbmVyOigpPT5WaWUsY29udGVudDooKT0+R2llLGRhdGFiYXNlOigpPT5SaWUsZGVzY3JpcHRvcnM6KCk9PlVpZSxmaW5hbmNlOigpPT5IaWUsZ2VuZXJhbDooKT0+WWllLG5ldHdvcms6KCk9PnZBLHNhYXM6KCk9PkppZSxzdG9yYWdlOigpPT5LaWUsd2Vic2l0ZTooKT0+ZWFlfSk7dmFyIHcyPXAoKCk9PntnQSgpO2dydCgpO3hydCgpO0JpZSgpO3lydCgpO2JBKCk7a3J0KCk7Q3J0KCk7T3J0KCk7QnJ0KCk7SHJ0KCk7VXJ0KCk7V3J0KCl9KTt2YXIgd2k9cCgoKT0+e0VpKCk7dzIoKX0pO3ZhciBHcnQsWXJ0PXAoKCk9Pnt4ZSgpO3dpKCk7TWkoKTtHcnQ9KCk9PkNgCjxzdHlsZT4KICAud2l0aE1hcmdpbiB7CiAgICBkaXNwbGF5OiBibG9jazsKICAgIG1hcmdpbjogMjBweDsKICB9CiAgLmRlbW8tY29udGFpbmVyIHsKICAgIGRpc3BsYXk6IGZsZXg7CiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgZ2FwOiAyMHB4OwogICAgcGFkZGluZzogMjBweDsKICAgIG1pbi1oZWlnaHQ6IDQwMHB4OwogIH0KICAuZGVtby1hcmVhIHsKICAgIHBhZGRpbmc6IDQwcHg7CiAgICBib3JkZXItcmFkaXVzOiA4cHg7CiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7CiAgICBjdXJzb3I6IGNvbnRleHQtbWVudTsKICAgIHRyYW5zaXRpb246IGJhY2tncm91bmQgMC4yczsKICB9CiAgLmRlbW8tYXJlYTpob3ZlciB7CiAgICBiYWNrZ3JvdW5kOiByZ2JhKDAsIDAsIDAsIDAuMDIpOwogIH0KPC9zdHlsZT4KPGRpdiBjbGFzcz0iZGVtby1jb250YWluZXIiPgogIDxkZWVzLXBhbmVsIGhlYWRpbmc9IkJhc2ljIENvbnRleHQgTWVudSB3aXRoIE5lc3RlZCBTdWJtZW51cyI+CiAgICA8ZGl2IGNsYXNzPSJkZW1vLWFyZWEiIEBjb250ZXh0bWVudT0ke2U9PntTci5vcGVuQ29udGV4dE1lbnVXaXRoT3B0aW9ucyhlLFt7bmFtZToiRmlsZSIsaWNvbk5hbWU6ImZpbGVUZXh0IixhY3Rpb246YXN5bmMoKT0+e30sc3VibWVudTpbe25hbWU6Ik5ldyIsaWNvbk5hbWU6ImZpbGVQbHVzIixzaG9ydGN1dDoiQ21kK04iLGFjdGlvbjphc3luYygpPT5jb25zb2xlLmxvZygiTmV3IGZpbGUiKX0se25hbWU6Ik9wZW4iLGljb25OYW1lOiJmb2xkZXJPcGVuIixzaG9ydGN1dDoiQ21kK08iLGFjdGlvbjphc3luYygpPT5jb25zb2xlLmxvZygiT3BlbiBmaWxlIil9LHtuYW1lOiJTYXZlIixpY29uTmFtZToic2F2ZSIsc2hvcnRjdXQ6IkNtZCtTIixhY3Rpb246YXN5bmMoKT0+Y29uc29sZS5sb2coIlNhdmUiKX0se2RpdmlkZXI6ITB9LHtuYW1lOiJFeHBvcnQgYXMgUERGIixpY29uTmFtZToiZG93bmxvYWQiLGFjdGlvbjphc3luYygpPT5jb25zb2xlLmxvZygiRXhwb3J0IFBERiIpfSx7bmFtZToiRXhwb3J0IGFzIEhUTUwiLGljb25OYW1lOiJjb2RlIixhY3Rpb246YXN5bmMoKT0+Y29uc29sZS5sb2coIkV4cG9ydCBIVE1MIil9XX0se25hbWU6IkVkaXQiLGljb25OYW1lOiJlZGl0MyIsYWN0aW9uOmFzeW5jKCk9Pnt9LHN1Ym1lbnU6W3tuYW1lOiJDdXQiLGljb25OYW1lOiJzY2lzc29ycyIsc2hvcnRjdXQ6IkNtZCtYIixhY3Rpb246YXN5bmMoKT0+Y29uc29sZS5sb2coIkN1dCIpfSx7bmFtZToiQ29weSIsaWNvbk5hbWU6ImNvcHkiLHNob3J0Y3V0OiJDbWQrQyIsYWN0aW9uOmFzeW5jKCk9PmNvbnNvbGUubG9nKCJDb3B5Iil9LHtuYW1lOiJQYXN0ZSIsaWNvbk5hbWU6ImNsaXBib2FyZCIsc2hvcnRjdXQ6IkNtZCtWIixhY3Rpb246YXN5bmMoKT0+Y29uc29sZS5sb2coIlBhc3RlIil9LHtkaXZpZGVyOiEwfSx7bmFtZToiRmluZCIsaWNvbk5hbWU6InNlYXJjaCIsc2hvcnRjdXQ6IkNtZCtGIixhY3Rpb246YXN5bmMoKT0+Y29uc29sZS5sb2coIkZpbmQiKX0se25hbWU6IlJlcGxhY2UiLGljb25OYW1lOiJyZXBlYXQiLHNob3J0Y3V0OiJDbWQrSCIsYWN0aW9uOmFzeW5jKCk9PmNvbnNvbGUubG9nKCJSZXBsYWNlIil9XX0se25hbWU6IlZpZXciLGljb25OYW1lOiJleWUiLGFjdGlvbjphc3luYygpPT57fSxzdWJtZW51Olt7bmFtZToiWm9vbSBJbiIsaWNvbk5hbWU6Inpvb21JbiIsc2hvcnRjdXQ6IkNtZCsrIixhY3Rpb246YXN5bmMoKT0+Y29uc29sZS5sb2coIlpvb20gaW4iKX0se25hbWU6Ilpvb20gT3V0IixpY29uTmFtZToiem9vbU91dCIsc2hvcnRjdXQ6IkNtZCstIixhY3Rpb246YXN5bmMoKT0+Y29uc29sZS5sb2coIlpvb20gb3V0Iil9LHtuYW1lOiJSZXNldCBab29tIixpY29uTmFtZToibWF4aW1pemUyIixzaG9ydGN1dDoiQ21kKzAiLGFjdGlvbjphc3luYygpPT5jb25zb2xlLmxvZygiUmVzZXQgem9vbSIpfSx7ZGl2aWRlcjohMH0se25hbWU6IkZ1bGwgU2NyZWVuIixpY29uTmFtZToibWF4aW1pemUiLHNob3J0Y3V0OiJGMTEiLGFjdGlvbjphc3luYygpPT5jb25zb2xlLmxvZygiRnVsbCBzY3JlZW4iKX1dfSx7ZGl2aWRlcjohMH0se25hbWU6IlNldHRpbmdzIixpY29uTmFtZToic2V0dGluZ3MiLGFjdGlvbjphc3luYygpPT5jb25zb2xlLmxvZygiU2V0dGluZ3MiKX0se25hbWU6IkhlbHAiLGljb25OYW1lOiJoZWxwQ2lyY2xlIixhY3Rpb246YXN5bmMoKT0+e30sc3VibWVudTpbe25hbWU6IkRvY3VtZW50YXRpb24iLGljb25OYW1lOiJib29rIixhY3Rpb246YXN5bmMoKT0+Y29uc29sZS5sb2coIkRvY3VtZW50YXRpb24iKX0se25hbWU6IktleWJvYXJkIFNob3J0Y3V0cyIsaWNvbk5hbWU6ImtleWJvYXJkIixhY3Rpb246YXN5bmMoKT0+Y29uc29sZS5sb2coIlNob3J0Y3V0cyIpfSx7ZGl2aWRlcjohMH0se25hbWU6IkFib3V0IixpY29uTmFtZToiaW5mbyIsYWN0aW9uOmFzeW5jKCk9PmNvbnNvbGUubG9nKCJBYm91dCIpfV19XSl9fT4KICAgICAgPGgzPlJpZ2h0LWNsaWNrIGFueXdoZXJlIGluIHRoaXMgYXJlYTwvaDM+CiAgICAgIDxwPkEgY29udGV4dCBtZW51IHdpdGggbmVzdGVkIHN1Ym1lbnVzIHdpbGwgYXBwZWFyPC9wPgogICAgPC9kaXY+CiAgPC9kZWVzLXBhbmVsPgogIDxkZWVzLXBhbmVsIGhlYWRpbmc9IkNvbXBvbmVudC1TcGVjaWZpYyBDb250ZXh0IE1lbnUiPgogICAgPGRlZXMtYnV0dG9uIHN0eWxlPSJtYXJnaW46IDIwcHg7IiBAY29udGV4dG1lbnU9JHtlPT57U3Iub3BlbkNvbnRleHRNZW51V2l0aE9wdGlvbnMoZSxbe25hbWU6IkJ1dHRvbiBBY3Rpb25zIixpY29uTmFtZToibW91c2VQb2ludGVyIixhY3Rpb246YXN5bmMoKT0+e30sc3VibWVudTpbe25hbWU6IkNsaWNrIixpY29uTmFtZToibW91c2UiLGFjdGlvbjphc3luYygpPT5jb25zb2xlLmxvZygiQ2xpY2sgYWN0aW9uIil9LHtuYW1lOiJEb3VibGUgQ2xpY2siLGljb25OYW1lOiJ6YXAiLGFjdGlvbjphc3luYygpPT5jb25zb2xlLmxvZygiRG91YmxlIGNsaWNrIil9LHtuYW1lOiJMb25nIFByZXNzIixpY29uTmFtZToiY2xvY2siLGFjdGlvbjphc3luYygpPT5jb25zb2xlLmxvZygiTG9uZyBwcmVzcyIpfV19LHtuYW1lOiJCdXR0b24gU3RhdGUiLGljb25OYW1lOiJ0b2dnbGVMZWZ0IixhY3Rpb246YXN5bmMoKT0+e30sc3VibWVudTpbe25hbWU6IkVuYWJsZSIsaWNvbk5hbWU6ImNoZWNrQ2lyY2xlIixhY3Rpb246YXN5bmMoKT0+Y29uc29sZS5sb2coIkVuYWJsZSIpfSx7bmFtZToiRGlzYWJsZSIsaWNvbk5hbWU6InhDaXJjbGUiLGFjdGlvbjphc3luYygpPT5jb25zb2xlLmxvZygiRGlzYWJsZSIpfSx7ZGl2aWRlcjohMH0se25hbWU6IlNob3ciLGljb25OYW1lOiJleWUiLGFjdGlvbjphc3luYygpPT5jb25zb2xlLmxvZygiU2hvdyIpfSx7bmFtZToiSGlkZSIsaWNvbk5hbWU6ImV5ZU9mZiIsYWN0aW9uOmFzeW5jKCk9PmNvbnNvbGUubG9nKCJIaWRlIil9XX0se2RpdmlkZXI6ITB9LHtuYW1lOiJEaXNhYmxlZCBBY3Rpb24iLGljb25OYW1lOiJiYW4iLGRpc2FibGVkOiEwLGFjdGlvbjphc3luYygpPT5jb25zb2xlLmxvZygiVGhpcyBzaG91bGQgbm90IHJ1biIpfSx7bmFtZToiUHJvcGVydGllcyIsaWNvbk5hbWU6InNldHRpbmdzIixhY3Rpb246YXN5bmMoKT0+Y29uc29sZS5sb2coIkJ1dHRvbiBwcm9wZXJ0aWVzIil9XSl9fT5SaWdodC1jbGljayBvbiB0aGlzIGJ1dHRvbjwvZGVlcy1idXR0b24+CiAgPC9kZWVzLXBhbmVsPgoKICA8ZGVlcy1wYW5lbCBoZWFkaW5nPSJBZHZhbmNlZCBDb250ZXh0IE1lbnUgRXhhbXBsZSI+CiAgICA8ZGl2IGNsYXNzPSJkZW1vLWFyZWEiIEBjb250ZXh0bWVudT0ke2U9PntTci5vcGVuQ29udGV4dE1lbnVXaXRoT3B0aW9ucyhlLFt7bmFtZToiRm9ybWF0IixpY29uTmFtZToidHlwZSIsYWN0aW9uOmFzeW5jKCk9Pnt9LHN1Ym1lbnU6W3tuYW1lOiJCb2xkIixpY29uTmFtZToiYm9sZCIsc2hvcnRjdXQ6IkNtZCtCIixhY3Rpb246YXN5bmMoKT0+Y29uc29sZS5sb2coIkJvbGQiKX0se25hbWU6Ikl0YWxpYyIsaWNvbk5hbWU6Iml0YWxpYyIsc2hvcnRjdXQ6IkNtZCtJIixhY3Rpb246YXN5bmMoKT0+Y29uc29sZS5sb2coIkl0YWxpYyIpfSx7bmFtZToiVW5kZXJsaW5lIixpY29uTmFtZToidW5kZXJsaW5lIixzaG9ydGN1dDoiQ21kK1UiLGFjdGlvbjphc3luYygpPT5jb25zb2xlLmxvZygiVW5kZXJsaW5lIil9LHtkaXZpZGVyOiEwfSx7bmFtZToiRm9udCBTaXplIixpY29uTmFtZToidHlwZSIsYWN0aW9uOmFzeW5jKCk9PmNvbnNvbGUubG9nKCJGb250IHNpemUgbWVudSIpfSx7bmFtZToiRm9udCBDb2xvciIsaWNvbk5hbWU6InBhbGV0dGUiLGFjdGlvbjphc3luYygpPT5jb25zb2xlLmxvZygiRm9udCBjb2xvciBtZW51Iil9XX0se25hbWU6IlRyYW5zZm9ybSIsaWNvbk5hbWU6InNodWZmbGUiLGFjdGlvbjphc3luYygpPT57fSxzdWJtZW51Olt7bmFtZToiVG8gVXBwZXJjYXNlIixpY29uTmFtZToiYXJyb3dVcCIsYWN0aW9uOmFzeW5jKCk9PmNvbnNvbGUubG9nKCJVcHBlcmNhc2UiKX0se25hbWU6IlRvIExvd2VyY2FzZSIsaWNvbk5hbWU6ImFycm93RG93biIsYWN0aW9uOmFzeW5jKCk9PmNvbnNvbGUubG9nKCJMb3dlcmNhc2UiKX0se25hbWU6IkNhcGl0YWxpemUiLGljb25OYW1lOiJ0eXBlIixhY3Rpb246YXN5bmMoKT0+Y29uc29sZS5sb2coIkNhcGl0YWxpemUiKX1dfSx7ZGl2aWRlcjohMH0se25hbWU6IkRlbGV0ZSIsaWNvbk5hbWU6InRyYXNoMiIsYWN0aW9uOmFzeW5jKCk9PmNvbnNvbGUubG9nKCJEZWxldGUiKX1dKX19PgogICAgICA8aDM+QWR2YW5jZWQgTmVzdGVkIE1lbnUgRXhhbXBsZTwvaDM+CiAgICAgIDxwPlRoaXMgc2hvd3MgZGVlcGx5IG5lc3RlZCBzdWJtZW51cyBhbmQgdmFyaW91cyBmb3JtYXR0aW5nIG9wdGlvbnM8L3A+CiAgICA8L2Rpdj4KICA8L2RlZXMtcGFuZWw+CiAgCiAgPGRlZXMtcGFuZWwgaGVhZGluZz0iU3RhdGljIENvbnRleHQgTWVudSAoQWx3YXlzIFZpc2libGUpIj4KICAgIDxkZWVzLWNvbnRleHRtZW51CiAgICAgIGNsYXNzPSJ3aXRoTWFyZ2luIgogICAgICAubWVudUl0ZW1zPSR7W3tuYW1lOiJQcm9qZWN0IixpY29uTmFtZToiZm9sZGVyIixhY3Rpb246YXN5bmMoKT0+e30sc3VibWVudTpbe25hbWU6Ik5ldyBQcm9qZWN0IixpY29uTmFtZToiZm9sZGVyUGx1cyIsc2hvcnRjdXQ6IkNtZCtTaGlmdCtOIixhY3Rpb246YXN5bmMoKT0+Y29uc29sZS5sb2coIk5ldyBwcm9qZWN0Iil9LHtuYW1lOiJPcGVuIFByb2plY3QiLGljb25OYW1lOiJmb2xkZXJPcGVuIixzaG9ydGN1dDoiQ21kK1NoaWZ0K08iLGFjdGlvbjphc3luYygpPT5jb25zb2xlLmxvZygiT3BlbiBwcm9qZWN0Iil9LHtkaXZpZGVyOiEwfSx7bmFtZToiUmVjZW50IFByb2plY3RzIixpY29uTmFtZToiY2xvY2siLGFjdGlvbjphc3luYygpPT57fSxzdWJtZW51Olt7bmFtZToiUHJvamVjdCBBbHBoYSIsYWN0aW9uOmFzeW5jKCk9PmNvbnNvbGUubG9nKCJPcGVuIEFscGhhIil9LHtuYW1lOiJQcm9qZWN0IEJldGEiLGFjdGlvbjphc3luYygpPT5jb25zb2xlLmxvZygiT3BlbiBCZXRhIil9LHtuYW1lOiJQcm9qZWN0IEdhbW1hIixhY3Rpb246YXN5bmMoKT0+Y29uc29sZS5sb2coIk9wZW4gR2FtbWEiKX1dfV19LHtuYW1lOiJUb29scyIsaWNvbk5hbWU6InRvb2wiLGFjdGlvbjphc3luYygpPT57fSxzdWJtZW51Olt7bmFtZToiVGVybWluYWwiLGljb25OYW1lOiJ0ZXJtaW5hbCIsc2hvcnRjdXQ6IkNtZCtUIixhY3Rpb246YXN5bmMoKT0+Y29uc29sZS5sb2coIlRlcm1pbmFsIil9LHtuYW1lOiJDb25zb2xlIixpY29uTmFtZToibW9uaXRvciIsc2hvcnRjdXQ6IkNtZCtLIixhY3Rpb246YXN5bmMoKT0+Y29uc29sZS5sb2coIkNvbnNvbGUiKX0se2RpdmlkZXI6ITB9LHtuYW1lOiJFeHRlbnNpb25zIixpY29uTmFtZToicGFja2FnZSIsYWN0aW9uOmFzeW5jKCk9PmNvbnNvbGUubG9nKCJFeHRlbnNpb25zIil9XX0se2RpdmlkZXI6ITB9LHtuYW1lOiJQcmVmZXJlbmNlcyIsaWNvbk5hbWU6InNsaWRlcnMiLGFjdGlvbjphc3luYygpPT5jb25zb2xlLmxvZygiUHJlZmVyZW5jZXMiKX1dfQogICAgPjwvZGVlcy1jb250ZXh0bWVudT4KICA8L2RlZXMtcGFuZWw+CjwvZGl2PgpgfSk7dmFyIHBnLHVjLCRvLHBjPXAoKCk9Pnt4ZSgpO3hvKCk7cGc9ZnVuY3Rpb24oZSx0LHIsaSxhLG4pe2Z1bmN0aW9uIG8oeSl7aWYoeSE9PXZvaWQgMCYmdHlwZW9mIHkhPSJmdW5jdGlvbiIpdGhyb3cgbmV3IFR5cGVFcnJvcigiRnVuY3Rpb24gZXhwZWN0ZWQiKTtyZXR1cm4geX1mb3IodmFyIHM9aS5raW5kLGw9cz09PSJnZXR0ZXIiPyJnZXQiOnM9PT0ic2V0dGVyIj8ic2V0IjoidmFsdWUiLGM9IXQmJmU/aS5zdGF0aWM/ZTplLnByb3RvdHlwZTpudWxsLHU9dHx8KGM/T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihjLGkubmFtZSk6e30pLGQsaD0hMSxmPXIubGVuZ3RoLTE7Zj49MDtmLS0pe3ZhciB4PXt9O2Zvcih2YXIgdiBpbiBpKXhbdl09dj09PSJhY2Nlc3MiP3t9Omlbdl07Zm9yKHZhciB2IGluIGkuYWNjZXNzKXguYWNjZXNzW3ZdPWkuYWNjZXNzW3ZdO3guYWRkSW5pdGlhbGl6ZXI9ZnVuY3Rpb24oeSl7aWYoaCl0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgYWRkIGluaXRpYWxpemVycyBhZnRlciBkZWNvcmF0aW9uIGhhcyBjb21wbGV0ZWQiKTtuLnB1c2gobyh5fHxudWxsKSl9O3ZhciBiPSgwLHJbZl0pKHM9PT0iYWNjZXNzb3IiP3tnZXQ6dS5nZXQsc2V0OnUuc2V0fTp1W2xdLHgpO2lmKHM9PT0iYWNjZXNzb3IiKXtpZihiPT09dm9pZCAwKWNvbnRpbnVlO2lmKGI9PT1udWxsfHx0eXBlb2YgYiE9Im9iamVjdCIpdGhyb3cgbmV3IFR5cGVFcnJvcigiT2JqZWN0IGV4cGVjdGVkIik7KGQ9byhiLmdldCkpJiYodS5nZXQ9ZCksKGQ9byhiLnNldCkpJiYodS5zZXQ9ZCksKGQ9byhiLmluaXQpKSYmYS51bnNoaWZ0KGQpfWVsc2UoZD1vKGIpKSYmKHM9PT0iZmllbGQiP2EudW5zaGlmdChkKTp1W2xdPWQpfWMmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShjLGkubmFtZSx1KSxoPSEwfSx1Yz1mdW5jdGlvbihlLHQscil7Zm9yKHZhciBpPWFyZ3VtZW50cy5sZW5ndGg+MixhPTA7YTx0Lmxlbmd0aDthKyspcj1pP3RbYV0uY2FsbChlLHIpOnRbYV0uY2FsbChlKTtyZXR1cm4gaT9yOnZvaWQgMH0sJG89KCgpPT57bGV0IGU9W3llKCJkZWVzLXdpbmRvd2xheWVyIildLHQscj1bXSxpLGE9emUsbixvPVtdLHM9W10sbCxjPVtdLHU9W10sZCxoPVtdLGY9W10seCx2PVtdLGI9W107dmFyIHk9Y2xhc3MgZXh0ZW5kcyBhe3N0YXRpY3tpPXRoaXN9c3RhdGlje2xldCB3PXR5cGVvZiBTeW1ib2w9PSJmdW5jdGlvbiImJlN5bWJvbC5tZXRhZGF0YT9PYmplY3QuY3JlYXRlKGFbU3ltYm9sLm1ldGFkYXRhXT8/bnVsbCk6dm9pZCAwO249W2ZlKCldLGw9W2ZlKCldLGQ9W2ZlKCldLHg9W2ooe3R5cGU6Qm9vbGVhbn0pXSxwZyh0aGlzLG51bGwsbix7a2luZDoiYWNjZXNzb3IiLG5hbWU6Im9wdGlvbnMiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOms9PiJvcHRpb25zImluIGssZ2V0Oms9Pmsub3B0aW9ucyxzZXQ6KGssTyk9PntrLm9wdGlvbnM9T319LG1ldGFkYXRhOnd9LG8scykscGcodGhpcyxudWxsLGwse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJiYWNrZHJvcFpJbmRleCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6az0+ImJhY2tkcm9wWkluZGV4ImluIGssZ2V0Oms9PmsuYmFja2Ryb3BaSW5kZXgsc2V0OihrLE8pPT57ay5iYWNrZHJvcFpJbmRleD1PfX0sbWV0YWRhdGE6d30sYyx1KSxwZyh0aGlzLG51bGwsZCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImNvbnRlbnRaSW5kZXgiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOms9PiJjb250ZW50WkluZGV4ImluIGssZ2V0Oms9PmsuY29udGVudFpJbmRleCxzZXQ6KGssTyk9PntrLmNvbnRlbnRaSW5kZXg9T319LG1ldGFkYXRhOnd9LGgsZikscGcodGhpcyxudWxsLHgse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJ2aXNpYmxlIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczprPT4idmlzaWJsZSJpbiBrLGdldDprPT5rLnZpc2libGUsc2V0OihrLE8pPT57ay52aXNpYmxlPU99fSxtZXRhZGF0YTp3fSx2LGIpLHBnKG51bGwsdD17dmFsdWU6aX0sZSx7a2luZDoiY2xhc3MiLG5hbWU6aS5uYW1lLG1ldGFkYXRhOnd9LG51bGwscikseT1pPXQudmFsdWUsdyYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGksU3ltYm9sLm1ldGFkYXRhLHtlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMCx2YWx1ZTp3fSl9c3RhdGljIGRlbW89KCk9PkNgPGRlZXMtd2luZG93bGF5ZXI+PC9kZWVzLXdpbmRvd2xheWVyPmA7c3RhdGljIGRlbW9Hcm91cHM9WyJPdmVybGF5Il07c3RhdGljIGFzeW5jIGNyZWF0ZUFuZFNob3codyl7bGV0IGs9a3QuRG9tVG9vbHMuZ2V0R2xvYmFsRG9tVG9vbHNTeW5jKCksTz1uZXcgeTtyZXR1cm4gTy5vcHRpb25zPXsuLi5PLm9wdGlvbnMsLi4ud30sZG9jdW1lbnQuYm9keS5hcHBlbmQoTyksYXdhaXQgay5jb252ZW5pZW5jZS5zbWFydGRlbGF5LmRlbGF5Rm9yKDApLE8uc2hvdygpLE99I2U9dWModGhpcyxvLHtibHVyOiExfSk7Z2V0IG9wdGlvbnMoKXtyZXR1cm4gdGhpcy4jZX1zZXQgb3B0aW9ucyh3KXt0aGlzLiNlPXd9I3Q9KHVjKHRoaXMscyksdWModGhpcyxjLDFlMykpO2dldCBiYWNrZHJvcFpJbmRleCgpe3JldHVybiB0aGlzLiN0fXNldCBiYWNrZHJvcFpJbmRleCh3KXt0aGlzLiN0PXd9I3I9KHVjKHRoaXMsdSksdWModGhpcyxoLDEwMDEpKTtnZXQgY29udGVudFpJbmRleCgpe3JldHVybiB0aGlzLiNyfXNldCBjb250ZW50WkluZGV4KHcpe3RoaXMuI3I9d30jaT0odWModGhpcyxmKSx1Yyh0aGlzLHYsITEpKTtnZXQgdmlzaWJsZSgpe3JldHVybiB0aGlzLiNpfXNldCB2aXNpYmxlKHcpe3RoaXMuI2k9d31jb25zdHJ1Y3Rvcigpe3N1cGVyKCksdWModGhpcyxiKSxrdC5lbGVtZW50QmFzaWMuc2V0dXAoKX1yZW5kZXIoKXtyZXR1cm4gQ2AKICAgICAgJHtrdC5lbGVtZW50QmFzaWMuc3R5bGVzfQogICAgICA8c3R5bGU+CiAgICAgICAgLndpbmRvd092ZXJsYXkgewogICAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuMnM7CiAgICAgICAgICB3aWxsLWNoYW5nZTogdHJhbnNmb3JtOwogICAgICAgICAgcG9zaXRpb246IGZpeGVkOwogICAgICAgICAgdG9wOiAwcHg7CiAgICAgICAgICBsZWZ0OiAwcHg7CiAgICAgICAgICBoZWlnaHQ6IDEwMHZoOwogICAgICAgICAgd2lkdGg6IDEwMHZ3OwogICAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOwogICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICAgIGJhY2tncm91bmQ6IHJnYmEoMCwgMCwgMCwgMC4wKTsKICAgICAgICAgIGJhY2tkcm9wLWZpbHRlcjogYnJpZ2h0bmVzcygxKSAke3RoaXMub3B0aW9ucy5ibHVyPyJibHVyKDBweCkiOiIifTsKICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lOwogICAgICAgICAgei1pbmRleDogJHt0aGlzLmJhY2tkcm9wWkluZGV4fTsKICAgICAgICB9CiAgICAgICAgLnNsb3RDb250ZW50IHsKICAgICAgICAgIHBvc2l0aW9uOiBmaXhlZDsKICAgICAgICAgIGhlaWdodDogMTAwdmg7CiAgICAgICAgICB3aWR0aDogMTAwdnc7CiAgICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7CiAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgICAgei1pbmRleDogJHt0aGlzLmNvbnRlbnRaSW5kZXh9OwogICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7CiAgICAgICAgfQogICAgICAgIAogICAgICAgIC5zbG90Q29udGVudCA+ICogewogICAgICAgICAgcG9pbnRlci1ldmVudHM6IGF1dG87CiAgICAgICAgfQogICAgICAgIAogICAgICAgIC52aXNpYmxlIHsKICAgICAgICAgIGJhY2tncm91bmQ6IHJnYmEoMCwgMCwgMCwgMC4yKTsKICAgICAgICAgIGJhY2tkcm9wLWZpbHRlcjogYnJpZ2h0bmVzcygwLjkpICR7dGhpcy5vcHRpb25zLmJsdXI/ImJsdXIoMnB4KSI6IiJ9OwogICAgICAgICAgcG9pbnRlci1ldmVudHM6IGFsbDsKICAgICAgICB9CiAgICAgIDwvc3R5bGU+CiAgICAgIDxkaXYgQGNsaWNrPSR7dGhpcy5kaXNwYXRjaENsaWNrZWR9IGNsYXNzPSJ3aW5kb3dPdmVybGF5ICR7dGhpcy52aXNpYmxlPyJ2aXNpYmxlIjpudWxsfSI+CiAgICAgIDwvZGl2PgogICAgICA8ZGl2IGNsYXNzPSJzbG90Q29udGVudCI+CiAgICAgICAgPHNsb3Q+PC9zbG90PgogICAgICA8L2Rpdj4KICAgIGB9Zmlyc3RVcGRhdGVkKCl7c2V0VGltZW91dCgoKT0+e3RoaXMudmlzaWJsZT0hMH0sMTAwKX1kaXNwYXRjaENsaWNrZWQoKXt0aGlzLmRpc3BhdGNoRXZlbnQobmV3IEN1c3RvbUV2ZW50KCJjbGlja2VkIikpfXRvZ2dsZVZpc2liaWxpdHkoKXt0aGlzLnZpc2libGU9IXRoaXMudmlzaWJsZX1nZXRDb250ZW50WkluZGV4KCl7cmV0dXJuIHRoaXMuY29udGVudFpJbmRleH1hc3luYyBzaG93KCl7bGV0IHc9YXdhaXQgdGhpcy5kb210b29sc1Byb21pc2U7dGhpcy5iYWNrZHJvcFpJbmRleD1Lci5nZXROZXh0WkluZGV4KCksdGhpcy5jb250ZW50WkluZGV4PUtyLmdldE5leHRaSW5kZXgoKSxLci5yZWdpc3Rlcih0aGlzLHRoaXMuYmFja2Ryb3BaSW5kZXgpLGF3YWl0IHcuY29udmVuaWVuY2Uuc21hcnRkZWxheS5kZWxheUZvcigwKSx0aGlzLnZpc2libGU9ITB9YXN5bmMgaGlkZSgpe2F3YWl0KGF3YWl0IHRoaXMuZG9tdG9vbHNQcm9taXNlKS5jb252ZW5pZW5jZS5zbWFydGRlbGF5LmRlbGF5Rm9yKDApLHRoaXMudmlzaWJsZT0hMX1hc3luYyBkZXN0cm95KCl7bGV0IHc9YXdhaXQgdGhpcy5kb210b29sc1Byb21pc2U7YXdhaXQgdGhpcy5oaWRlKCksYXdhaXQgdy5jb252ZW5pZW5jZS5zbWFydGRlbGF5LmRlbGF5Rm9yKDMwMCksS3IudW5yZWdpc3Rlcih0aGlzKSx0aGlzLnJlbW92ZSgpfXN0YXRpY3t1YyhpLHIpfX07cmV0dXJuIHk9aX0pKCl9KTtmdW5jdGlvbiByYWUoZSx0KXsodD09bnVsbHx8dD5lLmxlbmd0aCkmJih0PWUubGVuZ3RoKTtmb3IodmFyIHI9MCxpPUFycmF5KHQpO3I8dDtyKyspaVtyXT1lW3JdO3JldHVybiBpfWZ1bmN0aW9uIFlVcihlKXtpZihBcnJheS5pc0FycmF5KGUpKXJldHVybiBlfWZ1bmN0aW9uIFpVcihlKXtpZihBcnJheS5pc0FycmF5KGUpKXJldHVybiByYWUoZSl9ZnVuY3Rpb24gWFVyKGUsdCl7aWYoIShlIGluc3RhbmNlb2YgdCkpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGNhbGwgYSBjbGFzcyBhcyBhIGZ1bmN0aW9uIil9ZnVuY3Rpb24gWnJ0KGUsdCl7Zm9yKHZhciByPTA7cjx0Lmxlbmd0aDtyKyspe3ZhciBpPXRbcl07aS5lbnVtZXJhYmxlPWkuZW51bWVyYWJsZXx8ITEsaS5jb25maWd1cmFibGU9ITAsInZhbHVlImluIGkmJihpLndyaXRhYmxlPSEwKSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZSxRcnQoaS5rZXkpLGkpfX1mdW5jdGlvbiBRVXIoZSx0LHIpe3JldHVybiB0JiZacnQoZS5wcm90b3R5cGUsdCksciYmWnJ0KGUsciksT2JqZWN0LmRlZmluZVByb3BlcnR5KGUsInByb3RvdHlwZSIse3dyaXRhYmxlOiExfSksZX1mdW5jdGlvbiB4QShlLHQpe3ZhciByPXR5cGVvZiBTeW1ib2w8InUiJiZlW1N5bWJvbC5pdGVyYXRvcl18fGVbIkBAaXRlcmF0b3IiXTtpZighcil7aWYoQXJyYXkuaXNBcnJheShlKXx8KHI9aWFlKGUpKXx8dCYmZSYmdHlwZW9mIGUubGVuZ3RoPT0ibnVtYmVyIil7ciYmKGU9cik7dmFyIGk9MCxhPWZ1bmN0aW9uKCl7fTtyZXR1cm57czphLG46ZnVuY3Rpb24oKXtyZXR1cm4gaT49ZS5sZW5ndGg/e2RvbmU6ITB9Ontkb25lOiExLHZhbHVlOmVbaSsrXX19LGU6ZnVuY3Rpb24obCl7dGhyb3cgbH0sZjphfX10aHJvdyBuZXcgVHlwZUVycm9yKGBJbnZhbGlkIGF0dGVtcHQgdG8gaXRlcmF0ZSBub24taXRlcmFibGUgaW5zdGFuY2UuCkluIG9yZGVyIHRvIGJlIGl0ZXJhYmxlLCBub24tYXJyYXkgb2JqZWN0cyBtdXN0IGhhdmUgYSBbU3ltYm9sLml0ZXJhdG9yXSgpIG1ldGhvZC5gKX12YXIgbixvPSEwLHM9ITE7cmV0dXJue3M6ZnVuY3Rpb24oKXtyPXIuY2FsbChlKX0sbjpmdW5jdGlvbigpe3ZhciBsPXIubmV4dCgpO3JldHVybiBvPWwuZG9uZSxsfSxlOmZ1bmN0aW9uKGwpe3M9ITAsbj1sfSxmOmZ1bmN0aW9uKCl7dHJ5e298fHIucmV0dXJuPT1udWxsfHxyLnJldHVybigpfWZpbmFsbHl7aWYocyl0aHJvdyBufX19fWZ1bmN0aW9uICR0KGUsdCxyKXtyZXR1cm4odD1RcnQodCkpaW4gZT9PYmplY3QuZGVmaW5lUHJvcGVydHkoZSx0LHt2YWx1ZTpyLGVudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwfSk6ZVt0XT1yLGV9ZnVuY3Rpb24gSlVyKGUsdCl7aWYodHlwZW9mIHQhPSJmdW5jdGlvbiImJnQhPT1udWxsKXRocm93IG5ldyBUeXBlRXJyb3IoIlN1cGVyIGV4cHJlc3Npb24gbXVzdCBlaXRoZXIgYmUgbnVsbCBvciBhIGZ1bmN0aW9uIik7ZS5wcm90b3R5cGU9T2JqZWN0LmNyZWF0ZSh0JiZ0LnByb3RvdHlwZSx7Y29uc3RydWN0b3I6e3ZhbHVlOmUsd3JpdGFibGU6ITAsY29uZmlndXJhYmxlOiEwfX0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJwcm90b3R5cGUiLHt3cml0YWJsZTohMX0pLHQmJnlBKGUsdCl9ZnVuY3Rpb24gS1VyKGUpe2lmKHR5cGVvZiBTeW1ib2w8InUiJiZlW1N5bWJvbC5pdGVyYXRvcl0hPW51bGx8fGVbIkBAaXRlcmF0b3IiXSE9bnVsbClyZXR1cm4gQXJyYXkuZnJvbShlKX1mdW5jdGlvbiBlV3IoZSx0KXt2YXIgcj1lPT1udWxsP251bGw6dHlwZW9mIFN5bWJvbDwidSImJmVbU3ltYm9sLml0ZXJhdG9yXXx8ZVsiQEBpdGVyYXRvciJdO2lmKHIhPW51bGwpe3ZhciBpLGEsbixvLHM9W10sbD0hMCxjPSExO3RyeXtpZihuPShyPXIuY2FsbChlKSkubmV4dCx0PT09MCl7aWYoT2JqZWN0KHIpIT09cilyZXR1cm47bD0hMX1lbHNlIGZvcig7IShsPShpPW4uY2FsbChyKSkuZG9uZSkmJihzLnB1c2goaS52YWx1ZSkscy5sZW5ndGghPT10KTtsPSEwKTt9Y2F0Y2godSl7Yz0hMCxhPXV9ZmluYWxseXt0cnl7aWYoIWwmJnIucmV0dXJuIT1udWxsJiYobz1yLnJldHVybigpLE9iamVjdChvKSE9PW8pKXJldHVybn1maW5hbGx5e2lmKGMpdGhyb3cgYX19cmV0dXJuIHN9fWZ1bmN0aW9uIHRXcigpe3Rocm93IG5ldyBUeXBlRXJyb3IoYEludmFsaWQgYXR0ZW1wdCB0byBkZXN0cnVjdHVyZSBub24taXRlcmFibGUgaW5zdGFuY2UuCkluIG9yZGVyIHRvIGJlIGl0ZXJhYmxlLCBub24tYXJyYXkgb2JqZWN0cyBtdXN0IGhhdmUgYSBbU3ltYm9sLml0ZXJhdG9yXSgpIG1ldGhvZC5gKX1mdW5jdGlvbiByV3IoKXt0aHJvdyBuZXcgVHlwZUVycm9yKGBJbnZhbGlkIGF0dGVtcHQgdG8gc3ByZWFkIG5vbi1pdGVyYWJsZSBpbnN0YW5jZS4KSW4gb3JkZXIgdG8gYmUgaXRlcmFibGUsIG5vbi1hcnJheSBvYmplY3RzIG11c3QgaGF2ZSBhIFtTeW1ib2wuaXRlcmF0b3JdKCkgbWV0aG9kLmApfWZ1bmN0aW9uIFhydChlLHQpe3ZhciByPU9iamVjdC5rZXlzKGUpO2lmKE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMpe3ZhciBpPU9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMoZSk7dCYmKGk9aS5maWx0ZXIoZnVuY3Rpb24oYSl7cmV0dXJuIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZSxhKS5lbnVtZXJhYmxlfSkpLHIucHVzaC5hcHBseShyLGkpfXJldHVybiByfWZ1bmN0aW9uIFZlKGUpe2Zvcih2YXIgdD0xO3Q8YXJndW1lbnRzLmxlbmd0aDt0Kyspe3ZhciByPWFyZ3VtZW50c1t0XSE9bnVsbD9hcmd1bWVudHNbdF06e307dCUyP1hydChPYmplY3QociksITApLmZvckVhY2goZnVuY3Rpb24oaSl7JHQoZSxpLHJbaV0pfSk6T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcnM/T2JqZWN0LmRlZmluZVByb3BlcnRpZXMoZSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9ycyhyKSk6WHJ0KE9iamVjdChyKSkuZm9yRWFjaChmdW5jdGlvbihpKXtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSxpLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IocixpKSl9KX1yZXR1cm4gZX1mdW5jdGlvbiB5QShlLHQpe3JldHVybiB5QT1PYmplY3Quc2V0UHJvdG90eXBlT2Y/T2JqZWN0LnNldFByb3RvdHlwZU9mLmJpbmQoKTpmdW5jdGlvbihyLGkpe3JldHVybiByLl9fcHJvdG9fXz1pLHJ9LHlBKGUsdCl9ZnVuY3Rpb24gd0EoZSx0KXtyZXR1cm4gWVVyKGUpfHxlV3IoZSx0KXx8aWFlKGUsdCl8fHRXcigpfWZ1bmN0aW9uIE0yKGUpe3JldHVybiBaVXIoZSl8fEtVcihlKXx8aWFlKGUpfHxyV3IoKX1mdW5jdGlvbiBpV3IoZSx0KXtpZih0eXBlb2YgZSE9Im9iamVjdCJ8fCFlKXJldHVybiBlO3ZhciByPWVbU3ltYm9sLnRvUHJpbWl0aXZlXTtpZihyIT09dm9pZCAwKXt2YXIgaT1yLmNhbGwoZSx0fHwiZGVmYXVsdCIpO2lmKHR5cGVvZiBpIT0ib2JqZWN0IilyZXR1cm4gaTt0aHJvdyBuZXcgVHlwZUVycm9yKCJAQHRvUHJpbWl0aXZlIG11c3QgcmV0dXJuIGEgcHJpbWl0aXZlIHZhbHVlLiIpfXJldHVybih0PT09InN0cmluZyI/U3RyaW5nOk51bWJlcikoZSl9ZnVuY3Rpb24gUXJ0KGUpe3ZhciB0PWlXcihlLCJzdHJpbmciKTtyZXR1cm4gdHlwZW9mIHQ9PSJzeW1ib2wiP3Q6dCsiIn1mdW5jdGlvbiBNQShlKXsiQGJhYmVsL2hlbHBlcnMgLSB0eXBlb2YiO3JldHVybiBNQT10eXBlb2YgU3ltYm9sPT0iZnVuY3Rpb24iJiZ0eXBlb2YgU3ltYm9sLml0ZXJhdG9yPT0ic3ltYm9sIj9mdW5jdGlvbih0KXtyZXR1cm4gdHlwZW9mIHR9OmZ1bmN0aW9uKHQpe3JldHVybiB0JiZ0eXBlb2YgU3ltYm9sPT0iZnVuY3Rpb24iJiZ0LmNvbnN0cnVjdG9yPT09U3ltYm9sJiZ0IT09U3ltYm9sLnByb3RvdHlwZT8ic3ltYm9sIjp0eXBlb2YgdH0sTUEoZSl9ZnVuY3Rpb24gaWFlKGUsdCl7aWYoZSl7aWYodHlwZW9mIGU9PSJzdHJpbmciKXJldHVybiByYWUoZSx0KTt2YXIgcj17fS50b1N0cmluZy5jYWxsKGUpLnNsaWNlKDgsLTEpO3JldHVybiByPT09Ik9iamVjdCImJmUuY29uc3RydWN0b3ImJihyPWUuY29uc3RydWN0b3IubmFtZSkscj09PSJNYXAifHxyPT09IlNldCI/QXJyYXkuZnJvbShlKTpyPT09IkFyZ3VtZW50cyJ8fC9eKD86VWl8SSludCg/Ojh8MTZ8MzIpKD86Q2xhbXBlZCk/QXJyYXkkLy50ZXN0KHIpP3JhZShlLHQpOnZvaWQgMH19ZnVuY3Rpb24gRWEoKXtFYT1mdW5jdGlvbihhLG4pe3JldHVybiBuZXcgcihhLHZvaWQgMCxuKX07dmFyIGU9UmVnRXhwLnByb3RvdHlwZSx0PW5ldyBXZWFrTWFwO2Z1bmN0aW9uIHIoYSxuLG8pe3ZhciBzPVJlZ0V4cChhLG4pO3JldHVybiB0LnNldChzLG98fHQuZ2V0KGEpKSx5QShzLHIucHJvdG90eXBlKX1mdW5jdGlvbiBpKGEsbil7dmFyIG89dC5nZXQobik7cmV0dXJuIE9iamVjdC5rZXlzKG8pLnJlZHVjZShmdW5jdGlvbihzLGwpe3ZhciBjPW9bbF07aWYodHlwZW9mIGM9PSJudW1iZXIiKXNbbF09YVtjXTtlbHNle2Zvcih2YXIgdT0wO2FbY1t1XV09PT12b2lkIDAmJnUrMTxjLmxlbmd0aDspdSsrO3NbbF09YVtjW3VdXX1yZXR1cm4gc30sT2JqZWN0LmNyZWF0ZShudWxsKSl9cmV0dXJuIEpVcihyLFJlZ0V4cCksci5wcm90b3R5cGUuZXhlYz1mdW5jdGlvbihhKXt2YXIgbj1lLmV4ZWMuY2FsbCh0aGlzLGEpO2lmKG4pe24uZ3JvdXBzPWkobix0aGlzKTt2YXIgbz1uLmluZGljZXM7byYmKG8uZ3JvdXBzPWkobyx0aGlzKSl9cmV0dXJuIG59LHIucHJvdG90eXBlW1N5bWJvbC5yZXBsYWNlXT1mdW5jdGlvbihhLG4pe2lmKHR5cGVvZiBuPT0ic3RyaW5nIil7dmFyIG89dC5nZXQodGhpcyk7cmV0dXJuIGVbU3ltYm9sLnJlcGxhY2VdLmNhbGwodGhpcyxhLG4ucmVwbGFjZSgvXCQ8KFtePl0rKSg+fCQpL2csZnVuY3Rpb24obCxjLHUpe2lmKHU9PT0iIilyZXR1cm4gbDt2YXIgZD1vW2NdO3JldHVybiBBcnJheS5pc0FycmF5KGQpPyIkIitkLmpvaW4oIiQiKTp0eXBlb2YgZD09Im51bWJlciI/IiQiK2Q6IiJ9KSl9aWYodHlwZW9mIG49PSJmdW5jdGlvbiIpe3ZhciBzPXRoaXM7cmV0dXJuIGVbU3ltYm9sLnJlcGxhY2VdLmNhbGwodGhpcyxhLGZ1bmN0aW9uKCl7dmFyIGw9YXJndW1lbnRzO3JldHVybiB0eXBlb2YgbFtsLmxlbmd0aC0xXSE9Im9iamVjdCImJihsPVtdLnNsaWNlLmNhbGwobCkpLnB1c2goaShsLHMpKSxuLmFwcGx5KHRoaXMsbCl9KX1yZXR1cm4gZVtTeW1ib2wucmVwbGFjZV0uY2FsbCh0aGlzLGEsbil9LEVhLmFwcGx5KHRoaXMsYXJndW1lbnRzKX1mdW5jdGlvbiBmZyhlKXtyZXR1cm4gbmV3IFByb3h5KGUse2dldDpmdW5jdGlvbihyLGkpe3JldHVybiBpIGluIHI/cltpXTpyW0ppXX19KX1mdW5jdGlvbiBVR3IoZSl7dmFyIHQ9dTEucXVlcnlTZWxlY3Rvcigic2NyaXB0WyIrZSsiXSIpO2lmKHQpcmV0dXJuIHQuZ2V0QXR0cmlidXRlKGUpfWZ1bmN0aW9uIFdHcihlKXtyZXR1cm4gZT09PSIiPyEwOmU9PT0iZmFsc2UiPyExOmU9PT0idHJ1ZSI/ITA6ZX1mdW5jdGlvbiBHR3IoZSl7cmV0dXJuIGdnLnB1c2goZSksZnVuY3Rpb24oKXtnZy5zcGxpY2UoZ2cuaW5kZXhPZihlKSwxKX19ZnVuY3Rpb24gWUdyKGUpe2lmKCEoIWV8fCFoYykpe3ZhciB0PXUxLmNyZWF0ZUVsZW1lbnQoInN0eWxlIik7dC5zZXRBdHRyaWJ1dGUoInR5cGUiLCJ0ZXh0L2NzcyIpLHQuaW5uZXJIVE1MPWU7Zm9yKHZhciByPXUxLmhlYWQuY2hpbGROb2RlcyxpPW51bGwsYT1yLmxlbmd0aC0xO2E+LTE7YS0tKXt2YXIgbj1yW2FdLG89KG4udGFnTmFtZXx8IiIpLnRvVXBwZXJDYXNlKCk7WyJTVFlMRSIsIkxJTksiXS5pbmRleE9mKG8pPi0xJiYoaT1uKX1yZXR1cm4gdTEuaGVhZC5pbnNlcnRCZWZvcmUodCxpKSxlfX1mdW5jdGlvbiBIMXQoKXtmb3IodmFyIGU9MTIsdD0iIjtlLS0gPjA7KXQrPVpHcltNYXRoLnJhbmRvbSgpKjYyfDBdO3JldHVybiB0fWZ1bmN0aW9uIEVwKGUpe2Zvcih2YXIgdD1bXSxyPShlfHxbXSkubGVuZ3RoPj4+MDtyLS07KXRbcl09ZVtyXTtyZXR1cm4gdH1mdW5jdGlvbiBiYWUoZSl7cmV0dXJuIGUuY2xhc3NMaXN0P0VwKGUuY2xhc3NMaXN0KTooZS5nZXRBdHRyaWJ1dGUoImNsYXNzIil8fCIiKS5zcGxpdCgiICIpLmZpbHRlcihmdW5jdGlvbih0KXtyZXR1cm4gdH0pfWZ1bmN0aW9uIHExdChlKXtyZXR1cm4iIi5jb25jYXQoZSkucmVwbGFjZSgvJi9nLCImYW1wOyIpLnJlcGxhY2UoLyIvZywiJnF1b3Q7IikucmVwbGFjZSgvJy9nLCImIzM5OyIpLnJlcGxhY2UoLzwvZywiJmx0OyIpLnJlcGxhY2UoLz4vZywiJmd0OyIpfWZ1bmN0aW9uIFhHcihlKXtyZXR1cm4gT2JqZWN0LmtleXMoZXx8e30pLnJlZHVjZShmdW5jdGlvbih0LHIpe3JldHVybiB0KyIiLmNvbmNhdChyLCc9IicpLmNvbmNhdChxMXQoZVtyXSksJyIgJyl9LCIiKS50cmltKCl9ZnVuY3Rpb24gekEoZSl7cmV0dXJuIE9iamVjdC5rZXlzKGV8fHt9KS5yZWR1Y2UoZnVuY3Rpb24odCxyKXtyZXR1cm4gdCsiIi5jb25jYXQociwiOiAiKS5jb25jYXQoZVtyXS50cmltKCksIjsiKX0sIiIpfWZ1bmN0aW9uIHZhZShlKXtyZXR1cm4gZS5zaXplIT09dGwuc2l6ZXx8ZS54IT09dGwueHx8ZS55IT09dGwueXx8ZS5yb3RhdGUhPT10bC5yb3RhdGV8fGUuZmxpcFh8fGUuZmxpcFl9ZnVuY3Rpb24gUUdyKGUpe3ZhciB0PWUudHJhbnNmb3JtLHI9ZS5jb250YWluZXJXaWR0aCxpPWUuaWNvbldpZHRoLGE9e3RyYW5zZm9ybToidHJhbnNsYXRlKCIuY29uY2F0KHIvMiwiIDI1NikiKX0sbj0idHJhbnNsYXRlKCIuY29uY2F0KHQueCozMiwiLCAiKS5jb25jYXQodC55KjMyLCIpICIpLG89InNjYWxlKCIuY29uY2F0KHQuc2l6ZS8xNioodC5mbGlwWD8tMToxKSwiLCAiKS5jb25jYXQodC5zaXplLzE2Kih0LmZsaXBZPy0xOjEpLCIpICIpLHM9InJvdGF0ZSgiLmNvbmNhdCh0LnJvdGF0ZSwiIDAgMCkiKSxsPXt0cmFuc2Zvcm06IiIuY29uY2F0KG4sIiAiKS5jb25jYXQobywiICIpLmNvbmNhdChzKX0sYz17dHJhbnNmb3JtOiJ0cmFuc2xhdGUoIi5jb25jYXQoaS8yKi0xLCIgLTI1NikiKX07cmV0dXJue291dGVyOmEsaW5uZXI6bCxwYXRoOmN9fWZ1bmN0aW9uIEpHcihlKXt2YXIgdD1lLnRyYW5zZm9ybSxyPWUud2lkdGgsaT1yPT09dm9pZCAwP2xhZTpyLGE9ZS5oZWlnaHQsbj1hPT09dm9pZCAwP2xhZTphLG89ZS5zdGFydENlbnRlcmVkLHM9bz09PXZvaWQgMD8hMTpvLGw9IiI7cmV0dXJuIHMmJm4xdD9sKz0idHJhbnNsYXRlKCIuY29uY2F0KHQueC9fNC1pLzIsImVtLCAiKS5jb25jYXQodC55L180LW4vMiwiZW0pICIpOnM/bCs9InRyYW5zbGF0ZShjYWxjKC01MCUgKyAiLmNvbmNhdCh0LngvXzQsImVtKSwgY2FsYygtNTAlICsgIikuY29uY2F0KHQueS9fNCwiZW0pKSAiKTpsKz0idHJhbnNsYXRlKCIuY29uY2F0KHQueC9fNCwiZW0sICIpLmNvbmNhdCh0LnkvXzQsImVtKSAiKSxsKz0ic2NhbGUoIi5jb25jYXQodC5zaXplL180Kih0LmZsaXBYPy0xOjEpLCIsICIpLmNvbmNhdCh0LnNpemUvXzQqKHQuZmxpcFk/LTE6MSksIikgIiksbCs9InJvdGF0ZSgiLmNvbmNhdCh0LnJvdGF0ZSwiZGVnKSAiKSxsfWZ1bmN0aW9uIGoxdCgpe3ZhciBlPUQxdCx0PUUxdCxyPXB0LmNzc1ByZWZpeCxpPXB0LnJlcGxhY2VtZW50Q2xhc3MsYT1LR3I7aWYociE9PWV8fGkhPT10KXt2YXIgbj1uZXcgUmVnRXhwKCJcXC4iLmNvbmNhdChlLCJcXC0iKSwiZyIpLG89bmV3IFJlZ0V4cCgiXFwtLSIuY29uY2F0KGUsIlxcLSIpLCJnIikscz1uZXcgUmVnRXhwKCJcXC4iLmNvbmNhdCh0KSwiZyIpO2E9YS5yZXBsYWNlKG4sIi4iLmNvbmNhdChyLCItIikpLnJlcGxhY2UobywiLS0iLmNvbmNhdChyLCItIikpLnJlcGxhY2UocywiLiIuY29uY2F0KGkpKX1yZXR1cm4gYX1mdW5jdGlvbiB4YWUoKXtwdC5hdXRvQWRkQ3NzJiYhVjF0JiYoWUdyKGoxdCgpKSxWMXQ9ITApfWZ1bmN0aW9uIHRZcihlKXtoYyYmKENBP3NldFRpbWVvdXQoZSwwKTpVMXQucHVzaChlKSl9ZnVuY3Rpb24gYmcoZSl7dmFyIHQ9ZS50YWcscj1lLmF0dHJpYnV0ZXMsaT1yPT09dm9pZCAwP3t9OnIsYT1lLmNoaWxkcmVuLG49YT09PXZvaWQgMD9bXTphO3JldHVybiB0eXBlb2YgZT09InN0cmluZyI/cTF0KGUpOiI8Ii5jb25jYXQodCwiICIpLmNvbmNhdChYR3IoaSksIj4iKS5jb25jYXQobi5tYXAoYmcpLmpvaW4oIiIpLCI8LyIpLmNvbmNhdCh0LCI+Iil9ZnVuY3Rpb24gRzF0KGUsdCxyKXtpZihlJiZlW3RdJiZlW3RdW3JdKXJldHVybntwcmVmaXg6dCxpY29uTmFtZTpyLGljb246ZVt0XVtyXX19ZnVuY3Rpb24gWTF0KGUpe3JldHVybiBNMihlKS5sZW5ndGghPT0xP251bGw6ZS5jb2RlUG9pbnRBdCgwKS50b1N0cmluZygxNil9ZnVuY3Rpb24gWjF0KGUpe3JldHVybiBPYmplY3Qua2V5cyhlKS5yZWR1Y2UoZnVuY3Rpb24odCxyKXt2YXIgaT1lW3JdLGE9ISFpLmljb247cmV0dXJuIGE/dFtpLmljb25OYW1lXT1pLmljb246dFtyXT1pLHR9LHt9KX1mdW5jdGlvbiB3YWUoZSx0KXt2YXIgcj1hcmd1bWVudHMubGVuZ3RoPjImJmFyZ3VtZW50c1syXSE9PXZvaWQgMD9hcmd1bWVudHNbMl06e30saT1yLnNraXBIb29rcyxhPWk9PT12b2lkIDA/ITE6aSxuPVoxdCh0KTt0eXBlb2YgazIuaG9va3MuYWRkUGFjaz09ImZ1bmN0aW9uIiYmIWE/azIuaG9va3MuYWRkUGFjayhlLFoxdCh0KSk6azIuc3R5bGVzW2VdPVZlKFZlKHt9LGsyLnN0eWxlc1tlXXx8e30pLG4pLGU9PT0iZmFzIiYmd2FlKCJmYSIsdCl9ZnVuY3Rpb24gbllyKGUpe3JldHVybn5WR3IuaW5kZXhPZihlKX1mdW5jdGlvbiBvWXIoZSx0KXt2YXIgcj10LnNwbGl0KCItIiksaT1yWzBdLGE9ci5zbGljZSgxKS5qb2luKCItIik7cmV0dXJuIGk9PT1lJiZhIT09IiImJiFuWXIoYSk/YTpudWxsfWZ1bmN0aW9uIFNhZShlLHQpe3JldHVybihRMXRbZV18fHt9KVt0XX1mdW5jdGlvbiBzWXIoZSx0KXtyZXR1cm4oSjF0W2VdfHx7fSlbdF19ZnVuY3Rpb24gVGQoZSx0KXtyZXR1cm4odGl0W2VdfHx7fSlbdF19ZnVuY3Rpb24gaWl0KGUpe3JldHVybiBLMXRbZV18fHtwcmVmaXg6bnVsbCxpY29uTmFtZTpudWxsfX1mdW5jdGlvbiBsWXIoZSl7dmFyIHQ9ZWl0W2VdLHI9U2FlKCJmYXMiLGUpO3JldHVybiB0fHwocj97cHJlZml4OiJmYXMiLGljb25OYW1lOnJ9Om51bGwpfHx7cHJlZml4Om51bGwsaWNvbk5hbWU6bnVsbH19ZnVuY3Rpb24gTDQoKXtyZXR1cm4ga2FlfWZ1bmN0aW9uIGNZcihlKXt2YXIgdD1KaSxyPVgxdC5yZWR1Y2UoZnVuY3Rpb24oaSxhKXtyZXR1cm4gaVthXT0iIi5jb25jYXQocHQuY3NzUHJlZml4LCItIikuY29uY2F0KGEpLGl9LHt9KTtyZXR1cm4gejF0LmZvckVhY2goZnVuY3Rpb24oaSl7KGUuaW5jbHVkZXMocltpXSl8fGUuc29tZShmdW5jdGlvbihhKXtyZXR1cm4gYVlyW2ldLmluY2x1ZGVzKGEpfSkpJiYodD1pKX0pLHR9ZnVuY3Rpb24gVEEoZSl7dmFyIHQ9YXJndW1lbnRzLmxlbmd0aD4xJiZhcmd1bWVudHNbMV0hPT12b2lkIDA/YXJndW1lbnRzWzFdOnt9LHI9dC5mYW1pbHksaT1yPT09dm9pZCAwP0ppOnIsYT1SR3JbaV1bZV07aWYoaT09PWhnJiYhZSlyZXR1cm4iZmFkIjt2YXIgbj1GMXRbaV1bZV18fEYxdFtpXVthXSxvPWUgaW4gazIuc3R5bGVzP2U6bnVsbCxzPW58fG98fG51bGw7cmV0dXJuIHN9ZnVuY3Rpb24gZFlyKGUpe3ZhciB0PVtdLHI9bnVsbDtyZXR1cm4gZS5mb3JFYWNoKGZ1bmN0aW9uKGkpe3ZhciBhPW9ZcihwdC5jc3NQcmVmaXgsaSk7YT9yPWE6aSYmdC5wdXNoKGkpfSkse2ljb25OYW1lOnIscmVzdDp0fX1mdW5jdGlvbiBuaXQoZSl7cmV0dXJuIGUuc29ydCgpLmZpbHRlcihmdW5jdGlvbih0LHIsaSl7cmV0dXJuIGkuaW5kZXhPZih0KT09PXJ9KX1mdW5jdGlvbiBfQShlKXt2YXIgdD1hcmd1bWVudHMubGVuZ3RoPjEmJmFyZ3VtZW50c1sxXSE9PXZvaWQgMD9hcmd1bWVudHNbMV06e30scj10LnNraXBMb29rdXBzLGk9cj09PXZvaWQgMD8hMTpyLGE9bnVsbCxuPW5pdChlLmZpbHRlcihmdW5jdGlvbihmKXtyZXR1cm4gb2l0LmluY2x1ZGVzKGYpfSkpLG89bml0KGUuZmlsdGVyKGZ1bmN0aW9uKGYpe3JldHVybiFvaXQuaW5jbHVkZXMoZil9KSkscz1uLmZpbHRlcihmdW5jdGlvbihmKXtyZXR1cm4gYT1mLCFzMXQuaW5jbHVkZXMoZil9KSxsPXdBKHMsMSksYz1sWzBdLHU9Yz09PXZvaWQgMD9udWxsOmMsZD1jWXIobiksaD1WZShWZSh7fSxkWXIobykpLHt9LHtwcmVmaXg6VEEodSx7ZmFtaWx5OmR9KX0pO3JldHVybiBWZShWZShWZSh7fSxoKSxmWXIoe3ZhbHVlczplLGZhbWlseTpkLHN0eWxlczp2Zyxjb25maWc6cHQsY2Fub25pY2FsOmgsZ2l2ZW5QcmVmaXg6YX0pKSx1WXIoaSxhLGgpKX1mdW5jdGlvbiB1WXIoZSx0LHIpe3ZhciBpPXIucHJlZml4LGE9ci5pY29uTmFtZTtpZihlfHwhaXx8IWEpcmV0dXJue3ByZWZpeDppLGljb25OYW1lOmF9O3ZhciBuPXQ9PT0iZmEiP2lpdChhKTp7fSxvPVRkKGksYSk7cmV0dXJuIGE9bi5pY29uTmFtZXx8b3x8YSxpPW4ucHJlZml4fHxpLGk9PT0iZmFyIiYmIXZnLmZhciYmdmcuZmFzJiYhcHQuYXV0b0ZldGNoU3ZnJiYoaT0iZmFzIikse3ByZWZpeDppLGljb25OYW1lOmF9fWZ1bmN0aW9uIGZZcihlKXt2YXIgdD1lLnZhbHVlcyxyPWUuZmFtaWx5LGk9ZS5jYW5vbmljYWwsYT1lLmdpdmVuUHJlZml4LG49YT09PXZvaWQgMD8iIjphLG89ZS5zdHlsZXMscz1vPT09dm9pZCAwP3t9Om8sbD1lLmNvbmZpZyxjPWw9PT12b2lkIDA/e306bCx1PXI9PT1oZyxkPXQuaW5jbHVkZXMoImZhLWR1b3RvbmUiKXx8dC5pbmNsdWRlcygiZmFkIiksaD1jLmZhbWlseURlZmF1bHQ9PT0iZHVvdG9uZSIsZj1pLnByZWZpeD09PSJmYWQifHxpLnByZWZpeD09PSJmYS1kdW90b25lIjtpZighdSYmKGR8fGh8fGYpJiYoaS5wcmVmaXg9ImZhZCIpLCh0LmluY2x1ZGVzKCJmYS1icmFuZHMiKXx8dC5pbmNsdWRlcygiZmFiIikpJiYoaS5wcmVmaXg9ImZhYiIpLCFpLnByZWZpeCYmcFlyLmluY2x1ZGVzKHIpKXt2YXIgeD1PYmplY3Qua2V5cyhzKS5maW5kKGZ1bmN0aW9uKGIpe3JldHVybiBoWXIuaW5jbHVkZXMoYil9KTtpZih4fHxjLmF1dG9GZXRjaFN2Zyl7dmFyIHY9TFdyLmdldChyKS5kZWZhdWx0U2hvcnRQcmVmaXhJZDtpLnByZWZpeD12LGkuaWNvbk5hbWU9VGQoaS5wcmVmaXgsaS5pY29uTmFtZSl8fGkuaWNvbk5hbWV9fXJldHVybihpLnByZWZpeD09PSJmYSJ8fG49PT0iZmEiKSYmKGkucHJlZml4PUw0KCl8fCJmYXMiKSxpfWZ1bmN0aW9uIGJZcihlLHQpe3ZhciByPXQubWl4b3V0c1RvO3JldHVybiBzaXQ9ZSwkcD17fSxPYmplY3Qua2V5cyhJcCkuZm9yRWFjaChmdW5jdGlvbihpKXtnWXIuaW5kZXhPZihpKT09PS0xJiZkZWxldGUgSXBbaV19KSxzaXQuZm9yRWFjaChmdW5jdGlvbihpKXt2YXIgYT1pLm1peG91dD9pLm1peG91dCgpOnt9O2lmKE9iamVjdC5rZXlzKGEpLmZvckVhY2goZnVuY3Rpb24obyl7dHlwZW9mIGFbb109PSJmdW5jdGlvbiImJihyW29dPWFbb10pLE1BKGFbb10pPT09Im9iamVjdCImJk9iamVjdC5rZXlzKGFbb10pLmZvckVhY2goZnVuY3Rpb24ocyl7cltvXXx8KHJbb109e30pLHJbb11bc109YVtvXVtzXX0pfSksaS5ob29rcyl7dmFyIG49aS5ob29rcygpO09iamVjdC5rZXlzKG4pLmZvckVhY2goZnVuY3Rpb24obyl7JHBbb118fCgkcFtvXT1bXSksJHBbb10ucHVzaChuW29dKX0pfWkucHJvdmlkZXMmJmkucHJvdmlkZXMoSXApfSkscn1mdW5jdGlvbiB6YWUoZSx0KXtmb3IodmFyIHI9YXJndW1lbnRzLmxlbmd0aCxpPW5ldyBBcnJheShyPjI/ci0yOjApLGE9MjthPHI7YSsrKWlbYS0yXT1hcmd1bWVudHNbYV07dmFyIG49JHBbZV18fFtdO3JldHVybiBuLmZvckVhY2goZnVuY3Rpb24obyl7dD1vLmFwcGx5KG51bGwsW3RdLmNvbmNhdChpKSl9KSx0fWZ1bmN0aW9uIF9kKGUpe2Zvcih2YXIgdD1hcmd1bWVudHMubGVuZ3RoLHI9bmV3IEFycmF5KHQ+MT90LTE6MCksaT0xO2k8dDtpKyspcltpLTFdPWFyZ3VtZW50c1tpXTt2YXIgYT0kcFtlXXx8W107YS5mb3JFYWNoKGZ1bmN0aW9uKG4pe24uYXBwbHkobnVsbCxyKX0pfWZ1bmN0aW9uIEE0KCl7dmFyIGU9YXJndW1lbnRzWzBdLHQ9QXJyYXkucHJvdG90eXBlLnNsaWNlLmNhbGwoYXJndW1lbnRzLDEpO3JldHVybiBJcFtlXT9JcFtlXS5hcHBseShudWxsLHQpOnZvaWQgMH1mdW5jdGlvbiBDYWUoZSl7ZS5wcmVmaXg9PT0iZmEiJiYoZS5wcmVmaXg9ImZhcyIpO3ZhciB0PWUuaWNvbk5hbWUscj1lLnByZWZpeHx8TDQoKTtpZih0KXJldHVybiB0PVRkKHIsdCl8fHQsRzF0KGxpdC5kZWZpbml0aW9ucyxyLHQpfHxHMXQoazIuc3R5bGVzLHIsdCl9ZnVuY3Rpb24gTEEoZSx0KXtyZXR1cm4gT2JqZWN0LmRlZmluZVByb3BlcnR5KGUsImFic3RyYWN0Iix7Z2V0OnR9KSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiaHRtbCIse2dldDpmdW5jdGlvbigpe3JldHVybiBlLmFic3RyYWN0Lm1hcChmdW5jdGlvbihpKXtyZXR1cm4gYmcoaSl9KX19KSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwibm9kZSIse2dldDpmdW5jdGlvbigpe2lmKGhjKXt2YXIgaT11MS5jcmVhdGVFbGVtZW50KCJkaXYiKTtyZXR1cm4gaS5pbm5lckhUTUw9ZS5odG1sLGkuY2hpbGRyZW59fX0pLGV9ZnVuY3Rpb24gTVlyKGUpe3ZhciB0PWUuY2hpbGRyZW4scj1lLm1haW4saT1lLm1hc2ssYT1lLmF0dHJpYnV0ZXMsbj1lLnN0eWxlcyxvPWUudHJhbnNmb3JtO2lmKHZhZShvKSYmci5mb3VuZCYmIWkuZm91bmQpe3ZhciBzPXIud2lkdGgsbD1yLmhlaWdodCxjPXt4OnMvbC8yLHk6LjV9O2Euc3R5bGU9ekEoVmUoVmUoe30sbikse30seyJ0cmFuc2Zvcm0tb3JpZ2luIjoiIi5jb25jYXQoYy54K28ueC8xNiwiZW0gIikuY29uY2F0KGMueStvLnkvMTYsImVtIil9KSl9cmV0dXJuW3t0YWc6InN2ZyIsYXR0cmlidXRlczphLGNoaWxkcmVuOnR9XX1mdW5jdGlvbiBrWXIoZSl7dmFyIHQ9ZS5wcmVmaXgscj1lLmljb25OYW1lLGk9ZS5jaGlsZHJlbixhPWUuYXR0cmlidXRlcyxuPWUuc3ltYm9sLG89bj09PSEwPyIiLmNvbmNhdCh0LCItIikuY29uY2F0KHB0LmNzc1ByZWZpeCwiLSIpLmNvbmNhdChyKTpuO3JldHVyblt7dGFnOiJzdmciLGF0dHJpYnV0ZXM6e3N0eWxlOiJkaXNwbGF5OiBub25lOyJ9LGNoaWxkcmVuOlt7dGFnOiJzeW1ib2wiLGF0dHJpYnV0ZXM6VmUoVmUoe30sYSkse30se2lkOm99KSxjaGlsZHJlbjppfV19XX1mdW5jdGlvbiBTWXIoZSl7dmFyIHQ9WyJhcmlhLWxhYmVsIiwiYXJpYS1sYWJlbGxlZGJ5IiwidGl0bGUiLCJyb2xlIl07cmV0dXJuIHQuc29tZShmdW5jdGlvbihyKXtyZXR1cm4gciBpbiBlfSl9ZnVuY3Rpb24gVGFlKGUpe3ZhciB0PWUuaWNvbnMscj10Lm1haW4saT10Lm1hc2ssYT1lLnByZWZpeCxuPWUuaWNvbk5hbWUsbz1lLnRyYW5zZm9ybSxzPWUuc3ltYm9sLGw9ZS5tYXNrSWQsYz1lLmV4dHJhLHU9ZS53YXRjaGFibGUsZD11PT09dm9pZCAwPyExOnUsaD1pLmZvdW5kP2k6cixmPWgud2lkdGgseD1oLmhlaWdodCx2PVtwdC5yZXBsYWNlbWVudENsYXNzLG4/IiIuY29uY2F0KHB0LmNzc1ByZWZpeCwiLSIpLmNvbmNhdChuKToiIl0uZmlsdGVyKGZ1bmN0aW9uKHope3JldHVybiBjLmNsYXNzZXMuaW5kZXhPZih6KT09PS0xfSkuZmlsdGVyKGZ1bmN0aW9uKHope3JldHVybiB6IT09IiJ8fCEhen0pLmNvbmNhdChjLmNsYXNzZXMpLmpvaW4oIiAiKSxiPXtjaGlsZHJlbjpbXSxhdHRyaWJ1dGVzOlZlKFZlKHt9LGMuYXR0cmlidXRlcykse30seyJkYXRhLXByZWZpeCI6YSwiZGF0YS1pY29uIjpuLGNsYXNzOnYscm9sZTpjLmF0dHJpYnV0ZXMucm9sZXx8ImltZyIsdmlld0JveDoiMCAwICIuY29uY2F0KGYsIiAiKS5jb25jYXQoeCl9KX07IVNZcihjLmF0dHJpYnV0ZXMpJiYhYy5hdHRyaWJ1dGVzWyJhcmlhLWhpZGRlbiJdJiYoYi5hdHRyaWJ1dGVzWyJhcmlhLWhpZGRlbiJdPSJ0cnVlIiksZCYmKGIuYXR0cmlidXRlc1tDZF09IiIpO3ZhciB5PVZlKFZlKHt9LGIpLHt9LHtwcmVmaXg6YSxpY29uTmFtZTpuLG1haW46cixtYXNrOmksbWFza0lkOmwsdHJhbnNmb3JtOm8sc3ltYm9sOnMsc3R5bGVzOlZlKHt9LGMuc3R5bGVzKX0pLHc9aS5mb3VuZCYmci5mb3VuZD9BNCgiZ2VuZXJhdGVBYnN0cmFjdE1hc2siLHkpfHx7Y2hpbGRyZW46W10sYXR0cmlidXRlczp7fX06QTQoImdlbmVyYXRlQWJzdHJhY3RJY29uIix5KXx8e2NoaWxkcmVuOltdLGF0dHJpYnV0ZXM6e319LGs9dy5jaGlsZHJlbixPPXcuYXR0cmlidXRlcztyZXR1cm4geS5jaGlsZHJlbj1rLHkuYXR0cmlidXRlcz1PLHM/a1lyKHkpOk1Zcih5KX1mdW5jdGlvbiBjaXQoZSl7dmFyIHQ9ZS5jb250ZW50LHI9ZS53aWR0aCxpPWUuaGVpZ2h0LGE9ZS50cmFuc2Zvcm0sbj1lLmV4dHJhLG89ZS53YXRjaGFibGUscz1vPT09dm9pZCAwPyExOm8sbD1WZShWZSh7fSxuLmF0dHJpYnV0ZXMpLHt9LHtjbGFzczpuLmNsYXNzZXMuam9pbigiICIpfSk7cyYmKGxbQ2RdPSIiKTt2YXIgYz1WZSh7fSxuLnN0eWxlcyk7dmFlKGEpJiYoYy50cmFuc2Zvcm09SkdyKHt0cmFuc2Zvcm06YSxzdGFydENlbnRlcmVkOiEwLHdpZHRoOnIsaGVpZ2h0Oml9KSxjWyItd2Via2l0LXRyYW5zZm9ybSJdPWMudHJhbnNmb3JtKTt2YXIgdT16QShjKTt1Lmxlbmd0aD4wJiYobC5zdHlsZT11KTt2YXIgZD1bXTtyZXR1cm4gZC5wdXNoKHt0YWc6InNwYW4iLGF0dHJpYnV0ZXM6bCxjaGlsZHJlbjpbdF19KSxkfWZ1bmN0aW9uIHpZcihlKXt2YXIgdD1lLmNvbnRlbnQscj1lLmV4dHJhLGk9VmUoVmUoe30sci5hdHRyaWJ1dGVzKSx7fSx7Y2xhc3M6ci5jbGFzc2VzLmpvaW4oIiAiKX0pLGE9ekEoci5zdHlsZXMpO2EubGVuZ3RoPjAmJihpLnN0eWxlPWEpO3ZhciBuPVtdO3JldHVybiBuLnB1c2goe3RhZzoic3BhbiIsYXR0cmlidXRlczppLGNoaWxkcmVuOlt0XX0pLG59ZnVuY3Rpb24gTGFlKGUpe3ZhciB0PWVbMF0scj1lWzFdLGk9ZS5zbGljZSg0KSxhPXdBKGksMSksbj1hWzBdLG89bnVsbDtyZXR1cm4gQXJyYXkuaXNBcnJheShuKT9vPXt0YWc6ImciLGF0dHJpYnV0ZXM6e2NsYXNzOiIiLmNvbmNhdChwdC5jc3NQcmVmaXgsIi0iKS5jb25jYXQoZ2FlLkdST1VQKX0sY2hpbGRyZW46W3t0YWc6InBhdGgiLGF0dHJpYnV0ZXM6e2NsYXNzOiIiLmNvbmNhdChwdC5jc3NQcmVmaXgsIi0iKS5jb25jYXQoZ2FlLlNFQ09OREFSWSksZmlsbDoiY3VycmVudENvbG9yIixkOm5bMF19fSx7dGFnOiJwYXRoIixhdHRyaWJ1dGVzOntjbGFzczoiIi5jb25jYXQocHQuY3NzUHJlZml4LCItIikuY29uY2F0KGdhZS5QUklNQVJZKSxmaWxsOiJjdXJyZW50Q29sb3IiLGQ6blsxXX19XX06bz17dGFnOiJwYXRoIixhdHRyaWJ1dGVzOntmaWxsOiJjdXJyZW50Q29sb3IiLGQ6bn19LHtmb3VuZDohMCx3aWR0aDp0LGhlaWdodDpyLGljb246b319ZnVuY3Rpb24gVFlyKGUsdCl7IVAxdCYmIXB0LnNob3dNaXNzaW5nSWNvbnMmJmUmJmNvbnNvbGUuZXJyb3IoJ0ljb24gd2l0aCBuYW1lICInLmNvbmNhdChlLCciIGFuZCBwcmVmaXggIicpLmNvbmNhdCh0LCciIGlzIG1pc3NpbmcuJykpfWZ1bmN0aW9uIEFhZShlLHQpe3ZhciByPXQ7cmV0dXJuIHQ9PT0iZmEiJiZwdC5zdHlsZURlZmF1bHQhPT1udWxsJiYodD1MNCgpKSxuZXcgUHJvbWlzZShmdW5jdGlvbihpLGEpe2lmKHI9PT0iZmEiKXt2YXIgbj1paXQoZSl8fHt9O2U9bi5pY29uTmFtZXx8ZSx0PW4ucHJlZml4fHx0fWlmKGUmJnQmJl9hZVt0XSYmX2FlW3RdW2VdKXt2YXIgbz1fYWVbdF1bZV07cmV0dXJuIGkoTGFlKG8pKX1UWXIoZSx0KSxpKFZlKFZlKHt9LENZcikse30se2ljb246cHQuc2hvd01pc3NpbmdJY29ucyYmZT9BNCgibWlzc2luZ0ljb25BYnN0cmFjdCIpfHx7fTp7fX0pKX0pfWZ1bmN0aW9uIHBpdChlKXt2YXIgdD1lLmdldEF0dHJpYnV0ZT9lLmdldEF0dHJpYnV0ZShDZCk6bnVsbDtyZXR1cm4gdHlwZW9mIHQ9PSJzdHJpbmcifWZ1bmN0aW9uIExZcihlKXt2YXIgdD1lLmdldEF0dHJpYnV0ZT9lLmdldEF0dHJpYnV0ZShkYWUpOm51bGwscj1lLmdldEF0dHJpYnV0ZT9lLmdldEF0dHJpYnV0ZSh1YWUpOm51bGw7cmV0dXJuIHQmJnJ9ZnVuY3Rpb24gQVlyKGUpe3JldHVybiBlJiZlLmNsYXNzTGlzdCYmZS5jbGFzc0xpc3QuY29udGFpbnMmJmUuY2xhc3NMaXN0LmNvbnRhaW5zKHB0LnJlcGxhY2VtZW50Q2xhc3MpfWZ1bmN0aW9uIERZcigpe2lmKHB0LmF1dG9SZXBsYWNlU3ZnPT09ITApcmV0dXJuIERBLnJlcGxhY2U7dmFyIGU9REFbcHQuYXV0b1JlcGxhY2VTdmddO3JldHVybiBlfHxEQS5yZXBsYWNlfWZ1bmN0aW9uIEVZcihlKXtyZXR1cm4gdTEuY3JlYXRlRWxlbWVudE5TKCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIsZSl9ZnVuY3Rpb24gJFlyKGUpe3JldHVybiB1MS5jcmVhdGVFbGVtZW50KGUpfWZ1bmN0aW9uIGhpdChlKXt2YXIgdD1hcmd1bWVudHMubGVuZ3RoPjEmJmFyZ3VtZW50c1sxXSE9PXZvaWQgMD9hcmd1bWVudHNbMV06e30scj10LmNlRm4saT1yPT09dm9pZCAwP2UudGFnPT09InN2ZyI/RVlyOiRZcjpyO2lmKHR5cGVvZiBlPT0ic3RyaW5nIilyZXR1cm4gdTEuY3JlYXRlVGV4dE5vZGUoZSk7dmFyIGE9aShlLnRhZyk7T2JqZWN0LmtleXMoZS5hdHRyaWJ1dGVzfHxbXSkuZm9yRWFjaChmdW5jdGlvbihvKXthLnNldEF0dHJpYnV0ZShvLGUuYXR0cmlidXRlc1tvXSl9KTt2YXIgbj1lLmNoaWxkcmVufHxbXTtyZXR1cm4gbi5mb3JFYWNoKGZ1bmN0aW9uKG8pe2EuYXBwZW5kQ2hpbGQoaGl0KG8se2NlRm46aX0pKX0pLGF9ZnVuY3Rpb24gSVlyKGUpe3ZhciB0PSIgIi5jb25jYXQoZS5vdXRlckhUTUwsIiAiKTtyZXR1cm4gdD0iIi5jb25jYXQodCwiRm9udCBBd2Vzb21lIGZvbnRhd2Vzb21lLmNvbSAiKSx0fWZ1bmN0aW9uIGZpdChlKXtlKCl9ZnVuY3Rpb24gbWl0KGUsdCl7dmFyIHI9dHlwZW9mIHQ9PSJmdW5jdGlvbiI/dDpBQTtpZihlLmxlbmd0aD09PTApcigpO2Vsc2V7dmFyIGk9Zml0O3B0Lm11dGF0ZUFwcHJvYWNoPT09RkdyJiYoaT1UNC5yZXF1ZXN0QW5pbWF0aW9uRnJhbWV8fGZpdCksaShmdW5jdGlvbigpe3ZhciBhPURZcigpLG49RWFlLmJlZ2luKCJtdXRhdGUiKTtlLm1hcChhKSxuKCkscigpfSl9fWZ1bmN0aW9uIGdpdCgpeyRhZT0hMH1mdW5jdGlvbiBJYWUoKXskYWU9ITF9ZnVuY3Rpb24gYml0KGUpe2lmKGExdCYmcHQub2JzZXJ2ZU11dGF0aW9ucyl7dmFyIHQ9ZS50cmVlQ2FsbGJhY2sscj10PT09dm9pZCAwP0FBOnQsaT1lLm5vZGVDYWxsYmFjayxhPWk9PT12b2lkIDA/QUE6aSxuPWUucHNldWRvRWxlbWVudHNDYWxsYmFjayxvPW49PT12b2lkIDA/QUE6bixzPWUub2JzZXJ2ZU11dGF0aW9uc1Jvb3QsbD1zPT09dm9pZCAwP3UxOnM7RUE9bmV3IGExdChmdW5jdGlvbihjKXtpZighJGFlKXt2YXIgdT1MNCgpO0VwKGMpLmZvckVhY2goZnVuY3Rpb24oZCl7aWYoZC50eXBlPT09ImNoaWxkTGlzdCImJmQuYWRkZWROb2Rlcy5sZW5ndGg+MCYmIXBpdChkLmFkZGVkTm9kZXNbMF0pJiYocHQuc2VhcmNoUHNldWRvRWxlbWVudHMmJm8oZC50YXJnZXQpLHIoZC50YXJnZXQpKSxkLnR5cGU9PT0iYXR0cmlidXRlcyImJmQudGFyZ2V0LnBhcmVudE5vZGUmJnB0LnNlYXJjaFBzZXVkb0VsZW1lbnRzJiZvKFtkLnRhcmdldF0sITApLGQudHlwZT09PSJhdHRyaWJ1dGVzIiYmcGl0KGQudGFyZ2V0KSYmfmpHci5pbmRleE9mKGQuYXR0cmlidXRlTmFtZSkpaWYoZC5hdHRyaWJ1dGVOYW1lPT09ImNsYXNzIiYmTFlyKGQudGFyZ2V0KSl7dmFyIGg9X0EoYmFlKGQudGFyZ2V0KSksZj1oLnByZWZpeCx4PWguaWNvbk5hbWU7ZC50YXJnZXQuc2V0QXR0cmlidXRlKGRhZSxmfHx1KSx4JiZkLnRhcmdldC5zZXRBdHRyaWJ1dGUodWFlLHgpfWVsc2UgQVlyKGQudGFyZ2V0KSYmYShkLnRhcmdldCl9KX19KSxoYyYmRUEub2JzZXJ2ZShsLHtjaGlsZExpc3Q6ITAsYXR0cmlidXRlczohMCxjaGFyYWN0ZXJEYXRhOiEwLHN1YnRyZWU6ITB9KX19ZnVuY3Rpb24gUFlyKCl7RUEmJkVBLmRpc2Nvbm5lY3QoKX1mdW5jdGlvbiBOWXIoZSl7dmFyIHQ9ZS5nZXRBdHRyaWJ1dGUoInN0eWxlIikscj1bXTtyZXR1cm4gdCYmKHI9dC5zcGxpdCgiOyIpLnJlZHVjZShmdW5jdGlvbihpLGEpe3ZhciBuPWEuc3BsaXQoIjoiKSxvPW5bMF0scz1uLnNsaWNlKDEpO3JldHVybiBvJiZzLmxlbmd0aD4wJiYoaVtvXT1zLmpvaW4oIjoiKS50cmltKCkpLGl9LHt9KSkscn1mdW5jdGlvbiBGWXIoZSl7dmFyIHQ9ZS5nZXRBdHRyaWJ1dGUoImRhdGEtcHJlZml4Iikscj1lLmdldEF0dHJpYnV0ZSgiZGF0YS1pY29uIiksaT1lLmlubmVyVGV4dCE9PXZvaWQgMD9lLmlubmVyVGV4dC50cmltKCk6IiIsYT1fQShiYWUoZSkpO3JldHVybiBhLnByZWZpeHx8KGEucHJlZml4PUw0KCkpLHQmJnImJihhLnByZWZpeD10LGEuaWNvbk5hbWU9ciksYS5pY29uTmFtZSYmYS5wcmVmaXh8fChhLnByZWZpeCYmaS5sZW5ndGg+MCYmKGEuaWNvbk5hbWU9c1lyKGEucHJlZml4LGUuaW5uZXJUZXh0KXx8U2FlKGEucHJlZml4LFkxdChlLmlubmVyVGV4dCkpKSwhYS5pY29uTmFtZSYmcHQuYXV0b0ZldGNoU3ZnJiZlLmZpcnN0Q2hpbGQmJmUuZmlyc3RDaGlsZC5ub2RlVHlwZT09PU5vZGUuVEVYVF9OT0RFJiYoYS5pY29uTmFtZT1lLmZpcnN0Q2hpbGQuZGF0YSkpLGF9ZnVuY3Rpb24gT1lyKGUpe3ZhciB0PUVwKGUuYXR0cmlidXRlcykucmVkdWNlKGZ1bmN0aW9uKHIsaSl7cmV0dXJuIHIubmFtZSE9PSJjbGFzcyImJnIubmFtZSE9PSJzdHlsZSImJihyW2kubmFtZV09aS52YWx1ZSkscn0se30pO3JldHVybiB0fWZ1bmN0aW9uIFJZcigpe3JldHVybntpY29uTmFtZTpudWxsLHByZWZpeDpudWxsLHRyYW5zZm9ybTp0bCxzeW1ib2w6ITEsbWFzazp7aWNvbk5hbWU6bnVsbCxwcmVmaXg6bnVsbCxyZXN0OltdfSxtYXNrSWQ6bnVsbCxleHRyYTp7Y2xhc3NlczpbXSxzdHlsZXM6e30sYXR0cmlidXRlczp7fX19fWZ1bmN0aW9uIHZpdChlKXt2YXIgdD1hcmd1bWVudHMubGVuZ3RoPjEmJmFyZ3VtZW50c1sxXSE9PXZvaWQgMD9hcmd1bWVudHNbMV06e3N0eWxlUGFyc2VyOiEwfSxyPUZZcihlKSxpPXIuaWNvbk5hbWUsYT1yLnByZWZpeCxuPXIucmVzdCxvPU9ZcihlKSxzPXphZSgicGFyc2VOb2RlQXR0cmlidXRlcyIse30sZSksbD10LnN0eWxlUGFyc2VyP05ZcihlKTpbXTtyZXR1cm4gVmUoe2ljb25OYW1lOmkscHJlZml4OmEsdHJhbnNmb3JtOnRsLG1hc2s6e2ljb25OYW1lOm51bGwscHJlZml4Om51bGwscmVzdDpbXX0sbWFza0lkOm51bGwsc3ltYm9sOiExLGV4dHJhOntjbGFzc2VzOm4sc3R5bGVzOmwsYXR0cmlidXRlczpvfX0scyl9ZnVuY3Rpb24geGl0KGUpe3ZhciB0PXB0LmF1dG9SZXBsYWNlU3ZnPT09Im5lc3QiP3ZpdChlLHtzdHlsZVBhcnNlcjohMX0pOnZpdChlKTtyZXR1cm5+dC5leHRyYS5jbGFzc2VzLmluZGV4T2YoTzF0KT9BNCgiZ2VuZXJhdGVMYXllcnNUZXh0IixlLHQpOkE0KCJnZW5lcmF0ZVN2Z1JlcGxhY2VtZW50TXV0YXRpb24iLGUsdCl9ZnVuY3Rpb24gSFlyKCl7cmV0dXJuW10uY29uY2F0KE0yKEMxdCksTTIoTDF0KSl9ZnVuY3Rpb24geWl0KGUpe3ZhciB0PWFyZ3VtZW50cy5sZW5ndGg+MSYmYXJndW1lbnRzWzFdIT09dm9pZCAwP2FyZ3VtZW50c1sxXTpudWxsO2lmKCFoYylyZXR1cm4gUHJvbWlzZS5yZXNvbHZlKCk7dmFyIHI9dTEuZG9jdW1lbnRFbGVtZW50LmNsYXNzTGlzdCxpPWZ1bmN0aW9uKGQpe3JldHVybiByLmFkZCgiIi5jb25jYXQoJDF0LCItIikuY29uY2F0KGQpKX0sYT1mdW5jdGlvbihkKXtyZXR1cm4gci5yZW1vdmUoIiIuY29uY2F0KCQxdCwiLSIpLmNvbmNhdChkKSl9LG49cHQuYXV0b0ZldGNoU3ZnP0hZcigpOnMxdC5jb25jYXQoT2JqZWN0LmtleXMoQllyKSk7bi5pbmNsdWRlcygiZmEiKXx8bi5wdXNoKCJmYSIpO3ZhciBvPVsiLiIuY29uY2F0KE8xdCwiOm5vdChbIikuY29uY2F0KENkLCJdKSIpXS5jb25jYXQobi5tYXAoZnVuY3Rpb24odSl7cmV0dXJuIi4iLmNvbmNhdCh1LCI6bm90KFsiKS5jb25jYXQoQ2QsIl0pIil9KSkuam9pbigiLCAiKTtpZihvLmxlbmd0aD09PTApcmV0dXJuIFByb21pc2UucmVzb2x2ZSgpO3ZhciBzPVtdO3RyeXtzPUVwKGUucXVlcnlTZWxlY3RvckFsbChvKSl9Y2F0Y2h7fWlmKHMubGVuZ3RoPjApaSgicGVuZGluZyIpLGEoImNvbXBsZXRlIik7ZWxzZSByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKCk7dmFyIGw9RWFlLmJlZ2luKCJvblRyZWUiKSxjPXMucmVkdWNlKGZ1bmN0aW9uKHUsZCl7dHJ5e3ZhciBoPXhpdChkKTtoJiZ1LnB1c2goaCl9Y2F0Y2goZil7UDF0fHxmLm5hbWU9PT0iTWlzc2luZ0ljb24iJiZjb25zb2xlLmVycm9yKGYpfXJldHVybiB1fSxbXSk7cmV0dXJuIG5ldyBQcm9taXNlKGZ1bmN0aW9uKHUsZCl7UHJvbWlzZS5hbGwoYykudGhlbihmdW5jdGlvbihoKXttaXQoaCxmdW5jdGlvbigpe2koImFjdGl2ZSIpLGkoImNvbXBsZXRlIiksYSgicGVuZGluZyIpLHR5cGVvZiB0PT0iZnVuY3Rpb24iJiZ0KCksbCgpLHUoKX0pfSkuY2F0Y2goZnVuY3Rpb24oaCl7bCgpLGQoaCl9KX0pfWZ1bmN0aW9uIHFZcihlKXt2YXIgdD1hcmd1bWVudHMubGVuZ3RoPjEmJmFyZ3VtZW50c1sxXSE9PXZvaWQgMD9hcmd1bWVudHNbMV06bnVsbDt4aXQoZSkudGhlbihmdW5jdGlvbihyKXtyJiZtaXQoW3JdLHQpfSl9ZnVuY3Rpb24gallyKGUpe3JldHVybiBmdW5jdGlvbih0KXt2YXIgcj1hcmd1bWVudHMubGVuZ3RoPjEmJmFyZ3VtZW50c1sxXSE9PXZvaWQgMD9hcmd1bWVudHNbMV06e30saT0odHx8e30pLmljb24/dDpDYWUodHx8e30pLGE9ci5tYXNrO3JldHVybiBhJiYoYT0oYXx8e30pLmljb24/YTpDYWUoYXx8e30pKSxlKGksVmUoVmUoe30scikse30se21hc2s6YX0pKX19ZnVuY3Rpb24gWFlyKGUpe3ZhciB0PWUucmVwbGFjZSh3aXQsIiIpO3JldHVybiBZMXQoTTIodClbMF18fCIiKX1mdW5jdGlvbiBRWXIoZSl7dmFyIHQ9ZS5nZXRQcm9wZXJ0eVZhbHVlKCJmb250LWZlYXR1cmUtc2V0dGluZ3MiKS5pbmNsdWRlcygic3MwMSIpLHI9ZS5nZXRQcm9wZXJ0eVZhbHVlKCJjb250ZW50IiksaT1yLnJlcGxhY2Uod2l0LCIiKSxhPWkuY29kZVBvaW50QXQoMCksbj1hPj1NaXRbMF0mJmE8PU1pdFsxXSxvPWkubGVuZ3RoPT09Mj9pWzBdPT09aVsxXTohMTtyZXR1cm4gbnx8b3x8dH1mdW5jdGlvbiBKWXIoZSx0KXt2YXIgcj1lLnJlcGxhY2UoL15bJyJdfFsnIl0kL2csIiIpLnRvTG93ZXJDYXNlKCksaT1wYXJzZUludCh0KSxhPWlzTmFOKGkpPyJub3JtYWwiOmk7cmV0dXJuKFBhZVtyXXx8e30pW2FdfHxaWXJbcl19ZnVuY3Rpb24gU2l0KGUsdCl7dmFyIHI9IiIuY29uY2F0KE5HcikuY29uY2F0KHQucmVwbGFjZSgiOiIsIi0iKSk7cmV0dXJuIG5ldyBQcm9taXNlKGZ1bmN0aW9uKGksYSl7aWYoZS5nZXRBdHRyaWJ1dGUocikhPT1udWxsKXJldHVybiBpKCk7dmFyIG49RXAoZS5jaGlsZHJlbiksbz1uLmZpbHRlcihmdW5jdGlvbihNKXtyZXR1cm4gTS5nZXRBdHRyaWJ1dGUoY2FlKT09PXR9KVswXSxzPVQ0LmdldENvbXB1dGVkU3R5bGUoZSx0KSxsPXMuZ2V0UHJvcGVydHlWYWx1ZSgiZm9udC1mYW1pbHkiKSxjPWwubWF0Y2goSEdyKSx1PXMuZ2V0UHJvcGVydHlWYWx1ZSgiZm9udC13ZWlnaHQiKSxkPXMuZ2V0UHJvcGVydHlWYWx1ZSgiY29udGVudCIpO2lmKG8mJiFjKXJldHVybiBlLnJlbW92ZUNoaWxkKG8pLGkoKTtpZihjJiZkIT09Im5vbmUiJiZkIT09IiIpe3ZhciBoPXMuZ2V0UHJvcGVydHlWYWx1ZSgiY29udGVudCIpLGY9SllyKGwsdSkseD1YWXIoaCksdj1jWzBdLnN0YXJ0c1dpdGgoIkZvbnRBd2Vzb21lIiksYj1RWXIocykseT1TYWUoZix4KSx3PXk7aWYodil7dmFyIGs9bFlyKHgpO2suaWNvbk5hbWUmJmsucHJlZml4JiYoeT1rLmljb25OYW1lLGY9ay5wcmVmaXgpfWlmKHkmJiFiJiYoIW98fG8uZ2V0QXR0cmlidXRlKGRhZSkhPT1mfHxvLmdldEF0dHJpYnV0ZSh1YWUpIT09dykpe2Uuc2V0QXR0cmlidXRlKHIsdyksbyYmZS5yZW1vdmVDaGlsZChvKTt2YXIgTz1SWXIoKSx6PU8uZXh0cmE7ei5hdHRyaWJ1dGVzW2NhZV09dCxBYWUoeSxmKS50aGVuKGZ1bmN0aW9uKE0pe3ZhciBGPVRhZShWZShWZSh7fSxPKSx7fSx7aWNvbnM6e21haW46TSxtYXNrOmFpdCgpfSxwcmVmaXg6ZixpY29uTmFtZTp3LGV4dHJhOnosd2F0Y2hhYmxlOiEwfSkpLEQ9dTEuY3JlYXRlRWxlbWVudE5TKCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIsInN2ZyIpO3Q9PT0iOjpiZWZvcmUiP2UuaW5zZXJ0QmVmb3JlKEQsZS5maXJzdENoaWxkKTplLmFwcGVuZENoaWxkKEQpLEQub3V0ZXJIVE1MPUYubWFwKGZ1bmN0aW9uKE4pe3JldHVybiBiZyhOKX0pLmpvaW4oYApgKSxlLnJlbW92ZUF0dHJpYnV0ZShyKSxpKCl9KS5jYXRjaChhKX1lbHNlIGkoKX1lbHNlIGkoKX0pfWZ1bmN0aW9uIEtZcihlKXtyZXR1cm4gUHJvbWlzZS5hbGwoW1NpdChlLCI6OmJlZm9yZSIpLFNpdChlLCI6OmFmdGVyIildKX1mdW5jdGlvbiBlWnIoZSl7cmV0dXJuIGUucGFyZW50Tm9kZSE9PWRvY3VtZW50LmhlYWQmJiF+T0dyLmluZGV4T2YoZS50YWdOYW1lLnRvVXBwZXJDYXNlKCkpJiYhZS5nZXRBdHRyaWJ1dGUoY2FlKSYmKCFlLnBhcmVudE5vZGV8fGUucGFyZW50Tm9kZS50YWdOYW1lIT09InN2ZyIpfWZ1bmN0aW9uIHppdChlKXt2YXIgdD1hcmd1bWVudHMubGVuZ3RoPjEmJmFyZ3VtZW50c1sxXSE9PXZvaWQgMD9hcmd1bWVudHNbMV06ITE7aWYoaGMpe3ZhciByO2lmKHQpcj1lO2Vsc2UgaWYocHQuc2VhcmNoUHNldWRvRWxlbWVudHNGdWxsU2NhbilyPWUucXVlcnlTZWxlY3RvckFsbCgiKiIpO2Vsc2V7dmFyIGk9bmV3IFNldCxhPXhBKGRvY3VtZW50LnN0eWxlU2hlZXRzKSxuO3RyeXtmb3IoYS5zKCk7IShuPWEubigpKS5kb25lOyl7dmFyIG89bi52YWx1ZTt0cnl7dmFyIHM9eEEoby5jc3NSdWxlcyksbDt0cnl7Zm9yKHMucygpOyEobD1zLm4oKSkuZG9uZTspe3ZhciBjPWwudmFsdWUsdT1yWnIoYy5zZWxlY3RvclRleHQpLGQ9eEEodSksaDt0cnl7Zm9yKGQucygpOyEoaD1kLm4oKSkuZG9uZTspe3ZhciBmPWgudmFsdWU7aS5hZGQoZil9fWNhdGNoKHYpe2QuZSh2KX1maW5hbGx5e2QuZigpfX19Y2F0Y2godil7cy5lKHYpfWZpbmFsbHl7cy5mKCl9fWNhdGNoKHYpe3B0LnNlYXJjaFBzZXVkb0VsZW1lbnRzV2FybmluZ3MmJmNvbnNvbGUud2FybigiRm9udCBBd2Vzb21lOiBjYW5ub3QgcGFyc2Ugc3R5bGVzaGVldDogIi5jb25jYXQoby5ocmVmLCIgKCIpLmNvbmNhdCh2Lm1lc3NhZ2UsYCkKSWYgaXQgZGVjbGFyZXMgYW55IEZvbnQgQXdlc29tZSBDU1MgcHNldWRvLWVsZW1lbnRzLCB0aGV5IHdpbGwgbm90IGJlIHJlbmRlcmVkIGFzIFNWRyBpY29ucy4gQWRkIGNyb3Nzb3JpZ2luPSJhbm9ueW1vdXMiIHRvIHRoZSA8bGluaz4sIGVuYWJsZSBzZWFyY2hQc2V1ZG9FbGVtZW50c0Z1bGxTY2FuIGZvciBzbG93ZXIgYnV0IG1vcmUgdGhvcm91Z2ggRE9NIHBhcnNpbmcsIG9yIHN1cHByZXNzIHRoaXMgd2FybmluZyBieSBzZXR0aW5nIHNlYXJjaFBzZXVkb0VsZW1lbnRzV2FybmluZ3MgdG8gZmFsc2UuYCkpfX19Y2F0Y2godil7YS5lKHYpfWZpbmFsbHl7YS5mKCl9aWYoIWkuc2l6ZSlyZXR1cm47dmFyIHg9QXJyYXkuZnJvbShpKS5qb2luKCIsICIpO3RyeXtyPWUucXVlcnlTZWxlY3RvckFsbCh4KX1jYXRjaHt9fXJldHVybiBuZXcgUHJvbWlzZShmdW5jdGlvbih2LGIpe3ZhciB5PUVwKHIpLmZpbHRlcihlWnIpLm1hcChLWXIpLHc9RWFlLmJlZ2luKCJzZWFyY2hQc2V1ZG9FbGVtZW50cyIpO2dpdCgpLFByb21pc2UuYWxsKHkpLnRoZW4oZnVuY3Rpb24oKXt3KCksSWFlKCksdigpfSkuY2F0Y2goZnVuY3Rpb24oKXt3KCksSWFlKCksYigpfSl9KX19ZnVuY3Rpb24gX2l0KGUpe3ZhciB0PWFyZ3VtZW50cy5sZW5ndGg+MSYmYXJndW1lbnRzWzFdIT09dm9pZCAwP2FyZ3VtZW50c1sxXTohMDtyZXR1cm4gZS5hdHRyaWJ1dGVzJiYoZS5hdHRyaWJ1dGVzLmZpbGx8fHQpJiYoZS5hdHRyaWJ1dGVzLmZpbGw9ImJsYWNrIiksZX1mdW5jdGlvbiBvWnIoZSl7cmV0dXJuIGUudGFnPT09ImciP2UuY2hpbGRyZW46W2VdfXZhciBKcnQsYWFlLEtydCxlMXQsdDF0LGFXcixyMXQsaTF0LFQ0LHUxLGExdCxrQSxxZWEsaGMsbjF0LG5hZSxuV3Isb1dyLG8xdCxzV3IsczF0LEppLGhnLGwxdCxjMXQsZDF0LHUxdCxwMXQsaDF0LGYxdCxtMXQsZzF0LGIxdCx2MXQseDF0LHkxdCx3MXQsTTF0LGsxdCxTMXQsbFdyLGNXcixkV3IsdVdyLHBXcixoV3IsZldyLG1XcixnV3IsYldyLHZXcix4V3IseVdyLHdXcixNV3Isa1dyLFNXcix6V3IsQ1dyLHoxdCxqZWEsVFdyLF9XcixMV3IsQVdyLEMxdCxUMXQsRFdyLEVXciwkV3IsSVdyLFBXcixWZWEsTldyLEZXcixPV3IsXzF0LG9hZSxTQSxSV3IsQldyLEhXcixxV3IsaldyLFZXcixVV3IsV1dyLEdXcixZV3IsWldyLFhXcixRV3IsSldyLEtXcixlR3IsdEdyLHJHcixpR3IsYUdyLG5HcixvR3Isc0dyLGxHcixjR3IsZEdyLHVHcixwR3IsaEdyLGZHcixtR3IsZ0dyLGJHcix2R3IseEdyLHlHcix3R3IsTUdyLGtHcixVZWEsU0dyLHpHcixDR3IsVEdyLFdlYSxfR3IsTEdyLHNhZSxBR3IsTDF0LERHcixBMXQsRUdyLCRHcixJR3IsUEdyLGZjLGxhZSxEMXQsRTF0LENkLGNhZSxOR3IsZGFlLHVhZSwkMXQsRkdyLE9HcixJMXQsUDF0LE4xdCxSR3IscGFlLEYxdCxoYWUsZmFlLG1hZSxHZWEsQkdyLE8xdCxIR3IscUdyLFllYSxqR3IsZ2FlLFZHcixtZyxCMXQsRHAscHQsZ2csXzQsdGwsWkdyLEtHcixWMXQsZVlyLG1jLGsyLFUxdCxXMXQsQ0EscllyLHlhZSxNYWUsUzIsWmVhLFhlYSx2ZyxpWXIsWDF0LGFZcixrYWUsUTF0LEoxdCxLMXQsZWl0LHRpdCxyaXQsYWl0LG9pdCxwWXIsaFlyLG1ZcixzaXQsJHAsSXAsZ1lyLGxpdCx2WXIseFlyLHlZcixTbix3WXIsX2FlLENZcixkaXQsRGFlLHhnLF9Zcix1aXQsRWFlLEFBLERBLCRhZSxFQSxCWXIsVllyLFVZcixXWXIsR1lyLFlZcix3aXQsTWl0LGtpdCxQYWUsWllyLHRacixyWnIsaVpyLENpdCxhWnIsVGl0LG5acixOYWUsc1pyLGxacixjWnIsZFpyLHVacixwWnIsaFpyLGZacixtWnIsZ1pyLGJacixGYWUsdlpyLHhacix5WnIsUjF0LExpdD1wKCgpPT57SnJ0PWZ1bmN0aW9uKCl7fSxhYWU9e30sS3J0PXt9LGUxdD1udWxsLHQxdD17bWFyazpKcnQsbWVhc3VyZTpKcnR9O3RyeXt0eXBlb2Ygd2luZG93PCJ1IiYmKGFhZT13aW5kb3cpLHR5cGVvZiBkb2N1bWVudDwidSImJihLcnQ9ZG9jdW1lbnQpLHR5cGVvZiBNdXRhdGlvbk9ic2VydmVyPCJ1IiYmKGUxdD1NdXRhdGlvbk9ic2VydmVyKSx0eXBlb2YgcGVyZm9ybWFuY2U8InUiJiYodDF0PXBlcmZvcm1hbmNlKX1jYXRjaHt9YVdyPWFhZS5uYXZpZ2F0b3J8fHt9LHIxdD1hV3IudXNlckFnZW50LGkxdD1yMXQ9PT12b2lkIDA/IiI6cjF0LFQ0PWFhZSx1MT1LcnQsYTF0PWUxdCxrQT10MXQscWVhPSEhVDQuZG9jdW1lbnQsaGM9ISF1MS5kb2N1bWVudEVsZW1lbnQmJiEhdTEuaGVhZCYmdHlwZW9mIHUxLmFkZEV2ZW50TGlzdGVuZXI9PSJmdW5jdGlvbiImJnR5cGVvZiB1MS5jcmVhdGVFbGVtZW50PT0iZnVuY3Rpb24iLG4xdD1+aTF0LmluZGV4T2YoIk1TSUUiKXx8fmkxdC5pbmRleE9mKCJUcmlkZW50LyIpLG5Xcj0vZmEoa3xrZHxzfHJ8bHx0fGR8ZHJ8ZGx8ZHR8YnxzbHJ8c2xwcnx3c2J8dGx8bnN8bmRzfGVzfGd0fGpyfGpmcnxqZHJ8dXNifHVmc2J8dWRzYnxjcnxzc3xzcnxzbHxzdHxzZHN8c2RyfHNkbHxzZHQpP1tcLVwgXS8sb1dyPS9Gb250ID9Bd2Vzb21lID8oWzU2NyBdKikoU29saWR8UmVndWxhcnxMaWdodHxUaGlufER1b3RvbmV8QnJhbmRzfEZyZWV8UHJvfFNoYXJwIER1b3RvbmV8U2hhcnB8S2l0fE5vdGRvZyBEdW98Tm90ZG9nfENoaXNlbHxFdGNofEdyYXBoaXRlfFRodW1icHJpbnR8SmVsbHkgRmlsbHxKZWxseSBEdW98SmVsbHl8VXRpbGl0eXxVdGlsaXR5IEZpbGx8VXRpbGl0eSBEdW98U2xhYiBQcmVzc3xTbGFifFdoaXRlYm9hcmQpPy4qL2ksbzF0PXtjbGFzc2ljOntmYToic29saWQiLGZhczoic29saWQiLCJmYS1zb2xpZCI6InNvbGlkIixmYXI6InJlZ3VsYXIiLCJmYS1yZWd1bGFyIjoicmVndWxhciIsZmFsOiJsaWdodCIsImZhLWxpZ2h0IjoibGlnaHQiLGZhdDoidGhpbiIsImZhLXRoaW4iOiJ0aGluIixmYWI6ImJyYW5kcyIsImZhLWJyYW5kcyI6ImJyYW5kcyJ9LGR1b3RvbmU6e2ZhOiJzb2xpZCIsZmFkOiJzb2xpZCIsImZhLXNvbGlkIjoic29saWQiLCJmYS1kdW90b25lIjoic29saWQiLGZhZHI6InJlZ3VsYXIiLCJmYS1yZWd1bGFyIjoicmVndWxhciIsZmFkbDoibGlnaHQiLCJmYS1saWdodCI6ImxpZ2h0IixmYWR0OiJ0aGluIiwiZmEtdGhpbiI6InRoaW4ifSxzaGFycDp7ZmE6InNvbGlkIixmYXNzOiJzb2xpZCIsImZhLXNvbGlkIjoic29saWQiLGZhc3I6InJlZ3VsYXIiLCJmYS1yZWd1bGFyIjoicmVndWxhciIsZmFzbDoibGlnaHQiLCJmYS1saWdodCI6ImxpZ2h0IixmYXN0OiJ0aGluIiwiZmEtdGhpbiI6InRoaW4ifSwic2hhcnAtZHVvdG9uZSI6e2ZhOiJzb2xpZCIsZmFzZHM6InNvbGlkIiwiZmEtc29saWQiOiJzb2xpZCIsZmFzZHI6InJlZ3VsYXIiLCJmYS1yZWd1bGFyIjoicmVndWxhciIsZmFzZGw6ImxpZ2h0IiwiZmEtbGlnaHQiOiJsaWdodCIsZmFzZHQ6InRoaW4iLCJmYS10aGluIjoidGhpbiJ9LHNsYWI6eyJmYS1yZWd1bGFyIjoicmVndWxhciIsZmFzbHI6InJlZ3VsYXIifSwic2xhYi1wcmVzcyI6eyJmYS1yZWd1bGFyIjoicmVndWxhciIsZmFzbHByOiJyZWd1bGFyIn0sdGh1bWJwcmludDp7ImZhLWxpZ2h0IjoibGlnaHQiLGZhdGw6ImxpZ2h0In0sd2hpdGVib2FyZDp7ImZhLXNlbWlib2xkIjoic2VtaWJvbGQiLGZhd3NiOiJzZW1pYm9sZCJ9LG5vdGRvZzp7ImZhLXNvbGlkIjoic29saWQiLGZhbnM6InNvbGlkIn0sIm5vdGRvZy1kdW8iOnsiZmEtc29saWQiOiJzb2xpZCIsZmFuZHM6InNvbGlkIn0sZXRjaDp7ImZhLXNvbGlkIjoic29saWQiLGZhZXM6InNvbGlkIn0sZ3JhcGhpdGU6eyJmYS10aGluIjoidGhpbiIsZmFndDoidGhpbiJ9LGplbGx5OnsiZmEtcmVndWxhciI6InJlZ3VsYXIiLGZhanI6InJlZ3VsYXIifSwiamVsbHktZmlsbCI6eyJmYS1yZWd1bGFyIjoicmVndWxhciIsZmFqZnI6InJlZ3VsYXIifSwiamVsbHktZHVvIjp7ImZhLXJlZ3VsYXIiOiJyZWd1bGFyIixmYWpkcjoicmVndWxhciJ9LGNoaXNlbDp7ImZhLXJlZ3VsYXIiOiJyZWd1bGFyIixmYWNyOiJyZWd1bGFyIn0sdXRpbGl0eTp7ImZhLXNlbWlib2xkIjoic2VtaWJvbGQiLGZhdXNiOiJzZW1pYm9sZCJ9LCJ1dGlsaXR5LWR1byI6eyJmYS1zZW1pYm9sZCI6InNlbWlib2xkIixmYXVkc2I6InNlbWlib2xkIn0sInV0aWxpdHktZmlsbCI6eyJmYS1zZW1pYm9sZCI6InNlbWlib2xkIixmYXVmc2I6InNlbWlib2xkIn19LHNXcj17R1JPVVA6ImR1b3RvbmUtZ3JvdXAiLFNXQVBfT1BBQ0lUWToic3dhcC1vcGFjaXR5IixQUklNQVJZOiJwcmltYXJ5IixTRUNPTkRBUlk6InNlY29uZGFyeSJ9LHMxdD1bImZhLWNsYXNzaWMiLCJmYS1kdW90b25lIiwiZmEtc2hhcnAiLCJmYS1zaGFycC1kdW90b25lIiwiZmEtdGh1bWJwcmludCIsImZhLXdoaXRlYm9hcmQiLCJmYS1ub3Rkb2ciLCJmYS1ub3Rkb2ctZHVvIiwiZmEtY2hpc2VsIiwiZmEtZXRjaCIsImZhLWdyYXBoaXRlIiwiZmEtamVsbHkiLCJmYS1qZWxseS1maWxsIiwiZmEtamVsbHktZHVvIiwiZmEtc2xhYiIsImZhLXNsYWItcHJlc3MiLCJmYS11dGlsaXR5IiwiZmEtdXRpbGl0eS1kdW8iLCJmYS11dGlsaXR5LWZpbGwiXSxKaT0iY2xhc3NpYyIsaGc9ImR1b3RvbmUiLGwxdD0ic2hhcnAiLGMxdD0ic2hhcnAtZHVvdG9uZSIsZDF0PSJjaGlzZWwiLHUxdD0iZXRjaCIscDF0PSJncmFwaGl0ZSIsaDF0PSJqZWxseSIsZjF0PSJqZWxseS1kdW8iLG0xdD0iamVsbHktZmlsbCIsZzF0PSJub3Rkb2ciLGIxdD0ibm90ZG9nLWR1byIsdjF0PSJzbGFiIix4MXQ9InNsYWItcHJlc3MiLHkxdD0idGh1bWJwcmludCIsdzF0PSJ1dGlsaXR5IixNMXQ9InV0aWxpdHktZHVvIixrMXQ9InV0aWxpdHktZmlsbCIsUzF0PSJ3aGl0ZWJvYXJkIixsV3I9IkNsYXNzaWMiLGNXcj0iRHVvdG9uZSIsZFdyPSJTaGFycCIsdVdyPSJTaGFycCBEdW90b25lIixwV3I9IkNoaXNlbCIsaFdyPSJFdGNoIixmV3I9IkdyYXBoaXRlIixtV3I9IkplbGx5IixnV3I9IkplbGx5IER1byIsYldyPSJKZWxseSBGaWxsIix2V3I9Ik5vdGRvZyIseFdyPSJOb3Rkb2cgRHVvIix5V3I9IlNsYWIiLHdXcj0iU2xhYiBQcmVzcyIsTVdyPSJUaHVtYnByaW50IixrV3I9IlV0aWxpdHkiLFNXcj0iVXRpbGl0eSBEdW8iLHpXcj0iVXRpbGl0eSBGaWxsIixDV3I9IldoaXRlYm9hcmQiLHoxdD1bSmksaGcsbDF0LGMxdCxkMXQsdTF0LHAxdCxoMXQsZjF0LG0xdCxnMXQsYjF0LHYxdCx4MXQseTF0LHcxdCxNMXQsazF0LFMxdF0samVhPShuYWU9e30sJHQoJHQoJHQoJHQoJHQoJHQoJHQoJHQoJHQoJHQobmFlLEppLGxXciksaGcsY1dyKSxsMXQsZFdyKSxjMXQsdVdyKSxkMXQscFdyKSx1MXQsaFdyKSxwMXQsZldyKSxoMXQsbVdyKSxmMXQsZ1dyKSxtMXQsYldyKSwkdCgkdCgkdCgkdCgkdCgkdCgkdCgkdCgkdChuYWUsZzF0LHZXciksYjF0LHhXciksdjF0LHlXcikseDF0LHdXcikseTF0LE1XciksdzF0LGtXciksTTF0LFNXciksazF0LHpXciksUzF0LENXcikpLFRXcj17Y2xhc3NpYzp7OTAwOiJmYXMiLDQwMDoiZmFyIixub3JtYWw6ImZhciIsMzAwOiJmYWwiLDEwMDoiZmF0In0sZHVvdG9uZTp7OTAwOiJmYWQiLDQwMDoiZmFkciIsMzAwOiJmYWRsIiwxMDA6ImZhZHQifSxzaGFycDp7OTAwOiJmYXNzIiw0MDA6ImZhc3IiLDMwMDoiZmFzbCIsMTAwOiJmYXN0In0sInNoYXJwLWR1b3RvbmUiOns5MDA6ImZhc2RzIiw0MDA6ImZhc2RyIiwzMDA6ImZhc2RsIiwxMDA6ImZhc2R0In0sc2xhYjp7NDAwOiJmYXNsciJ9LCJzbGFiLXByZXNzIjp7NDAwOiJmYXNscHIifSx3aGl0ZWJvYXJkOns2MDA6ImZhd3NiIn0sdGh1bWJwcmludDp7MzAwOiJmYXRsIn0sbm90ZG9nOns5MDA6ImZhbnMifSwibm90ZG9nLWR1byI6ezkwMDoiZmFuZHMifSxldGNoOns5MDA6ImZhZXMifSxncmFwaGl0ZTp7MTAwOiJmYWd0In0sY2hpc2VsOns0MDA6ImZhY3IifSxqZWxseTp7NDAwOiJmYWpyIn0sImplbGx5LWZpbGwiOns0MDA6ImZhamZyIn0sImplbGx5LWR1byI6ezQwMDoiZmFqZHIifSx1dGlsaXR5Ons2MDA6ImZhdXNiIn0sInV0aWxpdHktZHVvIjp7NjAwOiJmYXVkc2IifSwidXRpbGl0eS1maWxsIjp7NjAwOiJmYXVmc2IifX0sX1dyPXsiRm9udCBBd2Vzb21lIDcgRnJlZSI6ezkwMDoiZmFzIiw0MDA6ImZhciJ9LCJGb250IEF3ZXNvbWUgNyBQcm8iOns5MDA6ImZhcyIsNDAwOiJmYXIiLG5vcm1hbDoiZmFyIiwzMDA6ImZhbCIsMTAwOiJmYXQifSwiRm9udCBBd2Vzb21lIDcgQnJhbmRzIjp7NDAwOiJmYWIiLG5vcm1hbDoiZmFiIn0sIkZvbnQgQXdlc29tZSA3IER1b3RvbmUiOns5MDA6ImZhZCIsNDAwOiJmYWRyIixub3JtYWw6ImZhZHIiLDMwMDoiZmFkbCIsMTAwOiJmYWR0In0sIkZvbnQgQXdlc29tZSA3IFNoYXJwIjp7OTAwOiJmYXNzIiw0MDA6ImZhc3IiLG5vcm1hbDoiZmFzciIsMzAwOiJmYXNsIiwxMDA6ImZhc3QifSwiRm9udCBBd2Vzb21lIDcgU2hhcnAgRHVvdG9uZSI6ezkwMDoiZmFzZHMiLDQwMDoiZmFzZHIiLG5vcm1hbDoiZmFzZHIiLDMwMDoiZmFzZGwiLDEwMDoiZmFzZHQifSwiRm9udCBBd2Vzb21lIDcgSmVsbHkiOns0MDA6ImZhanIiLG5vcm1hbDoiZmFqciJ9LCJGb250IEF3ZXNvbWUgNyBKZWxseSBGaWxsIjp7NDAwOiJmYWpmciIsbm9ybWFsOiJmYWpmciJ9LCJGb250IEF3ZXNvbWUgNyBKZWxseSBEdW8iOns0MDA6ImZhamRyIixub3JtYWw6ImZhamRyIn0sIkZvbnQgQXdlc29tZSA3IFNsYWIiOns0MDA6ImZhc2xyIixub3JtYWw6ImZhc2xyIn0sIkZvbnQgQXdlc29tZSA3IFNsYWIgUHJlc3MiOns0MDA6ImZhc2xwciIsbm9ybWFsOiJmYXNscHIifSwiRm9udCBBd2Vzb21lIDcgVGh1bWJwcmludCI6ezMwMDoiZmF0bCIsbm9ybWFsOiJmYXRsIn0sIkZvbnQgQXdlc29tZSA3IE5vdGRvZyI6ezkwMDoiZmFucyIsbm9ybWFsOiJmYW5zIn0sIkZvbnQgQXdlc29tZSA3IE5vdGRvZyBEdW8iOns5MDA6ImZhbmRzIixub3JtYWw6ImZhbmRzIn0sIkZvbnQgQXdlc29tZSA3IEV0Y2giOns5MDA6ImZhZXMiLG5vcm1hbDoiZmFlcyJ9LCJGb250IEF3ZXNvbWUgNyBHcmFwaGl0ZSI6ezEwMDoiZmFndCIsbm9ybWFsOiJmYWd0In0sIkZvbnQgQXdlc29tZSA3IENoaXNlbCI6ezQwMDoiZmFjciIsbm9ybWFsOiJmYWNyIn0sIkZvbnQgQXdlc29tZSA3IFdoaXRlYm9hcmQiOns2MDA6ImZhd3NiIixub3JtYWw6ImZhd3NiIn0sIkZvbnQgQXdlc29tZSA3IFV0aWxpdHkiOns2MDA6ImZhdXNiIixub3JtYWw6ImZhdXNiIn0sIkZvbnQgQXdlc29tZSA3IFV0aWxpdHkgRHVvIjp7NjAwOiJmYXVkc2IiLG5vcm1hbDoiZmF1ZHNiIn0sIkZvbnQgQXdlc29tZSA3IFV0aWxpdHkgRmlsbCI6ezYwMDoiZmF1ZnNiIixub3JtYWw6ImZhdWZzYiJ9fSxMV3I9bmV3IE1hcChbWyJjbGFzc2ljIix7ZGVmYXVsdFNob3J0UHJlZml4SWQ6ImZhcyIsZGVmYXVsdFN0eWxlSWQ6InNvbGlkIixzdHlsZUlkczpbInNvbGlkIiwicmVndWxhciIsImxpZ2h0IiwidGhpbiIsImJyYW5kcyJdLGZ1dHVyZVN0eWxlSWRzOltdLGRlZmF1bHRGb250V2VpZ2h0OjkwMH1dLFsiZHVvdG9uZSIse2RlZmF1bHRTaG9ydFByZWZpeElkOiJmYWQiLGRlZmF1bHRTdHlsZUlkOiJzb2xpZCIsc3R5bGVJZHM6WyJzb2xpZCIsInJlZ3VsYXIiLCJsaWdodCIsInRoaW4iXSxmdXR1cmVTdHlsZUlkczpbXSxkZWZhdWx0Rm9udFdlaWdodDo5MDB9XSxbInNoYXJwIix7ZGVmYXVsdFNob3J0UHJlZml4SWQ6ImZhc3MiLGRlZmF1bHRTdHlsZUlkOiJzb2xpZCIsc3R5bGVJZHM6WyJzb2xpZCIsInJlZ3VsYXIiLCJsaWdodCIsInRoaW4iXSxmdXR1cmVTdHlsZUlkczpbXSxkZWZhdWx0Rm9udFdlaWdodDo5MDB9XSxbInNoYXJwLWR1b3RvbmUiLHtkZWZhdWx0U2hvcnRQcmVmaXhJZDoiZmFzZHMiLGRlZmF1bHRTdHlsZUlkOiJzb2xpZCIsc3R5bGVJZHM6WyJzb2xpZCIsInJlZ3VsYXIiLCJsaWdodCIsInRoaW4iXSxmdXR1cmVTdHlsZUlkczpbXSxkZWZhdWx0Rm9udFdlaWdodDo5MDB9XSxbImNoaXNlbCIse2RlZmF1bHRTaG9ydFByZWZpeElkOiJmYWNyIixkZWZhdWx0U3R5bGVJZDoicmVndWxhciIsc3R5bGVJZHM6WyJyZWd1bGFyIl0sZnV0dXJlU3R5bGVJZHM6W10sZGVmYXVsdEZvbnRXZWlnaHQ6NDAwfV0sWyJldGNoIix7ZGVmYXVsdFNob3J0UHJlZml4SWQ6ImZhZXMiLGRlZmF1bHRTdHlsZUlkOiJzb2xpZCIsc3R5bGVJZHM6WyJzb2xpZCJdLGZ1dHVyZVN0eWxlSWRzOltdLGRlZmF1bHRGb250V2VpZ2h0OjkwMH1dLFsiZ3JhcGhpdGUiLHtkZWZhdWx0U2hvcnRQcmVmaXhJZDoiZmFndCIsZGVmYXVsdFN0eWxlSWQ6InRoaW4iLHN0eWxlSWRzOlsidGhpbiJdLGZ1dHVyZVN0eWxlSWRzOltdLGRlZmF1bHRGb250V2VpZ2h0OjEwMH1dLFsiamVsbHkiLHtkZWZhdWx0U2hvcnRQcmVmaXhJZDoiZmFqciIsZGVmYXVsdFN0eWxlSWQ6InJlZ3VsYXIiLHN0eWxlSWRzOlsicmVndWxhciJdLGZ1dHVyZVN0eWxlSWRzOltdLGRlZmF1bHRGb250V2VpZ2h0OjQwMH1dLFsiamVsbHktZHVvIix7ZGVmYXVsdFNob3J0UHJlZml4SWQ6ImZhamRyIixkZWZhdWx0U3R5bGVJZDoicmVndWxhciIsc3R5bGVJZHM6WyJyZWd1bGFyIl0sZnV0dXJlU3R5bGVJZHM6W10sZGVmYXVsdEZvbnRXZWlnaHQ6NDAwfV0sWyJqZWxseS1maWxsIix7ZGVmYXVsdFNob3J0UHJlZml4SWQ6ImZhamZyIixkZWZhdWx0U3R5bGVJZDoicmVndWxhciIsc3R5bGVJZHM6WyJyZWd1bGFyIl0sZnV0dXJlU3R5bGVJZHM6W10sZGVmYXVsdEZvbnRXZWlnaHQ6NDAwfV0sWyJub3Rkb2ciLHtkZWZhdWx0U2hvcnRQcmVmaXhJZDoiZmFucyIsZGVmYXVsdFN0eWxlSWQ6InNvbGlkIixzdHlsZUlkczpbInNvbGlkIl0sZnV0dXJlU3R5bGVJZHM6W10sZGVmYXVsdEZvbnRXZWlnaHQ6OTAwfV0sWyJub3Rkb2ctZHVvIix7ZGVmYXVsdFNob3J0UHJlZml4SWQ6ImZhbmRzIixkZWZhdWx0U3R5bGVJZDoic29saWQiLHN0eWxlSWRzOlsic29saWQiXSxmdXR1cmVTdHlsZUlkczpbXSxkZWZhdWx0Rm9udFdlaWdodDo5MDB9XSxbInNsYWIiLHtkZWZhdWx0U2hvcnRQcmVmaXhJZDoiZmFzbHIiLGRlZmF1bHRTdHlsZUlkOiJyZWd1bGFyIixzdHlsZUlkczpbInJlZ3VsYXIiXSxmdXR1cmVTdHlsZUlkczpbXSxkZWZhdWx0Rm9udFdlaWdodDo0MDB9XSxbInNsYWItcHJlc3MiLHtkZWZhdWx0U2hvcnRQcmVmaXhJZDoiZmFzbHByIixkZWZhdWx0U3R5bGVJZDoicmVndWxhciIsc3R5bGVJZHM6WyJyZWd1bGFyIl0sZnV0dXJlU3R5bGVJZHM6W10sZGVmYXVsdEZvbnRXZWlnaHQ6NDAwfV0sWyJ0aHVtYnByaW50Iix7ZGVmYXVsdFNob3J0UHJlZml4SWQ6ImZhdGwiLGRlZmF1bHRTdHlsZUlkOiJsaWdodCIsc3R5bGVJZHM6WyJsaWdodCJdLGZ1dHVyZVN0eWxlSWRzOltdLGRlZmF1bHRGb250V2VpZ2h0OjMwMH1dLFsidXRpbGl0eSIse2RlZmF1bHRTaG9ydFByZWZpeElkOiJmYXVzYiIsZGVmYXVsdFN0eWxlSWQ6InNlbWlib2xkIixzdHlsZUlkczpbInNlbWlib2xkIl0sZnV0dXJlU3R5bGVJZHM6W10sZGVmYXVsdEZvbnRXZWlnaHQ6NjAwfV0sWyJ1dGlsaXR5LWR1byIse2RlZmF1bHRTaG9ydFByZWZpeElkOiJmYXVkc2IiLGRlZmF1bHRTdHlsZUlkOiJzZW1pYm9sZCIsc3R5bGVJZHM6WyJzZW1pYm9sZCJdLGZ1dHVyZVN0eWxlSWRzOltdLGRlZmF1bHRGb250V2VpZ2h0OjYwMH1dLFsidXRpbGl0eS1maWxsIix7ZGVmYXVsdFNob3J0UHJlZml4SWQ6ImZhdWZzYiIsZGVmYXVsdFN0eWxlSWQ6InNlbWlib2xkIixzdHlsZUlkczpbInNlbWlib2xkIl0sZnV0dXJlU3R5bGVJZHM6W10sZGVmYXVsdEZvbnRXZWlnaHQ6NjAwfV0sWyJ3aGl0ZWJvYXJkIix7ZGVmYXVsdFNob3J0UHJlZml4SWQ6ImZhd3NiIixkZWZhdWx0U3R5bGVJZDoic2VtaWJvbGQiLHN0eWxlSWRzOlsic2VtaWJvbGQiXSxmdXR1cmVTdHlsZUlkczpbXSxkZWZhdWx0Rm9udFdlaWdodDo2MDB9XV0pLEFXcj17Y2hpc2VsOntyZWd1bGFyOiJmYWNyIn0sY2xhc3NpYzp7YnJhbmRzOiJmYWIiLGxpZ2h0OiJmYWwiLHJlZ3VsYXI6ImZhciIsc29saWQ6ImZhcyIsdGhpbjoiZmF0In0sZHVvdG9uZTp7bGlnaHQ6ImZhZGwiLHJlZ3VsYXI6ImZhZHIiLHNvbGlkOiJmYWQiLHRoaW46ImZhZHQifSxldGNoOntzb2xpZDoiZmFlcyJ9LGdyYXBoaXRlOnt0aGluOiJmYWd0In0samVsbHk6e3JlZ3VsYXI6ImZhanIifSwiamVsbHktZHVvIjp7cmVndWxhcjoiZmFqZHIifSwiamVsbHktZmlsbCI6e3JlZ3VsYXI6ImZhamZyIn0sbm90ZG9nOntzb2xpZDoiZmFucyJ9LCJub3Rkb2ctZHVvIjp7c29saWQ6ImZhbmRzIn0sc2hhcnA6e2xpZ2h0OiJmYXNsIixyZWd1bGFyOiJmYXNyIixzb2xpZDoiZmFzcyIsdGhpbjoiZmFzdCJ9LCJzaGFycC1kdW90b25lIjp7bGlnaHQ6ImZhc2RsIixyZWd1bGFyOiJmYXNkciIsc29saWQ6ImZhc2RzIix0aGluOiJmYXNkdCJ9LHNsYWI6e3JlZ3VsYXI6ImZhc2xyIn0sInNsYWItcHJlc3MiOntyZWd1bGFyOiJmYXNscHIifSx0aHVtYnByaW50OntsaWdodDoiZmF0bCJ9LHV0aWxpdHk6e3NlbWlib2xkOiJmYXVzYiJ9LCJ1dGlsaXR5LWR1byI6e3NlbWlib2xkOiJmYXVkc2IifSwidXRpbGl0eS1maWxsIjp7c2VtaWJvbGQ6ImZhdWZzYiJ9LHdoaXRlYm9hcmQ6e3NlbWlib2xkOiJmYXdzYiJ9fSxDMXQ9WyJmYWsiLCJmYS1raXQiLCJmYWtkIiwiZmEta2l0LWR1b3RvbmUiXSxUMXQ9e2tpdDp7ZmFrOiJraXQiLCJmYS1raXQiOiJraXQifSwia2l0LWR1b3RvbmUiOntmYWtkOiJraXQtZHVvdG9uZSIsImZhLWtpdC1kdW90b25lIjoia2l0LWR1b3RvbmUifX0sRFdyPVsia2l0Il0sRVdyPSJraXQiLCRXcj0ia2l0LWR1b3RvbmUiLElXcj0iS2l0IixQV3I9IktpdCBEdW90b25lIixWZWE9JHQoJHQoe30sRVdyLElXciksJFdyLFBXciksTldyPXtraXQ6eyJmYS1raXQiOiJmYWsifSwia2l0LWR1b3RvbmUiOnsiZmEta2l0LWR1b3RvbmUiOiJmYWtkIn19LEZXcj17IkZvbnQgQXdlc29tZSBLaXQiOns0MDA6ImZhayIsbm9ybWFsOiJmYWsifSwiRm9udCBBd2Vzb21lIEtpdCBEdW90b25lIjp7NDAwOiJmYWtkIixub3JtYWw6ImZha2QifX0sT1dyPXtraXQ6e2ZhazoiZmEta2l0In0sImtpdC1kdW90b25lIjp7ZmFrZDoiZmEta2l0LWR1b3RvbmUifX0sXzF0PXtraXQ6e2tpdDoiZmFrIn0sImtpdC1kdW90b25lIjp7ImtpdC1kdW90b25lIjoiZmFrZCJ9fSxTQT17R1JPVVA6ImR1b3RvbmUtZ3JvdXAiLFNXQVBfT1BBQ0lUWToic3dhcC1vcGFjaXR5IixQUklNQVJZOiJwcmltYXJ5IixTRUNPTkRBUlk6InNlY29uZGFyeSJ9LFJXcj1bImZhLWNsYXNzaWMiLCJmYS1kdW90b25lIiwiZmEtc2hhcnAiLCJmYS1zaGFycC1kdW90b25lIiwiZmEtdGh1bWJwcmludCIsImZhLXdoaXRlYm9hcmQiLCJmYS1ub3Rkb2ciLCJmYS1ub3Rkb2ctZHVvIiwiZmEtY2hpc2VsIiwiZmEtZXRjaCIsImZhLWdyYXBoaXRlIiwiZmEtamVsbHkiLCJmYS1qZWxseS1maWxsIiwiZmEtamVsbHktZHVvIiwiZmEtc2xhYiIsImZhLXNsYWItcHJlc3MiLCJmYS11dGlsaXR5IiwiZmEtdXRpbGl0eS1kdW8iLCJmYS11dGlsaXR5LWZpbGwiXSxCV3I9ImNsYXNzaWMiLEhXcj0iZHVvdG9uZSIscVdyPSJzaGFycCIsaldyPSJzaGFycC1kdW90b25lIixWV3I9ImNoaXNlbCIsVVdyPSJldGNoIixXV3I9ImdyYXBoaXRlIixHV3I9ImplbGx5IixZV3I9ImplbGx5LWR1byIsWldyPSJqZWxseS1maWxsIixYV3I9Im5vdGRvZyIsUVdyPSJub3Rkb2ctZHVvIixKV3I9InNsYWIiLEtXcj0ic2xhYi1wcmVzcyIsZUdyPSJ0aHVtYnByaW50Iix0R3I9InV0aWxpdHkiLHJHcj0idXRpbGl0eS1kdW8iLGlHcj0idXRpbGl0eS1maWxsIixhR3I9IndoaXRlYm9hcmQiLG5Hcj0iQ2xhc3NpYyIsb0dyPSJEdW90b25lIixzR3I9IlNoYXJwIixsR3I9IlNoYXJwIER1b3RvbmUiLGNHcj0iQ2hpc2VsIixkR3I9IkV0Y2giLHVHcj0iR3JhcGhpdGUiLHBHcj0iSmVsbHkiLGhHcj0iSmVsbHkgRHVvIixmR3I9IkplbGx5IEZpbGwiLG1Hcj0iTm90ZG9nIixnR3I9Ik5vdGRvZyBEdW8iLGJHcj0iU2xhYiIsdkdyPSJTbGFiIFByZXNzIix4R3I9IlRodW1icHJpbnQiLHlHcj0iVXRpbGl0eSIsd0dyPSJVdGlsaXR5IER1byIsTUdyPSJVdGlsaXR5IEZpbGwiLGtHcj0iV2hpdGVib2FyZCIsVWVhPShvYWU9e30sJHQoJHQoJHQoJHQoJHQoJHQoJHQoJHQoJHQoJHQob2FlLEJXcixuR3IpLEhXcixvR3IpLHFXcixzR3IpLGpXcixsR3IpLFZXcixjR3IpLFVXcixkR3IpLFdXcix1R3IpLEdXcixwR3IpLFlXcixoR3IpLFpXcixmR3IpLCR0KCR0KCR0KCR0KCR0KCR0KCR0KCR0KCR0KG9hZSxYV3IsbUdyKSxRV3IsZ0dyKSxKV3IsYkdyKSxLV3IsdkdyKSxlR3IseEdyKSx0R3IseUdyKSxyR3Isd0dyKSxpR3IsTUdyKSxhR3Isa0dyKSksU0dyPSJraXQiLHpHcj0ia2l0LWR1b3RvbmUiLENHcj0iS2l0IixUR3I9IktpdCBEdW90b25lIixXZWE9JHQoJHQoe30sU0dyLENHciksekdyLFRHciksX0dyPXtjbGFzc2ljOnsiZmEtYnJhbmRzIjoiZmFiIiwiZmEtZHVvdG9uZSI6ImZhZCIsImZhLWxpZ2h0IjoiZmFsIiwiZmEtcmVndWxhciI6ImZhciIsImZhLXNvbGlkIjoiZmFzIiwiZmEtdGhpbiI6ImZhdCJ9LGR1b3RvbmU6eyJmYS1yZWd1bGFyIjoiZmFkciIsImZhLWxpZ2h0IjoiZmFkbCIsImZhLXRoaW4iOiJmYWR0In0sc2hhcnA6eyJmYS1zb2xpZCI6ImZhc3MiLCJmYS1yZWd1bGFyIjoiZmFzciIsImZhLWxpZ2h0IjoiZmFzbCIsImZhLXRoaW4iOiJmYXN0In0sInNoYXJwLWR1b3RvbmUiOnsiZmEtc29saWQiOiJmYXNkcyIsImZhLXJlZ3VsYXIiOiJmYXNkciIsImZhLWxpZ2h0IjoiZmFzZGwiLCJmYS10aGluIjoiZmFzZHQifSxzbGFiOnsiZmEtcmVndWxhciI6ImZhc2xyIn0sInNsYWItcHJlc3MiOnsiZmEtcmVndWxhciI6ImZhc2xwciJ9LHdoaXRlYm9hcmQ6eyJmYS1zZW1pYm9sZCI6ImZhd3NiIn0sdGh1bWJwcmludDp7ImZhLWxpZ2h0IjoiZmF0bCJ9LG5vdGRvZzp7ImZhLXNvbGlkIjoiZmFucyJ9LCJub3Rkb2ctZHVvIjp7ImZhLXNvbGlkIjoiZmFuZHMifSxldGNoOnsiZmEtc29saWQiOiJmYWVzIn0sZ3JhcGhpdGU6eyJmYS10aGluIjoiZmFndCJ9LGplbGx5OnsiZmEtcmVndWxhciI6ImZhanIifSwiamVsbHktZmlsbCI6eyJmYS1yZWd1bGFyIjoiZmFqZnIifSwiamVsbHktZHVvIjp7ImZhLXJlZ3VsYXIiOiJmYWpkciJ9LGNoaXNlbDp7ImZhLXJlZ3VsYXIiOiJmYWNyIn0sdXRpbGl0eTp7ImZhLXNlbWlib2xkIjoiZmF1c2IifSwidXRpbGl0eS1kdW8iOnsiZmEtc2VtaWJvbGQiOiJmYXVkc2IifSwidXRpbGl0eS1maWxsIjp7ImZhLXNlbWlib2xkIjoiZmF1ZnNiIn19LExHcj17Y2xhc3NpYzpbImZhcyIsImZhciIsImZhbCIsImZhdCIsImZhZCJdLGR1b3RvbmU6WyJmYWRyIiwiZmFkbCIsImZhZHQiXSxzaGFycDpbImZhc3MiLCJmYXNyIiwiZmFzbCIsImZhc3QiXSwic2hhcnAtZHVvdG9uZSI6WyJmYXNkcyIsImZhc2RyIiwiZmFzZGwiLCJmYXNkdCJdLHNsYWI6WyJmYXNsciJdLCJzbGFiLXByZXNzIjpbImZhc2xwciJdLHdoaXRlYm9hcmQ6WyJmYXdzYiJdLHRodW1icHJpbnQ6WyJmYXRsIl0sbm90ZG9nOlsiZmFucyJdLCJub3Rkb2ctZHVvIjpbImZhbmRzIl0sZXRjaDpbImZhZXMiXSxncmFwaGl0ZTpbImZhZ3QiXSxqZWxseTpbImZhanIiXSwiamVsbHktZmlsbCI6WyJmYWpmciJdLCJqZWxseS1kdW8iOlsiZmFqZHIiXSxjaGlzZWw6WyJmYWNyIl0sdXRpbGl0eTpbImZhdXNiIl0sInV0aWxpdHktZHVvIjpbImZhdWRzYiJdLCJ1dGlsaXR5LWZpbGwiOlsiZmF1ZnNiIl19LHNhZT17Y2xhc3NpYzp7ZmFiOiJmYS1icmFuZHMiLGZhZDoiZmEtZHVvdG9uZSIsZmFsOiJmYS1saWdodCIsZmFyOiJmYS1yZWd1bGFyIixmYXM6ImZhLXNvbGlkIixmYXQ6ImZhLXRoaW4ifSxkdW90b25lOntmYWRyOiJmYS1yZWd1bGFyIixmYWRsOiJmYS1saWdodCIsZmFkdDoiZmEtdGhpbiJ9LHNoYXJwOntmYXNzOiJmYS1zb2xpZCIsZmFzcjoiZmEtcmVndWxhciIsZmFzbDoiZmEtbGlnaHQiLGZhc3Q6ImZhLXRoaW4ifSwic2hhcnAtZHVvdG9uZSI6e2Zhc2RzOiJmYS1zb2xpZCIsZmFzZHI6ImZhLXJlZ3VsYXIiLGZhc2RsOiJmYS1saWdodCIsZmFzZHQ6ImZhLXRoaW4ifSxzbGFiOntmYXNscjoiZmEtcmVndWxhciJ9LCJzbGFiLXByZXNzIjp7ZmFzbHByOiJmYS1yZWd1bGFyIn0sd2hpdGVib2FyZDp7ZmF3c2I6ImZhLXNlbWlib2xkIn0sdGh1bWJwcmludDp7ZmF0bDoiZmEtbGlnaHQifSxub3Rkb2c6e2ZhbnM6ImZhLXNvbGlkIn0sIm5vdGRvZy1kdW8iOntmYW5kczoiZmEtc29saWQifSxldGNoOntmYWVzOiJmYS1zb2xpZCJ9LGdyYXBoaXRlOntmYWd0OiJmYS10aGluIn0samVsbHk6e2ZhanI6ImZhLXJlZ3VsYXIifSwiamVsbHktZmlsbCI6e2ZhamZyOiJmYS1yZWd1bGFyIn0sImplbGx5LWR1byI6e2ZhamRyOiJmYS1yZWd1bGFyIn0sY2hpc2VsOntmYWNyOiJmYS1yZWd1bGFyIn0sdXRpbGl0eTp7ZmF1c2I6ImZhLXNlbWlib2xkIn0sInV0aWxpdHktZHVvIjp7ZmF1ZHNiOiJmYS1zZW1pYm9sZCJ9LCJ1dGlsaXR5LWZpbGwiOntmYXVmc2I6ImZhLXNlbWlib2xkIn19LEFHcj1bImZhLXNvbGlkIiwiZmEtcmVndWxhciIsImZhLWxpZ2h0IiwiZmEtdGhpbiIsImZhLWR1b3RvbmUiLCJmYS1icmFuZHMiLCJmYS1zZW1pYm9sZCJdLEwxdD1bImZhIiwiZmFzIiwiZmFyIiwiZmFsIiwiZmF0IiwiZmFkIiwiZmFkciIsImZhZGwiLCJmYWR0IiwiZmFiIiwiZmFzcyIsImZhc3IiLCJmYXNsIiwiZmFzdCIsImZhc2RzIiwiZmFzZHIiLCJmYXNkbCIsImZhc2R0IiwiZmFzbHIiLCJmYXNscHIiLCJmYXdzYiIsImZhdGwiLCJmYW5zIiwiZmFuZHMiLCJmYWVzIiwiZmFndCIsImZhanIiLCJmYWpmciIsImZhamRyIiwiZmFjciIsImZhdXNiIiwiZmF1ZHNiIiwiZmF1ZnNiIl0uY29uY2F0KFJXcixBR3IpLERHcj1bInNvbGlkIiwicmVndWxhciIsImxpZ2h0IiwidGhpbiIsImR1b3RvbmUiLCJicmFuZHMiLCJzZW1pYm9sZCJdLEExdD1bMSwyLDMsNCw1LDYsNyw4LDksMTBdLEVHcj1BMXQuY29uY2F0KFsxMSwxMiwxMywxNCwxNSwxNiwxNywxOCwxOSwyMF0pLCRHcj1bImF3IiwiZnciLCJwdWxsLWxlZnQiLCJwdWxsLXJpZ2h0Il0sSUdyPVtdLmNvbmNhdChNMihPYmplY3Qua2V5cyhMR3IpKSxER3IsJEdyLFsiMnhzIiwieHMiLCJzbSIsImxnIiwieGwiLCIyeGwiLCJiZWF0IiwiYm9yZGVyIiwiZmFkZSIsImJlYXQtZmFkZSIsImJvdW5jZSIsImZsaXAtYm90aCIsImZsaXAtaG9yaXpvbnRhbCIsImZsaXAtdmVydGljYWwiLCJmbGlwIiwiaW52ZXJzZSIsImxheWVycyIsImxheWVycy1ib3R0b20tbGVmdCIsImxheWVycy1ib3R0b20tcmlnaHQiLCJsYXllcnMtY291bnRlciIsImxheWVycy10ZXh0IiwibGF5ZXJzLXRvcC1sZWZ0IiwibGF5ZXJzLXRvcC1yaWdodCIsImxpIiwicHVsbC1lbmQiLCJwdWxsLXN0YXJ0IiwicHVsc2UiLCJyb3RhdGUtMTgwIiwicm90YXRlLTI3MCIsInJvdGF0ZS05MCIsInJvdGF0ZS1ieSIsInNoYWtlIiwic3Bpbi1wdWxzZSIsInNwaW4tcmV2ZXJzZSIsInNwaW4iLCJzdGFjay0xeCIsInN0YWNrLTJ4Iiwic3RhY2siLCJ1bCIsIndpZHRoLWF1dG8iLCJ3aWR0aC1maXhlZCIsU0EuR1JPVVAsU0EuU1dBUF9PUEFDSVRZLFNBLlBSSU1BUlksU0EuU0VDT05EQVJZXSkuY29uY2F0KEExdC5tYXAoZnVuY3Rpb24oZSl7cmV0dXJuIiIuY29uY2F0KGUsIngiKX0pKS5jb25jYXQoRUdyLm1hcChmdW5jdGlvbihlKXtyZXR1cm4idy0iLmNvbmNhdChlKX0pKSxQR3I9eyJGb250IEF3ZXNvbWUgNSBGcmVlIjp7OTAwOiJmYXMiLDQwMDoiZmFyIn0sIkZvbnQgQXdlc29tZSA1IFBybyI6ezkwMDoiZmFzIiw0MDA6ImZhciIsbm9ybWFsOiJmYXIiLDMwMDoiZmFsIn0sIkZvbnQgQXdlc29tZSA1IEJyYW5kcyI6ezQwMDoiZmFiIixub3JtYWw6ImZhYiJ9LCJGb250IEF3ZXNvbWUgNSBEdW90b25lIjp7OTAwOiJmYWQifX0sZmM9Il9fX0ZPTlRfQVdFU09NRV9fXyIsbGFlPTE2LEQxdD0iZmEiLEUxdD0ic3ZnLWlubGluZS0tZmEiLENkPSJkYXRhLWZhLWkyc3ZnIixjYWU9ImRhdGEtZmEtcHNldWRvLWVsZW1lbnQiLE5Hcj0iZGF0YS1mYS1wc2V1ZG8tZWxlbWVudC1wZW5kaW5nIixkYWU9ImRhdGEtcHJlZml4Iix1YWU9ImRhdGEtaWNvbiIsJDF0PSJmb250YXdlc29tZS1pMnN2ZyIsRkdyPSJhc3luYyIsT0dyPVsiSFRNTCIsIkhFQUQiLCJTVFlMRSIsIlNDUklQVCJdLEkxdD1bIjo6YmVmb3JlIiwiOjphZnRlciIsIjpiZWZvcmUiLCI6YWZ0ZXIiXSxQMXQ9KGZ1bmN0aW9uKCl7dHJ5e3JldHVybiEwfWNhdGNoe3JldHVybiExfX0pKCk7TjF0PVZlKHt9LG8xdCk7TjF0W0ppXT1WZShWZShWZShWZSh7fSx7ImZhLWR1b3RvbmUiOiJkdW90b25lIn0pLG8xdFtKaV0pLFQxdC5raXQpLFQxdFsia2l0LWR1b3RvbmUiXSk7UkdyPWZnKE4xdCkscGFlPVZlKHt9LEFXcik7cGFlW0ppXT1WZShWZShWZShWZSh7fSx7ZHVvdG9uZToiZmFkIn0pLHBhZVtKaV0pLF8xdC5raXQpLF8xdFsia2l0LWR1b3RvbmUiXSk7RjF0PWZnKHBhZSksaGFlPVZlKHt9LHNhZSk7aGFlW0ppXT1WZShWZSh7fSxoYWVbSmldKSxPV3Iua2l0KTtmYWU9ZmcoaGFlKSxtYWU9VmUoe30sX0dyKTttYWVbSmldPVZlKFZlKHt9LG1hZVtKaV0pLE5Xci5raXQpO0dlYT1mZyhtYWUpLEJHcj1uV3IsTzF0PSJmYS1sYXllcnMtdGV4dCIsSEdyPW9XcixxR3I9VmUoe30sVFdyKSxZZWE9ZmcocUdyKSxqR3I9WyJjbGFzcyIsImRhdGEtcHJlZml4IiwiZGF0YS1pY29uIiwiZGF0YS1mYS10cmFuc2Zvcm0iLCJkYXRhLWZhLW1hc2siXSxnYWU9c1dyLFZHcj1bXS5jb25jYXQoTTIoRFdyKSxNMihJR3IpKSxtZz1UNC5Gb250QXdlc29tZUNvbmZpZ3x8e307dTEmJnR5cGVvZiB1MS5xdWVyeVNlbGVjdG9yPT0iZnVuY3Rpb24iJiYoUjF0PVtbImRhdGEtZmFtaWx5LXByZWZpeCIsImZhbWlseVByZWZpeCJdLFsiZGF0YS1jc3MtcHJlZml4IiwiY3NzUHJlZml4Il0sWyJkYXRhLWZhbWlseS1kZWZhdWx0IiwiZmFtaWx5RGVmYXVsdCJdLFsiZGF0YS1zdHlsZS1kZWZhdWx0Iiwic3R5bGVEZWZhdWx0Il0sWyJkYXRhLXJlcGxhY2VtZW50LWNsYXNzIiwicmVwbGFjZW1lbnRDbGFzcyJdLFsiZGF0YS1hdXRvLXJlcGxhY2Utc3ZnIiwiYXV0b1JlcGxhY2VTdmciXSxbImRhdGEtYXV0by1hZGQtY3NzIiwiYXV0b0FkZENzcyJdLFsiZGF0YS1zZWFyY2gtcHNldWRvLWVsZW1lbnRzIiwic2VhcmNoUHNldWRvRWxlbWVudHMiXSxbImRhdGEtc2VhcmNoLXBzZXVkby1lbGVtZW50cy13YXJuaW5ncyIsInNlYXJjaFBzZXVkb0VsZW1lbnRzV2FybmluZ3MiXSxbImRhdGEtc2VhcmNoLXBzZXVkby1lbGVtZW50cy1mdWxsLXNjYW4iLCJzZWFyY2hQc2V1ZG9FbGVtZW50c0Z1bGxTY2FuIl0sWyJkYXRhLW9ic2VydmUtbXV0YXRpb25zIiwib2JzZXJ2ZU11dGF0aW9ucyJdLFsiZGF0YS1tdXRhdGUtYXBwcm9hY2giLCJtdXRhdGVBcHByb2FjaCJdLFsiZGF0YS1rZWVwLW9yaWdpbmFsLXNvdXJjZSIsImtlZXBPcmlnaW5hbFNvdXJjZSJdLFsiZGF0YS1tZWFzdXJlLXBlcmZvcm1hbmNlIiwibWVhc3VyZVBlcmZvcm1hbmNlIl0sWyJkYXRhLXNob3ctbWlzc2luZy1pY29ucyIsInNob3dNaXNzaW5nSWNvbnMiXV0sUjF0LmZvckVhY2goZnVuY3Rpb24oZSl7dmFyIHQ9d0EoZSwyKSxyPXRbMF0saT10WzFdLGE9V0dyKFVHcihyKSk7YSE9bnVsbCYmKG1nW2ldPWEpfSkpO0IxdD17c3R5bGVEZWZhdWx0OiJzb2xpZCIsZmFtaWx5RGVmYXVsdDpKaSxjc3NQcmVmaXg6RDF0LHJlcGxhY2VtZW50Q2xhc3M6RTF0LGF1dG9SZXBsYWNlU3ZnOiEwLGF1dG9BZGRDc3M6ITAsc2VhcmNoUHNldWRvRWxlbWVudHM6ITEsc2VhcmNoUHNldWRvRWxlbWVudHNXYXJuaW5nczohMCxzZWFyY2hQc2V1ZG9FbGVtZW50c0Z1bGxTY2FuOiExLG9ic2VydmVNdXRhdGlvbnM6ITAsbXV0YXRlQXBwcm9hY2g6ImFzeW5jIixrZWVwT3JpZ2luYWxTb3VyY2U6ITAsbWVhc3VyZVBlcmZvcm1hbmNlOiExLHNob3dNaXNzaW5nSWNvbnM6ITB9O21nLmZhbWlseVByZWZpeCYmKG1nLmNzc1ByZWZpeD1tZy5mYW1pbHlQcmVmaXgpO0RwPVZlKFZlKHt9LEIxdCksbWcpO0RwLmF1dG9SZXBsYWNlU3ZnfHwoRHAub2JzZXJ2ZU11dGF0aW9ucz0hMSk7cHQ9e307T2JqZWN0LmtleXMoQjF0KS5mb3JFYWNoKGZ1bmN0aW9uKGUpe09iamVjdC5kZWZpbmVQcm9wZXJ0eShwdCxlLHtlbnVtZXJhYmxlOiEwLHNldDpmdW5jdGlvbihyKXtEcFtlXT1yLGdnLmZvckVhY2goZnVuY3Rpb24oaSl7cmV0dXJuIGkocHQpfSl9LGdldDpmdW5jdGlvbigpe3JldHVybiBEcFtlXX19KX0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShwdCwiZmFtaWx5UHJlZml4Iix7ZW51bWVyYWJsZTohMCxzZXQ6ZnVuY3Rpb24odCl7RHAuY3NzUHJlZml4PXQsZ2cuZm9yRWFjaChmdW5jdGlvbihyKXtyZXR1cm4gcihwdCl9KX0sZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIERwLmNzc1ByZWZpeH19KSxUNC5Gb250QXdlc29tZUNvbmZpZz1wdDtnZz1bXTtfND1sYWUsdGw9e3NpemU6MTYseDowLHk6MCxyb3RhdGU6MCxmbGlwWDohMSxmbGlwWTohMX07WkdyPSIwMTIzNDU2Nzg5YWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXpBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWiI7S0dyPWA6cm9vdCwgOmhvc3QgewogIC0tZmEtZm9udC1zb2xpZDogbm9ybWFsIDkwMCAxZW0vMSAnRm9udCBBd2Vzb21lIDcgRnJlZSc7CiAgLS1mYS1mb250LXJlZ3VsYXI6IG5vcm1hbCA0MDAgMWVtLzEgJ0ZvbnQgQXdlc29tZSA3IEZyZWUnOwogIC0tZmEtZm9udC1saWdodDogbm9ybWFsIDMwMCAxZW0vMSAnRm9udCBBd2Vzb21lIDcgUHJvJzsKICAtLWZhLWZvbnQtdGhpbjogbm9ybWFsIDEwMCAxZW0vMSAnRm9udCBBd2Vzb21lIDcgUHJvJzsKICAtLWZhLWZvbnQtZHVvdG9uZTogbm9ybWFsIDkwMCAxZW0vMSAnRm9udCBBd2Vzb21lIDcgRHVvdG9uZSc7CiAgLS1mYS1mb250LWR1b3RvbmUtcmVndWxhcjogbm9ybWFsIDQwMCAxZW0vMSAnRm9udCBBd2Vzb21lIDcgRHVvdG9uZSc7CiAgLS1mYS1mb250LWR1b3RvbmUtbGlnaHQ6IG5vcm1hbCAzMDAgMWVtLzEgJ0ZvbnQgQXdlc29tZSA3IER1b3RvbmUnOwogIC0tZmEtZm9udC1kdW90b25lLXRoaW46IG5vcm1hbCAxMDAgMWVtLzEgJ0ZvbnQgQXdlc29tZSA3IER1b3RvbmUnOwogIC0tZmEtZm9udC1icmFuZHM6IG5vcm1hbCA0MDAgMWVtLzEgJ0ZvbnQgQXdlc29tZSA3IEJyYW5kcyc7CiAgLS1mYS1mb250LXNoYXJwLXNvbGlkOiBub3JtYWwgOTAwIDFlbS8xICdGb250IEF3ZXNvbWUgNyBTaGFycCc7CiAgLS1mYS1mb250LXNoYXJwLXJlZ3VsYXI6IG5vcm1hbCA0MDAgMWVtLzEgJ0ZvbnQgQXdlc29tZSA3IFNoYXJwJzsKICAtLWZhLWZvbnQtc2hhcnAtbGlnaHQ6IG5vcm1hbCAzMDAgMWVtLzEgJ0ZvbnQgQXdlc29tZSA3IFNoYXJwJzsKICAtLWZhLWZvbnQtc2hhcnAtdGhpbjogbm9ybWFsIDEwMCAxZW0vMSAnRm9udCBBd2Vzb21lIDcgU2hhcnAnOwogIC0tZmEtZm9udC1zaGFycC1kdW90b25lLXNvbGlkOiBub3JtYWwgOTAwIDFlbS8xICdGb250IEF3ZXNvbWUgNyBTaGFycCBEdW90b25lJzsKICAtLWZhLWZvbnQtc2hhcnAtZHVvdG9uZS1yZWd1bGFyOiBub3JtYWwgNDAwIDFlbS8xICdGb250IEF3ZXNvbWUgNyBTaGFycCBEdW90b25lJzsKICAtLWZhLWZvbnQtc2hhcnAtZHVvdG9uZS1saWdodDogbm9ybWFsIDMwMCAxZW0vMSAnRm9udCBBd2Vzb21lIDcgU2hhcnAgRHVvdG9uZSc7CiAgLS1mYS1mb250LXNoYXJwLWR1b3RvbmUtdGhpbjogbm9ybWFsIDEwMCAxZW0vMSAnRm9udCBBd2Vzb21lIDcgU2hhcnAgRHVvdG9uZSc7CiAgLS1mYS1mb250LXNsYWItcmVndWxhcjogbm9ybWFsIDQwMCAxZW0vMSAnRm9udCBBd2Vzb21lIDcgU2xhYic7CiAgLS1mYS1mb250LXNsYWItcHJlc3MtcmVndWxhcjogbm9ybWFsIDQwMCAxZW0vMSAnRm9udCBBd2Vzb21lIDcgU2xhYiBQcmVzcyc7CiAgLS1mYS1mb250LXdoaXRlYm9hcmQtc2VtaWJvbGQ6IG5vcm1hbCA2MDAgMWVtLzEgJ0ZvbnQgQXdlc29tZSA3IFdoaXRlYm9hcmQnOwogIC0tZmEtZm9udC10aHVtYnByaW50LWxpZ2h0OiBub3JtYWwgMzAwIDFlbS8xICdGb250IEF3ZXNvbWUgNyBUaHVtYnByaW50JzsKICAtLWZhLWZvbnQtbm90ZG9nLXNvbGlkOiBub3JtYWwgOTAwIDFlbS8xICdGb250IEF3ZXNvbWUgNyBOb3Rkb2cnOwogIC0tZmEtZm9udC1ub3Rkb2ctZHVvLXNvbGlkOiBub3JtYWwgOTAwIDFlbS8xICdGb250IEF3ZXNvbWUgNyBOb3Rkb2cgRHVvJzsKICAtLWZhLWZvbnQtZXRjaC1zb2xpZDogbm9ybWFsIDkwMCAxZW0vMSAnRm9udCBBd2Vzb21lIDcgRXRjaCc7CiAgLS1mYS1mb250LWdyYXBoaXRlLXRoaW46IG5vcm1hbCAxMDAgMWVtLzEgJ0ZvbnQgQXdlc29tZSA3IEdyYXBoaXRlJzsKICAtLWZhLWZvbnQtamVsbHktcmVndWxhcjogbm9ybWFsIDQwMCAxZW0vMSAnRm9udCBBd2Vzb21lIDcgSmVsbHknOwogIC0tZmEtZm9udC1qZWxseS1maWxsLXJlZ3VsYXI6IG5vcm1hbCA0MDAgMWVtLzEgJ0ZvbnQgQXdlc29tZSA3IEplbGx5IEZpbGwnOwogIC0tZmEtZm9udC1qZWxseS1kdW8tcmVndWxhcjogbm9ybWFsIDQwMCAxZW0vMSAnRm9udCBBd2Vzb21lIDcgSmVsbHkgRHVvJzsKICAtLWZhLWZvbnQtY2hpc2VsLXJlZ3VsYXI6IG5vcm1hbCA0MDAgMWVtLzEgJ0ZvbnQgQXdlc29tZSA3IENoaXNlbCc7CiAgLS1mYS1mb250LXV0aWxpdHktc2VtaWJvbGQ6IG5vcm1hbCA2MDAgMWVtLzEgJ0ZvbnQgQXdlc29tZSA3IFV0aWxpdHknOwogIC0tZmEtZm9udC11dGlsaXR5LWR1by1zZW1pYm9sZDogbm9ybWFsIDYwMCAxZW0vMSAnRm9udCBBd2Vzb21lIDcgVXRpbGl0eSBEdW8nOwogIC0tZmEtZm9udC11dGlsaXR5LWZpbGwtc2VtaWJvbGQ6IG5vcm1hbCA2MDAgMWVtLzEgJ0ZvbnQgQXdlc29tZSA3IFV0aWxpdHkgRmlsbCc7Cn0KCi5zdmctaW5saW5lLS1mYSB7CiAgYm94LXNpemluZzogY29udGVudC1ib3g7CiAgZGlzcGxheTogdmFyKC0tZmEtZGlzcGxheSwgaW5saW5lLWJsb2NrKTsKICBoZWlnaHQ6IDFlbTsKICBvdmVyZmxvdzogdmlzaWJsZTsKICB2ZXJ0aWNhbC1hbGlnbjogLTAuMTI1ZW07CiAgd2lkdGg6IHZhcigtLWZhLXdpZHRoLCAxLjI1ZW0pOwp9Ci5zdmctaW5saW5lLS1mYS5mYS0yeHMgewogIHZlcnRpY2FsLWFsaWduOiAwLjFlbTsKfQouc3ZnLWlubGluZS0tZmEuZmEteHMgewogIHZlcnRpY2FsLWFsaWduOiAwZW07Cn0KLnN2Zy1pbmxpbmUtLWZhLmZhLXNtIHsKICB2ZXJ0aWNhbC1hbGlnbjogLTAuMDcxNDI4NTcxNGVtOwp9Ci5zdmctaW5saW5lLS1mYS5mYS1sZyB7CiAgdmVydGljYWwtYWxpZ246IC0wLjJlbTsKfQouc3ZnLWlubGluZS0tZmEuZmEteGwgewogIHZlcnRpY2FsLWFsaWduOiAtMC4yNWVtOwp9Ci5zdmctaW5saW5lLS1mYS5mYS0yeGwgewogIHZlcnRpY2FsLWFsaWduOiAtMC4zMTI1ZW07Cn0KLnN2Zy1pbmxpbmUtLWZhLmZhLXB1bGwtbGVmdCwKLnN2Zy1pbmxpbmUtLWZhIC5mYS1wdWxsLXN0YXJ0IHsKICBmbG9hdDogaW5saW5lLXN0YXJ0OwogIG1hcmdpbi1pbmxpbmUtZW5kOiB2YXIoLS1mYS1wdWxsLW1hcmdpbiwgMC4zZW0pOwp9Ci5zdmctaW5saW5lLS1mYS5mYS1wdWxsLXJpZ2h0LAouc3ZnLWlubGluZS0tZmEgLmZhLXB1bGwtZW5kIHsKICBmbG9hdDogaW5saW5lLWVuZDsKICBtYXJnaW4taW5saW5lLXN0YXJ0OiB2YXIoLS1mYS1wdWxsLW1hcmdpbiwgMC4zZW0pOwp9Ci5zdmctaW5saW5lLS1mYS5mYS1saSB7CiAgd2lkdGg6IHZhcigtLWZhLWxpLXdpZHRoLCAyZW0pOwogIGluc2V0LWlubGluZS1zdGFydDogY2FsYygtMSAqIHZhcigtLWZhLWxpLXdpZHRoLCAyZW0pKTsKICBpbnNldC1ibG9jay1zdGFydDogMC4yNWVtOyAvKiBzeW5jaW5nIHZlcnRpY2FsIGFsaWdubWVudCB3aXRoIFdlYiBGb250IHJlbmRlcmluZyAqLwp9CgouZmEtbGF5ZXJzLWNvdW50ZXIsIC5mYS1sYXllcnMtdGV4dCB7CiAgZGlzcGxheTogaW5saW5lLWJsb2NrOwogIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICB0ZXh0LWFsaWduOiBjZW50ZXI7Cn0KCi5mYS1sYXllcnMgewogIGRpc3BsYXk6IGlubGluZS1ibG9jazsKICBoZWlnaHQ6IDFlbTsKICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgdGV4dC1hbGlnbjogY2VudGVyOwogIHZlcnRpY2FsLWFsaWduOiAtMC4xMjVlbTsKICB3aWR0aDogdmFyKC0tZmEtd2lkdGgsIDEuMjVlbSk7Cn0KLmZhLWxheWVycyAuc3ZnLWlubGluZS0tZmEgewogIGluc2V0OiAwOwogIG1hcmdpbjogYXV0bzsKICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgdHJhbnNmb3JtLW9yaWdpbjogY2VudGVyIGNlbnRlcjsKfQoKLmZhLWxheWVycy10ZXh0IHsKICBsZWZ0OiA1MCU7CiAgdG9wOiA1MCU7CiAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSwgLTUwJSk7CiAgdHJhbnNmb3JtLW9yaWdpbjogY2VudGVyIGNlbnRlcjsKfQoKLmZhLWxheWVycy1jb3VudGVyIHsKICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1mYS1jb3VudGVyLWJhY2tncm91bmQtY29sb3IsICNmZjI1M2EpOwogIGJvcmRlci1yYWRpdXM6IHZhcigtLWZhLWNvdW50ZXItYm9yZGVyLXJhZGl1cywgMWVtKTsKICBib3gtc2l6aW5nOiBib3JkZXItYm94OwogIGNvbG9yOiB2YXIoLS1mYS1pbnZlcnNlLCAjZmZmKTsKICBsaW5lLWhlaWdodDogdmFyKC0tZmEtY291bnRlci1saW5lLWhlaWdodCwgMSk7CiAgbWF4LXdpZHRoOiB2YXIoLS1mYS1jb3VudGVyLW1heC13aWR0aCwgNWVtKTsKICBtaW4td2lkdGg6IHZhcigtLWZhLWNvdW50ZXItbWluLXdpZHRoLCAxLjVlbSk7CiAgb3ZlcmZsb3c6IGhpZGRlbjsKICBwYWRkaW5nOiB2YXIoLS1mYS1jb3VudGVyLXBhZGRpbmcsIDAuMjVlbSAwLjVlbSk7CiAgcmlnaHQ6IHZhcigtLWZhLXJpZ2h0LCAwKTsKICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpczsKICB0b3A6IHZhcigtLWZhLXRvcCwgMCk7CiAgdHJhbnNmb3JtOiBzY2FsZSh2YXIoLS1mYS1jb3VudGVyLXNjYWxlLCAwLjI1KSk7CiAgdHJhbnNmb3JtLW9yaWdpbjogdG9wIHJpZ2h0Owp9CgouZmEtbGF5ZXJzLWJvdHRvbS1yaWdodCB7CiAgYm90dG9tOiB2YXIoLS1mYS1ib3R0b20sIDApOwogIHJpZ2h0OiB2YXIoLS1mYS1yaWdodCwgMCk7CiAgdG9wOiBhdXRvOwogIHRyYW5zZm9ybTogc2NhbGUodmFyKC0tZmEtbGF5ZXJzLXNjYWxlLCAwLjI1KSk7CiAgdHJhbnNmb3JtLW9yaWdpbjogYm90dG9tIHJpZ2h0Owp9CgouZmEtbGF5ZXJzLWJvdHRvbS1sZWZ0IHsKICBib3R0b206IHZhcigtLWZhLWJvdHRvbSwgMCk7CiAgbGVmdDogdmFyKC0tZmEtbGVmdCwgMCk7CiAgcmlnaHQ6IGF1dG87CiAgdG9wOiBhdXRvOwogIHRyYW5zZm9ybTogc2NhbGUodmFyKC0tZmEtbGF5ZXJzLXNjYWxlLCAwLjI1KSk7CiAgdHJhbnNmb3JtLW9yaWdpbjogYm90dG9tIGxlZnQ7Cn0KCi5mYS1sYXllcnMtdG9wLXJpZ2h0IHsKICB0b3A6IHZhcigtLWZhLXRvcCwgMCk7CiAgcmlnaHQ6IHZhcigtLWZhLXJpZ2h0LCAwKTsKICB0cmFuc2Zvcm06IHNjYWxlKHZhcigtLWZhLWxheWVycy1zY2FsZSwgMC4yNSkpOwogIHRyYW5zZm9ybS1vcmlnaW46IHRvcCByaWdodDsKfQoKLmZhLWxheWVycy10b3AtbGVmdCB7CiAgbGVmdDogdmFyKC0tZmEtbGVmdCwgMCk7CiAgcmlnaHQ6IGF1dG87CiAgdG9wOiB2YXIoLS1mYS10b3AsIDApOwogIHRyYW5zZm9ybTogc2NhbGUodmFyKC0tZmEtbGF5ZXJzLXNjYWxlLCAwLjI1KSk7CiAgdHJhbnNmb3JtLW9yaWdpbjogdG9wIGxlZnQ7Cn0KCi5mYS0xeCB7CiAgZm9udC1zaXplOiAxZW07Cn0KCi5mYS0yeCB7CiAgZm9udC1zaXplOiAyZW07Cn0KCi5mYS0zeCB7CiAgZm9udC1zaXplOiAzZW07Cn0KCi5mYS00eCB7CiAgZm9udC1zaXplOiA0ZW07Cn0KCi5mYS01eCB7CiAgZm9udC1zaXplOiA1ZW07Cn0KCi5mYS02eCB7CiAgZm9udC1zaXplOiA2ZW07Cn0KCi5mYS03eCB7CiAgZm9udC1zaXplOiA3ZW07Cn0KCi5mYS04eCB7CiAgZm9udC1zaXplOiA4ZW07Cn0KCi5mYS05eCB7CiAgZm9udC1zaXplOiA5ZW07Cn0KCi5mYS0xMHggewogIGZvbnQtc2l6ZTogMTBlbTsKfQoKLmZhLTJ4cyB7CiAgZm9udC1zaXplOiBjYWxjKDEwIC8gMTYgKiAxZW0pOyAvKiBjb252ZXJ0cyBhIDEwcHggc2l6ZSBpbnRvIGFuIGVtLWJhc2VkIHZhbHVlIHRoYXQncyByZWxhdGl2ZSB0byB0aGUgc2NhbGUncyAxNnB4IGJhc2UgKi8KICBsaW5lLWhlaWdodDogY2FsYygxIC8gMTAgKiAxZW0pOyAvKiBzZXRzIHRoZSBsaW5lLWhlaWdodCBvZiB0aGUgaWNvbiBiYWNrIHRvIHRoYXQgb2YgaXQncyBwYXJlbnQgKi8KICB2ZXJ0aWNhbC1hbGlnbjogY2FsYygoNiAvIDEwIC0gMC4zNzUpICogMWVtKTsgLyogdmVydGljYWxseSBjZW50ZXJzIHRoZSBpY29uIHRha2luZyBpbnRvIGFjY291bnQgdGhlIHN1cnJvdW5kaW5nIHRleHQncyBkZXNjZW5kZXIgKi8KfQoKLmZhLXhzIHsKICBmb250LXNpemU6IGNhbGMoMTIgLyAxNiAqIDFlbSk7IC8qIGNvbnZlcnRzIGEgMTJweCBzaXplIGludG8gYW4gZW0tYmFzZWQgdmFsdWUgdGhhdCdzIHJlbGF0aXZlIHRvIHRoZSBzY2FsZSdzIDE2cHggYmFzZSAqLwogIGxpbmUtaGVpZ2h0OiBjYWxjKDEgLyAxMiAqIDFlbSk7IC8qIHNldHMgdGhlIGxpbmUtaGVpZ2h0IG9mIHRoZSBpY29uIGJhY2sgdG8gdGhhdCBvZiBpdCdzIHBhcmVudCAqLwogIHZlcnRpY2FsLWFsaWduOiBjYWxjKCg2IC8gMTIgLSAwLjM3NSkgKiAxZW0pOyAvKiB2ZXJ0aWNhbGx5IGNlbnRlcnMgdGhlIGljb24gdGFraW5nIGludG8gYWNjb3VudCB0aGUgc3Vycm91bmRpbmcgdGV4dCdzIGRlc2NlbmRlciAqLwp9CgouZmEtc20gewogIGZvbnQtc2l6ZTogY2FsYygxNCAvIDE2ICogMWVtKTsgLyogY29udmVydHMgYSAxNHB4IHNpemUgaW50byBhbiBlbS1iYXNlZCB2YWx1ZSB0aGF0J3MgcmVsYXRpdmUgdG8gdGhlIHNjYWxlJ3MgMTZweCBiYXNlICovCiAgbGluZS1oZWlnaHQ6IGNhbGMoMSAvIDE0ICogMWVtKTsgLyogc2V0cyB0aGUgbGluZS1oZWlnaHQgb2YgdGhlIGljb24gYmFjayB0byB0aGF0IG9mIGl0J3MgcGFyZW50ICovCiAgdmVydGljYWwtYWxpZ246IGNhbGMoKDYgLyAxNCAtIDAuMzc1KSAqIDFlbSk7IC8qIHZlcnRpY2FsbHkgY2VudGVycyB0aGUgaWNvbiB0YWtpbmcgaW50byBhY2NvdW50IHRoZSBzdXJyb3VuZGluZyB0ZXh0J3MgZGVzY2VuZGVyICovCn0KCi5mYS1sZyB7CiAgZm9udC1zaXplOiBjYWxjKDIwIC8gMTYgKiAxZW0pOyAvKiBjb252ZXJ0cyBhIDIwcHggc2l6ZSBpbnRvIGFuIGVtLWJhc2VkIHZhbHVlIHRoYXQncyByZWxhdGl2ZSB0byB0aGUgc2NhbGUncyAxNnB4IGJhc2UgKi8KICBsaW5lLWhlaWdodDogY2FsYygxIC8gMjAgKiAxZW0pOyAvKiBzZXRzIHRoZSBsaW5lLWhlaWdodCBvZiB0aGUgaWNvbiBiYWNrIHRvIHRoYXQgb2YgaXQncyBwYXJlbnQgKi8KICB2ZXJ0aWNhbC1hbGlnbjogY2FsYygoNiAvIDIwIC0gMC4zNzUpICogMWVtKTsgLyogdmVydGljYWxseSBjZW50ZXJzIHRoZSBpY29uIHRha2luZyBpbnRvIGFjY291bnQgdGhlIHN1cnJvdW5kaW5nIHRleHQncyBkZXNjZW5kZXIgKi8KfQoKLmZhLXhsIHsKICBmb250LXNpemU6IGNhbGMoMjQgLyAxNiAqIDFlbSk7IC8qIGNvbnZlcnRzIGEgMjRweCBzaXplIGludG8gYW4gZW0tYmFzZWQgdmFsdWUgdGhhdCdzIHJlbGF0aXZlIHRvIHRoZSBzY2FsZSdzIDE2cHggYmFzZSAqLwogIGxpbmUtaGVpZ2h0OiBjYWxjKDEgLyAyNCAqIDFlbSk7IC8qIHNldHMgdGhlIGxpbmUtaGVpZ2h0IG9mIHRoZSBpY29uIGJhY2sgdG8gdGhhdCBvZiBpdCdzIHBhcmVudCAqLwogIHZlcnRpY2FsLWFsaWduOiBjYWxjKCg2IC8gMjQgLSAwLjM3NSkgKiAxZW0pOyAvKiB2ZXJ0aWNhbGx5IGNlbnRlcnMgdGhlIGljb24gdGFraW5nIGludG8gYWNjb3VudCB0aGUgc3Vycm91bmRpbmcgdGV4dCdzIGRlc2NlbmRlciAqLwp9CgouZmEtMnhsIHsKICBmb250LXNpemU6IGNhbGMoMzIgLyAxNiAqIDFlbSk7IC8qIGNvbnZlcnRzIGEgMzJweCBzaXplIGludG8gYW4gZW0tYmFzZWQgdmFsdWUgdGhhdCdzIHJlbGF0aXZlIHRvIHRoZSBzY2FsZSdzIDE2cHggYmFzZSAqLwogIGxpbmUtaGVpZ2h0OiBjYWxjKDEgLyAzMiAqIDFlbSk7IC8qIHNldHMgdGhlIGxpbmUtaGVpZ2h0IG9mIHRoZSBpY29uIGJhY2sgdG8gdGhhdCBvZiBpdCdzIHBhcmVudCAqLwogIHZlcnRpY2FsLWFsaWduOiBjYWxjKCg2IC8gMzIgLSAwLjM3NSkgKiAxZW0pOyAvKiB2ZXJ0aWNhbGx5IGNlbnRlcnMgdGhlIGljb24gdGFraW5nIGludG8gYWNjb3VudCB0aGUgc3Vycm91bmRpbmcgdGV4dCdzIGRlc2NlbmRlciAqLwp9CgouZmEtd2lkdGgtYXV0byB7CiAgLS1mYS13aWR0aDogYXV0bzsKfQoKLmZhLWZ3LAouZmEtd2lkdGgtZml4ZWQgewogIC0tZmEtd2lkdGg6IDEuMjVlbTsKfQoKLmZhLXVsIHsKICBsaXN0LXN0eWxlLXR5cGU6IG5vbmU7CiAgbWFyZ2luLWlubGluZS1zdGFydDogdmFyKC0tZmEtbGktbWFyZ2luLCAyLjVlbSk7CiAgcGFkZGluZy1pbmxpbmUtc3RhcnQ6IDA7Cn0KLmZhLXVsID4gbGkgewogIHBvc2l0aW9uOiByZWxhdGl2ZTsKfQoKLmZhLWxpIHsKICBpbnNldC1pbmxpbmUtc3RhcnQ6IGNhbGMoLTEgKiB2YXIoLS1mYS1saS13aWR0aCwgMmVtKSk7CiAgcG9zaXRpb246IGFic29sdXRlOwogIHRleHQtYWxpZ246IGNlbnRlcjsKICB3aWR0aDogdmFyKC0tZmEtbGktd2lkdGgsIDJlbSk7CiAgbGluZS1oZWlnaHQ6IGluaGVyaXQ7Cn0KCi8qIEhlYWRzIFVwOiBCb3JkZXJlZCBJY29ucyB3aWxsIG5vdCBiZSBzdXBwb3J0ZWQgaW4gdGhlIGZ1dHVyZSEKICAtIFRoaXMgZmVhdHVyZSB3aWxsIGJlIGRlcHJlY2F0ZWQgaW4gdGhlIG5leHQgbWFqb3IgcmVsZWFzZSBvZiBGb250IEF3ZXNvbWUgKHY4KSEKICAtIFlvdSBtYXkgY29udGludWUgdG8gdXNlIGl0IGluIHRoaXMgdmVyc2lvbiAqdjcpLCBidXQgaXQgd2lsbCBub3QgYmUgc3VwcG9ydGVkIGluIEZvbnQgQXdlc29tZSB2OC4KKi8KLyogTm90ZXM6CiogLS1Ae3YuJGNzcy1wcmVmaXh9LWJvcmRlci13aWR0aCA9IDEvMTYgYnkgZGVmYXVsdCAodG8gcmVuZGVyIGFzIH4xcHggYmFzZWQgb24gYSAxNnB4IGRlZmF1bHQgZm9udC1zaXplKQoqIC0tQHt2LiRjc3MtcHJlZml4fS1ib3JkZXItcGFkZGluZyA9CiAgKiogMy8xNiBmb3IgdmVydGljYWwgcGFkZGluZyAodG8gZ2l2ZSB+MnB4IG9mIHZlcnRpY2FsIHdoaXRlc3BhY2UgYXJvdW5kIGFuIGljb24gY29uc2lkZXJpbmcgaXQncyB2ZXJ0aWNhbCBhbGlnbm1lbnQpCiAgKiogNC8xNiBmb3IgaG9yaXpvbnRhbCBwYWRkaW5nICh0byBnaXZlIH40cHggb2YgaG9yaXpvbnRhbCB3aGl0ZXNwYWNlIGFyb3VuZCBhbiBpY29uKQoqLwouZmEtYm9yZGVyIHsKICBib3JkZXItY29sb3I6IHZhcigtLWZhLWJvcmRlci1jb2xvciwgI2VlZSk7CiAgYm9yZGVyLXJhZGl1czogdmFyKC0tZmEtYm9yZGVyLXJhZGl1cywgMC4xZW0pOwogIGJvcmRlci1zdHlsZTogdmFyKC0tZmEtYm9yZGVyLXN0eWxlLCBzb2xpZCk7CiAgYm9yZGVyLXdpZHRoOiB2YXIoLS1mYS1ib3JkZXItd2lkdGgsIDAuMDYyNWVtKTsKICBib3gtc2l6aW5nOiB2YXIoLS1mYS1ib3JkZXItYm94LXNpemluZywgY29udGVudC1ib3gpOwogIHBhZGRpbmc6IHZhcigtLWZhLWJvcmRlci1wYWRkaW5nLCAwLjE4NzVlbSAwLjI1ZW0pOwp9CgouZmEtcHVsbC1sZWZ0LAouZmEtcHVsbC1zdGFydCB7CiAgZmxvYXQ6IGlubGluZS1zdGFydDsKICBtYXJnaW4taW5saW5lLWVuZDogdmFyKC0tZmEtcHVsbC1tYXJnaW4sIDAuM2VtKTsKfQoKLmZhLXB1bGwtcmlnaHQsCi5mYS1wdWxsLWVuZCB7CiAgZmxvYXQ6IGlubGluZS1lbmQ7CiAgbWFyZ2luLWlubGluZS1zdGFydDogdmFyKC0tZmEtcHVsbC1tYXJnaW4sIDAuM2VtKTsKfQoKLmZhLWJlYXQgewogIGFuaW1hdGlvbi1uYW1lOiBmYS1iZWF0OwogIGFuaW1hdGlvbi1kZWxheTogdmFyKC0tZmEtYW5pbWF0aW9uLWRlbGF5LCAwcyk7CiAgYW5pbWF0aW9uLWRpcmVjdGlvbjogdmFyKC0tZmEtYW5pbWF0aW9uLWRpcmVjdGlvbiwgbm9ybWFsKTsKICBhbmltYXRpb24tZHVyYXRpb246IHZhcigtLWZhLWFuaW1hdGlvbi1kdXJhdGlvbiwgMXMpOwogIGFuaW1hdGlvbi1pdGVyYXRpb24tY291bnQ6IHZhcigtLWZhLWFuaW1hdGlvbi1pdGVyYXRpb24tY291bnQsIGluZmluaXRlKTsKICBhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiB2YXIoLS1mYS1hbmltYXRpb24tdGltaW5nLCBlYXNlLWluLW91dCk7Cn0KCi5mYS1ib3VuY2UgewogIGFuaW1hdGlvbi1uYW1lOiBmYS1ib3VuY2U7CiAgYW5pbWF0aW9uLWRlbGF5OiB2YXIoLS1mYS1hbmltYXRpb24tZGVsYXksIDBzKTsKICBhbmltYXRpb24tZGlyZWN0aW9uOiB2YXIoLS1mYS1hbmltYXRpb24tZGlyZWN0aW9uLCBub3JtYWwpOwogIGFuaW1hdGlvbi1kdXJhdGlvbjogdmFyKC0tZmEtYW5pbWF0aW9uLWR1cmF0aW9uLCAxcyk7CiAgYW5pbWF0aW9uLWl0ZXJhdGlvbi1jb3VudDogdmFyKC0tZmEtYW5pbWF0aW9uLWl0ZXJhdGlvbi1jb3VudCwgaW5maW5pdGUpOwogIGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IHZhcigtLWZhLWFuaW1hdGlvbi10aW1pbmcsIGN1YmljLWJlemllcigwLjI4LCAwLjg0LCAwLjQyLCAxKSk7Cn0KCi5mYS1mYWRlIHsKICBhbmltYXRpb24tbmFtZTogZmEtZmFkZTsKICBhbmltYXRpb24tZGVsYXk6IHZhcigtLWZhLWFuaW1hdGlvbi1kZWxheSwgMHMpOwogIGFuaW1hdGlvbi1kaXJlY3Rpb246IHZhcigtLWZhLWFuaW1hdGlvbi1kaXJlY3Rpb24sIG5vcm1hbCk7CiAgYW5pbWF0aW9uLWR1cmF0aW9uOiB2YXIoLS1mYS1hbmltYXRpb24tZHVyYXRpb24sIDFzKTsKICBhbmltYXRpb24taXRlcmF0aW9uLWNvdW50OiB2YXIoLS1mYS1hbmltYXRpb24taXRlcmF0aW9uLWNvdW50LCBpbmZpbml0ZSk7CiAgYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogdmFyKC0tZmEtYW5pbWF0aW9uLXRpbWluZywgY3ViaWMtYmV6aWVyKDAuNCwgMCwgMC42LCAxKSk7Cn0KCi5mYS1iZWF0LWZhZGUgewogIGFuaW1hdGlvbi1uYW1lOiBmYS1iZWF0LWZhZGU7CiAgYW5pbWF0aW9uLWRlbGF5OiB2YXIoLS1mYS1hbmltYXRpb24tZGVsYXksIDBzKTsKICBhbmltYXRpb24tZGlyZWN0aW9uOiB2YXIoLS1mYS1hbmltYXRpb24tZGlyZWN0aW9uLCBub3JtYWwpOwogIGFuaW1hdGlvbi1kdXJhdGlvbjogdmFyKC0tZmEtYW5pbWF0aW9uLWR1cmF0aW9uLCAxcyk7CiAgYW5pbWF0aW9uLWl0ZXJhdGlvbi1jb3VudDogdmFyKC0tZmEtYW5pbWF0aW9uLWl0ZXJhdGlvbi1jb3VudCwgaW5maW5pdGUpOwogIGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IHZhcigtLWZhLWFuaW1hdGlvbi10aW1pbmcsIGN1YmljLWJlemllcigwLjQsIDAsIDAuNiwgMSkpOwp9CgouZmEtZmxpcCB7CiAgYW5pbWF0aW9uLW5hbWU6IGZhLWZsaXA7CiAgYW5pbWF0aW9uLWRlbGF5OiB2YXIoLS1mYS1hbmltYXRpb24tZGVsYXksIDBzKTsKICBhbmltYXRpb24tZGlyZWN0aW9uOiB2YXIoLS1mYS1hbmltYXRpb24tZGlyZWN0aW9uLCBub3JtYWwpOwogIGFuaW1hdGlvbi1kdXJhdGlvbjogdmFyKC0tZmEtYW5pbWF0aW9uLWR1cmF0aW9uLCAxcyk7CiAgYW5pbWF0aW9uLWl0ZXJhdGlvbi1jb3VudDogdmFyKC0tZmEtYW5pbWF0aW9uLWl0ZXJhdGlvbi1jb3VudCwgaW5maW5pdGUpOwogIGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IHZhcigtLWZhLWFuaW1hdGlvbi10aW1pbmcsIGVhc2UtaW4tb3V0KTsKfQoKLmZhLXNoYWtlIHsKICBhbmltYXRpb24tbmFtZTogZmEtc2hha2U7CiAgYW5pbWF0aW9uLWRlbGF5OiB2YXIoLS1mYS1hbmltYXRpb24tZGVsYXksIDBzKTsKICBhbmltYXRpb24tZGlyZWN0aW9uOiB2YXIoLS1mYS1hbmltYXRpb24tZGlyZWN0aW9uLCBub3JtYWwpOwogIGFuaW1hdGlvbi1kdXJhdGlvbjogdmFyKC0tZmEtYW5pbWF0aW9uLWR1cmF0aW9uLCAxcyk7CiAgYW5pbWF0aW9uLWl0ZXJhdGlvbi1jb3VudDogdmFyKC0tZmEtYW5pbWF0aW9uLWl0ZXJhdGlvbi1jb3VudCwgaW5maW5pdGUpOwogIGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IHZhcigtLWZhLWFuaW1hdGlvbi10aW1pbmcsIGxpbmVhcik7Cn0KCi5mYS1zcGluIHsKICBhbmltYXRpb24tbmFtZTogZmEtc3BpbjsKICBhbmltYXRpb24tZGVsYXk6IHZhcigtLWZhLWFuaW1hdGlvbi1kZWxheSwgMHMpOwogIGFuaW1hdGlvbi1kaXJlY3Rpb246IHZhcigtLWZhLWFuaW1hdGlvbi1kaXJlY3Rpb24sIG5vcm1hbCk7CiAgYW5pbWF0aW9uLWR1cmF0aW9uOiB2YXIoLS1mYS1hbmltYXRpb24tZHVyYXRpb24sIDJzKTsKICBhbmltYXRpb24taXRlcmF0aW9uLWNvdW50OiB2YXIoLS1mYS1hbmltYXRpb24taXRlcmF0aW9uLWNvdW50LCBpbmZpbml0ZSk7CiAgYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogdmFyKC0tZmEtYW5pbWF0aW9uLXRpbWluZywgbGluZWFyKTsKfQoKLmZhLXNwaW4tcmV2ZXJzZSB7CiAgLS1mYS1hbmltYXRpb24tZGlyZWN0aW9uOiByZXZlcnNlOwp9CgouZmEtcHVsc2UsCi5mYS1zcGluLXB1bHNlIHsKICBhbmltYXRpb24tbmFtZTogZmEtc3BpbjsKICBhbmltYXRpb24tZGlyZWN0aW9uOiB2YXIoLS1mYS1hbmltYXRpb24tZGlyZWN0aW9uLCBub3JtYWwpOwogIGFuaW1hdGlvbi1kdXJhdGlvbjogdmFyKC0tZmEtYW5pbWF0aW9uLWR1cmF0aW9uLCAxcyk7CiAgYW5pbWF0aW9uLWl0ZXJhdGlvbi1jb3VudDogdmFyKC0tZmEtYW5pbWF0aW9uLWl0ZXJhdGlvbi1jb3VudCwgaW5maW5pdGUpOwogIGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IHZhcigtLWZhLWFuaW1hdGlvbi10aW1pbmcsIHN0ZXBzKDgpKTsKfQoKQG1lZGlhIChwcmVmZXJzLXJlZHVjZWQtbW90aW9uOiByZWR1Y2UpIHsKICAuZmEtYmVhdCwKICAuZmEtYm91bmNlLAogIC5mYS1mYWRlLAogIC5mYS1iZWF0LWZhZGUsCiAgLmZhLWZsaXAsCiAgLmZhLXB1bHNlLAogIC5mYS1zaGFrZSwKICAuZmEtc3BpbiwKICAuZmEtc3Bpbi1wdWxzZSB7CiAgICBhbmltYXRpb246IG5vbmUgIWltcG9ydGFudDsKICAgIHRyYW5zaXRpb246IG5vbmUgIWltcG9ydGFudDsKICB9Cn0KQGtleWZyYW1lcyBmYS1iZWF0IHsKICAwJSwgOTAlIHsKICAgIHRyYW5zZm9ybTogc2NhbGUoMSk7CiAgfQogIDQ1JSB7CiAgICB0cmFuc2Zvcm06IHNjYWxlKHZhcigtLWZhLWJlYXQtc2NhbGUsIDEuMjUpKTsKICB9Cn0KQGtleWZyYW1lcyBmYS1ib3VuY2UgewogIDAlIHsKICAgIHRyYW5zZm9ybTogc2NhbGUoMSwgMSkgdHJhbnNsYXRlWSgwKTsKICB9CiAgMTAlIHsKICAgIHRyYW5zZm9ybTogc2NhbGUodmFyKC0tZmEtYm91bmNlLXN0YXJ0LXNjYWxlLXgsIDEuMSksIHZhcigtLWZhLWJvdW5jZS1zdGFydC1zY2FsZS15LCAwLjkpKSB0cmFuc2xhdGVZKDApOwogIH0KICAzMCUgewogICAgdHJhbnNmb3JtOiBzY2FsZSh2YXIoLS1mYS1ib3VuY2UtanVtcC1zY2FsZS14LCAwLjkpLCB2YXIoLS1mYS1ib3VuY2UtanVtcC1zY2FsZS15LCAxLjEpKSB0cmFuc2xhdGVZKHZhcigtLWZhLWJvdW5jZS1oZWlnaHQsIC0wLjVlbSkpOwogIH0KICA1MCUgewogICAgdHJhbnNmb3JtOiBzY2FsZSh2YXIoLS1mYS1ib3VuY2UtbGFuZC1zY2FsZS14LCAxLjA1KSwgdmFyKC0tZmEtYm91bmNlLWxhbmQtc2NhbGUteSwgMC45NSkpIHRyYW5zbGF0ZVkoMCk7CiAgfQogIDU3JSB7CiAgICB0cmFuc2Zvcm06IHNjYWxlKDEsIDEpIHRyYW5zbGF0ZVkodmFyKC0tZmEtYm91bmNlLXJlYm91bmQsIC0wLjEyNWVtKSk7CiAgfQogIDY0JSB7CiAgICB0cmFuc2Zvcm06IHNjYWxlKDEsIDEpIHRyYW5zbGF0ZVkoMCk7CiAgfQogIDEwMCUgewogICAgdHJhbnNmb3JtOiBzY2FsZSgxLCAxKSB0cmFuc2xhdGVZKDApOwogIH0KfQpAa2V5ZnJhbWVzIGZhLWZhZGUgewogIDUwJSB7CiAgICBvcGFjaXR5OiB2YXIoLS1mYS1mYWRlLW9wYWNpdHksIDAuNCk7CiAgfQp9CkBrZXlmcmFtZXMgZmEtYmVhdC1mYWRlIHsKICAwJSwgMTAwJSB7CiAgICBvcGFjaXR5OiB2YXIoLS1mYS1iZWF0LWZhZGUtb3BhY2l0eSwgMC40KTsKICAgIHRyYW5zZm9ybTogc2NhbGUoMSk7CiAgfQogIDUwJSB7CiAgICBvcGFjaXR5OiAxOwogICAgdHJhbnNmb3JtOiBzY2FsZSh2YXIoLS1mYS1iZWF0LWZhZGUtc2NhbGUsIDEuMTI1KSk7CiAgfQp9CkBrZXlmcmFtZXMgZmEtZmxpcCB7CiAgNTAlIHsKICAgIHRyYW5zZm9ybTogcm90YXRlM2QodmFyKC0tZmEtZmxpcC14LCAwKSwgdmFyKC0tZmEtZmxpcC15LCAxKSwgdmFyKC0tZmEtZmxpcC16LCAwKSwgdmFyKC0tZmEtZmxpcC1hbmdsZSwgLTE4MGRlZykpOwogIH0KfQpAa2V5ZnJhbWVzIGZhLXNoYWtlIHsKICAwJSB7CiAgICB0cmFuc2Zvcm06IHJvdGF0ZSgtMTVkZWcpOwogIH0KICA0JSB7CiAgICB0cmFuc2Zvcm06IHJvdGF0ZSgxNWRlZyk7CiAgfQogIDglLCAyNCUgewogICAgdHJhbnNmb3JtOiByb3RhdGUoLTE4ZGVnKTsKICB9CiAgMTIlLCAyOCUgewogICAgdHJhbnNmb3JtOiByb3RhdGUoMThkZWcpOwogIH0KICAxNiUgewogICAgdHJhbnNmb3JtOiByb3RhdGUoLTIyZGVnKTsKICB9CiAgMjAlIHsKICAgIHRyYW5zZm9ybTogcm90YXRlKDIyZGVnKTsKICB9CiAgMzIlIHsKICAgIHRyYW5zZm9ybTogcm90YXRlKC0xMmRlZyk7CiAgfQogIDM2JSB7CiAgICB0cmFuc2Zvcm06IHJvdGF0ZSgxMmRlZyk7CiAgfQogIDQwJSwgMTAwJSB7CiAgICB0cmFuc2Zvcm06IHJvdGF0ZSgwZGVnKTsKICB9Cn0KQGtleWZyYW1lcyBmYS1zcGluIHsKICAwJSB7CiAgICB0cmFuc2Zvcm06IHJvdGF0ZSgwZGVnKTsKICB9CiAgMTAwJSB7CiAgICB0cmFuc2Zvcm06IHJvdGF0ZSgzNjBkZWcpOwogIH0KfQouZmEtcm90YXRlLTkwIHsKICB0cmFuc2Zvcm06IHJvdGF0ZSg5MGRlZyk7Cn0KCi5mYS1yb3RhdGUtMTgwIHsKICB0cmFuc2Zvcm06IHJvdGF0ZSgxODBkZWcpOwp9CgouZmEtcm90YXRlLTI3MCB7CiAgdHJhbnNmb3JtOiByb3RhdGUoMjcwZGVnKTsKfQoKLmZhLWZsaXAtaG9yaXpvbnRhbCB7CiAgdHJhbnNmb3JtOiBzY2FsZSgtMSwgMSk7Cn0KCi5mYS1mbGlwLXZlcnRpY2FsIHsKICB0cmFuc2Zvcm06IHNjYWxlKDEsIC0xKTsKfQoKLmZhLWZsaXAtYm90aCwKLmZhLWZsaXAtaG9yaXpvbnRhbC5mYS1mbGlwLXZlcnRpY2FsIHsKICB0cmFuc2Zvcm06IHNjYWxlKC0xLCAtMSk7Cn0KCi5mYS1yb3RhdGUtYnkgewogIHRyYW5zZm9ybTogcm90YXRlKHZhcigtLWZhLXJvdGF0ZS1hbmdsZSwgMCkpOwp9Cgouc3ZnLWlubGluZS0tZmEgLmZhLXByaW1hcnkgewogIGZpbGw6IHZhcigtLWZhLXByaW1hcnktY29sb3IsIGN1cnJlbnRDb2xvcik7CiAgb3BhY2l0eTogdmFyKC0tZmEtcHJpbWFyeS1vcGFjaXR5LCAxKTsKfQoKLnN2Zy1pbmxpbmUtLWZhIC5mYS1zZWNvbmRhcnkgewogIGZpbGw6IHZhcigtLWZhLXNlY29uZGFyeS1jb2xvciwgY3VycmVudENvbG9yKTsKICBvcGFjaXR5OiB2YXIoLS1mYS1zZWNvbmRhcnktb3BhY2l0eSwgMC40KTsKfQoKLnN2Zy1pbmxpbmUtLWZhLmZhLXN3YXAtb3BhY2l0eSAuZmEtcHJpbWFyeSB7CiAgb3BhY2l0eTogdmFyKC0tZmEtc2Vjb25kYXJ5LW9wYWNpdHksIDAuNCk7Cn0KCi5zdmctaW5saW5lLS1mYS5mYS1zd2FwLW9wYWNpdHkgLmZhLXNlY29uZGFyeSB7CiAgb3BhY2l0eTogdmFyKC0tZmEtcHJpbWFyeS1vcGFjaXR5LCAxKTsKfQoKLnN2Zy1pbmxpbmUtLWZhIG1hc2sgLmZhLXByaW1hcnksCi5zdmctaW5saW5lLS1mYSBtYXNrIC5mYS1zZWNvbmRhcnkgewogIGZpbGw6IGJsYWNrOwp9Cgouc3ZnLWlubGluZS0tZmEuZmEtaW52ZXJzZSB7CiAgZmlsbDogdmFyKC0tZmEtaW52ZXJzZSwgI2ZmZik7Cn0KCi5mYS1zdGFjayB7CiAgZGlzcGxheTogaW5saW5lLWJsb2NrOwogIGhlaWdodDogMmVtOwogIGxpbmUtaGVpZ2h0OiAyZW07CiAgcG9zaXRpb246IHJlbGF0aXZlOwogIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7CiAgd2lkdGg6IDIuNWVtOwp9CgouZmEtaW52ZXJzZSB7CiAgY29sb3I6IHZhcigtLWZhLWludmVyc2UsICNmZmYpOwp9Cgouc3ZnLWlubGluZS0tZmEuZmEtc3RhY2stMXggewogIC0tZmEtd2lkdGg6IDEuMjVlbTsKICBoZWlnaHQ6IDFlbTsKICB3aWR0aDogdmFyKC0tZmEtd2lkdGgpOwp9Ci5zdmctaW5saW5lLS1mYS5mYS1zdGFjay0yeCB7CiAgLS1mYS13aWR0aDogMi41ZW07CiAgaGVpZ2h0OiAyZW07CiAgd2lkdGg6IHZhcigtLWZhLXdpZHRoKTsKfQoKLmZhLXN0YWNrLTF4LAouZmEtc3RhY2stMnggewogIGluc2V0OiAwOwogIG1hcmdpbjogYXV0bzsKICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgei1pbmRleDogdmFyKC0tZmEtc3RhY2stei1pbmRleCwgYXV0byk7Cn1gO1YxdD0hMTtlWXI9e21peG91dDpmdW5jdGlvbigpe3JldHVybntkb206e2NzczpqMXQsaW5zZXJ0Q3NzOnhhZX19fSxob29rczpmdW5jdGlvbigpe3JldHVybntiZWZvcmVET01FbGVtZW50Q3JlYXRpb246ZnVuY3Rpb24oKXt4YWUoKX0sYmVmb3JlSTJzdmc6ZnVuY3Rpb24oKXt4YWUoKX19fX0sbWM9VDR8fHt9O21jW2ZjXXx8KG1jW2ZjXT17fSksbWNbZmNdLnN0eWxlc3x8KG1jW2ZjXS5zdHlsZXM9e30pLG1jW2ZjXS5ob29rc3x8KG1jW2ZjXS5ob29rcz17fSksbWNbZmNdLnNoaW1zfHwobWNbZmNdLnNoaW1zPVtdKTtrMj1tY1tmY10sVTF0PVtdLFcxdD1mdW5jdGlvbigpe3UxLnJlbW92ZUV2ZW50TGlzdGVuZXIoIkRPTUNvbnRlbnRMb2FkZWQiLFcxdCksQ0E9MSxVMXQubWFwKGZ1bmN0aW9uKHQpe3JldHVybiB0KCl9KX0sQ0E9ITE7aGMmJihDQT0odTEuZG9jdW1lbnRFbGVtZW50LmRvU2Nyb2xsPy9ebG9hZGVkfF5jLzovXmxvYWRlZHxeaXxeYy8pLnRlc3QodTEucmVhZHlTdGF0ZSksQ0F8fHUxLmFkZEV2ZW50TGlzdGVuZXIoIkRPTUNvbnRlbnRMb2FkZWQiLFcxdCkpO3JZcj1mdW5jdGlvbih0LHIpe3JldHVybiBmdW5jdGlvbihpLGEsbixvKXtyZXR1cm4gdC5jYWxsKHIsaSxhLG4sbyl9fSx5YWU9ZnVuY3Rpb24odCxyLGksYSl7dmFyIG49T2JqZWN0LmtleXModCksbz1uLmxlbmd0aCxzPWEhPT12b2lkIDA/cllyKHIsYSk6cixsLGMsdTtmb3IoaT09PXZvaWQgMD8obD0xLHU9dFtuWzBdXSk6KGw9MCx1PWkpO2w8bztsKyspYz1uW2xdLHU9cyh1LHRbY10sYyx0KTtyZXR1cm4gdX07TWFlPTEsUzI9MixaZWE9W1tTMixFYSgvcGF0aCBvcGFjaXR5PSIoW14iXSopIi4qZD0iKFteIl0qKSIuKnBhdGguKmQ9IihbXiJdKikiLyx7ZDI6MixkMTozfSldLFtTMixFYSgvcGF0aCBvcGFjaXR5PSIoW14iXSopIi4qZD0iKFteIl0qKSIvLHtkMjoyfSldLFtNYWUsRWEoL3BhdGggZmlsbD0iY3VycmVudENvbG9yIi4qZD0iKFteIl0rKSIvLHtkMToxfSldXSxYZWE9W1tTMixFYSgvcGF0aCBjbGFzcz0iKFteIl0qc2Vjb25kYXJ5W14iXSopIi4qZD0iKFteIl0rKSIuKnBhdGggY2xhc3M9IihbXiJdKnByaW1hcnlbXiJdKikiLipkPSIoW14iXSspIi8se2F0dHIyOjEsZDI6MixhdHRyMTozLGQxOjR9KV0sW1MyLEVhKC9wYXRoIGNsYXNzPSIoW14iXSpwcmltYXJ5W14iXSopIi4qZD0iKFteIl0rKSIuKnBhdGggY2xhc3M9IihbXiJdKnNlY29uZGFyeVteIl0qKSIuKmQ9IihbXiJdKykiLyx7YXR0cjE6MSxkMToyLGF0dHIyOjMsZDI6NH0pXSxbUzIsRWEoL3BhdGggY2xhc3M9IihbXiJdKnByaW1hcnlbXiJdKikiLipkPSIoW14iXSspIi8se2F0dHIxOjEsZDE6Mn0pXSxbUzIsRWEoL3BhdGggY2xhc3M9IihbXiJdKnNlY29uZGFyeVteIl0qKSIuKmQ9IihbXiJdKykiLyx7YXR0cjI6MSxkMjoyfSldLFtTMixFYSgvcGF0aCBkPSIoW14iXSspIi4qY2xhc3M9IihbXiJdKnNlY29uZGFyeVteIl0qKSIuKnBhdGggZD0iKFteIl0rKSIuKmNsYXNzPSIoW14iXSpwcmltYXJ5W14iXSopIi8se2QyOjEsYXR0cjI6MixkMTozLGF0dHIxOjR9KV0sW1MyLEVhKC9wYXRoIGQ9IihbXiJdKykiLipjbGFzcz0iKFteIl0qcHJpbWFyeVteIl0qKSIuKnBhdGggZD0iKFteIl0rKSIuKmNsYXNzPSIoW14iXSpzZWNvbmRhcnlbXiJdKikiLyx7ZDE6MSxhdHRyMToyLGQyOjMsYXR0cjI6NH0pXSxbUzIsRWEoL3BhdGggZD0iKFteIl0rKSIuKmNsYXNzPSIoW14iXSpwcmltYXJ5W14iXSopIi8se2QxOjEsYXR0cjE6Mn0pXSxbUzIsRWEoL3BhdGggZD0iKFteIl0rKSIuKmNsYXNzPSIoW14iXSpzZWNvbmRhcnlbXiJdKikiLyx7ZDI6MSxhdHRyMjoyfSldLFtTMixFYSgvcGF0aCBkPSIoW14iXSspIi4qcGF0aCBkPSIoW14iXSspIi8se2QxOjEsZDI6Mn0pXSxbTWFlLEVhKC9wYXRoIGQ9IihbXiJdKykiLyx7ZDE6MX0pXSxbTWFlLEVhKC9wYXRoIHN0eWxlPSIoW14iXSspIi4qZD0iKFteIl0rKSIvLHthdHRyMToxLGQxOjJ9KV1dLHZnPWsyLnN0eWxlcyxpWXI9azIuc2hpbXMsWDF0PU9iamVjdC5rZXlzKGZhZSksYVlyPVgxdC5yZWR1Y2UoZnVuY3Rpb24oZSx0KXtyZXR1cm4gZVt0XT1PYmplY3Qua2V5cyhmYWVbdF0pLGV9LHt9KSxrYWU9bnVsbCxRMXQ9e30sSjF0PXt9LEsxdD17fSxlaXQ9e30sdGl0PXt9O3JpdD1mdW5jdGlvbigpe3ZhciB0PWZ1bmN0aW9uKG4pe3JldHVybiB5YWUodmcsZnVuY3Rpb24obyxzLGwpe3JldHVybiBvW2xdPXlhZShzLG4se30pLG99LHt9KX07UTF0PXQoZnVuY3Rpb24oYSxuLG8pe2lmKG5bM10mJihhW25bM11dPW8pLG5bMl0pe3ZhciBzPW5bMl0uZmlsdGVyKGZ1bmN0aW9uKGwpe3JldHVybiB0eXBlb2YgbD09Im51bWJlciJ9KTtzLmZvckVhY2goZnVuY3Rpb24obCl7YVtsLnRvU3RyaW5nKDE2KV09b30pfXJldHVybiBhfSksSjF0PXQoZnVuY3Rpb24oYSxuLG8pe2lmKGFbb109byxuWzJdKXt2YXIgcz1uWzJdLmZpbHRlcihmdW5jdGlvbihsKXtyZXR1cm4gdHlwZW9mIGw9PSJzdHJpbmcifSk7cy5mb3JFYWNoKGZ1bmN0aW9uKGwpe2FbbF09b30pfXJldHVybiBhfSksdGl0PXQoZnVuY3Rpb24oYSxuLG8pe3ZhciBzPW5bMl07cmV0dXJuIGFbb109byxzLmZvckVhY2goZnVuY3Rpb24obCl7YVtsXT1vfSksYX0pO3ZhciByPSJmYXIiaW4gdmd8fHB0LmF1dG9GZXRjaFN2ZyxpPXlhZShpWXIsZnVuY3Rpb24oYSxuKXt2YXIgbz1uWzBdLHM9blsxXSxsPW5bMl07cmV0dXJuIHM9PT0iZmFyIiYmIXImJihzPSJmYXMiKSx0eXBlb2Ygbz09InN0cmluZyImJihhLm5hbWVzW29dPXtwcmVmaXg6cyxpY29uTmFtZTpsfSksdHlwZW9mIG89PSJudW1iZXIiJiYoYS51bmljb2Rlc1tvLnRvU3RyaW5nKDE2KV09e3ByZWZpeDpzLGljb25OYW1lOmx9KSxhfSx7bmFtZXM6e30sdW5pY29kZXM6e319KTtLMXQ9aS5uYW1lcyxlaXQ9aS51bmljb2RlcyxrYWU9VEEocHQuc3R5bGVEZWZhdWx0LHtmYW1pbHk6cHQuZmFtaWx5RGVmYXVsdH0pfTtHR3IoZnVuY3Rpb24oZSl7a2FlPVRBKGUuc3R5bGVEZWZhdWx0LHtmYW1pbHk6cHQuZmFtaWx5RGVmYXVsdH0pfSkscml0KCk7YWl0PWZ1bmN0aW9uKCl7cmV0dXJue3ByZWZpeDpudWxsLGljb25OYW1lOm51bGwscmVzdDpbXX19O29pdD1MMXQuY29uY2F0KEMxdCk7cFlyPXoxdC5maWx0ZXIoZnVuY3Rpb24oZSl7cmV0dXJuIGUhPT1KaXx8ZSE9PWhnfSksaFlyPU9iamVjdC5rZXlzKHNhZSkuZmlsdGVyKGZ1bmN0aW9uKGUpe3JldHVybiBlIT09Sml9KS5tYXAoZnVuY3Rpb24oZSl7cmV0dXJuIE9iamVjdC5rZXlzKHNhZVtlXSl9KS5mbGF0KCk7bVlyPShmdW5jdGlvbigpe2Z1bmN0aW9uIGUoKXtYVXIodGhpcyxlKSx0aGlzLmRlZmluaXRpb25zPXt9fXJldHVybiBRVXIoZSxbe2tleToiYWRkIix2YWx1ZTpmdW5jdGlvbigpe2Zvcih2YXIgcj10aGlzLGk9YXJndW1lbnRzLmxlbmd0aCxhPW5ldyBBcnJheShpKSxuPTA7bjxpO24rKylhW25dPWFyZ3VtZW50c1tuXTt2YXIgbz1hLnJlZHVjZSh0aGlzLl9wdWxsRGVmaW5pdGlvbnMse30pO09iamVjdC5rZXlzKG8pLmZvckVhY2goZnVuY3Rpb24ocyl7ci5kZWZpbml0aW9uc1tzXT1WZShWZSh7fSxyLmRlZmluaXRpb25zW3NdfHx7fSksb1tzXSksd2FlKHMsb1tzXSk7dmFyIGw9ZmFlW0ppXVtzXTtsJiZ3YWUobCxvW3NdKSxyaXQoKX0pfX0se2tleToicmVzZXQiLHZhbHVlOmZ1bmN0aW9uKCl7dGhpcy5kZWZpbml0aW9ucz17fX19LHtrZXk6Il9wdWxsRGVmaW5pdGlvbnMiLHZhbHVlOmZ1bmN0aW9uKHIsaSl7dmFyIGE9aS5wcmVmaXgmJmkuaWNvbk5hbWUmJmkuaWNvbj97MDppfTppO3JldHVybiBPYmplY3Qua2V5cyhhKS5tYXAoZnVuY3Rpb24obil7dmFyIG89YVtuXSxzPW8ucHJlZml4LGw9by5pY29uTmFtZSxjPW8uaWNvbix1PWNbMl07cltzXXx8KHJbc109e30pLHUubGVuZ3RoPjAmJnUuZm9yRWFjaChmdW5jdGlvbihkKXt0eXBlb2YgZD09InN0cmluZyImJihyW3NdW2RdPWMpfSkscltzXVtsXT1jfSkscn19XSl9KSgpLHNpdD1bXSwkcD17fSxJcD17fSxnWXI9T2JqZWN0LmtleXMoSXApO2xpdD1uZXcgbVlyLHZZcj1mdW5jdGlvbigpe3B0LmF1dG9SZXBsYWNlU3ZnPSExLHB0Lm9ic2VydmVNdXRhdGlvbnM9ITEsX2QoIm5vQXV0byIpfSx4WXI9e2kyc3ZnOmZ1bmN0aW9uKCl7dmFyIHQ9YXJndW1lbnRzLmxlbmd0aD4wJiZhcmd1bWVudHNbMF0hPT12b2lkIDA/YXJndW1lbnRzWzBdOnt9O3JldHVybiBoYz8oX2QoImJlZm9yZUkyc3ZnIix0KSxBNCgicHNldWRvRWxlbWVudHMyc3ZnIix0KSxBNCgiaTJzdmciLHQpKTpQcm9taXNlLnJlamVjdChuZXcgRXJyb3IoIk9wZXJhdGlvbiByZXF1aXJlcyBhIERPTSBvZiBzb21lIGtpbmQuIikpfSx3YXRjaDpmdW5jdGlvbigpe3ZhciB0PWFyZ3VtZW50cy5sZW5ndGg+MCYmYXJndW1lbnRzWzBdIT09dm9pZCAwP2FyZ3VtZW50c1swXTp7fSxyPXQuYXV0b1JlcGxhY2VTdmdSb290O3B0LmF1dG9SZXBsYWNlU3ZnPT09ITEmJihwdC5hdXRvUmVwbGFjZVN2Zz0hMCkscHQub2JzZXJ2ZU11dGF0aW9ucz0hMCx0WXIoZnVuY3Rpb24oKXt3WXIoe2F1dG9SZXBsYWNlU3ZnUm9vdDpyfSksX2QoIndhdGNoIix0KX0pfX0seVlyPXtpY29uOmZ1bmN0aW9uKHQpe2lmKHQ9PT1udWxsKXJldHVybiBudWxsO2lmKE1BKHQpPT09Im9iamVjdCImJnQucHJlZml4JiZ0Lmljb25OYW1lKXJldHVybntwcmVmaXg6dC5wcmVmaXgsaWNvbk5hbWU6VGQodC5wcmVmaXgsdC5pY29uTmFtZSl8fHQuaWNvbk5hbWV9O2lmKEFycmF5LmlzQXJyYXkodCkmJnQubGVuZ3RoPT09Mil7dmFyIHI9dFsxXS5pbmRleE9mKCJmYS0iKT09PTA/dFsxXS5zbGljZSgzKTp0WzFdLGk9VEEodFswXSk7cmV0dXJue3ByZWZpeDppLGljb25OYW1lOlRkKGkscil8fHJ9fWlmKHR5cGVvZiB0PT0ic3RyaW5nIiYmKHQuaW5kZXhPZigiIi5jb25jYXQocHQuY3NzUHJlZml4LCItIikpPi0xfHx0Lm1hdGNoKEJHcikpKXt2YXIgYT1fQSh0LnNwbGl0KCIgIikse3NraXBMb29rdXBzOiEwfSk7cmV0dXJue3ByZWZpeDphLnByZWZpeHx8TDQoKSxpY29uTmFtZTpUZChhLnByZWZpeCxhLmljb25OYW1lKXx8YS5pY29uTmFtZX19aWYodHlwZW9mIHQ9PSJzdHJpbmciKXt2YXIgbj1MNCgpO3JldHVybntwcmVmaXg6bixpY29uTmFtZTpUZChuLHQpfHx0fX19fSxTbj17bm9BdXRvOnZZcixjb25maWc6cHQsZG9tOnhZcixwYXJzZTp5WXIsbGlicmFyeTpsaXQsZmluZEljb25EZWZpbml0aW9uOkNhZSx0b0h0bWw6Ymd9LHdZcj1mdW5jdGlvbigpe3ZhciB0PWFyZ3VtZW50cy5sZW5ndGg+MCYmYXJndW1lbnRzWzBdIT09dm9pZCAwP2FyZ3VtZW50c1swXTp7fSxyPXQuYXV0b1JlcGxhY2VTdmdSb290LGk9cj09PXZvaWQgMD91MTpyOyhPYmplY3Qua2V5cyhrMi5zdHlsZXMpLmxlbmd0aD4wfHxwdC5hdXRvRmV0Y2hTdmcpJiZoYyYmcHQuYXV0b1JlcGxhY2VTdmcmJlNuLmRvbS5pMnN2Zyh7bm9kZTppfSl9O19hZT1rMi5zdHlsZXM7Q1lyPXtmb3VuZDohMSx3aWR0aDo1MTIsaGVpZ2h0OjUxMn07ZGl0PWZ1bmN0aW9uKCl7fSxEYWU9cHQubWVhc3VyZVBlcmZvcm1hbmNlJiZrQSYma0EubWFyayYma0EubWVhc3VyZT9rQTp7bWFyazpkaXQsbWVhc3VyZTpkaXR9LHhnPSdGQSAiNy4yLjAiJyxfWXI9ZnVuY3Rpb24odCl7cmV0dXJuIERhZS5tYXJrKCIiLmNvbmNhdCh4ZywiICIpLmNvbmNhdCh0LCIgYmVnaW5zIikpLGZ1bmN0aW9uKCl7cmV0dXJuIHVpdCh0KX19LHVpdD1mdW5jdGlvbih0KXtEYWUubWFyaygiIi5jb25jYXQoeGcsIiAiKS5jb25jYXQodCwiIGVuZHMiKSksRGFlLm1lYXN1cmUoIiIuY29uY2F0KHhnLCIgIikuY29uY2F0KHQpLCIiLmNvbmNhdCh4ZywiICIpLmNvbmNhdCh0LCIgYmVnaW5zIiksIiIuY29uY2F0KHhnLCIgIikuY29uY2F0KHQsIiBlbmRzIikpfSxFYWU9e2JlZ2luOl9ZcixlbmQ6dWl0fSxBQT1mdW5jdGlvbigpe307REE9e3JlcGxhY2U6ZnVuY3Rpb24odCl7dmFyIHI9dFswXTtpZihyLnBhcmVudE5vZGUpaWYodFsxXS5mb3JFYWNoKGZ1bmN0aW9uKGEpe3IucGFyZW50Tm9kZS5pbnNlcnRCZWZvcmUoaGl0KGEpLHIpfSksci5nZXRBdHRyaWJ1dGUoQ2QpPT09bnVsbCYmcHQua2VlcE9yaWdpbmFsU291cmNlKXt2YXIgaT11MS5jcmVhdGVDb21tZW50KElZcihyKSk7ci5wYXJlbnROb2RlLnJlcGxhY2VDaGlsZChpLHIpfWVsc2Ugci5yZW1vdmUoKX0sbmVzdDpmdW5jdGlvbih0KXt2YXIgcj10WzBdLGk9dFsxXTtpZih+YmFlKHIpLmluZGV4T2YocHQucmVwbGFjZW1lbnRDbGFzcykpcmV0dXJuIERBLnJlcGxhY2UodCk7dmFyIGE9bmV3IFJlZ0V4cCgiIi5jb25jYXQocHQuY3NzUHJlZml4LCItLioiKSk7aWYoZGVsZXRlIGlbMF0uYXR0cmlidXRlcy5pZCxpWzBdLmF0dHJpYnV0ZXMuY2xhc3Mpe3ZhciBuPWlbMF0uYXR0cmlidXRlcy5jbGFzcy5zcGxpdCgiICIpLnJlZHVjZShmdW5jdGlvbihzLGwpe3JldHVybiBsPT09cHQucmVwbGFjZW1lbnRDbGFzc3x8bC5tYXRjaChhKT9zLnRvU3ZnLnB1c2gobCk6cy50b05vZGUucHVzaChsKSxzfSx7dG9Ob2RlOltdLHRvU3ZnOltdfSk7aVswXS5hdHRyaWJ1dGVzLmNsYXNzPW4udG9Tdmcuam9pbigiICIpLG4udG9Ob2RlLmxlbmd0aD09PTA/ci5yZW1vdmVBdHRyaWJ1dGUoImNsYXNzIik6ci5zZXRBdHRyaWJ1dGUoImNsYXNzIixuLnRvTm9kZS5qb2luKCIgIikpfXZhciBvPWkubWFwKGZ1bmN0aW9uKHMpe3JldHVybiBiZyhzKX0pLmpvaW4oYApgKTtyLnNldEF0dHJpYnV0ZShDZCwiIiksci5pbm5lckhUTUw9b319OyRhZT0hMTtFQT1udWxsO0JZcj1rMi5zdHlsZXM7VllyPWZ1bmN0aW9uKHQpe3ZhciByPWFyZ3VtZW50cy5sZW5ndGg+MSYmYXJndW1lbnRzWzFdIT09dm9pZCAwP2FyZ3VtZW50c1sxXTp7fSxpPXIudHJhbnNmb3JtLGE9aT09PXZvaWQgMD90bDppLG49ci5zeW1ib2wsbz1uPT09dm9pZCAwPyExOm4scz1yLm1hc2ssbD1zPT09dm9pZCAwP251bGw6cyxjPXIubWFza0lkLHU9Yz09PXZvaWQgMD9udWxsOmMsZD1yLmNsYXNzZXMsaD1kPT09dm9pZCAwP1tdOmQsZj1yLmF0dHJpYnV0ZXMseD1mPT09dm9pZCAwP3t9OmYsdj1yLnN0eWxlcyxiPXY9PT12b2lkIDA/e306djtpZih0KXt2YXIgeT10LnByZWZpeCx3PXQuaWNvbk5hbWUsaz10Lmljb247cmV0dXJuIExBKFZlKHt0eXBlOiJpY29uIn0sdCksZnVuY3Rpb24oKXtyZXR1cm4gX2QoImJlZm9yZURPTUVsZW1lbnRDcmVhdGlvbiIse2ljb25EZWZpbml0aW9uOnQscGFyYW1zOnJ9KSxUYWUoe2ljb25zOnttYWluOkxhZShrKSxtYXNrOmw/TGFlKGwuaWNvbik6e2ZvdW5kOiExLHdpZHRoOm51bGwsaGVpZ2h0Om51bGwsaWNvbjp7fX19LHByZWZpeDp5LGljb25OYW1lOncsdHJhbnNmb3JtOlZlKFZlKHt9LHRsKSxhKSxzeW1ib2w6byxtYXNrSWQ6dSxleHRyYTp7YXR0cmlidXRlczp4LHN0eWxlczpiLGNsYXNzZXM6aH19KX0pfX0sVVlyPXttaXhvdXQ6ZnVuY3Rpb24oKXtyZXR1cm57aWNvbjpqWXIoVllyKX19LGhvb2tzOmZ1bmN0aW9uKCl7cmV0dXJue211dGF0aW9uT2JzZXJ2ZXJDYWxsYmFja3M6ZnVuY3Rpb24ocil7cmV0dXJuIHIudHJlZUNhbGxiYWNrPXlpdCxyLm5vZGVDYWxsYmFjaz1xWXIscn19fSxwcm92aWRlczpmdW5jdGlvbih0KXt0Lmkyc3ZnPWZ1bmN0aW9uKHIpe3ZhciBpPXIubm9kZSxhPWk9PT12b2lkIDA/dTE6aSxuPXIuY2FsbGJhY2ssbz1uPT09dm9pZCAwP2Z1bmN0aW9uKCl7fTpuO3JldHVybiB5aXQoYSxvKX0sdC5nZW5lcmF0ZVN2Z1JlcGxhY2VtZW50TXV0YXRpb249ZnVuY3Rpb24ocixpKXt2YXIgYT1pLmljb25OYW1lLG49aS5wcmVmaXgsbz1pLnRyYW5zZm9ybSxzPWkuc3ltYm9sLGw9aS5tYXNrLGM9aS5tYXNrSWQsdT1pLmV4dHJhO3JldHVybiBuZXcgUHJvbWlzZShmdW5jdGlvbihkLGgpe1Byb21pc2UuYWxsKFtBYWUoYSxuKSxsLmljb25OYW1lP0FhZShsLmljb25OYW1lLGwucHJlZml4KTpQcm9taXNlLnJlc29sdmUoe2ZvdW5kOiExLHdpZHRoOjUxMixoZWlnaHQ6NTEyLGljb246e319KV0pLnRoZW4oZnVuY3Rpb24oZil7dmFyIHg9d0EoZiwyKSx2PXhbMF0sYj14WzFdO2QoW3IsVGFlKHtpY29uczp7bWFpbjp2LG1hc2s6Yn0scHJlZml4Om4saWNvbk5hbWU6YSx0cmFuc2Zvcm06byxzeW1ib2w6cyxtYXNrSWQ6YyxleHRyYTp1LHdhdGNoYWJsZTohMH0pXSl9KS5jYXRjaChoKX0pfSx0LmdlbmVyYXRlQWJzdHJhY3RJY29uPWZ1bmN0aW9uKHIpe3ZhciBpPXIuY2hpbGRyZW4sYT1yLmF0dHJpYnV0ZXMsbj1yLm1haW4sbz1yLnRyYW5zZm9ybSxzPXIuc3R5bGVzLGw9ekEocyk7bC5sZW5ndGg+MCYmKGEuc3R5bGU9bCk7dmFyIGM7cmV0dXJuIHZhZShvKSYmKGM9QTQoImdlbmVyYXRlQWJzdHJhY3RUcmFuc2Zvcm1Hcm91cGluZyIse21haW46bix0cmFuc2Zvcm06byxjb250YWluZXJXaWR0aDpuLndpZHRoLGljb25XaWR0aDpuLndpZHRofSkpLGkucHVzaChjfHxuLmljb24pLHtjaGlsZHJlbjppLGF0dHJpYnV0ZXM6YX19fX0sV1lyPXttaXhvdXQ6ZnVuY3Rpb24oKXtyZXR1cm57bGF5ZXI6ZnVuY3Rpb24ocil7dmFyIGk9YXJndW1lbnRzLmxlbmd0aD4xJiZhcmd1bWVudHNbMV0hPT12b2lkIDA/YXJndW1lbnRzWzFdOnt9LGE9aS5jbGFzc2VzLG49YT09PXZvaWQgMD9bXTphO3JldHVybiBMQSh7dHlwZToibGF5ZXIifSxmdW5jdGlvbigpe19kKCJiZWZvcmVET01FbGVtZW50Q3JlYXRpb24iLHthc3NlbWJsZXI6cixwYXJhbXM6aX0pO3ZhciBvPVtdO3JldHVybiByKGZ1bmN0aW9uKHMpe0FycmF5LmlzQXJyYXkocyk/cy5tYXAoZnVuY3Rpb24obCl7bz1vLmNvbmNhdChsLmFic3RyYWN0KX0pOm89by5jb25jYXQocy5hYnN0cmFjdCl9KSxbe3RhZzoic3BhbiIsYXR0cmlidXRlczp7Y2xhc3M6WyIiLmNvbmNhdChwdC5jc3NQcmVmaXgsIi1sYXllcnMiKV0uY29uY2F0KE0yKG4pKS5qb2luKCIgIil9LGNoaWxkcmVuOm99XX0pfX19fSxHWXI9e21peG91dDpmdW5jdGlvbigpe3JldHVybntjb3VudGVyOmZ1bmN0aW9uKHIpe3ZhciBpPWFyZ3VtZW50cy5sZW5ndGg+MSYmYXJndW1lbnRzWzFdIT09dm9pZCAwP2FyZ3VtZW50c1sxXTp7fSxhPWkudGl0bGUsbj1hPT09dm9pZCAwP251bGw6YSxvPWkuY2xhc3NlcyxzPW89PT12b2lkIDA/W106byxsPWkuYXR0cmlidXRlcyxjPWw9PT12b2lkIDA/e306bCx1PWkuc3R5bGVzLGQ9dT09PXZvaWQgMD97fTp1O3JldHVybiBMQSh7dHlwZToiY291bnRlciIsY29udGVudDpyfSxmdW5jdGlvbigpe3JldHVybiBfZCgiYmVmb3JlRE9NRWxlbWVudENyZWF0aW9uIix7Y29udGVudDpyLHBhcmFtczppfSksellyKHtjb250ZW50OnIudG9TdHJpbmcoKSx0aXRsZTpuLGV4dHJhOnthdHRyaWJ1dGVzOmMsc3R5bGVzOmQsY2xhc3NlczpbIiIuY29uY2F0KHB0LmNzc1ByZWZpeCwiLWxheWVycy1jb3VudGVyIildLmNvbmNhdChNMihzKSl9fSl9KX19fX0sWVlyPXttaXhvdXQ6ZnVuY3Rpb24oKXtyZXR1cm57dGV4dDpmdW5jdGlvbihyKXt2YXIgaT1hcmd1bWVudHMubGVuZ3RoPjEmJmFyZ3VtZW50c1sxXSE9PXZvaWQgMD9hcmd1bWVudHNbMV06e30sYT1pLnRyYW5zZm9ybSxuPWE9PT12b2lkIDA/dGw6YSxvPWkuY2xhc3NlcyxzPW89PT12b2lkIDA/W106byxsPWkuYXR0cmlidXRlcyxjPWw9PT12b2lkIDA/e306bCx1PWkuc3R5bGVzLGQ9dT09PXZvaWQgMD97fTp1O3JldHVybiBMQSh7dHlwZToidGV4dCIsY29udGVudDpyfSxmdW5jdGlvbigpe3JldHVybiBfZCgiYmVmb3JlRE9NRWxlbWVudENyZWF0aW9uIix7Y29udGVudDpyLHBhcmFtczppfSksY2l0KHtjb250ZW50OnIsdHJhbnNmb3JtOlZlKFZlKHt9LHRsKSxuKSxleHRyYTp7YXR0cmlidXRlczpjLHN0eWxlczpkLGNsYXNzZXM6WyIiLmNvbmNhdChwdC5jc3NQcmVmaXgsIi1sYXllcnMtdGV4dCIpXS5jb25jYXQoTTIocykpfX0pfSl9fX0scHJvdmlkZXM6ZnVuY3Rpb24odCl7dC5nZW5lcmF0ZUxheWVyc1RleHQ9ZnVuY3Rpb24ocixpKXt2YXIgYT1pLnRyYW5zZm9ybSxuPWkuZXh0cmEsbz1udWxsLHM9bnVsbDtpZihuMXQpe3ZhciBsPXBhcnNlSW50KGdldENvbXB1dGVkU3R5bGUocikuZm9udFNpemUsMTApLGM9ci5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtvPWMud2lkdGgvbCxzPWMuaGVpZ2h0L2x9cmV0dXJuIFByb21pc2UucmVzb2x2ZShbcixjaXQoe2NvbnRlbnQ6ci5pbm5lckhUTUwsd2lkdGg6byxoZWlnaHQ6cyx0cmFuc2Zvcm06YSxleHRyYTpuLHdhdGNoYWJsZTohMH0pXSl9fX0sd2l0PW5ldyBSZWdFeHAoJyInLCJ1ZyIpLE1pdD1bMTEwNTkyMCwxMTEyMzE5XSxraXQ9VmUoVmUoVmUoVmUoe30se0ZvbnRBd2Vzb21lOntub3JtYWw6ImZhcyIsNDAwOiJmYXMifX0pLF9XciksUEdyKSxGV3IpLFBhZT1PYmplY3Qua2V5cyhraXQpLnJlZHVjZShmdW5jdGlvbihlLHQpe3JldHVybiBlW3QudG9Mb3dlckNhc2UoKV09a2l0W3RdLGV9LHt9KSxaWXI9T2JqZWN0LmtleXMoUGFlKS5yZWR1Y2UoZnVuY3Rpb24oZSx0KXt2YXIgcj1QYWVbdF07cmV0dXJuIGVbdF09cls5MDBdfHxNMihPYmplY3QuZW50cmllcyhyKSlbMF1bMV0sZX0se30pO3Racj1mdW5jdGlvbih0KXtyZXR1cm4hIXQmJkkxdC5zb21lKGZ1bmN0aW9uKHIpe3JldHVybiB0LmluY2x1ZGVzKHIpfSl9LHJacj1mdW5jdGlvbih0KXtpZighdClyZXR1cm5bXTt2YXIgcj1uZXcgU2V0LGk9dC5zcGxpdCgvLCg/IVteKCldKlwpKS8pLm1hcChmdW5jdGlvbihsKXtyZXR1cm4gbC50cmltKCl9KTtpPWkuZmxhdE1hcChmdW5jdGlvbihsKXtyZXR1cm4gbC5pbmNsdWRlcygiKCIpP2w6bC5zcGxpdCgiLCIpLm1hcChmdW5jdGlvbihjKXtyZXR1cm4gYy50cmltKCl9KX0pO3ZhciBhPXhBKGkpLG47dHJ5e2ZvcihhLnMoKTshKG49YS5uKCkpLmRvbmU7KXt2YXIgbz1uLnZhbHVlO2lmKHRacihvKSl7dmFyIHM9STF0LnJlZHVjZShmdW5jdGlvbihsLGMpe3JldHVybiBsLnJlcGxhY2UoYywiIil9LG8pO3MhPT0iIiYmcyE9PSIqIiYmci5hZGQocyl9fX1jYXRjaChsKXthLmUobCl9ZmluYWxseXthLmYoKX1yZXR1cm4gcn07aVpyPXtob29rczpmdW5jdGlvbigpe3JldHVybnttdXRhdGlvbk9ic2VydmVyQ2FsbGJhY2tzOmZ1bmN0aW9uKHIpe3JldHVybiByLnBzZXVkb0VsZW1lbnRzQ2FsbGJhY2s9eml0LHJ9fX0scHJvdmlkZXM6ZnVuY3Rpb24odCl7dC5wc2V1ZG9FbGVtZW50czJzdmc9ZnVuY3Rpb24ocil7dmFyIGk9ci5ub2RlLGE9aT09PXZvaWQgMD91MTppO3B0LnNlYXJjaFBzZXVkb0VsZW1lbnRzJiZ6aXQoYSl9fX0sQ2l0PSExLGFacj17bWl4b3V0OmZ1bmN0aW9uKCl7cmV0dXJue2RvbTp7dW53YXRjaDpmdW5jdGlvbigpe2dpdCgpLENpdD0hMH19fX0saG9va3M6ZnVuY3Rpb24oKXtyZXR1cm57Ym9vdHN0cmFwOmZ1bmN0aW9uKCl7Yml0KHphZSgibXV0YXRpb25PYnNlcnZlckNhbGxiYWNrcyIse30pKX0sbm9BdXRvOmZ1bmN0aW9uKCl7UFlyKCl9LHdhdGNoOmZ1bmN0aW9uKHIpe3ZhciBpPXIub2JzZXJ2ZU11dGF0aW9uc1Jvb3Q7Q2l0P0lhZSgpOmJpdCh6YWUoIm11dGF0aW9uT2JzZXJ2ZXJDYWxsYmFja3MiLHtvYnNlcnZlTXV0YXRpb25zUm9vdDppfSkpfX19fSxUaXQ9ZnVuY3Rpb24odCl7dmFyIHI9e3NpemU6MTYseDowLHk6MCxmbGlwWDohMSxmbGlwWTohMSxyb3RhdGU6MH07cmV0dXJuIHQudG9Mb3dlckNhc2UoKS5zcGxpdCgiICIpLnJlZHVjZShmdW5jdGlvbihpLGEpe3ZhciBuPWEudG9Mb3dlckNhc2UoKS5zcGxpdCgiLSIpLG89blswXSxzPW4uc2xpY2UoMSkuam9pbigiLSIpO2lmKG8mJnM9PT0iaCIpcmV0dXJuIGkuZmxpcFg9ITAsaTtpZihvJiZzPT09InYiKXJldHVybiBpLmZsaXBZPSEwLGk7aWYocz1wYXJzZUZsb2F0KHMpLGlzTmFOKHMpKXJldHVybiBpO3N3aXRjaChvKXtjYXNlImdyb3ciOmkuc2l6ZT1pLnNpemUrczticmVhaztjYXNlInNocmluayI6aS5zaXplPWkuc2l6ZS1zO2JyZWFrO2Nhc2UibGVmdCI6aS54PWkueC1zO2JyZWFrO2Nhc2UicmlnaHQiOmkueD1pLngrczticmVhaztjYXNlInVwIjppLnk9aS55LXM7YnJlYWs7Y2FzZSJkb3duIjppLnk9aS55K3M7YnJlYWs7Y2FzZSJyb3RhdGUiOmkucm90YXRlPWkucm90YXRlK3M7YnJlYWt9cmV0dXJuIGl9LHIpfSxuWnI9e21peG91dDpmdW5jdGlvbigpe3JldHVybntwYXJzZTp7dHJhbnNmb3JtOmZ1bmN0aW9uKHIpe3JldHVybiBUaXQocil9fX19LGhvb2tzOmZ1bmN0aW9uKCl7cmV0dXJue3BhcnNlTm9kZUF0dHJpYnV0ZXM6ZnVuY3Rpb24ocixpKXt2YXIgYT1pLmdldEF0dHJpYnV0ZSgiZGF0YS1mYS10cmFuc2Zvcm0iKTtyZXR1cm4gYSYmKHIudHJhbnNmb3JtPVRpdChhKSkscn19fSxwcm92aWRlczpmdW5jdGlvbih0KXt0LmdlbmVyYXRlQWJzdHJhY3RUcmFuc2Zvcm1Hcm91cGluZz1mdW5jdGlvbihyKXt2YXIgaT1yLm1haW4sYT1yLnRyYW5zZm9ybSxuPXIuY29udGFpbmVyV2lkdGgsbz1yLmljb25XaWR0aCxzPXt0cmFuc2Zvcm06InRyYW5zbGF0ZSgiLmNvbmNhdChuLzIsIiAyNTYpIil9LGw9InRyYW5zbGF0ZSgiLmNvbmNhdChhLngqMzIsIiwgIikuY29uY2F0KGEueSozMiwiKSAiKSxjPSJzY2FsZSgiLmNvbmNhdChhLnNpemUvMTYqKGEuZmxpcFg/LTE6MSksIiwgIikuY29uY2F0KGEuc2l6ZS8xNiooYS5mbGlwWT8tMToxKSwiKSAiKSx1PSJyb3RhdGUoIi5jb25jYXQoYS5yb3RhdGUsIiAwIDApIiksZD17dHJhbnNmb3JtOiIiLmNvbmNhdChsLCIgIikuY29uY2F0KGMsIiAiKS5jb25jYXQodSl9LGg9e3RyYW5zZm9ybToidHJhbnNsYXRlKCIuY29uY2F0KG8vMiotMSwiIC0yNTYpIil9LGY9e291dGVyOnMsaW5uZXI6ZCxwYXRoOmh9O3JldHVybnt0YWc6ImciLGF0dHJpYnV0ZXM6VmUoe30sZi5vdXRlciksY2hpbGRyZW46W3t0YWc6ImciLGF0dHJpYnV0ZXM6VmUoe30sZi5pbm5lciksY2hpbGRyZW46W3t0YWc6aS5pY29uLnRhZyxjaGlsZHJlbjppLmljb24uY2hpbGRyZW4sYXR0cmlidXRlczpWZShWZSh7fSxpLmljb24uYXR0cmlidXRlcyksZi5wYXRoKX1dfV19fX19LE5hZT17eDowLHk6MCx3aWR0aDoiMTAwJSIsaGVpZ2h0OiIxMDAlIn07c1pyPXtob29rczpmdW5jdGlvbigpe3JldHVybntwYXJzZU5vZGVBdHRyaWJ1dGVzOmZ1bmN0aW9uKHIsaSl7dmFyIGE9aS5nZXRBdHRyaWJ1dGUoImRhdGEtZmEtbWFzayIpLG49YT9fQShhLnNwbGl0KCIgIikubWFwKGZ1bmN0aW9uKG8pe3JldHVybiBvLnRyaW0oKX0pKTphaXQoKTtyZXR1cm4gbi5wcmVmaXh8fChuLnByZWZpeD1MNCgpKSxyLm1hc2s9bixyLm1hc2tJZD1pLmdldEF0dHJpYnV0ZSgiZGF0YS1mYS1tYXNrLWlkIikscn19fSxwcm92aWRlczpmdW5jdGlvbih0KXt0LmdlbmVyYXRlQWJzdHJhY3RNYXNrPWZ1bmN0aW9uKHIpe3ZhciBpPXIuY2hpbGRyZW4sYT1yLmF0dHJpYnV0ZXMsbj1yLm1haW4sbz1yLm1hc2sscz1yLm1hc2tJZCxsPXIudHJhbnNmb3JtLGM9bi53aWR0aCx1PW4uaWNvbixkPW8ud2lkdGgsaD1vLmljb24sZj1RR3Ioe3RyYW5zZm9ybTpsLGNvbnRhaW5lcldpZHRoOmQsaWNvbldpZHRoOmN9KSx4PXt0YWc6InJlY3QiLGF0dHJpYnV0ZXM6VmUoVmUoe30sTmFlKSx7fSx7ZmlsbDoid2hpdGUifSl9LHY9dS5jaGlsZHJlbj97Y2hpbGRyZW46dS5jaGlsZHJlbi5tYXAoX2l0KX06e30sYj17dGFnOiJnIixhdHRyaWJ1dGVzOlZlKHt9LGYuaW5uZXIpLGNoaWxkcmVuOltfaXQoVmUoe3RhZzp1LnRhZyxhdHRyaWJ1dGVzOlZlKFZlKHt9LHUuYXR0cmlidXRlcyksZi5wYXRoKX0sdikpXX0seT17dGFnOiJnIixhdHRyaWJ1dGVzOlZlKHt9LGYub3V0ZXIpLGNoaWxkcmVuOltiXX0sdz0ibWFzay0iLmNvbmNhdChzfHxIMXQoKSksaz0iY2xpcC0iLmNvbmNhdChzfHxIMXQoKSksTz17dGFnOiJtYXNrIixhdHRyaWJ1dGVzOlZlKFZlKHt9LE5hZSkse30se2lkOncsbWFza1VuaXRzOiJ1c2VyU3BhY2VPblVzZSIsbWFza0NvbnRlbnRVbml0czoidXNlclNwYWNlT25Vc2UifSksY2hpbGRyZW46W3gseV19LHo9e3RhZzoiZGVmcyIsY2hpbGRyZW46W3t0YWc6ImNsaXBQYXRoIixhdHRyaWJ1dGVzOntpZDprfSxjaGlsZHJlbjpvWnIoaCl9LE9dfTtyZXR1cm4gaS5wdXNoKHose3RhZzoicmVjdCIsYXR0cmlidXRlczpWZSh7ZmlsbDoiY3VycmVudENvbG9yIiwiY2xpcC1wYXRoIjoidXJsKCMiLmNvbmNhdChrLCIpIiksbWFzazoidXJsKCMiLmNvbmNhdCh3LCIpIil9LE5hZSl9KSx7Y2hpbGRyZW46aSxhdHRyaWJ1dGVzOmF9fX19LGxacj17cHJvdmlkZXM6ZnVuY3Rpb24odCl7dmFyIHI9ITE7VDQubWF0Y2hNZWRpYSYmKHI9VDQubWF0Y2hNZWRpYSgiKHByZWZlcnMtcmVkdWNlZC1tb3Rpb246IHJlZHVjZSkiKS5tYXRjaGVzKSx0Lm1pc3NpbmdJY29uQWJzdHJhY3Q9ZnVuY3Rpb24oKXt2YXIgaT1bXSxhPXtmaWxsOiJjdXJyZW50Q29sb3IifSxuPXthdHRyaWJ1dGVUeXBlOiJYTUwiLHJlcGVhdENvdW50OiJpbmRlZmluaXRlIixkdXI6IjJzIn07aS5wdXNoKHt0YWc6InBhdGgiLGF0dHJpYnV0ZXM6VmUoVmUoe30sYSkse30se2Q6Ik0xNTYuNSw0NDcuN2wtMTIuNiwyOS41Yy0xOC43LTkuNS0zNS45LTIxLjItNTEuNS0zNC45bDIyLjctMjIuN0MxMjcuNiw0MzAuNSwxNDEuNSw0NDAsMTU2LjUsNDQ3Ljd6IE00MC42LDI3Mkg4LjUgYzEuNCwyMS4yLDUuNCw0MS43LDExLjcsNjEuMUw1MCwzMjEuMkM0NS4xLDMwNS41LDQxLjgsMjg5LDQwLjYsMjcyeiBNNDAuNiwyNDBjMS40LTE4LjgsNS4yLTM3LDExLjEtNTQuMWwtMjkuNS0xMi42IEMxNC43LDE5NC4zLDEwLDIxNi43LDguNSwyNDBINDAuNnogTTY0LjMsMTU2LjVjNy44LTE0LjksMTcuMi0yOC44LDI4LjEtNDEuNUw2OS43LDkyLjNjLTEzLjcsMTUuNi0yNS41LDMyLjgtMzQuOSw1MS41IEw2NC4zLDE1Ni41eiBNMzk3LDQxOS42Yy0xMy45LDEyLTI5LjQsMjIuMy00Ni4xLDMwLjRsMTEuOSwyOS44YzIwLjctOS45LDM5LjgtMjIuNiw1Ni45LTM3LjZMMzk3LDQxOS42eiBNMTE1LDkyLjQgYzEzLjktMTIsMjkuNC0yMi4zLDQ2LjEtMzAuNGwtMTEuOS0yOS44Yy0yMC43LDkuOS0zOS44LDIyLjYtNTYuOCwzNy42TDExNSw5Mi40eiBNNDQ3LjcsMzU1LjVjLTcuOCwxNC45LTE3LjIsMjguOC0yOC4xLDQxLjUgbDIyLjcsMjIuN2MxMy43LTE1LjYsMjUuNS0zMi45LDM0LjktNTEuNUw0NDcuNywzNTUuNXogTTQ3MS40LDI3MmMtMS40LDE4LjgtNS4yLDM3LTExLjEsNTQuMWwyOS41LDEyLjYgYzcuNS0yMS4xLDEyLjItNDMuNSwxMy42LTY2LjhINDcxLjR6IE0zMjEuMiw0NjJjLTE1LjcsNS0zMi4yLDguMi00OS4yLDkuNHYzMi4xYzIxLjItMS40LDQxLjctNS40LDYxLjEtMTEuN0wzMjEuMiw0NjJ6IE0yNDAsNDcxLjRjLTE4LjgtMS40LTM3LTUuMi01NC4xLTExLjFsLTEyLjYsMjkuNWMyMS4xLDcuNSw0My41LDEyLjIsNjYuOCwxMy42VjQ3MS40eiBNNDYyLDE5MC44YzUsMTUuNyw4LjIsMzIuMiw5LjQsNDkuMmgzMi4xIGMtMS40LTIxLjItNS40LTQxLjctMTEuNy02MS4xTDQ2MiwxOTAuOHogTTkyLjQsMzk3Yy0xMi0xMy45LTIyLjMtMjkuNC0zMC40LTQ2LjFsLTI5LjgsMTEuOWM5LjksMjAuNywyMi42LDM5LjgsMzcuNiw1Ni45IEw5Mi40LDM5N3ogTTI3Miw0MC42YzE4LjgsMS40LDM2LjksNS4yLDU0LjEsMTEuMWwxMi42LTI5LjVDMzE3LjcsMTQuNywyOTUuMywxMCwyNzIsOC41VjQwLjZ6IE0xOTAuOCw1MCBjMTUuNy01LDMyLjItOC4yLDQ5LjItOS40VjguNWMtMjEuMiwxLjQtNDEuNyw1LjQtNjEuMSwxMS43TDE5MC44LDUweiBNNDQyLjMsOTIuM0w0MTkuNiwxMTVjMTIsMTMuOSwyMi4zLDI5LjQsMzAuNSw0Ni4xIGwyOS44LTExLjlDNDcwLDEyOC41LDQ1Ny4zLDEwOS40LDQ0Mi4zLDkyLjN6IE0zOTcsOTIuNGwyMi43LTIyLjdjLTE1LjYtMTMuNy0zMi44LTI1LjUtNTEuNS0zNC45bC0xMi42LDI5LjUgQzM3MC40LDcyLjEsMzg0LjQsODEuNSwzOTcsOTIuNHoifSl9KTt2YXIgbz1WZShWZSh7fSxuKSx7fSx7YXR0cmlidXRlTmFtZToib3BhY2l0eSJ9KSxzPXt0YWc6ImNpcmNsZSIsYXR0cmlidXRlczpWZShWZSh7fSxhKSx7fSx7Y3g6IjI1NiIsY3k6IjM2NCIscjoiMjgifSksY2hpbGRyZW46W119O3JldHVybiByfHxzLmNoaWxkcmVuLnB1c2goe3RhZzoiYW5pbWF0ZSIsYXR0cmlidXRlczpWZShWZSh7fSxuKSx7fSx7YXR0cmlidXRlTmFtZToiciIsdmFsdWVzOiIyODsxNDsyODsyODsxNDsyODsifSl9LHt0YWc6ImFuaW1hdGUiLGF0dHJpYnV0ZXM6VmUoVmUoe30sbykse30se3ZhbHVlczoiMTswOzE7MTswOzE7In0pfSksaS5wdXNoKHMpLGkucHVzaCh7dGFnOiJwYXRoIixhdHRyaWJ1dGVzOlZlKFZlKHt9LGEpLHt9LHtvcGFjaXR5OiIxIixkOiJNMjYzLjcsMzEyaC0xNmMtNi42LDAtMTItNS40LTEyLTEyYzAtNzEsNzcuNC02My45LDc3LjQtMTA3LjhjMC0yMC0xNy44LTQwLjItNTcuNC00MC4yYy0yOS4xLDAtNDQuMyw5LjYtNTkuMiwyOC43IGMtMy45LDUtMTEuMSw2LTE2LjIsMi40bC0xMy4xLTkuMmMtNS42LTMuOS02LjktMTEuOC0yLjYtMTcuMmMyMS4yLTI3LjIsNDYuNC00NC43LDkxLjItNDQuN2M1Mi4zLDAsOTcuNCwyOS44LDk3LjQsODAuMiBjMCw2Ny42LTc3LjQsNjMuNS03Ny40LDEwNy44QzI3NS43LDMwNi42LDI3MC4zLDMxMiwyNjMuNywzMTJ6In0pLGNoaWxkcmVuOnI/W106W3t0YWc6ImFuaW1hdGUiLGF0dHJpYnV0ZXM6VmUoVmUoe30sbykse30se3ZhbHVlczoiMTswOzA7MDswOzE7In0pfV19KSxyfHxpLnB1c2goe3RhZzoicGF0aCIsYXR0cmlidXRlczpWZShWZSh7fSxhKSx7fSx7b3BhY2l0eToiMCIsZDoiTTIzMi41LDEzNC41bDcsMTY4YzAuMyw2LjQsNS42LDExLjUsMTIsMTEuNWg5YzYuNCwwLDExLjctNS4xLDEyLTExLjVsNy0xNjhjMC4zLTYuOC01LjItMTIuNS0xMi0xMi41aC0yMyBDMjM3LjcsMTIyLDIzMi4yLDEyNy43LDIzMi41LDEzNC41eiJ9KSxjaGlsZHJlbjpbe3RhZzoiYW5pbWF0ZSIsYXR0cmlidXRlczpWZShWZSh7fSxvKSx7fSx7dmFsdWVzOiIwOzA7MTsxOzA7MDsifSl9XX0pLHt0YWc6ImciLGF0dHJpYnV0ZXM6e2NsYXNzOiJtaXNzaW5nIn0sY2hpbGRyZW46aX19fX0sY1pyPXtob29rczpmdW5jdGlvbigpe3JldHVybntwYXJzZU5vZGVBdHRyaWJ1dGVzOmZ1bmN0aW9uKHIsaSl7dmFyIGE9aS5nZXRBdHRyaWJ1dGUoImRhdGEtZmEtc3ltYm9sIiksbj1hPT09bnVsbD8hMTphPT09IiI/ITA6YTtyZXR1cm4gci5zeW1ib2w9bixyfX19fSxkWnI9W2VZcixVWXIsV1lyLEdZcixZWXIsaVpyLGFacixuWnIsc1pyLGxacixjWnJdO2JZcihkWnIse21peG91dHNUbzpTbn0pO3Vacj1Tbi5ub0F1dG8scFpyPVNuLmNvbmZpZyxoWnI9U24ubGlicmFyeSxmWnI9U24uZG9tLG1acj1Tbi5wYXJzZSxnWnI9U24uZmluZEljb25EZWZpbml0aW9uLGJacj1Tbi50b0h0bWwsRmFlPVNuLmljb24sdlpyPVNuLmxheWVyLHhacj1Tbi50ZXh0LHlacj1Tbi5jb3VudGVyfSk7dmFyIHdacixPYWUsQWl0LERpdCxFaXQsJGl0LFJhZSxJaXQsUGl0LE5pdCxGaXQsT2l0LFJpdCxCaXQsSGl0LHFpdCxqaXQsVml0LFVpdCxXaXQsR2l0LFlpdCxaaXQsWGl0LFFpdCxKaXQsS2l0LGVhdCx0YXQsQmFlLHJhdCxpYXQsYWF0LG5hdCxvYXQsc2F0LGxhdCxjYXQsZGF0LHVhdCxwYXQsaGF0LGZhdCxtYXQsZ2F0LGJhdCx2YXQseGF0LHlhdCxIYWUsd2F0LE1hdCxrYXQsU2F0LHphdCxDYXQsVGF0LF9hdCxMYXQsQWF0LERhdCxFYXQsJGF0LElhdCxQYXQsTmF0LEZhdCxPYXQsUmF0LEJhdCxIYXQscWFlLHFhdCxqYXQsVmF0LFVhdCxXYXQsR2F0LFlhdCxaYXQsWGF0LFFhdCxKYXQsS2F0LGVudCx0bnQscm50LGludCxhbnQsbm50LG9udCxzbnQsbG50LGNudCxkbnQsdW50LHBudCxobnQsZm50LG1udCxnbnQsYm50LHZudCx4bnQseW50LHdudCxNbnQsa250LFNudCx6bnQsQ250LFRudCxfbnQsSUEsTG50LEFudCxqYWUsRG50LEVudCwkbnQsVmFlLEludCxQbnQsJEEsTm50LEZudCxVYWUsT250LFJudCxCbnQsSG50LHFudCxXYWUsam50LFZudCxVbnQsV250LEdudCxZbnQsWm50LFhudCxRbnQsSm50LEdhZSxLbnQsZW90LHRvdCxyb3QsaW90LGFvdCxub3Qsb290LHNvdCxZYWUsbG90LGNvdCxkb3QsdW90LHBvdCxob3QsZm90LG1vdCxaYWUsZ290LGJvdCx2b3QsWGFlLHhvdCx5b3Qsd290LE1vdCxrb3QsU290LHpvdCxDb3QsVG90LF9vdCxMb3QsQW90LERvdCxFb3QsJG90LElvdCxQb3QsTm90LEZvdCxPb3QsUm90LEJvdCxIb3QscW90LGpvdCxWb3QsVW90LFFhZSxXb3QsR290LFlvdCxab3QsWG90LFFvdCxKb3QsSmFlLEtvdCxlMnQsdDJ0LHIydCxpMnQsYTJ0LG4ydCxvMnQsczJ0LGwydCxjMnQsZDJ0LHUydCxwMnQsaDJ0LGYydCxtMnQsZzJ0LGIydCx2MnQseDJ0LHkydCx3MnQsTTJ0LGsydCxTMnQsejJ0LEMydCxUMnQsXzJ0LEwydCxBMnQsRDJ0LEUydCwkMnQsSTJ0LFAydCxOMnQsRjJ0LE8ydCxSMnQsQjJ0LFBBLEgydCxxMnQsajJ0LFYydCxVMnQsS2FlLFcydCxHMnQsWTJ0LE5BLFoydCxYMnQsUTJ0LEoydCxLMnQsZXN0LGVuZSx0c3QscnN0LGlzdCxhc3QsbnN0LG9zdCxzc3QsbHN0LGNzdCxkc3QsdXN0LHBzdCxoc3QsZnN0LG1zdCxnc3QseWcsYnN0LHZzdCx4c3QseXN0LHdzdCxNc3Qsa3N0LFNzdCx6c3QsQ3N0LFRzdCxfc3QsTHN0LEFzdCxEc3QsRXN0LCRzdCxJc3QsUHN0LE5zdCxGc3QsT3N0LFJzdCxCc3QsSHN0LHFzdCxqc3QsVnN0LFVzdCxXc3QsR3N0LFlzdCxac3QsWHN0LFFzdCxKc3QsS3N0LGVsdCx0bHQsdG5lLHJsdCxpbHQsYWx0LG5sdCxvbHQsc2x0LGxsdCxjbHQsZGx0LHVsdCxwbHQsaGx0LGZsdCxtbHQsZ2x0LHJuZSxibHQsdmx0LHhsdCx5bHQsd2x0LE1sdCxpbmUsa2x0LFNsdCx6bHQsQ2x0LFRsdCxfbHQsTGx0LEFsdCxEbHQsRWx0LCRsdCxJbHQsUGx0LE5sdCxGbHQsT2x0LFJsdCxCbHQsSGx0LHFsdCxqbHQsVmx0LFVsdCxXbHQsR2x0LFlsdCxabHQsWGx0LGFuZSxGQSxRbHQsSmx0LEtsdCxlY3QsdGN0LHJjdCxpY3QsYWN0LG5jdCxvY3Qsc2N0LGxjdCxubmUsY2N0LGRjdCx1Y3QscGN0LGhjdCxmY3QsbWN0LGdjdCxPQSxiY3QsdmN0LHhjdCx5Y3Qsd2N0LE1jdCxrY3QsU2N0LHpjdCxDY3QsVGN0LF9jdCxMY3Qsb25lLEFjdCxEY3QsRWN0LCRjdCxJY3QsUGN0LE5jdCxGY3QsT2N0LFJjdCxCY3QsSGN0LHFjdCxqY3QsVmN0LFVjdCxXY3Qsc25lLEdjdCxZY3QsWmN0LGxuZSxYY3QsUWN0LEpjdCxLY3QsUkEsZTB0LGNuZSx0MHQscjB0LGkwdCxhMHQsbjB0LG8wdCxkbmUsczB0LGwwdCxjMHQsZDB0LHUwdCxwMHQsaDB0LGYwdCxtMHQsZzB0LGIwdCx2MHQseDB0LHkwdCx3MHQsTTB0LGswdCxTMHQsejB0LEMwdCxUMHQsXzB0LEwwdCxBMHQsRDB0LHVuZSxFMHQsJDB0LEkwdCxQMHQsTjB0LEYwdCxPMHQsUjB0LHBuZSxCMHQsSDB0LHEwdCxqMHQsVjB0LFUwdCxXMHQsRzB0LFkwdCxaMHQsWDB0LFEwdCxKMHQsSzB0LGhuZSxlNHQsdDR0LHI0dCxpNHQsYTR0LG40dCxvNHQsczR0LGw0dCxjNHQsZDR0LHU0dCxwNHQsaDR0LGY0dCxmbmUsbTR0LGc0dCxiNHQsdjR0LHg0dCx5NHQsdzR0LE00dCxrNHQsUzR0LHo0dCxDNHQsVDR0LF80dCxCQSxMNHQsQTR0LEQ0dCxFNHQsJDR0LEk0dCxQNHQsTjR0LEY0dCxPNHQsbW5lLFI0dCxCNHQsSDR0LHE0dCxqNHQsVjR0LFU0dCxXNHQsRzR0LFk0dCxaNHQsWDR0LFE0dCxKNHQsSzR0LGUzdCx0M3QscjN0LGkzdCxhM3QsbjN0LG8zdCxzM3QsbDN0LGMzdCxkM3QsdTN0LHAzdCxoM3QsZjN0LG0zdCxnM3QsYjN0LHYzdCx4M3QseTN0LHczdCxNM3QsZ25lLGszdCxTM3QsejN0LEMzdCxUM3QsYm5lLF8zdCxMM3QsQTN0LEQzdCxFM3QsJDN0LE1acixJM3Q9cCgoKT0+e3dacj0iZmFiIixPYWU9e3ByZWZpeDoiZmFiIixpY29uTmFtZToic3F1YXJlLWdpdGh1YiIsaWNvbjpbNDQ4LDUxMixbImdpdGh1Yi1zcXVhcmUiXSwiZjA5MiIsIk00NDggOTZjMC0zNS4zLTI4LjctNjQtNjQtNjRMNjQgMzJDMjguNyAzMiAwIDYwLjcgMCA5NkwwIDQxNmMwIDM1LjMgMjguNyA2NCA2NCA2NGwzMjAgMGMzNS4zIDAgNjQtMjguNyA2NC02NGwwLTMyMHpNMjY1LjggNDA3LjdjMC0xLjggMC02IC4xLTExLjYgLjEtMTEuNCAuMS0yOC44IC4xLTQzLjcgMC0xNS42LTUuMi0yNS41LTExLjMtMzAuNyAzNy00LjEgNzYtOS4yIDc2LTczLjEgMC0xOC4yLTYuNS0yNy4zLTE3LjEtMzkgMS43LTQuMyA3LjQtMjItMS43LTQ1LTEzLjktNC4zLTQ1LjcgMTcuOS00NS43IDE3LjktMjYuNi03LjUtNTYuNi03LjUtODMuMiAwIDAgMC0zMS44LTIyLjItNDUuNy0xNy45LTkuMSAyMi45LTMuNSA0MC42LTEuNyA0NS0xMC42IDExLjctMTUuNiAyMC44LTE1LjYgMzkgMCA2My42IDM3LjMgNjkgNzQuMyA3My4xLTQuOCA0LjMtOS4xIDExLjctMTAuNiAyMi4zLTkuNSA0LjMtMzMuOCAxMS43LTQ4LjMtMTMuOS05LjEtMTUuOC0yNS41LTE3LjEtMjUuNS0xNy4xLTE2LjItLjItMS4xIDEwLjItMS4xIDEwLjIgMTAuOCA1IDE4LjQgMjQuMiAxOC40IDI0LjIgOS43IDI5LjcgNTYuMSAxOS43IDU2LjEgMTkuNyAwIDkgLjEgMjEuNyAuMSAzMC42IDAgNC44IC4xIDguNiAuMSAxMCAwIDQuMy0zIDkuNS0xMS41IDgtNjYtMjIuMS0xMTIuMi04NC45LTExMi4yLTE1OC4zIDAtOTEuOCA3MC4yLTE2MS41IDE2Mi0xNjEuNVMzODggMTY1LjYgMzg4IDI1Ny40Yy4xIDczLjQtNDQuNyAxMzYuMy0xMTAuNyAxNTguMy04LjQgMS41LTExLjUtMy43LTExLjUtOHptLTkwLjUtNTQuOGMtLjItMS41IDEuMS0yLjggMy0zLjIgMS45LS4yIDMuNyAuNiAzLjkgMS45IC4zIDEuMy0xIDIuNi0zIDMtMS45IC40LTMuNy0uNC0zLjktMS43em0tOS4xIDMuMmMtMi4yIC4yLTMuNy0uOS0zLjctMi40IDAtMS4zIDEuNS0yLjQgMy41LTIuNCAxLjktLjIgMy43IC45IDMuNyAyLjQgMCAxLjMtMS41IDIuNC0zLjUgMi40em0tMTQuMy0yLjJjLTEuOS0uNC0zLjItMS45LTIuOC0zLjJzMi40LTEuOSA0LjEtMS41YzIgLjYgMy4zIDIuMSAyLjggMy40LS40IDEuMy0yLjQgMS45LTQuMSAxLjN6bS0xMi41LTcuM2MtMS41LTEuMy0xLjktMy4yLS45LTQuMSAuOS0xLjEgMi44LS45IDQuMyAuNiAxLjMgMS4zIDEuOCAzLjMgLjkgNC4xLS45IDEuMS0yLjggLjktNC4zLS42em0tOC41LTEwYy0xLjEtMS41LTEuMS0zLjIgMC0zLjkgMS4xLS45IDIuOC0uMiAzLjcgMS4zIDEuMSAxLjUgMS4xIDMuMyAwIDQuMS0uOSAuNi0yLjYgMC0zLjctMS41em0tNi4zLTguOGMtMS4xLTEuMy0xLjMtMi44LS40LTMuNSAuOS0uOSAyLjQtLjQgMy41IC42IDEuMSAxLjMgMS4zIDIuOCAuNCAzLjUtLjkgLjktMi40IC40LTMuNS0uNnptLTYtNi40Yy0xLjMtLjYtMS45LTEuNy0xLjUtMi42IC40LS42IDEuNS0uOSAyLjgtLjQgMS4zIC43IDEuOSAxLjggMS41IDIuNi0uNCAuOS0xLjcgMS4xLTIuOCAuNHoiXX0sQWl0PU9hZSxEaXQ9e3ByZWZpeDoiZmFiIixpY29uTmFtZToidGhpbmstcGVha3MiLGljb246WzU3Niw1MTIsW10sImY3MzEiLCJNNDY1LjQgNDA5LjRsODcuMS0xNTAuMi0zMi0uMy01NS4xIDk1LTIwNi4yLTM1My45LTIzNi4yIDQwNy40IDMyIC4zIDIwNC4yLTM1Mi4xIDIwNi4yIDM1My44ek0xMTAuMSAzNjUuM2wzMi4xIDAgMTE3LjQtMjAyLjUgMjAzLjQgMzQ5LjEgMzIuNSAuMS0yMzUuOC00MDQuNi0xNDkuNiAyNTcuOXoiXX0sRWl0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6Imdvb2dsZS1kcml2ZSIsaWNvbjpbNTEyLDUxMixbXSwiZjNhYSIsIk0zMzkgMzE0LjlMMTc1LjQgMzIgMzM2LjYgMzIgNTAwLjIgMzE0LjkgMzM5IDMxNC45ek0yMDEuNSAzMzguNWwtODAuNiAxNDEuNSAzMTAuNSAwIDgwLjYtMTQxLjUtMzEwLjUgMHpNMTU0LjEgNjcuNEwwIDMzOC41IDgwLjYgNDgwIDIzNyAyMDguOCAxNTQuMSA2Ny40eiJdfSwkaXQ9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiYXV0b3ByZWZpeGVyIixpY29uOls2NDAsNTEyLFtdLCJmNDFjIiwiTTMxOC40IDE2bC0xNjEgNDgwIDc3LjUgMCAyNS40LTgxLjQgMTE5LjUgMCAyNS4yIDgxLjQgNzcuNSAwLTE2NC4xLTQ4MHpNMjc4LjEgMzU3LjlsNDEuMi0xMzAuNCAxLjUgMCA0MC45IDEzMC40LTgzLjYgMHpNNjQwIDQwNUw2MzAgMzczLjYgNDYyLjEgMzU4IDQ4MS41IDQxNC41IDY0MCA0MDV6TTE3Ny45IDM1OEwxMCAzNzMuNyAwIDQwNSAxNTguNSA0MTQuNCAxNzcuOSAzNTh6Il19LFJhZT17cHJlZml4OiJmYWIiLGljb25OYW1lOiJzcXVhcmUtdmlhZGVvIixpY29uOls0NDgsNTEyLFsidmlhZGVvLXNxdWFyZSJdLCJmMmFhIiwiTTQ0OCA5NmMwLTM1LjMtMjguNy02NC02NC02NEw2NCAzMkMyOC43IDMyIDAgNjAuNyAwIDk2TDAgNDE2YzAgMzUuMyAyOC43IDY0IDY0IDY0bDMyMCAwYzM1LjMgMCA2NC0yOC43IDY0LTY0bDAtMzIwek0xMTguMyAzODEuMmMtNjgtNzMuNi0xOS44LTE5Ni4xIDgxLjItMTk2LjEgMTMuMyAwIDI2LjYgMi4xIDM5LjEgNi43LTQuMyA4LjQtNy4zIDE3LjYtOC40IDI3LjEtOS43LTQuMS0yMC4yLTYtMzAuNy02LTQ4LjggMC04NC42IDQxLjctODQuNiA4OC45IDAgNDMgMjguNSA3OC43IDY5LjUgODUuOSA2MS41LTI0IDcyLjktMTE3LjYgNzIuOS0xNzUgMC03LjMgMC0xNC44LS42LTIyLjEtMTEuMi0zMi45LTI2LjYtNjQuNi00NC4yLTk0LjUgMjcuMSAxOC4zIDQxLjkgNjIuNSA0NC4yIDk0LjFsMCAuNGM3LjcgMjIuNSAxMS44IDQ2LjIgMTEuOCA3MCAwIDU0LjEtMjEuOSA5OS02OC4zIDEyOC4ybC0yLjQgLjJjNTAgMSA4Ni4yLTM4LjYgODYuMi04Ny4yIDAtMTIuMi0yLjEtMjQuMy02LjktMzUuNyA5LjUtMS45IDE4LjUtNS42IDI2LjQtMTAuNSAxNS4zIDM2LjYgMTIuNiA4Ny4zLTIyLjggMTI1LjYtNDIuNCA0Ni4yLTEyMCA0Ni42LTE2Mi40IDB6TTI3NC42IDIxNy42YzIxLjktMTIgNDkuNi0zMC43IDYyLjMtNTMgMS41LTMgNC4xLTguNiA0LjUtMTItMTIuNSAyNy45LTQ0LjIgNDkuOC03My45IDU2LjctNC43LTcuMy03LjUtMTUuNS03LjUtMjQuMyAwLTEwLjMgNS4yLTI0LjEgMTIuOS0zMS42IDguMy03LjkgMTgtMTAuOSAyNy45LTE0LjEgMTYtNS4xIDMyLjUtMTAuMyA0NC41LTM1LjkgMzIuNSA0Ni4yIDEzLjEgMTMwLjMtMzYuMyAxMzAuMy0xMy4zIDAtMjUuMS03LjEtMzQuNC0xNi4xeiJdfSxJaXQ9UmFlLFBpdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJjcGFuZWwiLGljb246WzY0MCw1MTIsW10sImYzODgiLCJNMjEwLjMgMjIwLjJjLTUuNi0yNC44LTI2LjktNDEuMi01MS00MS4ybC0zNyAwYy03LjEgMC0xMi41IDQuNS0xNC4zIDEwLjlMNzMuMSAzMjAgOTcuOCAzMTkuOWM2LjggMCAxMi4zLTQuNSAxNC4yLTEwLjdsMjUuOC05NS43IDE5LjggMGM4LjQgMCAxNi4yIDUuNiAxOC4zIDE0LjggMi41IDEwLjktNS45IDIyLjYtMTguMyAyMi42bC0xMC4zIDBjLTcgMC0xMi41IDQuNi0xNC4zIDEwLjhsLTYuNCAyMy44IDMyIDBjMzcuMiAwIDU4LjMtMzYuMiA1MS43LTY1LjN6bS0xNTYuNSAyOGwxOC42IDBjNi45IDAgMTIuNC00LjQgMTQuMy0xMC45bDYuMi0yMy42LTQwIDBDMzAgMjEzLjcgOSAyMjcuOCAxLjcgMjU0LjgtNyAyODguNiAxOC41IDMyMCA1MiAzMjBsMTIuNCAwIDcuMS0yNi4xYzEuMi00LjQtMi4yLTguMy02LjQtOC4zbC0xMS4zIDBjLTI0LjcgMC0yNC45LTM3LjQgMC0zNy40em0yNDcuNS0zNC44bC03Ny45IDAtMy41IDEzLjRjLTIuNCA5LjYgNC41IDE4LjUgMTQuMiAxOC41bDU3LjUgMGM0IDAgMi40IDQuMyAyLjEgNS4zbC04LjYgMzEuOGMtLjQgMS40LS45IDUuMy01LjUgNS4zbC0zNC45IDBjLTUuMyAwLTUuMy03LjkgMC03LjlsMjEuNiAwYzYuOCAwIDEyLjMtNC42IDE0LjItMTAuOGwzLjUtMTMuMi00OC40IDBjLTM5LjIgMC00My42IDYzLjgtLjcgNjMuOGw1Ny41IC4yYzExLjIgMCAyMC42LTcuMiAyMy40LTE3LjhsMTQtNTEuOGM0LjgtMTkuMi05LjctMzYuOC0yOC41LTM2Ljh6TTYzMy4xIDE3OWwtMTguOSAwYy00LjkgMC05LjIgMy4yLTEwLjQgNy45TDU2OC4yIDMyMGMyMC43IDAgMzkuOC0xMy44IDQ0LjktMzQuNWwyNi41LTk4LjJjMS4yLTQuMy0yLTguMy02LjUtOC4zek0zOTYuOCAyMTMuN2wwIC4xLTQ4LjMgMC0yNi4yIDk4Yy0xLjIgNC40IDIuMiA4LjMgNi40IDguM2wxOC45IDBjNC44IDAgOS4yLTMgMTAuNC03LjhsMTcuMi02NCAxOS44IDBjMTIuNSAwIDIxLjQgMTEuOCAxOC4xIDIzLjRsLTEwLjYgNDBjLTEuMiA0LjMgMS45IDguMyA2LjQgOC4zbDE5LjEgMGM0LjYgMCA5LjEtMi45IDEwLjMtNy44bDguOC0zMy4xYzktMzMuMS0xNS45LTY1LjQtNTAuMy02NS40em05OC4zIDc0LjZjLTMuNiAwLTYtMy40LTUuMS02LjdsOC0zMGMuOS0zLjkgMy43LTYgNy44LTZsMzIuOSAwYzIuNiAwIDQuNiAyLjQgMy45IDUuMWwtLjcgMi42Yy0uNiAyLTEuOSAzLTMuOSAzbC0yMS42IDBjLTcgMC0xMi42IDQuNi0xNC4yIDEwLjhsLTMuNSAxMyA1My40IDBjMTAuNSAwIDIwLjMtNi42IDIzLjItMTcuNmwzLjItMTJjNC45LTE5LjEtOS4zLTM2LjgtMjguMy0zNi44bC00Ny4zIDBjLTE3LjkgMC0zMy44IDEyLTM4LjYgMjkuNmwtMTAuOCA0MGMtNSAxNy43IDguMyAzNi43IDI4LjMgMzYuN2w2Ni43IDBjNi44IDAgMTIuMy00LjUgMTQuMi0xMC43bDUuNy0yMS03My4zIDB6Il19LE5pdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJtZW5kZWxleSIsaWNvbjpbNjQwLDUxMixbXSwiZjdiMyIsIk02MjQuNiAzMjUuMmMtMTIuMy0xMi40LTI5LjctMTkuMi00OC40LTE3LjItNDMuMy0xLTQ5LjctMzQuOS0zNy41LTk4LjggMjIuOC01Ny41LTE0LjktMTMxLjUtODcuNC0xMzAuOC03Ny40IC43LTgxLjcgODItMTMwLjkgODItNDguMSAwLTU0LTgxLjMtMTMwLjktODItNzIuOS0uOC0xMTAuMSA3My4zLTg3LjQgMTMwLjggMTIuMiA2My45IDUuOCA5Ny44LTM3LjUgOTguOC0yMS4yLTIuMy0zNyA2LjUtNTMgMjIuNS0xOS45IDE5LjctMTkuMyA5NC44IDQyLjYgMTAyLjYgNDcuMSA1LjkgODEuNi00Mi45IDYxLjItODcuOC00Ny4zLTEwMy43IDE4NS45LTEwNi4xIDE0Ni41LTguMi0uMSAuMS0uMiAuMi0uMyAuNC0yNi44IDQyLjggNi44IDk3LjQgNTguOCA5NS4yIDUyLjEgMi4xIDg1LjQtNTIuNiA1OC44LTk1LjItLjEtLjItLjItLjMtLjMtLjQtMzkuNC05Ny45IDE5My44LTk1LjUgMTQ2LjUgOC4yLTQuNiAxMC02LjcgMjEuMy01LjcgMzMgNC45IDUzLjQgNjguNyA3NC4xIDEwNC45IDM1LjIgMTcuOC0xNC44IDIzLjEtNjUuNiAwLTg4LjN6TTMyMC43IDMwNi4xbC0uNiAwYy00My40IDAtNjIuOC0zNy41LTYyLjgtNjIuOCAwLTM0LjcgMjguMi02Mi44IDYyLjgtNjIuOGwuNiAwYzM0LjcgMCA2Mi44IDI4LjEgNjIuOCA2Mi44IDAgMjUtMTkuMiA2Mi44LTYyLjggNjIuOHoiXX0sRml0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImRyYWZ0MmRpZ2l0YWwiLGljb246WzUxMiw1MTIsW10sImYzOTYiLCJNNDk2IDM5OC4xbC0xNDQtODIuMiAwIDY0LjctOTEuMyAwYzMwLjgtMzUgODEuOC05NS45IDExMS44LTE0OS4zIDM1LjItNjIuNiAxNi4xLTEyMy40LTEyLjgtMTUzLjMtNC40LTQuNi02Mi4yLTYyLjktMTY2LTQxLjItNTkuMSAxMi40LTg5LjQgNDMuNC0xMDQuMyA2Ny4zLTEzLjEgMjAuOS0xNyAzOS44LTE4LjIgNDcuNy01LjUgMzMgMTkuNCA2Ny4xIDU2LjcgNjcuMSAzMS43IDAgNTcuMy0yNS43IDU3LjMtNTcuNCAwLTI3LjEtMTkuNy01Mi4xLTQ4LTU2LjggMS44LTcuMyAxNy43LTIxLjEgMjYuMy0yNC43IDQxLjEtMTcuMyA3OCA1LjIgODMuMyAzMy41IDguMyA0NC4zLTM3LjEgOTAuNC02OS43IDEyNy42LTc2LjYgODctMTQyLjggMTU1LjctMTYxLjEgMTc0LjhsMzM2LS4xIDAgNjQuMiAxNDQtODEuOXpNMzg1LjkgMzcxbDQ3LjEgMjcuMi00Ny4xIDI3LjIgMC01NC40ek0xMDUuNCAxNjEuNGEyMi40IDIyLjQgMCAxIDEgNDQuOCAwIDIyLjQgMjIuNCAwIDEgMSAtNDQuOCAwek05OC41IDM4MC41YzI1LjYtMjcuNCA5Ny43LTEwNC43IDE1MC44LTE2OS45IDM1LjEtNDMuMSA0MC4zLTgyLjQgMjguNC0xMTIuNy03LjQtMTguOC0xNy41LTMwLjItMjQuMy0zNS43IDQ1LjMgMi4xIDY4IDIzLjQgODIuMiAzOC4zIDAgMCA0Mi40IDQ4LjIgNS44IDExMy4zLTM3IDY1LjktMTEwLjkgMTQ3LjUtMTI4LjUgMTY2LjdsLTExNC40IDB6Il19LE9pdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJyZXBseWQiLGljb246WzQ0OCw1MTIsW10sImYzZTYiLCJNMzIwIDQ4MGwtMTkyIDBDNTcuNiA0ODAgMCA0MjIuNCAwIDM1MkwwIDE2MEMwIDg5LjYgNTcuNiAzMiAxMjggMzJsMTkyIDBjNzAuNCAwIDEyOCA1Ny42IDEyOCAxMjhsMCAxOTJjMCA3MC40LTU3LjYgMTI4LTEyOCAxMjh6TTE5My40IDI3My4yYy02LjEtMi0xMS42LTMuMS0xNi40LTMuMS03LjIgMC0xMy41IDEuOS0xOC45IDUuNnMtOS42IDktMTIuOCAxNS44bC0xLjEgMC00LjItMTguMy0yOCAwIDAgMTM4LjkgMzYuMSAwIDAtODkuN2MxLjUtNS40IDQuNC05LjggOC43LTEzLjJzOS44LTUuMSAxNi4yLTUuMWM0LjYgMCA5LjggMSAxNS42IDMuMWw0LjgtMzR6TTMwOC42IDM3Ni42Yy0zLjIgMi40LTcuNyA0LjgtMTMuNyA3LjFzLTEyLjggMy41LTIwLjQgMy41Yy0xMi4yIDAtMjEuMS0zLTI2LjUtOC45LTUuNS01LjktOC41LTE0LjctOS0yNi40bDgzLjMgMGMuOS00LjggMS42LTkuNCAyLjEtMTMuOSAuNS00LjQgLjctOC42IC43LTEyLjUgMC0xMC43LTEuNi0xOS43LTQuNy0yNi45LTMuMi03LjItNy4zLTEzLTEyLjUtMTcuMi01LjItNC4zLTExLjEtNy4zLTE3LjgtOS4yLTYuNy0xLjgtMTMuNS0yLjgtMjAuNi0yLjgtMjEuMSAwLTM3LjUgNi4xLTQ5LjIgMTguM3MtMTcuNSAzMC41LTE3LjUgNTVjMCAyMi44IDUuMiA0MC43IDE1LjYgNTMuNyAxMC40IDEzLjEgMjYuOCAxOS42IDQ5LjIgMTkuNiAxMC43IDAgMjAuOS0xLjUgMzAuNC00LjZzMTcuMS02LjggMjIuNi0xMS4ybC0xMi0yMy42em0tMjEuOC03MC4zYzMuOCA1LjQgNS4zIDEzLjEgNC42IDIzLjFsLTUxLjcgMGMuOS05LjQgMy43LTE3IDguMi0yMi42czExLjUtOC41IDIxLTguNWM4LjItLjEgMTQuMSAyLjYgMTcuOSA4em03OS45IDIuNWM0LjEgMy45IDkuNCA1LjggMTYuMSA1LjggNyAwIDEyLjYtMS45IDE2LjctNS44czYuMS05LjEgNi4xLTE1LjYtMi0xMS42LTYuMS0xNS40LTkuNi01LjctMTYuNy01LjdjLTYuNyAwLTEyIDEuOS0xNi4xIDUuN3MtNi4xIDguOS02LjEgMTUuNCAyIDExLjcgNi4xIDE1LjZ6bTAgMTAwLjVjNC4xIDMuOSA5LjQgNS44IDE2LjEgNS44IDcgMCAxMi42LTEuOSAxNi43LTUuOHM2LjEtOS4xIDYuMS0xNS42LTItMTEuNi02LjEtMTUuNC05LjYtNS43LTE2LjctNS43Yy02LjcgMC0xMiAxLjktMTYuMSA1LjdzLTYuMSA4LjktNi4xIDE1LjRjMCA2LjYgMiAxMS43IDYuMSAxNS42eiJdfSxSaXQ9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiZW1waXJlIixpY29uOls1MTIsNTEyLFtdLCJmMWQxIiwiTTI5NS42IDU0LjJjLTEwLjgtMi4yLTIyLjEtMy4zLTMzLjUtMy42bDAtMTguMmM3OC4xIDIuMiAxNDYuMSA0NCAxODQuNiAxMDYuNmwtMTUuOCA5LjFjLTYuMS05LjctMTIuNy0xOC44LTIwLjItMjcuMWwtMTggMTUuNWMtMjYtMjkuNi02MS40LTUwLjctMTAxLjktNTguNGw0LjgtMjMuOXpNNjEuNCAzMjIuNGwyMy03LjdjLTYuNC0xOC4zLTEwLTM4LjItMTAtNTguN3MzLjMtNDAuNCA5LjctNTguN2wtMjIuNy03LjdjMy42LTEwLjggOC4zLTIxLjMgMTMuNi0zMWwtMTUuOC05LjFDNDIgMTgxIDMyLjEgMjE3LjUgMzIuMSAyNTZzMTAgNzUgMjcuMSAxMDYuNkw3NSAzNTMuNWMtNS4zLTEwLTkuNy0yMC4zLTEzLjYtMzEuMXpNMjIxLjEgNDM0Yy00MC40LTgtNzUuOC0yOS4xLTEwMS45LTU4LjdsLTE4IDE1LjhjLTcuNS04LjYtMTQuNC0xNy43LTIwLjItMjcuNGwtMTYgOS40YzM4LjUgNjIuMyAxMDYuOCAxMDQuMyAxODQuOSAxMDYuNmwwLTE4LjNjLTExLjMtLjMtMjIuNy0xLjctMzMuNS0zLjZsNC43LTIzLjh6TTEwMS4zIDEyMC45bDE4IDE1LjVjMjYtMjkuNiA2MS40LTUwLjcgMTAxLjktNTguNGwtNC43LTIzLjhjMTAuOC0yLjIgMjIuMS0zLjMgMzMuNS0zLjZsMC0xOC4yQzE3MS45IDM0LjYgMTAzLjkgNzYuNCA2NS40IDEzOWwxNS44IDkuMWM2LTkuNyAxMi42LTE4LjkgMjAuMS0yNy4yek00MTAuNyAzOTEuMWwtMTgtMTUuOGMtMjYgMjkuNi02MS40IDUwLjctMTAxLjkgNTguN2w0LjcgMjMuOGMtMTAuOCAxLjktMjIuMSAzLjMtMzMuNSAzLjZsMCAxOC4zYzc4LjEtMi4yIDE0Ni40LTQ0LjMgMTg0LjktMTA2LjZsLTE2LjEtOS40Yy01LjcgOS43LTEyLjYgMTguOC0yMC4xIDI3LjR6TTggMjU2YTI0OCAyNDggMCAxIDEgNDk2IDAgMjQ4IDI0OCAwIDEgMSAtNDk2IDB6bTQ4My44IDBhMjM1LjggMjM1LjggMCAxIDAgLTQ3MS42IDAgMjM1LjggMjM1LjggMCAxIDAgNDcxLjYgMHptLTM5LTEwNi42TDQzNyAxNTguNWM1LjMgOS43IDEwIDIwLjIgMTMuNiAzMWwtMjIuNyA3LjdjNi40IDE4LjMgOS43IDM4LjIgOS43IDU4LjdzLTMuNiA0MC40LTEwIDU4LjdsMjMgNy43Yy0zLjkgMTAuOC04LjMgMjEtMTMuNiAzMWwxNS44IDkuMUM0NzAgMzMxIDQ3OS45IDI5NC41IDQ3OS45IDI1NnMtOS45LTc1LTI3LjEtMTA2LjZ6bS0xODMgMTc3LjdjMTYuMy0zLjMgMzAuNC0xMS42IDQwLjctMjMuNWw1MS4yIDQ0LjhjMTEuOS0xMy42IDIxLjMtMjkuMyAyNy4xLTQ2LjhsLTY0LjItMjIuMWMyLjUtNy41IDMuOS0xNS4yIDMuOS0yMy41cy0xLjQtMTYuMS0zLjktMjMuNWw2NC41LTIyLjFjLTYuMS0xNy40LTE1LjUtMzMuMi0yNy40LTQ2LjhsLTUxLjIgNDQuOGMtMTAuMi0xMS45LTI0LjQtMjAuNS00MC43LTIzLjhsMTMuMy02Ni40Yy04LjYtMS45LTE3LjctMi44LTI3LjEtMi44cy0xOC41IC44LTI3LjEgMi44bDEzLjMgNjYuNGMtMTYuMyAzLjMtMzAuNCAxMS45LTQwLjcgMjMuOGwtNTEuMi00NC44Yy0xMS45IDEzLjYtMjEuMyAyOS4zLTI3LjQgNDYuOGw2NC41IDIyLjFjLTIuNSA3LjUtMy45IDE1LjItMy45IDIzLjVzMS40IDE2LjEgMy45IDIzLjVsLTY0LjIgMjIuMWM1LjggMTcuNCAxNS4yIDMzLjIgMjcuMSA0Ni44bDUxLjItNDQuOGMxMC4yIDExLjkgMjQuNCAyMC4yIDQwLjcgMjMuNWwtMTMuMyA2Ni43YzguNiAxLjcgMTcuNyAyLjggMjcuMSAyLjhzMTguNS0xLjEgMjcuMS0yLjhsLTEzLjMtNjYuN3oiXX0sQml0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImFjY2Vzc2libGUtaWNvbiIsaWNvbjpbNDQ4LDUxMixbNjIxMDddLCJmMzY4IiwiTTQyMy45IDI1NS44TDQxMSA0MTMuMWMtMy4zIDQwLjctNjMuOSAzNS4xLTYwLjYtNC45bDEwLTEyMi41LTQxLjEgMi4zYzEwLjEgMjAuNyAxNS44IDQzLjkgMTUuOCA2OC41IDAgNDEuMi0xNi4xIDc4LjctNDIuMyAxMDYuNWwtMzkuMy0zOS4zYzU3LjktNjMuNyAxMy4xLTE2Ny4yLTc0LTE2Ny4yLTI1LjkgMC00OS41IDkuOS02Ny4yIDI2TDczIDI0My4yYzIyLTIwLjcgNTAuMS0zNS4xIDgxLjQtNDAuMmw3NS4zLTg1LjctNDIuNi0yNC44LTUxLjYgNDZDMTA1LjUgMTY1LjMgNjQuOSAxMjAgOTUgOTMuMWw2OC02MC43YzkuOC04LjggMjQuMS0xMC4yIDM1LjUtMy42IDAgMCAxMzkuMyA4MC45IDEzOS41IDgxLjEgMTYuMiAxMC4xIDIwLjcgMzYgNi4xIDUyLjZsLTU4LjQgNjYuNSAxMDYuMS01LjljMTguNS0xLjEgMzMuNiAxNC40IDMyLjEgMzIuN3pNMzU5IDEwMS44QTUwLjkgNTAuOSAwIDEgMCAzNTkgMCA1MC45IDUwLjkgMCAxIDAgMzU5IDEwMS44ek0xNzkuNiA0NTYuNWMtODAuNiAwLTEyNy40LTkwLjYtODIuNy0xNTYuMUw1Ny4yIDI2MC43QzM2LjQgMjg3IDI0IDMyMC4zIDI0IDM1Ni40IDI0IDQ4Ny4xIDE3NC43IDU1Ny44IDI3NS40IDQ3OC45bC0zOS43LTM5LjdjLTE2IDEwLjktMzUuMyAxNy4zLTU2LjEgMTcuM3oiXX0sSGl0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6InF1b3JhIixpY29uOls0NDgsNTEyLFtdLCJmMmM0IiwiTTQ0MC43IDM4Ni43bC0yOS4zIDBjLTEuNSAxMy41LTEwLjUgMzAuOC0zMyAzMC44LTIwLjUgMC0zNS4zLTE0LjItNDkuNS0zNS44IDQ0LjItMzQuMiA3NC43LTg3LjUgNzQuNy0xNTMgLjEtMTE3LjUtOTYuNi0xOTYuNy0xOTguNC0xOTYuNy05OS43IDAtMTk3LjcgNzkuNy0xOTcuNyAxOTYuNyAwIDEzNC4xIDEzMS4zIDIyMS42IDI0OSAxODkgMTkuNyAzMy42IDQ1LjcgNjIuMyA5NS4yIDYyLjMgODEuOCAwIDkwLjgtNzUuMyA4OS05My4zek0yOTcuMiAzMjkuMmMtMTkuNS0yOS4yLTQzLjctNTIuMi05MS41LTUyLjItMzAuNSAwLTU0LjMgMTAtNjkgMjIuOGwxMi4yIDI0LjNjNi4yLTMgMTMtNCAxOS44LTQgMzUuNSAwIDUzLjcgMzAuOCA2OS4yIDYxLjMtMTAgMy0yMC43IDQuMi0zMi43IDQuMi03NSAwLTEwNy41LTUzLTEwNy41LTE1Ni43IDAtMTA0LjQgMzIuNS0xNTcuOSAxMDcuNS0xNTcuOSA3Ni4yIDAgMTA4LjcgNTMuNSAxMDguNyAxNTcuNyAuMSA0MS44LTUuNCA3NS42LTE2LjcgMTAwLjV6Il19LHFpdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJjYy1qY2IiLGljb246WzU3Niw1MTIsW10sImYyNGIiLCJNNDMxLjUgMjQ0LjNsMC0zMi4zYzQxLjIgMCAzOC41IC4yIDM4LjUgLjIgNy4zIDEuMyAxMy4zIDcuMyAxMy4zIDE2IDAgOC44LTYgMTQuNS0xMy4zIDE1LjgtMS4yIC40LTMuMyAuMy0zOC41IC4zem00Mi44IDIwLjJjLTIuOC0uNy0zLjMtLjUtNDIuOC0uNWwwIDM1YzM5LjYgMCA0MCAuMiA0Mi44LS41IDcuNS0xLjUgMTMuNS04IDEzLjUtMTcgMC04LjctNi0xNS41LTEzLjUtMTd6TTU3NiA4MGwwIDM1MmMwIDI2LjUtMjEuNSA0OC00OCA0OEw0OCA0ODBjLTI2LjUgMC00OC0yMS41LTQ4LTQ4TDAgODBDMCA1My41IDIxLjUgMzIgNDggMzJsNDgwIDBjMjYuNSAwIDQ4IDIxLjUgNDggNDh6TTE4MiAxOTIuM2wtNTcgMGMwIDY3LjEgMTAuNyAxMDkuNy0zNS44IDEwOS43LTE5LjUgMC0zOC44LTUuNy01Ny4yLTE0LjhsMCAyOGMzMCA4LjMgNjggOC4zIDY4IDguMyA5Ny45IDAgODItNDcuNyA4Mi0xMzEuMnptMTc4LjUgNC41Yy02My40LTE2LTE2NS0xNC45LTE2NSA1OS4zIDAgNzcuMSAxMDguMiA3My42IDE2NSA1OS4ybDAtMjguM0MzMTIuOSAzMTEuNyAyNTMgMzA5IDI1MyAyNTZzNTkuOC01NS42IDEwNy41LTMxLjJsMC0yOHpNNTQ0IDI4Ni41YzAtMTguNS0xNi41LTMwLjUtMzgtMzJsMC0uOGMxOS41LTIuNyAzMC4zLTE1LjUgMzAuMy0zMC4yIDAtMTktMTUuNy0zMC0zNy0zMSAwIDAgNi4zLS4zLTEyMC4zLS4zbDAgMTI3LjUgMTIyLjcgMGMyNC4zIC4xIDQyLjMtMTIuOSA0Mi4zLTMzLjJ6Il19LGppdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJmZWRvcmEiLGljb246WzQ0OCw1MTIsW10sImY3OTgiLCJNMCAyNTUuOEMuMSAxMzIuMiAxMDAuMyAzMiAyMjQgMzJTNDQ4IDEzMi4zIDQ0OCAyNTYgMzQ3LjggNDc5LjkgMjI0LjEgNDgwTDUwLjkgNDgwQzIyLjggNDgwIC4xIDQ1Ny4zIDAgNDI5LjJsMCAwIDAtMTczLjQgMCAwem0zNDIuNi02My4xYzAtMzkuNy0zNS42LTY4LjUtNzMuMi02OC41LTM0LjkgMC02NS44IDI2LjMtNzAuMSA1OS45LS4yIDMuOC0uNCA1LS40IDguNS0uMSAyMS4xIDAgNDIuOC0uOCA2NC40IC45IDI2LjEgMSA1Mi4xIDAgNzYuNiAwIDI3LjEtMTkuNCA0NS41LTQ0LjcgNDUuNXMtNDUuOC0yMC4yLTQ1LjgtNDUuNWMuNS0yNy43IDIyLjYtNDUuMyA0OC41LTQ2LjFsLjIgMCAyNi4zLS4yIDAtMzcuMy0yNi4zIC4yYy00Ny4xLS40LTg0LjYgMzYuNS04NS45IDgzLjQgMCA0NS42IDM3LjUgODIuOSA4MyA4Mi45IDQzIDAgNzguNy0zMy42IDgyLjYtNzUuNmwuMi01My41IDMyLjYtLjNjMjUuMyAuMiAyNS0zNy44LS4yLTM3LjNsLTMyLjQgLjNjMC02LjQgLjEtMTIuOCAuMS0xOS4yIC4xLTEyLjcgLjEtMjUuNC0uMS0zOC4yIC4xLTE2LjUgMTUuOC0zMS4yIDMzLjItMzEuMiAxNy41IDAgMzUuOSA4LjcgMzUuOSAzMS4yIDAgMy4yLS4xIDUuMS0uMyA2LjMtMS45IDEwLjUgNS4yIDIwLjQgMTUuNyAyMS45IDEwLjYgMS41IDIwLjItNi4xIDIxLjItMTYuNiAuNi00LjIgLjctNy45IC43LTExLjZ6Il19LFZpdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJkdW9saW5nbyIsaWNvbjpbNTc2LDUxMixbXSwiZTgxMiIsIk01MDQuMyAyMzAuNWMxMC40IDg4LjUtNDMuNCAxNzIuMS0xMjguMiAxOTlzLTE3Ni42LTEwLjMtMjE4LjktODguN2MtNzIgMy0xMzcuNC0zOS44LTE2My4yLTEwNS41LTIuNi02LjYtMS45LTE0IDEuOS0xOS45czEwLjItOS43IDE3LjItMTAuMWw5Ni4xLTYtMjMuOC03NS45Yy02LjMtMjAtMi4yLTQxLjkgMTEtNTguM3MzMy43LTI1IDU0LjUtMjNjNTIuMiA1IDg2LjggNC44IDEwNC0uNlMzMDAgMTYuNyAzMzktMTYuOWMxNS45LTEzLjcgMzcuNy0xOC41IDU3LjgtMTIuN3MzNi4xIDIxLjMgNDIuNCA0MS40TDQ2Mi44IDg3IDU0My42IDM3LjNjNi0zLjcgMTMuNC00LjMgMTkuOS0xLjZzMTEuMyA4LjMgMTIuOSAxNS4yYzE2LjIgNjguMi0xMi40IDE0MC4zLTcyLjEgMTc5LjV6TTI1OC41IDQ3NS45bDAgMGMxNS4xIDcuNSAyMS41IDI1LjggMTQuMiA0MXMtMjUuNCAyMS45LTQwLjcgMTQuOWwtNDMuOS0yMWMtMTUuMS03LjUtMjEuNS0yNS44LTE0LjItNDFzMjUuNC0yMS45IDQwLjctMTQuOWw0My44IDIxek01NjQuNiAzNDUuN2MxNC44IDguNCAyMCAyNy4zIDExLjYgNDIuMmwtMjMuOSA0Mi40Yy04LjcgMTQuMy0yNy4xIDE5LjItNDEuNiAxMC45cy0xOS45LTI2LjYtMTItNDEuNGwyMy45LTQyLjRjNC03LjEgMTAuNy0xMi40IDE4LjYtMTQuNnMxNi4zLTEuMiAyMy40IDIuOXoiXX0sVWl0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImZpcnN0ZHJhZnQiLGljb246WzM4NCw1MTIsW10sImYzYTEiLCJNMzg0IDE5MmwtNjQgMCAwIDEyOC0xMjggMCAwIDEyOC0xOTIgMCAwLTI1LjYgMTY2LjQgMCAwLTEyOCAxMjggMCAwLTEyOCA4OS42IDAgMCAyNS42em0tMjUuNiAzOC40bDAgMTI4LTEyOCAwIDAgMTI4LTE2Ni40IDAgMCAyNS42IDE5MiAwIDAtMTI4IDEyOCAwIDAtMTUzLjYtMjUuNiAwem0yNS42IDE5MmwtODkuNiAwIDAgODkuNiAyNS42IDAgMC02NCA2NCAwIDAtMjUuNnpNMCAwbDAgMzg0IDEyOCAwIDAtMTI4IDEyOCAwIDAtMTI4IDEyOCAwIDAtMTI4LTM4NCAweiJdfSxXaXQ9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiZnJlZWJzZCIsaWNvbjpbNDQ4LDUxMixbXSwiZjNhNCIsIk0zMDMuNyA5Ni4yYzExLjEtMTEuMSAxMTUuNS03NyAxMzkuMi01My4yIDIzLjcgMjMuNy00Mi4xIDEyOC4xLTUzLjIgMTM5LjJzLTM5LjQgLjktNjMuMS0yMi45Yy0yMy44LTIzLjctMzQuMS01Mi0yMi45LTYzLjF6TTEwOS45IDY4LjFDNzMuNiA0Ny41IDIyIDI0LjYgNS42IDQxLjEtMTEgNTcuNyAxMi43IDExMC41IDMzLjUgMTQ2LjggNTIgMTE0LjYgNzguMyA4Ny41IDEwOS45IDY4LjF6TTQwNi43IDE3NGMzLjMgMTEuMyAyLjcgMjAuNy0yLjcgMjYuMS0yMC4zIDIwLjMtODcuNS0yNy0xMDkuMy03MC4xLTE4LTMyLjMtMTEuMS01My40IDE0LjktNDguNyA1LjctMy42IDEyLjMtNy42IDE5LjYtMTEuNi0yOS44LTE1LjUtNjMuNi0yNC4zLTk5LjUtMjQuMy0xMTkuMSAwLTIxNS42IDk2LjUtMjE1LjYgMjE1LjYgMCAxMTkgOTYuNSAyMTUuNiAyMTUuNiAyMTUuNlM0NDUuMyAzODAuMSA0NDUuMyAyNjFjMC0zOC40LTEwLjEtNzQuNS0yNy43LTEwNS44LTMuOSA3LTcuNiAxMy4zLTEwLjkgMTguOHoiXX0sR2l0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6Im9keXNlZSIsaWNvbjpbNTEyLDUxMixbXSwiZTVjNiIsIk00MDYuNyA0NjNjLTQyLjMgMzAuOC05NC40IDQ5LTE1MC43IDQ5LTExMS4xIDAtMjA1LjctNzAuOC0yNDEuMS0xNjkuOCAyLjQgMS43IDUuOSAzLjYgNy45IDQuNCAxNi4zIDcuNCA0MC4xLTUuNCA2Mi45LTI4LjcgNi45LTYuOSAxNC40LTEyLjQgMjIuOC0xNy4zIDE4LjMtMTEuOSAzNy42LTIwLjggNTguNC0yNy4yIDAgMCAyMi4zIDM0LjIgNDMuMSA3NC44cy0yMi4zIDU0LTI3LjIgNTRjLS4zIDAtLjggMC0xLjUtLjEtMTEtLjUtNzAtMy01NiA1MS4xIDE0LjkgNTcuNCA5Ny41IDM2LjYgMTM5LjYgOC45czMxLjctMTE4LjMgMzEuNy0xMTguM2M0MS4xLTYuNCA1NCAzNy4xIDU3LjkgNTkuNCAuOCA0LjYgMS4xIDkuOSAxLjQgMTUuNSAxLjEgMjEuMiAyLjMgNDUuNiAzNS4zIDQ2LjQgNS4zIDAgMTAuNi0uOCAxNS41LTJsMC0uMXptLTk1LjMtMjMuN2MtMi0uNS0zLjUtMi41LTMtNSAxLTIuNSAzLTMuNSA1LTNzMy41IDMgMyA1LTIuNSAzLjUtNSAzem0tMjA3LTk1LjZjMS41LS41IDMuNSAxIDQgMyAwIDItMSA0LTMgNC0xLjUgLjUtMy41LTEtNC0zLS41LTEuNSAxLTMuNSAzLTR6TTQ1MS44IDQyMWMzNy41LTQ0LjYgNjAuMi0xMDIuMiA2MC4yLTE2NSAwLTY3LjUtMjYuMS0xMjguOS02OC44LTE3NC43LS4xIDIzLjUtNi4xIDQ4LjItMTYuOCA2OS4yLTExLjkgMjAuMy00OSA1OC45LTY5LjggNzguNy0uNyAuMy0xLjEgLjktMS41IDEuNC0uMiAuMi0uMyAuNC0uNSAuNi01IDYuOS00IDE2LjggMyAyMS44IDIxLjMgMTUuOCA1Ni40IDQ1LjYgNTkuNCA3Mi44IDMuNSAzNC45IDI3LjkgNzUuNiAzNC4yIDg2LjIgLjggMS4zIDEuMyAyLjEgMS40IDIuNCAwIDIuMi0uNCA0LjMtLjggNi41bDAgLjF6TTM5MC43IDI1MWMtLjUgMyAxIDUuOSA0IDYuNHM1LjktMSA2LjQtNC0xLTUuOS00LTYuNGMtMy0xLTUuOSAxLTYuNCA0em02MS40LTYwLjlsLTExLjQgNS40LTMgMTIuOS01LjQtMTEuNC0xMi45LTMgMTEuNC01LjQgMy0xMi45IDUuNCAxMS40IDEyLjkgM3pNMzk1LjUgNDEuM2MtMTYuMiA4LjItMjIuMSAzMi44LTI5IDYxLjQtLjMgMS40LS43IDIuOC0xIDQuMi05LjUgMzguNS0zMC42IDM3LjYtNDEuNyAzNy4yLTEuMSAwLTItLjEtMi45LS4xLTUuMSAwLTYtNC04LjktMTcuMS0yLjYtMTIuMS02LjktMzItMTcuOS02My42LTIyLjctNjUuOC04Mi43LTQ5LjQtMTI4LjItMjIuMi01NS4zIDMzLjEtMzQuNCAxMDEuOS0xOS44IDE0OS40IC43IDIuMiAxLjQgNC40IDIgNi42LTQgNC0xMy44IDcuNS0yNiAxMS45LTEyLjEgNC4zLTI2LjYgOS41LTQwLjMgMTYuOS0zMy45IDE4LTcwLjMgNDktNzkuOCA2Mi42LTEuMy0xMC43LTItMjEuNS0yLTMyLjUgMC0xNDEuNCAxMTQuNi0yNTYgMjU2LTI1NiA1MS40IDAgOTkuNCAxNS4yIDEzOS41IDQxLjN6TTU4LjkgMTg5LjZjLTEuNS0yLTQuNS0zLTYuNC0xLjVzLTMgNC41LTEuNSA2LjQgNC41IDMgNi40IDEuNWMyLjUtMS41IDMtNC41IDEuNS02LjR6TTMyNy4zIDY0LjljMi0xLjUgNS0uNSA2LjQgMS41IDEuNSAyLjUgMSA1LjQtMS41IDYuNC0yIDEuNS01IC41LTYuNC0xLjVzLS41LTUgMS41LTYuNHpNOTUuMSAxMDVjLS41IDEuNSAuNSAzIDIgMyAxLjUgLjUgMy0uNSAzLTIgLjUtMS41LS41LTMtMi0zcy0zIC41LTMgMnptODQuNy0uNWMtMy41LTQzLjEgMzcuMS01NCAzNy4xLTU0IDQ0LjEtMTUuNCA1NiA1LjkgNjYuNCAzNy42czMgNDIuNi0zOC42IDU4LjktNjEuOS00LjUtNjQuOS00Mi42bDAgLjF6bTg5LjYgMTQuOWwxIDBjMi41IDAgNS0yIDUtNSAyLTYuOSAxLTE0LjQtMi0yMC44LTEuNS0yLTQtMy41LTYuNC0yLjUtMyAxLTQuNSA0LTMuNSA2LjkgMiA0LjUgMyA5LjkgMS41IDE0LjktLjUgMyAxLjUgNS45IDQuNSA2LjRsLS4xIC4xem0tOS45LTQxLjZjLTIgMC00LTEtNS0zcy0yLTMuNS0zLTVjLTItMi0yLTUuNCAwLTcuNHM1LjQtMiA3LjQgMGMyIDIuNSAzLjUgNSA1IDcuNHMuNSA1LjktMi41IDcuNGMtLjYgMC0xIC4yLTEuMyAuMy0uMiAuMS0uNCAuMi0uNiAuMmwwIC4xeiJdfSxZaXQ9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiZ2ctY2lyY2xlIixpY29uOls1MTIsNTEyLFtdLCJmMjYxIiwiTTI1Ny41IDhhMjQ4IDI0OCAwIDEgMCAwIDQ5NiAyNDggMjQ4IDAgMSAwIDAtNDk2ek0yMDggMzgyLjhsLTEyNS43LTEyNS43IDEyNS43LTEyNS43IDM1LjIgMzUuNC0yNC4yIDI0LjItMTEuMS0xMS4xLTc3LjIgNzcuMiA3Ny4yIDc3LjIgMjYuNi0yNi42LTUzLjEtNTIuOSAyNC40LTI0LjQgNzcuMiA3Ny4yLTc1IDc1LjJ6bTk5LTIuMmwtMzUuMi0zNS4yIDI0LjEtMjQuNCAxMS4xIDExLjEgNzcuMi03Ny4yLTc3LjItNzcuMi0yNi41IDI2LjUgNTMuMSA1Mi45LTI0LjQgMjQuNC03Ny4yLTc3LjIgNzUtNzUgMTI1LjcgMTI1LjctMTI1LjcgMTI1LjZ6Il19LFppdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJjbG91ZGZsYXJlIixpY29uOls2NDAsNTEyLFtdLCJlMDdkIiwiTTQwNy45IDMxOS45TDE3Ny4xIDMxN2MtLjcgMC0xLjQtLjItMi0uNXMtMS4yLS44LTEuNi0xLjRjLS40LS42LS43LTEuMy0uNy0yczAtMS40IC4yLTIuMWMuNC0xLjEgMS4xLTIuMSAyLjEtMi44czIuMS0xLjIgMy4zLTEuMmwyMzIuOS0yLjljMjcuNi0xLjMgNTcuNS0yMy42IDY4LTUwLjhsMTMuMy0zNC41Yy40LS45IC41LTEuOSAuNS0yLjkgMC0uNS0uMS0xLjEtLjItMS42LTcuNC0zMi4yLTI1LTYxLjEtNTAuMy04Mi4zcy01Ni43LTMzLjctODkuNy0zNS41LTY1LjYgNy4zLTkzIDI1LjctNDggNDUuMy01OC44IDc2LjVjLTExLjMtOC41LTI0LjktMTMuMy0zOS0xMy43cy0yOCAzLjUtMzkuOCAxMS40LTIwLjggMTkuMS0yNS45IDMyLjMtNS45IDI3LjYtMi40IDQxLjNjLTUyLjMgMS41LTk0LjIgNDQuMS05NC4yIDk2LjUgMCA0LjcgLjMgOS4zIDEgMTQgLjIgMS4xIC43IDIuMSAxLjUgMi44czEuOSAxLjEgMi45IDEuMWw0MjYuMSAuMWMwIDAgLjEgMCAuMSAwIDEuMiAwIDIuMy0uNCAzLjMtMS4xczEuNi0xLjcgMi0yLjlsMy4zLTExLjNjMy45LTEzLjQgMi40LTI1LjgtNC4xLTM0LjktNi04LjQtMTYuMS0xMy4zLTI4LjItMTMuOXptMTA1LjktOTguOGMtMi4xIDAtNC4zIC4xLTYuNCAuMi0uOCAuMS0xLjUgLjMtMi4xIC44cy0xIDEuMS0xLjMgMS44bC05LjEgMzEuMmMtMy45IDEzLjQtMi40IDI1LjggNC4xIDM0LjkgNiA4LjQgMTYuMSAxMy4zIDI4LjIgMTMuOWw0OS4yIDIuOWMuNyAwIDEuNCAuMiAyIC41czEuMSAuOCAxLjUgMS40Yy40IC42IC43IDEuMyAuOCAyczAgMS41LS4yIDIuMWMtLjQgMS4xLTEuMSAyLjEtMi4xIDIuOHMtMi4xIDEuMi0zLjMgMS4ybC01MS4xIDIuOWMtMjcuOCAxLjMtNTcuNyAyMy42LTY4LjEgNTAuOGwtMy43IDkuNmMtLjIgLjQtLjIgLjgtLjIgMS4zcy4yIC44IC40IDEuMiAuNiAuNyAuOSAuOSAuOCAuMyAxLjIgLjNjMCAwIC4xIDAgLjEgMGwxNzUuOSAwYzEgMCAyLS4zIDIuOC0uOXMxLjQtMS41IDEuNy0yLjRjMy4xLTExLjEgNC43LTIyLjUgNC43LTM0IDAtNjkuMy01Ni41LTEyNS41LTEyNi4xLTEyNS41eiJdfSxYaXQ9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiaGFja2VycmFuayIsaWNvbjpbNTEyLDUxMixbXSwiZjVmNyIsIk00NzcuOSAxMjhDNDYzLjQgMTAzIDI4NS41IDAgMjU2LjUgMHMtMjA2LjkgMTAyLjgtMjIxLjMgMTI4LTE0LjUgMjMwLjggMCAyNTYgMTkyLjQgMTI4IDIyMS4zIDEyOCAyMDYuOC0xMDIuOSAyMjEuMy0xMjggMTQuNS0yMzEgMC0yNTZ6TTMxNi41IDQxNC4yYy00IDAtNDAuOS0zNS44LTM4LTM4LjcgLjktLjkgNi4zLTEuNSAxNy41LTEuOCAwLTI2LjIgLjYtNjguNiAuOS04Ni4zIDAtMi0uNC0zLjQtLjQtNS44bC03OS45IDBjMCA3LjEtLjUgMzYuMiAxLjQgNzIuOSAuMiA0LjUtMS42IDYtNS43IDUuOS0xMC4xIDAtMjAuMy0uMS0zMC40LS4xLTQuMSAwLTUuOS0xLjUtNS43LTYuMSAuOS0zMy40IDMtODQtLjItMjEyLjdsMC0zLjJjLTkuNy0uNC0xNi40LTEtMTcuMy0xLjgtMi45LTIuOSAzNC41LTM4LjcgMzguNS0zOC43czQxLjIgMzUuOCAzOC4zIDM4LjdjLS45IC45LTcuOSAxLjUtMTYuOCAxLjhsMCAzLjJjLTIuNCAyNS44LTIgNzkuNi0yLjYgMTA1LjRsODAuMyAwYzAtNC42IC40LTM0LjctMS4yLTgzLjYtLjEtMy40IDEtNS4yIDQuMi01LjIgMTEuMS0uMSAyMi4yLS4xIDMzLjItLjEgMy41IDAgNC42IDEuNyA0LjUgNS40LTMuNyAxOTEuMy0uNyAxNzcuOS0uNyAyMTAuMyA4LjkgLjQgMTYuOCAxIDE3LjcgMS44IDIuOSAyLjktMzMuNiAzOC43LTM3LjYgMzguN2wwIDB6Il19LFFpdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJza3lhdGxhcyIsaWNvbjpbNjQwLDUxMixbXSwiZjIxNiIsIk02NDAgMzI5LjNjMCA2NS45LTUyLjUgMTE0LjQtMTE3LjUgMTE0LjQtMTY1LjkgMC0xOTYuNi0yNDkuNy0zNTkuNy0yNDkuNy0xNDYuOSAwLTE0Ny4xIDIxMi4yIDUuNiAyMTIuMiA0Mi41IDAgOTAuOS0xNy44IDEyNS4zLTQyLjUgNS42LTQuMSAxNi45LTE2LjMgMjIuOC0xNi4zczEwLjkgNSAxMC45IDEwLjljMCA3LjgtMTMuMSAxOS4xLTE4LjcgMjQuMS00MC45IDM1LjYtMTAwLjMgNjEuMi0xNTQuNyA2MS4yLTgzLjQgLjEtMTU0LTU5LTE1NC0xNDQuOVM2Ny41IDE0OS42IDE1Mi44IDE0OS42YzE4NS4zIDAgMjIyLjUgMjQ1LjkgMzYxLjkgMjQ1LjkgOTkuOSAwIDk0LjgtMTM5LjcgMy40LTEzOS43LTE3LjUgMC0zNSAxMS42LTQ2LjkgMTEuNi04LjQgMC0xNS45LTcuMi0xNS45LTE1LjYgMC0xMS42IDUuMy0yMy43IDUuMy0zNi4zIDAtNjYuNi01MC45LTExNC43LTExNi45LTExNC43LTUzLjEgMC04MCAzNi45LTg4LjggMzYuOS02LjIgMC0xMS4yLTUtMTEuMi0xMS4yIDAtNS42IDQuMS0xMC4zIDcuOC0xNC40IDI1LjMtMjguOCA2NC43LTQzLjcgMTAyLjgtNDMuNyA3OS40IDAgMTM5LjEgNTguNCAxMzkuMSAxMzcuOCAwIDYuOS0uMyAxMy43LTEuMiAyMC42IDExLjktMy4xIDI0LjEtNC43IDM1LjktNC43IDYwLjcgMCAxMTEuOSA0NS4zIDExMS45IDEwNy4yeiJdfSxKaXQ9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiZGVza3BybyIsaWNvbjpbNDQ4LDUxMixbXSwiZjM4ZiIsIk0xMjIgNDA2LjJsODQgMGMyMy4xIDAgNDMuOS0zLjUgNjIuNi0xMC43IDE4LjctNy4xIDM0LjctMTcuMSA0OC0zMC4xIDEzLjMtMTMuNCAyMy42LTI5LjIgMzAuNy00Ny41IDMuOS05LjYgNi44LTE5LjggOC42LTMwLjZsNzMuNyAwYy0yLjUgMjEuMy03LjcgNDEuMy0xNS41IDYwLTExLjEgMjcuMi0yNi45IDUwLjgtNDcuMyA3MC45LTIwIDE5LjYtNDQuMiAzNC44LTcyLjYgNDUuNHMtNjAgMTYtOTQuNyAxNmwtMTQ5LjggLjIgMC0xOTIuNCA3Mi4zLS4yIDAgMTE4Ljh6TTE5OS40IDMyYzM0LjcgMCA2Ni4yIDUuNCA5NC43IDE2IDI4LjUgMTAuNyA1Mi45IDI2LjEgNzMuMyA0Ni4yIDIwLjQgMTkuNiAzNi4yIDQzLjIgNDcuMyA3MC45IDcuNSAxOC4zIDEyLjQgMzguMSAxNC45IDU5LjNsLTczLjctLjFjLTEuOS0xMC41LTQuNy0yMC41LTguNi0yOS45LTcuMS0xOC43LTE3LjMtMzQuNS0zMC43LTQ3LjUtMTMuMy0xMy40LTI5LjMtMjMuNi00OC0zMC44LTE4LjYtNy4xLTM5LjUtMTAuNy02Mi43LTEwLjdsLTg0IDAgMCAxMTguOC03Mi4yIC4yIDAtMTkyLjMgMTQ5LjctLjF6Il19LEtpdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJyZXNvbHZpbmciLGljb246WzUxMiw1MTIsW10sImYzZTciLCJNMjg5LjIgMjc4LjJjNDYtMTMuMyA0OS42LTIzLjUgNDQtNDMuNEwzMjIgMTk1LjVjLTYuMS0yMC45LTE4LjQtMjguMS03MS4xLTEyLjhsLTE4OC4yIDU0LjEgMjguNiA5OC42IDE5Ny45LTU3LjJ6TTI1Ni41IDhDMTM5LjQgOCA0MS4yIDg4LjcgMTUuMiAxOTcuNWwyMjEuOS02My45YzM0LjgtMTAuMiA1NC4yLTExLjcgNzkuMy04LjIgMzYuMyA2LjEgNTIuNyAyNSA2MS40IDU1LjJsMTAuNyAzNy44YzguMiAyOC4xIDEgNTAuNi0yMy41IDczLjYtMTkuNCAxNy40LTMxLjIgMjQuNS02MS40IDMzLjJsLTkyLjYgMjYuNiAyMjAuNCAyNy4xIDkuNyAzNC4yLTQ4LjEgMTMuMy0yODYuOC0zNy4zIDIzIDgwLjJDMTY2IDQ5MS4zIDIwOS41IDUwNCAyNTUuNSA1MDQgMzkyLjUgNTA0IDUwNCAzOTIuNiA1MDQgMjU1LjcgNTA1IDExOS40IDM5My41IDggMjU2LjUgOHpNNDYuMyAzODguNkw4IDI1Ni44YzAgNDguNSAxNC4zIDkzLjQgMzguMyAxMzEuOHoiXX0sZWF0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImJsYWNrYmVycnkiLGljb246WzUxMiw1MTIsW10sImYzN2IiLCJNMTY2IDExNi45YzAgMjMuNC0xNi40IDQ5LjEtNzIuNSA0OS4xbC03MC4xIDAgMjEtODguOCA2Ny44IDBjNDIuMSAwIDUzLjggMjMuMyA1My44IDM5Ljd6TTI5Mi4yIDc3LjJsLTY3LjggMC0xOC43IDg4LjggNzAuMSAwYzUzLjggMCA3MC4xLTI1LjcgNzAuMS00OS4xIC4xLTE2LjQtMTEuNi0zOS43LTUzLjctMzkuN3pNODguOCAyMDguMWwtNjcuOCAwLTIxIDg4LjggNzAuMSAwYzU2LjEgMCA3Mi41LTIzLjQgNzIuNS00OS4xIDAtMTYuMy0xMS43LTM5LjctNTMuOC0zOS43em0xODAuMSAwbC02Ny44IDAtMTguNyA4OC44IDcwLjEgMGM1My44IDAgNzAuMS0yMy40IDcwLjEtNDkuMSAwLTE2LjMtMTEuNy0zOS43LTUzLjctMzkuN3ptMTg5LjMtNTMuOGwtNjcuOCAwLTE4LjcgODguOCA3MC4xIDBjNTMuOCAwIDcwLjEtMjMuNCA3MC4xLTQ5LjEgLjEtMTYuMy0xMS42LTM5LjctNTMuNy0zOS43em0tMjggMTM3LjlsLTY3LjggMC0xOC43IDg4LjggNzAuMSAwYzU2LjEgMCA3MC4xLTIzLjQgNzAuMS00OS4xIDAtMTYuMy0xMS42LTM5LjctNTMuNy0zOS43ek0yNDAuOCAzNDZsLTY3LjggMC0xOC43IDg4LjggNzAuMSAwYzU2LjEgMCA3MC4xLTI1LjcgNzAuMS00OS4xIC4xLTE2LjMtMTEuNi0zOS43LTUzLjctMzkuN3oiXX0sdGF0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6InN0cmlwZS1zIixpY29uOlszODQsNTEyLFtdLCJmNDJhIiwiTTE1NS42IDE1NC42YzAtMjIuMyAxOC42LTMwLjkgNDguNC0zMC45IDQzLjQgMCA5OC41IDEzLjMgMTQxLjkgMzYuN2wwLTEzNC4zYy00Ny4zLTE4LjktOTQuNS0yNi4xLTE0MS44LTI2LjEtMTE1LjcgMC0xOTIuOCA2MC40LTE5Mi44IDE2MS40IDAgMTU3LjkgMjE2LjggMTMyLjMgMjE2LjggMjAwLjQgMCAyNi40LTIyLjkgMzQuOS01NC43IDM0LjktNDcuMiAwLTEwOC4yLTE5LjUtMTU2LjEtNDUuNWwwIDEyOC41YzQ5LjMgMjEuMyAxMDIuMyAzMi4zIDE1NiAzMi40IDExOC42IDAgMjAwLjMtNTEgMjAwLjMtMTUzLjYgMC0xNzAuMi0yMTgtMTM5LjctMjE4LTIwMy45eiJdfSxCYWU9e3ByZWZpeDoiZmFiIixpY29uTmFtZToic3F1YXJlLWJlaGFuY2UiLGljb246WzQ0OCw1MTIsWyJiZWhhbmNlLXNxdWFyZSJdLCJmMWI1IiwiTTE1NS4zIDMxOC40YzE3LjIgMCAzMS4yLTYuMSAzMS4yLTI1LjQgMC0xOS43LTExLjctMjcuNC0zMC4zLTI3LjVsLTQ2IDAgMCA1Mi45IDQ1LjEgMHptLTUuNC0xMjkuNmwtMzkuNiAwIDAgNDQuOCA0Mi43IDBjMTUuMSAwIDI1LjgtNi42IDI1LjgtMjIuOSAwLTE3LjctMTMuNy0yMS45LTI4LjktMjEuOXptMTI5LjUgNzQuOGw2Mi4yIDBjLTEuNy0xOC41LTExLjMtMjkuNy0zMC41LTI5LjctMTguMyAwLTMwLjUgMTEuNC0zMS43IDI5Ljd6TTM4NCAzMkw2NCAzMkMyOC43IDMyIDAgNjAuNyAwIDk2TDAgNDE2YzAgMzUuMyAyOC43IDY0IDY0IDY0bDMyMCAwYzM1LjMgMCA2NC0yOC43IDY0LTY0bDAtMzIwYzAtMzUuMy0yOC43LTY0LTY0LTY0ek0zNDkuNSAxODVsLTc3LjggMCAwLTE4LjkgNzcuOCAwIDAgMTguOXpNMTkzLjcgMjQzLjdjMjMuNiA2LjcgMzUgMjcuNSAzNSA1MS42IDAgMzktMzIuNyA1NS43LTY3LjYgNTUuOWwtOTMuMSAwIDAtMTkyIDkwLjUgMGMzMi45IDAgNjEuNCA5LjMgNjEuNCA0Ny41IDAgMTkuMy05IDI4LjgtMjYuMiAzN3ptMTE4LjctMzguNmM0My41IDAgNjcuNiAzNC4zIDY3LjYgNzUuNCAwIDEuNi0uMSAzLjMtLjIgNSAwIC44LS4xIDEuNS0uMSAyLjJsLTEwMC4yIDBjMCAyMi4yIDExLjcgMzUuMyAzNC4xIDM1LjMgMTEuNiAwIDI2LjUtNi4yIDMwLjItMTguMWwzMy43IDBjLTEwLjQgMzEuOS0zMS45IDQ2LjgtNjUuMSA0Ni44LTQzLjggMC03MS4xLTI5LjctNzEuMS03MyAwLTQxLjggMjguNy03My42IDcxLjEtNzMuNnoiXX0scmF0PUJhZSxpYXQ9e3ByZWZpeDoiZmFiIixpY29uTmFtZToic2VydmljZXN0YWNrIixpY29uOls1MTIsNTEyLFtdLCJmM2VjIiwiTTk2IDIxNmM4MS43IDEwLjIgMjczLjcgMTAyLjMgMzA0IDIzMkw4IDQ0OGM5OS41LTguMSAxODQuNS0xMzcgODgtMjMyek0xMjggNjRjMzIuMyAzNS42IDQ3LjcgODMuOSA0Ni40IDEzMy42IDgyLjkgMzMuNyAyMDcuMyAxMjMuNyAyMzMuNiAyNTAuNGw5NiAwQzQ2My4zIDIzMS45IDIzMC44IDc5LjUgMTI4IDY0eiJdfSxhYXQ9e3ByZWZpeDoiZmFiIixpY29uTmFtZToicm9ja2V0Y2hhdCIsaWNvbjpbNTc2LDUxMixbXSwiZjNlOCIsIk0yODQuNSAyMjQuOGMtNi43IDAtMTMuMyAyLjEtMTguOSA1LjhzLTkuOSA5LjEtMTIuNSAxNS40LTMuMiAxMy4xLTEuOSAxOS43IDQuNiAxMi43IDkuNCAxNy40IDEwLjkgOCAxNy41IDkuMyAxMy41IC42IDE5LjctMiAxMS41LTcgMTUuMy0xMi42IDUuNy0xMi4yIDUuNy0xOC45YzAtOS4xLTMuNy0xNy44LTEwLjEtMjQuMnMtMTUuMS0xMC0yNC4yLTkuOXptLTExMC40IDBjLTYuNyAwLTEzLjMgMi4xLTE4LjkgNS44cy05LjkgOS4xLTEyLjUgMTUuNC0zLjIgMTMuMS0xLjkgMTkuNyA0LjYgMTIuNyA5LjQgMTcuNCAxMC45IDggMTcuNSA5LjMgMTMuNSAuNiAxOS43LTIgMTEuNS03IDE1LjMtMTIuNiA1LjctMTIuMiA1LjctMTguOWMwLTkuMS0zLjctMTcuOC0xMC4xLTI0LjJzLTE1LjEtMTAtMjQuMi0xMGwwIDB6bTIyMC45IDBhMzQuMSAzNC4xIDAgMSAwIC40IDY4LjIgMzQuMSAzNC4xIDAgMSAwIC0uNC02OC4yem0xNTMuOC01NS4zYy0xNS41LTI0LjItMzcuMy00NS42LTY0LjctNjMuNi01Mi45LTM0LjgtMTIyLjQtNTQtMTk1LjctNTQtMjQuMiAwLTQ4LjMgMi4xLTcyIDYuNC0xNC45LTE0LjMtMzEuNS0yNi42LTQ5LjUtMzYuNi02Ni44LTMzLjMtMTI1LjYtMjAuOS0xNTUuMy0xMC4yLTIuMyAuOC00LjMgMi4xLTUuOSAzLjlzLTIuNyAzLjktMy4zIDYuMi0uNSA0LjcgLjEgNy4xIDEuOCA0LjQgMy41IDYuMUMyNyA1Ni41IDYxLjYgOTkuMyA1My4xIDEzOC4zIDIwIDE3Mi4yIDIgMjEzIDIgMjU1LjYgMiAyOTkgMjAgMzM5LjggNTMuMSAzNzMuNyA2MS42IDQxMi43IDI3IDQ1NS42IDYgNDc3LjIgNC4zIDQ3OSAzLjIgNDgxLjEgMi41IDQ4My40cy0uNyA0LjctLjEgNyAxLjcgNC41IDMuMyA2LjIgMy42IDMuMSA1LjkgMy45YzI5LjcgMTAuNyA4OC41IDIzLjEgMTU1LjMtMTAuMiAxOC0xMCAzNC43LTIyLjMgNDkuNS0zNi42IDIzLjggNC4zIDQ3LjkgNi40IDcyIDYuNCA3My4zIDAgMTQyLjgtMTkuMiAxOTUuNy01NCAyNy40LTE4IDQ5LjEtMzkuNCA2NC43LTYzLjYgMTcuMy0yNi45IDI2LjEtNTUuOSAyNi4xLTg2LjEgMC0zMS04LjgtNjAtMjYuMS04Ni45bDAgMHpNMjg1LjQgNDA5LjljLTMwLjIgLjEtNjAuMy0zLjgtODkuNC0xMS41bC0yMC4xIDE5LjRjLTExLjIgMTAuNy0yMy42IDIwLTM3LjEgMjcuNi0xNi40IDguMi0zNC4yIDEzLjMtNTIuNSAxNC45IDEtMS44IDEuOS0zLjYgMi44LTUuNCAyMC4yLTM3LjEgMjUuNi03MC41IDE2LjMtMTAwLjEtMzMtMjYtNTIuOC01OS4yLTUyLjgtOTUuNCAwLTgzLjEgMTA0LjMtMTUwLjUgMjMyLjgtMTUwLjVzMjMyLjkgNjcuNCAyMzIuOSAxNTAuNWMwIDgzLjEtMTA0LjMgMTUwLjUtMjMyLjkgMTUwLjV6Il19LG5hdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJyZWJlbCIsaWNvbjpbNTEyLDUxMixbXSwiZjFkMCIsIk0yNTYuOSA1MDRjLTEzOS4zIDAtMjQ3LjUtMTE2LjItMjQzLjMtMjU0LjEgMi44LTc5LjIgNDMuMi0xNTIuMiAxMTYuNS0yMDAuNCAuMyAwIDEuOS0uNiAxLjEgLjgtNS44IDUuNS0xMTEuMyAxMjkuOC0xNC4xIDIyNi40IDQ5LjggNDkuNSA5MCAyLjUgOTAgMi41IDM4LjUtNTAuMS0uNi0xMjUuOS0uNi0xMjUuOS0xMC0yNC45LTQ1LjctNDAuMS00NS43LTQwLjFsMjguOC0zMS44YzI0LjQgMTAuNSA0My4yIDM4LjcgNDMuMiAzOC43IC44LTI5LjYtMjEuOS02MS40LTIxLjktNjEuNEwyNTUuNSA4IDI5OS44IDU4LjFjLTIwLjUgMjguOC0yMS45IDYyLjYtMjEuOSA2Mi42IDEzLjgtMjMgNDMuNS0zOS4zIDQzLjUtMzkuM2wyOC41IDMxLjhjLTI3LjQgOC45LTQ1LjQgMzkuOS00NS40IDM5LjktMTUuOCAyOC41LTI3LjEgODkuNCAuNiAxMjcuMyAzMi40IDQ0LjYgODcuNy0yLjggODcuNy0yLjggMTAyLjctOTEuOS0xMC41LTIyNS0xMC41LTIyNS02LjEtNS41IC44LTIuOCAuOC0yLjggNTAuMSAzNi41IDExNC42IDg0LjQgMTE2LjIgMjA0LjggMiAxNDUuNi05OS45IDI0OS40LTI0Mi40IDI0OS40eiJdfSxvYXQ9e3ByZWZpeDoiZmFiIixpY29uTmFtZToic3F1YXJlLXdlYi1hd2Vzb21lIixpY29uOls0NDgsNTEyLFtdLCJlNjgzIiwiTTY0IDMyQzI4LjcgMzIgMCA2MC43IDAgOTZMMCA0MTZjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMzIwIDBjMzUuMyAwIDY0LTI4LjcgNjQtNjRsMC0zMjBjMC0zNS4zLTI4LjctNjQtNjQtNjRMNjQgMzJ6TTIzNSAxNzcuNmw1MyA0Ni40IDUyLjItMTAuNGMtMi42LTMuOS00LjItOC41LTQuMi0xMy42IDAtMTMuMyAxMC43LTI0IDI0LTI0czI0IDEwLjcgMjQgMjRjMCAxMy0xMC4zIDIzLjYtMjMuMiAyNEwzMDQuNSAzNDkuMWMtNS4yIDExLjUtMTYuNiAxOC45LTI5LjIgMTguOWwtMTAyLjYgMGMtMTIuNiAwLTI0LTcuNC0yOS4yLTE4LjlMODcuMiAyMjRjLTEyLjktLjQtMjMuMi0xMS0yMy4yLTI0IDAtMTMuMyAxMC43LTI0IDI0LTI0czI0IDEwLjcgMjQgMjRjMCA1LTEuNSA5LjctNC4yIDEzLjZMMTYwIDIyNCAyMTMuMSAxNzcuNmMtOC45LTQuMS0xNS0xMy4xLTE1LTIzLjYgMC0xNC40IDExLjYtMjYgMjYtMjZzMjYgMTEuNiAyNiAyNmMwIDEwLjUtNi4yIDE5LjUtMTUuMSAyMy42eiJdfSxzYXQ9e3ByZWZpeDoiZmFiIixpY29uTmFtZToibGlua3RyZWUiLGljb246WzQ0OCw1MTIsW10sImU3ZDgiLCJNMTYgMTczLjRsMTI1LjggMC04OS40LTg1LjQgNDkuNS01MSA4NS4yIDg3LjggMC0xMjQuOCA3My45IDAgMCAxMjQuOCA4NS4yLTg3LjYgNDkuNCA1MC44LTg5LjQgODUuMiAxMjUuNyAwIDAgNzAuNS0xMjYuNCAwIDkwIDg3LjYtNDkuMyA0OS44LTEyMi4yLTEyMy0xMjIuMiAxMjMtNDkuNS00OS42IDkwLTg3LjYtMTI2LjQgMCAwLTcwLjV6TTE4Ni45IDM0NC44bDczLjkgMCAwIDE2Ny4yLTczLjkgMCAwLTE2Ny4yeiJdfSxsYXQ9e3ByZWZpeDoiZmFiIixpY29uTmFtZToic2ltcGx5YnVpbHQiLGljb246WzUxMiw1MTIsW10sImYyMTUiLCJNNDgxLjYgNjRsLTEwNiAwQzM2MS4xIDY0IDM0OSA3NS44IDM0OSA5MC4zbDAgMzkuNi0xODUuMyAwIDAtMzkuNmMwLTE0LjUtMTItMjYuMy0yNi42LTI2LjNsLTEwNiAwQzE2LjUgNjQgNC43IDc1LjggNC43IDkwLjNsMCAzMzEuNGMwIDE0LjUgMTEuOCAyNi4zIDI2LjYgMjYuM2w0NTAuNCAwYzE0LjggMCAyNi42LTExLjggMjYuNi0yNi4zbDAtMzMxLjRjLS4yLTE0LjUtMTItMjYuMy0yNi43LTI2LjN6TTE1MC41IDIyMi43YTY2LjUgNjYuNSAwIDEgMSAtLjMgMTMzLjEgNjYuNSA2Ni41IDAgMSAxIC4zLTEzMy4xem0yMTEuOSAuMWE2Ni41IDY2LjUgMCAxIDEgLjMgMTMyLjkgNjYuNSA2Ni41IDAgMSAxIC0uMy0xMzIuOXoiXX0sY2F0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6InN0dWJiZXIiLGljb246WzQ0OCw1MTIsW10sImU1YzciLCJNMTM2LjUgMjk0LjJsNTguOCAyMi45YzkuMS0zNi44IDI1LjQtNjEuMSA1NS02MS4xIDQ5LjQgMCA3MS40IDYzLjYgMTQyLjQgNjMuNiAxNS42IDAgMzUuOS0yLjggNTUuMy0xMy4zbDAgNjEuN2MwIDYxLjgtNTAuNCAxMTItMTEyLjMgMTEyTDAgNDgwIDQxLjggNDI0IDAgMzY4IDQxLjcgMzEyIDAgMjU2LjEgNDEuOCAyMDAuMSAwIDE0NC4xIDQxLjggODggMCAzMiAzMzUuNyAzMkMzOTcuNiAzMiA0NDggODIuMyA0NDggMTQ0LjFsMCA1MS4zYy05LjIgMzYuMy0yNS45IDYwLjYtNTUgNjAuNi00OS42IDAtNzEuNi02My41LTE0Mi40LTYzLjUtMzUuOSAwLTk1LjIgMTQuNi0xMTQuMSAxMDEuNmwwIC4xeiJdfSxkYXQ9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiYXBwZXIiLGljb246WzY0MCw1MTIsW10sImYzNzEiLCJNNDIuMSAyMzkuMWMyMi4yIDAgMjkgMi44IDMzLjUgMTQuNmwuOCAwIDAtMjIuOWMwLTExLjMtNC44LTE1LjQtMTcuOS0xNS40LTExLjMgMC0xNC40IDIuNS0xNS4xIDEyLjhsLTM4LjYgMGMuMy0xMy45IDEuNS0xOS4xIDUuOC0yNC40IDcuMy04LjggMTguOS0xMS44IDQ2LjEtMTEuOCAzMyAwIDQ3LjEgNSA1My45IDE4LjkgMiA0LjMgNCAxNS42IDQgMjMuN2wwIDc2LjMtMzguMyAwIDEuMy0xOS4xLTEgMGMtNS4zIDE1LjYtMTMuNiAyMC40LTM1LjUgMjAuNC0zMC4zIDAtNDEuMS0xMC4xLTQxLjEtMzcuMyAwLTI1LjIgMTIuMy0zNS44IDQyLjEtMzUuOHptMTcuMSA0OC4xYzEzLjEgMCAxNi45LTMgMTYuOS0xMy40IDAtOS4xLTQuMy0xMS42LTE5LjYtMTEuNi0xMy4xIDAtMTcuOSAzLTE3LjkgMTIuMS0uMSAxMC40IDMuNyAxMi45IDIwLjYgMTIuOXpNMTM3IDE5Mi4zbDM4LjMgMC0xLjUgMjAuNiAuOCAwYzkuMS0xNy4xIDE1LjktMjAuOSAzNy41LTIwLjkgMTQuNCAwIDI0LjcgMyAzMS41IDkuMSA5LjggOC42IDEyLjggMjAuNCAxMi44IDQ4LjEgMCAzMC0zIDQzLjEtMTIuMSA1Mi45LTYuOCA3LjMtMTYuNCAxMC4xLTMzLjIgMTAuMS0yMC40IDAtMjkuMi01LjUtMzMuOC0yMS4ybC0uOCAwIDAgNzAuMy0zOS41IDAgMC0xNjl6TTIxNy45IDI1M2MwLTI3LjUtMy4zLTMyLjUtMjAuNy0zMi41LTE2LjkgMC0yMC43IDUtMjAuNyAyOC43IDAgMjggMy41IDMzLjUgMjEuMiAzMy41IDE2LjQgMCAyMC4yLTUuNiAyMC4yLTI5Ljd6bTU3LjktNjAuN2wzOC4zIDAtMS41IDIwLjYgLjggMGM5LjEtMTcuMSAxNS45LTIwLjkgMzcuNS0yMC45IDE0LjQgMCAyNC43IDMgMzEuNSA5LjEgOS44IDguNiAxMi44IDIwLjQgMTIuOCA0OC4xIDAgMzAtMyA0My4xLTEyLjEgNTIuOS02LjggNy4zLTE2LjQgMTAuMS0zMy4zIDEwLjEtMjAuNCAwLTI5LjItNS41LTMzLjgtMjEuMmwtLjggMCAwIDcwLjMtMzkuNSAwIDAtMTY5IC4xIDB6TTM1Ni43IDI1M2MwLTI3LjUtMy4zLTMyLjUtMjAuNy0zMi41LTE2LjkgMC0yMC43IDUtMjAuNyAyOC43IDAgMjggMy41IDMzLjUgMjEuMiAzMy41IDE2LjQgMCAyMC4yLTUuNiAyMC4yLTI5Ljd6bTUzLjgtMy44YzAtMjUuNCAzLjMtMzcuOCAxMi4zLTQ1LjggOC44LTguMSAyMi4yLTExLjMgNDUuMS0xMS4zIDQyLjggMCA1NS43IDEyLjggNTUuNyA1NS43bDAgMTEuMS03NS4zIDBjLS4zIDItLjMgNC0uMyA0LjggMCAxNi45IDQuNSAyMS45IDIwLjEgMjEuOSAxMy45IDAgMTcuOS0zIDE3LjktMTMuOWwzNy41IDAgMCAyLjNjMCA5LjgtMi41IDE4LjktNi44IDI0LjctNy4zIDkuOC0xOS42IDEzLjYtNDQuMyAxMy42LTI3LjUgMC00MS42LTMuMy01MC42LTEyLjMtOC41LTguNS0xMS4zLTIxLjMtMTEuMy01MC44em03Ni40LTExLjZjLS4zLTEuOC0uMy0zLjMtLjMtMy44IDAtMTIuMy0zLjMtMTQuNi0xOS42LTE0LjYtMTQuNCAwLTE3LjEgMy0xOC4xIDE1LjFsLS4zIDMuMyAzOC4zIDB6bTU1LjYtNDUuM2wzOC4zIDAtMS44IDE5LjkgLjcgMGM2LjgtMTQuOSAxNC40LTIwLjIgMjkuNy0yMC4yIDEwLjggMCAxOS4xIDMuMyAyMy40IDkuMyA1LjMgNy4zIDYuOCAxNC40IDYuOCAzNCAwIDEuNSAwIDUgLjIgOS4zbC0zNSAwYy4zLTEuOCAuMy0zLjMgLjMtNCAwLTE1LjQtMi0xOS40LTEwLjMtMTkuNC02LjMgMC0xMC44IDMuMy0xMy4xIDkuMy0xIDMtMSA0LjMtMSAxMi4zbDAgNjgtMzguMyAwIDAtMTE4LjUgLjEgMHoiXX0sdWF0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6Imdvb2dsZS1zY2hvbGFyIixpY29uOls1MTIsNTEyLFtdLCJlNjNiIiwiTTM5MC45IDI5OC41czAgLjEgLjEgLjFjOS4yIDE5LjQgMTQuNCA0MS4xIDE0LjQgNjQtLjEgODIuNS02Ni45IDE0OS40LTE0OS40IDE0OS40UzEwNi43IDQ0NS4xIDEwNi43IDM2Mi43YzAtMjIuOSA1LjItNDQuNiAxNC40LTY0IDEuNy0zLjYgMy42LTcuMiA1LjYtMTAuNyA0LjQtNy42IDkuNC0xNC43IDE1LTIxLjMgMjcuNC0zMi42IDY4LjUtNTMuMyAxMTQuNC01My4zIDMzLjYgMCA2NC42IDExLjEgODkuNiAyOS45IDkuMSA2LjkgMTcuNCAxNC43IDI0LjggMjMuNSA1LjYgNi42IDEwLjYgMTMuOCAxNSAyMS4zIDIgMy40IDMuOCA3IDUuNSAxMC41bC0uMS0uMXptMjYuNC0xOC44Yy0zMC4xLTU4LjQtOTEtOTguNC0xNjEuMy05OC40cy0xMzEuMiA0MC0xNjEuMyA5OC40bC05NC43LTc3IDI1Ni0yMDIuNyAyNTYgMjAyLjctOTQuNyA3Ny4xIDAtLjF6Il19LHBhdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJ5YXJuIixpY29uOls1MTIsNTEyLFtdLCJmN2UzIiwiTTQwMS45IDM0NS4yYy0zOSA5LjMtNDguNCAzMi4xLTEwNCA0Ny40IDAgMC0yLjcgNC0xMC40IDUuOC0xMy40IDMuMy02My45IDYtNjguNSA2LjEtMTIuNCAuMS0xOS45LTMuMi0yMi04LjItNi40LTE1LjMgOS4yLTIyIDkuMi0yMi04LjEtNS05LTkuOS05LjgtOC4xLTIuNCA1LjgtMy42IDIwLjEtMTAuMSAyNi41LTguOCA4LjktMjUuNSA1LjktMzUuMyAuOC0xMC44LTUuNyAuOC0xOS4yIC44LTE5LjJzLTUuOCAzLjQtMTAuNS0zLjZjLTYtOS4zLTE3LjEtMzcuMyAxMS41LTYyLTEuMy0xMC4xLTQuNi01My43IDQwLjYtODUuNiAwIDAtMjAuNi0yMi44LTEyLjktNDMuMyA1LTEzLjQgNy0xMy4zIDguNi0xMy45IDUuNy0yLjIgMTEuMy00LjYgMTUuNC05LjEgMjAuNi0yMi4yIDQ2LjgtMTggNDYuOC0xOHMxMi40LTM3LjggMjMuOS0zMC40YzMuNSAyLjMgMTYuMyAzMC42IDE2LjMgMzAuNnMxMy42LTcuOSAxNS4xLTVjOC4yIDE2IDkuMiA0Ni41IDUuNiA2NS4xLTYuMSAzMC42LTIxLjQgNDcuMS0yNy42IDU3LjUtMS40IDIuNCAxNi41IDEwIDI3LjggNDEuMyAxMC40IDI4LjYgMS4xIDUyLjcgMi44IDU1LjMgLjggMS40IDEzLjcgLjggMzYuNC0xMy4yIDEyLjgtNy45IDI4LjEtMTYuOSA0NS40LTE3IDE2LjctLjUgMTcuNiAxOS4yIDQuOSAyMi4yek04IDI1NmEyNDggMjQ4IDAgMSAxIDQ5NiAwIDI0OCAyNDggMCAxIDEgLTQ5NiAwem00MTYuNyA3NS4yYy0xLjctMTMuNi0xMy4yLTIzLTI4LTIyLjgtMjIgLjMtNDAuNSAxMS43LTUyLjggMTkuMi00LjggMy04LjkgNS4yLTEyLjQgNi44IDMuMS00NC41LTIyLjUtNzMuMS0yOC43LTc5LjQgNy44LTExLjMgMTguNC0yNy44IDIzLjQtNTMuMiA0LjMtMjEuNyAzLTU1LjUtNi45LTc0LjUtMS42LTMuMS03LjQtMTEuMi0yMS03LjQtOS43LTIwLTEzLTIyLjEtMTUuNi0yMy44LTEuMS0uNy0yMy42LTE2LjQtNDEuNCAyOC0xMi4yIC45LTMxLjMgNS4zLTQ3LjUgMjIuOC0yIDIuMi01LjkgMy44LTEwLjEgNS40bC4xIDBjLTguNCAzLTEyLjMgOS45LTE2LjkgMjIuMy02LjUgMTcuNCAuMiAzNC42IDYuOCA0NS43LTE3LjggMTUuOS0zNyAzOS44LTM1LjcgODIuNS0zNCAzNi0xMS44IDczLTUuNiA3OS42LTEuNiAxMS4xIDMuNyAxOS40IDEyIDIzLjggMTIuNiA2LjcgMzAuMyA5LjYgNDMuOSAyLjggNC45IDUuMiAxMy44IDEwLjEgMzAgMTAuMSA2LjggMCA1OC0yLjkgNzIuNi02LjUgNi44LTEuNiAxMS41LTQuNSAxNC42LTcuMSA5LjgtMy4xIDM2LjgtMTIuMyA2Mi4yLTI4LjcgMTgtMTEuNyAyNC4yLTE0LjIgMzcuNi0xNy40IDEyLjktMy4yIDIxLTE1LjEgMTkuNC0yOC4yeiJdfSxoYXQ9e3ByZWZpeDoiZmFiIixpY29uTmFtZToic3RhY2stb3ZlcmZsb3ciLGljb246WzM4NCw1MTIsW10sImYxNmMiLCJNMjkxIDMxMWwtMTk1LjctNDEuMy04LjIgMzkuMyAxOTUuNyA0MSA4LjItMzl6bTUxLTg3TDE4OC41IDk1LjcgMTYzIDEyNi41IDMxNi41IDI1NC44IDM0MiAyMjR6bS0zMS4yIDM5LjdMMTI5LjUgMTc5IDExMi44IDIxNS41IDI5NCAzMDAgMzEwLjggMjYzLjd6TTI2Mi4zIDMybC0zMiAyNCAxMTkuMyAxNjAuMyAzMi0yNC0xMTkuMy0xNjAuM3ptMjAuNSAzMjhsLTIwMCAwIDAgMzkuNyAyMDAgMCAwLTM5Ljd6bTM5LjcgODBsLTI3OS41IDAgMC0xMjAtNDAgMCAwIDE2MCAzNTkuNSAwIDAtMTYwLTQwIDAgMCAxMjB6Il19LGZhdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJibHVldG9vdGgiLGljb246WzM4NCw1MTIsW10sImYyOTMiLCJNMjYwLjYgMTcxLjFsLTQyLjkgNDIuOS0uMy04NiA0My4yIDQzLjF6TTIxNy40IDM5MC45bDQzLjEtNDMuMS00Mi45LTQyLjktLjIgODZ6TTM4NCAyNTkuNEMzODQgNDY1IDMxMi4xIDUxMiAxOTguOSA1MTJTMCA0NjUgMCAyNTkuNCA4My40IDAgMTk2LjYgMCAzODQgNTMuOSAzODQgMjU5LjR6bS0xNTguNSAwbDc5LjQtODguNi0xMjUuMS0xMzQuMyAwIDE3Ni45LTczLjgtNzMuOC0yNyAyNi45IDkyLjcgOTMtOTIuNyA5MyAyNi45IDI2LjkgNzMuOC03My44IDIuMyAxNzAgMTI3LjQtMTI3LjUtODMuOS04OC43eiJdfSxtYXQ9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiY3JlYXRpdmUtY29tbW9ucy1uYy1qcCIsaWNvbjpbNTEyLDUxMixbXSwiZjRlYSIsIk0yNTUuNyA4QzExMS42IDggOCAxMjQuOCA4IDI1NiA4IDM5Mi40IDExOS44IDUwNCAyNTUuNyA1MDQgMzg1LjkgNTA0IDUwNCA0MDMuMiA1MDQgMjU2IDUwNCAxMTcuMiAzOTYuNSA4IDI1NS43IDh6bS42IDQ1MC43Yy0xMTIgMC0yMDMuNi05Mi41LTIwMy42LTIwMi43IDAtMjEuMSAzLTQxLjIgOS02MC4zbDEyNyA1Ni41LTI3LjkgMCAwIDM4LjYgNTguMSAwIDUuNyAxMS44IDAgMTguNy02My44IDAgMCAzOC43IDYzLjggMCAwIDU2IDYxLjcgMCAwLTU2IDY0LjIgMCAwLTM1LjcgODEgMzYuMWMtMS41IDIuMi01Ny4xIDk4LjMtMTc1LjIgOTguM3ptODcuNi0xMzcuM2wtNTcuNiAwIDAtMTguNyAyLjktNS42IDU0LjcgMjQuM3ptNi41LTUxLjRsMC0xNy44LTM4LjYgMCA2My0xMTYtNjUuOCAwLTQzLjQgOTYtMjMtMTAuMi0zOS42LTg1LjctNjUuOCAwIDI3LjMgNTEtODEuOS0zNi41YzI3LjgtNDQuMSA4Mi42LTk4LjEgMTczLjctOTguMSAxMTIuOCAwIDIwMyA5MCAyMDMgMjAzLjQgMCAyMS0yLjcgNDAuNi03LjkgNTlMMzUwLjQgMjcweiJdfSxnYXQ9e3ByZWZpeDoiZmFiIixpY29uTmFtZToicmVkZGl0IixpY29uOls1MTIsNTEyLFtdLCJmMWExIiwiTTAgMjU2QzAgMTE0LjYgMTE0LjYgMCAyNTYgMFM1MTIgMTE0LjYgNTEyIDI1NiAzOTcuNCA1MTIgMjU2IDUxMkwzNy4xIDUxMmMtMTMuNyAwLTIwLjUtMTYuNS0xMC45LTI2LjJMNzUgNDM3QzI4LjcgMzkwLjcgMCAzMjYuNyAwIDI1NnpNMzQ5LjYgMTUzLjZjMjMuNiAwIDQyLjctMTkuMSA0Mi43LTQyLjdzLTE5LjEtNDIuNy00Mi43LTQyLjdjLTIwLjYgMC0zNy44IDE0LjYtNDEuOCAzNC0zNC41IDMuNy02MS40IDMzLTYxLjQgNjguNGwwIC4yYy0zNy41IDEuNi03MS44IDEyLjMtOTkgMjkuMS0xMC4xLTcuOC0yMi44LTEyLjUtMzYuNS0xMi41LTMzIDAtNTkuOCAyNi44LTU5LjggNTkuOCAwIDI0IDE0LjEgNDQuNiAzNC40IDU0LjEgMiA2OS40IDc3LjYgMTI1LjIgMTcwLjYgMTI1LjJzMTY4LjctNTUuOSAxNzAuNi0xMjUuM2MyMC4yLTkuNiAzNC4xLTMwLjIgMzQuMS01NCAwLTMzLTI2LjgtNTkuOC01OS44LTU5LjgtMTMuNyAwLTI2LjMgNC42LTM2LjQgMTIuNC0yNy40LTE3LTYyLjEtMjcuNy0xMDAtMjkuMWwwLS4yYzAtMjUuNCAxOC45LTQ2LjUgNDMuNC00OS45IDQuNCAxOC44IDIxLjMgMzIuOCA0MS41IDMyLjhsLjEgLjJ6TTE3Ny4xIDI0Ni45YzE2LjcgMCAyOS41IDE3LjYgMjguNSAzOS4zcy0xMy41IDI5LjYtMzAuMyAyOS42LTMxLjQtOC44LTMwLjQtMzAuNSAxNS40LTM4LjMgMzIuMS0zOC4zbC4xLS4xem0xOTAuMSAzOC4zYzEgMjEuNy0xMy43IDMwLjUtMzAuNCAzMC41cy0yOS4zLTcuOS0zMC4zLTI5LjYgMTEuOC0zOS4zIDI4LjUtMzkuMyAzMS4yIDE2LjYgMzIuMSAzOC4zbC4xIC4xem0tNDguMSA1Ni43Yy0xMC4zIDI0LjYtMzQuNiA0MS45LTYzIDQxLjlzLTUyLjctMTcuMy02My00MS45Yy0xLjItMi45IC44LTYuMiAzLjktNi41IDE4LjQtMS45IDM4LjMtMi45IDU5LjEtMi45czQwLjcgMSA1OS4xIDIuOWMzLjEgLjMgNS4xIDMuNiAzLjkgNi41eiJdfSxiYXQ9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiY29ubmVjdGRldmVsb3AiLGljb246WzU3Niw1MTIsW10sImYyMGUiLCJNNTUwLjggMjQxbC01MC4xLTg2LjhjMS4xLTIuMSAxLjktNC42IDEuOS03LjIgMC04LTYuNy0xNC43LTE0LjctMTVMNDMyLjQgMzYuMWMuNS0xLjYgMS4xLTMuMiAxLjEtNC44IDAtOC42LTctMTUuMy0xNS4zLTE1LjMtNC44IDAtOC44IDIuMS0xMS44IDUuNmwtMTA2LjYgMGMtMi43LTMuNS02LjctNS42LTExLjUtNS42cy04LjggMi4xLTExLjUgNS42bC0xMDYuMSAwYy0yLjktMy41LTctNS42LTExLjgtNS42LTguMyAwLTE1LjMgNi43LTE1LjMgMTUuMyAwIDEuNiAuNSAzLjUgMS4xIDQuOGwtNTYgOTcuMmMtNS40IDIuNC05LjEgNy41LTkuMSAxMy43IDAgLjUgLjMgMS4xIC4zIDEuNkwyNi42IDI0MC43Yy03LjIgMS4zLTEyLjYgNy41LTEyLjYgMTUgMCA3LjIgNS4xIDEzLjQgMTIuMSAxNWw1NS4yIDk1LjRjLS41IDEuNi0uOCAyLjktLjggNC44IDAgNy4yIDUuMSAxMy40IDEyLjEgMTQuN2w1MS43IDg5LjdjLS41IDEuNi0xLjEgMy41LTEuMSA1LjQgMCA4LjYgNyAxNS4zIDE1LjMgMTUuMyA0LjggMCA4LjgtMi4xIDExLjUtNS40bDEwNi45IDBjMi43IDMuMiA3IDUuNCAxMS41IDUuNHM4LjgtMi4xIDExLjUtNS40bDEwNy4xIDBjMi43IDIuOSA2LjcgNC44IDExIDQuOCA4LjYgMCAxNS4zLTcgMTUuMy0xNS4zIDAtMS42LS4zLTIuOS0uOC00LjNsNTEuNy05MC4zYzctMS4zIDEyLjEtNy41IDEyLjEtMTQuNyAwLTEuNi0uMy0zLjItLjgtNC44bDU0LjktOTUuNGM3LTEuMyAxMi4zLTcuNSAxMi4zLTE1IDAtNy4yLTUuMS0xMy40LTExLjgtMTQuN3ptLTM5NyAyMDkuN2wtNDMuNy03NS44IDQzLjcgMCAwIDc1Ljh6bTAtODMuOGwtNDMuNyAwYy0uMy0xLjEtLjgtMi4xLTEuMy0zLjJsNDUtNDcuNCAwIDUwLjZ6bTAtNjIuNGwtNTAuNCA1My4zYy0xLjMtLjUtMi43LTEuMy00LTEuNkw0My43IDI1OS44Yy41LTEuMyAuNS0yLjcgLjUtNHMwLTIuNC0uMy0zLjVsNTItOTBjMi43LS4zIDUuNC0xLjEgNy44LTIuN2w1MC4xIDUyIDAgOTIuOXptMC0xMDIuM0wxMDggMTU0LjhjMS4zLTIuMSAyLjEtNC44IDIuMS03LjggMC0uMy0uMy0uOC0uMy0xLjFsNDMuOS0xNS44IDAgNzIuMXptMC04MC42bC00My43IDE1LjggNDMuNy03NS41IDAgNTkuN3ptMzI2LjUgMzkuMWwuOCAxLjMtMzUuNCAxNjcuMS02My44LTY3LjIgOTgtMTAxLjUgLjMgLjN6TTI5Mi4xIDM1NS4xbDExLjUgMTEuOC0yMi44IDAgMTEuMy0xMS44em0tLjMtMTEuM2wtODMuMy04NS40IDc5LjYtODQuNCA4MyA4Ny42LTc5LjMgODIuMnptNS40IDUuOWw3OS4zLTgyLjIgNjcuNSA3MS4zLTUuOSAyOC4xLTEyNCAwLTE2LjktMTcuMXpNNDEwLjcgNDQuNGMxLjEgLjUgMi4xIDEuMSAzLjUgMS4zbDU3LjkgMTAwLjcgMCAuNWMwIDIuOSAuOCA1LjYgMi4xIDcuOGwtOTcuNSAxMDEuMi04My04Ny42IDExNy4xLTEyNHptLTkuMS0yLjFsLTExMy42IDEyMC4zLTU3LjEtNjAuMyAxNjYuMy02MCA0LjMgMHptLTEyMy41IDBjMi43IDIuNyA2LjIgNC4zIDEwLjIgNC4zczcuNS0xLjYgMTAuMi00LjNsNzUgMC0xNDguNCA1My42LTUwLjktNTMuNiAxMDMuOSAwek0xNjEuOSA0Ny45bDEuMS0yLjFjLjktLjIgMS44LS41IDIuNy0uOGw1MS4yIDUzLjgtNTQuOSAxOS44IDAtNzAuN3ptMCA3OS4zbDYwLjgtMjIgNTkuNyA2My4yLTc5LjYgODQuMS00MS00Mi4xIDAtODMuM3ptMCA5Mi43bDM2LjQgMzcuOC0zNi40IDM4LjMgMC03Ni4xem0wIDg3LjlsNDIuMS00NC41IDgyLjggODYtMTcuMSAxNy43LTEwNy43IDAgMC01OS4yem03IDE2Mi4xYy0xLjYtMS42LTMuNS0yLjctNS45LTMuNWwtMS4xLTEuNiAwLTg5LjcgOTkuOSAwLTkxLjYgOTQuOC0xLjMgMHptMTI5LjkgMGMtMi43LTIuNC02LjQtNC4zLTEwLjQtNC4zcy03LjggMS45LTEwLjQgNC4zbC05Ni40IDAgOTEuNi05NC44IDM4LjMgMCA5MS42IDk0LjgtMTA0LjIgMHptMTIwLTExLjhsLTQuMyA3LjVjLTEuMyAuMy0yLjQgLjgtMy41IDEuM2wtODkuMi05MS45IDExNC40IDAtMTcuNCA4M3ptMTIuOS0yMi4ybDEyLjktNjAuOCAyMiAwLTM0LjggNjAuOHptMzQuOC02OC44bC0yMC40IDAgNC42LTIxLjIgMTcuMSAxOC4yYy0uNSAuOC0xLjEgMS45LTEuMyAyLjl6bTY2LjItMTA3LjRsLTU1LjQgOTYuN2MtMS4zIC41LTIuNyAxLjEtNCAxLjlsLTIwLjYtMjIgMzQuNi0xNjMuOSA0NS44IDc5LjNjLS4zIDEuMy0uOCAyLjctLjggNC4zIDAgMS4zIC4zIDIuNCAuNSAzLjd6Il19LHZhdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJyZXNlYXJjaGdhdGUiLGljb246WzQ0OCw1MTIsW10sImY0ZjgiLCJNMCAzMmwwIDQ0OCA0NDggMCAwLTQ0OC00NDggMHpNMjYyLjIgMzY2LjRjLTYuNiAzLTMzLjIgNi01MC0xNC4yLTkuMi0xMC42LTI1LjMtMzMuMy00Mi4yLTYzLjYtOC45IDAtMTQuNyAwLTIxLjQtLjZsMCA0Ni40YzAgMjMuNSA2IDIxLjIgMjUuOCAyMy45bDAgOC4xYy02LjktLjMtMjMuMS0uOC0zNS42LS44LTEzLjEgMC0yNi4xIC42LTMzLjYgLjhsMC04LjFjMTUuNS0yLjkgMjItMS4zIDIyLTIzLjlsMC0xMDkuNGMwLTIyLjYtNi40LTIxLTIyLTIzLjlsMC04LjFjMjUuOCAxIDUzLjEtLjYgNzAuOS0uNiAzMS43IDAgNTUuOSAxNC40IDU1LjkgNDUuNiAwIDIxLjEtMTYuNyA0Mi4yLTM5LjIgNDcuNSAxMy42IDI0LjIgMzAgNDUuNiA0Mi4yIDU4LjkgNy4yIDcuOCAxNy4yIDE0LjcgMjcuMiAxNC43bDAgNy4zem0yMi45LTEzNWMtMjMuMyAwLTMyLjItMTUuNy0zMi4yLTMyLjJsMC0zMi4yYzAtMTIuMiA4LjgtMzAuNCAzNC0zMC40czMwLjQgMTcuOSAzMC40IDE3LjlsLTEwLjcgNy4ycy01LjUtMTIuNS0xOS43LTEyLjVjLTcuOSAwLTE5LjcgNy4zLTE5LjcgMTkuN2wwIDI2LjhjMCAxMy40IDYuNiAyMy4zIDE3LjkgMjMuMyAxNC4xIDAgMjEuNS0xMC45IDIxLjUtMjYuOGwtMTcuOSAwIDAtMTAuNyAzMC40IDBjMCAyMC41IDQuNyA0OS45LTM0IDQ5Ljl6TTE2OC42IDI3Ni4xYy05LjQgMC0xMy42LS4zLTIwLS44bDAtNjkuN2M2LjQtLjYgMTUtLjYgMjIuNS0uNiAyMy4zIDAgMzcuMiAxMi4yIDM3LjIgMzQuNSAwIDIxLjktMTUgMzYuNi0zOS43IDM2LjZ6Il19LHhhdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJzaWduYWwtbWVzc2VuZ2VyIixpY29uOls1MTIsNTEyLFtdLCJlNjYzIiwiTTI1NiAwYy0xMy4zIDAtMjYuMyAxLTM5LjEgM2wzLjcgMjMuN0MyMzIuMSAyNC45IDI0NCAyNCAyNTYgMjRzMjMuOSAuOSAzNS40IDIuN0wyOTUuMSAzQzI4Mi4zIDEgMjY5LjMgMCAyNTYgMHptNjAuOCA3LjNsLTUuNyAyMy4zYzIzLjQgNS43IDQ1LjQgMTQuOSA2NS40IDI3LjFsMTIuNS0yMC41Yy0yMi4xLTEzLjQtNDYuNC0yMy42LTcyLjItMjkuOXptNzYuNCA2MS42YzE5LjEgMTQgMzYgMzAuOSA1MC4xIDUwLjFsMTkuNC0xNC4yQzQ0NyA4My42IDQyOC40IDY1IDQwNy4zIDQ5LjVMMzkzLjEgNjguOHptODEuNyA1NC4ybC0yMC41IDEyLjVjMTIuMiAyMCAyMS40IDQyIDI3LjEgNjUuNGwyMy4zLTUuN2MtNi4zLTI1LjgtMTYuNS01MC4xLTI5LjktNzIuMnptMTAuNSA5Ny41YzEuOCAxMS41IDIuNyAyMy40IDIuNyAzNS40cy0uOSAyMy45LTIuNyAzNS40bDIzLjcgMy43YzEuOS0xMi43IDMtMjUuOCAzLTM5LjFzLTEtMjYuMy0zLTM5LjFsLTIzLjcgMy43em0tMzEgMTU1LjlsMjAuNSAxMi41YzEzLjQtMjIuMSAyMy42LTQ2LjQgMjkuOS03Mi4ybC0yMy4zLTUuN2MtNS43IDIzLjQtMTQuOSA0NS40LTI3LjEgNjUuNHptOC4yIDMwLjhsLTE5LjQtMTQuMmMtMTQgMTkuMS0zMC45IDM2LTUwLjEgNTAuMWwxNC4yIDE5LjRjMjEuMS0xNS41IDM5LjgtMzQuMSA1NS4yLTU1LjJ6bS04Ni4xIDQ3Yy0yMCAxMi4yLTQyIDIxLjQtNjUuNCAyNy4xbDUuNyAyMy4zYzI1LjgtNi4zIDUwLjEtMTYuNSA3Mi4yLTI5LjlsLTEyLjUtMjAuNXpNMjk1LjEgNTA5bC0zLjctMjMuN0MyNzkuOSA0ODcuMSAyNjggNDg4IDI1NiA0ODhzLTIzLjktLjktMzUuNC0yLjdMMjE2LjkgNTA5YzEyLjcgMS45IDI1LjggMyAzOS4xIDNzMjYuMy0xIDM5LjEtM3ptLTk0LjEtMjcuNmMtMTcuNi00LjMtMzQuNC0xMC42LTUwLjEtMTguNmwtNy44LTQtMzIuOCA3LjcgNS41IDIzLjQgMjQuMy01LjdjMTcuNCA4LjkgMzUuOSAxNS44IDU1LjMgMjAuNWw1LjctMjMuM3pNOTUuNCA0OTQuNkw5MCA0NzEuMyA0OC4zIDQ4MWMtMTAuNCAyLjQtMTkuNy02LjktMTcuMy0xNy4zbDkuNy00MS42LTIzLjQtNS41LTkuNyA0MS42QzEuMiA0ODYgMjYgNTEwLjggNTMuOCA1MDQuNGw0MS42LTkuN3ptLTUwLTkyLjlsNy43LTMyLjgtNC03LjhjLTgtMTUuNy0xNC4zLTMyLjUtMTguNi01MC4xTDcuMyAzMTYuN0MxMiAzMzYuMSAxOC45IDM1NC43IDI3LjcgMzcybC01LjcgMjQuMyAyMy40IDUuNXpNMyAyOTUuMWwyMy43LTMuN0MyNC45IDI3OS45IDI0IDI2OCAyNCAyNTZzLjktMjMuOSAyLjctMzUuNEwzIDIxNi45QzEgMjI5LjcgMCAyNDIuNyAwIDI1NnMxIDI2LjMgMyAzOS4xem0yNy42LTk0LjFjNS43LTIzLjQgMTQuOS00NS40IDI3LjEtNjUuNEwzNy4yIDEyMy4xYy0xMy40IDIyLjEtMjMuNiA0Ni40LTI5LjkgNzIuMmwyMy4zIDUuN3ptMTguOS05Ni4ybDE5LjQgMTQuMmMxNC0xOS4xIDMwLjktMzYgNTAuMS01MC4xTDEwNC43IDQ5LjVDODMuNiA2NSA2NSA4My42IDQ5LjUgMTA0Ljd6bTg2LjEtNDdjMjAtMTIuMiA0Mi0yMS40IDY1LjQtMjcuMUwxOTUuMiA3LjNjLTI1LjggNi4zLTUwLjEgMTYuNS03Mi4yIDI5LjlsMTIuNSAyMC41ek0yNTYgNDY0YzExNC45IDAgMjA4LTkzLjEgMjA4LTIwOFMzNzAuOSA0OCAyNTYgNDggNDggMTQxLjEgNDggMjU2YzAgMzYuNCA5LjQgNzAuNyAyNS44IDEwMC41IDEuNiAyLjkgMi4xIDYuMiAxLjQgOS40bC0yMS42IDkyLjUgOTIuNS0yMS42YzMuMi0uNyA2LjUtLjIgOS40IDEuNCAyOS44IDE2LjUgNjQgMjUuOCAxMDAuNSAyNS44eiJdfSx5YXQ9e3ByZWZpeDoiZmFiIixpY29uTmFtZToieGluZyIsaWNvbjpbMzg0LDUxMixbXSwiZjE2OCIsIk0xNjIuNyAyMTBjLTEuOCAzLjMtMjUuMiA0NC40LTcwLjEgMTIzLjUtNC45IDguMy0xMC44IDEyLjUtMTcuNyAxMi41TDkuOCAzNDZjLTcuNyAwLTEyLjEtNy41LTguNS0xNC40bDY5LTEyMS4zYy4yIDAgLjItLjEgMC0uM0wyNi40IDEzNC40Yy00LjMtNy44IC4zLTE0LjEgOC41LTE0LjFsNjUuMSAwYzcuMyAwIDEzLjMgNC4xIDE4IDEyLjJMMTYyLjcgMjEwek0zODIuNiA0Ni4xbC0xNDQgMjUzIDAgLjMgOTEuNiAxNjYuNmMzLjkgNy4xIC4yIDE0LjEtOC41IDE0LjFsLTY1LjIgMGMtNy42IDAtMTMuNi00LTE4LTEyLjJMMTQ2LjEgMjk5LjRjMy4zLTUuOCA1MS41LTkwLjggMTQ0LjgtMjU1LjIgNC42LTguMSAxMC40LTEyLjIgMTcuNS0xMi4ybDY1LjcgMGM4IDAgMTIuMyA2LjcgOC41IDE0LjF6Il19LEhhZT17cHJlZml4OiJmYWIiLGljb25OYW1lOiJzcXVhcmUtanMiLGljb246WzQ0OCw1MTIsWyJqcy1zcXVhcmUiXSwiZjNiOSIsIk00NDggOTZjMC0zNS4zLTI4LjctNjQtNjQtNjRMNjQgMzJDMjguNyAzMiAwIDYwLjcgMCA5NkwwIDQxNmMwIDM1LjMgMjguNyA2NCA2NCA2NGwzMjAgMGMzNS4zIDAgNjQtMjguNyA2NC02NGwwLTMyMHpNMTgwLjkgNDQ0LjljLTMzLjcgMC01My4yLTE3LjQtNjMuMi0zOC41TDE1MiAzODUuN2M2LjYgMTEuNyAxMi42IDIxLjYgMjcuMSAyMS42IDEzLjggMCAyMi42LTUuNCAyMi42LTI2LjVsMC0xNDMuMSA0Mi4xIDAgMCAxNDMuN2MwIDQzLjYtMjUuNiA2My41LTYyLjkgNjMuNXptODUuOC00M0wzMDEgMzgyLjFjOSAxNC43IDIwLjggMjUuNiA0MS41IDI1LjYgMTcuNCAwIDI4LjYtOC43IDI4LjYtMjAuOCAwLTE0LjQtMTEuNC0xOS41LTMwLjctMjhsLTEwLjUtNC41Yy0zMC40LTEyLjktNTAuNS0yOS4yLTUwLjUtNjMuNSAwLTMxLjYgMjQuMS01NS42IDYxLjYtNTUuNiAyNi44IDAgNDYgOS4zIDU5LjggMzMuN0wzNjggMjkwYy03LjItMTIuOS0xNS0xOC0yNy4xLTE4LTEyLjMgMC0yMC4xIDcuOC0yMC4xIDE4IDAgMTIuNiA3LjggMTcuNyAyNS45IDI1LjZsMTAuNSA0LjVjMzUuOCAxNS4zIDU1LjkgMzEgNTUuOSA2Ni4yIDAgMzcuOC0yOS44IDU4LjYtNjkuNyA1OC42LTM5LjEgMC02NC40LTE4LjYtNzYuNy00M3oiXX0sd2F0PUhhZSxNYXQ9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiZm9udGljb25zIixpY29uOls0NDgsNTEyLFtdLCJmMjgwIiwiTTAgMzJsMCA0NDggNDQ4IDAgMC00NDgtNDQ4IDB6TTE4NyAxNzIuOWMtMTguNCAwLTE5IDkuOS0xOSAyNy40bDAgMjMuM2MwIDIuNC0zLjUgNC40LS42IDQuNGw2Ny40IDAtMTEuMSAzNy4zLTU1LjcgMCAwIDExMi45YzAgNS44LTIgNi43IDMuMiA3LjNsNDMuNSA0LjEgMCAyNS4xLTEzMC43IDAgMC0yNS43IDIxLjMtMmM1LjItLjYgNi43LTIuMyA2LjctNy45bDAtMTExLjRjMC0yLjMtMi45LTIuMy01LjgtMi4zbC0yMi4yIDAgMC0zNy40IDI4IDAgMC0yMWMwLTQ5LjYgMjYuNS03MCA3Ny4zLTcwIDM0LjEgMCA2NC43IDguMiA2NC43IDUyLjhsLTUwLjcgNi4xYy4zLTE4LjctNC40LTIzLTE2LjMtMjN6bTc0LjMgMjQxLjhsMC0yNS4xIDIwLjQtMi42YzUuMi0uNiA3LjYtMS43IDcuNi03LjNsMC0xMDcuOWMwLTQuMS0yLjktNi43LTYuNy03LjlsLTI0LjItNi40IDYuNy0yOS41IDgwLjIgMCAwIDE1MS43YzAgNS44LTIuNiA2LjQgMi45IDcuM2wxNS43IDIuNiAwIDI1LjEtMTAyLjYgMHptODAuOC0yNTUuNWw5IDMzLjItNy4zIDcuMy0zMS4yLTE2LjYtMzEuMiAxNi42LTcuMy03LjMgOS0zMy4yLTIxLjgtMjQuMiAzLjUtOS42IDI3LjcgMCAxNS41LTI4IDkuMyAwIDE1LjUgMjggMjcuNyAwIDMuNSA5LjYtMjEuOSAyNC4yeiJdfSxrYXQ9e3ByZWZpeDoiZmFiIixpY29uTmFtZToidXBzIixpY29uOlszODQsNTEyLFtdLCJmN2UwIiwiTTEwMy4yIDMwM2MtNS4yIDMuNi0zMi42IDEzLjEtMzIuNi0xOWwwLTEwNC0zMi43IDAgMCAxMDIuNmMwIDc0LjkgODAuMiA1MS4xIDk3LjkgMzlsMC0xNDEuNi0zMi42IDAgMCAxMjN6TTQgNzQuOEw0IDI5NS43YzAgMTAzLjcgNzQuOSAxMzUuMiAxODcuNyAxODQuMSAxMTIuNC00OC45IDE4Ny43LTgwLjIgMTg3LjctMTg0LjFsMC0yMjAuOUMyNjMuMSAxMy4yIDk3LjYgMjUuMiA0IDc0Ljh6TTM2Mi4xIDI5NS43YzAgODYuNi01My4yIDExMy42LTE3MC40IDE2NS4zLTExNy41LTUxLjgtMTcwLjUtNzguNy0xNzAuNS0xNjUuM2wwLTEyNi40YzEwMi4zLTkzLjggMjMxLjYtMTAwIDM0MC45LTg5LjhsMCAyMTYuMnpNMTUyLjUgMTg4LjNsMCAyMTIuOCAzMi43IDAgMC02OC43YzI0LjQgNy4zIDcxLjctMi42IDcxLjctNzguNSAwLTk3LjQtODAuNy04MC45LTEwNC40LTY1LjZ6bTMyLjcgMTE3LjNsMC0xMDAuM2M4LjQtNC4yIDM4LjQtMTIuNyAzOC40IDQ5LjMgMCA2Ny45LTM2LjQgNTEuOC0zOC40IDUxem03OS4xLTg2LjRjLjEgNDcuMyA1MS42IDQyLjUgNTIuMiA3MC40IC42IDIzLjUtMzAuNCAyMy01MC44IDQuOWwwIDMwLjFjMzYuMiAyMS41IDgxLjkgOC4xIDgzLjItMzMuNSAxLjctNTEuNS01NC4xLTQ2LjYtNTMuNC03My4yIC42LTIwLjMgMzAuNi0yMC41IDQ4LjUtMi4ybDAtMjguNGMtMjguNS0yMi03OS45LTkuMi03OS43IDMxLjl6Il19LFNhdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJhbWF6b24tcGF5IixpY29uOls2NDAsNTEyLFtdLCJmNDJjIiwiTTE0IDMyNS4zYzIuMy00LjIgNS4yLTQuOSA5LjctMi41IDEwLjQgNS42IDIwLjYgMTEuNCAzMS4yIDE2LjcgNDAuNiAyMC4yIDgzLjMgMzUuOCAxMjcuNCA0Ni4zIDIwLjggNSA0MS45IDkgNjMuMiAxMS44IDMxLjUgNC4yIDYzLjIgNiA5NSA1LjIgMTcuNC0uNCAzNC44LTEuOCA1Mi4xLTMuOCA1Ni4yLTYuNiAxMTEuMS0yMSAxNjMuMy00Mi44IDIuOS0xLjIgNS45LTIgOS4xLTEuMiA2LjcgMS44IDkgOSA0LjEgMTMuOS0zIDIuNy02LjIgNS4yLTkuNiA3LjQtMzAuNyAyMS4xLTY0LjIgMzYuNC05OS42IDQ3LjktMjQuNSA3LjktNDkuNiAxMy44LTc1LjEgMTcuNi0xNy42IDIuNy0zNS40IDQuMy01My4yIDQuOC0uOCAwLTEuNyAuMi0yLjUgLjNsLTIxLjEgMGMtLjgtLjEtMS43LS4yLTIuNS0uMy0zLjYtLjItNy4yLS4zLTEwLjctLjQtMTYuOS0uOC0zMy43LTIuNS01MC40LTUuMy0yNy40LTQuNS01NC4zLTExLjUtODAuNC0yMC45LTUzLjctMTkuNC0xMDMuMS00OC45LTE0NS42LTg3LTEuOC0xLjYtMy0zLjgtNC40LTUuN2wwLTJ6TTE3MiA2NS4xbC00LjMgLjZjLTEzLjggMS43LTI2LjggNi45LTM4IDE1LjEtMi40IDEuNy00LjYgMy41LTcuMSA1LjQtLjItLjQtLjMtLjktLjQtMS40LS40LTIuNy0uOC01LjUtMS4zLTguMi0uNy00LjYtMy02LjYtNy42LTYuNmwtMTEuNSAwYy02LjkgMC04LjIgMS4zLTguMiA4LjJsMCAyMDkuM2MwIDEgMCAyIC4xIDMgLjIgMyAyIDQuOSA0LjkgNSA3IC4xIDE0LjEgLjEgMjEuMSAwIDIuOSAwIDQuNy0yIDUtNSAuMS0xIC4xLTIgLjEtM2wwLTcyLjRjMS4xIC45IDEuNyAxLjQgMi4yIDEuOSAxNy45IDE0LjkgMzguNSAxOS44IDYxIDE1LjQgMjAuNC00IDM0LjYtMTYuNSA0My44LTM0LjkgNy0xMy45IDkuOS0yOC43IDEwLjMtNDQuMSAuNS0xNy4xLTEuMi0zMy45LTguMS00OS44LTguNS0xOS42LTIyLjYtMzIuNS00My45LTM2LjktMy4yLS43LTYuNS0xLTkuOC0xLjUtMi44LS4xLTUuNS0uMS04LjMtLjF6TTEyNC42IDEwN2MtLjEtLjcgLjEtMS4zIC40LTEuOXMuOC0xLjEgMS4zLTEuNGMxMy43LTkuNSAyOC44LTE0LjUgNDUuNi0xMy4yIDE0LjkgMS4xIDI3LjEgOC40IDMzLjUgMjUuOSAzLjkgMTAuNyA0LjkgMjEuOCA0LjkgMzMgMCAxMC40LS44IDIwLjYtNCAzMC42LTYuOCAyMS4zLTIyLjQgMjkuNC00Mi42IDI4LjUtMTQtLjYtMjYuMi02LTM3LjQtMTMuOS0uNi0uMy0xLS44LTEuMy0xLjRzLS40LTEuMi0uNC0xLjljLjEtMTQuMSAwLTI4LjEgMC00Mi4ycy4xLTI4IDAtNDIuMXpNMzMwLjMgNjUuMWMtMSAuMS0yIC4zLTIuOSAuNC05LjcgLjQtMTkuNCAxLjgtMjguOSA0LjEtNi4xIDEuNi0xMiAzLjgtMTcuOSA1LjgtMy42IDEuMi01LjQgMy44LTUuMyA3LjcgLjEgMy4zLS4xIDYuNiAwIDkuOSAuMSA0LjggMi4xIDYuMSA2LjggNC45IDcuOC0yIDE1LjYtNC4yIDIzLjUtNS43IDEyLjMtMi4zIDI0LjctMy4zIDM3LjItMS40IDYuNSAxIDEyLjYgMi45IDE2LjggOC40IDMuNyA0LjggNS4xIDEwLjUgNS4zIDE2LjQgLjMgOC4zIC4yIDE2LjYgLjMgMjQuOSAwIC41LS4xIC45LS4yIDEuNC0uNS0uMS0uOSAwLTEuMy0uMS0xMC41LTIuNi0yMS4yLTQuMi0zMi00LjktMTEuMy0uNi0yMi41IC4xLTMzLjMgMy45LTEyLjkgNC41LTIzLjMgMTIuMy0yOS40IDI0LjktNC43IDkuOC01LjQgMjAuMi0zLjkgMzAuNyAyIDE0IDkgMjQuOCAyMS40IDMxLjcgMTEuOSA2LjYgMjQuOCA3LjQgMzcuOSA1LjQgMTUuMS0yLjMgMjguNS04LjcgNDAuMy0xOC40IC41LS40IDEtLjggMS42LTEuMSAuNiAzLjggMS4xIDcuNCAxLjggMTEgLjYgMy4xIDIuNSA1LjEgNS40IDUuMiA1LjQgLjEgMTAuOSAuMSAxNi4zIDAgMS4zIDAgMi41LS41IDMuNC0xLjRzMS40LTIuMSAxLjUtMy4zYy4xLS45IC4xLTEuOSAuMS0yLjhsMC0xMDZjMC00LjMtLjMtOC42LS45LTEyLjktMS45LTEyLjktNy40LTIzLjUtMTktMzAuNC02LjctNC0xNC4xLTYtMjEuOC03LjEtMy42LS41LTcuMi0uOC0xMC44LTEuMy0zLjkgLjEtNy45IC4xLTExLjkgLjF6bTM1IDEyNy43YzAgLjYtLjEgMS4yLS4zIDEuN3MtLjcgMS0xLjIgMS4zYy0xMS4yIDguMS0yMy41IDEzLjUtMzcuNCAxNC45LTUuNyAuNi0xMS40IC40LTE2LjgtMS44LTMtMS4xLTUuNi0yLjktNy44LTUuMnMtMy43LTUuMS00LjYtOC4xYy0yLTYuMy0yLTEzLjEtLjEtMTkuNCAyLjUtOC4zIDguNC0xMyAxNi40LTE1LjYgOC0yLjQgMTYuNS0zLjIgMjQuOC0yLjIgOC40IC43IDE2LjYgMi4zIDI1IDMuNCAxLjYgLjIgMi4xIDEgMi4xIDIuNi0uMSA0LjggMCA5LjUgMCAxNC4zcy0uMiA5LjQtLjEgMTQuMXpNNjI1LjIgMzIyLjJjLTEtNS00LjgtNi45LTkuMS04LjMtNi44LTIuMS0xMy45LTMuNS0yMS0zLjktMTMuMS0xLjEtMjYuMy0uNS0zOS4yIDEuOS0xNC4zIDIuNy0yNy45IDcuMy00MCAxNS42LTEuNCAuOS0yLjcgMi4xLTMuNyAzLjUtLjQgLjYtLjYgMS4zLS43IDEuOXMwIDEuNCAuMiAyLjFjLjQgMS41IDIuMSAxLjkgMy42IDEuOCAuNyAwIDEuNSAwIDIuMi0uMSA3LjgtLjggMTUuNS0xLjcgMjMuMy0yLjUgMTEuNC0xLjEgMjIuOS0xLjggMzQuMy0uOSA0LjkgLjQgOS43IDEuMyAxNC40IDIuNyA1LjEgMS40IDcuNCA1LjIgNy42IDEwLjQgLjQgOC0xLjQgMTUuNy0zLjUgMjMuMy00LjEgMTUuNC0xMCAzMC4zLTE1LjggNDUuMS0uNCAxLS44IDItMSAzLS41IDIuOSAxLjIgNC44IDQuMSA0LjEgMS44LS40IDMuNC0xLjMgNC44LTIuNSA0LjUtNC4yIDguOC04LjcgMTIuNy0xMy40IDEyLjgtMTYuNCAyMC4zLTM1LjMgMjQuNy01NS42IC44LTMuNiAxLjQtNy4zIDIuMS0xMC45bDAtMTcuM3pNNDkzLjEgMTk5Yy0xMi45LTM1LjctMjUuOC03MS40LTM4LjctMTA3LjItMi01LjctNC4yLTExLjMtNi4zLTE2LjktMS4xLTIuOS0zLjItNC44LTYuNC00LjgtNy42LS4xLTE1LjItLjItMjIuOS0uMS0yLjUgMC0zLjcgMi0zLjIgNC41IC41IDIuMSAxLjEgNC4xIDEuOSA2LjEgMTkuNiA0OC41IDM5LjMgOTcgNTkuMSAxNDUuNSAxLjcgNC4xIDIuMSA3LjYgLjIgMTEuOC0zLjMgNy4zLTUuOSAxNS05LjMgMjIuMy0zIDYuNS04IDExLjQtMTUuMiAxMy4zLTUgMS4zLTEwLjIgMS43LTE1LjQgMS4xLTIuNS0uMi01LS44LTcuNS0xLTMuNC0uMi01LjEgMS4zLTUuMiA0LjgtLjEgMy4zLS4xIDYuNiAwIDkuOSAuMSA1LjUgMiA4IDcuNCA4LjkgNS42IDEuMSAxMS4yIDEuOCAxNi45IDIgMTcuMSAuNCAzMC43LTYuNSAzOS41LTIxLjQgMy41LTUuOSA2LjYtMTIgOS4yLTE4LjQgMjMuNy01OS44IDQ3LjItMTE5LjcgNzAuNi0xNzkuNiAuNy0xLjggMS4zLTMuNiAxLjYtNS41IC40LTIuOC0uOS00LjQtMy43LTQuNC02LjYtLjEtMTMuMyAwLTE5LjkgMC0xLjctLjEtMy40IC4zLTQuNyAxLjNzLTIuNCAyLjMtMyAzLjljLS41IDEuNC0xLjEgMi43LTEuNiA0LjFsLTM0LjggMTAwYy0yLjUgNy4yLTUuMSAxNC41LTcuNyAyMi4yLS40LTEuMS0uNi0xLjctLjktMi40eiJdfSx6YXQ9e3ByZWZpeDoiZmFiIixpY29uTmFtZToicGFuZG9yYSIsaWNvbjpbMzg0LDUxMixbXSwiZTdkYSIsIk0yMDEuMyAzMkwwIDMyIDAgNDgwIDEyMC4yIDQ4MGMxMS4yIDAgMjAuMy05LjEgMjAuMy0yMC4zbDAtODYuMSAzMC4xIDBjMTQ3LjEgMCAyMDcuMy04Mi45IDIwNy4zLTE3OS45IDAtMTE5LjctOTAuOS0xNjEuOC0xNzYuNS0xNjEuOHoiXX0sQ2F0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6Im9wZW5pZCIsaWNvbjpbNDQ4LDUxMixbXSwiZjE5YiIsIk0yNzEuNSA0MzJsLTY4IDMyQzg4LjUgNDUzLjcgMCAzOTIuNSAwIDMxOC4yIDAgMjQ2LjcgODIuNSAxODcuMiAxOTEuNyAxNzMuOWwwIDQzYy03MS41IDEyLjUtMTI0IDUzLTEyNCAxMDEuMyAwIDUxIDU4LjUgOTMuMyAxMzUuNyAxMDNsMC0zNDAgNjgtMzMuMiAwIDM4NCAuMSAwek00NDggMjkxbC0xMzEuMy0yOC41IDM2LjgtMjAuN2MtMTkuNS0xMS41LTQzLjUtMjAtNzAtMjQuOGwwLTQzYzQ2LjIgNS41IDg3LjcgMTkuNSAxMjAuMyAzOS4zbDM1LTE5LjggOS4yIDk3LjV6Il19LFRhdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJ2c2NvIixpY29uOls1MTIsNTEyLFtdLCJlN2RkIiwiTTM1Ny42IDI1NmMwLTI3LjEtMTAuNi01Mi41LTI5LjctNzEuN3MtNDQuNi0yOS43LTcxLjctMjkuN2wtLjEgMGMtMjcuMSAwLTUyLjYgMTAuNi03MS43IDI5LjdzLTI5LjcgNDQuNi0yOS43IDcxLjdjMCAyNy4xIDEwLjYgNTIuNSAyOS43IDcxLjcgMTkuMiAxOS4yIDQ0LjYgMjkuNyA3MS43IDI5LjdsLjEgMGMyNy4xIDAgNTIuNi0xMC42IDcxLjctMjkuNyAxOS4yLTE5LjIgMjkuNy00NC42IDI5LjctNzEuN3pNMTc2LjMgNDgyLjFjMjMgOC4xIDQ3IDEyLjYgNzEuNiAxMy40bDAtNTkuMWMtMTcuMS0uNy0zMy41LTMuOC00OS04LjlsLTIyLjYgNTQuNnptMTM3LTU0LjZjLTE1LjUgNS4xLTMyIDguMi00OSA4LjlsMCA1OS4xYzI0LjYtLjggNDguNi01LjMgNzEuNi0xMy40bC0yMi42LTU0LjZ6TTkyLjUgNDMxLjJjMjAuMiAxOC45IDQzLjMgMzQgNjguNyA0NWwyMi41LTU0LjVjLTE4LjMtNy45LTM1LjEtMTguOC00OS44LTMxLjlMOTIuNSA0MzEuMnptMjg1LjktNDEuNGMtMTQuNiAxMy4yLTMxLjQgMjQtNDkuOCAzMS45bDIyLjUgNTQuNWMyNS40LTExIDQ4LjQtMjYuMSA2OC43LTQ1bC00MS40LTQxLjR6TTE0NS40IDM3OC4yYzEzLjYgMTIuMSAyOSAyMS45IDQ1LjggMjkgMTggNy42IDM3LjEgMTIgNTYuNyAxMi45bDAtNDYuOGMtMjYuNC0xLjgtNTAuMy0xMi4zLTY5LjEtMjguNmwtMzMuNCAzMy40em0xODgtMzMuNGMtMTguOCAxNi4zLTQyLjcgMjYuOC02OS4xIDI4LjZsMCA0Ni44YzE5LjYtLjkgMzguNy01LjMgNTYuNy0xMi45IDE2LjgtNy4xIDMyLjItMTYuOSA0NS44LTI5bC0zMy40LTMzLjR6TTM4LjUgMzU2LjZjMTAuNyAyMy4yIDI1IDQ0LjMgNDIuNSA2My4xbDQxLjMtNDEuM2MtMTIuNC0xMy40LTIyLjktMjguNi0zMC45LTQ1LjJMMzguNSAzNTYuNnptMzgyLjQtMjMuNWMtOCAxNi42LTE4LjUgMzEuOS0zMC45IDQ1LjJsNDEuMyA0MS4zYzE3LjUtMTguNyAzMS44LTM5LjkgNDIuNS02My4xbC01Mi45LTIzLjV6bS0zMzEtNjljMS4xIDE4LjggNS40IDM3LjIgMTIuOCA1NC41IDcuNSAxNy44IDE4IDM0IDMxLjIgNDguMmwzMy41LTMzLjVjLTE2LjQtMTguOC0yNi45LTQyLjgtMjguNy02OS4ybC00OC44IDB6bTI4My43IDBjLTEuOCAyNi40LTEyLjMgNTAuNC0yOC43IDY5LjJsMzMuNSAzMy41YzEzLjEtMTQuMiAyMy42LTMwLjQgMzEuMi00OC4yIDcuMy0xNy40IDExLjYtMzUuNyAxMi43LTU0LjVsLTQ4LjcgMHptLTM1Ny4xIDBjLjkgMjYuNyA2LjEgNTIuNyAxNS42IDc3LjVMODUgMzE4LjJjLTYuNC0xNy0xMC4zLTM1LjEtMTEuMy01NGwtNTcuMSAwem00MjIuMSAwYy0xIDE4LjktNSAzNy4xLTExLjMgNTRsNTIuOCAyMy41YzkuNS0yNC44IDE0LjctNTAuOCAxNS42LTc3LjVsLTU3LjEgMHpNMzIuMSAxNzAuNGMtOS41IDI0LjgtMTQuNyA1MC44LTE1LjYgNzcuNWw1Ny4xIDBjMS0xOC45IDUtMzcuMSAxMS4zLTU0TDMyLjEgMTcwLjR6bTEwMS43LTI1LjJjLTEzLjEgMTQuMi0yMy42IDMwLjQtMzEuMiA0OC4yLTcuMyAxNy40LTExLjYgMzUuNy0xMi44IDU0LjVsNDguOCAwYzEuOC0yNi40IDEyLjMtNTAuNCAyOC43LTY5LjJsLTMzLjUtMzMuNXptMjExLjEgMzMuNWMxNi40IDE4LjggMjYuOSA0Mi44IDI4LjcgNjkuMmw0OC43IDBjLTEuMS0xOC44LTUuNC0zNy4yLTEyLjctNTQuNS03LjUtMTcuOC0xOC0zNC0zMS4yLTQ4LjJsLTMzLjUgMzMuNXptODIuNCAxNS4yYzYuNCAxNyAxMC4zIDM1LjEgMTEuMyA1NGw1Ny4xIDBjLS45LTI2LjctNi4xLTUyLjctMTUuNi03Ny41bC01Mi44IDIzLjV6TTgxIDkyLjNDNjMuNCAxMTEgNDkuMiAxMzIuMiAzOC41IDE1NS40bDUyLjkgMjMuNWM4LTE2LjYgMTguNS0zMS45IDMwLjktNDUuMkw4MSA5Mi4zem0zMDkgNDEuM2MxMi40IDEzLjQgMjIuOSAyOC42IDMwLjkgNDUuMmw1Mi45LTIzLjVjLTEwLjctMjMuMi0yNS00NC4zLTQyLjUtNjMuMUwzOTAgMTMzLjd6TTI0OCA5MS44Yy0xOS42IC45LTM4LjcgNS4zLTU2LjcgMTIuOS0xNi44IDcuMS0zMi4yIDE2LjktNDUuOCAyOWwzMy40IDMzLjRjMTguOC0xNi4zIDQyLjctMjYuOCA2OS4xLTI4LjZsMC00Ni43em0xNi4zIDQ2LjdjMjYuNCAxLjggNTAuMyAxMi4zIDY5LjEgMjguNmwzMy40LTMzLjRjLTEzLjYtMTIuMS0yOS0yMS45LTQ1LjgtMjktMTgtNy42LTM3LjEtMTItNTYuNy0xMi45bDAgNDYuN3pNMTYxLjIgMzUuOGMtMjUuNCAxMS00OC40IDI2LjEtNjguNyA0NWw0MS40IDQxLjRjMTQuNy0xMy4yIDMxLjQtMjQgNDkuOC0zMS45TDE2MS4yIDM1Ljh6TTMyOC42IDkwLjNjMTguMyA3LjkgMzUuMSAxOC44IDQ5LjggMzEuOWw0MS40LTQxLjRjLTIwLjItMTguOS00My4zLTM0LTY4LjctNDVMMzI4LjYgOTAuM3pNMjQ4IDE2LjRjLTI0LjYgLjgtNDguNiA1LjMtNzEuNiAxMy40bDIyLjYgNTQuNmMxNS41LTUuMSAzMi04LjIgNDktOC45bDAtNTkuMXptMTYuMyA1OS4xYzE3LjEgLjcgMzMuNSAzLjggNDkgOC45bDIyLjYtNTQuNmMtMjMtOC4xLTQ3LTEyLjYtNzEuNi0xMy40bDAgNTkuMXpNNTEyLjIgMjY0LjJsLS4yIDBDNTA3LjggMzk5IDM5OS4yIDUwNy43IDI2NC4zIDUxMS45bDAgLjEtMTYuMyAwIDAtLjFDMTEzLjEgNTA3LjcgNC41IDM5OSAuMiAyNjQuMWwtLjIgMCAwLTE2LjMgLjIgMEM0LjUgMTEzIDExMy4xIDQuMyAyNDggLjFsMC0uMSAxNi4zIDAgMCAuMUMzOTkuMiA0LjMgNTA3LjggMTEzIDUxMiAyNDcuOWwuMiAwIDAgMTYuM3oiXX0sX2F0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6Imdsb2JhbGVha3MiLGljb246WzQ0OCw1MTIsW10sImU4NWQiLCJNNDExLjIgMzIuMmMyMC4yIDAgMzYuOCAxNi42IDM2LjggMzYuOWwwIDM3My44YzAgMjAuMi0xNi42IDM2LjktMzYuOCAzNi45bC05NC40IDAgMjgtNzkuNGMzLjEtOC44LTEuNi0xOC43LTEwLjQtMjEuOC0xLjYtLjUtMi42LTEtNC4yLTFzLTMuNiAwLTUuMiAuNWMtNS4yIDEtOS45IDUuMi0xMS45IDEwLjlsLTYuMiAxNi42IDAtNjcuNWMwLTEwLjktNy44LTE5LjctMTguMi0yMS44bC03LjIgMGMtLjUgMC0xIDAtMS42IC41LS41IDAtMSAuNS0xLjYgLjUtMi42IDEtNS4yIDIuNi03LjIgNC4xbDAtNC4xYzAtNS43LTIuNi0xMC40LTUuNy0xNGwtMS0xYy0xLTEtMi42LTIuMS00LjItMi42bDAtMjYuNWMwLTUuMi00LjEtOS4zLTkuMy05LjNsLTM5LjkgMGMtNi43IDAtMTEuNC03LjMtOC4zLTEzLjVMMjgzLjEgODQuMWMxNC41LTMxLjEgNDUuNi01MS40IDgwLjQtNTEuOWw0Ny43IDB6bS0xNjYgMGMxNy42IDAgMzAuMSAxNi4xIDI4IDMyLjItMi42IDMuNi00LjcgNy44LTYuMiAxMC45TDE4Ni42IDI0MS41Yy04LjggMTguNyA0LjIgNDAgMjQuNCA0MGwzMC42IDAgMCAxNi4xYy03LjggMy4xLTEzIDEwLjktMTMgMTkuN2wwIDMuNmMtMy42LTMuNi04LjgtNS43LTE0LjUtNS43LTExLjkgMC0yMS44IDkuOS0yMS44IDIxLjhsMCAxOS4yLTMuMSAwYy05LjMgMC0xNy4xIDcuOC0xNy4xIDE3LjFsMCAxMDUuOS05NS40IDBjLTQyIDAtNzIuNi00MC41LTYxLjItODEuNSAxLTMuMSA0LjItNS4yIDcuMy00LjdsMjEuMiAwYzI0LjQgMCA0NC42LTIwLjIgNDQuNi00NS4ybDAtNC4yYzAtMjQuOS0xOS43LTQ1LjItNDQuNi00NS4yLS41IDAtMS0uNS0xLTFsOC44LTMyLjdjMi4xLTYuMi0yLjYtMTEuOS04LjgtMTEuOWwtMzMuMiAwYy02LjcgMC0xMS40LTcuMy04LjMtMTMuNUw3Ni43IDg0LjdjMTYuMS0zMi4yIDQ4LjItNTIuNCA4NC01Mi40bDg0LjUgMHpNMTMzLjcgMTQ0LjRjLTEwLjQgMC0xOC43IDguMy0xOC43IDE4LjcgMCA5LjkgOC4zIDE4LjcgMTguNyAxOC43IDEwLjQgMCAxOC43LTguMyAxOC43LTE4LjdzLTguMy0xOC43LTE4LjctMTguN3ptMjAyLjggMGExOC42IDE4LjYgMCAxIDAgLS4yIDM3LjIgMTguNiAxOC42IDAgMSAwIC4yLTM3LjJ6Il19LExhdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJ2ZW5tbyIsaWNvbjpbNjQwLDUxMixbXSwiZTg1YSIsIk02Ny44IDIwMi43YzIuNCA1IDMuOSAxMSAzLjkgMTkuOCAwIDE2LjItMTEuNSAzOS44LTIwLjcgNTQuOWwtOS45LTc5LjctNDEgMy45IDE4LjggMTEyIDQ2LjkgMGMyMC41LTI2LjkgNDUuOC02NS4zIDQ1LjgtOTQuOCAwLTkuMy0xLjktMTYuNi02LjMtMjMuN2wtMzcuNCA3LjV6bTExMy03LjFjLTQyLjggMC02My41IDM3LTYzLjUgNzEuOSAwIDI2LjkgMTIuOCA0OC41IDQ4LjQgNDguNSAxNCAwIDI4LjUtMyAzNy44LTcuNWw1LTMzLjZjLTEzLjIgNi43LTIzLjMgOS4zLTMzLjkgOS4zLTkuNyAwLTE3LjEtNS4yLTE3LjEtMTguMyAyMi0uMiA2MC05LjMgNjAtMzguOCAwLTE4LjMtMTMuMi0zMS41LTM2LjctMzEuNWwwIDB6bS0yMi41IDQ4LjljMS4xLTEyLjkgMTEtMjIgMTguNi0yMiA0LjMgMCA4IDIuNiA4IDcuNyAwIDEwLjgtMTkgMTQuMi0yNi42IDE0LjJsMCAwem0xNTAuMi00OC45Yy0xNS4zIDAtMjYuMSA1LjgtMzQuMyAxMS4ybC0uNC05LjMtMzQuOCAwLTE4LjQgMTE2LjEgNDAuMiAwIDEyLjctODEuNGMzLjUtMS43IDguNi00LjEgMTMuOC00LjEgMy45IDAgNy4xIDEuMyA3LjEgNi41IDAgMi4yLS43IDYtLjkgOGwtMTEuMiA3MS4xIDQwIDAgMTIuMy03Ny41Yy43LTQuMSAxLjMtMTAuMyAxLjMtMTQuNiAwLTE1LjUtNy4xLTI1LjktMjcuNC0yNS45em0xODMuMiAwYy0xNC45IDAtMjUuNyA0LjUtMzcuMiAxMi43LTQuMS03LjMtMTIuMy0xMi43LTI0LjgtMTIuNy0xNC41IDAtMjUuMyA1LjgtMzMuMyAxMS42bC0xLjEtOS43LTM0LjQgMC0xOC40IDExNi4xIDQwLjIgMCAxMi44LTgxLjRjMy41LTEuNyA4LjYtNC4xIDEzLjgtNC4xIDMuOSAwIDcuMSAxLjMgNy4xIDcuMSAwIDEuNS0uNCAzLjktLjYgNS44bC0xMS40IDcyLjYgNDAgMCAxMi43LTgxLjRjMy43LTEuOSA4LjYtNC4xIDEzLjYtNC4xIDMuOSAwIDcuMSAxLjMgNy4xIDcuMSAwIDEuNS0uNCAzLjktLjcgNS44bC0xMS40IDcyLjYgNDAgMCAxMi4zLTc3LjVjLjctNC4xIDEuMy0xMC4zIDEuMy0xNC42IDAtMTUuNS03LjEtMjUuOS0yNy43LTI1LjlsMCAwem0xMDIuMiAwYy00NC43IDAtNjQuMiAzNC4zLTY0LjIgNzAuOSAwIDI3LjggMTEuMiA1MCA0NS4xIDUwIDQ1LjggMCA2NS0zNy41IDY1LTczLjcgMC0yNy40LTEyLjMtNDcuMi00Ni00Ny4yem0tMTMuNCA5MGMtNy4xIDAtMTAuMS02LjctMTAuMS0xNy41IDAtMTQuMiAzLjItNDIgMTktNDIgNy4xIDAgOS41IDYuNSA5LjUgMTUuOSAwIDE0LjItMy41IDQzLjUtMTguNCA0My41eiJdfSxBYXQ9e3ByZWZpeDoiZmFiIixpY29uTmFtZToidWJ1bnR1IixpY29uOls1NzYsNTEyLFtdLCJmN2RmIiwiTTQ2OS4yIDc1YzAtMjAuMS04LTM5LjMtMjIuMi01My41cy0zMy40LTIyLjItNTMuNS0yMi4yLTM5LjMgOC01My41IDIyLjItMjIuMiAzMy40LTIyLjIgNTMuNWMwIDIwLjEgOCAzOS4zIDIyLjEgNTMuNXMzMy40IDIyLjEgNTMuNSAyMi4xIDM5LjMtOCA1My41LTIyLjEgMjIuMS0zMy40IDIyLjEtNTMuNWwuMSAwem0tMzE1IDE2NS43YTc1LjYgNzUuNiAwIDEgMCAtMTUxLjIgMCA3NS42IDc1LjYgMCAxIDAgMTUxLjIgMHpNNTcgMzQ2YzE4LjYgNDYuOSA1MSA4NyA5MyAxMTUuMXM5MS41IDQyLjYgMTQyIDQxLjdjLTE0LjctMTguNi0yMi45LTQxLjUtMjMuMi02NS4yLTYuOC0uOS0xMy4zLTIuMS0xOS41LTMuNC0yNi44LTUuNy01MS45LTE3LjMtNzMuNi0zNHMtMzkuMy0zOC4xLTUxLjctNjIuNWMtMjAuOSA5LjktNDQuNSAxMi44LTY3LjEgOC4ybC4xIC4xem0zOTUuMSA4OS44YTc1LjYgNzUuNiAwIDEgMCAtMTUxLjIgMCA3NS42IDc1LjYgMCAxIDAgMTUxLjIgMHpNNDQ0IDM1MS42YzE4LjUgMTQuOCAzMS42IDM1LjIgMzcuMiA1OC4yIDMzLjMtNDEuMyA1Mi42LTkyLjIgNTQuOC0xNDUuMnMtMTIuNS0xMDUuNC00Mi4yLTE0OS40Yy04LjYgMjEuNS0yNCAzOS42LTQzLjggNTEuNiAxNS40IDI4LjYgMjIuOSA2MC44IDIxLjkgOTMuMnMtMTAuNyA2NC0yOCA5MS42bC4xIDB6TTEwMS4xIDEzNS40YzEyLjQgMi43IDI0LjMgNy41IDM1LjEgMTQuMyAxNi42LTI0LjIgMzguOS00NC4xIDY0LjgtNThTMjU1LjggNzAuNCAyODUuMiA3MGMuMi01LjkgLjktMTEuOSAyLTE3LjcgMy42LTE2LjcgMTEuMS0zMi4zIDIxLjgtNDUuNS00Ny43LTMuOC05NS40IDYtMTM3LjYgMjguNVM5NC4zIDkxLjcgNzAuOCAxMzMuNGMyLjctLjIgNS4zLS4zIDgtLjMgNy41IDAgMTUgLjggMjIuNCAyLjNsLS4xIDB6Il19LERhdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJ2aWFjb2luIixpY29uOlszODQsNTEyLFtdLCJmMjM3IiwiTTM4NCAzMmwtNjQgMC04MC43IDE5Mi05NC41IDAtODAuOC0xOTItNjQgMCA0OCAxMTItNDggMCAwIDQ4IDY4LjUgMCAxMy44IDMyLTgyLjMgMCAwIDQ4IDEwMi44IDAgODkuMiAyMDggODkuMi0yMDggMTAyLjggMCAwLTQ4LTgyLjMgMCAxMy44LTMyIDY4LjUgMCAwLTQ4LTQ4IDAgNDgtMTEyek0xOTIgMzM2bC0yNy02NCA1NCAwLTI3IDY0eiJdfSxFYXQ9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiemhpaHUiLGljb246WzY0MCw1MTIsW10sImY2M2YiLCJNMTcwLjUgMTQ4LjFsMCAyMTcuNSAyMy40IDAgNy43IDI2LjQgNDItMjYuNCA0OS41IDAgMC0yMTcuNS0xMjIuNyAwem05Ny44IDE5My45bC0yNy45IDAtMjcuOSAxNy41LTUuMS0xNy41LTExLjkgMCAwLTE3MC4zIDcyLjggMCAwIDE3MC4zek0xNDkuOCAyNDcuN2wtNTIuMyAwYzEuNy0yNy4xIDIuMi01MS42IDIuMi03My41bDUxLjIgMHMyLTIyLjYtOC42LTIyLjNsLTg4LjUgMGMzLjUtMTMuMSA3LjktMjYuNyAxMy4xLTQwLjcgMCAwLTI0LjEgMC0zMi4zIDIxLjYtMy40IDguOS0xMy4yIDQzLjEtMzAuNyA3OC4xIDUuOS0uNiAyNS40LTEuMiAzNi44LTIyLjIgMi4xLTUuOSAyLjUtNi43IDUuMS0xNC41bDI4LjkgMGMwIDEwLjUtMS4yIDY2LjktMS43IDczLjRsLTUyLjMgMGMtMTEuNyAwLTE1LjYgMjMuNi0xNS42IDIzLjZsNjUuNiAwYy00LjQgNDkuOS0yOCA5MS45LTcwLjggMTI1LjEgMjAuNSA1LjkgNDAuOS0uOSA1MS05LjkgMCAwIDIzLTIwLjkgMzUuNi02OS4zbDU0IDY0LjlzNy45LTI2LjktMS4yLTQwYy03LjYtOC45LTI4LjEtMzMuMS0zNi44LTQxLjhMODcuOSAzMTJjNC40LTE0IDctMjcuNiA3LjktNDAuN2w2MS42IDBzLS4xLTIzLjYtNy42LTIzLjZsMCAwem00MTItMS42YzIwLjgtMjUuNiA0NS01OC42IDQ1LTU4LjZzLTE4LjYtMTQuOC0yNy40LTQuMWMtNiA4LjItMzYuOCA0OC4yLTM2LjggNDguMmwxOS4yIDE0LjR6TTQxMS44IDE4N2MtOS04LjItMjUuOSAyLjEtMjUuOSAyLjFzMzkuNSA1NSA0MS4xIDU3LjRsMTkuNS0xMy43cy0yNS43LTM3LjYtMzQuNy00NS45bDAgMCAwIDB6TTY0MCAyNTguNGMtMTkuOCAwLTEzMC45IC45LTEzMS4xIC45bDAtMTAxYzQuOCAwIDEyLjQtLjQgMjIuOC0xLjIgNDAuOS0yLjQgNzAuMS00IDg3LjgtNC44IDAgMCAxMi4yLTI3LjItLjYtMzMuNC0zLjEtMS4yLTIzLjIgNC42LTIzLjIgNC42cy0xNjUuMiAxNi41LTIzMi40IDE4YzEuNiA4LjggNy42IDE3LjEgMTUuOCAxOS42IDEzLjMgMy41IDIyLjcgMS43IDQ5LjIgLjkgMjQuOC0xLjYgNDMuNy0yLjQgNTYuNS0yLjRsMCA5OS44LTEzMy41IDBzMi44IDIyLjMgMjUuNSAyMi45bDEwNy45IDAgMCA3MC45YzAgMTQtMTEuMiAyMi0yNC41IDIxLjEtMTQuMSAuMS0yNi4xLTEuMS00MS43LTEuOCAyIDQgNi4zIDE0LjQgMTkuMyAyMS44IDkuOSA0LjggMTYuMiA2LjYgMjYgNi42IDI5LjYgMCA0NS43LTE3LjMgNDQuOS00NS4zbDAtNzMuMyAxMjIuNCAwYzkuNyAwIDguNy0yMy44IDguNy0yMy44bDAgMHoiXX0sJGF0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6InlhbmRleCIsaWNvbjpbMjU2LDUxMixbXSwiZjQxMyIsIk0xNTMuMSAzMTUuOEw2NS43IDUxMiAyIDUxMiA5OCAzMDIuMkM1Mi45IDI3OS4zIDIyLjggMjM3LjggMjIuOCAxNjEuMSAyMi43IDUzLjcgOTAuOCAwIDE3MS43IDBsODIuMyAwIDAgNTEyLTU1LjEgMCAwLTE5Ni4yLTQ1LjggMHpNMTk4LjkgNDYuNWwtMjkuNCAwYy00NC40IDAtODcuNCAyOS40LTg3LjQgMTE0LjYgMCA4Mi4zIDM5LjQgMTA4LjggODcuNCAxMDguOGwyOS40IDAgMC0yMjMuNHoiXX0sSWF0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6InBpeGl2IixpY29uOls0NDgsNTEyLFtdLCJlNjQwIiwiTTk2IDMyQzQzIDMyIDAgNzUgMCAxMjhMMCAzODRjMCA1MyA0MyA5NiA5NiA5NmwyNTYgMGM1MyAwIDk2LTQzIDk2LTk2bDAtMjU2YzAtNTMtNDMtOTYtOTYtOTZMOTYgMzJ6bTc3LjcgMjE3LjNhNjAuMSA2MC4xIDAgMSAwIDEyMC4zIDAgNjAuMSA2MC4xIDAgMSAwIC0xMjAuMyAwek0xMTkuMSAzODcuOGMtLjMtLjgtLjUtMS43LS41LTIuNmwwLTI0NC4zYzAtMS44IC43LTMuNiAyLTQuOXMzLTIgNC45LTJsMTYuOSAwYzEuMiAwIDIuMyAuMyAzLjMgLjhzMS45IDEuMyAyLjUgMi4zbDE0IDIxLjhjMTkuNy0xNS42IDQ0LjUtMjUgNzEuNi0yNSA2My42IDAgMTE1LjIgNTEuNiAxMTUuMiAxMTUuMlMyOTcuNSAzNjQuNSAyMzMuOCAzNjQuNWMtMjIgMC00Mi42LTYuMi02MC4xLTE2LjlsMCAzNy42YzAgLjktLjIgMS44LS41IDIuNnMtLjkgMS42LTEuNSAyLjItMS40IDEuMS0yLjIgMS41LTEuNyAuNS0yLjYgLjVsLTQxLjMgMGMtLjkgMC0xLjgtLjItMi42LS41cy0xLjYtLjktMi4yLTEuNS0xLjEtMS40LTEuNS0yLjJ6Il19LFBhdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJvcGVuYWkiLGljb246WzUxMiw1MTIsW10sImU3Y2YiLCJNMTk2LjQgMTg1LjhsMC00OC42YzAtNC4xIDEuNS03LjIgNS4xLTkuMmw5Ny44LTU2LjNjMTMuMy03LjcgMjkuMi0xMS4zIDQ1LjYtMTEuMyA2MS40IDAgMTAwLjQgNDcuNiAxMDAuNCA5OC4zIDAgMy42IDAgNy43LS41IDExLjhMMzQzLjMgMTExLjFjLTYuMS0zLjYtMTIuMy0zLjYtMTguNCAwTDE5Ni40IDE4NS44ek00MjQuNyAzNzUuMmwwLTExNi4yYzAtNy4yLTMuMS0xMi4zLTkuMi0xNS45TDI4NyAxNjguNCAzMjkgMTQ0LjNjMy42LTIgNi43LTIgMTAuMiAwTDQzNyAyMDAuN2MyOC4yIDE2LjQgNDcuMSA1MS4yIDQ3LjEgODUgMCAzOC45LTIzIDc0LjgtNTkuNCA4OS42bDAgMHpNMTY2LjIgMjcyLjhsLTQyLTI0LjZjLTMuNi0yLTUuMS01LjEtNS4xLTkuMmwwLTExMi42YzAtNTQuOCA0Mi05Ni4zIDk4LjgtOTYuMyAyMS41IDAgNDEuNSA3LjIgNTguNCAyMEwxNzUuNCAxMDguNWMtNi4xIDMuNi05LjIgOC43LTkuMiAxNS45bDAgMTQ4LjUgMCAwem05MC40IDUyLjJsLTYwLjItMzMuOCAwLTcxLjcgNjAuMi0zMy44IDYwLjIgMzMuOCAwIDcxLjctNjAuMiAzMy44em0zOC43IDE1NS43Yy0yMS41IDAtNDEuNS03LjItNTguNC0yMGwxMDAuOS01OC40YzYuMS0zLjYgOS4yLTguNyA5LjItMTUuOWwwLTE0OC41IDQyLjUgMjQuNmMzLjYgMiA1LjEgNS4xIDUuMSA5LjJsMCAxMTIuNmMwIDU0LjgtNDIuNSA5Ni4zLTk5LjMgOTYuM2wwIDB6TTE3My44IDM2Ni41TDc2LjEgMzEwLjJjLTI4LjItMTYuNC00Ny4xLTUxLjItNDcuMS04NSAwLTM5LjQgMjMuNi03NC44IDU5LjktODkuNmwwIDExNi43YzAgNy4yIDMuMSAxMi4zIDkuMiAxNS45bDEyOCA3NC4yLTQyIDI0LjFjLTMuNiAyLTYuNyAyLTEwLjIgMHptLTUuNiA4NGMtNTcuOSAwLTEwMC40LTQzLjUtMTAwLjQtOTcuMyAwLTQuMSAuNS04LjIgMS0xMi4zbDEwMC45IDU4LjRjNi4xIDMuNiAxMi4zIDMuNiAxOC40IDBsMTI4LjUtNzQuMiAwIDQ4LjZjMCA0LjEtMS41IDcuMi01LjEgOS4ybC05Ny44IDU2LjNjLTEzLjMgNy43LTI5LjIgMTEuMy00NS42IDExLjNsMCAwem0xMjcgNjAuOWM2MiAwIDExMy43LTQ0IDEyNS40LTEwMi40IDU3LjMtMTQuOSA5NC4yLTY4LjYgOTQuMi0xMjMuNCAwLTM1LjgtMTUuNC03MC43LTQzLTk1LjcgMi42LTEwLjggNC4xLTIxLjUgNC4xLTMyLjMgMC03My4yLTU5LjQtMTI4LTEyOC0xMjgtMTMuOCAwLTI3LjEgMi00MC40IDYuNy0yMy0yMi41LTU0LjgtMzYuOS04OS42LTM2LjktNjIgMC0xMTMuNyA0NC0xMjUuNCAxMDIuNC01Ny4zIDE0LjgtOTQuMiA2OC42LTk0LjIgMTIzLjQgMCAzNS44IDE1LjQgNzAuNyA0MyA5NS43LTIuNiAxMC44LTQuMSAyMS41LTQuMSAzMi4zIDAgNzMuMiA1OS40IDEyOCAxMjggMTI4IDEzLjggMCAyNy4xLTIgNDAuNC02LjcgMjMgMjIuNSA1NC44IDM2LjkgODkuNiAzNi45eiJdfSxOYXQ9e3ByZWZpeDoiZmFiIixpY29uTmFtZToic2l0aCIsaWNvbjpbNDQ4LDUxMixbXSwiZjUxMiIsIk0wIDMybDY5LjcgMTE4LjgtNTguOS0xMS41IDY5LjggOTFjLTMgMTctMyAzNC40IDAgNTEuNGwtNjkuOCA5MSA1OC45LTExLjUtNjkuNyAxMTguOCAxMTguOC02OS43LTExLjUgNTguOSA5MS02OS44YzE3IDMgMzQuNSAzIDUxLjUgMGw5MSA2OS44LTExLjUtNTguOSAxMTguNyA2OS43LTY5LjctMTE4LjggNTguOSAxMS41LTY5LjgtOTFjMy0xNyAzLTM0LjQgMC01MS40bDY5LjgtOTEtNTguOSAxMS41IDY5LjctMTE4LjgtMTE4LjcgNjkuNyAxMS41LTU4LjktOTEuMSA2OS45Yy04LjUtMS41LTE3LjEtMi4zLTI1LjctMi4zcy0xNy4yIC44LTI1LjcgMi4zTDEwNy4yIDQyLjggMTE4LjggMTAxLjcgMCAzMnpNMjI0IDM4MC4yYTEyNC4yIDEyNC4yIDAgMSAxIDAtMjQ4LjQgMTI0LjIgMTI0LjIgMCAxIDEgMCAyNDguNHptMC0yMTEuOGE4Ny42IDg3LjYgMCAxIDAgMCAxNzUuMSA4Ny42IDg3LjYgMCAxIDAgMC0xNzUuMXoiXX0sRmF0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6Imp1bGlhIixpY29uOls2NDAsNTEyLFtdLCJlODUyIiwiTTEyNCA0MDYuNWMwIDE2LjEtMS44IDI5LjEtNS40IDM5cy04LjggMTcuNi0xNS41IDIzLjEtMTQuNyA5LjEtMjQuMSAxMS0xOS44IDIuOC0zMS4yIDIuOGMtMTUuNSAwLTI3LjMtMi40LTM1LjUtNy4zUzAgNDY0LjUgMCA0NTcuN2MwLTUuNiAyLjMtMTAuNCA2LjktMTQuM3MxMC44LTUuOCAxOC41LTUuOGM1LjggMCAxMC40IDEuNiAxMy45IDQuN3M2LjMgNi4yIDguNiA5LjNjMi42IDMuNCA0LjggNS42IDYuNSA2LjhzMy40IDEuNyA0LjggMS43YzMuMSAwIDUuNC0xLjggNy01LjRzMi40LTEwLjcgMi40LTIxLjJsMC0xOTguNyA1NS40LTE1LjIgMCAxODYuOXptNzguOS0xODEuNmwwIDEyNy45YzAgMy42IC43IDYuOSAyLjEgMTBzMy4zIDUuOCA1LjcgOC4xIDUuMiA0LjEgOC41IDUuNCA2LjcgMi4xIDEwLjQgMi4xYzQuMiAwIDguOS0yLjMgMTQuNy02LjQgOS4yLTYuNCAxNC43LTEwLjkgMTQuNy0xNi4xbDAtMTMxIDU1LjEgMCAwIDE4MS42LTU1LjEgMCAwLTE2LjljLTcuMyA2LjEtMTUgMTEtMjMuMiAxNC43cy0xNi4yIDUuNi0yMy45IDUuNmMtOSAwLTE3LjQtMS41LTI1LjEtNC41cy0xNC41LTctMjAuMy0xMi4yLTEwLjQtMTEuMi0xMy43LTE4LjFjLTMuMy02LjktNS0xNC4zLTUtMjIuMmwwLTEyNy45IDU1LjEgMHpNMzkxLjQgNDA2LjVsLTU0LjkgMCAwLTI1NC42IDU0LjktMTUuMiAwIDI2OS44em0yMi45LTE3MS43bDU1LjEtMTUuMiAwIDE4Ni45LTU1LjEgMCAwLTE3MS43em0xNzAuMyA3Ny45Yy01LjMgMi4zLTEwLjcgNC45LTE2LjEgNy45cy0xMC4zIDYuMi0xNC43IDkuOC04IDcuMy0xMC44IDExLjQtNC4xIDguMi00LjEgMTIuNmMwIDMuNCAuNCA2LjYgMS4zIDkuOHMyLjEgNS44IDMuOCA4LjEgMy40IDQuMSA1LjMgNS40IDQgMi4xIDYuMyAyLjFjNC41IDAgOS4xLTEuNCAxMy43LTQuMXM5LjctNi4yIDE1LjQtMTAuNGwwLTUyLjV6TTY0MCA0MDYuNWwtNTUuNCAwIDAtMTQuNWMtMy4xIDIuNi02IDUtOC45IDcuMXMtNi4yIDQuMS05LjggNS43LTcuNyAyLjktMTIuMiAzLjhjLTQuNSAuOS05LjggMS4zLTE1LjkgMS4zLTguNCAwLTE1LjktMS4yLTIyLjYtMy42LTYuNy0yLjQtMTIuNC01LjctMTctOS45cy04LjMtOS4xLTEwLjgtMTQuOWMtMi41LTUuNy0zLjgtMTItMy44LTE4LjcgMC02LjkgMS4zLTEzLjIgNC0xOC45IDIuNy01LjYgNi4zLTEwLjcgMTAuOS0xNS4yIDQuNi00LjUgOS45LTguNSAxNi4xLTEyLjFzMTIuNy02LjggMTkuNy05LjggMTQuMy01LjcgMjEuOS04LjIgMTUuMS00LjkgMjIuNS03LjFsNi0xLjUgMC0xNy45YzAtMTEuNi0yLjItMTkuOC02LjYtMjQuN3MtMTAuNC03LjMtMTcuOC03LjNjLTguNyAwLTE0LjggMi4xLTE4LjEgNi4zcy01LjEgOS4zLTUuMSAxNS4yYzAgMy40LS40IDYuNy0xLjEgOS45LS43IDMuMi0yIDYtMy43IDguNXMtNC4zIDQuNC03LjYgNS44Yy0zLjMgMS41LTcuNSAyLjItMTIuNSAyLjItNy43IDAtMTQtMi4yLTE4LjktNi42LTQuOC00LjQtNy4zLTEwLTcuMy0xNi44IDAtNi4zIDIuMS0xMi4xIDYuNC0xNy41IDQuMy01LjQgMTAtMTAgMTcuMy0xMy45IDcuMy0zLjkgMTUuNi02LjkgMjUuMS05LjJzMTkuNi0zLjQgMzAuMi0zLjRjMTMuMSAwIDI0LjMgMS4yIDMzLjcgMy41czE3LjIgNS43IDIzLjMgMTAgMTAuNiA5LjYgMTMuNSAxNS43IDQuNCAxMyA0LjQgMjAuNmwwIDEzNi4xek02MCAxNzIuOWEzNy40IDM3LjQgMCAxIDEgNzQuOSAwIDM3LjQgMzcuNCAwIDEgMSAtNzQuOSAwek00NTIuMiA5NWEzNy40IDM3LjQgMCAxIDEgNzQuOSAwIDM3LjQgMzcuNCAwIDEgMSAtNzQuOSAwem00NSA3Ny45YTM3LjQgMzcuNCAwIDEgMSA3NC45IDAgMzcuNCAzNy40IDAgMSAxIC03NC45IDB6bS04OS45IDBhMzcuNCAzNy40IDAgMSAxIDc0LjkgMCAzNy40IDM3LjQgMCAxIDEgLTc0LjkgMHoiXX0sT2F0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6Im5mYy1kaXJlY3Rpb25hbCIsaWNvbjpbNTEyLDUxMixbXSwiZTUzMCIsIk0yMTEuOCA0ODguNmMxLjYgMi41IDIuMSA1LjYgMS40IDguNS0uNiAyLjktMi40IDUuNS00LjkgNy4xLTIuNiAxLjYtNS42IDIuMS04LjYgMS41LTYxLjQtMTMuOS0xMTUuNi00OS45LTE1Mi4yLTEwMS4yUy01LjQgMjkwLjMgMS42IDIyNy43YzctNjIuNyAzNi44LTEyMC41IDgzLjctMTYyLjUgNDYuOS00MiAxMDcuNy02NS4yIDE3MC43LTY1LjIgMS41IDAgMi4xIC4zIDQuMyAuOSAxLjQgLjYgMS44IDEuNCAzLjcgMi41IDEuMSAxLjEgMS45IDIuMyAyLjUgMy43IC41IDEuNCAuOCAyLjggLjggNC4zbDAgMTAxIDI0LjUtMjUuOWMxLTEuMSAyLjItMiAzLjYtMi42IDEuMy0uNiAyLjgtLjkgNC4zLTEgMS41LS4xIDIuOSAuMiA0LjMgLjdzMi43IDEuMyAzLjggMi40YzEgMSAxLjkgMi4yIDIuNSAzLjYgLjYgMS4zIDEgMi44IDEgNC4zcy0uMiAzLS43IDQuM2MtLjYgMS40LTEuNCAyLjYtMi40IDMuN2wtNDQgNDYuNmMtMS4xIDEuMS0yLjMgMi0zLjcgMi42LTEuNSAuNi0zIC45LTUuNCAuOS0uNiAwLTIuMi0uMy0zLjYtLjlzLTIuNy0xLjUtMy43LTIuNmwtNDQuMS00Ni42Yy0yLTIuMi0zLjEtNS4xLTMtOC4xIDAtMyAxLjMtNi43IDMuNS03LjkgMi4yLTIuMSA1LjEtMy4yIDguMS0zLjEgMyAuMSA1LjggMS4zIDcuOSAzLjVsMjQuNSAyNiAwLTg5LjVjLTU2LjQgMi44LTEwOS44IDI1LjgtMTUwLjUgNjUtNDAuNiAzOS4xLTY1LjcgOTEuNy03MC42IDE0Ny45UzM0LjQgMzQ4LjEgNjcuNyAzOTMuN2MzMi40IDQ1LjUgODIgNzcuNSAxMzcgODkuOSAyLjkgLjcgNS41IDIuNSA3LjEgNXpNMTcxLjQgMTI2LjFjLS44IDEuMy0xLjkgMi40LTMuMSAzLjItMjAuNSAxMy45LTM3LjIgMzIuNi00OC44IDU0LjVzLTE3LjcgNDYuMy0xNy43IDcxLjEgNi4xIDQ5LjIgMTcuNyA3MC4yYzExLjYgMjIuOCAyOC4zIDQxLjUgNDguOCA1NS40IDIuNSAxLjcgNC4yIDQuMyA0LjcgNy4zIC42IDIuOS0uOSA2LTEuNyA4LjQtMS43IDIuNS01LjIgNC4yLTcuMyAzLjktMi45IDEuNC02IC44LTguNC0uOS0yMy42LTE2LTQyLjgtMzcuNS01Ni4xLTYyLjctMTMuMy0yNS4xLTIwLjMtNTMuMS0yMC4zLTgxLjYgMC0yOC40IDctNTYuNSAyMC4zLTgxLjYgMTMuMy0yNS4yIDMyLjUtNDYuNyA1Ni4xLTYyLjcgMS4yLS44IDIuNi0xLjQgNC0xLjggMS41LS4zIDMtLjMgNC41IDAgMS40IC4yIDIuOCAuOCA0LjEgMS42czIuMyAxLjkgMy4yIDMuMWMuOCAxLjIgMS40IDIuNiAxLjcgNC4xcy4zIDMgMCA0LjRjLS4zIDEuNS0uOCAyLjktMS43IDQuMXpNMzQwLjkgMzgzLjVjLjgtMS4yIDEuOS0yLjMgMi4yLTMuMWwwLS4xYzIxLjMtMTQgMzgtMzIuNyA0OS42LTU0LjYgMTEuNS0yMS44IDE3LjUtNDYuMiAxNy41LTcwLjlzLTYtNDkuMS0xNy41LTcxYy0xMS42LTIyLjctMjguMy00MC41LTQ5LjYtNTQuNS0uMy0uOC0xLjQtMS45LTIuMi0zLjEtLjgtMS4zLTEuNC0yLjctMS42LTQuMS0xLjItMS41LS4zLTMgMC00LjQgLjMtMS41IC45LTIuOSAxLjctNC4xIC45LTEuMiAxLjEtMi4zIDMuMi0zLjEgMS4yLS44IDIuNi0xLjMgNC4xLTEuNnMyLjktLjMgNC40IDAgMi44IC45IDQuMSAxLjhjMjMuNCAxNiA0Mi43IDM3LjUgNTUuOSA2Mi42IDEzLjMgMjUuMSAxOS40IDUzLjEgMTkuNCA4MS41IDAgMjguNS02LjEgNTYuNS0xOS40IDgxLjYtMTMuMiAyNS4xLTMyLjUgNDYuNi01NS45IDYyLjYtMS4zIC45LTIuNiAxLjUtNC4xIDEuOHMtMi45IC4zLTQuNCAwLTIuOS0xLjctNC4xLTEuNmMtMi4xLS44LTIuMy0xLjktMy4yLTMuMS0uOC0xLjItMS40LTIuNi0xLjctNC4xLS4zLTEuNC0xLjItMi45IDAtNC40IC4yLTEuNCAuOC0yLjggMS42LTQuMXpNMzEyLjMgNi4zYzU2LjIgMTIuNyAxMDYuNCA0NCAxNDIuNyA4OC43IDMwLjQgMzcuNiA0OS42IDgzIDU1LjMgMTMxIDUuNiA0OC0yLjQgOTYuNy0yMy4yIDE0MC4zLTIwLjkgNDMuNi01My42IDgwLjUtOTQuNSAxMDYuMy00MC45IDI1LjctODguMiAzOS40LTEzNi42IDM5LjQtMS41IDAtMi45LS4zLTQuMy0uOS0xLjQtLjUtMi42LTEuNC0zLjctMi40LTEuOS0xLjEtMS45LTIuMy0yLjQtMy43LS42LTEuNC0uOS0yLjgtLjktNC4zbDAtOTkuMi0yNC41IDI2Yy0yLjEgMi4yLTQuOSAyLjYtNy45IDMuNi0zIC4xLTUuOS0xLjEtOC4xLTQtMi4yLTEuMi0zLjUtNC0zLjUtNy0uMS0zIDEtNS45IDMtOC4xbDQ0LjEtNDYuNmMxLjMtMi4yIDUuMS0zLjQgNy4zLTMuNCA0IDAgNi45IDEuMiA5LjEgMy40bDQ0IDQ2LjZjMi4xIDIuMiAzLjIgNS4xIDMuMSA4LjFzLTEuNCA1LjgtMy41IDdjLTIuMiAyLjktNS4xIDQuMS04LjEgNC0zLTEtNS45LTEuNC03LjktMy42bC0yNC41LTI1LjkgMCA4Ny41YzU2LjQtMi44IDEwOS44LTI1LjggMTUwLjUtNjUgNDAuNy00MCA2NS44LTkxLjcgNzAuNy0xNDcuOSA0LjgtNTcuMS0xMC44LTExMi4zLTQ0LjEtMTU3LjktMzMuMy00NS42LTgyLTc3LjUtMTM3LTg5LjktMS41LS4zLTIuOC0uOS00LjEtMS44LTEuMi0uOS0yLjItMS45LTMtMy4yLS44LTEuMi0yLjItMi42LTEuNi00LjEtLjItMS41LS4yLTMgLjEtNC40IC40LTEuNCAxLTIuOCAxLjgtNCAuOS0xLjIgMi0yLjIgMy4yLTMgMS4zLS44IDIuNy0xLjMgNC4xLTEuNiAxLjUtLjMgMy0uMiA0LjQgLjF6bTQwLjggMjQ5LjhjMCAzMS40LTE3LjUgNjEuMS00OS4zIDgzLjUtMi4xIDEuNS00LjggMi4zLTcuNCAyLTIuNy0uMi01LjItMS4zLTctMy4ybC03MC4xLTY5LjhjLTIuMi0yLjEtNC4yLTUtMy40LTggMC0zIDEuMi01LjkgMy4zLTggMi4yLTIuMSA1LTMuMyA4LTMuM3M1LjkgMS4yIDggMy4zbDYzLjEgNjIuOGMyMC44LTE3LjEgMzIuMi0zNy45IDMyLjItNTkuMyAwLTIzLjktMTQuMS00Ny0zOS43LTY1LjEtMi41LTEuNy00LjEtNC4zLTQuNi03LjMtLjUtMi45IC4xLTYgMS45LTguNCAxLjctMi41IDQuMy00LjEgNy4zLTQuNiAyLjktLjUgNiAuMSA4LjQgMS45IDMxLjggMjIuNCA0OS4zIDUyLjEgNDkuMyA4My41ek0yMTYuNyAzNDEuNWMtMyAuNS02LS4yLTguNS0xLjktMzEuNy0yMi40LTUwLjEtNTIuMS01MC4xLTgzLjVzMTguNC02MS4xIDUwLjEtODMuNWMyLjItMS42IDQuOS0yLjMgNy41LTIuMSAyLjcgLjMgNS4xIDEuNCA3IDMuM2w3MC4xIDY5LjhjMi4xIDIuMSAzLjMgNSAzLjMgOHMtMiA1LjgtMy4zIDhjLTIuMSAyLjEtNSAzLjMtNy45IDMuMy0zIDAtNi44LTEuMi04LTMuM2wtNjMuMS02Mi45Yy0yMC45IDE3LjMtMzIuMiAzOC0zMi4yIDU5LjQgMCAyMyAxNC4xIDQ3IDM5LjcgNjUgMi40IDEuOCA0LjEgNC40IDQuNiA3LjQgLjUgMi45LS4yIDUuOS0xLjkgOC40LTEuNyAyLjQtNC40IDQuMS03LjMgNC42eiJdfSxSYXQ9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiY3JlYXRpdmUtY29tbW9ucy1ieSIsaWNvbjpbNTEyLDUxMixbXSwiZjRlNyIsIk0zMjIuOSAxOTQuNGwwIDEwMS40LTI4LjMgMCAwIDEyMC41LTc3LjEgMCAwLTEyMC40LTI4LjMgMCAwLTEwMS41YzAtNC40IDEuNi04LjIgNC42LTExLjMgMy4xLTMuMSA2LjktNC43IDExLjMtNC43bDEwMS45IDBjNC4xIDAgNy44IDEuNiAxMS4xIDQuNyAzLjEgMy4yIDQuOCA2LjkgNC44IDExLjN6bS0zMi41LTY0LjVhMzQuNSAzNC41IDAgMSAxIC02OSAuOCAzNC41IDM0LjUgMCAxIDEgNjktLjh6TTI1NS42IDhDMzk3LjQgOCA1MDQgMTE4LjEgNTA0IDI1NiA1MDQgNDAzLjEgMzg1LjUgNTA0IDI1NS42IDUwNCAxMjEuNiA1MDQgOCAzOTQuNSA4IDI1NiA4IDEyMy4xIDExMi43IDggMjU1LjYgOHptLjggNDQuN2MtMTE4LjIgMC0yMDMuNyA5Ny45LTIwMy43IDIwMy4zIDAgMTA5LjggOTEuMiAyMDIuOCAyMDMuNyAyMDIuOCAxMDMuMiAwIDIwMi44LTgxLjEgMjAyLjgtMjAyLjggLjEtMTEzLjgtOTAuMi0yMDMuMy0yMDIuOC0yMDMuM3oiXX0sQmF0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6InVtYnJhY28iLGljb246WzUxMiw1MTIsW10sImY4ZTgiLCJNMjU2LjMgOGEyNDggMjQ4IDAgMSAwIC0uNyA0OTYgMjQ4IDI0OCAwIDEgMCAuNy00OTZ6bTE0NSAyNjZjLS44IDI3LjEtNS40IDQ4LjgtMTQgNjVzLTIzLjEgMjcuOS00My41IDM1Yy0yMC40IDcuMS00OC45IDEwLjYtODUuNCAxMC41bC00LjYgMGMtMzYuNSAuMS02NS0zLjMtODUuNC0xMC41cy0zNC45LTE4LjgtNDMuNS0zNWMtOC42LTE2LjItMTMuMi0zNy45LTE0LTY1LS43LTEwLjItLjctMjAuNSAwLTMwLjcgLjQtMTQuNyAxLjYtMjkuMyAzLjYtNDMuOSAxLjktMTMuNCAzLjYtMjIuNiA1LjQtMzIgMS00LjkgMS4zLTYuNCAxLjgtOC40IC4zLTEuMSAuOS0yLjEgMS44LTIuOHMyLTEuMSAzLjEtMS4xbC43IDAgMzIgNWMxLjIgLjIgMi4yIC44IDMgMS43czEuMiAyLjEgMS4yIDMuM2MwIC4zIDAgLjUgMCAuOGwtMS43IDguOGMtMS42IDguOC0zLjIgMjAuMS00LjggMzMuNy0xLjcgMTQtMi41IDI4LjEtMi42IDQyLjItLjIgMjcgMi41IDQ2LjkgOC4xIDU5LjggMi44IDYuNCA3LjIgMTIgMTIuNiAxNi40czExLjkgNy40IDE4LjcgOC44YzE4LjggNCAzOC4xIDUuNyA1Ny4zIDUuMWwxMC4zIDBjMTkuMiAuNiAzOC41LTEuMiA1Ny4zLTUuMiA2LjgtMS40IDEzLjItNC41IDE4LjYtOC44czkuNy0xMCAxMi41LTE2LjRjNS43LTEyLjkgOC40LTMyLjkgOC4xLTU5LjgtLjEtMTQuMS0xLTI4LjItMi42LTQyLjEtMS43LTEzLjYtMy4zLTI0LjgtNC45LTMzLjdsLTEuNy04LjhjMC0uMyAwLS41IDAtLjggMC0xLjIgLjQtMi40IDEuMi0zLjNzMS44LTEuNSAzLTEuN2wzMi01IC44IDBjMS4xIDAgMi4yIC40IDMuMSAxLjFzMS41IDEuNyAxLjggMi44Yy42IDIgLjggMy42IDEuOCA4LjQgMS44IDkuNiAzLjUgMTguOCA1LjQgMzIgMiAxNC42IDMuMiAyOS4yIDMuNiA0My45IC43IDEwLjIgLjcgMjAuNSAwIDMwLjdsMCAweiJdfSxIYXQ9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiaG9vbGkiLGljb246WzY0MCw1MTIsW10sImY0MjciLCJNMTQ0LjUgMzUybDM4LjMgLjhjLTEzLjItNC42LTI2LTEwLjItMzguMy0xNi44bDAgMTZ6bTU3LjctNS4zbDAgNS4zLTE5LjQgLjhjMzYuNSAxMi41IDY5LjkgMTQuMiA5NC43IDcuMi0xOS45IC4yLTQ1LjgtMi42LTc1LjMtMTMuM3pNNjExLjEgMjMxLjVjMTUuOSAwIDI4LjktMTIuOSAyOC45LTI4LjlzLTEyLjktMjQuNS0yOC45LTI0LjVjLTE1LjkgMC0yOC45IDguNi0yOC45IDI0LjVzMTIuOSAyOC45IDI4LjkgMjguOXpNNTgyLjEgMzUybDU3LjkgMCAwLTExMC41LTU3LjkgMCAwIDExMC41em0tNzMuNyAwbDU3LjkgMCAwLTE5NS4zLTU3LjkgMjcuMyAwIDE2OHptLTMxLTExOS40Yy0xOC4yLTE4LjItNTAuNC0xNy4xLTUwLjQtMTcuMXMtMzIuMy0xLjEtNTAuNCAxNy4xYy0xOC4yIDE4LjItMTYuOCAzMy45LTE2LjggNTIuNnMtMS40IDM0LjMgMTYuOCA1Mi41IDUwLjQgMTcuMSA1MC40IDE3LjEgMzIuMyAxLjEgNTAuNC0xNy4xYzE4LjItMTguMiAxNi44LTMzLjggMTYuOC01Mi41LS4xLTE4LjggMS4zLTM0LjUtMTYuOC01Mi42em0tMzkuOCA3MS45YzAgMy42LTEuOCAxMi41LTEwLjcgMTIuNXMtMTAuNy04LjktMTAuNy0xMi41bDAtNDAuNGMwLTguNyA3LjMtMTAuOSAxMC43LTEwLjlzMTAuNyAyLjEgMTAuNyAxMC45bDAgNDAuNHpNMzMxLjQgMjMyLjZjLTE4LjItMTguMi01MC40LTE3LjEtNTAuNC0xNy4xcy0zMi4yLTEuMS01MC40IDE3LjFjLTEuOSAxLjktMy43IDMuOS01LjMgNi0zOC4yLTI5LjYtNzIuNS00Ni41LTEwMi4xLTYxLjFsMC0yMC43LTIyLjUgMTAuNmMtNTQuNC0yMi4xLTg5LTE4LjItOTcuMyAuMSAwIDAtMjQuOSAzMi44IDYxLjggMTEwLjhsMCA3My43IDU3LjkgMCAwLTI4LjZjLTYuNS00LjItMTMtOC43LTE5LjQtMTMuNi0xNC44LTExLjItMjcuNC0yMS42LTM4LjQtMzEuNGwwLTMxYzEzLjEgMTQuNyAzMC41IDMxLjQgNTMuNCA1MC4zbDQuNSAzLjYgMC0yOS44YzAtNi45IDEuNy0xOC4yIDEwLjgtMTguMnMxMC42IDYuOSAxMC42IDE1bDAgNDguN2MxOCAxMi4yIDM3LjMgMjIuMSA1Ny43IDI5LjZsMC05My45YzAtMTguNy0xMy40LTM3LjQtNDAuNi0zNy40LTE1LjgtLjEtMzAuNSA4LjItMzguNSAyMS45bDAtNTQuM2M0MS45IDIwLjkgODMuOSA0Ni41IDk5LjkgNTguMy0xMC4yIDE0LjYtOS4zIDI4LjEtOS4zIDQzLjcgMCAxOC43LTEuNCAzNC4zIDE2LjggNTIuNXM1MC40IDE3LjEgNTAuNCAxNy4xIDMyLjMgMS4xIDUwLjQtMTcuMWMxOC4yLTE4LjIgMTYuNy0zMy44IDE2LjctNTIuNSAwLTE4LjUgMS41LTM0LjItMTYuNy01Mi4zek02NS4yIDE4NGwwIDYzLjNjLTQ4LjctNTQuNS0zOC45LTc2LTM1LjItNzkuMSAxMy41LTExLjQgMzcuNS04IDY0LjQgMi4xTDY1LjIgMTg0ek0yOTEuNyAzMDQuNWMwIDMuNi0xLjggMTIuNS0xMC43IDEyLjVzLTEwLjctOC45LTEwLjctMTIuNWwwLTQwLjRjMC04LjcgNy4zLTEwLjkgMTAuNy0xMC45czEwLjcgMi4xIDEwLjcgMTAuOWwwIDQwLjR6Il19LHFhZT17cHJlZml4OiJmYWIiLGljb25OYW1lOiJzcXVhcmUtZ2l0IixpY29uOls0NDgsNTEyLFsiZ2l0LXNxdWFyZSJdLCJmMWQyIiwiTTEyMC44IDMzNS41Yy01LjktLjQtMTIuNi0uOC0yMC4yLTEuMy0zLjMgNC4xLTYuNiA4LjQtNi42IDEzLjUgMCAxOC41IDY1LjUgMTguNSA2NS41LTEuNSAwLTguMy03LjQtOC43LTM4LjgtMTAuN2wuMSAwem03LjgtMTE3LjljLTMyLjMgMC0zMy43IDQ0LjUtLjcgNDQuNSAzMi41IDAgMzEuNy00NC41IC43LTQ0LjV6TTM4NCAzMkw2NCAzMkMyOC43IDMyIDAgNjAuNyAwIDk2TDAgNDE2YzAgMzUuMyAyOC43IDY0IDY0IDY0bDMyMCAwYzM1LjMgMCA2NC0yOC43IDY0LTY0bDAtMzIwYzAtMzUuMy0yOC43LTY0LTY0LTY0ek0yNDMuOSAxNzIuMmMtMTQuNSAwLTIyLjktOC40LTIyLjktMjIuOXM4LjQtMjIuMyAyMi45LTIyLjNjMTQuNyAwIDIzLjEgNy44IDIzLjEgMjIuM3MtOC40IDIyLjktMjMuMSAyMi45ek0xNDkuNiAxOTVsNDkuNSAwIDAgMjEuNi0yMy40IDEuOGM0LjYgNS44IDkuNCAxNCA5LjQgMjUuNyAwIDQ4LjctNTcuMiA0Ny4yLTc0LjIgNDIuNGwtOC40IDEzLjRjNSAuMyA5LjggLjYgMTQuMyAuOCA1Ni4zIDMuMiA4MC41IDQuNiA4MC41IDM4LjUgMCAyOS4yLTI1LjcgNDUuNy02OS45IDQ1LjctNDYgMC02My41LTExLjYtNjMuNS0zMS43IDAtMTEuNCA1LjEtMTcuNSAxNC0yNS45LTguNC0zLjUtMTEuMi05LjktMTEuMi0xNi44IDAtOS42IDcuNC0xNi4zIDIzLTMwLjZsLjItLjJjLTEyLjQtNi4xLTIxLjgtMTkuMy0yMS44LTM4LjEgMC01MS42IDU2LjYtNTMuMyA4MS42LTQ2LjhsLS4xIC4yek0yNzAuNSAzMDMuMWwxMyAxLjggMCAyMC4xLTcyLjQgMCAwLTIwLjFjMi43LS40IDUtLjcgNi45LS45IDkuOS0xLjIgMTAuMS0xLjMgMTAuMS02bDAtNzQuN2MwLTQuNC0uOS00LjctMTAuMS03LjgtMS45LS43LTQuMi0xLjQtNi45LTIuNGwyLjgtMjAuNiA1Mi42IDAgMCAxMDUuNWMwIDQuMSAuMiA0LjYgNC4xIDUuMWwtLjEgMHptMTA2LjYtMTAuNEwzODQgMzE1Yy0xMC45IDUuNC0yNi45IDEwLjItNDEuNCAxMC4yLTMwLjIgMC00MS43LTEyLjItNDEuNy00MC45bDAtNjYuNmMwLS44IDAtMS40LS4yLTEuOC0uOC0xLjItNC4yLS43LTE5LjYtLjdsMC0yMi42YzIyLjMtMi41IDMxLjItMTMuNyAzNC00MS40bDI0LjIgMGMwIDMzLjMtLjYgMzggLjcgMzguNiAuMyAuMSAuNyAwIDEuMyAwbDM1LjggMCAwIDI1LjQtMzcuOCAwIDAgNjEuNmMtLjIgNi4zLS45IDMwLjQgMzcuOSAxNS45bC0uMSAweiJdfSxxYXQ9cWFlLGphdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJvZG5va2xhc3NuaWtpIixpY29uOlszMjAsNTEyLFtdLCJmMjYzIiwiTTI3NS4xIDMzNGMtMjcuNCAxNy40LTY1LjEgMjQuMy05MCAyNi45bDIwLjkgMjAuNiA3Ni4zIDc2LjNjMjcuOSAyOC42LTE3LjUgNzMuMy00NS43IDQ1LjctMTkuMS0xOS40LTQ3LjEtNDcuNC03Ni4zLTc2LjZMODQgNTAzLjRjLTI4LjIgMjcuNS03My42LTE3LjYtNDUuNC00NS43IDE5LjQtMTkuNCA0Ny4xLTQ3LjQgNzYuMy03Ni4zbDIwLjYtMjAuNmMtMjQuNi0yLjYtNjIuOS05LjEtOTAuNi0yNi45LTMyLjYtMjEtNDYuOS0zMy4zLTM0LjMtNTkgNy40LTE0LjYgMjcuNy0yNi45IDU0LjYtNS43IDAgMCAzNi4zIDI4LjkgOTQuOSAyOC45UzI1NSAyNjkuMiAyNTUgMjY5LjJjMjYuOS0yMS4xIDQ3LjEtOC45IDU0LjYgNS43IDEyLjQgMjUuNy0xLjkgMzgtMzQuNSA1OS4xem0xNC42LTIwNC43YTEyOS43IDEyOS43IDAgMSAxIC0yNTkuNCAuNCAxMjkuNyAxMjkuNyAwIDEgMSAyNTkuNC0uNHptLTE5My40IC40YTYzLjcgNjMuNyAwIDEgMCAxMjcuNC0uNCA2My43IDYzLjcgMCAxIDAgLTEyNy40IC40eiJdfSxWYXQ9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiZHJ1cGFsIixpY29uOlszODQsNTEyLFtdLCJmMWE5IiwiTTI3Mi4zIDEwOC4xQzIzNi41IDcyLjUgMjAyLjUgMzguNCAxOTIuNCAwIDE4Mi40IDM4LjQgMTQ4LjEgNzIuNSAxMTIuNCAxMDguMSA1OC44IDE2MS43LTEuOSAyMjIuNC0xLjkgMzEzLjQtNC4zIDQyMC43IDgwLjggNTA5LjYgMTg4LjEgNTEyczE5Ni4yLTgyLjggMTk4LjUtMTkwLjFjLjEtMi44IC4xLTUuNiAwLTguNSAwLTkxLjEtNjAuOC0xNTEuNy0xMTQuMy0yMDUuM3pNOTggMzMxLjFjLTUuOSA3LjUtMTEgMTUuNi0xNS4yIDI0LjItLjMgLjctLjggMS4zLTEuMyAxLjhzLTEuMiAuOC0yIDFsLTEuNyAwYy00LjMgMC05LjItOC41LTkuMi04LjUtMS4zLTItMi41LTQuMi0zLjctNi40bC0uOC0xLjhjLTExLjItMjUuNy0xLjUtNjIuMy0xLjUtNjIuMyA0LjgtMTcuOCAxMi43LTM0LjcgMjMuMi00OS45IDYuNC05LjYgMTMuNS0xOC45IDIxLTI3LjdsOS4yIDkuMiA0My41IDQ0LjRjLjggLjkgMS4zIDIuMSAxLjMgMy4zcy0uNSAyLjQtMS4zIDMuM0wxMTQuMSAzMTIuMyA5OCAzMzEuMXptOTYuNiAxMjcuM2MtMTIuOS0uMS0yNS42LTMuOS0zNi40LTExcy0xOS40LTE3LjEtMjQuNi0yOC45LTctMjQuOS01LTM3LjcgNy42LTI0LjcgMTYuMi0zNC40YzE0LjItMTYuOSAzMS41LTMzLjUgNTAuMy01NS4zIDIyLjMgMjMuOCAzNi45IDQwLjEgNTEuMiA1OCAxLjEgMS40IDIuMSAyLjkgMyA0LjQgNy44IDExLjEgMTIgMjQuNCAxMiAzOCAwIDguOC0xLjcgMTcuNC01IDI1LjVzLTguMiAxNS41LTE0LjQgMjEuNy0xMy41IDExLjEtMjEuNiAxNC41LTE2LjcgNS4xLTI1LjUgNS4xbC0uMiAwek0zMjAuNyAzNTEuNmMtLjQgMS40LTEuMiAyLjYtMi4zIDMuNnMtMi40IDEuNi0zLjggMS44bC0xLjMgMGMtMi42LS45LTQuOS0yLjctNi4zLTUuMS0xMS42LTE3LjUtMjQuOS0zMy45LTM5LjUtNDlsLTE3LjgtMTguNC01OS4xLTYxLjNjLTEyLjQtMTEuNS0yNC4yLTIzLjYtMzUuNC0zNi4zLS4zLS41LS42LS45LS45LTEuNC0yLTIuOC0zLjYtNS45LTQuNy05LjJsMC0xLjhjLS44LTUtLjQtMTAuMSAxLjItMTVzNC40LTkuMiA4LTEyLjdjMTEuNC0xMS40IDIzLTIzIDMzLjgtMzQuOSAxMiAxMy4zIDI0LjggMjYgMzcuNCAzOC42IDI1LjggMjQgNDkuMSA1MC41IDY5LjYgNzkuMSAxNy4zIDI0LjUgMjYuNyA1My44IDI3IDgzLjgtLjEgMTIuOS0yLjIgMjUuOC02IDM4LjJ6Il19LFVhdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJibG9nZ2VyLWIiLGljb246WzQ0OCw1MTIsW10sImYzN2QiLCJNNDQ2LjYgMjIyLjdjLTEuOC04LTYuOC0xNS40LTEyLjUtMTguNS0xLjgtMS0xMy0yLjItMjUtMi43LTIwLjEtLjktMjIuMy0xLjMtMjguNy01LTEwLjEtNS45LTEyLjgtMTIuMy0xMi45LTI5LjUtLjEtMzMtMTMuOC02My43LTQwLjktOTEuMy0xOS4zLTE5LjctNDAuOS0zMy02NS41LTQwLjUtNS45LTEuOC0xOS4xLTIuNC02My4zLTIuOS02OS40LS44LTg0LjggLjYtMTA4LjQgMTAtNDMuNSAxNy4yLTc0LjcgNTMuOC04Ni4xIDEwMC42LTIuMSA4LjgtMi42IDIyLjktMy4xIDEwMy45LS42IDEwMS41IC4xIDExNi40IDYuNCAxMzYuNSAxNS42IDQ5LjYgNTkuOSA4Ni4zIDEwNC40IDk0LjMgMTQuOCAyLjcgMTk3LjMgMy4zIDIxNiAuOCAzMi41LTQuNCA1OC0xNy41IDgxLjktNDEuOSAxNy4zLTE3LjcgMjguMS0zNi44IDM1LjItNjIuMSA0LjktMTcuNiA0LjUtMTQyLjggMi41LTE1MS43ek0xMjQuNSAxNTkuMWM3LjgtNy45IDEwLTguMiA1OC44LTguMiA0My45IDAgNDUuNCAuMSA1MS44IDMuNCA5LjMgNC43IDEzLjQgMTEuMyAxMy40IDIxLjkgMCA5LjUtMy44IDE2LjItMTIuMyAyMS42LTQuNiAyLjktNy4zIDMuMS01MC4zIDMuMy0yNi41IC4yLTQ3LjctLjQtNTAuOC0xLjItMTYuNi00LjctMjIuOC0yOC41LTEwLjYtNDAuOHpNMzE2LjMgMzU4LjlsLTE0LjkgMi40LTc3LjUgLjljLTY4LjEgLjgtODcuMy0uNC05MC45LTItNy4xLTMuMS0xMy44LTExLjctMTQuOS0xOS40LTEuMS03LjMgMi42LTE3LjMgOC4yLTIyLjQgNy4xLTYuNCAxMC4yLTYuNiA5Ny4zLTYuNyA4OS42LS4xIDg5LjEtLjEgOTcuNiA3LjggMTIuMSAxMS4zIDkuNSAzMS4yLTQuOSAzOS40eiJdfSxXYXQ9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiaW52aXNpb24iLGljb246WzQ0OCw1MTIsW10sImY3YjAiLCJNNDA3LjQgMzJMNDAuNiAzMkMxOC4yIDMyIDAgNTAuMiAwIDcyLjZMMCA0MzkuNEMwIDQ2MS44IDE4LjIgNDgwIDQwLjYgNDgwbDM2Ni44IDBjMjIuNCAwIDQwLjYtMTguMiA0MC42LTQwLjZsMC0zNjYuOEM0NDggNTAuMiA0MjkuOCAzMiA0MDcuNCAzMnpNMTc2LjEgMTQ1LjZjLjQgMjMuNC0yMi40IDI3LjMtMjYuNiAyNy40LTE0LjkgMC0yNy4xLTEyLTI3LjEtMjcgLjEtMzUuMiA1My4xLTM1LjUgNTMuNy0uNHpNMzMyLjggMzc3Yy02NS42IDAtMzQuMS03NC0yNS0xMDYuNiAxNC4xLTQ2LjQtNDUuMi01OS01OS45IC43bC0yNS44IDEwMy4zLTQ1LjEgMCA4LjEtMzIuNWMtMzEuNSA1MS44LTk0LjYgNDQuNC05NC42LTQuMyAuMS0xNC4zIC45LTE0IDIzLTEwNC4xbC0zMS44IDAgOS43LTM1LjYgNzYuNCAwYy0zMy42IDEzMy43LTMyLjYgMTI2LjktMzIuOSAxMzguMiAwIDIwLjkgNDAuOSAxMy41IDU3LjQtMjMuMmwxOS44LTc5LjQtMzIuMyAwIDkuNy0zNS42IDY4LjggMC04LjkgNDAuNWM0MC41LTc1LjUgMTI3LjktNDcuOCAxMDEuOCAzOC0xNC4yIDUxLjEtMTQuNiA1MC43LTE0LjkgNTguOCAwIDE1LjUgMTcuNSAyMi42IDMxLjgtMTYuOUwzODYgMzI1Yy0xMC41IDM2LjctMjkuNCA1Mi01My4yIDUyeiJdfSxHYXQ9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiZmFjZWJvb2stZiIsaWNvbjpbMzIwLDUxMixbXSwiZjM5ZSIsIk04MCAyOTkuM2wwIDIxMi43IDExNiAwIDAtMjEyLjcgODYuNSAwIDE4LTk3LjgtMTA0LjUgMCAwLTM0LjZjMC01MS43IDIwLjMtNzEuNSA3Mi43LTcxLjUgMTYuMyAwIDI5LjQgLjQgMzcgMS4ybDAtODguN0MyOTEuNCA0IDI1Ni40IDAgMjM2LjIgMCAxMjkuMyAwIDgwIDUwLjUgODAgMTU5LjRsMCA0Mi4xLTY2IDAgMCA5Ny44IDY2IDB6Il19LFlhdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJjZW50b3MiLGljb246WzQ0OCw1MTIsW10sImY3ODkiLCJNMjg5LjYgOTcuNWwzMS42IDMxLjctNzYuMyA3Ni41IDAtMTA4LjIgNDQuNyAwek0xMjcuMiAxMjkuMmw3Ni4zIDc2LjUgMC0xMDguMi00NC43IDAtMzEuNiAzMS43em00MS41LTQxLjZsNDQuNyAwIDAgMTI3LjkgMTAuOCAxMC44IDEwLjgtMTAuOCAwLTEyNy45IDQ0LjcgMC01NS41LTU1LjYtNTUuNSA1NS42em0yNi4yIDE2OC4xbC0xMC44LTEwLjgtMTI4LjYgMCAwLTQ0LjgtNTUuNSA1NS42IDU1LjUgNTUuNiAwLTQ0LjggMTI4LjYgMCAxMC44LTEwLjh6TTI3NC4yIDIzNWwxMDcuOSAwIDAtNDQuOC0zMS42LTMxLjctNzYuMyA3Ni41em0xNzMuMyAyMC43bC01NS41LTU1LjYgMCA0NC44LTEyNy43IDAtMTAuOCAxMC44IDEwLjggMTAuOCAxMjcuNyAwIDAgNDQuOCA1NS41LTU1LjZ6TTY1LjQgMTc2LjJsMzIuNS0zMS43IDkwLjMgOTAuNSAxNS4zIDAgMC0xNS4zLTkwLjMtOTAuNSAzMS42LTMxLjctNzkuNCAwIDAgNzguN3pNMzgyLjEgOTcuNWwtNzguNSAwIDMxLjYgMzEuNy05MC4zIDkwLjUgMCAxNS4zIDE1LjMgMCA5MC4zLTkwLjUgMzEuNiAzMS43IDAtNzguN3pNMjAzLjUgNDEzLjlsMC0xMDguMS03Ni4zIDc2LjUgMzEuNiAzMS43IDQ0LjcgMCAwLS4xek02NS40IDIzNWwxMDguOCAwLTc2LjMtNzYuNS0zMi41IDMxLjcgMCA0NC44ek0zODIuMSAzMzUuMmwtMzEuNiAzMS43LTkwLjMtOTAuNS0xNS4zIDAgMCAxNS4zIDkwLjMgOTAuNS0zMS42IDMxLjcgNzguNSAwIDAtNzguN3ptMC01OC44bC0xMDcuOSAwIDc2LjMgNzYuNSAzMS42LTMxLjcgMC00NC44ek0zMjEuMiAzODIuMmwtNzYuMy03Ni41IDAgMTA4LjEgNDQuNyAwIDMxLjYtMzEuNnpNOTcuOSAzNTIuOWw3Ni4zLTc2LjUtMTA4LjggMCAwIDQ0LjggMzIuNSAzMS43em0xODEuOCA3MC45bC00NC43IDAgMC0xMjcuOS0xMC44LTEwLjgtMTAuOCAxMC44IDAgMTI3LjktNDQuNyAwIDU1LjUgNTUuNiA1NS41LTU1LjZ6TTExMy4yIDM4Mi4ybDkwLjMtOTAuNSAwLTE1LjMtMTUuMyAwLTkwLjMgOTAuNS0zMi41LTMxLjcgMCA3OC43IDc5LjQgMC0zMS42LTMxLjd6Il19LFphdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJzY2FsZXdheSIsaWNvbjpbNDQ4LDUxMixbXSwiZTg1OSIsIk0yNDMuNCAxMTcuM2wtODQuMyAwYy0xOC41IDIuMS0zMi43IDE3LjUtMzMuNCAzNmwwIDEyMS45YzAgOC4yIDMuMiAxNS4zIDguNSAyMC43czEyLjUgOC42IDIwLjYgOC42YzE2IDAgMjkuMi0xMy4yIDI5LjItMjkuMmwwLTc3LjRjMC0xMi4xIDEwLTIyLjEgMjIuMS0yMi4xbDM4LjEgMGM4LjIgMCAxNS4zLTMuMiAyMC42LTguNnM4LjUtMTIuOCA4LjUtMjFjMC0xNi0xMy45LTI4LjktMjkuOS0yOC45ek0yMDUuMyAzOTUuNGw4NC4zIDBjMTguNS0yLjEgMzIuNy0xNy41IDMzLjQtMzZsMC0xMjEuOWMwLTguMi0zLjItMTUuMy04LjUtMjAuN3MtMTIuNS04LjYtMjAuNi04LjZjLTE2IDAtMjkuMiAxMy4yLTI5LjIgMjkuMmwwIDc3LjRjMCAxMi4xLTEwIDIyLjEtMjIuMSAyMi4xbC0zOC4xIDBjLTguMiAwLTE1LjMgMy4yLTIwLjYgOC42cy04LjUgMTIuOC04LjUgMjFjLjQgMTYgMTMuOSAyOC45IDI5LjkgMjguOXpNMTA0LjMgMEwyNTcuNiAwYzEwMSAwIDE4Mi41IDgxLjYgMTgyLjEgMTgyLjlsMCAyNDIuOGMtNC42IDQ2LTQyIDgyLjQtODguMiA4Ni4zTDE5MCA1MTJDODkuMyA1MTIgNy41IDQzMCA3LjUgMzI5LjFMNy41IDk3YzAtNTMuNSA0My40LTk3IDk2LjgtOTd6TTM4MS43IDE4Mi45YzAtNjguNS01NS45LTEyNC40LTEyNC4yLTEyNC40bC0xNTMgMEM4My4zIDU4LjUgNjYuMiA3NS42IDY2LjIgOTdsMCAyMzIuMWMwIDY4LjggNTUuNSAxMjQuNCAxMjQuMiAxMjQuNGwxNTguNyAwYzE2LjctMi4xIDI5LjktMTUgMzIuNy0zMS40bDAtMjM5LjJ6Il19LFhhdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJjYy1hbWF6b24tcGF5IixpY29uOls1NzYsNTEyLFtdLCJmNDJkIiwiTTEyNC43IDIwMS44Yy4xLTExLjggMC0yMy41IDAtMzUuM2wwLTM1LjNjMC0xLjMgLjQtMiAxLjQtMi43IDExLjUtOCAyNC4xLTEyLjEgMzguMi0xMS4xIDEyLjUgLjkgMjIuNyA3IDI4LjEgMjEuNyAzLjMgOC45IDQuMSAxOC4yIDQuMSAyNy43IDAgOC43LS43IDE3LjMtMy40IDI1LjYtNS43IDE3LjgtMTguNyAyNC43LTM1LjcgMjMuOS0xMS43LS41LTIxLjktNS0zMS40LTExLjctLjktLjgtMS40LTEuNi0xLjMtMi44em0xNTQuOSAxNC42YzQuNiAxLjggOS4zIDIgMTQuMSAxLjUgMTEuNi0xLjIgMjEuOS01LjcgMzEuMy0xMi41IC45LS42IDEuMy0xLjMgMS4zLTIuNS0uMS0zLjkgMC03LjkgMC0xMS44IDAtNC0uMS04IDAtMTIgMC0xLjQtLjQtMi0xLjgtMi4yLTctLjktMTMuOS0yLjItMjAuOS0yLjktNy0uNi0xNC0uMy0yMC44IDEuOS02LjcgMi4yLTExLjcgNi4yLTEzLjcgMTMuMS0xLjYgNS40LTEuNiAxMC44IC4xIDE2LjIgMS42IDUuNSA1LjIgOS4yIDEwLjQgMTEuMnpNNTc2IDgwbDAgMzUyYzAgMjYuNS0yMS41IDQ4LTQ4IDQ4TDQ4IDQ4MGMtMjYuNSAwLTQ4LTIxLjUtNDgtNDhMMCA4MEMwIDUzLjUgMjEuNSAzMiA0OCAzMmw0ODAgMGMyNi41IDAgNDggMjEuNSA0OCA0OHpNMzY4LjUgMTAzLjljLjQgMS43IC45IDMuNCAxLjYgNS4xIDE2LjUgNDAuNiAzMi45IDgxLjMgNDkuNSAxMjEuOSAxLjQgMy41IDEuNyA2LjQgLjIgOS45LTIuOCA2LjItNC45IDEyLjYtNy44IDE4LjctMi42IDUuNS02LjcgOS41LTEyLjcgMTEuMi00LjIgMS4xLTguNSAxLjMtMTIuOSAuOS0yLjEtLjItNC4yLS43LTYuMy0uOC0yLjgtLjItNC4yIDEuMS00LjMgNC0uMSAyLjgtLjEgNS42IDAgOC4zIC4xIDQuNiAxLjYgNi43IDYuMiA3LjUgNC43IC44IDkuNCAxLjYgMTQuMiAxLjcgMTQuMyAuMyAyNS43LTUuNCAzMy4xLTE3LjkgMi45LTQuOSA1LjYtMTAuMSA3LjctMTUuNCAxOS44LTUwLjEgMzkuNS0xMDAuMyA1OS4yLTE1MC41IC42LTEuNSAxLjEtMyAxLjMtNC42IC40LTIuNC0uNy0zLjYtMy4xLTMuNy01LjYtLjEtMTEuMSAwLTE2LjcgMC0zLjEgMC01LjMgMS40LTYuNCA0LjMtLjQgMS4xLS45IDIuMy0xLjMgMy40bC0yOS4xIDgzLjdjLTIuMSA2LjEtNC4yIDEyLjEtNi41IDE4LjYtLjQtLjktLjYtMS40LS44LTEuOS0xMC44LTI5LjktMjEuNi01OS45LTMyLjQtODkuOC0xLjctNC43LTMuNS05LjUtNS4zLTE0LjItLjktMi41LTIuNy00LTUuNC00LTYuNC0uMS0xMi44LS4yLTE5LjItLjEtMi4yIDAtMy4zIDEuNi0yLjggMy43ek0yNDIuNCAyMDZjMS43IDExLjcgNy42IDIwLjggMTggMjYuNiA5LjkgNS41IDIwLjcgNi4yIDMxLjcgNC42IDEyLjctMS45IDIzLjktNy4zIDMzLjgtMTUuNSAuNC0uMyAuOC0uNiAxLjQtMSAuNSAzLjIgLjkgNi4yIDEuNSA5LjIgLjUgMi42IDIuMSA0LjMgNC41IDQuNCA0LjYgLjEgOS4xIC4xIDEzLjcgMCAyLjMtLjEgMy44LTEuNiA0LTMuOSAuMS0uOCAuMS0xLjYgLjEtMi4zbDAtODguOGMwLTMuNi0uMi03LjItLjctMTAuOC0xLjYtMTAuOC02LjItMTkuNy0xNS45LTI1LjQtNS42LTMuMy0xMS44LTUtMTguMi01LjktMy0uNC02LS43LTkuMS0xLjFsLTEwIDBjLS44IC4xLTEuNiAuMy0yLjUgLjMtOC4yIC40LTE2LjMgMS40LTI0LjIgMy41LTUuMSAxLjMtMTAgMy4yLTE1IDQuOS0zIDEtNC41IDMuMi00LjQgNi41IC4xIDIuOC0uMSA1LjYgMCA4LjMgLjEgNC4xIDEuOCA1LjIgNS43IDQuMSA2LjUtMS43IDEzLjEtMy41IDE5LjctNC44IDEwLjMtMS45IDIwLjctMi43IDMxLjEtMS4yIDUuNCAuOCAxMC41IDIuNCAxNC4xIDcgMy4xIDQgNC4yIDguOCA0LjQgMTMuNyAuMyA2LjkgLjIgMTMuOSAuMyAyMC44IDAgLjQtLjEgLjctLjIgMS4yLS40IDAtLjggMC0xLjEtLjEtOC44LTIuMS0xNy43LTMuNi0yNi44LTQuMS05LjUtLjUtMTguOSAuMS0yNy45IDMuMi0xMC44IDMuOC0xOS41IDEwLjMtMjQuNiAyMC44LTQuMSA4LjMtNC42IDE3LTMuNCAyNS44ek05OC43IDEwNi45bDAgMTc1LjNjMCAuOCAwIDEuNyAuMSAyLjUgLjIgMi41IDEuNyA0LjEgNC4xIDQuMiA1LjkgLjEgMTEuOCAuMSAxNy43IDAgMi41IDAgNC0xLjcgNC4xLTQuMSAuMS0uOCAuMS0xLjcgLjEtMi41bDAtNjAuN2MuOSAuNyAxLjQgMS4yIDEuOSAxLjYgMTUgMTIuNSAzMi4yIDE2LjYgNTEuMSAxMi45IDE3LjEtMy40IDI4LjktMTMuOSAzNi43LTI5LjIgNS44LTExLjYgOC4zLTI0LjEgOC43LTM3IC41LTE0LjMtMS0yOC40LTYuOC00MS43LTcuMS0xNi40LTE4LjktMjcuMy0zNi43LTMwLjktMi43LS42LTUuNS0uOC04LjItMS4ybC03IDBjLTEuMiAuMi0yLjQgLjMtMy42IC41LTExLjcgMS40LTIyLjMgNS44LTMxLjggMTIuNy0yIDEuNC0zLjkgMy01LjkgNC41LS4xLS41LS4zLS44LS40LTEuMi0uNC0yLjMtLjctNC42LTEuMS02LjktLjYtMy45LTIuNS01LjUtNi40LTUuNmwtOS43IDBjLTUuOS0uMS02LjkgMS02LjkgNi44ek00OTMuNiAzMzljLTIuNy0uNy01LjEgMC03LjYgMS00My45IDE4LjQtODkuNSAzMC4yLTEzNi44IDM1LjgtMTQuNSAxLjctMjkuMSAyLjgtNDMuNyAzLjItMjYuNiAuNy01My4yLS44LTc5LjYtNC4zLTE3LjgtMi40LTM1LjUtNS43LTUzLTkuOS0zNy04LjktNzIuNy0yMS43LTEwNi43LTM4LjgtOC44LTQuNC0xNy40LTkuMy0yNi4xLTE0LTMuOC0yLjEtNi4yLTEuNS04LjIgMi4xbDAgMS43YzEuMiAxLjYgMi4yIDMuNCAzLjcgNC44IDM2IDMyLjIgNzYuNiA1Ni41IDEyMiA3Mi45IDIxLjkgNy45IDQ0LjQgMTMuNyA2Ny4zIDE3LjUgMTQgMi4zIDI4IDMuOCA0Mi4yIDQuNSAzIC4xIDYgLjIgOSAuNCAuNyAwIDEuNCAuMiAyLjEgLjNsMTcuNyAwYy43LS4xIDEuNC0uMyAyLjEtLjMgMTQuOS0uNCAyOS44LTEuOCA0NC42LTQgMjEuNC0zLjIgNDIuNC04LjEgNjIuOS0xNC43IDI5LjYtOS42IDU3LjctMjIuNCA4My40LTQwLjEgMi44LTEuOSA1LjctMy44IDgtNi4yIDQuMy00LjQgMi4zLTEwLjQtMy4zLTExLjl6TTU0NCAzMTEuM2MtLjgtNC4yLTQtNS44LTcuNi03LTUuNy0xLjktMTEuNi0yLjgtMTcuNi0zLjMtMTEtLjktMjItLjQtMzIuOCAxLjYtMTIgMi4yLTIzLjQgNi4xLTMzLjUgMTMuMS0xLjIgLjgtMi40IDEuOC0zLjEgMy0uNiAuOS0uNyAyLjMtLjUgMy40IC4zIDEuMyAxLjcgMS42IDMgMS41IC42IDAgMS4yIDAgMS44LS4xbDE5LjUtMi4xYzkuNi0uOSAxOS4yLTEuNSAyOC44LS44IDQuMSAuMyA4LjEgMS4yIDEyIDIuMiA0LjMgMS4xIDYuMiA0LjQgNi40IDguNyAuMyA2LjctMS4yIDEzLjEtMi45IDE5LjUtMy41IDEyLjktOC4zIDI1LjQtMTMuMyAzNy44LS4zIC44LS43IDEuNy0uOCAyLjUtLjQgMi41IDEgNCAzLjQgMy41IDEuNC0uMyAzLTEuMSA0LTIuMSAzLjctMy42IDcuNS03LjIgMTAuNi0xMS4yIDEwLjctMTMuOCAxNy0yOS42IDIwLjctNDYuNiAuNy0zIDEuMi02LjEgMS43LTkuMSAuMi00LjcgLjItOS42IC4yLTE0LjV6Il19LFFhdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJlYmF5IixpY29uOls2NDAsNTEyLFtdLCJmNGY0IiwiTTYwNi41IDE4OS41bC01NC44IDEwOS45LTU0LjktMTA5LjktMzcuNSAwIDEwLjkgMjAuNmMtMTEuNS0xOS0zNS45LTI2LTYzLjMtMjYtMzEuOCAwLTY3LjkgOC43LTcxLjUgNDMuMWwzMy43IDBjMS40LTEzLjggMTUuNy0yMS44IDM1LTIxLjggMjYgMCA0MSA5LjYgNDEgMzNsMCAzLjRjLTEyLjcgMC0yOCAuMS00MS43IC40LTQyLjQgLjktNjkuNiAxMC03Ni43IDM0LjQgMS01LjIgMS41LTEwLjYgMS41LTE2LjIgMC01Mi4xLTM5LjctNzYuMi03NS40LTc2LjItMjEuMyAwLTQzIDUuNS01OC43IDI0LjJsMC04MC42LTMyLjEgMCAwIDE2OS41YzAgMTAuMy0uNiAyMi45LTEuMSAzMy4xbDMxLjUgMGMuNy02LjMgMS4xLTEyLjkgMS4xLTE5LjUgMTMuNiAxNi42IDM1LjQgMjQuOSA1OC43IDI0LjkgMzYuOSAwIDY0LjktMjEuOSA3My4zLTU0LjItLjUgMi44LS43IDUuOC0uNyA5IDAgMjQuMSAyMS4xIDQ1IDYwLjYgNDUgMjYuNiAwIDQ1LjgtNS43IDYxLjktMjUuNSAwIDYuNiAuMyAxMy4zIDEuMSAyMC4ybDI5LjggMGMtLjctOC4yLTEtMTcuNS0xLTI2LjhsMC02NS42YzAtOS4zLTEuNy0xNy4yLTQuOC0yMy44bDYxLjUgMTE2LjEtMjguNSA1NC4xIDM1LjkgMCA5OS4yLTE5NC44LTM0IDB6TTI0NC4yIDMxMy44Yy0yOS42IDAtNTAuMi0yMS41LTUwLjItNTMuOCAwLTMyLjQgMjAuNi01My44IDUwLjItNTMuOCAyOS44IDAgNTAuMiAyMS40IDUwLjIgNTMuOCAwIDMyLjMtMjAuNCA1My44LTUwLjIgNTMuOHptMjAwLjktNDcuM2MwIDMwLTE3LjkgNDguNC01MS42IDQ4LjQtMjUuMSAwLTM1LTEzLjQtMzUtMjUuOCAwLTE5LjEgMTguMS0yNC40IDQ3LjItMjUuMyAxMy4xLS41IDI3LjYtLjYgMzkuNC0uNmwwIDMuM3pNMzMuMiAyNjguMWwxMjguOCAwIDAtOC41YzAtNTEuNy0zMy4xLTc1LjQtNzguNC03NS40LTU2LjggMC04MyAzMC44LTgzIDc3LjYgMCA0Mi41IDI1LjMgNzQgODIuNSA3NCAzMS40IDAgNjgtMTEuNyA3NC40LTQ2LjFsLTMzLjEgMGMtMTIgMzUuOC04Ny43IDM2LjctOTEuMi0yMS42em05NS0yMS40bC05NC40IDBjNi45LTU2LjYgOTIuMS01NC43IDk0LjQgMHoiXX0sSmF0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImNvbnRhbyIsaWNvbjpbNTEyLDUxMixbXSwiZjI2ZCIsIk00NS40IDMwNWMxNC40IDY3LjEgMjYuNCAxMjkgNjguMiAxNzVMMzQgNDgwYy0xOC43IDAtMzQtMTUuMi0zNC0zNEwwIDY2QzAgNDcuMyAxNS4yIDMyIDM0IDMybDU3LjcgMGMtMTMuOCAxMi42LTI2LjEgMjcuMi0zNi45IDQzLjYtNDUuNCA3MC0yNyAxNDYuOC05LjQgMjI5LjR6TTQ3OCAzMmwtOTAuMiAwYzIxLjQgMjEuNCAzOS4yIDQ5LjUgNTIuNyA4NC4xTDMwMy40IDE0NS40Yy0xNC45LTI5LTM3LjgtNTMuMy04Mi42LTQzLjktMjQuNiA1LjMtNDEgMTkuMy00OC4zIDM0LjYtOC44IDE4LjctMTMuMiAzOS44IDguMiAxNDAuMyAyMS4xIDEwMC4yIDMzLjcgMTE3LjcgNDkuNSAxMzEuMiAxMi45IDExLjEgMzMuNCAxNyA1OC4zIDExLjcgNDQuNS05LjQgNTUuNy00MC43IDU3LjQtNzMuMmwxMzcuNC0yOS42YzMuMiA3MS41LTE4LjcgMTI1LjItNTcuNCAxNjMuNmw1Mi4xIDBjMTguNyAwIDM0LTE1LjIgMzQtMzRMNTEyIDY2YzAtMTguOC0xNS4yLTM0LTM0LTM0eiJdfSxLYXQ9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiZWxsbyIsaWNvbjpbNTEyLDUxMixbXSwiZjVmMSIsIk0yNTYgOGEyNDggMjQ4IDAgMSAwIDAgNDk2IDI0OCAyNDggMCAxIDAgMC00OTZ6TTM5OS44IDI5My4yQzM4My4zIDM1OC41IDMyMy44IDQwNC44IDI1NiA0MDQuOFMxMjguNyAzNTguNSAxMTIuMiAyOTMuMmMtMS42LTcuNCAyLjUtMTUuNyA5LjktMTcuNHMxNS43IDIuNSAxNy40IDkuOWMxNCA1Mi45IDYyIDkwLjEgMTE2LjYgOTAuMXMxMDIuNS0zNy4yIDExNi42LTkwLjFjMS43LTcuNCA5LjktMTIuNCAxNy40LTkuOSA3LjQgMS43IDEyLjQgOS45IDkuOSAxNy40eiJdfSxlbnQ9e3ByZWZpeDoiZmFiIixpY29uTmFtZToic2lzdHJpeCIsaWNvbjpbNDQ4LDUxMixbXSwiZjNlZSIsIk00NDggNDQ5TDMwMS4yIDMwMC4yYzIwLTI3LjkgMzEuOS02Mi4yIDMxLjktOTkuMiAwLTkzLjEtNzQuNy0xNjguOS0xNjYuNS0xNjguOS05MS45LS4xLTE2Ni42IDc1LjctMTY2LjYgMTY4LjhTNzQuNyAzNjkuOCAxNjYuNSAzNjkuOGMzOS44IDAgNzYuMy0xNC4yIDEwNS0zNy45TDQxNy41IDQ4MCA0NDggNDQ5ek0xNjYuNSAzMzAuOGMtNzAuNiAwLTEyOC4xLTU4LjMtMTI4LjEtMTI5LjlTOTUuOSA3MSAxNjYuNSA3MSAyOTQuNiAxMjkuMyAyOTQuNiAyMDAuOSAyMzcuMiAzMzAuOCAxNjYuNSAzMzAuOHoiXX0sdG50PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6InBlcmlzY29wZSIsaWNvbjpbNDQ4LDUxMixbXSwiZjNkYSIsIk0zNzAgNjMuNmMtMzguNi00MS04OS41LTYzLjYtMTQzLjQtNjMuNi0xMTQuNyAwLTIwOC4xIDk2LjItMjA4LjEgMjE0LjQgMCA3NS4xIDU3LjggMTU5LjggODIuNyAxOTIuNyAzNi42IDQ4LjQgOTEuNCAxMDQuOSAxMjUuNCAxMDQuOSA0MS42IDAgMTEyLjktOTQuMiAxMjAuOS0xMDUgMjQuNi0zMy4xIDgyLTExOC4zIDgyLTE5Mi42IDAtNTYuNS0yMS4xLTExMC4xLTU5LjUtMTUwLjh6TTIyNi42IDQ5My45Yy00Mi41IDAtMTkwLTE2Ny4zLTE5MC0yNzkuNCAwLTEwNy40IDgzLjktMTk2LjMgMTkwLTE5Ni4zIDEwMC44IDAgMTg0LjcgODkgMTg0LjcgMTk2LjMgLjEgMTEyLjEtMTQ3LjQgMjc5LjQtMTg0LjcgMjc5LjR6TTMzOCAyMDYuOGMwIDU5LjEtNTEuMSAxMDkuNy0xMTAuOCAxMDkuNy0xMDAuNiAwLTE1MC43LTEwOC4yLTkyLjktMTgxLjhsMCAuNGMwIDI0LjUgMjAuMSA0NC40IDQ0LjggNDQuNHM0NC44LTE5LjkgNDQuOC00NC40YzAtMTguMi0xMS4xLTMzLjgtMjYuOS00MC43IDc2LjYtMTkuMiAxNDEgMzkuMyAxNDEgMTEyLjR6Il19LHJudD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJleHBlZGl0ZWRzc2wiLGljb246WzUxMiw1MTIsW10sImYyM2UiLCJNMjU2IDQzLjRhMjEyLjYgMjEyLjYgMCAxIDAgMCA0MjUuMiAyMTIuNiAyMTIuNiAwIDEgMCAwLTQyNS4yek0xNTguNiAxNzYuM2MwLTUzLjcgNDMuNy05Ny40IDk3LjQtOTcuNHM5Ny40IDQzLjcgOTcuNCA5Ny40bDAgMjYuNmMwIDUtMy45IDguOS04LjkgOC45bC0xNy43IDBjLTUgMC04LjktMy45LTguOS04LjlsMC0yNi42YzAtODIuMS0xMjQtODIuMS0xMjQgMGwwIDI2LjZjMCA1LTMuOSA4LjktOC45IDguOWwtMTcuNyAwYy01IDAtOC45LTMuOS04LjktOC45bDAtMjYuNiAuMiAwek0zOTcuNyAzODBjMCA5LjctOCAxNy43LTE3LjcgMTcuN2wtMjQ4IDBjLTkuNyAwLTE3LjctOC0xNy43LTE3LjdsMC0xNDEuN2MwLTkuNyA4LTE3LjcgMTcuNy0xNy43bDI0OCAwYzkuNyAwIDE3LjcgOCAxNy43IDE3LjdsMCAxNDEuN3ptLTI0OC0xMzcuM2wwIDEzMi45YzAgMi41LTEuOSA0LjQtNC40IDQuNGwtOC45IDBjLTIuNSAwLTQuNC0xLjktNC40LTQuNGwwLTEzMi45YzAtMi41IDEuOS00LjQgNC40LTQuNGw4LjkgMGMyLjUgMCA0LjQgMS45IDQuNCA0LjR6bTE0MS43IDQ4LjdjMCAxMy03LjIgMjQuNC0xNy43IDMwLjRsMCAzMS42YzAgNS0zLjkgOC45LTguOSA4LjlsLTE3LjcgMGMtNSAwLTguOS0zLjktOC45LTguOWwwLTMxLjZjLTEwLjUtNi4xLTE3LjctMTcuNC0xNy43LTMwLjQgMC0xOS43IDE1LjgtMzUuNCAzNS40LTM1LjRzMzUuNSAxNS44IDM1LjUgMzUuNHpNMjU2IDhhMjQ4IDI0OCAwIDEgMCAwIDQ5NiAyNDggMjQ4IDAgMSAwIDAtNDk2em0wIDE3LjdhMjMwLjMgMjMwLjMgMCAxIDEgMCA0NjAuNiAyMzAuMyAyMzAuMyAwIDEgMSAwLTQ2MC42eiJdfSxpbnQ9e3ByZWZpeDoiZmFiIixpY29uTmFtZToibmFwc3RlciIsaWNvbjpbNTEyLDUxMixbXSwiZjNkMiIsIk0zMDYuMyAzNzMuNmMtMTQuMiAxMy42LTMxLjMgMjQuMS01MC40IDMwLjUtMTktNi40LTM2LjItMTYuOS01MC4zLTMwLjVsMTAwLjcgMHptNDQtMTk5LjZjMjAtMTYuOSA0My42LTI5LjIgNjkuNi0zNi4ybDAgMTYxLjJjMCAyMTkuNC0zMjggMjE3LjYtMzI4IC4zbDAtMTYxLjZjMjUuOSA2LjkgNDkuNiAxOS42IDY5LjUgMzYuNCA1Ni44LTQwIDEzMi41LTM5LjkgMTg4LjktLjF6TTE0MS41IDExNS41YzY0LjQtNjAgMTY0LjMtNjAuMSAyMjguOS0uMi03LjEgMy41LTEzLjkgNy4zLTIwLjYgMTEuNS01OC43LTMwLjUtMTI5LjItMzAuNC0xODcuOSAuMS02LjMtNC0xMy45LTguMi0yMC40LTExLjR6TTUxLjggOTMuMmwwIDY5LjNjLTU4LjQgMzYuNS01OC40IDEyMS4xIC4xIDE1OC4zIDI2LjQgMjQ1LjEgMzgxLjcgMjQwLjMgNDA3LjYgMS41bC4zLTEuN2M1OC43LTM2LjMgNTguOS0xMjEuNyAuMi0xNTguMmwwLTY5LjJjLTE3LjMgLjUtMzQgMy01MC4xIDcuNC04Mi05MS41LTIyNS41LTkxLjUtMzA3LjUgLjEtMTYuMy00LjQtMzMuMS03LTUwLjYtNy41ek0yNjcuMiAzNTJzMzYtLjMgNjEuMy0xLjVjMTAuMi0uNSAyMS4xLTQgMjUuNS02LjUgMjYuMy0xNS4xIDI1LjQtMzkuMiAyNi4yLTQ3LjQtNzkuNS0uNi05OS45LTMuOS0xMTMgNTUuNHpNMTMxLjcgMjk2LjdjLjggOC4yLS4xIDMyLjMgMjYuMiA0Ny40IDQuNCAyLjUgMTUuMiA2IDI1LjUgNi41IDI1LjMgMS4xIDYxLjMgMS41IDYxLjMgMS41LTEzLjItNTkuNC0zMy43LTU2LjEtMTEzLTU1LjR6TTMwMC44IDQyMC4xYy0zLjItNS4zLTYuOS03LjMtNi45LTcuMy0yNC44IDcuMy01Mi4yIDYuOS03NS45IDAgMCAwLTIuOSAxLjUtNi40IDYuNi0yLjggNC4xLTMuNyA5LjYtMy43IDkuNiAyOS4xIDE3LjYgNjcuMSAxNy42IDk2LjIgMC0uMS0uMS0uMy00LTMuMy04Ljl6Il19LGFudD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJkZWxpY2lvdXMiLGljb246WzQ0OCw1MTIsW10sImYxYTUiLCJNNDQ2LjYgNjhjLS40LTEuNS0uOS0zLTEuNC00LjUtLjktMi41LTItNC44LTMuMy03LjEtMS40LTIuNC0zLTQuOC00LjctNi45LTIuMS0yLjUtNC40LTQuOC02LjktNi44LTEuMS0uOS0yLjItMS43LTMuMy0yLjUtMS4zLS45LTIuNi0xLjctNC0yLjQtMS44LTEtMy42LTEuOC01LjUtMi41LTEuNy0uNy0zLjUtMS4zLTUuNC0xLjctMy44LTEtNy45LTEuNS0xMi0xLjVsLTM1MiAwQzIxLjYgMzIgLjEgNTMuNSAuMSA4MGwwIDM1MmMwIDQuMSAuNSA4LjIgMS41IDEyIDIgNy43IDUuOCAxNC42IDExIDIwLjMgMSAxLjEgMi4xIDIuMiAzLjMgMy4zIDUuNyA1LjIgMTIuNiA5IDIwLjMgMTEgMy44IDEgNy45IDEuNSAxMiAxLjVsMzUyIDBjMjYuNSAwIDQ4LTIxLjUgNDgtNDhsMC0zNTIuMWMtLjEtNC4xLS42LTguMi0xLjYtMTJ6TTQxNi4xIDQzMmMwIDguOC03LjIgMTYtMTYgMTZsLTE3NiAwIDAtMTkyLTE5MiAwIDAtMTc2YzAtOC44IDcuMi0xNiAxNi0xNmwxNzYgMCAwIDE5MiAxOTIgMCAwIDE3NnoiXX0sbm50PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6Imd1aWxkZWQiLGljb246WzQ0OCw1MTIsW10sImUwN2UiLCJNNDQzLjkgNjRMNSA2NGMwIDEwMy4zIDIyLjIgMTgwLjEgNDMuNCAyMjIuNCA2NC4xIDEyNy44IDE3NiAxNjEuNiAxNzcuMyAxNjEuNiA1NS43LTIwLjUgMTA0LjUtNTYuMyAxNDAuNi0xMDMuNSAyNS45LTMzLjkgNTMuMS04Ny4yIDY1LjktMTQ1LjhsLTI1OS45IDBjNC4xIDM2LjQgMjIuMiA2Ny45IDQ1LjEgODYuOWw4OC42IDBjLTE3IDI4LjItNDguMiA1NC40LTgwLjUgNjkuNS0zMS4yLTEzLjMtNjkuMS00Ni41LTk2LjUtOTguNC0yNi43LTUzLjgtMjcuMS0xMDUuOS0yNy4xLTEwNS45bDMzNi4xIDBjNC0yOC44IDUuOS01Ny45IDUuOS04Ni45eiJdfSxvbnQ9e3ByZWZpeDoiZmFiIixpY29uTmFtZToib2JzaWRpYW4iLGljb246WzM4NCw1MTIsW10sImU4NzkiLCJNMTQyLjMgMzIwLjNjMzYuMS04LjIgNzAuMy0xMSAxMDEuMyAuNyAzMS44IDExLjkgNjEuNyAzOS42IDg2LjcgOTYtOC4xIDE3LjctMTIuNCAzNi45LTE0LjcgNTMuOC0zLjEgMjIuOS0yNS40IDQwLjctNDcuNyAzNC42LTMxLjctOC43LTY4LjMtMjIuMy0xMDEuMy0yNC45LTQuNC0uMy01MC42LTMuOC01MC42LTMuOC0xLjctLjEtMy40LS40LTUuMS0uOCAzMS41LTY0LjIgMzguMi0xMTUuMSAzMS4zLTE1NS40ek01NSAyMTkuNWMyMi4zIDE0LjggNDkuNSAzNy44IDY0LjEgNzMuNiAxNi4xIDM5LjQgMTcuOCA5NS43LTIxLjYgMTc2LjEtMS0uOC0yLjEtMS43LTMtMi43TDcuNCAzNzYuOGMtOS41LTkuOC0xMi4xLTI0LjQtNi41LTM2LjkgLjYtMS4zIDQ0LjYtOTguMyA1NC4xLTEyMC40em0yNjQuMy05MS4zYzQuOSA2LjIgNy40IDE0IDcuNCAyMS45IC4xIDIwLjggMS44IDYzLjYgMTMuMyA5MS4yIDExLjIgMjYuOCAzMS44IDU1LjggNDIuNSA3MCA0LjEgNS41IDQuOCAxMi45IDEuMyAxOC43LTcuNiAxMi44LTIyLjYgMzcuNS00My44IDY5LjItLjMgLjQtLjYgLjktLjggMS4zLTI1LjItNTIuMi01NS45LTgwLjctOTAuNC05My42LTkuNi0zLjYtMTkuNS02LTI5LjQtNy4zLTE3LjgtNDUuOC0yMy4yLTc5LjctMjItMTA2LjQgMS4yLTI3LjQgOS4yLTQ3LjggMTguMi02Ni4zIDguOS0xOC4xIDE5LjgtMzUuOSAyNC45LTU1LjcgMy4yLTEyLjUgNC4yLTI1LjggMS43LTQwLjlsNzcuMSA5OHpNMTg0LjIgMTQuMWMxMC4zLTkuMiAyNC42LTEwLjggMzYuMy01LjUgOS42IDI0LjYgOS43IDQyLjggNS42IDU4LjgtNC42IDE3LjgtMTQuMSAzMy0yMy45IDUyLjgtOS42IDE5LjUtMTguNCA0Mi0xOS43IDcyLjMtMS4yIDI3LjkgNC4xIDYxLjkgMjAuNCAxMDUuOC0yMS0uNi00Mi41IDIuNi02My43IDcuNC0xLjctNi40LTMuOC0xMi40LTYuMS0xOC4yLTE3LjMtNDIuMi00OS45LTY3LjktNzQuMS04My4zIDMuMS0xOC43IDguMi01NS40IDExLjYtNzcuNSAxLjItNy42IDQuOS0xNC42IDEwLjctMTkuOEwxODQuMiAxNC4xeiJdfSxzbnQ9e3ByZWZpeDoiZmFiIixpY29uTmFtZToieGJveCIsaWNvbjpbNTEyLDUxMixbXSwiZjQxMiIsIk0zNjkuOSAzMTguMmM0NC4zIDU0LjMgNjQuNyA5OC44IDU0LjQgMTE4LjctNy45IDE1LjEtNTYuNyA0NC42LTkyLjYgNTUuOS0yOS42IDkuMy02OC40IDEzLjMtMTAwLjQgMTAuMi0zOC4yLTMuNy03Ni45LTE3LjQtMTEwLjEtMzktMjcuOS0xOC4yLTM0LjItMjUuNy0zNC4yLTQwLjYgMC0yOS45IDMyLjktODIuMyA4OS4yLTE0Mi4xIDMyLTMzLjkgNzYuNS03My43IDgxLjQtNzIuNiA5LjQgMi4xIDg0LjMgNzUuMSAxMTIuMyAxMDkuNXpNMTg4LjYgMTQzLjhjLTI5LjctMjYuOS01OC4xLTUzLjktODYuNC02My40LTE1LjItNS4xLTE2LjMtNC44LTI4LjcgOC4xLTI5LjIgMzAuNC01My41IDc5LjctNjAuMyAxMjIuNC01LjQgMzQuMi02LjEgNDMuOC00LjIgNjAuNSA1LjYgNTAuNSAxNy4zIDg1LjQgNDAuNSAxMjAuOSA5LjUgMTQuNiAxMi4xIDE3LjMgOS4zIDkuOS00LjItMTEtLjMtMzcuNSA5LjUtNjQgMTQuMy0zOSA1My45LTExMi45IDEyMC4zLTE5NC40em0zMTEuNiA2My41Yy0xNi45LTgwLTY3LjUtMTMwLjMtNzQuNi0xMzAuMy03LjMgMC0yNC4yIDYuNS0zNiAxMy45LTIzLjMgMTQuNS00MSAzMS40LTY0LjMgNTIuOCA0Mi40IDUzLjMgMTAyLjIgMTM5LjQgMTIyLjkgMjAyLjMgNi44IDIwLjcgOS43IDQxLjEgNy40IDUyLjMtMS43IDguNS0xLjcgOC41IDEuNCA0LjYgNi4xLTcuNyAxOS45LTMxLjMgMjUuNC00My41IDcuNC0xNi4yIDE1LTQwLjIgMTguNi01OC43IDQuMy0yMi41IDMuOS03MC44LS44LTkzLjR6TTE0MS4zIDQzYzQ3LjctMi41IDEwOS43IDM0LjUgMTE0LjMgMzUuNCAuNyAuMSAxMC40LTQuMiAyMS42LTkuNyA2My45LTMxLjEgOTQtMjUuOCAxMDcuNC0yNS4yLTYzLjktMzkuMy0xNTIuNy01MC0yMzMuOS0xMS43LTIzLjQgMTEuMS0yNCAxMS45LTkuNCAxMS4yeiJdfSxsbnQ9e3ByZWZpeDoiZmFiIixpY29uTmFtZToidW50YXBwZCIsaWNvbjpbNjQwLDUxMixbXSwiZjQwNSIsIk00MDEuNSA0OS45QzMyMS43IDIxMCAzMTYuOSAyMDIuNCAzMTMuNiAyMjMuMWwtNS4yIDMyLjhjLTEuOSAxMi02LjYgMjMuNS0xMy43IDMzLjRMMTQ1LjggNDk3LjFjLTcuNiAxMC42LTIwLjQgMTYuMi0zMy40IDE0LjYtNDAuMy01LTc3LjgtMzIuMi05NS4zLTY4LjUtNS43LTExLjgtNC41LTI1LjggMy4xLTM2LjRMMTY5LjEgMTk4LjljNy4xLTkuOSAxNi40LTE4IDI3LjItMjMuN2wyOS4zLTE1LjVjMTguNS05LjggOS43LTExLjkgMTM1LjYtMTM4LjkgMS00LjggMS03LjMgMy42LTggMy0uNyA2LjYtMSA2LjMtNC42bC0uNC00LjZjLS4yLTEuOSAxLjMtMy42IDMuMi0zLjYgNC41LS4xIDEzLjIgMS4yIDI1LjYgMTAgMTIuMyA4LjkgMTYuNCAxNi44IDE3LjcgMjEuMSAuNiAxLjgtLjYgMy43LTIuNCA0LjJsLTQuNSAxLjFjLTMuNCAuOS0yLjUgNC40LTIuMyA3LjQgLjEgMi44LTIuMyAzLjYtNi41IDYuMXpNMjMwLjMgMzYuNGMzLjQgLjkgMi41IDQuNCAyLjMgNy40LS4yIDIuNyAyLjEgMy41IDYuNCA2IDcuOSAxNS45IDE1LjMgMzAuNSAyMi4yIDQ0IC43IDEuMyAyLjMgMS41IDMuMyAuNSAxMS4yLTEyIDI0LjYtMjYuMiA0MC41LTQyLjYgMS4zLTEuNCAxLjQtMy41IC4xLTQuOS04LTguMi0xNi41LTE2LjktMjUuNi0yNi4xLTEtNC43LTEtNy4zLTMuNi04LTMtLjgtNi42LTEtNi4zLTQuNiAuMy0zLjMgMS40LTguMS0yLjgtOC4yLTQuNS0uMS0xMy4yIDEuMS0yNS42IDEwLTEyLjMgOC45LTE2LjQgMTYuOC0xNy43IDIxLjEtMS40IDQuMiAzLjYgNC42IDYuOCA1LjR6TTYyMC4yIDQwNi43TDQ3MS40IDE5OC44Yy0xMy4yLTE4LjUtMjYuNi0yMy40LTU2LjQtMzkuMS0xMS4yLTUuOS0xNC4yLTEwLjktMzAuNS0yOC45LTEtMS4xLTIuOS0uOS0zLjYgLjUtNDYuMyA4OC44LTQ3LjEgODIuOC00OSA5NC44LTEuNyAxMC43LTEuMyAyMCAuMyAyOS44IDEuOSAxMiA2LjYgMjMuNSAxMy43IDMzLjRMNDk0LjggNDk3LjJjNy42IDEwLjYgMjAuMiAxNi4yIDMzLjEgMTQuNyA0MC4zLTQuOSA3OC0zMiA5NS43LTY4LjYgNS40LTExLjkgNC4zLTI1LjktMy40LTM2LjZ6Il19LGNudD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJnb29nbGUtcGx1cy1nIixpY29uOls2NDAsNTEyLFtdLCJmMGQ1IiwiTTM4Ni4zIDIyOC41YzEuOCA5LjcgMy4xIDE5LjQgMy4xIDMyIDAgMTA5LjgtNzMuNiAxODcuNS0xODQuNCAxODcuNS0xMDYuMSAwLTE5Mi04NS45LTE5Mi0xOTJTOTguOSA2NCAyMDUgNjRjNTEuOSAwIDk1LjEgMTguOSAxMjguNiA1MC4zbC01Mi4xIDUwYy0xNC4xLTEzLjYtMzktMjkuNi03Ni41LTI5LjYtNjUuNSAwLTExOC45IDU0LjItMTE4LjkgMTIxLjNTMTM5LjUgMzc3LjMgMjA1IDM3Ny4zYzc2IDAgMTA0LjUtNTQuNyAxMDktODIuOGwtMTA5IDAgMC02NiAxODEuMyAwIDAgMHptMTg1LjQgNi40bDAtNTUuNy01NiAwIDAgNTUuNy01NS43IDAgMCA1NiA1NS43IDAgMCA1NS43IDU2IDAgMC01NS43IDU1LjcgMCAwLTU2LTU1LjcgMHoiXX0sZG50PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImdpdGh1Yi1hbHQiLGljb246WzUxMiw1MTIsW10sImYxMTMiLCJNMjAyLjEgMzI4LjdjMCAyMC45LTEwLjkgNTUuMS0zNi43IDU1LjFzLTM2LjctMzQuMi0zNi43LTU1LjEgMTAuOS01NS4xIDM2LjctNTUuMSAzNi43IDM0LjIgMzYuNyA1NS4xek00OTYgMjc4LjJjMCAzMS45LTMuMiA2NS43LTE3LjUgOTUtMzcuOSA3Ni42LTE0Mi4xIDc0LjgtMjE2LjcgNzQuOC03NS44IDAtMTg2LjIgMi43LTIyNS42LTc0LjgtMTQuNi0yOS0yMC4yLTYzLjEtMjAuMi05NSAwLTQxLjkgMTMuOS04MS41IDQxLjUtMTEzLjYtNS4yLTE1LjgtNy43LTMyLjQtNy43LTQ4LjggMC0yMS41IDQuOS0zMi4zIDE0LjYtNTEuOCA0NS4zIDAgNzQuMyA5IDEwOC44IDM2IDI5LTYuOSA1OC44LTEwIDg4LjctMTAgMjcgMCA1NC4yIDIuOSA4MC40IDkuMiAzNC0yNi43IDYzLTM1LjIgMTA3LjgtMzUuMiA5LjggMTkuNSAxNC42IDMwLjMgMTQuNiA1MS44IDAgMTYuNC0yLjYgMzIuNy03LjcgNDguMiAyNy41IDMyLjQgMzkgNzIuMyAzOSAxMTQuMnptLTY0LjMgNTAuNWMwLTQzLjktMjYuNy04Mi42LTczLjUtODIuNi0xOC45IDAtMzcgMy40LTU2IDYtMTQuOSAyLjMtMjkuOCAzLjItNDUuMSAzLjItMTUuMiAwLTMwLjEtLjktNDUuMS0zLjItMTguNy0yLjYtMzctNi01Ni02LTQ2LjggMC03My41IDM4LjctNzMuNSA4Mi42IDAgODcuOCA4MC40IDEwMS4zIDE1MC40IDEwMS4zbDQ4LjIgMGM3MC4zIDAgMTUwLjYtMTMuNCAxNTAuNi0xMDEuM3ptLTgyLjYtNTUuMWMtMjUuOCAwLTM2LjcgMzQuMi0zNi43IDU1LjFzMTAuOSA1NS4xIDM2LjcgNTUuMSAzNi43LTM0LjIgMzYuNy01NS4xLTEwLjktNTUuMS0zNi43LTU1LjF6Il19LHVudD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJnZXQtcG9ja2V0IixpY29uOls0NDgsNTEyLFtdLCJmMjY1IiwiTTQwNy42IDY0bC0zNjcgMEMxOC41IDY0IDAgODIuNSAwIDEwNC42TDAgMjM5LjhDMCAzNjQuNSA5OS43IDQ2NCAyMjQuMiA0NjQgMzQ4LjIgNDY0IDQ0OCAzNjQuNSA0NDggMjM5LjhsMC0xMzUuMkM0NDggODIuMiA0MzAuMyA2NCA0MDcuNiA2NHptLTE2MiAyNjguNWMtMTIuNCAxMS44LTMxLjQgMTEuMS00Mi40IDAtMTEzLjctMTA4LjktMTE0LjktMTA1LjEtMTE0LjktMTIzLjIgMC0xNi45IDEzLjgtMzAuNyAzMC43LTMwLjcgMTcgMCAxNi4xIDMuOCAxMDUuMiA4OS4zIDkwLjYtODYuOSA4OC42LTg5LjMgMTA1LjUtODkuM3MzMC43IDEzLjggMzAuNyAzMC43YzAgMTcuOC0yLjkgMTUuNy0xMTQuOCAxMjMuMnoiXX0scG50PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImdsaWRlIixpY29uOls0NDgsNTEyLFtdLCJmMmE1IiwiTTI1Mi44IDE0OC42YzAgOC44LTEuNiAxNy43LTMuNCAyNi40LTUuOCAyNy44LTExLjYgNTUuOC0xNy4zIDgzLjYtMS40IDYuMy04LjMgNC45LTEzLjcgNC45LTIzLjggMC0zMC41LTI2LTMwLjUtNDUuNSAwLTI5LjMgMTEuMi02OC4xIDM4LjUtODMuMSA0LjMtMi41IDkuMi00LjIgMTQuMS00LjIgMTEuNCAwIDEyLjMgOC4zIDEyLjMgMTcuOXpNNDQ4IDgwbDAgMzUyYzAgMjYuNS0yMS41IDQ4LTQ4IDQ4TDQ4IDQ4MGMtMjYuNSAwLTQ4LTIxLjUtNDgtNDhMMCA4MEMwIDUzLjUgMjEuNSAzMiA0OCAzMmwzNTIgMGMyNi41IDAgNDggMjEuNSA0OCA0OHpNMzg0IDI2N2MwLTUuMS0yMC44LTM3LjctMjUuNS0zOS41LTIuMi0uOS03LjItMi4zLTkuNi0yLjMtMjMuMSAwLTM4LjcgMTAuNS01OC4yIDIxLjVsLS41LS41YzQuMy0yOS40IDE0LjYtNTcuMiAxNC42LTg3LjQgMC00NC42LTIzLjgtNjIuNy02Ny41LTYyLjctNzEuNyAwLTEwOCA3MC44LTEwOCAxMjMuNSAwIDU0LjcgMzIgODUgODYuMyA4NSA3LjUgMCA2LjktLjYgNi45IDIuMy0xMC41IDgwLjMtNTYuNSA4Mi45LTU2LjUgNTguOSAwLTI0LjQgMjgtMzYuNSAyOC4zLTM4LS4yLTcuNi0yOS4zLTE3LjItMzYuNy0xNy4yLTIxLjEgMC0zMi43IDMzLTMyLjcgNTAuNiAwIDMyLjMgMjAuNCA1NC43IDUzLjMgNTQuNyA0OC4yIDAgODMuNC00OS43IDk0LjMtOTEuNyA5LjQtMzcuNyA3LTM5LjQgMTIuMy00Mi4xIDIwLTEwLjEgMzUuOC0xNi44IDU4LjQtMTYuOCAxMS4xIDAgMTkgMi4zIDM2LjcgNS4yIDEuOCAuMSA0LjEtMS43IDQuMS0zLjV6Il19LGhudD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJiaXR5IixpY29uOls1MTIsNTEyLFtdLCJmMzdhIiwiTTg2LjUgNjcuMmM5NS40LTg5LjIgMjQ2LjEtOTEuMiAzNDMuMSAzLjggMTQuMyAxNC4xLTYuNCAzNy4xLTIyLjQgMjEuNS04NC44LTgyLjQtMjE1LjgtODAuMy0yOTguOS0zLjItMTYuMyAxNS4xLTM2LjUtOC4zLTIxLjgtMjIuMXptOTguOSA0MTguNmMxOS4zIDUuNyAyOS4zLTIzLjYgNy45LTMwLTExMi4yLTMzLjktMTc1LjgtMTQ5LjctMTQ3LjUtMjYxIDUtMTkuNi0yNC45LTI4LjEtMzAuMi03LjEtMzIuMSAxMjcuNCA0MS4xIDI1OS44IDE2OS44IDI5OC4xem0xNDguMS0yYzEyMS45LTQwLjIgMTkyLjktMTY2LjkgMTY0LjQtMjkxLTQuNS0xOS43LTM0LjktMTMuOC0zMCA3LjkgMjQuMiAxMDcuNy0zNy4xIDIxNy45LTE0My4yIDI1My40LTIxLjIgNy0xMC40IDM2IDguOCAyOS43em0tNjIuOS03OWwuMi03MS44YzAtOC4yLTYuNi0xNC44LTE0LjgtMTQuOHMtMTQuOCA2LjctMTQuOCAxNC44bC0uMiA3MS44YzAgOC4yIDYuNiAxNC44IDE0LjggMTQuOHMxNC44LTYuNiAxNC44LTE0Ljh6bTcxLTI2OWMyLjEgOTAuOSA0LjcgMTMxLjktODUuNSAxMzIuNS05Mi41LS43LTg2LjktNDQuMy04NS41LTEzMi41IDAtMjEuOC0zMi41LTE5LjYtMzIuNSAwbDAgNzEuNmMwIDY5LjMgNjAuNyA5MC45IDExOCA5MC4xIDU3LjMgLjggMTE4LTIwLjggMTE4LTkwLjFsMC03MS42YzAtMTkuNi0zMi41LTIxLjgtMzIuNSAweiJdfSxmbnQ9e3ByZWZpeDoiZmFiIixpY29uTmFtZToid3BleHBsb3JlciIsaWNvbjpbNTEyLDUxMixbXSwiZjJkZSIsIk0wIDI1NmEyNTYgMjU2IDAgMSAxIDUxMiAwIDI1NiAyNTYgMCAxIDEgLTUxMiAwem00ODAgMGEyMjQgMjI0IDAgMSAwIC00NDggMCAyMjQgMjI0IDAgMSAwIDQ0OCAwek0xNjAuOSAxMjQuNmw4Ni45IDM3LjEtMzcuMSA4Ni45LTg2LjktMzcuMSAzNy4xLTg2Ljl6bTExMCAxNjkuMWw0Ni42IDk0LTE0LjYgMC01MC0xMDAtNDguOSAxMDAtMTQgMCA1MS4xLTEwNi45LTIyLjMtOS40IDYtMTQgNjguNiAyOS4xLTYgMTQuMy0xNi41LTcuMXpNMjU5LjEgMTc3LjRsNjguNiAyOS40LTI5LjQgNjguMy02OC4zLTI5LjEgMjkuMS02OC42em04MC4zIDQyLjlsNTQuNiAyMy4xLTIzLjQgNTQuMy01NC4zLTIzLjEgMjMuMS01NC4zeiJdfSxtbnQ9e3ByZWZpeDoiZmFiIixpY29uTmFtZToibWVnYXBvcnQiLGljb246WzUxMiw1MTIsW10sImY1YTMiLCJNMjIyLjUgMjA5LjZsMCA2Ni4yIDMzLjUgMzMuNSAzMy4zLTMzLjMgMC02Ni40LTMzLjQtMzMuNC0zMy40IDMzLjR6TTI1NiA4YTI0OCAyNDggMCAxIDAgMCA0OTYgMjQ4IDI0OCAwIDEgMCAwLTQ5NnpNNDAxLjEgNDIyLjRsLTI2LjEgMTkuMi0yNi0xOS4yIDAtNjUuNS0zMy40LTMzLjQtMzMuNCAzMy40IDAgNjUuNS0yNi4yIDE5LjItMjYuMS0xOS4yIDAtNjUuNS0zMy40LTMzLjQtMzMuNSAzMy40IDAgNjUuNS0yNi4xIDE5LjItMjYuMS0xOS4yIDAtODcgNTkuNS01OS41IDAtODcuOSA1OS41LTU5LjUgMC03NS42IDI2LjEtMTkuMiAyNi4xIDE5LjIgMCA3NS42IDU5LjUgNTkuNSAwIDg3LjYgNTkuNyA1OS43IDAgODcuMS0uMSAweiJdfSxnbnQ9e3ByZWZpeDoiZmFiIixpY29uTmFtZToibGVldGNvZGUiLGljb246WzQ0OCw1MTIsW10sImU4NmEiLCJNMjM1LjQgOS4zQzI0Ni41LTIuNSAyNjUuMS0zLjIgMjc3IDcuOXMxMi41IDI5LjggMS40IDQxLjZsLTQzIDQ2YzIxLjUgMy4zIDQyLjEgMTEuOCA1OS4xIDI1LjZsNzQuNiA2MC4zYzEyLjYgMTAuMiAxNC42IDI4LjggNC40IDQxLjRzLTI4LjcgMTQuNi00MS40IDQuNGwtNzQuNi02MC4zYy0yNi4yLTIxLjEtNzEuOS0xOC4yLTk0LjUgNS45TDgxIDI2MWMtMjEuNSAyMy0xOS4xIDYwIDUuNiA4NC4ybDkxLjIgODkuNGMyNC45IDI0IDY1LjYgMjQgOTAuMS0uNGw1MS4xLTUxYzExLjUtMTEuNSAzMC4xLTExLjUgNDEuNiAuMXMxMS40IDMwLjItLjEgNDEuN2wtNTEuMSA1MWMtNDcuMSA0Ny4xLTEyNCA0Ny43LTE3MS45IDEuNmwtOTItOTAuMkMtMS40IDM0MS4zLTYgMjY3LjkgMzggMjIwLjdMMjM1LjQgOS4zek00MTEuNyAyNzMuMmMxNi4yIDAgMjkuNCAxMy4yIDI5LjQgMjkuNXMtMTMuMiAyOS41LTI5LjQgMjkuNWwtMjE2LjkgMGMtMTYuMiAwLTI5LjQtMTMuMi0yOS40LTI5LjVzMTMuMi0yOS41IDI5LjQtMjkuNWwyMTYuOSAweiJdfSxibnQ9e3ByZWZpeDoiZmFiIixpY29uTmFtZToibWRiIixpY29uOls1NzYsNTEyLFtdLCJmOGNhIiwiTTE3LjQgMTYwLjRsLTEwLjQgMTkxLjYgNDMuOSAwIDUuNi03OS44IDI3LjkgNzkuOCA0NC43IDAgMjUuNS03Ny40IDQuOCA3Ny40IDQ1LjUgMC0xMi44LTE5MS42LTQ1LjUgMC00MC43IDExNy4zLTQyLjMtMTE3LjMtNDYuMyAwem0yODEgMGwtNDcuOSAwIDAgMTkxLjYgNDcuOSAwczk1IC44IDk0LjItOTUuOGMtLjgtOTQuMi05NC4yLTk1LjgtOTQuMi05NS44bDAgMHptLTEuMiAxNDYuNWwwLTEwMi4xczQ2IDQuMyA0Ni44IDUwLjYtNDYuOCA1MS41LTQ2LjggNTEuNWwwIDB6bTIzOC4zLTc0LjJjNy4yLTExLjQgMTAtMjUgOC0zOC4zLTUuMy0zNS44LTU1LjEtMzQuMy01NS4xLTM0LjNsLTUxLjkgMCAwIDE5MS42IDQ1LjUgMHM4NyA0LjggODctNjMuOGMwLTQzLjEtMzMuNS01NS4xLTMzLjUtNTUuMWwwIDB6bS01MS45LTMxLjlzMTMuNi0xLjYgMTYgOS42YzEuNCA2LjctNCAxMi00IDEybC0xMiAwIDAtMjEuNnptLS4xIDEwOS41bC4xLTI0LjkgMC0xOC4yIC4xIDBzNDEuNi00LjcgNDEuMiAyMi40Yy0uMyAyNS43LTQxLjMgMjAuNy00MS4zIDIwLjdsMCAweiJdfSx2bnQ9e3ByZWZpeDoiZmFiIixpY29uTmFtZToicGFnZTQiLGljb246WzUxMiw1MTIsW10sImYzZDciLCJNMjU2IDUwNEMxMTkgNTA0IDggMzkzIDggMjU2UzExOSA4IDI1NiA4YzIwLjkgMCA0MS4zIDIuNiA2MC43IDcuNUw1MC4zIDM5MiAyNTYgMzkyIDI1NiA1MDR6bTAtMTQzLjZsMC0yMTMuNi0xNDkuNCAyMTMuNiAxNDkuNCAwek0zNTIgMzkybDAgOTIuN2M0NS43LTE5LjIgODQuNS01MS43IDExMS40LTkyLjdMMzUyIDM5MnptNTcuNC0xMzguMmwtMjEuMiA4LjQgMjEuMiA4LjMgMC0xNi43em0tMjAuMyA1NC41Yy02LjcgMC04IDYuMy04IDEyLjlsMCA3LjcgMTYuMiAwIDAtMTBjMC01LjktMi4zLTEwLjYtOC4yLTEwLjZ6TTUwNCAyNTZjMCAzNy4zLTguMiA3Mi43LTIzIDEwNC40bC0xMjkgMCAwLTMzMy4xQzQ0MS4zIDY0LjggNTA0IDE1My4xIDUwNCAyNTZ6TTM2OC40IDE0My42bDY4LjIgMCAwLTQ3LjYtMTMuOSAwIDAgMzIuNi0xMy45IDAgMC0yOS42LTEzLjkgMCAwIDI5LjYtMTIuNyAwIDAtMzIuNi0xMy45IDAgMCA0Ny42IC4xIDB6bTY4LjEgMTg1LjNsLTI2LjUgMCAwLTExYzAtMTUuNC01LjYtMjUuMi0yMC45LTI1LjItMTUuNCAwLTIwLjcgMTAuNi0yMC43IDI1LjlsMCAyNS4zIDY4LjIgMCAwLTE1LS4xIDB6bTAtMTAzbC02OC4yIDI5LjcgMCAxMi40IDY4LjIgMjkuNSAwLTE2LjYtMTQuNC01LjcgMC0yNi41IDE0LjQtNS45IDAtMTYuOXptLTQuOC02OC41bC0zNS42IDAgMCAyNi42IDEzLjkgMCAwLTEyLjIgMTEgMGM4LjYgMTUuOCAxLjMgMzUuMy0xOC42IDM1LjMtMjIuNSAwLTI4LjMtMjUuMy0xNS41LTM3LjdsLTExLjYtMTAuNmMtMTYuMiAxNy41LTEyLjIgNjMuOSAyNy4xIDYzLjkgMzQgMCA0NC43LTM1LjkgMjkuMy02NS4zeiJdfSx4bnQ9e3ByZWZpeDoiZmFiIixpY29uTmFtZToidGhlLXJlZC15ZXRpIixpY29uOls1MTIsNTEyLFtdLCJmNjlkIiwiTTQ4OC43IDI0MS43bDIwLjcgNy4xYy05LjYtMjMuOS0yMy45LTM3LTMxLjctNDQuOGw3LjEtMTguMmMuMiAwIDEyLjMtMjcuOC0yLjUtMzAuNy0uNi0xMS4zLTYuNi0yNy0xOC40LTI3LTcuNi0xMC42LTE3LjctMTIuMy0zMC43LTUuOS05LjEgNC40LTE3LjYgMTAtMjUuMyAxNi41LTUuMy02LjQtMyAuNC0zLTI5LjgtMzcuMS0yNC4zLTQ1LjQtMTEuNy03NC44IDNsLjUgLjVjLTIyLTcuNy00NS4xLTEyLjItNjguNC0xMy4zLTUuNS04LjctMTguNi0xOS4xLTI1LjEtMjUuMWwyNC44IDcuMWMtNS41LTUuNS0yNi44LTEyLjktMzQuMi0xNS4yIDE4LjItNC4xIDI5LjgtMjAuOCA0Mi41LTMzLTM0LjktMTAuMS02Ny45LTUuOS05Ny45IDExLjhsMTItNDQuMi0xLjgtLjVjLTMxLjYgMjQuMi0zMyA0MS45LTMzLjcgNDUuNS0uOS0yLjQtNi4zLTE5LjYtMTUuMi0yNy0zLjMgOC4xLTMuNSAxNy4xLS41IDI1LjMgMyA4LjQgNS45IDE0LjggOC40IDE4LjktMTYtMy4zLTI4LjMtNC45LTQ5LjIgMGwtMy43IDAgMzMgMTQuM2MtMjAuMiAxOC45LTM2LjEgNDEuOS00Ni43IDY3LjRsLTEuNyA4LjQgMS43IDEuNyA3LjYtNC43Yy0zLjMgMTEuNi01LjMgMTkuNC02LjYgMjUuOC0xMC45IDEyLjItMjAuMiAyNS44LTI3LjggNDAuMy0xNSAxLTMxLjggMTAuOC00MC4zIDE0LjNsMyAzLjQgMjguOCAxYy0uNSAxLS43IDIuMi0xLjIgMy4yLTcuMyA2LjQtMzkuOCAzNy43LTMzIDgwLjdsMjAuMi0yMi40Yy41IDEuNyAuNyAzLjQgMS4yIDUuMiAwIDI1LjUgLjQgODkuNiA2NC45IDE1MC41IDQzLjYgNDAgOTYgNjAuMiAxNTcuNSA2MC4yIDEyMS43IDAgMjIzLTg3LjMgMjIzLTIxMS41IDYuOC05LjctMS4yIDMgMTYuNy0yNS4xbDEzIDE0LjMgMi41LS41Yy0xLjgtMTEuNy00LjgtMjMuMS04LjktMzQuMi0xLjUtNC44LTMuOC05LjMtNi44LTEzLjNsMCAwek0zOTguNSAxMTEuMmwtLjUgMjEuOWM1LjUgMTguMSAxNi45IDE3LjIgMjIuNCAxNy4ybC0zLjQtNC43IDIyLjQtNS40Yy05IC41LTE4IC41LTI3IDAgMTIuOC0yLjEgMzMuMy0yOSA0My0xMS4zIDMuNCA3LjYgNi40IDE3LjIgOS4zIDI3LjhsMS43LTUuOWMtMS4zLTUtMS44LTEwLjEtMS43LTE1LjIgNS40IC41IDguOCAzLjQgOS4zIDEwLjEgLjUgNi40IDEuNyAxNC44IDMuNCAyNS4zbDQuNy0xMS4zYzQuNiAwIDQuNS0zLjYtMi41IDIwLjctMjAuOS04LjctMzUuMS04LjQtNDYuNS04LjRsMTguMi0xNmMtMjUuMyA4LjItMzMgMTAuOC01NC44IDIwLjktMS4xLTUuNC01LTEzLjUtMTYtMTkuOS0zLjIgMy44LTIuOCAuOS0uNyAxNC44bC0yLjUgMGMtMS4yLTguMi00LjEtMTYtOC40LTIzLjFsNC4yLTMuNGM4LjQtNy4xIDExLjgtMTQuMyAxMC42LTIxLjktLjUtNi40LTUuNC0xMy41LTEzLjUtMjAuNyA1LjYtMy40IDE1LjItLjQgMjguMyA4LjV6bS0zOS42LTEwLjFjMi43IDEuOSAxMS40IDUuNCAxOC45IDE3LjIgNC4yIDguNCA0IDkuOCAzLjQgMTEuMS0uNSAyLjQtLjUgNC4zLTMgNy4xLTEuNyAyLjUtNS40IDQuNy0xMS44IDcuNi03LjYtMTMtMTYuNS0yMy42LTI3LjgtMzEuMmwyMC4zLTExLjh6bS0yNjcuNCA0MmwxLjItMS43YzEuMi0yLjkgNC4yLTcuNiA5LjMtMTUuMmwyLjUtMy40LTEzIDEyLjMgNS40LTQuNy0xMC4xIDkuMy00LjIgMS4yYzEyLjMtMjQuMSAyMy4xLTQxLjMgMzIuNS01MC4yIDkuMy05LjMgMTYtMTYgMjAuMi0xOS40bC02LjQgMS4yYy0xMS4zLTQuMi0xOS40LTcuMS0yNC44LTguNCAyLjUtLjUgMy43LS41IDMuMi0uNSAxMC4zIDAgMTcuNSAuNSAyMC45IDEuMiA1LjIgMS43IDEwLjYgMi41IDE2IDIuNWwuNS0xLjctOC40LTM1LjggMTMuNSAyOWMyLjgtNC40IDQuOC05LjIgNS45LTE0LjMgMS43LTYuNCA1LjQtMTMgMTAuMS0xOS40czcuNi0xMC42IDkuMy0xMS4zYy0yLjYgOC4zLTQuNyAxNi44LTYuNCAyNS4zbC0xLjcgNy4xLS41IDQuNyAyLjUgMi41YzIxLjktMTMuNSA0NS41LTE5LjQgNzEuMy0xOC45bDIxLjEgLjVjLTExLjggMTMuNS0yNy44IDIxLjktNDguNSAyNC44LTcuNyAxLjQtMTUuNiAyLjQtMjMuNCAyLjlsLS4yLS41LTIuNS0xLjJjLTQuOC0xLTkuNy0uMy0xNCAyLTIuNS0uMi00LjktLjUtNy4xLS43bC0yLjUgMS43IC41IDEuMmMyIC4yIDMuOSAuNSA2LjIgLjdsLTIgMy40IDMuNC0uNS0xMC42IDExLjNjLTQuMiAzLTUuNCA2LjQtNC4yIDkuM2w1LjQtMy40IDEuMiAwYzYuMS04LjIgMTUuMi0xMy42IDI1LjMtMTUuMmwwLTNjNi40IC41IDEzIDEgMTkuNCAxLjIgNi40IDAgOC40IC41IDUuNCAxLjIgNy4yIDQgMTQuMSA4LjYgMjAuNyAxMy41IDEzLjUgMTAuMSAyMy42IDIxLjkgMzAgMzUuNCA4LjggMTguMiAxMy41IDM3LjEgMTMuNSA1Ni42IDAgOS41LTEgMTktMyAyOC4zLTMuNSAxNS45LTguOSAzMS4zLTE2IDQ2bDIuNSAuNWMxOC4yLTE5LjcgNDEuOS0xNiA0OS4yLTE2bC02LjQgNS45IDIyLjQgMTcuNy0xLjcgMzAuN2MtNS40LTEyLjMtMTYuNS0yMS4xLTMzLTI3LjggMTYuNSAxNC44IDIzLjYgMjEuMSAyMS45IDIwLjItNC44LTIuOC0zLjUtMS45LTEwLjgtMy43IDQuMSA0LjEgMTcuNSAxOC44IDE4LjIgMjAuN2wuMiAuMi0uMiAuMmMwIDEuOCAxLjYtMS4yLTE0IDIyLjktNzUuMi0xNS4zLTEwNi4zLTQyLjctMTQxLjItNjMuMmwxMS44IDEuMmMtMTEuOC0xOC41LTE1LjYtMTcuNy0zOC40LTI2LjFsMTAuNi04LjRjLTguOC0zLTE4LjItMy0yOC4zIC41bDcuNi0xMC42LTEuMi0xLjdjLTE0LjkgNC4zLTE5LjggOS4yLTIyLjYgMTEuMy0xLjEtNS41LTIuOC0xMi40LTEyLjMtMjguOGwtMS4yIDI3LTEzLjItNWMxLjUtMjUuMiA1LjQtNTAuNSAxMy4yLTc0LjZ6TTM2OCA0NzMuMWMtNDkuOSAyNS01Ni4xIDIyLjQtNTkgMjMuOS0yOS44LTExLjgtNTAuOS0zMS43LTYzLjUtNTguOGwzMCAxNi41Yy05LjgtOS4zLTE4LjMtMTYuNS0zOC40LTQ0LjNsMTEuOCAyMy4xLTE3LjctNy42YzE0LjIgMjEuMSAyMy41IDUxLjcgNjYuNiA3My41LTEyMC44IDI0LjItMTk5LTcyLjEtMjAwLjktNzQuMyAxMS4xIDkuMiAyMi45IDE3LjUgMzUuNCAyNC44IDMuNCAxLjcgNy4xIDIuNSAxMC4xIDEuMmwtMTYtMjAuN2M5LjIgNC4yIDkuNSA0LjUgNjkuMSAyOS00Mi41LTIwLjctNzMuOC00MC44LTkzLjItNjAuMi0uNSA2LjQtMS4yIDEwLjEtMS4yIDEwLjEgOC43IDcuMyAxNS44IDE2LjQgMjAuNyAyNi42LTM5LTE4LjktNTcuNi00Ny42LTcxLjMtODIuNiA0OS45IDU1LjEgMTE4LjkgMzcuNSAxMjAuNSAzNy4xIDM0LjggMTYuNCA2OS45IDIzLjYgMTEzLjkgMTAuNiAzLjMgMCAyMC4zIDE3IDI1LjMgMzkuMWw0LjItMy0yLjUtMjMuNmM5IDkgMjQuOSAyMi42IDM0LjQgMTMtMTUuNi01LjMtMjMuNS05LjUtMjkuNS0zMS43IDQuNiA0LjIgNy42IDkgMjcuOCAxNWwxLjItMS4yLTEwLjUtMTQuMmMxMS43LTQuOC0zLjUgMSAzMi0xMC44IDQuMyAzNC4zIDkgNDkuMiAuNyA4OS41ek00ODMuMyAyNTguN2wtMi41IC41IDMgOS4zYy0zLjUgNS45LTIzLjcgNDQuMy03MS42IDc5LjctMzkuNSAyOS44LTc2LjYgMzkuMS04MC45IDQwLjNsLTcuNi03LjEtMS4yIDMgMTQuMyAxNi03LjEtNC43IDMuNCA0LjItMS4yIDAtMjEuOS0xMy41IDkuMyAyNi42LTE5LTI3LjktMS4yIDIuNSA3LjYgMjljLTYuMS04LjItMjEtMzIuNi01Ni44LTM5LjZsMzIuNSAyMS4yYy0zMS4yIDQuNy02MyAyLjUtOTMuMi02LjQtNC4yLTEuMi04LjktMi41LTEzLjUtNC4ybDEuMi0zLTQ0LjgtMjIuNCAyNi4xIDIyLjRjLTU3LjcgOS4xLTExMy0yNS40LTEyNi40LTgzLjRMMjkuMyAyODQuOCA3IDMwNy4xYzE5LjUtNTcuNSAyNS42LTU3LjkgNTEuNC03MC4xLTkuMS01LjMtMS42LTMuMy0zOC40LTkuMyAxNS44LTUuOCAzMy0xNS40IDczIDUuMiAxLjItLjcgMi40LTEuMyAzLjctMS43IC42LTMuMiAuNC0uOCAxLTExLjggMy45IDEwIDMuNiA4LjcgMyA5LjNsMS43IC41YzEyLjctNi41IDguOS00LjUgMTctOC45bC01LjQgMTMuNSAyMi4zLTUuOC04LjQgOC40IDIuNSAyLjVjNC41LTEuOCAzMC4zIDMuNCA0MC44IDE2bC0yMy42LTIuNWMzOS40IDIzIDUxLjUgNTQgNTUuOCA2OS42bDEuNy0xLjJjLTIuOC0yMi4zLTEyLjQtMzMuOS0xNi00MC4xIDQuMiA1IDM5LjIgMzQuNiAxMTAuNCA0Ni0xMS4zLS41LTIzLjEgNS40LTM0LjkgMTguOWw0Ni43LTIwLjItOS4zIDIxLjljNy42LTEwLjEgMTQuOC0yMy42IDIxLjItMzkuNmwwLS41IDEuMi0zLTEuMiAxNmMxMy41LTQxLjggMjUuMy03OC41IDM1LjQtMTA5LjdsMTMuNS0yNy44IDAtMi01LjQtNC4yIDEwLjEgMCA1LjkgNC4yIDIuNS0xLjItMy40LTE2IDEyLjMgMTguOSA0MS44LTIwLjItMTQuOCAxMyAuNSAyLjkgMTcuNy0uNWMxMS4xIC40IDIyLjEgMS44IDMzIDQuMmwtMjMuNiAyLjUtMS4yIDMgMjYuNiAyMy4xYzkuOSA5LjkgMTguOSAyMC42IDI3IDMyLTExLjItMy4zLTEwLjMtMy40LTIxLjItMy40bDEyLjMgMzIuNS04LjktMTIuOHptLTYuMS03MS4zbC0zLjkgMTMtMTQuMy0xMS44IDE4LjItMS4yem0tMjU0LjggNy4xYzEuNyAxMC42IDQuNyAxNy43IDguOCAyMS45LTkuMyA2LjYtMjcuNSAxMy45LTQ2LjUgMTZsLjUgMS4yYzguMyAxLjMgMTYuOSAuNCAyNC44LTIuNWwtNy4xIDEzYzQuMi0xLjcgMTAuMS03LjEgMTcuNy0xNC44IDExLjktNS41IDEyLjctNS4xIDIwLjItMTYtMTIuNy02LjQtMTUuNy0xMy43LTE4LjQtMTguOHptMy43LTEwMi4zYy02LjQtMy40LTEwLjYgMy0xMi4zIDE4LjlzMi41IDI5LjUgMTEuOCAzOS42IDE4LjIgMTAuNiAyNi4xIDMgMy40LTIzLjYtMTEuMy00Ny43Yy0zLjUtNS43LTguNC0xMC41LTE0LjMtMTMuOGwwIDB6bS00LjcgNDYuM2M1LjQgMi4yIDEwLjUgMS45IDEyLjMtMTAuNmwwLTQuNy0xLjIgLjVjLTQuMy0zLjEtMi41LTQuNS0xLjctNi4ybC41LS41Yy0uOS0xLjItNS04LjEtMTIuNSA0LjctLjUtMTMuNSAuNS0yMS45IDMtMjQuOCAxLjItMi41IDQuNy0xLjIgMTEuMyA0LjIgNi40IDUuNCAxMS4zIDE2IDE1LjIgMzIuNSA2LjUgMjgtMTkuOCAyNi4yLTI2LjkgNC45em0tNDUtNS41YzEuNiAuMyA5LjMtMS4xIDkuMy0xNC44bC0uNSAwYy01LjQtMS4xLTIuMi01LjUtLjctNS45LTEuNy0zLTMuNC00LjItNS40LTQuNy04LjEgMC0xMS42IDEyLjctOC4xIDIxLjIgLjUgMS4xIDEuMyAyIDIuMiAyLjhzMiAxLjIgMy4yIDEuNGwwIDB6bTQwLjEtNTAuMWwtMi41IC41IC41IDNjOS4xLS41IDE4LjEgMS41IDI2LjEgNS45LTIuNS01LjUtMTAtMTQuMy0yOC4zLTE0LjNsLjUgMi41IDMuNyAyLjR6bS03MS44IDQ5LjRjMjEuNyAxNi44IDE2LjUgMjEuNCA0Ni41IDIzLjZsLTIuOS00LjdjOC40LTcuMiAxMy43LTE3LjMgMTQuOC0yOC4zIDEuNy0xNi0xLjItMjkuNS04LjgtNDEuM2wxMy03LjZjMC0uMyAwLS42LS4xLS45cy0uMi0uNi0uNC0uOGMtMi4yLS45LTQuNi0xLjItNy0uOXMtNC42IDEuMi02LjUgMi42Yy0xMi43IDYuNy0yOCAyMC45LTI5IDIyLjQtMS43IDEuNy0zLjQgNS45LTUuNCAxMy41LTEuOSA3LjctMi45IDE1LjYtMi45IDIzLjYtNC43LTgtMTAuNS02LjQtMTkuOS01LjlsNy4xIDcuNmMtMTYuNSAwLTIzLjMgMTUuNC0yMy42IDE2IDYuOCAwIDQuNi03LjYgMzAtMTIuMy00LjMtNi4zLTMuMy01LTQuOS02LjZ6bTE4LjctMTguN2MxLjItNy42IDMuNC0xMyA2LjQtMTcuMiA1LjQtNi40IDEwLjYtMTAuMSAxNi0xMS44IDQuMi0xLjcgNy4xIDEuMiAxMC4xIDkuMyAyLjUgOC4yIDMuNSAxNi44IDMgMjUuMy0uNSA5LjMtMy40IDE3LjItOC40IDIzLjEtMi45IDMuNC01LjQgNS45LTYuNCA3LjYtMy44IC40LTcuNiAuMi0xMS4zLS41bC03LjEtMy40LTUuNC02LjRjLjgtMTAgMS4zLTE4LjggMy4xLTI2em00MiA1Ni4xYy0zNC44IDE0LjQtMzQuNyAxNC0zNi4xIDE0LjMtMjAuOCA0LjctMTktMjQuNC0xOC45LTI0LjhsNS45LTEuMi0uNS0yLjVjLTIwLjItMi42LTMxIDQuMi0zMi41IDQuOSAuNSAuNSAzIDMuNCA1LjkgOS4zIDQuMi02LjQgOC44LTEwLjEgMTUuMi0xMC42LTEuNyAxMS4yLTEuMiAyMi43IDEuNyAzMy43IC4xIC41IDIuNiAxNy40IDI3LjUgMjQuMSAxMS4zIDMgMjcgMS4yIDQ4LjktNS40bC05LjIgLjVjLTQuMi0xNC44LTYuNC0yNC44LTUuOS0yOS41IDExLjMtOC44IDIxLjktMTEuMyAzMC43LTcuNmwyLjUgMC0xMS44LTcuNi03LjEgLjVjLTUuOSAxLjItMTIuMyA0LjItMTkuNCA4LjRsMy4xLTYuNXoiXX0seW50PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImppcmEiLGljb246WzUxMiw1MTIsW10sImY3YjEiLCJNNDk4LjUgMjQxLjdjLTcyLjktNzIuNy0xNjkuNC0xNjkuOS0yNDEuNS0yNDEuNy0xNjUuNSAxNjQuOS0yNDIuNSAyNDEuNy0yNDIuNSAyNDEuNy03LjkgNy45LTcuOSAyMC43IDAgMjguNyAxMzIuOCAxMzIuMyA2MS44IDYxLjUgMjQyLjUgMjQxLjYgMzc5LjQtMzc4IDE1LjctMTYuNyAyNDEuNS0yNDEuNyA4LTcuOSA4LTIwLjcgMC0yOC42ek0yNTcgMzMxLjdsLTc2LTc1LjcgNzYtNzUuNyA3NiA3NS43LTc2IDc1Ljd6Il19LHdudD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJmZWRleCIsaWNvbjpbNjQwLDUxMixbXSwiZjc5NyIsIk01ODYgMjg0LjVsNTMuMy01OS45LTYyLjQgMC0yMS43IDI0LjgtMjIuNS0yNC44LTExOC43IDAgMC0xNiA1Ni4xIDAgMC00OC4xLTE1MS4yIDAgMCA3NS41LS41IDBjLTkuNi0xMS0yMS41LTE0LjgtMzUuNC0xNC44LTI4LjQgMC00OS44IDE5LjQtNTcuMyA0NC45LTE4LTU5LjQtOTcuNC01Ny42LTEyMS45LTE0bDAtMjQuMi01NC44IDAgMC0yNi4yIDYwIDAgMC00MS4xLTEwOSAwIDAgMTg0LjQgNDkgMCAwLTc3LjUgNDguOSAwYy0xLjUgNS43LTIuMyAxMS44LTIuMyAxOC4yIDAgNzMuMSAxMDIuNiA5MS40IDEzMC4yIDIzLjdsLTQyIDBjLTE0LjcgMjAuOS00NS44IDguOS00NS44LTE0LjZsODUuNSAwYzMuNyAzMC41IDI3LjQgNTYuOSA2MC4xIDU2LjkgMTQuMSAwIDI3LTYuOSAzNC45LTE4LjZsLjUgMCAwIDExLjkgMjEyLjIgMCAyMi4xLTI1IDIyLjMgMjUgNjQuNCAwLTU0LTYwLjV6TTEzOS4zIDI2Ny45YzYuMS0yNi4zIDQxLjctMjUuNiA0Ni41IDBsLTQ2LjUgMHptMTUzLjQgNDguOWMtMzQuNiAwLTM0LTYyLjggMC02Mi44IDMyLjYgMCAzNC41IDYyLjggMCA2Mi44em0xNjcuOCAxOS4xbC05NC40IDAgMC0xNjYuNSA5NSAwIDAgMzAuMi01Ni4xIDAgMCAzMy45IDU1LjUgMCAwIDI4LjEtNTYuMSAwIDAgNDQuNyA1Ni4xIDAgMCAyOS42em0tNDUuOS0zOS44bDAtMjQuNCA1Ni4xIDAgMC00NCA1MC43IDU3LTUwLjcgNTcgMC00NS42LTU2LjEgMHptMTM4LjYgMTAuM2wtMjYuMSAyOS41LTM4LjEgMCA0NS42LTUxLjItNDUuNi01MS4yIDM5LjcgMCAyNi42IDI5LjMgMjUuNi0yOS4zIDM4LjUgMC00NS40IDUxIDQ2IDUxLjQtNDAuNSAwLTI2LjMtMjkuNXoiXX0sTW50PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImV2ZXJub3RlIixpY29uOlszODQsNTEyLFtdLCJmODM5IiwiTTEyMS4xIDEzMi4yYzEuNiAyMi4zLTE3LjYgMjEuNi0yMS42IDIxLjYtNjguOSAwLTczLjYtMS04My42IDMuMy0uNiAuMi0uNyAwLS40LS40TDEyNC4xIDQ2LjRjLjQtLjQgLjYtLjIgLjQgLjQtNC40IDEwLTMuNCAxNS4xLTMuNCA4NS40em03OSAzMDhjLTE0LjctMzcuMSAxMy03Ni45IDUyLjUtNzYuNiAxNy41IDAgMjIuNiAyMy4yIDcuOSAzMS40LTYuMiAzLjMtMjQuOSAxLjctMjUuMSAxOS4yIDAgMTcuMSAxOS43IDI1IDMxLjIgMjQuOSA2IDAgMTEuOS0xLjIgMTcuNS0zLjVzMTAuNi01LjcgMTQuOC05LjkgNy42LTkuMyA5LjktMTQuOCAzLjUtMTEuNSAzLjUtMTcuNWwwLS4xYzAtMTEuNi03LjgtNDcuMi00Ny41LTU1LjMtNy43LTEuNS02NS02LjMtNjguNC01MC41LTMuNyAxNi45LTE3LjQgNjMuNS00My4xIDY5LjEtOC43IDEuOS02OS43IDcuNi0xMTIuOS0zNi44IDAgMC0xOC42LTE1LjItMjguMi01OC0zLjQtMTUuNy05LjMtMzkuNy0xMS4xLTYyIDAtMTggMTEuMS0zMC40IDI1LjEtMzIuMiA4MSAwIDkwIDIuMyAxMDEtNy44IDkuOC05LjIgNy44LTE1LjUgNy44LTEwMi44IDEtOC4zIDcuOC0zMC44IDUzLjQtMjQuMSA2IC45IDMxLjkgNC4yIDM3LjUgMzAuNkwyOTAgNzQuOGMyMC40IDMuNyA3MC45IDcgODAuNiA1Ny45IDIyLjcgMTIxLjEgOC45IDIzOC41IDcuOCAyMzguNS0xNiAxMTQuNC0xMTEuMSAxMDguOS0xMTEuMSAxMDguOS0xOS0uMi01NC4yLTkuNC02Ny4zLTM5LjhsMCAwek0yODEgMjM1LjRjLTEgMS45LTIuMiA2IC45IDcgMTQuMSA0LjkgMzkuOCA2LjggNDUuOSA1LjUgMy4xLS4yIDMuMS00LjQgMi41LTYuNi0zLjUtMjEuOC00MC44LTI2LjUtNDkuMi01LjlsMCAweiJdfSxrbnQ9e3ByZWZpeDoiZmFiIixpY29uTmFtZToidXNiIixpY29uOls2NDAsNTEyLFtdLCJmMjg3IiwiTTYzMy41IDI1NmMwIDMuMS0xLjcgNi4xLTQuNSA3LjVMNTM5LjkgMzE3Yy0xLjQgLjgtMi44IDEuNC00LjUgMS40LTEuNCAwLTMuMS0uMy00LjUtMS4xLTIuOC0xLjctNC41LTQuNS00LjUtNy44bDAtMzUuNi0yMzAuNyAwYzI1LjMgMzkuNiA0MC41IDEwNi45IDY5LjYgMTA2LjlsMjYuNyAwIDAtMjYuOGMwLTUgMy45LTguOSA4LjktOC45bDg5LjEgMGM1IDAgOC45IDMuOSA4LjkgOC45bDAgODkuMWMwIDUtMy45IDguOS04LjkgOC45bC04OS4xIDBjLTUgMC04LjktMy45LTguOS04LjlsMC0yNi43LTI2LjcgMGMtNzUuNCAwLTgxLjEtMTQyLjUtMTI0LjctMTQyLjVsLTEwMC4zIDBjLTguMSAzMC42LTM1LjkgNTMuNS02OSA1My41LTM5LjMtLjEtNzEuMy0zMi4xLTcxLjMtNzEuNHMzMi03MS4zIDcxLjMtNzEuM2MzMy4xIDAgNjEgMjIuOCA2OSA1My41IDM5LjEgMCA0My45IDkuNSA3NC42LTYwLjQgNDAuMS04OS4xIDU4LjEtODIuMSAxMDguOS04Mi4xIDcuNS0yMC45IDI3LTM1LjYgNTAuNC0zNS42IDI5LjUgMCA1My41IDIzLjkgNTMuNSA1My41cy0yMy45IDUzLjUtNTMuNSA1My41Yy0yMy40IDAtNDIuOS0xNC44LTUwLjQtMzUuNmwtMjkuOCAwYy0yOS4xIDAtNDQuMyA2Ny40LTY5LjYgMTA2LjlsMzAyLjEgMCAwLTM1LjZjMC0zLjMgMS43LTYuMSA0LjUtNy44czYuNC0xLjQgOC45IC4zTDYyOSAyNDguOGMyLjggMS4xIDQuNSA0LjEgNC41IDcuMnoiXX0sU250PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImFuZ3J5Y3JlYXRpdmUiLGljb246WzY0MCw1MTIsW10sImYzNmUiLCJNNjQwIDIzOC4ybC0zLjIgMjguMi0zNC41IDIuMy0yIDE4LjEgMzQuNS0yLjMtMy4yIDI4LjItMzQuNCAyLjItMi4zIDIwLjEgMzQuNC0yLjItMyAyNi4xLTY0LjcgNC4xIDEyLjctMTEzLjItNDcuMyAxMTUuNC0zMS45IDItMjMuOC0xMTcuOCAzMC4zLTIgMTMuNiA3OS40IDMxLjctODIuNCA5My4xLTYuMnpNNDI2LjggMzcxLjVsMjguMy0xLjggMTIuOS0xMjAuMS0yOC40IDEuOS0xMi44IDEyMHpNMTYyIDM4OC4xbC0xOS40LTM2LTMuNSAzNy40LTI4LjIgMS43IDIuNy0yOS4xYy0xMSAxOC0zMiAzNC4zLTU2LjkgMzUuOC0zMi44IDItNTkuNy0yMC45LTU2LjQtNTguMiAyLjYtMjkuMyAyNi43LTYyLjggNjcuNS02NS40IDM3LjctMi40IDQ3LjYgMjMuMiA1MS4zIDI4LjhsMi44LTMwLjggMzguOS0yLjVjMjAuMS0xLjMgMzguNyAzLjcgNDIuNSAyMy43bDIuNi0yNi42IDY0LjgtNC4yLTIuNyAyNy45LTM2LjQgMi40LTEuNyAxNy45IDM2LjQtMi4zLTIuNyAyNy45LTM2LjQgMi4zLTEuOSAxOS45IDM2LjMtMi4zLTIuMSAyMC44IDU1LTExNy4yIDIzLjgtMS42IDMyLjEgMTEwLjYgOC45LTg1LjYtMjIuMyAxLjQgMi45LTI3LjkgNzUtNC45LTMgMjgtMjQuMyAxLjYtOS43IDkxLjktNTggMy43LTQuMy0xNS42LTM5LjQgMi41LTggMTYuMy0xMjYuMiA3Ljd6bS00NC4zLTcwLjJsLTI2LjQgMS43Yy02LjctMTIuNC0xNC40LTE2LjYtMjYuMy0xNS44LTE5IDEuMi0zMy4zIDE3LjUtMzQuNiAzMy4zLTEuNCAxNiA3LjMgMzIuNSAyOC43IDMxLjIgMTIuOC0uOCAyMS4zLTguNiAyOC45LTE4LjlsMjctMS43IDIuNy0yOS44em01Ni4xLTcuN2MxLjItMTIuOS03LjYtMTMuNi0yNi4xLTEyLjRMMTQ1IDMyNi4zYzE0LjItLjkgMjcuNS0yLjEgMjguOC0xNi4xek0xOTQuOSAzODFsNS44LTYwYy01IDEzLjUtMTQuNyAyMS4xLTI3LjkgMjYuNkwxOTQuOSAzODF6bTEzNS40LTQ1bC03LjktMzcuOC0xNS44IDM5LjMgMjMuNy0xLjV6TTE2MC4yIDI2MS40bC00LjMtMTcuNS0zOS42IDIuNi04LjEgMTguMi0zMS45IDIuMSA1Ny0xMjEuOSAyMy45LTEuNiAzMC43IDEwMiA5LjktMTA0LjcgMjctMS44IDM3LjggNjMuNiA2LjUtNjYuNiAyOC41LTEuOS00IDQxLjJjNy40LTEzLjUgMjIuOS00NC43IDYzLjYtNDcuNSA0MC41LTIuOCA1Mi40IDI5LjMgNTMuNCAzMC4zbDMuMy0zMiAzOS4zLTIuN2MxMi43LS45IDI3LjggLjMgMzYuMyA5LjdsLTQuNC0xMS45IDMyLjItMi4yIDEyLjkgNDMuMiAyMy00NS43IDMxLTIuMi00My42IDc4LjQtNC44IDQ0LjMtMjguNCAxLjkgNC44LTQ0LjMtMTUuOC00M2MxIDIyLjMtOS4yIDQwLjEtMzIgNDkuNmwyNS4yIDM4LjgtMzYuNCAyLjQtMTkuMi0zNi44LTQgMzguMy0yOC40IDEuOSAzLjMtMzEuNWMtNi43IDkuMy0xOS43IDM1LjQtNTkuNiAzOC0yNi4yIDEuNy00NS42LTEwLjMtNTUuNC0zOS4ybC00IDQwLjMtMjUgMS42LTM3LjYtNjMuMy02LjMgNjYuMi01Ni44IDMuN3ptMjc2LjYtODIuMWMxMC4yLS43IDE3LjUtMi4xIDIxLjYtNC4zIDQuNS0yLjQgNy02LjQgNy42LTEyLjEgLjYtNS4zLS42LTguOC0zLjQtMTAuNC0zLjYtMi4xLTEwLjYtMi44LTIyLjktMmwtMi45IDI4Ljh6TTMyNy43IDIxNGM1LjYgNS45IDEyLjcgOC41IDIxLjMgNy45IDQuNy0uMyA5LjEtMS44IDEzLjMtNC4xIDUuNS0zIDEwLjYtOCAxNS4xLTE0LjNsLTM0LjIgMi4zIDIuNC0yMy45IDYzLjEtNC4zIDEuMi0xMi0zMS4yIDIuMWMtNC4xLTMuNy03LjgtNi42LTExLjEtOC4xLTQtMS43LTguMS0yLjgtMTIuMi0yLjUtOCAuNS0xNS4zIDMuNi0yMiA5LjItNy43IDYuNC0xMiAxNC41LTEyLjkgMjQuNC0xLjEgOS42IDEuNCAxNy4zIDcuMiAyMy4zem0tMjAxLjMgOC4ybDIzLjgtMS42LTguMy0zNy42LTE1LjUgMzkuMnoiXX0sem50PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6Im1penVuaSIsaWNvbjpbNTEyLDUxMixbXSwiZjNjYyIsIk0yNTYgOGEyNDggMjQ4IDAgMSAwIDAgNDk2IDI0OCAyNDggMCAxIDAgMC00OTZ6TTE3NiAzNTkuOWMtMzEuNCAxMC42LTU4LjggMjcuMy04MCA0OC4yTDk2IDEzNmMwLTIyLjEgMTcuOS00MCA0MC00MHM0MCAxNy45IDQwIDQwbDAgMjIzLjl6TTI5NiAzNTBjLTEyLjktMi0yNi4yLTMuMS0zOS44LTMuMS0xMy44IDAtMjcuMiAxLjEtNDAuMiAzLjFsMC0yMTRjMC0yMi4xIDE3LjktNDAgNDAtNDBzNDAgMTcuOSA0MCA0MGwwIDIxNHptMTIwIDU3LjdjLTIxLjItMjAuOC00OC42LTM3LjQtODAtNDhMMzM2IDEzNmMwLTIyLjEgMTcuOS00MCA0MC00MHM0MCAxNy45IDQwIDQwbDAgMjcxLjd6Il19LENudD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJpdGNoLWlvIixpY29uOls1MTIsNTEyLFtdLCJmODNhIiwiTTcxLjkgMzQuOEM1MC4yIDQ3LjcgNy40IDk2LjggNyAxMDkuN2wwIDIxLjNjMCAyNy4xIDI1LjMgNTAuOCA0OC4yIDUwLjggMjcuNiAwIDUwLjUtMjIuOCA1MC41LTUwIDAgMjcuMSAyMi4yIDUwIDQ5LjggNTBzNDktMjIuOCA0OS01MGMwIDI3LjEgMjMuNiA1MCA1MS4yIDUwbC41IDBjMjcuNiAwIDUxLjItMjIuOCA1MS4yLTUwIDAgMjcuMSAyMS41IDUwIDQ5IDUwczQ5LjgtMjIuOCA0OS44LTUwYzAgMjcuMSAyMyA1MCA1MC41IDUwIDIzIDAgNDguMy0yMy44IDQ4LjMtNTAuOGwwLTIxLjNjLS40LTEyLjktNDMuMi02Mi4xLTY0LjktNzUtNjcuNC0yLjMtMTE0LjItMi43LTE4NC0yLjdTOTEuMSAzMy4xIDcxLjkgMzQuOHpNMjA0LjIgMTY5LjJjLTIyIDM4LjQtNzcuOSAzOC43LTk5LjggLjItMTMuMiAyMy4xLTQzLjIgMzIuMS01NiAyNy43LTMuOSA0MC4yLTEzLjcgMjM3LjEgMTcuNyAyNjkuMiA4MCAxOC43IDMwMi4xIDE4LjEgMzc5LjggMCAzMS42LTMyLjMgMjEuMy0yMzIgMTcuNy0yNjkuMi0xMi45IDQuNC00Mi45LTQuNi01Ni0yNy43LTIyIDM4LjUtNzcuOCAzOC4xLTk5LjgtLjItNy4xIDEyLjUtMjMgMjguOS01MS44IDI4LjktMTAuNCAuMy0yMC44LTIuMi0yOS45LTcuM3MtMTYuNy0xMi42LTIxLjktMjEuNmwwIDB6bS00MS42IDUzLjhjMTYuNSAwIDMxLjEgMCA0OS4yIDE5LjggMjkuMy0zIDU4LjktMyA4OC4yIDAgMTguMi0xOS43IDMyLjgtMTkuNyA0OS4yLTE5LjcgNTIuMyAwIDY1LjIgNzcuNSA4My45IDE0NC40IDE3LjMgNjIuMi01LjUgNjMuNy0zNCA2My43LTQyLjEtMS42LTY1LjUtMzIuMi02NS41LTYyLjgtMzkuMyA2LjQtMTAxLjkgOC44LTE1NS42IDAgMCAzMC42LTIzLjMgNjEuMi02NS41IDYyLjgtMjguNC0uMS01MS4yLTEuNi0zMy45LTYzLjcgMTguNy02NyAzMS42LTE0NC40IDgzLjktMTQ0LjRsMC0uMXpNMjU2IDI3MC44cy00NC40IDQwLjgtNTIuNCA1NS4ybDI5LTEuMiAwIDI1LjNjMCAxLjUgMjEuMyAuMiAyMy4zIC4yIDExLjYgLjUgMjMuMyAxIDIzLjMtLjJsMC0yNS4zIDI5IDEuMmMtOC0xNC41LTUyLjQtNTUuMi01Mi40LTU1LjJsLjEgMHoiXX0sVG50PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6IndpbmRvd3MiLGljb246WzQ0OCw1MTIsW10sImYxN2EiLCJNMCA5My43bDE4My42LTI1LjMgMCAxNzcuNC0xODMuNiAwIDAtMTUyLjF6TTAgNDE4LjNsMTgzLjYgMjUuMyAwLTE3NS4yLTE4My42IDAgMCAxNDkuOXptMjAzLjggMjhsMjQ0LjIgMzMuNyAwLTIxMS42LTI0NC4yIDAgMCAxNzcuOXptMC0zODAuNmwwIDE4MC4xIDI0NC4yIDAgMC0yMTMuOC0yNDQuMiAzMy43eiJdfSxfbnQ9e3ByZWZpeDoiZmFiIixpY29uTmFtZToic3R1bWJsZXVwb24iLGljb246WzUxMiw1MTIsW10sImYxYTQiLCJNNTAyLjkgMjY2bDAgNjkuN2MwIDYyLjEtNTAuMyAxMTIuNC0xMTIuNCAxMTIuNC02MS44IDAtMTEyLjQtNDkuOC0xMTIuNC0xMTEuM2wwLTcwLjIgMzQuMyAxNiA1MS4xLTE1LjIgMCA3MC42YzAgMTQuNyAxMiAyNi41IDI2LjcgMjYuNVM0MTcgMzUyLjcgNDE3IDMzOGwwLTcyIDg1LjkgMHpNMjc4LjIgMjA3LjhsMzQuMyAxNiA1MS4xLTE1LjIgMC0zNS42YzAtNjAuNS01MS4xLTEwOS0xMTIuMS0xMDktNjAuOCAwLTExMi4xIDQ4LjItMTEyLjEgMTA4LjJsMCAxNjIuNGMwIDE0LjktMTIgMjYuNy0yNi43IDI2LjdTODYgMzQ5LjUgODYgMzM0LjZsMC02OC42LTg2IDAgMCA2OS43YzAgNjIgNTAuMyAxMTIuMyAxMTIuNCAxMTIuMyA2MS42IDAgMTEyLjQtNDkuNSAxMTIuNC0xMTAuOGwwLTE2MC4zYzAtMTQuNyAxMi0yNi43IDI2LjctMjYuN3MyNi43IDEyIDI2LjcgMjYuN2wwIDMwLjl6Il19LElBPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6Imdvb2dsZSIsaWNvbjpbNTEyLDUxMixbXSwiZjFhMCIsIk01MDAgMjYxLjhDNTAwIDQwMy4zIDQwMy4xIDUwNCAyNjAgNTA0IDEyMi44IDUwNCAxMiAzOTMuMiAxMiAyNTZTMTIyLjggOCAyNjAgOGM2Ni44IDAgMTIzIDI0LjUgMTY2LjMgNjQuOWwtNjcuNSA2NC45Yy04OC4zLTg1LjItMjUyLjUtMjEuMi0yNTIuNSAxMTguMiAwIDg2LjUgNjkuMSAxNTYuNiAxNTMuNyAxNTYuNiA5OC4yIDAgMTM1LTcwLjQgMTQwLjgtMTA2LjlsLTE0MC44IDAgMC04NS4zIDIzNi4xIDBjMi4zIDEyLjcgMy45IDI0LjkgMy45IDQxLjR6Il19LExudD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJkaXNjb3JkIixpY29uOls1NzYsNTEyLFtdLCJmMzkyIiwiTTQ5Mi41IDY5LjhjLS4yLS4zLS40LS42LS44LS43LTM4LjEtMTcuNS03OC40LTMwLTExOS43LTM3LjEtLjQtLjEtLjggMC0xLjEgLjFzLS42IC40LS44IC44Yy01LjUgOS45LTEwLjUgMjAuMi0xNC45IDMwLjYtNDQuNi02LjgtODkuOS02LjgtMTM0LjQgMC00LjUtMTAuNS05LjUtMjAuNy0xNS4xLTMwLjYtLjItLjMtLjUtLjYtLjgtLjhzLS43LS4yLTEuMS0uMmMtNDEuMyA3LjEtODEuNiAxOS42LTExOS43IDM3LjEtLjMgLjEtLjYgLjQtLjggLjctNzYuMiAxMTMuOC05Ny4xIDIyNC45LTg2LjkgMzM0LjUgMCAuMyAuMSAuNSAuMiAuOHMuMyAuNCAuNSAuNmM0NC40IDMyLjkgOTQgNTggMTQ2LjggNzQuMiAuNCAuMSAuOCAuMSAxLjEgMHMuNy0uNCAuOS0uN2MxMS4zLTE1LjQgMjEuNC0zMS44IDMwLTQ4LjggLjEtLjIgLjItLjUgLjItLjhzMC0uNS0uMS0uOC0uMi0uNS0uNC0uNi0uNC0uMy0uNy0uNGMtMTUuOC02LjEtMzEuMi0xMy40LTQ1LjktMjEuOS0uMy0uMi0uNS0uNC0uNy0uNnMtLjMtLjYtLjMtLjkgMC0uNiAuMi0uOSAuMy0uNSAuNi0uN2MzLjEtMi4zIDYuMi00LjcgOS4xLTcuMSAuMy0uMiAuNi0uNCAuOS0uNHMuNyAwIDEgLjFjOTYuMiA0My45IDIwMC40IDQzLjkgMjk1LjUgMCAuMy0uMSAuNy0uMiAxLS4ycy43IC4yIC45IC40YzIuOSAyLjQgNiA0LjkgOS4xIDcuMiAuMiAuMiAuNCAuNCAuNiAuN3MuMiAuNiAuMiAuOS0uMSAuNi0uMyAuOS0uNCAuNS0uNiAuNmMtMTQuNyA4LjYtMzAgMTUuOS00NS45IDIxLjgtLjIgLjEtLjUgLjItLjcgLjRzLS4zIC40LS40IC43LS4xIC41LS4xIC44IC4xIC41IC4yIC44YzguOCAxNyAxOC44IDMzLjMgMzAgNDguOCAuMiAuMyAuNiAuNiAuOSAuN3MuOCAuMSAxLjEgMGM1Mi45LTE2LjIgMTAyLjYtNDEuMyAxNDcuMS03NC4yIC4yLS4yIC40LS40IC41LS42cy4yLS41IC4yLS44YzEyLjMtMTI2LjgtMjAuNS0yMzYuOS04Ni45LTMzNC41em0tMzAyIDI2Ny43Yy0yOSAwLTUyLjgtMjYuNi01Mi44LTU5LjJzMjMuNC01OS4yIDUyLjgtNTkuMmMyOS43IDAgNTMuMyAyNi44IDUyLjggNTkuMiAwIDMyLjctMjMuNCA1OS4yLTUyLjggNTkuMnptMTk1LjQgMGMtMjkgMC01Mi44LTI2LjYtNTIuOC01OS4yczIzLjQtNTkuMiA1Mi44LTU5LjJjMjkuNyAwIDUzLjMgMjYuOCA1Mi44IDU5LjIgMCAzMi43LTIzLjIgNTkuMi01Mi44IDU5LjJ6Il19LEFudD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJoYWNrZXItbmV3cyIsaWNvbjpbNDQ4LDUxMixbXSwiZjFkNCIsIk0wIDMybDAgNDQ4IDQ0OCAwIDAtNDQ4LTQ0OCAwek0yMS4yIDIyOS4ybC0uMiAwYy4xLS4xIC4yLS4zIC4zLS40IDAgLjEgMCAuMy0uMSAuNHptMjE4IDUzLjlsMCAxMDAuOS0zMS40IDAgMC0xMDIuNy03OS44LTE1My4zIDM3LjMgMGM1Mi41IDk4LjMgNDkuMiAxMDEuMiA1OS4zIDEyNS42IDEyLjMtMjcgNS44LTI0LjQgNjAuNi0xMjUuNmwzNC44IDAtODAuOCAxNTUuMXoiXX0samFlPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImVsZXZlbnR5IixpY29uOls2NDAsNTEyLFsiMTF0eSJdLCJlN2Q2IiwiTTYxNS4zIDE2OC41YzIuMyAwIDQuNiAuNyA2LjYgMi4yIDEuOSAxLjQgMy4xIDMuMyAzLjggNSAxLjQgMy4zIDEuOCA3LjMgMS44IDExLjMgMCAyLjItLjMgNC45LS43IDcuNmwwIC40LTUwLjkgMjY0LjkgMCAwYy00IDIyLjEtOC41IDM5LjQtMTMuNiA1MS43LTUgMTIuMS0xMC45IDIxLjYtMTguNiAyN2wwIDBjLTcuNSA1LjMtMTYuOSA3LjctMjcuNiA4bC0zIDBjLTE2IDAtMjkuMy00LjItMzYuOS0xNC44LS4xLS4xLS4xLS4xLS4yLS4yLS4xLS4yLS4zLS40LS41LS42bDAgMGMtMS44LTIuNC0yLjUtNS4yLTIuOS03LjQtLjUtMi44LS43LTYuMS0uNy05LjggMC03LjMgLjYtMTMuNSAyLjEtMTguMiAxLjQtNC40IDQuOC0xMC40IDEyLjItMTAuNGwxLjMgLjFjLjIgMCAuNCAuMSAuNSAuMSAuMyAuMSAuNiAuMSAuOCAuMiAuNiAuMSAxLjMgLjMgMi4yIC42bDcuNiAyLjIgLjEgMCA3LjYgMi4xYy45IC4yIDEuNyAuNCAyLjIgLjUgLjQgLjEgLjYgLjEgLjcgLjEgMCAwIC4xIDAgLjItLjEgLjEtLjEgLjQtLjIgLjgtLjYgLjktLjkgMi4yLTIuNiAzLjYtNS43IDIuNi01LjggNC4yLTE0LjcgNC4yLTI3LjQgMC0uNy0uMy0zLjQtMS4zLTguOS0uOS01LjEtMi4zLTEyLjItNC4yLTIxLjFsLTU2LTIzMi45LS4xLS40IDAtLjNjLS40LTIuNy0uNy01LjMtLjctNy4zIDAtMy43IC40LTcuNSAxLjctMTAuNiAuNy0xLjYgMS44LTMuNCAzLjUtNC45IDEuOS0xLjUgNC4yLTIuMyA2LjUtMi4zbDM0LjYgMGM0LjYgMCA4LjcgMS43IDExLjkgNWwxLjMgMS41YzEuMiAxLjYgMiAzLjQgMi43IDUuMiAuOSAyLjQgMS41IDUuMSAyIDguMWwzMC40IDE2MS4yIDIzLjgtMTYwYy44LTUuOCAyLjItMTEuNCA1LjEtMTUuMSAzLTMuOCA3LjItNS44IDEyLTUuOGwyNCAwek0zNzUuMSAzNC42YzIuNiAwIDUuMSAuNyA3LjQgMi4zIDIuMiAxLjUgMy43IDMuNiA0LjcgNS43IDEuOSA0IDIuNSA5LjEgMi41IDE0LjVsMCAxMTEuMmMwIC4xIDAgLjIgMCAuM2wzMi40IDBjMi41IDAgNSAuNiA3LjIgMi4xIDIuMiAxLjQgMy43IDMuNCA0LjggNS41IDIgMy45IDIuNiA4LjggMi42IDEzLjlsMCAxNS40YzAgNS0uNiA5LjgtMi42IDEzLjctMS4xIDItMi42IDQtNC44IDUuNC0yLjIgMS40LTQuNyAyLTcuMSAybC0zMi41IDAgMCAxNDUuOGMwIDEwLjggLjcgMTkuNSAyIDI2LjIgMS40IDYuOSAzLjEgMTAuOSA0LjcgMTIuOSAxLjIgMS41IDIuMiAyLjUgMy4xIDMuMmwyLjIgMS40IC4xIC4xIDIuOSAuOGMxLjIgLjIgMi42IC4zIDQuMyAuM2wyMC4zIDBjNC41IDAgOC45IDEuNyAxMS44IDUuOCAyLjYgMy42IDMuMyA4LjEgMy4zIDEyLjJsMCAxNy4yYzAgNC41LS44IDkuMy0zLjQgMTMuMS0zIDQuMi03LjUgNi0xMi4zIDZsMCAwLTI5LjEgLjFjLTggMC0xNS0uNi0yMS4yLTEuNy02LjctMS4zLTEzLjQtNC4xLTIwLjEtOC4xLTcuMi00LjQtMTMtMTAuMy0xNy41LTE3LjgtNC41LTcuNS03LjktMTcuNS0xMC41LTI5LjUtMi42LTEyLjItMy45LTI2LjYtMy45LTQzbDAtMTQ0LjktMTMuNCAwYy0yLjQgMC00LjktLjYtNy4xLTItMi4yLTEuNC0zLjctMy40LTQuOC01LjQtMi0zLjktMi42LTguNy0yLjYtMTMuN2wwLTE1LjRjMC01LjEgLjYtMTAgMi42LTEzLjkgMS4xLTIuMSAyLjYtNCA0LjgtNS41IDIuMi0xLjUgNC43LTIuMSA3LjItMi4xbDEzLjQgMCAwLS42IDUuMi0xMTEuMiAwLS4xIC4zLTMuOWMuNS0zLjggMS4zLTcuNCAyLjctMTAuMyAyLjEtNC4yIDYtNy45IDExLjgtNy45bDI4LjYgMHptLTI2OCAxMS43YzEuOCAuMyAzLjYgLjkgNS4zIDIuMSAyLjEgMS41IDMuNSAzLjUgNC40IDUuNCAxLjcgMy43IDIuMyA4LjQgMi4zIDEzLjJsMCAzNzcuOGMwIDYuNy0uNiAxMi42LTIuNCAxNy4xLS45IDIuMy0yLjMgNC43LTQuNCA2LjUtMi4zIDItNS4xIDMtOC4xIDNsLTQzLjcgMGMtMyAwLTUuOC0xLjEtOC4xLTMuMS0yLjEtMS45LTMuNC00LjMtNC4yLTYuNS0xLjctNC41LTIuMy0xMC4zLTIuMy0xN2wwLTMxNS44Yy00LjggMS4yLTguNyAyLjItMTEuNSAyLjktMS45IC41LTMuNCAuOC00LjQgMS4xLS41IC4xLS45IC4yLTEuMiAuMy0uMSAwLS4zIC4xLS41IC4xLS4xIDAtLjIgMC0uMyAuMSAwIDAtLjIgMC0uMyAwIDAgMC0uMiAwLS40IDBsMCAwYy0uMSAwLS4zIDAtLjQgMC0uMSAwLS4yIDAtLjIgMC0yLjIgLjEtNC41LS40LTYuNi0xLjctMi4zLTEuNC0zLjgtMy40LTQuNy01LjMtMS44LTMuNy0yLjMtOC40LTIuMy0xM2wwLTI3LjRjMC00LjQgLjctOC44IDIuNi0xMi40IDIuMS0zLjkgNS41LTYuNiA5LjgtNy42bDc1LjUtMTkuNWMxLjQtLjQgMi45LS41IDQuNC0uNWwxLjggLjF6bTE0My44LS41YzEuOCAuMyAzLjYgLjkgNS4yIDIuMSAyLjEgMS41IDMuNSAzLjUgNC40IDUuNCAxLjcgMy43IDIuMiA4LjQgMi4yIDEzLjJsMCAzNzcuOGMwIDYuNy0uNiAxMi42LTIuNCAxNy4xLS45IDIuMy0yLjMgNC43LTQuNCA2LjUtMi4zIDItNS4xIDMtOC4xIDNsLTQzLjcgMGMtMyAwLTUuOC0xLjEtOC4xLTMuMS0yLjEtMS45LTMuNC00LjMtNC4yLTYuNS0xLjctNC41LTIuMy0xMC4zLTIuMy0xN2wwLTMxNS44Yy00LjggMS4yLTguNyAyLjItMTEuNSAyLjktMS45IC41LTMuNCAuOC00LjQgMS4xLS41IC4xLS45IC4yLTEuMiAuMy0uMSAwLS4zIC4xLS41IC4xLS4xIDAtLjIgMC0uMyAuMS0uMSAwLS4yIDAtLjMgMCAwIDAtLjIgMC0uNCAwbDAgMGMtLjEgMC0uMiAwLS4zIDAtLjEgMC0uMiAwLS4zIDAtMi4yIC4xLTQuNS0uNC02LjYtMS43LTIuMy0xLjQtMy44LTMuNC00LjctNS4zLTEuOC0zLjctMi4zLTguMy0yLjMtMTNsMC0yNy40YzAtNC40IC43LTguNyAyLjYtMTIuNCAyLjEtMy45IDUuNS02LjYgOS44LTcuNmw3NS40LTE5LjRjMS40LS40IDIuOS0uNSA0LjQtLjVsMS44IC4xeiJdfSxEbnQ9amFlLEVudD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJ0ZWFtc3BlYWsiLGljb246WzU3Niw1MTIsW10sImY0ZjkiLCJNMTUyLjggMzcuMmMtMzIuMiAzOC4xLTU2LjEgODIuNi02OS45IDEzMC41IDAgLjItLjEgLjMtLjEgLjUtMzkuMyAxNi4yLTY2LjggNTQuOC02Ni44IDk5LjggMCA1OS42IDQ4LjQgMTA4IDEwOCAxMDhzMTA4LTQ4LjQgMTA4LTEwOGMwLTUzLjUtMzguOS05Ny45LTkwLTEwNi41IDE1LjctNDEuOCA0MC40LTc5LjYgNzIuMy0xMTAuNyAxLjgtMS42IDQtMi42IDYuMy0zLjEgMzcuMi0xMS41IDc2LjctMTMuMyAxMTQuOC01LjIgMTE5LjMgMjUuMSAxOTguNiAxMzguMiAxODEuNyAyNTguOC04LjQgNjIuNi0zOC42IDExMi43LTg3LjcgMTUxLjQtNTAuMSAzOS43LTEwNy41IDU0LjMtMTcwLjIgNTIuMmwtMjQtMWMxMi40IDIuOCAyNSA0LjkgMzcuNiA2LjMgNDAuNyA0LjIgODEuNCAyLjEgMTIwLjEtMTIuNSA5NC0zNS41IDE0OS4zLTEwMi4zIDE2Mi45LTIwMi41IDQuOC01Mi42LTUuOC0xMDUuNC0zMC44LTE1Mi03MC40LTEzMS45LTIzNC4yLTE4MS42LTM2Ni0xMTEuMi0yLjQgMS40LTQuNSAzLjEtNi4zIDUuMmwuMSAwek0zMDkuNCA0MzMuOWMtMi4xIDExLjUtNC4yIDIxLjktMTQuNiAzMS4zIDUzLjItMSAxMjMuMi0yOS4yIDE2MS44LTk3LjEgMzkuNy02OS45IDM3LjYtMTM5LjktNi4zLTIwNy44LTM2LjUtNTUuMy04OS44LTgyLjQtMTU2LjYtODYuNiAxLjUgMi4zIDMuMiA0LjQgNS4yIDYuM2w1LjIgNi4zYzI1LjEgMzEuMyAzNy42IDY3LjkgNDIuOCAxMDcuNSAyLjEgMTUuNy0xIDMwLjMtMTMuNiA0MS44LTQuMiAzLjEtNS4yIDYuMy00LjIgMTAuNGw3LjMgMTcuNyAyOS4zIDU0LjNjNS4yIDExLjUgNC4yIDE5LjgtNi4zIDI4LjItMy4yIDIuNS02LjcgNC42LTEwLjQgNi4zbC0xOC44IDguNCAzLjEgMTMuNmMzLjEgNi4zIDEgMTIuNS0zLjEgMTcuNy0yLjUgMi40LTMuOCA1LjktMy4xIDkuNCAyLjEgMTEuNS0yLjEgMTkuOC0xMi41IDI1LjEtMi4xIDEtNC4yIDUuMi01LjIgNy4zbDAtLjF6bS0xMzMuNi0zLjFjMTYuNyAxMS41IDM0LjUgMjAuOSA1My4yIDI2LjEgMjQgNS4yIDQxLjgtNi4zIDQ0LjktMzAuMyAxLTguNCA1LjItMTQuNiAxMi41LTE3LjcgNy4zLTQuMiA4LjQtNy4zIDIuMS0xMy42bC05LjQtOC40IDEzLjYtNC4yYzYuMy0yLjEgNy4zLTUuMiA1LjItMTEuNS0xLjQtMy0yLjQtNi4yLTMuMS05LjQtMy4xLTE0LjYtMi4xLTE1LjcgMTEuNS0xOC44IDguNC0zLjEgMTUuNy02LjMgMjEuOS0xMi41IDMuMS0yLjEgMy4xLTQuMiAxLTguNGwtMTYuNy0zMC4zYy0xLTEuOS0yLjEtMy44LTMuMS01LjctNi40LTExLjctMTMtMjMuNi0xNS43LTM3LjEtMi4xLTkuNC0xLTE3LjcgOC40LTI0IDUuMi00LjIgOC40LTkuNCA4LjQtMTYuNy0uNC0xMC4xLTEuNS0yMC4zLTMuMS0zMC4zLTYuMy0zNy42LTIzLTY4LjktNTEuMi05NS01LjItNC4yLTkuNC02LjMtMTYuNy00LjJsLTM1LjYgMTIuNyA2IDMuNmM2LjMgMy43IDEyLjIgNy4zIDE3IDEyLjEgMzAuMyAyNi4xIDQxLjggNjEuNiA0NS45IDEwMC4yIDEgOC40IDAgMTYuNy03LjMgMjEuOS04LjQgNS4yLTEwLjQgMTIuNS03LjMgMjAuOSA0LjkgMTMuMiAxMC40IDI2IDE2LjcgMzguNkwyOTEuNiAzMThjLTYuMyA4LjQtMTMuNiAxMS41LTIxLjkgMTQuNi0xMi41IDMuMS0xNC42IDcuMy0xMC40IDIwLjkgLjYgMS41IDEuNCAyLjggMi4xIDQuMiAyLjEgNS4yIDEgOC40LTQuMiAxMC40bC0xMi41IDMuMSA1LjIgNC4yIDQuMiA0LjJjNC4yIDUuMiA0LjIgOC40LTIuMSAxMC40LTcuMyA0LjItMTEuNSA5LjQtMTEuNSAxNy43IDAgMTIuNS03LjMgMTkuOC0xOC44IDI0LTMuOCAxLTcuNiAxLjUtMTEuNSAxbC0zNC41LTIuMSAuMSAuMnoiXX0sJG50PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6InN1cHBsZSIsaWNvbjpbNjQwLDUxMixbXSwiZjNmOSIsIk02NDAgMjYyLjVjMCA2NC4xLTEwOSAxMTYuMS0yNDMuNSAxMTYuMS0yNC44IDAtNDguNi0xLjgtNzEuMS01IDcuNyAuNCAxNS41IC42IDIzLjQgLjYgMTM0LjUgMCAyNDMuNS01Ni45IDI0My41LTEyNy4xIDAtMjkuNC0xOS4xLTU2LjQtNTEuMi03OCA2MCAyMS4xIDk4LjkgNTUuMSA5OC45IDkzLjR6TTQ3LjcgMjI3LjljLS4xLTcwLjIgMTA4LjgtMTI3LjMgMjQzLjMtMTI3LjYgNy45IDAgMTUuNiAuMiAyMy4zIC41LTIyLjUtMy4yLTQ2LjMtNC45LTcxLTQuOS0xMzQuNSAuNC0yNDMuNCA1Mi42LTI0My4zIDExNi43IC4xIDM4LjMgMzkuMSA3Mi4zIDk5LjMgOTMuMy0zMi4zLTIxLjUtNTEuNS00OC42LTUxLjYtNzh6bTYwLjIgMzkuOVMxMTguNCAyODEgMTM3LjIgMjgxYzE3LjkgMCAyOC40LTExLjUgMjguNC0yNS4xIDAtMjgtNDAuMi0yNS4xLTQwLjItMzkuNyAwLTUuNCA1LjMtOS4xIDEyLjUtOS4xIDUuNyAwIDExLjMgMi42IDExLjMgNi42bDAgMy45IDE0LjIgMCAwLTcuOWMwLTEyLjEtMTUuNC0xNi44LTI1LjQtMTYuOC0xNi41IDAtMjguNSAxMC4yLTI4LjUgMjQuMSAwIDI2LjYgNDAuMiAyNS40IDQwLjIgMzkuOSAwIDYuNi01LjggMTAuMS0xMi4zIDEwLjEtMTEuOSAwLTIwLjctMTAuMS0yMC43LTEwLjFsLTguOCAxMC45em0xMjAuOC03My42bDAgNTQuNGMwIDExLjMtNy4xIDE3LjgtMTcuOCAxNy44cy0xNy44LTYuNS0xNy44LTE3LjdsMC01NC41LTE1LjggMCAwIDU1YzAgMTguOSAxMy40IDMxLjkgMzMuNyAzMS45IDIwLjEgMCAzMy40LTEzIDMzLjQtMzEuOWwwLTU1LTE1LjcgMHptMzQuNCA4NS40bDE1LjggMCAwLTI5LjUgMTUuNSAwYzE2IDAgMjcuMi0xMS41IDI3LjItMjguMXMtMTEuMi0yNy44LTI3LjItMjcuOGwtMzkuMSAwIDAgMTMuNCA3LjggMCAwIDcyem0xNS44LTQzbDAtMjkuMSAxMi45IDBjOC43IDAgMTMuNyA1LjcgMTMuNyAxNC40IDAgOC45LTUuMSAxNC43LTE0IDE0LjdsLTEyLjYgMHptNTcgNDNsMTUuOCAwIDAtMjkuNSAxNS41IDBjMTYgMCAyNy4yLTExLjUgMjcuMi0yOC4xcy0xMS4yLTI3LjgtMjcuMi0yNy44bC0zOS4xIDAgMCAxMy40IDcuOCAwIDAgNzJ6bTE1LjctNDNsMC0yOS4xIDEyLjkgMGM4LjcgMCAxMy43IDUuNyAxMy43IDE0LjQgMCA4LjktNSAxNC43LTE0IDE0LjdsLTEyLjYgMHptNTcuMSAzNC44YzAgNS44IDIuNCA4LjIgOC4yIDguMmwzNy42IDBjNS44IDAgOC4yLTIuNCA4LjItOC4ybDAtMTMtMTQuMyAwIDAgNS4yYzAgMS43LTEgMi42LTIuNiAyLjZsLTE4LjYgMGMtMS43IDAtMi42LTEtMi42LTIuNmwwLTYxLjJjMC01LjctMi40LTguMi04LjItOC4ybC0xNS40IDAgMCAxMy40IDUuMiAwYzEuNyAwIDIuNiAxIDIuNiAyLjZsMCA2MS4yLS4xIDB6bTYzLjQgMGMwIDUuOCAyLjQgOC4yIDguMiA4LjJsMzguNyAwYzUuNyAwIDguMi0yLjQgOC4yLTguMmwwLTEzLTE0LjMgMCAwIDUuMmMwIDEuNy0xIDIuNi0yLjYgMi42bC0xOS43IDBjLTEuNyAwLTIuNi0xLTIuNi0yLjZsMC0yMC4zIDI3LjcgMCAwLTEzLjQtMjcuNyAwIDAtMjIuNCAxOS4yIDBjMS43IDAgMi42IDEgMi42IDIuNmwwIDUuMiAxNC4yIDAgMC0xM2MwLTUuNy0yLjUtOC4yLTguMi04LjJsLTUxLjYgMCAwIDEzLjQgNy44IDAgMCA2My45IC4xIDB6bTU4LjktNzZsMCA1LjkgMS42IDAgMC01LjkgMi43IDAgMC0xLjItNyAwIDAgMS4yIDIuNyAwem01LjctMS4ybDAgNy4xIDEuNSAwIDAtNS43IDIuMyA1LjcgMS4zIDAgMi4zLTUuNyAwIDUuNyAxLjUgMCAwLTcuMS0yLjMgMC0yLjEgNS4xLTIuMS01LjEtMi40IDB6Il19LFZhZT17cHJlZml4OiJmYWIiLGljb25OYW1lOiJzcXVhcmUtdHdpdHRlciIsaWNvbjpbNDQ4LDUxMixbInR3aXR0ZXItc3F1YXJlIl0sImYwODEiLCJNNjQgMzJDMjguNyAzMiAwIDYwLjcgMCA5NkwwIDQxNmMwIDM1LjMgMjguNyA2NCA2NCA2NGwzMjAgMGMzNS4zIDAgNjQtMjguNyA2NC02NGwwLTMyMGMwLTM1LjMtMjguNy02NC02NC02NEw2NCAzMnpNMzUxLjMgMTk5LjNjMCA4Ni43LTY2IDE4Ni42LTE4Ni42IDE4Ni42LTM3LjIgMC03MS43LTEwLjgtMTAwLjctMjkuNCA1LjMgLjYgMTAuNCAuOCAxNS44IC44IDMwLjcgMCA1OC45LTEwLjQgODEuNC0yOC0yOC44LS42LTUzLTE5LjUtNjEuMy00NS41IDEwLjEgMS41IDE5LjIgMS41IDI5LjYtMS4yLTMwLTYuMS01Mi41LTMyLjUtNTIuNS02NC40bDAtLjhjOC43IDQuOSAxOC45IDcuOSAyOS42IDguMy05LTYtMTYuNC0xNC4xLTIxLjUtMjMuNnMtNy44LTIwLjItNy43LTMxYzAtMTIuMiAzLjItMjMuNCA4LjktMzMuMSAzMi4zIDM5LjggODAuOCA2NS44IDEzNS4yIDY4LjYtOS4zLTQ0LjUgMjQtODAuNiA2NC04MC42IDE4LjkgMCAzNS45IDcuOSA0Ny45IDIwLjcgMTQuOC0yLjggMjktOC4zIDQxLjYtMTUuOC00LjkgMTUuMi0xNS4yIDI4LTI4LjggMzYuMSAxMy4yLTEuNCAyNi01LjEgMzcuOC0xMC4yLTguOSAxMy4xLTIwLjEgMjQuNy0zMi45IDM0IC4yIDIuOCAuMiA1LjcgLjIgOC41eiJdfSxJbnQ9VmFlLFBudD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJ2aW0iLGljb246WzUxMiw1MTIsW10sImU4OGEiLCJNMzAzLjMgNTQuNWwwLTEyLjMgNC0zLjcgNy45LTcuMiAzLjUtMy4yIDE2OCAwIDE1LjEgMTUuMSAwIDM4LjktMy41IDMuNi04MC45IDgyLjkgODYuOSA4Ni45LTkxLjIgOTEuMiA4LjkgMCA3LjYtOC4zIDEtLjljMS4xLS44IDIuNS0xLjIgMy45LTEuMmwyOC45IDAgMS41IC4yYzEuNSAuNCAyLjggMS4yIDMuOCAyLjVsNy42IDEwLjJjMS4zIDEuNyAxLjYgMy45IDEgNS45bC0yMi4zIDcyLjUgMS4yIDBjMi4yIDAgNC4yIDEuMSA1LjUgMi45czEuNSA0LjEgLjcgNi4xTDQ1OSA0NDVjLTEgMi42LTMuNCA0LjItNi4yIDQuMmwtNDAuNCAwYy0yLjEgMC00LjEtMS01LjMtMi43cy0xLjYtMy45LTEtNS45bDIwLTYzLjItMjIuMiAwLTE2LjIgNTAuN2MyLjEgLjEgNC4xIDEuMSA1LjMgMi45IDEuMiAxLjggMS40IDQuMiAuNiA2LjJsLTMuMyA3LjljLTEgMi41LTMuNSA0LjEtNi4xIDQuMWwtMzYuOCAwYy0yLjEgMC00LjEtMS01LjQtMi43cy0xLjYtMy45LTEtNS45bDEwLTMyLjEtMjMuOSAyMy44Yy4zIDEuMiAuMyAyLjUtLjEgMy44bC0yLjkgOC42Yy0uOSAyLjctMy40IDQuNS02LjMgNC41bC03LjQgMC01NC42IDU0LjYtODMuOC04My44LTMxLjYgMzIuNS0zLjYgMy43LTQ5LjIgMC0yLjgtMS43Yy04LjgtNS4xLTE0LjgtOC41LTE3LjktMTAuM2wwLTEyOS4zLTU4LjUtNTguNSAyLjYtMi42IDU1LjktNTYgMC05OS40LTEyLjYgMC0xMC44LTEwLjgtMy42LTMuNiAwLTQwLjcgMy4yLTMuNSA3LjktOC41IDMuNy0zLjkgMTY2LjYgMCA4IDggMjcuNC0yNy40IDQ2LjQgNDYuNHptLTI1MS01LjZsMCAzMC4zIDkuNCA3LjggMTguOSAwIDAgMzQ3LjkgMTEuNCAxMC4zIDM4LjIgMCA5MS05M2MwLS40IC4xLS44IC4yLTEuMWwyLjYtMTAuNWMuNy0yLjkgMy40LTUgNi40LTVsNy4xIDAgMTUuNS0xNS45LTItMmMtMS44LTEuOC0yLjQtNC41LTEuNS02LjlsNi45LTE5LjNjLjQtMS4xIDEuMS0yIDEuOS0yLjhsNi45LTUuOWMxLjItMSAyLjgtMS42IDQuMy0xLjZsMTkuNyAwIDEuMyAuMmMuMSAwIC4xIC4xIC4yIC4xbDE5OS4yLTIwMy41IDAtMjguNy04LjItNy40LTE1Ni4yIDAtNy44IDcuOCAwIDMwLjUgOC4yIDcuNCAyMSAwLTE0NyAxNDYuNCAwLTE0Ni42IDE2LjkgMCA4LjctOC43IDAtMjcuNy03LjQtOS45LTE1Ny42IDAtOCA4ek0yMjcuNiAzNTIuN2wxNC44IDAtMzEuOCA5MC45IDQ1LjMgMCAzLTkuNi0xMi41IDAgMzEuNS05MS45LTQ3LjYgMC0yLjYgMTAuNXptMTM2LjkgMWwtMTYuNCAwLTEwLjUtMTAuOC0zNS44IDAtMy4zIDkuOCAxMS44IDAtMzAuNSA4OS45IDM4LjEgMCAyLjktOC42LTguOCAwIDIwLTYzIDM3LjggMC0yMi4zIDcxLjYgMzYuOCAwIDMuMy03LjktOC44IDAgMjAuMy02NCAzNi4xIDAtMjIuNyA3MS45IDQwLjQgMCAzLjMtOC42LTEwLjIgMCAyNS04MS4xLTcuNS0xMC4yLTI4LjkgMC05LjUgMTAuNS0xNy40IDAtOS45LTEwLjgtMjMuMyAwLTkuOCAxMS4yek0yNjIuNSAyOTMuNmwtNi45IDE5LjMgNS4zIDUuMyAyMS4zIDAgNS42LTUuNiA1LjktMjAuMy00LjYtNC42LTE5LjcgMC02LjkgNS45eiJdfSwkQT17cHJlZml4OiJmYWIiLGljb25OYW1lOiJmb250LWF3ZXNvbWUiLGljb246WzUxMiw1MTIsWzYyNTAxLDYyNjk0LCJmb250LWF3ZXNvbWUtZmxhZyIsImZvbnQtYXdlc29tZS1sb2dvLWZ1bGwiXSwiZjJiNCIsIk05MS43IDk2QzEwNi4zIDg2LjggMTE2IDcwLjUgMTE2IDUyIDExNiAyMy4zIDkyLjcgMCA2NCAwUzEyIDIzLjMgMTIgNTJjMCAxNi43IDcuOCAzMS41IDIwIDQxbDAgNDE5IDY0IDAgMC02NCAzNzMuNiAwYzE0LjYgMCAyNi40LTExLjggMjYuNC0yNi40IDAtMy43LS44LTcuMy0yLjMtMTAuN0w0MzIgMjcyIDQ5My43IDEzMy4xYzEuNS0zLjQgMi4zLTcgMi4zLTEwLjcgMC0xNC42LTExLjgtMjYuNC0yNi40LTI2LjRMOTEuNyA5NnoiXX0sTm50PSRBLEZudD0kQSxVYWU9e3ByZWZpeDoiZmFiIixpY29uTmFtZToid2lyc2luZGhhbmR3ZXJrIixpY29uOls0NDgsNTEyLFsid3NoIl0sImUyZDAiLCJNMTguOSA0NzkuOGw4My40IDAgMC0xMTItODMuNCA0NyAwIDY1em0zMjkgMGw4Mi40IDAgMC02NS04Mi40LTQ3IDAgMTEyem0wLTQ0OGwwIDIxOS44LTEyMy42LTcyLjQtMTIxLjcgNzIuNCAwLTIxOS44LTgzLjcgMCAwIDM2MC44IDIwNS40LTEyMi4zIDIwNiAxMjIuMyAwLTM2MC44LTgyLjMgMHoiXX0sT250PVVhZSxSbnQ9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiem9vbSIsaWNvbjpbNjQwLDUxMixbXSwiZTg3YiIsIk0xMzQuMiAzMjYuNmwtMTE0LjQgMGMtOCAwLTE1LjItNC44LTE4LjMtMTIuMlMuMSAyOTguNiA1LjggMjkyLjlsNzkuMy03OS4zLTU2LjggMEMxMi43IDIxMy42IDAgMjAxIDAgMTg1LjRsMTA1LjUgMGM4IDAgMTUuMiA0LjggMTguMyAxMi4yczEuNCAxNS45LTQuMyAyMS42bC03OS4zIDc5LjMgNjUuNyAwYzE1LjYgMCAyOC4zIDEyLjYgMjguMyAyOC4zek02NDAgMjM4LjNjMC0zMC40LTI0LjctNTUuMS01NS4xLTU1LjEtMTYuMiAwLTMwLjkgNy4xLTQxIDE4LjMtMTAuMS0xMS4yLTI0LjctMTguMy00MS0xOC4zLTMwLjQgMC01NS4xIDI0LjctNTUuMSA1NS4xbDAgODguM2MxNS42IDAgMjguMy0xMi43IDI4LjMtMjguM2wwLTYwYzAtMTQuOCAxMi0yNi44IDI2LjgtMjYuOHMyNi44IDEyIDI2LjggMjYuOGwwIDYwYzAgMTUuNiAxMi42IDI4LjMgMjguMyAyOC4zbDAtODguM2MwLTE0LjggMTItMjYuOCAyNi44LTI2LjhzMjYuOCAxMiAyNi44IDI2LjhsMCA2MGMwIDE1LjYgMTIuNiAyOC4zIDI4LjMgMjguM2wwLTg4LjN6TTI4OC4yIDI1NmE3Mi44IDcyLjggMCAxIDEgMTQ1LjUgMCA3Mi44IDcyLjggMCAxIDEgLTE0NS41IDB6bTExNy4zIDBhNDQuNSA0NC41IDAgMSAwIC04OSAwIDQ0LjUgNDQuNSAwIDEgMCA4OSAwem0tMjc0LjEgMGE3Mi44IDcyLjggMCAxIDEgMTQ1LjUgMCA3Mi44IDcyLjggMCAxIDEgLTE0NS41IDB6bTExNy4zIDBhNDQuNSA0NC41IDAgMSAwIC04OSAwIDQ0LjUgNDQuNSAwIDEgMCA4OSAweiJdfSxCbnQ9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiY29uZmx1ZW5jZSIsaWNvbjpbNTEyLDUxMixbXSwiZjc4ZCIsIk0yLjggNDEyLjJjLTQuNSA3LjYtMi4xIDE3LjUgNS41IDIyLjJsMTA1LjkgNjUuMmM3LjcgNC43IDE3LjcgMi40IDIyLjQtNS4zIDAtLjEgLjEtLjIgLjEtLjIgNjcuMS0xMTIuMiA4MC41LTk1LjkgMjgwLjktLjcgOC4xIDMuOSAxNy44IC40IDIxLjctNy43IC4xLS4xIC4xLS4zIC4yLS40bDUwLjQtMTE0LjFjMy42LTguMS0uMS0xNy42LTguMS0yMS4zLTIyLjItMTAuNC02Ni4yLTMxLjItMTA1LjktNTAuMy0yNDcuOS0xMjAuNi0zMzAuOCA0NS43LTM3My4xIDExMi42ek01MTAuMiAxMDAuMWM0LjUtNy42IDIuMS0xNy41LTUuNS0yMi4yTDM5OC45IDEyLjhjLTcuNS01LTE3LjYtMy4xLTIyLjYgNC40LS4yIC4zLS40IC42LS42IDEtNjcuMyAxMTIuNi04MS4xIDk1LjYtMjgwLjYgLjktOC4xLTMuOS0xNy44LS40LTIxLjcgNy43LS4xIC4xLS4xIC4zLS4yIC40TDIyLjcgMTQxLjNjLTMuNiA4LjEgLjEgMTcuNiA4LjEgMjEuMyAyMi4yIDEwLjQgNjYuMyAzMS4yIDEwNiA1MC40IDI0OCAxMjAgMzMwLjgtNDUuNCAzNzMuNC0xMTIuOXoiXX0sSG50PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImRpZ2ciLGljb246WzUxMiw1MTIsW10sImYxYTYiLCJNODEuNyAxNzIuM2wtODEuNyAwIDAgMTc0LjQgMTMyLjcgMCAwLTI1MC43LTUxIDAgMCA3Ni4zem0wIDEzMy40bC0zMC44IDAgMC05Mi4zIDMwLjggMCAwIDkyLjN6TTM3OC45IDE3Mi4zbDAgMTc0LjQgODEuOCAwIDAgMjguNS04MS44IDAgMCA0MC44IDEzMy4xIDAgMC0yNDMuNy0xMzMuMSAwem04MS44IDEzMy40bC0zMC44IDAgMC05Mi4zIDMwLjggMCAwIDkyLjN6bS0yMzUuNiA0MWw4Mi4xIDAgMCAyOC41LTgyLjEgMCAwIDQwLjggMTMzLjMgMCAwLTI0My43LTEzMy4zIDAgMCAxNzQuNHptNTEuMi0xMzMuM2wzMC44IDAgMCA5Mi4zLTMwLjggMCAwLTkyLjN6TTE1My4zIDk2bDUxLjMgMCAwIDUxLTUxLjMgMCAwLTUxem0wIDc2LjNsNTEuMyAwIDAgMTc0LjQtNTEuMyAwIDAtMTc0LjR6Il19LHFudD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJ0aHJlYWRzIixpY29uOls0NDgsNTEyLFtdLCJlNjE4IiwiTTMzMS41IDIzNS43YzIuMiAuOSA0LjIgMS45IDYuMyAyLjggMjkuMiAxNC4xIDUwLjYgMzUuMiA2MS44IDYxLjQgMTUuNyAzNi41IDE3LjIgOTUuOC0zMC4zIDE0My4yLTM2LjIgMzYuMi04MC4zIDUyLjUtMTQyLjYgNTNsLS4zIDBjLTcwLjItLjUtMTI0LjEtMjQuMS0xNjAuNC03MC4yLTMyLjMtNDEtNDguOS05OC4xLTQ5LjUtMTY5LjZsMC0uNUMxNyAxODQuMyAzMy42IDEyNy4yIDY1LjkgODYuMiAxMDIuMiA0MC4xIDE1Ni4yIDE2LjUgMjI2LjQgMTZsLjMgMGM3MC4zIC41IDEyNC45IDI0IDE2Mi4zIDY5LjkgMTguNCAyMi43IDMyIDUwIDQwLjYgODEuN2wtNDAuNCAxMC44Yy03LjEtMjUuOC0xNy44LTQ3LjgtMzIuMi02NS40LTI5LjItMzUuOC03My01NC4yLTEzMC41LTU0LjYtNTcgLjUtMTAwLjEgMTguOC0xMjguMiA1NC40LTI2LjIgMzMuMy0zOS44IDgxLjUtNDAuMyAxNDMuMiAuNSA2MS43IDE0LjEgMTA5LjkgNDAuMyAxNDMuMyAyOCAzNS42IDcxLjIgNTMuOSAxMjguMiA1NC40IDUxLjQtLjQgODUuNC0xMi42IDExMy43LTQwLjkgMzIuMy0zMi4yIDMxLjctNzEuOCAyMS40LTk1LjktNi4xLTE0LjItMTcuMS0yNi0zMS45LTM0LjktMy43IDI2LjktMTEuOCA0OC4zLTI0LjcgNjQuOC0xNy4xIDIxLjgtNDEuNCAzMy42LTcyLjcgMzUuMy0yMy42IDEuMy00Ni4zLTQuNC02My45LTE2LTIwLjgtMTMuOC0zMy0zNC44LTM0LjMtNTkuMy0yLjUtNDguMyAzNS43LTgzIDk1LjItODYuNCAyMS4xLTEuMiA0MC45LS4zIDU5LjIgMi44LTIuNC0xNC44LTcuMy0yNi42LTE0LjYtMzUuMi0xMC0xMS43LTI1LjYtMTcuNy00Ni4yLTE3LjhsLS43IDBjLTE2LjYgMC0zOSA0LjYtNTMuMyAyNi4zbC0zNC40LTIzLjZjMTkuMi0yOS4xIDUwLjMtNDUuMSA4Ny44LTQ1LjFsLjggMGM2Mi42IC40IDk5LjkgMzkuNSAxMDMuNyAxMDcuN2wtLjIgLjIgLjEgMHptLTE1NiA2OC44YzEuMyAyNS4xIDI4LjQgMzYuOCA1NC42IDM1LjMgMjUuNi0xLjQgNTQuNi0xMS40IDU5LjUtNzMuMi0xMy4yLTIuOS0yNy44LTQuNC00My40LTQuNC00LjggMC05LjYgLjEtMTQuNCAuNC00Mi45IDIuNC01Ny4yIDIzLjItNTYuMiA0MS44bC0uMSAuMXoiXX0sV2FlPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6IndwcmVzc3IiLGljb246WzUxMiw1MTIsWyJyZW5kYWN0Il0sImYzZTQiLCJNMjU2IDhhMjQ4IDI0OCAwIDEgMCAwIDQ5NiAyNDggMjQ4IDAgMSAwIDAtNDk2ek00MjcuMyAxNjYuNmMtMTUuMiAzNC41LTMwLjQgNjktNDUuNiAxMDMuNS0yLjQgNS41LTYuOSA4LjItMTMgOC4yLTIzIDAtNDYgLjEtNjkgMC01LjEgMC04LjIgMS45LTEwLjMgNi43LTEwLjIgMjMuNi0yMC42IDQ3LTMxIDcwLjUtMS41IDMuNS00LjEgNS4zLTcuOSA1LjMtNDUuOSAwLTkxLjkgMC0xMzcuOCAwLTMuMSAwLTUuNi0xLjEtNy43LTMuNC0xMS4yLTEyLjMtMjIuNS0yNC42LTMzLjctMzYuOS0yLjctMy0yLjgtNi4yLTEuMi05LjcgOC43LTE5LjUgMTcuMy0zOS4xIDI1LjktNTguNyAxMi45LTI5LjQgMjUuOS01OC43IDM4LjctODguMSAxLjctMy45IDQuMy01LjcgOC41LTUuNyAxNC4yIC4xIDI4LjUgMCA0Mi43IDAgNi4yIDAgOS4yIDQuOCA2LjcgMTAuNi0xMy42IDMwLjgtMjcuMiA2MS42LTQwLjcgOTIuMy01LjcgMTMtMTEuNCAyNi0xNy4xIDM5LTMuOSA5IDcuMSAxMiAxMSA1LjYgLjItLjQtMS40IDQuMiAzMC02Ny43IDEuNC0zLjEgMy40LTQuNCA2LjgtNC40IDE1LjIgLjEgMzAuNCAwIDQ1LjYgMCA1LjYgMCA3LjkgMy42IDUuNyA4LjctOC4zIDE5LTE2LjcgMzcuOS0yNSA1Ni45LTUgMTEuNCA4LjEgMTIuNSAxMS4zIDUuMyAwLS4xIDI3LjktNjMuMyAzMi4yLTczLjIgMi00LjYgNS40LTYuNSAxMC4zLTYuNSAyNi40IC4xIDUyLjkgMCA3OS4zIDAgMTIuNCAwIDEzLjktMTMuNiAzLjktMTMuNi0yNS4zIDAtNTAuNSAwLTc1LjggMC02LjMgMC03LjgtMi41LTUuMy04LjMgNS44LTEzLjEgMTEuNi0yNi4xIDE3LjMtMzkuMiAxLjctNCA0LjUtNS44IDguOC01LjggMjMuMSAuMSAyNiAwIDEzMC44IDAgNi4xIDAgOCAyLjggNS42IDguM3oiXX0sam50PVdhZSxWbnQ9e3ByZWZpeDoiZmFiIixpY29uTmFtZToieW9hc3QiLGljb246WzQ0OCw1MTIsW10sImYyYjEiLCJNOTEuMyA3NmwxODYgMC03IDE4LjktMTc5IDBjLTM5LjcgMC03MS45IDMxLjYtNzEuOSA3MC4zbDAgMjA1LjRjMCAzNS40IDI0LjkgNzAuMyA4NCA3MC4zbDAgMTkuMS0xMi4xIDBDNDEuMiA0NjAgMCA0MTkuOCAwIDM3MC41TDAgMTY1LjJDMCAxMTUuOSA0MC43IDc2IDkxLjMgNzZ6TTMyMC40IDIwbDY2LjUgMGMtMTQzLjggMzc4LjEtMTQ1LjcgMzk4LjktMTg0LjcgNDM5LjMtMjAuOCAyMS42LTQ5LjMgMzEuNy03OC4zIDMyLjdsMC01MS4xYzQ5LjItNy43IDY0LjYtNDkuOSA2NC42LTc1LjMgMC0yMC4xIC42LTEyLjYtODIuMS0yMjMuMmw2MS40IDAgNTAuNCAxNTYuNiAxMDIuMi0yNzl6TTQ0OCAxNjEuNWwwIDI5OC41LTIxNCAwYzYuNi05LjYgMTAuNy0xNi4zIDEyLjEtMTkuNGwxODIuNSAwIDAtMjc5LjFjMC0zMi41LTE3LjEtNTEuOS00OC4yLTYyLjlMMzg3LjEgODFjNDEuNyAxMy42IDYwLjkgNDMuMSA2MC45IDgwLjV6Il19LFVudD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJuaW1ibHIiLGljb246WzM4NCw1MTIsW10sImY1YTgiLCJNMjQ2LjYgMzUzLjNhMjcgMjcgMCAxIDEgMC01NCAyNyAyNyAwIDEgMSAwIDU0em0tNzkuNC0yN2EyNy4xIDI3LjEgMCAxIDEgLTU0LjMgMCAyNy4xIDI3LjEgMCAxIDEgNTQuMyAwek0xOTEuOCAxNTlDMTU3IDE1OSA4OS40IDE3OC44IDU5LjIgMjI3TDE0IDAgMTQgMzM1LjVDMTQgNDMzLjEgOTMuNiA1MTIgMTkxLjggNTEyUzM2OS41IDQzMyAzNjkuNSAzMzUuNSAyOTAuMSAxNTkgMTkxLjggMTU5em0wIDMwOC4xYy03My4zIDAtMTMyLjUtNTguOS0xMzIuNS0xMzEuNnM1OS4yLTEzMS42IDEzMi41LTEzMS42IDEzMi41IDU4LjkgMTMyLjUgMTMxLjUtNTkuMyAxMzEuNi0xMzIuNSAxMzEuNmwwIC4xeiJdfSxXbnQ9e3ByZWZpeDoiZmFiIixpY29uTmFtZToicGl4ZWxmZWQiLGljb246WzUxMiw1MTIsW10sImU3ZGIiLCJNMjU2IDBhMjU2IDI1NiAwIDEgMSAwIDUxMiAyNTYgMjU2IDAgMSAxIDAtNTEyek0yMzUuNyAzMTEuOWw0NyAwYzQ0LjIgMCA4MC4xLTM0LjkgODAuMS03OHMtMzUuOS03OC04MC4xLTc4bC02Ny44IDBjLTI1LjUgMC00Ni4yIDIwLjEtNDYuMiA0NWwwIDE3NS4xIDY3LTY0LjF6Il19LEdudD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJ5YWhvbyIsaWNvbjpbNTEyLDUxMixbXSwiZjE5ZSIsIk0yMjMuOCAxNDEuMWwtNTYuNyAxNDMuMi01Ni0xNDMuMi05Ni4xIDAgMTA1LjggMjQ5LjEtMzguNiA4OS44IDk0LjIgMCAxNDAuOS0zMzguOS05My42IDB6TTMyOS4yIDI3Ni45YTU4LjIgNTguMiAwIDEgMCAwIDExNi40IDU4LjIgNTguMiAwIDEgMCAwLTExNi40ek0zOTQuNyAzMmwtOTMgMjIzLjUgMTA0LjggMCA5Mi42LTIyMy41LTEwNC40IDB6Il19LFludD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJibHVlc2t5IixpY29uOls1NzYsNTEyLFtdLCJlNjcxIiwiTTQwNy44IDI5NC43Yy0zLjMtLjQtNi43LS44LTEwLTEuMyAzLjQgLjQgNi43IC45IDEwIDEuM3pNMjg4IDIyNy4xQzI2MS45IDE3Ni40IDE5MC45IDgxLjkgMTI0LjkgMzUuMyA2MS42LTkuNCAzNy41LTEuNyAyMS42IDUuNSAzLjMgMTMuOCAwIDQxLjkgMCA1OC40UzkuMSAxOTQgMTUgMjEzLjljMTkuNSA2NS43IDg5LjEgODcuOSAxNTMuMiA4MC43IDMuMy0uNSA2LjYtLjkgMTAtMS40LTMuMyAuNS02LjYgMS0xMCAxLjQtOTMuOSAxNC0xNzcuMyA0OC4yLTY3LjkgMTY5LjkgMTIwLjMgMTI0LjYgMTY0LjgtMjYuNyAxODcuNy0xMDMuNCAyMi45IDc2LjcgNDkuMiAyMjIuNSAxODUuNiAxMDMuNCAxMDIuNC0xMDMuNCAyOC4xLTE1Ni02NS44LTE2OS45LTMuMy0uNC02LjctLjgtMTAtMS4zIDMuNCAuNCA2LjcgLjkgMTAgMS4zIDY0LjEgNy4xIDEzMy42LTE1LjEgMTUzLjItODAuNyA1LjktMTkuOSAxNS0xMzguOSAxNS0xNTUuNXMtMy4zLTQ0LjctMjEuNi01Mi45Yy0xNS44LTcuMS00MC0xNC45LTEwMy4yIDI5LjgtNjYuMSA0Ni42LTEzNy4xIDE0MS4xLTE2My4yIDE5MS44eiJdfSxabnQ9e3ByZWZpeDoiZmFiIixpY29uTmFtZToic2NyaWJkIixpY29uOlszODQsNTEyLFtdLCJmMjhhIiwiTTQyLjYgMjUyLjdjLTE2LjEtMTktMjQuNy00NS45LTI0LjgtNzkuOSAwLTEwMC40IDc1LjItMTUzLjEgMTY3LjItMTUzLjEgOTguNi0xLjYgMTU2LjggNDkgMTg0LjMgNzAuNmwtNTAuNSA3Mi4xLTM3LjMtMjQuNiAyNi45LTM4LjZjLTM2LjUtMjQtNzkuNC0zNi41LTEyMy0zNS44LTUwLjctLjgtMTExLjcgMjcuMi0xMTEuNyA3Ni4yIDAgMTguNyAxMS4yIDIwLjcgMjguNiAxNS42IDIzLjMtNS4zIDQxLjkgLjYgNTUuOCAxNCAyNi40IDI0LjMgMjMuMiA2Ny42LS43IDkxLjktMjkuMiAyOS41LTg1LjIgMjcuMy0xMTQuOC04LjR6bTMxNy43IDUuOWMtMTUuNS0xOC44LTM4LjktMjkuNC02My4yLTI4LjYtMzguMS0yLTcxLjEgMjgtNzAuNSA2Ny4yLS43IDE2LjggNiAzMyAxOC40IDQ0LjMgMTQuMSAxMy45IDMzIDE5LjcgNTYuMyAxNC40IDE3LjQtNS4xIDI4LjYtMy4xIDI4LjYgMTUuNiAwIDQuMy0uNSA4LjUtMS40IDEyLjctMTYuNyA0MC45LTU5LjUgNjQuNC0xMjEuNCA2NC40LTUxLjkgLjItMTAyLjQtMTYuNC0xNDQuMS00Ny4zbDMzLjctMzkuNC0zNS42LTI3LjQtNjAuOCA3MS44IDE1LjQgMTMuOGM1Mi41IDQ2LjggMTIwLjQgNzIuNSAxOTAuNyA3Mi4yIDUxLjQgMCA5NC40LTEwLjUgMTMzLjYtNDQuMSA1Ny4xLTUxLjQgNTQuMi0xNDkuMiAyMC4zLTE4OS42eiJdfSxYbnQ9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiY3JlYXRpdmUtY29tbW9ucy1wZCIsaWNvbjpbNTEyLDUxMixbXSwiZjRlYyIsIk0yNTYgOGEyNDggMjQ4IDAgMSAwIDAgNDk2IDI0OCAyNDggMCAxIDAgMC00OTZ6bTAgNDQ5LjVjLTEzOS4yIDAtMjM1LjgtMTM4LTE5MC4yLTI2Ny45bDc4LjggMzUuMWMtMi4xIDEwLjUtMy4zIDIxLjUtMy4zIDMyLjkgMCA5OSA3My45IDEyNi45IDEyMC40IDEyNi45IDIyLjkgMCA1My41LTYuNyA3OS40LTI5LjVMMzA1IDMxMS4xYy01LjUgNi4zLTE3LjYgMTYuNy0zNi4zIDE2LjctMzcuOCAwLTUzLjctMzkuOS01My45LTcxLjkgMjMwLjQgMTAyLjYgMjE2LjUgOTYuNSAyMTcuOSA5Ni44LTM0LjMgNjIuNC0xMDAuNiAxMDQuOC0xNzYuNyAxMDQuOHptMTk0LjItMTUwbC0yMjQtMTAwYzE4LjgtMzQgNTQuOS0zMC43IDc0LjctMTFsNDAuNC00MS42Yy0yNy4xLTIzLjMtNTgtMjcuNS03OC4xLTI3LjUtNDcuNCAwLTgwLjkgMjAuNS0xMDAuNyA1MS42TDg3LjYgMTQ1LjZjMzYuMS01NC45IDk4LjEtOTEuMiAxNjguNS05MS4yIDExMS4xIDAgMjAxLjUgOTAuNCAyMDEuNSAyMDEuNSAwIDE4LTIuNCAzNS40LTYuOCA1Mi0uMy0uMS0uNC0uMi0uNi0uNHoiXX0sUW50PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImVhcmx5YmlyZHMiLGljb246WzUxMiw1MTIsW10sImYzOWEiLCJNMzI5LjMgNDcuNWMxLjItMTMgMjEuMy0xNCAzNi42LTguNyAuOSAuMyAyNi4yIDkuNyAxOSAxNS4yLTI3LjktNy40LTU2LjQgMTguMi01NS42LTYuNXptLTIwMSA2LjljMzAuNy04LjEgNjIgMjAgNjEuMS03LjEtMS4zLTE0LjItMjMuNC0xNS4zLTQwLjItOS42LTEgLjMtMjguNyAxMC41LTIwLjkgMTYuN3pNMzM1LjUgMTYwYTE2IDE2IDAgMSAwIDAgMzIgMTYgMTYgMCAxIDAgMC0zMnptLTE1OS43IDBhMTYgMTYgMCAxIDAgMCAzMiAxNiAxNiAwIDEgMCAwLTMyek00OTQuMyAzMjMuMmMtOS45IDI0LTQwLjcgMTEtNjMuOS0xLjItMTMuNSA2OS4xLTU4LjEgMTExLjQtMTI2LjMgMTI0LjIgLjMgLjktMi0uMSAyNCAxIDMzLjYgMS40IDYzLjgtMy4xIDk3LjQtOC0xOS44LTEzLjgtMTEuNC0zNy4xLTkuOC0zOC4xIDEuNC0uOSAxNC43IDEuNyAyMS42IDExLjUgOC42LTEyLjUgMjguNC0xNC44IDMwLjItMTMuNiAxLjYgMS4xIDYuNiAyMC45LTYuOSAzNC42IDQuNy0uOSA4LjItMS42IDkuOC0yLjEgMi42LS44IDE3LjcgMTEuMyAzLjEgMTMuMy0xNC4zIDIuMy0yMi42IDUuMS00Ny4xIDEwLjgtNDUuOSAxMC43LTg1LjkgMTEuOC0xMTcuNyAxMi44bDEgMTEuNmMzLjggMTguMS0yMy40IDI0LjMtMjcuNiA2LjIgLjggMTcuOS0yNy4xIDIxLjgtMjguNC0xbC0uNSA1LjNjLS43IDE4LjQtMjguNCAxNy45LTI4LjMtLjYtNy41IDEzLjUtMjguMSA2LjgtMjYuNC04LjVsMS4yLTEyLjRjLTM2LjcgLjktNTkuNyAzLjEtNjEuOCAzLjEtMjAuOSAwLTIwLjktMzEuNiAwLTMxLjYgMi40IDAgMjcuNyAxLjMgNjMuMiAyLjgtNjEuMS0xNS41LTEwMy43LTU1LTExNC45LTExOC4yLTI1IDEyLjgtNTcuNSAyNi44LTY4LjIgLjgtMTAuNS0yNS40IDIxLjUtNDIuNiA2Ni44LTczLjQgLjctNi42IDEuNi0xMy4zIDIuNy0xOS44LTE0LjQtMTkuNi0xMS42LTM2LjMtMTYuMS02MC40LTE2LjggMi40LTIzLjItOS4xLTIzLjYtMjMuMSAuMy03LjMgMi4xLTE0LjkgMi40LTE1LjQgMS4xLTEuOCAxMC4xLTIgMTIuNy0yLjYgNi0zMS43IDUwLjYtMzMuMiA5MC45LTM0LjUgMTkuNy0yMS44IDQ1LjItNDEuNSA4MC45LTQ4LjMtMTUuMy0xOS40LTMuNC0zOS45LTIuNC00MC40IDEuNy0uOCAyMS4yIDQuMyAyNi4zIDIzLjIgNS4yLTguOCAxOC4zLTExLjQgMTkuNi0xMC43IDEuMSAuNiA2LjQgMTUtNC45IDI1LjkgNDAuMyAzLjUgNzIuMiAyNC43IDk2IDUwLjcgMzYuMSAxLjUgNzEuOCA1LjkgNzcuMSAzNCAyLjcgLjYgMTEuNiAuOCAxMi43IDIuNiAuMyAuNSAyLjEgOC4xIDIuNCAxNS40LS41IDEzLjktNi44IDI1LjQtMjMuNiAyMy4xLTMuMiAxNy4zLTIuNyAzMi45LTguNyA0Ny43IDIuNCAxMS43IDQgMjMuOCA0LjggMzYuNCAzNyAyNS40IDcwLjMgNDIuNSA2MC4zIDY2Ljl6TTIyMy41IDE1OS45Yy45LTQ0LTM3LjktNDIuMi03OC42LTQwLjMtMjEuNyAxLTM4LjkgMS45LTQ1LjUgMTMuOS0xMS40IDIwLjkgNS45IDkyLjkgMjMuMiAxMDEuMiA5LjggNC43IDczLjQgNy45IDg2LjMtNy4xIDguMi05LjQgMTUtNDkuNCAxNC42LTY3Ljd6bTUyIDU4LjNjLTQuMy0xMi40LTYtMzAuMS0xNS4zLTMyLjctMi0uNS05LS41LTExIDAtMTAgMi44LTEwLjggMjIuMS0xNyAzNy4yIDE1LjQgMCAxOS4zIDkuNyAyMy43IDkuNyA0LjMgMCA2LjMtMTEuMyAxOS42LTE0LjJ6bTEzNS43LTg0LjdjLTYuNi0xMi4xLTI0LjgtMTIuOS00Ni41LTEzLjktNDAuMi0xLjktNzguMi0zLjgtNzcuMyA0MC4zLS41IDE4LjMgNSA1OC4zIDEzLjIgNjcuOCAxMyAxNC45IDc2LjYgMTEuOCA4Ni4zIDcuMSAxNS44LTcuNiAzNi41LTc4LjkgMjQuMy0xMDEuM3oiXX0sSm50PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6InN5bWZvbnljYXN0cyIsaWNvbjpbNTc2LDUxMixbXSwiZThhYiIsIk0yOTMuOCAzNDIuNWMzLjQtMS41IDYuOC0xLjUgMTAuMiAwbDU0LjIgMjIuNmMyLjYgLjkgNC43IDIuNiA2LjIgNC44czIuMyA0LjggMi4zIDcuNmMwIDE5LjQtMy42IDM3LjItMTAuNyA1My40LTYuMiAxMy42LTE0LjUgMjUuNC0yNC44IDM1LjYtOC43IDguNS0xNy43IDE0LjYtMjcuMSAxOC40LTMuNCAxLjUtNi44IDEuNS0xMC4yIDAtMTAuNy00LjMtMjAuNi0xMS4zLTI5LjctMjAuOS0xMC0xMC40LTE3LjgtMjIuNS0yMy41LTM2LjQtNi40LTE1LjYtOS42LTMyLjMtOS42LTUwIDAtMi44IC43LTUuNCAyLjItNy42IDEuNS0yLjMgMy42LTMuOSA2LjItNC44bDU0LjItMjIuNnpNNDc5LjcgNDgzLjhhNzAuMSA3MC4xIDAgMSAxIDAtMTQwLjIgNzAuMSA3MC4xIDAgMSAxIDAgMTQwLjJ6TTI0NC42IDM3Ny42YzAgMTUuMyAyLjYgMjkuNyA3LjkgNDMuMiA0LjkgMTIuNCAxMS42IDIzLjMgMjAuMSAzMi41IDguMSA4LjkgMTYuOSAxNS4zIDI2LjMgMTkuMiA5LjItMy44IDE3LjgtMTAgMjUuNy0xOC43IDguNy05LjIgMTUuNC0xOS45IDIwLjMtMzIuMiA1LjUtMTMuNyA4LjItMjguNCA4LjItNDQuMWwtNTQuMi0yMi42LTU0LjIgMjIuNnptMjM1LjEtMjAuM2E1Ni41IDU2LjUgMCAxIDAgMCAxMTMgNTYuNSA1Ni41IDAgMSAwIDAtMTEzem0tMzUyLjggMi4zYzQuMSAwIDcuNiAxLjMgMTAuNCAzLjkgMi44IDIuNiA0LjIgNS45IDQuMiA5LjZsMCAxNi40IDMxLjEtMTkuMmMxLjUtMS4xIDMuMi0xLjcgNS4xLTEuNyAyLjQgMCA0LjYgLjggNi4zIDIuNXMyLjcgMy44IDIuNyA2LjJsMCA3Mi42YzAgMi42LS45IDQuOC0yLjcgNi41cy0zLjkgMi41LTYuMyAyLjVjLTEuOSAwLTMuNi0uNi01LjEtMS43bC0zMS4xLTE5LjIgMCAxNi40YzAgMy44LTEuNCA3LTQuMiA5LjZzLTYuMyA0LTEwLjQgNGwtODguMiAwYy00LjEgMC03LjYtMS4zLTEwLjUtNHMtNC4yLTUuOC00LjItOS42bDAtODEuM2MwLTMuOCAxLjQtNyA0LjItOS42czYuMy0zLjkgMTAuNS0zLjlsODguMiAwem0xNzIgOTcuOGMtMTEuMy03LTIwLjQtMTYuNC0yNy40LTI4LjMtNy41LTEyLjQtMTEuOS0yNi42LTEzLTQyLjRsNDAuNC0xNyAwIDg3LjZ6TTM3LjUgMzczLjRsMCA4MC44Yy4yIC4yIC42IC4zIDEuMiAuM2w4OC4yIDBjLjQgMCAuNy0uMSAxLjEtLjNsMC04MC44Yy0uMi0uMi0uNi0uMy0xLjItLjNsLTg4LjEgMGMtLjQgMC0uOCAuMS0xLjIgLjN6bTQxOC40IDUuMWMyLjMtMS4zIDQuNS0xLjMgNi44IDBsNDkuOCAzMC4yYzIuMyAxLjMgMy40IDMuMyAzLjQgNS45cy0xLjEgNC42LTMuNCA1LjlsLTQ5LjggMjguNmMtMi4zIDEuMy00LjUgMS4zLTYuOCAwcy0zLjQtMy4zLTMuNC01LjlsMC01OC44YzAtMi42IDEuMS00LjYgMy40LTUuOXpNMTQxLjUgNDA1LjVsMCAxNi40IDMxLjcgMTkuOCAwLTU2LTMxLjcgMTkuOHpNNDUxLjEgNS4yYzM1LjgtMS4yIDYyLjkgMTUuMSA2My44IDQwLjggLjQgMTAuOS01LjkgMzIuMi0yNy44IDMzLTE2LjMgLjYtMjcuNi05LjItMjguMS0yNC4xLS4yLTUuNCAxLjItMTAuMiA0LjktMTUuOCAzLjYtNy4xIDQuNC03LjkgNC4zLTExLS4zLTkuNC0xNC41LTkuNy0xOC4zLTkuNS01MyAxLjgtNjYuOSA3My4zLTc4LjIgMTMxLjVsLTUuNiAzMC43YzMwLjUgNC41IDUyLjItMSA2NC4yLTguOCAxNy0xMS00LjgtMjIuNC0yLTM1IDIuOC0xMi44IDE0LjQtMTkgMjMuNy0xOS4yIDEyLjktLjMgMjIuMiAxMy4xIDIxLjkgMjYuNy0uNSAyMi42LTMwLjQgNTMuNi05MC4yIDUyLjMtNy4zLS4yLTE0LS43LTIwLjItMS40bC0xMS4zIDYyLjNjLTMgMTQtNi4zIDI5LjUtMTAuNyA0NS44bDIwNCAwIC45IC4xYy4zIC4xIC42IC4xIC44IC4yIDIuMiAuNiA0IDIuNSA0LjUgNC44IC42IDIuOC0xIDYtMy43IDcuMi0uNSAuMi0xLjEgLjQtMS43IC41LS4zIDAtLjYgMC0uOSAuMWwtNTE1LjMgMGMtLjctLjEtLjkgMC0xLjctLjItMi41LS43LTQuNC0zLjEtNC42LTUuNy0uMi0yLjMgMS00LjYgMy01LjggLjctLjUgMS42LS44IDIuNC0uOSAuMyAwIC42IDAgLjgtLjFsNDguNCAwYy0xNy4yLTE2LjgtMjAtMzcuMi0xNi01MC41IDUuNC0xNy42IDE5LjQtMjAuOSAzMy0xNi43IDE0LjYgNC41IDIwLjMgMjIuMyAxNi4yIDM2LS41IDEuNS0xLjIgMy45LTIuOCA3LjItMS43IDMuOC00LjggNy4xLTYuMiAxMS41LTEuNSA0LjkgLjcgOS4xIDQuNSAxMi42bDU4LjkgMGM0LjItNCA3LjQtOSA5LjEtMTQuNiA1LjMtMTctNS41LTI4LjktMTAtMzMuNWwtMjEuNy0yMy4yYy05LjktMTEuMS0zMS43LTQxLjktMjEuMS03Ni41IDQuMS0xMy40IDEyLjgtMjcuNSAyNS4zLTM2LjkgMjYuNS0xOS43IDU1LjMtMjMgODIuNy0xNS4xIDM1LjUgMTAuMiA1Mi41IDMzLjcgNzQuNiA1MS44IDEyLjQtMzYuMyAyOS41LTcxLjkgNTUuMy0xMDEuOSAyMy4zLTI3LjMgNTQuNi00Ny4xIDkwLjQtNDguM3pNMjI5LjYgMTIxLjNjLTIyLjItNi0zNS43LS45LTQ1LjIgMTEuMi0xMS4zIDE0LjMtNy41IDMyLjggMy4zIDQzLjdsMTggMTkuOWMyMiAyNS41IDM0LjEgNDUuMyAyOS42IDcyLTIuMiAxMy4xLTguNSAyNS4yLTE3LjkgMzUuM2w1NC4yIDBjMS01LjEgMi0xMC40IDMuMS0xNS44bDMuNi0yMS45YzUuOS0yOS40IDEyLjQtNjIuMiAyMi4zLTk0LjgtMjQuMS0xOC4xLTM4LjUtNDAuNy03MC45LTQ5LjV6Il19LEdhZT17cHJlZml4OiJmYWIiLGljb25OYW1lOiJzcXVhcmUtb2Rub2tsYXNzbmlraSIsaWNvbjpbNDQ4LDUxMixbIm9kbm9rbGFzc25pa2ktc3F1YXJlIl0sImYyNjQiLCJNMjI0IDEzNy4xYy01LjQtLjMtMTAuOCAuNi0xNS45IDIuNHMtOS43IDQuOC0xMy42IDguNS03IDguMi05LjIgMTMuMi0zLjIgMTAuMy0zLjIgMTUuNyAxLjEgMTAuOCAzLjIgMTUuNyA1LjMgOS41IDkuMiAxMy4yIDguNiA2LjYgMTMuNiA4LjUgMTAuNSAyLjcgMTUuOSAyLjRjNS40IC4zIDEwLjgtLjYgMTUuOS0yLjRzOS43LTQuOCAxMy42LTguNSA3LTguMiA5LjItMTMuMiAzLjItMTAuMyAzLjItMTUuNy0xLjEtMTAuOC0zLjItMTUuNy01LjMtOS41LTkuMi0xMy4yLTguNi02LjYtMTMuNi04LjUtMTAuNS0yLjctMTUuOS0yLjR6TTM4NCAzMkw2NCAzMkMyOC43IDMyIDAgNjAuNyAwIDk2TDAgNDE2YzAgMzUuMyAyOC43IDY0IDY0IDY0bDMyMCAwYzM1LjMgMCA2NC0yOC43IDY0LTY0bDAtMzIwYzAtMzUuMy0yOC43LTY0LTY0LTY0ek0yMjQgMjU4YTgxIDgxIDAgMSAxIDAtMTYyLjEgODEgODEgMCAxIDEgMCAxNjIuMXptNTkuMyA2LjJjMTYuOC0xMy4yIDI5LjUtNS41IDM0LjEgMy42IDcuOCAxNi0xLjEgMjMuNy0yMS41IDM3LTE3LjEgMTAuOS00MC43IDE1LjItNTYuMiAxNi44bDEzIDEyLjkgNDcuNyA0Ny43YzE3LjQgMTcuOS0xMSA0NS44LTI4LjYgMjguNi0xMi0xMi4yLTI5LjUtMjkuNy00Ny43LTQ3LjlsLTQ3LjcgNDcuOWMtMTcuNyAxNy4yLTQ2LTExLTI4LjQtMjguNiAzLjctMy43IDcuOS03LjkgMTIuNS0xMi41IDEwLjQtMTAuNCAyMi42LTIyLjcgMzUuMi0zNS4ybDEyLjktMTIuOWMtMTUuNC0xLjYtMzkuMy01LjctNTYuNi0xNi44LTIwLjMtMTMuMy0yOS4zLTIwLjktMjEuNC0zNyA0LjYtOS4xIDE3LjMtMTYuOCAzNC4xLTMuNiAwIDAgMjIuNyAxOCA1OS4zIDE4czU5LjMtMTggNTkuMy0xOHoiXX0sS250PUdhZSxlb3Q9e3ByZWZpeDoiZmFiIixpY29uTmFtZToibWFya2Rvd24iLGljb246WzY0MCw1MTIsW10sImY2MGYiLCJNNTkzLjggNTkuMWwtNTQ3LjYgMEMyMC43IDU5LjEgMCA3OS44IDAgMTA1LjJMMCA0MDYuN2MwIDI1LjUgMjAuNyA0Ni4yIDQ2LjIgNDYuMmw1NDcuNyAwYzI1LjUgMCA0Ni4yLTIwLjcgNDYuMS00Ni4xbDAtMzAxLjZjMC0yNS40LTIwLjctNDYuMS00Ni4yLTQ2LjF6TTMzOC41IDM2MC42bC02MS41IDAgMC0xMjAtNjEuNSA3Ni45LTYxLjUtNzYuOSAwIDEyMC02MS43IDAgMC0yMDkuMiA2MS41IDAgNjEuNSA3Ni45IDYxLjUtNzYuOSA2MS41IDAgMCAyMDkuMiAuMiAwem0xMzUuMyAzLjFsLTkyLjMtMTA3LjcgNjEuNSAwIDAtMTA0LjYgNjEuNSAwIDAgMTA0LjYgNjEuNSAwLTkyLjIgMTA3Ljd6Il19LHRvdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJ0eXBvMyIsaWNvbjpbNDQ4LDUxMixbXSwiZjQyYiIsIk0xNzguNyA3OC40YzAtMjQuNyA1LjQtMzIuNCAxMy45LTM5LjQtNjkuNSA4LjUtMTQ5LjMgMzQtMTc2LjMgNjYuNC01LjQgNy43LTkuMyAyMC44LTkuMyAzNy4xIDAgMTAzLjUgMTA2LjggMzM3LjUgMTg0LjEgMzM3LjUgMzYuMyAwIDk3LjMtNTkuNSAxNDYuNy0xMzktNyAyLjMtMTEuNiAyLjMtMTguNSAyLjMtNTcuMiAwLTE0MC42LTE5OC41LTE0MC42LTI2NC45ek0zMDEuNSAzMmMtMzAuMSAwLTQxLjcgNS40LTQxLjcgMzYuMyAwIDY2LjQgNTMuOCAxOTguNSAxMDEuNyAxOTguNSAyNi4zIDAgNzguOC05OS43IDc4LjgtMTgyLjMgMC00MC45LTY3LTUyLjUtMTM4LjgtNTIuNXoiXX0scm90PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6Impvb21sYSIsaWNvbjpbNDQ4LDUxMixbXSwiZjFhYSIsIk0uNiA5Mi4xYzAtMzMuMyAyNi44LTYwLjEgNTkuOC02MC4xIDMwIDAgNTQuNSAyMS45IDU5LjIgNTAuMiAzMi42LTcuNiA2Ny4xIC42IDk2LjUgMzBsLTQ0LjMgNDQuM2MtMjAuNS0yMC41LTQyLjYtMTYuMy01NS40LTMuNS0xNC4zIDE0LjMtMTQuMyAzNy45IDAgNTIuMmw5OS41IDk5LjUtNDQgNDQuM2MtODcuNy04Ny4yLTQ5LjctNDkuNy05OS44LTk5LjctMjYuOC0yNi41LTM1LTY0LjgtMjQuOC05OC45LTI2LjktNS44LTQ2LjctMjkuNy00Ni43LTU4LjN6TTEzMC4xIDIwOC41bDQ0LjMgNDQuM2MxMC0xMCA4OS43LTg5LjcgOTkuNy05OS44IDE0LjMtMTQuMyAzNy42LTE0LjMgNTEuOSAwIDEyLjggMTIuOCAxNyAzNS0zLjUgNTUuNGw0NCA0NC4zYzMxLjItMzEuMiAzOC41LTY3LjYgMjguOS0xMDEuMiAyOS4yLTQuMSA1MS45LTI5LjIgNTEuOS01OS41IDAtMzMuMi0yNi44LTYwLjEtNTkuOC02MC4xLTMwLjMgMC01NS40IDIyLjUtNTkuNSA1MS42LTMzLjgtOS45LTcxLjctMS41LTk4LjMgMjUuMS0xOC4zIDE5LjEtNzEuMSA3MS41LTk5LjYgOTkuOXpNMzk2LjQgMzYwLjdjOC4yLTMyLjctLjktNjguNS0yNi4zLTkzLjktMTEuOC0xMi4yIDUgNC43LTk5LjUtOTkuN2wtNDQuMyA0NC4zIDk5LjcgOTkuN2MxNC4zIDE0LjMgMTQuMyAzNy42IDAgNTEuOS0xMi44IDEyLjgtMzUgMTctNTUuNC0zLjVsLTQ0IDQ0LjNjMjcuNiAzMC4yIDY4IDM4LjggMTAyLjcgMjggNS41IDI3LjQgMjkuNyA0OC4xIDU4LjkgNDguMSAzMyAwIDU5LjgtMjYuOCA1OS44LTYwLjEgMC0zMC4yLTIyLjUtNTUtNTEuNi01OS4xem0tODQuMy01My4xbC00NC00NC4zYy04NyA4Ni40LTUwLjQgNTAuNC05OS43IDk5LjgtMTQuMyAxNC4zLTM3LjYgMTQuMy01MS45IDAtMTMuMS0xMy40LTE2LjktMzUuMyAzLjItNTUuNGwtNDQtNDQuM2MtMzAuMiAzMC4yLTM4IDY1LjItMjkuNSA5OC4zLTI2LjcgNi00Ni4yIDI5LjktNDYuMiA1OC4yIDAgMzMuMyAyNi44IDYwLjEgNTkuOCA2MC4xIDI4LjYgMCA1Mi41LTE5LjggNTguNi00Ni43IDMyLjcgOC4yIDY4LjUtLjYgOTQuMi0yNiAzMi4xLTMyIDEyLjItMTIuNCA5OS41LTk5Ljd6Il19LGlvdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJ3ZWl4aW4iLGljb246WzU3Niw1MTIsW10sImYxZDciLCJNMzg1LjIgMTY3LjZjNi40IDAgMTIuNiAuMyAxOC44IDEuMS0xNi42LTc4LjQtMTAwLjctMTM2LjctMTk2LjMtMTM2LjctMTA3LjIgMC0xOTQuNyA3Mi44LTE5NC43IDE2NS40IDAgNTMuNCAyOS4zIDk3LjUgNzcuOSAxMzEuNmwtMTkuMyA1OC42IDY4LTM0LjFjMjQuNCA0LjggNDMuOCA5LjcgNjguMiA5LjcgNi4yIDAgMTIuMS0uMyAxOC4zLS44LTQtMTIuOS02LjItMjYuNi02LjItNDAuOC0uMS04NC45IDcyLjktMTU0IDE2NS4zLTE1NHpNMjgwLjcgMTE0LjdjMTQuNSAwIDI0LjIgOS43IDI0LjIgMjQuNCAwIDE0LjUtOS43IDI0LjItMjQuMiAyNC4yLTE0LjggMC0yOS4zLTkuNy0yOS4zLTI0LjIgLjEtMTQuNyAxNC42LTI0LjQgMjkuMy0yNC40ek0xNDQuMyAxNjMuM2MtMTQuNSAwLTI5LjMtOS43LTI5LjMtMjQuMiAwLTE0LjggMTQuOC0yNC40IDI5LjMtMjQuNCAxNC44IDAgMjQuNCA5LjcgMjQuNCAyNC40IDAgMTQuNi05LjYgMjQuMi0yNC40IDI0LjJ6TTU2MyAzMTkuNGMwLTc3LjktNzcuOS0xNDEuMy0xNjUuNC0xNDEuMy05Mi43IDAtMTY1LjQgNjMuNC0xNjUuNCAxNDEuM1MzMDUgNDYwLjcgMzk3LjYgNDYwLjdjMTkuMyAwIDM4LjktNS4xIDU4LjYtOS45bDUzLjQgMjkuMy0xNC44LTQ4LjZDNTM0IDQwMi4xIDU2MyAzNjMuMiA1NjMgMzE5LjR6TTM0My45IDI5NC45Yy05LjcgMC0xOS4zLTkuNy0xOS4zLTE5LjYgMC05LjcgOS43LTE5LjMgMTkuMy0xOS4zIDE0LjggMCAyNC40IDkuNyAyNC40IDE5LjMgMCAxMC05LjcgMTkuNi0yNC40IDE5LjZ6bTEwNy4xIDBjLTkuNyAwLTE5LjMtOS43LTE5LjMtMTkuNiAwLTkuNyA5LjctMTkuMyAxOS4zLTE5LjMgMTQuNSAwIDI0LjQgOS43IDI0LjQgMTkuMyAuMSAxMC05LjkgMTkuNi0yNC40IDE5LjZ6Il19LGFvdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJncnVudCIsaWNvbjpbMzg0LDUxMixbXSwiZjNhZCIsIk02MS42IDE4OS4zYy0xLjEgMTAgNS4yIDE5LjEgNS4yIDE5LjEgLjctNy41IDIuMi0xMi44IDQtMTYuNiAuNCAxMC4zIDMuMiAyMy41IDEyLjggMzQuMSA2LjkgNy42IDM1LjYgMjMuMyA1NC45IDYuMSAxIDIuNCAyLjEgNS4zIDMgOC41IDIuOSAxMC4zLTIuNyAyNS4zLTIuNyAyNS4zczE1LjEtMTcuMSAxMy45LTMyLjVjMTAuOC0uNSAyMS40LTguNCAyMS4xLTE5LjUgMCAwLTE4LjkgMTAuNC0zNS41LTguOC05LjctMTEuMi00MC45LTQyLTgzLjEtMzEuOCA0LjMgMSA4LjkgMi40IDEzLjUgNC4xbC0uMSAwYy00LjIgMi02LjUgNy4xLTcgMTJ6bTI4LjMtMS44YzE5LjUgMTEgMzcuNCAyNS43IDQ0LjkgMzctNS43IDMuMy0yMS43IDEwLjQtMzgtMS43LTEwLjMtNy42LTkuOC0yNi4yLTYuOS0zNS4zek0yMzIgMjMzLjNjLTEuMiAxNS41IDEzLjkgMzIuNSAxMy45IDMyLjVzLTUuNi0xNS0yLjctMjUuM2MuOS0zLjIgMi02IDMtOC41IDE5LjMgMTcuMyA0OCAxLjUgNTQuOC02LjEgOS42LTEwLjYgMTIuMy0yMy44IDEyLjgtMzQuMSAxLjggMy44IDMuNCA5LjEgNCAxNi42IDAgMCA2LjQtOS4xIDUuMi0xOS4xLS42LTUtMi45LTEwLTctMTEuOGwtLjEgMGM0LjYtMS44IDkuMi0zLjIgMTMuNS00LjEtNDIuMy0xMC4yLTczLjQgMjAuNi04My4xIDMxLjgtMTYuNyAxOS4yLTM1LjUgOC44LTM1LjUgOC44LS4yIDEwLjkgMTAuNCAxOC45IDIxLjIgMTkuM3ptNjIuNy00NS44YzMgOS4xIDMuNCAyNy43LTcgMzUuNC0xNi4zIDEyLjEtMzIuMiA1LTM3LjkgMS42IDcuNS0xMS40IDI1LjQtMjYgNDQuOS0zN3ptLTEzNC40IDIzMWwtMjkuNCAwYy01LjUgMC04LjIgMS42LTkuNSAyLjktMS45IDItMi4yIDQuNy0uOSA4LjEgMy41IDkuMSAxMS40IDE2LjUgMTMuNyAxOC42IDMuMSAyLjcgNy41IDQuMyAxMS44IDQuMyA0LjQgMCA4LjMtMS43IDExLTQuNiA3LjUtOC4yIDExLjktMTcuMSAxMy0xOS44IC42LTEuNSAxLjMtNC41LS45LTYuOC0xLjgtMS44LTQuNy0yLjctOC44LTIuN3pNMzQ5LjUgMzE3LjNjLTIuNCAxNy45LTEzIDMzLjgtMjQuNiA0My43LTMuMS0yMi43LTMuNy01NS41LTMuNy02Mi40IDAtMTQuNyA5LjUtMjQuNSAxMi4yLTI2LjEgMi41LTEuNSA1LjQtMyA4LjMtNC42IDE4LTkuNiA0MC40LTIxLjYgNDAuNC00My43IDAtMTYuMi05LjMtMjMuMi0xNS40LTI3LjgtLjgtLjYtMS41LTEuMS0yLjItMS43LTIuMS0xLjctMy43LTMtNC4zLTQuNC00LjQtOS44LTMuNi0zNC4yLTEuNy0zNy42IC42LS42IDE2LjctMjAuOSAxMS44LTM5LjItMi03LjQtNi45LTEzLjMtMTQuMS0xNy01LjMtMi43LTExLjktNC4yLTE5LjUtNC41LS4xLTItLjUtMy45LS45LTUuOS0uNi0yLjYtMS4xLTUuMy0uOS04LjEgLjQtNC43IC44LTkgMi4yLTExLjMgOC40LTEzLjMgMjguOC0xNy42IDI5LTE3LjZsMTIuMy0yLjQtOC4xLTkuNWMtLjEtLjItMTcuMy0xNy41LTQ2LjMtMTcuNS03LjkgMC0xNiAxLjMtMjQuMSAzLjktMjQuMiA3LjgtNDIuOSAzMC41LTQ5LjQgMzkuMy0zLjEtMS02LjMtMS45LTkuNi0yLjctNC4yLTE1LjggOS0zOC41IDktMzguNXMtMTMuNi0zLTMzLjcgMTUuMmMtMi42LTYuNS04LjEtMjAuNS0xLjgtMzcuMi0yOS41IDEwLjQtMzYuOSAyNi4zLTM5LjEgNDAuNy03LjYtNS40LTYuNy0yMy4xLTcuMi0yNy42LTcuNSAuOS0yOS4yIDIxLjktMjguMiA0OC4zLTIgLjUtMy45IDEuMS01LjkgMS43LTYuNS04LjgtMjUuMS0zMS41LTQ5LjQtMzkuMy03LjktMi4yLTE2LTMuNS0yMy45LTMuNS0yOSAwLTQ2LjEgMTcuMy00Ni4zIDE3LjVsLTguMSA5LjQgMTIuMyAyLjRjLjIgMCAyMC42IDQuMyAyOSAxNy42IDEuNCAyLjIgMS44IDYuNiAyLjIgMTEuMyAuMiAyLjgtLjQgNS41LS45IDguMS0uNCAxLjktLjggMy45LS45IDUuOS03LjcgLjMtMTQuMiAxLjgtMTkuNSA0LjUtNy4yIDMuNy0xMi4xIDkuNi0xNC4xIDE3LTUgMTguMiAxMS4yIDM4LjUgMTEuOCAzOS4yIDEuOSAzLjQgMi43IDI3LjgtMS43IDM3LjYtLjYgMS40LTIuMiAyLjctNC4zIDQuNC0uNyAuNS0xLjQgMS4xLTIuMiAxLjctNi4xIDQuNi0xNS40IDExLjctMTUuNCAyNy44IDAgMjIuMSAyMi40IDM0LjEgNDAuNCA0My43IDMgMS42IDUuOCAzLjEgOC4zIDQuNiAyLjcgMS42IDEyLjIgMTEuNCAxMi4yIDI2LjEgMCA2LjktLjYgMzkuNy0zLjcgNjIuNC0xMS42LTkuOS0yMi4yLTI1LjktMjQuNi00My44IDAgMC0yOS4yIDIyLjYtMjAuNiA3MC44IDUuMiAyOS41IDIzLjIgNDYuMSA0NyA1NC43IDguOCAxOS4xIDI5LjQgNDUuNyA2Ny4zIDQ5LjYgMTQuNCAxMS44IDM0LjQgMTkuNSA2My42IDE5LjVsLjIgMGMyOS4xIDAgNDkuMS03LjcgNjMuNi0xOS41IDM3LjktMy45IDU4LjUtMzAuNSA2Ny4zLTQ5LjYgMjMuOC04LjcgNDEuNy0yNS4yIDQ3LTU0LjcgOC4yLTQ4LjQtMjEuMS03MC45LTIxLjEtNzAuOXpNMzA2IDM3LjdjNS42LTEuOCAxMS42LTIuNyAxNy43LTIuNyAxMSAwIDE5LjkgMyAyNC43IDUtMy4xIDEuNC02LjQgMy4yLTkuNyA1LjMtMi40LS40LTUuNi0uOC05LjItLjgtMTAuNSAwLTIwLjUgMy4xLTI4LjcgOC45LTEyLjMgOC43LTE4IDE2LjktMjAuNyAyMi40LTIuMi0xLjMtNC41LTIuNS03LjEtMy43LTEuNi0uOC0zLjEtMS41LTQuNy0yLjIgNi4xLTkuMSAxOS45LTI2LjUgMzcuNy0zMi4yem0yMSAxOC4yYy0uOCAxLTEuNiAyLjEtMi4zIDMuMi0zLjMgNS4yLTMuOSAxMS42LTQuNCAxNy44LS41IDYuNC0xLjEgMTIuNS00LjQgMTctNC4yIC44LTguMSAxLjctMTEuNSAyLjctMi4zLTMuMS01LjYtNy0xMC41LTExLjIgMS40LTQuOCA1LjUtMTYuMSAxMy41LTIyLjUgNS42LTQuMyAxMi4yLTYuNyAxOS42LTd6TTQ1LjkgNDUuM2MtMy4zLTIuMi02LjYtNC05LjctNS4zIDQuOC0yIDEzLjctNSAyNC43LTUgNi4xIDAgMTIgLjkgMTcuNyAyLjcgMTcuOCA1LjggMzEuNiAyMy4yIDM3LjcgMzIuMS0xLjYgLjctMy4yIDEuNC00LjggMi4yLTIuNSAxLjItNC45IDIuNS03LjEgMy43LTIuNi01LjQtOC4zLTEzLjctMjAuNy0yMi40LTguMy01LjgtMTguMi04LjktMjguOC04LjktMy40IC4xLTYuNiAuNS05IC45ek05MC42IDg1LjRjLTQuOSA0LjItOC4zIDgtMTAuNSAxMS4yLTMuNC0uOS03LjMtMS45LTExLjUtMi43LTMuMy00LjQtMy44LTEwLjUtNC4zLTE2LjktLjUtNi4yLTEuMS0xMi42LTQuNC0xNy44LS43LTEuMS0xLjUtMi4yLTIuMy0zLjIgNy40IC4zIDE0IDIuNiAxOS41IDcgOCA2LjMgMTIuMSAxNy42IDEzLjUgMjIuNHpNNTguNCAyNTkuOWMtMi43LTEuNi01LjYtMy4xLTguNC00LjYtMTQuOS04LTMwLjItMTYuMy0zMC4yLTMwLjUgMC0xMS4xIDQuMy0xNC42IDguOS0xOC4ybC41LS40Yy43LS42IDEuNC0xLjIgMi4yLTEuOC0uOSA3LjItMS45IDEzLjMtMi43IDE0LjkgMCAwIDEyLjEtMTUgMTUuNy00NC4zIDEuNC0xMS41LTEuMS0zNC4zLTUuMS00MyAuMiA0LjkgMCA5LjgtLjMgMTQuNC0uNC0uOC0uOC0xLjYtMS4zLTIuMi0zLjItNC0xMS44LTE3LjUtOS40LTI2LjYgLjktMy41IDMuMS02IDYuNy03LjggMy44LTEuOSA4LjgtMi45IDE1LjEtMi45IDEyLjMgMCAyNS45IDMuNyAzMi45IDYgMjUuMSA4IDU1LjQgMzAuOSA2NC4xIDM3LjcgLjIgLjIgLjQgLjMgLjQgLjNsNS42IDMuOS0zLjUtNS44Yy0uMi0uMy0xOS4xLTMxLjQtNTMuMi00Ni41IDItMi45IDcuNC04LjEgMjEuNi0xNS4xIDIxLjQtMTAuNSA0Ni41LTE1LjggNzQuMy0xNS44IDI3LjkgMCA1Mi45IDUuMyA3NC4zIDE1LjggMTQuMiA2LjkgMTkuNiAxMi4yIDIxLjYgMTUuMS0zNCAxNS4xLTUyLjkgNDYuMi01My4xIDQ2LjVsLTMuNSA1LjggNS42LTMuOXMuMi0uMSAuNC0uM2M4LjctNi44IDM5LTI5LjggNjQuMS0zNy43IDctMi4yIDIwLjYtNiAzMi45LTYgNi4zIDAgMTEuMyAxIDE1LjEgMi45IDMuNSAxLjggNS43IDQuNCA2LjcgNy44IDIuNSA5LjEtNi4xIDIyLjYtOS40IDI2LjYtLjUgLjYtLjkgMS4zLTEuMyAyLjItLjMtNC42LS41LTkuNS0uMy0xNC40LTQgOC44LTYuNSAzMS41LTUuMSA0MyAzLjYgMjkuMyAxNS43IDQ0LjMgMTUuNyA0NC4zLS44LTEuNi0xLjgtNy43LTIuNy0xNC45IC43IC42IDEuNSAxLjIgMi4yIDEuOGwuNSAuNGM0LjYgMy43IDguOSA3LjEgOC45IDE4LjIgMCAxNC4yLTE1LjQgMjIuNS0zMC4yIDMwLjUtMi45IDEuNS01LjcgMy4xLTguNCA0LjYtOC43IDUtMTggMTYuNy0xOS4xIDM0LjItLjkgMTQuNiAuOSA0OS45IDMuNCA3NS45LTEyLjQgNC44LTI2LjcgNi40LTM5LjcgNi44LTItNC4xLTMuOS04LjUtNS41LTEzLjEtLjctMi0xOS42LTUxLjEtMjYuNC02Mi4yIDUuNSAzOSAxNy41IDczLjcgMjMuNSA4OS42LTMuNS0uNS03LjMtLjctMTEuNy0uN2wtMTE3IDBjLTQuNCAwLTguMyAuMy0xMS43IC43IDYtMTUuOSAxOC4xLTUwLjYgMjMuNS04OS42LTYuOCAxMS4yLTI1LjcgNjAuMy0yNi40IDYyLjItMS42IDQuNi0zLjUgOS01LjUgMTMuMS0xMy0uNC0yNy4yLTItMzkuNy02LjggMi41LTI2IDQuMy02MS4yIDMuNC03NS45LS45LTE3LjQtMTAuMy0yOS4yLTE5LTM0LjJ6TTM1LjEgNDA0LjZjLTEyLjEtMjAtOC43LTU0LjEtMy43LTU5LjEgMTAuOSAzNC40IDQ3LjIgNDQuMyA3NC40IDQ1LjQtMi43IDQuMi01LjIgNy42LTcgMTBsLTEuNCAxLjRjLTcuMiA3LjgtOC42IDE4LjUtNC4xIDMxLjgtMjIuNy0uMS00Ni4zLTkuOC01OC4yLTI5LjV6bTQ1LjcgNDMuNWM2IDEuMSAxMi4yIDEuOSAxOC42IDIuNCAzLjUgOCA3LjQgMTUuOSAxMi4zIDIzLjEtMTQuNC01LjktMjQuNC0xNi0zMC45LTI1LjV6bTExMS41IDUwLjFjLTYwLjYtLjEtNzguMy00NS44LTg0LjktNjQuNy0zLjctMTAuNS0zLjQtMTguMiAuOS0yMy4xIDIuOS0zLjMgOS41LTcuMiAyNC42LTcuMmwxMTguOCAwYzE1LjEgMCAyMS44IDMuOSAyNC42IDcuMiA0LjIgNC44IDQuNSAxMi42IC45IDIzLjEtNi42IDE4LjgtMjQuMyA2NC42LTg0LjkgNjQuN3ptODAuNi0yNC42YzQuOS03LjIgOC44LTE1LjEgMTIuMy0yMy4xIDYuNC0uNSAxMi42LTEuMyAxOC42LTIuNC02LjUgOS41LTE2LjUgMTkuNi0zMC45IDI1LjV6bTc2LjYtNjljLTEyIDE5LjctMzUuNiAyOS4zLTU4LjEgMjkuNyA0LjUtMTMuMyAzLjEtMjQuMS00LjEtMzEuOC0uNC0uNS0uOS0xLTEuNC0xLjUtMS44LTIuNC00LjMtNS44LTctMTAgMjcuMi0xLjIgNjMuNS0xMSA3NC40LTQ1LjQgNSA1IDguNCAzOS4xLTMuOCA1OXpNMTkyLjIgMTg3LjdsLjIgMGMxMi43LS4xIDI3LjItMTcuOCAyNy4yLTE3LjgtOS45IDYtMTguOCA4LjEtMjcuMyA4LjMtOC41LS4yLTE3LjQtMi4zLTI3LjMtOC4zIDAgMCAxNC41IDE3LjYgMjcuMiAxNy44em02MS43IDIzMC43bC0yOS40IDBjLTQuMiAwLTcuMiAuOS04LjkgMi43LTIuMiAyLjMtMS41IDUuMi0uOSA2LjcgMSAyLjYgNS41IDExLjMgMTMgMTkuMyAyLjcgMi45IDYuNiA0LjUgMTEgNC41czguNy0xLjYgMTEuOC00LjJjMi4zLTIgMTAuMi05LjIgMTMuNy0xOC4xIDEuMy0zLjMgMS02LS45LTcuOS0xLjMtMS4zLTQtMi45LTkuNC0zeiJdfSxub3Q9e3ByZWZpeDoiZmFiIixpY29uTmFtZToic3VwcG9ydG5vdyIsaWNvbjpbNjQwLDUxMixbXSwiZTgzMyIsIk0wIDE5MS45bDIwMy45LS4xYzEuOC0uNiAyLjUtOS41IDMuMi0xMi4yIDMuMy0xMy41IDguNC0yNi40IDE0LjgtMzguN2wtMTYwLjIgMCAwLTQ4LjIgMjM0LjUgMCAwIDM5Yy01MS4yIDM2LjEtNTYuNCA5Mi42LTIzLjYgMTQzLjkgMzMuMSA1MS43IDkzLjQgODguMSAxNDkuNSAxMTAuNSA2Ny44LTI1LjIgMTY0LjktODkuOSAxNjkuNC0xNjkuNiAzLjEtNTUuMy00Mi4yLTEwMS44LTk4LjctOTEuOC00MS41IDcuNC02Mi4xIDQ2LjctNTQuOCA4Ni40bC00OC4yIDBjLTcuMy01Ni42IDIyLjgtMTEyLjYgNzguNC0xMzAuMyA3OC43LTI1LjEgMTU5LjUgMjggMTcwLjQgMTA4LjggMTUuMiAxMTIuMy05NS41IDE5OS45LTE4OC4xIDIzNy44LTQuNCAxLjgtMjQuNCAxMC4xLTI3LjUgMTAuMWwtMjgwLjMgMCAwLTQ4LjIgMTc4LjUgMC0zOC4xLTI4LjktMjMuMi0yMi4xLTE5OC4zIDAgMC00OC4yIDE2My4xIDBjLTcuMS0xMS42LTEyLjMtMjQuMy0xNi4xLTM3LjQtLjctMi41LTIuMS0xMi0zLjgtMTIuNmwtMjA0LjktLjEgMC00OC4yIDAgMHoiXX0sb290PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6InJvY2tybXMiLGljb246WzUxMiw1MTIsW10sImYzZTkiLCJNMjU2IDhhMjQ4IDI0OCAwIDEgMCAwIDQ5NiAyNDggMjQ4IDAgMSAwIDAtNDk2ek00MTMuNCA0MjcuNWwtOTAgMC0xMTItMTMxLjNjLTE3LjktMjAuNC0zLjktNTYuMSAyNi42LTU2LjFsNzUuMyAwLTg0LjYtOTkuMy04NC4zIDk4LjktOTAgMCAxNDcuMS0xNzIuNWMxNC40LTE4LjQgNDEuMy0xNy4zIDU0LjUgMEw0MTMuNyAyNTIuM2MxOSAyMi44IDIgNTcuMi0yNy42IDU2LjEtLjYgMC03NC4yIC4yLTc0LjIgLjJMNDEzLjQgNDI3LjV6Il19LHNvdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJ1bnNwbGFzaCIsaWNvbjpbNDQ4LDUxMixbXSwiZTA3YyIsIk00NDggMjMwLjJsMCAyNDkuOC00NDggMCAwLTI0OS44IDE0MS4xIDAgMCAxMjQuOSAxNjUuNyAwIDAtMTI0LjkgMTQxLjEgMHpNMzA2LjkgMzJsLTE2NS43IDAgMCAxMjQuOSAxNjUuNyAwIDAtMTI0Ljl6Il19LFlhZT17cHJlZml4OiJmYWIiLGljb25OYW1lOiJzcXVhcmUtaW5zdGFncmFtIixpY29uOls0NDgsNTEyLFsiaW5zdGFncmFtLXNxdWFyZSJdLCJlMDU1IiwiTTE5NC40IDIxMS43YTUzLjMgNTMuMyAwIDEgMCA1OS4yIDg4LjYgNTMuMyA1My4zIDAgMSAwIC01OS4yLTg4LjZ6bTE0Mi4zLTY4LjRjLTUuMi01LjItMTEuNS05LjMtMTguNC0xMi0xOC4xLTcuMS01Ny42LTYuOC04My4xLTYuNS00LjEgMC03LjkgLjEtMTEuMiAuMXMtNy4yIDAtMTEuNC0uMWMtMjUuNS0uMy02NC44LS43LTgyLjkgNi41LTYuOSAyLjctMTMuMSA2LjgtMTguNCAxMnMtOS4zIDExLjUtMTIgMTguNGMtNy4xIDE4LjEtNi43IDU3LjctNi41IDgzLjIgMCA0LjEgLjEgNy45IC4xIDExLjFzMCA3LS4xIDExLjFjLS4yIDI1LjUtLjYgNjUuMSA2LjUgODMuMiAyLjcgNi45IDYuOCAxMy4xIDEyIDE4LjRzMTEuNSA5LjMgMTguNCAxMmMxOC4xIDcuMSA1Ny42IDYuOCA4My4xIDYuNSA0LjEgMCA3LjktLjEgMTEuMi0uMXM3LjIgMCAxMS40IC4xYzI1LjUgLjMgNjQuOCAuNyA4Mi45LTYuNSA2LjktMi43IDEzLjEtNi44IDE4LjQtMTJzOS4zLTExLjUgMTItMTguNGM3LjItMTggNi44LTU3LjQgNi41LTgzIDAtNC4yLS4xLTguMS0uMS0xMS40czAtNy4xIC4xLTExLjRjLjMtMjUuNSAuNy02NC45LTYuNS04My0yLjctNi45LTYuOC0xMy4xLTEyLTE4LjRsMCAuMnptLTY3LjEgNDQuNWMxOC4xIDEyLjEgMzAuNiAzMC45IDM0LjkgNTIuMnMtLjIgNDMuNS0xMi4zIDYxLjZjLTYgOS0xMy43IDE2LjYtMjIuNiAyMi42cy0xOSAxMC4xLTI5LjYgMTIuMmMtMjEuMyA0LjItNDMuNS0uMi02MS42LTEyLjNzLTMwLjYtMzAuOS0zNC45LTUyLjIgLjItNDMuNSAxMi4yLTYxLjYgMzAuOS0zMC42IDUyLjItMzQuOSA0My41IC4yIDYxLjYgMTIuMmwuMSAwem0yOS4yLTEuM2MtMy4xLTIuMS01LjYtNS4xLTcuMS04LjZzLTEuOC03LjMtMS4xLTExLjEgMi42LTcuMSA1LjItOS44IDYuMS00LjUgOS44LTUuMiA3LjYtLjQgMTEuMSAxLjEgNi41IDMuOSA4LjYgNyAzLjIgNi44IDMuMiAxMC42YzAgMi41LS41IDUtMS40IDcuM3MtMi40IDQuNC00LjEgNi4yLTMuOSAzLjItNi4yIDQuMi00LjggMS41LTcuMyAxLjVjLTMuOCAwLTcuNS0xLjEtMTAuNi0zLjJsLS4xIDB6TTQ0OCA5NmMwLTM1LjMtMjguNy02NC02NC02NEw2NCAzMkMyOC43IDMyIDAgNjAuNyAwIDk2TDAgNDE2YzAgMzUuMyAyOC43IDY0IDY0IDY0bDMyMCAwYzM1LjMgMCA2NC0yOC43IDY0LTY0bDAtMzIwek0zNTcgMzg5Yy0xOC43IDE4LjctNDEuNCAyNC42LTY3IDI1LjktMjYuNCAxLjUtMTA1LjYgMS41LTEzMiAwLTI1LjYtMS4zLTQ4LjMtNy4yLTY3LTI1LjlzLTI0LjYtNDEuNC0yNS44LTY3Yy0xLjUtMjYuNC0xLjUtMTA1LjYgMC0xMzIgMS4zLTI1LjYgNy4xLTQ4LjMgMjUuOC02N3M0MS41LTI0LjYgNjctMjUuOGMyNi40LTEuNSAxMDUuNi0xLjUgMTMyIDAgMjUuNiAxLjMgNDguMyA3LjEgNjcgMjUuOHMyNC42IDQxLjQgMjUuOCA2N2MxLjUgMjYuMyAxLjUgMTA1LjQgMCAxMzEuOS0xLjMgMjUuNi03LjEgNDguMy0yNS44IDY3bDAgLjF6Il19LGxvdD1ZYWUsY290PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImZpcnN0LW9yZGVyLWFsdCIsaWNvbjpbNTEyLDUxMixbXSwiZjUwYSIsIk0yNTYgOGEyNDggMjQ4IDAgMSAwIDAgNDk2IDI0OCAyNDggMCAxIDAgMC00OTZ6bTAgNy44YTI0MC4yIDI0MC4yIDAgMSAxIDAgNDgwLjQgMjQwLjIgMjQwLjIgMCAxIDEgMC00ODAuNHptMCAyMC41YTIxOS43IDIxOS43IDAgMSAwIDAgNDM5LjQgMjE5LjcgMjE5LjcgMCAxIDAgMC00MzkuNHptMCA4LjJhMjExLjUgMjExLjUgMCAxIDEgMCA0MjMgMjExLjUgMjExLjUgMCAxIDEgMC00MjN6bTE4Ni4yIDI2MGMtNC40IDE3LjEtMTEuMiAzMy41LTIwLjEgNDguN2wtNzQuMS0zNS45IDYxLjUgNTQuOGMtMTAuNiAxNC4xLTIzLjIgMjYuNi0zNy4yIDM3LjNsLTU0LjgtNjEuNiAzNS45IDc0LjNjLTE1LjIgOS0zMS42IDE1LjgtNDguNiAyMC4ybC0yNy4zLTc4LjUgNC44IDgyLjljLTguNiAxLjItMTcuNCAxLjgtMjYuMyAxLjhzLTE3LjctLjYtMjYuMy0xLjhsNC44LTgyLjUtMjcuMiA3OGMtMTcuMS00LjUtMzMuNC0xMS4zLTQ4LjctMjAuMmwzNS45LTc0LjMtNTQuOSA2MS42Yy0xNC0xMC43LTI2LjYtMjMuMi0zNy4yLTM3LjNsNjEuNi01NC45LTc0LjMgMzUuOUM4MC43IDMzOCA3NCAzMjEuNyA2OS41IDMwNC42bDc3LjgtMjcuMS04Mi4yIDQuOGMtMS4yLTguNi0xLjgtMTcuMy0xLjgtMjYuMiAwLTkgLjYtMTcuOCAxLjgtMjYuNWw4Mi40IDQuOC03Ny45LTI3LjJjNC41LTE3LjEgMTEuMy0zMy41IDIwLjItNDguN2w3NC4yIDM1LjktNjEuNS01NC45YzEwLjctMTQgMjMuMi0yNi42IDM3LjMtMzcuMmw1NC44IDYxLjUtMzUuOC03NC4yYzE1LjItOC45IDMxLjYtMTUuNyA0OC42LTIwLjFsMjYuOSA3Ny4yLTQuNy04MS42YzguNi0xLjIgMTcuNC0xLjggMjYuMy0xLjhzMTcuNyAuNiAyNi4zIDEuOGwtNC43IDgyLjIgMjctNzcuOGMxNy4zIDQuNSAzMy42IDExLjQgNDguNiAyMC4ybC0zNS44IDc0LjEgNTQuNy02MS41YzE0LjEgMTAuNyAyNi42IDIzLjIgMzcuMiAzNy4ybC02MS40IDU0LjggNzQuMS0zNS45YzguOSAxNS4yIDE1LjcgMzEuNiAyMC4yIDQ4LjZsLTc3LjggMjcuMSA4Mi4yLTQuN2MxLjIgOC43IDEuOCAxNy41IDEuOCAyNi41IDAgOC45LS42IDE3LjYtMS44IDI2LjJsLTgyLjEtNC43IDc3LjcgMjcuMXoiXX0sZG90PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImZ1bGNydW0iLGljb246WzI1Niw1MTIsW10sImY1MGIiLCJNNjMuOCAxNjQuMUwyOC40IDIwNy43LTcgMTY0LjEgMjguNCAxMjAuNiA2My44IDE2NC4xek0xMTIuMiAwbC0yMC41IDE5OC4yLTUxIDU3LjggNTEgNTcuOCAyMC41IDE5OC4yIDAtMjExLjEtNDEuMS00NC45IDQxLjEtNDQuOSAwLTIxMS4xem03OS43IDE2NC4xbDM1LjQgNDMuNiAzNS40LTQzLjYtMzUuNC00My41LTM1LjQgNDMuNXptLTQ4LjUgNDdsNDEuMSA0NC45LTQxLjEgNDQuOSAwIDIxMS4xIDIwLjYtMTk4LjIgNTEtNTcuOC01MS01Ny44LTIwLjYtMTk4LjIgMCAyMTEuMXoiXX0sdW90PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImFyY2gtbGludXgiLGljb246WzU3Niw1MTIsW10sImU4NjciLCJNMjg4LjctNy44Yy0yNC4xIDU5LTM4LjYgOTcuNy02NS40IDE1NSAxNi40IDE3LjQgMzYuNiAzNy42IDY5LjQgNjAuNS0zNS4yLTE0LjUtNTkuMi0yOC45LTc3LjItNDQtMzQuMyA3MS42LTg4LjEgMTczLjUtMTk3LjIgMzY5LjQgODUuNy00OS41IDE1Mi4yLTgwIDIxNC4xLTkxLjYtMi43LTExLjQtNC4xLTIzLjgtNC0zNi43bC4xLTIuN2MxLjQtNTQuOSAyOS45LTk3LjIgNjMuOC05NC40czYwLjIgNDkuOCA1OC44IDEwNC43Yy0uMyAxMC4zLTEuNCAyMC4yLTMuNCAyOS40IDYxLjIgMTIgMTI3IDQyLjQgMjExLjYgOTEuMi0xNi43LTMwLjctMzEuNi01OC4zLTQ1LjgtODQuNy0yMi40LTE3LjQtNDUuNy0zOS45LTkzLjMtNjQuNCAzMi43IDguNSA1Ni4zIDE4LjMgNzQuNSAyOS4zLTE0NC41LTI2OS4xLTE1Ni4yLTMwNC44LTIwNS44LTQyMS4xeiJdfSxwb3Q9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiZmVkaXZlcnNlIixpY29uOls1NzYsNTEyLFtdLCJlODY1IiwiTTM5NC44IDUyNi45YTU0IDU0IDAgMSAxIDUuOC0xMDcuOCA1NCA1NCAwIDEgMSAtNS44IDEwNy44em0tNTAuMS04MC42Yy01LjUgMTAuOS03LjQgMjMuMy01LjYgMzUuNEwxNjguNyA0NTQuNGM1LjUtMTAuOSA3LjUtMjMuMyA1LjctMzUuNGwxNzAuMyAyNy4zek0xMTIuNyA0ODEuNmE1NCA1NCAwIDEgMSA1LjktMTA3LjggNTQgNTQgMCAxIDEgLTUuOSAxMDcuOHptMjU3LjctNjEuNGMtMTAuOSA1LjYtMTkuNyAxNC40LTI1LjQgMjUuM2wtNzAuNi03MC45IDMzLjYtMTcgNjIuNCA2Mi43ek00ODYuMSAyNjFjOC43IDguNiAxOS44IDE0LjMgMzEuOSAxNi40TDQzOS40IDQzMC44Yy04LjctOC42LTE5LjgtMTQuMy0zMS45LTE2LjRMNDg2LjEgMjYxek0zNzYuNyAyMTkuM2wzMC41IDE5NS4xYy0xMi4xLTEuOS0yNC41LS4xLTM1LjQgNS4zbC0zMi4yLTIwNi4zIDM3LjIgNnpNMzUwLjQgMzI4LjlMMTc0LjIgNDE4LjJjLTItMTIuMS03LjYtMjMuMi0xNi4yLTMybDE4Ni42LTk0LjYgNS44IDM3LjJ6bS0xNTIuNy0yMmwtNDAuMyA3OC43Yy04LjctOC42LTE5LjgtMTQuMy0zMS45LTE2LjNsNDUuNi04OSAyNi42IDI2Ljd6TTEyNC43IDM2OWMtMTIuMS0xLjgtMjQuNCAuMi0zNS40IDUuNkw2Mi43IDIwNC4zYzEyLjEgMS44IDI0LjUtLjEgMzUuNC01LjZMMTI0LjcgMzY5em0xNDcuMS00Ny44bC0zMy42IDE3LTEzOS40LTEzOS45YzEwLjktNS42IDE5LjctMTQuNCAyNS40LTI1LjNMMjcxLjggMzIxLjJ6bTE5Ny41LTkyLjhjMiAxMi4xIDcuNiAyMy4yIDE2LjIgMzEuOWwtODkuMyA0NS4yLTUuOC0zNy4yIDc4LjktNDB6bTU1LjYgNDQuM2E1NCA1NCAwIDEgMSA1LjktMTA3LjggNTQgNTQgMCAxIDEgLTUuOSAxMDcuOHpNMjg0LjYgNTguN2M4LjcgOC42IDE5LjggMTQuMyAzMS44IDE2LjNsLTk1LjMgMTg2LjEtMjYuNi0yNi43IDkwLTE3NS44ek00NzQuOSAxOTIuMWMtNS41IDEwLjktNy41IDIzLjMtNS43IDM1LjNsLTIwNi40LTMzLjEgMTcuMi0zMy41IDE5NSAzMS4zek02OC43IDE5OS42QTU0IDU0IDAgMSAxIDc0LjYgOTEuOCA1NCA1NCAwIDEgMSA2OC43IDE5OS42em00MzItMzMuNGMtMTAuOSA1LjYtMTkuNyAxNC40LTI1LjQgMjUuM0wzNTMuNSA2OS4zYzEwLjktNS42IDE5LjctMTQuNCAyNS40LTI1LjNMNTAwLjYgMTY2LjJ6TTIyOS4zIDE1Mi42bC0xNy4yIDMzLjUtODcuNC0xNGM1LjQtMTAuOSA3LjQtMjMuMyA1LjUtMzUuNGw5OSAxNS45em0xMzkuNSAxNS45bC0zNy4yLTYtMTMuNi04Ny4yYzEyLjEgMS43IDI0LjUtLjMgMzUuMy01LjlsMTUuNSA5OS4xek0yNjcuOCAyNi4yYzIgMTIuMSA3LjYgMjMuMiAxNi4yIDMxLjlsLTE1My45IDc4Yy0yLTEyLjEtNy42LTIzLjItMTYuMi0zMS45bDE1My45LTc4em01NS42IDQ0LjNhNTQgNTQgMCAxIDEgNS44LTEwNy44IDU0IDU0IDAgMSAxIC01LjggMTA3Ljh6Il19LGhvdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJicmF2ZS1yZXZlcnNlIixpY29uOls0NDgsNTEyLFtdLCJlNjNkIiwiTTI5OC41IDBjMyAwIDUuOCAxLjMgNy44IDMuNmwzOC4xIDQ0Yy41LS4xIDEtLjIgMS41LS4zIDkuMi0xLjYgMTguNi0yLjIgMjcuNy0xLjIgMTEuNiAxLjQgMjEuNSA1LjQgMjguOSAxMi45IDcuNyA3LjggMTUuNCAxNS44IDIyLjYgMjMuNiAyLjUgMi43IDQuOSA1LjIgNi45IDcuNCAuNyAuOCAxLjQgMS41IDEuOSAyIDMuNCAzLjcgNC4yIDguMSAyLjcgMTEuOWwtOS44IDI0LjYgMTMuMSAzOC4xYy43IDIgLjggNC4xIC4yIDYuMi0uMSAuNC0uMSAuNC0uNSAyLjFsLTEuNSA1LjhjLTEuNiA2LjMtMy41IDEzLjMtNS40IDIwLjktNS42IDIxLjYtMTEuMiA0My4yLTE2LjQgNjMuNC0xMi45IDQ5LjktMjEuNCA4Mi43LTIzLjQgOTAuOS0xMS4xIDQ0LjUtMTkuOSA2MC00OC4zIDgwLjMtMjQuOSAxNy44LTc2LjggNTMuNi04Ni44IDYwLTEgLjYtMiAxLjMtMy40IDIuMy0uNSAuNC0zLjIgMi4yLTMuOSAyLjctNC45IDMuMy04LjMgNS41LTEyLjEgNy4zLTQuNyAyLjItOS4zIDMuNS0xMy45IDMuNXMtOS4xLTEuMi0xMy45LTMuNWMtMy43LTEuOC03LjItMy45LTEyLjEtNy4zLS44LS41LTMuNC0yLjQtMy45LTIuNy0xLjQtMS0yLjUtMS43LTMuNC0yLjMtMTAtNi40LTYxLjktNDIuMS04Ni44LTYwLTI4LjQtMjAuNC0zNy4yLTM1LjgtNDguMy04MC4zLTItOC4yLTEwLjUtNDEtMjMuMy05MC41LTUuMy0yMC42LTEwLjktNDIuMi0xNi41LTYzLjgtMi03LjYtMy44LTE0LjYtNS40LTIwLjlsLTEuNS01LjgtLjUtMi4xYy0uNS0yLS40LTQuMiAuMi02LjJsMTMuMS0zOC4xLTkuOS0yNC41Yy0xLjUtMy44LS43LTguMiAyLTExLjIgMS4yLTEuMyAxLjgtMiAyLjYtMi44IDItMi4yIDQuNC00LjcgNi45LTcuNCA3LjMtNy43IDE1LTE1LjcgMjIuNy0yMy41IDcuNC03LjUgMTcuMy0xMS42IDI4LjktMTIuOSA5LjEtMS4xIDE4LjUtLjUgMjcuNyAxLjIgLjUgLjEgMSAuMiAxLjUgLjNsMzguMS00NGMyLTIuNCA0LjgtMy43IDcuOC0zLjdsMTQ4IDB6bS00LjcgMjEuMWwtMTM4LjYgMC0zOS4xIDQ1LjFjLTIuNiAzLTYuNyA0LjMtMTAuNiAzLjItLjItLjEtLjctLjItMS41LS40LTEuMy0uMy0yLjktLjYtNC41LS45LTcuNC0xLjMtMTQuOS0xLjgtMjEuNy0xLTcuMyAuOS0xMyAzLjItMTYuNiA2LjktNy42IDcuNy0xNS4yIDE1LjYtMjIuMyAyMy4zLTEuNyAxLjgtMy4zIDMuNS00LjggNS4xbDguOCAyMmMxIDIuNCAxIDUgLjIgNy41TDI5LjcgMTcwLjZjLjQgMS40IC41IDEuOSAxLjIgNC44IDEuNiA2LjMgMy41IDEzLjMgNS40IDIwLjkgNS42IDIxLjYgMTEuMiA0My4yIDE2LjQgNjMuNCAxMi45IDUwIDIxLjQgODIuOCAyMy40IDkxIDEwLjEgNDAuMSAxNi40IDUxLjMgNDAuMiA2OC4zIDI0LjYgMTcuNiA3Ni4zIDUzLjIgODUuOSA1OS4zIDEuMiAuOCAyLjUgMS42IDQgMi43IC42IC40IDMuMiAyLjIgMy45IDIuNyA0IDIuOCA2LjcgNC40IDkuMiA1LjYgMi4yIDEgMy45IDEuNSA1LjEgMS41czIuOS0uNSA1LjEtMS41YzIuNS0xLjIgNS4yLTIuOCA5LjItNS42IC43LS41IDMuMy0yLjMgMy45LTIuNyAxLjYtMS4xIDIuOC0xLjkgNC0yLjcgOS42LTYuMSA2MS4zLTQxLjcgODUuOS01OS4zIDIzLjgtMTcuMSAzMC4yLTI4LjIgNDAuMS02OC4zIDIuMS04LjMgMTAuNS00MS4xIDIzLjMtOTAuNyA1LjMtMjAuNiAxMC45LTQyLjIgMTYuNS02My44IDItNy42IDMuOC0xNC42IDUuNC0yMC45IC43LTIuOSAuOS0zLjQgMS4yLTQuOGwtMTMuMy0zOC44Yy0uOC0yLjQtLjgtNS4xIC4yLTcuNWw4LjgtMjJjLTEuNS0xLjYtMy4xLTMuMy00LjgtNS4xLTcuMi03LjYtMTQuNy0xNS41LTIyLjMtMjMuMy0zLjctMy43LTkuMy02LTE2LjYtNi45LTYuOC0uOC0xNC40LS4zLTIxLjcgMS0xLjcgLjMtMy4yIC42LTQuNSAuOS0uOCAuMi0xLjMgLjMtMS41IC40LTMuOCAxLjEtNy45LS4yLTEwLjYtMy4yTDI5My44IDIxLjF6TTIyNC41IDMxNmMyLjggMCAyMC45IDYuNSAzNS40IDE0LjFzMjUgMTMgMjguMyAxNS4yIDEuMyA2LjItMS43IDguNC00NC4xIDM0LjYtNDguMSAzOC4yLTkuOCA5LjUtMTMuOCA5LjUtOS44LTUuOS0xMy44LTkuNS00NS4xLTM2LTQ4LjEtMzguMi01LjEtNi4yLTEuNy04LjQgMTMuOS03LjUgMjguMy0xNS4yIDMyLjUtMTQuMSAzNS40LTE0LjFsLS4yIDB6bS4xLTIzMC43Yy43IDAgOC44IC4yIDIwLjUgNC4yIDEyLjMgNC4yIDI1LjcgOS40IDMxLjkgOS40czUxLjktOC45IDUxLjktOC45IDU0LjIgNjYuNyA1NC4yIDgxLTYuOCAxOC0xMy43IDI1LjQtMzYuOCAzOS44LTQwLjcgNDMuOS0xMS45IDEwLjUtNy4xIDIxLjggMTEuNyAyNS44IDMuOSA0MC40LTIxIDI0LjQtMjkuNCAyMi44LTI4LjQtMTIuMi0zNS43LTE3LjEtMzAuNS0yNC4zLTMwLjUtMzEuOCAyNC0yMC44IDI4LjQtMjMuOSAyNC43LTE0LjggMjUuMS0xOS40IC4zLTYtNS43LTE3LjQtMTYuNy0yNi43LTE0LjktMzYuOCAxOS4xLTE1LjQgMzEuNS0yMC4yIDM2LjItMTMuNyAzOS4yLTE1LjEgMi4yLTIuNy02LjgtMy42LTM0LjYtNC4zLTQ2LjEtMS4xLTMxLjIgOC4yLTMyLjggMTAuOS0zIDIuNy0xLjQgMTEuOCAxMC4xIDUyLjggMTAuOSA2MC42IDIuNCAxMi45LTUuOCAxNC44LTIyLjEgNS4yLTI2LjggNS4yLTE4LjYtMy4zLTI2LjgtNS4yLTYuNi03LTUuOC0xNC44IDkuMy01MS41IDEwLjktNjAuNiAuMi05LjItMS40LTExLjgtMjEuMy03LjYtMzIuOC0xMC45LTM3LjEgLjItNDYuMSAxLjEtOS44IDIuMi02LjggMy42IDI2LjggMTAuNCAzOS4yIDE1LjEgMjkuNyAxMCAzMS41IDIwLjItOSAyNS40LTE0LjkgMzYuOC02LjEgMTIuOC01LjcgMTcuNCAyMC42IDE2LjQgMjUuMSAxOS40IDI4LjQgMTYuNCAyOC40IDIzLjktMjMuMiAyNy0zMC41IDMxLjgtMjcuMiAxNS40LTM1LjcgMTcuMS0yMS43LTguMi0yOS40LTIyLjgtLjgtMjkuMSAzLjktNDAuNC0zLjMtMTcuNy03LjEtMjEuOC0zMy44LTM2LjUtNDAuNy00My45LTEzLjctMTEuMi0xMy43LTI1LjQgNTQuMi04MSA1NC4yLTgxIDQ1LjggOC45IDUxLjkgOC45IDE5LjUtNS4yIDMxLjktOS40IDIwLjYtNC4yIDIwLjYtNC4ybC0uMyAweiJdfSxmb3Q9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiYXZpYW5leCIsaWNvbjpbNTEyLDUxMixbXSwiZjM3NCIsIk00NTMuMiAzMmwtMzEyIDBDMTAyLjMgMzIgNjUgNjMuMiA1Ny45IDEwMS43TDEuMyA0MTAuM0MtNS44IDQ0OC44IDIwIDQ4MCA1OSA0ODBsMzEyIDBjMzguOSAwIDc2LjItMzEuMiA4My4zLTY5LjdMNTExIDEwMS44QzUxOCA2My4yIDQ5Mi4yIDMyIDQ1My4yIDMyek0zOTUgMzc5LjNsLTMyIDEzLjUtMTE1LjQtMTEwYy0xNC43IDEwLTI5LjIgMTkuNS00MS43IDI3LjFsMjIuMSA2NC4yLTE3LjkgMTIuNy00MC42LTYxLTUyLjQtNDguMSAxNS43LTE1LjQgNTggMzEuMWM5LjMtMTAuNSAyMC44LTIyLjYgMzIuOC0zNC45bC0yMC41LTI5LjYtNjguOC05OS44IDE4LjgtMjguOSA4LjktNC44IDEwMy4xIDExMi40IDQuOSA0LjVjMTkuNC0xOC44IDMzLjgtMzIuNCAzMy44LTMyLjQgNy43LTYuNSAyMS41LTIuOSAzMC43IDcuOSA5IDEwLjUgMTAuNiAyNC43IDIuNyAzMS4zLTEuOCAxLjMtMTUuNSAxMS40LTM1LjMgMjUuNmw0LjUgNy4zIDk0LjkgMTE5LjQtNi4zIDcuOXoiXX0sbW90PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6Im5zOCIsaWNvbjpbNjQwLDUxMixbXSwiZjNkNSIsIk0xMDQuMyAyNjkuMmwyNi4xIDAgMC0yNi4yLTI2LjEgMCAwIDI2LjJ6TTE1Ni44IDI0M2wtLjEtMjYuMiAwLS45Yy0uMi0xMC40LTQuNC0yMC4zLTExLjktMjcuNnMtMTcuNS0xMS4zLTI3LjktMTEuMS0yMC4zIDQuNC0yNy42IDExLjgtMTEuMyAxNy41LTExLjIgMjcuOWwwIC4yIDI2LjQgMCAwLS4yYy4xLTMuNCAxLjUtNi42IDMuOS05czUuNy0zLjcgOS4xLTMuNyA2LjcgMS4zIDkuMSAzLjcgMy44IDUuNiAzLjkgOWwwIDI2LjIgMjYuMyAwem01Mi40IDI1LjhjMCAxMi0yLjQgMjMuOC02LjkgMzQuOXMtMTEuMyAyMS4xLTE5LjcgMjkuNi0xOC41IDE1LjItMjkuNiAxOS43LTIyLjkgNi45LTM0LjkgNi45bC0uNiAwYy0yNC4yIDAtNDcuMy05LjYtNjQuNC0yNi43UzI2LjMgMjkzIDI2LjMgMjY4LjhsLTI2LjMgMCAwIC4yYzAgMTUuNCAzLjEgMzAuNyA5IDQ0LjlzMTQuNiAyNy4yIDI1LjUgMzguMSAyMy45IDE5LjUgMzguMSAyNS40IDI5LjUgOC45IDQ0LjkgOC45bC44IDBjMTUuNCAwIDMwLjctMyA0NC45LTlzMjcuMi0xNC42IDM4LjEtMjUuNSAxOS41LTIzLjggMjUuNC0zOC4xIDguOS0yOS41IDguOS00NC45bDAtMjYtMjYuMyAwIDAgMjZ6bS0xNTcuMiAwYy4xIDE3LjMgNyAzMy45IDE5LjIgNDYuMXMyOC44IDE5LjEgNDYuMSAxOS4xIDMzLjktNi45IDQ2LjEtMTkuMSAxOS4yLTI4LjggMTkuMi00Ni4xbC0yNi4zIDBjLS4yIDEwLjItNC40IDIwLTExLjcgMjcuMnMtMTcuMSAxMS4yLTI3LjQgMTEuMi0yMC4xLTQtMjcuNC0xMS4yLTExLjUtMTYuOS0xMS43LTI3LjJsMC0yNi0yNi4zIDAgMC0yNi42Yy4zLTE3LjMgNy40LTMzLjggMTkuNy00NS44czI5LTE4LjggNDYuMy0xOC42IDMzLjggNy4yIDQ1LjkgMTkuNSAxOC45IDI4LjkgMTguOSA0Ni4ybDAgMjUuMyAyNi4zIDAgMC0yNS4zYzAtMjQuMy05LjctNDcuNy0yNi45LTY0LjlzLTQwLjUtMjYuOS02NC45LTI2LjktNDcuNyA5LjctNjQuOSAyNi45LTI2LjkgNDAuNS0yNi45IDY0LjlsMCAyNS40IDI2LjMgMCAwIDI2em00MTguNC03MS4yYzEzLjcgMCAyNC42IDYuNiAzMC4xIDE4LjNsLjcgMS41IDIzLjItMTEuNS0uNi0xLjRjLTgtMTkuMy0yOC41LTMxLjMtNTMuNC0zMS4zLTIzLjEgMC00My42IDExLjQtNTEgMjguNC0uMSAyNi45LS4yIDIzLjkgMCAyNC44IDQuNyAxMSAxNC42IDE5LjQgMjguNyAyNC4yIDYuNSAyIDEzLjEgMy4zIDE5LjggNCA1LjUgLjcgMTAuNiAxLjQgMTUuOCAzLjEgNi40IDIuMSAxMC41IDUuMyAxMi44IDkuOGwwIDkuOWMtMy43IDcuNS0xMy44IDEyLjMtMjUuOCAxMi4zLTE0LjMgMC0yNi02LjktMzEuOS0xOWwtLjctMS41LTIzIDExLjUgLjYgMS40YzcuOSAxOS40IDI5LjYgMzIgNTUuMyAzMiAyMy42IDAgNDQuNi0xMS40IDUyLjMtMjguNGwuMi0yNS45LS4yLS43Yy00LjktMTEtMTUuMi0xOS42LTI4LjktMjQuMi03LjctMi43LTE0LjMtMy42LTIwLjctNC40LTUtLjUtMTAtMS41LTE0LjgtMi45LTYuMy0xLjktMTAuNC01LjEtMTIuNi05LjZsMC04LjRjMy40LTcuNCAxMi45LTEyLjEgMjQuMi0xMi4xbDAgMHpNMjg3LjYgMzExLjNsMjYuMSAwIDAtNjguNC0yNi4xIDAgMCA2OC40ek02MzkuOCAyNThjLTIuOS02LjMtOC4zLTEyLTE1LjQtMTYuNyA1LjYtMy44IDEwLjEtOS4xIDEzLTE1LjNsLjItMjUuMy0uMi0uN2MtNy40LTE2LTI2LjctMjYuNy00OC4yLTI2LjdTNTQ4LjUgMTg0IDU0MS4xIDIwMGwtLjIgMjUuMyAuMiAuN2MyLjkgNi4xIDcuNCAxMS40IDEzIDE1LjMtNy4yIDQuNy0xMi41IDEwLjUtMTUuNCAxNi43bC0uMiAyOC45IC4yIC43YzcuNiAxNiAyNy45IDI2LjcgNTAuNiAyNi43czQzLjEtMTAuNyA1MC42LTI2LjdsLjItMjguOS0uMi0uN3ptLTczLjItNTAuOGMzLjYtNi4zIDEyLjYtMTAuNSAyMi42LTEwLjVzMTkgNC4yIDIyLjYgMTAuNWwwIDEzLjdjLTMuNSA2LjItMTIuNiAxMC4zLTIyLjYgMTAuM3MtMTkuMS00LjItMjIuNi0xMC4zbDAtMTMuN3ptNDcuMyA3Mi4yYy0zLjggNi42LTEzLjMgMTAuOS0yNC43IDEwLjktMTEuMSAwLTIxLTQuNC0yNC43LTEwLjlsMC0xNi4yYzMuNy02LjMgMTMuNS0xMC41IDI0LjctMTAuNSAxMS4zIDAgMjAuOSA0LjEgMjQuNyAxMC41bDAgMTYuMnpNMzc2LjQgMjY2bC01OS44LTg5LjctMjkgMCAwIDQwLjYgMjYuNSAwIDAgLjQgNjIuNSA5NC4xIDI1LjcgMCAwLTEzNS4xLTI1LjkgMCAwIDg5Ljd6Il19LFphZT17cHJlZml4OiJmYWIiLGljb25OYW1lOiJzcXVhcmUtcGludGVyZXN0IixpY29uOls0NDgsNTEyLFsicGludGVyZXN0LXNxdWFyZSJdLCJmMGQzIiwiTTM4NCAzMkw2NCAzMkMyOC43IDMyIDAgNjAuNyAwIDk2TDAgNDE2YzAgMzUuMyAyOC43IDY0IDY0IDY0bDcyLjYgMC0yLjItLjhjLTUuNC00OC4xLTMuMS01Ny41IDE1LjctMTM0LjcgMy45LTE2IDguNS0zNSAxMy45LTU3LjkgMCAwLTcuMy0xNC44LTcuMy0zNi41IDAtNzAuNyA3NS41LTc4IDc1LjUtMjUgMCAxMy41LTUuNCAzMS4xLTExLjIgNDkuOC0zLjMgMTAuNi02LjYgMjEuNS05LjEgMzItNS43IDI0LjUgMTIuMyA0NC40IDM2LjQgNDQuNCA0My43IDAgNzcuMi00NiA3Ny4yLTExMi40IDAtNTguOC00Mi4zLTk5LjktMTAyLjYtOTkuOS02OS45IDAtMTEwLjkgNTIuNC0xMTAuOSAxMDYuNiAwIDIxLjEgOC4yIDQzLjcgMTguMyA1NiAyIDIuNCAyLjMgNC41IDEuNyA3LTEuMSA0LjctMy4xIDEyLjktNC43IDE5LjItMSA0LTEuOCA3LjMtMi4xIDguNi0xLjEgNC41LTMuNSA1LjUtOC4yIDMuMy0zMC42LTE0LjMtNDkuOC01OS4xLTQ5LjgtOTUuMSAwLTc3LjUgNTYuMi0xNDguNiAxNjIuMi0xNDguNiA4NS4yIDAgMTUxLjQgNjAuNyAxNTEuNCAxNDEuOCAwIDg0LjYtNTMuMyAxNTIuNy0xMjcuNCAxNTIuNy0yNC45IDAtNDguMy0xMi45LTU2LjMtMjguMiAwIDAtMTIuMyA0Ni45LTE1LjMgNTguNC01IDE5LjMtMTcuNiA0Mi45LTI3LjQgNTkuM0wzODQgNDgwYzM1LjMgMCA2NC0yOC43IDY0LTY0bDAtMzIwYzAtMzUuMy0yOC43LTY0LTY0LTY0eiJdfSxnb3Q9WmFlLGJvdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJibHVldG9vdGgtYiIsaWNvbjpbMjU2LDUxMixbXSwiZjI5NCIsIk0xNjQuOSAyNjBMMjU3LjUgMTU2LjcgMTExLjYgMCAxMTEuNiAyMDYuMyAyNS40IDEyMC4yLTYgMTUxLjYgMTAyLjEgMjYwLTYgMzY4LjQgMjUuNCAzOTkuOCAxMTEuNiAzMTMuNyAxMTQuMyA1MTIgMjYyLjggMzYzLjQgMTY0LjkgMjYwem00MC45LTEwM2wtNTAgNTAtLjMtMTAwLjMgNTAuMyA1MC4zem0tNTAgMTU2bDUwIDUwLTUwLjMgNTAuMyAuMy0xMDAuM3oiXX0sdm90PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImdyaXBmaXJlIixpY29uOlszMjAsNTEyLFtdLCJmM2FjIiwiTTgwLjUgMzAxLjRjMC03My44IDEwNS4xLTEyMi41IDEwNS4xLTIwMyAwLTQ3LjEtMzQtODgtMzkuMS05MC40IC40IDMuMyAuNiA2LjcgLjYgMTAgMCA5Mi4xLTE0Ny4xIDE1My45LTE0Ny4xIDI2OC42IDAgNDkuOCAzMi4yIDc5LjIgNjYuNSAxMDguMyA2NS4xIDQ2LjcgNzguMSA3MS40IDc4LjEgODYuNiAwIDEwLjEtNC44IDE3LTQuOCAyMi4zIDEzLjEtMTYuNyAxNy40LTMxLjkgMTcuNS00Ni40IDAtMjkuNi0yMS43LTU2LjMtNDQuMi04Ni41LTE2LTIyLjMtMzIuNi00Mi42LTMyLjYtNjkuNXptMjA1LjMtMzljLTEyLjEtNjYuOC03OC0xMjQuNC05NC43LTEzMC45bDQgNy4yYzIuNCA1LjEgMy40IDEwLjkgMy40IDE3LjEgMCA0NC43LTU0LjIgMTExLjItNTYuNiAxMTYuNy0yLjIgNS4xLTMuMiAxMC41LTMuMiAxNS44IDAgMjAuMSAxNS4yIDQyLjEgMTcuOSA0Mi4xIDIuNCAwIDU2LjYtNTUuNCA1OC4xLTg3LjcgNi40IDExLjcgOS4xIDIyLjYgOS4xIDMzLjQgMCA0MS4yLTQxLjggOTYuOS00MS44IDk2LjkgMCAxMS42IDMxLjkgNTMuMiAzNS41IDUzLjIgMSAwIDIuMi0xLjQgMy4yLTIuNCAzNy45LTM5LjMgNjcuMy04NSA2Ny4zLTEzNi44IDAtOC0uNy0xNi4yLTIuMi0yNC42eiJdfSxYYWU9e3ByZWZpeDoiZmFiIixpY29uTmFtZToic3F1YXJlLWdvb2dsZS1wbHVzIixpY29uOls0NDgsNTEyLFsiZ29vZ2xlLXBsdXMtc3F1YXJlIl0sImYwZDQiLCJNNDQ4IDk2YzAtMzUuMy0yOC43LTY0LTY0LTY0TDY0IDMyQzI4LjcgMzIgMCA2MC43IDAgOTZMMCA0MTZjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMzIwIDBjMzUuMyAwIDY0LTI4LjcgNjQtNjRsMC0zMjB6TTY0IDI1NmMwLTU1LjMgNDQuNy0xMDAgMTAwLTEwMCAyNyAwIDQ5LjUgOS44IDY3IDI2LjJsLTI3LjEgMjYuMWMtNy40LTcuMS0yMC4zLTE1LjQtMzkuOC0xNS40LTM0LjEgMC02MS45IDI4LjItNjEuOSA2My4yIDAgMzQuOSAyNy44IDYzLjIgNjEuOSA2My4yIDM5LjYgMCA1NC40LTI4LjUgNTYuOC00My4xbC01Ni45IDAgMC0zNC40IDk0LjQgMGMxIDUgMS42IDEwLjEgMS42IDE2LjYgMCA1Ny4xLTM4LjMgOTcuNi05NiA5Ny42LTU1LjMgMC0xMDAtNDQuNy0xMDAtMTAwem0yOTEgMTguMmwwIDI5LTI5LjIgMCAwLTI5LTI5IDAgMC0yOS4yIDI5IDAgMC0yOSAyOS4yIDAgMCAyOSAyOSAwIDAgMjkuMi0yOSAweiJdfSx4b3Q9WGFlLHlvdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJnaXRlZSIsaWNvbjpbNTEyLDUxMixbXSwiZTg2MyIsIk0yNTYgNTEyYTI1NiAyNTYgMCAxIDEgMC01MTIgMjU2IDI1NiAwIDEgMSAwIDUxMnpNMzg1LjYgMTEzLjhsMCAwLTE3NyAwYy01Mi40IDAtOTQuOCA0Mi40LTk0LjggOTQuOGwwIDE3N2MwIDcgNS43IDEyLjYgMTIuNiAxMi42bDE4Ni41IDBjNDcuMSAwIDg1LjMtMzguMiA4NS4zLTg1LjNsMC03Mi43YzAtNy01LjctMTIuNi0xMi42LTEyLjZsLTE0NS40IDBjLTcgMC0xMi42IDUuNy0xMi42IDEyLjZsMCAzMS42YzAgNi42IDUuMSAxMi4xIDExLjYgMTIuNmwxIDAgODguNSAwYzYuNiAwIDEyLjEgNS4xIDEyLjYgMTEuNmwwIDEgMCA2LjNjMCAyMC45LTE3IDM3LjktMzcuOSAzNy45bC0xMjAuMSAwYy03IDAtMTIuNi01LjctMTIuNi0xMi42bDAtMTIwLjFjMC0yMC40IDE2LjEtMzcuMSAzNi40LTM3LjlsMS42IDAgMTc3IDBjNyAwIDEyLjYtNS43IDEyLjYtMTIuNmwwLTMxLjZjMC03LTUuNi0xMi42LTEyLjYtMTIuNnoiXX0sd290PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6InhtcHAiLGljb246WzU3Niw1MTIsW10sImU4NjQiLCJNMCA0Ny4yYzMuNSAxMzcuMSAxMTcuMSAyNzguNiAyNTIuOSAzNTYuNy0zMS41IDI1LTY3LjIgNDQuMS0xMDYuMiA1My45bDAgNS40YzU2LjQtMi4zIDk4LjEtMjAuMSAxNDEuMy00MC43IDY1LjcgMzQuNiAxMjIuMiAzOS45IDE0MS40IDQwLjdsMC01LjRjLTM5LTkuOC03NC43LTI4LjgtMTA2LjItNTMuOCAxMzUuNy03OC4yIDI0OS4zLTIxOS44IDI1Mi44LTM1Ni44LTU4LjQgMjUuNy0xMTkuMSA0NC4yLTE4MC4xIDYyLjNsMCAwYzMuNCA1OS0yMC4yIDE3MC40LTEwNy45IDI2Mi4zLTg4LjQtOTIuMy0xMTEuMi0yMDQuMS0xMDcuOC0yNjIuM2wwIDBDMTE3LjcgOTIuNiA1OS4zIDcwLjIgMCA0Ny4yek05My45IDk3bDczLjYgMjEuOEMxNjUuNCAyMTYgMjI2LjggMzU4IDM0MS4zIDQzMi4yIDE5MC41IDM3Ni45IDg5LjkgMjE1LjcgOTMuOSA5N3ptMzg4LjMgMGMzLjMgOTktNjUuNiAyMjQuNy0xNzEuNyAyOTYuNC00LjctNC4xLTkuMy04LjQtMTMuOC0xMi43IDc3LTgwLjIgMTEzLjItMTg2LjMgMTExLjktMjYxLjlMNDgyLjEgOTd6TTI2NC41IDQxMC41YzMgMS42IDUuOSAzLjIgOC45IDQuNy0xMi41IDYuNC0yNS40IDEyLjEtMzguNiAxNyAxMC4zLTYuNyAyMC4yLTEzLjkgMjkuNy0yMS43eiJdfSxNb3Q9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiYXBwLXN0b3JlIixpY29uOls1MTIsNTEyLFtdLCJmMzZmIiwiTTI1NS45IDEyMC45bDkuMS0xNS43YzUuNi05LjggMTguMS0xMy4xIDI3LjktNy41czEzLjEgMTguMSA3LjUgMjcuOWwtODcuNSAxNTEuNSA2My4zIDBjMjAuNSAwIDMyIDI0LjEgMjMuMSA0MC44bC0xODUuNSAwYy0xMS4zIDAtMjAuNC05LjEtMjAuNC0yMC40czkuMS0yMC40IDIwLjQtMjAuNGw1MiAwIDY2LjYtMTE1LjQtMjAuOC0zNi4xYy01LjYtOS44LTIuMy0yMi4yIDcuNS0yNy45IDkuOC01LjYgMjIuMi0yLjMgMjcuOSA3LjVsOC45IDE1Ljd6bS03OC43IDIxOGwtMTkuNiAzNGMtNS42IDkuOC0xOC4xIDEzLjEtMjcuOSA3LjVzLTEzLjEtMTguMS03LjUtMjcuOWwxNC42LTI1LjJjMTYuNC01LjEgMjkuOC0xLjIgNDAuNCAxMS42em0xNjguOS02MS43bDUzLjEgMGMxMS4zIDAgMjAuNCA5LjEgMjAuNCAyMC40UzQxMC41IDMxOCAzOTkuMiAzMThsLTI5LjUgMCAxOS45IDM0LjVjNS42IDkuOCAyLjMgMjIuMi03LjUgMjcuOS05LjggNS42LTIyLjIgMi4zLTI3LjktNy41LTMzLjUtNTguMS01OC43LTEwMS42LTc1LjQtMTMwLjYtMTcuMS0yOS41LTQuOS01OS4xIDcuMi02OS4xIDEzLjQgMjMgMzMuNCA1Ny43IDYwLjEgMTA0ek0yNTYgOGEyNDggMjQ4IDAgMSAwIDAgNDk2IDI0OCAyNDggMCAxIDAgMC00OTZ6TTQwIDI1NmEyMTYgMjE2IDAgMSAxIDQzMiAwIDIxNiAyMTYgMCAxIDEgLTQzMiAweiJdfSxrb3Q9e3ByZWZpeDoiZmFiIixpY29uTmFtZToid2l4IixpY29uOls2NDAsNTEyLFtdLCJmNWNmIiwiTTM5My40IDEzMS43YzAgMTMgMi4xIDMyLjctMjguNyA0My44LTkuNSAzLjQtMTYgOS43LTE2IDkuNyAwLTMxIDQuNy00Mi4yIDE3LjQtNDguOSA5LjgtNS4xIDI3LjItNC42IDI3LjItNC42ek0yNzcuNiAxNjcuMmwtMzQuMiAxMzIuNy0yOC41LTEwOC42Yy03LjctMzItMjAuOC00OC41LTQ4LjQtNDguNS0yNy40IDAtNDAuNyAxNi4yLTQ4LjQgNDguNUw4OS41IDI5OS45IDU1LjMgMTY3LjJDNDkuNyAxNDAuNSAyMy45IDEyOSAwIDEzMkw2NS42IDM3OS45czIxLjYgMS42IDMyLjUtNGMxNC4yLTcuMiAyMS0xMi44IDI5LjYtNDYuNiA3LjctMzAuMSAyOS4xLTExOC40IDMxLjEtMTI0LjcgNC44LTE0LjkgMTEuMS0xMy44IDE1LjQgMCAyIDYuMyAyMy41IDk0LjYgMzEuMSAxMjQuNyA4LjYgMzMuNyAxNS40IDM5LjMgMjkuNiA0Ni42IDEwLjggNS41IDMyLjUgNCAzMi41IDRMMzMyLjkgMTMyYy0yNC40LTMuMS00OS44IDguOS01NS4zIDM1LjN6bTExNS44IDUuMnMtNC4xIDYuMy0xMy41IDExLjZjLTYgMy40LTExLjggNS42LTE4IDguNi0xNS4xIDcuMy0xMy4yIDEzLjktMTMuMiAzNS4ybDAgMTUyLjFzMTYuNiAyLjEgMjcuNC0zLjRjMTMuOS03LjEgMTcuMS0xNCAxNy4zLTQ0LjhsMC0xNTAuMyAwIDAgMC05em0xNjMuNCA4NC4xTDY0MCAxMzIuOHMtMzUuMS02LTUyLjUgOS44Yy0xMy4zIDEyLjEtMjQuNCAyOS42LTU0LjIgNzIuNS0uNSAuNy02LjMgMTAuNS0xMy4xIDAtMjkuMy00Mi4yLTQwLjgtNjAuMy01NC4yLTcyLjUtMTcuNC0xNS44LTUyLjUtOS44LTUyLjUtOS44bDgzLjIgMTIzLjctODMgMTIzLjRzMzYuNiA0LjYgNTQtMTEuMmMxMS41LTEwLjUgMTcuNi0yMC40IDUyLjUtNzAuNyA2LjgtMTAuNSAxMi42LS44IDEzLjEgMCAyOS40IDQyLjQgMzkuMiA1OC4xIDUzLjEgNzAuNyAxNy40IDE1LjggNTMuMyAxMS4yIDUzLjMgMTEuMmwtODMtMTIzLjR6Il19LFNvdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJpbnRlcmNvbSIsaWNvbjpbNDQ4LDUxMixbXSwiZjdhZiIsIk0zOTIgMzJMNTYgMzJDMjUuMSAzMiAwIDU3LjEgMCA4OEwwIDQyNGMwIDMwLjkgMjUuMSA1NiA1NiA1NmwzMzYgMGMzMC45IDAgNTYtMjUuMSA1Ni01NmwwLTMzNmMwLTMwLjktMjUuMS01Ni01Ni01NnpNMjgzLjcgMTE0LjFjMC0xOS44IDI5LjktMTkuOCAyOS45IDBsMCAxOTkuNWMwIDE5LjgtMjkuOSAxOS44LTI5LjkgMGwwLTE5OS41em0tNzQuNi03LjVjMC0xOS44IDI5LjktMTkuOCAyOS45IDBsMCAyMTYuNWMwIDE5LjgtMjkuOSAxOS44LTI5LjkgMGwwLTIxNi41em0tNzQuNyA3LjVjMC0xOS44IDI5LjktMTkuOCAyOS45IDBsMCAxOTkuNWMwIDE5LjgtMjkuOSAxOS44LTI5LjkgMGwwLTE5OS41ek01OS43IDE0NGMwLTE5LjggMjkuOS0xOS44IDI5LjkgMGwwIDEzNC4zYzAgMTkuOC0yOS45IDE5LjgtMjkuOSAwbDAtMTM0LjN6TTM4My4xIDM3MS44Yy03Mi44IDYzLTI0MS43IDY1LjQtMzE4LjEgMC0xNS0xMi44IDQuNC0zNS41IDE5LjQtMjIuNyA2NS45IDU1LjMgMjE2LjEgNTMuOSAyNzkuMyAwIDE0LjktMTIuOSAzNC4zIDkuOCAxOS40IDIyLjd6bTUuMi05My41YzAgMTkuOC0yOS45IDE5LjgtMjkuOSAwbDAtMTM0LjNjMC0xOS44IDI5LjktMTkuOCAyOS45IDBsMCAxMzQuM3oiXX0sem90PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6InJlYWN0ZXVyb3BlIixpY29uOls1NzYsNTEyLFtdLCJmNzVkIiwiTTI1MC43IDIxMS43bDUuOC00LjEgNS44IDQuMS0yLjEtNi44IDUuNy00LjMtNy4xLS4xLTIuMy02LjgtMi4zIDYuOC03LjIgLjEgNS43IDQuMy0yIDYuOHptNjMuNyAwbDUuOC00LjEgNS44IDQuMS0yLjEtNi44IDUuNy00LjMtNy4yLS4xLTIuMy02LjgtMi4zIDYuOC03LjIgLjEgNS43IDQuMy0xLjkgNi44em0tOTEuMyA1MC41bC0zLjQgMGMtNC44IDAtMy44IDQtMy44IDEyLjEgMCA0LjctMi4zIDYuMS01LjggNi4xcy01LjgtMS40LTUuOC02LjFsMC0zNi42YzAtNC43IDIuMy02LjEgNS44LTYuMXM1LjggMS40IDUuOCA2LjFjMCA3LjItLjcgMTAuNSAzLjggMTAuNWwzLjQgMGM0LjctLjEgMy44LTMuOSAzLjgtMTIuMyAwLTkuOS02LjctMTQuMS0xNi44LTE0LjFsLS4yIDBjLTEwLjEgMC0xNi44IDQuMi0xNi44IDE0LjFsMCA0MC4xYzAgMTAuNCA2LjcgMTQuMSAxNi44IDE0LjFsLjIgMGMxMC4xIDAgMTYuOC0zLjggMTYuOC0xNC4xIDAtOS45IDEuMS0xMy44LTMuOC0xMy44em0tODAuNyAxNy40bC0xNC43IDAgMC0xOS4zIDExLjQgMGMyLjUgMCAzLjgtMS4zIDMuOC0zLjhsMC0yLjFjMC0yLjUtMS4zLTMuOC0zLjgtMy44bC0xMS40IDAgMC0xOC4zIDE0LjQgMGMyLjUgMCAzLjgtMS4zIDMuOC0zLjhsMC0yLjFjMC0yLjUtMS4zLTMuOC0zLjgtMy44bC0yMS43IDBjLTIuNC0uMS0zLjcgMS4zLTMuNyAzLjhsMCA1OS4xYzAgMi41IDEuMyAzLjggMy44IDMuOGwyMS45IDBjMi41IDAgMy44LTEuMyAzLjgtMy44bDAtMi4xYzAtMi41LTEuMy0zLjgtMy44LTMuOHptLTQyLTE4LjVjNC42LTIgNy4zLTYgNy4zLTEyLjRsMC0xMS45YzAtMTAuMS02LjctMTQuMS0xNi44LTE0LjFsLTEzLjQgMGMtMi41IDAtMy44IDEuMy0zLjggMy44bDAgNTkuMWMwIDIuNSAxLjMgMy44IDMuOCAzLjhsMy40IDBjMi41IDAgMy44LTEuMyAzLjgtMy44bDAtMjIuOSA1LjYgMCA3LjQgMjMuNWMuMiAxIC44IDEuOCAxLjYgMi40czEuOCAuOSAyLjcgLjhsMy4zIDBjMi44IDAgNC0xLjggMy4yLTQuNGwtOC4xLTIzLjl6bS0zLjgtMTRjMCA0LjgtMi41IDYuMS02LjEgNi4xbC01LjggMCAwLTIwLjkgNS44IDBjMy42IDAgNi4xIDEuMyA2LjEgNi4xbDAgOC43ek0xNzYuMSAyMjZjLS4xLS41LS4yLTEtLjQtMS40cy0uNi0uOC0xLTEuMS0uOC0uNi0xLjMtLjctMS0uMi0xLjUtLjFsLTYuOSAwYy0uNSAwLTEgMC0xLjQgLjJzLS45IC40LTEuMyAuNy0uNyAuNy0uOSAxLjEtLjQgLjktLjQgMS40bC0xMSA1OS4yYy0uNSAyLjcgLjkgNC4xIDMuNCA0LjFsMyAwYy41IC4xIDEgMCAxLjUtLjJzLjktLjQgMS4zLS43IC43LS43IC45LTEuMiAuNC0uOSAuNC0xLjRsMS44LTExLjMgMTIuMiAwIDEuOCAxMS4zYzAgLjUgLjIgMSAuNCAxLjRzLjUgLjkgLjkgMS4yIC44IC42IDEuMyAuNyAxIC4yIDEuNSAuMmwzLjUgMGMyLjYgMCAzLjktMS40IDMuNC00LjFMMTc2LjEgMjI2em0tMTIuMyAzOS4zbDQuNy0yOS43IDQuNyAyOS43LTkuNCAwem04OS4zIDIwLjJsMC01My4yIDcuNSAwYzIuNSAwIDMuOC0xLjMgMy44LTMuOGwwLTIuMWMwLTIuNS0xLjMtMy44LTMuOC0zLjhsLTI1LjggMGMtMi41IDAtMy44IDEuMy0zLjggMy44bDAgMi4xYzAgMi41IDEuMyAzLjggMy44IDMuOGw3LjMgMCAwIDUzLjJjMCAyLjUgMS4zIDMuOCAzLjggMy44bDMuNCAwYzIuNSAwIDMuOC0xLjMgMy44LTMuOGwwIDB6bTI0OC0uOGwtMTkuNCAwIDAtMjYuNyAxNi4xIDBjLjMgMCAuNSAwIC44LS4xcy41LS4yIC43LS40IC4zLS40IC40LS43IC4xLS41IC4xLS44bDAtLjhjMC0uMyAwLS41LS4xLS44cy0uMi0uNS0uNC0uNy0uNC0uMy0uNy0uNC0uNS0uMS0uOC0uMWwtMTYuMSAwIDAtMjUuOCAxOS4xIDBjLjMgMCAuNSAwIC44LS4xcy41LS4yIC43LS40IC4zLS40IC40LS43IC4xLS41IC4xLS44bDAtLjhjMC0uMyAwLS41LS4xLS44cy0uMi0uNS0uNC0uNy0uNC0uMy0uNy0uNC0uNS0uMS0uOC0uMWwtMjIuMiAwYy0uMy0uMS0uNS0uMS0uOCAwcy0uNSAuMi0uNyAuNC0uMyAuNC0uNCAuNy0uMSAuNS0uMSAuOGwwIDYzYzAgLjMgMCAuNSAuMSAuOHMuMiAuNSAuNCAuNiAuNCAuMyAuNyAuNCAuNSAuMSAuOCAuMWwyMi41IDBjLjMgMCAuNSAwIC44LS4xcy41LS4yIC43LS40IC4zLS40IC40LS42IC4xLS41IC4xLS44bDAtLjhjMC0uMyAwLS41LS4xLS44cy0uMi0uNS0uNC0uNy0uNC0uMy0uNy0uNC0uNS0uMS0uOC0uMWwwIDB6TTQwOCAyMjEuOGwtLjggMGMtMTAuMSAwLTE1LjMgNC43LTE1LjMgMTQuMWwwIDQwLjFjMCA5LjMgNS4yIDE0LjEgMTUuMyAxNC4xbC44IDBjMTAuMSAwIDE1LjMtNC44IDE1LjMtMTQuMWwwLTQwLjFjMC05LjQtNS4yLTE0LjEtMTUuMy0xNC4xbDAgMHptMTAuMiA1Mi40Yy0uMSA4LTMgMTEuMS0xMC41IDExLjFzLTEwLjUtMy4xLTEwLjUtMTEuMWwwLTM2LjZjMC03LjkgMy0xMS4xIDEwLjUtMTEuMXMxMC41IDMuMiAxMC41IDExLjFsMCAzNi42em0tNDYuNS0xNC41YzYuMS0xLjYgOS4yLTYuMSA5LjItMTMuM2wwLTkuN2MwLTkuNC01LjItMTQuMS0xNS4zLTE0LjFsLTEzLjcgMGMtLjMgMC0uNSAwLS44IC4xcy0uNSAuMi0uNyAuNC0uMyAuNC0uNCAuNi0uMSAuNS0uMSAuOGwwIDYzYzAgLjMgMCAuNSAuMSAuOHMuMiAuNSAuNCAuNiAuNCAuMyAuNyAuNCAuNSAuMSAuOCAuMWwxLjIgMGMuMyAwIC41IDAgLjgtLjFzLjUtLjIgLjYtLjQgLjMtLjQgLjQtLjYgLjEtLjUgLjEtLjhsMC0yNi45IDExLjYgMCAxMC40IDI3LjJjLjIgLjUgLjUgLjkgLjkgMS4xcy45IC40IDEuNCAuNGwxLjUgMGMxLjQgMCAyLTEgMS41LTIuM2wtMTAuNi0yNy4zem0tNi40LTMuOWwtMTAuMiAwIDAtMjguNSAxMC4yIDBjNy41IDAgMTAuNSAzLjEgMTAuNSAxMS4xbDAgNi40YzAgNy44LTMgMTEtMTAuNSAxMWwwIDB6bTg1LjktMzMuMWwtMTMuNyAwYy0uMy0uMS0uNS0uMS0uOCAwcy0uNSAuMi0uNyAuNC0uMyAuNC0uNCAuNy0uMSAuNS0uMSAuOGwwIDYzYzAgLjMgMCAuNSAuMSAuOHMuMiAuNSAuNCAuNiAuNCAuMyAuNyAuNCAuNSAuMSAuOCAuMWwxLjIgMGMuMyAwIC41IDAgLjgtLjFzLjUtLjIgLjYtLjQgLjMtLjQgLjQtLjYgLjEtLjUgLjEtLjhsMC0yNi4xIDEwLjYgMGMxMC4xIDAgMTUuMy00LjggMTUuMy0xNC4xbDAtMTAuNWMwLTkuNC01LjItMTQuMS0xNS4zLTE0LjF6bTEwLjIgMjIuOGMwIDcuOS0zIDExLjEtMTAuNSAxMS4xbC0xMC4yIDAgMC0yOS4yIDEwLjIgMGM3LjUtLjEgMTAuNSAzLjEgMTAuNSAxMWwwIDcuMXpNMjU5LjYgMzA4bC0yLjMtNi44LTIuMyA2LjgtNy4xIC4xIDUuNyA0LjMtMi4xIDYuOCA1LjgtNC4xIDUuOCA0LjEtMi4xLTYuOCA1LjctNC4zLTcuMS0uMXpNNDg3LjIgMTcxLjljLTExLjctNC40LTIzLjUtOC4xLTM1LjYtMTEuMyAxOS42LTc4IDExLjYtMTM0LjctMjIuMy0xNTMuOS0zNC41LTE5LjQtODUuOSA0LjMtMTM4LjIgNTUuMiAzLjQgMy4zIDYuOCA2LjcgMTAuMiAxMC4yIDgyLjUtODAgMTE5LjYtNTMuNSAxMjAuOS01Mi44IDIyLjQgMTIuNyAzNiA1NS44IDE1LjUgMTM3LjgtMjcuOC02LjQtNTYuMS0xMC43LTg0LjYtMTMtNzEuOS0xMDAuNS0xNDAuNi0xNDIuMS0xODIuMi0xNDIuMS0zMC44IDAtNDMuOCAyMS00Ny42IDI3LjctMTguMSAzMi0xMy4zIDg0LjIgLjEgMTMzLjgtNzAuNSAyMC4zLTEyMC43IDU0LjEtMTIwLjMgOTUgLjUgNTkuNiAxMDMuMiA4Ny44IDEyMi4xIDkyLjgtMjAuNSA4MS45LTEwLjEgMTM1LjYgMjIuMyAxNTMuOSAyOCAxNS44IDc1LjEgNiAxMzguMi01NS4yLTMuNC0zLjMtNi44LTYuNy0xMC4yLTEwLjItODIuNSA4MC0xMTkuNyA1My41LTEyMC45IDUyLjgtMjIuMy0xMi42LTM2LTU1LjYtMTUuNS0xMzcuOSAxMi40IDIuOSA0MS44IDkuNSA4NC42IDEzIDcxLjkgMTAwLjQgMTQwLjYgMTQyIDE4Mi4xIDE0MiAzMC44IDAgNDMuOC0yMSA0Ny42LTI3LjcgMTgtMzEuOSAxMy4zLTg0LjEtLjEtMTMzLjggMTUyLjMtNDMuOCAxNTYuMi0xMzAuMiAzMy45LTE3Ni4zbDAgMHpNMTM2IDM2LjhjMi45LTUuMSAxMS45LTIwLjMgMzQuOS0yMC4zIDM2LjggMCA5OC44IDM5LjYgMTYzLjMgMTI2LjItMzEuMy0xLjgtNjIuNy0xLjUtOTMuOSAuOSAxMy0xOC4zIDI3LjEtMzUuOCA0Mi4yLTUyLjQtMy40LTMuNS02LjgtNi45LTEwLjItMTAuMi0xOC4zIDIwLjItMzUuMyA0MS43LTUwLjcgNjQuMi0yOC41IDIuNy01Ni43IDcuNi04NC40IDE0LjYtLjItMS40LTI0LjMtODIuMi0xLjItMTIzbDAgMHpNNDQwLjggNDc1LjFjLTIuOSA1LjEtMTEuOCAyMC4zLTM0LjkgMjAuMy0zNi43IDAtOTguNy0zOS40LTE2My4zLTEyNi4yIDMxLjMgMS44IDYyLjcgMS41IDkzLjktLjktMTMgMTguMy0yNy4xIDM1LjgtNDIuMiA1Mi40IDMuNCAzLjUgNi44IDYuOSAxMC4yIDEwLjIgMTguNC0yMC4yIDM1LjMtNDEuNyA1MC43LTY0LjIgNDcuMy00LjcgODAuMy0xMy41IDg0LjQtMTQuNiAyMi43IDg0LjQgNC41IDExNyAxLjIgMTIzem05LjEtMTM4LjZjLTMuNi0xMS45LTcuNy0yNC4xLTEyLjQtMzYuNC0yLjEgMC00LjItLjUtNi4xLTEuNXMtMy41LTIuNC00LjYtNC4ybC0uMSAuMWMtMS42IDEuNS0zLjQgMi43LTUuNCAzLjYgNS43IDE0LjMgMTAuNiAyOC40IDE0LjcgNDIuMi0yMy43IDYtNDcuNyAxMC4zLTcyIDEzIDMuNS01LjMgMTcuMi0yNi4yIDMyLjItNTQuMi0yLjEtLjgtNC4yLTEuOS02LTMuMi0xLjEgMS4yLTMuNiA0LjItMTAuOSA0LjItNi4yIDExLjItMTcuNCAzMC45LTMzLjkgNTUuMi0zNy40IDMuMy03NSAzLjYtMTEyLjQgMS03LjktMTEuMi0yMS41LTMxLjEtMzYuOC01Ny44LTEtLjQtMi0uOS0zLTEuNS0xLjkgMS42LTMuOSAzLjItMTIuNiAzLjIgNi4zIDExLjIgMTcuNSAzMC43IDMzLjggNTQuNi0yNC4zLTIuMy00OC40LTYuMi03Mi4yLTExLjcgMy45LTE0IDguNi0yOC4zIDE0LjEtNDIuOS0zLjIgMC01LjQgLjItOC40LTEtMi4yIC44LTQuNiAxLjEtNi45IDEtNC45IDEzLjQtOS4xIDI2LjUtMTIuNyAzOS40LTE1OS45LTQyLjYtMTQwLjMtMTIzLjYtMS41LTE2NCAzLjYgMTEuOSA3LjcgMjQuMSAxMi40IDM2LjQgMTAuNCAwIDEyLjkgMy40IDE0LjQgNS4zIC43LS44IDEuNC0xLjYgMi4zLTIuMi01LjgtMTQuNy0xMC45LTI5LjItMTUuMi00My4zIDctMS44IDMyLjQtOC40IDcyLTEzLTE1LjkgMjQuMy0yNi43IDQzLjktMzIuOCA1NS4zIDMuMSAxLjggNS4zIDQuNiA2LjQgOCAyLjUtMy43IDYuMS02LjYgMTAuMi04LjQgNi41LTExLjcgMTcuOS0zMS45IDM0LjgtNTYuOSAzNy40LTMuMyA3NS0zLjYgMTEyLjQtMSAzMS41IDQ0LjYgMjguOSA0OC4xIDQyLjUgNjQuNSAyLjYtMy41IDYuMy02IDEwLjQtNy40LTYuNC0xMS40LTE3LjYtMzEtMzQuMy01NS41IDQwLjQgNC4xIDY1IDEwIDcyLjIgMTEuNy00IDE0LjQtOC45IDI5LjItMTQuNiA0NC4yIDIuNSAxIDQuOCAyLjQgNi44IDQuM2wuMSAuMWMxLTEuNSAyLjMtMi44IDMuOC0zLjhzMy4zLTEuNiA1LjEtMS44YzQuOS0xMy40IDkuMi0yNi42IDEyLjgtMzkuNSAxMS43IDMuMSAyMy4yIDYuOCAzNC41IDExIDEwNi4xIDM5LjkgNzQgODcuOSA3Mi42IDkwLjQtMTkuOCAzNS4xLTgwLjEgNTUuMi0xMDUuNyA2Mi41em0tMTE0LjQtMTE0bC0xLjIgMGMtLjMgMC0uNSAwLS44IC4xcy0uNSAuMi0uNiAuNC0uMyAuNC0uNCAuNi0uMSAuNS0uMSAuOGwwIDQ5LjhjMCA3LjktMi42IDExLjEtMTAuMSAxMS4xcy0xMC4xLTMuMS0xMC4xLTExLjFsMC00OS44YzAtLjMgMC0uNS0uMS0uOHMtLjItLjUtLjQtLjctLjQtLjMtLjctLjQtLjUtLjEtLjgtLjFsLTEuMiAwYy0uMyAwLS41IDAtLjggLjFzLS41IC4yLS43IC40LS4zIC40LS40IC42LS4xIC41LS4xIC44bDAgNTEuNWMwIDkuNiA1IDE0LjEgMTUuMSAxNC4xbC40IDBjMTAuMSAwIDE1LjEtNC42IDE1LjEtMTQuMWwwLTUxLjVjMC0uMy0uMS0uNS0uMi0uOHMtLjMtLjUtLjUtLjYtLjQtLjMtLjctLjQtLjUtLjEtLjgtLjF6TTMyMS44IDMwOGwtMi4zLTYuOC0yLjMgNi44LTcuMSAuMSA1LjcgNC4zLTIuMSA2LjggNS44LTQuMSA1LjggNC4xLTIuMS02LjggNS43LTQuMy03LjEtLjF6bS0zMS4xIDcuNGwtMi4zLTYuOC0yLjMgNi44LTcuMSAuMSA1LjcgNC4zLTIuMSA2LjggNS44LTQuMSA1LjggNC4xLTIuMS02LjggNS43LTQuMy03LjEtLjF6bTUuMS0zMC44bC0xOS40IDAgMC0yNi43IDE2LjEgMGMuMyAwIC41IDAgLjgtLjFzLjUtLjIgLjctLjQgLjMtLjQgLjQtLjcgLjEtLjUgLjEtLjhsMC0uOGMwLS4zIDAtLjUtLjEtLjhzLS4yLS41LS40LS43LS40LS4zLS43LS40LS41LS4xLS44LS4xbC0xNi4xIDAgMC0yNS44IDE5LjEgMGMuMyAwIC41IDAgLjgtLjFzLjUtLjIgLjctLjQgLjMtLjQgLjQtLjcgLjEtLjUgLjEtLjhsMC0uOGMwLS4zIDAtLjUtLjEtLjhzLS4yLS41LS40LS43LS40LS4zLS43LS40LS41LS4xLS44LS4xbC0yMi4yIDBjLS4zIDAtLjUgMC0uOCAuMXMtLjUgLjItLjcgLjQtLjMgLjQtLjQgLjYtLjEgLjUtLjEgLjhsMCA2M2MwIC4zIDAgLjUgLjEgLjhzLjIgLjUgLjQgLjYgLjQgLjMgLjcgLjQgLjUgLjEgLjggLjFsMjIuNSAwYy4zIDAgLjUgMCAuOC0uMXMuNS0uMiAuNy0uNCAuMy0uNCAuNC0uNyAuMS0uNSAuMS0uOGwwLS44YzAtLjMgMC0uNi0uMS0uOHMtLjItLjUtLjQtLjctLjQtLjQtLjctLjQtLjUtLjEtLjgtLjFsMCAwem0tNy40LTk5LjRsLTIuMyA2LjgtNy4xIC4xIDUuNyA0LjMtMi4xIDYuOCA1LjgtNC4xIDUuOCA0LjEtMi4xLTYuOCA1LjctNC4zLTcuMS0uMS0yLjMtNi44eiJdfSxDb3Q9e3ByZWZpeDoiZmFiIixpY29uTmFtZToid2F6ZSIsaWNvbjpbNTEyLDUxMixbXSwiZjgzZiIsIk01MDIuNiAyMDEuN2MxNC41IDg1LjktMzAuOSAxNjcuOS0xMTMuMiAyMDguMSAxMyAzNC4xLTEyLjQgNzAuMi00OC4zIDcwLjItMTMuMiAwLTI2LTUuMS0zNS42LTE0LjJzLTE1LjMtMjEuNi0xNi0zNC44Yy02LjQgLjItNjQuMiAwLTc2LjMtLjYtLjMgNi44LTEuOSAxMy41LTQuNyAxOS42cy02LjkgMTEuNy0xMS45IDE2LjMtMTAuOCA4LjItMTcuMiAxMC41LTEzLjIgMy40LTE5LjkgMy4xYy0zMy45LTEuNC01OC0zNC44LTQ3LTY3LjktMzcuMi0xMy4xLTcyLjUtMzQuOS05OS42LTcwLjgtMTMtMTcuMy0uNS00MS44IDIwLjgtNDEuOCA0Ni4zIDAgMzIuMi01NC4yIDQzLjItMTEwLjMgMTguNC05My45IDExNi44LTE1Ny4xIDIxMS43LTE1Ny4xIDEwMi41IDAgMTk3LjIgNzAuNyAyMTQuMSAxNjkuN3pNMzczLjkgMzg4LjNjNDItMTkuMiA4MS4zLTU2LjcgOTYuMy0xMDIuMSA0MC41LTEyMy4xLTY0LjItMjI4LTE4MS43LTIyOC04My40IDAtMTcwLjMgNTUuNC0xODYuMSAxMzYtOS41IDQ4LjkgNSAxMzEuNC02OC43IDEzMS40IDI0LjkgMzMuMSA1OC4zIDUyLjYgOTMuNyA2NCAyNC43LTIxLjggNjMuOS0xNS41IDc5LjggMTQuMyAxNC4yIDEgNzkuMiAxLjIgODcuOSAuOCAzLjUtNi45IDguNS0xMi45IDE0LjctMTcuNXMxMy4yLTcuOSAyMC44LTkuNSAxNS40LTEuNCAyMi45IC40IDE0LjUgNS4zIDIwLjUgMTAuMnpNMjA1LjUgMTg3LjFjMC0zNC43IDUwLjgtMzQuNyA1MC44IDBzLTUwLjggMzQuNy01MC44IDB6bTExNi42IDBjMC0zNC43IDUwLjktMzQuNyA1MC45IDBzLTUwLjkgMzQuOC01MC45IDB6TTE5OS41IDI1Ny44Yy0zLjQtMTYuOSAyMi4yLTIyLjIgMjUuNi01LjJsLjEgLjNjNC4xIDIxLjQgMjkuOCA0NCA2NC4xIDQzLjEgMzUuNy0uOSA1OS4zLTIyLjIgNjQuMS00Mi44IDQuNS0xNi4xIDI4LjYtMTAuNCAyNS41IDYtNS4yIDIyLjItMzEuMiA2Mi05MS41IDYyLjktNDIuNiAwLTgwLjktMjcuOC04Ny45LTY0LjJsMCAweiJdfSxUb3Q9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiY3JlYXRpdmUtY29tbW9ucy1yZW1peCIsaWNvbjpbNTEyLDUxMixbXSwiZjRlZSIsIk0yNTUuNiA4QzM5Ny40IDggNTA0IDExOC4xIDUwNCAyNTYgNTA0IDQwMy4xIDM4NS41IDUwNCAyNTUuNiA1MDQgMTIxLjYgNTA0IDggMzk0LjUgOCAyNTYgOCAxMjMuMSAxMTIuNyA4IDI1NS42IDh6bS44IDQ0LjdjLTExOC4yIDAtMjAzLjcgOTcuOS0yMDMuNyAyMDMuMyAwIDEwOS44IDkxLjIgMjAyLjggMjAzLjcgMjAyLjggMTAzLjIgMCAyMDIuOC04MS4xIDIwMi44LTIwMi44IC4xLTExMy44LTkwLjItMjAzLjMtMjAyLjgtMjAzLjN6TTQxOC4xIDI2MC40bDQuOSAyLjIgMCA3MGMtNy4yIDMuNi02My40IDI3LjUtNjcuMyAyOC44LTYuNS0xLjgtMTEzLjctNDYuOC0xMzcuMy01Ni4ybC02NC4yIDI2LjYtNjMuMy0yNy41IDAtNjMuOCA1OS4zLTI0LjhjLS43LS43LS40IDUtLjQtNzAuNGw2Ny4zLTI5LjcgMTUxLjkgNjIuOSAwIDYxLjYgNDkuMSAyMC4zem0tNzAuNCA4MS41bDAtNDMuOC0uNCAwIDAtMS44LTExMy44LTQ2LjUgMCA0NS4yIDExMy44IDQ2LjkgMC0uNCAuNCAuNHptNy41LTU3LjZsMzkuOS0xNi40LTM2LjgtMTUuNS0zOSAxNi40IDM1LjkgMTUuNXptNTIuMyAzOC4xbDAtNDMtNDQuMyAxOC42IDAgNDMuNCA0NC4zLTE5eiJdfSxfb3Q9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiYmFuZGNhbXAiLGljb246WzUxMiw1MTIsW10sImYyZDUiLCJNMjU2IDhhMjQ4IDI0OCAwIDEgMCAwIDQ5NiAyNDggMjQ4IDAgMSAwIDAtNDk2em00OC4yIDMyNi4xbC0xODEgMCA4NC43LTE1Ni4xIDE4MSAwLTg0LjcgMTU2LjF6Il19LExvdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJzcXVhcmUtd2ViLWF3ZXNvbWUtc3Ryb2tlIixpY29uOls0NDgsNTEyLFtdLCJlNjg0IiwiTTY0IDY0QzQ2LjMgNjQgMzIgNzguMyAzMiA5NmwwIDMyMGMwIDE3LjcgMTQuMyAzMiAzMiAzMmwzMjAgMGMxNy43IDAgMzItMTQuMyAzMi0zMmwwLTMyMGMwLTE3LjctMTQuMy0zMi0zMi0zMkw2NCA2NHpNMCA5NkMwIDYwLjcgMjguNyAzMiA2NCAzMmwzMjAgMGMzNS4zIDAgNjQgMjguNyA2NCA2NGwwIDMyMGMwIDM1LjMtMjguNyA2NC02NCA2NEw2NCA0ODBjLTM1LjMgMC02NC0yOC43LTY0LTY0TDAgOTZ6bTIzNSA4MS42bDUzIDQ2LjQgNTIuMi0xMC40Yy0yLjYtMy45LTQuMi04LjUtNC4yLTEzLjYgMC0xMy4zIDEwLjctMjQgMjQtMjRzMjQgMTAuNyAyNCAyNGMwIDEzLTEwLjMgMjMuNi0yMy4yIDI0TDMwNC41IDM0OS4xYy01LjIgMTEuNS0xNi42IDE4LjktMjkuMiAxOC45bC0xMDIuNiAwYy0xMi42IDAtMjQtNy40LTI5LjItMTguOUw4Ny4yIDIyNGMtMTIuOS0uNC0yMy4yLTExLTIzLjItMjQgMC0xMy4zIDEwLjctMjQgMjQtMjRzMjQgMTAuNyAyNCAyNGMwIDUtMS41IDkuNy00LjIgMTMuNkwxNjAgMjI0IDIxMy4xIDE3Ny42Yy04LjktNC4xLTE1LTEzLjEtMTUtMjMuNiAwLTE0LjQgMTEuNi0yNiAyNi0yNnMyNiAxMS42IDI2IDI2YzAgMTAuNS02LjIgMTkuNS0xNS4xIDIzLjZ6Il19LEFvdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJ2aW1lby12IixpY29uOls0NDgsNTEyLFtdLCJmMjdkIiwiTTQ0Ny44IDE1My42Yy0yIDQzLjYtMzIuNCAxMDMuMy05MS40IDE3OS4xLTYwLjkgNzkuMi0xMTIuNCAxMTguOC0xNTQuNiAxMTguOC0yNi4xIDAtNDguMi0yNC4xLTY2LjMtNzIuMy0zNS4yLTEyOS4yLTUwLjItMjA0LjktNzkuMy0yMDQuOS0zLjQgMC0xNS4xIDcuMS0zNS4yIDIxLjFMMCAxNjguMmM1MS42LTQ1LjMgMTAwLjktOTUuNyAxMzEuOC05OC41IDM0LjktMy40IDU2LjMgMjAuNSA2NC40IDcxLjUgMjguNyAxODEuNSA0MS40IDIwOC45IDkzLjYgMTI2LjcgMTguNy0yOS42IDI4LjgtNTIuMSAzMC4yLTY3LjYgNC44LTQ1LjktMzUuOC00Mi44LTYzLjMtMzEgMjItNzIuMSA2NC4xLTEwNy4xIDEyNi4yLTEwNS4xIDQ1LjggMS4yIDY3LjUgMzEuMSA2NC45IDg5LjR6Il19LERvdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJzdHJhdmEiLGljb246WzM4NCw1MTIsW10sImY0MjgiLCJNMTU4LjQgMEw3IDI5MiA5Ni4yIDI5MiAxNTguNCAxNzUuOSAyMjAuMSAyOTIgMzA4LjYgMjkyIDE1OC40IDB6TTMwOC42IDI5MmwtNDMuOSA4OC4yLTQ0LjYtODguMi02Ny42IDAgMTEyLjIgMjIwIDExMS41LTIyMC02Ny42IDB6Il19LEVvdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJ1bmlyZWdpc3RyeSIsaWNvbjpbMzg0LDUxMixbXSwiZjQwNCIsIk0xOTIgNDgwYzM5LjUgMCA3Ni4yLTExLjggMTA2LjgtMzIuMmwtMjEzLjUgMEMxMTUuOCA0NjguMiAxNTIuNSA0ODAgMTkyIDQ4MHpNMTAyLjkgMjg2LjlsMC0xMi40LTEwMi45IDAgMCAxMi40YzAgMi41IDAgNSAuMSA3LjRsMTAzLjEgMGMtLjItMi40LS4zLTQuOS0uMy03LjR6bTIwLjUgNTdsLTExNC45IDBjMi42IDguNSA1LjggMTYuOCA5LjYgMjQuOGwxMzguMyAwYy0xMi45LTUuNy0yNC4xLTE0LjItMzMtMjQuOHptLTE3LjctMzQuN2wtMTA0LjQgMGMuOSA3LjYgMi4yIDE1IDMuOSAyMi4zbDEwOS43IDBjLTQtNi45LTcuMi0xNC40LTkuMi0yMi4zem0tMi44LTY5LjNsLTEwMi45IDAgMCAxNy4zIDEwMi45IDAgMC0xNy4zem0wLTE3My4ybC0xMDIuOSAwIDAgNC45IDEwMi45IDAgMC00Ljl6bTAtMzQuN2wtMTAyLjkgMCAwIDIuNSAxMDIuOSAwIDAtMi41em0wIDY5LjNsLTEwMi45IDAgMCA3LjQgMTAyLjkgMCAwLTcuNHptMCAxMDRsLTEwMi45IDAgMCAxNC44IDEwMi45IDAgMC0xNC44em0wLTY5LjNsLTEwMi45IDAgMCA5LjkgMTAyLjkgMCAwLTkuOXptMCAzNC42bC0xMDIuOSAwIDAgMTIuNCAxMDIuOSAwIDAtMTIuNHpNMjY5LjEgMzMxLjVsMTA5LjcgMGMxLjgtNy4zIDMuMS0xNC43IDMuOS0yMi4zbC0xMDQuNCAwYy0yLjEgNy45LTUuMiAxNS40LTkuMiAyMi4zem0xMi0xODUuN2wxMDIuOSAwIDAtOS44LTEwMi45IDAgMCA5Ljh6bTAgMzcuMmwxMDIuOSAwIDAtMTIuNC0xMDIuOSAwIDAgMTIuNHptMC03NC4zbDEwMi45IDAgMC03LjQtMTAyLjkgMCAwIDcuNHptMC03Ni43bDAgMi41IDEwMi45IDAgMC0yLjUtMTAyLjkgMHpNNzguMSA0NDIuOWwyMjcuNyAwYzExLjgtOC43IDIyLjctMTguNiAzMi4yLTI5LjdsLTI5My4xIDBjOS42IDExIDIxLjQgMjEgMzMuMiAyOS43em0yMDMtMzcxLjNsMTAyLjkgMCAwLTQuOS0xMDIuOSAwIDAgNC45em0wIDE0OC41bDEwMi45IDAgMC0xNC44LTEwMi45IDAgMCAxNC44ek0zOC44IDQwNS43bDMwNS4zIDBjNi43LTguNSAxMi42LTE3LjYgMTcuOC0yNy4yTDIzIDM3OC41YzUuMiA5LjYgOS4yIDE4LjcgMTUuOCAyNy4yem0xODguOC0zNy4xbDEzOS40IDBjMy43LTggNS44LTE2LjIgOC41LTI0LjhsLTExNSAwYy04LjggMTAuNy0yMC4xIDE5LjItMzIuOSAyNC44em01My41LTgxLjdjMCAyLjUtLjEgNS0uNCA3LjRsMTAzLjEgMGMuMS0yLjUgLjItNC45IC4yLTcuNGwwLTEyLjQtMTAyLjkgMCAwIDEyLjR6bTAtMjkuN2wxMDIuOSAwIDAtMTcuMy0xMDIuOSAwIDAgMTcuM3oiXX0sJG90PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImNjLWRpbmVycy1jbHViIixpY29uOls1NzYsNTEyLFtdLCJmMjRjIiwiTTIzOS43IDc5LjlhMTc1LjggMTc1LjggMCAxIDAgMCAzNTEuNiAxNzUuOCAxNzUuOCAwIDEgMCAwLTM1MS42ek0xOTkuOCAzNTkuNWMtNDEuNy0xNS45LTcxLjQtNTYuNC03MS40LTEwMy44czI5LjctODcuOSA3MS40LTEwNC4xbDAgMjA3Ljl6bTc5LjggLjNsMC0yMDguMmM0MS43IDE2LjIgNzEuNCA1Ni43IDcxLjQgMTA0LjFzLTI5LjcgODcuOS03MS40IDEwNC4xek01MjggMzJMNDggMzJDMjEuNSAzMiAwIDUzLjUgMCA4MEwwIDQzMmMwIDI2LjUgMjEuNSA0OCA0OCA0OGw0ODAgMGMyNi41IDAgNDgtMjEuNSA0OC00OGwwLTM1MmMwLTI2LjUtMjEuNS00OC00OC00OHpNMzI5LjcgNDQ4bC05MC4zIDBDMTMzLjIgNDQ4IDQ1LjYgMzYyLjUgNDUuNiAyNTcuOCA0NS42IDE0My4yIDEzMy4yIDY0IDIzOS40IDY0bDkwLjMgMGMxMDUgMCAyMDAuNyA3OS4yIDIwMC43IDE5My44IDAgMTA0LjctOTUuNyAxOTAuMi0yMDAuNyAxOTAuMnoiXX0sSW90PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6Imt1YmVybmV0ZXMiLGljb246WzUxMiw1MTIsW10sImU4NTciLCJNMjU2IDMxNi4xYzMuNS0uMSA3LjIgMiA4LjkgNS4xTDI5MyAzNzEuN2MtMy42IDEuMi03LjMgMi4zLTExLjIgMy4xLTIxLjQgNC45LTQyLjcgMy40LTYyLTMuMmwyNy45LTUwLjRjMS43LTMuMSA0LjktNSA4LjItNS4xem01MC41LTIzLjRsNTcuMiA5LjdjLTguNCAyMy41LTI0LjQgNDMuOS00NS44IDU3LjVsLTIyLjItNTMuNmMtMi00LjcgLjEtMTAuNCA0LjgtMTIuNiAxLjktLjkgNC4xLTEuMyA2LS45em0tODkuMSA3LjdjLjUgMi4xIC4zIDQuMi0uNSA2bC0yMS44IDUzLjNjLTIwLjUtMTMuMi0zNi45LTMyLjktNDUuNy01Ny4xbDU2LjctOS42YzUuMS0uOSAxMC4xIDIuNCAxMS4zIDcuNXptNTguOC00MWwtMy45IDE3LjEtMTUuOCA3LjYtMTUuOS03LjctNC0xNy4xIDExLTEzLjcgMTcuNyAwIDExIDEzLjd6bS03My43LTE2LjdjMy45IDMuNCA0LjQgOS41IDEuMiAxMy42LTEuMyAxLjctMy4xIDIuOC01IDMuM2wtNTUuMyAxNi4yYy0yLjgtMjUuNyAzLjMtNTAuNyAxNi4xLTcxLjZsNDMuMSAzOC42em0xNTAuNy0zOC41YzYuNCAxMC40IDExLjIgMjIgMTQuMSAzNC42IDIuOSAxMi40IDMuNiAyNC44IDIuNCAzNi44bC01NS42LTE2Yy01LTEuNC04LjEtNi43LTYuOS0xMS43IC41LTIuMSAxLjYtMy44IDMuMS01LjFsNDIuOS0zOC41em0tMTEzLjggNC40Yy0uMiA1LjItNC43IDkuNC05LjkgOS40LTIuMSAwLTQuMS0uNy01LjctMS44bC00Ny4zLTMzLjRjMTQuNS0xNC4zIDMzLjEtMjQuOCA1NC41LTI5LjcgMy45LS45IDcuOC0xLjYgMTEuNy0ybC0zLjMgNTcuNnptMzAuOC01Ny42YzI1IDMuMSA0OC4xIDE0LjQgNjUuOCAzMS43bC00Ny4xIDMzLjJjLTQuMiAzLTEwIDIuMy0xMy4zLTEuOC0xLjMtMS43LTItMy42LTIuMS01LjZsLTMuMy01Ny41ek0yNTQuNS0xLjNjNS45LS4zIDExLjcgLjkgMTcgMy40TDQ1NSA4OS43YzQuNyAyLjMgOC45IDUuNiAxMi4yIDkuN3M1LjYgOC44IDYuOCAxMy45bDQ1LjMgMTk2LjljMS4yIDUuMSAxLjIgMTAuNCAwIDE1LjVzLTMuNSA5LjktNi44IDEzLjlMMzg1LjYgNDk3LjZjLTMuMyA0LjEtNy41IDcuNC0xMi4yIDkuNnMtMTAgMy40LTE1LjIgMy40bC0yMDMuNiAwYy01LjMgMC0xMC41LTEuMi0xNS4yLTMuNHMtOC45LTUuNS0xMi4yLTkuNkwuMiAzMzkuN2MtLjctLjktMS40LTEuOC0yLTIuOC0yLjYtMy45LTQuMy04LjMtNS4xLTEyLjlzLS43LTkuMyAuMy0xMy44TDM4LjcgMTEzLjRjMS4yLTUuMSAzLjUtOS45IDYuOC0xMy45czcuNS03LjQgMTIuMi05LjdMMjQxLjEgMi4xYzQuMi0yIDguOC0zLjIgMTMuNC0zLjR6bTEuOCA2N2MtNi4xIDAtMTEgNS41LTExIDEyLjIgMCAuMSAwIC4yIDAgLjMgMCAuOS0uMSAyIDAgMi44IC4xIDMuOSAxIDYuOSAxLjUgMTAuNCAuOSA3LjcgMS43IDE0IDEuMiAxOS45LS41IDIuMi0yLjEgNC4zLTMuNiA1LjdsLS4yIDQuNmMtNi42IC41LTEzLjIgMS42LTE5LjggMy4xLTI4LjUgNi41LTUzLjEgMjEuMS03MS44IDQxLTEuMi0uOC0zLjMtMi4zLTQtMi44LTIgLjMtNCAuOS02LjUtLjYtNC45LTMuMy05LjQtNy45LTE0LjgtMTMuNC0yLjUtMi42LTQuMy01LjEtNy4yLTcuNy0uNy0uNi0xLjctMS40LTIuNC0yLTIuMy0xLjgtNS0yLjgtNy43LTIuOS0zLjQtLjEtNi42IDEuMi04LjggMy45LTMuOCA0LjctMi41IDEyIDIuNyAxNi4yIC4xIDAgLjEgLjEgLjIgLjEgLjcgLjYgMS42IDEuMyAyLjMgMS44IDMuMSAyLjMgNiAzLjUgOS4xIDUuMyA2LjYgNC4xIDEyIDcuNCAxNi4zIDExLjUgMS43IDEuOCAyIDQuOSAyLjIgNi4zbDMuNSAzLjJjLTE4LjggMjguNC0yNy42IDYzLjQtMjIuNCA5OS4xbC00LjYgMS4zYy0xLjIgMS42LTIuOSA0LTQuNyA0LjctNS42IDEuOC0xMiAyLjQtMTkuNyAzLjMtMy42IC4zLTYuNyAuMS0xMC41IC44LS44IC4yLTIgLjQtMi45IC43bC0uMSAwLS4yIC4xYy02LjUgMS42LTEwLjcgNy41LTkuMyAxMy40IDEuMyA1LjkgNy43IDkuNCAxNC4yIDhsLjIgMGMuMSAwIC4xLS4xIC4yLS4xIC45LS4yIDIuMS0uNCAyLjgtLjYgMy44LTEgNi41LTIuNSA5LjgtMy44IDcuMy0yLjYgMTMuMy00LjggMTkuMi01LjYgMi40LS4yIDUgMS41IDYuMyAyLjJsNC44LS44YzExIDM0LjEgMzQuMSA2MS43IDYzLjMgNzkuMWwtMiA0LjhjLjcgMS45IDEuNSA0LjQgMSA2LjItMi4xIDUuNS01LjggMTEuNC05LjkgMTcuOS0yIDMtNC4xIDUuMy01LjkgOC44LS40IC44LTEgMi4xLTEuNCAzLTIuOCA2LS44IDEzIDQuNyAxNS42IDUuNSAyLjYgMTIuMi0uMSAxNS4yLTYuMmwwIDBjLjQtLjkgMS0yIDEuNC0yLjggMS42LTMuNiAyLjEtNi42IDMuMi0xMC4xIDIuOS03LjMgNC41LTE0LjkgOC41LTE5LjcgMS4xLTEuMyAyLjktMS44IDQuOC0yLjNsMi41LTQuNWMyNS41IDkuOCA1NCAxMi40IDgyLjUgNS45IDYuNS0xLjUgMTIuOC0zLjQgMTguOC01LjcgLjcgMS4yIDIgMy42IDIuMyA0LjIgMS45IC42IDMuOSAuOSA1LjYgMy40IDMgNS4xIDUgMTEuMiA3LjUgMTguNSAxLjEgMy40IDEuNiA2LjUgMy4yIDEwLjEgLjQgLjggMSAyIDEuNCAyLjggMi45IDYuMSA5LjcgOC44IDE1LjIgNi4yIDUuNC0yLjYgNy41LTkuNiA0LjctMTUuNi0uNC0uOS0xLTIuMS0xLjQtMy0xLjgtMy40LTMuOS01LjctNS45LTguNy00LjItNi41LTcuNi0xMS45LTkuOC0xNy40LS45LTIuOCAuMi00LjYgLjgtNi41LS40LS41LTEuMy0zLjItMS44LTQuNCAzMC40LTE3LjkgNTIuOC00Ni42IDYzLjMtNzkuNiAxLjQgLjIgMy45IC43IDQuNyAuOCAxLjctMS4xIDMuMi0yLjUgNi4yLTIuMyA1LjkgLjggMTEuOSAzIDE5LjIgNS42IDMuNCAxLjMgNi4xIDIuOCA5LjggMy44IC44IC4yIDEuOSAuNCAyLjggLjYgLjEgMCAuMSAwIC4yIC4xbC4yIDBjNi41IDEuNCAxMi44LTIuMiAxNC4yLThzLTIuOC0xMS44LTkuMy0xMy40Yy0uOS0uMi0yLjMtLjYtMy4yLS43LTMuOC0uNy02LjktLjUtMTAuNS0uOC03LjctLjgtMTQtMS40LTE5LjctMy4yLTIuMy0uOS00LTMuNy00LjgtNC44bC00LjQtMS4zYzIuMy0xNi42IDEuNy0zMy45LTIuMy01MS4zLTQtMTcuNS0xMS4xLTMzLjUtMjAuNi00Ny42IDEuMS0xIDMuMy0yLjkgMy45LTMuNSAuMi0yIDAtNCAyLjEtNi4yIDQuMy00LjEgOS44LTcuNCAxNi4zLTExLjUgMy4xLTEuOCA2LTMgOS4xLTUuMyAuNy0uNSAxLjctMS4zIDIuNC0xLjkgNS4zLTQuMiA2LjUtMTEuNCAyLjctMTYuMnMtMTEuMS01LjItMTYuNC0xYy0uNyAuNi0xLjggMS40LTIuNCAyLTIuOSAyLjUtNC44IDUtNy4yIDcuNy01LjQgNS41LTkuOSAxMC4xLTE0LjggMTMuNC0yLjEgMS4yLTUuMyAuOC02LjcgLjdsLTQuMiAzYy0yMy44LTI1LTU2LjItNDEtOTEuMi00NC4xLS4xLTEuNS0uMi00LjEtLjItNC45LTEuNC0xLjQtMy4yLTIuNS0zLjYtNS41LS41LTUuOSAuMy0xMi4zIDEuMy0xOS45IC41LTMuNiAxLjQtNi42IDEuNS0xMC40IDAtLjkgMC0yLjIgMC0zLjEgMC02LjctNC45LTEyLjItMTEtMTIuMnoiXX0sUG90PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6InBpbnRlcmVzdCIsaWNvbjpbNTEyLDUxMixbXSwiZjBkMiIsIk01MDQgMjU2YzAgMTM3LTExMSAyNDgtMjQ4IDI0OC0yNS42IDAtNTAuMi0zLjktNzMuNC0xMS4xIDEwLjEtMTYuNSAyNS4yLTQzLjUgMzAuOC02NSAzLTExLjYgMTUuNC01OSAxNS40LTU5IDguMSAxNS40IDMxLjcgMjguNSA1Ni44IDI4LjUgNzQuOCAwIDEyOC43LTY4LjggMTI4LjctMTU0LjMgMC04MS45LTY2LjktMTQzLjItMTUyLjktMTQzLjItMTA3IDAtMTYzLjkgNzEuOC0xNjMuOSAxNTAuMSAwIDM2LjQgMTkuNCA4MS43IDUwLjMgOTYuMSA0LjcgMi4yIDcuMiAxLjIgOC4zLTMuMyAuOC0zLjQgNS0yMC4zIDYuOS0yOC4xIC42LTIuNSAuMy00LjctMS43LTcuMS0xMC4xLTEyLjUtMTguMy0zNS4zLTE4LjMtNTYuNiAwLTU0LjcgNDEuNC0xMDcuNiAxMTItMTA3LjYgNjAuOSAwIDEwMy42IDQxLjUgMTAzLjYgMTAwLjkgMCA2Ny4xLTMzLjkgMTEzLjYtNzggMTEzLjYtMjQuMyAwLTQyLjYtMjAuMS0zNi43LTQ0LjggNy0yOS41IDIwLjUtNjEuMyAyMC41LTgyLjYgMC0xOS0xMC4yLTM0LjktMzEuNC0zNC45LTI0LjkgMC00NC45IDI1LjctNDQuOSA2MC4yIDAgMjIgNy40IDM2LjggNy40IDM2LjhzLTI0LjUgMTAzLjgtMjkgMTIzLjJDMTYxLjUgNDM3LjIgMTYzLjUgNDY3LjQgMTY1LjYgNDg3IDczLjQgNDUwLjkgOCAzNjEuMSA4IDI1NiA4IDExOSAxMTkgOCAyNTYgOFM1MDQgMTE5IDUwNCAyNTZ6Il19LE5vdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJhbGdvbGlhIixpY29uOls1MTIsNTEyLFtdLCJmMzZjIiwiTTI1NiAwYy0xMzkuOSAwLTI1NCAxMTIuNy0yNTYgMjUyLjEtMiAxNDEuNSAxMTIuOSAyNTguNyAyNTQuNSAyNTkuNSA0My43IC4zIDg1LjktMTAuNCAxMjMuMy0zMC43IDMuNi0yIDQuMi03IDEuMS05LjdsLTI0LTIxLjJjLTQuOS00LjMtMTEuOC01LjUtMTcuOC0zLTI2LjEgMTEuMS01NC41IDE2LjgtODMuNyAxNi40LTExNC40LTEuNS0yMDYuOS05Ni42LTIwNS4xLTIxMSAxLjgtMTEyLjkgOTQuMy0yMDQuMiAyMDcuNy0yMDQuMmwyMDcuNyAwIDAgMzY5LTExNy44LTEwNC43Yy0zLjgtMy40LTkuNy0yLjctMTIuNyAxLjMtMTguOSAyNS00OS43IDQwLjYtODMuOSAzOC4yLTQ3LjUtMy4zLTg1LjktNDEuNS04OS41LTg4LjktNC4yLTU2LjYgNDAuNi0xMDMuOSA5Ni4zLTEwMy45IDUwLjQgMCA5MS45IDM4LjggOTYuMiA4OCAuNCA0LjQgMi40IDguNSA1LjcgMTEuNGwzMC43IDI3LjJjMy41IDMuMSA5IDEuMiA5LjktMy40IDIuMi0xMS44IDMtMjQuMiAyLjEtMzYuOC00LjktNzItNjMuMy0xMzAtMTM1LjQtMTM0LjQtODIuNy01LjEtMTUxLjggNTkuNS0xNTQgMTQwLjYtMi4xIDc4LjkgNjIuNiAxNDcgMTQxLjYgMTQ4LjcgMzMgLjcgNjMuNi05LjYgODguMy0yNy42TDQ5NSA1MDkuNGM2LjYgNS44IDE3IDEuMiAxNy03LjdsMC00OTJjMC01LjQtNC40LTkuNy05LjctOS43TDI1NiAweiJdfSxGb3Q9e3ByZWZpeDoiZmFiIixpY29uTmFtZToic3RhY2twYXRoIixpY29uOls0NDgsNTEyLFtdLCJmODQyIiwiTTI0NC42IDIzMi40YzAgOC41LTQuMyAyMC41LTIxLjMgMjAuNWwtMTkuNiAwIDAtNDEuNSAxOS42IDBjMTcuMSAwIDIxLjMgMTIuNCAyMS4zIDIxek00NDggMzJsMCA0NDgtNDQ4IDAgMC00NDggNDQ4IDB6TTE1MS4zIDI4Ny44YzAtMjEuMi0xMi4xLTM0LjUtNDYuNy00NC44LTIwLjYtNy40LTI2LTEwLjktMjYtMTguNnM3LTE0LjYgMjAuNC0xNC42YzE0LjEgMCAyMC44IDguNCAyMC44IDE4LjRsMzAuNyAwIC4yLS42Yy41LTE5LjYtMTUuMS00MS42LTUxLjEtNDEuNi0yMy40IDAtNTIuNiAxMC44LTUyLjYgMzguMyAwIDE5LjQgOS4yIDMxLjMgNTAuNyA0NC40IDE3LjMgNi4yIDIxLjkgMTAuNCAyMS45IDE5LjUgMCAxNS4yLTE5LjEgMTQuMi0xOS41IDE0LjItMjAuNCAwLTI1LjctOS4xLTI1LjctMjEuOWwtMzAuOCAwLS4yIC42Yy0uNyAzMS4zIDI4LjQgNDUuMiA1Ni42IDQ1LjIgMzAgMCA1MS4xLTEzLjYgNTEuMS0zOC4zem0xMjUuNC01NS42YzAtMjUuMy0xOC40LTQ1LjUtNTMuNC00NS41bC01MS44IDAgMCAxMzguMiAzMi4yIDAgMC00Ny40IDE5LjYgMGMzMC4zIDAgNTMuNC0xNiA1My40LTQ1LjR6TTI5Ny45IDMyNWw0OS4xLTEzOC4yLTMxLjEgMC00Ny45IDEzOC4yIDI5LjkgMHpNNDA0LjUgMTg2LjhsLTMxLjEgMC00Ny45IDEzOC4yIDI5LjkgMCA0OS4xLTEzOC4yeiJdfSxPb3Q9e3ByZWZpeDoiZmFiIixpY29uTmFtZToib2N0b3B1cy1kZXBsb3kiLGljb246WzUxMiw1MTIsW10sImUwODIiLCJNNDU1LjcgMzQ5LjJjLTQ1LjktMzkuMS0zNi43LTc3LjktMTYuMS0xMjguMSAzNS43LTg3LTIzLjUtMTg2LjktMTA5LjYtMjEyLjgtOTIuOS0yNy45LTE5NS43IDE2LTIzMC4zIDEwOC44LTguNyAyMy41LTEyLjUgNDguNS0xMSA3My41IDEuNyAyOS41IDE0LjcgNTMgMjQuMSA4MC4zIDE3LjIgNTAuMi0yOC4xIDkyLjctNjYuNyAxMTcuNi00Ni44IDMwLjItMzYuMyAzOS45LTguNCA0MS45IDIzLjQgMS43IDQ0LjUtNC41IDY1LjMtMTUgOS4yLTQuNiA0MC43LTE4LjkgNDUuMS0yOC42LTEyLjIgMjYuNi0zNyA3Mi43LTIxLjUgMTAyLjEgMTkuMSAzNi4yIDY3LjEtMzEuOCA3Ni43LTQ1LjggOC42LTEyLjYgNDMtODEuMyA2My42LTQ2LjkgMTguOSAzMS40IDguNiA3Ni40IDM1LjcgMTA0LjYgMzIuOSAzNC4yIDUxLjItMTguMyA1MS40LTQ0LjIgLjItMTYuNC02LjEtOTUuOSAyOS45LTU5LjkgMjEuNCAyMS40IDUyLjkgNzEuMiA4OC42IDY3IDM4LjctNC41LTIyLjEtNjgtMjguMy03OC43IDUuNCA0LjMgNTMuNyAzNC4xIDUzLjggOS41IC4xLTE4LjgtMzAuMS0zNC43LTQyLjUtNDUuM3oiXX0sUm90PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6InlhbW1lciIsaWNvbjpbNTEyLDUxMixbXSwiZjg0MCIsIk01MDAuNyAxNTkuNWMtLjQtMS44LTEuMi0zLjQtMi4zLTQuOHMtMi41LTIuNi00LjEtMy41Yy0zLjEtMS42LTYuNy0yLTEwLjEtMS4xbC0yNi40IDYuNiAwLS4yLTIyLjMgNS44LTEuMiAuMy0uNi0yLjJjLTE1LjUtNTguMy00NS0xMTEuOS04Ni4xLTE1Ni4yLTIuNi0yLjctNi4xLTQuMi05LjgtNC4zcy03LjMgMS4zLTEwIDMuOGwtMTAyLjkgMTAyLjctMTk5LjkgMGMtNi42IDAtMTIuOSAyLjYtMTcuNiA3LjNTMCAxMjQuOCAwIDEzMS40bDAgMjQ5QzAgMzg3IDIuNiAzOTMuMyA3LjMgMzk4czExIDcuMyAxNy42IDcuM0wyMjUgNDA1LjMgMzI4LjEgNTA4YzIuNiAyLjYgNiA0IDkuNyA0czcuMS0xLjQgOS43LTRjLjEtLjEgLjItLjMgLjQtLjQgMjkuMy0zMS41IDUyLjgtNjcuOCA2OS42LTEwNy40IDYuOS0xNi41IDEyLjctMzMuNSAxNy4zLTUwLjhsMCAwIDIwLjQgNS4zIDAtLjEgMjguMyA3LjNjLjkgLjIgMS43IC40IDIuNiAuNSAxLjQgLjIgMi44IC4yIDQuMS0uMSAyLjUtLjUgNC44LTEuNyA2LjctMy40czMuMi00IDMuOC02LjVjMTUuMi02My40IDE1LjItMTI5LjYgLjEtMTkzbDAgMHpNMzM3LjEgMjQuN2wwIDAgMCAwIDAgMHpNMjI2LjkgMTg5LjhsLTUyLjYgOTEuM2MtMSAxLjctMS41IDMuNy0xLjUgNS43bDAgNDYuMmMwIDUuOC0yLjMgMTEuNC02LjUgMTUuNnMtOS43IDYuNC0xNS42IDYuNGwtMy40IDBjLTUuOCAwLTExLjQtMi4zLTE1LjYtNi40cy02LjUtOS43LTYuNS0xNS42bDAtNDUuN2MwLTEuOS0uNS0zLjgtMS40LTUuNUw3Mi4zIDE4OS42Yy0xLjktMy40LTIuOC03LjEtMi44LTExczEuMS03LjYgMy0xMC45IDQuNy02LjEgOC4xLTggNy4xLTIuOSAxMS0yLjlsMy4zIDBjNCAwIDggMS4xIDExLjUgMy4yczYuMyA1LjEgOC4xIDguN2wzNi40IDcwLjMgMzcuNS03MC41YzEuOC0zLjUgNC42LTYuNCA3LjktOC40czcuMi0zLjIgMTEuMS0zLjIgNy44IC45IDExLjIgMi44IDYuMyA0LjcgOC4yIDguMWMyIDMuMyAzIDcuMSAzIDExcy0xIDcuNy0zIDExbDAgMHpNMzM3LjEgMjQuN2MzNS45IDQwLjYgNjEuOSA4OSA3NS44IDE0MS4zbC42IDItMTE0LjEgMjkuNiAwLTY2LjFjMC02LjYtMi43LTEyLjktNy4zLTE3LjZzLTExLTcuMy0xNy42LTcuM2wtMTkuNCAwIDgyLjEtODEuOHpNMzk3LjYgMzkybDAgMCAwIDBjLTE0LjcgMzQuOC0zNS4xIDY3LTYwLjIgOTUuMmwtODIuMi04MS45IDE5LjIgMGM2LjYgMCAxMi45LTIuNiAxNy42LTcuM3M3LjMtMTEgNy4zLTE3LjZsMC02Ni4yIDExNC42IDI5LjljLTQuNCAxNi4zLTkuOCAzMi4zLTE2LjMgNDcuOWwwIDB6bTg0LTUyLjRsMCAwLTUwLjYtMTMuMS0xMzEuNy0zNC4zIDAtNzIuNSAxMTkuNy0zMSA0LjUtMS4yYzI5LjktNy43IDQ5LjItMTIuOCA1OC4xLTE1LjEgMTIgNTUuMSAxMiAxMTIuMSAwIDE2Ny4yeiJdfSxCb3Q9e3ByZWZpeDoiZmFiIixpY29uTmFtZToibW9keCIsaWNvbjpbNDQ4LDUxMixbXSwiZjI4NSIsIk0zNTYgMjQxLjhsMzYuNyAyMy43IDAgMjE0LjUtMTMzLTgzLjggOTYuMy0xNTQuNHpNNDQwIDc1bC0yMTMuNyAwLTIzIDM3LjggMTUzLjUgOTYuNSA4My4yLTEzNC4zek0zNTEgMjE3LjhsLTI5NS44LTE4NS44IDAgMjE0LjUgNDYgMjkgMjQ5LjgtNTcuN3pNOTcgMjk0LjJMOCA0MzcgMjIxLjcgNDM3IDM0Ni43IDIzNi41IDk3IDI5NC4yeiJdfSxIb3Q9e3ByZWZpeDoiZmFiIixpY29uTmFtZToic3F1YXJlLXRocmVhZHMiLGljb246WzQ0OCw1MTIsW10sImU2MTkiLCJNNjQgMzJDMjguNyAzMiAwIDYwLjcgMCA5NkwwIDQxNmMwIDM1LjMgMjguNyA2NCA2NCA2NGwzMjAgMGMzNS4zIDAgNjQtMjguNyA2NC02NGwwLTMyMGMwLTM1LjMtMjguNy02NC02NC02NEw2NCAzMnpNMjk0LjIgMjQ0LjNjMTkuNSA5LjMgMzMuNyAyMy41IDQxLjIgNDAuOSAxMC40IDI0LjMgMTEuNCA2My45LTIwLjIgOTUuNC0yNC4yIDI0LjEtNTMuNSAzNS05NS4xIDM1LjNsLS4yIDBjLTQ2LjgtLjMtODIuOC0xNi4xLTEwNi45LTQ2LjgtMjEuNS0yNy4zLTMyLjYtNjUuNC0zMy0xMTMuMWwwLS4yYy40LTQ3LjcgMTEuNS04NS43IDMzLTExMy4xIDI0LjItMzAuNyA2MC4yLTQ2LjUgMTA2LjktNDYuOGwuMiAwYzQ2LjkgLjMgODMuMyAxNiAxMDguMiA0Ni42IDEyLjMgMTUuMSAyMS4zIDMzLjMgMjcgNTQuNGwtMjYuOSA3LjJjLTQuNy0xNy4yLTExLjktMzEuOS0yMS40LTQzLjYtMTkuNC0yMy45LTQ4LjctMzYuMS04Ny0zNi40LTM4IC4zLTY2LjggMTIuNS04NS41IDM2LjItMTcuNSAyMi4zLTI2LjYgNTQuNC0yNi45IDk1LjUgLjMgNDEuMSA5LjQgNzMuMyAyNi45IDk1LjUgMTguNyAyMy44IDQ3LjQgMzYgODUuNSAzNi4yIDM0LjMtLjMgNTYuOS04LjQgNzUuOC0yNy4zIDIxLjUtMjEuNSAyMS4xLTQ3LjkgMTQuMi02NC00LTkuNC0xMS40LTE3LjMtMjEuMy0yMy4zLTIuNCAxOC03LjkgMzIuMi0xNi41IDQzLjItMTEuNCAxNC41LTI3LjcgMjIuNC00OC40IDIzLjUtMTUuNyAuOS0zMC44LTIuOS00Mi42LTEwLjctMTMuOS05LjItMjItMjMuMi0yMi45LTM5LjUtMS43LTMyLjIgMjMuOC01NS4zIDYzLjUtNTcuNiAxNC4xLS44IDI3LjMtLjIgMzkuNSAxLjktMS42LTkuOS00LjktMTcuNy05LjgtMjMuNC02LjctNy44LTE3LjEtMTEuOC0zMC44LTExLjlsLS40IDBjLTExIDAtMjYgMy4xLTM1LjYgMTcuNmwtMjMtMTUuOGMxMi44LTE5LjQgMzMuNi0zMC4xIDU4LjUtMzAuMWwuNiAwYzQxLjggLjMgNjYuNiAyNi4zIDY5LjEgNzEuOCAxLjQgLjYgMi44IDEuMiA0LjIgMS45bC4xIC41em0tNzEuOCA2Ny41YzE3LS45IDM2LjQtNy42IDM5LjctNDguOC04LjgtMS45LTE4LjYtMi45LTI5LTIuOS0zLjIgMC02LjQgLjEtOS42IC4zLTI4LjYgMS42LTM4LjEgMTUuNS0zNy40IDI3LjkgLjkgMTYuNyAxOSAyNC41IDM2LjQgMjMuNmwtLjEtLjF6Il19LHFvdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJvbGQtcmVwdWJsaWMiLGljb246WzUxMiw1MTIsW10sImY1MTAiLCJNMjQzLjggMTAuMmM3LjUtLjMgMTUtLjMgMjIuNS0uMSAzLjYgLjEgNy4yIC40IDEwLjggLjcgNC45IC4zIDkuOCAxIDE0LjcgMS42IDIuOSAuNCA1LjggMSA4LjcgMS41IDcuOSAxLjMgMTUuNyAzLjMgMjMuNCA1LjQgMTIuMiAzLjUgMjQuMiA3LjkgMzUuOCAxMy4yIDI2LjYgMTIuMiA1MC45IDI5LjIgNzEuNiA0OS45IDIwIDIwLjEgMzYuNyA0My41IDQ4LjkgNjkuMiAxLjEgMi42IDIuNCA1LjEgMy41IDcuNyAyLjggNi40IDUuNCAxMyA3LjYgMTkuNiA0LjEgMTIuMyA3LjMgMjUgOS40IDM3LjggLjYgMy4xIDEgNi4zIDEuNCA5LjUgLjUgMy44IC45IDcuNyAxLjIgMTEuNiAuOCA4LjMgLjggMTYuNyAuOCAyNS4xLS4xIDUtLjMgOS45LS43IDE0LjktLjIgMy40LS41IDYuOC0xIDEwLjEtLjQgMi43LS42IDUuNS0xLjEgOC4yLS45IDUuMS0xLjcgMTAuMy0yLjkgMTUuNC00LjEgMTguNS0xMC4zIDM2LjYtMTguNSA1My42LTE1LjggMzIuOC0zOC44IDYyLjItNjcuMSA4NS4xLTE3LjMgMTQuMS0zNi40IDI1LjktNTYuOSAzNC45LTYuMiAyLjctMTIuNSA1LjMtMTguOSA3LjQtMy41IDEuMi03IDIuNC0xMC42IDMuNC02LjYgMS45LTEzLjMgMy42LTIwIDUtNC43IC45LTkuMyAxLjctMTQgMi41LTUuMyAuNy0xMC41IDEuNC0xNS44IDEuNy02LjcgLjctMTMuNCAuOC0yMC4xIC44LTYuOCAwLTEzLjYtLjEtMjAuNC0uOC0zLjMtLjItNi42LS41LTkuOC0xLTIuNy0uNC01LjUtLjYtOC4yLTEuMS00LjEtLjctOC4yLTEuNC0xMi40LTIuMi00LjItLjktOC41LTEuOS0xMi43LTMtOC42LTIuMi0xNy4xLTUtMjUuNC04LjEtMTAuNS00LjEtMjAuOC04LjctMzAuNi0xNC4yLTIuMS0xLjItNC4zLTIuMy02LjQtMy42LTExLjItNi42LTIxLjktMTQuMS0zMS45LTIyLjMtMzQuNy0yOC40LTYxLjQtNjYuNC03Ni40LTEwOC43LTMuMS04LjctNS43LTE3LjYtNy44LTI2LjctMS41LTYuMi0yLjUtMTIuNC0zLjYtMTguNy0uNC0yLjMtLjYtNC43LTEtNy4xLS42LTQtLjgtOC0xLjItMTEuOS0uOC05LjUtLjctMTktLjUtMjguNSAuMS0zLjUgLjMtNyAuNy0xMC41IC4zLTMuMiAuNS02LjQgLjktOS41IC40LTIuOCAuNy01LjYgMS4yLTguNCAuNy0zLjkgMS4zLTcuOSAyLjEtMTEuOCAzLjQtMTYuNSA4LjUtMzIuNyAxNS4zLTQ4LjIgMS4yLTIuOSAyLjYtNS43IDMuOS04LjYgOC4xLTE2LjcgMTcuOS0zMi42IDI5LjUtNDcuMSAyMC0yNS40IDQ1LjEtNDYuNyA3My4zLTYyLjUgNy41LTQuMiAxNS4yLTggMjMuMS0xMS40IDE1LjgtNi45IDMyLjQtMTIgNDkuMy0xNS40IDMuNS0uNyA3LTEuMiAxMC42LTEuOCAyLjYtLjUgNS4zLS43IDcuOS0xLjEgMy41LS41IDcuMS0uNyAxMC42LTEgMi41LS4yIDQuOS0uNCA3LjQtLjV6bTguNiAyNC40Yy05LjIgLjEtMTguNCAxLTI3LjYgMi4yLTcuMyAxLjEtMTQuNSAyLjYtMjEuNyA0LjMtMTMuOSAzLjUtMjcuNSA4LjMtNDAuNSAxNC40LTEwLjUgNS0yMC42IDEwLjctMzAuMiAxNy4yLTQuMiAyLjktOC40IDUuOC0xMi4zIDktNS4xIDQtMTAgOC4yLTE0LjcgMTIuNi0yLjUgMi4yLTQuOCA0LjctNy4yIDcuMS0yOC4yIDI4LjgtNDguNCA2NS40LTU3LjUgMTA0LjctMiA4LjQtMy41IDE3LTQuNCAyNS42LTEuMSA4LjktMS40IDE3LjktMS40IDI2LjggLjEgNy4xIC40IDE0LjMgMS4yIDIxLjQgLjYgNy4xIDEuOSAxNC4yIDMuMiAyMS4yIDEuMSA0LjYgMiA5LjMgMy4zIDEzLjkgNi4zIDIzLjQgMTYuNSA0NS43IDMwLjEgNjUuOCA4LjYgMTMgMTguOCAyNC45IDMwIDM1LjggMTYuMyAxNS44IDM1IDI5IDU1LjMgMzkuMiA3LjMgMy41IDE0LjcgNi45IDIyLjMgOS42IDUgMS44IDEwLjEgMy42IDE1LjIgNSAxMS4zIDMuMiAyMi44IDUuNiAzNC40IDcuMSAyLjkgLjMgNS44IC42IDguNyAuOSAxMy44IDEuMSAyNy43IDEgNDEuNS0uNCA0LjQtLjYgOC45LTEgMTMuMy0xLjggMy42LS43IDcuMy0xLjIgMTAuOS0yLjEgNC4xLTEgOC4zLTEuOSAxMi40LTMuMSAyNi41LTcuMyA1MS42LTE5LjcgNzMuNi0zNi4yIDE1LjgtMTEuOCAzMC0yNS44IDQyLjEtNDEuMyAzLjMtNCA2LjItOC4zIDkuMS0xMi42IDMuNC01LjEgNi42LTEwLjIgOS42LTE1LjUgMi40LTQuNCA0LjctOC45IDctMTMuNCA1LjctMTIuMSAxMC4zLTI0LjYgMTMuOC0zNy41IDIuNi0xMCA0LjctMjAuMiA1LjktMzAuNCAxLjgtMTMuNSAxLjktMjcuMSAxLjMtNDAuNy0uMy0zLjktLjctNy44LTEtMTEuNy0yLjItMTkuMS02LjgtMzcuOS0xMy44LTU1LjgtNi0xNS4xLTEzLjUtMjkuNi0yMi42LTQzLjEtMTIuNy0xOC44LTI4LjItMzUuNy00Ni00OS44LTI1LTIwLTU0LjUtMzQuNS04NS42LTQyLjEtNy44LTEuOS0xNS43LTMuMy0yMy42LTQuNC0zLjktLjYtNy44LS44LTExLjgtMS4yLTcuNC0uNi0xNC44LS43LTIyLjItLjZ6TTE0Ny4zIDgzLjVjMTMuMy04LjkgMjguMS0xNS40IDQzLjMtMjAuMi0zLjIgMS44LTYuNCAzLjQtOS41IDUuMy0xMS4yIDYuNy0yMS41IDE0LjktMzAuNCAyNC41LTYuOCA3LjQtMTIuOCAxNS43LTE3IDI0LjktMy4zIDYuOS01LjYgMTQuMi02LjkgMjEuNy0uOSA0LjgtMS4zIDkuOC0xLjIgMTQuOCAuMSAxMy43IDQuNCAyNy4xIDExLjMgMzguOCA1LjkgMTAuMiAxMy42IDE5LjMgMjIuNCAyNy4zIDQuOSA0LjQgMTAuMiA4LjEgMTUgMTIuNiAyLjMgMi4yIDQuNSA0LjQgNi40IDYuOSAyLjYgMy4zIDQuOSA3IDYgMTEuMSAuOSAzIC43IDYuMiAuNyA5LjMgMCA0LjEgMCA4LjIgMCAxMi4zIC4xIDMuNSAwIDcuMSAuMSAxMC42IC4xIDIuNCAwIDQuOCAuMSA3LjEgLjIgNS44IC4xIDExLjUgLjEgMTcuMyAuMSAyLjkgMCA1LjggLjEgOC43IDAgMS42IC4xIDMuMyAwIDQuOS0uOSAuMS0xLjggLjItMi43IC4yLTExIDAtMjEuOS0yLjYtMzItNi45LTYtMi43LTExLjgtNS45LTE3LjEtOS44LTUuOC00LjItMTEuMS05LTE1LjgtMTQuMy02LjUtNy4yLTEyLTE1LjQtMTYuNi0yMy45LTEuMS0yLTIuMi00LTMuMi02LjEtMS4yLTIuNi0yLjYtNS4xLTMuNy03LjgtNC05LjctNi42LTE5LjktOC4xLTMwLjMtLjUtNC40LTEuMS04LjktMS4yLTEzLjMtLjctMTUuNyAuOC0zMS42IDQuNy00Ni44IDIuMS04LjIgNC44LTE2LjIgOC4zLTIzLjggNi4zLTE0LjIgMTUuMy0yNy4yIDI2LjMtMzguMiA2LjMtNi4yIDEzLjEtMTEuOCAyMC41LTE2Ljd6TTMyMi43IDYzLjRjMi43IC43IDUuNCAxLjcgOC4xIDIuNyA2LjQgMi4zIDEyLjcgNC44IDE4LjcgOCAxMy4xIDYuNCAyNS4zIDE0LjggMzUuOCAyNSAxMC4yIDEwIDE4LjcgMjEuNiAyNS4xIDM0LjMgMS4zIDIuNyAyLjYgNS41IDMuOCA4LjMgNi4zIDE1LjEgMTAgMzEuMyAxMS4yIDQ3LjYgLjQgNC41IC40IDkuMSAuNSAxMy42IC4xIDExLjYtMS41IDIzLjMtNC4zIDM0LjUtMiA3LjMtNC4zIDE0LjUtNy45IDIxLjItMy4yIDYuNi02LjcgMTMuMi0xMC44IDE5LjItNi45IDEwLjUtMTUuNiAxOS45LTI1LjggMjcuMi0xMC41IDcuNi0yMi42IDEzLTM1LjQgMTUuNC0zLjUgLjctNy4xIDEuMS0xMC43IDEuMi0xLjggLjEtMy43IC4yLTUuNi0uMS0uMy0yLjEgMC00LjMgMC02LjUgMC0zLjcgLjEtNy40IC4xLTExLjIgLjItNyAwLTE0LjEgLjItMjEuMSAwLTIuNCAwLTQuOCAwLTcuMSAuMi01LjEgMC0xMC4xIC4xLTE1LjIgLjEtMy0uMi02IC41LTkgLjctMi41IDEuOC00LjkgMy4xLTcuMSA0LjUtNy4zIDExLjEtMTMgMTcuNy0xOC4zIDUuNC00LjIgMTAuNS04LjggMTUtMTMuOCA3LjctOC40IDE0LjItMTcuOSAxOC44LTI4LjMgMi41LTUuOSA0LjUtMTIuMSA1LjUtMTguNSAuOS00LjQgMS4xLTguOCAxLTEzLjMgMC03LjgtMS40LTE1LjYtMy42LTIzLjItMS44LTUuNy00LjMtMTEuMi03LjEtMTYuNC0zLjktNi45LTguNi0xMy4zLTE0LTE5LjItOS45LTEwLjgtMjEuOC0xOS45LTM0LjYtMjcuMS0xLjgtMS0zLjgtMS44LTUuNi0zek0yMjEuOSAxMjEuOWMxLTEuMiAyLTIuMyAzLjEtMy40LS42IC45LTEuMyAxLjgtMiAyLjctMy4xIDMuOS01LjUgOC4zLTcgMTMuMS0uOSAzLjMtMS43IDYuNi0xLjcgMTAtLjEgMi41LS4xIDUuMSAuMyA3LjYgMS4xIDcuNiA0LjMgMTQuOSA4LjggMjEuMSAyIDIuNyA0LjIgNS4zIDYuOSA3LjMgMS42IDEuMyAzLjUgMi4xIDUuMyAzIDMuMSAxLjcgNi4zIDMuMiA5LjEgNS41IDIuNyAyLjEgNC42IDUuMyA0LjQgOC44IDAgNzMuNyAwIDE0Ny4zIDAgMjIxIDAgMS40LS4xIDIuNyAwIDQgLjEgMS41IC44IDIuOCAxLjUgNC4xIC45IDEuNyAxLjggMy4zIDMuMiA0LjYgLjkgLjggMiAxLjQgMy4yIDEuMiAxLjUtLjIgMi43LTEuNCAzLjQtMi42IDEtMS41IDEuNy0zLjIgMi4zLTQuOSAuOC0yLjEgLjQtNC40IC41LTYuNiAuMS00IDAtOC4xIC4xLTEyLjEgMC01LjkgMC0xMS44IC4xLTE3LjcgLjEtMy42IDAtNy4yIC4xLTEwLjkgLjItNCAwLTguMSAuMS0xMi4xIDAtNiAwLTEyIC4xLTE4IC4xLTMuNiAwLTcuMiAuMS0xMC45IC4xLTMuOSAwLTcuOSAuMS0xMS44IDAtNiAwLTEyIC4xLTE4IC4yLTMuOSAwLTcuOSAuMi0xMS44IC4zIDEuNCAuMSAyLjkgLjIgNC40IC4yIDMuNiAuNCA3LjIgLjggMTAuOCAuMyAzLjQgLjQgNi45IC45IDEwLjMgLjQgMy4xIC41IDYuMiAxIDkuMyAuNiA0LjEgLjkgOC4yIDEuNSAxMi4zIDEuNSA5IDIuOCAxOC4xIDUuMSAyNyAxLjEgNC44IDIuNCA5LjYgNCAxNC4zIDIuNSA3LjkgNS43IDE1LjcgMTAuMyAyMi42IDEuNyAyLjYgMy45IDUgNi4xIDcuMiAuMyAuMiAuNiAuNSAuOSAuNyAuNiAuMyAxLjMtLjEgMS43LS42IC43LS45IDEuMi0xLjkgMS43LTIuOSA0LjEtNy44IDguMi0xNS42IDEyLjMtMjMuMyAuNy0xLjMgMS40LTIuNiAyLjYtMy42IDEuOC0xLjYgMy44LTIuNyA2LTMuNiAyLjktMS4yIDUuOS0yLjIgOS0yLjQgNi42LS42IDEzLjEgLjcgMTkuNiAxLjggMy43IC42IDcuNCAxLjIgMTEuMSAxLjQgMy43IC4xIDcuNSAuMSAxMS4yLS4zIDguNi0uOSAxNy0zIDI0LjktNi4yIDUuMy0yLjIgMTAuNS00LjggMTUuMy03LjkgMTEuNS03LjIgMjEuNS0xNi42IDMwLTI3IDEuMi0xLjQgMi4yLTIuOSAzLjUtNC4zLTEuMiAzLjItMi43IDYuNC00LjIgOS41LTEuMyAyLjktMi44IDUuNi00LjMgOC40LTUuMiA5LjYtMTEgMTguOS0xNy44IDI3LjUtNCA1LjItOC41IDEwLjEtMTMuMyAxNC42LTYuNiA2LjEtMTQuMSAxMS40LTIyLjQgMTQuOC04LjIgMy40LTE3LjMgNC42LTI2LjEgMy4zLTMuNi0uNi03LTEuNy0xMC40LTIuOS0yLjgtMS01LjQtMi40LTgtMy43LTMuNC0xLjctNi42LTMuOC05LjctNi4xIDIuNyAzLjEgNS43IDUuOSA4LjcgOC42IDQuMyAzLjggOC43IDcuMyAxMy42IDEwLjIgNCAyLjUgOC4zIDQuNCAxMi44IDUuNSAxLjUgLjQgMyAuNSA0LjUgLjYtMS4zIDEuMS0yLjYgMi00IDMtOS42IDYuNS0yMCAxMS45LTMwLjcgMTYuNC0yMC45IDguNy00My4yIDE0LTY1LjcgMTUuMy00LjcgLjItOS4zIC40LTE0IC40LTUtLjEtMTAtLjEtMTQuOS0uNy0xMS4yLS44LTIyLjMtMi43LTMzLjItNS40LTEwLjQtMi43LTIwLjYtNi4xLTMwLjMtMTAuNi04LjctMy45LTE3LjEtOC40LTI1LTEzLjgtMS44LTEuMy0zLjctMi41LTUuNC00LjEgNi42LTEuMiAxMy0zLjQgMTktNi41IDUuNy0yLjkgMTEtNi43IDE1LjYtMTEuMSAyLjItMi4yIDQuMy00LjYgNi4yLTcuMS0zLjQgMi4xLTYuOSA0LjItMTAuNiA1LjgtNC40IDIuMi05LjEgMy44LTEzLjggNS01LjcgMS41LTExLjcgMS43LTE3LjYgMS4xLTguMS0xLTE1LjktNC4zLTIyLjUtOS00LjMtMi45LTguMi02LjQtMTItMTAuMS05LjktMTAuMi0xOC4yLTIxLjgtMjUuNy0zMy45LTMuOS02LjMtNy41LTEyLjctMTEuMS0xOS4yLTEtMi0yLjEtNC4xLTMuMi02LjEgMi44IDIuOSA1LjYgNiA4LjQgOC45IDE5LjIgMTkuMiAzNy42IDMyLjMgNTMuNyAzNS41IDMuMSAuNyA2LjMgLjUgOS41IC44IDIuOCAuMyA1LjYgLjIgOC4zIC4zIDUgLjEgMTAuMSAwIDE1LjItLjIgMy42LS4yIDcuMy0uNyAxMC45LTEuMSAyLjEtLjIgNC4xLS43IDYuMS0xLjIgMy45LTEgOC4xLTEgMTEuOCAuNiA0LjggMS44IDguNCA1LjYgMTEuNCA5LjcgMi4yIDMgNC4xIDYuMiA1LjcgOS42IDEuMiAyLjQgMi41IDQuOCAzLjYgNy4zIDEgMi4yIDIuMiA0LjQgMy40IDYuNSAuNyAxIDEuNCAyLjIgMi42IDIuNiAxLjEtLjggMS43LTEuOSAyLjMtMyAyLjEtNC4yIDMuNC04LjYgNC45LTEzIDItNi42IDMuOC0xMy4zIDUuMi0yMCAyLjItOS4zIDMuMi0xOC43IDQuNS0yOC4xIC42LTQgLjgtOCAxLjMtMTIgLjktMTAuNiAxLjktMjEuMyAyLjItMzEuOSAuMS0xLjkgLjItMy43IC4zLTUuNiAwLTQuMyAuMi04LjcgLjItMTMgMC0yLjQgMC00LjggMC03LjEgMC01LjEtLjItMTAuMS0uMi0xNS4yLS4yLTYuNi0uNy0xMy4yLTEuMy0xOS44LS43LTUuOS0xLjUtMTEuOC0zLjEtMTcuNS0yLTcuNy01LjYtMTUtOS44LTIxLjgtMy4yLTUuMS02LjgtOS45LTExLjEtMTQtMy45LTMuOS04LjYtNy4xLTEzLjktOC40LTEuNS0uNC0zLjEtLjQtNC42LS42IC4xLTMgLjctNS45IDEuMy04LjggMS42LTcuNyAzLjgtMTUuMyA2LjgtMjIuNiAxLjUtNCAzLjQtNy45IDUuNC0xMS43IDMuNC02LjYgNy42LTEyLjggMTIuNS0xOC41em0zMS4zIDEuN2MuNC0uMSAuNy0uMSAxLjEtLjIgLjIgMS44IC4xIDMuNiAuMSA1LjRsMCAzOC4xYzAgMS43IC4xIDMuNS0uMiA1LjItLjQgMC0uNyAwLTEuMSAwLS45LTMuOC0xLjctNy42LTIuNi0xMS4zLS40LTEuNS0uNi0zLjEtMS4xLTQuNi0xLjctLjItMy40LS4yLTUuMi0uMi01LjEgMC0xMC4xIDAtMTUuMiAwLTEuNyAwLTMuMyAuMS01IDAgMC0uNC0uMy0uOSAuMi0xLjIgMS4zLS43IDIuNy0uOSA0LjEtMS40IDMuNC0xLjEgNi45LTIuMiAxMC4zLTMuMyAxLjQtLjUgMi45LS43IDQuMi0xLjUgMC0uNiAwLTEuMSAwLTEuNy0xLjItLjYtMi41LS45LTMuOC0xLjMtMy4xLTEtNi4zLTItOS40LTMtMS44LS42LTMuNy0xLTUuNC0xLjggMC0uNC0uMS0uNy0uMS0xLjEgNS4xLS4yIDEwLjIgLjEgMTUuMy0uMSAzLjQtLjEgNi43IC4xIDEwLjEtLjEgLjEtLjQgLjMtLjggLjQtMS4yIDEuMS00LjkgMi4zLTkuOCAzLjQtMTQuN3ptNi0uMmMuNCAwIC43IC4xIDEuMSAuMiAxIDMuOCAxLjcgNy44IDIuNyAxMS42IC40IDEuNCAuNiAyLjkgMSA0LjMgMi41IC4yIDUuMSAwIDcuNiAwIDUuMiAuMSAxMC4zIC4xIDE1LjUgLjEgLjggMCAxLjUgMCAyLjMgLjEgMCAuNC0uMSAuNy0uMSAxLjEtMS44IC44LTMuOCAxLjItNS43IDEuOS0zLjcgMS4yLTcuNSAyLjQtMTEuMiAzLjYtLjYgLjItMS4xIC40LTEuNyAuNi0uMiAuNi0uMiAxLjEtLjEgMS43IC45IC41IDEuOCAuOCAyLjggMS4xIDQuOSAxLjUgOS43IDMuMSAxNC42IDQuNiAuNCAuMSAuOCAuMyAxLjEgLjUgLjQgLjMgLjIgLjggLjIgMS4yLTEuNyAuMS0zLjMgMC01IDAtNS4yIDAtMTAuMyAwLTE1LjUgMC0xLjYgMC0zLjIgMC00LjggLjItLjUgMS43LS43IDMuNC0xLjIgNS4xLS45IDMuNi0xLjUgNy4yLTIuNSAxMC44LS40IDAtLjcgMC0xLjEgLjEtLjMtMS43LS4yLTMuNS0uMi01LjJsMC0zOC4xYzAtMS44LS4xLTMuNiAuMS01LjR6bS0xODYgNDVjMS4xLTIuMiAyLjEtNC40IDMuNC02LjUtMS44IDcuNi0yLjkgMTUuMy0zLjYgMjMtLjggNy43LS44IDE1LjUtLjUgMjMuMiAxLjEgMTkuOSA1LjUgMzkuOCAxNC4yIDU3LjkgMyA2IDYuNCAxMS44IDEwLjUgMTcuMSA2LjEgNy41IDEyLjUgMTQuOCAxOS44IDIxLjEgNC44IDQuMSAxMCA3LjggMTUuNSAxMC44IDMuMyAxLjcgNi41IDMuNCA5LjkgNC43IDUgMiAxMC4yIDMuNiAxNS40IDQuOSAzLjggMSA3LjggMS40IDExLjUgMi43IDUgMS42IDkuNSA0LjYgMTMgOC40IDQuOSA1LjIgOC4xIDExLjkgMTAuMiAxOC43IDEgMi45IDEuNiA1LjkgMi4yIDguOSAuMiAuOCAuMiAxLjUgLjIgMi4zLTYuNSAyLjgtMTMuMyA1LjEtMjAuMyA2LjItNC4xIC44LTguMyAxLTEyLjUgMS4xLTEwLjIgLjItMjAuNS0xLjgtMzAuMS01LjEtMy43LTEuNC03LjUtMi45LTExLTQuNy04LjEtMy44LTE1LjYtOC43LTIyLjUtMTQuNS0yLjktMi42LTUuOC01LjEtOC40LTgtOS4yLTkuOC0xNi4zLTIxLjQtMjEuOC0zMy43LTIuNC01LjUtNC42LTExLjItNi40LTE3LTEuMi0zLjktMi40LTcuOS0zLjMtMTEuOS0uNy0yLjktMS4yLTUuOS0xLjktOC45LS41LTIuMS0uNy00LjMtMS02LjUtLjgtNS40LTEuMy0xMC45LTEuMy0xNi40IC4xLTYuMiAuMi0xMi40IDEuMS0xOC41IC40LTIuOSAuNy01LjcgMS4yLTguNiAxLTUuNyAyLjEtMTEuNCAzLjctMTYuOSAzLjEtMTEuNiA3LjUtMjMgMTIuNy0zMy44em0zNjMuNy02LjRjMS4xIDEuNyAxLjkgMy41IDIuOCA1LjMgMi4xIDQuNSA0LjIgOC45IDYgMTMuNSA3LjYgMTguOCAxMi4zIDM4LjggMTMgNTkgMCAxLjggLjEgMy41IC4xIDUuMyAuMSA5LjYtMS4zIDE5LjEtMy4yIDI4LjUtLjcgMy42LTEuNSA3LjItMi42IDEwLjctNCAxNC43LTEwIDI5LTE4LjQgNDEuOC04LjIgMTIuNi0xOSAyMy41LTMxLjggMzEuNC01LjcgMy42LTExLjggNi42LTE4IDkuMi01LjggMi4yLTExLjcgNC0xNy44IDUuMS02LjQgMS0xMi45IDEuNS0xOS40IDEuMi03LjktLjUtMTUuOC0yLjEtMjMuMi00LjgtMS45LS44LTMuOS0xLjUtNS44LTIuMy0uMi0xLjUgLjItMyAuNS00LjUgMS4yLTUuNyAzLTExLjQgNS43LTE2LjYgMi40LTQuNSA1LjUtOC43IDkuNS0xMS45IDIuNC0yLjEgNS4yLTMuNiA4LjItNC44IDMuNi0xLjUgNy41LTIgMTEuMi0yLjggNy4yLTEuNyAxNC40LTMuOSAyMS4yLTcgMTAuMy00LjcgMTkuNy0xMS40IDI3LjYtMTkuNSAxLjYtMS42IDMuMi0zLjIgNC43LTQuOSAzLjQtMy44IDYuNy03LjYgOS44LTExLjUgNy41LTEwLjEgMTIuOC0yMS42IDE2LjctMzMuNSAxLjYtNS4zIDMuMi0xMC42IDQuMi0xNi4xIC42LTIuOSAxLTUuOCAxLjUtOC43IC45LTYuMSAxLjYtMTIuMiAxLjctMTguNCAuMS02LjYgLjEtMTMuMy0uNS0xOS45LS43LTgtMS45LTE2LTMuNy0yMy44eiJdfSxqb3Q9e3ByZWZpeDoiZmFiIixpY29uTmFtZToic3VzZSIsaWNvbjpbNjQwLDUxMixbXSwiZjdkNiIsIk02MDQuNSAyMTBhMTAuNCAxMC40IDAgMSAxIC0xMS40LTE3LjQgMTAuNCAxMC40IDAgMSAxIDExLjQgMTcuNHpNNjIxIDE4Ny4yYTM4LjUgMzguNSAwIDEgMSAtNzUgMTcuNiAzOC41IDM4LjUgMCAxIDEgNzUtMTcuNnpNNDMzLjcgMzM2LjdjMy4yIDQuNiA1LjggOSA3LjMgMTMuNCAxIDMuMSAyLjQgNy4zIDUuNSA4LjkgLjIgLjEgLjMgLjIgLjUgLjIgNS43IDIuMSAyMC4zIDEuNyAyMC4zIDEuN2wyNi44IDBjMi4zIDAgMjIuNCAwIDIxLjktMi4zLTIuNC0xMC44LTE0LjktMTIuNy0yNC40LTE4LjMtOC43LTUuMi0xNy0xMS4xLTIwLjgtMjEuMy0yLTUuMi0uOC0xNy40IDIuNi0yMS44IDIuNS0zLjIgNi4xLTUuMyAxMC02LjIgNC4zLS45IDguOC0uMSAxMy4xIC4zIDUuMyAuNSAxMC42IDEuNSAxNS45IDIuMiAxMC4zIDEuMyAyMC42IDEuOSAzMSAxLjYgMTcuMS0uNSAzNC4yLTMuMiA1MC40LTguNyAxMS4zLTMuOCAyMi40LTguOSAzMi0xNi4xIDEwLjktOC4xIDguMS03LjQtMy02LjItMTMuMyAxLjQtMjYuNiAxLjYtMzkuOSAuOC0xMi40LS43LTI0LjctMi4yLTM1LjktNy45LTguOC00LjYtMTYuNC05LjEtMjMuNC0xNi4yLTEtMS4xLTEuNy00LjIgLjItNi4yIDEuOS0xLjkgNS44LS44IDcgLjIgMTIuMiAxMC4yIDMwLjUgMTguNiA0OS4zIDE5LjUgMTAuMiAuNSAyMC4xIC43IDMwLjQgLjMgNS4xLS4yIDEyLjgtLjIgMTcuOS0uMyAyLjYgMCA5LjggLjcgMTEuMi0yLjEgLjQtLjggLjQtMS44IC4zLTIuNy0xLjUtNDAuOS00LjUtODYuOS00Ny4zLTEwNi41LTMxLjktMTQuNi03OS43LTM3LjItOTkuOS00Ni42LTQuNy0yLjItMTAuMiAxLjMtMTAuMiA2LjUgMCAxMy42IC43IDMzLjMgLjcgNTEuMS05LjctOS45LTI2LTE2LjEtMzguNC0yMS44LTE0LjEtNi41LTI4LjctMTItNDMuNS0xNi42LTI5LjgtOS4yLTYwLjctMTQuOS05MS43LTE4LTM1LjItMy41LTcxLTEuOC0xMDUuNyA1LjMtNTYuOSAxMi4yLTExMy4xIDM5LjctMTU1LjcgNzkuOC0yNi4xIDI0LjYtNDYuNiA1OS43LTQ4IDk1LjItMiA1MC4zIDEyLjEgNzcuMyAzOCAxMDUuMiA0MS4zIDQ0LjQgMTMwLjIgNTAuNiAxNjYuMi0yIDE2LjItMjMuNyAxOS43LTU1LjggOC04Mi0xMS44LTI2LjItMzguOC00NS4xLTY3LjQtNDYtMjIuMi0uNy00NS45IDEwLjYtNTQuNSAzMS4xLTYuNSAxNS43LTIuOCAzNS4xIDkgNDcuMyA0LjYgNC44IDEwLjkgOC43IDE3LjcgNy4xIDQtLjkgNy40LTMuOSA4LTggLjktNi00LjQtOS45LTcuNi0xNC41LTUuOC04LjMtNC43LTIwLjkgMi43LTI3LjkgNi4yLTYgMTUuMy03LjggMjMuOS03LjcgOCAwIDE2LjIgMS40IDIzLjEgNS41IDkuNyA1LjcgMTYuMiAxNi4yIDE4LjQgMjcuMiA2LjcgMzMtMjAuMiA1OS45LTU2LjYgNjItMTguNiAxLjEtMzcuNi0zLjgtNTIuMS0xNS41LTM2LjktMjkuOC00NS45LTkwLjMtMy44LTEyMi43IDQwLTMwLjcgOTAuNC0yMi44IDEyMC4yLTYuOCAyMy44IDEyLjggNDEuNSAzMy42IDU1IDU2LjcgNi43IDExLjYgMTIuNSAyMy43IDE3LjggMzYuMSA1LjEgMTEuOCA5LjkgMjMuOCAyMC4yIDMyLjUgNi44IDUuOCAxNS4yIDUuNiAyNC4xIDUuNmw1MC44IDBjNi45IDAgNS4yLTQuNiAyLjItNy43LTYuNy02LjktMTYuNC04LjQtMjUuNC0xMC45LTIwLjUtNS42LTE4LjQtMzIuOC0xMi43LTMyLjggMTguMyAwIDE4LjkgLjYgMzQuOSAuMyAyMy4yLS4zIDMwLjItMS43IDQ4LjMgNSA5LjcgMy42IDE5IDEzLjEgMjUuMSAyMS43eiJdfSxWb3Q9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiYXBwLXN0b3JlLWlvcyIsaWNvbjpbNDQ4LDUxMixbXSwiZjM3MCIsIk00MDAgMzJMNDggMzJDMjEuNSAzMiAwIDUzLjUgMCA4MEwwIDQzMmMwIDI2LjUgMjEuNSA0OCA0OCA0OGwzNTIgMGMyNi41IDAgNDgtMjEuNSA0OC00OGwwLTM1MmMwLTI2LjUtMjEuNS00OC00OC00OHpNMTI3IDM4NC41Yy01LjUgOS42LTE3LjggMTIuOC0yNy4zIDcuMy05LjYtNS41LTEyLjgtMTcuOC03LjMtMjcuM2wxNC4zLTI0LjdjMTYuMS00LjkgMjkuMy0xLjEgMzkuNiAxMS40TDEyNyAzODQuNXptMTM4LjktNTMuOUw4NCAzMzAuNmMtMTEgMC0yMC05LTIwLTIwczktMjAgMjAtMjBsNTEgMCA2NS40LTExMy4yLTIwLjUtMzUuNGMtNS41LTkuNi0yLjItMjEuOCA3LjMtMjcuMyA5LjYtNS41IDIxLjgtMi4yIDI3LjMgNy4zbDguOSAxNS40IDguOS0xNS40YzUuNS05LjYgMTcuOC0xMi44IDI3LjMtNy4zIDkuNiA1LjUgMTIuOCAxNy44IDcuMyAyNy4zbC04NS44IDE0OC42IDYyLjEgMGMyMC4yIDAgMzEuNSAyMy43IDIyLjcgNDB6bTk4LjEgMGwtMjkgMCAxOS42IDMzLjljNS41IDkuNiAyLjIgMjEuOC03LjMgMjcuMy05LjYgNS41LTIxLjggMi4yLTI3LjMtNy4zLTMyLjktNTYuOS01Ny41LTk5LjctNzQtMTI4LjEtMTYuNy0yOS00LjgtNTggNy4xLTY3LjggMTMuMSAyMi43IDMyLjcgNTYuNyA1OC45IDEwMmw1MiAwYzExIDAgMjAgOSAyMCAyMCAwIDExLjEtOSAyMC0yMCAyMHoiXX0sVW90PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6InVsdHJhbHl0aWNzLXlvbG8iLGljb246WzUxMiw1MTIsW10sImU4NmYiLCJNMzgzLjUgMTAuOGM2MS44LS4yIDExMi4zIDUwLjYgMTEyLjMgMTEyLjktLjIgMi43IDAgMC0uMSAzLjNsLjMgLjNjLTEuNSA4OS45LTUzIDE2OC40LTEyNy40IDIwOC41bDAgNTIuOGMwIDYyLjYtNTEuMSAxMTMuNS0xMTMuNyAxMTIuOS02Mi0uNi0xMTEuNC01Mi4yLTExMS40LTExNC4zbDAtNTEuMmMtNDAuNy0yMS45LTc0LjUtNTUuMi05Ny05NS42IDIzLjIgMTYuNSA1MS43IDI2IDgyIDI1LjkgNzguNi0uMiAxNDIuMi02NCAxNDIuMy0xNDIuNSAuMS02Mi4zIDUwLjUtMTEyLjcgMTEyLjktMTEyLjl6bS0yNTUgMjI1LjhhMTEyLjkgMTEyLjkgMCAxIDEgMC0yMjUuOCAxMTIuOSAxMTIuOSAwIDEgMSAwIDIyNS44eiJdfSxRYWU9e3ByZWZpeDoiZmFiIixpY29uTmFtZToic3F1YXJlLWRyaWJiYmxlIixpY29uOls0NDgsNTEyLFsiZHJpYmJibGUtc3F1YXJlIl0sImYzOTciLCJNMTY1LjkgMTMyLjVjLTM4LjMgMTgtNjYuOCA1My4zLTc1LjcgOTUuNyA2LjEgLjEgNjIuNCAuMyAxMjYuNC0xNi43LTIyLjctNDAuMi00Ny4xLTc0LjEtNTAuNy03OXptMjYuMS05LjFjMy44IDUuMSAyOC42IDM4LjkgNTEgODAgNDguNi0xOC4zIDY5LjEtNDUuOSA3MS42LTQ5LjQtMzMuNi0yOS44LTc5LjMtNDEuMS0xMjIuNi0zMC42ek0yNzcuNCAzODJjLTItMTItMTAtNTMuOC0yOS4yLTEwMy42LTU1LjEgMTguOC05My44IDU2LjQtMTA4LjEgODUuNiA0MC41IDMxLjYgOTMuMyAzNi43IDEzNy4zIDE4ek0yMjcuOCAyMzIuNkMxNTkuNiAyNTMgOTMuNCAyNTIuMiA4Ny40IDI1MmwwIDQuMmMwIDM1LjEgMTMuMyA2Ny4xIDM1LjEgOTEuNCAyMi4yLTM3LjkgNjcuMS03Ny45IDExNi41LTkxLjgtMy40LTcuOC03LjItMTUuNS0xMS4xLTIzLjJsLS4xIDB6bTcyLjUgMTM2LjljMzAuNy0yMC43IDUyLjUtNTMuNiA1OC42LTkxLjYtNC42LTEuNS00Mi4zLTEyLjctODUuMS01LjggMTcuOSA0OS4xIDI1LjEgODkuMSAyNi41IDk3LjR6bS0zNC44LTExOWM0NS41LTUuNyA5MC43IDMuNCA5NS4yIDQuNC0uMy0zMi4zLTExLjgtNjEuOS0zMC45LTg1LjEtMi45IDMuOS0yNS44IDMzLjItNzYuMyA1My45IDQuOCA5LjggOC4zIDE3LjggMTIgMjYuOHpNMzg0IDMyTDY0IDMyQzI4LjcgMzIgMCA2MC43IDAgOTZMMCA0MTZjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMzIwIDBjMzUuMyAwIDY0LTI4LjcgNjQtNjRsMC0zMjBjMC0zNS4zLTI4LjctNjQtNjQtNjR6TTIyNCA5NmExNjAgMTYwIDAgMSAxIDAgMzIwIDE2MCAxNjAgMCAxIDEgMC0zMjB6Il19LFdvdD1RYWUsR290PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6InVpa2l0IixpY29uOls0NDgsNTEyLFtdLCJmNDAzIiwiTTQ0My45IDEyOGwwIDI1Ni0yMjUuOSAxMjgtMjE4LTEyOCAwLTIxNC4zIDg3LjYgNDUuMSAwIDExNyAxMzMuNSA3NS41IDEzNS44LTc1LjUgMC0xNTEtMTAxLjEtNTcuNiA4Ny42LTUzLjEgMTAwLjUgNTcuOXpNMzA4LjYgNDkuMWwtODQuOC00OS4xLTg4LjYgNTQuOCA4NiA0Ny4zIDg3LjQtNTN6Il19LFlvdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJzdXBlcnBvd2VycyIsaWNvbjpbNDQ4LDUxMixbXSwiZjJkZCIsIk00NDggMzJjLTgzLjMgMTEtMTY2LjggMjItMjUwIDMzLTkyIDEyLjUtMTYzLjMgODYuNy0xNjkgMTgwLTMuMyA1NS41IDE4IDEwOS41IDU3LjggMTQ4LjJMMCA0ODBjODMuMy0xMSAxNjYuNS0yMiAyNDkuOC0zMyA5MS44LTEyLjUgMTYzLjMtODYuOCAxNjguNy0xNzkuOCAzLjUtNTUuNS0xOC0xMDkuNS01Ny43LTE0OC4yTDQ0OCAzMnpNMzY4LjMgMjY0LjNjLTQuMiA3OS41LTc0IDEzOS4yLTE1Mi44IDEzNC41LTc5LjUtNC43LTE0MC43LTcxLTEzNi4zLTE1MSA0LjUtNzkuMiA3NC4zLTEzOS4zIDE1My0xMzQuNSA3OS4zIDQuNyAxNDAuNSA3MSAxMzYuMSAxNTF6Il19LFpvdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJ5b3V0dWJlIixpY29uOls1NzYsNTEyLFs2MTgwMl0sImYxNjciLCJNNTQ5LjcgMTI0LjFDNTQzLjUgMTAwLjQgNTI0LjkgODEuOCA1MDEuNCA3NS41IDQ1OC45IDY0IDI4OC4xIDY0IDI4OC4xIDY0UzExNy4zIDY0IDc0LjcgNzUuNUM1MS4yIDgxLjggMzIuNyAxMDAuNCAyNi40IDEyNC4xIDE1IDE2NyAxNSAyNTYuNCAxNSAyNTYuNHMwIDg5LjQgMTEuNCAxMzIuM2M2LjMgMjMuNiAyNC44IDQxLjUgNDguMyA0Ny44IDQyLjYgMTEuNSAyMTMuNCAxMS41IDIxMy40IDExLjVzMTcwLjggMCAyMTMuNC0xMS41YzIzLjUtNi4zIDQyLTI0LjIgNDguMy00Ny44IDExLjQtNDIuOSAxMS40LTEzMi4zIDExLjQtMTMyLjNzMC04OS40LTExLjQtMTMyLjN6TTIzMi4yIDMzNy42bDAtMTYyLjQgMTQyLjcgODEuMi0xNDIuNyA4MS4yeiJdfSxYb3Q9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiZW1iZXIiLGljb246WzY0MCw1MTIsW10sImY0MjMiLCJNNjM5LjkgMjU0LjZjLTEuMS0xMC43LTEwLjctNi44LTEwLjctNi44cy0xNS42IDEyLjEtMjkuMyAxMC43Yy0xMy43LTEuMy05LjQtMzItOS40LTMyczMtMjguMS01LjEtMzAuNGMtOC4xLTIuNC0xOCA3LjMtMTggNy4zcy0xMi40IDEzLjctMTguMyAzMS4ybC0xLjYgLjVzMS45LTMwLjYtLjMtMzcuNmMtMS42LTMuNS0xNi40LTMuMi0xOC44IDNzLTE0LjIgNDkuMi0xNSA2Ny4yYzAgMC0yMy4xIDE5LjYtNDMuMyAyMi44cy0yNS05LjQtMjUtOS40IDU0LjgtMTUuMyA1Mi45LTU5LjEtNDQuMi0yNy42LTQ5LTI0Yy00LjYgMy41LTI5LjQgMTguNC0zNi42IDU5LjctLjIgMS40LS43IDcuNS0uNyA3LjVzLTIxLjIgMTQuMi0zMyAxOGMwIDAgMzMtNTUuNi03LjMtODAuOS0xMS40LTYuOC0yMS4zLS41LTI3LjIgNS4zIDEzLjYtMTcuMyA0Ni40LTY0LjIgMzYuOS0xMDUuMi01LjgtMjQuNC0xOC0yNy4xLTI5LjItMjMuMS0xNyA2LjctMjMuNSAxNi43LTIzLjUgMTYuN3MtMjIgMzItMjcuMSA3OS41LTEyLjYgMTA1LjEtMTIuNiAxMDUuMS0xMC41IDEwLjItMjAuMiAxMC43LTUuNC0yOC43LTUuNC0yOC43IDcuNS00NC42IDctNTIuMS0xLjEtMTEuNi05LjktMTQuMmMtOC45LTIuNy0xOC41IDguNi0xOC41IDguNnMtMjUuNSAzOC43LTI3LjcgNDQuNmwtMS4zIDIuNC0xLjMtMS42czE4LTUyLjcgLjgtNTMuNS0yOC41IDE4LjgtMjguNSAxOC44LTE5LjYgMzIuOC0yMC40IDM2LjVsLTEuMy0xLjZzOC4xLTM4LjIgNi40LTQ3LjZjLTEuNi05LjQtMTAuNS03LjUtMTAuNS03LjVzLTExLjMtMS4zLTE0LjIgNS45LTEzLjcgNTUuMy0xNSA3MC43YzAgMC0yOC4yIDIwLjItNDYuOCAyMC40LTE4LjUgLjMtMTYuNy0xMS44LTE2LjctMTEuOHM2OC0yMy4zIDQ5LjQtNjkuMmMtOC4zLTExLjgtMTgtMTUuNS0zMS43LTE1LjMtMTMuNyAuMy0zMC4zIDguNi00MS4zIDMzLjMtNS4zIDExLjgtNi44IDIzLTcuOCAzMS41IDAgMC0xMi4zIDIuNC0xOC44LTIuOXMtMTAgMC0xMCAwLTExLjIgMTQtLjEgMTguMyAyOC4xIDYuMSAyOC4xIDYuMWMxLjYgNy41IDYuMiAxOS41IDE5LjYgMjkuNyAyMC4yIDE1LjMgNTguOC0xLjMgNTguOC0xLjNsMTUuOS04LjhzLjUgMTQuNiAxMi4xIDE2LjcgMTYuNCAxIDM2LjUtNDcuOWMxMS44LTI1IDEyLjYtMjMuNiAxMi42LTIzLjZsMS4zLS4zcy05LjEgNDYuOC01LjYgNTkuN0MxODcuNyAzMTkuNCAyMDMgMzE4IDIwMyAzMThzOC4zIDIuNCAxNS0yMS4yIDE5LjYtNDkuOSAxOS42LTQ5LjlsMS42IDBzLTUuNiA0OC4xIDMgNjMuNyAzMC45IDUuMyAzMC45IDUuMyAxNS42LTcuOCAxOC0xMC4yYzAgMCAxOC41IDE1LjggNDQuNiAxMi45IDU4LjMtMTEuNSA3OS4xLTI1LjkgNzkuMS0yNS45czEwIDI0LjQgNDEuMSAyNi43YzM1LjUgMi43IDU0LjgtMTguNiA1NC44LTE4LjZzLS4zIDEzLjUgMTIuMSAxOC42IDIwLjctMjIuOCAyMC43LTIyLjhsMjAuNy01Ny4yIDEuOSAwczEuMSAzNy4zIDIxLjUgNDMuMiA0Ny0xMy43IDQ3LTEzLjcgNi40LTMuNSA1LjMtMTQuM3ptLTU3OCA1LjNjLjgtMzIgMjEuOC00NS45IDI5LTM5IDcuMyA3IDQuNiAyMi05LjEgMzEuNC0xMy43IDkuNS0xOS45IDcuNi0xOS45IDcuNnpNMzM0LjcgMTM2LjFzMTkuMS00OS43IDIzLjYtMjUuNS00MCA5Ni4yLTQwIDk2LjJjLjUtMTYuMiAxNi40LTcwLjcgMTYuNC03MC43em0yMi44IDEzOC40Yy0xMi42IDMzLTQzLjMgMTkuNi00My4zIDE5LjZzLTMuNS0xMS44IDYuNC00NC45IDMzLjMtMjAuMiAzMy4zLTIwLjIgMTYuMiAxMi40IDMuNiA0NS41em04NC42LTE0LjZzLTMtMTAuNSA4LjEtMzAuNmMxMS0yMC4yIDE5LjYtOS4xIDE5LjYtOS4xczkuNCAxMC4yLTEuMyAyNS41LTI2LjQgMTQuMi0yNi40IDE0LjJ6Il19LFFvdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJib290c3RyYXAiLGljb246WzU3Niw1MTIsW10sImY4MzYiLCJNMzMzLjUgMjAxLjRjMC0yMi4xLTE1LjYtMzQuMy00My0zNC4zbC01MC40IDAgMCA3MS4yIDQyLjUgMGMzMi44LS4xIDUwLjktMTMuMyA1MC45LTM2Ljl6TTUxNyAxODguNmMtOS41LTMwLjktMTAuOS02OC44LTkuOC05OC4xIDEuMS0zMC41LTIyLjctNTguNS01NC43LTU4LjVMMTIzLjcgMzJjLTMyLjEgMC01NS44IDI4LjEtNTQuNyA1OC41IDEgMjkuMy0uMyA2Ny4yLTkuOCA5OC4xLTkuNiAzMS0yNS43IDUwLjYtNTIuMiA1My4xbDAgMjguNWMyNi40IDIuNSA0Mi42IDIyLjEgNTIuMiA1My4xIDkuNSAzMC45IDEwLjkgNjguOCA5LjggOTguMS0xLjEgMzAuNSAyMi43IDU4LjUgNTQuNyA1OC41bDMyOC43IDBjMzIuMSAwIDU1LjgtMjguMSA1NC43LTU4LjUtMS0yOS4zIC4zLTY3LjIgOS44LTk4LjEgOS42LTMxIDI1LjctNTAuNiA1Mi4xLTUzLjFsMC0yOC41Yy0yNi4zLTIuNS00Mi41LTIyLjEtNTItNTMuMXpNMzAwLjIgMzc1LjFsLTk3LjkgMCAwLTIzOC4zIDk3LjQgMGM0My4zIDAgNzEuNyAyMy40IDcxLjcgNTkuNCAwIDI1LjMtMTkuMSA0Ny45LTQzLjUgNTEuOGwwIDEuM2MzMy4yIDMuNiA1NS41IDI2LjYgNTUuNSA1OC4zIDAgNDIuMS0zMS4zIDY3LjUtODMuMiA2Ny41em0tMTAtMTA4LjdsLTUwLjEgMCAwIDc4LjQgNTIuMyAwYzM0LjIgMCA1Mi4zLTEzLjcgNTIuMy0zOS41IDAtMjUuNy0xOC42LTM4LjktNTQuNS0zOC45eiJdfSxKb3Q9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiaXR1bmVzIixpY29uOls0NDgsNTEyLFtdLCJmM2I0IiwiTTIyMy42IDgwLjNhMTcxLjMgMTcxLjMgMCAxIDAgLjIgMzQyLjUgMTcxLjMgMTcxLjMgMCAxIDAgLS4yLTM0Mi41em03OS40IDI0MGMtMy4yIDEzLjYtMTMuNSAyMS4yLTI3LjMgMjMuOC0xMi4xIDIuMi0yMi4yIDIuOC0zMS45LTUtMTEuOC0xMC0xMi0yNi40LTEuNC0zNi44IDguNC04IDIwLjMtOS42IDM4LTEyLjggMy0uNSA1LjYtMS4yIDcuNy0zLjcgMy4yLTMuNiAyLjItMiAyLjItODAuOCAwLTUuNi0yLjctNy4xLTguNC02LjEtNCAuNy05MS45IDE3LjEtOTEuOSAxNy4xLTUgMS4xLTYuNyAyLjYtNi43IDguMyAwIDExNi4xIC41IDExMC44LTEuMiAxMTguNS0yLjEgOS03LjYgMTUuOC0xNC45IDE5LjYtOC4zIDQuNi0yMy40IDYuNi0zMS40IDUuMi0yMS40LTQtMjguOS0yOC43LTE0LjQtNDIuOSA4LjQtOCAyMC4zLTkuNiAzOC0xMi44IDMtLjUgNS42LTEuMiA3LjctMy43IDUtNS43IC45LTEyNyAyLjYtMTMzLjcgLjQtMi42IDEuNS00LjggMy41LTYuNCAyLjEtMS43IDUuOC0yLjcgNi43LTIuNyAxMDEtMTkgMTEzLjMtMjEuNCAxMTUuMS0yMS40IDUuNy0uNCA5IDMgOSA4LjctLjEgMTcwLjYgLjQgMTYxLjQtMSAxNjcuNnpNMzQ1LjIgMzJMMTAyLjggMzJDNDUuOSAzMiAwIDc3LjkgMCAxMzQuOEwwIDM3Ny4yQzAgNDM0LjEgNDUuOSA0ODAgMTAyLjggNDgwbDI0Mi40IDBjNTcgMCAxMDIuOC00NS45IDEwMi44LTEwMi44bDAtMjQyLjRDNDQ4IDc3LjkgNDAyLjEgMzIgMzQ1LjIgMzJ6TTIyMy42IDU5YTE5Mi41IDE5Mi41IDAgMSAxIDAgMzg1IDE5Mi41IDE5Mi41IDAgMSAxIDAtMzg1eiJdfSxKYWU9e3ByZWZpeDoiZmFiIixpY29uTmFtZToic3F1YXJlLXhpbmciLGljb246WzQ0OCw1MTIsWyJ4aW5nLXNxdWFyZSJdLCJmMTY5IiwiTTQ0OCA5NmMwLTM1LjMtMjguNy02NC02NC02NEw2NCAzMkMyOC43IDMyIDAgNjAuNyAwIDk2TDAgNDE2YzAgMzUuMyAyOC43IDY0IDY0IDY0bDMyMCAwYzM1LjMgMCA2NC0yOC43IDY0LTY0bDAtMzIwek05My44IDMyMC4yYy01LjUgMC04LjctNS4zLTYtMTAuM2w0OS4zLTg2LjdjLjEgMCAuMS0uMSAwLS4ybC0zMS40LTU0Yy0zLTUuNiAuMi0xMC4xIDYtMTAuMWw0Ni42IDBjNS4yIDAgOS41IDIuOSAxMi45IDguN2wzMS45IDU1LjNjLTEuMyAyLjMtMTggMzEuNy01MC4xIDg4LjItMy41IDYuMi03LjcgOS4xLTEyLjYgOS4xbC00Ni42IDB6bTE2My41LTMzLjRsMCAuMiA2NS41IDExOWMyLjggNS4xIC4xIDEwLjEtNiAxMC4xbC00Ni42IDBjLTUuNSAwLTkuNy0yLjktMTIuOS04LjdsLTY2LTEyMC4zYzEuOC0zLjIgMjIuOS00MC40IDYzLjMtMTExLjYgMTEuNy0yMC43IDI1LjEtNDQuMyA0MC4xLTcwLjggMy4zLTUuOCA3LjQtOC43IDEyLjUtOC43bDQ2LjkgMGM1LjctLjEgOC44IDQuNyA2IDEwTDI1Ny4zIDI4Ni44eiJdfSxLb3Q9SmFlLGUydD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJjc3MzLWFsdCIsaWNvbjpbMzg0LDUxMixbXSwiZjM4YiIsIk0wIDMyTDM0LjkgNDI3LjggMTkyIDQ4MCAzNDkuMSA0MjcuOCAzODQgMzIgMCAzMnptMzEzLjEgODBsLTQuOCA0Ny4zLTExNS4zIDQ5LjMtLjMgLjEgMTExLjUgMC0xMi44IDE0Ni42LTk4LjIgMjguNy05OC44LTI5LjItNi40LTczLjkgNDguOSAwIDMuMiAzOC4zIDUyLjYgMTMuMyA1NC43LTE1LjQgMy43LTYxLjYtMTY2LjMtLjUgMC0uMS0uMiAuMS0zLjYtNDYuMyAxMTIuMS00Ni43IDYuNS0yLjctMTIyLjkgMC01LjgtNDcuMyAyNDIuMiAweiJdfSx0MnQ9e3ByZWZpeDoiZmFiIixpY29uTmFtZToic3F1YXJlc3BhY2UiLGljb246WzUxMiw1MTIsW10sImY1YmUiLCJNMTg2LjEgMzQzLjNjLTkuNyA5LjctOS43IDI1LjMgMCAzNC45czI1LjMgOS42IDM0LjkgMEwzNzguMyAyMjEuMWMxOS4zLTE5LjMgNTAuNi0xOS4zIDY5LjkgMHMxOS4zIDUwLjYgMCA2OS45TDI5NCA0NDUuMWMxOS4zIDE5LjMgNTAuNSAxOS4zIDY5LjggMGwwIDAgMTE5LjMtMTE5LjJjMzguNi0zOC42IDM4LjYtMTAxLjEgMC0xMzkuNy0zOC42LTM4LjYtMTAxLjItMzguNi0xMzkuNyAwTDE4Ni4xIDM0My4zek00MzAuNyAyMzguNWMtOS43LTkuNy0yNS4zLTkuNy0zNC45IDBMMjM4LjUgMzk1LjdjLTE5LjMgMTkuMy01MC41IDE5LjMtNjkuOCAwbDAgMGMtOS42LTkuNi0yNS4zLTkuNy0zNC45IDBsMCAwYy05LjcgOS42LTkuNyAyNS4zIDAgMzQuOWwwIDBjMzguNiAzOC42IDEwMS4xIDM4LjYgMTM5LjcgMEw0MzAuNyAyNzMuNWM5LjYtOS43IDkuNi0yNS4zIDAtMzQuOXptLTI2MiA4Ny4zTDMyNS45IDE2OC43YzkuNi05LjYgOS42LTI1LjMgMC0zNC45LTkuNi05LjYtMjUuMy05LjYtMzQuOSAwTDEzMy43IDI5MC45Yy0xOS4zIDE5LjMtNTAuNiAxOS4zLTY5LjkgMGwwIDBjLTE5LjMtMTkuMy0xOS4zLTUwLjUgMC02OS44bDAgMCAxNTQuMi0xNTQuMmMtMTkuMy0xOS4zLTUwLjUtMTkuMy02OS44IDBsMCAwLTExOS4yIDExOS4zYy0zOC42IDM4LjYtMzguNiAxMDEuMSAwIDEzOS43IDM4LjYgMzguNiAxMDEuMSAzOC42IDEzOS43IDB6TTgxLjMgMjczLjVjOS42IDkuNiAyNS4zIDkuNiAzNC45IDBMMjczLjUgMTE2LjNjMTkuMy0xOS4zIDUwLjYtMTkuMyA2OS44IDBsMCAwYzkuNyA5LjYgMjUuMyA5LjYgMzQuOSAwczkuNi0yNS4zIDAtMzQuOWMtMzguNi0zOC42LTEwMS4xLTM4LjYtMTM5LjcgMEw4MS4zIDIzOC41Yy05LjYgOS42LTkuNiAyNS4zIDAgMzQuOWwwIDB6Il19LHIydD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJ0cmVsbG8iLGljb246WzQ0OCw1MTIsW10sImYxODEiLCJNMzkyLjMgMzJMNTYuMSAzMmMtMzEgMC01Ni4xIDI1LjEtNTYuMSA1Ni0uMSAwIDAtNCAwIDMzNiAwIDMwLjkgMjUuMSA1NiA1NiA1NmwzMzYuMiAwYzMwLjgtLjIgNTUuNy0yNS4yIDU1LjctNTZsMC0zMzZjLjEtMzAuOC0yNC44LTU1LjgtNTUuNi01NnpNMTk3IDM3MS4zYy0uMiAxNC43LTEyLjEgMjYuNi0yNi45IDI2LjZsLTgyLjcgMGMtMTQuOCAuMS0yNi45LTExLjgtMjctMjYuNmwwLTI1NC4yYzAtMTQuOCAxMi0yNi45IDI2LjktMjYuOWw4Mi45IDBjMTQuOCAwIDI2LjkgMTIgMjYuOSAyNi45bDAgMjU0LjItLjEgMHptMTkzLjEtMTEyYzAgMTQuOC0xMiAyNi45LTI2LjkgMjYuOWwtODEgMGMtMTQuOCAwLTI2LjktMTItMjYuOS0yNi45bDAtMTQyLjFjMC0xNC44IDEyLTI2LjkgMjYuOC0yNi45bDgxLjEgMGMxNC44IDAgMjYuOSAxMiAyNi45IDI2LjlsMCAxNDIuMXoiXX0saTJ0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6InZpYWRlbyIsaWNvbjpbNDQ4LDUxMixbXSwiZjJhOSIsIk0yNzYuNCAxNTAuNWwwIC43Yy0xNy45LTUyLjYtNDIuNi0xMDMuNC03MC44LTE1MS4yIDQzLjMgMjkuMiA2NyAxMDAgNzAuOCAxNTAuNXptMzIuNyAxMjEuN2M3LjYgMTguMiAxMSAzNy41IDExIDU3IDAgNzcuNy01Ny44IDE0MS0xMzcuOCAxMzkuNGwzLjgtLjNjNzQuMi00Ni43IDEwOS4zLTExOC42IDEwOS4zLTIwNS4xIDAtMzguMS02LjUtNzUuOS0xOC45LTExMiAxIDExLjcgMSAyMy43IDEgMzUuNCAwIDkxLjgtMTguMSAyNDEuNi0xMTYuNiAyODAtNjUuNy0xMS40LTExMS4zLTY4LjYtMTExLjMtMTM3LjQgMC03NS42IDU3LjQtMTQyLjMgMTM1LjQtMTQyLjMgMTYuOCAwIDMzLjcgMy4xIDQ5LjEgOS42IDEuNy0xNS4xIDYuNS0yOS45IDEzLjQtNDMuMy0xOS45LTcuMi00MS4yLTEwLjctNjIuNS0xMC43LTE2MS41IDAtMjM4LjcgMTk1LjktMTI5LjkgMzEzLjcgNjcuOSA3NC42IDE5MiA3My45IDI1OS44IDAgNTYuNi02MS4zIDYwLjktMTQyLjQgMzYuNC0yMDEtMTIuNyA4LTI3LjEgMTMuOS00Mi4yIDE3ek00MTguMyAxMS43Yy0zMSA2Ni41LTgxLjMgNDcuMi0xMTUuOCA4MC4xLTEyLjQgMTItMjAuNiAzNC0yMC42IDUwLjUgMCAxNC4xIDQuNSAyNy4xIDEyIDM4LjggNDcuNC0xMSA5OC4zLTQ2IDExOC4yLTkwLjctLjcgNS41LTQuOCAxNC40LTcuMiAxOS4yLTIwLjMgMzUuNy02NC42IDY1LjYtOTkuNyA4NC45IDE0LjggMTQuNCAzMy43IDI1LjggNTUgMjUuOCA3OSAwIDExMC4xLTEzNC42IDU4LjEtMjA4LjZ6Il19LGEydD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJzZWFyY2hlbmdpbiIsaWNvbjpbNDQ4LDUxMixbXSwiZjNlYiIsIk0yMTQuNiAxMzAuM2wtNjcuMiAyOC4yIDAtMTE1LjMtNTQuNyAxOTAuMyA1NC43LTI0LjIgMCAxMzAuMyA2Ny4yLTIwOS4zek0xMzEuNCAzMy42bC0xLjMgNC43LTE1LjIgNTIuOUM3NC42IDEwNi43IDQ2IDE0NS44IDQ2IDE5MS41IDQ2IDI0My44IDgwLjMgMjg3LjQgMTI5LjQgMjk3bDAgNTMuNkM1MS41IDM0MC4xLTYgMjcyLjQtNiAxOTEuNi02IDExMS4xIDUzLjggNDQuNCAxMzEuNCAzMy42ek00NDIuOCA0ODAuOGMtMTEuMiAxMS4yLTIzLjEgMTIuMy0yOC42IDEwLjUtNS40LTEuOC0yNy4xLTE5LjktNjAuNC00NC40LTMzLjMtMjQuNi0zMy42LTM1LjctNDMtNTYuNy05LjQtMjAuOS0zMC40LTQyLjYtNTcuNS01Mi40bC05LjctMTQuN2MtMjQuNyAxNi45LTUzIDI2LjktODEuMyAyOC43bDIuMS02LjYgMTUuOS00OS41YzQ2LjUtMTEuOSA4MC45LTU0IDgwLjktMTA0LjIgMC01NC41LTM4LjQtMTAyLjEtOTYtMTA3LjFsMC01Mi4xYzgzLjIgNS4xIDE0OC44IDc0LjUgMTQ4LjggMTU5LjMgMCAzMy42LTExLjIgNjQuNy0yOSA5MC40bDE0LjYgOS42YzkuOCAyNy4xIDMxLjUgNDggNTIuNCA1Ny40czMyLjIgOS43IDU2LjggNDNjMjQuNiAzMy4yIDQyLjcgNTQuOSA0NC41IDYwLjNzLjcgMTcuMy0xMC41IDI4LjV6bS05LjktMTcuOWMwLTQuNC0zLjYtOC04LThzLTggMy42LTggOCAzLjYgOCA4IDggOC0zLjYgOC04eiJdfSxuMnQ9e3ByZWZpeDoiZmFiIixpY29uTmFtZToidW5yZWFsLWVuZ2luZSIsaWNvbjpbNTEyLDUxMixbXSwiZTg1YyIsIk0yNTYgNTEyYTI1NiAyNTYgMCAxIDAgMC01MTIgMjU2IDI1NiAwIDEgMCAwIDUxMnptNjUuNS0xMTMuN2wtMjUuMS0yOC4zLTQyLjQgNDIuNmMtMjQuMS0uMy00Ny45LTYuMi02OS4zLTE3LjJzLTQwLjEtMjYuOS01NC41LTQ2LjNjNC41IDEuNCA5LjIgMi4zIDEzLjkgMi42IDYuOSAuMSAxNC41LTIuNCAxNC41LTE0LjFsMC0xMTUuMWMuMS0zLS41LTUuOS0xLjctOC42cy0zLjEtNS01LjQtNi45LTUtMy4xLTcuOS0zLjctNS45LS41LTguOCAuMmMtMTkuNiA0LjUtMzUuMyA1My41LTM1LjMgNTMuNS0uMi0yMi42IDQuNS00NSAxMy44LTY1LjZzMjMtMzkgNDAuMS01My44YzIyLjUtMTkuNSA1MC4xLTMyLjIgNzkuNi0zNi43LTIxLjQgMTIuMi0zMy41IDMyLjEtMzMuNSA0OC45IDAgMjYuOSAxNi4yIDIzLjYgMjEgMTkuN2wwIDE1NS4zYy44IDEuOSAxLjkgMy44IDMuMiA1LjUgMi4xIDMgNSA1LjQgOC4yIDdzNi45IDIuNSAxMC41IDIuNWMxNi4yIDAgMzcuMy0xOC41IDM3LjMtMTguNWwwLTEyNS43YzAtMTIuOC05LjYtMjguMi0xOS4zLTMzLjUgMCAwIDE3LjktMy4yIDMxLjcgNy40IDIuNi0zLjIgNS4zLTYuMiA4LjItOS4xIDMyLjItMzEuNiA2Mi41LTQwLjYgODcuNy00NS4xIDAgMC00NS45IDM2LjEtNDUuOSA4NC41IDAgMzYgLjkgMTIzLjggLjkgMTIzLjggMTcgMTYuNCA0Mi40LTcuMyA2NS4yLTMwLjgtNC40IDIxLjMtMjQgNzUuOS04Ni42IDEwNS40eiJdfSxvMnQ9e3ByZWZpeDoiZmFiIixpY29uTmFtZToicGF5cGFsIixpY29uOlszODQsNTEyLFtdLCJmMWVkIiwiTTExMS45IDI5NS45Yy0zLjUgMTkuMi0xNy40IDEwOC43LTIxLjUgMTM0LS4zIDEuOC0xIDIuNS0zIDIuNWwtNzQuNiAwYy03LjYgMC0xMy4xLTYuNi0xMi4xLTEzLjlMNTkuMyA0Ni42YzEuNS05LjYgMTAuMS0xNi45IDIwLTE2LjkgMTUyLjMgMCAxNjUuMS0zLjcgMjA0IDExLjQgNjAuMSAyMy4zIDY1LjYgNzkuNSA0NCAxNDAuMy0yMS41IDYyLjYtNzIuNSA4OS41LTE0MC4xIDkwLjMtNDMuNCAuNy02OS41LTctNzUuMyAyNC4yek0zNTcuNiAxNTJjLTEuOC0xLjMtMi41LTEuOC0zIDEuMy0yIDExLjQtNS4xIDIyLjUtOC44IDMzLjYtMzkuOSAxMTMuOC0xNTAuNSAxMDMuOS0yMDQuNSAxMDMuOS02LjEgMC0xMC4xIDMuMy0xMC45IDkuNC0yMi42IDE0MC40LTI3LjEgMTY5LjctMjcuMSAxNjkuNy0xIDcuMSAzLjUgMTIuOSAxMC42IDEyLjlsNjMuNSAwYzguNiAwIDE1LjctNi4zIDE3LjQtMTQuOSAuNy01LjQtMS4xIDYuMSAxNC40LTkxLjMgNC42LTIyIDE0LjMtMTkuNyAyOS4zLTE5LjcgNzEgMCAxMjYuNC0yOC44IDE0Mi45LTExMi4zIDYuNS0zNC44IDQuNi03MS40LTIzLjgtOTIuNnoiXX0sczJ0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6InNxdWFyZS1ibHVlc2t5IixpY29uOls0NDgsNTEyLFtdLCJlNmEzIiwiTTY0IDMyQzI4LjcgMzIgMCA2MC43IDAgOTZMMCA0MTZjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMzIwIDBjMzUuMyAwIDY0LTI4LjcgNjQtNjRsMC0zMjBjMC0zNS4zLTI4LjctNjQtNjQtNjRMNjQgMzJ6TTIyNCAyNDcuNGMxNC41LTMwIDU0LTg1LjggOTAuNy0xMTMuMyAyNi41LTE5LjkgNjkuMy0zNS4yIDY5LjMgMTMuNyAwIDkuOC01LjYgODIuMS04LjkgOTMuOC0xMS40IDQwLjgtNTMgNTEuMi05MCA0NC45IDY0LjcgMTEgODEuMiA0Ny41IDQ1LjYgODQtNjcuNSA2OS4zLTk3LTE3LjQtMTA0LjYtMzkuNmwtLjMtLjljLS45LTIuNi0xLjQtNC4xLTEuOC00LjFzLS45IDEuNS0xLjggNC4xYy0uMSAuMy0uMiAuNi0uMyAuOS03LjYgMjIuMi0zNy4xIDEwOC44LTEwNC42IDM5LjYtMzUuNS0zNi41LTE5LjEtNzMgNDUuNi04NC0zNyA2LjMtNzguNi00LjEtOTAtNDQuOS0zLjMtMTEuNy04LjktODQtOC45LTkzLjggMC00OC45IDQyLjktMzMuNSA2OS4zLTEzLjcgMzYuNyAyNy41IDc2LjIgODMuNCA5MC43IDExMy4zeiJdfSxsMnQ9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiZC1hbmQtZC1iZXlvbmQiLGljb246WzY0MCw1MTIsW10sImY2Y2EiLCJNMzEzLjggMjQxLjVjMTMuOCAwIDIxLTEwLjEgMjQuOC0xNy45LTEtMS4xLTUtNC4yLTcuNC02LjYtMi40IDQuMy04LjIgMTAuNy0xMy45IDEwLjctMTAuMiAwLTE1LjQtMTQuNy0zLjItMjYuNi0uNS0uMi00LjMtMS44LTggMi40IDAtMyAxLTUuMSAyLjEtNi42LTMuNSAxLjMtOS44IDUuNi0xMS40IDcuOSAuMi01LjggMS42LTcuNSAuNi05bC0uMi0uMnMtOC41IDUuNi05LjMgMTQuN2MwIDAgMS4xLTEuNiAyLjEtMS45IC42LS4zIDEuMyAwIC42IDEuOS0uMiAuNi01LjggMTUuNyA1LjEgMjYtLjYtMS42LTEuOS03LjYgMi40LTEuOS0uMyAuMSA1LjggNy4xIDE1LjcgNy4xem01Mi40LTIxLjFjMC00LTQuOS00LjQtNS42LTQuNSAyIDMuOSAuOSA3LjUgLjIgOSAyLjUtLjQgNS40LTEuNiA1LjQtNC41em0xMC4zIDUuMmMwLTYuNC02LjItMTEuNC0xMy41LTEwLjcgOCAxLjMgNS42IDEzLjgtNSAxMS40IDMuNy0yLjYgMy4yLTkuOS0xLjMtMTIuNSAxLjQgNC4yLTMgOC4yLTcuNCA0LjYtMi40LTEuOS04LTYuNi0xMC42LTguNi0yLjQtMi4xLTUuNS0xLTYuNi0xLjgtMS4zLTEuMS0uNS0zLjgtMi4yLTUtMS42LS44LTMtLjMtNC44LTEtMS42LS42LTIuNy0xLjktMi42LTMuNS0yLjUgNC40IDMuNCA2LjMgNC41IDguNSAxIDEuOS0uOCA0LjggNCA4LjUgMTQuOCAxMS42IDkuMSA4IDEwLjQgMTguMSAuNiA0LjMgNC4yIDYuNyA2LjQgNy40LTIuMS0xLjktMi45LTYuNCAwLTkuMyAwIDEzLjkgMTkuMiAxMy4zIDIzLjEgNi40LTIuNCAxLjEtNy0uMi05LTEuOSA3LjcgMSAxNC4yLTQuMSAxNC42LTEwLjZ6bS0zOS40LTE4LjRjMiAuOCAxLjYgLjcgNi40IDQuNSAxMC4yLTI0LjUgMjEuNy0xNS43IDIyLTE1LjUgMi4yLTEuOSA5LjgtMy44IDEzLjgtMi43LTIuNC0yLjctNy41LTYuMi0xMy4zLTYuMi00LjcgMC03LjQgMi4yLTggMS4zLS44LTEuNCAzLjItMy40IDMuMi0zLjQtNS40IC4yLTkuNiA2LjctMTEuMiA1LjktMS4xLS41IDEuNC0zLjcgMS40LTMuNy01LjEgMi45LTkuMyA5LjEtMTAuMiAxMyA0LjYtNS44IDEzLjgtOS44IDE5LjctOS0xMC41IC41LTE5LjUgOS43LTIzLjggMTUuOHptMjQyLjUgNTEuOWMtMjAuNyAwLTQwIDEuMy01MC4zIDIuMWw3LjQgOC4yIDAgNzcuMi03LjQgOC4yYzEwLjQgLjggMzAuOSAyLjEgNTEuNiAyLjEgNDIuMSAwIDU5LjEtMjAuNyA1OS4xLTQ4LjkgMC0yOS4zLTIzLjItNDguOS02MC40LTQ4Ljl6bS0xNS4xIDc1LjZsMC01My4zYzMwLjEtMy4zIDQ2LjggMy44IDQ2LjggMjYuMyAwIDI1LjYtMjEuNCAzMC4yLTQ2LjggMjd6TTMwMS42IDE4MWMtMS0zLjQtLjItNi45IDEuMS05LjQgMSAzIDIuNiA2LjQgNy41IDktLjUtMi40LS4yLTUuNiAuNS04LTEuNC01LjQgMi4xLTkuOSA2LjQtOS45IDYuOSAwIDguNSA4LjggNC43IDE0LjQgMi4xIDMuMiA1LjUgNS42IDcuNyA3LjggMy4yLTMuNyA1LjUtOS41IDUuNS0xMy44IDAtOC4yLTUuNS0xNS45LTE2LjctMTYuNS0yMC0uOS0yMC4yIDE2LjYtMjAgMTguOSAuNSA1LjIgMy40IDcuOCAzLjMgNy41em0tLjQgNmMtLjUgMS44LTcgMy43LTEwLjIgNi45IDQuOC0xIDctLjIgNy44IDEuOCAuNSAxLjQtLjIgMy40LS41IDUuNiAxLjYtMS44IDctNS41IDExLTYuMi0xLS4zLTMuNC0uOC00LjMtLjggMi45LTMuNCA5LjMtNC41IDEyLjgtMy43LTIuMi0uMi02LjcgMS4xLTguNSAyLjYgMS42IC4zIDMgLjYgNC4zIDEuMS0yLjEgLjgtNC44IDMuNC01LjggNi4xIDctNSAxMy4xIDUuMiA3IDguMiAuOCAuMiAyLjcgMCAzLjUtLjUtLjMgMS4xLTEuOSAzLTMgMy40IDIuOSAwIDctMS45IDguMi00LjYgMCAwLTEuOCAuNi0yLjYtLjJzLjMtNC4zIC4zLTQuM2MtMi4zIDIuOS0zLjQtMS4zLTEuMy00LjItMS0uMy0zLjUtLjYtNC42LS41IDMuMi0xLjEgMTAuNC0xLjggMTEuMi0uMyAuNiAxLjEtMSAzLjQtMSAzLjQgNC0uNSA4LjMgMS4xIDYuNyA1LjEgMi45LTEuNCA1LjUtNS45IDQuOC0xMC40LS4zIDEtMS42IDIuNC0yLjkgMi43IC4yLTEuNC0xLTIuMi0xLjktMi42IDEuNy05LjYtMTQuNi0xNC4yLTE0LjEtMjMuOS0xIDEuMy0xLjggNS0uOCA3LjEgMi43IDMuMiA4LjcgNi43IDEwLjEgMTIuMi0yLjYtNi40LTE1LjEtMTEuNC0xNC42LTIwLjItMS42IDEuNi0yLjYgNy44LTEuMyAxMSAyLjQgMS40IDQuNSAzLjggNC44IDYuMS0yLjItNS4xLTExLjQtNi4xLTEzLjktMTIuMi0uNiAyLjItLjMgNSAxIDYuNyAwIDAtMi4yLS44LTctLjYgMS43IC42IDUuMSAzLjUgNC44IDUuMnptMjUuOSA3LjRjLTIuNyAwLTMuNS0yLjEtNC4yLTQuMyAzLjMgMS4zIDQuMiA0LjMgNC4yIDQuM3ptMzguOSAzLjdsLTEtLjZjLTEuMS0xLTIuOS0xLjQtNC43LTEuNC0yLjkgMC01LjggMS4zLTcuNSAzLjQtLjggLjgtMS40IDEuOC0yLjEgMi42bDAgMTUuN2MzLjUgMi42IDcuMS0yLjkgMy03LjIgMS41IC4zIDQuNiAyLjcgNS4xIDMuMiAwIDAgMi42LS41IDUtLjUgMi4xIDAgMy45IC4zIDUuNiAxLjFsMC0xOC40Yy0xLjEgLjUtMi4yIDEtMi43IDEuNGwtLjcgLjd6TTc5LjkgMzA1LjljMTcuMi00LjYgMTYuMi0xOCAxNi4yLTE5LjkgMC0yMC42LTI0LjEtMjUtMzctMjVsLTU2LjEgMCA4LjMgOC42IDAgMjkuNS0xMS4zIDAgMTEuNCAxNC42IDAgMzIuMy04LjQgOC42YzYxLjcgMCA3My44IDEuNSA4Ni40LTUuOSA2LjctNCA5LjktOS44IDkuOS0xNy42IDAtNS4xIDIuNi0xOC44LTE5LjQtMjUuMnpNMzguNiAyNzguNGMyMCAwIDI5LjYtLjggMjkuNiA5LjFsMCAzYzAgMTIuMS0xOSA4LjgtMjkuNiA4LjhsMC0yMC45em0wIDU5LjJsMC0yMi42YzEyLjIgMCAzMi43LTIuMyAzMi43IDguOGwwIDQuNSAuMiAwYzAgMTEuMi0xMi41IDkuMy0zMi45IDkuM3ptMTAxLjItMTkuM2wyMy4xIC4yIDAtLjIgMTQuMS0yMS4yLTM3LjIgMCAwLTE0LjkgNTIuNCAwLTE0LjEtMjEgMC0uMi03My41IC4yIDcuNCA4LjIgMCA3Ny4xLTcuNCA4LjIgODEuMiAwIDE0LjEtMjEuMi02MC4xIC4yIDAtMTUuNHptMjE0LjctNjAuMWMtNzMuOSAwLTc3LjUgOTkuMy0uMyA5OS4zIDc3LjkgMCA3NC4xLTk5LjMgLjMtOTkuM3ptLS4zIDc3LjVjLTM3LjQgMC0zNi45LTU1LjMgLjItNTUuMyAzNi44IC4xIDM4LjggNTUuMy0uMiA1NS4zem0tOTEuMy04LjNsNDQuMS02Ni4yLTQxLjcgMCA2LjEgNy4yLTIwLjUgMzcuMi0uMyAwLTIxLTM3LjIgNi40LTcuMi00NC45IDAgNDQuMSA2NS44IC4yIDE5LjQtNy43IDguMiA0Mi42IDAtNy4yLTguMi0uMi0xOXpNMjM0LjUgMTc2LjFjMS42IDEuMyAyLjkgMi40IDIuOSA2LjZsMCAzOC44YzAgNC4yLS44IDUuMy0yLjcgNi40LS4xIC4xLTcuNSA0LjUtNy45IDQuNmwzNS4xIDBjMTAgMCAxNy40LTEuNSAyNi04LjYtLjYtNSAuMi05LjUgLjgtMTIgMC0uMi0xLjggMS40LTIuNyAzLjUgMC01LjcgMS42LTE1LjQgOS42LTIwLjUtLjEgMC0zLjctLjgtOSAxLjEgMi0zLjEgMTAtNy45IDEwLjQtNy45LTguMi0yNi0zOC0yMi45LTMyLjItMjIuOS0zMC45IDAtMzIuNiAuMy0zOS45LTQgLjEgLjggLjUgOC4yIDkuNiAxNC45em0yMS41IDUuNWM0LjYgMCAyMy4xLTMuMyAyMy4xIDE3LjMgMCAyMC43LTE4LjQgMTcuMy0yMy4xIDE3LjNsMC0zNC42em0yMjguOSA3OS42bDcgOC4zIDAgNDIuNS0uMyAwYy01LjQtMTQuNC00Mi4zLTQxLjUtNDUuMi01MC45bC0zMS42IDAgNy40IDguNSAwIDc2LjktNy4yIDguMyAzOSAwLTcuNC04LjIgMC00Ny40IC4zIDBjMy43IDEwLjYgNDQuNSA0Mi45IDQ4LjUgNTUuNmwyMS4zIDAgMC04NS4yIDcuNC04LjMtMzkuMi0uMXpNMzc4LjIgMTY1LjFjLTMyLjIgMC0zMi44IC4yLTM5LjktNCAuMSAuNyAuNSA4LjMgOS42IDE0LjkgMy4xIDIgMi45IDQuMyAyLjkgOS41IDEuOC0xLjEgMy44LTIuMiA2LjEtMy0xLjEgMS4xLTIuNyAyLjctMy41IDQuNSAxLTEuMSA3LjUtNS4xIDE0LjYtMy41LTEuNiAuMy00IDEuMS02LjEgMi45IC4xIDAgMi4xLTEuMSA3LjUtLjNsMC00LjNjNC43IDAgMjMuMS0zLjQgMjMuMSAxNy4zIDAgMjAuNS0xOC41IDE3LjMtMTkuNyAxNy4zIDUuNyA0LjQgNS44IDEyIDIuMiAxNi4zbC4zIDBjMzMuNCAwIDM2LjctMjcuMyAzNi43LTM0IDAtMy44LTEuMS0zMi0zMy44LTMzLjZ6Il19LGMydD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJtaWNyb3NvZnQiLGljb246WzQ0OCw1MTIsW10sImYzY2EiLCJNMCAzMmwyMTQuNiAwIDAgMjE0LjYtMjE0LjYgMCAwLTIxNC42em0yMzMuNCAwbDIxNC42IDAgMCAyMTQuNi0yMTQuNiAwIDAtMjE0LjZ6TTAgMjY1LjRsMjE0LjYgMCAwIDIxNC42LTIxNC42IDAgMC0yMTQuNnptMjMzLjQgMGwyMTQuNiAwIDAgMjE0LjYtMjE0LjYgMCAwLTIxNC42eiJdfSxkMnQ9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiZmx5IixpY29uOlszMjAsNTEyLFtdLCJmNDE3IiwiTTE2NS45IDQyNy44YzEyLjkgMTEuNyAzMy43IDMzLjMgMzMuMiA1MC43IDAgLjgtLjEgMS42LS4xIDIuNS0xLjggMTkuOC0xOC44IDMxLjEtMzkuMSAzMS0yNS0uMS0zOS45LTE2LjgtMzguNy0zNS44IDEtMTYuMiAyMC41LTM2LjcgMzIuNC00Ny42IDIuMy0yLjEgMi43LTIuNyA1LjYtMy42IDMuNCAwIDMuOSAuMyA2LjcgMi44ek0zMDAgNjcuM2MtMTYuMy0yNS43LTM4LjYtNDAuNi02My4zLTUyLjEtMjUuNS0xMC43LTU0LjYtMTUuNC03Ni42LTE1LjItNDQuMSAwLTcxLjIgMTMuMi04MS4xIDE3LjMtNTMuNiAyNy45LTg0LjQgNjkuOS04Mi45IDE0MS4zIDcuMSA4Mi4yIDk3IDE3NiAxNTUuOCAyMzMuOCAxLjcgMS42IDQuNSA0LjUgNi4yIDUuMWwzLjMgLjFjMi4xLS43IDEuOC0uNSAzLjUtMi4xIDUyLjMtNDkuMiAxNDAuNy0xNDUuOCAxNTUuOS0yMTUuNyA3LTM5LjIgMy4xLTcyLjUtMjAuOC0xMTIuNXpNMTU0LjkgMzUxLjljLTI4LTUxLjEtNjUuMi0xMzAuNy02OS4zLTE4OS0zLjQtNDcuNSAxMS40LTEzMS4yIDY5LjMtMTM2LjdsMCAzMjUuN3pNMjk2LjggMTgwYy0xNi40IDU2LjgtNzcuMyAxMjgtMTE4LjkgMTcwLjMgMjcuOC01MS45IDY1LjItMTMzLjMgNjcuMi0xOTEuOSAxLjYtNDUuOS05LjgtMTA1LjgtNDgtMTMxLjQgODguOCAxOC4zIDExNS41IDk4LjEgOTkuNyAxNTN6Il19LHUydD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJjYy1zdHJpcGUiLGljb246WzU3Niw1MTIsW10sImYxZjUiLCJNNDkyLjQgMjIwLjhjLTguOSAwLTE4LjcgNi43LTE4LjcgMjIuN2wzNi43IDBjMC0xNi05LjMtMjIuNy0xOC0yMi43ek0zNzUgMjIzLjRjLTguMiAwLTEzLjMgMi45LTE3IDdsLjIgNTIuOGMzLjUgMy43IDguNSA2LjcgMTYuOCA2LjcgMTMuMSAwIDIxLjktMTQuMyAyMS45LTMzLjQgMC0xOC42LTktMzMuMi0yMS45LTMzLjF6TTUyOCAzMkw0OCAzMkMyMS41IDMyIDAgNTMuNSAwIDgwTDAgNDMyYzAgMjYuNSAyMS41IDQ4IDQ4IDQ4bDQ4MCAwYzI2LjUgMCA0OC0yMS41IDQ4LTQ4bDAtMzUyYzAtMjYuNS0yMS41LTQ4LTQ4LTQ4ek0xMjIuMiAyODEuMWMwIDI1LjYtMjAuMyA0MC4xLTQ5LjkgNDAuMy0xMi4yIDAtMjUuNi0yLjQtMzguOC04LjFsMC0zMy45YzEyIDYuNCAyNy4xIDExLjMgMzguOSAxMS4zIDcuOSAwIDEzLjYtMi4xIDEzLjYtOC43IDAtMTctNTQtMTAuNi01NC00OS45IDAtMjUuMiAxOS4yLTQwLjIgNDgtNDAuMiAxMS44IDAgMjMuNSAxLjggMzUuMyA2LjVsMCAzMy40Yy0xMC44LTUuOC0yNC41LTkuMS0zNS4zLTkuMS03LjUgMC0xMi4xIDIuMi0xMi4xIDcuNyAwIDE2IDU0LjMgOC40IDU0LjMgNTAuN3pNMTkxIDIyNC41bC0yNyAwIDAgNTAuNWMwIDIwLjkgMjIuNSAxNC40IDI3IDEyLjZsMCAyOC45Yy00LjcgMi42LTEzLjMgNC43LTI0LjkgNC43LTIxLjEgMC0zNi45LTE1LjUtMzYuOS0zNi41bC4yLTExMy45IDM0LjctNy40IDAgMzAuOCAyNi45IDAgMCAzMC4zem03NCAyLjRjLTQuNS0xLjUtMTguNy0zLjYtMjcuMSA3LjRsMCA4NC40LTM1LjUgMCAwLTEyNC41IDMwLjcgMCAyLjIgMTAuNWM4LjMtMTUuMyAyNC45LTEyLjIgMjkuNi0xMC41bC4xIDAgMCAzMi43em00NC4xIDkxLjhsLTM1LjcgMCAwLTEyNC41IDM1LjcgMCAwIDEyNC41em0wLTE0Mi45bC0zNS43IDcuNiAwLTI4LjkgMzUuNy03LjYgMCAyOC45em03NC4xIDE0NS41Yy0xMi40IDAtMjAtNS4zLTI1LjEtOWwtLjEgNDAuMi0zNS41IDcuNSAwLTE2NS44IDMxLjMgMCAxLjggOC44YzQuOS00LjUgMTMuOS0xMS4xIDI3LjgtMTEuMSAyNC45IDAgNDguNCAyMi41IDQ4LjQgNjMuOCAwIDQ1LjEtMjMuMiA2NS41LTQ4LjYgNjUuNnptMTYwLjQtNTEuNWwtNjkuNSAwYzEuNiAxNi42IDEzLjggMjEuNSAyNy42IDIxLjUgMTQuMSAwIDI1LjItMyAzNC45LTcuOWwwIDI4LjZjLTkuNyA1LjMtMjIuNCA5LjItMzkuNCA5LjItMzQuNiAwLTU4LjgtMjEuNy01OC44LTY0LjUgMC0zNi4yIDIwLjUtNjQuOSA1NC4zLTY0LjkgMzMuNyAwIDUxLjMgMjguNyA1MS4zIDY1LjEgMCAzLjUtLjMgMTAuOS0uNCAxMi45eiJdfSxwMnQ9e3ByZWZpeDoiZmFiIixpY29uTmFtZToid29yZHByZXNzLXNpbXBsZSIsaWNvbjpbNTEyLDUxMixbXSwiZjQxMSIsIk0yNTYgOGEyNDggMjQ4IDAgMSAwIDAgNDk2IDI0OCAyNDggMCAxIDAgMC00OTZ6TTMzIDI1NmMwLTMyLjMgNi45LTYzIDE5LjMtOTAuN0wxNTguNyA0NTYuN0M4NC4zIDQyMC41IDMzIDM0NC4yIDMzIDI1NnpNMjU2IDQ3OWMtMjEuOSAwLTQzLTMuMi02My05LjFsNjYuOS0xOTQuNCA2OC41IDE4Ny44Yy41IDEuMSAxIDIuMSAxLjYgMy4xLTIzLjEgOC4xLTQ4IDEyLjYtNzQgMTIuNnptMzAuNy0zMjcuNWMxMy40LS43IDI1LjUtMi4xIDI1LjUtMi4xIDEyLTEuNCAxMC42LTE5LjEtMS40LTE4LjQgMCAwLTM2LjEgMi44LTU5LjQgMi44LTIxLjkgMC01OC43LTIuOC01OC43LTIuOC0xMi0uNy0xMy40IDE3LjctMS40IDE4LjQgMCAwIDExLjQgMS40IDIzLjQgMi4xbDM0LjcgOTUuMi00OC44IDE0Ni4zLTgxLjItMjQxLjVjMTMuNC0uNyAyNS41LTIuMSAyNS41LTIuMSAxMi0xLjQgMTAuNi0xOS4xLTEuNC0xOC40IDAgMC0zNi4xIDIuOC01OS40IDIuOC00LjIgMC05LjEtLjEtMTQuNC0uMyAzOS45LTYwLjUgMTA4LjQtMTAwLjUgMTg2LjMtMTAwLjUgNTggMCAxMTAuOSAyMi4yIDE1MC42IDU4LjUtMS0uMS0xLjktLjItMi45LS4yLTIxLjkgMC0zNy40IDE5LjEtMzcuNCAzOS42IDAgMTguNCAxMC42IDMzLjkgMjEuOSA1Mi4zIDguNSAxNC44IDE4LjQgMzMuOSAxOC40IDYxLjUgMCAxOS4xLTcuMyA0MS4yLTE3IDcyLjFsLTIyLjIgNzQuMy04MC43LTIzOS42em04MS40IDI5Ny4ybDY4LjEtMTk2LjljMTIuNy0zMS44IDE3LTU3LjIgMTctNzkuOSAwLTguMi0uNS0xNS44LTEuNS0yMi45IDE3LjQgMzEuOCAyNy4zIDY4LjIgMjcuMyAxMDcgMCA4Mi4zLTQ0LjYgMTU0LjEtMTEwLjkgMTkyLjd6Il19LGgydD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJzZWxsc3kiLGljb246WzY0MCw1MTIsW10sImYyMTMiLCJNNTQwIDIzNy4zYzMuMS0xMi4zIDQuMy0yNC44IDQuMy0zNy40IDAtOTIuNS03NS40LTE2Ny45LTE2Ny45LTE2Ny45LTc3LjIgMC0xNDQuNiA1My0xNjMgMTI3LjgtMTUuMy0xMy4yLTM0LjktMjAuNS01NS4yLTIwLjUtNDYuMyAwLTg0IDM3LjctODQgODQgMCA3LjQgLjkgMTUgMy4xIDIyLjQtNDIuOSAyMC4yLTcwLjggNjMuNy03MC44IDExMS4yIDAgNjggNTUuNSAxMjMuMiAxMjMuMiAxMjMuMmwzODEuMiAwYzY3LjcgMCAxMjMuMi01NS4yIDEyMy4yLTEyMy4yIDAtNTYuNC0zOC45LTEwNi05NC4xLTExOS41ek0yMDAuMiA0MDEuNmMwIDguMy03IDE1LjMtMTUuMyAxNS4zbC0zMC45IDBjLTguMyAwLTE1LjMtNy0xNS4zLTE1LjNsMC0xMTAuOWMwLTguMyA3LTE1LjMgMTUuMy0xNS4zbDMwLjkgMGM4LjMgMCAxNS4zIDcgMTUuMyAxNS4zbDAgMTEwLjl6bTg5LjUgMGMwIDguMy03IDE1LjMtMTUuMyAxNS4zbC0zMC45IDBjLTguMyAwLTE1LjMtNy0xNS4zLTE1LjNsMC0xMzEuNWMwLTguMyA3LTE1LjMgMTUuMy0xNS4zbDMwLjkgMGM4LjMgMCAxNS4zIDcgMTUuMyAxNS4zbDAgMTMxLjV6bTg5LjUgMGMwIDguMy03IDE1LjMtMTUuMyAxNS4zbC0zMSAwYy04LjMgMC0xNS4zLTctMTUuMy0xNS4zbDAtMTYyLjdjMC04LjMgNy0xNS4zIDE1LjMtMTUuM2wzMSAwYzguMyAwIDE1LjMgNyAxNS4zIDE1LjNsMCAxNjIuN3ptODcgMGMwIDguMy03IDE1LjMtMTUuMyAxNS4zbC0yOC41IDBjLTguMyAwLTE1LjMtNy0xNS4zLTE1LjNsMC0yMjQuNmMwLTguNiA3LTE1LjYgMTUuMy0xNS42bDI4LjUgMGM4LjMgMCAxNS4zIDcgMTUuMyAxNS42bDAgMjI0LjZ6Il19LGYydD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJkYXNoY3ViZSIsaWNvbjpbNDQ4LDUxMixbXSwiZjIxMCIsIk0zMjYuOSAxMDRsLTIxNi4yIDBjLTUxLjEgMC05MS4yIDQzLjMtOTEuMiA5My41bDAgMjI5LjVjMCA1MC41IDQwLjEgODUgOTEuMiA4NWwyMjcuMiAwYzUxLjEgMCA5MS4yLTM0LjUgOTEuMi04NWwwLTQyNy0xMDIuMiAxMDR6TTE1NC4yIDQxNi41Yy0xNy43IDAtMzIuNC0xNS4xLTMyLjQtMzIuOGwwLTE0Mi45YzAtMTcuNyAxNC43LTMyLjUgMzIuNC0zMi41bDE0MC43IDBjMTcuNyAwIDMyIDE0LjggMzIgMzIuNWwwIDEyMy41IDUxLjEgNTIuMy0yMjMuOCAwIDAtLjF6Il19LG0ydD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJnaXR0ZXIiLGljb246WzM4NCw1MTIsW10sImY0MjYiLCJNNjYuNCAzMjIuNWwtNTAuNCAwIDAtMzIyLjUgNTAuNCAwIDAgMzIyLjV6TTE2Ni45IDc2LjFsLTUwLjQgMCAwIDQzNS45IDUwLjQgMCAwLTQzNS45em0xMDAuNiAwbC01MC40IDAgMCA0MzUuOSA1MC40IDAgMC00MzUuOXpNMzY4IDc2bC01MC40IDAgMCAyNDcgNTAuNCAwIDAtMjQ3eiJdfSxnMnQ9e3ByZWZpeDoiZmFiIixpY29uTmFtZToid29sZi1wYWNrLWJhdHRhbGlvbiIsaWNvbjpbNDQ4LDUxMixbXSwiZjUxNCIsIk0yMzYuMiA0NzEuNWwxMC42IDE1LjggNS4zLTEyLjMgNS4zIDcgMCAyOS45YzIxLjEtNy45IDIxLjEtNjYuOSAyNS41LTk3LjIgNC42LTMxLjktLjktOTIuOCA4MS40LTE0OS4xLTguOS0yMy42LTEyLTQ5LjQtMi42LTgwIDI3LjkgMy40IDUzLjkgMTAuNiA2My4zIDU0LjFsLTMwLjMgOC40YzExLjEgMjMgMTcgNDYuOCAxMy4yIDcyLjFsLTI3LjMtNy02LjIgMzMuNC0xOC41LTctOC44IDMzLjQtMTkuNC03IDI2LjQgMjEuMSA4LjgtMjguMiAyNC42IDUuMiA3LTM1LjYgMjYuNCAxNC41Yy4yLTIwIDctNTguMS04LjgtODQuNWwyNi40IDUuM2M0LTIyLjEtMi40LTM5LjItNy45LTU2LjdsMjIuNCA5LjdjLS40LTI1LjEtMjkuOS01Ni44LTYxLjYtNTguNS0yMC4yLTEuMS01Ni43LTI1LjItNTQuMS01MS45IDItMTkuOSAxNy40LTQyLjYgNDMuMS00OS43LTQ0IDM2LjUtOS43IDY3LjMgNS4zIDczLjUgNC40LTExLjQgMTcuNS02OS4xIDAtMTMwLjItNDAuNCAyMi45LTg5LjcgNjUuMS05My4yIDE0Ny44bC01OCAzOC43LTMuNSA5My4yIDEwNy4zLTU5LjggNyA3LTE3LjYgMy41LTQ0IDM4LjctMTUuOC01LjMtMjguMSA0OS4zLTMuNSAxMTkuNiAyMS4xIDE1LjgtMzIuNSAxNS44LTMyLjYtMTUuOCAyMS4xLTE1LjgtMy41LTExOS42LTI4LjItNDkuMy0xNS44IDUuMy00NC0zOC43LTE3LjYtMy41IDctNyAxMDcuMyA1OS44LTMuNS05My4zLTU4LjEtMzguN2MtMy41LTgyLjgtNTIuNy0xMjUtOTMuMi0xNDcuOS0xNy41IDYxLjEtNC40IDExOC44IDAgMTMwLjIgMTUtNi4yIDQ5LjMtMzcgNS4zLTczLjUgMjUuNyA3LjEgNDEuMSAyOS44IDQzLjEgNDkuNyAyLjYgMjYuNy0zMy45IDUwLjgtNTQuMSA1MS45LTMxLjcgMS43LTYxLjIgMzMuNC02MS42IDU4LjVsMjIuNC05LjdDMTMuNCAyMjQuNyA3IDI0MS44IDExIDI2My45bDI2LjQtNS4zYy0xNS44IDI2LjQtOS4xIDY0LjQtOC44IDg0LjRsMjYuNC0xNC41IDcgMzUuNiAyNC42LTUuMyA4LjggMjguMiAyNi40LTIxLjEtMTkuNCA3LTguOC0zMy40LTE4LjUgNy02LjItMzMuNC0yNy4zIDdDMzggMjk0LjggNDMuOCAyNzEgNTUgMjQ4bC0zMC4zLTguNGM5LjQtNDMuNSAzNS41LTUwLjggNjMuMy01NC4xIDkuNCAzMC42IDYuMiA1Ni41LTIuNiA4MC4xIDgyLjMgNTYuMyA3Ni44IDExNy4yIDgxLjQgMTQ5LjEgNC40IDMwLjMgNC40IDg5LjMgMjUuNSA5Ny4ybDAtMjkuOCA1LjMtNyA1LjMgMTIuMyAxMC42LTE1LjggMTEuNCAyMS4xIDExLjQtMjEuMSAwIDB6bTc5LjItOTVMMjk5LjUgMzY2YzcuNS00LjQgMTMuOC04LjQgMTkuNC0xMi4zLS42IDcuMi0uMyAxMy44LTMuNSAyMi44bDAgMHptMjguMi00OS4zYy0uNCAxMC45LS45IDIxLjctMS44IDMxLjctNy44LTEuOS0xNS42LTMuOC0yMS4xLTcgOC4yLTcuOSAxNS42LTE2LjMgMjIuOS0yNC43bDAgMHptMjQuNiA1LjNjMC0xMy40LTIuMS0yNC4yLTUuMy0zMy40LTUuNSA5LjUtMTEuNyAxOC42LTE4LjUgMjcuM2wyMy44IDYuMnptMy41LTgwLjljMTkuNCAxMi44IDI3LjggMzMuNyAyOS45IDU2LjMtMTIuMy00LjUtMjQuNi05LjMtMzctMTAuNiA1LjEtMTIgNi42LTI4LjEgNy00NS43bDAgMHptLTEuOC00NS43Yy44IDE0LjMgMS44IDI4LjggMS44IDQyLjIgMTkuMi04LjEgMjkuOC05LjcgNDQtMTQuMS0xMC42LTE5LTI3LjItMjUuNS00NS44LTI4LjJsMCAwek0xMzQuMiAzNzYuNUwxNTAgMzY2Yy03LjUtNC40LTEzLjgtOC40LTE5LjQtMTIuMyAuNiA3LjMgLjMgMTMuOSAzLjUgMjIuOWwwIDB6TTEwNiAzMjcuM2MuNCAxMC45IC45IDIxLjcgMS44IDMxLjcgNy44LTEuOSAxNS42LTMuOCAyMS4xLTctOC4yLTcuOS0xNS42LTE2LjMtMjIuOS0yNC43em0tMjQuNiA1LjNjMC0xMy40IDItMjQuMiA1LjMtMzMuNCA1LjUgOS41IDExLjcgMTguNiAxOC41IDI3LjNsLTIzLjggNi4yem0tMy41LTgwLjljLTE5LjQgMTIuOC0yNy44IDMzLjctMjkuOSA1Ni4zIDEyLjMtNC41IDI0LjYtOS4zIDM3LTEwLjYtNS0xMi02LjYtMjguMS03LTQ1LjdsLS4xIDB6bTEuOC00NS43Yy0uOCAxNC4zLTEuOCAyOC44LTEuOCA0Mi4yLTE5LjItOC4xLTI5LjgtOS43LTQ0LTE0LjEgMTAuNi0xOSAyNy4yLTI1LjUgNDUuOC0yOC4xeiJdfSxiMnQ9e3ByZWZpeDoiZmFiIixpY29uTmFtZToibGFzdGZtIixpY29uOls1MTIsNTEyLFtdLCJmMjAyIiwiTTIyNS44IDM2Ny4xbC0xOC44LTUxcy0zMC41IDM0LTc2LjIgMzRjLTQwLjUgMC02OS4yLTM1LjItNjkuMi05MS41IDAtNzIuMSAzNi40LTk3LjkgNzIuMS05Ny45IDY2LjUgMCA3NC44IDUzLjMgMTAwLjkgMTM0LjkgMTguOCA1Ni45IDU0IDEwMi42IDE1NS40IDEwMi42IDcyLjcgMCAxMjItMjIuMyAxMjItODAuOSAwLTcyLjktNjIuNy04MC42LTExNS05Mi4xLTI1LjgtNS45LTMzLjQtMTYuNC0zMy40LTM0IDAtMTkuOSAxNS44LTMxLjcgNDEuNi0zMS43IDI4LjIgMCA0My40IDEwLjYgNDUuNyAzNS44bDU4LjYtN2MtNC43LTUyLjgtNDEuMS03NC41LTEwMC45LTc0LjUtNTIuOCAwLTEwNC40IDE5LjktMTA0LjQgODMuOSAwIDM5LjkgMTkuNCA2NS4xIDY4IDc2LjggNDQuOSAxMC42IDc5LjggMTMuOCA3OS44IDQ1LjcgMCAyMS43LTIxLjEgMzAuNS02MSAzMC41LTU5LjIgMC04My45LTMxLjEtOTcuOS03My45LTMyLTk2LjgtNDMuNi0xNjMtMTYxLjMtMTYzLTg2LjEgMC0xMzEuOCA1NC41LTEzMS44IDE0Ny4yIDAgODkuMSA0NS43IDEzNy4yIDEyNy45IDEzNy4yIDY2LjIgMCA5Ny45LTMxLjEgOTcuOS0zMS4xeiJdfSx2MnQ9e3ByZWZpeDoiZmFiIixpY29uTmFtZToic2hvcHdhcmUiLGljb246WzUxMiw1MTIsW10sImY1YjUiLCJNNDAzLjUgNDU1LjRjLTQyLjYgMzEuNy05NC40IDQ4LjctMTQ3LjUgNDguNi0xMzcuMiAwLTI0OC0xMTEtMjQ4LTI0OCAwLTEzNy4yIDExMS0yNDggMjQ4LTI0OCA2MS4yLS4xIDEyMC4yIDIyLjYgMTY1LjcgNjMuNSAuNiAuNSAuOSAxLjIgMS4xIDEuOXMuMSAxLjUtLjMgMi4yLS44IDEuMy0xLjUgMS42LTEuNCAuNS0yLjIgLjRjLTE4LjgtMi41LTM3LjctMy43LTU2LjctMy43LTEyOS40IDAtMjIyLjQgNTMuNS0yMjIuNCAxNTUuNCAwIDEwOSA5Mi4xIDE0NS45IDE3Ni44IDE3OC43IDMzLjYgMTMgNjUuNCAyNS40IDg3IDQxLjYgLjQgLjMgLjggLjggMS4xIDEuM3MuNCAxIC40IDEuNi0uMSAxLjEtLjQgMS42LS42IC45LTEuMSAxLjNsLS4xIDB6TTUwMyAyMzMuMWMtLjEtLjktLjUtMS44LTEuMy0yLjQtNTEuOC00My05My42LTYwLjUtMTQ0LjUtNjAuNS04NC4xIDAtODAuMyA1Mi4yLTgwLjMgNTMuNiAwIDQyLjYgNTIuMSA2MiAxMTIuMyA4NC41IDMxLjEgMTEuNiA2My4yIDIzLjYgOTIuNyAzOS45IC40IC4yIC45IC40IDEuNCAuNHMxIDAgMS41LS4yIC45LS40IDEuMy0uOCAuNi0uOCAuOC0xLjJjMTQuMS0zNiAxOS41LTc0LjggMTYtMTEzLjN6Il19LHgydD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJibG9nZ2VyIixpY29uOls0NDgsNTEyLFtdLCJmMzdjIiwiTTE2Mi40IDE5NmM0LjgtNC45IDYuMi01LjEgMzYuNC01LjEgMjcuMiAwIDI4LjEgLjEgMzIuMSAyLjEgNS44IDIuOSA4LjMgNyA4LjMgMTMuNiAwIDUuOS0yLjQgMTAtNy42IDEzLjQtMi44IDEuOC00LjUgMS45LTMxLjEgMi4xLTE2LjQgLjEtMjkuNS0uMi0zMS41LS44LTEwLjMtMi45LTE0LjEtMTcuNy02LjYtMjUuM3ptNjEuNCA5NC41Yy01My45IDAtNTUuOCAuMi02MC4yIDQuMS0zLjUgMy4xLTUuNyA5LjQtNS4xIDEzLjkgLjcgNC43IDQuOCAxMC4xIDkuMiAxMiAyLjIgMSAxNC4xIDEuNyA1Ni4zIDEuMmw0Ny45LS42IDkuMi0xLjVjOS01LjEgMTAuNS0xNy40IDMuMS0yNC40LTUuMy00LjctNS00LjctNjAuNC00Ljd6TTQ0Ny4yIDQyMC42Yy0zLjUgMjguNC0yMyA1MC40LTUxLjEgNTcuNS03LjIgMS44LTkuNyAxLjktMTcyLjkgMS44LTE1Ny44IDAtMTY1LjktLjEtMTcyLTEuOC04LjQtMi4yLTE1LjYtNS41LTIyLjMtMTAtNS42LTMuOC0xMy45LTExLjgtMTctMTYuNC0zLjgtNS42LTguMi0xNS4zLTEwLTIyUzAgNDIwLjMgMCAyNTYuM2MwLTE2My4xIDAtMTY2LjYgMS44LTE3My43IDYuMy0yNC43IDI1LjktNDMuNiA1MS4yLTQ5LjIgNy4zLTEuNiAzMzIuMS0xLjkgMzQwLS4zIDIxLjIgNC4zIDM3LjkgMTcuMSA0Ny42IDM2LjQgNy43IDE1LjMgNy0xLjUgNy4zIDE4MC42IC4yIDExNS44IDAgMTY0LjUtLjcgMTcwLjV6TTM2MS44IDIzNS40Yy0xLjEtNS00LjItOS42LTcuNy0xMS41LTEuMS0uNi04LTEuMy0xNS41LTEuNy0xMi40LS42LTEzLjgtLjgtMTcuOC0zLjEtNi4yLTMuNi03LjktNy42LTgtMTguMyAwLTIwLjQtOC41LTM5LjQtMjUuMy01Ni41LTEyLTEyLjItMjUuMy0yMC41LTQwLjYtMjUuMS0zLjYtMS4xLTExLjgtMS41LTM5LjItMS44LTQyLjktLjUtNTIuNSAuNC02Ny4xIDYuMi0yNyAxMC43LTQ2LjMgMzMuNC01My40IDYyLjQtMS4zIDUuNC0xLjYgMTQuMi0xLjkgNjQuMy0uNCA2Mi44IDAgNzIuMSA0IDg0LjUgOS43IDMwLjcgMzcuMSA1My40IDY0LjYgNTguNCA5LjIgMS43IDEyMi4yIDIuMSAxMzMuNyAuNSAyMC4xLTIuNyAzNS45LTEwLjggNTAuNy0yNS45IDEwLjctMTAuOSAxNy40LTIyLjggMjEuOC0zOC41IDMuMi0xMC45IDIuOS04OC40IDEuNy05My45eiJdfSx5MnQ9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiZWRnZSIsaWNvbjpbNTEyLDUxMixbXSwiZjI4MiIsIk0xMjAuMSAzNy40YzQxLTI1LjIgODcuNi0zOC4yIDEzNC45LTM3LjQgMTY4IDAgMjU3IDEyMy44IDI1NyAyMTkuNS0uMSAzMi43LTEzIDYzLjktMzUuOSA4Ny4yLTIyLjkgMjMuMi01NCAzNi41LTg2LjcgMzctNzUuMiAwLTkxLjUtMjMuMS05MS41LTMyIDAtMy44IDEuMi02LjIgNC44LTkuNGwxLTEuMiAuNC0xLjZjMTAuNS0xMS41IDE1LjktMjYuMiAxNS45LTQxLjYgMC03OC43LTgyLjItMTQyLjctMTg0LTE0Mi43LTM3LjUtLjMtNzQuNSA4LjktMTA3LjUgMjYuOSAyNy01Ny41IDgyLjctOTcuNiA5MS4zLTEwMy44IC44LS42IC4zLS44IC4zLS44em0xNS42IDMxOC4xYy0xLjQgMzAgNC42IDYwIDE2LjQgODcuMiAxMy42IDI2LjQgMzIuNyA1MSA1Ni41IDY5LjMtNTkuNS0xMS41LTExMS41LTQzLjktMTQ5LjQtODkuMy0zOC4xLTQ2LjQtNTkuMi0xMDQuMy01OS4yLTE2NC44IDAtNTEuMiA2Mi40LTk0LjQgMTM2LTk0LjQgMzYuNi0uNiA3Mi40IDEwLjkgMTAxLjggMzIuN2wtMy42IDEuMmMtNTEuNSAxNy42LTk4LjUgOTAuNy05OC41IDE1OC4xek00NjkuOCA0MDBsLS43IC4xYy0xMS44IDE4LjgtMjUuOSAzNS4xLTQyLjIgNDkuNS0zMC44IDI4LTY4LjEgNDUuNS0xMDguOCA0OS45LTE4LjYgLjMtMzYuOC0zLjItNTMuOC0xMS40LTI1LjYtMTAuMy00Ny4xLTMwLTYxLjYtNTMtMTQuNC0yMy45LTIxLjEtNTEuNy0xOS03OS42LS42LTIwLjEgNS40LTQwLjMgMTUtNTguMiAxMy45IDMzLjEgMzcuNSA2MS4zIDY3LjYgODAuOHM2NS41IDI5LjUgMTAxLjQgMjguNmMzMSAuMyA2Mi4xLTYuNyA5MC4yLTIwLjVsMS45LS45YzMuOS0yLjMgNy43LTMuOSAxMS42IDAgNC41IDQuOSAxLjggOS4yLTEuMiAxNC0uMiAuMi0uMyAuNS0uNCAuN3oiXX0sdzJ0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImlveGhvc3QiLGljb246WzY0MCw1MTIsW10sImYyMDgiLCJNNjE2IDE2MGwtNjcuMyAwQzUxMS4yIDcwLjcgNDIyLjkgOCAzMjAgOCAxODMgOCA3MiAxMTkgNzIgMjU2IDcyIDI3Mi40IDczLjYgMjg4LjUgNzYuNyAzMDRMMjQgMzA0Yy0xMy4zIDAtMjQgMTAuOC0yNCAyNCAwIDEzLjMgMTAuNyAyNCAyNCAyNGw2Ny4zIDBjMzcuNSA4OS4zIDEyNS44IDE1MiAyMjguNyAxNTIgMTM3IDAgMjQ4LTExMSAyNDgtMjQ4IDAtMTYuNC0xLjYtMzIuNS00LjctNDhsNTIuNyAwYzEzLjMgMCAyNC0xMC44IDI0LTI0IDAtMTMuMy0xMC43LTI0LTI0LTI0em0tOTYgOTZjMCAxMTAuNS04OS41IDIwMC0yMDAgMjAwLTc1LjcgMC0xNDEuNi00Mi0xNzUuNS0xMDRMNDI0IDM1MmMxMy4zIDAgMjQtMTAuOCAyNC0yNCAwLTEzLjMtMTAuNy0yNC0yNC0yNGwtMjk4LjIgMGMtMy44LTE1LjQtNS44LTMxLjQtNS44LTQ4IDAtMTEwLjUgODkuNS0yMDAgMjAwLTIwMCA3NS43IDAgMTQxLjYgNDIgMTc1LjUgMTA0TDIxNiAxNjBjLTEzLjMgMC0yNCAxMC44LTI0IDI0IDAgMTMuMyAxMC43IDI0IDI0IDI0bDI5OC4yIDBjMy44IDE1LjQgNS44IDMxLjQgNS44IDQ4ek0yMTYgMjMybDIwOCAwYzEzLjMgMCAyNCAxMC43IDI0IDI0IDAgMTMuMi0xMC43IDI0LTI0IDI0bC0yMDggMGMtMTMuMyAwLTI0LTEwLjctMjQtMjQgMC0xMy4yIDEwLjctMjQgMjQtMjR6Il19LE0ydD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJzY2hsaXgiLGljb246WzQ0OCw1MTIsW10sImYzZWEiLCJNMzUwLjUgMTU3LjdsLTU0LjItNDYuMSA3My40LTM5IDc4LjMgNDQuMi05Ny41IDQwLjl6TTE5MiAxMjIuMWw0NS43LTI4LjIgMzQuNyAzNC42LTU1LjQgMjktMjUtMzUuNHptLTY1LjEgNi42bDMxLjktMjIuMSAxNy4yIDI4LjQtMzYuNyAyMi41LTEyLjQtMjguOHptLTIzLjMgODguMmwtOC44LTM0LjggMjkuNi0xOC4zIDEzLjEgMzUuMy0zMy45IDE3Ljh6TTgyLjQgMTMzLjJsMjMuOS0xOC4xIDguOSAyNC0yNi43IDE4LjMtNi4xLTI0LjJ6TTU5IDIwNi41bC0zLjYtMjguNCAyMi4zLTE1LjUgNi4xIDI4LjctMjQuOCAxNS4yek0yOC40IDIyMy4xbDIwLjgtMTIuOCAzLjMgMzMuNC0yMi45IDEyLTEuMi0zMi42ek0xLjQgMjY4TDIwLjYgMjU3LjggMjEgMjk2IDAgMzA0LjggMS40IDI2OHptNTkuMSA1OS4zbC0yOC4zIDguMy0xLjYtNDYuOCAyNS4xLTEwLjcgNC44IDQ5LjJ6TTk5IDI2My4ybC0zMS4xIDEzLTUuMi00MC44IDI3LjQtMTQuNCA4LjkgNDIuMnpNMTIzLjIgMzc3bC00MS42IDUuOS04LjEtNjMuNSAzNS4yLTEwLjggMTQuNSA2OC40em0yOC41LTEzOS45bDIxLjIgNTcuMS00Ni4yIDEzLjYtMTMuNy01NC4xIDM4LjctMTYuNnptODUuNyAyMzAuNWwtNzAuOS0zLjMtMjQuMy05NS44IDU1LjItOC42IDQwIDEwNy43ek0xNTIuNSAxODcuOWw0Mi4yLTIyLjQgMjggNDUuOS01MC44IDIxLjMtMTkuNC00NC44em00MSA5NC45bDYxLjMtMTguNyA1Mi44IDg2LjYtNzkuOCAxMS4zLTM0LjMtNzkuMnptNTEuNC04NS42bDY3LjMtMjguOCA2NS41IDY1LjQtODguNiAyNi4yLTQ0LjItNjIuOHoiXX0sazJ0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImQtYW5kLWQiLGljb246WzU3Niw1MTIsW10sImYzOGQiLCJNODIuOSA5OC45Yy0uNi0xNy4yIDItMzMuOCAxMi43LTQ4LjIgLjMgNy40IDEuMiAxNC41IDQuMiAyMS42IDUuOS0yNy41IDE5LjctNDkuMyA0Mi4zLTY1LjUtMS45IDUuOS0zLjUgMTEuOC0zIDE3LjcgOC43LTcuNCAxOC44LTE3LjggNDQuNC0yMi43IDE0LjctMi44IDI5LjctMiA0Mi4xIDEgMzguNSA5LjMgNjEgMzQuMyA2OS43IDcyLjMgNS4zIDIzLjEgLjcgNDUtOC4zIDY2LjQtNS4yIDEyLjQtMTIgMjQuNC0yMC43IDM1LjEtMi0xLjktMy45LTMuOC01LjgtNS42LTQyLjgtNDAuOC0yNi44LTI1LjItMzcuNC0zNy40LTEuMS0xLjItMS0yLjItLjEtMy42IDguMy0xMy41IDExLjgtMjguMiAxMC00NC0xLjEtOS44LTQuMy0xOC45LTExLjMtMjYuMi0xNC41LTE1LjMtMzkuMi0xNS01My41IC42LTExLjQgMTIuNS0xNC4xIDI3LjQtMTAuOSA0My42IC4yIDEuMyAuNCAyLjcgMCAzLjktMy40IDEzLjctNC42IDI3LjYtMi41IDQxLjYgLjEgLjUgLjEgMS4xIC4xIDEuNiAwIC4zLS4xIC41LS4yIDEuMS0yMS44LTExLTM2LTI4LjMtNDMuMi01Mi4yLTguMyAxNy44LTExLjEgMzUuNS02LjYgNTQuMS0xNS42LTE1LjItMjEuMy0zNC4zLTIyLTU1LjJ6TTU1Mi41IDIyMi4xYy0xMS42LTExLjYtMjUtMjAuNC00MC4xLTI2LjYtMTIuOC01LjItMjYtNy45LTM5LjktNy4xLTEwIC42LTE5LjYgMy4xLTI5IDYuNC0yLjUgLjktNS4xIDEuNi03LjcgMi4yLTQuOSAxLjItNy4zLTMuMS00LjctNi44IDMuMi00LjYgMy40LTQuMiAxNS0xMiAuNi0uNCAxLjItLjggMi4yLTEuNWwtMi41IDBjLS42IDAtMS4yIC4yLTEuOSAuMy0xOS4zIDMuMy0zMC43IDE1LjUtNDguOSAyOS42LTEwLjQgOC4xLTEzLjggMy44LTEyLS41IDEuNC0zLjUgMy4zLTYuNyA1LjEtMTAgMS0xLjggMi4zLTMuNCAzLjUtNS4xLS4yLS4yLS41LS4zLS43LS41LTI3IDE4LjMtNDYuNyA0Mi40LTU3LjcgNzMuMyAuMyAuMyAuNyAuNiAxIC45IC4zLS42IC41LTEuMiAuOS0xLjcgMTAuNC0xMi4xIDIyLjgtMjEuOCAzNi42LTI5LjggMTguMi0xMC42IDM3LjUtMTguMyA1OC43LTIwLjIgNC4zLS40IDguNy0uMSAxMy4xLS4xLTEuOCAuNy0zLjUgLjktNS4zIDEuMS0xOC41IDIuNC0zNS41IDktNTEuNSAxOC41LTMwLjIgMTcuOS01NC41IDQyLjItNzUuMSA3MC40LS4zIC40LS40IC45LS43IDEuMyAxNC41IDUuMyAyNCAxNy4zIDM2LjEgMjUuNiAuMi0uMSAuMy0uMiAuNC0uNGwxLjItMi43YzEyLjItMjYuOSAyNy01Mi4zIDQ2LjctNzQuNSAxNi43LTE4LjggMzgtMjUuMyA2Mi41LTIwIDUuOSAxLjMgMTEuNCA0LjQgMTcuMiA2LjggMi4zLTEuNCA1LjEtMy4yIDgtNC43IDguNC00LjMgMTcuNC03IDI2LjctOSAxNC43LTMuMSAyOS41LTQuOSA0NC41LTEuM2wwLS41Yy0uNS0uNC0xLjItLjgtMS43LTEuNHpNMzE3LjEgMzk3LjZjLTM5LjQtMzMtMjIuOC0xOS41LTQyLjctMzUuNi0uOCAuOSAwLS4yLTEuOSAzLTExLjIgMTkuMS0yNS41IDM1LjMtNDQgNDcuNi0xMC4zIDYuOC0yMS41IDExLjgtMzQuMSAxMS44LTIxLjYgMC0zOC4yLTkuNS00OS40LTI3LjgtMTItMTkuNS0xMy4zLTQwLjctOC4yLTYyLjYgNy44LTMzLjggMzAuMS01NS4yIDM4LjYtNjQuMy0xOC43LTYuMi0zMyAxLjctNDYuNCAxMy45IC44LTEzLjkgNC4zLTI2LjIgMTEuOC0zNy4zLTI0LjMgMTAuNi00NS45IDI1LTY0LjggNDMuOS0uMy01LjggNS40LTQzLjcgNS42LTQ0LjcgLjMtMi43LS42LTUuMy0zLTcuNC0yNC4yIDI0LjctNDQuNSA1MS44LTU2LjEgODQuNiA3LjQtNS45IDE0LjktMTEuNCAyMy42LTE2LjItOC4zIDIyLjMtMTkuNiA1Mi44LTcuOCAxMDEuMSA0LjYgMTkgMTEuOSAzNi44IDI0LjEgNTIuMyAyLjkgMy43IDYuMyA2LjkgOS41IDEwLjMgLjItLjIgLjQtLjMgLjYtLjUtMS40LTctMi4yLTE0LjEtMS41LTIxLjkgMi4yIDMuMiAzLjkgNiA1LjkgOC42IDEyLjYgMTYgMjguNyAyNy40IDQ3LjIgMzUuNiAyNSAxMS4zIDUxLjEgMTMuMyA3Ny45IDguNiA1NC45LTkuNyA5MC43LTQ4LjYgMTE2LTk4LjggMS0xLjggLjYtMi45LS45LTQuMnptMTcyLTQ2LjRjLTkuNS0zLjEtMjIuMi00LjItMjguNy0yLjkgOS45IDQgMTQuMSA2LjYgMTguOCAxMiAxMi42IDE0LjQgMTAuNCAzNC43LTUuNCA0NS42LTExLjcgOC4xLTI0LjkgMTAuNS0zOC45IDkuMS0xLjItLjEtMi4zLS40LTMtLjYgMi44LTMuNyA2LTcgOC4xLTEwLjggOS40LTE2LjggNS40LTQyLjEtOC43LTU2LjEtMi4xLTIuMS00LjYtMy45LTctNS45LS4zIDEuMy0uMSAyLjEgLjEgMi44IDQuMiAxNi42LTguMSAzMi40LTI0LjggMzEuOC03LjYtLjMtMTMuOS0zLjgtMTkuNi04LjUtMTkuNS0xNi4xLTM5LjEtMzIuMS01OC41LTQ4LjMtNS45LTQuOS0xMi41LTguMS0yMC4xLTguNy00LjYtLjQtOS4zLS42LTEzLjktLjktNS45LS40LTguOC0yLjgtMTAuNC04LjQtLjktMy40LTEuNS02LjgtMi4yLTEwLjItMS41LTguMS02LjItMTMtMTQuMy0xNC4yLTQuNC0uNy04LjktMS0xMy4zLTEuNS0xMy0xLjQtMTkuOC03LjQtMjIuNi0yMC4zLTUgMTEtMS42IDIyLjQgNy4zIDI5LjkgNC41IDMuOCA5LjMgNy4zIDEzLjggMTEuMiA0LjYgMy44IDcuNCA4LjcgNy45IDE0LjggLjQgNC43IC44IDkuNSAxLjggMTQuMSAyLjIgMTAuNiA4LjkgMTguNCAxNyAyNS4xIDE2LjUgMTMuNyAzMyAyNy4zIDQ5LjUgNDEuMSAxNy45IDE1IDEzLjkgMzIuOCAxMyA1Ni0uOSAyMi45IDEyLjIgNDIuOSAzMy41IDUxLjIgMSAuNCAyIC42IDMuNiAxLjEtMTUuNy0xOC4yLTEwLjEtNDQuMSAuNy01Mi4zIC4zIDIuMiAuNCA0LjMgLjkgNi40IDkuNCA0NC4xIDQ1LjQgNjQuMiA4NSA1Ni45IDE2LTIuOSAzMC42LTguOSA0Mi45LTE5LjggMi0xLjggMy43LTQuMSA1LjktNi41LTE5LjMgNC42LTM1LjggLjEtNTAuOS0xMC42IC43LS4zIDEuMy0uMyAxLjktLjMgMjEuMyAxLjggNDAuNi0zLjQgNTctMTcuNCAxOS41LTE2LjYgMjYuNi00Mi45IDE3LjQtNjYtOC4zLTIwLjEtMjMuNi0zMi4zLTQzLjgtMzguOXpNOTkuOCAxNzkuM2MtNS4zLTkuMi0xMy4yLTE1LjYtMjIuMS0yMS4zIDEzLjctLjUgMjYuNiAuMiAzOS42IDMuNy03LTEyLjItOC41LTI0LjctNS0zOC43IDUuMyAxMS45IDEzLjcgMjAuMSAyMy42IDI2LjggMTkuNyAxMy4yIDM1LjcgMTkuNiA0Ni43IDMwLjIgMy40IDMuMyA2LjMgNy4xIDkuNiAxMC45LS44LTIuMS0xLjQtNC4xLTIuMi02LTUtMTAuNi0xMy0xOC42LTIyLjYtMjUtMS44LTEuMi0yLjgtMi41LTMuNC00LjUtMy4zLTEyLjUtMy0yNS4xLS43LTM3LjYgMS01LjUgMi44LTEwLjkgNC41LTE2LjMgLjgtMi40IDIuMy00LjYgNC02LjYgLjYgNi45IDAgMjUuNSAxOS42IDQ2IDEwLjggMTEuMyAyMi40IDIxLjkgMzMuOSAzMi43IDkgOC41IDE4LjMgMTYuNyAyNS41IDI2LjggMS4xIDEuNiAyLjIgMy4zIDMuOCA0LjctNS0xMy0xNC4yLTI0LjEtMjQuMi0zMy44LTkuNi05LjMtMTkuNC0xOC40LTI5LjItMjcuNC0zLjMtMy00LjYtNi43LTUuMS0xMC45LTEuMi0xMC40IDAtMjAuNiA0LjMtMzAuMiAuNS0xIDEuMS0yIDEuOS0zLjMgLjUgNC4yIC42IDcuOSAxLjQgMTEuNiA0LjggMjMuMSAyMC40IDM2LjMgNDkuMyA2My41IDEwIDkuNCAxOS4zIDE5LjIgMjUuNiAzMS42IDQuOCA5LjMgNy4zIDE5IDUuNyAyOS42LS4xIC42IC41IDEuNyAxLjEgMiA2LjIgMi42IDEwIDYuOSA5LjcgMTQuMyA3LjctMi42IDEyLjUtOCAxNi40LTE0LjUgNC4yIDIwLjItOS4xIDUwLjMtMjcuMiA1OC43IC40LTQuNSA1LTIzLjQtMTYuNS0yNy43LTYuOC0xLjMtMTIuOC0xLjMtMjIuOS0yLjEgNC43LTkgMTAuNC0yMC42IC41LTIyLjQtMjQuOS00LjYtNTIuOCAxLjktNTcuOCA0LjYgOC4yIC40IDE2LjMgMSAyMy41IDMuMy0yIDYuNS00IDEyLjctNS44IDE4LjktMS45IDYuNSAyLjEgMTQuNiA5LjMgOS42IDEuMi0uOSAyLjMtMS45IDMuMy0yLjctMy4xIDE3LjktMi45IDE1LjktMi44IDE4LjMgLjMgMTAuMiA5LjUgNy44IDE1LjcgNy4zLTIuNSAxMS44LTI5LjUgMjcuMy00NS40IDI1LjggNy00LjcgMTIuNy0xMC4zIDE1LjktMTcuOS02LjUgLjgtMTIuOSAxLjYtMTkuMiAyLjRsLS4zLS45YzQuNy0zLjQgOC03LjggMTAuMi0xMy4xIDguNy0yMS4xLTMuNi0zOC0yNS0zOS45LTkuMS0uOC0xNy44IC44LTI1LjkgNS41IDYuMi0xNS42IDE3LjItMjYuNiAzMi42LTM0LjUtMTUuMi00LjMtOC45LTIuNy0yNC42LTYuMyAxNC42LTkuMyAzMC4yLTEzLjIgNDYuNS0xNC42LTUuMi0zLjItNDguMS0zLjYtNzAuMiAyMC45IDcuOSAxLjQgMTUuNSAyLjggMjMuMiA0LjItMjMuOCA3LTQ0IDE5LjctNjIuNCAzNS42IDEuMS00LjggMi43LTkuNSAzLjMtMTQuMyAuNi00LjUgLjgtOS4yIC4xLTEzLjYtMS41LTkuNC04LjktMTUuMS0xOS43LTE2LjMtNy45LS45LTE1LjYgLjEtMjMuMyAxLjMtLjkgLjEtMS43IC4zLTIuOSAwIDE1LjgtMTQuOCAzNi0yMS43IDUzLjEtMzMuNSA2LTQuNSA2LjgtOC4yIDMtMTQuOXptMTI4LjQgMjYuOGMzLjMgMTYgMTIuNiAyNS41IDIzLjggMjQuMy00LjYtMTEuMy0xMi4xLTE5LjUtMjMuOC0yNC4zeiJdfSxTMnQ9e3ByZWZpeDoiZmFiIixpY29uTmFtZToidnVlanMiLGljb246WzQ0OCw1MTIsW10sImY0MWYiLCJNMzU2LjkgNjQuM2wtNzYuOSAwLTU2IDg4LjYtNDgtODguNi0xNzYgMCAyMjQgMzgzLjcgMjI0LTM4My43LTkxLjEgMHpNNTUuNyA5Ni4zbDUzLjggMCAxMTQuNSAxOTguMiAxMTQuNC0xOTguMiA1My44IDAtMTY4LjIgMjg4LjItMTY4LjMtMjg4LjJ6Il19LHoydD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJtZXRhIixpY29uOls2NDAsNTEyLFtdLCJlNDliIiwiTTY0MCAzMTcuOWMwIDkxLjMtMzkuNCAxNDguNS0xMTAuMyAxNDguNS02Mi42IDAtOTUuOC0zNC42LTE1Ni45LTEzNi42bC0zMS40LTUyLjZjLTguMy0xMi41LTE0LjUtMjQuMi0yMS4yLTM1LTIwLjEgMzMuOC00Ny4xIDgzLTQ3LjEgODMtNjcgMTE2LjYtMTA0LjYgMTQxLjItMTU2LjkgMTQxLjItNzIuOCAwLTExNi4yLTU3LjMtMTE2LjItMTQ1LjkgMC0xNDMgNzkuOC0yNzguMSAxODMuOS0yNzguMSA1MC4yIDAgOTMuOCAyNC43IDE0NC44IDg5LjUgMzcuMS01MC4xIDc4LjEtODkuNSAxMzAuNi04OS41IDk5LjEgMCAxODAuNyAxMjUuNyAxODAuNyAyNzUuNXpNMjg3LjQgMTkyLjJjLTQyLjktNjIuMS03MC45LTgwLjUtMTA0LjQtODAuNS02MS45IDAtMTEzLjggMTA2LjEtMTEzLjggMjEwIDAgNDguNSAxOC41IDc1LjcgNDkuNiA3NS43IDMwLjIgMCA0OS0xOSAxMDMuMi0xMDMuOCAwIDAgMjQuNy0zOS4xIDY1LjQtMTAxLjR6TTUzMS4yIDM5Ny40YzMyLjIgMCA0Ni45LTI3LjUgNDYuOS03NC45IDAtMTI0LjItNTQuMy0yMjUuNC0xMjMuMi0yMjUuNC0zMy4yIDAtNjEuMSAyNS45LTk0LjkgNzggOS40IDEzLjggMTkuMSAyOSAyOS4zIDQ1LjRsMzcuNSA2Mi40YzU4LjcgOTQuMSA3My41IDExNC41IDEwNC40IDExNC41eiJdfSxDMnQ9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiY3JlYXRpdmUtY29tbW9ucy1zaGFyZSIsaWNvbjpbNTEyLDUxMixbXSwiZjRmMiIsIk0yNTUuNiA4QzM5Ny40IDggNTA0IDExOC4xIDUwNCAyNTYgNTA0IDQwMy4xIDM4NS41IDUwNCAyNTUuNiA1MDQgMTIxLjYgNTA0IDggMzk0LjUgOCAyNTYgOCAxMjMuMSAxMTIuNyA4IDI1NS42IDh6bS44IDQ0LjdjLTExOC4yIDAtMjAzLjcgOTcuOS0yMDMuNyAyMDMuMyAwIDEwOS44IDkxLjIgMjAyLjggMjAzLjcgMjAyLjggMTAzLjIgMCAyMDIuOC04MS4xIDIwMi44LTIwMi44IC4xLTExMy44LTkwLjItMjAzLjMtMjAyLjgtMjAzLjN6bTEwMSAxMzIuNGM3LjggMCAxMy43IDYuMSAxMy43IDEzLjdsMCAxODIuNWMwIDcuNy02LjEgMTMuNy0xMy43IDEzLjdsLTEzNS4xIDBjLTcuNyAwLTEzLjctNi0xMy43LTEzLjdsMC01NC01NCAwYy03LjggMC0xMy43LTYtMTMuNy0xMy43bDAtMTgyLjVjMC04LjIgNi42LTEyLjcgMTIuNC0xMy43bDEzNi40IDBjNy43IDAgMTMuNyA2IDEzLjcgMTMuN2wwIDU0IDU0IDB6TTE2Ny45IDMwMC4zbDQwLjcgMCAwLTEwMS40YzAtNy40IDUuOC0xMi42IDEyLTEzLjdsNTUuOCAwIDAtNDAuMy0xMDguNSAwIDAgMTU1LjR6bTE3Ni4yLTg4LjFsLTEwOC41IDAgMCAxNTUuNCAxMDguNSAwIDAtMTU1LjR6Il19LFQydD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJzdHVkaW92aW5hcmkiLGljb246WzUxMiw1MTIsW10sImYzZjgiLCJNNDgwLjcgMTg3LjdsNC4yIDI4IDAgMjgtMjUuMSA0NC4xLTM5LjggNzguNC01Ni4xIDY3LjUtNzkuMSAzNy44LTE3LjcgMjQuNS03LjcgMTItOS42IDRzMTcuMy02My42IDE5LjQtNjMuNiAyMC4zIC43IDIwLjMgLjdsNjYuNy0zOC42LTkyLjUgMjYuMS01NS45IDM2LjgtMjIuOCAyOC02LjYgMS40IDIwLjgtNzMuNiA2LjktNS41IDIwLjcgMTIuOSA4OC4zLTQ1LjIgNTYuOC01MS41IDE0LjgtNjguNC0xMjUuNCAyMy4zIDE1LjItMTguMi0xNzMuNC01My4zIDgxLjktMTAuNS0xNjYtMTIyLjkgMTE0LjkgMTguMS0xMDEuMy0xMDggMjUyLjkgMTI2LjYtMzEuNS0zOCAxMjQuNCA3NC40LTE0My4zLTk5IDE4LjcgMzguNC00OS42LTE4LjEtNDUuNS04NC4zIDE5NC42IDEyMi00Mi45LTU1LjggMTA4IDk2LjQgMTItOC45LTIxLTE2LjQgNC4yLTM3LjggMzcuOC0xMC40IDI5LjIgMjQuNyAxMS41IDQuMi03IDYuMiA4LjUgMTItMTMuMSA3LjQtMTAuMyAyMC4yIDEwLjUgMjMuOXoiXX0sXzJ0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImJpdGJ1Y2tldCIsaWNvbjpbNTEyLDUxMixbNjE4MTBdLCJmMTcxIiwiTTIyLjIgMzJjLTIuMSAwLTQuMiAuNC02LjEgMS4xcy0zLjcgMS45LTUuMiAzLjQtMi43IDMuMi0zLjUgNS4xLTEuMyA0LTEuMyA2LjFjMCAuOSAuMSAxLjkgLjIgMi44TDc0LjEgNDYyLjdjLjggNS4xIDMuNCA5LjcgNy4zIDEzczguOCA1LjIgMTQgNS4ybDMyNS43IDBjMy44IC4xIDcuNS0xLjMgMTAuNS0zLjdzNC45LTUuOSA1LjUtOS43TDUwNSA1MC43Yy43LTQuMi0uMy04LjQtMi44LTExLjlzLTYuMi01LjctMTAuNC02LjRjLS45LS4xLTEuOS0uMi0yLjgtLjJMMjIuMiAzMnpNMzA4LjEgMzI5LjhsLTEwNCAwLTI4LjEtMTQ3IDE1Ny4zIDAtMjUuMiAxNDd6Il19LEwydD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJ2ayIsaWNvbjpbNDQ4LDUxMixbXSwiZjE4OSIsIk0zMS41IDYzLjVDMCA5NSAwIDE0NS43IDAgMjQ3TDAgMjY1QzAgMzY2LjMgMCA0MTcgMzEuNSA0NDguNVMxMTMuNyA0ODAgMjE1IDQ4MGwxNy45IDBjMTAxLjQgMCAxNTIuMSAwIDE4My41LTMxLjVTNDQ4IDM2Ni4zIDQ0OCAyNjVsMC0xNy45YzAtMTAxLjQgMC0xNTIuMS0zMS41LTE4My41UzMzNC4zIDMyIDIzMyAzMkwyMTUgMzJDMTEzLjcgMzIgNjMgMzIgMzEuNSA2My41ek03NS42IDE2OC4zbDUxLjEgMGMxLjcgODUuNSAzOS40IDEyMS43IDY5LjMgMTI5LjJsMC0xMjkuMiA0OC4yIDAgMCA3My43YzI5LjUtMy4yIDYwLjUtMzYuOCA3MC45LTczLjdsNDguMiAwYy0zLjkgMTkuMi0xMS44IDM3LjMtMjMuMSA1My4zcy0yNS43IDI5LjUtNDIuNSAzOS42YzE4LjcgOS4zIDM1LjIgMjIuNCA0OC40IDM4LjVzMjIuOSAzNC45IDI4LjMgNTVsLTUzIDBjLTQuOS0xNy41LTE0LjgtMzMuMS0yOC42LTQ1cy0zMC43LTE5LjQtNDguNy0yMS42bDAgNjYuNi01LjggMGMtMTAyLjEgMC0xNjAuMy03MC0xNjIuOC0xODYuNXoiXX0sQTJ0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImdpdGh1YiIsaWNvbjpbNTEyLDUxMixbXSwiZjA5YiIsIk0xNzMuOSAzOTcuNGMwIDItMi4zIDMuNi01LjIgMy42LTMuMyAuMy01LjYtMS4zLTUuNi0zLjYgMC0yIDIuMy0zLjYgNS4yLTMuNiAzLS4zIDUuNiAxLjMgNS42IDMuNnptLTMxLjEtNC41Yy0uNyAyIDEuMyA0LjMgNC4zIDQuOSAyLjYgMSA1LjYgMCA2LjItMnMtMS4zLTQuMy00LjMtNS4yYy0yLjYtLjctNS41IC4zLTYuMiAyLjN6bTQ0LjItMS43Yy0yLjkgLjctNC45IDIuNi00LjYgNC45IC4zIDIgMi45IDMuMyA1LjkgMi42IDIuOS0uNyA0LjktMi42IDQuNi00LjYtLjMtMS45LTMtMy4yLTUuOS0yLjl6TTI1Mi44IDhjLTEzOC43IDAtMjQ0LjggMTA1LjMtMjQ0LjggMjQ0IDAgMTEwLjkgNjkuOCAyMDUuOCAxNjkuNSAyMzkuMiAxMi44IDIuMyAxNy4zLTUuNiAxNy4zLTEyLjEgMC02LjItLjMtNDAuNC0uMy02MS40IDAgMC03MCAxNS04NC43LTI5LjggMCAwLTExLjQtMjkuMS0yNy44LTM2LjYgMCAwLTIyLjktMTUuNyAxLjYtMTUuNCAwIDAgMjQuOSAyIDM4LjYgMjUuOCAyMS45IDM4LjYgNTguNiAyNy41IDcyLjkgMjAuOSAyLjMtMTYgOC44LTI3LjEgMTYtMzMuNy01NS45LTYuMi0xMTIuMy0xNC4zLTExMi4zLTExMC41IDAtMjcuNSA3LjYtNDEuMyAyMy42LTU4LjktMi42LTYuNS0xMS4xLTMzLjMgMi42LTY3LjkgMjAuOS02LjUgNjkgMjcgNjkgMjcgMjAtNS42IDQxLjUtOC41IDYyLjgtOC41czQyLjggMi45IDYyLjggOC41YzAgMCA0OC4xLTMzLjYgNjktMjcgMTMuNyAzNC43IDUuMiA2MS40IDIuNiA2Ny45IDE2IDE3LjcgMjUuOCAzMS41IDI1LjggNTguOSAwIDk2LjUtNTguOSAxMDQuMi0xMTQuOCAxMTAuNSA5LjIgNy45IDE3IDIyLjkgMTcgNDYuNCAwIDMzLjctLjMgNzUuNC0uMyA4My42IDAgNi41IDQuNiAxNC40IDE3LjMgMTIuMSAxMDAtMzMuMiAxNjcuOC0xMjguMSAxNjcuOC0yMzkgMC0xMzguNy0xMTIuNS0yNDQtMjUxLjItMjQ0ek0xMDUuMiAzNTIuOWMtMS4zIDEtMSAzLjMgLjcgNS4yIDEuNiAxLjYgMy45IDIuMyA1LjIgMSAxLjMtMSAxLTMuMy0uNy01LjItMS42LTEuNi0zLjktMi4zLTUuMi0xem0tMTAuOC04LjFjLS43IDEuMyAuMyAyLjkgMi4zIDMuOSAxLjYgMSAzLjYgLjcgNC4zLS43IC43LTEuMy0uMy0yLjktMi4zLTMuOS0yLS42LTMuNi0uMy00LjMgLjd6bTMyLjQgMzUuNmMtMS42IDEuMy0xIDQuMyAxLjMgNi4yIDIuMyAyLjMgNS4yIDIuNiA2LjUgMSAxLjMtMS4zIC43LTQuMy0xLjMtNi4yLTIuMi0yLjMtNS4yLTIuNi02LjUtMXptLTExLjQtMTQuN2MtMS42IDEtMS42IDMuNiAwIDUuOXM0LjMgMy4zIDUuNiAyLjNjMS42LTEuMyAxLjYtMy45IDAtNi4yLTEuNC0yLjMtNC0zLjMtNS42LTJ6Il19LEQydD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJjb2RpZXBpZSIsaWNvbjpbNTEyLDUxMixbXSwiZjI4NCIsIk00NDIuNSAyMDIuOWMzMC43IDAgMzMuNSA1My4xLS4zIDUzLjFsLTEwLjggMCAwIDQ0LjMtMjYuNiAwIDAtOTcuNCAzNy43IDB6TTQ5MiAzNTIuNkM0NDkuOSA0NDQuNSAzNzAuNCA1MDQgMjY4IDUwNCAxMzEgNTA0IDIwIDM5MyAyMCAyNTZTMTMxIDggMjY4IDhjOTcuNCAwIDE3Mi44IDUzLjcgMjE4LjIgMTM4LjRMMzAwLjIgMjU1LjIgNDkyIDM1Mi42em0tMzguNSAxMi41bC02MC4zLTMwLjdjLTI3LjEgNDQuMy03MC40IDcxLjQtMTIyLjQgNzEuNC04Mi41IDAtMTQ5LjItNjYuNy0xNDkuMi0xNDguOSAwLTgyLjUgNjYuNy0xNDkuMiAxNDkuMi0xNDkuMiA0OC40IDAgODguOSAyMy41IDExNi45IDYzLjRsNTkuNS0zNC42QzQwNi41IDczLjkgMzQyLjUgMzYuNSAyNjggMzYuNSAxNDYuOCAzNi41IDQ4LjUgMTM0LjggNDguNSAyNTZTMTQ2LjggNDc1LjUgMjY4IDQ3NS41Yzc4LjYgMCAxNDYuNS00Mi4xIDE4NS41LTExMC40eiJdfSxFMnQ9e3ByZWZpeDoiZmFiIixpY29uTmFtZToicGllZC1waXBlciIsaWNvbjpbNDQ4LDUxMixbXSwiZjJhZSIsIk00NDAuMiAyMy4yYy0yNi43IDYuOC02OC4xIDI4LjUtMTE0LjYgNjcuNS0zMC45LTE3LjUtNjUuOC0yNi43LTEwMS40LTI2LjctMTE0LjkgMC0yMDggOTMuMS0yMDggMjA4czkzLjEgMjA4IDIwOCAyMDggMjA4LTkzLjEgMjA4LTIwOGMuMS01NC4xLTIxLTEwNi4xLTU4LjctMTQ0LjgtNi42IDguNS0xMi4zIDE3LjctMTcgMjcuNCAyOC45IDMyLjMgNDQuOCA3NC4xIDQ0LjkgMTE3LjQgMCA5Ny43LTc5LjQgMTc3LjEtMTc3LjEgMTc3LjEtMzAuOCAwLTYxLTguMS04Ny42LTIzLjQgODIuOS0xMDcuMyAxNTAuOC0zNy44IDE4NC4zLTIyNi42IDUuOC0zMi42IDI4LTk0LjMgMTI2LjItMTYwLjIgOC4xLTUuNCAyLjQtMTguMS03LTE1Ljd6TTEwOS4zIDQwNi40Qzg5LjggMzg5LjggNzQuMiAzNjkuMiA2My41IDM0NnMtMTYuMy00OC41LTE2LjMtNzRjMC05Ny43IDc5LjQtMTc3LjEgMTc3LjEtMTc3LjEgMjYuNiAwIDUyLjggNi4xIDc2LjYgMTcuOC02NiA2Mi4xLTEyNi45IDE1Mi45LTE5MS42IDI5My44eiJdfSwkMnQ9e3ByZWZpeDoiZmFiIixpY29uTmFtZToicmFzcGJlcnJ5LXBpIixpY29uOls0NDgsNTEyLFtdLCJmN2JiIiwiTTM5Mi41IDIzMi41bC0zLjctNi41Yy4xLTQ2LjQtMjEuNC02NS4zLTQ2LjUtNzkuNyA3LjYtMiAxNS40LTMuNiAxNy42LTEzLjIgMTMuMS0zLjMgMTUuOC05LjQgMTcuMS0xNS44IDMuNC0yLjMgMTQuOC04LjcgMTMuNi0xOS43IDYuNC00LjQgMTAtMTAuMSA4LjEtMTguMSA2LjktNy41IDguNy0xMy43IDUuOC0xOS40IDguMy0xMC4zIDQuNi0xNS42IDEuMS0yMC45IDYuMi0xMS4yIC43LTIzLjItMTYuNi0yMS4yLTYuOS0xMC4xLTIxLjktNy44LTI0LjItNy44LTIuNi0zLjItNi02LTE2LjUtNC43LTYuOC02LjEtMTQuNC01LTIyLjMtMi4xLTkuMy03LjMtMTUuNS0xLjQtMjIuNiAuOC0xMS4zLTMuNi0xMy45IDEuMy0xOS40IDMuNC0xMi4zLTIuNi0xNi4xIDMtMjIgOC45bC02LjktLjFjLTE4LjYgMTAuOC0yNy44IDMyLjgtMzEuMSA0NC4xLTMuMy0xMS4zLTEyLjUtMzMuMy0zMS4xLTQ0LjFsLTYuOSAuMWMtNS45LTUuOS05LjctMTEuNS0yMi04LjktNS42LTItOC4xLTctMTkuNC0zLjQtNC42LTEuNC04LjktNC40LTEzLjktNC4zLTIuNiAuMS01LjUgMS04LjcgMy41LTcuOS0zLTE1LjUtNC0yMi4zIDIuMS0xMC41LTEuMy0xNCAxLjQtMTYuNSA0LjctMi4zIDAtMTcuMy0yLjMtMjQuMiA3LjgtMTcuMy0yLTIyLjcgMTAtMTYuNSAyMS4yLTMuNSA1LjQtNy4yIDEwLjcgMS4xIDIwLjktMi45IDUuNy0xLjEgMTEuOSA1LjggMTkuNC0xLjggOCAxLjggMTMuNyA4LjEgMTguMS0xLjIgMTEgMTAuMiAxNy40IDEzLjYgMTkuNyAxLjMgNi40IDQgMTIuNCAxNy4xIDE1LjggMi4yIDkuNSAxMCAxMS4yIDE3LjYgMTMuMi0yNS4xIDE0LjQtNDYuNiAzMy4zLTQ2LjUgNzkuN2wtMy43IDYuNWMtMjguOCAxNy4yLTU0LjcgNzIuNy0xNC4yIDExNy43IDIuNiAxNC4xIDcuMSAyNC4yIDExIDM1LjQgNS45IDQ1LjIgNDQuNSA2Ni4zIDU0LjYgNjguOCAxNC45IDExLjIgMzAuOCAyMS44IDUyLjIgMjkuMiAyMC4zIDIwLjYgNDIuMyAyOC40IDY0LjMgMjguNGwxIDBjMjIuMSAwIDQ0LTcuOCA2NC4yLTI4LjQgMjEuNS03LjQgMzcuMy0xOCA1Mi4yLTI5LjIgMTAuMi0yLjUgNDguNy0yMy42IDU0LjYtNjguOCAzLjktMTEuMiA4LjQtMjEuMyAxMS0zNS40IDQwLjYtNDUuMSAxNC43LTEwMC41LTE0LTExNy43em0tMjIuMi04Yy0xLjUgMTguNy05OC45LTY1LjEtODIuMS02Ny45IDQ1LjctNy41IDgzLjYgMTkuMiA4Mi4xIDY3Ljl6bS00MyA5My4xYy0yNC41IDE1LjgtNTkuOCA1LjYtNzguOC0yMi44cy0xNC42LTY0LjIgOS45LTgwIDU5LjgtNS42IDc4LjggMjIuOCAxNC42IDY0LjItOS45IDgwek0yNTkuNCAyOS4zYy44IDQuMiAxLjggNi44IDIuOSA3LjYgNS40LTUuOCA5LjgtMTEuNyAxNi44LTE3LjMgMCAzLjMtMS43IDYuOCAyLjUgOS40IDMuNy01IDguOC05LjUgMTUuNS0xMy4zLTMuMiA1LjYtLjYgNy4zIDEuMiA5LjYgNS4xLTQuNCAxMC04LjggMTkuNC0xMi4zLTIuNiAzLjEtNi4yIDYuMi0yLjQgOS44IDUuMy0zLjMgMTAuNi02LjYgMjMuMS04LjktMi44IDMuMS04LjcgNi4zLTUuMSA5LjQgNi42LTIuNSAxNC00LjQgMjIuMS01LjQtMy45IDMuMi03LjEgNi4zLTMuOSA4LjggNy4xLTIuMiAxNi45LTUuMSAyNi40LTIuNmwtNiA2LjFjLS43IC44IDE0LjEgLjYgMjMuOSAuOC0zLjYgNS03LjIgOS43LTkuMyAxOC4yIDEgMSA1LjggLjQgMTAuNCAwLTQuNyA5LjktMTIuOCAxMi4zLTE0LjcgMTYuNiAyLjkgMi4yIDYuOCAxLjYgMTEuMiAuMS0zLjQgNi45LTEwLjQgMTEuNy0xNiAxNy4zIDEuNCAxIDMuOSAxLjYgOS43IC45LTUuMiA1LjUtMTEuNCAxMC41LTE4LjggMTUgMS4zIDEuNSA1LjggMS41IDEwIDEuNi02LjcgNi41LTE1LjMgOS45LTIzLjQgMTQuMiA0IDIuNyA2LjkgMi4xIDEwIDIuMS01LjcgNC43LTE1LjQgNy4xLTI0LjQgMTAgMS43IDIuNyAzLjQgMy40IDcuMSA0LjEtOS41IDUuMy0yMy4yIDIuOS0yNyA1LjYgLjkgMi43IDMuNiA0LjQgNi43IDUuOC0xNS40IC45LTU3LjMtLjYtNjUuNC0zMi4zIDE1LjctMTcuMyA0NC40LTM3LjUgOTMuNy02Mi42LTM4LjQgMTIuOC03MyAzMC0xMDIgNTMuNS0zNC4zLTE1LjktMTAuOC01NS45IDUuOC03MS44ek0yMjUgMTQzLjljMjQuMi0uMyA1NC4xIDE3LjggNTQgMzQuNy0uMSAxNS0yMSAyNy4xLTUzLjggMjYuOS0zMi4xLS40LTUzLjctMTUuMi01My42LTI5LjggMC0xMS45IDI2LjItMzIuNSA1My40LTMxLjh6TTEwMiAxMzEuMWMzLjctLjcgNS40LTEuNSA3LjEtNC4xLTktMi44LTE4LjctNS4zLTI0LjQtMTAgMy4xIDAgNiAuNyAxMC0yLjEtOC4xLTQuMy0xNi43LTcuNy0yMy40LTE0LjIgNC4yLS4xIDguNyAwIDEwLTEuNi03LjQtNC41LTEzLjYtOS41LTE4LjgtMTUgNS44IC43IDguMyAuMSA5LjctLjktNS42LTUuNi0xMi43LTEwLjQtMTYtMTcuMyA0LjMgMS41IDguMyAyIDExLjItLjEtMS45LTQuMi0xMC02LjctMTQuNy0xNi42IDQuNiAuNCA5LjQgMSAxMC40IDAtMi4xLTguNS01LjgtMTMuMy05LjMtMTguMiA5LjgtLjEgMjQuNiAwIDIzLjktLjhsLTYtNi4xYzkuNS0yLjUgMTkuMyAuNCAyNi40IDIuNiAzLjItMi41LS4xLTUuNi0zLjktOC44IDguMSAxLjEgMTUuNCAyLjkgMjIuMSA1LjQgMy41LTMuMS0yLjMtNi4zLTUuMS05LjQgMTIuNSAyLjMgMTcuOCA1LjYgMjMuMSA4LjkgMy44LTMuNiAuMi02LjctMi40LTkuOCA5LjQgMy40IDE0LjMgNy45IDE5LjQgMTIuMyAxLjctMi4zIDQuNC00IDEuMi05LjYgNi43IDMuOCAxMS44IDguMyAxNS41IDEzLjMgNC4xLTIuNiAyLjUtNi4yIDIuNS05LjQgNyA1LjYgMTEuNCAxMS41IDE2LjggMTcuMyAxLjEtLjggMi0zLjQgMi45LTcuNiAxNi42IDE1LjkgNDAuMSA1NS45IDYgNzEuOC0yOS0yMy41LTYzLjYtNDAuNy0xMDItNTMuNSA0OS4zIDI1IDc4IDQ1LjMgOTMuNyA2Mi42LTggMzEuOC01MCAzMy4yLTY1LjQgMzIuMyAzLjEtMS40IDUuOC0zLjIgNi43LTUuOC00LTIuOC0xNy42LS40LTI3LjItNS42em02MC4xIDI0LjFjMTYuOCAyLjgtODAuNiA4Ni41LTgyLjEgNjcuOS0xLjUtNDguNyAzNi41LTc1LjUgODIuMS02Ny45ek01OC43IDM0MmMtMjMuNy0xOC44LTMxLjMtNzMuNyAxMi42LTk4LjMgMjYuNS03IDkgMTA3LjgtMTIuNiA5OC4zem05MSA5OC4yYy0xMy4zIDcuOS00NS44IDQuNy02OC44LTI3LjktMTUuNS0yNy40LTEzLjUtNTUuMi0yLjYtNjMuNCAxNi4zLTkuOCA0MS41IDMuNCA2MC45IDI1LjYgMTYuOSAyMCAyNC42IDU1LjMgMTAuNSA2NS43ek0xMjMuMyAzMjAuNWMtMjQuNS0xNS44LTI4LjktNTEuNi05LjktODBzNTQuMy0zOC42IDc4LjgtMjIuOCAyOC45IDUxLjYgOS45IDgwYy0xOS4xIDI4LjQtNTQuNCAzOC42LTc4LjggMjIuOHpNMjI1LjUgNDk2Yy0yOS40IDEuMi01OC4yLTIzLjctNTcuOC0zMi4zLS40LTEyLjcgMzUuOC0yMi42IDU5LjMtMjIgMjMuNy0xIDU1LjYgNy41IDU1LjcgMTguOSAuNSAxMS0yOC44IDM1LjktNTcuMiAzNS40em01OC45LTEyNC45Yy4yIDI5LjctMjYuMiA1My44LTU4LjggNTRzLTU5LjItMjMuOC01OS40LTUzLjRsMC0uNmMtLjItMjkuNyAyNi4yLTUzLjggNTguOC01NHM1OS4yIDIzLjggNTkuNCA1My40bDAgLjZ6bTgyLjIgNDIuN2MtMjUuMyAzNC42LTU5LjYgMzUuOS03Mi4zIDI2LjMtMTMuMy0xMi40LTMuMi01MC45IDE1LjEtNzIgMjAuOS0yMy4zIDQzLjMtMzguNSA1OC45LTI2LjYgMTAuNSAxMC4zIDE2LjcgNDkuMS0xLjcgNzIuM3ptMjIuOS03My4yYy0yMS41IDkuNC0zOS0xMDUuMy0xMi42LTk4LjMgNDMuOSAyNC43IDM2LjMgNzkuNiAxMi42IDk4LjN6Il19LEkydD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJjc3MzIixpY29uOls1MTIsNTEyLFtdLCJmMTNjIiwiTTQ4MCAzMmwtNjQgMzY4LTIyMy4zIDgwLTE5Mi43LTgwIDE5LjYtOTQuOCA4MiAwLTggNDAuNiAxMTYuNCA0NC40IDEzNC4xLTQ0LjQgMTguOC05Ny4xLTMzMy40IDAgMTYtODIgMzMzLjcgMCAxMC41LTUyLjctMzMzLjQgMCAxNi4zLTgyIDQwNy40IDB6Il19LFAydD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJodWJzcG90IixpY29uOls0NDgsNTEyLFtdLCJmM2IyIiwiTTIzNS44IDIxMS42Yy0yNS4xIDIzLjctNDAuOCA1Ny4zLTQwLjggOTQuNiAwIDI5LjMgOS43IDU2LjMgMjYgNzhMMTcxLjUgNDM0Yy00LjQtMS42LTkuMS0yLjUtMTQtMi41LTEwLjggMC0yMC45IDQuMi0yOC41IDExLjhzLTExLjggMTcuOC0xMS44IDI4LjYgNC4yIDIwLjkgMTEuOCAyOC41IDE3LjggMTEuNiAyOC41IDExLjZjMTAuOCAwIDIwLjktMy45IDI4LjYtMTEuNiA3LjYtNy42IDExLjgtMTcuOCAxMS44LTI4LjUgMC00LjItLjYtOC4yLTEuOS0xMi4xbDUwLTUwLjJjMjIgMTYuOSA0OS40IDI2LjkgNzkuMyAyNi45IDcxLjkgMCAxMzAtNTguMyAxMzAtMTMwLjIgMC02NS4yLTQ3LjctMTE5LjItMTEwLjItMTI4LjdsMC02MS42YzE3LjUtNy40IDI4LjItMjMuOCAyOC4yLTQyLjkgMC0yNi4xLTIwLjktNDcuOS00Ny00Ny45UzI3OS42IDQ3IDI3OS42IDczLjFjMCAxOS4xIDEwLjcgMzUuNSAyOC4yIDQyLjlsMCA2MS4yYy0xNS4yIDIuMS0yOS42IDYuNy00Mi43IDEzLjYtMjcuNi0yMC45LTExNy41LTg1LjctMTY4LjktMTI0LjggMS4yLTQuNCAyLTkgMi0xMy44IDAtMjguOC0yMy41LTUyLjItNTIuNC01Mi4yLTI4LjggMC01Mi4yIDIzLjQtNTIuMiA1Mi4yIDAgMjguOSAyMy40IDUyLjMgNTIuMiA1Mi4zIDkuOCAwIDE4LjktMi45IDI2LjgtNy42TDIzNS44IDIxMS42em04OS41IDI1LjZhNjkgNjkgMCAxIDEgMCAxMzggNjkgNjkgMCAxIDEgMC0xMzh6Il19LE4ydD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJjbXBsaWQiLGljb246WzY0MCw1MTIsW10sImUzNjAiLCJNMjI2LjEgMzg4LjJjMC0uNy0uMi0xLjUtLjYtMi4xcy0xLTEuMS0xLjctMS40Yy0uNS0uMi0xLjEtLjQtMS42LS40bC0xNDkuNiAwYy0zLjEgMC02LjItLjgtOC45LTIuMnMtNS4xLTMuNS02LjktNi4xLTIuOS01LjUtMy4zLTguNiAwLTYuMiAxLjEtOS4xTDgxLjYgMjU1LjdjMi03LjIgNi4yLTEzLjUgMTItMTguMnMxMi45LTcuNCAyMC40LTcuOGwxNDguNiAwYzEuNS0uMSAyLjktLjYgNC0xLjZzMi0yLjIgMi40LTMuNmwxMC44LTQxLjFjLjQtMSAuMy0yLS4xLTIuOXMtMS4yLTEuNi0yLjEtMmMtLjQtLjItLjktLjMtMS40LS4zLS4xIDAtLjEgMC0uMiAwbC0xNDguNSAwYy0yMi4yIDEuMi00My40IDkuMi02MC44IDIzcy0zMCAzMi43LTM2LjIgNTQuMUwzLjUgMzU4LjhjLTMuMiA4LjctNC4yIDE4LTMgMjcuMXM0LjYgMTcuOSA5LjkgMjUuNSAxMi4zIDEzLjggMjAuNSAxOCAxNy4zIDYuNSAyNi41IDYuNmMxIDAgMS45IDAgMi45LS4xbDE0OC42IDBjMS41LS4xIDIuOS0uNyA0LTEuNnMyLTIuMiAyLjQtMy42bDEwLjctNDEuMWMuMi0uNSAuMy0uOSAuMy0xLjR6bTgwLjUtMzA3Yy4yLS40IC4zLS45IC4zLTEuNCAwLS41LS4xLTEtLjMtMS41cy0uNS0uOS0uOC0xLjItLjgtLjYtMS4yLS44LTEtLjMtMS41LS4zbC00MS4yIDBjLTEuNSAuMS0yLjkgLjYtNCAxLjZzLTIgMi4yLTIuNCAzLjZsLTIxLjMgODAuOSA1MS4xIDAgMjEuNC04MC45em0tMTI2LjMgMjg3bDUxLjEgMCAzMi0xMjIuNi01MS4xIDAtMzIgMTIyLjZ6TTUxMS45IDc5LjdjMC0xLS41LTEuOS0xLjItMi42cy0xLjctMS4xLTIuNi0xLjFjLS4xIDAtLjEgMC0uMiAwbC00MSAwYy0xLjUgLjEtMi45IC42LTQuMSAxLjVzLTIgMi4yLTIuNSAzLjZMMzY4LjkgNDMwLjZjLS4yIC40LS4zIC45LS4zIDEuMyAwIDEgLjQgMiAxLjEgMi43czEuNyAxLjEgMi43IDEuMWw0MS4yIDBjMS41LS4xIDIuOS0uNiA0LTEuNnMyLTIuMiAyLjQtMy42TDUxMS41IDgxLjJjLjItLjUgLjMtMSAuMy0xLjV6TTMyNC42IDM4NC41bC00MSAwYy0xLjUgLjEtMi45IC43LTQgMS42cy0yIDIuMi0yLjQgMy42bC0xMC43IDQxLjFjLS4yIC40LS4zIC45LS4zIDEuNCAwIC41IC4xIDEgLjMgMS41cy41IC45IC44IDEuMiAuOCAuNiAxLjIgLjggMSAuMyAxLjUgLjNjLjEgMCAuMiAwIC4zIDBsNDAuOSAwYzEuNS0uMSAyLjktLjYgNC0xLjZzMi0yLjIgMi40LTMuNmwxMC44LTQxLjFjLjItLjYgLjMtMS4yIC4zLTEuOHMtLjMtMS4yLS42LTEuNy0uOC0uOS0xLjMtMS4yLTEuMi0uNC0xLjgtLjRjLS4xIDAtLjIgMC0uMyAwbDAgMHpNNjM2IDc2LjFsLTQxIDBjLTEuNSAuMS0yLjkgLjYtNCAxLjVzLTIgMi4yLTIuNCAzLjZMNDk3LjEgNDMwLjZjLS4yIC40LS4yIC45LS4yIDEuMyAwIDEgLjQgMiAxLjEgMi43czEuNyAxLjEgMi43IDEuMWw0MS4xIDBjMS41LS4xIDIuOS0uNiA0LTEuNnMyLTIuMiAyLjQtMy42TDYzOS43IDgxLjJjLjItLjUgLjMtMSAuMy0xLjUtLjEtMS0uNS0xLjktMS4yLTIuNXMtMS42LTEtMi42LTFjLS4xIDAtLjEgMC0uMiAwbDAtLjF6TTM3MS42IDIyNS4ybDEwLjgtNDEuMWMuMi0uNCAuMi0uOSAuMi0xLjQgMC0xLS40LTItMS4xLTIuN3MtMS43LTEuMS0yLjctMS4xbC00MS4zIDBjLTEuNSAuMS0yLjkgLjctNCAxLjZzLTIgMi4yLTIuNCAzLjZsLTEwLjggNDEuMWMtLjIgLjUtLjMgMS0uMyAxLjVsMCAuMmMuMSAxIC41IDEuOCAxLjIgMi41czEuNiAxIDIuNiAxYy4xIDAgLjIgMCAuMyAwbDQxLjEgMGMxLjUtLjEgMi45LS42IDQtMS42czItMi4yIDIuNC0zLjZ6Il19LEYydD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJkeWFsb2ciLGljb246WzQ0OCw1MTIsW10sImYzOTkiLCJNMTYgMzJsMCAxMTkuMiA2NCAwIDAtNTUuMiAxMDcuMiAwQzMwMC42IDk2IDM2OCAxNzYuMiAzNjggMjU1LjkgMzY4IDMzMiAzMDkuNCA0MTYgMTg3LjIgNDE2bC0xNzEuMiAwIDAgNjQgMTcxLjIgMEMzNDcuOSA0ODAgNDMyIDM2Ny4zIDQzMiAyNTUuOSA0MzIgMTk3LjIgNDA5LjkgMTQyLjUgMzY5LjcgMTAxLjYgMzI0LjkgNTYgMjYxLjcgMzIgMTg3LjIgMzJMMTYgMzJ6Il19LE8ydD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJlbGVtZW50b3IiLGljb246WzUxMiw1MTIsW10sImY0MzAiLCJNLjUgMjU2YzAgMTQxIDExMy42IDI1NSAyNTQuNiAyNTUgMTQyIDAgMjU2LTExNCAyNTYtMjU1IDAtMTQwLTExNC0yNTMuOS0yNTYtMjUzLjktMTQxIDAtMjU0LjYgMTEzLjktMjU0LjYgMjUzLjl6TTE5Mi4xIDE1MGwwIDIxMy00MyAwIDAtMjEzIDQzIDB6bTQyIDBsMTI4IDAgMCA0My0xMjggMCAwLTQzem0xMjggODVsMCA0My0xMjggMCAwLTQzIDEyOCAwem0tMTI4IDg1bDEyOCAwIDAgNDMtMTI4IDAgMC00M3oiXX0sUjJ0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImZpcnN0LW9yZGVyIixpY29uOls0NDgsNTEyLFtdLCJmMmIwIiwiTTEzLjMgMjI5LjJjLjEtLjEgLjItLjMgLjMtLjQgMCAuMSAwIC4zLS4xIC40bC0uMiAwek0yMjQuNCA5Ni42Yy03LjEgMC0xNC42IC42LTIxLjQgMS43bDMuNyA2Ny40LTIyLTY0Yy0xNC4zIDMuNy0yNy43IDkuNC00MCAxNi42bDI5LjQgNjEuNC00NS4xLTUwLjljLTExLjQgOC45LTIxLjcgMTkuMS0zMC42IDMwLjlsNTAuNiA0NS40LTYxLjEtMjkuN2MtNy4xIDEyLjMtMTIuOSAyNS43LTE2LjYgNDBsNjQuMyAyMi42LTY4LTRjLS45IDcuMS0xLjQgMTQuNi0xLjQgMjJzLjYgMTQuNiAxLjQgMjEuN2w2Ny43LTQtNjQgMjIuNmMzLjcgMTQuMyA5LjQgMjcuNyAxNi42IDQwLjNMMTQ5IDMwNi45IDk4LjEgMzUyYzguOSAxMS43IDE5LjEgMjIuMyAzMC45IDMwLjlsNDQuOS01MC45LTI5LjUgNjEuNGMxMi4zIDcuNCAyNS43IDEzLjEgNDAgMTYuOWwyMi4zLTY0LjYtNCA2OGM3LjEgMS4xIDE0LjYgMS43IDIxLjcgMS43IDcuNCAwIDE0LjYtLjYgMjEuNy0xLjdsLTQtNjguNiAyMi42IDY1LjFjMTQuMy00IDI3LjctOS40IDQwLTE2LjlsLTI5LjQtNjEuMyA0NC45IDUwLjljMTEuNy04LjkgMjItMTkuMSAzMC42LTMwLjlsLTUwLjYtNDUuMSA2MS4xIDI5LjRjNy4xLTEyLjMgMTIuOS0yNS43IDE2LjYtNDAuM2wtNjQtMjIuMyA2Ny40IDRjMS4xLTcuMSAxLjQtMTQuMyAxLjQtMjEuN3MtLjMtMTQuOS0xLjQtMjJsLTY3LjcgNCA2NC0yMi4zYy0zLjctMTQuMy05LjEtMjgtMTYuNi00MC4zbC02MC45IDI5LjcgNTAuNi00NS40Yy04LjktMTEuNy0xOS4xLTIyLTMwLjYtMzAuOWwtNDUuMSA1MC45IDI5LjQtNjEuMWMtMTIuMy03LjQtMjUuNy0xMy4xLTQwLTE2LjlsLTIyLjMgNjQuMyA0LTY3LjdjLTcuMS0xLjItMTQuMy0xLjctMjEuNy0xLjd6TTQ0My44IDEyOEw0NDMuOCAzODQgMjI0LjQgNTEyIDUgMzg0IDUgMTI4IDIyNC40IDAgNDQzLjggMTI4em0tMTcuMSAxMC4zbC0yMDIuMy0xMTcuNC0yMDIuMyAxMTcuNCAwIDIzNS4xIDIwMi4zIDExNy43IDIwMi4zLTExNy43IDAtMjM1LjF6TTIyNC40IDM3LjFsMTg3LjcgMTA5LjQgMCAyMTguOS0xODcuNyAxMDkuNS0xODcuNy0xMDkuNSAwLTIxOC44IDE4Ny43LTEwOS41em0wIDUwLjljLTkyLjMgMC0xNjYuOSA3NS4xLTE2Ni45IDE2OCAwIDkyLjYgNzQuNiAxNjcuNyAxNjYuOSAxNjcuNyA5MiAwIDE2Ni45LTc1LjEgMTY2LjktMTY3LjcgMC05Mi45LTc0LjktMTY4LTE2Ni45LTE2OHoiXX0sQjJ0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImRyaWJiYmxlIixpY29uOls1MTIsNTEyLFtdLCJmMTdkIiwiTTI1NiA4YTI0OCAyNDggMCAxIDAgMCA0OTYgMjQ4IDI0OCAwIDEgMCAwLTQ5NnpNNDIwIDEyMi40YzI5LjUgMzYgNDcuNCA4MiA0Ny44IDEzMi03LTEuNS03Ny0xNS43LTE0Ny41LTYuOC01LjgtMTQtMTEuMi0yNi40LTE4LjYtNDEuNiA3OC4zLTMyIDExMy44LTc3LjUgMTE4LjMtODMuNXpNMzk2LjQgOTcuOWMtMy44IDUuNC0zNS43IDQ4LjMtMTExIDc2LjUtMzQuNy02My44LTczLjItMTE2LjItNzktMTI0IDY3LjItMTYuMiAxMzggMS4zIDE5MC4xIDQ3LjV6TTE2NS45IDY0LjZjNS42IDcuNyA0My40IDYwLjEgNzguNSAxMjIuNS05OS4xIDI2LjMtMTg2LjQgMjUuOS0xOTUuOCAyNS44IDEzLjctNjUuNyA1OC0xMjAuNCAxMTcuMy0xNDguM3pNNDQuMiAyNTYuM2MwLTIuMiAwLTQuMyAuMS02LjUgOS4zIC4yIDExMS45IDEuNSAyMTcuNy0zMC4xIDYuMSAxMS45IDExLjkgMjMuOSAxNy4yIDM1LjktNzYuNiAyMS42LTE0Ni4yIDgzLjUtMTgwLjUgMTQyLjMtMzMuOC0zNy42LTU0LjUtODcuMi01NC41LTE0MS42ek0xMjYgNDIzLjRjMjIuMS00NS4yIDgyLjItMTAzLjYgMTY3LjYtMTMyLjggMjkuNyA3Ny4zIDQyIDE0Mi4xIDQ1LjIgMTYwLjYtNjguMSAyOS0xNTAgMjEuMS0yMTIuOC0yNy45em0yNDguNCA4LjVjLTIuMi0xMi45LTEzLjQtNzQuOS00MS4yLTE1MSA2Ni40LTEwLjYgMTI0LjcgNi44IDEzMS45IDkuMS05LjQgNTguOS00My4zIDEwOS44LTkwLjggMTQyeiJdfSxQQT17cHJlZml4OiJmYWIiLGljb25OYW1lOiJsaW5rZWRpbiIsaWNvbjpbNDQ4LDUxMixbXSwiZjA4YyIsIk00MTYgMzJMMzEuOSAzMkMxNC4zIDMyIDAgNDYuNSAwIDY0LjNMMCA0NDcuN0MwIDQ2NS41IDE0LjMgNDgwIDMxLjkgNDgwTDQxNiA0ODBjMTcuNiAwIDMyLTE0LjUgMzItMzIuM2wwLTM4My40QzQ0OCA0Ni41IDQzMy42IDMyIDQxNiAzMnpNMTM1LjQgNDE2bC02Ni40IDAgMC0yMTMuOCA2Ni41IDAgMCAyMTMuOC0uMSAwek0xMDIuMiA5NmEzOC41IDM4LjUgMCAxIDEgMCA3NyAzOC41IDM4LjUgMCAxIDEgMC03N3pNMzg0LjMgNDE2bC02Ni40IDAgMC0xMDRjMC0yNC44LS41LTU2LjctMzQuNS01Ni43LTM0LjYgMC0zOS45IDI3LTM5LjkgNTQuOWwwIDEwNS44LTY2LjQgMCAwLTIxMy44IDYzLjcgMCAwIDI5LjIgLjkgMGM4LjktMTYuOCAzMC42LTM0LjUgNjIuOS0zNC41IDY3LjIgMCA3OS43IDQ0LjMgNzkuNyAxMDEuOWwwIDExNy4yeiJdfSxIMnQ9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiY2MtcGF5cGFsIixpY29uOls1NzYsNTEyLFtdLCJmMWY0IiwiTTE4Ni4zIDI1OC4yYzAgMTIuMi05LjcgMjEuNS0yMiAyMS41LTkuMiAwLTE2LTUuMi0xNi0xNSAwLTEyLjIgOS41LTIyIDIxLjctMjIgOS4zIDAgMTYuMyA1LjcgMTYuMyAxNS41ek04MC41IDIwOS43bC00LjcgMGMtMS41IDAtMyAxLTMuMiAyLjdsLTQuMyAyNi43IDguMi0uM2MxMSAwIDE5LjUtMS41IDIxLjUtMTQuMiAyLjMtMTMuNC02LjItMTQuOS0xNy41LTE0Ljl6bTI4NCAwbC00LjUgMGMtMS44IDAtMyAxLTMuMiAyLjdsLTQuMiAyNi43IDgtLjNjMTMgMCAyMi0zIDIyLTE4LS4xLTEwLjYtOS42LTExLjEtMTguMS0xMS4xek01NzYgODBsMCAzNTJjMCAyNi41LTIxLjUgNDgtNDggNDhMNDggNDgwYy0yNi41IDAtNDgtMjEuNS00OC00OEwwIDgwQzAgNTMuNSAyMS41IDMyIDQ4IDMybDQ4MCAwYzI2LjUgMCA0OCAyMS41IDQ4IDQ4ek0xMjguMyAyMTUuNGMwLTIxLTE2LjItMjgtMzQuNy0yOGwtNDAgMGMtMi41IDAtNSAyLTUuMiA0LjdMMzIgMjk0LjJjLS4zIDIgMS4yIDQgMy4yIDRsMTkgMGMyLjcgMCA1LjItMi45IDUuNS01LjdsNC41LTI2LjZjMS03LjIgMTMuMi00LjcgMTgtNC43IDI4LjYgMCA0Ni4xLTE3IDQ2LjEtNDUuOHptODQuMiA4LjhsLTE5IDBjLTMuOCAwLTQgNS41LTQuMiA4LjItNS44LTguNS0xNC4yLTEwLTIzLjctMTAtMjQuNSAwLTQzLjIgMjEuNS00My4yIDQ1LjIgMCAxOS41IDEyLjIgMzIuMiAzMS43IDMyLjIgOSAwIDIwLjItNC45IDI2LjUtMTEuOS0uNSAxLjUtMSA0LjctMSA2LjIgMCAyLjMgMSA0IDMuMiA0bDE3LjIgMGMyLjcgMCA1LTIuOSA1LjUtNS43bDEwLjItNjQuM2MuMy0xLjktMS4yLTMuOS0zLjItMy45ek0yNTMgMzIyLjFsNjMuNy05Mi42Yy41LS41IC41LTEgLjUtMS43IDAtMS43LTEuNS0zLjUtMy4yLTMuNWwtMTkuMiAwYy0xLjcgMC0zLjUgMS00LjUgMi41bC0yNi41IDM5LTExLTM3LjVjLS44LTIuMi0zLTQtNS41LTRsLTE4LjcgMGMtMS43IDAtMy4yIDEuOC0zLjIgMy41IDAgMS4yIDE5LjUgNTYuOCAyMS4yIDYyLjEtMi43IDMuOC0yMC41IDI4LjYtMjAuNSAzMS42IDAgMS44IDEuNSAzLjIgMy4yIDMuMmwxOS4yIDBjMS44LS4xIDMuNS0xLjEgNC41LTIuNnpNNDEyLjMgMjE1LjRjMC0yMS0xNi4yLTI4LTM0LjctMjhsLTM5LjcgMGMtMi43IDAtNS4yIDItNS41IDQuN2wtMTYuMiAxMDJjLS4yIDIgMS4zIDQgMy4yIDRsMjAuNSAwYzIgMCAzLjUtMS41IDQtMy4ybDQuNS0yOWMxLTcuMiAxMy4yLTQuNyAxOC00LjcgMjguNCAwIDQ1LjktMTcgNDUuOS00NS44em04NC4yIDguOGwtMTkgMGMtMy44IDAtNCA1LjUtNC4zIDguMi01LjUtOC41LTE0LTEwLTIzLjctMTAtMjQuNSAwLTQzLjIgMjEuNS00My4yIDQ1LjIgMCAxOS41IDEyLjIgMzIuMiAzMS43IDMyLjIgOS4zIDAgMjAuNS00LjkgMjYuNS0xMS45LS4zIDEuNS0xIDQuNy0xIDYuMiAwIDIuMyAxIDQgMy4yIDRsMTcuMyAwYzIuNyAwIDUtMi45IDUuNS01LjdsMTAuMi02NC4zYy4zLTEuOS0xLjItMy45LTMuMi0zLjl6TTU0NCAxOTAuOWMwLTItMS41LTMuNS0zLjItMy41bC0xOC41IDBjLTEuNSAwLTMgMS4yLTMuMiAyLjdsLTE2LjIgMTA0LS4zIC41YzAgMS44IDEuNSAzLjUgMy41IDMuNWwxNi41IDBjMi41IDAgNS0yLjkgNS4yLTUuN2wxNi4yLTEwMS4yIDAtLjN6bS05MCA1MS44Yy0xMi4yIDAtMjEuNyA5LjctMjEuNyAyMiAwIDkuNyA3IDE1IDE2LjIgMTUgMTIgMCAyMS43LTkuMiAyMS43LTIxLjUgLjEtOS44LTYuOS0xNS41LTE2LjItMTUuNXoiXX0scTJ0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImRobCIsaWNvbjpbNjQwLDUxMixbXSwiZjc5MCIsIk0yMzggMzAxLjJsNTguNyAwIDIyLjMtMzAuMi01OC43IDAtMjIuMyAzMC4yek0wIDI4Mi45bDAgNi40IDgxLjggMCA0LjctNi40LTg2LjUgMHpNMTcyLjkgMjcxYy04LjcgMC02LTMuNi00LjYtNS41IDIuOC0zLjggNy42LTEwLjQgMTAuNC0xNC4xczIuOC01LjktMi44LTUuOWwtNTEgMC00MS4xIDU1LjggMTAwLjEgMGMzMy4xIDAgNTEuNS0yMi41IDU3LjItMzAuM2wtNjguMiAwem0zMTcuNS02LjlsMzkuMy01My40LTYyLjIgMC0zOS4zIDUzLjQgNjIuMiAwek05NS4zIDI3MWwtOTUuMyAwIDAgNi40IDkwLjYgMCA0LjctNi40em0xMTEtMjYuNmMtMi44IDMuOC03LjUgMTAuNC0xMC4zIDE0LjItMS40IDItNC4xIDUuNSA0LjYgNS41bDQ1LjYgMHM3LjMtMTAgMTMuNS0xOC40YzguNC0xMS40IC43LTM1LTI5LjItMzVsLTExNy45IDAtMjAuNCAyNy44IDExMS40IDBjNS42IDAgNS41IDIuMiAyLjcgNS45ek0wIDMwMS4ybDczLjEgMCA0LjctNi40LTc3LjggMCAwIDYuNHptMzIzIDBsNTguNyAwIDIyLjMtMzAuMi01OC43IDBjLS4xIDAtMjIuMyAzMC4yLTIyLjMgMzAuMnptMjIyIC4xbDk1IDAgMC02LjQtOTAuMyAwLTQuNyA2LjR6TTU2Ny4zIDI3MWwtNC43IDYuNCA3Ny40IDAgMC02LjQtNzIuNyAwem0tMTMuNSAxOC4zbDg2LjIgMCAwLTYuNC04MS41IDAtNC43IDYuNHpNMzg5LjYgMjEwLjdsLTIyLjUgMzAuNi0yNi4yIDAgMjIuNS0zMC42LTU4LjcgMC0zOS4zIDUzLjQgMTQzLjYgMCAzOS4zLTUzLjQtNTguNyAwek00MjMuMSAyNzFzLTQuMyA1LjktNi40IDguN2MtNy40IDEwLS45IDIxLjYgMjMuMiAyMS42bDk0LjMgMCAyMi4zLTMwLjMtMTMzLjQgMHoiXX0sajJ0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6InRleCIsaWNvbjpbNjQwLDUxMixbXSwiZTdmZiIsIk02MjAuOCA5NS40Yy0zMC44IC40LTQyLjEgMTYuNi00Ny43IDI0LjVsLS4xIC4xLTU1LjcgODAuNSA4Mi44IDEyMS4xYzcuNSAxMC42IDExLjMgMTIuNSAzNS40IDEyLjVsMCA5LjFjLTkuMS0uNy0yOC0uNy0zNy43LS43LTEyLjQgMC0zMC44IDAtNDIuOSAuN2wwLTkuMWMxMy4yLS44IDE2LjYtNy4zIDE2LjYtMTAuMiAwLTEuMSAwLTIuMy0zLTYuNGwtNjUuNS05Ni4zLTYwLjIgODcuOWMtMS45IDIuNy0zLjggNS40LTMuOCAxMC4yIDAgNi4xIDMuNCAxMy42IDE1IDE0LjdsMCA5LjFjLTkuNC0uNy0yNy4xLS43LTM3LjItLjdsLTIuOCAwLTExLjcgODIuNi0xOTUuOSAwIDAtOS4xYzI2LjcgMCAzMC45IDAgMzAuOS0xNi45bDAtMjAzLjJjMC0xNi45LTQuMy0xNi45LTMwLjktMTYuOWwwLTEwLjMgMTkuOCAwYy00LjgtNjEuMS0xMC44LTcxLjctNjgtNzEuOGwtMjAuNyAwYy02LjggMS41LTYuOCA2LjEtNi44IDE0LjRsMCAyMDVjMCAxMy42IDEuMSAxNy44IDMyLjQgMTcuOGwxMC41IDAgMCA5LjEtLjQgMGMtMTcuOS0uMy0zNi43LS43LTU0LjktLjdzLTM2LjkgLjMtNTQuOCAuN2wtLjYgMCAwLTkuMSAxMC43IDBjMzEuNyAwIDMyLjgtNC4xIDMyLjgtMTcuOGwwLTIwNWMwLTguNyAwLTEzLjItNy4yLTE0LjNsLTIwLjggMGMtNTguNCAwLTYzLjcgMTAuOS02OC42IDczLjNsLTYuOCAwIDYuMy04My4zIDIxNy41IDAgNi4xIDgxLjggMTY0LjEgMCA5IDgzLjMtNi44IDBjLTUuMy00OS44LTEyLjEtNzMtNzAuMy03M2wtNTEuNSAwYy0xNSAwLTE1LjggMS45LTE1LjggMTQuNmwwIDkzLjMgMzUuNSAwYzM1LjUgMCAzOC45LTEyLjggMzguOS00NGw2IDAgMCA5Ny45LTYgMGMwLTMxLjgtMy40LTQ0LjgtMzguOS00NC44bC0zNS41IDAgMCAxMDUuMmMwIDEzIC43IDE0LjggMTUuOCAxNC44bDUyLjIgMGM2MS4xIDAgNjkuOS0yNS44IDc3LjQtNzMuNi03LjcgMC0xNi4zIC4yLTIyLjIgLjdsMC05LjFjNy4yIDAgMzEuNy0uNCA0Ny44LTIzLjhsNjUuNS05NS43LTcyLjctMTA2LjdjLTguMy0xMS43LTE1LjEtMTIuNS0zNS44LTEyLjVsMC05LjFjOS4xIC43IDI3LjkgLjcgMzcuNyAuNyAxMi40IDAgMzAuOCAwIDQyLjktLjdsMCA5LjFjLTEyLjUgLjQtMTYuNiA2LjgtMTYuNiAxMC4yIDAgMS4xIC40IDIuMyAzIDYuNGw1NS43IDgxLjYgNDkuNy03Mi4xYzIuNy0zLjcgNC41LTYuOCA0LjUtMTEuMyAwLTYuMS0zLTEzLjYtMTUtMTQuOGwwLTkuMWM5LjQgLjcgMjQuOCAuNyAzNy4yIC43IDkgMCAyMy4zIDAgMzItLjdsMCA5LjF6Il19LFYydD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJjbGF1ZGUiLGljb246WzUxMiw1MTIsW10sImU4NjEiLCJNMTAwLjQgMzQwLjVsMTAwLjctNTYuNSAxLjctNC45LTEuNy0yLjctNC45IDAtMTYuOC0xLTU3LjUtMS42LTQ5LjktMi4xLTQ4LjMtMi42LTEyLjItMi42LTExLjQtMTUgMS4yLTcuNSAxMC4yLTYuOSAxNC43IDEuM2MxOC45IDEuMyA0NS45IDMuMSA4MSA1LjZsMzUuMiAyLjEgNTIuMiA1LjQgOC4zIDAgMS4yLTMuNC0yLjgtMi4xLTIuMi0yLjEtNTAuMy0zNC4xLTU0LjQtMzYtMjguNS0yMC43LTE1LjQtMTAuNS03LjgtOS44LTMuNC0yMS41IDE0LTE1LjQgMTguOCAxLjMgNC44IDEuMyAxOSAxNC43IDQwLjcgMzEuNSA1My4xIDM5LjEgNy44IDYuNSAzLjEtMi4yIC40LTEuNi0zLjUtNS44LTI4LjktNTIuMi0zMC44LTUzLjEtMTMuNy0yMi0zLjYtMTMuMmMtMS4zLTUuNC0yLjItMTAtMi4yLTE1LjVsMTUuOS0yMS42IDguOC0yLjggMjEuMiAyLjggOC45IDcuOCAxMy4yIDMwLjIgMjEuNCA0Ny41IDMzLjIgNjQuNiA5LjcgMTkuMiA1LjIgMTcuOCAxLjkgNS40IDMuNCAwIDAtMy4xIDIuNy0zNi40IDUtNDQuNyA0LjktNTcuNSAxLjctMTYuMiA4LTE5LjQgMTUuOS0xMC41IDEyLjQgNS45IDEwLjIgMTQuNy0xLjQgOS41LTYuMSAzOS41LTExLjkgNjEuOS03LjggNDEuNSA0LjUgMCA1LjItNS4yIDIxLTI3LjggMzUuMi00NC4xIDE1LjUtMTcuNSAxOC4xLTE5LjMgMTEuNi05LjIgMjIgMCAxNi4yIDI0LjEtNy4zIDI0LjktMjIuNyAyOC43LTE4LjggMjQuNC0yNyAzNi4zLTE2LjggMjkgMS42IDIuMyA0LS40IDYwLjktMTMgMzIuOS01LjkgMzkuMy02LjcgMTcuOCA4LjMgMS45IDguNC03IDE3LjItNDIgMTAuNC00OS4yIDkuOC03My4zIDE3LjMtLjkgLjcgMSAxLjMgMzMgMy4xIDE0LjEgLjggMzQuNiAwIDY0LjQgNC44IDE2LjggMTEuMSAxMC4xIDEzLjYtMS43IDEwLjQtMjUuOSAxMy4yYy0xNS41LTMuNy01NC40LTEyLjktMTE2LjYtMjcuN2wtMjgtNy0zLjkgMCAwIDIuMyAyMy4zIDIyLjggNDIuNyAzOC42IDUzLjUgNDkuOCAyLjcgMTIuMy02LjkgOS43LTcuMy0xLTQ3LTM1LjQtMTguMS0xNS45LTQxLjEtMzQuNi0yLjcgMCAwIDMuNiA5LjUgMTMuOSA1MCA3NS4yIDIuNiAyMy0zLjYgNy41LTEzIDQuNS0xNC4yLTIuNi0yOS4zLTQxLjEtMzAuMi00Ni4zLTI0LjQtNDEuNS0zIDEuNy0xNC40IDE1NC44LTYuNyA3LjktMTUuNSA1LjktMTMtOS44LTYuOS0xNS45IDYuOS0zMS41IDguMy00MS4xIDYuNy0zMi43IDYuMS00MC42IDMuNi0xMy41LS4yLS45LTMgLjQtMzAuNiA0Mi00Ni41IDYyLjktMzYuOCAzOS40LTguOCAzLjUtMTUuMy03LjkgMS40LTE0LjEgOC41LTEyLjYgNTAuOS02NC44IDMwLjctNDAuMiAxOS44LTIzLjItLjEtMy40LTEuMiAwLTEzNS4zIDg3LjgtMjQuMSAzLjEtMTAuNC05LjcgMS4zLTE1LjkgNC45LTUuMiA0MC43LTI4LS4xIC4xIDAgLjF6Il19LFUydD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJzaG9waWZ5IixpY29uOls0NDgsNTEyLFtdLCJlMDU3IiwiTTM4OC41IDEwNC4xYy0uMi0xLjEtLjctMi4xLTEuNS0yLjhzLTEuOC0xLjItMi45LTEuMmMtMiAwLTM3LjItLjgtMzcuMi0uOHMtMjEuNi0yMC44LTI5LjYtMjguOGwwIDQzMi43IDEyNS43LTMxLjJzLTU0LTM2NS41LTU0LjQtMzY3Ljl6TTI4OC45IDcwLjVjLTEuOS02LjEtNC4zLTExLjktNy4yLTE3LjYtMTAuNC0yMC0yNi0zMC45LTQ0LjQtMzAuOS0xLjMgMC0yLjcgLjEtNCAuNC0uNC0uOC0xLjItMS4yLTEuNi0yLTgtOC44LTE4LjQtMTIuOC0zMC44LTEyLjQtMjQgLjgtNDggMTgtNjcuMiA0OC44LTEzLjYgMjEuNi0yNCA0OC44LTI2LjggNzAuMS0yNy42IDguNC00Ni44IDE0LjQtNDcuMiAxNC44LTE0IDQuNC0xNC40IDQuOC0xNiAxOC0xLjIgMTAtMzggMjkxLjgtMzggMjkxLjhsMzAyLjYgNTIuNSAwLTQzOC4zYy0xLjUgLjEtMi45IC4yLTQuNCAuNCAwIDAtNS42IDEuNi0xNC44IDQuNHpNMjMzLjYgODcuN2MtMTYgNC44LTMzLjYgMTAuNC01MC44IDE1LjYgNC44LTE4LjggMTQuNC0zNy42IDI1LjYtNTAgNC40LTQuNCAxMC40LTkuNiAxNy4yLTEyLjggNi44IDE0LjQgOC40IDM0IDggNDcuMnpNMjAwLjggMjQuNGM1LS4yIDEwIDEuMSAxNC40IDMuNi02LjQgMy4yLTEyLjggOC40LTE4LjggMTQuNC0xNS4yIDE2LjQtMjYuOCA0Mi0zMS42IDY2LjUtMTQuNCA0LjQtMjguOCA4LjgtNDIgMTIuOCA4LjgtMzguNCA0MS4yLTk2LjQgNzgtOTcuMnpNMTU0LjQgMjQ0LjZjMS42IDI1LjYgNjkuMiAzMS4yIDczLjIgOTEuNyAyLjggNDcuNi0yNS4yIDgwLjEtNjUuNiA4Mi41LTQ4LjggMy4yLTc1LjYtMjUuNi03NS42LTI1LjZsMTAuNC00NHMyNi44IDIwLjQgNDguNCAxOC44YzE0LS44IDE5LjItMTIuNCAxOC44LTIwLjQtMi0zMy42LTU3LjItMzEuNi02MC44LTg2LjktMy4yLTQ2LjQgMjcuMi05My4zIDk0LjUtOTcuNyAyNi0xLjYgMzkuMiA0LjggMzkuMiA0LjhsLTE1LjIgNTcuNnMtMTcuMi04LTM3LjYtNi40Yy0yOS42IDItMzAgMjAuOC0yOS42IDI1LjZ6TTI0OS42IDgyLjljMC0xMi0xLjYtMjkuMi03LjItNDMuNiAxOC40IDMuNiAyNy4yIDI0IDMxLjIgMzYuNC03LjIgMi0xNS4yIDQuNC0yNCA3LjJ6Il19LEthZT17cHJlZml4OiJmYWIiLGljb25OYW1lOiJzcXVhcmUtcmVkZGl0IixpY29uOls0NDgsNTEyLFsicmVkZGl0LXNxdWFyZSJdLCJmMWEyIiwiTTY0IDMybDMyMCAwYzM1LjMgMCA2NCAyOC43IDY0IDY0bDAgMzIwYzAgMzUuMy0yOC43IDY0LTY0IDY0TDY0IDQ4MGMtMzUuMyAwLTY0LTI4LjctNjQtNjRMMCA5NkMwIDYwLjcgMjguNyAzMiA2NCAzMnpNMzA1LjkgMTY2LjRjMjAuNiAwIDM3LjMtMTYuNyAzNy4zLTM3LjNzLTE2LjctMzcuMy0zNy4zLTM3LjNjLTE4IDAtMzMuMSAxMi44LTM2LjYgMjkuOC0zMC4yIDMuMi01My44IDI4LjgtNTMuOCA1OS45bDAgLjJjLTMyLjggMS40LTYyLjggMTAuNy04Ni42IDI1LjUtOC44LTYuOC0xOS45LTEwLjktMzItMTAuOS0yOC45IDAtNTIuMyAyMy40LTUyLjMgNTIuMyAwIDIxIDEyLjMgMzkgMzAuMSA0Ny40IDEuNyA2MC43IDY3LjkgMTA5LjYgMTQ5LjMgMTA5LjZzMTQ3LjYtNDguOSAxNDkuMy0xMDkuN2MxNy43LTguNCAyOS45LTI2LjQgMjkuOS00Ny4zIDAtMjguOS0yMy40LTUyLjMtNTIuMy01Mi4zLTEyIDAtMjMgNC0zMS45IDEwLjgtMjQtMTQuOS01NC4zLTI0LjItODcuNS0yNS40bDAtLjFjMC0yMi4yIDE2LjUtNDAuNyAzNy45LTQzLjcgMy45IDE2LjUgMTguNyAyOC43IDM2LjMgMjguN2wuMi0uMnpNMTU1IDI0OC4xYzE0LjYgMCAyNS44IDE1LjQgMjUgMzQuNHMtMTEuOCAyNS45LTI2LjUgMjUuOS0yNy41LTcuNy0yNi42LTI2LjcgMTMuNS0zMy41IDI4LjEtMzMuNWwwLS4xem0xNjYuNCAzMy41Yy45IDE5LTEyIDI2LjctMjYuNiAyNi43cy0yNS42LTYuOS0yNi41LTI1LjkgMTAuMy0zNC40IDI1LTM0LjQgMjcuMyAxNC42IDI4LjEgMzMuNWwwIC4xem0tNDIuMSA0OS42Yy05IDIxLjUtMzAuMyAzNi43LTU1LjEgMzYuN3MtNDYuMS0xNS4xLTU1LjEtMzYuN2MtMS4xLTIuNiAuNy01LjQgMy40LTUuNyAxNi4xLTEuNiAzMy41LTIuNSA1MS43LTIuNXMzNS42IC45IDUxLjcgMi41YzIuNyAuMyA0LjUgMy4xIDMuNCA1Ljd6Il19LFcydD1LYWUsRzJ0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImNyZWF0aXZlLWNvbW1vbnMtbmMiLGljb246WzUxMiw1MTIsW10sImY0ZTgiLCJNMjU1LjYgOEMzOTUuNCA4IDUwNCAxMTUuOSA1MDQgMjU2IDUwNCA0MDMuMiAzODUuNSA1MDQgMjU1LjYgNTA0IDEyMS4xIDUwNCA4IDM5My4yIDggMjU2IDggMTIzLjEgMTEyLjcgOCAyNTUuNiA4ek02My44IDE4OS4xYy03LjQgMjAuNC0xMS4xIDQyLjctMTEuMSA2Ni45IDAgMTEwLjkgOTIuMSAyMDIuNCAyMDMuNyAyMDIuNCAxMjIuNCAwIDE3Ny4yLTEwMS44IDE3OC41LTEwNC4xbC05My40LTQxLjZjLTcuNyAzNy4xLTQxLjIgNTMtNjguMiA1NS40bDAgMzguMS0yOC44IDAgMC0zOC4yYy0yNy41LS4zLTUyLjYtMTAuMi03NS4zLTI5LjdsMzQuMS0zNC41YzMxLjcgMjkuNCA4Ni40IDMxLjggODYuNC0yLjIgMC02LjItMi4yLTExLjItNi42LTE1LjEtMTQuMi02LTEuOC0uMS0yMTkuMy05Ny40ek0yNTYuNCA1Mi4zQzIxOCA1Mi4zIDE0NCA2MSA4NS45IDE0NS4zbDk0LjggNDIuNWMxMC0zMS4zIDQwLjQtNDIuOSA2My44LTQ0LjNsMC0zOC4xIDI4LjggMCAwIDM4LjFjMjIuNyAxLjIgNDMuNCA4LjkgNjIgMjNMMzAzIDE5OS43Yy00Mi43LTI5LjktODMuNS04LTcwIDExLjEgNTMuNCAyNC4xIDQzLjggMTkuOCA5MyA0MS42bDEyNy4xIDU2LjdjNC4xLTE3LjQgNi4yLTM1LjEgNi4yLTUzLjEgMC01Ny0xOS44LTEwNS01OS4zLTE0My45LTM5LjMtMzkuOS04Ny4yLTU5LjgtMTQzLjYtNTkuOHoiXX0sWTJ0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImdhbGFjdGljLXJlcHVibGljIixpY29uOls1MTIsNTEyLFtdLCJmNTBjIiwiTTI1NiA4YTI0OCAyNDggMCAxIDEgMCA0OTYgMjQ4IDI0OCAwIDEgMSAwLTQ5NnptMCAxNi41YTIzMS41IDIzMS41IDAgMSAwIDAgNDYyLjkgMjMxLjUgMjMxLjUgMCAxIDAgMC00NjIuOXptMjcuNiAyMS44bDAgMjQuNmMzMC4zIDQuNSA1OSAxNi4zIDgzLjYgMzQuNWwxNy40LTE3LjRjLTI4LjctMjIuMS02My4zLTM2LjktMTAxLTQxLjh6bS01NS40IC4xYy0zNy42IDQuOS03Mi4yIDE5LjgtMTAwLjkgNDEuOWwxNy4zIDE3LjQgLjEgMGMyNC4xLTE3LjggNTIuNi0zMC4xIDgzLjUtMzQuN2wwLTI0LjV6bTEyLjIgNTAuMmwwIDgyLjljLTEwIDItMTkuNCA1LjktMjcuNyAxMS40bC01OC42LTU4LjYtMjEuOSAyMS45IDU4LjcgNTguN2MtNS41IDguMi05LjQgMTcuNi0xMS41IDI3LjZsLTgyLjkgMCAwIDMxIDgyLjkgMGMyIDEwIDYgMTkuMyAxMS41IDI3LjVsLTU4LjcgNTguNyAyMS45IDIxLjkgNTguNi01OC42YzguNCA1LjYgMTcuOCA5LjUgMjcuNyAxMS41bDAgODIuOSAzMSAwIDAtODIuOWMxMC0yIDE5LjQtNi4xIDI3LjYtMTEuNWw1OC43IDU4LjcgMjEuOS0yMS45LTU4LjctNTguN2M1LjUtOC4yIDkuNS0xNy41IDExLjUtMjcuNWw4Mi45IDAgMC0zMS04Mi45IDBjLTItMTAtNi0xOS40LTExLjUtMjcuNmw1OC43LTU4LjctMjEuOS0yMS45LTU4LjcgNTguN2MtOC4yLTUuNS0xNy42LTkuNS0yNy42LTExLjVsMC04Mi45LTMxIDB6bTE4My4yIDMwLjdsLTE3LjQgMTcuNGMxOC4zIDI0LjYgMzAuMiA1My40IDM0LjcgODMuN2wyNC42IDBjLTUtMzcuNy0xOS44LTcyLjMtNDEuOS0xMDF6bS0zMzUuNiAuMWMtMjIuMSAyOC43LTM2LjkgNjMuMy00MS44IDEwMC45bDI0LjYgMGM0LjYtMzEgMTYuOC01OS40IDM0LjYtODMuNUw4OC4yIDEyNy40ek00Ni4zIDI4My43YzQuOSAzNy42IDE5LjcgNzIuMiA0MS44IDEwMC45bDE3LjQtMTcuNEM4Ny43IDM0My4xIDc1LjYgMzE0LjYgNzEgMjgzLjdsLTI0LjYgMCAwIDB6bTM5NC43IDBjLTQuNiAzMS0xNi44IDU5LjUtMzQuNyA4My42bDE3LjQgMTcuNGMyMi4xLTI4LjcgMzctNjMuMyA0MS45LTEwMWwtMjQuNiAwek0xNDQuNyA0MDYuNGwtMTcuNCAxNy40YzI4LjcgMjIuMSA2My4zIDM3IDEwMSA0MS45bDAtMjQuNmMtMzEtNC42LTU5LjUtMTYuOC04My42LTM0LjZ6bTIyMi41IDBjLTI0LjEgMTcuOC01Mi42IDMwLjEtODMuNiAzNC43bDAgMjQuNmMzNy43LTQuOSA3Mi4yLTE5LjggMTAxLTQxLjhsLTE3LjMtMTcuNC0uMSAweiJdfSxOQT17cHJlZml4OiJmYWIiLGljb25OYW1lOiJmYWNlYm9vayIsaWNvbjpbNTEyLDUxMixbNjJlM10sImYwOWEiLCJNNTEyIDI1NkM1MTIgMTE0LjYgMzk3LjQgMCAyNTYgMFMwIDExNC42IDAgMjU2QzAgMzc2IDgyLjcgNDc2LjggMTk0LjIgNTA0LjVsMC0xNzAuMy01Mi44IDAgMC03OC4yIDUyLjggMCAwLTMzLjdjMC04Ny4xIDM5LjQtMTI3LjUgMTI1LTEyNy41IDE2LjIgMCA0NC4yIDMuMiA1NS43IDYuNGwwIDcwLjhjLTYtLjYtMTYuNS0xLTI5LjYtMS00MiAwLTU4LjIgMTUuOS01OC4yIDU3LjJsMCAyNy44IDgzLjYgMC0xNC40IDc4LjItNjkuMyAwIDAgMTc1LjlDNDEzLjggNDk0LjggNTEyIDM4Ni45IDUxMiAyNTZ6Il19LFoydD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJnaXRsYWIiLGljb246WzUxMiw1MTIsW10sImYyOTYiLCJNNTA0IDIwNC42bC0uNy0xLjgtNjkuNy0xODEuOGMtMS40LTMuNi0zLjktNi42LTcuMi04LjYtMi40LTEuNi01LjEtMi41LTgtMi44cy01LjcgLjEtOC40IDEuMS01LjEgMi43LTcuMSA0LjhjLTEuOSAyLjEtMy4zIDQuNy00LjEgNy40bC00NyAxNDQtMTkwLjUgMC00Ny4xLTE0NGMtLjgtMi44LTIuMi01LjMtNC4xLTcuNC0yLTIuMS00LjQtMy43LTcuMS00LjgtMi42LTEtNS41LTEuNC04LjQtMS4xcy01LjYgMS4yLTggMi44Yy0zLjIgMi01LjggNS4xLTcuMiA4LjZMOS44IDIwMi44IDkgMjA0LjZjLTEwIDI2LjItMTEuMyA1NS0zLjUgODIgNy43IDI2LjkgMjQgNTAuNyA0Ni40IDY3LjZsLjMgLjIgLjYgLjQgMTA2IDc5LjVjMzguNSAyOS4xIDY2LjcgNTAuMyA4NC42IDYzLjkgMy43IDEuOSA4LjMgNC4zIDEzIDQuM3M5LjMtMi40IDEzLTQuM2MxNy45LTEzLjUgNDYuMS0zNC45IDg0LjYtNjMuOWwxMDYuNy03OS45IC4zLS4zYzIyLjQtMTYuOSAzOC43LTQwLjYgNDUuNi02Ny41IDguNi0yNyA3LjQtNTUuOC0yLjYtODJ6Il19LFgydD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJxcSIsaWNvbjpbNDQ4LDUxMixbXSwiZjFkNiIsIk00MzQuMSA0MjAuNGMtMTEuNSAxLjQtNDQuOS01Mi43LTQ0LjktNTIuNyAwIDMxLjMtMTYuMSA3Mi4yLTUxIDEwMS44IDE2LjggNS4yIDU0LjggMTkuMiA0NS44IDM0LjQtNy4zIDEyLjMtMTI1LjUgNy45LTE1OS42IDQtMzQuMSAzLjgtMTUyLjMgOC4zLTE1OS42LTQtOS0xNS4yIDI4LjktMjkuMiA0NS44LTM0LjQtMzQuOS0yOS41LTUxLjEtNzAuNC01MS4xLTEwMS44IDAgMC0zMy4zIDU0LjEtNDQuOSA1Mi43LTUuNC0uNi0xMi40LTI5LjYgOS4zLTk5LjcgMTAuMy0zMyAyMi02MC41IDQwLjEtMTA1LjgtMy4xLTExNi45IDQ1LjItMjE1IDE2MC4zLTIxNSAxMTMuNyAwIDE2My4yIDk2LjEgMTYwLjMgMjE1IDE4LjEgNDUuMiAyOS45IDcyLjkgNDAuMSAxMDUuOCAyMS44IDcwLjEgMTQuNyA5OS4xIDkuMyA5OS43eiJdfSxRMnQ9e3ByZWZpeDoiZmFiIixpY29uTmFtZToic3RyaXBlIixpY29uOls2NDAsNTEyLFtdLCJmNDI5IiwiTTE2NSAxNDQuN2wtNDMuMyA5LjItLjIgMTQyLjRjMCAyNi4zIDE5LjggNDMuMyA0Ni4xIDQzLjMgMTQuNiAwIDI1LjMtMi43IDMxLjItNS45bDAtMzMuOGMtNS43IDIuMy0zMy43IDEwLjUtMzMuNy0xNS43bDAtNjMuMiAzMy43IDAgMC0zNy44LTMzLjcgMC0uMS0zOC41em04OS4xIDUxLjZsLTIuNy0xMy4xLTM4LjQgMCAwIDE1My4yIDQ0LjMgMCAwLTEwMy4xYzEwLjUtMTMuOCAyOC4yLTExLjEgMzMuOS05LjNsMC00MC44Yy02LTIuMS0yNi43LTYtMzcuMSAxMy4xek0zNDYuNCAxMjRsLTQ0LjYgOS41IDAgMzYuMiA0NC42LTkuNSAwLTM2LjJ6TTQ0LjkgMjI4LjNjMC02LjkgNS44LTkuNiAxNS4xLTkuNyAxMy41IDAgMzAuNyA0LjEgNDQuMiAxMS40bDAtNDEuOGMtMTQuNy01LjgtMjkuNC04LjEtNDQuMS04LjEtMzYgMC02MCAxOC44LTYwIDUwLjIgMCA0OS4yIDY3LjUgNDEuMiA2Ny41IDYyLjQgMCA4LjItNy4xIDEwLjktMTcgMTAuOS0xNC43IDAtMzMuNy02LjEtNDguNi0xNC4ybDAgNDBjMTYuNSA3LjEgMzMuMiAxMC4xIDQ4LjUgMTAuMSAzNi45IDAgNjIuMy0xNS44IDYyLjMtNDcuOCAwLTUyLjktNjcuOS00My40LTY3LjktNjMuNHpNNjQwIDI2MS42YzAtNDUuNS0yMi04MS40LTY0LjItODEuNHMtNjcuOSAzNS45LTY3LjkgODEuMWMwIDUzLjUgMzAuMyA3OC4yIDczLjUgNzguMiAyMS4yIDAgMzcuMS00LjggNDkuMi0xMS41bDAtMzMuNGMtMTIuMSA2LjEtMjYgOS44LTQzLjYgOS44LTE3LjMgMC0zMi41LTYuMS0zNC41LTI2LjlsODYuOSAwYy4yLTIuMyAuNi0xMS42IC42LTE1Ljl6bS04Ny45LTE2LjhjMC0yMCAxMi4zLTI4LjQgMjMuNC0yOC40IDEwLjkgMCAyMi41IDguNCAyMi41IDI4LjRsLTQ1LjkgMHpNNDM5LjIgMTgwLjJjLTE3LjQgMC0yOC42IDguMi0zNC44IDEzLjlsLTIuMy0xMS0zOS4xIDAgMCAyMDQuOCA0NC40LTkuNCAuMS01MC4yYzYuNCA0LjcgMTUuOSAxMS4yIDMxLjQgMTEuMiAzMS44IDAgNjAuOC0yMy4yIDYwLjgtNzkuNiAuMS01MS42LTI5LjMtNzkuNy02MC41LTc5Ljd6TTQyOC42IDMwMi43Yy0xMC40IDAtMTYuNi0zLjgtMjAuOS04LjRsLS4zLTY2YzQuNi01LjEgMTEtOC44IDIxLjItOC44IDE2LjIgMCAyNy40IDE4LjIgMjcuNCA0MS40IC4xIDIzLjktMTAuOSA0MS44LTI3LjQgNDEuOHpNMzAxLjkgMzM2LjRsNDQuNiAwIDAtMTUzLjItNDQuNiAwIDAgMTUzLjJ6Il19LEoydD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJkYWlseW1vdGlvbiIsaWNvbjpbNDQ4LDUxMixbXSwiZTA1MiIsIk0yOTguOSAyNjdjLTcuNC00LjItMTUuOC02LjMtMjQuNC02LjItMTMuMiAwLTI0LjQgNC40LTMzLjQgMTMuM3MtMTMuNiAyMC0xMy42IDMzLjRjMCAxNC4xIDQuNCAyNS42IDEzLjMgMzQuNnMyMCAxMy40IDMzLjQgMTMuNGMxMy43IDAgMjUtNC42IDM0LjEtMTMuOFMzMjIgMzIxLjEgMzIyIDMwNy41YzAtOC4yLTIuMS0xNi4zLTYuMS0yMy41LTQtNy4xLTkuOC0xMy0xNy0xN3pNMCAzMmwwIDQ0OCA0NDggMCAwLTQ0OC00NDggMHpNMzc0LjcgNDA1LjNsLTUzLjEgMCAwLTIzLjktLjcgMGMtMTAuNSAxNy41LTI5LjEgMjYuMi01NS44IDI2LjItMTguNCAwLTM0LjctNC40LTQ4LjktMTMuMS0xNC4xLTguNi0yNS41LTIxLTMyLjktMzUuOC03LjctMTUuMS0xMS42LTMyLjEtMTEuNi01MC45IDAtMTguNCAzLjktMzUuMSAxMS44LTUwLjIgNy41LTE0LjcgMTguOS0yNy4xIDMyLjktMzUuOCAxNC4xLTguNyAzMC0xMy4xIDQ3LjctMTMuMSAxMC4yLS4xIDIwLjIgMS42IDI5LjcgNS4yIDguOSAzLjUgMTcuMiA5LjEgMjUgMTdsMC03Ny45IDU1LjgtMTIuMSAwIDI2NC40eiJdfSxLMnQ9e3ByZWZpeDoiZmFiIixpY29uTmFtZToic3RlYW0iLGljb246WzUxMiw1MTIsW10sImYxYjYiLCJNNTA0IDI1NmMwIDEzNy0xMTEuMiAyNDgtMjQ4LjQgMjQ4LTExMy44IDAtMjA5LjYtNzYuMy0yMzktMTgwLjRsOTUuMiAzOS4zYzYuNCAzMi4xIDM0LjkgNTYuNCA2OC45IDU2LjQgMzkuMiAwIDcxLjktMzIuNCA3MC4yLTczLjVsODQuNS02MC4yYzUyLjEgMS4zIDk1LjgtNDAuOSA5NS44LTkzLjUgMC01MS42LTQyLTkzLjUtOTMuNy05My41cy05My43IDQyLTkzLjcgOTMuNWwwIDEuMi01OS4yIDg1LjdjLTE1LjUtLjktMzAuNyAzLjQtNDMuNSAxMi4xTDggMjM2LjFDMTguMiAxMDguNCAxMjUuMSA4IDI1NS42IDggMzkyLjggOCA1MDQgMTE5IDUwNCAyNTZ6TTE2My43IDM4NC4zbC0zMC41LTEyLjZjNS42IDExLjYgMTUuMyAyMC44IDI3LjIgMjUuOCAyNi45IDExLjIgNTcuOC0xLjYgNjktMjguNCA1LjQtMTMgNS41LTI3LjMgLjEtNDAuM1MyMTQgMzA1LjYgMjAxIDMwMC4yYy0xMi45LTUuNC0yNi43LTUuMi0zOC45LS42bDMxLjUgMTNjMTkuOCA4LjIgMjkuMiAzMC45IDIwLjkgNTAuNy04LjMgMTkuOS0zMSAyOS4yLTUwLjggMjF6TTMzNy41IDEyOS44YTYyLjMgNjIuMyAwIDEgMSAwIDEyNC42IDYyLjMgNjIuMyAwIDEgMSAwLTEyNC42em0uMSAxMDlhNDYuOCA0Ni44IDAgMSAwIDAtOTMuNiA0Ni44IDQ2LjggMCAxIDAgMCA5My42eiJdfSxlc3Q9e3ByZWZpeDoiZmFiIixpY29uTmFtZToidmVubW8tdiIsaWNvbjpbNTEyLDUxMixbXSwiZTg1YiIsIk00NjYuNSAxNC44YzE3LjQgMjguNyAyNS4zIDU4LjIgMjUuMyA5NS41IDAgMTE5LTEwMS45IDI3My41LTE4NC43IDM4Mi4xbC0xODguOSAwLTc1LjgtNDUxLjUgMTY1LjQtMTUuNyA0MC4xIDMyMS4zYzM3LjQtNjAuOCA4My42LTE1Ni4zIDgzLjYtMjIxLjQgMC0zNS42LTYuMS01OS45LTE1LjctNzkuOUw0NjYuNSAxNC44eiJdfSxlbmU9e3ByZWZpeDoiZmFiIixpY29uTmFtZToic25hcGNoYXQiLGljb246WzUxMiw1MTIsWzYyMTI0LCJzbmFwY2hhdC1naG9zdCJdLCJmMmFiIiwiTTQ5Ny4xIDM2Ni42Yy0zLjQtOS4yLTkuOC0xNC4xLTE3LjEtMTguMi0xLjQtLjgtMi42LTEuNS0zLjctMS45LTIuMi0xLjEtNC40LTIuMi02LjYtMy40LTIyLjgtMTIuMS00MC42LTI3LjMtNTMtNDUuNC0zLjUtNS4xLTYuNi0xMC41LTkuMS0xNi4xLTEuMS0zLTEtNC43LS4yLTYuMyAuOC0xLjIgMS43LTIuMiAyLjktMyAzLjktMi42IDgtNS4yIDEwLjctNyA0LjktMy4yIDguOC01LjcgMTEuMi03LjQgOS40LTYuNSAxNS45LTEzLjUgMjAtMjEuMyAyLjktNS40IDQuNS0xMS4zIDQuOS0xNy40cy0uNi0xMi4yLTIuOC0xNy44Yy02LjItMTYuMy0yMS42LTI2LjQtNDAuMy0yNi40LTMuOSAwLTcuOSAuNC0xMS43IDEuMi0xIC4yLTIuMSAuNS0zLjEgLjcgLjItMTEuMi0uMS0yMi45LTEuMS0zNC41LTMuNS00MC44LTE3LjgtNjIuMS0zMi43LTc5LjItOS41LTEwLjctMjAuNy0xOS43LTMzLjItMjYuNy0yMi42LTEyLjktNDguMi0xOS40LTc2LjEtMTkuNHMtNTMuNCA2LjUtNzYgMTkuNGMtMTIuNSA3LTIzLjcgMTYuMS0zMy4zIDI2LjgtMTQuOSAxNy0yOS4yIDM4LjQtMzIuNyA3OS4yLTEgMTEuNi0xLjIgMjMuNC0xLjEgMzQuNS0xLS4zLTItLjUtMy4xLS43LTMuOS0uOC03LjgtMS4yLTExLjctMS4yLTE4LjcgMC0zNC4xIDEwLjEtNDAuMyAyNi40LTIuMiA1LjctMy4yIDExLjgtMi44IDE3LjhzMiAxMiA0LjkgMTcuNGM0LjEgNy44IDEwLjcgMTQuNyAyMCAyMS4zIDIuNSAxLjcgNi40IDQuMiAxMS4yIDcuNCAyLjYgMS43IDYuNSA0LjIgMTAuMyA2LjcgMS4zIC45IDIuNCAyIDMuMyAzLjMgLjggMS42IC44IDMuNC0uNCA2LjYtMi41IDUuNS01LjUgMTAuOC04LjkgMTUuOC0xMi4xIDE3LjctMjkuNCAzMi42LTUxLjQgNDQuNi0xMS43IDYuMi0yMy45IDEwLjMtMjkgMjQuMy0zLjkgMTAuNS0xLjMgMjIuNSA4LjUgMzIuNiAzLjYgMy44IDcuOCA2LjkgMTIuNCA5LjQgOS42IDUuMyAxOS44IDkuMyAzMC4zIDEyLjEgMi4yIC42IDQuMyAxLjUgNi4xIDIuNyAzLjYgMy4xIDMuMSA3LjkgNy44IDE0LjggMi40IDMuNiA1LjQgNi43IDkgOS4xIDEwIDYuOSAyMS4zIDcuNCAzMy4yIDcuOCAxMC44IC40IDIzIC45IDM2LjkgNS41IDUuOCAxLjkgMTEuOCA1LjYgMTguNyA5LjkgMTYuNyAxMC4zIDM5LjYgMjQuMyA3Ny44IDI0LjNzNjEuMy0xNC4xIDc4LjEtMjQuNGM2LjktNC4yIDEyLjktNy45IDE4LjUtOS44IDEzLjktNC42IDI2LjItNS4xIDM2LjktNS41IDExLjktLjUgMjMuMi0uOSAzMy4yLTcuOCA0LjItMi45IDcuNy02LjcgMTAuMi0xMS4yIDMuNC01LjggMy40LTkuOSA2LjYtMTIuOCAxLjgtMS4yIDMuNy0yLjEgNS44LTIuNiAxMC43LTIuOCAyMS02LjkgMzAuOC0xMi4yIDQuOS0yLjYgOS4zLTYuMSAxMy0xMC4ybC4xLS4yYzkuMi05LjkgMTEuNS0yMS41IDcuOC0zMS44em0tMzQgMTguM2MtMjAuNyAxMS41LTM0LjUgMTAuMi00NS4zIDE3LjEtOS4xIDUuOS0zLjcgMTguNS0xMC4zIDIzLjEtOC4xIDUuNi0zMi4yLS40LTYzLjIgOS45LTI1LjYgOC41LTQyIDMyLjgtODggMzIuOHMtNjItMjQuMy04OC4xLTMyLjljLTMxLTEwLjMtNTUuMS00LjItNjMuMi05LjktNi42LTQuNi0xLjItMTcuMi0xMC4zLTIzLjEtMTAuNy02LjktMjQuNS01LjctNDUuMy0xNy4xLTEzLjItNy4zLTUuNy0xMS44LTEuMy0xMy45IDc1LjEtMzYuNCA4Ny4xLTkyLjYgODcuNy05Ni43IC42LTUgMS40LTktNC4yLTE0LjEtNS40LTUtMjkuMi0xOS43LTM1LjgtMjQuMy0xMC45LTcuNi0xNS43LTE1LjMtMTIuMi0yNC42IDIuNS02LjUgOC41LTguOSAxNC45LTguOSAyIDAgNCAuMiA2IC43IDEyIDIuNiAyMy43IDguNiAzMC40IDEwLjIgLjggLjIgMS42IC4zIDIuNSAuMyAzLjYgMCA0LjktMS44IDQuNi01LjktLjgtMTMuMS0yLjYtMzguNy0uNi02Mi42IDIuOC0zMi45IDEzLjQtNDkuMiAyNi02My42IDYuMS02LjkgMzQuNS0zNyA4OC45LTM3UzMzOSA3NC4yIDM0NSA4MS4xYzEyLjYgMTQuNCAyMy4yIDMwLjcgMjYgNjMuNiAyLjEgMjMuOSAuMyA0OS41LS42IDYyLjYtLjMgNC4zIDEgNS45IDQuNiA1LjkgLjggMCAxLjctLjEgMi41LS4zIDYuNy0xLjYgMTguNC03LjYgMzAuNC0xMC4yIDItLjQgNC0uNyA2LS43IDYuNCAwIDEyLjQgMi41IDE0LjkgOC45IDMuNSA5LjQtMS4yIDE3LTEyLjIgMjQuNi02LjYgNC42LTMwLjQgMTkuMy0zNS44IDI0LjMtNS42IDUuMS00LjggOS4xLTQuMiAxNC4yIC41IDQuMiAxMi41IDYwLjQgODcuNyA5Ni43IDQuNCAyLjIgMTEuOSA2LjctMS4zIDE0LjF6Il19LHRzdD1lbmUscnN0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImdhbGFjdGljLXNlbmF0ZSIsaWNvbjpbNTEyLDUxMixbXSwiZjUwZCIsIk0yNDkuOSAzMy41bDAgMjYuMWMtMTMuNiAyMC42LTIzLjkgMTA4LjYtMjQuNSAyMTUuMyAxMS43LTE1LjYgMTkuMS0zMy4zIDE5LjEtNDguMmwwLTE2LjljMC01LjMgLjgtMTAuNSAyLjItMTUuNiAuNi0yLjEgMS40LTQuMSAyLjYtNS44czMuNC0zLjggNi43LTMuOCA1LjQgMi4xIDYuNyAzLjhjMS4yIDEuOCAyIDMuNyAyLjYgNS44IDEuNCA1LjEgMi4yIDEwLjMgMi4yIDE1LjZsMCAxNi45YzAgMTQuOSA3LjQgMzIuNiAxOS4xIDQ4LjItLjYtMTA2LjgtMTAuOS0xOTQuNy0yNC41LTIxNS4zbDAtMjYuMS0xMi4zIDB6TTIyMy41IDE4MS4zYy05LjUgMi4xLTE4LjcgNS4yLTI3LjUgOS4xIDguOSAxNi4xIDkuOCAzMi42IDEuNyAzNy4zLTggNC42LTIxLjgtNC4yLTMxLjQtMTkuOC0xMS42IDguOC0yMS45IDE5LjMtMzAuNiAzMS4xIDE0LjcgOS42IDIyLjkgMjIuOSAxOC4zIDMwLjctNC41IDcuNy0yMCA3LjEtMzUuNS0xLTUuOCAxMy4yLTkuNyAyNy41LTExLjYgNDIuNCA5LjcgLjIgMTguNyAyLjQgMjYuMiA2IDE3LjgtLjMgMzIuOC0yIDQwLjUtNC4yIDUuNi0yNi40IDIzLTQ4LjIgNDYuMy01OS41IC43LTI1LjYgMS45LTQ5LjcgMy41LTcyLjF6bTY1IDBjMS42IDIyLjQgMi43IDQ2LjUgMy41IDcyLjEgMjMuMyAxMS4zIDQwLjggMzMuMiA0Ni4zIDU5LjUgNy43IDIuMyAyMi43IDMuOSA0MC41IDQuMiA3LjUtMy43IDE2LjUtNS44IDI2LjItNi0xLjktMTQuOS01LjktMjkuMi0xMS43LTQyLjQtMTUuNCA4LjEtMzAuOSA4LjctMzUuNSAxLTQuNi03LjcgMy42LTIxLjEgMTguMy0zMC43LTguNy0xMS44LTE5LTIyLjMtMzAuNi0zMS4xLTkuNSAxNS42LTIzLjQgMjQuNC0zMS40IDE5LjgtOC4xLTQuNi03LjItMjEuMiAxLjctMzcuMy04LjgtMy45LTE4LTctMjcuNC05LjF6TTI1NiAxODkuOWMtMy4yIDAtNS45IDguOC02LjEgMTkuOWwwIDAgMCAxNi45YzAgNDEuNC00OSA5NS05My41IDk1LTUyIDAtMTIyLjgtMS40LTE1Ni40IDI5LjJsMCAyLjVjOS40IDE3LjEgMjAuNiAzMy4yIDMzLjIgNDggMTIuNS0yMS4xIDUxLjYtNDEgMTA4LTQxLjQgNDUuNyAxIDc5IDIwLjMgOTAuOCA0MC45IDAgMCAwIDAgMCAuMSA3LjcgMi4xIDE1LjggMy4yIDI0IDMuMiA4LjIgMCAxNi40LTEuMSAyNC0zLjIgMCAwIDAgMCAwLS4xIDExLjctMjAuNSA0NS4xLTM5LjggOTAuOC00MC45IDU2LjQgLjQgOTUuNSAyMC4zIDEwOCA0MS40IDEyLjYtMTQuOCAyMy44LTMwLjkgMzMuMi00OGwwLTIuNWMtMzMuNi0zMC42LTEwNC40LTI5LjItMTU2LjQtMjkuMi00NC41IDAtOTMuNS01My42LTkzLjUtOTVsMC0xNi45LS4xIDBjLS4yLTExLjEtMi45LTE5LjktNi4xLTE5Ljl6bTAgMTc3LjlhNDAuNiA0MC42IDAgMSAxIDAtODEuMyA0MC42IDQwLjYgMCAxIDEgMCA4MS4zem0wLTczLjZhMzMgMzMgMCAxIDAgMCA2NS45IDMzIDMzIDAgMSAwIDAtNjUuOXptMCA1OS44YTI2LjggMjYuOCAwIDEgMSAwLTUzLjYgMjYuOCAyNi44IDAgMSAxIDAgNTMuNnptLTExNC44IDEzYy0xMC4yIC4xLTIxLjYgLjQtMzAuNSAxLjcgLjQgNC40IDEuNSAxOC42IDcuMSAyOS44IDkuMS0yLjYgMTguNC0zLjkgMjcuNi0zLjkgNDEuMyAuOSA3MS41IDM0LjQgNzguMyA3NC41bC4xIDQuN2MxMC40IDEuOSAyMS4yIDIuOSAzMi4yIDIuOSAxMSAwIDIxLjgtMSAzMi4yLTIuOWwuMS00LjdjNi44LTQwLjEgMzctNzMuNSA3OC4zLTc0LjUgOS4zIDAgMTguNSAxLjMgMjcuNiAzLjkgNS42LTExLjEgNi43LTI1LjMgNy4xLTI5LjgtOC45LTEuMy0yMC4zLTEuNi0zMC41LTEuNy0xOC44IC40LTM1LjIgNC4yLTQ4LjYgOS43LTEyLjUgMTYtMjkuMiAzMC00OS42IDMzLjEtLjEgMC0uMiAwLS4zIDAgMCAwLS4xIDAtLjIgLjEtNS4yIDEuMS0xMC42IDEuNi0xNi4yIDEuNi01LjUgMC0xMC45LS41LTE2LjItMS42LS4xIDAtLjEgMC0uMi0uMS0uMSAwLS4yIDAtLjMgMC0yMC40LTMtMzctMTctNDkuNi0zMy4xLTEzLjQtNS41LTI5LjktOS4yLTQ4LjYtOS43eiJdfSxpc3Q9e3ByZWZpeDoiZmFiIixpY29uTmFtZToicGhvZW5peC1mcmFtZXdvcmsiLGljb246WzY0MCw1MTIsW10sImYzZGMiLCJNMjEyLjkgMzQ0LjNjMy44LS4xIDIyLjgtMS40IDI1LjYtMi4yLTIuNC0yLjYtNDMuNi0xLTY4LTQ5LjYtNC4zLTguNi03LjUtMTcuNi02LjQtMjcuNiAyLjktMjUuNSAzMi45LTMwIDUyLTE4LjUgMzYgMjEuNiA2My4zIDkxLjMgMTEzLjcgOTcuNSAzNyA0LjUgODQuNi0xNyAxMDguMi00NS40LS42LS4xLS44LS4yLTEtLjEtLjQgLjEtLjggLjItMS4xIC4zLTMzLjMgMTIuMS05NC4zIDkuNy0xMzQuNy0xNC44LTM3LjYtMjIuOC01My4xLTU4LjctNTEuOC03NC42IDEuOC0yMS4zIDIyLjktMjMuMiAzNS45LTE5LjYgMTQuNCAzLjkgMjQuNCAxNy42IDM4LjkgMjcuNCAxNS42IDEwLjQgMzIuOSAxMy43IDUxLjMgMTAuMyAxNC45LTIuNyAzNC40LTEyLjMgMzYuNS0xNC41LTEuMS0uMS0xLjgtLjEtMi41LS4yLTYuMi0uNi0xMi40LS44LTE4LjUtMS43LTExMS4yLTE2LjUtMTI4LjktMTYzLjYtMjUyLjUtMTczLjEtNDQuMy0zLjQtOTkuNCA4LjEtMTM2LjMgMzUtLjggLjYtMS41IDEuMi0yLjIgMS44IC4xIC4yIC4xIC4zIC4yIC41IC44IDAgMS42LS4xIDIuNC0uMiA2LjMtMSAxMi41LS44IDE4LjcgLjMgMjMuOCA0LjMgNDcuNyAyMy4xIDU1LjkgNzYuNSA1LjMgMzQuMy0uNyA1MC44IDggODYuMSAxOSA3Ny4xIDkxIDEwNy42IDEyNy43IDEwNi40ek03NS4zIDY0LjljLS45LTEtLjktMS4yLTEuMy0yIDEyLjEtMi42IDI0LjItNC4xIDM2LjYtNC44LTEuMSAxNC43LTIyLjIgMjEuMy0zNS4zIDYuOHpNMjcyLjIgNDE1LjRjLTQyLjggMS4yLTkyLTI2LjctMTIzLjUtNjEuNC00LjYtNS0xNi44LTIwLjItMTguNi0yMy40bC40LS40YzYuNiA0LjEgMjUuNyAxOC42IDU0LjggMjcgMjQuMiA3IDQ4LjEgNi4zIDcxLjYtMy4zIDIyLjctOS4zIDQxLS41IDQzLjEgMi45LTE4LjUgMy44LTIwLjEgNC40LTI0IDcuOS01LjEgNC40LTQuNiAxMS43IDcgMTcuMiAyNi4yIDEyLjQgNjMtMi44IDk3LjIgMjUuNCAyLjQgMiA4LjEgNy44IDEwLjEgMTAuNy0uMSAuMi0uMyAuMy0uNCAuNS00LjgtMS41LTE2LjQtNy41LTQwLjItOS4zLTI0LjctMi00Ni4zIDUuMy03Ny41IDYuMnpNNDQ3IDE2My40YzE2LjQtNS4yIDQxLjMtMTMuNCA2Ni41LTMuMyAxNi4xIDYuNSAyNi4yIDE4LjcgMzIuMSAzNC42IDMuNSA5LjQgNS4xIDE5LjcgNS4xIDI4LjctLjIgMC0uNCAwLS42IC4xLS4yLS40LS40LS45LS41LTEuMy01LTIyLTI5LjktNDMuOC02Ny42LTI5LjktNTAuMiAxOC42LTEzMC40IDkuNy0xNzYuOS00OC0uNy0uOS0yLjQtMS43LTEuMy0zLjIgLjEtLjIgMi4xIC42IDMgMS4zIDE4LjEgMTMuNCAzOC4zIDIxLjkgNjAuMyAyNi4yIDMwLjUgNi4xIDU0LjYgMi45IDc5LjktNS4yek01NDkuNyAyODAuOWMtMzIuNCAuMi0zMy44IDUwLjEtMTAzLjYgNjQuNC0xOC4yIDMuNy0zOC43IDQuNi00NC45IDQuMmwwLS40YzIuOC0xLjUgMTQuNy0yLjYgMjkuNy0xNi42IDcuOS03LjMgMTUuMy0xNS4xIDIyLjgtMjIuOSAxOS41LTIwLjIgNDEuNC00Mi4yIDgxLjktMzkgMjMuMSAxLjggMjkuMyA4LjIgMzYuMSAxMi43IC4zIC4yIC40IC41IC43IC45LS41IDAtLjcgLjEtLjkgMC03LTIuNy0xNC4zLTMuMy0yMS44LTMuM3ptLTEyLjMtMjQuMWMtLjEgLjItLjEgLjQtLjIgLjYtMjguOS00LjQtNDgtNy45LTY4LjUgNC0xNyA5LjktMzEuNCAyMC41LTYyIDI0LjQtMjcuMSAzLjQtNDUuMSAyLjQtNjYuMS04LS4zLS4yLS42LS40LTEtLjYgMC0uMiAuMS0uMyAuMS0uNSAyNC45IDMuOCAzNi40IDUuMSA1NS41LTUuOCAyMi4zLTEyLjkgNDAuMS0yNi42IDcxLjMtMzEgMjkuNi00LjEgNTEuMyAyLjUgNzAuOSAxNi45ek0yNjguNiA5Ny4zYy0uNi0uNi0xLjEtMS4yLTIuMS0yLjMgNy42IDAgMjkuNy0xLjIgNTMuNCA4LjQgMTkuNyA4IDMyLjIgMjEgNTAuMiAzMi45IDExLjEgNy4zIDIzLjQgOS4zIDM2LjQgOC4xIDQuMy0uNCA4LjUtMS4yIDEyLjgtMS43IC40LS4xIC45IDAgMS41IC4zLS42IC40LTEuMiAuOS0xLjggMS4yLTguMSA0LTE2LjcgNi4zLTI1LjYgNy4xLTI2LjEgMi42LTUwLjMtMy43LTczLjQtMTUuNC0xOS4zLTkuOS0zNi40LTIyLjktNTEuNC0zOC42ek02NDAgMzM1LjdjLTMuNSAzLjEtMjIuNyAxMS42LTQyLjcgNS4zLTEyLjMtMy45LTE5LjUtMTQuOS0zMS42LTI0LjEtMTAtNy42LTIwLjktNy45LTI4LjEtOC40IC42LS44IC45LTEuMiAxLjItMS40IDE0LjgtOS4yIDMwLjUtMTIuMiA0Ny4zLTYuNSAxMi41IDQuMiAxOS4yIDEzLjUgMzAuNCAyNC4yIDEwLjggMTAuNCAyMSA5LjkgMjMuMSAxMC41IC4xLS4xIC4yIDAgLjQgLjR6bS0yMTIuNSAxMzdjMi4yIDEuMiAxLjYgMS41IDEuNSAyLTE4LjUtMS40LTMzLjktNy42LTQ2LjgtMjIuMi0yMS44LTI0LjctNDEuNy0yNy45LTQ4LjYtMjkuNyAuNS0uMiAuOC0uNCAxLjEtLjQgMTMuMSAuMSAyNi4xIC43IDM4LjkgMy45IDI1LjMgNi40IDM1IDI1LjQgNDEuNiAzNS4zIDMuMiA0LjggNy4zIDguMyAxMi4zIDExLjF6Il19LGFzdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJnaXQiLGljb246WzUxMiw1MTIsW10sImYxZDMiLCJNMjE2LjMgMTU4LjRsLTc5LjMgMGMtNDAtMTAuNS0xMzAuNS03LjgtMTMwLjUgNzQuOCAwIDMwLjEgMTUgNTEuMiAzNSA2MS0yNS4xIDIzLTM3IDMzLjgtMzcgNDkuMiAwIDExIDQuNSAyMS4xIDE3LjkgMjYuOC0xNC4zIDEzLjQtMjIuNCAyMy4xLTIyLjQgNDEuNCAwIDMyLjEgMjggNTAuOCAxMDEuNiA1MC44IDcwLjggMCAxMTEuOC0yNi40IDExMS44LTczLjIgMC01OC43LTQ1LjItNTYuNS0xNTEuNi02M2wxMy40LTIxLjZjMjcuMyA3LjYgMTE4LjcgMTAgMTE4LjctNjcuOSAwLTE4LjctNy43LTMxLjctMTUtNDEuMWwzNy40LTIuOCAwLTM0LjV6TTE1Mi45IDQwMC4zYzAgMzIuMS0xMDQuOSAzMi4xLTEwNC45IDIuNCAwLTguMSA1LjMtMTUgMTAuNi0yMS41IDc3LjcgNS4zIDk0LjMgMy40IDk0LjMgMTkuMXpNMTAyLjEgMjY1LjdjLTUyLjggMC01MC41LTcxLjIgMS4yLTcxLjIgNDkuNSAwIDUwLjggNzEuMi0xLjIgNzEuMnpNMjM1LjQgMzY2LjJsMC0zMi4xYzI2LjctMy43IDI3LjItMiAyNy4yLTExbDAtMTE5LjVjMC04LjUtMi4xLTcuNC0yNy4yLTE2LjNsNC41LTMyLjkgODQuMiAwIDAgMTY4LjdjMCA2LjUgLjQgNy4zIDYuNSA4LjFsMjAuNyAyLjggMCAzMi4xLTExNS45IDB6bTUyLjUtMjQ0LjNjLTIzLjIgMC0zNi42LTEzLjQtMzYuNi0zNi42czEzLjQtMzUuOCAzNi42LTM1LjhjMjMuNiAwIDM3IDEyLjYgMzcgMzUuOHMtMTMuNCAzNi42LTM3IDM2LjZ6TTUxMiAzNTAuNWMtMTcuNSA4LjUtNDMuMSAxNi4zLTY2LjMgMTYuMy00OC40IDAtNjYuNy0xOS41LTY2LjctNjUuNWwwLTEwNi41YzAtNS40IDEtNC4xLTMxLjctNC4xbDAtMzYuMmMzNS44LTQuMSA1MC0yMiA1NC41LTY2LjNsMzguNiAwYzAgNjUuOC0xLjMgNjEuOCAzLjMgNjEuOGw1Ny4zIDAgMCA0MC42LTYwLjYgMCAwIDk3LjFjMCA2LjktNC45IDUxLjQgNjAuNiAyNi44bDExIDM1Ljh6Il19LG5zdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJvcHRpbi1tb25zdGVyIixpY29uOls1NzYsNTEyLFtdLCJmMjNjIiwiTTU3Mi44IDQyMS40YzUuNi05LjUgNC43LTE1LjItNS40LTExLjYtMy00LjktNy05LjUtMTEuMS0xMy44IDIuOS05LjctLjctMTQuMi0xMC44LTkuMi00LjYtMy4yLTEwLjMtNi41LTE1LjktOS4yIDAtMTUuMS0xMS42LTExLjYtMTcuNi01LjctMTAuNC0xLjUtMTguNy0uMy0yNi44IDUuNyAuMy02LjUgLjMtMTMgLjMtMTkuNyAxMi42IDAgNDAuMi0xMSA0NS45LTM2LjIgMS40LTYuOCAxLjYtMTMuOC0uMy0yMS45LTMtMTMuNS0xNC4zLTIxLjMtMjUuMS0yNS43LS44LTUuOS03LjYtMTQuMy0xNC45LTE1LjlzLTEyLjQgNC45LTE0LjEgMTAuM2MtOC41IDAtMTkuMiAyLjgtMjEuMSA4LjQtNS40LS41LTExLjEtMS40LTE2LjgtMS45IDIuNy0xLjkgNS40LTMuNSA4LjQtNC42IDUuNC05LjIgMTQuNi0xMS40IDI1LjctMTEuNmwwLTIuOGMxOS41LS41IDQzLTUuOSA1My44LTE4LjEgMTIuNy0xMy44IDE0LjYtMzcuMyAxMi40LTU1LjEtMi40LTE3LjMtOS43LTM3LjYtMjQuNi00OC4xLTguNC01LjktMjEuNi0uOC0yMi43IDkuNS0yLjIgMTkuNiAxLjIgMzAtMzguNiAyNS4xLTEwLjMtMjMuOC0yNC42LTQ0LjYtNDIuNy02MC02OS42LTU5LjctMTY3LjctNTMuOC0yNDQuMi0zNy42IDE5LjcgNC42IDQxLjEgOC42IDU5LjcgMTYuNS0yNi4yIDIuNC01Mi43IDExLjMtNzYuMiAyMy4yLTMyLjggMTctNDQgMjkuOS01Ni43IDQyLjQgMTQuOS0yLjIgMjguOS01LjEgNDMuOC0zLjgtOS43IDUuNC0xOC40IDEyLjItMjYuNSAyMC0yNS44IC45LTIzLjgtNS4zLTI2LjItMjUuOS0xLjEtMTAuNS0xNC4zLTE1LjQtMjIuNy05LjctMjguMSAxOS45LTMzLjUgNzkuOS0xMi4yIDEwMy41IDEwLjggMTIuMiAzNS4xIDE3LjMgNTQuOSAxNy44LS4zIDEuMS0uMyAxLjktLjMgMi43IDEwLjggLjUgMTkuNSAyLjcgMjQuNiAxMS42IDMgMS4xIDUuNyAyLjcgOC4xIDQuNi01LjQgLjUtMTEuMSAxLjQtMTYuNSAxLjktMy4zLTYuNi0xMy43LTguMS0yMS4xLTguMS0xLjYtNS43LTYuNS0xMi4yLTE0LjEtMTAuMy02LjggMS45LTE0LjEgMTAtMTQuOSAxNS45LTIyLjUgOS41LTMwLjEgMjYuOC0yNS4xIDQ3LjYgNS4zIDI0LjggMzMgMzYuMiA0NS45IDM2LjJsMCAxOS43Yy02LjYtNS0xNC4zLTcuNS0yNi44LTUuNy01LjUtNS41LTE3LjMtMTAuMS0xNy4zIDUuNy01LjkgMi43LTExLjQgNS45LTE1LjkgOS4yLTkuOC00LjktMTMuNi0xLjctMTEuMSA5LjItNC4xIDQuMy03LjggOC42LTExLjEgMTMuOC0xMC4yLTMuNy0xMSAyLjItNS40IDExLjYtMS4xIDMuNS0xLjYgNy0xLjkgMTAuOC0uNSAzMS42IDQ0LjYgNjQgNzMuNSA2NS4xIDE3LjMgLjUgMzQuNi04LjQgNDMtMjMuNSAxMTMuMiA0LjkgMjI2LjcgNC4xIDM0MC4yIDAgOC4xIDE1LjEgMjUuNCAyNC4zIDQyLjcgMjMuNSAyOS4yLTEuMSA3NC4zLTMzLjUgNzMuNS02NS4xIC4yLTMuNy0uNy03LjItMS43LTEwLjd6TTQ5OSAxNjcuNGMxLjEtMyAyLjQtOC40IDIuNC0xNC42IDAtNS45IDYuOC04LjEgMTQuMS0uOCAxMS4xIDExLjYgMTQuOSA0MC41IDEzLjggNTEuMS00LjEtMTMuNi0xMy0yOS0zMC4zLTM1Ljd6bS00LjYgNi43YzE5LjUgNi4yIDI4LjYgMjcuNiAyOS43IDQ4LjktMS4xIDIuNy0zIDUuNC00LjkgNy42LTUuNyA1LjktMTUuNCAxMC0yNi4yIDEyLjIgNC4zLTIxLjMgLjMtNDcuMy0xMi43LTYzIDQuOS0uOCAxMC45LTIuNCAxNC4xLTUuN3ptLTI0LjEgNi44YzEzLjggMTEuOSAyMCAzOS4yIDE0LjEgNjMuNS00LjEgLjUtOC4xIC44LTExLjYgLjgtMS45LTIxLjktNi44LTQ0LTE0LjMtNjQuNiAzLjcgLjMgOC4xIC4zIDExLjggLjN6TTQ3LjcgMjAzYy0xLjEtMTAuNSAyLjQtMzkuNSAxMy44LTUxLjEgNy03LjMgMTQuMS01LjEgMTQuMSAuOCAwIDYuMiAxLjQgMTEuNiAyLjQgMTQuNi0xNy4zIDYuOC0yNi4yIDIyLjItMzAuMyAzNS43em05LjcgMjcuNmMtMS45LTIuMi0zLjUtNC45LTQuOS03LjYgMS40LTIxLjMgMTAuMy00Mi43IDI5LjctNDguOSAzLjIgMy4yIDkuMiA0LjkgMTQuMSA1LjctMTMgMTUuNy0xNyA0MS42LTEyLjcgNjMtMTAuOC0yLjItMjAuNS02LTI2LjItMTIuMnptNDcuOSAxNC42Yy00LjEgMC04LjEtLjMtMTIuNy0uOC00LjYtMTguNi0xLjktMzguOSA1LjQtNTNsMCAuMyAxMi4yLTUuMWM0LjktMS45IDkuNy0zLjggMTQuOS00LjktMTAuNyAxOS43LTE3LjQgNDEuMy0xOS44IDYzLjV6bTE4NC0xMC41YTc2LjEgNzYuMSAwIDEgMSAwLTE1Mi4yIDc2LjEgNzYuMSAwIDEgMSAwIDE1Mi4yem0xMTUuNiAyMi4xYy0uMyAxNy44LTcgNDguOS0yMyA1Ny0xMy4yIDYuNi02LjUtNy41LTE2LjUtNTguMSAxMy4zIC4zIDI2LjYgLjMgMzkuNSAxLjF6bS01NC0xLjZjLjggNC45IDMuOCA0MC4zLTEuNiA0MS45LTExLjYgMy41LTQwIDQuMy01MS4xLTEuMS00LjEtMy00LjYtMzUuOS00LjMtNDEuMWwwIC4zYzE4LjktLjMgMzguMS0uMyA1NyAwek0yNzguNSAzMDljLTEzIDMuNS00MS42IDQuMS01NC42LTEuNi02LjUtMi43LTMuOC00Mi40LTEuOS01MS42IDE5LjItLjUgMzguNC0uNSA1Ny44LS44bDAgLjNjMS4xIDguMyAzLjMgNTEuMi0xLjMgNTMuN3pNMTcyIDI1Ny45YzEyLjItLjggMjQuNi0xLjQgMzYuOC0xLjYtMi40IDE1LjQtMyA0My41LTQuOSA1Mi4yLTEuMSA2LjgtNC4zIDYuOC05LjcgNC4zLTIxLjktOS44LTI3LjYtMzUuMi0yMi4yLTU0Ljl6bS0zNS40IDMxLjNjNy44LTEuMSAxNS43LTEuOSAyMy41LTIuNyAxLjYgNi4yIDMuOCAxMS45IDcgMTcuNiAxMCAxNyA0NCAzNS43IDQ1LjEgNyA2LjIgMTQuOSA0MC44IDEyLjIgNTQuOSAxMC44IDE1LjctMS40IDIzLjgtMS40IDI2LjgtMTQuMyAxMi40IDQuMyAzMC44IDQuMSA0NCAzIDExLjMtLjggMjAuOC0uNSAyNC42LTguOSAxLjEgNS4xIDEuOSAxMS42IDQuNiAxNi44IDEwLjggMjEuMyAzNy4zIDEuNCA0Ni44LTMxLjYgOC42IC44IDE3LjYgMS45IDI2LjUgMi43LS40IDEuMy0zLjggNy4zIDcuMyAxMS42LTQ3LjYgNDctOTUuNyA4Ny44LTE2My4yIDEwNy02My4yLTIwLjgtMTEyLjEtNTkuNS0xNTUuOS0xMDYuNSA5LjYtMy40IDEwLjQtOC44IDgtMTIuNXpNMTE1IDQ2MS43Yy0zLjggMTcuOC0yMS45IDI5LjctMzkuNyAyOC45LTE5LjItLjgtNDYuNS0xNy01OS4yLTM2LjUtMi43LTMxLjEgNDMuOC02MS4zIDY2LjItNTQuNiAxNC45IDQuMyAyNy44IDMwLjggMzMuNSA1NCAwIDMtLjMgNS43LS44IDguMnptLTguNy02NmMtLjUtMTMuNS0uNS0yNy0uMy00MC41bC4zIDBjMi43LTEuNiA1LjctMy44IDcuOC02LjUgNi41LTEuNiAxMy01LjEgMTUuMS05LjIgMy4zLTcuMS03LTcuNS01LjQtMTIuNCAyLjctMS4xIDUuNy0yLjIgNy44LTMuNSAyOS4yIDI5LjIgNTguNiA1Ni41IDk3LjMgNzctMzYuOCAxMS4zLTcyLjQgMjcuNi0xMDUuOSA0Ny0xLjItMTguNi03LjctMzUuOS0xNi43LTUxLjl6bTMzNy42IDY0LjZjLTEwMyAzLjUtMjA2LjIgNC4xLTMwOS40IDAgMCAuMyAwIC4zLS4zIC4zbDAtLjMgLjMgMGMzNS4xLTIxLjYgNzIuMi0zOS4yIDExMi40LTUwLjggMTEuNiA1LjEgMjMgOS41IDM0LjkgMTMuMiAyLjIgLjggMi4yIC44IDQuMyAwIDE0LjMtNC4xIDI4LjQtOS4yIDQyLjItMTUuNCA0MS41IDExLjcgNzguOCAzMS43IDExNS42IDUzem0xMC41LTEyLjRjLTM1LjktMTkuNS03My0zNS45LTExMS45LTQ3LjYgMzguMS0yMCA3MS45LTQ3LjMgMTAzLjUtNzYuNyAyLjIgMS40IDQuNiAyLjQgNy42IDMuMiAwIC44IC4zIDEuOSAuNSAyLjQtNC42IDIuNy03LjggNi4yLTUuOSAxMC4zIDIuMiAzLjggOC42IDcuNiAxNS4xIDguOSAyLjQgMi43IDUuMSA1LjEgOC4xIDYuOCAwIDEzLjgtLjMgMjcuNi0uOCA0MS4zbC4zLS4zYy05LjMgMTUuOS0xNS41IDM3LTE2LjUgNTEuN3ptMTA1LjkgNi4yYy0xMi43IDE5LjUtNDAgMzUuNy01OS4yIDM2LjUtMTkuMyAuOS00MC41LTEzLjItNDAuNS0zNyA1LjctMjMuMiAxOC45LTQ5LjcgMzMuNS01NCAyMi43LTYuOSA2OS4yIDIzLjQgNjYuMiA1NC41ek0zNzMuMSA3NS4yYy0zLjgtNzIuMS0xMDAuOC03OS43LTEyNi0yMy41IDQ0LjYtMjQuMyA5MC4zLTE1LjcgMTI2IDIzLjV6TTc1IDQwNy4xYy0xNS43IDEuNi00OS41IDI1LjQtNDkuNSA0My4yIDAgMTEuNiAxNS43IDE5LjUgMzIuMiAxNC45IDEyLjItMy4yIDMxLjEtMTcuNiAzNS45LTI3LjMgNi0xMS42LTMuNy0zMi43LTE4LjYtMzAuOHpNMjkwLjkgMjMwLjljMjguNiAwIDUxLjktMjEuNiA1MS45LTQ4LjQgMC0zNi4xLTQwLjUtNTguMS03Mi4yLTQ0LjMgOS41IDMgMTYuNSAxMS42IDE2LjUgMjEuNiAwIDIzLjMtMzMuMyAzMi00Ni41IDExLjMtNy4zIDM0LjEgMTkuNCA1OS44IDUwLjMgNTkuOHpNNjguMiA0NzQuMWMuNSA2LjUgMTIuMiAxMi43IDIxLjYgOS41IDYuOC0yLjcgMTQuNi0xMC41IDE3LjMtMTYuMiAzLTctMS4xLTIwLTkuNy0xOC40LTguOSAxLjYtMjkuNyAxNi43LTI5LjIgMjUuMXptNDMzLjItNjdjLTE0LjktMS45LTI0LjYgMTkuMi0xOC45IDMwLjggNC45IDkuNyAyNC4xIDI0LjEgMzYuMiAyNy4zIDE2LjUgNC42IDMyLjItMy4yIDMyLjItMTQuOSAwLTE3LjgtMzMuOC00MS42LTQ5LjUtNDMuMnpNNDc5IDQ0OWMtOC40LTEuNi0xMi40IDExLjMtOS41IDE4LjQgMi40IDUuNyAxMC4zIDEzLjUgMTcuMyAxNi4yIDkuMiAzLjIgMjEuMS0zIDIxLjMtOS41IC45LTguNC0yMC4yLTIzLjUtMjkuMS0yNS4xeiJdfSxvc3Q9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiamVua2lucyIsaWNvbjpbNDQ4LDUxMixbXSwiZjNiNiIsIk00NTUuNCA0MjVjLTEuNC0xMS4yLTE5LTIzLjEtMjguMi0zMS45LTUuMS01LTI5LTIzLjEtMzAuNC0yOS45LTEuNC02LjYgOS43LTIxLjUgMTMuMy0yOC45IDUuMS0xMC43IDguOC0yMy43IDExLjMtMzIuNiAxOC44LTY2LjEgMjAuNy0xNTYuOS02LjItMjExLjItMTAuMi0yMC42LTM4LjYtNDktNTYuNC02Mi41LTQyLTMxLjctMTE5LjYtMzUuMy0xNzAuMS0xNi42LTE0LjEgNS4yLTI3LjggOS44LTQwLjEgMTcuMS0zMy4xIDE5LjQtNjguMyAzMi41LTc4LjEgNzEuNi0yNC4yIDEwLjgtMzEuNSA0MS44LTMwLjMgNzcuOCAuMiA3IDQuMSAxNS44IDIuNyAyMi40LS43IDMuMy01LjIgNy42LTYuMSA5LjgtMTEuNiAyNy43LTIuMyA2NCAxMS4xIDgzLjcgOC4xIDExLjkgMjEuNSAyMi40IDM5LjIgMjUuMiAuNyAxMC42IDMuMyAxOS43IDguMiAzMC40IDMuMSA2LjggMTQuNyAxOSAxMC40IDI3LjctMi4yIDQuNC0yMSAxMy44LTI3LjMgMTcuNi0yMS4xIDEyLjUtMzYuNCAyMC4zLTU1LjkgMzQuMy0xMi42IDktMzIuMyAxMC4yLTI5LjIgMzEuMSAyLjEgMTQuMSAxMC4xIDMxLjYgMTQuNyA0NS44IC43IDIgMS40IDQuMSAyLjEgNmw0MjIgMGM0LjktMTUuMyA5LjctMzAuOSAxNC42LTQ3LjIgMy40LTExLjQgMTAuMi0yNy44IDguNy0zOS43ek0xNzQuMiAzMy43YzEuOC0uNSAzLjQgLjcgNC45IDIuNC0uMiA1LjItNS40IDUuMS04LjkgNi44LTUuNCA2LjctMTMuNCA5LjgtMjAgMTcuMi02LjggNy41LTE0LjQgMjcuNy0yMy40IDMwLTQuNSAxLjEtOS43LS44LTEzLjYtLjUtMTAuNCAuNy0xNy43IDYtMjguMyA3LjUgMTMuNi0yOS45IDU2LjEtNTQgODkuMy02My40ek02OS40IDEyNy4zYzEzLjUtMTQuOSAzMi4xLTI0LjEgNTQuOC0yNS45IDExLjcgMjkuNy04LjQgNjUtLjkgOTcuNiAyLjMgOS45IDEwLjIgMjUuNC0yLjQgMjUuNyAuMy0yOC4zLTM0LjgtNDYuMy02MS4zLTI5LjYtMS44LTIxLjUtNC45LTUxLjcgOS44LTY3Ljh6bTM2LjcgMjAwLjJjLTEtNC4xLTIuNy0xMi45LTIuMy0xNS4xIDEuNi04LjcgMTcuMS0xMi41IDExLTI0LjctMTEuMy0uMS0xMy44IDEwLjItMjQuMSAxMS4zLTI2LjcgMi42LTQ1LjYtMzUuNC00NC40LTU4LjQgMS0xOS41IDE3LjYtMzguMiA0MC4xLTM1LjggMTYgMS44IDIxLjQgMTkuMiAyNC41IDM0LjcgOS4yIC41IDIyLjUtLjQgMjYuOS03LjYtLjYtMTcuNS04LjgtMzEuNi04LjItNDcuNyAxLTMwLjMgMTcuNS01Ny42IDQuOC04Ny40IDEzLjYtMzAuOSA1My41LTU1LjMgODMuMS03MCAzNi42LTE4LjMgOTQuOS0zLjcgMTI5LjMgMTUuOCAxOS43IDExLjEgMzQuNCAzMi43IDQ4LjMgNTAuNy0xOS41LTUuOC0zNi4xIDQuMi0zMy4xIDIwLjMgMTYuMy0xNC45IDQ0LjItLjIgNTIuNSAxNi40IDcuOSAxNS44IDcuOCAzOS4zIDkgNjIuOCAyLjkgNTctMTAuNCAxMTUuOS0zOS4xIDE1Ny4xLTcuNyAxMS0xNC4xIDIzLTI0LjkgMzAuNi0yNiAxOC4yLTY1LjQgMzQuNy05OS4yIDIzLjQtNDQuNy0xNS02NS00NC44LTg5LjUtNzguOCAuNyAxOC43IDEzLjggMzQuMSAyNi44IDQ4LjQgMTEuMyAxMi41IDI1IDI2LjYgMzkuNyAzMi40LTEyLjMtMi45LTMxLjEtMy44LTM2LjIgNy4yLTI4LjYtMS45LTU1LjEtNC44LTY4LjctMjQuMi0xMC42LTE1LjQtMjEuNC00MS40LTI2LjMtNjEuNHptMjIyIDEyNC4xYzQuMS0zIDExLjEtMi45IDE3LjQtMy42LTUuNC0yLjctMTMtMy43LTE5LjMtMi4yLS4xLTQuMi0yLTYuOC0zLjItMTAuMiAxMC42LTMuOCAzNS41LTI4LjUgNDkuNi0yMC4zIDYuNyAzLjkgOS41IDI2LjIgMTAuMSAzNyAuNCA5LS44IDE4LTQuNSAyMi44LTE4LjgtLjYtMzUuOC0yLjgtNTAuNy03IC45LTYuMS0xLTEyLjEgLjYtMTYuNXptLTE3LjItMjBjLTE2LjggLjgtMjYtMS4yLTM4LjMtMTAuOCAuMi0uOCAxLjQtLjUgMS41LTEuNCAxOCA4IDQwLjgtMy4zIDU5LTQuOS03LjkgNS4xLTE0LjYgMTEuNi0yMi4yIDE3LjF6bS0xMi4xIDMzLjJjLTEuNi05LjQtMy41LTEyLTIuOC0yMC4yIDI1LTE2LjYgMjkuNyAyOC42IDIuOCAyMC4yek0xOTQuMyA0MzguNmMtMTEuNi0uNy00OC4xLTE0LTM4LjUtMjMuNyA5LjQgNi41IDI3LjUgNC45IDQxLjMgNy4zIC44IDQuNC0yLjggMTAuMi0yLjggMTYuNHpNMjYgNDk3LjFjLTQuMy0xMi43LTkuMi0yNS4xLTE0LjgtMzYuOSAzMC44LTIzLjggNjUuMy00OC45IDEwMi4yLTYzLjUgMi44LTEuMSAyMy4yIDI1LjQgMjYuMiAyNy42IDE2LjUgMTEuNyAzNyAyMSA1Ni4yIDMwLjIgMS4yIDguOCAzLjkgMjAuMiA4LjcgMzUuNSAuNyAyLjMgMS40IDQuNyAyLjIgNy4ybC0xODAuNyAwIDAtLjF6bTI0MC42IDUuN2wtLjggMGMuMy0uMiAuNS0uNCAuOC0uNWwwIC41em03LjUtNS43YzIuMS0xLjQgNC4zLTIuOCA2LjQtNC4zIDEuMSAxLjQgMi4yIDIuOCAzLjIgNC4zbC05LjYgMHptMTUuMS0yNC43Yy0xMC44IDcuMy0yMC42IDE4LjMtMzMuMyAyNS4yLTYgMy4zLTI3IDExLjctMzMuNCAxMC4yLTMuNi0uOC0zLjktNS4zLTUuNC05LjUtMy4xLTktMTAuMS0yMy40LTEwLjgtMzctLjgtMTcuMi0yLjUtNDYgMTYtNDIuNCAxNC45IDIuOSAzMi4zIDkuNyA0My45IDE2LjEgNy4xIDMuOSAxMS4xIDguNiAyMS45IDkuNS0uMSAxLjQtLjEgMi44LS4yIDQuMy01LjkgMy45LTE1LjMgMy44LTIxLjggNy4xIDkuNSAuNCAxNyAyLjcgMjMuNSA1LjktLjEgMy40LS4zIDctLjQgMTAuNnptNTMuNCAyNC43bC0xNCAwYy0uMS0zLjItMi44LTUuOC02LjEtNS44cy01LjkgMi42LTYuMSA1LjhsLTE3LjQgMGMtMi44LTQuNC01LjctOC42LTguOS0xMi41IDIuMS0yLjIgNC00LjcgNi02LjkgOSAzLjcgMTQuOC00LjkgMjEuNy00LjIgNy45IC44IDE0LjIgMTEuNyAyNS40IDExbC0uNiAxMi42em04LjcgMGMuMi00IC40LTcuOCAuNi0xMS41IDE1LjYtNy4zIDI5IDEuMyAzNS43IDExLjVsLTM2LjMgMHptODMuNC0zN2MtMi4zIDExLjItNS44IDI0LTkuOSAzNy4xLS4yLS4xLS40LS4xLS42LS4xbC0yNy45IDBjLjYtMS4xIDEuMi0yLjIgMS45LTMuMy0yLjYtNi4xLTktOC43LTEwLjktMTUuNSAxMi4xLTIyLjcgNi41LTkzLjQtMjQuMi03OC41IDQuMy02LjMgMTUuNi0xMS41IDIwLjgtMTkuMyAxMyAxMC40IDIwLjggMjAuMyAzMy4yIDMxLjQgNi44IDYgMjAgMTMuMyAyMS40IDIzLjEgLjggNS41LTIuNiAxOC45LTMuOCAyNS4xek0xOTAuNSAxMzAuNWM1LjQtMTQuOSAyNy4yLTM0LjcgNDUtMzIgNy43IDEuMiAxOCA4LjIgMTIuMiAxNy43LTMwLjItNy00NS4yIDEyLjYtNTQuNCAzMy4xLTguMS0yLTQuOS0xMy4xLTIuOC0xOC44em0xODQuMSA2My4xYzguMi0zLjYgMjIuNC0uNyAyOS42LTUuMy00LjItMTEuNS0xMC4zLTIxLjQtOS4zLTM3LjcgLjUgMCAxIDAgMS40IC4xIDYuOCAxNC4yIDEyLjcgMjkuMiAyMS40IDQxLjctNS43IDEzLjUtNDMuNiAyNS40LTQzLjEgMS4yem0tOTYuOCAyLjdjLTYuOC0xMC45LTE5LTMyLjUtMTQuNS00NS4zIDYuNSAxMS45IDguNiAyNC40IDE3LjggMzMuMyA0LjEgNCAxMi4yIDkgOC4yIDIwLjItLjkgMi43LTcuOCA4LjYtMTEuNyA5LjctMTQuNCA0LjMtNDcuOSAuOS0zNi42LTE3LjEgMTEuOSAuNyAyNy45IDcuOCAzNi44LS44em0yNy4zIDcwYzMuOCA2LjYgMS40IDE4LjcgMTIuMSAyMC42IDIwLjIgMy40IDQzLjYtMTIuMyA1OC4xLTE3LjggOS0xNS4yLS44LTIwLjctOC45LTMwLjUtMTYuNi0yMC0zOC44LTQ0LjgtMzgtNzQuNyA2LjctNC45IDcuMyA3LjQgOC4yIDkuNyA4LjcgMjAuMyAzMC40IDQ2LjIgNDYuMyA2My41IDMuOSA0LjMgMTAuMyA4LjQgMTEgMTEuMiAyLjEgOC4yLTUuNCAxOC00LjUgMjMuNS0yMS43IDEzLjktNDUuOCAyOS4xLTgxLjQgMjUuNi03LjQtNi43LTEwLjMtMjEuNC0yLjktMzEuMXptLTIwMS4zLTkuMmMtNi44LTMuOS04LjQtMjEtMTYuNC0yMS40LTExLjQtLjctOS4zIDIyLjItOS4zIDM1LjUtNy44LTcuMS05LjItMjkuMS0zLjUtNDAuMy02LjYtMy4yLTkuNSAzLjYtMTMuMSA1LjkgNC43LTM0LjEgNDkuOC0xNS44IDQyLjMgMjAuM3ptMjk5LjYgMjguOGMtMTAuMSAxOS4yLTI0LjQgNDAuNC01NCA0MS0uNi02LjItMS4xLTE1LjYgMC0xOS40IDIyLjctMi4yIDM2LjYtMTMuNyA1NC0yMS42ek0yNjEuNSAyOTguM2MxOC45IDkuOSA1My42IDExIDc5LjMgMTAuMiAxLjQgNS42IDEuMyAxMi42IDEuNCAxOS40LTMzIDEuOC03Mi02LjQtODAuNy0yOS42ek0zNTMuNyAzNDVjLTEuNyA0LjMtNS4zIDkuMy05LjggMTEuMS0xMi4xIDQuOS00NS42IDguNy02Mi40LS4zLTEwLjctNS43LTE3LjUtMTguNS0yMy40LTI2LTIuOC0zLjYtMTYuOS0xMi45LS4yLTEyLjkgMTMuMSAzMi43IDU4IDI5IDk1LjggMjguMXoiXX0sc3N0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6InNsaWRlc2hhcmUiLGljb246WzUxMiw1MTIsW10sImYxZTciLCJNMTg3LjkgMTUzLjdjLTM0IDAtNjEuNyAyNS43LTYxLjcgNTcuNyAwIDMxLjcgMjcuNyA1Ny43IDYxLjcgNTcuN3M2MS43LTI2IDYxLjctNTcuN2MwLTMyLTI3LjctNTcuNy02MS43LTU3Ljd6bTE0My40IDBjLTM0IDAtNjEuNyAyNS43LTYxLjcgNTcuNyAwIDMxLjcgMjcuNyA1Ny43IDYxLjcgNTcuNyAzNC4zIDAgNjEuNy0yNiA2MS43LTU3LjcgLjEtMzItMjcuNC01Ny43LTYxLjctNTcuN3ptMTU2LjYgOTBsLTYgNC4zIDAtMTk4LjNjMC0yNy40LTIwLjYtNDkuNy00Ni00OS43TDc2LjggMGMtMjUuNCAwLTQ2IDIyLjMtNDYgNDkuN2wwIDE5OC4zYy0yLTEuNC00LjMtMi45LTYuMy00LjMtMTUuMS0xMC42LTI1LjEgNC0xNiAxNy43IDE4LjMgMjIuNiA1My4xIDUwLjMgMTA2LjMgNzItNTYuMyAxOTEuNyAxMzcuNCAyMjIuMyAxMzQuMyAxMjQuMSAwLS43IC4zLTU2LjYgLjMtOTYuNiA1LjEgMS4xIDkuNCAyLjMgMTMuNyAzLjEgMCAzOS43IC4zIDkyLjggLjMgOTMuNS0zLjEgOTguMyAxOTAuNiA2Ny43IDEzNC4zLTEyNCA1My4xLTIxLjcgODgtNDkuNCAxMDYuMy03MiA5LjEtMTMuOC0uOS0yOC4zLTE2LjEtMTcuOHptLTMwLjUgMTkuMmMtNjguOSAzNy40LTEyOC4zIDMxLjEtMTYwLjYgMjkuNy0yMy43LS45LTMyLjYgOS4xLTMzLjcgMjQuOS0xMC4zLTcuNy0xOC42LTE1LjUtMjAuMy0xNy4xLTUuMS01LjQtMTMuNy04LTI3LjEtNy43LTMxLjcgMS4xLTg5LjcgNy40LTE1Ny40LTI4bDAtMTkyLjRjMC0zNC45IDguOS00NS43IDQwLjYtNDUuN2wzMTcuNyAwYzMwLjMgMCA0MC45IDEyLjkgNDAuOSA0NS43bDAgMTkwLjYtLjEgMHoiXX0sbHN0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6InViZXIiLGljb246WzQ0OCw1MTIsW10sImY0MDIiLCJNNDE0LjEgMzJMMzMuOSAzMkMxNS4yIDMyIDAgNDcuMiAwIDY1LjlMMCA0NDZjMCAxOC44IDE1LjIgMzQgMzMuOSAzNEw0MTQgNDgwYzE4LjcgMCAzMy45LTE1LjIgMzMuOS0zMy45bDAtMzgwLjJDNDQ4IDQ3LjIgNDMyLjggMzIgNDE0LjEgMzJ6TTIzNy42IDM5MS4xQzE2MyAzOTguNiA5Ni40IDM0NC4yIDg4LjkgMjY5LjZsOTQuNCAwIDAgMjAuNGMwIDMuNyAzIDYuOCA2LjggNi44bDY3LjkgMGMzLjcgMCA2LjgtMyA2LjgtNi44bDAtNjcuOWMwLTMuNy0zLTYuOC02LjgtNi44bC02Ny45IDBjLTMuNyAwLTYuOCAzLTYuOCA2LjhsMCAyMC40LTk0LjQgMGM3LTY5LjQgNjUuNC0xMjIuMiAxMzUuMS0xMjIuMnMxMjguMSA1Mi44IDEzNS4xIDEyMi4yYzcuNSA3NC41LTQ2LjkgMTQxLjEtMTIxLjUgMTQ4LjZ6Il19LGNzdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJkaWdpdGFsLW9jZWFuIixpY29uOls1MTIsNTEyLFtdLCJmMzkxIiwiTTg3IDQ4MS44bDczLjcgMCAwLTczLjYtNzMuNyAwIDAgNzMuNnpNMjUuNCAzNDYuNmwwIDYxLjYgNjEuNiAwIDAtNjEuNi02MS42IDB6TTQ5MS42IDE3Ni45QzQ2OC42IDEwMi43IDQwOS4yIDQzLjYgMzM1IDIwLjMgMTY0LjktMzIuOCA4IDkzLjcgOCAyNTUuOWw5NS44IDBjMC0xMDEuOCAxMDEtMTgwLjUgMjA4LjEtMTQxLjcgMzkuNyAxNC4zIDcxLjUgNDYuMSA4NS44IDg1LjcgMzkuMSAxMDctMzkuNyAyMDcuOC0xNDEuNCAyMDhsMCAuMy0uMyAwIDAgOTUuOGMxNjIuNiAwIDI4OC44LTE1Ni44IDIzNS42LTMyNy4xem0tMjM1LjMgMjMxbDAtOTUuMy05NS42IDAgMCA5NS42IDk1LjMgMCAwLS4zIC4zIDB6Il19LGRzdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJzb3VuZGNsb3VkIixpY29uOls2NDAsNTEyLFtdLCJmMWJlIiwiTTY0MC4yIDI5OC42Yy0xLjMgMjMuMS0xMS41IDQ0LjgtMjguNCA2MC41cy0zOS4yIDI0LjQtNjIuMyAyNC4xbC0yMTggMGMtNC44IDAtOS40LTItMTIuOC01LjRzLTUuMy04LTUuMy0xMi44bDAtMjM0LjhjLS4yLTQgLjktOCAzLjEtMTEuNHM1LjMtNi4xIDktNy43YzAgMCAyMC4xLTEzLjkgNjIuMy0xMy45IDI1LjggMCA1MS4xIDYuOSA3My4zIDIwLjEgMTcuMyAxMC4yIDMyLjMgMjMuOCA0NC4xIDQwLjFzMjAgMzQuOCAyNC4yIDU0LjRjNy41LTIuMSAxNS4zLTMuMiAyMy4xLTMuMiAxMS43LS4xIDIzLjMgMi4yIDM0LjIgNi43czIwLjUgMTEuMyAyOC43IDE5LjcgMTQuNiAxOC4zIDE4LjkgMjkuMyA2LjMgMjIuNiA1LjkgMzQuM3ptLTM1NC0xNTMuNWMuMS0xIDAtMi0uMy0yLjlzLS44LTEuOC0xLjUtMi42LTEuNS0xLjMtMi40LTEuN2MtMS44LS44LTQtLjgtNS44IDAtLjkgLjQtMS43IDEtMi40IDEuN3MtMS4yIDEuNi0xLjUgMi42LS40IDEuOS0uMyAyLjljLTYgNzguOS0xMC42IDE1Mi45IDAgMjMxLjYgLjIgMS43IDEgMy4zIDIuMyA0LjUgMi42IDIuNCA2LjggMi40IDkuNCAwIDEuMy0xLjIgMi4xLTIuOCAyLjMtNC41IDExLjMtNzkuNCA2LjYtMTUyIDAtMjMxLjZsLjIgMHptLTQ0IDI3LjNjLS4yLTEuOC0xLjEtMy41LTIuNC00LjdzLTMuMS0xLjktNS0xLjktMy42IC43LTUgMS45LTIuMiAyLjktMi40IDQuN2MtNy45IDY3LjktNy45IDEzNi41IDAgMjA0LjQgLjMgMS44IDEuMiAzLjQgMi41IDQuNXMzLjEgMS44IDQuOCAxLjggMy41LS42IDQuOC0xLjggMi4yLTIuOCAyLjUtNC41YzguOC02Ny44IDguOC0xMzYuNSAuMS0yMDQuNGwuMSAwem0tNDQuMy02LjljLS4yLTEuOC0xLTMuNC0yLjMtNC42cy0zLTEuOC00LjgtMS44LTMuNSAuNy00LjggMS44LTIuMSAyLjgtMi4zIDQuNmMtNi43IDcyLTEwLjIgMTM5LjMgMCAyMTEuMSAwIDEuOSAuNyAzLjcgMi4xIDVzMy4xIDIuMSA1IDIuMSAzLjctLjcgNS0yLjEgMi4xLTMuMSAyLjEtNWMxMC41LTcyLjggNy4zLTEzOC4yIC4xLTIxMS4xbC0uMSAwem0tNDQgMjAuNmMwLTEuOS0uOC0zLjgtMi4xLTUuMnMtMy4yLTIuMS01LjItMi4xLTMuOCAuOC01LjIgMi4xLTIuMSAzLjItMi4xIDUuMmMtOC4xIDYzLjMtOC4xIDEyNy41IDAgMTkwLjggLjIgMS44IDEgMy40IDIuNCA0LjZzMy4xIDEuOSA0LjggMS45IDMuNS0uNyA0LjgtMS45IDIuMi0yLjggMi40LTQuNmM4LjgtNjMuMyA4LjktMTI3LjUgLjMtMTkwLjhsLS4xIDB6bS00NC41IDQ3LjZjMC0xLjktLjgtMy44LTIuMS01LjFzLTMuMi0yLjEtNS4xLTIuMS0zLjggLjgtNS4xIDIuMS0yLjEgMy4yLTIuMSA1LjFjLTEwLjUgNDkuMi01LjUgOTMuOSAuNCAxNDMuNiAuMyAxLjYgMS4xIDMuMSAyLjMgNC4yczIuOCAxLjcgNC41IDEuNyAzLjItLjYgNC41LTEuNyAyLjEtMi41IDIuMy00LjJjNi42LTUwLjQgMTEuNi05NC4xIC40LTE0My42em0tNDQuMS03LjVjLS4yLTEuOC0xLjEtMy41LTIuNC00LjhzLTMuMi0xLjktNS0xLjktMy42IC43LTUgMS45LTIuMiAyLjktMi40IDQuOGMtOS4zIDUwLjItNi4yIDk0LjQgLjMgMTQ0LjUgLjcgNy42IDEzLjYgNy41IDE0LjQgMCA3LjItNTAuOSAxMC41LTkzLjggLjMtMTQ0LjVsLS4yIDB6TTIwLjcgMjUwLjhjLS4yLTEuOC0xLjEtMy41LTIuNC00LjhzLTMuMi0xLjktNS0xLjktMy42IC43LTUgMS45LTIuMyAyLjktMi40IDQuOGMtOC41IDMzLjctNS45IDYxLjYgLjYgOTUuNCAuMiAxLjcgMSAzLjMgMi4zIDQuNHMyLjkgMS44IDQuNyAxLjggMy40LS42IDQuNy0xLjggMi4xLTIuNyAyLjMtNC40YzcuNS0zNC41IDExLjItNjEuOCAuNC05NS40bC0uMiAweiJdfSx1c3Q9e3ByZWZpeDoiZmFiIixpY29uTmFtZToic3F1YXJlLWZpZ21hIixpY29uOls0NDgsNTEyLFtdLCJlN2U0IiwiTTM4NCAzMmMzNS4zIDAgNjQgMjguNyA2NCA2NGwwIDMyMGMwIDM1LjMtMjguNyA2NC02NCA2NEw2NCA0ODBjLTM1LjMgMC02NC0yOC43LTY0LTY0TDAgOTZDMCA2MC43IDI4LjcgMzIgNjQgMzJsMzIwIDB6TTE3My43IDk2Yy0zMyAwLTU5LjggMjYuOC01OS44IDU5LjggMCAyMSAxMC44IDM5LjQgMjcuMiA1MC4xLTE2LjQgMTAuNy0yNy4yIDI5LjEtMjcuMiA1MC4xczEwLjggMzkuNSAyNy4yIDUwLjFjLTE2LjQgMTAuNy0yNy4yIDI5LjEtMjcuMiA1MC4xIDAgMzMuMSAyNy4xIDU5LjggNjAuMSA1OS44IDMzLjIgMCA2MC42LTI2LjkgNjAuNi02MC4zbDAtNTUuN2MxMC42IDkuOCAyNC44IDE1LjggNDAuNCAxNS44bDEuMSAwYzMzIDAgNTkuOC0yNi44IDU5LjgtNTkuOCAwLTIxLTEwLjgtMzkuNS0yNy4yLTUwLjEgMTYuNC0xMC43IDI3LjItMjkuMSAyNy4yLTUwLjEgMC0zMy0yNi44LTU5LjgtNTkuOC01OS44TDE3My43IDk2em00MS42IDIxOS44bDAgMzkuOWMwIDIyLjYtMTguNiA0MS00MS4zIDQxLTIyLjQgMC00MC43LTE4LjItNDAuNy00MC41IDAtMjIuMyAxOC4xLTQwLjQgNDAuMy00MC40bDQxLjcgMHptMC0xMDAuM2wwIDgwLjktNDEuNyAwYy0yMi4zLS4xLTQwLjMtMTguMi00MC4zLTQwLjUgMC0yMi4zIDE4LjEtNDAuNSA0MC41LTQwLjVsNDEuNiAwem02MC44IDBjMjIuMyAwIDQwLjUgMTguMSA0MC41IDQwLjVzLTE4LjEgNDAuNS00MC41IDQwLjVsLTEuMSAwYy0yMi4zIDAtNDAuNC0xOC4xLTQwLjQtNDAuNXMxOC4xLTQwLjUgNDAuNC00MC41bDEuMSAwem0tNjAuOC0xOS4zbC00MS42IDBjLTIyLjMgMC00MC41LTE4LjEtNDAuNS00MC40czE4LjEtNDAuNSA0MC41LTQwLjVsNDEuNiAwIDAgODAuOXptNjAuOC04MC45YzIyLjMgMCA0MC41IDE4LjEgNDAuNSA0MC41cy0xOC4xIDQwLjQtNDAuNSA0MC40bC00MS41IDAgMC04MC45IDQxLjUgMHoiXX0scHN0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImNyZWF0aXZlLWNvbW1vbnMtc2EiLGljb246WzUxMiw1MTIsW10sImY0ZWYiLCJNMjU1LjYgOEMzOTcuNCA4IDUwNCAxMTguMSA1MDQgMjU2IDUwNCA0MDMuMSAzODUuNSA1MDQgMjU1LjYgNTA0IDEyMS42IDUwNCA4IDM5NC41IDggMjU2IDggMTIzLjEgMTEyLjcgOCAyNTUuNiA4em0uOCA0NC43Yy0xMTguMiAwLTIwMy43IDk3LjktMjAzLjcgMjAzLjMgMCAxMDkuOCA5MS4yIDIwMi44IDIwMy43IDIwMi44IDEwMy4yIDAgMjAyLjgtODEuMSAyMDIuOC0yMDIuOCAuMS0xMTMuOC05MC4yLTIwMy4zLTIwMi44LTIwMy4zek0xNDUuNyAyMjFjMTMtODMuOSA4MC41LTk1LjcgMTA4LjktOTUuNyA5OS44IDAgMTI3LjUgODIuNSAxMjcuNSAxMzQuMiAwIDYzLjYtNDEgMTMyLjktMTI4LjkgMTMyLjktMzguOSAwLTk5LjEtMjAtMTA5LjQtOTdsNjIuNSAwYzEuNSAzMC4xIDE5LjYgNDUuMiA1NC41IDQ1LjIgMjMuMyAwIDU4LTE4LjIgNTgtODIuOCAwLTgyLjUtNDkuMS04MC42LTU2LjctODAuNi0zMy4xIDAtNTEuNyAxNC42LTU1LjggNDMuOGwxOC4yIDAtNDkuMiA0OS4yLTQ5LTQ5LjIgMTkuNCAweiJdfSxoc3Q9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiY2hyb21lIixpY29uOls1MTIsNTEyLFtdLCJmMjY4IiwiTTAgMjU2YzAtNDYuNiAxMi41LTkwLjQgMzQuMy0xMjguOUwxNDQuMSAzMTguM2MyMS45IDM5LjIgNjMuOCA2NS43IDExMS45IDY1LjcgMTQuMyAwIDI3LjEtMi4zIDQwLjgtNi42TDIyMC41IDUwOS42Qzk1LjkgNDkyLjMgMCAzODUuMyAwIDI1NnptMzY1LjEgNjUuNmMxMi4zLTE5LjIgMTguOS00Mi41IDE4LjktNjUuNiAwLTM4LjItMTYuOC03Mi41LTQzLjMtOTZsMTUyLjcgMGMxMiAyOS42IDE4LjYgNjIuMSAxOC42IDk2IDAgMTQxLjQtMTE0LjYgMjU1LjEtMjU2IDI1NkwzNjUuMSAzMjEuNnpNNDc3LjggMTI4TDI1NiAxMjhjLTYyLjkgMC0xMTMuNyA0NC4xLTEyNS41IDEwMi43TDU0LjIgOTguNUMxMDEgMzguNSAxNzQgMCAyNTYgMCAzNTAuOCAwIDQzMy41IDUxLjUgNDc3LjggMTI4ek0zNDQgMjU2YTg4IDg4IDAgMSAxIC0xNzYgMCA4OCA4OCAwIDEgMSAxNzYgMHoiXX0sZnN0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6InRyYWRlLWZlZGVyYXRpb24iLGljb246WzUxMiw1MTIsW10sImY1MTMiLCJNMjU2IDguOGEyNDcuMiAyNDcuMiAwIDEgMCAwIDQ5NC40IDI0Ny4yIDI0Ny4yIDAgMSAwIDAtNDk0LjR6bTAgMTEuNmEyMzUuNiAyMzUuNiAwIDEgMSAwIDQ3MS4yIDIzNS42IDIzNS42IDAgMSAxIDAtNDcxLjJ6TTQxMS4xIDE2My4xbDAtNDYuOC0xOTMuOCAwIDAgODEuNy0xNTUuMSAwIDM2LjcgNDYgMTE3LjcgMCAwIDE5Ni44IDQ4LjggMCAwLTE5NS44IDgzLjMgMCAwLTQ3LTgzLjMgMCAwLTM0LjggMTQ1LjcgMCAwLS4xem0tNzMuMyA0NS4xbDAgMjMuOS04Mi45IDAgMCAxOTcuNC0yNi44IDAgMC0xOTcuNC0xMjMuOCAwLTIwLjEtMjMuOSAxNDMuOSAwIDAtODAuNiAxNzEuOCAwIDAgMjQuNC0xNDUgMCAwIDU2LjIgODIuOSAwem0tMTYxLjMtNjlsLTEyLjQtMjAuNyAyLjEgMjMuOC0yMy41IDUuNCAyMy4zIDUuNC0yLjEgMjQgMTIuMy0yMC41IDIyLjIgOS41LTE1LjctMTguMSAxNS44LTE4LjEtMjIgOS4zem0tMjkuNi0xOS43bDkuMy0xMS41LTEyLjcgNS45LTgtMTIuNCAxLjcgMTMuOS0xNC4zIDMuOCAxMy43IDIuNy0uOCAxNC43IDYuOC0xMi4yIDEzLjggNS4zLTkuNS0xMC4yek0zMTIuMyAyNjQuN2wtMTMuMSA1LjYtNy4zLTEyLjIgMS4zIDE0LjItMTMuOSAzLjIgMTMuOSAzLjItMS4yIDE0LjIgNy4zLTEyLjIgMTMuMSA1LjUtOS40LTEwLjcgOS4zLTEwLjh6bTEwNi45LTc3LjJsLTIwLjkgOS4xLTEyLTE5LjYgMi4yIDIyLjctMjIuMyA1LjQgMjIuMiA0LjktMS44IDIyLjkgMTEuNS0xOS42IDIxLjIgOC44LTE1LjEtMTcgMTUtMTcuNnpNMjU2IDI5LjlhMjI2LjEgMjI2LjEgMCAxIDAgMCA0NTIuMiAyMjYuMSAyMjYuMSAwIDEgMCAwLTQ1Mi4yek0zNTAuNiAxOTZsMCA1MS04My4zIDAgMCAxOTUuNy01Mi43IDAgMC0xOTYuOC0xMTYuNyAwLTQwLTQ5LjkgMTU3LjQgMCAwLTgxLjYgMTk3LjggMCAwIDUwLjctMTQ1LjcgMCAwIDMwLjkgODMuMiAwek0yNTYgNDMuMmM2MC4zIDAgMTE0LjggMjUgMTUzLjYgNjUuMmwtMTk5LjEgMCAwIDgxLjYtMTU3LjQgMEM4MS4xIDEwNC44IDE2MS40IDQzLjIgMjU2IDQzLjJ6bTAgNDI3LjFjLTExNy45IDAtMjEzLjYtOTUuNi0yMTMuNi0yMTMuNSAwLTIxLjIgMy4xLTQxLjggOC45LTYxLjFsNDMuOCA1Ni4zIDExNC43IDAgMCAxOTYuOCA2NC42IDAgMC0xOTUuOCA4My4zIDAgMC02Mi43LTgzLjIgMCAwLTE5LjIgMTQ1LjYgMCAwLTUwLjhjMzAuOCAzNyA0OS4zIDg0LjYgNDkuMyAxMzYuNSAuMSAxMTcuOS05NS41IDIxMy41LTIxMy40IDIxMy41ek0xODYuOCAyNzVsLTExLTIxLjQgMS43IDI0LjUtMjMuNyAzLjkgMjMuOCA1LjktMy43IDIzLjggMTMtMjAuOSAyMS41IDEwLjgtMTUuOC0xOC44IDE2LjktMTcuMS0yMi43IDkuM3oiXX0sbXN0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6InZhYWRpbiIsaWNvbjpbNDQ4LDUxMixbXSwiZjQwOCIsIk0yMjQuNSAxNDAuN0MyMjYgMTIzLjEgMjI5LjQgODggMjc0LjMgODhsOTguNiAwYzIwLjcgMCAzMi4xLTcuOCAzMi4xLTIxLjZsMC0xMi4zYzAtMTIuMiA5LjMtMjIuMSAyMS41LTIyLjFTNDQ4IDQxLjkgNDQ4IDU0LjFsMCAzNi41YzAgNDIuOS0yMS41IDYyLTY2LjggNjJsLTEwMC41IDBjLTMwLjEgMC0zMyAxNC43LTMzIDI3LjEgMCAxLjMtLjEgMi41LS4yIDMuNy0uNyAxMi4zLTEwLjkgMjIuMi0yMy40IDIyLjJzLTIyLjctOS44LTIzLjQtMjIuMmMtLjEtMS4yLS4yLTIuNC0uMi0zLjcgMC0xMi4zLTMtMjcuMS0zMy0yNy4xbC0xMDAuNyAwQzIxLjUgMTUyLjYgMCAxMzMuNSAwIDkwLjZMMCA1NC4xQzAgNDEuOSA5LjQgMzIgMjEuNiAzMnMyMS41IDkuOSAyMS41IDIyLjFsMCAxMi4zQzQzLjEgODAuMiA1NC41IDg4IDc1LjIgODhsOTguNiAwYzQ0LjggMCA0OC4zIDM1LjEgNDkuOCA1Mi43bC45IDB6TTIyNCA0NTZjMTEuNSAwIDIxLjQtNyAyNS43LTE2LjMgMS4xLTEuOCA5Ny4xLTE2OS42IDk4LjItMTcxLjQgMTEuOS0xOS42LTMuMi00NC4zLTI3LjItNDQuMy0xMy45IDAtMjMuMyA2LjQtMjkuOCAyMC4zTDIyNCAzNjIgMTU3LjEgMjQ0LjNjLTYuNC0xMy45LTE1LjktMjAuMy0yOS44LTIwLjMtMjQgMC0zOS4xIDI0LjYtMjcuMiA0NC4zIDEuMSAxLjkgOTcuMSAxNjkuNiA5OC4yIDE3MS40IDQuMyA5LjMgMTQuMiAxNi4zIDI1LjcgMTYuM3oiXX0sZ3N0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImRldmlhbnRhcnQiLGljb246WzMyMCw1MTIsW10sImYxYmQiLCJNMzIwIDkzLjJsLTk4LjIgMTc5LjEgNy40IDkuNSA5MC44IDAgMCAxMjcuNy0xNjAuOSAwLTEzLjUgOS4yLTQzLjcgODRjLS4zIDAtOC42IDguNi05LjIgOS4ybC05Mi43IDAgMC05My4yIDkzLjItMTc5LjQtNy40LTkuMi04NS44IDAgMC0xMjcuNiAxNTYgMCAxMy41LTkuMiA0My43LTg0Yy4zIDAgOC42LTguNiA5LjItOS4ybDk3LjYgMCAwIDkzLjF6Il19LHlnPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6Im1lZGl1bSIsaWNvbjpbNDQ4LDUxMixbNjI0MDcsIm1lZGl1bS1tIl0sImYyM2EiLCJNMzY5LjQgMzJjNDMuNCAwIDc4LjYgMzUuMiA3OC42IDc4LjZsMCA4My44Yy0xLjktLjEtMy44LS4yLTUuNy0uMmwtLjQgMGMtMTAgMC0yMi4zIDIuNC0zMS4xIDYuOC0xMCA0LjYtMTguNyAxMS41LTI2IDIwLjYtMTEuOCAxNC42LTE4LjkgMzQuMy0yMC42IDU2LjQtLjEgLjctLjEgMS4zLS4yIDJzLS4xIDEuMi0uMSAxLjljLS4xIDEuMi0uMSAyLjQtLjEgMy42IDAgMS45LS4xIDMuOCAwIDUuOCAxLjIgNTAuMSAyOC4yIDkwLjIgNzYuMyA5MC4yIDIuNyAwIDUuMy0uMSA3LjktLjRsMCAyMC40YzAgNDMuNC0zNS4yIDc4LjYtNzguNiA3OC42TDc4LjYgNDgwQzM1LjIgNDgwIDAgNDQ0LjggMCA0MDEuNEwwIDExMC42QzAgNjcuMiAzNS4yIDMyIDc4LjYgMzJsMjkwLjggMHpNODIuMyAxMzguOWwuMyAuMWMxMy4yIDMgMTkuOCA3LjQgMTkuOCAyMy40bDAgMTg3LjJjMCAxNi02LjcgMjAuNC0xOS45IDIzLjRsLS4zIC4xIDAgMi44IDUyLjggMCAwLTIuOC0uMy0uMWMtMTMuMi0zLTE5LjktNy40LTE5LjktMjMuNGwwLTE3Ni4zIDg2LjEgMjAyLjUgNC45IDAgODguNi0yMDguMiAwIDE4Ni42Yy0xLjEgMTIuNi03LjggMTYuNS0xOS43IDE5LjJsLS4zIC4xIDAgMi43IDkxLjkgMCAwLTIuNy0uMy0uMWMtMTEuOS0yLjctMTguNy02LjYtMTkuOS0xOS4ybC0uMS0xOTEuOCAuMSAwYzAtMTYgNi43LTIwLjQgMTkuOS0yMy40bC4zLS4xIDAtMi43LTcyLjIgMC02NyAxNTcuNC02Ny0xNTcuNC03Ny44IDAgMCAyLjd6TTQ0OCAzNDAuM2MtMjUuMS03LjQtNDMtMzUuMS00MS4yLTY3LjhsMCAwIDQxLjEgMCAwIDY3Ljh6bS02LjQtMTM1LjZjMi4zIDAgNC40IC4zIDYuNCAuOWwwIDU3LjQtNDAuMiAwYzEuNS0zMy42IDEzLjYtNTcuOSAzMy44LTU4LjN6Il19LGJzdD15Zyx2c3Q9e3ByZWZpeDoiZmFiIixpY29uTmFtZToib3BlbmNhcnQiLGljb246WzY0MCw1MTIsW10sImYyM2QiLCJNMzMxLjggNDQwLjRhNDUuOCA0NS44IDAgMSAxIDkxLjUgLjMgNDUuOCA0NS44IDAgMSAxIC05MS41LS4zek0xNjkuNCAzOTQuOWE0NS43IDQ1LjcgMCAxIDAgLjMgOTEuMyA0NS43IDQ1LjcgMCAxIDAgLS4zLTkxLjN6bTI5MS43LTI3MGMtMzAyLjIgMC0zNzkuMi0xMi44LTQ2MS4xLTk5LjIgMzQuNCA1MS43IDUzLjMgMTQ4LjkgMzczLjEgMTQ0LjIgMzMzLjMtNSAxMzAgODYuMSA3MC44IDE4OC45IDE4Ni43LTE2Ni43IDMxOS40LTIzMy45IDE3LjItMjMzLjl6Il19LHhzdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJ5LWNvbWJpbmF0b3IiLGljb246WzQ0OCw1MTIsW10sImYyM2IiLCJNNDQ4IDMybDAgNDQ4LTQ0OCAwIDAtNDQ4IDQ0OCAwek0yMzYgMjg3LjVsNzcuNS0xNDUuNS0zMi43IDAtNDUuOCA5MWMtNC43IDkuMy05IDE4LjMtMTIuOCAyNi44bC0xMi4yLTI2LjgtNDUuMi05MS0zNSAwIDc2LjcgMTQzLjggMCA5NC41IDI5LjUgMCAwLTkyLjh6Il19LHlzdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJsaW5lIixpY29uOls1MTIsNTEyLFtdLCJmM2MwIiwiTTMxMSAxOTYuOGwwIDgxLjNjMCAyLjEtMS42IDMuNy0zLjcgMy43bC0xMyAwYy0xLjMgMC0yLjQtLjctMy0xLjVMMjU0IDIzMCAyNTQgMjc4LjJjMCAyLjEtMS42IDMuNy0zLjcgMy43bC0xMyAwYy0yLjEgMC0zLjctMS42LTMuNy0zLjdsMC04MS4zYzAtMi4xIDEuNi0zLjcgMy43LTMuN2wxMi45IDBjMS4xIDAgMi40IC42IDMgMS42bDM3LjMgNTAuMyAwLTQ4LjJjMC0yLjEgMS42LTMuNyAzLjctMy43bDEzIDBjMi4xLS4xIDMuOCAxLjYgMy44IDMuNWwwIC4xem0tOTMuNy0zLjdsLTEzIDBjLTIuMSAwLTMuNyAxLjYtMy43IDMuN2wwIDgxLjNjMCAyLjEgMS42IDMuNyAzLjcgMy43bDEzIDBjMi4xIDAgMy43LTEuNiAzLjctMy43bDAtODEuM2MwLTEuOS0xLjYtMy43LTMuNy0zLjd6bS0zMS40IDY4LjFsLTM1LjYgMCAwLTY0LjRjMC0yLjEtMS42LTMuNy0zLjctMy43bC0xMyAwYy0yLjEgMC0zLjcgMS42LTMuNyAzLjdsMCA4MS4zYzAgMSAuMyAxLjggMSAyLjUgLjcgLjYgMS41IDEgMi41IDFsNTIuMiAwYzIuMSAwIDMuNy0xLjYgMy43LTMuN2wwLTEzYzAtMS45LTEuNi0zLjctMy41LTMuN2wuMSAwem0xOTMuNy02OC4xbC01Mi4zIDBjLTEuOSAwLTMuNyAxLjYtMy43IDMuN2wwIDgxLjNjMCAxLjkgMS42IDMuNyAzLjcgMy43bDUyLjIgMGMyLjEgMCAzLjctMS42IDMuNy0zLjdsMC0xMy4xYzAtMi4xLTEuNi0zLjctMy43LTMuN2wtMzUuNSAwIDAtMTMuNiAzNS41IDBjMi4xIDAgMy43LTEuNiAzLjctMy43bDAtMTMuMWMwLTIuMS0xLjYtMy43LTMuNy0zLjdsLTM1LjUgMCAwLTEzLjcgMzUuNSAwYzIuMSAwIDMuNy0xLjYgMy43LTMuN2wwLTEzYy0uMS0xLjktMS43LTMuNy0zLjctMy43bC4xIDB6TTUxMiA5My40bDAgMzI2Yy0uMSA1MS4yLTQyLjEgOTIuNy05My40IDkyLjZsLTMyNiAwQzQxLjQgNTExLjktLjEgNDY5LjggMCA0MTguNmwwLTMyNkMuMSA0MS40IDQyLjItLjEgOTMuNCAwbDMyNiAwYzUxLjIgLjEgOTIuNyA0Mi4xIDkyLjYgOTMuNHpNNDQxLjYgMjMzLjVjMC04My40LTgzLjctMTUxLjMtMTg2LjQtMTUxLjNTNjguOCAxNTAuMSA2OC44IDIzMy41YzAgNzQuNyA2Ni4zIDEzNy40IDE1NS45IDE0OS4zIDIxLjggNC43IDE5LjMgMTIuNyAxNC40IDQyLjEtLjggNC43LTMuOCAxOC40IDE2LjEgMTAuMXMxMDcuMy02My4yIDE0Ni41LTEwOC4yYzI3LTI5LjcgMzkuOS01OS44IDM5LjktOTMuMWwwLS4yeiJdfSx3c3Q9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiYW1pbGlhIixpY29uOls0NDgsNTEyLFtdLCJmMzZkIiwiTTI0MC4yIDMyYy02MS45IDAtMTMxLjUgMTYuOS0xODQuMiA1NS40LTUuMSAzLjEtOS4xIDkuMi03LjIgMTkuNCAxLjEgNS4xIDUuMSAyNy40IDEwLjIgMzkuNiA0LjEgMTAuMiAxNC4yIDEwLjIgMjAuMyA2LjEgMzIuNS0yMi4zIDk2LjUtNDcuNyAxNTIuMy00Ny43IDU3LjkgMCA1OC45IDI4LjQgNTguOSA3My4xbDAgMzguNUMyMDMuMSAyMjcuNyA3OC4zIDI1MSA0Ni44IDI2NC4yIDExLjMgMjgwLjUgMTYuNCAzNTcuNyAxNi40IDM3NlMzMS42IDQ4MCAxNDEuMyA0ODBjNDcuOCAwIDExMy43LTIwLjcgMTUzLjMtNDIuMWwwIDI1LjRjMCAzIDIuMSA4LjIgNi4xIDkuMSAzLjEgMSA1MC43IDIgNTkuOSAyczYyLjUgLjMgNjYuNS0uN2M0LjEtMSA1LjEtNi4xIDUuMS05LjFsMC0yOTYuNmMtLjEtODAuMy01Ny45LTEzNi0xOTItMTM2em01MC4yIDM0OGMtMjEuNCAxMy4yLTQ4LjcgMjQuNC03OS4xIDI0LjQtNTIuOCAwLTU4LjktMzMuNS01OS00NC43IDAtMTIuMi0zLTQyLjcgMTguMy01Mi45IDI0LjMtMTMuMiA3NS4xLTI5LjQgMTE5LjgtMzMuNWwwIDEwNi43eiJdfSxNc3Q9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiYXN5bW1ldHJpayIsaWNvbjpbNTc2LDUxMixbXSwiZjM3MiIsIk01MTcuNSAzMDkuMmMzOC44LTQwIDU4LjEtODAgNTguNS0xMTYuMSAuOC02NS41LTU5LjQtMTE4LjItMTY5LjQtMTM1LTEyOC43LTE5LjctMjg4LjUgMTUuNS00MDYuNiA4Mi40IDUyLTI2LjUgMTEwLjYtNDguMiAxNzAuNy01OC4yIDc0LjUtMjAuNSAxNTMtMjUuNCAyMjEuMy0xNC44IDE1Mi41IDIzLjggMTk2LjggMTI3LjUgOTguOCAyMzEuNy0xMC4yIDEwLjgtMjIgMjEuMS0zNSAzMC42TDMwNC45IDEwMy40IDExNC43IDM4OC45Yy02NS42LTI5LjQtNzYuNS05MC4yLTE5LjEtMTUxLjIgMjAuOC0yMi4yIDQ4LjMtNDEuOSA3OS41LTU4LjEgMjAtMTIuMiAzOS43LTIyLjYgNjItMzAuNy02NS4xIDIwLjMtMTIyLjcgNTIuOS0xNjEuNiA5Mi45LTI3LjcgMjguNi00MS40IDU3LjEtNDEuNyA4Mi45LS41IDM1LjEgMjMuNCA2NS4xIDY4LjQgODNsLTM0LjUgNTEuNyAxMDEuNiAwIDIyLTM0LjRjMjIuMiAxIDQ1LjMgMCA2OC42LTIuN2wtMjIuOCAzNy4xIDEzNS41IDAtMzIuNi01My4xYzE4LjYtNS4zIDM2LjktMTEuNSA1NC41LTE4LjdsNDUuOSA3MS44IDEwMS42IDAtNzMuNC0xMTAuNGMxOC41LTEyLjEgMzUtMjUuNSA0OC45LTM5Ljh6TTMyOS45IDM4OS43bC0yNS00MC42LTMyLjcgNTMuM2MtMjMuNCAzLjUtNDYuNyA1LjEtNjkuMiA0LjRsMTAxLjktMTU5LjMgNzguNyAxMjNjLTE3LjIgNy40LTM1LjMgMTMuOS01My43IDE5LjJ6Il19LGtzdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJwaGFicmljYXRvciIsaWNvbjpbNTEyLDUxMixbXSwiZjNkYiIsIk0zMzEuMSAyNjIuMWwtLjEtMTNzMjEuNy0xOS44IDIxLjEtMjEuMmwtOS41LTIwYy0uNi0xLjQtMjkuNS0uNS0yOS41LS41bC05LjQtOS4zcy4yLTI4LjUtMS4yLTI5LjFsLTIwLjEtOS4yYy0xLjQtLjYtMjAuNyAyMS0yMC43IDIxbC0xMy4xLS4ycy0yMC41LTIxLjQtMjEuOS0yMC44bC0yMCA4LjNjLTEuNCAuNSAuMiAyOC45IC4yIDI4LjlsLTkuMSA5LjFzLTI5LjItLjktMjkuNyAuNEwxNjAgMjI2LjNjLS42IDEuNCAyMSAyMSAyMSAyMWwuMSAxMi45UzE1OS40IDI4MCAxNjAgMjgxLjRsOS41IDIwYy42IDEuNCAyOS41IC41IDI5LjUgLjVsOS40IDkuM3MtLjIgMzEuOCAxLjIgMzIuM2wyMC4xIDguM2MxLjQgLjYgMjAuNy0yMy41IDIwLjctMjMuNWwxMy4xIC4yczIwLjUgMjMuOCAyMS44IDIzLjNsMjAtNy41YzEuNC0uNi0uMi0zMi4xLS4yLTMyLjFsOS4xLTkuMXMyOS4yIC45IDI5LjctLjVsOC4xLTE5LjhjLjctMS4xLTIwLjktMjAuNy0yMC45LTIwLjd6bS00NC45LTguN2MuNyAxNy4xLTEyLjggMzEuNi0zMC4xIDMyLjRzLTMyLjEtMTIuNS0zMi44LTI5LjYgMTIuOC0zMS42IDMwLjEtMzIuM2MxNy4zLS44IDMyLjEgMTIuNSAzMi44IDI5LjV6bTIwMS4yLTM3LjlsLTk3LTk3LS4xIC4xYy03NS4xLTczLjMtMTk1LjQtNzIuOC0yNjkuOCAxLjYtNTAuOSA1MS0yNy44IDI3LjktOTUuNyA5NS4zLTIyLjMgMjIuMy0yMi4zIDU4LjcgMCA4MSA2OS45IDY5LjQgNDYuNCA0NiA5Ny40IDk3bC4xLS4xYzc1LjEgNzMuMyAxOTUuNCA3Mi45IDI2OS44LTEuNiA1MS01MC45IDI3LjktMjcuOSA5NS4zLTk1LjMgMjIuMy0yMi4zIDIyLjMtNTguNyAwLTgxek0zNjMuNSAxNDguMmExNTIuMyAxNTIuMyAwIDEgMSAtMjE1IDIxNS42IDE1Mi4zIDE1Mi4zIDAgMSAxIDIxNS0yMTUuNnoiXX0sU3N0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImJvdHMiLGljb246WzY0MCw1MTIsW10sImUzNDAiLCJNODYuMyAxOTcuOGMtOC0uMS0xNS45IDEuNy0yMy4xIDUuMXMtMTMuNSA4LjYtMTguNCAxNC45bDAtNjEuOWMwLTIuMi0uOS00LjMtMi40LTUuOHMtMy42LTIuNC01LjgtMi40bC0yOC40IDBjLTIuMiAwLTQuMyAuOS01LjggMi40UzAgMTUzLjggMCAxNTZMMCAzMzMuNmMwIDEuMSAuMiAyLjEgLjYgMy4xczEgMS45IDEuOCAyLjcgMS43IDEuNCAyLjcgMS44IDIuMSAuNiAzLjEgLjZsMjguNCAwYzEuMSAwIDIuMS0uMiAzLjEtLjZzMS45LTEgMi43LTEuOCAxLjQtMS43IDEuOC0yLjcgLjYtMi4xIC42LTMuMWwwLTguMWMxMS42IDEzLjQgMjUuOSAxOS44IDQxLjYgMTkuOCAzNC42IDAgNjEuOS0yNi4yIDYxLjktNzMuOCAwLTQ1LjktMjctNzMuNi02MS45LTczLjZ6TTcxLjUgMzA1LjdjLTkuNiAwLTIxLjItNC45LTI2LjctMTIuNWwwLTQzYzUuNS03LjYgMTcuMi0xMi44IDI2LjctMTIuOCAxNy43IDAgMzEuMSAxMy4xIDMxLjEgMzQgMCAyMS4yLTEzLjQgMzQuMy0zMS4xIDM0LjN6bTE1Ni40LTU5YTE3LjQgMTcuNCAwIDEgMCAwIDM0LjggMTcuNCAxNy40IDAgMSAwIDAtMzQuOHptNDYuMS05MGwwLTQ0LjdjMi44LTEuMiA1LjItMy4zIDYuNi02czEuOS01LjggMS4zLTguOS0yLjItNS43LTQuNi03LjctNS40LTMtOC40LTMtNi4xIDEuMS04LjQgMy00IDQuNy00LjYgNy43LS4xIDYuMSAxLjMgOC45IDMuOCA0LjggNi42IDZsMCA0NC43Yy0yOCAxLjMtNTQuNCAxMy42LTczLjYgMzQuMXMtMjkuNSA0Ny43LTI4LjggNzUuOCAxMi4zIDU0LjcgMzIuNCA3NC4zIDQ3IDMwLjYgNzUuMSAzMC42IDU1LTExIDc1LjEtMzAuNiAzMS43LTQ2LjMgMzIuNC03NC4zLTkuNy01NS4zLTI4LjgtNzUuOC00NS41LTMyLjgtNzMuNi0zNC4xem04NiAxMDcuNGMwIDMwLjUtNDAuOCA1NS4zLTkxLjEgNTUuM3MtOTEuMS0yNC43LTkxLjEtNTUuMyA0MC44LTU1LjMgOTEuMS01NS4zIDkxLjEgMjQuNyA5MS4xIDU1LjNsMCAwem0tNTAuMiAxNy40YzMuNCAwIDYuOC0xIDkuNy0yLjlzNS4xLTQuNiA2LjQtNy44IDEuNy02LjcgMS0xMC4xLTIuMy02LjUtNC44LTguOS01LjUtNC4xLTguOS00LjgtNi45LS4zLTEwLjEgMS01LjkgMy41LTcuOCA2LjQtMi45IDYuMi0yLjkgOS43YzAgNC42IDEuOCA5IDUuMSAxMi4zczcuNyA1LjEgMTIuMyA1LjFsMCAwem0yNzAuOS0zMWMtMTQuOC0yLjYtMjIuNC0zLjgtMjIuNC05LjkgMC01LjUgNy4zLTkuOSAxNy43LTkuOSAxMi4yIC4xIDI0LjIgMy42IDM0LjUgMTAuMSAxLjggMS4yIDQgMS42IDYuMiAxLjFzNC0xLjcgNS4xLTMuNmMuMS0uMSAuMS0uMiAuMi0uM2w4LjYtMTQuOWMxLjEtMS45IDEuNC00LjEgLjgtNi4xcy0xLjktMy45LTMuNy01Yy0xNS43LTkuNC0zMy43LTE0LjMtNTItMTQuMS0zOSAwLTYwLjIgMjEuNS02MC4yIDQ2LjIgMCAzNi4zIDMzLjcgNDEuOSA1Ny42IDQ1LjYgMTMuNCAyLjMgMjQuMSA0LjQgMjQuMSAxMSAwIDYuNC01LjUgMTAuOC0xOC45IDEwLjgtMTMuNiAwLTMxLTYuMi00Mi42LTEzLjYtLjktLjYtMS45LTEtMy0xLjJzLTIuMS0uMi0zLjIgLjEtMi4xIC43LTIuOSAxLjMtMS42IDEuNC0yLjIgMi4zYzAgLjEtLjEgLjEtLjEgLjJsLTEwLjIgMTYuOWMtMS4xIDEuOC0xLjQgNC0xIDZzMS43IDMuOSAzLjUgNWMxNS4yIDEwLjMgMzcuNyAxNi43IDU5LjQgMTYuNyA0MC40IDAgNjQtMTkuOCA2NC00Ni41IDAtMzguMS0zNS41LTQzLjktNTkuMy00OC4zem0tOTUuOSA2MC44Yy0uNS0yLTEuOC0zLjctMy42LTQuOHMtMy45LTEuNS01LjktMS4xYy0xLjQgLjMtMi44IC40LTQuMiAuNC03LjggMC0xMi41LTYuMS0xMi41LTE0LjJsMC01MS4yIDIwLjMgMGMyLjIgMCA0LjItLjkgNS44LTIuNHMyLjQtMy42IDIuNC01LjhsMC0yMi43YzAtMi4yLS45LTQuMi0yLjQtNS44cy0zLjYtMi40LTUuOC0yLjRsLTIwLjMgMCAwLTMwLjJjMC0yLjItLjktNC4yLTIuNC01LjhzLTMuNi0yLjQtNS44LTIuNGwtMjguMiAwYy0yLjIgMC00LjIgLjktNS44IDIuNHMtMi40IDMuNi0yLjQgNS44bDAgMzAuMi0xNS4xIDBjLTEuMSAwLTIuMSAuMi0zLjEgLjZzLTEuOSAxLTIuNiAxLjgtMS40IDEuNy0xLjggMi42LS42IDItLjYgMy4xbDAgMjIuN2MwIDEuMSAuMiAyLjEgLjYgMy4xczEgMS45IDEuOCAyLjYgMS43IDEuNCAyLjYgMS44IDIgLjYgMy4xIC42bDE1LjEgMCAwIDYzLjdjMCAyNyAxNS40IDQxLjMgNDMuOSA0MS4zIDEyLjIgMCAyMS40LTIuMiAyNy42LTUuNCAxLjYtLjggMi45LTIuMiAzLjctMy45cy45LTMuNiAuNS01LjRsLTUtMTkuM3oiXX0senN0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6InZpbmUiLGljb246WzM4NCw1MTIsW10sImYxY2EiLCJNMzg0IDI1NC43bDAgNTIuMWMtMTguNCA0LjItMzYuOSA2LjEtNTIuMSA2LjEtMzYuOSA3Ny40LTEwMyAxNDMuOC0xMjUuMSAxNTYuMi0xNCA3LjktMjcuMSA4LjQtNDIuNy0uOC0yNy4xLTE2LjMtMTI5LjktMTAwLjYtMTY0LjEtMzY1LjZsNzQuNSAwYzE4LjcgMTU5LjEgNjQuNSAyNDAuNyAxMTQuOCAzMDEuOCAyNy45LTI3LjkgNTQuOC02NS4xIDc1LjYtMTA2LjktNDkuOC0yNS4zLTgwLjEtODAuOS04MC4xLTE0NS42IDAtNjUuNiAzNy43LTExNS4xIDEwMi4yLTExNS4xIDExNC45IDAgMTA2LjIgMTI3LjkgODEuNiAxODEuNSAwIDAtNDYuNCA5LjItNjMuNS0yMC41IDMuNC0xMS4zIDguMi0zMC44IDguMi00OC41IDAtMzEuMy0xMS4zLTQ2LjYtMjguNC00Ni42LTE4LjIgMC0zMC44IDE3LjEtMzAuOCA1MCAuMSA3OS4yIDU5LjQgMTE4LjcgMTI5LjkgMTAxLjl6Il19LENzdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJtZWRydCIsaWNvbjpbNTc2LDUxMixbXSwiZjNjOCIsIk0xMjkuNyAyNTZjMCAxMjEuOCA4My45IDIyMi44IDE5My41IDI0MS4xLTE4LjcgNC41LTM4LjIgNi45LTU4LjIgNi45LTEzNy42IDAtMjQ5LTExMS0yNDktMjQ4UzEyNy40IDggMjY0LjkgOGMyMC4xIDAgMzkuNiAyLjQgNTguMiA2LjktMTA5LjYgMTguMy0xOTMuNCAxMTkuMy0xOTMuNCAyNDEuMXpNNDI3LjEgMzU2LjNjLTc3LjcgNTUuNC0xNzkuNiA0Ny41LTI0MC40LTE0LjYgNS41IDE0LjEgMTIuNyAyNy43IDIxLjcgNDAuNSA2MS42IDg4LjIgMTgyLjQgMTA5LjMgMjY5LjcgNDdzMTA4LjEtMTg0LjMgNDYuNS0yNzIuNmMtOS0xMi45LTE5LjMtMjQuMy0zMC41LTM0LjIgMzcuNCA3OC44IDEwLjcgMTc4LjUtNjcgMjMzLjl6bS0yMTguOC0yNDRjLTEuNCAxLTIuNyAyLjEtNCAzLjEgNjQuMy0xNy44IDEzNS45IDQgMTc4LjkgNjAuNSAzNS43IDQ3IDQyLjkgMTA2LjYgMjQuNCAxNTggNTYuNy01Ni4yIDY3LjYtMTQyLjEgMjIuMy0yMDEuOC01MC02NS41LTE0OS4xLTc0LjQtMjIxLjYtMTkuOHpNMzEyIDIyNGMtNC40IDAtOC0zLjYtOC04bDAtNDBjMC00LjQtMy42LTgtOC04bC00OCAwYy00LjQgMC04IDMuNi04IDhsMCA0MGMwIDQuNC0zLjYgOC04IDhsLTQwIDBjLTQuNCAwLTggMy42LTggOGwwIDQ4YzAgNC40IDMuNiA4IDggOGw0MCAwYzQuNCAwIDggMy42IDggOGwwIDQwYzAgNC40IDMuNiA4IDggOGw0OCAwYzQuNCAwIDgtMy42IDgtOGwwLTQwYzAtNC40IDMuNi04IDgtOGw0MCAwYzQuNCAwIDgtMy42IDgtOGwwLTQ4YzAtNC40LTMuNi04LTgtOGwtNDAgMHoiXX0sVHN0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6Im9zaSIsaWNvbjpbNTEyLDUxMixbXSwiZjQxYSIsIk04IDI2Ni40YzIuMy0xMzUuOCA5Ny40LTIzMi40IDIxMy44LTI0OC4xIDEzOC44LTE4LjYgMjU1LjYgNzUuOCAyNzggMjAxLjEgMjEuMyAxMTguOC00NCAyMzAtMTUxLjYgMjc0LTkuMyAzLjgtMTQuNCAxLjctMTgtNy43LTE3LjgtNDYuMy0zNS42LTkyLjYtNTMuNC0xMzktMy4xLTguMS0xLTEzLjIgNy0xNi44IDI0LjItMTEgMzkuMy0yOS40IDQzLjMtNTUuOCAxLjUtOS43IDEtMTkuNi0xLjUtMjkuMXMtNi45LTE4LjQtMTIuOS0yNi4xLTEzLjYtMTQuMS0yMi4yLTE4LjgtMTguMS03LjUtMjcuOS04LjNjLTM5LTMuNC03MS44IDIzLjctNzcuNSA1OS43LTUuMiAzMyAxMS4xIDYzLjcgNDEuOSA3Ny43IDkuNiA0LjQgMTEuNSA4LjYgNy44IDE4LjQtMTcuOSA0Ni42LTM1LjggOTMuMi01My43IDEzOS45LTIuNiA2LjktOC4zIDkuMy0xNS41IDYuNS01Mi42LTIwLjMtMTAxLjQtNjEtMTMwLjgtMTE5LTI0LjktNDkuMi0yNS4yLTg3LjctMjYuOC0xMDguN3ptMjAuOS0xLjljLjQgNi42IC42IDE0LjMgMS4zIDIyLjEgNi4zIDcxLjkgNDkuNiAxNDMuNSAxMzEgMTgzLjEgMy4yIDEuNSA0LjQgLjggNS42LTIuMyAxNC45LTM5LjEgMjkuOS03OC4yIDQ1LTExNy4zIDEuMy0zLjMgLjYtNC44LTIuNC02LjctMzEuNi0xOS45LTQ3LjMtNDguNS00NS42LTg2IDEtMjEuNiA5LjMtNDAuNSAyMy44LTU2LjMgMzAtMzIuNyA3Ny0zOS44IDExNS41LTE3LjYgMTUuNiA5IDI4LjIgMjIuMyAzNi4yIDM4LjRzMTEuMiAzNC4yIDkgNTJjLTMuNiAzMC42LTE5LjMgNTMuOS00NS43IDY5LjgtMi43IDEuNi0zLjUgMi45LTIuMyA2IDE1LjIgMzkuMiAzMC4zIDc4LjQgNDUuMiAxMTcuNyAxLjIgMy4xIDIuNCAzLjggNS42IDIuMyAzNS41LTE2LjYgNjUuMi00MC4zIDg4LjEtNzIgMzQuOC00OC4yIDQ5LjEtMTAxLjkgNDIuMy0xNjEtMTMuNy0xMTcuNS0xMTkuNC0yMTQuOC0yNTUuNS0xOTgtMTA2LjEgMTMtMTk1LjMgMTAyLjUtMTk3LjEgMjI1Ljh6Il19LF9zdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJnZyIsaWNvbjpbNTEyLDUxMixbXSwiZjI2MCIsIk0xNzkuMiAyMzAuNGwxMDIuNCAxMDIuNC0xMDIuNCAxMDIuNC0xNzkuMi0xNzkuMiAxNzkuMi0xNzkuMiA0NC44IDQ0LjgtMjUuNiAyNS42LTE5LjItMTkuMi0xMjggMTI4IDEyOCAxMjggNTEuNS01MS41LTc3LjEtNzYuNSAyNS42LTI1LjZ6TTMzMi44IDc2LjhsLTEwMi40IDEwMi40IDEwMi40IDEwMi40IDI1LjYtMjUuNi03Ny4xLTc2LjUgNTEuNS01MS41IDEyOCAxMjgtMTI4IDEyOC0xOS4yLTE5LjItMjUuNiAyNS42IDQ0LjggNDQuOCAxNzkuMi0xNzkuMi0xNzkuMi0xNzkuMnoiXX0sTHN0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImJ1eXNlbGxhZHMiLGljb246WzQ0OCw1MTIsW10sImYyMGQiLCJNMjI0IDE1MC43bDQyLjkgMTYwLjctODUuOCAwIDQyLjktMTYwLjd6TTQ0OCA4MGwwIDM1MmMwIDI2LjUtMjEuNSA0OC00OCA0OEw0OCA0ODBjLTI2LjUgMC00OC0yMS41LTQ4LTQ4TDAgODBDMCA1My41IDIxLjUgMzIgNDggMzJsMzUyIDBjMjYuNSAwIDQ4IDIxLjUgNDggNDh6TTM4Mi43IDQwNS4zbC05NC41LTI5OC43LTEyOC40IDAtOTQuNSAyOTguNyA5MC43IDAgMTExLjctOTEuNiAyNC4yIDkxLjYgOTAuOCAweiJdfSxBc3Q9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiZ29vZ2xlLXBsdXMiLGljb246WzUxMiw1MTIsW10sImYyYjMiLCJNMjU2IDhhMjQ4IDI0OCAwIDEgMCAwIDQ5NiAyNDggMjQ4IDAgMSAwIDAtNDk2ek0xODUuMyAzODBjLTMyLjkgMC02NC40LTEzLjEtODcuNy0zNi4zcy0zNi4zLTU0LjgtMzYuMy04Ny43IDEzLjEtNjQuNCAzNi4zLTg3LjcgNTQuOC0zNi4zIDg3LjctMzYuM2MzMS4zIDAgNjAuMSAxMSA4MyAzMi4zbC0zMy42IDMyLjZjLTEzLjItMTIuOS0zMS4zLTE5LjEtNDkuNC0xOS4xLTQyLjkgMC03Ny4yIDM1LjUtNzcuMiA3OC4xUzE0Mi4zIDMzNCAxODUuMyAzMzRjMzIuNiAwIDY0LjktMTkuMSA3MC4xLTUzLjNsLTcwLjEgMCAwLTQyLjYgMTE2LjkgMGMxLjMgNi44IDEuOSAxMy44IDEuOSAyMC43IDAgNzAuOC00Ny41IDEyMS4yLTExOC44IDEyMS4yek00MTUuNSAyNzMuOGwwIDM1LjUtMzUuNSAwIDAtMzUuNS0zNS41IDAgMC0zNS41IDM1LjUgMCAwLTM1LjUgMzUuNSAwIDAgMzUuNSAzNS4yIDAgMCAzNS41LTM1LjIgMHoiXX0sRHN0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6InNjcmVlbnBhbCIsaWNvbjpbNTEyLDUxMixbXSwiZTU3MCIsIk0yNzguNiAyMi41YTIyLjUgMjIuNSAwIDEgMSAtNDUgMCAyMi41IDIyLjUgMCAxIDEgNDUgMHpNMTk4LjcgMjU5YTU3LjQgNTcuNCAwIDEgMSAxMTQuOCAwIDU3LjQgNTcuNCAwIDEgMSAtMTE0LjggMHptMTM4LjYgOTFjMjIuMy0xOS45IDM2LjUtNDcuMyAzOS45LTc3bDExOS41IDBjLTMuNSA2MS40LTMwLjQgMTE5LjItNzUuMiAxNjEuNC00NC43IDQyLjItMTAzLjkgNjUuOC0xNjUuNCA2NS44UzEzNS40IDQ3Ni42IDkwLjcgNDM0LjRDNDUuOSAzOTIuMiAxOS4xIDMzNC40IDE1LjUgMjczbDExOS43IDBjMy40IDI5LjcgMTcuNiA1Ny4xIDM5LjkgNzdzNTEuMiAzMC45IDgxLjEgMzAuOWMyOSAwIDU4LjctMTEgODEuMS0zMC45ek0yOC4zIDE0MS43YTIyLjUgMjIuNSAwIDEgMSA0NS0xLjQgMjIuNSAyMi41IDAgMSAxIC00NSAxLjR6bTQ1NS42LS43YTIyLjQgMjIuNCAwIDEgMSAtNDQuOSAwIDIyLjQgMjIuNCAwIDEgMSA0NC45IDB6TTMxOCA5NS4zYy0xNy4zIDEzLjgtMzkuMiAyMi44LTYxLjkgMjIuOHMtNDQuNi05LTYxLjktMjIuOGMtMTcuMy0xNC43LTI4LjgtMzUuMS0zMi40LTU3LjUgMTUuMS02LjQgMzAuOC0xMS4zIDQ2LjktMTQuNSAwIDEyLjYgNSAyNC42IDEzLjkgMzMuNXMyMC45IDEzLjkgMzMuNSAxMy45IDI0LjYtNSAzMy41LTEzLjkgMTMuOS0yMC45IDEzLjktMzMuNWMxNi4xIDMuMiAzMS44IDguMSA0Ni45IDE0LjUtMy42IDIyLjQtMTUuMSA0Mi44LTMyLjQgNTcuNXpNODIuOSAyMzFjLTIxLjQgNy42LTQ0LjcgNy40LTY1LjktLjYgMi0xNi4zIDUuNi0zMi4zIDEwLjgtNDcuOSA1LjQgMy4xIDExLjMgNS4xIDE3LjUgNiA2LjIgLjggMTIuNCAuNCAxOC41LTEuMiA2LTEuNyAxMS42LTQuNCAxNi42LTguMnM5LjEtOC41IDEyLjItMTMuOSA1LjEtMTEuNCA2LTE3LjVjLjgtNi4yIC40LTEyLjUtMS4yLTE4LjVzLTQuNC0xMS42LTguMi0xNi42Yy0zLjgtNC45LTguNS05LjEtMTMuOS0xMi4yIDEwLjgtMTIuMyAyMi45LTIzLjUgMzYtMzMuMyAxNy42IDE0LjMgMjkuNSAzNC41IDMzLjYgNTYuOHMuMSA0NS40LTExLjIgNjVjLTExLjQgMTkuNi0yOS40IDM0LjUtNTAuNyA0Mi4xem0zNDYuNCAuMWMtMjEuMy03LjYtMzkuMy0yMi42LTUwLjctNDIuMi0xMS4zLTE5LjYtMTUuMi00Mi43LTExLjEtNjUgNC4xLTIyLjIgMTYtNDIuNCAzMy41LTU2LjcgMTMuMSA5LjggMjUuMiAyMSAzNiAzMy4zLTEwLjcgNi40LTE4LjQgMTYuNy0yMS41IDI4LjgtMy4yIDEyLTIuMyAyNC44IDQuOCAzNS42IDYuMiAxMC44IDE2LjQgMTguNyAyOC40IDIyczI0LjkgMS43IDM1LjctNC4zYzUuMyAxNS41IDguOSAzMS42IDEwLjkgNDcuOC0yMi4xIDguMS00NC42IDguMy02NiAuN3oiXX0sRXN0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImJpdGNvaW4iLGljb246WzUxMiw1MTIsW10sImYzNzkiLCJNOCAyNTZhMjQ4IDI0OCAwIDEgMSA0OTYgMCAyNDggMjQ4IDAgMSAxIC00OTYgMHptMzU0LjMtMzUuM2M0LjktMzMtMjAuMi01MC43LTU0LjYtNjIuNmwxMS4xLTQ0LjctMjcuMi02LjgtMTAuOSA0My41Yy03LjItMS44LTE0LjUtMy41LTIxLjgtNS4xbDEwLjktNDMuOC0yNy4yLTYuOC0xMS4yIDQ0LjdjLTUuOS0xLjMtMTEuNy0yLjctMTcuNC00LjFsMC0uMS0zNy41LTkuNC03LjIgMjkuMXMyMC4yIDQuNiAxOS44IDQuOWMxMSAyLjggMTMgMTAgMTIuNyAxNS44bC0xMi43IDUwLjljLjggLjIgMS43IC41IDIuOCAuOS0uOS0uMi0xLjktLjUtMi45LS43bC0xNy44IDcxLjNjLTEuMyAzLjMtNC44IDguNC0xMi41IDYuNSAuMyAuNC0xOS44LTQuOS0xOS44LTQuOWwtMTMuNSAzMS4xIDM1LjQgOC44YzYuNiAxLjcgMTMgMy40IDE5LjQgNWwtMTEuMyA0NS4yIDI3LjIgNi44IDExLjItNDQuN2M3LjIgMiAxNC40IDMuOCAyMS43IDUuNmwtMTEuMSA0NC41IDI3LjIgNi44IDExLjMtNDUuMWM0Ni40IDguOCA4MS4zIDUuMiA5Ni0zNi43IDExLjgtMzMuOC0uNi01My4zLTI1LTY2IDE3LjgtNC4xIDMxLjItMTUuOCAzNC43LTM5Ljl6bS02Mi4yIDg3LjJjLTguNCAzMy44LTY1LjMgMTUuNS04My44IDEwLjlsMTQuOS01OS45YzE4LjQgNC42IDc3LjYgMTMuNyA2OC44IDQ5em04LjQtODcuN2MtNy43IDMwLjctNTUgMTUuMS03MC40IDExLjNsMTMuNS01NC4zYzE1LjQgMy44IDY0LjggMTEgNTYuOCA0M3oiXX0sJHN0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6InN3aWZ0IixpY29uOls0NDgsNTEyLFtdLCJmOGUxIiwiTTQ0OCAxNTYuMWMwLTQuNS0uMS05LS4yLTEzLjUtLjEtOS45LTEtMTkuNy0yLjYtMjkuNC0xLjctOS43LTQuOC0xOS4yLTkuMi0yOC05LTE3LjctMjMuNC0zMi4xLTQxLjItNDEuMS04LjgtNC41LTE4LjMtNy42LTI4LTkuMi05LjctMS42LTE5LjYtMi41LTI5LjQtMi42LTQuNS0uMS05LS4yLTEzLjUtLjJMMTI0LjEgMzJjLTQuNSAwLTkgLjEtMTMuNSAuMi0yLjQgLjEtNC45IC4yLTcuNCAuMy03LjQgLjMtMTQuOCAxLjEtMjIuMSAyLjMtNy4zIDEuMy0xNC40IDMuMy0yMS4yIDYuMS0yLjMgMS00LjYgMi02LjggMy4xLTYuNiAzLjQtMTIuOCA3LjUtMTguNCAxMi4zLTEuOSAxLjYtMy43IDMuMy01LjQgNS03IDctMTIuOSAxNS0xNy40IDIzLjgtNC40IDguOC03LjYgMTguMy05LjIgMjgtMS42IDkuNy0yLjQgMTkuNi0yLjUgMjkuNC0uMSA0LjUtLjIgOS0uMiAxMy41TDAgMzU1LjljMCA0LjUgLjEgOSAuMiAxMy41IC4xIDkuOSAxIDE5LjcgMi42IDI5LjQgMS43IDkuNyA0LjggMTkuMiA5LjIgMjggOSAxNy43IDIzLjQgMzIuMSA0MS4xIDQxLjEgOC44IDQuNCAxOC4zIDcuNSAyOCA5LjIgOS43IDEuNiAxOS42IDIuNSAyOS40IDIuNiA0LjUgLjEgOSAuMiAxMy41IC4ybDE5OS44IDBjNC41IDAgOS0uMSAxMy41LS4yIDkuOS0uMSAxOS43LTEgMjkuNC0yLjYgOS43LTEuNyAxOS4yLTQuOCAyOC05LjIgMTcuNy05IDMyLjEtMjMuNCA0MS4xLTQxLjIgNC40LTguOCA3LjYtMTguMyA5LjItMjggMS42LTkuNyAyLjUtMTkuNiAyLjYtMjkuNCAuMS00LjUgLjItOSAuMi0xMy41bDAtMTgzLjhjMC01LjQgMC0xMC43IDAtMTZ6bS02OS45IDI0MWMtMjAtMzguOS01Ny4yLTI5LjMtNzYuMy0xOS41LTEuNyAxLTMuNSAyLTUuMiAzbC0uNCAuMmMtMzkuNSAyMS05Mi41IDIyLjUtMTQ1LjgtLjQtNDMuNC0xOC44LTgwLjEtNTAuMy0xMDUuMy05MC40IDEyLjMgOS4xIDI1LjQgMTYuOSAzOS4yIDIzLjQgNTYuNCAyNi40IDExMyAyNC41IDE1MyAwLTU3LTQzLjgtMTA0LjYtMTAxLTE0MS4xLTE0Ny4yLTctOC4xLTEzLjItMTYuOC0xOC44LTI1LjkgNDMuNyA0MCAxMTIuNyA5MC4yIDEzNy41IDEwNC4xLTUyLjYtNTUuNS05OC45LTEyMy45LTk2LjctMTIxLjcgODIuOCA4My40IDE1OS4yIDEzMC42IDE1OS4yIDEzMC42IDIuOSAxLjYgNSAyLjggNi43IDQgMS42LTQuMSAzLTguMiA0LjItMTIuNSAxMy4yLTQ4LjMtMS43LTEwMy42LTM1LjMtMTQ5LjIgNzYuOCA0Ni4xIDEyMi4yIDEzMy43IDEwMy42IDIwNy44LS40IDEuNy0xIDMuNC0xLjQgNS4xIDM4LjUgNDcuNCAyOCA5OC4yIDIzLjEgODguNmwwIDB6Il19LElzdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJmaWxlcy1waW53aGVlbCIsaWNvbjpbNTEyLDUxMixbXSwiZTY5ZiIsIk0yNTMuNSAyNDYuNEwxMzcuMiAxMzAuMmMtLjYtLjYtMS0xLjMtMS40LTJzLS41LTEuNi0uNS0yLjQgLjItMS42IC41LTIuNCAuOC0xLjQgMS40LTJMMjUzLjYgNS4xYy45LS45IDItMS41IDMuMi0xLjdzMi41LS4xIDMuNiAuMyAyLjEgMS4zIDIuOCAyLjMgMS4xIDIuMiAxLjEgMy41bDAgMjMyLjVjMCAxLjMtLjMgMi41LTEgMy42cy0xLjcgMS45LTIuOSAyLjQtMi41IC42LTMuNyAuMy0yLjQtLjktMy4yLTEuOXptNDAuMy00LjRsMC0xMzQuNGMwLS44IC4xLTEuNiAuNS0yLjRzLjgtMS41IDEuMy0yLjEgMS4zLTEuMSAyLTEuNCAxLjYtLjUgMi40LS41bDEzNC40IDBjMS4yIDAgMi41IC40IDMuNSAxLjFzMS44IDEuNyAyLjMgMi44IC42IDIuNCAuMyAzLjYtLjkgMi4zLTEuNyAzLjJMMzA0LjMgMjQ2LjRjLS45IC44LTIgMS40LTMuMiAxLjZzLTIuNCAuMS0zLjUtLjQtMi4xLTEuMy0yLjgtMi4zLTEuMS0yLjItMS4xLTMuNGwuMSAuMXptMzAuNiAzNWMtMS4yIDAtMi41LS4zLTMuNS0xcy0xLjktMS42LTIuNC0yLjgtLjYtMi40LS40LTMuNiAuOC0yLjMgMS43LTMuMkw0MDQgMTgyLjJjLjYtLjYgMS4zLTEgMi0xLjRzMS42LS41IDIuNC0uNSAxLjYgLjIgMi40IC41IDEuNCAuOCAyIDEuNGw4NC40IDg0LjJjLjkgLjkgMS41IDIgMS43IDMuMnMuMSAyLjUtLjMgMy42LTEuMyAyLjEtMi4zIDIuOC0yLjIgMS4xLTMuNSAxLjFsLTE2OC41IDAgLjEtLjF6bTkwLjcgMTMxbC05NS4zLTk1LjJjLS45LS45LTEuNS0yLTEuNy0zLjJzLS4xLTIuNSAuNC0zLjcgMS4zLTIuMSAyLjQtMi44IDIuMy0xIDMuNS0xbDk1LjIgMGMxLjcgMCAzLjIgLjcgNC40IDEuOHMxLjggMi44IDEuOCA0LjRsMCA5NS4zYzAgMS4yLS40IDIuNS0xLjEgMy41cy0xLjcgMS44LTIuOCAyLjMtMi40IC42LTMuNiAuMy0yLjMtLjktMy4yLTEuN3pNMTYuOCAzMDIuMWwyMTYuOSAwYzEuMiAwIDIuNSAuNCAzLjUgMS4xczEuOCAxLjcgMi4zIDIuOCAuNiAyLjQgLjMgMy42LS44IDIuMy0xLjcgMy4yTDEyOS43IDQyMS4yYy0uNiAuNi0xLjMgMS0yIDEuNHMtMS42IC41LTIuNCAuNS0xLjYtLjItMi40LS41LTEuNC0uOC0yLTEuNEwxMi4zIDMxMi44Yy0uOS0uOS0xLjUtMi0xLjctMy4ycy0uMS0yLjUgLjQtMy42IDEuMy0yLjEgMi4zLTIuOCAyLjMtMSAzLjUtMWwwLS4xek0yNjQuMyA0NjUuM2MwIC44LS4yIDEuNi0uNSAyLjRzLS44IDEuNS0xLjQgMi0xLjMgMS0yIDEuNC0xLjYgLjUtMi40IC41bC0xMjggMGMtMS4yIDAtMi41LS40LTMuNS0xLjFzLTEuOC0xLjctMi4zLTIuOC0uNi0yLjQtLjMtMy42IC44LTIuMyAxLjctMy4ybDEyOC0xMjhjLjktLjkgMi0xLjUgMy4yLTEuN3MyLjUtLjEgMy42IC4zIDIuMSAxLjMgMi44IDIuMyAxLjEgMi4yIDEuMSAzLjVsMCAxMjh6bTQwLTEzMi41bDgyLjggODIuN2MuNiAuNiAxIDEuMyAxLjQgMnMuNSAxLjYgLjUgMi40LS4yIDEuNi0uNSAyLjQtLjggMS40LTEuNCAyTDMwNC4zIDUwN2MtLjkgLjktMiAxLjUtMy4yIDEuN3MtMi41IC4xLTMuNi0uMy0yLjEtMS4zLTIuOC0yLjMtMS4xLTIuMi0xLjEtMy41bDAtMTY1LjRjMC0xLjIgLjQtMi41IDEuMS0zLjVzMS43LTEuOCAyLjgtMi4zIDIuNC0uNiAzLjYtLjMgMi4zIC44IDMuMiAxLjd6TTc5IDEyMi40YzAtMS4yIC4zLTIuNSAxLTMuNXMxLjctMS44IDIuOC0yLjMgMi40LS42IDMuNi0uNCAyLjMgLjggMy4yIDEuN0wyMzguMSAyNjYuNGMuOSAuOSAxLjUgMiAxLjcgMy4ycy4xIDIuNS0uMyAzLjYtMS4zIDIuMS0yLjMgMi44LTIuMiAxLjEtMy41IDEuMWwtMTQ4LjQgMGMtMS43IDAtMy4yLS43LTQuNC0xLjhzLTEuOC0yLjgtMS44LTQuNGwwLTE0OC40LS4xLS4xeiJdfSxQc3Q9e3ByZWZpeDoiZmFiIixpY29uTmFtZToibGFyYXZlbCIsaWNvbjpbNTEyLDUxMixbXSwiZjNiZCIsIk01MDQuNiAxMTUuOGMtLjEtLjItLjItLjUtLjMtLjctLjEtLjQtLjMtLjgtLjUtMS4yLS4yLS4yLS4zLS41LS41LS43LS4yLS4zLS41LS42LS43LS45LS4yLS4yLS41LS40LS44LS42LS4zLS4yLS42LS41LS45LS43TDQwNC42IDU1LjVjLTEuMi0uNy0yLjYtMS4xLTQtMS4xcy0yLjggLjQtNCAxLjFMMzAwLjMgMTExYy0uMyAuMi0uNiAuNC0uOSAuNy0uMyAuMi0uNSAuNC0uOCAuNi0uMyAuMy0uNSAuNi0uNyAuOS0uMiAuMi0uNCAuNC0uNSAuNy0uMiAuNC0uNCAuOC0uNSAxLjItLjEgLjItLjIgLjQtLjMgLjctLjIgLjctLjMgMS40LS4zIDIuMWwwIDEwNS4yLTgwLjIgNDYuMiAwLTIwNS45YzAtLjctLjEtMS40LS4zLTIuMS0uMS0uMi0uMi0uNC0uMy0uNy0uMS0uNC0uMy0uOC0uNS0xLjItLjEtLjMtLjQtLjUtLjUtLjctLjItLjMtLjUtLjYtLjctLjktLjItLjItLjUtLjQtLjgtLjYtLjMtLjItLjYtLjUtLjktLjdMMTE1LjggMS4xYy0xLjItLjctMi42LTEuMS00LTEuMXMtMi44IC40LTQgMS4xTDExLjUgNTYuNWMtLjMgLjItLjYgLjQtLjkgLjctLjMgLjItLjUgLjQtLjggLjYtLjMgLjMtLjUgLjYtLjcgLjktLjIgLjMtLjQgLjUtLjYgLjctLjIgLjQtLjQgLjgtLjUgMS4yLS4xIC4yLS4yIC40LS4zIC43LS4yIC43LS4zIDEuNC0uMyAyLjFsMCAzMjkuN2MwIDEuNCAuNCAyLjggMS4xIDRzMS43IDIuMiAyLjkgMi45TDIwNCA1MTAuOWMuNCAuMiAuOSAuNCAxLjMgLjUgLjIgLjEgLjQgLjIgLjYgLjMgMS4zIC40IDIuOCAuNCA0LjEgMCAuMi0uMSAuNC0uMiAuNi0uMiAuNS0uMiAxLS4zIDEuNC0uNkw0MDQuNiA0MDAuMWMxLjItLjcgMi4yLTEuNyAyLjktMi45czEuMS0yLjYgMS4xLTRsMC0xMDUuMyA5Mi4yLTUzLjFjMS4yLS43IDIuMi0xLjcgMi45LTNzMS4xLTIuNiAxLjEtNGwwLTEwOS44YzAtLjctLjEtMS40LS4yLTIuMXpNMTExLjggMTcuM2w4MC4yIDQ2LjEtODAuMiA0Ni4yLTgwLjItNDYuMiA4MC4yLTQ2LjJ6bTg4LjIgNjBsMCAyMDEuM2MtMzMuMiAxOS4xLTU5LjkgMzQuNS04MC4yIDQ2LjJsMC0yMDEuM0MxNTMgMTA0LjQgMTc5LjcgODkgMjAwIDc3LjN6bTAgNDEyLjhMMjMuNSAzODguNSAyMy41IDc3LjNjMjAuMyAxMS43IDQ3LjEgMjcuMSA4MC4yIDQ2LjJsMCAyMTUuMmMwIC4zIC4xIC42IC4xIC45IDAgLjQgLjEgLjggLjIgMS4yIC4xIC4zIC4yIC42IC40IC45IC4xIC4zIC4zIC43IC40IDEgLjIgLjMgLjQgLjUgLjYgLjggLjIgLjMgLjQgLjYgLjcgLjggLjIgLjIgLjUgLjQgLjggLjYgLjMgLjIgLjYgLjUgLjkgLjdsOTIuMiA1Mi4yIC4xIDkyLjR6bTgtMTA2LjJMMTI4IDMzOC42YzU0LjctMzEuNSAxMTMuNS02NS4zIDE3Ni4zLTEwMS41bDgwLjEgNDYuMUMzNTUgMzAwIDI5Ni4yIDMzMy41IDIwOCAzODMuOXptMTg0LjUgNC42bC0xNzYuNSAxMDEuNiAwLTkyLjNDMzE3LjQgMzQwIDM3Ni4yIDMwNi40IDM5Mi41IDI5N2wwIDkxLjR6bTAtMTE5LjFjLTIwLjMtMTEuNi00Ny4xLTI3LTgwLjItNDYuMWwwLTkxLjRjMjAuMyAxMS43IDQ3LjEgMjcuMSA4MC4yIDQ2LjJsMCA5MS4zem04LTEwNS4zbC04MC4yLTQ2LjIgODAuMi00Ni4yIDgwLjIgNDYuMS04MC4yIDQ2LjJ6bTggMTA1LjNsMC05MS4zYzMzLjItMTkuMSA2MC0zNC41IDgwLjMtNDYuMmwwIDkxLjQtODAuMyA0Ni4yeiJdfSxOc3Q9e3ByZWZpeDoiZmFiIixpY29uTmFtZToid3Bmb3JtcyIsaWNvbjpbNDQ4LDUxMixbXSwiZjI5OCIsIk00NDggNzUuMmwwIDM2MS43YzAgMjQuMy0xOSA0My4yLTQzLjIgNDMuMmwtMzYxLjYgMEMxOS4zIDQ4MCAwIDQ2MS40IDAgNDM2LjhMMCA3NS4yQzAgNTEuMSAxOC44IDMyIDQzLjIgMzJsMzYxLjcgMGMyNCAwIDQzLjEgMTguOCA0My4xIDQzLjJ6TTQxMC43IDQzNi44bDAtMzYxLjZjMC0zLTIuNi01LjgtNS44LTUuOGwtOS4zIDAtMTEwLjMgNzQuNi02MS4zLTQ5LjktNjEuMiA0OS45LTExMC4zLTc0LjctOS4zIDBjLTMuMiAwLTUuOCAyLjgtNS44IDUuOGwwIDM2MS43YzAgMyAyLjYgNS44IDUuOCA1LjhsMzYxLjcgMGMzLjIgLjEgNS44LTIuNyA1LjgtNS44ek0xNTAuMiAxODZsMCAzNy03My41IDAgMC0zNyA3My41IDB6bTAgNzQuNGwwIDM3LjMtNzMuNSAwIDAtMzcuMyA3My41IDB6bTExLjEtMTQ3LjNsNTQtNDMuNy0xMTguNSAwIDY0LjUgNDMuN3ptMjEwIDcyLjlsMCAzNy0xOTYgMCAwLTM3IDE5NiAwem0wIDc0LjRsMCAzNy4zLTE5NiAwIDAtMzcuMyAxOTYgMHpNMjg2LjcgMTEzLjFsNjQuNS00My43LTExOC40IDAgNTMuOSA0My43ek0zNzEuMyAzMzVsMCAzNy4zLTk5LjQgMCAwLTM3LjMgOTkuNCAweiJdfSxGc3Q9e3ByZWZpeDoiZmFiIixpY29uTmFtZToic3BlYWtlci1kZWNrIixpY29uOls1MTIsNTEyLFtdLCJmODNjIiwiTTIxMy45IDI5NkwxMDAgMjk2Yy0yNi41IDAtNTItMTAuNS03MC43LTI5LjNTMCAyMjIuNSAwIDE5NiAxMC41IDE0NCAyOS4zIDEyNS4zIDczLjUgOTYgMTAwIDk2bDEzMi44IDBjMTAuNiAwIDIwLjggNC4yIDI4LjMgMTEuN3MxMS43IDE3LjcgMTEuNyAyOC4zLTQuMiAyMC44LTExLjcgMjguMy0xNy43IDExLjctMjguMyAxMS43TDk4IDE3NmMtMjYuNSAwLTI2LjQgNDAgMCA0MGwxMTMuOCAwYzI2LjUgMCA1MiAxMC41IDcwLjcgMjkuM3MyOS4zIDQ0LjIgMjkuMyA3MC43LTEwLjUgNTItMjkuMyA3MC43LTQ0LjIgMjkuMy03MC43IDI5LjNMNDAgNDE2Yy0xMC42IDAtMjAuOC00LjItMjguMy0xMS43UzAgMzg2LjYgMCAzNzYgNC4yIDM1NS4yIDExLjcgMzQ3LjcgMjkuNCAzMzYgNDAgMzM2bDE3My45IDBjMjYuNSAwIDI2LjUtNDAgMC00MHpNMjk4IDQxNmMxMy41LTkuMiAyNS0yMSAzMy44LTM0LjdzMTQuNy0yOS4yIDE3LjMtNDUuM2w2NC42IDBjMi42IDAgNS4yLS42IDcuNi0xLjZzNC42LTIuNSA2LjQtNC40IDMuMy00LjEgNC4yLTYuNSAxLjUtNSAxLjQtNy42bDAtMTIwYzAtMi42LS41LTUuMi0xLjQtNy42cy0yLjQtNC42LTQuMi02LjUtNC0zLjMtNi40LTQuNC01LTEuNi03LjYtMS42bC0xMTcuMiAwYzkuNy0xMS4xIDE1LTI1LjMgMTUtNDBzLTUuMy0yOC45LTE1LTQwbDEzNi45IDBjNDMuNCAwIDc4LjYgMzUuOCA3OC42IDgwbDAgMTYwYzAgNDQuMi0zNS4yIDgwLTc4LjYgODBMMjk4IDQxNnoiXX0sT3N0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImZsaWNrciIsaWNvbjpbNDQ4LDUxMixbXSwiZjE2ZSIsIk00MDAgMzJMNDggMzJDMjEuNSAzMiAwIDUzLjUgMCA4MEwwIDQzMmMwIDI2LjUgMjEuNSA0OCA0OCA0OGwzNTIgMGMyNi41IDAgNDgtMjEuNSA0OC00OGwwLTM1MmMwLTI2LjUtMjEuNS00OC00OC00OHpNMTQ0LjUgMTkyYTYzLjUgNjMuNSAwIDEgMSAwIDEyNyA2My41IDYzLjUgMCAxIDEgMC0xMjd6bTE1OSAwYTYzLjUgNjMuNSAwIDEgMSAwIDEyNyA2My41IDYzLjUgMCAxIDEgMC0xMjd6Il19LFJzdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJjYy12aXNhIixpY29uOls1NzYsNTEyLFtdLCJmMWYwIiwiTTQ3MC4xIDIzMS4zczcuNiAzNy4yIDkuMyA0NWwtMzMuNCAwYzMuMy04LjkgMTYtNDMuNSAxNi00My41LS4yIC4zIDMuMy05LjEgNS4zLTE0LjlsMi44IDEzLjR6TTU3NiA4MGwwIDM1MmMwIDI2LjUtMjEuNSA0OC00OCA0OEw0OCA0ODBjLTI2LjUgMC00OC0yMS41LTQ4LTQ4TDAgODBDMCA1My41IDIxLjUgMzIgNDggMzJsNDgwIDBjMjYuNSAwIDQ4IDIxLjUgNDggNDh6TTE1Mi41IDMzMS4ybDYzLjItMTU1LjItNDIuNSAwLTM5LjMgMTA2LTQuMy0yMS41LTE0LTcxLjRjLTIuMy05LjktOS40LTEyLjctMTguMi0xMy4xbC02NC43IDAtLjcgMy4xYzE1LjggNCAyOS45IDkuOCA0Mi4yIDE3LjFsMzUuOCAxMzUgNDIuNSAwem05NC40IC4ybDI1LjItMTU1LjQtNDAuMiAwLTI1LjEgMTU1LjQgNDAuMSAwem0xMzkuOS01MC44Yy4yLTE3LjctMTAuNi0zMS4yLTMzLjctNDIuMy0xNC4xLTcuMS0yMi43LTExLjktMjIuNy0xOS4yIC4yLTYuNiA3LjMtMTMuNCAyMy4xLTEzLjQgMTMuMS0uMyAyMi43IDIuOCAyOS45IDUuOWwzLjYgMS43IDUuNS0zMy42Yy03LjktMy4xLTIwLjUtNi42LTM2LTYuNi0zOS43IDAtNjcuNiAyMS4yLTY3LjggNTEuNC0uMyAyMi4zIDIwIDM0LjcgMzUuMiA0Mi4yIDE1LjUgNy42IDIwLjggMTIuNiAyMC44IDE5LjMtLjIgMTAuNC0xMi42IDE1LjItMjQuMSAxNS4yLTE2IDAtMjQuNi0yLjUtMzcuNy04LjNsLTUuMy0yLjUtNS42IDM0LjljOS40IDQuMyAyNi44IDguMSA0NC44IDguMyA0Mi4yIC4xIDY5LjctMjAuOCA3MC01M3pNNTI4IDMzMS40bC0zMi40LTE1NS40LTMxLjEgMGMtOS42IDAtMTYuOSAyLjgtMjEgMTIuOWwtNTkuNyAxNDIuNSA0Mi4yIDBzNi45LTE5LjIgOC40LTIzLjNsNTEuNiAwYzEuMiA1LjUgNC44IDIzLjMgNC44IDIzLjNsMzcuMiAweiJdfSxCc3Q9e3ByZWZpeDoiZmFiIixpY29uTmFtZToidXB3b3JrIixpY29uOls2NDAsNTEyLFtdLCJlNjQxIiwiTTQ5My45IDI5NS42Yy01MC4zIDAtODMuNS0zOC45LTkyLjgtNTMuOSAxMS45LTk1LjMgNDYuOC0xMjUuNCA5Mi44LTEyNS40IDQ1LjUgMCA4MC45IDM2LjQgODAuOSA4OS43cy0zNS40IDg5LjctODAuOSA4OS43bDAtLjF6bTAtMjM3LjhjLTgxLjkgMC0xMjcuOCA1My40LTE0MSAxMDguNC0xNC45LTI4LTI1LjktNjUuNS0zNC41LTEwMC4zbC0xMTMuMiAwIDAgMTQxYzAgNTEuMS0yMy4zIDg5LTY4LjggODlzLTcxLjYtMzcuOC03MS42LTg5bC41LTE0MS02NS4zIDAgMCAxNDFjMCA0MS4xIDEzLjMgNzguNCAzNy42IDEwNS4xIDI1IDI3LjUgNTkuMiA0MS44IDk4LjggNDEuOCA3OC44IDAgMTMzLjgtNjAuNCAxMzMuOC0xNDYuOWwwLTk0LjhjOC4yIDMxLjIgMjcuOCA5MS4xIDY1LjMgMTQzLjZsLTM1IDE5OS40IDY2LjQgMCAyMy4xLTE0MS4zYzcuNiA2LjMgMTUuNyAxMiAyNC4yIDE3IDIyLjIgMTQgNDcuNyAyMS45IDczLjkgMjIuOCAwIDAgNCAuMiA2LjEgLjIgODEuMiAwIDE0NS45LTYyLjkgMTQ1LjktMTQ3LjhTNTc1LjMgNTcuOSA0OTQuMSA1Ny45bC0uMi0uMXoiXX0sSHN0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6Imtha2FvLXRhbGsiLGljb246WzU3Niw1MTIsW10sImU3ZDciLCJNMjg4IDIuNWMxNTkuMSAwIDI4OCAxMDEuNyAyODggMjI3LjEgMCAxMjUuNC0xMjguOSAyMjcuMS0yODggMjI3LjEtMTcuNSAwLTM0LjYtMS4yLTUxLjItMy42LTE2LjYgMTEuNy0xMTIuNiA3OS4xLTEyMS43IDgwLjQgMCAwLTMuNyAxLjQtNi45LS40cy0yLjYtNi43LTIuNi02LjdDMTA2LjYgNTE5LjggMTMwLjYgNDM3LjIgMTM1IDQyMS45IDUzLjkgMzgxLjggMCAzMTAuNiAwIDIyOS41IDAgMTA0LjEgMTI4LjkgMi41IDI4OCAyLjV6TTg2LjIgMTYxLjdjLTkgMC0xNi4zIDcuMy0xNi4zIDE2LjNzNy4zIDE2LjMgMTYuMyAxNi4zbDI1LjkgMCAwIDk4LjdjMCA4LjggNy41IDE1LjkgMTYuNiAxNS45czE2LjYtNy4xIDE2LjYtMTUuOWwwLTk4LjcgMjUuOSAwYzkgMCAxNi4zLTcuMyAxNi4zLTE2LjNzLTcuMy0xNi4zLTE2LjMtMTYuM2wtODUuMSAwem0xNDAuOCAwYy0xMC44IC4yLTE5LjMgOC40LTIyLjEgMTYuNEwxNjUuMiAyODIuN2MtNSAxNS43LS42IDIxLjUgMy45IDIzLjYgMy4yIDEuNSA2LjkgMi4zIDEwLjYgMi4zIDYuOSAwIDEyLjItMi44IDEzLjgtNy4zbDguMi0yMS42IDUwLjcgMCA4LjIgMjEuNWMxLjYgNC41IDYuOSA3LjMgMTMuOCA3LjMgMy43IDAgNy4zLS44IDEwLjYtMi4zIDQuNi0yLjEgOS03LjkgMy45LTIzLjZMMjQ5LjIgMTc4LjFjLTIuOC04LTExLjMtMTYuMi0yMi4yLTE2LjR6bTE4MC45IDBjLTkuMiAwLTE2LjYgNy41LTE2LjYgMTYuNmwwIDExMy43YzAgOS4yIDcuNSAxNi42IDE2LjYgMTYuNnMxNi42LTcuNSAxNi42LTE2LjZsMC0zNi4yIDUuOC01LjggMzguOSA1MS42YzMuMiA0LjIgOCA2LjYgMTMuMyA2LjYgMy42IDAgNy4xLTEuMSAxMC0zLjMgMy41LTIuNyA1LjgtNi42IDYuNC0xMXMtLjUtOC44LTMuMi0xMi4zbC00MC45LTU0LjIgMzcuOS0zNy44YzIuNi0yLjYgMy45LTYuMiAzLjctMTAuMS0uMi0zLjktMi03LjYtNC45LTEwLjUtMy4xLTMuMS03LjMtNC45LTExLjQtNC45LTMuNiAwLTYuOCAxLjMtOS4yIDMuN2wtNDYuMyA0Ni40IDAtMzUuN2MwLTkuMi03LjUtMTYuNi0xNi42LTE2LjZ6bS05MS4zIDBjLTkuMyAwLTE2LjkgNy41LTE2LjkgMTYuNmwwIDExMi44YzAgOC40IDcuMSAxNS4yIDE1LjkgMTUuM2w1My4zIDBjOC44IDAgMTUuOS02LjkgMTUuOS0xNS4zcy03LjItMTUuMi0xNS45LTE1LjJsLTM1LjMgMCAwLTk3LjZjMC05LjItNy42LTE2LjYtMTctMTYuNnptLTczIDg4LjZsLTMzLjIgMCAxNi42LTQ3LjEgMTYuNiA0Ny4xeiJdfSxxc3Q9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiZmx1dHRlciIsaWNvbjpbNDQ4LDUxMixbXSwiZTY5NCIsIk00MjkuNSAyMzYuM0wyOTEuNyAzNzQuMSA0MjkuNSA1MTIgMjcyIDUxMmMtMzYuMS0zNi4xLTgyLjEtODIuMS0xMzcuOS0xMzcuOWwxMzcuOS0xMzcuOCAxNTcuNSAwek0yNzIgMEwxNiAyNTYgOTQuOCAzMzQuOCA0MjkuNSAwIDI3MiAweiJdfSxqc3Q9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiYnVmZmVyIixpY29uOls0NDgsNTEyLFtdLCJmODM3IiwiTTQyOC4yIDM4MC43TDIzMS43IDQ3OC41Yy0yLjMgMS00LjggMS41LTcuMyAxLjVzLTUtLjUtNy4zLTEuNUwyMC41IDM4MC43Yy00LTItNC01LjMgMC03LjNMNjcuNiAzNTBjMi4zLTEgNC44LTEuNSA3LjMtMS41czUgLjUgNy4zIDEuNWwxMzQuOCA2N2MyLjMgMSA0LjggMS41IDcuMyAxLjVzNS0uNSA3LjMtMS41bDEzNC44LTY3YzIuMy0xIDQuOC0xLjUgNy4zLTEuNXM1IC41IDcuMyAxLjVsNDcuMSAyMy40YzQgMiA0IDUuMiAwIDcuMnptMC0xMzYuNWwtNDcuMS0yMy40Yy0yLjMtMS00LjgtMS41LTcuMy0xLjVzLTUgLjUtNy4zIDEuNUwyMzEuNyAyODcuOGMtMi4zIDEtNC44IDEuNS03LjMgMS41cy01LS41LTcuMy0xLjVMODIuMyAyMjAuN2MtMi4zLTEtNC44LTEuNS03LjMtMS41cy01IC41LTcuMyAxLjVMMjAuNSAyNDQuMWMtNCAyLTQgNS4zIDAgNy4zbDE5Ni41IDk3LjhjMi4zIDEgNC44IDEuNSA3LjMgMS41czUtLjUgNy4zLTEuNWwxOTYuNS05Ny44YzQtMiA0LTUuMyAwLTcuM3pNMjAuNSAxMzAuNEwyMTcgMjIwLjdjNC43IDEuOSAxMCAxLjkgMTQuNyAwbDE5Ni41LTkwLjNjNC0xLjkgNC00LjkgMC02LjdMMjMxLjcgMzMuNGMtNC43LTEuOS0xMC0xLjktMTQuNyAwTDIwLjUgMTIzLjdjLTQgMS44LTQgNC45IDAgNi43eiJdfSxWc3Q9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiZ3JhdGlwYXkiLGljb246WzUxMiw1MTIsW10sImYxODQiLCJNMjU2IDBhMjU2IDI1NiAwIDEgMCAwIDUxMiAyNTYgMjU2IDAgMSAwIDAtNTEyek0zNzQuMyAyMzMuN0wyNTcuNyAzOTEuMyAxNDEuMyAyMzMuN2MtOS0xMi4zLTE5LjctNTIgMTQtNzQuMyAyOS0xOC43IDU2LjQtNC4zIDcwLjcgMTIuMyAxNi40IDE4LjUgNDguMSAxNy40IDYzLjcgMCAxNC4zLTE2LjYgNDEuNy0zMSA3MC4zLTEyLjMgMzQgMjIuMyAyMy4zIDYxLjkgMTQuMiA3NC4zeiJdfSxVc3Q9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiZ29vZ2xlLXBheSIsaWNvbjpbNjQwLDUxMixbXSwiZTA3OSIsIk0xMDUuNyAyMTVsMCA0MS4yIDU3LjEgMGMtMS4yIDYuNi0zLjYgMTIuOS03LjIgMTguNXMtOC40IDEwLjQtMTMuOSAxNC4xYy05LjUgNi42LTIxLjcgMTAuMy0zNiAxMC4zLTI3LjYgMC01MC45LTE4LjktNTkuMy00NC4yLTQuNC0xMy4zLTQuNC0yNy43IDAtNDEgOC40LTI1LjUgMzEuNy00NC40IDU5LjMtNDQuNCA3LjUtLjEgMTQuOSAxLjIgMjEuOSA0czEzLjMgNi45IDE4LjYgMTIuMUwxNzYuNSAxNTVjLTE5LjEtMTguMS00NC40LTI4LjEtNzAuNy0yNy44LTE5LjcgLjEtMzguOSA1LjctNTUuNiAxNi4xcy0zMC4xIDI1LjMtMzguOCA0M0MzLjkgMjAxLjIgMCAyMTcuNyAwIDIzNC40czMuOSAzMy4yIDExLjMgNDguMWwwIC4yYzguNyAxNy43IDIyLjEgMzIuNSAzOC44IDQzczM1LjkgMTYgNTUuNiAxNmMyOC41IDAgNTIuNS05LjUgNzAtMjUuOSAyMC0xOC42IDMxLjQtNDYuMiAzMS40LTc4LjkgMC03LjMtLjYtMTQuNi0xLjgtMjEuOGwtOTkuNyAwem0zODkuNC00Yy0xMC4xLTkuNC0yMy45LTE0LjEtNDEuNC0xNC4xLTIyLjUgMC0zOS4zIDguMy01MC41IDI0LjlMNDI0LjEgMjM1YzcuNi0xMS4zIDE4LjEtMTcgMzEuMy0xNyA4LjQgMCAxNi41IDMuMiAyMi43IDguOCAzIDIuNiA1LjUgNS45IDcuMSA5LjZzMi41IDcuNiAyLjUgMTEuN2wwIDUuNWMtOS4xLTUuMS0yMC42LTcuOC0zNC42LTcuOC0xNi40IDAtMjkuNiAzLjktMzkuNSAxMS44cy0xNC44IDE4LjMtMTQuOCAzMS42Yy0uMiA1LjkgMSAxMS44IDMuNCAxNy4yczYgMTAuMiAxMC41IDE0LjFjOS4yIDguMyAyMSAxMi41IDM0LjggMTIuNSAxNi4zIDAgMjkuMi03LjMgMzktMjEuOWwxIDAgMCAxNy43IDIyLjYgMCAwLTc4LjdjLjEtMTYuNi00LjktMjkuNy0xNS0zOXptLTE5LjIgODkuM2MtMy41IDMuNS03LjYgNi4zLTEyLjIgOC4ycy05LjUgMi45LTE0LjQgMi45Yy02LjcgLjEtMTMuMS0yLjEtMTguMy02LjItMi40LTEuOC00LjQtNC4yLTUuNy02LjlzLTItNS43LTItOC43YzAtNyAzLjItMTIuOCA5LjUtMTcuNHMxNC41LTcgMjQuMS03YzEzLjItLjIgMjMuNSAyLjggMzAuOCA4LjggMCAxMC4xLTQgMTguOS0xMS43IDI2LjR6bS05My43LTE0MmMtNS4zLTUuMy0xMS42LTkuNS0xOC42LTEyLjNzLTE0LjQtNC4yLTIxLjktNGwtNjIuNyAwIDAgMTg2LjcgMjMuNiAwIDAtNzUuNiAzOSAwYzE2IDAgMjkuNS01LjQgNDAuNS0xNS45IC45LS45IDEuOC0xLjggMi42LTIuNyA5LjYtMTAuNSAxNC44LTI0LjQgMTQuMy0zOC42cy02LjYtMjcuNy0xNi45LTM3LjZsMCAwem0tMTYuNiA2Mi4yYy0zIDMuMi02LjYgNS43LTEwLjYgNy40cy04LjQgMi41LTEyLjcgMi4zbC0zOS42IDAgMC02NS4yIDM5LjYgMGM4LjUgMCAxNi42IDMuMyAyMi42IDkuMiA2LjEgNi4xIDkuNiAxNC4zIDkuOCAyM3MtMy4xIDE3LTkgMjMuM2wwIDB6TTYxNC4zIDIwMWwtMzYuNSA5MS43LS41IDAtMzcuNC05MS43LTI1LjcgMCA1MS44IDExOS42LTI5LjQgNjQuMyAyNC4zIDAgNzktMTgzLjktMjUuNyAweiJdfSxXc3Q9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiYXBwbGUiLGljb246WzM4NCw1MTIsW10sImYxNzkiLCJNMzE5LjEgMjY4LjdjLS4yLTM2LjcgMTYuNC02NC40IDUwLTg0LjgtMTguOC0yNi45LTQ3LjItNDEuNy04NC43LTQ0LjYtMzUuNS0yLjgtNzQuMyAyMC43LTg4LjUgMjAuNy0xNSAwLTQ5LjQtMTkuNy03Ni40LTE5LjctNTUuOCAuOS0xMTUuMSA0NC41LTExNS4xIDEzMy4yIDAgMjYuMiA0LjggNTMuMyAxNC40IDgxLjIgMTIuOCAzNi43IDU5IDEyNi43IDEwNy4yIDEyNS4yIDI1LjItLjYgNDMtMTcuOSA3NS44LTE3LjkgMzEuOCAwIDQ4LjMgMTcuOSA3Ni40IDE3LjkgNDguNi0uNyA5MC40LTgyLjUgMTAyLjYtMTE5LjMtNjUuMi0zMC43LTYxLjctOTAtNjEuNy05MS45ek0yNjIuNSAxMDQuNWMyNy4zLTMyLjQgMjQuOC02MS45IDI0LTcyLjUtMjQuMSAxLjQtNTIgMTYuNC02Ny45IDM0LjktMTcuNSAxOS44LTI3LjggNDQuMy0yNS42IDcxLjkgMjYuMSAyIDQ5LjktMTEuNCA2OS41LTM0LjN6Il19LEdzdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJ0dW1ibHIiLGljb246WzMyMCw1MTIsW10sImYxNzMiLCJNMzA5LjkgNDgwLjNjLTEzLjYgMTQuNS01MCAzMS43LTk3LjQgMzEuNy0xMjAuOCAwLTE0Ny04OC44LTE0Ny0xNDAuNmwwLTE0NC00Ny41IDBjLTUuNSAwLTEwLTQuNS0xMC0xMGwwLTY4YzAtNy4yIDQuNS0xMy42IDExLjMtMTYgNjItMjEuOCA4MS41LTc2IDg0LjMtMTE3LjEgLjgtMTEgNi41LTE2LjMgMTYuMS0xNi4zbDcwLjkgMGM1LjUgMCAxMCA0LjUgMTAgMTBsMCAxMTUuMiA4MyAwYzUuNSAwIDEwIDQuNCAxMCA5LjlsMCA4MS43YzAgNS41LTQuNSAxMC0xMCAxMGwtODMuNCAwIDAgMTMzLjJjMCAzNC4yIDIzLjcgNTMuNiA2OCAzNS44IDQuOC0xLjkgOS0zLjIgMTIuNy0yLjIgMy41IC45IDUuOCAzLjQgNy40IDcuOWwyMiA2NC4zYzEuOCA1IDMuMyAxMC42LS40IDE0LjV6Il19LFlzdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJwaG9lbml4LXNxdWFkcm9uIixpY29uOls1MTIsNTEyLFtdLCJmNTExIiwiTTk2IDYzLjRjNDYuNS0zNi4xIDEwNS42LTU2LjEgMTY0LjUtNTQuNiAyOS42LS40IDU5LjEgNS40IDg2LjkgMTUuMy0yNC4xLTQuNi00OS02LjMtNzMuNC0yLjUtNDIuOSA1LjMtODMgMjcuMi0xMTEuOCA1OS4yIDUuNy0xIDEwLjgtMy43IDE2LTUuOSAxOC4xLTcuOSAzNy41LTEzLjMgNTcuMi0xNC44IDE5LjctMi4xIDM5LjYtLjQgNTkuMyAxLjktMTQuNCAyLjgtMjkuMSA0LjYtNDMgOS42LTM0LjQgMTEuMS02NS4zIDMzLjItODYuMyA2Mi42LTEzLjggMTkuNy0yMy42IDQyLjktMjQuNyA2Ny4xLS40IDE2LjUgNS4yIDM0LjggMTkuOCA0NCAxMS4yIDYuOCAyNC42IDkuMiAzNy41IDYuNyAxNS40LTIuNSAzMC4xLTguNiA0My42LTE2LjMgMTEuNS02LjggMjIuNy0xNC42IDMyLTI0LjMgMy44LTMuMiAyLjUtOC40IDIuNi0xMi44LTIuMS0uMy00LjQtMS4xLTYuMyAuMy0xMS40IDYuMy0yMy40IDExLjQtMzUuOCAxNS40LTIwIDYuMi00Mi4yIDguNS02Mi4xIC44IDEyLjggMS43IDI2LjEgLjMgMzcuNy01LjQgMjAuMi05LjcgMzYuOC0yNS4yIDU0LjQtMzguOCAyNy43LTIxLjMgNTcuNS0zOS45IDg4LjktNTUuMyAyNS43LTEyIDUyLjktMjIuOCA4MS42LTI0LjEtMTUuNiAxMy43LTMyLjEgMjYuNS00Ni44IDQxLjQtMTQuNSAxNC0yNy41IDI5LjUtNDAuMSA0NS4yLTMuNSA0LjYtOSA2LjktMTMuNiAxMC4yLTIyLjQgMTUtNDAuMyAzNS44LTUxLjkgNjAuMS05LjMgMTkuNy0xNC41IDQxLjktMTEuOCA2My42IDEuOSAxMy43IDguNyAyNy42IDIwLjkgMzQuOSAxMi45IDggMjkgOC4xIDQzLjUgNS4xIDMyLjgtNy40IDYxLjQtMjguOSA4MS01NS44IDIwLjQtMjcuNSAzMC41LTYyLjIgMjkuMi05Ni4zLS41LTcuNS0xLjYtMTUtMS43LTIyLjUgOCAxOS41IDE0LjggMzkuNyAxNi42IDYwLjggMiAxNC4zIC43IDI4LjgtMS42IDQyLjktMS45IDExLTUuNyAyMS41LTcuOCAzMi40IDIwLjQtMjIuOSAzNC01MC45IDM5LjMtODEuMSA1LjYtMzUuNSAuNy03MS45LTE0LjItMTA0LjYgMjAuOCAzMiAzMi4zIDY5LjYgMzUuNyAxMDcuNSAuNSAxMi43IC41IDI1LjUgMCAzOC4yLTIuOCAzNC4zLTEyLjkgNjcuNi0yOS42IDk3LjgtMjYuMSA0Ny4zLTY4IDg1LjYtMTE3LjIgMTA4LTc4LjMgMzYuMi0xNzQuNyAzMS4zLTI0OC0xNC43LTM5LTIzLjgtNzAuNi01OC05MS40LTk4LjctMTQuNy0yOC45LTIzLjMtNjAuNS0yNS40LTkyLjlsMC0zMS4zQzMuOSAxNzIgNDAuOSAxMDUuOCA5NiA2My40em0yMjIgODAuM2M1LjUtLjkgMTAuOC0yLjQgMTYtNC41IDUtMS44IDkuMi01LjkgMTAuMy0xMS4yLTkgNS0xOCA5LjktMjYuMyAxNS43eiJdfSxac3Q9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiY2VudGVyY29kZSIsaWNvbjpbNTEyLDUxMixbXSwiZjM4MCIsIk0yMDEuOCAyNTQuOGE2NC4xIDY0LjEgMCAxIDEgMTI3LjQgMTMuOCA2NC4xIDY0LjEgMCAxIDEgLTEyNy40LTEzLjh6bTQxLjYgMjQ4LjlDOTYuNyA0OTYtOC4yIDM2NS41IDEwLjEgMjI0LjMgMjEuMyAxMzcuNyA3NS45IDY3LjQgMTQ5LjIgMzIuMyAzMTAuMi00NC44IDQ5OC45IDY5LjcgNTAzLjkgMjQ4LjkgNTA4IDM5NS45IDM4NS41IDUxMS4xIDI0My40IDUwMy43em0xNzkuOS0xODBjMjcuOS0xMTgtMTYwLjUtMjA1LjktMjM3LjItMjM0LjItNTcuNSA1Ni4zLTY5LjEgMTg4LjYtMzMuOCAzNDQuNCA2OC44IDE1LjggMTY5LjEtMjYuNCAyNzEtMTEwLjJ6Il19LFhzdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJkZWJpYW4iLGljb246WzQ0OCw1MTIsW10sImU2MGIiLCJNMzgwLjQgMjQ1LjZjMy03LjYgNS41LTE0IDUuMi0yNC40bC00LjMgOWM0LjQtMTMuMiA0LTI3LjEgMy42LTQwLjQtLjItNi0uMy0xMS44IDAtMTcuNGwtMS44LS41Yy0xLjUtNDUuMi00MC42LTkzLjEtNzUuMy0xMDkuNC0zMC0xMy44LTc2LjEtMTYuMi05Ny4zLTUuOCAxLjMtMS4xIDQuMi0yIDYuOC0yLjdsLjMtLjFjMy4zLTEgNi0xLjcgNC0yLjktMTkuMiAxLjktMjQuOSA1LjUtMzEuMSA5LjRsLS4xIDBjLTQuNiAyLjktOS41IDYtMjAuMyA4LjctMy41IDMuNCAxLjcgMiA1LjggLjlzNy4yLTEuOS0uMSAyLjRjLTMuNSAxLTYuNiAxLjMtOS42IDEuNmwtLjEgMGMtOC4zIC44LTE1LjggMS42LTMwLjcgMTcgLjggMS4zIDMuNC0uMiA1LjMtMS4zbC4xLS4xYzIuMy0xLjQgMy40LTItMS43IDQuNC0xOS4xLTIuNC02MC4zIDQzLjctNjkuMSA1OWw0LjYgLjhjLTMuMiA4LTYuOCAxNC44LTEwIDIwLjgtNC4zIDguMS03LjkgMTQuOS04LjcgMjEuMy0uMyA1LjEtMSAxMS0xLjcgMTcuMy0uMSAxLS4yIDItLjMgM2wtLjEgLjZjLTMgMjcuMy02LjcgNjAuOCAzLjkgNzNsLTEuMyAxM2MuNiAxLjIgMS4xIDIuMyAxLjYgMy41IC4yIC40IC40IC44IC41IDEuMSAxIDIuMSAyIDQuMiAzLjMgNi4ybC0zIC4yYzcgMjIuMSAxMC44IDIyLjUgMTUuMSAyMi45IDQuNCAuNCA5LjMgLjkgMTguNyAyNC4yLTIuNy0uOS01LjUtMS45LTkuNC03LjItLjUgNC4xIDUuOCAxNi4zIDEzLjEgMjUuOGwtMy4xIDMuNmMyLjEgMy43IDQuOCA2LjIgNy42IDguOCAxIC45IDIuMSAxLjkgMy4xIDIuOS0xMS45LTYuNSAzLjIgMTMuNyAxMS45IDI1LjIgLjggMS4xIDEuNSAyIDIuMiAyLjkgMS40IDEuOSAyLjUgMy40IDIuOSA0LjFsMi40LTQuMmMtLjMgNi4xIDQuMyAxMy45IDEzLjEgMjQuN2w3LjMtLjNjMyA2IDE0IDE2LjcgMjAuNyAxNy4ybC00LjQgNS44YzguMSAyLjYgMTAuMyA0LjMgMTIuNyA2LjIgMi42IDIuMSA1LjQgNC4zIDE2LjEgOC4xbC00LjItNy40YzMuNSAzIDYuMiA1LjkgOC44IDguN2wuMSAuMWM1LjIgNS42IDkuOSAxMC42IDE5LjcgMTUuMyAxMC43IDMuNyAxNi42IDQuNyAyMi43IDUuOCAuMyAwIC42IC4xIC45IC4xIDUuNCAuOCAxMS4yIDEuOCAyMC44IDQuNS0xLjEtLjEtMi4yLS4xLTMuMy0uMS0yLjMtLjEtNC43LS4xLTctLjEtMTQuNC0uMi0yOS4yLS40LTQyLjctNS4yLTk2LjYtMjUuNy0xODQuOS0xMzktMTc4LjQtMjU1LjYtLjYtOS45LS4zLTIwLjkgMC0zMC43IC40LTEzLjUgLjctMjQuOC0xLjYtMjguM2wxLTMuMWM1LjMtMTcuNCAxMS43LTM4LjIgMjMuOC02Mi44bC0uMS0uMiAwLS4xYy40IC40IDMuNCAzLjQgOC44LTUuOCAuOC0xLjggMS42LTMuNyAyLjQtNS42IC41LTEuMSAuOS0yLjIgMS40LTMuMiAyLjUtNi4xIDUuMS0xMi4zIDguNC0xNy45bDIuNi0uNmMxLjctMTAuMSAxNy0yMy44IDI5LjgtMzUuMmwxLjEtMWM1LjctNS4xIDEwLjctOS43IDEzLjYtMTMuMWwuNyA0LjRjMTctMTUuOSA0NC42LTI3LjUgNjUuNi0zNi40bC41LS4yYzQuOC0yIDkuMy0zLjkgMTMuMy01LjctMy40IDMuOCAyLjIgMi43IDEwIDEgNC44LTEgMTAuNC0yLjEgMTUuMy0yLjRsLTMuOSAyLjFjLTIuNyAxLjQtNS40IDIuOC04IDQuNiA4LjEtMiAxMS43LTEuNCAxNS43LS44bC4zIDBjMy41IC42IDcuMyAxLjIgMTQuNiAuMi01LjYgLjgtMTIuMyAzLTExLjIgMy44IDcuOSAuOSAxMi44LS4xIDE3LjItMWwuMiAwYzUuNS0xLjEgMTAuMy0yIDE5LjMgLjlsLTEtNC44YzcuMyAyLjYgMTIuNyA0LjMgMTcuNSA1LjhsLjUgLjFjMTAgMyAxNy42IDUuMyAzNC4yIDE0LjEgMy4yIC4yIDUuMy0uNSA3LjQtMS4ybC4xIDBjMy42LTEuMSA3LTIuMSAxNS4yIDEuMiAuMyAuNSAuNSAxIC43IDEuNCAuMSAuMiAuMiAuNSAuMyAuN2wwIC4xYzEgMi42IDEuOCA0LjYgMTQuNiAxMi4xIDEuNy0uNy0yLjctNC43LTYuNC04LjJsLS4xLS4xYy0uMi0uMS0uMy0uMy0uNS0uNCAzMi4yIDE3LjMgNjcuMyA1NC4xIDc4IDkzLjUtNi0xMS4xLTUuMi01LjUtNC4zIC41IC42IDQgMS4yIDguMS0uMiA3LjUgNC41IDEyLjEgOC4xIDI0LjUgMTAuNCAzNy40bC0uOC0yLjktLjEtLjNjLTMuMy0xMS45LTkuNi0zNC4zLTE5LjktNDkuMy0uNCA0LjMtMi44IDMuOS01LjIgMy41bC0uMSAwYy0zLjMtLjYtNi4yLTEuMS0xLjkgMTIuNiAyLjYgMy44IDMuMSAyLjQgMy41IDEuMSAuNS0xLjUgLjktMi43IDQuNyA1LjIgLjEgNC4xIDEgOC4yIDIuMSAxMi43bC4xIC42Yy4xIC4zIC4xIC41IC4yIC44bC4xIC42Yy42IDIuNiAxLjMgNS40IDEuOCA4LjQtMS4xLS4yLTIuMy0yLjItMy40LTQuMi0xLjQtMi40LTIuOC00LjctMy43LTMuMiAyLjQgMTEuNSA2LjUgMTcuNCA4IDE4LjMtLjMgLjYtLjYgLjctMS4xIC43LS44IDAtMS44IC4xLTEuOSA1LjMgLjcgMTMuNyAzLjMgMTIuNSA1LjMgMTEuNiAuNi0uMyAxLjItLjYgMS43LS40LS42IDIuNS0xLjYgNS4xLTIuNyA3LjktMi44IDcuMS02IDE1LjQtMy40IDI2LjEtLjgtMy0yLTYtMy4xLTguOWwtLjEtLjRjLS4yLS41LS40LTEtLjYtMS41LS4zLS44LS42LTEuNi0uOS0yLjMtLjYgNC40LS4zIDcuNy0uMSAxMC42bDAgLjdjLjQgNS4zIC43IDEwLTMgMTkuOSA0LjMtMTQuMiAzLjgtMjYuOS0uMi0yMC44IDEgMTAuOS0zLjcgMjAuNC04IDI4LjlsLS4xIC4yYy0zLjYgNy4xLTYuOCAxMy41LTUuOSAxOS4zbC01LjItNy4xYy03LjUgMTAuOS03IDEzLjMtNi41IDE1LjVsMCAuMWMuNSAxLjkgMSAzLjgtMy40IDEwLjggMS43LTIuOSAxLjMtMy42IDEtNC4yLS40LS44LS43LTEuNSAxLjctNS4xLTEuNiAuMS01LjUgMy45LTEwLjEgOC41LTMuOSAzLjktOC41IDguNC0xMi44IDExLjgtMzcuNSAzMC4xLTgyLjMgMzQtMTI1LjYgMTcuOCAuMi0xLS4yLTIuMS0zLjEtNC4xLTM2LjgtMjguMi01OC41LTUyLjEtNTAuOS0xMDcuNSAyLjEtMS42IDMuNi01LjggNS4zLTEwLjhsLjItLjQgLjEtLjMgMC0uMWMyLjktOC40IDYuNS0xOC44IDE0LjMtMjMuOCA3LjgtMTcuMyAzMS4zLTMzLjMgNTYuNC0zMy43IDI1LjYtMS40IDQ3LjIgMTMuNyA1OC4xIDI3LjktMTkuOC0xOC40LTUyLjEtMjQtNzkuNy0xMC40LTI4LjIgMTIuNy00NSA0My44LTQyLjUgNzQuNyAuMy0uNCAuNi0uNiAuOS0uOGwuMi0uMmMuNi0uNSAxLjEtLjkgMS40LTMuMy0uOSA2MC4yIDY0LjggMTA0LjMgMTEyLjEgODJsLjYgMS4zYzEyLjctMy41IDE1LjktNi41IDIwLjMtMTAuN2wuMS0uMWMyLjItMi4xIDQuNy00LjUgOC45LTcuMy0uMyAuNy0xLjMgMS43LTIuNCAyLjctMi4yIDIuMS00LjYgNC41LTEuNiA0LjYgNS0xLjMgMTguNS0xMy40IDI4LjUtMjIuMyAuNi0uNSAxLjItMSAxLjctMS41IDEuNS0xLjMgMi44LTIuNSA0LTMuNmwuMy0uM2MxLjktNC4yIDEuNi01LjYgMS4zLTdsMC0uMWMtLjQtMS42LS44LTMuMyAyLjQtOS42bDcuMy0zLjdjLjgtMi4xIDEuNS00LjEgMi4yLTYgLjItLjYgLjUtMS4yIC43LTEuOGwtLjQtLjItLjEtLjF6TTI0OCAzMzQuMWMtNi0zLTEzLjctOC45LTE0LjgtMTEuNGwtLjQgLjNjLS4zIC42LS41IDEuMy0uMiAyLjItMTIuMi01LjctMjMuNC0xNC4zLTMyLjYtMjQuOSA0LjkgNy4xIDEwLjEgMTQuMSAxNyAxOS41LTYuOS0yLjMtMTUuMS0xMS44LTIxLjYtMTkuM2wtLjEtLjFjLTQuMy01LTcuOS05LjEtOS43LTkuNSAxOS44IDM1LjUgODAuNSA2Mi4zIDExMi4zIDQ5LTE0LjcgLjUtMzMuNCAuMy00OS45LTUuOHptNzkuMy0xMTkuN2wtLjEtLjJjLS41LTEuNS0xLjEtMy4xLTEuNy0zLjQgMS40LTUuOCA1LjQtMTAuNyA0LjQgNC42LTEgMy44LTEuOCAxLjUtMi42LTF6bS00LjIgMjIuMmMtMS4zIDcuOS01IDE1LjUtMTAuMSAyMi41IC4yLTItMS4yLTIuNC0yLjYtMi44LTIuOS0uOC01LjktMS42IDUuNi0xNi4xLS41IDEuOS0yLjEgNC42LTMuNyA3LjNsLS4zIC40Yy0zLjYgNS45LTYuNyAxMSA0IDQuM2wxLTEuOGMyLjYtNC41IDUtOC44IDYtMTMuOGwuMSAwem0tNTUuNiAzMy45YzcuMSAuNiAxNC4xIC42IDIxLTEuMS0yLjUgMi40LTUuMiA0LjgtOC4zIDcuMi0xMS4xLTEuNy0yMS4yLTYtMTIuNy02LjF6bS05Mi42IDExLjZjMy42IDcuMSA2LjQgMTEuNSA5IDE1LjdsLjEgLjJjMi4zIDMuNyA0LjQgNy4xIDYuOCAxMS43LTUuMS00LjItOC43LTkuNS0xMi41LTE1bC0uMy0uNWMtMS40LTIuMS0yLjgtNC4yLTQuNC02LjJsMS4yLTUuOSAuMSAwem03LjUtOS42YzEuNiAzLjMgMy4yIDYuNCA1LjcgOS4xbDIuNiA3LjctMS4zLTIuMWMtMy4yLTUuMy02LjMtMTAuNi04LTE2LjdsMSAyem0yMzguOS00MS42Yy0yLjMgMTcuNC03LjcgMzQuNi0xNiA1MC4zIDcuNi0xNC45IDEyLjUtMzAuOSAxNC44LTQ3LjJsMS4yLTMuMXpNMzUuOCAxMTAuNmMuNCAuOCAxLjQgLjUgMi4zIC4zIDEuOS0uNSAzLjYtLjktLjEgNy42LS41IC4zLTEgLjctMS41IDEtMS40IC45LTIuOCAxLjktMy45IDMgMS45LTMuOCAzLjUtNy40IDMuMi0xMS45ek0yNS41IDE1Mi4zYy0uNyAzLjctMS41IDcuOS0zLjQgMTMuOSAuMi0xLjkgMC0zLjUtLjItNC45bDAtLjFjLS40LTMuNC0uNy02LjMgNC4zLTEyLjgtLjMgMS4yLS41IDIuNS0uNyAzLjhsMCAuMXoiXX0sUXN0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6Im1hc3RvZG9uIixpY29uOls0NDgsNTEyLFtdLCJmNGY2IiwiTTQzMyAxNzkuMWMwLTk3LjItNjMuNy0xMjUuNy02My43LTEyNS43LTYyLjUtMjguNy0yMjguNi0yOC40LTI5MC41IDAgMCAwLTYzLjcgMjguNS02My43IDEyNS43IDAgMTE1LjctNi42IDI1OS40IDEwNS42IDI4OS4xIDQwLjUgMTAuNyA3NS4zIDEzIDEwMy4zIDExLjQgNTAuOC0yLjggNzkuMy0xOC4xIDc5LjMtMTguMWwtMS43LTM2LjlzLTM2LjMgMTEuNC03Ny4xIDEwLjFjLTQwLjQtMS40LTgzLTQuNC04OS42LTU0LS42LTQuNi0uOS05LjMtLjktMTMuOSA4NS42IDIwLjkgMTU4LjcgOS4xIDE3OC43IDYuNyA1Ni4xLTYuNyAxMDUtNDEuMyAxMTEuMi03Mi45IDkuOC00OS44IDktMTIxLjUgOS0xMjEuNXpNMzU3LjkgMzA0LjNsLTQ2LjYgMCAwLTExNC4yYzAtNDkuNy02NC01MS42LTY0IDYuOWwwIDYyLjUtNDYuMyAwIDAtNjIuNWMwLTU4LjUtNjQtNTYuNi02NC02LjlsMCAxMTQuMi00Ni43IDBjMC0xMjIuMS01LjItMTQ3LjkgMTguNC0xNzUgMjUuOS0yOC45IDc5LjgtMzAuOCAxMDMuOCA2LjFsMTEuNiAxOS41IDExLjYtMTkuNWMyNC4xLTM3LjEgNzguMS0zNC44IDEwMy44LTYuMSAyMy43IDI3LjMgMTguNCA1MyAxOC40IDE3NWwwIDB6Il19LEpzdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJza2V0Y2giLGljb246WzUxMiw1MTIsW10sImY3YzYiLCJNMjcuOCAxNjIuMmwtMTguNSAyNC45IDkwLjUgMCA2LjktMTMwLjctNzguOSAxMDUuOHpNMzk2LjYgNDUuN0wyNjggMzIgNDAzLjcgMTc5LjIgMzk2LjYgNDUuN3pNMTEyLjUgMjE4LjNsLTExLjItMjItOTEuMSAwIDIyNC45IDI2MS43LTEyMi42LTIzOS43em0yLTMxLjJsMjg0IDBDMzQwLjYgMTI0LjMgMjkzLjMgNzIuOSAyNTYuNiAzM0wxMTQuNSAxODcuMXptMjk3LjMgOS4xbC0xMzMuOSAyNjEuOCAyMjQuOC0yNjEuNy05MC45IDAgMC0uMXpNNDE1LjcgNjlsLTkuNC0xMi42IC45IDE3LjMgNi4xIDExMy40IDkwLjMgMC04Ny45LTExOC4xek0xMTMuOCA5My41TDEwOS4yIDE3OS4xIDI0NSAzMiAxMTYuNCA0NS43IDExMy44IDkzLjV6TTQwMS41IDE5Ni4ybC0yOTAgMGMxOC4yIDM1LjYgNjYuNiAxMzAuMiAxNDUuMSAyODMuOEw0MDEuNSAxOTYuMnoiXX0sS3N0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6IndlYi1hd2Vzb21lIixpY29uOls2NDAsNTEyLFtdLCJlNjgyIiwiTTM3Mi4yIDUyYzAgMjAuOS0xMi40IDM5LTMwLjIgNDcuMkw0NDggMTkyIDU1Mi40IDE3MS4xYy01LjMtNy43LTguNC0xNy4xLTguNC0yNy4xIDAtMjYuNSAyMS41LTQ4IDQ4LTQ4czQ4IDIxLjUgNDggNDhjMCAyNi0yMC42IDQ3LjEtNDYuNCA0OEw0ODEgNDQyLjNjLTEwLjMgMjMtMzMuMiAzNy43LTU4LjQgMzcuN2wtMjA1LjIgMGMtMjUuMiAwLTQ4LTE0LjgtNTguNC0zNy43TDQ2LjQgMTkyQzIwLjYgMTkxLjEgMCAxNzAgMCAxNDQgMCAxMTcuNSAyMS41IDk2IDQ4IDk2czQ4IDIxLjUgNDggNDhjMCAxMC4xLTMuMSAxOS40LTguNCAyNy4xTDE5MiAxOTIgMjk4LjEgOTkuMWMtMTcuNy04LjMtMzAtMjYuMy0zMC00Ny4xIDAtMjguNyAyMy4zLTUyIDUyLTUyczUyIDIzLjMgNTIgNTJsLjEgMHoiXX0sZWx0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6InNhc3MiLGljb246WzY0MCw1MTIsW10sImY0MWUiLCJNMzAxLjggMzc4LjlsMCAwem0yNDkuMS04N2MtMjAuMSAwLTQwIDQuNi01OCAxMy41LTUuOS0xMS45LTEyLTIyLjMtMTMtMzAuMS0xLjItOS4xLTIuNS0xNC41LTEuMS0yNS4zczcuNy0yNi4xIDcuNi0yNy4yLTEuNC02LjYtMTQuMy02LjctMjQgMi41LTI1LjMgNS45Yy0yLjMgNi4yLTQuMSAxMi42LTUuMyAxOS4xLTIuMyAxMS43LTI1LjggNTMuNS0zOS4xIDc1LjMtNC40LTguNS04LjEtMTYtOC45LTIyLTEuMi05LjEtMi41LTE0LjUtMS4xLTI1LjNzNy43LTI2LjEgNy42LTI3LjItMS40LTYuNi0xNC4zLTYuNy0yNCAyLjUtMjUuMyA1LjktMi43IDExLjQtNS4zIDE5LjEtMzMuOSA3Ny4zLTQyLjEgOTUuNGMtNC4yIDkuMi03LjggMTYuNi0xMC40IDIxLjYtLjQgLjgtLjcgMS4zLS45IDEuNyAuMy0uNSAuNS0xIC41LS44LTIuMiA0LjMtMy41IDYuNy0zLjUgNi43bDAgLjFjLTEuNyAzLjItMy42IDYuMS00LjUgNi4xLS42IDAtMS45LTguNCAuMy0xOS45IDQuNy0yNC4yIDE1LjgtNjEuOCAxNS43LTYzLjEtLjEtLjcgMi4xLTcuMi03LjMtMTAuNy05LjEtMy4zLTEyLjQgMi4yLTEzLjIgMi4ycy0xLjQgMi0xLjQgMiAxMC4xLTQyLjQtMTkuNC00Mi40Yy0xOC40IDAtNDQgMjAuMi01Ni42IDM4LjUtNy45IDQuMy0yNSAxMy42LTQzIDIzLjUtNi45IDMuOC0xNCA3LjctMjAuNyAxMS40LS41LS41LS45LTEtMS40LTEuNS0zNS44LTM4LjItMTAxLjktNjUuMi05OS4xLTExNi41IDEtMTguNyA3LjUtNjcuOCAxMjcuMS0xMjcuNCA5OC00OC44IDE3Ni4zLTM1LjQgMTg5LjgtNS42IDE5LjQgNDIuNS00MS45IDEyMS42LTE0My43IDEzMy0zOC44IDQuMy01OS4yLTEwLjctNjQuMy0xNi4zLTUuMy01LjktNi4xLTYuMi04LjEtNS4xLTMuMyAxLjgtMS4yIDcgMCAxMC4xIDMgNy45IDE1LjUgMjEuOSAzNi44IDI4LjkgMTguNyA2LjEgNjQuMiA5LjUgMTE5LjItMTEuOCA2MS44LTIzLjggMTA5LjktOTAuMSA5NS44LTE0NS42LTE0LjQtNTYuNC0xMDcuOS03NC45LTE5Ni4zLTQzLjUtNTIuNyAxOC43LTEwOS43IDQ4LjEtMTUwLjcgODYuNC00OC43IDQ1LjYtNTYuNSA4NS4zLTUzLjMgMTAxLjkgMTEuNCA1OC45IDkyLjYgOTcuMyAxMjUuMSAxMjUuNy0xLjYgLjktMy4xIDEuNy00LjUgMi41LTE2LjMgOC4xLTc4LjIgNDAuNS05My43IDc0LjctMTcuNSAzOC44IDIuOSA2Ni42IDE2LjMgNzAuNCA0MS44IDExLjYgODQuNi05LjMgMTA3LjYtNDMuNnMyMC4yLTc5LjEgOS42LTk5LjVjLS4xLS4zLS4zLS41LS40LS44IDQuMi0yLjUgOC41LTUgMTIuOC03LjUgOC4zLTQuOSAxNi40LTkuNCAyMy41LTEzLjMtNCAxMC44LTYuOSAyMy44LTguNCA0Mi42LTEuOCAyMiA3LjMgNTAuNSAxOS4xIDYxLjcgNS4yIDQuOSAxMS41IDUgMTUuNCA1IDEzLjggMCAyMC0xMS40IDI2LjktMjUgOC41LTE2LjYgMTYtMzUuOSAxNi0zNS45cy05LjQgNTIuMiAxNi4zIDUyLjJjOS40IDAgMTguOC0xMi4xIDIzLTE4LjNsMCAuMXMuMi0uNCAuNy0xLjJjMS0xLjUgMS41LTIuNCAxLjUtMi40bDAtLjNjMy44LTYuNSAxMi4xLTIxLjQgMjQuNi00NiAxNi4yLTMxLjggMzEuNy03MS41IDMxLjctNzEuNSAxLjUgOC43IDMuNiAxNy4zIDYuMiAyNS44IDIuOCA5LjUgOC43IDE5LjkgMTMuNCAzMC0zLjggNS4yLTYuMSA4LjItNi4xIDguMiAwIC4xIDAgLjEgLjEgLjItMyA0LTYuNCA4LjMtOS45IDEyLjUtMTIuOCAxNS4yLTI4IDMyLjYtMzAgMzcuNi0yLjQgNS45LTEuOCAxMC4zIDIuOCAxMy43IDMuNCAyLjYgOS40IDMgMTUuNyAyLjUgMTEuNS0uOCAxOS42LTMuNiAyMy41LTUuNCA3LjItMi42IDE0LTYuMSAyMC4yLTEwLjYgMTIuNS05LjIgMjAuMS0yMi40IDE5LjQtMzkuOC0uNC05LjYtMy41LTE5LjItNy4zLTI4LjIgMS4xLTEuNiAyLjMtMy4zIDMuNC01IDE5LjgtMjguOSAzNS4xLTYwLjYgMzUuMS02MC42IDEuNSA4LjcgMy42IDE3LjMgNi4yIDI1LjggMi40IDguMSA3LjEgMTcgMTEuNCAyNS43LTE4LjYgMTUuMS0zMC4xIDMyLjYtMzQuMSA0NC4xLTcuNCAyMS4zLTEuNiAzMC45IDkuMyAzMy4xIDQuOSAxIDExLjktMS4zIDE3LjEtMy41IDcuNy0yLjYgMTUtNi4zIDIxLjYtMTEuMSAxMi41LTkuMiAyNC42LTIyLjEgMjMuOC0zOS42LS4zLTcuOS0yLjUtMTUuOC01LjQtMjMuNCAxNS43LTYuNiAzNi4xLTEwLjIgNjIuMS03LjIgNTUuNyA2LjUgNjYuNiA0MS4zIDY0LjUgNTUuOHMtMTMuOCAyMi42LTE3LjcgMjUtNS4xIDMuMy00LjggNS4xYy41IDIuNiAyLjMgMi41IDUuNiAxLjkgNC42LS44IDI5LjItMTEuOCAzMC4zLTM4LjcgMS42LTM0LTMxLjEtNzEuNC04OS03MS4xbDAgMHpNMTIxLjggNDM2LjZjLTE4LjQgMjAuMS00NC4yIDI3LjctNTUuMyAyMS4zLTExLjktNi45LTcuMi0zNi41IDE1LjUtNTcuOSAxMy44LTEzIDMxLjYtMjUgNDMuNC0zMi40IDIuNy0xLjYgNi42LTQgMTEuNC02LjkgLjgtLjUgMS4yLS43IDEuMi0uNyAuOS0uNiAxLjktMS4xIDIuOS0xLjcgOC4zIDMwLjQgLjMgNTcuMi0xOS4xIDc4LjNsMCAwem0xMzQuNC05MS40Yy02LjQgMTUuNy0xOS45IDU1LjctMjguMSA1My42LTctMS44LTExLjMtMzIuMy0xLjQtNjIuMyA1LTE1LjEgMTUuNi0zMy4xIDIxLjktNDAuMSAxMC4xLTExLjMgMjEuMi0xNC45IDIzLjgtMTAuNCAzLjUgNS45LTEyLjIgNDkuNC0xNi4yIDU5LjJ6bTExMSA1M2MtMi43IDEuNC01LjIgMi4zLTYuNCAxLjYtLjktLjUgMS4xLTIuNCAxLjEtMi40czEzLjktMTQuOSAxOS40LTIxLjdjMy4yLTQgNi45LTguNyAxMC45LTEzLjkgMCAuNSAuMSAxIC4xIDEuNi0uMSAxNy45LTE3LjMgMzAtMjUuMSAzNC44bDAgMHptODUuNi0xOS41Yy0yLTEuNC0xLjctNi4xIDUtMjAuNyAyLjYtNS43IDguNi0xNS4zIDE5LTI0LjUgMS4yIDMuNSAxLjggNy4xIDEuOSAxMC44LS4xIDIyLjUtMTYuMiAzMC45LTI1LjkgMzQuNGwwIDB6Il19LHRsdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJ0aHJlZW1hIixpY29uOlszODQsNTEyLFtdLCJlODVmIiwiTTg3LjQgNDQ1LjFjMTguNSAwIDMzLjUgMTUgMzMuNSAzMy40UzEwNS45IDUxMiA4Ny40IDUxMiA1NCA0OTcgNTQgNDc4LjUgNjkgNDQ1LjEgODcuNCA0NDUuMXptMTA5LjIgMGMxOC41IDAgMzMuNSAxNSAzMy41IDMzLjRzLTE1IDMzLjUtMzMuNSAzMy41LTMzLjQtMTUtMzMuNC0zMy41IDE1LTMzLjQgMzMuNC0zMy40em0xMDkuMyAwYzE4LjUgMCAzMy41IDE1IDMzLjUgMzMuNHMtMTUgMzMuNS0zMy41IDMzLjUtMzMuNS0xNS0zMy41LTMzLjUgMTUtMzMuNCAzMy41LTMzLjR6TTE5Mi4zIC4zYzEwOS44IDAgMTk5LjIgODkuMyAxOTkuMiAxOTkuMVMzMDIuMiAzOTguNSAxOTIuNCAzOTguNWMtNDAuNSAwLTc4LjEtMTIuMS0xMDkuNi0zMi45bC03Ni41IDI0LjUgMjQuOC03NEM3LjMgMjgzLjQtNi44IDI0My02LjggMTk5LjQtNi44IDg5LjcgODIuNSAuMyAxOTIuMyAuM3ptLjEgOTMuN2MtMzEuNiAwLTU3LjMgMjUuOC01Ny4zIDU3LjNsMCAyNi43LTEuOCAwYy0xMCAwLTE4IDgtMTggMThsMCA3Mi4zYzAgMTAgOCAxOCAxOCAxOGwxMTguMSAwYzEwIDAgMTgtOCAxOC0xOGwuMSAwIDAtNzIuM2MwLTEwLTguMS0xOC0xOC0xOGwtMS44IDAgMC0yNi43YzAtMzEuNi0yNS44LTU3LjMtNTcuMy01Ny4zem0tLjEgMjMuNWMxOC42IDAgMzMuOCAxNS4xIDMzLjggMzMuOGwwIDI2LjctNjcuNiAwIDAtMjYuN2MwLTE4LjYgMTUuMS0zMy44IDMzLjgtMzMuOHoiXX0sdG5lPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6InNxdWFyZS13aGF0c2FwcCIsaWNvbjpbNDQ4LDUxMixbIndoYXRzYXBwLXNxdWFyZSJdLCJmNDBjIiwiTTkyLjEgMjU0LjZjMCAyNC45IDcgNDkuMiAyMC4yIDcwLjFsMy4xIDUtMTMuMyA0OC42IDQ5LjktMTMuMSA0LjggMi45YzIwLjIgMTIgNDMuNCAxOC40IDY3LjEgMTguNGwuMSAwYzcyLjYgMCAxMzMuMy01OS4xIDEzMy4zLTEzMS44IDAtMzUuMi0xNS4yLTY4LjMtNDAuMS05My4yLTI1LTI1LTU4LTM4LjctOTMuMi0zOC43LTcyLjcgMC0xMzEuOCA1OS4xLTEzMS45IDEzMS44ek0yNzQuOCAzMzBjLTEyLjYgMS45LTIyLjQgLjktNDcuNS05LjktMzYuOC0xNS45LTYxLjgtNTEuNS02Ni45LTU4LjctLjQtLjYtLjctLjktLjgtMS4xLTItMi42LTE2LjItMjEuNS0xNi4yLTQxIDAtMTguNCA5LTI3LjkgMTMuMi0zMi4zIC4zLS4zIC41LS41IC43LS44IDMuNi00IDcuOS01IDEwLjYtNSAyLjYgMCA1LjMgMCA3LjYgLjFsLjggMGMyLjMgMCA1LjIgMCA4LjEgNi44IDEuMiAyLjkgMyA3LjMgNC45IDExLjggMy4zIDggNi43IDE2LjMgNy4zIDE3LjYgMSAyIDEuNyA0LjMgLjMgNi45LTMuNCA2LjgtNi45IDEwLjQtOS4zIDEzLTMuMSAzLjItNC41IDQuNy0yLjMgOC42IDE1LjMgMjYuMyAzMC42IDM1LjQgNTMuOSA0Ny4xIDQgMiA2LjMgMS43IDguNi0xIDIuMy0yLjYgOS45LTExLjYgMTIuNS0xNS41IDIuNi00IDUuMy0zLjMgOC45LTJzMjMuMSAxMC45IDI3LjEgMTIuOWMuOCAuNCAxLjUgLjcgMi4xIDEgMi44IDEuNCA0LjcgMi4zIDUuNSAzLjYgLjkgMS45IC45IDkuOS0yLjQgMTkuMS0zLjMgOS4zLTE5LjEgMTcuNy0yNi43IDE4Ljh6TTQ0OCA5NmMwLTM1LjMtMjguNy02NC02NC02NEw2NCAzMkMyOC43IDMyIDAgNjAuNyAwIDk2TDAgNDE2YzAgMzUuMyAyOC43IDY0IDY0IDY0bDMyMCAwYzM1LjMgMCA2NC0yOC43IDY0LTY0bDAtMzIwek0xNDguMSAzOTMuOUw2NCA0MTYgODYuNSAzMzMuOGMtMTMuOS0yNC0yMS4yLTUxLjMtMjEuMi03OS4zIC4xLTg3LjQgNzEuMi0xNTguNSAxNTguNi0xNTguNSA0Mi40IDAgODIuMiAxNi41IDExMi4yIDQ2LjUgMjkuOSAzMCA0Ny45IDY5LjggNDcuOSAxMTIuMiAwIDg3LjQtNzIuNyAxNTguNS0xNjAuMSAxNTguNS0yNi42IDAtNTIuNy02LjctNzUuOC0xOS4zeiJdfSxybHQ9dG5lLGlsdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJza3lwZSIsaWNvbjpbNDQ4LDUxMixbXSwiZjE3ZSIsIk00MjQuNyAyOTkuOGMyLjktMTQgNC43LTI4LjkgNC43LTQzLjggMC0xMTMuNS05MS45LTIwNS4zLTIwNS4zLTIwNS4zLTE0LjkgMC0yOS43IDEuNy00My44IDQuNy0xOS0xNC43LTQyLjYtMjMuNC02OC4zLTIzLjQtNjEuOCAwLTExMiA1MC4yLTExMiAxMTIgMCAyNS43IDguNyA0OS4zIDIzLjMgNjguMi0yLjkgMTQtNC43IDI4LjktNC43IDQzLjggMCAxMTMuNSA5MS45IDIwNS4zIDIwNS4zIDIwNS4zIDE0LjkgMCAyOS43LTEuNyA0My44LTQuNyAxOSAxNC42IDQyLjYgMjMuMyA2OC4yIDIzLjMgNjEuOCAwIDExMi01MC4yIDExMi0xMTIgLjEtMjUuNi04LjYtNDkuMi0yMy4yLTY4LjF6TTIzMC4xIDM5MS4zYy02NS42IDAtMTIwLjUtMjkuMi0xMjAuNS02NSAwLTE2IDktMzAuNiAyOS41LTMwLjYgMzEuMiAwIDM0LjEgNDQuOSA4OC4xIDQ0LjkgMjUuNyAwIDQyLjMtMTEuNCA0Mi4zLTI2LjMgMC0xOC43LTE2LTIxLjYtNDItMjgtNjIuNS0xNS40LTExNy44LTIyLTExNy44LTg3LjIgMC01OS4yIDU4LjYtODEuMSAxMDkuMS04MS4xIDU1LjEgMCAxMTAuOCAyMS45IDExMC44IDU1LjQgMCAxNi45LTExLjQgMzEuOC0zMC4zIDMxLjgtMjguMyAwLTI5LjItMzMuNS03NS0zMy41LTI1LjcgMC00MiA3LTQyIDIyLjUgMCAxOS44IDIwLjggMjEuOCA2OS4xIDMzIDQxLjQgOS4zIDkwLjcgMjYuOCA5MC43IDc3LjYgMCA1OS4xLTU3LjEgODYuNS0xMTIgODYuNXoiXX0sYWx0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImFuZ3VsYXIiLGljb246WzQ0OCw1MTIsW10sImY0MjAiLCJNMTg1LjcgMjY4LjFsNzYuMiAwLTM4LjEtOTEuNi0zOC4xIDkxLjZ6TTIyMy44IDMyTDE2IDEwNi40IDQ3LjggMzgyLjEgMjIzLjggNDgwIDM5OS44IDM4Mi4xIDQzMS42IDEwNi40IDIyMy44IDMyek0zNTQgMzczLjhsLTQ4LjYgMC0yNi4yLTY1LjQtMTEwLjYgMC0yNi4yIDY1LjQtNDguNyAwIDEzMC4xLTI5Mi4zIDEzMC4yIDI5Mi4zeiJdfSxubHQ9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiY2lyY2xlLXp1bGlwIixpY29uOls1MTIsNTEyLFtdLCJlODUxIiwiTTI1NiA1MTJhMjU2IDI1NiAwIDEgMSAwLTUxMiAyNTYgMjU2IDAgMSAxIDAgNTEyek0yNDMuNSAyNDBjMS4yLTEuOS0uOS00LjItMi42LTIuOGwtODkgNzkuNWMtOS4yIDcuMi0xNS4yIDE5LjEtMTUuMiAzMi41IDAgMjEuOSAxNiAzOS44IDM1LjcgMzkuOGwxNjcuMyAwYzE5LjYgMCAzNS43LTE3LjkgMzUuNy0zOS44IDAtMjEuOS0xNi4xLTM5LjctMzUuNy0zOS44bC0xMjYuNiAwYy0xLjkgMC0zLTIuMy0yLjEtNC4xTDI0My41IDI0MHpNMTcyLjQgMTIzLjFjLTE5LjYgMC0zNS43IDE3LjktMzUuNyAzOS44czE2IDM5LjggMzUuNyAzOS44bDEyNi42IDBjMS45IDAgMy4xIDIuMiAyLjIgNC4xTDI2OC41IDI3MmMtMS4yIDEuOSAuOSA0LjIgMi42IDIuOGw4OS03OS41YzkuMi03LjIgMTUuMi0xOS4xIDE1LjItMzIuNSAwLTIxLjktMTYtMzkuNy0zNS43LTM5LjhsLTE2Ny4zIDB6Il19LG9sdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJvcGVuc3VzZSIsaWNvbjpbNjQwLDUxMixbXSwiZTYyYiIsIk00NzEuMSAxMDIuN3MtLjMgMTguMy0uMyAyMC4zYy05LjEtMy03NC40LTI0LjEtMTM1LjctMjYuMy01MS45LTEuOC0xMjIuOC00LjMtMjIzIDU3LjMtMTkuNCAxMi40LTczLjkgNDYuMS05OS42IDEwOS43LTUuNSAxMy4zLTEyLjYgNDMuMy01LjUgNzEuNCAzLjMgMTIuOCA4LjkgMjQuOSAxNi41IDM1LjcgMTcuNCAyNSA0Ni42IDQxLjYgNzguMSA0NC40IDQ0LjQgMy45IDc4LjEtMTYgOTAtNTMuMyA4LjItMjUuOCAwLTYzLjYtMzEuNS04Mi45LTI1LjYtMTUuNy01My4zLTEyLjEtNjkuMi0xLjYtMTMuOSA5LjItMjEuOCAyMy41LTIxLjYgMzkuMiAuMyAyNy44IDI0LjMgNDIuNiA0MS41IDQyLjYgNS40IDAgMTAuNy0uOSAxNS44LTIuNyA2LjUtMS44IDEzLjMtNi41IDEzLjMtMTQuOSAwLTEyLjEtMTEuNi0xNC44LTE2LjgtMTMuOS0yLjkgLjUtNC41IDItMTEuOCAyLjQtMi0uMi0xMi0zLjEtMTItMTRsMC0uMWMuMi0xMi4zIDEzLjItMTggMjUuNS0xNi45IDMyLjMgMi44IDQ3LjcgNDAuNyAyOC41IDY1LjctMTguMyAyMy43LTc2LjYgMjMuMi05OS43LTIwLjQtMjYtNDkuMiAxMi43LTExMS4yIDg3LTk4LjQgMzMuMiA1LjcgODMuNiAzNS41IDEwMi40IDEwNC4zbDQ1LjkgMGMtNS43LTE3LjYtOC45LTY4LjMgNDIuNy02OC4zIDU2LjcgMCA2My45IDM5LjkgNzkuOCA2OC4zbDQ4LjYgMGMtMTIuOC0xOC4zLTIxLjctMzguNy0xOC45LTU1LjggNS42LTMzLjggMzkuNy0xOC40IDgyLjQtMTcuNCA2Ni41IC40IDEwMi4xLTI3IDEwMy4xLTI4IDMuNy0zLjEgNi41LTE1LjggNy0xNy43IDEuMy01LjEtMy4yLTIuNC0zLjItMi40LTguNyA1LjItMzAuNSAxNS4yLTUwLjkgMTUuNi0yNS4zIC41LTc2LjItMjUuNC04MS42LTI4LjItLjMtLjQgLjEgMS4yLTExLTI1LjUgODguNCA1OC4zIDExOC4zIDQwLjUgMTQ1LjIgMjEuNyAuOC0uNiA0LjMtMi45IDMuNi01LjctMTMuOC00OC4xLTIyLjQtNjIuNy0zNC41LTY5LjYtMzctMjEuNi0xMjUtMzQuNy0xMjkuMi0zNS4zIC4xLS4xLS45LS4zLS45IC43em02MC40IDcyLjhhMzcuNiAzNy42IDAgMSAxIDc1LjIgMi42IDM3LjYgMzcuNiAwIDEgMSAtNzUuMi0yLjZ6bTM4LjYtMjUuM2MtMy42LS4zLTcuMSAuMS0xMC41IDEuMnMtNi41IDIuOS05LjIgNS4zLTQuOCA1LjMtNi4zIDguNS0yLjQgNi43LTIuNSAxMC4zIC41IDcuMSAxLjggMTAuNCAzLjMgNi4zIDUuOCA4LjkgNS41IDQuNSA4LjggNS45IDYuOSAyIDEwLjQgMS45YzMuNiAuMyA3LjEtLjEgMTAuNS0xLjJzNi41LTIuOSA5LjItNS4zIDQuOC01LjMgNi4zLTguNSAyLjQtNi43IDIuNS0xMC4zLS41LTcuMS0xLjgtMTAuNC0zLjMtNi4zLTUuOC04LjktNS41LTQuNS04LjgtNS45LTYuOS0yLTEwLjQtMS45em00LjMgMjguOGMtMTUuNCAwLTE1LjQtMTUuNiAwLTE1LjZzMTUuNCAxNS42IDAgMTUuNnoiXX0sc2x0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImRyb3Bib3giLGljb246WzU3Niw1MTIsW10sImYxNmIiLCJNMjg4LjQgMTE2LjNsLTEzMiA4NC4zIDEzMiA4NC4zLTEzMiA4NC4zLTEzMi40LTg1LjEgMTMyLjMtODQuMy0xMzIuMy04My41IDEzMi4zLTg0LjMgMTMyLjEgODQuM3pNMTU1LjYgMzk1LjdsMTMyLTg0LjMgMTMyIDg0LjMtMTMyIDg0LjMtMTMyLTg0LjN6TTI4OC40IDI4NC4xbDEzMi04NC4zLTEzMi04My42IDEzMS4zLTg0LjIgMTMyLjMgODQuMy0xMzIuMyA4NC4zIDEzMi4zIDg0LjItMTMyLjMgODQuMy0xMzEuMy04NXoiXX0sbGx0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImRlZXplciIsaWNvbjpbNTEyLDUxMixbXSwiZTA3NyIsIk0xNC44IDEwMS4xQzYuNiAxMDEuMSAwIDEyNy42IDAgMTYwLjNzNi42IDU5LjIgMTQuOCA1OS4yIDE0LjgtMjYuNSAxNC44LTU5LjItNi42LTU5LjItMTQuOC01OS4yek00NDguNyA0MC45Yy03LjcgMC0xNC41IDE3LjEtMTkuNCA0NC4xLTcuNy00Ni43LTIwLjItNzctMzQuMi03Ny0xNi44IDAtMzEuMSA0Mi45LTM4IDEwNS40LTYuNi00NS40LTE2LjgtNzQuMi0yOC4zLTc0LjItMTYuMSAwLTI5LjYgNTYuOS0zNC43IDEzNi4yLTkuNC00MC44LTIzLjItNjYuMy0zOC4zLTY2LjNzLTI4LjggMjUuNS0zOC4zIDY2LjNjLTUuMS03OS4zLTE4LjYtMTM2LjItMzQuNy0xMzYuMi0xMS41IDAtMjEuNyAyOC44LTI4LjMgNzQuMi02LjYtNjIuNS0yMS4yLTEwNS40LTM3LjgtMTA1LjQtMTQgMC0yNi41IDMwLjQtMzQuMiA3Ny00LjgtMjctMTEuNy00NC4xLTE5LjQtNDQuMS0xNC4zIDAtMjYgNTkuMi0yNiAxMzIuMVM0OSAzMDUuMiA2My4zIDMwNS4yYzUuOSAwIDExLjUtOS45IDE1LjgtMjYuOCA2LjkgNjEuNyAyMS4yIDEwNC4xIDM4IDEwNC4xIDEzIDAgMjQuNS0yNS41IDMyLjEtNjUuNiA1LjQgNzYuMyAxOC42IDEzMC40IDM0LjIgMTMwLjQgOS43IDAgMTguNi0yMS40IDI1LjMtNTYuNCA3LjkgNzIuMiAyNi4zIDEyMi43IDQ3LjcgMTIyLjdzMzkuNS01MC41IDQ3LjctMTIyLjdjNi42IDM1IDE1LjYgNTYuNCAyNS4zIDU2LjQgMTUuNiAwIDI4LjgtNTQuMSAzNC4yLTEzMC40IDcuNyA0MC4xIDE5LjQgNjUuNiAzMi4xIDY1LjYgMTYuNiAwIDMwLjktNDIuMyAzOC0xMDQuMSA0LjMgMTYuOCA5LjcgMjYuOCAxNS44IDI2LjggMTQuMyAwIDI2LTU5LjIgMjYtMTMyLjFTNDYzIDQwLjkgNDQ4LjcgNDAuOXptNDguNSA2MC4yYy04LjIgMC0xNC44IDI2LjUtMTQuOCA1OS4yczYuNiA1OS4yIDE0LjggNTkuMiAxNC44LTI2LjUgMTQuOC01OS4yLTYuNi01OS4yLTE0LjgtNTkuMnoiXX0sY2x0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImNyZWF0aXZlLWNvbW1vbnMtc2FtcGxpbmciLGljb246WzUxMiw1MTIsW10sImY0ZjAiLCJNMjU1LjYgOEMzOTcuNCA4IDUwNCAxMTguMSA1MDQgMjU2IDUwNCA0MDMuMSAzODUuNSA1MDQgMjU1LjYgNTA0IDEyMS42IDUwNCA4IDM5NC41IDggMjU2IDggMTIzLjEgMTEyLjcgOCAyNTUuNiA4em0uOCA0NC43Yy0xMTguMiAwLTIwMy43IDk3LjktMjAzLjcgMjAzLjMgMCAxMDkuOCA5MS4yIDIwMi44IDIwMy43IDIwMi44IDEwMy4yIDAgMjAyLjgtODEuMSAyMDIuOC0yMDIuOCAuMS0xMTMuOC05MC4yLTIwMy4zLTIwMi44LTIwMy4zem0zLjYgNTMuMmMyLjgtLjMgMTEuNSAxIDExLjUgMTEuNWw2LjYgMTA3LjIgNC45LTU5LjNjMC02IDQuNy0xMC42IDEwLjYtMTAuNnMxMC42IDQuNyAxMC42IDEwLjZjMCAyLjUtLjUtNS43IDUuNyA4MS41bDUuOC02NC4yYy4zLTIuOSAyLjktOS4zIDEwLjItOS4zIDMuOCAwIDkuOSAyLjMgMTAuNiA4LjlsMTEuNSA5Ni41IDUuMy0xMi44YzEuOC00LjQgNS4yLTYuNiAxMC4yLTYuNmw1OCAwIDAgMjEuMy01MC45IDAtMTguMiA0NC4zYy0zLjkgOS45LTE5LjUgOS4xLTIwLjgtMy4xbC00LTMxLjktNy41IDkyLjZjLS4zIDMtMyA5LjMtMTAuMiA5LjMtMyAwLTkuOC0yLjEtMTAuNi05LjMgMC0xLjkgLjYgNS44LTYuMi03Ny45bC01LjMgNzIuMmMtMS4xIDQuOC00LjggOS4zLTEwLjYgOS4zLTIuOSAwLTkuOC0yLTEwLjYtOS4zIDAtMS45IC41IDYuNy01LjgtODcuN0wyNTUgMzgzLjljMCA2LjMtMy42IDEyLjQtMTAuNiAxMi40LTUuMiAwLTEwLjYtNC4xLTEwLjYtMTJMMjI4IDI5Ni42Yy01LjggOTIuNS01LjMgODQtNS4zIDg1LjktMS4xIDQuOC00LjggOS4zLTEwLjYgOS4zLTMgMC05LjgtMi4xLTEwLjYtOS4zIDAtLjctLjQtMS4xLS40LTIuNmwtNi4yLTg4LjYtNC45IDU2LjdjLS43IDYuNS02LjcgOS4zLTEwLjYgOS4zLTUuOCAwLTkuNi00LjEtMTAuNi04LjlMMTU3LjcgMjcyYy0yIDQtMy41IDguNC0xMS4xIDguNGwtNTEuNCAwIDAtMjEuMyA0NC44IDAgMTMuNy0yNy45YzQuNC05LjkgMTguMi03LjIgMTkuOSAyLjdsMy4xIDIwLjQgOC40LTk3LjljMC02IDQuOC0xMC42IDEwLjYtMTAuNiAuNSAwIDEwLjYtLjIgMTAuNiAxMi40bDQuOSA2OS4xIDYuNi05Mi42YzAtMTAuMSA5LjUtMTAuNiAxMC4yLTEwLjYgLjYgMCAxMC42IC43IDEwLjYgMTAuNmw1LjMgODAuNiA2LjItOTcuOWMuMS0xLjEtLjYtMTAuMyA5LjktMTEuNXoiXX0sZGx0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImplZGktb3JkZXIiLGljb246WzQ0OCw1MTIsW10sImY1MGUiLCJNMzk4LjkgMzczLjZjOTUuOS0xMjIuMSAxNy4yLTIzMy4xIDE3LjItMjMzLjEgNDUuNCA4NS44LTQxLjQgMTcwLjUtNDEuNCAxNzAuNSAxMDUtMTcxLjUtNjAuNS0yNzEuNS02MC41LTI3MS41IDk2LjkgNzIuNy0xMC4xIDE5MC43LTEwLjEgMTkwLjcgODUuOCAxNTguNC02OC42IDIzMC4xLTY4LjYgMjMwLjFzLS40LTE2LjktMi4yLTg1LjdjNC4zIDQuNSAzNC41IDM2LjIgMzQuNSAzNi4ybC0yNC4yLTQ3LjQgNjIuNi05LjEtNjIuNi05LjEgMjAuMi01NS41LTMxLjQgNDUuOWMtMi4yLTg3LjctNy44LTMwNS4xLTcuOS0zMDYuOSAwIDEtNS42IDIxOS03LjkgMzA2LjlsLTMxLjQtNDUuOSAyMC4yIDU1LjUtNjIuNiA5LjEgNjIuNiA5LjEtMjQuMiA0Ny40IDM0LjUtMzYuMmMtMS44IDY4LjgtMi4yIDg1LjctMi4yIDg1LjdTNTkuMSAzODguNiAxNDQuOSAyMzAuMmMwIDAtMTA3LTExOC4xLTEwLjEtMTkwLjcgMCAwLTE2NS41IDk5LjktNjAuNSAyNzEuNSAwIDAtODYuOC04NC44LTQxLjQtMTcwLjUgMCAwLTc4LjcgMTExIDE3LjIgMjMzLjEgMCAwLTI2LjItMTYuMS00OS40LTc3LjcgMCAwIDE2LjkgMTgzLjMgMjIyIDE4NS43bDQuMSAwYzIwNS0yLjQgMjIyLTE4NS43IDIyMi0xODUuNy0yMy42IDYxLjUtNDkuOSA3Ny43LTQ5LjkgNzcuN3oiXX0sdWx0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6InItcHJvamVjdCIsaWNvbjpbNTc2LDUxMixbXSwiZjRmNyIsIk01NzguNSAyMjYuNkM1NzguNSAxMTkuMSA0NDguNCAzMiAyODggMzJTLTIuNSAxMTkuMS0yLjUgMjI2LjZjMCA5NS44IDEwMy4zIDE3NS40IDIzOS40IDE5MS41bDAgNjEuOSA5OS4xIDAgMC02MS41YzI0LjMtMi43IDQ3LjYtNy40IDY5LjQtMTMuOWw0MC4xIDc1LjQgMTEyIDAtNjcuNC0xMTMuN2M1NC41LTM1LjQgODguNC04NC45IDg4LjQtMTM5Ljd6TTExMS43IDI0MS4xYzAtNzMuNSA5OC45LTEzMyAyMjAuOC0xMzNzMjExLjkgNDAuNyAyMTEuOSAxMzNjMCA1MC4xLTI2LjUgODUtNzAuMyAxMDYuNC0yLjQtMS42LTQuNy0yLjktNi40LTMuNy0xMC4yLTUuMi0yNy44LTEwLjUtMjcuOC0xMC41czg2LjYtNi40IDg2LjYtOTIuNy05MC42LTg3LjktOTAuNi04Ny45bC0xOTkgMCAwIDIwOC4zYy03NC4xLTIxLjUtMTI1LjItNjcuMS0xMjUuMi0xMTkuOXptMjI1LjEgMzguM2wwLTU1LjZjNTcuOCAwIDg3LjgtNi44IDg3LjggMjcuMyAwIDM2LjUtMzguMiAyOC4zLTg3LjggMjguM3ptLS45IDcyLjVsMjYuNiAwYzEwLjggMCAxOC45IDExLjcgMjQgMTkuMi0xNi4xIDEuOS0zMyAyLjgtNTAuNiAyLjlsMC0yMi4xeiJdfSxwbHQ9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiaW5zdGFsb2QiLGljb246WzUxMiw1MTIsW10sImUwODEiLCJNMTUzLjYgNDgwbDIzMy43IDAgMTE1LjQtMjA0LjItMjk4LjMgNTcuNC01MC44IDE0Ni44ek01MDUgMjQwLjFMMzg3LjQgMzIgMTU1LjkgMzIgMzYwLjUgMjY3LjkgNTA1IDI0MC4xek0xMjQuNiA0OC44TDcuNSAyNTYgMTIzLjUgNDYxLjIgMjI1LjkgMTY1LjYgMTI0LjYgNDguOHoiXX0saGx0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImNhbmFkaWFuLW1hcGxlLWxlYWYiLGljb246WzUxMiw1MTIsW10sImY3ODUiLCJNMzgzLjggMzUxLjdjMi41LTIuNSAxMDUuMi05Mi40IDEwNS4yLTkyLjRsLTE3LjUtNy41Yy0xMC00LjktNy40LTExLjUtNS0xNy40IDIuNC03LjYgMjAuMS02Ny4zIDIwLjEtNjcuM3MtNDcuNyAxMC01Ny43IDEyLjVjLTcuNSAyLjQtMTAtMi41LTEyLjUtNy41cy0xNS0zMi40LTE1LTMyLjQtNTIuNiA1OS45LTU1LjEgNjIuM2MtMTAgNy41LTIwLjEgMC0xNy42LTEwIDAtMTAgMjcuNi0xMjkuNiAyNy42LTEyOS42cy0zMC4xIDE3LjQtNDAuMSAyMi40Yy03LjUgNS0xMi42IDUtMTcuNi01LTUuMS03LjUtNDIuNy03OS44LTQyLjctNzkuOHMtMzcuNSA3Mi4zLTQyLjUgNzkuOGMtNSAxMC0xMCAxMC0xNy42IDUtMTAtNS00MC4xLTIyLjQtNDAuMS0yMi40UzE4My4zIDE4MiAxODMuMyAxOTJjMi41IDEwLTcuNSAxNy41LTE3LjYgMTAtMi41LTIuNS01NS4xLTYyLjMtNTUuMS02Mi4zcy0xMi41IDI3LjMtMTUgMzIuMy01IDkuOS0xMi41IDcuNUM3MyAxNzcgMjUuNCAxNjcgMjUuNCAxNjdTNDMgMjI2LjcgNDUuNSAyMzQuM2MyLjQgNiA1IDEyLjUtNSAxNy40TDIzIDI1OS4zczEwMi42IDg5LjkgMTA1LjIgOTIuNGM1LjEgNSAxMCA3LjUgNS4xIDIyLjUtNS4xIDE1LTEwLjEgMzUuMS0xMC4xIDM1LjFzOTUuMi0yMC4xIDEwNS4zLTIyLjZjOC43LS45IDE4LjMgMi41IDE4LjMgMTIuNVMyNDEgNTEyIDI0MSA1MTJsMzAgMHMtNS44LTEwMi43LTUuOC0xMTIuOCA5LjUtMTMuNCAxOC40LTEyLjVjMTAgMi41IDEwNS4yIDIyLjYgMTA1LjIgMjIuNnMtNS0yMC4xLTEwLTM1LjEgMC0xNy41IDUtMjIuNXoiXX0sZmx0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImV0aGVyZXVtIixpY29uOlszMjAsNTEyLFtdLCJmNDJlIiwiTTMxMS45IDI2MC44TDE2MCAzNTMuNiA4IDI2MC44IDE2MCAwIDMxMS45IDI2MC44ek0xNjAgMzgzLjRMOCAyOTAuNiAxNjAgNTEyIDMxMiAyOTAuNiAxNjAgMzgzLjR6Il19LG1sdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJob3V6eiIsaWNvbjpbNDQ4LDUxMixbXSwiZjI3YyIsIk0yNzYgMzMwLjdsLTEwNC42IDAgMCAxNDkuMy0xNTQuMyAwIDAtNDQ4IDEwOS41IDAgMCAxMDQuNSAzMDUuMSA4NS42IDAgMjU3LjktMTU1LjcgMCAwLTE0OS4zeiJdfSxnbHQ9e3ByZWZpeDoiZmFiIixpY29uTmFtZToidmliZXIiLGljb246WzUxMiw1MTIsW10sImY0MDkiLCJNNDQ0LjMgNDkuOWMtMTIuNy0xMS43LTY0LjEtNDktMTc4LjctNDkuNSAwIDAtMTM1LjEtOC4xLTIwMC45IDUyLjMtMzYuNiAzNi42LTQ5LjUgOTAuMy01MC45IDE1Ni44cy0zLjEgMTkxLjEgMTE3IDIyNC45bC4xIDAtLjEgNTEuNnMtLjggMjAuOSAxMyAyNS4xYzE2LjYgNS4yIDI2LjQtMTAuNyA0Mi4zLTI3LjggOC43LTkuNCAyMC43LTIzLjIgMjkuOC0zMy43IDgyLjIgNi45IDE0NS4zLTguOSAxNTIuNS0xMS4yIDE2LjYtNS40IDExMC41LTE3LjQgMTI1LjctMTQyIDE1LjgtMTI4LjYtNy42LTIwOS44LTQ5LjgtMjQ2LjV6TTQ1OC4yIDI4N2MtMTIuOSAxMDQtODkgMTEwLjYtMTAzIDExNS4xLTYgMS45LTYxLjUgMTUuNy0xMzEuMiAxMS4yIDAgMC01MiA2Mi43LTY4LjIgNzktNS4zIDUuMy0xMS4xIDQuOC0xMS01LjcgMC02LjkgLjQtODUuNyAuNC04NS43bDAgMEM0My40IDM3Mi43IDQ5LjQgMjY2LjYgNTAuNSAyMTEuMXMxMS42LTEwMSA0Mi42LTEzMS42YzU1LjctNTAuNSAxNzAuNC00MyAxNzAuNC00MyA5Ni45IC40IDE0My4zIDI5LjYgMTU0LjEgMzkuNCAzNS43IDMwLjYgNTMuOSAxMDMuOCA0MC42IDIxMS4xem0tMTM5LTgwLjhjLjQgOC42LTEyLjUgOS4yLTEyLjkgLjYtMS4xLTIyLTExLjQtMzIuNy0zMi42LTMzLjktOC42LS41LTcuOC0xMy40IC43LTEyLjkgMjcuOSAxLjUgNDMuNCAxNy41IDQ0LjggNDYuMnptMjAuMyAxMS4zYzEtNDIuNC0yNS41LTc1LjYtNzUuOC03OS4zLTguNS0uNi03LjYtMTMuNSAuOS0xMi45IDU4IDQuMiA4OC45IDQ0LjEgODcuOCA5Mi41LS4xIDguNi0xMy4xIDguMi0xMi45LS4zem00NyAxMy40Yy4xIDguNi0xMi45IDguNy0xMi45IC4xLS42LTgxLjUtNTQuOS0xMjUuOS0xMjAuOC0xMjYuNC04LjUtLjEtOC41LTEyLjkgMC0xMi45IDczLjcgLjUgMTMzIDUxLjQgMTMzLjcgMTM5LjJ6TTM3NS4yIDMyOWwwIC4yYy0xMC44IDE5LTMxIDQwLTUxLjggMzMuM2wtLjItLjNjLTIxLjEtNS45LTcwLjgtMzEuNS0xMDIuMi01Ni41LTE2LjItMTIuOC0zMS0yNy45LTQyLjQtNDIuNC0xMC4zLTEyLjktMjAuNy0yOC4yLTMwLjgtNDYuNi0yMS4zLTM4LjUtMjYtNTUuNy0yNi01NS43LTYuNy0yMC44IDE0LjItNDEgMzMuMy01MS44bC4yIDBjOS4yLTQuOCAxOC0zLjIgMjMuOSAzLjkgMCAwIDEyLjQgMTQuOCAxNy43IDIyLjEgNSA2LjggMTEuNyAxNy43IDE1LjIgMjMuOCA2LjEgMTAuOSAyLjMgMjItMy43IDI2LjZsLTEyIDkuNmMtNi4xIDQuOS01LjMgMTQtNS4zIDE0czE3LjggNjcuMyA4NC4zIDg0LjNjMCAwIDkuMSAuOCAxNC01LjNsOS42LTEyYzQuNi02IDE1LjctOS44IDI2LjYtMy43IDE0LjcgOC4zIDMzLjQgMjEuMiA0NS44IDMyLjkgNyA1LjcgOC42IDE0LjQgMy44IDIzLjZ6Il19LHJuZT17cHJlZml4OiJmYWIiLGljb25OYW1lOiJraWNrc3RhcnRlciIsaWNvbjpbNDQ4LDUxMixbInNxdWFyZS1raWNrc3RhcnRlciJdLCJmM2JiIiwiTTY0IDMyQzI4LjcgMzIgMCA2MC43IDAgOTZMMCA0MTZjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMzIwIDBjMzUuMyAwIDY0LTI4LjcgNjQtNjRsMC0zMjBjMC0zNS4zLTI4LjctNjQtNjQtNjRMNjQgMzJ6TTMyMC44IDIzM2wtMjMuMyAyMy4xIDIzLjMgMjIuOWMyNC4xIDIzLjkgMjQuMSA2MyAwIDg2LjlzLTYzLjQgMjMuOS04Ny42IDBsLTguNS04LjRjLTExLjMgMTYtMjkuNyAyNi41LTUwLjkgMjYuNS0zNC4xIDAtNjEuOS0yNy41LTYxLjktNjEuNGwwLTEzMy4yYzAtMzMuOCAyNy43LTYxLjQgNjEuOS02MS40IDIxLjEgMCAzOS42IDEwLjUgNTAuOSAyNi41bDguNS04LjRjMjQuMS0yMy45IDYzLjQtMjMuOSA4Ny42IDBzMjQuMSA2MyAwIDg2Ljl6Il19LGJsdD1ybmUsdmx0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6InNwb3RpZnkiLGljb246WzUxMiw1MTIsW10sImYxYmMiLCJNMjU2IDhhMjQ4IDI0OCAwIDEgMCAwIDQ5NiAyNDggMjQ4IDAgMSAwIDAtNDk2ek0zNTYuNyAzNzIuOWMtNC4yIDAtNi44LTEuMy0xMC43LTMuNi02Mi40LTM3LjYtMTM1LTM5LjItMjA2LjctMjQuNS0zLjkgMS05IDIuNi0xMS45IDIuNi05LjcgMC0xNS44LTcuNy0xNS44LTE1LjggMC0xMC4zIDYuMS0xNS4yIDEzLjYtMTYuOCA4MS45LTE4LjEgMTY1LjYtMTYuNSAyMzcgMjYuMiA2LjEgMy45IDkuNyA3LjQgOS43IDE2LjVzLTcuMSAxNS40LTE1LjIgMTUuNHptMjYuOS02NS42Yy01LjIgMC04LjctMi4zLTEyLjMtNC4yLTYyLjUtMzctMTU1LjctNTEuOS0yMzguNi0yOS40LTQuOCAxLjMtNy40IDIuNi0xMS45IDIuNi0xMC43IDAtMTkuNC04LjctMTkuNC0xOS40czUuMi0xNy44IDE1LjUtMjAuN2MyNy44LTcuOCA1Ni4yLTEzLjYgOTcuOC0xMy42IDY0LjkgMCAxMjcuNiAxNi4xIDE3NyA0NS41IDguMSA0LjggMTEuMyAxMSAxMS4zIDE5LjctLjEgMTAuOC04LjUgMTkuNS0xOS40IDE5LjV6bTMxLTc2LjJjLTUuMiAwLTguNC0xLjMtMTIuOS0zLjktNzEuMi00Mi41LTE5OC41LTUyLjctMjgwLjktMjkuNy0zLjYgMS04LjEgMi42LTEyLjkgMi42LTEzLjIgMC0yMy4zLTEwLjMtMjMuMy0yMy42IDAtMTMuNiA4LjQtMjEuMyAxNy40LTIzLjkgMzUuMi0xMC4zIDc0LjYtMTUuMiAxMTcuNS0xNS4yIDczIDAgMTQ5LjUgMTUuMiAyMDUuNCA0Ny44IDcuOCA0LjUgMTIuOSAxMC43IDEyLjkgMjIuNiAwIDEzLjYtMTEgMjMuMy0yMy4yIDIzLjN6Il19LHhsdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJsZWFucHViIixpY29uOls1NzYsNTEyLFtdLCJmMjEyIiwiTTM4Ni42IDExMS41bDE1LjEgMjQ5LTExLS4zYy0zNi4yLS44LTcxLjYgOC44LTEwMi43IDI4LTMxLTE5LjItNjYuNC0yOC0xMDIuNy0yOC00NS42IDAtODIuMSAxMC43LTEyMy41IDI3LjdMOTMuMiAxMjkuNmMyOC41LTExLjggNjEuNS0xOC4xIDkyLjItMTguMSA0MS4yIDAgNzMuOCAxMy4yIDEwMi43IDQyLjUgMjcuNy0yOC4zIDU5LTQxLjcgOTguNS00Mi41ek01NjkuMiA0NDhjLTI1LjUgMC00Ny41LTUuMi03MC41LTE1LjYtMzQuMy0xNS42LTcwLTI1LTEwNy45LTI1LTM5IDAtNzQuOSAxMi45LTEwMi43IDQwLjYtMjcuNy0yNy43LTYzLjctNDAuNi0xMDIuNy00MC42LTM3LjkgMC03My42IDkuMy0xMDcuOSAyNS0yMi4yIDkuOS00NC43IDE1LjYtNjkuMiAxNS42TDcgNDQ4IDQ5LjYgOTguOWMzOS4zLTIyLjIgODctMzQuOSAxMzIuMy0zNC45IDM3LjEgMCA3NS4yIDcuNyAxMDYuMiAyOS4xIDMxLTIxLjQgNjkuMi0yOS4xIDEwNi4yLTI5LjEgNDUuMyAwIDkzIDEyLjYgMTMyLjMgMzQuOUw1NjkuMiA0NDh6bS00My40LTQ0LjdMNDkxLjggMTIzYy0zMC43LTE0LTY3LjItMjEuNC0xMDEtMjEuNC0zOC40IDAtNzQuNCAxMi4xLTEwMi43IDM4LjctMjguMy0yNi42LTY0LjItMzguNy0xMDIuNy0zOC43LTMzLjggMC03MC4zIDcuNC0xMDEgMjEuNGwtMzQgMjgwLjJjNDcuMi0xOS41IDgyLjktMzMuNSAxMzUtMzMuNSAzNy42IDAgNzAuOCA5LjYgMTAyLjcgMjkuNiAzMS44LTIwIDY1LjEtMjkuNiAxMDIuNy0yOS42IDUyLjIgMCA4Ny44IDE0IDEzNSAzMy41eiJdfSx5bHQ9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiamF2YSIsaWNvbjpbMzg0LDUxMixbXSwiZjRlNCIsIk0yNzcuOCAzMTIuOWM5LjgtNi43IDIzLjQtMTIuNSAyMy40LTEyLjVzLTM4LjcgNy03Ny4yIDEwLjJjLTQ3LjEgMy45LTk3LjcgNC43LTEyMy4xIDEuMy02MC4xLTggMzMtMzAuMSAzMy0zMC4xcy0zNi4xLTIuNC04MC42IDE5Yy01Mi41IDI1LjQgMTMwIDM3IDIyNC41IDEyLjF6bS04NS40LTMyLjFjLTE5LTQyLjctODMuMS04MC4yIDAtMTQ1LjggMTAzLjctODEuOCA1MC41LTEzNSA1MC41LTEzNSAyMS41IDg0LjUtNzUuNiAxMTAuMS0xMTAuNyAxNjIuNi0yMy45IDM1LjkgMTEuNyA3NC40IDYwLjIgMTE4LjJ6TTMwNyAxMDQuNmMuMSAwLTE3NS4yIDQzLjgtOTEuNSAxNDAuMiAyNC43IDI4LjQtNi41IDU0LTYuNSA1NHM2Mi43LTMyLjQgMzMuOS03Mi45QzIxNiAxODguMSAxOTUuNCAxNjkuMyAzMDcgMTA0LjZ6bS02LjEgMjcwLjVjLS41IDEtMS4yIDEuOC0yIDIuNiAxMjguMy0zMy43IDgxLjEtMTE4LjkgMTkuOC05Ny4zLTMuMyAxLjItNi4yIDMuNC04LjIgNi4zIDMuNi0xLjMgNy4zLTIuMyAxMS0zIDMxLTYuNSA3NS41IDQxLjUtMjAuNiA5MS40ek0zNDggNDM3LjRzMTQuNSAxMS45LTE1LjkgMjEuMmMtNTcuOSAxNy41LTI0MC44IDIyLjgtMjkxLjYgLjctMTguMy03LjkgMTYtMTkgMjYuOC0yMS4zIDExLjItMi40IDE3LjctMiAxNy43LTItMjAuMy0xNC4zLTEzMS4zIDI4LjEtNTYuNCA0MC4yIDIwNC4yIDMzLjIgMzcyLjQtMTQuOSAzMTkuNC0zOC44ek0xMjQuNSAzOTZjLTc4LjcgMjIgNDcuOSA2Ny40IDE0OC4xIDI0LjUtOS44LTMuOC0xOS4yLTguNC0yOC4yLTEzLjgtNDQuNyA4LjUtNjUuNCA5LjEtMTA2IDQuNS0zMy41LTMuOC0xMy45LTE1LjItMTMuOS0xNS4yem0xNzkuOCA5Ny4yYy03OC43IDE0LjgtMTc1LjggMTMuMS0yMzMuMyAzLjYgMC0uMSAxMS44IDkuNyA3Mi40IDEzLjYgOTIuMiA1LjkgMjMzLjgtMy4zIDIzNy4xLTQ2LjkgMCAwLTYuNCAxNi41LTc2LjIgMjkuN3pNMjYwLjcgMzUzYy01OS4yIDExLjQtOTMuNSAxMS4xLTEzNi44IDYuNi0zMy41LTMuNS0xMS42LTE5LjctMTEuNi0xOS43LTg2LjggMjguOCA0OC4yIDYxLjQgMTY5LjUgMjUuOS03LjgtMi44LTE1LTcuMS0yMS4xLTEyLjh6Il19LHdsdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJuZmMtc3ltYm9sIixpY29uOls1MTIsNTEyLFtdLCJlNTMxIiwiTTM2MC45IDMyLjRjNy43LTEuMyAxNS43IC41IDIxLjIgNSA4NC4xIDU4LjcgMTI5LjkgMTM2LjMgMTI5LjkgMjE3LjcgMCA4My4xLTQ1LjggMTYwLjgtMTI5LjkgMjE5LjUtNC44IDQtMTEuNyA1LjktMTguNiA1LjMtNy0uNi0xMy41LTMuNi0xOC40LTguNUwxNjEuNyAyODguN2MtNS42LTUuNS04LjctMTMtOS42LTIwLjkgMC03LjggNC0xNS4zIDkuNS0yMC45IDUuNi01LjUgMTMuMS04LjcgMjAuOS04LjcgNy45IDAgMTUuNCAzLjEgMjAuOSA4LjZMMzY4LjUgNDExLjJjNTQuNi00NC43IDg0LjMtOTkuMiA4NC4zLTE1Ni4xIDAtNjEuNi0zNi45LTEyMi4yLTEwMy45LTE2OS4zLTYuNC00LjUtMTAuOC0xMS40LTEyLjEtMTkuMS0xLjQtNy43IC40LTE1LjcgNS0yMi4xIDQuNS02LjQgMTEuNC0xMC44IDE5LjEtMTIuMXptLTIwNiA0NDcuMmMtNy43IDEuMy0xNS42LS41LTIyLjEtNS04My4xLTU4LjctMTI5LTEzNi40LTEyOS0yMTkuNSAwLTgxLjQgNDUuOC0xNTkgMTI5LTIxNy43IDUuNy00IDEyLjYtNS45IDE5LjYtNS4zIDYuOSAuNiAxMy40IDMuNiAxOC4zIDguNUwzNTQuMSAyMjMuM2M1LjYgNS41IDguNyAxMyA4LjcgMjAuOSAuMSA2LjktMyAxNS4zLTguNiAyMC45LTUuNSA1LjUtMTMgOC43LTIwLjkgOC43LTcuOCAwLTE2LjItMy4xLTIwLjktOC42TDE0Ny4zIDEwMC43Yy01NC42IDQ1LjItODQuMyA5OS4yLTg0LjMgMTU0LjQgMCA2My40IDM2LjkgMTI0IDEwMy4xIDE3MS4xIDcuMyA0LjYgMTEuNiAxMS40IDEzIDE5LjIgMS4zIDcuNy0uNSAxNS43LTUgMjIuMXMtMTEuNCAxMC43LTE5LjIgMTIuMXoiXX0sTWx0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6IndvZHUiLGljb246WzY0MCw1MTIsW10sImUwODgiLCJNMTc4LjQgMzM5LjdsLTM3LjMgMC0yOC45LTExNi4yLS41IDAtMjguNSAxMTYuMi0zOCAwLTQ1LjItMTcwLjggMzcuNSAwIDI3IDExNi4yIC41IDAgMjkuNy0xMTYuMiAzNS4yIDAgMjkuMiAxMTcuNyAuNSAwIDI4LTExNy43IDM2LjggMC00NS45IDE3MC44em05My0xMjdjMzkgMCA2NC4xIDI1LjggNjQuMSA2NS4zIDAgMzkuMi0yNS4xIDY1LTY0LjEgNjUtMzguNyAwLTYzLjktMjUuOC02My45LTY1IDAtMzkuNSAyNS4xLTY1LjMgNjMuOS02NS4zem0wIDEwNC44YzIzLjIgMCAzMC4xLTE5LjkgMzAuMS0zOS41IDAtMTkuOS02LjktMzkuNy0zMC4xLTM5LjctMjcuNyAwLTI5LjkgMTkuOS0yOS45IDM5LjcgMCAxOS42IDYuOSAzOS41IDI5LjkgMzkuNXptMTYzLjcgNi41bC0uNSAwYy03LjkgMTMuNC0yMS44IDE5LjEtMzcuNSAxOS4xLTM3LjMgMC01NS41LTMyLTU1LjUtNjYuMiAwLTMzLjIgMTguNC02NC4xIDU0LjgtNjQuMSAxNC42IDAgMjguOSA2LjIgMzYuOCAxOC40bC4yIDAgMC02Mi4yIDM0IDAgMCAxNzAuOC0zMi4zIDAgMC0xNS44em0tMjkuNy04NS42Yy0yMi4yIDAtMjkuOSAxOS4xLTI5LjkgMzkuNSAwIDE5LjQgOC44IDM5LjcgMjkuOSAzOS43IDIyLjUgMCAyOS4yLTE5LjYgMjkuMi0zOS45IDAtMjAuMS03LjItMzkuMi0yOS4yLTM5LjJ6TTU5MyAzMzkuN2wtMzIuMyAwIDAtMTcuMi0uNyAwYy04LjYgMTMuOS0yMy40IDIwLjYtMzcuOCAyMC42LTM2LjEgMC00NS4yLTIwLjMtNDUuMi01MC45bDAtNzYuMSAzNCAwIDAgNjkuOGMwIDIwLjMgNiAzMC40IDIxLjggMzAuNCAxOC40IDAgMjYuMy0xMC4zIDI2LjMtMzUuNGwwLTY0LjggMzQgMCAwIDEyMy42em05LjUtMzYuOGwzNy41IDAgMCAzNi44LTM3LjUgMCAwLTM2Ljh6Il19LGluZT17cHJlZml4OiJmYWIiLGljb25OYW1lOiJzcXVhcmUtc3RlYW0iLGljb246WzQ0OCw1MTIsWyJzdGVhbS1zcXVhcmUiXSwiZjFiNyIsIk0xNjUuNiAzMDkuMWMxOC42IDcuNyAyNy4zIDI4LjkgMTkuNiA0Ny40cy0yOSAyNy4yLTQ3LjYgMTkuNGwtMjguNS0xMS44YzUgMTAuNiAxMy44IDE5LjQgMjUuNCAyNC4yIDI1LjIgMTAuNSA1NC4xLTEuNCA2NC42LTI2LjUgNS4xLTEyLjEgNS4xLTI1LjUgLjEtMzcuNy01LjEtMTIuMS0xNC41LTIxLjYtMjYuNy0yNi43LTEyLjEtNS0yNS00LjgtMzYuNC0uNWwyOS41IDEyLjJ6TTQ0OCA5NmMwLTM1LjMtMjguNy02NC02NC02NEw2NCAzMkMyOC43IDMyIDAgNjAuNyAwIDk2bDAgMTQ0LjcgMTE2LjYgNDguMWMxMi04LjIgMjYuMi0xMi4xIDQwLjctMTEuM2w1NS40LTgwLjIgMC0xLjFjMC00OC4yIDM5LjMtODcuNSA4Ny42LTg3LjVzODcuNiAzOS4zIDg3LjYgODcuNWMwIDQ5LjItNDAuOSA4OC43LTg5LjYgODcuNWwtNzkgNTYuM2MxLjYgMzguNS0yOS4xIDY4LjgtNjUuNyA2OC44LTMxLjggMC01OC41LTIyLjctNjQuNS01Mi43TDAgMzE5LjIgMCA0MTZjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMzIwIDBjMzUuMyAwIDY0LTI4LjcgNjQtNjRsMC0zMjB6TTI0MS45IDE5Ni4yYTU4LjQgNTguNCAwIDEgMCAxMTYuOCAwIDU4LjQgNTguNCAwIDEgMCAtMTE2LjggMHptMTAyLjQtLjFhNDMuOSA0My45IDAgMSAxIC04Ny44IDAgNDMuOSA0My45IDAgMSAxIDg3LjggMHoiXX0sa2x0PWluZSxTbHQ9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiY3JlYXRpdmUtY29tbW9ucy1uYy1ldSIsaWNvbjpbNTEyLDUxMixbXSwiZjRlOSIsIk0yNTUuNyA4QzExMS42IDggOCAxMjQuOCA4IDI1NiA4IDM5Mi4zIDExOS43IDUwNCAyNTUuNyA1MDQgMzg1LjkgNTA0IDUwNCA0MDMuMSA1MDQgMjU2IDUwNCAxMTcgMzk2LjQgOCAyNTUuNyA4em0uNiA0NTAuN2MtMTEyIDAtMjAzLjYtOTIuNS0yMDMuNi0yMDIuNyAwLTIzLjIgMy43LTQ1LjIgMTAuOS02Nmw2NS43IDI5LjEtNC43IDAgMCAyOS41IDIzLjMgMGMwIDYuMi0uNCAzLjItLjQgMTkuNWwtMjIuOCAwIDAgMjkuNSAyNyAwYzExLjQgNjcgNjcuMiAxMDEuMyAxMjQuNiAxMDEuMyAyNi42IDAgNTAuNi03LjkgNjQuOC0xNS44bC0xMC00Ni4xYy04LjcgNC42LTI4LjIgMTAuOC00Ny4zIDEwLjgtMjguMiAwLTU4LjEtMTAuOS02Ny4zLTUwLjJsOTAuMyAwIDEyOC4zIDU2LjhjLTEuNSAyLjEtNTYuMiAxMDQuMy0xNzguOCAxMDQuM3pNMjM5LjYgMjY4LjFsLS41LS40IC45IC40LS40IDB6bTc3LjItMTkuNWwzLjcgMCAwLTI5LjUtNzAuMyAwLTI4LjYtMTIuNmMyLjUtNS41IDUuNC0xMC41IDguOC0xNC4zIDEyLjktMTUuOCAzMS4xLTIyLjQgNTEuMS0yMi40IDE4LjMgMCAzNS4zIDUuNCA0Ni4xIDEwbDExLjYtNDcuM2MtMTUtNi42LTM3LTEyLjQtNjIuMy0xMi40LTM5IDAtNzIuMiAxNS44LTk1LjkgNDIuMy01LjMgNi4xLTkuOCAxMi45LTEzLjkgMjAuMUw4NS41IDE0Ni40YzY0LjYtOTYuOCAxNTcuNy05My42IDE3MC43LTkzLjYgMTEzIDAgMjAzIDkwLjIgMjAzIDIwMy40IDAgMTguNy0yLjEgMzYuMy02LjMgNTIuOUwzMTYuOCAyNDguNnoiXX0semx0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6Im5wbSIsaWNvbjpbNTc2LDUxMixbXSwiZjNkNCIsIk0yODggMjg4bC0zMiAwIDAtNjQgMzIgMCAwIDY0ek01NzYgMTYwbDAgMTkyLTI4OCAwIDAgMzItMTI4IDAgMC0zMi0xNjAgMCAwLTE5MiA1NzYgMHpNMTYwIDE5MmwtMTI4IDAgMCAxMjggNjQgMCAwLTk2IDMyIDAgMCA5NiAzMiAwIDAtMTI4em0xNjAgMGwtMTI4IDAgMCAxNjAgNjQgMCAwLTMyIDY0IDAgMC0xMjh6bTIyNCAwbC0xOTIgMCAwIDEyOCA2NCAwIDAtOTYgMzIgMCAwIDk2IDMyIDAgMC05NiAzMiAwIDAgOTYgMzIgMCAwLTEyOHoiXX0sQ2x0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImNsb3Vkc2NhbGUiLGljb246WzQ0OCw1MTIsW10sImYzODMiLCJNMzE4LjEgMTU0bC05LjQgNy42Yy0yMi41LTE5LjMtNTEuNS0zMy42LTgzLjMtMzMuNi03MS42IDAtMTI5LjQgNjAuOC0xMjkuNCAxMzIuMyAwIDYuNiAuNCAxMy4xIDEuNCAxOS40LTItNTYgNDEuOC05Ny40IDkyLjYtOTcuNCAyNC4yIDAgNDYuMiA5LjQgNjIuNiAyNC43bC0yNS4yIDIwLjRjLTguMy0uOS0xNi44IDEuOC0yMy4xIDguMS0xMS4xIDExLTExLjEgMjguOSAwIDQwIDExLjEgMTEgMjguOSAxMSA0MCAwIDYuMy02LjMgOS0xNC45IDguMS0yMy4xbDc1LjItODguOGM2LjMtNi41LTMuMy0xNS45LTkuNS05LjZ6TTIxMy43IDI0Ni41YTE0IDE0IDAgMSAxIDIwLjYgMTkgMTQgMTQgMCAxIDEgLTIwLjYtMTl6TTIyNCAzMmEyMjQgMjI0IDAgMSAwIDAgNDQ4IDIyNCAyMjQgMCAxIDAgMC00NDh6bTAgNjRhMTYwIDE2MCAwIDEgMSAwIDMyMCAxNjAgMTYwIDAgMSAxIDAtMzIweiJdfSxUbHQ9e3ByZWZpeDoiZmFiIixpY29uTmFtZToidGhlbWVjbyIsaWNvbjpbNDQ4LDUxMixbXSwiZjVjNiIsIk0yMDIuOSA4LjRjOS45LTUuNyAyNi01LjggMzYtLjJMNDMwIDExNS45YzEwIDUuNiAxOCAxOS40IDE4IDMwLjlMNDQ4IDM2NGMwIDExLjQtOC4xIDI1LjMtMTggMzFMMjM4LjggNTAzLjdjLTkuOSA1LjctMjYgNS42LTM1LjgtLjJMMTcuOSAzOTUuMUM4IDM4OS4zIDAgMzc1LjQgMCAzNjRMMCAxNDYuN2MwLTExLjQgOC0yNS40IDE3LjktMzEuMUwyMDIuOSA4LjR6TTEyNS41IDIwOC4zYy0xNS45IDAtMzEuOSAuMS00Ny44IC4xbDAgMTAxLjQgMTkuMSAwIDAtMjkuOCAyOC43IDBjNDkuNyAwIDQ5LjYtNzEuNyAwLTcxLjd6TTI2NS42IDMwOC42bC0zMC43LTM0LjZjMzctNy41IDM0LjgtNjUuMi0xMC45LTY1LjUtMTYuMSAwLTMyLjItLjEtNDguMy0uMWwwIDEwMS42IDE5LjEgMCAwLTMzLjkgMTguNCAwIDI5LjYgMzMuOSAyMi44IDAgMC0xLjN6bS00MS42LTgyLjNjMjMuMyAwIDIzLjMgMzIuNSAwIDMyLjVsLTI5LjEgMCAwLTMyLjUgMjkuMSAwem0tOTUuNi0xLjZjMjEuMiAwIDIxLjEgMzguOSAwIDM4LjlsLTMyLjMgMCAwLTM4LjggMzIuMyAwem0xOTIuNi0xOC4yYy02OC41IDAtNzEgMTA1LjggMCAxMDUuOCA2OS41IDAgNjkuNC0xMDUuOCAwLTEwNS44em0wIDE3LjRjNDQuMSAwIDQ0LjggNzAuOSAwIDcwLjlzLTQ0LjQtNzAuOSAwLTcwLjl6Il19LF9sdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJnb29nbGUtcGxheSIsaWNvbjpbNDQ4LDUxMixbXSwiZjNhYiIsIk0yOTMuNiAyMzQuM0w3Mi45IDEzIDM1My43IDE3NC4yIDI5My42IDIzNC4zek0xNS4zIDBDMi4zIDYuOC02LjQgMTkuMi02LjQgMzUuM2wwIDQ0MS4zYzAgMTYuMSA4LjcgMjguNSAyMS43IDM1LjNMMjcxLjkgMjU1LjkgMTUuMyAwek00NDAuNSAyMjUuNmwtNTguOS0zNC4xLTY1LjcgNjQuNSA2NS43IDY0LjUgNjAuMS0zNC4xYzE4LTE0LjMgMTgtNDYuNS0xLjItNjAuOHpNNzIuOSA0OTlMMzUzLjcgMzM3LjggMjkzLjYgMjc3LjcgNzIuOSA0OTl6Il19LExsdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJrb3J2dWUiLGljb246WzQ0OCw1MTIsW10sImY0MmYiLCJNMzg3LjYgMzRsLTMyNyAwQzI3LjkgMzQgMS4xIDYwLjggMS4xIDkzLjVsMCAzMjcuMWMwIDMyLjYgMjYuOCA1OS40IDU5LjUgNTkuNGwzMjcuMSAwYzMzIDAgNTkuNS0yNi44IDU5LjUtNTkuNWwwLTMyN0M0NDcuMSA2MC44IDQyMC4zIDM0IDM4Ny42IDM0ek04OC4yIDEyMC44bDk2IDAgMCAxMTYgNjEuOC0xMTYgMTEwLjkgMC04MS4yIDEzMi0xODcuNSAwIDAtMTMyek0yNTAgMzkyLjlsLTY1LjctMTEzLjYgMCAxMTMuNi05NiAwIDAtMTMwLjggMTkxLjUgMCA4OC42IDEzMC44LTExOC40IDB6Il19LEFsdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJ3M2MiLGljb246WzY0MCw1MTIsW10sImU3ZGUiLCJNMTA1LjIgMzA1LjNsMzAuOS0xMDQuN2M3LjktMjYuNyA4LjYtNDAuNiAuMi02OC44bC0xMC4xLTMzLjkgNDQuMSAwIDYxIDIwNy40IDQ1LjctMTU1LjVjMTMuMy00NS4zIDIxLjEtNTEuOSA1OS40LTUxLjlsMTMyLjggMGMtMjQuMiA0Mi45LTQ5LjMgODUuMi03My45IDEyNy45IDIuNiAuOCA1LjIgMS44IDcuNyAyLjggMTcuMyA3LjEgMzIuMiAxOS40IDQyIDM1LjUgMTEuMiAxOC41IDE2LjggNDAuMiAxNi44IDY1LjIgMCAzMC44LTguMiA1Ni44LTI0LjYgNzcuOC0xNC41IDE4LjYtMzUgMjkuNS01OC4yIDMxLjIgMCAuMy01LjIgLjQtNS44IC40LTM5LjctLjEtNzAuOC0zMi4xLTgzLjEtNjguN2w0Mi45IDBjMy41IDUuMyA2LjggMTAuNyAxMS4yIDE1LjUgOC4xIDcuMyAxOC41IDEwLjkgMjkuMyAxMS4xIDEzLjEgMCAyMy4zLTkuMSAyOS45LTE5LjggOC4xLTEzLjIgMTIuMi0yOSAxMi4yLTQ3LjUgMC0xMy4xLTEuOC0yNC4zLTUuMy0zMy42LS45LTIuMy0xLjktNC41LTMtNi42LTEuNC0yLjYtMi45LTUuMS00LjctNy40LTEwLjEtMTMuMi0yOS4zLTE5LjctNDcuNS0xOS44bC0yOC4yIDAgNzAuMy0xMjItMzUuNiAwYy00My4xIDAtMzUuOS01LjQtNTAuNCA0My4zbC03NS43IDI1NS4zLTQuMiAwLTYzLjEtMjExLjEtNjMuMSAyMTEuMS00LjIgMC0xMDEtMzQwLjcgNDQuMiAwIDYxIDIwNy40ek00NjcgMzM1LjdjLjMgLjYgMTEuMyAyMC4zIDE4LjMgMzAuMyA3LjEgMTAuMSAxOS44IDIwLjkgMjQuOCAyNC42czE5LjEgMTIuNSAzNC4zIDEzLjljMTUuMiAxLjUgMjMuMyAuMiAzOC43LTYuNiAxNS40LTYuOCAyNy45LTIwLjQgMzQuOS0yOC4xIDYuOS03LjYgMTcuOS0yNy4zIDE4LjItMjcuN2wzLjMgMTYuOGMxLjcgOS0xIDIzLjctNC4xIDMwLTQuMyA4LjYtNy42IDEzLjUtMTQgMjAuMy02LjEgNi41LTE2LjcgMTMuNS0yMS4zIDE2LjQtNC42IDIuOS0yMy4xIDE1LjEtNTAuMSAxMC4zcy00NC43LTI1LjktNTMuOS0zOC4yYy05LjgtMTMuMi0xNi43LTI4LjMtMTktMzMuMi0zLjgtOC40LTkuOS0yOC4yLTEwLjEtMjguOHptMTY5LjctMjE4YzMuMyAyMC4zLS4xIDI4LjctOS4xIDQ2bC0xMi43IDI0LjJjLS4zLS42LTEwLTIwLjctMjUuOS0zMS45LTEzLjYtOS42LTIyLjUtMTEuNy0zNi4zLTguOC0xNy44IDMuNy0zOCAyNS00Ni44IDUxLjItMTAuNSAzMS40LTEwLjcgNDYuNi0xMSA2MC42LS42IDIyLjQgMi45IDM1LjYgMi45IDM1LjZzLTE1LjQtMjguNS0xNS4yLTcwLjFjLjEtMjkuNyA0LjgtNTYuNyAxOC41LTgzLjMgMTIuMS0yMy40IDMwLjEtMzcuNCA0Ni4xLTM5LjEgMTYuNS0xLjcgMjkuNiA2LjMgMzkuNyAxNC45IDEwLjYgOSAyMS4zIDI4LjggMjEuMyAyOC44bDI0LjktNDkuOCAzLjYgMjEuOHoiXX0sRGx0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImdyYXYiLGljb246WzUxMiw1MTIsW10sImYyZDYiLCJNMzAyLjYgMjEwLjZjNC41IDQuNSA0LjUgMTIuMyAwIDE2LjhsLTEwIDEwYy00LjUgNC45LTEyLjMgNC45LTE3LjEgMGwtMTAuOC0xMC44Yy00LjUtNC45LTQuNS0xMi4zIDAtMTcuMWwxMC0xMGM0LjUtNC41IDEyLjMtNC41IDE3LjEgMGwxMC44IDExLjF6bS0zMS4yLTIwLjNhNy43IDcuNyAwIDEgMCAtMTAuNi0xMSA3LjcgNy43IDAgMSAwIDEwLjYgMTF6bS0yNi44IDUuNWE3LjUgNy41IDAgMSAwIDEwLjcgMTAuNSA3LjUgNy41IDAgMSAwIC0xMC43LTEwLjV6TTMxOS40IDE4MmMtMjAuNS0xNC45LTM0LjktNDQuNi0xMi4zLTcwLjMgMjIuMy0yNS43IDQyLTE3LjggNjEuNyAuOCAxMi4zIDExLjcgMzAuMiAyNS43IDE3LjggNDkuOC0xMi45IDI0LjMtNDYuNiAzNC4zLTY3LjIgMTkuN3ptNDkuMi00NS45Yy05LjItMTAuMy0yNC4xIDcuMS0xNiAxNi42IDcuNiA5LjMgMzMuMSAyLjUgMTYtMTYuNnpNMCAyNTZhMjU2IDI1NiAwIDEgMSA1MTIgMCAyNTYgMjU2IDAgMSAxIC01MTIgMHptNDQzLjcgNDRjMi42LTE2LjYtMjAuOS0xNy4xLTI2LTI2LjUtMTQtMjQuOS0yOC42LTM4LTU2LjMtMzEuNCAxMi04LjMgMjQuMy02LjMgMjQuMy02LjMgLjMtNi42IDAtMTMuNC05LjctMjUuNyA0LTEyLjkgLjMtMjMuMSAuMy0yMy4xIDE2LTguOSAyNy43LTI1LjIgMzAtNDQuNiAzLjctMzItMTkuNC02MS4xLTUxLjQtNjQuOC0yMi44LTIuNi00NS4xIDcuOS01Ni4xIDI2LjUtMjMuOSA0MS40IDEuNCA3My4yIDIzLjEgODQtMTQuOS0xLjQtMzUuNC0xMi4zLTQxLjQtMzUuNC02LjgtMjYuNSAyLjktNTEuNCA5LjItNjMuNCAwIDAtNC41LTYtOC4zLTkuMiAwIDAtMTQuMiAwLTI1LjQgNS41IDEyLjMtMTUuNyAyNi0xNC45IDI2LTE0LjkgMC02LjYtLjYtMTUuNC0zLjctMjIuMy01LjYtMTEuNC0yNC42LTEzLjMtMzIuNyAyLjkgLjEtLjIgLjMtLjQgLjQtLjUtNS4yIDEyLjMtMS4xIDU3LjcgMTcuNCA5MC0yLjYgMS40LTkuNCA2LjMtMTMuNCAxMC4zLTIyLjMgMTAtNTggNjIuMi01OCA2Mi4yLTI5LjEgMTEuMS03OS43IDUyLjUtNzIuOSA4Mi4zIC4zIDMuMSAxLjQgNS43IDMuMSA3LjctMi45IDIuMy01LjcgNS4yLTguNiA4LjYtMTIuMyAxNC4yLTUuNSAzNi4zIDE4LjMgMjUuMiAxNi4zLTcuNCAzMC42LTIwLjkgMzcuNS0zMS40IDAgMC01LjctNS4yLTE2LjgtNC41IDI4LjYtNi44IDM1LjQtOS43IDQ3LjctOS40IDguMyA0IDguMy0zNS40IDguMy0zNS40IDAtMTUuMi0yLjMtMzItMTEuNS00Mi44IDEyLjkgMTIuNiAzMCAzMy44IDI4LjkgNjIuNi0uOCAxOC45LTE1LjcgMjMuNy0xNS43IDIzLjctOS40IDE3LjEtNDQuNiA2OC0zMS40IDEwOS40IDAgMC0xMC0xNS40LTEwLjUtMjIuOC0xOCAyMC00OCA1NC0yNS40IDY2LjYgMjcuNSAxNS4yIDExMi4zLTkxLjUgMTMwLjMtMTQ2LjkgMzUuNy0yMS41IDU3LjItNDguOCA2Ni02Ny4xIDIyLjcgNDQuOSA5OC40IDk3LjUgMTA0LjQgNjAuOXoiXX0sRWx0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImF3cyIsaWNvbjpbNjQwLDUxMixbXSwiZjM3NSIsIk0xODAuNCAyMDNjLS43IDIyLjYgMTAuNiAzMi43IDEwLjkgMzktLjEgMS4zLS42IDIuNS0xLjMgMy42cy0xLjcgMi0yLjggMi42bC0xMi44IDljLTEuNyAxLjItMy42IDEuOC01LjYgMS45LS40IDAtOC4yIDEuOC0yMC41LTI1LjYtNy41IDkuNC0xNyAxNi45LTI3LjkgMjJzLTIyLjcgNy43LTM0LjcgNy41Yy0xNi4zIC45LTYwLjQtOS4yLTU4LjEtNTYuMi0xLjYtMzguMyAzNC4xLTYyLjEgNzAuOS02MCA3LjEgMCAyMS42IC40IDQ3IDYuM2wwLTE1LjZjMi43LTI2LjUtMTQuNy00Ny00NC44LTQzLjktMi40IDAtMTkuNC0uNS00NS44IDEwLjEtNy40IDMuNC04LjMgMi44LTEwLjggMi44LTcuNCAwLTQuNC0yMS41LTIuOS0yNC4yIDUuMi02LjQgMzUuOS0xOC40IDY1LjktMTguMiAyMC4xLTEuOCA0MC4xIDQuNCA1NS43IDE3LjMgNi4zIDcuMSAxMS4yIDE1LjQgMTQuMiAyNC40czQuMiAxOC41IDMuNSAyOGwwIDY5LjN6TTk0IDIzNS40YzMyLjQtLjUgNDYuMi0yMCA0OS4zLTMwLjUgMi41LTEwLjEgMi4xLTE2LjQgMi4xLTI3LjQtOS43LTIuMy0yMy42LTQuOS0zOS42LTQuOS0xNS4yLTEuMS00Mi44IDUuNi00MS43IDMyLjMtMS4yIDE2LjggMTEuMSAzMS40IDMwIDMwLjV6bTE3MC45IDIzLjFjLTcuOSAuNy0xMS41LTQuOS0xMi43LTEwLjRMMjAyLjQgODMuNGMtMS0yLjgtMS42LTUuNi0xLjktOC42LS4yLTEuMiAuMS0yLjQgLjgtMy40czEuOC0xLjYgMy0xLjhjLjIgMC0yLjEgMCAyMi4yIDAgOC44LS45IDExLjYgNiAxMi42IDEwLjRMMjc0LjkgMjIwLjggMzA4LjEgODBjLjUtMy4yIDIuOS0xMS4xIDEyLjgtMTAuMmwxNy4yIDBjMi4yLS4yIDExLjEtLjUgMTIuNyAxMC40TDM4NC4xIDIyMi43IDQyMSA4MC4xYy41LTIuMiAyLjctMTEuNCAxMi43LTEwLjRsMTkuNyAwYy45LS4xIDYuMi0uOCA1LjMgOC42LS40IDEuOCAzLjQtMTAuNy01Mi44IDE2OS45LTEuMSA1LjUtNC44IDExLjEtMTIuNyAxMC40bC0xOC43IDBjLTEwLjkgMS4yLTEyLjUtOS43LTEyLjctMTAuN2wtMzMuMi0xMzcuMS0zMi44IDEzN2MtLjIgMS4xLTEuNyAxMS45LTEyLjcgMTAuN2wtMTguMyAwIDAgMHptMjczLjUgNS42Yy01LjkgMC0zMy45LS4zLTU3LjQtMTIuMy0yLjMtMS00LjMtMi42LTUuNy00LjhzLTIuMS00LjYtMi4xLTcuMWwwLTEwLjdjMC04LjUgNi4yLTYuOSA4LjgtNS45IDEwIDQuMSAxNi41IDcuMSAyOC44IDkuNiAzNi43IDcuNSA1Mi44LTIuMyA1Ni43LTQuNSAxMy4yLTcuOCAxNC4yLTI1LjcgNS4zLTM0LjktMTAuNS04LjgtMTUuNS05LjEtNTMuMS0yMS00LjYtMS4zLTQzLjctMTMuNi00My44LTUyLjQtLjYtMjguMiAyNS01Ni4yIDY5LjUtNTYgMTIuNyAwIDQ2LjQgNC4xIDU1LjYgMTUuNiAxLjQgMi4xIDIgNC42IDEuOSA3bDAgMTAuMWMwIDQuNC0xLjYgNi43LTQuOSA2LjctNy43LS45LTIxLjQtMTEuMi00OS4yLTEwLjgtNi45LS40LTM5LjkgLjktMzguNCAyNS0uNCAxOSAyNi42IDI2LjEgMjkuNyAyNi45IDM2LjUgMTEgNDguNiAxMi44IDYzLjEgMjkuNiAxNy4xIDIyLjIgNy45IDQ4LjMgNC4zIDU1LjQtMTkuMSAzNy41LTY4LjQgMzQuNC02OS4zIDM0LjR6bTQwLjIgMTA0LjljLTcwIDUxLjctMTcxLjcgNzkuMi0yNTguNSA3OS4yLTExNy4xIC44LTIzMC4zLTQyLjMtMzE3LjMtMTIwLjctNi41LTUuOS0uOC0xNCA3LjItOS41IDk2LjUgNTUuMiAyMDUuNyA4NC4yIDMxNi45IDg0LjEgODMtLjQgMTY1LjEtMTcuMyAyNDEuNi00OS41IDExLjgtNSAyMS44IDcuOCAxMC4xIDE2LjR6bTI5LjItMzMuM2MtOS0xMS41LTU5LjMtNS40LTgxLjgtMi43LTYuOCAuOC03LjktNS4xLTEuOC05LjUgNDAuMS0yOC4yIDEwNS45LTIwLjEgMTEzLjQtMTAuNiA3LjUgOS41LTIuMSA3NS40LTM5LjYgMTA2LjktNS44IDQuOS0xMS4zIDIuMy04LjctNC4xIDguNC0yMS4zIDI3LjQtNjguNSAxOC40LTgweiJdfSwkbHQ9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiZ2xpZGUtZyIsaWNvbjpbNDQ4LDUxMixbXSwiZjJhNiIsIk00MDcuMSAyMTEuMmMtMy41LTEuNC0xMS42LTMuOC0xNS40LTMuOC0zNy4xIDAtNjIuMiAxNi44LTkzLjUgMzQuNWwtLjktLjljNy00Ny4zIDIzLjUtOTEuOSAyMy41LTE0MC40IDAtNzEuNS0zOC4yLTEwMC42LTEwOC40LTEwMC42LTExNS4xIDAtMTczLjQgMTEzLjctMTczLjQgMTk4LjQgMCA4Ny45IDUxLjMgMTM2LjYgMTM4LjYgMTM2LjYgMTIgMCAxMS0xIDExIDMuOC0xNi45IDEyOC45LTkwLjggMTMzLjEtOTAuOCA5NC42IDAtMzkuMiA0NS01OC42IDQ1LjUtNjEtLjMtMTIuMi00Ny0yNy42LTU4LjktMjcuNi0zMy45IC4xLTUyLjQgNTEuMi01Mi40IDc5LjMgMCA1MS45IDMyLjggODcuOSA4NS41IDg3LjkgNzcuNCAwIDEzNC03Ny44IDE1MS40LTE0NS40IDE1LjEtNjAuNSAxMS4yLTYzLjMgMTkuNy02Ny42IDMyLjItMTYuMiA1Ny41LTI3IDkzLjgtMjcgMTcuOCAwIDMwLjUgMy43IDU4LjkgOC40IDIuOSAwIDYuNy0yLjkgNi43LTUuOCAwLTgtMzMuNC02MC41LTQwLjktNjMuNHpNMjMxLjggMTI2LjhjLTkuMyA0NC43LTE4LjYgODkuNi0yNy44IDEzNC4zLTIuMyAxMC4yLTEzLjMgNy44LTIyIDcuOC0zOC4zIDAtNDktNDEuOC00OS03My4xIDAtNDcgMTgtMTA5LjMgNjEuOC0xMzMuNCA3LTQuMSAxNC44LTYuNyAyMi42LTYuNyAxOC42IDAgMjAgMTMuMyAyMCAyOC43LS4xIDE0LjMtMi43IDI4LjUtNS42IDQyLjR6Il19LElsdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJqc2ZpZGRsZSIsaWNvbjpbNTc2LDUxMixbXSwiZjFjYyIsIk01MTEuMSAyMzcuNWMtNC43LTIuNi01LjctNS43LTYuNC0xMC44LTIuNC0xNi41LTMuNS0zMy42LTkuMS00OS4xLTM1LjktMTAwLTE1NC0xNDMuNC0yNDYuOC05MS42LTI3LjQgMTUuMi00OSAzNi40LTY1LjUgNjMuOS0zLjItMS41LTUuNS0yLjctNy44LTMuNy0zMC4xLTEyLjQtNTktMTAuMS04NS4zIDkuMi0yNS41IDE4LjctMzYuNCA0NC41LTMyLjcgNzYuNCAuNCAzLTIgNy42LTQuNSA5LjUtMzkuNyAzMC01NiA3OC4xLTQxLjkgMTI0LjYgMTMuOCA0NS42IDU3LjUgNzkuOCAxMDUuNiA4MS40IDMwLjMgMSA2MC42IC41IDkxIC41IDg0IDAgMTY4LjEgLjUgMjUyLjEtLjUgNTIuNy0uNiA5Ni4xLTM2LjkgMTA4LjItODcuMyAxMS41LTQ4LjEtMTEuMS05Ny4zLTU2LjgtMTIyLjZ6bTIxLjEgMTU2LjljLTE4LjIgMjIuNC00Mi4zIDM1LjMtNzEuMyAzNS43LTU2LjkgLjgtMTEzLjggLjItMTcwLjcgLjIgMCAuNy0xNjMgLjItMTYzLjcgLjItNDMuOS0uMy03Ni43LTE5LjgtOTUuMi02MC0xOC45LTQxLjItNC05MC44IDM0LjItMTE2LjEgOS4yLTYuMSAxMi41LTExLjYgMTAuMS0yMy4xLTUuNS0yNi40IDQuNS00OCAyNi40LTYzIDIzLTE1LjcgNDcuNC0xNi4xIDcyLTMuMSAxMC4zIDUuNCAxNC42IDExLjYgMjIuMi0yLjUgMTQuMi0yNi40IDM0LjYtNDYuNyA2MC43LTYxLjMgOTcuNS01NC40IDIyOC40IDcuNiAyMzAuMiAxMzIuNyAuMSA4LjIgMi40IDEyLjQgOS44IDE1LjkgNTcuNiAyNi44IDc0LjUgOTYuMSAzNS4xIDE0NC41em0tODcuOC04MC41Yy01LjggMzEuMi0zNC42IDU1LjEtNjYuNyA1NS4xLTE3IDAtMzIuMS02LjUtNDQuMS0xNy43LTI3LjctMjUuNy03MS4xLTc1LTk1LjktOTMuNC0yMC4xLTE0LjktNDItMTIuMy02MC4zIDMuOC01MCA0NC4xIDE1LjkgMTIxLjggNjcuMSA3Ny4yIDQuNS00IDcuOC05LjUgMTIuNy0xMi44IDguMi01LjUgMjAuOC0uOSAxMy4yIDEwLjYtMTcuNCAyNi4zLTQ5LjMgMzguMi03OC45IDI5LjMtMjguOS04LjctNDguOC0zNi00OC42LTcwLjIgMS4yLTIyLjUgMTIuNC00My4xIDM1LjQtNTYgMjIuNi0xMi42IDQ2LjQtMTMuMSA2NyAyLjUgNTAuOCAzOC41IDc1LjYgODEuNyAxMDcuMyAxMDEuMiAyNC42IDE1LjEgNTQuMyA3LjQgNjguOC0xNy41IDI4LjgtNDkuMi0zNC42LTEwNS03OC45LTYzLjUtNCAzLjctNi45IDguOS0xMS40IDExLjctMTEgNi44LTE3LjMtNC4xLTEyLjgtMTAuNCAyMC43LTI4LjYgNTAuNS00MC40IDgzLjMtMjguMiAzMS40IDExLjcgNDkuMSA0NC40IDQyLjggNzguMnoiXX0sUGx0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImtleWJhc2UiLGljb246WzQ0OCw1MTIsW10sImY0ZjUiLCJNMjg2LjIgNDE5YTE4IDE4IDAgMSAwIDAgMzYgMTggMTggMCAxIDAgMC0zNnpNMzk4LjEgMjcxLjRjLTkuNS0xNC42LTM5LjQtNTIuNC04Ny4zLTczLjctNi4xLTIuNy0xMi4yLTUuMS0xOC40LTcuMyA0LjEtOS45IDYtMjAuNiA1LjgtMzEuNHMtMi43LTIxLjMtNy4yLTMxLjEtMTAuOS0xOC41LTE4LjktMjUuNy0xNy40LTEyLjYtMjcuNi0xNmMtMTIuNC00LjEtMjMuMy02LTMyLjQtNS44LS42LTItMS45LTExIDkuNC0zNWwtMjIuOS0xMy41LTUuNSA3LjZjLTguNyAxMi4xLTE2LjkgMjMuNi0yNC4zIDM0LjktMi43LS42LTUuNS0xLjEtOC4zLTEuMi00MS41LTIuNC0zOS0yLjMtNDEuMS0yLjMtNTAuNiAwLTUwLjggNTIuMS01MC44IDQ1LjlsLTIuNCAzNi43Yy0xLjYgMjcgMTkuOCA1MC4yIDQ3LjYgNTEuOGw4LjkgLjVDMTA2IDIxNS41IDkwLjQgMjI3LjUgNzYuNiAyNDEuNCAxNCAzMDQuNyAxNCAzNzQgMTQgNDI5LjhsMCAzMy42IDIzLjMtMjkuOGMzLjEgMTMuMSA4IDI1LjggMTQuNiAzNy42IDUuOCAxMC4xIDE0LjkgOS40IDE5LjYgNy4zIDQuMi0xLjkgMTAtNi45IDMuOC0yMC4xLTgtMTYuOC0xMy4zLTM0LjctMTUuOC01My4xbDQ2LjgtNTkuOC0yNC43IDc0LjFjNTguMi00Mi40IDE1Ny40LTYxLjggMjM2LjItMzguNiAzNC4yIDEwLjEgNjcuNCAuNyA4NC43LTIzLjggLjctMSAxLjItMi4yIDEuOC0zLjIgMS44IDkuNCAyLjcgMTguOSAyLjggMjguNCAwIDIzLjMtMy43IDUyLjktMTQuOSA4MS42LTIuNSA2LjUgMS44IDE0LjUgOC42IDE1LjcgNy40IDEuNiAxNS4zLTMuMSAxOC40LTExLjEgOS42LTI1LjUgMTQuNi01NC42IDE0LjYtODYuMiAwLTM4LjYtMTMtNzcuNS0zNS45LTExMC45ek0xNDIuNCAxMjguNmwtMTUuNy0uOS0xLjQgMjEuOCAxMy4xIC44Yy0uNiA2LjUtLjUgMTMuMSAuMyAxOS42bC0yMi40LTEuM2MtMS42LS4xLTMuMi0uNS00LjctMS4xcy0yLjgtMS42LTMuOS0yLjgtMS45LTIuNi0yLjUtNC4xLS44LTMuMS0uNy00LjdMMTA3IDExOWMxLTEyLjIgMTMuOS0xMS4zIDEzLjMtMTEuM2wyOS4xIDEuN2MtMi44IDYuMi01LjEgMTIuNi03IDE5LjJ6TTI5MC44IDMwMC44Yy0yLjEgMS42LTQuOCAyLjQtNy41IDIuMnMtNS4xLTEuNS02LjktMy41bC05LjctMTEuNS0zNC40IDI3Yy0xLjYgMS4zLTMuNyAxLjktNS44IDEuN3MtNC0xLjItNS4zLTIuOGwtMTUuOC0xOC42Yy0xLjItMS42LTEuNy0zLjUtMS41LTUuNHMxLjMtMy43IDIuOC00LjlsMzQuNi0yNy4yLTE0LjEtMTYuNy0xNy4xIDEzLjVjLTEuNiAxLjItMy41IDEuOC01LjUgMS42cy0zLjgtMS4xLTUuMS0yLjZjMCAwLTMuNy00LjQtMy44LTQuNS0xLjItMS42LTEuNy0zLjUtMS41LTUuNXMxLjMtMy43IDIuOC00LjlMMjE0IDIyNS4ycy0xOC41LTIyLTE4LjYtMjIuMWMtLjgtMS0xLjMtMi4xLTEuNy0zLjNzLS40LTIuNS0uMy0zLjcgLjYtMi40IDEuMi0zLjUgMS41LTIgMi41LTIuOGMyLjEtMS43IDQuOC0yLjQgNy40LTIuMnM1LjEgMS41IDYuOSAzLjZsODEuMSA5Ni4zYy44IDEgMS4zIDIuMSAxLjcgMy4zcy40IDIuNSAuMyAzLjctLjYgMi41LTEuMiAzLjUtMS41IDIuMS0yLjUgMi44ek0xODcuNCA0MTlhMTggMTggMCAxIDAgMCAzNiAxOCAxOCAwIDEgMCAwLTM2eiJdfSxObHQ9e3ByZWZpeDoiZmFiIixpY29uTmFtZToibHVtb24tZHJvcCIsaWNvbjpbNTc2LDUxMixbXSwiZTdlMyIsIk00ODAgMzJjNTMgMCA5NiA0MyA5NiA5NmwwIDIyNGMwIDUzLTQzIDk2LTk2IDk2TDk2IDQ0OGMtNTMgMC05Ni00My05Ni05NkwwIDEyOEMwIDc1IDQzIDMyIDk2IDMybDM4NCAwek0zMDIuNCAxMTQuN2MtOS44LTE2LjQtMjAuNS0xNi40LTI5LjYgMGwtNjguOSAxMTRjLTEwLjcgMTUuNi0xNi40IDMyLjgtMTYuNCA1Mi41IDAgNTAuOSA0NC4zIDk0LjMgMTAwLjEgOTQuMyA1NSAwIDEwMC45LTQzLjUgMTAwLjktOTQuMyAwLTE5LjctNi42LTM3LjgtMTcuMi01Mi41bC02OC45LTExNHoiXX0sRmx0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImZvcmdlam8iLGljb246WzMyMCw1MTIsW10sImU4NjAiLCJNMjYxLjUgMS4yYzM0IDAgNjEuNiAyNy42IDYxLjYgNjEuNnMtMjcuNiA2MS42LTYxLjYgNjEuNmMtMjMgMC00My4xLTEyLjctNTMuNy0zMS40bC0yOC41IDBjLTI0IDAtNDcgOS41LTY0IDI2LjVzLTI2LjUgNDAtMjYuNSA2NGwwIDQzLjVjMjYtMTkuNSA1Ny43LTMwLjIgOTAuNi0zMC4ybDI4LjUgMGMxMC42LTE4LjcgMzAuNi0zMS40IDUzLjctMzEuNCAzNCAwIDYxLjYgMjcuNiA2MS42IDYxLjZzLTI3LjYgNjEuNi02MS42IDYxLjZjLTIzIDAtNDMuMS0xMi43LTUzLjctMzEuNGwtMjguNSAwYy0yNCAwLTQ3IDkuNS02NCAyNi41cy0yNi41IDQwLTI2LjUgNjRsMCA0Ny44YzE4LjcgMTAuNiAzMS40IDMwLjYgMzEuNCA1My42IDAgMzQtMjcuNiA2MS42LTYxLjYgNjEuNlMtMyA0ODMuMi0zIDQ0OS4yYzAtMjMgMTIuNy00My4xIDMxLjQtNTMuNmwwLTIxMmMwLTQwIDE1LjktNzguNCA0NC4yLTEwNi43czY2LjctNDQuMiAxMDYuNy00NC4ybDI4LjUgMGMxMC42LTE4LjcgMzAuNi0zMS40IDUzLjctMzEuNHpNNTguNiA0MjMuOWMtMTQgMC0yNS4zIDExLjMtMjUuMyAyNS4zczExLjMgMjUuNCAyNS4zIDI1LjQgMjUuNC0xMS40IDI1LjQtMjUuNC0xMS40LTI1LjMtMjUuNC0yNS4zek0yNjEuNSAyMDEuN2EyNS40IDI1LjQgMCAxIDAgMCA1MC43IDI1LjQgMjUuNCAwIDEgMCAwLTUwLjd6bTAtMTY0LjJhMjUuNCAyNS40IDAgMSAwIDAgNTAuNyAyNS40IDI1LjQgMCAxIDAgMC01MC43eiJdfSxPbHQ9e3ByZWZpeDoiZmFiIixpY29uTmFtZToicG9zdGdyZXNxbCIsaWNvbjpbNTEyLDUxMixbXSwiZTg1OCIsIk0yMTkuOCAxNzEuM2MzLjkgLjUgMTMuMSAyLjcgMTIuMyA4LjUtLjggNS45LTkuMiA5LjEtMTQuMiA4LjQtNC43LS43LTEzLjItNi4xLTEyLjMtMTIuMWwuMy0yLjFjNC4yIDAgOC4zLTMuNSAxMy45LTIuN3ptMTY4LjEtMy40YzEwLjggMi42LTEuMSAxMy41LTYuOCAxNC4zLTQuMyAuNi0xMi4xLTIuMi0xMi44LTcuNC0xLTcuNCAxNS43LTcuOSAxOS43LTYuOXptLTIyLTE0MC44YzM1LjctLjMgODEuMyA5LjQgMTE0LjMgNTEuNyA3LjIgOS4yIDEwIDI0IDkuNyA0MC45LS44IDQ5LjYtMjYgMTI5LjQtNzAuNyAxOTcuNCA0LjUgMi45IDE3LjYgNy40IDUxLjEgLjUgNS42LTEuMiAxMi43LTIuMiAxNy42IDEuNiAxOC4yIDEzLjktMTkuNiAzNS4xLTI4LjQgMzkuMi0xMy4yIDYuMi0zNC44IDkuNS01MS4yIDguNy0yLjEtLjItNC4zLS4yLTYuMy0uNi01LjEtMS4xLTcuNC0xLTguMy0uNy0xLjEgLjMtMS40IDIuOS0xLjYgMy44LTIuOCAyNC45LTcuNyA2NC43LTEwLjcgODItMi44IDE2LjMtNy43IDI5LjMtMTcuMiAzOS4yLTkuNSA5LjktMjIuOCAxNS43LTQwLjYgMTkuNS0yMi4zIDQuOC0zNy45LS4xLTQ4LjctOS4xLTEwLjMtOC43LTE1LjItMjAuNC0xOC0yNy40LTEuOC00LjUtMy0xMS41LTQtMTkuOC0yLjMtMTkuOC0zLjMtNTAuNC0zLTgzLjMtMjQuNiAyMi4xLTU1IDE3LjItNjguMiAxMy45LTEwLjUtMi42LTMzLTE2LjEtMTcuNS0yOC43IDExLjktOS43IDMwLjMtNS41IDQyLjItMTUgMi40LTEuOSAxMS40LTEwLjYgMTEuNC0xMy41LTEwLS4zLTE5LjYtMi45LTI4LjEtNy41LTEzLjUgMTQuNS0yNi40IDI5LjUtMzkuMyA0NC42LTguMyA5LjktMTcuNCAxNS44LTI3LjQgMTYuMi05LjkgLjQtMTguNy00LjYtMjYuMS0xMS44LTcuMy03LjEtMTQuMS0xNy4yLTIwLjQtMjktMTktMzUuNS0zMy4yLTg2LjEtNDIuMy0xMjYuNC02LTI2LjctOS42LTQ5LjEtMTAuMS01OS0yLjItNDQuMyA4LTc0LjEgMjYtOTMuMiAxNy45LTE5IDQyLjQtMjYgNjYuMS0yNy40IDM1LjYtMiA3MSA4LjUgODYuNiAxMy44bDUgMS44YzE1LjktMTAuOCAzNi4xLTE3LjQgNjEuNy0xNyAxMy4yIC4yIDI1LjUgMi4yIDM2LjcgNC4yIDE4LjYtNy4xIDM5LjgtOS41IDU5LjQtOS43em0tOTYgMjAuNWMtMjQuNy0uNC00Mi45IDYuNS01Ni42IDE2LjgtLjggLjYtMS44IDEtMi44IDEuMi0xNC40IDExLjgtMjMuOSAyOC0zMC4zIDQ0LjgtNy4yIDE5LjEtMTAgMzguNS0xMS4xIDUxLjUgNy42LTQuMyAxNy45LTguNyAyOC43LTExLjIgMTAuNS0yLjQgMjIuNC0zLjIgMzIuNyAuOCAxMC45IDQuMiAxOSAxMy4zIDIyLjIgMjguMSA3LjUgMzQuNyA2LjcgNTguMiAyLjcgNzUuOS00LjggMjEtMTYuOCAzOS41LTIxLjkgNjAuNCAzLjUtLjkgNy4xLS42IDkuOCAuMWw3LjIgMi45YzcuNyA0LjQgMTIuOCAxMyAxNCAyMS43IDIgNiAuMSAxNC4zIDAgMjAuNiA2LjcgMTYuMyA3LjIgMzYuMSA2LjcgNTMuMy0uNyAyNS0xIDQwLjIgMy4yIDUxLjcgMi45IDcuOSA0LjcgMTYuNCAxMC40IDIyLjggMi42IDMgNi4xIDUuNSAxMC45IDYuOCAxOC41IDUuMSA0NC00LjcgNTYuNi0xOC4yIDcuNy04LjIgMTIuMy0xOS4zIDEzLjQtMzMuOSAxLjEtMTMuNiA0LjItMjcuNiA2LjMtNDEuMWwyLjktOC44YzEuNy0xNC44IDMuNC0yOS42IDUtNDQuNC0uNC05LjEgLjktMTYuMSAzLjktMjEuNSAzLjEtNS43IDcuNi04LjkgMTEuOC0xMC44IDEuOC0uOCAzLjktMS4yIDUuNi0yLTEuNi0yLjQtMy42LTQuNi01LjMtNi44LTguMi0xMC40LTEzLjMtMjIuMy0xOS43LTMzLjgtOC41LTE1LjItMjMuOC00Mi4yLTMwLjEtNjcuNS00LjEtMTYuNC00LjktMzQuNSA2LTQ3IDkuOC0xMS4yIDI2LjktMTUuNSA1MS45LTEzLTMuNC0xMC0xMS40LTI3LjUtMjQuOC00NC43LTE4LTIzLTQ1LjctNDUuOS04NS43LTUzLjEtNy4zLS45LTE1LjItMS41LTIzLjYtMS43em0tMzIuMiAyODJjLTggLjctMTUuNSAxOC4yLTIxLjcgMjMuMS02LjIgNC45LTE0LjUgNy42LTMwIDEwLjctNC41IC45LTcuNyAxLjktOS43IDIuOCAyMi4zIDE1LjggNTguMyAzLjIgNzIuNi0xNi44IDEuNy0yLjQgMi4xLTYgLjUtMTAuMi0xLjctNC41LTYuNC0xMC4xLTExLjktOS42ek0xMTcuNiA0OS4yYy0yMS42IDEuMi00MiA3LjUtNTYuNCAyMi44LTE0LjQgMTUuMi0yNC4yIDQwLjYtMjIuMSA4Mi41IC40IDguNSAzLjggMzAgOS44IDU2LjYgOC45IDM5LjggMjMuNyA5MC4zIDQwLjYgMTIyLjIgNiAxMS4xIDE3LjQgMzMgMzIuOCAzMi4zIDQuNC0uMiAxMC4xLTIuOCAxNy0xMSAxMi42LTE0LjggMjUuMi0yOS41IDM4LjUtNDMuNy0xNy45LTE1LjQtMjguNS00MC4zLTI0LjgtNjcuMiAzLjQtMjQuMyAuNS00OC4yIDEuMi03Mi41IC40LTExLjkgMi4zLTM4LjcgMTIuNi02NS44IDUuOS0xNS41IDE0LjUtMzEuMyAyNy40LTQ0LjItMTYuNC01LjQtNDcuMS0xMy41LTc2LjYtMTEuOXpNNDA1LjEgMzI4LjljLTMuOCAxLjEtNi43IDIuMi04LjcgNS44LTEuMyAyLjQtMi41IDYuNy0yLjIgMTQuMiA0LjggMy45IDE0LjEgMy4zIDE5LjggMy4yIDEzLjktLjIgMjkuOS0zLjEgMzkuMy03LjUgNy45LTMuNyAxNC43LTguMyAxOS0xMi4yLTM4LjIgNy43LTU1LjQgMi4xLTYzLjItNC44LTEuMyAuNC0yLjkgLjktMy45IDEuMnpNMjI1LjMgMTY0LjljLTE1LjQtNS45LTM1LjQgMS44LTQ4LjkgOS40LTMuNiAyLTYuNSA0LTcuOSA1LjIgLjQgOC44IDIuOCAzNi4xLTEuNCA2Ni4zLTUuMSAzNi42IDIxLjcgNjYuNiA1Mi41IDY2LjcgNS4xLTIwLjggMTctMzkuMiAyMS44LTYwLjEgMy41LTE1LjMgNC41LTM2LjYtMi43LTY5LjctMi4zLTEwLjUtNy40LTE1LjQtMTMuNC0xNy43ek0zNzAuMSA0Mi4yYy0xNS4yLS4yLTI4LjggMS43LTM5LjIgMy44IDI2IDExLjggNDUuNiAyOS43IDU5LjYgNDcuNiAxNy40IDIyLjIgMjYuMyA0NC4xIDI5IDU1IC43IDIuNyAxLjMgNS43IC41IDguNCAuNiAxOC45LTQgMzEuMy00LjYgNDkuMi0uNCAxMi45IDIuOSAyOC4xIDMuNyA0NC43IC44IDE1LjctMSAzMi41LTExLjIgNDkuNSAuOCAxIDEuNiAyLjEgMi40IDMuMSAyNi44LTQyLjIgNDYtODguNiA1Ni4zLTEyOC41IDUuNS0yMS40IDguNC00MC43IDguNy01Ni4xIC4yLTE1LjItMi0yNS40LTUuOC0zMC40LTI4LjMtMzYuMS02Ni44LTQ1LjgtOTkuMy00Ni4yem0zNS42IDExOS41Yy0yNS4zLTMuMi0zNy4zIDEuNS00Mi44IDcuNy02IDYuOC02LjggMTguNS0yLjkgMzQuMSA1LjcgMjIuNiAyMC4xIDQ4LjYgMjguNyA2NCAzLjYgNi40IDYuNCAxMy4xIDEwIDE5LjQgNS41LTExLjcgNi42LTIzLjUgNi0zNS41LS43LTE1LTQuMi0zMC4zLTMuNy00NS44bC40LTcuNGMxLjItMTQuMyA0LjEtMjQuNiA0LjItMzYuNXoiXX0sUmx0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6IndlZWJseSIsaWNvbjpbNTEyLDUxMixbXSwiZjVjYyIsIk00MjUuMSA2NS44Yy0zOS45IDAtNzMuMyAyNS43LTgzLjcgNjQuMy0xOC4yLTU4LjEtNjUuNS02NC4zLTg1LTY0LjMtMTkuOCAwLTY2LjggNi4zLTg1LjMgNjQuMy0xMC40LTM4LjYtNDMuNC02NC4zLTgzLjctNjQuMy00OSAwLTg3LjUgMzMuOS04Ny41IDc3LjIgMCAyOSA0LjIgMzMuMyA3Ny4yIDIzMy41IDIyLjQgNjAuNiA2Ny44IDY5LjQgOTIuNyA2OS40IDM5LjIgMCA3MC0xOS41IDg1LjktNTQgMTUuOSAzNC44IDQ2LjcgNTQuMyA4NS45IDU0LjMgMjUgMCA3MC40LTkuMSA5Mi43LTY5LjcgNzYuNi0yMDguNiA3Ny41LTIwNS42IDc3LjUtMjI3LjIgLjYtNDguMy0zNi04My41LTg2LjktODMuNXptMjYuMyAxMTQuOEwzODUuOSAzNTcuMWMtNy45IDIxLjUtMjEuMiAzNy4yLTQ2LjIgMzcuMi0yMy40IDAtMzcuNC0xMi40LTQ0LTMzLjlsLTM5LjMtMTE3LjQtMSAwLTM5LjMgMTE3LjRjLTcgMjEuNS0yMC45IDMzLjYtNDQgMzMuNi0yNSAwLTM4LjMtMTUuNy00Ni4yLTM3LjJMNjAuOSAxODEuNmMtNS40LTE0LjgtNy45LTIzLjktNy45LTM0LjUgMC0xNi4zIDE1LjgtMjkuNCAzOC4zLTI5LjQgMTguNyAwIDMyIDExLjggMzYuMSAyOS4xbDQ0IDEzOS44IDEgMCA0NC43LTEzNi44YzYtMTkuNyAxNi41LTMyLjEgMzktMzIuMXMzMi45IDEyLjEgMzkgMzIuMWw0NC43IDEzNi44IDEgMCA0NC0xMzkuOGM0LjEtMTcuMiAxNy40LTI5LjEgMzYuMS0yOS4xIDIyLjIgMCAzOC4zIDEzLjMgMzguMyAzNS43LS4zIDcuOS00LjEgMTYtNy42IDI3LjJ6Il19LEJsdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJkb2NrZXIiLGljb246WzY0MCw1MTIsW10sImYzOTUiLCJNMzQ5LjkgMjM2LjNsLTY2LjEgMCAwLTU5LjQgNjYuMSAwIDAgNTkuNHptMC0yMDQuM2wtNjYuMSAwIDAgNjAuNyA2Ni4xIDAgMC02MC43em03OC4yIDE0NC44bC02Ni4xIDAgMCA1OS40IDY2LjEgMCAwLTU5LjR6TTI3MS44IDEwNC43bC02Ni4xIDAgMCA2MC4xIDY2LjEgMCAwLTYwLjF6bTc4LjEgMGwtNjYuMSAwIDAgNjAuMSA2Ni4xIDAgMC02MC4xem0yNzYuOCAxMDBjLTE0LjQtOS43LTQ3LjYtMTMuMi03My4xLTguNC0zLjMtMjQtMTYuNy00NC45LTQxLjEtNjMuN2wtMTQtOS4zLTkuMyAxNGMtMTguNCAyNy44LTIzLjQgNzMuNi0zLjcgMTAzLjgtOC43IDQuNy0yNS44IDExLjEtNDguNCAxMC43bC00MzQuNyAwYy04LjcgNTAuOCA1LjggMTE2LjggNDQgMTYyLjEgMzcuMSA0My45IDkyLjcgNjYuMiAxNjUuNCA2Ni4yIDE1Ny40IDAgMjczLjktNzIuNSAzMjguNC0yMDQuMiAyMS40IC40IDY3LjYgLjEgOTEuMy00NS4yIDEuNS0yLjUgNi42LTEzLjIgOC41LTE3LjFsLTEzLjMtOC45ek0xMTUuNiAxNzYuOGwtNjYgMCAwIDU5LjQgNjYuMSAwIDAtNTkuNC0uMSAwem03OC4xIDBsLTY2LjEgMCAwIDU5LjQgNjYuMSAwIDAtNTkuNHptNzguMSAwbC02Ni4xIDAgMCA1OS40IDY2LjEgMCAwLTU5LjR6bS03OC4xLTcyLjFsLTY2LjEgMCAwIDYwLjEgNjYuMSAwIDAtNjAuMXoiXX0sSGx0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6Im1hZ2VudG8iLGljb246WzQ0OCw1MTIsW10sImYzYzQiLCJNNDQ1LjkgMTI3LjlsMCAyNTYuMS02My40IDM2LjUgMC0yNTUuOC0xNTguNS05MS42LTE1OC42IDkxLjYgLjQgMjU1LjktNjMuMy0zNi42IDAtMjU1LjkgMjIxLjktMTI4LjEgMjIxLjUgMTI3Ljl6TTI1NS44IDQyMC41bC0zMS42IDE4LjQtMzEuOC0xOC4yIDAtMjU2LTYzLjMgMzYuNiAuMSAyNTUuOSA5NC45IDU0LjkgOTUuMS01NC45IDAtMjU2LTYzLjQtMzYuNiAwIDI1NS45eiJdfSxxbHQ9e3ByZWZpeDoiZmFiIixpY29uTmFtZToidG9yLWJyb3dzZXIiLGljb246WzUxMiw1MTIsW10sImU4MzgiLCJNMjU2LjUgNDY1LjRsMC0zMWM5OC4zLS4zIDE3Ny45LTgwIDE3Ny45LTE3OC40UzM1NC44IDc3LjkgMjU2LjUgNzcuNmwwLTMxQzM3MiA0Ni44IDQ2NS40IDE0MC41IDQ2NS40IDI1NlMzNzIgNDY1LjIgMjU2LjUgNDY1LjR6bTAtMTA4LjZjNTUuNC0uMyAxMDAuMy00NS4zIDEwMC4zLTEwMC44UzMxMiAxNTUuNSAyNTYuNSAxNTUuMmwwLTMxYzcyLjYgLjMgMTMxLjQgNTkuMiAxMzEuNCAxMzEuOFMzMjkuMSAzODcuNiAyNTYuNSAzODcuOGwwLTMxem0wLTE1NS4xYzI5LjcgLjMgNTMuOCAyNC41IDUzLjggNTQuM3MtMjQgNTQtNTMuOCA1NC4zbDAtMTA4LjZ6TTAgMjU2YTI1NiAyNTYgMCAxIDAgNTEyIDAgMjU2IDI1NiAwIDEgMCAtNTEyIDB6Il19LGpsdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJnaXQtYWx0IixpY29uOls0NDgsNTEyLFtdLCJmODQxIiwiTTQzOS42IDIzNi4xTDI0NCA0MC41QzIzOC42IDM1IDIzMS4yIDMyIDIyMy42IDMycy0xNSAzLTIwLjQgOC40bC00MC43IDQwLjYgNTEuNSA1MS41YzI3LjEtOS4xIDUyLjcgMTYuOCA0My40IDQzLjdsNDkuNyA0OS43YzM0LjItMTEuOCA2MS4yIDMxIDM1LjUgNTYuNy0yNi41IDI2LjUtNzAuMi0yLjktNTYtMzcuM2wtNDYuMy00Ni4zIDAgMTIxLjljMjUuMyAxMi41IDIyLjMgNDEuOCA5LjEgNTUtNi40IDYuNC0xNS4yIDEwLjEtMjQuMyAxMC4xcy0xNy44LTMuNi0yNC4zLTEwLjFjLTE3LjYtMTcuNi0xMS4xLTQ2LjkgMTEuMi01NmwwLTEyM2MtMjAuOC04LjUtMjQuNi0zMC43LTE4LjYtNDVMMTQyLjYgMTAxIDguNSAyMzUuMUMzIDI0MC42IDAgMjQ3LjkgMCAyNTUuNXMzIDE1IDguNSAyMC40TDIwNC4xIDQ3MS42YzUuNCA1LjQgMTIuNyA4LjQgMjAuNCA4LjRzMTUtMyAyMC40LTguNEw0MzkuNiAyNzYuOWM1LjQtNS40IDguNC0xMi44IDguNC0yMC40cy0zLTE1LTguNC0yMC40eiJdfSxWbHQ9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiZmlyZWZveC1icm93c2VyIixpY29uOls1MTIsNTEyLFtdLCJlMDA3IiwiTTEzMC4yIDEyNy41bDAgMHptMzUxLjQgNDUuNGMtMTAuNi0yNS41LTMyLjEtNTMtNDguOS02MS43IDEzLjcgMjYuOSAyMS43IDUzLjkgMjQuNyA3NCAwIC4xIDAgLjMgLjEgLjQtMjcuNi02OC44LTc0LjQtOTYuNS0xMTIuNi0xNTYuOC0xNS0yMy43LTEwLjktMjUuMi0xMy4xLTI0LjdsLS4xIC4xYy00Ni43IDI2LTc1LjMgNzguNC04Mi42IDEyMi43LTE2LjYgLjktMzIuOSA1LTQ3LjkgMTIuMS0xLjQgLjYtMi41IDEuNy0zLjEgM3MtLjkgMi44LS42IDQuM2MuMiAuOCAuNiAxLjYgMS4xIDIuM3MxLjIgMS4zIDEuOSAxLjcgMS42IC43IDIuNCAuOCAxLjcgMCAyLjUtLjNsLjUtLjJjMTUuNS03LjMgMzIuNC0xMS4yIDQ5LjUtMTEuMyA2Mi44LS42IDk3LjIgNDQgMTA3LjYgNjIuMy0xMy05LjItMzYuNC0xOC4yLTU4LjgtMTQuMyA4Ny43IDQzLjkgNjQuMiAxOTQuNS01Ny40IDE4OS4yLTU5LjUtMi42LTk3LjEtNTEtMTAwLjUtOTAuOCAwIDAgMTEuMi00MS45IDgwLjYtNDEuOSA3LjUgMCAyOC45LTIwLjkgMjkuMy0yNy0uMS0yLTQyLjUtMTguOS01OS4xLTM1LjItOC44LTguNy0xMy4xLTEyLjktMTYuOC0xNi4xLTItMS43LTQuMS0zLjMtNi4zLTQuOC01LjYtMTkuNS01LjgtNDAtLjctNTkuNi0yNS4xIDExLjQtNDQuNiAyOS40LTU4LjcgNDUuNGwtLjEgMGMtOS43LTEyLjItOS01Mi42LTguNC02MS4xLS4xLS41LTcuMiAzLjctOC4yIDQuMy04LjYgNi4xLTE2LjUgMTIuOS0yMy44IDIwLjQtMTYuMyAxNi42LTQ0LjEgNTAuMi01NS41IDEwMS4yLTQuNSAyMC40LTYuOCA0NC40LTYuOCA1Mi4zIDAgMTM0LjcgMTA5LjIgMjQzLjkgMjQzLjkgMjQzLjkgMTIwLjYgMCAyMjMtODcuMiAyNDAuNC0yMDIuNiAxMS42LTc2LjctMTQuNy0xMzEuMS0xNC43LTEzMnoiXX0sVWx0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImNsb3Vkc21pdGgiLGljb246WzUxMiw1MTIsW10sImYzODQiLCJNNTEyIDIyNy42TDUxMiAyODQuNSAyODQuNCA1MTIgMjI3LjYgNTEyIDAgMjg0LjQgMCAyMjcuNiAyMjcuNiAwIDI4NC41IDAgNTEyIDIyNy42em0tMjU2IDE2MmMxNy44IC41IDM1LjYtMi42IDUyLjItOS4xczMxLjgtMTYuMiA0NC42LTI4LjcgMjMtMjcuMyAyOS45LTQzLjggMTAuNS0zNC4xIDEwLjUtNTItMy42LTM1LjUtMTAuNS01Mi0xNy4xLTMxLjMtMjkuOS00My44LTI4LTIyLjItNDQuNi0yOC43LTM0LjQtOS42LTUyLjItOS4xYy0xNy44LS41LTM1LjYgMi42LTUyLjIgOS4xcy0zMS44IDE2LjMtNDQuNiAyOC43LTIzIDI3LjMtMjkuOSA0My44LTEwLjUgMzQuMS0xMC41IDUyIDMuNiAzNS41IDEwLjUgNTIgMTcuMSAzMS4zIDI5LjkgNDMuOCAyOCAyMi4yIDQ0LjYgMjguNyAzNC40IDkuNiA1Mi4yIDkuMXoiXX0sV2x0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6IndpemFyZHMtb2YtdGhlLWNvYXN0IixpY29uOls2NDAsNTEyLFtdLCJmNzMwIiwiTTIxOS4yIDM0NS43Yy0xLjkgMS40LTExLjEgOC40LS4zIDIzLjYgNC42IDYuNCAxNC4xIDEyLjggMjEuNyA2LjYgNi41LTQuOSA3LjQtMTIuOSAuMy0yMy01LjUtNy44LTE0LjMtMTIuOS0yMS43LTcuMXptMzM2LjggNzUuOWMtLjMgMS43LS42IDEuNyAuOCAwIDIuMS00LjIgNC4yLTEwLjIgNS0xOS45IDMuMS0zOC41LTQwLjMtNzEuNS0xMDEuMy03OC01NC43LTYtMTI0LjQgOS4yLTE4OC44IDYwLjVsLS4zIDEuNmMyLjYgNSA1IDEwLjcgMy40IDIxLjJsLjggLjNjNjMuOS01OC40IDEzMS4yLTc3LjIgMTg0LjQtNzMuOCA1OC40IDMuNyAxMDAgMzQgMTAwIDY4LjEgMCAxMC0yLjYgMTUuNy0zLjkgMjAuMnpNMzkyLjMgMjQwLjRjLjggNy4xIDQuMiAxMC4yIDkuMiAxMC41IDUuNSAuMyA5LjQtMi42IDEwLjUtNi42IC44LTMuNCAyLjEtMjkuOCAyLjEtMjkuOFM0MDIuOCAyMjEgMzk5LjEgMjI1Yy0zLjcgMy43LTcuMyA4LjQtNi44IDE1LjV6bS01MC0xNTEuMWMtMjA0LjUgMC0zMjkuMiAxMzcuNS0zNDEuNSAxNTEuOS0xIC41LTEuMyAuOCAuOCAxLjMgNjAuNSAxNi41IDE1NS44IDgxLjIgMTk2LjEgMjAyLjJsMSAuM2M1NS4yLTY5LjkgMTQwLjktMTI4LjEgMjM3LTEyOC4xIDgwLjkgMCAxMzAuMiA0Mi4yIDEzMC4yIDgwLjQgMCAxOC4zLTYuNiAzMy41LTIyLjMgNDYuMyAwIDEtLjIgLjggLjggLjggMTQuNy0xMC43IDI3LjUtMjguOCAyNy41LTQ4LjIgMC0yMi44LTEyLjEtMzguMi0xMi4xLTM4LjIgNy4xIDcuMSAxMC43IDE2LjIgMTAuNyAxNi4yIDUuOC00MC45IDI3LTYyLjMgMjctNjIuMy0yLjQtOS43LTYuOC0xNy44LTYuOC0xNy44IDcuNiA4LjEgMTQuNCAyNy41IDE0LjQgNDEuNCAwIDEwLjUtMy40IDIyLjgtMTIuNiAzMS45bC4zIC41YzguMS01IDE2LjUtMTYuOCAxNi41LTM4IDAtMTUuNy00LjctMjUuOS00LjctMjUuOSA1LjgtNS4yIDExLjMtOS4yIDE2LTExLjggLjggMy40IDIuMSA5LjcgMi40IDE0LjkgMCAxIC44IDEuOCAxIDAgLjgtNS44LS4zLTE2LjItLjMtMTYuNSA2LTMuMSA5LjctNC41IDkuNy00LjUtMTUuNy0xMTAuMy0xNDQtMTk2LjktMjkxLjItMTk2Ljl6TTI0MyAzNzguOWMtMTEuMSA5LTI0LjIgNC4xLTMwLjYtNC4yLTcuNC05LjYtNi44LTI0LjEgNC4yLTMyLjUgMTQuOC0xMS40IDI3LjEtLjUgMzEuMiA1LjUgLjMgLjQgMTIuMSAxNi42LTQuNyAzMS4yem0yLjEtMTM2LjRsOS40LTE3LjggMTEuOCA3MS0xMi42IDYtMjQuNi0yOC44IDE0LjEtMjYuNyAzLjcgNC40LTEuOC04LjF6bTE4LjYgMTE3LjZsLS4zLS4zYzItNC4xLTIuNS02LjYtMTcuNS0zMS43LTEuMy0yLjQtMy4xLTIuOS00LjQtMi42bC0uMy0uNWM3LjktNS44IDE1LjQtMTAuMiAyNS40LTE1LjdsLjUgLjNjMS4zIDEuOCAyLjEgMi45IDMuNCA0LjdsLS4zIC41Yy0xLS4zLTIuNC0uOC01LjIgLjMtMi4xIC44LTcuOSAzLjctMTIuMyA3LjZsMCAxLjNjMS42IDIuNCAzLjkgNi42IDUuOCA5LjdsLjMgMGMxMC02LjMgNy42LTQuNSAxMS41LTcuOWwuMyAwYy41IDEuOCAuNSAxLjggMS44IDUuNWwtLjMgLjNjLTMuMSAuNi00LjcgLjMtMTEuNSA1LjVsMCAuM2M5LjUgMTcgMTEgMTYuOCAxMi42IDE2bC4zIC4zYy0yLjMgMS42LTYuMyA0LjItOS43IDYuNnpNMzE5IDMyNy42Yy0zLjEgMS42LTYgMi45LTEwIDVsLS4zLS4zYzEuMy0yLjYgMS4yLTIuNy0xMS44LTMyLjVsLS4zLS4zYy0uMiAwLTguOSAzLjctMTAgNy4zbC0uNSAwLTEtNS44IC4zLS41YzcuMy00LjYgMjUuNS0xMS42IDI3LjgtMTIuNmwuNSAuMyAzLjEgNS0uMyAuNWMtMy41LTEuOC03LjQgLjgtMTIuMyAyLjZsMCAuM2MxMi4zIDMyIDEyLjcgMzAuNiAxNC43IDMwLjZsMCAuMnptNDQuOC0xNi41Yy00LjIgMS01LjIgMS4zLTkuNyAyLjlsLS4zLS4zIC41LTQuNWMtMS0zLjQtMy4xLTExLjUtMy43LTEzLjZsLS4zLS4zYy0zLjQgLjgtOC45IDIuNi0xMi44IDMuOWwtLjMgLjNjLjggMi42IDMuMSA5LjkgNC4yIDEzLjkgLjggMi40IDEuOCAyLjkgMi45IDMuMWwwIC41Yy0zLjcgMS03LjEgMi42LTEwLjIgMy45bC0uMy0uM2MxLTEuMyAxLTIuOSAuMy01LTEtMy4xLTguMS0yMy44LTkuMi0yNy4yLS41LTEuOC0xLjYtMy4xLTIuNi0zLjFsMC0uNWMzLjEtMSA2LTIuMSAxMC43LTMuNGwuMyAuMy0uMyA0LjdjMS4zIDMuOSAyLjQgNy42IDMuMSA5LjdsLjMgMGMzLjktMS4zIDkuNC0yLjkgMTIuOC0zLjlsLjMtLjMtMi42LTkuNGMtLjUtMS44LTEtMy40LTIuNi0zLjlsMC0uM2M0LjQtMSA3LjMtMS44IDEwLjctMi40bC4zIC4zYy0xIDEuMy0xIDIuOS0uNSA0LjQgMS42IDYuMyA0LjcgMjAuNCA2LjMgMjYuNSAuNSAyLjYgMS44IDMuNCAyLjYgMy45em0zMi4yLTYuOGwtLjMgLjNjLTQuNyAuNS0xNC4xIDIuNC0yMi41IDQuMmwtLjMtLjMgLjgtNC4yYy0xLjYtNy45LTMuNC0xOC42LTUtMjYuMi0uMy0xLjgtLjgtMi45LTIuNi0zLjdsLjgtLjVjOS4yLTEuNiAyMC4yLTIuNCAyNC45LTIuNmwuMyAuM2MuNSAyLjQgLjggMy4xIDEuNiA1LjVsLS4zIC4zYy0xLjEtMS4xLTMuMy0zLjItMTYuMi0uOGwtLjMgLjNjLjMgMS42IDEgNi42IDEuNiA5LjlsLjMgLjNjOS41LTEuNyA0LjgtLjEgMTAuNy0yLjRsLjMgMGMwIDEuNi0uMyAxLjgtLjMgNS4ybC0uMyAwYy00LjgtMS0yLjItLjktMTAuMiAwbC0uMyAuM2MuMyAyLjEgMS42IDkuNCAyLjEgMTIuNmwuMyAuM2MxLjIgLjQgMTQuMi0uNiAxNi4yLTQuN2wuMyAwYy0uNSAyLjQtMSA0LjItMS42IDZ6bTEwLjctNDQuNWMtNC41IDIuNC04LjEgMi45LTExIDIuOS0uMiAwLTExLjQgMS4xLTE3LjUtMTAtNi43LTEwLjgtMS0yNS4yIDUuNS0zMS43IDguOC04LjEgMjMuNC0xMC4xIDI4LjUtMTcgOC0xMC4zLTEzLTIyLjMtMjkuNi01LjhsLTIuNi0yLjkgNS4yLTE2LjJjMjUuNi0xLjYgNDUuMi0zIDUwIDE2LjIgLjggMy4xIDAgOS40LS4zIDEyLjEgMCAyLjYtMS44IDE4LjgtMi4xIDIzLS41IDQuMi0uOCAxOC4zLS44IDIwLjcgLjMgMi40IC41IDQuMiAxLjYgNS41IDEuNiAxLjggNS44IDEuOCA1LjggMS44bC0uOCA0LjdjLTExLjgtMS4xLTEwLjMtLjYtMjAuNC0xLTMuMi01LjEtMi4yLTMuMy00LjItNy45IDAgMC00LjIgMy45LTcuMyA1LjV6TTQ0My45IDI4MWMtNi40LTEwLjYtMTkuOC03LjItMjEuNyA1LjUtMi42IDE3LjEgMTQuMyAxOS44IDIwLjcgMTAuMmwuMyAuM2MtLjUgMS44LTEuOCA2LTEuOCA2LjNsLS41IC41Yy0xMC4zIDYuOS0yOC41LTIuNS0yNS43LTE4LjYgMS45LTEwLjkgMTQuNC0xOC45IDI4LjgtOS45bC4zIC41YzAgMS4xLS4zIDMuNC0uMyA1LjN6bTUuOC04Ny43bDAtNi42Yy43IDAgMTkuNiAzLjMgMjcuOCA3LjNsLTEuNiAxNy41czEwLjItOS40IDE1LjQtMTAuN2M1LjItMS42IDE0LjkgNy4zIDE0LjkgNy4zbC0xMS4zIDExLjNjLTEyLjEtNi40LTE5LjYtLjEtMjAuNyAuOC01LjMgMzguNy04LjYgNDIuMiA0LjQgNDYuMWwtLjUgNC43Yy0xNy42LTQuMy0xOC41LTQuNS0zNi45LTcuM2wuOC00LjdjNy4zIDAgNy41LTUuMyA3LjYtNi44IDAgMCA1LTUzLjIgNS01NS4zIDAtMi45LTUtMy43LTUtMy43em0xMSAxMTQuNGMtOC4xLTIuMS0xNC4xLTExLTEwLjctMjAuNyAzLjEtOS40IDEyLjMtMTIuMyAxOC45LTEwLjIgOS4yIDIuNiAxMi44IDExLjggMTAuNyAxOS40LTIuNiA4LjktOS40IDEzLjktMTguOSAxMS41em00Mi4yIDkuN2MtMi40LS41LTcuMS0yLjQtOC42LTIuOWwwLS4zIDEuNi0xLjhjLjYtOC4yIC42LTcuMyAuMy03LjYtNC44LTEuOC02LjctMi40LTcuMS0yLjQtMS4zIDEuOC0yLjkgNC41LTMuNyA1LjVsLS44IDMuNCAwIC4zYy0xLjMtLjMtMy45LTEuMy02LTEuNmwwLS4zIDIuNi0xLjhjMy40LTQuNyAxMC0xNC4xIDEzLjktMjAuMmwwLTIuMSAuNS0uM2MyLjEgLjggNS41IDIuMSA3LjYgMi45IC41IC41IC4yLTEuOS0xIDI1LjEtLjIgMS44IDAgMi42IC44IDMuOXptLTQuNy04OS44YzExLjMtMTguMyAzMC44LTE2LjIgMzQtMy40bDcuNi0yNi4yYzIuMy02LjItMi44LTkuOS00LjUtMTEuM2wxLjgtMy43YzEyLjIgMTAuNCAxNi40IDE0IDIyLjUgMjAuNC0yNS45IDczLjEtMzAuOCA4MC44LTI0LjYgODQuM2wtMS44IDQuNGMtNi40LTMuMy04LjktNC40LTE3LjgtOC42bDIuMS02LjhjLS4zLS4zLTMuOSAzLjktOS43IDMuNy0xOS4xLTEuMy0yMi45LTMxLjctOS43LTUyLjl6bTI5LjMgNzkuM2MwLTUuNy02LjMtNy45LTcuOS01LjItMS4zIDIuMSAxIDUgMi45IDguNCAxLjYgMi42IDIuNiA2LjMgMSA5LjQtMi42IDYuMy0xMi40IDUuMy0xNS40LS44IDAtLjctLjMgLjEgMS44LTQuN2wuOC0uM2MtLjYgNS43IDYuMSA5LjYgOC40IDUgMS0yLjEtLjUtNS41LTIuMS04LjQtMS42LTIuNi0zLjctNi4zLTEuOC05LjcgMi43LTUuMSAxMS4zLTQuNSAxNC43IDIuNGwwIC41LTIuNCAzLjR6bTIxLjIgMTMuNGMtMi0zLjMtLjktMi4xLTQuNS00LjdsLS4zIDBjLTIuNCA0LjItNS44IDEwLjUtOC42IDE2LjItMS4zIDIuNC0xIDMuNC0uOCAzLjlsLS4zIC4zLTUuOC00LjQgLjMtLjMgMi4xLTEuM2MzLjEtNS44IDYuNi0xMi4xIDkuMi0xN2wwLS4zYy0yLjYtMi0xLjItMS41LTYtMS44bDAtLjMgMy4xLTMuNCAuMyAwYzMuNyAyLjQgMTAgNi44IDEyLjMgOC45bC4zIC4zLTEuMyAzLjl6TTU3NS44IDI3NmwtMi45LTIuOWMuOC0yLjQgMS44LTUgMi4xLTcuNiAuNy05LjctMTEuNS0xMS44LTExLjUtNSAwIDUgNy45IDE5LjQgNy45IDI3LjggMCAxMC4yLTUuOCAxNS43LTEzLjkgMTYuNS04LjQgLjgtMjAuMi0xMC41LTIwLjItMTAuNWw1LTE0LjQgMi45IDIuMWMtMyAxNy44IDE3LjcgMjAuNCAxMy4zIDUuMi0xLjEtNC0xOC43LTM0LjIgMi4xLTM4LjIgMTMuNi0yLjQgMjMgMTYuNSAyMyAxNi41TDU3NS44IDI3NnptMzUuNi0xMC4yYy0xMS0zMC40LTYwLjUtMTI3LjUtMTkyLTEyOS42LTUzLjQtMS05NC4zIDE1LjQtMTMyLjggMzhsODUuNi05LjItOTEuNCAyMC43IDI1LjEgMTkuNi0zLjktMTYuNWM3LjUtMS43IDM5LjEtOC41IDY2LjgtOC45bC0yMi4zIDgwLjRjMTMuNi0uNyAxOS05IDE5LjYtMjIuOGw1LTEgLjMgMjYuN2MtMjIuNSAzLjItMzcuMyA2LjctNDkuNSA5LjlsMTMuMS00My4yLTYxLjUtMzYuNyAyLjQgOC4xIDEwLjIgNWM2LjMgMTguNiAxOS40IDU2LjYgMjAuNCA1OC43IDIgNC4zIDMuMiA1LjggMTIgNC41bDEuMSA1Yy0xNi4xIDQuOS0yMy43IDcuNi0zOSAxNC40bC0yLjQtNC43YzQuNC0yLjkgOC43LTMuOSA1LjUtMTIuOC0yMy43LTYyLjUtMjEuNS01OC4xLTIyLjgtNTkuNGwyLjQtNC40IDMzLjUgNjcuM2MtMy44LTExLjkgMS43IDEuNy0zMy03OC44bC00MS45IDg4LjUgNC43LTEzLjktMzUuOS00Mi4yIDI3LjggOTMuNS0xMS44IDguNGMtMTExLjktMTAxLjctMTA1LjgtOTguNC0xMTMuNy05OC43LTUuNS0uMy0xMy42IDUuNS0xMy42IDUuNWwtNS02YzMwLjYtMjMuNSAzMS42LTI0LjMgNTguNC00Mi43bDQuMiA3LjFzLTUuOCA0LjItNy45IDcuMWMtNS45IDkuMyAxLjcgMTMuMyA2MS44IDc1LjdsLTE4LjgtNTguOSAzOS44LTEwLjIgMjUuNyAzMC42IDQuNC0xMi4zLTUtMjQuNiAxMy4xLTMuNCAuNSAzLjEgMy43LTEwLjUtOTQuMyAyOS4zIDExLjMtNS0xMy42LTQyLjQgMTcuMy05LjIgMzAuMSAzNi4xIDI4LjUtMTMuMWMtMS40LTcuNS0yLjUtMTQuNS00LjctMTkuNmwxNy4zIDEzLjkgNC43LTIuMS01OS4yLTQyLjcgMjMuMSAxMS41YzE5LTYuMSAyNS4yLTcuNSAzMi4yLTkuN2wyLjYgMTFjLTEyLjYgMTIuNiAxLjQgMTYuOCA2LjUgMTkuNGwtMTMuNi02MSAxMiAyOC4zYzQuMi0xLjMgNy4zLTIuMSA3LjMtMi4xbDIuNiA4LjZzLTMuMSAxLTYuMyAyLjFsOC45IDIxIDMzLjgtNjUuNy0yMC43IDYxYzQyLjQtMjQuMSA4MS40LTM2LjcgMTMyLTM1LjkgNjcgMSAxNjcuMyA0MC44IDE5OS44IDEzOS44IC44IDIuMSAwIDIuNi0uOCAuM3ptLTQwOC0xMTMuNHMxLjgtLjUgNC4yLTEuM2w5LjQgNy42Yy0uNCAwLTMuNC0uMy0xMS4zIDIuNGwtMi40LTguNnptMTQzLjggMzguNWMtMS42LS42LTI2LjUtNC44LTMzLjMgMjAuN2wyMS43IDE3IDExLjUtMzcuN3pNMzE4LjQgNjcuMWMtNTguNCAwLTEwNi4xIDEyLTExNSAxNC40bDAgLjhjOC40IDIuMSAxNC40IDQuMiAyMS4yIDExLjhsMS42IC4zYzYuNi0xLjggNDktMTMuOSAxMTAuMi0xMy45IDE4MC4yIDAgMzAxLjcgMTE2LjggMzAxLjcgMjIzLjRsMCAxMGMwIDEuMyAuOCAyLjYgMS4xIC41IC41LTIuMSAuOC04LjYgLjgtMTkuNiAuMy04My44LTk2LjYtMjI3LjYtMzIxLjYtMjI3LjZ6TTUyOS41IDIzNi44YzEuMy01LjggMC0xMi4zLTcuMy0xMy4xLTkuNi0xLjEtMTYuMSAyMy44LTE3IDMzLjUtLjggNS41LTEuMyAxNC45IDYgMTQuOSA0LjcgMCA5LjctLjkgMTguMy0zNS40ek00NjggMjc5LjdjLTIuNi0uOC05LjQtLjgtMTIuNiAxMC41LTEuOCA2LjggLjUgMTMuNCA2IDE0LjcgMy43IDEuMSA4LjkgLjUgMTEuOC0xMC43IDIuNi05LjktMS44LTEzLjYtNS4yLTE0LjR6bTIzIDIxYzEuOCAuNSAzLjEgMSA1LjggMS44IDAtMS44IC41LTguNCAuOC0xMi4xLTEgMS4zLTUuNSA4LjEtNi42IDEwbDAgLjN6Il19LEdsdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJjcmVhdGl2ZS1jb21tb25zLW5kIixpY29uOls1MTIsNTEyLFtdLCJmNGViIiwiTTI1NS42IDhDMzk3LjQgOCA1MDQgMTE4LjEgNTA0IDI1NiA1MDQgNDAzLjEgMzg1LjUgNTA0IDI1NS42IDUwNCAxMjEuNiA1MDQgOCAzOTQuNSA4IDI1NiA4IDEyMy4xIDExMi43IDggMjU1LjYgOHptLjggNDQuN2MtMTE4LjIgMC0yMDMuNyA5Ny45LTIwMy43IDIwMy4zIDAgMTA5LjggOTEuMiAyMDIuOCAyMDMuNyAyMDIuOCAxMDMuMiAwIDIwMi44LTgxLjEgMjAyLjgtMjAyLjggLjEtMTEzLjgtOTAuMi0yMDMuMy0yMDIuOC0yMDMuM3ptOTQgMTQ0LjNsMCA0Mi41LTE4MC4zIDAgMC00Mi41IDE4MC4zIDB6bTAgNzkuOGwwIDQyLjUtMTgwLjMgMCAwLTQyLjUgMTgwLjMgMHoiXX0sWWx0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6InVzcHMiLGljb246WzUxMiw1MTIsW10sImY3ZTEiLCJNNDI4LjMgMjQxLjdjMjUuOC00MS4zIDE1LjItNDguOC0xMS43LTQ4LjhsLTI3IDBjLS4xIDAtMS41LTEuNC0xMC45IDgtMTEuMiA1LjYtMzcuOSA2LjMtMzcuOSA4LjcgMCA0LjUgNzAuMy0zLjEgODguMSAwIDkuNSAxLjUtMS41IDIwLjQtNC40IDMyLS41IDQuNSAyLjQgMi4zIDMuOCAuMXpNMzE2LjIgMjY0LjNjNjQtMjEuMyA5Ny4zLTIzLjkgMTAyLTI2LjIgNC40LTIuOS00LjQtNi42LTI2LjItNS44LTUxLjcgMi4yLTEzNy42IDM3LjEtMTcyLjYgNTMuOWwtMzAuNy05My4zIDE5Ni42IDBjLTIuNy0yOC4yLTE1Mi45LTIyLjYtMzM3LjktMjIuNkwtNSA0MTUuOGMxOTYuNC05Ny4zIDI1OC45LTEzMC4zIDMyMS4yLTE1MS41ek02Mi43IDk2YzI1My4zIDUzLjcgMzMwIDY1LjcgMzMyLjEgODUuMiAzNi40IDAgNDUuOSAwIDUyLjQgNi42IDIxLjEgMTkuNy0xNC42IDY3LjctMTQuNiA2Ny43LTQuNCAyLjktNDA2LjQgMTYwLjItNDA2LjQgMTYwLjJMNDQ5LjMgNDE1LjcgNTE3IDk2IDYyLjcgOTZ6Il19LFpsdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJzcXVhcmUtbGV0dGVyYm94ZCIsaWNvbjpbNDQ4LDUxMixbXSwiZTYyZSIsIk0zODQgMzJjMzUuMyAwIDY0IDI4LjcgNjQgNjRsMCAzMjBjMCAzNS4zLTI4LjcgNjQtNjQgNjRMNjQgNDgwYy0zNS4zIDAtNjQtMjguNy02NC02NEwwIDk2QzAgNjAuNyAyOC43IDMyIDY0IDMybDMyMCAwek0xMDUuMSAxODdDNjYuNCAxODcgMzUgMjE4LjMgMzUgMjU3czMxLjQgNzAgNzAuMSA3MGMyNC44IDAgNDYuNS0xMi44IDU5LTMyLjJsLjUtLjctLjQtLjZjLTYuNS0xMC42LTEwLjItMjMuMS0xMC4yLTM2LjUgMC0xMy42IDMuOS0yNi4zIDEwLjYtMzcuMS0xMi40LTE5LjgtMzQuNC0zMi45LTU5LjUtMzIuOXpNMjI0IDE4N2MtMjQuOCAwLTQ2LjUgMTIuOC01OSAzMi4ybC0uNSAuNyAuNCAuNmM2LjUgMTAuNiAxMC4yIDIzLjEgMTAuMiAzNi41IDAgMTMuNi0zLjkgMjYuMy0xMC42IDM3LjEgMTIuNCAxOS43IDM0LjQgMzIuOSA1OS41IDMyLjkgMjQuOCAwIDQ2LjUtMTIuOCA1OS0zMi4ybC41LS43LS40LS42Yy02LjUtMTAuNi0xMC4yLTIzLjEtMTAuMi0zNi41IDAtMTMuNiAzLjktMjYuMyAxMC42LTM3LjEtMTIuNC0xOS43LTM0LjQtMzIuOS01OS41LTMyLjl6bTExOC45IDBjLTI0LjggMC00Ni41IDEyLjgtNTkgMzIuMmwtLjUgLjcgLjQgLjZjNi41IDEwLjYgMTAuMiAyMy4xIDEwLjIgMzYuNSAwIDEzLjYtMy45IDI2LjMtMTAuNiAzNy4xIDEyLjQgMTkuOCAzNC40IDMyLjkgNTkuNSAzMi45IDM4LjcgMCA3MC4xLTMxLjMgNzAuMS03MHMtMzEuNC03MC03MC4xLTcweiJdfSxYbHQ9e3ByZWZpeDoiZmFiIixpY29uTmFtZToibWFuZGFsb3JpYW4iLGljb246WzM4NCw1MTIsW10sImY1MGYiLCJNMjAwLjYgNTExLjljLTEtMy4zLTEuNy0xNS44LTEuNC0yNC42IC42LTE1LjkgMS0yNC43IDEuNC0yOC44IC42LTYuMiAyLjktMjAuNyAzLjMtMjEuNCAuNi0xIC40LTI3LjktLjItMzMuMS0uMy0yLjYtLjYtMTEuOS0uNy0yMC43LS4xLTE2LjUtLjUtMjAuMS0yLjctMjQuOC0xLjEtMi4zLTEuMi0zLjgtMS0xMS40IC4yLTQuMiAuMS04LjUtLjMtMTIuNy0yLTEzLTMuNS0yNy43LTMuMi0zMy45cy40LTcuMSAyLjEtOS43YzMuMS00LjcgNi41LTE0IDguNi0yMy4zIDIuMy05LjkgMy45LTE3LjIgNC42LTIwLjcgMS4xLTUuMSAyLjYtMTAuMSA0LjQtMTUuMSAyLjMtNi4yIDIuNS0xNS40IC40LTE1LjQtLjMgMC0xLjQgMS4yLTIuNCAyLjdzLTQuOCA0LjgtOC4zIDcuNGMtOC40IDYuMS0xMS43IDkuNC0xMi43IDEyLjZzLTEgNy4yLS4yIDcuOGMuMyAuMiAxLjMgMi40IDIuMSA0LjkgMS42IDUgMS45IDEwLjMgLjcgMTUuNC0uNCAxLjgtMSA1LjUtMS41IDguMnMtMSA2LjUtMS4zIDguMmMtLjIgMS41LS43IDMtMS41IDQuMy0xIDEtMS4xIC45LTIuMS0uNS0uNy0xLjUtMS4yLTMuMS0xLjQtNC43LS4yLTEuNy0xLjYtNy4xLTMuMS0xMS45LTMuMy0xMC45LTMuNS0xNi4yLTEtMjEgLjgtMS40IDEuNC0zIDEuNy00LjYgMC0yLjQtMi4yLTUuMy03LjQtOS45LTctNi4yLTguNi03LjktMTAuMi0xMS4zLTEuNy0zLjYtMy4xLTQuMS00LjUtMS41LTEuOCAzLTIuNiA5LjEtMyAyMmwtLjMgMTIuMiAyIDIuMmMzLjIgMy43IDEyLjEgMTYuNSAxMy44IDE5LjggMy40IDYuNyA0LjMgMTEuNyA0LjQgMjMuNnMxIDIyLjggMiAyNC43Yy40IC43IC41IDEuNCAuMyAxLjVzLjQgMi4xIDEuMyA0LjNjMSAyLjkgMS43IDUuOSAyLjEgOSAuNCAzLjUgLjkgNyAxLjcgMTAuNCAyLjIgOS42IDIuOCAxNC4xIDIuNCAyMC4xLS4yIDMuMy0uNSAxMS4xLS43IDE3LjMtMS4zIDQxLjgtMS44IDU4LTIgNjEuMi0uMSAyLS40IDExLjUtLjYgMjEuMS0uNCAxNi4zLTEuMyAyNy40LTIuNCAyOC42LS42IC43LTguMS00LjktMTIuNS05LjUtMy44LTMuOS00LTQuOC0yLjgtOS45IC43LTMgMi4zLTE4LjMgMy4zLTMyLjYgLjQtNC44IC44LTEwLjUgMS0xMi43IC44LTkuNCAxLjctMjAuMyAyLjYtMzQuOCAuNi04LjUgMS4zLTE2LjQgMS43LTE3LjdzLjktOS45IDEuMS0xOS4xbC40LTE2LjgtMi4zLTQuM2MtMS43LTMuMy00LjktNi45LTEzLjItMTUuMy02LTYuMS0xMS44LTEyLjMtMTIuOS0xMy44bC0yLTIuOCAuOC0xMC45YzEuMS0xNS43IDEuMS00OC42IDAtNTkuMWwtLjktOC43LTMuMy00LjVjLTUuOS04LjEtNS44LTcuNy02LjItMzMuMy0uMS02LjEtLjQtMTEuNS0uNi0xMi4xLS44LTEuOS0zLTIuNy04LjUtMy04LjktLjYtMTEtMS45LTIzLjgtMTQuNi02LjItNi0xMi4zLTEyLTEzLjgtMTMuMi0yLjgtMi40LTIuOC0yLS42LTkuNmwxLjQtNC42LTEuNy0zYy0uOC0xLjQtMS42LTIuOC0yLjYtNC4xLTEuMy0xLjUtNS41LTEwLjktNi0xMy41LS4yLS43LS4yLTEuNC0uMS0yLjFzLjUtMS4zIC45LTEuOGMyLjItMi45IDMuNC01LjcgNC41LTEwLjcgMi4zLTExLjIgNy43LTI2LjEgMTAuNi0yOS4yIDMuMi0zLjUgNy43LTEgOS40IDUgMS4zIDQuOCAxLjQgOS44IC4xIDE4LjYtLjUgMy43LS45IDcuNC0xIDExLjEgMCA0IC4yIDQuNyAyLjMgNy40IDMuMyA0LjQgNy43IDcuNCAxNS4yIDEwLjUgMS43IC43IDMuMyAxLjcgNC43IDIuOCAxMS4yIDEwLjcgMTguNiAxNi4yIDIyLjkgMTYuOSA1LjIgLjggOCA0LjUgMTAgMTMuNCAxLjMgNS43IDQgMTEuMSA1LjUgMTEuMSAxLjItLjIgMi4zLS43IDMuMy0xLjQgMi0xLjIgMi4yLTEuNyAyLjItNC4yLS4zLTYtLjktMTEuOS0yLTE3LjgtLjQtMS43LS44LTQuMS0uOS01LjRzLS42LTMuOC0xLTUuN2MtMi42LTExLjItMy42LTE1LjUtNC4xLTE2LTEuNi0yLTQuMS0xMC4yLTQuOS0xNS45LTEuNi0xMS4xLTQtMTQuMi0xMi45LTE3LjQtNC45LTEuOC05LjQtNC41LTEzLjMtNy45LTEuMi0xLTQtMy4yLTYuNC01LjFzLTQuNC0zLjUtNC42LTMuOGMtLjgtLjctMS43LTEuNC0yLjctMi02LjItNC4yLTguOC03LTExLjMtMTJsLTIuNC01Yy0uMS04LjctLjMtMTcuMy0uNC0yNmw2LjktNi42YzQtMy44IDguNS03LjQgMTAuNi04LjQgMy4zLTEuNyA0LjQtMS45IDExLjQtMiA4LjUtLjIgMTAuMSAwIDExLjcgMS42czEuNCA2LjQtLjMgOC41Yy0uNiAuNy0xLjEgMS41LTEuMyAyLjMgMCAuNi0yLjYgNC45LTUuNCA5LTEuMSAyLjItMS45IDQuNS0yLjQgNi44IDIwLjQgMTMuNCAyMS42IDMuOCAxNC4xIDI5bDExLjQgMi41YzMuMS04LjcgNi41LTE3LjMgOC42LTI2LjIgLjMtNy42LTEyLTQuMi0xNS40LTguNy0yLjMtNS45IDMuMS0xNC4yIDYuMS0xOS4yIDEuNi0yLjMgNi42LTQuNyA4LjgtNC4xIC45IC4yIDQuMi0uNCA3LjQtMS4zIDIuNS0uOCA1LTEuMyA3LjUtMS43IDItLjIgNC4xLS43IDYtMS4zIDMuNy0xLjEgNC41LTEuMiA2LjMtLjQgMS45IC42IDMuOCAxLjEgNS44IDEuNCAyLjEgLjMgNC4xIC45IDYgMS45IDEuNiAuOSAzLjMgMS43IDUgMi4yIDIuNSAuNyAzIC42IDctMS43TDIyNiA1LjQgMjM2LjcgNWMxMC40LS40IDEwLjgtLjUgMTUuMy0yLjdMMjU2LjUgMCAyNTkgMS40YzEuOCAxIDMuMSAyLjcgNC45IDYgMi40IDQuNSAyLjQgNC42IDEuNCA3LjQtLjkgMi40LS45IDMuMy0uMSA2LjQgLjUgMiAxLjIgNCAyLjEgNS45IC42IDEuMyAxLjEgMi42IDEuMyA0IC4zIDQuMyAwIDUuMy0yLjQgNi45LTIuMiAxLjUtNyA3LjktNyA5LjMtLjIgMS0uNiAyLTEuMSAzLTUgMTEuNS02LjggMTMuNi0xNC4zIDE3LTkuMiA0LjItMTIuMyA1LjItMTYuMiA1LjItMy4xIDAtNCAuMi00LjUgMS4zLTEuMiAxLjQtMi41IDIuNy00LjEgMy43LTEuOCAxLjItMy4zIDIuOS00LjQgNC44LS41IDEuMi0xLjQgMi4yLTIuNSAyLjktLjkgLjQtMS44IDEtMi41IDEuNy0yLjIgMS45LTQuNiAzLjctNyA1LjQtMy4zIDIuMy02LjkgNS03LjkgNi0uNyAuNy0xLjUgMS4zLTIuNCAxLjctLjggLjQtMS42IC45LTIuMSAxLjYtMS4zIDEuNC0xLjUgMi4xLTEuMSA0LjYgLjMgMiAuOCA0IDEuNCA1LjkgMS4zIDMuOCAxLjMgNy45IDAgMTAuNnMtLjkgNi43IDEuNCA5LjZjMiAyLjYgMi4yIDQuNiAuNyA4LjgtLjggMi45LTEuMSA1LjktMS4xIDguOSAwIDQuOSAuMiA2LjMgMS41IDguNHMxLjggMi41IDMuMiAyLjNjMi0uMiAyLjMtMS4xIDQuNy0xMi4xIDIuMi0xMCAzLjctMTEuOSAxMy44LTE3LjEgMi45LTEuNSA3LjUtNCAxMC01LjRzNi44LTMuNyA5LjQtNC45YzUuOS0yLjYgMTEuMi02LjYgMTUuMi0xMS43IDcuMS04LjggMTAtMTYuMiAxMi44LTMzLjMgLjQtMi44IDEuMy01LjQgMi45LTcuNyAxLjQtMi4yIDIuNC00LjcgMi45LTcuMyAxLTUuMyAyLjktOS4xIDUuNi0xMS41IDQuNy00LjIgNi0xLjEgNC42IDEwLjktLjUgMy45LTEuMSAxMC4zLTEuNCAxNC40bC0uNiA3LjRjMyAyLjcgNS45IDUuNSA4LjkgOC4ybC4xIDguNGMuMSA0LjYgLjUgOS41IC45IDEwLjlsLjggMi41LTYuNCA2LjNjLTguNSA4LjMtMTIuOSAxMy45LTE2LjggMjEuNi0xLjggMy41LTMuNyA3LjEtNC40IDgtMi4yIDMuMS02LjUgMTMtOC44IDIwLjNsLTIuMyA3LjItNyA2LjVjLTMuOCAzLjYtOCA3LjItOS4yIDguMi0zIDIuMy00LjMgNS4xLTQuMyAxMC0uMSAyLjUgLjQgNSAxLjYgNy4zIC44IDEuNiAxLjUgMy4yIDIuMSA0LjggLjMgMSAuOSAyIDEuNiAyLjkgMS40IDEuNiAxLjkgMTYuMSAuOCAyMy4yLS43IDQuNS0zLjYgMTItNC43IDEyLTEuOCAwLTQuMSA5LjMtNS4xIDIwLjctLjIgMi0uNiA1LjktMSA4LjdzLTEgMTAtMS40IDE2Yy0uOCAxMi4yLS4yIDE4LjggMiAyMy4yIDMuNCA2LjcgLjUgMTIuNy0xMSAyMi44bC00IDMuNSAuMSA1LjJjLjEgMyAuNCA2IDEuMSA4LjkgNC42IDE2IDQuNyAxNi45IDQuNCAzNy4xLS41IDI2LjQtLjMgNDAuMyAuNiA0NC4yIC41IDIuMyAuOSA0LjYgMS4xIDcgLjIgMiAuNyA1LjMgMS4xIDcuNCAuNSAyLjMgLjggMTEgLjggMjIuN2wwIDE5LjEtMS44IDIuNmMtMi43IDMuOS0xNS4xIDEzLjUtMTUuNSAxMi4zbC4xIDB6bTI5LjUtNDUuMWMtLjItLjMtLjMtNi45LS4zLTE0LjYgMC0xNC4xLS45LTI3LjUtMi4zLTM0LjQtLjQtMi0uOC05LjctLjktMTcuMS0uMi0xMS45LTEuNC0yNC40LTIuNi0yNi40LS43LTEuMS0zLTE3LjctMy0yMS4zIDAtNC4yIDEtNiA1LjMtOS4xczQuOS0zLjEgNS41LS43Yy4zIDEuMSAxLjQgNS42IDIuNiAxMCAzLjkgMTUuMSA0LjEgMTYuMyA0IDIxLjctLjEgNS44LS4xIDYuMS0xLjcgMTcuNy0xIDcuMS0xLjIgMTIuNC0xIDI4LjQgLjIgMTkuNC0uNiAzNS43LTIgNDEuMy0uNyAyLjgtMi44IDUuNS0zLjQgNC40bC0uMSAwem0tNzEtMzcuNmMtLjgtMy42LTEuMy03LjItMS43LTEwLjhzLTEtNy4yLTEuNy0xMC44Yy0uNS0yLjEtLjktNC4zLTEtNi41LS4zLTMuMi0uOS03LjUtMS4zLTkuNS0xLTQuOC0zLjMtMTkuNC0zLjQtMjEuMSAwLS43LS4zLTQtLjctNy40LS43LTYuMi0uOC0yNy43LS4yLTI4LjMgMS0xIDYuNiAyLjggMTEuMyA3LjRsNS4zIDUuMy0uNCA2LjVjLS4yIDMuNi0uNiAxMC4yLS44IDE0LjgtLjUgMTMuMy0uNyA4LjctMS42IDI4LjQtLjggMTcuNC0xLjkgMzEuMy0yLjYgMzItLjEgLjEtLjIgLjEtLjIgLjJzLS4yIDAtLjMgMC0uMiAwLS4zLS4xLS4xLS4xLS4yLS4ybDAgMHpNNzIgMTYyLjZjMjEuMSAxMi44IDE3LjggMTQuMiAyOC41IDE3LjcgMTMgNC4zIDE4LjkgNy4xIDIzLjIgMTYuOS00My43IDM2LjEtNjkgNTcuOS03Ni43IDcwLjktMzEgNTItNiAxMDEuNiA2Mi44IDg3LjItMTQuMiAyOS4yLTc4IDI4LjYtOTguNy00LjktMjQuNy00MC0yMi4xLTExOC4zIDYxLTE4Ny43bDAgMHptMjEwLjggMTc5YzU2LjcgNi45IDgyLjMtMzcuNyA0Ni41LTg5LjIgMCAwLTI2LjktMjkuMy02NC4zLTY4IDMtMTUuNSA5LjUtMzIuMSAzMC42LTUzLjggODkuMiA2My41IDkyIDE0MS42IDkyLjUgMTQ5LjQgNC4zIDcwLjYtNzguNyA5MS4yLTEwNS4zIDYxLjdsMCAweiJdfSxhbmU9e3ByZWZpeDoiZmFiIixpY29uTmFtZToic2xhY2siLGljb246WzQ0OCw1MTIsWzYyNDQ3LCJzbGFjay1oYXNoIl0sImYxOTgiLCJNOTQuMSAzMTUuMWMwIDI1LjktMjEuMiA0Ny4xLTQ3LjEgNDcuMVMwIDM0MSAwIDMxNS4xIDIxLjIgMjY4IDQ3LjEgMjY4bDQ3LjEgMCAwIDQ3LjF6bTIzLjcgMGMwLTI1LjkgMjEuMi00Ny4xIDQ3LjEtNDcuMVMyMTIgMjg5LjIgMjEyIDMxNS4xbDAgMTE3LjhjMCAyNS45LTIxLjIgNDcuMS00Ny4xIDQ3LjFzLTQ3LjEtMjEuMi00Ny4xLTQ3LjFsMC0xMTcuOHptNDcuMS0xODljLTI1LjkgMC00Ny4xLTIxLjItNDcuMS00Ny4xUzEzOSAzMiAxNjQuOSAzMiAyMTIgNTMuMiAyMTIgNzkuMWwwIDQ3LjEtNDcuMSAwem0wIDIzLjdjMjUuOSAwIDQ3LjEgMjEuMiA0Ny4xIDQ3LjFTMTkwLjggMjQ0IDE2NC45IDI0NEw0Ny4xIDI0NEMyMS4yIDI0NCAwIDIyMi44IDAgMTk2LjlzMjEuMi00Ny4xIDQ3LjEtNDcuMWwxMTcuOCAwem0xODkgNDcuMWMwLTI1LjkgMjEuMi00Ny4xIDQ3LjEtNDcuMVM0NDggMTcxIDQ0OCAxOTYuOSA0MjYuOCAyNDQgNDAwLjkgMjQ0bC00Ny4xIDAgMC00Ny4xem0tMjMuNyAwYzAgMjUuOS0yMS4yIDQ3LjEtNDcuMSA0Ny4xUzIzNiAyMjIuOCAyMzYgMTk2LjlsMC0xMTcuOEMyMzYgNTMuMiAyNTcuMiAzMiAyODMuMSAzMnM0Ny4xIDIxLjIgNDcuMSA0Ny4xbDAgMTE3Ljh6bS00Ny4xIDE4OWMyNS45IDAgNDcuMSAyMS4yIDQ3LjEgNDcuMVMzMDkgNDgwIDI4My4xIDQ4MCAyMzYgNDU4LjggMjM2IDQzMi45bDAtNDcuMSA0Ny4xIDB6bTAtMjMuN2MtMjUuOSAwLTQ3LjEtMjEuMi00Ny4xLTQ3LjFTMjU3LjIgMjY4IDI4My4xIDI2OGwxMTcuOCAwYzI1LjkgMCA0Ny4xIDIxLjIgNDcuMSA0Ny4xcy0yMS4yIDQ3LjEtNDcuMSA0Ny4xbC0xMTcuOCAweiJdfSxGQT1hbmUsUWx0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImFuZ2VsbGlzdCIsaWNvbjpbMzg0LDUxMixbXSwiZjIwOSIsIk0zMTUuNiAyMTUuNGMxMS43LTMyLjYgNDUuNC0xMjYuOSA0NS40LTE1Ny4xIDAtMjYuNi0xNS43LTQ4LjktNDMuNy00OC45LTQ0LjYgMC04NC42IDEzMS43LTk3LjEgMTYzLjEtOS43LTI4LjUtNTUuMS0xNzIuNS05NS4xLTE3Mi41LTMxLjEgMC00NS43IDIyLjktNDUuNyA1MS43IDAgMzUuMyAzNC4yIDEyNi44IDQ2LjYgMTYyLTYuMy0yLjMtMTMuMS00LjMtMjAtNC4zLTIzLjQgMC00OC4zIDI5LjEtNDguMyA1Mi42IDAgOC45IDQuOSAyMS40IDggMjkuNy0zNi45IDEwLTUxLjEgMzQuNi01MS4xIDcxLjctLjEgNzIuMiA2OC4zIDE0OC42IDE2NC41IDE0OC42IDExOCAwIDE5MS40LTg4LjYgMTkxLjQtMjAyLjkgMC00My4xLTYuOS04Mi01NC45LTkzLjd6TTI4MC4yIDEwOGM0LTEyLjMgMjEuMS02NC4zIDM3LjEtNjQuMyA4LjYgMCAxMC45IDguOSAxMC45IDE2IDAgMTkuMS0zOC42IDEyNC42LTQ3LjEgMTQ4bC0zNC02IDMzLjEtOTMuN3pNMTEwLjggNDguM2MwLTExLjkgMTQuNS00NS43IDQ2LjMgNDcuMWwzNC42IDEwMC4zYy0xNS42LTEuMy0yNy43LTMtMzUuNCAxLjQtMTAuOS0yOC44LTQ1LjUtMTE5LjctNDUuNS0xNDguOHpNMTA4LjUgMjQ0YzI5LjMgMCA2Ny4xIDk0LjYgNjcuMSAxMDcuNCAwIDUuMS00LjkgMTEuNC0xMC42IDExLjQtMjAuOSAwLTc2LjktNzYuOS03Ni45LTk3LjcgLjEtNy43IDEyLjctMjEuMSAyMC40LTIxLjF6TTI5Mi44IDQzMC4zYy0yOS4xIDMyLTY2LjMgNDguNi0xMDkuNyA0OC42LTU5LjQgMC0xMDYuMy0zMi42LTEyOC45LTg4LjMtMTcuMS00My40IDMuOC02OC4zIDIwLjYtNjguMyAxMS40IDAgNTQuMyA2MC4zIDU0LjMgNzMuMSAwIDQuOS03LjcgOC4zLTExLjcgOC4zLTE2LjEgMC0yMi40LTE1LjUtNTEuMS01MS40LTI5LjcgMjkuNyAyMC41IDg2LjkgNTguMyA4Ni45IDI2LjEgMCA0My4xLTI0LjIgMzgtNDIgMy43IDAgOC4zIC4zIDExLjctLjYgMS4xIDI3LjEgOS4xIDU5LjQgNDEuNyA2MS43IDAtLjkgMi03LjEgMi03LjQgMC0xNy40LTEwLjYtMzIuNi0xMC42LTUwLjMgMC0yOC4zIDIxLjctNTUuNyA0My43LTcxLjcgOC02IDE3LjctOS43IDI3LjEtMTMuMSA5LjctMy43IDIwLTggMjcuNC0xNS40LTEuMS0xMS4yLTUuNy0yMS4xLTE2LjktMjEuMS0yNy43IDAtMTIwLjYgNC0xMjAuNi0zOS43IDAtNi43IC4xLTEzLjEgMTcuNC0xMy4xIDMyLjMgMCAxMTQuMyA4IDEzOC4zIDI5LjEgMTguMSAxNi4xIDI0LjMgMTEzLjItMzEgMTc0Ljd6bS05OC42LTEyNmM5LjcgMy4xIDE5LjcgNCAyOS43IDYtNy40IDUuNC0xNCAxMi0yMC4zIDE5LjEtMi44LTguNS02LjItMTYuOC05LjQtMjUuMXoiXX0sSmx0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImFuZHJvaWQiLGljb246WzU3Niw1MTIsW10sImYxN2IiLCJNNDIwLjUgMjUzLjlhMjQgMjQgMCAxIDEgMCA0OCAyNCAyNCAwIDEgMSAwLTQ4em0tMjY1LjEgMGEyNCAyNCAwIDEgMSAwIDQ4IDI0IDI0IDAgMSAxIDAtNDh6bTI3My43LTk2LjVsNDcuOS04M2MuOC0xLjEgMS4zLTIuNCAxLjUtMy44cy4yLTIuNy0uMS00LjEtLjktMi42LTEuNy0zLjctMS44LTItMy0yLjctMi41LTEuMS0zLjktMS4zLTIuNyAwLTQgLjQtMi41IDEuMS0zLjYgMS45LTEuOSAyLTIuNSAzLjJsLTQ4LjUgODQuMWMtMzguOC0xNy40LTgwLjgtMjYuNC0xMjMuMy0yNi40cy04NC41IDktMTIzLjMgMjYuNEwxMTYuMiA2NC40Yy0uNi0xLjItMS41LTIuMy0yLjUtMy4ycy0yLjMtMS41LTMuNi0xLjktMi43LS41LTQtLjQtMi43IC42LTMuOSAxLjMtMi4yIDEuNi0zIDIuNy0xLjQgMi40LTEuNyAzLjctLjMgMi43LS4xIDQuMSAuOCAyLjYgMS41IDMuOGw0Ny45IDgzQzY0LjUgMjAyLjIgOC4yIDI4NS41IDAgMzg0bDU3NiAwYy04LjItOTguNS02NC41LTE4MS44LTE0Ni45LTIyNi42eiJdfSxLbHQ9e3ByZWZpeDoiZmFiIixpY29uTmFtZToibWVldHVwIixpY29uOls1NzYsNTEyLFtdLCJmMmUwIiwiTTEzMS4xIDQxNC4zYzEuMSA1LjctMi4zIDExLjEtOCAxMi4zLTUuNCAxLjEtMTAuOS0yLjMtMTItOC0xLjEtNS40IDIuMy0xMS4xIDcuNy0xMi4zczExLjEgMi4zIDEyLjMgOHptMTQzLjEgNzEuNGMtNi4zIDQuNi04IDEzLjQtMy43IDIwIDQuNiA2LjYgMTMuNCA4LjMgMjAgMy43IDYuMy00LjYgOC0xMy40IDMuNC0yMC00LjItNi41LTEzLjEtOC4zLTE5LjctMy43em0tODYtNDYyLjNhMTEuOCAxMS44IDAgMSAwIC00LjktMjMgMTEuOCAxMS44IDAgMSAwIDQuOSAyM3pNNjYuNSAyMjYuM2EyMi4yIDIyLjIgMCAxIDAgLTI0LjcgMzYuOSAyMi4yIDIyLjIgMCAxIDAgMjQuNy0zNi45em0yNzItMTcwLjlhMjIuMSAyMi4xIDAgMSAwIC0yMi40LTM4IDIyLjEgMjIuMSAwIDEgMCAyMi40IDM4em0tMTkxLjEgNThhMTYuOSAxNi45IDAgMSAwIC0xOC44LTI4IDE2LjkgMTYuOSAwIDEgMCAxOC44IDI4em0zNzIuMyAxNTZjLTcuNCAxLjctMTIuMyA5LjEtMTAuNiAxNi45IDEuNCA3LjQgOC45IDEyLjMgMTYuMyAxMC42IDcuNC0xLjQgMTIuMy04LjkgMTAuNi0xNi42LTEuNS03LjQtOC45LTEyLjMtMTYuMy0xMC45em0zOS43LTU2LjhhMTAuMSAxMC4xIDAgMSAwIC0xOS44IDQuMyAxMC4xIDEwLjEgMCAxIDAgMTkuOC00LjN6bS04MC4zLTczLjdhMTguOCAxOC44IDAgMSAwIDIwLjcgMzEuMyAxOC44IDE4LjggMCAxIDAgLTIwLjctMzEuM3ptLTYuMyAxMzkuNGMyNi4zIDQzLjEgMTUuMSAxMDAtMjYuMyAxMjkuMS0xNy40IDEyLjMtMzcuMSAxNy43LTU2LjkgMTcuMS0xMiA0Ny4xLTY5LjQgNjQuNi0xMDUuMSAzMi42LTEuMSAuOS0yLjYgMS43LTMuNyAyLjktMzkuMSAyNy4xLTkyLjMgMTcuNC0xMTkuNC0yMi4zLTkuNy0xNC4zLTE0LjYtMzAuNi0xNS4xLTQ2LjktNjUuNC0xMC45LTkwLTk0LTQxLjEtMTM5LjctMjguMy00Ni45IC42LTEwNy40IDUzLjQtMTE0LjkgMjUuMS02Ni4yIDEwNy42LTk3LjYgMTYzLjYtNTQuMiA2Ny40LTIyLjMgMTM2LjMgMjkuNCAxMzAuOSAxMDEuMSA0MS4xIDEyLjYgNTIuOCA2Ni45IDE5LjcgOTUuMnptLTcwIDc0LjNjLTMuMS0yMC42LTQwLjktNC42LTQzLjEtMjcuMS0zLjEtMzIgNDMuNy0xMDEuMSA0MC0xMjgtMy40LTI0LTE5LjQtMjkuMS0zMy40LTI5LjQtMTMuNC0uMy0xNi45IDItMjEuNCA0LjYtMi45IDEuNy02LjYgNC45LTExLjctLjMtNi4zLTYtMTEuMS0xMS43LTE5LjQtMTIuOS0xMi4zLTItMTcuNyAyLTI2LjYgOS43LTMuNCAyLjktMTIgMTIuOS0yMCA5LjEtMy40LTEuNy0xNS40LTcuNy0yNC0xMS40LTE2LjMtNy4xLTQwIDQuNi00OC42IDIwLTEyLjkgMjIuOS0zOCAxMTMuMS00MS43IDEyNS4xLTguNiAyNi42IDEwLjkgNDguNiAzNi45IDQ3LjEgMTEuMS0uNiAxOC4zLTQuNiAyNS40LTE3LjQgNC03LjQgNDEuNy0xMDcuNyA0NC42LTExMi42IDItMy40IDguOS04IDE0LjYtNS4xIDUuNyAzLjEgNi45IDkuNCA2IDE1LjEtMS4xIDkuNy0yOCA3MC45LTI4LjkgNzcuNy0zLjQgMjIuOSAyNi45IDI2LjYgMzguNiA0IDMuNy03LjEgNDUuNy05Mi42IDQ5LjQtOTguMyA0LjMtNi4zIDcuNC04LjMgMTEuNy04IDMuMSAwIDguMyAuOSA3LjEgMTAuOS0xLjQgOS40LTM1LjEgNzIuMy0zOC45IDg3LjctNC42IDIwLjYgNi42IDQxLjQgMjQuOSA1MC42IDExLjQgNS43IDYyLjUgMTUuNyA1OC41LTExLjF6bTUuNyA5Mi4zYTIzLjMgMjMuMyAwIDEgMCAyNi4yIDM4LjQgMjMuMyAyMy4zIDAgMSAwIC0yNi4yLTM4LjR6Il19LGVjdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJmb250aWNvbnMtZmkiLGljb246WzM4NCw1MTIsW10sImYzYTIiLCJNMTE0LjQgMjI0bDkyLjQgMC0xNS4yIDUxLjItNzYuNCAwIDAgMTU3LjhjMCA4LTIuOCA5LjIgNC40IDEwbDU5LjYgNS42IDAgMzQuNC0xNzkuMiAwIDAtMzUuMiAyOS4yLTIuOGM3LjItLjggOS4yLTMuMiA5LjItMTAuOGwwLTE1NS44YzAtMy4yLTQtMy4yLTgtMy4ybC0zMC40IDAgMC01MS4yIDM4LjQgMCAwLTI4LjhjMC02OCAzNi40LTk2IDEwNi05NiA0Ni44IDAgODguOCAxMS4yIDg4LjggNzIuNEwxNjMuNiAxODBjLjQtMjUuNi02LTMxLjYtMjIuNC0zMS42LTI1LjIgMC0yNiAxMy42LTI2IDM3LjZsMCAzMmMwIDMuMi00LjggNi0uOCA2ek0zODQgNDgzbC0xNDAuOCAwIDAtMzQuNCAyOC0zLjZjNy4yLS44IDEwLjQtMi40IDEwLjQtMTBsMC0xNDhjMC01LjYtNC05LjItOS4yLTEwLjhsLTMzLjItOC44IDkuMi00MC40IDExMCAwIDAgMjA4YzAgOC0zLjYgOC44IDQgMTBsMjEuNiAzLjYgMCAzNC40ek0zNTQgMTM1LjhsMTIuNCA0NS42LTEwIDEwLTQyLjgtMjIuOC00Mi44IDIyLjgtMTAtMTAgMTIuNC00NS42LTMwLTM2LjQgNC44LTEwIDM4IDAgMjEuMi0zOC40IDEyLjggMCAyMS4yIDM4LjQgMzggMCA0LjggMTMuMi0zMCAzMy4yeiJdfSx0Y3Q9e3ByZWZpeDoiZmFiIixpY29uTmFtZToicGFsZmVkIixpY29uOls1NzYsNTEyLFtdLCJmM2Q4IiwiTTM4NC45IDE5My45YzAtNDcuNC01NS4yLTQ0LjItOTUuNC0yOS44LTEuMyAzOS40LTIuNSA4MC43LTMgMTE5LjggLjcgMi44IDIuNiA2LjIgMTUuMSA2LjIgMzYuOCAwIDgzLjQtNDIuOCA4My4zLTk2LjJ6TTE5MC40IDI2Ni4xYy4yIDAgNi41LTIuNyAxMS4yLTIuNyAyNi42IDAgMjAuNyA0NC4xLTE0LjQgNDQuMS0yMS41IDAtMzcuMS0xOC4xLTM3LjEtNDMgMC00MiA0Mi45LTk1LjYgMTAwLjctMTI2LjUgMS0xMi40IDMtMjIgMTAuNS0yOC4yIDExLjItOSAyNi42LTMuNSAyOS41IDExLjEgNzIuMi0yMi4yIDEzNS4yIDEgMTM1LjIgNzIgMCA3Ny45LTc5LjMgMTUyLjYtMTQwLjEgMTM4LjItLjEgMzkuNCAuOSA3NC40IDIuNyAxMDBsMCAuMmMuMiAzLjQgLjYgMTIuNS01LjMgMTkuMS05LjYgMTAuNi0zMy40IDEwLTM2LjQtMjIuMy00LjEtNDQuNCAuMi0yMDYuMSAxLjQtMjQyLjUtMjEuNSAxNS01OC41IDUwLjMtNTguNSA3NS45IC4yIDIuNSAuNCA0IC42IDQuNnpNOCAxODEuMXMtLjEgMzcuNCAzOC40IDM3LjRsMzAgMCAyMi40IDIxNy4yczAgNDQuMyA0NC43IDQ0LjNsMjg4LjkgMHM0NC43LS40IDQ0LjctNDQuM2wyMi40LTIxNy4yIDMwIDBzMzguNCAxLjIgMzguNC0zNy40YzAgMCAuMS0zNy40LTM4LjQtMzcuNGwtMzAuMSAwYy03LjMtMjUuNi0zMC4yLTc0LjMtMTE5LjQtNzQuM2wtMjggMCAwLTE5LjFzLTIuNy0xOC40LTIxLjEtMTguNGwtODUuOCAwUzIyNCAzMS45IDIyNCA1MC4zbDAgMTkuMS0yOC4xIDBzLTEwNSA0LjItMTIwLjUgNzQuM2wtMjkgMFM4IDE0Mi41IDggMTgxLjF6Il19LHJjdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJ3cGJlZ2lubmVyIixpY29uOls1MTIsNTEyLFtdLCJmMjk3IiwiTTQ2My4yIDMyMi40YzU2LjIgNjQuMyA0LjIgMTU3LjYtOTEuOSAxNTcuNi0zOS42IDAtNzguOC0xNy43LTEwMC4xLTUwLTYuOSAuNC0yMi43IC40LTI5LjYgMC0yMS40IDMyLjQtNjAuNiA1MC0xMDAuMSA1MC05NS41IDAtMTQ4LjMtOTMtOTEuOS0xNTcuNi03OS4xLTEzMS45IDMxLjMtMjkwLjQgMjA2LjgtMjkwLjQgMTc1LjYgMCAyODUuOSAxNTguNiAyMDYuOCAyOTAuNHptLTMzOS42LTgzbDQxLjUgMCAwLTU4LjEtNDEuNSAwIDAgNTguMXptMjE3LjIgODYuMWwwLTIzLjhjLTYwLjUgMjAuOS0xMzIuNCA5LjItMTg3LjYtMzRsLjIgMjQuOWM1MS4xIDQ2LjQgMTMxLjcgNTcuOSAxODcuMyAzMi45ek0xOTAgMjM5LjRsMTY2LjEgMCAwLTU4LjEtMTY2LjEgMCAwIDU4LjF6Il19LGljdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJkaWFzcG9yYSIsaWNvbjpbNDQ4LDUxMixbXSwiZjc5MSIsIk0yMTkuNyAzNTQuNmMtMS40IDAtODggMTE5LjktODguNyAxMTkuOVM0NC40IDQxNCA0NCA0MTMuMyAxMzAuNiAyODcuNSAxMzAuNiAyODUuOGMwLTIuMi0xMjkuNi00NC0xMzcuNi00Ny4xLTEuMy0uNSAzMS40LTEwMS44IDMxLjctMTAyLjEgLjYtLjcgMTQ0LjQgNDcgMTQ1LjUgNDcgLjQgMCAuOS0uNiAxLTEuMyAuNC0yIDEtMTQ4LjYgMS43LTE0OS42IC44LTEuMiAxMDQuNS0uNyAxMDUuMS0uMyAxLjUgMSAzLjUgMTU2LjEgNi4xIDE1Ni4xIDEuNCAwIDEzOC43LTQ3IDEzOS4zLTQ2LjMgLjggLjkgMzEuOSAxMDIuMiAzMS41IDEwMi42LS45IC45LTE0MC4yIDQ3LjEtMTQwLjYgNDguOC0uMyAxLjQgODIuOCAxMjIuMSA4Mi41IDEyMi45cy04NS41IDYzLjUtODYuMyA2My41Yy0xLS4yLTg5LTEyNS41LTkwLjktMTI1LjVsMCAweiJdfSxhY3Q9e3ByZWZpeDoiZmFiIixpY29uTmFtZToicHJvZHVjdC1odW50IixpY29uOls1MTIsNTEyLFtdLCJmMjg4IiwiTTMyNi4zIDIxOC44YzAgMjAuNS0xNi43IDM3LjItMzcuMiAzNy4ybC03MC4zIDAgMC03NC40IDcwLjMgMGMyMC41IDAgMzcuMiAxNi43IDM3LjIgMzcuMnpNOCAyNTZhMjQ4IDI0OCAwIDEgMSA0OTYgMCAyNDggMjQ4IDAgMSAxIC00OTYgMHptMzY3LjktMzcuMmMwLTQ3LjktMzguOS04Ni44LTg2LjgtODYuOGwtMTE5LjkgMCAwIDI0OCA0OS42IDAgMC03NC40IDcwLjMgMGM0Ny45IDAgODYuOC0zOC45IDg2LjgtODYuOHoiXX0sbmN0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6InNxdWFyZS11cHdvcmsiLGljb246WzQ0OCw1MTIsW10sImU2N2MiLCJNNTYgMzJsMzM2IDBjMzAuOSAwIDU2IDI1LjEgNTYgNTZsMCAzMzZjMCAzMC45LTI1LjEgNTYtNTYgNTZMNTYgNDgwYy0zMC45IDAtNTYtMjUuMS01Ni01NkwwIDg4QzAgNTcuMSAyNS4xIDMyIDU2IDMyek0yNzAuOSAyNzQuMmM2LjYtNTIuOSAyNS45LTY5LjUgNTEuNC02OS41IDI1LjMgMCA0NC45IDIwLjIgNDQuOSA0OS43cy0xOS43IDQ5LjctNDQuOSA0OS43Yy0yNy45IDAtNDYuMy0yMS41LTUxLjQtMjkuOXptLTI2LjctNDEuOGMtOC4yLTE1LjUtMTQuMy0zNi4zLTE5LjItNTUuNmwtNjIuOSAwIDAgNzguMWMwIDI4LjQtMTIuOSA0OS40LTM4LjIgNDkuNFM4NC4xIDI4My40IDg0LjEgMjU1bC4zLTc4LjEtMzYuMiAwIDAgNzguMWMwIDIyLjggNy40IDQzLjUgMjAuOSA1OC4yIDEzLjkgMTUuMiAzMi44IDIzLjIgNTQuOCAyMy4yIDQzLjcgMCA3NC4yLTMzLjUgNzQuMi04MS41bDAtNTIuNWM0LjYgMTcuMyAxNS40IDUwLjUgMzYuMiA3OS43bC0xOS4zIDExMC41IDM2LjggMCAxMi44LTc4LjRjNC4yIDMuNSA4LjcgNi42IDEzLjQgOS40IDEyLjMgNy44IDI2LjQgMTIuMiA0MC45IDEyLjZsMy40IDBjNDUuMSAwIDgwLjktMzQuOSA4MC45LTgxLjlzLTM1LjktODIuMi04MC45LTgyLjJjLTQ1LjQgMC03MC45IDI5LjctNzguMSA2MC4xbDAgLjJ6Il19LG9jdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJjdXR0bGVmaXNoIixpY29uOls0NDgsNTEyLFtdLCJmMzhjIiwiTTM0OCAzMDUuNWMtMTcuNSAzMS42LTU3LjQgNTQuNS05NiA1NC41LTU2LjYgMC0xMDQtNDcuNC0xMDQtMTA0czQ3LjQtMTA0IDEwNC0xMDRjMzguNiAwIDc4LjUgMjIuOSA5NiA1NC41IDEzLjctNTAuOSA0MS43LTkzLjMgODctMTE3LjgtNDUuMy00OS42LTExMC41LTgwLjctMTgzLTgwLjctMTM3IDAtMjQ4IDExMS0yNDggMjQ4UzExNSA1MDQgMjUyIDUwNGM3Mi41IDAgMTM3LjctMzEuMSAxODMtODAuNy00NS4zLTI0LjUtNzMuMy02Ni45LTg3LTExNy44eiJdfSxzY3Q9e3ByZWZpeDoiZmFiIixpY29uTmFtZToibWVkYXBwcyIsaWNvbjpbMzIwLDUxMixbXSwiZjNjNiIsIk0xMTguMyAyMzguNGMzLjUtMTIuNSA2LjktMzMuNiAxMy4yLTMzLjYgOC4zIDEuOCA5LjYgMjMuNCAxOC42IDM2LjYgNC42LTIzLjUgNS4zLTg1LjEgMTQuMS04Ni43IDktLjcgMTkuNyA2Ni41IDIyIDc3LjUgOS45IDQuMSA0OC45IDYuNiA0OC45IDYuNiAxLjkgNy4zLTI0IDcuNi00MCA3LjgtNC42IDE0LjgtNS40IDI3LjctMTEuNCAyOC00LjcgLjItOC4yLTI4LjgtMTcuNS00OS42bC05LjQgNjUuNWMtNC40IDEzLTE1LjUtMjIuNS0yMS45LTM5LjMtMy4zLS4xLTYyLjQtMS42LTQ3LjYtNy44bDMxLTV6TTIyOCA0NDhjMjEuMiAwIDIxLjItMzIgMC0zMkw5MiA0MTZjLTIxLjIgMC0yMS4yIDMyIDAgMzJsMTM2IDB6bS0yNCA2NGMyMS4yIDAgMjEuMi0zMiAwLTMybC04OCAwYy0yMS4yIDAtMjEuMiAzMiAwIDMybDg4IDB6bTM0LjItMTQxLjVjMy4yLTE4LjkgNS4yLTM2LjQgMTEuOS00OC44IDcuOS0xNC43IDE2LjEtMjguMSAyNC00MSAyNC42LTQwLjQgNDUuOS03NS4yIDQ1LjktMTI1LjUgMC04NS42LTcxLjgtMTU1LjItMTYwLTE1NS4yUzAgNjkuNiAwIDE1NS4yYzAgNTAuMiAyMS4zIDg1LjEgNDUuOSAxMjUuNSA3LjkgMTIuOSAxNiAyNi4zIDI0IDQxIDYuNyAxMi41IDguNyAyOS44IDExLjkgNDguOSAzLjUgMjEgMzYuMSAxNS43IDMyLjYtNS4xLTMuNi0yMS43LTUuNi00MC43LTE1LjMtNTguNi0zMi42LTYwLjQtNjYuMS05NS42LTY2LjEtMTUxLjcgMC02Ny45IDU3LTEyMy4yIDEyNy0xMjMuMlMyODcgODcuMyAyODcgMTU1LjJjMCA1Ni4xLTMzLjUgOTEuMy02Ni4xIDE1MS42LTkuNyAxOC0xMS43IDM3LjQtMTUuMyA1OC42LTMuNCAyMC42IDI5IDI2LjQgMzIuNiA1LjF6Il19LGxjdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJwaXgiLGljb246WzUxMiw1MTIsW10sImU0M2EiLCJNMjQyLjQgMjkyLjVjNS40LTUuNCAxNC43LTUuNCAyMC4xIDBsNzcgNzdjMTQuMiAxNC4yIDMzLjEgMjIgNTMuMSAyMmwxNS4xIDAtOTcuMSA5Ny4xYy0zMC4zIDI5LjUtNzkuNSAyOS41LTEwOS44IDBsLTk3LjUtOTcuNCA5LjMgMGMyMCAwIDM4LjktNy44IDUzLjEtMjJsNzYuNy03Ni43em0yMC4xLTczLjZjLTYuNCA1LjUtMTQuNiA1LjYtMjAuMSAwbC03Ni43LTc2LjdjLTE0LjItMTUuMS0zMy4xLTIyLTUzLjEtMjJsLTkuMyAwIDk3LjQtOTcuNGMzMC40LTMwLjMgNzkuNi0zMC4zIDEwOS45IDBsOTcuMiA5Ny4xLTE1LjIgMGMtMjAgMC0zOC45IDcuOC01My4xIDIybC03NyA3N3pNMTEyLjYgMTQyLjdjMTMuOCAwIDI2LjUgNS42IDM3LjEgMTUuNGw3Ni43IDc2LjdjNy4yIDYuMyAxNi42IDEwLjggMjYuMSAxMC44IDkuNCAwIDE4LjgtNC41IDI2LTEwLjhsNzctNzdjOS44LTkuNyAyMy4zLTE1LjMgMzcuMS0xNS4zbDM3LjcgMCA1OC4zIDU4LjNjMzAuMyAzMC4zIDMwLjMgNzkuNSAwIDEwOS44bC01OC4zIDU4LjMtMzcuNyAwYy0xMy44IDAtMjcuMy01LjYtMzcuMS0xNS40bC03Ny03N2MtMTMuOS0xMy45LTM4LjItMTMuOS01Mi4xIC4xbC03Ni43IDc2LjZjLTEwLjYgOS44LTIzLjMgMTUuNC0zNy4xIDE1LjRsLTMxLjggMC01OC01OGMtMzAuMy0zMC4zLTMwLjMtNzkuNSAwLTEwOS44bDU4LTU4LjEgMzEuOCAweiJdfSxubmU9e3ByZWZpeDoiZmFiIixpY29uTmFtZToic3F1YXJlLXR1bWJsciIsaWNvbjpbNDQ4LDUxMixbInR1bWJsci1zcXVhcmUiXSwiZjE3NCIsIk00NDggOTZjMC0zNS4zLTI4LjctNjQtNjQtNjRMNjQgMzJDMjguNyAzMiAwIDYwLjcgMCA5NkwwIDQxNmMwIDM1LjMgMjguNyA2NCA2NCA2NGwzMjAgMGMzNS4zIDAgNjQtMjguNyA2NC02NGwwLTMyMHpNMjU2LjggNDE2Yy03NS41IDAtOTEuOS01NS41LTkxLjktODcuOWwwLTkwLTI5LjcgMGMtMy40IDAtNi4yLTIuOC02LjItNi4ybDAtNDIuNWMwLTQuNSAyLjgtOC41IDcuMS0xMCAzOC44LTEzLjcgNTAuOS00Ny41IDUyLjctNzMuMiAuNS02LjkgNC4xLTEwLjIgMTAtMTAuMmw0NC4zIDBjMy40IDAgNi4yIDIuOCA2LjIgNi4ybDAgNzIgNTEuOSAwYzMuNCAwIDYuMiAyLjggNi4yIDYuMmwwIDUxLjFjMCAzLjQtMi44IDYuMi02LjIgNi4ybC01Mi4xIDAgMCA4My4zYzAgMjEuNCAxNC44IDMzLjUgNDIuNSAyMi40IDMtMS4yIDUuNi0yIDgtMS40IDIuMiAuNSAzLjYgMi4xIDQuNiA0LjlMMzE4IDM4Ny4xYzEgMy4yIDIgNi43LS4zIDkuMS04LjUgOS4xLTMxLjIgMTkuOC02MC45IDE5Ljh6Il19LGNjdD1ubmUsZGN0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6InJlYWN0IixpY29uOls1MTIsNTEyLFtdLCJmNDFiIiwiTTQxOC4yIDE3Ny4yYy01LjQtMS44LTEwLjgtMy41LTE2LjItNS4xIC45LTMuNyAxLjctNy40IDIuNS0xMS4xIDEyLjMtNTkuNiA0LjItMTA3LjUtMjMuMS0xMjMuMy0yNi4zLTE1LjEtNjkuMiAuNi0xMTIuNiAzOC40LTQuMyAzLjctOC41IDcuNi0xMi41IDExLjUtMi43LTIuNi01LjUtNS4yLTguMy03LjctNDUuNS00MC40LTkxLjEtNTcuNC0xMTguNC00MS41LTI2LjIgMTUuMi0zNCA2MC4zLTIzIDExNi43IDEuMSA1LjYgMi4zIDExLjEgMy43IDE2LjctNi40IDEuOC0xMi43IDMuOC0xOC42IDUuOS01My40IDE4LjUtOTEuNyA0Ny43LTkxLjcgNzcuOSAwIDMxLjIgNDAuOCA2Mi41IDk2LjMgODEuNSA0LjUgMS41IDkgMyAxMy42IDQuMy0xLjUgNi0yLjggMTEuOS00IDE4LTEwLjUgNTUuNS0yLjMgOTkuNSAyMy45IDExNC42IDI3IDE1LjYgNzIuNC0uNCAxMTYuNi0zOS4xIDMuNS0zLjEgNy02LjMgMTAuNS05LjcgNC40IDQuMyA5IDguNCAxMy42IDEyLjQgNDIuOCAzNi44IDg1LjEgNTEuNyAxMTEuMiAzNi42IDI3LTE1LjYgMzUuOC02Mi45IDI0LjQtMTIwLjUtLjktNC40LTEuOS04LjktMy0xMy41IDMuMi0uOSA2LjMtMS45IDkuNC0yLjkgNTcuNy0xOS4xIDk5LjUtNTAgOTkuNS04MS43IDAtMzAuMy0zOS40LTU5LjctOTMuOC03OC40ek0yODIuOSA5Mi4zYzM3LjItMzIuNCA3MS45LTQ1LjEgODcuNy0zNiAxNi45IDkuNyAyMy40IDQ4LjkgMTIuOCAxMDAuNC0uNyAzLjQtMS40IDYuNy0yLjMgMTAtMjIuMi01LTQ0LjctOC42LTY3LjMtMTAuNi0xMy0xOC42LTI3LjItMzYuNC00Mi42LTUzLjEgMy45LTMuNyA3LjctNy4yIDExLjctMTAuN3pNMTY3LjIgMzA3LjVjNS4xIDguNyAxMC4zIDE3LjQgMTUuOCAyNS45LTE1LjYtMS43LTMxLjEtNC4yLTQ2LjQtNy41IDQuNC0xNC40IDkuOS0yOS4zIDE2LjMtNDQuNSA0LjYgOC44IDkuMyAxNy41IDE0LjMgMjYuMXpNMTM2LjkgMTg3LjJjMTQuNC0zLjIgMjkuNy01LjggNDUuNi03LjgtNS4zIDguMy0xMC41IDE2LjgtMTUuNCAyNS40LTQuOSA4LjUtOS43IDE3LjItMTQuMiAyNi02LjMtMTQuOS0xMS42LTI5LjUtMTYtNDMuNnptMjcuNCA2OC45YzYuNi0xMy44IDEzLjgtMjcuMyAyMS40LTQwLjZzMTUuOC0yNi4yIDI0LjQtMzguOWMxNS0xLjEgMzAuMy0xLjcgNDUuOS0xLjdzMzEgLjYgNDUuOSAxLjdjOC41IDEyLjYgMTYuNiAyNS41IDI0LjMgMzguN3MxNC45IDI2LjcgMjEuNyA0MC40Yy02LjcgMTMuOC0xMy45IDI3LjQtMjEuNiA0MC44LTcuNiAxMy4zLTE1LjcgMjYuMi0yNC4yIDM5LTE0LjkgMS4xLTMwLjQgMS42LTQ2LjEgMS42cy0zMC45LS41LTQ1LjYtMS40Yy04LjctMTIuNy0xNi45LTI1LjctMjQuNi0zOXMtMTQuOC0yNi44LTIxLjUtNDAuNnptMTgwLjYgNTEuMmM1LjEtOC44IDkuOS0xNy43IDE0LjYtMjYuNyA2LjQgMTQuNSAxMiAyOS4yIDE2LjkgNDQuMy0xNS41IDMuNS0zMS4yIDYuMi00NyA4IDUuNC04LjQgMTAuNS0xNyAxNS41LTI1LjZ6bTE0LjQtNzYuNWMtNC43LTguOC05LjUtMTcuNi0xNC41LTI2LjItNC45LTguNS0xMC0xNi45LTE1LjMtMjUuMiAxNi4xIDIgMzEuNSA0LjcgNDUuOSA4LTQuNiAxNC44LTEwIDI5LjItMTYuMSA0My40ek0yNTYuMiAxMTguM2MxMC41IDExLjQgMjAuNCAyMy40IDI5LjYgMzUuOC0xOS44LS45LTM5LjctLjktNTkuNSAwIDkuOC0xMi45IDE5LjktMjQuOSAyOS45LTM1Ljh6TTE0MC4yIDU3YzE2LjgtOS44IDU0LjEgNC4yIDkzLjQgMzkgMi41IDIuMiA1IDQuNiA3LjYgNy0xNS41IDE2LjctMjkuOCAzNC41LTQyLjkgNTMuMS0yMi42IDItNDUgNS41LTY3LjIgMTAuNC0xLjMtNS4xLTIuNC0xMC4zLTMuNS0xNS41LTkuNC00OC40LTMuMi04NC45IDEyLjYtOTR6TTExNS43IDMyMC42Yy00LjItMS4yLTguMy0yLjUtMTIuNC0zLjktMjEuMy02LjctNDUuNS0xNy4zLTYzLTMxLjItMTAuMS03LTE2LjktMTcuOC0xOC44LTI5LjkgMC0xOC4zIDMxLjYtNDEuNyA3Ny4yLTU3LjYgNS43LTIgMTEuNS0zLjggMTcuMy01LjUgNi44IDIxLjcgMTUgNDMgMjQuNSA2My42LTkuNiAyMC45LTE3LjkgNDIuNS0yNC44IDY0LjV6bTExNi42IDk4Yy0xNi41IDE1LjEtMzUuNiAyNy4xLTU2LjQgMzUuMy0xMS4xIDUuMy0yMy45IDUuOC0zNS4zIDEuMy0xNS45LTkuMi0yMi41LTQ0LjUtMTMuNS05MiAxLjEtNS42IDIuMy0xMS4yIDMuNy0xNi43IDIyLjQgNC44IDQ1IDguMSA2Ny45IDkuOCAxMy4yIDE4LjcgMjcuNyAzNi42IDQzLjIgNTMuNC0zLjIgMy4xLTYuNCA2LjEtOS42IDguOXptMjQuNS0yNC4zYy0xMC4yLTExLTIwLjQtMjMuMi0zMC4zLTM2LjMgOS42IC40IDE5LjUgLjYgMjkuNSAuNiAxMC4zIDAgMjAuNC0uMiAzMC40LS43LTkuMiAxMi43LTE5LjEgMjQuOC0yOS42IDM2LjR6bTEzMC43IDMwYy0uOSAxMi4yLTYuOSAyMy42LTE2LjUgMzEuMy0xNS45IDkuMi00OS44LTIuOC04Ni40LTM0LjItNC4yLTMuNi04LjQtNy41LTEyLjctMTEuNSAxNS4zLTE2LjkgMjkuNC0zNC44IDQyLjItNTMuNiAyMi45LTEuOSA0NS43LTUuNCA2OC4yLTEwLjUgMSA0LjEgMS45IDguMiAyLjcgMTIuMiA0LjkgMjEuNiA1LjcgNDQuMSAyLjUgNjYuM3ptMTguMi0xMDcuNWMtMi44IC45LTUuNiAxLjgtOC41IDIuNi03LTIxLjgtMTUuNi00My4xLTI1LjUtNjMuOCA5LjYtMjAuNCAxNy43LTQxLjQgMjQuNS02Mi45IDUuMiAxLjUgMTAuMiAzLjEgMTUgNC43IDQ2LjYgMTYgNzkuMyAzOS44IDc5LjMgNTggMCAxOS42LTM0LjkgNDQuOS04NC44IDYxLjR6TTI1NiAzMDEuOGE0NS44IDQ1LjggMCAxIDAgMC05MS42IDQ1LjggNDUuOCAwIDEgMCAwIDkxLjZ6Il19LHVjdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJodWdnaW5nLWZhY2UiLGljb246WzU3Niw1MTIsW10sImU4NjkiLCJNMjg2LjggOC4yYzEzMCAwIDIzNS40IDEwNS44IDIzNS40IDIzNi4zIDAgMTcuNy0xLjkgMzUtNS42IDUxLjctMS40IDYuNS0zLjEgMTIuOC01LjEgMTkuMSA2LjUtLjYgMTMgLjYgMTguNyAzLjUgMTIuNiA2LjUgMjAuMiAyMS43IDE4LjIgMzUuNy0uNyA0LjktMi40IDkuNC00LjggMTMuNSA1LjIgNC4yIDkgMTAuMSAxMC44IDE3LjEgMS40IDUuNSAyLjkgMTcuMS00LjggMjguOSA1LjggOS4yIDYuNiAyMC42IDIuMiAzMC42LTYuMiAxNC4xLTIxLjcgMjUuMy01MS43IDM3LjMtMzIuNSAxMy02Ny4xIDIxLjktMTAyLjMgMjEuOS0zMiAwLTU1LjktOC45LTcxLTI2LjQtMTMgMi4yLTI2LjMgMy40LTQwIDMuNC0xMi43IDAtMjUuMi0xLTM3LjMtMi45LTE1LjEgMTcuMi0zOC44IDI1LjktNzAuNiAyNS45LTM1LjEgMC03MC05LTEwMi40LTIxLjktMzAtMTItNDUuNS0yMy4xLTUxLjctMzcuMy00LjQtOS45LTMuNi0yMS40IDIuMi0zMC42LTcuNy0xMS45LTYuMy0yMy40LTQuOC0yOC45IDEuOC03IDUuNy0xMi45IDEwLjgtMTcuMS0yLjUtNC4xLTQuMS04LjYtNC44LTEzLjUtMS41LTEwLjQgMi0yMC43IDkuNy0yOS4yIDYuMS02LjcgMTUuMS0xMC4zIDI0LjItMTAuMi0xLjktNi4xLTMuNi0xMi40LTUtMTguNy0zLjctMTYuNy01LjctMzQtNS43LTUxLjggMC0xMzAuNSAxMDUuNC0yMzYuMyAyMzUuNC0yMzYuM3pNMTE3LjUgMzExYy0xMy04LjItMjIuMS0zLjYtMTkgMTMuNHM1Ny4yIDU4LjIgNTIgNjcuMmMtNS4yIDguOC0yMy41LTEwLjEtMjMuOC0xMC41IDAgMC01OC4yLTUzLjEtNzAuOC0zOS4zLTEyLjYgMTMuOCA5LjYgMjUuNCA0MS4zIDQ0LjdzMzQuMiAyNC40IDI5LjcgMzEuNy03NC41LTUyLTgxLjEtMjYuOGMtNi41IDI1LjEgNzEuNCAzMi40IDY2LjcgNDkuOC00LjggMTcuNC01NC45LTMyLjgtNjUuMi0xMy4zLTEwLjMgMTkuNiA3MC44IDQyLjYgNzEuNCA0Mi43IDI2LjIgNi44IDkyLjYgMjEuMyAxMTUuOS0xMi45IDE2LjctMjQuNiAxNS42LTQzLjEtNy40LTY2LjFzLTM2LjMtNTYuNy0zNi4zLTU2LjdjMC0uMi01LTE5LjUtMTYuMy0xNy44LTExLjQgMS44LTE5LjcgMzEgNC4xIDQ4LjkgMjMuOCAxNy45LTQuNyAzMC0xMy45IDEzLjMtOS4yLTE2LjgtMzQuMi01OS45LTQ3LjEtNjguMnptMzYwLjYgMTMuNGMzLjEtMTctNi4xLTIxLjYtMTktMTMuNC0xMyA4LjMtMzcuOSA1MS40LTQ3LjEgNjguMnMtMzcuNyA0LjYtMTMuOS0xMy4zIDE1LjQtNDcuMSA0LjEtNDguOS0xNi4zIDE3LjgtMTYuMyAxNy44Yy0uMSAuMi0xMy40IDMzLjctMzYuMyA1Ni43LTIyLjkgMjMtMjQuMSA0MS41LTcuNCA2Ni4xIDIzLjIgMzQuMiA4OS43IDE5LjcgMTE1LjkgMTIuOSAxLjUtLjQgODEuNi0yMy4zIDcxLjQtNDIuNy0xMC4zLTE5LjUtNjAuNCAzMC42LTY1LjMgMTMuMy00LjgtMTcuMyA3My4yLTI0LjYgNjYuNy00OS44LTYuNi0yNS4xLTc2LjYgMzQuMS04MS4xIDI2LjgtNC41LTcuMy0yLTEyLjQgMjkuNy0zMS43IDMxLjctMTkuMyA1NC0zMC45IDQxLjMtNDQuNy0xMi43LTEzLjgtNzAuOCAzOS4zLTcwLjggMzkuMy0uNCAuNC0xOC42IDE5LjMtMjMuOCAxMC41LTUuMy04LjkgNDguOS01MC4xIDUyLTY3LjJ6TTI4Ni44IDMyLjZjLTExNi42IDAtMjExLjEgOTQuOS0yMTEuMSAyMTEuOSAwIDE3LjEgMiAzMy44IDUuOCA0OS43IDAtLjEgLjEtLjEgLjItLjIgNi4xLTcuNCAxNC45LTExLjQgMjQuNy0xMS40IDE3LjcgMCAzMS4xIDExLjkgNDEuNSAyNC45IDYuOC05LjQgMTcuMS0xNSAyNy45LTE1IDIwLjcgMCAzMy4yIDE4LjEgMzcuOSAzNC4zIDIuMyA1LjUgMTMuNiAzMC41IDMwLjQgNDcuNCAyNS43IDI1LjggMzIuMiA1Mi40IDE5LjQgODAuOSAxNiAxLjggMzIuOCAxLjcgNDkuMi0uMy0xMi41LTI4LjQtNi01NC45IDE5LjYtODAuNiAxNi45LTE2LjkgMjguMS00MS45IDMwLjUtNDcuNCA0LjctMTYuMiAxNy4yLTM0LjMgMzcuOS0zNC4zIDEwLjkgMCAyMS4yIDUuNiAyNy45IDE1IDEwLjQtMTMgMjMuOC0yNC45IDQxLjUtMjQuOSA4LjcgMCAxNi42IDMuMSAyMi41IDguOSA1LTIyIDYuNC00NS44IDQuMS02OC43LTEwLjgtMTA2LjktMTAwLjctMTkwLjMtMjEwLTE5MC4zem0xLjUgMjM0LjJjNDMuNiAwIDc5LTQyIDc5LTE0LjUgMCAyNy40LTE5LjIgODAuOS03OC44IDgwLjktMTkuMiAwLTM0LjItNS41LTQ1LjgtMTMuOS0yMy4yLTE5LjQtMzMuNC00OC4yLTMzLjQtNjYuOSAwLTI3LjQgMzUuNCAxNC41IDc5IDE0LjV6bS0xMy4zIDI1Yy04LjIgMi40LTE1LjUgNi44LTIxLjUgMTIuNiAyMiAxMi44IDUwLjQgMTIuOSA3MS43LTEuMy01LjUtNC45LTEyLTguNy0xOS4xLTExLTUuMS0xLjYtMTAuNCAxNS44LTE2IDE1LjgtNS4yIDAtMTAuMy0xNy42LTE1LjEtMTYuMnpNMTQ3LjEgMjE1LjVhMTkuOCAxOS44IDAgMSAxIDAtMzkuNiAxOS44IDE5LjggMCAxIDEgMCAzOS42em0yODIuNCAwYTE5LjggMTkuOCAwIDEgMSAwLTM5LjYgMTkuOCAxOS44IDAgMSAxIDAgMzkuNnptLTI0NC01NS40YzcuOS0xNC45IDI2LjMtMjAuNSA0MS4xLTEyLjZzMjAuNCAyNi40IDEyLjYgNDEuMmMtMy43IDctMTUuNS00LjQtMjIuNC0xLjktNy43IDIuNy0xMC44IDE4LjctMTguNiAxNC42LTE0LjgtNy45LTIwLjQtMjYuNC0xMi42LTQxLjJ6bTE2NC40LTEyLjZjMTQuOC03LjkgMzMuMi0yLjMgNDEuMSAxMi42czIuMiAzMy4zLTEyLjYgNDEuMmMtNy44IDQuMi0xMC45LTExLjgtMTguNy0xNC42LTYuOS0yLjQtMTguNyA5LTIyLjQgMS45LTcuOS0xNC45LTIuMi0zMy4zIDEyLjYtNDEuMnoiXX0scGN0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6Imp4bCIsaWNvbjpbNDQ4LDUxMixbXSwiZTY3YiIsIk00MTIuMiAzMkwzNS44IDMyQzE2IDMyIDAgNDggMCA2Ny44TDAgNDQ0LjJDMCA0NjQgMTYgNDgwIDM1LjggNDgwbDM3Ni40IDBjMTkuOCAwIDM1LjgtMTYgMzUuOC0zNS44bDAtMzc2LjRDNDQ4IDQ4IDQzMiAzMiA0MTIuMiAzMnpNMzc4LjYgMzMzLjdjMCA0MC4yLTMyLjYgNzIuOC03Mi44IDcyLjhsLTIzNS42IDBjMC00MC4yIDMyLjYtNzIuOCA3Mi44LTcyLjhsMjM1LjYgMHptMC0xMTMuOWMwIDQwLjItMzIuNiA3Mi44LTcyLjggNzIuOGwtMjM1LjYgMGMwLTQwLjIgMzIuNi03Mi44IDcyLjgtNzIuOGwyMzUuNiAwem0wLTExMy45YzAgNDAuMi0zMi42IDcyLjgtNzIuOCA3Mi44bC0yMzUuNiAwYzAtNDAuMiAzMi42LTcyLjggNzIuOC03Mi44bDIzNS42IDB6Il19LGhjdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJzcXVhcmUtbGlua2VkaW4iLGljb246WzQ0OCw1MTIsW10sImU3ZDAiLCJNNjQgMzJDMjguNyAzMiAwIDYwLjcgMCA5NkwwIDQxNmMwIDM1LjMgMjguNyA2NCA2NCA2NGwzMjAgMGMzNS4zIDAgNjQtMjguNyA2NC02NGwwLTMyMGMwLTM1LjMtMjguNy02NC02NC02NEw2NCAzMnptNSAxNzAuMmw2Ni41IDAgMCAyMTMuOC02Ni41IDAgMC0yMTMuOHptNzEuNy02Ny43YTM4LjUgMzguNSAwIDEgMSAtNzcgMCAzOC41IDM4LjUgMCAxIDEgNzcgMHpNMzE3LjkgNDE2bDAtMTA0YzAtMjQuOC0uNS01Ni43LTM0LjUtNTYuNy0zNC42IDAtMzkuOSAyNy0zOS45IDU0LjlsMCAxMDUuOC02Ni40IDAgMC0yMTMuOCA2My43IDAgMCAyOS4yIC45IDBjOC45LTE2LjggMzAuNi0zNC41IDYyLjktMzQuNSA2Ny4yIDAgNzkuNyA0NC4zIDc5LjcgMTAxLjlsMCAxMTcuMi02Ni40IDB6Il19LGZjdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJjc3MiLGljb246WzQ0OCw1MTIsW10sImU2YTIiLCJNMzc2LjMgMzJMMCAzMiAwIDQwOC4zYzAgMTkgNy42IDM3LjIgMjEgNTAuN3MzMS43IDIxIDUwLjcgMjFsMzA0LjYgMGMxOSAwIDM3LjItNy42IDUwLjctMjFzMjEtMzEuNyAyMS01MC43bDAtMzA0LjZjMC0xOS03LjYtMzcuMi0yMS01MC43cy0zMS43LTIxLTUwLjctMjF6TTMzMi40IDQzMS40Yy03LjctOC41LTExLjctMjAuNy0xMi0zNi42bDMxLjMgMGMuMiAxNC4xIDUuMSAyMS4xIDE0LjggMjEuMWM0LjkgMCA4LjQtMS42IDEwLjUtNC43YzItMy4xIDMtOCAzLTE0LjhjMC01LjQtMS4zLTkuOS00LTEzLjRjLTMuNS00LjItOC4xLTcuNS0xMy4yLTkuNUwzNTEuMiAzNjhjLTEwLjMtNC45LTE3LjgtMTAuOC0yMi41LTE3LjZjLTQuNS02LjgtNi43LTE2LjMtNi43LTI4LjRjMC0xMy42IDQtMjQuNiAxMS44LTMzLjFjOC4xLTguNSAxOS4xLTEyLjcgMzMuMi0xMi43YzEzLjYgMCAyNC4xIDQuMiAzMS41IDEyLjVjNy41IDguNCAxMS41IDIwLjMgMTEuOCAzNS45bC0zMC4xIDBjLjItNS4xLS45LTEwLjItMy0xNC44Yy0xLjctMy40LTUtNS4xLTEwLTUuMWMtOC44IDAtMTMuMiA1LjItMTMuMiAxNS43YzAgNS4zIDEuMSA5LjQgMy4yIDEyLjZjMy4xIDMuNSA3IDYuMiAxMS40IDcuOGwxMS4xIDQuOWMxMS41IDUuMyAxOS43IDExLjcgMjQuOCAxOS40YzUuMSA3LjcgNy42IDE4IDcuNiAzMWMwIDE1LjUtNCAyNy40LTEyLjMgMzUuN2MtOC4yIDguMy0xOS41IDEyLjUtMzQuMSAxMi41cy0yNS42LTQuMi0zMy40LTEyLjd6bS0xMDEgMGMtNy43LTguNS0xMS43LTIwLjctMTItMzYuNmwzMS4zIDBjLjIgMTQuMSA1LjEgMjEuMSAxNC44IDIxLjFjNC45IDAgOC40LTEuNiAxMC40LTQuN2MyLTMuMSAzLTggMy0xNC44YzAtNS40LTEuMy05LjktMy45LTEzLjRjLTMuNS00LjItOC4xLTcuNS0xMy4yLTkuNUwyNTAuMiAzNjhjLTEwLjMtNC45LTE3LjgtMTAuOC0yMi41LTE3LjZjLTQuNS02LjgtNi43LTE2LjMtNi43LTI4LjRjMC0xMy42IDQtMjQuNiAxMS44LTMzLjFjOC4xLTguNSAxOS4xLTEyLjcgMzMuMi0xMi43YzEzLjYgMCAyNC4xIDQuMiAzMS40IDEyLjVjNy42IDguNCAxMS41IDIwLjMgMTEuOSAzNS45bC0zMC4xIDBjLjItNS4xLS45LTEwLjItMy0xNC44Yy0xLjctMy40LTUtNS4xLTEwLTUuMWMtOC44IDAtMTMuMiA1LjItMTMuMiAxNS43YzAgNS4zIDEuMSA5LjQgMy4yIDEyLjZjMy4xIDMuNSA3IDYuMiAxMS40IDcuOGwxMS4xIDQuOWMxMS41IDUuMyAxOS43IDExLjcgMjQuOCAxOS40YzUuMSA3LjcgNy42IDE4IDcuNiAzMWMwIDE1LjUtNC4xIDI3LjQtMTIuMyAzNS43cy0xOS41IDEyLjUtMzQuMSAxMi41cy0yNS42LTQuMi0zMy40LTEyLjd6bS0xMDUuNiAxLjFjLTguNC03LjctMTIuNS0xOS4yLTEyLjUtMzQuNWwwLTc1LjRjMC0xNS4yIDQuNC0yNi43IDEzLjItMzQuNmM4LjktNy44IDIwLjctMTEuOCAzNS4yLTExLjhjMTQuMSAwIDI1LjIgNCAzMy40IDEyYzguMyA4IDEyLjUgMjAgMTIuNSAzNS45bDAgNi0zMy4xIDAgMC01LjhjMC02LjEtMS4zLTEwLjctNC0xMy42Yy0xLjEtMS41LTIuNi0yLjctNC4zLTMuNXMtMy41LTEuMi01LjQtMS4xYy01LjQgMC05LjIgMS44LTExLjQgNS42Yy0yLjMgNS4yLTMuMyAxMC44LTMgMTYuNGwwIDY1LjVjMCAxMy43IDQuOCAyMC42IDE0LjQgMjAuOGM0LjUgMCA3LjktMS42IDEwLjItNC44YzIuNS00LjEgMy43LTguOCAzLjUtMTMuNmwwLTQuOSAzMy4xIDAgMCA1LjFjMCAxMC42LTIuMSAxOS41LTYuMiAyNi42Yy00IDYuOS05LjkgMTIuNS0xNy4xIDE2Yy03LjcgMy43LTE2LjEgNS41LTI0LjYgNS4zYy0xNC4yIDAtMjUuNS0zLjktMzMuOC0xMS42eiJdfSxtY3Q9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiaGFzaG5vZGUiLGljb246WzUxMiw1MTIsW10sImU0OTkiLCJNMzUuNyAxNzEuMWMtNDYuOSA0Ni00Ni45IDEyMi45IDAgMTY5LjhMMTcxLjYgNDc2LjhjNDYgNDYuOSAxMjIuOSA0Ni45IDE2OS44IDBMNDc3LjMgMzQwLjljNDYuOS00Ni45IDQ2LjktMTIzLjggMC0xNjkuOEwzNDEuNCAzNS4yYy00Ni45LTQ2LjktMTIzLjgtNDYuOS0xNjkuOCAwTDM1LjcgMTcxLjF6TTE5NiAxOTYuNWE4NC41IDg0LjUgMCAxIDEgMTIwIDExOSA4NC41IDg0LjUgMCAxIDEgLTEyMC0xMTl6Il19LGdjdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJyZWRkaXQtYWxpZW4iLGljb246WzUxMiw1MTIsW10sImYyODEiLCJNMzczIDEzOC42Yy0yNS4yIDAtNDYuMy0xNy41LTUxLjktNDEtMzAuNiA0LjMtNTQuMiAzMC43LTU0LjIgNjIuNGwwIC4yYzQ3LjQgMS44IDkwLjYgMTUuMSAxMjQuOSAzNi4zIDEyLjYtOS43IDI4LjQtMTUuNSA0NS41LTE1LjUgNDEuMyAwIDc0LjcgMzMuNCA3NC43IDc0LjcgMCAyOS44LTE3LjQgNTUuNS00Mi43IDY3LjUtMi40IDg2LjgtOTcgMTU2LjYtMjEzLjIgMTU2LjZTNDUuNSA0MTAuMSA0MyAzMjMuNGMtMjUuNC0xMS45LTQzLTM3LjctNDMtNjcuNyAwLTQxLjMgMzMuNC03NC43IDc0LjctNzQuNyAxNy4yIDAgMzMgNS44IDQ1LjcgMTUuNiAzNC0yMS4xIDc2LjgtMzQuNCAxMjMuNy0zNi40bDAtLjNjMC00NC4zIDMzLjctODAuOSA3Ni44LTg1LjUgNC45LTI0LjIgMjYuMy00Mi40IDUyLjEtNDIuNCAyOS40IDAgNTMuMyAyMy45IDUzLjMgNTMuM3MtMjMuOSA1My4zLTUzLjMgNTMuM3pNMTU3LjUgMjU1LjNjLTIwLjkgMC0zOC45IDIwLjgtNDAuMiA0Ny45czE3LjEgMzguMSAzOCAzOC4xIDM2LjYtOS44IDM3LjgtMzYuOS0xNC43LTQ5LjEtMzUuNy00OS4xbC4xIDB6TTM5NSAzMDMuMWMtMS4yLTI3LjEtMTkuMi00Ny45LTQwLjItNDcuOXMtMzYuOSAyMi0zNS43IDQ5LjEgMTYuOSAzNi45IDM3LjggMzYuOSAzOS4zLTExIDM4LTM4LjFsLjEgMHptLTYwLjEgNzAuOGMxLjUtMy42LTEtNy43LTQuOS04LjEtMjMtMi4zLTQ3LjktMy42LTczLjgtMy42cy01MC44IDEuMy03My44IDMuNmMtMy45IC40LTYuNCA0LjUtNC45IDguMSAxMi45IDMwLjggNDMuMyA1Mi40IDc4LjcgNTIuNHM2NS44LTIxLjYgNzguNy01Mi40eiJdfSxPQT17cHJlZml4OiJmYWIiLGljb25OYW1lOiJ0aWt0b2siLGljb246WzQ0OCw1MTIsW10sImUwN2IiLCJNNDQ4LjUgMjA5LjljLTQ0IC4xLTg3LTEzLjYtMTIyLjgtMzkuMmwwIDE3OC43YzAgMzMuMS0xMC4xIDY1LjQtMjkgOTIuNnMtNDUuNiA0OC03Ni42IDU5LjYtNjQuOCAxMy41LTk2LjkgNS4zLTYwLjktMjUuOS04Mi43LTUwLjgtMzUuMy01Ni0zOS04OC45IDIuOS02Ni4xIDE4LjYtOTUuMiA0MC01Mi43IDY5LjYtNjcuNyA2Mi45LTIwLjUgOTUuNy0xNmwwIDg5LjljLTE1LTQuNy0zMS4xLTQuNi00NiAuNHMtMjcuOSAxNC42LTM3IDI3LjMtMTQgMjguMS0xMy45IDQzLjkgNS4yIDMxIDE0LjUgNDMuNyAyMi40IDIyLjEgMzcuNCAyNi45IDMxLjEgNC44IDQ2LS4xIDI4LTE0LjQgMzcuMi0yNy4xIDE0LjItMjguMSAxNC4yLTQzLjhsMC0zNDkuNCA4OCAwYy0uMSA3LjQgLjYgMTQuOSAxLjkgMjIuMiAzLjEgMTYuMyA5LjQgMzEuOSAxOC43IDQ1LjdzMjEuMyAyNS42IDM1LjIgMzQuNmMxOS45IDEzLjEgNDMuMiAyMC4xIDY3IDIwLjFsMCA4Ny40eiJdfSxiY3Q9e3ByZWZpeDoiZmFiIixpY29uTmFtZToid29yZHByZXNzIixpY29uOls1MTIsNTEyLFtdLCJmMTlhIiwiTTYxLjcgMTY5LjRsMTAxLjUgMjc4Yy03MS0zNC40LTExOS45LTEwNy4yLTExOS45LTE5MS40IDAtMzAuOSA2LjYtNjAuMSAxOC40LTg2LjZ6bTMzNy45IDc1LjljMC0yNi4zLTkuNC00NC41LTE3LjUtNTguNy0xMC44LTE3LjUtMjAuOS0zMi40LTIwLjktNDkuOSAwLTE5LjYgMTQuOC0zNy44IDM1LjctMzcuOCAuOSAwIDEuOCAuMSAyLjggLjItMzcuOS0zNC43LTg4LjMtNTUuOS0xNDMuNy01NS45LTc0LjMgMC0xMzkuNyAzOC4xLTE3Ny44IDk1LjkgNSAuMiA5LjcgLjMgMTMuNyAuMyAyMi4yIDAgNTYuNy0yLjcgNTYuNy0yLjcgMTEuNS0uNyAxMi44IDE2LjIgMS40IDE3LjUgMCAwLTExLjUgMS4zLTI0LjMgMmw3Ny41IDIzMC40IDQ2LjYtMTM5LjYtMzMuMS05MC44Yy0xMS41LS43LTIyLjMtMi0yMi4zLTItMTEuNS0uNy0xMC4xLTE4LjIgMS4zLTE3LjUgMCAwIDM1LjEgMi43IDU2IDIuNyAyMi4yIDAgNTYuNy0yLjcgNTYuNy0yLjcgMTEuNS0uNyAxMi44IDE2LjIgMS40IDE3LjUgMCAwLTExLjUgMS4zLTI0LjMgMmw3Ni45IDIyOC43IDIxLjItNzAuOWM5LTI5LjQgMTYtNTAuNSAxNi02OC43ek0yNTkuNyAyNzQuNkwxOTUuOSA0NjAuMWMxOS4xIDUuNiAzOS4yIDguNyA2MC4xIDguNyAyNC44IDAgNDguNS00LjMgNzAuNi0xMi4xLS42LS45LTEuMS0xLjktMS41LTIuOUwyNTkuNyAyNzQuNnptMTgzLTEyMC43Yy45IDYuOCAxLjQgMTQgMS40IDIxLjkgMCAyMS42LTQgNDUuOC0xNi4yIDc2LjJsLTY1IDE4Ny45YzYzLjMtMzYuOSAxMDUuOC0xMDUuNCAxMDUuOC0xODMuOSAwLTM3LTkuNC03MS44LTI2LTEwMi4xek04IDI1NmEyNDggMjQ4IDAgMSAxIDQ5NiAwIDI0OCAyNDggMCAxIDEgLTQ5NiAwem00ODQuNiAwYTIzNi42IDIzNi42IDAgMSAwIC00NzMuMiAwIDIzNi42IDIzNi42IDAgMSAwIDQ3My4yIDB6Il19LHZjdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJpZGVhbCIsaWNvbjpbNTEyLDUxMixbXSwiZTAxMyIsIk05My44IDE2NS41YTQ5LjEgNDkuMSAwIDEgMCAwIDk4LjEgNDkuMSA0OS4xIDAgMSAwIDAtOTguMXpNNTQuMyA0MjUuOGw3OC45IDAgMC0xNDAuNS03OC45IDAgMCAxNDAuNXpNMjA1LjggMjE0LjJjMC0yMC0xMC0yMi41LTE4LjctMjIuNWwtMTQgMCAwIDQ1LjggMTQgMGM5LjcgMCAxOC43LTIuOCAxOC43LTIzLjN6bTIwMS43IDQ2bDAtOTEuMyAyMi44IDAgMCA2OC42IDMzLjcgMEM0NTQuNiAxMTMuMSAzNTYuOCA4Ni4yIDI2Ny44IDg2LjJsLTk0LjggMCAwIDgyLjggMTQgMGMyNS42IDAgNDEuNSAxNy40IDQxLjUgNDUuMyAwIDI4LjgtMTUuNSA0Ni00MS41IDQ2bC0xNCAwIDAgMTY1LjYgOTQuOCAwYzE0NC42IDAgMTk0LjktNjcuMiAxOTYuNy0xNjUuNmwtNTcuMSAwem0tMTA5LjggMGwtNTYuMiAwIDAtOTEuMiA1NC40IDAgMCAyMi43LTMxLjcgMCAwIDEwLjYgMzAgMCAwIDIyLjctMzAgMCAwIDEyLjUgMzMuNSAwIDAgMjIuN3ptNzQuNyAwbC01LjItMTcuNy0yOS43IDAtNS4yIDE3LjctMjMuNyAwIDI3LjUtOTEuMyAzMi4zIDAgMjcuNSA5MS4zLTIzLjcgMHpNMjY3LjggMzJMLjEgMzIgLjEgNDgwIDI2Ny44IDQ4MGMxNjEuOCAwIDI1MS03OS43IDI1MS0yMjQuNSAwLTgzLjUtMzIuNi0yMjMuNS0yNTEtMjIzLjV6bTAgNDI2LjlsLTI0Ni42IDAgMC00MDUuOSAyNDYuNiAwYzE0Mi4xIDAgMjI5LjkgNjQuNiAyMjkuOSAyMDIuNCAwIDEzNC4xLTgxIDIwMy40LTIyOS45IDIwMy40em04My45LTI2NC45bC03LjUgMjUuOCAxNi40IDAtNy41LTI1LjgtMS40IDB6Il19LHhjdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJwaWVkLXBpcGVyLXBwIixpY29uOls0NDgsNTEyLFtdLCJmMWE3IiwiTTIwNS4zIDE3NC42YzAgMjEuMS0xNC4yIDM4LjEtMzEuNyAzOC4xLTcuMSAwLTEyLjgtMS4yLTE3LjItMy43bDAtNjhjNC40LTIuNyAxMC4xLTQuMiAxNy4yLTQuMiAxNy41IDAgMzEuNyAxNi45IDMxLjcgMzcuOHptNTIuNiA2N2MtNy4xIDAtMTIuOCAxLjUtMTcuMiA0LjJsMCA2OGM0LjQgMi41IDEwLjEgMy43IDE3LjIgMy43IDE3LjQgMCAzMS43LTE2LjkgMzEuNy0zNy44IDAtMjEuMS0xNC4zLTM4LjEtMzEuNy0zOC4xek00NDggODBsMCAzNTJjMCAyNi41LTIxLjUgNDgtNDggNDhMNDggNDgwYy0yNi41IDAtNDgtMjEuNS00OC00OEwwIDgwQzAgNTMuNSAyMS41IDMyIDQ4IDMybDM1MiAwYzI2LjUgMCA0OCAyMS41IDQ4IDQ4ek0xODUgMjU1LjFjNDEgMCA3NC4yLTM1LjYgNzQuMi03OS42UzIyNiA5NS45IDE4NSA5NS45Yy0xMiAwLTI0LjEgMy4yLTM0LjYgOC44bC00NS43IDAgMCAyMDYuMyA1MS44LTEwLjEgMC01MC42YzguNiAzLjEgMTguMSA0LjggMjguNSA0Ljh6bTE1OC40IDI1LjNjMC00NC0zMy4yLTc5LjYtNzMuOS03OS42LTMuMiAwLTYuNCAuMi05LjYgLjctMy43IDEyLjUtMTAuMSAyMy44LTE5LjIgMzMuNC0xMy44IDE1LTMyLjIgMjMuOC01MS44IDI0LjhsMCAxNTYuMyA1MS44LTEwLjEgMC01MC42YzguNiAzLjIgMTguMiA0LjcgMjguNyA0LjcgNDAuOCAwIDc0LTM1LjYgNzQtNzkuNnoiXX0seWN0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6InVzc3VubmFoIixpY29uOls1MTIsNTEyLFtdLCJmNDA3IiwiTTQ5Ni45IDI2OC4xYzAgNjMuOS0yNS40IDEyNS4yLTcwLjYgMTcwLjNTMzE5LjkgNTA5IDI1NiA1MDkgMTMwLjggNDgzLjUgODUuNyA0MzguNCAxNS4xIDMzMS45IDE1LjEgMjY4YzAtNjMuOSAyNS40LTEyNS4yIDcwLjYtMTcwLjRTMTkyLjIgMjcuMSAyNTYuMSAyNy4xIDM4MS4zIDUyLjQgNDI2LjUgOTcuNiA0OTcgMjA0LjEgNDk3IDI2OGwtLjEgLjF6TTM5LjUgMjY4Yy0uNiAyOC44IDQuNSA1Ny41IDE1LjEgODQuM3MyNi40IDUxLjIgNDYuNiA3MS44IDQ0LjIgMzcgNzAuOCA0OC4xIDU1LjEgMTYuOSA4My45IDE2LjkgNTcuNC01LjggODMuOS0xNi45IDUwLjYtMjcuNSA3MC44LTQ4LjEgMzYtNDUgNDYuNi03MS44IDE1LjctNTUuNSAxNS4xLTg0LjNjLjYtMjguOC00LjUtNTcuNS0xNS4xLTg0LjNzLTI2LjQtNTEuMi00Ni42LTcxLjgtNDQuMi0zNy03MC44LTQ4LjEtNTUuMS0xNi45LTgzLjktMTYuOS01Ny40IDUuOC04My45IDE2LjktNTAuNiAyNy41LTcwLjggNDguMS0zNiA0NS00Ni42IDcxLjgtMTUuNyA1NS41LTE1LjEgODQuM3ptMzg1LjkgNjMuM2MtMTIuNyAwLTIxLjYtMS45LTI2LjctNS45LTUuNS00LjMtOC4yLTEyLjMtOC4yLTIzLjhsMC05Ni41YzAtNi41LTUuMi0yMC4yLTE1LjctNDEuMiA3IDAgMTctOS4xIDMwLTI3LjJsMCAxNDcuOGMwIDExIDIuNCAxOS40IDcgMjUuMyAzLjcgNC43IDEwLjEgOC45IDE5IDEyLjYgMS4yIC40IDIuNiAuOSA0LjEgMS40IDIuOSAuOSA2LjMgMi4xIDEwLjMgMy41LTEuOCAyLjctOC4zIDQtMTkuOSA0bC4xIDB6bS0yMTkgMGMtMS4zIDIuNC0zLjYgNS41LTYuOCA5LjRsLTE4LjUgMjIuNWMtMS02LjEtNC0xMy05LjMtMjAuNnMtOS43LTExLjQtMTMuNC0xMS40bC04OS44IDBjMy4zLTUuMyA0LjktOC44IDQuOS0xMC44cy0uOC01LjMtMi40LTkuN2MtMS41LTQuNC0yLjQtOC41LTIuNC0xMi40IDAtNy40IDIuMS0xMy45IDYuMy0xOS4zbDIwLTI1LjYtNy4xLTE3LjcgMTYuMS0xOS44IDYuNyAxNi44IDgtMTAuM2MtMS44IDYuNC0yLjYgMTIuMy0yLjYgMTcuNyAwIDQuMiAyLjggMTMuMyA4LjMgMjcuM2wxNi4yIDQwLjcgMTcuNyAwYzIuOCAuNCA3LjcgNSAxNC42IDEzLjkgMS44IDIuNCA0LjMgNS44IDcuNyAxMC4yIDEuNCAxLjkgMi45IDMuOSA0LjYgNi4xIDEuMy0yLjMgMi00LjYgMi03LjEgMC0yLTEuMy02LjYtNC0xMy40TDE3OCAzMDQuMWMtNC0xMC42LTYuMS0xNy43LTYuMS0yMS4zIDAtNi4zIDEuOS0xMi4zIDUuOC0xNy45IC41LS42IDEtMS4zIDEuNS0xLjkgNC40LTUuNiA4LjgtMTEuMSAxMy4zLTE2LjUtMS4xIDQuNi0xLjcgOC43LTEuNyAxMiAwIDMuNyAxLjcgOS45IDUuMSAxOC44bDcuOSAyMC40YzEuOSA0LjcgMyA4LjIgMy43IDEwLjNsMjUuOSAwLS45LTIuNmMtMS40LTMuOS00LTctNy43LTkuM2wxNS42LTIwLjEgMTIuMyAzMiAxMy40IDAtNi4xLTE1LjhjLTEuNS0zLjktNC03LTcuNy05LjNsMTUuNy0yMC4xIDE3LjMgNDUuMiAxMy40IDAtMTEuNC0yOS40Yy0xLjUtMy45LTQtNy03LjctOS4zbDE1LjYtMjAgMjIuNCA1OC43IDI2LjIgMGMxLjUgMCAzLTEuMSA0LjUtMy4xczIuMi00LjEgMi4yLTYuM2wwLTkzLjVjMC02LjUtNC41LTIwLjMtMTMuNy00MS4yIDUuNCAwIDE0LjEtOS4xIDI2LjItMjcuMmwwIDE2My41YzAgNy4yIC42IDEyIDEuNyAxNC42IDEuNiAzLjQgNS4zIDYuMiAxMS4xIDguMi0zLjkgNS42LTguNyA4LjUtMTQuNSA4LjVsLTE1NC44IDAtLjEtLjJ6bS05OC00NGMtMi43LTYuNy00LTExLjctNC0xNS0uNiAxLjItMi40IDMuNy01LjQgNy42LTEuNCAxLjktMi4yIDMuNy0yLjIgNS4zIDAgMi42IC44IDUuNyAyLjIgOS4zbDUuNiAxMy45YzUgMCA5IDAgMTEuOS0uMWwtOC4yLTIwLjkgLjEtLjF6bTEzLjUtNzIuNGMtMy01LjItNy05LjMtMTEuOS0xMS45LTMuNS0xLjktNS4zLTQuMy01LjMtNy40IDAtMi40IDQuNi04LjYgMTQtMTguMyAuMiAzLjggMS45IDcuNiA0LjkgMTEuMiAzLjEgMy42IDQuNiA3IDQuNiAxMC4xIDAgMi42LTIuMSA4LTYuMiAxNi4zbC0uMSAwem0tMjcuNiAwYy0zLTUuMi03LTkuMy0xMS45LTExLjktMy41LTEuOS01LjMtNC4zLTUuMy03LjQgMC0yLjQgNC42LTguNiAxNC0xOC4zIC4yIDMuOCAxLjkgNy42IDQuOSAxMS4yIDMuMSAzLjYgNC42IDcgNC42IDEwLjEgMCAyLjYtMi4xIDgtNi4yIDE2LjNsLS4xIDB6bTg3IDI3LjVjLTMtNS4yLTctOS4zLTExLjktMTEuOS0zLjUtMS45LTUuMy00LjMtNS4zLTcuNCAwLTIuNCA0LjYtOC42IDE0LTE4LjMgLjIgMy44IDEuOSA3LjYgNC45IDExLjIgMy4xIDMuNiA0LjYgNyA0LjYgMTAuMSAwIDIuNi0yLjEgOC02LjIgMTYuM2wtLjEgMHoiXX0sd2N0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImZvcnQtYXdlc29tZS1hbHQiLGljb246WzUxMiw1MTIsW10sImYzYTMiLCJNMjA4IDIzNy40bC0yMi4yIDBjLTIuMSAwLTMuNyAxLjYtMy43IDMuN2wwIDUxLjdjMCAyLjEgMS42IDMuNyAzLjcgMy43bDIyLjIgMGMyLjEgMCAzLjctMS42IDMuNy0zLjdsMC01MS43YzAtMi4xLTEuNi0zLjctMy43LTMuN3ptMTE4LjIgMGwtMjIuMiAwYy0yLjEgMC0zLjcgMS42LTMuNyAzLjdsMCA1MS43YzAgMi4xIDEuNiAzLjcgMy43IDMuN2wyMi4yIDBjMi4xIDAgMy43LTEuNiAzLjctMy43bDAtNTEuN2MtLjEtMi4xLTEuNy0zLjctMy43LTMuN3ptMTMyLTEyNS4xYy0yLjMtMy4yLTQuNi02LjQtNy4xLTkuNS05LjgtMTIuNS0yMC44LTI0LTMyLjgtMzQuNC00LjUtMy45LTkuMS03LjYtMTMuOS0xMS4yLTEuNi0xLjItMy4yLTIuMy00LjgtMy41LTI3LjYtMTkuNi01OS4zLTMzLjctOTMuNi00MC43LTE2LjItMy4zLTMyLjktNS01MC01cy0zMy45IDEuNy01MCA1Yy0zNC4zIDcuMS02NiAyMS4yLTkzLjMgNDAuOC0xLjYgMS4xLTMuMiAyLjMtNC44IDMuNS00LjggMy42LTkuNCA3LjMtMTMuOSAxMS4yLTMgMi42LTUuOSA1LjMtOC44IDhzLTUuNyA1LjUtOC40IDguNGMtNS41IDUuNy0xMC43IDExLjgtMTUuNiAxOC0yLjQgMy4xLTQuOCA2LjMtNy4xIDkuNS0yOC45IDQwLjYtNDUuOCA5MC4xLTQ1LjggMTQzLjYgMCAyIC4xIDQgLjEgNiAuMSAuNyAuMSAxLjMgLjEgMiAuMSAxLjMgLjEgMi43IC4yIDQgMCAuOCAuMSAxLjUgLjEgMi4zIDAgMS4zIC4xIDIuNSAuMiAzLjcgLjEgLjggLjEgMS42IC4yIDIuNCAuMSAxLjEgLjIgMi4zIC4zIDMuNSAwIC44IC4xIDEuNiAuMiAyLjQgLjEgMS4yIC4zIDIuNCAuNCAzLjYgLjEgLjggLjIgMS41IC4zIDIuMyAuMSAxLjMgLjMgMi42IC41IDMuOSAuMSAuNiAuMiAxLjMgLjMgMS45bC45IDUuN2MuMSAuNiAuMiAxLjEgLjMgMS43IC4zIDEuMyAuNSAyLjcgLjggNCAuMiAuOCAuMyAxLjYgLjUgMi40IC4yIDEgLjUgMi4xIC43IDMuMiAuMiAuOSAuNCAxLjcgLjYgMi42IC4yIDEgLjQgMiAuNyAzIC4yIC45IC41IDEuOCAuNyAyLjcgLjMgMSAuNSAxLjkgLjggMi45IC4zIC45IC41IDEuOCAuOCAyLjcgLjIgLjkgLjUgMS45IC44IDIuOHMuNSAxLjggLjggMi43Yy4zIDEgLjYgMS45IC45IDIuOCAuNiAxLjYgMS4xIDMuMyAxLjcgNC45IC40IDEgLjcgMS45IDEgMi44IC4zIDEgLjcgMiAxLjEgMyAuMyAuOCAuNiAxLjUgLjkgMi4zbDEuMiAzYy4zIC43IC42IDEuNSAuOSAyLjIgLjQgMSAuOSAyIDEuMyAzbC45IDIuMWMuNSAxIC45IDIgMS40IDMgLjMgLjcgLjYgMS4zIC45IDIgLjUgMSAxIDIuMSAxLjUgMy4xIC4yIC42IC41IDEuMSAuOCAxLjcgLjYgMS4xIDEuMSAyLjIgMS43IDMuMyAuMSAuMiAuMiAuMyAuMyAuNSAyLjIgNC4xIDQuNCA4LjIgNi44IDEyLjIgLjIgLjQgLjUgLjggLjcgMS4yIC43IDEuMSAxLjMgMi4yIDIgMy4zIC4zIC41IC42IC45IC45IDEuNCAuNiAxLjEgMS4zIDIuMSAyIDMuMiAuMyAuNSAuNiAuOSAuOSAxLjQgLjcgMS4xIDEuNCAyLjEgMi4xIDMuMiAuMiAuNCAuNSAuOCAuOCAxLjIgLjcgMS4xIDEuNSAyLjIgMi4zIDMuMyAuMiAuMiAuMyAuNSAuNSAuNyAzNy41IDUxLjcgOTQuNCA4OC41IDE2MCA5OS40IC45IC4xIDEuNyAuMyAyLjYgLjQgMSAuMiAyLjEgLjQgMy4xIC41czEuOSAuMyAyLjggLjRjMSAuMiAyIC4zIDMgLjQgLjkgLjEgMS45IC4yIDIuOSAuM3MxLjkgLjIgMi45IC4zIDIuMSAuMiAzLjEgLjNjLjkgLjEgMS44IC4xIDIuNyAuMiAxLjEgLjEgMi4zIC4xIDMuNCAuMiAuOCAwIDEuNyAuMSAyLjUgLjEgMS4zIDAgMi42IC4xIDMuOSAuMSAuNyAuMSAxLjQgLjEgMi4xIC4xIDIgLjEgNCAuMSA2IC4xczQtLjEgNi0uMWMuNyAwIDEuNC0uMSAyLjEtLjEgMS4zIDAgMi42IDAgMy45LS4xIC44IDAgMS43LS4xIDIuNS0uMSAxLjEtLjEgMi4zLS4xIDMuNC0uMiAuOSAwIDEuOC0uMSAyLjctLjIgMS0uMSAyLjEtLjIgMy4xLS4zczEuOS0uMiAyLjktLjNjLjktLjEgMS45LS4yIDIuOS0uM3MyLS4zIDMtLjQgMS45LS4zIDIuOC0uNGMxLS4yIDIuMS0uMyAzLjEtLjUgLjktLjEgMS43LS4zIDIuNi0uNCA2NS42LTExIDEyMi41LTQ3LjcgMTYwLjEtMTAyLjQgLjItLjIgLjMtLjUgLjUtLjcgLjgtMS4xIDEuNS0yLjIgMi4zLTMuMyAuMi0uNCAuNS0uOCAuOC0xLjIgLjctMS4xIDEuNC0yLjEgMi4xLTMuMiAuMy0uNSAuNi0uOSAuOS0xLjQgLjYtMS4xIDEuMy0yLjEgMi0zLjIgLjMtLjUgLjYtLjkgLjktMS40IC43LTEuMSAxLjMtMi4yIDItMy4zIC4yLS40IC41LS44IC43LTEuMiAyLjQtNCA0LjYtOC4xIDYuOC0xMi4yIC4xLS4yIC4yLS4zIC4zLS41IC42LTEuMSAxLjEtMi4yIDEuNy0zLjMgLjItLjYgLjUtMS4xIC44LTEuNyAuNS0xIDEtMi4xIDEuNS0zLjEgLjMtLjcgLjYtMS4zIC45LTIgLjUtMSAxLTIgMS40LTNsLjktMi4xYy41LTEgLjktMiAxLjMtMyAuMy0uNyAuNi0xLjUgLjktMi4ybDEuMi0zYy4zLS44IC42LTEuNSAuOS0yLjMgLjQtMSAuNy0yIDEuMS0zcy43LTEuOSAxLTIuOGMuNi0xLjYgMS4yLTMuMyAxLjctNC45IC4zLTEgLjYtMS45IC45LTIuOHMuNS0xLjggLjgtMi43Yy4yLS45IC41LTEuOSAuOC0yLjhzLjYtMS44IC44LTIuN2MuMy0xIC41LTEuOSAuOC0yLjkgLjItLjkgLjUtMS44IC43LTIuNyAuMi0xIC41LTIgLjctMyAuMi0uOSAuNC0xLjcgLjYtMi42IC4yLTEgLjUtMi4xIC43LTMuMiAuMi0uOCAuMy0xLjYgLjUtMi40IC4zLTEuMyAuNi0yLjcgLjgtNCAuMS0uNiAuMi0xLjEgLjMtMS43bC45LTUuN2MuMS0uNiAuMi0xLjMgLjMtMS45IC4xLTEuMyAuMy0yLjYgLjUtMy45IC4xLS44IC4yLTEuNSAuMy0yLjMgLjEtMS4yIC4zLTIuNCAuNC0zLjYgMC0uOCAuMS0xLjYgLjItMi40IC4xLTEuMSAuMi0yLjMgLjMtMy41IC4xLS44IC4xLTEuNiAuMi0yLjQgLjEgMS43IC4xIC41IC4yLS43IDAtLjggLjEtMS41IC4xLTIuMyAuMS0xLjMgLjItMi43IC4yLTQgLjEtLjcgLjEtMS4zIC4xLTIgLjEtMiAuMS00IC4xLTYgMC01My41LTE2LjktMTAzLTQ1LjgtMTQzLjd6TTQ0OCAzNzEuNWMtOS40IDE1LjUtMjAuNiAyOS45LTMzLjYgNDIuOS0yMC42IDIwLjYtNDQuNSAzNi43LTcxLjIgNDgtMTMuOSA1LjgtMjguMiAxMC4zLTQyLjkgMTMuMmwwLTc1LjhjMC01OC42LTg4LjYtNTguNi04OC42IDBsMCA3NS44Yy0xNC43LTIuOS0yOS03LjMtNDIuOS0xMy4yLTI2LjctMTEuMy01MC42LTI3LjQtNzEuMi00OC0xMy0xMy0yNC4yLTI3LjQtMzMuNi00Mi45bDAtNzEuM2MwLTIuMSAxLjYtMy43IDMuNy0zLjdsMjIuMSAwYzIuMSAwIDMuNyAxLjYgMy43IDMuN2wwIDI1LjggMjkuNiAwIDAtMTQ0YzAtMi4xIDEuNi0zLjcgMy43LTMuN2wyMi4xIDBjMi4xIDAgMy43IDEuNiAzLjcgMy43bDAgMjUuOSAyOS41IDAgMC0yNS45YzAtMi4xIDEuNi0zLjcgMy43LTMuN2wyMi4yIDBjMi4xIDAgMy43IDEuNiAzLjcgMy43bDAgMjUuOSAyOS41IDAgMC0yNS45YzAtNC44IDYuNS0zLjcgOS41LTMuN2wwLTkwLjJjLTQuNC0yLTcuNC02LjctNy40LTExLjUgMC0xNi44IDI1LjQtMTYuOCAyNS40IDAgMCA0LjgtMyA5LjQtNy40IDExLjVsMCAzLjljNi4zLTEuNCAxMi43LTIuMyAxOS4yLTIuMyA5LjQgMCAxOC40IDMuNSAyNi4zIDMuNSA3LjIgMCAxNS4yLTMuNSAxOS40LTMuNSAyLjEgMCAzLjcgMS42IDMuNyAzLjdsMCA0OC40YzAgNS42LTE4LjcgNi41LTIyLjQgNi41LTguNiAwLTE2LjYtMy41LTI1LjQtMy41LTcgMC0xNC4xIDEuMi0yMC44IDIuOGwwIDMwLjdjMyAwIDkuNS0xLjEgOS41IDMuN2wwIDI1LjkgMjkuNSAwIDAtMjUuOWMwLTIuMSAxLjYtMy43IDMuNy0zLjdsMjIuMiAwYzIuMSAwIDMuNyAxLjYgMy43IDMuN2wwIDI1LjkgMjkuNSAwIDAtMjUuOWMwLTIuMSAxLjYtMy43IDMuNy0zLjdsMjIuMSAwYzIuMSAwIDMuNyAxLjYgMy43IDMuN2wwIDE0NCAyOS41IDAgMC0yNS44YzAtMi4xIDEuNi0zLjcgMy43LTMuN2wyMi4yIDBjMi4xIDAgMy43IDEuNiAzLjcgMy43bDAgNzEuM3oiXX0sTWN0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImJ1cm9tb2JlbGV4cGVydGUiLGljb246WzQ0OCw1MTIsW10sImYzN2YiLCJNMCAzMmwwIDEyOCAxMjggMCAwLTEyOC0xMjggMHpNMTIwIDE1MmwtMTEyIDAgMC0xMTIgMTEyIDAgMCAxMTJ6TTE2MCAzMmwwIDEyOCAxMjggMCAwLTEyOC0xMjggMHpNMjgwIDE1MmwtMTEyIDAgMC0xMTIgMTEyIDAgMCAxMTJ6TTMyMCAzMmwwIDEyOCAxMjggMCAwLTEyOC0xMjggMHpNNDQwIDE1MmwtMTEyIDAgMC0xMTIgMTEyIDAgMCAxMTJ6TTAgMTkybDAgMTI4IDEyOCAwIDAtMTI4LTEyOCAwek0xMjAgMzEybC0xMTIgMCAwLTExMiAxMTIgMCAwIDExMnptNDAtMTIwbDAgMTI4IDEyOCAwIDAtMTI4LTEyOCAwek0yODAgMzEybC0xMTIgMCAwLTExMiAxMTIgMCAwIDExMnptNDAtMTIwbDAgMTI4IDEyOCAwIDAtMTI4LTEyOCAwek00NDAgMzEybC0xMTIgMCAwLTExMiAxMTIgMCAwIDExMnpNMCAzNTJsMCAxMjggMTI4IDAgMC0xMjgtMTI4IDB6TTEyMCA0NzJsLTExMiAwIDAtMTEyIDExMiAwIDAgMTEyem00MC0xMjBsMCAxMjggMTI4IDAgMC0xMjgtMTI4IDB6TTI4MCA0NzJsLTExMiAwIDAtMTEyIDExMiAwIDAgMTEyem00MC0xMjBsMCAxMjggMTI4IDAgMC0xMjgtMTI4IDB6Il19LGtjdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJiaWxpYmlsaSIsaWNvbjpbNTEyLDUxMixbXSwiZTNkOSIsIk00ODguNiAxMDQuMWMxNi43IDE4LjEgMjQuNCAzOS43IDIzLjMgNjUuN2wwIDIwMi40Yy0uNCAyNi40LTkuMiA0OC4xLTI2LjUgNjUuMS0xNy4yIDE3LTM5LjEgMjUuOS02NS41IDI2LjdMOTIgNDY0Yy0yNi40LS44LTQ4LjItOS44LTY1LjMtMjcuMi0xNy4xLTE3LjQtMjYtNDAuMy0yNi43LTY4LjZMMCAxNjkuOGMuOC0yNiA5LjctNDcuNiAyNi43LTY1LjcgMTcuMS0xNi4zIDM4LjgtMjUuMyA2NS4zLTI2LjFsMjkuNCAwLTI1LjQtMjUuOGMtNS43LTUuNy04LjYtMTMtOC42LTIxLjhzMi45LTE2LjEgOC42LTIxLjggMTMtOC42IDIxLjktOC42IDE2LjEgMi45IDIxLjkgOC42bDczLjMgNjkuNCA4OCAwIDc0LjUtNjkuNEMzODEuNyAyLjkgMzg5LjIgMCAzOTggMHMxNi4xIDIuOSAyMS45IDguNmM1LjcgNS43IDguNiAxMyA4LjYgMjEuOHMtMi45IDE2LjEtOC42IDIxLjhMMzk0LjYgNzggNDIzLjkgNzhjMjYuNCAuOCA0OCA5LjggNjQuNyAyNi4xem0tMzguOCA2OS43Yy0uNC05LjYtMy43LTE3LjQtMTAuNy0yMy41LTUuMi02LjEtMTQtOS40LTIyLjctOS44bC0zMjAuNCAwYy05LjYgLjQtMTcuNCAzLjctMjMuNiA5LjgtNi4xIDYuMS05LjQgMTMuOS05LjggMjMuNWwwIDE5NC40YzAgOS4yIDMuMyAxNyA5LjggMjMuNXMxNC40IDkuOCAyMy42IDkuOGwzMjAuNCAwYzkuMiAwIDE3LTMuMyAyMy4zLTkuOHM5LjctMTQuMyAxMC4xLTIzLjVsMC0xOTQuNHpNMTg1LjUgMjE2LjVjNi4zIDYuMyA5LjcgMTQuMSAxMC4xIDIzLjJsMCAzMy4zYy0uNCA5LjItMy43IDE2LjktOS44IDIzLjItNi4yIDYuMy0xNCA5LjUtMjMuNiA5LjVzLTE3LjUtMy4yLTIzLjYtOS41LTkuNC0xNC05LjgtMjMuMmwwLTMzLjNjLjQtOS4xIDMuOC0xNi45IDEwLjEtMjMuMnMxMy4yLTkuNiAyMy4zLTEwYzkuMiAuNCAxNyAzLjcgMjMuMyAxMHptMTkxLjUgMGM2LjMgNi4zIDkuNyAxNC4xIDEwLjEgMjMuMmwwIDMzLjNjLS40IDkuMi0zLjcgMTYuOS05LjggMjMuMnMtMTQgOS41LTIzLjYgOS41LTE3LjQtMy4yLTIzLjYtOS41Yy03LTYuMy05LjQtMTQtOS43LTIzLjJsMC0zMy4zYy4zLTkuMSAzLjctMTYuOSAxMC0yMy4yczE0LjEtOS42IDIzLjMtMTBjOS4yIC40IDE3IDMuNyAyMy4zIDEweiJdfSxTY3Q9e3ByZWZpeDoiZmFiIixpY29uTmFtZToibmVvcyIsaWNvbjpbNDQ4LDUxMixbXSwiZjYxMiIsIk0zODMuOCA1MTJsLTk1LjEgMC0xMDguMi0xNTQuNSAwIDkxLjEtODYuNCA2My40LTk3LjcgMCAwLTQ4Mi4yIDQwLjUtMjkuOCAxMDggMCAxMjMuNyAxNzYuMSAwLTExMi43IDg2LjQtNjMuNCA5Ny43IDAgMCA0NjEuNS02OC45IDUwLjV6TTcuMiAzNS4zbDAgNDYwLjcgNzItNTIuOSAwLTI0OS4xIDIxNS41IDMwNy42IDg0LjggMCA1Mi40LTM4LjItNzguMyAwLTMxNi4xLTQ1MC41LTMwLjIgMjIuM3pNODkuNyA1MDEuOWw4MC01OC44IDAtMTAxLTc5LjgtMTE0LjQgMCAyMjAuOS03Mi42IDUzLjMgNzIuMyAwIDAgMHpNNDkgMTAuOGwzMTAuNiA0NDIuNiA4Mi40IDAgMC00NDIuNi03OS44IDAgMCAzMTcuNi0yMjIuOS0zMTcuNi05MC4zIDB6TTI3OS40IDE5MS42bDcyIDEwMi44IDAtMjc4LjUtNzIgNTMgMCAxMjIuN3oiXX0semN0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImRldiIsaWNvbjpbNDQ4LDUxMixbXSwiZjZjYyIsIk0xMjAuMSAyMDguM2MtMy45LTIuOS03LjgtNC4zLTExLjYtNC4zbC0xNy40IDAgMCAxMDQuNSAxNy40IDBjMy45IDAgNy44LTEuNCAxMS42LTQuM3M1LjgtNy4zIDUuOC0xMy4xbDAtNjkuN2MwLTUuOC0yLTEwLjItNS44LTEzLjF6TTQwNC4xIDMyTDQzLjkgMzJDMTkuNyAzMiAuMSA1MS42IDAgNzUuOEwwIDQzNi4yQy4xIDQ2MC40IDE5LjcgNDgwIDQzLjkgNDgwbDM2MC4yIDBjMjQuMiAwIDQzLjgtMTkuNiA0My45LTQzLjhsMC0zNjAuNEM0NDcuOSA1MS42IDQyOC4zIDMyIDQwNC4xIDMyek0xNTQuMiAyOTEuMmMwIDE4LjgtMTEuNiA0Ny4zLTQ4LjQgNDcuM2wtNDYuNCAwIDAtMTY1LjUgNDcuNCAwYzM1LjQgMCA0Ny40IDI4LjUgNDcuNCA0Ny4zbDAgNzAuOXptMTAwLjctODguN2wtNTMuMyAwIDAgMzguNCAzMi42IDAgMCAyOS42LTMyLjYgMCAwIDM4LjQgNTMuMyAwIDAgMjkuNi02Mi4yIDBjLTExLjIgLjMtMjAuNC04LjUtMjAuNy0xOS43bDAtMTI1LjFjLS4zLTExLjEgOC42LTIwLjQgMTkuNy0yMC43bDYzLjIgMCAwIDI5LjV6TTM1OC41IDMxNy44Yy0xMy4yIDMwLjctMzYuOCAyNC42LTQ3LjQgMGwtMzguNS0xNDQuOCAzMi42IDAgMjkuNyAxMTMuNyAyOS42LTExMy43IDMyLjYgMC0zOC41IDE0NC44eiJdfSxDY3Q9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiaG90amFyIixpY29uOls1MTIsNTEyLFtdLCJmM2IxIiwiTTM2MS44IDBjMCAxMzEuNi04MC43IDE3Ni44LTE0MC4yIDIwOS40LS42IC4zLTEuMSAuNi0xLjYgLjktNTMuOCAzMC4yLTg4LjcgNDkuOC04OS42IDEyMmwtOTguMSAwYzAtMTMxLjUgODAuNy0xNzYuNyAxNDAuMi0yMDkuMyA1NC44LTI5LjggOTAuMy01MCA5MC4zLTEyM2w5OSAwek0zMDEuMyAzMDIuNmM1NC44LTI5LjggOTAuMy01MCA5MC4zLTEyM2w5OCAwYzAgMTMxLjYtODAuNyAxNzYuNy0xNDAuMiAyMDkuNC01NC44IDI5LjgtOTAuMyA1MC05MC4zIDEyM2wtOTggMGMwLTEzMS42IDgwLjctMTc2LjggMTQwLjItMjA5LjR6Il19LFRjdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJkb2NodWIiLGljb246WzQ0OCw1MTIsW10sImYzOTQiLCJNNDEzLjkgMTYwTDI3MiAxNjAgMjcyIDE5LjYgNDEzLjkgMTYwek0zMjAgMTkybDAgMTMwYzAgNjYuOC0zNi41IDEwMC4xLTExMy4zIDEwMC4xbC05NC43IDAgMC0zMzcuMyA5NC43IDBjMTIgMCAyMy4xIC44IDMzLjEgMi41bDAtODRDMjI4LjkgMS4xIDIxNy40IDAgMjA1LjIgMEwxNiAwIDE2IDUxMiAyMDUuMiA1MTJDMzQ1LjcgNTEyIDQxNiA0NDcuNCA0MTYgMzE4LjFsMC0xMjYuMS05NiAweiJdfSxfY3Q9e3ByZWZpeDoiZmFiIixpY29uTmFtZToidmltZW8iLGljb246WzQ0OCw1MTIsW10sImY0MGEiLCJNNDAzLjIgMzJMNDQuOCAzMkMyMC4xIDMyIDAgNTIuMSAwIDc2LjhMMCA0MzUuMkMwIDQ1OS45IDIwLjEgNDgwIDQ0LjggNDgwbDM1OC40IDBjMjQuNyAwIDQ0LjgtMjAuMSA0NC44LTQ0LjhsMC0zNTguNEM0NDggNTIuMSA0MjcuOSAzMiA0MDMuMiAzMnpNMzc3IDE4MC44Yy0xLjQgMzEuNS0yMy40IDc0LjctNjYgMTI5LjQtNDQgNTcuMi04MS4zIDg1LjgtMTExLjcgODUuOC0xOC45IDAtMzQuOC0xNy40LTQ3LjktNTIuMy0yNS41LTkzLjMtMzYuNC0xNDgtNTcuNC0xNDgtMi40IDAtMTAuOSA1LjEtMjUuNCAxNS4yTDUzLjQgMTkxLjNjMzcuMy0zMi44IDcyLjktNjkuMiA5NS4yLTcxLjIgMjUuMi0yLjQgNDAuNyAxNC44IDQ2LjUgNTEuNyAyMC43IDEzMS4yIDI5LjkgMTUxIDY3LjYgOTEuNiAxMy41LTIxLjQgMjAuOC0zNy43IDIxLjgtNDguOSAzLjUtMzMuMi0yNS45LTMwLjktNDUuOC0yMi40IDE1LjktNTIuMSA0Ni4zLTc3LjQgOTEuMi03NiAzMy4zIC45IDQ5IDIyLjUgNDcuMSA2NC43eiJdfSxMY3Q9e3ByZWZpeDoiZmFiIixpY29uTmFtZToibWF4Y2RuIixpY29uOls1MTIsNTEyLFtdLCJmMTM2IiwiTTQ2MS4xIDQ0Mi43bC05Ny40IDAgNTEuOS0yNDIuN2MyLjMtMTAuMiAuOS0xOS41LTQuNC0yNS43LTUtNi4xLTEzLjctOS42LTI0LjItOS42bC00OS4zIDAtNTkuNSAyNzgtOTcuNCAwIDU5LjUtMjc4LTgzLjQgMC01OS41IDI3OC05Ny40IDAgNTkuNS0yNzgtNDQuNi05NS40IDM3Mi4xIDBjMzkuNCAwIDc1LjMgMTYuMyA5OC4zIDQ0LjkgMjMuMyAyOC42IDMxLjggNjcuNCAyMy42IDEwNS45TDQ2MS4xIDQ0Mi43eiJdfSxvbmU9e3ByZWZpeDoiZmFiIixpY29uTmFtZToic3F1YXJlLWZvbnQtYXdlc29tZS1zdHJva2UiLGljb246WzQ0OCw1MTIsWyJmb250LWF3ZXNvbWUtYWx0Il0sImYzNWMiLCJNNjQgNjRDNDYuMyA2NCAzMiA3OC4zIDMyIDk2bDAgMzIwYzAgMTcuNyAxNC4zIDMyIDMyIDMybDMyMCAwYzE3LjcgMCAzMi0xNC4zIDMyLTMybDAtMzIwYzAtMTcuNy0xNC4zLTMyLTMyLTMyTDY0IDY0ek0wIDk2QzAgNjAuNyAyOC43IDMyIDY0IDMybDMyMCAwYzM1LjMgMCA2NCAyOC43IDY0IDY0bDAgMzIwYzAgMzUuMy0yOC43IDY0LTY0IDY0TDY0IDQ4MGMtMzUuMyAwLTY0LTI4LjctNjQtNjRMMCA5NnptMTU0IDU4YzAgOS4zLTQuOCAxNy40LTEyLjEgMjJsMTg4LjkgMGM3LjMgMCAxMy4yIDUuOSAxMy4yIDEzLjIgMCAxLjgtLjQgMy43LTEuMSA1LjRMMzEyIDI2NCAzNDIuOSAzMzMuNGMuOCAxLjcgMS4xIDMuNSAxLjEgNS40IDAgNy4zLTUuOSAxMy4yLTEzLjIgMTMuMmwtMTg2LjggMCAwIDMyLTMyIDAgMC0yMDkuNWMtNi4xLTQuOC0xMC0xMi4yLTEwLTIwLjUgMC0xNC40IDExLjYtMjYgMjYtMjZzMjYgMTEuNiAyNiAyNnoiXX0sQWN0PW9uZSxEY3Q9e3ByZWZpeDoiZmFiIixpY29uTmFtZToic3BlYWthcCIsaWNvbjpbNDQ4LDUxMixbXSwiZjNmMyIsIk02NC40IDM5MS44Qy0xNSAzMDMuNi03LjYgMTY3LjQgODEuMSA4Ny42czIyNC44LTczIDMwNC4yIDE1LjIgNzIgMjI0LjQtMTYuNiAzMDQuMWMtMTguNyAxNi45IDY0IDQzLjEgNDIgNTIuMy04Mi4xIDM0LjItMjUzLjkgMzUtMzQ2LjItNjcuNWwwIDB6TTI3Ny43IDE4MC4ybDM4LjUtNDAuOWMtOS42LTguOS0zMi0yNi44LTc2LjItMjcuNi01Mi4zLS45LTk1LjkgMjguMy05Ni44IDgwLS4yIDExLjMgLjMgMzYuNyAyOS40IDU0LjggMzQuNSAyMS40IDg2LjUgMjEuNSA4NiA1Mi4zLS40IDIxLjMtMjYuNCAyNS44LTM4LjYgMjUuNi0zIDAtMzAuMi0uNS00Ny42LTI0LjZsLTQwIDQyLjZjMjguMiAyNyA1OSAzMi42IDgzLjUgMzMgMTAuMiAuMiA5Ni40IC4zIDk3LjgtODEgLjMtMTUuOC0yLjEtMzkuNy0yOC45LTU2LjYtMzQuNC0yMS42LTg1LTE5LjQtODQuNC00OS43IC40LTIzLjMgMzEtMjUuNCAzNy41LTI1LjMgLjQgMCAyNi42IC4zIDM5LjYgMTcuNGwwIDB6Il19LEVjdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJmYW50YXN5LWZsaWdodC1nYW1lcyIsaWNvbjpbNTEyLDUxMixbXSwiZjZkYyIsIk0yNTYgMzIuOUwzMi45IDI1NiAyNTYgNDc5LjEgNDc5LjEgMjU2IDI1NiAzMi45ek04OC4zIDI1NS44YzItMiAxMS45LTEyLjMgOTYuNS05Ny41IDQxLjQtNDEuOCA4Ni4yLTQzLjggMTE5LjgtMTguNyAyNC42IDE4LjQgNjIuMSA1OC45IDYyLjEgNTkgLjcgLjcgMS4xIDIuOSAuNiAzLjQtMTEuMyAxMS44LTIyLjcgMjMuNS0zMy41IDM0LjctMzQuMi0zMi4zLTQwLjUtMzguMi00OC41LTQ0LTE3LjgtMTIuNy00MS40LTEwLjEtNTcgNS4xLTIuMiAyLjEtMS44IDMuNCAuMSA1LjQgMi45IDIuOSAyOC4xIDI4LjMgMzUuMSAzNS44LTExLjkgMTEuNi0yMy43IDIzLTM1LjcgMzQuNy0xMi0xMi41LTI0LjUtMjUuNS0zNi41LTM4LjEtMjEuNCAyMS4xLTQxLjcgNDEuMS02MS44IDYxTDg4LjMgMjU1Ljh6TTMyMy4yIDM1Ny40Yy0zNS41IDM1LjQtNzguMSAzOC4xLTEwNyAyMC41LTIyLjEtMTMuNS0zOS40LTMyLjEtNzIuOS02Ni44IDEyLTEyLjQgMjMuOC0yNC40IDM1LjQtMzYuMyAzMyAzMS45IDM3LjEgMzYgNDQuNyA0Mi4xIDE4LjUgMTQuNyA0Mi41IDEzLjcgNTkuMy0xLjggMy43LTMuNCAzLjctMy42IC4xLTcuMi0xMC42LTEwLjctMjEuMi0yMS40LTMxLjgtMzIuMi0xLjMtMS4zLTMtMi41LS44LTQuNyAxMC44LTEwLjcgMjEuNS0yMS41IDMyLjItMzIuMyAuMy0uMyAuNi0uNCAxLjktMS4xIDEyLjQgMTIuOSAyNC45IDI1LjkgMzcuMiAzOC44IDIxLTIwLjcgNDEuMi00MC43IDYxLjMtNjAuNCAxMy43IDEzLjQgMjcuMSAyNi42IDQwLjkgNDAtMjAuMiAyMC45LTgxLjcgODIuNy0xMDAuNSAxMDEuNXpNMjU2IDBMMCAyNTYgMjU2IDUxMiA1MTIgMjU2IDI1NiAwek0xNiAyNTZMMjU2IDE2IDQ5NiAyNTYgMjU2IDQ5NiAxNiAyNTZ6Il19LCRjdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJsaW51eCIsaWNvbjpbNDQ4LDUxMixbXSwiZjE3YyIsIk0yMjAuOSAxMjMuM2MxIC41IDEuOCAxLjcgMyAxLjcgMS4xIDAgMi44LS40IDIuOS0xLjUgLjItMS40LTEuOS0yLjMtMy4yLTIuOS0xLjctLjctMy45LTEtNS41LS4xLS40IC4yLS44IC43LS42IDEuMSAuMyAxLjMgMi4zIDEuMSAzLjQgMS43ek0xOTkgMTI1YzEuMiAwIDItMS4yIDMtMS43IDEuMS0uNiAzLjEtLjQgMy41LTEuNiAuMi0uNC0uMi0uOS0uNi0xLjEtMS42LS45LTMuOC0uNi01LjUgLjEtMS4zIC42LTMuNCAxLjUtMy4yIDIuOSAuMSAxIDEuOCAxLjUgMi44IDEuNHpNNDIwIDQwMy44Yy0zLjYtNC01LjMtMTEuNi03LjItMTkuNy0xLjgtOC4xLTMuOS0xNi44LTEwLjUtMjIuNC0xLjMtMS4xLTIuNi0yLjEtNC0yLjktMS4zLS44LTIuNy0xLjUtNC4xLTIgOS4yLTI3LjMgNS42LTU0LjUtMy43LTc5LjEtMTEuNC0zMC4xLTMxLjMtNTYuNC00Ni41LTc0LjQtMTcuMS0yMS41LTMzLjctNDEuOS0zMy40LTcyIC41LTQ1LjkgNS4xLTEzMS4yLTc1LjgtMTMxLjMtMTAyLjQtLjItNzYuOCAxMDMuNC03Ny45IDEzNS4yLTEuNyAyMy40LTYuNCA0MS44LTIyLjUgNjQuNy0xOC45IDIyLjUtNDUuNSA1OC44LTU4LjEgOTYuNy02IDE3LjktOC44IDM2LjEtNi4yIDUzLjMtNi41IDUuOC0xMS40IDE0LjctMTYuNiAyMC4yLTQuMiA0LjMtMTAuMyA1LjktMTcgOC4zcy0xNCA2LTE4LjUgMTQuNWMtMi4xIDMuOS0yLjggOC4xLTIuOCAxMi40IDAgMy45IC42IDcuOSAxLjIgMTEuOCAxLjIgOC4xIDIuNSAxNS43IC44IDIwLjgtNS4yIDE0LjQtNS45IDI0LjQtMi4yIDMxLjcgMy44IDcuMyAxMS40IDEwLjUgMjAuMSAxMi4zIDE3LjMgMy42IDQwLjggMi43IDU5LjMgMTIuNSAxOS44IDEwLjQgMzkuOSAxNC4xIDU1LjkgMTAuNCAxMS42LTIuNiAyMS4xLTkuNiAyNS45LTIwLjIgMTIuNS0uMSAyNi4zLTUuNCA0OC4zLTYuNiAxNC45LTEuMiAzMy42IDUuMyA1NS4xIDQuMSAuNiAyLjMgMS40IDQuNiAyLjUgNi43bDAgLjFjOC4zIDE2LjcgMjMuOCAyNC4zIDQwLjMgMjMgMTYuNi0xLjMgMzQuMS0xMSA0OC4zLTI3LjkgMTMuNi0xNi40IDM2LTIzLjIgNTAuOS0zMi4yIDcuNC00LjUgMTMuNC0xMC4xIDEzLjktMTguMyAuNC04LjItNC40LTE3LjMtMTUuNS0yOS43ek0yMjMuOCA4Ny4zYzkuOC0yMi4yIDM0LjItMjEuOCA0NC0uNCA2LjUgMTQuMiAzLjYgMzAuOS00LjMgNDAuNC0xLjYtLjgtNS45LTIuNi0xMi42LTQuOSAxLjEtMS4yIDMuMS0yLjcgMy45LTQuNiA0LjgtMTEuOC0uMi0yNy05LjEtMjcuMy03LjMtLjUtMTMuOSAxMC44LTExLjggMjMtNC4xLTItOS40LTMuNS0xMy00LjQtMS02LjktLjMtMTQuNiAyLjktMjEuOHpNMTgzLjEgNzUuOGMxMC4xIDAgMjAuOCAxNC4yIDE5LjEgMzMuNS0zLjUgMS03LjEgMi41LTEwLjIgNC42IDEuMi04LjktMy4zLTIwLjEtOS42LTE5LjYtOC40IC43LTkuOCAyMS4yLTEuOCAyOC4xIDEgLjggMS45LS4yLTUuOSA1LjUtMTUuNi0xNC42LTEwLjUtNTIuMSA4LjQtNTIuMXptLTEzLjYgNjAuN2M2LjItNC42IDEzLjYtMTAgMTQuMS0xMC41IDQuNy00LjQgMTMuNS0xNC4yIDI3LjktMTQuMiA3LjEgMCAxNS42IDIuMyAyNS45IDguOSA2LjMgNC4xIDExLjMgNC40IDIyLjYgOS4zIDguNCAzLjUgMTMuNyA5LjcgMTAuNSAxOC4yLTIuNiA3LjEtMTEgMTQuNC0yMi43IDE4LjEtMTEuMSAzLjYtMTkuOCAxNi0zOC4yIDE0LjktMy45LS4yLTctMS05LjYtMi4xLTgtMy41LTEyLjItMTAuNC0yMC0xNS04LjYtNC44LTEzLjItMTAuNC0xNC43LTE1LjMtMS40LTQuOSAwLTkgNC4yLTEyLjN6bTMuMyAzMzRjLTIuNyAzNS4xLTQzLjkgMzQuNC03NS4zIDE4LTI5LjktMTUuOC02OC42LTYuNS03Ni41LTIxLjktMi40LTQuNy0yLjQtMTIuNyAyLjYtMjYuNGwwLS4yYzIuNC03LjYgLjYtMTYtLjYtMjMuOS0xLjItNy44LTEuOC0xNSAuOS0yMCAzLjUtNi43IDguNS05LjEgMTQuOC0xMS4zIDEwLjMtMy43IDExLjgtMy40IDE5LjYtOS45IDUuNS01LjcgOS41LTEyLjkgMTQuMy0xOCA1LjEtNS41IDEwLTguMSAxNy43LTYuOSA4LjEgMS4yIDE1LjEgNi44IDIxLjkgMTZsMTkuNiAzNS42YzkuNSAxOS45IDQzLjEgNDguNCA0MSA2OC45em0tMS40LTI1LjljLTQuMS02LjYtOS42LTEzLjYtMTQuNC0xOS42IDcuMSAwIDE0LjItMi4yIDE2LjctOC45IDIuMy02LjIgMC0xNC45LTcuNC0yNC45LTEzLjUtMTguMi0zOC4zLTMyLjUtMzguMy0zMi41LTEzLjUtOC40LTIxLjEtMTguNy0yNC42LTI5LjlzLTMtMjMuMy0uMy0zNS4yYzUuMi0yMi45IDE4LjYtNDUuMiAyNy4yLTU5LjIgMi4zLTEuNyAuOCAzLjItOC43IDIwLjgtOC41IDE2LjEtMjQuNCA1My4zLTIuNiA4Mi40IC42LTIwLjcgNS41LTQxLjggMTMuOC02MS41IDEyLTI3LjQgMzcuMy03NC45IDM5LjMtMTEyLjcgMS4xIC44IDQuNiAzLjIgNi4yIDQuMSA0LjYgMi43IDguMSA2LjcgMTIuNiAxMC4zIDEyLjQgMTAgMjguNSA5LjIgNDIuNCAxLjIgNi4yLTMuNSAxMS4yLTcuNSAxNS45LTkgOS45LTMuMSAxNy44LTguNiAyMi4zLTE1IDcuNyAzMC40IDI1LjcgNzQuMyAzNy4yIDk1LjcgNi4xIDExLjQgMTguMyAzNS41IDIzLjYgNjQuNiAzLjMtLjEgNyAuNCAxMC45IDEuNCAxMy44LTM1LjctMTEuNy03NC4yLTIzLjMtODQuOS00LjctNC42LTQuOS02LjYtMi42LTYuNSAxMi42IDExLjIgMjkuMiAzMy43IDM1LjIgNTkgMi44IDExLjYgMy4zIDIzLjcgLjQgMzUuNyAxNi40IDYuOCAzNS45IDE3LjkgMzAuNyAzNC44LTIuMi0uMS0zLjIgMC00LjIgMCAzLjItMTAuMS0zLjktMTcuNi0yMi44LTI2LjEtMTkuNi04LjYtMzYtOC42LTM4LjMgMTIuNS0xMi4xIDQuMi0xOC4zIDE0LjctMjEuNCAyNy4zLTIuOCAxMS4yLTMuNiAyNC43LTQuNCAzOS45LS41IDcuNy0zLjYgMTgtNi44IDI5LTMyLjEgMjIuOS03Ni43IDMyLjktMTE0LjMgNy4yem0yNTcuNC0xMS41Yy0uOSAxNi44LTQxLjIgMTkuOS02My4yIDQ2LjUtMTMuMiAxNS43LTI5LjQgMjQuNC00My42IDI1LjVzLTI2LjUtNC44LTMzLjctMTkuM2MtNC43LTExLjEtMi40LTIzLjEgMS4xLTM2LjMgMy43LTE0LjIgOS4yLTI4LjggOS45LTQwLjYgLjgtMTUuMiAxLjctMjguNSA0LjItMzguNyAyLjYtMTAuMyA2LjYtMTcuMiAxMy43LTIxLjEgLjMtLjIgLjctLjMgMS0uNSAuOCAxMy4yIDcuMyAyNi42IDE4LjggMjkuNSAxMi42IDMuMyAzMC43LTcuNSAzOC40LTE2LjMgOS0uMyAxNS43LS45IDIyLjYgNS4xIDkuOSA4LjUgNy4xIDMwLjMgMTcuMSA0MS42IDEwLjYgMTEuNiAxNCAxOS41IDEzLjcgMjQuNnpNMTczLjQgMTQ4LjdjMiAxLjkgNC43IDQuNSA4IDcuMSA2LjYgNS4yIDE1LjggMTAuNiAyNy4zIDEwLjYgMTEuNiAwIDIyLjUtNS45IDMxLjgtMTAuOCA0LjktMi42IDEwLjktNyAxNC44LTEwLjRzNS45LTYuMyAzLjEtNi42LTIuNiAyLjYtNiA1LjFjLTQuNCAzLjItOS43IDcuNC0xMy45IDkuOC03LjQgNC4yLTE5LjUgMTAuMi0yOS45IDEwLjJzLTE4LjctNC44LTI0LjktOS43Yy0zLjEtMi41LTUuNy01LTcuNy02LjktMS41LTEuNC0xLjktNC42LTQuMy00LjktMS40LS4xLTEuOCAzLjcgMS43IDYuNXoiXX0sSWN0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImNvdHRvbi1idXJlYXUiLGljb246WzUxMiw1MTIsW10sImY4OWUiLCJNNDc0LjMgMzMwLjRDNDUwLjYgNDIyLjMgMzgwLjEgNDc1IDI3Mi40IDQ3OC44bDAtNDkuMmMwLTQ4IDI2LjQtNzQuNCA3NC40LTc0LjQgNjIgMCA5OS4yLTM3LjIgOTkuMi05OS4yIDAtNjEuNC0zNi41LTk4LjMtOTcuNC05OS4xLTMzLTY5LjMtMTQ2LjUtNjQuNy0xNzcuMiAwLTYwLjkgLjgtOTcuNCAzNy43LTk3LjQgOTkuMSAwIDYyLjEgMzcuMyA5OS40IDk5LjQgOTkuNCA0OCAwIDc0LjYgMjYuMiA3NC42IDc0LjRsMCA0OS4yYy0xMzQuNC01LTIxMS4xLTg1LjEtMjExLjEtMjIzIDAtMTQxLjggODEuNC0yMjMuMiAyMjMuMi0yMjMuMiAxMTQuOCAwIDE4OS44IDUzLjIgMjE0LjcgMTQ4LjhsMjUuMyAwQzQ3My45IDcxLjUgMzg4LjIgOCAyNTkuOCA4IDEwNSA4IDEyIDEwMS4yIDEyIDI1NS44IDEyIDQxMS4xIDEwNS4yIDUwNC4zIDI1OS44IDUwNCAzODguMSA1MDQgNDczLjcgNDQwLjIgNDk5LjUgMzMwLjRsLTI1LjIgMHpNMzU3IDE4Mi4zYzQxLjQgMy40IDY0LjIgMjkgNjQuMiA3My43IDAgNDgtMjYuNCA3NC40LTc0LjQgNzQuNC0yOC42IDAtNDkuMy05LjYtNjEuNi0yNy4zIDgzLjEtMTYuNSA3NS42LTk5LjcgNzEuOC0xMjAuN3ptLTgxLjcgOTcuNGMtMi41LTEwLjMtMTYuMy04NyA1Ni4yLTk3IDIuMyAxMC4xIDE2LjUgODcuMS01Ni4zIDk3bDAgMHpNMjYwIDEzMmMyOC42IDAgNDkgOS43IDYxLjQgMjcuNi0yOC40IDUuNS00OS40IDIwLjYtNjEuNiA0My40LTEyLjItMjIuOS0zMy4yLTM4LTYxLjYtNDMuNCAxMi40LTE3LjcgMzMuMy0yNy40IDYxLjYtMjcuNGwuMi0uM3ptLTcxLjUgNTAuN2M3My4yIDEwLjYgNTguOSA4Ni44IDU2LjUgOTctNzIuNC05LjgtNTktODctNTYuMi05N2wtLjIgMHpNMTczLjIgMzMwLjRjLTQ4IDAtNzQuNC0yNi40LTc0LjQtNzQuNCAwLTQ0LjQgMjIuOS03MCA2NC4yLTczLjctNi44IDM3LjItMS40IDEwNi41IDcxLjYgMTIwLjctMTIuMSAxNy42LTMyLjggMjcuMy02MS4xIDI3LjNsLS4zIDB6bTUzLjIgMTIuNGMxNC4zLTcuNiAyNi0xOS4zIDMzLjYtMzMuNSA3LjggMTQuNSAxOS4zIDI1LjUgMzMuOCAzMy41LTE0LjQgNy42LTI2LjEgMTkuNC0zMy42IDMzLjgtOC0xNC41LTE5LjEtMjYuMi0zMy42LTMzLjhsLS4zIDB6Il19LFBjdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJnb29nbGUtd2FsbGV0IixpY29uOls0NDgsNTEyLFtdLCJmMWVlIiwiTTE1Ni44IDEyNi44YzM3LjYgNjAuNiA2NC4yIDExMy4xIDg0LjMgMTYyLjUtOC4zIDMzLjgtMTguOCA2Ni41LTMxLjMgOTguMy0xMy4yLTUyLjMtMjYuNS0xMDEuMy01Ni0xNDguNSA2LjUtMzYuNCAyLjMtNzMuNiAzLTExMi4zek0xMDkuMyAyMDBsLTkzLjIgMGMtNi41IDAtMTAuNSA3LjUtNi41IDEyLjcgNDIuMiA1NC4zIDcxLjcgMTE3LjggOTEuNyAxODcuM2wxMDMuNSAwYy0xNi4yLTY5LjctMzguNy0xMzMuNy04Mi41LTE5My41LTMtNC04LTYuNS0xMy02LjV6bTQ3LjgtODhjNjguNSAxMDggMTMwIDIzNC41IDEzOC4yIDM2OEw0MDkgNDgwYy0xMi0xMzgtNjguNC0yNjUtMTQzLjItMzY4bC0xMDguNyAwek00MDguOSA0My41Yy0xLjgtNi44LTguMi0xMS41LTE1LjItMTEuNWwtODguMyAwYy01LjMgMC05IDUtNy44IDEwLjMgMTMuMiA0Ni41IDIyLjMgOTUuNSAyNi41IDE0NiA0OC4yIDg2LjIgNzkuNyAxNzguMyA5MC42IDI3MC44IDE1LjgtNjAuNSAyNS4zLTEzMy41IDI1LjMtMjAzIDAtNzMuNi0xMi4xLTE0NS4xLTMxLjEtMjEyLjZ6Il19LE5jdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJmb3Vyc3F1YXJlIixpY29uOlszODQsNTEyLFtdLCJmMTgwIiwiTTMzMS4xIDNMNTcuOSAzQzIwLjQgMyA4IDMxLjMgOCA0OS4xTDggNDgyLjljMCAyMC4zIDEyLjEgMjcuNyAxOC4yIDMwLjEgNi4yIDIuNSAyMi44IDQuNiAzMi45LTcuMSAxMjguOS0xNDkuNCAxMzEuMS0xNTEuOSAxMzEuMS0xNTEuOSAzLjEtMy40IDMuNC0zLjEgNi44LTMuMWw4My40IDBjMzUuMSAwIDQwLjYtMjUuMiA0NC4zLTM5LjdsNDguNi0yNDNDMzgxLjggMjUuOCAzNzEuMSAzIDMzMS4xIDN6TTMxNC44IDc2LjhsLTExLjQgNTkuN2MtMS4yIDYuNS05LjUgMTMuMi0xNi45IDEzLjJsLTEwNi40IDBjLTEyIDAtMjAuNiA4LjMtMjAuNiAyMC4zbDAgMTNjMCAxMiA4LjYgMjAuNiAyMC42IDIwLjZsOTAuNCAwYzguMyAwIDE2LjYgOS4yIDE0LjggMTguMi0xLjggOC45LTEwLjUgNTMuOC0xMS40IDU4LjgtLjkgNC45LTYuOCAxMy41LTE2LjkgMTMuNWwtNzMuNSAwYy0xMy41IDAtMTcuMiAxLjgtMjYuNSAxMi42IDAgMC04LjkgMTEuNC04OS41IDEwOC4zLS45IC45LTEuOCAuNi0xLjgtLjNsMC0zMzguOGMwLTcuNyA2LjgtMTYuNiAxNi42LTE2LjZsMjE5IDBjOC4yIDAgMTUuNiA3LjcgMTMuNSAxNy41eiJdfSxGY3Q9e3ByZWZpeDoiZmFiIixpY29uTmFtZToic2hpcnRzaW5idWxrIixpY29uOls0NDgsNTEyLFtdLCJmMjE0IiwiTTEwMCA0MTAuM2wzMC42IDEzLjQgNC40LTkuOS0zMC42LTEzLjQtNC40IDkuOXptMzkuNCAxNy41bDMwLjYgMTMuNCA0LjQtOS45LTMwLjYtMTMuNC00LjQgOS45em0xNzIuMS0xNGw0LjQgOS45IDMwLjYtMTMuNC00LjQtOS45LTMwLjYgMTMuNHpNMTc5LjEgNDQ1bDMwLjMgMTMuNyA0LjQtOS45LTMwLjMtMTMuNC00LjQgOS42ek02MC40IDM5Mi44bDMwLjYgMTMuNCA0LjQtOS42LTMwLjYtMTMuNy00LjQgOS45em0yMTEuNCAzOC41bDQuNCA5LjkgMzAuNi0xMy40LTQuNC05LjktMzAuNiAxMy40em0tMzkuMyAxNy41bDQuNCA5LjkgMzAuNi0xMy43LTQuNC05LjYtMzAuNiAxMy40em0xMTguNC01Mi4ybDQuNCA5LjYgMzAuNi0xMy40LTQuNC05LjktMzAuNiAxMy43ek0xNzAgNDYuNmwtMzMuNSAwIDAgMTAuNSAzMy41IDAgMC0xMC41em0tNDcuMiAwbC0zMy42IDAgMCAxMC41IDMzLjUgMCAuMS0xMC41em0tNDcuMyAwbC0zMy4yIDAgMCAxMC41IDMzLjMgMC0uMS0xMC41em0xNDEuNSAwbC0zMy4yIDAgMCAxMC41IDMzLjIgMCAwLTEwLjV6bTk0LjUgMGwtMzMuNSAwIDAgMTAuNSAzMy41IDAgMC0xMC41em00Ny4zIDBsLTMzLjUgMCAwIDEwLjUgMzMuNSAwIDAtMTAuNXptLTk0LjYgMGwtMzMuMiAwIDAgMTAuNSAzMy4yIDAgMC0xMC41em0xNDEuNSAwbC0zMy4zIDAgMCAxMC41IDMzLjMgMCAwLTEwLjV6TTUyLjggMzUxLjFsLTEwLjggMCAwIDMzLjUgMTAuOCAwIDAtMzMuNXptNzAtMjE1LjlsLTMzLjYgMCAwIDEwLjUgMzMuNSAwIC4xLTEwLjV6bS03MCAxMC42bDIyLjggMCAwLTEwLjUtMzMuNiAwIDAgMzMuNSAxMC44IDAgMC0yM3pNMjIxLjcgMzc0LjRhOTEuMyA5MS4zIDAgMSAwIDAtMTgyLjYgOTEuMyA5MS4zIDAgMSAwIDAgMTgyLjZ6TTE3My41IDI2My4zYzAtMjUuNCAyOS41LTMxLjggNDkuNi0zMS44IDE2LjkgMCAyOS4yIDUuOCA0NC4zIDEybC04LjggMTYuOS0uOSAwYy02LjQtOS45LTI0LjgtMTMuMS0zNS42LTEzLjEtOSAwLTI5LjggMS44LTI5LjggMTQuOSAwIDIxLjYgNzguNS0xMC4yIDc4LjUgMzcuOSAwIDI1LjQtMzEuNSAzMS4yLTUxIDMxLjItMTguMSAwLTMyLjQtMi45LTQ3LjItMTIuMmw5LTE4LjQgLjkgMGM2LjEgMTIuMiAyMy42IDE0LjkgMzUuOSAxNC45IDguNyAwIDMyLjctMS4yIDMyLjctMTQuMyAwLTI2LjEtNzcuNiA2LjMtNzcuNi0zOHpNNTIuOCAxNzguNGwtMTAuOCAwIDAgMzMuNiAxMC44IDAgMC0zMy42ek0zOTUuMiAzODQuNmwxMC44IDAgMC0zMy41LTEwLjggMCAwIDMzLjV6TTUyLjggMzA3LjlsLTEwLjggMCAwIDMzLjUgMTAuOCAwIDAtMzMuNXpNMCAzLjdsMCA0MDYgMjIxLjcgOTguNiAyMjYuMy05OC42IDAtNDA2LTQ0OCAwek00MTguOCAzOTAuOGwtMTk2LjggODUuNy0xOTIuOC04NS43IDAtMjcwLjEgMzg5LjcgMCAwIDI3MC4xLS4xIDB6bTAtMjk5LjNsLTM4OS42IDAgMC01OC42IDM4OS43IDAgMCA1OC42LS4xIDB6TTUyLjggMjIxLjZsLTEwLjggMCAwIDMzLjUgMTAuOCAwIDAtMzMuNXptMCA0My4ybC0xMC44IDAgMCAzMy41IDEwLjggMCAwLTMzLjV6TTE3MCAxMzUuMmwtMzMuNSAwIDAgMTAuNSAzMy41IDAgMC0xMC41ek0zOTUuMiAyOTguM2wxMC44IDAgMC0zMy41LTEwLjggMCAwIDMzLjV6bTAtNDMuMmwxMC44IDAgMC0zMy41LTEwLjggMCAwIDMzLjV6TTIxNyAxMzUuMmwtMzMuMiAwIDAgMTAuNSAzMy4yIDAgMC0xMC41ek0zOTUuMiAyMTJsMTAuOCAwIDAtMzMuNS0xMC44IDAgMCAzMy41em0wIDEyOS41bDEwLjggMCAwLTMzLjUtMTAuOCAwIDAgMzMuNXptLTEzMS0yMDYuM2wtMzMuMiAwIDAgMTAuNSAzMy4yIDAgMC0xMC41em00Ny4zIDBsLTMzLjUgMCAwIDEwLjUgMzMuNSAwIDAtMTAuNXptODMuNyAzMy42bDEwLjggMCAwLTMzLjUtMzMuNSAwIDAgMTAuNSAyMi44IDAtLjEgMjN6bS0zNi40LTMzLjZsLTMzLjUgMCAwIDEwLjUgMzMuNSAwIDAtMTAuNXoiXX0sT2N0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6Im1pbnRiaXQiLGljb246WzUxMiw1MTIsW10sImU2MmYiLCJNNzMuMiA1MTJsMC03My4xIDI5Mi41IDAgMC03My4yIDczLjIgMCAwLTE0Ni4zIDczLjEgMCAwLTIxOS40LTIxOS40IDAgMCA3My4xLTE0Ni4zIDAgMCA3My4yLTczLjEgMCAwIDI5Mi42LTczLjIgMCAwIDczLjEgNzMuMiAwem03My4xLTIxOS40bDczLjIgMCAwIDczLjEtNzMuMiAwIDAtNzMuMXptNzMuMi03My4xbDczLjEgMCAwIDczLjEtNzMuMiAwIDAtNzMuMiAuMSAuMXptNzMuMSAwbDAtNzMuMiA3My4yIDAgMCA3My4xLTczLjIgMCAwIC4xek0zNjUuNyA3My4xbDczLjIgMCAwIDczLjItNzMuMiAwIDAtNzMuMnoiXX0sUmN0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6Inp1bGlwIixpY29uOls0NDgsNTEyLFtdLCJlODUzIiwiTTQyNCA5OWMwIDIyLjYtMTAuMSA0Mi42LTI1LjUgNTQuOEwyNDkuMyAyODcuN2MtMi44IDIuNC02LjQtMS41LTQuNC00LjdsNTQuNy0xMTAuMWMxLjUtMy4xLS41LTYuOS0zLjYtNi45TDgzLjggMTY2QzUwLjkgMTY2IDI0IDEzNS45IDI0IDk5IDI0IDYyLjEgNTAuOSAzMiA4My44IDMybDI4MC40IDBDMzk3LjEgMzIgNDI0IDYyLjEgNDI0IDk5ek04My44IDQ4MGwyODAuNCAwYzMyLjkgMCA1OS44LTMwLjIgNTkuOC02N3MtMjYuOS02Ny01OS44LTY3bC0yMTIuMyAwYy0zLjEgMC01LjEtMy44LTMuNi02LjlMMjAzLjEgMjI5YzItMy4yLTEuNi03LjEtNC40LTQuN0w0OS41IDM1OC4yQzM0LjEgMzcwLjQgMjQgMzkwLjQgMjQgNDEzIDI0IDQ0OS44IDUwLjkgNDgwIDgzLjggNDgweiJdfSxCY3Q9e3ByZWZpeDoiZmFiIixpY29uTmFtZToic3RheWxpbmtlZCIsaWNvbjpbNDQ4LDUxMixbXSwiZjNmNSIsIk0zODYuNyAyOTIuNWwyLjcgMi43LTE3MC0xNjcuM2MtMy41LTMuNS05LjctMy43LTEzLjgtLjVMMTQ4LjMgMTcxYy00LjIgMy4yLTQuNiA4LjctMS4xIDEyLjJsNjguMSA2NC4zYzMuNiAzLjUgOS45IDMuNyAxNCAuNWwuMS0uMWM0LjEtMy4yIDEwLjQtMyAxNCAuNWw4NCA4MS4zYzMuNiAzLjUgMy4yIDktLjkgMTIuMmwtOTMuMiA3NGMtNC4yIDMuMy0xMC41IDMuMS0xNC4yLS40TDY3LjIgMjY4Yy0zLjUtMy41LTkuNy0zLjctMTMuOS0uNUw3LjUgMzAyLjRjLTQuMiAzLjItNC43IDguNy0xLjIgMTIuMkwyMTUgNTEwLjdzNy40IDYuOCAxNy4zLS44TDQzMC4zIDM0NmM0LTMuMiA0LjQtOC43IC43LTEyLjJsLTQ0LjMtNDEuM3ptNTQuNS04My40TDIzMC43IDIuNWMtMS41LTEuMi04LTUuNS0xNi4zIDEuMUw3LjYgMTY1LjdjLTQuMiAzLjItNC44IDguNy0xLjIgMTIuMmw0Mi4zIDQxLjcgMTcxLjcgMTY1LjFjMy43IDMuNSAxMC4xIDMuNyAxNC4zIC40bDUwLjItMzguOC0uMy0uMyA3LjctNmM0LjItMy4yIDQuNi04LjcgLjktMTIuMmwtNTcuMS01NC40Yy0zLjYtMy41LTEwLTMuNy0xNC4yLS41bC0uMSAuMWMtNC4yIDMuMi0xMC41IDMuMS0xNC4yLS40TDExMyAxODAuOGMtMy42LTMuNS0zLjEtOC45IDEuMS0xMi4ybDkyLjItNzEuNWM0LjEtMy4yIDEwLjMtMyAxMy45IC41bDE2MC40IDE1OWMzLjcgMy41IDEwIDMuNyAxNC4xIC41bDQ1LjgtMzUuOGM0LjEtMy4yIDQuNC04LjcgLjctMTIuMnoiXX0sSGN0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6IndlYmZsb3ciLGljb246WzY0MCw1MTIsW10sImU2NWMiLCJNNjQwIDY0bC0yMDQuMiAzOTkuMi0xOTEuOCAwIDg1LjUtMTY1LjUtMy44IDBDMjU1LjEgMzg5LjMgMTQ5LjkgNDQ5LjUgMCA0NjMuMkwwIDMwMC4xczk1LjktNS43IDE1Mi4zLTY0LjlsLTE1Mi4zIDAgMC0xNzEuMiAxNzEuMSAwIDAgMTQwLjggMy44IDAgNzAtMTQwLjggMTI5LjQgMCAwIDEzOS45IDMuOCAwIDcyLjYtMTM5LjkgMTg5LjMgMHoiXX0scWN0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6InJlbnJlbiIsaWNvbjpbNTEyLDUxMixbXSwiZjE4YiIsIk0yMTQgMTY5LjFDMjE0IDI3OS41IDE1MyAzNzQuNSA2Ni40IDQxNi41IDMwIDM3My4yIDggMzE3LjcgOCAyNTYuNiA4IDEzMy45IDk3LjEgMzIuMiAyMTQgMTIuNWwwIDE1Ni42ek0yNTUgNTA0Yy00Mi45IDAtODMuMy0xMS0xMTguNS0zMC40IDU3LjItMzYuMSAxMDMuNC05MC43IDExOC41LTE1NC42IDE1LjUgNjMuOSA2MS43IDExOC41IDExOC44IDE1NC43LTM1LjEgMTkuMy03NS41IDMwLjMtMTE4LjggMzAuM3ptMTkwLjYtODcuNUMzNTkgMzc0LjUgMjk4IDI3OS42IDI5OCAxNjkuMWwwLTE1Ni42YzExNi45IDE5LjcgMjA2IDEyMS40IDIwNiAyNDQuMSAwIDYxLjEtMjIgMTE2LjYtNTguNCAxNTkuOXoiXX0samN0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImtvLWZpIixpY29uOls1MTIsNTEyLFtdLCJlODU2IiwiTTI0OS44IDc1Yzg5LjggMCAxMTMgMS4xIDE0Ni4zIDQuNCA3OC4xIDcuOCAxMjMuNiA1NiAxMjMuNiAxMjUuMmwwIDguOWMwIDY0LjMtNDcuMSAxMTYuOS0xMTAuOCAxMjIuNC01IDE2LjYtMTIuOCAzMy4yLTIzLjMgNDkuOS0yNC40IDM3LjctNzMuMSA4NS4zLTE2Mi45IDg1LjNsLTE3LjcgMGMtNzMuMSAwLTEyOS43LTMxLjYtMTYzLjUtODkuMi0yOS45LTUwLjQtMzMuOC0xMDYuNC0zMy44LTE4MS4yIDAtNzMuNyA0NC40LTExMy42IDk2LjQtMTIwLjIgMzkuMy01IDg4LjEtNS41IDE0NS43LTUuNXptMCA0MS42Yy02MC40IDAtMTAzLjYgLjUtMTM2LjMgNS41LTQ2IDYuNy02NC4zIDMyLjctNjQuMyA3OS4ybC4yIDI1LjdjMS4yIDU3LjMgNy4xIDk3LjEgMjcuNSAxMzQuNSAyNi42IDQ5LjMgNzQuOCA2OC4yIDEyOS43IDY4LjJsMTcuMiAwYzcyIDAgMTA3LTM0LjkgMTI2LjMtNjUuNCA5LjQtMTUuNSAxNy43LTMyLjcgMjIuMi01NC4zbDMuMy0xMy44IDE5LjkgMGM0NC4zIDAgODIuNi0zNiA4Mi42LTgybDAtOC4zYzAtNTEuNS0zMi4yLTc4LjctODguMS04NS4zLTMxLjYtMi44LTUwLjQtMy45LTE0MC4yLTMuOXpNMjY3IDE2OS4yYzM4LjIgMCA2NC44IDMxLjYgNjQuOCA2NyAwIDMyLjctMTguMyA2MS00Mi4xIDgzLjEtMTUgMTUtMzkuMyAzMC41LTU1LjkgNDAuNS00LjQgMi44LTEwIDQuNC0xNi43IDQuNC01LjUgMC0xMC41LTEuNy0xNS41LTQuNC0xNi42LTEwLTQxLTI1LjUtNTYuNS00MC41LTIxLjgtMjAuOC0zOS4yLTQ2LjktNDEuMy03N2wtLjItNi4xYzAtMzUuNSAyNS41LTY3IDY0LjMtNjcgMjIuNyAwIDM4LjggMTEuNiA0OS4zIDI3LjcgMTEuNi0xNi4xIDI3LjItMjcuNyA0OS45LTI3Ljd6bTEyMi41LTMuOWMyOC4zIDAgNDMuOCAxNi42IDQzLjggNDMuMnMtMTUuNSA0Mi43LTQzLjggNDIuN2MtOC45IDAtMTMuOC01LTEzLjgtMTEuN2wwLTYyLjZjMC02LjcgNS0xMS42IDEzLjgtMTEuNnoiXX0sVmN0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6InJldiIsaWNvbjpbNDQ4LDUxMixbXSwiZjViMiIsIk0xNTguNyAyNzQuOWE2NS42IDY1LjYgMCAxIDEgMTMxLjIgMCA2NS42IDY1LjYgMCAxIDEgLTEzMS4yIDB6bTI3MC43LTUuMWwtLjEgMGMtLjctMjkuMy03LjctNTguMi0yMC41LTg0LjZzLTMxLjItNDkuNy01My44LTY4LjRMMzA5LjYgMTQzYzIyIDE0LjIgNDAuMSAzMy44IDUyLjcgNTYuOHMxOS4xIDQ4LjggMTkuMSA3NS4xYzAgODYuNi03MC41IDE1Ny4xLTE1Ny4xIDE1Ny4xUzY3LjIgMzYxLjUgNjcuMiAyNzQuOWMwLTgxLjkgNjMtMTQ5LjMgMTQzLTE1Ni40bDAgMzkuMSAxMDguOC02Mi44LTEwOC44LTYyLjggMCAzOC4zYy0xMDYuNyA3LjItMTkxIDk2LTE5MSAyMDQuNiAwIDExMS42IDg5LjEgMjAyLjMgMjAwLjEgMjA1bDAgLjEgMjEwLjIgMCAwLTIxMC4yeiJdfSxVY3Q9e3ByZWZpeDoiZmFiIixpY29uTmFtZToia2V5Y2RuIixpY29uOls1MTIsNTEyLFtdLCJmM2JhIiwiTTYzLjggNDA5LjNsNjAuNS01OWMzMi4xIDQyLjggNzEuMSA2NiAxMjYuNiA2Ny40IDMwLjUgLjcgNjAuMy03IDg2LjQtMjIuNCA1LjEgNS4zIDE4LjUgMTkuNSAyMC45IDIyLTMyLjIgMjAuNy02OS42IDMxLjEtMTA4LjEgMzAuMi00My4zLTEuMS04NC42LTE2LjctMTE3LjctNDQuNCAuMy0uNi0zOC4yIDM3LjUtMzguNiAzNy45IDkuNSAyOS44LTEzLjEgNjIuNC00Ni4zIDYyLjQtMjYuOC0uMS00Ny41LTIxLjctNDcuNS00OC41IDAtMzQuMyAzMy4xLTU2LjYgNjMuOC00NS42ek00MTguNyAxNTYuOWMxOS4xIDMxLjMgMjkuNiA2Ny40IDI4LjcgMTA0LTEuMSA0NC44LTE5IDg3LjUtNDguNiAxMjEgLjMgLjMgMjMuOCAyNS4yIDI0LjEgMjUuNSA5LjYtMS4zIDE5LjIgMiAyNS45IDkuMSAxMS4zIDEyIDEwLjkgMzAuOS0xLjEgNDIuNC0xMiAxMS4zLTMwLjkgMTAuOS00Mi40LTEuMS02LjctNy05LjQtMTYuOC03LjYtMjYuMy0yNC45LTI2LjYtNDQuNC00Ny4yLTQ0LjQtNDcuMiA0Mi43LTM0LjEgNjMuMy03OS42IDY0LjQtMTI0LjIgLjctMjguOS03LjItNTcuMi0yMS4xLTgyLjJsMjIuMS0yMXpNMTA0IDUzLjFjNi43IDcgOS40IDE2LjggNy42IDI2LjNsNDUuOSA0OC4xYy00LjcgMy44LTEzLjMgMTAuNC0yMi44IDIxLjMtMjUuNCAyOC41LTM5LjYgNjQuOC00MC43IDEwMi45LS43IDI4LjkgNi4xIDU3LjIgMjAgODIuNEw5MiAzNTUuNmMtMTkuMy0zMS42LTI4LjktNjcuNy0yNy44LTEwNC43IDEtNDQuNiAxOC4zLTg3LjYgNDcuNS0xMjEuMUw4Ni40IDEwMy40Yy05LjYgMS4zLTE5LjItMi0yNS45LTkuMS0xMS4zLTEyLTEwLjktMzAuOSAxLjEtNDIuNCAxMS45LTExLjIgMzAuNi0xMC45IDQyLjQgMS4yek00NjQuOSA4YzI2IDAgNDcuMSAyMi40IDQ3LjEgNDguM1M0OTAuOSAxMDQgNDY0LjkgMTA0Yy02LjMgLjEtMTQtMS4xLTE1LjktMS44bC02Mi45IDU5LjdjLTMyLjctNDMuNi03Ni43LTY1LjktMTI2LjktNjcuMi0zMC41LS43LTYwLjMgNi44LTg2LjIgMjIuNGwtMjEuMS0yMkMxODQuMSA3NC4zIDIyMS41IDY0IDI2MCA2NC45IDMwMy4zIDY2IDM0NC42IDgxLjYgMzc3LjcgMTA5LjVsNDEuMS0zOC42Yy0xLjUtNC43LTIuMi05LjYtMi4yLTE0LjUtLjEtMjYuNyAyMi4zLTQ4LjQgNDguMy00OC40ek0yNTYuNyAxMTMuNGM1LjUgMCAxMC45IC40IDE2LjQgMS4xIDc4LjEgOS44IDEzMy40IDgxLjEgMTIzLjggMTU5LjEtOS44IDc4LjEtODEuMSAxMzMuNC0xNTkuMSAxMjMuOC03OC4xLTkuOC0xMzMuNC04MS4xLTEyMy44LTE1OS4yIDkuMy03Mi40IDcwLjEtMTI0LjYgMTQyLjctMTI0Ljh6bS01OSAxMTkuNGMuNiAyMi43IDEyLjIgNDEuOCAzMi40IDUyLjJsLTExIDUxLjcgNzMuNyAwLTExLTUxLjdjMjAuMS0xMC45IDMyLjEtMjkgMzIuNC01Mi4yLS40LTMyLjgtMjUuOC01Ny41LTU4LjMtNTguMy0zMi4xIC44LTU3LjMgMjQuOC01OC4yIDU4LjN6Il19LFdjdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJoaXJlLWEtaGVscGVyIixpY29uOls1MTIsNTEyLFtdLCJmM2IwIiwiTTQ0My4xIDBMNzEuOSAwQzY3LjkgMzcuMyAzNy40IDY3LjggMCA3MS43TDAgNDQzLjJjMzcuNCA0LjkgNjYgMzIuNCA3MS45IDY4LjhsMzcyLjIgMGMzLTM2LjQgMzIuNS02NS44IDY3LjktNjkuOGwwLTM3MC41QzQ3NS42IDY1LjggNDQ3IDM2LjQgNDQzLjEgMHptLTM3IDQwNC45Yy0zNi4zIDAtMTguOC0yLTU1LjEtMi0zNS44IDAtMjEgMi01Ni4xIDItNS45IDAtNC45LTguMiAwLTkuOCAyMi44LTcuNiAyMi45LTEwLjIgMjQuNi0xMi44IDEwLjQtMTUuNiA1LjktODMgNS45LTExMyAwLTUuMy02LjQtMTIuOC0xMy44LTEyLjhsLTExMS4yIDBjLTcuNCAwLTEzLjggNy41LTEzLjggMTIuOCAwIDMwLTQuNSA5Ny40IDUuOSAxMTMgMS43IDIuNSAxLjggNS4yIDI0LjYgMTIuOCA0LjkgMS42IDYgOS44IDAgOS44LTM1LjEgMC0yMC4zLTItNTYuMS0yLTM2LjMgMC0xOC44IDItNTUuMSAyLTcuOSAwLTUuOC0xMC44IDAtMTAuOCAxMC4yLTMuNCAxMy41LTMuNSAyMS43LTEzLjggNy43LTEyLjkgNy45LTQ0LjQgNy45LTEyNy44bDAtMTAxLjJjMC0yMi4yLTEyLjItMjguMy0yOC42LTMyLjQtOC44LTIuMi00LTExLjggMS0xMS44IDM2LjUgMCAyMC42IDIgNTcuMSAyIDMyLjcgMCAxNi41LTIgNDkuMi0yIDMuMyAwIDguNSA4LjMgMSAxMC44LTQuOSAxLjYtMjcuNiAzLjctMjcuNiAzOS4zIDAgNDUuNi0uMiA1NS44IDEgNjguOCAwIDEuMyAyLjMgMTIuOCAxMi44IDEyLjhsMTA5LjIgMGMxMC41IDAgMTIuOC0xMS41IDEyLjgtMTIuOCAxLjItMTMgMS0yMy4yIDEtNjguOCAwLTM1LjYtMjIuNy0zNy43LTI3LjYtMzkuMy03LjUtMi41LTIuMy0xMC44IDEtMTAuOCAzMi43IDAgMTYuNSAyIDQ5LjIgMiAzNi41IDAgMjAuNi0yIDU3LjEtMiA0LjkgMCA5LjkgOS42IDEgMTEuOC0xNi40IDQuMS0yOC42IDEwLjMtMjguNiAzMi40bDAgMTAxLjJjMCA4My40IC4xIDExNC45IDcuOSAxMjcuOCA4LjIgMTAuMiAxMS40IDEwLjQgMjEuNyAxMy44IDUuOCAwIDcuOCAxMC44IDAgMTAuOHoiXX0sc25lPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6InNxdWFyZS1oYWNrZXItbmV3cyIsaWNvbjpbNDQ4LDUxMixbImhhY2tlci1uZXdzLXNxdWFyZSJdLCJmM2FmIiwiTTQ0OCA5NmMwLTM1LjMtMjguNy02NC02NC02NEw2NCAzMkMyOC43IDMyIDAgNjAuNyAwIDk2TDAgNDE2YzAgMzUuMyAyOC43IDY0IDY0IDY0bDMyMCAwYzM1LjMgMCA2NC0yOC43IDY0LTY0bDAtMzIwek0yMSAyMjkuMnMuMS0uMSAuMS0uMiAuMS0uMiAuMi0uMmMwIC4xIDAgLjMtLjEgLjRsLS4yIDB6TTIzOS4yIDM4NGwtMzEuNCAwIDAtMTAyLjctNzkuOC0xNTMuMyAzNy4zIDBjNDEuNSA3Ny43IDQ4LjEgOTUuOCA1NC4xIDExMiAxLjYgNC4zIDMuMSA4LjUgNS4yIDEzLjYgMy4yLTcgNS4xLTExLjkgNy4xLTE3LjMgNS45LTE1LjMgMTIuOC0zMy4yIDUzLjUtMTA4LjNsMzQuOCAwLTgwLjggMTU1LjEgMCAxMDAuOXoiXX0sR2N0PXNuZSxZY3Q9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiY3JlYXRpdmUtY29tbW9ucy1wZC1hbHQiLGljb246WzUxMiw1MTIsW10sImY0ZWQiLCJNMjU1LjYgOEMxMTIuNyA4IDggMTIzLjEgOCAyNTYgOCAzOTQuNSAxMjEuNiA1MDQgMjU1LjYgNTA0IDM4NS41IDUwNCA1MDQgNDAzLjEgNTA0IDI1NiA1MDQgMTE4LjEgMzk3LjQgOCAyNTUuNiA4em0uOCA0NTAuOGMtMTEyLjUgMC0yMDMuNy05My0yMDMuNy0yMDIuOCAwLTEwNS40IDg1LjUtMjAzLjMgMjAzLjctMjAzLjMgMTEyLjYgMCAyMDIuOSA4OS41IDIwMi44IDIwMy4zIDAgMTIxLjctOTkuNiAyMDIuOC0yMDIuOCAyMDIuOHpNMzI0LjcgMTg2bC01My4yIDAgMCAxMzcuMiA1My4yIDBjMjEuNCAwIDcwLTUuMSA3MC02OC42IDAtNjMuNC00OC42LTY4LjYtNzAtNjguNnptLjggMTA4LjVsLTE5LjkgMCAwLTc5LjcgMTkuNC0uMWMzLjggMCAzNS0yLjEgMzUgMzkuOSAwIDI0LjYtMTAuNSAzOS45LTM0LjUgMzkuOXpNMjExLjcgMTg2bC02OC4yIDAgMCAxMzcuMyAzNC42IDAgMC00NC4zIDI3IDBjNTQuMSAwIDU3LjEtMzcuNSA1Ny4xLTQ2LjUgMC0zMS0xNi44LTQ2LjUtNTAuNS00Ni41em0tNC45IDY3LjNsLTI5LjIgMCAwLTQxLjYgMjguMyAwYzMwLjkgMCAyOC44IDQxLjYgLjkgNDEuNnoiXX0sWmN0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6Im9yY2lkIixpY29uOls1MTIsNTEyLFtdLCJmOGQyIiwiTTI5NC43IDE4OC4ybC00NS45IDAgMCAxNTMuOCA0Ny41IDBjNjcuNiAwIDgzLjEtNTEuMyA4My4xLTc2LjkgMC00MS42LTI2LjUtNzYuOS04NC43LTc2Ljl6TTI1NiA4YTI0OCAyNDggMCAxIDAgMCA0OTYgMjQ4IDI0OCAwIDEgMCAwLTQ5NnpNMTc1LjIgMzY4LjhsLTI5LjggMCAwLTIwNy41IDI5LjggMCAwIDIwNy41ek0xNjAuMyA5OC41YTE5LjYgMTkuNiAwIDEgMSAwIDM5LjIgMTkuNiAxOS42IDAgMSAxIDAtMzkuMnpNMzAwIDM2OWwtODEgMCAwLTIwNy43IDgwLjYgMGM3Ni43IDAgMTEwLjQgNTQuOCAxMTAuNCAxMDMuOSAwIDUzLjMtNDEuNyAxMDMuOS0xMTAgMTAzLjl6Il19LGxuZT17cHJlZml4OiJmYWIiLGljb25OYW1lOiJib2FyZC1nYW1lLWdlZWsiLGljb246WzY0MCw1MTIsWyJiZ2ciXSwiZTg1NSIsIk0xNjguOCAxNjguM2wzMC4xLTguMi0xMi4zIDk4LjggMTYuNyAxNi4xLTM4LjkgOTEuMi0xMTEuOCA0MS4yLTUyLjYtMTMxLjggMTcuNy0xNy0xMC41LTg0LjMgMTkxLjItNzAuMy0yOS41IDY0LjN6bTE4MC42IDE2LjVjMTEuNiAwIDE5IDcuNCAxOSAxNy45bDAgMzEuNWMwIDkuNy02LjMgMTguOS0xOS41IDIyLjEgMTMuMSAzLjEgMjAuNSAxMiAyMC41IDIxLjRsMCAzMC45YzAgMTEuMS03LjQgMTguMS0xOSAxOC4xbC04OS4xIDAgMC0xNDEuOCA4OCAwek0yOTggMjk5LjhsMzMgMGMxLjUgMCAyLjEtMSAyLjEtMi4xbDAtMjYuOWMwLTEtLjYtMi4zLTIuMS0yLjNsLTMzIDAgMCAzMS4zem0wLTU3LjNsMzMgMGMxLjUgMCAyLjEtMS4xIDIuMS0yLjNsMC0yNC44YzAtMS0uNi0yLjMtMi4xLTIuM2wtMzMgMCAwIDI5LjR6bTIwNC4xLTI3LjJsLTY1LjYgMGMtMSAwLTIuMSAxLjEtMi4xIDIuM2wwIDc2LjFjMCAxLjMgMSAyLjEgMi4xIDIuMWwyOS43IDBjMS41IDAgMi4zLS44IDIuMy0yLjFsMC0yNC0xOS4zIDAgMTIuOC0zMCA0MC4xIDAgMCA3MC44YzAgOS4yLTcuMiAxNi4yLTE2LjMgMTYuMmwtNzEuNSAwYy05LjEgMC0xNi41LTctMTYuNS0xNi4ybDAtMTA5LjdjMC04LjYgNy40LTE2IDE2LjUtMTZsODcuOCAwIDAgMzAuNXptMTMyLjYgMGwtNjUuNiAwYy0xLjEgMC0yLjEgMS4xLTIuMSAyLjNsMCA3Ni4xYzAgMS4zIDEgMi4xIDIuMSAyLjFsMjkuNiAwYzEuNSAwIDIuMy0uOCAyLjMtMi4xbDAtMjQtMTkuMiAwIDEyLjgtMzAgNDAuMSAwIDAgNzAuOGMwIDkuMi03LjIgMTYuMi0xNi4zIDE2LjJsLTcxLjUgMGMtOS4xIDAtMTYuNS02LjktMTYuNS0xNi4ybDAtMTA5LjdjMC04LjYgNy40LTE2IDE2LjUtMTZsODcuOCAwIDAgMzAuNXoiXX0sWGN0PWxuZSxRY3Q9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiYmVoYW5jZSIsaWNvbjpbNTc2LDUxMixbXSwiZjFiNCIsIk0yMzIgMjM3LjJjMzEuOC0xNS4yIDQ4LjQtMzguMiA0OC40LTc0IDAtNzAuNi01Mi42LTg3LjgtMTEzLjMtODcuOGwtMTY3LjEgMCAwIDM1NC40IDE3MS44IDBjNjQuNCAwIDEyNC45LTMwLjkgMTI0LjktMTAyLjkgMC00NC41LTIxLjEtNzcuNC02NC43LTg5Ljd6TTc3LjkgMTM1LjlsNzMuMSAwYzI4LjEgMCA1My40IDcuOSA1My40IDQwLjUgMCAzMC4xLTE5LjcgNDIuMi00Ny41IDQyLjJsLTc5IDAgMC04Mi43em04My4zIDIzMy43bC04My4zIDAgMC05Ny42IDg0LjkgMGMzNC4zIDAgNTYgMTQuMyA1NiA1MC42IDAgMzUuOC0yNS45IDQ3LTU3LjYgNDd6TTUxOS43IDEyOC45bC0xNDMuNyAwIDAtMzQuOSAxNDMuNyAwIDAgMzQuOXpNNTc2IDMwNS4yYzAtNzUuOS00NC40LTEzOS4yLTEyNC45LTEzOS4yLTc4LjIgMC0xMzEuMyA1OC44LTEzMS4zIDEzNS44IDAgNzkuOSA1MC4zIDEzNC43IDEzMS4zIDEzNC43IDYxLjMgMCAxMDEtMjcuNiAxMjAuMS04Ni4zbC02Mi4yIDBjLTYuNyAyMS45LTM0LjMgMzMuNS01NS43IDMzLjUtNDEuMyAwLTYzLTI0LjItNjMtNjUuM2wxODUuMSAwYy4zLTQuMiAuNi04LjcgLjYtMTMuMnpNMzkwLjQgMjc0YzIuMy0zMy43IDI0LjctNTQuOCA1OC41LTU0LjggMzUuNCAwIDUzLjIgMjAuOCA1Ni4yIDU0LjhsLTExNC43IDB6Il19LEpjdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJtb25lcm8iLGljb246WzUxMiw1MTIsW10sImYzZDAiLCJNMzYwIDM4NGwxMDguNCAwQzQyNSA0NTUuOSAzNDYuMSA1MDQgMjU2IDUwNFM4NyA0NTUuOSA0My42IDM4NGwxMDguNCAwIDAtMTI3LjggMTA0IDEwNC44IDEwNC0xMDUgMCAxMjh6TTk2IDMzNmwwLTIwOCAxNTkuNCAxNTkuNCAxNjAuNi0xNTkuNCAwIDIwOCA3NC44IDBjOC41LTI1LjEgMTMuMi01MiAxMy4yLTgwIDAtMTM3LTExMS0yNDgtMjQ4LTI0OFM4IDExOSA4IDI1NmMwIDI4IDQuNiA1NC45IDEzLjIgODBMOTYgMzM2eiJdfSxLY3Q9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiZmlnbWEiLGljb246WzM4NCw1MTIsW10sImY3OTkiLCJNMTQgOTUuOEMxNCA0Mi45IDU2LjkgMCAxMDkuOCAwTDI3NC4yIDBjNTIuOSAwIDk1LjggNDIuOSA5NS44IDk1LjggMCAzMy41LTE3LjIgNjMtNDMuMiA4MC4xIDI2IDE3LjEgNDMuMiA0Ni42IDQzLjIgODAuMSAwIDUyLjktNDIuOSA5NS44LTk1LjggOTUuOGwtMi4xIDBjLTI0LjggMC00Ny40LTkuNC02NC40LTI0LjlsMCA4OC4zYzAgNTMuNi00NCA5Ni44LTk3LjQgOTYuOC01Mi44IDAtOTYuMy00Mi44LTk2LjMtOTUuOCAwLTMzLjUgMTcuMi02MyA0My4yLTgwLjEtMjYtMTcuMS00My4yLTQ2LjYtNDMuMi04MC4xczE3LjItNjMgNDMuMi04MC4xQzMxLjIgMTU4LjggMTQgMTI5LjMgMTQgOTUuOHptMTYyLjMgOTUuOGwtNjYuNSAwYy0zNS42IDAtNjQuNCAyOC44LTY0LjQgNjQuNCAwIDM1LjQgMjguNiA2NC4yIDY0IDY0LjRsNjYuOSAwIDAtMTI4Ljh6TTIwNy43IDI1NmMwIDM1LjYgMjguOCA2NC40IDY0LjQgNjQuNGwyLjEgMGMzNS42IDAgNjQuNC0yOC44IDY0LjQtNjQuNHMtMjguOC02NC40LTY0LjQtNjQuNGwtMi4xIDBjLTM1LjYgMC02NC40IDI4LjgtNjQuNCA2NC40em0tOTcuOSA5NS44bC0uNCAwYy0zNS40IC4yLTY0IDI5LTY0IDY0LjRzMjkuMiA2NC40IDY0LjkgNjQuNGMzNi4zIDAgNjYtMjkuNCA2Ni02NS41bDAtNjMuNC02Ni41IDB6bTAtMzIwLjRjLTM1LjYgMC02NC40IDI4LjgtNjQuNCA2NC40czI4LjggNjQuNCA2NC40IDY0LjRsNjYuNSAwIDAtMTI4LjgtNjYuNSAwem05Ny45IDEyOC44bDY2LjUgMGMzNS42IDAgNjQuNC0yOC44IDY0LjQtNjQuNHMtMjguOC02NC40LTY0LjQtNjQuNGwtNjYuNSAwIDAgMTI4Ljh6Il19LFJBPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6Imluc3RhZ3JhbSIsaWNvbjpbNDQ4LDUxMixbXSwiZjE2ZCIsIk0yMjQuMyAxNDFhMTE1IDExNSAwIDEgMCAtLjYgMjMwIDExNSAxMTUgMCAxIDAgLjYtMjMwem0tLjYgNDAuNGE3NC42IDc0LjYgMCAxIDEgLjYgMTQ5LjIgNzQuNiA3NC42IDAgMSAxIC0uNi0xNDkuMnptOTMuNC00NS4xYTI2LjggMjYuOCAwIDEgMSA1My42IDAgMjYuOCAyNi44IDAgMSAxIC01My42IDB6bTEyOS43IDI3LjJjLTEuNy0zNS45LTkuOS02Ny43LTM2LjItOTMuOS0yNi4yLTI2LjItNTgtMzQuNC05My45LTM2LjItMzctMi4xLTE0Ny45LTIuMS0xODQuOSAwLTM1LjggMS43LTY3LjYgOS45LTkzLjkgMzYuMXMtMzQuNCA1OC0zNi4yIDkzLjljLTIuMSAzNy0yLjEgMTQ3LjkgMCAxODQuOSAxLjcgMzUuOSA5LjkgNjcuNyAzNi4yIDkzLjlzNTggMzQuNCA5My45IDM2LjJjMzcgMi4xIDE0Ny45IDIuMSAxODQuOSAwIDM1LjktMS43IDY3LjctOS45IDkzLjktMzYuMiAyNi4yLTI2LjIgMzQuNC01OCAzNi4yLTkzLjkgMi4xLTM3IDIuMS0xNDcuOCAwLTE4NC44ek0zOTkgMzg4Yy03LjggMTkuNi0yMi45IDM0LjctNDIuNiA0Mi42LTI5LjUgMTEuNy05OS41IDktMTMyLjEgOXMtMTAyLjcgMi42LTEzMi4xLTljLTE5LjYtNy44LTM0LjctMjIuOS00Mi42LTQyLjYtMTEuNy0yOS41LTktOTkuNS05LTEzMi4xcy0yLjYtMTAyLjcgOS0xMzIuMWM3LjgtMTkuNiAyMi45LTM0LjcgNDIuNi00Mi42IDI5LjUtMTEuNyA5OS41LTkgMTMyLjEtOXMxMDIuNy0yLjYgMTMyLjEgOWMxOS42IDcuOCAzNC43IDIyLjkgNDIuNiA0Mi42IDExLjcgMjkuNSA5IDk5LjUgOSAxMzIuMXMyLjcgMTAyLjctOSAxMzIuMXoiXX0sZTB0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6InBlcmJ5dGUiLGljb246WzQ0OCw1MTIsW10sImUwODMiLCJNMzA1LjMgMjg0LjZsLTU4LjcgMCAwIDk4LjcgNTguNyAwYzE2LjMgMCAyOS00LjYgMzguMi0xMy44czEzLjgtMjEuMiAxMy44LTM2LjFjMC0xNC42LTQuNy0yNi4zLTE0LTM1LjNzLTIyLTEzLjUtMzcuOS0xMy41ek0xNDkuNCAxMjguN2wtNTguNyAwIDAgOTguNyA1OC43IDBjMTYuMyAwIDI5LTQuNiAzOC4yLTEzLjhzMTMuOC0yMS4yIDEzLjgtMzYuMWMwLTE0LjYtNC43LTI2LjMtMTQtMzUuM3MtMjItMTMuNS0zNy45LTEzLjV6TTM2Ni42IDMyTDgxLjQgMzJjLTIxLjYgMC00Mi4yIDguNi01Ny41IDIzLjlTMCA5MS44IDAgMTEzLjRMMCAzOTguNmMwIDIxLjYgOC42IDQyLjIgMjMuOSA1Ny41UzU5LjggNDgwIDgxLjQgNDgwbDI4NS4zIDBjMjEuNiAwIDQyLjItOC42IDU3LjUtMjMuOVM0NDggNDIwLjIgNDQ4IDM5OC42bDAtMjg1LjNjMC0yMS42LTguNi00Mi4yLTIzLjktNTcuNVMzODguMiAzMiAzNjYuNiAzMnptNjMuNiAzNjYuNmMwIDE2LjktNi43IDMzLTE4LjcgNDVzLTI4LjEgMTguNi00NSAxOC43bC0yODUuMyAwYy0xNi45IDAtMzMtNi43LTQ1LTE4LjdzLTE4LjYtMjguMS0xOC43LTQ1bDAtMjg1LjNjMC0xNi45IDYuNy0zMyAxOC43LTQ1czI4LjEtMTguNiA0NS0xOC43bDI4NS4zIDBjMTYuOSAwIDMzIDYuNyA0NSAxOC43czE4LjYgMjguMSAxOC43IDQ1bDAgMjg1LjN6bS0xMjUtMjY5LjlsLTU4LjcgMCAwIDk4LjcgNTguNyAwYzE2LjMgMCAyOS00LjYgMzguMi0xMy44czEzLjgtMjEuMiAxMy44LTM2LjFjMC0xNC42LTQuNy0yNi4zLTE0LTM1LjNzLTIyLTEzLjUtMzcuOS0xMy41eiJdfSxjbmU9e3ByZWZpeDoiZmFiIixpY29uTmFtZToic3F1YXJlLXZpbWVvIixpY29uOls0NDgsNTEyLFsidmltZW8tc3F1YXJlIl0sImYxOTQiLCJNNDQ4IDk2YzAtMzUuMy0yOC43LTY0LTY0LTY0TDY0IDMyQzI4LjcgMzIgMCA2MC43IDAgOTZMMCA0MTZjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMzIwIDBjMzUuMyAwIDY0LTI4LjcgNjQtNjRsMC0zMjB6TTMxOC41IDMwOS41Yy00My41IDU2LjUtODAuMyA4NC44LTExMC40IDg0LjgtMTguNyAwLTM0LjQtMTcuMi00Ny4zLTUxLjYtMy44LTEzLjktNy4zLTI2LjktMTAuNS0zOS0xOC4yLTY4LjMtMjguNi0xMDcuNC00Ni4yLTEwNy40LTIuNCAwLTEwLjggNS0yNS4xIDE1LjFMNjQgMTkyYzctNi4xIDEzLjktMTIuNCAyMC42LTE4LjUgMjkuMS0yNi4zIDU1LjYtNTAuMyA3My41LTUxLjkgMjQuOS0yLjQgNDAuMiAxNC42IDQ2IDUxLjEgMjAuNSAxMjkuNiAyOS42IDE0OS4yIDY2LjggOTAuNSAxMy40LTIxLjIgMjAuNi0zNy4yIDIxLjUtNDguMyAzLjQtMzIuOC0yNS42LTMwLjYtNDUuMi0yMi4yIDE1LjctNTEuNSA0NS44LTc2LjUgOTAuMS03NS4xIDMyLjkgMSA0OC40IDIyLjQgNDYuNSA2NC0xLjQgMzEuMS0yMy4yIDczLjgtNjUuMyAxMjcuOXoiXX0sdDB0PWNuZSxyMHQ9e3ByZWZpeDoiZmFiIixpY29uTmFtZToicHVzaGVkIixpY29uOls0NDgsNTEyLFtdLCJmM2UxIiwiTTQxNS4xIDExMS45bC05OC41LTkgMTQtMzMuNGMxMC40LTIzLjUtMTAuOC00MC40LTI4LjctMzdMMzAuNiA3Ni45Yy0xNS4xIDIuNy0yNiAxOC4zLTIxLjQgMzYuNkwxMTQuMyA0NjEuOGM2LjUgMjEuMyAzNi43IDI0LjIgNDcuNyA3TDE5Ny4zIDM4OCA0MzIuNSAxNTYuN2MxNi40LTE2LjggNC4zLTQyLjktMTcuNC00NC44ek0zMDUuNyA1My42YzUuMS0uNyA3LjUgMi41IDUuMiA3LjRsLTE2LjggMzkuOS0xNzcuNC0xNi4zIDE4OS0zMXpNMzAuOCAxMDcuOWMtMy4xLTUuMSAxLTEwIDYuMS05LjFsMjQ4LjcgMjIuNy05Ni45IDIzMC43LTE1Ny45LTI0NC4zek0xNDQuMSA0NTYuNGMtMi42IDQtNy45IDMuMS05LjQtMS4yTDUxLjYgMTc5LjcgMTc5LjMgMzc3LjNjLTcgMTUtMzUuMiA3OS4xLTM1LjIgNzkuMXpNNDE2LjkgMTQxLjlsLTE5OC43IDE5NS40IDg5LjctMjEzLjcgMTA2LjQgOS43YzQgMS4xIDUuNyA1LjMgMi42IDguNnoiXX0saTB0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6Im1peGNsb3VkIixpY29uOls2NDAsNTEyLFtdLCJmMjg5IiwiTTIxMyAzNDYuNmwtMzMuMiAwIDAtMTUxLjUgNi4yLTIxLjYtMTAuNyAwLTM4LjEgMTczLjEtNjEgMC0zOC40LTE3My4xLTEwLjUgMCA1LjkgMjEuNiAwIDE1MS41LTMzLjIgMCAwLTE4MS42IDY1LjcgMCAzNi42IDE3My4xIDguNSAwIDM2LjYtMTczLjEgNjUuNyAwIDAgMTgxLjZ6bTMzMS41LTYzbC04NiA2Mi4xIDAtMzguMSA3Mi45LTUxLjgtNzIuOS01MS44IDAtMzguMSA4NiA2Mi4zIDkuMyAwIDg2LjMtNjIuMyAwIDM4LjEtNzMuMSA1MS44IDczLjEgNTEuOCAwIDM4LjEtODYuMy02Mi4xLTkuMyAwek00MzAuMiAyNzIuM2wtMTgyIDAgMC0zMy4xIDE4MiAwIDAgMzMuMXoiXX0sYTB0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6InlhbmRleC1pbnRlcm5hdGlvbmFsIixpY29uOlszMjAsNTEyLFtdLCJmNDE0IiwiTTEyOS41IDUxMmwwLTE2Ni4xLTExMS0yOTcuOSA1NS44IDAgODEuOCAyMjkuNyA5NC4xLTI3Ny43IDUxLjMgMC0xMjAuNyAzNDcuOCAwIDE2NC4yLTUxLjMgMHoiXX0sbjB0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImhpdmUiLGljb246WzUxMiw1MTIsW10sImUwN2YiLCJNMjYwLjQgMjU0LjlMMTMxLjUgMzMuMWMtLjItLjMtLjUtLjYtLjgtLjhzLS43LS4zLTEuMS0uMy0uOCAuMS0xLjEgLjMtLjYgLjUtLjggLjhMLjMgMjU0LjljLS4yIC4zLS4zIC43LS4zIDEuMXMuMSAuOCAuMyAxLjFMMTI5LjEgNDc4LjljLjIgLjMgLjUgLjYgLjggLjhzLjcgLjMgMS4xIC4zIC44LS4xIDEuMS0uMyAuNi0uNSAuOC0uOEwyNjAuNCAyNTcuMWMuMi0uMyAuMy0uNyAuMy0xLjFzLS4xLS44LS4zLTEuMXptMzkuMS0yNS43Yy4yIC4zIC41IC42IC44IC44cy43IC4zIDEuMSAuM2w2Ni41IDBjLjQgMCAuOC0uMSAxLjEtLjNzLjYtLjUgLjgtLjggLjMtLjcgLjMtMS4xLS4xLS44LS4zLTEuMUwyNTkuMSAzMy4xYy0uMi0uMy0uNS0uNi0uOC0uOHMtLjctLjMtMS4xLS4zbC02Ni41IDBjLS40IDAtLjggLjEtMS4xIC4zcy0uNiAuNS0uOCAuOC0uMyAuNy0uMyAxLjEgLjEgLjggLjMgMS4xTDI5OS40IDIyOS4yem0yMTIuMyAyNS43TDM4NC45IDMzLjFjLS4yLS4zLS41LS42LS44LS44cy0uNy0uMy0xLjEtLjNsLTY2LjYgMGMtLjQgMC0uOCAuMS0xLjEgLjNzLS42IC41LS44IC44LS4zIC43LS4zIDEuMSAuMSAuOCAuMyAxLjFMNDQwLjcgMjU2IDMxNC41IDQ3Ni43Yy0uMiAuMy0uMyAuNy0uMyAxLjFzLjEgLjggLjMgMS4xIC41IC42IC44IC44IC43IC4zIDEuMSAuM2w2Ni42IDBjLjQgMCAuOC0uMSAxLjEtLjNzLjYtLjUgLjgtLjhMNTExLjcgMjU3LjFjLjItLjMgLjMtLjcgLjMtMS4xcy0uMS0uOC0uMy0xLjF6TTM2NiAyODQuOWwtNjYuNSAwYy0uNCAwLS44IC4xLTEuMSAuM3MtLjYgLjUtLjggLjhMMTg4LjggNDc2LjdjLS4yIC4zLS4zIC43LS4zIDEuMXMuMSAuOCAuMyAxLjEgLjUgLjYgLjggLjggLjcgLjMgMS4xIC4zbDY2LjUgMGMuNCAwIC44LS4xIDEuMS0uM3MuNi0uNSAuOC0uOEwzNjcuOSAyODguM2MuMi0uMyAuMy0uNyAuMy0xLjFzLS4xLS44LS4zLTEuMS0uNS0uNi0uOC0uOC0uNy0uMy0xLjEtLjN6Il19LG8wdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJjcmVhdGl2ZS1jb21tb25zLXplcm8iLGljb246WzUxMiw1MTIsW10sImY0ZjMiLCJNMjU1LjYgOEMzOTcuNCA4IDUwNCAxMTguMSA1MDQgMjU2IDUwNCA0MDMuMSAzODUuNSA1MDQgMjU1LjYgNTA0IDEyMS42IDUwNCA4IDM5NC41IDggMjU2IDggMTIzLjEgMTEyLjcgOCAyNTUuNiA4em0uOCA0NC43Yy0xMTguMiAwLTIwMy43IDk3LjktMjAzLjcgMjAzLjMgMCAxMDkuOCA5MS4yIDIwMi44IDIwMy43IDIwMi44IDEwMy4yIDAgMjAyLjgtODEuMSAyMDIuOC0yMDIuOCAuMS0xMTMuOC05MC4yLTIwMy4zLTIwMi44LTIwMy4zem0tLjQgNjAuNWMtODEuOSAwLTEwMi41IDc3LjMtMTAyLjUgMTQyLjhTMTc0LjEgMzk4LjggMjU2IDM5OC44IDM1OC41IDMyMS41IDM1OC41IDI1NiAzMzcuOSAxMTMuMiAyNTYgMTEzLjJ6bTAgNTMuOWMzLjMgMCA2LjQgLjUgOS4yIDEuMiA1LjkgNS4xIDguOCAxMi4xIDMuMSAyMS45TDIxMy44IDI5MC40Yy0xLjctMTIuNy0xLjktMjUuMS0xLjktMzQuNCAwLTI4LjggMi04OC45IDQ0LjEtODguOXptNDAuOCA0Ni4yYzIuOSAxNS40IDMuMyAzMS40IDMuMyA0Mi43IDAgMjguOS0yIDg4LjktNDQuMSA4OC45LTEzLjUgMC0zMi42LTcuNy0yMC4xLTI2LjRsNjAuOS0xMDUuMnoiXX0sZG5lPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6InNxdWFyZS1zbmFwY2hhdCIsaWNvbjpbNDQ4LDUxMixbInNuYXBjaGF0LXNxdWFyZSJdLCJmMmFkIiwiTTM4NCAzMkw2NCAzMmMtMTcgMC0zMy4zIDYuNy00NS4zIDE4LjdTMCA3OSAwIDk2TDAgNDE2YzAgMTcgNi43IDMzLjMgMTguNyA0NS4zUzQ3IDQ4MCA2NCA0ODBsMzIwIDBjMTcgMCAzMy4zLTYuNyA0NS4zLTE4LjdTNDQ4IDQzMyA0NDggNDE2bDAtMzIwYzAtMTctNi43LTMzLjMtMTguNy00NS4zUzQwMSAzMiAzODQgMzJ6bS0zLjkgMzE5LjNsLS4xIC4xYy0yLjUgMi44LTUuNCA1LjEtOC43IDYuOC02LjUgMy42LTEzLjQgNi4zLTIwLjYgOC4yLTEuNCAuNC0yLjcgMS0zLjkgMS44LTIuMiAxLjktMi4xIDQuNi00LjQgOC42LTEuNyAzLTQgNS41LTYuOCA3LjUtNi43IDQuNi0xNC4yIDQuOS0yMi4yIDUuMi03LjIgLjMtMTUuNCAuNi0yNC43IDMuNy0zLjggMS4yLTcuOCAzLjctMTIuNCA2LjUtMTEuMyA2LjktMjYuNyAxNi40LTUyLjMgMTYuNHMtNDAuOS05LjQtNTIuMS0xNi4zYy00LjctMi45LTguNy01LjQtMTIuNS02LjYtOS4zLTMuMS0xNy41LTMuNC0yNC43LTMuNy04LS4zLTE1LjUtLjYtMjIuMi01LjItMi40LTEuNi00LjQtMy43LTYtNi4xLTMuMi00LjYtMi45LTcuOC01LjMtOS45LTEuMy0uOC0yLjYtMS41LTQuMS0xLjgtNy4xLTEuOS0xMy45LTQuNi0yMC4zLTguMS0zLjEtMS42LTUuOS0zLjgtOC4zLTYuMy02LjYtNi44LTguMy0xNC44LTUuNy0yMS44IDMuNC05LjMgMTEuNi0xMi4xIDE5LjQtMTYuMyAxNC44LTggMjYuMy0xOC4xIDM0LjQtMjkuOSAyLjMtMy4zIDQuMy02LjkgNi0xMC42IC44LTIuMiAuOC0zLjMgLjItNC40LS42LS45LTEuMy0xLjYtMi4yLTIuMi0yLjUtMS43LTUuMS0zLjQtNi45LTQuNS0zLjMtMi4xLTUuOS0zLjgtNy41LTUtNi4zLTQuNC0xMC42LTktMTMuNC0xNC4yLTEuOS0zLjYtMy03LjYtMy4zLTExLjZzLjQtOC4xIDEuOS0xMS45YzQuMS0xMC45IDE0LjUtMTcuNyAyNy0xNy43IDIuNiAwIDUuMyAuMyA3LjggLjggLjcgLjIgMS40IC4zIDIgLjUtLjEtNy40IC4xLTE1LjQgLjctMjMuMSAyLjQtMjcuMyAxMS45LTQxLjYgMjEuOS01MyA2LjQtNy4yIDEzLjktMTMuMiAyMi4zLTE3LjkgMTUuMS04LjYgMzIuMi0xMyA1MC45LTEzczM1LjggNC40IDUwLjkgMTNjOC4zIDQuNyAxNS45IDEwLjggMjIuMiAxNy45IDEwIDExLjQgMTkuNSAyNS43IDIxLjkgNTMgLjYgNy43IC45IDE1LjQgLjcgMjMuMSAuNy0uMiAxLjQtLjMgMi4xLS41IDIuNi0uNiA1LjItLjggNy44LS44IDEyLjUgMCAyMi44IDYuOCAyNyAxNy43IDEuNSAzLjggMi4xIDcuOSAxLjkgMTEuOXMtMS40IDgtMy4zIDExLjZjLTIuNyA1LjItNy4xIDkuOS0xMy40IDE0LjItMS43IDEuMi00LjMgMi45LTcuNSA1LTEuOCAxLjItNC41IDIuOS03LjIgNC43LS44IC41LTEuNCAxLjItMS45IDItLjUgMS0uNSAyLjIgLjIgNC4yIDEuNyAzLjggMy43IDcuNCA2LjEgMTAuOCA4LjMgMTIuMSAyMC4yIDIyLjMgMzUuNSAzMC40IDEuNSAuOCAzIDEuNSA0LjQgMi4zIC43IC4zIDEuNiAuOCAyLjUgMS4zIDQuOSAyLjcgOS4yIDYgMTEuNSAxMi4yIDIuNSA2LjkgMSAxNC43LTUuMiAyMS4zem0tMTYuNy0xOC41Yy01MC4zLTI0LjMtNTguMy02MS45LTU4LjctNjQuNy0uNC0zLjQtLjktNiAyLjgtOS41IDMuNi0zLjMgMTkuNS0xMy4yIDI0LTE2LjMgNy4zLTUuMSAxMC41LTEwLjIgOC4yLTE2LjUtMS43LTQuMy01LjctNi0xMC02LTEuMyAwLTIuNyAuMi00IC40LTggMS43LTE1LjggNS44LTIwLjQgNi45LS41IC4xLTEuMSAuMi0xLjcgLjItMi40IDAtMy4zLTEuMS0zLjEtNCAuNi04LjggMS44LTI1LjkgLjQtNDEuOS0xLjktMjItOS0zMi45LTE3LjQtNDIuNi00LjEtNC42LTIzLjEtMjQuNy01OS41LTI0LjdzLTU1LjQgMjAuMS01OS41IDI0LjhjLTguNCA5LjctMTUuNSAyMC42LTE3LjQgNDIuNi0xLjQgMTYtLjEgMzMuMSAuNCA0MS45IC4yIDIuOC0uNyA0LTMuMSA0LS42IDAtMS4xLS4xLTEuNy0uMi00LjUtMS4xLTEyLjMtNS4xLTIwLjMtNi45LTEuMy0uMy0yLjYtLjQtNC0uNC00LjMgMC04LjMgMS42LTEwIDYtMi40IDYuMyAuOCAxMS40IDguMiAxNi41IDQuNCAzLjEgMjAuNCAxMyAyNCAxNi4zIDMuNyAzLjQgMy4yIDYuMSAyLjggOS41LS40IDIuOC04LjQgNDAuNC01OC43IDY0LjctMi45IDEuNC04IDQuNCAuOSA5LjMgMTMuOSA3LjYgMjMuMSA2LjggMzAuMyAxMS40IDYuMSAzLjkgMi41IDEyLjQgNi45IDE1LjQgNS41IDMuOCAyMS42LS4zIDQyLjMgNi42IDE3LjQgNS43IDI4LjEgMjIgNTkgMjJzNDEuOC0xNi4zIDU4LjktMjJjMjAuOC02LjkgMzYuOS0yLjggNDIuMy02LjYgNC40LTMuMSAuOC0xMS41IDYuOS0xNS40IDcuMi00LjYgMTYuNC0zLjggMzAuMy0xMS41IDguOC00LjkgMy44LTcuOSAuOS05LjR6Il19LHMwdD1kbmUsbDB0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6InRoZW1laXNsZSIsaWNvbjpbNTEyLDUxMixbXSwiZjJiMiIsIk0yMDggODguM2MwLTEwIDYuMy0yMS43IDE3LjctMjEuNyAxMS4xIDAgMTcuNyAxMS43IDE3LjcgMjEuNyAwIDEwLjMtNi42IDIxLjctMTcuNyAyMS43LTExLjQgMC0xNy43LTExLjQtMTcuNy0yMS43em0zMDQgMTYwYzAgMzYtMTEuNCAxMDIuMy0zNi4zIDEyOS43LTIyLjkgMjQuOS04Ny40IDYxLjEtMTIwLjkgNzAuNmwtMS4xIC4zIDAgMzIuNmMwIDE2LjMtMTIuNiAzMC42LTI5LjEgMzAuNi0xMCAwLTE5LjQtNS43LTI0LjYtMTQuMy01LjQgOC42LTE0LjkgMTQuMy0yNC45IDE0LjNzLTE5LjQtNS43LTI0LjktMTQuM2MtNS4xIDguNi0xNC42IDE0LjMtMjQuNiAxNC4zLTEwLjMgMC0xOS40LTUuNy0yNC45LTE0LjMtNS4xIDguNi0xNC42IDE0LjMtMjQuNiAxNC4zLTE4LjkgMC0yOS40LTE1LjctMjkuNC0zMi45LTE2LjMgMTIuMy0zNS43IDE5LjQtNTYuNiAxOS40LTIyIDAtNDMuNC04LjMtNjAuMy0yMi45IDEwLjMtLjMgMjAuNi0yLjMgMzAuMy01LjctMjAuOS01LjctMzkuNC0xOC45LTUyLTM2LjMgMjEuNCA0LjYgNDYuMiAxLjcgNjcuMS0xMS4xLTIyLTIyLTU2LjYtNTguOS02OC42LTg3LjQtNS43LTEzLjQtNi45LTMxLjQtNi45LTQ1LjcgMC00OS43IDIwLjMtMTYwIDg2LjMtMTYwIDEwLjYgMCAxOC45IDQuOSAyMy4xIDE0LjkgMy43LTUuNCA3LjctMTAuNSAxMi0xNS40IDItMi42IDUuNy01LjQgNy4xLTguMyA4LTEyLjYgMTEuNy0yMS4xIDIxLjctMzQgMzIuMy00MS4xIDgxLjctNjkuNCAxMzQuOS02OS40IDYgMCAxMiAuMyAxNy43IDEuMSAxMC45LTExLjcgMjYtMTguMyA0MS43LTE4LjMgMTQuNiAwIDI5LjcgNiA0MCAxNi4zIC45IC45IDEuNCAyLjMgMS40IDMuNCAwIDMuNy0xMC4zIDEzLjQtMTIuOSAxNi4zIDQuMyAxLjQgMTUuNyA2LjkgMTUuNyAxMiAwIDIuOS0yLjkgNS4xLTQuNiA3LjEgMzEuNCAyNy43IDQ5LjQgNjcuMSA1Ni4zIDEwOCA0LjMtNS4xIDEwLjMtOC42IDE3LjEtOC42IDEwLjYgMCAyMC45IDcuMSAyOC42IDE0IDIwLjkgMTguNiAyNS43IDUzLjEgMjUuNyA3OS43ek0xODggODkuNGMwIDE4LjMgMTIuNiAzNy4xIDMyLjMgMzcuMXMzMi4zLTE4LjkgMzIuMy0zNy4xYzAtMTgtMTIuNi0zNi45LTMyLjMtMzYuOVMxODggNzEuNCAxODggODkuNHpNMjM3LjcgMTk0YzAtMTkuNyAzLjctMzkuMSA4LjYtNTguMy01MiA3OS41LTEzLjUgMTg0LjYgNjguOSAxODQuNiAyMS40IDAgNDIuNi03LjcgNjAtMjAgMi03LjQgMy43LTE0LjkgMy43LTIyLjYgMC0xNC4zLTYuMy0yMS40LTIwLjYtMjEuNC00LjYgMC05LjEgLjktMTMuNCAxLjctNjMuMyAxMi43LTEwNy4xIDMuNy0xMDcuMS02NHpNMTk2LjYgNDQ4LjljMC0xMS4xLTguOS0yMC45LTIwLjMtMjAuOXMtMjAgOS43LTIwIDIwLjlsMCAzMi42YzAgMTEuMSA4LjYgMjEuMSAyMCAyMS4xczIwLjMtOS43IDIwLjMtMjEuMWwwLTMyLjZ6bTQ5LjEgMGMwLTExLjEtOC42LTIwLjktMjAtMjAuOXMtMjAuMyA5LjctMjAuMyAyMC45bDAgMzIuNmMwIDExLjEgOC45IDIxLjEgMjAuMyAyMS4xczIwLTEwIDIwLTIxLjFsMC0zMi42em00OS43IDBjMC0xMS4xLTguOS0yMC45LTIwLjMtMjAuOXMtMjAuMyA5LjctMjAuMyAyMC45bDAgMzIuNmMwIDExLjEgOC45IDIxLjEgMjAuMyAyMS4xczIwLjMtOS43IDIwLjMtMjEuMWwwLTMyLjZ6bTQ5LjcgMGMwLTExLjEtOC45LTIwLjktMjAuMy0yMC45cy0yMC4zIDkuNy0yMC4zIDIwLjlsMCAzMi42YzAgMTEuMSA4LjkgMjEuMSAyMC4zIDIxLjFzMjAuMy0xMCAyMC4zLTIxLjFsMC0zMi42ek00MjEuNyAyODZjLTMwLjkgNTkuMS05MC4zIDEwMi42LTE1OC42IDEwMi42LTk2LjYgMC0xNjAuNi04NC42LTE2MC42LTE3Ni42IDAtMTYuOSAyLTMzLjQgNi00OS43LTIwIDMzLjctMjkuNyA3Mi42LTI5LjcgMTExLjQgMCA2MC4zIDI0LjkgMTIxLjcgNzEuNCAxNjAuOSA1LjEtOS43IDE0LjktMTYuMyAyNi0xNi4zIDEwIDAgMTkuNCA1LjcgMjQuNiAxNC4zIDUuNC04LjYgMTQuNi0xNC4zIDI0LjktMTQuMyAxMCAwIDE5LjQgNS43IDI0LjYgMTQuMyA1LjQtOC42IDE0LjktMTQuMyAyNC45LTE0LjNzMTkuNCA1LjcgMjQuOSAxNC4zYzUuMS04LjYgMTQuNi0xNC4zIDI0LjYtMTQuMyAxMC45IDAgMjAuOSA2LjYgMjUuNyAxNiA0My40LTM2LjMgNjguNi05MiA3MS40LTE0OC4zem0xMC42LTk5LjdjMC01My43LTM0LjYtMTA1LjctOTIuNi0xMDUuNy0zMC4zIDAtNTguNiAxNS4xLTc4LjkgMzYuOS0yMCA2Ni40LTI3LjQgMTM2LjYgNDEuNCAxMzYuNiAyOC44IDAgOTcuNC0yOC41IDg0LjMgMzYuOSAyOC45LTI2IDQ1LjctNjUuNyA0NS43LTEwNC42eiJdfSxjMHQ9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiZGFydC1sYW5nIixpY29uOls1MTIsNTEyLFtdLCJlNjkzIiwiTTM3OC42IDc4LjljLTIuOC0uMS01LjYtLjItOC41LS4ybC0yNjQuMSAwIDE0My4yLTcyYzcuNC00LjQgMTguOC02LjcgMzAuNC02LjcgMTMuNSAwIDI5LjQgOS4yIDM3IDE2LjhsNjIgNjIgMCAuMXpNMTA3LjMgOTYuNWwyNjIuOCAwYzE2IDAgMjUuNCAxLjQgMzUuNCA5LjNsMTA2LjUgMTA2LjQgMCAyMDguOC03OS4zIC43LTMyNS40LTMyNS4yek05Ni41IDM3M2wwLTI2Mi4yIDMyMy44IDMyMy44IC43IDc3LjQtMjEyLjIgMC05OC4xLTk4LjJDOTkuNCA0MDIuNSA5Ni41IDM5OC41IDk2LjUgMzczek03OC43IDEwNS4zbDAgMjY3LjdjMCAzLjMgLjEgNi4zIC4yIDkuMWwtNjItNjJDNi41IDMwOS4zIDAgMjk0LjMgMCAyNzkuNiAwIDI3Mi44IDMuOSAyNjIuMSA2LjcgMjU2bDcyLTE1MC43eiJdfSxkMHQ9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiZGVwbG95ZG9nIixpY29uOls1MTIsNTEyLFtdLCJmMzhlIiwiTTM4Mi4yIDEzNmw1MS43IDAgMCAyMzkuNi01MS43IDAgMC0yMC43Yy0xOS44IDI0LjgtNTIuOCAyNC4xLTczLjggMTQuNy0yNi4yLTExLjctNDQuMy0zOC4xLTQ0LjMtNzEuOCAwLTI5LjggMTQuOC01Ny45IDQzLjMtNzAuOCAyMC4yLTkuMSA1Mi43LTEwLjYgNzQuOCAxMi45bDAtMTAzLjl6TTMxNy41IDI5Ny44YTMzLjIgMzMuMiAwIDEgMCA2Ni40IDEgMzMuMiAzMy4yIDAgMSAwIC02Ni40LTF6TTE4OC41IDEzNmw1MS43IDAgMCAyMzkuNi01MS43IDAgMC0yMC43Yy0xOS44IDI0LjgtNTIuOCAyNC4xLTczLjggMTQuNy0yNi4yLTExLjctNDQuMy0zOC4xLTQ0LjMtNzEuOCAwLTI5LjggMTQuOC01Ny45IDQzLjMtNzAuOCAyMC4yLTkuMSA1Mi43LTEwLjYgNzQuOCAxMi45bDAtMTAzLjl6TTEyMy44IDI5Ny44YTMzLjIgMzMuMiAwIDEgMCA2Ni40IDEgMzMuMiAzMy4yIDAgMSAwIC02Ni40LTF6TTQ0OCA5NmMxNy41IDAgMzIgMTQuNCAzMiAzMmwwIDI1NmMwIDE3LjUtMTQuNCAzMi0zMiAzMkw2NCA0MTZjLTE3LjUgMC0zMi0xNC40LTMyLTMybDAtMjU2YzAtMTcuNSAxNC40LTMyIDMyLTMybDM4NCAwem0wLTMyTDY0IDY0QzI4LjggNjQgMCA5Mi44IDAgMTI4TDAgMzg0YzAgMzUuMiAyOC44IDY0IDY0IDY0bDM4NCAwYzM1LjIgMCA2NC0yOC44IDY0LTY0bDAtMjU2YzAtMzUuMi0yOC44LTY0LTY0LTY0eiJdfSx1MHQ9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiZmxpcGJvYXJkIixpY29uOls0NDgsNTEyLFtdLCJmNDRkIiwiTTAgMzJsMCA0NDggNDQ4IDAgMC00NDgtNDQ4IDB6TTM1OC40IDIxMS4ybC04OS42IDAgMCA4OS42LTg5LjYgMCAwIDg5LjYtODkuNiAwIDAtMjY4LjggMjY4LjggMCAwIDg5LjZ6Il19LHAwdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJidXktbi1sYXJnZSIsaWNvbjpbNTc2LDUxMixbXSwiZjhhNiIsIk0yODguMiAzMkMxMzMuNSAzMiA4IDEzMi4zIDggMjU2UzEzMy41IDQ4MCAyODguMiA0ODAgNTY4LjQgMzc5LjcgNTY4LjQgMjU2IDQ0Mi45IDMyIDI4OC4yIDMyek0yMDIuOCAzODkuMmwtMTM4LjUgMS40IDc3LjItMjkwLjcgMTMzLjQgMGM2My4yIDAgODQuOSAyOC42IDc4IDcyLjgtLjQgMi4zLS45IDQuNi0xLjUgNi45LTUuNi0xLjMtMTEuNC0xLjktMTcuMi0xLjktNDIuMyAwLTc2LjcgMzMuOS03Ni43IDc1LjcgMCAzNy4xIDI3LjEgNjggNjIuOSA3NC41LTE4LjIgMzcuMi01Ni4yIDYwLjktMTE3LjcgNjEuNXpNMzU4LjIgMjA3LjFsMzIgMC0yMi4yIDkwLjMtMzUuNCAwLTExLjItMzUuNi03LjggMzUuNi0zNy44IDAgMjYuNi05MC4zIDMxLjMgMCAxNSAzNi44IDkuNC0zNi44ek01MDQuMSAzODkuMmwtMTk3LjEgMCAxNS44LTYxLjJjMy44IC42IDcuNiAuOCAxMS41IC44IDQyLjMgMCA3Ni43LTMzLjkgNzYuNy03NS42IDAtMzIuNi0yMS02MC41LTUwLjQtNzEuMWwyMS4zLTgyLjQgOTIuNSAwLTUzIDIwNS40IDEwMy45IDAtMjEuMiA4NC4xek0yMTEuOSAyNjkuNGwtMjQuNyAwLTEzLjggNTYuNSAyNC43IDBjMTYuMSAwIDMyLjEtMy4yIDM3LjktMjYuNiA1LjYtMjIuMy04LTI5LjgtMjQuMS0yOS44ek0yMzMuMiAxNzBsLTIxLjMgMC0xMS43IDQ3LjcgMjEuNCAwYzE4IDAgMzUuNC0xNC42IDM5LjItMzAuMSA0LjYtMTguOS05LjUtMTcuNi0yNy42LTE3LjZ6Il19LGgwdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJ3YXRjaG1hbi1tb25pdG9yaW5nIixpY29uOls1MTIsNTEyLFtdLCJlMDg3IiwiTTI1NiAxNmEyNDAgMjQwIDAgMSAwIDAgNDgwIDI0MCAyNDAgMCAxIDAgMC00ODB6TTEyMS43IDQyOS4xYy01MS42LTQwLjItODQuOS0xMDIuOC04NC45LTE3My4xIDAtMjEuNyAzLjItNDMuMyA5LjYtNjQuMWwxMDIuOS0xNy45LS4xIDExLTEzLjkgMnMtLjEgMTIuNS0uMSAxOS41YzAgMiAuNCA0IDEuMiA1LjhzMi4xIDMuNCAzLjcgNC42bDkuNSA3LjQtMjcuNyAyMDQuOXpNMjI3LjQgMTQ1LjlsOC41LTcuNnM2LjktNS40LS4xLTkuM2MtNy4yLTQtMzkuNS0zNC41LTM5LjUtMzQuNS01LjMtNS41LTguMy03LjMtMTUuNSAwIDAgMC0zMi4zIDMwLjUtMzkuNSAzNC41LTcuMSA0LS4xIDkuMy0uMSA5LjNsOC41IDcuNiAwIDQuNC03My41LTE5LjJjMzkuNi01Ni45IDEwNS41LTk0LjMgMTgwLTk0LjMgMzEuMyAwIDYyLjIgNi43IDkwLjYgMTkuNnM1My44IDMxLjggNzQuMyA1NS40bC0xOTMuNSAzNy43IDAtMy42em0zNC4xIDMyOS4zbC0zMy45LTI1MC45IDkuNS03LjRjMS42LTEuMiAyLjgtMi44IDMuNy00LjZzMS4zLTMuOCAxLjItNS44YzAtNy0uMS0xOS41LS4xLTE5LjVsLTEzLjktMi0uMS0xMC41IDI0MS43IDMxLjRjMy45IDE2LjQgNS44IDMzLjMgNS44IDUwLjEgMCAxMTkuMS05NS40IDIxNi4yLTIxMy44IDIxOS4xeiJdfSxmMHQ9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiaGlwcyIsaWNvbjpbNjQwLDUxMixbXSwiZjQ1MiIsIk0yNTEuNiAxNTcuNmMwLTEuOS0uOS0yLjgtMi44LTIuOGwtNDAuOSAwYy0xLjYgMC0yLjcgMS40LTIuNyAyLjhsMCAyMDEuOGMwIDEuNCAxLjEgMi44IDIuNyAyLjhsNDAuOSAwYzEuOSAwIDIuOC0uOSAyLjgtMi44bDAtMjAxLjh6TTE1Ni41IDE2OGMtMTYuMS0xMS44LTM2LjMtMTcuOS02MC4zLTE4LTE4LjEtLjEtMzQuNiAzLjctNDkuOCAxMS40bDAtODEuMmMwLTEuOC0uOS0yLjctMi44LTIuN2wtNDAuOSAwQy45IDc3LjUgMCA3OC40IDAgODAuMkwwIDM1OS40YzAgMS45IC45IDIuOCAyLjcgMi44bDQxIDBjMS45IDAgMi44LS45IDIuOC0yLjhsMC0xMzYuMWMwLS44LTIuOC0yNyA0NS44LTI3IDQ4LjUgMCA0NS44IDI2LjEgNDUuOCAyN2wwIDEyMi42YzAgOSA3LjMgMTYuMyAxNi40IDE2LjNsMjcuMyAwYzEuOCAwIDIuNy0uOSAyLjctMi44bDAtMTM2LjFjMC0yMy40LTkuMy00MS44LTI4LTU1LjN6TTYzNC45IDI3OC4xYy02LjgtMTUuNy0xOC40LTI3LTM0LjktMzQuMWwtNTcuNi0yNS4zYy04LjYtMy42LTkuMi0xMS4yLTIuNi0xNi4xIDcuNC01LjUgNDQuMy0xMy45IDg0IDYuOCAxLjcgMSA0LS4zIDQtMi40bDAtNDQuN2MwLTEuMy0uNi0yLjEtMS45LTIuNi0xNy43LTYuNi0zNi4xLTkuOS01NS4xLTkuOS0yNi41IDAtNDUuMyA1LjgtNTguNSAxNS40LS41IC40LTI4LjQgMjAtMjIuNyA1My43IDMuNCAxOS42IDE1LjggMzQuMiAzNy4yIDQzLjZMNTgwLjQgMjg2YzExLjYgNS4xIDE1LjIgMTMuMyAxMi4yIDIxLjItMy43IDkuMS0xMy4yIDEzLjYtMzYuNSAxMy42LTI0LjMgMC00NC43LTguOS01OC40LTE5LjEtMi4xLTEuNC00LjQgLjItNC40IDIuM2wwIDM0LjRjMCAxMC40IDQuOSAxNy4zIDE0LjYgMjAuNyAxNS42IDUuNSAzMS42IDguMiA0OC4yIDguMiAxMi43IDAgMjUuOC0xLjIgMzYuMy00LjMgLjctLjMgMzYtOC45IDQ1LjYtNDUuOCAzLjUtMTMuNSAyLjQtMjYuNS0zLjEtMzkuMXpNMzc2LjIgMTQ5LjhjLTMxLjcgMC0xMDQuMiAyMC4xLTEwNC4yIDEwMy41bDAgMTgzLjVjMCAuOCAuNiAyLjcgMi43IDIuN2w0MC45IDBjMS45IDAgMi44LS45IDIuOC0yLjdsMC04OC44YzE2LjUgMTIuNyAzNS44IDE5LjEgNTcuNyAxOS4xIDYwLjUgMCAxMDguNy00OC41IDEwOC43LTEwOC43IC4xLTYwLjMtNDguMi0xMDguNi0xMDguNi0xMDguNnptMCA0Ni42YTYyLjIgNjIuMiAwIDEgMSAwIDEyNC4zIDYyLjIgNjIuMiAwIDEgMSAwLTEyNC4zek0yMjguMyA3Mi41Yy0xNS45IDAtMjguOCAxMi45LTI4LjkgMjguOSAwIDE1LjYgMTIuNyAyOC45IDI4LjkgMjguOXMyOC45LTEzLjEgMjguOS0yOC45YzAtMTYuMi0xMy0yOC45LTI4LjktMjguOXoiXX0sbTB0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImNsb3VkdmVyc2lmeSIsaWNvbjpbNjQwLDUxMixbXSwiZjM4NSIsIk0xNjAuNiAzMDRjOC4yIDY4LjUgNjcuNCAxMTUuNSAxNDYgMTExLjMgNTEuMiA0My4zIDEzNi44IDQ1LjggMTg2LjQtNS42IDY5LjIgMS4xIDExOC41LTQ0LjYgMTMxLjUtOTkuNSAxNC44LTYyLjUtMTguMi0xMzIuNS05Mi4xLTE1NS4xLTMzLTg4LjEtMTMxLjQtMTAxLjUtMTg2LjUtODUtNTcuMyAxNy4zLTg0LjMgNTMuMi05OS4zIDEwOS43LTcuOCAyLjctMjYuNSA4LjktNDUgMjQuMSAxMS43IDAgMTUuMiA4LjkgMTUuMiAxOS41bDAgMjAuNGMwIDEwLjctOC43IDE5LjUtMTkuNSAxOS41bC0yMC4yIDBjLTEwLjcgMC0xOS41LTYtMTkuNS0xNi43bDAtNi42LTQ2LjggMGMtMy44IDAtMTAuOCA0LjMtMTAuOCAxMS45bDAgNDAuNGMwIDYuNCA1LjMgMTEuOCAxMS43IDExLjhsNDguOSAwIDAtLjF6TTM4OCAzMTJjLTEwLjcgNDYuMyAyMS43IDcyLjQgNTUuMyA4Ni44LTEwNy4yIDMzLjgtMTcxLjYtNTAuOC0xMzUuMy0xMTAuOC0zMy4yIDIxLjYtMzMuNyA3MS4yLTI5LjIgOTIuOS0xNy45LTEyLjQtNTMuOC0zMi40LTU3LjQtNzkuOC0zLTM5LjkgMjEuNS03NS43IDU3LTkzLjkgMzAuNi0xNS44IDEwMy41LTguNSAxMzMuNiA0MC44LTE0LjEtNDgtNTMuOC03MC4xLTEwMS44LTc0LjggMzAuOS0zMC43IDY0LjQtNTAuMyAxMTQuMi00My43IDY5LjggOS4zIDEzMy4yIDgyLjggNjcuNyAxNTAuNSAzNS0xNi4zIDQ4LjctNTQuNCA0Ny41LTc2LjlsMTAuNSAxOS42YzExLjggMjIgMTUuMiA0Ny42IDkuNCA3Mi05LjIgMzktNDAuNiA2OC44LTc5LjcgNzYuNS0zMi4xIDYuMy04My4xLTUuMS05MS44LTU5LjJ6TTE0MCAyMDhsLTM5LjggMGMtOC45IDAtMTYuMi03LjMtMTYuMi0xNi4ybDAtMzkuNmMwLTguOSA3LjMtMTYuMiAxNi4yLTE2LjJsMzkuOCAwYzguOSAwIDE2LjIgNy4zIDE2LjIgMTYuMmwwIDM5LjZjMCA4LjktNy4zIDE2LjItMTYuMiAxNi4yek0yMi4xIDE2OGMtNS42IDAtMTAuMS00LjUtMTAuMS0xMC4xbDAtMjcuOGMwLTUuNiA0LjUtMTAuMSAxMC4xLTEwLjFsMjcuNyAwYzUuNSAwIDEwLjEgNC41IDEwLjEgMTAuMWwwIDI3LjhjMCA1LjYtNC41IDEwLjEtMTAuMSAxMC4xbC0yNy43IDB6TTE4MCAxNDIuN2wwLTIxLjRjMC01LjEgNC4yLTkuMyA5LjMtOS4zbDIxLjQgMGM1LjEgMCA5LjMgNC4yIDkuMyA5LjNsMCAyMS40YzAgNS4xLTQuMiA5LjMtOS4zIDkuM2wtMjEuNCAwYy01LjEgMC05LjMtNC4yLTkuMy05LjN6TTY4IDIzNS41bDAgMjVjMCA2LjMtNS4xIDExLjUtMTEuNCAxMS41bC0yNS4yIDBjLTYuMyAwLTExLjQtNS4yLTExLjQtMTEuNWwwLTI1YzAtNi4zIDUuMS0xMS41IDExLjQtMTEuNWwyNS4xIDBjNi40IDAgMTEuNSA1LjIgMTEuNSAxMS41eiJdfSxnMHQ9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiZ29vZHJlYWRzIixpY29uOls0NDgsNTEyLFtdLCJmM2E4IiwiTTI5OS45IDE5MS4yYzUuMSAzNy4zLTQuNyA3OS0zNS45IDEwMC43LTIyLjMgMTUuNS01Mi44IDE0LjEtNzAuOCA1LjctMzcuMS0xNy4zLTQ5LjUtNTguNi00Ni44LTk3LjIgNC4zLTYwLjkgNDAuOS04Ny45IDc1LjMtODcuNSA0Ni45LS4yIDcxLjggMzEuOCA3OC4yIDc4LjN6TTQ0OCA4OGwwIDMzNmMwIDMwLjktMjUuMSA1Ni01NiA1Nkw1NiA0ODBjLTMwLjkgMC01Ni0yNS4xLTU2LTU2TDAgODhDMCA1Ny4xIDI1LjEgMzIgNTYgMzJsMzM2IDBjMzAuOSAwIDU2IDI1LjEgNTYgNTZ6TTMzMCAzMTMuMnMtLjEtMzQtLjEtMjE3LjNsLTI5IDAgMCA0MC4zYy0uOCAuMy0xLjItLjUtMS42LTEuMi05LjYtMjAuNy0zNS45LTQ2LjMtNzYtNDYtNTEuOSAuNC04Ny4yIDMxLjItMTAwLjYgNzcuOC00LjMgMTQuOS01LjggMzAuMS01LjUgNDUuNiAxLjcgNzcuOSA0NS4xIDExNy44IDExMi40IDExNS4yIDI4LjktMS4xIDU0LjUtMTcgNjktNDUuMiAuNS0xIDEuMS0xLjkgMS43LTIuOSAuMiAuMSAuNCAuMSAuNiAuMiAuMyAzLjggLjIgMzAuNyAuMSAzNC41LS4yIDE0LjgtMiAyOS41LTcuMiA0My41LTcuOCAyMS0yMi4zIDM0LjctNDQuNSAzOS41LTE3LjggMy45LTM1LjYgMy44LTUzLjItMS4yLTIxLjUtNi4xLTM2LjUtMTktNDEuMS00MS44LS4zLTEuNi0xLjMtMS4zLTIuMy0xLjNsLTI2LjggMGMuOCAxMC42IDMuMiAyMC4zIDguNSAyOS4yIDI0LjIgNDAuNSA4Mi43IDQ4LjUgMTI4LjIgMzcuNCA0OS45LTEyLjMgNjcuMy01NC45IDY3LjQtMTA2LjN6Il19LGIwdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJ0aWRhbCIsaWNvbjpbNjQwLDUxMixbXSwiZTdkYyIsIk0xMDcuMiA0OGwtMS4zIDBjLTMyLjMgMzMuMS02NS40IDY1LjUtOTggOTguNS0yLjYgMi44LTYuMSA1LjEtNy45IDguNiAzNS42IDM1LjQgNzEgNzEgMTA2LjYgMTA2LjQgMzUuNC0zNS4zIDcwLjctNzAuOCAxMDYuMS0xMDYuMWwwLTEuMy03My4yLTczLjJDMTI4LjggNjkuOCAxMTcuMyA1OS42IDEwNy4yIDQ4em0yMTMuNSAwbC0xLjMgMGMtMzQuOSAzNi4xLTcxLjUgNzEtMTA2LjMgMTA3LjIgMzUuOSAzNS4xIDcxIDcxIDEwNi43IDEwNi4zIDM0LjMtMzQuMSA2OC40LTY4LjQgMTAyLjYtMTAyLjQgMS41LTEuNSAzLjMtMi44IDQuMS00LjgtMzQuNi0zMy44LTY4LjQtNjguMi0xMDIuNi0xMDIuMS0xLjMtMS4zLTIuMy0yLjYtMy4zLTQuMXptMjEzLjUgMGwtMS4zIDBjLTE3LjIgMTgtMzUuMSAzNS4zLTUyLjYgNTMtMTcuOSAxNy43LTM1LjQgMzUuNy01My41IDUzLjMgLjggMi4zIDMgMy42IDQuNiA1LjVMNTMzLjMgMjYxLjVjMzYuMS0zNC45IDcwLjgtNzEuMiAxMDYuNy0xMDYuMS0uNS0yLjItMi42LTMuNS00LTVMNTU1LjggNzAuMmMtNy4xLTcuNC0xNC45LTE0LjItMjEuNS0yMi4yek0zMTkuNiAyNjEuN2MtMzQuOSAzNS4xLTcwIDcwLTEwNC45IDEwNC45LS4zIC43LS43IDEuNy0xIDIuMyAyNCAyMy43IDQ3LjcgNDcuNSA3MS41IDcxLjMgMTEuOCAxMS4zIDIyLjggMjMuNSAzNC45IDM0LjQgOC40LTcuNCAxNi40LTE2LjQgMjQuNy0yNC4zIDI1LjUtMjUuMyA1MS01MSA3Ni41LTc2LjMgMS44LTIuMiA0LjMtMy42IDUuNS02LjMtMzUuNC0zNC45LTcwLjUtNzAuMi0xMDUuNi0xMDUuNGwtMS41LS43eiJdfSx2MHQ9e3ByZWZpeDoiZmFiIixpY29uTmFtZToidW5pdHkiLGljb246WzQ0OCw1MTIsW10sImUwNDkiLCJNMjQzLjYgOTEuNmw4MC4xIDQ2LjhjMi45IDEuNiAzIDYuMiAwIDcuOGwtOTUuMiA1NS42Yy0yLjkgMS43LTYuMyAxLjYtOSAwbC05NS4yLTU1LjZjLTIuOS0xLjYtMy02LjMgMC03LjhsODAuMS00Ni44IDAtOTEuNi0yMDQuNCAxMTkuNCAwIDIzOC44IDc4LjQtNDUuOCAwLTkzLjZjLS4xLTMuMyAzLjgtNS43IDYuNy0zLjlsOTUuMiA1NS42YzIuOSAxLjcgNC41IDQuNyA0LjUgNy44bDAgMTExLjJjLjEgMy4zLTMuOCA1LjctNi43IDMuOUw5OCAzNDYuOCAxOS42IDM5Mi42IDIyNCA1MTIgNDI4LjQgMzkyLjYgMzUwIDM0Ni44IDI2OS45IDM5My42Yy0yLjggMS43LTYuOC0uNS02LjctMy45bDAtMTExLjJjMC0zLjMgMS44LTYuMyA0LjUtNy44TDM2Mi45IDIxNWMyLjgtMS43IDYuOCAuNSA2LjcgMy45bDAgOTMuNiA3OC40IDQ1LjggMC0yMzguOC0yMDQuNC0xMTkuNCAwIDkxLjZ6Il19LHgwdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJ0ZW5jZW50LXdlaWJvIixpY29uOlszMjAsNTEyLFtdLCJmMWQ1IiwiTTQwLjUgNDk1LjhjMS40IDE5LjktMjcuNiAyMi4yLTI5LjcgMi45LTExLjYtMTI5LjkgMzEuMS0yMzkuNSAxMDEuNC0zMTMuMi0xNS42LTM0IDkuMi03Ny4xIDUwLjYtNzcuMSAzMC4zIDAgNTUuMSAyNC42IDU1LjEgNTUuMSAwIDQ0LTQ5LjUgNzAuOC04Ni45IDQ1LjEtNjUuNyA3MS4zLTEwMS40IDE2OS44LTkwLjUgMjg3LjJ6TTE2MC4yIC4xYy0xMjUuOSAwLTIwNC4zIDEzNC4yLTE0OC4zIDI0Mi4zIDguNyAxNy40IDM1LjMgNC41IDI2LjMtMTMuNC00Ni4zLTkyLjYgMjEtMTk5LjIgMTIyLTE5OS4yIDc1LjQgMCAxMzYuOSA2MS40IDEzNi45IDEzNi45IDAgOTAuOC04Ni45IDE1My45LTE2Ny43IDEzMy4xLTE5LjEtNC4xLTI1LjYgMjQuNC02LjYgMjkuMSAxMTAuNyAyMy4yIDIwNC02MCAyMDQtMTYyLjMgMC05MS45LTc0LjYtMTY2LjUtMTY2LjYtMTY2LjV6Il19LHkwdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJmcmVlLWNvZGUtY2FtcCIsaWNvbjpbNTc2LDUxMixbXSwiZjJjNSIsIk05Ny40IDk2LjJjMTAuNC0xMC42IDE2LTE3LjEgMTYtMjEuOSAwLTIuOC0xLjktNS41LTMuOC03LjQtMi40LTEuOC01LjQtMi44LTguNC0yLjgtOC41IDAtMjAuOSA4LjgtMzUuOCAyNS43LTQxLjUgNDcuMy02Mi43IDkzLjEtNjEuOCAxNjAuNlMyMSAzNjcuMyA1Ny42IDQxMi4yYzE4LjggMjMuNiAzMy4yIDM1LjggNDMuNSAzNS44IDMuMi0uMyA2LjEtMS42IDguNC0zLjggMS45LTIuOCAzLjgtNS42IDMuOC04LjQgMC01LjYtMy45LTEyLjItMTMuMi0yMC42LTQ0LjUtNDIuMy02Ny4zLTk3LTY3LjUtMTY1LS4yLTYxLjQgMjEuNi0xMTIuNCA2NC44LTE1NHpNMjM5LjYgNDIwLjFjLjYgLjQgLjkgLjYgLjkgLjZsLS45LS42em05My44IC42bC4yLS4xYy0uMiAuMS0uMyAuMi0uMiAuMXptMy4xLTE1OC4yYy0xNi4yLTQuMiA1MC40LTgyLjktNjguMS0xNzcuMiAwIDAgMTUuNSA0OS40LTYyLjggMTU5LjYtNzQuMyAxMDQuNCAyMy41IDE2OC43IDM0IDE3NS4yLTYuNy00LjMtNDcuNC0zNS43IDkuNi0xMjguNiAxMS0xOC4zIDI1LjUtMzQuOSA0My41LTcyLjIgMCAwIDE1LjkgMjIuNCA3LjYgNzEuMS0xMi41IDczLjYgNTMuOCA1Mi41IDU0LjggNTMuNSAyMi44IDI2LjgtMTcuNyA3My41LTIxLjYgNzYuNiA1LjUtMy43IDExNy43LTc4IDMzLTE4OC4xLTYgNi0xMy44IDM0LjItMzAgMzAuMXpNNTExIDg5LjdjLTE0LjktMTYuOS0yNy40LTI1LjctMzUuOS0yNS43LTMgLjEtNS45IDEuMS04LjQgMi44LTEuOSAxLjktMy44IDQuNy0zLjggNy40IDAgNC44IDUuNiAxMS4zIDE2IDIxLjkgNDMuMiA0MS42IDY1IDkyLjYgNjQuOCAxNTQuMS0uMiA2OC0yMyAxMjIuNi02Ny41IDE2NS05LjMgOC40LTEzLjIgMTQuOS0xMy4yIDIwLjYgMCAyLjcgMS45IDUuNiAzLjggOC40IDIuMyAyLjIgNS4yIDMuNiA4LjQgMy44IDEwLjMgMCAyNC43LTEyLjEgNDMuNS0zNS44IDM2LjYtNDQuOSA1My4xLTk0LjQgNTQuMS0xNjEuOVM1NTIuNSAxMzcgNTExIDg5Ljd6Il19LHcwdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJ4LXR3aXR0ZXIiLGljb246WzQ0OCw1MTIsW10sImU2MWIiLCJNMzU3LjIgNDhMNDI3LjggNDggMjczLjYgMjI0LjIgNDU1IDQ2NCAzMTMgNDY0IDIwMS43IDMxOC42IDc0LjUgNDY0IDMuOCA0NjQgMTY4LjcgMjc1LjUtNS4yIDQ4IDE0MC40IDQ4IDI0MC45IDE4MC45IDM1Ny4yIDQ4ek0zMzIuNCA0MjEuOGwzOS4xIDAtMjUyLjQtMzMzLjgtNDIgMCAyNTUuMyAzMzMuOHoiXX0sTTB0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6InN0aWNrZXItbXVsZSIsaWNvbjpbNTc2LDUxMixbXSwiZjNmNyIsIk01NjEuNyAxOTkuNmwwIDB6bS02LjItNzcuNGMtNy43LTIyLjMtNS4xLTcuMi0xMy40LTM2LjktMS42LTYuNS0zLjYtMTQuNS02LjItMjAtNC40LTguNy00LjYtNy41LTQuNi05LjUgMC01LjMgMzAuNy00NS4zIDE5LTQ2LjktNS43LS42LTEyLjIgMTEuNi0yMC42IDE3LTguNiA0LjItOCA1LTEwLjMgNS0yLjYgMC01LjctMy02LjItNS0yLTUuNyAxLjktMjUuOS0zLjYtMjUuOS0zLjYgMC0xMi4zIDI0LjgtMTcgMjUuOC01LjIgMS4zLTI3LjktMTEuNC03NS4xIDE4LTI1LjMgMTMuMi04Ni45IDY1LjItODcgNjUuMy02LjcgNC43LTIwIDQuNy0zNS41IDE2LTQ0LjQgMzAuMS0xMDkuNiA5LjQtMTEwLjcgOS0xMTAuNi0yNi44LTEyOC0xNS4yLTE1OSAxMS41LTIwLjggMTcuOS0yMy43IDM2LjUtMjQuMiAzOC45LTQuMiAyMC40IDUuMiA0OC4zIDYuNyA2NC4zIDEuOCAxOS4zLTIuNyAxNy43IDcuNyA5OC4zIC41IDEgNC4xIDAgNS4xIDEuNSAwIDguNC0zLjggMTIuMS00LjEgMTMtMS41IDQuNS0xLjUgMTAuNSAwIDE2IDIuMyA4LjIgOC4yIDM3LjIgOC4yIDQ2LjkgMCA0MS44IC40IDQ0IDIuNiA0OS40IDMuOSAxMCAxMi41IDkuMSAxNyAxMiAzLjEgMy41LS41IDguNSAxIDEyLjUgLjUgMiAzLjYgNCA2LjIgNSA5LjIgMy42IDI3IC4zIDI5LjktMi41IDEuNi0xLjUgLjUtNC41IDMuMS01IDUuMSAwIDEwLjgtLjUgMTQuNC0yLjUgNS4xLTIuNSA0LjEtNiAxLjUtMTAuNS0uNC0uOC03LTEzLjMtOS44LTE2LTIuMS0yLTUuMS0zLTcuMi00LjUtNS44LTQuOS0xMC4zLTE5LjQtMTAuMy0xOS41LTQuNi0xOS40LTEwLjMtNDYuMy00LjEtNjYuOCA0LjYtMTcuMiAzOS41LTg3LjcgMzkuNi04Ny44IDQuMS02LjUgMTctMTEuNSAyNy4zLTcgNiAxLjkgMTkuMyAyMiA2NS40IDMwLjkgNDcuOSA4LjcgOTcuNC0yIDExMi4yLTIgMi44IDItMS45IDEzLS41IDM4LjkgMCAyNi40LS40IDEzLjctNC4xIDI5LjktMi4yIDkuNyAzLjQgMjMuMi0xLjUgNDYuOS0xLjQgOS44LTkuOSAzMi43LTguMiA0My40IC41IDEgMSAyIDEuNSAzLjUgLjUgNC41IDEuNSA4LjUgNC42IDEwIDcuMyAzLjYgMTItMy41IDkuOCAxMS41LS43IDMuMS0yLjYgMTIgMS41IDE1IDQuNCAzLjcgMzAuNiAzLjQgMzYuNSAuNSAyLjYtMS41IDEuNi00LjUgNi40LTcuNCAxLjktLjkgMTEuMy0uNCAxMS4zLTYuNSAuMy0xLjgtOS4yLTE5LjktOS4zLTIwLTIuNi0zLjUtOS4yLTQuNS0xMS4zLTgtNi45LTEwLjEtMS43LTUyLjYgLjUtNTkuNCAzLTExIDUuNi0yMi40IDguNy0zMi40IDExLTQyLjUgMTAuMy01MC42IDE2LjUtNjguMyAuOC0xLjggNi40LTIzLjEgMTAuMy0yOS45IDkuMy0xNyAyMS43LTMyLjQgMzMuNS00Ny40IDE4LTIyLjkgMzQtNDYuOSA1Mi02OS44IDYuMS03IDguMi0xMy43IDE4LTggMTAuOCA1LjcgMjEuNiA3IDMxLjkgMTcgMTQuNiAxMi44IDEwLjIgMTguMiAxMS44IDIyLjkgMS41IDUgNy43IDEwLjUgMTQuOSA5LjUgMTAuNC0yIDEzLTIuNSAxMy40LTIuNSAyLjYtLjUgNS43LTUgNy4yLTggMy4xLTUuNSA3LjItOSA3LjItMTYuNSAwLTcuNy0uNC0yLjgtMjAuNi01Mi45eiJdfSxrMHQ9e3ByZWZpeDoiZmFiIixpY29uTmFtZToidHdpdGNoIixpY29uOls0NDgsNTEyLFtdLCJmMWU4IiwiTTM1OS40IDEwMy41bC0zOC42IDAgMCAxMDkuNyAzOC42IDAgMC0xMDkuN3pNMjUzLjIgMTAzbC0zOC42IDAgMCAxMDkuOCAzOC42IDAgMC0xMDkuOHpNODkgMGwtOTYuNSA5MS40IDAgMzI5LjIgMTE1LjggMCAwIDkxLjQgOTYuNS05MS40IDc3LjMgMCAxNzMuOC0xNjQuNiAwLTI1Ni0zNjYuOSAwek00MTcuMyAyMzcuOGwtNzcuMiA3My4xLTc3LjIgMC02Ny42IDY0IDAtNjQtODYuOSAwIDAtMjc0LjMgMzA4LjkgMCAwIDIwMS4yeiJdfSxTMHQ9e3ByZWZpeDoiZmFiIixpY29uTmFtZToia2lja3N0YXJ0ZXItayIsaWNvbjpbNDQ4LDUxMixbXSwiZjNiYyIsIk0zNTYuNyAyNTYuMmw0MC44LTQwLjVjNDIuMi00MS45IDQyLjItMTEwLjMgMC0xNTIuMXMtMTExLTQxLjktMTUzLjIgMEwyMjkuMyA3OC40QzIwOS42IDUwLjMgMTc3LjEgMzIgMTQwLjIgMzIgODAuNSAzMiAzMiA4MC4yIDMyIDEzOS41bDAgMjMzYzAgNTkuNCA0OC41IDEwNy41IDEwOC4yIDEwNy41IDM3LjEgMCA2OS4zLTE4LjMgODktNDYuNGwxNC45IDE0LjdjNDIuMiA0MS45IDExMSA0MS45IDE1My4yIDBzNDIuMi0xMTAuMyAwLTE1Mi4xbC00MC44LTQwIC4xIDB6Il19LHowdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJjcml0aWNhbC1yb2xlIixpY29uOls0NDgsNTEyLFtdLCJmNmM5IiwiTTIyNS44IDBjLjMgLjIgMjE2LjYgMTI0LjUgMjE3LjEgMTI0LjcgMyAxLjIgMy43IDMuNSAzLjcgNi42LS4xIDgzLjQtLjEgMTY2LjkgMCAyNTAuNCAuMSAxLjItLjIgMi40LS44IDMuNHMtMS41IDEuOS0yLjYgMi40Yy0yMS40IDEyLTIwNy45IDExOC4zLTIxOC45IDEyNC42bC0zIDBjLTc5LjMtNDUuNy0yMTguMy0xMjUuNC0yMTguNC0xMjUuNS0uNi0uMy0xLjEtLjctMS40LTEuM3MtLjUtMS4yLS40LTEuOWMwLS45IDAtMjI1LjktLjEtMjUzLjEtLjEtMSAuMi0yIC43LTIuOXMxLjMtMS42IDIuMi0yQzI3LjIgMTEyLjEgMjEzLjIgNiAyMjQuMSAwbDEuOCAwek0yMTUuNCAyMC40bC0uMi0uMmMtNjQuNyAzNi45LTEyOS41IDczLjctMTk0LjIgMTEwLjYgMCAuMSAuMSAuMiAuMSAuNEw1MiAxNDIuOWMtNy43IDYtOC4zIDYtMTAuNiA1LjEtLjEgMC0yNC4yLTkuMy0yNi44LTEwbDAgMjMwLjRjLjktMS40IDY0LjEtMTEwLjkgNjQuMS0xMTEgMS42LTIuOCAzLTEuOSA5LjEtMS41IDEuNCAuMSAxLjUgLjIgLjggMS40LTQxLjIgNzEuMy0zNi40IDYzLTY3LjUgMTE2LjktLjggMS40LS42IDEuMSAxLjIgMS4xbDE4Ni41IDBjMS40IDAgMS43LS4yIDEuNy0xLjZsMC04LjljMC0xLjMgMi40LS44LTE4LjQtMS03LjUtLjEtMTQuMS0zLjItMjEuNC0xMi43LTcuNC05LjctMTQuNi0xOS40LTIxLjgtMjkuMi0yLjMtMy4xLTMuNC0yLjQtMTYuOC0yLjQtMS44IDAtMS44IDAtMS44IDEuOCAuMyAyNi4yIC4yIDI1LjMgMSAzMi43IC41IDQuNCAyLjIgNC4yIDkuNyA0LjggMy4xIC4zIDMuOSA0LjEgLjUgNC45LTEuNiAuNC0zMS42IC41LTMzLjctLjEtLjUtLjEtMS0uNS0xLjMtLjlzLS41LTEtLjQtMS42IC4zLTEuMSAuNi0xLjUgLjktLjcgMS40LS44YzMuMy0uOCA2LjIgLjggNi43LTQuNCAxLjMtMTMuNyAxLjItOSAxLjEtNzkuNCAwLTEwLjgtLjQtMTIuNi01LjQtMTMuNi0xLjItLjItMy41LS4yLTQuNy0uNi0yLjktMS0yLTQuOCAxLjgtNC44IDMzLjcgMCA0Ni4xLTEuMSA1Ni4xIDQuOSA3LjcgNC42IDEyIDExLjUgMTIuNSAyMC40IC45IDE0LjYtNi41IDIyLjMtMTUgMzIuNi0uMiAuMS0uMyAuMy0uNCAuNXMtLjEgLjQtLjEgLjYgMCAuNCAuMSAuNiAuMiAuNCAuNCAuNWMyLjYgMy4yIDUgNi42IDcuNyA5LjggMjcuNiAzMy4yIDI0LjEgMzAuNSA0MS4zIDMzLjEgLjkgLjEgMS0uNCAxLTEuMmwwLTExYzAtMSAuMy0xLjQgMS40LTEuMyA3LjggMS4yIDE1LjggMS4xIDIzLjYtLjMgMS4xLS4xIDEuNSAuMiAxLjUgMS4zIDAgLjEgLjkgMjYuNyAuOSAyNi44IDAgMS41IC43IDEuNiAxLjkgMS42bDE4Ni43IDBjLTI3LjItNDctNTQuMi05NC04MS4yLTE0MC44IDIuMy0uNy0uNCAwIDYuNy0xLjQgMi0uNCAyLjEtLjQgMy4xIDEuNCA3LjMgMTIuNiA3Ny4zIDEzNCA3Ny40IDEzNC4xbDAtMjMwLjRjLTEuNyAuNS0xMDMuMyAzOC43LTEwNS44IDM5LjctMS4xIC40LTEuNSAuMi0xLjktLjktLjYtMS45LTEuMy0zLjgtMi4xLTUuNi0uMy0uOC0uMS0xLjEgLjYtMS40IC4xIDAgOTUuNS0zNS44IDEwMy0zOC44LTY1LjQtMzcuNi0xMzAuNi03NS0xOTYtMTEyLjZsODYuOCAxNTAuNC0uMyAuM2MtOS42LS45LTEwLjUtMS42LTExLjgtMy45LTEtMS43LTczLjUtMTI3LjctODItMTQyLjItOS4xIDE0LjctODMuNiAxNDYuMi04NS40IDE0Ni4zLTIuOSAuMi01LjkgLjEtOS4yIC4xIDI4LjgtNDkuOCA1Ny42LTk5LjUgODYuMi0xNDlsMCAwem01MS45IDEyOS45YzEuOS0uMSAzLjctLjQgNS41LS44IDEuNy0uMyAyLjUgLjIgMi42IDEuOSAwIC4xIC4xIDE5LjEtLjkgMjAuNXMtMS45IDEuMi0yLjYtLjJjLTUtOS43IDYuMi05LjctMzkuMS0xMi0uNyAwLTEgLjItMSAuOSAwIC4xIDMuNyAxMjIgMy43IDEyMi4xIDAgLjkgLjUgMS4yIDEuMiAxLjUgMyAxLjIgNS45IDIuNSA4LjcgNCA3LjMgNC4zIDExLjQgMTAuOCAxMi40IDE5LjMgMS40IDExLjgtMi44IDM1LjgtMzIuMiAzNy4xLTIuOCAuMS0yOC4zIDEuMS0zNC4xLTIzLjMtNC43LTE5LjMgOC4zLTMyLjcgMTkuOS0zNi40IC42LS4xIDEuMi0uNCAxLjUtLjlzLjUtMS4xIC41LTEuN2MuMS01LjYgMy0xMDcuMSAzLjctMTIxLjMgMC0xLjEtLjYtMS4yLTEuNC0xLjEtMzIuMyAuNS0zNi43LS4zLTQwLjIgOC41LTIuNCA2LjItNC4xIDEuMy00IC4yIDEuMS02IDIuMi0xMiAzLjMtMTggLjQtMi4xIDEuNC0yLjYgMy40LTEuOSA1LjYgMi4xIDYuNyAxLjcgMzcuMiAxLjkgMS43IDAgMS44LS4xIDEuOC0xLjggLjctMjcuNSAuNi0yMi42IDEtMjkuNiAuMS0uNi0uMS0xLjItLjMtMS43cy0uNy0uOS0xLjMtMS4xYy01LjYtMi45LTguOC03LjYtOC45LTEzLjktLjQtMTQuOCAxNy43LTIxLjcgMjcuNC0xMS41IDYuOCA3LjIgNS44IDE4LjktMi41IDI0LjItLjggLjQtMS40IDEuMS0xLjggMS44cy0uNiAxLjYtLjQgMi41YzAgLjYtLjEtNC4zIDEgMzAgMCAuOSAuNCAxLjEgMS4yIDEuMSAuMSAwIDIzLS4xIDM0LjUtLjRsMC0uMXpNNjguMyAxNDEuN2MxOS44LTQuNSAzMi43LS42IDUyLjUgMS43IDIuOCAuMyAzLjcgMS4yIDMuNiA0LS4yIDUtMS4yIDIyLjMtMS4yIDIzLjEgMCAuNS0uMiAxLS41IDEuNHMtLjcgLjctMS4yIC45Yy00LjEgMS43LTMuNi00LjQtNC03LjMtMy4xLTIyLjQtNzMuOS0zMi43LTc0LjYgMjUuNC0uMyAyMy45IDE3IDUzLjYgNTQuMSA1MC45IDI3LjItMiAxOS0yMC4yIDI0LjgtMjAuNSAuNC0uMSAuOSAwIDEuMyAuMXMuOCAuNCAxLjEgLjcgLjUgLjcgLjYgMS4yIC4xIC45IDAgMS4zYy0xLjggMTAuOC0zLjQgMTktMy40IDE5LjItMS41IDkuMi04Ni43IDIyLjEtOTMuNC00Mi4xLTIuNy0yNS44IDEwLjQtNTMuNCA0MC4zLTYwLjJ6bTgwIDg3LjdsLTE5LjUgMGMtLjYgMC0xLjItLjEtMS42LS40cy0uOC0uOC0xLTEuNGMyLjQtMy44IDUuOSAuOSA1LjktNi4xLS4xLTI1LjggLjItMzggLjItNDAuMSAwLTMuNC0uNS00LjYtMy4zLTQuOS03LS43LTMuMS0zLjQtMS4xLTMuNCAxMS44LS4xIDIyLjYtLjIgMzAgLjcgOC44IDEuMSAxNi43IDEyLjYgNy45IDIyLjYtMiAyLjItNCA0LjQtNi4xIDYuNyAxIDEuMiA2LjkgOC44IDE3LjMgMTkuNyAyLjcgMi44IDYuMiAzLjUgOS45IDMuMSAuNiAwIDEuMS0uMiAxLjUtLjZzLjctLjkgLjctMS41Yy4zLTMuNCAuMyA0LjcgLjQtNDAuNiAwLTUuNi0uMy02LjYtMy4yLTYuOC00LS40LTQtMi4zLS43LTMuNGwxOS4xLS4xYy4zIDAgNC41IC41IDEgMy40IDAgMC0uMiAwLS4yIDAtMy42IC4zLTMuOSAxLTQgNC42LS4zIDQzLjkgLjEgNDAuMiAuNCA0Mi44IC4xIC44IC4zIDIuMiA1LjEgMi4xIDIuNSAwIDMuOSAzLjQgMCAzLjQtMTAuNCAuMS0yMC43IDAtMzEuMSAuMS0xMC43IDAtMTMuNS02LjItMjQuMi0yMC44LTEuNi0yLjItOC4zLTIuNC04LjItLjQgLjkgMTYuNSAwIDE3LjggNCAxNy43IDQuOC0uMSA0LjcgMy42IC44IDMuNWwuMSAwem0yNzUtMTAuMWMtMS4yIDcuMSAuMiAxMC40LTUuMyAxMC4zLTYxLjUtLjQtNDcuOC0uMi01MC43LS4zLTEuMi0uMS0yLjQtLjQtMy42LS43LTIuNS0uNiAxLjUtMS4yLS40LTUuNi0xLjQtMy40LTIuOC02LjgtNC4xLTEwLjItLjEtLjQtLjQtLjgtLjctMS4xcy0uOC0uNC0xLjMtLjRjLTQuOS0uMi05LjctLjItMTQuNiAuMS0uMyAwLS42IC4yLS45IC4zcy0uNSAuNC0uNyAuN2MtMS42IDMuNi0zLjEgNy4zLTQuNSAxMS0xLjMgMy4yIDcuOSAxLjMgMTIuMiAyLjIgMyAuNiA0LjUgMy43IC43IDMuN2wtMjYuNCAwYy0yLjkgMC0zLjEtMy4yLS43LTMuMiAxLjIgLjEgMi40LS4yIDMuNS0uOXMxLjktMS41IDIuNC0yLjZjMS41LTMgMi44LTYgNC4xLTkuMSAxOC4yLTQyLjEgMTcuMS00MC4yIDE4LjQtNDEuNiAuMi0uMiAuNC0uNCAuNy0uNnMuNi0uMiAuOC0uMiAuNiAuMSAuOCAuMiAuNSAuMyAuNyAuNmMyLjkgMy4zIDE4LjQgNDQuNyAyMy42IDUxLjkgMiAyLjcgNS43IDIgNi40IDIgMy42IC4xIDQtMS4xIDQuMS00LjMgLjEtMS45IC4xIDEuMiAuMS00MS4yIDAtNC41LTIuNC0zLjctNS42LTQuMy0uMyAwLTIuNi0uNi0uMS0zLjEgLjItLjItLjktLjIgMjEuNy0uMiAyLjMgMCA1LjMgMi44LTEuMiAzLjQtLjQgMC0uNyAwLTEuMSAuMnMtLjYgLjMtLjkgLjYtLjQgLjYtLjYgLjktLjIgLjctLjEgMS4xYy0uMSAxLjYtLjIgMzguOSAuMyA0MS4yIC4yIC43IC42IDEuNCAxLjIgMS44czEuMyAuNyAyLjEgLjZjMTMuMyAuNCAxNC45IC40IDE2LTMuNCAxLjctNS44IDQuMS0yLjUgMy43LS4ybDAgLjF6TTMxOC42IDI4My42Yy00LjIgMC00LjQtMy40LS42LTMuNCAzNS45LS4yIDI4LjEgLjQgMzcuMi0uNiAxLjctLjIgMi40IC4yIDIuMyAxLjktLjMgMy40LS42IDYuOC0xIDEwLjItLjIgMi4yLTMuMiAyLjYtMy40LS4yLS40LTUuMy0yLjItNC41LTE1LjYtNS4xLTEuNi0uMS0xLjYgMC0xLjYgMS41bDAgMTYuMWMwIDEuNyAwIDEuNiAxLjYgMS41IDMuMS0uMiAxMC4zIC4zIDE1LjctMS41IC41LS4yIDMuMy0xLjggMy4xIDEuOCAwIC4yLS44IDEwLjQtMS4yIDExLjQtLjUgMS4zLTEuOSAxLjUtMi42IC4zLTEuMi0yIDAtNS4xLTMuNy01LjMtMTUuNC0uOS0xMi45LTIuNS0xMi45IDYgMCAxMi4zLS44IDE2LjEgMy45IDE2LjIgMTYuNiAuNSAxNC40IDAgMTYuNC01LjcgLjgtMi40IDMuNS0xLjggMy4yIC42LS40IDMuMi0uOCA2LjQtMS4yIDkuNiAwIC40LS4yIDIuNC00LjcgMi40LTM3LjItLjEtMzQuNS0uMi0zNS4yLS4zLTIuNy0uNS0yLjItMyAuMi0zLjQgMS4xLS4yIDQgLjUgNC4yLTIuNiAyLjQtNTYuMi0uMS01MS4zLTMuOS01MS4zbDAgMHptLS40LTEwOS41YzIuNSAuNiAzLjEgMS44IDMgNC42LS4zIDUuMy0uMyA5LS42IDkuNy0uNyAyLjItMy4xIDIuMS0zLjMtLjMtLjQtNC44LTMtNy44LTcuNi05LjEtMjYuMy03LjctMzIuOCAxNS41LTI3LjIgMzAuMiA1LjkgMTUuNCAyMiAxNS45IDI4LjkgMTMuOCA1LjktMS45IDUuOS02LjUgNi45LTcuNiAxLjItMS4zIDIuMi0xLjggMy4xIDEuMSAwIC4xIC42IDExLjktNiAxMi43LTEuNiAuMi0xOS40IDMuNy0zMi43LTMuNC0yMS0xMS4yLTE2LjctMzUuNS02LjktNDUuMyAxNC0xNC4xIDM5LjktNy4xIDQyLjMtNi41bDAgMHpNMjg5LjggMjgwLjFjMy4zIDAgMy43IDMgLjIgMy40LTIuNiAuMy01LS40LTUgNS41IDAgMi0uMiAyOSAuNCA0MS40IC4xIDIuMyAxLjIgMy41IDMuNCAzLjcgMjIgMS4yIDE1LTEuNyAxOC44LTYuMyAxLjgtMi4yIDIuOCAuOCAyLjggMS4xIC4zIDEzLjYtNCAxMi40LTUuMiAxMi40bC0zOC4yLS4yYy0xLjktLjItMi4xLTMtLjQtMy40IDItLjUgNC45IC40IDUuMS0yLjggMS0xNS45IC42LTQ0LjYgLjMtNDcuOC0uMy0zLjgtMi44LTMuMy01LjctMy43LTIuNS0uNC0yLTMuMiAuMy0zLjIgMS40IDAgMTggMCAyMy4xIDB6bS0zMS42LTU3LjhjLjEgNC4xIDIuOSAzLjUgNiAzLjYgMi42IC4xIDIuNSAzLjQtLjEgMy40LTYuNSAwLTEzLjcgMC0yMS42LS4xLTMuOCAwLTMuNC0zLjQgMC0zLjQgNC41IDAgMy4yIDEuNiAzLjQtNDUuNSAwLTUuMS0zLjMtMy41LTQuNy00LjItMi42LTEuMi0xLjQtMy4xIC40LTMuMiAxLjMgMCAyMC4yLS40IDIxLjIgLjJzMS45IDEuNi0uNCAyLjljLTEgLjUtMy45LS4zLTQuMiAyLjUgMCAuMi0uOCAxLjYtLjEgNDMuOGwwIDB6TTIyMS4zIDQ5Ni42Yy41IC4zIDEgLjUgMS42IC41czEuMS0uMiAxLjYtLjVjMTctOS44IDE4Mi0xMDMuNiAxOTcuNC0xMTIuNS0uMS0uNCAxMS4zLS4yLTE4MS41LS4zLTEuMiAwLTEuNiAuNC0xLjUgMS42IDAgLjEgMS4zIDQ0LjUgMS4yIDUwLjQtLjEgMi42LS42IDUuMi0xLjQgNy43LS42IDEuOCAuNC0uNS0xMy41IDMyLjItLjcgMS43LTEgMi4yLTItLjEtNC4yLTEwLjMtOC4zLTIwLjctMTIuNi0zMS0xLjUtMy40LTIuMi03LjEtMi0xMC44IC4yLTIuNSAuOC0xNi4xIDEuNS00OCAwLTEuOSAwLTItMi0ybC0xODMgMGMyLjYgMS42IDE3OC4zIDEwMi42IDE5NiAxMTIuOGwuMSAwek0xMzAuNCAzMDcuOWMwIDIuNCAuNCAyLjggMi44IDMgMTEuNSAxLjIgMjEgMy43IDI1LjYtNy4zIDYtMTQuNSAyLjctMzQuNC0xMi41LTM4LjgtMi0uNi0xNi0yLjgtMTUuOSAxLjUgMCA4IDAgMTEuNiAwIDQxLjZ6bTEwNS44LTE1YzAgMi4xIDEuMSAzOC43IDEuMSAzOS4xIC4zIDkuOS0yNS42IDUuOC0yNS4yLTIuNiAuMS0yIDEuNC0zNy40IDEuMS0zOS40LTE0LjEgNy40LTE0LjQgNDAuMiA2LjQgNDguOCA0IDEuNyA4LjQgMS45IDEyLjUgLjZzNy42LTQgOS45LTcuN2M0LjktNy44IDYuOC0yOS41LTUuNC0zOS0uMSAuMS0uMiAuMS0uNCAuMWwwIDB6bS0xMi4zLTE5OGMtOS44IDAtOS43IDE0LjgtLjEgMTQuOXMxMC4xLTE0LjkgLjEtMTQuOWwwIDB6TTE0My43IDE5OC42YzAgMS44IC40IDIuNCAyLjIgMi42IDEzLjYgMS40IDEyLjUtMTEgMTIuMi0xMy40LTEuNy0xMS4yLTE0LjQtMTAuMi0xNC40LTcuOCAwIDQuNSAwIDEzLjcgMCAxOC42ek0zNTYgMjA1bC02LjEtMTUuOGMtMi4yIDUuNS00LjIgMTAuNi02LjIgMTUuOGwxMi4zIDB6Il19LEMwdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJzdGVhbS1zeW1ib2wiLGljb246WzQ0OCw1MTIsW10sImYzZjYiLCJNMjczLjUgMTc3LjVhNjEgNjEgMCAxIDEgMTIyIDAgNjEgNjEgMCAxIDEgLTEyMiAwem0xNzQuNSAuMmMwIDYzLTUxIDExMy44LTExMy43IDExMy44TDIyNSAzNzEuM2MtNCA0My00MC41IDc2LjgtODQuNSA3Ni44LTQwLjUgMC03NC43LTI4LjgtODMtNjdMMCAzNTggMCAyNTAuNyA5Ny4yIDI5MGMxNS4xLTkuMiAzMi4yLTEzLjMgNTItMTEuNWw3MS0xMDEuN0MyMjAuNyAxMTQuNSAyNzEuNyA2NCAzMzQuMiA2NCAzOTcgNjQgNDQ4IDExNSA0NDggMTc3Ljd6TTIwMyAzNjNjMC0zNC43LTI3LjgtNjIuNS02Mi41LTYyLjUtNC41IDAtOSAuNS0xMy41IDEuNWwyNiAxMC41YzI1LjUgMTAuMiAzOCAzOSAyNy43IDY0LjUtMTAuMiAyNS41LTM5LjIgMzgtNjQuNyAyNy41LTEwLjItNC0yMC41LTguMy0zMC43LTEyLjIgMTAuNSAxOS43IDMxLjIgMzMuMiA1NS4yIDMzLjIgMzQuNyAwIDYyLjUtMjcuOCA2Mi41LTYyLjV6TTQxMC41IDE3Ny43YTc2LjQgNzYuNCAwIDEgMCAtMTUyLjggMCA3Ni40IDc2LjQgMCAxIDAgMTUyLjggMHoiXX0sVDB0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6Im1haWxjaGltcCIsaWNvbjpbNDQ4LDUxMixbXSwiZjU5ZSIsIk0zMzEgMjQzLjVjMy4xLS40IDYuMi0uNCA5LjMgMCAxLjctMy44IDItMTAuNCAuNS0xNy42LTIuMi0xMC43LTUuMy0xNy4xLTExLjUtMTYuMXMtNi41IDguNy00LjIgMTkuNGMxLjMgNiAzLjUgMTEuMSA2IDE0LjNsMCAwek0yNzcuNCAyNTJjNC41IDIgNy4yIDMuMyA4LjMgMi4xIDEuOS0xLjktMy41LTkuNC0xMi4xLTEzLjEtNS0yLjEtMTAuNC0yLjgtMTUuOC0yLjJzLTEwLjUgMi43LTE0LjggNS44Yy0zIDIuMi01LjggNS4yLTUuNCA3LjEgLjkgMy43IDEwLTIuNyAyMi42LTMuNSA3LS40IDEyLjggMS44IDE3LjMgMy43bDAgMHptLTkgNS4xYy05LjEgMS40LTE1IDYuNS0xMy41IDEwLjEgLjkgLjMgMS4yIC44IDUuMi0uOCA2LTIuMyAxMi40LTIuOSAxOC43LTEuOSAyLjkgLjMgNC4zIC41IDQuOS0uNSAxLjUtMi4yLTUuNy04LTE1LjQtNi45bDAgMHptNTQuMiAxNy4xYzMuNC02LjktMTAuOS0xMy45LTE0LjMtN3MxMC45IDEzLjkgMTQuMyA3bDAgMHptMTUuNy0yMC41Yy03LjctLjEtOCAxNS44LS4zIDE1LjlzOC0xNS44IC4zLTE2bDAgMHpNMTE5LjUgMzMyLjdjLTEuMyAuMy02IDEuNS04LjUtMi4zLTUuMi04IDExLjEtMjAuNCAzLTM1LjgtOS4xLTE3LjUtMjcuOC0xMy41LTM1LTUuNS04LjcgOS42LTguNyAyMy41LTUgMjQuMSA0LjMgLjYgNC4xLTYuNSA3LjQtMTEuNiAuOS0xLjQgMi4xLTIuNiAzLjUtMy42czMtMS42IDQuNi0yIDMuNC0uNCA1IDAgMy4zIDEgNC43IDEuOWMxMS42IDcuNiAxLjQgMTcuOCAyLjMgMjguNiAxLjQgMTYuNyAxOC40IDE2LjQgMjEuNiA5IC4yLS40IC4zLS44IC4zLTEuMnMtLjItLjgtLjUtMS4xYzAgLjkgLjctMS4zLTMuNC0uNGwwIDB6bTI5OS43LTE3LjFjLTMuMy0xMS43LTIuNi05LjItNi44LTIwLjUgMi40LTMuNyAxNS4zLTI0LTMuMS00My4zLTEwLjQtMTAuOS0zMy45LTE2LjUtNDEuMS0xOC41LTEuNS0xMS40IDQuNi01OC43LTIxLjUtODMgMjAuOC0yMS42IDMzLjgtNDUuMyAzMy43LTY1LjctLjEtMzkuMi00OC4yLTUxLTEwNy40LTI2LjVsLTEyLjUgNS4zYy0uMSAwLTIyLjctMjIuMy0yMy4xLTIyLjYtNjcuNS01OC45LTI3OC44IDE3NS45LTIxMS4zIDIzMi45bDE0LjggMTIuNWMtNCAxMC43LTUuNCAyMi4yLTQuMSAzMy41IDMuNCAzMy40IDM2IDYwLjQgNjcuNSA2MC40IDU3LjcgMTMzLjEgMjY3LjkgMTMzLjMgMzIyLjMgMyAxLjctNC41IDkuMS0yNC42IDkuMS00Mi40cy0xMC4xLTI1LjMtMTYuNS0yNS4zbDAgMHptLTMxNiA0OC4yYy0yMi44LS42LTQ3LjUtMjEuMS00OS45LTQ1LjUtNi4yLTYxLjMgNzQuMy03NS4zIDg0LTEyLjMgNC41IDI5LjYtNC43IDU4LjUtMzQuMSA1Ny44bDAgMHpNODQuNyAyNDkuNmMtMTUuMiAzLTI4LjUgMTEuNS0zNi43IDIzLjUtNC45LTQuMS0xNC0xMi0xNS42LTE1LTEzLTI0LjggMTQuMi03MyAzMy4zLTEwMC4yIDQ3LjEtNjcuMiAxMjAuOS0xMTguMSAxNTUtMTA4LjkgNS41IDEuNiAyMy45IDIyLjkgMjMuOSAyMi45cy0zNC4xIDE4LjktNjUuOCA0NS4zQzEzNi4yIDE1MCAxMDQgMTk3LjcgODQuNyAyNDkuNnpNMzIzLjYgMzUwLjdzLTM1LjcgNS4zLTY5LjUtNy4xYzYuMi0yMC4yIDI3IDYuMSA5Ni40LTEzLjggMTUuMy00LjQgMzUuNC0xMyA1MS0yNS40IDMuNCA3LjggNS44IDE1LjkgNy4xIDI0LjMgMy43LS43IDE0LjItLjUgMTEuNCAxOC4xLTMuMyAxOS45LTExLjcgMzYtMjUuOSA1MC44LTguOSA5LjYtMTkuNCAxNy41LTMxLjIgMjMuMy02LjUgMy40LTEzLjMgNi4zLTIwLjMgOC42LTUzLjUgMTcuNS0xMDguMy0xLjctMTI2LTQzLTEuNC0zLjEtMi42LTYuNC0zLjYtOS43LTcuNS0yNy4yLTEuMS01OS44IDE4LjgtODAuNCAxLjItMS4zIDIuNS0yLjkgMi41LTQuOC0uMi0xLjctLjgtMy4zLTEuOS00LjUtNy0xMC4xLTMxLjItMjcuNC0yNi4zLTYwLjggMy41LTI0IDI0LjUtNDAuOSA0NC4xLTM5LjlsNSAuM2M4LjUgLjUgMTUuOSAxLjYgMjIuOSAxLjkgMTEuNyAuNSAyMi4yLTEuMiAzNC42LTExLjYgNC4yLTMuNSA3LjYtNi41IDEzLjMtNy41IDIuMy0uNiA0LjctLjcgNy0uM3M0LjYgMS4yIDYuNiAyLjVjMTAgNi42IDExLjQgMjIuNyAxMS45IDM0LjUgLjMgNi43IDEuMSAyMyAxLjQgMjcuNiAuNiAxMC43IDMuNCAxMi4yIDkuMSAxNCAzLjIgMSA2LjIgMS44IDEwLjUgMy4xIDEzLjIgMy43IDIxIDcuNSAyNiAxMi4zIDIuNSAyLjUgNC4yIDUuOCA0LjcgOS4zIDEuNiAxMS40LTguOCAyNS40LTM2LjMgMzguMi00Ni43IDIxLjctOTMuNyAxNC40LTEwMC41IDEzLjctMjAuMi0yLjctMzEuNiAyMy4zLTE5LjUgNDEuMSAyMi42IDMzLjQgMTIyLjQgMjAgMTUxLjQtMjEuNCAuNy0xIC4xLTEuNi0uNy0xLTQxLjggMjguNi05Ny4xIDM4LjItMTI4LjUgMjYtNC44LTEuOC0xNC43LTYuNC0xNS45LTE2LjcgNDMuNiAxMy41IDcxIC43IDcxIC43czItMi44LS42LTIuNXpNMTcxLjcgMTU3LjVjMTYuNy0xOS40IDM3LjQtMzYuMiA1NS44LTQ1LjYgLjEtLjEgLjMtLjEgLjUtLjFzLjMgLjEgLjQgLjIgLjIgLjMgLjIgLjQgMCAuMy0uMSAuNWMtMS41IDIuNy00LjMgOC4zLTUuMiAxMi43IDAgLjEgMCAuMyAwIC40cy4yIC4zIC4zIC40IC4zIC4xIC40IC4xIC4zIDAgLjQtLjFjMTEuNS03LjggMzEuNS0xNi4yIDQ5LTE3LjMgLjIgMCAuMyAwIC41IC4xcy4yIC4yIC4zIC40IC4xIC4zIDAgLjUtLjEgLjMtLjMgLjRjLTIuOSAyLjItNS41IDQuOC03LjcgNy43LS4xIC4xLS4xIC4yLS4xIC40czAgLjMgLjEgLjQgLjIgLjIgLjMgLjMgLjIgLjEgLjQgLjFjMTIuMyAuMSAyOS43IDQuNCA0MSAxMC43IC44IC40IC4yIDEuOS0uNiAxLjctNjkuNS0xNS45LTEyMy4xIDE4LjUtMTM0LjUgMjYuOC0uMiAuMS0uMyAuMS0uNSAuMXMtLjMtLjEtLjUtLjItLjItLjMtLjItLjUgLjEtLjQgLjItLjVsLS4xIDB6Il19LF8wdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJsdW1vbiIsaWNvbjpbNjQwLDUxMixbXSwiZTdlMiIsIk00NTIuNSAyMjMuNWM5LjggMCAxNi41IDYuMyAxNi41IDE2LjZsMCAzMS44YzAgMTAuMy02LjYgMTYuNi0xNi42IDE2LjZsLTU2LjIgMGMtOS44IDAtMTYuNS02LjMtMTYuNS0xNi42bDAtMzEuOGMwLTEwLjMgNi43LTE2LjYgMTYuNS0xNi42bDU2LjMgMHptLTI1LjcgMTMuMWMtMS41LTIuNi0zLjItMi42LTQuNiAwbC0xMC43IDE3LjZjLTEuNyAyLjQtMi42IDUuMS0yLjYgOC4yIDAgNy45IDYuOSAxNC42IDE1LjYgMTQuNiA4LjUgMCAxNS42LTYuNyAxNS42LTE0LjYgMC0zLTEtNS44LTIuNy04LjJsLTEwLjctMTcuNnpNODUuOCAyMjMuOGMxIDAgMS41IC42IDEuNSAxLjVsMCA1MC4zIDY0LjYgMGMxIDAgMS42IC42IDEuNiAxLjVsMCA5LjdjMCAuOS0uNiAxLjUtMS42IDEuNWwtNzguNCAwYy0xIDAtMS42LS42LTEuNi0xLjVsMC02MS40YzAtLjkgLjYtMS41IDEuNi0xLjVsMTIuMyAwem04OC4zIDBjMSAwIDEuNSAuNiAxLjUgMS41bDAgNDVjMCA0IDIgNS4yIDUuNyA1LjJsNDYuOSAwYzMuOCAwIDUuNy0xLjMgNS43LTUuMmwwLTQ1YzAtLjkgLjUtMS41IDEuNS0xLjVsMTIuMyAwYzEgMCAxLjYgLjYgMS42IDEuNWwwIDQ2YzAgMTAuNS01LjMgMTYuOC0xNy42IDE2LjhsLTU0IDBjLTEyLjMgMC0xNy42LTYuMy0xNy42LTE2LjhsMC00NmMwLS45IC42LTEuNSAxLjYtMS41bDEyLjMgMHptMTA4LjIgMGMxIDAgMS42IC41IDIuMiAxLjRsMzAuNSA0Ni40IDEuNCAwIDMwLjUtNDYuNGMuNi0uOSAxLjItMS40IDIuMi0xLjRsMTggMGMxIDAgMS41IC42IDEuNSAxLjVsMCA2MS40YzAgLjktLjUgMS41LTEuNSAxLjVsLTEyLjMgMGMtMSAwLTEuNi0uNi0xLjYtMS41bDAtNDMuOC0xLjEgMC0yOC43IDQzLjhjLS42IC45LTEuMyAxLjUtMi40IDEuNWwtMTAuNyAwYy0xIDAtMS43LS42LTIuMy0xLjVsLTI4LjctNDMuOC0xLjEgMCAwIDQzLjhjMCAuOS0uNSAxLjUtMS41IDEuNWwtMTIuMyAwYy0xIDAtMS42LS42LTEuNi0xLjVsMC02MS40YzAtLjkgLjYtMS41IDEuNi0xLjVsMTcuOSAwem0yMTQuNCAwYy45IDAgMS4zIC40IDIuMiAxLjFsNTIuNyA0Ni4zIDEuMyAwIDAtNDZjMC0uOSAuNi0xLjUgMS42LTEuNWwxMi4zIDBjMSAwIDEuNiAuNiAxLjYgMS41bDAgNjEuNGMwIC45LS42IDEuNS0xLjYgMS41bC0xNC40IDBjLTEgMC0xLjQtLjQtMi4zLTEuMWwtNTIuNi00Ni4zLTEuNCAwIDAgNDZjMCAuOS0uNSAxLjUtMS41IDEuNWwtMTIuMyAwYy0xIDAtMS42LS42LTEuNi0xLjVsMC02MS40YzAtLjkgLjYtMS41IDEuNi0xLjVsMTQuNCAwek0zMjAgMTE0LjFjODcuOSAwIDE2Ny43IDE1LjcgMjI1LjUgNDFsMi43IDEuMkM1ODcuMSAxNzMuOCA2NDAgMjA2LjUgNjQwIDI1NnMtNTIuOSA4Mi4yLTkxLjggOTkuNmwtMi43IDEuMmMtNTcuOCAyNS40LTEzNy42IDQxLTIyNS41IDQxLTc2LjIgMC0xNTUuMS0xMC41LTIyNS41LTQxLTM5LjYtMTcuNC05NC41LTUwLjMtOTQuNS0xMDAuOHM1NC45LTgzLjUgOTQuNS0xMDAuOGM3MC40LTMwLjUgMTQ5LjMtNDEgMjI1LjUtNDF6bS04OC45IDIyOWMyMC4zIDI5IDUyLjggNDkuNiA4OC45IDQ5LjYgMzYuMiAwIDY4LjctMjAuNiA4OS00OS43bC0xNzcuOSAuMXptLTk2LjEgMGM0My4zIDI5LjcgOTYuNyA0My41IDE0OC40IDQ4LTI0LjItOS4xLTQ0LjQtMjYuNy01OC42LTQ4LjFsLTg5LjkgMHptMjgwLjMtLjFjLTE0LjIgMjEuNC0zNC40IDM5LjEtNTguNiA0OC4xIDUxLjgtNC41IDEwNS4zLTE4LjMgMTQ4LjYtNDguMmwtOTAgMHptLTMzNy40IC4xYzQ0LjEgMjMuMSA5My43IDM1LjQgMTQyLjcgNDIuNi0zMy40LTguNi02Ni41LTIxLjktOTQuNC00Mi42bC00OC4zIDB6bTQzNi4yLS4yYy0yNy45IDIwLjgtNjEuMSAzNC4yLTk0LjYgNDIuOCA0Ny4zLTYuOSA4OS42LTE4LjUgMTIzLjktMzMuNmwxLjctLjhjNi4xLTIuNyAxMS45LTUuNSAxNy40LTguNGwtNDguNSAwek01MjAgMTczLjZjMTAuNyA4LjcgMTkuOCAxOC4xIDI3IDI4LjIgLjQgLjYgLjUgMS4zIC4xIDJzLTEgMS0xLjcgMWwtMS42IDBjLS42IDAtMS4yLS4zLTEuNS0uOC03LjktMTAuOS0xOC4yLTIxLjEtMzAuNi0zMC40bC05My41IDBjNS40IDguOCA5LjkgMTguNSAxMy40IDI4LjYgLjIgLjYgLjEgMS4yLS4yIDEuN3MtLjkgLjgtMS42IC44bC0xLjQgMGMtLjggMC0xLjUtLjUtMS44LTEuMy0zLjgtMTAuNy04LjctMjAuOC0xNC41LTI5LjlsLTE4NC4zIC4xYy01LjggOS4xLTEwLjcgMTkuMS0xNC40IDI5LjgtLjMgLjgtMSAxLjMtMS44IDEuM2wtMS40IDBjLS42IDAtMS4yLS4zLTEuNi0uOHMtLjUtMS4xLS4yLTEuN2MzLjUtMTAuMiA4LTE5LjcgMTMuNC0yOC42bC05My42IDBjLTEyLjMgOS4zLTIyLjYgMTkuNC0zMC40IDMwLjMtLjQgLjUtLjkgLjgtMS41IC44bC0xLjYgMGMtLjcgMC0xLjQtLjQtMS43LTFzLS4zLTEuNCAuMS0yYzcuNi0xMC41IDE2LjctMTkuOSAyNi44LTI4bC01MSAwYy0yOC45IDE2LjYtNjIgNDMuMy02My41IDc5LjdsNDQuNyAwYy41IDAgMSAuMiAxLjMgLjZzLjYgLjggLjYgMS4zbDAgMS4zYzAgMS4xLS45IDEuOS0xLjkgMS45bC00NC43IDBDNi44IDI5NSA0MCAzMjEuNyA2OSAzMzguM2w1MC45IDBjLTEwLjMtOC40LTE5LjEtMTcuNC0yNi4xLTI3bC0uOC0xLjFjLS40LS42LS41LTEuMy0uMS0yczEtMSAxLjctMWwxLjYgMCAuMiAwYy41IC4xIDEgLjMgMS4zIC44IDcuOSAxMC45IDE4LjEgMjEgMzAuNSAzMC4zbDkzLjYgMGMtNS4zLTguOC05LjgtMTguNC0xMy40LTI4LjUtLjItLjYtLjEtMS4yIC4yLTEuN3MuOS0uOCAxLjYtLjhsMS40IDAgLjIgMGMuNyAuMSAxLjQgLjYgMS43IDEuMyAzLjggMTAuNyA4LjYgMjAuNyAxNC40IDI5LjhsMTg0LjUtLjFjNS44LTkuMSAxMC42LTE5LjEgMTQuNC0yOS43bC4xLS4xYy4zLS43IDEtMS4xIDEuNy0xLjFsMS40IDBjLjYgMCAxLjIgLjMgMS42IC44cy41IDEuMiAuMiAxLjdjLTMuNSAxMC4xLTggMTkuNy0xMy4zIDI4LjVsOTMuNyAwYzEyLjMtOS4zIDIyLjUtMTkuNCAzMC4zLTMwLjJsLjEtLjJjLjQtLjQgLjktLjYgMS40LS42bDEuNiAwYy43IDAgMS40IC40IDEuNyAxcy4zIDEuNC0uMSAyYy03LjEgMTAtMTYuMSAxOS4zLTI2LjcgMjcuOWw1MS4xIDBjMjguOC0xNi42IDYxLjgtNDMuMyA2My40LTc5LjZsLTQ0LjcgMGMtMSAwLTEuOS0uOS0xLjktMS45bDAtMS4zYzAtMS4xIC45LTEuOSAxLjktMS45bDQ0LjcgMGMtMS42LTM2LjUtMzQuOS02My4zLTYzLjktNzkuOWwtNTAuOSAwek0yMjAuNSAxMjYuMmMtNDkuMSA3LjEtOTguNyAxOS41LTE0MyA0Mi43bDQ4LjQgMGMyNy45LTIwLjggNjEtMzQuMSA5NC41LTQyLjd6bTYyLjgtNS40Yy01MS44IDQuNS0xMDUuMiAxOC4zLTE0OC42IDQ4LjFsOTAgMGMxNC4yLTIxLjQgMzQuNC0zOSA1OC42LTQ4LjF6bTM2LjYtMS42Yy0zNi4yIDAtNjguNyAyMC42LTg5IDQ5LjdsMTc3LjktLjFjLTIwLjMtMjkuMS01Mi43LTQ5LjYtODguOS00OS42em0zNi42IDEuNmMyNC4yIDkuMSA0NC40IDI2LjYgNTguNSA0OGw4OS44IDBjLTQzLjMtMjkuNy05Ni42LTQzLjUtMTQ4LjMtNDh6bTYyLjggNS40YzMzLjQgOC41IDY2LjQgMjEuOSA5NC4zIDQyLjVsNDguMyAwYy00NC4xLTIzLjEtOTMuNi0zNS40LTE0Mi42LTQyLjV6Il19LEwwdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJudXRyaXRpb25peCIsaWNvbjpbNDQ4LDUxMixbXSwiZjNkNiIsIk0xMTIgOC4xUzI0NS40LS4xIDIzMyAxMTIuNWMwIDAgMTkuMS03NC45IDEwMy00MC42IDAgMC0xNy43IDc0LTg4IDU2IDAgMCAxNC42LTU0LjYgNjYuMS01Ni42IDAgMC0zOS45LTEwLjMtODIuMSA0OC44IDAgMC0xOS44LTk0LjUtOTMuNi05OS43IDAgMCA3NS4yIDE5LjQgNzcuNiAxMDcuNSAwIC4xLTEwNi40IDctMTA0LTExOS44ek00MjQgMzIzLjdjMCA0OC41LTkuNyA5NS4zLTMyIDEzMi4zLTQyLjIgMzAuOS0xMDUgNDgtMTY4IDQ4LTYyLjkgMC0xMjUuOC0xNy4xLTE2OC00OC0yMi4zLTM3LTMyLTgzLjgtMzItMTMyLjMgMC00OC40IDE3LjctOTQuNyA0MC0xMzEuNyA0Mi4yLTMwLjkgOTcuMS00OC42IDE2MC00OC42IDYzIDAgMTE3LjggMTcuNiAxNjAgNDguNiAyMi4zIDM3IDQwIDgzLjMgNDAgMTMxLjd6TTE0NCA0MjhhMjggMjggMCAxIDAgLTU2IDAgMjggMjggMCAxIDAgNTYgMHptMC02Ni4yYTI4IDI4IDAgMSAwIC01NiAwIDI4IDI4IDAgMSAwIDU2IDB6bTAtNjYuMmEyOCAyOCAwIDEgMCAtNTYgMCAyOCAyOCAwIDEgMCA1NiAwek0yMTYgNDI4YTI4IDI4IDAgMSAwIC01NiAwIDI4IDI4IDAgMSAwIDU2IDB6bTAtNjYuMmEyOCAyOCAwIDEgMCAtNTYgMCAyOCAyOCAwIDEgMCA1NiAwem0wLTY2LjJhMjggMjggMCAxIDAgLTU2IDAgMjggMjggMCAxIDAgNTYgMHpNMjg4IDQyOGEyOCAyOCAwIDEgMCAtNTYgMCAyOCAyOCAwIDEgMCA1NiAwem0wLTY2LjJhMjggMjggMCAxIDAgLTU2IDAgMjggMjggMCAxIDAgNTYgMHptMC02Ni4yYTI4IDI4IDAgMSAwIC01NiAwIDI4IDI4IDAgMSAwIDU2IDB6TTM2MCA0MjhhMjggMjggMCAxIDAgLTU2IDAgMjggMjggMCAxIDAgNTYgMHptMC02Ni4yYTI4IDI4IDAgMSAwIC01NiAwIDI4IDI4IDAgMSAwIDU2IDB6bTAtNjYuMmEyOCAyOCAwIDEgMCAtNTYgMCAyOCAyOCAwIDEgMCA1NiAwek0zODQgMjU2Yy00LjgtMjIuMy03LjQtMzYuOS0xNi01Ni0zOC44LTE5LjktOTAuNS0zMi0xNDQtMzJTMTE4LjggMTgwLjEgODAgMjAwYy04LjggMTkuNS0xMS4yIDMzLjktMTYgNTYgNDIuMi03LjkgOTguNy0xNC44IDE2MC0xNC44czExNy44IDYuOSAxNjAgMTQuOHoiXX0sQTB0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImNyZWF0aXZlLWNvbW1vbnMtc2FtcGxpbmctcGx1cyIsaWNvbjpbNTEyLDUxMixbXSwiZjRmMSIsIk0yNTUuNiA4QzM5Ny40IDggNTA0IDExOC4xIDUwNCAyNTYgNTA0IDQwMy4xIDM4NS41IDUwNCAyNTUuNiA1MDQgMTIxLjYgNTA0IDggMzk0LjUgOCAyNTYgOCAxMjMuMSAxMTIuNyA4IDI1NS42IDh6bS44IDQ0LjdjLTExOC4yIDAtMjAzLjcgOTcuOS0yMDMuNyAyMDMuMyAwIDEwOS44IDkxLjIgMjAyLjggMjAzLjcgMjAyLjggMTAzLjIgMCAyMDIuOC04MS4xIDIwMi44LTIwMi44IC4xLTExMy44LTkwLjItMjAzLjMtMjAyLjgtMjAzLjN6bTEwNyAyMDUuNmMtNC43IDAtOSAyLjgtMTAuNyA3LjJsLTQgOS41LTExLTkyLjhjLTEuNy0xMy45LTIyLTEzLjQtMjMuMSAuNGwtNC4zIDUxLjQtNS4yLTY4LjhjLTEuMS0xNC4zLTIyLjEtMTQuMi0yMy4yIDBsLTMuNSA0NC45LTUuOS05NC4zYy0uOS0xNC41LTIyLjMtMTQuNC0yMy4yIDBsLTUuMSA4My43LTQuMy02Ni4zYy0uOS0xNC40LTIyLjItMTQuNC0yMy4yIDBsLTUuMyA4MC4yLTQuMS01N2MtMS4xLTE0LjMtMjItMTQuMy0yMy4yLS4ybC03LjcgODkuOC0xLjgtMTIuMmMtMS43LTExLjQtMTcuMS0xMy42LTIyLTMuM2wtMTMuMiAyNy43LTQzLjkgMCAwIDIzLjIgNTEuMyAwYzQuNCAwIDguNC0yLjUgMTAuNC02LjRsMTAuNyA3My4xYzIgMTMuNSAyMS45IDEzIDIzLjEtLjdsMy44LTQzLjYgNS43IDc4LjNjMS4xIDE0LjQgMjIuMyAxNC4yIDIzLjItLjFsNC42LTcwLjQgNC44IDczLjNjLjkgMTQuNCAyMi4zIDE0LjQgMjMuMi0uMWw0LjktODAuNSA0LjUgNzEuOGMuOSAxNC4zIDIyLjEgMTQuNSAyMy4yIC4ybDQuNi01OC42IDQuOSA2NC40YzEuMSAxNC4zIDIyIDE0LjIgMjMuMSAuMWw2LjgtODMgMi43IDIyLjNjMS40IDExLjggMTcuNyAxNC4xIDIyLjMgMy4xbDE4LTQzLjQgNTAuNSAwIDAtMjMuMi01OC40IC4zem0tNzggNS4ybC0yMS45IDAgMCAyMS45YzAgNC4xLTMuMyA3LjUtNy41IDcuNS00LjEgMC03LjUtMy4zLTcuNS03LjVsMC0yMS45LTIxLjkgMGMtNC4xIDAtNy41LTMuMy03LjUtNy41IDAtNC4xIDMuNC03LjUgNy41LTcuNWwyMS45IDAgMC0yMS45YzAtNC4xIDMuNC03LjUgNy41LTcuNXM3LjUgMy4zIDcuNSA3LjVsMCAyMS45IDIxLjkgMGM0LjEgMCA3LjUgMy4zIDcuNSA3LjUgMCA0LjEtMy40IDcuNS03LjUgNy41eiJdfSxEMHQ9e3ByZWZpeDoiZmFiIixpY29uTmFtZToicmVkaGF0IixpY29uOls1MTIsNTEyLFtdLCJmN2JjIiwiTTM0MS41IDI4NS42YzMzLjcgMCA4Mi4zLTYuOSA4Mi4zLTQ3IC4yLTYuNyAuOS0xLjgtMjAuOS05Ni4yLTQuNi0xOS4xLTguNy0yNy44LTQyLjMtNDQuNi0yNi4xLTEzLjMtODIuOS0zNS40LTk5LjctMzUuNC0xNS43IDAtMjAuMiAyMC4yLTM4LjkgMjAuMi0xOCAwLTMxLjMtMTUuMS00OC4xLTE1LjEtMTYuMSAwLTI2LjcgMTEtMzQuOCAzMy42LTI3LjUgNzcuNi0yNi4zIDc0LjMtMjYuMSA3OC4zIDAgMjQuOCA5Ny42IDEwNi4xIDIyOC41IDEwNi4xek00MjkgMjU0LjhjNC43IDIyIDQuNyAyNC4zIDQuNyAyNy4yIDAgMzcuNy00Mi4zIDU4LjYtOTggNTguNi0xMjUuNyAuMS0yMzUuOS03My42LTIzNS45LTEyMi4zIDAtNi44IDEuNC0xMy41IDQuMS0xOS43LTQ1LjIgMi4zLTEwMy44IDEwLjMtMTAzLjggNjIgMCA4NC43IDIwMC42IDE4OSAzNTkuNSAxODkgMTIxLjggMCAxNTIuNS01NS4xIDE1Mi41LTk4LjYgMC0zNC4yLTI5LjYtNzMtODIuOS05Ni4yeiJdfSx1bmU9e3ByZWZpeDoiZmFiIixpY29uTmFtZToic3F1YXJlLXBpZWQtcGlwZXIiLGljb246WzQ0OCw1MTIsWyJwaWVkLXBpcGVyLXNxdWFyZSJdLCJlMDFlIiwiTTMyLjEgNDE5bC0zMiA2MC4yIC44LTMyOEMuOSA4NS4zIDU0LjEgMzIgMTIwLjEgMzJsMzI3LjIgMEMzNTQuMyA2MC45IDI1Ny40IDEyNi4yIDE5My40IDIwMC42IDEyMi44IDI4MiA4Mi43IDMzOCAzMi4xIDQxOXptNDE2LTM4N1MzMDUuMyA5OC44IDI2MS43IDE5OS4xYy0yMy4yIDUzLjYtMjguOSAxMTguMS03MSAxNTguNi0yOC45IDI3LjgtNjkuOCAzOC4yLTEwNS4zIDU2LjMtMjMuMiAxMi02Ni40IDQwLjUtODQuOSA2NmwzMjguNCAwYzY2IDAgMTE5LjMtNTMuMyAxMTkuMy0xMTkuMi0uMSAwLS4xLTMyOC44LS4xLTMyOC44eiJdfSxFMHQ9dW5lLCQwdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJ3aGF0c2FwcCIsaWNvbjpbNDQ4LDUxMixbXSwiZjIzMiIsIk0zODAuOSA5Ny4xYy00MS45LTQyLTk3LjctNjUuMS0xNTctNjUuMS0xMjIuNCAwLTIyMiA5OS42LTIyMiAyMjIgMCAzOS4xIDEwLjIgNzcuMyAyOS42IDExMUwwIDQ4MCAxMTcuNyA0NDkuMWMzMi40IDE3LjcgNjguOSAyNyAxMDYuMSAyN2wuMSAwYzEyMi4zIDAgMjI0LjEtOTkuNiAyMjQuMS0yMjIgMC01OS4zLTI1LjItMTE1LTY3LjEtMTU3em0tMTU3IDM0MS42Yy0zMy4yIDAtNjUuNy04LjktOTQtMjUuN2wtNi43LTQtNjkuOCAxOC4zIDE4LjYtNjguMS00LjQtN2MtMTguNS0yOS40LTI4LjItNjMuMy0yOC4yLTk4LjIgMC0xMDEuNyA4Mi44LTE4NC41IDE4NC42LTE4NC41IDQ5LjMgMCA5NS42IDE5LjIgMTMwLjQgNTQuMXM1Ni4yIDgxLjIgNTYuMSAxMzAuNWMwIDEwMS44LTg0LjkgMTg0LjYtMTg2LjYgMTg0LjZ6TTMyNS4xIDMwMC41Yy01LjUtMi44LTMyLjgtMTYuMi0zNy45LTE4LTUuMS0xLjktOC44LTIuOC0xMi41IDIuOHMtMTQuMyAxOC0xNy42IDIxLjhjLTMuMiAzLjctNi41IDQuMi0xMiAxLjQtMzIuNi0xNi4zLTU0LTI5LjEtNzUuNS02Ni01LjctOS44IDUuNy05LjEgMTYuMy0zMC4zIDEuOC0zLjcgLjktNi45LS41LTkuN3MtMTIuNS0zMC4xLTE3LjEtNDEuMmMtNC41LTEwLjgtOS4xLTkuMy0xMi41LTkuNS0zLjItLjItNi45LS4yLTEwLjYtLjJzLTkuNyAxLjQtMTQuOCA2LjljLTUuMSA1LjYtMTkuNCAxOS0xOS40IDQ2LjNzMTkuOSA1My43IDIyLjYgNTcuNGMyLjggMy43IDM5LjEgNTkuNyA5NC44IDgzLjggMzUuMiAxNS4yIDQ5IDE2LjUgNjYuNiAxMy45IDEwLjctMS42IDMyLjgtMTMuNCAzNy40LTI2LjRzNC42LTI0LjEgMy4yLTI2LjRjLTEuMy0yLjUtNS0zLjktMTAuNS02LjZ6Il19LEkwdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJpbWRiIixpY29uOls0NDgsNTEyLFtdLCJmMmQ4IiwiTTg5LjUgMzIzLjZsLTM1LjYgMCAwLTEzNy40IDM1LjYgMCAwIDEzNy40em02Ni42LTczLjFsOS4xLTY0LjMgNDYuMyAwIDAgMTM3LjQtMzEgMCAwLTkyLjctMTMuNCA5Mi43LTIxLjMgMC0xMy05MC43LS4xIDkwLjctMzEuMiAwIDAtMTM3LjQgNDYuMSAwYy41IDguMyAyLjggMTguMSA0LjMgMjkuNGw0LjIgMzQuOXptNjcuNiA3My4xbDAtMTM3LjQgMjYuNiAwYzE3IDAgMjcgLjkgMzMgMi40IDYuMSAxLjcgMTAuNyA0LjIgMTMuOSA3LjkgMy4xIDMuMyA1LjEgNi42IDUuOCAxMiAuOSA0LjQgMS40IDEzLjEgMS40IDI2LjJsMCA0OC4yYzAgMTIuMy0uNyAyMC41LTEuOSAyNC43LTEuMSA0LjEtMy4xIDcuNC02IDkuNy0yLjggMi40LTYuNCA0LjEtMTAuNyA1LTQuMiAuOC0xMC42IDEuMy0xOS4xIDEuM2wtNDMgMHptMzUuNS0xMTMuOWwwIDg5LjRjNS4xIDAgOC4zLTEgOS40LTIuMyAxLjEtMiAxLjgtNy42IDEuOC0xNi43bDAtNTMuM2MwLTYuMi0uMS0xMC4yLS43LTEyLS4zLTEuOC0xLjItMy0yLjYtNC43LTEuNCAwLTQuMS0uNC03LjktLjR6bTU3LjMgMTEzLjlsMC0xMzcuNCAzNC4xIDAgMCA0My45YzIuOS0yLjQgNi4xLTQuOSA5LjUtNi42IDMuNi0xLjUgOC44LTIuNCAxMi44LTIuNCA0LjggMCA4LjkgLjggMTIuMyAyLjIgMy40IDEuNSA2IDMuNSA4IDYuMiAxLjcgMi42IDIuNyA1LjMgMy4xIDcuOCAuNCAyLjYtLjIgOC0uMiAxNi4ybDAgMzguNmMwIDguMiAuMiAxNC4zLS44IDE4LjQtMS4xIDQtMy44IDcuNi03LjggOS42LTQuMSAzLjktOC45IDUuMy0xNC42IDUuMy00IDAtOS4yLS45LTEyLjctMi41LTMuNS0xLjgtNi43LTQuNS05LjYtOGwtMi4xIDguNy0zMiAwem00NS4xLTIwLjdjLjctMS44IDEtNiAxLTEyLjVsMC0zNS40YzAtNS42LS4zLTkuNS0xLjEtMTEuMi0uNy0xLjktMy43LTIuNy01LjgtMi43LTIgMC0zLjQgLjgtNC4xIDIuMy0uNiAxLjUtMSA1LjQtMSAxMS42bDAgMzYuNGMwIDYuMSAuNCAxMCAxLjIgMTEuNiAuNiAxLjcgMi4xIDIuNSA0LjEgMi41IDIuMiAwIDQuMi0uOCA1LjctMi42ek00MTguNCAzMmMxNS43IDEuMiAyOC43IDE1LjIgMjguNyAzMS45bDAgMzg0LjJjMCAxNi40LTExLjkgMzAuNC0yOC4yIDMxLS4zIDAtLjUgLjktLjggLjlMMjkuOSA0ODBjLS4zIDAtLjYtLjktLjgtLjEtMTUuNy0xLjQtMjcuOS0xMy44LTI5LTMwLjJMMCA2MS44QzEuMSA0NS45IDEzLjggMzMuMSAzMC4zIDMxLjFsMzg3LjQgMGMuMiAwIC41IC45IC43IC45ek0zMC4zIDQxLjNDMTkgNDIgMTAgNTEgOS4zIDYyLjRsMCAzODcuM2MuNCA1LjQgMi43IDEwLjUgNi40IDE0LjMgMy44IDMuOSA4LjggNi4zIDE0LjIgNi43bDM4OC4yIDBjMTEuNS0xIDIwLjYtMTEuNiAyMC42LTIyLjZsMC0zODQuMmMwLTUuNy0yLjEtMTEuMy02LTE1LjVzLTkuMy02LjgtMTUtNy4ybC0zODcuNCAweiJdfSxQMHQ9e3ByZWZpeDoiZmFiIixpY29uTmFtZToicHl0aG9uIixpY29uOls0NDgsNTEyLFtdLCJmM2UyIiwiTTQzOS44IDIwMC41Yy03LjctMzAuOS0yMi4zLTU0LjItNTMuNC01NC4ybC00MC4xIDAgMCA0Ny40YzAgMzYuOC0zMS4yIDY3LjgtNjYuOCA2Ny44bC0xMDYuOCAwYy0yOS4yIDAtNTMuNCAyNS01My40IDU0LjNsMCAxMDEuOGMwIDI5IDI1LjIgNDYgNTMuNCA1NC4zIDMzLjggOS45IDY2LjMgMTEuNyAxMDYuOCAwIDI2LjktNy44IDUzLjQtMjMuNSA1My40LTU0LjNsMC00MC43LTEwNi43IDAgMC0xMy42IDE2MC4yIDBjMzEuMSAwIDQyLjYtMjEuNyA1My40LTU0LjIgMTEuMi0zMy41IDEwLjctNjUuNyAwLTEwOC42ek0yODYuMiA0NDQuN2EyMC40IDIwLjQgMCAxIDEgMC00MC43IDIwLjQgMjAuNCAwIDEgMSAwIDQwLjd6TTE2Ny44IDI0OC4xbDEwNi44IDBjMjkuNyAwIDUzLjQtMjQuNSA1My40LTU0LjNsMC0xMDEuOWMwLTI5LTI0LjQtNTAuNy01My40LTU1LjYtMzUuOC01LjktNzQuNy01LjYtMTA2LjggLjEtNDUuMiA4LTUzLjQgMjQuNy01My40IDU1LjZsMCA0MC43IDEwNi45IDAgMCAxMy42LTE0NyAwYy0zMS4xIDAtNTguMyAxOC43LTY2LjggNTQuMi05LjggNDAuNy0xMC4yIDY2LjEgMCAxMDguNiA3LjYgMzEuNiAyNS43IDU0LjIgNTYuOCA1NC4ybDM2LjcgMCAwLTQ4LjhjMC0zNS4zIDMwLjUtNjYuNCA2Ni44LTY2LjR6TTE2MS4yIDY0LjdhMjAuNCAyMC40IDAgMSAxIDAgNDAuOCAyMC40IDIwLjQgMCAxIDEgMC00MC44eiJdfSxOMHQ9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiY2FzaC1hcHAiLGljb246WzQ0OCw1MTIsW10sImU3ZDQiLCJNNDQwLjMgOTYuOWMtOS40LTI2LjUtMzAuMy00Ny40LTU2LjgtNTctMjQuMS03LjktNDYuMy03LjktOTEuNi03LjlMMTU2IDMyYy00NC44IDAtNjcuMiAwLTkxLjMgNy41LTI2LjUgOS42LTQ3LjQgMzAuNS01NyA1Ny03LjcgMjQuMy03LjcgNDYuNy03LjcgOTEuN0wwIDMyMy44YzAgNDUuMiAwIDY3LjQgNy41IDkxLjUgOS42IDI2LjUgMzAuNSA0Ny40IDU3IDU3IDI0LjMgNy43IDQ2LjcgNy43IDkxLjYgNy43bDEzNS43IDBjNDUgMCA2Ny40IDAgOTEuNi03LjcgMjYuNS05LjYgNDcuNC0zMC41IDU3LTU3IDcuNy0yNC4zIDcuNy00Ni43IDcuNy05MS41bDAtMTM1LjVjMC00NSAwLTY3LjQtNy43LTkxLjV6TTMyMy4xIDE4NS40bC0yNS44IDIxLjFjLTIuMyAxLjktNS41IDEuNS03LjMtLjktMTMuMi0xNi4yLTMzLjctMjUuNC01Ni4xLTI1LjQtMjUgMC00MC42IDEwLjktNDAuNiAyNi4yLS40IDEyLjggMTEuNyAxOS42IDQ5LjEgMjcuNyA0Ny4yIDEwIDY4LjcgMjkuNyA2OC43IDYyLjcgMCA0MS40LTMzLjcgNzEuOS04Ni40IDc1LjNsLTUuMSAyNC41Yy0uNCAyLjMtMi42IDQuMS01LjEgNC4xbC00MC42IDBjLTMuNCAwLTUuOC0zLjItNS4xLTYuNGw2LjQtMjcuM2MtMjYtNy41LTQ3LjItMjItNTkuMy0zOS43LTEuNS0yLjMtMS4xLTUuMyAxLjEtN2wyOC4yLTIyYzIuMy0xLjkgNS44LTEuMyA3LjUgMS4xIDE0LjkgMjAuOSAzOCAzMy4zIDY1LjcgMzMuMyAyNSAwIDQzLjgtMTIuMiA0My44LTI5LjcgMC0xMy40LTkuNC0xOS42LTQxLjItMjYuMi01NC4yLTExLjctNzUuOC0zMS44LTc1LjgtNjQuOSAwLTM4LjQgMzIuMi02Ny4yIDgwLjktNzFsNS4zLTI1LjRjLjQtMi4zIDIuNi00LjEgNS4xLTQuMWwzOS45IDBjMy4yIDAgNS44IDMgNS4xIDYuMmwtNi4yIDI4LjRjMjAuOSA2LjQgMzggMTcuOSA0OC43IDMyLjIgMS43IDIuMSAxLjMgNS4zLS45IDd6Il19LEYwdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJwaW50ZXJlc3QtcCIsaWNvbjpbMzg0LDUxMixbXSwiZjIzMSIsIk0yMDQgNi41Yy0xMDIuNiAwLTIwNCA2OC40LTIwNCAxNzkuMSAwIDcwLjQgMzkuNiAxMTAuNCA2My42IDExMC40IDkuOSAwIDE1LjYtMjcuNiAxNS42LTM1LjQgMC05LjMtMjMuNy0yOS4xLTIzLjctNjcuOCAwLTgwLjQgNjEuMi0xMzcuNCAxNDAuNC0xMzcuNCA2OC4xIDAgMTE4LjUgMzguNyAxMTguNSAxMDkuOCAwIDUzLjEtMjEuMyAxNTIuNy05MC4zIDE1Mi43LTI0LjkgMC00Ni4yLTE4LTQ2LjItNDMuOCAwLTM3LjggMjYuNC03NC40IDI2LjQtMTEzLjQgMC02Ni4yLTkzLjktNTQuMi05My45IDI1LjggMCAxNi44IDIuMSAzNS40IDkuNiA1MC43LTEzLjggNTkuNC00MiAxNDcuOS00MiAyMDkuMSAwIDE4LjkgMi43IDM3LjUgNC41IDU2LjQgMy40IDMuOCAxLjcgMy40IDYuOSAxLjUgNTAuNC02OSA0OC42LTgyLjUgNzEuNC0xNzIuOCAxMi4zIDIzLjQgNDQuMSAzNiA2OS4zIDM2IDEwNi4yIDAgMTUzLjktMTAzLjUgMTUzLjktMTk2LjggMC05OS4zLTg1LjgtMTY0LjEtMTgwLTE2NC4xeiJdfSxPMHQ9e3ByZWZpeDoiZmFiIixpY29uTmFtZToid2htY3MiLGljb246WzQ0OCw1MTIsW10sImY0MGQiLCJNNDQ4IDE2MWwwLTIxLjMtMjguNS04LjgtMi4yLTEwLjQgMjAuMS0yMC43LTEwLjQtMTkuNC0yOSA3LjUtNy4yLTcuNSA3LjUtMjguMi0xOS4xLTExLjYtMjEuMyAyMS0xMC43LTMuMi03LTI2LjQtMjIuNiAwLTYuMiAyNi40LTEyLjEgMy4yLTE5LjctMjEtMTkuNCAxMSA4LjEgMjcuNy04LjEgOC40LTI4LjUtNy41LTExIDE5LjEgMjAuNyAyMS0yLjkgMTAuNC0yOC41IDcuOC0uMyAyMS43IDI4LjggNy41IDIuNCAxMi4xLTIwLjEgMTkuOSAxMC40IDE4LjUgMjkuNi03LjUgNy4yIDguNi04LjEgMjYuOSAxOS45IDExLjYgMTkuNC0yMC40IDExLjYgMi45IDYuNyAyOC41IDIyLjYgLjMgNi43LTI4LjggMTEuNi0zLjUgMjAuNyAyMS42IDIwLjQtMTIuMS04LjgtMjggNy44LTguMSAyOC44IDguOCAxMC4zLTIwLjEtMjAuOS0xOC44IDIuMi0xMi4xIDI5LjEtN3pNMzI4LjggOTIuNmE1Ni44IDU2LjggMCAxIDEgMCAxMTMuNiA1Ni44IDU2LjggMCAxIDEgMC0xMTMuNnptNzIuMyAxMzBsNDYuOSAxNC41IDAgMzkuOS01NS4xIDEzLjQtNC4xIDIyLjcgMzguOSAzNS4zLTE5LjIgMzcuOS01NC0xNi43LTE0LjYgMTUuMiAxNi43IDUyLjUtMzguMyAyMi43LTM4LjktNDAuNS0yMS43IDYuNi0xMi42IDU0LTQyLjQtLjUtMTIuNi01My42LTIxLjctNS42LTM2LjQgMzguNC0zNy40LTIxLjcgMTUuMi01MC41LTEzLjctMTYuMS01NS41IDE0LjEtMTkuNy0zNC44IDM3LjktMzcuNC00LjgtMjIuOC01NC0xNC4xIC41LTQwLjkgNTMuNS0xNC43IDUuNy0xOS43LTM4LjktMzkuNCAyMC43LTM1LjggNTMuNiAxNC4xIDE1LjItMTUuNy0xNS4yLTUyIDM2LjQtMjAuNyAzNi44IDM5LjQgMjIuNy02LjEgMTEuNi01MiA0Mi40IDAgMTEuNiA0NS45LTIyLjYtNS45LTYuMy0xLjctMy4zIDUuNy0xMSAxOS4xLTMuMyA1LjYgNC42IDQuNiAxNy4yIDE3LjQtLjMgMS0yMy44IDYuNS02LjIgMS43YzAgMy4yLS4xIDkuNi0uMyAxOS4zLTQ3LjUgMTAuNC04My4zIDUyLjgtODMuMyAxMDMuNSAwIDU4LjMgNDcuMyAxMDUuNyAxMDUuNyAxMDUuNyA1MC41IDAgOTIuNy0zNS40IDEwMy4yLTgyLjggOS45IC4xIDE2LjYgLjIgMjAuMSAuM2wxLjYtNi43IDUuNi0yNCAxLjktLjYgMTcuMSAxNy44IDQuNyA0LjkgNS44LTMuNCAyMC40LTEyLjEgNS44LTMuNS0yLTYuNS02LjgtMjEuMnoiXX0sUjB0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImpvZ2V0IixpY29uOls1MTIsNTEyLFtdLCJmM2I3IiwiTTM4Ni4xIDQ1QzM0NS42IDE5LjkgMzAwLjYgOCAyNTYuMiA4IDE3MyA4IDkxLjggNDkuOSA0NC45IDEyNS45LTI3IDI0Mi41IDkuMyAzOTUuMiAxMjUuOSA0NjcuMXMyNjkuMyAzNS42IDM0MS4yLTgwLjlDNTM5IDI2OS42IDUwMi43IDExNi44IDM4Ni4xIDQ1em01MS44IDMyMy4yYy00MC40IDY1LjUtMTEwLjQgMTAxLjUtMTgyIDEwMS41LTYuOCAwLTEzLjYtLjQtMjAuNC0xLTktMTMuNi0xOS45LTMzLjMtMjMuNy00Mi40LTUuNy0xMy43LTI3LjItNDUuNiAzMS4yLTY3LjEgNTEuNy0xOS4xIDE3Ni43LTE2LjUgMjA4LjgtMTcuNi00IDktOC42IDE3LjktMTMuOSAyNi42ek0yMzcuMSAyODEuOWMtNTUuNS0xLjQtODEuNy0yMC44LTU4LjUtNDguMnM1MS4xLTQwLjcgNjguOS01MS4yYzE3LjktMTAuNSAyNy4zLTMzLjctMjMuNi0yOS43LTEyOC42IDguNy0xNjcuMyA5OS4zLTE3OC4zIDE0MC4yLTguOC00OS43LS4xLTEwMi43IDI4LjUtMTQ5LjEgNjEuOS0xMDAuNSAxOTMuNS0xMzEuNyAyOTQtNjkuOCA3NC44IDQ2LjEgMTExLjIgMTMwLjkgOTkuMyAyMTIuNy0yNC45LS41LTE3OS4zLTMuNi0yMzAuMy00Ljl6bTE4My44LTU0LjhjLTIyLjctNi01NyAxMS4zLTg2LjcgMjcuMi0yOS43IDE1LjgtMzEuMSA4LjItMzEuMSA4LjJzNDAuMi0yOC4xIDUwLjctMzQuNSAzMS45LTE0IDEzLjQtMjQuNmMtMy4yLTEuOC02LjctMi43LTEwLjQtMi43LTE3LjggMC00MS41IDE4LjctNjcuNSAzNS42LTMxLjUgMjAuNS02NS4zIDMxLjMtNjUuMyAzMS4zTDM5My41IDI2NiA0NDAgMjQyLjZzMy42LTkuNS0xOS4xLTE1LjV6Il19LHBuZT17cHJlZml4OiJmYWIiLGljb25OYW1lOiJzcXVhcmUteW91dHViZSIsaWNvbjpbNDQ4LDUxMixbNjE3OTgsInlvdXR1YmUtc3F1YXJlIl0sImY0MzEiLCJNMjgyIDI1Ni4ybC05NS4yLTU0LjEgMCAxMDguMiA5NS4yLTU0LjF6TTM4NCAzMkw2NCAzMkMyOC43IDMyIDAgNjAuNyAwIDk2TDAgNDE2YzAgMzUuMyAyOC43IDY0IDY0IDY0bDMyMCAwYzM1LjMgMCA2NC0yOC43IDY0LTY0bDAtMzIwYzAtMzUuMy0yOC43LTY0LTY0LTY0em0xNC40IDEzNi4xYzcuNiAyOC42IDcuNiA4OC4yIDcuNiA4OC4yczAgNTkuNi03LjYgODguMWMtNC4yIDE1LjgtMTYuNSAyNy43LTMyLjIgMzEuOS0yOC4zIDcuNy0xNDIuMiA3LjctMTQyLjIgNy43cy0xMTMuOSAwLTE0Mi4yLTcuNmMtMTUuNy00LjItMjgtMTYuMS0zMi4yLTMxLjktNy42LTI4LjYtNy42LTg4LjItNy42LTg4LjJzMC01OS43IDcuNi04OC4yYzQuMi0xNS44IDE2LjUtMjguMiAzMi4yLTMyLjQgMjguMy03LjcgMTQyLjItNy43IDE0Mi4yLTcuN3MxMTMuOSAwIDE0Mi4yIDcuN2MxNS43IDQuMiAyOCAxNi42IDMyLjIgMzIuNHoiXX0sQjB0PXBuZSxIMHQ9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiYXRsYXNzaWFuIixpY29uOls1MTIsNTEyLFtdLCJmNzdiIiwiTTE1Mi4yIDIzNi40Yy03LjctOC4yLTE5LjctNy43LTI0LjggMi44TDEuNiA0OTAuMmMtNSAxMCAyLjQgMjEuNyAxMy40IDIxLjdsMTc1IDBjNS44IC4xIDExLTMuMiAxMy40LTguNCAzNy45LTc3LjggMTUuMS0xOTYuMy01MS4yLTI2Ny4xek0yNDQuNCA4LjFjLTEyMi4zIDE5My40LTguNSAzNDguNiA2NSA0OTUuNSAyLjUgNS4xIDcuNyA4LjQgMTMuNCA4LjRMNDk3IDUxMmMxMS4yIDAgMTguNC0xMS44IDEzLjQtMjEuNyAwIDAtMjM0LjUtNDcwLjYtMjQwLjQtNDgyLjMtNS4zLTEwLjYtMTguOC0xMC44LTI1LjYgLjF6Il19LHEwdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJwaWVkLXBpcGVyLWhhdCIsaWNvbjpbNjQwLDUxMixbXSwiZjRlNSIsIk02NDAgMjQuOWMtODAuOCA1My42LTg5LjQgOTIuNS05Ni40IDEwNC40LTYuNyAxMi4yLTExLjcgNjAuMy0yMy4zIDgzLjYtMTEuNyAyMy42LTU0LjIgNDIuMi02Ni4xIDUwLTExLjcgNy44LTI4LjMgMzguMS00MS45IDY0LjItMTA4LjEtNC40LTE2Ny40IDM4LjgtMjU5LjIgOTMuNiAyOS40LTkuNyA0My4zLTE2LjcgNDMuMy0xNi43IDk0LjItMzYgMTM5LjMtNjguMyAyODEuMS00OS4yIDEuMSAwIDEuOSAuNiAyLjggLjggMy45IDIuMiA1LjMgNi45IDMuMSAxMC44bC01My45IDk1LjhjLTIuNSA0LjctNy44IDcuMi0xMy4xIDYuMS0xMjYuOC0yMy44LTIyNi45IDE3LjMtMzE4LjkgMTguNi03My40IDEuMS05Ny41LTMzLjUtOTcuNS0zNS4xIDAtMS4xIC42LTEuNyAxLjctMS43IDAgMCAzOC4zIDAgMTAzLjEtMTUuMyA3My42LTE0MC4zIDEzOS4yLTE4OS40IDIxMC42LTE4OS40IDAgMCA3MS43IDAgOTAuNiA2MS45IDIyLjgtMzkuNyAyOC4zLTQ5LjIgMjguMy00OS4yIDUuMy05LjQgMzUtNzcuMiA4Ni40LTE0MS40IDUxLjUtNjQgOTAuNC03OS45IDExOS4zLTkxLjh6Il19LGowdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJpbnRlcm5ldC1leHBsb3JlciIsaWNvbjpbNTEyLDUxMixbXSwiZjI2YiIsIk00ODMuMSAxNTkuN2MxMC45LTI0LjYgMjEuNC02MC40IDIxLjQtODcuOSAwLTcyLjctNzkuNi05OC40LTIwOS43LTM4LjYtMTA3LjYtNy4yLTIxMS4yIDczLjctMjM3LjEgMTg2LjUgMzAuOS0zNC45IDc4LjMtODIuMyAxMjItMTAxLjItNTQuMyA0OC4zLTEwMC42IDEwOS40LTEzNS43IDE3My4yLTIwLjcgMzcuOS00NCA5OS4yLTQ0IDE0NSAwIDk4LjYgOTIuOSA4Ni41IDE4MC4zIDQyIDMxLjQgMTUuNCA2Ni42IDE1LjYgMTAxLjcgMTUuNiA5Ny4xIDAgMTg0LjItNTQuMyAyMTYuOC0xNDZsLTEyMC44IDBjLTUyLjUgODguNi0xOTYuOCA1My0xOTYuOC00Ny40bDMyOC44IDBjNi40LTQzLjYtMS43LTk1LjctMjYuOS0xNDEuMnpNNjQuNiAzNDYuOUM4Mi4zIDM5OCAxMTguMyA0NDIuNyAxNjQuOCA0NzAuMiA3Ni4xIDUxOS4xLTguNCA0OTkuMyA2NC42IDM0Ni45ek0xODAuNSAyMzhjMi01NS4yIDUwLjMtOTQuOSAxMDQtOTQuOSA1My40IDAgMTAyIDM5LjcgMTA0IDk0LjlsLTIwOCAwek0zNjUuMSA1MC40YzIxLjQtMTAuMyA0OC42LTIyIDcyLjYtMjIgMzEuNCAwIDU0LjMgMjEuNyA1NC4zIDUzLjcgMCAyMC03LjQgNDktMTQuNiA2Ny45LTI2LjMtNDIuMy02Ni04MS42LTExMi4zLTk5LjZ6Il19LFYwdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJhaXJibmIiLGljb246WzQ0OCw1MTIsW10sImY4MzQiLCJNMjI0LjUgMzczLjFjLTI1LjItMzEuNy00MC4xLTU5LjQtNDUtODMuMi0yMi41LTg4IDExMi42LTg4IDkwLjEgMC01LjQgMjQuMi0yMC4zIDUyLTQ1IDgzLjJsLS4xIDB6bTEzOC4yIDczLjJjLTQyLjEgMTguMy04My43LTEwLjktMTE5LjMtNTAuNSAxMDMuOS0xMzAuMSA0Ni4xLTIwMC0xOC44LTIwMC01NC45IDAtODUuMiA0Ni41LTczLjMgMTAwLjUgNi45IDI5LjIgMjUuMiA2Mi40IDU0LjQgOTkuNS0zMi41IDM2LTYwLjUgNTIuNy04NS4yIDU0LjktNTAgNy40LTg5LjEtNDEuMS03MS4zLTkxLjEgMTUuMS0zOS4yIDExMS43LTIzMS4yIDExNS45LTI0MS42IDE1LjgtMzAuMSAyNS42LTU3LjQgNTkuNC01Ny40IDMyLjMgMCA0My40IDI1LjkgNjAuNCA1OS45IDM2IDcwLjYgODkuNCAxNzcuNSAxMTQuOCAyMzkuMSAxMy4yIDMzLjEtMS40IDcxLjMtMzcgODYuNnptNDctMTM2LjFjLTEyOC45LTI3NC4zLTEzNi0yNzguMi0xODUuMS0yNzguMi00NS41IDAtNjQuOSAzMS43LTg0LjcgNzIuOC0xMDYuMiAyMTIuMy0xMTYuNCAyNDIuNC0xMTcuMyAyNDUtMjUuMiA2OS4zIDI2LjcgMTMwLjIgODkuNiAxMzAuMiAyMS43IDAgNjAuNi02LjEgMTEyLjQtNjIuNCA1OC43IDYzLjggMTAxLjMgNjIuNCAxMTIuNCA2Mi40IDYyLjkgLjEgMTE0LjktNjAuOSA4OS42LTEzMC4yIDAtMy45LTE2LjgtMzguOS0xNi44LTM5LjZsMCAweiJdfSxVMHQ9e3ByZWZpeDoiZmFiIixpY29uTmFtZToianMiLGljb246WzQ0OCw1MTIsW10sImYzYjgiLCJNMCAzMmwwIDQ0OCA0NDggMCAwLTQ0OC00NDggMHpNMjQzLjggMzgxLjRjMCA0My42LTI1LjYgNjMuNS02Mi45IDYzLjUtMzMuNyAwLTUzLjItMTcuNC02My4yLTM4LjVMMTUyIDM4NS43YzYuNiAxMS43IDEyLjYgMjEuNiAyNy4xIDIxLjYgMTMuOCAwIDIyLjYtNS40IDIyLjYtMjYuNWwwLTE0My4xIDQyLjEgMCAwIDE0My43em05OS42IDYzLjVjLTM5LjEgMC02NC40LTE4LjYtNzYuNy00M0wzMDEgMzgyLjFjOSAxNC43IDIwLjggMjUuNiA0MS41IDI1LjYgMTcuNCAwIDI4LjYtOC43IDI4LjYtMjAuOCAwLTE0LjQtMTEuNC0xOS41LTMwLjctMjhsLTEwLjUtNC41Yy0zMC40LTEyLjktNTAuNS0yOS4yLTUwLjUtNjMuNSAwLTMxLjYgMjQuMS01NS42IDYxLjYtNTUuNiAyNi44IDAgNDYgOS4zIDU5LjggMzMuN0wzNjggMjkwYy03LjItMTIuOS0xNS0xOC0yNy4xLTE4LTEyLjMgMC0yMC4xIDcuOC0yMC4xIDE4IDAgMTIuNiA3LjggMTcuNyAyNS45IDI1LjZsMTAuNSA0LjVjMzUuOCAxNS4zIDU1LjkgMzEgNTUuOSA2Ni4yIDAgMzcuOC0yOS44IDU4LjYtNjkuNyA1OC42eiJdfSxXMHQ9e3ByZWZpeDoiZmFiIixpY29uTmFtZToicXVpbnNjYXBlIixpY29uOls1MTIsNTEyLFtdLCJmNDU5IiwiTTMxMy43IDQ3NC42bC0xIDBjLTQxLjkgMC04Mi4xLTE2LjctMTExLjgtNDYuM3MtNDYuMy02OS45LTQ2LjMtMTExLjggMTYuNy04Mi4xIDQ2LjMtMTExLjggNjkuOS00Ni4zIDExMS44LTQ2LjNjOTQuOSAwIDE2OC4yIDgzLjEgMTU3IDE3Ni42IDQgNS4xIDguMiA5LjYgMTEuMiAxNS4zIDEzLjQtMzAuMyAyMC4zLTYyLjQgMjAuMy05Ny43IDAtMTM1LjEtMTA5LjUtMjQ0LjYtMjQ0LjYtMjQ0LjZTMTIuMSAxMTcuNSAxMi4xIDI1Mi42IDEyMS42IDQ5Ny4yIDI1Ni42IDQ5Ny4yYzIzLjggLjIgNDcuNi0zLjIgNzAuNC0xMC4xLTUuMi0zLjUtOC45LTguMS0xMy4zLTEyLjV6bTc4LjMtMTY5YTk5LjIgOTkuMiAwIDEgMCAwIDE5OC40IDk5LjIgOTkuMiAwIDEgMCAwLTE5OC40eiJdfSxHMHQ9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiYWR2ZXJzYWwiLGljb246WzUxMiw1MTIsW10sImYzNmEiLCJNNDgyLjEgMzJMMjguNyAzMkM1LjggMzIgMCAzNy45IDAgNjAuOUwwIDQ1MS4xQzAgNDc0LjQgNS44IDQ4MCAyOC43IDQ4MGw0NTMuNCAwYzI0LjQgMCAyOS45LTUuMiAyOS45LTI5LjdsMC0zODguMWMwLTI0LjYtNS40LTMwLjItMjkuOS0zMC4yek0xNzguNCAyMjAuM2MtMjcuNS0yMC4yLTcyLjEtOC43LTg0LjIgMjMuNC00LjMgMTEuMS05LjMgOS41LTE3LjUgOC4zLTkuNy0xLjUtMTcuMi0zLjItMjIuNS01LjUtMjguOC0xMS40IDguNi01NS4zIDI0LjktNjQuMyA0MS4xLTIxLjQgODMuNC0yMi4yIDEyNS4zLTQuOCA0MC45IDE2LjggMzQuNSA1OS4yIDM0LjUgMTI4LjUgMi43IDI1LjgtNC4zIDU4LjMgOS4zIDg4LjggMS45IDQuNCAuNCA3LjktMi43IDEwLjctOC40IDYuNy0zOS4zIDIuMi00Ni42LTcuNC0xLjktMi4yLTEuOC0zLjYtMy45LTYuMi0zLjYtMy45LTcuMy0yLjItMTEuOSAxLTU3LjQgMzYuNC0xNDAuMyAyMS40LTE0Ny00My4zLTMuMS0yOS4zIDEyLjQtNTcuMSAzOS42LTcxIDM4LjItMTkuNSAxMTIuMi0xMS44IDExNC0zMC45IDEuMS0xMC4yLTEuOS0yMC4xLTExLjMtMjcuM3ptMjg2LjcgMjIyYzAgMTUuMS0xMS4xIDkuOS0xNy44IDkuOWwtMzk0LjkgMGMtNy40IDAtMTguMiA0LjgtMTcuOC0xMC43IC40LTEzLjkgMTAuNS05LjEgMTcuMS05LjEgMTMyLjMtLjQgMjY0LjUtLjQgMzk2LjggMCA2LjggMCAxNi42LTQuNCAxNi42IDkuOXptMy44LTM0MC41bDAgMjkxYzAgNS43LS43IDEzLjktOC4xIDEzLjktMTIuNC0uNC0yNy41IDcuMS0zNi4xLTUuNi01LjgtOC43LTcuOC00LTEyLjQtMS4yLTUzLjQgMjkuNy0xMjguMSA3LjEtMTQ0LjQtODUuMi02LjEtMzMuNC0uNy02Ny4xIDE1LjctMTAwIDExLjgtMjMuOSA1Ni45LTc2LjEgMTM2LjEtMzAuNWwwLTcxYzAtMjYuMi0uMS0yNi4yIDI2LTI2LjIgMy4xIDAgNi42IC40IDkuNyAwIDEwLjEtLjggMTMuNiA0LjQgMTMuNiAxNC4zLS4xIC4yLS4xIC4zLS4xIC41ek00MTcuNCAzMzQuMWMtMTkuNSA0Ny42LTcyLjkgNDMuMy05MCA1LjItMTUuMS0zMy4zLTE1LjUtNjguMiAuNC0xMDEuNSAxNi4zLTM0LjEgNTkuNy0zNS43IDgxLjUtNC44IDIwLjYgMjguOCAxNC45IDg0LjYgOC4xIDEwMS4xek0xMjIuNiAzNjkuNGMtNy41LTEuMy0zMy0zLjMtMzMuNy0yNy44LS40LTEzLjkgNy44LTIzIDE5LjgtMjUuOCAyNC40LTUuOSA0OS4zLTkuOSA3My43LTE0LjcgOC45LTIgNy40IDQuNCA3LjggOS41IDEuNCAzMy0yNi4xIDU5LjItNjcuNiA1OC44eiJdfSxZMHQ9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiY3JlYXRpdmUtY29tbW9ucyIsaWNvbjpbNTEyLDUxMixbXSwiZjI1ZSIsIk0yNTMuOCAyMTQuOWwtMzMuMiAxNy4zYy05LjQtMTkuNi0yNS4yLTE5LjktMjcuNS0xOS45LTIyLjEgMC0zMy4yIDE0LjYtMzMuMiA0My44IDAgMjMuNiA5LjIgNDMuOCAzMy4yIDQzLjggMTQuNSAwIDI0LjYtNy4xIDMwLjYtMjEuM2wzMC42IDE1LjVjLTYuMiAxMS41LTI1LjcgMzktNjUuMSAzOS0yMi42IDAtNzQtMTAuMy03NC03NyAwLTU4LjcgNDMtNzcuMSA3Mi42LTc3LjEgMzAuNyAwIDUyLjcgMTEuOSA2NiAzNS45em0xNDMgMGwtMzIuOCAxNy4zYy05LjUtMTkuOC0yNS43LTE5LjktMjcuOS0xOS45LTIyLjEgMC0zMy4yIDE0LjYtMzMuMiA0My44IDAgMjMuNSA5LjIgNDMuOCAzMy4yIDQzLjggMTQuNCAwIDI0LjYtNy4xIDMwLjUtMjEuM2wzMSAxNS41Yy0yLjEgMy44LTIxLjQgMzktNjUuMSAzOS0yMi43IDAtNzQtOS45LTc0LTc3IDAtNTguNyA0My03Ny4xIDcyLjYtNzcuMSAzMC43IDAgNTIuNiAxMS45IDY1LjYgMzUuOXpNMjU1LjYgOEMxMTIuNyA4IDggMTIzLjEgOCAyNTYuMSA4IDM5NC41IDEyMS42IDUwNC4xIDI1NS42IDUwNC4xIDM4NS41IDUwNC4xIDUwNCA0MDMuMiA1MDQgMjU2LjEgNTA0IDExOC4yIDM5Ny40IDggMjU1LjYgOHptLjkgNDUwLjhjLTExMi41IDAtMjAzLjctOTMtMjAzLjctMjAyLjggMC0xMDUuNCA4NS40LTIwMy4zIDIwMy43LTIwMy4zIDExMi41IDAgMjAyLjggODkuNSAyMDIuOCAyMDMuMyAwIDEyMS43LTk5LjcgMjAyLjgtMjAyLjggMjAyLjh6Il19LFowdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJub3Rpb24iLGljb246WzUxMiw1MTIsW10sImU3ZDkiLCJNOTQuOSAxMDAuMmMxNC45IDEyLjEgMjAuNSAxMS4yIDQ4LjYgOS4zTDQwNy44IDkzLjZjNS42IDAgLjktNS42LS45LTYuNUwzNjIuOSA1NS40Yy04LjQtNi41LTE5LjYtMTQtNDEuMS0xMi4xTDY1LjkgNjEuOWMtOS4zIC45LTExLjIgNS42LTcuNSA5LjNsMzYuNCAyOC45em0xNS45IDYxLjZsMCAyNzguMWMwIDE0LjkgNy41IDIwLjUgMjQuMyAxOS42bDI5MC41LTE2LjhjMTYuOC0uOSAxOC43LTExLjIgMTguNy0yMy4zbDAtMjc2LjJjMC0xMi4xLTQuNy0xOC43LTE1LTE3LjdMMTI1LjcgMTQzLjFjLTExLjIgLjktMTQuOSA2LjUtMTQuOSAxOC43em0yODYuNyAxNC45YzEuOSA4LjQgMCAxNi44LTguNCAxNy44bC0xNCAyLjggMCAyMDUuM2MtMTIuMiA2LjUtMjMuNCAxMC4zLTMyLjcgMTAuMy0xNSAwLTE4LjctNC43LTI5LjktMTguN2wtOTEuNS0xNDMuNyAwIDEzOSAyOSA2LjVzMCAxNi44LTIzLjQgMTYuOGwtNjQuNCAzLjdjLTEuOS0zLjcgMC0xMy4xIDYuNS0xNC45bDE2LjgtNC43IDAtMTgzLjgtMjMuMy0xLjljLTEuOS04LjQgMi44LTIwLjUgMTUuOS0yMS41bDY5LjEtNC43IDk1LjMgMTQ1LjYgMC0xMjguOC0yNC4zLTIuOGMtMS45LTEwLjMgNS42LTE3LjcgMTQuOS0xOC43bDY0LjUtMy44ek00NC40IDM2LjdMMzEwLjYgMTcuMWMzMi43LTIuOCA0MS4xLS45IDYxLjYgMTRsODUgNTkuN2MxNCAxMC4zIDE4LjcgMTMuMSAxOC43IDI0LjNsMCAzMjcuNmMwIDIwLjUtNy41IDMyLjctMzMuNiAzNC41TDEzMy4yIDQ5NS44Yy0xOS42IC45LTI5LTEuOS0zOS4yLTE0LjlMMzEuNCAzOTkuN2MtMTEuMi0xNC45LTE1LjktMjYuMS0xNS45LTM5LjJsMC0yOTEuMmMwLTE2LjggNy41LTMwLjggMjguOS0zMi43eiJdfSxYMHQ9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiY2hyb21lY2FzdCIsaWNvbjpbNTEyLDUxMixbXSwiZjgzOCIsIk00NDggNjRMNjQuMiA2NGMtMjMuNiAwLTQyLjcgMTkuMS00Mi43IDQyLjdsMCA2My45IDQyLjcgMCAwLTYzLjkgMzgzLjggMCAwIDI5OC42LTE0OS4yIDAgMCA0Mi43IDE0OS40IDBjMjMuNiAwIDQyLjctMTkuMSA0Mi43LTQyLjdsMC0yOTguNkM0OTAuOSA4My4xIDQ3MS42IDY0IDQ0OCA2NHpNMjEuNSAzODMuNmwwIDYzLjkgNjMuOSAwYzAtMzUuMy0yOC42LTYzLjktNjMuOS02My45em0wLTg1bDAgNDIuNGM1OC45IDAgMTA2LjYgNDguMSAxMDYuNiAxMDdsNDIuNyAwYy4xLTgyLjQtNjYuOS0xNDkuMy0xNDkuMy0xNDkuNHpNMjEzLjYgNDQ4bDQyLjcgMEMyNTUuOCAzMTguNSAxNTEgMjEzLjcgMjEuNSAyMTMuNGwwIDQyLjRjMTA2LS4yIDE5MiA4Ni4yIDE5Mi4xIDE5Mi4yeiJdfSxRMHQ9e3ByZWZpeDoiZmFiIixpY29uTmFtZToidWx0cmFseXRpY3MtaHViIixpY29uOls1MTIsNTEyLFtdLCJlODZlIiwiTTEzMC40IDE2YzYwLjkgMCAxMTAuNCA0OS41IDExMC40IDExMC40bDAgMjQuOWM0LjgtLjcgOS43LTEgMTQuNi0xIDg4LjEtLjIgMTY1LjEgNDkgMjA1LjQgMTIxLjItMjIuOC0xNi4yLTUwLjctMjUuNC04MC40LTI1LjMtNzcuMSAuMi0xMzkuNSA2Mi42LTEzOS42IDEzOS40LS4xIDYwLjktNDkuNSAxMTAuMy0xMTAuNyAxMTAuNS02MC42IC4yLTExMC4yLTQ5LjUtMTEwLjItMTEwLjUgLjItMi42IDAgMCAuMS0zLjJsMC0yNTZDMjAuMSA2NS41IDY5LjUgMTYgMTMwLjQgMTZ6TTM4MC4zIDQ5NmExMTAuNCAxMTAuNCAwIDEgMSAwLTIyMC45IDExMC40IDExMC40IDAgMSAxIDAgMjIwLjl6Il19LEowdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJ3aWtpcGVkaWEtdyIsaWNvbjpbNjQwLDUxMixbXSwiZjI2NiIsIk02NDAgNTEuMmwtLjMgMTIuMmMtMjguMSAuOC00NSAxNS44LTU1LjggNDAuMy0yNSA1Ny44LTEwMy4zIDI0MC0xNTUuMyAzNTguNmwtMTMuNiAwLTgxLjktMTkzLjFjLTMyLjUgNjMuNi02OC4zIDEzMC05OS4yIDE5My4xLS4zIC4zLTE1IDAtMTUtLjMtNDYuOS0xMDkuNy05Ni4xLTIxOC42LTE0My4xLTMyOC42LTExLjQtMjYuNy00OS40LTcwLTc1LjYtNjkuNyAwLTMuMS0uMy0xMC0uMy0xNC4ybDE2MS45IDAgMCAxMy45Yy0xOS4yIDEuMS01Mi44IDEzLjMtNDMuMyAzNC4yIDIxLjkgNDkuNyAxMDMuNiAyNDAuMyAxMjUuNiAyODguNiAxNS0yOS43IDU3LjgtMTA5LjIgNzUuMy0xNDIuOC0xMy45LTI4LjMtNTguNi0xMzMuOS03Mi44LTE2MC05LjctMTcuOC0zNi4xLTE5LjQtNTUuOC0xOS43bDAtMTMuOSAxNDIuNSAuMyAwIDEzLjFjLTE5LjQgLjYtMzguMSA3LjgtMjkuNCAyNi4xIDE4LjkgNDAgMzAuNiA2OC4xIDQ4LjEgMTA0LjcgNS42LTEwLjggMzQuNy02OS40IDQ4LjEtMTAwLjggOC45LTIwLjYtMy45LTI4LjYtMzguNi0yOS40IC4zLTMuNiAwLTEwLjMgLjMtMTMuNiA0NC40LS4zIDExMS4xLS4zIDEyMy4xLS42bDAgMTMuNkM0NjIuNCA2NCA0MzkuMSA3NiA0MjYuOCA5NC45TDM2Ny42IDIxNy43YzYuNCAxNi4xIDYzLjMgMTQyLjggNjkuMiAxNTYuN0w1NTkuMiA5MS44Yy04LjYtMjMuMS0zNi40LTI4LjEtNDcuMi0yOC4zbDAtMTMuOSAxMjcuOCAxLjEgLjIgLjV6Il19LEswdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJzaXRyb3giLGljb246WzQ0OCw1MTIsW10sImU0NGEiLCJNMjEyLjQgMGwwIDAgMjM1LjYgMCAwIDEyOC0zODQgMEM2NCA1Ny42IDE0MS44IC41IDIxMi40IDB6bTI0LjggMTkybDAgMGM2OS45IC41IDE0Ni43IDU3LjYgMTQ2LjcgMTI4bC0xNzMuMiAwIDAgMEMxNDAuOSAzMTkuNiA2NCAyNjIuNCA2NCAxOTJsMTczLjMgMHptLTEuNyAzMjBjNzAuNy0uNSAxNDguNC01Ny42IDE0OC40LTEyOGwtMzg0IDAgMCAxMjggMjM1LjYgMCAwIDB6Il19LGhuZT17cHJlZml4OiJmYWIiLGljb25OYW1lOiJzcXVhcmUtZ2l0bGFiIixpY29uOls0NDgsNTEyLFsiZ2l0bGFiLXNxdWFyZSJdLCJlNWFlIiwiTTAgOTZMMCA0MTZjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMzIwIDBjMzUuMyAwIDY0LTI4LjcgNjQtNjRsMC0zMjBjMC0zNS4zLTI4LjctNjQtNjQtNjRMNjQgMzJDMjguNyAzMiAwIDYwLjcgMCA5NnptMzM3LjUgMTIuNWw0NC42IDExNi40IC40IDEuMmM1LjYgMTYuOCA3LjIgMzUuMiAyLjMgNTIuNS01IDE3LjItMTUuNCAzMi40LTI5LjggNDMuM2wtLjIgLjEtNjguNCA1MS4yLTU0LjEgNDAuOWMtLjUgLjItMS4xIC41LTEuNyAuOC0yIDEtNC40IDItNi43IDItMyAwLTYuOC0xLjgtOC4zLTIuOGwtNTQuMi00MC45LTY3LjktNTAuOS0uNC0uMy0uMi0uMWMtMTQuMy0xMC44LTI0LjgtMjYtMjkuNy00My4zcy00LjItMzUuNyAyLjItNTIuNWwuNS0xLjIgNDQuNy0xMTYuNGMuOS0yLjMgMi41LTQuMyA0LjUtNS42IDEuNi0xIDMuNC0xLjYgNS4yLTEuOCAxLjMtLjcgMi4xLS40IDMuNCAuMSAuNiAuMiAxLjIgLjUgMiAuNyAxIC40IDEuNiAuOSAyLjQgMS41IC42IC40IDEuMiAxIDIuMSAxLjUgMS4yIDEuNCAyLjIgMyAyLjcgNC44bDI5LjIgOTIuMiAxMjIuOSAwIDMwLjItOTIuMmMuNS0xLjggMS40LTMuNCAyLjYtNC44czIuOC0yLjQgNC41LTMuMWMxLjctLjYgMy42LS45IDUuNC0uN3MzLjYgLjggNS4yIDEuOGMyIDEuMyAzLjcgMy4zIDQuNiA1LjZ6Il19LGU0dD1obmUsdDR0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6InNob2VsYWNlIixpY29uOls1MTIsNTEyLFtdLCJlNjBjIiwiTTQwNS4yIDMzMWMyLjItMS4xIDQuNC0yLjMgNi41LTMuN2w4LjMtNC44YzEuNS0xLjEgNC40LTMuNCA4LjctNi43bC41LS41YzMuNC0zLjQgNy4yLTUgMTEuMy00LjkgMS44IDAgMy45IC41IDYuNCAxLjVsMzEtMjcuNWMuOS0uNyAxLjctMS4zIDIuNi0xLjhsLjIgMGMzLjMtMS45IDYtMS44IDguMiAuNCAzLjkgMi4xIDQuMiA1LjYgLjkgMTAuNkw0NTcuMiAzMjJjLjIgLjUgLjQgMSAuNCAxLjUgLjUgMi4yIC4zIDQuNC0uNSA2LjYtLjcgMS41LTEuOCAyLjktMy4xIDQuMi0xLjQgMS40LTIuNyAyLjgtNC4yIDQuMkw0MzEgMzUyLjJjLTEuNyAxLjItMy40IDIuMy01LjEgMy4zLTIuMSAxLjMtNC4zIDIuNS02LjYgMy42LTEgLjQtMS45IC45LTIuOSAxLjMtNS45IDIuNS0xMS45IDQuMi0xOC4yIDUtMi45IDI0LjUtMTEuMyA0Ny4xLTI1LjEgNjcuOC0xNy41IDI1LjctNDEuNCA0NS40LTcxLjggNTguOC0zMC4yIDEzLjUtNjMgMjAuMi05OC4yIDIwLjItNDguNi0uNS04OC0xMS40LTExOC4yLTMyLjgtMzUuMS0yNS01Mi42LTU3LjktNTIuNi05OS4xbDAtNS42YzEuMi0yOC4xIDkuNS01NC42IDI0LjgtNzkuOCAxNS4xLTI0LjkgMzcuMS00MS43IDY2LjEtNTAuNSAxNC45LTQuNCAyOS45LTYuNiA0NS02LjYgMTUuNSAwIDMxLjYgMi45IDQ4LjEgOC42czM1LjIgMTUuNSA1NS45IDI5LjVsNTQuMSAzNi4zYzE1LjEgOS44IDI4LjggMTYuNSA0MS4yIDIwLTIuNi0yNS4xLTExLjctNDYuNi0yNy4zLTY0LjUtMTUuNy0xOC4xLTM1LjYtMzEuMy01OS45LTM5LjdMMjU3IDIyMGMtMjEuNC03LjUtMzcuMy0xNC45LTQ3LjctMjIuMi0yOC4yLTE5LjEtNDMuOC00NS4yLTQ3LTc4LjVsLS41LTkuOGMwLTMyLjEgMTMtNTguOSAzOS04MC41IDIzLTE5LjMgNTAuNi0yOSA4Mi41LTI5IDI0IDAgNDUuNiA2LjkgNjQuNyAyMC44IDE5LjIgMTQgMzAuMSAzMy44IDMyLjYgNTkuNGwuNSAxMGMwIDE4LjYtNC44IDM0LjUtMTQuNCA0Ny43LTkuOCAxMy4yLTE4LjUgMTkuOS0yNiAxOS45LTEuNi0uMS0zLjEtLjMtNC41LS42bC0zNCAzMmMtNS41IDMtOS4yIDIuNS0xMS4xLTEuNi0xLjktMi4yLTEuOC00LjkgLjUtOC4ybC4yLS4yYy41LS43IDEuMi0xLjUgMi0yLjRsMzEuNi0zMGMtLjQtMS41LS42LTMuMS0uNi00LjggMC00LjEgMS42LTcuNiA0LjktMTAuNCAxMy44LTEyLjQgMjAuOC0yNi43IDIwLjgtNDIuOCAwLTE2LTYuMS0yOS41LTE4LjItNDAuNHMtMjguNy0xNi41LTQ5LjctMTYuOGMtMjYuMiAwLTQ3LjggNy45LTY0LjcgMjMuN1MxOTIuNiA4OS45IDE5Mi42IDExMmMwIDE3LjggNi45IDMzLjkgMjAuNiA0OC4zIDEzLjYgMTQuMiAzNC42IDI1LjQgNjMgMzMuNSAzOS44IDExLjUgNzAuMiAzMSA5MS4zIDU4LjMgMTguNyAyNC4yIDI5LjEgNTEuMyAzMS4zIDgxLjQgMi4yLS43IDQuMy0xLjUgNi41LTIuNmwtLjEgLjF6TTI5NC40IDE3OC43YzAgMS4xIC42IDEuNiAxLjggMS42IC4xIDAgOS43LTguOSAyOC44LTI2LjYgMC0yLjQtNS4xIC45LTE1LjMgMTAtMTAuMiA5LjItMTUuMyAxNC4yLTE1LjMgMTQuOWwwIC4xem04IDYuNGMwLTEtLjUtMS41LTEuNS0xLjUtMS4xIDAtMi4xIC41LTIuOSAxLjYtMS45LS4xLTMuMyAuMS00LjIgLjctLjQgLjItLjUgLjUtLjUgLjcgMCAuNyAuNSAxLjMgMS41IDEuNmwzLjMgMGMyLjktMS4xIDQuNC0yLjIgNC40LTMuM2wtLjEgLjJ6TTMyNSAxNjUuMmMwLTIuOC0xLjYtMi44LTQuOSAwLTEuNiAxLjUtMy42IDMuNS02IDYuMi0uOCAuNi0yLjYgMi4yLTUuMyA0LjktMi44IDIuOS00LjIgNC43LTQuMiA1LjNsLjIgMS4zYy43IC4yIDEuMiAuNCAxLjUgLjQgLjEgMCAzLjMtMi45IDkuNS04LjdzOS4zLTguOSA5LjMtOS4zbC0uMS0uMXptMTU5LjcgMTIwbC0zMC42IDI3YzEuOCAxIDMuMiAyLjQgNCA0LjJsMzAuMi0yN2MuMi0xLjIgLjEtMi4yLS41LTIuOS0uNi0uNS0xLjYtLjktMy4xLTEuM3ptLTEuNi0uOWwtLjctLjctMjcgMjEuOSAxLjYgMiAyNi0yMy4xIC4xLS4xek0zNjYuOSAzNjMuOWMtOC0yLjEtMTUuNC00LjYtMjIuMi03LjUtMTUuMy02LjItMzQuMy0xNy01Ny0zMi40bC0zNy40LTI1LjNjLTE1LjgtMTAuMS0zMC4yLTE3LjYtNDMuMi0yMi42LTEzLjEtNC45LTI2LTcuMy0zOC42LTcuM2wtNS41IDBjLTMyLjIgMS43LTU3LjIgMTMuOC03NSAzNi4yLTE2LjYgMjAuOC0yNSA0NS4zLTI1IDczLjYgMCAzMS44IDEyLjggNTYuNyAzOC4yIDc0LjcgMjUuNCAxOC4xIDYwLjIgMjcuMSAxMDQuNCAyNy4xIDM0LjcgMCA2NC02LjIgODcuOC0xOC42IDIzLjctMTIuNCA0Mi4xLTI4LjggNTUuMi00OS4yIDkuOC0xNS41IDE1LjktMzEuOCAxOC4yLTQ4LjhsLjEgLjF6Il19LHI0dD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJvcGVuc3RyZWV0bWFwIixpY29uOls1MTIsNTEyLFtdLCJlODZiIiwiTTYxIDQ5OC43Yy03LjEtMS44LTEwLjgtNC43LTI5LjYtMjMuNi0yMi41LTIyLjQtMjMuOS0yNC42LTIzLjktMzYuMyAwLTEzLTMuOS04LjQgNjcuOS04MC4zIDcyLjUtNzIuNyA2OC43LTY5LjUgODEuOS02OS41IDYuMSAwIDcuNiAuNCAxMi41IDIuOGw1LjYgMi44YzExLjctMTEuNyAyMy40LTIzLjQgMzUuMS0zNS4xbC00LjQtNi45Yy04LjYtMTMuMy0xNi42LTMyLjgtMjAuMy00OC45LTEwLjItNDUuNCAuOC05My4zIDI5LjgtMTI5LjcgNTAuMS02Mi44IDE0MC4xLTc2LjcgMjA2LjYtMzIgMzYuNSAyNC41IDYwLjMgNjIuNSA2NyAxMDcgMS40IDkuNCAxLjQgMzEuOCAwIDQxLjgtNC45IDM0LjYtMTkuNyA2NC00NC40IDg4LjctMTIuNyAxMi43LTIzIDIwLjEtMzkuMiAyOC4yLTE5LjMgOS43LTM1LjcgMTQuMy01OCAxNi4xLTMxLjcgMi42LTY2LjktNi4xLTkzLjgtMjMuNGwtNi45LTQuNGMtMTEuNyAxMS43LTIzLjQgMjMuNC0zNS4xIDM1LjFsMi44IDUuNmMyLjUgNC45IDIuOCA2LjQgMi44IDEyLjUgMCAxMy4xIDMuMSA5LjQtNjkgODEuNS01NS42IDU1LjUtNjQuMSA2My43LTY4LjQgNjUuNy01LjUgMi41LTEzLjkgMy40LTE5IDIuMXpNMzU5LjQgMjk2LjljNDAuMS03LjMgNzUuMS0zNCA5Mi43LTcwLjcgMjgtNTguNCA5LjItMTI3LTQ0LjgtMTYzLjMtMTIuOS04LjctMzAuOC0xNi00Ny43LTE5LjQtMTEuNy0yLjQtMzYuNC0yLjEtNDguNiAuNS0xOC4yIDMuOS0zNC45IDExLjEtNDkuNCAyMS40LTguOSA2LjQtMjMuNyAyMS4xLTI5LjkgMjkuOS0zNC42IDQ5LTMxLjUgMTE0LjEgNy43IDE1OS4zIDIwLjEgMjMuMiA0Ny44IDM4LjQgNzguNiA0MyAxMC4yIDEuNSAzMSAxLjIgNDEuNS0uOHptLTM1LjUtMTcuNGMtMTMuOC0yLjItMjUuNi01LjctMzUuMS0xMC41bC01LjQtMi43IDAtNDkuOS05LjUgMGMtOC4yIDAtMTkuNSAxLjYtMjcuNyA0LTEuMSAuMy0xLjUgMS42LTEuNyA0LjhsLS4zIDQuNC00LjEtNy44Yy05LTE3LjItMTIuMi0zMC43LTEyLjItNTEuNCAwLTE2IDEuMS0yMy40IDUuNi0zNi4zIDIuNC02LjggOC4yLTE4LjkgMTAuOC0yMi4zIDEuMS0xLjUgMS4yLTEuMSAxLjMgMy4zbDAgNWMxOC44LS4yIDM3LjYtLjMgNTYuNC0uNSAuMi00LjcgLjMtOS41IC41LTE0LjJsLTE5IDAgMC0zMSAzLjQtMS43YzUuNi0yLjggMTUuOS02LjcgMjEuNy04LjIgMy0uOCA2LjEtMS42IDYuOS0xLjggMS4yLS40IDEuMyAuMSAuNyAzLjMtMS4yIDYuMS0uOSAyMyAuNSAyOSAyLjggMTEuOSA5LjggMjAuNyAxOS4yIDI0LjMgNS42IDIuMSAxNi4zIDIuNiAyMi41IC45IDUuOS0xLjYgMTIuNS02LjQgMTUuOS0xMS41IDUtNy41IDYuNy0xNC4xIDcuMi0yNy4xbC40LTExLjQgNyAzLjZjOCA0LjIgMTcuOCAxMS4yIDI0LjkgMTggNC44IDQuNiA1IDQuOCA1IDkuMmwwIDQuNS0xOC45IDAgMCAxNC42IDM1IDBjMS4zIDIuNiAyLjUgNS4yIDMuOCA3LjdsLTkuNyAwYy02LjcgMC0xMi43IC42LTE5LjQgMS45bC05LjcgMS45IDAgNy4xYzAgMy45IC4yIDcuMSAuMyA3LjFzNC4xLS44IDguNy0xLjcgOC43LTEuNyA5LjEtMS43Yy40IDAgLjggMTEuMyAuOCAyNS44bDAgMjUuOGMtNi4yIC4yLTEyLjMgLjMtMTguNSAuNS0uMiA0LjctLjMgOS40LS41IDE0LjIgMTMuNSAuMiAyNyAuMyA0MC40IC41LTEgMi4zLTIgNC41LTMgNi44bC0xMC43IC4xYy05LjkgLjEtMTEuMSAuMi0xNS42IDIuNS0xMS44IDUuOC0xOC4xIDE4LjktMTguMyAzNy45bC0uMSA5LjMtNS44IDNjLTUgMi42LTIyLjYgOS0yNC45IDktLjUgMC0uOC0xMi0uOC0zMC42bDAtMzAuNi05LjQgMGMtNiAwLTEyLjQgLjYtMTcuOSAxLjctMTIuNiAyLjYtMTEuNSAxLjctMTEuNSA5LjUgMCA1IC4zIDYuOCAxLjEgNi44IC42IDAgNC42LS44IDguOC0xLjdzOC0xLjcgOC4zLTEuNyAuNiAxMSAuNiAyNC41bDAgMjQuNS03LjUtLjFjLTQuMS0uMS04LjUtLjMtOS43LS41em0tMzkuNC03MS42YzguOS0zLjkgMTUuNi0xMi45IDE4LjMtMjQuNCAxLjYtNi45IDEuNy0yMi42IDAtMzAuMi0yLjUtMTItOS42LTIxLjEtMTkuMy0yNC44LTYuOS0yLjYtMTguNC0yLjYtMjUuMyAwLTkuNyAzLjctMTYuNCAxMi44LTE5LjIgMjUuNi0xLjYgNy41LTEuNiAyMS40IDAgMjguOSAyLjYgMTIuNSAxMC41IDIyLjMgMjAuNiAyNS42IDcgMi4zIDE4LjkgMiAyNC45LS43em0tMTkuOS0xNC41Yy0zLjUtMy01LjItOC45LTUuOC0yMC42LS42LTEwLjUgLjYtMjEuMyAyLjktMjYgMi00LjMgNS44LTYuNCAxMC40LTYgNy40IC44IDEwLjMgNi41IDExLjEgMjIuNSAuOSAxNi43LTEuOSAyOC45LTcgMzEuMy0zLjkgMS44LTguNiAxLjMtMTEuNi0xLjJ6bTk0LjkgMTUuMWMxNS00LjYgMjIuOC0yMC4xIDIxLjktNDMuNS0uOC0xOS45LTcuOS0zMi4xLTIxLjUtMzcuMi01LjctMi4xLTE4LTEuOC0yNCAuNS05LjYgMy43LTE2LjQgMTIuNC0xOS4zIDI0LjctMiA4LjYtMS4zIDI4IDEuMyAzNS4yIDQgMTEuMyAxMS42IDE4LjcgMjEuNCAyMSA1LjggMS40IDE0LjQgMSAyMC4zLS44em0tMTYuNy0xNC4yYy01LTIuNy03LjMtMTMuMi02LjUtMzAuMSAuNi0xMi44IDEuNS0xNi43IDQuOC0yMC40IDQuNy01LjMgMTMuNi0zLjggMTYuNyAyLjggMy40IDcuMyA0IDMwLjEgMSA0MC4yLTEuNyA1LjctNS4yIDguOC0xMC4xIDguNy0yIDAtNC42LS42LTUuOC0xLjN6bS04NS4yIDUxLjVjLTcuMy03LjYtOS45LTExLjQtOC40LTExLjkgMi45LS45IDEzLjktMy4xIDE0LjItMi44IC4yIC4yIC4yIDQuOSAuMSAxMC40bC0uMiAxMC4xLTUuNi01Ljl6bTE1Ni40LTEuMmMuNy02IDMuMS0xMS41IDUuNy0xMy4yIDIuOS0xLjggNi40LTIuNiA4LTEuNyAxLjIgLjcgLjkgMS41LTIuNCA1LjktMi4xIDIuOC01LjYgNy03LjggOS40bC00IDQuMyAuNS00Ljd6TTQzOC40IDE2MWwuMS0zMi45IDIuNiA3LjdjNS4xIDE1LjMgNi45IDMxLjggNS4xIDQ2LjYtMS40IDExLjYtMS40IDExLjUtNC45IDExLjVsLTMgMCAuMS0zMi45ek0zNDQgMTA2LjJjLTIuNi0xLTUuMy00LjgtNi41LTktMS4yLTQtMS41LTI4LjUtLjQtMzMuNSAuNi0zIC45LTMuMiAzLjgtMy4yIDYuMiAwIDE4LjMgMiAxOC43IDMuMSAuMiAuNiAuNyA0LjkgMSA5LjUgLjcgOS43LS43IDIzLjItMi44IDI3LjYtMi40IDUuMS04LjUgNy41LTEzLjcgNS4zem0tOTQuMy0yLjRjLjQtLjggMy43LTQuNiA3LjMtOC40bDYuNS02LjljMCA1LjYgMCAxMS4yIC4xIDE2LjhsLTcuMyAwYy02LjcgMC03LjMtLjEtNi41LTEuNXptMzQuNCAzNDEuN2MtMjQtNi45LTQzLjktMTIuOS00NC4yLTEzLjEtLjUtLjYgMjQuMy04OC41IDI1LjMtODkuNiAuNS0uNSA4NS40IDIzLjMgODguOSAyNC45IDEuMiAuNi0uMSA1LjgtMTAuNiA0Mi40LTYuNiAyMy0xMi40IDQzLjItMTIuOCA0NXMtMS40IDMuMi0xLjkgMy4xLTIwLjctNS44LTQ0LjctMTIuN3pNMzQyLjggNDU2YzAtMS4xIDI0LjctODcuMyAyNS4xLTg3LjYgLjktLjcgODcuMS0yNC43IDg3LjQtMjQuNCAuNCAuNC0yNC4xIDg3LjMtMjQuNyA4Ny45LS40IC4zLTgzLjIgMjQtODUuOCAyNC41LTEuMSAuMi0xLjkgLjEtMS45LS40ek0xOTkuNiA0MTcuNWMxNy0xNy4xIDMyLjItMzIuNyAzMy43LTM0LjcgMy40LTQuNSA4LjItMTQuOCA5LjUtMjAuNSAuNS0yLjQgMS4xLTcuMSAxLjItMTAuNWwuMi02LjIgMy43LTFjMi0uNiAzLjgtLjkgNC0uNyAuNSAuNS0yNC4zIDg3LTI1LjEgODcuOC0uNCAuMy0xMy42IDQuMy0yOS40IDguOGwtMjguNyA4LjIgMzEtMzEuMXptMTY2LjktNjEuNmMtLjItLjMtLjctMi0xLjItMy43bC0uOS0zLjIgMy4yLS41YzI3LTQuNiA1NS45LTE3LjMgNzguNy0zNC41IDMuMy0yLjUgNS4xLTMuNCA1LjMtMi43IDEuMSAzLjMgNS41IDE5LjEgNS40IDE5LjMtLjcgLjctOTAuMiAyNS44LTkwLjUgMjUuNHpNNjIuOSAzMjkuOGMtMS0uOC0yMy44LTc3LjktMjUuNS04Ni40LS4zLTEuNyAzLS45IDQzLjggMTAuOCA0Mi43IDEyLjIgNDQuMiAxMi43IDQ0LjggMTQuOSAuNSAyIC4yIDIuNi0yLjUgNC41LTEuNyAxLjItMTUuNSAxNC42LTMwLjcgMjkuOHMtMjcuOCAyNy42LTI4IDI3LjYtMS4xLS41LTEuOC0xLjF6bTE2LjUtODguMmMtMjMuOS02LjktNDMuNS0xMi42LTQzLjYtMTIuNi0uMy0uMiAyNS4zLTg5LjMgMjUuOS04OS44IC40LS40IDg5LjEgMjQuNCA5MCAyNS4yIC4yIC4yLTUuNCAyMC41LTEyLjQgNDUuMS0xMS42IDQwLjctMTIuOSA0NC44LTE0LjUgNDQuNy0xIDAtMjEuMy01LjctNDUuMi0xMi42em01OS42IDEwLjhjLjItLjYgNC4zLTE0LjUgOC45LTMwLjlsOC41LTI5LjcgMS4xIDYuNWMxLjkgMTEuMiA1LjMgMjMuOSA5LjMgMzUuMSAyLjEgNS45IDMuOCAxMC45IDMuNiAxMXMtNi43IDItMTQuNSA0LjMtMTQuOSA0LjItMTUuOCA0LjVjLTEuMSAuMy0xLjUgLjEtMS4yLS43ek0xMDYgMTM5LjFjLTIzLjktNi45LTQzLjctMTIuOC00My45LTEzLjItLjgtMS4zLTI1LjEtODctMjQuNy04Ny40IC41LS41IDg2LjggMjQuMyA4Ny42IDI1LjEgLjkgMSAyNS44IDg4LjIgMjUuMSA4OC0uMyAwLTIwLjEtNS43LTQ0LTEyLjZ6bTQzLjItMzQuNUMxMzYuNSA2MCAxMzkgNjguOCAxMzcuMiA2Mi41bDM0LjEtOS43YzE4LjgtNS40IDM0LjctOS45IDM1LjQtMTAuMnMtMS42IDIuOC01LjIgNi44Yy0xOS4xIDIxLjMtMzEuNSA0NC0zOS40IDcxLjktMS41IDUuMi0yLjcgMTAuMy0yLjcgMTEuMyAwIDUuOS0yLjMtLjUtMTAuMi0yOHoiXX0saTR0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6InNlbGxjYXN0IixpY29uOls0NDgsNTEyLFtdLCJmMmRhIiwiTTM1My41IDMyTDk0LjggMzJDNDIuNyAzMiAuMSA3NC42IC4xIDEyNi42bDAgMjU4LjdDLjEgNDM3LjQgNDIuNyA0ODAgOTQuOCA0ODBsMjU4LjcgMGM1Mi4xIDAgOTQuNy00Mi42IDk0LjctOTQuNmwwLTI1OC44YzAtNTItNDIuNi05NC42LTk0LjctOTQuNnptLTUwIDMxNi40Yy0yNy45IDQ4LjItODkuOSA2NC45LTEzOC4yIDM3LjItMjIuOSAzOS44LTU0LjkgOC42LTQyLjMtMTMuMmwxNS43LTI3LjJjNS45LTEwLjMgMTkuMi0xMy45IDI5LjUtNy45IDE4LjYgMTAuOC0uMS0uMSAxOC41IDEwLjcgMjcuNiAxNS45IDYzLjQgNi4zIDc5LjQtMjEuMyAxNS45LTI3LjYgNi4zLTYzLjQtMjEuMy03OS40LTE3LjgtMTAuMi0uNi0uNC0xOC42LTEwLjYtMjQuNi0xNC4yLTMuNC01MS45IDIxLjYtMzcuNSAxOC42IDEwLjgtLjEtLjEgMTguNSAxMC43IDQ4LjQgMjggNjUuMSA5MC4zIDM3LjIgMTM4LjV6bTIxLjgtMjA4LjhjLTE3IDI5LjUtMTYuMyAyOC44LTE5IDMxLjUtNi41IDYuNS0xNi4zIDguNy0yNi41IDMuNi0xOC42LTEwLjggLjEgLjEtMTguNS0xMC43LTI3LjYtMTUuOS02My40LTYuMy03OS40IDIxLjNzLTYuMyA2My40IDIxLjMgNzkuNGMwIDAgMTguNSAxMC42IDE4LjYgMTAuNiAyNC42IDE0LjIgMy40IDUxLjktMjEuNiAzNy41LTE4LjYtMTAuOCAuMSAuMS0xOC41LTEwLjctNDguMi0yNy44LTY0LjktOTAuMS0zNy4xLTEzOC40IDI3LjktNDguMiA4OS45LTY0LjkgMTM4LjItMzcuMmw0LjgtOC40YzE0LjMtMjQuOSA1Mi0zLjMgMzcuNyAyMS41eiJdfSxhNHQ9e3ByZWZpeDoiZmFiIixpY29uTmFtZToibWl4IixpY29uOls0NDgsNTEyLFtdLCJmM2NiIiwiTTAgNjRMMCA0MTIuOWMwIDU2LjIgODggNTguMSA4OCAwbDAtMjM4LjZjNy45LTUyLjkgODgtNTAuNCA4OCA2LjVsMCAxNzUuM2MwIDU3LjkgOTYgNTggOTYgMEwyNzIgMjQwYzUuMy01NC43IDg4LTUyLjUgODggNC4zbDAgMjMuOGMwIDU5LjkgODggNTYuNiA4OCAwTDQ0OCA2NCAwIDY0eiJdfSxuNHQ9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiY2MtYXBwbGUtcGF5IixpY29uOls1NzYsNTEyLFtdLCJmNDE2IiwiTTMwMi4yIDIxOC40YzAgMTcuMi0xMC41IDI3LjEtMjkgMjcuMWwtMjQuMyAwIDAtNTQuMiAyNC40IDBjMTguNCAwIDI4LjkgOS44IDI4LjkgMjcuMXpNMzQ5LjcgMjgxYzAgOC4zIDcuMiAxMy43IDE4LjUgMTMuNyAxNC40IDAgMjUuMi05LjEgMjUuMi0yMS45bDAtNy43LTIzLjUgMS41Yy0xMy4zIC45LTIwLjIgNS44LTIwLjIgMTQuNHpNNTc2IDc5bDAgMzUyYzAgMjYuNS0yMS41IDQ4LTQ4IDQ4TDQ4IDQ3OWMtMjYuNSAwLTQ4LTIxLjUtNDgtNDhMMCA3OUMwIDUyLjUgMjEuNSAzMSA0OCAzMWw0ODAgMGMyNi41IDAgNDggMjEuNSA0OCA0OHpNMTI3LjggMTk3LjJjOC40IC43IDE2LjgtNC4yIDIyLjEtMTAuNCA1LjItNi40IDguNi0xNSA3LjctMjMuNy03LjQgLjMtMTYuNiA0LjktMjEuOSAxMS4zLTQuOCA1LjUtOC45IDE0LjQtNy45IDIyLjh6bTYwLjYgNzQuNWMtLjItLjItMTkuNi03LjYtMTkuOC0zMC0uMi0xOC43IDE1LjMtMjcuNyAxNi0yOC4yLTguOC0xMy0yMi40LTE0LjQtMjcuMS0xNC43LTEyLjItLjctMjIuNiA2LjktMjguNCA2LjktNS45IDAtMTQuNy02LjYtMjQuMy02LjQtMTIuNSAuMi0yNC4yIDcuMy0zMC41IDE4LjYtMTMuMSAyMi42LTMuNCA1NiA5LjMgNzQuNCA2LjIgOS4xIDEzLjcgMTkuMSAyMy41IDE4LjcgOS4zLS40IDEzLTYgMjQuMi02IDExLjMgMCAxNC41IDYgMjQuMyA1LjkgMTAuMi0uMiAxNi41LTkuMSAyMi44LTE4LjIgNi45LTEwLjQgOS44LTIwLjQgMTAtMjF6bTEzNS40LTUzLjRjMC0yNi42LTE4LjUtNDQuOC00NC45LTQ0LjhsLTUxLjIgMCAwIDEzNi40IDIxLjIgMCAwLTQ2LjYgMjkuMyAwYzI2LjggMCA0NS42LTE4LjQgNDUuNi00NXptOTAgMjMuN2MwLTE5LjctMTUuOC0zMi40LTQwLTMyLjQtMjIuNSAwLTM5LjEgMTIuOS0zOS43IDMwLjVsMTkuMSAwYzEuNi04LjQgOS40LTEzLjkgMjAtMTMuOSAxMyAwIDIwLjIgNiAyMC4yIDE3LjJsMCA3LjUtMjYuNCAxLjZjLTI0LjYgMS41LTM3LjkgMTEuNi0zNy45IDI5LjEgMCAxNy43IDEzLjcgMjkuNCAzMy40IDI5LjQgMTMuMyAwIDI1LjYtNi43IDMxLjItMTcuNGwuNCAwIDAgMTYuNCAxOS42IDAgMC02OCAuMSAwek01MTYgMjEwLjlsLTIxLjUgMC0yNC45IDgwLjYtLjQgMC0yNC45LTgwLjYtMjIuMyAwIDM1LjkgOTkuMy0xLjkgNmMtMy4yIDEwLjItOC41IDE0LjItMTcuOSAxNC4yLTEuNyAwLTQuOS0uMi02LjItLjNsMCAxNi40YzEuMiAuNCA2LjUgLjUgOC4xIC41IDIwLjcgMCAzMC40LTcuOSAzOC45LTMxLjhMNTE2IDIxMC45eiJdfSxvNHQ9e3ByZWZpeDoiZmFiIixpY29uTmFtZToic29sYW5hIixpY29uOls1MTIsNTEyLFtdLCJlODVlIiwiTTUxMC41IDM4NS4ybC04NC45IDg4LjdjLTEuOCAxLjktNC4xIDMuNS02LjYgNC41cy01LjIgMS42LTcuOSAxLjZMOC45IDQ4MGMtMS45IDAtMy44LS41LTUuNC0xLjZzLTIuOS0yLjUtMy42LTQuMi0xLTMuNi0uNy01LjUgMS4yLTMuNiAyLjUtNC45bDg0LjktODguN2MxLjgtMS45IDQuMS0zLjUgNi41LTQuNXM1LjEtMS42IDcuOC0xLjZsNDAyLjQgMGMxLjkgMCAzLjggLjUgNS40IDEuNnMyLjkgMi41IDMuNiA0LjIgMSAzLjYgLjcgNS41LTEuMiAzLjYtMi41IDQuOXpNNDI1LjcgMjA2LjZjLTEuOC0xLjktNC4xLTMuNS02LjYtNC41cy01LjItMS42LTcuOS0xLjZsLTQwMi40IDBjLTEuOSAwLTMuOCAuNS01LjQgMS42cy0yLjkgMi41LTMuNiA0LjItMSAzLjYtLjcgNS41IDEuMiAzLjYgMi41IDQuOWw4NC45IDg4LjdjMS44IDEuOSA0LjEgMy41IDYuNSA0LjVzNS4xIDEuNiA3LjggMS42bDQwMi40IDBjMS45IDAgMy44LS41IDUuNC0xLjZzMi45LTIuNSAzLjYtNC4yIDEtMy42IC43LTUuNS0xLjItMy42LTIuNS00LjlsLTg0LjktODguN3pNOC45IDE0Mi45bDQwMi40IDBjMi43IDAgNS40LS41IDcuOS0xLjZzNC43LTIuNiA2LjYtNC41bDg0LjktODguN2MxLjMtMS40IDIuMi0zLjEgMi41LTQuOXMuMS0zLjctLjctNS41LTItMy4yLTMuNi00LjItMy41LTEuNi01LjQtMS42TDEwMSAzMmMtMi43IDAtNS40IC41LTcuOCAxLjZzLTQuNyAyLjYtNi41IDQuNUwxLjcgMTI2LjhjLTEuMyAxLjQtMi4yIDMuMS0yLjUgNC45cy0uMSAzLjcgLjcgNS41IDIgMy4yIDMuNiA0LjIgMy41IDEuNiA1LjQgMS42eiJdfSxzNHQ9e3ByZWZpeDoiZmFiIixpY29uTmFtZToidHlwZXNjcmlwdCIsaWNvbjpbNDQ4LDUxMixbXSwiZTg0MCIsIk0xNi44IDMybDQxNC40IDBjOS4zIDAgMTYuOCA3LjUgMTYuOCAxNi44bDAgNDE0LjRjMCA5LjMtNy41IDE2LjgtMTYuOCAxNi44TDE2LjggNDgwQzcuNSA0ODAgMCA0NzIuNSAwIDQ2My4yTDAgNDguOEMwIDM5LjUgNy41IDMyIDE2LjggMzJ6TTI0OSAyNzAuM2wwLTM2LjctMTU5LjQgMCAwIDM2LjcgNTYuOSAwIDAgMTYzLjYgNDUuMyAwIDAtMTYzLjYgNTcuMiAwem0xOC4xIDE1OS4zYzcuMyAzLjcgMTUuOSA2LjUgMjUuOSA4LjRzMjAuNSAyLjggMzEuNSAyLjhjMTAuOCAwIDIxLTEgMzAuNy0zLjFzMTguMi01LjQgMjUuNS0xMC4xIDEzLjEtMTAuOSAxNy40LTE4LjQgNi40LTE3IDYuNC0yOC4yYzAtOC4xLTEuMi0xNS4yLTMuNy0yMS4zcy01LjktMTEuNS0xMC41LTE2LjMtMTAuMS05LTE2LjUtMTIuOC0xMy43LTcuMy0yMS43LTEwLjdjLTUuOS0yLjQtMTEuMi00LjgtMTUuOS03LjFzLTguNy00LjYtMTEuOS03LTUuOC00LjktNy42LTcuNS0yLjctNS43LTIuNy05YzAtMy4xIC44LTUuOCAyLjQtOC4zczMuOC00LjYgNi43LTYuNCA2LjUtMy4xIDEwLjctNC4xIDguOS0xLjUgMTQuMS0xLjVjMy43IDAgNy43IC4zIDExLjkgLjhzOC40IDEuNCAxMi42IDIuNiA4LjMgMi42IDEyLjMgNC40IDcuNyAzLjggMTEgNi4xbDAtNDEuOGMtNi44LTIuNi0xNC4zLTQuNS0yMi40LTUuOHMtMTcuNC0xLjktMjcuOS0xLjljLTEwLjcgMC0yMC44IDEuMS0zMC40IDMuNHMtMTggNS44LTI1LjIgMTAuNy0xMyAxMS0xNy4yIDE4LjUtNi4zIDE2LjUtNi4zIDI2LjljMCAxMy4zIDMuOSAyNC43IDExLjYgMzQuMXMxOS41IDE3LjQgMzUuMiAyMy45YzYuMiAyLjUgMTEuOSA1IDE3LjMgNy40czEwIDQuOSAxMy44IDcuNSA3IDUuNCA5LjIgOC41IDMuNCA2LjYgMy40IDEwLjVjMCAyLjktLjcgNS42LTIuMSA4cy0zLjUgNC42LTYuNCA2LjQtNi40IDMuMi0xMC43IDQuMy05LjMgMS41LTE1IDEuNWMtOS43IDAtMTkuNC0xLjctMjguOS01LjFzLTE4LjQtOC41LTI2LjYtMTUuM2wwIDQ0Ljd6Il19LGw0dD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJicmF2ZSIsaWNvbjpbNDQ4LDUxMixbXSwiZTYzYyIsIk0xNDUuNiAwbDE1NyAwIDQ0LjcgNTAuOHMzOS4zLTEwLjkgNTcuOCA3LjYgMzMuOCAzNC45IDMzLjggMzQuOWwtMTIgMjkuNSAxNS4zIDQzLjdzLTQ0LjkgMTcwLjItNTAuMSAxOTFjLTEwLjQgNDAuOS0xNy40IDU2LjgtNDYuOSA3Ny41cy04Mi45IDU2LjgtOTEuNiA2Mi4yYy0xLjkgMS4yLTMuOSAyLjUtNS45IDMuOS03LjUgNS4xLTE1LjggMTAuOC0yMy41IDEwLjhzLTE2LjEtNS43LTIzLjUtMTAuOGMtMi0xLjQtNC0yLjgtNS45LTMuOS04LjctNS41LTYyLjEtNDEuNS05MS42LTYyLjJzLTM2LjUtMzYuNi00Ni45LTc3LjVjLTUuMy0yMC44LTUwLjEtMTkxLTUwLjEtMTkxTDIxLjUgMTIyLjggOS4zIDkzLjNzMTUuMy0xNi40IDMzLjgtMzQuOSA1Ny44LTcuNiA1Ny44LTcuNkwxNDUuNiAwem03OC41IDQwNy42YzMuNyAwIDguOS00LjcgMTMtOC40IC42LS41IDEuMi0xLjEgMS43LTEuNSA0LjItMy43IDQ3LjgtMzcuNSA1MS0zOS44czUuNC02LjUgMS45LTguN2MtMi44LTEuNy0xMC01LjUtMjAuMy0xMC44LTMtMS42LTYuMy0zLjItOS43LTUtMTUuNC04LTM0LjUtMTQuNy0zNy41LTE0LjdzLTIyLjEgNi44LTM3LjUgMTQuN2MtMy41IDEuOC02LjcgMy41LTkuNyA1LTEwLjMgNS4zLTE3LjYgOS4xLTIwLjMgMTAuOC0zLjYgMi4yLTEuNCA2LjQgMS45IDguN3M0Ni44IDM2LjEgNTEgMzkuOGMuNSAuNSAxLjEgMSAxLjcgMS41IDQuMSAzLjcgOS4zIDguNCAxMyA4LjRsLS4yIDB6bTAtMTY1LjdjNC43IDAgMTcuNi0zIDI2LjQtNWwyLS41YzcuOC0xLjggNy4zLTYuMyA2LjQtMTMtLjEtLjgtLjItMS42LS4zLTIuNC0uNi02LjEtNS44LTMzLjEtOS4xLTUwLjMtMS4xLTUuOC0yLTEwLjUtMi40LTEyLjktMS41LTguMS0uNi05LjQgLjctMTEuMyAuMi0uMyAuNS0uNyAuNy0xLjEgMS40LTIuMyAxNi02LjIgMjcuOS05LjUgMi41LS43IDQuOC0xLjMgNi45LTEuOSAxMC42LTMgMzIuNC0uNiA0NC4yIC42IDEuOCAuMiAzLjQgLjQgNC43IC41IDkuNiAuOSAxMC40IDIuMyA3LjIgMy44LTIuMyAxLjEtMTYuMiA2LjMtMjguNyAxMC45LTQuNyAxLjgtOS4yIDMuNS0xMi44IDQuOC0xLjUgLjUtMyAxLjEtNC41IDEuNy0xMi41IDQuNi0yNy4yIDEwLTI4LjkgMTkuNC0xLjUgOC4zIDUuMiAxOS45IDExLjMgMzAuMyAxLjYgMi44IDMuMiA1LjUgNC42IDguMSA2LjMgMTEuOSA2LjUgMTMuMyA2LjEgMTguMS0uNCAzLjktMTQuNSAxMi43LTIyLjQgMTcuNi0xLjggMS4xLTMuMyAyLjEtNC4yIDIuNy0uOCAuNS0yLjEgMS40LTMuOCAyLjQtOC42IDUuMi0yNi4zIDE2LTI2LjMgMjIuNSAwIDcuOCAyNC42IDI4LjEgMzIuNCAzMy4yczI4LjkgMTYuMSAzNy45IDE3LjggMjMtOC41IDMxLjItMjMuOGM3LjctMTQuNCAxLjctMjguNS0zLjItNDBsLS45LTIuMmMtNC41LTEwLjYgMS45LTE3IDYuMi0yMS4zIC41LS41IDEtMSAxLjQtMS40bDQzLTQ1LjdjMS4zLTEuMyAyLjUtMi42IDMuNy0zLjggNS44LTUuNyAxMC44LTEwLjUgMTAuOC0yMi44IDAtMTQuOS01Ny41LTg0LjUtNTcuNS04NC41cy00OC41IDkuMy01NS4xIDkuM2MtNS4yIDAtMTUuMy0zLjUtMjUuOC03LjEtMi43LS45LTUuNC0xLjktOC0yLjctMTMtNC4zLTIxLjgtNC40LTIxLjgtNC40cy04LjcgMC0yMS44IDQuNGMtMi43IC45LTUuNCAxLjgtOCAyLjctMTAuNSAzLjYtMjAuNiA3LjEtMjUuOCA3LjEtNi41IDAtNTUuMS05LjMtNTUuMS05LjNzLTU3LjUgNjkuNi01Ny41IDg0LjVjMCAxMi4zIDQuOSAxNy4xIDEwLjggMjIuOCAxLjIgMS4yIDIuNSAyLjQgMy43IDMuOGw0My4xIDQ1LjhjLjQgLjUgLjkgLjkgMS40IDEuNCA0LjMgNC4zIDEwLjYgMTAuNyA2LjIgMjEuM2wtLjkgMi4yYy00LjkgMTEuNS0xMSAyNS42LTMuMiA0MCA4LjIgMTUuMyAyMi4yIDI1LjUgMzEuMiAyMy44czMwLjEtMTIuNyAzNy45LTE3LjggMzIuNC0yNS40IDMyLjQtMzMuMmMwLTYuNS0xNy43LTE3LjMtMjYuMy0yMi41LTEuNy0xLTMuMS0xLjktMy44LTIuNC0uOS0uNi0yLjQtMS41LTQuMi0yLjctNy45LTQuOS0yMi0xMy43LTIyLjQtMTcuNi0uNC00LjgtLjMtNi4yIDYuMS0xOC4xIDEuMy0yLjUgMi45LTUuMyA0LjYtOC4xIDYtMTAuNCAxMi44LTIyIDExLjMtMzAuMy0xLjctOS40LTE2LjQtMTQuOC0yOC45LTE5LjQtMS42LS42LTMuMS0xLjEtNC41LTEuNy0zLjYtMS40LTguMS0zLjEtMTIuOC00LjhsLS4xIDBjLTEyLjUtNC43LTI2LjQtOS45LTI4LjctMTAuOS0zLjItMS41LTIuMy0yLjggNy4yLTMuOCAxLjMtLjEgMi45LS4zIDQuNy0uNSAxMS44LTEuMyAzMy42LTMuNiA0NC4yLS42IDIuMSAuNiA0LjQgMS4yIDYuOSAxLjkgMTEuOSAzLjIgMjYuNSA3LjIgMjcuOSA5LjUgLjIgLjQgLjUgLjcgLjcgMS4xIDEuMyAxLjkgMi4yIDMuMiAuNyAxMS4zLS40IDIuNC0xLjMgNy4xLTIuNCAxMi45LTMuMyAxNy4yLTguNSA0NC4yLTkuMSA1MC4zLS4xIC44LS4yIDEuNy0uMyAyLjQtLjggNi43LTEuNCAxMS4yIDYuNCAxM2wyIC41YzguOCAyIDIxLjggNSAyNi40IDVsMC0uMXoiXX0sYzR0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImV0c3kiLGljb246WzM4NCw1MTIsW10sImYyZDciLCJNMzg0IDM0OGMtMS44IDEwLjctMTMuOCAxMTAtMTUuNSAxMzItMTE3LjktNC4zLTIxOS45LTQuNy0zNjguNSAwbDAtMjUuNWM0NS41LTguOSA2MC42LTggNjEtMzUuMiAxLjgtNzIuMyAzLjUtMjQ0LjEgMC0zMjItMS0yOC41LTEyLjEtMjYuOC02MS0zNkwwIDM1LjhjNzMuOSAyLjQgMjU1LjkgOC42IDM2My0zLjgtMy41IDM4LjItNy44IDEyNi41LTcuOCAxMjYuNWwtMjMuMiAwQzMyMC45IDExNS43IDMxMy4yIDY4IDI3Ny4zIDY4bC0xMzcgMGMtMTAuMiAwLTEwLjcgMy41LTEwLjcgOS44bDAgMTYzLjhjNTggLjUgODguNS0yLjUgODguNS0yLjUgMjkuOC0xIDI3LjYtOC41IDQwLjctNjUuM2wyNS44IDBjLTQuNCAxMDEuNC0zLjkgNjEuOC0xLjggMTYwLjNMMjU3IDMzNGMtOS4yLTQwLjEtOS4xLTYxLTM5LjUtNjEuNSAwIDAtMjEuNS0yLTg4LTJsMCAxMzljMCAyNiAxNC4zIDM4LjMgNDQuMyAzOC4zbDg5LjMgMGM2My42IDAgNjYuNi0yNSA5OC43LTk5LjhsMjIuMiAweiJdfSxkNHQ9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiYnRjIixpY29uOlszODQsNTEyLFtdLCJmMTVhIiwiTTMxMC40IDI0Mi42YzI3LjctMTQuMiA0NS40LTM5LjQgNDEuMy04MS4zLTUuNC01Ny40LTUyLjUtNzYuNi0xMTQuOC04MS45bDAtNzkuNC00OC41IDAgMCA3Ny4yYy0xMi42IDAtMjUuNSAuMy0zOC40IC42bDAtNzcuOC00OC41IDAgMCA3OS40Yy0xNy44IC41LTM4LjYgLjMtOTcuNCAwbDAgNTEuN2MzOC4zLS43IDU4LjQtMy4xIDYzIDIxLjRsMCAyMTcuNGMtMi45IDE5LjUtMTguNSAxNi43LTUzLjMgMTYuMUw0IDQ0My43Yzg4LjUgMCA5Ny40IC4zIDk3LjQgLjNsMCA2OCA0OC41IDAgMC02Ny4xYzEzLjIgLjMgMjYuMiAuMyAzOC40IC4zbDAgNjYuNyA0OC41IDAgMC02OGM4MS4zLTQuNCAxMzUuNi0yNC45IDE0Mi45LTEwMS41IDUuNy02MS40LTIzLjMtODguOS02OS4zLTk5Ljl6TTE1MC44IDEzNC42YzI3LjQgMCAxMTMuMS04LjUgMTEzLjEgNDguNSAwIDU0LjUtODUuNyA0OC4yLTExMy4xIDQ4LjJsMC05Ni43em0wIDI1MS44bDAtMTA2LjVjMzIuOCAwIDEzMy4xLTkuMSAxMzMuMSA1My4zIDAgNjAuMi0xMDAuNCA1My4zLTEzMy4xIDUzLjN6Il19LHU0dD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJhZG4iLGljb246WzUxMiw1MTIsW10sImYxNzAiLCJNMjU2IDE2Ny41bDY0LjkgOTguOC0xMjkuOCAwIDY0LjktOTguOHpNOCAyNTZhMjQ4IDI0OCAwIDEgMSA0OTYgMCAyNDggMjQ4IDAgMSAxIC00OTYgMHptMzk2LjIgODIuN2wtMTQ4LjItMjIzLjItMTQ4LjIgMjIzLjIgMzAuNCAwIDMzLjYtNTEuNyAxNjguNiAwIDMzLjYgNTEuNyAzMC4yIDB6Il19LHA0dD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJzcXVhcmUteC10d2l0dGVyIixpY29uOls0NDgsNTEyLFtdLCJlNjFhIiwiTTY0IDMyQzI4LjcgMzIgMCA2MC43IDAgOTZMMCA0MTZjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMzIwIDBjMzUuMyAwIDY0LTI4LjcgNjQtNjRsMC0zMjBjMC0zNS4zLTI4LjctNjQtNjQtNjRMNjQgMzJ6bTI5Ny4xIDg0bC0xMDMuOCAxMTguNiAxMjIuMSAxNjEuNC05NS42IDAtNzQuOC05Ny45LTg1LjcgOTcuOS00Ny41IDAgMTExLTEyNi45LTExNy4xLTE1My4xIDk4IDAgNjcuNyA4OS41IDc4LjItODkuNSA0Ny41IDB6TTMyMy4zIDM2Ny42bC0xNjkuOS0yMjQuNy0yOC4zIDAgMTcxLjggMjI0LjcgMjYuNCAweiJdfSxoNHQ9e3ByZWZpeDoiZmFiIixpY29uTmFtZToic3F1YXJlLWZvbnQtYXdlc29tZSIsaWNvbjpbNDQ4LDUxMixbXSwiZTVhZCIsIk02NCAzMkMyOC43IDMyIDAgNjAuNyAwIDk2TDAgNDE2YzAgMzUuMyAyOC43IDY0IDY0IDY0bDMyMCAwYzM1LjMgMCA2NC0yOC43IDY0LTY0bDAtMzIwYzAtMzUuMy0yOC43LTY0LTY0LTY0TDY0IDMyem05MCAxMjJjMCA5LjMtNC44IDE3LjQtMTIuMSAyMmwxODguOSAwYzcuMyAwIDEzLjIgNS45IDEzLjIgMTMuMiAwIDEuOC0uNCAzLjctMS4xIDUuNEwzMTIgMjY0IDM0Mi45IDMzMy40Yy43IDEuNyAxLjEgMy41IDEuMSA1LjQgMCA3LjMtNS45IDEzLjItMTMuMiAxMy4ybC0xODYuOCAwIDAgMzItMzIgMCAwLTIwOS41Yy02LjEtNC44LTEwLTEyLjItMTAtMjAuNSAwLTE0LjQgMTEuNi0yNiAyNi0yNnMyNiAxMS42IDI2IDI2eiJdfSxmNHQ9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiZm9ydW1iZWUiLGljb246WzQ0OCw1MTIsW10sImYyMTEiLCJNNS44IDMwOS43QzIgMjkyLjcgMCAyNzUuNSAwIDI1OC4zIDAgMTM1IDk5LjggMzUgMjIzLjEgMzUgMjM5LjcgMzUgMjU2LjQgMzcgMjcyLjQgNDAuNSAxNDkgODcuNSA1MS45IDE4NiA1LjggMzA5Ljd6TTM5OC43IDEyMC41Yy0xMy43LTE3LjUtMjkuNy0zMi43LTQ3LjgtNDUuMy0xNDkuNiA0NC4zLTI2Ni4zIDE2Mi4xLTMwOS43IDMxMiAxMi41IDE4LjEgMjggMzUuNiA0NS4yIDQ5IDQzLjEtMTUxLjMgMTYxLjItMjcxLjcgMzEyLjMtMzE1Ljd6bTE1LjggMjUyLjdjMTUuMi0yNS4xIDI1LjQtNTMuNyAyOS41LTgyLjgtNzkuNCA0Mi45LTE0NSAxMTAuNi0xODcuNiAxOTAuMyAzMC00LjQgNTguOS0xNS4zIDg0LjYtMzEuMyAzNSAxMy4xIDcwLjkgMjQuMyAxMDcgMzMuNi05LjMtMzYuNS0yMC40LTc0LjUtMzMuNS0xMDkuOHptMjkuNy0xNDUuNWMtMi42LTE5LjUtNy45LTM4LjctMTUuOC01Ni44LTEzNy45IDQ1LjgtMjQ2LjQgMTU2LjYtMjkxLjMgMjk1LjEgMTguMSA3LjYgMzcgMTIuNSA1Ni42IDE1LjIgNDYuMy0xMTQuMSAxMzYuOC0yMDYuOCAyNTAuNS0yNTMuNXoiXX0sZm5lPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6IjQyLWdyb3VwIixpY29uOls2NDAsNTEyLFsiaW5ub3NvZnQiXSwiZTA4MCIsIk0zMjAgOTZsMCAzMjBjMjEgMCA0MS44LTQuMSA2MS4yLTEyLjJzMzctMTkuOCA1MS45LTM0LjcgMjYuNi0zMi41IDM0LjctNTEuOSAxMi4yLTQwLjIgMTIuMi02MS4yLTQuMS00MS44LTEyLjItNjEuMi0xOS44LTM3LjEtMzQuNy01MS45LTMyLjUtMjYuNi01MS45LTM0LjctNDAuMi0xMi4yLTYxLjItMTIuMnpNMCAyNTZMMTYwIDQxNiAzMjAgMjU2IDE2MCA5NiAwIDI1NnptNDgwIDBjMCAyMSA0LjEgNDEuOCAxMi4yIDYxLjJzMTkuOCAzNyAzNC43IDUxLjkgMzIuNSAyNi42IDUxLjkgMzQuNyA0MC4yIDEyLjIgNjEuMiAxMi4ybDAtMzIwYy00Mi40IDAtODMuMSAxNi45LTExMy4xIDQ2LjlTNDgwIDIxMy42IDQ4MCAyNTZ6Il19LG00dD1mbmUsZzR0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6InN0dW1ibGV1cG9uLWNpcmNsZSIsaWNvbjpbNTEyLDUxMixbXSwiZjFhMyIsIk0yNjQgOGEyNDggMjQ4IDAgMSAwIDAgNDk2IDI0OCAyNDggMCAxIDAgMC00OTZ6bTAgMTc3LjVjLTkuOCAwLTE3LjggOC0xNy44IDE3LjhsMCAxMDYuOWMwIDQwLjktMzMuOSA3My45LTc0LjkgNzMuOS00MS40IDAtNzQuOS0zMy41LTc0LjktNzQuOWwwLTQ2LjUgNTcuMyAwIDAgNDUuOGMwIDEwIDggMTcuOCAxNy44IDE3LjhzMTcuOC03LjkgMTcuOC0xNy44bDAtMTA4LjRjMC00MCAzNC4yLTcyLjEgNzQuNy03Mi4xIDQwLjcgMCA3NC43IDMyLjMgNzQuNyA3Mi42bDAgMjMuNy0zNC4xIDEwLjEtMjIuOS0xMC43IDAtMjAuNmMuMS05LjYtNy45LTE3LjYtMTcuNy0xNy42ek00MzEuNiAzMDkuMWMwIDQxLjQtMzMuNSA3NC45LTc0LjkgNzQuOS00MS4yIDAtNzQuOS0zMy4yLTc0LjktNzQuMmwwLTQ2LjggMjIuOSAxMC43IDM0LjEtMTAuMSAwIDQ3LjFjMCA5LjggOCAxNy42IDE3LjggMTcuNnMxNy44LTcuOSAxNy44LTE3LjZsMC00OCA1Ny4zIDBjLS4xIDQ1LjktLjEgNDYuNC0uMSA0Ni40eiJdfSxiNHQ9e3ByZWZpeDoiZmFiIixpY29uTmFtZToic3ltZm9ueSIsaWNvbjpbNTEyLDUxMixbXSwiZjgzZCIsIk0yNTYgOGEyNDggMjQ4IDAgMSAwIDAgNDk2IDI0OCAyNDggMCAxIDAgMC00OTZ6TTM4OS43IDE1MS41Yy0xMS41IC40LTE5LjQtNi40LTE5LjgtMTYuOS0uMy05LjIgNi43LTEzLjQgNi41LTE4LjktLjItNi41LTEwLjItNi44LTEyLjktNi43LTM5LjggMS4zLTQ4LjYgNTctNTguOSAxMTMuOCAyMS40IDMuMiAzNi42LS43IDQ1LjEtNi4yIDEyLTcuNy0zLjMtMTUuNy0xLjQtMjQuNiA0LTE4LjIgMzIuNi0xOSAzMiA1LjMtLjQgMTcuOS0yNS45IDQxLjgtNzcuNiAzNS43LTEwLjggNTkuNS0xOC40IDExNS01OC4yIDE2MS43LTI5IDM0LjUtNTguNCAzOS44LTcxLjYgNDAuMy0yNC42IC45LTQxLTEyLjMtNDEuNi0yOS44LS42LTE3IDE0LjQtMjYuMyAyNC4zLTI2LjYgMjEuOS0uOCAzMC4xIDI1LjcgMTQuOSAzNC0xMi4xIDkuNyAuMSAxMi42IDIuMSAxMi42IDEwLjQtLjQgMTcuMy01LjUgMjIuMi05IDI0LTIwIDMzLjItNTQuOSA0NS40LTExOC4zIDguMi00OS43IDE3LTc4IDE4LjItODItMTYuOS0xMi43LTI3LjEtMjguNi00OS44LTM0LjctMTUuNi00LjItMjUuMS0uNi0zMS44IDcuOC03LjkgMTAtNS4zIDIzIDIuNCAzMC43bDEyLjYgMTRjMTUuNSAxNy45IDI0IDMxLjkgMjAuOCA1MC42LTUuMSAyOS45LTQwLjcgNTIuOS04Mi45IDM5LjktMzYtMTEuMS00Mi43LTM2LjYtMzguNC01MC42IDcuNS0yNC4yIDQyLjQtMTEuNyAzNC42IDEzLjYtMi44IDguNi00LjkgOC43LTYuMyAxMy4xLTQuNiAxNC44IDQxLjggMjguNCA1MS0xLjQgNC41LTE0LjUtNS4zLTIxLjctMjIuMi0zOS45LTI4LjUtMzEuNy0xNi02NS41IDIuOS03OS43IDUyLjgtMzkuNCAxMDAuNSAxNy41IDExMC42IDI1LjggMzcuMi0xMDkgMTAwLjUtMTA1LjUgMTAyLjQtMTA1LjUgMjUuMi0uOCA0NC4yIDEwLjYgNDQuOCAyOC42IC4yIDcuNy00LjIgMjIuNi0xOS41IDIzLjF6Il19LHY0dD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJzYWxlc2ZvcmNlIixpY29uOls2NDAsNTEyLFtdLCJmODNiIiwiTTI0OS40IDI0NS42bC0yNi40IDBjLjctNS4yIDMuMy0xNC4xIDEzLjYtMTQuMSA2LjggMCAxMiAzLjggMTIuNyAxNC4xek0zODYgMjMxLjhjLS41IDAtMTQuMS0xLjgtMTQuMSAyMHMxMy42IDIwIDE0LjEgMjBjMTMgMCAxNC4xLTEzLjUgMTQuMS0yMCAwLTIxLjgtMTMuNy0yMC0xNC4xLTIwek0xNDIuOCAyNTUuNWMtMS4xIC45LTIgMi0yLjUgMy4ycy0uOCAyLjctLjcgNGMwIDQuOCAyLjEgNi4xIDMuMyA3IDQuNyAzLjcgMTUuMSAyLjEgMjAuOSAxbDAtMTYuOWMtNS4zLTEuMS0xNi43LTItMjAuOSAxLjZ6TTY0MC41IDIzMmMwIDg3LjYtODAgMTU0LjQtMTY1LjQgMTM2LjQtMTguNCAzMy03MC43IDcwLjgtMTMyLjIgNDEuNi00MS4yIDk2LTE3Ny45IDkyLjItMjEzLjgtNS4yLTExOS43IDIzLjktMTc4LjgtMTM4LjQtNzUuMy0xOTkuMy0zNC44LTc5LjQgMjIuNi0xNzMuNiAxMTQuMy0xNzMuNiAxOS4xIDAgMzcuOSA0LjQgNTUgMTIuOXMzMiAyMC43IDQzLjYgMzUuOGMyMC43LTIxLjQgNDkuNC0zNC44IDgxLjEtMzQuOCA0Mi4zIDAgNzkgMjMuNSA5OC44IDU4LjYgOTIuOC00MC43IDE5My44IDI4LjIgMTkzLjggMTI3LjV6TTEyMC45IDI2My44YzAtMTEuOC0xMS43LTE1LjItMTcuOS0xNy4yLTUuMy0yLjEtMTMuNC0zLjUtMTMuNC04LjkgMC05LjUgMTctNi43IDI1LjItMi4xIDAgMCAxLjIgLjcgMS42LS41IC4yLS43IDIuNC02LjYgMi42LTcuMyAuMS0uMyAuMS0uNi0uMS0uOHMtLjQtLjUtLjYtLjZjLTEyLjMtNy42LTQwLjctOC41LTQwLjcgMTIuNyAwIDEyLjUgMTEuNSAxNS40IDE3LjkgMTcuMiA0LjcgMS42IDEzLjIgMyAxMy4yIDguNyAwIDQtMy41IDcuMS05LjIgNy4xLTYuOSAwLTEzLjUtMi4yLTE5LTYuMy0uNS0uMi0xLjQtLjctMS42IC43bC0yLjQgNy41Yy0uNSAuOSAuMiAxLjIgLjIgMS40IDEuOCAxLjQgMTAuMyA2LjYgMjIuOCA2LjYgMTMuMiAwIDIxLjQtNy4xIDIxLjQtMTguMWwwIDB6bTMyLTQyLjZjLTEwLjEgMC0xOC43IDMuMi0yMS40IDUuMi0uMSAuMS0uMiAuMi0uMyAuM3MtLjEgLjItLjEgLjQgMCAuMyAwIC40IC4xIC4zIC4yIC40bDIuNiA3LjFjLjEgLjIgLjIgLjUgLjUgLjZzLjUgLjIgLjcgLjFjLjYgMCA2LjgtNCAxNi45LTQgNCAwIDcuMSAuNyA5LjIgMi40IDMuNiAyLjggMy4xIDguMyAzLjEgMTAuNi00LjgtLjMtMTkuMS0zLjQtMjkuNCAzLjgtMi4zIDEuNi00LjMgMy44LTUuNSA2LjNzLTEuOSA1LjQtMS44IDguMmMwIDUuOSAxLjUgMTAuNCA2LjYgMTQuNCAxMi4yIDguMiAzNi4zIDIgMzguMSAxLjQgMS42LS4zIDMuNS0uNyAzLjUtMS45bDAtMzMuOWMwLTQuNiAuMy0yMS42LTIyLjgtMjEuNmwwIC4xem00Ni42LTIxYzAtLjIgMC0uMy0uMS0uNXMtLjEtLjMtLjMtLjQtLjItLjItLjQtLjMtLjMtLjEtLjUtLjFsLTkuOCAwYy0uMiAwLS4zIDAtLjUgLjFzLS4zIC4xLS40IC4zLS4yIC4yLS4zIC40LS4xIC4zLS4xIC41bDAgNzljMCAuMiAwIC4zIC4xIC41cy4xIC4zIC4zIC40IC4yIC4yIC40IC4zIC4zIC4xIC41IC4xbDkuOSAwYy4yIDAgLjMgMCAuNS0uMXMuMy0uMSAuNC0uMyAuMi0uMiAuMy0uNCAuMS0uMyAuMS0uNWwtLjEtNzl6bTU1LjcgMjguOWMtMi4xLTIuMy02LjgtNy41LTE3LjYtNy41LTMuNSAwLTE0LjIgLjItMjAuNyA4LjktNi40IDcuNi02LjYgMTguMS02LjYgMjEuNCAwIDMuMSAuMiAxNC4zIDcuMSAyMS4yIDIuNiAyLjkgOS4xIDguMiAyMi44IDguMiAxMC44IDAgMTYuNS0yLjMgMTguNi0zLjggLjUtLjIgLjctLjcgLjItMS45bC0yLjMtNi44Yy0uMS0uMy0uMy0uNS0uNi0uNnMtLjUtLjItLjgtLjFjLTIuNiAuOS02LjMgMi44LTE1LjMgMi44LTE3LjQgMC0xNi44LTE0LjctMTYuOS0xNi43bDM3LjIgMGMuMyAwIC41LS4xIC43LS4zcy40LS40IC40LS43Yy0uMyAwIDIuMS0xNC43LTYuMS0yNC4ybDAgMHptMzYuNyA1Mi43YzEzLjIgMCAyMS40LTcuMSAyMS40LTE4LjEgMC0xMS44LTExLjctMTUuMi0xNy45LTE3LjItNC4xLTEuNy0xMy40LTMuNC0xMy40LTguOSAwLTMuOCAzLjMtNi40IDguNS02LjQgNS44IC4xIDExLjUgMS42IDE2LjcgNC4yIDAgMCAxLjIgLjcgMS42LS41IC4yLS43IDIuNC02LjYgMi42LTcuMyAuMS0uMyAuMS0uNi0uMS0uOHMtLjQtLjUtLjYtLjZjLTcuOS00LjktMTYuNy00LjktMjAuMi00LjktMTIgMC0yMC41IDcuMy0yMC41IDE3LjYgMCAxMi41IDExLjUgMTUuNCAxNy45IDE3LjIgNi4xIDIgMTMuMiAzLjMgMTMuMiA4LjcgMCA0LTMuNSA3LjEtOS4yIDcuMS02LjkgMC0xMy41LTIuMi0xOS02LjQtLjEtLjEtLjMtLjItLjUtLjJzLS40IDAtLjUgLjEtLjMgLjItLjQgLjMtLjIgLjMtLjIgLjVsLTIuMyA3LjVjLS41IC45IC4yIDEuMiAuMiAxLjQgMS43IDEuNCAxMC4zIDYuNiAyMi44IDYuNmwwIDB6TTM1Ny42IDIyNGMwLS43LS4yLTEuMi0xLjItMS4ybC0xMS44IDBjMC0uMSAuOS04LjkgNC41LTEyLjUgNC4yLTQuMiAxMS44LTEuNiAxMi0xLjYgMS4yIC41IDEuNCAwIDEuNi0uNWwyLjgtNy44Yy43LS45IDAtMS4yLS4yLTEuNC01LjEtMi0xNy40LTIuOS0yNC41IDQuMi01LjUgNS41LTcgMTMuOS04IDE5LjVsLTguNSAwYy0uMyAwLS42IC4yLS44IC40cy0uMyAuNS0uNCAuOGwtMS40IDcuOGMwIC43IC4yIDEuMiAxLjIgMS4ybDguMiAwYy04LjUgNDcuOS04LjcgNTAuMi0xMC4zIDU1LjUtMS4xIDMuNi0zLjMgNi45LTUuOSA3LjgtLjEgMC0zLjkgMS43LTkuNi0uMiAwIDAtLjktLjUtMS40IC43LS4yIC43LTIuNiA2LjgtMi44IDcuNXMwIDEuNCAuNSAxLjRjNS4xIDIgMTMgMS44IDE3LjkgMCA2LjMtMi4zIDkuNy03LjkgMTEuNS0xMi45IDIuOC03LjcgMi44LTkuOCAxMS44LTU5LjdsMTIuMiAwYy4zIDAgLjYtLjIgLjgtLjRzLjMtLjUgLjQtLjhsMS40LTcuOHpNNDExIDI0MGMtLjYtMS43LTUuMS0xOC4xLTI1LjItMTguMS0xNS4yIDAtMjMgMTAtMjUuMiAxOC4xLTEgMy0zLjIgMTQgMCAyMy41IC4xIC4zIDQuNCAxOC4xIDI1LjIgMTguMSAxNSAwIDIyLjktOS42IDI1LjItMTguMSAzLjItOS42IDEtMjAuNSAwLTIzLjV6bTQ1LjQtMTYuN2MtNS0xLjctMTYuNi0xLjktMjIuMSA1LjRsMC00LjVjMC0uMiAwLS4zLS4xLS41cy0uMS0uMy0uMy0uNC0uMi0uMi0uNC0uMy0uMy0uMS0uNS0uMWwtOS40IDBjLS4yIDAtLjMgMC0uNSAuMXMtLjMgLjEtLjQgLjMtLjIgLjItLjMgLjQtLjEgLjMtLjEgLjVsMCA1NS4zYzAgLjIgMCAuMyAuMSAuNXMuMSAuMyAuMyAuNCAuMiAuMiAuNCAuMyAuMyAuMSAuNSAuMWw5LjYgMGMuMiAwIC4zIDAgLjUtLjFzLjMtLjEgLjQtLjMgLjItLjIgLjMtLjQgLjEtLjMgLjEtLjVsMC0yNy44YzAtMi45IC4xLTExLjQgNC41LTE1LjEgNC45LTQuOSAxMi0zLjQgMTMuNC0zLjEgLjMgMCAuNi0uMSAuOC0uM3MuNC0uNCAuNi0uN2MxLjItMi42IDIuMi01LjMgMy4xLTggLjEtLjMgLjEtLjUgMC0uOHMtLjMtLjUtLjUtLjZsMCAwem00Ni44IDU0LjFsLTIuMS03LjNjLS41LTEuMi0xLjQtLjctMS40LS43LTQuMiAxLjgtMTAuMSAxLjktMTEuMyAxLjktNC42IDAtMTcuMi0xLjEtMTcuMi0xOS44IDAtNi4yIDEuOC0xOS44IDE2LjUtMTkuOCAzLjktLjEgNy44IC41IDExLjUgMS42IDAgMCAuOSAuNSAxLjItLjcgLjktMi42IDEuNi00LjUgMi42LTcuNSAuMi0uOS0uNS0xLjItLjctMS4yLTExLjYtMy45LTIyLjMtMi41LTI3LjggMC0xLjYgLjctMTYuMiA2LjUtMTYuMiAyNy41IDAgMi45LS42IDMwLjEgMjguOSAzMC4xIDUuMyAwIDEwLjYtMSAxNS41LTIuOCAuMi0uMiAuNC0uNCAuNS0uNnMuMS0uNSAwLS44bDAgMHptNTMuOS0zOS41Yy0uOC0zLTUuNC0xNi4yLTIyLjMtMTYuMi0xNiAwLTIzLjUgMTAuMS0yNS42IDE4LjYtMS4yIDMuOC0xLjcgNy44LTEuNyAxMS44IDAgMjUuOSAxOC44IDI5LjQgMjkuOSAyOS40IDEwLjggMCAxNi41LTIuMyAxOC42LTMuOCAuNS0uMiAuNy0uNyAuMi0xLjlsLTIuNC02LjhjLS4xLS4zLS4zLS41LS42LS42cy0uNi0uMi0uOC0uMWMtMi42IC45LTYuMyAyLjgtMTUuMyAyLjgtMTcuNCAwLTE2LjktMTQuNy0xNi45LTE2LjdsMzcuMiAwYy4zIDAgLjUtLjEgLjctLjNzLjQtLjQgLjQtLjdjLS4yIDAgLjktNy4xLTEuNC0xNS41bDAgMHptLTIzLjMtNi40Yy0xMC4zIDAtMTMgOS0xMy42IDE0LjFsMjYuNCAwYy0uOS0xMS45LTcuNi0xNC4xLTEyLjctMTQuMWwwIDB6Il19LHg0dD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJzb3VyY2V0cmVlIixpY29uOls0NDgsNTEyLFtdLCJmN2QzIiwiTTQyNy40IDIwM2MwLTExMi4xLTkwLjktMjAzLTIwMy0yMDMtMTEyLjEtLjItMjAzIDkwLjYtMjAzLjIgMjAyLjYtLjEgNDMgMTMuNSA4NC44IDM4LjcgMTE5LjZzNjAuOSA2MC42IDEwMS44IDczLjhsMCAxMDEuN2MwIDMuOCAxLjUgNy40IDQuMiAxMC4xczYuMyA0LjIgMTAuMSA0LjJsOTYuNCAwYzMuOCAwIDcuNC0xLjUgMTAuMS00LjJzNC4yLTYuMyA0LjItMTAuMWwwLTEwMS42YzQwLjgtMTMuMiA3Ni41LTM5IDEwMS43LTczLjdzMzguOS03Ni41IDM5LTExOS40em0tMjcxLjYgMGMwLTkwLjggMTM3LjMtOTAuOCAxMzcuMyAwLS4xIDg5LjktMTM3LjMgOTEtMTM3LjMgMHoiXX0seTR0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImxpbmtlZGluLWluIixpY29uOls0NDgsNTEyLFtdLCJmMGUxIiwiTTEwMC4zIDQ0OGwtOTIuOSAwIDAtMjk5LjEgOTIuOSAwIDAgMjk5LjF6TTUzLjggMTA4LjFDMjQuMSAxMDguMSAwIDgzLjUgMCA1My44IDAgMzkuNSA1LjcgMjUuOSAxNS44IDE1LjhzMjMuOC0xNS44IDM4LTE1LjggMjcuOSA1LjcgMzggMTUuOCAxNS44IDIzLjggMTUuOCAzOGMwIDI5LjctMjQuMSA1NC4zLTUzLjggNTQuM3pNNDQ3LjkgNDQ4bC05Mi43IDAgMC0xNDUuNmMwLTM0LjctLjctNzkuMi00OC4zLTc5LjItNDguMyAwLTU1LjcgMzcuNy01NS43IDc2LjdsMCAxNDguMS05Mi44IDAgMC0yOTkuMSA4OS4xIDAgMCA0MC44IDEuMyAwYzEyLjQtMjMuNSA0Mi43LTQ4LjMgODcuOS00OC4zIDk0IDAgMTExLjMgNjEuOSAxMTEuMyAxNDIuM2wwIDE2NC4zLS4xIDB6Il19LHc0dD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJodG1sNSIsaWNvbjpbMzg0LDUxMixbXSwiZjEzYiIsIk0wIDMyTDM0LjkgNDI3LjggMTkxLjUgNDgwIDM0OS4xIDQyNy44IDM4NCAzMiAwIDMyek0zMDguMiAxNTkuOWwtMTgzLjggMCA0LjEgNDkuNCAxNzUuNiAwLTEzLjYgMTQ4LjQtOTcuOSAyNyAwIC4zLTEuMSAwLTk4LjctMjcuMy02LTc1LjggNDcuNyAwIDMuNSAzOC4xIDUzLjUgMTQuNSA1My43LTE0LjUgNi02Mi4yLTE2Ni45IDAtMTIuOC0xNDUuNiAyNDEuMSAwLTQuNCA0Ny43eiJdfSxNNHQ9e3ByZWZpeDoiZmFiIixpY29uTmFtZToicnVzdCIsaWNvbjpbNTEyLDUxMixbXSwiZTA3YSIsIk01MDguNSAyNDkuOGwtMjEuOC0xMy41Yy0uMi0yLS4zLTMuOS0uNS01LjlsMTguNy0xNy41Yy45LS45IDEuNi0xLjkgMi0zLjFzLjUtMi41IC4yLTMuNy0uOC0yLjQtMS42LTMuMy0xLjgtMS43LTMtMi4xbC0yNC05Yy0uNS0xLjktMS4xLTMuOC0xLjctNS42bDE1LTIwLjhjLjctMSAxLjItMi4yIDEuMy0zLjRzMC0yLjUtLjUtMy43LTEuMi0yLjItMi4yLTIuOS0yLjEtMS4zLTMuNC0xLjVsLTI1LjQtNC4yYy0uOS0xLjctMS44LTMuNC0yLjctNS4ybDEwLjctMjMuNGMuNS0xLjEgLjctMi40IC42LTMuNnMtLjUtMi40LTEuMi0zLjUtMS42LTEuOS0yLjgtMi41LTIuNC0uOC0zLjYtLjhsLTI1LjggLjljLTEuMi0xLjUtMi40LTIuOS0zLjYtNC40TDQzOSA4MS44Yy4zLTEuMiAuMy0yLjUtLjEtMy43cy0xLTIuMy0xLjktMy4yLTItMS41LTMuMi0xLjktMi41LS40LTMuNy0uMUw0MDUgNzguOWMtMS40LTEuMi0yLjktMi40LTQuNC0zLjZsLjktMjUuOGMuMS0xLjMtLjItMi41LS44LTMuNnMtMS40LTIuMS0yLjUtMi44LTIuMi0xLjEtMy41LTEuMi0yLjUgLjEtMy43IC42TDM2Ny43IDUzLjJjLTEuNy0uOS0zLjQtMS44LTUuMS0yLjdsLTQuMi0yNS40Yy0uMi0xLjItLjctMi40LTEuNS0zLjRzLTEuOC0xLjctMi45LTIuMi0yLjQtLjctMy43LS41LTIuNCAuNi0zLjQgMS4zTDMyNiAzNS4zYy0xLjktLjYtMy44LTEuMS01LjYtMS43bC05LTI0Yy0uNC0xLjItMS4yLTIuMi0yLjEtM3MtMi4xLTEuNC0zLjMtMS42LTIuNS0uMi0zLjcgLjItMi4zIDEuMS0zLjEgMkwyODEuNiAyNS45Yy0yLS4yLTMuOS0uNC01LjktLjVMMjYyLjMgMy41Yy0uNy0xLjEtMS42LTEuOS0yLjctMi42cy0yLjMtLjktMy42LS45LTIuNSAuMy0zLjYgLjktMiAxLjUtMi43IDIuNkwyMzYuMiAyNS4zYy0yIC4yLTMuOSAuMy01LjkgLjZMMjEyLjkgNy4xYy0uOS0uOS0xLjktMS42LTMuMS0ycy0yLjUtLjUtMy43LS4yLTIuNCAuOC0zLjMgMS42LTEuNyAxLjgtMi4xIDNsLTkgMjRjLTEuOSAuNi0zLjggMS4xLTUuNyAxLjdsLTIwLjgtMTVjLTEtLjctMi4yLTEuMi0zLjQtMS4zcy0yLjUgMC0zLjcgLjUtMi4yIDEuMi0yLjkgMi4yLTEuMyAyLjEtMS41IDMuNGwtNC4yIDI1LjRjLTEuNyAuOS0zLjQgMS44LTUuMiAyLjdMMTIwLjkgNDIuNmMtMS4xLS41LTIuNC0uNy0zLjctLjZzLTIuNSAuNS0zLjUgMS4yLTEuOSAxLjctMi41IDIuOC0uOCAyLjQtLjggMy42bC45IDI1LjhjLTEuNSAxLjItMyAyLjQtNC40IDMuNkw4MS44IDczYy0xLjItLjMtMi41LS4zLTMuNyAuMXMtMi4zIDEtMy4yIDEuOS0xLjUgMi0xLjkgMy4yLS40IDIuNS0uMSAzLjdMNzguOSAxMDdjLTEuMiAxLjQtMi40IDIuOS0zLjYgNC40bC0yNS44LS45Yy0xLjMgMC0yLjUgLjItMy42IC44cy0yLjEgMS40LTIuOCAyLjQtMS4xIDIuMi0xLjIgMy41IC4xIDIuNSAuNiAzLjZsMTAuNyAyMy40Yy0uOSAxLjctMS44IDMuNC0yLjcgNS4ybC0yNS40IDQuMWMtMS4yIC4yLTIuNCAuNy0zLjQgMS41cy0xLjcgMS44LTIuMiAyLjktLjcgMi40LS41IDMuNyAuNiAyLjQgMS4zIDMuNGwxNSAyMC44Yy0uNiAxLjktMS4xIDMuOC0xLjcgNS43bC0yNCA5Yy0xLjIgLjQtMi4yIDEuMi0zIDIuMXMtMS40IDIuMS0xLjYgMy4zLS4yIDIuNSAuMiAzLjcgMS4xIDIuMyAyIDMuMWwxOC43IDE3LjVjLS4yIDItLjQgMy45LS42IDUuOUwzLjUgMjQ5LjhjLTEuMSAuNy0xLjkgMS42LTIuNiAyLjdzLS45IDIuMy0uOSAzLjYgLjMgMi41IC45IDMuNiAxLjUgMiAyLjYgMi43bDIxLjggMTMuNWMuMiAyIC4zIDMuOSAuNiA1LjlMNy4xIDI5OS4xYy0uOSAuOS0xLjYgMS45LTIgMy4xcy0uNSAyLjUtLjIgMy43IC44IDIuNCAxLjYgMy4zIDEuOCAxLjcgMyAyLjFsMjQgOWMuNiAxLjkgMS4xIDMuOCAxLjcgNS42bC0xNSAyMC44Yy0uNyAxLTEuMiAyLjItMS4zIDMuNHMwIDIuNSAuNSAzLjcgMS4yIDIuMiAyLjIgMi45IDIuMSAxLjMgMy40IDEuNWwyNS40IDQuMmMuOSAxLjcgMS44IDMuNCAyLjcgNS4xTDQyLjYgMzkxLjFjLS41IDEuMS0uNyAyLjQtLjYgMy42cy41IDIuNSAxLjIgMy41Yy43IDEuMSAxLjYgMS45IDIuNyAyLjVzMi40IC44IDMuNiAuOGwyNS44LS45YzEuMiAxLjUgMi40IDIuOSAzLjYgNC40TDczIDQzMC4yYy0uMyAxLjItLjMgMi41IC4xIDMuN3MxIDIuMyAxLjkgMy4yIDIgMS41IDMuMiAxLjkgMi41IC40IDMuNyAuMWwyNS4yLTUuOWMxLjUgMS4yIDIuOSAyLjQgNC40IDMuNmwtLjkgMjUuOGMwIDEuMyAuMiAyLjUgLjggMy42czEuNCAyLjEgMi41IDIuOCAyLjIgMS4xIDMuNSAxLjIgMi41LS4xIDMuNi0uNmwyMy40LTEwLjdjMS43IC45IDMuNCAxLjggNS4xIDIuN2w0LjIgMjUuNGMuMiAxLjIgLjcgMi40IDEuNSAzLjRzMS44IDEuOCAyLjkgMi4yIDIuNCAuNyAzLjcgLjUgMi40LS42IDMuNC0xLjNsMjAuOC0xNWMxLjkgLjYgMy44IDEuMSA1LjYgMS43bDkgMjRjLjQgMS4yIDEuMiAyLjIgMi4xIDNzMi4xIDEuNCAzLjMgMS42IDIuNSAuMiAzLjctLjIgMi4zLTEuMSAzLjEtMmwxNy41LTE4LjdjMiAuMiAzLjkgLjQgNS45IC42bDEzLjUgMjEuOGMuNyAxLjEgMS42IDEuOSAyLjcgMi42czIuMyAuOSAzLjYgLjkgMi41LS4zIDMuNi0uOSAyLTEuNSAyLjctMi42bDEzLjUtMjEuOGMyLS4yIDMuOS0uMyA1LjktLjZsMTcuNSAxOC43Yy45IC45IDEuOSAxLjYgMy4xIDJzMi41IC41IDMuNyAuMiAyLjQtLjggMy4zLTEuNiAxLjctMS44IDIuMS0zbDktMjRjMS45LS42IDMuOC0xLjEgNS42LTEuN2wyMC44IDE1YzEgLjcgMi4yIDEuMiAzLjQgMS4zczIuNSAwIDMuNy0uNSAyLjItMS4yIDIuOS0yLjIgMS4zLTIuMSAxLjUtMy40bDQuMi0yNS40YzEuNy0uOSAzLjQtMS44IDUuMS0yLjdsMjMuNCAxMC43YzEuMSAuNSAyLjQgLjcgMy42IC42czIuNC0uNSAzLjUtMS4yIDEuOS0xLjYgMi41LTIuOCAuOC0yLjQgLjgtMy42bC0uOS0yNS44YzEuNS0xLjIgMi45LTIuNCA0LjQtMy42bDI1LjIgNS45YzEuMiAuMyAyLjUgLjMgMy43LS4xczIuMy0xIDMuMi0xLjkgMS41LTIgMS45LTMuMiAuNC0yLjUgLjEtMy43TDQzMy4xIDQwNWMxLjItMS40IDIuNC0yLjkgMy42LTQuNGwyNS44IC45YzEuMyAuMSAyLjUtLjIgMy42LS44czIuMS0xLjQgMi44LTIuNWMuNy0xIDEuMS0yLjIgMS4yLTMuNXMtLjEtMi41LS42LTMuNmwtMTAuNy0yMy40Yy45LTEuNyAxLjgtMy40IDIuNy01LjFsMjUuNC00LjJjMS4yLS4yIDIuNC0uNyAzLjQtMS41czEuOC0xLjggMi4yLTIuOSAuNy0yLjQgLjUtMy43LS42LTIuNC0xLjMtMy40bC0xNS0yMC44Yy42LTEuOSAxLjEtMy44IDEuNy01LjZsMjQtOWMxLjItLjQgMi4yLTEuMiAzLTIuMXMxLjQtMi4xIDEuNi0zLjMgLjItMi41LS4yLTMuNy0xLjEtMi4zLTItMy4xbC0xOC43LTE3LjVjLjItMS45IC40LTMuOSAuNi01LjlsMjEuOC0xMy41YzEuMS0uNyAxLjktMS42IDIuNi0yLjdzLjktMi4zIC45LTMuNi0uMy0yLjUtLjktMy42LTEuNS0yLTIuNi0yLjdsMCAwem0tMTUxIDEyOS4xYy0zLjYtLjgtNy40LS4xLTEwLjUgMS45cy01LjMgNS4yLTYgOC44bC03LjYgMzUuN2MtMjQuNiAxMS4xLTUxLjMgMTYuOC03OC4zIDE2LjdzLTUzLjYtNi4xLTc4LjEtMTcuNGwtNy42LTM1LjdjLS40LTEuOC0xLjEtMy41LTIuMS01cy0yLjQtMi44LTMuOS0zLjgtMy4yLTEuNy01LTItMy42LS4zLTUuNCAuMWwtMzEuNSA2LjhjLTUuOC02LTExLjMtMTIuNS0xNi4zLTE5LjJsMTUzLjIgMGMxLjcgMCAyLjktLjMgMi45LTEuOWwwLTU0LjJjMC0xLjYtMS4yLTEuOS0yLjktMS45bC00NC44IDAgMC0zNC40IDQ4LjUgMGM0LjQgMCAyMy43IDEuMyAyOS44IDI1LjkgMS45IDcuNSA2LjIgMzIuMSA5LjEgNDAgMi45IDguOCAxNC42IDI2LjUgMjcuMSAyNi41bDc5IDBjLTUuMyA3LjEtMTEuMSAxMy44LTE3LjMgMjAuMWwtMzIuMS02Ljl6bTI1LjggMzQuNWMwIDMtLjkgNi0yLjYgOC41cy00IDQuNS02LjggNS42LTUuOCAxLjUtOC44IC45LTUuNy0yLTcuOC00LjItMy42LTQuOC00LjItNy44LS4zLTYgLjgtOC44IDMuMS01LjIgNS42LTYuOSA1LjQtMi42IDguNS0yLjZsLjQgMGM0IC4xIDcuNyAxLjggMTAuNSA0LjZzNC4zIDYuNyA0LjMgMTAuNmwuMSAwem0tMjI1LjYtLjdjMCAzLS45IDYtMi42IDguNXMtNC4xIDQuNS02LjggNS42LTUuOCAxLjUtOC44IC45LTUuNy0yLTcuOC00LjItMy42LTQuOC00LjItNy44LS4zLTYgLjktOC44IDMuMS01LjIgNS42LTYuOCA1LjQtMi42IDguNS0yLjZsLjUgMGM0IC4xIDcuNyAxLjggMTAuNSA0LjZzNC4zIDYuNyA0LjMgMTAuNmwuMSAwek02OS42IDIzNC4ybDMyLjgtMTQuNmMxLjctLjcgMy4yLTEuOCA0LjQtMy4xczIuMi0yLjkgMi45LTQuNiAxLTMuNSAuOS01LjMtLjUtMy42LTEuMi01LjNsLTYuOC0xNS4yIDI2LjYgMCAwIDExOS43LTUzLjYgMGMtNi42LTIzLjItOC43LTQ3LjYtNi4xLTcxLjZ6TTU4LjMgMTk4LjFjMC0yIC40LTQgMS4yLTUuOHMxLjktMy41IDMuMy00LjkgMy4xLTIuNSA0LjktMy4zIDMuOC0xLjIgNS44LTEuMmwuNSAwYzMgLjEgNS45IDEgOC4zIDIuOHM0LjMgNC4xIDUuNCA2LjkgMS4zIDUuOCAuNyA4LjgtMi4xIDUuNi00LjMgNy43LTQuOSAzLjUtNy44IDQuMS02IC4yLTguNy0uOS01LjEtMy4xLTYuOC01LjYtMi41LTUuNC0yLjUtOC40bDAgMHptMTU1LjIgMjQuNWwwLTM1LjMgNjMuMyAwYzMuMyAwIDIzLjEgMy44IDIzLjEgMTguNiAwIDEyLjMtMTUuMiAxNi43LTI3LjcgMTYuN2wtNTguNyAwek0zOTkgMzA2LjdjLTkuOCAxLjEtMjAuNi00LjEtMjItMTAuMS01LjgtMzIuNS0xNS40LTM5LjQtMzAuNi01MS40IDE4LjktMTIgMzguNS0yOS42IDM4LjUtNTMuMyAwLTI1LjUtMTcuNS00MS42LTI5LjQtNDkuNS0xNi44LTExLTM1LjMtMTMuMi00MC4zLTEzLjJsLTE5OC45IDBjMjcuNS0zMC43IDY0LjQtNTEuNSAxMDQuOS01OS4ybDIzLjUgMjQuNmMxLjMgMS4zIDIuOCAyLjQgNC40IDMuMXMzLjUgMS4xIDUuMyAxLjIgMy42LS4zIDUuMy0uOSAzLjItMS43IDQuNi0yLjlsMjYuMy0yNWMyNi44IDUgNTIuMSAxNS44IDc0LjMgMzEuNnM0MC42IDM2LjIgNTQuMSA1OS45bC0xOCA0MC42Yy0xLjUgMy40LTEuNSA3LjItLjIgMTAuNnMzLjkgNi4yIDcuMyA3LjdsMzQuNiAxNS4zYzEuMSAxMC44IDEuMiAyMS43IC40IDMyLjVsLTE5LjMgMGMtMS45IDAtMi43IDEuMy0yLjcgMy4xbDAgOC44YzAgMjAuOC0xMS43IDI1LjMtMjIgMjYuNXpNMjQwIDYwLjJjMC00IDEuNi03LjkgNC41LTEwLjdzNi43LTQuNSAxMC43LTQuNWwuNCAwYzMgLjEgNS45IDEgOC40IDIuOHM0LjMgNC4xIDUuNCA2LjkgMS4zIDUuOCAuNyA4LjgtMi4xIDUuNi00LjMgNy43LTQuOSAzLjUtNy44IDQtNiAuMi04LjctLjktNS4xLTMuMS02LjgtNS42LTIuNS01LjQtMi41LTguNHpNNDM2LjggMjE0Yy0yIDAtNC0uNC01LjgtMS4ycy0zLjUtMS45LTQuOS0zLjMtMi41LTMuMS0zLjMtNC45LTEuMi0zLjgtMS4yLTUuOCAuNC00IDEuMi01LjggMS45LTMuNSAzLjMtNC45IDMuMS0yLjUgNC45LTMuMyAzLjgtMS4yIDUuOC0xLjJsLjQgMGM0IC4xIDcuOSAxLjcgMTAuNyA0LjZzNC40IDYuOCA0LjMgMTAuOC0xLjcgNy45LTQuNiAxMC43LTYuOCA0LjQtMTAuOCA0LjN6Il19LGs0dD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJob3JuYmlsbCIsaWNvbjpbNTEyLDUxMixbXSwiZjU5MiIsIk03Ni44IDM3MC4zYzEgNy44LS40IDE1LjgtNC4xIDIyLjhzLTkuNiAxMi42LTE2LjcgMTYuMS0xNS4xIDQuNy0yMi45IDMuMy0xNS01LjEtMjAuNi0xMC43LTkuMi0xMi45LTEwLjUtMjAuNyAwLTE1LjggMy42LTIyLjkgOS4zLTEyLjggMTYuMy0xNi41IDE1LTUgMjIuOS0zLjljLTc4LjMtMTExLjMgNTItMTkwLjUgNTItMTkwLjUtNS45IDQzLTguMiA5MS4yLTguMiA5MS4yLTY3LjMgNDEuNSAuOSA2NC4xIDM5LjggNzIuOSA5LjkgMjcgMjcuOCA1MC4yIDUxLjQgNjYuN3M1MS42IDI1LjMgODAuMyAyNS4zYzEuOSAwIDMuOC0uMiA1LjctLjNsLjEgMTguOWMtOTkuMiAxLjQtMTU4LjctMjkuMS0xODguOS01MS42em0xMDgtMzI3LjdjLjktNy4yLS4yLTE0LjYtMy40LTIxLjItMy02LjItNy42LTExLjUtMTMuNC0xNS4zcy0xMi41LTUuOS0xOS40LTYuMi0xMy44IDEuNC0xOS44IDQuNy0xMS4xIDguMy0xNC41IDE0LjMtNS4yIDEyLjgtNSAxOS43IDIuMiAxMy43IDUuOSAxOS41IDguOSAxMC42IDE1LjEgMTMuNiAxMy4xIDQuNCAyMCAzLjljLTIyLjYgMjkuOS01My44IDg5LjYtNTIuNCAxOTBsMjEuOC0uMmMwLS45LS4xLTEuOC0uMS0yLjcgMC0yOCA4LjQtNTUuMyAyNC4xLTc4LjVzMzcuOS00MS4yIDYzLjgtNTEuNmM4LTM3LjcgMzAuNy0xMTQuMyA3My44LTQ0LjMgMCAwIDQ4LjEgMi40IDkxLjIgOC4yIDAgMC03Ny44LTEyOC0xODcuNi01NC4xbDAgMHpNNDg5IDE3Ni44YzYuMy0zIDExLjctNy43IDE1LjUtMTMuNnM1LjktMTIuNyA2LjEtMTkuOC0xLjYtMTQtNS4yLTIwLTguNy0xMS0xNC45LTE0LjMtMTMuMi00LjgtMjAuMi00LjQtMTMuOCAyLjgtMTkuNSA2LjktMTAuMiA5LjYtMTMgMTYuMS0zLjcgMTMuNi0yLjcgMjAuNWMtMzEuNy0yMS45LTg5LjgtNDkuMS0xODMuNC00Ny43bC4xIDIyLjVjMi43LS4yIDUuNC0uNCA4LjEtLjQgMjguMSAwIDU1LjYgOC41IDc4LjkgMjQuM3M0MS4yIDM4LjMgNTEuNiA2NC41YzM5LjEgOSAxMDUuMSAzMS42IDM4LjUgNzIuNSAwIDAtMi4zIDQ4LjEtOC4yIDkxLjIgMCAwIDEzMy40LTgxLjIgNDktMTk0LjYgNi42IC42IDEzLjMtLjYgMTkuMy0zLjVsMCAwek0zNzQuNCA0MzYuMmMyMS40LTMyLjUgNDYuNC04OS43IDQ1LjEtMTc5LjdsLTE5LjUgLjFjLjEgMi4xIC4zIDQuMSAuMyA2LjIgMCAyOC42LTguOCA1Ni41LTI1LjEgODBzLTM5LjUgNDEuNC02Ni4zIDUxLjRjLTguOSAzOS0zMS40IDEwNi43LTcyLjggMzkuNSAwIDAtNDguMS0yLjMtOTEuMi04LjIgMCAwIDc5LjkgMTMxLjMgMTkxLjkgNTEgLjMgNC45IDEuNSA5LjYgMy42IDE0IDIuOSA2LjEgNy41IDExLjQgMTMuMSAxNS4xczEyLjIgNiAxOSA2LjQgMTMuNi0xLjEgMTkuNi00LjIgMTEuMS03LjggMTQuNy0xMy42IDUuNi0xMi40IDUuNy0xOS4yLTEuNS0xMy41LTQuOC0xOS40LTguMi0xMC45LTE0LjEtMTQuMy0xMi42LTUuMi0xOS40LTUuMWwwLS4xeiJdfSxTNHQ9e3ByZWZpeDoiZmFiIixpY29uTmFtZToicGhwIixpY29uOls2NDAsNTEyLFtdLCJmNDU3IiwiTTMyMCAxMDQuNWMxNzEuNCAwIDMwMy4yIDcyLjIgMzAzLjIgMTUxLjVTNDkxLjMgNDA3LjUgMzIwIDQwNy41QzE0OC42IDQwNy41IDE2LjggMzM1LjMgMTYuOCAyNTZTMTQ4LjcgMTA0LjUgMzIwIDEwNC41em0wLTE2LjhDMTQzLjMgODcuNyAwIDE2MyAwIDI1NlMxNDMuMyA0MjQuMyAzMjAgNDI0LjMgNjQwIDM0OSA2NDAgMjU2IDQ5Ni43IDg3LjcgMzIwIDg3Ljd6TTIxOC4yIDI0Mi41Yy03LjkgNDAuNS0zNS44IDM2LjMtNzAuMSAzNi4zbDEzLjctNzAuNmMzOCAwIDYzLjgtNC4xIDU2LjQgMzQuM3pNOTcuNCAzNTAuM2wzNi43IDAgOC43LTQ0LjhjNDEuMSAwIDY2LjYgMyA5MC4yLTE5LjEgMjYuMS0yNCAzMi45LTY2LjcgMTQuMy04OC4xLTkuNy0xMS4yLTI1LjMtMTYuNy00Ni41LTE2LjdsLTcwLjcgMC0zMi43IDE2OC43ek0yODMuMSAxMzYuN2wzNi41IDAtOC43IDQ0LjhjMzEuNSAwIDYwLjctMi4zIDc0LjggMTAuNyAxNC44IDEzLjYgNy43IDMxLTguMyAxMTMuMWwtMzcgMGMxNS40LTc5LjQgMTguMy04NiAxMi43LTkyLTUuNC01LjgtMTcuNy00LjYtNDcuNC00LjZsLTE4LjggOTYuNi0zNi41IDAgMzIuNy0xNjguNnpNNTA1IDI0Mi41Yy04IDQxLjEtMzYuNyAzNi4zLTcwLjEgMzYuM2wxMy43LTcwLjZjMzguMiAwIDYzLjgtNC4xIDU2LjQgMzQuM3pNMzg0LjIgMzUwLjNsMzYuOCAwIDguNy00NC44YzQzLjIgMCA2Ny4xIDIuNSA5MC4yLTE5LjEgMjYuMS0yNCAzMi45LTY2LjcgMTQuMy04OC4xLTkuNy0xMS4yLTI1LjMtMTYuNy00Ni41LTE2LjdsLTcwLjcgMC0zMi44IDE2OC43eiJdfSx6NHQ9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiZGlzcXVzIixpY29uOls1NzYsNTEyLFtdLCJlN2Q1IiwiTTI5MC4yIDUxMmMtNjIuNiAwLTExOS45LTIyLjktMTY0LjItNjAuOEwxNyA0NjYuMSA1OS4xIDM2Mi4yYy0xNC43LTMyLjQtMjIuOS02OC4zLTIyLjktMTA2LjIgMC0xNDEuNCAxMTMuNy0yNTYgMjU0LTI1NiAxNDAuMyAwIDI1NCAxMTQuNiAyNTQgMjU2IDAgMTQxLjQtMTEzLjcgMjU2LTI1NCAyNTZ6TTQyOC45IDI1NS4zbDAtLjdDNDI4LjkgMTgwLjcgMzc2LjggMTI4IDI4NyAxMjhsLTk3IDAgMCAyNTYgOTUuNiAwYzkwLjUgMCAxNDMuNC01NC45IDE0My40LTEyOC43ek0yODggMzIxLjFsLTI4LjQgMCAwLTEzMC4yIDI4LjQgMGM0MS43IDAgNjkuMyAyMy44IDY5LjMgNjQuN2wwIC43YzAgNDEuMy0yNy43IDY0LjctNjkuMyA2NC43eiJdfSxDNHQ9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiNTAwcHgiLGljb246WzM4NCw1MTIsW10sImYyNmUiLCJNNzEuOCAzNDQuM2MtNi41LTE0LjItNi45LTE4LjMgNy40LTIzLjEgMjUuNi04IDggOS4yIDQzLjIgNDkuMmwuMyAwIDAtOTMuOWMxLjItNTAuMiA0NC05Mi4yIDk3LjctOTIuMiA1My45IDAgOTcuNyA0My41IDk3LjcgOTYuOCAwIDYzLjQtNjAuOCAxMTMuMi0xMjguNSA5My4zLTEwLjUtNC4yLTIuMS0zMS43IDguNS0yOC42IDUzIDAgODkuNC0xMC4xIDg5LjQtNjQuNCAwLTYxLTc3LjEtODkuNi0xMTYuOS00NC42LTIzLjUgMjYuNC0xNy42IDQyLjEtMTcuNiAxNTcuNiA1MC43IDMxIDExOC4zIDIyIDE2MC40LTIwLjEgMjQuOC0yNC44IDM4LjUtNTggMzguNS05MyAwLTM1LjItMTMuOC02OC4yLTM4LjgtOTMuMy0yNC44LTI0LjgtNTcuOC0zOC41LTkzLjMtMzguNVMxNTEgMTYzLjMgMTI2LjMgMTg4Yy0uMyAuMy0xNiAxNi41LTIxLjIgMjMuOWwtLjUgLjZjLTMuMyA0LjctNi4zIDkuMS0yMC4xIDYuMS02LjktMS43LTE0LjMtNS44LTE0LjMtMTEuOEw3MC4yIDIwYzAtNSAzLjktMTAuNSAxMC41LTEwLjVMMzIyIDkuNWM4LjMgMCA4LjMgMTEuNiA4LjMgMTUuMSAwIDMuOSAwIDE1LjEtOC4zIDE1LjFsLTIyMy4yIDAgMCAxMzIuOSAuMyAwYzEwNC4yLTEwOS44IDI4Mi44LTM2IDI4Mi44IDEwOC45IDAgMTc4LjEtMjQ0LjggMjIwLjMtMzEwLjEgNjIuOHpNMTM1LjEgODMuNWMtLjUgNC4yIDQuNiAyNC41IDE0LjYgMjAuNiAxMjQuOC00Ny41IDIwMi44IDQwLjQgMjA5LjQgNDAuNCA0LjggMCAyMi44LTE1LjMgMTQuMy0yMi44LTkzLjItODktMjM0LjUtNTctMjM4LjMtMzguMnpNMzYxLjUgNDE0LjdjLTExMCAxMDkuOS0yOTkgNjAuOC0zMzItMTA0LjIgMC0xMi4yLTMwLjQtNy40LTI4LjkgMy4zIDI0IDE3My40IDI0NiAyNTYuOSAzODEuNiAxMjEuMyA2LjktNy44LTEyLjYtMjguNC0yMC43LTIwLjR6TTE4Mi4xIDMwNi42YzAgNCA0LjMgNy4zIDUuNSA4LjUgMyAzIDYuMSA0LjQgOC41IDQuNCAzLjggMCAyLjYgLjIgMjIuMy0xOS41IDE5LjYgMTkuMyAxOS4xIDE5LjUgMjIuMyAxOS41IDUuNCAwIDE4LjUtMTAuNCAxMC43LTE4LjJsLTE3LjMtMTcuMyAxOC4yLTE4LjJjNi4zLTYuOC0xMC4xLTIxLjgtMTYuMi0xNS43TDIxOC4yIDI2OGMtMTguNi0xOC44LTE4LjQtMTkuNS0yMS41LTE5LjUtNSAwLTE4IDExLjctMTIuNCAxNy4zTDIwMi41IDI4NGMtMTguMSAxNy45LTIwLjQgMTkuMi0yMC40IDIyLjZ6Il19LFQ0dD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJhZmZpbGlhdGV0aGVtZSIsaWNvbjpbNTEyLDUxMixbXSwiZjM2YiIsIk0xNTkuNyAyMzcuNEMxMDguNCAzMDguMyA0My4xIDM0OC4yIDE0IDMyNi42LTE1LjIgMzA0LjkgMi44IDIzMCA1NC4yIDE1OS4xIDEwNS41IDg4LjIgMTcwLjggNDguMyAxOTkuOSA2OS45czExLjEgOTYuNi00MC4yIDE2Ny41em0zNTEuMi01Ny4zYy03My44IDEyMy40LTE5MS45IDE4Ny43LTI2NC41IDE0My42LTI1LTE1LjItNDEuMy00MS4yLTQ5LTczLjgtMzMuNiA2NC44LTkyLjggMTEzLjgtMTY0LjEgMTMzLjIgNDkuOCA1OS4zIDEyNC4xIDk2LjkgMjA3IDk2LjkgMTUwIDAgMjcxLjYtMTIzLjEgMjcxLjYtMjc0LjkgLjEtOC41LS4zLTE2LjgtMS0yNXoiXX0sXzR0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6InJlZC1yaXZlciIsaWNvbjpbNDQ4LDUxMixbXSwiZjNlMyIsIk0zNTMuMiAzMkw5NC44IDMyQzQyLjQgMzIgMCA3NC40IDAgMTI2LjhMMCAzODUuMkMwIDQzNy42IDQyLjQgNDgwIDk0LjggNDgwbDI1OC40IDBjNTIuNCAwIDk0LjgtNDIuNCA5NC44LTk0LjhsMC0yNTguNEM0NDggNzQuNCA0MDUuNiAzMiAzNTMuMiAzMnpNMTQ0LjkgMjAwLjlsMCA1Ni4zYzAgMjctMjEuOSA0OC45LTQ4LjkgNDguOWwwLTE1NC4yYzAtMTMuMiAxMC43LTIzLjkgMjMuOS0yMy45bDE1NC4yIDBjMCAyNy0yMS45IDQ4LjktNDguOSA0OC45bC01Ni4zIDBjLTEyLjMtLjYtMjQuNiAxMS42LTI0IDI0em0xNzYuMyA3MmwtNTYuMyAwYy0xMi4zLS42LTI0LjYgMTEuNi0yNCAyNGwwIDU2LjNjMCAyNy0yMS45IDQ4LjktNDguOSA0OC45bDAtMTU0LjJjMC0xMy4yIDEwLjctMjMuOSAyMy45LTIzLjlsMTU0LjIgMGMwIDI3LTIxLjkgNDguOS00OC45IDQ4Ljl6Il19LEJBPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6InR3aXR0ZXIiLGljb246WzUxMiw1MTIsW10sImYwOTkiLCJNNDU5LjQgMTUxLjdjLjMgNC41IC4zIDkuMSAuMyAxMy42IDAgMTM4LjctMTA1LjYgMjk4LjYtMjk4LjYgMjk4LjYtNTkuNSAwLTExNC43LTE3LjItMTYxLjEtNDcuMSA4LjQgMSAxNi42IDEuMyAyNS4zIDEuMyA0OS4xIDAgOTQuMi0xNi42IDEzMC4zLTQ0LjgtNDYuMS0xLTg0LjgtMzEuMi05OC4xLTcyLjggNi41IDEgMTMgMS42IDE5LjggMS42IDkuNCAwIDE4LjgtMS4zIDI3LjYtMy42LTQ4LjEtOS43LTg0LjEtNTItODQuMS0xMDNsMC0xLjNjMTQgNy44IDMwLjIgMTIuNyA0Ny40IDEzLjMtMjguMy0xOC44LTQ2LjgtNTEtNDYuOC04Ny40IDAtMTkuNSA1LjItMzcuNCAxNC4zLTUzIDUxLjcgNjMuNyAxMjkuMyAxMDUuMyAyMTYuNCAxMDkuOC0xLjYtNy44LTIuNi0xNS45LTIuNi0yNCAwLTU3LjggNDYuOC0xMDQuOSAxMDQuOS0xMDQuOSAzMC4yIDAgNTcuNSAxMi43IDc2LjcgMzMuMSAyMy43LTQuNSA0Ni41LTEzLjMgNjYuNi0yNS4zLTcuOCAyNC40LTI0LjQgNDQuOC00Ni4xIDU3LjggMjEuMS0yLjMgNDEuNi04LjEgNjAuNC0xNi4yLTE0LjMgMjAuOC0zMi4yIDM5LjMtNTIuNiA1NC4zeiJdfSxMNHQ9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiZm9ydC1hd2Vzb21lIixpY29uOls1MTIsNTEyLFtdLCJmMjg2IiwiTTQ4OS41IDI4Ny45bC0yNy40IDBjLTIuNiAwLTQuNiAyLTQuNiA0LjZsMCAzMi0zNi42IDAgMC0xNzguM2MwLTIuNi0yLTQuNi00LjYtNC42bC0yNy40IDBjLTIuNiAwLTQuNiAyLTQuNiA0LjZsMCAzMi0zNi42IDAgMC0zMmMwLTIuNi0yLTQuNi00LjYtNC42bC0yNy40IDBjLTIuNiAwLTQuNiAyLTQuNiA0LjZsMCAzMi0zNi42IDAgMC0zMmMwLTYtOC00LjYtMTEuNy00LjZsMC0zOGM4LjMtMiAxNy4xLTMuNCAyNS43LTMuNCAxMC45IDAgMjAuOSA0LjMgMzEuNCA0LjMgNC42IDAgMjcuNy0xLjEgMjcuNy04bDAtNjBjMC0yLjYtMi00LjYtNC42LTQuNi01LjEgMC0xNS4xIDQuMy0yNCA0LjMtOS43IDAtMjAuOS00LjMtMzIuNi00LjMtOCAwLTE2IDEuMS0yMy43IDIuOWwwLTQuOWM1LjQtMi42IDkuMS04LjMgOS4xLTE0LjMgMC0yMC43LTMxLjQtMjAuOC0zMS40IDAgMCA2IDMuNyAxMS43IDkuMSAxNC4zbDAgMTExLjdjLTMuNyAwLTExLjctMS40LTExLjcgNC42bDAgMzItMzYuNiAwIDAtMzJjMC0yLjYtMi00LjYtNC42LTQuNmwtMjcuNCAwYy0yLjYgMC00LjYgMi00LjYgNC42bDAgMzItMzYuMyAwIDAtMzJjMC0yLjYtMi00LjYtNC42LTQuNmwtMjcuNCAwYy0yLjYgMC00LjYgMi00LjYgNC42bDAgMTc4LjMtMzYuNiAwIDAtMzJjMC0yLjYtMi00LjYtNC42LTQuNmwtMjcuNCAwYy0yLjYgMC00LjYgMi00LjYgNC42bDAgMjE5LjUgMTgyLjkgMCAwLTk2YzAtNzIuNiAxMDkuNy03Mi42IDEwOS43IDBsMCA5NiAxODIuOSAwIDAtMjE5LjVjLjEtMi42LTEuOS00LjYtNC41LTQuNnptLTI4OC4xLTQuNWMwIDIuNi0yIDQuNi00LjYgNC42bC0yNy40IDBjLTIuNiAwLTQuNi0yLTQuNi00LjZsMC02NGMwLTIuNiAyLTQuNiA0LjYtNC42bDI3LjQgMGMyLjYgMCA0LjYgMiA0LjYgNC42bDAgNjR6bTE0Ni40IDBjMCAyLjYtMiA0LjYtNC42IDQuNmwtMjcuNCAwYy0yLjYgMC00LjYtMi00LjYtNC42bDAtNjRjMC0yLjYgMi00LjYgNC42LTQuNmwyNy40IDBjMi42IDAgNC42IDIgNC42IDQuNmwwIDY0eiJdfSxBNHQ9e3ByZWZpeDoiZmFiIixpY29uTmFtZToibWl4ZXIiLGljb246WzQ0OCw1MTIsW10sImUwNTYiLCJNODIuNiA3Ni4xYy0zLjgtNS4xLTguNy05LjQtMTQuMi0xMi41cy0xMS43LTUuMS0xOC4xLTUuNy0xMi44IC4xLTE4LjggMi4yLTExLjYgNS4zLTE2LjMgOS42Yy0xNy42IDE2LjItMTkgNDMuNS00LjggNjIuOGw5MS44IDEyMy05Mi4zIDEyNC4xYy0xNC4yIDE5LjMtMTMuMSA0Ni42IDQuNyA2Mi44IDQuNyA0LjMgMTAuMyA3LjYgMTYuMyA5LjZzMTIuNSAyLjggMTguOCAyLjIgMTIuNS0yLjUgMTguMS01LjcgMTAuNC03LjQgMTQuMi0xMi41TDIxMC45IDI2Mi43YzEuNS0yLjEgMi4zLTQuNiAyLjMtNy4xcy0uOC01LTIuMy03LjFMODIuNiA3Ni4xek00MzguMiAzNzkuNmwtOTIuMy0xMjQuMSA5MS44LTEyM2MxNC4yLTE5LjIgMTIuOC00Ni42LTQuNy02Mi44LTQuNy00LjMtMTAuMy03LjYtMTYuMy05LjZzLTEyLjUtMi44LTE4LjgtMi4yLTEyLjUgMi41LTE4LjEgNS43LTEwLjQgNy40LTE0LjIgMTIuNWwtMTI4IDE3Mi4xYy0xLjUgMi4xLTIuMyA0LjYtMi4zIDcuMXMuOCA1IDIuMyA3LjFMMzY2IDQzNS45YzMuOCA1LjEgOC43IDkuNCAxNC4yIDEyLjVzMTEuNyA1LjEgMTguMSA1LjcgMTIuOC0uMSAxOC44LTIuMiAxMS42LTUuMyAxNi4zLTkuNmMxNy44LTE2LjIgMTktNDMuNSA0LjctNjIuOHoiXX0sRDR0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6Imx5ZnQiLGljb246WzUxMiw1MTIsW10sImYzYzMiLCJNMCA4MS4xbDc3LjggMCAwIDIwOC43YzAgMzMuMSAxNSA1Mi44IDI3LjIgNjEtMTIuNyAxMS4xLTUxLjIgMjAuOS04MC4yLTIuOC0xNy0xNC0yNC44LTM3LjMtMjQuOC01OUwwIDgxLjF6TTQ4NS45IDI1NC42bDAtMjIgMjMuOCAwIDAtNzYuOC0yNi4xIDBjLTEwLjEtNDYuMy01MS4yLTgwLjctMTAwLjMtODAuNy01Ni42IDAtMTAyLjcgNDYtMTAyLjcgMTAyLjdsMCAxNzkuMmMxNiAyLjMgMzUuNC0uMyA1MS43LTE0IDE3LjEtMTQgMjQuOC0zNy4yIDI0LjgtNTlsMC02LjcgMzguOCAwIDAtNzYuOC0zOC44IDAgMC0yMy4zYzAtMzQuNiA1Mi4yLTM0LjYgNTIuMiAwbDAgNzcuMWMwIDU2LjYgNDYgMTAyLjcgMTAyLjcgMTAyLjdsMC03Ni41Yy0xNC41IDAtMjYuMS0xMS43LTI2LjEtMjUuOXptLTI5NC4zLTk5bDAgMTEzYzAgMTUuNC0yMy44IDE1LjQtMjMuOCAwbDAtMTEzLTc2LjggMCAwIDEzMi43YzAgMjMuOCA4IDU0IDQ1IDYzLjkgMzcgOS44IDU4LjItMTAuNiA1OC4yLTEwLjYtMi4xIDEzLjQtMTQuNSAyMy4zLTM0LjkgMjUuMy0xNS41IDEuNi0zNS4yLTMuNi00NS03LjhsMCA3MC4zYzI1LjEgNy41IDUxLjUgOS44IDc3LjYgNC43IDQ3LjEtOS4xIDc2LjgtNDguNCA3Ni44LTEwMC44bDAtMTc4LjItNzcuMSAwIDAgLjV6Il19LEU0dD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJhcHBsZS1wYXkiLGljb246WzY0MCw1MTIsW10sImY0MTUiLCJNMTE2LjkgMTU4LjVjLTcuNSA4LjktMTkuNSAxNS45LTMxLjUgMTQuOS0xLjUtMTIgNC40LTI0LjggMTEuMy0zMi42IDcuNS05LjEgMjAuNi0xNS42IDMxLjMtMTYuMSAxLjIgMTIuNC0zLjcgMjQuNy0xMS4xIDMzLjh6bTEwLjkgMTcuMmMtMTcuNC0xLTMyLjMgOS45LTQwLjUgOS45LTguNCAwLTIxLTkuNC0zNC44LTkuMS0xNy45IC4zLTM0LjUgMTAuNC00My42IDI2LjUtMTguOCAzMi4zLTQuOSA4MCAxMy4zIDEwNi4zIDguOSAxMyAxOS41IDI3LjMgMzMuNSAyNi44IDEzLjMtLjUgMTguNS04LjYgMzQuNS04LjYgMTYuMSAwIDIwLjggOC42IDM0LjggOC40IDE0LjUtLjMgMjMuNi0xMyAzMi41LTI2IDEwLjEtMTQuOCAxNC4zLTI5LjEgMTQuNS0yOS45LS4zLS4zLTI4LTEwLjktMjguMy00Mi45LS4zLTI2LjggMjEuOS0zOS41IDIyLjktNDAuMy0xMi41LTE4LjYtMzItMjAuNi0zOC44LTIxLjF6bTEwMC40LTM2LjJsMCAxOTQuOSAzMC4zIDAgMC02Ni42IDQxLjkgMGMzOC4zIDAgNjUuMS0yNi4zIDY1LjEtNjQuM3MtMjYuNC02NC02NC4xLTY0bC03My4yIDB6TTI1OC41IDE2NWwzNC45IDBjMjYuMyAwIDQxLjMgMTQgNDEuMyAzOC42cy0xNSAzOC44LTQxLjQgMzguOGwtMzQuOCAwIDAtNzcuNHpNNDIwLjcgMzM1LjljMTkgMCAzNi42LTkuNiA0NC42LTI0LjlsLjYgMCAwIDIzLjQgMjggMCAwLTk3YzAtMjguMS0yMi41LTQ2LjMtNTcuMS00Ni4zLTMyLjEgMC01NS45IDE4LjQtNTYuOCA0My42bDI3LjMgMGMyLjMtMTIgMTMuNC0xOS45IDI4LjYtMTkuOSAxOC41IDAgMjguOSA4LjYgMjguOSAyNC41bDAgMTAuOC0zNy44IDIuM2MtMzUuMSAyLjEtNTQuMSAxNi41LTU0LjEgNDEuNSAuMSAyNS4yIDE5LjcgNDIgNDcuOCA0MnptOC4yLTIzLjFjLTE2LjEgMC0yNi40LTcuOC0yNi40LTE5LjYgMC0xMi4zIDkuOS0xOS40IDI4LjgtMjAuNWwzMy42LTIuMSAwIDExYzAgMTguMi0xNS41IDMxLjItMzYgMzEuMnptMTAyLjUgNzQuNmMyOS41IDAgNDMuNC0xMS4zIDU1LjUtNDUuNGw1My4xLTE0OS0zMC44IDAtMzUuNiAxMTUuMS0uNiAwLTM1LjYtMTE1LjEtMzEuNiAwIDUxLjIgMTQxLjktMi44IDguNmMtNC42IDE0LjYtMTIuMSAyMC4zLTI1LjUgMjAuMy0yLjQgMC03LS4zLTguOS0uNWwwIDIzLjRjMS44IC40IDkuMyAuNyAxMS42IC43eiJdfSwkNHQ9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiYXJ0c3RhdGlvbiIsaWNvbjpbNTEyLDUxMixbXSwiZjc3YSIsIk0yLjEgMzc3LjRsNDMgNzQuM2M0LjMgOC41IDEwLjggMTUuNyAxOC45IDIwLjdzMTcuNCA3LjYgMjcgNy42bDI4NS40IDAtNTkuMi0xMDIuNi0zMTUuMSAwek01MDEuOSAzNTBMMzM1LjcgNTkuM2MtNC40LTguMi0xMC45LTE1LjEtMTguOS0yMFMyOTkuNyAzMiAyOTAuNCAzMmwtODguNCAwIDI1Ny4zIDQ0Ny42IDQwLjctNzAuNWMxLjktMy4yIDIxLTI5LjcgMi01OS4xek0yNzUuMiAzMDQuNWwtMTE1LjUtMjAwLTExNS41IDIwMCAyMzEgMHoiXX0sSTR0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6Im5vZGUtanMiLGljb246WzQ0OCw1MTIsW10sImYzZDMiLCJNMjI0LjUgNTA4Yy02LjcgMC0xMy41LTEuOC0xOS40LTUuMmwtNjEuNy0zNi41Yy05LjItNS4yLTQuNy03LTEuNy04IDEyLjMtNC4zIDE0LjgtNS4yIDI3LjktMTIuNyAxLjQtLjggMy4yLS41IDQuNiAuNGw0Ny40IDI4LjFjMS43IDEgNC4xIDEgNS43IDBMNDEyIDM2Ny41YzEuNy0xIDIuOC0zIDIuOC01bDAtMjEzLjJjMC0yLjEtMS4xLTQtMi45LTUuMUwyMjcuMyAzNy43Yy0xLjctMS00LTEtNS43IDBMMzcuMSAxNDQuM2MtMS44IDEtMi45IDMtMi45IDUuMWwwIDIxMy4xYzAgMiAxLjEgNCAyLjkgNC45bDUwLjYgMjkuMmMyNy41IDEzLjcgNDQuMy0yLjQgNDQuMy0xOC43bDAtMjEwLjRjMC0zIDIuNC01LjMgNS40LTUuM2wyMy40IDBjMi45IDAgNS40IDIuMyA1LjQgNS4zbDAgMjEwLjVjMCAzNi42LTIwIDU3LjYtNTQuNyA1Ny42LTEwLjcgMC0xOS4xIDAtNDIuNS0xMS42TDIwLjYgMzk2LjFjLTEyLTYuOS0xOS40LTE5LjgtMTkuNC0zMy43bDAtMjEzLjFjMC0xMy44IDcuNC0yNi44IDE5LjQtMzMuN0wyMDUuMSA5YzExLjctNi42IDI3LjItNi42IDM4LjggMEw0MjguNiAxMTUuN2MxMiA2LjkgMTkuNCAxOS44IDE5LjQgMzMuN2wwIDIxMy4xYzAgMTMuOC03LjQgMjYuNy0xOS40IDMzLjdMMjQzLjkgNTAyLjhjLTUuOSAzLjQtMTIuNiA1LjItMTkuNCA1LjJ6TTM3My42IDI5Ny45YzAtMzkuOS0yNy01MC41LTgzLjctNTgtNTcuNC03LjYtNjMuMi0xMS41LTYzLjItMjQuOSAwLTExLjEgNC45LTI1LjkgNDcuNC0yNS45IDM3LjkgMCA1MS45IDguMiA1Ny43IDMzLjggLjUgMi40IDIuNyA0LjIgNS4yIDQuMmwyNCAwYzEuNSAwIDIuOS0uNiAzLjktMS43czEuNS0yLjYgMS40LTQuMWMtMy43LTQ0LjEtMzMtNjQuNi05Mi4yLTY0LjYtNTIuNyAwLTg0LjEgMjIuMi04NC4xIDU5LjUgMCA0MC40IDMxLjMgNTEuNiA4MS44IDU2LjYgNjAuNSA1LjkgNjUuMiAxNC44IDY1LjIgMjYuNyAwIDIwLjYtMTYuNiAyOS40LTU1LjUgMjkuNC00OC45IDAtNTkuNi0xMi4zLTYzLjItMzYuNi0uNC0yLjYtMi42LTQuNS01LjMtNC41bC0yMy45IDBjLTMgMC01LjMgMi40LTUuMyA1LjMgMCAzMS4xIDE2LjkgNjguMiA5Ny44IDY4LjIgNTguNC0uMSA5Mi0yMy4yIDkyLTYzLjR6Il19LFA0dD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJ1bmNoYXJ0ZWQiLGljb246WzQ0OCw1MTIsW10sImUwODQiLCJNMTcxLjggMjMyLjhjMS4xIDAgMi4xLS4zIDMtLjlzMS42LTEuNCAyLTIuNGMyLjItOS44IDcuNC0xOC42IDE0LjktMjUuMyAxLjItLjggMS43LTIuNSAxLjctNC4xLS4xLS43LS4zLTEuMy0uNi0xLjlzLS45LTEuMS0xLjQtMS40TDc0LjUgMTI4LjUgMTQ5LjEgODVjMS41LS44IDIuNy0yIDMuNi0zLjVzMS40LTMuMSAxLjQtNC44YzAtMS43LS40LTMuNC0xLjMtNC45cy0yLjItMi43LTMuNy0zLjRMMTI2LjcgNTUuNmMtMS41LS44LTMuMS0xLjItNC44LTEuMnMtMy4zIC40LTQuOCAxLjJMMTcgMTEzLjZjLTEuNSAuOC0yLjcgMi0zLjYgMy41cy0xLjQgMy4xLTEuNCA0LjhMMTIgMjM3YzAgMS43IC40IDMuNCAxLjMgNC45czIuMiAyLjcgMy43IDMuNGwyMi40IDEyLjhjMS41IC45IDMuMiAxLjMgNSAxLjIgMi40IC4xIDQuOC0uOCA2LjYtMi41IDEuOC0xLjkgMi44LTQuNCAyLjktN2wwLTg1LjMgMTE1LjkgNjcuOWMuNiAuMyAxLjQgLjQgMi4xIC40ek0zMjMuNCAzNzcuN2MtMS43IC4xLTMuNCAuNS01IDEuMmwtNzQuNSA0My4xIDAtMTM0LjJjMC0yLjktMi45LTUuOC02LjItNC42LTkuNCAyLjgtMTkuNSAzLTI5IC40LS43LS4yLTEuNS0uMi0yLjItLjFzLTEuNCAuNC0yIC45LTEuMSAxLTEuNCAxLjctLjUgMS40LS41IDIuMWwwIDEzMy4zLTc0LjUtNDMuMWMtMS41LS45LTMuMi0xLjMtNS0xLjItMi41IDAtNC45IDEtNi43IDIuOHMtMi44IDQuMi0yLjggNi43bDAgMjYuMWMwIDEuNyAuNCAzLjQgMS4zIDQuOXMyLjIgMi43IDMuNyAzLjRsMTAwLjIgNTcuNmMxLjUgLjkgMy4yIDEuMyA1IDEuMiAxLjcgMCAzLjQtLjQgNS0xLjJsMTAwLjItNTcuNmMxLjUtLjggMi43LTIgMy42LTMuNXMxLjQtMy4xIDEuNC00LjhsMC0yNi4xYy0uOC00LjYtNS40LTkuMS0xMC40LTkuMXpNMjg2LjEgNzhhMjMgMjMgMCAxIDAgMC00NiAyMyAyMyAwIDEgMCAwIDQ2em02My42LTEwLjFhMjMgMjMgMCAxIDAgMCA0NiAyMyAyMyAwIDEgMCAwLTQ2em02My4yIDgzLjdhMjMgMjMgMCAxIDAgMC00NiAyMyAyMyAwIDEgMCAwIDQ2em0tNjMuMi05LjJhMjMgMjMgMCAxIDAgMCA0NiAyMyAyMyAwIDEgMCAwLTQ2em0tNjMuNiA4My4yYzQuNSAwIDktMS4zIDEyLjgtMy45czYuNy02LjEgOC41LTEwLjMgMi4yLTguOCAxLjMtMTMuMy0zLjEtOC42LTYuMy0xMS44LTcuMy01LjQtMTEuOC02LjMtOS4xLS40LTEzLjMgMS4zLTcuOCA0LjctMTAuMyA4LjUtMy45IDguMi0zLjkgMTIuOGMwIDMgLjYgNiAxLjggOC44czIuOSA1LjMgNSA3LjUgNC43IDMuOCA3LjUgNSA1LjggMS44IDguOCAxLjhsMCAwek0yMjQgMjYyYzQuNSAwIDktMS40IDEyLjgtMy45czYuNy02LjEgOC41LTEwLjMgMi4yLTguOCAxLjMtMTMuMy0zLjEtOC42LTYuMy0xMS44LTcuMy01LjQtMTEuOC02LjMtOS4xLS40LTEzLjMgMS4zLTcuOCA0LjctMTAuMyA4LjUtMy45IDguMi0zLjkgMTIuOGMwIDMgLjYgNiAxLjcgOC44czIuOCA1LjMgNSA3LjUgNC43IDMuOCA3LjUgNSA1LjggMS44IDguOCAxLjhsMCAwem0xODguOS04Mi40Yy00LjYgMC05IDEuMy0xMi44IDMuOXMtNi43IDYuMS04LjUgMTAuMy0yLjIgOC44LTEuMyAxMy4zIDMuMSA4LjYgNi4zIDExLjggNy4zIDUuNCAxMS44IDYuMyA5LjEgLjQgMTMuMy0xLjMgNy44LTQuNyAxMC4zLTguNSAzLjktOC4yIDMuOS0xMi44YzAtNi4xLTIuNC0xMS45LTYuNy0xNi4zcy0xMC4yLTYuNy0xNi4zLTYuN2wwIDB6bTAgNzIuM2MtNC42IDAtOSAxLjMtMTIuOCAzLjlzLTYuNyA2LjEtOC41IDEwLjMtMi4yIDguOC0xLjMgMTMuMyAzLjEgOC42IDYuMyAxMS44IDcuMyA1LjQgMTEuOCA2LjMgOS4xIC40IDEzLjMtMS4zIDcuOC00LjcgMTAuMy04LjUgMy45LTguMiAzLjktMTIuOGMwLTYuMS0yLjQtMTEuOS02LjctMTYuM3MtMTAuMi02LjctMTYuMy02LjdsMCAweiJdfSxONHQ9e3ByZWZpeDoiZmFiIixpY29uTmFtZToicGxheXN0YXRpb24iLGljb246WzU3Niw1MTIsW10sImYzZGYiLCJNNTcxIDM3Mi4zYy0xMS4zIDE0LjItMzguOCAyNC4zLTM4LjggMjQuM2wtMjA1LjEgNzMuNiAwLTU0LjMgMTUwLjktNTMuOGMxNy4xLTYuMSAxOS44LTE0LjggNS44LTE5LjQtMTMuOS00LjYtMzkuMS0zLjMtNTYuMiAyLjlsLTEwMC41IDM1LjUgMC01Ni40YzIzLjItNy44IDQ3LjEtMTMuNiA3NS43LTE2LjggNDAuOS00LjUgOTAuOSAuNiAxMzAuMiAxNS41IDQ0LjIgMTQgNDkuMiAzNC43IDM4IDQ4Ljl6TTM0Ni42IDI3OS44bDAtMTM5YzAtMTYuMy0zLTMxLjMtMTguMy0zNS42LTExLjctMy44LTE5IDcuMS0xOSAyMy40bDAgMzQ3LjktOTMuOC0yOS44IDAtNDE0LjdjMzkuOSA3LjQgOTggMjQuOSAxMjkuMiAzNS40IDc5LjUgMjcuMyAxMDYuNCA2MS4zIDEwNi40IDEzNy44IDAgNzQuNS00NiAxMDIuOC0xMDQuNSA3NC42ek00My4zIDQxMC4yYy00NS40LTEyLjgtNTMtMzkuNS0zMi4zLTU0LjggMTkuMS0xNC4yIDUxLjctMjQuOSA1MS43LTI0LjlsMTM0LjUtNDcuOCAwIDU0LjUtOTYuOCAzNC42Yy0xNy4xIDYuMS0xOS43IDE0LjgtNS44IDE5LjRzMzkuMSAzLjMgNTYuMi0yLjlsNDYuNC0xNi45IDAgNDguOGMtNTEuNiA5LjMtMTAxLjQgNy4zLTE1My45LTEweiJdfSxGNHQ9e3ByZWZpeDoiZmFiIixpY29uTmFtZToibWljcm9ibG9nIixpY29uOls0NDgsNTEyLFtdLCJlMDFhIiwiTTM5OS44IDM2Mi4yYzI5LjUtMzQuNyA0Ny4xLTc4LjMgNDcuMS0xMjUuOCAwLTExMy05OS42LTIwNC40LTIyMi41LTIwNC40UzIgMTIzLjUgMiAyMzYuNCAxMDEuNiA0NDAuOSAyMjQuNSA0NDAuOWMyNyAwIDUzLjktNC41IDc5LjQtMTMuNCAxLjQtLjUgMy0uNSA0LjUtLjFzMi43IDEuNCAzLjYgMi42YzE4LjYgMjUuMSA0Ny42IDQyLjcgNzkuOSA0OS45IDEuMSAuMiAyLjMgMCAzLjMtLjZzMS43LTEuNiAxLjktMi44Yy4xLS42IC4xLTEuMyAwLTEuOXMtLjQtMS4yLS44LTEuN2MtMTIuMy0xNi0xOC43LTM1LjgtMTgtNTZzOC40LTM5LjUgMjEuNy01NC43bC0uMiAuMXpNMzMwIDIxMi40bC01Ny4zIDQzLjUgMjAuOCA2OC45Yy40IDEuMyAuNCAyLjctLjEgNHMtMS4yIDIuNC0yLjMgMy4yLTIuNCAxLjItMy44IDEuMi0yLjctLjQtMy44LTEuMmwtNTkuMS00MS01OS4xIDQxLjFjLTEuMSAuOC0yLjQgMS4yLTMuOCAxLjJzLTIuNy0uNC0zLjgtMS4yLTEuOS0xLjktMi4zLTMuMi0uNS0yLjctLjEtNGwyMC44LTY4LjktNTcuMy00My41Yy0xLjEtLjgtMS45LTEuOS0yLjMtMy4ycy0uNC0yLjcgMC00IDEuMi0yLjQgMi4zLTMuMiAyLjQtMS4zIDMuNy0xLjNsNzEuOS0xLjUgMjMuNy02Ny45Yy40LTEuMyAxLjMtMi40IDIuNC0zLjJzMi40LTEuMiAzLjgtMS4yIDIuNyAuNCAzLjggMS4yIDEuOSAxLjkgMi40IDMuMmwyMy43IDY3LjkgNzEuOSAxLjVjMS40IDAgMi43IC40IDMuOCAxLjJzMS45IDEuOSAyLjMgMy4yIC40IDIuNyAwIDQtMS4yIDIuNC0yLjMgMy4zbDAgMHoiXX0sTzR0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImdpdGtyYWtlbiIsaWNvbjpbNTc2LDUxMixbXSwiZjNhNiIsIk01NTcuNyAxMTguMWMtMi4zLTYuMS05LjMtOS4yLTE1LjMtNi42LTUuNyAyLjQtOC41IDguOS02LjMgMTQuNiAxMC45IDI5IDE2LjkgNjAuNSAxNi45IDkzLjMgMCAxMzQuNi0xMDAuMyAyNDUuNy0yMzAuMiAyNjIuN2wwLTEyMy43YzcuOS0xLjUgMTUuNS0zLjYgMjMtNi4ybDAgMTA0YzEwNi43LTI1LjkgMTg1LjktMTIyLjEgMTg1LjktMjM2LjggMC05MS44LTUwLjgtMTcxLjgtMTI1LjgtMjEzLjMtNS43LTMuMi0xMy0uOS0xNS45IDUtMi43IDUuNS0uNiAxMi4yIDQuNyAxNS4xIDY3LjkgMzcuNiAxMTMuOSAxMTAgMTEzLjkgMTkzLjIgMCA5My4zLTU3LjkgMTczLjEtMTM5LjggMjA1LjRsMC05Mi4yYzE0LjItNC41IDI0LjktMTcuNyAyNC45LTMzLjUgMC0xMy4xLTYuOC0yNC40LTE3LjMtMzAuNSA4LjMtNzkuNSA0NC41LTU4LjYgNDQuNS04My45bDAtMTQuN2MwLTM4LTg3LjktMTYxLjgtMTI5LTE2NC43LTIuNS0uMi01LS4yLTcuNiAwLTQxLjIgMy0xMjkuMSAxMjYuNy0xMjkuMSAxNjQuN2wwIDE0LjhjMCAyNS4zIDM2LjMgNC4zIDQ0LjUgODMuOS0xMC42IDYuMS0xNy4zIDE3LjQtMTcuMyAzMC41IDAgMTUuOCAxMC42IDI5IDI0LjggMzMuNWwwIDkyLjJjLTgxLjktMzIuMi0xMzkuOC0xMTItMTM5LjgtMjA1LjQgMC04My4xIDQ2LTE1NS41IDExMy45LTE5My4yIDUuNC0zIDcuNC05LjYgNC43LTE1LjEtMi45LTUuOS0xMC4xLTguMi0xNS45LTUtNzUgNDEuNS0xMjUuOCAxMjEuNS0xMjUuOCAyMTMuMyAwIDExNC43IDc5LjIgMjEwLjggMTg1LjkgMjM2LjhsMC0xMDRjNy42IDIuNSAxNS4xIDQuNiAyMyA2LjJsMCAxMjMuN2MtMTI5LjgtMTctMjMwLjItMTI4LjEtMjMwLjItMjYyLjcgMC0zMi44IDYtNjQuMyAxNi45LTkzLjMgMi4yLTUuOC0uNi0xMi4yLTYuMy0xNC42LTYtMi42LTEzIC40LTE1LjMgNi42LTExLjggMzEuNS0xOC4zIDY1LjYtMTguMyAxMDEuMyAwIDE1NS4xIDEyMi42IDI4MS42IDI3Ni4zIDI4Ny44bDAtMTQ1LjljNi44IC40IDE1IC41IDIzLjQgMGwwIDE0NS44YzE1My43LTYuMSAyNzYuMy0xMzIuNiAyNzYuMy0yODcuNyAwLTM1LjctNi41LTY5LjgtMTguMy0xMDEuNHpNMzU3LjkgMzIyLjlhMjMuNyAyMy43IDAgMSAxIDAtNDcuNCAyMy43IDIzLjcgMCAxIDEgMCA0Ny40ek0yMTguMSAyNzUuNGEyMy43IDIzLjcgMCAxIDEgMCA0Ny40IDIzLjcgMjMuNyAwIDEgMSAwLTQ3LjR6Il19LG1uZT17cHJlZml4OiJmYWIiLGljb25OYW1lOiJ0ZWxlZ3JhbSIsaWNvbjpbNTEyLDUxMixbNjI0NjIsInRlbGVncmFtLXBsYW5lIl0sImYyYzYiLCJNMjU2IDhhMjQ4IDI0OCAwIDEgMCAwIDQ5NiAyNDggMjQ4IDAgMSAwIDAtNDk2ek0zNzEgMTc2LjdjLTMuNyAzOS4yLTE5LjkgMTM0LjQtMjguMSAxNzguMy0zLjUgMTguNi0xMC4zIDI0LjgtMTYuOSAyNS40LTE0LjQgMS4zLTI1LjMtOS41LTM5LjMtMTguNy0yMS44LTE0LjMtMzQuMi0yMy4yLTU1LjMtMzcuMi0yNC41LTE2LjEtOC42LTI1IDUuMy0zOS41IDMuNy0zLjggNjcuMS02MS41IDY4LjMtNjYuNyAuMi0uNyAuMy0zLjEtMS4yLTQuNHMtMy42LS44LTUuMS0uNWMtMi4yIC41LTM3LjEgMjMuNS0xMDQuNiA2OS4xLTkuOSA2LjgtMTguOSAxMC4xLTI2LjkgOS45LTguOS0uMi0yNS45LTUtMzguNi05LjEtMTUuNS01LTI3LjktNy43LTI2LjgtMTYuMyAuNi00LjUgNi43LTkgMTguNC0xMy43IDcyLjMtMzEuNSAxMjAuNS01Mi4zIDE0NC42LTYyLjMgNjguOS0yOC42IDgzLjItMzMuNiA5Mi41LTMzLjggMi4xIDAgNi42IC41IDkuNiAyLjkgMiAxLjcgMy4yIDQuMSAzLjUgNi43IC41IDMuMiAuNiA2LjUgLjQgOS44eiJdfSxSNHQ9bW5lLEI0dD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJ1bHRyYWx5dGljcyIsaWNvbjpbNTEyLDUxMixbXSwiZTg2ZCIsIk0zOTEuNCAzOS43YzY1LjgtLjIgMTE4LjYgNTEuOCAxMjAuNCAxMTYuNiAuNyAyNi40LTEuNSA1NC4xLTMuOCA3NC4xLTE3LjIgMTQ4LjYtMTIyLjQgMjQyLTI1Mi40IDI0Mi05NS40LS4xLTE3OS40LTUyLjctMjIzLjItMTMwLjYgMjQuNCAxNy40IDU0LjUgMjcuNCA4Ny42IDI3LjQgODMuMiAuMSAxNTEuNC02Ny40IDE1MS4yLTE1MGwuMS02MC42Yy0uMi02NS43IDUzLjktMTE5IDEyMC4xLTExOC45ek0xMTkuOSAxMDAuMmM2Ni4yIDAgMTE5LjkgNTMuMyAxMTkuOSAxMTlTMTg2LjEgMzM4LjMgMTE5LjkgMzM4LjMgMCAyODUgMCAyMTkuM2MwLTY1LjcgNTMuNy0xMTkgMTE5LjktMTE5eiJdfSxINHQ9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiaXR1bmVzLW5vdGUiLGljb246WzM4NCw1MTIsW10sImYzYjUiLCJNMzgxLjkgMzg4LjJjLTYuNCAyNy40LTI3LjIgNDIuOC01NS4xIDQ4LTI0LjUgNC41LTQ0LjkgNS42LTY0LjUtMTAuMi0yMy45LTIwLjEtMjQuMi01My40LTIuNy03NC40IDE3LTE2LjIgNDAuOS0xOS41IDc2LjgtMjUuOCA2LTEuMSAxMS4yLTIuNSAxNS42LTcuNCA2LjQtNy4yIDQuNC00LjEgNC40LTE2My4yIDAtMTEuMi01LjUtMTQuMy0xNy0xMi4zLTguMiAxLjQtMTg1LjcgMzQuNi0xODUuNyAzNC42LTEwLjIgMi4yLTEzLjQgNS4yLTEzLjQgMTYuNyAwIDIzNC43IDEuMSAyMjMuOS0yLjUgMjM5LjUtNC4yIDE4LjItMTUuNCAzMS45LTMwLjIgMzkuNS0xNi44IDkuMy00Ny4yIDEzLjQtNjMuNCAxMC40LTQzLjItOC4xLTU4LjQtNTgtMjkuMS04Ni42IDE3LTE2LjIgNDAuOS0xOS41IDc2LjgtMjUuOCA2LTEuMSAxMS4yLTIuNSAxNS42LTcuNCAxMC4xLTExLjUgMS44LTI1Ni42IDUuMi0yNzAuMiAuOC01LjIgMy05LjYgNy4xLTEyLjkgNC4yLTMuNSAxMS44LTUuNSAxMy40LTUuNSAyMDQtMzguMiAyMjguOS00My4xIDIzMi40LTQzLjEgMTEuNS0uOCAxOC4xIDYgMTguMSAxNy42IC4yIDM0NC41IDEuMSAzMjYtMS44IDMzOC41eiJdfSxxNHQ9e3ByZWZpeDoiZmFiIixpY29uTmFtZToibGVzcyIsaWNvbjpbNjQwLDUxMixbXSwiZjQxZCIsIk02MTMuMiAyMTljMC0yMC41IDMuMi0zMi42IDMuMi01NC42IDAtMzQuMi0xMi42LTQ1LjItNDAuNS00NS4ybC0yMC41IDAgMCAyNC4yIDYuMyAwYzE0LjIgMCAxNy4zIDQuNyAxNy4zIDIyLjEgMCAxNi4zLTEuNiAzMi42LTEuNiA1MS41IDAgMjQuMiA3LjkgMzMuNiAyMy42IDM3LjNsMCAxLjZjLTE1LjggMy43LTIzLjYgMTMuMS0yMy42IDM3LjMgMCAxOC45IDEuNiAzNC4yIDEuNiA1MS41IDAgMTcuOS0zLjcgMjIuNi0xNy4zIDIyLjZsMCAuNS02LjMgMCAwIDI1LjIgMjAuNSAwYzI3LjggMCA0MC41LTExIDQwLjUtNDUuMiAwLTIyLjYtMy4yLTM0LjItMy4yLTU0LjYgMC0xMSA2LjgtMjIuNiAyNy4zLTIzLjZsMC0yNy4zYy0yMC41LS43LTI3LjMtMTIuMy0yNy4zLTIzLjN6TTUwNy42IDI1MWMtMTUuOC02LjMtMzAuNS0xMC0zMC41LTIwLjUgMC03LjkgNi4zLTEyLjYgMTcuOS0xMi42czIyLjEgNC43IDMzLjYgMTMuMWwyMS0yNy44Yy0xMy4xLTEwLTMxLTIwLjUtNTUuMi0yMC41LTM1LjcgMC01OS45IDIwLjUtNTkuOSA0OS40IDAgMjUuNyAyMi42IDM4LjkgNDEuNSA0Ni4yIDE2LjMgNi4zIDMyLjEgMTEuNiAzMi4xIDIyLjEgMCA3LjktNi4zIDEzLjEtMjAuNSAxMy4xLTEzLjEgMC0yNi4zLTUuMy00MC41LTE2LjNsLTIxIDMwLjVjMTUuOCAxMy4xIDM5LjkgMjIuMSA1OS45IDIyLjEgNDIgMCA2NC42LTIyLjEgNjQuNi01MXMtMjIuNS00MS00My00Ny44ek0xNDguNyAzMTAuNGMtMy43IDAtOC40LTMuMi04LjQtMTMuMWwwLTE3OC4yLTc0LjYgMGMtMjguNCAwLTQxIDExLTQxIDQ1LjIgMCAyMi42IDMuMiAzNS4yIDMuMiA1NC42IDAgMTEtNi44IDIyLjYtMjcuMyAyMy42bDAgMjcuM2MyMC41IC41IDI3LjMgMTIuMSAyNy4zIDIzLjEgMCAxOS40LTMuMiAzMS0zLjIgNTMuNiAwIDM0LjIgMTIuNiA0NS4yIDQwLjUgNDUuMmwyMC41IDAgMC0yNC4yLTYuMyAwYy0xMy4xIDAtMTcuMy01LjMtMTcuMy0yMi42czEuNi0zMi4xIDEuNi01MS41YzAtMjQuMi03LjktMzMuNi0yMy42LTM3LjNsMC0xLjZjMTUuOC0zLjcgMjMuNi0xMy4xIDIzLjYtMzcuMyAwLTE4LjktMS42LTM0LjItMS42LTUxLjVzMy43LTIyLjEgMTcuMy0yMi4xbDE0LjEgMCAwIDE1MC44YzAgMzIuMSAxMSA1My4xIDQzLjEgNTMuMSAxMCAwIDE3LjktMS42IDIzLjYtMy43bC01LjMtMzQuMmMtMy4xIC44LTQuNiAuOC02LjIgLjh6TTM4MC40IDI1MWMtMTYuMy02LjMtMzEtMTAtMzEtMjAuNSAwLTcuOSA2LjMtMTIuNiAxNy45LTEyLjZzMjIuMSA0LjcgMzMuNiAxMy4xbDIxLTI3LjhjLTEzLjEtMTAtMzEtMjAuNS01NS4yLTIwLjUtMzUuNyAwLTU5LjkgMjAuNS01OS45IDQ5LjQgMCAyNS43IDIyLjYgMzguOSA0MS41IDQ2LjIgMTYuMyA2LjMgMzIuMSAxMS42IDMyLjEgMjIuMSAwIDcuOS02LjMgMTMuMS0yMC41IDEzLjEtMTMuMSAwLTI2LjMtNS4zLTQwLjUtMTYuM2wtMjAuNSAzMC41YzE1LjggMTMuMSAzOS45IDIyLjEgNTkuOSAyMi4xIDQyIDAgNjQuNi0yMi4xIDY0LjYtNTEgLjEtMjguOS0yMi41LTQxLTQzLTQ3Ljh6bS0xNTUtNjguOGMtMzguNCAwLTc1LjEgMzIuMS03NC4xIDgyLjUgMCA1MiAzNC4yIDgyLjUgNzkuMyA4Mi41IDE4LjkgMCAzOS45LTYuOCA1Ni4yLTE3LjlMMjcxIDMwMS41Yy0xMS42IDYuOC0yMi42IDEwLTM0LjIgMTAtMjEgMC0zNy4zLTEwLTQxLjUtMzQuMmw5NS4yIDBjLjUtMy43IDEuNi0xMSAxLjYtMTkuNCAuNi00Mi42LTIyLjYtNzUuNy02Ni43LTc1Ljd6bS0zMCA2Ni4yYzMuMi0yMSAxNS44LTMxIDMwLjUtMzEgMTguOSAwIDI2LjMgMTMuMSAyNi4zIDMxbC01Ni44IDB6Il19LGo0dD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJmaXJlZm94IixpY29uOls1MTIsNTEyLFtdLCJmMjY5IiwiTTUwMy41IDI0MS41Yy0uMS0xLjYtLjItMy4xLS4yLTQuN2wwLS4xLS40LTQuNyAwLS4xYy0xLjMtMTMuOS0zLjctMjcuNy03LjMtNDEuMiAwLS4xIDAtLjEtLjEtLjJsLTEuMS00Yy0uMS0uMi0uMS0uNS0uMi0uNi0uNC0xLjItLjctMi41LTEuMS0zLjctLjEtLjItLjEtLjYtLjItLjgtLjQtMS4yLS43LTIuNC0xLjEtMy41LS4xLS40LS4yLS42LS40LTEtLjQtMS4yLS43LTIuMy0xLjItMy41bC0uNC0xLjFjLS40LTEuMS0uOC0yLjMtMS4yLTMuNC0uMS0uMy0uMi0uNy0uNC0xLS41LTEuMS0uOC0yLjMtMS4zLTMuNC0uMS0uMi0uMi0uNi0uNC0uOC0uNS0xLjItMS0yLjMtMS40LTMuNSAwLS4xLS4xLS4yLS4xLS40LTEuNi0zLjgtMy4yLTcuNy01LTExLjRsLS40LS43Yy0uNS0xLS44LTEuOC0xLjMtMi42LS4yLS41LS41LTEuMS0uNy0xLjYtLjQtLjgtLjgtMS42LTEuMi0yLjQtLjQtLjYtLjYtMS4yLTEtMS44cy0uOC0xLjQtMS4yLTIuM2MtLjQtLjYtLjctMS4zLTEuMS0xLjlzLS44LTEuNC0xLjItMi4yYy0uNC0uNy0uOC0xLjQtMS4yLTItLjQtLjctLjgtMS4zLTEuMi0ycy0uOC0xLjMtMS4yLTItLjgtMS4zLTEuMi0xLjktLjgtMS40LTEuMy0yLjJjLS40LS42LS44LTEuMi0xLjItMS44bC0xLjQtMi4xYy0uNC0uNi0uOC0xLjItMS4yLTEuOC0uNS0uNy0xLjEtMS42LTEuNi0yLjMtLjQtLjUtLjctMS4xLTEuMS0xLjZsLTEuOC0yLjVjLS40LS41LS42LS44LTEtMS4zLTEtMS4zLTEuOC0yLjUtMi44LTMuNy03LjItOS40LTE1LTE4LjMtMjMuNS0yNi42LTUuNy02LTExLjgtMTEuNS0xOC4zLTE2LjctNC0zLjUtOC4yLTYuNy0xMi41LTkuOC03LjctNS44LTE2LTEwLjgtMjQuNi0xNS4xLTIuNC0xLjMtNC44LTIuNS03LjItMy43LTE3LjctOC42LTM2LjMtMTUuMi01NS40LTE5LjYtMS45LS40LTMuOC0uOC01LjYtMS4ybC0uMSAwYy0xLS4xLTEuOC0uNC0yLjgtLjUtMTIuNS0yLjQtMjUuMi0zLjctMzgtNGwtMTAuNiAwYy0xNS4zIC4yLTMwLjUgMS45LTQ1LjUgNS0zMy42IDcuMS02My4yIDIxLjItODIuOSAzOS0xLjEgMS0xLjkgMS43LTIuNCAyLjJsLS41IC41IC4xIDBjMCAwIC4xIDAgLjEgMHMwLS4xIDAtLjFsLS4xIC4xYy4xLS4xIC4xLS4xIC4yLS4xIDE0LjYtOC44IDM0LjktMTYgNDkuNC0xOS42bDUuOS0xLjRjLjQtLjEgLjgtLjEgMS4yLS4yIDEuNy0uNCAzLjQtLjcgNS4yLTEuMSAuMiAwIC42LS4xIC44LS4xIDY0LjItMTEuNyAxMzIuNiA3LjUgMTgwLjIgNTMgMTAuMyA5LjggMTkuMyAyMC44IDI2LjkgMzIuOCAzMC40IDQ5LjIgMjcuNSAxMTEuMSAzLjggMTQ3LjYtMzQuNCA1My0xMTEuNCA3MS4zLTE1OSAyNC44LTE2LTE1LjUtMjUuMi0zNi43LTI1LjYtNTktLjItMTAuNyAyLTIxLjIgNi4yLTMxIDEuNy0zLjggMTMuMS0yNS43IDE4LjItMjQuNi0xMy4xLTIuOC0zNy41IDIuNi01NC43IDI4LjItMTUuNCAyMi45LTE0LjUgNTguMi01IDgzLjMtNi0xMi40LTEwLjEtMjUuNi0xMi4xLTM5LjItMTIuMi04Mi42IDQzLjMtMTUzIDk0LjMtMTcwLjUtMjcuNS0yNC05Ni41LTIyLjMtMTQ3LjcgMTUuNC0yOS45IDIyLTUxLjIgNTMuMi02Mi41IDkwLjQgMS43LTIwLjkgOS42LTUyLjEgMjUuOC04My45LTE3LjIgOC45LTM5IDM3LTQ5LjggNjIuOS0xNS42IDM3LjQtMjEgODIuMi0xNi4xIDEyNC44IC40IDMuMiAuNyA2LjQgMS4xIDkuNiAxOS45IDExNy4xIDEyMiAyMDYuNCAyNDQuOCAyMDYuNCAxMzcuMSAwIDI0OC4zLTExMS4yIDI0OC4zLTI0OC40LS4xLTQuNS0uMi05LjEtLjUtMTMuNXoiXX0sVjR0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImthZ2dsZSIsaWNvbjpbMzIwLDUxMixbXSwiZjVmYSIsIk0zMDQuMiA1MDEuNUwxNTguNCAzMjAuMyAyOTguMiAxODVjMi42LTIuNyAxLjctMTAuNS01LjMtMTAuNWwtNjkuMiAwYy0zLjUgMC03IDEuOC0xMC41IDUuM2wtMTMyLjMgMTMzLjcgMC0zMDZjMC01LTIuNS03LjUtNy41LTcuNUwyMS41IDBDMTYuNSAwIDE0IDIuNSAxNCA3LjVsMCA0OTdjMCA1IDIuNSA3LjUgNy41IDcuNWw1MS45IDBjNSAwIDcuNS0yLjUgNy41LTcuNWwwLTEwOSAzMC44LTI5LjMgMTEwLjUgMTQwLjZjMyAzLjUgNi41IDUuMyAxMC41IDUuM2w2Ni45IDBjMy41IDAgNS41LTEgNi0zbC0xLjQtNy42eiJdfSxVNHQ9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiZmFjZWJvb2stbWVzc2VuZ2VyIixpY29uOls1MTIsNTEyLFtdLCJmMzlmIiwiTTI1Ni42IDhjLTE0MCAwLTI0OC42IDEwMi4zLTI0OC42IDI0MC42IDAgNzIuMyAyOS43IDEzNC44IDc4LjEgMTc3LjkgOC4zIDcuNSA2LjYgMTEuOSA4IDU4LjIgLjEgMy4yIDEgNi40IDIuNiA5LjJzMy45IDUuMiA2LjcgNi45IDUuOSAyLjggOS4xIDMgNi41LS4zIDkuNS0xLjZDMTc0LjkgNDc5IDE3NS42IDQ3Ny4yIDE4NC42IDQ3OS42IDMzNy44IDUyMS44IDUwNCA0MjMuNyA1MDQgMjQ4LjYgNTA0IDExMC4zIDM5Ni42IDggMjU2LjYgOHpNNDA1LjggMTkzLjFsLTczIDExNS42Yy0yLjggNC4zLTYuNCA4LjEtMTAuNiAxMXMtOS4xIDQuOC0xNC4xIDUuOC0xMC4zIC44LTE1LjMtLjQtOS43LTMuNC0xMy44LTYuNGwtNTguMS00My41Yy0yLjYtMS45LTUuOC0zLTktM3MtNi40IDEuMS05IDNsLTc4LjQgNTkuNGMtMTAuNSA3LjktMjQuMi00LjYtMTcuMS0xNS43bDczLTExNS42YzIuOC00LjMgNi40LTguMSAxMC42LTExczkuMS00LjggMTQuMS01LjggMTAuMy0uOCAxNS4zIC40IDkuNyAzLjQgMTMuOSA2LjRsNTguMSA0My41YzIuNiAxLjkgNS44IDMgOSAzczYuNC0xLjEgOS0zbDc4LjQtNTkuNGMxMC40LTggMjQuMSA0LjUgMTcuMSAxNS42eiJdfSxXNHQ9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiYXVkaWJsZSIsaWNvbjpbNjQwLDUxMixbXSwiZjM3MyIsIk02NDAgMTk5LjlsMCA1NC0zMjAgMjAwLTMyMC0xOTkuOSAwLTU0IDMyMCAyMDAgMzIwLTIwMC4xem0tMTk0LjUgNzJsNDcuMS0yOS40Yy0zNy4yLTU1LjgtMTAwLjctOTIuNi0xNzIuNy05Mi42cy0xMzUuNSAzNi43LTE3Mi42IDkyLjRsLjMgMGMyLjUtMi4zIDUuMS00LjUgNy43LTYuNyA4OS43LTc0LjQgMjE5LjQtNTguMSAyOTAuMiAzNi4zek0yMjUuNCAyOTAuN2MxNi45LTExLjkgMzYuNS0xOC43IDU3LjQtMTguNyAzNC40IDAgNjUuMiAxOC40IDg2LjQgNDcuNmw0NS40LTI4LjRjLTIwLjktMjkuOS01NS42LTQ5LjUtOTQuOC00OS41LTM4LjkgMC03My40IDE5LjQtOTQuNCA0OXpNMTAzLjYgMTYxLjFDMjM1LjQgNTYuOCA0MjEuOCA4NC43IDUyMS4xIDIyMy4ybC43IDEgNDguOC0zMC40Yy01My41LTgxLjctMTQ1LjgtMTM1LjctMjUwLjctMTM1LjctMTAzLjUgMC0xOTYuNiA1My41LTI1MC41IDEzNS42IDkuOS0xMC41IDIyLjctMjMuNSAzNC4yLTMyLjZ6Il19LEc0dD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJwYXRyZW9uIixpY29uOls1MTIsNTEyLFtdLCJmM2Q5IiwiTTQ5MCAxNTMuOGMtLjEtNjUuNC01MS0xMTktMTEwLjctMTM4LjMtNzQuMi0yNC0xNzItMjAuNS0yNDIuOSAxMi45LTg1LjggNDAuNS0xMTIuOCAxMjkuMy0xMTMuOCAyMTcuOC0uOCA3Mi44IDYuNCAyNjQuNCAxMTQuNiAyNjUuOCA4MC4zIDEgOTIuMy0xMDIuNSAxMjkuNS0xNTIuMyAyNi40LTM1LjUgNjAuNS00NS41IDEwMi40LTU1LjkgNzItMTcuOCAxMjEuMS03NC43IDEyMS0xNTBsLS4xIDB6Il19LFk0dD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJ2bnYiLGljb246WzY0MCw1MTIsW10sImY0MGIiLCJNMTA0LjkgMzUyYy0zNC4xIDAtNDYuNC0zMC40LTQ2LjQtMzAuNEwyLjYgMjEwLjFTLTcuOCAxOTIgMTMgMTkybDMyLjggMGMxMC40IDAgMTMuMiA4LjcgMTguOCAxOC4xbDM2LjcgNzQuNXM1LjIgMTMuMSAyMS4xIDEzLjEgMjEuMS0xMy4xIDIxLjEtMTMuMWwzNi43LTc0LjVjNS42LTkuNSA4LjQtMTguMSAxOC44LTE4LjFsMzIuOCAwYzIwLjggMCAxMC40IDE4LjEgMTAuNCAxOC4xTDE4Ni40IDMyMS42UzE3NC4yIDM1MiAxNDAgMzUybC0zNS4xIDB6bTM5NSAwYy0zNC4xIDAtNDYuNC0zMC40LTQ2LjQtMzAuNEwzOTcuNiAyMTAuMVMzODcuMiAxOTIgNDA4IDE5MmwzMi44IDBjMTAuNCAwIDEzLjIgOC43IDE4LjggMTguMWwzNi43IDc0LjVzNS4yIDEzLjEgMjEuMSAxMy4xIDIxLjEtMTMuMSAyMS4xLTEzLjFsMzYuOC03NC41YzUuNi05LjUgOC40LTE4LjEgMTguOC0xOC4xbDMyLjkgMGMyMC44IDAgMTAuNCAxOC4xIDEwLjQgMTguMUw1ODEuNSAzMjEuNlM1NjkuMyAzNTIgNTM1LjEgMzUybC0zNS4yIDB6TTMzNy42IDE5MmMzNC4xIDAgNDYuNCAzMC40IDQ2LjQgMzAuNGw1NS45IDExMS41UzQ1MC4zIDM1MiA0MjkuNSAzNTJsLTMyLjggMGMtMTAuNCAwLTEzLjItOC43LTE4LjgtMTguMWwtMzYuNy03NC41cy01LjItMTMuMS0yMS4xLTEzLjEtMjEuMSAxMy4xLTIxLjEgMTMuMWwtMzYuNyA3NC41Yy01LjYgOS40LTguNCAxOC4xLTE4LjggMTguMWwtMzIuOSAwYy0yMC44IDAtMTAuNC0xOC4xLTEwLjQtMTguMWw1NS45LTExMS41UzI2OC4zIDE5MiAzMDIuNSAxOTJsMzUuMSAweiJdfSxaNHQ9e3ByZWZpeDoiZmFiIixpY29uTmFtZToicGFnZWxpbmVzIixpY29uOlszODQsNTEyLFtdLCJmMThjIiwiTTM4NC4xIDMxMi43Yy01NS4xIDEzNi43LTE4Ny4xIDU0LTE4Ny4xIDU0LTQwLjUgODEuOC0xMDcuNCAxMzQuNC0xODQuNiAxMzQuNy0xNi4xIDAtMTYuNi0yNC40IDAtMjQuNCA2NC40LS4zIDEyMC41LTQyLjcgMTU3LjItMTEwLjEtNDEuMSAxNS45LTExOC42IDI3LjktMTYxLjYtODIuMiAxMDktNDQuOSAxNTkuMSAxMS4yIDE3OC4zIDQ1LjUgOS45LTI0LjQgMTctNTAuOSAyMS42LTc5LjcgMCAwLTEzOS43IDIxLjktMTQ5LjUtOTguMSAxMTkuMS00Ny45IDE1Mi42IDc2LjcgMTUyLjYgNzYuNyAxLjYtMTYuNyAzLjMtNTIuNiAzLjMtNTMuNCAwIDAtMTA2LjMtNzMuNy0zOC4xLTE2NS4yIDEyNC42IDQzIDYxLjQgMTYyLjQgNjEuNCAxNjIuNCAuNSAxLjYgLjUgMjMuOCAwIDMzLjQgMCAwIDQ1LjItODkgMTM2LjQtNTcuNS00LjIgMTM0LTE0MS45IDEwNi40LTE0MS45IDEwNi40LTQuNCAyNy40LTExLjIgNTMuNC0yMCA3Ny41IDAgMCA4My05MS44IDE3Mi0yMHoiXX0sWDR0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImFtYXpvbiIsaWNvbjpbNDQ4LDUxMixbXSwiZjI3MCIsIk0yNTcuNyAxNjIuN2MtNDguNyAxLjgtMTY5LjUgMTUuNS0xNjkuNSAxMTcuNSAwIDEwOS41IDEzOC4zIDExNCAxODMuNSA0My4yIDYuNSAxMC4yIDM1LjQgMzcuNSA0NS4zIDQ2LjhsNTYuOC01NnMtMzIuMy0yNS4zLTMyLjMtNTIuOGwwLTE0Ny4xQzM0MS41IDg5IDMxNyAzMiAyMjkuMiAzMiAxNDEuMiAzMiA5NC41IDg3IDk0LjUgMTM2LjNsNzMuNSA2LjhjMTYuMy00OS41IDU0LjItNDkuNSA1NC4yLTQ5LjUgNDAuNy0uMSAzNS41IDI5LjggMzUuNSA2OS4xem0wIDg2LjhjMCA4MC04NC4yIDY4LTg0LjIgMTcuMiAwLTQ3LjIgNTAuNS01Ni43IDg0LjItNTcuOGwwIDQwLjZ6TTM5My43IDQxM2MtNy43IDEwLTcwIDY3LTE3NC41IDY3UzM0LjcgNDA4LjUgMTAuMiAzNzljLTYuOC03LjcgMS0xMS4zIDUuNS04LjMgNzMuMyA0NC41IDE4Ny44IDExNy44IDM3Mi41IDMwLjMgNy41LTMuNyAxMy4zIDIgNS41IDEyem0zOS44IDIuMmMtNi41IDE1LjgtMTYgMjYuOC0yMS4yIDMxLTUuNSA0LjUtOS41IDIuNy02LjUtMy44czE5LjMtNDYuNSAxMi43LTU1Yy02LjUtOC4zLTM3LTQuMy00OC0zLjItMTAuOCAxLTEzIDItMTQtLjMtMi4zLTUuNyAyMS43LTE1LjUgMzcuNS0xNy41IDE1LjctMS44IDQxLS44IDQ2IDUuNyAzLjcgNS4xIDAgMjcuMS02LjUgNDMuMXoiXX0sUTR0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImVudmlyYSIsaWNvbjpbNDQ4LDUxMixbXSwiZjI5OSIsIk0wIDMyYzQ3Ny42IDAgMzY2LjYgMzE3LjMgMzY3LjEgMzY2LjNsODAuOSA4MS43LTI2IDAtNzAuNC03MS4yQzMxMi42IDQxMyAyMjcuMiA0NDMuMyAxMzcuMiAzNzEuOCA0NyAzMDAuMyA1MiAyMTQuNyAwIDMyek03OS43IDc4Yy00OS43LTIzLjUtNS4yIDkuMi01LjIgOS4yIDQ1LjIgMzEuMiA2NiA3My43IDkwLjIgMTE5LjkgMzEuNSA2MC4yIDc5IDEzOS43IDE0NC4yIDE2Ny43IDY1IDI4IDM0LjIgMTIuNSA2LTguNS0yOC4yLTIxLjItNjguMi04Ny05MS0xMzAuMi0zMS43LTYwLTYxLTExOC42LTE0NC4yLTE1OC4xeiJdfSxKNHQ9e3ByZWZpeDoiZmFiIixpY29uTmFtZToibGlub2RlIixpY29uOls0NDgsNTEyLFtdLCJmMmI4IiwiTTM2Ni4zIDE4Ni45bC01OS41IDM2LjktLjggMzYuOS0yOS4zLTE5LjMtMzkuNCAyNC4zYzIuMiA1NS4yIDIuNSA1OS4zIDIuNSA1OS41bC05Ny4yIDY1LjQtMTUuMS0xMDQuNyAxMDguMS02Mi00MC4yLTI2LTc1LjQgMzguNS0yMS0xNDMuMyAxMjktNDkuNC05MS4zLTQzLjYtMTI1LjcgMzkuNCAyNy43IDEzNC45IDQxLjkgMzIuNy0zMS44IDE1LjEgMjAuOSAxMDEuNCAyOS4zIDI3LjctMjAuOSAxMi42IDE2LjggNzguOCA2Ni4yIDY5LjZjLTEwLjgtNzQuOC0xMS43LTc4LjYtMTEuNy03OC44bDc3LjktNTUuM0MyNDQgMzY1LjQgMjQyLjMgMzY3IDI0Mi4zIDM2N2wuOCAyNC4zIDMzLjUgMjguNS0uOC03Ny4xIDQ2LjktMzMuNSAyNi44LTE4LjQtMi41IDM2IDI1LjEgMTcuNiA2LjctNzQuNiA1OC43LTQzLjYtNzEuMi0zOS40eiJdfSxLNHQ9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiYWNjdXNvZnQiLGljb246WzY0MCw1MTIsW10sImYzNjkiLCJNMzIyLjEgMjUybDAtMS01MS4yLTY1LjhzLTEyIDEuNi0yNSAxNS4xYy05IDkuMy0yNDIuMSAyMzkuMS0yNDMuNCAyNDAuOS03IDEwIDEuNiA2LjggMTUuNyAxLjcgLjggMCAxMTQuNS0zNi42IDExNC41LTM2LjYgLjUtLjYtLjEtLjEgLjYtLjYtLjQtNS4xLS44LTI2LjItMS0yNy43LS42LTUuMiAyLjItNi45IDctOC45bDkyLjYtMzMuOGMuNi0uOCA4OC41LTgxLjcgOTAuMi04My4zek00ODIuMiAzNzIuMWMxMy4zIDE2LjEgMjAuNyAxMy4zIDMwLjggOS4zIDMuMi0xLjIgMTE1LjQtNDcuNiAxMTcuOC00OC45IDgtNC4zLTEuNy0xNi43LTcuMi0yMy40LTIuMS0yLjUtMjA1LjEtMjQ1LjYtMjA3LjItMjQ4LjMtOS43LTEyLjItMTQuMy0xMi45LTM4LjQtMTIuOC0xMC4yIDAtMTA2LjggLjUtMTE2LjUgLjYtMTkuMiAuMS0zMi45LS4zLTE5LjIgMTYuOSA3LjcgOS41IDIzNC4yIDI5OS43IDIzOS45IDMwNi42em0xNTIuNyAxLjZjLTIuMy0uMy0yNC42LTQuNy0zOC03LjIgMCAwLTExNSA1MC40LTExNy41IDUxLjYtMTYgNy4zLTI2LjktMy4yLTM2LjctMTQuNmwtNTcuMS03NGMtNS40LS45LTYwLjQtOS42LTY1LjMtOS4zLTMuMSAuMi05LjYgLjgtMTQuNCAyLjktNC45IDIuMS0xNDUuMiA1Mi44LTE1MC4yIDU0LjctNS4xIDItMTEuNCAzLjYtMTEuMSA3LjYgLjIgMi41IDIgMi42IDQuNiAzLjUgMi43IC44IDMwMC45IDY3LjYgMzA4IDY5LjEgMTUuNiAzLjMgMzguNSAxMC41IDUzLjYgMS43IDIuMS0xLjIgMTIzLjgtNzYuNCAxMjUuOC03Ny44IDUuNC00IDQuMy02LjgtMS43LTguMnoiXX0sZTN0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImVybGFuZyIsaWNvbjpbNjQwLDUxMixbXSwiZjM5ZCIsIk04Ny4yIDUzLjVsLTg3LjIgMCAwIDQwNSAxMDAuNCAwYy00OS43LTUyLjYtNzguOC0xMjUuMy03OC43LTIxMi4xLS4xLTc2LjcgMjQtMTQyLjcgNjUuNS0xOTIuOXptMjM4LjIgOS43Yy00NS45IC4xLTg1LjEgMzMuNS04OS4yIDgzLjJsMTY5LjkgMGMtMS4xLTQ5LjctMzQuNS04My4xLTgwLjctODMuMnptMjMwLjctOS42bC4zIDAtLjEtLjEtLjIgLjF6bS4zIDBjMzEuNCA0Mi43IDQ4LjcgOTcuNSA0Ni4yIDE2Mi43IC41IDYgLjUgMTEuNyAwIDI0LjFsLTM3Mi40IDBjLS4yIDEwOS43IDM4LjkgMTk0LjkgMTM4LjYgMTk1LjMgNjguNS0uMyAxMTgtNTEgMTUxLjktMTA2LjFsOTYuNCA0OC4yYy0xNy40IDMwLjktMzYuNSA1Ny44LTU3LjkgODAuOGw4MC44IDAgMC00MDUtODMuNiAweiJdfSx0M3Q9e3ByZWZpeDoiZmFiIixpY29uTmFtZToidW5pc29uIixpY29uOls1MTIsNTEyLFtdLCJlODU0IiwiTTQzNS4xIDE2MS43YTEzLjkgMTMuOSAwIDEgMSAxOS42LTE5LjcgMTMuOSAxMy45IDAgMSAxIC0xOS42IDE5Ljd6TTM2OS43IDk3LjhjMTAuNCAyLjEgMjAuNiA1LjIgMzAuNCA5LjIgNi44IDIuOCAxMC4xIDEwLjggNy4zIDE3LjctMi44IDYuNy0xMC45IDEwLjEtMTcuNiA3LjMtOC4zLTMuNC0xNi44LTUuOC0yNS43LTcuOC04LjYtMS43LTE3LjMtMi41LTI2LTIuNS0xOS4zIDAtMzcuMS0xMC4zLTQ2LjctMjctOC43LTE1LjEtMjAuNi0yOC45LTM0LjctMzkuNy01OS4xLTQ1LjUtMTQzLjgtMzQuMy0xODkuMiAyNS0yLjYgMy4zLTYuNSA1LjMtMTAuNyA1LjMtNy40IDAtMTMuNS02LjEtMTMuNS0xMy41IDAtMy4yIDEuMi02LjMgMy4yLTguOCAxMi45LTE2LjcgMjguOS0zMC43IDQ3LjEtNDEuMiA3Ny40LTQ0LjggMTc2LjQtMTguMiAyMjEuMSA1OS40IDQuMyA4LjIgMTMuNyAxMy4zIDIyLjggMTMuNSAxMC44IDAgMjEuNiAxIDMyLjIgMy4xek0zNSAyNzBjNC42LTguMiA0LjYtMTguMiAwLTI2LjQtMjEuOS0zNi41LTI3LjMtODIuMy0xNi4zLTEyMy4yIDEuNi01LjkgNi45LTEwIDEzLTEwIDguNyAwIDE1LjMgOC43IDEzIDE3LTkuNSAzNS40LTMuNCA3MSAxMy43IDEwMi45IDkuMyAxNi41IDkuMyAzNi43IDAgNTMuMS04LjcgMTUuNy0xNC44IDMyLjQtMTcuMiA1MC4zLTkuNyA3My45IDQyLjMgMTQxLjcgMTE2LjIgMTUxLjQgNy4zIDEgMTIuNiA3LjkgMTEuNiAxNS4yLTEgNy4zLTcuOCAxMi42LTE1LjEgMTEuNi0yMS4xLTIuOC00MS40LTkuNy01OS44LTIwLjMtNzUuNi00My42LTEwNC45LTE0NS44LTU5LjItMjIxLjV6TTIxNi45IDUwOWMtNy40IDItMTUuMS0yLjQtMTcuMS05LjhzMi41LTE1IDkuOS0xNi45YzguNS0yLjIgMTcuNCA0LjUgMTcuNCAxMy40IDAgNi4yLTQuMiAxMS42LTEwLjIgMTMuM3ptMTIyLjMtOTFjLTkuNSAwLTE4LjQgNS0yMy4yIDEzLjItNC45IDkuNC0xMS43IDE4LjItMTguNyAyNi4ybDAgMGMtNy4xIDgtMTQuOCAxNS4yLTIzLjIgMjEuNy01LjkgNC41LTE0LjQgMy40LTE5LTIuNXMtMy40LTE0LjQgMi41LTE4LjljNy01LjQgMTMuNS0xMS41IDE5LjQtMTguMWwwIDBjNS45LTYuNiAxMS4xLTEzLjggMTUuNS0yMS42IDkuNy0xNi43IDI3LjUtMjcgNDYuOC0yNyAxNy44IDAgMzUuNC0zLjUgNTEuOC0xMC4zIDY4LjMtMjguMyAxMDEuMS0xMDguMyA3My4yLTE3Ni41LS42LTEuNi0xLTMuMy0xLTUgMC03LjQgNi4xLTEzLjUgMTMuNS0xMy41IDUuNCAwIDEwLjMgMy4yIDEyLjQgOC4yIDguMiAxOS43IDEyLjQgNDAuOCAxMi40IDYyLjEgMCA4OS41LTcyLjcgMTYyLjEtMTYyLjQgMTYyLjFsMCAwem0tMTMuMS0yNjhjMy45LS40IDcuOS0uNiAxMS45LS42IDU5LjMgMCAxMDguMiA0OC43IDEwOC4yIDEwNy44UzM5Ny4zIDM2NSAzMzggMzY1Yy00IDAtNy45LS4yLTExLjgtLjYtMjIuMi0xLjctNDMuMyAxMC40LTUyLjkgMzAuNC0xNy4yIDM5LjEtNTYuMiA2NC41LTk5LjEgNjQuNS01OS4zIDAtMTA4LjItNDguNy0xMDguMi0xMDcuOCAwLTIzLjIgNy41LTQ1LjcgMjEuNC02NC4zIDEyLjItMTguMyAxMi4xLTQyLjMtLjQtNjAuNS0xMy42LTE4LjUtMjAuOS00MC44LTIwLjktNjMuNyAwLTU5LjEgNDguOC0xMDcuOCAxMDguMi0xMDcuOCA0Mi44IDAgODEuOCAyNS40IDk5IDY0LjQgOS42IDIwIDMwLjcgMzIuMSA1Mi45IDMwLjR6TTEwNi44IDM5My40YzE0LjQgMjUuMiA0MS4xIDQwLjggNjkuOCA0MC44IDQ0LjIgMCA4MC42LTM2LjggODAuNi04MS42cy0zNi40LTgxLjYtODAuNi04MS42Yy0xNC4yIDAtMjguMSAzLjgtNDAuMyAxMC45LTM4LjMgMjIuNC01MS42IDcyLjctMjkuNSAxMTEuNHpNMjY4IDI5OGMxNC40IDI1LjIgNDEuMSA0MC44IDY5LjggNDAuOCA0NC4yIDAgODAuNi0zNi44IDgwLjYtODEuNnMtMzYuNC04MS42LTgwLjYtODEuNmMtMTQuMiAwLTI4LjEgMy44LTQwLjMgMTAuOS0zOC4zIDIyLjQtNTEuNiA3Mi43LTI5LjUgMTExLjR6bS05MS4yLTU0LjZjNDQuMiAwIDgwLjUtMzYuOCA4MC41LTgxLjZzLTM2LjQtODEuNi04MC42LTgxLjYtODAuNiAzNi44LTgwLjYgODEuNmMwIDQ0LjcgMzYuNCA4MS42IDgwLjYgODEuNnoiXX0scjN0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImNjLWRpc2NvdmVyIixpY29uOls1NzYsNTEyLFtdLCJmMWYyIiwiTTUyMC40IDE5Ni4xYzAtNy45LTUuNS0xMi4xLTE1LjYtMTIuMWwtNC45IDAgMCAyNC45IDQuNyAwYzEwLjMgMCAxNS44LTQuNCAxNS44LTEyLjh6TTUyOCAzMkw0OCAzMkMyMS41IDMyIDAgNTMuNSAwIDgwTDAgNDMyYzAgMjYuNSAyMS41IDQ4IDQ4IDQ4bDQ4MCAwYzI2LjUgMCA0OC0yMS41IDQ4LTQ4bDAtMzUyYzAtMjYuNS0yMS41LTQ4LTQ4LTQ4ek00ODMuOSAxNzAuOWMyMi42IDAgNTIuOS00LjEgNTIuOSAyNC40IDAgMTIuNi02LjYgMjAuNy0xOC43IDIzLjJsMjUuOCAzNC40LTE5LjYgMC0yMi4yLTMyLjgtMi4yIDAgMCAzMi44LTE2IDAgMC04MnpNNDI4IDE3MWw0NS4zIDAgMCAxNC0yOS4zIDAgMCAxOC4yIDI4LjMgMCAwIDEzLjgtMjguMyAwIDAgMjIuMiAyOS4zIDAgMCAxMy44LTQ1LjMgMCAwLTgyem0tNjguNyAwbDIxLjkgNTUuMiAyMi4yLTU1LjIgMTcuNSAwLTM1LjUgODQuMi04LjYgMC0zNS04NC4yIDE3LjUgMHptLTU1LjkgODYuMmE0NC42IDQ0LjYgMCAxIDEgMC04OS4yIDQ0LjYgNDQuNiAwIDEgMSAwIDg5LjJ6bS00OS4zLTgzLjFsMCAxOWMtMjAuMS0yMC4xLTQ2LjgtNC43LTQ2LjggMTkgMCAyNSAyNy41IDM4LjUgNDYuOCAxOS4ybDAgMTljLTI5LjcgMTQuMy02My4zLTUuNy02My4zLTM4LjIgMC0zMS4yIDMzLjEtNTMgNjMuMy0zOHptLTk3LjIgNjYuM2MxMS40IDAgMjIuNC0xNS4zLTMuMy0yNC40LTE1LTUuNS0yMC4yLTExLjQtMjAuMi0yMi43IDAtMjMuMiAzMC42LTMxLjQgNDkuNy0xNC4zbC04LjQgMTAuOGMtMTAuNC0xMS42LTI0LjktNi4yLTI0LjkgMi41IDAgNC40IDIuNyA2LjkgMTIuMyAxMC4zIDE4LjIgNi42IDIzLjYgMTIuNSAyMy42IDI1LjYgMCAyOS41LTM4LjggMzcuNC01Ni42IDExLjNsMTAuMy05LjljMy43IDcuMSA5LjkgMTAuOCAxNy41IDEwLjh6TTU1LjQgMjUzbC0yMy40IDAgMC04MiAyMy40IDBjMjYuMSAwIDQ0LjEgMTcgNDQuMSA0MS4xIDAgMTguNS0xMy4yIDQwLjktNDQuMSA0MC45em02Ny41IDBsLTE2IDAgMC04MiAxNiAwIDAgODJ6TTU0NCA0MzNjMCA4LjItNi44IDE1LTE1IDE1bC00MDEgMGMxODkuNi0zNS42IDM4Mi43LTEzOS4yIDQxNi0xNjBsMCAxNDV6TTc0LjEgMTkxLjZjLTUuMi00LjktMTEuNi02LjYtMjEuOS02LjZsLTQuMiAwIDAgNTQuMiA0LjIgMGMxMC4zIDAgMTctMiAyMS45LTYuNCA1LjctNS4yIDguOS0xMi44IDguOS0yMC43cy0zLjItMTUuNS04LjktMjAuNXoiXX0saTN0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6InNhZmFyaSIsaWNvbjpbNTEyLDUxMixbXSwiZjI2NyIsIk0yNzQuNyAyNzQuN0wyMzcuMyAyMzcuMyAxNjYgMzQ2IDI3NC43IDI3NC43ek0yNTYgOGEyNDggMjQ4IDAgMSAwIDAgNDk2IDI0OCAyNDggMCAxIDAgMC00OTZ6TTQxMS44IDE4Mi44bDE0LjgtNi4xYzEtLjQgMi0uNiAzLjEtLjZzMi4xIC4yIDMuMSAuNiAxLjggMSAyLjYgMS43IDEuMyAxLjYgMS43IDIuNiAuNiAyIC42IDMuMS0uMiAyLjEtLjYgMy4xLTEgMS45LTEuNyAyLjYtMS42IDEuMy0yLjYgMS43TDQxOCAxOTcuNmMtMiAuOC00LjIgLjgtNi4xIDBzLTMuNS0yLjQtNC4zLTQuMy0uOC00LjIgMC02LjEgMi40LTMuNSA0LjMtNC4zek0zMTQuNCA5NGw2LjEtMTQuOGMuOC0yIDIuNC0zLjUgNC4zLTQuM3M0LjItLjggNi4xIDAgMy41IDIuNCA0LjMgNC4zIC44IDQuMiAwIDYuMWwtNi4xIDE0LjhjLS44IDItMi40IDMuNS00LjMgNC4zcy00LjIgLjgtNi4xIDBjLTEtLjQtMS45LTEtMi42LTEuN3MtMS4zLTEuNi0xLjctMi42LS42LTItLjYtMy4xIC4yLTIuMSAuNi0zLjF6TTI1NiA2MGMyLjEgMCA0LjIgLjggNS43IDIuM1MyNjQgNjUuOSAyNjQgNjhsMCAxNmMwIDIuMS0uOCA0LjItMi4zIDUuN3MtMy41IDIuMy01LjcgMi4zLTQuMi0uOC01LjctMi4zLTIuMy0zLjUtMi4zLTUuN2wwLTE2YzAtMi4xIC44LTQuMiAyLjMtNS43UzI1My45IDYwIDI1NiA2MHpNMTgxIDc0LjljMS0uNCAyLS42IDMuMS0uNnMyLjEgLjIgMy4xIC42IDEuOSAxIDIuNiAxLjcgMS4zIDEuNiAxLjcgMi42TDE5Ny42IDk0Yy40IDEgLjcgMiAuNyAzLjFzLS4yIDIuMS0uNiAzLjEtMSAxLjktMS43IDIuNi0xLjYgMS40LTIuNiAxLjgtMiAuNi0zLjEgLjYtMi4xLS4yLTMuMS0uNi0xLjktMS0yLjYtMS44LTEuMy0xLjctMS43LTIuN2wtNi4xLTE0LjhjLS44LTItLjgtNC4yIDAtNi4xczIuNC0zLjUgNC4zLTQuM3ptLTYzLjYgNDIuNWMxLjUtMS41IDMuNS0yLjMgNS43LTIuM3M0LjIgLjggNS43IDIuM0wxNDAgMTI4LjdjMS41IDEuNSAyLjMgMy41IDIuMyA1LjZzLS44IDQuMS0yLjMgNS42Yy0xLjUgMS41LTMuNSAyLjMtNS43IDIuM3MtNC4yLS44LTUuNy0yLjNsLTExLjMtMTEuM2MtMS41LTEuNS0yLjMtMy41LTIuMy01LjZzLjgtNC4xIDIuMy01LjZsMCAwek02MCAyNTZjMC0yLjEgLjgtNC4yIDIuMy01LjdTNjUuOSAyNDggNjggMjQ4bDE2IDBjMi4xIDAgNC4yIC44IDUuNyAyLjNzMi4zIDMuNSAyLjMgNS43LS44IDQuMi0yLjMgNS43LTMuNSAyLjMtNS43IDIuM2wtMTYgMGMtMi4xIDAtNC4yLS44LTUuNy0yLjNTNjAgMjU4LjEgNjAgMjU2em00MC4yIDczLjJsLTE0LjggNi4xYy0xIC40LTIgLjYtMy4xIC42cy0yLjEtLjItMy4xLS42LTEuOS0xLTIuNi0xLjctMS4zLTEuNi0xLjctMi42LS42LTItLjYtMy4xIC4yLTIuMSAuNi0zLjEgMS0xLjkgMS43LTIuNiAxLjYtMS4zIDIuNi0xLjdMOTQgMzE0LjRjMi0uOCA0LjItLjggNi4xIDBzMy41IDIuNCA0LjMgNC4zIC44IDQuMiAwIDYuMS0yLjQgMy41LTQuMyA0LjN6bTQuMy0xMzZjLS40IDEtMSAxLjktMS43IDIuNnMtMS42IDEuMy0yLjYgMS43LTIgLjYtMy4xIC42LTIuMS0uMi0zLjEtLjZsLTE0LjgtNi4xYy0yLS44LTMuNS0yLjQtNC4zLTQuM3MtLjgtNC4yIDAtNi4xIDIuNC0zLjUgNC4zLTQuMyA0LjItLjggNi4xIDBsMTQuOCA2LjFjMiAuOCAzLjUgMi40IDQuMyA0LjNzLjggNC4yIDAgNi4xbDAgMHpNMTk3LjYgNDE4bC02LjEgMTQuOGMtLjQgMS0xIDEuOS0xLjcgMi42cy0xLjYgMS4zLTIuNiAxLjctMiAuNi0zLjEgLjYtMi4xLS4yLTMuMS0uNi0xLjktMS0yLjYtMS43LTEuMy0xLjYtMS43LTIuNi0uNi0yLS42LTMuMSAuMi0yLjEgLjYtMy4xbDYuMS0xNC44Yy40LTEgMS0xLjkgMS43LTIuN3MxLjYtMS40IDIuNi0xLjggMi0uNiAzLjEtLjYgMi4xIC4yIDMuMSAuNiAxLjkgMSAyLjYgMS44IDEuMyAxLjcgMS43IDIuNiAuNiAyIC42IDMuMS0uMiAyLjEtLjcgMy4xek0yNjQgNDQ0YzAgMi4xLS44IDQuMi0yLjMgNS43cy0zLjUgMi4zLTUuNyAyLjMtNC4yLS44LTUuNy0yLjMtMi4zLTMuNS0yLjMtNS43bDAtMTZjMC0yLjEgLjgtNC4yIDIuMy01LjdzMy41LTIuMyA1LjctMi4zIDQuMiAuOCA1LjcgMi4zIDIuMyAzLjUgMi4zIDUuN2wwIDE2em02Ny02LjljLTEgLjQtMiAuNi0zLjEgLjZzLTIuMS0uMi0zLjEtLjYtMS45LTEtMi42LTEuNy0xLjMtMS42LTEuNy0yLjZMMzE0LjQgNDE4Yy0uOC0yLS44LTQuMiAwLTYuMXMyLjQtMy41IDQuMy00LjMgNC4yLS44IDYuMSAwIDMuNSAyLjQgNC4zIDQuM2w2LjEgMTQuOGMuOCAyIC44IDQuMiAwIDYuMXMtMi40IDMuNS00LjMgNC4zem02My42LTQyLjVjLTEuNSAxLjUtMy41IDIuMy01LjcgMi4zcy00LjItLjgtNS43LTIuM0wzNzIgMzgzLjNjLTEuNS0xLjUtMi4zLTMuNS0yLjMtNS42cy44LTQuMSAyLjMtNS42IDMuNS0yLjMgNS43LTIuMyA0LjIgLjggNS43IDIuM2wxMS4zIDExLjNjMS41IDEuNSAyLjMgMy41IDIuMyA1LjZzLS44IDQuMS0yLjMgNS42bDAgMHpNMjg2LjIgMjg2LjJMMTEwLjMgNDAxLjcgMjI1LjggMjI1LjggNDAxLjcgMTEwLjMgMjg2LjIgMjg2LjJ6TTQzNy4xIDMzMWMtLjggMi0yLjQgMy41LTQuMyA0LjNzLTQuMiAuOC02LjEgMGwtMTQuOC02LjFjLTItLjgtMy41LTIuNC00LjMtNC4zcy0uOC00LjIgMC02LjFjLjQtMSAxLTEuOSAxLjctMi42czEuNi0xLjMgMi42LTEuNyAyLS42IDMuMS0uNiAyLjEgLjIgMy4xIC42bDE0LjggNi4xYzIgLjggMy41IDIuNCA0LjMgNC4zcy44IDQuMiAwIDYuMXptNi45LTY3bC0xNiAwYy0yLjEgMC00LjItLjgtNS43LTIuM3MtMi4zLTMuNS0yLjMtNS43IC44LTQuMiAyLjMtNS43IDMuNS0yLjMgNS43LTIuM2wxNiAwYzIuMSAwIDQuMiAuOCA1LjcgMi4zczIuMyAzLjUgMi4zIDUuNy0uOCA0LjItMi4zIDUuNy0zLjUgMi4zLTUuNyAyLjN6Il19LGEzdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJzcGFjZS1hd2Vzb21lIixpY29uOls1MTIsNTEyLFtdLCJlNWFjIiwiTTk2IDI1NmwzMiAwIDAgMjU2LTEyOCAwIDAtMTYwIDMyIDAgMC0zMiAzMiAwIDAtMzIgMzIgMCAwLTMyem00MTYgOTZsMCAxNjAtMTI4IDAgMC0yNTYgMzIgMCAwIDMyIDMyIDAgMCAzMiAzMiAwIDAgMzIgMzIgMHpNMzIwIDY0bDMyIDAgMCAzODQtMzIgMCAwLTMyLTEyOCAwIDAgMzItMzIgMCAwLTM4NCAzMiAwIDAtMzIgMzIgMCAwLTMyIDY0IDAgMCAzMiAzMiAwIDAgMzJ6bS0zMiA2NGwtNjQgMCAwIDY0IDY0IDAgMC02NHoiXX0sbjN0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6Im5vZGUiLGljb246WzY0MCw1MTIsW10sImY0MTkiLCJNMzE2LjMgNDUyYy0yLjEgMC00LjItLjYtNi4xLTEuNkwyOTEgNDM5Yy0yLjktMS42LTEuNS0yLjItLjUtMi41IDMuOC0xLjMgNC42LTEuNiA4LjctNCAuNC0uMiAxLS4xIDEuNCAuMWwxNC44IDguOGMuNSAuMyAxLjMgLjMgMS44IDBMMzc1IDQwOGMuNS0uMyAuOS0uOSAuOS0xLjZsMC02Ni43YzAtLjctLjMtMS4zLS45LTEuNmwtNTcuOC0zMy4zYy0uNS0uMy0xLjItLjMtMS44IDBsLTU3LjggMzMuM2MtLjYgLjMtLjkgMS0uOSAxLjZsMCA2Ni43YzAgLjYgLjQgMS4yIC45IDEuNWwxNS44IDkuMWM4LjYgNC4zIDEzLjktLjggMTMuOS01LjhsMC02NS45YzAtLjkgLjctMS43IDEuNy0xLjdsNy4zIDBjLjkgMCAxLjcgLjcgMS43IDEuN2wwIDY1LjljMCAxMS41LTYuMiAxOC0xNy4xIDE4LTMuMyAwLTYgMC0xMy4zLTMuNmwtMTUuMi04LjdjLTMuNy0yLjItNi4xLTYuMi02LjEtMTAuNWwwLTY2LjdjMC00LjMgMi4zLTguNCA2LjEtMTAuNWw1Ny44LTMzLjRjMy43LTIuMSA4LjUtMi4xIDEyLjEgMGw1Ny44IDMzLjRjMy43IDIuMiA2LjEgNi4yIDYuMSAxMC41bDAgNjYuN2MwIDQuMy0yLjMgOC40LTYuMSAxMC41bC01Ny44IDMzLjRjLTEuNyAxLjEtMy44IDEuNy02IDEuN3pNMzYzIDM4Ni4yYzAtMTIuNS04LjQtMTUuOC0yNi4yLTE4LjItMTgtMi40LTE5LjgtMy42LTE5LjgtNy44IDAtMy41IDEuNS04LjEgMTQuOC04LjEgMTEuOSAwIDE2LjMgMi42IDE4LjEgMTAuNiAuMiAuOCAuOCAxLjMgMS42IDEuM2w3LjUgMGMuNSAwIC45LS4yIDEuMi0uNSAuMy0uNCAuNS0uOCAuNC0xLjMtMS4yLTEzLjgtMTAuMy0yMC4yLTI4LjgtMjAuMi0xNi41IDAtMjYuMyA3LTI2LjMgMTguNiAwIDEyLjcgOS44IDE2LjEgMjUuNiAxNy43IDE4LjkgMS45IDIwLjQgNC42IDIwLjQgOC4zIDAgNi41LTUuMiA5LjItMTcuNCA5LjItMTUuMyAwLTE4LjctMy44LTE5LjgtMTEuNC0uMS0uOC0uOC0xLjQtMS43LTEuNGwtNy41IDBjLS45IDAtMS43IC43LTEuNyAxLjcgMCA5LjcgNS4zIDIxLjMgMzAuNiAyMS4zIDE4LjUgMCAyOS03LjIgMjktMTkuOHptNTQuNS01MC4xYzAgNi4xLTUgMTEuMS0xMS4xIDExLjFzLTExLjEtNS0xMS4xLTExLjFjMC02LjMgNS4yLTExLjEgMTEuMS0xMS4xIDYtLjEgMTEuMSA0LjggMTEuMSAxMS4xem0tMS44IDBjMC01LjItNC4yLTkuMy05LjQtOS4zLTUuMSAwLTkuMyA0LjEtOS4zIDkuM3M0LjIgOS40IDkuMyA5LjRjNS4yLS4xIDkuNC00LjMgOS40LTkuNHptLTQuNSA2LjJsLTIuNiAwYy0uMS0uNi0uNS0zLjgtLjUtMy45LS4yLS43LS40LTEuMS0xLjMtMS4xbC0yLjIgMCAwIDUtMi40IDAgMC0xMi41IDQuMyAwYzEuNSAwIDQuNCAwIDQuNCAzLjMgMCAyLjMtMS41IDIuOC0yLjQgMy4xIDEuNyAuMSAxLjggMS4yIDIuMSAyLjggLjEgMSAuMyAyLjcgLjYgMy4zem0tMi44LTguOGMwLTEuNy0xLjItMS43LTEuOC0xLjdsLTIgMCAwIDMuNSAxLjkgMGMxLjYgMCAxLjktMS4xIDEuOS0xLjh6TTEzNy4zIDE5MWMwLTIuNy0xLjQtNS4xLTMuNy02LjRMNzIuMyAxNDkuM2MtMS0uNi0yLjItLjktMy40LTFsLS42IDBjLTEuMiAwLTIuMyAuNC0zLjQgMUwzLjcgMTg0LjZDMS40IDE4NS45IDAgMTg4LjQgMCAxOTFsLjEgOTVjMCAxLjMgLjcgMi41IDEuOCAzLjJzMi41IC43IDMuNyAwTDQyIDI2OC4zYzIuMy0xLjQgMy43LTMuOCAzLjctNi40bDAtNDQuNGMwLTIuNiAxLjQtNS4xIDMuNy02LjRsMTUuNS04LjljMS4yLS43IDIuNC0xIDMuNy0xczIuNiAuMyAzLjcgMWwxNS41IDguOWMyLjMgMS4zIDMuNyAzLjggMy43IDYuNGwwIDQ0LjRjMCAyLjYgMS40IDUuMSAzLjcgNi40bDM2LjQgMjAuOWMxLjEgLjcgMi42IC43IDMuNyAwIDEuMS0uNiAxLjgtMS45IDEuOC0zLjJsLjItOTV6TTQ3Mi41IDg3LjNsMCAxNzYuNGMwIDIuNi0xLjQgNS4xLTMuNyA2LjRsLTYxLjMgMzUuNGMtMi4zIDEuMy01LjEgMS4zLTcuNCAwbC02MS4zLTM1LjRjLTIuMy0xLjMtMy43LTMuOC0zLjctNi40bDAtNzAuOGMwLTIuNiAxLjQtNS4xIDMuNy02LjRsNjEuMy0zNS40YzIuMy0xLjMgNS4xLTEuMyA3LjQgMGwxNS4zIDguOGMxLjcgMSAzLjktLjMgMy45LTIuMmwwLTk0YzAtMi44IDMtNC42IDUuNS0zLjJsMzYuNSAyMC40YzIuMyAxLjIgMy44IDMuNyAzLjggNi40em0tNDYgMTI4LjljMC0uNy0uNC0xLjMtLjktMS42bC0yMS0xMi4yYy0uNi0uMy0xLjMtLjMtMS45IDBsLTIxIDEyLjJjLS42IC4zLS45IC45LS45IDEuNmwwIDI0LjNjMCAuNyAuNCAxLjMgLjkgMS42bDIxIDEyLjFjLjYgLjMgMS4zIC4zIDEuOCAwbDIxLTEyLjFjLjYtLjMgLjktLjkgLjktMS42bDAtMjQuMyAuMSAwem0yMDkuOC0uN2MyLjMtMS4zIDMuNy0zLjggMy43LTYuNGwwLTE3LjFjMC0yLjYtMS40LTUuMS0zLjctNi40bC02MC45LTM1LjRjLTIuMy0xLjMtNS4xLTEuMy03LjQgMGwtNjEuMyAzNS40Yy0yLjMgMS4zLTMuNyAzLjgtMy43IDYuNGwwIDcwLjhjMCAyLjcgMS40IDUuMSAzLjcgNi40bDYwLjkgMzQuN2MyLjIgMS4zIDUgMS4zIDcuMyAwbDM2LjgtMjAuNWMyLjUtMS40IDIuNS01IDAtNi40TDU1MCAyNDEuNmMtMS4yLS43LTEuOS0xLjktMS45LTMuMmwwLTIyLjJjMC0xLjMgLjctMi41IDEuOS0zLjJsMTkuMi0xMS4xYzEuMS0uNyAyLjYtLjcgMy43IDBMNTkyLjEgMjEzYzEuMSAuNyAxLjkgMS45IDEuOSAzLjJsMCAxNy40YzAgMi44IDMuMSA0LjYgNS42IDMuMmwzNi43LTIxLjN6TTU1OSAyMTljLS40IC4zLS43IC43LS43IDEuMmwwIDEzLjZjMCAuNSAuMyAxIC43IDEuMmwxMS44IDYuOGMuNCAuMyAxIC4zIDEuNCAwTDU4NCAyMzVjLjQtLjMgLjctLjcgLjctMS4ybDAtMTMuNmMwLS41LS4zLTEtLjctMS4ybC0xMS44LTYuOGMtLjQtLjMtMS0uMy0xLjQgMEw1NTkgMjE5ek0zMDQuOCAyNjIuNWwwLTcwLjRjMC0yLjYtMS42LTUuMS0zLjktNi40bC02MS4xLTM1LjJjLTIuMS0xLjItNS0xLjQtNy40IDBsLTYxLjEgMzUuMmMtMi4zIDEuMy0zLjkgMy43LTMuOSA2LjRsMCA3MC40YzAgMi44IDEuOSA1LjIgNCA2LjRsNjEuMiAzNS4yYzIuNCAxLjQgNS4yIDEuMyA3LjQgMGw2MS0zNS4yYzEuOC0xIDMuMS0yLjcgMy42LTQuNyAuMS0uNSAuMi0xLjEgLjItMS43ek0yMzAuNSAxMzcuNmwtLjggLjUgMS4xIDAtLjMtLjV6bTc2LjIgMTMwLjJsLS40LS43IDAgLjkgLjQtLjJ6Il19LG8zdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJjb2RlcGVuIixpY29uOls1MTIsNTEyLFtdLCJmMWNiIiwiTTUwMi4zIDE1OS43bC0yMzQtMTU2Yy04LTQuOS0xNi41LTUtMjQuNiAwbC0yMzQgMTU2Yy02IDQtOS43IDExLjEtOS43IDE4LjNMMCAzMzRjMCA3LjEgMy43IDE0LjMgOS43IDE4LjNsMjM0IDE1NmM4IDQuOSAxNi41IDUgMjQuNiAwbDIzNC0xNTZjNi00IDkuNy0xMS4xIDkuNy0xOC4zbDAtMTU2YzAtNy4xLTMuNy0xNC4zLTkuNy0xOC4zek0yNzggNjMuMWwxNzIuMyAxMTQuOS03Ni45IDUxLjQtOTUuNC02My43IDAtMTAyLjZ6bS00NCAwTDIzNCAxNjUuNyAxMzguNiAyMjkuNCA2MS43IDE3OCAyMzQgNjMuMXpNNDQgMjE5LjFMOTkuMSAyNTYgNDQgMjkyLjggNDQgMjE5LjF6TTIzNCA0NDguOEw2MS43IDMzNCAxMzguNiAyODIuNiAyMzQgMzQ2LjMgMjM0IDQ0OC44ek0yNTYgMzA4bC03Ny43LTUyIDc3LjctNTIgNzcuNyA1Mi03Ny43IDUyem0yMiAxNDAuOWwwLTEwMi42IDk1LjQtNjMuNyA3Ni45IDUxLjQtMTcyLjMgMTE0Ljl6bTE5MC0xNTZsLTU1LjEtMzYuOSA1NS4xLTM2LjkgMCA3My43eiJdfSxzM3Q9e3ByZWZpeDoiZmFiIixpY29uTmFtZToicmF2ZWxyeSIsaWNvbjpbNTEyLDUxMixbXSwiZjJkOSIsIk00OTguNiAyMzQuMmMtMS4yLTEwLjMtMS43LTIwLjgtMy43LTMxLTIuNS0xMi40LTUuNy0yNC42LTkuNi0zNi42LTYuOC0yMC45LTE3LjItNDAuMy0zMC45LTU3LjUtNS45LTcuNi0xMi4xLTE0LjgtMTguOC0yMS43LTE0LjEtMTQtMzAtMjYuMS00Ny4xLTM2LjEtMTcuOC0xMC42LTM2LjgtMTguOS01Ni43LTI0LjctMTEtMy4xLTIyLjMtNS40LTMzLjUtNy42LTYuOC0xLjMtMTMuNy0xLjctMjAuNi0yLjUtLjMgMC0uNi0uNC0uOS0uNi0xMC44IDAtMjEuNSAwLTMyLjMgMC0yLjQgLjQtNC44IC45LTcuMiAxLjItMTEuNiAxLjItMjMuMSAzLjYtMzQuMyA3LjEtMTMuOCA0LjEtMjcuMSA5LjYtMzkuOCAxNi40LTEzLjMgNy0yNi4xIDE1LjEtMzguMSAyNC4yLTYuMiA0LjYtMTIuMyA5LjQtMTggMTQuNS0xMC4yIDkuMi0yMC40IDE4LjQtMjkuOSAyOC4zLTEyLjggMTMuMy0yNC4xIDI4LjEtMzMuNiA0NC04LjYgMTQtMTUuNSAyOS0yMC41IDQ0LjYtNy4yIDIyLjctMTAuMyA0Ni42LTkuMiA3MC4zIC42IDEzLjUgMiAyNi45IDQuNCA0MC4yIDMuNCAxOC40IDkgMzYuMyAxNi43IDUzLjMgMTMuNiAyOS4yIDMyLjEgNTEuNSA1MC40IDY3LjkgMTIuOCAxMS42IDI2LjggMjEuOSA0MS44IDMwLjYgMTcuNyAxMC40IDM2LjQgMTguOSA1NS45IDI1LjMgMTMuMyA0LjMgMjYuOSA3LjYgNDAuNiA5LjggNi4xIDEgMTIuMyAxLjMgMTguNCAxLjkgLjQgLjEgLjggLjMgMS4yIC42bDMyLjMgMGMyLjUtLjQgNS0uOSA3LjUtMS4xIDE2LjMtMS4zIDMyLjEtNS4zIDQ3LjUtMTAuNyAxNy4yLTUuOSAzMy43LTEzLjkgNDktMjMuOCA5LjctNi40IDE5LjQtMTMuMSAyOC43LTIwLjEgNS44LTQuMyAxMS05LjUgMTYuMy0xNC41IDQtMy43IDcuOC03LjYgMTEuNS0xMS41IDEyLTEyLjcgMjIuNi0yNi42IDMxLjQtNDEuNiA5LjUtMTYgMTcuNC0zMi45IDIyLjMtNTAuOSAyLjktMTAuNCA0LjktMjEgNy0zMS43IDEtNS4zIDEuMy0xMC43IDEuOS0xNi4xIDAtLjMgLjQtLjYgLjYtLjlsMC0zNy4xYy0uMi0uNi0uNC0xLjItLjYtMS44em0tMTYxLjEtMS4ycy0xNi42LTMtMjguNS0zYy0yNy4yIDAtMzMuNiAxNC45LTMzLjYgMzdsMCA5My43LTczLjUgMCAwLTE5MC43IDczLjUgMCAwIDMxLjljOC45LTI2LjggMjYuOC0zNi4yIDYyLTM2LjJsMCA2Ny4zeiJdfSxsM3Q9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiYWxpcGF5IixpY29uOls0NDgsNTEyLFtdLCJmNjQyIiwiTTM3Ny43IDMyTDcwLjMgMzJDMzEuNCAzMiAwIDYzLjQgMCAxMDIuM0wwIDQwOS43QzAgNDQ4LjYgMzEuNCA0ODAgNzAuMyA0ODBsMzA3LjUgMGMzOC41IDAgNjkuOC0zMS4xIDcwLjMtNjkuNi00Ni0yNS42LTExMC42LTYwLjMtMTcxLjYtODguNC0zMi4xIDQ0LTg0LjEgODEtMTQ4LjYgODEtNzAuNiAwLTkzLjctNDUuMy05Ny03Ni40LTQtMzkgMTQuOS04MS41IDk5LjUtODEuNSAzNS40IDAgNzkuNCAxMC4yIDEyNy4xIDI1IDE2LjUtMzAuMSAyNi41LTYwLjMgMjYuNS02MC4zbC0xNzguMiAwIDAtMTYuNyA5Mi4xIDAgMC0zMS4yLTEwOS40IDAgMC0xOSAxMDkuNCAwIDAtNTAuNCA1MC45IDAgMCA1MC40IDEwOS40IDAgMCAxOS0xMDkuNCAwIDAgMzEuMiA4OC44IDBzLTE1LjIgNDYuNi0zOC4zIDkwLjljNDguOSAxNi43IDEwMCAzNiAxNDguNiA1Mi43bDAtMjM0LjRjLjItMzguNy0zMS4yLTcwLjMtNjkuOS03MC4zek00Ny4zIDMyM2MxIDIwLjIgMTAuMiA1My43IDY5LjkgNTMuNyA1Mi4xIDAgOTIuNi0zOS43IDExNy45LTcyLjktNDQuNi0xOC43LTg0LjUtMzEuNC0xMDkuNC0zMS40LTY3LjQgMC03OS40IDMzLjEtNzguNCA1MC42eiJdfSxjM3Q9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiY2MtYW1leCIsaWNvbjpbNTc2LDUxMixbXSwiZjFmMyIsIk0wIDQzMmMwIDI2LjUgMjEuNSA0OCA0OCA0OGw0ODAgMGMyNi41IDAgNDgtMjEuNSA0OC00OGwwLTEuMS02MS43IDAtMzEuOS0zNS4xLTMxLjkgMzUuMS0yMDMuNyAwIDAtMTYzLjgtNjUuOCAwIDgxLjctMTg0LjcgNzguNiAwIDI4LjEgNjMuMiAwLTYzLjIgOTcuMiAwIDE2LjkgNDcuNiAxNy00Ny42IDc1LjUgMCAwLTIuNGMwLTI2LjUtMjEuNS00OC00OC00OEw0OCAzMkMyMS41IDMyIDAgNTMuNSAwIDgwTDAgNDMyem00NDAuNC0yMS43bDQyLjItNDYuMyA0MiA0Ni4zIDUxLjQgMC02OC03Mi4xIDY4LTcyLjEtNTAuNiAwLTQyIDQ2LjctNDEuNS00Ni43LTUxLjQgMCA2Ny41IDcyLjUtNjcuNCA3MS42IDAtMzMuMS04MyAwIDAtMjIuMiA4MC45IDAgMC0zMi4zLTgwLjkgMCAwLTIyLjQgODMgMCAwLTMzLjEtMTIyIDAgMCAxNDMuMiAxNzEuOCAwem05Ni4zLTcybDM5LjMgNDEuOSAwLTgzLjMtMzkuMyA0MS40em0tMzYuMy05MmwzNi45LTEwMC42IDAgMTAwLjYgMzguNyAwIDAtMTQzLjMtNjAuMiAwLTMyLjIgODkuMy0zMS45LTg5LjMtNjEuMiAwIDAgMTQzLjEtNjMuMi0xNDMuMS01MS4yIDAtNjIuNCAxNDMuMyA0MyAwIDExLjktMjguNyA2NS45IDAgMTIgMjguNyA4Mi43IDAgMC0xMDAuMyAzNi44IDEwMC4zIDM0LjQgMHpNMjgyIDE4NS40bDE5LjUtNDYuOSAxOS40IDQ2LjktMzguOSAweiJdfSxkM3Q9e3ByZWZpeDoiZmFiIixpY29uTmFtZToicGllZC1waXBlci1hbHQiLGljb246WzU3Niw1MTIsW10sImYxYTgiLCJNMjQ0IDI0NmMtMy4yLTItNi4zLTIuOS0xMC4xLTIuOS02LjYgMC0xMi42IDMuMi0xOS4zIDMuN2wxLjcgNC45IDI3LjctNS43ek0zNzkuOSA0NDMuOWMtMTkgMC02NC4xIDkuNS03OS45IDE5LjhsNi45IDQ1LjFjMzUuNyA2LjEgNzAuMSAzLjYgMTA2LTkuOC00LjgtMTAtMjMuNS01NS4xLTMzLTU1LjF6TTM0MC44IDE3N2M2LjYgMi44IDExLjUgOS4yIDIyLjcgMjIuMSAyLTEuNCA3LjUtNS4yIDcuNS04LjYgMC00LjktMTEuOC0xMy4yLTEzLjItMjMgMTEuMi01LjcgMjUuMi02IDM3LjYtOC45IDY4LjEtMTYuNCAxMTYuMy01Mi45IDE0Ni44LTExNi43IDYuMS0xMi42IDExLjgtMjUuOCAxMi40LTM5LjlsLTIgMi42Yy0yOC40IDUwLTMzIDYzLjItODEuMyAxMDAtMzEuOSAyNC40LTY5LjIgNDAuMi0xMDYuNiA1NC42bC02LjMtLjMgMC0yMS44Yy0xOS42IDEuNi0xOS43LTE0LjYtMzEuNi0yMy0xOC43IDIwLjYtMzEuNiA0MC44LTU4LjkgNTEuMS0xMi43IDQuOC0xOS42IDEwLTI1LjkgMjEuOCAzNC45LTE2LjQgOTEuMi0xMy41IDk4LjgtMTB6TTU1NS41IDBsLS42IDEuMS0uMyAuOSAuNi0uNiAuMy0xLjR6TTQ5Ni4zIDM4Mi4xYy0zMy45LTU2LjktNzUuMy0xMTguNC0xNTAtMTE1LjVsLS4zLTZjLTEuMS0xMy41IDMyLjggMy4yIDM1LjEtMzFsLTE0LjQgNy4yYy0xOS44LTQ1LjctOC42LTU0LjMtNjUuNS01NC4zLTE0LjcgMC0yNi43IDEuNy00MS40IDQuNiAyLjkgMTguNiAyLjIgMzYuNy0xMC45IDUwLjNsMTkuNSA1LjVjLTEuNyAzLjItMi45IDYuMy0yLjkgOS44IDAgMjEgNDIuOCAyLjkgNDIuOCAzMy42IDAgMTguNC0zNi44IDYwLjEtNTQuOSA2MC4xLTggMC01My43LTUwLTUzLjQtNjAuMWwuMy00LjYgNTIuMy0xMS41YzEzLTIuNiAxMi4zLTIyLjctMi45LTIyLjctMy43IDAtNDMuMSA5LjItNDkuNCAxMC42LTItNS4yLTcuNS0xNC4xLTEzLjgtMTQuMS0zLjIgMC02LjMgMy4yLTkuNSA0LTkuMiAyLjYtMzEgMi45LTIxLjUgMjAuMUwxNS45IDI5OC41Yy01LjUgMS4xLTguOSA2LjMtOC45IDExLjggMCA2IDUuNSAxMC45IDExLjUgMTAuOSA4IDAgMTMxLjMtMjguNCAxNDcuNC0zMi4yIDIuNiAzLjIgNC42IDYuMyA3LjggOC42IDIwLjEgMTQuNCA1OS44IDg1LjkgNzYuNCA4NS45IDI0LjEgMCA1OC0yMi40IDcxLjMtNDEuOSAzLjItNC4zIDYuOS03LjUgMTIuNC02LjkgLjYgMTMuOC0zMS42IDM0LjItMzMgNDMuNy0xLjQgMTAuMi0xIDM1LjItLjMgNDEuMSAyNi43IDguMSA1Mi0zLjYgNzcuOS0yLjkgNC4zLTIxIDEwLjYtNDEuOSA5LjgtNjMuNWwtLjMtOS41Yy0xLjQtMzQuMi0xMC45LTM4LjUtMzQuOC01OC42LTEuMS0xLjEtMi42LTIuNi0zLjctNCAyLjItMS40IDEuMS0xIDQuNi0xLjcgODguNSAwIDU2LjMgMTgzLjYgMTExLjUgMjI5LjkgMzMuMS0xNSA3Mi41LTI3LjkgMTAzLjUtNDcuMi0yOS0yNS42LTUyLjYtNDUuNy03Mi43LTc5Ljl6TTMwMC4xIDQyOC4ybDAgMjcuMiAxMS44LTMuNC0yLjktMjMuOC04LjkgMHpNMjMxLjQgMjc3LjhsMjQuMSA2MS4yIDIxLTEzLjgtMzEuMy01MC45LTEzLjggMy41em04NC40IDE1NC45bDIgMTIuNGM5LTEuNSA1OC40LTYuNiA1OC40LTE0LjEgMC0xLjQtLjYtMy4yLS45LTQuNi0yNi44IDAtMzYuOSAzLjgtNTkuNSA2LjN6Il19LHUzdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJsZXR0ZXJib3hkIixpY29uOls2NDAsNTEyLFtdLCJlNjJkIiwiTTUyMS4zIDEyOEM1ODYuOSAxMjggNjQwIDE4MS4xIDY0MCAyNDYuNlM1ODYuOSAzNjUuMiA1MjEuMyAzNjUuMmMtNDIuNSAwLTc5LjctMjIuMy0xMDAuNy01NS44IDExLjQtMTguMiAxOC0zOS43IDE4LTYyLjhzLTYuNi00NC42LTE4LTYyLjhsLjgtMS4yYzIwLjgtMzIuMyA1Ni44LTUzLjkgOTcuOS01NC42bDIgMHpNMzIwIDEyOGM0Mi41IDAgNzkuNyAyMi4zIDEwMC43IDU1LjgtMTEuNCAxOC4yLTE4IDM5LjctMTggNjIuOHM2LjYgNDQuNiAxOCA2Mi44bC0uOCAxLjJjLTIwLjggMzIuMy01Ni44IDUzLjktOTcuOSA1NC42bC0yIDBjLTQyLjUgMC03OS43LTIyLjMtMTAwLjctNTUuOCAxMS40LTE4LjIgMTgtMzkuNyAxOC02Mi44cy02LjYtNDQuNi0xOC02Mi44bC44LTEuMmMyMC44LTMyLjMgNTYuOC01My45IDk3LjktNTQuNmwyIDB6bS0yMDEuMyAwYzQyLjUgMCA3OS43IDIyLjMgMTAwLjcgNTUuOC0xMS40IDE4LjItMTggMzkuNy0xOCA2Mi44czYuNiA0NC42IDE4IDYyLjhsLS44IDEuMmMtMjAuOCAzMi4zLTU2LjggNTMuOS05Ny45IDU0LjZsLTIgMEM1My4xIDM2NS4xIDAgMzEyLjEgMCAyNDYuNlM1My4xIDEyOCAxMTguNyAxMjh6Il19LHAzdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJvcGVyYSIsaWNvbjpbNTEyLDUxMixbXSwiZjI2YSIsIk0zMjEuOSAzMi43Yy0xNzAuMiAwLTI1Mi42IDIyMy44LTE0Ny41IDM1NS4xIDM2LjUgNDUuNCA4OC42IDc1LjYgMTQ3LjUgNzUuNiAzNi4zIDAgNzAuMy0xMS4xIDk5LjQtMzAuNC00My44IDM5LjItMTAxLjkgNjMtMTY1LjMgNjMtMy45IDAtOCAwLTExLjktLjMtMTMxLjUtNi4xLTIzNi4xLTExNC42LTIzNi4xLTI0Ny43IDAtMTM3IDExMS0yNDggMjQ4LTI0OGwuOCAwYzYzLjEgLjMgMTIwLjcgMjQuMSAxNjQuNCA2My4xLTI5LTE5LjQtNjMuMS0zMC40LTk5LjMtMzAuNHpNNDIzLjcgNDMwLjRjLTQwLjkgMjQuNy05MC43IDIzLjYtMTMyLTUuOCA1Ni4yLTIwLjUgOTcuNy05MS42IDk3LjctMTc2LjYgMC04NC43LTQxLjItMTU1LjgtOTcuNC0xNzYuNiA0MS44LTI5LjIgOTEuMi0zMC4zIDEzMi45LTUgMTA1LjkgOTguNyAxMDUuNSAyNjUuNy0xLjIgMzY0eiJdfSxoM3Q9e3ByZWZpeDoiZmFiIixpY29uTmFtZToid2VpYm8iLGljb246WzUxMiw1MTIsW10sImYxOGEiLCJNNDA3IDE3Ny42YzcuNi0yNC0xMy40LTQ2LjgtMzcuNC00MS43LTIyIDQuOC0yOC44LTI4LjEtNy4xLTMyLjggNTAuMS0xMC45IDkyLjMgMzcuMSA3Ni41IDg0LjgtNi44IDIxLjItMzguOCAxMC44LTMyLTEwLjN6TTIxNC44IDQ0Ni43Yy0xMDYuMyAwLTIxNC44LTUxLjQtMjE0LjgtMTM2LjMgMC00NC4zIDI4LTk1LjQgNzYuMy0xNDMuNyA5OS43LTk5LjcgMjAzLjItMTAwLjkgMTczLjYtNS43LTQgMTMuMSAxMi4zIDUuNyAxMi4zIDYgNzkuNS0zMy42IDE0MC41LTE2LjggMTE0IDUxLjQtMy43IDkuNCAxLjEgMTAuOSA4LjMgMTMuMSAxMzUuNyA0Mi4zIDM0LjggMjE1LjItMTY5LjcgMjE1LjJ6TTM1OC41IDMwMC40Yy01LjQtNTUuNy03OC41LTk0LTE2My40LTg1LjctODQuOCA4LjYtMTQ4LjggNjAuMy0xNDMuNCAxMTZzNzguNSA5NCAxNjMuNCA4NS43Yzg0LjgtOC42IDE0OC44LTYwLjMgMTQzLjQtMTE2ek0zNDcuOSAzNS4xYy0yNS45IDUuNi0xNi44IDQzLjcgOC4zIDM4LjMgNzIuMy0xNS4yIDEzNC44IDUyLjggMTExLjcgMTI0LTcuNCAyNC4yIDI5LjEgMzcgMzcuNCAxMiAzMS45LTk5LjgtNTUuMS0xOTUuOS0xNTcuNC0xNzQuM3ptLTc4LjUgMzExYy0xNy4xIDM4LjgtNjYuOCA2MC0xMDkuMSA0Ni4zLTQwLjgtMTMuMS01OC01My40LTQwLjMtODkuNyAxNy43LTM1LjQgNjMuMS01NS40IDEwMy40LTQ1LjEgNDIgMTAuOCA2My4xIDUwLjIgNDYgODguNXptLTg2LjMtMzBjLTEyLjktNS40LTMwIC4zLTM4IDEyLjktOC4zIDEyLjktNC4zIDI4IDguNiAzNCAxMy4xIDYgMzAuOCAuMyAzOS4xLTEyLjkgOC0xMy4xIDMuNy0yOC4zLTkuNy0zNHptMzIuNi0xMy40Yy01LjEtMS43LTExLjQgLjYtMTQuMyA1LjQtMi45IDUuMS0xLjQgMTAuNiAzLjcgMTIuOSA1LjEgMiAxMS43LS4zIDE0LjYtNS40IDIuOC01LjIgMS4xLTEwLjktNC0xMi45eiJdfSxmM3Q9e3ByZWZpeDoiZmFiIixpY29uTmFtZToicmVhZG1lIixpY29uOls1NzYsNTEyLFtdLCJmNGQ1IiwiTTUyOC4zIDQ2LjVsLTEzOS44IDBjLTQ4LjEgMC04OS45IDMzLjMtMTAwLjQgODAuMy0xMC42LTQ3LTUyLjMtODAuMy0xMDAuNC04MC4zTDQ4IDQ2LjVDMjEuNSA0Ni41IDAgNjggMCA5NC41TDAgMzQwLjNjMCAyNi41IDIxLjUgNDggNDggNDhsODkuNyAwYzEwMi4yIDAgMTMyLjcgMjQuNCAxNDcuMyA3NSAuNyAyLjggNS4yIDIuOCA2IDAgMTQuNy01MC42IDQ1LjItNzUgMTQ3LjMtNzVsODkuNyAwYzI2LjUgMCA0OC0yMS41IDQ4LTQ4bDAtMjQ1LjdjMC0yNi40LTIxLjMtNDcuOS00Ny43LTQ4LjF6TTI0MiAzMTEuOWMwIDEuOS0xLjUgMy41LTMuNSAzLjVsLTE2MC4zIDBjLTEuOSAwLTMuNS0xLjUtMy41LTMuNWwwLTIyLjljMC0xLjkgMS41LTMuNSAzLjUtMy41bDE2MC40IDBjMS45IDAgMy41IDEuNSAzLjUgMy41bDAgMjIuOS0uMSAwem0wLTYwLjljMCAxLjktMS41IDMuNS0zLjUgMy41bC0xNjAuMyAwYy0xLjkgMC0zLjUtMS41LTMuNS0zLjVsMC0yMi45YzAtMS45IDEuNS0zLjUgMy41LTMuNWwxNjAuNCAwYzEuOSAwIDMuNSAxLjUgMy41IDMuNWwwIDIyLjktLjEgMHptMC02MC45YzAgMS45LTEuNSAzLjUtMy41IDMuNWwtMTYwLjMgMGMtMS45IDAtMy41LTEuNS0zLjUtMy41bDAtMjIuOWMwLTEuOSAxLjUtMy41IDMuNS0zLjVsMTYwLjQgMGMxLjkgMCAzLjUgMS41IDMuNSAzLjVsMCAyMi45LS4xIDB6TTUwMS4zIDMxMS44YzAgMS45LTEuNSAzLjUtMy41IDMuNWwtMTYwLjMgMGMtMS45IDAtMy41LTEuNS0zLjUtMy41bDAtMjIuOWMwLTEuOSAxLjUtMy41IDMuNS0zLjVsMTYwLjQgMGMxLjkgMCAzLjUgMS41IDMuNSAzLjVsMCAyMi45LS4xIDB6bTAtNjAuOWMwIDEuOS0xLjUgMy41LTMuNSAzLjVsLTE2MC4zIDBjLTEuOSAwLTMuNS0xLjUtMy41LTMuNWwwLTIyLjljMC0xLjkgMS41LTMuNSAzLjUtMy41bDE2MC40IDBjMS45IDAgMy41IDEuNSAzLjUgMy41bDAgMjIuOS0uMSAwem0wLTYwLjljMCAxLjktMS41IDMuNS0zLjUgMy41bC0xNjAuMyAwYy0xLjkgMC0zLjUtMS41LTMuNS0zLjVsMC0yMi44YzAtMS45IDEuNS0zLjUgMy41LTMuNWwxNjAuNCAwYzEuOSAwIDMuNSAxLjUgMy41IDMuNWwwIDIyLjgtLjEgMHoiXX0sbTN0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImdvbGFuZyIsaWNvbjpbNjQwLDUxMixbXSwiZTQwZiIsIk00MDAuMSAxOTQuOGMtMTAuOSAyLjgtMTkuOSA0LjMtMjkuMSA3LjYtNy4zIDEuOS0xNC43IDMuOS0yMy4yIDYuMWwtLjYgLjFjLTQuMiAxLjItNC42IDEuMy04LjUtMy4yLTQuNy01LjMtOC4xLTguNy0xNC42LTExLjktMTkuNy05LjYtMzguNy02LjgtNTYuNCA0LjctMjEuMiAxMy43LTMyLjEgMzQtMzEuOCA1OS4yIC4zIDI1IDE3LjQgNDUuNSA0MS4yIDQ4LjkgMjIgMi44IDM5LjgtNC42IDUzLjgtMjAuNSAyLjEtMi42IDQtNS4zIDYuMS04LjMgLjgtMSAxLjUtMi4xIDIuMy0zLjNsLTYwLjEgMGMtNi41IDAtOC4xLTQtNS45LTkuMyA0LTkuNyAxMS41LTI1LjkgMTUuOS0zNCAuOS0xLjggMy4xLTUuOCA2LjktNS44bDEwMS4xIDBjNC41LTEzLjQgMTEuOC0yNi45IDIxLjYtMzkuNyAyMi43LTI5LjkgNDkuMy00NS41IDg3LjItNTIgMzEuOC01LjYgNjEuNy0yLjUgODguOSAxNS45IDI0LjYgMTYuOCAzOS44IDM5LjYgNDMuOSA2OS41IDUuMyA0Mi4xLTYuOSA3Ni4zLTM2LjcgMTA1LjYtMTkuNyAyMC45LTQ0LjkgMzQtNzMuOSAzOS45LTUuNiAxLTExLjEgMS41LTE2LjUgMi0yLjkgLjItNS43IC41LTguNSAuOC0yOC4zLS42LTU0LjItOC43LTc2LTI3LjQtMTUuMy0xMy4zLTI1LjktMjkuNi0zMS4xLTQ4LjUtMy43IDcuMy04IDE0LjQtMTQgMjEuMS0yMS42IDI5LjYtNTAuOSA0OC04Ny45IDUyLjktMzAuNiA0LjEtNTguOS0xLjgtODMuOS0yMC41LTIzLTE3LjUtMzYuMS00MC41LTM5LjUtNjkuMi00LjEtMzQgNS45LTY1LjQgMjYuNC05MS4zIDIyLjItMjkgNTEuNS00Ny40IDg3LjMtNTMuOSAyOS4zLTYuMiA1Ny4zLTEuOSA4Mi42IDE1LjMgMTYuNSAxMC45IDI4LjMgMjUuOCAzNi4xIDQzLjkgMS45IDIuOCAuNiA0LjQtMy4xIDUuM3pNNDguMyAyMDAuNGMtMS4zIDAtMS42LS42LS45LTEuNmw2LjYtOC40Yy42LS45IDIuMi0xLjUgMy40LTEuNWwxMTEuMyAwYzEuMiAwIDEuNSAuOSAuOSAxLjhsLTUuMyA4LjFjLS42IDEtMi4yIDEuOS0zLjEgMS45bC0xMTIuOC0uM3pNMS4yIDIyOS4xYy0xLjIgMC0xLjYtLjctLjktMS42bDYuNS04LjRjLjYtLjkgMi4yLTEuNiAzLjQtMS42bDE0Mi4xIDBjMS4yIDAgMS44IDEgMS41IDEuOWwtMi41IDcuNWMtLjMgMS4yLTEuNSAxLjktMi44IDEuOUwxLjIgMjI5LjF6bTc0LjUgMjYuOGMtLjYgLjktLjMgMS44IC45IDEuOGw2OCAuM2MuOSAwIDIuMi0uOSAyLjItMi4xbC42LTcuNWMwLTEuMy0uNi0yLjItMS45LTIuMmwtNjIuMyAwYy0xLjIgMC0yLjUgLjktMy4xIDEuOWwtNC40IDcuOHptNTAxLjUtMThjLS4yLTIuNi0uMy00LjgtLjctNy01LjYtMzAuOC0zNC00OC4zLTYzLjYtNDEuNC0yOSA2LjUtNDcuNyAyNC45LTU0LjUgNTQuMi01LjYgMjQuMyA2LjIgNDguOSAyOC42IDU4LjkgMTcuMiA3LjUgMzQuMyA2LjYgNTAuOC0xLjkgMjQuNi0xMy42IDM4LTMyLjcgMzkuNi01OS41LS4xLTEuMi0uMS0yLjMtLjItMy4zeiJdfSxnM3Q9e3ByZWZpeDoiZmFiIixpY29uTmFtZToic3RhY2stZXhjaGFuZ2UiLGljb246WzQ0OCw1MTIsW10sImYxOGQiLCJNMTguMSAzMzIuM2w0MTIuNyAwIDAgMjJjMCAzNy43LTI5LjMgNjgtNjUuMyA2OGwtMTkgMC04Ni44IDg5LjcgMC04OS43LTE3Ni4zIDBjLTM2IDAtNjUuMy0zMC4zLTY1LjMtNjhsMC0yMnptMC0yMy42bDQxMi43IDAgMC04NS00MTIuNyAwIDAgODV6bTAtMTA5LjRsNDEyLjcgMCAwLTg1LTQxMi43IDAgMCA4NXpNMzY1LjQgMEw4My40IDBjLTM2IDAtNjUuMyAzMC4zLTY1LjMgNjcuN2wwIDIyLjMgNDEyLjcgMCAwLTIyLjNDNDMwLjcgMzAuMyA0MDEuNCAwIDM2NS40IDB6Il19LGIzdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJndWxwIixpY29uOlsyNTYsNTEyLFtdLCJmM2FlIiwiTTIxMCAzOTEuMWwtMTQuMSAyNC42LTQuNiA4MC4yYzAgOC45LTI4LjMgMTYuMS02My4xIDE2LjFzLTYzLjEtNy4yLTYzLjEtMTYuMWwtNS44LTc5LjQtMTQuOS0yNS40YzQxLjIgMTcuMyAxMjYgMTYuNyAxNjUuNiAwek0xNCAxMzcuOEwyNy42IDI2My4zYzUuOS0yMCAyMC44LTQ3IDQwLTU1LjIgNi4zLTIuNyAxMi43LTIuNyAxOC43IC45IDUuMiAzIDkuNiA5LjMgMTAuMSAxMS44IDEuMiA2LjUtMiA5LjEtNC41IDkuMS0zIDAtNS4zLTQuNi02LjgtNy4zLTQuMS03LjMtMTAuMy03LjYtMTYuOS0yLjgtNi45IDUtMTIuOSAxMy40LTE3LjEgMjAuNy01LjEgOC44LTkuNCAxOC41LTEyIDI4LjItMS41IDUuNi0yLjkgMTQuNi0uNiAxOS45IDEgMi4yIDIuNSAzLjYgNC45IDMuNiA1IDAgMTIuMy02LjYgMTUuOC0xMC4xIDQuNS00LjUgMTAuMy0xMS41IDEyLjUtMTZsNS4yLTE1LjVjMi42LTYuOCA5LjktNS42IDkuOSAwIDAgMTAuMi0zLjcgMTMuNi0xMCAzNC43LTUuOCAxOS41LTcuNiAyNS44LTcuNiAyNS44LS43IDIuOC0zLjQgNy41LTYuMyA3LjUtMS4yIDAtMi4xLS40LTIuNi0xLjItMS0xLjQtLjktNS4zLS44LTYuMyAuMi0zLjIgNi4zLTIyLjIgNy4zLTI1LjItMiAyLjItNC4xIDQuNC02LjQgNi42LTUuNCA1LjEtMTQuMSAxMS44LTIxLjUgMTEuOC0zLjQgMC01LjYtLjktNy43LTIuNGw3LjYgNzkuNmMyIDUgMzkuMiAxNy4xIDg4LjIgMTcuMSA0OS4xIDAgODYuMy0xMi4yIDg4LjItMTcuMWwxMC45LTk0LjZjLTUuNyA1LjItMTIuMyAxMS42LTE5LjYgMTQuOC01LjQgMi4zLTE3LjQgMy44LTE3LjQtNS43IDAtNS4yIDkuMS0xNC44IDE0LjQtMjEuNSAxLjQtMS43IDQuNy01LjkgNC43LTguMSAwLTIuOS02LTIuMi0xMS43IDIuNS0zLjIgMi43LTYuMiA2LjMtOC43IDkuNy00LjMgNi02LjYgMTEuMi04LjUgMTUuNS02LjIgMTQuMi00LjEgOC42LTkuMSAyMi01IDEzLjMtNC4yIDExLjgtNS4yIDE0LS45IDEuOS0yLjIgMy41LTQgNC41LTEuOSAxLTQuNSAuOS02LjEtLjMtLjktLjYtMS4zLTEuOS0xLjMtMy43IDAtLjkgLjEtMS44IC4zLTIuNyAxLjUtNi4xIDcuOC0xOC4xIDE1LTM0LjMgMS42LTMuNyAxLTIuNiAuOC0yLjMtNi4yIDYtMTAuOSA4LjktMTQuNCAxMC41LTUuOCAyLjYtMTMgMi42LTE0LjUtNC4xLS4xLS40LS4xLS44LS4yLTEuMi0xMS44IDkuMi0yNC4zIDExLjctMjAtOC4xLTQuNiA4LjItMTIuNiAxNC45LTIyLjQgMTQuOS00LjEgMC03LjEtMS40LTguNi01LjEtMi4zLTUuNSAxLjMtMTQuOSA0LjYtMjMuOCAxLjctNC41IDQtOS45IDcuMS0xNi4yIDEuNi0zLjQgNC4yLTUuNCA3LjYtNC41IC42IC4yIDEuMSAuNCAxLjYgLjcgMi42IDEuOCAxLjYgNC41IC4zIDcuMi0zLjggNy41LTcuMSAxMy05LjMgMjAuOC0uOSAzLjMtMiA5IDEuNSA5IDIuNCAwIDQuNy0uOCA2LjktMi40IDQuNi0zLjQgOC4zLTguNSAxMS4xLTEzLjUgMi0zLjYgNC40LTguMyA1LjYtMTIuMyAuNS0xLjcgMS4xLTMuMyAxLjgtNC44IDEuMS0yLjUgMi42LTUuMSA1LjItNS4xIDEuMyAwIDIuNCAuNSAzLjIgMS41IDEuNyAyLjIgMS4zIDQuNSAuNCA2LjktMiA1LjYtNC43IDEwLjYtNi45IDE2LjctMS4zIDMuNS0yLjcgOC0yLjcgMTEuNyAwIDMuNCAzLjcgMi42IDYuOCAxLjIgMi40LTEuMSA0LjgtMi44IDYuOC00LjUgMS4yLTQuOSAuOS0zLjggMjYuNC02OC4yIDEuMy0zLjMgMy43LTQuNyA2LjEtNC43IDEuMiAwIDIuMiAuNCAzLjIgMS4xIDEuNyAxLjMgMS43IDQuMSAxIDYuMi0uNyAxLjktLjYgMS4zLTQuNSAxMC41LTUuMiAxMi4xLTguNiAyMC44LTEzLjIgMzEuOS0xLjkgNC42LTcuNyAxOC45LTguNyAyMi4zLS42IDIuMi0xLjMgNS44IDEgNS44IDUuNCAwIDE5LjMtMTMuMSAyMy4xLTE3IC4yLS4zIC41LS40IC45LS42IC42LTEuOSAxLjItMy43IDEuNy01LjUgMS40LTMuOCAyLjctOC4yIDUuMy0xMS4zIC44LTEgMS43LTEuNiAyLjctMS42IDIuOCAwIDQuMiAxLjIgNC4yIDQgMCAxLjEtLjcgNS4xLTEuMSA2LjIgMS40LTEuNSAyLjktMyA0LjUtNC41IDE1LTEzLjkgMjUuNy02LjggMjUuNyAuMiAwIDcuNC04LjkgMTcuNy0xMy44IDIzLjQtMS42IDEuOS00LjkgNS40LTUgNi40IDAgMS4zIC45IDEuOCAyLjIgMS44IDIgMCA2LjQtMy41IDgtNC43IDUtMy45IDExLjgtOS45IDE2LjYtMTQuMWwxNC44LTEzNi44Yy0zMC41IDE3LjEtMTk3LjYgMTcuMi0yMjguMyAuMnptMjI5LjctOC41YzAgMjEtMjMxLjIgMjEtMjMxLjIgMCAwLTguOCA1MS44LTE1LjkgMTE1LjYtMTUuOSA5IDAgMTcuOCAuMSAyNi4zIC40TDE2NyA2NS4xIDIyOC4zIC42YzEuNC0xLjQgNS44LS4yIDkuOSAzLjVzNi42IDcuOSA1LjMgOS4zbC0uMSAuMS01Ny4zIDYwLjUtMTAgNDAuN2MzOS45IDIuNiA2Ny42IDguMSA2Ny42IDE0LjZ6bS02OS40IDQuNmMwLS44LS45LTEuNS0yLjUtMi4xbC0uMiAuOGMwIDEuMy01IDIuNC0xMS4xIDIuNHMtMTEuMS0xLjEtMTEuMS0yLjRjMC0uMSAwLS4yIC4xLS4zbC4yLS43Yy0xLjggLjYtMyAxLjQtMyAyLjMgMCAyLjEgNi4yIDMuNyAxMy43IDMuNyA3LjcgLjEgMTMuOS0xLjYgMTMuOS0zLjd6Il19LHYzdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJ5ZWxwIixpY29uOlszODQsNTEyLFtdLCJmMWU5IiwiTTQyLjkgMjQwLjNsOTkuNiA0OC42YzE5LjIgOS40IDE2LjIgMzcuNS00LjUgNDIuN0wzMC41IDM1OC41Yy0zLjIgLjgtNi40IC45LTkuNiAuM3MtNi4yLTEuOC04LjktMy43LTQuOS00LjMtNi42LTcuMS0yLjctNS45LTMuMS05LjJjLTMuMy0yOC44LS4yLTU3LjkgOS04NS4zIDEtMy4xIDIuNy01LjkgNC45LTguM3M0LjktNC4yIDcuOS01LjUgNi4yLTEuOCA5LjUtMS44IDYuNCAuOSA5LjMgMi4zem00NCAyMzkuM2MyMy44IDE2LjMgNTAuOSAyNy4zIDc5LjQgMzIuMSAzLjIgLjYgNi41IC40IDkuNi0uNHM2LjEtMi4zIDguNi00LjQgNC42LTQuNiA2LTcuNSAyLjMtNi4xIDIuNC05LjRsMy45LTExMC44Yy43LTIxLjMtMjUuNS0zMS45LTM5LjgtMTYuMUw4Mi44IDQ0NS41Yy0yLjIgMi40LTMuOCA1LjMtNC44IDguNHMtMS4zIDYuNC0uOSA5LjYgMS41IDYuMyAzLjEgOS4xIDMuOSA1LjIgNi42IDdsMCAwek0yMzIuMiAzNjkuN2w1OC44IDk0YzEuNyAyLjggNCA1LjEgNi44IDYuOXM1LjggMyA5IDMuNSA2LjUgLjMgOS43LS41IDYuMS0yLjQgOC42LTQuNGMyMi4zLTE4LjQgNDAuMy00MS41IDUyLjctNjcuNiAxLjQtMi45IDIuMS02LjEgMi4yLTkuNHMtLjYtNi41LTEuOS05LjQtMy4yLTUuNy01LjYtNy44LTUuMi0zLjktOC4zLTQuOUwyNTguNyAzMzUuN2MtMjAuMy02LjUtMzcuOCAxNS44LTI2LjUgMzMuOXpNMzgwLjYgMjM3LjRjLTExLjUtMjYuNS0yOC43LTUwLjItNTAuNC02OS4zLTIuNC0yLjEtNS4zLTMuNy04LjQtNC43cy02LjQtMS4yLTkuNi0uOC02LjMgMS41LTkuMSAzLjItNS4xIDQtNi45IDYuN2wtNjIgOTEuOWMtMTEuOSAxNy43IDQuNyA0MC42IDI1LjIgMzQuN0wzNjYgMjY4LjZjMy4xLS45IDYtMi41IDguNS00LjZzNC41LTQuNyA1LjgtNy43IDIuMS02LjIgMi4yLTkuNC0uNi02LjUtMS45LTkuNWwwIDB6TTYyLjEgMzAuMmMtMi44IDEuNC01LjQgMy4zLTcuNCA1LjdzLTMuNiA1LjItNC41IDguMi0xLjIgNi4yLS45IDkuMyAxLjMgNi4xIDIuOSA4LjlMMTU2LjMgMjQyLjZjMTEuNyAyMC4yIDQyLjYgMTEuOSA0Mi42LTExLjRsMC0yMDguM2MwLTMuMS0uNi02LjMtMS44LTkuMnMtMy4xLTUuNS01LjQtNy42LTUtMy44LTgtNC44LTYuMS0xLjQtOS4zLTEuMmMtMzkgMy4xLTc3IDEzLjMtMTEyLjMgMzAuMXoiXX0seDN0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImdvZm9yZSIsaWNvbjpbNDQ4LDUxMixbXSwiZjNhNyIsIk0zNDggMzE5LjhsLTEzLjIgMCAwIDM0LjdjLTI0LjUgMjMuMS01Ni4zIDM1LjgtODkuOSAzNS44LTczLjIgMC0xMzIuNC02MC4yLTEzMi40LTEzNC40IDAtNzQuMSA1OS4yLTEzNC40IDEzMi40LTEzNC40IDM1LjMgMCA2OC42IDE0IDkzLjYgMzkuNGw2Mi4zLTYzLjNjLTQxLjgtNDIuMy05Ny4xLTY1LjYtMTU2LjEtNjUuNi0xMjIuNyAwLTIyMC43IDEwMC42LTIyMC43IDIyNCAwIDEyMi41IDk3IDIyNCAyMjAuNyAyMjQgNjMuMiAwIDEyNC41LTI2LjIgMTcxLTgyLjUtMi0yNy42LTEzLjQtNzcuNy02Ny43LTc3Ljd6TTMzNS45IDIwNy4zbC0xMDYuMyAwIDAgODkgMTE4LjQgMGMzMy41IDAgNjAuNSAxNS4xIDc2IDQxLjhsMC0zMC42YzAtNjUuMi00MC40LTEwMC4yLTg4LjEtMTAwLjJ6Il19LHkzdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJhdmlhdG8iLGljb246WzY0MCw1MTIsW10sImY0MjEiLCJNMTA3LjIgMjgzLjVsLTE5LTQxLjgtNTIuMSAwLTE5IDQxLjgtMTcuMSAwIDYyLjItMTMxLjQgNjIuMiAxMzEuNC0xNy4yIDB6bS00NS05OC4xbC0xOS42IDQyLjUgMzkuMiAwLTE5LjYtNDIuNXpNMTc0LjkgMjg3LjhsLTYyLjItMTMxLjQgMTcuMSAwIDQ1LjEgOTYgNDUuMS05NiAxNyAwLTYyLjEgMTMxLjR6bTgwLjYtNC4zbDAtMTI3LjEgMTUuNSAwIDAgMTI3LjEtMTUuNSAwek00NjQuNiAxNjcuOWwwIDExNS42LTE3LjMgMCAwLTExNS42LTQxLjIgMCAwLTExLjUgOTkuNiAwIDAgMTEuNS00MS4xIDB6TTY0MCAyMTguOGMwIDkuMi0xLjcgMTcuOC01LjEgMjUuOHMtOC4yIDE1LjEtMTQuMiAyMS4xLTEzLjEgMTAuOC0yMS4xIDE0LjItMTYuNiA1LjEtMjUuOCA1LjEtMTcuOC0xLjctMjUuOC01LjEtMTUuMS04LjItMjEuMS0xNC4yLTEwLjgtMTMtMTQuMi0yMS4xYy0zLjQtOC01LjEtMTYuNi01LjEtMjUuOHMxLjctMTcuOCA1LjEtMjUuOCA4LjItMTUuMSAxNC4yLTIxLjEgMTMtOC40IDIxLjEtMTEuOWM4LTMuNCAxNi42LTUuMSAyNS44LTUuMXMxNy44IDEuNyAyNS44IDUuMSAxNS4xIDUuOCAyMS4xIDExLjljNiA2IDEwLjcgMTMuMSAxNC4yIDIxLjEgMy40IDggNS4xIDE2LjYgNS4xIDI1Ljh6bS0xNS41IDBjMC03LjMtMS4zLTE0LTMuOS0yMC4zcy02LjItMTEuNy0xMC44LTE2LjMtMTAtOC4yLTE2LjItMTAuOS0xMi44LTQtMTkuOC00LTEzLjYgMS4zLTE5LjggNC0xMS42IDYuMy0xNi4yIDEwLjktOC4yIDEwLTEwLjggMTYuMy0zLjkgMTMuMS0zLjkgMjAuM2MwIDcuMyAxLjMgMTQgMy45IDIwLjNzNi4yIDExLjcgMTAuOCAxNi4zIDEwIDguMiAxNi4yIDEwLjkgMTIuOCA0IDE5LjggNCAxMy42LTEuMyAxOS44LTQgMTEuNi02LjMgMTYuMi0xMC45IDguMi0xMCAxMC44LTE2LjMgMy45LTEzLjEgMy45LTIwLjN6bS05NC44IDk2LjdsMC02LjMgODguOS0xMC0yNDIuOSAxMy40Yy42LTIuMiAxLjEtNC42IDEuNC03LjIgLjMtMiAuNS00LjIgLjYtNi41bDY0LjgtOC4xLTY0LjkgMS45YzAtLjQtLjEtLjctLjEtMS4xLTIuOC0xNy4yLTI1LjUtMjMuNy0yNS41LTIzLjdsLTEuMS0yNi4zIDIzLjggMCAxOSA0MS44IDE3LjEgMC02Mi4yLTEzMS40LTYyLjIgMTMxLjQgMTcuMSAwIDE5LTQxLjggMjMuNiAwLTEuMSAyNi40cy0yMi43IDYuNS0yNS41IDIzLjdjLS4xIC4zLS4xIC43LS4xIDEuMWwtNjQuOS0xLjkgNjQuOCA4LjFjLjEgMi4zIC4zIDQuNCAuNiA2LjUgLjMgMi42IC44IDUgMS40IDcuMmwtMjQyLjktMTMuNSA4OC45IDEwIDAgNi4zYy01LjkgLjktMTAuNSA2LTEwLjUgMTIuMiAwIDYuOCA1LjYgMTIuNCAxMi40IDEyLjRzMTIuNC01LjYgMTIuNC0xMi40YzAtNi4yLTQuNi0xMS4zLTEwLjUtMTIuMmwwLTUuOCA4MC4zIDkgMCA1LjRjLTUuNyAxLjEtOS45IDYuMi05LjkgMTIuMSAwIDYuOCA1LjYgMTAuMiAxMi40IDEwLjJzMTIuNC0zLjQgMTIuNC0xMC4yYzAtNi00LjMtMTEtOS45LTEyLjFsMC00LjkgMjguNCAzLjIgMCAyMy43LTUuOSAwIDAgMTMuOSA1LjkgMCAwLTYuNiA1IDAgMCA2LjYgNS45IDAgMC0xMy44LTUuOSAwIDAtMjMuMiAzOC4zIDQuM2M4LjEgMTEuNCAxOSAxMy42IDE5IDEzLjZsLS4xIDYuNy01LjEgLjItLjEgMTIuMSA0LjEgMCAuMS01IDUuMiAwIC4xIDUgNC4xIDAtLjEtMTIuMS01LjEtLjItLjEtNi43czEwLjktMi4xIDE5LTEzLjZsMzguMy00LjMgMCAyMy4yLTUuOSAwIDAgMTMuOCA1LjkgMCAwLTYuNiA1IDAgMCA2LjYgNS45IDAgMC0xMy44LTUuOSAwIDAtMjMuNyAyOC40LTMuMiAwIDQuOWMtNS43IDEuMS05LjkgNi4yLTkuOSAxMi4xIDAgNi44IDUuNiAxMC4yIDEyLjQgMTAuMnMxMi40LTMuNCAxMi40LTEwLjJjMC02LTQuMy0xMS05LjktMTIuMWwwLTUuNCA4MC4zLTkgMCA1LjhjLTUuOSAuOS0xMC41IDYtMTAuNSAxMi4yIDAgNi44IDUuNiAxMi40IDEyLjQgMTIuNHMxMi40LTUuNiAxMi40LTEyLjRjLS4yLTYuMy00LjctMTEuNC0xMC43LTEyLjN6TTMyOC45IDIyNy45bDE5LjYtNDIuNSAxOS42IDQyLjUtMTcuOSAwLTEuNy00MC4zLTEuNyA0MC4zLTE3LjkgMHoiXX0sdzN0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6InBhZGxldCIsaWNvbjpbNjQwLDUxMixbXSwiZTRhMCIsIk0yOTcuOSAwbC4xIDBjNy42IC4xIDE0LjQgNC43IDE3LjUgMTEuOGwxMzIgMzA4LjUgLjMtLjEgLjIgLjQtMi44IDEwLTQyLjkgMTU4Yy0zLjcgMTYuMi0xOS43IDI2LjMtMzUuOCAyMi42bC02OC40LTE1LjYtNjguNSAxNS42Yy0xNi4xIDMuNy0zMi4xLTYuNC0zNS44LTIyLjZsLTQyLjktMTU4LTIuNy0xMCAuMS0uNCAxMzIuMS0zMDguNGMzLTcgOS45LTExLjYgMTcuNS0xMS44ek0xNjAuMSAzMjIuMWwxMzEgMzkuMSA2LjkgMTIyLjUgNy45LTEyMS41IDEzMC42LTM5LjMgLjItLjEtMTMxIDI1LjEtOC42LTMyMC4yLTUuMiAzMjAuMi0xMzEuOC0yNS44ek00MjYgMjIyLjZsOTQuNC00MSA3My44IDAtMTU3IDI0Ny42IDMxLjYtMTA5LTQyLjgtOTcuNnptMTcxLjUtNDEuMmw0MS40IDc2LjJjNCA3LjUtMy45IDE1LjktMTEuNiAxMi4ybC00Ny42LTIyLjcgMTcuOC02NS43ek0xMjcuMyAzMTguNUwxNTguNyA0MzAgMS42IDE1NC41Yy01LjktMTAuNCA1LjUtMjIgMTUuOS0xNi4ybDE1MS44IDg0LjItNDIuMSA5NnoiXX0sTTN0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImVkZ2UtbGVnYWN5IixpY29uOls0NDgsNTEyLFtdLCJlMDc4IiwiTS02IDIyOC4ybC40LS41YzAgLjIgMCAuMy0uMSAuNWwtLjMgMHptNDYwLjYgMTUuNWMwLTQ0LTcuOC04NC41LTI4LjgtMTIyLjQtNDEtNzMuNC0xMTMuNi0xMTMuMy0xOTguNi0xMTMuMy0xMzkuOS0uMy0yMTguMyAxMDUuMi0yMzIuOCAyMTkuNyA0Mi40LTYxLjMgMTE3LjEtMTIxLjQgMjIwLjQtMTI1IDAgMCAxMDkuNyAwIDk5LjQgMTA1bC0xNzUuOCAwYzYuNC0zNy40IDE4LjUtNTkgMzQuMy03OC45LTc1IDM0LjktMTIxLjggOTYuMS0xMjAuOCAxODguMyAuOCA3MS41IDUwLjEgMTQ0LjggMTIwLjggMTcyIDgzLjQgMzEuOCAxOTIuOCA3LjIgMjQwLjEtMjEuM2wwLTEwNC40Yy04MC45IDU2LjUtMjcwLjkgNjAuOS0yNzIuMy02Ny42bDMxNC4xIDAgMC01Mi4xeiJdfSxnbmU9e3ByZWZpeDoiZmFiIixpY29uTmFtZToic3F1YXJlLWxhc3RmbSIsaWNvbjpbNDQ4LDUxMixbImxhc3RmbS1zcXVhcmUiXSwiZjIwMyIsIk00NDggOTZjMC0zNS4zLTI4LjctNjQtNjQtNjRMNjQgMzJDMjguNyAzMiAwIDYwLjcgMCA5NkwwIDQxNmMwIDM1LjMgMjguNyA2NCA2NCA2NGwzMjAgMGMzNS4zIDAgNjQtMjguNyA2NC02NGwwLTMyMHpNMjEwLjcgMjgwLjhjLTEuOC01LjUtMy40LTEwLjgtNS0xNS45LTEyLjktNDEuOS0yMS02OC40LTU4LTY4LjQtMjIuNCAwLTQ1LjEgMTYuMS00NS4xIDYxLjIgMCAzNS4yIDE4IDU3LjIgNDMuMyA1Ny4yIDI4LjYgMCA0Ny42LTIxLjMgNDcuNi0yMS4zbDExLjcgMzEuOXMtMTkuOCAxOS40LTYxLjIgMTkuNGMtNTEuMyAwLTc5LjktMzAuMS03OS45LTg1LjggMC01Ny45IDI4LjYtOTIgODIuNS05MiA2Ny45IDAgNzkuMyAzNS4zIDk2LjQgODguNCAxLjQgNC40IDIuOSA4LjkgNC40IDEzLjUgOC44IDI2LjggMjQuMiA0Ni4yIDYxLjIgNDYuMiAyNC45IDAgMzguMS01LjUgMzguMS0xOS4xIDAtMTcuNS0xNi45LTIxLjItNDAtMjYuNC0zLjItLjctNi41LTEuNC05LjktMi4yLTMwLjQtNy4zLTQyLjUtMjMuMS00Mi41LTQ4IDAtNDAgMzIuMy01Mi40IDY1LjItNTIuNCAzNy40IDAgNjAuMSAxMy42IDYzIDQ2LjZsLTM2LjcgNC40Yy0xLjUtMTUuOC0xMS0yMi40LTI4LjYtMjIuNC0xNi4xIDAtMjYgNy4zLTI2IDE5LjggMCAxMSA0LjggMTcuNiAyMC45IDIxLjMgMi4yIC41IDQuNSAxIDYuNyAxLjQgMzEuMSA2LjUgNjUuMSAxMy43IDY1LjEgNTYuMSAuMSAzNi43LTMwLjcgNTAuNi03Ni4xIDUwLjYtNjMuNCAwLTg1LjQtMjguNi05Ny4xLTY0LjF6Il19LGszdD1nbmUsUzN0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6Imdvb2RyZWFkcy1nIixpY29uOlszMjAsNTEyLFtdLCJmM2E5IiwiTTEwLjggNDAzLjNsMi44IDBjMTIuNyAwIDI1LjUgMCAzOC4yIC4xIDEuNiAwIDMuMS0uNCAzLjYgMi4xIDcuMSAzNC45IDMwIDU0LjYgNjIuOSA2My45IDI2LjkgNy42IDU0LjEgNy44IDgxLjMgMS44IDMzLjgtNy40IDU2LTI4LjMgNjgtNjAuNCA4LTIxLjUgMTAuNy00My44IDExLTY2LjUgLjEtNS44IC4zLTQ3LS4yLTUyLjhsLS45LS4zYy0uOCAxLjUtMS43IDIuOS0yLjUgNC40LTIyLjEgNDMuMS02MS4zIDY3LjQtMTA1LjQgNjkuMS0xMDMgNC0xNjkuNC01Ny0xNzItMTc2LjItLjUtMjMuNyAxLjgtNDYuOSA4LjMtNjkuNyAyMC42LTcxLjEgNzQuNi0xMTguMiAxNTMuOS0xMTguOCA2MS4zLS40IDEwMS41IDM4LjcgMTE2LjIgNzAuMyAuNSAxLjEgMS4zIDIuMyAyLjQgMS45bDAtNjEuNiA0NC4zIDBjMCAyODAuMyAuMSAzMzIuMiAuMSAzMzIuMi0uMSA3OC41LTI2LjcgMTQzLjctMTAzIDE2Mi4yLTY5LjUgMTYuOS0xNTkgNC44LTE5Ni01Ny4yLTgtMTMuNS0xMS44LTI4LjMtMTMtNDQuNXpNMTU3LjEgMzYuNWMtNTIuNS0uNS0xMDguNSA0MC43LTExNSAxMzMuOC00LjEgNTkgMTQuOCAxMjIuMiA3MS41IDE0OC42IDI3LjYgMTIuOSA3NC4zIDE1IDEwOC4zLTguNyA0Ny42LTMzLjIgNjIuNy05NyA1NC44LTE1NC05LjctNzEuMS00Ny44LTEyMC0xMTkuNi0xMTkuN3oiXX0sejN0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImNjLW1hc3RlcmNhcmQiLGljb246WzU3Niw1MTIsW10sImYxZjEiLCJNNDgyLjkgNDEwLjNjMCA2LjgtNC42IDExLjctMTEuMiAxMS43LTYuOCAwLTExLjItNS4yLTExLjItMTEuN3M0LjQtMTEuNyAxMS4yLTExLjdjNi42IDAgMTEuMiA1LjIgMTEuMiAxMS43ek0xNzIuMSAzOTguNmMtNy4xIDAtMTEuMiA1LjItMTEuMiAxMS43UzE2NSA0MjIgMTcyLjEgNDIyYzYuNSAwIDEwLjktNC45IDEwLjktMTEuNy0uMS02LjUtNC40LTExLjctMTAuOS0xMS43em0xMTcuNS0uM2MtNS40IDAtOC43IDMuNS05LjUgOC43bDE5LjEgMGMtLjktNS43LTQuNC04LjctOS42LTguN3ptMTA3LjggLjNjLTYuOCAwLTEwLjkgNS4yLTEwLjkgMTEuN3M0LjEgMTEuNyAxMC45IDExLjcgMTEuMi00LjkgMTEuMi0xMS43YzAtNi41LTQuNC0xMS43LTExLjItMTEuN3ptMTA1LjkgMjYuMWMwIC4zIC4zIC41IC4zIDEuMSAwIC4zLS4zIC41LS4zIDEuMS0uMyAuMy0uMyAuNS0uNSAuOC0uMyAuMy0uNSAuNS0xLjEgLjUtLjMgLjMtLjUgLjMtMS4xIC4zLS4zIDAtLjUgMC0xLjEtLjMtLjMgMC0uNS0uMy0uOC0uNS0uMy0uMy0uNS0uNS0uNS0uOC0uMy0uNS0uMy0uOC0uMy0xLjEgMC0uNSAwLS44IC4zLTEuMSAwLS41IC4zLS44IC41LTEuMSAuMy0uMyAuNS0uMyAuOC0uNSAuNS0uMyAuOC0uMyAxLjEtLjMgLjUgMCAuOCAwIDEuMSAuMyAuNSAuMyAuOCAuMyAxLjEgLjVzLjIgLjYgLjUgMS4xem0tMi4yIDEuNGMuNSAwIC41LS4zIC44LS4zIC4zLS4zIC4zLS41IC4zLS44czAtLjUtLjMtLjhjLS4zIDAtLjUtLjMtMS4xLS4zbC0xLjYgMCAwIDMuNSAuOCAwIDAtMS40IC4zIDAgMS4xIDEuNCAuOCAwLTEuMS0xLjN6TTU3NiA4MWwwIDM1MmMwIDI2LjUtMjEuNSA0OC00OCA0OEw0OCA0ODFjLTI2LjUgMC00OC0yMS41LTQ4LTQ4TDAgODFDMCA1NC41IDIxLjUgMzMgNDggMzNsNDgwIDBjMjYuNSAwIDQ4IDIxLjUgNDggNDh6TTY0IDIyMC42YzAgNzYuNSA2Mi4xIDEzOC41IDEzOC41IDEzOC41IDI3LjIgMCA1My45LTguMiA3Ni41LTIzLjEtNzIuOS01OS4zLTcyLjQtMTcxLjIgMC0yMzAuNS0yMi42LTE1LTQ5LjMtMjMuMS03Ni41LTIzLjEtNzYuNC0uMS0xMzguNSA2Mi0xMzguNSAxMzguMnpNMjg4IDMyOS40YzcwLjUtNTUgNzAuMi0xNjIuMiAwLTIxNy41LTcwLjIgNTUuMy03MC41IDE2Mi42IDAgMjE3LjV6TTE0NS43IDQwNS43YzAtOC43LTUuNy0xNC40LTE0LjctMTQuNy00LjYgMC05LjUgMS40LTEyLjggNi41LTIuNC00LjEtNi41LTYuNS0xMi4yLTYuNS0zLjggMC03LjYgMS40LTEwLjYgNS40bDAtNC40LTguMiAwIDAgMzYuNyA4LjIgMGMwLTE4LjktMi41LTMwLjIgOS0zMC4yIDEwLjIgMCA4LjIgMTAuMiA4LjIgMzAuMmw3LjkgMGMwLTE4LjMtMi41LTMwLjIgOS0zMC4yIDEwLjIgMCA4LjIgMTAgOC4yIDMwLjJsOC4yIDAgMC0yMy0uMiAwek0xOTAuNiAzOTJsLTcuOSAwIDAgNC40Yy0yLjctMy4zLTYuNS01LjQtMTEuNy01LjQtMTAuMyAwLTE4LjIgOC4yLTE4LjIgMTkuMyAwIDExLjIgNy45IDE5LjMgMTguMiAxOS4zIDUuMiAwIDktMS45IDExLjctNS40bDAgNC42IDcuOSAwIDAtMzYuOHptNDAuNSAyNS42YzAtMTUtMjIuOS04LjItMjIuOS0xNS4yIDAtNS43IDExLjktNC44IDE4LjUtMS4xbDMuMy02LjVjLTkuNC02LjEtMzAuMi02LTMwLjIgOC4yIDAgMTQuMyAyMi45IDguMyAyMi45IDE1IDAgNi4zLTEzLjUgNS44LTIwLjcgLjhsLTMuNSA2LjNjMTEuMiA3LjYgMzIuNiA2IDMyLjYtNy41em0zNS40IDkuM2wtMi4yLTYuOGMtMy44IDIuMS0xMi4yIDQuNC0xMi4yLTQuMWwwLTE2LjYgMTMuMSAwIDAtNy40LTEzLjEgMCAwLTExLjItOC4yIDAgMCAxMS4yLTcuNiAwIDAgNy4zIDcuNiAwIDAgMTYuN2MwIDE3LjYgMTcuMyAxNC40IDIyLjYgMTAuOXptMTMuMy0xMy40bDI3LjUgMGMwLTE2LjItNy40LTIyLjYtMTcuNC0yMi42LTEwLjYgMC0xOC4yIDcuOS0xOC4yIDE5LjMgMCAyMC41IDIyLjYgMjMuOSAzMy44IDE0LjJsLTMuOC02Yy03LjggNi40LTE5LjYgNS44LTIxLjktNC45ek0zMzguOSAzOTJjLTQuNi0yLTExLjYtMS44LTE1LjIgNC40bDAtNC40LTguMiAwIDAgMzYuNyA4LjIgMCAwLTIwLjdjMC0xMS42IDkuNS0xMC4xIDEyLjgtOC40bDIuNC03LjZ6bTEwLjYgMTguM2MwLTExLjQgMTEuNi0xNS4xIDIwLjctOC40bDMuOC02LjVjLTExLjYtOS4xLTMyLjctNC4xLTMyLjcgMTUgMCAxOS44IDIyLjQgMjMuOCAzMi43IDE1bC0zLjgtNi41Yy05LjIgNi41LTIwLjcgMi42LTIwLjctOC42ek00MTYuMiAzOTJsLTguMiAwIDAgNC40Yy04LjMtMTEtMjkuOS00LjgtMjkuOSAxMy45IDAgMTkuMiAyMi40IDI0LjcgMjkuOSAxMy45bDAgNC42IDguMiAwIDAtMzYuOHptMzMuNyAwYy0yLjQtMS4yLTExLTIuOS0xNS4yIDQuNGwwLTQuNC03LjkgMCAwIDM2LjcgNy45IDAgMC0yMC43YzAtMTEgOS0xMC4zIDEyLjgtOC40bDIuNC03LjZ6bTQwLjMtMTQuOWwtNy45IDAgMCAxOS4zYy04LjItMTAuOS0yOS45LTUuMS0yOS45IDEzLjkgMCAxOS40IDIyLjUgMjQuNiAyOS45IDEzLjlsMCA0LjYgNy45IDAgMC01MS43em03LjYtNzUuMWwwIDQuNiAuOCAwIDAtNC42IDEuOSAwIDAtLjgtNC42IDAgMCAuOCAxLjkgMHptNi42IDEyMy44YzAtLjUgMC0xLjEtLjMtMS42LS4zLS4zLS41LS44LS44LTEuMXMtLjgtLjUtMS4xLS44Yy0uNSAwLTEuMS0uMy0xLjYtLjMtLjMgMC0uOCAuMy0xLjQgLjMtLjUgLjMtLjggLjUtMS4xIC44LS41IC4zLS44IC44LS44IDEuMS0uMyAuNS0uMyAxLjEtLjMgMS42IDAgLjMgMCAuOCAuMyAxLjQgMCAuMyAuMyAuOCAuOCAxLjEgLjMgLjMgLjUgLjUgMS4xIC44IC41IC4zIDEuMSAuMyAxLjQgLjMgLjUgMCAxLjEgMCAxLjYtLjMgLjMtLjMgLjgtLjUgMS4xLS44cy41LS44IC44LTEuMWMuMy0uNiAuMy0xLjEgLjMtMS40em0zLjItMTI0LjdsLTEuNCAwLTEuNiAzLjUtMS42LTMuNS0xLjQgMCAwIDUuNCAuOCAwIDAtNC4xIDEuNiAzLjUgMS4xIDAgMS40LTMuNSAwIDQuMSAxLjEgMCAwLTUuNHptNC40LTgwLjVjMC03Ni4yLTYyLjEtMTM4LjMtMTM4LjUtMTM4LjMtMjcuMiAwLTUzLjkgOC4yLTc2LjUgMjMuMSA3Mi4xIDU5LjMgNzMuMiAxNzEuNSAwIDIzMC41IDIyLjYgMTUgNDkuNSAyMy4xIDc2LjUgMjMuMSA3Ni40IC4xIDEzOC41LTYxLjkgMTM4LjUtMTM4LjR6Il19LEMzdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJkaXNjb3Vyc2UiLGljb246WzQ0OCw1MTIsW10sImYzOTMiLCJNMjI1LjkgMzJDMTAzLjMgMzIgMCAxMzAuNSAwIDI1Mi4xIDAgMjU2IC4xIDQ4MCAuMSA0ODBsMjI1LjgtLjJDMzQ4LjYgNDc5LjggNDQ4IDM3Ny41IDQ0OCAyNTUuOVMzNDguNiAzMiAyMjUuOSAzMnpNMjI0IDM4NGMtMTkuNCAwLTM3LjktNC4zLTU0LjQtMTIuMUw4OC41IDM5MiAxMTEuNCAzMTdjLTkuOC0xOC4xLTE1LjQtMzguOS0xNS40LTYxIDAtNzAuNyA1Ny4zLTEyOCAxMjgtMTI4czEyOCA1Ny4zIDEyOCAxMjgtNTcuMyAxMjgtMTI4IDEyOHoiXX0sVDN0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImJsYWNrLXRpZSIsaWNvbjpbNDQ4LDUxMixbXSwiZjI3ZSIsIk0wIDMybDAgNDQ4IDQ0OCAwIDAtNDQ4LTQ0OCAwek0zMTYuNSAzNTcuMmwtOTIuNSA4OC43LTkyLjUtODguNyA2NC41LTE4NC02NC41LTg2LjYgMTg0LjkgMC02NC40IDg2LjYgNjQuNSAxODR6Il19LGJuZT17cHJlZml4OiJmYWIiLGljb25OYW1lOiJzcXVhcmUtZmFjZWJvb2siLGljb246WzQ0OCw1MTIsWyJmYWNlYm9vay1zcXVhcmUiXSwiZjA4MiIsIk02NCAzMkMyOC43IDMyIDAgNjAuNyAwIDk2TDAgNDE2YzAgMzUuMyAyOC43IDY0IDY0IDY0bDk4LjIgMCAwLTE0NS44LTUyLjggMCAwLTc4LjIgNTIuOCAwIDAtMzMuN2MwLTg3LjEgMzkuNC0xMjcuNSAxMjUtMTI3LjUgMTYuMiAwIDQ0LjIgMy4yIDU1LjcgNi40bDAgNzAuOGMtNi0uNi0xNi41LTEtMjkuNi0xLTQyIDAtNTguMiAxNS45LTU4LjIgNTcuMmwwIDI3LjggODMuNiAwLTE0LjQgNzguMi02OS4zIDAgMCAxNDUuOCAxMjkgMGMzNS4zIDAgNjQtMjguNyA2NC02NGwwLTMyMGMwLTM1LjMtMjguNy02NC02NC02NEw2NCAzMnoiXX0sXzN0PWJuZSxMM3Q9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiYmF0dGxlLW5ldCIsaWNvbjpbNTEyLDUxMixbXSwiZjgzNSIsIk00NDguOCAyMjUuNmMyNi45IC4yIDM1LjYtNy40IDM4LjktMTIuNCAxMi41LTE2LjMtNy4xLTQ3LjYtNTIuOC03MS4zIDE3LjgtMzMuNiAzMC4xLTYzLjcgMzYuMy04NS4zIDMuNC0xMS44IDEuMS0xOSAuNS0yMC4zLTEuNyAxMC41LTE1LjggNDguNS00OC4yIDEwMC0yNS0xMS4yLTU2LjUtMjAuMS05My44LTIzLjgtOC45LTE2LjktMzQuOS02My45LTYwLjUtODguOS0xNi44LTE2LjUtMzAuMy0yMi42LTQwLjgtMjMuNWwwIDBjLTEzLjgtMS42LTIyLjcgNS44LTI3LjQgMTEtMTcuMiAxOC41LTI0LjMgNDguOS0yNSA4NC4xLTcuMi0xMi4zLTE3LjItMjQuNi0yOC41LTI1LjlsLS4yIDBjLTIwLjctMy41LTM4LjQgMjkuMi0zNiA4MS4zLTM4LjQgMS40LTcxIDUuOC05MyAxMS4yLTkuOSAyLjQtMTYuMiA3LjMtMTcuOCA5LjcgMS0uNCAyMi40LTkuMiAxMTEuNi05LjIgNS4yIDUzIDI5LjggMTAxLjggMjYgOTMuMi05LjcgMTUuNC0zOC4yIDYyLjQtNDcuMyA5Ny43LTUuOSAyMi45LTQuNCAzNy42IC4yIDQ3LjEgNS42IDEyLjggMTYuNCAxNi43IDIzLjIgMTguMyAyNSA1LjcgNTUuNC0zLjYgODYuNy0yMS4xLTcuNSAxMi44LTEzLjkgMjguNS05LjEgMzkuMyA3LjMgMTkuNiA0NC41IDE4LjcgODguNC05LjQgMjAuMiAzMi4yIDQwLjEgNTcuOSA1NS43IDc0LjEgMi42IDIuOCA1LjUgNS4yIDguOCA3LjEgNS4xIDMuMiA4LjYgMy40IDguNiAzLjQtOC4yLTYuNy0zNC0zOC02Mi41LTkxLjggMjIuMi0xNiA0NS43LTM4LjkgNjcuNS02OS4zIDEyMi44IDQuNiAxNDMuMy0yNC44IDE0OC0zMS42IDE0LjctMTkuOSAzLjQtNTcuNC01Ny4zLTkzLjd6TTM3MSAzMzEuOGMyMy44LTM3LjcgMzAuMy02Ny44IDI5LjQtOTIuMyAyNy45IDE3LjYgNDcuMiAzNy42IDQ5LjEgNTguOCAxLjEgMTIuOS04LjEgMjkuMS03OC41IDMzLjV6TTIxNy4xIDM4Ny43YzkuOC02LjIgMTkuNS0xMy4xIDI5LjItMjAuNSA2LjcgMTMuMyAxMy42IDI2LjEgMjAuNiAzOC4yLTQwLjYgMjEuOS02OC44IDEyLjgtNDkuOC0xNy43em0yMTUtMTcxLjNjLTEwLjMtNS4zLTIxLjItMTAuMy0zMi40LTE1IDcuOS0xMi4xIDE1LjUtMjQuNCAyMi43LTM2LjkgMzkuMSAyNC4xIDQ1LjkgNTMuMiA5LjYgNTEuOXpNMjc5LjQgMzk4Yy01LjUtMTEuNC0xMS0yMy41LTE2LjUtMzYuNCA0My4yIDEuMyA2Mi40LTE4LjcgNjMuMy0yMC40IDAgLjEtMjUgMTUuNi02Mi41IDEyLjIgMzAuNi0yNS42IDU5LjEtNTMuNyA4NS4xLTg0IDguNy0xMC4yIDE3LTIwLjYgMjQuOS0zMS4xLS40LS4zLTEuNS0zLTE2LjUtMTItNTEuNyA2MC4zLTEwMi4zIDk4LTEzMi44IDExNS45LTIwLjYtMTEuMi00MC44LTMxLjgtNTUuNy02MS41LTIwLTM5LjktMzAtODIuNC0zMS42LTExNi4xIDEyLjMgLjkgMjUuMyAyLjIgMzguOCAzLjktMjIuMyAzNi44LTE0LjQgNjMtMTMuNSA2NC4yIDAtLjEtMS0yOS4yIDIwLjEtNTkuNiA5IDUyLjUgMjQgMTAzLjggNDQuNyAxNTIuOCAuOS0uNCAxLjggLjkgMTguNy04LjItMjYuMy03NC41LTMzLjgtMTM4LjItMzQtMTczLjQgMjAtMTIuNCA0OC4yLTE5LjggODEuNi0xNy44IDQ0LjYgMi43IDg2LjQgMTUuMiAxMTYuMyAzMC43LTcuMSAxMC40LTE0LjkgMjEuMy0yMy4zIDMyLjUtMjAuNy0zNy43LTQ3LjMtNDMuOS00OC45LTQzLjcgLjEgMCAyNS45IDE0LjEgNDEuNSA0Ny4yLTM3LjUtMTMuOC03Ni4xLTI0LjQtMTE1LjMtMzEuNy0xMy4xLTIuNC0yNi4yLTQuNC0zOS40LTYtLjEgLjQtMS44IDEuOC0yLjIgMjAuMyA3Ny45IDE0LjUgMTM2LjYgMzkuOSAxNjcuMiA1Ny4yIC43IDIzLjYtNyA1MS42LTI1LjQgNzkuNi0yNC42IDM3LjMtNTYuNCA2Ny4yLTg0LjggODUuNHptMjcuNC0yODdjLTQ0LjYtMS43LTczLjYgNy40LTk0LjcgMjAuNyAyLTUyLjMgMjEuMy03Ni40IDM4LjItNzUuMyAxNi45LTQuMiA1NC45IDUyLjIgNTYuNSA1NC42em0tMTMwLjcgMy4xYy41IDEyLjEgMS42IDI0LjYgMy4yIDM3LjMtMTQuNi0uOS0yOC43LTEuMy00Mi40LTEuMy0uMSAzLjItLjEtNTEgMjQuNy00OS42bC4xIDBjNS44IDEuMSAxMC42IDYuOSAxNC40IDEzLjZ6bS0yOC4xIDE2MmMyMC44IDM5LjcgNDMuMyA2MC42IDY1LjMgNzIuMy00Ni44IDI0LjgtNzcuNSAyMC04NC45IDQuNS0uMi0uMi0xMS4xLTE1LjMgMTkuNy03Ni44bDAgMHoiXX0sQTN0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImJpbW9iamVjdCIsaWNvbjpbNDQ4LDUxMixbXSwiZjM3OCIsIk00MTYgMzJMMzIgMzJDMTQuNCAzMiAwIDQ2LjQgMCA2NEwwIDQ0OGMwIDE3LjYgMTQuNCAzMiAzMiAzMmwzODQgMGMxNy42IDAgMzItMTQuNCAzMi0zMmwwLTM4NGMwLTE3LjYtMTQuNC0zMi0zMi0zMnpNMzUyIDI4OS40YzAgNDkuNC0xMS40IDgyLjYtMTAzLjggODIuNmwtMTYuOSAwYy00NC4xIDAtNjIuNC0xNC45LTcwLjQtMzguOGwtLjkgMCAwIDM0LjgtNjQgMCAwLTIzMiA2NCAwIDAgNzQuNyAxLjEgMGM0LjYtMzAuNSAzOS43LTM4LjggNjkuNy0zOC44bDE3LjMgMGM5Mi40IDAgMTAzLjggMzMuMSAxMDMuOCA4Mi41bDAgMzUgLjEgMHptLTY0LTI4LjlsMCAyMi45YzAgMjEuNy0zLjQgMzMuOC0zOC40IDMzLjhsLTQ1LjMgMGMtMjguOSAwLTQ0LjEtNi41LTQ0LjEtMzUuN2wwLTE5YzAtMjkuMyAxNS4yLTM1LjcgNDQuMS0zNS43bDQ1LjMgMGMzNS0uMiAzOC40IDEyIDM4LjQgMzMuN3oiXX0sRDN0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6InN2ZWx0ZSIsaWNvbjpbNDQ4LDUxMixbXSwiZTg2OCIsIk0yMDIuMSAyNi40YzY2LjgtNDIuNiAxNTkuMy0yMi43IDIwNi4xIDQ0LjMgMTEuMSAxNS41IDE5IDMzLjEgMjMuMiA1MS44czQuNyAzNy45IDEuMyA1Ni43Yy0zLjIgMTgtMTAuMSAzNS4xLTIwLjEgNTAuMyAxNC42IDI3LjkgMTkuNiA2MCAxNCA5MS0zLjMgMTguNC0xMC40IDM2LTIwLjkgNTEuNXMtMjQuMSAyOC43LTM5LjkgMzguN0wyNDguMyA0ODUuNmMtNjYuOCA0Mi42LTE1OS4zIDIyLjctMjA2LjEtNDQuMi0xMS4xLTE1LjUtMTktMzMuMi0yMy4yLTUxLjhzLTQuNy0zNy45LTEuMy01Ni43YzMuMi0xOCAxMC4xLTM1LjEgMjAuMS01MC4zLTE0LjctMjcuOS0xOS42LTYwLTE0LTkxLjEgMy4zLTE4LjQgMTAuNC0zNiAyMC45LTUxLjVzMjQuMS0yOC43IDM5LjktMzguN0wyMDIuMSAyNi40ek0zMTUuNiA2Ny4yYy0xNy45LTYuNi0zNy40LTcuNi01NS45LTIuOC04LjQgMi4zLTE2LjUgNS44LTIzLjggMTAuNUwxMTguNSAxNDkuN2MtOS41IDYtMTcuNyAxMy45LTI0IDIzLjNTODQgMTkyLjggODIgMjAzLjljLTIgMTEuMy0xLjcgMjIuOSAuOCAzNC4xczcuMyAyMS44IDEzLjkgMzEuMmMxMC45IDE1LjcgMjYuMyAyNy42IDQ0LjIgMzQuM3MzNy40IDcuNiA1NS45IDIuOGM4LjQtMi4zIDE2LjUtNS44IDIzLjgtMTAuNWw0NC44LTI4LjZjMi4yLTEuNCA0LjctMi41IDcuMi0zLjIgNS42LTEuNCAxMS40LTEuMiAxNi44IC44czEwIDUuNiAxMy4zIDEwLjNjMiAyLjggMy41IDYgNC4yIDkuNHMuOSA2LjkgLjMgMTAuM2MtLjYgMy4zLTEuOSA2LjUtMy44IDkuMy0xLjkgMi44LTQuNCA1LjItNy4yIDdMMTc4LjggMzg2LjFjLTIuMiAxLjQtNC43IDIuNS03LjIgMy4yLTUuNiAxLjQtMTEuNCAxLjItMTYuOC0uOHMtMTAtNS42LTEzLjMtMTAuM2MtMy42LTUuMS01LjMtMTEuMi00LjctMTcuNGwuNC00LjQtNC4zLTEuM2MtMTYuNS01LTMyLjEtMTIuNy00NS45LTIyLjlsLTYtNC40LTIuMiA2LjdjLTEuMiAzLjYtMi4xIDcuMy0yLjggMTEtMiAxMS4zLTEuNyAyMi45IC44IDM0LjFzNy4zIDIxLjggMTMuOSAzMS4xYzEwLjkgMTUuNyAyNi4zIDI3LjYgNDQuMiAzNC4zczM3LjQgNy42IDU1LjggMi44YzguNC0yLjMgMTYuNS01LjggMjMuOS0xMC41bDExNy4zLTc0LjhjOS41LTYgMTcuNy0xMy45IDI0LTIzLjNzMTAuNi0xOS45IDEyLjYtMzFjMi0xMS4zIDEuOC0yMi45LS44LTM0LjFzLTcuMy0yMS44LTE0LTMxLjFjLTEwLjktMTUuNy0yNi4zLTI3LjYtNDQuMi0zNC4zcy0zNy40LTcuNi01NS45LTIuOGMtOC40IDIuMy0xNi41IDUuOC0yMy44IDEwLjVMMTg1IDI0NC44Yy0yLjIgMS40LTQuNiAyLjUtNy4yIDMuMi01LjYgMS40LTExLjUgMS4yLTE2LjgtLjhzLTEwLTUuNi0xMy4zLTEwLjNjLTItMi44LTMuNC02LTQuMi05LjRzLS45LTYuOS0uMi0xMC4zYy42LTMuMyAxLjktNi41IDMuOC05LjNzNC40LTUuMiA3LjItN2wxMTcuNC03NC44YzIuMi0xLjQgNC43LTIuNSA3LjItMy4yIDUuNi0xLjQgMTEuNC0xLjEgMTYuOCAuOXMxMCA1LjYgMTMuMyAxMC4zYzMuNiA1LjEgNS4yIDExLjMgNC43IDE3LjRsLS40IDQuNCA0LjQgMS4zYzE2LjUgNSAzMiAxMi44IDQ1LjkgMjNsNiA0LjQgMi4yLTYuOGMxLjItMy42IDIuMS03LjMgMi44LTExIDItMTEuMyAxLjgtMjIuOS0uOC0zNC4xcy03LjMtMjEuOC0xNC0zMS4xYy0xMC45LTE1LjctMjYuMy0yNy42LTQ0LjItMzQuM3oiXX0sRTN0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6InNxdWFyZS1kZXNrcHJvIixpY29uOls0NDgsNTEyLFtdLCJlODQ0IiwiTTQwOC44IDMyQzQzMC40IDMyIDQ0OCA0OS42IDQ0OCA3MS4ybDAgMzY5LjZjMCAyMS42LTE3LjYgMzkuMi0zOS4yIDM5LjJMMzkuMiA0ODBDMTcuNiA0ODAgMCA0NjIuNCAwIDQ0MC44TDAgNzEuMkMwIDQ5LjYgMTcuNiAzMiAzOS4yIDMybDM2OS42IDB6TTExMC45IDI3NC4xbDAgMTE0LjQgODkuMS0uMWMyMC42IDAgMzkuNC0zLjIgNTYuMy05LjVzMzEuMy0xNS40IDQzLjItMjdjMTIuMi0xMS45IDIxLjYtMjYgMjguMi00Mi4xIDQuNi0xMS4xIDcuNy0yMyA5LjItMzUuN2wtNDMuOCAwYy0xLjEgNi40LTIuOCAxMi40LTUuMSAxOC4yLTQuMiAxMC45LTEwLjMgMjAuMy0xOC4yIDI4LjItNy45IDcuNy0xNy40IDEzLjctMjguNiAxNy45LTExLjEgNC4zLTIzLjUgNi40LTM3LjMgNi40bC01MCAwIDAtNzAuNi00MyAuMXptMC0xNTEuNGwwIDExNC40IDQzLS4xIDAtNzAuNyA1MCAwYzEzLjcgMCAyNi4yIDIuMSAzNy4zIDYuNCAxMS4xIDQuMyAyMC42IDEwLjMgMjguNiAxOC4zIDcuOSA3LjcgMTQgMTcuMSAxOC4yIDI4LjIgMi4zIDUuNiA0IDExLjUgNS4xIDE3LjhsNDMuOSAuMWMtMS40LTEyLjYtNC40LTI0LjQtOC45LTM1LjMtNi42LTE2LjQtMTYtMzAuNS0yOC4xLTQyLjItMTIuMS0xMS45LTI2LjctMjEuMS00My42LTI3LjUtMTYuOS02LjQtMzUuNy05LjUtNTYuMy05LjVsLTg5IC4xeiJdfSwkM3Q9e3ByZWZpeDoiZmFiIixpY29uTmFtZToidGFpbHdpbmQtY3NzIixpY29uOls2NDAsNTEyLFtdLCJlODY2IiwiTTMyMCA2NGMtODUuMyAwLTEzOC43IDQyLjctMTYwIDEyOCAzMi00Mi43IDY5LjMtNTguNyAxMTItNDggMjQuMyA2LjEgNDEuNyAyMy44IDYxIDQzLjMgMzEuNCAzMS44IDY3LjcgNjguNyAxNDcgNjguNyA4NS4zIDAgMTM4LjctNDIuNyAxNjAtMTI4LTMyIDQyLjctNjkuMyA1OC43LTExMiA0OC0yNC4zLTYuMS00MS43LTIzLjgtNjEtNDMuMy0zMS40LTMxLjgtNjcuNy02OC43LTE0Ny02OC43ek0xNjAgMjU2Yy04NS4zIDAtMTM4LjcgNDIuNy0xNjAgMTI4IDMyLTQyLjcgNjkuMy01OC43IDExMi00OCAyNC4zIDYuMSA0MS43IDIzLjggNjEgNDMuMyAzMS40IDMxLjggNjcuNyA2OC43IDE0NyA2OC43IDg1LjMgMCAxMzguNy00Mi43IDE2MC0xMjgtMzIgNDIuNy02OS4zIDU4LjctMTEyIDQ4LTI0LjMtNi4xLTQxLjctMjMuOC02MS00My4zLTMxLjQtMzEuOC02Ny43LTY4LjctMTQ3LTY4Ljd6Il19LE1acj17ZmFTcXVhcmVHaXRodWI6T2FlLGZhR2l0aHViU3F1YXJlOkFpdCxmYVRoaW5rUGVha3M6RGl0LGZhR29vZ2xlRHJpdmU6RWl0LGZhQXV0b3ByZWZpeGVyOiRpdCxmYVNxdWFyZVZpYWRlbzpSYWUsZmFWaWFkZW9TcXVhcmU6SWl0LGZhQ3BhbmVsOlBpdCxmYU1lbmRlbGV5Ok5pdCxmYURyYWZ0MmRpZ2l0YWw6Rml0LGZhUmVwbHlkOk9pdCxmYUVtcGlyZTpSaXQsZmFBY2Nlc3NpYmxlSWNvbjpCaXQsZmFRdW9yYTpIaXQsZmFDY0pjYjpxaXQsZmFGZWRvcmE6aml0LGZhRHVvbGluZ286Vml0LGZhRmlyc3RkcmFmdDpVaXQsZmFGcmVlYnNkOldpdCxmYU9keXNlZTpHaXQsZmFHZ0NpcmNsZTpZaXQsZmFDbG91ZGZsYXJlOlppdCxmYUhhY2tlcnJhbms6WGl0LGZhU2t5YXRsYXM6UWl0LGZhRGVza3BybzpKaXQsZmFSZXNvbHZpbmc6S2l0LGZhQmxhY2tiZXJyeTplYXQsZmFTdHJpcGVTOnRhdCxmYVNxdWFyZUJlaGFuY2U6QmFlLGZhQmVoYW5jZVNxdWFyZTpyYXQsZmFTZXJ2aWNlc3RhY2s6aWF0LGZhUm9ja2V0Y2hhdDphYXQsZmFSZWJlbDpuYXQsZmFTcXVhcmVXZWJBd2Vzb21lOm9hdCxmYUxpbmt0cmVlOnNhdCxmYVNpbXBseWJ1aWx0OmxhdCxmYVN0dWJiZXI6Y2F0LGZhQXBwZXI6ZGF0LGZhR29vZ2xlU2Nob2xhcjp1YXQsZmFZYXJuOnBhdCxmYVN0YWNrT3ZlcmZsb3c6aGF0LGZhQmx1ZXRvb3RoOmZhdCxmYUNyZWF0aXZlQ29tbW9uc05jSnA6bWF0LGZhUmVkZGl0OmdhdCxmYUNvbm5lY3RkZXZlbG9wOmJhdCxmYVJlc2VhcmNoZ2F0ZTp2YXQsZmFTaWduYWxNZXNzZW5nZXI6eGF0LGZhWGluZzp5YXQsZmFTcXVhcmVKczpIYWUsZmFKc1NxdWFyZTp3YXQsZmFGb250aWNvbnM6TWF0LGZhVXBzOmthdCxmYUFtYXpvblBheTpTYXQsZmFQYW5kb3JhOnphdCxmYU9wZW5pZDpDYXQsZmFWc2NvOlRhdCxmYUdsb2JhbGVha3M6X2F0LGZhVmVubW86TGF0LGZhVWJ1bnR1OkFhdCxmYVZpYWNvaW46RGF0LGZhWmhpaHU6RWF0LGZhWWFuZGV4OiRhdCxmYVBpeGl2OklhdCxmYU9wZW5haTpQYXQsZmFTaXRoOk5hdCxmYUp1bGlhOkZhdCxmYU5mY0RpcmVjdGlvbmFsOk9hdCxmYUNyZWF0aXZlQ29tbW9uc0J5OlJhdCxmYVVtYnJhY286QmF0LGZhSG9vbGk6SGF0LGZhU3F1YXJlR2l0OnFhZSxmYUdpdFNxdWFyZTpxYXQsZmFPZG5va2xhc3NuaWtpOmphdCxmYURydXBhbDpWYXQsZmFCbG9nZ2VyQjpVYXQsZmFJbnZpc2lvbjpXYXQsZmFGYWNlYm9va0Y6R2F0LGZhQ2VudG9zOllhdCxmYVNjYWxld2F5OlphdCxmYUNjQW1hem9uUGF5OlhhdCxmYUViYXk6UWF0LGZhQ29udGFvOkphdCxmYUVsbG86S2F0LGZhU2lzdHJpeDplbnQsZmFQZXJpc2NvcGU6dG50LGZhRXhwZWRpdGVkc3NsOnJudCxmYU5hcHN0ZXI6aW50LGZhRGVsaWNpb3VzOmFudCxmYUd1aWxkZWQ6bm50LGZhT2JzaWRpYW46b250LGZhWGJveDpzbnQsZmFVbnRhcHBkOmxudCxmYUdvb2dsZVBsdXNHOmNudCxmYUdpdGh1YkFsdDpkbnQsZmFHZXRQb2NrZXQ6dW50LGZhR2xpZGU6cG50LGZhQml0eTpobnQsZmFXcGV4cGxvcmVyOmZudCxmYU1lZ2Fwb3J0Om1udCxmYUxlZXRjb2RlOmdudCxmYU1kYjpibnQsZmFQYWdlNDp2bnQsZmFUaGVSZWRZZXRpOnhudCxmYUppcmE6eW50LGZhRmVkZXg6d250LGZhRXZlcm5vdGU6TW50LGZhVXNiOmtudCxmYUFuZ3J5Y3JlYXRpdmU6U250LGZhTWl6dW5pOnpudCxmYUl0Y2hJbzpDbnQsZmFXaW5kb3dzOlRudCxmYVN0dW1ibGV1cG9uOl9udCxmYUdvb2dsZTpJQSxmYURpc2NvcmQ6TG50LGZhSGFja2VyTmV3czpBbnQsZmFFbGV2ZW50eTpqYWUsZmExMXR5OkRudCxmYVRlYW1zcGVhazpFbnQsZmFTdXBwbGU6JG50LGZhU3F1YXJlVHdpdHRlcjpWYWUsZmFUd2l0dGVyU3F1YXJlOkludCxmYVZpbTpQbnQsZmFGb250QXdlc29tZTokQSxmYUZvbnRBd2Vzb21lRmxhZzpObnQsZmFGb250QXdlc29tZUxvZ29GdWxsOkZudCxmYVdpcnNpbmRoYW5kd2VyazpVYWUsZmFXc2g6T250LGZhWm9vbTpSbnQsZmFDb25mbHVlbmNlOkJudCxmYURpZ2c6SG50LGZhVGhyZWFkczpxbnQsZmFXcHJlc3NyOldhZSxmYVJlbmRhY3Q6am50LGZhWW9hc3Q6Vm50LGZhTmltYmxyOlVudCxmYVBpeGVsZmVkOldudCxmYVlhaG9vOkdudCxmYUJsdWVza3k6WW50LGZhU2NyaWJkOlpudCxmYUNyZWF0aXZlQ29tbW9uc1BkOlhudCxmYUVhcmx5YmlyZHM6UW50LGZhU3ltZm9ueWNhc3RzOkpudCxmYVNxdWFyZU9kbm9rbGFzc25pa2k6R2FlLGZhT2Rub2tsYXNzbmlraVNxdWFyZTpLbnQsZmFNYXJrZG93bjplb3QsZmFUeXBvMzp0b3QsZmFKb29tbGE6cm90LGZhV2VpeGluOmlvdCxmYUdydW50OmFvdCxmYVN1cHBvcnRub3c6bm90LGZhUm9ja3Jtczpvb3QsZmFVbnNwbGFzaDpzb3QsZmFTcXVhcmVJbnN0YWdyYW06WWFlLGZhSW5zdGFncmFtU3F1YXJlOmxvdCxmYUZpcnN0T3JkZXJBbHQ6Y290LGZhRnVsY3J1bTpkb3QsZmFBcmNoTGludXg6dW90LGZhRmVkaXZlcnNlOnBvdCxmYUJyYXZlUmV2ZXJzZTpob3QsZmFBdmlhbmV4OmZvdCxmYU5zODptb3QsZmFTcXVhcmVQaW50ZXJlc3Q6WmFlLGZhUGludGVyZXN0U3F1YXJlOmdvdCxmYUJsdWV0b290aEI6Ym90LGZhR3JpcGZpcmU6dm90LGZhU3F1YXJlR29vZ2xlUGx1czpYYWUsZmFHb29nbGVQbHVzU3F1YXJlOnhvdCxmYUdpdGVlOnlvdCxmYVhtcHA6d290LGZhQXBwU3RvcmU6TW90LGZhV2l4OmtvdCxmYUludGVyY29tOlNvdCxmYVJlYWN0ZXVyb3BlOnpvdCxmYVdhemU6Q290LGZhQ3JlYXRpdmVDb21tb25zUmVtaXg6VG90LGZhQmFuZGNhbXA6X290LGZhU3F1YXJlV2ViQXdlc29tZVN0cm9rZTpMb3QsZmFWaW1lb1Y6QW90LGZhU3RyYXZhOkRvdCxmYVVuaXJlZ2lzdHJ5OkVvdCxmYUNjRGluZXJzQ2x1Yjokb3QsZmFLdWJlcm5ldGVzOklvdCxmYVBpbnRlcmVzdDpQb3QsZmFBbGdvbGlhOk5vdCxmYVN0YWNrcGF0aDpGb3QsZmFPY3RvcHVzRGVwbG95Ok9vdCxmYVlhbW1lcjpSb3QsZmFNb2R4OkJvdCxmYVNxdWFyZVRocmVhZHM6SG90LGZhT2xkUmVwdWJsaWM6cW90LGZhU3VzZTpqb3QsZmFBcHBTdG9yZUlvczpWb3QsZmFVbHRyYWx5dGljc1lvbG86VW90LGZhU3F1YXJlRHJpYmJibGU6UWFlLGZhRHJpYmJibGVTcXVhcmU6V290LGZhVWlraXQ6R290LGZhU3VwZXJwb3dlcnM6WW90LGZhWW91dHViZTpab3QsZmFFbWJlcjpYb3QsZmFCb290c3RyYXA6UW90LGZhSXR1bmVzOkpvdCxmYVNxdWFyZVhpbmc6SmFlLGZhWGluZ1NxdWFyZTpLb3QsZmFDc3MzQWx0OmUydCxmYVNxdWFyZXNwYWNlOnQydCxmYVRyZWxsbzpyMnQsZmFWaWFkZW86aTJ0LGZhU2VhcmNoZW5naW46YTJ0LGZhVW5yZWFsRW5naW5lOm4ydCxmYVBheXBhbDpvMnQsZmFTcXVhcmVCbHVlc2t5OnMydCxmYURBbmREQmV5b25kOmwydCxmYU1pY3Jvc29mdDpjMnQsZmFGbHk6ZDJ0LGZhQ2NTdHJpcGU6dTJ0LGZhV29yZHByZXNzU2ltcGxlOnAydCxmYVNlbGxzeTpoMnQsZmFEYXNoY3ViZTpmMnQsZmFHaXR0ZXI6bTJ0LGZhV29sZlBhY2tCYXR0YWxpb246ZzJ0LGZhTGFzdGZtOmIydCxmYVNob3B3YXJlOnYydCxmYUJsb2dnZXI6eDJ0LGZhRWRnZTp5MnQsZmFJb3hob3N0OncydCxmYVNjaGxpeDpNMnQsZmFEQW5kRDprMnQsZmFWdWVqczpTMnQsZmFNZXRhOnoydCxmYUNyZWF0aXZlQ29tbW9uc1NoYXJlOkMydCxmYVN0dWRpb3ZpbmFyaTpUMnQsZmFCaXRidWNrZXQ6XzJ0LGZhVms6TDJ0LGZhR2l0aHViOkEydCxmYUNvZGllcGllOkQydCxmYVBpZWRQaXBlcjpFMnQsZmFSYXNwYmVycnlQaTokMnQsZmFDc3MzOkkydCxmYUh1YnNwb3Q6UDJ0LGZhQ21wbGlkOk4ydCxmYUR5YWxvZzpGMnQsZmFFbGVtZW50b3I6TzJ0LGZhRmlyc3RPcmRlcjpSMnQsZmFEcmliYmJsZTpCMnQsZmFMaW5rZWRpbjpQQSxmYUNjUGF5cGFsOkgydCxmYURobDpxMnQsZmFUZXg6ajJ0LGZhQ2xhdWRlOlYydCxmYVNob3BpZnk6VTJ0LGZhU3F1YXJlUmVkZGl0OkthZSxmYVJlZGRpdFNxdWFyZTpXMnQsZmFDcmVhdGl2ZUNvbW1vbnNOYzpHMnQsZmFHYWxhY3RpY1JlcHVibGljOlkydCxmYUZhY2Vib29rOk5BLGZhR2l0bGFiOloydCxmYVFxOlgydCxmYVN0cmlwZTpRMnQsZmFEYWlseW1vdGlvbjpKMnQsZmFTdGVhbTpLMnQsZmFWZW5tb1Y6ZXN0LGZhU25hcGNoYXQ6ZW5lLGZhU25hcGNoYXRHaG9zdDp0c3QsZmFHYWxhY3RpY1NlbmF0ZTpyc3QsZmFQaG9lbml4RnJhbWV3b3JrOmlzdCxmYUdpdDphc3QsZmFPcHRpbk1vbnN0ZXI6bnN0LGZhSmVua2luczpvc3QsZmFTbGlkZXNoYXJlOnNzdCxmYVViZXI6bHN0LGZhRGlnaXRhbE9jZWFuOmNzdCxmYVNvdW5kY2xvdWQ6ZHN0LGZhU3F1YXJlRmlnbWE6dXN0LGZhQ3JlYXRpdmVDb21tb25zU2E6cHN0LGZhQ2hyb21lOmhzdCxmYVRyYWRlRmVkZXJhdGlvbjpmc3QsZmFWYWFkaW46bXN0LGZhRGV2aWFudGFydDpnc3QsZmFNZWRpdW06eWcsZmFNZWRpdW1NOmJzdCxmYU9wZW5jYXJ0OnZzdCxmYVlDb21iaW5hdG9yOnhzdCxmYUxpbmU6eXN0LGZhQW1pbGlhOndzdCxmYUFzeW1tZXRyaWs6TXN0LGZhUGhhYnJpY2F0b3I6a3N0LGZhQm90czpTc3QsZmFWaW5lOnpzdCxmYU1lZHJ0OkNzdCxmYU9zaTpUc3QsZmFHZzpfc3QsZmFCdXlzZWxsYWRzOkxzdCxmYUdvb2dsZVBsdXM6QXN0LGZhU2NyZWVucGFsOkRzdCxmYUJpdGNvaW46RXN0LGZhU3dpZnQ6JHN0LGZhRmlsZXNQaW53aGVlbDpJc3QsZmFMYXJhdmVsOlBzdCxmYVdwZm9ybXM6TnN0LGZhU3BlYWtlckRlY2s6RnN0LGZhRmxpY2tyOk9zdCxmYUNjVmlzYTpSc3QsZmFVcHdvcms6QnN0LGZhS2FrYW9UYWxrOkhzdCxmYUZsdXR0ZXI6cXN0LGZhQnVmZmVyOmpzdCxmYUdyYXRpcGF5OlZzdCxmYUdvb2dsZVBheTpVc3QsZmFBcHBsZTpXc3QsZmFUdW1ibHI6R3N0LGZhUGhvZW5peFNxdWFkcm9uOllzdCxmYUNlbnRlcmNvZGU6WnN0LGZhRGViaWFuOlhzdCxmYU1hc3RvZG9uOlFzdCxmYVNrZXRjaDpKc3QsZmFXZWJBd2Vzb21lOktzdCxmYVNhc3M6ZWx0LGZhVGhyZWVtYTp0bHQsZmFTcXVhcmVXaGF0c2FwcDp0bmUsZmFXaGF0c2FwcFNxdWFyZTpybHQsZmFTa3lwZTppbHQsZmFBbmd1bGFyOmFsdCxmYUNpcmNsZVp1bGlwOm5sdCxmYU9wZW5zdXNlOm9sdCxmYURyb3Bib3g6c2x0LGZhRGVlemVyOmxsdCxmYUNyZWF0aXZlQ29tbW9uc1NhbXBsaW5nOmNsdCxmYUplZGlPcmRlcjpkbHQsZmFSUHJvamVjdDp1bHQsZmFJbnN0YWxvZDpwbHQsZmFDYW5hZGlhbk1hcGxlTGVhZjpobHQsZmFFdGhlcmV1bTpmbHQsZmFIb3V6ejptbHQsZmFWaWJlcjpnbHQsZmFLaWNrc3RhcnRlcjpybmUsZmFTcXVhcmVLaWNrc3RhcnRlcjpibHQsZmFTcG90aWZ5OnZsdCxmYUxlYW5wdWI6eGx0LGZhSmF2YTp5bHQsZmFOZmNTeW1ib2w6d2x0LGZhV29kdTpNbHQsZmFTcXVhcmVTdGVhbTppbmUsZmFTdGVhbVNxdWFyZTprbHQsZmFDcmVhdGl2ZUNvbW1vbnNOY0V1OlNsdCxmYU5wbTp6bHQsZmFDbG91ZHNjYWxlOkNsdCxmYVRoZW1lY286VGx0LGZhR29vZ2xlUGxheTpfbHQsZmFLb3J2dWU6TGx0LGZhVzNjOkFsdCxmYUdyYXY6RGx0LGZhQXdzOkVsdCxmYUdsaWRlRzokbHQsZmFKc2ZpZGRsZTpJbHQsZmFLZXliYXNlOlBsdCxmYUx1bW9uRHJvcDpObHQsZmFGb3JnZWpvOkZsdCxmYVBvc3RncmVzcWw6T2x0LGZhV2VlYmx5OlJsdCxmYURvY2tlcjpCbHQsZmFNYWdlbnRvOkhsdCxmYVRvckJyb3dzZXI6cWx0LGZhR2l0QWx0OmpsdCxmYUZpcmVmb3hCcm93c2VyOlZsdCxmYUNsb3Vkc21pdGg6VWx0LGZhV2l6YXJkc09mVGhlQ29hc3Q6V2x0LGZhQ3JlYXRpdmVDb21tb25zTmQ6R2x0LGZhVXNwczpZbHQsZmFTcXVhcmVMZXR0ZXJib3hkOlpsdCxmYU1hbmRhbG9yaWFuOlhsdCxmYVNsYWNrOmFuZSxmYVNsYWNrSGFzaDpGQSxmYUFuZ2VsbGlzdDpRbHQsZmFBbmRyb2lkOkpsdCxmYU1lZXR1cDpLbHQsZmFGb250aWNvbnNGaTplY3QsZmFQYWxmZWQ6dGN0LGZhV3BiZWdpbm5lcjpyY3QsZmFEaWFzcG9yYTppY3QsZmFQcm9kdWN0SHVudDphY3QsZmFTcXVhcmVVcHdvcms6bmN0LGZhQ3V0dGxlZmlzaDpvY3QsZmFNZWRhcHBzOnNjdCxmYVBpeDpsY3QsZmFTcXVhcmVUdW1ibHI6bm5lLGZhVHVtYmxyU3F1YXJlOmNjdCxmYVJlYWN0OmRjdCxmYUh1Z2dpbmdGYWNlOnVjdCxmYUp4bDpwY3QsZmFTcXVhcmVMaW5rZWRpbjpoY3QsZmFDc3M6ZmN0LGZhSGFzaG5vZGU6bWN0LGZhUmVkZGl0QWxpZW46Z2N0LGZhVGlrdG9rOk9BLGZhV29yZHByZXNzOmJjdCxmYUlkZWFsOnZjdCxmYVBpZWRQaXBlclBwOnhjdCxmYVVzc3VubmFoOnljdCxmYUZvcnRBd2Vzb21lQWx0OndjdCxmYUJ1cm9tb2JlbGV4cGVydGU6TWN0LGZhQmlsaWJpbGk6a2N0LGZhTmVvczpTY3QsZmFEZXY6emN0LGZhSG90amFyOkNjdCxmYURvY2h1YjpUY3QsZmFWaW1lbzpfY3QsZmFNYXhjZG46TGN0LGZhU3F1YXJlRm9udEF3ZXNvbWVTdHJva2U6b25lLGZhRm9udEF3ZXNvbWVBbHQ6QWN0LGZhU3BlYWthcDpEY3QsZmFGYW50YXN5RmxpZ2h0R2FtZXM6RWN0LGZhTGludXg6JGN0LGZhQ290dG9uQnVyZWF1OkljdCxmYUdvb2dsZVdhbGxldDpQY3QsZmFGb3Vyc3F1YXJlOk5jdCxmYVNoaXJ0c2luYnVsazpGY3QsZmFNaW50Yml0Ok9jdCxmYVp1bGlwOlJjdCxmYVN0YXlsaW5rZWQ6QmN0LGZhV2ViZmxvdzpIY3QsZmFSZW5yZW46cWN0LGZhS29GaTpqY3QsZmFSZXY6VmN0LGZhS2V5Y2RuOlVjdCxmYUhpcmVBSGVscGVyOldjdCxmYVNxdWFyZUhhY2tlck5ld3M6c25lLGZhSGFja2VyTmV3c1NxdWFyZTpHY3QsZmFDcmVhdGl2ZUNvbW1vbnNQZEFsdDpZY3QsZmFPcmNpZDpaY3QsZmFCb2FyZEdhbWVHZWVrOmxuZSxmYUJnZzpYY3QsZmFCZWhhbmNlOlFjdCxmYU1vbmVybzpKY3QsZmFGaWdtYTpLY3QsZmFJbnN0YWdyYW06UkEsZmFQZXJieXRlOmUwdCxmYVNxdWFyZVZpbWVvOmNuZSxmYVZpbWVvU3F1YXJlOnQwdCxmYVB1c2hlZDpyMHQsZmFNaXhjbG91ZDppMHQsZmFZYW5kZXhJbnRlcm5hdGlvbmFsOmEwdCxmYUhpdmU6bjB0LGZhQ3JlYXRpdmVDb21tb25zWmVybzpvMHQsZmFTcXVhcmVTbmFwY2hhdDpkbmUsZmFTbmFwY2hhdFNxdWFyZTpzMHQsZmFUaGVtZWlzbGU6bDB0LGZhRGFydExhbmc6YzB0LGZhRGVwbG95ZG9nOmQwdCxmYUZsaXBib2FyZDp1MHQsZmFCdXlOTGFyZ2U6cDB0LGZhV2F0Y2htYW5Nb25pdG9yaW5nOmgwdCxmYUhpcHM6ZjB0LGZhQ2xvdWR2ZXJzaWZ5Om0wdCxmYUdvb2RyZWFkczpnMHQsZmFUaWRhbDpiMHQsZmFVbml0eTp2MHQsZmFUZW5jZW50V2VpYm86eDB0LGZhRnJlZUNvZGVDYW1wOnkwdCxmYVhUd2l0dGVyOncwdCxmYVN0aWNrZXJNdWxlOk0wdCxmYVR3aXRjaDprMHQsZmFLaWNrc3RhcnRlcks6UzB0LGZhQ3JpdGljYWxSb2xlOnowdCxmYVN0ZWFtU3ltYm9sOkMwdCxmYU1haWxjaGltcDpUMHQsZmFMdW1vbjpfMHQsZmFOdXRyaXRpb25peDpMMHQsZmFDcmVhdGl2ZUNvbW1vbnNTYW1wbGluZ1BsdXM6QTB0LGZhUmVkaGF0OkQwdCxmYVNxdWFyZVBpZWRQaXBlcjp1bmUsZmFQaWVkUGlwZXJTcXVhcmU6RTB0LGZhV2hhdHNhcHA6JDB0LGZhSW1kYjpJMHQsZmFQeXRob246UDB0LGZhQ2FzaEFwcDpOMHQsZmFQaW50ZXJlc3RQOkYwdCxmYVdobWNzOk8wdCxmYUpvZ2V0OlIwdCxmYVNxdWFyZVlvdXR1YmU6cG5lLGZhWW91dHViZVNxdWFyZTpCMHQsZmFBdGxhc3NpYW46SDB0LGZhUGllZFBpcGVySGF0OnEwdCxmYUludGVybmV0RXhwbG9yZXI6ajB0LGZhQWlyYm5iOlYwdCxmYUpzOlUwdCxmYVF1aW5zY2FwZTpXMHQsZmFBZHZlcnNhbDpHMHQsZmFDcmVhdGl2ZUNvbW1vbnM6WTB0LGZhTm90aW9uOlowdCxmYUNocm9tZWNhc3Q6WDB0LGZhVWx0cmFseXRpY3NIdWI6UTB0LGZhV2lraXBlZGlhVzpKMHQsZmFTaXRyb3g6SzB0LGZhU3F1YXJlR2l0bGFiOmhuZSxmYUdpdGxhYlNxdWFyZTplNHQsZmFTaG9lbGFjZTp0NHQsZmFPcGVuc3RyZWV0bWFwOnI0dCxmYVNlbGxjYXN0Omk0dCxmYU1peDphNHQsZmFDY0FwcGxlUGF5Om40dCxmYVNvbGFuYTpvNHQsZmFUeXBlc2NyaXB0OnM0dCxmYUJyYXZlOmw0dCxmYUV0c3k6YzR0LGZhQnRjOmQ0dCxmYUFkbjp1NHQsZmFTcXVhcmVYVHdpdHRlcjpwNHQsZmFTcXVhcmVGb250QXdlc29tZTpoNHQsZmFGb3J1bWJlZTpmNHQsZmE0Mkdyb3VwOmZuZSxmYUlubm9zb2Z0Om00dCxmYVN0dW1ibGV1cG9uQ2lyY2xlOmc0dCxmYVN5bWZvbnk6YjR0LGZhU2FsZXNmb3JjZTp2NHQsZmFTb3VyY2V0cmVlOng0dCxmYUxpbmtlZGluSW46eTR0LGZhSHRtbDU6dzR0LGZhUnVzdDpNNHQsZmFIb3JuYmlsbDprNHQsZmFQaHA6UzR0LGZhRGlzcXVzOno0dCxmYTUwMHB4OkM0dCxmYUFmZmlsaWF0ZXRoZW1lOlQ0dCxmYVJlZFJpdmVyOl80dCxmYVR3aXR0ZXI6QkEsZmFGb3J0QXdlc29tZTpMNHQsZmFNaXhlcjpBNHQsZmFMeWZ0OkQ0dCxmYUFwcGxlUGF5OkU0dCxmYUFydHN0YXRpb246JDR0LGZhTm9kZUpzOkk0dCxmYVVuY2hhcnRlZDpQNHQsZmFQbGF5c3RhdGlvbjpONHQsZmFNaWNyb2Jsb2c6RjR0LGZhR2l0a3Jha2VuOk80dCxmYVRlbGVncmFtOm1uZSxmYVRlbGVncmFtUGxhbmU6UjR0LGZhVWx0cmFseXRpY3M6QjR0LGZhSXR1bmVzTm90ZTpINHQsZmFMZXNzOnE0dCxmYUZpcmVmb3g6ajR0LGZhS2FnZ2xlOlY0dCxmYUZhY2Vib29rTWVzc2VuZ2VyOlU0dCxmYUF1ZGlibGU6VzR0LGZhUGF0cmVvbjpHNHQsZmFWbnY6WTR0LGZhUGFnZWxpbmVzOlo0dCxmYUFtYXpvbjpYNHQsZmFFbnZpcmE6UTR0LGZhTGlub2RlOko0dCxmYUFjY3Vzb2Z0Oks0dCxmYUVybGFuZzplM3QsZmFVbmlzb246dDN0LGZhQ2NEaXNjb3ZlcjpyM3QsZmFTYWZhcmk6aTN0LGZhU3BhY2VBd2Vzb21lOmEzdCxmYU5vZGU6bjN0LGZhQ29kZXBlbjpvM3QsZmFSYXZlbHJ5OnMzdCxmYUFsaXBheTpsM3QsZmFDY0FtZXg6YzN0LGZhUGllZFBpcGVyQWx0OmQzdCxmYUxldHRlcmJveGQ6dTN0LGZhT3BlcmE6cDN0LGZhV2VpYm86aDN0LGZhUmVhZG1lOmYzdCxmYUdvbGFuZzptM3QsZmFTdGFja0V4Y2hhbmdlOmczdCxmYUd1bHA6YjN0LGZhWWVscDp2M3QsZmFHb2ZvcmU6eDN0LGZhQXZpYXRvOnkzdCxmYVBhZGxldDp3M3QsZmFFZGdlTGVnYWN5Ok0zdCxmYVNxdWFyZUxhc3RmbTpnbmUsZmFMYXN0Zm1TcXVhcmU6azN0LGZhR29vZHJlYWRzRzpTM3QsZmFDY01hc3RlcmNhcmQ6ejN0LGZhRGlzY291cnNlOkMzdCxmYUJsYWNrVGllOlQzdCxmYVNxdWFyZUZhY2Vib29rOmJuZSxmYUZhY2Vib29rU3F1YXJlOl8zdCxmYUJhdHRsZU5ldDpMM3QsZmFCaW1vYmplY3Q6QTN0LGZhU3ZlbHRlOkQzdCxmYVNxdWFyZURlc2twcm86RTN0LGZhVGFpbHdpbmRDc3M6JDN0fX0pO3ZhciBrWnIsdm5lLFAzdCxOM3QseG5lLEYzdCxrZyxPM3QsUjN0LEIzdCxIM3QseW5lLHEzdCxqM3QsVjN0LFNnLFUzdCx3bmUsVzN0LE1uZSxHM3QsWTN0LFozdCxYM3Qsa25lLFEzdCxTbmUsSjN0LHpuZSxLM3QsQ25lLGU2dCxUbmUsdDZ0LF9uZSxyNnQsTG5lLGk2dCxhNnQsQW5lLG42dCxEbmUsbzZ0LEVuZSxzNnQsJG5lLGw2dCxjNnQsSW5lLGQ2dCxQbmUsdTZ0LE5uZSxwNnQsRm5lLGg2dCxPbmUsZjZ0LG02dCxnNnQsSEEsYjZ0LHY2dCx4NnQseTZ0LHc2dCxNNnQsazZ0LFM2dCxxQSx6NnQsQzZ0LFJuZSxUNnQsXzZ0LEw2dCxBNnQsRDZ0LEU2dCwkNnQsSTZ0LEJuZSxQNnQsTjZ0LEY2dCxQcCxPNnQsUjZ0LEhuZSxCNnQsSDZ0LHFuZSxxNnQsWkEsajZ0LFY2dCxqQSxVNnQsVzZ0LGpuZSxHNnQsWTZ0LFo2dCxWbmUsWDZ0LFVuZSxRNnQsVkEsSjZ0LEs2dCxXbmUsZWR0LEduZSx0ZHQscmR0LGlkdCxZbmUsYWR0LFpuZSxuZHQsWG5lLG9kdCxRbmUsc2R0LGxkdCxjZHQsZGR0LEpuZSx1ZHQscGR0LEtuZSxoZHQsZmR0LGVvZSxtZHQsZ2R0LHRvZSxiZHQsdmR0LHhkdCx3Zyx5ZHQsd2R0LE1kdCx6ZyxrZHQsU2R0LHpkdCxyb2UsQ2R0LFRkdCxpb2UsX2R0LGFvZSxMZHQsTWcsQWR0LERkdCxFZHQsbm9lLCRkdCxVQSxJZHQsUGR0LE5kdCxGZHQsb29lLE9kdCxXQSxSZHQsQmR0LHNvZSxIZHQsbG9lLHFkdCxqZHQsY29lLFZkdCxkb2UsVWR0LEdBLFdkdCxHZHQsWWR0LENnLFpkdCxYZHQsUWR0LEpkdCx1b2UsS2R0LHBvZSxlNXQsaG9lLHQ1dCxmb2UscjV0LG1vZSxpNXQsZ29lLGE1dCxZQSxuNXQsbzV0LHM1dCxsNXQsYm9lLGM1dCx2b2UsZDV0LHhvZSx1NXQseW9lLHA1dCxoNXQsZjV0LG01dCxnNXQsYjV0LHY1dCx3b2UseDV0LE1vZSx5NXQsdzV0LGtvZSxNNXQsU29lLGs1dCx6b2UsUzV0LFhBLHo1dCxDb2UsQzV0LFQ1dCxUb2UsXzV0LF9vZSxMNXQsQTV0LEQ1dCxMb2UsRTV0LCQ1dCxBb2UsSTV0LFA1dCxONXQsRjV0LERvZSxPNXQsRW9lLFI1dCwkb2UsQjV0LEg1dCxxNXQsSW9lLGo1dCxQb2UsVjV0LE5vZSxVNXQsVzV0LEZvZSxHNXQsT29lLFk1dCxaNXQsUm9lLFg1dCxRNXQsSjV0LFNacixLNXQ9cCgoKT0+e2tacj0iZmFyIix2bmU9e3ByZWZpeDoiZmFyIixpY29uTmFtZToic3F1YXJlLW1pbnVzIixpY29uOls0NDgsNTEyLFs2MTc2NywibWludXMtc3F1YXJlIl0sImYxNDYiLCJNNjQgODBjLTguOCAwLTE2IDcuMi0xNiAxNmwwIDMyMGMwIDguOCA3LjIgMTYgMTYgMTZsMzIwIDBjOC44IDAgMTYtNy4yIDE2LTE2bDAtMzIwYzAtOC44LTcuMi0xNi0xNi0xNkw2NCA4MHpNMCA5NkMwIDYwLjcgMjguNyAzMiA2NCAzMmwzMjAgMGMzNS4zIDAgNjQgMjguNyA2NCA2NGwwIDMyMGMwIDM1LjMtMjguNyA2NC02NCA2NEw2NCA0ODBjLTM1LjMgMC02NC0yOC43LTY0LTY0TDAgOTZ6TTEzNiAyMzJsMTc2IDBjMTMuMyAwIDI0IDEwLjcgMjQgMjRzLTEwLjcgMjQtMjQgMjRsLTE3NiAwYy0xMy4zIDAtMjQtMTAuNy0yNC0yNHMxMC43LTI0IDI0LTI0eiJdfSxQM3Q9dm5lLE4zdD17cHJlZml4OiJmYXIiLGljb25OYW1lOiJjYWxlbmRhci1jaGVjayIsaWNvbjpbNDQ4LDUxMixbXSwiZjI3NCIsIk0zMjggMGMxMy4zIDAgMjQgMTAuNyAyNCAyNGwwIDQwIDMyIDBjMzUuMyAwIDY0IDI4LjcgNjQgNjRsMCAyODhjMCAzNS4zLTI4LjcgNjQtNjQgNjRMNjQgNDgwYy0zNS4zIDAtNjQtMjguNy02NC02NEwwIDEyOEMwIDkyLjcgMjguNyA2NCA2NCA2NGwzMiAwIDAtNDBjMC0xMy4zIDEwLjctMjQgMjQtMjRzMjQgMTAuNyAyNCAyNGwwIDQwIDE2MCAwIDAtNDBjMC0xMy4zIDEwLjctMjQgMjQtMjR6TTY0IDExMmMtOC44IDAtMTYgNy4yLTE2IDE2bDAgMjg4YzAgOC44IDcuMiAxNiAxNiAxNmwzMjAgMGM4LjggMCAxNi03LjIgMTYtMTZsMC0yODhjMC04LjgtNy4yLTE2LTE2LTE2TDY0IDExMnptMjMwLjcgNjUuOWM3LjgtMTAuNyAyMi44LTEzLjEgMzMuNS01LjMgMTAuNyA3LjggMTMuMSAyMi44IDUuMyAzMy41TDIxMS40IDM3NC4xYy00LjEgNS43LTEwLjUgOS4zLTE3LjUgOS44LTcgLjUtMTMuOS0yLTE4LjgtNi45bC01NS45LTU1LjljLTkuNC05LjQtOS40LTI0LjYgMC0zMy45czI0LjYtOS40IDMzLjkgMGwzNiAzNiAxMDUuNi0xNDUuMnoiXX0seG5lPXtwcmVmaXg6ImZhciIsaWNvbk5hbWU6ImZhY2Uta2lzcyIsaWNvbjpbNTEyLDUxMixbMTI4NTM1LCJraXNzIl0sImY1OTYiLCJNNDY0IDI1NmEyMDggMjA4IDAgMSAwIC00MTYgMCAyMDggMjA4IDAgMSAwIDQxNiAwek0wIDI1NmEyNTYgMjU2IDAgMSAxIDUxMiAwIDI1NiAyNTYgMCAxIDEgLTUxMiAwem0yNDAgMGwzMiAwYzI2LjUgMCA0OCAyMS41IDQ4IDQ4IDAgMTIuMy00LjYgMjMuNS0xMi4yIDMyIDcuNiA4LjUgMTIuMiAxOS43IDEyLjIgMzIgMCAyNi41LTIxLjUgNDgtNDggNDhsLTMyIDBjLTguOCAwLTE2LTcuMi0xNi0xNnM3LjItMTYgMTYtMTZsMTYgMGM4LjggMCAxNi03LjIgMTYtMTZzLTcuMi0xNi0xNi0xNmwtMTYgMGMtOC44IDAtMTYtNy4yLTE2LTE2czcuMi0xNiAxNi0xNmwxNiAwYzguOCAwIDE2LTcuMiAxNi0xNnMtNy4yLTE2LTE2LTE2bC0xNiAwYy04LjggMC0xNi03LjItMTYtMTZzNy4yLTE2IDE2LTE2em0tOTYtNDhhMzIgMzIgMCAxIDEgNjQgMCAzMiAzMiAwIDEgMSAtNjQgMHptMTkyLTMyYTMyIDMyIDAgMSAxIDAgNjQgMzIgMzIgMCAxIDEgMC02NHoiXX0sRjN0PXhuZSxrZz17cHJlZml4OiJmYXIiLGljb25OYW1lOiJwYXN0ZSIsaWNvbjpbNTEyLDUxMixbImZpbGUtY2xpcGJvYXJkIl0sImYwZWEiLCJNNjQgNDhsMjI0IDBjOC44IDAgMTYgNy4yIDE2IDE2bDAgNDggNDggMCAwLTQ4YzAtMzUuMy0yOC43LTY0LTY0LTY0TDY0IDBDMjguNyAwIDAgMjguNyAwIDY0TDAgMzg0YzAgMzUuMyAyOC43IDY0IDY0IDY0bDExMiAwIDAtNDgtMTEyIDBjLTguOCAwLTE2LTcuMi0xNi0xNkw0OCA2NGMwLTguOCA3LjItMTYgMTYtMTZ6bTE3NiA3MmMwLTEzLjMtMTAuNy0yNC0yNC0yNEwxMDQgOTZjLTEzLjMgMC0yNCAxMC43LTI0IDI0czEwLjcgMjQgMjQgMjRsMTA1LjYgMGM4LjgtOC42IDE5LTE1LjggMzAuMi0yMS4xIC4xLS45IC4yLTEuOSAuMi0yLjl6TTQ0OCA0NjRsLTE2MCAwYy04LjggMC0xNi03LjItMTYtMTZsMC0yMjRjMC04LjggNy4yLTE2IDE2LTE2bDEwMS41IDBjNC4yIDAgOC4zIDEuNyAxMS4zIDQuN2w1OC41IDU4LjVjMyAzIDQuNyA3LjEgNC43IDExLjNMNDY0IDQ0OGMwIDguOC03LjIgMTYtMTYgMTZ6TTIyNCAyMjRsMCAyMjRjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMTYwIDBjMzUuMyAwIDY0LTI4LjcgNjQtNjRsMC0xNjUuNWMwLTE3LTYuNy0zMy4zLTE4LjctNDUuM2wtNTguNS01OC41Yy0xMi0xMi0yOC4zLTE4LjctNDUuMy0xOC43TDI4OCAxNjBjLTM1LjMgMC02NCAyOC43LTY0IDY0eiJdfSxPM3Q9a2csUjN0PXtwcmVmaXg6ImZhciIsaWNvbk5hbWU6ImhhbmQtcG9pbnQtbGVmdCIsaWNvbjpbNTEyLDUxMixbXSwiZjBhNSIsIk02NCAxMjhsMTc3LjYgMGMtMSA1LjItMS42IDEwLjUtMS42IDE2bDAgMTYtMTc2IDBjLTguOCAwLTE2LTcuMi0xNi0xNnM3LjItMTYgMTYtMTZ6bTIyNCAxNmMwLTE3LjcgMTQuMy0zMiAzMi0zMmwyNCAwYzY2LjMgMCAxMjAgNTMuNyAxMjAgMTIwbDAgNDhjMCA1Mi41LTMzLjcgOTcuMS04MC43IDExMy40IC41LTMuMSAuNy02LjIgLjctOS40IDAtMjAtOS4yLTM3LjktMjMuNi00OS43IDQuOS05IDcuNi0xOS40IDcuNi0zMC4zIDAtMTUuMS01LjMtMjktMTQtNDAgOC44LTExIDE0LTI0LjkgMTQtNDBsMC00MGMwLTEzLjMtMTAuNy0yNC0yNC0yNHMtMjQgMTAuNy0yNCAyNGwwIDQwYzAgOC44LTcuMiAxNi0xNiAxNnMtMTYtNy4yLTE2LTE2bDAtODB6bTMyLTgwbDAgMGMtMTggMC0zNC42IDYtNDggMTZMNjQgODBDMjguNyA4MCAwIDEwOC43IDAgMTQ0czI4LjcgNjQgNjQgNjRsODIgMGMtMS4zIDUuMS0yIDEwLjUtMiAxNiAwIDI1LjMgMTQuNyA0Ny4yIDM2IDU3LjYtMi42IDctNCAxNC41LTQgMjIuNCAwIDIwIDkuMiAzNy45IDIzLjYgNDkuNy00LjkgOS03LjYgMTkuNC03LjYgMzAuMyAwIDM1LjMgMjguNyA2NCA2NCA2NGw4OCAwYzkyLjggMCAxNjgtNzUuMiAxNjgtMTY4bDAtNDhjMC05Mi44LTc1LjItMTY4LTE2OC0xNjhsLTI0IDB6TTI1NiA0MDBjLTguOCAwLTE2LTcuMi0xNi0xNnM3LjItMTYgMTYtMTZsNjQgMGM4LjggMCAxNiA3LjIgMTYgMTZzLTcuMiAxNi0xNiAxNmwtNjQgMHpNMjQwIDIyNGMwIDUuNSAuNyAxMC45IDIgMTZsLTM0IDBjLTguOCAwLTE2LTcuMi0xNi0xNnM3LjItMTYgMTYtMTZsMzIgMCAwIDE2em0yNCA2NGw0MCAwYzguOCAwIDE2IDcuMiAxNiAxNnMtNy4yIDE2LTE2IDE2bC02NCAwYy04LjggMC0xNi03LjItMTYtMTZzNy4yLTE2IDE2LTE2bDI0IDB6Il19LEIzdD17cHJlZml4OiJmYXIiLGljb25OYW1lOiJmaWxlLWV4Y2VsIixpY29uOlszODQsNTEyLFtdLCJmMWMzIiwiTTY0IDQ4bDExMiAwIDAgODhjMCAzOS44IDMyLjIgNzIgNzIgNzJsODggMCAwIDI0MGMwIDguOC03LjIgMTYtMTYgMTZMNjQgNDY0Yy04LjggMC0xNi03LjItMTYtMTZMNDggNjRjMC04LjggNy4yLTE2IDE2LTE2ek0yMjQgNjcuOWw5Mi4xIDkyLjEtNjguMSAwYy0xMy4zIDAtMjQtMTAuNy0yNC0yNGwwLTY4LjF6TTY0IDBDMjguNyAwIDAgMjguNyAwIDY0TDAgNDQ4YzAgMzUuMyAyOC43IDY0IDY0IDY0bDI1NiAwYzM1LjMgMCA2NC0yOC43IDY0LTY0bDAtMjYxLjVjMC0xNy02LjctMzMuMy0xOC43LTQ1LjNMMjQyLjcgMTguN0MyMzAuNyA2LjcgMjE0LjUgMCAxOTcuNSAwTDY0IDB6bTk5LjIgMjY1LjZjLTgtMTAuNi0yMy0xMi44LTMzLjYtNC44cy0xMi44IDIzLTQuOCAzMy42TDE2MiAzNDQgMTI0LjggMzkzLjZjLTggMTAuNi01LjggMjUuNiA0LjggMzMuNnMyNS42IDUuOCAzMy42LTQuOEwxOTIgMzg0IDIyMC44IDQyMi40YzggMTAuNiAyMyAxMi44IDMzLjYgNC44czEyLjgtMjMgNC44LTMzLjZMMjIyIDM0NCAyNTkuMiAyOTQuNGM4LTEwLjYgNS44LTI1LjYtNC44LTMzLjZzLTI1LjYtNS44LTMzLjYgNC44TDE5MiAzMDQgMTYzLjIgMjY1LjZ6Il19LEgzdD17cHJlZml4OiJmYXIiLGljb25OYW1lOiJlbnZlbG9wZSIsaWNvbjpbNTEyLDUxMixbMTI4Mzg2LDk5OTMsNjE0NDNdLCJmMGUwIiwiTTYxLjQgNjRDMjcuNSA2NCAwIDkxLjUgMCAxMjUuNCAwIDEyNi4zIDAgMTI3LjEgLjEgMTI4TDAgMTI4IDAgMzg0YzAgMzUuMyAyOC43IDY0IDY0IDY0bDM4NCAwYzM1LjMgMCA2NC0yOC43IDY0LTY0bDAtMjU2LS4xIDBjMC0uOSAuMS0xLjcgLjEtMi42IDAtMzMuOS0yNy41LTYxLjQtNjEuNC02MS40TDYxLjQgNjR6TTQ2NCAxOTIuM0w0NjQgMzg0YzAgOC44LTcuMiAxNi0xNiAxNkw2NCA0MDBjLTguOCAwLTE2LTcuMi0xNi0xNmwwLTE5MS43IDE1NC44IDExNy40YzMxLjQgMjMuOSA3NC45IDIzLjkgMTA2LjQgMEw0NjQgMTkyLjN6TTQ4IDEyNS40QzQ4IDExOCA1NCAxMTIgNjEuNCAxMTJsMzg5LjIgMGM3LjQgMCAxMy40IDYgMTMuNCAxMy40IDAgNC4yLTIgOC4yLTUuMyAxMC43TDI4MC4yIDI3MS41Yy0xNC4zIDEwLjgtMzQuMSAxMC44LTQ4LjQgMEw1My4zIDEzNi4xYy0zLjMtMi41LTUuMy02LjUtNS4zLTEwLjd6Il19LHluZT17cHJlZml4OiJmYXIiLGljb25OYW1lOiJzcXVhcmUtY2FyZXQtZG93biIsaWNvbjpbNDQ4LDUxMixbImNhcmV0LXNxdWFyZS1kb3duIl0sImYxNTAiLCJNMzg0IDQzMmM4LjggMCAxNi03LjIgMTYtMTZsMC0zMjBjMC04LjgtNy4yLTE2LTE2LTE2TDY0IDgwYy04LjggMC0xNiA3LjItMTYgMTZsMCAzMjBjMCA4LjggNy4yIDE2IDE2IDE2bDMyMCAwem02NC0xNmMwIDM1LjMtMjguNyA2NC02NCA2NEw2NCA0ODBjLTM1LjMgMC02NC0yOC43LTY0LTY0TDAgOTZDMCA2MC43IDI4LjcgMzIgNjQgMzJsMzIwIDBjMzUuMyAwIDY0IDI4LjcgNjQgNjRsMCAzMjB6TTIyNCAzNTJjLTYuNyAwLTEzLTIuOC0xNy42LTcuN2wtMTA0LTExMmMtNi41LTctOC4yLTE3LjItNC40LTI1LjlTMTEwLjUgMTkyIDEyMCAxOTJsMjA4IDBjOS41IDAgMTguMiA1LjcgMjIgMTQuNHMyLjEgMTguOS00LjQgMjUuOWwtMTA0IDExMmMtNC41IDQuOS0xMC45IDcuNy0xNy42IDcuN3oiXX0scTN0PXluZSxqM3Q9e3ByZWZpeDoiZmFyIixpY29uTmFtZToidHJ1Y2siLGljb246WzU3Niw1MTIsWzEyODY2Niw5OTUxXSwiZjBkMSIsIk02NCA4MGMtOC44IDAtMTYgNy4yLTE2IDE2bDAgMjg4YzAgOC44IDcuMiAxNiAxNiAxNmwzLjMgMGMxMC40LTM2LjkgNDQuNC02NCA4NC43LTY0czc0LjIgMjcuMSA4NC43IDY0bDEwMi42IDBjNC45LTE3LjQgMTUuMS0zMi43IDI4LjctNDMuOUwzNjggOTZjMC04LjgtNy4yLTE2LTE2LTE2TDY0IDgwem0zLjMgMzY4TDY0IDQ0OGMtMzUuMyAwLTY0LTI4LjctNjQtNjRMMCA5NkMwIDYwLjcgMjguNyAzMiA2NCAzMmwyODggMGMzNS4zIDAgNjQgMjguNyA2NCA2NGwwIDMyIDU1LjQgMGMxNyAwIDMzLjMgNi43IDQ1LjMgMTguN2w0MC42IDQwLjZjMTIgMTIgMTguNyAyOC4zIDE4LjcgNDUuM0w1NzYgMzg0YzAgMzUuMy0yOC43IDY0LTY0IDY0bC0zLjMgMGMtMTAuNCAzNi45LTQ0LjQgNjQtODQuNyA2NHMtNzQuMi0yNy4xLTg0LjctNjRsLTEwMi42IDBjLTEwLjQgMzYuOS00NC40IDY0LTg0LjcgNjRzLTc0LjItMjcuMS04NC43LTY0ek00MTYgMjU2bDExMiAwIDAtMjMuNGMwLTQuMi0xLjctOC4zLTQuNy0xMS4zbC00MC42LTQwLjZjLTMtMy03LjEtNC43LTExLjMtNC43bC01NS40IDAgMCA4MHptMCA0OGwwIDMyLjRjMi42LS4yIDUuMy0uNCA4LS40IDQwLjMgMCA3NC4yIDI3LjEgODQuNyA2NGwzLjMgMGM4LjggMCAxNi03LjIgMTYtMTZsMC04MC0xMTIgMHpNMTUyIDQ2NGE0MCA0MCAwIDEgMCAwLTgwIDQwIDQwIDAgMSAwIDAgODB6bTI3MiAwYTQwIDQwIDAgMSAwIDAtODAgNDAgNDAgMCAxIDAgMCA4MHoiXX0sVjN0PXtwcmVmaXg6ImZhciIsaWNvbk5hbWU6ImJlbGwiLGljb246WzQ0OCw1MTIsWzEyODI3Niw2MTYwMl0sImYwZjMiLCJNMjI0IDBjLTEzLjMgMC0yNCAxMC43LTI0IDI0bDAgOS43QzExOC42IDQ1LjMgNTYgMTE1LjQgNTYgMjAwbDAgMTQuNWMwIDM3LjctMTAgNzQuNy0yOSAxMDcuM0w1LjEgMzU5LjJDMS44IDM2NSAwIDM3MS41IDAgMzc4LjIgMCAzOTkuMSAxNi45IDQxNiAzNy44IDQxNmwzNzIuNCAwYzIwLjkgMCAzNy44LTE2LjkgMzcuOC0zNy44IDAtNi43LTEuOC0xMy4zLTUuMS0xOUw0MjEgMzIxLjdjLTE5LTMyLjYtMjktNjkuNi0yOS0xMDcuM2wwLTE0LjVjMC04NC42LTYyLjYtMTU0LjctMTQ0LTE2Ni4zbDAtOS43YzAtMTMuMy0xMC43LTI0LTI0LTI0ek0zOTIuNCAzNjhsLTMzNi45IDAgMTIuOS0yMi4xQzkxLjcgMzA2IDEwNCAyNjAuNiAxMDQgMjE0LjVsMC0xNC41YzAtNjYuMyA1My43LTEyMCAxMjAtMTIwczEyMCA1My43IDEyMCAxMjBsMCAxNC41YzAgNDYuMiAxMi4zIDkxLjUgMzUuNSAxMzEuNEwzOTIuNCAzNjh6TTE1Ni4xIDQ2NGM5LjkgMjggMzYuNiA0OCA2Ny45IDQ4czU4LTIwIDY3LjktNDhsLTEzNS44IDB6Il19LFNnPXtwcmVmaXg6ImZhciIsaWNvbk5hbWU6Im1lc3NhZ2UiLGljb246WzUxMiw1MTIsWyJjb21tZW50LWFsdCJdLCJmMjdhIiwiTTIwMy43IDUxMi45czAgMCAwIDBsLTM3LjggMjYuN2MtNy4zIDUuMi0xNi45IDUuOC0yNC45IDEuN1MxMjggNTI5IDEyOCA1MjBsMC03Mi0zMiAwYy01MyAwLTk2LTQzLTk2LTk2TDAgMTI4QzAgNzUgNDMgMzIgOTYgMzJsMzIwIDBjNTMgMCA5NiA0MyA5NiA5NmwwIDIyNGMwIDUzLTQzIDk2LTk2IDk2bC0xMjAuNCAwLTkxLjkgNjQuOXptNjQuMy0xMDQuMWM4LjEtNS43IDE3LjgtOC44IDI3LjctOC44TDQxNiA0MDBjMjYuNSAwIDQ4LTIxLjUgNDgtNDhsMC0yMjRjMC0yNi41LTIxLjUtNDgtNDgtNDhMOTYgODBjLTI2LjUgMC00OCAyMS41LTQ4IDQ4bDAgMjI0YzAgMjYuNSAyMS41IDQ4IDQ4IDQ4bDU2IDBjMTAuNCAwIDE5LjMgNi42IDIyLjYgMTUuOSAuOSAyLjUgMS40IDUuMiAxLjQgOC4xbDAgNDkuN2MzMi43LTIzLjEgNjMuMy00NC43IDkxLjktNjQuOXoiXX0sVTN0PVNnLHduZT17cHJlZml4OiJmYXIiLGljb25OYW1lOiJmYWNlLWRpenp5IixpY29uOls1MTIsNTEyLFsiZGl6enkiXSwiZjU2NyIsIk00NjQgMjU2YTIwOCAyMDggMCAxIDAgLTQxNiAwIDIwOCAyMDggMCAxIDAgNDE2IDB6TTAgMjU2YTI1NiAyNTYgMCAxIDEgNTEyIDAgMjU2IDI1NiAwIDEgMSAtNTEyIDB6TTEzNC4xIDE1My45bDI1LjkgMjUuOSAyNS45LTI1LjljNy44LTcuOCAyMC41LTcuOCAyOC4zIDBzNy44IDIwLjUgMCAyOC4zbC0yNS45IDI1LjkgMjUuOSAyNS45YzcuOCA3LjggNy44IDIwLjUgMCAyOC4zcy0yMC41IDcuOC0yOC4zIDBsLTI1LjktMjUuOS0yNS45IDI1LjljLTcuOCA3LjgtMjAuNSA3LjgtMjguMyAwcy03LjgtMjAuNSAwLTI4LjNsMjUuOS0yNS45LTI1LjktMjUuOWMtNy44LTcuOC03LjgtMjAuNSAwLTI4LjNzMjAuNS03LjggMjguMyAwem0xOTIgMGwyNS45IDI1LjkgMjUuOS0yNS45YzcuOC03LjggMjAuNS03LjggMjguMyAwczcuOCAyMC41IDAgMjguM2wtMjUuOSAyNS45IDI1LjkgMjUuOWM3LjggNy44IDcuOCAyMC41IDAgMjguM3MtMjAuNSA3LjgtMjguMyAwbC0yNS45LTI1LjktMjUuOSAyNS45Yy03LjggNy44LTIwLjUgNy44LTI4LjMgMHMtNy44LTIwLjUgMC0yOC4zbDI1LjktMjUuOS0yNS45LTI1LjljLTcuOC03LjgtNy44LTIwLjUgMC0yOC4zczIwLjUtNy44IDI4LjMgMHpNMjU2IDI4OGE2NCA2NCAwIDEgMSAwIDEyOCA2NCA2NCAwIDEgMSAwLTEyOHoiXX0sVzN0PXduZSxNbmU9e3ByZWZpeDoiZmFyIixpY29uTmFtZToiY2FsZW5kYXItZGF5cyIsaWNvbjpbNDQ4LDUxMixbImNhbGVuZGFyLWFsdCJdLCJmMDczIiwiTTEyMCAwYzEzLjMgMCAyNCAxMC43IDI0IDI0bDAgNDAgMTYwIDAgMC00MGMwLTEzLjMgMTAuNy0yNCAyNC0yNHMyNCAxMC43IDI0IDI0bDAgNDAgMzIgMGMzNS4zIDAgNjQgMjguNyA2NCA2NGwwIDI4OGMwIDM1LjMtMjguNyA2NC02NCA2NEw2NCA0ODBjLTM1LjMgMC02NC0yOC43LTY0LTY0TDAgMTI4QzAgOTIuNyAyOC43IDY0IDY0IDY0bDMyIDAgMC00MGMwLTEzLjMgMTAuNy0yNCAyNC0yNHpNMzg0IDQzMmM4LjggMCAxNi03LjIgMTYtMTZsMC02NC04OCAwIDAgODAgNzIgMHptMTYtMTI4bDAtODAtODggMCAwIDgwIDg4IDB6bS0xMzYgMGwwLTgwLTgwIDAgMCA4MCA4MCAwem0tMTI4IDBsMC04MC04OCAwIDAgODAgODggMHpNNDggMzUybDAgNjRjMCA4LjggNy4yIDE2IDE2IDE2bDcyIDAgMC04MC04OCAwem0xMzYgMGwwIDgwIDgwIDAgMC04MC04MCAwek0xMjAgMTEybC01NiAwYy04LjggMC0xNiA3LjItMTYgMTZsMCA0OCAzNTIgMCAwLTQ4YzAtOC44LTcuMi0xNi0xNi0xNmwtMjY0IDB6Il19LEczdD1NbmUsWTN0PXtwcmVmaXg6ImZhciIsaWNvbk5hbWU6ImhhbmQtcG9pbnQtdXAiLGljb246WzM4NCw1MTIsWzk3NTddLCJmMGE2IiwiTTY0IDY0bDAgMTc3LjZjNS4yLTEgMTAuNS0xLjYgMTYtMS42bDE2IDAgMC0xNzZjMC04LjgtNy4yLTE2LTE2LTE2UzY0IDU1LjIgNjQgNjR6TTgwIDI4OGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJsMCAyNGMwIDY2LjMgNTMuNyAxMjAgMTIwIDEyMGw0OCAwYzUyLjUgMCA5Ny4xLTMzLjcgMTEzLjQtODAuNy0zLjEgLjUtNi4yIC43LTkuNCAuNy0yMCAwLTM3LjktOS4yLTQ5LjctMjMuNi05IDQuOS0xOS40IDcuNi0zMC4zIDcuNi0xNS4xIDAtMjktNS4zLTQwLTE0LTExIDguOC0yNC45IDE0LTQwIDE0bC00MCAwYy0xMy4zIDAtMjQtMTAuNy0yNC0yNHMxMC43LTI0IDI0LTI0bDQwIDBjOC44IDAgMTYtNy4yIDE2LTE2cy03LjItMTYtMTYtMTZsLTgwIDB6TTAgMzIwbDAgMGMwLTE4IDYtMzQuNiAxNi00OEwxNiA2NEMxNiAyOC43IDQ0LjcgMCA4MCAwczY0IDI4LjcgNjQgNjRsMCA4MmM1LjEtMS4zIDEwLjUtMiAxNi0yIDI1LjMgMCA0Ny4yIDE0LjcgNTcuNiAzNiA3LTIuNiAxNC41LTQgMjIuNC00IDIwIDAgMzcuOSA5LjIgNDkuNyAyMy42IDktNC45IDE5LjQtNy42IDMwLjMtNy42IDM1LjMgMCA2NCAyOC43IDY0IDY0bDAgODhjMCA5Mi44LTc1LjIgMTY4LTE2OCAxNjhsLTQ4IDBDNzUuMiA1MTIgMCA0MzYuOCAwIDM0NGwwLTI0em0zMzYtNjRjMC04LjgtNy4yLTE2LTE2LTE2cy0xNiA3LjItMTYgMTZsMCA2NGMwIDguOCA3LjIgMTYgMTYgMTZzMTYtNy4yIDE2LTE2bDAtNjR6TTE2MCAyNDBjNS41IDAgMTAuOSAuNyAxNiAybDAtMzRjMC04LjgtNy4yLTE2LTE2LTE2cy0xNiA3LjItMTYgMTZsMCAzMiAxNiAwem02NCAyNGwwIDQwYzAgOC44IDcuMiAxNiAxNiAxNnMxNi03LjIgMTYtMTZsMC02NGMwLTguOC03LjItMTYtMTYtMTZzLTE2IDcuMi0xNiAxNmwwIDI0eiJdfSxaM3Q9e3ByZWZpeDoiZmFyIixpY29uTmFtZToiaGFuZC1saXphcmQiLGljb246WzUxMiw1MTIsW10sImYyNTgiLCJNNzIgMTEyYy0xMy4zIDAtMjQgMTAuNy0yNCAyNHMxMC43IDI0IDI0IDI0bDE2OCAwYzM1LjMgMCA2NCAyOC43IDY0IDY0cy0yOC43IDY0LTY0IDY0bC0xMDQgMGMtMTMuMyAwLTI0IDEwLjctMjQgMjRzMTAuNyAyNCAyNCAyNGwxNTIgMGM0LjUgMCA4LjkgMS4zIDEyLjcgMy42bDY0IDQwYzcgNC40IDExLjMgMTIuMSAxMS4zIDIwLjRsMCAyNGMwIDEzLjMtMTAuNyAyNC0yNCAyNHMtMjQtMTAuNy0yNC0yNGwwLTEwLjctNDYuOS0yOS4zLTE0NS4xIDBjLTM5LjggMC03Mi0zMi4yLTcyLTcyczMyLjItNzIgNzItNzJsMTA0IDBjOC44IDAgMTYtNy4yIDE2LTE2cy03LjItMTYtMTYtMTZMNzIgMjA4Yy0zOS44IDAtNzItMzIuMi03Mi03MlMzMi4yIDY0IDcyIDY0bDIwOS42IDBjNDYuNyAwIDkwLjkgMjEuNSAxMTkuNyA1OC4zbDc4LjQgMTAwLjFjMjAuOSAyNi43IDMyLjMgNTkuNyAzMi4zIDkzLjdMNTEyIDQyNGMwIDEzLjMtMTAuNyAyNC0yNCAyNHMtMjQtMTAuNy0yNC0yNGwwLTEwNy45YzAtMjMuMi03LjgtNDUuOC0yMi4xLTY0LjFMMzYzLjUgMTUxLjljLTE5LjctMjUuMi00OS45LTM5LjktODEuOS0zOS45TDcyIDExMnoiXX0sWDN0PXtwcmVmaXg6ImZhciIsaWNvbk5hbWU6InNxdWFyZS1mdWxsIixpY29uOls1MTIsNTEyLFsxMjg5OTcsMTI4OTk4LDEyODk5OSwxMjllMywxMjkwMDEsMTI5MDAyLDEyOTAwMywxMTAzNSwxMTAzNl0sImY0NWMiLCJNNDQ4IDQ4YzguOCAwIDE2IDcuMiAxNiAxNmwwIDM4NGMwIDguOC03LjIgMTYtMTYgMTZMNjQgNDY0Yy04LjggMC0xNi03LjItMTYtMTZMNDggNjRjMC04LjggNy4yLTE2IDE2LTE2bDM4NCAwek02NCAwQzI4LjcgMCAwIDI4LjcgMCA2NEwwIDQ0OGMwIDM1LjMgMjguNyA2NCA2NCA2NGwzODQgMGMzNS4zIDAgNjQtMjguNyA2NC02NGwwLTM4NGMwLTM1LjMtMjguNy02NC02NC02NEw2NCAweiJdfSxrbmU9e3ByZWZpeDoiZmFyIixpY29uTmFtZToiY2lyY2xlLXBhdXNlIixpY29uOls1MTIsNTEyLFs2MjA5MiwicGF1c2UtY2lyY2xlIl0sImYyOGIiLCJNMjU2IDQ4YTIwOCAyMDggMCAxIDEgMCA0MTYgMjA4IDIwOCAwIDEgMSAwLTQxNnptMCA0NjRhMjU2IDI1NiAwIDEgMCAwLTUxMiAyNTYgMjU2IDAgMSAwIDAgNTEyek0yMjQgMTg0YzAtMTMuMy0xMC43LTI0LTI0LTI0cy0yNCAxMC43LTI0IDI0bDAgMTQ0YzAgMTMuMyAxMC43IDI0IDI0IDI0czI0LTEwLjcgMjQtMjRsMC0xNDR6bTExMiAwYzAtMTMuMy0xMC43LTI0LTI0LTI0cy0yNCAxMC43LTI0IDI0bDAgMTQ0YzAgMTMuMyAxMC43IDI0IDI0IDI0czI0LTEwLjcgMjQtMjRsMC0xNDR6Il19LFEzdD1rbmUsU25lPXtwcmVmaXg6ImZhciIsaWNvbk5hbWU6ImhhcmQtZHJpdmUiLGljb246WzQ0OCw1MTIsWzEyODQzNiwiaGRkIl0sImYwYTAiLCJNNjQgODBjLTguOCAwLTE2IDcuMi0xNiAxNmwwIDE2MmM1LjEtMS4zIDEwLjUtMiAxNi0ybDMyMCAwYzUuNSAwIDEwLjkgLjcgMTYgMmwwLTE2MmMwLTguOC03LjItMTYtMTYtMTZMNjQgODB6TTQ4IDMyMGwwIDk2YzAgOC44IDcuMiAxNiAxNiAxNmwzMjAgMGM4LjggMCAxNi03LjIgMTYtMTZsMC05NmMwLTguOC03LjItMTYtMTYtMTZMNjQgMzA0Yy04LjggMC0xNiA3LjItMTYgMTZ6TTAgMzIwTDAgOTZDMCA2MC43IDI4LjcgMzIgNjQgMzJsMzIwIDBjMzUuMyAwIDY0IDI4LjcgNjQgNjRsMCAzMjBjMCAzNS4zLTI4LjcgNjQtNjQgNjRMNjQgNDgwYy0zNS4zIDAtNjQtMjguNy02NC02NGwwLTk2em0yMTYgNDhhMjQgMjQgMCAxIDEgNDggMCAyNCAyNCAwIDEgMSAtNDggMHptMTIwLTI0YTI0IDI0IDAgMSAxIDAgNDggMjQgMjQgMCAxIDEgMC00OHoiXX0sSjN0PVNuZSx6bmU9e3ByZWZpeDoiZmFyIixpY29uTmFtZToiZmlsZS16aXBwZXIiLGljb246WzM4NCw1MTIsWyJmaWxlLWFyY2hpdmUiXSwiZjFjNiIsIk02NCA0OGwxMTIgMCAwIDg4YzAgMzkuOCAzMi4yIDcyIDcyIDcybDg4IDAgMCAyNDBjMCA4LjgtNy4yIDE2LTE2IDE2TDY0IDQ2NGMtOC44IDAtMTYtNy4yLTE2LTE2TDQ4IDY0YzAtOC44IDcuMi0xNiAxNi0xNnpNMjI0IDY3LjlsOTIuMSA5Mi4xLTY4LjEgMGMtMTMuMyAwLTI0LTEwLjctMjQtMjRsMC02OC4xek02NCAwQzI4LjcgMCAwIDI4LjcgMCA2NEwwIDQ0OGMwIDM1LjMgMjguNyA2NCA2NCA2NGwyNTYgMGMzNS4zIDAgNjQtMjguNyA2NC02NGwwLTI2MS41YzAtMTctNi43LTMzLjMtMTguNy00NS4zTDI0Mi43IDE4LjdDMjMwLjcgNi43IDIxNC41IDAgMTk3LjUgMEw2NCAwek04MCAxMDRjMCAxMy4zIDEwLjcgMjQgMjQgMjRsMTYgMGMxMy4zIDAgMjQtMTAuNyAyNC0yNHMtMTAuNy0yNC0yNC0yNGwtMTYgMGMtMTMuMyAwLTI0IDEwLjctMjQgMjR6bTAgODBjMCAxMy4zIDEwLjcgMjQgMjQgMjRsMzIgMGMxMy4zIDAgMjQtMTAuNyAyNC0yNHMtMTAuNy0yNC0yNC0yNGwtMzIgMGMtMTMuMyAwLTI0IDEwLjctMjQgMjR6bTY0IDU2bC0zMiAwYy0xNy43IDAtMzIgMTQuMy0zMiAzMmwwIDQ4YzAgMjYuNSAyMS41IDQ4IDQ4IDQ4czQ4LTIxLjUgNDgtNDhsMC00OGMwLTE3LjctMTQuMy0zMi0zMi0zMnptLTE2IDY0YTE2IDE2IDAgMSAxIDAgMzIgMTYgMTYgMCAxIDEgMC0zMnoiXX0sSzN0PXpuZSxDbmU9e3ByZWZpeDoiZmFyIixpY29uTmFtZToiZmxvcHB5LWRpc2siLGljb246WzQ0OCw1MTIsWzEyODE5MCwxMjg0MjYsInNhdmUiXSwiZjBjNyIsIk02NCA4MGMtOC44IDAtMTYgNy4yLTE2IDE2bDAgMzIwYzAgOC44IDcuMiAxNiAxNiAxNmwzMjAgMGM4LjggMCAxNi03LjIgMTYtMTZsMC0yNDIuN2MwLTQuMi0xLjctOC4zLTQuNy0xMS4zTDMyMCA4Ni42IDMyMCAxNzZjMCAxNy43LTE0LjMgMzItMzIgMzJsLTE2MCAwYy0xNy43IDAtMzItMTQuMy0zMi0zMmwwLTk2LTMyIDB6bTgwIDBsMCA4MCAxMjggMCAwLTgwLTEyOCAwek0wIDk2QzAgNjAuNyAyOC43IDMyIDY0IDMybDI0Mi43IDBjMTcgMCAzMy4zIDYuNyA0NS4zIDE4LjdMNDI5LjMgMTI4YzEyIDEyIDE4LjcgMjguMyAxOC43IDQ1LjNMNDQ4IDQxNmMwIDM1LjMtMjguNyA2NC02NCA2NEw2NCA0ODBjLTM1LjMgMC02NC0yOC43LTY0LTY0TDAgOTZ6TTE2MCAzMjBhNjQgNjQgMCAxIDEgMTI4IDAgNjQgNjQgMCAxIDEgLTEyOCAweiJdfSxlNnQ9Q25lLFRuZT17cHJlZml4OiJmYXIiLGljb25OYW1lOiJmYWNlLWdyaW4tdG9uZ3VlLXNxdWludCIsaWNvbjpbNTEyLDUxMixbMTI4NTQxLCJncmluLXRvbmd1ZS1zcXVpbnQiXSwiZjU4YSIsIk00NjQgMjU2YzAtMTE0LjktOTMuMS0yMDgtMjA4LTIwOFM0OCAxNDEuMSA0OCAyNTZjMCA3NS45IDQwLjcgMTQyLjQgMTAxLjUgMTc4LjctMy42LTEwLjktNS41LTIyLjYtNS41LTM0LjdsMC0zNy41Yy0xMC4yLTEyLjYtMTguMy0yNi45LTIzLjgtNDIuNC00LjEtMTEuNiA3LjgtMjEuNCAxOS42LTE3LjggMzQuNyAxMC42IDc0LjIgMTYuNSAxMTYuMSAxNi41IDQyIDAgODEuNS02IDExNi4zLTE2LjYgMTEuOC0zLjYgMjMuNyA2LjEgMTkuNiAxNy44LTUuNSAxNS42LTEzLjYgMjkuOS0yMy44IDQyLjVsMCAzNy41YzAgMTIuMS0xLjkgMjMuOC01LjUgMzQuNyA2MC44LTM2LjMgMTAxLjUtMTAyLjcgMTAxLjUtMTc4Ljd6TTAgMjU2YTI1NiAyNTYgMCAxIDEgNTEyIDAgMjU2IDI1NiAwIDEgMSAtNTEyIDB6bTEyNS44LTc1LjdjLTYuMi01LjItNy42LTE0LjMtMy4xLTIxLjFzMTMuMy05LjIgMjAuNi01LjVsNzkuNiA0MGM1LjQgMi43IDguOCA4LjIgOC44IDE0LjNzLTMuNCAxMS42LTguOCAxNC4zbC03OS42IDQwYy03LjMgMy42LTE2LjEgMS4zLTIwLjYtNS41cy0zLjEtMTUuOSAzLjEtMjEuMUwxNTkgMjA4IDEyNS44IDE4MC4zem0yNjMuNi0yMS4xYzQuNSA2LjggMy4xIDE1LjktMy4xIDIxLjFMMzUzIDIwOCAzODYuMiAyMzUuN2M2LjIgNS4yIDcuNiAxNC4zIDMuMSAyMS4xcy0xMy4zIDkuMi0yMC42IDUuNWwtNzkuNi00MGMtNS40LTIuNy04LjgtOC4yLTguOC0xNC4zczMuNC0xMS42IDguOC0xNC4zbDc5LjYtNDBjNy4zLTMuNiAxNi4xLTEuMyAyMC42IDUuNXpNMzIwIDQxNmwwLTM3LjRjMC0xNC43LTExLjktMjYuNi0yNi42LTI2LjZsLTIgMGMtMTEuMyAwLTIxLjEgNy45LTIzLjYgMTguOS0yLjggMTIuNi0yMC44IDEyLjYtMjMuNiAwLTIuNS0xMS4xLTEyLjMtMTguOS0yMy42LTE4LjlsLTIgMGMtMTQuNyAwLTI2LjYgMTEuOS0yNi42IDI2LjZsMCAzNy40YzAgMzUuMyAyOC43IDY0IDY0IDY0czY0LTI4LjcgNjQtNjR6Il19LHQ2dD1UbmUsX25lPXtwcmVmaXg6ImZhciIsaWNvbk5hbWU6ImNhbWVyYSIsaWNvbjpbNTEyLDUxMixbNjIyNTgsImNhbWVyYS1hbHQiXSwiZjAzMCIsIk0xOTMuMSAzMmMtMTguNyAwLTM2LjIgOS40LTQ2LjYgMjQuOUwxMjAuNSA5NiA2NCA5NkMyOC43IDk2IDAgMTI0LjcgMCAxNjBMMCA0MTZjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMzg0IDBjMzUuMyAwIDY0LTI4LjcgNjQtNjRsMC0yNTZjMC0zNS4zLTI4LjctNjQtNjQtNjRsLTU2LjUgMC0yNi0zOS4xQzM1NS4xIDQxLjQgMzM3LjYgMzIgMzE4LjkgMzJMMTkzLjEgMzJ6bS02LjcgNTEuNmMxLjUtMi4yIDQtMy42IDYuNy0zLjZsMTI1LjcgMGMyLjcgMCA1LjIgMS4zIDYuNyAzLjZsMzMuMiA0OS44YzQuNSA2LjcgMTEuOSAxMC43IDIwIDEwLjdsNjkuMyAwYzguOCAwIDE2IDcuMiAxNiAxNmwwIDI1NmMwIDguOC03LjIgMTYtMTYgMTZMNjQgNDMyYy04LjggMC0xNi03LjItMTYtMTZsMC0yNTZjMC04LjggNy4yLTE2IDE2LTE2bDY5LjMgMGM4IDAgMTUuNS00IDIwLTEwLjdsMzMuMi00OS44ek0yNTYgMzg0YTExMiAxMTIgMCAxIDAgMC0yMjQgMTEyIDExMiAwIDEgMCAwIDIyNHpNMTkyIDI3MmE2NCA2NCAwIDEgMSAxMjggMCA2NCA2NCAwIDEgMSAtMTI4IDB6Il19LHI2dD1fbmUsTG5lPXtwcmVmaXg6ImZhciIsaWNvbk5hbWU6ImZhY2UtZ3Jpbi1zdGFycyIsaWNvbjpbNTEyLDUxMixbMTI5MzIxLCJncmluLXN0YXJzIl0sImY1ODciLCJNMCAyNTZjMC0yOS42IDUtNTcuOSAxNC4yLTg0LjRsMTcuMyAxNi45LTQuNiAyN2MtNC4yIDI0LjQgNS42IDQ2LjIgMjIgNTkuOSA5LjggMTA1LjggOTguOCAxODguNyAyMDcuMSAxODguN3MxOTcuNC04Mi44IDIwNy4xLTE4OC42YzE2LjQtMTMuNyAyNi4xLTM1LjQgMjItNTkuOWwtNC42LTI3IDE3LjMtMTYuOWM5LjIgMjYuNCAxNC4yIDU0LjggMTQuMiA4NC40IDAgMTQxLjQtMTE0LjYgMjU2LTI1NiAyNTZTMCAzOTcuNCAwIDI1NnpNMjU2IDQ4Yy0xNS4yIDAtMzAgMS42LTQ0LjMgNC43TDIwMS40IDMxLjhDMTk3IDIzIDE5MS4xIDE1LjggMTg0LjIgMTAuMiAyMDcgMy42IDIzMS4xIDAgMjU2IDBzNDkgMy42IDcxLjggMTAuMkMzMjAuOSAxNS44IDMxNSAyMyAzMTAuNiAzMS44TDMwMC4zIDUyLjdDMjg2IDQ5LjYgMjcxLjIgNDggMjU2IDQ4ek0zNzIuMiAzMDIuM2MxMS44LTMuNiAyMy43IDYuMSAxOS42IDE3LjgtMTkuOCA1NS45LTczLjEgOTYtMTM1LjggOTYtNjIuNyAwLTExNi00MC0xMzUuOC05NS45LTQuMS0xMS42IDcuOC0yMS40IDE5LjYtMTcuOCAzNC43IDEwLjYgNzQuMiAxNi41IDExNi4xIDE2LjUgNDIgMCA4MS41LTYgMTE2LjMtMTYuNnpNMzUzLjcgNTMuMWM1LjktMTEuOSAyMi44LTExLjkgMjguNyAwbDIzLjMgNDcuMiA1MiA3LjZjMTMuMSAxLjkgMTguNCAxOCA4LjkgMjcuM2wtMzcuNyAzNi43IDguOSA1MS44YzIuMiAxMy4xLTExLjUgMjMtMjMuMiAxNi45TDM2OCAyMTYgMzIxLjUgMjQwLjVjLTExLjcgNi4yLTI1LjUtMy44LTIzLjItMTYuOWw4LjktNTEuOC0zNy43LTM2LjdjLTkuNS05LjMtNC4zLTI1LjQgOC45LTI3LjNsNTItNy42IDIzLjMtNDcuMnptLTE5NS4zIDBsMjMuMyA0Ny4yIDUyIDcuNmMxMy4xIDEuOSAxOC40IDE4IDguOSAyNy4zbC0zNy43IDM2LjcgOC45IDUxLjhjMi4yIDEzLjEtMTEuNSAyMy0yMy4yIDE2LjlMMTQ0IDIxNiA5Ny41IDI0MC41Yy0xMS43IDYuMi0yNS41LTMuOC0yMy4yLTE2LjlsOC45LTUxLjgtMzcuNy0zNi43Yy05LjUtOS4zLTQuMy0yNS40IDguOS0yNy4zbDUyLTcuNiAyMy4zLTQ3LjJjNS45LTExLjkgMjIuOC0xMS45IDI4LjcgMHoiXX0saTZ0PUxuZSxhNnQ9e3ByZWZpeDoiZmFyIixpY29uTmFtZToiZXllIixpY29uOls1NzYsNTEyLFsxMjgwNjVdLCJmMDZlIiwiTTI4OCA4MEMyMjIuOCA4MCAxNjkuMiAxMDkuNiAxMjguMSAxNDcuNyA4OS42IDE4My41IDYzIDIyNiA0OS40IDI1NiA2MyAyODYgODkuNiAzMjguNSAxMjguMSAzNjQuMyAxNjkuMiA0MDIuNCAyMjIuOCA0MzIgMjg4IDQzMnMxMTguOC0yOS42IDE1OS45LTY3LjdDNDg2LjQgMzI4LjUgNTEzIDI4NiA1MjYuNiAyNTYgNTEzIDIyNiA0ODYuNCAxODMuNSA0NDcuOSAxNDcuNyA0MDYuOCAxMDkuNiAzNTMuMiA4MCAyODggODB6TTk1LjQgMTEyLjZDMTQyLjUgNjguOCAyMDcuMiAzMiAyODggMzJzMTQ1LjUgMzYuOCAxOTIuNiA4MC42YzQ2LjggNDMuNSA3OC4xIDk1LjQgOTMgMTMxLjEgMy4zIDcuOSAzLjMgMTYuNyAwIDI0LjYtMTQuOSAzNS43LTQ2LjIgODcuNy05MyAxMzEuMS00Ny4xIDQzLjctMTExLjggODAuNi0xOTIuNiA4MC42UzE0Mi41IDQ0My4yIDk1LjQgMzk5LjRjLTQ2LjgtNDMuNS03OC4xLTk1LjQtOTMtMTMxLjEtMy4zLTcuOS0zLjMtMTYuNyAwLTI0LjYgMTQuOS0zNS43IDQ2LjItODcuNyA5My0xMzEuMXpNMjg4IDMzNmM0NC4yIDAgODAtMzUuOCA4MC04MCAwLTI5LjYtMTYuMS01NS41LTQwLTY5LjMtMS40IDU5LjctNDkuNiAxMDcuOS0xMDkuMyAxMDkuMyAxMy44IDIzLjkgMzkuNyA0MCA2OS4zIDQwem0tNzkuNi04OC40YzIuNSAuMyA1IC40IDcuNiAuNCAzNS4zIDAgNjQtMjguNyA2NC02NCAwLTIuNi0uMi01LjEtLjQtNy42LTM3LjQgMy45LTY3LjIgMzMuNy03MS4xIDcxLjF6bTQ1LjYtMTE1YzEwLjgtMyAyMi4yLTQuNSAzMy45LTQuNSA4LjggMCAxNy41IC45IDI1LjggMi42IC4zIC4xIC41IC4xIC44IC4yIDU3LjkgMTIuMiAxMDEuNCA2My43IDEwMS40IDEyNS4yIDAgNzAuNy01Ny4zIDEyOC0xMjggMTI4LTYxLjYgMC0xMTMtNDMuNS0xMjUuMi0xMDEuNC0xLjgtOC42LTIuOC0xNy41LTIuOC0yNi42IDAtMTEgMS40LTIxLjggNC0zMiAuMi0uNyAuMy0xLjMgLjUtMS45IDExLjktNDMuNCA0Ni4xLTc3LjYgODkuNS04OS41eiJdfSxBbmU9e3ByZWZpeDoiZmFyIixpY29uTmFtZToiZmFjZS1zYWQtdGVhciIsaWNvbjpbNTEyLDUxMixbMTI4NTQ2LCJzYWQtdGVhciJdLCJmNWI0IiwiTTQ2NCAyNTZjMC0xMTQuOS05My4xLTIwOC0yMDgtMjA4UzQ4IDE0MS4xIDQ4IDI1NmMwIDQxLjggMTIuMyA4MC43IDMzLjYgMTEzLjMgOC4yIDQ0LjcgNDcuMyA3OC42IDk0LjMgNzguNyAyNC43IDEwLjMgNTEuNyAxNiA4MC4xIDE2IDExNC45IDAgMjA4LTkzLjEgMjA4LTIwOHpNMjg4IDM1MmMtNS41IDAtMTAuOSAuNi0xNiAxLjggMC0uNiAwLTEuMiAwLTEuOCAwLTE2LjItNC0zMS41LTExLjEtNDQuOSA4LjctMiAxNy44LTMuMSAyNy4xLTMuMSA0MC4yIDAgNzUuNyAxOS44IDk3LjUgNTAgNy43IDEwLjggNS4zIDI1LjgtNS41IDMzLjVzLTI1LjggNS4zLTMzLjUtNS41Yy0xMy4xLTE4LjItMzQuNC0zMC01OC41LTMwek0wIDI1NmEyNTYgMjU2IDAgMSAxIDUxMiAwIDI1NiAyNTYgMCAxIDEgLTUxMiAwem0xNzYtODBhMzIgMzIgMCAxIDEgMCA2NCAzMiAzMiAwIDEgMSAwLTY0em0xMjggMzJhMzIgMzIgMCAxIDEgNjQgMCAzMiAzMiAwIDEgMSAtNjQgMHpNMTg1LjQgMjc2LjhjNi41IDcuOCAxMi42IDE2LjEgMTguMyAyNC42IDkgMTMuNCAyMC4zIDMwLjIgMjAuMyA0Ny40IDAgMjguMy0yMS41IDUxLjItNDggNTEuMnMtNDgtMjIuOS00OC01MS4yYzAtMTcuMiAxMS4yLTM0IDIwLjMtNDcuNCA1LjctOC41IDExLjktMTYuNyAxOC4zLTI0LjYgMi40LTIuOSA1LjctNC44IDkuNC00LjhzNyAxLjkgOS40IDQuOHoiXX0sbjZ0PUFuZSxEbmU9e3ByZWZpeDoiZmFyIixpY29uTmFtZToic2hhcmUtZnJvbS1zcXVhcmUiLGljb246WzU3Niw1MTIsWzYxNTA5LCJzaGFyZS1zcXVhcmUiXSwiZjE0ZCIsIk00MjUuNSA3Yy02LjktNi45LTE3LjItOC45LTI2LjItNS4yUzM4NC41IDE0LjMgMzg0LjUgMjRsMCA1Ni00OCAwYy04OC40IDAtMTYwIDcxLjYtMTYwIDE2MCAwIDQ2LjcgMjAuNyA4MC40IDQzLjYgMTAzLjQgOC4xIDguMiAxNi41IDE0LjkgMjQuMyAyMC40IDkuMiA2LjUgMjEuNyA1LjcgMzAuMS0xLjlzMTAuMi0yMCA0LjUtMjkuOGMtMy42LTYuMy02LjUtMTQuOS02LjUtMjYuNyAwLTM2LjIgMjkuMy02NS41IDY1LjUtNjUuNWw0Ni41IDAgMCA1NmMwIDkuNyA1LjggMTguNSAxNC44IDIyLjJzMTkuMyAxLjcgMjYuMi01LjJsMTM2LTEzNmM5LjQtOS40IDkuNC0yNC42IDAtMzMuOUw0MjUuNSA3em03IDk3bDAtMjIuMSA3OC4xIDc4LjEtNzguMSA3OC4xIDAtMjIuMWMwLTEzLjMtMTAuNy0yNC0yNC0yNEwzMzggMTkyYy01MC45IDAtOTMuOSAzMy41LTEwOC4zIDc5LjYtMy4zLTkuNC01LjItMTkuOC01LjItMzEuNiAwLTYxLjkgNTAuMS0xMTIgMTEyLTExMmw3MiAwYzEzLjMgMCAyNC0xMC43IDI0LTI0em0tMzIwLThjLTQ0LjIgMC04MCAzNS44LTgwIDgwbDAgMjU2YzAgNDQuMiAzNS44IDgwIDgwIDgwbDI1NiAwYzQ0LjIgMCA4MC0zNS44IDgwLTgwbDAtMjRjMC0xMy4zLTEwLjctMjQtMjQtMjRzLTI0IDEwLjctMjQgMjRsMCAyNGMwIDE3LjctMTQuMyAzMi0zMiAzMmwtMjU2IDBjLTE3LjcgMC0zMi0xNC4zLTMyLTMybDAtMjU2YzAtMTcuNyAxNC4zLTMyIDMyLTMybDI0IDBjMTMuMyAwIDI0LTEwLjcgMjQtMjRzLTEwLjctMjQtMjQtMjRsLTI0IDB6Il19LG82dD1EbmUsRW5lPXtwcmVmaXg6ImZhciIsaWNvbk5hbWU6Im5vdGUtc3RpY2t5IixpY29uOls0NDgsNTEyLFs2MjAyNiwic3RpY2t5LW5vdGUiXSwiZjI0OSIsIk0yNDAgNDMyTDY0IDQzMmMtOC44IDAtMTYtNy4yLTE2LTE2TDQ4IDk2YzAtOC44IDcuMi0xNiAxNi0xNmwzMjAgMGM4LjggMCAxNiA3LjIgMTYgMTZsMCAxNzYtODggMGMtMzkuOCAwLTcyIDMyLjItNzIgNzJsMCA4OHpNMzgwLjEgMzIwTDI4OCA0MTIuMSAyODggMzQ0YzAtMTMuMyAxMC43LTI0IDI0LTI0bDY4LjEgMHpNMCA0MTZjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMTk3LjUgMGMxNyAwIDMzLjMtNi43IDQ1LjMtMTguN0w0MjkuMyAzMzguN2MxMi0xMiAxOC43LTI4LjMgMTguNy00NS4zTDQ0OCA5NmMwLTM1LjMtMjguNy02NC02NC02NEw2NCAzMkMyOC43IDMyIDAgNjAuNyAwIDk2TDAgNDE2eiJdfSxzNnQ9RW5lLCRuZT17cHJlZml4OiJmYXIiLGljb25OYW1lOiJoYW5kLWJhY2stZmlzdCIsaWNvbjpbMzg0LDUxMixbImhhbmQtcm9jayJdLCJmMjU1IiwiTTk2IDQwMGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJsMCA0OGMwIDE3LjcgMTQuMyAzMiAzMiAzMmwyMjQgMGMxNy43IDAgMzItMTQuMyAzMi0zMmwwLTQ4YzAtMTcuNy0xNC4zLTMyLTMyLTMyTDk2IDQwMHpNNzMuMiAzNTJsNjQuNiAwLTc5LjUtODguM0M1MS43IDI1Ni4zIDQ4IDI0Ni44IDQ4IDIzNi45TDQ4IDIwNGMwLTE2LjEgMTEuOS0yOS41IDI3LjQtMzEuNyAxMS44LTEuNyAyMC42LTExLjggMjAuNi0yMy44TDk2IDcyYzAtMTMuMyAxMC43LTI0IDI0LTI0IDcuMiAwIDEzLjYgMy4xIDE4IDguMSA0LjYgNS4yIDExLjEgOC4xIDE4IDguMXMxMy40LTMgMTgtOC4xYzQuNC01IDEwLjgtOC4xIDE4LTguMSA4LjUgMCAxNS45IDQuNCAyMC4yIDExLjEgNi45IDEwLjcgMjAuOSAxNC4yIDMyIDggMy41LTEuOSA3LjQtMy4xIDExLjgtMy4xIDEwLjYgMCAxOS43IDYuOSAyMi44IDE2LjYgMy44IDExLjcgMTUuOSAxOC43IDI4IDE2IDEuNy0uNCAzLjQtLjYgNS4yLS42IDEzLjMgMCAyNCAxMC43IDI0IDI0bDAgOTIuMmMwIDE0LjQtMy41IDI4LjUtMTAuMiA0MS4ybC01Mi4yIDk4LjYgNTQuMyAwIDQwLjMtNzYuMmMxMC40LTE5LjYgMTUuOC00MS41IDE1LjgtNjMuNmwwLTkyLjJjMC0zOC40LTMwLjEtNjkuOC02OC4xLTcxLjktMTIuOS0xOS4zLTM0LjktMzIuMS01OS45LTMyLjEtNS43IDAtMTEuMiAuNy0xNi41IDEuOS0xMi43LTExLjEtMjkuMy0xNy45LTQ3LjUtMTcuOS0xMy4xIDAtMjUuNCAzLjUtMzYgOS42LTEwLjYtNi4xLTIyLjktOS42LTM2LTkuNi0zOS44IDAtNzIgMzIuMi03MiA3MmwwIDU4LjdDMTkuNyAxNDMgMCAxNzEuMiAwIDIwNGwwIDMyLjljMCAyMS43IDggNDIuNyAyMi42IDU4LjlMNzMuMiAzNTJ6Il19LGw2dD0kbmUsYzZ0PXtwcmVmaXg6ImZhciIsaWNvbk5hbWU6ImNoZXNzLXF1ZWVuIixpY29uOls1MTIsNTEyLFs5ODE5XSwiZjQ0NSIsIk0zMjUuMyA5MC44YzkuMS00LjggMjAuNi0zLjMgMjguMiA0LjNsMzkuOCAzOS44IDMuNyAzLjNjOS4xIDcuMSAyMC45IDEwIDMyLjQgNy43bDQ2LjQtOS4zIDMuNS0uNGM4LS40IDE1LjggMy4yIDIwLjYgOS44IDUuNSA3LjYgNi4xIDE3LjYgMS42IDI1LjhsLTExMi42IDIwMi42IDUxLjUgNzAuOSAxLjggMi43YzQgNi42IDYuMiAxNC4yIDYuMiAyMiAwIDIzLjMtMTguOSA0Mi4xLTQyLjEgNDIuMWwtMjk5LjggMGMtMjEuOCAwLTM5LjgtMTYuNi00MS45LTM3LjhsLS4yLTQuMyAuMS0zLjNjLjYtNy43IDMuNC0xNS4xIDcuOS0yMS40bDUxLjUtNzAuOS0xMTIuNS0yMDIuNmMtNC41LTguMi0zLjktMTguMyAxLjYtMjUuOHMxNC45LTExLjIgMjQuMS05LjRsNDYuNCA5LjNjMTMuMSAyLjYgMjYuNy0xLjUgMzYuMS0xMC45TDE1OS41IDk1IDE2MyA5Mi4yYzguNi01LjggMjAuMS01LjYgMjguNSAxLjFsNDAgMzIgMi44IDIuMWMxNC40IDkuNiAzMy41IDguOSA0Ny4yLTIuMWw0MC0zMiAzLjgtMi41ek0xNjQuNyA0MDBsLTQ2LjYgNjQgMjc2LjcgMC00Ni42LTY0LTE4My42IDB6TTMxMS41IDE2Mi44Yy0zMC4xIDI0LjEtNzIuMSAyNS42LTEwMy44IDQuNWwtNi4yLTQuNS0yMy4zLTE4LjYtMjQuNiAyNC42Yy0xOS44IDE5LjgtNDcuNyAyOC45LTc1LjEgMjQuOGw4OC4xIDE1OC41IDE3OS44IDAgODgtMTU4LjVjLTI1LjcgMy44LTUxLjctMy45LTcxLjEtMjFsLTQtMy43LTI0LjYtMjQuNi0yMy4yIDE4LjZ6TTI1Ni41IDcyYTQwIDQwIDAgMSAxIDAtODAgNDAgNDAgMCAxIDEgMCA4MHoiXX0sSW5lPXtwcmVmaXg6ImZhciIsaWNvbk5hbWU6ImZhY2UtZ3Jpbi10ZWFycyIsaWNvbjpbNjQwLDUxMixbMTI4NTE0LCJncmluLXRlYXJzIl0sImY1ODgiLCJNNTA0LjEgMzUzQzUxMi45IDM2Ny4yIDUyNS4zIDM3OSA1MzkuOCAzODcuMiA0OTUuMSA0NjIgNDEzLjQgNTEyIDMyMCA1MTJTMTQ0LjkgNDYyIDEwMC4yIDM4Ny4yYzE0LjYtOC4yIDI2LjktMjAgMzUuOC0zNC4zIDM0LjkgNjYgMTA0LjIgMTExIDE4NC4xIDExMXMxNDkuMi00NSAxODQuMS0xMTF6bTE2LjQtMTUyLjVDNDk2LjIgMTEyLjYgNDE1LjcgNDggMzIwIDQ4UzE0My44IDExMi42IDExOS41IDIwMC41Yy0xMC42LTQuOC0yMi43LTYuOC0zNS40LTVsLTEzLjQgMS45Qzk3LjIgODQuMyAxOTguOCAwIDMyMCAwUzU0Mi44IDg0LjMgNTY5LjMgMTk3LjRsLTEzLjQtMS45Yy0xMi43LTEuOC0yNC44IC4yLTM1LjQgNXpNNDU1LjggMzIwYy0xOS44IDU1LjktNzMuMSA5Ni0xMzUuOCA5Ni02Mi43IDAtMTE2LTQwLTEzNS44LTk1LjktNC4xLTExLjYgNy44LTIxLjQgMTkuNi0xNy44IDM0LjcgMTAuNiA3NC4yIDE2LjUgMTE2LjEgMTYuNSA0MiAwIDgxLjUtNiAxMTYuMy0xNi42IDExLjgtMy42IDIzLjcgNi4xIDE5LjYgMTcuOHpNMjEyIDIwOGwwIDhjMCAxMS05IDIwLTIwIDIwcy0yMC05LTIwLTIwbDAtOGMwLTM3LjYgMzAuNC02OCA2OC02OHM2OCAzMC40IDY4IDY4bDAgOGMwIDExLTkgMjAtMjAgMjBzLTIwLTktMjAtMjBsMC04YzAtMTUuNS0xMi41LTI4LTI4LTI4cy0yOCAxMi41LTI4IDI4em0xODgtMjhjLTE1LjUgMC0yOCAxMi41LTI4IDI4bDAgOGMwIDExLTkgMjAtMjAgMjBzLTIwLTktMjAtMjBsMC04YzAtMzcuNiAzMC40LTY4IDY4LTY4czY4IDMwLjQgNjggNjhsMCA4YzAgMTEtOSAyMC0yMCAyMHMtMjAtOS0yMC0yMGwwLThjMC0xNS41LTEyLjUtMjgtMjgtMjh6TTY0MCAzMDAuNmMwIDI4LjQtMjMgNTEuNC01MS40IDUxLjQtMjUuNiAwLTQ3LjMtMTguOC01MC45LTQ0LjFMNTMxIDI2MS4xYy0xLjUtMTAuNiA3LjUtMTkuNiAxOC4xLTE4LjFsNDYuNyA2LjdjMjUuMyAzLjYgNDQuMSAyNS4zIDQ0LjEgNTAuOXptLTY0MCAwYzAtMjUuNiAxOC44LTQ3LjMgNDQuMS01MC45TDkwLjkgMjQzYzEwLjYtMS41IDE5LjYgNy41IDE4LjEgMTguMWwtNi43IDQ2LjdDOTguNyAzMzMuMiA3NyAzNTIgNTEuNCAzNTIgMjMgMzUyIDAgMzI5IDAgMzAwLjZ6Il19LGQ2dD1JbmUsUG5lPXtwcmVmaXg6ImZhciIsaWNvbk5hbWU6InBlbi10by1zcXVhcmUiLGljb246WzUxMiw1MTIsWyJlZGl0Il0sImYwNDQiLCJNNDQxIDU4LjlMNDUzLjEgNzFjOS40IDkuNCA5LjQgMjQuNiAwIDMzLjlMNDI0IDEzNC4xIDM3Ny45IDg4IDQwNyA1OC45YzkuNC05LjQgMjQuNi05LjQgMzMuOSAwek0yMDkuOCAyNTYuMkwzNDQgMTIxLjkgMzkwLjEgMTY4IDI1NS44IDMwMi4yYy0yLjkgMi45LTYuNSA1LTEwLjQgNi4xbC01OC41IDE2LjcgMTYuNy01OC41YzEuMS0zLjkgMy4yLTcuNSA2LjEtMTAuNHpNMzczLjEgMjVMMTc1LjggMjIyLjJjLTguNyA4LjctMTUgMTkuNC0xOC4zIDMxLjFsLTI4LjYgMTAwYy0yLjQgOC40LS4xIDE3LjQgNi4xIDIzLjZzMTUuMiA4LjUgMjMuNiA2LjFsMTAwLTI4LjZjMTEuOC0zLjQgMjIuNS05LjcgMzEuMS0xOC4zTDQ4NyAxMzguOWMyOC4xLTI4LjEgMjguMS03My43IDAtMTAxLjhMNDc0LjkgMjVDNDQ2LjgtMy4xIDQwMS4yLTMuMSAzNzMuMSAyNXpNODggNjRDMzkuNCA2NCAwIDEwMy40IDAgMTUyTDAgNDI0YzAgNDguNiAzOS40IDg4IDg4IDg4bDI3MiAwYzQ4LjYgMCA4OC0zOS40IDg4LTg4bDAtMTEyYzAtMTMuMy0xMC43LTI0LTI0LTI0cy0yNCAxMC43LTI0IDI0bDAgMTEyYzAgMjIuMS0xNy45IDQwLTQwIDQwTDg4IDQ2NGMtMjIuMSAwLTQwLTE3LjktNDAtNDBsMC0yNzJjMC0yMi4xIDE3LjktNDAgNDAtNDBsMTEyIDBjMTMuMyAwIDI0LTEwLjcgMjQtMjRzLTEwLjctMjQtMjQtMjRMODggNjR6Il19LHU2dD1QbmUsTm5lPXtwcmVmaXg6ImZhciIsaWNvbk5hbWU6ImZhY2UtZ3Jpbi1iZWFtLXN3ZWF0IixpY29uOls1NzYsNTEyLFsxMjg1MTcsImdyaW4tYmVhbS1zd2VhdCJdLCJmNTgzIiwiTTUzMC4yIDE1LjljLTguOC0xMC43LTE4LjUtMjAuOS0yOS0zMC0zLTIuNi03LjQtMi42LTEwLjQgMC0xMC41IDkuMS0yMC4xIDE5LjMtMjkgMzAtMTQuNyAxNy44LTI5LjggNDAuMS0yOS44IDY0LjEgMCAzNi40IDI3LjYgNjQgNjQgNjRzNjQtMjcuNiA2NC02NGMwLTI0LTE1LjItNDYuMy0yOS44LTY0LjF6bS0xMzIgOC45QzM2NC44IDguOSAzMjcuNCAwIDI4OCAwIDE0Ni42IDAgMzIgMTE0LjYgMzIgMjU2UzE0Ni42IDUxMiAyODggNTEyIDU0NCAzOTcuNCA1NDQgMjU2YzAtMjQuNC0zLjQtNDgtOS44LTcwLjQtMTEuOSA0LjItMjQuNyA2LjQtMzguMiA2LjQtMy40IDAtNi44LS4xLTEwLjItLjQgNi42IDIwLjMgMTAuMiA0MS45IDEwLjIgNjQuNCAwIDExNC45LTkzLjEgMjA4LTIwOCAyMDhTODAgMzcwLjkgODAgMjU2IDE3My4xIDQ4IDI4OCA0OGMzNC44IDAgNjcuNSA4LjUgOTYuMyAyMy42IDEuNC0xNy40IDYuOS0zMy4xIDEzLjgtNDYuOHpNNDIzLjggMzIwYzQuMS0xMS42LTcuOC0yMS40LTE5LjYtMTcuOC0zNC44IDEwLjYtNzQuMyAxNi42LTExNi4zIDE2LjYtNDEuOSAwLTgxLjQtNi0xMTYuMS0xNi41LTExLjgtMy42LTIzLjcgNi4xLTE5LjYgMTcuOCAxOS44IDU1LjkgNzMuMSA5NS45IDEzNS44IDk1LjkgNjIuNyAwIDExNi00MC4xIDEzNS44LTk2ek0xODAgMjA4YzAtMTUuNSAxMi41LTI4IDI4LTI4czI4IDEyLjUgMjggMjhsMCA4YzAgMTEgOSAyMCAyMCAyMHMyMC05IDIwLTIwbDAtOGMwLTM3LjYtMzAuNC02OC02OC02OHMtNjggMzAuNC02OCA2OGwwIDhjMCAxMSA5IDIwIDIwIDIwczIwLTkgMjAtMjBsMC04em0xODgtMjhjMTUuNSAwIDI4IDEyLjUgMjggMjhsMCA4YzAgMTEgOSAyMCAyMCAyMHMyMC05IDIwLTIwbDAtOGMwLTM3LjYtMzAuNC02OC02OC02OHMtNjggMzAuNC02OCA2OGwwIDhjMCAxMSA5IDIwIDIwIDIwczIwLTkgMjAtMjBsMC04YzAtMTUuNSAxMi41LTI4IDI4LTI4eiJdfSxwNnQ9Tm5lLEZuZT17cHJlZml4OiJmYXIiLGljb25OYW1lOiJjbG9jayIsaWNvbjpbNTEyLDUxMixbMTI4MzM5LCJjbG9jay1mb3VyIl0sImYwMTciLCJNNDY0IDI1NmEyMDggMjA4IDAgMSAxIC00MTYgMCAyMDggMjA4IDAgMSAxIDQxNiAwek0wIDI1NmEyNTYgMjU2IDAgMSAwIDUxMiAwIDI1NiAyNTYgMCAxIDAgLTUxMiAwek0yMzIgMTIwbDAgMTM2YzAgOCA0IDE1LjUgMTAuNyAyMGw5NiA2NGMxMSA3LjQgMjUuOSA0LjQgMzMuMy02LjdzNC40LTI1LjktNi43LTMzLjNMMjgwIDI0My4yIDI4MCAxMjBjMC0xMy4zLTEwLjctMjQtMjQtMjRzLTI0IDEwLjctMjQgMjR6Il19LGg2dD1GbmUsT25lPXtwcmVmaXg6ImZhciIsaWNvbk5hbWU6ImZhY2UtbGF1Z2gtd2luayIsaWNvbjpbNTEyLDUxMixbImxhdWdoLXdpbmsiXSwiZjU5YyIsIk00NjQgMjU2YTIwOCAyMDggMCAxIDAgLTQxNiAwIDIwOCAyMDggMCAxIDAgNDE2IDB6TTAgMjU2YTI1NiAyNTYgMCAxIDEgNTEyIDAgMjU2IDI1NiAwIDEgMSAtNTEyIDB6bTExOC4zIDU4LjJjLTQuMi0xMy43IDcuMS0yNi4yIDIxLjQtMjYuMmwyMzIuNiAwYzE0LjMgMCAyNS42IDEyLjUgMjEuNCAyNi4yLTE4IDU4LjktNzIuOSAxMDEuOC0xMzcuNyAxMDEuOFMxMzYuMyAzNzMuMSAxMTguMyAzMTQuMnpNMTQ0IDE5MmEzMiAzMiAwIDEgMSA2NCAwIDMyIDMyIDAgMSAxIC02NCAwem0xNjQgOGMwIDExLTkgMjAtMjAgMjBzLTIwLTktMjAtMjBjMC0zMy4xIDI2LjktNjAgNjAtNjBsMTYgMGMzMy4xIDAgNjAgMjYuOSA2MCA2MCAwIDExLTkgMjAtMjAgMjBzLTIwLTktMjAtMjAtOS0yMC0yMC0yMGwtMTYgMGMtMTEgMC0yMCA5LTIwIDIweiJdfSxmNnQ9T25lLG02dD17cHJlZml4OiJmYXIiLGljb25OYW1lOiJwYXBlci1wbGFuZSIsaWNvbjpbNTc2LDUxMixbNjE5MTNdLCJmMWQ4IiwiTTI5MC41IDI4Ny43TDQ5MS40IDg2LjkgMzU5IDQ1Ni4zIDI5MC41IDI4Ny43ek00NTcuNCA1M0wyNTYuNiAyNTMuOCA4OCAxODUuMyA0NTcuNCA1M3pNMzguMSAyMTYuOGwyMDUuOCA4My42IDgzLjYgMjA1LjhjNS4zIDEzLjEgMTguMSAyMS43IDMyLjMgMjEuNyAxNC43IDAgMjcuOC05LjIgMzIuOC0yMy4xTDU3MC42IDhjMy41LTkuOCAxLTIwLjYtNi4zLTI4cy0xOC4yLTkuOC0yOC02LjNMMzkuNCAxNTEuN2MtMTMuOSA1LTIzLjEgMTguMS0yMy4xIDMyLjggMCAxNC4yIDguNiAyNyAyMS43IDMyLjN6Il19LGc2dD17cHJlZml4OiJmYXIiLGljb25OYW1lOiJoZWFydCIsaWNvbjpbNTEyLDUxMixbMTI4MTUzLDEyODE1NCwxMjgxNTUsMTI4MTU2LDEyODQyMCwxMjkyOTMsMTI5Mjk0LDEyOTUwNSw5ODI5LDEwMDg0LDYxNTc4XSwiZjAwNCIsIk0zNzguOSA4MGMtMjcuMyAwLTUzIDEzLjEtNjkgMzUuMmwtMzQuNCA0Ny42Yy00LjUgNi4yLTExLjcgOS45LTE5LjQgOS45cy0xNC45LTMuNy0xOS40LTkuOWwtMzQuNC00Ny42Yy0xNi0yMi4xLTQxLjctMzUuMi02OS0zNS4yLTQ3IDAtODUuMSAzOC4xLTg1LjEgODUuMSAwIDQ5LjkgMzIgOTguNCA2OC4xIDE0Mi4zIDQxLjEgNTAgOTEuNCA5NCAxMjUuOSAxMjAuMyAzLjIgMi40IDcuOSA0LjIgMTQgNC4yczEwLjgtMS44IDE0LTQuMmMzNC41LTI2LjMgODQuOC03MC40IDEyNS45LTEyMC4zIDM2LjItNDMuOSA2OC4xLTkyLjQgNjguMS0xNDIuMyAwLTQ3LTM4LjEtODUuMS04NS4xLTg1LjF6TTI3MSA4Ny4xYzI1LTM0LjYgNjUuMi01NS4xIDEwNy45LTU1LjEgNzMuNSAwIDEzMy4xIDU5LjYgMTMzLjEgMTMzLjEgMCA2OC42LTQyLjkgMTI4LjktNzkuMSAxNzIuOC00NC4xIDUzLjYtOTcuMyAxMDAuMS0xMzMuOCAxMjcuOS0xMi4zIDkuNC0yNy41IDE0LjEtNDMuMSAxNC4xcy0zMC44LTQuNy00My4xLTE0LjFDMTc2LjQgNDM4IDEyMy4yIDM5MS41IDc5LjEgMzM4IDQyLjkgMjk0LjEgMCAyMzMuNyAwIDE2NS4xIDAgOTEuNiA1OS42IDMyIDEzMy4xIDMyIDE3NS44IDMyIDIxNiA1Mi41IDI0MSA4Ny4xbDE1IDIwLjcgMTUtMjAuN3oiXX0sSEE9e3ByZWZpeDoiZmFyIixpY29uTmFtZToiZm9udC1hd2Vzb21lIixpY29uOls1MTIsNTEyLFs2MjUwMSw2MjY5NCwiZm9udC1hd2Vzb21lLWZsYWciLCJmb250LWF3ZXNvbWUtbG9nby1mdWxsIl0sImYyYjQiLCJNOTEuNyA5NkMxMDYuMyA4Ni44IDExNiA3MC41IDExNiA1MiAxMTYgMjMuMyA5Mi43IDAgNjQgMFMxMiAyMy4zIDEyIDUyYzAgMTYuNyA3LjggMzEuNSAyMCA0MWwwIDQxOSA0OCAwIDAtNjQgMzg5LjYgMGMxNC42IDAgMjYuNC0xMS44IDI2LjQtMjYuNCAwLTMuNy0uOC03LjMtMi4zLTEwLjdMNDMyIDI3MiA0OTMuNyAxMzMuMWMxLjUtMy40IDIuMy03IDIuMy0xMC43IDAtMTQuNi0xMS44LTI2LjQtMjYuNC0yNi40TDkxLjcgOTZ6TTgwIDQwMGwwLTI1NiAzNTYuNCAwLTQ4LjIgMTA4LjVjLTUuNSAxMi40LTUuNSAyNi42IDAgMzlMNDM2LjQgNDAwIDgwIDQwMHoiXX0sYjZ0PUhBLHY2dD1IQSx4NnQ9e3ByZWZpeDoiZmFyIixpY29uTmFtZToiY2xvbmUiLGljb246WzUxMiw1MTIsW10sImYyNGQiLCJNMjg4IDQ2NEw2NCA0NjRjLTguOCAwLTE2LTcuMi0xNi0xNmwwLTIyNGMwLTguOCA3LjItMTYgMTYtMTZsNDggMCAwLTQ4LTQ4IDBjLTM1LjMgMC02NCAyOC43LTY0IDY0TDAgNDQ4YzAgMzUuMyAyOC43IDY0IDY0IDY0bDIyNCAwYzM1LjMgMCA2NC0yOC43IDY0LTY0bDAtNDgtNDggMCAwIDQ4YzAgOC44LTcuMiAxNi0xNiAxNnpNMjI0IDMwNGMtOC44IDAtMTYtNy4yLTE2LTE2bDAtMjI0YzAtOC44IDcuMi0xNiAxNi0xNmwyMjQgMGM4LjggMCAxNiA3LjIgMTYgMTZsMCAyMjRjMCA4LjgtNy4yIDE2LTE2IDE2bC0yMjQgMHptLTY0LTE2YzAgMzUuMyAyOC43IDY0IDY0IDY0bDIyNCAwYzM1LjMgMCA2NC0yOC43IDY0LTY0bDAtMjI0YzAtMzUuMy0yOC43LTY0LTY0LTY0TDIyNCAwYy0zNS4zIDAtNjQgMjguNy02NCA2NGwwIDIyNHoiXX0seTZ0PXtwcmVmaXg6ImZhciIsaWNvbk5hbWU6ImZvbGRlci1vcGVuIixpY29uOls1NzYsNTEyLFsxMjgxOTQsMTI4NDQ5LDYxNzE3XSwiZjA3YyIsIk05Ny41IDQwMGw1MC0xNjAgMzc5LjQgMC01MCAxNjAtMzc5LjQgMHptMTkwLjcgNDhMNDc3IDQ0OGMyMSAwIDM5LjYtMTMuNiA0NS44LTMzLjdsNTAtMTYwYzkuNy0zMC45LTEzLjQtNjIuMy00NS44LTYyLjNsLTM3OS40IDBjLTIxIDAtMzkuNiAxMy42LTQ1LjggMzMuN0w4MC4yIDI5NC40IDgwLjIgOTZjMC04LjggNy4yLTE2IDE2LTE2bDEzOC43IDBjMy41IDAgNi44IDEuMSA5LjYgMy4yTDI4Mi45IDExMmMxMy44IDEwLjQgMzAuNyAxNiA0OCAxNmwxMTcuMyAwYzguOCAwIDE2IDcuMiAxNiAxNmw0OCAwYzAtMzUuMy0yOC43LTY0LTY0LTY0TDMzMC45IDgwYy02LjkgMC0xMy43LTIuMi0xOS4yLTYuNEwyNzMuMyA0NC44QzI2Mi4yIDM2LjUgMjQ4LjggMzIgMjM0LjkgMzJMOTYuMiAzMmMtMzUuMyAwLTY0IDI4LjctNjQgNjRsMCAyODhjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMTkyIDB6Il19LHc2dD17cHJlZml4OiJmYXIiLGljb25OYW1lOiJ3aW5kb3ctbWluaW1pemUiLGljb246WzUxMiw1MTIsWzEyODQ2OV0sImYyZDEiLCJNMCA0MjRjMC0xMy4zIDEwLjctMjQgMjQtMjRsNDY0IDBjMTMuMyAwIDI0IDEwLjcgMjQgMjRzLTEwLjcgMjQtMjQgMjRMMjQgNDQ4Yy0xMy4zIDAtMjQtMTAuNy0yNC0yNHoiXX0sTTZ0PXtwcmVmaXg6ImZhciIsaWNvbk5hbWU6InN0YXItaGFsZiIsaWNvbjpbNTc2LDUxMixbNjE3MzFdLCJmMDg5IiwiTTI4NS43LTE1LjhjMTAuOCAyLjYgMTguNCAxMi4yIDE4LjQgMjMuM2wwIDM4Ny4xYzAgOS01LjEgMTcuMy0xMy4xIDIxLjRMMTQzLjggNDkxYy04IDQuMS0xNy43IDMuMy0yNS0ycy0xMS0xNC4yLTkuNi0yMy4yTDEzNC40IDMwNS45IDIwIDE5MS40Yy02LjQtNi40LTguNi0xNS44LTUuOC0yNC40czEwLjEtMTQuOSAxOS4xLTE2LjNMMTkzLjEgMTI1LjMgMjU4LjgtMy4zYzUtOS45IDE2LjItMTUgMjctMTIuNHpNMjU2LjEgMTA3LjRMMjMwLjMgMTU4Yy0zLjUgNi44LTEwIDExLjYtMTcuNiAxMi44bC0xMjUuNSAyMCA4OS44IDg5LjljNS40IDUuNCA3LjkgMTMuMSA2LjcgMjAuN2wtMTkuOCAxMjUuNSA5Mi4yLTQ2LjkgMC0yNzIuNnoiXX0sazZ0PXtwcmVmaXg6ImZhciIsaWNvbk5hbWU6ImFsYXJtLWNsb2NrIixpY29uOls1MTIsNTEyLFs5MjAwXSwiZjM0ZSIsIk00MDIuNiA1MC4yYy01LjQgMS43LTExLjMgMS44LTE2LjItLjktNS44LTMuMi0xMS44LTYuMi0xNy44LTguOS0xMC40LTQuNy0xMy43LTE4LjMtNC4xLTI0LjYgMTUtOS45IDMzLTE1LjcgNTIuMy0xNS43IDUyLjYgMCA5NS4yIDQyLjYgOTUuMiA5NS4yIDAgMTMuMi0yLjcgMjUuOC03LjYgMzcuMy00LjUgMTAuNS0xOC40IDkuOC0yNC45IC40LTMuOC01LjUtNy44LTEwLjgtMTItMTYtMy41LTQuNC00LjUtMTAuMi0zLjgtMTUuOCAuMi0xLjkgLjQtMy45IC40LTUuOSAwLTI2LjEtMjEuMi00Ny4yLTQ3LjItNDcuMi00LjkgMC05LjcgLjgtMTQuMiAyLjJ6TTMyLjUgMTMyLjljLTYuNSA5LjQtMjAuNSAxMC4xLTI0LjktLjQtNC45LTExLjUtNy42LTI0LjEtNy42LTM3LjMgMC01Mi42IDQyLjYtOTUuMiA5NS4yLTk1LjIgMTkuMyAwIDM3LjMgNS44IDUyLjMgMTUuNyA5LjYgNi4zIDYuMyAxOS45LTQuMSAyNC42LTYuMSAyLjgtMTIgNS43LTE3LjggOC45LTQuOSAyLjctMTAuOSAyLjYtMTYuMiAuOS00LjUtMS40LTkuMi0yLjItMTQuMi0yLjItMjYuMSAwLTQ3LjIgMjEuMi00Ny4yIDQ3LjIgMCAyIC4xIDQgLjQgNS45IC43IDUuNi0uMyAxMS40LTMuOCAxNS44LTQuMiA1LjItOC4yIDEwLjUtMTIgMTZ6TTQzMiAyODhhMTc2IDE3NiAwIDEgMCAtMzUyIDAgMTc2IDE3NiAwIDEgMCAzNTIgMHpNMzk2LjUgNDYyLjVDMzU4LjEgNDkzLjQgMzA5LjIgNTEyIDI1NiA1MTJzLTEwMi4xLTE4LjYtMTQwLjUtNDkuNUw3MyA1MDVjLTkuNCA5LjQtMjQuNiA5LjQtMzMuOSAwcy05LjQtMjQuNiAwLTMzLjlsNDIuNS00Mi41QzUwLjYgMzkwLjEgMzIgMzQxLjIgMzIgMjg4IDMyIDE2NC4zIDEzMi4zIDY0IDI1NiA2NFM0ODAgMTY0LjMgNDgwIDI4OGMwIDUzLjItMTguNiAxMDIuMS00OS41IDE0MC41TDQ3MyA0NzFjOS40IDkuNCA5LjQgMjQuNiAwIDMzLjlzLTI0LjYgOS40LTMzLjkgMGwtNDIuNS00Mi41ek0yODAgMTg0bDAgOTQuMSA0MSA0MWM5LjQgOS40IDkuNCAyNC42IDAgMzMuOXMtMjQuNiA5LjQtMzMuOSAwbC00OC00OGMtNC41LTQuNS03LTEwLjYtNy0xN2wwLTEwNGMwLTEzLjMgMTAuNy0yNCAyNC0yNHMyNCAxMC43IDI0IDI0eiJdfSxTNnQ9e3ByZWZpeDoiZmFyIixpY29uTmFtZToibmV3c3BhcGVyIixpY29uOls1MTIsNTEyLFsxMjgyNDBdLCJmMWVhIiwiTTE2OCA4MGMtMTMuMyAwLTI0IDEwLjctMjQgMjRsMCAzMDRjMCA4LjQtMS40IDE2LjUtNC4xIDI0TDQ0MCA0MzJjMTMuMyAwIDI0LTEwLjcgMjQtMjRsMC0zMDRjMC0xMy4zLTEwLjctMjQtMjQtMjRMMTY4IDgwek03MiA0ODBjLTM5LjggMC03Mi0zMi4yLTcyLTcyTDAgMTEyQzAgOTguNyAxMC43IDg4IDI0IDg4czI0IDEwLjcgMjQgMjRsMCAyOTZjMCAxMy4zIDEwLjcgMjQgMjQgMjRzMjQtMTAuNyAyNC0yNGwwLTMwNGMwLTM5LjggMzIuMi03MiA3Mi03MmwyNzIgMGMzOS44IDAgNzIgMzIuMiA3MiA3MmwwIDMwNGMwIDM5LjgtMzIuMiA3Mi03MiA3Mkw3MiA0ODB6TTE5MiAxNTJjMC0xMy4zIDEwLjctMjQgMjQtMjRsNDggMGMxMy4zIDAgMjQgMTAuNyAyNCAyNGwwIDQ4YzAgMTMuMy0xMC43IDI0LTI0IDI0bC00OCAwYy0xMy4zIDAtMjQtMTAuNy0yNC0yNGwwLTQ4em0xNTIgMjRsNDggMGMxMy4zIDAgMjQgMTAuNyAyNCAyNHMtMTAuNyAyNC0yNCAyNGwtNDggMGMtMTMuMyAwLTI0LTEwLjctMjQtMjRzMTAuNy0yNCAyNC0yNHpNMjE2IDI1NmwxNzYgMGMxMy4zIDAgMjQgMTAuNyAyNCAyNHMtMTAuNyAyNC0yNCAyNGwtMTc2IDBjLTEzLjMgMC0yNC0xMC43LTI0LTI0czEwLjctMjQgMjQtMjR6bTAgODBsMTc2IDBjMTMuMyAwIDI0IDEwLjcgMjQgMjRzLTEwLjcgMjQtMjQgMjRsLTE3NiAwYy0xMy4zIDAtMjQtMTAuNy0yNC0yNHMxMC43LTI0IDI0LTI0eiJdfSxxQT17cHJlZml4OiJmYXIiLGljb25OYW1lOiJob3NwaXRhbCIsaWNvbjpbNTc2LDUxMixbMTI3OTczLDYyNTg5LCJob3NwaXRhbC1hbHQiLCJob3NwaXRhbC13aWRlIl0sImYwZjgiLCJNMTc2IDBjLTM1LjMgMC02NCAyOC43LTY0IDY0bDAgNDgtNDggMGMtMzUuMyAwLTY0IDI4LjctNjQgNjRMMCA0NDhjMCAzNS4zIDI4LjcgNjQgNjQgNjRsNDQ4IDBjMzUuMyAwIDY0LTI4LjcgNjQtNjRsMC0yNzJjMC0zNS4zLTI4LjctNjQtNjQtNjRsLTQ4IDAgMC00OGMwLTM1LjMtMjguNy02NC02NC02NEwxNzYgMHpNMTYwIDY0YzAtOC44IDcuMi0xNiAxNi0xNmwyMjQgMGM4LjggMCAxNiA3LjIgMTYgMTZsMCA3MmMwIDEzLjMgMTAuNyAyNCAyNCAyNGw3MiAwYzguOCAwIDE2IDcuMiAxNiAxNmwwIDI3MmMwIDguOC03LjIgMTYtMTYgMTZsLTE3NiAwIDAtODBjMC0xNy43LTE0LjMtMzItMzItMzJsLTMyIDBjLTE3LjcgMC0zMiAxNC4zLTMyIDMybDAgODAtMTc2IDBjLTguOCAwLTE2LTcuMi0xNi0xNmwwLTI3MmMwLTguOCA3LjItMTYgMTYtMTZsNzIgMGMxMy4zIDAgMjQtMTAuNyAyNC0yNGwwLTcyek0xMTIgMjI0Yy04LjggMC0xNiA3LjItMTYgMTZsMCAzMmMwIDguOCA3LjIgMTYgMTYgMTZsMzIgMGM4LjggMCAxNi03LjIgMTYtMTZsMC0zMmMwLTguOC03LjItMTYtMTYtMTZsLTMyIDB6TTk2IDMzNmwwIDMyYzAgOC44IDcuMiAxNiAxNiAxNmwzMiAwYzguOCAwIDE2LTcuMiAxNi0xNmwwLTMyYzAtOC44LTcuMi0xNi0xNi0xNmwtMzIgMGMtOC44IDAtMTYgNy4yLTE2IDE2em0zMjAgMGwwIDMyYzAgOC44IDcuMiAxNiAxNiAxNmwzMiAwYzguOCAwIDE2LTcuMiAxNi0xNmwwLTMyYzAtOC44LTcuMi0xNi0xNi0xNmwtMzIgMGMtOC44IDAtMTYgNy4yLTE2IDE2em0xNi0xMTJjLTguOCAwLTE2IDcuMi0xNiAxNmwwIDMyYzAgOC44IDcuMiAxNiAxNiAxNmwzMiAwYzguOCAwIDE2LTcuMiAxNi0xNmwwLTMyYzAtOC44LTcuMi0xNi0xNi0xNmwtMzIgMHpNMjY0IDEwNGwwIDMyLTMyIDBjLTguOCAwLTE2IDcuMi0xNiAxNmwwIDE2YzAgOC44IDcuMiAxNiAxNiAxNmwzMiAwIDAgMzJjMCA4LjggNy4yIDE2IDE2IDE2bDE2IDBjOC44IDAgMTYtNy4yIDE2LTE2bDAtMzIgMzIgMGM4LjggMCAxNi03LjIgMTYtMTZsMC0xNmMwLTguOC03LjItMTYtMTYtMTZsLTMyIDAgMC0zMmMwLTguOC03LjItMTYtMTYtMTZsLTE2IDBjLTguOCAwLTE2IDcuMi0xNiAxNnoiXX0sejZ0PXFBLEM2dD1xQSxSbmU9e3ByZWZpeDoiZmFyIixpY29uTmFtZToiY2lyY2xlLXN0b3AiLGljb246WzUxMiw1MTIsWzYyMDk0LCJzdG9wLWNpcmNsZSJdLCJmMjhkIiwiTTI1NiA0OGEyMDggMjA4IDAgMSAxIDAgNDE2IDIwOCAyMDggMCAxIDEgMC00MTZ6bTAgNDY0YTI1NiAyNTYgMCAxIDAgMC01MTIgMjU2IDI1NiAwIDEgMCAwIDUxMnpNMTYwIDE5MmwwIDEyOGMwIDE3LjcgMTQuMyAzMiAzMiAzMmwxMjggMGMxNy43IDAgMzItMTQuMyAzMi0zMmwwLTEyOGMwLTE3LjctMTQuMy0zMi0zMi0zMmwtMTI4IDBjLTE3LjcgMC0zMiAxNC4zLTMyIDMyem00OCAxMTJsMC05NiA5NiAwIDAgOTYtOTYgMHoiXX0sVDZ0PVJuZSxfNnQ9e3ByZWZpeDoiZmFyIixpY29uTmFtZToib2JqZWN0LXVuZ3JvdXAiLGljb246WzY0MCw1MTIsW10sImYyNDgiLCJNNDguMiA2Ni44Yy0uMS0uOC0uMi0xLjctLjItMi41bDAtLjJjMC04LjggNy4yLTE2IDE2LTE2IC45IDAgMS45IC4xIDIuOCAuMiA3LjUgMS4zIDEzLjIgNy45IDEzLjIgMTUuOCAwIDguOC03LjIgMTYtMTYgMTYtNy45IDAtMTQuNS01LjctMTUuOC0xMy4yek0wIDY0YzAgMjYuOSAxNi41IDQ5LjkgNDAgNTkuM2wwIDEwNS4zYy0yMy41IDkuNS00MCAzMi41LTQwIDU5LjMgMCAzNS4zIDI4LjcgNjQgNjQgNjQgMjYuOSAwIDQ5LjktMTYuNSA1OS4zLTQwbDIwMS4zIDBjOS41IDIzLjUgMzIuNSA0MCA1OS4zIDQwIDM1LjMgMCA2NC0yOC43IDY0LTY0IDAtMjYuOS0xNi41LTQ5LjktNDAtNTkuM2wwLTEwNS4zYzIzLjUtOS41IDQwLTMyLjUgNDAtNTkuMyAwLTM1LjMtMjguNy02NC02NC02NC0yNi45IDAtNDkuOSAxNi41LTU5LjMgNDBMMTIzLjMgNDBDMTEzLjkgMTYuNSA5MC45IDAgNjQgMCAyOC43IDAgMCAyOC43IDAgNjR6bTM2OCAwYTE2IDE2IDAgMSAxIDMyIDAgMTYgMTYgMCAxIDEgLTMyIDB6TTMyNC43IDg4YzYuNSAxNiAxOS4zIDI4LjkgMzUuMyAzNS4zbDAgMTA1LjNjLTE2IDYuNS0yOC45IDE5LjMtMzUuMyAzNS4zbC0yMDEuMyAwYy02LjUtMTYtMTkuMy0yOC45LTM1LjMtMzUuM2wwLTEwNS4zYzE2LTYuNSAyOC45LTE5LjMgMzUuMy0zNS4zbDIwMS4zIDB6TTM4NCAyNzJhMTYgMTYgMCAxIDEgMCAzMiAxNiAxNiAwIDEgMSAwLTMyek04MCAyODhjMCA3LjktNS43IDE0LjUtMTMuMiAxNS44LS44IC4xLTEuNyAuMi0yLjUgLjJsLS4yIDBjLTguOCAwLTE2LTcuMi0xNi0xNiAwLS45IC4xLTEuOSAuMi0yLjggMS4zLTcuNSA3LjktMTMuMiAxNS44LTEzLjIgOC44IDAgMTYgNy4yIDE2IDE2em00MzYuNy00MGM2LjUgMTYgMTkuMyAyOC45IDM1LjMgMzUuM2wwIDEwNS4zYy0xNiA2LjUtMjguOSAxOS4zLTM1LjMgMzUuM2wtMjAxLjMgMGMtNi41LTE2LTE5LjMtMjguOS0zNS4zLTM1LjNsMC0yMC43LTQ4IDAgMCAyMC43Yy0yMy41IDkuNS00MCAzMi41LTQwIDU5LjMgMCAzNS4zIDI4LjcgNjQgNjQgNjQgMjYuOSAwIDQ5LjktMTYuNSA1OS4zLTQwbDIwMS4zIDBjOS41IDIzLjUgMzIuNSA0MCA1OS4zIDQwIDM1LjMgMCA2NC0yOC43IDY0LTY0IDAtMjYuOS0xNi41LTQ5LjktNDAtNTkuM2wwLTEwNS4zYzIzLjUtOS41IDQwLTMyLjUgNDAtNTkuMyAwLTM1LjMtMjguNy02NC02NC02NC0yNi45IDAtNDkuOSAxNi41LTU5LjMgNDBsLTUyLjcgMCAwIDkuNmMxMC43IDEwLjkgMTkuMSAyMy45IDI0LjYgMzguNGwyOCAwem01OS4zLThhMTYgMTYgMCAxIDEgMC0zMiAxNiAxNiAwIDEgMSAwIDMyek0yNzEuOCA0NTAuN2ExNiAxNiAwIDEgMSAtMzEuNS01LjUgMTYgMTYgMCAxIDEgMzEuNSA1LjV6bTMwMS41IDEzYy03LjUtMS4zLTEzLjItNy45LTEzLjItMTUuOCAwLTguOCA3LjItMTYgMTYtMTYgNy45IDAgMTQuNSA1LjcgMTUuOCAxMy4ybDAgLjFjLjEgLjkgLjIgMS44IC4yIDIuNyAwIDguOC03LjIgMTYtMTYgMTYtLjkgMC0xLjktLjEtMi44LS4yeiJdfSxMNnQ9e3ByZWZpeDoiZmFyIixpY29uTmFtZToiY29tbWVudCIsaWNvbjpbNTEyLDUxMixbMTI4NDg5LDYxNjY5XSwiZjA3NSIsIk01MS45IDM4NC45QzE5LjMgMzQ0LjYgMCAyOTQuNCAwIDI0MCAwIDEwNy41IDExNC42IDAgMjU2IDBTNTEyIDEwNy41IDUxMiAyNDAgMzk3LjQgNDgwIDI1NiA0ODBjLTM2LjUgMC03MS4yLTcuMi0xMDIuNi0yMEwzNyA1MDkuOWMtMy43IDEuNi03LjUgMi4xLTExLjUgMi4xLTE0LjEgMC0yNS41LTExLjQtMjUuNS0yNS41IDAtNC4zIDEuMS04LjUgMy4xLTEyLjJsNDguOC04OS40em0zNy4zLTMwLjJjMTIuMiAxNS4xIDE0LjEgMzYuMSA0LjggNTMuMmwtMTggMzMuMSA1OC41LTI1LjFjMTEuOC01LjEgMjUuMi01LjIgMzcuMS0uMyAyNS43IDEwLjUgNTQuMiAxNi40IDg0LjMgMTYuNCAxMTcuOCAwIDIwOC04OC44IDIwOC0xOTJTMzczLjggNDggMjU2IDQ4IDQ4IDEzNi44IDQ4IDI0MGMwIDQyLjggMTUuMSA4Mi40IDQxLjIgMTE0Ljd6Il19LEE2dD17cHJlZml4OiJmYXIiLGljb25OYW1lOiJjaGVzcy1wYXduIixpY29uOlszODQsNTEyLFs5ODIzXSwiZjQ0MyIsIk0xOTItMzJjNjYuMyAwIDEyMCA1My43IDEyMCAxMjAgMCAyNy42LTkuMyA1Mi45LTI0LjkgNzMuMiA5LjggMyAxNi45IDEyLjEgMTYuOSAyMi44IDAgMTMuMy0xMC43IDI0LTI0IDI0bC0uNiAwIDI0LjYgMTYwIDUzLjYgNjdjNi43IDguNCAxMC40IDE4LjggMTAuNCAyOS42IDAgMjYuMi0yMS4yIDQ3LjQtNDcuNCA0Ny40TDYzLjQgNTEyYy0yNi4yIDAtNDcuNC0yMS4yLTQ3LjQtNDcuNCAwLTEwLjggMy43LTIxLjIgMTAuNC0yOS42bDUzLjYtNjcgMjQuNi0xNjAtLjYgMGMtMTMuMyAwLTI0LTEwLjctMjQtMjQgMC0xMC44IDcuMS0xOS44IDE2LjktMjIuOC0xNS42LTIwLjMtMjQuOS00NS42LTI0LjktNzMuMiAwLTY2LjMgNTMuNy0xMjAgMTIwLTEyMHpNMTE1LjkgNDAwbC01MS4yIDY0IDI1NC43IDAtNTEuMi02NC0xNTIuMiAwem0zNi4yLTE4NC43bC0yMSAxMzYuNyAxMjEuOSAwLTIxLTEzNi43LTEuMS03LjMtNzcuNiAwLTEuMSA3LjN6TTE5MiAxNmE3MiA3MiAwIDEgMCAwIDE0NCA3MiA3MiAwIDEgMCAwLTE0NHoiXX0sRDZ0PXtwcmVmaXg6ImZhciIsaWNvbk5hbWU6ImNhbGVuZGFyLXBsdXMiLGljb246WzQ0OCw1MTIsW10sImYyNzEiLCJNMTIwIDBjMTMuMyAwIDI0IDEwLjcgMjQgMjRsMCA0MCAxNjAgMCAwLTQwYzAtMTMuMyAxMC43LTI0IDI0LTI0czI0IDEwLjcgMjQgMjRsMCA0MCAzMiAwYzM1LjMgMCA2NCAyOC43IDY0IDY0bDAgMjg4YzAgMzUuMy0yOC43IDY0LTY0IDY0TDY0IDQ4MGMtMzUuMyAwLTY0LTI4LjctNjQtNjRMMCAxMjhDMCA5Mi43IDI4LjcgNjQgNjQgNjRsMzIgMCAwLTQwYzAtMTMuMyAxMC43LTI0IDI0LTI0em0wIDExMmwtNTYgMGMtOC44IDAtMTYgNy4yLTE2IDE2bDAgMjg4YzAgOC44IDcuMiAxNiAxNiAxNmwzMjAgMGM4LjggMCAxNi03LjIgMTYtMTZsMC0yODhjMC04LjgtNy4yLTE2LTE2LTE2bC0yNjQgMHptMTA0IDY0YzEzLjMgMCAyNCAxMC43IDI0IDI0bDAgNDggNDggMGMxMy4zIDAgMjQgMTAuNyAyNCAyNHMtMTAuNyAyNC0yNCAyNGwtNDggMCAwIDQ4YzAgMTMuMy0xMC43IDI0LTI0IDI0cy0yNC0xMC43LTI0LTI0bDAtNDgtNDggMGMtMTMuMyAwLTI0LTEwLjctMjQtMjRzMTAuNy0yNCAyNC0yNGw0OCAwIDAtNDhjMC0xMy4zIDEwLjctMjQgMjQtMjR6Il19LEU2dD17cHJlZml4OiJmYXIiLGljb25OYW1lOiJjbGlwYm9hcmQiLGljb246WzM4NCw1MTIsWzEyODIwM10sImYzMjgiLCJNMjMyIDk2bC04MCAwYy0xMy4zIDAtMjQtMTAuNy0yNC0yNHMxMC43LTI0IDI0LTI0bDgwIDBjMTMuMyAwIDI0IDEwLjcgMjQgMjRzLTEwLjcgMjQtMjQgMjR6bTAgNDhjMzcuMSAwIDY3LjYtMjggNzEuNi02NEwzMjAgODBjOC44IDAgMTYgNy4yIDE2IDE2bDAgMzUyYzAgOC44LTcuMiAxNi0xNiAxNkw2NCA0NjRjLTguOCAwLTE2LTcuMi0xNi0xNkw0OCA5NmMwLTguOCA3LjItMTYgMTYtMTZsMTYuNCAwYzQgMzYgMzQuNSA2NCA3MS42IDY0bDgwIDB6TTI5MS45IDMyQzI3OSAxMi43IDI1NyAwIDIzMiAwTDE1MiAwYy0yNSAwLTQ3IDEyLjctNTkuOSAzMkw2NCAzMkMyOC43IDMyIDAgNjAuNyAwIDk2TDAgNDQ4YzAgMzUuMyAyOC43IDY0IDY0IDY0bDI1NiAwYzM1LjMgMCA2NC0yOC43IDY0LTY0bDAtMzUyYzAtMzUuMy0yOC43LTY0LTY0LTY0bC0yOC4xIDB6Il19LCQ2dD17cHJlZml4OiJmYXIiLGljb25OYW1lOiJ0aHVtYnMtZG93biIsaWNvbjpbNTEyLDUxMixbMTI4MDc4LDYxNTc2XSwiZjE2NSIsIk0zNjAgMzJsNy40IC40YzM1IDMuNiA2Mi41IDMyLjIgNjQuNCA2Ny43IDE3LjggMTEuOCAzMC4xIDMxLjQgMzIgNTMuOWwuMiA2YzAgNS43LS43IDExLjItMiAxNi41IDEwLjIgMTEuNSAxNi44IDI2LjMgMTcuOCA0Mi43bC4yIDQuOGMwIDEzLjItMy42IDI1LjQtOS44IDM2IDQuOSA4LjQgOC4yIDE3LjkgOS4zIDI4bC40IDhjMCAzNy4zLTI4LjMgNjcuOS02NC42IDcxLjZsLTcuNCAuNC0xMDkuNyAwIDE0LjEgMzAgMy4xIDcuNmMxMi41IDM1LjctMS44IDc1LjUtMzQuMiA5NWwtNy4yIDMuOWMtMzcuNSAxNy42LTgxLjcgMy42LTEwMi42LTMxLjJsLS42LS45LTIuNy01LS42LTEuMi0zMC4xLTY0Yy05LjQgMTcuOC0yOCAyOS45LTQ5LjUgMjkuOWwtMzIgMGMtMzAuOSAwLTU2LTI1LjEtNTYtNTZMMCAxNTJjMC0zMC45IDI1LjEtNTYgNTYtNTZsMzIgMGMxMi40IDAgMjMuOSA0LjEgMzMuMiAxMSAxMy4yLTIxLjQgMzItMzkuNCA1NS01MS42bDEyLjItNi41IC43LS4zIDYuNi0zLjIgLjctLjMgNy4xLTNjMTYuNy02LjYgMzQuNS05LjkgNTIuNi05LjlMMzYwIDMyek0yNTUuOSA4MGMtMTIgMC0yMy45IDIuMy0zNS4xIDYuNmwtNC43IDItNS4zIDIuNiAwIDAtMTIuMiA2LjVjLTI5LjIgMTUuNS00OC4zIDQ0LjktNTAuNyA3Ny42bC0uMiA4IDAgMTEyLjkgLjEgNC4xYy41IDguMiAyLjUgMTYuMiA2IDIzLjdsNTYuOCAxMjAuOSAyLjEgMy44YzguNCAxMy43IDI2IDE5LjEgNDAuOCAxMi4ybDIuOS0xLjZjMTMtNy44IDE4LjctMjMuNyAxMy43LTM4bC0xLjItMy0zMC4yLTY0LjJjLTMuNS03LjQtMi45LTE2LjEgMS41LTIzLjFzMTItMTEuMSAyMC4yLTExLjFsMTQ3LjUgMCAyLjQtLjFjMTEuMy0xLjEgMjAuMy0xMC4xIDIxLjQtMjEuNGwuMS0yLjVjMC03LjEtMy4xLTEzLjUtOC4yLTE4LTUuMi00LjYtOC4yLTExLjEtOC4yLTE4czMtMTMuNCA4LjItMThjNC40LTMuOSA3LjQtOS4zIDgtMTUuM2wuMi0yLjdjMC04LjQtNC40LTE1LjktMTEuMi0yMC4yLTEwLjctNi45LTE0LjItMjAuOS04LTMyIDEuNS0yLjYgMi41LTUuNiAyLjktOC42bC4yLTMuMmMwLTEwLjYtNi45LTE5LjYtMTYuNi0yMi44LTExLjctMy44LTE4LjctMTUuOS0xNi0yOCAuMi0uOSAuMy0xLjggLjQtMi42bC4yLTIuNmMwLTEyLjQtOS41LTIyLjYtMjEuNi0yMy44TDM2MCA4MCAyNTUuOSA4MHpNNTYgMTQ0Yy00LjQgMC04IDMuNi04IDhsMCAyMjRjMCA0LjQgMy42IDggOCA4bDMyIDBjNC40IDAgOC0zLjYgOC04bDAtMjI0YzAtNC40LTMuNi04LTgtOGwtMzIgMHoiXX0sSTZ0PXtwcmVmaXg6ImZhciIsaWNvbk5hbWU6ImlkLWJhZGdlIixpY29uOlszODQsNTEyLFtdLCJmMmMxIiwiTTI1NiA0OGwwIDE2YzAgMTcuNy0xNC4zIDMyLTMyIDMybC02NCAwYy0xNy43IDAtMzItMTQuMy0zMi0zMmwwLTE2LTY0IDBjLTguOCAwLTE2IDcuMi0xNiAxNmwwIDM4NGMwIDguOCA3LjIgMTYgMTYgMTZsMjU2IDBjOC44IDAgMTYtNy4yIDE2LTE2bDAtMzg0YzAtOC44LTcuMi0xNi0xNi0xNmwtNjQgMHpNMCA2NEMwIDI4LjcgMjguNyAwIDY0IDBMMzIwIDBjMzUuMyAwIDY0IDI4LjcgNjQgNjRsMCAzODRjMCAzNS4zLTI4LjcgNjQtNjQgNjRMNjQgNTEyYy0zNS4zIDAtNjQtMjguNy02NC02NEwwIDY0ek0xNjAgMzIwbDY0IDBjNDQuMiAwIDgwIDM1LjggODAgODAgMCA4LjgtNy4yIDE2LTE2IDE2TDk2IDQxNmMtOC44IDAtMTYtNy4yLTE2LTE2IDAtNDQuMiAzNS44LTgwIDgwLTgwem0tMjQtOTZhNTYgNTYgMCAxIDEgMTEyIDAgNTYgNTYgMCAxIDEgLTExMiAweiJdfSxCbmU9e3ByZWZpeDoiZmFyIixpY29uTmFtZToic3F1YXJlLWNoZWNrIixpY29uOls0NDgsNTEyLFs5NzQ1LDk5ODksNjE1MTAsImNoZWNrLXNxdWFyZSJdLCJmMTRhIiwiTTM4NCAzMmMzNS4zIDAgNjQgMjguNyA2NCA2NGwwIDMyMGMwIDM1LjMtMjguNyA2NC02NCA2NEw2NCA0ODBjLTM1LjMgMC02NC0yOC43LTY0LTY0TDAgOTZDMCA2MC43IDI4LjcgMzIgNjQgMzJsMzIwIDB6TTY0IDgwYy04LjggMC0xNiA3LjItMTYgMTZsMCAzMjBjMCA4LjggNy4yIDE2IDE2IDE2bDMyMCAwYzguOCAwIDE2LTcuMiAxNi0xNmwwLTMyMGMwLTguOC03LjItMTYtMTYtMTZMNjQgODB6bTIzMC43IDg5LjljNy44LTEwLjcgMjIuOC0xMy4xIDMzLjUtNS4zIDEwLjcgNy44IDEzLjEgMjIuOCA1LjMgMzMuNUwyMTEuNCAzNjYuMWMtNC4xIDUuNy0xMC41IDkuMy0xNy41IDkuOC03IC41LTEzLjktMi0xOC44LTYuOWwtNTUuOS01NS45Yy05LjQtOS40LTkuNC0yNC42IDAtMzMuOXMyNC42LTkuNCAzMy45IDBsMzYgMzYgMTA1LjYtMTQ1LjJ6Il19LFA2dD1CbmUsTjZ0PXtwcmVmaXg6ImZhciIsaWNvbk5hbWU6ImNoZXNzLWJpc2hvcCIsaWNvbjpbMzIwLDUxMixbOTgyMV0sImY0M2EiLCJNMjE2IDBjMTMuMyAwIDI0IDEwLjcgMjQgMjRzLTEwLjcgMjQtMjQgMjRsLTE2IDAgODEuOCA5OC4xYzI0LjcgMjkuNiAzOC4yIDY3IDM4LjIgMTA1LjYgMCA0My43LTE3LjQgODUuNy00OC4zIDExNi42bC04LjYgOC42IDQ2LjUgNTguMmM2LjcgOC40IDEwLjQgMTguOCAxMC40IDI5LjYgMCAyNi4yLTIxLjIgNDcuNC00Ny40IDQ3LjRMNDcuNCA1MTJDMjEuMiA1MTIgMCA0OTAuOCAwIDQ2NC42IDAgNDUzLjkgMy43IDQ0My40IDEwLjQgNDM1bDQ2LjUtNTguMi04LjYtOC42QzE3LjQgMzM3LjQgMCAyOTUuNCAwIDI1MS43IDAgMjEzLjEgMTMuNSAxNzUuOCAzOC4yIDE0Ni4xTDEyMCA0OCAxMDQgNDhDOTAuNyA0OCA4MCAzNy4zIDgwIDI0UzkwLjcgMCAxMDQgMEwyMTYgMHpNOTQuNCA0MDYuOGwtNDUuNyA1Ny4yIDIyMi43IDAtNDUuNy01Ny4xLTUuNS02LjktMTIwLjMgMC01LjUgNi44ek0xNTYuOSA3OC43TDc1LjEgMTc2LjhjLTE1LjMgMTguNC0yNC42IDQxLTI2LjcgNjQuN0w0OCAyNTEuN2MwIDMxIDEyLjMgNjAuNyAzNC4yIDgyLjdsMTcuNyAxNy43IDEyMC4yIDBjNi4yLTYuMiAxMi4xLTEyLjEgMTcuOC0xNy43IDIxLjktMjEuOSAzNC4yLTUxLjYgMzQuMi04Mi42bC0uNC0xMC4yYy0xLjUtMTctNi43LTMzLjMtMTUuMi00OEwyMDkgMjQxYy05LjQgOS40LTI0LjYgOS40LTMzLjkgMHMtOS40LTI0LjYgMC0zMy45bDUxLjgtNTEuOC02My43LTc2LjUtMy4xLTMuOC0zLjEgMy44eiJdfSxGNnQ9e3ByZWZpeDoiZmFyIixpY29uTmFtZToiZW52ZWxvcGUtb3BlbiIsaWNvbjpbNTEyLDUxMixbNjIxMzVdLCJmMmI2IiwiTTUxMiA0MTZjMCAzNS4zLTI4LjUgNjQtNjMuOSA2NEw2NCA0ODBjLTM1LjQgMC02NC0yOC43LTY0LTY0TDAgMTY0Yy4xLTE1LjUgNy44LTMwIDIwLjUtMzguOEwyMDYtMi43YzMwLjEtMjAuNyA2OS44LTIwLjcgOTkuOSAwTDQ5MS41IDEyNS4yYzEyLjggOC44IDIwLjQgMjMuMyAyMC41IDM4LjhsMCAyNTJ6TTY0IDQzMmwzODQuMSAwYzguOCAwIDE1LjktNy4xIDE1LjktMTZsMC0xOTEuNy0xNTQuOCAxMTcuNGMtMzEuNCAyMy45LTc0LjkgMjMuOS0xMDYuNCAwTDQ4IDIyNC4zIDQ4IDQxNmMwIDguOSA3LjIgMTYgMTYgMTZ6TTQ2My42IDE2NC40TDI3OC43IDM2LjhjLTEzLjctOS40LTMxLjctOS40LTQ1LjQgMEw0OC40IDE2NC40IDIzMS44IDMwMy41YzE0LjMgMTAuOCAzNC4xIDEwLjggNDguNCAwTDQ2My42IDE2NC40eiJdfSxQcD17cHJlZml4OiJmYXIiLGljb25OYW1lOiJjaXJjbGUteG1hcmsiLGljb246WzUxMiw1MTIsWzYxNTMyLCJ0aW1lcy1jaXJjbGUiLCJ4bWFyay1jaXJjbGUiXSwiZjA1NyIsIk0yNTYgNDhhMjA4IDIwOCAwIDEgMSAwIDQxNiAyMDggMjA4IDAgMSAxIDAtNDE2em0wIDQ2NGEyNTYgMjU2IDAgMSAwIDAtNTEyIDI1NiAyNTYgMCAxIDAgMCA1MTJ6TTE2NyAxNjdjLTkuNCA5LjQtOS40IDI0LjYgMCAzMy45bDU1IDU1LTU1IDU1Yy05LjQgOS40LTkuNCAyNC42IDAgMzMuOXMyNC42IDkuNCAzMy45IDBsNTUtNTUgNTUgNTVjOS40IDkuNCAyNC42IDkuNCAzMy45IDBzOS40LTI0LjYgMC0zMy45bC01NS01NSA1NS01NWM5LjQtOS40IDkuNC0yNC42IDAtMzMuOXMtMjQuNi05LjQtMzMuOSAwbC01NSA1NS01NS01NWMtOS40LTkuNC0yNC42LTkuNC0zMy45IDB6Il19LE82dD1QcCxSNnQ9UHAsSG5lPXtwcmVmaXg6ImZhciIsaWNvbk5hbWU6InNxdWFyZS1jYXJldC11cCIsaWNvbjpbNDQ4LDUxMixbImNhcmV0LXNxdWFyZS11cCJdLCJmMTUxIiwiTTY0IDgwYy04LjggMC0xNiA3LjItMTYgMTZsMCAzMjBjMCA4LjggNy4yIDE2IDE2IDE2bDMyMCAwYzguOCAwIDE2LTcuMiAxNi0xNmwwLTMyMGMwLTguOC03LjItMTYtMTYtMTZMNjQgODB6TTAgOTZDMCA2MC43IDI4LjcgMzIgNjQgMzJsMzIwIDBjMzUuMyAwIDY0IDI4LjcgNjQgNjRsMCAzMjBjMCAzNS4zLTI4LjcgNjQtNjQgNjRMNjQgNDgwYy0zNS4zIDAtNjQtMjguNy02NC02NEwwIDk2em0yMjQgNjRjNi43IDAgMTMgMi44IDE3LjYgNy43bDEwNCAxMTJjNi41IDcgOC4yIDE3LjIgNC40IDI1LjlTMzM3LjUgMzIwIDMyOCAzMjBsLTIwOCAwYy05LjUgMC0xOC4yLTUuNy0yMi0xNC40cy0yLjEtMTguOSA0LjQtMjUuOWwxMDQtMTEyYzQuNS00LjkgMTAuOS03LjcgMTcuNi03Ljd6Il19LEI2dD1IbmUsSDZ0PXtwcmVmaXg6ImZhciIsaWNvbk5hbWU6ImZpbGUtaW1hZ2UiLGljb246WzM4NCw1MTIsWzEyODQ0M10sImYxYzUiLCJNMTc2IDQ4TDY0IDQ4Yy04LjggMC0xNiA3LjItMTYgMTZsMCAzODRjMCA4LjggNy4yIDE2IDE2IDE2bDI1NiAwYzguOCAwIDE2LTcuMiAxNi0xNmwwLTI0MC04OCAwYy0zOS44IDAtNzItMzIuMi03Mi03MmwwLTg4ek0zMTYuMSAxNjBMMjI0IDY3LjkgMjI0IDEzNmMwIDEzLjMgMTAuNyAyNCAyNCAyNGw2OC4xIDB6TTAgNjRDMCAyOC43IDI4LjcgMCA2NCAwTDE5Ny41IDBjMTcgMCAzMy4zIDYuNyA0NS4zIDE4LjdMMzY1LjMgMTQxLjNjMTIgMTIgMTguNyAyOC4zIDE4LjcgNDUuM0wzODQgNDQ4YzAgMzUuMy0yOC43IDY0LTY0IDY0TDY0IDUxMmMtMzUuMyAwLTY0LTI4LjctNjQtNjRMMCA2NHpNMjU5LjQgNDMybC0xMzQuOCAwYy0xNS44IDAtMjguNi0xMi44LTI4LjYtMjguNiAwLTYuNCAyLjEtMTIuNSA2LTE3LjZsNjcuNi04Ni45QzE3NSAyOTIgMTgzLjMgMjg4IDE5MiAyODhzMTcgNCAyMi40IDEwLjlMMjgyIDM4NS45YzMuOSA1IDYgMTEuMiA2IDE3LjYgMCAxNS44LTEyLjggMjguNi0yOC42IDI4LjZ6TTExMiAyMjRhMzIgMzIgMCAxIDEgMCA2NCAzMiAzMiAwIDEgMSAwLTY0eiJdfSxxbmU9e3ByZWZpeDoiZmFyIixpY29uTmFtZToic3F1YXJlLWNhcmV0LXJpZ2h0IixpY29uOls0NDgsNTEyLFsiY2FyZXQtc3F1YXJlLXJpZ2h0Il0sImYxNTIiLCJNNDAwIDk2YzAtOC44LTcuMi0xNi0xNi0xNkw2NCA4MGMtOC44IDAtMTYgNy4yLTE2IDE2bDAgMzIwYzAgOC44IDcuMiAxNiAxNiAxNmwzMjAgMGM4LjggMCAxNi03LjIgMTYtMTZsMC0zMjB6TTM4NCAzMmMzNS4zIDAgNjQgMjguNyA2NCA2NGwwIDMyMGMwIDM1LjMtMjguNyA2NC02NCA2NEw2NCA0ODBjLTM1LjMgMC02NC0yOC43LTY0LTY0TDAgOTZDMCA2MC43IDI4LjcgMzIgNjQgMzJsMzIwIDB6TTMyMCAyNTZjMCA2LjctMi44IDEzLTcuNyAxNy42bC0xMTIgMTA0Yy03IDYuNS0xNy4yIDguMi0yNS45IDQuNFMxNjAgMzY5LjUgMTYwIDM2MGwwLTIwOGMwLTkuNSA1LjctMTguMiAxNC40LTIyczE4LjktMi4xIDI1LjkgNC40bDExMiAxMDRjNC45IDQuNSA3LjcgMTAuOSA3LjcgMTcuNnoiXX0scTZ0PXFuZSxaQT17cHJlZml4OiJmYXIiLGljb25OYW1lOiJzdW4iLGljb246WzU3Niw1MTIsWzk3MjhdLCJmMTg1IiwiTTI4OC0zMmM4IDAgMTUuNCA0IDE5LjkgMTAuNmw1OC44IDg3LjQgMTAzLjQtMjAuMmM3LjgtMS41IDE1LjkgLjkgMjEuNiA2LjZzOC4xIDEzLjggNi42IDIxLjZMNDc4IDE3Ny4zIDU2NS40IDIzNi4xQzU3MiAyNDAuNSA1NzYgMjQ4IDU3NiAyNTZzLTQgMTUuNC0xMC42IDE5LjlMNDc4IDMzNC43IDQ5OC4yIDQzOGMxLjUgNy44LS45IDE1LjktNi42IDIxLjZzLTEzLjggOC4xLTIxLjYgNi42TDM2Ni43IDQ0NiAzMDcuOSA1MzMuNEMzMDMuNCA1NDAgMjk2IDU0NCAyODggNTQ0cy0xNS40LTQtMTkuOS0xMC42TDIwOS4zIDQ0NiAxMDUuOSA0NjYuMmMtNy44IDEuNS0xNS45LS45LTIxLjYtNi42cy04LjEtMTMuOC02LjYtMjEuNkw5OCAzMzQuNyAxMC42IDI3NS45QzQgMjcxLjQgMCAyNjQgMCAyNTZzNC0xNS40IDEwLjYtMTkuOUw5OCAxNzcuMyA3Ny44IDczLjljLTEuNS03LjggLjktMTUuOSA2LjYtMjEuNnMxMy44LTguMSAyMS42LTYuNmwxMDMuMyAyMC4yIDU4LjgtODcuNCAxLjgtMi4zQzI3NC40LTI5IDI4MS0zMiAyODgtMzJ6bS00Ny44IDEzOGMtNS40IDgtMTUgMTItMjQuNSAxMC4ybC04NC0xNi40IDE2LjQgODRjMS44IDkuNS0yLjIgMTkuMS0xMC4yIDI0LjVMNjcgMjU2IDEzOCAzMDMuOGM4IDUuNCAxMiAxNSAxMC4yIDI0LjVsLTE2LjQgODQgODQtMTYuNCAzLjUtLjRjOC4zLS40IDE2LjMgMy42IDIxIDEwLjZsNDcuOCA3MSA0Ny44LTcxIDIuMi0yLjhjNS42LTYuMSAxNC05IDIyLjMtNy4zbDg0IDE2LjQtMTYuNC04NGMtMS44LTkuNSAyLjItMTkuMSAxMC4yLTI0LjVsNzEtNDcuOC03MS00Ny44Yy04LTUuNC0xMi0xNS0xMC4yLTI0LjVsMTYuNC04NC04NCAxNi40Yy05LjUgMS44LTE5LjEtMi4yLTI0LjUtMTAuMmwtNDcuOC03MS00Ny44IDcxek0yODggMzc2YTEyMCAxMjAgMCAxIDEgMC0yNDAgMTIwIDEyMCAwIDEgMSAwIDI0MHptMC0xOTJhNzIgNzIgMCAxIDAgMCAxNDQgNzIgNzIgMCAxIDAgMC0xNDR6Il19LGo2dD17cHJlZml4OiJmYXIiLGljb25OYW1lOiJpbWFnZSIsaWNvbjpbNDQ4LDUxMixbXSwiZjAzZSIsIk02NCA4MGMtOC44IDAtMTYgNy4yLTE2IDE2bDAgMzIwYzAgOC44IDcuMiAxNiAxNiAxNmwzMjAgMGM4LjggMCAxNi03LjIgMTYtMTZsMC0zMjBjMC04LjgtNy4yLTE2LTE2LTE2TDY0IDgwek0wIDk2QzAgNjAuNyAyOC43IDMyIDY0IDMybDMyMCAwYzM1LjMgMCA2NCAyOC43IDY0IDY0bDAgMzIwYzAgMzUuMy0yOC43IDY0LTY0IDY0TDY0IDQ4MGMtMzUuMyAwLTY0LTI4LjctNjQtNjRMMCA5NnptMTI4IDMyYTMyIDMyIDAgMSAxIDAgNjQgMzIgMzIgMCAxIDEgMC02NHptMTM2IDcyYzguNSAwIDE2LjQgNC41IDIwLjcgMTEuOGw4MCAxMzZjNC40IDcuNCA0LjQgMTYuNiAuMSAyNC4xUzM1Mi42IDM4NCAzNDQgMzg0bC0yNDAgMGMtOC45IDAtMTcuMi01LTIxLjMtMTIuOXMtMy41LTE3LjUgMS42LTI0LjhsNTYtODBjNC41LTYuNCAxMS44LTEwLjIgMTkuNy0xMC4yczE1LjIgMy44IDE5LjcgMTAuMmwxNy4yIDI0LjYgNDYuNS03OWM0LjMtNy4zIDEyLjItMTEuOCAyMC43LTExLjh6Il19LFY2dD17cHJlZml4OiJmYXIiLGljb25OYW1lOiJsaWdodGJ1bGIiLGljb246WzM4NCw1MTIsWzEyODE2MV0sImYwZWIiLCJNMjk2LjUgMjkxLjFDMzIxIDI2NS4yIDMzNiAyMzAuNCAzMzYgMTkyIDMzNiAxMTIuNSAyNzEuNSA0OCAxOTIgNDhTNDggMTEyLjUgNDggMTkyYzAgMzguNCAxNSA3My4yIDM5LjUgOTkuMSAyMS4zIDIyLjQgNDQuOSA1NCA1My4zIDkyLjlsMTAyLjQgMGM4LjQtMzkgMzItNzAuNSA1My4zLTkyLjl6bTM0LjggMzNDMzA3LjcgMzQ5IDI4OCAzNzkuNCAyODggNDEzLjdsMCAxOC4zYzAgNDQuMi0zNS44IDgwLTgwIDgwbC0zMiAwYy00NC4yIDAtODAtMzUuOC04MC04MGwwLTE4LjNDOTYgMzc5LjQgNzYuMyAzNDkgNTIuNyAzMjQuMSAyMCAyODkuNyAwIDI0My4yIDAgMTkyIDAgODYgODYgMCAxOTIgMFMzODQgODYgMzg0IDE5MmMwIDUxLjItMjAgOTcuNy01Mi43IDEzMi4xek0xNDQgMTg0YzAgMTMuMy0xMC43IDI0LTI0IDI0cy0yNC0xMC43LTI0LTI0YzAtNDguNiAzOS40LTg4IDg4LTg4IDEzLjMgMCAyNCAxMC43IDI0IDI0cy0xMC43IDI0LTI0IDI0Yy0yMi4xIDAtNDAgMTcuOS00MCA0MHoiXX0sakE9e3ByZWZpeDoiZmFyIixpY29uTmFtZToiYWRkcmVzcy1jYXJkIixpY29uOls1NzYsNTEyLFs2MjE0MCwiY29udGFjdC1jYXJkIiwidmNhcmQiXSwiZjJiYiIsIk01MTIgODBjOC44IDAgMTYgNy4yIDE2IDE2bDAgMzIwYzAgOC44LTcuMiAxNi0xNiAxNkw2NCA0MzJjLTguOCAwLTE2LTcuMi0xNi0xNkw0OCA5NmMwLTguOCA3LjItMTYgMTYtMTZsNDQ4IDB6TTY0IDMyQzI4LjcgMzIgMCA2MC43IDAgOTZMMCA0MTZjMCAzNS4zIDI4LjcgNjQgNjQgNjRsNDQ4IDBjMzUuMyAwIDY0LTI4LjcgNjQtNjRsMC0zMjBjMC0zNS4zLTI4LjctNjQtNjQtNjRMNjQgMzJ6TTIwOCAyNDhhNTYgNTYgMCAxIDAgMC0xMTIgNTYgNTYgMCAxIDAgMCAxMTJ6bS0zMiA0MGMtNDQuMiAwLTgwIDM1LjgtODAgODAgMCA4LjggNy4yIDE2IDE2IDE2bDE5MiAwYzguOCAwIDE2LTcuMiAxNi0xNiAwLTQ0LjItMzUuOC04MC04MC04MGwtNjQgMHpNMzc2IDE0NGMtMTMuMyAwLTI0IDEwLjctMjQgMjRzMTAuNyAyNCAyNCAyNGw4MCAwYzEzLjMgMCAyNC0xMC43IDI0LTI0cy0xMC43LTI0LTI0LTI0bC04MCAwem0wIDk2Yy0xMy4zIDAtMjQgMTAuNy0yNCAyNHMxMC43IDI0IDI0IDI0bDgwIDBjMTMuMyAwIDI0LTEwLjcgMjQtMjRzLTEwLjctMjQtMjQtMjRsLTgwIDB6Il19LFU2dD1qQSxXNnQ9akEsam5lPXtwcmVmaXg6ImZhciIsaWNvbk5hbWU6ImZhY2UtbWVoIixpY29uOls1MTIsNTEyLFsxMjg1MjgsIm1laCJdLCJmMTFhIiwiTTQ2NCAyNTZhMjA4IDIwOCAwIDEgMSAtNDE2IDAgMjA4IDIwOCAwIDEgMSA0MTYgMHpNMjU2IDBhMjU2IDI1NiAwIDEgMCAwIDUxMiAyNTYgMjU2IDAgMSAwIDAtNTEyek0xNzYgMjQwYTMyIDMyIDAgMSAwIDAtNjQgMzIgMzIgMCAxIDAgMCA2NHptMTkyLTMyYTMyIDMyIDAgMSAwIC02NCAwIDMyIDMyIDAgMSAwIDY0IDB6TTE4NCAzMjBjLTEzLjMgMC0yNCAxMC43LTI0IDI0czEwLjcgMjQgMjQgMjRsMTQ0IDBjMTMuMyAwIDI0LTEwLjcgMjQtMjRzLTEwLjctMjQtMjQtMjRsLTE0NCAweiJdfSxHNnQ9am5lLFk2dD17cHJlZml4OiJmYXIiLGljb25OYW1lOiJtYXAiLGljb246WzUxMiw1MTIsWzEyODUwNiw2MjA3Ml0sImYyNzkiLCJNNTEyIDQ4YzAtOC4zLTQuMy0xNi0xMS4zLTIwLjRzLTE1LjktNC44LTIzLjMtMS4xTDM1Mi41IDg4LjEgMTgwIDI5LjRjLTEzLjctNC43LTI4LjctMy44LTQxLjkgMi4zTDEzLjggOTAuM0M1LjQgOTQuMiAwIDEwMi43IDAgMTEyTDAgNDY0YzAgOC4yIDQuMiAxNS45IDExLjEgMjAuM3MxNS42IDQuOSAyMy4xIDEuNGwxMjcuMy01OS45IDE3MC43IDU2LjljMTMuNyA0LjYgMjguNSAzLjcgNDEuNi0yLjVsMTI0LjQtNTguNWM4LjQtNCAxMy44LTEyLjQgMTMuOC0yMS43bDAtMzUyek0xNDQgODIuMWwwIDI5OS05NiA0NS4yIDAtMjk5IDk2LTQ1LjJ6bTQ4IDMwMy4zbDAtMzAxLjEgMTI4IDQzLjUgMCAzMDAuMy0xMjgtNDIuN3pNMzY4IDEzNGw5Ni00Ny40IDAgMjk4LjItOTYgNDUuMiAwLTI5NnoiXX0sWjZ0PXtwcmVmaXg6ImZhciIsaWNvbk5hbWU6ImhhbmQtcG9pbnQtZG93biIsaWNvbjpbMzg0LDUxMixbXSwiZjBhNyIsIk02NCA0NDhsMC0xNzcuNmM1LjIgMSAxMC41IDEuNiAxNiAxLjZsMTYgMCAwIDE3NmMwIDguOC03LjIgMTYtMTYgMTZzLTE2LTcuMi0xNi0xNnpNODAgMjI0Yy0xNy43IDAtMzItMTQuMy0zMi0zMmwwLTI0YzAtNjYuMyA1My43LTEyMCAxMjAtMTIwbDQ4IDBjNTIuNSAwIDk3LjEgMzMuNyAxMTMuNCA4MC43LTMuMS0uNS02LjItLjctOS40LS43LTIwIDAtMzcuOSA5LjItNDkuNyAyMy42LTktNC45LTE5LjQtNy42LTMwLjMtNy42LTE1LjEgMC0yOSA1LjMtNDAgMTQtMTEtOC44LTI0LjktMTQtNDAtMTRsLTQwIDBjLTEzLjMgMC0yNCAxMC43LTI0IDI0czEwLjcgMjQgMjQgMjRsNDAgMGM4LjggMCAxNiA3LjIgMTYgMTZzLTcuMiAxNi0xNiAxNmwtODAgMHpNMCAxOTJsMCAwYzAgMTggNiAzNC42IDE2IDQ4bDAgMjA4YzAgMzUuMyAyOC43IDY0IDY0IDY0czY0LTI4LjcgNjQtNjRsMC04MmM1LjEgMS4zIDEwLjUgMiAxNiAyIDI1LjMgMCA0Ny4yLTE0LjcgNTcuNi0zNiA3IDIuNiAxNC41IDQgMjIuNCA0IDIwIDAgMzcuOS05LjIgNDkuNy0yMy42IDkgNC45IDE5LjQgNy42IDMwLjMgNy42IDM1LjMgMCA2NC0yOC43IDY0LTY0bDAtODhDMzg0IDc1LjIgMzA4LjggMCAyMTYgMEwxNjggMEM3NS4yIDAgMCA3NS4yIDAgMTY4bDAgMjR6bTMzNiA2NGMwIDguOC03LjIgMTYtMTYgMTZzLTE2LTcuMi0xNi0xNmwwLTY0YzAtOC44IDcuMi0xNiAxNi0xNnMxNiA3LjIgMTYgMTZsMCA2NHpNMTYwIDI3MmM1LjUgMCAxMC45LS43IDE2LTJsMCAzNGMwIDguOC03LjIgMTYtMTYgMTZzLTE2LTcuMi0xNi0xNmwwLTMyIDE2IDB6bTY0LTI0bDAtNDBjMC04LjggNy4yLTE2IDE2LTE2czE2IDcuMiAxNiAxNmwwIDY0YzAgOC44LTcuMiAxNi0xNiAxNnMtMTYtNy4yLTE2LTE2bDAtMjR6Il19LFZuZT17cHJlZml4OiJmYXIiLGljb25OYW1lOiJmYWNlLW1laC1ibGFuayIsaWNvbjpbNTEyLDUxMixbMTI4NTY2LCJtZWgtYmxhbmsiXSwiZjVhNCIsIk0yNTYgNDhhMjA4IDIwOCAwIDEgMCAwIDQxNiAyMDggMjA4IDAgMSAwIDAtNDE2ek01MTIgMjU2YTI1NiAyNTYgMCAxIDEgLTUxMiAwIDI1NiAyNTYgMCAxIDEgNTEyIDB6TTE0NCAyMDhhMzIgMzIgMCAxIDEgNjQgMCAzMiAzMiAwIDEgMSAtNjQgMHptMTkyLTMyYTMyIDMyIDAgMSAxIDAgNjQgMzIgMzIgMCAxIDEgMC02NHoiXX0sWDZ0PVZuZSxVbmU9e3ByZWZpeDoiZmFyIixpY29uTmFtZToiZmFjZS1ncmluLXRvbmd1ZSIsaWNvbjpbNTEyLDUxMixbMTI4NTM5LCJncmluLXRvbmd1ZSJdLCJmNTg5IiwiTTQ2NCAyNTZjMC0xMTQuOS05My4xLTIwOC0yMDgtMjA4UzQ4IDE0MS4xIDQ4IDI1NmMwIDc0LjEgMzguOCAxMzkuMiA5Ny4xIDE3Ni0uNy01LjItMS4xLTEwLjYtMS4xLTE2bDAtNTMuNWMtMTAuMi0xMi42LTE4LjMtMjYuOS0yMy44LTQyLjQtNC4xLTExLjYgNy44LTIxLjQgMTkuNi0xNy44IDM0LjcgMTAuNiA3NC4yIDE2LjUgMTE2LjEgMTYuNSA0MiAwIDgxLjUtNiAxMTYuMy0xNi42IDExLjgtMy42IDIzLjcgNi4xIDE5LjYgMTcuOC01LjUgMTUuNi0xMy42IDI5LjktMjMuOCA0Mi41bDAgNTMuNWMwIDUuNC0uNCAxMC44LTEuMSAxNiA1OC40LTM2LjggOTcuMS0xMDEuOSA5Ny4xLTE3NnptNDggMGMwIDExNi4zLTc3LjYgMjE0LjYtMTgzLjkgMjQ1LjctMTkuNSAxNi40LTQ0LjYgMjYuMy03Mi4xIDI2LjNzLTUyLjYtOS45LTcyLjEtMjYuM0M3Ny42IDQ3MC42IDAgMzcyLjMgMCAyNTYgMCAxMTQuNiAxMTQuNiAwIDI1NiAwUzUxMiAxMTQuNiA1MTIgMjU2ek0xNzYgMTc2YTMyIDMyIDAgMSAxIDAgNjQgMzIgMzIgMCAxIDEgMC02NHptMTI4IDMyYTMyIDMyIDAgMSAxIDY0IDAgMzIgMzIgMCAxIDEgLTY0IDB6bTE2IDIwOGwwLTM3LjRjMC0xNC43LTExLjktMjYuNi0yNi42LTI2LjZsLTIgMGMtMTEuMyAwLTIxLjEgNy45LTIzLjYgMTguOS0yLjggMTIuNi0yMC44IDEyLjYtMjMuNiAwLTIuNS0xMS4xLTEyLjMtMTguOS0yMy42LTE4LjlsLTIgMGMtMTQuNyAwLTI2LjYgMTEuOS0yNi42IDI2LjZsMCAzNy40YzAgMzUuMyAyOC43IDY0IDY0IDY0czY0LTI4LjcgNjQtNjR6Il19LFE2dD1VbmUsVkE9e3ByZWZpeDoiZmFyIixpY29uTmFtZToiZnV0Ym9sIixpY29uOls1MTIsNTEyLFs5OTE3LCJmdXRib2wtYmFsbCIsInNvY2Nlci1iYWxsIl0sImYxZTMiLCJNMzg3IDIyOC4zYy00LjQtMi44LTcuNi03LTkuMi0xMS45cy0xLjQtMTAuMiAuNS0xNUw0MTEuNiAxMThjLTE5LjktMjIuNC00NC42LTQwLjUtNzIuNC01Mi43bC02OS4xIDU3LjZjLTQgMy4zLTkgNS4xLTE0LjEgNS4xcy0xMC4yLTEuOC0xNC4xLTUuMUwxNzIuOCA2NS4zYy0yNy44IDEyLjItNTIuNSAzMC4zLTcyLjQgNTIuN2wzMy40IDgzLjRjMS45IDQuOCAyLjEgMTAuMSAuNSAxNXMtNC45IDkuMS05LjIgMTEuOUw0OSAyNzYuMmMzIDMwLjkgMTIuNyA1OS43IDI3LjYgODUuMmw4OS43LTZjNS4yLS4zIDEwLjMgMS4xIDE0LjUgNC4yczcuMiA3LjQgOC40IDEyLjVsMjIgODcuMmMxNC40IDMuMiAyOS40IDQuOCA0NC44IDQuOHMzMC4zLTEuNyA0NC44LTQuOGwyMi04Ny4yYzEuMy01IDQuMi05LjQgOC40LTEyLjVzOS4zLTQuNSAxNC41LTQuMmw4OS43IDZjMTUtMjUuNCAyNC43LTU0LjMgMjcuNi04NS4xTDM4NyAyMjguM3pNMjU2IDBhMjU2IDI1NiAwIDEgMSAwIDUxMiAyNTYgMjU2IDAgMSAxIDAtNTEyem02MiAyMjFjOC40IDYuMSAxMS45IDE2LjkgOC43IDI2LjhsLTE4LjMgNTYuM2MtMy4yIDkuOS0xMi40IDE2LjYtMjIuOCAxNi42bC01OS4yIDBjLTEwLjQgMC0xOS42LTYuNy0yMi44LTE2LjZsLTE4LjMtNTYuM2MtMy4yLTkuOSAuMy0yMC43IDguNy0yNi44bDQ3LjktMzQuOGM4LjQtNi4xIDE5LjgtNi4xIDI4LjIgMEwzMTggMjIxeiJdfSxKNnQ9VkEsSzZ0PVZBLFduZT17cHJlZml4OiJmYXIiLGljb25OYW1lOiJmYWNlLXN1cnByaXNlIixpY29uOls1MTIsNTEyLFsxMjg1NTgsInN1cnByaXNlIl0sImY1YzIiLCJNNDY0IDI1NmEyMDggMjA4IDAgMSAwIC00MTYgMCAyMDggMjA4IDAgMSAwIDQxNiAwek0wIDI1NmEyNTYgMjU2IDAgMSAxIDUxMiAwIDI1NiAyNTYgMCAxIDEgLTUxMiAwem0xNzYtODBhMzIgMzIgMCAxIDEgMCA2NCAzMiAzMiAwIDEgMSAwLTY0em0xMjggMzJhMzIgMzIgMCAxIDEgNjQgMCAzMiAzMiAwIDEgMSAtNjQgMHptLTQ4IDgwYTY0IDY0IDAgMSAxIDAgMTI4IDY0IDY0IDAgMSAxIDAtMTI4eiJdfSxlZHQ9V25lLEduZT17cHJlZml4OiJmYXIiLGljb25OYW1lOiJmb2xkZXIiLGljb246WzUxMiw1MTIsWzEyODE5MywxMjg0NDcsNjE3MTYsImZvbGRlci1ibGFuayJdLCJmMDdiIiwiTTY0IDQwMGwzODQgMGM4LjggMCAxNi03LjIgMTYtMTZsMC0yNDBjMC04LjgtNy4yLTE2LTE2LTE2bC0xNDkuMyAwYy0xNy4zIDAtMzQuMi01LjYtNDgtMTZMMjEyLjMgODMuMmMtMi44LTIuMS02LjEtMy4yLTkuNi0zLjJMNjQgODBjLTguOCAwLTE2IDcuMi0xNiAxNmwwIDI4OGMwIDguOCA3LjIgMTYgMTYgMTZ6bTM4NCA0OEw2NCA0NDhjLTM1LjMgMC02NC0yOC43LTY0LTY0TDAgOTZDMCA2MC43IDI4LjcgMzIgNjQgMzJsMTM4LjcgMGMxMy44IDAgMjcuMyA0LjUgMzguNCAxMi44bDM4LjQgMjguOGM1LjUgNC4yIDEyLjMgNi40IDE5LjIgNi40TDQ0OCA4MGMzNS4zIDAgNjQgMjguNyA2NCA2NGwwIDI0MGMwIDM1LjMtMjguNyA2NC02NCA2NHoiXX0sdGR0PUduZSxyZHQ9e3ByZWZpeDoiZmFyIixpY29uTmFtZToiY2xvdWQiLGljb246WzU3Niw1MTIsWzk3MjldLCJmMGMyIiwiTTgwIDE5MmMwLTg4LjQgNzEuNi0xNjAgMTYwLTE2MCA0Ny4xIDAgODkuNCAyMC40IDExOC43IDUyLjcgMTAuNi0zLjEgMjEuOC00LjcgMzMuMy00LjcgNjYuMyAwIDEyMCA1My43IDEyMCAxMjAgMCAxMy4yLTIuMSAyNS45LTYuMSAzNy44IDQxLjYgMjEuMSA3MC4xIDY0LjMgNzAuMSAxMTQuMiAwIDcwLjctNTcuMyAxMjgtMTI4IDEyOGwtMzA0IDBjLTc5LjUgMC0xNDQtNjQuNS0xNDQtMTQ0IDAtNTYuOCAzMi45LTEwNS45IDgwLjctMTI5LjQtLjQtNC44LS43LTkuNy0uNy0xNC42ek0yNDAgODBjLTYxLjkgMC0xMTIgNTAuMS0xMTIgMTEyIDAgOC40IC45IDE2LjYgMi43IDI0LjUgMi43IDEyLjEtNC4zIDI0LjMtMTYuMSAyOC4xLTM4LjcgMTIuNC02Ni42IDQ4LjctNjYuNiA5MS40IDAgNTMgNDMgOTYgOTYgOTZsMzA0IDBjNDQuMiAwIDgwLTM1LjggODAtODAgMC0zNy40LTI1LjctNjguOS02MC41LTc3LjYtNy41LTEuOS0xMy42LTcuMi0xNi41LTE0LjNzLTIuMS0xNS4yIDItMjEuN2M3LTExLjEgMTEtMjQuMiAxMS0zOC4zIDAtMzkuOC0zMi4yLTcyLTcyLTcyLTExLjEgMC0yMS41IDIuNS0zMC44IDYuOS0xMC41IDUtMjMuMSAxLjctMjkuOC03LjgtMjAuMy0yOC42LTUzLjctNDcuMS05MS4zLTQ3LjF6Il19LGlkdD17cHJlZml4OiJmYXIiLGljb25OYW1lOiJjaXJjbGUiLGljb246WzUxMiw1MTIsWzEyODMwOCwxMjgzMDksMTI4OTkyLDEyODk5MywxMjg5OTQsMTI4OTk1LDEyODk5Niw5Njc5LDk4OTgsOTg5OSwxMTA0NCw2MTcwOCw2MTkxNV0sImYxMTEiLCJNNDY0IDI1NmEyMDggMjA4IDAgMSAwIC00MTYgMCAyMDggMjA4IDAgMSAwIDQxNiAwek0wIDI1NmEyNTYgMjU2IDAgMSAxIDUxMiAwIDI1NiAyNTYgMCAxIDEgLTUxMiAweiJdfSxZbmU9e3ByZWZpeDoiZmFyIixpY29uTmFtZToiZmFjZS1ncmluLXNxdWludCIsaWNvbjpbNTEyLDUxMixbMTI4NTE4LCJncmluLXNxdWludCJdLCJmNTg1IiwiTTQ2NCAyNTZhMjA4IDIwOCAwIDEgMCAtNDE2IDAgMjA4IDIwOCAwIDEgMCA0MTYgMHpNMCAyNTZhMjU2IDI1NiAwIDEgMSA1MTIgMCAyNTYgMjU2IDAgMSAxIC01MTIgMHptMzcyLjIgNDYuM2MxMS44LTMuNiAyMy43IDYuMSAxOS42IDE3LjgtMTkuOCA1NS45LTczLjEgOTYtMTM1LjggOTYtNjIuNyAwLTExNi00MC0xMzUuOC05NS45LTQuMS0xMS42IDcuOC0yMS40IDE5LjYtMTcuOCAzNC43IDEwLjYgNzQuMiAxNi41IDExNi4xIDE2LjUgNDIgMCA4MS41LTYgMTE2LjMtMTYuNnptLTI0OS42LTE0M2M0LjUtNi44IDEzLjMtOS4yIDIwLjYtNS41bDc5LjYgNDBjNS40IDIuNyA4LjggOC4yIDguOCAxNC4zcy0zLjQgMTEuNi04LjggMTQuM2wtNzkuNiA0MGMtNy4zIDMuNi0xNi4xIDEuMy0yMC42LTUuNXMtMy4xLTE1LjkgMy4xLTIxLjFMMTU5IDIwOCAxMjUuOCAxODAuM2MtNi4yLTUuMi03LjYtMTQuMy0zLjEtMjEuMXptMjYzLjYgMjEuMUwzNTMgMjA4IDM4Ni4yIDIzNS43YzYuMiA1LjIgNy42IDE0LjMgMy4xIDIxLjFzLTEzLjMgOS4yLTIwLjYgNS41bC03OS42LTQwYy01LjQtMi43LTguOC04LjItOC44LTE0LjNzMy40LTExLjYgOC44LTE0LjNsNzkuNi00MGM3LjMtMy42IDE2LjEtMS4zIDIwLjYgNS41czMuMSAxNS45LTMuMSAyMS4xeiJdfSxhZHQ9WW5lLFpuZT17cHJlZml4OiJmYXIiLGljb25OYW1lOiJjaXJjbGUtdXNlciIsaWNvbjpbNTEyLDUxMixbNjIxNDIsInVzZXItY2lyY2xlIl0sImYyYmQiLCJNNDA2LjUgMzk5LjZDMzg3LjQgMzUyLjkgMzQxLjUgMzIwIDI4OCAzMjBsLTY0IDBjLTUzLjUgMC05OS40IDMyLjktMTE4LjUgNzkuNi0zNS42LTM3LjMtNTcuNS04Ny45LTU3LjUtMTQzLjYgMC0xMTQuOSA5My4xLTIwOCAyMDgtMjA4czIwOCA5My4xIDIwOCAyMDhjMCA1NS43LTIxLjkgMTA2LjItNTcuNSAxNDMuNnptLTQwLjEgMzIuN0MzMzQuNCA0NTIuNCAyOTYuNiA0NjQgMjU2IDQ2NHMtNzguNC0xMS42LTExMC41LTMxLjdjNy4zLTM2LjcgMzkuNy02NC4zIDc4LjUtNjQuM2w2NCAwYzM4LjggMCA3MS4yIDI3LjYgNzguNSA2NC4zek0yNTYgNTEyYTI1NiAyNTYgMCAxIDAgMC01MTIgMjU2IDI1NiAwIDEgMCAwIDUxMnptMC0yNzJhNDAgNDAgMCAxIDEgMC04MCA0MCA0MCAwIDEgMSAwIDgwem0tODgtNDBhODggODggMCAxIDAgMTc2IDAgODggODggMCAxIDAgLTE3NiAweiJdfSxuZHQ9Wm5lLFhuZT17cHJlZml4OiJmYXIiLGljb25OYW1lOiJyZWN0YW5nbGUtbGlzdCIsaWNvbjpbNTEyLDUxMixbImxpc3QtYWx0Il0sImYwMjIiLCJNNjQgMTEyYy04LjggMC0xNiA3LjItMTYgMTZsMCAyNTZjMCA4LjggNy4yIDE2IDE2IDE2bDM4NCAwYzguOCAwIDE2LTcuMiAxNi0xNmwwLTI1NmMwLTguOC03LjItMTYtMTYtMTZMNjQgMTEyek0wIDEyOEMwIDkyLjcgMjguNyA2NCA2NCA2NGwzODQgMGMzNS4zIDAgNjQgMjguNyA2NCA2NGwwIDI1NmMwIDM1LjMtMjguNyA2NC02NCA2NEw2NCA0NDhjLTM1LjMgMC02NC0yOC43LTY0LTY0TDAgMTI4ek0xNjAgMzIwYTMyIDMyIDAgMSAxIC02NCAwIDMyIDMyIDAgMSAxIDY0IDB6bS0zMi05NmEzMiAzMiAwIDEgMSAwLTY0IDMyIDMyIDAgMSAxIDAgNjR6bTEwNC01NmwxNjAgMGMxMy4zIDAgMjQgMTAuNyAyNCAyNHMtMTAuNyAyNC0yNCAyNGwtMTYwIDBjLTEzLjMgMC0yNC0xMC43LTI0LTI0czEwLjctMjQgMjQtMjR6bTAgMTI4bDE2MCAwYzEzLjMgMCAyNCAxMC43IDI0IDI0cy0xMC43IDI0LTI0IDI0bC0xNjAgMGMtMTMuMyAwLTI0LTEwLjctMjQtMjRzMTAuNy0yNCAyNC0yNHoiXX0sb2R0PVhuZSxRbmU9e3ByZWZpeDoiZmFyIixpY29uTmFtZToiaGFuZCIsaWNvbjpbNTEyLDUxMixbMTI5MzA2LDk5OTUsImhhbmQtcGFwZXIiXSwiZjI1NiIsIk0yNTYuNSAwYy0yNS4zIDAtNDcuMiAxNC43LTU3LjYgMzYtNy0yLjYtMTQuNS00LTIyLjQtNC0zNS4zIDAtNjQgMjguNy02NCA2NGwwIDE2NS41LTIuNy0yLjdjLTI1LTI1LTY1LjUtMjUtOTAuNSAwcy0yNSA2NS41IDAgOTAuNUwxMDcgNDM3YzQ4IDQ4IDExMy4xIDc1IDE4MSA3NWwxNi41IDBjMS41IDAgMy0uMSA0LjUtLjQgOTEuNy02LjIgMTY1LTc5LjQgMTcxLjEtMTcxLjEgLjMtMS41IC40LTMgLjQtNC41bDAtMTc2YzAtMzUuMy0yOC43LTY0LTY0LTY0LTUuNSAwLTEwLjkgLjctMTYgMmwwLTJjMC0zNS4zLTI4LjctNjQtNjQtNjQtNy45IDAtMTUuNCAxLjQtMjIuNCA0LTEwLjQtMjEuMy0zMi4zLTM2LTU3LjYtMzZ6bS0xNiA5Ni4xbDAtLjEgMC0zMmMwLTguOCA3LjItMTYgMTYtMTZzMTYgNy4yIDE2IDE2bDAgMTY4YzAgMTMuMyAxMC43IDI0IDI0IDI0czI0LTEwLjcgMjQtMjRsMC0xMzZjMC04LjggNy4yLTE2IDE2LTE2czE2IDcuMiAxNiAxNmwwIDEzNmMwIDEzLjMgMTAuNyAyNCAyNCAyNHMyNC0xMC43IDI0LTI0bDAtNzJjMC04LjggNy4yLTE2IDE2LTE2czE2IDcuMiAxNiAxNmwwIDE3Mi45Yy0uMSAuNi0uMSAxLjMtLjIgMS45LTMuNCA2OS43LTU5LjMgMTI1LjYtMTI5IDEyOS0uNiAwLTEuMyAuMS0xLjkgLjJMMjg4IDQ2NEMyMzIuOSA0NjQgMTgwIDQ0Mi4xIDE0MSA0MDMuMUw1My4yIDMxNS4zYy02LjItNi4yLTYuMi0xNi40IDAtMjIuNnMxNi40LTYuMiAyMi42IDBsNDMuNyA0My43YzYuOSA2LjkgMTcuMiA4LjkgMjYuMiA1LjJzMTQuOC0xMi41IDE0LjgtMjIuMmwwLTIyMy40YzAtOC44IDcuMi0xNiAxNi0xNiA4LjggMCAxNiA3LjEgMTYgMTUuOWwwIDEzNi4xYzAgMTMuMyAxMC43IDI0IDI0IDI0czI0LTEwLjcgMjQtMjRsMC0xMzUuOXoiXX0sc2R0PVFuZSxsZHQ9e3ByZWZpeDoiZmFyIixpY29uTmFtZToidGh1bWJzLXVwIixpY29uOls1MTIsNTEyLFsxMjgwNzcsNjE1NzVdLCJmMTY0IiwiTTE3MS41IDM4LjhDMTkyLjMgNCAyMzYuNS0xMCAyNzQgNy42bDcuMiAzLjhDMzE2IDMyLjMgMzMwIDc2LjUgMzEyLjQgMTE0bDAgMC0xNC4xIDMwIDEwOS43IDAgNy40IC40YzM2LjMgMy43IDY0LjYgMzQuNCA2NC42IDcxLjYgMCAxMy4yLTMuNiAyNS40LTkuOCAzNiA2LjEgMTAuNiA5LjcgMjIuOCA5LjggMzYgMCAxOC4zLTYuOSAzNC44LTE4IDQ3LjUgMS4zIDUuMyAyIDEwLjggMiAxNi41IDAgMjUuMS0xMi45IDQ3LTMyLjIgNTkuOS0xLjkgMzUuNS0yOS40IDY0LjItNjQuNCA2Ny43bC03LjQgLjQtMTA0LjEgMGMtMTggMC0zNS45LTMuNC01Mi42LTkuOWwtNy4xLTMtLjctLjMtNi42LTMuMi0uNy0uMy0xMi4yLTYuNWMtMTIuMy02LjUtMjMuMy0xNC43LTMyLjktMjQuMS00LjEgMjYuOS0yNy4zIDQ3LjQtNTUuMyA0Ny40bC0zMiAwYy0zMC45IDAtNTYtMjUuMS01Ni01NkwwIDIwMGMwLTMwLjkgMjUuMS01NiA1Ni01NmwzMiAwYzEwLjggMCAyMC45IDMuMSAyOS41IDguNWw1MC4xLTEwNi41IC42LTEuMiAyLjctNSAuNi0uOXpNNTYgMTkyYy00LjQgMC04IDMuNi04IDhsMCAyMjRjMCA0LjQgMy42IDggOCA4bDMyIDBjNC40IDAgOC0zLjYgOC04bDAtMjI0YzAtNC40LTMuNi04LTgtOGwtMzIgMHpNMjUzLjYgNTFjLTE0LjgtNi45LTMyLjMtMS42LTQwLjcgMTJsLTIuMiA0LTU2LjggMTIwLjljLTMuNSA3LjUtNS41IDE1LjUtNiAyMy43bC0uMSA0LjIgMCAxMTIuOSAuMiA3LjljMi40IDMyLjcgMjEuNCA2Mi4xIDUwLjcgNzcuN2wxMS41IDYuMSA2LjMgMy4xYzEyLjQgNS42IDI1LjggOC41IDM5LjQgOC41bDEwNC4xIDAgMi40LS4xYzEyLjEtMS4yIDIxLjYtMTEuNSAyMS42LTIzLjlsLS4yLTIuNmMtLjEtLjktLjItMS43LS40LTIuNi0yLjctMTIuMSA0LjMtMjQuMiAxNi0yOCA5LjctMy4xIDE2LjYtMTIuMiAxNi42LTIyLjggMC00LjMtMS4xLTguMi0zLjEtMTEuOC02LjMtMTEuMS0yLjgtMjUuMiA4LTMyIDYuOC00LjMgMTEuMi0xMS44IDExLjItMjAuMiAwLTcuMS0zLjEtMTMuNS04LjItMTgtNS4yLTQuNi04LjItMTEuMS04LjItMThzMy0xMy40IDguMi0xOGM1LjEtNC41IDguMi0xMC45IDguMi0xOGwtLjEtMi40Yy0xLjEtMTEuMy0xMC4xLTIwLjMtMjEuNC0yMS40bC0yLjQtLjEtMTQ3LjUgMGMtOC4yIDAtMTUuOC00LjItMjAuMi0xMS4xLTQuNC02LjktNS0xNS43LTEuNS0yMy4xTDI2OSA5My42YzctMTUgMS40LTMyLjctMTIuNS00MUwyNTMuNiA1MXoiXX0sY2R0PXtwcmVmaXg6ImZhciIsaWNvbk5hbWU6ImJ1aWxkaW5nIixpY29uOlszODQsNTEyLFsxMjc5NzAsNjE2ODddLCJmMWFkIiwiTTY0IDQ4Yy04LjggMC0xNiA3LjItMTYgMTZsMCAzODRjMCA4LjggNy4yIDE2IDE2IDE2bDgwIDAgMC04MGMwLTE3LjcgMTQuMy0zMiAzMi0zMmwzMiAwYzE3LjcgMCAzMiAxNC4zIDMyIDMybDAgODAgODAgMGM4LjggMCAxNi03LjIgMTYtMTZsMC0zODRjMC04LjgtNy4yLTE2LTE2LTE2TDY0IDQ4ek0wIDY0QzAgMjguNyAyOC43IDAgNjQgMEwzMjAgMGMzNS4zIDAgNjQgMjguNyA2NCA2NGwwIDM4NGMwIDM1LjMtMjguNyA2NC02NCA2NEw2NCA1MTJjLTM1LjMgMC02NC0yOC43LTY0LTY0TDAgNjR6bTk2IDQ4YzAtOC44IDcuMi0xNiAxNi0xNmwzMiAwYzguOCAwIDE2IDcuMiAxNiAxNmwwIDMyYzAgOC44LTcuMiAxNi0xNiAxNmwtMzIgMGMtOC44IDAtMTYtNy4yLTE2LTE2bDAtMzJ6TTI0MCA5NmwzMiAwYzguOCAwIDE2IDcuMiAxNiAxNmwwIDMyYzAgOC44LTcuMiAxNi0xNiAxNmwtMzIgMGMtOC44IDAtMTYtNy4yLTE2LTE2bDAtMzJjMC04LjggNy4yLTE2IDE2LTE2ek05NiAyNDBjMC04LjggNy4yLTE2IDE2LTE2bDMyIDBjOC44IDAgMTYgNy4yIDE2IDE2bDAgMzJjMCA4LjgtNy4yIDE2LTE2IDE2bC0zMiAwYy04LjggMC0xNi03LjItMTYtMTZsMC0zMnptMTQ0LTE2bDMyIDBjOC44IDAgMTYgNy4yIDE2IDE2bDAgMzJjMCA4LjgtNy4yIDE2LTE2IDE2bC0zMiAwYy04LjggMC0xNi03LjItMTYtMTZsMC0zMmMwLTguOCA3LjItMTYgMTYtMTZ6Il19LGRkdD17cHJlZml4OiJmYXIiLGljb25OYW1lOiJjaGVzcy1yb29rIixpY29uOlszODQsNTEyLFs5ODIwXSwiZjQ0NyIsIk0zNTIgMGMxNy43IDAgMzIgMTQuMyAzMiAzMmwwIDEzOC43YzAgMTMuOC00LjUgMjcuMy0xMi44IDM4LjRsLTM1LjIgNDYuOSAwIDExMiA0MC44IDY4LjFjNC43IDcuOCA3LjIgMTYuNyA3LjIgMjUuOCAwIDI3LjctMjIuNCA1MC4xLTUwLjEgNTAuMUw1MC4xIDUxMmMtMjcuNyAwLTUwLjEtMjIuNC01MC4xLTUwLjEgMC05LjEgMi41LTE4IDcuMi0yNS44TDQ4IDM2OCA0OCAyNTYgMTIuOCAyMDkuMUM0LjUgMTk4IDAgMTg0LjUgMCAxNzAuN0wwIDMyQzAgMTQuMyAxNC4zIDAgMzIgMEwzNTIgMHpNNDguMyA0NjAuOGwtLjMgMS4xYzAgMS4yIDEgMi4xIDIuMSAyLjFsMjgzLjggMGMxLjIgMCAyLjEtMSAyLjEtMi4xbC0uMy0xLjEtMzYuNS02MC44LTIxNC40IDAtMzYuNSA2MC44ek00OCAxNzAuN2MwIDIuNiAuNiA1LjEgMS44IDcuNGwxLjQgMi4yIDAgMCAzNS4yIDQ2LjkgOS42IDEyLjggMCAxMTIgMTkyIDAgMC0xMTIgOS42LTEyLjggMzUuMi00Ni45IDAgMCAxLjQtMi4yYzEuMi0yLjMgMS44LTQuOCAxLjgtNy40bDAtMTIyLjctNjQgMCAwIDI0YzAgMTMuMy0xMC43IDI0LTI0IDI0cy0yNC0xMC43LTI0LTI0bDAtMjQtNjQgMCAwIDI0YzAgMTMuMy0xMC43IDI0LTI0IDI0cy0yNC0xMC43LTI0LTI0bDAtMjQtNjQgMCAwIDEyMi43eiJdfSxKbmU9e3ByZWZpeDoiZmFyIixpY29uTmFtZToiY2lyY2xlLXF1ZXN0aW9uIixpY29uOls1MTIsNTEyLFs2MjEwOCwicXVlc3Rpb24tY2lyY2xlIl0sImYwNTkiLCJNNDY0IDI1NmEyMDggMjA4IDAgMSAwIC00MTYgMCAyMDggMjA4IDAgMSAwIDQxNiAwek0wIDI1NmEyNTYgMjU2IDAgMSAxIDUxMiAwIDI1NiAyNTYgMCAxIDEgLTUxMiAwem0yNTYtODBjLTE3LjcgMC0zMiAxNC4zLTMyIDMyIDAgMTMuMy0xMC43IDI0LTI0IDI0cy0yNC0xMC43LTI0LTI0YzAtNDQuMiAzNS44LTgwIDgwLTgwczgwIDM1LjggODAgODBjMCA0Ny4yLTM2IDY3LjItNTYgNzQuNWwwIDMuOGMwIDEzLjMtMTAuNyAyNC0yNCAyNHMtMjQtMTAuNy0yNC0yNGwwLTguMWMwLTIwLjUgMTQuOC0zNS4yIDMwLjEtNDAuMiA2LjQtMi4xIDEzLjItNS41IDE4LjItMTAuMyA0LjMtNC4yIDcuNy0xMCA3LjctMTkuNiAwLTE3LjctMTQuMy0zMi0zMi0zMnpNMjI0IDM2OGEzMiAzMiAwIDEgMSA2NCAwIDMyIDMyIDAgMSAxIC02NCAweiJdfSx1ZHQ9Sm5lLHBkdD17cHJlZml4OiJmYXIiLGljb25OYW1lOiJmaWxlIixpY29uOlszODQsNTEyLFsxMjgxOTYsMTI4NDU5LDYxNDYyXSwiZjE1YiIsIk0xNzYgNDhMNjQgNDhjLTguOCAwLTE2IDcuMi0xNiAxNmwwIDM4NGMwIDguOCA3LjIgMTYgMTYgMTZsMjU2IDBjOC44IDAgMTYtNy4yIDE2LTE2bDAtMjQwLTg4IDBjLTM5LjggMC03Mi0zMi4yLTcyLTcybDAtODh6TTMxNi4xIDE2MEwyMjQgNjcuOSAyMjQgMTM2YzAgMTMuMyAxMC43IDI0IDI0IDI0bDY4LjEgMHpNMCA2NEMwIDI4LjcgMjguNyAwIDY0IDBMMTk3LjUgMGMxNyAwIDMzLjMgNi43IDQ1LjMgMTguN0wzNjUuMyAxNDEuM2MxMiAxMiAxOC43IDI4LjMgMTguNyA0NS4zTDM4NCA0NDhjMCAzNS4zLTI4LjcgNjQtNjQgNjRMNjQgNTEyYy0zNS4zIDAtNjQtMjguNy02NC02NEwwIDY0eiJdfSxLbmU9e3ByZWZpeDoiZmFyIixpY29uTmFtZToiZmFjZS1zYWQtY3J5IixpY29uOls1MTIsNTEyLFsxMjg1NTcsInNhZC1jcnkiXSwiZjViMyIsIk00MDAgNDA2LjFMNDAwIDI4OGMwLTEzLjMtMTAuNy0yNC0yNC0yNHMtMjQgMTAuNy0yNCAyNGwwIDE1Mi42Yy0yOC43IDE1LTYxLjQgMjMuNC05NiAyMy40cy02Ny4zLTguNS05Ni0yMy40TDE2MCAyODhjMC0xMy4zLTEwLjctMjQtMjQtMjRzLTI0IDEwLjctMjQgMjRsMCAxMTguMUM3Mi42IDM2OC4yIDQ4IDMxNSA0OCAyNTYgNDggMTQxLjEgMTQxLjEgNDggMjU2IDQ4czIwOCA5My4xIDIwOCAyMDhjMCA1OS0yNC42IDExMi4yLTY0IDE1MC4xek0yNTYgNTEyYTI1NiAyNTYgMCAxIDAgMC01MTIgMjU2IDI1NiAwIDEgMCAwIDUxMnpNMTUyIDE5NmwxNiAwYzExIDAgMjAgOSAyMCAyMHM5IDIwIDIwIDIwIDIwLTkgMjAtMjBjMC0zMy4xLTI2LjktNjAtNjAtNjBsLTE2IDBjLTMzLjEgMC02MCAyNi45LTYwIDYwIDAgMTEgOSAyMCAyMCAyMHMyMC05IDIwLTIwIDktMjAgMjAtMjB6bTE3MiAyMGMwLTExIDktMjAgMjAtMjBsMTYgMGMxMSAwIDIwIDkgMjAgMjBzOSAyMCAyMCAyMCAyMC05IDIwLTIwYzAtMzMuMS0yNi45LTYwLTYwLTYwbC0xNiAwYy0zMy4xIDAtNjAgMjYuOS02MCA2MCAwIDExIDkgMjAgMjAgMjBzMjAtOSAyMC0yMHpNMjA4IDMzNmwwIDMyYzAgMjYuNSAyMS41IDQ4IDQ4IDQ4czQ4LTIxLjUgNDgtNDhsMC0zMmMwLTI2LjUtMjEuNS00OC00OC00OHMtNDggMjEuNS00OCA0OHoiXX0saGR0PUtuZSxmZHQ9e3ByZWZpeDoiZmFyIixpY29uTmFtZToiY2FsZW5kYXItbWludXMiLGljb246WzQ0OCw1MTIsW10sImYyNzIiLCJNMTIwIDBjMTMuMyAwIDI0IDEwLjcgMjQgMjRsMCA0MCAxNjAgMCAwLTQwYzAtMTMuMyAxMC43LTI0IDI0LTI0czI0IDEwLjcgMjQgMjRsMCA0MCAzMiAwYzM1LjMgMCA2NCAyOC43IDY0IDY0bDAgMjg4YzAgMzUuMy0yOC43IDY0LTY0IDY0TDY0IDQ4MGMtMzUuMyAwLTY0LTI4LjctNjQtNjRMMCAxMjhDMCA5Mi43IDI4LjcgNjQgNjQgNjRsMzIgMCAwLTQwYzAtMTMuMyAxMC43LTI0IDI0LTI0em0wIDExMmwtNTYgMGMtOC44IDAtMTYgNy4yLTE2IDE2bDAgMjg4YzAgOC44IDcuMiAxNiAxNiAxNmwzMjAgMGM4LjggMCAxNi03LjIgMTYtMTZsMC0yODhjMC04LjgtNy4yLTE2LTE2LTE2bC0yNjQgMHptMzIgMTM2bDE0NCAwYzEzLjMgMCAyNCAxMC43IDI0IDI0cy0xMC43IDI0LTI0IDI0bC0xNDQgMGMtMTMuMyAwLTI0LTEwLjctMjQtMjRzMTAuNy0yNCAyNC0yNHoiXX0sZW9lPXtwcmVmaXg6ImZhciIsaWNvbk5hbWU6ImZhY2UtdGlyZWQiLGljb246WzUxMiw1MTIsWzEyODU1NSwidGlyZWQiXSwiZjVjOCIsIk00NjQgMjU2YTIwOCAyMDggMCAxIDAgLTQxNiAwIDIwOCAyMDggMCAxIDAgNDE2IDB6TTAgMjU2YTI1NiAyNTYgMCAxIDEgNTEyIDAgMjU2IDI1NiAwIDEgMSAtNTEyIDB6bTE3Ni41IDY0LjNDMTk2LjEgMzAyLjEgMjIzLjggMjg4IDI1NiAyODhzNTkuOSAxNC4xIDc5LjUgMzIuM2MxOSAxNy44IDMyLjUgNDEuNyAzMi41IDYzLjcgMCA1LjQtMi43IDEwLjQtNy4yIDEzLjRzLTEwLjIgMy40LTE1LjIgMS4zbC0xNy4yLTcuNWMtMjIuOC0xMC00Ny41LTE1LjEtNzIuNC0xNS4xcy00OS42IDUuMi03Mi40IDE1LjFsLTE3LjIgNy41Yy00LjkgMi4yLTEwLjcgMS43LTE1LjItMS4zcy03LjItOC03LjItMTMuNGMwLTIyIDEzLjUtNDUuOSAzMi41LTYzLjd6TTEyMi42IDE1OS4yYzQuNS02LjggMTMuMy05LjIgMjAuNi01LjVsNzkuNiA0MGM1LjQgMi43IDguOCA4LjIgOC44IDE0LjNzLTMuNCAxMS42LTguOCAxNC4zbC03OS42IDQwYy03LjMgMy42LTE2LjEgMS4zLTIwLjYtNS41cy0zLjEtMTUuOSAzLjEtMjEuMUwxNTkgMjA4IDEyNS44IDE4MC4zYy02LjItNS4yLTcuNi0xNC4zLTMuMS0yMS4xem0yNjMuNiAyMS4xTDM1MyAyMDggMzg2LjIgMjM1LjdjNi4yIDUuMiA3LjYgMTQuMyAzLjEgMjEuMXMtMTMuMyA5LjItMjAuNiA1LjVsLTc5LjYtNDBjLTUuNC0yLjctOC44LTguMi04LjgtMTQuM3MzLjQtMTEuNiA4LjgtMTQuM2w3OS42LTQwYzcuMy0zLjYgMTYuMS0xLjMgMjAuNiA1LjVzMy4xIDE1LjktMy4xIDIxLjF6Il19LG1kdD1lb2UsZ2R0PXtwcmVmaXg6ImZhciIsaWNvbk5hbWU6ImhhbmQtcG9pbnQtcmlnaHQiLGljb246WzUxMiw1MTIsW10sImYwYTQiLCJNNDQ4IDEyOGwtMTc3LjYgMGMxIDUuMiAxLjYgMTAuNSAxLjYgMTZsMCAxNiAxNzYgMGM4LjggMCAxNi03LjIgMTYtMTZzLTcuMi0xNi0xNi0xNnpNMjI0IDE0NGMwLTE3LjctMTQuMy0zMi0zMi0zMmwtMjQgMGMtNjYuMyAwLTEyMCA1My43LTEyMCAxMjBsMCA0OGMwIDUyLjUgMzMuNyA5Ny4xIDgwLjcgMTEzLjQtLjUtMy4xLS43LTYuMi0uNy05LjQgMC0yMCA5LjItMzcuOSAyMy42LTQ5LjctNC45LTktNy42LTE5LjQtNy42LTMwLjMgMC0xNS4xIDUuMy0yOSAxNC00MC04LjgtMTEtMTQtMjQuOS0xNC00MGwwLTQwYzAtMTMuMyAxMC43LTI0IDI0LTI0czI0IDEwLjcgMjQgMjRsMCA0MGMwIDguOCA3LjIgMTYgMTYgMTZzMTYtNy4yIDE2LTE2bDAtODB6TTE5MiA2NGwwIDBjMTggMCAzNC42IDYgNDggMTZsMjA4IDBjMzUuMyAwIDY0IDI4LjcgNjQgNjRzLTI4LjcgNjQtNjQgNjRsLTgyIDBjMS4zIDUuMSAyIDEwLjUgMiAxNiAwIDI1LjMtMTQuNyA0Ny4yLTM2IDU3LjYgMi42IDcgNCAxNC41IDQgMjIuNCAwIDIwLTkuMiAzNy45LTIzLjYgNDkuNyA0LjkgOSA3LjYgMTkuNCA3LjYgMzAuMyAwIDM1LjMtMjguNyA2NC02NCA2NGwtODggMEM3NS4yIDQ0OCAwIDM3Mi44IDAgMjgwbDAtNDhDMCAxMzkuMiA3NS4yIDY0IDE2OCA2NGwyNCAwem02NCAzMzZjOC44IDAgMTYtNy4yIDE2LTE2cy03LjItMTYtMTYtMTZsLTY0IDBjLTguOCAwLTE2IDcuMi0xNiAxNnM3LjIgMTYgMTYgMTZsNjQgMHptMTYtMTc2YzAgNS41LS43IDEwLjktMiAxNmwzNCAwYzguOCAwIDE2LTcuMiAxNi0xNnMtNy4yLTE2LTE2LTE2bC0zMiAwIDAgMTZ6bS0yNCA2NGwtNDAgMGMtOC44IDAtMTYgNy4yLTE2IDE2czcuMiAxNiAxNiAxNmw2NCAwYzguOCAwIDE2LTcuMiAxNi0xNnMtNy4yLTE2LTE2LTE2bC0yNCAweiJdfSx0b2U9e3ByZWZpeDoiZmFyIixpY29uTmFtZToiY2lyY2xlLXVwIixpY29uOls1MTIsNTEyLFs2MTQ2NywiYXJyb3ctYWx0LWNpcmNsZS11cCJdLCJmMzViIiwiTTI1NiA0OGEyMDggMjA4IDAgMSAxIDAgNDE2IDIwOCAyMDggMCAxIDEgMC00MTZ6bTAgNDY0YTI1NiAyNTYgMCAxIDAgMC01MTIgMjU2IDI1NiAwIDEgMCAwIDUxMnptMTEuMy0zODcuM2MtNi4yLTYuMi0xNi40LTYuMi0yMi42IDBsLTEwNCAxMDRjLTQuNiA0LjYtNS45IDExLjUtMy41IDE3LjRzOC4zIDkuOSAxNC44IDkuOWw3MiAwIDAgMTA0YzAgMTMuMyAxMC43IDI0IDI0IDI0bDE2IDBjMTMuMyAwIDI0LTEwLjcgMjQtMjRsMC0xMDQgNzIgMGM2LjUgMCAxMi4zLTMuOSAxNC44LTkuOXMxLjEtMTIuOS0zLjUtMTcuNGwtMTA0LTEwNHoiXX0sYmR0PXRvZSx2ZHQ9e3ByZWZpeDoiZmFyIixpY29uTmFtZToiaGFuZC1zY2lzc29ycyIsaWNvbjpbNTEyLDUxMixbXSwiZjI1NyIsIk0uMiAyNzYuM2MtMS4yLTM1LjMgMjYuNC02NSA2MS43LTY2LjJsMy4zLS4xLTguMi0xLjhDMjIuNSAyMDAuNSAuNyAxNjYuMyA4LjMgMTMxLjhTNTAuMiA3NS41IDg0LjcgODMuMmwxNzMgMzguM2MyLjMtMi45IDQuNi01LjcgNy4xLTguNWwxOC40LTIwLjNDMjk5LjkgNzQuNSAzMjMuNSA2NCAzNDguMyA2NGwxMC4yIDBjNTQuMSAwIDEwNC4xIDI4LjcgMTMxLjMgNzUuNGwxLjUgMi42YzEzLjYgMjMuMiAyMC43IDQ5LjcgMjAuNyA3Ni42TDUxMiAzNDRjMCA2Ni4zLTUzLjcgMTIwLTEyMCAxMjBsLTEwNCAwYy0zNS4zIDAtNjQtMjguNy02NC02NCAwLTIuOCAuMi01LjYgLjUtOC4zLTE5LjQtMTEtMzIuNS0zMS44LTMyLjUtNTUuNyAwLS44IDAtMS42IDAtMi40TDY2LjQgMzM4Yy0zNS4zIDEuMi02NS0yNi40LTY2LjItNjEuN3ptNjMuNC0xOC4yYy04LjggLjMtMTUuNyA3LjctMTUuNCAxNi42czcuNyAxNS43IDE2LjUgMTUuNGwxNjEuNS01LjZjOS44LS4zIDE4LjcgNS4zIDIyLjcgMTQuMnMyLjIgMTkuMy00LjUgMjYuNGMtMi44IDIuOS00LjQgNi43LTQuNCAxMSAwIDguOCA3LjIgMTYgMTYgMTYgOS4xIDAgMTcuNCA1LjEgMjEuNSAxMy4zczMuMiAxNy45LTIuMyAyNS4xYy0yIDIuNy0zLjIgNi0zLjIgOS42IDAgOC44IDcuMiAxNiAxNiAxNmwxMDQgMGMzOS44IDAgNzItMzIuMiA3Mi03MmwwLTEyNS40YzAtMTguNC00LjktMzYuNS0xNC4yLTUyLjRsLTEuNS0yLjZjLTE4LjYtMzItNTIuOC01MS42LTg5LjgtNTEuNmwtMTAuMiAwYy0xMS4zIDAtMjIgNC44LTI5LjYgMTMuMWwwIDAtMTguNCAyMC4zYy0uNiAuNi0xLjEgMS4zLTEuNyAxLjlsNTcgMTMuMmM4LjYgMiAxNCAxMC42IDEyIDE5LjJzLTEwLjYgMTQtMTkuMiAxMkwyNjIuOCAxNzEuOCA3NC4zIDEzMGMtOC42LTEuOS0xNy4yIDMuNS0xOS4xIDEyLjJzMy41IDE3LjIgMTIuMiAxOS4xbDE4Ny41IDQxLjZjMTAuMiAyLjMgMTcuOCAxMC45IDE4LjcgMjEuNGwuMSAxYy42IDYuNi0xLjUgMTMuMS01LjggMTguMXMtMTAuNiA3LjktMTcuMiA4LjJMNjMuNiAyNTguMXoiXX0seGR0PXtwcmVmaXg6ImZhciIsaWNvbk5hbWU6ImdlbSIsaWNvbjpbNTEyLDUxMixbMTI4MTQyXSwiZjNhNSIsIk0xNjguNSA3Mmw4Ny41IDkzIDg3LjUtOTMtMTc1IDB6TTM4My45IDk5LjFsLTcyLjMgNzYuOSAxMjkgMC01Ni42LTc2Ljl6bTUwIDEyNC45TDc4LjEgMjI0IDI1NiA0MjAuMyA0MzMuOSAyMjR6TTcxLjUgMTc2bDEyOSAwLTcyLjMtNzYuOS01Ni42IDc2Ljl6bTQzNC4zIDQwLjFsLTIzMiAyNTZjLTQuNSA1LTExIDcuOS0xNy44IDcuOXMtMTMuMi0yLjktMTcuOC03LjlsLTIzMi0yNTZjLTcuNy04LjUtOC4zLTIxLjItMS41LTMwLjRsMTEyLTE1MmM0LjUtNi4xIDExLjctOS44IDE5LjMtOS44bDI0MCAwYzcuNiAwIDE0LjggMy42IDE5LjMgOS44bDExMiAxNTJjNi44IDkuMiA2LjEgMjEuOS0xLjUgMzAuNHoiXX0sd2c9e3ByZWZpeDoiZmFyIixpY29uTmFtZToicmVjdGFuZ2xlLXhtYXJrIixpY29uOls1MTIsNTEyLFs2MjE2NCwicmVjdGFuZ2xlLXRpbWVzIiwidGltZXMtcmVjdGFuZ2xlIiwid2luZG93LWNsb3NlIl0sImY0MTAiLCJNNjQgMTEyYy04LjggMC0xNiA3LjItMTYgMTZsMCAyNTZjMCA4LjggNy4yIDE2IDE2IDE2bDM4NCAwYzguOCAwIDE2LTcuMiAxNi0xNmwwLTI1NmMwLTguOC03LjItMTYtMTYtMTZMNjQgMTEyek0wIDEyOEMwIDkyLjcgMjguNyA2NCA2NCA2NGwzODQgMGMzNS4zIDAgNjQgMjguNyA2NCA2NGwwIDI1NmMwIDM1LjMtMjguNyA2NC02NCA2NEw2NCA0NDhjLTM1LjMgMC02NC0yOC43LTY0LTY0TDAgMTI4em0zMzQuMSA0OS45YzkuNCA5LjQgOS40IDI0LjYgMCAzMy45bC00NC4xIDQ0LjEgNDQuMSA0NC4xYzkuNCA5LjQgOS40IDI0LjYgMCAzMy45cy0yNC42IDkuNC0zMy45IDBsLTQ0LjEtNDQuMS00NC4xIDQ0LjFjLTkuNCA5LjQtMjQuNiA5LjQtMzMuOSAwcy05LjQtMjQuNiAwLTMzLjlsNDQuMS00NC4xLTQ0LjEtNDQuMWMtOS40LTkuNC05LjQtMjQuNiAwLTMzLjlzMjQuNi05LjQgMzMuOSAwbDQ0LjEgNDQuMSA0NC4xLTQ0LjFjOS40LTkuNCAyNC42LTkuNCAzMy45IDB6Il19LHlkdD13Zyx3ZHQ9d2csTWR0PXdnLHpnPXtwcmVmaXg6ImZhciIsaWNvbk5hbWU6InRyYXNoLWNhbiIsaWNvbjpbNDQ4LDUxMixbNjE0NjAsInRyYXNoLWFsdCJdLCJmMmVkIiwiTTE2Ni4yLTE2Yy0xMy4zIDAtMjUuMyA4LjMtMzAgMjAuOEwxMjAgNDggMjQgNDhDMTAuNyA0OCAwIDU4LjcgMCA3MlMxMC43IDk2IDI0IDk2bDQwMCAwYzEzLjMgMCAyNC0xMC43IDI0LTI0cy0xMC43LTI0LTI0LTI0bC05NiAwLTE2LjItNDMuMkMzMDcuMS03LjcgMjk1LjItMTYgMjgxLjgtMTZMMTY2LjItMTZ6TTMyIDE0NGwwIDMwNGMwIDM1LjMgMjguNyA2NCA2NCA2NGwyNTYgMGMzNS4zIDAgNjQtMjguNyA2NC02NGwwLTMwNC00OCAwIDAgMzA0YzAgOC44LTcuMiAxNi0xNiAxNkw5NiA0NjRjLTguOCAwLTE2LTcuMi0xNi0xNmwwLTMwNC00OCAwem0xNjAgNzJjMC0xMy4zLTEwLjctMjQtMjQtMjRzLTI0IDEwLjctMjQgMjRsMCAxNzZjMCAxMy4zIDEwLjcgMjQgMjQgMjRzMjQtMTAuNyAyNC0yNGwwLTE3NnptMTEyIDBjMC0xMy4zLTEwLjctMjQtMjQtMjRzLTI0IDEwLjctMjQgMjRsMCAxNzZjMCAxMy4zIDEwLjcgMjQgMjQgMjRzMjQtMTAuNyAyNC0yNGwwLTE3NnoiXX0sa2R0PXpnLFNkdD17cHJlZml4OiJmYXIiLGljb25OYW1lOiJsaWZlLXJpbmciLGljb246WzUxMiw1MTIsW10sImYxY2QiLCJNMzg1LjEgNDE5LjFDMzQ5LjcgNDQ3LjIgMzA0LjggNDY0IDI1NiA0NjRzLTkzLjctMTYuOC0xMjkuMS00NC45bDgwLjQtODAuNGMxNC4zIDguNCAzMSAxMy4zIDQ4LjggMTMuM3MzNC41LTQuOCA0OC44LTEzLjNsODAuNCA4MC40em02OC4xIC4yQzQ4OS45IDM3NC45IDUxMiAzMTguMSA1MTIgMjU2UzQ4OS45IDEzNy4xIDQ1My4yIDkyLjdMNDY1IDgxYzkuNC05LjQgOS40LTI0LjYgMC0zMy45cy0yNC42LTkuNC0zMy45IDBMNDE5LjMgNTguOEMzNzQuOSAyMi4xIDMxOC4xIDAgMjU2IDBTMTM3LjEgMjIuMSA5Mi43IDU4LjhMODEgNDdjLTkuNC05LjQtMjQuNi05LjQtMzMuOSAwUzM3LjcgNzEuNiA0NyA4MUw1OC44IDkyLjdDMjIuMSAxMzcuMSAwIDE5My45IDAgMjU2UzIyLjEgMzc0LjkgNTguOCA0MTkuM0w0NyA0MzFjLTkuNCA5LjQtOS40IDI0LjYgMCAzMy45czI0LjYgOS40IDMzLjkgMGwxMS44LTExLjhDMTM3LjEgNDg5LjkgMTkzLjkgNTEyIDI1NiA1MTJzMTE4LjktMjIuMSAxNjMuMy01OC44TDQzMSA0NjVjOS40IDkuNCAyNC42IDkuNCAzMy45IDBzOS40LTI0LjYgMC0zMy45bC0xMS44LTExLjh6bS0zNC4xLTM0LjFsLTgwLjQtODAuNGM4LjQtMTQuMyAxMy4zLTMxIDEzLjMtNDguOHMtNC44LTM0LjUtMTMuMy00OC44bDgwLjQtODAuNEM0NDcuMiAxNjIuMyA0NjQgMjA3LjIgNDY0IDI1NnMtMTYuOCA5My43LTQ0LjkgMTI5LjF6TTM4NS4xIDkyLjlsLTgwLjQgODAuNGMtMTQuMy04LjQtMzEtMTMuMy00OC44LTEzLjNzLTM0LjUgNC44LTQ4LjggMTMuM0wxMjYuOSA5Mi45QzE2Mi4zIDY0LjggMjA3LjIgNDggMjU2IDQ4czkzLjcgMTYuOCAxMjkuMSA0NC45ek0xNzMuMyAzMDQuOEw5Mi45IDM4NS4xQzY0LjggMzQ5LjcgNDggMzA0LjggNDggMjU2czE2LjgtOTMuNyA0NC45LTEyOS4xbDgwLjQgODAuNGMtOC40IDE0LjMtMTMuMyAzMS0xMy4zIDQ4LjhzNC44IDM0LjUgMTMuMyA0OC44ek0yMDggMjU2YTQ4IDQ4IDAgMSAxIDk2IDAgNDggNDggMCAxIDEgLTk2IDB6Il19LHpkdD17cHJlZml4OiJmYXIiLGljb25OYW1lOiJjb3B5cmlnaHQiLGljb246WzUxMiw1MTIsWzE2OV0sImYxZjkiLCJNMjU2IDQ4YTIwOCAyMDggMCAxIDEgMCA0MTYgMjA4IDIwOCAwIDEgMSAwLTQxNnptMCA0NjRhMjU2IDI1NiAwIDEgMCAwLTUxMiAyNTYgMjU2IDAgMSAwIDAgNTEyek0yMDUuMSAzMDYuOWMtMjguMS0yOC4xLTI4LjEtNzMuNyAwLTEwMS44czczLjctMjguMSAxMDEuOCAwYzkuNCA5LjQgMjQuNiA5LjQgMzMuOSAwczkuNC0yNC42IDAtMzMuOWMtNDYuOS00Ni45LTEyMi44LTQ2LjktMTY5LjcgMHMtNDYuOSAxMjIuOCAwIDE2OS43IDEyMi44IDQ2LjkgMTY5LjcgMGM5LjQtOS40IDkuNC0yNC42IDAtMzMuOXMtMjQuNi05LjQtMzMuOSAwYy0yOC4xIDI4LjEtNzMuNyAyOC4xLTEwMS44IDB6Il19LHJvZT17cHJlZml4OiJmYXIiLGljb25OYW1lOiJjaXJjbGUtbGVmdCIsaWNvbjpbNTEyLDUxMixbNjE4NDAsImFycm93LWFsdC1jaXJjbGUtbGVmdCJdLCJmMzU5IiwiTTQ4IDI1NmEyMDggMjA4IDAgMSAxIDQxNiAwIDIwOCAyMDggMCAxIDEgLTQxNiAwem00NjQgMGEyNTYgMjU2IDAgMSAwIC01MTIgMCAyNTYgMjU2IDAgMSAwIDUxMiAwek0xMjQuNyAyNDQuN2MtNi4yIDYuMi02LjIgMTYuNCAwIDIyLjZsMTA0IDEwNGM0LjYgNC42IDExLjUgNS45IDE3LjQgMy41czkuOS04LjMgOS45LTE0LjhsMC03MiAxMDQgMGMxMy4zIDAgMjQtMTAuNyAyNC0yNGwwLTE2YzAtMTMuMy0xMC43LTI0LTI0LTI0bC0xMDQgMCAwLTcyYzAtNi41LTMuOS0xMi4zLTkuOS0xNC44cy0xMi45LTEuMS0xNy40IDMuNWwtMTA0IDEwNHoiXX0sQ2R0PXJvZSxUZHQ9e3ByZWZpeDoiZmFyIixpY29uTmFtZToiY2FsZW5kYXIiLGljb246WzQ0OCw1MTIsWzEyODE5NywxMjgxOThdLCJmMTMzIiwiTTEyMCAwYzEzLjMgMCAyNCAxMC43IDI0IDI0bDAgNDAgMTYwIDAgMC00MGMwLTEzLjMgMTAuNy0yNCAyNC0yNHMyNCAxMC43IDI0IDI0bDAgNDAgMzIgMGMzNS4zIDAgNjQgMjguNyA2NCA2NGwwIDI4OGMwIDM1LjMtMjguNyA2NC02NCA2NEw2NCA0ODBjLTM1LjMgMC02NC0yOC43LTY0LTY0TDAgMTI4QzAgOTIuNyAyOC43IDY0IDY0IDY0bDMyIDAgMC00MGMwLTEzLjMgMTAuNy0yNCAyNC0yNHptMCAxMTJsLTU2IDBjLTguOCAwLTE2IDcuMi0xNiAxNmwwIDQ4IDM1MiAwIDAtNDhjMC04LjgtNy4yLTE2LTE2LTE2bC0yNjQgMHpNNDggMjI0bDAgMTkyYzAgOC44IDcuMiAxNiAxNiAxNmwzMjAgMGM4LjggMCAxNi03LjIgMTYtMTZsMC0xOTItMzUyIDB6Il19LGlvZT17cHJlZml4OiJmYXIiLGljb25OYW1lOiJmYWNlLWZyb3duLW9wZW4iLGljb246WzUxMiw1MTIsWzEyODU1MCwiZnJvd24tb3BlbiJdLCJmNTdhIiwiTTQ2NCAyNTZhMjA4IDIwOCAwIDEgMCAtNDE2IDAgMjA4IDIwOCAwIDEgMCA0MTYgMHpNMCAyNTZhMjU2IDI1NiAwIDEgMSA1MTIgMCAyNTYgMjU2IDAgMSAxIC01MTIgMHpNMTgyLjQgMzgyLjVjLTEyLjQgNS4yLTI2LjUtNC4xLTIxLjEtMTYuNCAxNi0zNi42IDUyLjQtNjIuMSA5NC44LTYyLjFzNzguOCAyNS42IDk0LjggNjIuMWM1LjQgMTIuMy04LjcgMjEuNi0yMS4xIDE2LjQtMjIuNC05LjUtNDcuNC0xNC44LTczLjctMTQuOHMtNTEuMyA1LjMtNzMuNyAxNC44ek0xNDQgMjA4YTMyIDMyIDAgMSAxIDY0IDAgMzIgMzIgMCAxIDEgLTY0IDB6bTE5Mi0zMmEzMiAzMiAwIDEgMSAwIDY0IDMyIDMyIDAgMSAxIDAtNjR6Il19LF9kdD1pb2UsYW9lPXtwcmVmaXg6ImZhciIsaWNvbk5hbWU6ImNoYXJ0LWJhciIsaWNvbjpbNTEyLDUxMixbImJhci1jaGFydCJdLCJmMDgwIiwiTTQ4IDU2YzAtMTMuMy0xMC43LTI0LTI0LTI0UzAgNDIuNyAwIDU2TDAgNDAwYzAgNDQuMiAzNS44IDgwIDgwIDgwbDQwOCAwYzEzLjMgMCAyNC0xMC43IDI0LTI0cy0xMC43LTI0LTI0LTI0TDgwIDQzMmMtMTcuNyAwLTMyLTE0LjMtMzItMzJMNDggNTZ6bTEwNCA3MmwyMDggMGMxMy4zIDAgMjQtMTAuNyAyNC0yNHMtMTAuNy0yNC0yNC0yNEwxNTIgODBjLTEzLjMgMC0yNCAxMC43LTI0IDI0czEwLjcgMjQgMjQgMjR6bTAgNjRjLTEzLjMgMC0yNCAxMC43LTI0IDI0czEwLjcgMjQgMjQgMjRsMTQ0IDBjMTMuMyAwIDI0LTEwLjcgMjQtMjRzLTEwLjctMjQtMjQtMjRsLTE0NCAwem0wIDExMmMtMTMuMyAwLTI0IDEwLjctMjQgMjRzMTAuNyAyNCAyNCAyNGwyNzIgMGMxMy4zIDAgMjQtMTAuNyAyNC0yNHMtMTAuNy0yNC0yNC0yNGwtMjcyIDB6Il19LExkdD1hb2UsTWc9e3ByZWZpeDoiZmFyIixpY29uTmFtZToiaG91c2UiLGljb246WzUxMiw1MTIsWzEyNzk2OCw2MzQ5OCw2MzUwMCwiaG9tZSIsImhvbWUtYWx0IiwiaG9tZS1sZy1hbHQiXSwiZjAxNSIsIk0yNDAgNi4xYzkuMS04LjIgMjIuOS04LjIgMzIgMGwyMzIgMjA4YzkuOSA4LjggMTAuNyAyNCAxLjggMzMuOXMtMjQgMTAuNy0zMy45IDEuOGwtOC03LjIgMCAyMDUuM2MwIDM1LjMtMjguNyA2NC02NCA2NGwtMjg4IDBjLTM1LjMgMC02NC0yOC43LTY0LTY0bDAtMjA1LjMtOCA3LjJjLTkuOSA4LjgtMjUgOC0zMy45LTEuOHMtOC0yNSAxLjgtMzMuOUwyNDAgNi4xem0xNiA1MC4xTDk2IDE5OS43IDk2IDQ0OGMwIDguOCA3LjIgMTYgMTYgMTZsNDggMCAwLTEwNGMwLTM5LjggMzIuMi03MiA3Mi03Mmw0OCAwYzM5LjggMCA3MiAzMi4yIDcyIDcybDAgMTA0IDQ4IDBjOC44IDAgMTYtNy4yIDE2LTE2bDAtMjQ4LjMtMTYwLTE0My40ek0yMDggNDY0bDk2IDAgMC0xMDRjMC0xMy4zLTEwLjctMjQtMjQtMjRsLTQ4IDBjLTEzLjMgMC0yNCAxMC43LTI0IDI0bDAgMTA0eiJdfSxBZHQ9TWcsRGR0PU1nLEVkdD1NZyxub2U9e3ByZWZpeDoiZmFyIixpY29uTmFtZToiZmFjZS1mcm93biIsaWNvbjpbNTEyLDUxMixbOTc4NSwiZnJvd24iXSwiZjExOSIsIk00NjQgMjU2YTIwOCAyMDggMCAxIDAgLTQxNiAwIDIwOCAyMDggMCAxIDAgNDE2IDB6TTAgMjU2YTI1NiAyNTYgMCAxIDEgNTEyIDAgMjU2IDI1NiAwIDEgMSAtNTEyIDB6TTMzNC43IDM4NC42QzMxOS43IDM2OSAyOTMuNiAzNTIgMjU2IDM1MnMtNjMuNyAxNy03OC43IDMyLjZjLTkuMiA5LjYtMjQuNCA5LjktMzMuOSAuN3MtOS45LTI0LjQtLjctMzMuOWMyMi4xLTIzIDYwLTQ3LjQgMTEzLjMtNDcuNHM5MS4yIDI0LjQgMTEzLjMgNDcuNGM5LjIgOS42IDguOSAyNC44LS43IDMzLjlzLTI0LjggOC45LTMzLjktLjd6TTE0NCAyMDhhMzIgMzIgMCAxIDEgNjQgMCAzMiAzMiAwIDEgMSAtNjQgMHptMTkyLTMyYTMyIDMyIDAgMSAxIDAgNjQgMzIgMzIgMCAxIDEgMC02NHoiXX0sJGR0PW5vZSxVQT17cHJlZml4OiJmYXIiLGljb25OYW1lOiJ1c2VyIixpY29uOls0NDgsNTEyLFsxMjgxMDAsNjIxNDQsNjI0NzAsInVzZXItYWx0IiwidXNlci1sYXJnZSJdLCJmMDA3IiwiTTE0NCAxMjhhODAgODAgMCAxIDEgMTYwIDAgODAgODAgMCAxIDEgLTE2MCAwem0yMDggMGExMjggMTI4IDAgMSAwIC0yNTYgMCAxMjggMTI4IDAgMSAwIDI1NiAwek00OCA0ODBjMC03MC43IDU3LjMtMTI4IDEyOC0xMjhsOTYgMGM3MC43IDAgMTI4IDU3LjMgMTI4IDEyOGwwIDhjMCAxMy4zIDEwLjcgMjQgMjQgMjRzMjQtMTAuNyAyNC0yNGwwLThjMC05Ny4yLTc4LjgtMTc2LTE3Ni0xNzZsLTk2IDBDNzguOCAzMDQgMCAzODIuOCAwIDQ4MGwwIDhjMCAxMy4zIDEwLjcgMjQgMjQgMjRzMjQtMTAuNyAyNC0yNGwwLTh6Il19LElkdD1VQSxQZHQ9VUEsTmR0PXtwcmVmaXg6ImZhciIsaWNvbk5hbWU6InNub3dmbGFrZSIsaWNvbjpbNTEyLDUxMixbMTAwNTIsMTAwNTRdLCJmMmRjIiwiTTI4MC4xLThjMC0xMy4zLTEwLjctMjQtMjQtMjRzLTI0IDEwLjctMjQgMjRsMCA3OC4xLTIzLTIzYy05LjQtOS40LTI0LjYtOS40LTMzLjkgMHMtOS40IDI0LjYgMCAzMy45bDU3IDU3IDAgNzYuNS02Ni4yLTM4LjItMjAuOS03Ny44Yy0zLjQtMTIuOC0xNi42LTIwLjQtMjkuNC0xN1M5NS4yIDk4IDk4LjcgMTEwLjhsOC40IDMxLjUtNjcuNi0zOUMyOCA5Ni42IDEzLjMgMTAwLjUgNi43IDExMlM0IDEzOC4yIDE1LjUgMTQ0LjhsNjcuNiAzOS0zMS41IDguNGMtMTIuOCAzLjQtMjAuNCAxNi42LTE3IDI5LjRzMTYuNiAyMC40IDI5LjQgMTdsNzcuOC0yMC45IDY2LjIgMzguMi02Ni4yIDM4LjItNzcuOC0yMC45Yy0xMi44LTMuNC0yNiA0LjItMjkuNCAxN3M0LjIgMjYgMTcgMjkuNGwzMS41IDguNC02Ny42IDM5QzQgMzczLjggLjEgMzg4LjUgNi43IDQwMHMyMS4zIDE1LjQgMzIuOCA4LjhsNjcuNi0zOS04LjQgMzEuNWMtMy40IDEyLjggNC4yIDI2IDE3IDI5LjRzMjYtNC4yIDI5LjQtMTdsMjAuOS03Ny44IDY2LjItMzguMiAwIDc2LjUtNTcgNTdjLTkuNCA5LjQtOS40IDI0LjYgMCAzMy45czI0LjYgOS40IDMzLjkgMGwyMy0yMyAwIDc4LjFjMCAxMy4zIDEwLjcgMjQgMjQgMjRzMjQtMTAuNyAyNC0yNGwwLTc4LjEgMjMgMjNjOS40IDkuNCAyNC42IDkuNCAzMy45IDBzOS40LTI0LjYgMC0zMy45bC01Ny01NyAwLTc2LjUgNjYuMiAzOC4yIDIwLjkgNzcuOGMzLjQgMTIuOCAxNi42IDIwLjQgMjkuNCAxN3MyMC40LTE2LjYgMTctMjkuNGwtOC40LTMxLjUgNjcuNiAzOWMxMS41IDYuNiAyNi4yIDIuNyAzMi44LTguOHMyLjctMjYuMi04LjgtMzIuOGwtNjcuNi0zOSAzMS41LTguNGMxMi44LTMuNCAyMC40LTE2LjYgMTctMjkuNHMtMTYuNi0yMC40LTI5LjQtMTdsLTc3LjggMjAuOS02Ni4yLTM4LjIgNjYuMi0zOC4yIDc3LjggMjAuOWMxMi44IDMuNCAyNi00LjIgMjkuNC0xN3MtNC4yLTI2LTE3LTI5LjRsLTMxLjUtOC40IDY3LjYtMzljMTEuNS02LjYgMTUuNC0yMS4zIDguOC0zMi44cy0yMS4zLTE1LjQtMzIuOC04LjhsLTY3LjYgMzkgOC40LTMxLjVjMy40LTEyLjgtNC4yLTI2LTE3LTI5LjRzLTI2IDQuMi0yOS40IDE3bC0yMC45IDc3LjgtNjYuMiAzOC4yIDAtNzYuNSA1Ny01N2M5LjQtOS40IDkuNC0yNC42IDAtMzMuOXMtMjQuNi05LjQtMzMuOSAwbC0yMyAyMyAwLTc4LjF6Il19LEZkdD17cHJlZml4OiJmYXIiLGljb25OYW1lOiJib29rbWFyayIsaWNvbjpbMzg0LDUxMixbMTI4Mjc4LDYxNTkxXSwiZjAyZSIsIk0wIDY0QzAgMjguNyAyOC43IDAgNjQgMEwzMjAgMGMzNS4zIDAgNjQgMjguNyA2NCA2NGwwIDQxNy4xYzAgMjUuNi0yOC41IDQwLjgtNDkuOCAyNi42TDE5MiA0MTIuOCA0OS44IDUwNy43QzI4LjUgNTIxLjkgMCA1MDYuNiAwIDQ4MS4xTDAgNjR6TTY0IDQ4Yy04LjggMC0xNiA3LjItMTYgMTZsMCAzODcuMiAxMTcuNC03OC4yYzE2LjEtMTAuNyAzNy4xLTEwLjcgNTMuMiAwTDMzNiA0NTEuMiAzMzYgNjRjMC04LjgtNy4yLTE2LTE2LTE2TDY0IDQ4eiJdfSxvb2U9e3ByZWZpeDoiZmFyIixpY29uTmFtZToic3F1YXJlLWNhcmV0LWxlZnQiLGljb246WzQ0OCw1MTIsWyJjYXJldC1zcXVhcmUtbGVmdCJdLCJmMTkxIiwiTTQ4IDQxNmMwIDguOCA3LjIgMTYgMTYgMTZsMzIwIDBjOC44IDAgMTYtNy4yIDE2LTE2bDAtMzIwYzAtOC44LTcuMi0xNi0xNi0xNkw2NCA4MGMtOC44IDAtMTYgNy4yLTE2IDE2bDAgMzIwem0xNiA2NGMtMzUuMyAwLTY0LTI4LjctNjQtNjRMMCA5NkMwIDYwLjcgMjguNyAzMiA2NCAzMmwzMjAgMGMzNS4zIDAgNjQgMjguNyA2NCA2NGwwIDMyMGMwIDM1LjMtMjguNyA2NC02NCA2NEw2NCA0ODB6bTY0LTIyNGMwLTYuNyAyLjgtMTMgNy43LTE3LjZsMTEyLTEwNGM3LTYuNSAxNy4yLTguMiAyNS45LTQuNFMyODggMTQyLjUgMjg4IDE1MmwwIDIwOGMwIDkuNS01LjcgMTguMi0xNC40IDIycy0xOC45IDIuMS0yNS45LTQuNGwtMTEyLTEwNGMtNC45LTQuNS03LjctMTAuOS03LjctMTcuNnoiXX0sT2R0PW9vZSxXQT17cHJlZml4OiJmYXIiLGljb25OYW1lOiJoYW5kc2hha2UiLGljb246WzY0MCw1MTIsWzEyOTMwOSw2MjY2MiwiaGFuZHNoYWtlLWFsdCIsImhhbmRzaGFrZS1zaW1wbGUiXSwiZjJiNSIsIk01OTguMSA3NS40YzEwLjctNy44IDEzLjEtMjIuOCA1LjMtMzMuNXMtMjIuOC0xMy4xLTMzLjUtNS4zbC03NC41IDU0LjItOS45LTYuNkM0NjUuOCA3MSA0NDIuNiA2NCA0MTguOSA2NGwtNTkuMiAwLS40IDAtMTQzLjYgMGMtMjYuNyAwLTUyLjUgOC45LTczLjQgMjUuMUw3MC4xIDM2LjZjLTEwLjctNy44LTI1LjctNS40LTMzLjUgNS4zcy01LjQgMjUuNyA1LjMgMzMuNWw4OCA2NGM5LjYgNi45IDIyLjcgNS45IDMxLjEtMi40bDMuOS0zLjljMTMuNS0xMy41IDMxLjgtMjEuMSA1MC45LTIxLjFsNDYuMyAwLTkxLjcgOTEuN2MtMTUuNiAxNS42LTE1LjYgNDAuOSAwIDU2LjZsLjggLjhDMjE4IDMwOCAyOTQgMzA4IDM0MC45IDI2MS4xbDI3LjEtMjcuMSA5Ny44IDk3LjhjMTUuNiAxNS42IDE1LjYgNDAuOSAwIDU2LjZsLTkuOCA5LjgtMzEtMzFjLTkuNC05LjQtMjQuNi05LjQtMzMuOSAwcy05LjQgMjQuNiAwIDMzLjlsMjggMjhjLTE3LjUgMTAuNC0zNy4yIDE2LjctNTcuNiAxOC41TDMxMyAzOTljLTkuNC05LjQtMjQuNi05LjQtMzMuOSAwcy05LjQgMjQuNiAwIDMzLjlsMTUgMTUtMy44IDBjLTM2LjEgMC03MC43LTE0LjMtOTYuMi0zOS44TDY1IDI3OWMtOS40LTkuNC0yNC42LTkuNC0zMy45IDBzLTkuNCAyNC42IDAgMzMuOUwxNjAuMiA0NDIuMWMzNC41IDM0LjUgODEuMyA1My45IDEzMC4xIDUzLjlsNTEuOCAwIDEgMSAxLTEgNS43IDBjNDguOCAwIDk1LjYtMTkuNCAxMzAuMS01My45bDE5LjktMTkuOWMxLjItMS4yIDIuMy0yLjMgMy40LTMuNSAuNy0uNSAxLjMtMS4xIDEuOS0xLjdMNjA5IDMxM2M5LjQtOS40IDkuNC0yNC42IDAtMzMuOXMtMjQuNi05LjQtMzMuOSAwbC01My44IDUzLjhjLTQuMi0xMi44LTExLjMtMjQuOS0yMS41LTM1LjFMMzg1IDE4M2MtOS40LTkuNC0yNC42LTkuNC0zMy45IDBsLTQ0LjEgNDQuMWMtMjYuNSAyNi41LTY4LjUgMjgtOTYuNyA0LjZsOTguNy05OC43YzEzLjQtMTMuNCAzMS42LTIxIDUwLjYtMjEuMWw4LjUgMCAuMiAwIDUwLjggMGMxNC4yIDAgMjguMSA0LjIgMzkuOSAxMi4xTDQ4Mi43IDE0MGM4LjQgNS42IDE5LjMgNS4zIDI3LjQtLjZsODgtNjR6Il19LFJkdD1XQSxCZHQ9V0Esc29lPXtwcmVmaXg6ImZhciIsaWNvbk5hbWU6ImZhY2Utc21pbGUtd2luayIsaWNvbjpbNTEyLDUxMixbMTI4NTIxLCJzbWlsZS13aW5rIl0sImY0ZGEiLCJNNDY0IDI1NmEyMDggMjA4IDAgMSAwIC00MTYgMCAyMDggMjA4IDAgMSAwIDQxNiAwek0wIDI1NmEyNTYgMjU2IDAgMSAxIDUxMiAwIDI1NiAyNTYgMCAxIDEgLTUxMiAwem0xNzcuMyA2My40QzE5Mi4zIDMzNSAyMTguNCAzNTIgMjU2IDM1MnM2My43LTE3IDc4LjctMzIuNmM5LjItOS42IDI0LjQtOS45IDMzLjktLjdzOS45IDI0LjQgLjcgMzMuOWMtMjIuMSAyMy02MCA0Ny40LTExMy4zIDQ3LjRzLTkxLjItMjQuNC0xMTMuMy00Ny40Yy05LjItOS42LTguOS0yNC44IC43LTMzLjlzMjQuOC04LjkgMzMuOSAuN3pNMTQ0IDIwOGEzMiAzMiAwIDEgMSA2NCAwIDMyIDMyIDAgMSAxIC02NCAwem0xNjQgOGMwIDExLTkgMjAtMjAgMjBzLTIwLTktMjAtMjBjMC0zMy4xIDI2LjktNjAgNjAtNjBsMTYgMGMzMy4xIDAgNjAgMjYuOSA2MCA2MCAwIDExLTkgMjAtMjAgMjBzLTIwLTktMjAtMjAtOS0yMC0yMC0yMGwtMTYgMGMtMTEgMC0yMCA5LTIwIDIweiJdfSxIZHQ9c29lLGxvZT17cHJlZml4OiJmYXIiLGljb25OYW1lOiJmYWNlLWdyaW4tc3F1aW50LXRlYXJzIixpY29uOls1MTIsNTEyLFsxMjkzMTUsImdyaW4tc3F1aW50LXRlYXJzIl0sImY1ODYiLCJNNDAzLjEgNDAzLjFjNjcuMi02Ny4yIDc4LjgtMTY4LjkgMzQuOS0yNDhsMzYuNy01LjJjNC41LS42IDguOC0xLjYgMTMuMS0yLjggNDQuNiA5NC45IDI3LjcgMjExLjUtNTAuNyAyOTBzLTE5NS4xIDk1LjMtMjkwIDUwLjdjMS4yLTQuMiAyLjEtOC42IDIuOC0xMy4xbDUuMi0zNi43Yzc5LjEgNDMuOSAxODAuOCAzMi4zIDI0OC0zNC45ek03NSA3NWM3OC40LTc4LjQgMTk1LjEtOTUuMyAyOTAtNTAuNy0xLjIgNC4yLTIuMSA4LjYtMi44IDEzLjFsLTUuMiAzNi43Yy03OS4xLTQzLjktMTgwLjgtMzIuMy0yNDggMzQuOXMtNzguOCAxNjguOS0zNC45IDI0OGwtMzYuNyA1LjJjLTQuNSAuNi04LjggMS42LTEzLjEgMi44LTQ0LjYtOTQuOS0yNy43LTIxMS41IDUwLjctMjkwek0zNzAuOSAyMDYuNWM1LjgtMTAuOSAyMS4xLTEyLjQgMjYuNC0xLjMgMjUuNiA1My41IDE2LjIgMTE5LjYtMjguMiAxNjMuOS00NC4zIDQ0LjMtMTEwLjMgNTMuNy0xNjMuOCAyOC4yLTExLjEtNS4zLTkuNi0yMC42IDEuMy0yNi40IDMyLTE3LjEgNjQuMi00MC44IDkzLjgtNzAuNCAyOS43LTI5LjcgNTMuNC02MS45IDcwLjUtOTR6TTkzLjMgMjgxLjljLTEuNy04IDIuOS0xNS45IDEwLjYtMTguNGw4NC42LTI4YzUuNy0xLjkgMTIuMS0uNCAxNi4zIDMuOXM1LjggMTAuNiAzLjkgMTYuM2wtMjggODQuNmMtMi42IDcuNy0xMC41IDEyLjMtMTguNCAxMC42cy0xMy40LTktMTIuNy0xNy4xbDMuOS00My4xLTQzLjEgMy45Yy04LjEgLjctMTUuNS00LjctMTcuMS0xMi43ek0yOTQuNiAxMTAuNGwtMy45IDQzLjEgNDMuMS0zLjljOC4xLS43IDE1LjUgNC43IDE3LjEgMTIuN3MtMi45IDE1LjktMTAuNiAxOC40bC04NC42IDI4Yy01LjcgMS45LTEyLjEgLjQtMTYuMy0zLjlzLTUuOC0xMC42LTMuOS0xNi4zbDI4LTg0LjZjMi42LTcuNyAxMC41LTEyLjMgMTguNC0xMC42czEzLjQgOSAxMi43IDE3LjF6TTUxMiA1MS40YzAgMjUuNi0xOC44IDQ3LjMtNDQuMSA1MC45TDQyMS4xIDEwOWMtMTAuNiAxLjUtMTkuNi03LjUtMTguMS0xOC4xbDYuNy00Ni43QzQxMy4zIDE4LjggNDM1IDAgNDYwLjYgMCA0ODkgMCA1MTIgMjMgNTEyIDUxLjR6TTQ0LjEgNDA5LjdMOTAuOSA0MDNjMTAuNi0xLjUgMTkuNiA3LjUgMTguMSAxOC4xbC02LjcgNDYuN0M5OC43IDQ5My4yIDc3IDUxMiA1MS40IDUxMiAyMyA1MTIgMCA0ODkgMCA0NjAuNiAwIDQzNSAxOC44IDQxMy4zIDQ0LjEgNDA5Ljd6Il19LHFkdD1sb2UsamR0PXtwcmVmaXg6ImZhciIsaWNvbk5hbWU6ImZpbGUtYXVkaW8iLGljb246WzM4NCw1MTIsW10sImYxYzciLCJNNjQgNDhsMTEyIDAgMCA4OGMwIDM5LjggMzIuMiA3MiA3MiA3Mmw4OCAwIDAgMjQwYzAgOC44LTcuMiAxNi0xNiAxNkw2NCA0NjRjLTguOCAwLTE2LTcuMi0xNi0xNkw0OCA2NGMwLTguOCA3LjItMTYgMTYtMTZ6TTIyNCA2Ny45bDkyLjEgOTIuMS02OC4xIDBjLTEzLjMgMC0yNC0xMC43LTI0LTI0bDAtNjguMXpNNjQgMEMyOC43IDAgMCAyOC43IDAgNjRMMCA0NDhjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMjU2IDBjMzUuMyAwIDY0LTI4LjcgNjQtNjRsMC0yNjEuNWMwLTE3LTYuNy0zMy4zLTE4LjctNDUuM0wyNDIuNyAxOC43QzIzMC43IDYuNyAyMTQuNSAwIDE5Ny41IDBMNjQgMHpNMjIxLjkgMjY3LjZjLTQuNyAxMC0uMyAyMS45IDkuNyAyNi42IDE5LjIgOC45IDMyLjQgMjguMyAzMi40IDUwLjhzLTEzLjIgNDEuOS0zMi40IDUwLjhjLTEwIDQuNy0xNC40IDE2LjYtOS43IDI2LjZzMTYuNiAxNC40IDI2LjYgOS43QzI4MS4yIDQxNi44IDMwNCAzODMuNiAzMDQgMzQ1cy0yMi44LTcxLjktNTUuNi04Ny4xYy0xMC00LjctMjEuOS0uMy0yNi42IDkuN3pNMTA0IDMwNWMtMTMuMyAwLTI0IDEwLjctMjQgMjRsMCAzMmMwIDEzLjMgMTAuNyAyNCAyNCAyNGwxNiAwIDI3LjIgMzRjMyAzLjggNy42IDYgMTIuNSA2bC4zIDBjOC44IDAgMTYtNy4yIDE2LTE2bDAtMTI4YzAtOC44LTcuMi0xNi0xNi0xNmwtLjMgMGMtNC45IDAtOS41IDIuMi0xMi41IDZsLTI3LjIgMzQtMTYgMHpNMjIzLjMgMzczYzkuOS01LjQgMTYuNy0xNiAxNi43LTI4LjFzLTYuNy0yMi43LTE2LjctMjguMWMtNy44LTQuMi0xNS4zIDMuMy0xNS4zIDEyLjFsMCAzMmMwIDguOCA3LjYgMTYuMyAxNS4zIDEyLjF6Il19LGNvZT17cHJlZml4OiJmYXIiLGljb25OYW1lOiJjYWxlbmRhci14bWFyayIsaWNvbjpbNDQ4LDUxMixbImNhbGVuZGFyLXRpbWVzIl0sImYyNzMiLCJNMTIwIDBjMTMuMyAwIDI0IDEwLjcgMjQgMjRsMCA0MCAxNjAgMCAwLTQwYzAtMTMuMyAxMC43LTI0IDI0LTI0czI0IDEwLjcgMjQgMjRsMCA0MCAzMiAwYzM1LjMgMCA2NCAyOC43IDY0IDY0bDAgMjg4YzAgMzUuMy0yOC43IDY0LTY0IDY0TDY0IDQ4MGMtMzUuMyAwLTY0LTI4LjctNjQtNjRMMCAxMjhDMCA5Mi43IDI4LjcgNjQgNjQgNjRsMzIgMCAwLTQwYzAtMTMuMyAxMC43LTI0IDI0LTI0em0wIDExMmwtNTYgMGMtOC44IDAtMTYgNy4yLTE2IDE2bDAgMjg4YzAgOC44IDcuMiAxNiAxNiAxNmwzMjAgMGM4LjggMCAxNi03LjIgMTYtMTZsMC0yODhjMC04LjgtNy4yLTE2LTE2LTE2bC0yNjQgMHptMTcxLjkgOTIuMWM5LjQgOS40IDkuNCAyNC42IDAgMzMuOWwtMzMuOSAzMy45IDMzLjkgMzMuOWM5LjQgOS40IDkuNCAyNC42IDAgMzMuOXMtMjQuNiA5LjQtMzMuOSAwbC0zMy45LTMzLjktMzMuOSAzMy45Yy05LjQgOS40LTI0LjYgOS40LTMzLjkgMHMtOS40LTI0LjYgMC0zMy45bDMzLjktMzMuOS0zMy45LTMzLjljLTkuNC05LjQtOS40LTI0LjYgMC0zMy45czI0LjYtOS40IDMzLjkgMGwzMy45IDMzLjkgMzMuOS0zMy45YzkuNC05LjQgMjQuNi05LjQgMzMuOSAweiJdfSxWZHQ9Y29lLGRvZT17cHJlZml4OiJmYXIiLGljb25OYW1lOiJjaXJjbGUtZG93biIsaWNvbjpbNTEyLDUxMixbNjE0NjYsImFycm93LWFsdC1jaXJjbGUtZG93biJdLCJmMzU4IiwiTTI1NiA0NjRhMjA4IDIwOCAwIDEgMSAwLTQxNiAyMDggMjA4IDAgMSAxIDAgNDE2ek0yNTYgMGEyNTYgMjU2IDAgMSAwIDAgNTEyIDI1NiAyNTYgMCAxIDAgMC01MTJ6TTI0NC43IDM4Ny4zYzYuMiA2LjIgMTYuNCA2LjIgMjIuNiAwbDEwNC0xMDRjNC42LTQuNiA1LjktMTEuNSAzLjUtMTcuNFMzNjYuNSAyNTYgMzYwIDI1NmwtNzIgMCAwLTEwNGMwLTEzLjMtMTAuNy0yNC0yNC0yNGwtMTYgMGMtMTMuMyAwLTI0IDEwLjctMjQgMjRsMCAxMDQtNzIgMGMtNi41IDAtMTIuMyAzLjktMTQuOCA5LjlzLTEuMSAxMi45IDMuNSAxNy40bDEwNCAxMDR6Il19LFVkdD1kb2UsR0E9e3ByZWZpeDoiZmFyIixpY29uTmFtZToiZmlsZS1saW5lcyIsaWNvbjpbMzg0LDUxMixbMTI4NDQxLDEyODQ2Miw2MTY4NiwiZmlsZS1hbHQiLCJmaWxlLXRleHQiXSwiZjE1YyIsIk02NCA0OGwxMTIgMCAwIDg4YzAgMzkuOCAzMi4yIDcyIDcyIDcybDg4IDAgMCAyNDBjMCA4LjgtNy4yIDE2LTE2IDE2TDY0IDQ2NGMtOC44IDAtMTYtNy4yLTE2LTE2TDQ4IDY0YzAtOC44IDcuMi0xNiAxNi0xNnpNMjI0IDY3LjlsOTIuMSA5Mi4xLTY4LjEgMGMtMTMuMyAwLTI0LTEwLjctMjQtMjRsMC02OC4xek02NCAwQzI4LjcgMCAwIDI4LjcgMCA2NEwwIDQ0OGMwIDM1LjMgMjguNyA2NCA2NCA2NGwyNTYgMGMzNS4zIDAgNjQtMjguNyA2NC02NGwwLTI2MS41YzAtMTctNi43LTMzLjMtMTguNy00NS4zTDI0Mi43IDE4LjdDMjMwLjcgNi43IDIxNC41IDAgMTk3LjUgMEw2NCAwem01NiAyNTZjLTEzLjMgMC0yNCAxMC43LTI0IDI0czEwLjcgMjQgMjQgMjRsMTQ0IDBjMTMuMyAwIDI0LTEwLjcgMjQtMjRzLTEwLjctMjQtMjQtMjRsLTE0NCAwem0wIDk2Yy0xMy4zIDAtMjQgMTAuNy0yNCAyNHMxMC43IDI0IDI0IDI0bDE0NCAwYzEzLjMgMCAyNC0xMC43IDI0LTI0cy0xMC43LTI0LTI0LTI0bC0xNDQgMHoiXX0sV2R0PUdBLEdkdD1HQSxZZHQ9e3ByZWZpeDoiZmFyIixpY29uTmFtZToiY29tbWVudHMiLGljb246WzU3Niw1MTIsWzEyODQ5MCw2MTY3MF0sImYwODYiLCJNNzYuMiAyNTguN2M2LjEtMTUuMiA0LTMyLjYtNS42LTQ1LjktMTQuNS0yMC4xLTIyLjYtNDMuNy0yMi42LTY4LjggMC02Ni44IDYwLjUtMTI4IDE0NC0xMjhzMTQ0IDYxLjIgMTQ0IDEyOC02MC41IDEyOC0xNDQgMTI4Yy0xNS45IDAtMzEuMS0yLjMtNDUuMy02LjUtMTAuMy0zLjEtMjEuNC0yLjUtMzEuNCAxLjVsLTUwLjQgMjAuMiAxMS40LTI4LjV6TTAgMTQ0YzAgMzUuOCAxMS42IDY5LjEgMzEuNyA5Ni44TDEuOSAzMTUuMmMtMS4zIDMuMi0xLjkgNi42LTEuOSAxMCAwIDE0LjggMTIgMjYuOCAyNi44IDI2LjggMy40IDAgNi44LS43IDEwLTEuOWw5Ni4zLTM4LjVjMTguNiA1LjUgMzguNCA4LjQgNTguOSA4LjQgMTA2IDAgMTkyLTc4LjggMTkyLTE3NlMyOTgtMzIgMTkyLTMyIDAgNDYuOCAwIDE0NHpNMzg0IDUxMmMyMC42IDAgNDAuMy0zIDU4LjktOC40bDk2LjMgMzguNWMzLjIgMS4zIDYuNiAxLjkgMTAgMS45IDE0LjggMCAyNi44LTEyIDI2LjgtMjYuOCAwLTMuNC0uNy02LjgtMS45LTEwbC0yOS43LTc0LjRjMjAtMjcuOCAzMS43LTYxLjEgMzEuNy05Ni44IDAtODIuNC02MS43LTE1MS41LTE0NS0xNzAuNy0xLjYgMTYuMy01LjEgMzEuOS0xMC4xIDQ2LjkgNjMuOSAxNC44IDEwNy4yIDY3LjMgMTA3LjIgMTIzLjkgMCAyNS4xLTguMSA0OC43LTIyLjYgNjguOC05LjYgMTMuMy0xMS43IDMwLjYtNS42IDQ1LjlsMTEuNCAyOC41LTUwLjQtMjAuMmMtMTAtNC0yMS4xLTQuNS0zMS40LTEuNS0xNC4yIDQuMi0yOS40IDYuNS00NS4zIDYuNS03Mi4yIDAtMTI3LjEtNDUuNy0xNDAuNy0xMDEuMi0xNS42IDMuMi0zMS43IDUtNDguMSA1LjIgMTYuNCA4MS45IDk0LjcgMTQ0IDE4OC44IDE0NHoiXX0sQ2c9e3ByZWZpeDoiZmFyIixpY29uTmFtZToiY2lyY2xlLWNoZWNrIixpY29uOls1MTIsNTEyLFs2MTUzMywiY2hlY2stY2lyY2xlIl0sImYwNTgiLCJNMjU2IDUxMmEyNTYgMjU2IDAgMSAxIDAtNTEyIDI1NiAyNTYgMCAxIDEgMCA1MTJ6bTAtNDY0YTIwOCAyMDggMCAxIDAgMCA0MTYgMjA4IDIwOCAwIDEgMCAwLTQxNnptNzAuNyAxMjEuOWM3LjgtMTAuNyAyMi44LTEzLjEgMzMuNS01LjMgMTAuNyA3LjggMTMuMSAyMi44IDUuMyAzMy41TDI0My40IDM2Ni4xYy00LjEgNS43LTEwLjUgOS4zLTE3LjUgOS44LTcgLjUtMTMuOS0yLTE4LjgtNi45bC01NS45LTU1LjljLTkuNC05LjQtOS40LTI0LjYgMC0zMy45czI0LjYtOS40IDMzLjkgMGwzNiAzNiAxMDUuNi0xNDUuMnoiXX0sWmR0PUNnLFhkdD17cHJlZml4OiJmYXIiLGljb25OYW1lOiJtb29uIixpY29uOls1MTIsNTEyLFsxMjc3NjksOTIxNF0sImYxODYiLCJNMjM5LjMgNDguN2MtMTA3LjEgOC41LTE5MS4zIDk4LjEtMTkxLjMgMjA3LjMgMCAxMTQuOSA5My4xIDIwOCAyMDggMjA4IDMzLjMgMCA2NC43LTcuOCA5Mi42LTIxLjctMTAzLjQtMjMuNC0xODAuNi0xMTUuOC0xODAuNi0yMjYuMyAwLTY1LjggMjcuNC0xMjUuMSA3MS4zLTE2Ny4zek0wIDI1NmMwLTE0MS40IDExNC42LTI1NiAyNTYtMjU2IDE5LjQgMCAzOC40IDIuMiA1Ni43IDYuMyA5LjkgMi4yIDE3LjMgMTAuNSAxOC41IDIwLjVzLTQgMTkuOC0xMy4xIDI0LjRjLTYwLjYgMzAuMi0xMDIuMSA5Mi43LTEwMi4xIDE2NC44IDAgMTAxLjYgODIuNCAxODQgMTg0IDE4NCA1IDAgOS45LS4yIDE0LjgtLjYgMTAuMS0uOCAxOS42IDQuOCAyMy44IDE0LjFzMiAyMC4xLTUuMyAyNy4xQzM4Ny4zIDQ4NC44IDMyNC44IDUxMiAyNTYgNTEyIDExNC42IDUxMiAwIDM5Ny40IDAgMjU2eiJdfSxRZHQ9e3ByZWZpeDoiZmFyIixpY29uTmFtZToiY2xvc2VkLWNhcHRpb25pbmciLGljb246WzUxMiw1MTIsW10sImYyMGEiLCJNNDQ4IDExMmM4LjggMCAxNiA3LjIgMTYgMTZsMCAyNTZjMCA4LjgtNy4yIDE2LTE2IDE2TDY0IDQwMGMtOC44IDAtMTYtNy4yLTE2LTE2bDAtMjU2YzAtOC44IDcuMi0xNiAxNi0xNmwzODQgMHpNNjQgNjRDMjguNyA2NCAwIDkyLjcgMCAxMjhMMCAzODRjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMzg0IDBjMzUuMyAwIDY0LTI4LjcgNjQtNjRsMC0yNTZjMC0zNS4zLTI4LjctNjQtNjQtNjRMNjQgNjR6bTg4IDE0NGwzMiAwYzQuNCAwIDggMy42IDggOCAwIDEzLjMgMTAuNyAyNCAyNCAyNHMyNC0xMC43IDI0LTI0YzAtMzAuOS0yNS4xLTU2LTU2LTU2bC0zMiAwYy0zMC45IDAtNTYgMjUuMS01NiA1NmwwIDgwYzAgMzAuOSAyNS4xIDU2IDU2IDU2bDMyIDBjMzAuOSAwIDU2LTI1LjEgNTYtNTYgMC0xMy4zLTEwLjctMjQtMjQtMjRzLTI0IDEwLjctMjQgMjRjMCA0LjQtMy42IDgtOCA4bC0zMiAwYy00LjQgMC04LTMuNi04LThsMC04MGMwLTQuNCAzLjYtOCA4LTh6bTE2OCA4YzAtNC40IDMuNi04IDgtOGwzMiAwYzQuNCAwIDggMy42IDggOCAwIDEzLjMgMTAuNyAyNCAyNCAyNHMyNC0xMC43IDI0LTI0YzAtMzAuOS0yNS4xLTU2LTU2LTU2bC0zMiAwYy0zMC45IDAtNTYgMjUuMS01NiA1NmwwIDgwYzAgMzAuOSAyNS4xIDU2IDU2IDU2bDMyIDBjMzAuOSAwIDU2LTI1LjEgNTYtNTYgMC0xMy4zLTEwLjctMjQtMjQtMjRzLTI0IDEwLjctMjQgMjRjMCA0LjQtMy42IDgtOCA4bC0zMiAwYy00LjQgMC04LTMuNi04LThsMC04MHoiXX0sSmR0PXtwcmVmaXg6ImZhciIsaWNvbk5hbWU6ImltYWdlcyIsaWNvbjpbNTc2LDUxMixbXSwiZjMwMiIsIk00ODAgODBjOC44IDAgMTYgNy4yIDE2IDE2bDAgMjU2YzAgOC44LTcuMiAxNi0xNiAxNmwtMzIwIDBjLTguOCAwLTE2LTcuMi0xNi0xNmwwLTI1NmMwLTguOCA3LjItMTYgMTYtMTZsMzIwIDB6TTE2MCAzMmMtMzUuMyAwLTY0IDI4LjctNjQgNjRsMCAyNTZjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMzIwIDBjMzUuMyAwIDY0LTI4LjcgNjQtNjRsMC0yNTZjMC0zNS4zLTI4LjctNjQtNjQtNjRMMTYwIDMyem04MCAxMTJhMzIgMzIgMCAxIDAgLTY0IDAgMzIgMzIgMCAxIDAgNjQgMHptMTQwLjcgMy44Yy00LjMtNy4zLTEyLjItMTEuOC0yMC43LTExLjhzLTE2LjQgNC41LTIwLjcgMTEuOGwtNDYuNSA3OS0xNy4yLTI0LjZjLTQuNS02LjQtMTEuOC0xMC4yLTE5LjctMTAuMnMtMTUuMiAzLjgtMTkuNyAxMC4ybC01NiA4MGMtNS4xIDcuMy01LjggMTYuOS0xLjYgMjQuOFMxOTEuMSAzMjAgMjAwIDMyMGwyNDAgMGM4LjYgMCAxNi42LTQuNiAyMC44LTEyLjFzNC4yLTE2LjctLjEtMjQuMWwtODAtMTM2ek00OCAxNTJjMC0xMy4zLTEwLjctMjQtMjQtMjRTMCAxMzguNyAwIDE1MkwwIDQ0OGMwIDM1LjMgMjguNyA2NCA2NCA2NGwzNjAgMGMxMy4zIDAgMjQtMTAuNyAyNC0yNHMtMTAuNy0yNC0yNC0yNEw2NCA0NjRjLTguOCAwLTE2LTcuMi0xNi0xNmwwLTI5NnoiXX0sdW9lPXtwcmVmaXg6ImZhciIsaWNvbk5hbWU6ImNpcmNsZS1yaWdodCIsaWNvbjpbNTEyLDUxMixbNjE4MzgsImFycm93LWFsdC1jaXJjbGUtcmlnaHQiXSwiZjM1YSIsIk00NjQgMjU2YTIwOCAyMDggMCAxIDEgLTQxNiAwIDIwOCAyMDggMCAxIDEgNDE2IDB6TTAgMjU2YTI1NiAyNTYgMCAxIDAgNTEyIDAgMjU2IDI1NiAwIDEgMCAtNTEyIDB6bTM4Ny4zIDExLjNjNi4yLTYuMiA2LjItMTYuNCAwLTIyLjZsLTEwNC0xMDRjLTQuNi00LjYtMTEuNS01LjktMTcuNC0zLjVTMjU2IDE0NS41IDI1NiAxNTJsMCA3Mi0xMDQgMGMtMTMuMyAwLTI0IDEwLjctMjQgMjRsMCAxNmMwIDEzLjMgMTAuNyAyNCAyNCAyNGwxMDQgMCAwIDcyYzAgNi41IDMuOSAxMi4zIDkuOSAxNC44czEyLjkgMS4xIDE3LjQtMy41bDEwNC0xMDR6Il19LEtkdD11b2UscG9lPXtwcmVmaXg6ImZhciIsaWNvbk5hbWU6ImlkLWNhcmQiLGljb246WzU3Niw1MTIsWzYyMTQ3LCJkcml2ZXJzLWxpY2Vuc2UiXSwiZjJjMiIsIk00OCA0MTZsMC0yNTYgNDgwIDAgMCAyNTZjMCA4LjgtNy4yIDE2LTE2IDE2bC0xOTIgMGMwLTQ0LjItMzUuOC04MC04MC04MGwtNjQgMGMtNDQuMiAwLTgwIDM1LjgtODAgODBsLTMyIDBjLTguOCAwLTE2LTcuMi0xNi0xNnpNNjQgMzJDMjguNyAzMiAwIDYwLjcgMCA5NkwwIDQxNmMwIDM1LjMgMjguNyA2NCA2NCA2NGw0NDggMGMzNS4zIDAgNjQtMjguNyA2NC02NGwwLTMyMGMwLTM1LjMtMjguNy02NC02NC02NEw2NCAzMnpNMjA4IDMxMmE1NiA1NiAwIDEgMCAwLTExMiA1NiA1NiAwIDEgMCAwIDExMnpNMzc2IDIwOGMtMTMuMyAwLTI0IDEwLjctMjQgMjRzMTAuNyAyNCAyNCAyNGw4MCAwYzEzLjMgMCAyNC0xMC43IDI0LTI0cy0xMC43LTI0LTI0LTI0bC04MCAwem0wIDk2Yy0xMy4zIDAtMjQgMTAuNy0yNCAyNHMxMC43IDI0IDI0IDI0bDgwIDBjMTMuMyAwIDI0LTEwLjcgMjQtMjRzLTEwLjctMjQtMjQtMjRsLTgwIDB6Il19LGU1dD1wb2UsaG9lPXtwcmVmaXg6ImZhciIsaWNvbk5hbWU6ImNpcmNsZS1wbGF5IixpY29uOls1MTIsNTEyLFs2MTQ2OSwicGxheS1jaXJjbGUiXSwiZjE0NCIsIk0yNTYgNDhhMjA4IDIwOCAwIDEgMSAwIDQxNiAyMDggMjA4IDAgMSAxIDAtNDE2em0wIDQ2NGEyNTYgMjU2IDAgMSAwIDAtNTEyIDI1NiAyNTYgMCAxIDAgMCA1MTJ6TTIxMi41IDE0Ny41Yy03LjQtNC41LTE2LjctNC43LTI0LjMtLjVTMTc2IDE1OS4zIDE3NiAxNjhsMCAxNzZjMCA4LjcgNC43IDE2LjcgMTIuMyAyMC45czE2LjggNC4xIDI0LjMtLjVsMTQ0LTg4YzcuMS00LjQgMTEuNS0xMi4xIDExLjUtMjAuNXMtNC40LTE2LjEtMTEuNS0yMC41bC0xNDQtODh6TTI5OCAyNTZsLTc0IDQ1LjIgMC05MC40IDc0IDQ1LjJ6Il19LHQ1dD1ob2UsZm9lPXtwcmVmaXg6ImZhciIsaWNvbk5hbWU6ImZhY2UtbGF1Z2gtYmVhbSIsaWNvbjpbNTEyLDUxMixbMTI4NTEzLCJsYXVnaC1iZWFtIl0sImY1OWEiLCJNNDY0IDI1NmEyMDggMjA4IDAgMSAwIC00MTYgMCAyMDggMjA4IDAgMSAwIDQxNiAwek0wIDI1NmEyNTYgMjU2IDAgMSAxIDUxMiAwIDI1NiAyNTYgMCAxIDEgLTUxMiAwem0xMTguMyA1OC4yYy00LjItMTMuNyA3LjEtMjYuMiAyMS40LTI2LjJsMjMyLjYgMGMxNC4zIDAgMjUuNiAxMi41IDIxLjQgMjYuMi0xOCA1OC45LTcyLjkgMTAxLjgtMTM3LjcgMTAxLjhTMTM2LjMgMzczLjEgMTE4LjMgMzE0LjJ6TTE3NiAxODBjLTE1LjUgMC0yOCAxMi41LTI4IDI4bDAgOGMwIDExLTkgMjAtMjAgMjBzLTIwLTktMjAtMjBsMC04YzAtMzcuNiAzMC40LTY4IDY4LTY4czY4IDMwLjQgNjggNjhsMCA4YzAgMTEtOSAyMC0yMCAyMHMtMjAtOS0yMC0yMGwwLThjMC0xNS41LTEyLjUtMjgtMjgtMjh6bTEzMiAyOGwwIDhjMCAxMS05IDIwLTIwIDIwcy0yMC05LTIwLTIwbDAtOGMwLTM3LjYgMzAuNC02OCA2OC02OHM2OCAzMC40IDY4IDY4bDAgOGMwIDExLTkgMjAtMjAgMjBzLTIwLTktMjAtMjBsMC04YzAtMTUuNS0xMi41LTI4LTI4LTI4cy0yOCAxMi41LTI4IDI4eiJdfSxyNXQ9Zm9lLG1vZT17cHJlZml4OiJmYXIiLGljb25OYW1lOiJhZGRyZXNzLWJvb2siLGljb246WzUxMiw1MTIsWzYyMTM4LCJjb250YWN0LWJvb2siXSwiZjJiOSIsIk0zODQgNDhjOC44IDAgMTYgNy4yIDE2IDE2bDAgMzg0YzAgOC44LTcuMiAxNi0xNiAxNkw5NiA0NjRjLTguOCAwLTE2LTcuMi0xNi0xNkw4MCA2NGMwLTguOCA3LjItMTYgMTYtMTZsMjg4IDB6TTk2IDBDNjAuNyAwIDMyIDI4LjcgMzIgNjRsMCAzODRjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMjg4IDBjMzUuMyAwIDY0LTI4LjcgNjQtNjRsMC0zODRjMC0zNS4zLTI4LjctNjQtNjQtNjRMOTYgMHpNMjQwIDI0OGE1NiA1NiAwIDEgMCAwLTExMiA1NiA1NiAwIDEgMCAwIDExMnptLTMyIDQwYy00NC4yIDAtODAgMzUuOC04MCA4MCAwIDguOCA3LjIgMTYgMTYgMTZsMTkyIDBjOC44IDAgMTYtNy4yIDE2LTE2IDAtNDQuMi0zNS44LTgwLTgwLTgwbC02NCAwek01MTIgODBjMC04LjgtNy4yLTE2LTE2LTE2cy0xNiA3LjItMTYgMTZsMCA2NGMwIDguOCA3LjIgMTYgMTYgMTZzMTYtNy4yIDE2LTE2bDAtNjR6TTQ5NiAxOTJjLTguOCAwLTE2IDcuMi0xNiAxNmwwIDY0YzAgOC44IDcuMiAxNiAxNiAxNnMxNi03LjIgMTYtMTZsMC02NGMwLTguOC03LjItMTYtMTYtMTZ6bTE2IDE0NGMwLTguOC03LjItMTYtMTYtMTZzLTE2IDcuMi0xNiAxNmwwIDY0YzAgOC44IDcuMiAxNiAxNiAxNnMxNi03LjIgMTYtMTZsMC02NHoiXX0saTV0PW1vZSxnb2U9e3ByZWZpeDoiZmFyIixpY29uTmFtZToiaG91cmdsYXNzIixpY29uOlszODQsNTEyLFs5MjAzLDYyMDMyLCJob3VyZ2xhc3MtZW1wdHkiXSwiZjI1NCIsIk0yNCAwQzEwLjcgMCAwIDEwLjcgMCAyNFMxMC43IDQ4IDI0IDQ4bDggMCAwIDE5YzAgNDAuMyAxNiA3OSA0NC41IDEwNy41bDgxLjUgODEuNS04MS41IDgxLjVDNDggMzY2IDMyIDQwNC43IDMyIDQ0NWwwIDE5LTggMGMtMTMuMyAwLTI0IDEwLjctMjQgMjRzMTAuNyAyNCAyNCAyNGwzMzYgMGMxMy4zIDAgMjQtMTAuNyAyNC0yNHMtMTAuNy0yNC0yNC0yNGwtOCAwIDAtMTljMC00MC4zLTE2LTc5LTQ0LjUtMTA3LjVsLTgxLjUtODEuNSA4MS41LTgxLjVDMzM2IDE0NiAzNTIgMTA3LjMgMzUyIDY3bDAtMTkgOCAwYzEzLjMgMCAyNC0xMC43IDI0LTI0UzM3My4zIDAgMzYwIDBMMjQgMHpNMTkyIDI4OS45bDgxLjUgODEuNUMyOTMgMzkxIDMwNCA0MTcuNCAzMDQgNDQ1bDAgMTktMjI0IDAgMC0xOWMwLTI3LjYgMTEtNTQgMzAuNS03My41TDE5MiAyODkuOXptMC02Ny45bC04MS41LTgxLjVDOTEgMTIxIDgwIDk0LjYgODAgNjdsMC0xOSAyMjQgMCAwIDE5YzAgMjcuNi0xMSA1NC0zMC41IDczLjVMMTkyIDIyMi4xeiJdfSxhNXQ9Z29lLFlBPXtwcmVmaXg6ImZhciIsaWNvbk5hbWU6ImhlYWRwaG9uZXMiLGljb246WzQ0OCw1MTIsWzEyNzkxMSw2Mjg2MywiaGVhZHBob25lcy1hbHQiLCJoZWFkcGhvbmVzLXNpbXBsZSJdLCJmMDI1IiwiTTQ4IDIyNGMwLTk3LjIgNzguOC0xNzYgMTc2LTE3NnMxNzYgNzguOCAxNzYgMTc2bDAgNDQuOGMtMTQuMS04LjItMzAuNS0xMi44LTQ4LTEyLjhsLTE2IDBjLTI2LjUgMC00OCAyMS41LTQ4IDQ4bDAgMTI4YzAgMjYuNSAyMS41IDQ4IDQ4IDQ4bDE2IDBjNTMgMCA5Ni00MyA5Ni05NmwwLTE2MEM0NDggMTAwLjMgMzQ3LjcgMCAyMjQgMFMwIDEwMC4zIDAgMjI0TDAgMzg0YzAgNTMgNDMgOTYgOTYgOTZsMTYgMGMyNi41IDAgNDgtMjEuNSA0OC00OGwwLTEyOGMwLTI2LjUtMjEuNS00OC00OC00OGwtMTYgMGMtMTcuNSAwLTMzLjkgNC43LTQ4IDEyLjhMNDggMjI0em0wIDEyOGMwLTI2LjUgMjEuNS00OCA0OC00OGwxNiAwIDAgMTI4LTE2IDBjLTI2LjUgMC00OC0yMS41LTQ4LTQ4bDAtMzJ6bTM1MiAwbDAgMzJjMCAyNi41LTIxLjUgNDgtNDggNDhsLTE2IDAgMC0xMjggMTYgMGMyNi41IDAgNDggMjEuNSA0OCA0OHoiXX0sbjV0PVlBLG81dD1ZQSxzNXQ9e3ByZWZpeDoiZmFyIixpY29uTmFtZToiZmlsZS1wb3dlcnBvaW50IixpY29uOlszODQsNTEyLFtdLCJmMWM0IiwiTTY0IDQ4bDExMiAwIDAgODhjMCAzOS44IDMyLjIgNzIgNzIgNzJsODggMCAwIDI0MGMwIDguOC03LjIgMTYtMTYgMTZMNjQgNDY0Yy04LjggMC0xNi03LjItMTYtMTZMNDggNjRjMC04LjggNy4yLTE2IDE2LTE2ek0yMjQgNjcuOWw5Mi4xIDkyLjEtNjguMSAwYy0xMy4zIDAtMjQtMTAuNy0yNC0yNGwwLTY4LjF6TTY0IDBDMjguNyAwIDAgMjguNyAwIDY0TDAgNDQ4YzAgMzUuMyAyOC43IDY0IDY0IDY0bDI1NiAwYzM1LjMgMCA2NC0yOC43IDY0LTY0bDAtMjYxLjVjMC0xNy02LjctMzMuMy0xOC43LTQ1LjNMMjQyLjcgMTguN0MyMzAuNyA2LjcgMjE0LjUgMCAxOTcuNSAwTDY0IDB6bTg4IDI1NmMtMTMuMyAwLTI0IDEwLjctMjQgMjRsMCAxMjhjMCAxMy4zIDEwLjcgMjQgMjQgMjRzMjQtMTAuNyAyNC0yNGwwLTE2IDI4IDBjMzcuNiAwIDY4LTMwLjQgNjgtNjhzLTMwLjQtNjgtNjgtNjhsLTUyIDB6bTUyIDg4bC0yOCAwIDAtNDAgMjggMGMxMSAwIDIwIDkgMjAgMjBzLTkgMjAtMjAgMjB6Il19LGw1dD17cHJlZml4OiJmYXIiLGljb25OYW1lOiJ3aW5kb3ctbWF4aW1pemUiLGljb246WzUxMiw1MTIsWzEyODQ3MF0sImYyZDAiLCJNNDggMjI0bDAgMTYwYzAgOC44IDcuMiAxNiAxNiAxNmwzODQgMGM4LjggMCAxNi03LjIgMTYtMTZsMC0xNjAtNDE2IDB6TTAgMTI4QzAgOTIuNyAyOC43IDY0IDY0IDY0bDM4NCAwYzM1LjMgMCA2NCAyOC43IDY0IDY0bDAgMjU2YzAgMzUuMy0yOC43IDY0LTY0IDY0TDY0IDQ0OGMtMzUuMyAwLTY0LTI4LjctNjQtNjRMMCAxMjh6Il19LGJvZT17cHJlZml4OiJmYXIiLGljb25OYW1lOiJjb21tZW50LWRvdHMiLGljb246WzUxMiw1MTIsWzEyODE3Miw2MjA3NSwiY29tbWVudGluZyJdLCJmNGFkIiwiTTAgMjQwYzAgNTQuNCAxOS4zIDEwNC42IDUxLjkgMTQ0LjlMMy4xIDQ3NC4zYy0yIDMuNy0zLjEgNy45LTMuMSAxMi4yIDAgMTQuMSAxMS40IDI1LjUgMjUuNSAyNS41IDQgMCA3LjgtLjYgMTEuNS0yLjFMMTUzLjQgNDYwYzMxLjQgMTIuOSA2Ni4xIDIwIDEwMi42IDIwIDE0MS40IDAgMjU2LTEwNy41IDI1Ni0yNDBTMzk3LjQgMCAyNTYgMCAwIDEwNy41IDAgMjQwek05NCA0MDcuOWM5LjMtMTcuMSA3LjQtMzguMS00LjgtNTMuMi0yNi4xLTMyLjMtNDEuMi03MS45LTQxLjItMTE0LjcgMC0xMDMuMiA5MC4yLTE5MiAyMDgtMTkyczIwOCA4OC44IDIwOCAxOTItOTAuMiAxOTItMjA4IDE5MmMtMzAuMiAwLTU4LjctNS45LTg0LjMtMTYuNC0xMS45LTQuOS0yNS4zLTQuOC0zNy4xIC4zTDc2IDQ0MC45IDk0IDQwNy45ek0xNDQgMjcyYTMyIDMyIDAgMSAwIDAtNjQgMzIgMzIgMCAxIDAgMCA2NHptMTQ0LTMyYTMyIDMyIDAgMSAwIC02NCAwIDMyIDMyIDAgMSAwIDY0IDB6bTgwIDMyYTMyIDMyIDAgMSAwIDAtNjQgMzIgMzIgMCAxIDAgMCA2NHoiXX0sYzV0PWJvZSx2b2U9e3ByZWZpeDoiZmFyIixpY29uTmFtZToiZmFjZS1ncmluLXRvbmd1ZS13aW5rIixpY29uOls1MTIsNTEyLFsxMjg1NDAsImdyaW4tdG9uZ3VlLXdpbmsiXSwiZjU4YiIsIk0zNjYuOSA0MzJjLjgtNS4yIDEuMS0xMC42IDEuMS0xNmwwLTUzLjVjMTAuMi0xMi42IDE4LjMtMjYuOSAyMy44LTQyLjUgNC4xLTExLjYtNy44LTIxLjQtMTkuNi0xNy44LTM0LjggMTAuNi03NC4zIDE2LjYtMTE2LjMgMTYuNi00MS45IDAtODEuNC02LTExNi4xLTE2LjUtMTEuOC0zLjYtMjMuNyA2LjEtMTkuNiAxNy44IDUuNSAxNS41IDEzLjYgMjkuOSAyMy44IDQyLjRsMCA1My41YzAgNS40IC40IDEwLjggMS4xIDE2LTU4LjQtMzYuOC05Ny4xLTEwMS45LTk3LjEtMTc2IDAtMTE0LjkgOTMuMS0yMDggMjA4LTIwOHMyMDggOTMuMSAyMDggMjA4YzAgNzQuMS0zOC44IDEzOS4yLTk3LjEgMTc2em0tMzguOCA2OS43QzQzNC40IDQ3MC42IDUxMiAzNzIuMyA1MTIgMjU2IDUxMiAxMTQuNiAzOTcuNCAwIDI1NiAwUzAgMTE0LjYgMCAyNTZDMCAzNzIuMyA3Ny42IDQ3MC42IDE4My45IDUwMS43IDIwMy40IDUxOC4xIDIyOC41IDUyOCAyNTYgNTI4czUyLjYtOS45IDcyLjEtMjYuM3pNMzIwIDM3OC42bDAgMzcuNGMwIDM1LjMtMjguNyA2NC02NCA2NHMtNjQtMjguNy02NC02NGwwLTM3LjRjMC0xNC43IDExLjktMjYuNiAyNi42LTI2LjZsMiAwYzExLjMgMCAyMS4xIDcuOSAyMy42IDE4LjkgMi44IDEyLjYgMjAuOCAxMi42IDIzLjYgMCAyLjUtMTEuMSAxMi4zLTE4LjkgMjMuNi0xOC45bDIgMGMxNC43IDAgMjYuNiAxMS45IDI2LjYgMjYuNnpNMTMyIDIzMmMwLTExIDktMjAgMjAtMjBsMTYgMGMxMSAwIDIwIDkgMjAgMjBzOSAyMCAyMCAyMCAyMC05IDIwLTIwYzAtMzMuMS0yNi45LTYwLTYwLTYwbC0xNiAwYy0zMy4xIDAtNjAgMjYuOS02MCA2MCAwIDExIDkgMjAgMjAgMjBzMjAtOSAyMC0yMHptMjI4LjQtMjRhMjQgMjQgMCAxIDAgLTQ4IDAgMjQgMjQgMCAxIDAgNDggMHpNMjg4IDIwOGE0OCA0OCAwIDEgMSA5NiAwIDQ4IDQ4IDAgMSAxIC05NiAwem0xMjggMGE4MCA4MCAwIDEgMCAtMTYwIDAgODAgODAgMCAxIDAgMTYwIDB6Il19LGQ1dD12b2UseG9lPXtwcmVmaXg6ImZhciIsaWNvbk5hbWU6ImhvdXJnbGFzcy1oYWxmIixpY29uOlszODQsNTEyLFsiaG91cmdsYXNzLTIiXSwiZjI1MiIsIk0wIDI0QzAgMTAuNyAxMC43IDAgMjQgMEwzNjAgMGMxMy4zIDAgMjQgMTAuNyAyNCAyNHMtMTAuNyAyNC0yNCAyNGwtOCAwIDAgMTljMCA0MC4zLTE2IDc5LTQ0LjUgMTA3LjVsLTgxLjUgODEuNSA4MS41IDgxLjVDMzM2IDM2NiAzNTIgNDA0LjcgMzUyIDQ0NWwwIDE5IDggMGMxMy4zIDAgMjQgMTAuNyAyNCAyNHMtMTAuNyAyNC0yNCAyNEwyNCA1MTJjLTEzLjMgMC0yNC0xMC43LTI0LTI0czEwLjctMjQgMjQtMjRsOCAwIDAtMTljMC00MC4zIDE2LTc5IDQ0LjUtMTA3LjVsODEuNS04MS41LTgxLjUtODEuNUM0OCAxNDYgMzIgMTA3LjMgMzIgNjdsMC0xOS04IDBDMTAuNyA0OCAwIDM3LjMgMCAyNHpNMTEwLjUgMzcxLjVjLTMuOSAzLjktNy41IDguMS0xMC43IDEyLjVsMTg0LjQgMGMtMy4yLTQuNC02LjgtOC42LTEwLjctMTIuNWwtODEuNS04MS41LTgxLjUgODEuNXpNODAuOCA0MzJjLS41IDQuMy0uOCA4LjYtLjggMTNsMCAxOSAyMjQgMCAwLTE5YzAtNC40LS4zLTguNy0uOC0xM0w4MC44IDQzMnpNMjU0LjEgMTYwbC0xMjQuMSAwIDYyLjEgNjIuMSA2Mi4xLTYyLjF6bTM5LjctNDhDMzAwLjQgOTguMSAzMDQgODIuNyAzMDQgNjdsMC0xOS0yMjQgMCAwIDE5YzAgMTUuNyAzLjYgMzEuMSAxMC4yIDQ1bDIwMy41IDB6Il19LHU1dD14b2UseW9lPXtwcmVmaXg6ImZhciIsaWNvbk5hbWU6ImNyZWRpdC1jYXJkIixpY29uOls1MTIsNTEyLFsxMjgxNzksNjIwODMsImNyZWRpdC1jYXJkLWFsdCJdLCJmMDlkIiwiTTQ0OCAxMTJjOC44IDAgMTYgNy4yIDE2IDE2bDAgMzItNDE2IDAgMC0zMmMwLTguOCA3LjItMTYgMTYtMTZsMzg0IDB6bTE2IDExMmwwIDE2MGMwIDguOC03LjIgMTYtMTYgMTZMNjQgNDAwYy04LjggMC0xNi03LjItMTYtMTZsMC0xNjAgNDE2IDB6TTY0IDY0QzI4LjcgNjQgMCA5Mi43IDAgMTI4TDAgMzg0YzAgMzUuMyAyOC43IDY0IDY0IDY0bDM4NCAwYzM1LjMgMCA2NC0yOC43IDY0LTY0bDAtMjU2YzAtMzUuMy0yOC43LTY0LTY0LTY0TDY0IDY0ek04MCAzNDRjMCAxMy4zIDEwLjcgMjQgMjQgMjRsNDggMGMxMy4zIDAgMjQtMTAuNyAyNC0yNHMtMTAuNy0yNC0yNC0yNGwtNDggMGMtMTMuMyAwLTI0IDEwLjctMjQgMjR6bTE0NCAwYzAgMTMuMyAxMC43IDI0IDI0IDI0bDY0IDBjMTMuMyAwIDI0LTEwLjcgMjQtMjRzLTEwLjctMjQtMjQtMjRsLTY0IDBjLTEzLjMgMC0yNCAxMC43LTI0IDI0eiJdfSxwNXQ9eW9lLGg1dD17cHJlZml4OiJmYXIiLGljb25OYW1lOiJoYW5kLXNwb2NrIixpY29uOls1MTIsNTEyLFsxMjg0MDZdLCJmMjU5IiwiTTEzOC4zIDgwLjhjLTkuMi0zMy44IDEwLjUtNjguOCA0NC4zLTc4LjQgMzQtOS42IDY5LjQgMTAuMiA3OSA0NC4yTDI5MS45IDE1My43IDMwNS4xIDg0YzYuNi0zNC43IDQwLjEtNTcuNSA3NC44LTUwLjkgMzEuNCA2IDUzIDMzLjkgNTIgNjQuOSAxMC0yLjYgMjAuOC0yLjggMzEuNS0uMSAzNC4zIDguNiA1NS4xIDQzLjMgNDYuNiA3Ny42TDQ1NC43IDM5Ny4yQzQzNy44IDQ2NC43IDM3Ny4yIDUxMiAzMDcuNiA1MTJsLTMzLjcgMGMtNTYuOSAwLTExMi4yLTE5LTE1Ny4yLTUzLjlsLTkyLTcxLjZjLTI3LjktMjEuNy0zMi45LTYxLjktMTEuMi04OS44czYxLjktMzIuOSA4OS44LTExLjJsMTcgMTMuMi01MS44LTEzMS4yYy0xMy0zMi45IDMuMi03MC4xIDM2LTgzIDExLjEtNC40IDIyLjctNS40IDMzLjctMy43em03Ny4xLTIxLjJjLTIuNC04LjUtMTEuMi0xMy40LTE5LjctMTFzLTEzLjQgMTEuMi0xMSAxOS43bDU0LjggMTgyLjRjMy41IDEyLjMtMy4zIDI1LjItMTUuNCAyOS4zcy0yNS4zLTItMzAtMTMuOUwxNDIuOSAxMzguMWMtMy4yLTguMi0xMi41LTEyLjMtMjAuOC05cy0xMi4zIDEyLjUtOSAyMC44bDczLjMgMTg1LjZjMTIgMzAuMy0yMy43IDU3LTQ5LjQgMzdMNzMuOCAzMjMuNGMtNy01LjQtMTctNC4yLTIyLjUgMi44cy00LjIgMTcgMi44IDIyLjVsOTIgNzEuNmMzNi41IDI4LjQgODEuNCA0My44IDEyNy43IDQzLjhsMzMuNyAwYzQ3LjUgMCA4OS0zMi40IDEwMC41LTc4LjVsNTUuNC0yMjEuNmMyLjEtOC42LTMuMS0xNy4zLTExLjYtMTkuNHMtMTcuMyAzLjEtMTkuNCAxMS42bC0yNiAxMDRjLTIuOSAxMS43LTEzLjQgMTkuOS0yNS41IDE5LjktMTYuNSAwLTI4LjktMTUtMjUuOC0zMS4yTDM4My43IDk5YzEuNy04LjctNC0xNy4xLTEyLjctMTguN1MzNTQgODQuMyAzNTIuMyA5M0wzMjAuNSAyNjBjLTIuMiAxMS42LTEyLjQgMjAtMjQuMiAyMC0xMSAwLTIwLjctNy4zLTIzLjctMTcuOUwyMTUuNCA1OS42eiJdfSxmNXQ9e3ByZWZpeDoiZmFyIixpY29uTmFtZToiYmVsbC1zbGFzaCIsaWNvbjpbNTc2LDUxMixbMTI4Mjc3LDYxOTQzXSwiZjFmNiIsIk00MS0yNC45Yy05LjQtOS40LTI0LjYtOS40LTMzLjkgMFMtMi4zLS4zIDcgOS4xbDUyOCA1MjhjOS40IDkuNCAyNC42IDkuNCAzMy45IDBzOS40LTI0LjYgMC0zMy45bC04Ny44LTg3LjhjMTcuNS0zLjMgMzAuOC0xOC43IDMwLjgtMzcuMSAwLTYuNy0xLjgtMTMuMy01LjEtMTlMNDg1IDMyMS43Yy0xOS0zMi42LTI5LTY5LjYtMjktMTA3LjNsMC0xNC41YzAtODQuNi02Mi42LTE1NC43LTE0NC0xNjYuM2wwLTkuN2MwLTEzLjMtMTAuNy0yNC0yNC0yNHMtMjQgMTAuNy0yNCAyNGwwIDkuN2MtNDIuMiA2LTc5LjQgMjcuOC0xMDUuNCA1OS4xTDQxLTI0Ljl6TTE5Mi44IDEyNi45QzIxNC43IDk4LjQgMjQ5LjIgODAgMjg4IDgwIDM1NC4zIDgwIDQwOCAxMzMuNyA0MDggMjAwbDAgMTQuNWMwIDQ2LjIgMTIuMyA5MS41IDM1LjUgMTMxLjRsMTIuOSAyMi4xLTIyLjYgMC0yNDEuMS0yNDEuMXpNMTMyLjUgMzQ1LjljMTkuNS0zMy40IDMxLjMtNzAuNyAzNC42LTEwOWwtNDYuNy00Ni43Yy0uMiAzLjMtLjMgNi42LS4zIDkuOWwwIDE0LjVjMCAzNy43LTEwIDc0LjctMjkgMTA3LjNMNjkuMSAzNTkuMmMtMy40IDUuOC01LjEgMTIuMy01LjEgMTkgMCAyMC45IDE2LjkgMzcuOCAzNy44IDM3LjhsMjQ0LjQgMC00OC00OC0xNzguNiAwIDEyLjktMjIuMXpNMjIwLjEgNDY0YzkuOSAyOCAzNi42IDQ4IDY3LjkgNDhzNTgtMjAgNjcuOS00OGwtMTM1LjggMHoiXX0sbTV0PXtwcmVmaXg6ImZhciIsaWNvbk5hbWU6InN0YXIiLGljb246WzU3Niw1MTIsWzExMDg4LDYxNDQ2XSwiZjAwNSIsIk0yODguMS0zMmM5IDAgMTcuMyA1LjEgMjEuNCAxMy4xTDM4MyAxMjUuMyA1NDIuOSAxNTAuN2M4LjkgMS40IDE2LjMgNy43IDE5LjEgMTYuM3MuNSAxOC01LjggMjQuNEw0NDEuNyAzMDUuOSA0NjcgNDY1LjhjMS40IDguOS0yLjMgMTcuOS05LjYgMjMuMnMtMTcgNi4xLTI1IDJMMjg4LjEgNDE3LjYgMTQzLjggNDkxYy04IDQuMS0xNy43IDMuMy0yNS0ycy0xMS0xNC4yLTkuNi0yMy4yTDEzNC40IDMwNS45IDIwIDE5MS40Yy02LjQtNi40LTguNi0xNS44LTUuOC0yNC40czEwLjEtMTQuOSAxOS4xLTE2LjNsMTU5LjktMjUuNCA3My42LTE0NC4yYzQuMS04IDEyLjQtMTMuMSAyMS40LTEzLjF6bTAgNzYuOEwyMzAuMyAxNThjLTMuNSA2LjgtMTAgMTEuNi0xNy42IDEyLjhsLTEyNS41IDIwIDg5LjggODkuOWM1LjQgNS40IDcuOSAxMy4xIDYuNyAyMC43bC0xOS44IDEyNS41IDExMy4zLTU3LjZjNi44LTMuNSAxNC45LTMuNSAyMS44IDBsMTEzLjMgNTcuNi0xOS44LTEyNS41Yy0xLjItNy42IDEuMy0xNS4zIDYuNy0yMC43bDg5LjgtODkuOS0xMjUuNS0yMGMtNy42LTEuMi0xNC4xLTYtMTcuNi0xMi44TDI4OC4xIDQ0Ljh6Il19LGc1dD17cHJlZml4OiJmYXIiLGljb25OYW1lOiJmbGFnIixpY29uOls0NDgsNTEyLFsxMjc5ODgsNjE3MjVdLCJmMDI0IiwiTTQ4IDI0QzQ4IDEwLjcgMzcuMyAwIDI0IDBTMCAxMC43IDAgMjRMMCA0ODhjMCAxMy4zIDEwLjcgMjQgMjQgMjRzMjQtMTAuNyAyNC0yNGwwLTEwMCA4MC4zLTIwLjFjNDEuMS0xMC4zIDg0LjYtNS41IDEyMi41IDEzLjQgNDQuMiAyMi4xIDk1LjUgMjQuOCAxNDEuNyA3LjRsMzQuNy0xM2MxMi41LTQuNyAyMC44LTE2LjYgMjAuOC0zMGwwLTI3OS43YzAtMjMtMjQuMi0zOC00NC44LTI3LjdsLTkuNiA0LjhjLTQ2LjMgMjMuMi0xMDAuOCAyMy4yLTE0Ny4xIDAtMzUuMS0xNy42LTc1LjQtMjItMTEzLjUtMTIuNUw0OCA1MiA0OCAyNHptMCA3Ny41bDk2LjYtMjQuMmMyNy02LjcgNTUuNS0zLjYgODAuNCA4LjggNTQuOSAyNy40IDExOC43IDI5LjcgMTc1IDYuOGwwIDI0MS44LTI0LjQgOS4xYy0zMy43IDEyLjYtNzEuMiAxMC43LTEwMy40LTUuNC00OC4yLTI0LjEtMTAzLjMtMzAuMS0xNTUuNi0xNy4xbC02OC42IDE3LjIgMC0yMzd6Il19LGI1dD17cHJlZml4OiJmYXIiLGljb25OYW1lOiJsZW1vbiIsaWNvbjpbNDQ4LDUxMixbMTI3ODE5XSwiZjA5NCIsIk0zNjggODBjLTMuMiAwLTYuMiAuNC04LjkgMS4zLTE5LjEgNS41LTQ2LjEgMTAuNy03NC4zIDMuMy01Ny40LTE0LjktMTI0LjYgNy40LTE3NC43IDU3LjVTMzcuNyAyNTkuNCA1Mi42IDMxNi44YzcuMyAyOC4yIDIuMiA1NS4yLTMuMyA3NC4zLS44IDIuOC0xLjMgNS44LTEuMyA4LjkgMCAxNy43IDE0LjMgMzIgMzIgMzIgMy4yIDAgNi4yLS40IDguOS0xLjMgMTkuMS01LjUgNDYuMS0xMC43IDc0LjMtMy4zIDU3LjQgMTQuOSAxMjQuNi03LjQgMTc0LjctNTcuNXM3Mi40LTExNy4zIDU3LjUtMTc0LjdjLTcuMy0yOC4yLTIuMi01NS4yIDMuMy03NC4zIC44LTIuOCAxLjMtNS44IDEuMy04LjkgMC0xNy43LTE0LjMtMzItMzItMzJ6bTAtNDhjNDQuMiAwIDgwIDM1LjggODAgODAgMCA3LjctMS4xIDE1LjItMy4xIDIyLjMtNC42IDE1LjgtNy4xIDMyLjktMyA0OC45IDIwLjEgNzcuNi0xMC45IDE2MS41LTcwIDIyMC43cy0xNDMuMSA5MC4yLTIyMC43IDcwYy0xNi00LjEtMzMtMS42LTQ4LjkgMy03LjEgMi0xNC42IDMuMS0yMi4zIDMuMS00NC4yIDAtODAtMzUuOC04MC04MCAwLTcuNyAxLjEtMTUuMiAzLjEtMjIuMyA0LjYtMTUuOCA3LjEtMzIuOSAzLTQ4LjktMjAuMS03Ny42IDEwLjktMTYxLjUgNzAtMjIwLjdTMjE5LjMgMTggMjk2LjggMzguMWMxNiA0LjEgMzMgMS42IDQ4LjktMyA3LjEtMiAxNC42LTMuMSAyMi4zLTMuMXpNMjQ2LjcgMTY3Yy01MiAxNS4yLTk2LjUgNTkuNy0xMTEuNyAxMTEuNy0zLjcgMTIuNy0xNy4xIDIwLTI5LjggMTYuM1M4NS4yIDI3OCA4OSAyNjUuM2MxOS44LTY3LjcgNzYuNi0xMjQuNSAxNDQuMy0xNDQuMyAxMi43LTMuNyAyNi4xIDMuNiAyOS44IDE2LjNzLTMuNiAyNi4xLTE2LjMgMjkuOHoiXX0sdjV0PXtwcmVmaXg6ImZhciIsaWNvbk5hbWU6IndpbmRvdy1yZXN0b3JlIixpY29uOls1NzYsNTEyLFtdLCJmMmQyIiwiTTUxMiA4MEwyMjQgODBjLTguOCAwLTE2IDcuMi0xNiAxNmwwIDE2LTQ4IDAgMC0xNmMwLTM1LjMgMjguNy02NCA2NC02NGwyODggMGMzNS4zIDAgNjQgMjguNyA2NCA2NGwwIDE5MmMwIDM1LjMtMjguNyA2NC02NCA2NGwtNDggMCAwLTQ4IDQ4IDBjOC44IDAgMTYtNy4yIDE2LTE2bDAtMTkyYzAtOC44LTcuMi0xNi0xNi0xNnpNMzY4IDI4OGwtMzIwIDAgMCAxMjhjMCA4LjggNy4yIDE2IDE2IDE2bDI4OCAwYzguOCAwIDE2LTcuMiAxNi0xNmwwLTEyOHpNNjQgMTYwbDI4OCAwYzM1LjMgMCA2NCAyOC43IDY0IDY0bDAgMTkyYzAgMzUuMy0yOC43IDY0LTY0IDY0TDY0IDQ4MGMtMzUuMyAwLTY0LTI4LjctNjQtNjRMMCAyMjRjMC0zNS4zIDI4LjctNjQgNjQtNjR6Il19LHdvZT17cHJlZml4OiJmYXIiLGljb25OYW1lOiJmYWNlLWdyaW4taGVhcnRzIixpY29uOls1MTIsNTEyLFsxMjg1MjUsImdyaW4taGVhcnRzIl0sImY1ODQiLCJNNDY0IDI1NmMwIDExNC45LTkzLjEgMjA4LTIwOCAyMDhTNDggMzcwLjkgNDggMjU2YzAtMy41IC4xLTcuMSAuMy0xMC42LTE0LTEzLjktMjkuNy0zMy4xLTM5LjMtNTYuNy01LjggMjEuNC04LjkgNDQtOC45IDY3LjMgMCAxNDEuNCAxMTQuNiAyNTYgMjU2IDI1NlM1MTIgMzk3LjQgNTEyIDI1NmMwLTIzLjMtMy4xLTQ1LjktOC45LTY3LjMtOS42IDIzLjctMjUuNCA0Mi44LTM5LjMgNTYuNyAuMiAzLjUgLjMgNyAuMyAxMC42ek0zNjggNTguOWMxMS43LTYgMjQuNS05LjYgMzcuNy0xMC42LTQyLjEtMzAuNC05My44LTQ4LjMtMTQ5LjctNDguM1MxNDguNCAxNy45IDEwNi4zIDQ4LjNjMTMuMiAxIDI2IDQuNiAzNy43IDEwLjYgMTMuOC03LjEgMjkuMy0xMC45IDQ1LjEtMTAuOWwyLjkgMGM4LjkgMCAxNy42IDEuMiAyNS44IDMuNSAxMi40LTIuMyAyNS4yLTMuNSAzOC4yLTMuNXMyNS44IDEuMiAzOC4yIDMuNWM4LjItMi4zIDE2LjktMy41IDI1LjgtMy41bDIuOSAwYzE1LjggMCAzMS4zIDMuOCA0NS4xIDEwLjl6bTQuMiAyNDMuNGMtMzQuOCAxMC42LTc0LjMgMTYuNi0xMTYuMyAxNi42LTQxLjkgMC04MS40LTYtMTE2LjEtMTYuNS0xMS44LTMuNi0yMy43IDYuMS0xOS42IDE3LjggMTkuOCA1NS45IDczLjEgOTUuOSAxMzUuOCA5NS45IDYyLjcgMCAxMTYtNDAuMSAxMzUuOC05NiA0LjEtMTEuNi03LjgtMjEuNC0xOS42LTE3Ljh6TTMyMi45IDk2TDMyMCA5NmMtMjYuNSAwLTQ4IDIxLjUtNDggNDggMCA1My40IDY2LjkgOTUuNyA4OSAxMDguMiA0LjQgMi41IDkuNiAyLjUgMTQgMCAyMi4xLTEyLjUgODktNTQuOCA4OS0xMDguMiAwLTI2LjUtMjEuNS00OC00OC00OGwtMi45IDBjLTEzLjUgMC0yNi41IDUuNC0zNiAxNC45bC05LjEgOS4xLTkuMS05LjFjLTkuNS05LjUtMjIuNS0xNC45LTM2LTE0Ljl6bS0xODggMTQuOWMtOS41LTkuNS0yMi41LTE0LjktMzYtMTQuOUw5NiA5NmMtMjYuNSAwLTQ4IDIxLjUtNDggNDggMCA1My40IDY2LjkgOTUuNyA4OSAxMDguMiA0LjQgMi41IDkuNiAyLjUgMTQgMCAyMi4xLTEyLjUgODktNTQuOCA4OS0xMDguMiAwLTI2LjUtMjEuNS00OC00OC00OGwtMi45IDBjLTEzLjUgMC0yNi41IDUuNC0zNiAxNC45bC05LjEgOS4xLTkuMS05LjF6Il19LHg1dD13b2UsTW9lPXtwcmVmaXg6ImZhciIsaWNvbk5hbWU6ImZhY2Uta2lzcy1iZWFtIixpY29uOls1MTIsNTEyLFsxMjg1MzcsImtpc3MtYmVhbSJdLCJmNTk3IiwiTTQ2NCAyNTZhMjA4IDIwOCAwIDEgMCAtNDE2IDAgMjA4IDIwOCAwIDEgMCA0MTYgMHpNMCAyNTZhMjU2IDI1NiAwIDEgMSA1MTIgMCAyNTYgMjU2IDAgMSAxIC01MTIgMHptMjQwIDE2bDMyIDBjMjYuNSAwIDQ4IDIxLjUgNDggNDggMCAxMi4zLTQuNiAyMy41LTEyLjIgMzIgNy42IDguNSAxMi4yIDE5LjcgMTIuMiAzMiAwIDI2LjUtMjEuNSA0OC00OCA0OGwtMzIgMGMtOC44IDAtMTYtNy4yLTE2LTE2czcuMi0xNiAxNi0xNmwxNiAwYzguOCAwIDE2LTcuMiAxNi0xNnMtNy4yLTE2LTE2LTE2bC0xNiAwYy04LjggMC0xNi03LjItMTYtMTZzNy4yLTE2IDE2LTE2bDE2IDBjOC44IDAgMTYtNy4yIDE2LTE2cy03LjItMTYtMTYtMTZsLTE2IDBjLTguOCAwLTE2LTcuMi0xNi0xNnM3LjItMTYgMTYtMTZ6bS02NC05MmMtMTUuNSAwLTI4IDEyLjUtMjggMjhsMCA4YzAgMTEtOSAyMC0yMCAyMHMtMjAtOS0yMC0yMGwwLThjMC0zNy42IDMwLjQtNjggNjgtNjhzNjggMzAuNCA2OCA2OGwwIDhjMCAxMS05IDIwLTIwIDIwcy0yMC05LTIwLTIwbDAtOGMwLTE1LjUtMTIuNS0yOC0yOC0yOHptMTMyIDI4bDAgOGMwIDExLTkgMjAtMjAgMjBzLTIwLTktMjAtMjBsMC04YzAtMzcuNiAzMC40LTY4IDY4LTY4czY4IDMwLjQgNjggNjhsMCA4YzAgMTEtOSAyMC0yMCAyMHMtMjAtOS0yMC0yMGwwLThjMC0xNS41LTEyLjUtMjgtMjgtMjhzLTI4IDEyLjUtMjggMjh6Il19LHk1dD1Nb2UsdzV0PXtwcmVmaXg6ImZhciIsaWNvbk5hbWU6ImZpbGUtcGRmIixpY29uOls1NzYsNTEyLFtdLCJmMWMxIiwiTTIwOCA0OEw5NiA0OGMtOC44IDAtMTYgNy4yLTE2IDE2bDAgMzg0YzAgOC44IDcuMiAxNiAxNiAxNmw4MCAwIDAgNDgtODAgMGMtMzUuMyAwLTY0LTI4LjctNjQtNjRMMzIgNjRDMzIgMjguNyA2MC43IDAgOTYgMEwyMjkuNSAwYzE3IDAgMzMuMyA2LjcgNDUuMyAxOC43TDM5Ny4zIDE0MS4zYzEyIDEyIDE4LjcgMjguMyAxOC43IDQ1LjNsMCAxNDkuNS00OCAwIDAtMTI4LTg4IDBjLTM5LjggMC03Mi0zMi4yLTcyLTcybDAtODh6TTM0OC4xIDE2MEwyNTYgNjcuOSAyNTYgMTM2YzAgMTMuMyAxMC43IDI0IDI0IDI0bDY4LjEgMHpNMjQwIDM4MGwzMiAwYzMzLjEgMCA2MCAyNi45IDYwIDYwcy0yNi45IDYwLTYwIDYwbC0xMiAwIDAgMjhjMCAxMS05IDIwLTIwIDIwcy0yMC05LTIwLTIwbDAtMTI4YzAtMTEgOS0yMCAyMC0yMHptMzIgODBjMTEgMCAyMC05IDIwLTIwcy05LTIwLTIwLTIwbC0xMiAwIDAgNDAgMTIgMHptOTYtODBsMzIgMGMyOC43IDAgNTIgMjMuMyA1MiA1MmwwIDY0YzAgMjguNy0yMy4zIDUyLTUyIDUybC0zMiAwYy0xMSAwLTIwLTktMjAtMjBsMC0xMjhjMC0xMSA5LTIwIDIwLTIwem0zMiAxMjhjNi42IDAgMTItNS40IDEyLTEybDAtNjRjMC02LjYtNS40LTEyLTEyLTEybC0xMiAwIDAgODggMTIgMHptNzYtMTA4YzAtMTEgOS0yMCAyMC0yMGw0OCAwYzExIDAgMjAgOSAyMCAyMHMtOSAyMC0yMCAyMGwtMjggMCAwIDI0IDI4IDBjMTEgMCAyMCA5IDIwIDIwcy05IDIwLTIwIDIwbC0yOCAwIDAgNDRjMCAxMS05IDIwLTIwIDIwcy0yMC05LTIwLTIwbDAtMTI4eiJdfSxrb2U9e3ByZWZpeDoiZmFyIixpY29uTmFtZToiZmFjZS1ncmluLXdpZGUiLGljb246WzUxMiw1MTIsWzEyODUxNSwiZ3Jpbi1hbHQiXSwiZjU4MSIsIk00NjQgMjU2YTIwOCAyMDggMCAxIDAgLTQxNiAwIDIwOCAyMDggMCAxIDAgNDE2IDB6TTAgMjU2YTI1NiAyNTYgMCAxIDEgNTEyIDAgMjU2IDI1NiAwIDEgMSAtNTEyIDB6bTM3Mi4yIDQ2LjNjMTEuOC0zLjYgMjMuNyA2LjEgMTkuNiAxNy44LTE5LjggNTUuOS03My4xIDk2LTEzNS44IDk2LTYyLjcgMC0xMTYtNDAtMTM1LjgtOTUuOS00LjEtMTEuNiA3LjgtMjEuNCAxOS42LTE3LjggMzQuNyAxMC42IDc0LjIgMTYuNSAxMTYuMSAxNi41IDQyIDAgODEuNS02IDExNi4zLTE2LjZ6TTIyNCAxOTJjMCAzNS4zLTE0LjMgNjQtMzIgNjRzLTMyLTI4LjctMzItNjQgMTQuMy02NCAzMi02NCAzMiAyOC43IDMyIDY0em05NiA2NGMtMTcuNyAwLTMyLTI4LjctMzItNjRzMTQuMy02NCAzMi02NCAzMiAyOC43IDMyIDY0LTE0LjMgNjQtMzIgNjR6Il19LE01dD1rb2UsU29lPXtwcmVmaXg6ImZhciIsaWNvbk5hbWU6ImZhY2UtbGF1Z2gtc3F1aW50IixpY29uOls1MTIsNTEyLFsibGF1Z2gtc3F1aW50Il0sImY1OWIiLCJNNDY0IDI1NmEyMDggMjA4IDAgMSAwIC00MTYgMCAyMDggMjA4IDAgMSAwIDQxNiAwek0wIDI1NmEyNTYgMjU2IDAgMSAxIDUxMiAwIDI1NiAyNTYgMCAxIDEgLTUxMiAwem0xMjUuMiA3Ni40Yy02LjUtMTQgNS0yOC40IDIwLjQtMjguNGwyMjAuOCAwYzE1LjQgMCAyNi44IDE0LjQgMjAuNCAyOC40LTIyLjggNDkuNC03Mi44IDgzLjYtMTMwLjggODMuNnMtMTA3LjktMzQuMi0xMzAuOC04My42em0tMi42LTE3My4yYzQuNS02LjggMTMuMy05LjIgMjAuNi01LjVsNzkuNiA0MGM1LjQgMi43IDguOCA4LjIgOC44IDE0LjNzLTMuNCAxMS42LTguOCAxNC4zbC03OS42IDQwYy03LjMgMy42LTE2LjEgMS4zLTIwLjYtNS41cy0zLjEtMTUuOSAzLjEtMjEuMUwxNTkgMjA4IDEyNS44IDE4MC4zYy02LjItNS4yLTcuNi0xNC4zLTMuMS0yMS4xem0yNjMuNiAyMS4xTDM1MyAyMDggMzg2LjIgMjM1LjdjNi4yIDUuMiA3LjYgMTQuMyAzLjEgMjEuMXMtMTMuMyA5LjItMjAuNiA1LjVsLTc5LjYtNDBjLTUuNC0yLjctOC44LTguMi04LjgtMTQuM3MzLjQtMTEuNiA4LjgtMTQuM2w3OS42LTQwYzcuMy0zLjYgMTYuMS0xLjMgMjAuNiA1LjVzMy4xIDE1LjktMy4xIDIxLjF6Il19LGs1dD1Tb2Usem9lPXtwcmVmaXg6ImZhciIsaWNvbk5hbWU6ImZhY2Uta2lzcy13aW5rLWhlYXJ0IixpY29uOls2NDAsNTEyLFsxMjg1MzYsImtpc3Mtd2luay1oZWFydCJdLCJmNTk4IiwiTTM4NiA0MzkuNWMtMjkuMiAxNS42LTYyLjUgMjQuNS05OCAyNC41LTExNC45IDAtMjA4LTkzLjEtMjA4LTIwOFMxNzMuMiA0OCAyODggNDhjMTEzLjIgMCAyMDUuMiA5MC40IDIwNy45IDIwMi45IDE0LjMgMS41IDI4LjYgNiA0MS45IDEzLjcgMiAxLjIgNCAyLjQgNS45IDMuNyAuMi00LjEgLjMtOC4yIC4zLTEyLjMgMC0xNDEuNC0xMTQuNi0yNTYtMjU2LTI1NlMzMiAxMTQuNiAzMiAyNTYgMTQ2LjYgNTEyIDI4OCA1MTJjNDEuNCAwIDgwLjUtOS44IDExNS4xLTI3LjMtNS44LTEyLjktMTItMjguNS0xNy4yLTQ1LjJ6TTI1NiAyODhjMCA4LjggNy4yIDE2IDE2IDE2bDE2IDBjOC44IDAgMTYgNy4yIDE2IDE2cy03LjIgMTYtMTYgMTZsLTE2IDBjLTguOCAwLTE2IDcuMi0xNiAxNnM3LjIgMTYgMTYgMTZsMTYgMGM4LjggMCAxNiA3LjIgMTYgMTZzLTcuMiAxNi0xNiAxNmwtMTYgMGMtOC44IDAtMTYgNy4yLTE2IDE2czcuMiAxNiAxNiAxNmwzMiAwYzI2LjUgMCA0OC0yMS41IDQ4LTQ4IDAtMTIuMy00LjYtMjMuNS0xMi4yLTMyIDcuNi04LjUgMTIuMi0xOS43IDEyLjItMzIgMC0yNi41LTIxLjUtNDgtNDgtNDhsLTMyIDBjLTguOCAwLTE2IDcuMi0xNiAxNnptLTQ4LTQ4YTMyIDMyIDAgMSAwIDAtNjQgMzIgMzIgMCAxIDAgMCA2NHptMTUyLTQ0bDE2IDBjMTEgMCAyMCA5IDIwIDIwczkgMjAgMjAgMjAgMjAtOSAyMC0yMGMwLTMzLjEtMjYuOS02MC02MC02MGwtMTYgMGMtMzMuMSAwLTYwIDI2LjktNjAgNjAgMCAxMSA5IDIwIDIwIDIwczIwLTkgMjAtMjAgOS0yMCAyMC0yMHpNNTQyLjggMzUwYy0yLjItMTguMy0xMi45LTM0LjYtMjguOS00My44LTI4LjEtMTYuMi02My45LTYuNi04MC4xIDIxLjVsLTIuNyA0LjZjLTI0LjUgNDIuNSA3LjkgMTE3LjkgMjQuNCAxNTAuOCA1LjEgMTAuMSAxNS41IDE2LjEgMjYuOCAxNS41IDM2LjctMi4yIDExOC4yLTExLjcgMTQyLjgtNTQuMmwyLjctNC42YzE2LjItMjguMSA2LjYtNjMuOS0yMS41LTgwLjEtMTYtOS4yLTM1LjQtMTAuNC01Mi40LTMuMWwtOS44IDQuMi0xLjMtMTAuNnoiXX0sUzV0PXpvZSxYQT17cHJlZml4OiJmYXIiLGljb25OYW1lOiJjb3B5IixpY29uOls0NDgsNTEyLFtdLCJmMGM1IiwiTTM4NCAzMzZsLTE5MiAwYy04LjggMC0xNi03LjItMTYtMTZsMC0yNTZjMC04LjggNy4yLTE2IDE2LTE2bDEzMy41IDBjNC4yIDAgOC4zIDEuNyAxMS4zIDQuN2w1OC41IDU4LjVjMyAzIDQuNyA3LjEgNC43IDExLjNMNDAwIDMyMGMwIDguOC03LjIgMTYtMTYgMTZ6TTE5MiAzODRsMTkyIDBjMzUuMyAwIDY0LTI4LjcgNjQtNjRsMC0xOTcuNWMwLTE3LTYuNy0zMy4zLTE4LjctNDUuM0wzNzAuNyAxOC43QzM1OC43IDYuNyAzNDIuNSAwIDMyNS41IDBMMTkyIDBjLTM1LjMgMC02NCAyOC43LTY0IDY0bDAgMjU2YzAgMzUuMyAyOC43IDY0IDY0IDY0ek02NCAxMjhjLTM1LjMgMC02NCAyOC43LTY0IDY0TDAgNDQ4YzAgMzUuMyAyOC43IDY0IDY0IDY0bDE5MiAwYzM1LjMgMCA2NC0yOC43IDY0LTY0bDAtMTYtNDggMCAwIDE2YzAgOC44LTcuMiAxNi0xNiAxNkw2NCA0NjRjLTguOCAwLTE2LTcuMi0xNi0xNmwwLTI1NmMwLTguOCA3LjItMTYgMTYtMTZsMTYgMCAwLTQ4LTE2IDB6Il19LHo1dD17cHJlZml4OiJmYXIiLGljb25OYW1lOiJjaGVzcy1raW5nIixpY29uOls0NDgsNTEyLFs5ODE4XSwiZjQzZiIsIk0yMjQtMzJjMTMuMyAwIDI0IDEwLjcgMjQgMjRsMCA0MCA0OCAwYzEzLjMgMCAyNCAxMC43IDI0IDI0cy0xMC43IDI0LTI0IDI0bC00OCAwIDAgODAgMTYxLjggMGMyMS4xIDAgMzguMiAxNy4xIDM4LjIgMzguMiAwIDYuNC0xLjYgMTIuNy00LjcgMTguM0wzNTcuMiAzNzQuNSA0MDUuNiA0MzVjNi43IDguNCAxMC40IDE4LjggMTAuNCAyOS42IDAgMjYuMi0yMS4yIDQ3LjQtNDcuNCA0Ny40TDc5LjQgNTEyYy0yNi4yIDAtNDcuNC0yMS4yLTQ3LjQtNDcuNCAwLTEwLjggMy43LTIxLjIgMTAuNC0yOS42TDkwLjggMzc0LjUgNC43IDIxNi42QzEuNiAyMTAuOSAwIDIwNC42IDAgMTk4LjIgMCAxNzcuMSAxNy4xIDE2MCAzOC4yIDE2MGwxNjEuOCAwIDAtODAtNDggMGMtMTMuMyAwLTI0LTEwLjctMjQtMjRzMTAuNy0yNCAyNC0yNGw0OCAwIDAtNDBjMC0xMy4zIDEwLjctMjQgMjQtMjR6TTEzMS44IDQwMGwtMy42IDQuNC00Ny42IDU5LjYgMjg2LjYgMC00Ny42LTU5LjYtMy42LTQuNC0xODQuMyAwem0xLjEtNDguNWwuMyAuNSAxODEuNiAwIC4zLS41IDc4LjMtMTQzLjUtMzM4LjcgMCA3OC4zIDE0My41eiJdfSxDb2U9e3ByZWZpeDoiZmFyIixpY29uTmFtZToic3F1YXJlLXBsdXMiLGljb246WzQ0OCw1MTIsWzYxODQ2LCJwbHVzLXNxdWFyZSJdLCJmMGZlIiwiTTY0IDgwYy04LjggMC0xNiA3LjItMTYgMTZsMCAzMjBjMCA4LjggNy4yIDE2IDE2IDE2bDMyMCAwYzguOCAwIDE2LTcuMiAxNi0xNmwwLTMyMGMwLTguOC03LjItMTYtMTYtMTZMNjQgODB6TTAgOTZDMCA2MC43IDI4LjcgMzIgNjQgMzJsMzIwIDBjMzUuMyAwIDY0IDI4LjcgNjQgNjRsMCAzMjBjMCAzNS4zLTI4LjcgNjQtNjQgNjRMNjQgNDgwYy0zNS4zIDAtNjQtMjguNy02NC02NEwwIDk2ek0yMDAgMzQ0bDAtNjQtNjQgMGMtMTMuMyAwLTI0LTEwLjctMjQtMjRzMTAuNy0yNCAyNC0yNGw2NCAwIDAtNjRjMC0xMy4zIDEwLjctMjQgMjQtMjRzMjQgMTAuNyAyNCAyNGwwIDY0IDY0IDBjMTMuMyAwIDI0IDEwLjcgMjQgMjRzLTEwLjcgMjQtMjQgMjRsLTY0IDAgMCA2NGMwIDEzLjMtMTAuNyAyNC0yNCAyNHMtMjQtMTAuNy0yNC0yNHoiXX0sQzV0PUNvZSxUNXQ9e3ByZWZpeDoiZmFyIixpY29uTmFtZToiZmlsZS1jb2RlIixpY29uOlszODQsNTEyLFtdLCJmMWM5IiwiTTY0IDQ4bDExMiAwIDAgODhjMCAzOS44IDMyLjIgNzIgNzIgNzJsODggMCAwIDI0MGMwIDguOC03LjIgMTYtMTYgMTZMNjQgNDY0Yy04LjggMC0xNi03LjItMTYtMTZMNDggNjRjMC04LjggNy4yLTE2IDE2LTE2ek0yMjQgNjcuOWw5Mi4xIDkyLjEtNjguMSAwYy0xMy4zIDAtMjQtMTAuNy0yNC0yNGwwLTY4LjF6TTY0IDBDMjguNyAwIDAgMjguNyAwIDY0TDAgNDQ4YzAgMzUuMyAyOC43IDY0IDY0IDY0bDI1NiAwYzM1LjMgMCA2NC0yOC43IDY0LTY0bDAtMjYxLjVjMC0xNy02LjctMzMuMy0xOC43LTQ1LjNMMjQyLjcgMTguN0MyMzAuNyA2LjcgMjE0LjUgMCAxOTcuNSAwTDY0IDB6TTE3MC4yIDI5NS42YzguNi0xMC4xIDcuNS0yNS4yLTIuNi0zMy44cy0yNS4yLTcuNS0zMy44IDIuNmwtNDggNTZjLTcuNyA5LTcuNyAyMi4yIDAgMzEuMmw0OCA1NmM4LjYgMTAuMSAyMy44IDExLjIgMzMuOCAyLjZzMTEuMi0yMy44IDIuNi0zMy44bC0zNC42LTQwLjQgMzQuNi00MC40em04MC0zMS4yYy04LjYtMTAuMS0yMy44LTExLjItMzMuOC0yLjZzLTExLjIgMjMuOC0yLjYgMzMuOGwzNC42IDQwLjQtMzQuNiA0MC40Yy04LjYgMTAuMS03LjUgMjUuMiAyLjYgMzMuOHMyNS4yIDcuNSAzMy44LTIuNmw0OC01NmM3LjctOSA3LjctMjIuMiAwLTMxLjJsLTQ4LTU2eiJdfSxUb2U9e3ByZWZpeDoiZmFyIixpY29uTmFtZToiZmFjZS1ncmluLXdpbmsiLGljb246WzUxMiw1MTIsWyJncmluLXdpbmsiXSwiZjU4YyIsIk00NjQgMjU2YTIwOCAyMDggMCAxIDAgLTQxNiAwIDIwOCAyMDggMCAxIDAgNDE2IDB6TTAgMjU2YTI1NiAyNTYgMCAxIDEgNTEyIDAgMjU2IDI1NiAwIDEgMSAtNTEyIDB6bTM3Mi4yIDQ2LjNjMTEuOC0zLjYgMjMuNyA2LjEgMTkuNiAxNy44LTE5LjggNTUuOS03My4xIDk2LTEzNS44IDk2LTYyLjcgMC0xMTYtNDAtMTM1LjgtOTUuOS00LjEtMTEuNiA3LjgtMjEuNCAxOS42LTE3LjggMzQuNyAxMC42IDc0LjIgMTYuNSAxMTYuMSAxNi41IDQyIDAgODEuNS02IDExNi4zLTE2LjZ6TTE0NCAyMDhhMzIgMzIgMCAxIDEgNjQgMCAzMiAzMiAwIDEgMSAtNjQgMHptMTY0IDhjMCAxMS05IDIwLTIwIDIwcy0yMC05LTIwLTIwYzAtMzMuMSAyNi45LTYwIDYwLTYwbDE2IDBjMzMuMSAwIDYwIDI2LjkgNjAgNjAgMCAxMS05IDIwLTIwIDIwcy0yMC05LTIwLTIwLTktMjAtMjAtMjBsLTE2IDBjLTExIDAtMjAgOS0yMCAyMHoiXX0sXzV0PVRvZSxfb2U9e3ByZWZpeDoiZmFyIixpY29uTmFtZToibW9uZXktYmlsbC0xIixpY29uOls1MTIsNTEyLFsibW9uZXktYmlsbC1hbHQiXSwiZjNkMSIsIk0xMTIgMTEyYzAgMzUuMy0yOC43IDY0LTY0IDY0bDAgMTYwYzM1LjMgMCA2NCAyOC43IDY0IDY0bDI4OCAwYzAtMzUuMyAyOC43LTY0IDY0LTY0bDAtMTYwYy0zNS4zIDAtNjQtMjguNy02NC02NGwtMjg4IDB6TTAgMTI4QzAgOTIuNyAyOC43IDY0IDY0IDY0bDM4NCAwYzM1LjMgMCA2NCAyOC43IDY0IDY0bDAgMjU2YzAgMzUuMy0yOC43IDY0LTY0IDY0TDY0IDQ0OGMtMzUuMyAwLTY0LTI4LjctNjQtNjRMMCAxMjh6bTI1NiAxNmExMTIgMTEyIDAgMSAxIDAgMjI0IDExMiAxMTIgMCAxIDEgMC0yMjR6bS0xNiA0NGMtMTEgMC0yMCA5LTIwIDIwIDAgOS43IDYuOSAxNy43IDE2IDE5LjZsMCA0OC40LTQgMGMtMTEgMC0yMCA5LTIwIDIwczkgMjAgMjAgMjBsNDggMGMxMSAwIDIwLTkgMjAtMjBzLTktMjAtMjAtMjBsLTQgMCAwLTY4YzAtMTEtOS0yMC0yMC0yMGwtMTYgMHoiXX0sTDV0PV9vZSxBNXQ9e3ByZWZpeDoiZmFyIixpY29uTmFtZToiZXllLXNsYXNoIixpY29uOls1NzYsNTEyLFtdLCJmMDcwIiwiTTQxLTI0LjljLTkuNC05LjQtMjQuNi05LjQtMzMuOSAwUy0yLjMtLjMgNyA5LjFsNTI4IDUyOGM5LjQgOS40IDI0LjYgOS40IDMzLjkgMHM5LjQtMjQuNiAwLTMzLjlsLTk2LjQtOTYuNGMyLjctMi40IDUuNC00LjggOC03LjIgNDYuOC00My41IDc4LjEtOTUuNCA5My0xMzEuMSAzLjMtNy45IDMuMy0xNi43IDAtMjQuNi0xNC45LTM1LjctNDYuMi04Ny43LTkzLTEzMS4xLTQ3LjEtNDMuNy0xMTEuOC04MC42LTE5Mi42LTgwLjYtNTYuOCAwLTEwNS42IDE4LjItMTQ2IDQ0LjJMNDEtMjQuOXpNMTc2LjkgMTExLjFjMzIuMS0xOC45IDY5LjItMzEuMSAxMTEuMS0zMS4xIDY1LjIgMCAxMTguOCAyOS42IDE1OS45IDY3LjcgMzguNSAzNS43IDY1LjEgNzguMyA3OC42IDEwOC4zLTEzLjYgMzAtNDAuMiA3Mi41LTc4LjYgMTA4LjMtMy4xIDIuOC02LjIgNS42LTkuNCA4LjRMMzkzLjggMzI4YzE0LTIwLjUgMjIuMi00NS4zIDIyLjItNzIgMC03MC43LTU3LjMtMTI4LTEyOC0xMjgtMjYuNyAwLTUxLjUgOC4yLTcyIDIyLjJsLTM5LjEtMzkuMXptMTgyIDE4MmwtMTA4LTEwOGMxMS4xLTUuOCAyMy43LTkuMSAzNy4xLTkuMSA0NC4yIDAgODAgMzUuOCA4MCA4MCAwIDEzLjQtMy4zIDI2LTkuMSAzNy4xek0xMDMuNCAxNzMuMmwtMzQtMzRjLTMyLjYgMzYuOC01NSA3NS44LTY2LjkgMTA0LjUtMy4zIDcuOS0zLjMgMTYuNyAwIDI0LjYgMTQuOSAzNS43IDQ2LjIgODcuNyA5MyAxMzEuMSA0Ny4xIDQzLjcgMTExLjggODAuNiAxOTIuNiA4MC42IDM3LjMgMCA3MS4yLTcuOSAxMDEuNS0yMC42TDM1Mi4yIDQyMmMtMjAgNi40LTQxLjQgMTAtNjQuMiAxMC02NS4yIDAtMTE4LjgtMjkuNi0xNTkuOS02Ny43LTM4LjUtMzUuNy02NS4xLTc4LjMtNzguNi0xMDguMyAxMC40LTIzLjEgMjguNi01My42IDU0LTgyLjh6Il19LEQ1dD17cHJlZml4OiJmYXIiLGljb25OYW1lOiJmaWxlLXdvcmQiLGljb246WzM4NCw1MTIsW10sImYxYzIiLCJNNjQgNDhsMTEyIDAgMCA4OGMwIDM5LjggMzIuMiA3MiA3MiA3Mmw4OCAwIDAgMjQwYzAgOC44LTcuMiAxNi0xNiAxNkw2NCA0NjRjLTguOCAwLTE2LTcuMi0xNi0xNkw0OCA2NGMwLTguOCA3LjItMTYgMTYtMTZ6TTIyNCA2Ny45bDkyLjEgOTIuMS02OC4xIDBjLTEzLjMgMC0yNC0xMC43LTI0LTI0bDAtNjguMXpNNjQgMEMyOC43IDAgMCAyOC43IDAgNjRMMCA0NDhjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMjU2IDBjMzUuMyAwIDY0LTI4LjcgNjQtNjRsMC0yNjEuNWMwLTE3LTYuNy0zMy4zLTE4LjctNDUuM0wyNDIuNyAxOC43QzIzMC43IDYuNyAyMTQuNSAwIDE5Ny41IDBMNjQgMHptNzEuMyAyNzQuMmMtMy4yLTEyLjktMTYuMi0yMC43LTI5LjEtMTcuNVM4NS41IDI3MyA4OC43IDI4NS44bDMyIDEyOGMyLjUgMTAuMiAxMS40IDE3LjUgMjEuOSAxOC4xczIwLjEtNS43IDIzLjgtMTUuNWwyNS41LTY4LjEgMjUuNSA2OC4xYzMuNyA5LjggMTMuMyAxNi4xIDIzLjggMTUuNXMxOS40LTcuOSAyMS45LTE4LjFsMzItMTI4YzMuMi0xMi45LTQuNi0yNS45LTE3LjUtMjkuMXMtMjUuOSA0LjYtMjkuMSAxNy41bC0xMy4zIDUzLjItMjAuOS01NS44QzIxMSAyNjIuMiAyMDIgMjU2IDE5MiAyNTZzLTE5IDYuMi0yMi41IDE1LjZsLTIwLjkgNTUuOC0xMy4zLTUzLjJ6Il19LExvZT17cHJlZml4OiJmYXIiLGljb25OYW1lOiJmYWNlLWFuZ3J5IixpY29uOls1MTIsNTEyLFsxMjg1NDQsImFuZ3J5Il0sImY1NTYiLCJNMjU2IDQ4YTIwOCAyMDggMCAxIDEgMCA0MTYgMjA4IDIwOCAwIDEgMSAwLTQxNnptMCA0NjRhMjU2IDI1NiAwIDEgMCAwLTUxMiAyNTYgMjU2IDAgMSAwIDAgNTEyem0wLTE0NGMyNC4xIDAgNDUuNCAxMS44IDU4LjUgMzAgNy43IDEwLjggMjIuNyAxMy4yIDMzLjUgNS41czEzLjItMjIuNyA1LjUtMzMuNWMtMjEuNy0zMC4yLTU3LjMtNTAtOTcuNS01MHMtNzUuNyAxOS44LTk3LjUgNTBjLTcuNyAxMC44LTUuMyAyNS44IDUuNSAzMy41czI1LjggNS4zIDMzLjUtNS41YzEzLjEtMTguMiAzNC40LTMwIDU4LjUtMzB6bS04MC05NmMxNy43IDAgMzItMTQuMyAzMi0zMmwwLS4zIDkuNyAzLjJjMTAuNSAzLjUgMjEuOC0yLjIgMjUuMy0xMi42cy0yLjItMjEuOC0xMi42LTI1LjNsLTk2LTMyYy0xMC41LTMuNS0yMS44IDIuMi0yNS4zIDEyLjZzMi4yIDIxLjggMTIuNiAyNS4zbDI4LjkgOS42Yy00LjEgNS40LTYuNiAxMi4xLTYuNiAxOS40IDAgMTcuNyAxNC4zIDMyIDMyIDMyem0xOTItMzJjMC03LjMtMi40LTE0LTYuNi0xOS40bDI4LjktOS42YzEwLjUtMy41IDE2LjEtMTQuOCAxMi42LTI1LjNzLTE0LjgtMTYuMS0yNS4zLTEyLjZsLTk2IDMyYy0xMC41IDMuNS0xNi4xIDE0LjgtMTIuNiAyNS4zczE0LjggMTYuMSAyNS4zIDEyLjZsOS43LTMuMiAwIC4zYzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJ6Il19LEU1dD1Mb2UsJDV0PXtwcmVmaXg6ImZhciIsaWNvbk5hbWU6ImNoZXNzLWtuaWdodCIsaWNvbjpbNDQ4LDUxMixbOTgyMl0sImY0NDEiLCJNMjMyLTMyYzExMC41IDAgMjAwIDg5LjUgMjAwIDIwMGwwIDEyNy43YzAgMTguOS02LjEgMzcuMS0xNy4yIDUyLjJsLTUuMSA2LjItMzYuMyA0MC43IDMyLjEgNDAuMmM2LjcgOC40IDEwLjQgMTguOCAxMC40IDI5LjZsLS4yIDQuOGMtMi40IDIzLjktMjIuNiA0Mi41LTQ3LjEgNDIuNWwtMjg5LjIgMC00LjgtLjJjLTIzLjktMi40LTQyLjUtMjIuNi00Mi41LTQ3LjEgMC0xMC44IDMuNy0yMS4yIDEwLjQtMjkuNmwzNy42LTQ3IDAtMjQuM2MwLTI0LjMgMTAuMS00Ny42IDI3LjgtNjQuMmw2My41LTU5LjUtMTcuNCAwLS4yIC4yYy0yMC4zIDIwLjMtNDkuNiAyOC4yLTc3LjEgMjEuMWwtNS41LTEuNmMtMzAuOS0xMC4zLTUyLjMtMzgtNTQuOS03MC4xbC0uMi02LjQgMC0xLjRjMC0xOS43IDcuMS0zOC44IDE5LjktNTMuOGw3Ni4xLTg4LjggMC00Ny4xIC4xLTIuNUMxMTMuNC0yMi42IDEyMy42LTMyIDEzNi0zMmw5NiAwek04MC43IDQ2NGwyODYuNiAwLTM4LjQtNDgtMjA5LjkgMC0zOC40IDQ4ek0xNjAgNDhjMCA1LjctMi4xIDExLjMtNS44IDE1LjZMNzIuMyAxNTkuMUM2NyAxNjUuNCA2NCAxNzMuNCA2NCAxODEuN2wwIDEuNCAuNCA1LjJjMS45IDExLjkgMTAuMyAyMS45IDIxLjkgMjUuOGw0LjUgMS4xYzEwLjUgMS45IDIxLjMtMS40IDI5LTlsNy4yLTcuMiAzLjctM2MzLjktMi42IDguNS00IDEzLjMtNGw4OCAwYzkuOCAwIDE4LjcgNiAyMi4zIDE1LjJzMS4zIDE5LjYtNS45IDI2LjNsLTEwNy44IDEwMWMtOC4xIDcuNi0xMi43IDE4LjEtMTIuNyAyOS4ybDAgNC4zIDIwNS4yIDAgNDAuNy00NS44IDIuMy0yLjhjNS4xLTYuOCA3LjgtMTUuMiA3LjgtMjMuN0wzODQgMTY4YzAtODMuOS02OC4xLTE1Mi0xNTItMTUybC03MiAwIDAgMzJ6bTMyIDcyYTI0IDI0IDAgMSAxIDAtNDggMjQgMjQgMCAxIDEgMCA0OHoiXX0sQW9lPXtwcmVmaXg6ImZhciIsaWNvbk5hbWU6ImZhY2UtZ3Jpbi1iZWFtIixpY29uOls1MTIsNTEyLFsxMjg1MTYsImdyaW4tYmVhbSJdLCJmNTgyIiwiTTQ2NCAyNTZhMjA4IDIwOCAwIDEgMCAtNDE2IDAgMjA4IDIwOCAwIDEgMCA0MTYgMHpNMCAyNTZhMjU2IDI1NiAwIDEgMSA1MTIgMCAyNTYgMjU2IDAgMSAxIC01MTIgMHptMzcyLjIgNDYuM2MxMS44LTMuNiAyMy43IDYuMSAxOS42IDE3LjgtMTkuOCA1NS45LTczLjEgOTYtMTM1LjggOTYtNjIuNyAwLTExNi00MC0xMzUuOC05NS45LTQuMS0xMS42IDcuOC0yMS40IDE5LjYtMTcuOCAzNC43IDEwLjYgNzQuMiAxNi41IDExNi4xIDE2LjUgNDIgMCA4MS41LTYgMTE2LjMtMTYuNnpNMTc2IDE4MGMtMTUuNSAwLTI4IDEyLjUtMjggMjhsMCA4YzAgMTEtOSAyMC0yMCAyMHMtMjAtOS0yMC0yMGwwLThjMC0zNy42IDMwLjQtNjggNjgtNjhzNjggMzAuNCA2OCA2OGwwIDhjMCAxMS05IDIwLTIwIDIwcy0yMC05LTIwLTIwbDAtOGMwLTE1LjUtMTIuNS0yOC0yOC0yOHptMTMyIDI4bDAgOGMwIDExLTkgMjAtMjAgMjBzLTIwLTktMjAtMjBsMC04YzAtMzcuNiAzMC40LTY4IDY4LTY4czY4IDMwLjQgNjggNjhsMCA4YzAgMTEtOSAyMC0yMCAyMHMtMjAtOS0yMC0yMGwwLThjMC0xNS41LTEyLjUtMjgtMjgtMjhzLTI4IDEyLjUtMjggMjh6Il19LEk1dD1Bb2UsUDV0PXtwcmVmaXg6ImZhciIsaWNvbk5hbWU6ImhhbmQtcGVhY2UiLGljb246WzQ0OCw1MTIsWzk5OTZdLCJmMjViIiwiTTIxOSAxLjRjLTM1LjItMy43LTY2LjYgMjEuOC03MC4zIDU3bC02LjQgNjAuNi0xNy40LTQ5LjRDMTEzLjIgMzYuMyA3Ni42IDE4LjggNDMuMyAzMC41Uy03LjYgNzguOCA0LjEgMTEyLjFMNTYuOSAyNjIuMkM0MS43IDI3Ni43IDMyLjIgMjk3LjMgMzIuMiAzMjBsMCAyNGMwIDkyLjggNzUuMiAxNjggMTY4IDE2OGw0OCAwYzkyLjggMCAxNjgtNzUuMiAxNjgtMTY4bDAtMTIwYzAtMzUuMy0yOC43LTY0LTY0LTY0LTcuOSAwLTE1LjQgMS40LTIyLjQgNC0xMC40LTIxLjMtMzIuMy0zNi01Ny42LTM2LS43IDAtMS41IDAtMi4yIDBsNS45LTU2LjNjMy43LTM1LjItMjEuOC02Ni42LTU3LTcwLjN6bS0uMiAxNTUuNGMtNi42IDEwLjEtMTAuNSAyMi4yLTEwLjUgMzUuMmwwIDQ4YzAgLjcgMCAxLjQgMCAyLTUuMS0xLjMtMTAuNS0yLTE2LTJsLTcuNCAwLTUuNC0xNS4zIDE3LTE2MS4zYy45LTguOCA4LjgtMTUuMiAxNy42LTE0LjJzMTUuMiA4LjggMTQuMiAxNy42bC05LjUgOTAuMXpNNzkuNiA4NS42bDU0LjMgMTU0LjQtMjEuNyAwYy00IDAtOCAuMy0xMS45IC45TDQ5LjQgOTYuMmMtMi45LTguMyAxLjUtMTcuNSA5LjgtMjAuNHMxNy41IDEuNSAyMC40IDkuOHpNMjU2LjIgMTkyYzAtOC44IDcuMi0xNiAxNi0xNnMxNiA3LjIgMTYgMTZsMCA0OGMwIDguOC03LjIgMTYtMTYgMTZzLTE2LTcuMi0xNi0xNmwwLTQ4em0zOC40IDEwOGMxMC40IDIxLjMgMzIuMyAzNiA1Ny42IDM2IDUuNSAwIDEwLjktLjcgMTYtMmwwIDEwYzAgNjYuMy01My43IDEyMC0xMjAgMTIwbC00OCAwYy02Ni4zIDAtMTIwLTUzLjctMTIwLTEyMGwwLTI0YzAtMTcuNyAxNC4zLTMyIDMyLTMybDgwIDBjOC44IDAgMTYgNy4yIDE2IDE2cy03LjIgMTYtMTYgMTZsLTQwIDBjLTEzLjMgMC0yNCAxMC43LTI0IDI0czEwLjcgMjQgMjQgMjRsNDAgMGMzNS4zIDAgNjQtMjguNyA2NC02NCAwLS43IDAtMS40IDAtMiA1LjEgMS4zIDEwLjUgMiAxNiAyIDcuOSAwIDE1LjQtMS40IDIyLjQtNHptNzMuNi0yOGMwIDguOC03LjIgMTYtMTYgMTZzLTE2LTcuMi0xNi0xNmwwLTQ4YzAtOC44IDcuMi0xNiAxNi0xNnMxNiA3LjIgMTYgMTZsMCA0OHoiXX0sTjV0PXtwcmVmaXg6ImZhciIsaWNvbk5hbWU6ImNvbXBhc3MiLGljb246WzUxMiw1MTIsWzEyOTUxN10sImYxNGUiLCJNNDY0IDI1NmEyMDggMjA4IDAgMSAwIC00MTYgMCAyMDggMjA4IDAgMSAwIDQxNiAwek0wIDI1NmEyNTYgMjU2IDAgMSAxIDUxMiAwIDI1NiAyNTYgMCAxIDEgLTUxMiAwem0zMDYuNyA2OS4xTDE2Mi40IDM4MC42Yy0xOS40IDcuNS0zOC41LTExLjYtMzEtMzFsNTUuNS0xNDQuM2MzLjMtOC41IDkuOS0xNS4xIDE4LjQtMTguNGwxNDQuMy01NS41YzE5LjQtNy41IDM4LjUgMTEuNiAzMSAzMUwzMjUuMSAzMDYuN2MtMy4zIDguNS05LjkgMTUuMS0xOC40IDE4LjR6TTI4OCAyNTZhMzIgMzIgMCAxIDAgLTY0IDAgMzIgMzIgMCAxIDAgNjQgMHoiXX0sRjV0PXtwcmVmaXg6ImZhciIsaWNvbk5hbWU6InNxdWFyZSIsaWNvbjpbNDQ4LDUxMixbOTYzMiw5NzIzLDk3MjQsNjE1OTBdLCJmMGM4IiwiTTM4NCA4MGM4LjggMCAxNiA3LjIgMTYgMTZsMCAzMjBjMCA4LjgtNy4yIDE2LTE2IDE2TDY0IDQzMmMtOC44IDAtMTYtNy4yLTE2LTE2TDQ4IDk2YzAtOC44IDcuMi0xNiAxNi0xNmwzMjAgMHpNNjQgMzJDMjguNyAzMiAwIDYwLjcgMCA5NkwwIDQxNmMwIDM1LjMgMjguNyA2NCA2NCA2NGwzMjAgMGMzNS4zIDAgNjQtMjguNyA2NC02NGwwLTMyMGMwLTM1LjMtMjguNy02NC02NC02NEw2NCAzMnoiXX0sRG9lPXtwcmVmaXg6ImZhciIsaWNvbk5hbWU6ImZhY2UtZ3JpbiIsaWNvbjpbNTEyLDUxMixbMTI4NTEyLCJncmluIl0sImY1ODAiLCJNNDY0IDI1NmEyMDggMjA4IDAgMSAwIC00MTYgMCAyMDggMjA4IDAgMSAwIDQxNiAwek0wIDI1NmEyNTYgMjU2IDAgMSAxIDUxMiAwIDI1NiAyNTYgMCAxIDEgLTUxMiAwem0zNzIuMiA0Ni4zYzExLjgtMy42IDIzLjcgNi4xIDE5LjYgMTcuOC0xOS44IDU1LjktNzMuMSA5Ni0xMzUuOCA5Ni02Mi43IDAtMTE2LTQwLTEzNS44LTk1LjktNC4xLTExLjYgNy44LTIxLjQgMTkuNi0xNy44IDM0LjcgMTAuNiA3NC4yIDE2LjUgMTE2LjEgMTYuNSA0MiAwIDgxLjUtNiAxMTYuMy0xNi42ek0xNDQgMjA4YTMyIDMyIDAgMSAxIDY0IDAgMzIgMzIgMCAxIDEgLTY0IDB6bTE5Mi0zMmEzMiAzMiAwIDEgMSAwIDY0IDMyIDMyIDAgMSAxIDAtNjR6Il19LE81dD1Eb2UsRW9lPXtwcmVmaXg6ImZhciIsaWNvbk5hbWU6ImZhY2Utc21pbGUiLGljb246WzUxMiw1MTIsWzEyODU3OCwic21pbGUiXSwiZjExOCIsIk00NjQgMjU2YTIwOCAyMDggMCAxIDAgLTQxNiAwIDIwOCAyMDggMCAxIDAgNDE2IDB6TTAgMjU2YTI1NiAyNTYgMCAxIDEgNTEyIDAgMjU2IDI1NiAwIDEgMSAtNTEyIDB6bTE3Ny4zIDYzLjRDMTkyLjMgMzM1IDIxOC40IDM1MiAyNTYgMzUyczYzLjctMTcgNzguNy0zMi42YzkuMi05LjYgMjQuNC05LjkgMzMuOS0uN3M5LjkgMjQuNCAuNyAzMy45Yy0yMi4xIDIzLTYwIDQ3LjQtMTEzLjMgNDcuNHMtOTEuMi0yNC40LTExMy4zLTQ3LjRjLTkuMi05LjYtOC45LTI0LjggLjctMzMuOXMyNC44LTguOSAzMy45IC43ek0xNDQgMjA4YTMyIDMyIDAgMSAxIDY0IDAgMzIgMzIgMCAxIDEgLTY0IDB6bTE5Mi0zMmEzMiAzMiAwIDEgMSAwIDY0IDMyIDMyIDAgMSAxIDAtNjR6Il19LFI1dD1Fb2UsJG9lPXtwcmVmaXg6ImZhciIsaWNvbk5hbWU6ImZhY2Utc21pbGUtYmVhbSIsaWNvbjpbNTEyLDUxMixbMTI4NTIyLCJzbWlsZS1iZWFtIl0sImY1YjgiLCJNNDY0IDI1NmEyMDggMjA4IDAgMSAwIC00MTYgMCAyMDggMjA4IDAgMSAwIDQxNiAwek0wIDI1NmEyNTYgMjU2IDAgMSAxIDUxMiAwIDI1NiAyNTYgMCAxIDEgLTUxMiAwem0xNzcuMyA2My40QzE5Mi4zIDMzNSAyMTguNCAzNTIgMjU2IDM1MnM2My43LTE3IDc4LjctMzIuNmM5LjItOS42IDI0LjQtOS45IDMzLjktLjdzOS45IDI0LjQgLjcgMzMuOWMtMjIuMSAyMy02MCA0Ny40LTExMy4zIDQ3LjRzLTkxLjItMjQuNC0xMTMuMy00Ny40Yy05LjItOS42LTguOS0yNC44IC43LTMzLjlzMjQuOC04LjkgMzMuOSAuN3pNMTc2IDE4MGMtMTUuNSAwLTI4IDEyLjUtMjggMjhsMCA4YzAgMTEtOSAyMC0yMCAyMHMtMjAtOS0yMC0yMGwwLThjMC0zNy42IDMwLjQtNjggNjgtNjhzNjggMzAuNCA2OCA2OGwwIDhjMCAxMS05IDIwLTIwIDIwcy0yMC05LTIwLTIwbDAtOGMwLTE1LjUtMTIuNS0yOC0yOC0yOHptMTMyIDI4bDAgOGMwIDExLTkgMjAtMjAgMjBzLTIwLTktMjAtMjBsMC04YzAtMzcuNiAzMC40LTY4IDY4LTY4czY4IDMwLjQgNjggNjhsMCA4YzAgMTEtOSAyMC0yMCAyMHMtMjAtOS0yMC0yMGwwLThjMC0xNS41LTEyLjUtMjgtMjgtMjhzLTI4IDEyLjUtMjggMjh6Il19LEI1dD0kb2UsSDV0PXtwcmVmaXg6ImZhciIsaWNvbk5hbWU6ImZvbGRlci1jbG9zZWQiLGljb246WzUxMiw1MTIsW10sImUxODUiLCJNNDQ4IDQwMEw2NCA0MDBjLTguOCAwLTE2LTcuMi0xNi0xNmwwLTE0NCA0MTYgMCAwIDE0NGMwIDguOC03LjIgMTYtMTYgMTZ6bTE2LTIwOGwtNDE2IDAgMC05NmMwLTguOCA3LjItMTYgMTYtMTZsMTM4LjcgMGMzLjUgMCA2LjggMS4xIDkuNiAzLjJMMjUwLjcgMTEyYzEzLjggMTAuNCAzMC43IDE2IDQ4IDE2TDQ0OCAxMjhjOC44IDAgMTYgNy4yIDE2IDE2bDAgNDh6TTY0IDQ0OGwzODQgMGMzNS4zIDAgNjQtMjguNyA2NC02NGwwLTI0MGMwLTM1LjMtMjguNy02NC02NC02NEwyOTguNyA4MGMtNi45IDAtMTMuNy0yLjItMTkuMi02LjRMMjQxLjEgNDQuOEMyMzAgMzYuNSAyMTYuNSAzMiAyMDIuNyAzMkw2NCAzMkMyOC43IDMyIDAgNjAuNyAwIDk2TDAgMzg0YzAgMzUuMyAyOC43IDY0IDY0IDY0eiJdfSxxNXQ9e3ByZWZpeDoiZmFyIixpY29uTmFtZToia2V5Ym9hcmQiLGljb246WzU3Niw1MTIsWzllM10sImYxMWMiLCJNNjQgMTEyYy04LjggMC0xNiA3LjItMTYgMTZsMCAyNTZjMCA4LjggNy4yIDE2IDE2IDE2bDQ0OCAwYzguOCAwIDE2LTcuMiAxNi0xNmwwLTI1NmMwLTguOC03LjItMTYtMTYtMTZMNjQgMTEyek0wIDEyOEMwIDkyLjcgMjguNyA2NCA2NCA2NGw0NDggMGMzNS4zIDAgNjQgMjguNyA2NCA2NGwwIDI1NmMwIDM1LjMtMjguNyA2NC02NCA2NEw2NCA0NDhjLTM1LjMgMC02NC0yOC43LTY0LTY0TDAgMTI4ek0xNzYgMzIwbDIyNCAwYzguOCAwIDE2IDcuMiAxNiAxNmwwIDE2YzAgOC44LTcuMiAxNi0xNiAxNmwtMjI0IDBjLTguOCAwLTE2LTcuMi0xNi0xNmwwLTE2YzAtOC44IDcuMi0xNiAxNi0xNnptLTcyLTcyYzAtOC44IDcuMi0xNiAxNi0xNmwxNiAwYzguOCAwIDE2IDcuMiAxNiAxNmwwIDE2YzAgOC44LTcuMiAxNi0xNiAxNmwtMTYgMGMtOC44IDAtMTYtNy4yLTE2LTE2bDAtMTZ6bTE2LTk2bDE2IDBjOC44IDAgMTYgNy4yIDE2IDE2bDAgMTZjMCA4LjgtNy4yIDE2LTE2IDE2bC0xNiAwYy04LjggMC0xNi03LjItMTYtMTZsMC0xNmMwLTguOCA3LjItMTYgMTYtMTZ6bTY0IDk2YzAtOC44IDcuMi0xNiAxNi0xNmwxNiAwYzguOCAwIDE2IDcuMiAxNiAxNmwwIDE2YzAgOC44LTcuMiAxNi0xNiAxNmwtMTYgMGMtOC44IDAtMTYtNy4yLTE2LTE2bDAtMTZ6bTE2LTk2bDE2IDBjOC44IDAgMTYgNy4yIDE2IDE2bDAgMTZjMCA4LjgtNy4yIDE2LTE2IDE2bC0xNiAwYy04LjggMC0xNi03LjItMTYtMTZsMC0xNmMwLTguOCA3LjItMTYgMTYtMTZ6bTY0IDk2YzAtOC44IDcuMi0xNiAxNi0xNmwxNiAwYzguOCAwIDE2IDcuMiAxNiAxNmwwIDE2YzAgOC44LTcuMiAxNi0xNiAxNmwtMTYgMGMtOC44IDAtMTYtNy4yLTE2LTE2bDAtMTZ6bTE2LTk2bDE2IDBjOC44IDAgMTYgNy4yIDE2IDE2bDAgMTZjMCA4LjgtNy4yIDE2LTE2IDE2bC0xNiAwYy04LjggMC0xNi03LjItMTYtMTZsMC0xNmMwLTguOCA3LjItMTYgMTYtMTZ6bTY0IDk2YzAtOC44IDcuMi0xNiAxNi0xNmwxNiAwYzguOCAwIDE2IDcuMiAxNiAxNmwwIDE2YzAgOC44LTcuMiAxNi0xNiAxNmwtMTYgMGMtOC44IDAtMTYtNy4yLTE2LTE2bDAtMTZ6bTE2LTk2bDE2IDBjOC44IDAgMTYgNy4yIDE2IDE2bDAgMTZjMCA4LjgtNy4yIDE2LTE2IDE2bC0xNiAwYy04LjggMC0xNi03LjItMTYtMTZsMC0xNmMwLTguOCA3LjItMTYgMTYtMTZ6bTY0IDk2YzAtOC44IDcuMi0xNiAxNi0xNmwxNiAwYzguOCAwIDE2IDcuMiAxNiAxNmwwIDE2YzAgOC44LTcuMiAxNi0xNiAxNmwtMTYgMGMtOC44IDAtMTYtNy4yLTE2LTE2bDAtMTZ6bTE2LTk2bDE2IDBjOC44IDAgMTYgNy4yIDE2IDE2bDAgMTZjMCA4LjgtNy4yIDE2LTE2IDE2bC0xNiAwYy04LjggMC0xNi03LjItMTYtMTZsMC0xNmMwLTguOCA3LjItMTYgMTYtMTZ6Il19LElvZT17cHJlZml4OiJmYXIiLGljb25OYW1lOiJmYWNlLXJvbGxpbmctZXllcyIsaWNvbjpbNTEyLDUxMixbMTI4NTgwLCJtZWgtcm9sbGluZy1leWVzIl0sImY1YTUiLCJNMjU2IDQ4YTIwOCAyMDggMCAxIDEgMCA0MTYgMjA4IDIwOCAwIDEgMSAwLTQxNnptMCA0NjRhMjU2IDI1NiAwIDEgMCAwLTUxMiAyNTYgMjU2IDAgMSAwIDAgNTEyek0xNzYgMzc2YzAgMTMuMyAxMC43IDI0IDI0IDI0bDExMiAwYzEzLjMgMCAyNC0xMC43IDI0LTI0cy0xMC43LTI0LTI0LTI0bC0xMTIgMGMtMTMuMyAwLTI0IDEwLjctMjQgMjR6TTE2MCAyNjRjLTIyLjEgMC00MC0xNy45LTQwLTQwIDAtOS41IDMuMy0xOC4xIDguOC0yNSAzLjIgMTQuMyAxNiAyNSAzMS4yIDI1czI4LTEwLjcgMzEuMi0yNWM1LjUgNi44IDguOCAxNS41IDguOCAyNSAwIDIyLjEtMTcuOSA0MC00MCA0MHptMCA0MGE4MCA4MCAwIDEgMCAwLTE2MCA4MCA4MCAwIDEgMCAwIDE2MHptMTkyLTQwYy0yMi4xIDAtNDAtMTcuOS00MC00MCAwLTkuNSAzLjMtMTguMSA4LjgtMjUgMy4yIDE0LjMgMTYgMjUgMzEuMiAyNXMyOC0xMC43IDMxLjItMjVjNS41IDYuOCA4LjggMTUuNSA4LjggMjUgMCAyMi4xLTE3LjkgNDAtNDAgNDB6bTAgNDBhODAgODAgMCAxIDAgMC0xNjAgODAgODAgMCAxIDAgMCAxNjB6Il19LGo1dD1Jb2UsUG9lPXtwcmVmaXg6ImZhciIsaWNvbk5hbWU6ImZhY2UtZ3JpbWFjZSIsaWNvbjpbNTEyLDUxMixbMTI4NTU2LCJncmltYWNlIl0sImY1N2YiLCJNMjU2IDQ4YTIwOCAyMDggMCAxIDAgMCA0MTYgMjA4IDIwOCAwIDEgMCAwLTQxNnpNNTEyIDI1NmEyNTYgMjU2IDAgMSAxIC01MTIgMCAyNTYgMjU2IDAgMSAxIDUxMiAwek0xNTIgMzUyYzAgMTEuOSA4LjYgMjEuOCAyMCAyMy43bDAtNDcuM2MtMTEuNCAxLjktMjAgMTEuOC0yMCAyMy43em04NCAyNGwwLTQ4LTI0IDAgMCA0OCAyNCAwem02NCAwbDAtNDgtMjQgMCAwIDQ4IDI0IDB6bTQwLS4zYzExLjQtMS45IDIwLTExLjggMjAtMjMuN3MtOC42LTIxLjgtMjAtMjMuN2wwIDQ3LjN6TTE3NiAyODhsMTYwIDBjMzUuMyAwIDY0IDI4LjcgNjQgNjRzLTI4LjcgNjQtNjQgNjRsLTE2MCAwYy0zNS4zIDAtNjQtMjguNy02NC02NHMyOC43LTY0IDY0LTY0em0wLTExMmEzMiAzMiAwIDEgMSAwIDY0IDMyIDMyIDAgMSAxIDAtNjR6bTEyOCAzMmEzMiAzMiAwIDEgMSA2NCAwIDMyIDMyIDAgMSAxIC02NCAweiJdfSxWNXQ9UG9lLE5vZT17cHJlZml4OiJmYXIiLGljb25OYW1lOiJjaXJjbGUtZG90IixpY29uOls1MTIsNTEyLFsxMjgyODAsImRvdC1jaXJjbGUiXSwiZjE5MiIsIk0yNTYgNTEyYTI1NiAyNTYgMCAxIDEgMC01MTIgMjU2IDI1NiAwIDEgMSAwIDUxMnptMC00NjRhMjA4IDIwOCAwIDEgMCAwIDQxNiAyMDggMjA4IDAgMSAwIDAtNDE2em0wIDMwNGE5NiA5NiAwIDEgMSAwLTE5MiA5NiA5NiAwIDEgMSAwIDE5MnoiXX0sVTV0PU5vZSxXNXQ9e3ByZWZpeDoiZmFyIixpY29uTmFtZToib2JqZWN0LWdyb3VwIixpY29uOls1NzYsNTEyLFtdLCJmMjQ3IiwiTTQwIDY0YTI0IDI0IDAgMSAxIDQ4IDAgMjQgMjQgMCAxIDEgLTQ4IDB6bTQ4IDU5LjNjMTYtNi41IDI4LjktMTkuMyAzNS4zLTM1LjNsMzI5LjMgMGM2LjUgMTYgMTkuMyAyOC45IDM1LjMgMzUuM2wwIDI2NS4zYy0xNiA2LjUtMjguOSAxOS4zLTM1LjMgMzUuM2wtMzI5LjMgMGMtNi41LTE2LTE5LjMtMjguOS0zNS4zLTM1LjNsMC0yNjUuM3pNNTEyIDBjLTI2LjkgMC00OS45IDE2LjUtNTkuMyA0MEwxMjMuMyA0MEMxMTMuOSAxNi41IDkwLjkgMCA2NCAwIDI4LjcgMCAwIDI4LjcgMCA2NCAwIDkwLjkgMTYuNSAxMTMuOSA0MCAxMjMuM2wwIDI2NS4zYy0yMy41IDkuNS00MCAzMi41LTQwIDU5LjMgMCAzNS4zIDI4LjcgNjQgNjQgNjQgMjYuOSAwIDQ5LjktMTYuNSA1OS4zLTQwbDMyOS4zIDBjOS41IDIzLjUgMzIuNSA0MCA1OS4zIDQwIDM1LjMgMCA2NC0yOC43IDY0LTY0IDAtMjYuOS0xNi41LTQ5LjktNDAtNTkuM2wwLTI2NS4zYzIzLjUtOS41IDQwLTMyLjUgNDAtNTkuMyAwLTM1LjMtMjguNy02NC02NC02NHpNNDg4IDY0YTI0IDI0IDAgMSAxIDQ4IDAgMjQgMjQgMCAxIDEgLTQ4IDB6TTY0IDQyNGEyNCAyNCAwIDEgMSAwIDQ4IDI0IDI0IDAgMSAxIDAtNDh6bTQyNCAyNGEyNCAyNCAwIDEgMSA0OCAwIDI0IDI0IDAgMSAxIC00OCAwek0xOTIgMTc2bDg4IDAgMCA1Ni04OCAwIDAtNTZ6bS04LTQwYy0xNy43IDAtMzIgMTQuMy0zMiAzMmwwIDcyYzAgMTcuNyAxNC4zIDMyIDMyIDMybDEwNCAwYzE3LjcgMCAzMi0xNC4zIDMyLTMybDAtNzJjMC0xNy43LTE0LjMtMzItMzItMzJsLTEwNCAwem03MiAxODRsMCAyNGMwIDE3LjcgMTQuMyAzMiAzMiAzMmwxMDQgMGMxNy43IDAgMzItMTQuMyAzMi0zMmwwLTcyYzAtMTcuNy0xNC4zLTMyLTMyLTMybC0yNCAwYzAgMTQuNi0zLjkgMjguMi0xMC43IDQwbDI2LjcgMCAwIDU2LTg4IDAgMC0xNi40Yy0yLjYgLjMtNS4zIC40LTggLjRsLTMyIDB6Il19LEZvZT17cHJlZml4OiJmYXIiLGljb25OYW1lOiJmYWNlLWZsdXNoZWQiLGljb246WzUxMiw1MTIsWzEyODU2MywiZmx1c2hlZCJdLCJmNTc5IiwiTTQ2NCAyNTZhMjA4IDIwOCAwIDEgMSAtNDE2IDAgMjA4IDIwOCAwIDEgMSA0MTYgMHpNMjU2IDBhMjU2IDI1NiAwIDEgMCAwIDUxMiAyNTYgMjU2IDAgMSAwIDAtNTEyek0xNjAgMjQ4YTI0IDI0IDAgMSAwIDAtNDggMjQgMjQgMCAxIDAgMCA0OHptMjE2LTI0YTI0IDI0IDAgMSAwIC00OCAwIDI0IDI0IDAgMSAwIDQ4IDB6TTE5MiAzNTJjLTEzLjMgMC0yNCAxMC43LTI0IDI0czEwLjcgMjQgMjQgMjRsMTI4IDBjMTMuMyAwIDI0LTEwLjcgMjQtMjRzLTEwLjctMjQtMjQtMjRsLTEyOCAwek0xNjAgMTc2YTQ4IDQ4IDAgMSAxIDAgOTYgNDggNDggMCAxIDEgMC05NnptMCAxMjhhODAgODAgMCAxIDAgMC0xNjAgODAgODAgMCAxIDAgMCAxNjB6bTE0NC04MGE0OCA0OCAwIDEgMSA5NiAwIDQ4IDQ4IDAgMSAxIC05NiAwem0xMjggMGE4MCA4MCAwIDEgMCAtMTYwIDAgODAgODAgMCAxIDAgMTYwIDB6Il19LEc1dD1Gb2UsT29lPXtwcmVmaXg6ImZhciIsaWNvbk5hbWU6InN0YXItaGFsZi1zdHJva2UiLGljb246WzU3Niw1MTIsWyJzdGFyLWhhbGYtYWx0Il0sImY1YzAiLCJNMzA5LjUtMTguOWMtNC4xLTgtMTIuNC0xMy4xLTIxLjQtMTMuMXMtMTcuMyA1LjEtMjEuNCAxMy4xTDE5My4xIDEyNS4zIDMzLjIgMTUwLjdjLTguOSAxLjQtMTYuMyA3LjctMTkuMSAxNi4zcy0uNSAxOCA1LjggMjQuNGwxMTQuNCAxMTQuNS0yNS4yIDE1OS45Yy0xLjQgOC45IDIuMyAxNy45IDkuNiAyMy4yczE2LjkgNi4xIDI1IDJMMjg4LjEgNDE3LjYgNDMyLjQgNDkxYzggNC4xIDE3LjcgMy4zIDI1LTJzMTEtMTQuMiA5LjYtMjMuMkw0NDEuNyAzMDUuOSA1NTYuMSAxOTEuNGM2LjQtNi40IDguNi0xNS44IDUuOC0yNC40cy0xMC4xLTE0LjktMTkuMS0xNi4zTDM4MyAxMjUuMyAzMDkuNS0xOC45ek0yNjQuMSA5MS44bDAgMjg0LjEtMTAwLjEgNTAuOSAxOS44LTEyNS41YzEuMi03LjYtMS4zLTE1LjMtNi43LTIwLjdsLTg5LjgtODkuOSAxMjUuNS0yMGM3LjYtMS4yIDE0LjEtNiAxNy42LTEyLjhsMzMuOC02Ni4yem00OCAyODQuMWwwLTI4NC4xIDMzLjggNjYuMmMzLjUgNi44IDEwIDExLjYgMTcuNiAxMi44bDEyNS41IDIwLTg5LjggODkuOWMtNS40IDUuNC03LjkgMTMuMS02LjcgMjAuN2wxOS44IDEyNS41LTEwMC4xLTUwLjl6Il19LFk1dD1Pb2UsWjV0PXtwcmVmaXg6ImZhciIsaWNvbk5hbWU6ImZpbGUtdmlkZW8iLGljb246WzM4NCw1MTIsW10sImYxYzgiLCJNNjQgNDhsMTEyIDAgMCA4OGMwIDM5LjggMzIuMiA3MiA3MiA3Mmw4OCAwIDAgMjQwYzAgOC44LTcuMiAxNi0xNiAxNkw2NCA0NjRjLTguOCAwLTE2LTcuMi0xNi0xNkw0OCA2NGMwLTguOCA3LjItMTYgMTYtMTZ6TTIyNCA2Ny45bDkyLjEgOTIuMS02OC4xIDBjLTEzLjMgMC0yNC0xMC43LTI0LTI0bDAtNjguMXpNNjQgMEMyOC43IDAgMCAyOC43IDAgNjRMMCA0NDhjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMjU2IDBjMzUuMyAwIDY0LTI4LjcgNjQtNjRsMC0yNjEuNWMwLTE3LTYuNy0zMy4zLTE4LjctNDUuM0wyNDIuNyAxOC43QzIzMC43IDYuNyAyMTQuNSAwIDE5Ny41IDBMNjQgMHpNODAgMjg4bDAgOTZjMCAxNy43IDE0LjMgMzIgMzIgMzJsOTYgMGMxNy43IDAgMzItMTQuMyAzMi0zMmwwLTI0IDM1IDM1YzMuMiAzLjIgNy41IDUgMTIgNSA5LjQgMCAxNy03LjYgMTctMTdsMC05NC4xYzAtOS40LTcuNi0xNy0xNy0xNy00LjUgMC04LjggMS44LTEyIDVsLTM1IDM1IDAtMjRjMC0xNy43LTE0LjMtMzItMzItMzJsLTk2IDBjLTE3LjcgMC0zMiAxNC4zLTMyIDMyeiJdfSxSb2U9e3ByZWZpeDoiZmFyIixpY29uTmFtZToiZmFjZS1sYXVnaCIsaWNvbjpbNTEyLDUxMixbImxhdWdoIl0sImY1OTkiLCJNNDY0IDI1NmEyMDggMjA4IDAgMSAwIC00MTYgMCAyMDggMjA4IDAgMSAwIDQxNiAwek0wIDI1NmEyNTYgMjU2IDAgMSAxIDUxMiAwIDI1NiAyNTYgMCAxIDEgLTUxMiAwem0xMTguMyA1OC4yYy00LjItMTMuNyA3LjEtMjYuMiAyMS40LTI2LjJsMjMyLjYgMGMxNC4zIDAgMjUuNiAxMi41IDIxLjQgMjYuMi0xOCA1OC45LTcyLjkgMTAxLjgtMTM3LjcgMTAxLjhTMTM2LjMgMzczLjEgMTE4LjMgMzE0LjJ6TTE0NCAxOTJhMzIgMzIgMCAxIDEgNjQgMCAzMiAzMiAwIDEgMSAtNjQgMHptMTkyLTMyYTMyIDMyIDAgMSAxIDAgNjQgMzIgMzIgMCAxIDEgMC02NHoiXX0sWDV0PVJvZSxRNXQ9e3ByZWZpeDoiZmFyIixpY29uTmFtZToiaGFuZC1wb2ludGVyIixpY29uOls0NDgsNTEyLFtdLCJmMjVhIiwiTTE2MCA2NGMwLTguOCA3LjItMTYgMTYtMTZzMTYgNy4yIDE2IDE2bDAgMTM2YzAgMTAuMyA2LjYgMTkuNSAxNi40IDIyLjhzMjAuNi0uMSAyNi44LTguM2MzLTMuOSA3LjYtNi40IDEyLjgtNi40IDguOCAwIDE2IDcuMiAxNiAxNiAwIDEwLjMgNi42IDE5LjUgMTYuNCAyMi44czIwLjYtLjEgMjYuOC04LjNjMy0zLjkgNy42LTYuNCAxMi44LTYuNCA3LjggMCAxNC4zIDUuNiAxNS43IDEzIDEuNiA4LjIgNy4zIDE1LjEgMTUuMSAxOHMxNi43IDEuNiAyMy4zLTMuNmMyLjctMi4xIDYuMS0zLjQgOS45LTMuNCA4LjggMCAxNiA3LjIgMTYgMTZsMCAxMjBjMCAzOS44LTMyLjIgNzItNzIgNzJsLTExNi42IDBjLTM3LjQgMC03Mi40LTE4LjctOTMuMi00OS45TDUwLjcgMzEyLjljLTQuOS03LjQtMi45LTE3LjMgNC40LTIyLjJzMTcuMy0yLjkgMjIuMiA0LjRMMTE2IDM1My4yYzUuOSA4LjggMTYuOCAxMi43IDI2LjkgOS43czE3LTEyLjQgMTctMjNMMTYwIDY0ek0xNzYgMGMtMzUuMyAwLTY0IDI4LjctNjQgNjRsMCAxOTcuN0M5MS4yIDIzOCA1NS41IDIzMi44IDI4LjUgMjUwLjctLjkgMjcwLjQtOC45IDMxMC4xIDEwLjggMzM5LjVMNzguMyA0NDAuOGMyOS43IDQ0LjUgNzkuNiA3MS4yIDEzMy4xIDcxLjJMMzI4IDUxMmM2Ni4zIDAgMTIwLTUzLjcgMTIwLTEyMGwwLTEyMGMwLTM1LjMtMjguNy02NC02NC02NC00LjUgMC04LjggLjUtMTMgMS4zLTExLjctMTUuNC0zMC4yLTI1LjMtNTEtMjUuMy02LjkgMC0xMy41IDEuMS0xOS43IDMuMS0xMS42LTE2LjQtMzAuNy0yNy4xLTUyLjMtMjcuMS0yLjcgMC01LjQgLjItOCAuNUwyNDAgNjRjMC0zNS4zLTI4LjctNjQtNjQtNjR6bTQ4IDMwNGMwLTguOC03LjItMTYtMTYtMTZzLTE2IDcuMi0xNiAxNmwwIDk2YzAgOC44IDcuMiAxNiAxNiAxNnMxNi03LjIgMTYtMTZsMC05NnptNDgtMTZjLTguOCAwLTE2IDcuMi0xNiAxNmwwIDk2YzAgOC44IDcuMiAxNiAxNiAxNnMxNi03LjIgMTYtMTZsMC05NmMwLTguOC03LjItMTYtMTYtMTZ6bTgwIDE2YzAtOC44LTcuMi0xNi0xNi0xNnMtMTYgNy4yLTE2IDE2bDAgOTZjMCA4LjggNy4yIDE2IDE2IDE2czE2LTcuMiAxNi0xNmwwLTk2eiJdfSxKNXQ9e3ByZWZpeDoiZmFyIixpY29uTmFtZToicmVnaXN0ZXJlZCIsaWNvbjpbNTEyLDUxMixbMTc0XSwiZjI1ZCIsIk0yNTYgNDhhMjA4IDIwOCAwIDEgMSAwIDQxNiAyMDggMjA4IDAgMSAxIDAtNDE2em0wIDQ2NGEyNTYgMjU2IDAgMSAwIDAtNTEyIDI1NiAyNTYgMCAxIDAgMCA1MTJ6TTIwMCAxNDRjLTEzLjMgMC0yNCAxMC43LTI0IDI0bDAgMTc2YzAgMTMuMyAxMC43IDI0IDI0IDI0czI0LTEwLjcgMjQtMjRsMC01NiAzNC40IDAgNDEgNjguM2M2LjggMTEuNCAyMS42IDE1IDMyLjkgOC4yczE1LTIxLjYgOC4yLTMyLjlsLTMwLjItNTAuM2MyNC42LTExLjUgNDEuNi0zNi40IDQxLjYtNjUuMyAwLTM5LjgtMzIuMi03Mi03Mi03MmwtODAgMHptNzIgOTZsLTQ4IDAgMC00OCA1NiAwYzEzLjMgMCAyNCAxMC43IDI0IDI0cy0xMC43IDI0LTI0IDI0bC04IDB6Il19LFNacj17ZmFTcXVhcmVNaW51czp2bmUsZmFNaW51c1NxdWFyZTpQM3QsZmFDYWxlbmRhckNoZWNrOk4zdCxmYUZhY2VLaXNzOnhuZSxmYUtpc3M6RjN0LGZhUGFzdGU6a2csZmFGaWxlQ2xpcGJvYXJkOk8zdCxmYUhhbmRQb2ludExlZnQ6UjN0LGZhRmlsZUV4Y2VsOkIzdCxmYUVudmVsb3BlOkgzdCxmYVNxdWFyZUNhcmV0RG93bjp5bmUsZmFDYXJldFNxdWFyZURvd246cTN0LGZhVHJ1Y2s6ajN0LGZhQmVsbDpWM3QsZmFNZXNzYWdlOlNnLGZhQ29tbWVudEFsdDpVM3QsZmFGYWNlRGl6enk6d25lLGZhRGl6enk6VzN0LGZhQ2FsZW5kYXJEYXlzOk1uZSxmYUNhbGVuZGFyQWx0OkczdCxmYUhhbmRQb2ludFVwOlkzdCxmYUhhbmRMaXphcmQ6WjN0LGZhU3F1YXJlRnVsbDpYM3QsZmFDaXJjbGVQYXVzZTprbmUsZmFQYXVzZUNpcmNsZTpRM3QsZmFIYXJkRHJpdmU6U25lLGZhSGRkOkozdCxmYUZpbGVaaXBwZXI6em5lLGZhRmlsZUFyY2hpdmU6SzN0LGZhRmxvcHB5RGlzazpDbmUsZmFTYXZlOmU2dCxmYUZhY2VHcmluVG9uZ3VlU3F1aW50OlRuZSxmYUdyaW5Ub25ndWVTcXVpbnQ6dDZ0LGZhQ2FtZXJhOl9uZSxmYUNhbWVyYUFsdDpyNnQsZmFGYWNlR3JpblN0YXJzOkxuZSxmYUdyaW5TdGFyczppNnQsZmFFeWU6YTZ0LGZhRmFjZVNhZFRlYXI6QW5lLGZhU2FkVGVhcjpuNnQsZmFTaGFyZUZyb21TcXVhcmU6RG5lLGZhU2hhcmVTcXVhcmU6bzZ0LGZhTm90ZVN0aWNreTpFbmUsZmFTdGlja3lOb3RlOnM2dCxmYUhhbmRCYWNrRmlzdDokbmUsZmFIYW5kUm9jazpsNnQsZmFDaGVzc1F1ZWVuOmM2dCxmYUZhY2VHcmluVGVhcnM6SW5lLGZhR3JpblRlYXJzOmQ2dCxmYVBlblRvU3F1YXJlOlBuZSxmYUVkaXQ6dTZ0LGZhRmFjZUdyaW5CZWFtU3dlYXQ6Tm5lLGZhR3JpbkJlYW1Td2VhdDpwNnQsZmFDbG9jazpGbmUsZmFDbG9ja0ZvdXI6aDZ0LGZhRmFjZUxhdWdoV2luazpPbmUsZmFMYXVnaFdpbms6ZjZ0LGZhUGFwZXJQbGFuZTptNnQsZmFIZWFydDpnNnQsZmFGb250QXdlc29tZTpIQSxmYUZvbnRBd2Vzb21lRmxhZzpiNnQsZmFGb250QXdlc29tZUxvZ29GdWxsOnY2dCxmYUNsb25lOng2dCxmYUZvbGRlck9wZW46eTZ0LGZhV2luZG93TWluaW1pemU6dzZ0LGZhU3RhckhhbGY6TTZ0LGZhQWxhcm1DbG9jazprNnQsZmFOZXdzcGFwZXI6UzZ0LGZhSG9zcGl0YWw6cUEsZmFIb3NwaXRhbEFsdDp6NnQsZmFIb3NwaXRhbFdpZGU6QzZ0LGZhQ2lyY2xlU3RvcDpSbmUsZmFTdG9wQ2lyY2xlOlQ2dCxmYU9iamVjdFVuZ3JvdXA6XzZ0LGZhQ29tbWVudDpMNnQsZmFDaGVzc1Bhd246QTZ0LGZhQ2FsZW5kYXJQbHVzOkQ2dCxmYUNsaXBib2FyZDpFNnQsZmFUaHVtYnNEb3duOiQ2dCxmYUlkQmFkZ2U6STZ0LGZhU3F1YXJlQ2hlY2s6Qm5lLGZhQ2hlY2tTcXVhcmU6UDZ0LGZhQ2hlc3NCaXNob3A6TjZ0LGZhRW52ZWxvcGVPcGVuOkY2dCxmYUNpcmNsZVhtYXJrOlBwLGZhVGltZXNDaXJjbGU6TzZ0LGZhWG1hcmtDaXJjbGU6UjZ0LGZhU3F1YXJlQ2FyZXRVcDpIbmUsZmFDYXJldFNxdWFyZVVwOkI2dCxmYUZpbGVJbWFnZTpINnQsZmFTcXVhcmVDYXJldFJpZ2h0OnFuZSxmYUNhcmV0U3F1YXJlUmlnaHQ6cTZ0LGZhU3VuOlpBLGZhSW1hZ2U6ajZ0LGZhTGlnaHRidWxiOlY2dCxmYUFkZHJlc3NDYXJkOmpBLGZhQ29udGFjdENhcmQ6VTZ0LGZhVmNhcmQ6VzZ0LGZhRmFjZU1laDpqbmUsZmFNZWg6RzZ0LGZhTWFwOlk2dCxmYUhhbmRQb2ludERvd246WjZ0LGZhRmFjZU1laEJsYW5rOlZuZSxmYU1laEJsYW5rOlg2dCxmYUZhY2VHcmluVG9uZ3VlOlVuZSxmYUdyaW5Ub25ndWU6UTZ0LGZhRnV0Ym9sOlZBLGZhRnV0Ym9sQmFsbDpKNnQsZmFTb2NjZXJCYWxsOks2dCxmYUZhY2VTdXJwcmlzZTpXbmUsZmFTdXJwcmlzZTplZHQsZmFGb2xkZXI6R25lLGZhRm9sZGVyQmxhbms6dGR0LGZhQ2xvdWQ6cmR0LGZhQ2lyY2xlOmlkdCxmYUZhY2VHcmluU3F1aW50OlluZSxmYUdyaW5TcXVpbnQ6YWR0LGZhQ2lyY2xlVXNlcjpabmUsZmFVc2VyQ2lyY2xlOm5kdCxmYVJlY3RhbmdsZUxpc3Q6WG5lLGZhTGlzdEFsdDpvZHQsZmFIYW5kOlFuZSxmYUhhbmRQYXBlcjpzZHQsZmFUaHVtYnNVcDpsZHQsZmFCdWlsZGluZzpjZHQsZmFDaGVzc1Jvb2s6ZGR0LGZhQ2lyY2xlUXVlc3Rpb246Sm5lLGZhUXVlc3Rpb25DaXJjbGU6dWR0LGZhRmlsZTpwZHQsZmFGYWNlU2FkQ3J5OktuZSxmYVNhZENyeTpoZHQsZmFDYWxlbmRhck1pbnVzOmZkdCxmYUZhY2VUaXJlZDplb2UsZmFUaXJlZDptZHQsZmFIYW5kUG9pbnRSaWdodDpnZHQsZmFDaXJjbGVVcDp0b2UsZmFBcnJvd0FsdENpcmNsZVVwOmJkdCxmYUhhbmRTY2lzc29yczp2ZHQsZmFHZW06eGR0LGZhUmVjdGFuZ2xlWG1hcms6d2csZmFSZWN0YW5nbGVUaW1lczp5ZHQsZmFUaW1lc1JlY3RhbmdsZTp3ZHQsZmFXaW5kb3dDbG9zZTpNZHQsZmFUcmFzaENhbjp6ZyxmYVRyYXNoQWx0OmtkdCxmYUxpZmVSaW5nOlNkdCxmYUNvcHlyaWdodDp6ZHQsZmFDaXJjbGVMZWZ0OnJvZSxmYUFycm93QWx0Q2lyY2xlTGVmdDpDZHQsZmFDYWxlbmRhcjpUZHQsZmFGYWNlRnJvd25PcGVuOmlvZSxmYUZyb3duT3BlbjpfZHQsZmFDaGFydEJhcjphb2UsZmFCYXJDaGFydDpMZHQsZmFIb3VzZTpNZyxmYUhvbWU6QWR0LGZhSG9tZUFsdDpEZHQsZmFIb21lTGdBbHQ6RWR0LGZhRmFjZUZyb3duOm5vZSxmYUZyb3duOiRkdCxmYVVzZXI6VUEsZmFVc2VyQWx0OklkdCxmYVVzZXJMYXJnZTpQZHQsZmFTbm93Zmxha2U6TmR0LGZhQm9va21hcms6RmR0LGZhU3F1YXJlQ2FyZXRMZWZ0Om9vZSxmYUNhcmV0U3F1YXJlTGVmdDpPZHQsZmFIYW5kc2hha2U6V0EsZmFIYW5kc2hha2VBbHQ6UmR0LGZhSGFuZHNoYWtlU2ltcGxlOkJkdCxmYUZhY2VTbWlsZVdpbms6c29lLGZhU21pbGVXaW5rOkhkdCxmYUZhY2VHcmluU3F1aW50VGVhcnM6bG9lLGZhR3JpblNxdWludFRlYXJzOnFkdCxmYUZpbGVBdWRpbzpqZHQsZmFDYWxlbmRhclhtYXJrOmNvZSxmYUNhbGVuZGFyVGltZXM6VmR0LGZhQ2lyY2xlRG93bjpkb2UsZmFBcnJvd0FsdENpcmNsZURvd246VWR0LGZhRmlsZUxpbmVzOkdBLGZhRmlsZUFsdDpXZHQsZmFGaWxlVGV4dDpHZHQsZmFDb21tZW50czpZZHQsZmFDaXJjbGVDaGVjazpDZyxmYUNoZWNrQ2lyY2xlOlpkdCxmYU1vb246WGR0LGZhQ2xvc2VkQ2FwdGlvbmluZzpRZHQsZmFJbWFnZXM6SmR0LGZhQ2lyY2xlUmlnaHQ6dW9lLGZhQXJyb3dBbHRDaXJjbGVSaWdodDpLZHQsZmFJZENhcmQ6cG9lLGZhRHJpdmVyc0xpY2Vuc2U6ZTV0LGZhQ2lyY2xlUGxheTpob2UsZmFQbGF5Q2lyY2xlOnQ1dCxmYUZhY2VMYXVnaEJlYW06Zm9lLGZhTGF1Z2hCZWFtOnI1dCxmYUFkZHJlc3NCb29rOm1vZSxmYUNvbnRhY3RCb29rOmk1dCxmYUhvdXJnbGFzczpnb2UsZmFIb3VyZ2xhc3NFbXB0eTphNXQsZmFIZWFkcGhvbmVzOllBLGZhSGVhZHBob25lc0FsdDpuNXQsZmFIZWFkcGhvbmVzU2ltcGxlOm81dCxmYUZpbGVQb3dlcnBvaW50OnM1dCxmYVdpbmRvd01heGltaXplOmw1dCxmYUNvbW1lbnREb3RzOmJvZSxmYUNvbW1lbnRpbmc6YzV0LGZhRmFjZUdyaW5Ub25ndWVXaW5rOnZvZSxmYUdyaW5Ub25ndWVXaW5rOmQ1dCxmYUhvdXJnbGFzc0hhbGY6eG9lLGZhSG91cmdsYXNzMjp1NXQsZmFDcmVkaXRDYXJkOnlvZSxmYUNyZWRpdENhcmRBbHQ6cDV0LGZhSGFuZFNwb2NrOmg1dCxmYUJlbGxTbGFzaDpmNXQsZmFTdGFyOm01dCxmYUZsYWc6ZzV0LGZhTGVtb246YjV0LGZhV2luZG93UmVzdG9yZTp2NXQsZmFGYWNlR3JpbkhlYXJ0czp3b2UsZmFHcmluSGVhcnRzOng1dCxmYUZhY2VLaXNzQmVhbTpNb2UsZmFLaXNzQmVhbTp5NXQsZmFGaWxlUGRmOnc1dCxmYUZhY2VHcmluV2lkZTprb2UsZmFHcmluQWx0Ok01dCxmYUZhY2VMYXVnaFNxdWludDpTb2UsZmFMYXVnaFNxdWludDprNXQsZmFGYWNlS2lzc1dpbmtIZWFydDp6b2UsZmFLaXNzV2lua0hlYXJ0OlM1dCxmYUNvcHk6WEEsZmFDaGVzc0tpbmc6ejV0LGZhU3F1YXJlUGx1czpDb2UsZmFQbHVzU3F1YXJlOkM1dCxmYUZpbGVDb2RlOlQ1dCxmYUZhY2VHcmluV2luazpUb2UsZmFHcmluV2luazpfNXQsZmFNb25leUJpbGwxOl9vZSxmYU1vbmV5QmlsbEFsdDpMNXQsZmFFeWVTbGFzaDpBNXQsZmFGaWxlV29yZDpENXQsZmFGYWNlQW5ncnk6TG9lLGZhQW5ncnk6RTV0LGZhQ2hlc3NLbmlnaHQ6JDV0LGZhRmFjZUdyaW5CZWFtOkFvZSxmYUdyaW5CZWFtOkk1dCxmYUhhbmRQZWFjZTpQNXQsZmFDb21wYXNzOk41dCxmYVNxdWFyZTpGNXQsZmFGYWNlR3JpbjpEb2UsZmFHcmluOk81dCxmYUZhY2VTbWlsZTpFb2UsZmFTbWlsZTpSNXQsZmFGYWNlU21pbGVCZWFtOiRvZSxmYVNtaWxlQmVhbTpCNXQsZmFGb2xkZXJDbG9zZWQ6SDV0LGZhS2V5Ym9hcmQ6cTV0LGZhRmFjZVJvbGxpbmdFeWVzOklvZSxmYU1laFJvbGxpbmdFeWVzOmo1dCxmYUZhY2VHcmltYWNlOlBvZSxmYUdyaW1hY2U6VjV0LGZhQ2lyY2xlRG90Ok5vZSxmYURvdENpcmNsZTpVNXQsZmFPYmplY3RHcm91cDpXNXQsZmFGYWNlRmx1c2hlZDpGb2UsZmFGbHVzaGVkOkc1dCxmYVN0YXJIYWxmU3Ryb2tlOk9vZSxmYVN0YXJIYWxmQWx0Olk1dCxmYUZpbGVWaWRlbzpaNXQsZmFGYWNlTGF1Z2g6Um9lLGZhTGF1Z2g6WDV0LGZhSGFuZFBvaW50ZXI6UTV0LGZhUmVnaXN0ZXJlZDpKNXR9fSk7dmFyIHpacixldXQsdHV0LHJ1dCxpdXQsYXV0LG51dCxvdXQsc3V0LGx1dCxjdXQsUUEsZHV0LHV1dCxwdXQsaHV0LEJvZSxmdXQsSG9lLG11dCxndXQsYnV0LHFvZSx2dXQseHV0LHl1dCx3dXQsamcsTXV0LGt1dCxqb2UsU3V0LHp1dCxDdXQsVHV0LF91dCxMdXQsQXV0LER1dCxWb2UsRXV0LCR1dCxJdXQsVW9lLFB1dCxOdXQsRnV0LE91dCxSdXQsVmcsQnV0LFdvZSxIdXQscXV0LEpBLGp1dCxWdXQsR29lLFV1dCxZb2UsV3V0LEd1dCxab2UsWXV0LFhvZSxadXQsUW9lLFh1dCxRdXQsSnV0LEt1dCxlOHQsdDh0LHI4dCxKb2UsaTh0LGE4dCxuOHQsbzh0LEtvZSxzOHQsbDh0LGM4dCxkOHQsdTh0LHA4dCxLQSxoOHQsZjh0LG04dCxlRCxnOHQsYjh0LHY4dCxlMmUseDh0LHk4dCx3OHQsTTh0LHQyZSxrOHQsWUQsUzh0LFpELHo4dCxDOHQscjJlLFQ4dCxpMmUsXzh0LEw4dCx0RCxBOHQsRDh0LEU4dCwkOHQsSTh0LFA4dCxOOHQsRjh0LFhELFVnLE84dCxSOHQsYTJlLEI4dCxIOHQsVGcscTh0LGo4dCxWOHQsbjJlLFU4dCxXOHQsRzh0LG8yZSxZOHQsczJlLFo4dCxYOHQsUTh0LEo4dCxsMmUsSzh0LGVwdCx0cHQsYzJlLHJwdCxkMmUsaXB0LGFwdCxucHQsb3B0LHJELHNwdCxscHQsY3B0LGRwdCx1cHQscHB0LGhwdCx1MmUsZnB0LG1wdCxncHQsYnB0LHZwdCxwMmUseHB0LHlwdCxfZyx3cHQsTXB0LGtwdCxTcHQsenB0LENwdCxpRCxUcHQsX3B0LExwdCxBcHQsRHB0LGgyZSxFcHQsJHB0LElwdCxQcHQsTnB0LEZwdCxmMmUsT3B0LFJwdCxCcHQsSHB0LG0yZSxxcHQsanB0LFZwdCxnMmUsVXB0LFdwdCxiMmUsR3B0LHYyZSxZcHQsWnB0LHgyZSxYcHQsUXB0LHkyZSxKcHQsdzJlLEtwdCxlaHQsV2csdGh0LEdnLHJodCxpaHQsYUQsYWh0LG5odCxvaHQsTTJlLHNodCxsaHQsazJlLGNodCxkaHQsdWh0LHBodCxTMmUsaGh0LGZodCxtaHQsZ2h0LGJodCx6MmUsdmh0LHhodCx5aHQsd2h0LEMyZSxNaHQsVDJlLGtodCxTaHQsemh0LENodCxUaHQsXzJlLF9odCxMaHQsQWh0LERodCxMMmUsRWh0LCRodCxBMmUsSWh0LEQyZSxQaHQsTmh0LEZodCxPaHQsUmh0LEJodCxFMmUsSGh0LHFodCxqaHQsVmh0LFVodCwkMmUsV2h0LEdodCxZaHQsWmh0LEkyZSxYaHQsUDJlLFFodCxRRCxKRCxOMmUsSmh0LEYyZSxLaHQsZWZ0LHRmdCxuYixPMmUscmZ0LGlmdCxhZnQsbmZ0LG9mdCxzZnQsUjJlLGxmdCxLRCxjZnQsZGZ0LHVmdCxwZnQsaGZ0LEIyZSxmZnQsSDJlLG1mdCxnZnQsYmZ0LHZmdCxxMmUseGZ0LG5ELHlmdCx3ZnQsTWZ0LGoyZSxrZnQsU2Z0LHpmdCxDZnQsVjJlLFRmdCxfZnQsTGZ0LEFmdCxVMmUsRGZ0LEVmdCwkZnQsSWZ0LFBmdCxOZnQsRmZ0LE9mdCxSZnQsQmZ0LEhmdCxxZnQsamZ0LFcyZSxWZnQsVWZ0LFdmdCxHZnQsWWZ0LFpmdCxYZnQsRzJlLFFmdCxKZnQsS2Z0LE5wLGU3dCx0N3Qscjd0LGk3dCxhN3QsWTJlLG43dCxaMmUsbzd0LFgyZSxzN3QsUTJlLGw3dCxKMmUsYzd0LFlnLGQ3dCxLMmUsdTd0LGVzZSxwN3QsdHNlLGg3dCxmN3QsbTd0LGc3dCxyc2UsYjd0LHY3dCxpc2UseDd0LHk3dCxhc2Usdzd0LE03dCxrN3QsUzd0LG5zZSx6N3QsQzd0LFQ3dCxvc2UsXzd0LEw3dCxMZyxBN3QsRDd0LEU3dCwkN3QsSTd0LFA3dCxzc2UsTjd0LGxzZSxGN3QsTzd0LFI3dCxjc2UsQjd0LEg3dCxxN3QsZHNlLGo3dCx1c2UsVjd0LG9ELFU3dCxXN3QsRzd0LFk3dCxaN3QsWDd0LFE3dCxKN3QsSzd0LGVtdCx0bXQscm10LGltdCxhbXQsQWcsbm10LG9tdCxzbXQsbG10LGNtdCxkbXQsdW10LHBtdCxwc2UsaG10LGZtdCxtbXQsZ210LGJtdCx2bXQseG10LHltdCx3bXQsTW10LGhzZSxrbXQsU210LHptdCxDbXQsVG10LF9tdCxMbXQsZnNlLEFtdCxtc2UsRG10LEVtdCxnc2UsJG10LEltdCxQbXQsTm10LGJzZSxGbXQsT210LFJtdCx2c2UsQm10LHhzZSxIbXQscW10LHlzZSxqbXQsVm10LFVtdCxXbXQsd3NlLEdtdCxZbXQsWm10LGVFLFhtdCxRbXQsSm10LE1zZSxLbXQsZTl0LHQ5dCxyOXQsaTl0LGtzZSxhOXQsbjl0LG85dCxzOXQsbDl0LFNzZSxjOXQsZDl0LHU5dCx6c2UscDl0LGg5dCxzRCxmOXQsbTl0LGc5dCxiOXQsQ3NlLHY5dCx4OXQseTl0LFRzZSx3OXQsX3NlLE05dCxrOXQsUzl0LHo5dCxaZyxDOXQsTHNlLFQ5dCxfOXQsTDl0LEE5dCxEOXQsQXNlLEU5dCxEc2UsJDl0LEVzZSxJOXQsUDl0LGxELE45dCxGOXQsJHNlLE85dCxjRCxSOXQsQjl0LEg5dCxxOXQsajl0LFY5dCxVOXQsVzl0LElzZSxHOXQsWTl0LFo5dCxYOXQsUTl0LFBzZSxKOXQsSzl0LGVndCxOc2UsdGd0LEZzZSxyZ3QsT3NlLGlndCxhZ3Qsbmd0LG9ndCxzZ3QsbGd0LGNndCxSc2UsZGd0LHVndCxwZ3QsaGd0LEJzZSxmZ3QsbWd0LGdndCxiZ3Qsdmd0LHhndCxIc2UseWd0LHdndCxxc2UsTWd0LGtndCxqc2UsU2d0LHpndCxDZ3QsVGd0LFZzZSxfZ3QsTGd0LEFndCxVc2UsRGd0LFdzZSxFZ3QsJGd0LElndCxQZ3QsR3NlLE5ndCxGZ3QsT2d0LFJndCxCZ3QsWXNlLEhndCxac2UscWd0LFhzZSxqZ3QsVmd0LFFzZSxVZ3QsSnNlLFdndCxHZ3QsWWd0LFpndCxYZ3QsUWd0LEpndCxLZ3QsZWJ0LHRidCxyYnQsZEQsaWJ0LGFidCxCcCxuYnQsb2J0LHNidCx1RCxsYnQsY2J0LGRidCx1YnQscGJ0LGhidCxmYnQsS3NlLG1idCxlbGUsZ2J0LGJidCx2YnQsdGxlLHhidCxybGUseWJ0LHdidCxwRCxNYnQsa2J0LFNidCx6YnQsRnAsQ2J0LFRidCxfYnQsTGJ0LEFidCxEYnQsRWJ0LGlsZSwkYnQsSWJ0LFBidCxOYnQsYWxlLEZidCxPYnQsUmJ0LEJidCxIYnQscWJ0LGpidCxubGUsVmJ0LFVidCxXYnQsR2J0LFlidCxaYnQsb2xlLFhidCx0RSxzbGUsUWJ0LEpidCxLYnQsbGxlLGV2dCxjbGUsdHZ0LHJ2dCxpdnQsZGxlLGF2dCxudnQsdWxlLG92dCxzdnQsbHZ0LGN2dCxwbGUsZHZ0LHV2dCxwdnQsaHZ0LGZ2dCxtdnQsaGxlLGd2dCxidnQsckUsdnZ0LHh2dCxmbGUseXZ0LHd2dCxNdnQsRGcsa3Z0LFN2dCx6dnQsQ3Z0LEVnLFR2dCxfdnQsTHZ0LEF2dCxEdnQsRXZ0LG1sZSwkdnQsaEQsSXZ0LFB2dCxOdnQsZ2xlLEZ2dCxPdnQsUnZ0LEJ2dCxIdnQscXZ0LGp2dCxibGUsVnZ0LGlFLFV2dCxXdnQsR3Z0LHZsZSxZdnQseGxlLFp2dCxYdnQseWxlLFF2dCwkZyxKdnQsS3Z0LGV4dCx0eHQscnh0LGl4dCxheHQsbnh0LG94dCx3bGUsc3h0LGx4dCxjeHQsZHh0LGZELHV4dCxweHQsTWxlLGh4dCxmeHQsbXh0LGtsZSxneHQsYnh0LHZ4dCxTbGUseHh0LHl4dCx3eHQsTXh0LGt4dCxTeHQsenh0LEN4dCxUeHQsemxlLF94dCxDbGUsTHh0LEF4dCxEeHQsRXh0LCR4dCxJeHQsUHh0LFRsZSxOeHQsRnh0LE94dCxfbGUsUnh0LEJ4dCxMbGUsSHh0LEFsZSxxeHQsRGxlLGp4dCxWeHQsVXh0LEVsZSxXeHQsJGxlLEd4dCxJbGUsWXh0LFp4dCxQbGUsWHh0LE5sZSxReHQsRmxlLEp4dCxLeHQsT2xlLGV5dCx0eXQscnl0LGl5dCxheXQsbnl0LG95dCxzeXQsbHl0LGN5dCxSbGUsZHl0LEJsZSx1eXQsSGxlLHB5dCxoeXQsYUUsZnl0LHFsZSxteXQsZ3l0LGJ5dCxqbGUsdnl0LHh5dCxWbGUseXl0LFhnLHd5dCxNeXQsa3l0LFVsZSxTeXQsV2xlLHp5dCxDeXQsR2xlLFR5dCxZbGUsX3l0LFpsZSxMeXQsQXl0LER5dCxFeXQsJHl0LFhsZSxJeXQsUWxlLFB5dCxOeXQsRnl0LE95dCxKbGUsUnl0LEJ5dCxIeXQsS2xlLHF5dCxqeXQsVnl0LGVjZSxVeXQsV3l0LEd5dCxZeXQsdGNlLFp5dCxYeXQscmNlLFF5dCxKeXQsS3l0LGljZSxld3QsdHd0LHJ3dCxhY2UsaXd0LG5jZSxhd3QsbUQsbnd0LG93dCxzd3Qsb2NlLGx3dCxjd3QsZHd0LHNjZSx1d3QscHd0LGh3dCxsY2UsZnd0LG13dCxnd3QsYnd0LHZ3dCx4d3QseXd0LHd3dCxNd3Qsa3d0LFN3dCx6d3QsY2NlLEN3dCxuRSxUd3QsZGNlLF93dCxMd3QsQXd0LER3dCx1Y2UsRXd0LCR3dCxJd3QsUHd0LE53dCxGd3QsT3d0LElnLFJ3dCxCd3QsSHd0LHF3dCxRZyxqd3QscGNlLFZ3dCxVd3QsV3d0LGhjZSxHd3QsWXd0LGZjZSxad3QsWHd0LFF3dCxKd3QsS3d0LG1jZSxlTXQsZ2NlLHRNdCxyTXQsaU10LGJjZSxhTXQsbk10LG9NdCx2Y2Usc010LGxNdCxjTXQsZE10LHVNdCxwTXQsaE10LHhjZSxmTXQsb0UsbU10LGdNdCxiTXQseWNlLHZNdCx4TXQsd2NlLHlNdCxNY2Usd010LE1NdCxrTXQsa2NlLFNNdCxTY2Usek10LHpjZSxDTXQsVE10LENjZSxfTXQsTE10LEFNdCxETXQsVGNlLEVNdCxQZywkTXQsSU10LFBNdCxOTXQsX2NlLEZNdCxMY2UsT010LFJNdCxCTXQsSE10LEFjZSxxTXQsTmcsak10LFZNdCxVTXQsRGNlLFdNdCxHTXQsWU10LFpNdCxFY2UsWE10LCRjZSxRTXQsSk10LEtNdCxJY2UsZWt0LFBjZSx0a3Qscmt0LE5jZSxpa3QsRmNlLGFrdCxPY2Usbmt0LFJjZSxva3Qsc2t0LGxrdCxja3QsQmNlLGRrdCx1a3QscGt0LGhrdCxma3QsbWt0LGdrdCxia3QsSGNlLHZrdCxxY2UseGt0LHlrdCx3a3QsTWt0LGpjZSxra3QsU2t0LGdELHprdCxDa3QsVGt0LF9rdCxMa3QsQWt0LERrdCxGZyxFa3QsJGt0LElrdCxQa3QsTmt0LEZrdCxPa3QsUmt0LEJrdCxIa3QscWt0LGprdCxWa3QsYkQsVWt0LFdrdCxHa3QsWWt0LFprdCxYa3QsVmNlLFFrdCxVY2UsSmt0LEtrdCxlU3QsdkQsdFN0LHJTdCxpU3QsV2NlLGFTdCx4RCxuU3Qsb1N0LHNTdCxsU3Qsc0UseUQsY1N0LGRTdCxHY2UsdVN0LHBTdCxoU3QsZlN0LFljZSxtU3QsZ1N0LFpjZSxiU3QsdlN0LFhjZSx4U3QseVN0LHdTdCxNU3Qsa1N0LFNTdCx3RCx6U3QsQ1N0LFFjZSxUU3QsX1N0LExTdCxBU3QsRFN0LEVTdCwkU3QsSVN0LEpjZSxQU3QsTlN0LEtjZSxGU3QsZTBlLE9TdCxSU3QsRDQsQlN0LEhTdCxxU3QsalN0LHQwZSxWU3QsVVN0LFdTdCxHU3QscjBlLFlTdCxpMGUsWlN0LE1ELFhTdCxRU3QsSlN0LGEwZSxLU3QsbEUsZXp0LHR6dCxuMGUscnp0LGtELGl6dCxhenQsbnp0LG96dCxzenQsbHp0LEpnLGN6dCxkenQsbzBlLHV6dCxwenQsaHp0LHMwZSxmenQsbDBlLG16dCxPZyxnenQsYnp0LHZ6dCx4enQseXp0LHd6dCxNenQsYzBlLGt6dCxTenQsZDBlLHp6dCx1MGUsQ3p0LHAwZSxUenQsX3p0LEx6dCxBenQsRHp0LEV6dCxoMGUsJHp0LEl6dCxQenQsTnp0LEZ6dCxmMGUsT3p0LG0wZSxSenQsZzBlLEJ6dCxIenQscXp0LFNELGp6dCxWenQsVXp0LFd6dCxHenQsYjBlLFl6dCx2MGUsWnp0LFh6dCxRenQsSnp0LHgwZSxLenQseTBlLGVDdCx0Q3QsekQsckN0LGlDdCxhQ3QsbkN0LG9DdCx3MGUsc0N0LGxDdCxNMGUsY0N0LGswZSxkQ3QsdUN0LHBDdCxoQ3QsZkN0LG1DdCxnQ3QsYkN0LHZDdCx4Q3QsUzBlLHlDdCx3Q3QsTUN0LGtDdCxDRCxTQ3QsekN0LENDdCxUQ3QsejBlLF9DdCxMQ3QsQzBlLEFDdCxEQ3QsRUN0LCRDdCxUMGUsSUN0LFBDdCxOQ3QsS2csRkN0LE9DdCxURCxSQ3QsQkN0LF8wZSxIQ3QscUN0LGpDdCxWQ3QsVUN0LEwwZSxXQ3QsR0N0LEEwZSxZQ3QsRDBlLFpDdCxYQ3QsUUN0LEpDdCxLQ3QsRTBlLGVUdCwkMGUsdFR0LEkwZSxyVHQsaVR0LGFUdCxuVHQsUDBlLG9UdCxzVHQsTjBlLGxUdCxjVHQsZFR0LEYwZSx1VHQscFR0LF9ELGhUdCxmVHQsTzBlLG1UdCxSMGUsZ1R0LEIwZSxiVHQsY0UsSDBlLHZUdCxxMGUseFR0LHlUdCx3VHQsTVR0LGtUdCxTVHQsTEQselR0LENUdCxUVHQsajBlLF9UdCxMVHQsQVR0LEFELERUdCxFVHQsJFR0LElUdCxERCxQVHQsTlR0LEZUdCxPVHQsVjBlLFJUdCxVMGUsQlR0LEhUdCxxVHQsalR0LFZUdCxFRCxVVHQsV1R0LEdUdCxZVHQsWlR0LFhUdCwkRCxRVHQsSlR0LEtUdCxXMGUsZV90LHRfdCxyX3QsaV90LEcwZSxhX3Qsbl90LG9fdCxzX3QsbF90LGNfdCxZMGUsZF90LHVfdCxwX3QsaF90LFowZSxmX3QsbV90LFJnLGdfdCxiX3Qsdl90LFgwZSx4X3QseV90LHdfdCxNX3Qsa190LFNfdCx6X3QsQ190LFRfdCxRMGUsX190LExfdCxKMGUsQV90LERfdCxFX3QsSzBlLCRfdCxJX3QsUF90LE5fdCxGX3QsZTRlLE9fdCxkRSx0NGUsUl90LEJfdCxIX3QscV90LGpfdCxyNGUsVl90LFVfdCxXX3QsR190LFlfdCxpNGUsWl90LFhfdCxRX3QsSl90LEtfdCxJRCxlTHQsdEx0LHJMdCxpTHQsYUx0LGE0ZSxuTHQsbjRlLG9MdCxzTHQsbEx0LFBELGNMdCxkTHQsdUx0LG80ZSxwTHQsczRlLGhMdCxmTHQsbUx0LGdMdCxiTHQsdkx0LGw0ZSx4THQseUx0LGM0ZSx3THQsZDRlLE1MdCx1NGUsa0x0LFNMdCxwNGUsekx0LGg0ZSxDTHQsVEx0LF9MdCxMTHQsQUx0LERMdCxFTHQsJEx0LElMdCxmNGUsUEx0LE5MdCxORCxGTHQsT0x0LG00ZSxSTHQsQkx0LEhMdCxnNGUscUx0LGpMdCxWTHQsVUx0LGI0ZSxXTHQsR0x0LFlMdCxaTHQsWEx0LHY0ZSxRTHQsSkx0LEtMdCxGRCxlQXQsdEF0LHJBdCxpQXQsYUF0LG5BdCxPRCxvQXQsc0F0LGxBdCx4NGUsY0F0LHk0ZSxkQXQsdUF0LHBBdCxoQXQsdzRlLGZBdCxNNGUsbUF0LGdBdCxrNGUsYkF0LHZBdCxTNGUseEF0LHlBdCx3QXQsTUF0LHo0ZSxrQXQsU0F0LHpBdCxDQXQsZWIsVEF0LHVFLF9BdCxMQXQsQUF0LERBdCxDNGUsRUF0LFQ0ZSwkQXQsSUF0LFBBdCxOQXQsQmcsRkF0LE9BdCxSQXQsSGcsQkF0LEhBdCxxQXQsXzRlLGpBdCxWQXQsUkQsVUF0LFdBdCxHQXQsWUF0LEw0ZSxaQXQsWEF0LFFBdCxBNGUsSkF0LEtBdCxlRHQsdER0LHJEdCxENGUsaUR0LEJELGFEdCxuRHQsb0R0LHNEdCxsRHQsY0R0LEU0ZSxkRHQsJDRlLHVEdCxJNGUscER0LGhEdCxQNGUsZkR0LHBFLE40ZSxtRHQsZ0R0LGJEdCxGNGUsdkR0LHhEdCxoRSxPNGUseUR0LHdEdCxNRHQsa0R0LE9wLFNEdCx6RHQsQ0R0LFREdCxSNGUsX0R0LExEdCxBRHQsQjRlLEREdCxFRHQsJER0LElEdCxINGUsUER0LE5EdCxGRHQsT0R0LFJEdCxIRCxCRHQsSER0LHRiLHFEdCxxNGUsakR0LGo0ZSxWRHQsVUR0LFdEdCxHRHQsVjRlLFlEdCxaRHQsWER0LFFEdCxVNGUsSkR0LEtEdCxlRXQsVzRlLHRFdCxyRXQsaUV0LGFFdCxHNGUsbkV0LG9FdCxzRXQsWTRlLGxFdCxjRXQsZEV0LHJiLHVFdCxwRXQsWjRlLGhFdCxYNGUsZkV0LFE0ZSxtRXQsSjRlLGdFdCxiRXQsSzRlLHZFdCx4RXQseUV0LHdFdCxNRXQsa0V0LGUzZSxTRXQsekV0LHQzZSxDRXQsVEV0LHIzZSxfRXQsTEV0LEFFdCxpM2UsREV0LEVFdCwkRXQsSUV0LFBFdCxScCxORXQsRkV0LE9FdCxSRXQsQkV0LEhFdCxxRXQsakV0LFZFdCxVRXQsV0V0LEdFdCxZRXQsWkV0LFhFdCxRRXQsSkV0LGEzZSxLRXQsZSR0LHQkdCxyJHQsbjNlLGkkdCxhJHQsbiR0LHFnLG8kdCxzJHQsbCR0LGMkdCxkJHQsbzNlLHUkdCxpYixwJHQsaCR0LGYkdCxzM2UsbSR0LGckdCxiJHQsdiR0LGwzZSx4JHQseSR0LGMzZSx3JHQsTSR0LGskdCxkM2UsUyR0LHokdCx1M2UsQyR0LHAzZSxUJHQsXyR0LEwkdCxBJHQsRCR0LGgzZSxFJHQsJCR0LEkkdCxmM2UsUCR0LE4kdCxGJHQsTyR0LFIkdCxCJHQsSCR0LG0zZSxxJHQsZzNlLGokdCxiM2UsViR0LHFELFUkdCxXJHQsdjNlLEckdCx4M2UsWSR0LHkzZSxaJHQsWCR0LFEkdCxKJHQsSyR0LGVJdCx3M2UsdEl0LE0zZSxySXQsaUl0LGFJdCxuSXQsb0l0LGszZSxzSXQsUzNlLGxJdCx6M2UsY0l0LEMzZSxkSXQsdUl0LHBJdCxoSXQsVDNlLGZJdCxtSXQsakQsZ0l0LGJJdCxfM2Usdkl0LHhJdCx5SXQsd0l0LEwzZSxNSXQsa0l0LFNJdCx6SXQsQTNlLENJdCxIcCxUSXQsX0l0LEQzZSxMSXQsRTNlLEFJdCxESXQsRUl0LFZELCRJdCxJSXQsUEl0LCQzZSxOSXQsSTNlLEZJdCxQM2UsT0l0LE4zZSxSSXQsQkl0LEhJdCxxSXQsakl0LFZJdCxVSXQsVUQsV0l0LEdJdCxZSXQsWkl0LFhJdCxGM2UsUUl0LEpJdCxLSXQsZVB0LHRQdCxyUHQsTzNlLGlQdCxhUHQsUjNlLG5QdCxvUHQsV0Qsc1B0LGxQdCxjUHQsYWIsZFB0LHVQdCxwUHQsQjNlLGhQdCxIM2UsZlB0LG1QdCxnUHQsYlB0LHZQdCxxM2UseFB0LHlQdCx3UHQsTVB0LGtQdCxHRCxTUHQselB0LENQdCxUUHQsX1B0LGozZSxMUHQsVjNlLEFQdCxEUHQsVTNlLEVQdCxXM2UsJFB0LEczZSxJUHQsWTNlLFBQdCxOUHQsWjNlLEZQdCxPUHQsUlB0LEJQdCxIUHQscVB0LENacixqUHQ9cCgoKT0+e3pacj0iZmFzIixldXQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiMCIsaWNvbjpbMzIwLDUxMixbXSwiMzAiLCJNMCAxOTJDMCAxMDMuNiA3MS42IDMyIDE2MCAzMnMxNjAgNzEuNiAxNjAgMTYwbDAgMTI4YzAgODguNC03MS42IDE2MC0xNjAgMTYwUzAgNDA4LjQgMCAzMjBMMCAxOTJ6TTE2MCA5NmMtNTMgMC05NiA0My05NiA5NmwwIDEyOGMwIDUzIDQzIDk2IDk2IDk2czk2LTQzIDk2LTk2bDAtMTI4YzAtNTMtNDMtOTYtOTYtOTZ6Il19LHR1dD17cHJlZml4OiJmYXMiLGljb25OYW1lOiIxIixpY29uOlsyNTYsNTEyLFtdLCIzMSIsIk0zMiAzMkMxNC4zIDMyIDAgNDYuMyAwIDY0UzE0LjMgOTYgMzIgOTZsNjQgMCAwIDMyMC02NCAwYy0xNy43IDAtMzIgMTQuMy0zMiAzMnMxNC4zIDMyIDMyIDMybDE5MiAwYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMybC02NCAwIDAtMzUyYzAtMTcuNy0xNC4zLTMyLTMyLTMyTDMyIDMyeiJdfSxydXQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiMiIsaWNvbjpbMzg0LDUxMixbXSwiMzIiLCJNNDggNjRjMC0xNy43IDE0LjMtMzIgMzItMzJsMTcxIDBjNjAuMiAwIDEwOSA0OC44IDEwOSAxMDkgMCA0My44LTI2LjIgODMuMy02Ni40IDEwMC40bC0xMzkuMSA1OUMxMTkgMzE1LjQgOTYgMzUwLjIgOTYgMzg4LjdsMCAyNy4zIDIyNCAwYzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMyTDY0IDQ4MGMtMTcuNyAwLTMyLTE0LjMtMzItMzJsMC01OS4zYzAtNjQuMiAzOC40LTEyMi4yIDk3LjUtMTQ3LjNsMTM5LjEtNTljMTYuNi03LjEgMjcuNC0yMy40IDI3LjQtNDEuNCAwLTI0LjktMjAuMi00NS00NS00NUw4MCA5NkM2Mi4zIDk2IDQ4IDgxLjcgNDggNjR6Il19LGl1dD17cHJlZml4OiJmYXMiLGljb25OYW1lOiIzIixpY29uOlszMjAsNTEyLFtdLCIzMyIsIk04MCAyODhjLTE3LjcgMC0zMi0xNC4zLTMyLTMyczE0LjMtMzIgMzItMzJsMTEyIDBjMzUuMyAwIDY0LTI4LjcgNjQtNjRzLTI4LjctNjQtNjQtNjRMMzIgOTZDMTQuMyA5NiAwIDgxLjcgMCA2NFMxNC4zIDMyIDMyIDMybDE2MCAwYzcwLjcgMCAxMjggNTcuMyAxMjggMTI4IDAgMzguMi0xNi44IDcyLjUtNDMuMyA5NiAyNi42IDIzLjUgNDMuMyA1Ny44IDQzLjMgOTYgMCA3MC43LTU3LjMgMTI4LTEyOCAxMjhMMzIgNDgwYy0xNy43IDAtMzItMTQuMy0zMi0zMnMxNC4zLTMyIDMyLTMybDE2MCAwYzM1LjMgMCA2NC0yOC43IDY0LTY0cy0yOC43LTY0LTY0LTY0TDgwIDI4OHoiXX0sYXV0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6IjQiLGljb246WzM4NCw1MTIsW10sIjM0IiwiTTY0IDY0YzAtMTcuNy0xNC4zLTMyLTMyLTMyUzAgNDYuMyAwIDY0TDAgMjg4YzAgMzUuMyAyOC43IDY0IDY0IDY0bDE5MiAwIDAgOTZjMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMmwwLTk2IDMyIDBjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJsLTMyIDAgMC0yMjRjMC0xNy43LTE0LjMtMzItMzItMzJzLTMyIDE0LjMtMzIgMzJsMCAyMjQtMTkyIDAgMC0yMjR6Il19LG51dD17cHJlZml4OiJmYXMiLGljb25OYW1lOiI1IixpY29uOlszMjAsNTEyLFtdLCIzNSIsIk0wIDY0QzAgNDYuMyAxNC4zIDMyIDMyIDMybDIyNCAwYzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMybC0xOTIgMCAwIDExMiAxMjAgMGM3NS4xIDAgMTM2IDYwLjkgMTM2IDEzNlMyNTkuMSA0ODAgMTg0IDQ4MEwzMiA0ODBjLTE3LjcgMC0zMi0xNC4zLTMyLTMyczE0LjMtMzIgMzItMzJsMTUyIDBjMzkuOCAwIDcyLTMyLjIgNzItNzJzLTMyLjItNzItNzItNzJMMzIgMjcyYy0xNy43IDAtMzItMTQuMy0zMi0zMkwwIDY0eiJdfSxvdXQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiNiIsaWNvbjpbMzg0LDUxMixbXSwiMzYiLCJNMjU2IDMyYzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMybC04OCAwYy00OC42IDAtODggMzkuNC04OCA4OGwwIDMyLjJjMjIuOS0xNS4zIDUwLjQtMjQuMiA4MC0yNC4ybDQ4IDBjNzkuNSAwIDE0NCA2NC41IDE0NCAxNDRTMjg3LjUgNDgwIDIwOCA0ODBsLTQ4IDBDODAuNSA0ODAgMTYgNDE1LjUgMTYgMzM2bDAtMTUyQzE2IDEwMC4xIDg0LjEgMzIgMTY4IDMybDg4IDB6TTgwIDMzNmMwIDQ0LjIgMzUuOCA4MCA4MCA4MGw0OCAwYzQ0LjIgMCA4MC0zNS44IDgwLTgwcy0zNS44LTgwLTgwLTgwbC00OCAwYy00NC4yIDAtODAgMzUuOC04MCA4MHoiXX0sc3V0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6IjciLGljb246WzMyMCw1MTIsW10sIjM3IiwiTTAgNjRDMCA0Ni4zIDE0LjMgMzIgMzIgMzJsMjU2IDBjMTEuNSAwIDIyIDYuMSAyNy43IDE2LjFzNS43IDIyLjItLjEgMzIuMWwtMjI0IDM4NGMtOC45IDE1LjMtMjguNSAyMC40LTQzLjggMTEuNXMtMjAuNC0yOC41LTExLjUtNDMuOEwyMzIuMyA5NiAzMiA5NkMxNC4zIDk2IDAgODEuNyAwIDY0eiJdfSxsdXQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiOCIsaWNvbjpbMzIwLDUxMixbXSwiMzgiLCJNMzA0IDE2MGMwLTcwLjctNTcuMy0xMjgtMTI4LTEyOGwtMzIgMGMtNzAuNyAwLTEyOCA1Ny4zLTEyOCAxMjggMCAzNC42IDEzLjcgNjYgMzYgODktMzEuNSAyMy4zLTUyIDYwLjgtNTIgMTAzIDAgNzAuNyA1Ny4zIDEyOCAxMjggMTI4bDY0IDBjNzAuNyAwIDEyOC01Ny4zIDEyOC0xMjggMC00Mi4yLTIwLjUtNzkuNy01Mi0xMDMgMjIuMy0yMyAzNi01NC40IDM2LTg5ek0xNzYuMSAyODhsMTUuOSAwYzM1LjMgMCA2NCAyOC43IDY0IDY0cy0yOC43IDY0LTY0IDY0bC02NCAwYy0zNS4zIDAtNjQtMjguNy02NC02NHMyOC43LTY0IDY0LTY0bDQ4LjEgMHptMC02NEwxNDQgMjI0Yy0zNS4zIDAtNjQtMjguNy02NC02NCAwLTM1LjMgMjguNy02NCA2NC02NGwzMiAwYzM1LjMgMCA2NCAyOC43IDY0IDY0IDAgMzUuMy0yOC42IDY0LTY0IDY0eiJdfSxjdXQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiOSIsaWNvbjpbMzg0LDUxMixbXSwiMzkiLCJNMjA4IDMyMGMyOS42IDAgNTcuMS04LjkgODAtMjQuMmwwIDMyLjJjMCA0OC42LTM5LjQgODgtODggODhMOTYgNDE2Yy0xNy43IDAtMzIgMTQuMy0zMiAzMnMxNC4zIDMyIDMyIDMybDEwNCAwYzgzLjkgMCAxNTItNjguMSAxNTItMTUybDAtMTUyLjFDMzUxLjkgOTYuNCAyODcuNSAzMiAyMDggMzJsLTQ4IDBDODAuNSAzMiAxNiA5Ni41IDE2IDE3NlM4MC41IDMyMCAxNjAgMzIwbDQ4IDB6bTgwLTE0NGMwIDQ0LjItMzUuOCA4MC04MCA4MGwtNDggMGMtNDQuMiAwLTgwLTM1LjgtODAtODBzMzUuOC04MCA4MC04MGw0OCAwYzQ0LjIgMCA4MCAzNS44IDgwIDgweiJdfSxRQT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJkb2xsYXItc2lnbiIsaWNvbjpbMzIwLDUxMixbMTI4MTc4LDYxNzgxLCJkb2xsYXIiLCJ1c2QiXSwiMjQiLCJNMTM2IDI0YzAtMTMuMyAxMC43LTI0IDI0LTI0czI0IDEwLjcgMjQgMjRsMCA0MCA1NiAwYzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMybC0xMTQuOSAwYy0yNC45IDAtNDUuMSAyMC4yLTQ1LjEgNDUuMSAwIDIyLjUgMTYuNSA0MS41IDM4LjcgNDQuN2w5MS42IDEzLjFjNTMuOCA3LjcgOTMuNyA1My43IDkzLjcgMTA4IDAgNjAuMy00OC45IDEwOS4xLTEwOS4xIDEwOS4xbC0xMC45IDAgMCA0MGMwIDEzLjMtMTAuNyAyNC0yNCAyNHMtMjQtMTAuNy0yNC0yNGwwLTQwLTcyIDBjLTE3LjcgMC0zMi0xNC4zLTMyLTMyczE0LjMtMzIgMzItMzJsMTMwLjkgMGMyNC45IDAgNDUuMS0yMC4yIDQ1LjEtNDUuMSAwLTIyLjUtMTYuNS00MS41LTM4LjctNDQuN2wtOTEuNi0xMy4xQzU1LjkgMjczLjUgMTYgMjI3LjQgMTYgMTczLjEgMTYgMTEyLjkgNjQuOSA2NCAxMjUuMSA2NGwxMC45IDAgMC00MHoiXX0sZHV0PVFBLHV1dD1RQSxwdXQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZG9nIixpY29uOls1NzYsNTEyLFsxMjgwMjFdLCJmNmQzIiwiTTMyIDExMmMxNi42IDAgMzAuMiAxMi42IDMxLjggMjguN2wuMyA2LjZDNjUuOCAxNjMuNCA3OS40IDE3NiA5NiAxNzZsMTc5LjEgMCAxNDAuOSA2MC40IDAgMjQzLjZjMCAxNy43LTE0LjMgMzItMzIgMzJsLTMyIDBjLTE3LjcgMC0zMi0xNC4zLTMyLTMybDAtMTMxLjNDMjk2IDM2MSAyNjguOCAzNjggMjQwIDM2OHMtNTYtNy04MC0xOS4zTDE2MCA0ODBjMCAxNy43LTE0LjMgMzItMzIgMzJsLTMyIDBjLTE3LjcgMC0zMi0xNC4zLTMyLTMybDAtMjQ1LjZjLTM3LjMtMTMuMi02NC00OC42LTY0LTkwLjQgMC0xNy43IDE0LjMtMzIgMzItMzJ6TTM1NS44LTMyYzcuNyAwIDE0LjkgMy42IDE5LjYgOS44TDM5MiAwIDQ0NC4xIDBjMTIuNyAwIDI0LjkgNS4xIDMzLjkgMTQuMUw0OTYgMzIgNTUyIDMyYzEzLjMgMCAyNCAxMC43IDI0IDI0bDAgMjRjMCA0NC4yLTM1LjggODAtODAgODBsLTY0IDAtNyAyOC0xMjQuNy01My40IDMxLjYtMTQ3LjJDMzM0LjMtMjMuOSAzNDQuMi0zMiAzNTUuOC0zMnpNNDQ4IDQ0YTIwIDIwIDAgMSAwIDAgNDAgMjAgMjAgMCAxIDAgMC00MHoiXX0saHV0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InRydWNrLW1vdmluZyIsaWNvbjpbNjQwLDUxMixbXSwiZjRkZiIsIk02NCAzMkMyOC43IDMyIDAgNjAuNyAwIDk2TDAgNDI0YzAgNDguNiAzOS40IDg4IDg4IDg4IDI1LjIgMCA0OC0xMC42IDY0LTI3LjYgMTYgMTcgMzguOCAyNy42IDY0IDI3LjYgNDAuMyAwIDc0LjItMjcuMSA4NC43LTY0bDEzNC42IDBjMTAuNCAzNi45IDQ0LjQgNjQgODQuNyA2NCA0MyAwIDc4LjktMzAuOSA4Ni41LTcxLjcgMjAtMTAuOCAzMy41LTMyIDMzLjUtNTYuM2wwLTE0Ni43YzAtMTctNi43LTMzLjMtMTguNy00NS4zTDU3NiAxNDYuN2MtMTItMTItMjguMy0xOC43LTQ1LjMtMTguN2wtNTAuNyAwIDAtMzJjMC0zNS4zLTI4LjctNjQtNjQtNjRMNjQgMzJ6TTQ4MCAxOTJsNTAuNyAwIDQ1LjMgNDUuMyAwIDUwLjctOTYgMCAwLTk2ek04OCAzODRhNDAgNDAgMCAxIDEgMCA4MCA0MCA0MCAwIDEgMSAwLTgwem0zOTIgNDBhNDAgNDAgMCAxIDEgODAgMCA0MCA0MCAwIDEgMSAtODAgMHpNMjE2IDM4NGE0MCA0MCAwIDEgMSAwIDgwIDQwIDQwIDAgMSAxIDAtODB6Il19LEJvZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJyb3RhdGUiLGljb246WzUxMiw1MTIsWzEyODI2MCwic3luYy1hbHQiXSwiZjJmMSIsIk00ODAuMSAxOTJsNy45IDBjMTMuMyAwIDI0LTEwLjcgMjQtMjRsMC0xNDRjMC05LjctNS44LTE4LjUtMTQuOC0yMi4yUzQ3Ny45IC4yIDQ3MSA3TDQxOS4zIDU4LjhDMzc1IDIyLjEgMzE4IDAgMjU2IDAgMTI3IDAgMjAuMyA5NS40IDIuNiAyMTkuNSAuMSAyMzcgMTIuMiAyNTMuMiAyOS43IDI1NS43czMzLjctOS43IDM2LjItMjcuMUM3OS4yIDEzNS41IDE1OS4zIDY0IDI1NiA2NCAzMDAuNCA2NCAzNDEuMiA3OSAzNzMuNyAxMDQuM0wzMjcgMTUxYy02LjkgNi45LTguOSAxNy4yLTUuMiAyNi4yUzMzNC4zIDE5MiAzNDQgMTkybDEzNi4xIDB6bTI5LjQgMTAwLjVjMi41LTE3LjUtOS43LTMzLjctMjcuMS0zNi4ycy0zMy43IDkuNy0zNi4yIDI3LjFjLTEzLjMgOTMtOTMuNCAxNjQuNS0xOTAuMSAxNjQuNS00NC40IDAtODUuMi0xNS0xMTcuNy00MC4zTDE4NSAzNjFjNi45LTYuOSA4LjktMTcuMiA1LjItMjYuMlMxNzcuNyAzMjAgMTY4IDMyMEwyNCAzMjBjLTEzLjMgMC0yNCAxMC43LTI0IDI0TDAgNDg4YzAgOS43IDUuOCAxOC41IDE0LjggMjIuMlMzNC4xIDUxMS44IDQxIDUwNWw1MS44LTUxLjhDMTM3IDQ4OS45IDE5NCA1MTIgMjU2IDUxMiAzODUgNTEyIDQ5MS43IDQxNi42IDUwOS40IDI5Mi41eiJdfSxmdXQ9Qm9lLEhvZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJzcXVhcmUtbWludXMiLGljb246WzQ0OCw1MTIsWzYxNzY3LCJtaW51cy1zcXVhcmUiXSwiZjE0NiIsIk02NCAzMkMyOC43IDMyIDAgNjAuNyAwIDk2TDAgNDE2YzAgMzUuMyAyOC43IDY0IDY0IDY0bDMyMCAwYzM1LjMgMCA2NC0yOC43IDY0LTY0bDAtMzIwYzAtMzUuMy0yOC43LTY0LTY0LTY0TDY0IDMyem03MiAyMDBsMTc2IDBjMTMuMyAwIDI0IDEwLjcgMjQgMjRzLTEwLjcgMjQtMjQgMjRsLTE3NiAwYy0xMy4zIDAtMjQtMTAuNy0yNC0yNHMxMC43LTI0IDI0LTI0eiJdfSxtdXQ9SG9lLGd1dD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJhbGlnbi1qdXN0aWZ5IixpY29uOls0NDgsNTEyLFtdLCJmMDM5IiwiTTQ0OCA2NGMwLTE3LjctMTQuMy0zMi0zMi0zMkwzMiAzMkMxNC4zIDMyIDAgNDYuMyAwIDY0UzE0LjMgOTYgMzIgOTZsMzg0IDBjMTcuNyAwIDMyLTE0LjMgMzItMzJ6bTAgMjU2YzAtMTcuNy0xNC4zLTMyLTMyLTMyTDMyIDI4OGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJzMTQuMyAzMiAzMiAzMmwzODQgMGMxNy43IDAgMzItMTQuMyAzMi0zMnpNMCAxOTJjMCAxNy43IDE0LjMgMzIgMzIgMzJsMzg0IDBjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJMMzIgMTYwYy0xNy43IDAtMzIgMTQuMy0zMiAzMnpNNDQ4IDQ0OGMwLTE3LjctMTQuMy0zMi0zMi0zMkwzMiA0MTZjLTE3LjcgMC0zMiAxNC4zLTMyIDMyczE0LjMgMzIgMzIgMzJsMzg0IDBjMTcuNyAwIDMyLTE0LjMgMzItMzJ6Il19LGJ1dD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJjYWxlbmRhci1jaGVjayIsaWNvbjpbNDQ4LDUxMixbXSwiZjI3NCIsIk0zMjAgMGMxNy43IDAgMzIgMTQuMyAzMiAzMmwwIDMyIDMyIDBjMzUuMyAwIDY0IDI4LjcgNjQgNjRsMCAyODhjMCAzNS4zLTI4LjcgNjQtNjQgNjRMNjQgNDgwYy0zNS4zIDAtNjQtMjguNy02NC02NEwwIDEyOEMwIDkyLjcgMjguNyA2NCA2NCA2NGwzMiAwIDAtMzJjMC0xNy43IDE0LjMtMzIgMzItMzJzMzIgMTQuMyAzMiAzMmwwIDMyIDEyOCAwIDAtMzJjMC0xNy43IDE0LjMtMzIgMzItMzJ6bTIyIDE2MS43Yy0xMC43LTcuOC0yNS43LTUuNC0zMy41IDUuM0wxODkuMSAzMzEuMiAxMzcgMjc5LjFjLTkuNC05LjQtMjQuNi05LjQtMzMuOSAwcy05LjQgMjQuNiAwIDMzLjlsNzIgNzJjNSA1IDExLjkgNy41IDE4LjggN3MxMy40LTQuMSAxNy41LTkuOEwzNDcuMyAxOTUuMmM3LjgtMTAuNyA1LjQtMjUuNy01LjMtMzMuNXoiXX0scW9lPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImZhY2Uta2lzcyIsaWNvbjpbNTEyLDUxMixbMTI4NTM1LCJraXNzIl0sImY1OTYiLCJNMjU2IDUxMmEyNTYgMjU2IDAgMSAwIDAtNTEyIDI1NiAyNTYgMCAxIDAgMCA1MTJ6TTI0MCAyODhsMzIgMGMyNi41IDAgNDggMjEuNSA0OCA0OCAwIDEyLjMtNC42IDIzLjUtMTIuMiAzMiA3LjYgOC41IDEyLjIgMTkuNyAxMi4yIDMyIDAgMjYuNS0yMS41IDQ4LTQ4IDQ4bC0zMiAwYy04LjggMC0xNi03LjItMTYtMTZzNy4yLTE2IDE2LTE2bDE2IDBjOC44IDAgMTYtNy4yIDE2LTE2cy03LjItMTYtMTYtMTZsLTE2IDBjLTguOCAwLTE2LTcuMi0xNi0xNnM3LjItMTYgMTYtMTZsMTYgMGM4LjggMCAxNi03LjIgMTYtMTZzLTcuMi0xNi0xNi0xNmwtMTYgMGMtOC44IDAtMTYtNy4yLTE2LTE2czcuMi0xNiAxNi0xNnptLTk2LTgwYTMyIDMyIDAgMSAxIDY0IDAgMzIgMzIgMCAxIDEgLTY0IDB6bTE5Mi0zMmEzMiAzMiAwIDEgMSAwIDY0IDMyIDMyIDAgMSAxIDAtNjR6Il19LHZ1dD1xb2UseHV0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImtpdGNoZW4tc2V0IixpY29uOls1NzYsNTEyLFtdLCJlNTFhIiwiTTI0MCAxNDRhOTYgOTYgMCAxIDAgLTE5MiAwIDk2IDk2IDAgMSAwIDE5MiAwem00NC40IDMyQzI2OS45IDI0MC4xIDIxMi41IDI4OCAxNDQgMjg4IDY0LjUgMjg4IDAgMjIzLjUgMCAxNDRTNjQuNSAwIDE0NCAwYzY4LjUgMCAxMjUuOSA0Ny45IDE0MC40IDExMmw3MS44IDBjOC44LTkuOCAyMS42LTE2IDM1LjgtMTZsMTA0IDBjMjYuNSAwIDQ4IDIxLjUgNDggNDhzLTIxLjUgNDgtNDggNDhsLTEwNCAwYy0xNC4yIDAtMjctNi4yLTM1LjgtMTZsLTcxLjggMHpNMTQ0IDgwYTY0IDY0IDAgMSAxIDAgMTI4IDY0IDY0IDAgMSAxIDAtMTI4ek00MDAgMjQwYzEzLjMgMCAyNCAxMC43IDI0IDI0bDAgOCA5NiAwYzEzLjMgMCAyNCAxMC43IDI0IDI0cy0xMC43IDI0LTI0IDI0bC0yNDAgMGMtMTMuMyAwLTI0LTEwLjctMjQtMjRzMTAuNy0yNCAyNC0yNGw5NiAwIDAtOGMwLTEzLjMgMTAuNy0yNCAyNC0yNHpNMjg4IDQ2NGwwLTExMiAyMjQgMCAwIDExMmMwIDI2LjUtMjEuNSA0OC00OCA0OGwtMTI4IDBjLTI2LjUgMC00OC0yMS41LTQ4LTQ4ek00OCAzMjBsMTI4IDBjMjYuNSAwIDQ4IDIxLjUgNDggNDhzLTIxLjUgNDgtNDggNDhsLTE2IDBjMCAxNy43LTE0LjMgMzItMzIgMzJsLTY0IDBjLTE3LjcgMC0zMi0xNC4zLTMyLTMybDAtODBjMC04LjggNy4yLTE2IDE2LTE2em0xMjggNjRjOC44IDAgMTYtNy4yIDE2LTE2cy03LjItMTYtMTYtMTZsLTE2IDAgMCAzMiAxNiAwek0yNCA0NjRsMTc2IDBjMTMuMyAwIDI0IDEwLjcgMjQgMjRzLTEwLjcgMjQtMjQgMjRMMjQgNTEyYy0xMy4zIDAtMjQtMTAuNy0yNC0yNHMxMC43LTI0IDI0LTI0eiJdfSx5dXQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZG5hIixpY29uOlszODQsNTEyLFsxMjk1MTZdLCJmNDcxIiwiTTM1MiAwYzE3LjcgMCAzMiAxNC4zIDMyIDMyIDAgNTcuOC0yNC40IDEwNC44LTU3LjQgMTQ0LjUtMjQuMSAyOC45LTUzLjggNTUuMS04My42IDc5LjUgMjkuOCAyNC41IDU5LjUgNTAuNiA4My42IDc5LjUgMzMgMzkuNiA1Ny40IDg2LjcgNTcuNCAxNDQuNSAwIDE3LjctMTQuMyAzMi0zMiAzMnMtMzItMTQuMy0zMi0zMkw2NCA0ODBjMCAxNy43LTE0LjMgMzItMzIgMzJTMCA0OTcuNyAwIDQ4MEMwIDQyMi4yIDI0LjQgMzc1LjIgNTcuNCAzMzUuNSA4MS41IDMwNi42IDExMS4yIDI4MC41IDE0MSAyNTYgMTExLjIgMjMxLjUgODEuNSAyMDUuNCA1Ny40IDE3Ni41IDI0LjQgMTM2LjggMCA4OS44IDAgMzIgMCAxNC4zIDE0LjMgMCAzMiAwUzY0IDE0LjMgNjQgMzJsMjU2IDBjMC0xNy43IDE0LjMtMzIgMzItMzJ6TTI4My41IDM4NGwtMTgyLjkgMGMtOC4yIDEwLjUtMTUuMSAyMS4xLTIwLjYgMzJsMjI0LjIgMGMtNS42LTEwLjktMTIuNS0yMS41LTIwLjYtMzJ6TTIzOCAzMzZjLTE0LjMtMTMtMjkuOC0yNS44LTQ2LTM5LTE2LjIgMTMuMS0zMS43IDI2LTQ2IDM5bDkyIDB6TTEwMC41IDEyOGwxODIuOSAwYzguMi0xMC41IDE1LjEtMjEuMSAyMC42LTMyTDc5LjkgOTZjNS42IDEwLjkgMTIuNSAyMS41IDIwLjYgMzJ6TTE0NiAxNzZjMTQuMyAxMyAyOS44IDI1LjggNDYgMzkgMTYuMi0xMy4xIDMxLjctMjYgNDYtMzlsLTkyIDB6Il19LHd1dD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJjaGlsZC1yZWFjaGluZyIsaWNvbjpbMzg0LDUxMixbXSwiZTU5ZCIsIk0yNTYgNjRhNjQgNjQgMCAxIDAgLTEyOCAwIDY0IDY0IDAgMSAwIDEyOCAwek0xNTIuOSAxNjkuM2MtMjMuNy04LjQtNDQuNS0yNC4zLTU4LjgtNDUuOEw3NC42IDk0LjJDNjQuOCA3OS41IDQ1IDc1LjYgMzAuMyA4NS40UzExLjYgMTE1IDIxLjQgMTI5LjhMNDAuOSAxNTljMTguMSAyNy4xIDQyLjggNDguNCA3MS4xIDYyLjRMMTEyIDQ4MGMwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMybDAtOTYgMzIgMCAwIDk2YzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJsMC0yNTguNGMyOS4xLTE0LjIgNTQuNC0zNi4yIDcyLjctNjQuMmwxOC4yLTI3LjljOS42LTE0LjggNS40LTM0LjYtOS40LTQ0LjNzLTM0LjYtNS41LTQ0LjMgOS40TDI5MSAxMjIuNGMtMjEuOCAzMy40LTU4LjkgNTMuNi05OC44IDUzLjYtMTIuNiAwLTI0LjktMi0zNi42LTUuOC0uOS0uMy0xLjgtLjctMi43LS45eiJdfSxqZz17cHJlZml4OiJmYXMiLGljb25OYW1lOiJwYXN0ZSIsaWNvbjpbNTEyLDUxMixbImZpbGUtY2xpcGJvYXJkIl0sImYwZWEiLCJNNjQgMEMyOC43IDAgMCAyOC43IDAgNjRMMCAzODRjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMTEyIDAgMC0yMjRjMC02MS45IDUwLjEtMTEyIDExMi0xMTJsNjQgMCAwLTQ4YzAtMzUuMy0yOC43LTY0LTY0LTY0TDY0IDB6TTI0OCAxMTJsLTE0NCAwYy0xMy4zIDAtMjQtMTAuNy0yNC0yNHMxMC43LTI0IDI0LTI0bDE0NCAwYzEzLjMgMCAyNCAxMC43IDI0IDI0cy0xMC43IDI0LTI0IDI0em00MCA0OGMtMzUuMyAwLTY0IDI4LjctNjQgNjRsMCAyMjRjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMTYwIDBjMzUuMyAwIDY0LTI4LjcgNjQtNjRsMC0xNjUuNWMwLTE3LTYuNy0zMy4zLTE4LjctNDUuM2wtNTguNS01OC41Yy0xMi0xMi0yOC4zLTE4LjctNDUuMy0xOC43TDI4OCAxNjB6Il19LE11dD1qZyxrdXQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToibWV0ZW9yIixpY29uOls1MTIsNTEyLFs5NzMyXSwiZjc1MyIsIk00OTMuNyAuOWwtMTk0LjIgNzQuNyAyLjMtMjkuM2MxLTEyLjgtMTIuOC0yMS41LTI0LTE1LjFMMTAxLjMgMTMzLjRDMzguNiAxNjkuNyAwIDIzNi42IDAgMzA5IDAgNDIxLjEgOTAuOSA1MTIgMjAzIDUxMiAyNzUuNCA1MTIgMzQyLjMgNDczLjQgMzc4LjYgNDEwLjdMNDgwLjggMjM0LjNjNi41LTExLjEtMi4yLTI1LTE1LjEtMjRsLTI5LjMgMi4zIDc0LjctMTk0LjJjLjYtMS41IC45LTMuMiAuOS00LjggMC03LjUtNi0xMy41LTEzLjUtMTMuNS0xLjcgMC0zLjMgLjMtNC44IC45ek0xOTIgMTkyYTEyOCAxMjggMCAxIDEgMCAyNTYgMTI4IDEyOCAwIDEgMSAwLTI1NnptMCA5NmEzMiAzMiAwIDEgMCAtNjQgMCAzMiAzMiAwIDEgMCA2NCAwem0xNiA5NmExNiAxNiAwIDEgMCAwLTMyIDE2IDE2IDAgMSAwIDAgMzJ6Il19LGpvZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJnZWFycyIsaWNvbjpbNjQwLDUxMixbImNvZ3MiXSwiZjA4NSIsIk00MTUuOSAyMTAuNWMxMi4yLTMuMyAyNSAyLjUgMzAuNSAxMy44TDQ2NSAyNjEuOWMxMC4zIDEuNCAyMC40IDQuMiAyOS45IDguMWwzNS0yMy4zYzEwLjUtNyAyNC40LTUuNiAzMy4zIDMuM2wxOS4yIDE5LjJjOC45IDguOSAxMC4zIDIyLjkgMy4zIDMzLjNsLTIzLjMgMzQuOWMxLjkgNC43IDMuNiA5LjYgNSAxNC43IDEuNCA1LjEgMi4zIDEwLjEgMyAxNS4ybDM3LjcgMTguNmMxMS4zIDUuNiAxNy4xIDE4LjQgMTMuOCAzMC41bC03IDI2LjJjLTMuMyAxMi4xLTE0LjYgMjAuMy0yNy4yIDE5LjVsLTQyLTIuN2MtNi4zIDguMS0xMy42IDE1LjYtMjEuOSAyMmwyLjcgNDEuOWMuOCAxMi42LTcuNCAyNC0xOS41IDI3LjJsLTI2LjIgN2MtMTIuMiAzLjMtMjQuOS0yLjUtMzAuNS0xMy44bC0xOC42LTM3LjZjLTEwLjMtMS40LTIwLjQtNC4yLTI5LjktOC4xbC0zNSAyMy4zYy0xMC41IDctMjQuNCA1LjYtMzMuMy0zLjNsLTE5LjItMTkuMmMtOC45LTguOS0xMC4zLTIyLjgtMy4zLTMzLjNsMjMuMy0zNWMtMS45LTQuNy0zLjYtOS42LTUtMTQuN3MtMi4zLTEwLjItMy0xNS4ybC0zNy43LTE4LjZjLTExLjMtNS42LTE3LTE4LjQtMTMuOC0zMC41bDctMjYuMmMzLjMtMTIuMSAxNC42LTIwLjMgMjcuMi0xOS41bDQxLjkgMi43YzYuMy04LjEgMTMuNi0xNS42IDIxLjktMjJsLTIuNy00MS44Yy0uOC0xMi42IDcuNC0yNCAxOS41LTI3LjJsMjYuMi03ek00NDguNCAzNDBhNDQgNDQgMCAxIDAgLjEgODggNDQgNDQgMCAxIDAgLS4xLTg4ek0yMjQuOS00NS41bDI2LjIgN2MxMi4xIDMuMyAyMC4zIDE0LjcgMTkuNSAyNy4ybC0yLjcgNDEuOGM4LjMgNi40IDE1LjYgMTMuOCAyMS45IDIybDQyLTIuN2MxMi41LS44IDIzLjkgNy40IDI3LjIgMTkuNWw3IDI2LjJjMy4yIDEyLjEtMi41IDI0LjktMTMuOCAzMC41bC0zNy43IDE4LjZjLS43IDUuMS0xLjcgMTAuMi0zIDE1LjJzLTMuMSAxMC01IDE0LjdsMjMuMyAzNWM3IDEwLjUgNS42IDI0LjQtMy4zIDMzLjNMMzA3LjMgMjYyYy04LjkgOC45LTIyLjggMTAuMy0zMy4zIDMuM0wyMzkgMjQyYy05LjUgMy45LTE5LjYgNi43LTI5LjkgOC4xbC0xOC42IDM3LjZjLTUuNiAxMS4zLTE4LjQgMTctMzAuNSAxMy44bC0yNi4yLTdjLTEyLjItMy4zLTIwLjMtMTQuNy0xOS41LTI3LjJsMi43LTQxLjljLTguMy02LjQtMTUuNi0xMy44LTIxLjktMjJsLTQyIDIuN2MtMTIuNSAuOC0yMy45LTcuNC0yNy4yLTE5LjVsLTctMjYuMmMtMy4yLTEyLjEgMi41LTI0LjkgMTMuOC0zMC41bDM3LjctMTguNmMuNy01LjEgMS43LTEwLjEgMy0xNS4yIDEuNC01LjEgMy0xMCA1LTE0LjdMNTUuMSA0Ni41Yy03LTEwLjUtNS42LTI0LjQgMy4zLTMzLjNMNzcuNi02YzguOS04LjkgMjIuOC0xMC4zIDMzLjMtMy4zbDM1IDIzLjNjOS41LTMuOSAxOS42LTYuNyAyOS45LTguMWwxOC42LTM3LjZjNS42LTExLjMgMTguMy0xNyAzMC41LTEzLjh6TTE5Mi40IDg0YTQ0IDQ0IDAgMSAwIDAgODggNDQgNDQgMCAxIDAgMC04OHoiXX0sU3V0PWpvZSx6dXQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZmlsZS1jaXJjbGUtcGx1cyIsaWNvbjpbNTc2LDUxMixbNTg2MDZdLCJlNDk0IiwiTTk2IDBDNjAuNyAwIDMyIDI4LjcgMzIgNjRsMCAzODRjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMTgwIDBjLTIyLjctMzEuNS0zNi03MC4yLTM2LTExMiAwLTEwMC42IDc3LjQtMTgzLjIgMTc2LTE5MS4zbDAtMzguMWMwLTE3LTYuNy0zMy4zLTE4LjctNDUuM0wyOTAuNyAxOC43QzI3OC43IDYuNyAyNjIuNSAwIDI0NS41IDBMOTYgMHpNMzU3LjUgMTc2TDI2NCAxNzZjLTEzLjMgMC0yNC0xMC43LTI0LTI0TDI0MCA1OC41IDM1Ny41IDE3NnpNNDMyIDU0NGExNDQgMTQ0IDAgMSAwIDAtMjg4IDE0NCAxNDQgMCAxIDAgMCAyODh6bTE2LTIwOGwwIDQ4IDQ4IDBjOC44IDAgMTYgNy4yIDE2IDE2cy03LjIgMTYtMTYgMTZsLTQ4IDAgMCA0OGMwIDguOC03LjIgMTYtMTYgMTZzLTE2LTcuMi0xNi0xNmwwLTQ4LTQ4IDBjLTguOCAwLTE2LTcuMi0xNi0xNnM3LjItMTYgMTYtMTZsNDggMCAwLTQ4YzAtOC44IDcuMi0xNiAxNi0xNnMxNiA3LjIgMTYgMTZ6Il19LEN1dD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJpY2ljbGVzIixpY29uOls1MTIsNTEyLFtdLCJmN2FkIiwiTTc1LjggMzA0LjhMMSAzNS43Qy4zIDMzLjIgMCAzMC43IDAgMjguMiAwIDEyLjYgMTIuNiAwIDI4LjIgMEw0ODIuNCAwYzE2LjMgMCAyOS42IDEzLjIgMjkuNiAyOS42IDAgMS42LS4xIDMuMy0uNCA0LjlMNDM0LjYgNDk2LjFjLTEuNSA5LjItOS41IDE1LjktMTguOCAxNS45LTkuMiAwLTE3LjEtNi42LTE4LjctMTUuNkwzMzYgMTYwIDMwNy4yIDMwMy45Yy0xLjkgOS4zLTEwLjEgMTYuMS0xOS42IDE2LjEtOS4yIDAtMTcuMi02LjItMTkuNC0xNS4xTDI0MCAxOTIgMjEwLjYgMzY4LjJjLTEuNSA5LjEtOS40IDE1LjgtMTguNiAxNS44cy0xNy4xLTYuNy0xOC42LTE1LjhMMTQ0IDE5MiAxMTUuOSAzMDQuM2MtMi4zIDkuMi0xMC42IDE1LjctMjAuMSAxNS43LTkuMyAwLTE3LjUtNi4yLTIwLTE1LjJ6Il19LFR1dD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJhcnJvdy10cmVuZC11cCIsaWNvbjpbNTc2LDUxMixbXSwiZTA5OCIsIk0zODQgMTYwYy0xNy43IDAtMzItMTQuMy0zMi0zMnMxNC4zLTMyIDMyLTMybDE2MCAwYzE3LjcgMCAzMiAxNC4zIDMyIDMybDAgMTYwYzAgMTcuNy0xNC4zIDMyLTMyIDMycy0zMi0xNC4zLTMyLTMybDAtODIuNy0xNjkuNCAxNjkuNGMtMTIuNSAxMi41LTMyLjggMTIuNS00NS4zIDBMMTkyIDI2OS4zIDU0LjYgNDA2LjZjLTEyLjUgMTIuNS0zMi44IDEyLjUtNDUuMyAwcy0xMi41LTMyLjggMC00NS4zbDE2MC0xNjBjMTIuNS0xMi41IDMyLjgtMTIuNSA0NS4zIDBMMzIwIDMwNi43IDQ2Ni43IDE2MCAzODQgMTYweiJdfSxfdXQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiaGV4YWdvbi1ub2Rlcy1ib2x0IixpY29uOls1NzYsNTEyLFtdLCJlNjlhIiwiTTI0OCAxMDYuNmMxOC45LTkgMzItMjguMyAzMi01MC42YzAtMzAuOS0yNS4xLTU2LTU2LTU2cy01NiAyNS4xLTU2IDU2YzAgMjIuMyAxMy4xIDQxLjYgMzIgNTAuNmwwIDk4LjhjLTIuOCAxLjMtNS41IDIuOS04IDQuN2wtODAuMS00NS44YzEuNi0yMC44LTguNi00MS42LTI3LjktNTIuOEM1Ny4yIDk2IDIzIDEwNS4yIDcuNSAxMzJTMS4yIDE5MyAyOCAyMDguNWMxLjMgLjggMi42IDEuNSA0IDIuMWwwIDkwLjhjLTEuMyAuNi0yLjcgMS4zLTQgMi4xQzEuMiAzMTktOCAzNTMuMiA3LjUgMzgwUzU3LjIgNDE2IDg0IDQwMC41YzE5LjMtMTEuMSAyOS40LTMyIDI3LjgtNTIuOGw1MC41LTI4LjljLTExLjUtMTEuMi0xOS45LTI1LjYtMjMuOC00MS43TDg4IDMwNi4xYy0yLjYtMS44LTUuMi0zLjMtOC00LjdsMC05MC44YzIuOC0xLjMgNS41LTIuOSA4LTQuN2w4MC4xIDQ1LjhjLS4xIDEuNC0uMiAyLjgtLjIgNC4zYzAgMjIuMyAxMy4xIDQxLjYgMzIgNTAuNmwwIDk4LjhjLTE4LjkgOS0zMiAyOC4zLTMyIDUwLjZjMCAzMC45IDI1LjEgNTYgNTYgNTZjMzAuNyAwIDU1LjYtMjQuNyA1Ni01NS4yYy03LjUtMTIuOS0xMy41LTI2LjgtMTcuNi00MS41Yy00LjItNC05LjEtNy4zLTE0LjQtOS45bDAtOTguOGMyLjgtMS4zIDUuNS0yLjkgOC00LjdsMTAuNSA2YzUuNS0xNS4zIDEzLjEtMjkuNSAyMi40LTQyLjVsLTkuMS01LjJjLjEtMS40IC4yLTIuOCAuMi00LjNjMC0yMi4zLTEzLjEtNDEuNi0zMi01MC42bDAtOTguOHpNNDQwLjUgMTMyQzQyNSAxMDUuMiAzOTAuOCA5NiAzNjQgMTExLjVjLTE5LjMgMTEuMS0yOS40IDMyLTI3LjggNTIuOGwtNTAuNiAyOC45YzExLjUgMTEuMiAxOS45IDI1LjYgMjMuOCA0MS43TDM2MCAyMDUuOWMuNCAuMyAuOCAuNiAxLjMgLjljMjEuNy05LjUgNDUuNi0xNC44IDcwLjgtMTQuOGMyIDAgNCAwIDUuOSAuMWMxMi4xLTE3LjMgMTMuOC00MC42IDIuNi02MC4xek00MzIgNTEyYTE0NCAxNDQgMCAxIDAgMC0yODggMTQ0IDE0NCAwIDEgMCAwIDI4OHptNDcuOS0yMjVjNC4zIDMuNyA1LjQgOS45IDIuNiAxNC45TDQ1Mi40IDM1NmwzNS42IDBjNS4yIDAgOS44IDMuMyAxMS40IDguMnMtLjEgMTAuMy00LjIgMTMuNGwtOTYgNzJjLTQuNSAzLjQtMTAuOCAzLjItMTUuMS0uNnMtNS40LTkuOS0yLjYtMTQuOUw0MTEuNiAzODAgMzc2IDM4MGMtNS4yIDAtOS44LTMuMy0xMS40LTguMnMuMS0xMC4zIDQuMi0xMy40bDk2LTcyYzQuNS0zLjQgMTAuOC0zLjIgMTUuMSAuNnoiXX0sTHV0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InF1ZXN0aW9uIixpY29uOlszMjAsNTEyLFsxMDA2NywxMDA2OCw2MTczNl0sIjNmIiwiTTY0IDE2MGMwLTUzIDQzLTk2IDk2LTk2czk2IDQzIDk2IDk2YzAgNDIuNy0yNy45IDc4LjktNjYuNSA5MS40LTI4LjQgOS4yLTYxLjUgMzUuMy02MS41IDc2LjZsMCAyNGMwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMybDAtMjRjMC0xLjcgLjYtNC4xIDMuNS03LjMgMy0zLjMgNy45LTYuNSAxMy43LTguNCA2NC4zLTIwLjcgMTEwLjgtODEgMTEwLjgtMTUyLjMgMC04OC40LTcxLjYtMTYwLTE2MC0xNjBTMCA3MS42IDAgMTYwYzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJ6bTk2IDM1MmMyMi4xIDAgNDAtMTcuOSA0MC00MHMtMTcuOS00MC00MC00MC00MCAxNy45LTQwIDQwIDE3LjkgNDAgNDAgNDB6Il19LEF1dD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJoYW5kcy1ib3VuZCIsaWNvbjpbNTc2LDUxMixbXSwiZTRmOSIsIk02NCAzMkM2NCAxNC4zIDQ5LjcgMCAzMiAwUzAgMTQuMyAwIDMyTDAgMjEzLjljMCAxNC4yIDUuMSAyNy45IDE0LjMgMzguN0w5OS42IDM1MiA5NiAzNTJjLTEzLjMgMC0yNCAxMC43LTI0IDI0czEwLjcgMjQgMjQgMjRsMzg0IDBjMTMuMyAwIDI0LTEwLjcgMjQtMjRzLTEwLjctMjQtMjQtMjRsLTMuNiAwIDg1LjMtOTkuNWM5LjItMTAuOCAxNC4zLTI0LjUgMTQuMy0zOC43TDU3NiAzMmMwLTE3LjctMTQuMy0zMi0zMi0zMnMtMzIgMTQuMy0zMiAzMmwwIDExMi44LTY5LjMgOTIuNGMtNS43IDcuNi0xNi4xIDkuNi0yNC4yIDQuOC05LjctNS43LTEyLjEtMTguNy01LjEtMjcuNUw0NDEgMTgwYzEwLjgtMTMuNSA4LjktMzMuMy00LjQtNDQuNXMtMzMtOS44LTQ0LjUgMy4ybC00Ni43IDUyLjVDMzI5IDIwOS43IDMyMCAyMzMuNCAzMjAgMjU4LjFsMCA5My45LTY0IDAgMC05My45YzAtMjQuNi05LTQ4LjQtMjUuNC02Ni44bC00Ni43LTUyLjVjLTExLjUtMTMtMzEuMy0xNC40LTQ0LjUtMy4yUzEyNC4yIDE2Ni40IDEzNSAxODBsMjcuNiAzNC41YzcgOC44IDQuNyAyMS44LTUuMSAyNy41LTguMSA0LjgtMTguNiAyLjctMjQuMi00LjhMNjQgMTQ0LjggNjQgMzJ6bTY0IDQ0OGwwIDMyIDEyOCAwIDAtMzIgNjQgMCAwIDMyIDEyOCAwIDAtMzIgMzIgMGMxMy4zIDAgMjQtMTAuNyAyNC0yNHMtMTAuNy0yNC0yNC0yNEw5NiA0MzJjLTEzLjMgMC0yNCAxMC43LTI0IDI0czEwLjcgMjQgMjQgMjRsMzIgMHoiXX0sRHV0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InBlcnNvbi13YWxraW5nLWx1Z2dhZ2UiLGljb246WzUxMiw1MTIsW10sImU1NTQiLCJNMjY0LjMgMjRhNTYgNTYgMCAxIDEgMTEyIDAgNTYgNTYgMCAxIDEgLTExMiAwem0tOCAxODEuM2wtMjIuNiAyMi42Yy02IDYtOS40IDE0LjEtOS40IDIyLjZsMCAzNy41YzAgMTIuMy03IDIzLTE3LjIgMjguNC0uOSA0LjItMi40IDguNC00LjMgMTIuM2wtNjkgMTM4LjEtLjgtLjQtMjcuNyA1NS4zYy05LjkgMTkuOC0zMy45IDI3LjgtNTMuNyAxNy45TDE0LjYgNTIxYy0xOS44LTkuOS0yNy44LTMzLjktMTcuOS01My43TDQ3LjMgMzY2LjNjOS45LTE5LjggMzMuOS0yNy44IDUzLjctMTcuOWwzMC43IDE1LjMgMjguMy01Ni42Yy4zLS42IC40LTEuMiAuNC0xLjhsMC0xNi45YzAtLjIgMC0uMyAwLS41bDAtMzcuNWMwLTI1LjUgMTAuMS00OS45IDI4LjEtNjcuOWwzNS4xLTM1LjFjMjIuOC0yMi44IDUzLjYtMzUuNiA4NS44LTM1LjYgMzYuOSAwIDcxLjggMTYuOCA5NC44IDQ1LjZMNDIyLjEgMTgwYzYuMSA3LjYgMTUuMyAxMiAyNSAxMmwzMy4yIDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJsLTMzLjIgMGMtMjkuMiAwLTU2LjctMTMuMy03NS0zNmwtMy44LTQuNyAwIDExNS4yIDM0LjUgMjkuNmMxNy43IDE1LjIgMjkuMyAzNi4yIDMyLjYgNTkuM0w0NDggNTA3LjVjMi41IDE3LjUtOS43IDMzLjctMjcuMiAzNi4ycy0zMy43LTkuNy0zNi4yLTI3LjJMMzcyIDQyOC40Yy0xLjEtNy43LTUtMTQuNy0xMC45LTE5LjhsLTcxLjQtNjEuMmMtMjEuMy0xOC4yLTMzLjUtNDQuOS0zMy41LTcyLjlsMC02OS4zem0uMSAxNjUuOGMyLjQgMi4zIDQuOCA0LjYgNy40IDYuOGw0NiAzOS40LTIuMiA3LjZjLTQuNSAxNS43LTEyLjkgMzAtMjQuNCA0MS41bC02OC4zIDY4LjNjLTEyLjUgMTIuNS0zMi44IDEyLjUtNDUuMyAwcy0xMi41LTMyLjggMC00NS4zTDIzOCA0MjEuMWMzLjgtMy44IDYuNi04LjYgOC4xLTEzLjhMMjU2LjQgMzcxeiJdfSxWb2U9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZmlsZS1hcnJvdy1kb3duIixpY29uOlszODQsNTEyLFsiZmlsZS1kb3dubG9hZCJdLCJmNTZkIiwiTTAgNjRDMCAyOC43IDI4LjcgMCA2NCAwTDIxMy41IDBjMTcgMCAzMy4zIDYuNyA0NS4zIDE4LjdMMzY1LjMgMTI1LjNjMTIgMTIgMTguNyAyOC4zIDE4LjcgNDUuM0wzODQgNDQ4YzAgMzUuMy0yOC43IDY0LTY0IDY0TDY0IDUxMmMtMzUuMyAwLTY0LTI4LjctNjQtNjRMMCA2NHptMjA4LTUuNWwwIDkzLjVjMCAxMy4zIDEwLjcgMjQgMjQgMjRMMzI1LjUgMTc2IDIwOCA1OC41ek0xNzUgNDQxYzkuNCA5LjQgMjQuNiA5LjQgMzMuOSAwbDY0LTY0YzkuNC05LjQgOS40LTI0LjYgMC0zMy45cy0yNC42LTkuNC0zMy45IDBsLTIzIDIzIDAtODYuMWMwLTEzLjMtMTAuNy0yNC0yNC0yNHMtMjQgMTAuNy0yNCAyNGwwIDg2LjEtMjMtMjNjLTkuNC05LjQtMjQuNi05LjQtMzMuOSAwcy05LjQgMjQuNiAwIDMzLjlsNjQgNjR6Il19LEV1dD1Wb2UsJHV0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InBlcnNvbi1ib290aCIsaWNvbjpbNTc2LDUxMixbXSwiZjc1NiIsIk00MCAyNEE1NiA1NiAwIDEgMSAxNTIgMjQgNTYgNTYgMCAxIDEgNDAgMjR6bTUxLjEgODhjMjMuNSAwIDQ1LjUgMTEuMyA1OS4xIDMwLjRsNDguNyA2OC4yYzYgOC40IDE1LjcgMTMuNCAyNiAxMy40bDMxLjEgMGMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMmwtMzEuMSAwYy0zMSAwLTYwLjEtMTUtNzguMS00MC4ybC0yLjgtMy45IDAgODAuMSA0MS42IDMxLjJDMjA5LjggMzczLjMgMjI0IDQwMS44IDIyNCA0MzJsMCA4MGMwIDE3LjctMTQuMyAzMi0zMiAzMnMtMzItMTQuMy0zMi0zMmwwLTgwYzAtMTAuMS00LjctMTkuNi0xMi44LTI1LjZMNzAuNCAzNDguOEM0Ni4yIDMzMC43IDMyIDMwMi4yIDMyIDI3MmwwLTEwMC45QzMyIDEzOC41IDU4LjUgMTEyIDkxLjEgMTEyek0zMiA1MTJsMC0xMzIuN2MzLjEgMi43IDYuMyA1LjQgOS42IDcuOUw5NiA0MjggOTYgNTEyYzAgMTcuNy0xNC4zIDMyLTMyIDMycy0zMi0xNC4zLTMyLTMyem01NDQtODhsMCA5NmMwIDEzLjMtMTAuNyAyNC0yNCAyNHMtMjQtMTAuNy0yNC0yNGwwLTcyLTE2OCAwYy03LjEgMC0xMy44LTMuMS0xOC40LTguNnMtNi41LTEyLjYtNS4zLTE5LjZsMzAuNy0xNzYuNy02My4xLTEzNy42IDAgNzJjLTUuMi0xLTEwLjUtMS42LTE2LTEuNmwtMzIgMCAwLTEyMGMwLTMwLjkgMjUuMS01NiA1Ni01Nkw1MjAgMGMzMC45IDAgNTYgMjUuMSA1NiA1NmwwIDM2OHpNMjg4IDMzNmM1LjUgMCAxMC44LS42IDE2LTEuNkwzMDQgNTIwYzAgMTMuMy0xMC43IDI0LTI0IDI0cy0yNC0xMC43LTI0LTI0bDAtMTg0IDMyIDB6Il19LEl1dD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJsb2N1c3QiLGljb246WzU3Niw1MTIsW10sImU1MjAiLCJNMzI4IDMyYzEzNyAwIDI0OCAxMTEgMjQ4IDI0OGwwIDQwLS40IDguMkM1NzEuNSAzNjguNSA1MzcuNCA0MDAgNDk2IDQwMGwtMTIuMyAwIDI1LjIgNDQuMWM2LjYgMTEuNSAyLjYgMjYuMi04LjkgMzIuOHMtMjYuMiAyLjYtMzIuNy04LjlsLTM4LjgtNjcuOS04MC40IDAtNDguMiA2OS43Yy03LjUgMTAuOS0yMi41IDEzLjYtMzMuNCA2LjFzLTEzLjYtMjIuNS02LjEtMzMuNGwyOS4zLTQyLjMtNzQuNSAwLTUxLjcgNzAuMmMtNy45IDEwLjctMjIuOSAxMi45LTMzLjYgNS4xcy0xMi45LTIyLjktNS4xLTMzLjZsNDAuNS01NS00My0xNi40LTc5LjMgMTAwLjVjLTguMiAxMC40LTIzLjMgMTIuMi0zMy43IDRzLTEyLjItMjMuMy00LTMzLjdsMjQwLTMwNCAyLjEtMi4zYzUuMi01LjEgMTIuNS03LjUgMTkuOS02LjYgOC40IDEuMSAxNS42IDYuNSAxOC45IDE0LjNsMjEuNyA1MC43IDQwLjktNTUuNSAyLjEtMi40YzUuMS01LjMgMTIuNS04IDIwLTcuMiA4LjUgMSAxNS45IDYuNSAxOS4zIDE0LjRsNDEuOCA5Ny41IDY0LjIgMGMxMC4yIDAgMjAgMiAyOSA1LjUtMTYuNC05NC05OC4zLTE2NS41LTE5Ny0xNjUuNWwtMTYgMGMtMTMuMyAwLTI0LTEwLjctMjQtMjRzMTAuNy0yNCAyNC0yNGwxNiAwek00ODggMjk2YTI0IDI0IDAgMSAwIDAgNDggMjQgMjQgMCAxIDAgMC00OHpNNDMuNSAzMzEuMUMzNi4yIDMyMS40IDMyIDMwOS41IDMyIDI5Ni44IDMyIDI2NS41IDU3LjUgMjQwIDg4LjkgMjQwbDI3LjYgMC03Mi45IDkxLjF6TTIyNS4xIDI0MGw0OC4yIDAgMS40LTEuOS0xNi45LTM5LjUtMzIuNyA0MS41em0xMDcuOCAwbDQ2LjcgMC0xNy4yLTQwLTI5LjUgNDB6Il19LFVvZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJyaWdodC1sb25nIixpY29uOls1NzYsNTEyLFsibG9uZy1hcnJvdy1hbHQtcmlnaHQiXSwiZjMwYiIsIk01NjYuNiAyMzMuNGMxMi41IDEyLjUgMTIuNSAzMi44IDAgNDUuM2wtMTI4IDEyOGMtOS4yIDkuMi0yMi45IDExLjktMzQuOSA2LjlTMzg0IDM5Ni45IDM4NCAzODRsMC02NC0zMzYgMGMtMjYuNSAwLTQ4LTIxLjUtNDgtNDhsMC0zMmMwLTI2LjUgMjEuNS00OCA0OC00OGwzMzYgMCAwLTY0YzAtMTIuOSA3LjgtMjQuNiAxOS44LTI5LjZzMjUuNy0yLjIgMzQuOSA2LjlsMTI4IDEyOHoiXX0sUHV0PVVvZSxOdXQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToidHJ1Y2stZHJvcGxldCIsaWNvbjpbNTc2LDUxMixbXSwiZTU4YyIsIk02NCAzMkMyOC43IDMyIDAgNjAuNyAwIDk2TDAgMzg0YzAgMzUuMyAyOC43IDY0IDY0IDY0bDMuMyAwYzEwLjQgMzYuOSA0NC40IDY0IDg0LjcgNjRzNzQuMi0yNy4xIDg0LjctNjRsMTAyLjYgMGMxMC40IDM2LjkgNDQuNCA2NCA4NC43IDY0czc0LjItMjcuMSA4NC43LTY0bDMuMyAwYzM1LjMgMCA2NC0yOC43IDY0LTY0bDAtMTQ2LjdjMC0xNy02LjctMzMuMy0xOC43LTQ1LjNMNTEyIDE0Ni43Yy0xMi0xMi0yOC4zLTE4LjctNDUuMy0xOC43bC01MC43IDAgMC0zMmMwLTM1LjMtMjguNy02NC02NC02NEw2NCAzMnpNNTEyIDIzNy4zbDAgNTAuNy05NiAwIDAtOTYgNTAuNyAwIDQ1LjMgNDUuM3pNMTUyIDM4NGE0MCA0MCAwIDEgMSAwIDgwIDQwIDQwIDAgMSAxIDAtODB6bTIzMiA0MGE0MCA0MCAwIDEgMSA4MCAwIDQwIDQwIDAgMSAxIC04MCAwek0yMDggMzA0Yy0zOS44IDAtNzItMzIuMi03Mi03MiAwLTMzLjIgMzQuNS03OCA1NS44LTEwMi40IDguNy0xMCAyMy44LTEwIDMyLjUgMCAyMS4yIDI0LjQgNTUuOCA2OS4xIDU1LjggMTAyLjQgMCA0OC0zMi4yIDcyLTcyIDcyeiJdfSxGdXQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiaGFuZC1ob2xkaW5nLW1lZGljYWwiLGljb246WzU3Niw1MTIsW10sImUwNWMiLCJNMjQwIDI0YzAtMTMuMyAxMC43LTI0IDI0LTI0bDQ4IDBjMTMuMyAwIDI0IDEwLjcgMjQgMjRsMCA1NiA1NiAwYzEzLjMgMCAyNCAxMC43IDI0IDI0bDAgNDhjMCAxMy4zLTEwLjcgMjQtMjQgMjRsLTU2IDAgMCA1NmMwIDEzLjMtMTAuNyAyNC0yNCAyNGwtNDggMGMtMTMuMyAwLTI0LTEwLjctMjQtMjRsMC01Ni01NiAwYy0xMy4zIDAtMjQtMTAuNy0yNC0yNGwwLTQ4YzAtMTMuMyAxMC43LTI0IDI0LTI0bDU2IDAgMC01NnpNNjYuNyAzODRsNDIuNS00Mi41YzI0LTI0IDU2LjYtMzcuNSA5MC41LTM3LjVMMzUyIDMwNGMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMmwtNzIgMGMtMTMuMyAwLTI0IDEwLjctMjQgMjRzMTAuNyAyNCAyNCAyNGwxMTIuNiAwIDExOS43LTg4LjJjMTcuOC0xMy4xIDQyLjgtOS4zIDU1LjkgOC41czkuMyA0Mi44LTguNSA1NS45TDQzMy4xIDQ4NS41Yy0yMy40IDE3LjItNTEuNiAyNi41LTgwLjcgMjYuNUwzMiA1MTJjLTE3LjcgMC0zMi0xNC4zLTMyLTMybDAtNjRjMC0xNy43IDE0LjMtMzIgMzItMzJsMzQuNyAweiJdfSxPdXQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiaGFuZC1wb2ludC1sZWZ0IixpY29uOls1MTIsNTEyLFtdLCJmMGE1IiwiTTMyIDk2QzE0LjMgOTYgMCAxMTAuMyAwIDEyOHMxNC4zIDMyIDMyIDMybDIwOCAwIDAtNjQtMjA4IDB6TTE5MiAyODhjLTE3LjcgMC0zMiAxNC4zLTMyIDMyczE0LjMgMzIgMzIgMzJsNjQgMGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMmwtNjQgMHptLTY0LTY0YzAgMTcuNyAxNC4zIDMyIDMyIDMybDQ4IDBjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJsLTQ4IDBjLTE3LjcgMC0zMiAxNC4zLTMyIDMyem05NiAxNjBjLTE3LjcgMC0zMiAxNC4zLTMyIDMyczE0LjMgMzIgMzIgMzJsNjQgMGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMmwtNjQgMHptODgtOTZsLS42IDBjNS40IDkuNCA4LjYgMjAuMyA4LjYgMzIgMCAxMy4yLTQgMjUuNC0xMC44IDM1LjYgMjQuOSA4LjcgNDIuOCAzMi41IDQyLjggNjAuNCAwIDExLjctMy4xIDIyLjYtOC42IDMybDguNiAwYzg4LjQgMCAxNjAtNzEuNiAxNjAtMTYwbDAtNjEuN2MwLTQyLjQtMTYuOS04My4xLTQ2LjktMTEzLjFsLTExLjYtMTEuNkM0MjkuNSA3Ny41IDM5Ni45IDY0IDM2MyA2NGwtMjcgMGMtMzUuMyAwLTY0IDI4LjctNjQgNjRsMCA4OGMwIDIyLjEgMTcuOSA0MCA0MCA0MHM0MC0xNy45IDQwLTQwbDAtNTZjMC04LjggNy4yLTE2IDE2LTE2czE2IDcuMiAxNiAxNmwwIDU2YzAgMzkuOC0zMi4yIDcyLTcyIDcyeiJdfSxSdXQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiY2FsY3VsYXRvciIsaWNvbjpbMzg0LDUxMixbMTI4NDI1XSwiZjFlYyIsIk02NCAwQzI4LjcgMCAwIDI4LjcgMCA2NEwwIDQ0OGMwIDM1LjMgMjguNyA2NCA2NCA2NGwyNTYgMGMzNS4zIDAgNjQtMjguNyA2NC02NGwwLTM4NGMwLTM1LjMtMjguNy02NC02NC02NEw2NCAwek05NiA2NGwxOTIgMGMxNy43IDAgMzIgMTQuMyAzMiAzMmwwIDMyYzAgMTcuNy0xNC4zIDMyLTMyIDMyTDk2IDE2MGMtMTcuNyAwLTMyLTE0LjMtMzItMzJsMC0zMmMwLTE3LjcgMTQuMy0zMiAzMi0zMnptMTYgMTY4YTI0IDI0IDAgMSAxIC00OCAwIDI0IDI0IDAgMSAxIDQ4IDB6bTgwIDI0YTI0IDI0IDAgMSAxIDAtNDggMjQgMjQgMCAxIDEgMCA0OHptMTI4LTI0YTI0IDI0IDAgMSAxIC00OCAwIDI0IDI0IDAgMSAxIDQ4IDB6TTg4IDM1MmEyNCAyNCAwIDEgMSAwLTQ4IDI0IDI0IDAgMSAxIDAgNDh6bTEyOC0yNGEyNCAyNCAwIDEgMSAtNDggMCAyNCAyNCAwIDEgMSA0OCAwem04MCAyNGEyNCAyNCAwIDEgMSAwLTQ4IDI0IDI0IDAgMSAxIDAgNDh6TTY0IDQyNGMwLTEzLjMgMTAuNy0yNCAyNC0yNGwxMTIgMGMxMy4zIDAgMjQgMTAuNyAyNCAyNHMtMTAuNyAyNC0yNCAyNEw4OCA0NDhjLTEzLjMgMC0yNC0xMC43LTI0LTI0em0yMzItMjRjMTMuMyAwIDI0IDEwLjcgMjQgMjRzLTEwLjcgMjQtMjQgMjQtMjQtMTAuNy0yNC0yNCAxMC43LTI0IDI0LTI0eiJdfSxWZz17cHJlZml4OiJmYXMiLGljb25OYW1lOiJtaW51cyIsaWNvbjpbNDQ4LDUxMixbODIxMSw4NzIyLDEwMTM0LCJzdWJ0cmFjdCJdLCJmMDY4IiwiTTAgMjU2YzAtMTcuNyAxNC4zLTMyIDMyLTMybDM4NCAwYzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMyTDMyIDI4OGMtMTcuNyAwLTMyLTE0LjMtMzItMzJ6Il19LEJ1dD1WZyxXb2U9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiYXJyb3ctdXAtei1hIixpY29uOls1MTIsNTEyLFsic29ydC1hbHBoYS11cC1hbHQiXSwiZjg4MiIsIk0xNTAuNiA0MS40Yy0xMi41LTEyLjUtMzIuOC0xMi41LTQ1LjMgMGwtODAgODBjLTEyLjUgMTIuNS0xMi41IDMyLjggMCA0NS4zczMyLjggMTIuNSA0NS4zIDBMOTYgMTQxLjMgOTYgNDQ4YzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJsMC0zMDYuNyAyNS40IDI1LjRjMTIuNSAxMi41IDMyLjggMTIuNSA0NS4zIDBzMTIuNS0zMi44IDAtNDUuM2wtODAtODB6TTI4OCA2NGMwIDE3LjcgMTQuMyAzMiAzMiAzMmw1MC43IDAtNzMuNCA3My40Yy05LjIgOS4yLTExLjkgMjIuOS02LjkgMzQuOVMzMDcuMSAyMjQgMzIwIDIyNGwxMjggMGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMmwtNTAuNyAwIDczLjQtNzMuNGM5LjItOS4yIDExLjktMjIuOSA2LjktMzQuOVM0NjEgMzIgNDQ4IDMyTDMyMCAzMmMtMTcuNyAwLTMyIDE0LjMtMzIgMzJ6TTQxMi42IDI3My43QzQwNy4yIDI2Mi44IDM5Ni4xIDI1NiAzODQgMjU2cy0yMy4yIDYuOC0yOC42IDE3LjdsLTgwIDE2MGMtNy45IDE1LjgtMS41IDM1IDE0LjMgNDIuOXMzNSAxLjUgNDIuOS0xNC4zbDcuMi0xNC4zIDg4LjQgMCA3LjIgMTQuM2M3LjkgMTUuOCAyNy4xIDIyLjIgNDIuOSAxNC4zczIyLjItMjcuMSAxNC4zLTQyLjlsLTgwLTE2MHpNMzg0IDM1OS42bDIwLjIgNDAuNC00MC40IDAgMjAuMi00MC40eiJdfSxIdXQ9V29lLHF1dD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJtaWNyb3Bob25lLXNsYXNoIixpY29uOls1NzYsNTEyLFtdLCJmMTMxIiwiTTQxLTI0LjljLTkuNC05LjQtMjQuNi05LjQtMzMuOSAwUy0yLjMtLjMgNyA5LjFsNTI4IDUyOGM5LjQgOS40IDI0LjYgOS40IDMzLjkgMHM5LjQtMjQuNiAwLTMzLjlMNDI0LjcgMzU4LjhDNDU4LjkgMzI0LjIgNDgwIDI3Ni42IDQ4MCAyMjRsMC00MGMwLTEzLjMtMTAuNy0yNC0yNC0yNHMtMjQgMTAuNy0yNCAyNGwwIDQwYzAgMzkuMy0xNS43IDc0LjktNDEuMyAxMDAuOUwzNTYuOCAyOTFDMzczLjYgMjczLjcgMzg0IDI1MCAzODQgMjI0bDAtMTI4YzAtNTMtNDMtOTYtOTYtOTZzLTk2IDQzLTk2IDk2bDAgMzAuMi0xNTEtMTUxem0yOTguMyA0MzRsLTQxLjQtNDEuNGMtMy4zIC4yLTYuNSAuMy05LjggLjMtNzkuNSAwLTE0NC02NC41LTE0NC0xNDRsMC0xMC4yLTQzLjYtNDMuNmMtMi44IDMuOS00LjQgOC43LTQuNCAxMy44bDAgNDBjMCA5Ny45IDczLjMgMTc4LjcgMTY4IDE5MC41bDAgNDkuNS00OCAwYy0xMy4zIDAtMjQgMTAuNy0yNCAyNHMxMC43IDI0IDI0IDI0bDE0NCAwYzEzLjMgMCAyNC0xMC43IDI0LTI0cy0xMC43LTI0LTI0LTI0bC00OCAwIDAtNDkuNWM5LjMtMS4yIDE4LjQtMyAyNy4zLTUuNHoiXX0sSkE9e3ByZWZpeDoiZmFzIixpY29uTmFtZToic3F1YXJlLXBlbiIsaWNvbjpbNDQ4LDUxMixbInBlbi1zcXVhcmUiLCJwZW5jaWwtc3F1YXJlIl0sImYxNGIiLCJNNjQgMzJDMjguNyAzMiAwIDYwLjcgMCA5NkwwIDQxNmMwIDM1LjMgMjguNyA2NCA2NCA2NGwzMjAgMGMzNS4zIDAgNjQtMjguNyA2NC02NGwwLTMyMGMwLTM1LjMtMjguNy02NC02NC02NEw2NCAzMnpNMzI1LjggMTM5LjdsMTQuNCAxNC40YzE1LjYgMTUuNiAxNS42IDQwLjkgMCA1Ni42bC0yMy44IDIzLjgtNzEtNzEgMjMuOC0yMy44YzE1LjYtMTUuNiA0MC45LTE1LjYgNTYuNiAwek0xMTkuOSAyODlsOTEuNS05MS42IDcxIDcxLTkxLjYgOTEuNWMtNC4xIDQuMS05LjIgNy0xNC45IDguNGwtNjAuMSAxNWMtNS41IDEuNC0xMS4yLS4yLTE1LjItNC4ycy01LjYtOS43LTQuMi0xNS4ybDE1LTYwLjFjMS40LTUuNiA0LjMtMTAuOCA4LjQtMTQuOXoiXX0sanV0PUpBLFZ1dD1KQSxHb2U9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiaGFuZC1maXN0IixpY29uOlszODQsNTEyLFs5OTk0LCJmaXN0LXJhaXNlZCJdLCJmNmRlIiwiTTE2MCAwYzE3LjcgMCAzMiAxNC4zIDMyIDMybDAgMTEyLTY0IDAgMC0xMTJjMC0xNy43IDE0LjMtMzIgMzItMzJ6TTMyIDY0YzAtMTcuNyAxNC4zLTMyIDMyLTMyUzk2IDQ2LjMgOTYgNjRsMCA4MC02NCAwIDAtODB6bTE5MiAwYzAtMTcuNyAxNC4zLTMyIDMyLTMyczMyIDE0LjMgMzIgMzJsMCA5NmMwIDE3LjctMTQuMyAzMi0zMiAzMnMtMzItMTQuMy0zMi0zMmwwLTk2em05NiA2NGMwLTE3LjcgMTQuMy0zMiAzMi0zMnMzMiAxNC4zIDMyIDMybDAgNjRjMCAxNy43LTE0LjMgMzItMzIgMzJzLTMyLTE0LjMtMzItMzJsMC02NHptLTk2IDg4bDAtLjZjOS40IDUuNCAyMC4zIDguNiAzMiA4LjYgMTMuMiAwIDI1LjQtNCAzNS42LTEwLjggOC43IDI0LjkgMzIuNSA0Mi44IDYwLjQgNDIuOCAxMS43IDAgMjIuNi0zLjEgMzItOC42bDAgOC42YzAgNTIuMy0yNS4xIDk4LjgtNjQgMTI4bDAgOTZjMCAxNy43LTE0LjMgMzItMzIgMzJsLTE2MCAwYy0xNy43IDAtMzItMTQuMy0zMi0zMmwwLTc4LjRjLTE3LjMtNy45LTMzLjItMTguOC00Ni45LTMyLjVMMzcuNSAzNTcuNUMxMy41IDMzMy41IDAgMzAwLjkgMCAyNjdsMC0yN2MwLTM1LjMgMjguNy02NCA2NC02NGw4OCAwYzIyLjEgMCA0MCAxNy45IDQwIDQwcy0xNy45IDQwLTQwIDQwbC01NiAwYy04LjggMC0xNiA3LjItMTYgMTZzNy4yIDE2IDE2IDE2bDU2IDBjMzkuOCAwIDcyLTMyLjIgNzItNzJ6Il19LFV1dD1Hb2UsWW9lPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImNvbW1lbnQtc21zIixpY29uOls1MTIsNTEyLFsic21zIl0sImY3Y2QiLCJNMjU2IDQ4MGMxNDEuNCAwIDI1Ni0xMDcuNSAyNTYtMjQwUzM5Ny40IDAgMjU2IDAgMCAxMDcuNSAwIDI0MGMwIDU0LjMgMTkuMiAxMDQuMyA1MS42IDE0NC41TDIuOCA0NzYuOGMtNC44IDktMy4zIDIwIDMuNiAyNy41czE3LjggOS44IDI3LjEgNS44bDExOC40LTUwLjdDMTgzLjcgNDcyLjYgMjE4LjkgNDgwIDI1NiA0ODB6TTE0MC44IDE3Mi44bDE5LjIgMGM4LjggMCAxNiA3LjIgMTYgMTZzLTcuMiAxNi0xNiAxNmwtMTkuMiAwYy01LjMgMC05LjYgNC4zLTkuNiA5LjZzNC4zIDkuNiA5LjYgOS42YzIzIDAgNDEuNiAxOC42IDQxLjYgNDEuNnMtMTguNiA0MS42LTQxLjYgNDEuNmwtMjUuNiAwYy04LjggMC0xNi03LjItMTYtMTZzNy4yLTE2IDE2LTE2bDI1LjYgMGM1LjMgMCA5LjYtNC4zIDkuNi05LjZzLTQuMy05LjYtOS42LTkuNmMtMjMgMC00MS42LTE4LjYtNDEuNi00MS42czE4LjYtNDEuNiA0MS42LTQxLjZ6bTE4OC44IDQxLjZjMC0yMyAxOC42LTQxLjYgNDEuNi00MS42bDE5LjIgMGM4LjggMCAxNiA3LjIgMTYgMTZzLTcuMiAxNi0xNiAxNmwtMTkuMiAwYy01LjMgMC05LjYgNC4zLTkuNiA5LjZzNC4zIDkuNiA5LjYgOS42YzIzIDAgNDEuNiAxOC42IDQxLjYgNDEuNnMtMTguNiA0MS42LTQxLjYgNDEuNmwtMjUuNiAwYy04LjggMC0xNi03LjItMTYtMTZzNy4yLTE2IDE2LTE2bDI1LjYgMGM1LjMgMCA5LjYtNC4zIDkuNi05LjZzLTQuMy05LjYtOS42LTkuNmMtMjMgMC00MS42LTE4LjYtNDEuNi00MS42em0tOTguMy0zMy44bDI0LjcgNDEuMSAyNC43LTQxLjFjMy43LTYuMiAxMS4xLTkuMSAxOC03LjJzMTEuNyA4LjIgMTEuNyAxNS40bDAgMTAyLjRjMCA4LjgtNy4yIDE2LTE2IDE2cy0xNi03LjItMTYtMTZsMC00NC42LTguNyAxNC41Yy0yLjkgNC44LTguMSA3LjgtMTMuNyA3LjhzLTEwLjgtMy0xMy43LTcuOGwtOC43LTE0LjUgMCA0NC42YzAgOC44LTcuMiAxNi0xNiAxNnMtMTYtNy4yLTE2LTE2bDAtMTAyLjRjMC03LjIgNC44LTEzLjUgMTEuNy0xNS40czE0LjMgMSAxOCA3LjJ6Il19LFd1dD1Zb2UsR3V0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InNpbS1jYXJkIixpY29uOlszODQsNTEyLFtdLCJmN2M0IiwiTTAgNjRDMCAyOC43IDI4LjcgMCA2NCAwTDI1OC43IDBjMTcgMCAzMy4zIDYuNyA0NS4zIDE4LjdMMzY1LjMgODBjMTIgMTIgMTguNyAyOC4zIDE4LjcgNDUuM0wzODQgNDQ4YzAgMzUuMy0yOC43IDY0LTY0IDY0TDY0IDUxMmMtMzUuMyAwLTY0LTI4LjctNjQtNjRMMCA2NHpNOTYgMjU2Yy0xNy43IDAtMzIgMTQuMy0zMiAzMmwwIDQwIDEyOCAwIDAtNzItOTYgMHpNNjQgNDE2YzAgMTcuNyAxNC4zIDMyIDMyIDMybDQ4IDAgMC03Mi04MCAwIDAgNDB6bTI1NiAwbDAtNDAtMTI4IDAgMCA3MiA5NiAwYzE3LjcgMCAzMi0xNC4zIDMyLTMyem0wLTEyOGMwLTE3LjctMTQuMy0zMi0zMi0zMmwtNDggMCAwIDcyIDgwIDAgMC00MHoiXX0sWm9lPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InNjYWxlLWJhbGFuY2VkIixpY29uOls2NDAsNTEyLFs5ODc4LCJiYWxhbmNlLXNjYWxlIl0sImYyNGUiLCJNMzg0IDMybDEyOCAwYzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMyTDM5OC40IDk2Yy01LjIgMjUuOC0yMi45IDQ3LjEtNDYuNCA1Ny4zbDAgMjk0LjcgMTYwIDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJsLTM4NCAwYy0xNy43IDAtMzItMTQuMy0zMi0zMnMxNC4zLTMyIDMyLTMybDE2MCAwIDAtMjk0LjdjLTIzLjUtMTAuMy00MS4yLTMxLjYtNDYuNC01Ny4zTDEyOCA5NmMtMTcuNyAwLTMyLTE0LjMtMzItMzJzMTQuMy0zMiAzMi0zMmwxMjggMGMxNC42LTE5LjQgMzcuOC0zMiA2NC0zMnM0OS40IDEyLjYgNjQgMzJ6bTU1LjYgMjg4TDU4NC40IDMyMCA1MTIgMTk1LjggNDM5LjYgMzIwek01MTIgNDE2Yy02Mi45IDAtMTE1LjItMzQtMTI2LTc4LjktMi42LTExIDEtMjIuMyA2LjctMzIuMWw5NS4yLTE2My4yYzUtOC42IDE0LjItMTMuOCAyNC4xLTEzLjhzMTkuMSA1LjMgMjQuMSAxMy44bDk1LjIgMTYzLjJjNS43IDkuOCA5LjMgMjEuMSA2LjcgMzIuMS0xMC44IDQ0LjgtNjMuMSA3OC45LTEyNiA3OC45ek0xMjYuOCAxOTUuOEw1NC40IDMyMCAxOTkuMyAzMjAgMTI2LjggMTk1Ljh6TS45IDMzNy4xYy0yLjYtMTEgMS0yMi4zIDYuNy0zMi4xbDk1LjItMTYzLjJjNS04LjYgMTQuMi0xMy44IDI0LjEtMTMuOHMxOS4xIDUuMyAyNC4xIDEzLjhsOTUuMiAxNjMuMmM1LjcgOS44IDkuMyAyMS4xIDYuNyAzMi4xLTEwLjggNDQuOC02My4xIDc4LjktMTI2IDc4LjlTMTEuNyAzODIgLjkgMzM3LjF6Il19LFl1dD1ab2UsWG9lPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImNhciIsaWNvbjpbNTEyLDUxMixbMTI4NjY0LCJhdXRvbW9iaWxlIl0sImYxYjkiLCJNMTM1LjIgMTE3LjRsLTI2LjEgNzQuNiAyOTMuOCAwLTI2LjEtNzQuNkMzNzIuMyAxMDQuNiAzNjAuMiA5NiAzNDYuNiA5NkwxNjUuNCA5NmMtMTMuNiAwLTI1LjcgOC42LTMwLjIgMjEuNHpNMzkuNiAxOTYuOEw3NC44IDk2LjNDODguMyA1Ny44IDEyNC42IDMyIDE2NS40IDMybDE4MS4yIDBjNDAuOCAwIDc3LjEgMjUuOCA5MC42IDY0LjNsMzUuMiAxMDAuNWMyMy4yIDkuNiAzOS42IDMyLjUgMzkuNiA1OS4ybDAgMTkyYzAgMTcuNy0xNC4zIDMyLTMyIDMybC0zMiAwYy0xNy43IDAtMzItMTQuMy0zMi0zMmwwLTMyLTMyMCAwIDAgMzJjMCAxNy43LTE0LjMgMzItMzIgMzJsLTMyIDBjLTE3LjcgMC0zMi0xNC4zLTMyLTMyTDAgMjU2YzAtMjYuNyAxNi40LTQ5LjYgMzkuNi01OS4yek0xMjggMzA0YTMyIDMyIDAgMSAwIC02NCAwIDMyIDMyIDAgMSAwIDY0IDB6bTI4OCAzMmEzMiAzMiAwIDEgMCAwLTY0IDMyIDMyIDAgMSAwIDAgNjR6Il19LFp1dD1Yb2UsUW9lPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImNyb3Atc2ltcGxlIixpY29uOls1MTIsNTEyLFsiY3JvcC1hbHQiXSwiZjU2NSIsIk0xMjggMzJjMC0xNy43LTE0LjMtMzItMzItMzJTNjQgMTQuMyA2NCAzMmwwIDMyLTMyIDBDMTQuMyA2NCAwIDc4LjMgMCA5NnMxNC4zIDMyIDMyIDMybDMyIDAgMCAyNTZjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMjA4IDAgMC02NC0yMDggMCAwLTM1MnpNMzg0IDQ4MGMwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMybDAtMzIgMzIgMGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMmwtMzIgMCAwLTI1NmMwLTM1LjMtMjguNy02NC02NC02NGwtMjA4IDAgMCA2NCAyMDggMCAwIDM1MnoiXX0sWHV0PVFvZSxRdXQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToibWVkYWwiLGljb246WzQ0OCw1MTIsWzEyNzk0MV0sImY1YTIiLCJNMjI0LjMgMTI4TDEzOS43LTEyLjljLTYuNS0xMC44LTIwLjEtMTQuNy0zMS4zLTkuMUwyMS44IDIxLjNDOS45IDI3LjIgNS4xIDQxLjYgMTEgNTMuNUw4MC42IDE5Mi42Yy0zMC4xIDMzLjktNDguMyA3OC41LTQ4LjMgMTI3LjQgMCAxMDYgODYgMTkyIDE5MiAxOTJzMTkyLTg2IDE5Mi0xOTJjMC00OC45LTE4LjMtOTMuNS00OC4zLTEyNy40TDQzNy42IDUzLjVjNS45LTExLjkgMS4xLTI2LjMtMTAuNy0zMi4yTDM0MC4yLTIyLjFjLTExLjItNS42LTI0LjktMS42LTMxLjMgOS4xTDIyNC4zIDEyOHptMzAuOCAxNDIuNWMxLjQgMi44IDQgNC43IDcgNS4xbDUwLjEgNy4zYzcuNyAxLjEgMTAuNyAxMC41IDUuMiAxNmwtMzYuMyAzNS40Yy0yLjIgMi4yLTMuMiA1LjItMi43IDguM2w4LjYgNDkuOWMxLjMgNy42LTYuNyAxMy41LTEzLjYgOS45bC00NC44LTIzLjZjLTIuNy0xLjQtNi0xLjQtOC43IDBsLTQ0LjggMjMuNmMtNi45IDMuNi0xNC45LTIuMi0xMy42LTkuOWw4LjYtNDkuOWMuNS0zLS41LTYuMS0yLjctOC4zbC0zNi4zLTM1LjRjLTUuNi01LjQtMi41LTE0LjggNS4yLTE2bDUwLjEtNy4zYzMtLjQgNS43LTIuNCA3LTUuMWwyMi40LTQ1LjRjMy40LTcgMTMuMy03IDE2LjggMGwyMi40IDQ1LjR6Il19LEp1dD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJzY3JvbGwiLGljb246WzU3Niw1MTIsWzEyODIyMF0sImY3MGUiLCJNMCAxMTJDMCA3MC41IDMxLjYgMzYuNCA3MiAzMi40bDAtLjQgMjgwIDBjNTMgMCA5NiA0MyA5NiA5NmwwIDE3Ni0xNzYgMGMtMzkuOCAwLTcyIDMyLjItNzIgNzJsMCA2MGMwIDI0LjMtMTkuNyA0NC00NCA0NHMtNDQtMTkuNy00NC00NGwwLTIyOC02NCAwYy0yNi41IDAtNDgtMjEuNS00OC00OGwwLTQ4ek0yMzYuOCA0ODBjNy4xLTEzLjEgMTEuMi0yOC4xIDExLjItNDRsMC02MGMwLTEzLjMgMTAuNy0yNCAyNC0yNGwyNDggMGMxMy4zIDAgMjQgMTAuNyAyNCAyNGwwIDI0YzAgNDQuMi0zNS44IDgwLTgwIDgwbC0yMjcuMiAwek04MCA4MGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJsMCA0OCA2NCAwIDAtNDhjMC0xNy43LTE0LjMtMzItMzItMzJ6Il19LEt1dD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJmaWxlLWV4Y2VsIixpY29uOlszODQsNTEyLFtdLCJmMWMzIiwiTTAgNjRDMCAyOC43IDI4LjcgMCA2NCAwTDIxMy41IDBjMTcgMCAzMy4zIDYuNyA0NS4zIDE4LjdMMzY1LjMgMTI1LjNjMTIgMTIgMTguNyAyOC4zIDE4LjcgNDUuM0wzODQgNDQ4YzAgMzUuMy0yOC43IDY0LTY0IDY0TDY0IDUxMmMtMzUuMyAwLTY0LTI4LjctNjQtNjRMMCA2NHptMjA4LTUuNWwwIDkzLjVjMCAxMy4zIDEwLjcgMjQgMjQgMjRMMzI1LjUgMTc2IDIwOCA1OC41ek0xNjQgMjY2LjdjLTcuNC0xMS0yMi4zLTE0LTMzLjMtNi43cy0xNCAyMi4zLTYuNyAzMy4zTDE2My4yIDM1MiAxMjQgNDEwLjdjLTcuNCAxMS00LjQgMjUuOSA2LjcgMzMuM3MyNS45IDQuNCAzMy4zLTYuN2wyOC00MiAyOCA0MmM3LjQgMTEgMjIuMyAxNCAzMy4zIDYuN3MxNC0yMi4zIDYuNy0zMy4zTDIyMC44IDM1MiAyNjAgMjkzLjNjNy40LTExIDQuNC0yNS45LTYuNy0zMy4zcy0yNS45LTQuNC0zMy4zIDYuN2wtMjggNDItMjgtNDJ6Il19LGU4dD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJmaWx0ZXIiLGljb246WzUxMiw1MTIsW10sImYwYjAiLCJNMzIgNjRDMTkuMSA2NCA3LjQgNzEuOCAyLjQgODMuOFMuMiAxMDkuNSA5LjQgMTE4LjZMMTkyIDMwMS4zIDE5MiA0MTZjMCA4LjUgMy40IDE2LjYgOS40IDIyLjZsNjQgNjRjOS4yIDkuMiAyMi45IDExLjkgMzQuOSA2LjlTMzIwIDQ5Mi45IDMyMCA0ODBsMC0xNzguNyAxODIuNi0xODIuNmM5LjItOS4yIDExLjktMjIuOSA2LjktMzQuOVM0OTIuOSA2NCA0ODAgNjRMMzIgNjR6Il19LHQ4dD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJkcnVtIixpY29uOls1MTIsNTEyLFsxMjkzNDVdLCJmNTY5IiwiTTUwMS4yIDc2LjFjMTEuMS03LjMgMTQuMi0yMi4xIDYuOS0zMy4ycy0yMi4xLTE0LjItMzMuMi02LjlMMzcwLjIgMTA0LjVDMzM1LjggOTguNyAyOTcgOTYgMjU2IDk2IDExNC42IDk2IDAgMTI4IDAgMjA4TDAgMzY4YzAgMzEuMyAyNy40IDU4LjggNzIgNzguN0w3MiAzNDRjMC0xMy4zIDEwLjctMjQgMjQtMjRzMjQgMTAuNyAyNCAyNGwwIDExOS40YzMzIDguOSA3MS4xIDE0LjUgMTEyIDE2LjFMMjMyIDM3NmMwLTEzLjMgMTAuNy0yNCAyNC0yNHMyNCAxMC43IDI0IDI0bDAgMTAzLjVjNDAuOS0xLjYgNzktNy4yIDExMi0xNi4xTDM5MiAzNDRjMC0xMy4zIDEwLjctMjQgMjQtMjRzMjQgMTAuNyAyNCAyNGwwIDEwMi43YzQ0LjYtMTkuOSA3Mi00Ny40IDcyLTc4LjdsMC0xNjBjMC00MS4xLTMwLjItNjkuNS03OC44LTg3LjRsNjcuOS00NC41ek0zMDcuNCAxNDUuNmwtNjQuNiA0Mi4zYy0xMS4xIDcuMy0xNC4yIDIyLjEtNi45IDMzLjJzMjIuMSAxNC4yIDMzLjIgNi45bDExMS4xLTcyLjhjMTQuNyAzLjIgMjcuOSA3IDM5LjQgMTEuNSAzOC44IDE1LjEgNDQuNCAzMC42IDQ0LjQgNDEuMyAwIC44LTIuNyAxNy4yLTQ2IDM1LjktMzguOSAxNi44LTk2IDI4LjEtMTYyIDI4LjFTMTMyLjkgMjYwLjcgOTQgMjQzLjljLTQzLjMtMTguNy00Ni0zNS4xLTQ2LTM1LjkgMC0xMC42IDUuNi0yNi4yIDQ0LjQtNDEuMyAzOC4zLTE0LjkgOTUuNC0yMi43IDE2My42LTIyLjcgMTggMCAzNS4xIC41IDUxLjQgMS42eiJdfSxyOHQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToibWFwLXBpbiIsaWNvbjpbMzIwLDUxMixbMTI4MjA1XSwiZjI3NiIsIk0xOTIgMjg0LjRDMjU2LjEgMjY5LjkgMzA0IDIxMi41IDMwNCAxNDQgMzA0IDY0LjUgMjM5LjUgMCAxNjAgMFMxNiA2NC41IDE2IDE0NGMwIDY4LjUgNDcuOSAxMjUuOSAxMTIgMTQwLjRMMTI4IDQ4MGMwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMybDAtMTk1LjZ6TTE2OCA5NmMtMzAuOSAwLTU2IDI1LjEtNTYgNTYgMCAxMy4zLTEwLjcgMjQtMjQgMjRzLTI0LTEwLjctMjQtMjRjMC01Ny40IDQ2LjYtMTA0IDEwNC0xMDQgMTMuMyAwIDI0IDEwLjcgMjQgMjRzLTEwLjcgMjQtMjQgMjR6Il19LEpvZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJzY2FsZS11bmJhbGFuY2VkLWZsaXAiLGljb246WzY0MCw1MTIsWyJiYWxhbmNlLXNjYWxlLXJpZ2h0Il0sImY1MTYiLCJNMTE4LjIgNjIuNEMxMDEuNSA1Ni44IDkyLjQgMzguNiA5OCAyMS45UzEyMS43LTMuOSAxMzguNSAxLjZsMTEzIDM3LjdjMTMuOS0yMy41IDM5LjYtMzkuMyA2OC45LTM5LjMgNDQuMiAwIDgwIDM1LjggODAgODAgMCAzLS4yIDUuOS0uNSA4LjhsMTIyLjYgNDAuOWMxNi44IDUuNiAyNS44IDIzLjcgMjAuMiA0MC41cy0yMy43IDI1LjgtNDAuNSAyMC4yTDM2Ni43IDE0NS4yYy00LjUgMy4yLTkuMyA1LjktMTQuNCA4LjJsMCAzMjYuN2MwIDE3LjctMTQuMyAzMi0zMiAzMmwtMTkyIDBjLTE3LjcgMC0zMi0xNC4zLTMyLTMyczE0LjMtMzIgMzItMzJsMTYwIDAgMC0yOTQuN2MtMjEtOS4yLTM3LjItMjctNDQuMi00OWwtMTI1LjktNDJ6TTIwMC44IDI4OEwxMjguMyAxNjMuOCA1NS45IDI4OCAyMDAuOCAyODh6bS03Mi40IDk2Yy02Mi45IDAtMTE1LjItMzQtMTI2LTc4LjktMi42LTExIDEtMjIuMyA2LjctMzIuMWw5NS4yLTE2My4yYzUtOC42IDE0LjItMTMuOCAyNC4xLTEzLjhzMTkuMSA1LjMgMjQuMSAxMy44bDk1LjIgMTYzLjJjNS43IDkuOCA5LjMgMjEuMSA2LjcgMzIuMS0xMC44IDQ0LjgtNjMuMSA3OC45LTEyNiA3OC45em0zODIuOC05Mi4ybC03Mi40IDEyNC4yIDE0NC45IDAtNzIuNC0xMjQuMnptMTI2IDE0MS4zQzYyNi40IDQ3OCA1NzQuMSA1MTIgNTExLjIgNTEycy0xMTUuMi0zNC0xMjYtNzguOWMtMi42LTExIDEtMjIuMyA2LjctMzIuMWw5NS4yLTE2My4yYzUtOC42IDE0LjItMTMuOCAyNC4xLTEzLjhzMTkuMSA1LjMgMjQuMSAxMy44bDk1LjIgMTYzLjJjNS43IDkuOCA5LjMgMjEuMSA2LjcgMzIuMXoiXX0saTh0PUpvZSxhOHQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiYXJyb3dzLXRvLWNpcmNsZSIsaWNvbjpbNTEyLDUxMixbXSwiZTRiZCIsIk05LjQgOS40QzIxLjktMy4xIDQyLjEtMy4xIDU0LjYgOS40TDEyOCA4Mi43IDEyOCA2NGMwLTE3LjcgMTQuMy0zMiAzMi0zMnMzMiAxNC4zIDMyIDMybDAgOTZjMCAxNy43LTE0LjMgMzItMzIgMzJsLTk2IDBjLTE3LjcgMC0zMi0xNC4zLTMyLTMyczE0LjMtMzIgMzItMzJsMTguNyAwLTczLjQtNzMuNEMtMy4xIDQyLjEtMy4xIDIxLjkgOS40IDkuNHpNMjAwIDI1NmE1NiA1NiAwIDEgMSAxMTIgMCA1NiA1NiAwIDEgMSAtMTEyIDB6TTUwMi42IDU0LjZMNDI5LjMgMTI4IDQ0OCAxMjhjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJsLTk2IDBjLTE3LjcgMC0zMi0xNC4zLTMyLTMybDAtOTZjMC0xNy43IDE0LjMtMzIgMzItMzJzMzIgMTQuMyAzMiAzMmwwIDE4LjcgNzMuNC03My40YzEyLjUtMTIuNSAzMi44LTEyLjUgNDUuMyAwczEyLjUgMzIuOCAwIDQ1LjN6bS00NS4zIDQ0OEwzODQgNDI5LjMgMzg0IDQ0OGMwIDE3LjctMTQuMyAzMi0zMiAzMnMtMzItMTQuMy0zMi0zMmwwLTk2YzAtMTcuNyAxNC4zLTMyIDMyLTMybDk2IDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJsLTE4LjcgMCA3My40IDczLjRjMTIuNSAxMi41IDEyLjUgMzIuOCAwIDQ1LjNzLTMyLjggMTIuNS00NS4zIDB6TTkuNCA0NTcuNEw4Mi43IDM4NCA2NCAzODRjLTE3LjcgMC0zMi0xNC4zLTMyLTMyczE0LjMtMzIgMzItMzJsOTYgMGMxNy43IDAgMzIgMTQuMyAzMiAzMmwwIDk2YzAgMTcuNy0xNC4zIDMyLTMyIDMycy0zMi0xNC4zLTMyLTMybDAtMTguNy03My40IDczLjRjLTEyLjUgMTIuNS0zMi44IDEyLjUtNDUuMyAwcy0xMi41LTMyLjggMC00NS4zeiJdfSxuOHQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZW52ZWxvcGUiLGljb246WzUxMiw1MTIsWzEyODM4Niw5OTkzLDYxNDQzXSwiZjBlMCIsIk00OCA2NGMtMjYuNSAwLTQ4IDIxLjUtNDggNDggMCAxNS4xIDcuMSAyOS4zIDE5LjIgMzguNGwyMDggMTU2YzE3LjEgMTIuOCA0MC41IDEyLjggNTcuNiAwbDIwOC0xNTZjMTIuMS05LjEgMTkuMi0yMy4zIDE5LjItMzguNCAwLTI2LjUtMjEuNS00OC00OC00OEw0OCA2NHpNMCAxOTZMMCAzODRjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMzg0IDBjMzUuMyAwIDY0LTI4LjcgNjQtNjRsMC0xODgtMTk4LjQgMTQ4LjhjLTM0LjEgMjUuNi04MS4xIDI1LjYtMTE1LjIgMEwwIDE5NnoiXX0sbzh0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImJhYnkiLGljb246WzM4NCw1MTIsW10sImY3N2MiLCJNMTIwIDg4YTcyIDcyIDAgMSAxIDE0NCAwIDcyIDcyIDAgMSAxIC0xNDQgMHpNNy43IDE0NC41YzEzLTE3LjkgMzgtMjEuOCA1NS45LTguOEw5OS44IDE2MmMyNi44IDE5LjUgNTkuMSAzMCA5Mi4yIDMwczY1LjQtMTAuNSA5Mi4yLTMwbDM2LjItMjYuNGMxNy45LTEzIDQyLjktOSA1NS45IDguOHM5IDQyLjktOC44IDU1LjlsLTM2LjIgMjYuNGMtMTMuNiA5LjktMjguMSAxOC4yLTQzLjMgMjVsMCAzNi4zLTE5MiAwIDAtMzYuM2MtMTUuMi02LjctMjkuNy0xNS4xLTQzLjMtMjVMMTYuNSAyMDAuM2MtMTcuOS0xMy0yMS44LTM4LTguOC01NS45ek05Ny41IDMyOS4zbDYwLjYgNTMtMjYgMzcuMiAyNC4zIDI0LjNjMTUuNiAxNS42IDE1LjYgNDAuOSAwIDU2LjZzLTQwLjkgMTUuNi01Ni42IDBsLTQ4LTQ4QzM4IDQzOC42IDM2LjEgNDE3IDQ3LjIgNDAxLjFsNTAuMi03MS44em0xMjguNSA1M2w2MC42LTUzIDUwLjIgNzEuOGMxMS4xIDE1LjkgOS4yIDM3LjUtNC41IDUxLjJsLTQ4IDQ4Yy0xNS42IDE1LjYtNDAuOSAxNS42LTU2LjYgMHMtMTUuNi00MC45IDAtNTYuNmwyNC4zLTI0LjMtMjYtMzcuMnoiXX0sS29lPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InNxdWFyZS1jYXJldC1kb3duIixpY29uOls0NDgsNTEyLFsiY2FyZXQtc3F1YXJlLWRvd24iXSwiZjE1MCIsIk0zODQgNDgwYzM1LjMgMCA2NC0yOC43IDY0LTY0bDAtMzIwYzAtMzUuMy0yOC43LTY0LTY0LTY0TDY0IDMyQzI4LjcgMzIgMCA2MC43IDAgOTZMMCA0MTZjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMzIwIDB6TTIyNCAzNTJjLTYuNyAwLTEzLTIuOC0xNy42LTcuN2wtMTA0LTExMmMtNi41LTctOC4yLTE3LjItNC40LTI1LjlTMTEwLjUgMTkyIDEyMCAxOTJsMjA4IDBjOS41IDAgMTguMiA1LjcgMjIgMTQuNHMyLjEgMTguOS00LjQgMjUuOWwtMTA0IDExMmMtNC41IDQuOS0xMC45IDcuNy0xNy42IDcuN3oiXX0sczh0PUtvZSxsOHQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToidGVudCIsaWNvbjpbNTEyLDUxMixbXSwiZTU3ZCIsIk0yNi45IDIwNi45TDMuNyA0NDQuOUMxLjggNDYzLjcgMTYuNiA0ODAgMzUuNSA0ODBsMTcyLjcgMGMyNi41IDAgNDgtMjEuNSA0OC00OGwwLTEyOWMwLTguMyA2LjctMTUgMTUtMTUgNS41IDAgMTAuNiAzIDEzLjIgNy45bDg2LjEgMTU5YzguNCAxNS41IDI0LjYgMjUuMSA0Mi4yIDI1LjFsNjQuMSAwYzE4LjkgMCAzMy43LTE2LjMgMzEuOC0zNS4xTDQ4NS42IDIwNy4xYy0xLjktMTkuNi0xMi44LTM3LjMtMjkuNS00Ny44TDI4MC45IDQ4LjNjLTE1LjctMTAtMzUuOC05LjktNTEuNSAuMUw1Ni4xIDE1OS4yYy0xNi41IDEwLjYtMjcuMyAyOC4yLTI5LjIgNDcuN3oiXX0sYzh0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImEiLGljb246WzM4NCw1MTIsWzk3XSwiNDEiLCJNMjIxLjUgNTEuN0MyMTYuNiAzOS44IDIwNC45IDMyIDE5MiAzMnMtMjQuNiA3LjgtMjkuNSAxOS43Yy05My4zIDIyNC0xNDYuNyAzNTItMTYwIDM4NC02LjggMTYuMyAuOSAzNSAxNy4yIDQxLjhzMzUtLjkgNDEuOC0xNy4ybDMxLjgtNzYuMyAxOTcuMyAwIDMxLjggNzYuM2M2LjggMTYuMyAyNS41IDI0IDQxLjggMTcuMnMyNC0yNS41IDE3LjItNDEuOGMtMTMuMy0zMi02Ni43LTE2MC0xNjAtMzg0ek0yNjQgMzIwbC0xNDQgMCA3Mi0xNzIuOCA3MiAxNzIuOHoiXX0sZDh0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InBhcmFjaHV0ZS1ib3giLGljb246WzUxMiw1MTIsW10sImY0Y2QiLCJNMTI4IDIyNEMxMjggMTUyLjIgMTQ0LjMgODguNCAxNjkuNSA0My40IDE5NS4xLTIuNCAyMjYuNi0yNCAyNTYtMjRzNjAuOSAyMS42IDg2LjUgNjcuNEMzNjcuNyA4OC40IDM4NCAxNTIuMiAzODQgMjI0bC0xMDQgMCAwIDk2IDggMGM5LjMgMCAxOC4xIDIgMjYgNS41bDExOC40LTEwMS41LS41IDBjMC03OC40LTE3LjctMTUwLjYtNDcuNi0yMDQtNi4xLTExLTEyLjktMjEuMy0yMC4zLTMwLjkgODYuNSAzNS45IDE0Ny44IDExNS4xIDE0Ny44IDIxOC45IDAgNy0zLjEgMTMuNy04LjQgMTguMkwzNDcuNCAzNjAuMWMzIDcuNCA0LjYgMTUuNCA0LjYgMjMuOWwwIDY0YzAgMzUuMy0yOC43IDY0LTY0IDY0bC02NCAwYy0zNS4zIDAtNjQtMjguNy02NC02NGwwLTY0YzAtOC40IDEuNi0xNi41IDQuNi0yMy45TDguNCAyMjYuMkMzLjEgMjIxLjcgMCAyMTUgMCAyMDggMCAxMDQuMiA2MS4zIDI0LjkgMTQ3LjgtMTAuOSAxNDAuNS0xLjQgMTMzLjcgOSAxMjcuNiAyMCA5Ny43IDczLjQgODAgMTQ1LjYgODAgMjI0bC0uNSAwIDExOC40IDEwMS41YzgtMy41IDE2LjgtNS41IDI2LTUuNWw4IDAgMC05Ni0xMDQgMHoiXX0sdTh0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImNhcnQtYXJyb3ctZG93biIsaWNvbjpbNjQwLDUxMixbXSwiZjIxOCIsIk0wIDhDMC01LjMgMTAuNy0xNiAyNC0xNmw0NS4zIDBjMjcuMSAwIDUwLjMgMTkuNCA1NS4xIDQ2bC40IDIgMTg3LjIgMCAwIDEwMi4xLTMxLTMxYy05LjQtOS40LTI0LjYtOS40LTMzLjkgMHMtOS40IDI0LjYgMCAzMy45bDcyIDcyYzkuNCA5LjQgMjQuNiA5LjQgMzMuOSAwbDcyLTcyYzkuNC05LjQgOS40LTI0LjYgMC0zMy45cy0yNC42LTkuNC0zMy45IDBsLTMxIDMxIDAtMTAyLjEgMTc3LjQgMGMyMCAwIDM1LjEgMTguMiAzMS40IDM3LjlMNTM3LjggMjM1LjhjLTUuNyAzMC4zLTMyLjEgNTIuMi02Mi45IDUyLjJsLTMwMy42IDAgNS4xIDI4LjNjMi4xIDExLjQgMTIgMTkuNyAyMy42IDE5LjdMNDU2IDMzNmMxMy4zIDAgMjQgMTAuNyAyNCAyNHMtMTAuNyAyNC0yNCAyNGwtMjU1LjkgMGMtMzQuOCAwLTY0LjYtMjQuOS03MC44LTU5LjFMNzcuMiAzOC42Yy0uNy0zLjgtNC02LjYtNy45LTYuNkwyNCAzMkMxMC43IDMyIDAgMjEuMyAwIDh6TTE2MCA0NjRhNDggNDggMCAxIDEgOTYgMCA0OCA0OCAwIDEgMSAtOTYgMHptMjI0IDBhNDggNDggMCAxIDEgOTYgMCA0OCA0OCAwIDEgMSAtOTYgMHoiXX0scDh0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImJyaWRnZS1jaXJjbGUtZXhjbGFtYXRpb24iLGljb246WzU3Niw1MTIsW10sImU0Y2EiLCJNMzIgMzJDMTQuMyAzMiAwIDQ2LjMgMCA2NFMxNC4zIDk2IDMyIDk2bDggMCAwIDY0LTQwIDAgMCAxMTJjMzcuNiA5LjQgNjQgNDMuMiA2NCA4MmwwIDk0YzAgMTcuNyAxNC4zIDMyIDMyIDMybDMyIDBjMTcuNyAwIDMyLTE0LjMgMzItMzJsMC02NGMwLTUzIDQzLTk2IDk2LTk2IDYuNCAwIDEyLjcgLjYgMTguNyAxLjggMzQuNy00OS41IDkyLjItODEuOCAxNTcuMy04MS44IDI4LjYgMCA1NS42IDYuMiA4MCAxNy40bDAtNjUuNC00MCAwIDAtNjQgOCAwYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMyTDMyIDMyek00MjQgOTZsMCA2NC04MCAwIDAtNjQgODAgMHpNMjk2IDk2bDAgNjQtODAgMCAwLTY0IDgwIDB6TTg4IDk2bDgwIDAgMCA2NC04MCAwIDAtNjR6TTQzMiA1NDRhMTQ0IDE0NCAwIDEgMCAwLTI4OCAxNDQgMTQ0IDAgMSAwIDAgMjg4em0wLTEwMGEyMCAyMCAwIDEgMSAwIDQwIDIwIDIwIDAgMSAxIDAtNDB6bTAtMTQwYzguOCAwIDE2IDcuMiAxNiAxNmwwIDgwYzAgOC44LTcuMiAxNi0xNiAxNnMtMTYtNy4yLTE2LTE2bDAtODBjMC04LjggNy4yLTE2IDE2LTE2eiJdfSxLQT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJjbG91ZC1hcnJvdy11cCIsaWNvbjpbNTc2LDUxMixbNjIzMzgsImNsb3VkLXVwbG9hZCIsImNsb3VkLXVwbG9hZC1hbHQiXSwiZjBlZSIsIk0xNDQgNDgwYy03OS41IDAtMTQ0LTY0LjUtMTQ0LTE0NCAwLTYzLjQgNDEtMTE3LjIgOTcuOS0xMzYuNS0xLjMtNy43LTEuOS0xNS41LTEuOS0yMy41IDAtNzkuNSA2NC41LTE0NCAxNDQtMTQ0IDU1LjQgMCAxMDMuNSAzMS4zIDEyNy42IDc3LjEgMTQuMi04LjMgMzAuOC0xMy4xIDQ4LjQtMTMuMSA1MyAwIDk2IDQzIDk2IDk2IDAgMTUuNy0zLjggMzAuNi0xMC41IDQzLjcgNDQgMjAuMyA3NC41IDY0LjcgNzQuNSAxMTYuMyAwIDcwLjctNTcuMyAxMjgtMTI4IDEyOGwtMzA0IDB6TTMwNSAxOTFjLTkuNC05LjQtMjQuNi05LjQtMzMuOSAwbC03MiA3MmMtOS40IDkuNC05LjQgMjQuNiAwIDMzLjlzMjQuNiA5LjQgMzMuOSAwbDMxLTMxIDAgMTAyLjFjMCAxMy4zIDEwLjcgMjQgMjQgMjRzMjQtMTAuNyAyNC0yNGwwLTEwMi4xIDMxIDMxYzkuNCA5LjQgMjQuNiA5LjQgMzMuOSAwczkuNC0yNC42IDAtMzMuOWwtNzItNzJ6Il19LGg4dD1LQSxmOHQ9S0EsbTh0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImF0IixpY29uOls1MTIsNTEyLFs2MTk0Nl0sIjQwIiwiTTI1NiA2NEMxNTAgNjQgNjQgMTUwIDY0IDI1NnM4NiAxOTIgMTkyIDE5MmMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMkMxMTQuNiA1MTIgMCAzOTcuNCAwIDI1NlMxMTQuNiAwIDI1NiAwIDUxMiAxMTQuNiA1MTIgMjU2bDAgMzJjMCA1My00MyA5Ni05NiA5Ni0yOS4zIDAtNTUuNi0xMy4yLTczLjItMzMuOS0yMi44IDIxLTUzLjMgMzMuOS04Ni44IDMzLjktNzAuNyAwLTEyOC01Ny4zLTEyOC0xMjhzNTcuMy0xMjggMTI4LTEyOGMyNy45IDAgNTMuNyA4LjkgNzQuNyAyNC4xIDUuNy01IDEzLjEtOC4xIDIxLjMtOC4xIDE3LjcgMCAzMiAxNC4zIDMyIDMybDAgMTEyYzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJsMC0zMmMwLTEwNi04Ni0xOTItMTkyLTE5MnptNjQgMTkyYTY0IDY0IDAgMSAwIC0xMjggMCA2NCA2NCAwIDEgMCAxMjggMHoiXX0sZUQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiaW5kaWFuLXJ1cGVlLXNpZ24iLGljb246WzMyMCw1MTIsWyJpbmRpYW4tcnVwZWUiLCJpbnIiXSwiZTFiYyIsIk0wIDY0QzAgNDYuMyAxNC4zIDMyIDMyIDMybDI2NCAwYzEzLjMgMCAyNCAxMC43IDI0IDI0cy0xMC43IDI0LTI0IDI0bC03Ni43IDBjMTcuNyAxOS44IDMwLjEgNDQuNiAzNC43IDcybDQyIDBjMTMuMyAwIDI0IDEwLjcgMjQgMjRzLTEwLjcgMjQtMjQgMjRsLTQyIDBjLTEwLjQgNjIuMi02MC44IDExMC45LTEyMy44IDExOC45TDI3NC42IDQyMmMxNC40IDEwLjMgMTcuNyAzMC4zIDcuNCA0NC42cy0zMC4zIDE3LjctNDQuNiA3LjRMMTMuNCAzMTRDMi4xIDMwNi0yLjcgMjkxLjUgMS41IDI3OC4yUzE4LjEgMjU2IDMyIDI1Nmw4MCAwYzM1LjggMCA2Ni4xLTIzLjUgNzYuMy01NkwyNCAyMDBjLTEzLjMgMC0yNC0xMC43LTI0LTI0czEwLjctMjQgMjQtMjRsMTY0LjMgMGMtMTAuMi0zMi41LTQwLjUtNTYtNzYuMy01NkwzMiA5NkMxNC4zIDk2IDAgODEuNyAwIDY0eiJdfSxnOHQ9ZUQsYjh0PWVELHY4dD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJ0cnVjayIsaWNvbjpbNTc2LDUxMixbMTI4NjY2LDk5NTFdLCJmMGQxIiwiTTAgOTZDMCA2MC43IDI4LjcgMzIgNjQgMzJsMjg4IDBjMzUuMyAwIDY0IDI4LjcgNjQgNjRsMCAzMiA1MC43IDBjMTcgMCAzMy4zIDYuNyA0NS4zIDE4LjdMNTU3LjMgMTkyYzEyIDEyIDE4LjcgMjguMyAxOC43IDQ1LjNMNTc2IDM4NGMwIDM1LjMtMjguNyA2NC02NCA2NGwtMy4zIDBjLTEwLjQgMzYuOS00NC40IDY0LTg0LjcgNjRzLTc0LjItMjcuMS04NC43LTY0bC0xMDIuNiAwYy0xMC40IDM2LjktNDQuNCA2NC04NC43IDY0cy03NC4yLTI3LjEtODQuNy02NEw2NCA0NDhjLTM1LjMgMC02NC0yOC43LTY0LTY0TDAgOTZ6TTUxMiAyODhsMC01MC43LTQ1LjMtNDUuMy01MC43IDAgMCA5NiA5NiAwek0xOTIgNDI0YTQwIDQwIDAgMSAwIC04MCAwIDQwIDQwIDAgMSAwIDgwIDB6bTIzMiA0MGE0MCA0MCAwIDEgMCAwLTgwIDQwIDQwIDAgMSAwIDAgODB6Il19LGUyZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJjaGFsa2JvYXJkLXVzZXIiLGljb246WzY0MCw1MTIsWyJjaGFsa2JvYXJkLXRlYWNoZXIiXSwiZjUxYyIsIk0xOTIgMzg0YzUzIDAgOTYgNDMgOTYgOTYgMCAxNy43LTE0LjMgMzItMzIgMzJMMzIgNTEyYy0xNy43IDAtMzItMTQuMy0zMi0zMiAwLTUzIDQzLTk2IDk2LTk2bDk2IDB6TTU0NCAzMmMzNS4zIDAgNjQgMjguNyA2NCA2NGwwIDI4OGMwIDMzLjEtMjUuMiA2MC40LTU3LjUgNjMuN2wtNi41IC4zLTIxMS4xIDBjLTUuMS0yNC4yLTE2LjMtNDYuMS0zMi4xLTY0bDUxLjIgMCAwLTMyYzAtMTcuNyAxNC4zLTMyIDMyLTMybDk2IDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJsMCAzMiAzMiAwIDAtMjg4LTM1MiAwIDAgNTcuM2MtMTQuOC02LTMxLTkuMy00OC05LjMtNS40IDAtMTAuOCAuMy0xNiAxbDAtNDljMC0zNS4zIDI4LjctNjQgNjQtNjRsMzUyIDB6TTE0NCAzNTJhODAgODAgMCAxIDEgMC0xNjAgODAgODAgMCAxIDEgMCAxNjB6Il19LHg4dD1lMmUseTh0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InVzZXItY2hlY2siLGljb246WzY0MCw1MTIsW10sImY0ZmMiLCJNMjg2IDMwNGM5OC41IDAgMTc4LjMgNzkuOCAxNzguMyAxNzguMyAwIDE2LjQtMTMuMyAyOS43LTI5LjcgMjkuN0w3OCA1MTJjLTE2LjQgMC0yOS43LTEzLjMtMjkuNy0yOS43IDAtOTguNSA3OS44LTE3OC4zIDE3OC4zLTE3OC4zbDU5LjQgMHpNNTg1LjcgMTA1LjljNy44LTEwLjcgMjIuOC0xMy4xIDMzLjUtNS4zczEzLjEgMjIuOCA1LjMgMzMuNUw1MjIuMSAyNzQuOWMtNC4yIDUuNy0xMC43IDkuNC0xNy43IDkuOHMtMTQtMi4yLTE4LjktNy4zbC00Ni40LTQ4Yy05LjItOS41LTktMjQuNyAuNi0zMy45IDkuNS05LjIgMjQuNy04LjkgMzMuOSAuNmwyNi41IDI3LjQgODUuNi0xMTcuN3pNMjU2LjMgMjQ4YTEyMCAxMjAgMCAxIDEgMC0yNDAgMTIwIDEyMCAwIDEgMSAwIDI0MHoiXX0sdzh0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InVzZXItbmluamEiLGljb246WzQ0OCw1MTIsWzEyOTM5OV0sImY1MDQiLCJNMzUyIDEyOGMwIDcwLjctNTcuMyAxMjgtMTI4IDEyOC01Ny4yIDAtMTA1LjYtMzcuNS0xMjItODkuMy0xLjEgMS4zLTIuMiAyLjYtMy41IDMuOC0xNS44IDE1LjgtMzguOCAyMC43LTUzLjYgMjIuMS04LjEgLjgtMTQuNi01LjctMTMuOC0xMy44IDEuNC0xNC43IDYuMy0zNy44IDIyLjEtNTMuNiA1LjgtNS44IDEyLjYtMTAuMSAxOS42LTEzLjQtNy0zLjItMTMuOC03LjYtMTkuNi0xMy40LTE1LjgtMTUuOC0yMC43LTM4LjgtMjIuMS01My42LS44LTguMSA1LjctMTQuNiAxMy44LTEzLjggMTQuNyAxLjQgMzcuOCA2LjMgNTMuNiAyMi4xIDQuOCA0LjggOC43IDEwLjQgMTEuNyAxNi4xIDIxLjMtNDEuMiA2NC4zLTY5LjQgMTEzLjgtNjkuNCA3MC43IDAgMTI4IDU3LjMgMTI4IDEyOHpNMTQ0IDExMmMwIDguOCA3LjIgMTYgMTYgMTZsMTI4IDBjOC44IDAgMTYtNy4yIDE2LTE2cy03LjItMTYtMTYtMTZMMTYwIDk2Yy04LjggMC0xNiA3LjItMTYgMTZ6bS0xLjQgMjExbDY3IDUwLjJjOC41IDYuNCAyMC4zIDYuNCAyOC44IDBsNjctNTAuMmM2LjUtNC45IDE1LjItNi4yIDIyLjYtMi44IDYxLjQgMjguMiAxMDQuMSA5MC4yIDEwNC4xIDE2Mi4xIDAgMTYuNC0xMy4zIDI5LjctMjkuNyAyOS43TDQ1LjcgNTEyYy0xNi40IDAtMjkuNy0xMy4zLTI5LjctMjkuNyAwLTcyIDQyLjctMTM0IDEwNC4xLTE2Mi4xIDcuNC0zLjQgMTYuMS0yLjEgMjIuNiAyLjh6Il19LE04dD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJwbGFudC13aWx0IixpY29uOls1MTIsNTEyLFtdLCJlNWFhIiwiTTM0NC0zMmM2Ni4zIDAgMTIwIDUzLjcgMTIwIDEyMGwwIDYuMmMyOS4zIDEyLjIgNDggNDEuMyA0OCA3Ni45IDAgMjcuOS0yNS4zIDc0LjgtNjYgMTExLjctMy44IDMuNS04LjggNS4zLTE0IDUuM3MtMTAuMi0xLjgtMTQtNS4zYy00MC43LTM2LjgtNjYtODMuNy02Ni0xMTEuNyAwLTM1LjYgMTguNy02NC43IDQ4LTc2LjlsMC02LjJjMC0zMC45LTI1LjEtNTYtNTYtNTZzLTU2IDI1LjEtNTYgNTZsMCA0MjRjMCAxNy43LTE0LjMgMzItMzIgMzJzLTMyLTE0LjMtMzItMzJsMC0yOTZjMC0zMC45LTI1LjEtNTYtNTYtNTZzLTU2IDI1LjEtNTYgNTZsMCAzOC4yYzI5LjMgMTIuMiA0OCA0MS4zIDQ4IDc2LjkgMCAyNy45LTI1LjMgNzQuOC02NiAxMTEuNy0zLjggMy41LTguOCA1LjMtMTQgNS4zcy0xMC4yLTEuOC0xNC01LjNDMjUuMyA0MDUuOSAwIDM1OSAwIDMzMS4xIDAgMjk1LjQgMTguNyAyNjYuNCA0OCAyNTQuMkw0OCAyMTZjMC02Ni4zIDUzLjctMTIwIDEyMC0xMjAgMjAuMiAwIDM5LjMgNSA1NiAxMy44TDIyNCA4OGMwLTY2LjMgNTMuNy0xMjAgMTIwLTEyMHoiXX0sdDJlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6IndlaWdodC1zY2FsZSIsaWNvbjpbNDQ4LDUxMixbIndlaWdodCJdLCJmNDk2IiwiTTExNi42IDE5MmMtMy0xMC4xLTQuNi0yMC45LTQuNi0zMiAwLTYxLjkgNTAuMS0xMTIgMTEyLTExMlMzMzYgOTguMSAzMzYgMTYwYzAgMTEuMS0xLjYgMjEuOS00LjYgMzJsLTcxIDAgMjQuNi00NC4zYzYuNC0xMS42IDIuMy0yNi4yLTkuMy0zMi42cy0yNi4yLTIuMy0zMi42IDkuM2wtMzcuNiA2Ny43LTg4LjggMHpNMTI4IDMyTDY0IDMyQzI4LjcgMzIgMCA2MC43IDAgOTZMMCA0MTZjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMzIwIDBjMzUuMyAwIDY0LTI4LjcgNjQtNjRsMC0zMjBjMC0zNS4zLTI4LjctNjQtNjQtNjRsLTY0IDBDMjkzLjMgMTEuOSAyNjAgMCAyMjQgMHMtNjkuMyAxMS45LTk2IDMyeiJdfSxrOHQ9dDJlLFlEPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImNhcmV0LXJpZ2h0IixpY29uOlsyNTYsNTEyLFtdLCJmMGRhIiwiTTI0OS4zIDIzNS44YzEwLjIgMTIuNiA5LjUgMzEuMS0yLjIgNDIuOGwtMTI4IDEyOGMtOS4yIDkuMi0yMi45IDExLjktMzQuOSA2LjlTNjQuNSAzOTYuOSA2NC41IDM4NGwwLTI1NmMwLTEyLjkgNy44LTI0LjYgMTkuOC0yOS42czI1LjctMi4yIDM0LjkgNi45bDEyOCAxMjggMi4yIDIuNHoiXX0sUzh0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImZsb3Jpbi1zaWduIixpY29uOlszODQsNTEyLFtdLCJlMTg0IiwiTTMxNC43IDMyYy0zOC44IDAtNzMuNyAyMy4zLTg4LjYgNTkuMUwxNzAuNyAyMjQgNjQgMjI0Yy0xNy43IDAtMzIgMTQuMy0zMiAzMnMxNC4zIDMyIDMyIDMybDgwIDAtNDUuMSAxMDguM2MtNSAxMS45LTE2LjYgMTkuNy0yOS41IDE5LjdMMzIgNDE2Yy0xNy43IDAtMzIgMTQuMy0zMiAzMnMxNC4zIDMyIDMyIDMybDM3LjMgMGMzOC44IDAgNzMuNy0yMy4zIDg4LjYtNTkuMUwyMTMuMyAyODggMzIwIDI4OGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMmwtODAgMCA0NS4xLTEwOC4zYzUtMTEuOSAxNi42LTE5LjcgMjkuNS0xOS43TDM1MiA5NmMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMmwtMzcuMyAweiJdfSxaRD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJiZWxsIixpY29uOls0NDgsNTEyLFsxMjgyNzYsNjE2MDJdLCJmMGYzIiwiTTIyNCAwYy0xNy43IDAtMzIgMTQuMy0zMiAzMmwwIDMuMkMxMTkgNTAgNjQgMTE0LjYgNjQgMTkybDAgMjEuN2MwIDQ4LjEtMTYuNCA5NC44LTQ2LjQgMTMyLjRMNy44IDM1OC4zQzIuNyAzNjQuNiAwIDM3Mi40IDAgMzgwLjUgMCA0MDAuMSAxNS45IDQxNiAzNS41IDQxNmwzNzYuOSAwYzE5LjYgMCAzNS41LTE1LjkgMzUuNS0zNS41IDAtOC4xLTIuNy0xNS45LTcuOC0yMi4ybC05LjgtMTIuMkM0MDAuNCAzMDguNSAzODQgMjYxLjggMzg0IDIxMy43bDAtMjEuN2MwLTc3LjQtNTUtMTQyLTEyOC0xNTYuOGwwLTMuMmMwLTE3LjctMTQuMy0zMi0zMi0zMnpNMTYyIDQ2NGM3LjEgMjcuNiAzMi4yIDQ4IDYyIDQ4czU0LjktMjAuNCA2Mi00OGwtMTI0IDB6Il19LHo4dD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJsYXJpLXNpZ24iLGljb246WzM4NCw1MTIsW10sImUxYzgiLCJNMTQ0IDBjMTMuMyAwIDI0IDEwLjcgMjQgMjRsMCA0MS41YzcuOS0xIDE1LjktMS41IDI0LTEuNXMxNi4xIC41IDI0IDEuNUwyMTYgMjRjMC0xMy4zIDEwLjctMjQgMjQtMjRzMjQgMTAuNyAyNCAyNGwwIDU0YzU4LjkgMjMuOCAxMDMuMiA3NiAxMTYuMiAxMzkuNyAzLjUgMTcuMy03LjcgMzQuMi0yNSAzNy43cy0zNC4yLTcuNy0zNy43LTI1Yy02LjctMzMuMi0yNi40LTYxLjgtNTMuNC04MC4ybDAgODEuOGMwIDEzLjMtMTAuNyAyNC0yNCAyNHMtMjQtMTAuNy0yNC0yNGwwLTEwMS44Yy03LjgtMS41LTE1LjgtMi4yLTI0LTIuMnMtMTYuMiAuOC0yNCAyLjJMMTY4IDIzMmMwIDEzLjMtMTAuNyAyNC0yNCAyNHMtMjQtMTAuNy0yNC0yNGwwLTgxLjhjLTMzLjggMjMtNTYgNjEuOS01NiAxMDUuOCAwIDcwLjcgNTcuMyAxMjggMTI4IDEyOGwxNjAgMGMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMkwzMiA0NDhjLTE3LjcgMC0zMi0xNC4zLTMyLTMyczE0LjMtMzIgMzItMzJsMTYuOSAwQzE4LjUgMzUwIDAgMzA1LjIgMCAyNTYgMCAxNzUuNCA0OS42IDEwNi40IDEyMCA3OGwwLTU0YzAtMTMuMyAxMC43LTI0IDI0LTI0eiJdfSxDOHQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToibWlsbC1zaWduIixpY29uOlszODQsNTEyLFtdLCJlMWVkIiwiTTI5Ny0yMi4yYzEyLjMgNSAxOC4yIDE5IDEzLjIgMzEuM2wtMjkgNzEuM0MzMzguOCA4NS4xIDM4NCAxMzMuMyAzODQgMTkybDAgMjA4YzAgMTcuNy0xNC4zIDMyLTMyIDMycy0zMi0xNC4zLTMyLTMybDAtMjA4YzAtMjYuNS0yMS41LTQ4LTQ4LTQ4LTYuNCAwLTEyLjUgMS4yLTE4IDMuNWwtMzAgNzMuOCAwIDE3OC43YzAgMTcuNy0xNC4zIDMyLTMyIDMycy0zMi0xNC4zLTMyLTMybDAtMjEuMi01Ny44IDE0Mi4yYy01IDEyLjMtMTkgMTguMi0zMS4zIDEzLjJzLTE4LjItMTktMTMuMi0zMS4zTDE2MCAyNTEuMyAxNjAgMTkyYzAtMjYuNS0yMS41LTQ4LTQ4LTQ4cy00OCAyMS41LTQ4IDQ4bDAgMjA4YzAgMTcuNy0xNC4zIDMyLTMyIDMyUzAgNDE3LjcgMCA0MDBMMCAxMTJjMC0xNy43IDE0LjMtMzIgMzItMzIgMTAuOSAwIDIwLjUgNS40IDI2LjMgMTMuNyAxNi04LjcgMzQuMy0xMy43IDUzLjctMTMuNyAzMS4zIDAgNTkuNyAxMi45IDgwIDMzLjYgOS42LTkuOCAyMC45LTE3LjggMzMuNS0yMy41TDI2NS44LTljNS0xMi4zIDE5LTE4LjIgMzEuMy0xMy4yeiJdfSxyMmU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToicGVyc29uLXNub3dib2FyZGluZyIsaWNvbjpbNTc2LDUxMixbMTI3OTM4LCJzbm93Ym9hcmRpbmciXSwiZjdjZSIsIk00MjQuNSAxNmE1NiA1NiAwIDEgMSAwIDExMiA1NiA1NiAwIDEgMSAwLTExMnpNMTY2LjQgNDUuNWMxMC4yLTE0LjQgMzAuMi0xNy45IDQ0LjYtNy43bDI3MiAxOTJjMTQuNCAxMC4yIDE3LjkgMzAuMiA3LjcgNDQuNnMtMzAuMiAxNy45LTQ0LjYgNy43bC05Mi4yLTY1LjEtNjIuMiA1My4zIDMyLjEgMjYuN2MxOC4yIDE1LjIgMjguOCAzNy43IDI4LjggNjEuNWwwIDg3LjggNzcuNSAxNS4yYzYuMiAxLjIgMTIuNiAuOSAxOC43LS44bDQxLjItMTEuOGMxMi43LTMuNiAyNiAzLjcgMjkuNyAxNi41cy0zLjcgMjYtMTYuNSAyOS43bC00MS4yIDExLjhjLTEzLjQgMy44LTI3LjQgNC40LTQxLjEgMS44TDg3LjEgNDQzLjNjLTE3LjItMy40LTMzLTExLjgtNDUuMy0yNC4xTDE1LjUgMzkzYy05LjQtOS40LTkuNC0yNC42IDAtMzMuOXMyNC42LTkuNCAzMy45IDBsMjYuMiAyNi4yYzUuNiA1LjYgMTIuOCA5LjQgMjAuNiAxMWw2NC4yIDEyLjYgMC0xMjMuN2MwLTI3LjcgMTItNTQgMzIuOC03Mi4ybDY5LTYwLjQtODguMi02Mi4zQzE1OS42IDgwIDE1Ni4yIDYwIDE2Ni40IDQ1LjV6bTU4LjEgMzc1LjdsNjQgMTIuNSAwLTc1LjNjMC00LjctMi4xLTkuMy01LjgtMTIuM2wtNTguMi00OC41IDAgMTIzLjZ6Il19LFQ4dD1yMmUsaTJlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InR0eSIsaWNvbjpbNTEyLDUxMixbInRlbGV0eXBlIl0sImYxZTQiLCJNNDUwLjIgMjY2LjhjMTUuOCA2LjUgMzQuMSAuMyA0Mi42LTE0LjZsMi40LTQuMmMyNy45LTQ4LjkgMjMuNi0xMTguOC0zMS4zLTE1NC41LTEyNi04Mi0yODkuNi04Mi00MTUuNiAwLTU0LjkgMzUuNy01OS4zIDEwNS43LTMxLjMgMTU0LjVsMi40IDQuMmM4LjUgMTQuOSAyNi43IDIxLjEgNDIuNiAxNC42bDgxLjktMzMuN2MxMy45LTUuNyAyMi40LTE5LjkgMjAuOS0zNC45bC01LjEtNTFjNjIuNS0yMSAxMzAuOC0xOS45IDE5Mi42IDMuM2wtNC44IDQ3LjdjLTEuNSAxNSA3IDI5LjIgMjAuOSAzNC45bDgxLjkgMzMuN3pNMzIgMzUyYTMyIDMyIDAgMSAwIDY0IDAgMzIgMzIgMCAxIDAgLTY0IDB6bTk2IDBhMzIgMzIgMCAxIDAgNjQgMCAzMiAzMiAwIDEgMCAtNjQgMHpNNjQgNDE2YTMyIDMyIDAgMSAwIDAgNjQgMzIgMzIgMCAxIDAgMC02NHptMzUyIDMyYTMyIDMyIDAgMSAwIDY0IDAgMzIgMzIgMCAxIDAgLTY0IDB6TTI1NiAzMjBhMzIgMzIgMCAxIDAgMCA2NCAzMiAzMiAwIDEgMCAwLTY0em02NCAzMmEzMiAzMiAwIDEgMCA2NCAwIDMyIDMyIDAgMSAwIC02NCAwem0xMjgtMzJhMzIgMzIgMCAxIDAgMCA2NCAzMiAzMiAwIDEgMCAwLTY0ek0xMjggNDQ4YzAgMTcuNyAxNC4zIDMyIDMyIDMybDE5MiAwYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMybC0xOTIgMGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJ6Il19LF84dD1pMmUsTDh0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InVzZXJzLXJlY3RhbmdsZSIsaWNvbjpbNTc2LDUxMixbXSwiZTU5NCIsIk02NCAzMkMyOC43IDMyIDAgNjAuNyAwIDk2TDAgNDE2YzAgMzUuMyAyOC43IDY0IDY0IDY0bDQ0OCAwYzM1LjMgMCA2NC0yOC43IDY0LTY0bDAtMzIwYzAtMzUuMy0yOC43LTY0LTY0LTY0TDY0IDMyem0yMjQgNzJhNTYgNTYgMCAxIDEgMCAxMTIgNTYgNTYgMCAxIDEgMC0xMTJ6bTAgMTUyYzUzIDAgOTYgNDMgOTYgOTZsMCAyNGMwIDEzLjMtMTAuNyAyNC0yNCAyNGwtMTQ0IDBjLTEzLjMgMC0yNC0xMC43LTI0LTI0bDAtMjRjMC01MyA0My05NiA5Ni05NnptOTYtNjRhNDggNDggMCAxIDEgOTYgMCA0OCA0OCAwIDEgMSAtOTYgMHpNMTY4IDI3Mi4zYy0xNS4yIDIyLjgtMjQgNTAuMi0yNCA3OS43bDAgMjRjMCA4LjQgMS40IDE2LjUgNC4xIDI0bC00Ni44IDBDODkuNiA0MDAgODAgMzkwLjQgODAgMzc4LjdMODAgMzY4YzAtNTAuMyAzOC43LTkxLjYgODgtOTUuN3pNNDI3LjkgNDAwYzIuNy03LjUgNC4xLTE1LjYgNC4xLTI0bDAtMjRjMC0yOS41LTguOC01Ni45LTI0LTc5LjcgNDkuMyA0LjEgODggNDUuMyA4OCA5NS43bDAgMTAuN2MwIDExLjgtOS42IDIxLjMtMjEuMyAyMS4zbC00Ni44IDB6TTk2IDE5MmE0OCA0OCAwIDEgMSA5NiAwIDQ4IDQ4IDAgMSAxIC05NiAweiJdfSx0RD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJtb2JpbGUiLGljb246WzM4NCw1MTIsWzEyODI0MSwibW9iaWxlLWFuZHJvaWQiLCJtb2JpbGUtcGhvbmUiXSwiZjNjZSIsIk04MCAwQzQ0LjcgMCAxNiAyOC43IDE2IDY0bDAgMzg0YzAgMzUuMyAyOC43IDY0IDY0IDY0bDIyNCAwYzM1LjMgMCA2NC0yOC43IDY0LTY0bDAtMzg0YzAtMzUuMy0yOC43LTY0LTY0LTY0TDgwIDB6bTcyIDQxNmw4MCAwYzEzLjMgMCAyNCAxMC43IDI0IDI0cy0xMC43IDI0LTI0IDI0bC04MCAwYy0xMy4zIDAtMjQtMTAuNy0yNC0yNHMxMC43LTI0IDI0LTI0eiJdfSxBOHQ9dEQsRDh0PXRELEU4dD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJhcnJvd3MtdHVybi10by1kb3RzIixpY29uOls0NDgsNTEyLFtdLCJlNGMxIiwiTTI2NS40LTYuNmMxMi41LTEyLjUgMzIuOC0xMi41IDQ1LjMgMHMxMi41IDMyLjggMCA0NS4zTDI4NS4zIDY0IDM1MiA2NGM1MyAwIDk2IDQzIDk2IDk2bDAgMzJjMCAxNy43LTE0LjMgMzItMzIgMzJzLTMyLTE0LjMtMzItMzJsMC0zMmMwLTE3LjctMTQuMy0zMi0zMi0zMmwtNjYuNyAwIDI1LjQgMjUuNGMxMi41IDEyLjUgMTIuNSAzMi44IDAgNDUuM3MtMzIuOCAxMi41LTQ1LjMgMGwtODAtODBjLTEyLjUtMTIuNS0xMi41LTMyLjggMC00NS4zbDgwLTgwem0tODIuNyAyNzJsODAgODBjMTIuNSAxMi41IDEyLjUgMzIuOCAwIDQ1LjNsLTgwIDgwYy0xMi41IDEyLjUtMzIuOCAxMi41LTQ1LjMgMHMtMTIuNS0zMi44IDAtNDUuM0wxNjIuNyA0MDAgOTYgNDAwYy0xNy43IDAtMzIgMTQuMy0zMiAzMmwwIDMyYzAgMTcuNy0xNC4zIDMyLTMyIDMyUzAgNDgxLjcgMCA0NjRsMC0zMmMwLTUzIDQzLTk2IDk2LTk2bDY2LjcgMC0yNS40LTI1LjRjLTEyLjUtMTIuNS0xMi41LTMyLjggMC00NS4zczMyLjgtMTIuNSA0NS4zIDB6TTMyMCAzNjhhNjQgNjQgMCAxIDEgMTI4IDAgNjQgNjQgMCAxIDEgLTEyOCAwek02NCAxNjBhNjQgNjQgMCAxIDEgMC0xMjggNjQgNjQgMCAxIDEgMCAxMjh6Il19LCQ4dD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJleGNsYW1hdGlvbiIsaWNvbjpbMTI4LDUxMixbMTAwNjksMTAwNzEsNjE3MzhdLCIyMSIsIk02NCA0MzJjMjIuMSAwIDQwIDE3LjkgNDAgNDBzLTE3LjkgNDAtNDAgNDAtNDAtMTcuOS00MC00MGMwLTIyLjEgMTcuOS00MCA0MC00MHpNNjQgMGMyNi41IDAgNDggMjEuNSA0OCA0OCAwIC42IDAgMS4xIDAgMS43bC0xNiAzMDRjLS45IDE3LTE1IDMwLjMtMzIgMzAuM1MzMyAzNzAuNyAzMiAzNTMuN0wxNiA0OS43YzAtLjYgMC0xLjEgMC0xLjcgMC0yNi41IDIxLjUtNDggNDgtNDh6Il19LEk4dD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJjaHVyY2giLGljb246WzUxMiw1MTIsWzk5NjJdLCJmNTFkIiwiTTI4MC04YzAtMTMuMy0xMC43LTI0LTI0LTI0UzIzMi0yMS4zIDIzMi04bDAgMjQtMzIgMGMtMTMuMyAwLTI0IDEwLjctMjQgMjRzMTAuNyAyNCAyNCAyNGwzMiAwIDAgNDgtOTguNiA2NS44QzEyMCAxODYuNyAxMTIgMjAxLjYgMTEyIDIxNy43bDAgMzguMy03OS44IDQ1LjZDMTIuMyAzMTMgMCAzMzQuMiAwIDM1Ny4xTDAgNDQ4YzAgMzUuMyAyOC43IDY0IDY0IDY0IDc0LjcgMCA4NS40IDAgMzIwIDBsNjQgMGMzNS4zIDAgNjQtMjguNyA2NC02NGwwLTkwLjljMC0yMy0xMi4zLTQ0LjItMzIuMi01NS42TDQwMCAyNTYgNDAwIDIxNy43YzAtMTYtOC0zMS0yMS40LTM5LjlsLTk4LjYtNjUuOCAwLTQ4IDMyIDBjMTMuMyAwIDI0LTEwLjcgMjQtMjRzLTEwLjctMjQtMjQtMjRsLTMyIDAgMC0yNHpNMjU2IDMyMGMzNS4zIDAgNjQgMjguNyA2NCA2NGwwIDgwLTEyOCAwIDAtODBjMC0zNS4zIDI4LjctNjQgNjQtNjR6Il19LFA4dD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJ0b2dnbGUtb2ZmIixpY29uOls1NzYsNTEyLFtdLCJmMjA0IiwiTTM4NCAxMjhjNzAuNyAwIDEyOCA1Ny4zIDEyOCAxMjhTNDU0LjcgMzg0IDM4NCAzODRsLTE5MiAwYy03MC43IDAtMTI4LTU3LjMtMTI4LTEyOHM1Ny4zLTEyOCAxMjgtMTI4bDE5MiAwek01NzYgMjU2YzAtMTA2LTg2LTE5Mi0xOTItMTkyTDE5MiA2NEM4NiA2NCAwIDE1MCAwIDI1NlM4NiA0NDggMTkyIDQ0OGwxOTIgMGMxMDYgMCAxOTItODYgMTkyLTE5MnpNMTkyIDMzNmE4MCA4MCAwIDEgMCAwLTE2MCA4MCA4MCAwIDEgMCAwIDE2MHoiXX0sTjh0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InNob2UtcHJpbnRzIixpY29uOls1NzYsNTEyLFtdLCJmNTRiIiwiTTI5NiAxOTJjLTIxLjEtMTIuMS00Mi4zLTI0LjItNzItMjkuM2wwLTE0MC4zQzI1Ny43IDEzIDMxMS40IDAgMzUyIDAgNDQ4IDAgNTc2IDQ4IDU3NiAxMjhzLTExOS42IDk2LTE3NiA5NmMtNDggMC03Ni0xNi0xMDQtMzJ6TTEyOCAzMmw0OCAwIDAgMTI4LTQ4IDBjLTM1LjMgMC02NC0yOC43LTY0LTY0czI4LjctNjQgNjQtNjR6TTIzMiAzMjBjMjgtMTYgNTYtMzIgMTA0LTMyIDU2LjQgMCAxNzYgMTYgMTc2IDk2UzM4NCA1MTIgMjg4IDUxMmMtNDAuNSAwLTk0LjMtMTMtMTI4LTIyLjRsMC0xNDAuM2MyOS43LTUuMiA1MC45LTE3LjMgNzItMjkuNHpNNjQgNDgwYy0zNS4zIDAtNjQtMjguNy02NC02NHMyOC43LTY0IDY0LTY0bDQ4IDAgMCAxMjgtNDggMHoiXX0sRjh0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImZpbGUtY2lyY2xlLWV4Y2xhbWF0aW9uIixpY29uOls1NzYsNTEyLFtdLCJlNGViIiwiTTk2IDBDNjAuNyAwIDMyIDI4LjcgMzIgNjRsMCAzODRjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMTgwIDBjLTIyLjctMzEuNS0zNi03MC4yLTM2LTExMiAwLTEwMC42IDc3LjQtMTgzLjIgMTc2LTE5MS4zbDAtMzguMWMwLTE3LTYuNy0zMy4zLTE4LjctNDUuM0wyOTAuNyAxOC43QzI3OC43IDYuNyAyNjIuNSAwIDI0NS41IDBMOTYgMHpNMzU3LjUgMTc2TDI2NCAxNzZjLTEzLjMgMC0yNC0xMC43LTI0LTI0TDI0MCA1OC41IDM1Ny41IDE3NnpNNDMyIDU0NGExNDQgMTQ0IDAgMSAwIDAtMjg4IDE0NCAxNDQgMCAxIDAgMCAyODh6bTAtMTAwYTIwIDIwIDAgMSAxIDAgNDAgMjAgMjAgMCAxIDEgMC00MHptMC0xNDBjOC44IDAgMTYgNy4yIDE2IDE2bDAgODBjMCA4LjgtNy4yIDE2LTE2IDE2cy0xNi03LjItMTYtMTZsMC04MGMwLTguOCA3LjItMTYgMTYtMTZ6Il19LFhEPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6IndhbGxldCIsaWNvbjpbNTEyLDUxMixbXSwiZjU1NSIsIk02NCAzMkMyOC43IDMyIDAgNjAuNyAwIDk2TDAgMzg0YzAgMzUuMyAyOC43IDY0IDY0IDY0bDM4NCAwYzM1LjMgMCA2NC0yOC43IDY0LTY0bDAtMTkyYzAtMzUuMy0yOC43LTY0LTY0LTY0TDcyIDEyOGMtMTMuMyAwLTI0LTEwLjctMjQtMjRTNTguNyA4MCA3MiA4MGwzODQgMGMxMy4zIDAgMjQtMTAuNyAyNC0yNHMtMTAuNy0yNC0yNC0yNEw2NCAzMnpNNDE2IDI1NmEzMiAzMiAwIDEgMSAwIDY0IDMyIDMyIDAgMSAxIDAtNjR6Il19LFVnPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6Im1lc3NhZ2UiLGljb246WzUxMiw1MTIsWyJjb21tZW50LWFsdCJdLCJmMjdhIiwiTTAgMzUyTDAgMTI4QzAgNzUgNDMgMzIgOTYgMzJsMzIwIDBjNTMgMCA5NiA0MyA5NiA5NmwwIDIyNGMwIDUzLTQzIDk2LTk2IDk2bC0xMjAgMGMtNS4yIDAtMTAuMiAxLjctMTQuNCA0LjhMMTY2LjQgNTM5LjJjLTQuMiAzLjEtOS4yIDQuOC0xNC40IDQuOC0xMy4zIDAtMjQtMTAuNy0yNC0yNGwwLTcyLTMyIDBjLTUzIDAtOTYtNDMtOTYtOTZ6Il19LE84dD1VZyxSOHQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToidHJvcGh5IixpY29uOls1MTIsNTEyLFsxMjc5NDJdLCJmMDkxIiwiTTE0NC4zIDBsMjI0IDBjMjYuNSAwIDQ4LjEgMjEuOCA0Ny4xIDQ4LjItLjIgNS4zLS40IDEwLjYtLjcgMTUuOGw0OS42IDBjMjYuMSAwIDQ5LjEgMjEuNiA0Ny4xIDQ5LjgtNy41IDEwMy43LTYwLjUgMTYwLjctMTE4IDE5MC41LTE1LjggOC4yLTMxLjkgMTQuMy00Ny4yIDE4LjgtMjAuMiAyOC42LTQxLjIgNDMuNy01Ny45IDUxLjhsMCA3My4xIDY0IDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJsLTE5MiAwYy0xNy43IDAtMzItMTQuMy0zMi0zMnMxNC4zLTMyIDMyLTMybDY0IDAgMC03My4xYy0xNi03LjctMzUuOS0yMi01NS4zLTQ4LjMtMTguNC00LjgtMzguNC0xMi4xLTU3LjktMjMuMS01NC4xLTMwLjMtMTAyLjktODcuNC0xMDkuOS0xODkuOS0xLjktMjguMSAyMS00OS43IDQ3LjEtNDkuN2w0OS42IDBjLS4zLTUuMi0uNS0xMC40LS43LTE1LjgtMS0yNi41IDIwLjYtNDguMiA0Ny4xLTQ4LjJ6TTEwMS41IDExMmwtNTIuNCAwYzYuMiA4NC43IDQ1LjEgMTI3LjEgODUuMiAxNDkuNi0xNC40LTM3LjMtMjYuMy04Ni0zMi44LTE0OS42ek0zODAgMjU2LjhjNDAuNS0yMy44IDc3LjEtNjYuMSA4My4zLTE0NC44TDQxMSAxMTJjLTYuMiA2MC45LTE3LjQgMTA4LjItMzEgMTQ0Ljh6Il19LGEyZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJmYWNlLWRpenp5IixpY29uOls1MTIsNTEyLFsiZGl6enkiXSwiZjU2NyIsIk0yNTYgNTEyYTI1NiAyNTYgMCAxIDAgMC01MTIgMjU2IDI1NiAwIDEgMCAwIDUxMnpNMTM0LjEgMTUzLjlsMjUuOSAyNS45IDI1LjktMjUuOWM3LjgtNy44IDIwLjUtNy44IDI4LjMgMHM3LjggMjAuNSAwIDI4LjNsLTI1LjkgMjUuOSAyNS45IDI1LjljNy44IDcuOCA3LjggMjAuNSAwIDI4LjNzLTIwLjUgNy44LTI4LjMgMGwtMjUuOS0yNS45LTI1LjkgMjUuOWMtNy44IDcuOC0yMC41IDcuOC0yOC4zIDBzLTcuOC0yMC41IDAtMjguM2wyNS45LTI1LjktMjUuOS0yNS45Yy03LjgtNy44LTcuOC0yMC41IDAtMjguM3MyMC41LTcuOCAyOC4zIDB6bTE5MiAwbDI1LjkgMjUuOSAyNS45LTI1LjljNy44LTcuOCAyMC41LTcuOCAyOC4zIDBzNy44IDIwLjUgMCAyOC4zbC0yNS45IDI1LjkgMjUuOSAyNS45YzcuOCA3LjggNy44IDIwLjUgMCAyOC4zcy0yMC41IDcuOC0yOC4zIDBsLTI1LjktMjUuOS0yNS45IDI1LjljLTcuOCA3LjgtMjAuNSA3LjgtMjguMyAwcy03LjgtMjAuNSAwLTI4LjNsMjUuOS0yNS45LTI1LjktMjUuOWMtNy44LTcuOC03LjgtMjAuNSAwLTI4LjNzMjAuNS03LjggMjguMyAwek0yNTYgMzA0YTY0IDY0IDAgMSAxIDAgMTI4IDY0IDY0IDAgMSAxIDAtMTI4eiJdfSxCOHQ9YTJlLEg4dD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJiYWN0ZXJpYSIsaWNvbjpbNjQwLDUxMixbXSwiZTA1OSIsIk0yNTYtMzJjMTMuMyAwIDI0IDEwLjcgMjQgMjRsMCAxMWM4LjYgMi4yIDE2LjkgNS42IDI0LjggMTAuM0wzMTEgN2M5LjQtOS40IDI0LjYtOS40IDMzLjkgMHM5LjQgMjQuNiAwIDMzLjlsLTYuMyA2LjNjNC42IDcuOCA4IDE2LjIgMTAuMyAyNC44bDExIDBjMTMuMyAwIDI0IDEwLjcgMjQgMjRzLTEwLjcgMjQtMjQgMjRsLTExIDBjLTIuMiA4LjYtNS42IDE2LjktMTAuMyAyNC44TDM0NSAxNTFjOS40IDkuNCA5LjQgMjQuNiAwIDMzLjlzLTI0LjYgOS40LTMzLjkgMGwtNC4xLTQuMS0zMC4xIDMwLjEgNC4xIDQuMWM5LjQgOS40IDkuNCAyNC42IDAgMzMuOXMtMjQuNiA5LjQtMzMuOSAwbC00LjEtNC4xYy0xMCAxMC0yMCAyMC0zMC4xIDMwLjFMMjE3IDI3OWM5LjQgOS40IDkuNCAyNC42IDAgMzMuOXMtMjQuNiA5LjQtMzMuOSAwbC02LjMtNi4zYy03LjggNC42LTE2LjIgOC0yNC44IDEwLjNsMCAxMWMwIDEzLjMtMTAuNyAyNC0yNCAyNHMtMjQtMTAuNy0yNC0yNGwwLTExYy04LjYtMi4yLTE2LjktNS42LTI0LjgtMTAuM0w3MyAzMTNjLTkuNCA5LjQtMjQuNiA5LjQtMzMuOSAwcy05LjQtMjQuNiAwLTMzLjlsNi4zLTYuM2MtNC42LTcuOC04LTE2LjItMTAuMy0yNC44bC0xMSAwYy0xMy4zIDAtMjQtMTAuNy0yNC0yNHMxMC43LTI0IDI0LTI0bDExIDBjMi4yLTguNiA1LjYtMTYuOSAxMC4zLTI0LjhMMzkgMTY5Yy05LjQtOS40LTkuNC0yNC42IDAtMzMuOXMyNC42LTkuNCAzMy45IDBsNC4xIDQuMWMxMC0xMCAyMC0yMCAzMC4xLTMwLjFMMTAzIDEwNWMtOS40LTkuNC05LjQtMjQuNiAwLTMzLjlzMjQuNi05LjQgMzMuOSAwbDQuMSA0LjEgMzAuMS0zMC4xLTQuMS00LjFjLTkuNC05LjQtOS40LTI0LjYgMC0zMy45UzE5MS42LTIuMyAyMDEgN2w2LjMgNi4zYzcuOC00LjYgMTYuMi04IDI0LjgtMTAuM2wwLTExYzAtMTMuMyAxMC43LTI0IDI0LTI0ek0xMjggMjU2YTMyIDMyIDAgMSAwIDAtNjQgMzIgMzIgMCAxIDAgMCA2NHpNMjQwIDE0NGEzMiAzMiAwIDEgMCAtNjQgMCAzMiAzMiAwIDEgMCA2NCAwem0yOTYgNDBsMCAxMWM4LjYgMi4yIDE2LjkgNS42IDI0LjggMTAuM0w1NjcgMTk5YzkuNC05LjQgMjQuNi05LjQgMzMuOSAwczkuNCAyNC42IDAgMzMuOWwtNi4zIDYuM2M0LjYgNy44IDggMTYuMiAxMC4zIDI0LjhsMTEgMGMxMy4zIDAgMjQgMTAuNyAyNCAyNHMtMTAuNyAyNC0yNCAyNGwtMTEgMGMtMi4yIDguNi01LjYgMTYuOS0xMC4zIDI0LjhMNjAxIDM0M2M5LjQgOS40IDkuNCAyNC42IDAgMzMuOXMtMjQuNiA5LjQtMzMuOSAwbC00LjEtNC4xLTMwLjEgMzAuMSA0LjEgNC4xYzkuNCA5LjQgOS40IDI0LjYgMCAzMy45cy0yNC42IDkuNC0zMy45IDBsLTQuMS00LjFjLTEwIDEwLTIwIDIwLTMwLjEgMzAuMUw0NzMgNDcxYzkuNCA5LjQgOS40IDI0LjYgMCAzMy45cy0yNC42IDkuNC0zMy45IDBsLTYuMy02LjNjLTcuOCA0LjYtMTYuMiA4LTI0LjggMTAuM2wwIDExYzAgMTMuMy0xMC43IDI0LTI0IDI0cy0yNC0xMC43LTI0LTI0bDAtMTFjLTguNi0yLjItMTYuOS01LjYtMjQuOC0xMC4zTDMyOSA1MDVjLTkuNCA5LjQtMjQuNiA5LjQtMzMuOSAwcy05LjQtMjQuNiAwLTMzLjlsNi4zLTYuM2MtNC42LTcuOC04LTE2LjItMTAuMy0yNC44bC0xMSAwYy0xMy4zIDAtMjQtMTAuNy0yNC0yNHMxMC43LTI0IDI0LTI0bDExIDBjMi4yLTguNiA1LjYtMTYuOSAxMC4zLTI0LjhMMjk1IDM2MWMtOS40LTkuNC05LjQtMjQuNiAwLTMzLjlzMjQuNi05LjQgMzMuOSAwbDQuMSA0LjFjMTAtMTAgMjAtMjAgMzAuMS0zMC4xTDM1OSAyOTdjLTkuNC05LjQtOS40LTI0LjYgMC0zMy45czI0LjYtOS40IDMzLjkgMGw0LjEgNC4xIDMwLjEtMzAuMS00LjEtNC4xYy05LjQtOS40LTkuNC0yNC42IDAtMzMuOXMyNC42LTkuNCAzMy45IDBsNi4zIDYuM2M3LjgtNC42IDE2LjItOCAyNC44LTEwLjNsMC0xMWMwLTEzLjMgMTAuNy0yNCAyNC0yNHMyNCAxMC43IDI0IDI0ek00NDggMzg0YTMyIDMyIDAgMSAwIC02NCAwIDMyIDMyIDAgMSAwIDY0IDB6Il19LFRnPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImVhci1kZWFmIixpY29uOls1MTIsNTEyLFsiZGVhZiIsImRlYWZuZXNzIiwiaGFyZC1vZi1oZWFyaW5nIl0sImYyYTQiLCJNNTAyLjYgNTQuNmwtNDAgNDBjLTEyLjUgMTIuNS0zMi44IDEyLjUtNDUuMyAwcy0xMi41LTMyLjggMC00NS4zbDQwLTQwYzEyLjUtMTIuNSAzMi44LTEyLjUgNDUuMyAwczEyLjUgMzIuOCAwIDQ1LjN6bS0zMjAgMzIwbC0xMjggMTI4Yy0xMi41IDEyLjUtMzIuOCAxMi41LTQ1LjMgMHMtMTIuNS0zMi44IDAtNDUuM2wxMjgtMTI4YzEyLjUtMTIuNSAzMi44LTEyLjUgNDUuMyAwczEyLjUgMzIuOCAwIDQ1LjN6TTI0MCAxMjhjLTU3LjYgMC0xMDUuMSA0My42LTExMS4zIDk5LjUtMS45IDE3LjYtMTcuOCAzMC4yLTM1LjMgMjguM3MtMzAuMi0xNy44LTI4LjMtMzUuM2M5LjctODggODQuMy0xNTYuNSAxNzQuOS0xNTYuNSA5Ny4yIDAgMTc2IDc4LjggMTc2IDE3NiAwIDQ2LTE3LjcgODcuOS00Ni42IDExOS4zLTEyIDEzLTE3LjQgMjQuOC0xNy40IDM0LjdsMCA2LjFjMCA2MS45LTUwLjEgMTEyLTExMiAxMTItMTcuNyAwLTMyLTE0LjMtMzItMzJzMTQuMy0zMiAzMi0zMmMyNi41IDAgNDgtMjEuNSA0OC00OGwwLTYuMWMwLTMyLjkgMTcuNC01OS42IDM0LjQtNzggMTguNC0yMCAyOS42LTQ2LjYgMjkuNi03NS45IDAtNjEuOS01MC4xLTExMi0xMTItMTEyem0wIDgwYy0xNy43IDAtMzIgMTQuMy0zMiAzMiAwIDEzLjMtMTAuNyAyNC0yNCAyNHMtMjQtMTAuNy0yNC0yNGMwLTQ0LjIgMzUuOC04MCA4MC04MHM4MCAzNS44IDgwIDgwYzAgMTMuMy0xMC43IDI0LTI0IDI0cy0yNC0xMC43LTI0LTI0YzAtMTcuNy0xNC4zLTMyLTMyLTMyeiJdfSxxOHQ9VGcsajh0PVRnLFY4dD1UZyxuMmU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToicGVvcGxlLWFycm93cyIsaWNvbjpbNTEyLDUxMixbInBlb3BsZS1hcnJvd3MtbGVmdC1yaWdodCJdLCJlMDY4IiwiTTMyIDY0QTY0IDY0IDAgMSAxIDE2MCA2NCA2NCA2NCAwIDEgMSAzMiA2NHpNMCAyMjRjMC0zNS4zIDI4LjctNjQgNjQtNjRsNjQgMGMzLjIgMCA2LjQgLjIgOS41IC43TDkzLjEgMjA1LjFDNjUgMjMzLjIgNjUgMjc4LjggOTMuMSAzMDYuOWw1NiA1NmMzLjQgMy40IDcgNi40IDEwLjkgOWwwIDkyLjFjMCAyNi41LTIxLjUgNDgtNDggNDhsLTMyIDBjLTI2LjUgMC00OC0yMS41LTQ4LTQ4bDAtMTIwLjZDMTIuOSAzMzIuNCAwIDMxMS43IDAgMjg4bDAtNjR6TTM1MiA2NGE2NCA2NCAwIDEgMSAxMjggMCA2NCA2NCAwIDEgMSAtMTI4IDB6bTY2LjkgMTQxLjFsLTQ0LjQtNDQuNGMzLjEtLjUgNi4zLS43IDkuNS0uN2w2NCAwYzM1LjMgMCA2NCAyOC43IDY0IDY0bDAgNjRjMCAyMy43LTEyLjkgNDQuNC0zMiA1NS40TDQ4MCA0NjRjMCAyNi41LTIxLjUgNDgtNDggNDhsLTMyIDBjLTI2LjUgMC00OC0yMS41LTQ4LTQ4bDAtOTIuMWMzLjktMi42IDcuNS01LjYgMTAuOS05bDU2LTU2YzI4LjEtMjguMSAyOC4xLTczLjcgMC0xMDEuOHpNMzAyLjggMTc3LjhjOS0zLjcgMTkuMy0xLjcgMjYuMiA1LjJsNTYgNTZjOS40IDkuNCA5LjQgMjQuNiAwIDMzLjlsLTU2IDU2Yy02LjkgNi45LTE3LjIgOC45LTI2LjIgNS4yUzI4OCAzMjEuNyAyODggMzEybDAtMjQtNjQgMCAwIDI0YzAgOS43LTUuOCAxOC41LTE0LjggMjIuMnMtMTkuMyAxLjctMjYuMi01LjJsLTU2LTU2Yy05LjQtOS40LTkuNC0yNC42IDAtMzMuOWw1Ni01NmM2LjktNi45IDE3LjItOC45IDI2LjItNS4yUzIyNCAxOTAuMyAyMjQgMjAwbDAgMjQgNjQgMCAwLTI0YzAtOS43IDUuOC0xOC41IDE0LjgtMjIuMnoiXX0sVTh0PW4yZSxXOHQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiaGFuZHMtY2xhcHBpbmciLGljb246WzUxMiw1MTIsW10sImUxYTgiLCJNMzQ0IDhsMCA2NGMwIDEzLjMtMTAuNyAyNC0yNCAyNHMtMjQtMTAuNy0yNC0yNGwwLTY0YzAtMTMuMyAxMC43LTI0IDI0LTI0UzM0NC01LjMgMzQ0IDh6TTIyMCAxMC43bDMyIDQ4YzcuNCAxMSA0LjQgMjUuOS02LjcgMzMuM3MtMjUuOSA0LjQtMzMuMy02LjdsLTMyLTQ4Yy03LjQtMTEtNC40LTI1LjkgNi43LTMzLjNTMjEyLjYtLjMgMjIwIDEwLjd6TTEzNSAxMTljOS40LTkuNCAyNC42LTkuNCAzMy45IDBMMjkyLjcgMjQyLjdjMTAuMSAxMC4xIDI3LjMgMi45IDI3LjMtMTEuM2wwLTM5LjRjMC0xNy43IDE0LjMtMzIgMzItMzJzMzIgMTQuMyAzMiAzMmwwIDE1My42YzAgNTcuMS0zMCAxMTAtNzguOSAxMzkuNC02NCAzOC40LTE0NS44IDI4LjMtMTk4LjUtMjQuNEw3IDM2MWMtOS40LTkuNC05LjQtMjQuNiAwLTMzLjlzMjQuNi05LjQgMzMuOSAwbDUzIDUzYzYuMSA2LjEgMTYgNi4xIDIyLjEgMHM2LjEtMTYgMC0yMi4xTDIzIDI2NWMtOS40LTkuNC05LjQtMjQuNiAwLTMzLjlzMjQuNi05LjQgMzMuOSAwbDkzIDkzYzYuMSA2LjEgMTYgNi4xIDIyLjEgMHM2LjEtMTYgMC0yMi4xTDU1IDE4NWMtOS40LTkuNC05LjQtMjQuNiAwLTMzLjlzMjQuNi05LjQgMzMuOSAwbDExNyAxMTdjNi4xIDYuMSAxNiA2LjEgMjIuMSAwczYuMS0xNiAwLTIyLjFsLTkzLTkzYy05LjQtOS40LTkuNC0yNC42IDAtMzMuOXpNNDMzLjEgNDg0LjljLTI0LjIgMTQuNS01MC45IDIyLjEtNzcuNyAyMy4xIDQ4LjEtMzkuNiA3Ni42LTk5IDc2LjYtMTYyLjRsMC05OC4xYzguMi0uMSAxNi02LjQgMTYtMTZsMC0zOS40YzAtMTcuNyAxNC4zLTMyIDMyLTMyczMyIDE0LjMgMzIgMzJsMCAxNTMuNmMwIDU3LjEtMzAgMTEwLTc4LjkgMTM5LjR6TTQ1My4zIDRjMTEgNy40IDE0IDIyLjMgNi43IDMzLjNsLTMyIDQ4Yy03LjQgMTEtMjIuMyAxNC0zMy4zIDYuN3MtMTQtMjIuMy02LjctMzMuM2wzMi00OGM3LjQtMTEgMjIuMy0xNCAzMy4zLTYuN3oiXX0sRzh0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InZpcnVzLWNvdmlkLXNsYXNoIixpY29uOls1NzYsNTEyLFtdLCJlNGE5IiwiTTQxLTI0LjljLTkuNC05LjQtMjQuNi05LjQtMzMuOSAwUy0yLjMtLjMgNyA5LjFsNTI4IDUyOGM5LjQgOS40IDI0LjYgOS40IDMzLjkgMHM5LjQtMjQuNiAwLTMzLjlsLTgzLTgzIDExLjQtMTEuNGM5LjQtOS40IDkuNC0yNC42IDAtMzMuOXMtMjQuNi05LjQtMzMuOSAwbC0xMS4zIDExLjMtMjMuOC0yMy44YzE3LjktMjMuNSAyOS45LTUxLjcgMzQuMS04Mi4zbDMzLjYgMCAwIDE2YzAgMTMuMyAxMC43IDI0IDI0IDI0czI0LTEwLjcgMjQtMjRsMC04MGMwLTEzLjMtMTAuNy0yNC0yNC0yNHMtMjQgMTAuNy0yNCAyNGwwIDE2LTMzLjYgMGMtNC4yLTMwLjctMTYuMy01OC44LTM0LjEtODIuM2wyMy44LTIzLjggMTEuMyAxMS4zYzkuNCA5LjQgMjQuNiA5LjQgMzMuOSAwczkuNC0yNC42IDAtMzMuOUw0NDAuNyA0Ni43Yy05LjQtOS40LTI0LjYtOS40LTMzLjkgMHMtOS40IDI0LjYgMCAzMy45bDExLjMgMTEuMy0yMy44IDIzLjhDMzcwLjggOTcuOSAzNDIuNyA4NS44IDMxMiA4MS42bDAtMzMuNiAxNiAwYzEzLjMgMCAyNC0xMC43IDI0LTI0UzM0MS4zIDAgMzI4IDBMMjQ4IDBjLTEzLjMgMC0yNCAxMC43LTI0IDI0czEwLjcgMjQgMjQgMjRsMTYgMCAwIDMzLjZjLTMwLjcgNC4yLTU4LjggMTYuMy04Mi4zIDM0LjFMMTU3LjkgOTIgMTY5LjIgODAuNmM5LjQtOS40IDkuNC0yNC42IDAtMzMuOXMtMjQuNi05LjQtMzMuOSAwTDEyMy45IDU4LjEgNDEtMjQuOXpNMTEzLjYgMjMybC0zMy42IDAgMC0xNmMwLTEzLjMtMTAuNy0yNC0yNC0yNHMtMjQgMTAuNy0yNCAyNGwwIDgwYzAgMTMuMyAxMC43IDI0IDI0IDI0czI0LTEwLjcgMjQtMjRsMC0xNiAzMy42IDBjNC4yIDMwLjcgMTYuMyA1OC44IDM0LjEgODIuM2wtMjMuOCAyMy44LTExLjMtMTEuM2MtOS40LTkuNC0yNC42LTkuNC0zMy45IDBzLTkuNCAyNC42IDAgMzMuOWw1Ni42IDU2LjZjOS40IDkuNCAyNC42IDkuNCAzMy45IDBzOS40LTI0LjYgMC0zMy45bC0xMS4zLTExLjMgMjMuOC0yMy44YzIzLjUgMTcuOSA1MS43IDI5LjkgODIuMyAzNC4xbDAgMzMuNi0xNiAwYy0xMy4zIDAtMjQgMTAuNy0yNCAyNHMxMC43IDI0IDI0IDI0bDgwIDBjMTMuMyAwIDI0LTEwLjcgMjQtMjRzLTEwLjctMjQtMjQtMjRsLTE2IDAgMC0zMy42YzEzLjQtMS44IDI2LjQtNS4yIDM4LjctOS45TDEyMy41IDE5My4zYy00LjcgMTIuMy04IDI1LjItOS45IDM4Ljd6Il19LG8yZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJjYWxlbmRhci1kYXlzIixpY29uOls0NDgsNTEyLFsiY2FsZW5kYXItYWx0Il0sImYwNzMiLCJNMTI4IDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJsMCAzMiAxMjggMCAwLTMyYzAtMTcuNyAxNC4zLTMyIDMyLTMyczMyIDE0LjMgMzIgMzJsMCAzMiAzMiAwYzM1LjMgMCA2NCAyOC43IDY0IDY0bDAgMjg4YzAgMzUuMy0yOC43IDY0LTY0IDY0TDY0IDQ4MGMtMzUuMyAwLTY0LTI4LjctNjQtNjRMMCAxMjhDMCA5Mi43IDI4LjcgNjQgNjQgNjRsMzIgMCAwLTMyYzAtMTcuNyAxNC4zLTMyIDMyLTMyek02NCAyNDBsMCAzMmMwIDguOCA3LjIgMTYgMTYgMTZsMzIgMGM4LjggMCAxNi03LjIgMTYtMTZsMC0zMmMwLTguOC03LjItMTYtMTYtMTZsLTMyIDBjLTguOCAwLTE2IDcuMi0xNiAxNnptMTI4IDBsMCAzMmMwIDguOCA3LjIgMTYgMTYgMTZsMzIgMGM4LjggMCAxNi03LjIgMTYtMTZsMC0zMmMwLTguOC03LjItMTYtMTYtMTZsLTMyIDBjLTguOCAwLTE2IDcuMi0xNiAxNnptMTQ0LTE2Yy04LjggMC0xNiA3LjItMTYgMTZsMCAzMmMwIDguOCA3LjIgMTYgMTYgMTZsMzIgMGM4LjggMCAxNi03LjIgMTYtMTZsMC0zMmMwLTguOC03LjItMTYtMTYtMTZsLTMyIDB6TTY0IDM2OGwwIDMyYzAgOC44IDcuMiAxNiAxNiAxNmwzMiAwYzguOCAwIDE2LTcuMiAxNi0xNmwwLTMyYzAtOC44LTcuMi0xNi0xNi0xNmwtMzIgMGMtOC44IDAtMTYgNy4yLTE2IDE2em0xNDQtMTZjLTguOCAwLTE2IDcuMi0xNiAxNmwwIDMyYzAgOC44IDcuMiAxNiAxNiAxNmwzMiAwYzguOCAwIDE2LTcuMiAxNi0xNmwwLTMyYzAtOC44LTcuMi0xNi0xNi0xNmwtMzIgMHptMTEyIDE2bDAgMzJjMCA4LjggNy4yIDE2IDE2IDE2bDMyIDBjOC44IDAgMTYtNy4yIDE2LTE2bDAtMzJjMC04LjgtNy4yLTE2LTE2LTE2bC0zMiAwYy04LjggMC0xNiA3LjItMTYgMTZ6Il19LFk4dD1vMmUsczJlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImRpYW1vbmQtdHVybi1yaWdodCIsaWNvbjpbNTEyLDUxMixbImRpcmVjdGlvbnMiXSwiZjVlYiIsIk0yMTUgMTdMMTcgMjE1QzYuMSAyMjUuOSAwIDI0MC42IDAgMjU2czYuMSAzMC4xIDE3IDQxTDIxNSA0OTVjMTAuOSAxMC45IDI1LjYgMTcgNDEgMTdzMzAuMS02LjEgNDEtMTdMNDk1IDI5N2MxMC45LTEwLjkgMTctMjUuNiAxNy00MXMtNi4xLTMwLjEtMTctNDFMMjk3IDE3QzI4Ni4xIDYuMSAyNzEuNCAwIDI1NiAwcy0zMC4xIDYuMS00MSAxN3pNMzg1IDI1N2wtNzIgNzJjLTkuNCA5LjQtMjQuNiA5LjQtMzMuOSAwcy05LjQtMjQuNiAwLTMzLjlsMzEtMzEtNzguMSAwYy0xMy4zIDAtMjQgMTAuNy0yNCAyNGwwIDQwYzAgMTMuMy0xMC43IDI0LTI0IDI0cy0yNC0xMC43LTI0LTI0bDAtNDBjMC0zOS44IDMyLjItNzIgNzItNzJsNzguMSAwLTMxLTMxYy05LjQtOS40LTkuNC0yNC42IDAtMzMuOXMyNC42LTkuNCAzMy45IDBsNzIgNzJjOS40IDkuNCA5LjQgMjQuNiAwIDMzLjl6Il19LFo4dD1zMmUsWDh0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImhhbmQtcG9pbnQtdXAiLGljb246WzM4NCw1MTIsWzk3NTddLCJmMGE2IiwiTTMyIDMyQzMyIDE0LjMgNDYuMyAwIDY0IDBTOTYgMTQuMyA5NiAzMmwwIDIwOC02NCAwIDAtMjA4ek0yMjQgMTkyYzAtMTcuNyAxNC4zLTMyIDMyLTMyczMyIDE0LjMgMzIgMzJsMCA2NGMwIDE3LjctMTQuMyAzMi0zMiAzMnMtMzItMTQuMy0zMi0zMmwwLTY0em0tNjQtNjRjMTcuNyAwIDMyIDE0LjMgMzIgMzJsMCA0OGMwIDE3LjctMTQuMyAzMi0zMiAzMnMtMzItMTQuMy0zMi0zMmwwLTQ4YzAtMTcuNyAxNC4zLTMyIDMyLTMyem0xNjAgOTZjMC0xNy43IDE0LjMtMzIgMzItMzJzMzIgMTQuMyAzMiAzMmwwIDY0YzAgMTcuNy0xNC4zIDMyLTMyIDMycy0zMi0xNC4zLTMyLTMybDAtNjR6bS05NiA4OGwwLS42YzkuNCA1LjQgMjAuMyA4LjYgMzIgOC42IDEzLjIgMCAyNS40LTQgMzUuNi0xMC44IDguNyAyNC45IDMyLjUgNDIuOCA2MC40IDQyLjggMTEuNyAwIDIyLjYtMy4xIDMyLTguNmwwIDguNmMwIDg4LjQtNzEuNiAxNjAtMTYwIDE2MGwtNjEuNyAwYy00Mi40IDAtODMuMS0xNi45LTExMy4xLTQ2LjlMMzcuNSA0NTMuNUMxMy41IDQyOS41IDAgMzk2LjkgMCAzNjNsMC0yN2MwLTM1LjMgMjguNy02NCA2NC02NGw4OCAwYzIyLjEgMCA0MCAxNy45IDQwIDQwcy0xNy45IDQwLTQwIDQwbC01NiAwYy04LjggMC0xNiA3LjItMTYgMTZzNy4yIDE2IDE2IDE2bDU2IDBjMzkuOCAwIDcyLTMyLjIgNzItNzJ6Il19LFE4dD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJiZXppZXItY3VydmUiLGljb246WzY0MCw1MTIsW10sImY1NWIiLCJNMjk2IDEzNmwwLTQ4IDQ4IDAgMCA0OC00OCAwek0yODggMzJjLTI2LjUgMC00OCAyMS41LTQ4IDQ4bDAgNC0xMTguNCAwQzExMS4yIDYyLjcgODkuMyA0OCA2NCA0OCAyOC43IDQ4IDAgNzYuNyAwIDExMnMyOC43IDY0IDY0IDY0YzI1LjMgMCA0Ny4yLTE0LjcgNTcuNi0zNmw2Ni45IDBjLTU4LjkgMzkuNi05OC45IDEwNS0xMDQgMTgwTDgwIDMyMGMtMjYuNSAwLTQ4IDIxLjUtNDggNDhsMCA2NGMwIDI2LjUgMjEuNSA0OCA0OCA0OGw2NCAwYzI2LjUgMCA0OC0yMS41IDQ4LTQ4bDAtNjRjMC0yNi41LTIxLjUtNDgtNDgtNDhsLTMuMyAwYzUuOS02NyA0OC41LTEyMy40IDEwNy41LTE0OS4xIDguNiAxMi43IDIzLjIgMjEuMSAzOS44IDIxLjFsNjQgMGMxNi42IDAgMzEuMS04LjQgMzkuOC0yMS4xIDU5IDI1LjcgMTAxLjYgODIuMSAxMDcuNSAxNDkuMWwtMy4zIDBjLTI2LjUgMC00OCAyMS41LTQ4IDQ4bDAgNjRjMCAyNi41IDIxLjUgNDggNDggNDhsNjQgMGMyNi41IDAgNDgtMjEuNSA0OC00OGwwLTY0YzAtMjYuNS0yMS41LTQ4LTQ4LTQ4bC00LjUgMGMtNS03NS00NS4xLTE0MC40LTEwNC0xODBsNjYuOSAwYzEwLjQgMjEuMyAzMi4zIDM2IDU3LjYgMzYgMzUuMyAwIDY0LTI4LjcgNjQtNjRzLTI4LjctNjQtNjQtNjRjLTI1LjMgMC00Ny4yIDE0LjctNTcuNiAzNmwtMTE4LjQgMCAwLTRjMC0yNi41LTIxLjUtNDgtNDgtNDhsLTY0IDB6TTg4IDM3Nmw0OCAwIDAgNDgtNDggMCAwLTQ4em00MTYgNDhsMC00OCA0OCAwIDAgNDgtNDggMHoiXX0sSjh0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InBlcnNvbi1oYWxmLWRyZXNzIixpY29uOlszODQsNTEyLFtdLCJlNTQ4IiwiTTE0My40LTMuOWM5LjctMTYuOCAyNy44LTI4LjEgNDguNi0yOC4xIDMwLjkgMCA1NiAyNS4xIDU2IDU2IDAgMjUuNC0xNi45IDQ2LjgtNDAgNTMuN2wwIDBjLTUuMSAxLjUtMTAuNCAyLjMtMTYgMi4zLTMwLjkgMC01Ni0yNS4xLTU2LTU2bDAgMGMwLTEwLjEgMi43LTE5LjcgNy40LTI3Ljl6TTMxOC4zIDI5OS4xTDI3MiAyMzYuNyAyNzIgNTEyYzAgMTcuNy0xNC4zIDMyLTMyIDMycy0zMi0xNC4zLTMyLTMybDAtMTYwIDAtLjQgMC0yMzguNmMzNi4yIDQuNCA2OS4yIDIzLjQgOTEuMiA1M2w3MC41IDk1YzEwLjUgMTQuMiA3LjYgMzQuMi02LjYgNDQuOHMtMzQuMiA3LjYtNDQuOC02LjZ6TTE3NiAxMTNsMCAzOTljMCAxNy43LTE0LjMgMzItMzIgMzJzLTMyLTE0LjMtMzItMzJsMC0xMjgtMjUuOCAwYy0xMC45IDAtMTguNi0xMC43LTE1LjItMjEuMWw0My0xMjktNDguMyA2NS4xYy0xMC41IDE0LjItMzAuNiAxNy4yLTQ0LjggNi42cy0xNy4yLTMwLjYtNi42LTQ0LjhsNzAuNS05NWMyMi0yOS42IDU1LjEtNDguNiA5MS4yLTUzeiJdfSxsMmU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToic3F1YXJlLXBvbGwtaG9yaXpvbnRhbCIsaWNvbjpbNDQ4LDUxMixbInBvbGwtaCJdLCJmNjgyIiwiTTQ0OCA5NmMwLTM1LjMtMjguNy02NC02NC02NEw2NCAzMkMyOC43IDMyIDAgNjAuNyAwIDk2TDAgNDE2YzAgMzUuMyAyOC43IDY0IDY0IDY0bDMyMCAwYzM1LjMgMCA2NC0yOC43IDY0LTY0bDAtMzIwek0yNTYgMTUyYzAgMTMuMy0xMC43IDI0LTI0IDI0bC0xMTIgMGMtMTMuMyAwLTI0LTEwLjctMjQtMjRzMTAuNy0yNCAyNC0yNGwxMTIgMGMxMy4zIDAgMjQgMTAuNyAyNCAyNHptNzIgODBjMTMuMyAwIDI0IDEwLjcgMjQgMjRzLTEwLjcgMjQtMjQgMjRsLTIwOCAwYy0xMy4zIDAtMjQtMTAuNy0yNC0yNHMxMC43LTI0IDI0LTI0bDIwOCAwek0xOTIgMzYwYzAgMTMuMy0xMC43IDI0LTI0IDI0bC00OCAwYy0xMy4zIDAtMjQtMTAuNy0yNC0yNHMxMC43LTI0IDI0LTI0bDQ4IDBjMTMuMyAwIDI0IDEwLjcgMjQgMjR6Il19LEs4dD1sMmUsZXB0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InNjaG9vbC1jaXJjbGUteG1hcmsiLGljb246WzY0MCw1MTIsW10sImU1NmQiLCJNNjQgMTI4Yy0zNS4zIDAtNjQgMjguNy02NCA2NEwwIDQ0OGMwIDM1LjMgMjguNyA2NCA2NCA2NGwyNzYgMGMtMTAuNS0xNC42LTE5LTMwLjctMjUuMS00OGwtOTAuOSAwIDAtODhjMC0yMi4xIDE3LjktNDAgNDAtNDBsNDggMGMxIDAgMS45IDAgMi45IC4xIDI2LjMtNzQuNiA5Ny41LTEyOC4xIDE4MS4xLTEyOC4xIDI4LjYgMCA1NS42IDYuMiA4MCAxNy40bDAtMzMuNGMwLTM1LjMtMjguNy02NC02NC02NGwtNjQgMC0xMjcuOS0xMTUuMWMtMTguMy0xNi40LTQ2LTE2LjQtNjQuMiAwTDEyOCAxMjggNjQgMTI4em02NCAyNDBjMCA4LjgtNy4yIDE2LTE2IDE2bC0zMiAwYy04LjggMC0xNi03LjItMTYtMTZsMC0zMmMwLTguOCA3LjItMTYgMTYtMTZsMzIgMGM4LjggMCAxNiA3LjIgMTYgMTZsMCAzMnpNMTEyIDI1NmwtMzIgMGMtOC44IDAtMTYtNy4yLTE2LTE2bDAtMzJjMC04LjggNy4yLTE2IDE2LTE2bDMyIDBjOC44IDAgMTYgNy4yIDE2IDE2bDAgMzJjMCA4LjgtNy4yIDE2LTE2IDE2ek0yODggMTI4YTY0IDY0IDAgMSAxIDAgMTI4IDY0IDY0IDAgMSAxIDAtMTI4ek00OTYgNTQ0YTE0NCAxNDQgMCAxIDAgMC0yODggMTQ0IDE0NCAwIDEgMCAwIDI4OHptNTkuMy0xODAuN2wtMzYuNyAzNi43IDM2LjcgMzYuN2M2LjIgNi4yIDYuMiAxNi40IDAgMjIuNnMtMTYuNCA2LjItMjIuNiAwbC0zNi43LTM2LjctMzYuNyAzNi43Yy02LjIgNi4yLTE2LjQgNi4yLTIyLjYgMHMtNi4yLTE2LjQgMC0yMi42bDM2LjctMzYuNy0zNi43LTM2LjdjLTYuMi02LjItNi4yLTE2LjQgMC0yMi42czE2LjQtNi4yIDIyLjYgMGwzNi43IDM2LjcgMzYuNy0zNi43YzYuMi02LjIgMTYuNC02LjIgMjIuNiAwczYuMiAxNi40IDAgMjIuNnoiXX0sdHB0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImhhbmQtbGl6YXJkIixpY29uOls1MTIsNTEyLFtdLCJmMjU4IiwiTTAgMTEyQzAgODUuNSAyMS41IDY0IDQ4IDY0bDIzOC41IDBjMzYuOCAwIDcxLjIgMTggOTIuMSA0OC4ybDExMy41IDE2NGMxMyAxOC43IDE5LjkgNDEgMTkuOSA2My44bDAgNzZjMCAxNy43LTE0LjMgMzItMzIgMzJsLTk2IDBjLTE3LjcgMC0zMi0xNC4zLTMyLTMybDAtMTMuOC03OC4xLTUwLjItMTYxLjkgMGMtMjYuNSAwLTQ4LTIxLjUtNDgtNDhzMjEuNS00OCA0OC00OGwxMjggMGMyNi41IDAgNDgtMjEuNSA0OC00OHMtMjEuNS00OC00OC00OEw0OCAxNjBjLTI2LjUgMC00OC0yMS41LTQ4LTQ4eiJdfSxjMmU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiY2hhbGtib2FyZCIsaWNvbjpbNTc2LDUxMixbImJsYWNrYm9hcmQiXSwiZjUxYiIsIk05NiA2NGMtMzUuMyAwLTY0IDI4LjctNjQgNjRsMCAyNTZjLTE3LjcgMC0zMiAxNC4zLTMyIDMyczE0LjMgMzIgMzIgMzJsNTEyIDBjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJsMC0yNTZjMC0zNS4zLTI4LjctNjQtNjQtNjRMOTYgNjR6TTQ4MCAzODRsLTY0IDAgMC0zMmMwLTE3LjctMTQuMy0zMi0zMi0zMmwtOTYgMGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJsMCAzMi0xNjAgMCAwLTI1NiAzODQgMCAwIDI1NnoiXX0scnB0PWMyZSxkMmU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToidXAtcmlnaHQtZnJvbS1zcXVhcmUiLGljb246WzUxMiw1MTIsWyJleHRlcm5hbC1saW5rLWFsdCJdLCJmMzVkIiwiTTI5MC40IDE5LjhDMjk1LjQgNy44IDMwNy4xIDAgMzIwIDBMNDgwIDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJsMCAxNjBjMCAxMi45LTcuOCAyNC42LTE5LjggMjkuNnMtMjUuNyAyLjItMzQuOS02LjlMNDAwIDE1Ny4zIDI0Ni42IDMxMC42Yy0xMi41IDEyLjUtMzIuOCAxMi41LTQ1LjMgMHMtMTIuNS0zMi44IDAtNDUuM0wzNTQuNyAxMTIgMjk3LjQgNTQuNmMtOS4yLTkuMi0xMS45LTIyLjktNi45LTM0Ljl6TTAgMTc2YzAtNDQuMiAzNS44LTgwIDgwLTgwbDgwIDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJsLTgwIDBjLTguOCAwLTE2IDcuMi0xNiAxNmwwIDI1NmMwIDguOCA3LjIgMTYgMTYgMTZsMjU2IDBjOC44IDAgMTYtNy4yIDE2LTE2bDAtODBjMC0xNy43IDE0LjMtMzIgMzItMzJzMzIgMTQuMyAzMiAzMmwwIDgwYzAgNDQuMi0zNS44IDgwLTgwIDgwTDgwIDUxMmMtNDQuMiAwLTgwLTM1LjgtODAtODBMMCAxNzZ6Il19LGlwdD1kMmUsYXB0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InNxdWFyZS1mdWxsIixpY29uOls1MTIsNTEyLFsxMjg5OTcsMTI4OTk4LDEyODk5OSwxMjllMywxMjkwMDEsMTI5MDAyLDEyOTAwMywxMTAzNSwxMTAzNl0sImY0NWMiLCJNMCA2NEMwIDI4LjcgMjguNyAwIDY0IDBMNDQ4IDBjMzUuMyAwIDY0IDI4LjcgNjQgNjRsMCAzODRjMCAzNS4zLTI4LjcgNjQtNjQgNjRMNjQgNTEyYy0zNS4zIDAtNjQtMjguNy02NC02NEwwIDY0eiJdfSxucHQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiY2xvdmVyIixpY29uOls1MTIsNTEyLFtdLCJlMTM5IiwiTTMxMC40IDE2QzM0Ni42IDE2IDM3NiA0NS40IDM3NiA4MS43bDAgNS4yYzAgMTEuMi0yLjcgMjIuMy03LjggMzIuMmwtMi4zIDQuMi0yMC4xIDMzLjVjLTEuMSAxLjktMS4yIDMuNC0xLjEgNC41IC4yIDEuMyAuOSAyLjcgMi4xIDMuOXMyLjYgMS45IDMuOSAyLjFjMS4xIC4yIDIuNiAuMSA0LjUtMS4xbDMzLjUtMjAuMSA0LjItMi4zYzEwLTUuMSAyMS03LjggMzIuMi03LjhsNS4yIDBjMzYuMiAwIDY1LjYgMjkuNCA2NS42IDY1LjcgMCAxNy40LTYuOSAzNC4xLTE5LjIgNDYuNGwtMS4zIDEuM2MtMy43IDMuNy0zLjcgOS42IDAgMTMuM2wxLjMgMS4zYzEyLjMgMTIuMyAxOS4yIDI5IDE5LjIgNDYuNCAwIDM2LjItMjkuNCA2NS42LTY1LjYgNjUuNmwtNS4yIDBjLTEyLjggMC0yNS41LTMuNS0zNi41LTEwLjFsLTMzLjUtMjAuMWMtMS45LTEuMS0zLjQtMS4yLTQuNS0xLjEtMS4zIC4yLTIuNyAuOS0zLjkgMi4xcy0xLjkgMi42LTIuMSAzLjljLS4yIDEuMS0uMSAyLjYgMS4xIDQuNWwyMC4xIDMzLjVjNi42IDExIDEwLjEgMjMuNiAxMC4xIDM2LjVsMCA1LjJjMCAzNi4yLTI5LjQgNjUuNi02NS42IDY1LjYtMTcuNCAwLTM0LjEtNi45LTQ2LjQtMTkuMmwtMS4zLTEuM2MtMy43LTMuNy05LjYtMy43LTEzLjMgMGwtMS4zIDEuM2MtMTIuMyAxMi4zLTI5IDE5LjItNDYuNCAxOS4yLTM2LjIgMC02NS42LTI5LjQtNjUuNy02NS42bDAtNS4yYzAtMTIuOCAzLjUtMjUuNSAxMC4xLTM2LjVsMjAuMS0zMy41YzEuMS0xLjkgMS4yLTMuNCAxLjEtNC41LS4yLTEuMy0uOS0yLjctMi4xLTMuOXMtMi42LTEuOS0zLjktMi4xYy0uNS0uMS0xLjItLjEtMS45IDBsLTIuNSAxLTMzLjUgMjAuMWMtMTEgNi42LTIzLjYgMTAuMS0zNi41IDEwLjFsLTUuMiAwQzQ1LjQgMzc2IDE2IDM0Ni42IDE2IDMxMC40IDE2IDI5MyAyMi45IDI3Ni4zIDM1LjIgMjY0bDEuMy0xLjMgMS4yLTEuNWMyLjEtMy4xIDIuMS03LjIgMC0xMC4zbC0xLjItMS41LTEuMy0xLjNDMjIuOSAyMzUuOCAxNiAyMTkuMSAxNiAyMDEuNyAxNiAxNjUuNCA0NS40IDEzNiA4MS43IDEzNmw1LjIgMGMxMi44IDAgMjUuNSAzLjUgMzYuNSAxMC4xbDMzLjUgMjAuMSAyLjUgMWMuNyAuMSAxLjQgLjEgMS45IC4xIDEuMy0uMiAyLjctLjkgMy45LTIuMXMxLjktMi42IDIuMS0zLjljLjEtLjUgLjEtMS4yLS4xLTEuOWwtMS0yLjUtMjAuMS0zMy41Yy02LjYtMTEtMTAuMS0yMy42LTEwLjEtMzYuNWwwLTUuMmMwLTM2LjIgMjkuNC02NS43IDY1LjctNjUuNyAxNy40IDAgMzQuMSA2LjkgNDYuNCAxOS4ybDEuMyAxLjNjMy43IDMuNiA5LjYgMy43IDEzLjMgMGwxLjMtMS4zIDQuOC00LjRDMjgwLjUgMjEuMyAyOTUuMSAxNiAzMTAuNCAxNnoiXX0sb3B0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InRlZXRoLW9wZW4iLGljb246WzUxMiw1MTIsW10sImY2MmYiLCJNNjQgMzJDMjguNyAzMiAwIDYwLjcgMCA5NmwwIDgwYzAgMzUuMyAyOC43IDY0IDY0IDY0bDM4NCAwYzM1LjMgMCA2NC0yOC43IDY0LTY0bDAtODBjMC0zNS4zLTI4LjctNjQtNjQtNjRMNjQgMzJ6bTAgMjcyYy0zNS4zIDAtNjQgMjguNy02NCA2NGwwIDQ4YzAgMzUuMyAyOC43IDY0IDY0IDY0bDM4NCAwYzM1LjMgMCA2NC0yOC43IDY0LTY0bDAtNDhjMC0zNS4zLTI4LjctNjQtNjQtNjRMNjQgMzA0em04MC0xNjBjMC0yNi41IDIxLjUtNDggNDgtNDhzNDggMjEuNSA0OCA0OGwwIDI0YzAgMTMuMy0xMC43IDI0LTI0IDI0bC00OCAwYy0xMy4zIDAtMjQtMTAuNy0yNC0yNGwwLTI0em0xMjggMGMwLTI2LjUgMjEuNS00OCA0OC00OHM0OCAyMS41IDQ4IDQ4bDAgMjRjMCAxMy4zLTEwLjcgMjQtMjQgMjRsLTQ4IDBjLTEzLjMgMC0yNC0xMC43LTI0LTI0bDAtMjR6TTgwIDExMmMxNy43IDAgMzIgMTQuMyAzMiAzMmwwIDI0YzAgMTMuMy0xMC43IDI0LTI0IDI0bC0xNiAwYy0xMy4zIDAtMjQtMTAuNy0yNC0yNGwwLTI0YzAtMTcuNyAxNC4zLTMyIDMyLTMyem0zMjAgMzJjMC0xNy43IDE0LjMtMzIgMzItMzJzMzIgMTQuMyAzMiAzMmwwIDI0YzAgMTMuMy0xMC43IDI0LTI0IDI0bC0xNiAwYy0xMy4zIDAtMjQtMTAuNy0yNC0yNGwwLTI0ek00OCAzODRsMC0xNmMwLTguOCA3LjItMTYgMTYtMTZsMzIgMGM4LjggMCAxNiA3LjIgMTYgMTZsMCAxNmMwIDE3LjctMTQuMyAzMi0zMiAzMnMtMzItMTQuMy0zMi0zMnptMTQ0IDQ4Yy0yNi41IDAtNDgtMjEuNS00OC00OGwwLTE2YzAtOC44IDcuMi0xNiAxNi0xNmw2NCAwYzguOCAwIDE2IDcuMiAxNiAxNmwwIDE2YzAgMjYuNS0yMS41IDQ4LTQ4IDQ4em0xMjggMGMtMjYuNSAwLTQ4LTIxLjUtNDgtNDhsMC0xNmMwLTguOCA3LjItMTYgMTYtMTZsNjQgMGM4LjggMCAxNiA3LjIgMTYgMTZsMCAxNmMwIDI2LjUtMjEuNSA0OC00OCA0OHptMTEyLTE2Yy0xNy43IDAtMzItMTQuMy0zMi0zMmwwLTE2YzAtOC44IDcuMi0xNiAxNi0xNmwzMiAwYzguOCAwIDE2IDcuMiAxNiAxNmwwIDE2YzAgMTcuNy0xNC4zIDMyLTMyIDMyeiJdfSxyRD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJiYXJzLXN0YWdnZXJlZCIsaWNvbjpbNTEyLDUxMixbInJlb3JkZXIiLCJzdHJlYW0iXSwiZjU1MCIsIk0wIDk2QzAgNzguMyAxNC4zIDY0IDMyIDY0bDM4NCAwYzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMyTDMyIDEyOEMxNC4zIDEyOCAwIDExMy43IDAgOTZ6TTY0IDI1NmMwLTE3LjcgMTQuMy0zMiAzMi0zMmwzODQgMGMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMkw5NiAyODhjLTE3LjcgMC0zMi0xNC4zLTMyLTMyek00NDggNDE2YzAgMTcuNy0xNC4zIDMyLTMyIDMyTDMyIDQ0OGMtMTcuNyAwLTMyLTE0LjMtMzItMzJzMTQuMy0zMiAzMi0zMmwzODQgMGMxNy43IDAgMzIgMTQuMyAzMiAzMnoiXX0sc3B0PXJELGxwdD1yRCxjcHQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToid2FyZWhvdXNlIixpY29uOls1NzYsNTEyLFtdLCJmNDk0IiwiTTAgMTQyLjFMMCA0ODBjMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMmwwLTI0MGMwLTE3LjcgMTQuMy0zMiAzMi0zMmwzODQgMGMxNy43IDAgMzIgMTQuMyAzMiAzMmwwIDI0MGMwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMybDAtMzM3LjljMC0yNy41LTE3LjYtNTItNDMuOC02MC43TDMwMy4yIDUuMWMtOS45LTMuMy0yMC41LTMuMy0zMC40IDBMNDMuOCA4MS40QzE3LjYgOTAuMSAwIDExNC42IDAgMTQyLjF6TTQ2NCAyNTZsLTM1MiAwIDAgNjQgMzUyIDAgMC02NHpNMTEyIDQxNmwzNTIgMCAwLTY0LTM1MiAwIDAgNjR6bTM1MiAzMmwtMzUyIDAgMCA2NCAzNTIgMCAwLTY0eiJdfSxkcHQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToic3dhdGNoYm9vayIsaWNvbjpbNTEyLDUxMixbXSwiZjVjMyIsIk0wIDQ4QzAgMjEuNSAyMS41IDAgNDggMGw5NiAwYzI2LjUgMCA0OCAyMS41IDQ4IDQ4bDAgMzY4YzAgNTMtNDMgOTYtOTYgOTZTMCA0NjkgMCA0MTZMMCA0OHpNMjQwIDQwOS42bDAtMjcxLjUgNDguMS00OC4xYzE4LjctMTguNyA0OS4xLTE4LjcgNjcuOSAwbDY3LjkgNjcuOWMxOC43IDE4LjcgMTguNyA0OS4xIDAgNjcuOUwyNDAgNDA5LjZ6TTIwNS41IDUxMmwxOTItMTkyIDY2LjYgMGMyNi41IDAgNDggMjEuNSA0OCA0OGwwIDk2YzAgMjYuNS0yMS41IDQ4LTQ4IDQ4bC0yNTguNSAwek04MCA2NGMtOC44IDAtMTYgNy4yLTE2IDE2bDAgMzJjMCA4LjggNy4yIDE2IDE2IDE2bDMyIDBjOC44IDAgMTYtNy4yIDE2LTE2bDAtMzJjMC04LjgtNy4yLTE2LTE2LTE2TDgwIDY0ek02NCAyMDhsMCAzMmMwIDguOCA3LjIgMTYgMTYgMTZsMzIgMGM4LjggMCAxNi03LjIgMTYtMTZsMC0zMmMwLTguOC03LjItMTYtMTYtMTZsLTMyIDBjLTguOCAwLTE2IDcuMi0xNiAxNnpNOTYgNDQwYTI0IDI0IDAgMSAwIDAtNDggMjQgMjQgMCAxIDAgMCA0OHoiXX0sdXB0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImNhbXBncm91bmQiLGljb246WzUxMiw1MTIsWzk5NzhdLCJmNmJiIiwiTTM0NC44IDUyLjNjMTEuMi0xMy43IDkuMi0zMy44LTQuNS00NXMtMzMuOC05LjItNDUgNC41bC0zOS4yIDQ4LTM5LjItNDhDMjA1LjYtMS45IDE4NS40LTQgMTcxLjcgNy4ycy0xNS43IDMxLjQtNC41IDQ1bDQ3LjQgNTgtMjAyIDI0Ni45QzQuNSAzNjcuMSAwIDM3OS42IDAgMzkyLjZMMCA0MzJjMCAyNi41IDIxLjUgNDggNDggNDhsNDE2IDBjMjYuNSAwIDQ4LTIxLjUgNDgtNDhsMC0zOS40YzAtMTIuOS00LjUtMjUuNS0xMi43LTM1LjVsLTIwMi0yNDYuOSA0Ny40LTU4ek0yNTYgMjg4bDExMiAxMjgtMjI0IDAgMTEyLTEyOHoiXX0scHB0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InBlcnNvbi13YWxraW5nLWFycm93LXJpZ2h0IixpY29uOls1NzYsNTEyLFtdLCJlNTUyIiwiTTEwNC41IDI0YTU2IDU2IDAgMSAxIDExMiAwIDU2IDU2IDAgMSAxIC0xMTIgMHptLTggMTgxLjNMNzMuOSAyMjcuOWMtNiA2LTkuNCAxNC4xLTkuNCAyMi42bDAgMzcuNWMwIDE3LjctMTQuMyAzMi0zMiAzMnMtMzItMTQuMy0zMi0zMmwwLTM3LjVjMC0yNS41IDEwLjEtNDkuOSAyOC4xLTY3LjlsMzUuMS0zNS4xYzIyLjgtMjIuOCA1My42LTM1LjYgODUuOC0zNS42IDM2LjkgMCA3MS44IDE2LjggOTQuOCA0NS42TDI2Mi4zIDE4MGM2LjEgNy42IDE1LjMgMTIgMjUgMTJsMzMuMiAwYzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMybC0zMy4yIDBjLTI5LjIgMC01Ni43LTEzLjMtNzUtMzZsLTMuOC00LjcgMCAxMTUuMiAzNC41IDI5LjZjMTcuNyAxNS4yIDI5LjMgMzYuMiAzMi42IDU5LjNsMTIuNiA4OC4xYzIuNSAxNy41LTkuNyAzMy43LTI3LjIgMzYuMnMtMzMuNy05LjctMzYuMi0yNy4ybC0xMi42LTg4LjFjLTEuMS03LjctNS0xNC43LTEwLjktMTkuOEwxMzAgMzQ3LjVjLTIxLjMtMTguMi0zMy41LTQ0LjktMzMuNS03Mi45bDAtNjkuM3pNOTYuNiAzNzFjMi40IDIuMyA0LjggNC42IDcuNCA2LjhsNDYgMzkuNC0yLjIgNy42Yy00LjUgMTUuNy0xMi45IDMwLTI0LjQgNDEuNUw1NS4xIDUzNC42Yy0xMi41IDEyLjUtMzIuOCAxMi41LTQ1LjMgMHMtMTIuNS0zMi44IDAtNDUuM2w2OC4zLTY4LjNjMy44LTMuOCA2LjYtOC42IDguMS0xMy44TDk2LjYgMzcxek01MDUuNSAzNDVjLTkuNCA5LjQtMjQuNiA5LjQtMzMuOSAwcy05LjQtMjQuNiAwLTMzLjlsMzEtMzEtMTAyLjEgMGMtMTMuMyAwLTI0LTEwLjctMjQtMjRzMTAuNy0yNCAyNC0yNGwxMDIuMSAwLTMxLTMxYy05LjQtOS40LTkuNC0yNC42IDAtMzMuOXMyNC42LTkuNCAzMy45IDBsNzIgNzJjOS40IDkuNCA5LjQgMjQuNiAwIDMzLjlsLTcyIDcyeiJdfSxocHQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZ2xhc3NlcyIsaWNvbjpbNTc2LDUxMixbXSwiZjUzMCIsIk0xNDMuMyA5NmMtMTQgMC0yNi41IDkuMi0zMC42IDIyLjZMNzAuNCAyNTYgMjI0IDI1NmMxNy43IDAgMzIgMTQuMyAzMiAzMmw2NCAwYzAtMTcuNyAxNC4zLTMyIDMyLTMybDE1My42IDAtNDIuMy0xMzcuNEM0NTkuMiAxMDUuMiA0NDYuOCA5NiA0MzIuNyA5Nkw0MDAgOTZjLTE3LjcgMC0zMi0xNC4zLTMyLTMyczE0LjMtMzIgMzItMzJsMzIuNyAwYzQyLjEgMCA3OS40IDI3LjUgOTEuOCA2Ny44bDQ1LjQgMTQ3LjVjNC4xIDEzLjIgNi4xIDI2LjkgNi4xIDQwLjdsMCA5NmMwIDUzLTQzIDk2LTk2IDk2bC02NCAwYy01MyAwLTk2LTQzLTk2LTk2bDAtMzItNjQgMCAwIDMyYzAgNTMtNDMgOTYtOTYgOTZsLTY0IDBjLTUzIDAtOTYtNDMtOTYtOTZsMC05NmMwLTEzLjggMi4xLTI3LjUgNi4xLTQwLjdMNTEuNSA5OS44QzYzLjkgNTkuNSAxMDEuMSAzMiAxNDMuMyAzMkwxNzYgMzJjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJsLTMyLjcgMHpNNjQgMzIwbDAgNjRjMCAxNy43IDE0LjMgMzIgMzIgMzJsNjQgMGMxNy43IDAgMzItMTQuMyAzMi0zMmwwLTY0LTEyOCAwem00MTYgOTZjMTcuNyAwIDMyLTE0LjMgMzItMzJsMC02NC0xMjggMCAwIDY0YzAgMTcuNyAxNC4zIDMyIDMyIDMybDY0IDB6Il19LHUyZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJjaXJjbGUtcGF1c2UiLGljb246WzUxMiw1MTIsWzYyMDkyLCJwYXVzZS1jaXJjbGUiXSwiZjI4YiIsIk0yNTYgNTEyYTI1NiAyNTYgMCAxIDAgMC01MTIgMjU2IDI1NiAwIDEgMCAwIDUxMnpNMjI0IDE5MmwwIDEyOGMwIDE3LjctMTQuMyAzMi0zMiAzMnMtMzItMTQuMy0zMi0zMmwwLTEyOGMwLTE3LjcgMTQuMy0zMiAzMi0zMnMzMiAxNC4zIDMyIDMyem0xMjggMGwwIDEyOGMwIDE3LjctMTQuMyAzMi0zMiAzMnMtMzItMTQuMy0zMi0zMmwwLTEyOGMwLTE3LjcgMTQuMy0zMiAzMi0zMnMzMiAxNC4zIDMyIDMyeiJdfSxmcHQ9dTJlLG1wdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJtZW1vcnkiLGljb246WzUxMiw1MTIsW10sImY1MzgiLCJNNjQgNjRDMjguNyA2NCAwIDkyLjcgMCAxMjhsMCA3LjRDMCAxNDIuMiA0LjQgMTQ4IDEwLjEgMTUxLjcgMjMuMyAxNjAuMyAzMiAxNzUuMSAzMiAxOTJzLTguNyAzMS43LTIxLjkgNDAuM0M0LjQgMjM2IDAgMjQxLjggMCAyNDguNmwwIDU1LjQgNTEyIDAgMC01NS40YzAtNi44LTQuNC0xMi42LTEwLjEtMTYuMy0xMy4yLTguNi0yMS45LTIzLjQtMjEuOS00MC4zczguNy0zMS43IDIxLjktNDAuM2M1LjctMy43IDEwLjEtOS41IDEwLjEtMTYuM2wwLTcuNGMwLTM1LjMtMjguNy02NC02NC02NEw2NCA2NHpNNTEyIDQxNmwwLTY0LTUxMiAwIDAgNjRjMCAxNy43IDE0LjMgMzIgMzIgMzJsNjQgMCAwLTI0YzAtMTMuMyAxMC43LTI0IDI0LTI0czI0IDEwLjcgMjQgMjRsMCAyNCA4OCAwIDAtMjRjMC0xMy4zIDEwLjctMjQgMjQtMjRzMjQgMTAuNyAyNCAyNGwwIDI0IDg4IDAgMC0yNGMwLTEzLjMgMTAuNy0yNCAyNC0yNHMyNCAxMC43IDI0IDI0bDAgMjQgNjQgMGMxNy43IDAgMzItMTQuMyAzMi0zMnpNMTYwIDE2MGwwIDY0YzAgMTcuNy0xNC4zIDMyLTMyIDMycy0zMi0xNC4zLTMyLTMybDAtNjRjMC0xNy43IDE0LjMtMzIgMzItMzJzMzIgMTQuMyAzMiAzMnptMTI4IDBsMCA2NGMwIDE3LjctMTQuMyAzMi0zMiAzMnMtMzItMTQuMy0zMi0zMmwwLTY0YzAtMTcuNyAxNC4zLTMyIDMyLTMyczMyIDE0LjMgMzIgMzJ6bTEyOCAwbDAgNjRjMCAxNy43LTE0LjMgMzItMzIgMzJzLTMyLTE0LjMtMzItMzJsMC02NGMwLTE3LjcgMTQuMy0zMiAzMi0zMnMzMiAxNC4zIDMyIDMyeiJdfSxncHQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZ2lmdCIsaWNvbjpbNTEyLDUxMixbMTI3ODczXSwiZjA2YiIsIk0zMjEuNSA2OC44QzMyOS4xIDU1LjkgMzQyLjkgNDggMzU3LjggNDhsMi4yIDBjMjIuMSAwIDQwIDE3LjkgNDAgNDBzLTE3LjkgNDAtNDAgNDBsLTczLjMgMCAzNC44LTU5LjJ6bS0xMzEgMGwzNC44IDU5LjItNzMuMyAwYy0yMi4xIDAtNDAtMTcuOS00MC00MHMxNy45LTQwIDQwLTQwbDIuMiAwYzE0LjkgMCAyOC44IDcuOSAzNi4zIDIwLjh6bTg5LjYtMjQuM2wtMjQuMSA0MS0yNC4xLTQxQzIxNS43IDE2LjkgMTg2LjEgMCAxNTQuMiAwTDE1MiAwYy00OC42IDAtODggMzkuNC04OCA4OCAwIDE0LjQgMy41IDI4IDkuNiA0MEwzMiAxMjhjLTE3LjcgMC0zMiAxNC4zLTMyIDMybDAgMzJjMCAxNy43IDE0LjMgMzIgMzIgMzJsNDQ4IDBjMTcuNyAwIDMyLTE0LjMgMzItMzJsMC0zMmMwLTE3LjctMTQuMy0zMi0zMi0zMmwtNDEuNiAwYzYuMS0xMiA5LjYtMjUuNiA5LjYtNDAgMC00OC42LTM5LjQtODgtODgtODhsLTIuMiAwYy0zMS45IDAtNjEuNSAxNi45LTc3LjcgNDQuNHpNNDgwIDI3MmwtMjAwIDAgMCAyMDggMTM2IDBjMzUuMyAwIDY0LTI4LjcgNjQtNjRsMC0xNDR6bS0yNDggMGwtMjAwIDAgMCAxNDRjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMTM2IDAgMC0yMDh6Il19LGJwdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJtb25leS1iaWxsLXdoZWF0IixpY29uOls1MTIsNTEyLFtdLCJlNTJhIiwiTTE3Ni0xNmM0NC4yIDAgODAgMzUuOCA4MCA4MCAwIDguOC03LjIgMTYtMTYgMTYtNDQuMiAwLTgwLTM1LjgtODAtODAgMC04LjggNy4yLTE2IDE2LTE2ek01NiAwbDQ4IDBjMTMuMyAwIDI0IDEwLjcgMjQgMjRzLTEwLjcgMjQtMjQgMjRMNTYgNDhDNDIuNyA0OCAzMiAzNy4zIDMyIDI0UzQyLjcgMCA1NiAwek0yNCA3MmwxMTIgMGMxMy4zIDAgMjQgMTAuNyAyNCAyNHMtMTAuNyAyNC0yNCAyNEwyNCAxMjBDMTAuNyAxMjAgMCAxMDkuMyAwIDk2UzEwLjcgNzIgMjQgNzJ6bTggOTZjMC0xMy4zIDEwLjctMjQgMjQtMjRsNDggMGMxMy4zIDAgMjQgMTAuNyAyNCAyNHMtMTAuNyAyNC0yNCAyNGwtNDggMGMtMTMuMyAwLTI0LTEwLjctMjQtMjR6TTI3MiAwYzAtOC44IDcuMi0xNiAxNi0xNiA0NC4yIDAgODAgMzUuOCA4MCA4MCAwIDguOC03LjIgMTYtMTYgMTYtNDQuMiAwLTgwLTM1LjgtODAtODB6TTQwMC0xNmM0NC4yIDAgODAgMzUuOCA4MCA4MCAwIDguOC03LjIgMTYtMTYgMTYtNDQuMiAwLTgwLTM1LjgtODAtODAgMC04LjggNy4yLTE2IDE2LTE2em04MCAxNDRjMCA0NC4yLTM1LjggODAtODAgODAtOC44IDAtMTYtNy4yLTE2LTE2IDAtNDQuMiAzNS44LTgwIDgwLTgwIDguOCAwIDE2IDcuMiAxNiAxNnpNMzUyIDExMmM4LjggMCAxNiA3LjIgMTYgMTYgMCA0NC4yLTM1LjggODAtODAgODAtOC44IDAtMTYtNy4yLTE2LTE2IDAtNDQuMiAzNS44LTgwIDgwLTgwem0tOTYgMTZjMCA0NC4yLTM1LjggODAtODAgODAtOC44IDAtMTYtNy4yLTE2LTE2IDAtNDQuMiAzNS44LTgwIDgwLTgwIDguOCAwIDE2IDcuMiAxNiAxNnpNMCAzMDRjMC0yNi41IDIxLjUtNDggNDgtNDhsNDE2IDBjMjYuNSAwIDQ4IDIxLjUgNDggNDhsMCAxNjBjMCAyNi41LTIxLjUgNDgtNDggNDhMNDggNTEyYy0yNi41IDAtNDgtMjEuNS00OC00OEwwIDMwNHpNNDggNDE2bDAgNDggNDggMGMwLTI2LjUtMjEuNS00OC00OC00OHpNOTYgMzA0bC00OCAwIDAgNDhjMjYuNSAwIDQ4LTIxLjUgNDgtNDh6TTQ2NCA0MTZjLTI2LjUgMC00OCAyMS41LTQ4IDQ4bDQ4IDAgMC00OHpNNDE2IDMwNGMwIDI2LjUgMjEuNSA0OCA0OCA0OGwwLTQ4LTQ4IDB6bS05NiA4MGE2NCA2NCAwIDEgMCAtMTI4IDAgNjQgNjQgMCAxIDAgMTI4IDB6Il19LHZwdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJkdW5nZW9uIixpY29uOls1MTIsNTEyLFtdLCJmNmQ5IiwiTTM0Ny41IDE0NC44YzYuNSA1LjQgMTIuNSAxMS4zIDE4IDE3LjcgOC43IDEwLjIgMjMuNyAxNCAzNS4xIDYuOWw1NC4xLTMzLjhjMTEuMi03IDE0LjctMjEuNyA2LjktMzIuMi0xNS4zLTIwLjUtMzMuNS0zOC42LTU0LjEtNTMuOC0xMC40LTcuNi0yNC43LTQuMy0zMS44IDYuNGwtMzUuMSA1Mi42Yy03LjggMTEuNi0zLjggMjcuMyA3IDM2LjJ6TTMyNy44IDQxLjFjOC42LTEyLjkgMi45LTMwLjUtMTIuMi0zNC4xLTE5LjEtNC42LTM5LjEtNy01OS42LTdzLTQwLjQgMi40LTU5LjYgN2MtMTUuMSAzLjYtMjAuOCAyMS4yLTEyLjIgMzQuMWw0MCA2MGM1LjIgNy44IDE0LjUgMTEuNyAyMy45IDExLjIgNS4yLS4zIDEwLjYtLjMgMTUuOCAwIDkuNCAuNSAxOC43LTMuNCAyMy45LTExLjJsNDAtNjB6TTUwLjUgMTAzLjNjLTcuOSAxMC41LTQuMyAyNS4zIDYuOSAzMi4ybDU0LjEgMzMuOGMxMS40IDcuMSAyNi4zIDMuMyAzNS4xLTYuOSA1LjUtNi40IDExLjUtMTIuMyAxOC0xNy43IDEwLjgtOC45IDE0LjgtMjQuNiA3LTM2LjJMMTM2LjQgNTUuOWMtNy4xLTEwLjctMjEuNS0xNC0zMS44LTYuNC0yMC42IDE1LjEtMzguOCAzMy4zLTU0LjEgNTMuOHptNjIgMTQxLjFjLjgtOS45LTMuMy0xOS45LTExLjgtMjUuMUw0MSAxODJjLTEyLjktOC0yOS45LTIuMy0zMy42IDEyLjUtNC45IDE5LjctNy41IDQwLjMtNy41IDYxLjZsMCAyNGMwIDEzLjMgMTAuNyAyNCAyNCAyNGw2NCAwYzEzLjMgMCAyNC0xMC43IDI0LTI0bDAtMjRjMC0zLjkgLjItNy44IC41LTExLjZ6bTI4Ny4xIDBjLjMgMy44IC41IDcuNyAuNSAxMS42bDAgMjRjMCAxMy4zIDEwLjcgMjQgMjQgMjRsNjQgMGMxMy4zIDAgMjQtMTAuNyAyNC0yNGwwLTI0YzAtMjEuMi0yLjYtNDEuOC03LjUtNjEuNi0zLjYtMTQuNy0yMC43LTIwLjUtMzMuNi0xMi41bC01OS43IDM3LjNjLTguNCA1LjMtMTIuNiAxNS4yLTExLjggMjUuMXpNODggMzUybC02NCAwYy0xMy4zIDAtMjQgMTAuNy0yNCAyNEwwIDQ4OGMwIDEzLjMgMTAuNyAyNCAyNCAyNGw2NCAwYzEzLjMgMCAyNC0xMC43IDI0LTI0bDAtMTEyYzAtMTMuMy0xMC43LTI0LTI0LTI0em00MDAgMGwtNjQgMGMtMTMuMyAwLTI0IDEwLjctMjQgMjRsMCAxMTJjMCAxMy4zIDEwLjcgMjQgMjQgMjRsNjQgMGMxMy4zIDAgMjQtMTAuNyAyNC0yNGwwLTExMmMwLTEzLjMtMTAuNy0yNC0yNC0yNHpNMjgwIDE4NGMwLTEzLjMtMTAuNy0yNC0yNC0yNHMtMjQgMTAuNy0yNCAyNGwwIDMwNGMwIDEzLjMgMTAuNyAyNCAyNCAyNHMyNC0xMC43IDI0LTI0bDAtMzA0em0tODAgMzJjMC0xMy4zLTEwLjctMjQtMjQtMjRzLTI0IDEwLjctMjQgMjRsMCAyNzJjMCAxMy4zIDEwLjcgMjQgMjQgMjRzMjQtMTAuNyAyNC0yNGwwLTI3MnptMTYwIDBjMC0xMy4zLTEwLjctMjQtMjQtMjRzLTI0IDEwLjctMjQgMjRsMCAyNzJjMCAxMy4zIDEwLjcgMjQgMjQgMjRzMjQtMTAuNyAyNC0yNGwwLTI3MnoiXX0scDJlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InN1aXRjYXNlLW1lZGljYWwiLGljb246WzUxMiw1MTIsWyJtZWRraXQiXSwiZjBmYSIsIk0xOTIgNTZsMCA0MCAxMjggMCAwLTQwYzAtNC40LTMuNi04LTgtOEwyMDAgNDhjLTQuNCAwLTggMy42LTggOHptLTQ4IDhsMC04YzAtMzAuOSAyNS4xLTU2IDU2LTU2TDMxMiAwYzMwLjkgMCA1NiAyNS4xIDU2IDU2bDAgNDI0LTIyNCAwIDAtNDE2ek05NiAxNzZsMCAzMDQtMzIgMGMtMzUuMyAwLTY0LTI4LjctNjQtNjRMMCAxNjBjMC0zNS4zIDI4LjctNjQgNjQtNjRsMzIgMCAwIDgwek00MTYgNDgwbDAtMzg0IDMyIDBjMzUuMyAwIDY0IDI4LjcgNjQgNjRsMCAyNTZjMCAzNS4zLTI4LjcgNjQtNjQgNjRsLTMyIDB6TTI0NCAyMDhjLTguOCAwLTE2IDcuMi0xNiAxNmwwIDM2LTM2IDBjLTguOCAwLTE2IDcuMi0xNiAxNmwwIDI0YzAgOC44IDcuMiAxNiAxNiAxNmwzNiAwIDAgMzZjMCA4LjggNy4yIDE2IDE2IDE2bDI0IDBjOC44IDAgMTYtNy4yIDE2LTE2bDAtMzYgMzYgMGM4LjggMCAxNi03LjIgMTYtMTZsMC0yNGMwLTguOC03LjItMTYtMTYtMTZsLTM2IDAgMC0zNmMwLTguOC03LjItMTYtMTYtMTZsLTI0IDB6Il19LHhwdD1wMmUseXB0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InBlcnNvbi1jYW5lIixpY29uOls0NDgsNTEyLFtdLCJlNTNjIiwiTTIzMi0zMmE1NiA1NiAwIDEgMSAwIDExMiA1NiA1NiAwIDEgMSAwLTExMnpNMTQ0IDIzNi43TDk3LjcgMjk5LjFjLTEwLjUgMTQuMi0zMC42IDE3LjItNDQuOCA2LjZzLTE3LjItMzAuNi02LjYtNDQuOGw3MC41LTk1QzE0MiAxMzIgMTgxLjcgMTEyIDIyNCAxMTJzODIgMjAgMTA3LjIgNTMuOWw3MC41IDk1YzEwLjUgMTQuMiA3LjYgMzQuMi02LjYgNDQuOHMtMzQuMiA3LjYtNDQuOC02LjZMMzA0IDIzNi43IDMwNCA1MTJjMCAxNy43LTE0LjMgMzItMzIgMzJzLTMyLTE0LjMtMzItMzJsMC0xNjBjMC04LjgtNy4yLTE2LTE2LTE2cy0xNiA3LjItMTYgMTZsMCAxNjBjMCAxNy43LTE0LjMgMzItMzIgMzJzLTMyLTE0LjMtMzItMzJsMC0yNzUuM3pNMzkyIDM4NGMtNC40IDAtOCAzLjYtOCA4IDAgMTMuMy0xMC43IDI0LTI0IDI0cy0yNC0xMC43LTI0LTI0YzAtMzAuOSAyNS4xLTU2IDU2LTU2czU2IDI1LjEgNTYgNTZsMCAxMjhjMCAxMy4zLTEwLjcgMjQtMjQgMjRzLTI0LTEwLjctMjQtMjRsMC0xMjhjMC00LjQtMy42LTgtOC04eiJdfSxfZz17cHJlZml4OiJmYXMiLGljb25OYW1lOiJnYXVnZSIsaWNvbjpbNTEyLDUxMixbImRhc2hib2FyZCIsImdhdWdlLW1lZCIsInRhY2hvbWV0ZXItYWx0LWF2ZXJhZ2UiXSwiZjYyNCIsIk0wIDI1NmEyNTYgMjU2IDAgMSAxIDUxMiAwIDI1NiAyNTYgMCAxIDEgLTUxMiAwem0zMjAgOTZjMC0yNi45LTE2LjUtNDkuOS00MC01OS4zTDI4MCAxMjBjMC0xMy4zLTEwLjctMjQtMjQtMjRzLTI0IDEwLjctMjQgMjRsMCAxNzIuN2MtMjMuNSA5LjUtNDAgMzIuNS00MCA1OS4zIDAgMzUuMyAyOC43IDY0IDY0IDY0czY0LTI4LjcgNjQtNjR6TTE0NCAxNzZhMzIgMzIgMCAxIDAgMC02NCAzMiAzMiAwIDEgMCAwIDY0em0tMTYgODBhMzIgMzIgMCAxIDAgLTY0IDAgMzIgMzIgMCAxIDAgNjQgMHptMjg4IDMyYTMyIDMyIDAgMSAwIDAtNjQgMzIgMzIgMCAxIDAgMCA2NHpNNDAwIDE0NGEzMiAzMiAwIDEgMCAtNjQgMCAzMiAzMiAwIDEgMCA2NCAweiJdfSx3cHQ9X2csTXB0PV9nLGtwdD1fZyxTcHQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZW52ZWxvcGUtb3Blbi10ZXh0IixpY29uOls1NzYsNTEyLFtdLCJmNjU4IiwiTTI4OCAzMy45TDk2LjQgMTc1LjggMjU0LjUgMjkzYzUuMyAzLjkgMTEuMiA2LjkgMTcuNSA4LjdMMjcyIDQ2NGMwIDUuNSAuNSAxMC44IDEuMyAxNkw5NiA0ODBjLTM1LjMgMC02NC0yOC43LTY0LTY0bDAtMjM5LjljMC0yMC4zIDkuNi0zOS40IDI1LjktNTEuNEwyNTQuNS0yMWM5LjctNy4yIDIxLjQtMTEgMzMuNS0xMXMyMy44IDMuOSAzMy41IDExTDUxOC4xIDEyNC43YzcuMiA1LjMgMTMuMSAxMiAxNy40IDE5LjYtMi41LS4yLTUtLjMtNy41LS4zTDQzNi42IDE0NCAyODggMzMuOXpNMzIwIDI0MGMwLTI2LjUgMjEuNS00OCA0OC00OGwxNjAgMGMyNi41IDAgNDggMjEuNSA0OCA0OGwwIDIyNGMwIDI2LjUtMjEuNSA0OC00OCA0OGwtMTYwIDBjLTI2LjUgMC00OC0yMS41LTQ4LTQ4bDAtMjI0em04MCAxNmMtMTMuMyAwLTI0IDEwLjctMjQgMjRzMTAuNyAyNCAyNCAyNGw5NiAwYzEzLjMgMCAyNC0xMC43IDI0LTI0cy0xMC43LTI0LTI0LTI0bC05NiAwem0wIDk2Yy0xMy4zIDAtMjQgMTAuNy0yNCAyNHMxMC43IDI0IDI0IDI0bDU2IDBjMTMuMyAwIDI0LTEwLjcgMjQtMjRzLTEwLjctMjQtMjQtMjRsLTU2IDB6Il19LHpwdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJ0b29sYm94IixpY29uOls1MTIsNTEyLFsxMjk1MjBdLCJmNTUyIiwiTTE3NiA1NmwwIDQwIDE2MCAwIDAtNDBjMC00LjQtMy42LTgtOC04TDE4NCA0OGMtNC40IDAtOCAzLjYtOCA4ek0xMjggOTZsMC00MGMwLTMwLjkgMjUuMS01NiA1Ni01NkwzMjggMGMzMC45IDAgNTYgMjUuMSA1NiA1NmwwIDQwIDI4LjEgMGMxMi43IDAgMjQuOSA1LjEgMzMuOSAxNC4xbDUxLjkgNTEuOWM5IDkgMTQuMSAyMS4yIDE0LjEgMzMuOWwwIDc2LjEtMTM2IDAgMC0xNmMwLTEzLjMtMTAuNy0yNC0yNC0yNHMtMjQgMTAuNy0yNCAyNGwwIDE2LTE0NCAwIDAtMTZjMC0xMy4zLTEwLjctMjQtMjQtMjRzLTI0IDEwLjctMjQgMjRsMCAxNi0xMzYgMCAwLTc2LjFjMC0xMi43IDUuMS0yNC45IDE0LjEtMzMuOWw1MS45LTUxLjljOS05IDIxLjItMTQuMSAzMy45LTE0LjFMMTI4IDk2ek0wIDQxNmwwLTk2IDEzNiAwIDAgMTZjMCAxMy4zIDEwLjcgMjQgMjQgMjRzMjQtMTAuNyAyNC0yNGwwLTE2IDE0NCAwIDAgMTZjMCAxMy4zIDEwLjcgMjQgMjQgMjRzMjQtMTAuNyAyNC0yNGwwLTE2IDEzNiAwIDAgOTZjMCAzNS4zLTI4LjcgNjQtNjQgNjRMNjQgNDgwYy0zNS4zIDAtNjQtMjguNy02NC02NHoiXX0sQ3B0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InBvd2VyLW9mZiIsaWNvbjpbNTEyLDUxMixbOTIxMV0sImYwMTEiLCJNMjg4IDBjMC0xNy43LTE0LjMtMzItMzItMzJTMjI0LTE3LjcgMjI0IDBsMCAyNTZjMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMkwyODggMHpNMTQ2LjMgOTguNGMxNC41LTEwLjEgMTgtMzAuMSA3LjktNDQuNnMtMzAuMS0xOC00NC42LTcuOUM0My40IDkyLjEgMCAxNjkgMCAyNTYgMCAzOTcuNCAxMTQuNiA1MTIgMjU2IDUxMlM1MTIgMzk3LjQgNTEyIDI1NmMwLTg3LTQzLjQtMTYzLjktMTA5LjctMjEwLjEtMTQuNS0xMC4xLTM0LjQtNi42LTQ0LjYgNy45cy02LjYgMzQuNCA3LjkgNDQuNmM0OS44IDM0LjggODIuMyA5Mi40IDgyLjMgMTU3LjYgMCAxMDYtODYgMTkyLTE5MiAxOTJTNjQgMzYyIDY0IDI1NmMwLTY1LjIgMzIuNS0xMjIuOSA4Mi4zLTE1Ny42eiJdfSxpRD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJzaWduYWwiLGljb246WzUxMiw1MTIsWzEyODI0Niwic2lnbmFsLTUiLCJzaWduYWwtcGVyZmVjdCJdLCJmMDEyIiwiTTQ4OCA1NmMwLTEzLjMtMTAuNy0yNC0yNC0yNHMtMjQgMTAuNy0yNCAyNGwwIDQwMGMwIDEzLjMgMTAuNyAyNCAyNCAyNHMyNC0xMC43IDI0LTI0bDAtNDAwek0zNjAgMTI4Yy0xMy4zIDAtMjQgMTAuNy0yNCAyNGwwIDMwNGMwIDEzLjMgMTAuNyAyNCAyNCAyNHMyNC0xMC43IDI0LTI0bDAtMzA0YzAtMTMuMy0xMC43LTI0LTI0LTI0ek0yODAgMjQ4YzAtMTMuMy0xMC43LTI0LTI0LTI0cy0yNCAxMC43LTI0IDI0bDAgMjA4YzAgMTMuMyAxMC43IDI0IDI0IDI0czI0LTEwLjcgMjQtMjRsMC0yMDh6TTE1MiAzMjBjLTEzLjMgMC0yNCAxMC43LTI0IDI0bDAgMTEyYzAgMTMuMyAxMC43IDI0IDI0IDI0czI0LTEwLjcgMjQtMjRsMC0xMTJjMC0xMy4zLTEwLjctMjQtMjQtMjR6TTQ4IDM4NGMtMTMuMyAwLTI0IDEwLjctMjQgMjRsMCA0OGMwIDEzLjMgMTAuNyAyNCAyNCAyNHMyNC0xMC43IDI0LTI0bDAtNDhjMC0xMy4zLTEwLjctMjQtMjQtMjR6Il19LFRwdD1pRCxfcHQ9aUQsTHB0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImFycm93cy1zcGluIixpY29uOls1MTIsNTEyLFtdLCJlNGJiIiwiTTQ4MS43IDI0MC4xYy0xNy42LTEuMi0zMi45IDEyLTM0LjIgMjkuNy0zLjMgNDctMjMuNiA4OS40LTU0LjggMTIxTDM2MSAzNTljLTYuOS02LjktMTcuMi04LjktMjYuMi01LjJTMzIwIDM2Ni4zIDMyMCAzNzZsMCAxMTJjMCAxMy4zIDEwLjcgMjQgMjQgMjRsMTEyIDBjOS43IDAgMTguNS01LjggMjIuMi0xNC44czEuNy0xOS4zLTUuMi0yNi4ybC0zNS0zNWM0MS43LTQyLjIgNjguOS05OC44IDczLjQtMTYxLjggMS4yLTE3LjYtMTItMzIuOS0yOS43LTM0LjJ6TTM5IDQxTDc0IDc2Yy00MS43IDQyLjItNjguOSA5OC44LTczLjQgMTYxLjgtMS4yIDE3LjYgMTIgMzIuOSAyOS43IDM0LjJzMzIuOS0xMiAzNC4yLTI5LjdjMy4zLTQ3IDIzLjYtODkuNCA1NC44LTEyMUwxNTEgMTUzYzYuOSA2LjkgMTcuMiA4LjkgMjYuMiA1LjJTMTkyIDE0NS43IDE5MiAxMzZsMC0xMTJjMC0xMy4zLTEwLjctMjQtMjQtMjRMNTYgMEM0Ni4zIDAgMzcuNSA1LjggMzMuOCAxNC44UzMyLjIgMzQuMSAzOSA0MXptMjAxLTEwLjdjLTEuMiAxNy42IDEyIDMyLjkgMjkuNyAzNC4yIDQ3IDMuMyA4OS40IDIzLjYgMTIxIDU0LjhMMzU5IDE1MWMtNi45IDYuOS04LjkgMTcuMi01LjIgMjYuMlMzNjYuMyAxOTIgMzc2IDE5MmwxMTIgMGMxMy4zIDAgMjQtMTAuNyAyNC0yNGwwLTExMmMwLTkuNy01LjgtMTguNS0xNC44LTIyLjJTNDc3LjkgMzIuMiA0NzEgMzlMNDM2IDc0Yy00Mi4yLTQxLjctOTguOC02OC45LTE2MS44LTczLjQtMTcuNi0xLjItMzIuOSAxMi0zNC4yIDI5Ljd6TTQxIDQ3M2wzNS0zNWM0Mi4yIDQxLjcgOTguOCA2OC45IDE2MS44IDczLjQgMTcuNiAxLjIgMzIuOS0xMiAzNC4yLTI5LjdzLTEyLTMyLjktMjkuNy0zNC4yYy00Ny0zLjMtODkuNC0yMy42LTEyMS01NC44TDE1MyAzNjFjNi45LTYuOSA4LjktMTcuMiA1LjItMjYuMlMxNDUuNyAzMjAgMTM2IDMyMEwyNCAzMjBjLTEzLjMgMC0yNCAxMC43LTI0IDI0TDAgNDU2YzAgOS43IDUuOCAxOC41IDE0LjggMjIuMlMzNC4xIDQ3OS44IDQxIDQ3M3oiXX0sQXB0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImpvaW50IixpY29uOls1NzYsNTEyLFtdLCJmNTk1IiwiTTM2MCAwYzEzLjMgMCAyNCAxMC43IDI0IDI0bDAgMTljMCA0MC4zIDE2IDc5IDQ0LjUgMTA3LjVsMjEgMjFDNDY5IDE5MSA0ODAgMjE3LjQgNDgwIDI0NWwwIDE5YzAgMTMuMy0xMC43IDI0LTI0IDI0cy0yNC0xMC43LTI0LTI0bDAtMTljMC0xNC45LTUuOS0yOS4xLTE2LjQtMzkuNmwtMjEtMjFDMzU3LjEgMTQ2LjkgMzM2IDk2IDMzNiA0M2wwLTE5YzAtMTMuMyAxMC43LTI0IDI0LTI0ek01NTIgMjg4Yy0xMy4zIDAtMjQtMTAuNy0yNC0yNGwwLTE5YzAtNDAuMy0xNi03OS00NC41LTEwNy41bC0yMS0yMUM0NDMgOTcgNDMyIDcwLjYgNDMyIDQzbDAtMTljMC0xMy4zIDEwLjctMjQgMjQtMjRzMjQgMTAuNyAyNCAyNGwwIDE5YzAgMTQuOSA1LjkgMjkuMSAxNi40IDM5LjZsMjEgMjFDNTU0LjkgMTQxLjEgNTc2IDE5MiA1NzYgMjQ1bDAgMTljMCAxMy4zLTEwLjcgMjQtMjQgMjR6TTI5Mi43IDMyMGM1LjYgMCAxMC43IDIuOSAxMy42IDcuNkwzOTQuNiA0NzFjMS4zIDIuMSAwIDQuOS0yLjQgNS4yLTE2LjEgMi41LTMyLjQgMy43LTQ4LjcgMy43bC0zOC4xIDBjLTUuNiAwLTEwLjctMi45LTEzLjYtNy42bC03OS0xMjguNGMtNi05LjggMC0yMi42IDExLjUtMjMuMyA2LjctLjQgMTMuNC0uNiAyMC4yLS42bDQ4LjMgMHpNNDU5LjMgNDY1LjljLTYuNCAxLTEyLjctMS45LTE2LjEtNy40TDM3NC4xIDM0Ni4xYy02LjctMTAuOSAxLjUtMjQuNyAxNC4yLTIyLjkgMS4zIC4yIDIuNiAuNCAzLjggLjZsMTM2LjQgMjFjMjcuMyA0LjIgNDcuNCAyNy43IDQ3LjQgNTUuM3MtMjAuMSA1MS4xLTQ3LjQgNTUuM2wtNjkuMiAxMC42ek0xMzguNyAzMzZjNi43LTEuNSAxMy42IDEuNCAxNy4yIDcuMmw2OC45IDExMmM2LjYgMTAuNy0xLjIgMjQuNC0xMy44IDIzLjEtMTMtMS40LTI1LjktMy41LTM4LjYtNi41TDMxLjIgNDM5LjJDMTIuOSA0MzUgMCA0MTguNyAwIDQwMHMxMi45LTM1IDMxLjItMzkuMkwxMzguNyAzMzZ6Il19LERwdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJicmFpbGxlIixpY29uOlszODQsNTEyLFtdLCJmMmExIiwiTTgwIDE0NGE4MCA4MCAwIDEgMCAwLTE2MCA4MCA4MCAwIDEgMCAwIDE2MHptMCAxOTJhODAgODAgMCAxIDAgMC0xNjAgODAgODAgMCAxIDAgMCAxNjB6bTAgMTM2Yy0xMy4zIDAtMjQtMTAuNy0yNC0yNHMxMC43LTI0IDI0LTI0IDI0IDEwLjcgMjQgMjQtMTAuNyAyNC0yNCAyNHptMCA1NmM0NC4yIDAgODAtMzUuOCA4MC04MHMtMzUuOC04MC04MC04MC04MCAzNS44LTgwIDgwIDM1LjggODAgODAgODB6bTI0OC04MGMwIDEzLjMtMTAuNyAyNC0yNCAyNHMtMjQtMTAuNy0yNC0yNCAxMC43LTI0IDI0LTI0IDI0IDEwLjcgMjQgMjR6bTU2IDBjMC00NC4yLTM1LjgtODAtODAtODBzLTgwIDM1LjgtODAgODAgMzUuOCA4MCA4MCA4MCA4MC0zNS44IDgwLTgwek0zMDQgMjMyYTI0IDI0IDAgMSAxIDAgNDggMjQgMjQgMCAxIDEgMC00OHptMCAxMDRhODAgODAgMCAxIDAgMC0xNjAgODAgODAgMCAxIDAgMCAxNjB6bTAtMTkyYTgwIDgwIDAgMSAwIDAtMTYwIDgwIDgwIDAgMSAwIDAgMTYweiJdfSxoMmU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiYmFza2V0LXNob3BwaW5nIixpY29uOls1NzYsNTEyLFsic2hvcHBpbmctYmFza2V0Il0sImYyOTEiLCJNMjg4IDBjNi42IDAgMTIuOSAyLjcgMTcuNCA3LjVsMTQ0IDE1MiAuNSAuNSA3OC4xIDBjMTcuNyAwIDMyIDE0LjMgMzIgMzIgMCAxNC41LTkuNiAyNi43LTIyLjggMzAuN0w0OTEuMSA0MjkuOWMtNi41IDI5LjMtMzIuNSA1MC4xLTYyLjUgNTAuMWwtMjgxLjMgMGMtMzAgMC01Ni0yMC44LTYyLjUtNTAuMWwtNDYtMjA3LjJjLTEzLjItMy45LTIyLjgtMTYuMi0yMi44LTMwLjcgMC0xNy43IDE0LjMtMzIgMzItMzJsNzguMSAwIC41LS41IDE0NC0xNTJDMjc1LjEgMi43IDI4MS40IDAgMjg4IDB6bTAgNTguOUwxOTIuMiAxNjAgMzgzLjggMTYwIDI4OCA1OC45ek0yMDggMjY0YzAtMTMuMy0xMC43LTI0LTI0LTI0cy0yNCAxMC43LTI0IDI0bDAgMTEyYzAgMTMuMyAxMC43IDI0IDI0IDI0czI0LTEwLjcgMjQtMjRsMC0xMTJ6bTgwLTI0Yy0xMy4zIDAtMjQgMTAuNy0yNCAyNGwwIDExMmMwIDEzLjMgMTAuNyAyNCAyNCAyNHMyNC0xMC43IDI0LTI0bDAtMTEyYzAtMTMuMy0xMC43LTI0LTI0LTI0em0xMjggMjRjMC0xMy4zLTEwLjctMjQtMjQtMjRzLTI0IDEwLjctMjQgMjRsMCAxMTJjMCAxMy4zIDEwLjcgMjQgMjQgMjRzMjQtMTAuNyAyNC0yNGwwLTExMnoiXX0sRXB0PWgyZSwkcHQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiYnJpZGdlIixpY29uOls1MTIsNTEyLFtdLCJlNGM4IiwiTTMyIDMyQzE0LjMgMzIgMCA0Ni4zIDAgNjRTMTQuMyA5NiAzMiA5Nmw4IDAgMCA2NC00MCAwIDAgMTEyYzM3LjYgOS40IDY0IDQzLjIgNjQgODJsMCA5NGMwIDE3LjcgMTQuMyAzMiAzMiAzMmwzMiAwYzE3LjcgMCAzMi0xNC4zIDMyLTMybDAtNjRjMC01MyA0My05NiA5Ni05NnM5NiA0MyA5NiA5NmwwIDY0YzAgMTcuNyAxNC4zIDMyIDMyIDMybDMyIDBjMTcuNyAwIDMyLTE0LjMgMzItMzJsMC05NGMwLTM4LjggMjYuNC03Mi42IDY0LTgybDAtMTEyLTQwIDAgMC02NCA4IDBjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJMMzIgMzJ6TTQyNCA5NmwwIDY0LTgwIDAgMC02NCA4MCAwek0yOTYgOTZsMCA2NC04MCAwIDAtNjQgODAgMHpNODggOTZsODAgMCAwIDY0LTgwIDAgMC02NHoiXX0sSXB0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InBsYW5lLWFycml2YWwiLGljb246WzU3Niw1MTIsWzEyODc0OF0sImY1YWYiLCJNMzg2LjYgMTkzLjFMMjY1LjkgMy43Yy00LjgtNy42LTEyLjYtMTIuOC0yMS40LTE0LjNsLTQzLjEtNy42Yy0xMC44LTEuOS0yMC4yIDcuMy0xOC42IDE4LjFsMjQgMTYxLjYtMTA1LTE4LjUtMzMuOC02MS44QzY0LjUgNzQuNyA1OC4yIDcwLjIgNTEuMSA2OUwzNCA2NmMtOS44LTEuNy0xOC44IDUuOS0xOC44IDE1LjhsLjYgMTA2LjNjLjIgMzAuOSAyMi40IDU3LjMgNTIuOSA2Mi43bDEzLjUgMi40IDAgMCA0MTcuNiA3My42YzMwLjUgNS40IDU5LjUtMTUgNjQuOS00NS40cy0xNS01OS41LTQ1LjQtNjQuOUwzODYuNiAxOTMuMXpNMjI0IDM4NGEzMiAzMiAwIDEgMCAwLTY0IDMyIDMyIDAgMSAwIDAgNjR6bTEzMS4yLTE1LjNhMzIgMzIgMCAxIDAgLTY0IDAgMzIgMzIgMCAxIDAgNjQgMHpNMzIgNDQ4Yy0xNy43IDAtMzIgMTQuMy0zMiAzMnMxNC4zIDMyIDMyIDMybDUxMiAwYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMyTDMyIDQ0OHoiXX0sUHB0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImNhc2gtcmVnaXN0ZXIiLGljb246WzUxMiw1MTIsW10sImY3ODgiLCJNOTYgMEM2MC43IDAgMzIgMjguNyAzMiA2NHMyOC43IDY0IDY0IDY0bDQ4IDAgMCAzMi01NyAwYy0zMS42IDAtNTguNSAyMy4xLTYzLjMgNTQuNEwxLjEgMzY0LjFDLjQgMzY4LjggMCAzNzMuNiAwIDM3OC40TDAgNDQ4YzAgMzUuMyAyOC43IDY0IDY0IDY0bDM4NCAwYzM1LjMgMCA2NC0yOC43IDY0LTY0bDAtNjkuNmMwLTQuOC0uNC05LjYtMS4xLTE0LjRMNDg4LjIgMjE0LjRDNDgzLjUgMTgzLjEgNDU2LjYgMTYwIDQyNSAxNjBsLTIxNyAwIDAtMzIgNDggMGMzNS4zIDAgNjQtMjguNyA2NC02NFMyOTEuMyAwIDI1NiAwTDk2IDB6bTAgNDhsMTYwIDBjOC44IDAgMTYgNy4yIDE2IDE2cy03LjIgMTYtMTYgMTZMOTYgODBjLTguOCAwLTE2LTcuMi0xNi0xNnM3LjItMTYgMTYtMTZ6TTY0IDQyNGMwLTEzLjMgMTAuNy0yNCAyNC0yNGwzMzYgMGMxMy4zIDAgMjQgMTAuNyAyNCAyNHMtMTAuNyAyNC0yNCAyNEw4OCA0NDhjLTEzLjMgMC0yNC0xMC43LTI0LTI0em00OC0xNjBhMjQgMjQgMCAxIDEgMC00OCAyNCAyNCAwIDEgMSAwIDQ4em0xMjAtMjRhMjQgMjQgMCAxIDEgLTQ4IDAgMjQgMjQgMCAxIDEgNDggMHpNMTYwIDM0NGEyNCAyNCAwIDEgMSAwLTQ4IDI0IDI0IDAgMSAxIDAgNDh6TTMyOCAyNDBhMjQgMjQgMCAxIDEgLTQ4IDAgMjQgMjQgMCAxIDEgNDggMHpNMjU2IDM0NGEyNCAyNCAwIDEgMSAwLTQ4IDI0IDI0IDAgMSAxIDAgNDh6TTQyNCAyNDBhMjQgMjQgMCAxIDEgLTQ4IDAgMjQgMjQgMCAxIDEgNDggMHpNMzUyIDM0NGEyNCAyNCAwIDEgMSAwLTQ4IDI0IDI0IDAgMSAxIDAgNDh6Il19LE5wdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJyaW5nIixpY29uOls1MTIsNTEyLFtdLCJmNzBiIiwiTTY0IDIwOGMwIDcuOCA0LjQgMTguNyAxNy4xIDMwLjMgNDUuNC0yNC4yIDEwNy43LTM4LjMgMTc0LjktMzguM3MxMjkuNSAxNC4xIDE3NC45IDM4LjNjMTIuOC0xMS42IDE3LjEtMjIuNSAxNy4xLTMwLjMgMC0xMi4zLTEwLjgtMzItNDcuOS01MC42LTM1LjItMTcuNi04Ni4xLTI5LjQtMTQ0LjEtMjkuNHMtMTA4LjkgMTEuOC0xNDQuMSAyOS40Qzc0LjggMTc2IDY0IDE5NS43IDY0IDIwOHptMTkyIDQwYy00NyAwLTg5LjMgNy42LTEyMi45IDE5LjcgMzMuMiAxMi40IDc1LjcgMjAuMyAxMjIuOSAyMC4zczg5LjctNy44IDEyMi45LTIwLjNDMzQ1LjMgMjU1LjYgMzAzIDI0OCAyNTYgMjQ4ek0wIDIwOEMwIDE1OC40IDM5LjQgMTIyLjIgODMuMyAxMDAuMiAxMjkuMSA3Ny4zIDE5MC4zIDY0IDI1NiA2NHMxMjYuOSAxMy4zIDE3Mi43IDM2LjJjNDMuOSAyMiA4My4zIDU4LjIgODMuMyAxMDcuOGwwIDk2YzAgNDkuNi0zOS40IDg1LjgtODMuMyAxMDcuOC00NS45IDIyLjktMTA3IDM2LjItMTcyLjcgMzYuMlMxMjkuMSA0MzQuNyA4My4zIDQxMS44QzM5LjQgMzg5LjggMCAzNTMuNiAwIDMwNGwwLTk2eiJdfSxGcHQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiYXF1YXJpdXMiLGljb246WzU3Niw1MTIsW10sImU4NDUiLCJNNDAxLjcgMjkxLjRjOS00LjUgMTkuNi00LjUgMjguNiAwbDEyOCA2NGMxNS44IDcuOSAyMi4yIDI3LjEgMTQuMyA0Mi45cy0yNy4xIDIyLjItNDIuOSAxNC4zTDQxNiAzNTUuOCAzMDIuMyA0MTIuNmMtOSA0LjUtMTkuNiA0LjUtMjguNiAwTDE2MCAzNTUuOCA0Ni4zIDQxMi42Yy0xNS44IDcuOS0zNSAxLjUtNDIuOS0xNC4zcy0xLjUtMzUgMTQuMy00Mi45bDEyOC02NGM5LTQuNSAxOS42LTQuNSAyOC42IDBMMjg4IDM0OC4yIDQwMS43IDI5MS40em0zLjQtMTkzLjVjOC4yLTMgMTcuMy0yLjUgMjUuMiAxLjVsMTI4IDY0YzE1LjggNy45IDIyLjIgMjcuMSAxNC4zIDQyLjlzLTI3LjEgMjIuMi00Mi45IDE0LjNMNDE2IDE2My44IDMwMi4zIDIyMC42Yy05IDQuNS0xOS42IDQuNS0yOC42IDBMMTYwIDE2My44IDQ2LjMgMjIwLjZjLTE1LjggNy45LTM1IDEuNS00Mi45LTE0LjNzLTEuNS0zNSAxNC4zLTQyLjlsMTI4LTY0IDMuNC0xLjVjOC4yLTMgMTcuMy0yLjUgMjUuMiAxLjVsMTEzLjcgNTYuOCAxMTMuNy01Ni44IDMuNC0xLjV6Il19LGYyZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJzaGFyZS1ub2RlcyIsaWNvbjpbNTEyLDUxMixbInNoYXJlLWFsdCJdLCJmMWUwIiwiTTM4NCAxOTJjNTMgMCA5Ni00MyA5Ni05NnMtNDMtOTYtOTYtOTYtOTYgNDMtOTYgOTZjMCA1LjQgLjUgMTAuOCAxLjMgMTZMMTU5LjYgMTg0LjFjLTE2LjktMTUtMzkuMi0yNC4xLTYzLjYtMjQuMS01MyAwLTk2IDQzLTk2IDk2czQzIDk2IDk2IDk2YzI0LjQgMCA0Ni42LTkuMSA2My42LTI0LjFMMjg5LjMgNDAwYy0uOSA1LjItMS4zIDEwLjUtMS4zIDE2IDAgNTMgNDMgOTYgOTYgOTZzOTYtNDMgOTYtOTYtNDMtOTYtOTYtOTZjLTI0LjQgMC00Ni42IDkuMS02My42IDI0LjFMMTkwLjcgMjcyYy45LTUuMiAxLjMtMTAuNSAxLjMtMTZzLS41LTEwLjgtMS4zLTE2bDEyOS43LTcyLjFjMTYuOSAxNSAzOS4yIDI0LjEgNjMuNiAyNC4xeiJdfSxPcHQ9ZjJlLFJwdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJwZXJzb24tY2lyY2xlLWV4Y2xhbWF0aW9uIixpY29uOls2NDAsNTEyLFtdLCJlNTNmIiwiTTI4MCAyNGE1NiA1NiAwIDEgMCAtMTEyIDAgNTYgNTYgMCAxIDAgMTEyIDB6bTI0IDIxMi43TDM0MSAyODYuNmMxMi44LTE3LjUgMjguNS0zMi43IDQ2LjMtNDVsLTU2LjItNzUuN0MzMDYgMTMyIDI2Ni4zIDExMiAyMjQgMTEycy04MiAyMC0xMDcuMiA1My45bC03MC41IDk1Yy0xMC41IDE0LjItNy42IDM0LjIgNi42IDQ0LjhzMzQuMiA3LjYgNDQuOC02LjZMMTQ0IDIzNi43IDE0NCA1MTJjMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMmwwLTE2MGMwLTguOCA3LjItMTYgMTYtMTZzMTYgNy4yIDE2IDE2bDAgMTYwYzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJsMC0yNzUuM3pNNDk2IDU0NGExNDQgMTQ0IDAgMSAwIDAtMjg4IDE0NCAxNDQgMCAxIDAgMCAyODh6bTAtMTAwYTIwIDIwIDAgMSAxIDAgNDAgMjAgMjAgMCAxIDEgMC00MHptMC0xNDBjOC44IDAgMTYgNy4yIDE2IDE2bDAgODBjMCA4LjgtNy4yIDE2LTE2IDE2cy0xNi03LjItMTYtMTZsMC04MGMwLTguOCA3LjItMTYgMTYtMTZ6Il19LEJwdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJiaW5vY3VsYXJzIixpY29uOls1MTIsNTEyLFtdLCJmMWU1IiwiTTEyOCAzMmwzMiAwYzE3LjcgMCAzMiAxNC4zIDMyIDMybDAgMzItOTYgMCAwLTMyYzAtMTcuNyAxNC4zLTMyIDMyLTMyem02NCA5NmwwIDMyMGMwIDE3LjctMTQuMyAzMi0zMiAzMkwzMiA0ODBjLTE3LjcgMC0zMi0xNC4zLTMyLTMybDAtNTkuMWMwLTM0LjYgOS40LTY4LjYgMjcuMi05OC4zIDEzLjctMjIuOCAyMi41LTQ4LjIgMjUuOC03NC42TDYwLjUgMTU2YzItMTYgMTUuNi0yOCAzMS44LTI4bDk5LjggMHptMjI3LjggMGMxNi4xIDAgMjkuOCAxMiAzMS44IDI4TDQ1OSAyMTZjMy4zIDI2LjQgMTIuMSA1MS44IDI1LjggNzQuNiAxNy44IDI5LjcgMjcuMiA2My43IDI3LjIgOTguM2wwIDU5LjFjMCAxNy43LTE0LjMgMzItMzIgMzJsLTEyOCAwYy0xNy43IDAtMzItMTQuMy0zMi0zMmwwLTMyMCA5OS44IDB6TTMyMCA2NGMwLTE3LjcgMTQuMy0zMiAzMi0zMmwzMiAwYzE3LjcgMCAzMiAxNC4zIDMyIDMybDAgMzItOTYgMCAwLTMyem0tMzIgNjRsMCAxNjAtNjQgMCAwLTE2MCA2NCAweiJdfSxIcHQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToia2lwLXNpZ24iLGljb246WzM4NCw1MTIsW10sImUxYzQiLCJNMzQwLjggODguM2MxMy40LTExLjUgMTUtMzEuNyAzLjUtNDUuMXMtMzEuNy0xNS00NS4xLTMuNUwxMjggMTg2LjQgMTI4IDY0YzAtMTcuNy0xNC4zLTMyLTMyLTMyUzY0IDQ2LjMgNjQgNjRsMCAxNjgtMzIgMGMtMTMuMyAwLTI0IDEwLjctMjQgMjRzMTAuNyAyNCAyNCAyNGwzMiAwIDAgMTY4YzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJsMC0xMjIuNCAxNzEuMiAxNDYuN2MxMy40IDExLjUgMzMuNiA5LjkgNDUuMS0zLjVzOS45LTMzLjYtMy41LTQ1LjFMMTczLjIgMjgwIDM1MiAyODBjMTMuMyAwIDI0LTEwLjcgMjQtMjRzLTEwLjctMjQtMjQtMjRMMTczLjIgMjMyIDM0MC44IDg4LjN6Il19LG0yZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJoYXJkLWRyaXZlIixpY29uOls0NDgsNTEyLFsxMjg0MzYsImhkZCJdLCJmMGEwIiwiTTY0IDMyQzI4LjcgMzIgMCA2MC43IDAgOTZMMCAyNjAuMUMxOC4xIDI0Ny40IDQwLjIgMjQwIDY0IDI0MGwzMjAgMGMyMy44IDAgNDUuOSA3LjQgNjQgMjAuMUw0NDggOTZjMC0zNS4zLTI4LjctNjQtNjQtNjRMNjQgMzJ6TTQ0OCAzNTJjMC0zNS4zLTI4LjctNjQtNjQtNjRMNjQgMjg4Yy0zNS4zIDAtNjQgMjguNy02NCA2NGwwIDY0YzAgMzUuMyAyOC43IDY0IDY0IDY0bDMyMCAwYzM1LjMgMCA2NC0yOC43IDY0LTY0bDAtNjR6TTIyNCAzODRhMzIgMzIgMCAxIDEgNjQgMCAzMiAzMiAwIDEgMSAtNjQgMHptMTI4LTMyYTMyIDMyIDAgMSAxIDAgNjQgMzIgMzIgMCAxIDEgMC02NHoiXX0scXB0PW0yZSxqcHQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToicmFua2luZy1zdGFyIixpY29uOls1NzYsNTEyLFtdLCJlNTYxIiwiTTMyMS44IDU0LjFMMjk4LjIgNi4zYy0zLjktOC4zLTE2LjEtOC42LTIwLjQgMGwtMjMuNiA0Ny44LTUyLjMgNy41Yy05LjMgMS40LTEzLjMgMTIuOS02LjQgMTkuOGwzOCAzNy05IDUyLjFjLTEuNCA5LjMgOC4yIDE2LjUgMTYuOCAxMi4ybDQ2LjktMjQuOCA0Ni42IDI0LjRjOC42IDQuMyAxOC4zLTIuOSAxNi44LTEyLjJsLTktNTIuMSAzOC0zNi42YzYuOC02LjggMi45LTE4LjMtNi40LTE5LjhsLTUyLjMtNy41ek0yNTYgMjU2Yy0yNi41IDAtNDggMjEuNS00OCA0OGwwIDE2MGMwIDI2LjUgMjEuNSA0OCA0OCA0OGw2NCAwYzI2LjUgMCA0OC0yMS41IDQ4LTQ4bDAtMTYwYzAtMjYuNS0yMS41LTQ4LTQ4LTQ4bC02NCAwek00OCAzMjBjLTI2LjUgMC00OCAyMS41LTQ4IDQ4bDAgOTZjMCAyNi41IDIxLjUgNDggNDggNDhsNjQgMGMyNi41IDAgNDgtMjEuNSA0OC00OGwwLTk2YzAtMjYuNS0yMS41LTQ4LTQ4LTQ4bC02NCAwek00MTYgNDMybDAgMzJjMCAyNi41IDIxLjUgNDggNDggNDhsNjQgMGMyNi41IDAgNDgtMjEuNSA0OC00OGwwLTMyYzAtMjYuNS0yMS41LTQ4LTQ4LTQ4bC02NCAwYy0yNi41IDAtNDggMjEuNS00OCA0OHoiXX0sVnB0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InVzZXItdGllIixpY29uOls0NDgsNTEyLFtdLCJmNTA4IiwiTTIyNCAyNDhhMTIwIDEyMCAwIDEgMSAwLTI0MCAxMjAgMTIwIDAgMSAxIDAgMjQwem0tMzAuNSA1Nmw2MSAwYzkuNyAwIDE3LjUgNy44IDE3LjUgMTcuNSAwIDQuMi0xLjUgOC4yLTQuMiAxMS40bC0yNy40IDMyIDMxIDExNS4xIC42IDAgMzQuNi0xMzguNWMyLjItOC43IDExLjEtMTQgMTkuNS0xMC44IDYxLjkgMjMuNiAxMDUuOSA4My42IDEwNS45IDE1My44IDAgMTUuMS0xMi4zIDI3LjQtMjcuNCAyNy40TDQzLjQgNTEyYy0xNS4xIDAtMjcuNC0xMi4zLTI3LjQtMjcuNCAwLTcwLjIgNDQtMTMwLjIgMTA1LjktMTUzLjggOC40LTMuMiAxNy4zIDIuMSAxOS41IDEwLjhsMzQuNiAxMzguNSAuNiAwIDMxLTExNS4xLTI3LjQtMzJjLTIuNy0zLjItNC4yLTcuMi00LjItMTEuNCAwLTkuNyA3LjgtMTcuNSAxNy41LTE3LjV6Il19LGcyZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJlbGxpcHNpcyIsaWNvbjpbNDQ4LDUxMixbImVsbGlwc2lzLWgiXSwiZjE0MSIsIk0wIDI1NmE1NiA1NiAwIDEgMSAxMTIgMCA1NiA1NiAwIDEgMSAtMTEyIDB6bTE2OCAwYTU2IDU2IDAgMSAxIDExMiAwIDU2IDU2IDAgMSAxIC0xMTIgMHptMjI0LTU2YTU2IDU2IDAgMSAxIDAgMTEyIDU2IDU2IDAgMSAxIDAtMTEyeiJdfSxVcHQ9ZzJlLFdwdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJzdG9yZS1zbGFzaCIsaWNvbjpbNTc2LDUxMixbXSwiZTA3MSIsIk00MS0yNC45Yy05LjQtOS40LTI0LjYtOS40LTMzLjkgMFMtMi4zLS4zIDcgOS4xbDUyOCA1MjhjOS40IDkuNCAyNC42IDkuNCAzMy45IDBzOS40LTI0LjYgMC0zMy45bC01OC42LTU4LjZjMS4xLTQgMS42LTguMiAxLjYtMTIuNWwwLTE1MS4yYy0xMi41IDQuNi0yNi4xIDcuMi00MC41IDcuMi04LjEgMC0xNS45LS44LTIzLjUtMi40bDAgNjYuNC0zMC4yIDAtMTM3LjUtMTM3LjVjMi45LTMuNiA1LjUtNy40IDcuNi0xMS41IDExLjYgMjIgMzQuNyAzNyA2MS4zIDM3IDI2LjggMCA0OS44LTE1LjEgNjEuNC0zNy4xIDExLjQgMjIuMSAzNC41IDM3LjEgNjAuOCAzNy4xIDQ1LjYgMCA3OC40LTQzLjcgNjUuNi04Ny41TDUxMy44IDcyLjNDNTA2LjggNDguNCA0ODQuOSAzMiA0NjAgMzJMMTE2IDMyYy01LjUgMC0xMC44IC44LTE1LjkgMi4zTDQxLTI0Ljl6TTE1MS41IDIyMS4zTDQ4LjcgMTE4LjYgMzguOSAxNTIuNWMtMTIuOCA0My43IDIwIDg3LjUgNjUuNiA4Ny41IDE4LjEgMCAzNC43LTcuMSA0Ny0xOC43ek00MTAuMiA0ODBsLTEyOC0xMjgtMTU0LjIgMCAwLTY2LjRjLTcuNiAxLjYtMTUuNSAyLjQtMjMuNSAyLjQtMTQuNCAwLTI4LTIuNi00MC41LTcuMkw2NCA0MzJjMCAyNi41IDIxLjUgNDggNDggNDhsMjk4LjIgMHoiXX0sYjJlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InBlcmNlbnQiLGljb246WzQ0OCw1MTIsWzYyMTAxLDYyNzg1LCJwZXJjZW50YWdlIl0sIjI1IiwiTTE5MiAxMjhhOTYgOTYgMCAxIDAgLTE5MiAwIDk2IDk2IDAgMSAwIDE5MiAwek00NDggMzg0YTk2IDk2IDAgMSAwIC0xOTIgMCA5NiA5NiAwIDEgMCAxOTIgMHpNNDM4LjYgODYuNmMxMi41LTEyLjUgMTIuNS0zMi44IDAtNDUuM3MtMzIuOC0xMi41LTQ1LjMgMGwtMzg0IDM4NGMtMTIuNSAxMi41LTEyLjUgMzIuOCAwIDQ1LjNzMzIuOCAxMi41IDQ1LjMgMGwzODQtMzg0eiJdfSxHcHQ9YjJlLHYyZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJmaWxlLXppcHBlciIsaWNvbjpbMzg0LDUxMixbImZpbGUtYXJjaGl2ZSJdLCJmMWM2IiwiTTAgNjRDMCAyOC43IDI4LjcgMCA2NCAwTDIxMy41IDBjMTcgMCAzMy4zIDYuNyA0NS4zIDE4LjdMMzY1LjMgMTI1LjNjMTIgMTIgMTguNyAyOC4zIDE4LjcgNDUuM0wzODQgNDQ4YzAgMzUuMy0yOC43IDY0LTY0IDY0TDY0IDUxMmMtMzUuMyAwLTY0LTI4LjctNjQtNjRMMCA2NHptMjA4LTUuNWwwIDkzLjVjMCAxMy4zIDEwLjcgMjQgMjQgMjRMMzI1LjUgMTc2IDIwOCA1OC41ek02NCA3MmMwIDEzLjMgMTAuNyAyNCAyNCAyNGw0OCAwYzEzLjMgMCAyNC0xMC43IDI0LTI0cy0xMC43LTI0LTI0LTI0TDg4IDQ4Qzc0LjcgNDggNjQgNTguNyA2NCA3MnptMCA5NmMwIDEzLjMgMTAuNyAyNCAyNCAyNGw0OCAwYzEzLjMgMCAyNC0xMC43IDI0LTI0cy0xMC43LTI0LTI0LTI0bC00OCAwYy0xMy4zIDAtMjQgMTAuNy0yNCAyNHptNjQgNzJsLTMyIDBjLTE3LjcgMC0zMiAxNC4zLTMyIDMybDAgNDhjMCAyNi41IDIxLjUgNDggNDggNDhzNDgtMjEuNSA0OC00OGwwLTQ4YzAtMTcuNy0xNC4zLTMyLTMyLTMyem0tMTYgNjRhMTYgMTYgMCAxIDEgMCAzMiAxNiAxNiAwIDEgMSAwLTMyeiJdfSxZcHQ9djJlLFpwdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJkaXNwbGF5IixpY29uOls1MTIsNTEyLFtdLCJlMTYzIiwiTTQ0OCA5NmwwIDI1Ni0zODQgMCAwLTI1NiAzODQgMHpNNjQgMzJDMjguNyAzMiAwIDYwLjcgMCA5NkwwIDM1MmMwIDM1LjMgMjguNyA2NCA2NCA2NGwxNDQgMC0xNiA0OC03MiAwYy0xMy4zIDAtMjQgMTAuNy0yNCAyNHMxMC43IDI0IDI0IDI0bDI3MiAwYzEzLjMgMCAyNC0xMC43IDI0LTI0cy0xMC43LTI0LTI0LTI0bC03MiAwLTE2LTQ4IDE0NCAwYzM1LjMgMCA2NC0yOC43IDY0LTY0bDAtMjU2YzAtMzUuMy0yOC43LTY0LTY0LTY0TDY0IDMyeiJdfSx4MmU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiaWNvbnMiLGljb246WzUxMiw1MTIsWyJoZWFydC1tdXNpYy1jYW1lcmEtYm9sdCJdLCJmODZkIiwiTTE3NC45IDI3MmMxMC43IDAgMjAuNyA1LjMgMjYuNiAxNC4ybDExLjggMTcuOCAyNi43IDBjMjYuNSAwIDQ4IDIxLjUgNDggNDhsMCAxMTJjMCAyNi41LTIxLjUgNDgtNDggNDhMNDggNTEyYy0yNi41IDAtNDgtMjEuNS00OC00OEwwIDM1MmMwLTI2LjUgMjEuNS00OCA0OC00OGwyNi43IDAgMTEuOC0xNy44YzUuOS04LjkgMTUuOS0xNC4yIDI2LjYtMTQuMmw2MS43IDB6bTI3OC42LTEyYzUuNi00LjkgMTMuOS01LjMgMTkuOS0uOXM4LjMgMTIuNCA1LjMgMTkuM0w0NDAuMyAzNjggNDk2IDM2OGM2LjcgMCAxMi42IDQuMSAxNSAxMC40cy42IDEzLjMtNC40IDE3LjdsLTEyOCAxMTJjLTUuNiA0LjktMTMuOSA1LjMtMTkuOSAuOXMtOC4zLTEyLjQtNS4zLTE5LjNsMzguNS04OS43LTU1LjggMGMtNi43IDAtMTIuNi00LjEtMTUtMTAuNHMtLjYtMTMuMyA0LjQtMTcuN2wxMjgtMTEyek0xNDQgMzYwYTQ4IDQ4IDAgMSAwIDAgOTYgNDggNDggMCAxIDAgMC05NnpNNDgzLjggLjRjNi41LTEuMSAxMy4xIC40IDE4LjUgNC40IDYuMSA0LjUgOS43IDExLjcgOS43IDE5LjJsMCAxNTItLjMgNC45Yy0zLjMgMjQuMi0zMC41IDQzLjEtNjMuNyA0My4xLTM1LjMgMC02NC0yMS41LTY0LTQ4czI4LjctNDggNjQtNDhjNS41IDAgMTAuOSAuNiAxNiAxLjZsMC00OS4zLTExMiAzMy42IDAgMTEwLjItLjMgNC45Yy0zLjMgMjQuMi0zMC41IDQzLjEtNjMuNyA0My4xLTM1LjMgMC02NC0yMS41LTY0LTQ4czI4LjctNDggNjQtNDhjNS41IDAgMTAuOSAuNiAxNiAxLjZMMzA0IDcyYzAtMTAuNiA3LTIwIDE3LjEtMjNsMTYwLTQ4IDIuNy0uNnpNMTg4LjkgMEMyMjYgMCAyNTYgMzAgMjU2IDY3LjFsMCA2LjFjMCA1Ni4xLTc1LjIgMTEyLjEtMTEwLjMgMTM1LjMtMTAuOCA3LjEtMjQuNiA3LjEtMzUuNCAwLTM1LjEtMjMuMS0xMTAuMy03OS4yLTExMC4zLTEzNS4zbDAtNi4xQzAgMzAgMzAgMCA2Ny4xIDAgODguMiAwIDEwOCA5LjkgMTIwLjcgMjYuOGw3LjMgOS44IDcuMy05LjhDMTQ4IDkuOSAxNjcuOCAwIDE4OC45IDB6Il19LFhwdD14MmUsUXB0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InJ1bGVyLXZlcnRpY2FsIixpY29uOlsyNTYsNTEyLFtdLCJmNTQ4IiwiTTAgMTZDMC0xMC41IDIxLjUtMzIgNDgtMzJsMTYwIDBjMjYuNSAwIDQ4IDIxLjUgNDggNDhsMCAyNC0xMDQgMGMtMTMuMyAwLTI0IDEwLjctMjQgMjRzMTAuNyAyNCAyNCAyNGwxMDQgMCAwIDQ4LTcyIDBjLTEzLjMgMC0yNCAxMC43LTI0IDI0czEwLjcgMjQgMjQgMjRsNzIgMCAwIDQ4LTEwNCAwYy0xMy4zIDAtMjQgMTAuNy0yNCAyNHMxMC43IDI0IDI0IDI0bDEwNCAwIDAgNDgtNzIgMGMtMTMuMyAwLTI0IDEwLjctMjQgMjRzMTAuNyAyNCAyNCAyNGw3MiAwIDAgNDgtMTA0IDBjLTEzLjMgMC0yNCAxMC43LTI0IDI0czEwLjcgMjQgMjQgMjRsMTA0IDAgMCAyNGMwIDI2LjUtMjEuNSA0OC00OCA0OEw0OCA1NDRjLTI2LjUgMC00OC0yMS41LTQ4LTQ4TDAgMTZ6Il19LHkyZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJtYXAtbG9jYXRpb24tZG90IixpY29uOls2NDAsNTEyLFsibWFwLW1hcmtlZC1hbHQiXSwiZjVhMCIsIk01NzYgNDhjMC0xMS4xLTUuNy0yMS40LTE1LjItMjcuMnMtMjEuMi02LjQtMzEuMS0xLjRMNDEzLjUgNzcuNSAyMzQuMSAxNy42Yy04LjEtMi43LTE2LjgtMi4xLTI0LjQgMS43bC0xMjggNjRDNzAuOCA4OC44IDY0IDk5LjkgNjQgMTEybDAgMzUyYzAgMTEuMSA1LjcgMjEuNCAxNS4yIDI3LjJzMjEuMiA2LjQgMzEuMSAxLjRsMTE2LjEtNTguMSAxNzMuMyA1Ny44Yy00LjMtNi40LTguNS0xMy4xLTEyLjYtMTkuOS0xMS0xOC4zLTIxLjktMzkuMy0zMC02MS44bC0xMDEuMi0zMy43IDAtMjg0LjUgMTI4IDQyLjcgMCA5OS4zYzMxLTM1LjggNzctNTguNCAxMjgtNTguNCAyMi42IDAgNDQuMiA0LjQgNjQgMTIuNUw1NzYgNDh6TTUxMiAyMjRjLTY2LjMgMC0xMjAgNTIuOC0xMjAgMTE3LjkgMCA2OC45IDY0LjEgMTUwLjQgOTguNiAxODkuMyAxMS42IDEzIDMxLjMgMTMgNDIuOSAwIDM0LjUtMzguOSA5OC42LTEyMC40IDk4LjYtMTg5LjMgMC02NS4xLTUzLjctMTE3LjktMTIwLTExNy45ek00NzIgMzQ0YTQwIDQwIDAgMSAxIDgwIDAgNDAgNDAgMCAxIDEgLTgwIDB6Il19LEpwdD15MmUsdzJlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImhlYXJ0LWNyYWNrIixpY29uOls1MTIsNTEyLFsxMjgxNDgsImhlYXJ0LWJyb2tlbiJdLCJmN2E5IiwiTTEzMy4xIDMyYzE3LjMgMCAzNC4yIDMuNCA0OS45IDkuN2w1NC44IDg1LjItNzUuNCA3NS40Yy0xLjUgMS41LTIuNCAzLjYtMi4zIDUuOHMxIDQuMiAyLjYgNS43bDExMiAxMDRjMi45IDIuNyA3LjQgMi45IDEwLjUgLjNzMy44LTcgMS43LTEwLjRsLTYwLjQtOTguMSA5MC43LTc1LjZjMi42LTIuMSAzLjUtNS43IDIuNC04LjhMMjk2LjQgNjAuNkMzMTkuNiA0Mi4zIDM0OC42IDMyIDM3OC45IDMyIDQ1Mi40IDMyIDUxMiA5MS42IDUxMiAxNjUuMWwwIDIuNmMwIDExMi4yLTEzOS45IDI0Mi41LTIxMi45IDI5OC4yLTEyLjQgOS40LTI3LjYgMTQuMS00My4xIDE0LjFzLTMwLjgtNC42LTQzLjEtMTQuMUMxMzkuOSA0MTAuMiAwIDI3OS45IDAgMTY3LjdsMC0yLjZDMCA5MS42IDU5LjYgMzIgMTMzLjEgMzJ6Il19LEtwdD13MmUsZWh0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImNvdyIsaWNvbjpbNjQwLDUxMixbMTI4MDA0XSwiZjZjOCIsIk05NiAyMjRsMCAxOTJjMCAxNy43IDE0LjMgMzIgMzIgMzJsMzIgMGMxNy43IDAgMzItMTQuMyAzMi0zMmwwLTg4LjJjOS45IDYuNiAyMC42IDEyIDMyIDE2LjFsMCAyNC4yYzAgOC44IDcuMiAxNiAxNiAxNnMxNi03LjIgMTYtMTZsMC0xNi45YzUuMyAuNiAxMC42IC45IDE2IC45czEwLjctLjMgMTYtLjlsMCAxNi45YzAgOC44IDcuMiAxNiAxNiAxNnMxNi03LjIgMTYtMTZsMC0yNC4yYzExLjQtNCAyMi4xLTkuNCAzMi0xNi4xbDAgODguMmMwIDE3LjcgMTQuMyAzMiAzMiAzMmwzMiAwYzE3LjcgMCAzMi0xNC4zIDMyLTMybDAtMTYwIDMyIDMyIDAgNDkuNWMwIDkuNSAyLjggMTguNyA4LjEgMjYuNkw1MzAgNDI3YzguOCAxMy4xIDIzLjUgMjEgMzkuMyAyMSAyMi41IDAgNDEuOS0xNS45IDQ2LjMtMzhsMjAuMy0xMDEuNmMyLjYtMTMtLjMtMjYuNS04LTM3LjNsLTMuOS01LjUgMC04MS42YzAtMTMuMy0xMC43LTI0LTI0LTI0cy0yNCAxMC43LTI0IDI0bDAgMTQuNC01Mi45LTc0LjFDNDk2IDg2LjUgNDUyLjQgNjQgNDA1LjkgNjRMMTQ0IDY0Qzc3LjcgNjQgMjQgMTE3LjcgMjQgMTg0bDAgNTRDOS40IDI0OS44IDAgMjY3LjggMCAyODhsMCAxNy42YzAgOCA2LjQgMTQuNCAxNC40IDE0LjQgMzEuOCAwIDU3LjYtMjUuOCA1Ny42LTU3LjZMNzIgMTg0YzAtMjQuMyAxMi4xLTQ1LjggMzAuNS01OC45LTQuMiAxMC44LTYuNSAyMi42LTYuNSAzNC45bDAgNjR6TTU2MCAzMzZhMTYgMTYgMCAxIDEgMzIgMCAxNiAxNiAwIDEgMSAtMzIgMHpNMTY2LjYgMTY2LjZjLTQuMi00LjItNi42LTEwLTYuNi0xNiAwLTEyLjUgMTAuMS0yMi42IDIyLjYtMjIuNmwxNzguNyAwYzEyLjUgMCAyMi42IDEwLjEgMjIuNiAyMi42IDAgNi0yLjQgMTEuOC02LjYgMTZsLTIzLjQgMjMuNEMzMzIuMiAyMTEuOCAzMDIuNyAyMjQgMjcyIDIyNHMtNjAuMi0xMi4yLTgxLjktMzMuOWwtMjMuNC0yMy40eiJdfSxXZz17cHJlZml4OiJmYXMiLGljb25OYW1lOiJyc3MiLGljb246WzQ0OCw1MTIsWyJmZWVkIl0sImYwOWUiLCJNMCA2NGMwLTE3LjcgMTQuMy0zMiAzMi0zMiAyMjkuOCAwIDQxNiAxODYuMiA0MTYgNDE2IDAgMTcuNy0xNC4zIDMyLTMyIDMycy0zMi0xNC4zLTMyLTMyQzM4NCAyNTMuNiAyMjYuNCA5NiAzMiA5NiAxNC4zIDk2IDAgODEuNyAwIDY0ek0wIDQxNmE2NCA2NCAwIDEgMSAxMjggMCA2NCA2NCAwIDEgMSAtMTI4IDB6TTMyIDE2MGMxNTkuMSAwIDI4OCAxMjguOSAyODggMjg4IDAgMTcuNy0xNC4zIDMyLTMyIDMycy0zMi0xNC4zLTMyLTMyYzAtMTIzLjctMTAwLjMtMjI0LTIyNC0yMjQtMTcuNyAwLTMyLTE0LjMtMzItMzJzMTQuMy0zMiAzMi0zMnoiXX0sdGh0PVdnLEdnPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6Im1hZ25pZnlpbmctZ2xhc3MiLGljb246WzUxMiw1MTIsWzEyODI2OSwic2VhcmNoIl0sImYwMDIiLCJNNDE2IDIwOGMwIDQ1LjktMTQuOSA4OC4zLTQwIDEyMi43TDUwMi42IDQ1Ny40YzEyLjUgMTIuNSAxMi41IDMyLjggMCA0NS4zcy0zMi44IDEyLjUtNDUuMyAwTDMzMC43IDM3NkMyOTYuMyA0MDEuMSAyNTMuOSA0MTYgMjA4IDQxNiA5My4xIDQxNiAwIDMyMi45IDAgMjA4UzkzLjEgMCAyMDggMCA0MTYgOTMuMSA0MTYgMjA4ek0yMDggMzUyYTE0NCAxNDQgMCAxIDAgMC0yODggMTQ0IDE0NCAwIDEgMCAwIDI4OHoiXX0scmh0PUdnLGlodD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJjbG91ZC1tb29uIixpY29uOls2NDAsNTEyLFtdLCJmNmMzIiwiTTQ4MCAwYzE0LjYgMCAyOC44IDEuNiA0Mi41IDQuNyA3LjQgMS43IDEzIDcuOCAxMy45IDE1LjRzLTMgMTQuOS05LjggMTguM2MtNDUuNCAyMi42LTc2LjYgNjkuNS03Ni42IDEyMy42IDAgNzYuMiA2MS44IDEzOCAxMzggMTM4IDMuNyAwIDcuNC0uMSAxMS4xLS40IDcuNi0uNiAxNC43IDMuNiAxNy44IDEwLjZzMS41IDE1LjEtMy45IDIwLjRjLTI2IDI1LTU5LjEgNDIuNy05NS45IDQ5LjktMTEuMS0yNS4zLTMwLjItNDYuMy01NC4xLTU5LjgtNy42LTYzLjQtNjEuNi0xMTIuNi0xMjcuMS0xMTIuNi0xMS4yIDAtMjIuMSAxLjUtMzIuNSA0LjItNC44LTQuMi05LjktOC4yLTE1LjItMTEuOC0uMS0yLjgtLjItNS42LS4yLTguNCAwLTEwNiA4Ni0xOTIgMTkyLTE5MnptLS4xIDQzMS45YzAgNDQuMi0zNS44IDgwLTgwIDgwbC0yNzEuOSAwYy01MyAwLTk2LTQzLTk2LTk2IDAtNDcuNiAzNC42LTg3IDgwLTk0LjYtLjQtNTIuOCA0Mi45LTk3LjMgOTYtOTcuMyAzNC45IDAgNjUuNCAxOC42IDgyLjIgNDYuNCAxMy05LjEgMjguOC0xNC40IDQ1LjgtMTQuNCA0NC4yIDAgODAgMzUuOCA4MCA4MCAwIDUuOS0uNiAxMS43LTEuOSAxNy4yIDM3LjQgNi43IDY1LjggMzkuNCA2NS44IDc4Ljd6Il19LGFEPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImJveGVzLXN0YWNrZWQiLGljb246WzUxMiw1MTIsWzYyNjI1LCJib3hlcyIsImJveGVzLWFsdCJdLCJmNDY4IiwiTTIyNCAwbDAgNjRjMCA4LjggNy4yIDE2IDE2IDE2bDMyIDBjOC44IDAgMTYtNy4yIDE2LTE2bDAtNjQgMzIgMGMzNS4zIDAgNjQgMjguNyA2NCA2NGwwIDEyOGMwIDUuNS0uNyAxMC45LTIgMTZsLTI1MiAwYy0xLjMtNS4xLTItMTAuNS0yLTE2bDAtMTI4YzAtMzUuMyAyOC43LTY0IDY0LTY0bDMyIDB6bTk2IDUxMmMtMTEuMiAwLTIxLjgtMi45LTMxLTggOS41LTE2LjUgMTUtMzUuNiAxNS01NmwwLTEyOGMwLTIwLjQtNS41LTM5LjUtMTUtNTYgOS4yLTUuMSAxOS43LTggMzEtOGwzMiAwIDAgNjRjMCA4LjggNy4yIDE2IDE2IDE2bDMyIDBjOC44IDAgMTYtNy4yIDE2LTE2bDAtNjQgMzIgMGMzNS4zIDAgNjQgMjguNyA2NCA2NGwwIDEyOGMwIDM1LjMtMjguNyA2NC02NCA2NGwtMTI4IDB6TTAgMzIwYzAtMzUuMyAyOC43LTY0IDY0LTY0bDMyIDAgMCA2NGMwIDguOCA3LjIgMTYgMTYgMTZsMzIgMGM4LjggMCAxNi03LjIgMTYtMTZsMC02NCAzMiAwYzM1LjMgMCA2NCAyOC43IDY0IDY0bDAgMTI4YzAgMzUuMy0yOC43IDY0LTY0IDY0TDY0IDUxMmMtMzUuMyAwLTY0LTI4LjctNjQtNjRMMCAzMjB6Il19LGFodD1hRCxuaHQ9YUQsb2h0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImNvZGUtYnJhbmNoIixpY29uOls0NDgsNTEyLFtdLCJmMTI2IiwiTTgwIDEwNGEyNCAyNCAwIDEgMCAwLTQ4IDI0IDI0IDAgMSAwIDAgNDh6bTgwLTI0YzAgMzIuOC0xOS43IDYxLTQ4IDczLjNsMCA3MC43IDE3NiAwYzI2LjUgMCA0OC0yMS41IDQ4LTQ4bDAtMjIuN2MtMjguMy0xMi4zLTQ4LTQwLjUtNDgtNzMuMyAwLTQ0LjIgMzUuOC04MCA4MC04MHM4MCAzNS44IDgwIDgwYzAgMzIuOC0xOS43IDYxLTQ4IDczLjNsMCAyMi43YzAgNjEuOS01MC4xIDExMi0xMTIgMTEybC0xNzYgMCAwIDcwLjdjMjguMyAxMi4zIDQ4IDQwLjUgNDggNzMuMyAwIDQ0LjItMzUuOCA4MC04MCA4MFMwIDQ3Ni4yIDAgNDMyYzAtMzIuOCAxOS43LTYxIDQ4LTczLjNsMC0yMDUuM0MxOS43IDE0MSAwIDExMi44IDAgODAgMCAzNS44IDM1LjggMCA4MCAwczgwIDM1LjggODAgODB6bTIzMiAwYTI0IDI0IDAgMSAwIC00OCAwIDI0IDI0IDAgMSAwIDQ4IDB6TTgwIDQ1NmEyNCAyNCAwIDEgMCAwLTQ4IDI0IDI0IDAgMSAwIDAgNDh6Il19LE0yZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJiYW4iLGljb246WzUxMiw1MTIsWzEyODY4MywiY2FuY2VsIl0sImYwNWUiLCJNMzY3LjIgNDEyLjVMOTkuNSAxNDQuOGMtMjIuNCAzMS40LTM1LjUgNjkuOC0zNS41IDExMS4yIDAgMTA2IDg2IDE5MiAxOTIgMTkyIDQxLjUgMCA3OS45LTEzLjEgMTExLjItMzUuNXptNDUuMy00NS4zYzIyLjQtMzEuNCAzNS41LTY5LjggMzUuNS0xMTEuMiAwLTEwNi04Ni0xOTItMTkyLTE5Mi00MS41IDAtNzkuOSAxMy4xLTExMS4yIDM1LjVMNDEyLjUgMzY3LjJ6TTAgMjU2YTI1NiAyNTYgMCAxIDEgNTEyIDAgMjU2IDI1NiAwIDEgMSAtNTEyIDB6Il19LHNodD1NMmUsbGh0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6Imp1Zy1kZXRlcmdlbnQiLGljb246WzM4NCw1MTIsW10sImU1MTkiLCJNOTYgMjRjMC0xMy4zIDEwLjctMjQgMjQtMjRsODAgMGMxMy4zIDAgMjQgMTAuNyAyNCAyNGwwIDI0IDggMGMxMy4zIDAgMjQgMTAuNyAyNCAyNHMtMTAuNyAyNC0yNCAyNEw4OCA5NkM3NC43IDk2IDY0IDg1LjMgNjQgNzJTNzQuNyA0OCA4OCA0OGw4IDAgMC0yNHpNMCAyNTZjMC03MC43IDU3LjMtMTI4IDEyOC0xMjhsMTI4IDBjNzAuNyAwIDEyOCA1Ny4zIDEyOCAxMjhsMCAxOTJjMCAzNS4zLTI4LjcgNjQtNjQgNjRMNjQgNTEyYy0zNS4zIDAtNjQtMjguNy02NC02NEwwIDI1NnptMjU2IDBsMCA5NmMwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMybDAtOTZjMC0xNy43LTE0LjMtMzItMzItMzJzLTMyIDE0LjMtMzIgMzJ6Il19LGsyZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJyZXBseSIsaWNvbjpbNTEyLDUxMixbNjE3MTQsIm1haWwtcmVwbHkiXSwiZjNlNSIsIk0yMDQuMiAxOC40YzEyIDUgMTkuOCAxNi42IDE5LjggMjkuNmwwIDgwIDExMiAwYzk3LjIgMCAxNzYgNzguOCAxNzYgMTc2IDAgMTEzLjMtODEuNSAxNjMuOS0xMDAuMiAxNzQuMS0yLjUgMS40LTUuMyAxLjktOC4xIDEuOS0xMC45IDAtMTkuNy04LjktMTkuNy0xOS43IDAtNy41IDQuMy0xNC40IDkuOC0xOS41IDkuNC04LjggMjIuMi0yNi40IDIyLjItNTYuNyAwLTUzLTQzLTk2LTk2LTk2bC05NiAwIDAgODBjMCAxMi45LTcuOCAyNC42LTE5LjggMjkuNnMtMjUuNyAyLjItMzQuOS02LjlsLTE2MC0xNjBjLTEyLjUtMTIuNS0xMi41LTMyLjggMC00NS4zbDE2MC0xNjBjOS4yLTkuMiAyMi45LTExLjkgMzQuOS02Ljl6Il19LGNodD1rMmUsZGh0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InN1bi1wbGFudC13aWx0IixpY29uOls2NDAsNTEyLFtdLCJlNTdhIiwiTTE2MCAwYy01LjUgMC0xMC42IDIuOC0xMy41IDcuNGwtMS4xIDIuMS0yNC44IDU1LjQtNTYuNy0yMS43Yy01LjktMi4yLTEyLjUtLjgtMTcgMy43UzQxIDU4IDQzLjIgNjMuOWwyMS43IDU2LjctNTUuNCAyNC44QzMuNyAxNDggMCAxNTMuNyAwIDE2MHMzLjcgMTIgOS41IDE0LjZsNTUuNCAyNC44LTIxLjcgNTYuN2MtMi4yIDUuOS0uOCAxMi41IDMuNyAxN3MxMS4xIDUuOSAxNyAzLjdsNTYuNy0yMS43IDI0LjggNTUuNGMyLjYgNS44IDguMyA5LjUgMTQuNiA5LjVzMTItMy43IDE0LjYtOS41bDI0LjgtNTUuNCA1Ni44IDIxLjdjNS45IDIuMiAxMi41IC44IDE3LTMuN3M1LjktMTEuMSAzLjctMTdsLTIxLjctNTYuNyA1NS40LTI0LjhjNS44LTIuNiA5LjUtOC4zIDkuNS0xNC42cy0zLjctMTItOS41LTE0LjZsLTU1LjQtMjQuOCAyMS43LTU2LjcgLjctMi4yYzEuMi01LjMtLjQtMTAuOS00LjMtMTQuOHMtOS41LTUuNS0xNC44LTQuM2wtMi4yIC43LTU2LjggMjEuNy0yNC44LTU1LjRDMTcyIDMuNyAxNjYuMyAwIDE2MCAwem0wIDk2YTY0IDY0IDAgMSAxIDAgMTI4IDY0IDY0IDAgMSAxIDAtMTI4em0zMiA2NGEzMiAzMiAwIDEgMCAtNjQgMCAzMiAzMiAwIDEgMCA2NCAwem0zNzYgMTZsMCA1My40Yy0xNC44IDcuNy0yNCAyMy4xLTI0IDQ0LjYgMCAxNi44IDE2IDQ0IDM3LjQgNjcuMiA1LjggNi4yIDE1LjUgNi4yIDIxLjIgMCAyMS40LTIzLjMgMzcuNC01MC42IDM3LjQtNjcuMiAwLTIxLjUtOS4yLTM3LTI0LTQ0LjZsMC01My40YzAtNDQuMi0zNS44LTgwLTgwLTgwcy04MCAzNS44LTgwIDgwbDAgMjIuN2MtOS44LTQuMy0yMC42LTYuNy0zMi02LjctNDQuMiAwLTgwIDM1LjgtODAgODBsMCAyMS40Yy0xNC44IDcuNi0yNCAyMy4xLTI0IDQ0LjYgMCAxNi44IDE2IDQ0IDM3LjQgNjcuMiA1LjggNi4yIDE1LjUgNi4yIDIxLjIgMCAyMS40LTIzLjMgMzcuNC01MC42IDM3LjQtNjcuMiAwLTIxLjUtOS4yLTM3LTI0LTQ0LjZsMC0yMS40YzAtMTcuNyAxNC4zLTMyIDMyLTMyczMyIDE0LjMgMzIgMzJsMCAxNzYtNDI0IDBjLTE3LjcgMC0zMiAxNC4zLTMyIDMyczE0LjMgMzIgMzIgMzJsNTc2IDBjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJsLTEwNCAwIDAtMjcyYzAtMTcuNyAxNC4zLTMyIDMyLTMyczMyIDE0LjMgMzIgMzJ6Il19LHVodD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJiYWN0ZXJpdW0iLGljb246WzU3Niw1MTIsW10sImUwNWEiLCJNNDA4IDE2YzAtMTMuMy0xMC43LTI0LTI0LTI0UzM2MCAyLjcgMzYwIDE2bDAgMjMuNGMtMTMuOSA1LjMtMjYuOSAxMy41LTM4LjIgMjQuNUwzMDUgNDdjLTkuNC05LjQtMjQuNi05LjQtMzMuOSAwcy05LjQgMjQuNiAwIDMzLjlsMTYuOCAxNi44LTMwLjEgMzAuMS0xNi44LTE2LjhjLTkuNC05LjQtMjQuNi05LjQtMzMuOSAwcy05LjQgMjQuNiAwIDMzLjlsMTYuOCAxNi44Yy0xMCAxMC0yMCAyMC0zMC4xIDMwLjFMMTc3IDE3NWMtOS40LTkuNC0yNC42LTkuNC0zMy45IDBzLTkuNCAyNC42IDAgMzMuOWwxNi44IDE2LjgtMzAuMSAzMC4xLTE2LjgtMTYuOGMtOS40LTkuNC0yNC42LTkuNC0zMy45IDBzLTkuNCAyNC42IDAgMzMuOWwxNi44IDE2LjhjLTExIDExLjMtMTkuMiAyNC4zLTI0LjUgMzguMkw0OCAzMjhjLTEzLjMgMC0yNCAxMC43LTI0IDI0czEwLjcgMjQgMjQgMjRsMTYuMyAwYzEuMyAxOC4zIDcuMSAzNi40IDE3LjQgNTIuNEw3MSA0MzljLTkuNCA5LjQtOS40IDI0LjYgMCAzMy45czI0LjYgOS40IDMzLjkgMGwxMC42LTEwLjZjMTYgMTAuMyAzNC4xIDE2LjEgNTIuNCAxNy40bDAgMTYuM2MwIDEzLjMgMTAuNyAyNCAyNCAyNHMyNC0xMC43IDI0LTI0bDAtMjMuNGMxMy45LTUuMyAyNi45LTEzLjUgMzguMi0yNC41TDI3MSA0NjVjOS40IDkuNCAyNC42IDkuNCAzMy45IDBzOS40LTI0LjYgMC0zMy45bC0xNi44LTE2LjggMzAuMS0zMC4xIDE2LjggMTYuOGM5LjQgOS40IDI0LjYgOS40IDMzLjkgMHM5LjQtMjQuNiAwLTMzLjlsLTE2LjgtMTYuOGMxMC0xMCAyMC0yMCAzMC4xLTMwLjFMMzk5IDMzN2M5LjQgOS40IDI0LjYgOS40IDMzLjkgMHM5LjQtMjQuNiAwLTMzLjlsLTE2LjgtMTYuOCAzMC4xLTMwLjEgMTYuOCAxNi44YzkuNCA5LjQgMjQuNiA5LjQgMzMuOSAwczkuNC0yNC42IDAtMzMuOWwtMTYuOC0xNi44YzExLTExLjMgMTkuMi0yNC4zIDI0LjUtMzguMmwyMy40IDBjMTMuMyAwIDI0LTEwLjcgMjQtMjRzLTEwLjctMjQtMjQtMjRsLTE2LjMgMGMtMS4zLTE4LjMtNy4xLTM2LjQtMTcuNC01Mi40TDUwNSA3M2M5LjQtOS40IDkuNC0yNC42IDAtMzMuOXMtMjQuNi05LjQtMzMuOSAwTDQ2MC40IDQ5LjdjLTE2LTEwLjMtMzQuMS0xNi4xLTUyLjQtMTcuNEw0MDggMTZ6TTE2MCAzNTJhMzIgMzIgMCAxIDEgNjQgMCAzMiAzMiAwIDEgMSAtNjQgMHpNMjcyIDI0MGEzMiAzMiAwIDEgMSAwIDY0IDMyIDMyIDAgMSAxIDAtNjR6Il19LHBodD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJyZWNvcmQtdmlueWwiLGljb246WzUxMiw1MTIsW10sImY4ZDkiLCJNMCAyNTZhMjU2IDI1NiAwIDEgMSA1MTIgMCAyNTYgMjU2IDAgMSAxIC01MTIgMHptMjU2LTk2YTk2IDk2IDAgMSAxIDAgMTkyIDk2IDk2IDAgMSAxIDAtMTkyem0wIDI0MGExNDQgMTQ0IDAgMSAwIDAtMjg4IDE0NCAxNDQgMCAxIDAgMCAyODh6bTAtMTEyYTMyIDMyIDAgMSAwIDAtNjQgMzIgMzIgMCAxIDAgMCA2NHoiXX0sUzJlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImZsb3BweS1kaXNrIixpY29uOls0NDgsNTEyLFsxMjgxOTAsMTI4NDI2LCJzYXZlIl0sImYwYzciLCJNNjQgMzJDMjguNyAzMiAwIDYwLjcgMCA5NkwwIDQxNmMwIDM1LjMgMjguNyA2NCA2NCA2NGwzMjAgMGMzNS4zIDAgNjQtMjguNyA2NC02NGwwLTI0Mi43YzAtMTctNi43LTMzLjMtMTguNy00NS4zTDM1MiA1MC43QzM0MCAzOC43IDMyMy43IDMyIDMwNi43IDMyTDY0IDMyem0zMiA5NmMwLTE3LjcgMTQuMy0zMiAzMi0zMmwxNjAgMGMxNy43IDAgMzIgMTQuMyAzMiAzMmwwIDY0YzAgMTcuNy0xNC4zIDMyLTMyIDMybC0xNjAgMGMtMTcuNyAwLTMyLTE0LjMtMzItMzJsMC02NHpNMjI0IDI4OGE2NCA2NCAwIDEgMSAwIDEyOCA2NCA2NCAwIDEgMSAwLTEyOHoiXX0saGh0PVMyZSxmaHQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToidG9pbGV0cy1wb3J0YWJsZSIsaWNvbjpbNTEyLDUxMixbXSwiZTU4NCIsIk02NCAwbDk2IDBjMzUuMyAwIDY0IDI4LjcgNjQgNjRsMCAxNi0yMjQgMCAwLTE2QzAgMjguNyAyOC43IDAgNjQgMHpNMCAxMjhsMjI0IDAgMCAzNjBjMCAxMy4zLTEwLjcgMjQtMjQgMjRzLTI0LTEwLjctMjQtMjRsMC04LTEyOCAwIDAgOGMwIDEzLjMtMTAuNyAyNC0yNCAyNFMwIDUwMS4zIDAgNDg4TDAgMTI4ek0xMjggMjQ4bDAgNDhjMCAxMy4zIDEwLjcgMjQgMjQgMjRsMjQgMCAwLTk2LTI0IDBjLTEzLjMgMC0yNCAxMC43LTI0IDI0ek0zNTIgMGw5NiAwYzM1LjMgMCA2NCAyOC43IDY0IDY0bDAgMTYtMjI0IDAgMC0xNmMwLTM1LjMgMjguNy02NCA2NC02NHpNMjg4IDEyOGwyMjQgMCAwIDM2MGMwIDEzLjMtMTAuNyAyNC0yNCAyNHMtMjQtMTAuNy0yNC0yNGwwLTgtMTI4IDAgMCA4YzAgMTMuMy0xMC43IDI0LTI0IDI0cy0yNC0xMC43LTI0LTI0bDAtMzYwek00MTYgMjQ4bDAgNDhjMCAxMy4zIDEwLjcgMjQgMjQgMjRsMjQgMCAwLTk2LTI0IDBjLTEzLjMgMC0yNCAxMC43LTI0IDI0eiJdfSxtaHQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToibyIsaWNvbjpbNDQ4LDUxMixbMTExXSwiNGYiLCJNMjI0IDk2YTE2MCAxNjAgMCAxIDAgMCAzMjAgMTYwIDE2MCAwIDEgMCAwLTMyMHpNNDQ4IDI1NmEyMjQgMjI0IDAgMSAxIC00NDggMCAyMjQgMjI0IDAgMSAxIDQ0OCAweiJdfSxnaHQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToicGFsZXR0ZSIsaWNvbjpbNTEyLDUxMixbMTI3OTEyXSwiZjUzZiIsIk01MTIgMjU2YzAgLjkgMCAxLjggMCAyLjctLjQgMzYuNS0zMy42IDYxLjMtNzAuMSA2MS4zTDM0NCAzMjBjLTI2LjUgMC00OCAyMS41LTQ4IDQ4IDAgMy40IC40IDYuNyAxIDkuOSAyLjEgMTAuMiA2LjUgMjAgMTAuOCAyOS45IDYuMSAxMy44IDEyLjEgMjcuNSAxMi4xIDQyIDAgMzEuOC0yMS42IDYwLjctNTMuNCA2Mi0zLjUgLjEtNyAuMi0xMC42IC4yLTE0MS40IDAtMjU2LTExNC42LTI1Ni0yNTZTMTE0LjYgMCAyNTYgMCA1MTIgMTE0LjYgNTEyIDI1NnpNMTI4IDI4OGEzMiAzMiAwIDEgMCAtNjQgMCAzMiAzMiAwIDEgMCA2NCAwem0wLTk2YTMyIDMyIDAgMSAwIDAtNjQgMzIgMzIgMCAxIDAgMCA2NHpNMjg4IDk2YTMyIDMyIDAgMSAwIC02NCAwIDMyIDMyIDAgMSAwIDY0IDB6bTk2IDk2YTMyIDMyIDAgMSAwIDAtNjQgMzIgMzIgMCAxIDAgMCA2NHoiXX0sYmh0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InVubG9jayIsaWNvbjpbMzg0LDUxMixbMTI4Mjc1XSwiZjA5YyIsIk0xMjggOTZjMC0zNS4zIDI4LjctNjQgNjQtNjQgMzEuNyAwIDU4IDIzIDYzLjEgNTMuMyAyLjkgMTcuNCAxOS40IDI5LjIgMzYuOSAyNi4zczI5LjItMTkuNCAyNi4zLTM2LjlDMzA4LjEgMTQuMSAyNTUuNS0zMiAxOTItMzIgMTIxLjMtMzIgNjQgMjUuMyA2NCA5NmwwIDY0Yy0zNS4zIDAtNjQgMjguNy02NCA2NEwwIDQ0OGMwIDM1LjMgMjguNyA2NCA2NCA2NGwyNTYgMGMzNS4zIDAgNjQtMjguNyA2NC02NGwwLTIyNGMwLTM1LjMtMjguNy02NC02NC02NGwtMTkyIDAgMC02NHoiXX0sejJlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImVhci1saXN0ZW4iLGljb246WzUxMiw1MTIsWyJhc3Npc3RpdmUtbGlzdGVuaW5nLXN5c3RlbXMiXSwiZjJhMiIsIk0zNzkuNiAuM2MtOC45IDEuMi0xNy4yIDYuMi0yMi40IDE0LjEtNi44IDEwLjQtNyAyNC4xLS40IDM0LjYgNS42IDguOSAxNS41IDEyLjcgMjMuOCAxOC41IDcuNSA1LjIgMTcuNiAxMy4yIDI3LjcgMjQuMiAyMCAyMS43IDM5LjUgNTQuMyAzOS41IDEwMC4zIDAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJjMC02Ni0yOC41LTExMy40LTU2LjUtMTQzLjctMTMuOS0xNS4xLTI3LjgtMjYuMS0zOC4zLTMzLjMtMTEtNy42LTIzLjUtMTYuNi0zNy42LTE0Ljd6TTI0MCAxMjhjLTU3LjYgMC0xMDUuMSA0My42LTExMS4zIDk5LjUtMS45IDE3LjYtMTcuOCAzMC4yLTM1LjMgMjguM3MtMzAuMi0xNy44LTI4LjMtMzUuM2M5LjctODggODQuMy0xNTYuNSAxNzQuOS0xNTYuNSA5Ny4yIDAgMTc2IDc4LjggMTc2IDE3NiAwIDQ2LTE3LjcgODcuOS00Ni42IDExOS4zLTEyIDEzLTE3LjQgMjQuOC0xNy40IDM0LjdsMCA2LjFjMCA2MS45LTUwLjEgMTEyLTExMiAxMTItMTcuNyAwLTMyLTE0LjMtMzItMzJzMTQuMy0zMiAzMi0zMmMyNi41IDAgNDgtMjEuNSA0OC00OGwwLTYuMWMwLTMyLjkgMTcuNC01OS42IDM0LjQtNzggMTguNC0yMCAyOS42LTQ2LjYgMjkuNi03NS45IDAtNjEuOS01MC4xLTExMi0xMTItMTEyek0wIDQ4MGEzMiAzMiAwIDEgMSA2NCAwIDMyIDMyIDAgMSAxIC02NCAwem0xNjAtOTZhMzIgMzIgMCAxIDAgMC02NCAzMiAzMiAwIDEgMCAwIDY0ek04Ni42IDM2MS40Yy0xMi41LTEyLjUtMzIuOC0xMi41LTQ1LjMgMHMtMTIuNSAzMi44IDAgNDUuM2w2NCA2NGMxMi41IDEyLjUgMzIuOCAxMi41IDQ1LjMgMHMxMi41LTMyLjggMC00NS4zbC02NC02NHpNMjQwIDIwOGMtMTcuNyAwLTMyIDE0LjMtMzIgMzIgMCAxMy4zLTEwLjcgMjQtMjQgMjRzLTI0LTEwLjctMjQtMjRjMC00NC4yIDM1LjgtODAgODAtODBzODAgMzUuOCA4MCA4MGMwIDEzLjMtMTAuNyAyNC0yNCAyNHMtMjQtMTAuNy0yNC0yNGMwLTE3LjctMTQuMy0zMi0zMi0zMnoiXX0sdmh0PXoyZSx4aHQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiY29kZS1wdWxsLXJlcXVlc3QiLGljb246WzUxMiw1MTIsW10sImUxM2MiLCJNMzI4IDI0YzAtOS43LTUuOC0xOC41LTE0LjgtMjIuMlMyOTMuOSAuMiAyODcgN0wyMzEgNjNjLTkuNCA5LjQtOS40IDI0LjYgMCAzMy45bDU2IDU2YzYuOSA2LjkgMTcuMiA4LjkgMjYuMiA1LjJTMzI4IDE0NS43IDMyOCAxMzZsMC0yNCAyNCAwYzE3LjcgMCAzMiAxNC4zIDMyIDMybDAgMjE0LjdjLTI4LjMgMTIuMy00OCA0MC41LTQ4IDczLjMgMCA0NC4yIDM1LjggODAgODAgODBzODAtMzUuOCA4MC04MGMwLTMyLjgtMTkuNy02MS00OC03My4zTDQ0OCAxNDRjMC01My00My05Ni05Ni05NmwtMjQgMCAwLTI0ek03MiA4MGEyNCAyNCAwIDEgMSA0OCAwIDI0IDI0IDAgMSAxIC00OCAwem01NiA3My4zYzI4LjMtMTIuMyA0OC00MC41IDQ4LTczLjMgMC00NC4yLTM1LjgtODAtODAtODBTMTYgMzUuOCAxNiA4MGMwIDMyLjggMTkuNyA2MSA0OCA3My4zbDAgMjA1LjNjLTI4LjMgMTIuMy00OCA0MC41LTQ4IDczLjMgMCA0NC4yIDM1LjggODAgODAgODBzODAtMzUuOCA4MC04MGMwLTMyLjgtMTkuNy02MS00OC03My4zbDAtMjA1LjN6TTcyIDQzMmEyNCAyNCAwIDEgMSA0OCAwIDI0IDI0IDAgMSAxIC00OCAwem0zNDQtMjRhMjQgMjQgMCAxIDEgMCA0OCAyNCAyNCAwIDEgMSAwLTQ4eiJdfSx5aHQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToia2V5IixpY29uOls1MTIsNTEyLFsxMjgyNzNdLCJmMDg0IiwiTTMzNiAzNTJjOTcuMiAwIDE3Ni03OC44IDE3Ni0xNzZTNDMzLjIgMCAzMzYgMCAxNjAgNzguOCAxNjAgMTc2YzAgMTguNyAyLjkgMzYuOCA4LjMgNTMuN0w3IDM5MWMtNC41IDQuNS03IDEwLjYtNyAxN2wwIDgwYzAgMTMuMyAxMC43IDI0IDI0IDI0bDgwIDBjMTMuMyAwIDI0LTEwLjcgMjQtMjRsMC00MCA0MCAwYzEzLjMgMCAyNC0xMC43IDI0LTI0bDAtNDAgNDAgMGM2LjQgMCAxMi41LTIuNSAxNy03bDMzLjMtMzMuM2MxNi45IDUuNCAzNSA4LjMgNTMuNyA4LjN6TTM3NiA5NmE0MCA0MCAwIDEgMSAwIDgwIDQwIDQwIDAgMSAxIDAtODB6Il19LHdodD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJza3VsbCIsaWNvbjpbNTEyLDUxMixbMTI4MTI4XSwiZjU0YyIsIk00MTYgNDI3LjRjNTguNS00NCA5Ni0xMTEuNiA5Ni0xODcuNCAwLTEzMi41LTExNC42LTI0MC0yNTYtMjQwUzAgMTA3LjUgMCAyNDBjMCA3NS44IDM3LjUgMTQzLjQgOTYgMTg3LjRMOTYgNDY0YzAgMjYuNSAyMS41IDQ4IDQ4IDQ4bDMyIDAgMC00MGMwLTEzLjMgMTAuNy0yNCAyNC0yNHMyNCAxMC43IDI0IDI0bDAgNDAgNjQgMCAwLTQwYzAtMTMuMyAxMC43LTI0IDI0LTI0czI0IDEwLjcgMjQgMjRsMCA0MCAzMiAwYzI2LjUgMCA0OC0yMS41IDQ4LTQ4bDAtMzYuNnpNOTYgMjU2YTY0IDY0IDAgMSAxIDEyOCAwIDY0IDY0IDAgMSAxIC0xMjggMHptMjU2LTY0YTY0IDY0IDAgMSAxIDAgMTI4IDY0IDY0IDAgMSAxIDAtMTI4eiJdfSxDMmU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToibWFycy1zdHJva2UtdXAiLGljb246WzM4NCw1MTIsWzk4OTYsIm1hcnMtc3Ryb2tlLXYiXSwiZjIyYSIsIk0xOTIgMjU2YTExMiAxMTIgMCAxIDAgMCAyMjQgMTEyIDExMiAwIDEgMCAwLTIyNHpNMTYgMzY4YzAtODYuMyA2Mi4xLTE1OC4xIDE0NC4xLTE3My4xLS4xLS45LS4xLTEuOS0uMS0yLjlsMC0xNi0zMiAwYy0xNy43IDAtMzItMTQuMy0zMi0zMnMxNC4zLTMyIDMyLTMybDMyIDAgMC02MS40LTI4IDIyLjRjLTEzLjggMTEtMzMuOSA4LjgtNDUtNXMtOC44LTMzLjkgNS00NWw4MC02NGMxMS43LTkuMyAyOC4zLTkuMyA0MCAwbDgwIDY0YzEzLjggMTEgMTYgMzEuMiA1IDQ1cy0zMS4yIDE2LTQ1IDVsLTI4LTIyLjQgMCA2MS40IDMyIDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJsLTMyIDAgMCAxNmMwIDEgMCAxLjktLjEgMi45IDgyIDE1IDE0NC4xIDg2LjggMTQ0LjEgMTczLjEgMCA5Ny4yLTc4LjggMTc2LTE3NiAxNzZTMTYgNDY1LjIgMTYgMzY4eiJdfSxNaHQ9QzJlLFQyZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJmaXJlLWZsYW1lLXNpbXBsZSIsaWNvbjpbMzg0LDUxMixbImJ1cm4iXSwiZjQ2YSIsIk0zNzIuNSAyNTYuNWwtLjctMS45QzMzNy44IDE2MC44IDI4MiA3Ni41IDIwOS4xIDguNWwtMy4zLTNDMjAyLjEgMiAxOTcuMSAwIDE5MiAwcy0xMC4xIDItMTMuOCA1LjVsLTMuMyAzQzEwMiA3Ni41IDQ2LjIgMTYwLjggMTIuMiAyNTQuNmwtLjcgMS45QzMuOSAyNzcuMyAwIDI5OS40IDAgMzIxLjYgMCA0MjYuNyA4Ni44IDUxMiAxOTIgNTEyczE5Mi04NS4zIDE5Mi0xOTAuNGMwLTIyLjItMy45LTQ0LjItMTEuNS02NS4xem0tOTAuOCA0OS41YzQuMSA5LjMgNi4yIDE5LjQgNi4yIDI5LjUgMCA1My00MyA5Ni41LTk2IDk2LjVzLTk2LTQzLjUtOTYtOTYuNWMwLTEwLjEgMi4xLTIwLjMgNi4yLTI5LjVsMS45LTQuM2MxNS44LTM1LjQgMzcuOS02Ny43IDY1LjMtOTUuMWw4LjktOC45YzMuNi0zLjYgOC41LTUuNiAxMy42LTUuNnMxMCAyIDEzLjYgNS42bDguOSA4LjljMjcuNCAyNy40IDQ5LjYgNTkuNyA2NS4zIDk1LjFsMS45IDQuM3oiXX0sa2h0PVQyZSxTaHQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToidHJlZSIsaWNvbjpbNDQ4LDUxMixbMTI3Nzk0XSwiZjFiYiIsIk0yMjQtMzJjNyAwIDEzLjcgMy4xIDE4LjMgOC41bDEzNiAxNjBjNi4xIDcuMSA3LjQgMTcuMSAzLjUgMjUuNlMzNjkuNCAxNzYgMzYwIDE3NmwtMjQuOSAwIDc1LjIgODguNWM2LjEgNy4xIDcuNCAxNy4xIDMuNSAyNS42UzQwMS40IDMwNCAzOTIgMzA0bC0zOC41IDAgODguOCAxMDQuNWM2LjEgNy4xIDcuNCAxNy4xIDMuNSAyNS42UzQzMy40IDQ0OCA0MjQgNDQ4bC0xNjggMCAwIDY0YzAgMTcuNy0xNC4zIDMyLTMyIDMycy0zMi0xNC4zLTMyLTMybDAtNjQtMTY4IDBjLTkuNCAwLTE3LjktNS40LTIxLjgtMTMuOXMtMi42LTE4LjUgMy41LTI1LjZMOTQuNSAzMDQgNTYgMzA0Yy05LjQgMC0xNy45LTUuNC0yMS44LTEzLjlzLTIuNi0xOC41IDMuNS0yNS42TDExMi45IDE3NiA4OCAxNzZjLTkuNCAwLTE3LjktNS40LTIxLjgtMTMuOXMtMi42LTE4LjUgMy41LTI1LjZsMTM2LTE2MEMyMTAuMy0yOC45IDIxNy0zMiAyMjQtMzJ6Il19LHpodD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJzbW9nIixpY29uOls1NzYsNTEyLFtdLCJmNzVmIiwiTTE3NiAyODhDOTYuNSAyODggMzIgMjIzLjUgMzIgMTQ0Uzk2LjUgMCAxNzYgMGMyNy4yIDAgNTIuNiA3LjUgNzQuMyAyMC42IDIwLjEtMTMgNDQtMjAuNiA2OS43LTIwLjYgNDcuNCAwIDg4LjcgMjUuNyAxMTAuOSA2NGwxLjEgMGM2MS45IDAgMTEyIDUwLjEgMTEyIDExMiAwIDYwLjMtNDcuNiAxMDkuNC0xMDcuMiAxMTEuOS0yMi42IDIwLTUyLjMgMzIuMS04NC44IDMyLjEtMzIuNSAwLTYyLjEtMTIuMS04NC43LTMyTDE3NiAyODh6TTUxMiAzOTJjMCAxMy4zLTEwLjcgMjQtMjQgMjRMMjQgNDE2Yy0xMy4zIDAtMjQtMTAuNy0yNC0yNHMxMC43LTI0IDI0LTI0bDQ2NCAwYzEzLjMgMCAyNCAxMC43IDI0IDI0ek04OCA0NjRsODAgMGMxMy4zIDAgMjQgMTAuNyAyNCAyNHMtMTAuNyAyNC0yNCAyNGwtODAgMGMtMTMuMyAwLTI0LTEwLjctMjQtMjRzMTAuNy0yNCAyNC0yNHptMTc2IDBsMjg4IDBjMTMuMyAwIDI0IDEwLjcgMjQgMjRzLTEwLjcgMjQtMjQgMjRsLTI4OCAwYy0xMy4zIDAtMjQtMTAuNy0yNC0yNHMxMC43LTI0IDI0LTI0eiJdfSxDaHQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToicyIsaWNvbjpbMzIwLDUxMixbMTE1XSwiNTMiLCJNMCAxNTcuNUMwIDg4LjIgNTYuMiAzMiAxMjUuNSAzMkwyNzIgMzJjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJMMTI1LjUgOTZjLTM0IDAtNjEuNSAyNy41LTYxLjUgNjEuNSAwIDMxIDIzLjEgNTcuMiA1My45IDYxTDIxMC4xIDIzMEMyNzIuOSAyMzcuOSAzMjAgMjkxLjIgMzIwIDM1NC41IDMyMCA0MjMuOCAyNjMuOCA0ODAgMTk0LjUgNDgwTDQ4IDQ4MGMtMTcuNyAwLTMyLTE0LjMtMzItMzJzMTQuMy0zMiAzMi0zMmwxNDYuNSAwYzM0IDAgNjEuNS0yNy41IDYxLjUtNjEuNSAwLTMxLTIzLjEtNTcuMi01My45LTYxTDEwOS45IDI4MkM0Ny4xIDI3NC4xIDAgMjIwLjggMCAxNTcuNXoiXX0sVGh0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImplZGkiLGljb246WzU3Niw1MTIsW10sImY2NjkiLCJNMjQ2IDMxNS43bC0yMS4yLTMxLjljLTIuMS0zLjItMS43LTcuNCAxLTEwLjFzNi45LTMuMSAxMC4xLTFsMjkuNSAxOS43YzIuMSAxLjQgNC45LS4xIDUtMi42TDI3OS43IDhjLjEtNC41IDMuOC04IDguMy04czguMSAzLjUgOC4zIDhsOS40IDI4MS45Yy4xIDIuNSAyLjkgMy45IDUgMi42bDI5LjUtMTkuN2MzLjItMi4xIDcuNC0xLjcgMTAuMSAxczMuMSA2LjkgMSAxMC4xTDMzMCAzMTUuN2MtMS4zIDEuOS0uMiA0LjUgMiA0LjlsMzcuNiA3LjVjMy43IC43IDYuNCA0IDYuNCA3LjhzLTIuNyA3LjEtNi40IDcuOEwzMzIgMzUxLjRjLTIuMiAuNC0zLjMgMy0yIDQuOWwyMS4yIDMxLjljMi4xIDMuMiAxLjcgNy40LTEgMTAuMXMtNi45IDMuMS0xMC4xIDFsLTI2LjMtMTcuNmMtMi4yLTEuNC01LjEgLjItNSAyLjhsMi4xIDYxLjVjNTkuOC0xMC44IDEwNS4xLTYzLjEgMTA1LjEtMTI2IDAtMzctMTUuNy03MC40LTQwLjgtOTMuNy03LTYuNS02LjUtMTguNiAxLTI0LjQgMzQtMjYuMyA1NS44LTY3LjUgNTUuOC0xMTMuOSAwLTE2LjgtMi45LTMzLTguMi00OC00LjYtMTMgMTAuMi0zMCAyMS40LTIyIDUzLjUgMzggOTIuNyA5NC44IDEwNy44IDE2MC43IC41IDIuMS0uMiA0LjMtMS43IDUuOWwtMjguNCAyOC40Yy00IDQtMS4yIDEwLjkgNC41IDEwLjlsMjYgMGMzLjQgMCA2LjIgMi42IDYuMyA2IC4xIDMuMyAuMiA2LjYgLjIgMTAgMCAxNy41LTEuNyAzNC43LTQuOCA1MS4zLS4yIDEuMi0uOSAyLjQtMS43IDMuM2wtNDYuNSA0Ni41Yy00IDQtMS4yIDEwLjkgNC41IDEwLjlsMTQuNiAwYzQuNiAwIDcuNyA0LjggNS43IDktNDQuNSA4OS41LTEzNi45IDE1MS0yNDMuNyAxNTFTODguOCA0NTAuNSA0NC4zIDM2MWMtMi4xLTQuMiAxLTkgNS43LTlsMTQuNiAwYzUuNyAwIDguNi02LjkgNC41LTEwLjlMMjIuNiAyOTQuNmMtLjktLjktMS41LTItMS43LTMuMy0zLjItMTYuNi00LjgtMzMuOC00LjgtNTEuMyAwLTMuMyAuMS02LjcgLjItMTAgLjEtMy40IDIuOS02IDYuMy02bDI2IDBjNS43IDAgOC42LTYuOSA0LjUtMTAuOUwyNC42IDE4NC42Yy0xLjUtMS41LTIuMi0zLjgtMS43LTUuOSAxNS4yLTY2IDU0LjMtMTIyLjggMTA3LjgtMTYwLjcgMTEuMy04IDI2IDguOSAyMS40IDIyLTUuMyAxNS04LjIgMzEuMi04LjIgNDggMCA0Ni4zIDIxLjkgODcuNSA1NS44IDExMy45IDcuNSA1LjggOCAxNy45IDEgMjQuNC0yNS4xIDIzLjQtNDAuOCA1Ni43LTQwLjggOTMuNyAwIDYyLjkgNDUuNCAxMTUuMiAxMDUuMSAxMjZsMi4xLTYxLjVjLjEtMi42LTIuOC00LjItNS0yLjhsLTI2LjMgMTcuNmMtMy4yIDIuMS03LjQgMS43LTEwLjEtMXMtMy4xLTYuOS0xLTEwLjFMMjQ2IDM1Ni4zYzEuMy0xLjkgLjItNC41LTItNC45bC0zNy42LTcuNWMtMy43LS43LTYuNC00LTYuNC03LjhzMi43LTcuMSA2LjQtNy44bDM3LjYtNy41YzIuMi0uNCAzLjMtMyAyLTQuOXoiXX0sXzJlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InBlcnNvbi1oaWtpbmciLGljb246WzQ0OCw1MTIsWyJoaWtpbmciXSwiZjZlYyIsIk0xOTItMzJhNTYgNTYgMCAxIDEgMCAxMTIgNTYgNTYgMCAxIDEgMC0xMTJ6TTEyOCAxNzMuNmMwLTM0IDI3LjYtNjEuNiA2MS42LTYxLjYgMjAuMyAwIDM5LjcgOC4xIDU0IDIyLjRsNDguMiA0OC4yYzYgNiAxNC4xIDkuNCAyMi42IDkuNGwzNy41IDBjNS44IDAgMTEuMyAxLjYgMTYgNC4zbDAtNzYuM2MwLTEzLjMgMTAuNy0yNCAyNC0yNHMyNCAxMC43IDI0IDI0bDAgNDAwYzAgMTMuMy0xMC43IDI0LTI0IDI0cy0yNC0xMC43LTI0LTI0bDAtMjY4LjNjLTQuNyAyLjctMTAuMiA0LjMtMTYgNC4zbC0zNy41IDBjLTI1LjUgMC00OS45LTEwLjEtNjcuOS0yOC4xbC02LjYtNi42IDAgMTA5LjIgMzQuNSAyOS42YzE3LjcgMTUuMiAyOS4zIDM2LjIgMzIuNiA1OS4zbDEyLjYgODguMWMyLjUgMTcuNS05LjcgMzMuNy0yNy4yIDM2LjJzLTMzLjctOS43LTM2LjItMjcuMmwtMTIuNi04OC4xYy0xLjEtNy43LTUtMTQuNy0xMC45LTE5LjhsLTcxLjQtNjEuMmMtMjEuMy0xOC4yLTMzLjUtNDQuOS0zMy41LTcyLjlsMC0xMDF6bS00LjggMjAzLjdjMi4zIDIuMyA0LjcgNC40IDcuMSA2LjVsNDQuOSAzOC41Yy0zLjYgOC40LTguNSAxNi4zLTE0LjQgMjMuNEw4OC42IDUzMi41Yy0xMS4zIDEzLjYtMzEuNSAxNS40LTQ1LjEgNC4xcy0xNS40LTMxLjUtNC4xLTQ1LjFsNzIuMy04Ni43YzIuNi0zLjEgNC41LTYuNiA1LjgtMTAuNGw1LjctMTcuMXpNMCAxNjBjMC0zNS4zIDI4LjctNjQgNjQtNjQgMTcuNyAwIDMyIDE0LjMgMzIgMzJsMCAxMjhjMCAxNy43LTE0LjMgMzItMzIgMzJsLTMyIDBjLTE3LjcgMC0zMi0xNC4zLTMyLTMybDAtOTZ6Il19LF9odD1fMmUsTGh0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImFycm93cy11cC10by1saW5lIixpY29uOls0NDgsNTEyLFtdLCJlNGMyIiwiTTMyIDBDMTQuMyAwIDAgMTQuMyAwIDMyUzE0LjMgNjQgMzIgNjRsMzg0IDBjMTcuNyAwIDMyLTE0LjMgMzItMzJTNDMzLjcgMCA0MTYgMEwzMiAwem04Ni42IDEzNy40Yy0xMi41LTEyLjUtMzIuOC0xMi41LTQ1LjMgMGwtNjQgNjRjLTEyLjUgMTIuNS0xMi41IDMyLjggMCA0NS4zczMyLjggMTIuNSA0NS4zIDBMNjQgMjM3LjMgNjQgNDgwYzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJsMC0yNDIuNyA5LjQgOS40YzEyLjUgMTIuNSAzMi44IDEyLjUgNDUuMyAwczEyLjUtMzIuOCAwLTQ1LjNsLTY0LTY0em0yNTYgMGMtMTIuNS0xMi41LTMyLjgtMTIuNS00NS4zIDBsLTY0IDY0Yy0xMi41IDEyLjUtMTIuNSAzMi44IDAgNDUuM3MzMi44IDEyLjUgNDUuMyAwbDkuNC05LjQgMCAyNDIuN2MwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMybDAtMjQyLjcgOS40IDkuNGMxMi41IDEyLjUgMzIuOCAxMi41IDQ1LjMgMHMxMi41LTMyLjggMC00NS4zbC02NC02NHoiXX0sQWh0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6Im1hcnMtZG91YmxlIixpY29uOls2NDAsNTEyLFs5ODkxXSwiZjIyNyIsIk0yODggMzJjMC0xNy43IDE0LjMtMzIgMzItMzJMNDQ4IDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJsMCAxMjhjMCAxNy43LTE0LjMgMzItMzIgMzJzLTMyLTE0LjMtMzItMzJsMC01MC43LTk1IDk1YzE5LjUgMjguNCAzMSA2Mi43IDMxIDk5LjggMCA5Ny4yLTc4LjggMTc2LTE3NiAxNzZTMCA0MDEuMiAwIDMwNCA3OC44IDEyOCAxNzYgMTI4YzM3IDAgNzEuNCAxMS40IDk5LjggMzFsOTUtOTUtNTAuNyAwYy0xNy43IDAtMzItMTQuMy0zMi0zMnpNMTc2IDQxNmExMTIgMTEyIDAgMSAwIDAtMjI0IDExMiAxMTIgMCAxIDAgMCAyMjR6bTE2MCA2NGMtNi44IDAtMTMuNC0uNC0yMC0xLjEgMjMuNi0xOC45IDQzLjMtNDIuNSA1Ny42LTY5LjQgNDMuMy0xNS41IDc0LjQtNTYuOSA3NC40LTEwNS41IDAtMjUuMi04LjMtNDguNS0yMi40LTY3LjIgNy4xIDIuMSAxNC42IDMuMiAyMi40IDMuMiAxNyAwIDMyLjctNS4zIDQ1LjctMTQuMyAxMS43IDIzLjYgMTguMyA1MC4yIDE4LjMgNzguMyAwIDk3LjItNzguOCAxNzYtMTc2IDE3NnpNNTI4IDE1Ny4zTDUyOCAzMmMwLTExLjQtMi40LTIyLjItNi43LTMyTDYwOCAwYzE3LjcgMCAzMiAxNC4zIDMyIDMybDAgMTI4YzAgMTcuNy0xNC4zIDMyLTMyIDMycy0zMi0xNC4zLTMyLTMybDAtNTAuNy00OCA0OHoiXX0sRGh0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InRoZXJtb21ldGVyIixpY29uOls1MTIsNTEyLFtdLCJmNDkxIiwiTTk2IDM4Mi4xbDAtODguOGMwLTE0LjkgNS45LTI5LjEgMTYuNC0zOS42bDIxLjctMjEuNyA0MSA0MWM5LjQgOS40IDI0LjYgOS40IDMzLjkgMHM5LjQtMjQuNiAwLTMzLjlsLTQxLTQxIDQ2LjEtNDYuMSA0MSA0MWM5LjQgOS40IDI0LjYgOS40IDMzLjkgMHM5LjQtMjQuNiAwLTMzLjlsLTQxLTQxIDQ2LjEtNDYuMSA0MSA0MWM5LjQgOS40IDI0LjYgOS40IDMzLjkgMHM5LjQtMjQuNiAwLTMzLjlsLTQxLTQxIDcuOC03LjhjMTkuNC0xOS40IDQ1LjYtMzAuMiA3My0zMC4yIDU3IDAgMTAzLjIgNDYuMiAxMDMuMiAxMDMuMiAwIDI3LjQtMTAuOSA1My42LTMwLjIgNzNMMjU4LjMgMzk5LjZjLTEwLjUgMTAuNS0yNC43IDE2LjQtMzkuNiAxNi40bC04OC44IDAtODkgODljLTkuNCA5LjQtMjQuNiA5LjQtMzMuOSAwUy0yLjMgNDgwLjQgNyA0NzFsODktODl6Il19LEwyZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJwYWludGJydXNoIixpY29uOls1NzYsNTEyLFsxMjgzOTYsInBhaW50LWJydXNoIl0sImYxZmMiLCJNNDgwLjUgMTAuM0wyNTkuMSAxNThjLTI5LjEgMTkuNC00Ny42IDUwLjktNTAuNiA4NS4zIDYyLjMgMTIuOCAxMTEuNCA2MS45IDEyNC4zIDEyNC4zIDM0LjUtMyA2NS45LTIxLjUgODUuMy01MC42TDU2NS43IDk1LjVjNi43LTEwLjEgMTAuMy0yMS45IDEwLjMtMzQuMSAwLTMzLjktMjcuNS02MS40LTYxLjQtNjEuNC0xMi4xIDAtMjQgMy42LTM0LjEgMTAuM3pNMjg4IDQwMGMwLTYxLjktNTAuMS0xMTItMTEyLTExMlM2NCAzMzguMSA2NCA0MDBjMCAzLjkgLjIgNy44IC42IDExLjYgMS44IDE3LjUtMTAuMiAzNi40LTI3LjggMzYuNEwzMiA0NDhjLTE3LjcgMC0zMiAxNC4zLTMyIDMyczE0LjMgMzIgMzIgMzJsMTQ0IDBjNjEuOSAwIDExMi01MC4xIDExMi0xMTJ6Il19LEVodD1MMmUsJGh0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6Im5ldXRlciIsaWNvbjpbMzg0LDUxMixbOTkwNl0sImYyMmMiLCJNODAgMTc2YTExMiAxMTIgMCAxIDEgMjI0IDAgMTEyIDExMiAwIDEgMSAtMjI0IDB6TTIyMy45IDM0OS4xQzMwNS45IDMzNC4xIDM2OCAyNjIuMyAzNjggMTc2IDM2OCA3OC44IDI4OS4yIDAgMTkyIDBTMTYgNzguOCAxNiAxNzZjMCA4Ni4zIDYyLjEgMTU4LjEgMTQ0LjEgMTczLjEtLjEgMS0uMSAxLjktLjEgMi45bDAgMTYwYzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJsMC0xNjBjMC0xIDAtMS45LS4xLTIuOXoiXX0sQTJlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InNxdWFyZS1waG9uZS1mbGlwIixpY29uOls0NDgsNTEyLFsicGhvbmUtc3F1YXJlLWFsdCJdLCJmODdiIiwiTTY0IDMyQzI4LjcgMzIgMCA2MC43IDAgOTZMMCA0MTZjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMzIwIDBjMzUuMyAwIDY0LTI4LjcgNjQtNjRsMC0zMjBjMC0zNS4zLTI4LjctNjQtNjQtNjRMNjQgMzJ6bTIzMiA5Ni43bDIuOCAuOGMzMi4zIDguOCA1OS45IDQwLjEgNTEuOCA3OC4yLTE4LjUgODcuNS04Ny40IDE1Ni4zLTE3NC45IDE3NC45LTM4LjEgOC4xLTY5LjQtMTkuNS03OC4yLTUxLjhsLS44LTIuOGMtMi43LTkuOCAyLjQtMjAuMSAxMS44LTI0bDQ4LjctMjAuM2M4LjMtMy40IDE3LjgtMS4xIDIzLjUgNS45bDE5LjMgMjMuNmMzNS4xLTE3LjQgNjMuNC00Ni42IDc5LjYtODIuNGwtMjIuMS0xOGMtNi45LTUuNy05LjMtMTUuMi01LjktMjMuNWwyMC4zLTQ4LjdjMy45LTkuNCAxNC4yLTE0LjQgMjQtMTEuOHoiXX0sSWh0PUEyZSxEMmU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZmFjZS1ncmluLXRvbmd1ZS1zcXVpbnQiLGljb246WzUxMiw1MTIsWzEyODU0MSwiZ3Jpbi10b25ndWUtc3F1aW50Il0sImY1OGEiLCJNMCAyNTZjMCAxMDQuNCA2Mi41IDE5NC4yIDE1Mi4yIDIzNC4xLTUuMy0xMy04LjItMjcuMi04LjItNDIuMWwwLTYxLjdjLTE2LjktMTYuNS0zMC4xLTM2LjctMzguMy01OS4zLTQuMy0xMS44IDcuNy0yMS44IDE5LjYtMTguMSAzOS4yIDEyLjIgODMuNyAxOS4xIDEzMC43IDE5LjFzOTEuNS02LjkgMTMwLjctMTkuMWMxMS45LTMuNyAyMy45IDYuMyAxOS42IDE4LjEtOC4zIDIyLjYtMjEuNSA0Mi44LTM4LjMgNTkuM2wwIDYxLjdjMCAxNC45LTIuOSAyOS4xLTguMiA0Mi4xIDg5LjctMzkuOCAxNTIuMi0xMjkuNiAxNTIuMi0yMzQuMSAwLTE0MS40LTExNC42LTI1Ni0yNTYtMjU2UzAgMTE0LjYgMCAyNTZ6bTEyNS44LTkxLjdjLTYuMi01LjItNy42LTE0LjMtMy4xLTIxLjFzMTMuMy05LjIgMjAuNi01LjVsNzkuNiA0MGM1LjQgMi43IDguOCA4LjIgOC44IDE0LjNzLTMuNCAxMS42LTguOCAxNC4zbC03OS42IDQwYy03LjMgMy42LTE2LjEgMS4zLTIwLjYtNS41cy0zLjEtMTUuOSAzLjEtMjEuMUwxNTkgMTkyIDEyNS44IDE2NC4zem0yNjMuNi0yMS4xYzQuNSA2LjggMy4xIDE1LjktMy4xIDIxLjFMMzUzIDE5MiAzODYuMiAyMTkuN2M2LjIgNS4yIDcuNiAxNC4zIDMuMSAyMS4xcy0xMy4zIDkuMi0yMC42IDUuNWwtNzkuNi00MGMtNS40LTIuNy04LjgtOC4yLTguOC0xNC4zczMuNC0xMS42IDguOC0xNC4zbDc5LjYtNDBjNy4zLTMuNiAxNi4xLTEuMyAyMC42IDUuNXpNMzIwIDQ0OGwwLTQ1LjRjMC0xNC43LTExLjktMjYuNi0yNi42LTI2LjZsLTIgMGMtMTEuMyAwLTIxLjEgNy45LTIzLjYgMTguOS0yLjggMTIuNi0yMC44IDEyLjYtMjMuNiAwLTIuNS0xMS4xLTEyLjMtMTguOS0yMy42LTE4LjlsLTIgMGMtMTQuNyAwLTI2LjYgMTEuOS0yNi42IDI2LjZsMCA0NS40YzAgMzUuMyAyOC43IDY0IDY0IDY0czY0LTI4LjcgNjQtNjR6Il19LFBodD1EMmUsTmh0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImNvbW1lbnQtZG9sbGFyIixpY29uOls1MTIsNTEyLFtdLCJmNjUxIiwiTTI1NiA0ODBjMTQxLjQgMCAyNTYtMTA3LjUgMjU2LTI0MFMzOTcuNCAwIDI1NiAwIDAgMTA3LjUgMCAyNDBjMCA1NC4zIDE5LjIgMTA0LjMgNTEuNiAxNDQuNUwyLjggNDc2LjhjLTQuOCA5LTMuMyAyMCAzLjYgMjcuNXMxNy44IDkuOCAyNy4xIDUuOGwxMTguNC01MC43QzE4My43IDQ3Mi42IDIxOC45IDQ4MCAyNTYgNDgwem00LTM1MmMxMSAwIDIwIDkgMjAgMjBsMCA0IDggMGMxMSAwIDIwIDkgMjAgMjBzLTkgMjAtMjAgMjBsLTQ3LjUgMGMtNi45IDAtMTIuNSA1LjYtMTIuNSAxMi41IDAgNi4xIDQuNCAxMS4zIDEwLjQgMTIuM2w0MS43IDdjMjUuMyA0LjIgNDMuOSAyNi4xIDQzLjkgNTEuOCAwIDI2LjEtMTkgNDcuNy00NCA1MS44bDAgNC43YzAgMTEtOSAyMC0yMCAyMHMtMjAtOS0yMC0yMGwwLTQtMjQgMGMtMTEgMC0yMC05LTIwLTIwczktMjAgMjAtMjBsNTUuNSAwYzYuOSAwIDEyLjUtNS42IDEyLjUtMTIuNSAwLTYuMS00LjQtMTEuMy0xMC40LTEyLjNsLTQxLjctN2MtMjUuMy00LjItNDMuOS0yNi4xLTQzLjktNTEuOCAwLTI4LjggMjMuMi01Mi4yIDUyLTUyLjVsMC00YzAtMTEgOS0yMCAyMC0yMHoiXX0sRmh0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImhpcHBvIixpY29uOls2NDAsNTEyLFsxMjk0MzVdLCJmNmVkIiwiTTQwNyA0N2M5LjQtOS40IDI0LjYtOS40IDMzLjkgMGwxNy4yIDE3LjJjMS45LS4xIDMuOS0uMiA1LjgtLjJsMzIgMGMxMS4yIDAgMjEuOSAyLjMgMzEuNiA2LjVMNTQzIDU1YzkuNC05LjQgMjQuNi05LjQgMzMuOSAwczkuNCAyNC42IDAgMzMuOUw1NjQgMTAxLjljNy42IDEyLjIgMTIgMjYuNyAxMiA0Mi4xIDAgMTAuMiA3LjQgMTguOCAxNi43IDIzIDI3LjkgMTIuNSA0Ny4zIDQwLjUgNDcuMyA3MyAwIDI2LjItMTIuNiA0OS40LTMyIDY0bDAgMzJjMCA4LjgtNy4yIDE2LTE2IDE2bC0zMiAwYy04LjggMC0xNi03LjItMTYtMTZsMC0xNi02NCAwIDAgMTZjMCA4LjgtNy4yIDE2LTE2IDE2bC0zMiAwYy04LjggMC0xNi03LjItMTYtMTZsMC0xNy42Yy0xMS44LTIuNC0yMi43LTcuNC0zMi0xNC40LTEuNS0xLjEtMi45LTIuMy00LjMtMy41LTE3LTE0LjctMjcuNy0zNi40LTI3LjctNjAuNSAwLTguOC03LjItMTYtMTYtMTZzLTE2IDcuMi0xNiAxNmMwIDQ0LjcgMjYuMiA4My4yIDY0IDEwMS4ybDAgMTAuOGMwIDE3LjcgMTQuMyAzMiAzMiAzMmwzMiAwIDAgNjRjMCAxNy43LTE0LjMgMzItMzIgMzJsLTY0IDBjLTE3LjcgMC0zMi0xNC4zLTMyLTMybDAtNzZjLTE5LjggNy43LTQxLjQgMTItNjQgMTJzLTQ0LjItNC4zLTY0LTEybDAgNzZjMCAxNy43LTE0LjMgMzItMzIgMzJsLTY0IDBjLTE3LjcgMC0zMi0xNC4zLTMyLTMybDAtMTE4LjktMTguMSA0MC43Yy01LjQgMTIuMS0xOS42IDE3LjYtMzEuNyAxMi4yUy0zLjMgMzYyLjQgMi4xIDM1MC4zTDI0IDMwMC45YzUuMy0xMS45IDgtMjQuNyA4LTM3LjcgMC0xMDcuNSA4NS4yLTE5NS4yIDE5MS44LTE5OS4xbC4yLS4xIDY0IDBjNDEuNyAwIDgzLjQgMTIuMSAxMTcuMiAyNS43IDEuNy0xLjggMy41LTMuNiA1LjMtNS4yTDQwNyA4MWMtOS40LTkuNC05LjQtMjQuNiAwLTMzLjl6bTczIDE4NWEyNCAyNCAwIDEgMCAtNDggMCAyNCAyNCAwIDEgMCA0OCAwem04OCAyNGEyNCAyNCAwIDEgMCAwLTQ4IDI0IDI0IDAgMSAwIDAgNDh6TTQ4MCAxNDRhMTYgMTYgMCAxIDAgLTMyIDAgMTYgMTYgMCAxIDAgMzIgMHptNDggMTZhMTYgMTYgMCAxIDAgMC0zMiAxNiAxNiAwIDEgMCAwIDMyeiJdfSxPaHQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiYm93bC1mb29kIixpY29uOls1MTIsNTEyLFtdLCJlNGM2IiwiTTAgMTc2YzAtMzUuMyAyOC43LTY0IDY0LTY0IC41IDAgMS4xIDAgMS42IDAgNy40LTM2LjUgMzkuNy02NCA3OC40LTY0IDE1IDAgMjkgNC4xIDQwLjkgMTEuMiAxMy4zLTI1LjcgNDAuMS00My4yIDcxLjEtNDMuMnM1Ny44IDE3LjYgNzEuMSA0My4yYzEyLTcuMSAyNi0xMS4yIDQwLjktMTEuMiAzOC43IDAgNzEgMjcuNSA3OC40IDY0IC41IDAgMS4xIDAgMS42IDAgMzUuMyAwIDY0IDI4LjcgNjQgNjQgMCAxMS43LTMuMSAyMi42LTguNiAzMkw4LjYgMjA4QzMuMSAxOTguNiAwIDE4Ny43IDAgMTc2ek0wIDI4My40QzAgMjY4LjMgMTIuMyAyNTYgMjcuNCAyNTZsNDU3LjEgMGMxNS4xIDAgMjcuNCAxMi4zIDI3LjQgMjcuNCAwIDcwLjUtNDQuNCAxMzAuNy0xMDYuNyAxNTQuMUw0MDMuNSA0NTJjLTIgMTYtMTUuNiAyOC0zMS44IDI4bC0yMzEuNSAwYy0xNi4xIDAtMjkuOC0xMi0zMS44LTI4bC0xLjgtMTQuNEM0NC40IDQxNC4xIDAgMzUzLjkgMCAyODMuNHoiXX0sUmh0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InNxdWFyZS12aXJ1cyIsaWNvbjpbNDQ4LDUxMixbXSwiZTU3OCIsIk02NCAzMkMyOC43IDMyIDAgNjAuNyAwIDk2TDAgNDE2YzAgMzUuMyAyOC43IDY0IDY0IDY0bDMyMCAwYzM1LjMgMCA2NC0yOC43IDY0LTY0bDAtMzIwYzAtMzUuMy0yOC43LTY0LTY0LTY0TDY0IDMyem0xNjAgODBjMTMuMyAwIDI0IDEwLjcgMjQgMjQgMCAyMi45IDI3LjcgMzQuNCA0My45IDE4LjIgOS40LTkuNCAyNC42LTkuNCAzMy45IDBzOS40IDI0LjYgMCAzMy45Yy0xNi4yIDE2LjItNC43IDQzLjkgMTguMiA0My45IDEzLjMgMCAyNCAxMC43IDI0IDI0cy0xMC43IDI0LTI0IDI0Yy0yMi45IDAtMzQuNCAyNy43LTE4LjIgNDMuOSA5LjQgOS40IDkuNCAyNC42IDAgMzMuOXMtMjQuNiA5LjQtMzMuOSAwYy0xNi4yLTE2LjItNDMuOS00LjctNDMuOSAxOC4yIDAgMTMuMy0xMC43IDI0LTI0IDI0cy0yNC0xMC43LTI0LTI0YzAtMjIuOS0yNy43LTM0LjQtNDMuOS0xOC4yLTkuNCA5LjQtMjQuNiA5LjQtMzMuOSAwcy05LjQtMjQuNiAwLTMzLjljMTYuMi0xNi4yIDQuNy00My45LTE4LjItNDMuOS0xMy4zIDAtMjQtMTAuNy0yNC0yNHMxMC43LTI0IDI0LTI0YzIyLjkgMCAzNC40LTI3LjcgMTguMi00My45LTkuNC05LjQtOS40LTI0LjYgMC0zMy45czI0LjYtOS40IDMzLjkgMGMxNi4yIDE2LjIgNDMuOSA0LjcgNDMuOS0xOC4yIDAtMTMuMyAxMC43LTI0IDI0LTI0ek0xOTIgMjQ4YTI0IDI0IDAgMSAwIDAtNDggMjQgMjQgMCAxIDAgMCA0OHptODggNDBhMjQgMjQgMCAxIDAgLTQ4IDAgMjQgMjQgMCAxIDAgNDggMHoiXX0sQmh0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImNsb3VkLXN1bi1yYWluIixpY29uOls2NDAsNTEyLFsxMjc3ODJdLCJmNzQzIiwiTTI1NC45IDQ0OC4yYzQuMi0xMi42IDE3LjgtMTkuNCAzMC4zLTE1LjIgMTIuNiA0LjIgMTkuNCAxNy44IDE1LjIgMzAuNGwtMjEuNCA2NC4xYy00LjIgMTIuNi0xNy44IDE5LjQtMzAuNCAxNS4ycy0xOS40LTE3LjgtMTUuMi0zMC4zbDIxLjQtNjQuMnptMTIwIDBjNC4yLTEyLjYgMTcuOC0xOS40IDMwLjMtMTUuMiAxMi42IDQuMiAxOS40IDE3LjggMTUuMiAzMC40bC0yMS40IDY0LjFjLTQuMiAxMi42LTE3LjggMTkuNC0zMC40IDE1LjJzLTE5LjQtMTcuOC0xNS4yLTMwLjNsMjEuNC02NC4yem0xMjAgMGM0LjItMTIuNiAxNy44LTE5LjQgMzAuMy0xNS4yIDEyLjYgNC4yIDE5LjQgMTcuOCAxNS4yIDMwLjRsLTIxLjQgNjQuMWMtNC4yIDEyLjYtMTcuOCAxOS40LTMwLjQgMTUuMnMtMTkuNC0xNy44LTE1LjItMzAuM2wyMS40LTY0LjJ6TTQ0OC4zIDEyOGM0NC4yIDAgODAgMzUuOCA4MCA4MCAwIDcuNS0xLjEgMTQuNy0zIDIxLjUgMjkuOCAxMS42IDUxIDQwLjYgNTEgNzQuNSAwIDQ0LjItMzUuOCA4MC04MCA4MGwtMTkyIDAtOC4yLS40Yy00MC4zLTQuMS03MS44LTM4LjItNzEuOC03OS42IDAtMzkgMjcuOS03MS41IDY0LjktNzguNS0uNS0zLjEtLjktNi4yLS45LTkuNSAwLTMwLjkgMjUuMS01NiA1Ni01NiAxMi40IDAgMjMuOSA0LjEgMzMuMiAxMC45IDEzLjQtMjUuNSA0MC4xLTQyLjkgNzAuOC00Mi45ek0yNDAuMy0zMS44YzUuMyAwIDEwLjMgMi43IDEzLjMgNy4xbDQ3LjMgNzAuNCA4My4zLTE2LjNjNS4yLTEgMTAuNiAuNyAxNC4zIDQuNCAzLjggMy44IDUuNCA5LjIgNC40IDE0LjRsLTguNiA0My44Yy0xMS45IDUuNS0yMi44IDEyLjktMzIuNCAyMS42LTUuNy0xLTExLjctMS41LTE3LjctMS41LTE0LjMgMC0yOCAzLTQwLjQgOC4yLTE2LjktMTUtMzkuMi0yNC4yLTYzLjYtMjQuMi01MyAwLTk2IDQzLTk2IDk2IDAgMzAuOSAxNC42IDU4LjIgMzcuMiA3NS44LTMuNCAxMS41LTUuMiAyMy42LTUuMiAzNi4yIDAgMTMuMiAyIDI1LjkgNS43IDM3LjlsLTIuNC0zLjUtODMuMiAxNi4zYy01LjIgMS0xMC42LS43LTE0LjMtNC40LTMuOC0zLjgtNS40LTkuMi00LjQtMTQuNGwxNi4zLTgzLjMtNzAuNC00Ny40Yy00LjQtMy03LjEtOC03LjEtMTMuMyAwLTUuMyAyLjYtMTAuMyA3LTEzLjJsNzAuNC00Ny40LTE2LjMtODMuMi0uMi0yYy0uMy00LjYgMS4zLTkuMSA0LjYtMTIuNCAzLjgtMy44IDkuMi01LjQgMTQuNC00LjRsODMuMiAxNi4zIDQ3LjMtNzAuNCAxLjItMS42YzMtMy41IDcuNC01LjUgMTIuMS01LjV6bTAgMTc1LjhjOC42IDAgMTYuNiAyLjMgMjMuNiA2LjItOS43IDExLjktMTYuOSAyNS45LTIwLjcgNDEuMy0xNSA4LjEtMjguMiAxOS4yLTM4LjggMzIuMy03LjUtOC41LTEyLjItMTkuNi0xMi4yLTMxLjggMC0yNi41IDIxLjUtNDggNDgtNDh6Il19LEUyZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJhcnJvdy1yaWdodC1sb25nIixpY29uOls1NzYsNTEyLFsibG9uZy1hcnJvdy1yaWdodCJdLCJmMTc4IiwiTTU2Ni42IDI3OC42YzEyLjUtMTIuNSAxMi41LTMyLjggMC00NS4zbC0xMjgtMTI4Yy0xMi41LTEyLjUtMzIuOC0xMi41LTQ1LjMgMHMtMTIuNSAzMi44IDAgNDUuM0w0NjYuNyAyMjQgMzIgMjI0Yy0xNy43IDAtMzIgMTQuMy0zMiAzMnMxNC4zIDMyIDMyIDMybDQzNC43IDAtNzMuNCA3My40Yy0xMi41IDEyLjUtMTIuNSAzMi44IDAgNDUuM3MzMi44IDEyLjUgNDUuMyAwbDEyOC0xMjh6Il19LEhodD1FMmUscWh0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImJ1aWxkaW5nLXVuIixpY29uOls1MTIsNTEyLFtdLCJlNGQ5IiwiTTMyIDY0QzMyIDI4LjcgNjAuNyAwIDk2IDBMMzUyIDBjMzUuMyAwIDY0IDI4LjcgNjQgNjRsMCAyNzItMTEyIDBjLTIwLjkgMC0zOS41IDEwLjEtNTEuMiAyNS42LTgtNi0xOC05LjYtMjguOC05LjYtMjYuNSAwLTQ4IDIxLjUtNDggNDhsMCA2NCA2NCAwIDAgNDgtMTQ0IDBjLTM1LjMgMC02NC0yOC43LTY0LTY0TDMyIDY0ek0xNDQgOTZjLTguOCAwLTE2IDcuMi0xNiAxNmwwIDMyYzAgOC44IDcuMiAxNiAxNiAxNmwzMiAwYzguOCAwIDE2LTcuMiAxNi0xNmwwLTMyYzAtOC44LTcuMi0xNi0xNi0xNmwtMzIgMHptMTEyIDE2bDAgMzJjMCA4LjggNy4yIDE2IDE2IDE2bDMyIDBjOC44IDAgMTYtNy4yIDE2LTE2bDAtMzJjMC04LjgtNy4yLTE2LTE2LTE2bC0zMiAwYy04LjggMC0xNiA3LjItMTYgMTZ6TTE0NCAyMjRjLTguOCAwLTE2IDcuMi0xNiAxNmwwIDMyYzAgOC44IDcuMiAxNiAxNiAxNmwzMiAwYzguOCAwIDE2LTcuMiAxNi0xNmwwLTMyYzAtOC44LTcuMi0xNi0xNi0xNmwtMzIgMHptMTEyIDE2bDAgMzJjMCA4LjggNy4yIDE2IDE2IDE2bDMyIDBjOC44IDAgMTYtNy4yIDE2LTE2bDAtMzJjMC04LjgtNy4yLTE2LTE2LTE2bC0zMiAwYy04LjggMC0xNiA3LjItMTYgMTZ6TTQyNy40IDM4MC41YzktMi4xIDE4LjMgMi4yIDIyLjUgMTAuNWwyNi4xIDUyLjIgMC00My4zYzAtMTEgOS0yMCAyMC0yMHMyMCA5IDIwIDIwbDAgMTI4YzAgOS4zLTYuNCAxNy4zLTE1LjQgMTkuNXMtMTguMy0yLjItMjIuNS0xMC41TDQ1MiA0ODQuNyA0NTIgNTI4YzAgMTEtOSAyMC0yMCAyMHMtMjAtOS0yMC0yMGwwLTEyOGMwLTkuMyA2LjQtMTcuMyAxNS40LTE5LjV6TTMyNCA0MDBsMCA5NmMwIDYuNiA1LjQgMTIgMTIgMTJzMTItNS40IDEyLTEybDAtOTZjMC0xMSA5LTIwIDIwLTIwczIwIDkgMjAgMjBsMCA5NmMwIDI4LjctMjMuMyA1Mi01MiA1MnMtNTItMjMuMy01Mi01MmwwLTk2YzAtMTEgOS0yMCAyMC0yMHMyMCA5IDIwIDIweiJdfSxqaHQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToidGVtcGVyYXR1cmUtbG93IixpY29uOls1MTIsNTEyLFtdLCJmNzZiIiwiTTk2IDk2YzAtNTMgNDMtOTYgOTYtOTZzOTYgNDMgOTYgOTZsMCAxNjQuN2MyOS41IDI2LjQgNDggNjQuNyA0OCAxMDcuMyAwIDc5LjUtNjQuNSAxNDQtMTQ0IDE0NFM0OCA0NDcuNSA0OCAzNjhjMC00Mi42IDE4LjUtODEgNDgtMTA3LjNMOTYgOTZ6bTk2IDMzNmMzNS4zIDAgNjQtMjguNyA2NC02NCAwLTI2LjktMTYuNS00OS45LTQwLTU5LjNsMC0yOC43YzAtMTMuMy0xMC43LTI0LTI0LTI0cy0yNCAxMC43LTI0IDI0bDAgMjguN2MtMjMuNSA5LjUtNDAgMzIuNS00MCA1OS4zIDAgMzUuMyAyOC43IDY0IDY0IDY0ek00NjQgODBhMzIgMzIgMCAxIDAgLTY0IDAgMzIgMzIgMCAxIDAgNjQgMHpNMzUyIDgwYTgwIDgwIDAgMSAxIDE2MCAwIDgwIDgwIDAgMSAxIC0xNjAgMHoiXX0sVmh0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImRvb3Itb3BlbiIsaWNvbjpbNDQ4LDUxMixbXSwiZjUyYiIsIk0yODggNjRsNjQgMCAwIDQxNmMwIDE3LjcgMTQuMyAzMiAzMiAzMmwzMiAwYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMybDAtMzg0YzAtMzUuMy0yOC43LTY0LTY0LTY0bC05NiAwIDAgMC0xNjAgMEM2MC43IDAgMzIgMjguNyAzMiA2NGwwIDM4NGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJzMTQuMyAzMiAzMiAzMmwyMjQgMGMxNy43IDAgMzItMTQuMyAzMi0zMmwwLTQxNnpNMTYwIDI1NmEzMiAzMiAwIDEgMSA2NCAwIDMyIDMyIDAgMSAxIC02NCAweiJdfSxVaHQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiYWxpZ24tbGVmdCIsaWNvbjpbNDQ4LDUxMixbXSwiZjAzNiIsIk0yODggNjRjMCAxNy43LTE0LjMgMzItMzIgMzJMMzIgOTZDMTQuMyA5NiAwIDgxLjcgMCA2NFMxNC4zIDMyIDMyIDMybDIyNCAwYzE3LjcgMCAzMiAxNC4zIDMyIDMyem0wIDI1NmMwIDE3LjctMTQuMyAzMi0zMiAzMkwzMiAzNTJjLTE3LjcgMC0zMi0xNC4zLTMyLTMyczE0LjMtMzIgMzItMzJsMjI0IDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJ6TTAgMTkyYzAtMTcuNyAxNC4zLTMyIDMyLTMybDM4NCAwYzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMyTDMyIDIyNGMtMTcuNyAwLTMyLTE0LjMtMzItMzJ6TTQ0OCA0NDhjMCAxNy43LTE0LjMgMzItMzIgMzJMMzIgNDgwYy0xNy43IDAtMzItMTQuMy0zMi0zMnMxNC4zLTMyIDMyLTMybDM4NCAwYzE3LjcgMCAzMiAxNC4zIDMyIDMyeiJdfSwkMmU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiY2FtZXJhIixpY29uOls1MTIsNTEyLFs2MjI1OCwiY2FtZXJhLWFsdCJdLCJmMDMwIiwiTTE0OS4xIDY0LjhMMTM4LjcgOTYgNjQgOTZDMjguNyA5NiAwIDEyNC43IDAgMTYwTDAgNDE2YzAgMzUuMyAyOC43IDY0IDY0IDY0bDM4NCAwYzM1LjMgMCA2NC0yOC43IDY0LTY0bDAtMjU2YzAtMzUuMy0yOC43LTY0LTY0LTY0bC03NC43IDAtMTAuNC0zMS4yQzM1Ni40IDQ1LjIgMzM4LjEgMzIgMzE3LjQgMzJMMTk0LjYgMzJjLTIwLjcgMC0zOSAxMy4yLTQ1LjUgMzIuOHpNMjU2IDE5MmE5NiA5NiAwIDEgMSAwIDE5MiA5NiA5NiAwIDEgMSAwLTE5MnoiXX0sV2h0PSQyZSxHaHQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToidXNlcnMtcmF5cyIsaWNvbjpbNjQwLDUxMixbXSwiZTU5MyIsIk0zMS0zM0MyMS43LTIzLjYgMjEuNy04LjQgMzEgMUw4NyA1N2M5LjQgOS40IDI0LjYgOS40IDMzLjkgMHM5LjQtMjQuNiAwLTMzLjlMNjUtMzNjLTkuNC05LjQtMjQuNi05LjQtMzMuOSAwek02MDktMzNjLTkuNC05LjQtMjQuNi05LjQtMzMuOSAwTDUxOSAyM2MtOS40IDkuNC05LjQgMjQuNiAwIDMzLjlzMjQuNiA5LjQgMzMuOSAwTDYwOSAxYzkuNC05LjQgOS40LTI0LjYgMC0zMy45ek02NSA1NDVsNTYtNTZjOS40LTkuNCA5LjQtMjQuNiAwLTMzLjlzLTI0LjYtOS40LTMzLjkgMEwzMSA1MTFjLTkuNCA5LjQtOS40IDI0LjYgMCAzMy45czI0LjYgOS40IDMzLjkgMHptNTQ0IDBjOS40LTkuNCA5LjQtMjQuNiAwLTMzLjlsLTU2LTU2Yy05LjQtOS40LTI0LjYtOS40LTMzLjkgMHMtOS40IDI0LjYgMCAzMy45bDU2IDU2YzkuNCA5LjQgMjQuNiA5LjQgMzMuOSAwek0zMjAgMjA4YTY0IDY0IDAgMSAwIDAtMTI4IDY0IDY0IDAgMSAwIDAgMTI4em0wIDMyYy02MS45IDAtMTEyIDUwLjEtMTEyIDExMmwwIDhjMCAxMy4zIDEwLjcgMjQgMjQgMjRsMTc2IDBjMTMuMyAwIDI0LTEwLjcgMjQtMjRsMC04YzAtNjEuOS01MC4xLTExMi0xMTItMTEyem0yMTYtODBhNTYgNTYgMCAxIDAgLTExMiAwIDU2IDU2IDAgMSAwIDExMiAwek00NTEuMiAyNjAuNEM0NjkuNCAyODYuMyA0ODAgMzE3LjkgNDgwIDM1MmwwIDhjMCA4LjQtMS40IDE2LjUtNC4xIDI0bDc4LjggMGMxMS44IDAgMjEuMy05LjYgMjEuMy0yMS4zbDAtMTAuN2MwLTUzLTQzLTk2LTk2LTk2LTEwIDAtMTkuNyAxLjUtMjguOCA0LjR6bS0yNjIuNCAwYy05LjEtMi45LTE4LjgtNC40LTI4LjgtNC40LTUzIDAtOTYgNDMtOTYgOTZsMCAxMC43YzAgMTEuOCA5LjYgMjEuMyAyMS4zIDIxLjNsNzguOCAwYy0yLjctNy41LTQuMS0xNS42LTQuMS0yNGwwLThjMC0zNC4xIDEwLjYtNjUuNyAyOC44LTkxLjZ6TTIxNiAxNjBhNTYgNTYgMCAxIDAgLTExMiAwIDU2IDU2IDAgMSAwIDExMiAweiJdfSxZaHQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToicmFpbmJvdyIsaWNvbjpbNjQwLDUxMixbMTI3NzUyXSwiZjc1YiIsIk0zMjAgOTZDMTc4LjYgOTYgNjQgMjEwLjYgNjQgMzUybDAgNjRjMCAxNy43LTE0LjMgMzItMzIgMzJTMCA0MzMuNyAwIDQxNmwwLTY0QzAgMTc1LjMgMTQzLjMgMzIgMzIwIDMyUzY0MCAxNzUuMyA2NDAgMzUybDAgNjRjMCAxNy43LTE0LjMgMzItMzIgMzJzLTMyLTE0LjMtMzItMzJsMC02NEM1NzYgMjEwLjYgNDYxLjQgOTYgMzIwIDk2em0wIDExMmMtNzkuNSAwLTE0NCA2NC41LTE0NCAxNDRsMCA2NGMwIDE3LjctMTQuMyAzMi0zMiAzMnMtMzItMTQuMy0zMi0zMmwwLTY0YzAtMTE0LjkgOTMuMS0yMDggMjA4LTIwOHMyMDggOTMuMSAyMDggMjA4bDAgNjRjMCAxNy43LTE0LjMgMzItMzIgMzJzLTMyLTE0LjMtMzItMzJsMC02NGMwLTc5LjUtNjQuNS0xNDQtMTQ0LTE0NHpNMjg4IDM1MmwwIDY0YzAgMTcuNy0xNC4zIDMyLTMyIDMycy0zMi0xNC4zLTMyLTMybDAtNjRjMC01MyA0My05NiA5Ni05NnM5NiA0MyA5NiA5NmwwIDY0YzAgMTcuNy0xNC4zIDMyLTMyIDMycy0zMi0xNC4zLTMyLTMybDAtNjRjMC0xNy43LTE0LjMtMzItMzItMzJzLTMyIDE0LjMtMzIgMzJ6Il19LFpodD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJzaXRlbWFwIixpY29uOls1MTIsNTEyLFtdLCJmMGU4IiwiTTE5MiA2NGMwLTE3LjcgMTQuMy0zMiAzMi0zMmw2NCAwYzE3LjcgMCAzMiAxNC4zIDMyIDMybDAgNjRjMCAxNy43LTE0LjMgMzItMzIgMzJsLTggMCAwIDY0IDEyMCAwYzM5LjggMCA3MiAzMi4yIDcyIDcybDAgNTYgOCAwYzE3LjcgMCAzMiAxNC4zIDMyIDMybDAgNjRjMCAxNy43LTE0LjMgMzItMzIgMzJsLTY0IDBjLTE3LjcgMC0zMi0xNC4zLTMyLTMybDAtNjRjMC0xNy43IDE0LjMtMzIgMzItMzJsOCAwIDAtNTZjMC0xMy4zLTEwLjctMjQtMjQtMjRsLTEyMCAwIDAgODAgOCAwYzE3LjcgMCAzMiAxNC4zIDMyIDMybDAgNjRjMCAxNy43LTE0LjMgMzItMzIgMzJsLTY0IDBjLTE3LjcgMC0zMi0xNC4zLTMyLTMybDAtNjRjMC0xNy43IDE0LjMtMzIgMzItMzJsOCAwIDAtODAtMTIwIDBjLTEzLjMgMC0yNCAxMC43LTI0IDI0bDAgNTYgOCAwYzE3LjcgMCAzMiAxNC4zIDMyIDMybDAgNjRjMCAxNy43LTE0LjMgMzItMzIgMzJsLTY0IDBjLTE3LjcgMC0zMi0xNC4zLTMyLTMybDAtNjRjMC0xNy43IDE0LjMtMzIgMzItMzJsOCAwIDAtNTZjMC0zOS44IDMyLjItNzIgNzItNzJsMTIwIDAgMC02NC04IDBjLTE3LjcgMC0zMi0xNC4zLTMyLTMybDAtNjR6Il19LEkyZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJmYWNlLWdyaW4tc3RhcnMiLGljb246WzUxMiw1MTIsWzEyOTMyMSwiZ3Jpbi1zdGFycyJdLCJmNTg3IiwiTTI1NiA1MTJjMTQxLjQgMCAyNTYtMTE0LjYgMjU2LTI1NiAwLTI0LjQtMy40LTQ4LjEtOS44LTcwLjUgMTguNi0zNi4xLTIuNy04My42LTQ2LjctOTAtNDYuOS01OC4zLTExOC45LTk1LjUtMTk5LjUtOTUuNVMxMDMuNCAzNy4zIDU2LjUgOTUuNWMtNDQgNi40LTY1LjMgNTMuOS00Ni43IDkwLTYuNCAyMi40LTkuOCA0Ni05LjggNzAuNSAwIDE0MS40IDExNC42IDI1NiAyNTYgMjU2ek0zODYuNyAzMjQuOWMxMS45LTMuNyAyMy45IDYuMyAxOS42IDE4LjEtMjIuNCA2MS4zLTgxLjMgMTA1LjEtMTUwLjMgMTA1LjFTMTI4LjEgNDA0LjIgMTA1LjcgMzQyLjljLTQuMy0xMS44IDcuNy0yMS44IDE5LjYtMTguMSAzOS4yIDEyLjIgODMuNyAxOS4xIDEzMC43IDE5LjFzOTEuNS02LjkgMTMwLjctMTkuMXptLTMxLjYtMjMxYzUuMy0xMC43IDIwLjUtMTAuNyAyNS44IDBsMjAuOSA0Mi40IDQ2LjcgNi44YzExLjggMS43IDE2LjUgMTYuMiA4IDI0LjVsLTMzLjggMzMgOCA0Ni42YzIgMTEuNy0xMC4zIDIwLjctMjAuOSAxNS4ybC00MS44LTIyLTQxLjggMjJjLTEwLjUgNS41LTIyLjktMy40LTIwLjktMTUuMmw4LTQ2LjYtMzMuOC0zM2MtOC41LTguMy0zLjgtMjIuOCA4LTI0LjVsNDYuNy02LjggMjAuOS00Mi40em0tMTk4LjIgMGwyMC45IDQyLjQgNDYuNyA2LjhjMTEuOCAxLjcgMTYuNSAxNi4yIDggMjQuNWwtMzMuOCAzMyA4IDQ2LjZjMiAxMS43LTEwLjMgMjAuNy0yMC45IDE1LjJsLTQxLjgtMjItNDEuOCAyMmMtMTAuNSA1LjUtMjIuOS0zLjQtMjAuOS0xNS4ybDgtNDYuNi0zMy44LTMzYy04LjUtOC4zLTMuOC0yMi44IDgtMjQuNWw0Ni43LTYuOCAyMC45LTQyLjRjNS4zLTEwLjcgMjAuNS0xMC43IDI1LjggMHoiXX0sWGh0PUkyZSxQMmU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToic29ydC11cCIsaWNvbjpbMzg0LDUxMixbInNvcnQtYXNjIl0sImYwZGUiLCJNMzIgMjI0Yy0xMi45IDAtMjQuNi03LjgtMjkuNi0xOS44Uy4yIDE3OC41IDkuNCAxNjkuNGwxNjAtMTYwYzEyLjUtMTIuNSAzMi44LTEyLjUgNDUuMyAwbDE2MCAxNjBjOS4yIDkuMiAxMS45IDIyLjkgNi45IDM0LjlTMzY0LjkgMjI0IDM1MiAyMjRMMzIgMjI0eiJdfSxRaHQ9UDJlLFFEPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImV5ZSIsaWNvbjpbNTc2LDUxMixbMTI4MDY1XSwiZjA2ZSIsIk0yODggMzJjLTgwLjggMC0xNDUuNSAzNi44LTE5Mi42IDgwLjYtNDYuOCA0My41LTc4LjEgOTUuNC05MyAxMzEuMS0zLjMgNy45LTMuMyAxNi43IDAgMjQuNiAxNC45IDM1LjcgNDYuMiA4Ny43IDkzIDEzMS4xIDQ3LjEgNDMuNyAxMTEuOCA4MC42IDE5Mi42IDgwLjZzMTQ1LjUtMzYuOCAxOTIuNi04MC42YzQ2LjgtNDMuNSA3OC4xLTk1LjQgOTMtMTMxLjEgMy4zLTcuOSAzLjMtMTYuNyAwLTI0LjYtMTQuOS0zNS43LTQ2LjItODcuNy05My0xMzEuMS00Ny4xLTQzLjctMTExLjgtODAuNi0xOTIuNi04MC42ek0xNDQgMjU2YTE0NCAxNDQgMCAxIDEgMjg4IDAgMTQ0IDE0NCAwIDEgMSAtMjg4IDB6bTE0NC02NGMwIDM1LjMtMjguNyA2NC02NCA2NC0xMS41IDAtMjIuMy0zLTMxLjctOC40LTEgMTAuOS0uMSAyMi4xIDIuOSAzMy4yIDEzLjcgNTEuMiA2Ni40IDgxLjYgMTE3LjYgNjcuOXM4MS42LTY2LjQgNjcuOS0xMTcuNmMtMTIuMi00NS43LTU1LjUtNzQuOC0xMDEuMS03MC44IDUuMyA5LjMgOC40IDIwLjEgOC40IDMxLjd6Il19LEpEPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImNhcmV0LWxlZnQiLGljb246WzI1Niw1MTIsW10sImYwZDkiLCJNNy43IDIzNS44Yy0xMC4zIDEyLjYtOS41IDMxLjEgMi4yIDQyLjhsMTI4IDEyOGM5LjIgOS4yIDIyLjkgMTEuOSAzNC45IDYuOXMxOS44LTE2LjYgMTkuOC0yOS42bDAtMjU2YzAtMTIuOS03LjgtMjQuNi0xOS44LTI5LjZzLTI1LjctMi4yLTM0LjkgNi45bC0xMjggMTI4LTIuMiAyLjR6Il19LE4yZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJhcHBsZS13aG9sZSIsaWNvbjpbNDQ4LDUxMixbMTI3ODIyLDEyNzgyMywiYXBwbGUtYWx0Il0sImY1ZDEiLCJNMjI0IDExMmMtOC44IDAtMTYtNy4yLTE2LTE2bDAtMTZjMC00NC4yIDM1LjgtODAgODAtODBsMTYgMGM4LjggMCAxNiA3LjIgMTYgMTZsMCAxNmMwIDQ0LjItMzUuOCA4MC04MCA4MGwtMTYgMHpNMCAyODhjMC03Ni4zIDM1LjctMTYwIDExMi0xNjAgMjcuMyAwIDU5LjcgMTAuMyA4Mi43IDE5LjMgMTguOCA3LjMgMzkuOSA3LjMgNTguNyAwIDIyLjktOC45IDU1LjQtMTkuMyA4Mi43LTE5LjMgNzYuMyAwIDExMiA4My43IDExMiAxNjAgMCAxMjgtODAgMjI0LTE2MCAyMjQtMTYuNSAwLTM4LjEtNi42LTUxLjUtMTEuMy04LjEtMi44LTE2LjktMi44LTI1IDAtMTMuNCA0LjctMzUgMTEuMy01MS41IDExLjMtODAgMC0xNjAtOTYtMTYwLTIyNHoiXX0sSmh0PU4yZSxGMmU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToic2Nyb2xsLXRvcmFoIixpY29uOls1NzYsNTEyLFsidG9yYWgiXSwiZjZhMCIsIk0wIDQ4QzAgMjEuNSAyMS41IDAgNDggMCA2OC45IDAgODYuNyAxMy40IDkzLjMgMzJsMzg5LjUgMGM2LjYtMTguNiAyNC40LTMyIDQ1LjMtMzIgMjYuNSAwIDQ4IDIxLjUgNDggNDhsMCA0MTZjMCAyNi41LTIxLjUgNDgtNDggNDgtMjAuOSAwLTM4LjctMTMuNC00NS4zLTMyTDkzLjMgNDgwYy02LjYgMTguNi0yNC40IDMyLTQ1LjMgMzItMjYuNSAwLTQ4LTIxLjUtNDgtNDhMMCA0OHpNMTc3LjkgMzAxYy0xLjIgMi0xLjkgNC4yLTEuOSA2LjYgMCA2LjkgNS42IDEyLjUgMTIuNSAxMi41bDU2LjkgMCAzMC41IDQ5LjJjMi42IDQuMiA3LjIgNi44IDEyLjIgNi44czkuNi0yLjYgMTIuMi02LjhsMzAuNS00OS4yIDU2LjkgMGM2LjkgMCAxMi41LTUuNiAxMi41LTEyLjUgMC0yLjMtLjYtNC42LTEuOS02LjZsLTI3LjgtNDUgMjcuOC00NWMxLjItMiAxLjktNC4yIDEuOS02LjYgMC02LjktNS42LTEyLjUtMTIuNS0xMi41bC01Ni45IDAtMzAuNS00OS4yYy0yLjYtNC4yLTcuMi02LjgtMTIuMi02LjhzLTkuNiAyLjYtMTIuMiA2LjhsLTMwLjUgNDkuMi01Ni45IDBjLTYuOSAwLTEyLjUgNS42LTEyLjUgMTIuNSAwIDIuMyAuNiA0LjYgMS45IDYuNmwyNy44IDQ1LTI3LjggNDV6Il19LEtodD1GMmUsZWZ0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImhvdXNlLWxvY2siLGljb246WzY0MCw1MTIsW10sImU1MTAiLCJNNTI4IDIyNC4xYzQ0LjIgMCA4MCAzNS44IDgwIDgwbDAgNTAuNmMxOC42IDYuNiAzMiAyNC40IDMyIDQ1LjNsMCA5NmMwIDI2LjUtMjEuNSA0OC00OCA0OGwtMTI4IDBjLTI2LjUgMC00OC0yMS41LTQ4LTQ4bDAtOTZjMC0yMC45IDEzLjQtMzguNyAzMi00NS4zbDAtNTAuNmMwLTQ0LjIgMzUuOC04MCA4MC04MHpNMjY4LjYgNi41YzEyLjItOS4zIDI5LjctOC43IDQxLjIgMmwxODUgMTcxLjhDNDQwLjIgMTk1IDQwMCAyNDQuOCA0MDAgMzA0bDAgMjQuNGMtMTkuNiAxNy42LTMyIDQzLjEtMzIgNzEuNWwwIDk2YzAgNS41IC41IDEwLjkgMS4zIDE2LjFMMTQ0IDUxMmMtMzUuMyAwLTY0LTI4LjctNjQtNjRsMC0xNzYtMTYgMGMtMTMuMiAwLTI1LTguMS0yOS44LTIwLjNzLTEuNi0yNi4yIDgtMzUuMWwyMjQtMjA4IDIuNC0yek0yNzIgMzIwYy0yNi41IDAtNDggMjEuNS00OCA0OGwwIDk2IDk2IDAgMC04Ny4zYzAtMTYuNSA3LTMxLjUgMTguNC00Mi4xLTguNy05LTIwLjktMTQuNi0zNC40LTE0LjZsLTMyIDB6bTI1Ni00Ny45Yy0xNy43IDAtMzIgMTQuMy0zMiAzMmwwIDQ3LjkgNjQgMCAwLTQ3LjljMC0xNy43LTE0LjMtMzItMzItMzJ6Il19LHRmdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJhcnJvd3MtbGVmdC1yaWdodC10by1saW5lIixpY29uOls1NzYsNTEyLFtdLCJlNGJhIiwiTTMyIDk2QzE0LjMgOTYgMCAxMTAuMyAwIDEyOEwwIDM4NGMwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMybDAtMjU2YzAtMTcuNy0xNC4zLTMyLTMyLTMyek0zOTAuNiAzNDIuNmw2NC02NGMxMi41LTEyLjUgMTIuNS0zMi44IDAtNDUuM2wtNjQtNjRjLTEyLjUtMTIuNS0zMi44LTEyLjUtNDUuMyAwcy0xMi41IDMyLjggMCA0NS4zbDkuNCA5LjQtMTMzLjUgMCA5LjQtOS40YzEyLjUtMTIuNSAxMi41LTMyLjggMC00NS4zcy0zMi44LTEyLjUtNDUuMyAwbC02NCA2NGMtNiA2LTkuNCAxNC4xLTkuNCAyMi42czMuNCAxNi42IDkuNCAyMi42bDY0IDY0YzEyLjUgMTIuNSAzMi44IDEyLjUgNDUuMyAwczEyLjUtMzIuOCAwLTQ1LjNsLTkuNC05LjQgMTMzLjUgMC05LjQgOS40Yy0xMi41IDEyLjUtMTIuNSAzMi44IDAgNDUuM3MzMi44IDEyLjUgNDUuMyAwek01NzYgMTI4YzAtMTcuNy0xNC4zLTMyLTMyLTMycy0zMiAxNC4zLTMyIDMybDAgMjU2YzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJsMC0yNTZ6Il19LG5iPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InRyYXNoIixpY29uOls0NDgsNTEyLFtdLCJmMWY4IiwiTTEzNi43IDUuOUwxMjggMzIgMzIgMzJDMTQuMyAzMiAwIDQ2LjMgMCA2NFMxNC4zIDk2IDMyIDk2bDM4NCAwYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMybC05NiAwLTguNy0yNi4xQzMwNi45LTcuMiAyOTQuNy0xNiAyODAuOS0xNkwxNjcuMS0xNmMtMTMuOCAwLTI2IDguOC0zMC40IDIxLjl6TTQxNiAxNDRMMzIgMTQ0IDUzLjEgNDY3LjFDNTQuNyA0OTIuNCA3NS43IDUxMiAxMDEgNTEyTDM0NyA1MTJjMjUuMyAwIDQ2LjMtMTkuNiA0Ny45LTQ0LjlMNDE2IDE0NHoiXX0sTzJlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImZhY2Utc2FkLXRlYXIiLGljb246WzUxMiw1MTIsWzEyODU0Niwic2FkLXRlYXIiXSwiZjViNCIsIk0wIDI1NmEyNTYgMjU2IDAgMSAxIDUxMiAwIDI1NiAyNTYgMCAxIDEgLTUxMiAwem0yNzEgOThjNS41LTEuMyAxMS4xLTIgMTctMiAyNC4xIDAgNDUuNCAxMS44IDU4LjUgMzAgNy43IDEwLjggMjIuNyAxMy4yIDMzLjUgNS41czEzLjItMjIuNyA1LjUtMzMuNWMtMjEuNy0zMC4yLTU3LjMtNTAtOTcuNS01MC0xMi41IDAtMjQuNiAxLjktMzUuOSA1LjUgOS44IDEyLjcgMTYuNSAyNy45IDE4LjkgNDQuNnpNMTc2IDI0MGEzMiAzMiAwIDEgMCAwLTY0IDMyIDMyIDAgMSAwIDAgNjR6bTE5Mi0zMmEzMiAzMiAwIDEgMCAtNjQgMCAzMiAzMiAwIDEgMCA2NCAwek0xODUuNCAyOTIuOGMtMi40LTIuOS01LjctNC44LTkuNC00LjhzLTcgMS45LTkuNCA0LjhjLTYuNSA3LjgtMTIuNiAxNi4xLTE4LjMgMjQuNi05IDEzLjQtMjAuMyAzMC4yLTIwLjMgNDcuNCAwIDI4LjMgMjEuNSA1MS4yIDQ4IDUxLjJzNDgtMjIuOSA0OC01MS4yYzAtMTcuMi0xMS4yLTM0LTIwLjMtNDcuNC01LjctOC41LTExLjktMTYuNy0xOC4zLTI0LjZ6Il19LHJmdD1PMmUsaWZ0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImZheCIsaWNvbjpbNTEyLDUxMixbMTI4MjI0LDEyODQzOV0sImYxYWMiLCJNMTYwIDY0bDAgODAgNjQgMCAwLTgwIDE0Ni43IDAgNDUuMyA0NS4zIDAgMzQuNyA2NCAwIDAtMzQuN2MwLTE3LTYuNy0zMy4zLTE4LjctNDUuM0w0MTYgMTguN0M0MDQgNi43IDM4Ny43IDAgMzcwLjcgMEwyMjQgMGMtMzUuMyAwLTY0IDI4LjctNjQgNjR6TTMyIDEyOGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJMMCA0NDhjMCAxNy43IDE0LjMgMzIgMzIgMzJsNDggMGMxNy43IDAgMzItMTQuMyAzMi0zMmwwLTI4OGMwLTE3LjctMTQuMy0zMi0zMi0zMmwtNDggMHptNDQ4IDY0bC0zMjAgMCAwIDI1NmMwIDE3LjcgMTQuMyAzMiAzMiAzMmwyODggMGMxNy43IDAgMzItMTQuMyAzMi0zMmwwLTIyNGMwLTE3LjctMTQuMy0zMi0zMi0zMnpNMjI0IDI4OGEyNCAyNCAwIDEgMSA0OCAwIDI0IDI0IDAgMSAxIC00OCAwem0wIDk2YTI0IDI0IDAgMSAxIDQ4IDAgMjQgMjQgMCAxIDEgLTQ4IDB6TTMzNiAyNjRhMjQgMjQgMCAxIDEgMCA0OCAyNCAyNCAwIDEgMSAwLTQ4ek0zMTIgMzg0YTI0IDI0IDAgMSAxIDQ4IDAgMjQgMjQgMCAxIDEgLTQ4IDB6TTQyNCAyNjRhMjQgMjQgMCAxIDEgMCA0OCAyNCAyNCAwIDEgMSAwLTQ4ek00MDAgMzg0YTI0IDI0IDAgMSAxIDQ4IDAgMjQgMjQgMCAxIDEgLTQ4IDB6Il19LGFmdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJwZXJzb24tY2lyY2xlLXBsdXMiLGljb246WzY0MCw1MTIsW10sImU1NDEiLCJNMjgwIDI0YTU2IDU2IDAgMSAwIC0xMTIgMCA1NiA1NiAwIDEgMCAxMTIgMHptMjQgMjEyLjdMMzQxIDI4Ni42YzEyLjgtMTcuNSAyOC41LTMyLjcgNDYuMy00NWwtNTYuMi03NS43QzMwNiAxMzIgMjY2LjMgMTEyIDIyNCAxMTJzLTgyIDIwLTEwNy4yIDUzLjlsLTcwLjUgOTVjLTEwLjUgMTQuMi03LjYgMzQuMiA2LjYgNDQuOHMzNC4yIDcuNiA0NC44LTYuNkwxNDQgMjM2LjcgMTQ0IDUxMmMwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMybDAtMTYwYzAtOC44IDcuMi0xNiAxNi0xNnMxNiA3LjIgMTYgMTZsMCAxNjBjMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMmwwLTI3NS4zek00OTYgNTQ0YTE0NCAxNDQgMCAxIDAgMC0yODggMTQ0IDE0NCAwIDEgMCAwIDI4OHptMTYtMjA4bDAgNDggNDggMGM4LjggMCAxNiA3LjIgMTYgMTZzLTcuMiAxNi0xNiAxNmwtNDggMCAwIDQ4YzAgOC44LTcuMiAxNi0xNiAxNnMtMTYtNy4yLTE2LTE2bDAtNDgtNDggMGMtOC44IDAtMTYtNy4yLTE2LTE2czcuMi0xNiAxNi0xNmw0OCAwIDAtNDhjMC04LjggNy4yLTE2IDE2LTE2czE2IDcuMiAxNiAxNnoiXX0sbmZ0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImhhbXNhIixpY29uOls1MTIsNTEyLFtdLCJmNjY1IiwiTTM0LjYgMjg4TDgwIDI4OGM4LjggMCAxNi03LjIgMTYtMTZMOTYgNzJjMC0yMi4xIDE3LjktNDAgNDAtNDBzNDAgMTcuOSA0MCA0MGwwIDEzMmMwIDExIDkgMjAgMjAgMjBzMjAtOSAyMC0yMGwwLTE2NGMwLTIyLjEgMTcuOS00MCA0MC00MHM0MCAxNy45IDQwIDQwbDAgMTY0YzAgMTEgOSAyMCAyMCAyMHMyMC05IDIwLTIwbDAtMTMyYzAtMjIuMSAxNy45LTQwIDQwLTQwczQwIDE3LjkgNDAgNDBsMCAyMDBjMCA4LjggNy4yIDE2IDE2IDE2bDQ1LjQgMGMxOS4xIDAgMzQuNiAxNS41IDM0LjYgMzQuNiAwIDguNi0zLjIgMTYuOS05IDIzLjNMNDE2LjYgNDQxYy00MS4xIDQ1LjItOTkuNCA3MS0xNjAuNiA3MVMxMzYuNiA0ODYuMiA5NS40IDQ0MUw5IDM0NS45Yy01LjgtNi40LTktMTQuNy05LTIzLjMgMC0xOS4xIDE1LjUtMzQuNiAzNC42LTM0LjZ6TTI1NiAyODhjLTM4LjQgMC03Ni44IDM1LjgtOTAuNiA1MC4yLTMuNiAzLjctNS40IDguNy01LjQgMTMuOHMxLjggMTAuMSA1LjQgMTMuOEMxNzkuMiAzODAuMiAyMTcuNiA0MTYgMjU2IDQxNnM3Ni44LTM1LjggOTAuNi01MC4yYzMuNi0zLjcgNS40LTguNyA1LjQtMTMuOHMtMS44LTEwLjEtNS40LTEzLjhDMzMyLjggMzIzLjggMjk0LjQgMjg4IDI1NiAyODh6bTAgMzJhMzIgMzIgMCAxIDEgMCA2NCAzMiAzMiAwIDEgMSAwLTY0eiJdfSxvZnQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToicGVyc29uLWNpcmNsZS1xdWVzdGlvbiIsaWNvbjpbNjQwLDUxMixbXSwiZTU0MiIsIk0yODAgMjRhNTYgNTYgMCAxIDAgLTExMiAwIDU2IDU2IDAgMSAwIDExMiAwem0yNCAyMTIuN0wzNDEgMjg2LjZjMTIuOC0xNy41IDI4LjUtMzIuNyA0Ni4zLTQ1bC01Ni4yLTc1LjdDMzA2IDEzMiAyNjYuMyAxMTIgMjI0IDExMnMtODIgMjAtMTA3LjIgNTMuOWwtNzAuNSA5NWMtMTAuNSAxNC4yLTcuNiAzNC4yIDYuNiA0NC44czM0LjIgNy42IDQ0LjgtNi42TDE0NCAyMzYuNyAxNDQgNTEyYzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJsMC0xNjBjMC04LjggNy4yLTE2IDE2LTE2czE2IDcuMiAxNiAxNmwwIDE2MGMwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMybDAtMjc1LjN6TTQ5NiA1NDRhMTQ0IDE0NCAwIDEgMCAwLTI4OCAxNDQgMTQ0IDAgMSAwIDAgMjg4em0wLTEwMGEyMCAyMCAwIDEgMSAwIDQwIDIwIDIwIDAgMSAxIDAtNDB6bTAtMTAwYy0xMS42IDAtMjEuMyA4LjItMjMuNSAxOS4yLTEuOCA4LjctMTAuMiAxNC4zLTE4LjkgMTIuNXMtMTQuMy0xMC4yLTEyLjUtMTguOWM1LjItMjUuNiAyNy44LTQ0LjggNTQuOS00NC44IDMwLjkgMCA1NiAyNS4xIDU2IDU2IDAgMTkuOC0xMS43IDM3LjgtMjkuOCA0NS45bC0xMC40IDQuNmMtMS4yIDcuNy03LjggMTMuNS0xNS44IDEzLjUtOC44IDAtMTYtNy4yLTE2LTE2IDAtMTEuMiA2LjYtMjEuMyAxNi44LTI1LjlsMTIuNC01LjVjNi42LTIuOSAxMC44LTkuNCAxMC44LTE2LjYgMC0xMy4zLTEwLjctMjQtMjQtMjR6Il19LHNmdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJjbGlwYm9hcmQtY2hlY2siLGljb246WzM4NCw1MTIsW10sImY0NmMiLCJNMjU2IDBjMjMuNyAwIDQ0LjQgMTIuOSA1NS40IDMybDguNiAwYzM1LjMgMCA2NCAyOC43IDY0IDY0bDAgMzUyYzAgMzUuMy0yOC43IDY0LTY0IDY0TDY0IDUxMmMtMzUuMyAwLTY0LTI4LjctNjQtNjRMMCA5NkMwIDYwLjcgMjguNyAzMiA2NCAzMmw4LjYgMEM4My42IDEyLjkgMTA0LjMgMCAxMjggMEwyNTYgMHptMjYuOSAyMTIuNmMtMTAuNy03LjgtMjUuNy01LjQtMzMuNSA1LjNsLTg1LjYgMTE3LjctMjYuNS0yNy40Yy05LjItOS41LTI0LjQtOS44LTMzLjktLjZzLTkuOCAyNC40LS42IDMzLjlsNDYuNCA0OGM0LjkgNS4xIDExLjggNy44IDE4LjkgNy4zczEzLjYtNC4xIDE3LjgtOS44TDI4OC4yIDI0Ni4xYzcuOC0xMC43IDUuNC0yNS43LTUuMy0zMy41ek0xMzYgNjRjLTEzLjMgMC0yNCAxMC43LTI0IDI0czEwLjcgMjQgMjQgMjRsMTEyIDBjMTMuMyAwIDI0LTEwLjcgMjQtMjRzLTEwLjctMjQtMjQtMjRMMTM2IDY0eiJdfSxSMmU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToic2hhcmUtZnJvbS1zcXVhcmUiLGljb246WzU3Niw1MTIsWzYxNTA5LCJzaGFyZS1zcXVhcmUiXSwiZjE0ZCIsIk0zODQuNSAyNGwwIDcyLTY0IDBjLTc5LjUgMC0xNDQgNjQuNS0xNDQgMTQ0IDAgOTMuNCA4Mi44IDEzNC44IDEwMC42IDE0Mi42IDIuMiAxIDQuNiAxLjQgNy4xIDEuNGwyLjUgMGM5LjggMCAxNy44LTggMTcuOC0xNy44IDAtOC4zLTUuOS0xNS41LTEyLjgtMjAuMy04LjktNi4yLTE5LjItMTguMi0xOS4yLTQwLjUgMC00NSAzNi41LTgxLjUgODEuNS04MS41bDMwLjUgMCAwIDcyYzAgOS43IDUuOCAxOC41IDE0LjggMjIuMnMxOS4zIDEuNyAyNi4yLTUuMmwxMzYtMTM2YzkuNC05LjQgOS40LTI0LjYgMC0zMy45TDQyNS41IDdjLTYuOS02LjktMTcuMi04LjktMjYuMi01LjJTMzg0LjUgMTQuMyAzODQuNSAyNHptLTI3MiA3MmMtNDQuMiAwLTgwIDM1LjgtODAgODBsMCAyNTZjMCA0NC4yIDM1LjggODAgODAgODBsMjU2IDBjNDQuMiAwIDgwLTM1LjggODAtODBsMC0zMmMwLTE3LjctMTQuMy0zMi0zMi0zMnMtMzIgMTQuMy0zMiAzMmwwIDMyYzAgOC44LTcuMiAxNi0xNiAxNmwtMjU2IDBjLTguOCAwLTE2LTcuMi0xNi0xNmwwLTI1NmMwLTguOCA3LjItMTYgMTYtMTZsMTYgMGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMmwtMTYgMHoiXX0sbGZ0PVIyZSxLRD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJyZWNlaXB0IixpY29uOlszODQsNTEyLFsxMjk1MzRdLCJmNTQzIiwiTTE0IDIuMkMyMi41LTEuNyAzMi41LS4zIDM5LjYgNS44TDgwIDQwLjQgMTIwLjQgNS44YzktNy43IDIyLjMtNy43IDMxLjIgMEwxOTIgNDAuNCAyMzIuNCA1LjhjOS03LjcgMjIuMi03LjcgMzEuMiAwTDMwNCA0MC40IDM0NC40IDUuOGM3LjEtNi4xIDE3LjEtNy41IDI1LjYtMy42UzM4NCAxNC42IDM4NCAyNGwwIDQ2NGMwIDkuNC01LjUgMTcuOS0xNCAyMS44cy0xOC41IDIuNS0yNS42LTMuNmwtNDAuNC0zNC42LTQwLjQgMzQuNmMtOSA3LjctMjIuMiA3LjctMzEuMiAwbC00MC40LTM0LjYtNDAuNCAzNC42Yy05IDcuNy0yMi4zIDcuNy0zMS4yIDBMODAgNDcxLjYgMzkuNiA1MDYuMmMtNy4xIDYuMS0xNy4xIDcuNS0yNS42IDMuNlMwIDQ5Ny40IDAgNDg4TDAgMjRDMCAxNC42IDUuNSA2LjEgMTQgMi4yek0xMDQgMTM2Yy0xMy4zIDAtMjQgMTAuNy0yNCAyNHMxMC43IDI0IDI0IDI0bDE3NiAwYzEzLjMgMCAyNC0xMC43IDI0LTI0cy0xMC43LTI0LTI0LTI0bC0xNzYgMHpNODAgMzUyYzAgMTMuMyAxMC43IDI0IDI0IDI0bDE3NiAwYzEzLjMgMCAyNC0xMC43IDI0LTI0cy0xMC43LTI0LTI0LTI0bC0xNzYgMGMtMTMuMyAwLTI0IDEwLjctMjQgMjR6bTI0LTEyMGMtMTMuMyAwLTI0IDEwLjctMjQgMjRzMTAuNyAyNCAyNCAyNGwxNzYgMGMxMy4zIDAgMjQtMTAuNyAyNC0yNHMtMTAuNy0yNC0yNC0yNGwtMTc2IDB6Il19LGNmdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJlcXVhbHMiLGljb246WzQ0OCw1MTIsWzYyNzY0XSwiM2QiLCJNMzIgMTI4Yy0xNy43IDAtMzIgMTQuMy0zMiAzMnMxNC4zIDMyIDMyIDMybDM4NCAwYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMyTDMyIDEyOHptMCAxOTJjLTE3LjcgMC0zMiAxNC4zLTMyIDMyczE0LjMgMzIgMzIgMzJsMzg0IDBjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJMMzIgMzIweiJdfSxkZnQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiY2hldnJvbi11cCIsaWNvbjpbNDQ4LDUxMixbXSwiZjA3NyIsIk0yMDEuNCAxMDUuNGMxMi41LTEyLjUgMzIuOC0xMi41IDQ1LjMgMGwxOTIgMTkyYzEyLjUgMTIuNSAxMi41IDMyLjggMCA0NS4zcy0zMi44IDEyLjUtNDUuMyAwTDIyNCAxNzMuMyA1NC42IDM0Mi42Yy0xMi41IDEyLjUtMzIuOCAxMi41LTQ1LjMgMHMtMTIuNS0zMi44IDAtNDUuM2wxOTItMTkyeiJdfSx1ZnQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToidmlydXMtc2xhc2giLGljb246WzU3Niw1MTIsW10sImUwNzUiLCJNNDEtMjQuOWMtOS40LTkuNC0yNC42LTkuNC0zMy45IDBTLTIuMy0uMyA3IDkuMWw1MjggNTI4YzkuNCA5LjQgMjQuNiA5LjQgMzMuOSAwczkuNC0yNC42IDAtMzMuOWwtODguNi04OC42YzEuNy0xMi4xLTItMjQuOC0xMS4zLTM0LTMxLjItMzEuMi05LjEtODQuNSAzNS04NC41IDIyLjEgMCA0MC0xNy45IDQwLTQwcy0xNy45LTQwLTQwLTQwYy00NC4xIDAtNjYuMS01My4zLTM1LTg0LjUgMTUuNi0xNS42IDE1LjYtNDAuOSAwLTU2LjZzLTQwLjktMTUuNi01Ni42IDBjLTMxLjIgMzEuMi04NC41IDkuMS04NC41LTM1IDAtMjIuMS0xNy45LTQwLTQwLTQwcy00MCAxNy45LTQwIDQwYzAgNDQuMS01My4zIDY2LjEtODQuNSAzNS05LjMtOS4zLTIyLTEzLTM0LTExLjNMNDEtMjQuOXpNNzIgMjE2Yy0yMi4xIDAtNDAgMTcuOS00MCA0MHMxNy45IDQwIDQwIDQwYzQ0LjEgMCA2Ni4xIDUzLjMgMzUgODQuNS0xNS42IDE1LjYtMTUuNiA0MC45IDAgNTYuNnM0MC45IDE1LjYgNTYuNiAwYzMxLjItMzEuMiA4NC41LTkuMSA4NC41IDM1IDAgMjIuMSAxNy45IDQwIDQwIDQwczQwLTE3LjkgNDAtNDBjMC0yMS40IDEyLjYtMzcuNiAyOS4xLTQ1LjFsLTI0MC0yNDBDMTA5LjYgMjAzLjQgOTMuNCAyMTYgNzIgMjE2eiJdfSxwZnQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToic2xhc2giLGljb246WzU3Niw1MTIsW10sImY3MTUiLCJNNy0yNWM5LjQtOS40IDI0LjYtOS40IDMzLjkgMEw1NjkgNTAzYzkuNCA5LjQgOS40IDI0LjYgMCAzMy45cy0yNC42IDkuNC0zMy45IDBMNyA5Qy0yLjMtLjQtMi4zLTE1LjYgNy0yNXoiXX0saGZ0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImV4cGFuZCIsaWNvbjpbNDQ4LDUxMixbXSwiZjA2NSIsIk0zMiAzMkMxNC4zIDMyIDAgNDYuMyAwIDY0bDAgOTZjMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMmwwLTY0IDY0IDBjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJMMzIgMzJ6TTY0IDM1MmMwLTE3LjctMTQuMy0zMi0zMi0zMlMwIDMzNC4zIDAgMzUybDAgOTZjMCAxNy43IDE0LjMgMzIgMzIgMzJsOTYgMGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMmwtNjQgMCAwLTY0ek0zMjAgMzJjLTE3LjcgMC0zMiAxNC4zLTMyIDMyczE0LjMgMzIgMzIgMzJsNjQgMCAwIDY0YzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJsMC05NmMwLTE3LjctMTQuMy0zMi0zMi0zMmwtOTYgMHpNNDQ4IDM1MmMwLTE3LjctMTQuMy0zMi0zMi0zMnMtMzIgMTQuMy0zMiAzMmwwIDY0LTY0IDBjLTE3LjcgMC0zMiAxNC4zLTMyIDMyczE0LjMgMzIgMzIgMzJsOTYgMGMxNy43IDAgMzItMTQuMyAzMi0zMmwwLTk2eiJdfSxCMmU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToibm90ZS1zdGlja3kiLGljb246WzQ0OCw1MTIsWzYyMDI2LCJzdGlja3ktbm90ZSJdLCJmMjQ5IiwiTTY0IDQ4MGMtMzUuMyAwLTY0LTI4LjctNjQtNjRMMCA5NkMwIDYwLjcgMjguNyAzMiA2NCAzMmwzMjAgMGMzNS4zIDAgNjQgMjguNyA2NCA2NGwwIDIxMy41YzAgMTctNi43IDMzLjMtMTguNyA0NS4zTDMyMi43IDQ2MS4zYy0xMiAxMi0yOC4zIDE4LjctNDUuMyAxOC43TDY0IDQ4MHpNMzg5LjUgMzA0TDI5NiAzMDRjLTEzLjMgMC0yNCAxMC43LTI0IDI0bDAgOTMuNSAxMTcuNS0xMTcuNXoiXX0sZmZ0PUIyZSxIMmU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToidGFibGUtY29sdW1ucyIsaWNvbjpbNDQ4LDUxMixbImNvbHVtbnMiXSwiZjBkYiIsIk0wIDk2QzAgNjAuNyAyOC43IDMyIDY0IDMybDMyMCAwYzM1LjMgMCA2NCAyOC43IDY0IDY0bDAgMzIwYzAgMzUuMy0yOC43IDY0LTY0IDY0TDY0IDQ4MGMtMzUuMyAwLTY0LTI4LjctNjQtNjRMMCA5NnptNjQgNjRsMCAyNTYgMTI4IDAgMC0yNTYtMTI4IDB6bTMyMCAwbC0xMjggMCAwIDI1NiAxMjggMCAwLTI1NnoiXX0sbWZ0PUgyZSxnZnQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToicGVyc29uLXNoZWx0ZXIiLGljb246WzUxMiw1MTIsW10sImU1NGYiLCJNMjcxLjkgNC4yYy05LjgtNS42LTIxLjktNS42LTMxLjggMGwtMjI0IDEyOEM2LjIgMTM3LjkgMCAxNDguNSAwIDE2MEwwIDQ4MGMwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMyTDY0IDE3OC42IDI1NiA2OC45IDQ0OCAxNzguNiA0NDggNDgwYzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJsMC0zMjBjMC0xMS41LTYuMi0yMi4xLTE2LjEtMjcuOGwtMjI0LTEyOHpNMjU2IDIwOGE0MCA0MCAwIDEgMCAwLTgwIDQwIDQwIDAgMSAwIDAgODB6bS04IDE5MmwxNiAwIDAgODhjMCAxMy4zIDEwLjcgMjQgMjQgMjRzMjQtMTAuNyAyNC0yNGwwLTE3NC41IDI2LjkgNDkuOWM2LjMgMTEuNyAyMC44IDE2IDMyLjUgOS44czE2LTIwLjggOS44LTMyLjVsLTMzLjItNjEuN0MzMjkuNyAyNDUuMSAyOTQuNCAyMjQgMjU2IDIyNHMtNzMuNyAyMS4xLTkxLjkgNTQuOWwtMzMuMiA2MS43Yy02LjMgMTEuNy0xLjkgMjYuMiA5LjggMzIuNXMyNi4yIDEuOSAzMi41LTkuOEwyMDAgMzEzLjUgMjAwIDQ4OGMwIDEzLjMgMTAuNyAyNCAyNCAyNHMyNC0xMC43IDI0LTI0bDAtODh6Il19LGJmdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJjaXJjbGUtbm90Y2giLGljb246WzUxMiw1MTIsW10sImYxY2UiLCJNMjIyLjcgMzIuMWM1IDE2LjktNC42IDM0LjgtMjEuNSAzOS44LTc5LjMgMjMuNi0xMzcuMSA5Ny4xLTEzNy4xIDE4NC4xIDAgMTA2IDg2IDE5MiAxOTIgMTkyczE5Mi04NiAxOTItMTkyYzAtODYuOS01Ny44LTE2MC40LTEzNy4xLTE4NC4xLTE2LjktNS0yNi42LTIyLjktMjEuNS0zOS44czIyLjktMjYuNiAzOS44LTIxLjVDNDM0LjkgNDIuMSA1MTIgMTQwIDUxMiAyNTYgNTEyIDM5Ny40IDM5Ny40IDUxMiAyNTYgNTEyUzAgMzk3LjQgMCAyNTZjMC0xMTYgNzcuMS0yMTMuOSAxODIuOS0yNDUuNCAxNi45LTUgMzQuOCA0LjYgMzkuOCAyMS41eiJdfSx2ZnQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToid2F0ZXIiLGljb246WzUxMiw1MTIsW10sImY3NzMiLCJNNDEwLjYgMTI0LjFjMjAuNyAxNS42IDQ2IDMwLjcgNzQuMiAzNC41IDEzLjEgMS44IDI1LjItNy41IDI3LTIwLjZzLTcuNS0yNS4yLTIwLjYtMjdjLTE1LjktMi4xLTMzLjItMTEuMy01MS43LTI1LjItMzguNC0yOS05MC41LTI5LTEyOSAwLTI0IDE4LjEtNDAuNyAyNi4zLTU0LjUgMjYuM3MtMzAuNS04LjItNTQuNS0yNi4zYy0zOC40LTI5LTkwLjUtMjktMTI5IDAtMTguNSAxMy45LTM1LjggMjMuMS01MS43IDI1LjItMTMuMSAxLjgtMjIuNCAxMy44LTIwLjYgMjdzMTMuOCAyMi40IDI3IDIwLjZjMjguMi0zLjggNTMuNi0xOC45IDc0LjItMzQuNSAyMS4zLTE2LjEgNDkuOS0xNi4xIDcxLjIgMCAyNC4yIDE4LjMgNTIuMyAzNS45IDgzLjQgMzUuOXM1OS4xLTE3LjcgODMuNC0zNS45YzIxLjMtMTYuMSA0OS45LTE2LjEgNzEuMiAwem0wIDE0NGMyMC43IDE1LjYgNDYgMzAuNyA3NC4yIDM0LjUgMTMuMSAxLjggMjUuMi03LjUgMjctMjAuNnMtNy41LTI1LjItMjAuNi0yN2MtMTUuOS0yLjEtMzMuMi0xMS4zLTUxLjctMjUuMi0zOC40LTI5LTkwLjUtMjktMTI5IDAtMjQgMTguMS00MC43IDI2LjMtNTQuNSAyNi4zcy0zMC41LTguMi01NC41LTI2LjNjLTM4LjQtMjktOTAuNS0yOS0xMjkgMC0xOC41IDEzLjktMzUuOCAyMy4xLTUxLjcgMjUuMi0xMy4xIDEuNy0yMi40IDEzLjgtMjAuNiAyN3MxMy44IDIyLjQgMjcgMjAuNmMyOC4yLTMuOCA1My42LTE4LjkgNzQuMi0zNC41IDIxLjMtMTYuMSA0OS45LTE2LjEgNzEuMiAwIDI0LjIgMTguMyA1Mi4zIDM1LjkgODMuNCAzNS45czU5LjEtMTcuNyA4My40LTM1LjljMjEuMy0xNi4xIDQ5LjktMTYuMSA3MS4yIDB6bS03MS4yIDE0NGMyMS4zLTE2LjEgNDkuOS0xNi4xIDcxLjIgMCAyMC43IDE1LjYgNDYgMzAuNyA3NC4yIDM0LjUgMTMuMSAxLjggMjUuMi03LjUgMjctMjAuNnMtNy41LTI1LjItMjAuNi0yN2MtMTUuOS0yLjEtMzMuMi0xMS4zLTUxLjctMjUuMi0zOC40LTI5LTkwLjUtMjktMTI5IDAtMjQgMTguMS00MC43IDI2LjMtNTQuNSAyNi4zcy0zMC41LTguMi01NC41LTI2LjNjLTM4LjQtMjktOTAuNS0yOS0xMjkgMC0xOC41IDEzLjktMzUuOCAyMy4xLTUxLjcgMjUuMi0xMy4xIDEuOC0yMi40IDEzLjgtMjAuNiAyN3MxMy44IDIyLjQgMjcgMjAuNmMyOC4yLTMuOCA1My42LTE4LjkgNzQuMi0zNC41IDIxLjMtMTYuMSA0OS45LTE2LjEgNzEuMiAwIDI0LjIgMTguMyA1Mi4zIDM1LjkgODMuNCAzNS45czU5LjEtMTcuNyA4My40LTM1Ljl6Il19LHEyZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJkZWxldGUtbGVmdCIsaWNvbjpbNjQwLDUxMixbOTAwMywiYmFja3NwYWNlIl0sImY1NWEiLCJNNTc2IDEyOGMwLTM1LjMtMjguNy02NC02NC02NEwyMDUuMyA2NGMtMTcgMC0zMy4zIDYuNy00NS4zIDE4LjdMOS40IDIzMy40Yy02IDYtOS40IDE0LjEtOS40IDIyLjZzMy40IDE2LjYgOS40IDIyLjZMMTYwIDQyOS4zYzEyIDEyIDI4LjMgMTguNyA0NS4zIDE4LjdMNTEyIDQ0OGMzNS4zIDAgNjQtMjguNyA2NC02NGwwLTI1NnpNMjg0LjEgMTg4LjFjOS40LTkuNCAyNC42LTkuNCAzMy45IDBsMzMuOSAzMy45IDMzLjktMzMuOWM5LjQtOS40IDI0LjYtOS40IDMzLjkgMHM5LjQgMjQuNiAwIDMzLjlsLTMzLjkgMzMuOSAzMy45IDMzLjljOS40IDkuNCA5LjQgMjQuNiAwIDMzLjlzLTI0LjYgOS40LTMzLjkgMGwtMzMuOS0zMy45LTMzLjkgMzMuOWMtOS40IDkuNC0yNC42IDkuNC0zMy45IDBzLTkuNC0yNC42IDAtMzMuOWwzMy45LTMzLjktMzMuOS0zMy45Yy05LjQtOS40LTkuNC0yNC42IDAtMzMuOXoiXX0seGZ0PXEyZSxuRD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJicm9vbS1iYWxsIixpY29uOls1NzYsNTEyLFsicXVpZGRpdGNoIiwicXVpZGRpdGNoLWJyb29tLWJhbGwiXSwiZjQ1OCIsIk00OTYgNTQ0YTgwIDgwIDAgMSAxIDAtMTYwIDgwIDgwIDAgMSAxIDAgMTYwek0xMDYuOCAyNzcuMmMzMC42LTMwLjYgNzMuMS00NS45IDExNS44LTQyLjJMMzQxIDM1My4zYzMuNyA0Mi44LTExLjYgODUuMi00Mi4yIDExNS45LTI3LjQgMjcuNC02NC42IDQyLjgtMTAzLjMgNDIuOEwyMi4xIDUxMmMtMTIuMiAwLTIyLjEtOS45LTIyLjEtMjIuMSAwLTYuMyAyLjctMTIuMyA3LjMtMTYuNUwxMzMuNyAzNTkuN2M0LjItMy43LS40LTEwLjQtNS40LTcuOUw3Ny4yIDM3Ny40Yy02LjEgMy0xMy4yLTEuNC0xMy4yLTguMiAwLTMxLjUgMTIuNS02MS44IDM0LjgtODRsOC04em00MTctMjcwYzEyLjYtMTAuMyAzMS4xLTkuNSA0Mi44IDIuMnMxMi40IDMwLjIgMi4yIDQyLjhsLTIuMiAyLjQtMTkyIDE5MiAzNC44IDM0LjdjNC4yIDQuMiA2LjYgMTAgNi42IDE2IDAgMTIuNS0xMC4xIDIyLjYtMjIuNiAyMi42bC0yOS4xIDAtMTA4LjMtMTA4LjMgMC0yOS4xYzAtMTIuNSAxMC4xLTIyLjYgMjIuNi0yMi42IDYgMCAxMS44IDIuNCAxNiA2LjZsMzQuOCAzNC43IDE5Mi0xOTIgMi40LTIuMnoiXX0seWZ0PW5ELHdmdD1uRCxNZnQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiaiIsaWNvbjpbMzIwLDUxMixbMTA2XSwiNGEiLCJNMjg4IDMyYzE3LjcgMCAzMiAxNC4zIDMyIDMybDAgMjU2YzAgODguNC03MS42IDE2MC0xNjAgMTYwUzAgNDA4LjQgMCAzMjBsMC0zMmMwLTE3LjcgMTQuMy0zMiAzMi0zMnMzMiAxNC4zIDMyIDMybDAgMzJjMCA1MyA0MyA5NiA5NiA5NnM5Ni00MyA5Ni05NmwwLTI1NmMwLTE3LjcgMTQuMy0zMiAzMi0zMnoiXX0sajJlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InNodXR0bGUtc3BhY2UiLGljb246WzU3Niw1MTIsWyJzcGFjZS1zaHV0dGxlIl0sImYxOTciLCJNMCAzNjhsMCA2NGMwIDI2LjUgMjEuNSA0OCA0OCA0OGw1MCAwYzQwLjYgMCA4MC40LTExIDExNS4yLTMxLjlsMTMzLjUtODAuMS05My4zIDAtNjQuOSAzOC45Yy0xNCA4LjQtMjguOSAxNC43LTQ0LjUgMTlsMC02Ni40YzkuNy01LjYgMTcuOC0xMy43IDIzLjQtMjMuNGwxOTguOCAwYzY3LjEgMCAxMjcuOC0yMC42IDE3MC4zLTcwLjYgNC42LTUuNCA0LjYtMTMuMyAwLTE4LjgtNDIuNS01MC4xLTEwMy4yLTcwLjYtMTcwLjMtNzAuNmwtMTk4LjggMGMtNS42LTkuNy0xMy43LTE3LjgtMjMuNC0yMy40bDAtNjYuNGMxNS42IDQuMiAzMC42IDEwLjYgNDQuNSAxOWw2NC45IDM4LjkgOTMuMyAwLTEzMy41LTgwLjFDMTc4LjQgNDMgMTM4LjYgMzIgOTggMzJMNDggMzJDMjEuNSAzMiAwIDUzLjUgMCA4MEwwIDM2OHptOTYgMGwwIDY0LTQ4IDAgMC02NCA0OCAwek05NiA4MGwwIDY0LTQ4IDAgMC02NCA0OCAwek00MTYgMjI0YzguOCAwIDE2IDcuMiAxNiAxNmwwIDMyYzAgOC44LTcuMiAxNi0xNiAxNnMtMTYtNy4yLTE2LTE2bDAtMzJjMC04LjggNy4yLTE2IDE2LTE2eiJdfSxrZnQ9ajJlLFNmdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJ5aW4teWFuZyIsaWNvbjpbNTEyLDUxMixbOTc3NV0sImY2YWQiLCJNMjI0IDE2MGEzMiAzMiAwIDEgMSA2NCAwIDMyIDMyIDAgMSAxIC02NCAwem0zMiAzNTJhMjU2IDI1NiAwIDEgMCAwLTUxMiAyNTYgMjU2IDAgMSAwIDAgNTEyem0wLTQ0OGM1MyAwIDk2IDQzIDk2IDk2cy00MyA5Ni05NiA5Ni05NiA0My05NiA5NiA0MyA5NiA5NiA5NkMxNTAgNDQ4IDY0IDM2MiA2NCAyNTZTMTUwIDY0IDI1NiA2NHpNMjI0IDM1MmEzMiAzMiAwIDEgMSA2NCAwIDMyIDMyIDAgMSAxIC02NCAweiJdfSx6ZnQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToic3RvcCIsaWNvbjpbNDQ4LDUxMixbOTIwOV0sImYwNGQiLCJNNjQgMzJsMzIwIDBjMzUuMyAwIDY0IDI4LjcgNjQgNjRsMCAzMjBjMCAzNS4zLTI4LjcgNjQtNjQgNjRMNjQgNDgwYy0zNS4zIDAtNjQtMjguNy02NC02NEwwIDk2QzAgNjAuNyAyOC43IDMyIDY0IDMyeiJdfSxDZnQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToidHJvd2VsIixpY29uOls1NzYsNTEyLFtdLCJlNTg5IiwiTTQwNy45IDE4MS40TDI3Ny4zIDMxMiAzNDIuNiAzNzcuNGM3LjkgNy45IDExLjEgMTkuNCA4LjQgMzAuM3MtMTAuOCAxOS42LTIxLjUgMjIuOWwtMjU2IDgwYy0xMS40IDMuNS0yMy44IC41LTMyLjItNy45cy0xMS41LTIwLjgtNy45LTMyLjJsODAtMjU2YzMuMy0xMC43IDEyLTE4LjkgMjIuOS0yMS41czIyLjQgLjUgMzAuMyA4LjRMMjMyIDI2Ni43IDM2Mi42IDEzNi4xYy0xNC4zLTE0LjYtMTQuMi0zOCAuMy01Mi41bDk1LjQtOTUuNGMyNi45LTI2LjkgNzAuNS0yNi45IDk3LjUgMHMyNi45IDcwLjUgMCA5Ny41bC05NS40IDk1LjRjLTE0LjUgMTQuNS0zNy45IDE0LjYtNTIuNSAuM3oiXX0sVjJlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImhhbmQtYmFjay1maXN0IixpY29uOlszODQsNTEyLFsiaGFuZC1yb2NrIl0sImYyNTUiLCJNNy40IDI1My42QzIuNiAyNDUuOSAwIDIzNy4xIDAgMjI4bDAtMzZjMC0yNi41IDIxLjUtNDggNDgtNDhsMTYgMCAwLTgwYzAtMjYuNSAyMS41LTQ4IDQ4LTQ4IDE3LjMgMCAzMi40IDkuMSA0MC45IDIyLjggNC4zLTIyLjEgMjMuOC0zOC44IDQ3LjEtMzguOCAyMy40IDAgNDIuOSAxNi44IDQ3LjEgMzguOSA3LjMtNC40IDE1LjgtNi45IDI0LjktNi45IDIyLjEgMCA0MC44IDE1IDQ2LjMgMzUuNCA1LjUtMi4yIDExLjQtMy40IDE3LjctMy40IDI2LjUgMCA0OCAyMS41IDQ4IDQ4bDAgOTYuOWMwIDkuOS0yLjMgMTkuNy02LjggMjguNmwtMzkuNiA3OS4xYy0xMC44IDIxLjctMzMgMzUuNC01Ny4yIDM1LjRMOTYgMzUyYy0xNi41IDAtMzEuOC04LjQtNDAuNi0yMi40bC00OC03NnpNMzIgNDgwbDAtNDhjMC0xNy43IDE0LjMtMzIgMzItMzJsMjU2IDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJsMCA0OGMwIDE3LjctMTQuMyAzMi0zMiAzMkw2NCA1MTJjLTE3LjcgMC0zMi0xNC4zLTMyLTMyeiJdfSxUZnQ9VjJlLF9mdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJ0ZW1wZXJhdHVyZS1oaWdoIixpY29uOls1MTIsNTEyLFtdLCJmNzY5IiwiTTk2IDk2YzAtNTMgNDMtOTYgOTYtOTZzOTYgNDMgOTYgOTZsMCAxNjQuN2MyOS41IDI2LjQgNDggNjQuNyA0OCAxMDcuMyAwIDc5LjUtNjQuNSAxNDQtMTQ0IDE0NFM0OCA0NDcuNSA0OCAzNjhjMC00Mi42IDE4LjUtODEgNDgtMTA3LjNMOTYgOTZ6bTk2IDMzNmMzNS4zIDAgNjQtMjguNyA2NC02NCAwLTI2LjktMTYuNS00OS45LTQwLTU5LjNMMjE2IDk2YzAtMTMuMy0xMC43LTI0LTI0LTI0cy0yNCAxMC43LTI0IDI0bDAgMjEyLjdjLTIzLjUgOS41LTQwIDMyLjUtNDAgNTkuMyAwIDM1LjMgMjguNyA2NCA2NCA2NHpNNDY0IDgwYTMyIDMyIDAgMSAwIC02NCAwIDMyIDMyIDAgMSAwIDY0IDB6TTM1MiA4MGE4MCA4MCAwIDEgMSAxNjAgMCA4MCA4MCAwIDEgMSAtMTYwIDB6Il19LExmdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJncmVhdGVyLXRoYW4iLGljb246WzUxMiw1MTIsWzYyNzY5XSwiM2UiLCJNMzQuOSA1MC42Yy03LjQgMTYtLjQgMzUuMSAxNS42IDQyLjVMNDAzLjYgMjU2IDUwLjYgNDE5Yy0xNiA3LjQtMjMuMSAyNi40LTE1LjYgNDIuNXMyNi40IDIzIDQyLjUgMTUuNmw0MTYtMTkyYzExLjMtNS4yIDE4LjYtMTYuNiAxOC42LTI5LjFzLTcuMy0yMy44LTE4LjYtMjkuMUw3Ny40IDM1Yy0xNi03LjQtMzUuMS0uNC00Mi41IDE1LjZ6Il19LEFmdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJjcnV0Y2giLGljb246WzUxMiw1MTIsW10sImY3ZjciLCJNMjk3LjQgOS40YzEyLjUtMTIuNSAzMi44LTEyLjUgNDUuMyAwbDE2MCAxNjBjMTIuNSAxMi41IDEyLjUgMzIuOCAwIDQ1LjNzLTMyLjggMTIuNS00NS4zIDBsLTEuNC0xLjQtMTU4LjYgMTU4LjZjLTE4IDE4LTQyLjQgMjguMS02Ny45IDI4LjFsLTU5IDBjLTguNSAwLTE2LjYgMy40LTIyLjYgOS40LTYxLjcgNjEuNy05Mi44IDkyLjgtOTMuMyA5My4zLTEyLjUgMTIuNS0zMi44IDEyLjUtNDUuMyAwcy0xMi41LTMyLjggMC00NS4zbDE2LTE2IDAgMCA3Ny4zLTc3LjNjNi02IDkuNC0xNC4xIDkuNC0yMi42bDAtNTljMC0yNS41IDEwLjEtNDkuOSAyOC4xLTY3LjlMMjk4LjcgNTYgMjk3LjQgNTQuNmMtMTIuNS0xMi41LTEyLjUtMzIuOCAwLTQ1LjN6TTM0NCAxMDEuM0wyNjEuMyAxODQgMzI4IDI1MC43IDQxMC43IDE2OCAzNDQgMTAxLjN6bS0xMjggMTI4bC0zMC42IDMwLjZjLTYgNi05LjQgMTQuMS05LjQgMjIuNmwwIDUzLjUgNTMuNSAwYzguNSAwIDE2LjYtMy40IDIyLjYtOS40TDI4Mi43IDI5NiAyMTYgMjI5LjN6Il19LFUyZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJzZXB0YWdvbiIsaWNvbjpbNTc2LDUxMixbImhlcHRhZ29uIl0sImU4MjAiLCJNMjY3LjQtMzEuNWMxNS45LTUuNSAzMy41LTQuNiA0OC44IDIuN2wxNzIuNCA4MyA2LjMgMy41YzE0LjIgOSAyNC41IDIzLjMgMjguMyAzOS45bDQyLjYgMTg2LjUgMS4yIDcuMmMxLjYgMTQuMy0xLjcgMjguOC05LjQgNDEuMWwtNC4yIDUuOS0xMTkuMyAxNDkuNmMtMTIuMSAxNS4yLTMwLjYgMjQuMS01MCAyNC4xbC0xOTEuMyAwYy0xOS41IDAtMzcuOS04LjktNTAtMjQuMUwyMy41IDMzOC40Yy0xMi4xLTE1LjItMTYuNy0zNS4yLTEyLjMtNTQuMmw0Mi42LTE4Ni41IDItN2M1LjYtMTUuOSAxNy4yLTI5IDMyLjYtMzYuNGwxNzIuNC04MyA2LjctMi43eiJdfSxEZnQ9VTJlLEVmdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJzdHJlZXQtdmlldyIsaWNvbjpbNTEyLDUxMixbXSwiZjIxZCIsIk0yNTYgMGE2NCA2NCAwIDEgMSAwIDEyOCA2NCA2NCAwIDEgMSAwLTEyOHpNMjI0IDE2MGw2NCAwYzM1LjMgMCA2NCAyOC43IDY0IDY0bDAgNDhjMCAxNy43LTE0LjMgMzItMzIgMzJsLTEuOCAwLTExLjEgOTkuNWMtMS44IDE2LjItMTUuNSAyOC41LTMxLjggMjguNWwtMzguNyAwYy0xNi4zIDAtMzAtMTIuMy0zMS44LTI4LjVsLTExLjEtOTkuNS0xLjggMGMtMTcuNyAwLTMyLTE0LjMtMzItMzJsMC00OGMwLTM1LjMgMjguNy02NCA2NC02NHpNNDEyLjQgNDAwLjJjLTE2LjEtNC4yLTM0LjgtNy42LTU1LjQtMTAuMmw1LjMtNDcuN2MyMi43IDIuOSA0My43IDYuNyA2Mi4xIDExLjUgMjIuNCA1LjggNDIuNiAxMy4zIDU3LjggMjMuMyAxNC43IDkuNiAyOS44IDI0LjkgMjkuOCA0N3MtMTUuMSAzNy40LTI5LjggNDdjLTE1LjIgOS45LTM1LjUgMTcuNS01Ny44IDIzLjMtNDUuMSAxMS43LTEwNS4zIDE3LjgtMTY4LjQgMTcuOHMtMTIzLjMtNi4xLTE2OC40LTE3LjhDNjUuMiA0ODguNCA0NSA0ODAuOSAyOS44IDQ3MSAxNS4xIDQ2MS40IDAgNDQ2LjEgMCA0MjRzMTUuMS0zNy40IDI5LjgtNDdjMTUuMi05LjkgMzUuNS0xNy41IDU3LjgtMjMuMyAxOC41LTQuOCAzOS41LTguNiA2Mi4xLTExLjVMMTU1IDM5MGMtMjAuNiAyLjYtMzkuMyA2LjEtNTUuNCAxMC4yLTU2LjYgMTQuNi01Ni42IDMyLjkgMCA0Ny41IDM5LjkgMTAuMyA5NS44IDE2LjIgMTU2LjQgMTYuMnMxMTYuNS01LjkgMTU2LjQtMTYuMmM1Ni42LTE0LjYgNTYuNi0zMi45IDAtNDcuNXoiXX0sJGZ0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6IndhdmUtc3F1YXJlIixpY29uOls1MTIsNTEyLFtdLCJmODNlIiwiTTY0IDk2YzAtMTcuNyAxNC4zLTMyIDMyLTMybDE2MCAwYzE3LjcgMCAzMiAxNC4zIDMyIDMybDAgMjg4IDk2IDAgMC0xMjhjMC0xNy43IDE0LjMtMzIgMzItMzJsNjQgMGMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMmwtMzIgMCAwIDEyOGMwIDE3LjctMTQuMyAzMi0zMiAzMmwtMTYwIDBjLTE3LjcgMC0zMi0xNC4zLTMyLTMybDAtMjg4LTk2IDAgMCAxMjhjMCAxNy43LTE0LjMgMzItMzIgMzJsLTY0IDBjLTE3LjcgMC0zMi0xNC4zLTMyLTMyczE0LjMtMzIgMzItMzJsMzIgMCAwLTEyOHoiXX0sSWZ0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImFuZ2xlLWxlZnQiLGljb246WzI1Niw1MTIsWzgyNDldLCJmMTA0IiwiTTkuNCAyMzMuNGMtMTIuNSAxMi41LTEyLjUgMzIuOCAwIDQ1LjNsMTYwIDE2MGMxMi41IDEyLjUgMzIuOCAxMi41IDQ1LjMgMHMxMi41LTMyLjggMC00NS4zTDc3LjMgMjU2IDIxNC42IDExOC42YzEyLjUtMTIuNSAxMi41LTMyLjggMC00NS4zcy0zMi44LTEyLjUtNDUuMyAwbC0xNjAgMTYweiJdfSxQZnQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToic2NyZXdkcml2ZXIiLGljb246WzU3Niw1MTIsWzEyOTY5MV0sImY1NGEiLCJNMzUyLjEgMTQ2LjdsMC00OS42YzAtMTAuNyA1LjMtMjAuNyAxNC4yLTI2LjZMNDg1LjItOC43YzYuMy00LjIgMTQuOC0zLjQgMjAuMiAybDQ1LjQgNDUuNWM1LjQgNS40IDYuMiAxMy44IDIgMjAuMkw0NzMuNiAxNzcuOGMtNS45IDguOS0xNS45IDE0LjItMjYuNiAxNC4ybC00OS42IDAtOTAuNyA5MC43YzE1IDMzLjMgOC45IDczLjktMTguNSAxMDEuM0wxNjIuMSA1MTAuMWMtMTguNyAxOC43LTQ5LjEgMTguNy02Ny45IDBMMzQuMSA0NDkuOWMtMTguNy0xOC43LTE4LjctNDkuMSAwLTY3LjlMMTYwLjEgMjU2YzI3LjQtMjcuNCA2Ny45LTMzLjYgMTAxLjMtMTguNWw5MC43LTkwLjd6Il19LE5mdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJ0cmFjdG9yIixpY29uOls1NzYsNTEyLFsxMjg2NjhdLCJmNzIyIiwiTTE2MCA5NmwwIDk2IDEzMy40IDAtNTcuNi05Ni03NS44IDB6TTk2IDIyM0w5NiA2NGMwLTE3LjcgMTQuMy0zMiAzMi0zMmwxMDcuOCAwYzIyLjUgMCA0My4zIDExLjggNTQuOSAzMS4xbDc3LjQgMTI4LjkgNjQgMCAwLTcyYzAtMTMuMyAxMC43LTI0IDI0LTI0czI0IDEwLjcgMjQgMjRsMCA3MiA0OCAwYzI2LjUgMCA0OCAyMS41IDQ4IDQ4bDAgNDEuNWMwIDE0LjItNi4zIDI3LjgtMTcuMyAzNi45bC0zNSAyOS4yYzI2LjUgMTUuMiA0NC4zIDQzLjcgNDQuMyA3Ni40IDAgNDguNi0zOS40IDg4LTg4IDg4cy04OC0zOS40LTg4LTg4YzAtMTQuNCAzLjUtMjggOS42LTQwbC0xMDEuMiAwYy0zIDEzLjQtNy45IDI2LTE0LjQgMzcuNyA3LjcgOS40IDcuMiAyMy40LTEuNiAzMi4ybC0yMi42IDIyLjZjLTguOCA4LjgtMjIuNyA5LjMtMzIuMiAxLjYtOS4zIDUuMi0xOS4zIDkuMy0yOS44IDEyLjMtMS4yIDEyLjEtMTEuNCAyMS42LTIzLjkgMjEuNmwtMzIgMGMtMTIuNCAwLTIyLjctOS41LTIzLjktMjEuNi0xMC41LTMtMjAuNC03LjItMjkuOC0xMi4zLTkuNCA3LjctMjMuNCA3LjItMzIuMi0xLjZMMzUuNSA0NTMuOGMtOC44LTguOC05LjMtMjIuNy0xLjYtMzIuMi01LjItOS4zLTkuMy0xOS4zLTEyLjMtMjkuOC0xMi4xLTEuMi0yMS42LTExLjQtMjEuNi0yMy45bDAtMzJjMC0xMi40IDkuNS0yMi43IDIxLjYtMjMuOSAzLTEwLjUgNy4yLTIwLjQgMTIuMy0yOS44LTcuNy05LjQtNy4yLTIzLjQgMS42LTMyLjJsMjIuNi0yMi42YzguOC04LjggMjIuNy05LjMgMzIuMi0xLjYgMS45LTEgMy43LTIgNS43LTN6bTY0IDY1YTY0IDY0IDAgMSAwIDAgMTI4IDY0IDY0IDAgMSAwIDAtMTI4ek00NDAgNDI0YTQwIDQwIDAgMSAwIDgwIDAgNDAgNDAgMCAxIDAgLTgwIDB6Il19LEZmdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJicmlkZ2UtY2lyY2xlLXhtYXJrIixpY29uOls1NzYsNTEyLFtdLCJlNGNiIiwiTTMyIDMyQzE0LjMgMzIgMCA0Ni4zIDAgNjRTMTQuMyA5NiAzMiA5Nmw4IDAgMCA2NC00MCAwIDAgMTEyYzM3LjYgOS40IDY0IDQzLjIgNjQgODJsMCA5NGMwIDE3LjcgMTQuMyAzMiAzMiAzMmwzMiAwYzE3LjcgMCAzMi0xNC4zIDMyLTMybDAtNjRjMC01MyA0My05NiA5Ni05NiA2LjQgMCAxMi43IC42IDE4LjcgMS44IDM0LjctNDkuNSA5Mi4yLTgxLjggMTU3LjMtODEuOCAyOC42IDAgNTUuNiA2LjIgODAgMTcuNGwwLTY1LjQtNDAgMCAwLTY0IDggMGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMkwzMiAzMnpNNDI0IDk2bDAgNjQtODAgMCAwLTY0IDgwIDB6TTI5NiA5NmwwIDY0LTgwIDAgMC02NCA4MCAwek04OCA5Nmw4MCAwIDAgNjQtODAgMCAwLTY0ek00MzIgNTQ0YTE0NCAxNDQgMCAxIDAgMC0yODggMTQ0IDE0NCAwIDEgMCAwIDI4OHptNTkuMy0xODAuN2wtMzYuNyAzNi43IDM2LjcgMzYuN2M2LjIgNi4yIDYuMiAxNi40IDAgMjIuNnMtMTYuNCA2LjItMjIuNiAwbC0zNi43LTM2LjctMzYuNyAzNi43Yy02LjIgNi4yLTE2LjQgNi4yLTIyLjYgMHMtNi4yLTE2LjQgMC0yMi42bDM2LjctMzYuNy0zNi43LTM2LjdjLTYuMi02LjItNi4yLTE2LjQgMC0yMi42czE2LjQtNi4yIDIyLjYgMGwzNi43IDM2LjcgMzYuNy0zNi43YzYuMi02LjIgMTYuNC02LjIgMjIuNiAwczYuMiAxNi40IDAgMjIuNnoiXX0sT2Z0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InZpYWxzIixpY29uOls1MTIsNTEyLFtdLCJmNDkzIiwiTTMyIDBDMTQuMyAwIDAgMTQuMyAwIDMyUzE0LjMgNjQgMzIgNjRsMCAzNTJjMCA1MyA0MyA5NiA5NiA5NnM5Ni00MyA5Ni05NmwwLTM1MiA2NCAwIDAgMzUyYzAgNTMgNDMgOTYgOTYgOTZzOTYtNDMgOTYtOTZsMC0zNTJjMTcuNyAwIDMyLTE0LjMgMzItMzJTNDk3LjcgMCA0ODAgMEwzMiAwek0xNjAgNjRsMCAxMjgtNjQgMCAwLTEyOCA2NCAwem0yNTYgMGwwIDEyOC02NCAwIDAtMTI4IDY0IDB6Il19LFJmdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJzdGV0aG9zY29wZSIsaWNvbjpbNTc2LDUxMixbMTI5NjU4XSwiZjBmMSIsIk0zMiA0OEMzMiAyMS41IDUzLjUgMCA4MCAwbDQ4IDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJsLTMyIDAgMCAxMjhjMCA1MyA0MyA5NiA5NiA5NnM5Ni00MyA5Ni05NmwwLTEyOC0zMiAwYy0xNy43IDAtMzItMTQuMy0zMi0zMlMyMzguMyAwIDI1NiAwbDQ4IDBjMjYuNSAwIDQ4IDIxLjUgNDggNDhsMCAxNDRjMCA3Ny40LTU1IDE0Mi0xMjggMTU2LjhsMCAxOS4yYzAgNjEuOSA1MC4xIDExMiAxMTIgMTEyczExMi01MC4xIDExMi0xMTJsMC04NS41Yy0zNy4zLTEzLjItNjQtNDguNy02NC05MC41IDAtNTMgNDMtOTYgOTYtOTZzOTYgNDMgOTYgOTZjMCA0MS44LTI2LjcgNzcuNC02NCA5MC41bDAgODUuNWMwIDk3LjItNzguOCAxNzYtMTc2IDE3NlMxNjAgNDY1LjIgMTYwIDM2OGwwLTE5LjJDODcgMzM0IDMyIDI2OS40IDMyIDE5MkwzMiA0OHpNNDgwIDIyNGEzMiAzMiAwIDEgMCAwLTY0IDMyIDMyIDAgMSAwIDAgNjR6Il19LEJmdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJwb2RjYXN0IixpY29uOls0NDgsNTEyLFtdLCJmMmNlIiwiTTMzNiAzNTkuOGMzOS4xLTMyLjMgNjQtODEuMSA2NC0xMzUuOCAwLTk3LjItNzguOC0xNzYtMTc2LTE3NlM0OCAxMjYuOCA0OCAyMjRDNDggMjc4LjcgNzIuOSAzMjcuNSAxMTIgMzU5LjggMTEyLjQgMzc3LjQgMTE1LjIgNDAwLjIgMTE4LjQgNDIxLjYgNDggMzgzLjkgMCAzMDkuNSAwIDIyNCAwIDEwMC4zIDEwMC4zIDAgMjI0IDBTNDQ4IDEwMC4zIDQ0OCAyMjRjMCA4NS42LTQ4IDE1OS45LTExOC41IDE5Ny42IDMuMy0yMS40IDYtNDQuMiA2LjQtNjEuOHptLTE0LTUzLjRjLTguMy0xMi42LTE5LjItMjEuNi0zMC40LTI3LjgtMi4xLTEuMS00LjItMi4yLTYuMy0zLjIgMTEuNy0xMy45IDE4LjgtMzEuOSAxOC44LTUxLjUgMC00NC4yLTM1LjgtODAtODAtODBzLTgwIDM1LjgtODAgODBjMCAxOS42IDcuMSAzNy42IDE4LjggNTEuNS0yLjEgMS00LjIgMi02LjMgMy4yLTExLjIgNi4yLTIyLjEgMTUuMi0zMC40IDI3LjgtMTguOC0yMi4zLTMwLjEtNTEtMzAuMS04Mi40IDAtNzAuNyA1Ny4zLTEyOCAxMjgtMTI4czEyOCA1Ny4zIDEyOCAxMjhjMCAzMS40LTExLjMgNjAuMi0zMC4xIDgyLjR6TTIyNCAzMTJjMzIuOSAwIDY0IDguNiA2NCA0My44IDAgMzMtMTIuOSAxMDQuMS0yMC42IDEzMi45LTUuMSAxOS0yNC41IDIzLjQtNDMuNCAyMy40cy0zOC4yLTQuNC00My40LTIzLjRjLTcuOC0yOC41LTIwLjYtOTkuNy0yMC42LTEzMi44IDAtMzUuMSAzMS4xLTQzLjggNjQtNDMuOHptMC0xMjhhNDAgNDAgMCAxIDEgMCA4MCA0MCA0MCAwIDEgMSAwLTgweiJdfSxIZnQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiYXJyb3ctdXAtcmlnaHQtZG90cyIsaWNvbjpbNTEyLDUxMixbXSwiZTRiNyIsIk05NiAzMkM3OC4zIDMyIDY0IDQ2LjMgNjQgNjRTNzguMyA5NiA5NiA5NkwxMTQuNyA5NiA5LjQgMjAxLjRjLTEyLjUgMTIuNS0xMi41IDMyLjggMCA0NS4zczMyLjggMTIuNSA0NS4zIDBMMTYwIDE0MS4zIDE2MCAxNjBjMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMmwwLTk2YzAtMTcuNy0xNC4zLTMyLTMyLTMyTDk2IDMyek00MDMuOCA3MC4xYTM4LjEgMzguMSAwIDEgMCA3Ni4yIDAgMzguMSAzOC4xIDAgMSAwIC03Ni4yIDB6TTI3OS43IDE5NC4yYTM4LjEgMzguMSAwIDEgMCA3Ni4yIDAgMzguMSAzOC4xIDAgMSAwIC03Ni4yIDB6bTE2Mi4yLTM4LjFhMzguMSAzOC4xIDAgMSAwIDAgNzYuMiAzOC4xIDM4LjEgMCAxIDAgMC03Ni4yek0xNTYuMiAzMTcuOGEzOC4xIDM4LjEgMCAxIDAgNzYuMiAwIDM4LjEgMzguMSAwIDEgMCAtNzYuMiAwem0xNjEuNi0zOC4xYTM4LjEgMzguMSAwIDEgMCAwIDc2LjIgMzguMSAzOC4xIDAgMSAwIDAtNzYuMnptODYuMSAzOC4xYTM4LjEgMzguMSAwIDEgMCA3Ni4yIDAgMzguMSAzOC4xIDAgMSAwIC03Ni4yIDB6TTcwLjEgNDAzLjhhMzguMSAzOC4xIDAgMSAwIDAgNzYuMiAzOC4xIDM4LjEgMCAxIDAgMC03Ni4yem04Ni4xIDM4LjFhMzguMSAzOC4xIDAgMSAwIDc2LjIgMCAzOC4xIDM4LjEgMCAxIDAgLTc2LjIgMHptMTYxLjYtMzguMWEzOC4xIDM4LjEgMCAxIDAgMCA3Ni4yIDM4LjEgMzguMSAwIDEgMCAwLTc2LjJ6bTg2LjEgMzguMWEzOC4xIDM4LjEgMCAxIDAgNzYuMiAwIDM4LjEgMzguMSAwIDEgMCAtNzYuMiAweiJdfSxxZnQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiY2hlc3MtcXVlZW4iLGljb246WzUxMiw1MTIsWzk4MTldLCJmNDQ1IiwiTTI1NiA4MGE0OCA0OCAwIDEgMCAwLTk2IDQ4IDQ4IDAgMSAwIDAgOTZ6TTUuNSAxODVMMTI4IDM4NCA3MS44IDQ1NC4zYy01IDYuMy03LjggMTQuMS03LjggMjIuMiAwIDE5LjYgMTUuOSAzNS41IDM1LjUgMzUuNWwzMTIuOSAwYzE5LjYgMCAzNS41LTE1LjkgMzUuNS0zNS41IDAtOC4xLTIuNy0xNS45LTcuOC0yMi4yTDM4NCAzODQgNTA2LjUgMTg1YzMuNi01LjkgNS41LTEyLjcgNS41LTE5LjZsMC0uNmMwLTIwLjMtMTYuNS0zNi44LTM2LjgtMzYuOC03LjMgMC0xNC40IDIuMi0yMC40IDYuMmwtMTYuOSAxMS4zYy0xMi43IDguNS0yOS42IDYuOC00MC40LTRsLTM0LjEtMzQuMUMzNTYuMSAxMDAuMSAzNDYuMiA5NiAzMzYgOTZzLTIwLjEgNC4xLTI3LjMgMTEuM2wtMzAuMSAzMC4xYy0xMi41IDEyLjUtMzIuOCAxMi41LTQ1LjMgMGwtMzAuMS0zMC4xQzE5Ni4xIDEwMC4xIDE4Ni4yIDk2IDE3NiA5NnMtMjAuMSA0LjEtMjcuMyAxMS4zbC0zNC4xIDM0LjFjLTEwLjggMTAuOC0yNy43IDEyLjUtNDAuNCA0TDU3LjMgMTM0LjJjLTYuMS00LTEzLjItNi4yLTIwLjQtNi4yLTIwLjMgMC0zNi44IDE2LjUtMzYuOCAzNi44bDAgLjZjMCA2LjkgMS45IDEzLjcgNS41IDE5LjZ6Il19LGpmdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJhbmNob3ItY2lyY2xlLWV4Y2xhbWF0aW9uIixpY29uOls2NDAsNTEyLFtdLCJlNGFiIiwiTTMyMC41IDk2YTMyIDMyIDAgMSAxIC02NCAwIDMyIDMyIDAgMSAxIDY0IDB6bS0zMi05NmMtNTMgMC05NiA0My05NiA5NiAwIDQxLjggMjYuNyA3Ny40IDY0IDkwLjVsMCAyNTcuOWMtNjIuOS0xNC4zLTExMC4yLTY5LjctMTExLjktMTM2LjVsMTYuMSAxNC4xYzEwIDguNyAyNS4xIDcuNyAzMy45LTIuM3M3LjctMjUuMS0yLjMtMzMuOWwtNjQtNTZjLTktNy45LTIyLjYtNy45LTMxLjYgMGwtNjQgNTZjLTEwIDguNy0xMSAyMy45LTIuMyAzMy45czIzLjkgMTEgMzMuOSAyLjNsMTYuMi0xNC4yYzIuMSAxMTMuMSA5NC40IDIwNC4xIDIwOCAyMDQuMSAxNi42IDAgMzIuNy0xLjkgNDguMi01LjYtMjAuMy0zMC41LTMyLjItNjctMzIuMi0xMDYuNCAwLTI3LjMgNS43LTUzLjMgMTYtNzYuOWwwLTEzNi42YzM3LjMtMTMuMiA2NC00OC43IDY0LTkwLjUgMC01My00My05Ni05Ni05NnptMjA4IDU0NGExNDQgMTQ0IDAgMSAwIDAtMjg4IDE0NCAxNDQgMCAxIDAgMCAyODh6bTAtMTAwYTIwIDIwIDAgMSAxIDAgNDAgMjAgMjAgMCAxIDEgMC00MHptMC0xNDBjOC44IDAgMTYgNy4yIDE2IDE2bDAgODBjMCA4LjgtNy4yIDE2LTE2IDE2cy0xNi03LjItMTYtMTZsMC04MGMwLTguOCA3LjItMTYgMTYtMTZ6Il19LFcyZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJlbGxpcHNpcy12ZXJ0aWNhbCIsaWNvbjpbMTI4LDUxMixbImVsbGlwc2lzLXYiXSwiZjE0MiIsIk02NCAxNDRhNTYgNTYgMCAxIDEgMC0xMTIgNTYgNTYgMCAxIDEgMCAxMTJ6bTAgMjI0YzMwLjkgMCA1NiAyNS4xIDU2IDU2cy0yNS4xIDU2LTU2IDU2LTU2LTI1LjEtNTYtNTYgMjUuMS01NiA1Ni01NnptNTYtMTEyYzAgMzAuOS0yNS4xIDU2LTU2IDU2cy01Ni0yNS4xLTU2LTU2IDI1LjEtNTYgNTYtNTYgNTYgMjUuMSA1NiA1NnoiXX0sVmZ0PVcyZSxVZnQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiaGVhcnQtY2lyY2xlLWV4Y2xhbWF0aW9uIixpY29uOls1NzYsNTEyLFtdLCJlNGZlIiwiTTI0MSA4Ny4xbDE1IDIwLjcgMTUtMjAuN0MyOTYgNTIuNSAzMzYuMiAzMiAzNzguOSAzMiA0NTIuNCAzMiA1MTIgOTEuNiA1MTIgMTY1LjFsMCAyLjZjMCAxNy42LTMuNCAzNS42LTkuNSA1My43LTIxLjgtOC42LTQ1LjYtMTMuNC03MC41LTEzLjQtMTA2IDAtMTkyIDg2LTE5MiAxOTIgMCAyOC41IDYuMiA1NS42IDE3LjQgODAtLjUgMC0uOSAwLTEuNCAwLTE1LjUgMC0zMC44LTQuNi00My4xLTE0LjEtNzMtNTUuNy0yMTIuOS0xODYtMjEyLjktMjk4LjJsMC0yLjZDMCA5MS42IDU5LjYgMzIgMTMzLjEgMzIgMTc1LjggMzIgMjE2IDUyLjUgMjQxIDg3LjF6TTQzMiAyNTZhMTQ0IDE0NCAwIDEgMSAwIDI4OCAxNDQgMTQ0IDAgMSAxIDAtMjg4em0wIDIyOGEyMCAyMCAwIDEgMCAwLTQwIDIwIDIwIDAgMSAwIDAgNDB6bTAtMTgwYy04LjggMC0xNiA3LjItMTYgMTZsMCA4MGMwIDguOCA3LjIgMTYgMTYgMTZzMTYtNy4yIDE2LTE2bDAtODBjMC04LjgtNy4yLTE2LTE2LTE2eiJdfSxXZnQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiYnVpbGRpbmctY2lyY2xlLWV4Y2xhbWF0aW9uIixpY29uOls1NzYsNTEyLFtdLCJlNGQzIiwiTTk2IDBDNjAuNyAwIDMyIDI4LjcgMzIgNjRsMCAzODRjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMTgwIDBjLTEwLjUtMTQuNi0xOS0zMC43LTI1LjEtNDhsLTc0LjkgMCAwLTgwYzAtMTcuNyAxNC4zLTMyIDMyLTMybDMyIDBjMiAwIDQgLjIgNS45IC41IDYtMjMuNiAxNi4zLTQ1LjQgMzAuMS02NC41bC00IDBjLTguOCAwLTE2LTcuMi0xNi0xNmwwLTMyYzAtOC44IDcuMi0xNiAxNi0xNmwzMiAwYzguOCAwIDE2IDcuMiAxNiAxNmwwIDRjMjcuNS0xOS44IDYwLjMtMzIuNCA5Ni0zNS40TDQxNiA2NGMwLTM1LjMtMjguNy02NC02NC02NEw5NiAwem0zMiAxMTJjMC04LjggNy4yLTE2IDE2LTE2bDMyIDBjOC44IDAgMTYgNy4yIDE2IDE2bDAgMzJjMCA4LjgtNy4yIDE2LTE2IDE2bC0zMiAwYy04LjggMC0xNi03LjItMTYtMTZsMC0zMnpNMjcyIDk2bDMyIDBjOC44IDAgMTYgNy4yIDE2IDE2bDAgMzJjMCA4LjgtNy4yIDE2LTE2IDE2bC0zMiAwYy04LjggMC0xNi03LjItMTYtMTZsMC0zMmMwLTguOCA3LjItMTYgMTYtMTZ6TTEyOCAyNDBjMC04LjggNy4yLTE2IDE2LTE2bDMyIDBjOC44IDAgMTYgNy4yIDE2IDE2bDAgMzJjMCA4LjgtNy4yIDE2LTE2IDE2bC0zMiAwYy04LjggMC0xNi03LjItMTYtMTZsMC0zMnpNNDMyIDU0NGExNDQgMTQ0IDAgMSAwIDAtMjg4IDE0NCAxNDQgMCAxIDAgMCAyODh6bTAtMTAwYTIwIDIwIDAgMSAxIDAgNDAgMjAgMjAgMCAxIDEgMC00MHptMC0xNDBjOC44IDAgMTYgNy4yIDE2IDE2bDAgODBjMCA4LjgtNy4yIDE2LTE2IDE2cy0xNi03LjItMTYtMTZsMC04MGMwLTguOCA3LjItMTYgMTYtMTZ6Il19LEdmdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJwZXJzb24tYXJyb3ctdXAtZnJvbS1saW5lIixpY29uOls1NzYsNTEyLFtdLCJlNTM5IiwiTTE5Mi0zMmE1NiA1NiAwIDEgMSAwIDExMiA1NiA1NiAwIDEgMSAwLTExMnpNMzE4LjMgMjk5LjFsLTQ2LjMtNjIuNCAwIDI0My4zIDI3MiAwYzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMyTDMyIDU0NGMtMTcuNyAwLTMyLTE0LjMtMzItMzJzMTQuMy0zMiAzMi0zMmw4MCAwIDAtMjQzLjMtNDYuMyA2Mi40Yy0xMC41IDE0LjItMzAuNiAxNy4yLTQ0LjggNi42cy0xNy4yLTMwLjYtNi42LTQ0LjhsNzAuNS05NUMxMTAgMTMyIDE0OS43IDExMiAxOTIgMTEyczgyIDIwIDEwNy4yIDUzLjlsNzAuNSA5NWMxMC41IDE0LjIgNy42IDM0LjItNi42IDQ0LjhzLTM0LjIgNy42LTQ0LjgtNi42ek0yMDggNDgwbDAtMTI4YzAtOC44LTcuMi0xNi0xNi0xNnMtMTYgNy4yLTE2IDE2bDAgMTI4IDMyIDB6TTU2Ni42IDEwMi42Yy0xMi41IDEyLjUtMzIuOCAxMi41LTQ1LjMgMEw0OTYgNzcuMyA0OTYgMjI0YzAgMTcuNy0xNC4zIDMyLTMyIDMycy0zMi0xNC4zLTMyLTMybDAtMTQ2LjctMjUuNCAyNS40Yy0xMi41IDEyLjUtMzIuOCAxMi41LTQ1LjMgMHMtMTIuNS0zMi44IDAtNDUuM2w4MC04MGMxMi41LTEyLjUgMzIuOC0xMi41IDQ1LjMgMGw4MCA4MGMxMi41IDEyLjUgMTIuNSAzMi44IDAgNDUuM3oiXX0sWWZ0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6Im5vdC1lcXVhbCIsaWNvbjpbNDQ4LDUxMixbXSwiZjUzZSIsIk0zNzguNiA4MS44YzkuOC0xNC43IDUuOC0zNC42LTguOS00NC40cy0zNC42LTUuOC00NC40IDguOUwyNzAuOSAxMjggMzIgMTI4Yy0xNy43IDAtMzIgMTQuMy0zMiAzMnMxNC4zIDMyIDMyIDMybDE5Ni4yIDAtODUuMyAxMjgtMTEwLjkgMGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJzMTQuMyAzMiAzMiAzMmw2OC4yIDAtMzAuOCA0Ni4yYy05LjggMTQuNy01LjggMzQuNiA4LjkgNDQuNHMzNC42IDUuOCA0NC40LTguOUwxNzcuMSAzODQgNDE2IDM4NGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMmwtMTk2LjIgMCA4NS4zLTEyOCAxMTAuOSAwYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMybC02OC4yIDAgMzAuOC00Ni4yeiJdfSxaZnQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToidHJhaW4tdHJhbSIsaWNvbjpbMzg0LDUxMixbMTI4NjUwXSwiZTViNCIsIk0wIDhDMC01LjMgMTAuNy0xNiAyNC0xNmwzMzYgMGMxMy4zIDAgMjQgMTAuNyAyNCAyNGwwIDMyYzAgMTMuMy0xMC43IDI0LTI0IDI0cy0yNC0xMC43LTI0LTI0bDAtOC0xMjAgMCAwIDY0IDQwIDBjNTMgMCA5NiA0MyA5NiA5NmwwIDE2MGMwIDMxLjItMTQuOSA1OS0zOCA3Ni41bDY0LjMgNzZjOC42IDEwLjEgNy4zIDI1LjMtMi44IDMzLjhzLTI1LjMgNy4zLTMzLjgtMi44bC03NC42LTg4LjFjLTMuNiAuNC03LjMgLjYtMTEuMSAuNmwtMTI4IDBjLTMuOCAwLTcuNS0uMi0xMS4xLS42TDQyLjMgNTM1LjVjLTguNiAxMC4xLTIzLjcgMTEuNC0zMy44IDIuOHMtMTEuNC0yMy43LTIuOC0zMy44bDY0LjMtNzZDNDYuOSA0MTEgMzIgMzgzLjIgMzIgMzUybDAtMTYwYzAtNTMgNDMtOTYgOTYtOTZsNDAgMCAwLTY0LTEyMCAwIDAgOGMwIDEzLjMtMTAuNyAyNC0yNCAyNFMwIDUzLjMgMCA0MEwwIDh6TTEyOCAxNjBjLTE3LjcgMC0zMiAxNC4zLTMyIDMybDAgMzJjMCAxNy43IDE0LjMgMzIgMzIgMzJsMTI4IDBjMTcuNyAwIDMyLTE0LjMgMzItMzJsMC0zMmMwLTE3LjctMTQuMy0zMi0zMi0zMmwtMTI4IDB6bTMyIDE5MmEzMiAzMiAwIDEgMCAtNjQgMCAzMiAzMiAwIDEgMCA2NCAwem05NiAzMmEzMiAzMiAwIDEgMCAwLTY0IDMyIDMyIDAgMSAwIDAgNjR6Il19LFhmdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJwbGFuZS1kZXBhcnR1cmUiLGljb246WzU3Niw1MTIsWzEyODc0N10sImY1YjAiLCJNMzcyIDE0My45TDE3Mi43IDQwLjJjLTgtNC4xLTE3LjMtNC44LTI1LjctMS43bC00MS4xIDE1Yy0xMC4zIDMuNy0xMy44IDE2LjQtNy4xIDI1TDIwMC4zIDIwNi40IDEwMC4xIDI0Mi44IDQwIDIwNi4yYy02LjItMy44LTEzLjgtNC41LTIwLjctMi4xTDMgMjEwLjFjLTkuNCAzLjQtMTMuNCAxNC41LTguMyAyMy4xbDUzLjYgOTEuOGMxNS42IDI2LjcgNDguMSAzOC40IDc3LjEgMjcuOGwxMi45LTQuNyAwIDAgMzk4LjQtMTQ1YzI5LjEtMTAuNiA0NC00Mi43IDMzLjUtNzEuOHMtNDIuNy00NC03MS44LTMzLjVMMzcyIDE0My45ek0zMi4yIDQ0OGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJzMTQuMyAzMiAzMiAzMmw1MTIgMGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMmwtNTEyIDB6Il19LEcyZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJyaWdodC10by1icmFja2V0IixpY29uOls1MTIsNTEyLFsic2lnbi1pbi1hbHQiXSwiZjJmNiIsIk0zNDUgMjczYzkuNC05LjQgOS40LTI0LjYgMC0zMy45TDIwMSA5NWMtNi45LTYuOS0xNy4yLTguOS0yNi4yLTUuMlMxNjAgMTAyLjMgMTYwIDExMmwwIDgwLTExMiAwYy0yNi41IDAtNDggMjEuNS00OCA0OGwwIDMyYzAgMjYuNSAyMS41IDQ4IDQ4IDQ4bDExMiAwIDAgODBjMCA5LjcgNS44IDE4LjUgMTQuOCAyMi4yczE5LjMgMS43IDI2LjItNS4yTDM0NSAyNzN6bTcgMTQzYy0xNy43IDAtMzIgMTQuMy0zMiAzMnMxNC4zIDMyIDMyIDMybDY0IDBjNTMgMCA5Ni00MyA5Ni05NmwwLTI1NmMwLTUzLTQzLTk2LTk2LTk2bC02NCAwYy0xNy43IDAtMzIgMTQuMy0zMiAzMnMxNC4zIDMyIDMyIDMybDY0IDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJsMCAyNTZjMCAxNy43LTE0LjMgMzItMzIgMzJsLTY0IDB6Il19LFFmdD1HMmUsSmZ0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InNkLWNhcmQiLGljb246WzM4NCw1MTIsW10sImY3YzIiLCJNMzg0IDY0YzAtMzUuMy0yOC43LTY0LTY0LTY0TDEyNS4zIDBDMTA4LjMgMCA5MiA2LjcgODAgMTguN0wxOC43IDgwQzYuNyA5MiAwIDEwOC4zIDAgMTI1LjNMMCA0NDhjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMjU2IDBjMzUuMyAwIDY0LTI4LjcgNjQtNjRsMC0zODR6TTE2MCA4OGwwIDQ4YzAgMTMuMy0xMC43IDI0LTI0IDI0cy0yNC0xMC43LTI0LTI0bDAtNDhjMC0xMy4zIDEwLjctMjQgMjQtMjRzMjQgMTAuNyAyNCAyNHptODggMGwwIDQ4YzAgMTMuMy0xMC43IDI0LTI0IDI0cy0yNC0xMC43LTI0LTI0bDAtNDhjMC0xMy4zIDEwLjctMjQgMjQtMjRzMjQgMTAuNyAyNCAyNHptODggMGwwIDQ4YzAgMTMuMy0xMC43IDI0LTI0IDI0cy0yNC0xMC43LTI0LTI0bDAtNDhjMC0xMy4zIDEwLjctMjQgMjQtMjRzMjQgMTAuNyAyNCAyNHoiXX0sS2Z0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImhvdXNlLWNpcmNsZS1leGNsYW1hdGlvbiIsaWNvbjpbNjQwLDUxMixbXSwiZTUwYSIsIk00OTYgNTQ0YTE0NCAxNDQgMCAxIDEgMC0yODggMTQ0IDE0NCAwIDEgMSAwIDI4OHpNMjY4LjYgNi41YzEyLjItOS4zIDI5LjctOC43IDQxLjIgMmwyMTcuNiAyMDJjLTEwLjItMS43LTIwLjctMi42LTMxLjMtMi42LTc4LjYgMC0xNDYuMSA0Ny4yLTE3NS44IDExNC44LTUuMS0xLjgtMTAuNS0yLjgtMTYuMi0yLjhsLTMyIDBjLTI2LjUgMC00OCAyMS41LTQ4IDQ4bDAgOTYgOTEgMGM2LjEgMTcuMyAxNC42IDMzLjQgMjUuMSA0OEwxNDQgNTEyYy0zNS4zIDAtNjQtMjguNy02NC02NGwwLTE3Ni0xNiAwYy0xMy4yIDAtMjUtOC4xLTI5LjgtMjAuM3MtMS42LTI2LjIgOC0zNS4xbDIyNC0yMDggMi40LTJ6TTQ5NiA0NDRhMjAgMjAgMCAxIDAgMCA0MCAyMCAyMCAwIDEgMCAwLTQwem0wLTE0MGMtOC44IDAtMTYgNy4yLTE2IDE2bDAgODBjMCA4LjggNy4yIDE2IDE2IDE2IDguOCAwIDE2LTcuMiAxNi0xNmwwLTgwYzAtOC44LTcuMi0xNi0xNi0xNnoiXX0sTnA9e3ByZWZpeDoiZmFzIixpY29uTmFtZToic2hla2VsLXNpZ24iLGljb246WzQ0OCw1MTIsWzgzNjIsImlscyIsInNoZWtlbCIsInNoZXFlbCIsInNoZXFlbC1zaWduIl0sImYyMGIiLCJNMzIgMzJDMTQuMyAzMiAwIDQ2LjMgMCA2NEwwIDQ0OGMwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMybDAtMzUyIDEyOCAwYzM1LjMgMCA2NCAyOC43IDY0IDY0bDAgMTYwYzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJsMC0xNjBjMC03MC43LTU3LjMtMTI4LTEyOC0xMjhMMzIgMzJ6TTMyMCA0ODBjNzAuNyAwIDEyOC01Ny4zIDEyOC0xMjhsMC0yODhjMC0xNy43LTE0LjMtMzItMzItMzJzLTMyIDE0LjMtMzIgMzJsMCAyODhjMCAzNS4zLTI4LjcgNjQtNjQgNjRsLTEyOCAwIDAtMjI0YzAtMTcuNy0xNC4zLTMyLTMyLTMycy0zMiAxNC4zLTMyIDMybDAgMjU2YzAgMTcuNyAxNC4zIDMyIDMyIDMybDE2MCAweiJdfSxlN3Q9TnAsdDd0PU5wLHI3dD1OcCxpN3Q9TnAsYTd0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InJhZGlvIixpY29uOls1MTIsNTEyLFsxMjgyNTFdLCJmOGQ3IiwiTTQ5NC44IDE1YzEyLjctMy43IDIwLTE3LjEgMTYuMy0yOS44UzQ5NC0zNC44IDQ4MS4zLTMxTDUxLjggOTQuOUM0Mi40IDk3LjYgMzMuOSAxMDIuMSAyNi42IDEwOCAxMC41IDExOS43IDAgMTM4LjYgMCAxNjBMMCA0MTZjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMzg0IDBjMzUuMyAwIDY0LTI4LjcgNjQtNjRsMC0yNTZjMC0zNS4zLTI4LjctNjQtNjQtNjRMMjE4LjUgOTYgNDk0LjggMTV6TTM2OCAyMDhhODAgODAgMCAxIDEgMCAxNjAgODAgODAgMCAxIDEgMC0xNjB6TTY0IDI0OGMwLTEzLjMgMTAuNy0yNCAyNC0yNGwxMTIgMGMxMy4zIDAgMjQgMTAuNyAyNCAyNHMtMTAuNyAyNC0yNCAyNEw4OCAyNzJjLTEzLjMgMC0yNC0xMC43LTI0LTI0em0wIDk2YzAtMTMuMyAxMC43LTI0IDI0LTI0bDExMiAwYzEzLjMgMCAyNCAxMC43IDI0IDI0cy0xMC43IDI0LTI0IDI0TDg4IDM2OGMtMTMuMyAwLTI0LTEwLjctMjQtMjR6Il19LFkyZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJoYW5kLWRvdHMiLGljb246WzUxMiw1MTIsWyJhbGxlcmdpZXMiXSwiZjQ2MSIsIk0yODggMzJjMC0xNy43LTE0LjMtMzItMzItMzJzLTMyIDE0LjMtMzIgMzJsMCAyMDhjMCA4LjgtNy4yIDE2LTE2IDE2cy0xNi03LjItMTYtMTZsMC0xNzZjMC0xNy43LTE0LjMtMzItMzItMzJzLTMyIDE0LjMtMzIgMzJsMCAyNzJjMCAxLjUgMCAzLjEgLjEgNC42TDY3LjYgMjgzYy0xNi0xNS4yLTQxLjMtMTQuNi01Ni42IDEuNFMtMy42IDMyNS43IDEyLjQgMzQxTDEyNC44IDQ0OGM0My4xIDQxLjEgMTAwLjQgNjQgMTYwIDY0bDE5LjIgMGM5Ny4yIDAgMTc2LTc4LjggMTc2LTE3NmwwLTIwOGMwLTE3LjctMTQuMy0zMi0zMi0zMnMtMzIgMTQuMy0zMiAzMmwwIDExMmMwIDguOC03LjIgMTYtMTYgMTZzLTE2LTcuMi0xNi0xNmwwLTE3NmMwLTE3LjctMTQuMy0zMi0zMi0zMnMtMzIgMTQuMy0zMiAzMmwwIDE3NmMwIDguOC03LjIgMTYtMTYgMTZzLTE2LTcuMi0xNi0xNmwwLTIwOHpNMjAwIDM1MmEyNCAyNCAwIDEgMSA0OCAwIDI0IDI0IDAgMSAxIC00OCAwem0xMjAtNTZhMjQgMjQgMCAxIDEgMCA0OCAyNCAyNCAwIDEgMSAwLTQ4em00MCA4OGEyNCAyNCAwIDEgMSA0OCAwIDI0IDI0IDAgMSAxIC00OCAwem0tODggMjRhMjQgMjQgMCAxIDEgMCA0OCAyNCAyNCAwIDEgMSAwLTQ4eiJdfSxuN3Q9WTJlLFoyZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJib29rLXNrdWxsIixpY29uOls0NDgsNTEyLFsiYm9vay1kZWFkIl0sImY2YjciLCJNOTYgNTEybDMyMCAwYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMybDAtNjYuN2MxOC42LTYuNiAzMi0yNC40IDMyLTQ1LjNsMC0yODhjMC0yNi41LTIxLjUtNDgtNDgtNDhMOTYgMEM0MyAwIDAgNDMgMCA5NkwwIDQxNmMwIDUzIDQzIDk2IDk2IDk2ek02NCA0MTZjMC0xNy43IDE0LjMtMzIgMzItMzJsMjU2IDAgMCA2NC0yNTYgMGMtMTcuNyAwLTMyLTE0LjMtMzItMzJ6TTI3MiAxNjMuMmwwIDEyLjhjMCA4LjgtNy4yIDE2LTE2IDE2bC02NCAwYy04LjggMC0xNi03LjItMTYtMTZsMC0xMi44Yy0xOS40LTExLjctMzItMzAuMy0zMi01MS4yIDAtMzUuMyAzNS44LTY0IDgwLTY0czgwIDI4LjcgODAgNjRjMCAyMC45LTEyLjYgMzkuNS0zMiA1MS4yek0yMDggMTEyYTE2IDE2IDAgMSAwIC0zMiAwIDE2IDE2IDAgMSAwIDMyIDB6bTQ4IDE2YTE2IDE2IDAgMSAwIDAtMzIgMTYgMTYgMCAxIDAgMCAzMnptNzQuMiA5NS43YzQuNiAxMC4xIC4xIDIxLjktOS45IDI2LjVsLTQ3LjkgMjEuOCA0Ny45IDIxLjhjMTAuMSA0LjYgMTQuNSAxNi40IDkuOSAyNi41cy0xNi40IDE0LjUtMjYuNSA5LjlMMjI0IDI5NCAxNDQuMyAzMzAuMmMtMTAuMSA0LjYtMjEuOSAuMS0yNi41LTkuOXMtLjEtMjEuOSA5LjktMjYuNWw0Ny45LTIxLjgtNDcuOS0yMS44Yy0xMC4xLTQuNi0xNC41LTE2LjQtOS45LTI2LjVzMTYuNC0xNC41IDI2LjUtOS45TDIyNCAyNTAgMzAzLjcgMjEzLjhjMTAuMS00LjYgMjEuOS0uMSAyNi41IDkuOXoiXX0sbzd0PVoyZSxYMmU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToidW5sb2NrLWtleWhvbGUiLGljb246WzM4NCw1MTIsWyJ1bmxvY2stYWx0Il0sImYxM2UiLCJNMTkyIDMyYy0zNS4zIDAtNjQgMjguNy02NCA2NGwwIDY0IDE5MiAwYzM1LjMgMCA2NCAyOC43IDY0IDY0bDAgMjI0YzAgMzUuMy0yOC43IDY0LTY0IDY0TDY0IDUxMmMtMzUuMyAwLTY0LTI4LjctNjQtNjRMMCAyMjRjMC0zNS4zIDI4LjctNjQgNjQtNjRsMC02NGMwLTcwLjcgNTcuMy0xMjggMTI4LTEyOCA2My41IDAgMTE2LjEgNDYuMSAxMjYuMiAxMDYuNyAyLjkgMTcuNC04LjggMzMuOS0yNi4zIDM2LjlzLTMzLjktOC44LTM2LjktMjYuM0MyNTAgNTUuMSAyMjMuNyAzMiAxOTIgMzJ6bTQwIDMyOGMxMy4zIDAgMjQtMTAuNyAyNC0yNHMtMTAuNy0yNC0yNC0yNGwtODAgMGMtMTMuMyAwLTI0IDEwLjctMjQgMjRzMTAuNyAyNCAyNCAyNGw4MCAweiJdfSxzN3Q9WDJlLFEyZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJmaWxlLWFycm93LXVwIixpY29uOlszODQsNTEyLFsiZmlsZS11cGxvYWQiXSwiZjU3NCIsIk0wIDY0QzAgMjguNyAyOC43IDAgNjQgMEwyMTMuNSAwYzE3IDAgMzMuMyA2LjcgNDUuMyAxOC43TDM2NS4zIDEyNS4zYzEyIDEyIDE4LjcgMjguMyAxOC43IDQ1LjNMMzg0IDQ0OGMwIDM1LjMtMjguNyA2NC02NCA2NEw2NCA1MTJjLTM1LjMgMC02NC0yOC43LTY0LTY0TDAgNjR6bTIwOC01LjVsMCA5My41YzAgMTMuMyAxMC43IDI0IDI0IDI0TDMyNS41IDE3NiAyMDggNTguNXpNMjA5IDI2M2MtOS40LTkuNC0yNC42LTkuNC0zMy45IDBsLTY0IDY0Yy05LjQgOS40LTkuNCAyNC42IDAgMzMuOXMyNC42IDkuNCAzMy45IDBsMjMtMjMgMCA4Ni4xYzAgMTMuMyAxMC43IDI0IDI0IDI0czI0LTEwLjcgMjQtMjRsMC04Ni4xIDIzIDIzYzkuNCA5LjQgMjQuNiA5LjQgMzMuOSAwczkuNC0yNC42IDAtMzMuOWwtNjQtNjR6Il19LGw3dD1RMmUsSjJlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImZhY2UtZ3Jpbi10ZWFycyIsaWNvbjpbNjQwLDUxMixbMTI4NTE0LCJncmluLXRlYXJzIl0sImY1ODgiLCJNNTU0LjggMjAzLjRsMTYuMyAyLjNDNTQ3LjcgODguNCA0NDQuMiAwIDMyMCAwUzkyLjMgODguNCA2OC45IDIwNS43bDE2LjMtMi4zYzM3LTUuMyA2OC42IDI2LjQgNjMuNCA2My40bC02LjcgNDYuN2MtNC4xIDI5LTIxLjYgNTMuMi00NS44IDY2LjggNDMuNyA3OC41IDEyNy42IDEzMS43IDIyMy44IDEzMS43czE4MC4xLTUzLjEgMjIzLjgtMTMxLjdjLTI0LjEtMTMuNS00MS42LTM3LjgtNDUuOC02Ni44bC02LjctNDYuN2MtNS4zLTM3IDI2LjQtNjguNiA2My40LTYzLjR6TTQ3MC4zIDMyNi45QzQ0Ny45IDM4OC4yIDM4OS4xIDQzMiAzMjAgNDMyUzE5Mi4xIDM4OC4yIDE2OS43IDMyNi45Yy00LjMtMTEuOCA3LjctMjEuOCAxOS42LTE4LjEgMzkuMiAxMi4yIDgzLjcgMTkuMSAxMzAuNyAxOS4xczkxLjUtNi45IDEzMC43LTE5LjFjMTEuOS0zLjcgMjMuOSA2LjMgMTkuNiAxOC4xek0yMTIgMjA4bDAgOGMwIDExLTkgMjAtMjAgMjBzLTIwLTktMjAtMjBsMC04YzAtMzcuNiAzMC40LTY4IDY4LTY4czY4IDMwLjQgNjggNjhsMCA4YzAgMTEtOSAyMC0yMCAyMHMtMjAtOS0yMC0yMGwwLThjMC0xNS41LTEyLjUtMjgtMjgtMjhzLTI4IDEyLjUtMjggMjh6bTE4OC0yOGMtMTUuNSAwLTI4IDEyLjUtMjggMjhsMCA4YzAgMTEtOSAyMC0yMCAyMHMtMjAtOS0yMC0yMGwwLThjMC0zNy42IDMwLjQtNjggNjgtNjhzNjggMzAuNCA2OCA2OGwwIDhjMCAxMS05IDIwLTIwIDIwcy0yMC05LTIwLTIwbDAtOGMwLTE1LjUtMTIuNS0yOC0yOC0yOHpNNjQwIDMwMC42YzAtMjUuNi0xOC44LTQ3LjMtNDQuMS01MC45TDU0OS4xIDI0M2MtMTAuNi0xLjUtMTkuNiA3LjUtMTguMSAxOC4xbDYuNyA0Ni43YzMuNiAyNS4zIDI1LjMgNDQuMSA1MC45IDQ0LjEgMjguNCAwIDUxLjQtMjMgNTEuNC01MS40em0tNjQwIDBDMCAzMjkgMjMgMzUyIDUxLjQgMzUyIDc3IDM1MiA5OC43IDMzMy4yIDEwMi4zIDMwNy45bDYuNy00Ni43YzEuNS0xMC42LTcuNS0xOS42LTE4LjEtMTguMWwtNDYuNyA2LjdDMTguOCAyNTMuMyAwIDI3NSAwIDMwMC42eiJdfSxjN3Q9SjJlLFlnPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InBlbi10by1zcXVhcmUiLGljb246WzUxMiw1MTIsWyJlZGl0Il0sImYwNDQiLCJNNDcxLjYgMjEuN2MtMjEuOS0yMS45LTU3LjMtMjEuOS03OS4yIDBMMzY4IDQ2LjEgNDY1LjkgMTQ0IDQ5MC4zIDExOS42YzIxLjktMjEuOSAyMS45LTU3LjMgMC03OS4yTDQ3MS42IDIxLjd6bS0yOTkuMiAyMjBjLTYuMSA2LjEtMTAuOCAxMy42LTEzLjUgMjEuOWwtMjkuNiA4OC44Yy0yLjkgOC42LS42IDE4LjEgNS44IDI0LjZzMTUuOSA4LjcgMjQuNiA1LjhsODguOC0yOS42YzguMi0yLjcgMTUuNy03LjQgMjEuOS0xMy41TDQzMiAxNzcuOSAzMzQuMSA4MCAxNzIuNCAyNDEuN3pNOTYgNjRDNDMgNjQgMCAxMDcgMCAxNjBMMCA0MTZjMCA1MyA0MyA5NiA5NiA5NmwyNTYgMGM1MyAwIDk2LTQzIDk2LTk2bDAtOTZjMC0xNy43LTE0LjMtMzItMzItMzJzLTMyIDE0LjMtMzIgMzJsMCA5NmMwIDE3LjctMTQuMyAzMi0zMiAzMkw5NiA0NDhjLTE3LjcgMC0zMi0xNC4zLTMyLTMybDAtMjU2YzAtMTcuNyAxNC4zLTMyIDMyLTMybDk2IDBjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJMOTYgNjR6Il19LGQ3dD1ZZyxLMmU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZWFydGgtZXVyb3BlIixpY29uOls1MTIsNTEyLFsiZ2xvYmUtZXVyb3BlIl0sImY3YTIiLCJNMjU2LjIgNDhjMTE0LjggLjEgMjA3LjggOTMuMiAyMDcuOCAyMDggMCAyMi4xLTMuNCA0My40LTkuOCA2My40LTIgLjQtNC4xIC42LTYuMiAuNmwtMi43IDBjLTguNSAwLTE2LjYtMy40LTIyLjYtOS40bC0yOS4zLTI5LjNjLTYtNi05LjQtMTQuMS05LjQtMjIuNmwwLTUwLjdjMC04LjggNy4yLTE2IDE2LTE2czE2LTcuMiAxNi0xNi03LjItMTYtMTYtMTZsLTI0IDBjLTEzLjMgMC0yNCAxMC43LTI0IDI0cy0xMC43IDI0LTI0IDI0bC01NiAwYy04LjggMC0xNiA3LjItMTYgMTZzLTcuMiAxNi0xNiAxNmwtMjUuNCAwYy0xMi41IDAtMjIuNi0xMC4xLTIyLjYtMjIuNiAwLTYgMi40LTExLjggNi42LTE2bDcwLjEtNzAuMWMyLjEtMi4xIDMuMy01IDMuMy04IDAtNi4yLTUuMS0xMS4zLTExLjMtMTEuM2wtMTQuMSAwYy0xMi41IDAtMjIuNi0xMC4xLTIyLjYtMjIuNiAwLTYgMi40LTExLjggNi42LTE2bDIzLjEtMjMuMWMuOC0uOCAxLjYtMS41IDIuNS0yLjJ6TTQzOC40IDM1Ni4xYy0zMi44IDU5LjYtOTMuOSAxMDEuNC0xNjUuMiAxMDcuMi0uNy0yLjMtMS4xLTQuOC0xLjEtNy4zIDAtMTMuMy0xMC43LTI0LTI0LTI0bC0yNi43IDBjLTguNSAwLTE2LjYtMy40LTIyLjYtOS40bC0yOS4zLTI5LjNjLTYtNi05LjQtMTQuMS05LjQtMjIuNmwwLTY2LjdjMC0xNy43IDE0LjMtMzIgMzItMzJsOTguNyAwYzguNSAwIDE2LjYgMy40IDIyLjYgOS40bDI5LjMgMjkuM2M2IDYgMTQuMSA5LjQgMjIuNiA5LjRsNS41IDBjOC41IDAgMTYuNiAzLjQgMjIuNiA5LjRsMTYgMTZjNC4yIDQuMiAxMCA2LjYgMTYgNi42IDQuOCAwIDkuMyAxLjUgMTMgNC4xek0yNTYgNTEybDI2LjItMS4zYy04LjYgLjktMTcuMyAxLjMtMjYuMiAxLjN6bTI2LjItMS4zQzQxMS4zIDQ5Ny42IDUxMiAzODguNiA1MTIgMjU2IDUxMiAxMTQuNiAzOTcuNCAwIDI1NiAwbDAgMEMxMTQuNiAwIDAgMTE0LjYgMCAyNTYgMCAzODMuNSA5My4yIDQ4OS4zIDIxNS4zIDUwOC44IDIyOC41IDUxMC45IDI0Mi4xIDUxMiAyNTYgNTEyek0xODcuMyAxMjMuM2wtMzIgMzJjLTYuMiA2LjItMTYuNCA2LjItMjIuNiAwcy02LjItMTYuNCAwLTIyLjZsMzItMzJjNi4yLTYuMiAxNi40LTYuMiAyMi42IDBzNi4yIDE2LjQgMCAyMi42eiJdfSx1N3Q9SzJlLGVzZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJmYWNlLWdyaW4tYmVhbS1zd2VhdCIsaWNvbjpbNTc2LDUxMixbMTI4NTE3LCJncmluLWJlYW0tc3dlYXQiXSwiZjU4MyIsIk01NDYuMi0uMWMxNC43IDE3LjggMjkuOCA0MC4xIDI5LjggNjQuMSAwIDM2LjQtMjcuNiA2NC02NCA2NHMtNjQtMjcuNi02NC02NGMwLTI0IDE1LjItNDYuMyAyOS44LTY0LjEgOC44LTEwLjcgMTguNS0yMC44IDI5LTMwIDMtMi42IDcuNC0yLjYgMTAuNCAwIDEwLjUgOS4xIDIwLjEgMTkuMyAyOSAzMHpNMjg4IDBjNDIuNSAwIDgyLjYgMTAuNCAxMTcuOCAyOC43LTMuNiAxMC45LTUuOCAyMi43LTUuOCAzNS4zIDAgNjIuOSA0OS4xIDExMiAxMTIgMTEyIDYuNCAwIDEyLjctLjUgMTguOC0xLjUgOC42IDI1LjYgMTMuMiA1MyAxMy4yIDgxLjUgMCAxNDEuNC0xMTQuNiAyNTYtMjU2IDI1NlMzMiAzOTcuNCAzMiAyNTYgMTQ2LjYgMCAyODggMHpNNDE4LjcgMzA4LjlDMzc5LjUgMzIxLjEgMzM1LjEgMzI4IDI4OCAzMjhzLTkxLjUtNi45LTEzMC43LTE5LjFjLTExLjktMy43LTIzLjkgNi4zLTE5LjYgMTguMSAyMi40IDYxLjMgODEuMyAxMDUuMSAxNTAuMyAxMDUuMXMxMjcuOS00My44IDE1MC4zLTEwNS4xYzQuMy0xMS44LTcuNy0yMS44LTE5LjYtMTguMXpNMjA4IDE4MGMxNS41IDAgMjggMTIuNSAyOCAyOGwwIDhjMCAxMSA5IDIwIDIwIDIwczIwLTkgMjAtMjBsMC04YzAtMzcuNi0zMC40LTY4LTY4LTY4cy02OCAzMC40LTY4IDY4bDAgOGMwIDExIDkgMjAgMjAgMjBzMjAtOSAyMC0yMGwwLThjMC0xNS41IDEyLjUtMjggMjgtMjh6bTEzMiAyOGMwLTE1LjUgMTIuNS0yOCAyOC0yOHMyOCAxMi41IDI4IDI4bDAgOGMwIDExIDkgMjAgMjAgMjBzMjAtOSAyMC0yMGwwLThjMC0zNy42LTMwLjQtNjgtNjgtNjhzLTY4IDMwLjQtNjggNjhsMCA4YzAgMTEgOSAyMCAyMCAyMHMyMC05IDIwLTIwbDAtOHoiXX0scDd0PWVzZSx0c2U9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiY2lyY2xlLWhhbGYtc3Ryb2tlIixpY29uOls1MTIsNTEyLFs5NjgwLCJhZGp1c3QiXSwiZjA0MiIsIk00NDggMjU2YzAtMTA2LTg2LTE5Mi0xOTItMTkybDAgMzg0YzEwNiAwIDE5Mi04NiAxOTItMTkyek0wIDI1NmEyNTYgMjU2IDAgMSAxIDUxMiAwIDI1NiAyNTYgMCAxIDEgLTUxMiAweiJdfSxoN3Q9dHNlLGY3dD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJwZXJzb24tbWlsaXRhcnktdG8tcGVyc29uIixpY29uOls1MTIsNTEyLFtdLCJlNTRjIiwiTTcxIDEyLjVjLTguNiAxLTE1IDguMi0xNSAxNi44IDAgOS4zIDcuNSAxNi44IDE2LjcgMTYuOWwxMTEuNCAwYzguOC0uMSAxNS45LTcuMiAxNS45LTE2TDIwMCAxNmMwLTkuNS04LjMtMTctMTcuOC0xNS45TDcxIDEyLjV6TTE4OS41IDc4LjFsLTEyMi45IDBjLTEuNiA1LjctMi41IDExLjctMi41IDE3LjkgMCAzNS4zIDI4LjcgNjQgNjQgNjRzNjQtMjguNyA2NC02NGMwLTYuMi0uOS0xMi4yLTIuNS0xNy45ek0zMiAyNTZsMCAzMmMwIDE3LjcgMTQuMyAzMiAzMiAzMmwxMjggMGMxLjggMCAzLjUtLjEgNS4yLS40TDUzIDIwOC42QzQwLjEgMjIwLjMgMzIgMjM3LjIgMzIgMjU2em0xOTAuMiA0Mi41YzEuMS0zLjMgMS44LTYuOCAxLjgtMTAuNWwwLTMyYzAtMzUuMy0yOC43LTY0LTY0LTY0bC02NCAwYy0zLjcgMC03LjQgLjMtMTAuOSAuOUwyMjIuMiAyOTguNXpNMzg0IDE2MGE2NCA2NCAwIDEgMCAwLTEyOCA2NCA2NCAwIDEgMCAwIDEyOHptLTMyIDMyYy0zNS4zIDAtNjQgMjguNy02NCA2NGwwIDMyYzAgMTcuNyAxNC4zIDMyIDMyIDMybDEyOCAwYzE3LjcgMCAzMi0xNC4zIDMyLTMybDAtMzJjMC0zNS4zLTI4LjctNjQtNjQtNjRsLTY0IDB6TTIxNS44IDQ1MC4xYzUuMi00LjYgOC4yLTExLjEgOC4yLTE4LjFzLTMtMTMuNS04LjItMTguMWwtNjQtNTZjLTcuMS02LjItMTcuMS03LjctMjUuNy0zLjhTMTEyIDM2Ni42IDExMiAzNzZsMCAzMi04OCAwYy0xMy4zIDAtMjQgMTAuNy0yNCAyNHMxMC43IDI0IDI0IDI0bDg4IDAgMCAzMmMwIDkuNCA1LjUgMTggMTQuMSAyMS45czE4LjYgMi40IDI1LjctMy44bDY0LTU2ek0yODggNDMxLjljMCA2LjkgMyAxMy41IDguMSAxOC4xbDY0IDU2LjRjNy4xIDYuMiAxNy4xIDcuOCAyNS43IDMuOVM0MDAgNDk3LjggNDAwIDQ4OC40bDAtMzIuNCA4OCAwYzEzLjMgMCAyNC0xMC43IDI0LTI0cy0xMC43LTI0LTI0LTI0bC04OCAwIDAtMzJjMC05LjQtNS41LTE4LTE0LjEtMjEuOXMtMTguNi0yLjQtMjUuNyAzLjhsLTY0IDU2Yy01LjIgNC41LTguMiAxMS4xLTguMiAxOHoiXX0sbTd0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InRhYmxlLWNlbGxzLWNvbHVtbi1sb2NrIixpY29uOls2NDAsNTEyLFtdLCJlNjc4IiwiTTI1NiAyMjRsMCAxOTIgNjQgMCAwLTE5Mi02NCAwem0yNTYtNzljLTQ2LjcgNS44LTg1LjYgMzYuOC0xMDIuNyA3OWwtMjUuMyAwIDAgOTAuOGMtMTAuMSAxNS4yLTE2IDMzLjQtMTYgNTMuMWwwIDk2YzAgNS41IC41IDEwLjkgMS4zIDE2LjFMMTI4IDQ4MGMtMzUuMyAwLTY0LTI4LjctNjQtNjRMNjQgOTZjMC0zNS4zIDI4LjctNjQgNjQtNjRsMzIwIDBjMzUuMyAwIDY0IDI4LjcgNjQgNjRsMCA0OXpNMTI4IDIyNGwwIDE5MiA2NCAwIDAtMTkyLTY0IDB6bTQzMiA0OC4xYzAtMTcuNy0xNC4zLTMyLTMyLTMycy0zMiAxNC4zLTMyIDMybDAgNDcuOSA2NCAwIDAtNDcuOXpNNDE2IDM2OGMwLTIwLjkgMTMuNC0zOC43IDMyLTQ1LjNsMC01MC42YzAtNDQuMiAzNS44LTgwIDgwLTgwczgwIDM1LjggODAgODBsMCA1MC42YzE4LjYgNi42IDMyIDI0LjQgMzIgNDUuM2wwIDk2YzAgMjYuNS0yMS41IDQ4LTQ4IDQ4bC0xMjggMGMtMjYuNSAwLTQ4LTIxLjUtNDgtNDhsMC05NnoiXX0sZzd0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InRydWNrLWZpZWxkLXVuIixpY29uOls2NDAsNTEyLFtdLCJlNThlIiwiTTk2IDMyQzYwLjcgMzIgMzIgNjAuNyAzMiA5NmwwIDMyYy0xNy43IDAtMzIgMTQuMy0zMiAzMmwwIDk2YzAgMTcuNyAxNC4zIDMyIDMyIDMybDAgNDhjMCAyMS4xIDEzLjcgMzkuMSAzMi42IDQ1LjUtLjQgMy40LS42IDctLjYgMTAuNSAwIDQ4LjYgMzkuNCA4OCA4OCA4OHM4OC0zOS40IDg4LTg4YzAtMi43LS4xLTUuNC0uNC04bDE0NC43IDBjLS4yIDIuNi0uNCA1LjMtLjQgOCAwIDQ4LjYgMzkuNCA4OCA4OCA4OHM4OC0zOS40IDg4LTg4YzAtMi43LS4xLTUuNC0uNC04bC40IDBjMjYuNSAwIDQ4LTIxLjUgNDgtNDhsMC02NGMwLTI2LjUtMjEuNS00OC00OC00OGwtMjQuNyAwLTEuNy00LjItNDMuOC0xMDYuM2MtMTIuMy0zMC00MS42LTQ5LjUtNzQtNDkuNWwtNDAuNCAwQzM2NC40IDQ0LjkgMzQzLjcgMzIgMzIwIDMyTDk2IDMyek0zODQgMjI0bDAtOTYgMzEuOSAwYzYuNSAwIDEyLjMgMy45IDE0LjggOS45bDM1LjQgODYuMS04Mi4xIDB6TTE1MiAzNTJhNDAgNDAgMCAxIDEgMCA4MCA0MCA0MCAwIDEgMSAwLTgwem0yODAgNDBhNDAgNDAgMCAxIDEgODAgMCA0MCA0MCAwIDEgMSAtODAgMHpNMjU2LjYgMTMyLjlsMjcuNCA0MSAwLTI5LjljMC0xMSA5LTIwIDIwLTIwczIwIDkgMjAgMjBsMCA5NmMwIDguOC01LjggMTYuNi0xNC4yIDE5LjFzLTE3LjUtLjctMjIuNC04bC0yNy40LTQxIDAgMjkuOWMwIDExLTkgMjAtMjAgMjBzLTIwLTktMjAtMjBsMC05NmMwLTguOCA1LjgtMTYuNiAxNC4yLTE5LjFzMTcuNSAuNyAyMi40IDh6TTEzMiAxNDRsMCA2NGMwIDYuNiA1LjQgMTIgMTIgMTJzMTItNS40IDEyLTEybDAtNjRjMC0xMSA5LTIwIDIwLTIwczIwIDkgMjAgMjBsMCA2NGMwIDI4LjctMjMuMyA1Mi01MiA1MnMtNTItMjMuMy01Mi01MmwwLTY0YzAtMTEgOS0yMCAyMC0yMHMyMCA5IDIwIDIweiJdfSxyc2U9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiY2xvY2siLGljb246WzUxMiw1MTIsWzEyODMzOSwiY2xvY2stZm91ciJdLCJmMDE3IiwiTTI1NiAwYTI1NiAyNTYgMCAxIDEgMCA1MTIgMjU2IDI1NiAwIDEgMSAwLTUxMnpNMjMyIDEyMGwwIDEzNmMwIDggNCAxNS41IDEwLjcgMjBsOTYgNjRjMTEgNy40IDI1LjkgNC40IDMzLjMtNi43czQuNC0yNS45LTYuNy0zMy4zTDI4MCAyNDMuMiAyODAgMTIwYzAtMTMuMy0xMC43LTI0LTI0LTI0cy0yNCAxMC43LTI0IDI0eiJdfSxiN3Q9cnNlLHY3dD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJib29rIixpY29uOls0NDgsNTEyLFsxMjgyMTJdLCJmMDJkIiwiTTM4NCA1MTJMOTYgNTEyYy01MyAwLTk2LTQzLTk2LTk2TDAgOTZDMCA0MyA0MyAwIDk2IDBMNDAwIDBjMjYuNSAwIDQ4IDIxLjUgNDggNDhsMCAyODhjMCAyMC45LTEzLjQgMzguNy0zMiA0NS4zbDAgNjYuN2MxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMmwtMzIgMHpNOTYgMzg0Yy0xNy43IDAtMzIgMTQuMy0zMiAzMnMxNC4zIDMyIDMyIDMybDI1NiAwIDAtNjQtMjU2IDB6bTMyLTIzMmMwIDEzLjMgMTAuNyAyNCAyNCAyNGwxNzYgMGMxMy4zIDAgMjQtMTAuNyAyNC0yNHMtMTAuNy0yNC0yNC0yNGwtMTc2IDBjLTEzLjMgMC0yNCAxMC43LTI0IDI0em0yNCA3MmMtMTMuMyAwLTI0IDEwLjctMjQgMjRzMTAuNyAyNCAyNCAyNGwxNzYgMGMxMy4zIDAgMjQtMTAuNyAyNC0yNHMtMTAuNy0yNC0yNC0yNGwtMTc2IDB6Il19LGlzZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJmYWNlLWxhdWdoLXdpbmsiLGljb246WzUxMiw1MTIsWyJsYXVnaC13aW5rIl0sImY1OWMiLCJNMjU2IDUxMmEyNTYgMjU2IDAgMSAwIDAtNTEyIDI1NiAyNTYgMCAxIDAgMCA1MTJ6TTEwMS42IDMxNGMtMy43LTEzLjcgNy41LTI2IDIxLjctMjZsMjY1LjQgMGMxNC4yIDAgMjUuNCAxMi4zIDIxLjcgMjYtMTguNSA2OC04MC42IDExOC0xNTQuNCAxMThTMTIwIDM4MiAxMDEuNiAzMTR6TTE0NCAxOTJhMzIgMzIgMCAxIDEgNjQgMCAzMiAzMiAwIDEgMSAtNjQgMHptMTY0IDhjMCAxMS05IDIwLTIwIDIwcy0yMC05LTIwLTIwYzAtMzMuMSAyNi45LTYwIDYwLTYwbDE2IDBjMzMuMSAwIDYwIDI2LjkgNjAgNjAgMCAxMS05IDIwLTIwIDIwcy0yMC05LTIwLTIwLTktMjAtMjAtMjBsLTE2IDBjLTExIDAtMjAgOS0yMCAyMHoiXX0seDd0PWlzZSx5N3Q9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiY2xvdWQtbWVhdGJhbGwiLGljb246WzUxMiw1MTIsW10sImY3M2IiLCJNMCAyMjRjMCA1MyA0MyA5NiA5NiA5NmwyNi45IDBjMy41LTEyLjEgMTAuMS0yMy4zIDE5LjItMzIuNGwxLjQtMS40YzE1LTE1IDM1LjMtMjIuOSA1Ni4xLTIyLjIgMTQuMi0xNS4xIDM0LjItMjMuOSA1NS40LTIzLjlsMiAwYzIxLjEgMCA0MS4xIDguOCA1NS40IDIzLjkgMjAuOC0uNiA0MS4xIDcuMyA1Ni4xIDIyLjJsMS40IDEuNGM5LjIgOS4yIDE1LjcgMjAuNCAxOS4yIDMyLjRsMjYuOSAwYzUzIDAgOTYtNDMgOTYtOTZzLTQzLTk2LTk2LTk2Yy0uNSAwLTEuMSAwLTEuNiAwIDEuMS01LjIgMS42LTEwLjUgMS42LTE2IDAtNDQuMi0zNS44LTgwLTgwLTgwLTI0LjMgMC00Ni4xIDEwLjktNjAuOCAyOC0xOC43LTM1LjctNTYuMS02MC05OS4yLTYwLTYxLjkgMC0xMTIgNTAuMS0xMTIgMTEyIDAgNy4xIC43IDE0LjEgMS45IDIwLjgtMzguMyAxMi42LTY1LjkgNDguNy02NS45IDkxLjJ6TTE1Ni41IDQyNC4zYzkuNSA2LjMgMTQuMiAxNy43IDExLjkgMjguOC0xLjggOS4yIDEgMTguNyA3LjcgMjUuM2wxLjQgMS40YzYuNiA2LjYgMTYuMSA5LjUgMjUuMyA3LjcgMTEuMS0yLjIgMjIuNSAyLjUgMjguOCAxMS45IDUuMiA3LjggMTQgMTIuNSAyMy4zIDEyLjVsMiAwYzkuNCAwIDE4LjEtNC43IDIzLjMtMTIuNSA2LjMtOS41IDE3LjctMTQuMiAyOC44LTExLjkgOS4yIDEuOCAxOC43LTEgMjUuMy03LjdsMS40LTEuNGM2LjYtNi42IDkuNS0xNi4xIDcuNy0yNS4zLTIuMi0xMS4xIDIuNS0yMi41IDExLjktMjguOCA3LjgtNS4yIDEyLjUtMTQgMTIuNS0yMy4zbDAtMmMwLTkuNC00LjctMTguMS0xMi41LTIzLjMtOS41LTYuMy0xNC4yLTE3LjctMTEuOS0yOC44IDEuOC05LjItMS0xOC43LTcuNy0yNS4zbC0xLjQtMS40Yy02LjYtNi42LTE2LjEtOS41LTI1LjMtNy43LTExLjEgMi4yLTIyLjUtMi41LTI4LjgtMTEuOS01LjItNy44LTE0LTEyLjUtMjMuMy0xMi41bC0yIDBjLTkuNCAwLTE4LjEgNC43LTIzLjMgMTIuNS02LjMgOS41LTE3LjcgMTQuMi0yOC44IDExLjktOS4yLTEuOC0xOC43IDEtMjUuMyA3LjdsLTEuNCAxLjRjLTYuNiA2LjYtOS41IDE2LjEtNy43IDI1LjMgMi4yIDExLjEtMi41IDIyLjUtMTEuOSAyOC44LTcuOCA1LjItMTIuNSAxNC0xMi41IDIzLjNsMCAyYzAgOS40IDQuNyAxOC4xIDEyLjUgMjMuM3pNNDggNDQ4YTQ4IDQ4IDAgMSAwIDAtOTYgNDggNDggMCAxIDAgMCA5NnptNDE2IDBhNDggNDggMCAxIDAgMC05NiA0OCA0OCAwIDEgMCAwIDk2eiJdfSxhc2U9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiY2hhcnQtYXJlYSIsaWNvbjpbNTEyLDUxMixbImFyZWEtY2hhcnQiXSwiZjFmZSIsIk0zMiAzMmMxNy43IDAgMzIgMTQuMyAzMiAzMmwwIDMzNmMwIDguOCA3LjIgMTYgMTYgMTZsNDAwIDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJMODAgNDgwYy00NC4yIDAtODAtMzUuOC04MC04MEwwIDY0QzAgNDYuMyAxNC4zIDMyIDMyIDMyek0yNDAgOTZjNi43IDAgMTMuMSAyLjggMTcuNyA3LjhMMzI4LjggMTgxLjMgMzc1IDEzNWM5LjQtOS40IDI0LjYtOS40IDMzLjkgMGw2NCA2NGM0LjUgNC41IDcgMTAuNiA3IDE3bDAgMTEyYzAgMTMuMy0xMC43IDI0LTI0IDI0bC0zMDQgMGMtMTMuMyAwLTI0LTEwLjctMjQtMjRsMC0xMTJjMC02IDIuMy0xMS44IDYuMy0xNi4ybDg4LTk2YzQuNS01IDExLTcuOCAxNy43LTcuOHoiXX0sdzd0PWFzZSxNN3Q9e3ByZWZpeDoiZmFzIixpY29uTmFtZToicnVwaWFoLXNpZ24iLGljb246WzUxMiw1MTIsW10sImUyM2QiLCJNMCA2NEMwIDQ2LjMgMTQuMyAzMiAzMiAzMmw4MCAwYzc5LjUgMCAxNDQgNjQuNSAxNDQgMTQ0IDAgNTQuMy0zMCAxMDEuNS03NC40IDEyNi4xbDQxIDEzNi43YzUuMSAxNi45LTQuNSAzNC44LTIxLjUgMzkuOHMtMzQuOC00LjUtMzkuOC0yMS41TDEyMC4xIDMxOS44Yy0yLjcgLjEtNS40IC4yLTguMSAuMmwtNDggMCAwIDEyOGMwIDE3LjctMTQuMyAzMi0zMiAzMlMwIDQ2NS43IDAgNDQ4TDAgNjR6TTY0IDI1Nmw0OCAwYzQ0LjIgMCA4MC0zNS44IDgwLTgwcy0zNS44LTgwLTgwLTgwbC00OCAwIDAgMTYwem0yNTYtMzJsODAgMGM2MS45IDAgMTEyIDUwLjEgMTEyIDExMlM0NjEuOSA0NDggNDAwIDQ0OGwtNDggMCAwIDY0YzAgMTcuNy0xNC4zIDMyLTMyIDMycy0zMi0xNC4zLTMyLTMybDAtMjU2YzAtMTcuNyAxNC4zLTMyIDMyLTMyem04MCAxNjBjMjYuNSAwIDQ4LTIxLjUgNDgtNDhzLTIxLjUtNDgtNDgtNDhsLTQ4IDAgMCA5NiA0OCAweiJdfSxrN3Q9e3ByZWZpeDoiZmFzIixpY29uTmFtZToidGV4dC13aWR0aCIsaWNvbjpbNDQ4LDUxMixbXSwiZjAzNSIsIk00MCAwQzE3LjkgMCAwIDE3LjkgMCA0MEwwIDk2YzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJsMC0zMiAxMjggMCAwIDE2MC0zMiAwYy0xNy43IDAtMzIgMTQuMy0zMiAzMnMxNC4zIDMyIDMyIDMybDEyOCAwYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMybC0zMiAwIDAtMTYwIDEyOCAwIDAgMzJjMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMmwwLTU2YzAtMjIuMS0xNy45LTQwLTQwLTQwTDQwIDB6bTc4LjYgNDA2LjZjMTIuNS0xMi41IDEyLjUtMzIuOCAwLTQ1LjNzLTMyLjgtMTIuNS00NS4zIDBsLTY0IDY0Yy0xMi41IDEyLjUtMTIuNSAzMi44IDAgNDUuM2w2NCA2NGMxMi41IDEyLjUgMzIuOCAxMi41IDQ1LjMgMHMxMi41LTMyLjggMC00NS4zbC05LjQtOS40IDIyOS41IDAtOS40IDkuNGMtMTIuNSAxMi41LTEyLjUgMzIuOCAwIDQ1LjNzMzIuOCAxMi41IDQ1LjMgMGw2NC02NGMxMi41LTEyLjUgMTIuNS0zMi44IDAtNDUuM2wtNjQtNjRjLTEyLjUtMTIuNS0zMi44LTEyLjUtNDUuMyAwcy0xMi41IDMyLjggMCA0NS4zbDkuNCA5LjQtMjI5LjUgMCA5LjQtOS40eiJdfSxTN3Q9e3ByZWZpeDoiZmFzIixpY29uTmFtZToic2F0ZWxsaXRlIixpY29uOls1MTIsNTEyLFsxMjg3NTJdLCJmN2JmIiwiTTE5OSA3YzkuNC05LjQgMjQuNi05LjQgMzMuOSAwbDg5LjQgODkuNCA1NS01NWMxMi41LTEyLjUgMzIuOC0xMi41IDQ1LjMgMGw0OCA0OGMxMi41IDEyLjUgMTIuNSAzMi44IDAgNDUuM2wtNTUgNTUgODkuNCA4OS40YzkuNCA5LjQgOS40IDI0LjYgMCAzMy45bC05NiA5NmMtOS40IDkuNC0yNC42IDkuNC0zMy45IDBsLTg5LjQtODkuNC0xNS41IDE1LjVjMTEuNCAyNC42IDE3LjggNTIgMTcuOCA4MC45IDAgMzEuNy03LjcgNjEuNS0yMS4yIDg3LjgtNC43IDktMTYuNyAxMC4zLTIzLjggMy4xbC05Ni4zLTk2LjMtNjAgNjBjLTEyLjUgMTIuNS0zMi44IDEyLjUtNDUuMyAwcy0xMi41LTMyLjggMC00NS4zbDYwLTYwLTk2LjMtOTYuM2MtNy4yLTcuMi01LjktMTkuMiAzLjEtMjMuOCAyNi4zLTEzLjYgNTYuMi0yMS4yIDg3LjgtMjEuMiAyOC45IDAgNTYuMyA2LjQgODAuOSAxNy44TDE5Mi40IDIyNi4zIDEwMyAxMzdjLTkuNC05LjQtOS40LTI0LjYgMC0zMy45TDE5OSA3em0xNyA1MC45bC02Mi4xIDYyLjEgNzIuNCA3Mi40IDYyLjEtNjIuMS03Mi40LTcyLjR6TTM5MiAzNTguMWw2Mi4xLTYyLjEtNzIuNC03Mi40LTYyLjEgNjIuMSA3Mi40IDcyLjR6Il19LG5zZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJtYWduaWZ5aW5nLWdsYXNzLW1pbnVzIixpY29uOls1MTIsNTEyLFsic2VhcmNoLW1pbnVzIl0sImYwMTAiLCJNNDE2IDIwOGMwIDQ1LjktMTQuOSA4OC4zLTQwIDEyMi43TDUwMi42IDQ1Ny40YzEyLjUgMTIuNSAxMi41IDMyLjggMCA0NS4zcy0zMi44IDEyLjUtNDUuMyAwTDMzMC43IDM3NkMyOTYuMyA0MDEuMSAyNTMuOSA0MTYgMjA4IDQxNiA5My4xIDQxNiAwIDMyMi45IDAgMjA4UzkzLjEgMCAyMDggMCA0MTYgOTMuMSA0MTYgMjA4ek0xMzYgMTg0Yy0xMy4zIDAtMjQgMTAuNy0yNCAyNHMxMC43IDI0IDI0IDI0bDE0NCAwYzEzLjMgMCAyNC0xMC43IDI0LTI0cy0xMC43LTI0LTI0LTI0bC0xNDQgMHoiXX0sejd0PW5zZSxDN3Q9e3ByZWZpeDoiZmFzIixpY29uTmFtZToicGVvcGxlLWdyb3VwIixpY29uOls1MTIsNTEyLFtdLCJlNTMzIiwiTTI1NiAwYTY0IDY0IDAgMSAxIDAgMTI4IDY0IDY0IDAgMSAxIDAtMTI4em05NiAzMTJjMCAyNS0xMi43IDQ3LTMyIDU5LjlsMCA5Mi4xYzAgMjYuNS0yMS41IDQ4LTQ4IDQ4bC0zMiAwYy0yNi41IDAtNDgtMjEuNS00OC00OGwwLTkyLjFDMTcyLjcgMzU5IDE2MCAzMzcgMTYwIDMxMmwwLTQwYzAtNTMgNDMtOTYgOTYtOTZzOTYgNDMgOTYgOTZsMCA0MHpNOTYgMzJhNTYgNTYgMCAxIDEgMCAxMTIgNTYgNTYgMCAxIDEgMC0xMTJ6bTE2IDI0MGwwIDMyYzAgMzIuNSAxMi4xIDYyLjEgMzIgODQuN2wwIDc1LjNjMCAxLjIgMCAyLjUgLjEgMy43LTguNSA3LjYtMTkuNyAxMi4zLTMyLjEgMTIuM2wtMzIgMGMtMjYuNSAwLTQ4LTIxLjUtNDgtNDhsMC01Ni42QzEyLjkgMzY0LjQgMCAzNDMuNyAwIDMyMGwwLTMyYzAtNTMgNDMtOTYgOTYtOTYgMTIuNyAwIDI0LjggMi41IDM1LjkgNi45LTEyLjYgMjEuNC0xOS45IDQ2LjQtMTkuOSA3My4xek0zNjggNDY0bDAtNzUuM2MxOS45LTIyLjUgMzItNTIuMiAzMi04NC43bDAtMzJjMC0yNi43LTcuMy01MS42LTE5LjktNzMuMSAxMS4xLTQuNSAyMy4yLTYuOSAzNS45LTYuOSA1MyAwIDk2IDQzIDk2IDk2bDAgMzJjMCAyMy43LTEyLjkgNDQuNC0zMiA1NS40bDAgNTYuNmMwIDI2LjUtMjEuNSA0OC00OCA0OGwtMzIgMGMtMTIuMyAwLTIzLjYtNC42LTMyLjEtMTIuMyAwLTEuMiAuMS0yLjUgLjEtMy43ek00MTYgMzJhNTYgNTYgMCAxIDEgMCAxMTIgNTYgNTYgMCAxIDEgMC0xMTJ6Il19LFQ3dD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJzcXVhcmUtYmluYXJ5IixpY29uOls0NDgsNTEyLFtdLCJlNjliIiwiTTAgOTZDMCA2MC43IDI4LjcgMzIgNjQgMzJsMzIwIDBjMzUuMyAwIDY0IDI4LjcgNjQgNjRsMCAzMjBjMCAzNS4zLTI4LjcgNjQtNjQgNjRMNjQgNDgwYy0zNS4zIDAtNjQtMjguNy02NC02NEwwIDk2em0xNDQgNGMtMjQuMyAwLTQ0IDE5LjctNDQgNDRsMCA0OGMwIDI0LjMgMTkuNyA0NCA0NCA0NGwzMiAwYzI0LjMgMCA0NC0xOS43IDQ0LTQ0bDAtNDhjMC0yNC4zLTE5LjctNDQtNDQtNDRsLTMyIDB6bS00IDQ0YzAtMi4yIDEuOC00IDQtNGwzMiAwYzIuMiAwIDQgMS44IDQgNGwwIDQ4YzAgMi4yLTEuOCA0LTQgNGwtMzIgMGMtMi4yIDAtNC0xLjgtNC00bDAtNDh6bTE0MC00NGMtMTEgMC0yMCA5LTIwIDIwIDAgOS43IDYuOSAxNy43IDE2IDE5LjZsMCA3Ni40YzAgMTEgOSAyMCAyMCAyMHMyMC05IDIwLTIwbDAtOTZjMC0xMS05LTIwLTIwLTIwbC0xNiAwek0xMzIgMjk2YzAgOS43IDYuOSAxNy43IDE2IDE5LjZsMCA3Ni40YzAgMTEgOSAyMCAyMCAyMHMyMC05IDIwLTIwbDAtOTZjMC0xMS05LTIwLTIwLTIwbC0xNiAwYy0xMSAwLTIwIDktMjAgMjB6bTk2IDI0bDAgNDhjMCAyNC4zIDE5LjcgNDQgNDQgNDRsMzIgMGMyNC4zIDAgNDQtMTkuNyA0NC00NGwwLTQ4YzAtMjQuMy0xOS43LTQ0LTQ0LTQ0bC0zMiAwYy0yNC4zIDAtNDQgMTkuNy00NCA0NHptNDQtNGwzMiAwYzIuMiAwIDQgMS44IDQgNGwwIDQ4YzAgMi4yLTEuOCA0LTQgNGwtMzIgMGMtMi4yIDAtNC0xLjgtNC00bDAtNDhjMC0yLjIgMS44LTQgNC00eiJdfSxvc2U9e3ByZWZpeDoiZmFzIixpY29uTmFtZToibWFza3MtdGhlYXRlciIsaWNvbjpbNTc2LDUxMixbMTI3OTE3LCJ0aGVhdGVyLW1hc2tzIl0sImY2MzAiLCJNLTUgMTE4TDIzLjUgMjc5LjdjMTQgNzkuNSA3Ni4zIDE0MS44IDE1NS44IDE1NS44bDEyLjcgMi4yYy0xNi41LTI4LjYtMjcuMS02MC43LTMwLjYtOTQuNWwtMjQuMSA0LjNjLTkuNyAxLjctMTguOC01LjgtMTYuOS0xNS41IDQuOC0yNC43IDE5LjEtNDYuNiAzOS43LTYwLjlsMC03NC42Yy0xLjQgLjgtMyAxLjMtNC43IDEuNmwtNjMgMTEuMWMtOC43IDEuNS0xNy4zLTQuNC0xNS45LTEzLjEgMy4xLTE5LjYgMTguNC0zNiAzOS4xLTM5LjcgMTcuMi0zIDMzLjkgMy41IDQ0LjYgMTUuOGwwLTIyLjdjMC0yMi41IDYuOS01Mi40IDMyLjMtNzMuNCAyNi0yMS41IDY3LjctNDMuOSAxMjQuOS01NC4yLTMwLjUtMTYuMy04Ni4zLTMyLTE2My44LTE4LjQtODAuMyAxNC4yLTEyOCA1MC4xLTE1MC4xIDc2LjEtOSAxMC41LTEwLjggMjQuOS04LjQgMzguNXpNMjA4IDEzOC43bDAgMTc0LjhjMCA4MC43IDUwLjUgMTUyLjkgMTI2LjQgMTgwLjRMMzYyLjEgNTA0YzE0LjEgNS4xIDI5LjYgNS4xIDQzLjcgMEw0MzMuNiA0OTRDNTA5LjUgNDY2LjQgNTYwIDM5NC4zIDU2MCAzMTMuNWwwLTE3NC44YzAtNi45LTIuMS0xMy44LTctMTguNi0yMi42LTIyLjUtNzguMi01Ni0xNjktNTZzLTE0Ni40IDMzLjYtMTY5IDU2Yy00LjkgNC45LTcgMTEuNy03IDE4LjZ6bTY2LjEgMTg3LjFjLTEuNC03IDctMTEgMTIuNy02LjYgMjYuOSAyMC42IDYwLjYgMzIuOSA5Ny4yIDMyLjlzNzAuMi0xMi4zIDk3LjItMzIuOWM1LjctNC40IDE0LjEtLjQgMTIuNyA2LjYtMTAuMSA1MS40LTU1LjUgOTAuMy0xMDkuOSA5MC4zcy05OS44LTM4LjgtMTA5LjktOTAuM3ptLjUtMTAxLjVDMjgxLjIgMjA1LjUgMjk5IDE5MiAzMjAgMTkyczM4LjkgMTMuNSA0NS40IDMyLjNjMi45IDguNC00LjUgMTUuNy0xMy40IDE1LjdsLTY0IDBjLTguOCAwLTE2LjMtNy40LTEzLjQtMTUuN3pNNDgwIDI0MGwtNjQgMGMtOC44IDAtMTYuMy03LjQtMTMuNC0xNS43IDYuNS0xOC44IDI0LjQtMzIuMyA0NS40LTMyLjNzMzguOSAxMy41IDQ1LjQgMzIuM2MyLjkgOC40LTQuNSAxNS43LTEzLjQgMTUuN3oiXX0sXzd0PW9zZSxMN3Q9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiY2FydC1wbHVzIixpY29uOls2NDAsNTEyLFtdLCJmMjE3IiwiTTAgOEMwLTUuMyAxMC43LTE2IDI0LTE2bDQ1LjMgMGMyNy4xIDAgNTAuMyAxOS40IDU1LjEgNDZsLjQgMiA0MTIuNyAwYzIwIDAgMzUuMSAxOC4yIDMxLjQgMzcuOUw1MzcuOCAyMzUuOGMtNS43IDMwLjMtMzIuMSA1Mi4yLTYyLjkgNTIuMmwtMzAzLjYgMCA1LjEgMjguM2MyLjEgMTEuNCAxMiAxOS43IDIzLjYgMTkuN0w0NTYgMzM2YzEzLjMgMCAyNCAxMC43IDI0IDI0cy0xMC43IDI0LTI0IDI0bC0yNTUuOSAwYy0zNC44IDAtNjQuNi0yNC45LTcwLjgtNTkuMUw3Ny4yIDM4LjZjLS43LTMuOC00LTYuNi03LjktNi42TDI0IDMyQzEwLjcgMzIgMCAyMS4zIDAgOHpNMTYwIDQ2NGE0OCA0OCAwIDEgMSA5NiAwIDQ4IDQ4IDAgMSAxIC05NiAwem0yMjQgMGE0OCA0OCAwIDEgMSA5NiAwIDQ4IDQ4IDAgMSAxIC05NiAwek0zMzYgNzguNGMtMTMuMyAwLTI0IDEwLjctMjQgMjRsMCAzMy42LTMzLjYgMGMtMTMuMyAwLTI0IDEwLjctMjQgMjRzMTAuNyAyNCAyNCAyNGwzMy42IDAgMCAzMy42YzAgMTMuMyAxMC43IDI0IDI0IDI0czI0LTEwLjcgMjQtMjRsMC0zMy42IDMzLjYgMGMxMy4zIDAgMjQtMTAuNyAyNC0yNHMtMTAuNy0yNC0yNC0yNGwtMzMuNiAwIDAtMzMuNmMwLTEzLjMtMTAuNy0yNC0yNC0yNHoiXX0sTGc9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiaGFuZHMtYXNsLWludGVycHJldGluZyIsaWNvbjpbNjQwLDUxMixbImFtZXJpY2FuLXNpZ24tbGFuZ3VhZ2UtaW50ZXJwcmV0aW5nIiwiYXNsLWludGVycHJldGluZyIsImhhbmRzLWFtZXJpY2FuLXNpZ24tbGFuZ3VhZ2UtaW50ZXJwcmV0aW5nIl0sImYyYTMiLCJNMTU2LjYgNDYuM2M3LjktMTUuOCAxLjUtMzUtMTQuMy00Mi45cy0zNS0xLjUtNDIuOSAxNC4zTDEzLjUgMTg5LjRDNC42IDIwNy4yIDAgMjI2LjggMCAyNDYuN0wwIDI1NmMwIDcwLjcgNTcuMyAxMjggMTI4IDEyOGw4MCAwIDAtLjNjMzUuMi0yLjcgNjUuNC0yMi44IDgyLjEtNTEuNyA4LjgtMTUuMyAzLjYtMzQuOS0xMS43LTQzLjdzLTM0LjktMy42LTQzLjcgMTEuN2MtNyAxMi0xOS45IDIwLTM0LjcgMjAtMjIuMSAwLTQwLTE3LjktNDAtNDBzMTcuOS00MCA0MC00MGMxNC44IDAgMjcuNyA4IDM0LjcgMjAgOC44IDE1LjMgMjguNCAyMC41IDQzLjcgMTEuN3MyMC41LTI4LjQgMTEuNy00My43Yy0xMi44LTIyLjEtMzMuNi0zOS4xLTU4LjQtNDcuMWw4MC44LTIyYzE3LTQuNiAyNy4xLTIyLjIgMjIuNS0zOS4zcy0yMi4yLTI3LjEtMzkuMy0yMi41bC0xMDAuNyAyNy41IDgxLjYtNjhjMTMuNi0xMS4zIDE1LjQtMzEuNSA0LjEtNDUuMVMyNDkuMS0zLjkgMjM1LjUgNy40bC0xMDEuOSA4NC45IDIzLTQ2ek00ODMuNCA0NjUuN2MtNy45IDE1LjgtMS41IDM1IDE0LjMgNDIuOXMzNSAxLjUgNDIuOS0xNC4zbDg1LjktMTcxLjdjOC45LTE3LjggMTMuNS0zNy40IDEzLjUtNTcuMmwwLTkuM2MwLTcwLjctNTcuMy0xMjgtMTI4LTEyOGwtODAgMCAwIC4zYy0zNS4yIDIuNy02NS40IDIyLjgtODIuMSA1MS43LTguOSAxNS4zLTMuNiAzNC45IDExLjcgNDMuN3MzNC45IDMuNiA0My43LTExLjdjNy0xMiAxOS45LTIwIDM0LjctMjAgMjIuMSAwIDQwIDE3LjkgNDAgNDBzLTE3LjkgNDAtNDAgNDBjLTE0LjggMC0yNy43LTgtMzQuNy0yMC04LjktMTUuMy0yOC40LTIwLjUtNDMuNy0xMS43cy0yMC41IDI4LjQtMTEuNyA0My43YzEyLjggMjIuMSAzMy42IDM5LjEgNTguNCA0Ny4xbC04MC44IDIyYy0xNy4xIDQuNi0yNy4xIDIyLjItMjIuNSAzOS4zczIyLjIgMjcuMSAzOS4zIDIyLjVsMTAwLjctMjcuNS04MS42IDY4Yy0xMy42IDExLjMtMTUuNCAzMS41LTQuMSA0NS4xczMxLjUgMTUuNCA0NS4xIDQuMWwxMDEuOS04NC45LTIzIDQ2eiJdfSxBN3Q9TGcsRDd0PUxnLEU3dD1MZywkN3Q9e3ByZWZpeDoiZmFzIixpY29uTmFtZToidGFibGUtY2VsbHMtcm93LXVubG9jayIsaWNvbjpbNjQwLDUxMixbXSwiZTY5MSIsIk0yNTYgMjI0bDAgMTkyIDY0IDAgMC0xOTItNjQgMHptMjU2LTc5Yy00Ni43IDUuOC04NS42IDM2LjgtMTAyLjcgNzlsLTI1LjMgMCAwIDkwLjhjLTEwLjEgMTUuMi0xNiAzMy40LTE2IDUzLjFsMCA5NmMwIDUuNSAuNSAxMC45IDEuMyAxNi4xTDEyOCA0ODBjLTM1LjMgMC02NC0yOC43LTY0LTY0TDY0IDk2YzAtMzUuMyAyOC43LTY0IDY0LTY0bDMyMCAwYzM1LjMgMCA2NCAyOC43IDY0IDY0bDAgNDl6TTEyOCAyMjRsMCAxOTIgNjQgMCAwLTE5Mi02NCAwem00MzIgNDhjLS4xLTE3LjYtMTQuNC0zMS45LTMyLTMxLjktMTcuNyAwLTMyIDE0LjMtMzIgMzJsMCA0Ny45IDk2IDBjMjYuNSAwIDQ4IDIxLjUgNDggNDhsMCA5NmMwIDI2LjUtMjEuNSA0OC00OCA0OGwtMTI4IDBjLTI2LjUgMC00OC0yMS41LTQ4LTQ4bDAtOTZjMC0yMC45IDEzLjQtMzguNyAzMi00NS4zbDAtNTAuNmMwLTQ0LjIgMzUuOC04MCA4MC04MCA0NC4yIDAgNzkuOSAzNS44IDgwIDc5LjlsLTQ4IDB6Il19LEk3dD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJyb2NrZXQiLGljb246WzUxMiw1MTIsW10sImYxMzUiLCJNMTI4IDMyMEwyNC41IDMyMGMtMjQuOSAwLTQwLjItMjcuMS0yNy40LTQ4LjVMNTAgMTgzLjNDNTguNyAxNjguOCA3NC4zIDE2MCA5MS4yIDE2MGw5NSAwYzc2LjEtMTI4LjkgMTg5LjYtMTM1LjQgMjY1LjUtMTI0LjMgMTIuOCAxLjkgMjIuOCAxMS45IDI0LjYgMjQuNiAxMS4xIDc1LjkgNC42IDE4OS40LTEyNC4zIDI2NS41bDAgOTVjMCAxNi45LTguOCAzMi41LTIzLjMgNDEuMmwtODguMiA1Mi45Yy0yMS4zIDEyLjgtNDguNS0yLjYtNDguNS0yNy40TDE5MiAzODRjMC0zNS4zLTI4LjctNjQtNjQtNjRsLS4xIDB6TTQwMCAxNjBhNDggNDggMCAxIDAgLTk2IDAgNDggNDggMCAxIDAgOTYgMHoiXX0sUDd0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InNocmltcCIsaWNvbjpbNTEyLDUxMixbMTI5NDI0XSwiZTQ0OCIsIk03MiAzMkMzMi4yIDMyIDAgNjQuMiAwIDEwNCAwIDE0MS45IDI5LjMgMTcyLjkgNjYuNCAxNzUuOCA3Ny42IDI1Ny4yIDE0Ny40IDMyMCAyMzIgMzIwbDU2IDAgMC0xOTItMjE2IDBjLTEzLjMgMC0yNC0xMC43LTI0LTI0UzU4LjcgODAgNzIgODBsMzg0IDBjMTMuMyAwIDI0LTEwLjcgMjQtMjRzLTEwLjctMjQtMjQtMjRMNzIgMzJ6TTIyNCA0NTZjMCAxMy4zIDEwLjcgMjQgMjQgMjRsNzIgMCAwLTcyLjItNjQuMS0yMi40Yy0xMi41LTQuNC0yNi4yIDIuMi0zMC42IDE0LjdzMi4yIDI2LjIgMTQuNyAzMC42bDQuNSAxLjZDMjMzIDQzMy45IDIyNCA0NDMuOSAyMjQgNDU2em0xMjggMjMuM2MzNi40LTMuMyA2OS41LTE3LjYgOTYuMS0zOS42bC04Ni41LTM0LjZjLTMgMS44LTYuMiAzLjItOS42IDQuM2wwIDY5Ljl6TTQ3Mi42IDQxNWMyNC42LTMwLjMgMzkuNC02OC45IDM5LjQtMTExIDAtMTIuMy0xLjMtMjQuMy0zLjctMzUuOUwzODIuOCAzNTUuMWMuOCAzLjQgMS4yIDcgMS4yIDEwLjYgMCA0LjYtLjcgOS0xLjkgMTMuMUw0NzIuNiA0MTV6TTMzNiAxMjhsLTE2IDAgMCAxOTIgMTguMyAwYzkuOSAwIDE5LjEgMy4yIDI2LjYgOC41bDEzMy41LTkyLjRDNDcxLjggMTcyLjYgNDA5LjEgMTI4IDMzNiAxMjh6TTE2OCAxOTJhMjQgMjQgMCAxIDEgNDggMCAyNCAyNCAwIDEgMSAtNDggMHoiXX0sc3NlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InRlbmdlLXNpZ24iLGljb246WzM4NCw1MTIsWzgzNzYsInRlbmdlIl0sImY3ZDciLCJNMCA1NkMwIDQyLjcgMTAuNyAzMiAyNCAzMmwzMzYgMGMxMy4zIDAgMjQgMTAuNyAyNCAyNHMtMTAuNyAyNC0yNCAyNEwyNCA4MEMxMC43IDgwIDAgNjkuMyAwIDU2ek0wIDE2MGMwLTE3LjcgMTQuMy0zMiAzMi0zMmwzMjAgMGMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMmwtMTI4IDAgMCAyNTZjMCAxNy43LTE0LjMgMzItMzIgMzJzLTMyLTE0LjMtMzItMzJsMC0yNTYtMTI4IDBjLTE3LjcgMC0zMi0xNC4zLTMyLTMyeiJdfSxON3Q9c3NlLGxzZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJob3VzZS1jaGltbmV5LW1lZGljYWwiLGljb246WzUxMiw1MTIsWyJjbGluaWMtbWVkaWNhbCJdLCJmN2YyIiwiTTIzNC4yIDguNmMxMi4zLTExLjQgMzEuMy0xMS40IDQzLjUgMEwzNjggOTIuMyAzNjggODBjMC0xNy43IDE0LjMtMzIgMzItMzJsMzIgMGMxNy43IDAgMzIgMTQuMyAzMiAzMmwwIDEwMS41IDM3LjggMzUuMWM5LjYgOSAxMi44IDIyLjkgOCAzNS4xUzQ5My4yIDI3MiA0ODAgMjcybC0xNiAwIDAgMTc2YzAgMzUuMy0yOC43IDY0LTY0IDY0bC0yODggMGMtMzUuMyAwLTY0LTI4LjctNjQtNjRsMC0xNzYtMTYgMGMtMTMuMiAwLTI1LTguMS0yOS44LTIwLjNzLTEuNi0yNi4yIDgtMzUuMWwyMjQtMjA4ek0yMjQgMjQ4bDAgNDAtNDAgMGMtOC44IDAtMTYgNy4yLTE2IDE2bDAgMzJjMCA4LjggNy4yIDE2IDE2IDE2bDQwIDAgMCA0MGMwIDguOCA3LjIgMTYgMTYgMTZsMzIgMGM4LjggMCAxNi03LjIgMTYtMTZsMC00MCA0MCAwYzguOCAwIDE2LTcuMiAxNi0xNmwwLTMyYzAtOC44LTcuMi0xNi0xNi0xNmwtNDAgMCAwLTQwYzAtOC44LTcuMi0xNi0xNi0xNmwtMzIgMGMtOC44IDAtMTYgNy4yLTE2IDE2eiJdfSxGN3Q9bHNlLE83dD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJ1c2Vycy1zbGFzaCIsaWNvbjpbNjQwLDUxMixbXSwiZTA3MyIsIk03My0yNC45Yy05LjQtOS40LTI0LjYtOS40LTMzLjkgMFMyOS43LS4zIDM5IDkuMWw1MjggNTI4YzkuNCA5LjQgMjQuNiA5LjQgMzMuOSAwczkuNC0yNC42IDAtMzMuOUwzMjEuOCAyMjRjNTYuNi0xIDEwMi4yLTQ3LjIgMTAyLjItMTA0IDAtNTcuNC00Ni42LTEwNC0xMDQtMTA0LTU2LjggMC0xMDMgNDUuNi0xMDQgMTAyLjJMNzMtMjQuOXpNNTEyIDI4OGMtMTcuMiAwLTMzLjcgMy40LTQ4LjcgOS42bDE3MCAxNzBjNC4yLTUuNCA2LjctMTIuMiA2LjctMTkuNmwwLTMyYzAtNzAuNy01Ny4zLTEyOC0xMjgtMTI4ek01OS45IDk3LjdjLTIxLjUgMTIuNS0zNS45IDM1LjctMzUuOSA2Mi4zIDAgMzkuOCAzMi4yIDcyIDcyIDcyIDI2LjYgMCA0OS44LTE0LjQgNjIuMy0zNS45TDU5LjkgOTcuN3pNMjUwLjIgMjg4QzE5Ni44IDMxMy45IDE2MCAzNjguNyAxNjAgNDMybDAgMTZjMCAxNy43IDE0LjMgMzIgMzIgMzJsMjUwLjIgMC0xOTItMTkyek0xMjggMjg4QzU3LjMgMjg4IDAgMzQ1LjMgMCA0MTZsMCAzMmMwIDE3LjcgMTQuMyAzMiAzMiAzMmw4Ni43IDBjLTQuMy05LjgtNi43LTIwLjYtNi43LTMybDAtMTZjMC01My4yIDIwLTEwMS44IDUyLjktMTM4LjYtMTEuNy0zLjUtMjQuMS01LjQtMzYuOS01LjR6TTYxNiAxNjBhNzIgNzIgMCAxIDAgLTE0NCAwIDcyIDcyIDAgMSAwIDE0NCAweiJdfSxSN3Q9e3ByZWZpeDoiZmFzIixpY29uTmFtZToicGFwZXItcGxhbmUiLGljb246WzU3Niw1MTIsWzYxOTEzXSwiZjFkOCIsIk01MzYuNC0yNi4zYzkuOC0zLjUgMjAuNi0xIDI4IDYuM3M5LjggMTguMiA2LjMgMjhsLTE3OCA0OTYuOWMtNSAxMy45LTE4LjEgMjMuMS0zMi44IDIzLjEtMTQuMiAwLTI3LTguNi0zMi4zLTIxLjdsLTY0LjItMTU4Yy00LjUtMTEtMi41LTIzLjYgNS4yLTMyLjZsOTQuNS0xMTIuNGM1LjEtNi4xIDQuNy0xNS0uOS0yMC42cy0xNC42LTYtMjAuNi0uOUwyMjkuMiAyNzYuMWMtOS4xIDcuNi0yMS42IDkuNi0zMi42IDUuMkwzOC4xIDIxNi44Yy0xMy4xLTUuMy0yMS43LTE4LjEtMjEuNy0zMi4zIDAtMTQuNyA5LjItMjcuOCAyMy4xLTMyLjhsNDk2LjktMTc4eiJdfSxjc2U9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiYm9vay1hdGxhcyIsaWNvbjpbNDQ4LDUxMixbImF0bGFzIl0sImY1NTgiLCJNOTYgNTEybDMyMCAwYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMybDAtNjYuN2MxOC42LTYuNiAzMi0yNC40IDMyLTQ1LjNsMC0yODhjMC0yNi41LTIxLjUtNDgtNDgtNDhMOTYgMEM0MyAwIDAgNDMgMCA5NkwwIDQxNmMwIDUzIDQzIDk2IDk2IDk2ek02NCA0MTZjMC0xNy43IDE0LjMtMzIgMzItMzJsMjU2IDAgMCA2NC0yNTYgMGMtMTcuNyAwLTMyLTE0LjMtMzItMzJ6TTMxMC42IDIwOEwyNzkgMjA4Yy0xLjQgMjMuMS02IDQ0LjItMTIuNiA2MS4yIDIyLjctMTIuNSAzOS40LTM0LjggNDQuMi02MS4yem0tMTczLjEgMGM0LjggMjYuNCAyMS41IDQ4LjcgNDQuMiA2MS4yLTYuNy0xNy0xMS4yLTM4LTEyLjYtNjEuMmwtMzEuNiAwem03Ni40IDU1YzQuNSA5LjYgOC4yIDEzLjggMTAuMiAxNS41IDItMS43IDUuNy01LjggMTAuMi0xNS41IDYuMi0xMy40IDExLjEtMzIuNSAxMi43LTU1bC00NS44IDBjMS42IDIyLjUgNi41IDQxLjYgMTIuNyA1NXptLTEyLjctODdsNDUuOCAwYy0xLjYtMjIuNS02LjUtNDEuNi0xMi43LTU1LTQuNS05LjYtOC4yLTEzLjgtMTAuMi0xNS41LTIgMS43LTUuNyA1LjgtMTAuMiAxNS41LTYuMiAxMy40LTExLjEgMzIuNS0xMi43IDU1em0xMDkuNSAwYy00LjgtMjYuNC0yMS41LTQ4LjctNDQuMi02MS4yIDYuNyAxNyAxMS4yIDM4IDEyLjYgNjEuMmwzMS42IDB6TTE2OSAxNzZjMS40LTIzLjEgNi00NC4yIDEyLjYtNjEuMi0yMi43IDEyLjUtMzkuNCAzNC44LTQ0LjIgNjEuMmwzMS42IDB6TTk2IDE5MmExMjggMTI4IDAgMSAxIDI1NiAwIDEyOCAxMjggMCAxIDEgLTI1NiAweiJdfSxCN3Q9Y3NlLEg3dD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJ0YWJsZSIsaWNvbjpbNDQ4LDUxMixbXSwiZjBjZSIsIk0zODQgMzJjMzUuMyAwIDY0IDI4LjcgNjQgNjRsMCAzMjBjMCAzNS4zLTI4LjcgNjQtNjQgNjRsLTMyMCAwLTYuNS0uM0MyNS4yIDQ3Ni40IDAgNDQ5LjEgMCA0MTZMMCA5NkMwIDYwLjcgMjguNyAzMiA2NCAzMmwzMjAgMHpNNjQgMzIwbDAgOTYgMTI4IDAgMC05Ni0xMjggMHptMTkyIDBsMCA5NiAxMjggMCAwLTk2LTEyOCAwek02NCAyNTZsMTI4IDAgMC05Ni0xMjggMCAwIDk2em0xOTIgMGwxMjggMCAwLTk2LTEyOCAwIDAgOTZ6Il19LHE3dD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJoZWFydCIsaWNvbjpbNTEyLDUxMixbMTI4MTUzLDEyODE1NCwxMjgxNTUsMTI4MTU2LDEyODQyMCwxMjkyOTMsMTI5Mjk0LDEyOTUwNSw5ODI5LDEwMDg0LDYxNTc4XSwiZjAwNCIsIk0yNDEgODcuMWwxNSAyMC43IDE1LTIwLjdDMjk2IDUyLjUgMzM2LjIgMzIgMzc4LjkgMzIgNDUyLjQgMzIgNTEyIDkxLjYgNTEyIDE2NS4xbDAgMi42YzAgMTEyLjItMTM5LjkgMjQyLjUtMjEyLjkgMjk4LjItMTIuNCA5LjQtMjcuNiAxNC4xLTQzLjEgMTQuMXMtMzAuOC00LjYtNDMuMS0xNC4xQzEzOS45IDQxMC4yIDAgMjc5LjkgMCAxNjcuN2wwLTIuNkMwIDkxLjYgNTkuNiAzMiAxMzMuMSAzMiAxNzUuOCAzMiAyMTYgNTIuNSAyNDEgODcuMXoiXX0sZHNlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImNpcmNsZS1jaGV2cm9uLXVwIixpY29uOls1MTIsNTEyLFsiY2hldnJvbi1jaXJjbGUtdXAiXSwiZjEzOSIsIk0yNTYgNTEyYTI1NiAyNTYgMCAxIDAgMC01MTIgMjU2IDI1NiAwIDEgMCAwIDUxMnpNMzc3IDI3MWM5LjQgOS40IDkuNCAyNC42IDAgMzMuOXMtMjQuNiA5LjQtMzMuOSAwbC04Ny04Ny04NyA4N2MtOS40IDkuNC0yNC42IDkuNC0zMy45IDBzLTkuNC0yNC42IDAtMzMuOUwyMzkgMTY3YzkuNC05LjQgMjQuNi05LjQgMzMuOSAwTDM3NyAyNzF6Il19LGo3dD1kc2UsdXNlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImJhdHRlcnktaGFsZiIsaWNvbjpbNjQwLDUxMixbImJhdHRlcnktMyJdLCJmMjQyIiwiTTUyOCAxMjhjOC44IDAgMTYgNy4yIDE2IDE2bDAgMjI0YzAgOC44LTcuMiAxNi0xNiAxNmwtNDE2IDBjLTguOCAwLTE2LTcuMi0xNi0xNmwwLTIyNGMwLTguOCA3LjItMTYgMTYtMTZsNDE2IDB6TTExMiA2NGMtNDQuMiAwLTgwIDM1LjgtODAgODBsMCAyMjRjMCA0NC4yIDM1LjggODAgODAgODBsNDE2IDBjNDQuMiAwIDgwLTM1LjggODAtODBsMC00OGMxNy43IDAgMzItMTQuMyAzMi0zMmwwLTY0YzAtMTcuNy0xNC4zLTMyLTMyLTMybDAtNDhjMC00NC4yLTM1LjgtODAtODAtODBMMTEyIDY0em01NiAxMTJjLTEzLjMgMC0yNCAxMC43LTI0IDI0bDAgMTEyYzAgMTMuMyAxMC43IDI0IDI0IDI0bDE0NCAwYzEzLjMgMCAyNC0xMC43IDI0LTI0bDAtMTEyYzAtMTMuMy0xMC43LTI0LTI0LTI0bC0xNDQgMHoiXX0sVjd0PXVzZSxvRD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJmb250LWF3ZXNvbWUiLGljb246WzUxMiw1MTIsWzYyNTAxLDYyNjk0LCJmb250LWF3ZXNvbWUtZmxhZyIsImZvbnQtYXdlc29tZS1sb2dvLWZ1bGwiXSwiZjJiNCIsIk05MS43IDk2QzEwNi4zIDg2LjggMTE2IDcwLjUgMTE2IDUyIDExNiAyMy4zIDkyLjcgMCA2NCAwUzEyIDIzLjMgMTIgNTJjMCAxNi43IDcuOCAzMS41IDIwIDQxbDAgNDE5IDY0IDAgMC02NCAzNzMuNiAwYzE0LjYgMCAyNi40LTExLjggMjYuNC0yNi40IDAtMy43LS44LTcuMy0yLjMtMTAuN0w0MzIgMjcyIDQ5My43IDEzMy4xYzEuNS0zLjQgMi4zLTcgMi4zLTEwLjcgMC0xNC42LTExLjgtMjYuNC0yNi40LTI2LjRMOTEuNyA5NnoiXX0sVTd0PW9ELFc3dD1vRCxHN3Q9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiaGFuZGN1ZmZzIixpY29uOls1NzYsNTEyLFtdLCJlNGY4IiwiTTMyMC0zMmMwLTE3LjctMTQuMy0zMi0zMi0zMnMtMzIgMTQuMy0zMiAzMiAxNC4zIDMyIDMyIDMyIDMyLTE0LjMgMzItMzJ6TTE5MiA2NGEzMiAzMiAwIDEgMCAwLTY0IDMyIDMyIDAgMSAwIDAgNjR6TTE1MiA5NmMtMTMuMyAwLTI0IDEwLjctMjQgMjRsMCAxNmMwIDEgLjEgMS45IC4yIDIuOS03NC43IDI2LjMtMTI4LjIgOTcuNS0xMjguMiAxODEuMSAwIDEwNiA4NiAxOTIgMTkyIDE5MnMxOTItODYgMTkyLTE5MmMwLTgzLjctNTMuNS0xNTQuOC0xMjguMi0xODEuMSAuMS0uOSAuMi0xLjkgLjItMi45bDAtMTZjMC0xMy4zLTEwLjctMjQtMjQtMjRsLTgwIDB6TTY0IDMyMGExMjggMTI4IDAgMSAxIDI1NiAwIDEyOCAxMjggMCAxIDEgLTI1NiAwem00NDggMGMwIDY2LjktNTEuMyAxMjEuOC0xMTYuNiAxMjcuNS0xNC4zIDIyLjgtMzIuNCA0My4xLTUzLjQgNTkuOSAxMy41IDMgMjcuNiA0LjYgNDIgNC42IDEwNiAwIDE5Mi04NiAxOTItMTkyIDAtODMuNy01My41LTE1NC44LTEyOC4yLTE4MS4xIC4xLS45IC4yLTEuOSAuMi0yLjlsMC0xNmMwLTEzLjMtMTAuNy0yNC0yNC0yNGwtODAgMGMtMTIuMyAwLTIyLjQgOS4yLTIzLjggMjEuMSAzMC4zIDE5LjIgNTYuMSA0NSA3NS4yIDc1LjQgNjUuNCA1LjggMTE2LjYgNjAuNiAxMTYuNiAxMjcuNXpNMzg0IDY0YTMyIDMyIDAgMSAwIDAtNjQgMzIgMzIgMCAxIDAgMCA2NHoiXX0sWTd0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImhhdC1jb3dib3ktc2lkZSIsaWNvbjpbNjQwLDUxMixbXSwiZjhjMSIsIk02NDAgMzg4LjNjMCAxNi45LTcuMSAzMi4yLTE4LjQgNDMuMWwtMzUtMjMuMy0yOTIuNy0xOTUuMWMtMzYuMS0yNC4xLTc4LjYtMzYuOS0xMjItMzYuOWwtMy45IDBjLTIuNyAwLTUuNCAwLTggLjFsMjIuMi0xMDBjNS43LTI1LjggMjguNi00NC4xIDU1LTQ0LjEgMTIuMiAwIDI0LjEgNCAzMy44IDExLjNsNC43IDMuNWMyNi4zIDE5LjcgNjIuNCAxOS43IDg4LjYgMGw0LjctMy41YzkuOC03LjMgMjEuNi0xMS4zIDMzLjgtMTEuMyAyNi40IDAgNDkuMyAxOC4zIDU1IDQ0LjFsMzMgMTQ4LjVDNTc0LjUgMjMyLjMgNjQwIDMwMi42IDY0MCAzODguM3pNMTcxLjkgMjI0YzMzLjkgMCA2Ny4xIDEwIDk1LjQgMjguOUw1NjAgNDQ4IDU2IDQ0OGMtMzAuOSAwLTU2LTI1LjEtNTYtNTYgMC05Mi44IDc1LjItMTY4IDE2OC0xNjhsMy45IDB6Il19LFo3dD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJpbmR1c3RyeSIsaWNvbjpbNTEyLDUxMixbXSwiZjI3NSIsIk0zMiAzMkMxNC4zIDMyIDAgNDYuMyAwIDY0TDAgNDMyYzAgMjYuNSAyMS41IDQ4IDQ4IDQ4bDQxNiAwYzI2LjUgMCA0OC0yMS41IDQ4LTQ4bDAtMjc5LjhjMC0xOC4yLTE5LjQtMjkuNy0zNS40LTIxLjFsLTE1Ni42IDg0LjMgMC02My4yYzAtMTguMi0xOS40LTI5LjctMzUuNC0yMS4xTDEyOCAyMTUuNCAxMjggNjRjMC0xNy43LTE0LjMtMzItMzItMzJMMzIgMzJ6Il19LFg3dD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJsaW5lcy1sZWFuaW5nIixpY29uOlszODQsNTEyLFtdLCJlNTFlIiwiTTE5MC40IDc0LjFjNS42LTE2LjgtMy41LTM0LjktMjAuMi00MC41cy0zNC45IDMuNS00MC41IDIwLjJsLTEyOCAzODRjLTUuNiAxNi44IDMuNSAzNC45IDIwLjIgNDAuNXMzNC45LTMuNSA0MC41LTIwLjJsMTI4LTM4NHptNzAuOS00MS43Yy0xNy40LTIuOS0zMy45IDguOS0zNi44IDI2LjNsLTY0IDM4NGMtMi45IDE3LjQgOC45IDMzLjkgMjYuMyAzNi44czMzLjktOC45IDM2LjgtMjYuM2w2NC0zODRjMi45LTE3LjQtOC45LTMzLjktMjYuMy0zNi44ek0zNTIgMzJjLTE3LjcgMC0zMiAxNC4zLTMyIDMybDAgMzg0YzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJsMC0zODRjMC0xNy43LTE0LjMtMzItMzItMzJ6Il19LFE3dD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJwYXNzcG9ydCIsaWNvbjpbMzg0LDUxMixbXSwiZjVhYiIsIk0wIDY0QzAgMjguNyAyOC43IDAgNjQgMEwzMjAgMGMzNS4zIDAgNjQgMjguNyA2NCA2NGwwIDM4NGMwIDM1LjMtMjguNyA2NC02NCA2NEw2NCA1MTJjLTM1LjMgMC02NC0yOC43LTY0LTY0TDAgNjR6TTk2IDQwOGMwIDEzLjMgMTAuNyAyNCAyNCAyNGwxNDQgMGMxMy4zIDAgMjQtMTAuNyAyNC0yNHMtMTAuNy0yNC0yNC0yNGwtMTQ0IDBjLTEzLjMgMC0yNCAxMC43LTI0IDI0ek0yNzguNiAyMDhjLTQuOCAyNi40LTIxLjUgNDguNy00NC4yIDYxLjIgNi43LTE3IDExLjItMzggMTIuNi02MS4ybDMxLjYgMHptLTE3My4xIDBsMzEuNiAwYzEuNCAyMy4xIDYgNDQuMiAxMi42IDYxLjItMjIuNy0xMi41LTM5LjQtMzQuOC00NC4yLTYxLjJ6bTc2LjQgNTVjLTYuMi0xMy40LTExLjEtMzIuNS0xMi43LTU1bDQ1LjggMGMtMS42IDIyLjUtNi41IDQxLjYtMTIuNyA1NS00LjUgOS42LTguMiAxMy44LTEwLjIgMTUuNS0yLTEuNy01LjctNS44LTEwLjItMTUuNXptMC0xNDJjNC41LTkuNiA4LjItMTMuOCAxMC4yLTE1LjUgMiAxLjcgNS43IDUuOCAxMC4yIDE1LjUgNi4yIDEzLjQgMTEuMSAzMi41IDEyLjcgNTVsLTQ1LjggMGMxLjYtMjIuNSA2LjUtNDEuNiAxMi43LTU1em05Ni43IDU1TDI0NyAxNzZjLTEuNC0yMy4xLTYtNDQuMi0xMi42LTYxLjIgMjIuNyAxMi41IDM5LjQgMzQuOCA0NC4yIDYxLjJ6TTEzNyAxNzZsLTMxLjYgMGM0LjgtMjYuNCAyMS41LTQ4LjcgNDQuMi02MS4yLTYuNyAxNy0xMS4yIDM4LTEyLjYgNjEuMnptMTgzIDE2YTEyOCAxMjggMCAxIDAgLTI1NiAwIDEyOCAxMjggMCAxIDAgMjU2IDB6Il19LEo3dD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJpbmZpbml0eSIsaWNvbjpbNjQwLDUxMixbODczNCw5ODU0XSwiZjUzNCIsIk0wIDI1NmMwLTg4LjQgNzEuNi0xNjAgMTYwLTE2MCA1MC40IDAgOTcuOCAyMy43IDEyOCA2NGwzMiA0Mi43IDMyLTQyLjdjMzAuMi00MC4zIDc3LjYtNjQgMTI4LTY0IDg4LjQgMCAxNjAgNzEuNiAxNjAgMTYwUzU2OC40IDQxNiA0ODAgNDE2Yy01MC40IDAtOTcuOC0yMy43LTEyOC02NGwtMzItNDIuNy0zMiA0Mi43Yy0zMC4yIDQwLjMtNzcuNiA2NC0xMjggNjQtODguNCAwLTE2MC03MS42LTE2MC0xNjB6bTI4MCAwbC00My4yLTU3LjZjLTE4LjEtMjQuMi00Ni42LTM4LjQtNzYuOC0zOC40LTUzIDAtOTYgNDMtOTYgOTZzNDMgOTYgOTYgOTZjMzAuMiAwIDU4LjctMTQuMiA3Ni44LTM4LjRMMjgwIDI1NnptODAgMGw0My4yIDU3LjZjMTguMSAyNC4yIDQ2LjYgMzguNCA3Ni44IDM4LjQgNTMgMCA5Ni00MyA5Ni05NnMtNDMtOTYtOTYtOTZjLTMwLjIgMC01OC43IDE0LjItNzYuOCAzOC40TDM2MCAyNTZ6Il19LEs3dD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJjbG9uZSIsaWNvbjpbNTEyLDUxMixbXSwiZjI0ZCIsIk0yODggNDQ4bC0yMjQgMCAwLTIyNCA0OCAwIDAtNjQtNDggMGMtMzUuMyAwLTY0IDI4LjctNjQgNjRMMCA0NDhjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMjI0IDBjMzUuMyAwIDY0LTI4LjcgNjQtNjRsMC00OC02NCAwIDAgNDh6bS02NC05NmwyMjQgMGMzNS4zIDAgNjQtMjguNyA2NC02NGwwLTIyNGMwLTM1LjMtMjguNy02NC02NC02NEwyMjQgMGMtMzUuMyAwLTY0IDI4LjctNjQgNjRsMCAyMjRjMCAzNS4zIDI4LjcgNjQgNjQgNjR6Il19LGVtdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJmb3J3YXJkIixpY29uOls1NzYsNTEyLFs5MTkzXSwiZjA0ZSIsIk0zNzEuNyA0My4xQzM2MC4xIDMyIDM0MyAyOC45IDMyOC4zIDM1LjJTMzA0IDU2IDMwNCA3MmwwIDEzNi4zLTE3Mi4zLTE2NS4xQzEyMC4xIDMyIDEwMyAyOC45IDg4LjMgMzUuMlM2NCA1NiA2NCA3MmwwIDM2OGMwIDE2IDkuNiAzMC41IDI0LjMgMzYuOHMzMS44IDMuMiA0My40LTcuOUwzMDQgMzAzLjcgMzA0IDQ0MGMwIDE2IDkuNiAzMC41IDI0LjMgMzYuOHMzMS44IDMuMiA0My40LTcuOWwxOTItMTg0YzcuOS03LjUgMTIuMy0xOCAxMi4zLTI4LjlzLTQuNS0yMS4zLTEyLjMtMjguOWwtMTkyLTE4NHoiXX0sdG10PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6Im0iLGljb246WzQ0OCw1MTIsWzEwOV0sIjRkIiwiTTIyLjcgMzMuNGMxMy41LTQuMSAyOC4xIDEuMSAzNS45IDEyLjlMMjI0IDI5NC4zIDM4OS40IDQ2LjNjNy44LTExLjcgMjIuNC0xNyAzNS45LTEyLjlTNDQ4IDQ5LjkgNDQ4IDY0bDAgMzg0YzAgMTcuNy0xNC4zIDMyLTMyIDMycy0zMi0xNC4zLTMyLTMybDAtMjc4LjMtMTMzLjQgMjAwLjFjLTUuOSA4LjktMTUuOSAxNC4yLTI2LjYgMTQuMnMtMjAuNy01LjMtMjYuNi0xNC4yTDY0IDE2OS43IDY0IDQ0OGMwIDE3LjctMTQuMyAzMi0zMiAzMlMwIDQ2NS43IDAgNDQ4TDAgNjRDMCA0OS45IDkuMiAzNy41IDIyLjcgMzMuNHoiXX0scm10PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InJvYWQtc3Bpa2VzIixpY29uOls2NDAsNTEyLFtdLCJlNTY4IiwiTTY0IDExNi44YzAtMTUuOCAyMC41LTIyIDI5LjMtOC45bDk4LjcgMTQ4IDAtMTM5LjJjMC0xNS44IDIwLjUtMjIgMjkuMy04LjlsOTguNyAxNDggMC0xMzkuMmMwLTE1LjggMjAuNS0yMiAyOS4zLTguOWw5OC43IDE0OCAwLTEzOS4yYzAtMTUuOCAyMC41LTIyIDI5LjMtOC45TDYwNi44IDMwMi4yYzE0LjIgMjEuMy0xLjEgNDkuOC0yNi42IDQ5LjhMNjQgMzUyIDY0IDExNi44ek0zMiAzODRsNTc2IDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJMMzIgNDQ4Yy0xNy43IDAtMzItMTQuMy0zMi0zMnMxNC4zLTMyIDMyLTMyeiJdfSxpbXQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToibW91bnRhaW4iLGljb246WzUxMiw1MTIsWzEyNzk1Nl0sImY2ZmMiLCJNMjU2LjUgMGMxNC43IDAgMjguMiA4LjEgMzUuMiAyMWwyMTYgNDAwYzYuNyAxMi40IDYuNCAyNy40LS44IDM5LjUtNy4yIDEyLjEtMjAuMyAxOS41LTM0LjMgMTkuNWwtNDMyIDBjLTE0LjEgMC0yNy4xLTcuNC0zNC4zLTE5LjVzLTcuNS0yNy4xLS44LTM5LjVsMjE2LTQwMCAyLjktNC42QzIzMS43IDYuMiAyNDMuNiAwIDI1Ni41IDB6TTE3MC40IDI0OS45bDI2LjggMjYuOGM2LjIgNi4yIDE2LjQgNi4yIDIyLjYgMGw0My4zLTQzLjNjNi02IDE0LjEtOS40IDIyLjYtOS40bDQyLjggMC03Mi4xLTEzMy41LTg2LjEgMTU5LjR6Il19LGFtdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJjaGVzcyIsaWNvbjpbNTEyLDUxMixbXSwiZjQzOSIsIk0xNjggNTZsMCA0MC03OC4xIDBjLTE0LjMgMC0yNS45IDExLjYtMjUuOSAyNS45IDAgNCAuOSA4IDIuNyAxMS42bDMzLjQgNjYuOGMtMTEuNCAxLjgtMjAuMiAxMS43LTIwLjIgMjMuNyAwIDEzLjMgMTAuNyAyNCAyNCAyNGw1LjYgMC0xMy42IDEzNi01Ni4yIDcwLjNjLTUgNi4zLTcuOCAxNC4xLTcuOCAyMi4yIDAgMTkuNiAxNS45IDM1LjUgMzUuNSAzNS41bDI0OC45IDBjMTkuNiAwIDM1LjUtMTUuOSAzNS41LTM1LjUgMC04LjEtMi43LTE1LjktNy44LTIyLjJMMjg4IDM4NCAyNzQuNCAyNDggMjgwIDI0OGMxMy4zIDAgMjQtMTAuNyAyNC0yNCAwLTExLjktOC43LTIxLjktMjAuMi0yMy43bDMzLjQtNjYuOGMxLjgtMy42IDIuNy03LjYgMi43LTExLjYgMC0xNC4zLTExLjYtMjUuOS0yNS45LTI1LjlsLTc4LjEgMCAwLTQwIDE2IDBjMTMuMyAwIDI0LTEwLjcgMjQtMjRTMjQ1LjMgOCAyMzIgOGwtMTYgMCAwLTE2YzAtMTMuMy0xMC43LTI0LTI0LTI0UzE2OC0yMS4zIDE2OC04bDAgMTYtMTYgMGMtMTMuMyAwLTI0IDEwLjctMjQgMjRzMTAuNyAyNCAyNCAyNGwxNiAwek0zMjUuOCAyNzkuNmw4LjUgODUuNSA0Ny40IDU5LjIgNC4yIDUuN2M5LjIgMTMuNyAxNC4xIDI5LjkgMTQuMSA0Ni41IDAgMTIuNy0yLjggMjQuOC03LjkgMzUuNWw4My4xIDBjMjAuMyAwIDM2LjgtMTYuNSAzNi44LTM2LjggMC03LjMtMi4yLTE0LjQtNi4yLTIwLjRsLTI1LjgtMzguNyAwLTY0IDEzLjMtMTMuM2MxMi0xMiAxOC43LTI4LjMgMTguNy00NS4zTDUxMiAxOTJjMC0xNy43LTE0LjMtMzItMzItMzJzLTMyIDE0LjMtMzIgMzJsMCAxNi0zMiAwIDAtMTZjMC0xNy43LTE0LjMtMzItMzItMzJzLTMyIDE0LjMtMzIgMzJsMCAzMmMwIDIyLjQtMTAuMiA0Mi40LTI2LjIgNTUuNnoiXX0sQWc9e3ByZWZpeDoiZmFzIixpY29uTmFtZToidGVtcGVyYXR1cmUtdGhyZWUtcXVhcnRlcnMiLGljb246WzMyMCw1MTIsWyJ0ZW1wZXJhdHVyZS0zIiwidGhlcm1vbWV0ZXItMyIsInRoZXJtb21ldGVyLXRocmVlLXF1YXJ0ZXJzIl0sImYyYzgiLCJNMTYwIDBDMTA3IDAgNjQgNDMgNjQgOTZsMCAxNjQuN0MzNC41IDI4NyAxNiAzMjUuNCAxNiAzNjggMTYgNDQ3LjUgODAuNSA1MTIgMTYwIDUxMnMxNDQtNjQuNSAxNDQtMTQ0YzAtNDIuNi0xOC41LTgxLTQ4LTEwNy4zTDI1NiA5NmMwLTUzLTQzLTk2LTk2LTk2em02NCAzNjhjMCAzNS4zLTI4LjcgNjQtNjQgNjRzLTY0LTI4LjctNjQtNjRjMC0yNi45IDE2LjUtNDkuOSA0MC01OS4zTDEzNiAxNTJjMC0xMy4zIDEwLjctMjQgMjQtMjRzMjQgMTAuNyAyNCAyNGwwIDE1Ni43YzIzLjUgOS41IDQwIDMyLjUgNDAgNTkuM3oiXX0sbm10PUFnLG9tdD1BZyxzbXQ9QWcsbG10PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImIiLGljb246WzMyMCw1MTIsWzk4XSwiNDIiLCJNMzIgMzJDMTQuMyAzMiAwIDQ2LjMgMCA2NEwwIDQ0OGMwIDE3LjcgMTQuMyAzMiAzMiAzMmwxNjAgMGM3MC43IDAgMTI4LTU3LjMgMTI4LTEyOCAwLTQ2LjUtMjQuOC04Ny4zLTYyLTEwOS43IDE4LjctMjIuMyAzMC01MSAzMC04Mi4zIDAtNzAuNy01Ny4zLTEyOC0xMjgtMTI4TDMyIDMyek0xNjAgMjI0bC05NiAwIDAtMTI4IDk2IDBjMzUuMyAwIDY0IDI4LjcgNjQgNjRzLTI4LjcgNjQtNjQgNjR6TTY0IDI4OGwxMjggMGMzNS4zIDAgNjQgMjguNyA2NCA2NHMtMjguNyA2NC02NCA2NGwtMTI4IDAgMC0xMjh6Il19LGNtdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJzaGllbGQtdmlydXMiLGljb246WzUxMiw1MTIsW10sImUwNmMiLCJNMjUzLjQgMi45QzI0OS4yIDEgMjQ0LjcgMCAyNDAgMHMtOS4yIDEtMTMuNCAyLjlMMzguMyA4Mi44Yy0yMiA5LjMtMzguNCAzMS0zOC4zIDU3LjIgLjUgOTkuMiA0MS4zIDI4MC43IDIxMy42IDM2My4yIDE2LjcgOCAzNi4xIDggNTIuOCAwIDE3Mi40LTgyLjUgMjEzLjItMjY0IDIxMy42LTM2My4yIC4xLTI2LjItMTYuMy00Ny45LTM4LjMtNTcuMkwyNTMuNCAyLjl6TTI0MCAxMjhjMTMuMyAwIDI0IDEwLjcgMjQgMjQgMCAyMi45IDI3LjcgMzQuNCA0My45IDE4LjIgOS40LTkuNCAyNC42LTkuNCAzMy45IDBzOS40IDI0LjYgMCAzMy45Yy0xNi4yIDE2LjItNC43IDQzLjkgMTguMiA0My45IDEzLjMgMCAyNCAxMC43IDI0IDI0cy0xMC43IDI0LTI0IDI0Yy0yMi45IDAtMzQuNCAyNy43LTE4LjIgNDMuOSA5LjQgOS40IDkuNCAyNC42IDAgMzMuOXMtMjQuNiA5LjQtMzMuOSAwYy0xNi4yLTE2LjItNDMuOS00LjctNDMuOSAxOC4yIDAgMTMuMy0xMC43IDI0LTI0IDI0cy0yNC0xMC43LTI0LTI0YzAtMjIuOS0yNy43LTM0LjQtNDMuOS0xOC4yLTkuNCA5LjQtMjQuNiA5LjQtMzMuOSAwcy05LjQtMjQuNiAwLTMzLjljMTYuMi0xNi4yIDQuNy00My45LTE4LjItNDMuOS0xMy4zIDAtMjQtMTAuNy0yNC0yNHMxMC43LTI0IDI0LTI0YzIyLjkgMCAzNC40LTI3LjcgMTguMi00My45LTkuNC05LjQtOS40LTI0LjYgMC0zMy45czI0LjYtOS40IDMzLjkgMGMxNi4yIDE2LjIgNDMuOSA0LjcgNDMuOS0xOC4yIDAtMTMuMyAxMC43LTI0IDI0LTI0ek0yMDggMjY0YTI0IDI0IDAgMSAwIDAtNDggMjQgMjQgMCAxIDAgMCA0OHptODggNDBhMjQgMjQgMCAxIDAgLTQ4IDAgMjQgMjQgMCAxIDAgNDggMHoiXX0sZG10PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImxpdGVjb2luLXNpZ24iLGljb246WzM4NCw1MTIsW10sImUxZDMiLCJNMTI4IDY0YzAtMTcuNy0xNC4zLTMyLTMyLTMyUzY0IDQ2LjMgNjQgNjRsMCAxNTcuOS0zOC42IDExYy0xMi43IDMuNi0yMC4xIDE2LjktMTYuNSAyOS43czE2LjkgMjAuMSAyOS43IDE2LjVMNjQgMjcxLjggNjQgNDQ4YzAgMTcuNyAxNC4zIDMyIDMyIDMybDI1NiAwYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMybC0yMjQgMCAwLTE2Mi41IDEzNC42LTM4LjVjMTIuNy0zLjYgMjAuMS0xNi45IDE2LjUtMjkuN3MtMTYuOS0yMC4xLTI5LjctMTYuNUwxMjggMjAzLjYgMTI4IDY0eiJdfSx1bXQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZGljZS1kNiIsaWNvbjpbNTEyLDUxMixbXSwiZjZkMSIsIk0yMjQuNCA4LjNDMjQ0LTIuOCAyNjgtMi44IDI4Ny42IDguM2wxNzYgOTkuN2MyMCAxMS40IDMyLjQgMzIuNiAzMi40IDU1LjdsMCAxOTcuNGMwIDIzLTEyLjQgNDQuMy0zMi40IDU1LjdsLTE3NiA5OS43Yy0xOS42IDExLjEtNDMuNiAxMS4xLTYzLjEgMGwtMTc2LTk5LjdDMjguNCA0MDUuNSAxNiAzODQuMiAxNiAzNjEuMmwwLTE5Ny40YzAtMjMgMTIuNC00NC4zIDMyLjQtNTUuN2wxNzYtOTkuN3pNMTAyLjYgMTU1LjZjLTguOC0zLjEtMTguOCAuMy0yMy44IDguNnMtMy4yIDE4LjcgMy42IDI1bDMuMiAyLjQgMTUwLjIgOTAuMiAwIDE0OC43YzAgMTEgOSAyMCAyMCAyMCAxMSAwIDIwLTkgMjAtMjBsMC0xNDguNyAxNTAuMy05MC4yYzkuNS01LjcgMTIuNi0xOCA2LjktMjcuNHMtMTgtMTIuNS0yNy40LTYuOWwtMTQ5LjcgODkuOC0xNDkuNy04OS44LTMuNy0xLjd6Il19LHBtdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJncmlwLWxpbmVzLXZlcnRpY2FsIixpY29uOlsxOTIsNTEyLFtdLCJmN2E1IiwiTTY0IDY0YzAtMTcuNy0xNC4zLTMyLTMyLTMyUzAgNDYuMyAwIDY0TDAgNDQ4YzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJMNjQgNjR6bTEyOCAwYzAtMTcuNy0xNC4zLTMyLTMyLTMycy0zMiAxNC4zLTMyIDMybDAgMzg0YzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJsMC0zODR6Il19LHBzZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJnb2xmLWJhbGwtdGVlIixpY29uOlszODQsNTEyLFsiZ29sZi1iYWxsIl0sImY0NTAiLCJNMjk4LjUgMzg0LjFjMTIuMSAxLjIgMjEuNSAxMS41IDIxLjUgMjMuOXMtOS40IDIyLjYtMjEuNSAyMy45bC0yLjUgLjEtODAgMCAwIDg4YzAgMTMuMy0xMC43IDI0LTI0IDI0cy0yNC0xMC43LTI0LTI0bDAtODgtODAgMGMtMTMuMyAwLTI0LTEwLjctMjQtMjQgMC0xMi40IDkuNC0yMi42IDIxLjUtMjMuOWwyLjUtLjEgMjA4IDAgMi41IC4xek0xOTIgMGMxMDYgMCAxOTIgODYgMTkyIDE5MiAwIDU3LjQtMjUuMiAxMDguOC02NS4xIDE0NEw2NS4xIDMzNkMyNS4yIDMwMC44IDAgMjQ5LjQgMCAxOTIgMCA4NiA4NiAwIDE5MiAwem0zMiAyNDBjLTcuNyAwLTE0LjIgNS41LTE1LjcgMTIuOGwtLjYgNi40Yy0xLjMgNi4zLTYuMiAxMS4yLTEyLjUgMTIuNWwtNi40IC42Yy03LjMgMS41LTEyLjggOC0xMi44IDE1LjcgMCA4LjggNy4yIDE2IDE2IDE2IDI2LjUgMCA0OC0yMS41IDQ4LTQ4IDAtOC44LTcuMi0xNi0xNi0xNnptNjQtNjRjLTcuNyAwLTE0LjIgNS41LTE1LjcgMTIuOGwtLjYgNi40Yy0xLjMgNi4zLTYuMiAxMS4yLTEyLjUgMTIuNWwtNi40IC42Yy03LjMgMS41LTEyLjggOC0xMi44IDE1LjcgMCA4LjggNy4yIDE2IDE2IDE2IDI2LjUgMCA0OC0yMS41IDQ4LTQ4IDAtOC44LTcuMi0xNi0xNi0xNnptLTgwLTE2Yy03LjcgMC0xNC4yIDUuNS0xNS43IDEyLjhsLS42IDYuNGMtMS4zIDYuMy02LjIgMTEuMi0xMi41IDEyLjVsLTYuNCAuNmMtNy4zIDEuNS0xMi44IDgtMTIuOCAxNS43IDAgOC44IDcuMiAxNiAxNiAxNiAyNi41IDAgNDgtMjEuNSA0OC00OCAwLTguOC03LjItMTYtMTYtMTZ6Il19LGhtdD1wc2UsZm10PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImhleGFnb24iLGljb246WzU3Niw1MTIsWzExMDQzXSwiZjMxMiIsIk0zMy41IDIyMC4zYy0xMi43IDIyLjItMTIuNyA0OS40IDAgNzEuNWw5Ni4yIDE2OC4xYzEyLjggMjIuNCAzNi43IDM2LjIgNjIuNSAzNi4ybDE5MS42IDBjMjUuOCAwIDQ5LjctMTMuOCA2Mi41LTM2LjJsOTYuMi0xNjguMWMxMi43LTIyLjIgMTIuNy00OS40IDAtNzEuNUw0NDYuMyA1Mi4yQzQzMy41IDI5LjggNDA5LjYgMTYgMzgzLjggMTZMMTkyLjIgMTZjLTI1LjggMC00OS43IDEzLjgtNjIuNSAzNi4yTDMzLjUgMjIwLjN6Il19LG1tdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJmb2xkZXItb3BlbiIsaWNvbjpbNTc2LDUxMixbMTI4MTk0LDEyODQ0OSw2MTcxN10sImYwN2MiLCJNNTYgMjI1LjZMMzIuNCAyOTYuMiAzMi40IDk2YzAtMzUuMyAyOC43LTY0IDY0LTY0bDEzOC43IDBjMTMuOCAwIDI3LjMgNC41IDM4LjQgMTIuOGwzOC40IDI4LjhjNS41IDQuMiAxMi4zIDYuNCAxOS4yIDYuNGwxMTcuMyAwYzM1LjMgMCA2NCAyOC43IDY0IDY0bDAgMTYtMzY1LjQgMGMtNDEuMyAwLTc4IDI2LjQtOTEuMSA2NS42ek00NzcuOCA0NDhMOTkgNDQ4Yy0zMi44IDAtNTUuOS0zMi4xLTQ1LjUtNjMuMmw0OC0xNDRDMTA4IDIyMS4yIDEyNi40IDIwOCAxNDcgMjA4bDM3OC44IDBjMzIuOCAwIDU1LjkgMzIuMSA0NS41IDYzLjJsLTQ4IDE0NGMtNi41IDE5LjYtMjQuOSAzMi44LTQ1LjUgMzIuOHoiXX0sZ210PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImthYWJhIixpY29uOls1MTIsNTEyLFsxMjgzMzFdLCJmNjZiIiwiTTI1NiA1MS4zTDkyLjggMTEyLjQgMjQ3LjUgMTcxLjFjNS41IDIuMSAxMS41IDIuMSAxNyAwTDQxOS4yIDExMi40IDI1NiA1MS4zek0wIDEyOS4zYzAtMjAgMTIuNC0zNy45IDMxLjEtNDQuOWwyMDgtNzhjMTAuOS00LjEgMjIuOC00LjEgMzMuNyAwbDIwOCA3OGMxOC43IDcgMzEuMSAyNC45IDMxLjEgNDQuOWwwIDM2LTI1My4yIDk2Yy0xLjggLjctMy44IC43LTUuNyAwbC0yNTMuMi05NiAwLTM2em0wIDE0MGwwLTUyLjcgMjM2LjEgODkuNmMxMi44IDQuOSAyNi45IDQuOSAzOS43IDBsMjM2LjEtODkuNiAwIDUyLjctMTI4IDQ4LjYgMCA1MS4zIDEyOC00OC42IDAgNjIuMmMwIDIwLTEyLjQgMzcuOS0zMS4xIDQ0LjlsLTIwOCA3OGMtMTAuOSA0LjEtMjIuOCA0LjEtMzMuNyAwbC0yMDgtNzhDMTIuNCA0MjAuNyAwIDQwMi43IDAgMzgyLjdsMC02Mi4yIDEyOCA0OC42IDAtNTEuMy0xMjgtNDguNnpNMjM2LjEgNDEwLjFjMTIuOCA0LjkgMjYuOSA0LjkgMzkuNyAwbDYwLjEtMjIuOCAwLTUxLjMtNzcuMiAyOS4zYy0xLjggLjctMy44IC43LTUuNyAwbC03Ny4yLTI5LjMgMCA1MS4zIDYwLjEgMjIuOHoiXX0sYm10PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImhhbmQtaG9sZGluZyIsaWNvbjpbNTc2LDUxMixbXSwiZjRiZCIsIk02Ni43IDM4NGw0Mi41LTQyLjVjMjQtMjQgNTYuNi0zNy41IDkwLjUtMzcuNUwzNTIgMzA0YzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMybC03MiAwYy0xMy4zIDAtMjQgMTAuNy0yNCAyNHMxMC43IDI0IDI0IDI0bDExMi42IDAgMTE5LjctODguMmMxNy44LTEzLjEgNDIuOC05LjMgNTUuOSA4LjVzOS4zIDQyLjgtOC41IDU1LjlMNDMzLjEgNDg1LjVjLTIzLjQgMTcuMi01MS42IDI2LjUtODAuNyAyNi41TDMyIDUxMmMtMTcuNyAwLTMyLTE0LjMtMzItMzJsMC02NGMwLTE3LjcgMTQuMy0zMiAzMi0zMmwzNC43IDB6Il19LHZtdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJzaW5nbGUtcXVvdGUtcmlnaHQiLGljb246WzE5Miw1MTIsW10sImU4MWMiLCJNNjQgNDE2Yy0xNy43IDAtMzItMTQuMy0zMi0zMnMxNC4zLTMyIDMyLTMybDggMGMzMC45IDAgNTYtMjUuMSA1Ni01NmwwLTgtNjQgMGMtMzUuMyAwLTY0LTI4LjctNjQtNjRsMC02NGMwLTM1LjMgMjguNy02NCA2NC02NGw2NCAwYzM1LjMgMCA2NCAyOC43IDY0IDY0bDAgMTM2YzAgNjYuMy01My43IDEyMC0xMjAgMTIwbC04IDB6Il19LHhtdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJib3R0bGUtZHJvcGxldCIsaWNvbjpbMzIwLDUxMixbXSwiZTRjNCIsIk04MCAwYzAtMTcuNyAxNC4zLTMyIDMyLTMybDk2IDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJsMCAxMDMuM2M2NC45IDIwLjQgMTEyIDgxIDExMiAxNTIuN2wwIDE5MmMwIDM1LjMtMjguNyA2NC02NCA2NEw2NCA1NDRjLTM1LjMgMC02NC0yOC43LTY0LTY0TDAgMjg4YzAtNzEuNiA0Ny4xLTEzMi4zIDExMi0xNTIuN0wxMTIgMzJDOTQuMyAzMiA4MCAxNy43IDgwIDB6bTgwIDQxNmMzNS4zIDAgNjQtMzIuNCA2NC02NCAwLTIxLjItMjguOS02NC41LTQ3LjktOTAuNi04LjEtMTEuMS0yNC4yLTExLjEtMzIuMyAwLTE5IDI2LjEtNDcuOSA2OS40LTQ3LjkgOTAuNiAwIDMxLjYgMjguNyA2NCA2NCA2NHoiXX0seW10PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6IndpbmRvdy1taW5pbWl6ZSIsaWNvbjpbNTEyLDUxMixbMTI4NDY5XSwiZjJkMSIsIk0wIDQxNmMwLTE3LjcgMTQuMy0zMiAzMi0zMmw0NDggMGMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMkwzMiA0NDhjLTE3LjcgMC0zMi0xNC4zLTMyLTMyeiJdfSx3bXQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiY2hldnJvbi1yaWdodCIsaWNvbjpbMzIwLDUxMixbOTAwMl0sImYwNTQiLCJNMzExLjEgMjMzLjRjMTIuNSAxMi41IDEyLjUgMzIuOCAwIDQ1LjNsLTE5MiAxOTJjLTEyLjUgMTIuNS0zMi44IDEyLjUtNDUuMyAwcy0xMi41LTMyLjggMC00NS4zTDI0My4yIDI1NiA3My45IDg2LjZjLTEyLjUtMTIuNS0xMi41LTMyLjggMC00NS4zczMyLjgtMTIuNSA0NS4zIDBsMTkyIDE5MnoiXX0sTW10PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImVnZyIsaWNvbjpbMzg0LDUxMixbMTI5MzcwXSwiZjdmYiIsIk0xOTIgNDk2Qzg2IDQ5NiAwIDM5NCAwIDI4OCAwIDE3NiA2NCAxNiAxOTIgMTZTMzg0IDE3NiAzODQgMjg4YzAgMTA2LTg2IDIwOC0xOTIgMjA4ek0xNTQuOCAxMzRjNi41LTYgNy0xNi4xIDEtMjIuNnMtMTYuMS03LTIyLjYtMWMtMjMuOSAyMS44LTQxLjEgNTIuNy01Mi4zIDg0LjItMTEuMiAzMS42LTE2LjkgNjUuMS0xNi45IDkzLjUgMCA4LjggNy4yIDE2IDE2IDE2czE2LTcuMiAxNi0xNmMwLTI0LjUgNS01NC40IDE1LjEtODIuOCAxMC4xLTI4LjUgMjUtNTQuMSA0My43LTcxLjJ6Il19LGhzZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJsYW5kbWFyay1kb21lIixpY29uOls1MTIsNTEyLFsibGFuZG1hcmstYWx0Il0sImY3NTIiLCJNMjU2IDBjLTE3LjcgMC0zMiAxNC4zLTMyIDMyIDAgLjkgMCAxLjggLjEgMi42LTgwLjUgMTMuNC0xNDQgNzYuOS0xNTcuNSAxNTcuNEw2NCAxOTJjLTE3LjcgMC0zMiAxNC4zLTMyIDMyczE0LjMgMzIgMzIgMzJsMCAxNjAtNTEuMiAzOC40QzQuNyA0NjAuNCAwIDQ2OS45IDAgNDgwIDAgNDk3LjcgMTQuMyA1MTIgMzIgNTEybDQ0OCAwYzE3LjcgMCAzMi0xNC4zIDMyLTMyIDAtMTAuMS00LjctMTkuNi0xMi44LTI1LjZMNDQ4IDQxNiA0NDggMjU2YzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMybC0yLjcgMGMtMTMuNS04MC40LTc3LTE0My45LTE1Ny41LTE1Ny40IC4xLS45IC4xLTEuNyAuMS0yLjYgMC0xNy43LTE0LjMtMzItMzItMzJ6bTgwIDI1Nmw2NCAwIDAgMTYwLTY0IDAgMC0xNjB6TTIyNCA0MTZsMC0xNjAgNjQgMCAwIDE2MC02NCAwek0xMTIgMjU2bDY0IDAgMCAxNjAtNjQgMCAwLTE2MHoiXX0sa210PWhzZSxTbXQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToid29ybSIsaWNvbjpbNDQ4LDUxMixbXSwiZTU5OSIsIk0yMjQgOTZjMC01MyA0My05NiA5Ni05NmwzOC40IDBDNDA3LjkgMCA0NDggNDAuMSA0NDggODkuNkw0NDggMzc2YzAgNzUuMS02MC45IDEzNi0xMzYgMTM2UzE3NiA0NTEuMSAxNzYgMzc2bDAtODBjMC0yMi4xLTE3LjktNDAtNDAtNDBzLTQwIDE3LjktNDAgNDBsMCAxNjhjMCAyNi41LTIxLjUgNDgtNDggNDhTMCA0OTAuNSAwIDQ2NEwwIDI5NmMwLTc1LjEgNjAuOS0xMzYgMTM2LTEzNnMxMzYgNjAuOSAxMzYgMTM2bDAgODBjMCAyMi4xIDE3LjkgNDAgNDAgNDBzNDAtMTcuOSA0MC00MGwwLTE4NC0zMiAwYy01MyAwLTk2LTQzLTk2LTk2em0xNDQtOGEyNCAyNCAwIDEgMCAtNDggMCAyNCAyNCAwIDEgMCA0OCAweiJdfSx6bXQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToidXNlci1pbmp1cmVkIixpY29uOls0NDgsNTEyLFtdLCJmNzI4IiwiTTI0Mi43IDgwTDMzNCA4MGMtMTAuNy0yNC42LTI5LjUtNDQuOS01Mi45LTU3LjZMMjQyLjcgODB6bS0uOS03MC43QzIzNiA4LjQgMjMwIDggMjI0IDggMTc0LjggOCAxMzIuNSAzNy42IDExNCA4MGw4MC42IDAgNDcuMS03MC43ek0yMjQgMjQ4YzY2LjMgMCAxMjAtNTMuNyAxMjAtMTIwbC0yNDAgMGMwIDY2LjMgNTMuNyAxMjAgMTIwIDEyMHpNOTguNyAzNDEuOEM0OS4zIDM3MC4yIDE2IDQyMy41IDE2IDQ4NC42IDE2IDQ5OS43IDI4LjMgNTEyIDQzLjQgNTEybDE1MSAwLTk1LjgtMTcwLjJ6bTQ1LjEtMTcuN2w0Mi43IDc1LjkgODUuNSAwYzQ0LjIgMCA4MCAzNS44IDgwIDgwIDAgMTEuNC0yLjQgMjIuMi02LjcgMzJsNTkuMiAwYzE1LjEgMCAyNy40LTEyLjMgMjcuNC0yNy40IDAtOTAuOS03My43LTE2NC42LTE2NC42LTE2NC42bC04Ni45IDBjLTEyLjYgMC0yNC45IDEuNC0zNi43IDQuMXpNMjEzLjUgNDQ4bDM2IDY0IDIyLjUgMGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMmwtNTguNSAweiJdfSxDbXQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToic3RyaWtldGhyb3VnaCIsaWNvbjpbNTEyLDUxMixbXSwiZjBjYyIsIk05NiAxNTcuNUM5NiA4OC4yIDE1Mi4yIDMyIDIyMS41IDMyTDM2OCAzMmMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMkwyMjEuNSA5NmMtMzQgMC02MS41IDI3LjUtNjEuNSA2MS41IDAgMzEgMjMuMSA1Ny4yIDUzLjkgNjFsNDQuMSA1LjUgMjIyIDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJMMzIgMjg4Yy0xNy43IDAtMzItMTQuMy0zMi0zMnMxNC4zLTMyIDMyLTMybDgzLjEgMEMxMDMgMjA0LjYgOTYgMTgxLjggOTYgMTU3LjV6TTM0OS4yIDMzNmw2NS41IDBjLjkgNi4xIDEuNCAxMi4yIDEuNCAxOC41IDAgNjkuMy01Ni4yIDEyNS41LTEyNS41IDEyNS41TDE0NCA0ODBjLTE3LjcgMC0zMi0xNC4zLTMyLTMyczE0LjMtMzIgMzItMzJsMTQ2LjUgMGMzNCAwIDYxLjUtMjcuNSA2MS41LTYxLjUgMC02LjQtMS0xMi43LTIuOC0xOC41eiJdfSxUbXQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiYmxvZyIsaWNvbjpbNTEyLDUxMixbXSwiZjc4MSIsIk0yMjQgMjRjMC0xMy4zIDEwLjctMjQgMjQtMjQgMTQ1LjggMCAyNjQgMTE4LjIgMjY0IDI2NCAwIDEzLjMtMTAuNyAyNC0yNCAyNHMtMjQtMTAuNy0yNC0yNGMwLTExOS4zLTk2LjctMjE2LTIxNi0yMTYtMTMuMyAwLTI0LTEwLjctMjQtMjR6TTgwIDk2YzI2LjUgMCA0OCAyMS41IDQ4IDQ4bDAgMjI0YzAgMjYuNSAyMS41IDQ4IDQ4IDQ4czQ4LTIxLjUgNDgtNDgtMjEuNS00OC00OC00OGMtOC44IDAtMTYtNy4yLTE2LTE2bDAtNjRjMC04LjggNy4yLTE2IDE2LTE2IDc5LjUgMCAxNDQgNjQuNSAxNDQgMTQ0UzI1NS41IDUxMiAxNzYgNTEyIDMyIDQ0Ny41IDMyIDM2OGwwLTIyNGMwLTI2LjUgMjEuNS00OCA0OC00OHptMTY4IDBjOTIuOCAwIDE2OCA3NS4yIDE2OCAxNjggMCAxMy4zLTEwLjcgMjQtMjQgMjRzLTI0LTEwLjctMjQtMjRjMC02Ni4zLTUzLjctMTIwLTEyMC0xMjAtMTMuMyAwLTI0LTEwLjctMjQtMjRzMTAuNy0yNCAyNC0yNHoiXX0sX210PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InN0b3B3YXRjaC0yMCIsaWNvbjpbNDQ4LDUxMixbXSwiZTA2ZiIsIk0xNjguNSAwYy0xMy4zIDAtMjQgMTAuNy0yNCAyNHMxMC43IDI0IDI0IDI0bDMyIDAgMCAyNS4zYy0xMDggMTEuOS0xOTIgMTAzLjUtMTkyIDIxNC43IDAgMTE5LjMgOTYuNyAyMTYgMjE2IDIxNnMyMTYtOTYuNyAyMTYtMjE2YzAtMzkuOC0xMC44LTc3LjEtMjkuNi0xMDkuMmwyOC4yLTI4LjJjMTIuNS0xMi41IDEyLjUtMzIuOCAwLTQ1LjNzLTMyLjgtMTIuNS00NS4zIDBsLTIzLjQgMjMuNGMtMzIuOS0zMC4yLTc1LjItNTAuMy0xMjItNTUuNWwwLTI1LjMgMzIgMGMxMy4zIDAgMjQtMTAuNyAyNC0yNHMtMTAuNy0yNC0yNC0yNGwtMTEyIDB6bS02MCAyNDBjMC0yOC43IDIzLjMtNTIgNTItNTJzNTIgMjMuMyA1MiA1MmwwIDMuOGMwIDExLjctMy4yIDIzLjEtOS4zIDMzbC00My44IDcxLjIgMzMuMSAwYzExIDAgMjAgOSAyMCAyMHMtOSAyMC0yMCAyMGwtNTcuOCAwYy0xNC41IDAtMjYuMi0xMS43LTI2LjItMjYuMiAwLTQuOSAxLjMtOS42IDMuOS0xMy44bDU2LjctOTIuMWMyLjItMy42IDMuNC03LjggMy40LTEyLjFsMC0zLjhjMC02LjYtNS40LTEyLTEyLTEycy0xMiA1LjQtMTIgMTJjMCAxMS05IDIwLTIwIDIwcy0yMC05LTIwLTIwem0xODAtNTJjMjguNyAwIDUyIDIzLjMgNTIgNTJsMCA5NmMwIDI4LjctMjMuMyA1Mi01MiA1MnMtNTItMjMuMy01Mi01MmwwLTk2YzAtMjguNyAyMy4zLTUyIDUyLTUyem0tMTIgNTJsMCA5NmMwIDYuNiA1LjQgMTIgMTIgMTJzMTItNS40IDEyLTEybDAtOTZjMC02LjYtNS40LTEyLTEyLTEycy0xMiA1LjQtMTIgMTJ6Il19LExtdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJ0cnVjay1waWNrdXAiLGljb246WzY0MCw1MTIsWzEyODc2M10sImY2M2MiLCJNMzYzLjggOTZsNTcuNiA5Ni0xMzMuNCAwIDAtOTYgNzUuOCAwek00OTYgMTkyTDQxOC42IDYzLjFDNDA3LjEgNDMuOCAzODYuMiAzMiAzNjMuOCAzMkwyNTYgMzJjLTE3LjcgMC0zMiAxNC4zLTMyIDMybDAgMTI4LTE0NCAwYy0yNi41IDAtNDggMjEuNS00OCA0OGwwIDgwYy0xNy43IDAtMzIgMTQuMy0zMiAzMnMxNC4zIDMyIDMyIDMybDMyLjQgMGMtLjIgMi42LS40IDUuMy0uNCA4IDAgNDguNiAzOS40IDg4IDg4IDg4czg4LTM5LjQgODgtODhjMC0yLjctLjEtNS40LS40LThsMTYwLjcgMGMtLjIgMi42LS40IDUuMy0uNCA4IDAgNDguNiAzOS40IDg4IDg4IDg4czg4LTM5LjQgODgtODhjMC0yLjctLjEtNS40LS40LThsMzIuNCAwYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMybDAtODBjMC0yNi41LTIxLjUtNDgtNDgtNDhsLTY0IDB6TTExMiAzOTJhNDAgNDAgMCAxIDEgODAgMCA0MCA0MCAwIDEgMSAtODAgMHptMzc2LTQwYTQwIDQwIDAgMSAxIDAgODAgNDAgNDAgMCAxIDEgMC04MHoiXX0sZnNlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InNlZWRsaW5nIixpY29uOls1MTIsNTEyLFsxMjc3OTMsInNwcm91dCJdLCJmNGQ4IiwiTTUxMiAzMkM1MTIgMTQwLjEgNDM1LjQgMjMwLjMgMzMzLjYgMjUxLjQgMzI1LjcgMTkzLjMgMjk5LjYgMTQxIDI2MS4xIDEwMC41IDMwMS4yIDQwIDM2OS45IDAgNDQ4IDBsMzIgMGMxNy43IDAgMzIgMTQuMyAzMiAzMnpNMCA5NkMwIDc4LjMgMTQuMyA2NCAzMiA2NGwzMiAwYzEyMy43IDAgMjI0IDEwMC4zIDIyNCAyMjRsMCAxOTJjMCAxNy43LTE0LjMgMzItMzIgMzJzLTMyLTE0LjMtMzItMzJsMC0xNjBDMTAwLjMgMzIwIDAgMjE5LjcgMCA5NnoiXX0sQW10PWZzZSxtc2U9e3ByZWZpeDoiZmFzIixpY29uTmFtZToidHJhbnNnZW5kZXIiLGljb246WzU3Niw1MTIsWzk4OTUsInRyYW5zZ2VuZGVyLWFsdCJdLCJmMjI1IiwiTTEyOC0zMmMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMkw5Ny45IDMyIDEzNiA3MC4xIDE1MSA1NWM5LjQtOS40IDI0LjYtOS40IDMzLjkgMHM5LjQgMjQuNiAwIDMzLjlsLTE1IDE1IDE0LjIgMTQuMmMyNy45LTIzLjggNjQuMi0zOC4yIDEwMy44LTM4LjIgMzYuNyAwIDcwLjYgMTIuNCA5Ny42IDMzLjJMNDY2LjcgMzIgNDQ4IDMyYy0xNy43IDAtMzItMTQuMy0zMi0zMnMxNC4zLTMyIDMyLTMybDk2IDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJsMCA5NmMwIDE3LjctMTQuMyAzMi0zMiAzMnMtMzItMTQuMy0zMi0zMmwwLTE4LjctODQuNCA4NC40YzEzIDIzLjEgMjAuNCA0OS45IDIwLjQgNzguMyAwIDc3LjQtNTUgMTQyLTEyOCAxNTYuOGwwIDM1LjIgMzIgMGMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMmwtMzIgMCAwIDE2YzAgMTcuNy0xNC4zIDMyLTMyIDMycy0zMi0xNC4zLTMyLTMybDAtMTYtMzIgMGMtMTcuNyAwLTMyLTE0LjMtMzItMzJzMTQuMy0zMiAzMi0zMmwzMiAwIDAtMzUuMmMtNzMtMTQuOC0xMjgtNzkuNC0xMjgtMTU2LjggMC0zMS40IDktNjAuNyAyNC43LTg1LjRsLTE2LjctMTYuNy0xNSAxNWMtOS40IDkuNC0yNC42IDkuNC0zMy45IDBzLTkuNC0yNC42IDAtMzMuOWwxNS0xNS0zOC4xLTM4LjEgMCAzMC4xYzAgMTcuNy0xNC4zIDMyLTMyIDMyUzAgMTEzLjcgMCA5NkwwIDBDMC0xNy43IDE0LjMtMzIgMzItMzJsOTYgMHpNMjg4IDMzNmE5NiA5NiAwIDEgMCAwLTE5MiA5NiA5NiAwIDEgMCAwIDE5MnoiXX0sRG10PW1zZSxFbXQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToic3Rhci1oYWxmIixpY29uOls1NzYsNTEyLFs2MTczMV0sImYwODkiLCJNMzA0LjEgNy42YzAtMTEuMS03LjYtMjAuNy0xOC40LTIzLjNzLTIxLjkgMi41LTI3IDEyLjRMMTkzLjEgMTI1LjMgMzMuMiAxNTAuN2MtOC45IDEuNC0xNi4zIDcuNy0xOS4xIDE2LjNzLS41IDE4IDUuOCAyNC40bDExNC40IDExNC41LTI1LjIgMTU5LjljLTEuNCA4LjkgMi4zIDE3LjkgOS42IDIzLjJzMTYuOSA2LjEgMjUgMkwyOTEgNDE2LjFjOC00LjEgMTMuMS0xMi40IDEzLjEtMjEuNGwwLTM4Ny4xeiJdfSxnc2U9e3ByZWZpeDoiZmFzIixpY29uTmFtZToicGhvdG8tZmlsbSIsaWNvbjpbNjQwLDUxMixbInBob3RvLXZpZGVvIl0sImY4N2MiLCJNMTkyIDY0YzAtMzUuMyAyOC43LTY0IDY0LTY0TDU3NiAwYzM1LjMgMCA2NCAyOC43IDY0IDY0bDAgMjI0YzAgMzUuMy0yOC43IDY0LTY0IDY0bC0zMjAgMGMtMzUuMyAwLTY0LTI4LjctNjQtNjRsMC0yMjR6TTMyMCA5NmEzMiAzMiAwIDEgMCAtNjQgMCAzMiAzMiAwIDEgMCA2NCAwem0xNTYuNSAxMS41QzQ3Mi4xIDEwMC40IDQ2NC40IDk2IDQ1NiA5NnMtMTYuMSA0LjQtMjAuNSAxMS41bC01NCA4OC4zLTE3LjktMjUuNmMtNC41LTYuNC0xMS44LTEwLjItMTkuNy0xMC4ycy0xNS4yIDMuOC0xOS43IDEwLjJsLTU2IDgwYy01LjEgNy4zLTUuOCAxNi45LTEuNiAyNC44UzI3OS4xIDI4OCAyODggMjg4bDI1NiAwYzguNyAwIDE2LjctNC43IDIwLjktMTIuM3M0LjEtMTYuOC0uNS0yNC4zbC04OC0xNDR6TTE0NCAxMjhsMCAxNjBjMCA2MS45IDUwLjEgMTEyIDExMiAxMTJsMTkyIDAgMCAxNmMwIDM1LjMtMjguNyA2NC02NCA2NEw2NCA0ODBjLTM1LjMgMC02NC0yOC43LTY0LTY0TDAgMTkyYzAtMzUuMyAyOC43LTY0IDY0LTY0bDgwIDB6TTUyIDE5NmwwIDI0YzAgOC44IDcuMiAxNiAxNiAxNmwyNCAwYzguOCAwIDE2LTcuMiAxNi0xNmwwLTI0YzAtOC44LTcuMi0xNi0xNi0xNmwtMjQgMGMtOC44IDAtMTYgNy4yLTE2IDE2em0xNiA4MGMtOC44IDAtMTYgNy4yLTE2IDE2bDAgMjRjMCA4LjggNy4yIDE2IDE2IDE2bDI0IDBjOC44IDAgMTYtNy4yIDE2LTE2bDAtMjRjMC04LjgtNy4yLTE2LTE2LTE2bC0yNCAwem0wIDk2Yy04LjggMC0xNiA3LjItMTYgMTZsMCAyNGMwIDguOCA3LjIgMTYgMTYgMTZsMjQgMGM4LjggMCAxNi03LjIgMTYtMTZsMC0yNGMwLTguOC03LjItMTYtMTYtMTZsLTI0IDB6Il19LCRtdD1nc2UsSW10PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InBpY3R1cmUtaW4tcGljdHVyZSIsaWNvbjpbNTEyLDUxMixbXSwiZTgwYiIsIk00NDggMzJjMzUuMyAwIDY0IDI4LjcgNjQgNjRsMCAxMTItNjQgMCAwLTExMi0zODQgMCAwIDMyMCAxNDQgMCAwIDY0LTE0NCAwLTYuNS0uM2MtMzAuMS0zLjEtNTQuMS0yNy01Ny4xLTU3LjFMMCA0MTYgMCA5NkMwIDYyLjkgMjUuMiAzNS42IDU3LjUgMzIuM0w2NCAzMiA0NDggMzJ6bTE2IDIyNGMyNi41IDAgNDggMjEuNSA0OCA0OGwwIDEyOGMwIDI2LjUtMjEuNSA0OC00OCA0OGwtMTYwIDBjLTI2LjUgMC00OC0yMS41LTQ4LTQ4bDAtMTI4YzAtMjYuNSAyMS41LTQ4IDQ4LTQ4bDE2MCAweiJdfSxQbXQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToicHVtcC1tZWRpY2FsIixpY29uOlszMjAsNTEyLFtdLCJlMDZhIiwiTTk2IDBsMCA4MCAxMjggMCAwLTI0IDcyIDBjMTMuMyAwIDI0LTEwLjcgMjQtMjRTMzA5LjMgOCAyOTYgOGwtNzIgMCAwLThjMC0xNy43LTE0LjMtMzItMzItMzJsLTY0IDBDMTEwLjMtMzIgOTYtMTcuNyA5NiAwek02NCAxMjhjLTM1LjMgMC02NCAyOC43LTY0IDY0TDAgNDQ4YzAgMzUuMyAyOC43IDY0IDY0IDY0bDE5MiAwYzM1LjMgMCA2NC0yOC43IDY0LTY0bDAtMjU2YzAtMzUuMy0yOC43LTY0LTY0LTY0TDY0IDEyOHptNjQgMTIwYzAtOC44IDcuMi0xNiAxNi0xNmwzMiAwYzguOCAwIDE2IDcuMiAxNiAxNmwwIDQwIDQwIDBjOC44IDAgMTYgNy4yIDE2IDE2bDAgMzJjMCA4LjgtNy4yIDE2LTE2IDE2bC00MCAwIDAgNDBjMCA4LjgtNy4yIDE2LTE2IDE2bC0zMiAwYy04LjggMC0xNi03LjItMTYtMTZsMC00MC00MCAwYy04LjggMC0xNi03LjItMTYtMTZsMC0zMmMwLTguOCA3LjItMTYgMTYtMTZsNDAgMCAwLTQweiJdfSxObXQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZmlyZSIsaWNvbjpbNDQ4LDUxMixbMTI4MjkzXSwiZjA2ZCIsIk0xNjAuNS0yNi40YzkuMy03LjggMjMtNy41IDMxLjkgLjkgMTIuMyAxMS42IDIzLjMgMjQuNCAzMy45IDM3LjQgMTMuNSAxNi41IDI5LjcgMzguMyA0NS4zIDY0LjIgNS4yLTYuOCAxMC0xMi44IDE0LjItMTcuOSAxLjEtMS4zIDIuMi0yLjcgMy4zLTQuMSA3LjktOS44IDE3LjctMjIuMSAzMC44LTIyLjEgMTMuNCAwIDIyLjggMTEuOSAzMC44IDIyLjEgMS4zIDEuNyAyLjYgMy4zIDMuOSA0LjggMTAuMyAxMi40IDI0IDMwLjMgMzcuNyA1Mi40IDI3LjIgNDMuOSA1NS42IDEwNi40IDU1LjYgMTc2LjYgMCAxMjMuNy0xMDAuMyAyMjQtMjI0IDIyNFMwIDQxMS43IDAgMjg4YzAtOTEuMSA0MS4xLTE3MCA4MC41LTIyNSAxOS45LTI3LjcgMzkuNy00OS45IDU0LjYtNjUuMSA4LjItOC40IDE2LjUtMTYuNyAyNS41LTI0LjJ6TTIyNS43IDQxNmMyNS4zIDAgNDcuNy03IDY4LjgtMjEgNDIuMS0yOS40IDUzLjQtODguMiAyOC4xLTEzNC40LTQuNS05LTE2LTkuNi0yMi41LTJsLTI1LjIgMjkuM2MtNi42IDcuNi0xOC41IDcuNC0yNC43LS41LTE3LjMtMjIuMS00OS4xLTYyLjQtNjUuMy04My01LjQtNi45LTE1LjItOC0yMS41LTEuOS0xOC4zIDE3LjgtNTEuNSA1Ni44LTUxLjUgMTA0LjMgMCA2OC42IDUwLjYgMTA5LjIgMTEzLjcgMTA5LjJ6Il19LGJzZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJtYWduaWZ5aW5nLWdsYXNzLXBsdXMiLGljb246WzUxMiw1MTIsWyJzZWFyY2gtcGx1cyJdLCJmMDBlIiwiTTQxNiAyMDhjMCA0NS45LTE0LjkgODguMy00MCAxMjIuN0w1MDIuNiA0NTcuNGMxMi41IDEyLjUgMTIuNSAzMi44IDAgNDUuM3MtMzIuOCAxMi41LTQ1LjMgMEwzMzAuNyAzNzZDMjk2LjMgNDAxLjEgMjUzLjkgNDE2IDIwOCA0MTYgOTMuMSA0MTYgMCAzMjIuOSAwIDIwOFM5My4xIDAgMjA4IDAgNDE2IDkzLjEgNDE2IDIwOHpNMjA4IDExMmMtMTMuMyAwLTI0IDEwLjctMjQgMjRsMCA0OC00OCAwYy0xMy4zIDAtMjQgMTAuNy0yNCAyNHMxMC43IDI0IDI0IDI0bDQ4IDAgMCA0OGMwIDEzLjMgMTAuNyAyNCAyNCAyNHMyNC0xMC43IDI0LTI0bDAtNDggNDggMGMxMy4zIDAgMjQtMTAuNyAyNC0yNHMtMTAuNy0yNC0yNC0yNGwtNDggMCAwLTQ4YzAtMTMuMy0xMC43LTI0LTI0LTI0eiJdfSxGbXQ9YnNlLE9tdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJmbGFzayIsaWNvbjpbNDQ4LDUxMixbXSwiZjBjMyIsIk0yODggMEwxMjggMEMxMTAuMyAwIDk2IDE0LjMgOTYgMzJzMTQuMyAzMiAzMiAzMkwxMjggMjE1LjUgNy41IDQyNi4zQzIuNiA0MzUgMCA0NDQuNyAwIDQ1NC43IDAgNDg2LjQgMjUuNiA1MTIgNTcuMyA1MTJsMzMzLjQgMGMzMS42IDAgNTcuMy0yNS42IDU3LjMtNTcuMyAwLTEwLTIuNi0xOS44LTcuNS0yOC40TDMyMCAyMTUuNSAzMjAgNjRjMTcuNyAwIDMyLTE0LjMgMzItMzJTMzM3LjcgMCAzMjAgMEwyODggMHpNMTkyIDIxNS41bDAtMTUxLjUgNjQgMCAwIDE1MS41YzAgMTEuMSAyLjkgMjIuMSA4LjQgMzEuOGw0MS42IDcyLjctMTY0IDAgNDEuNi03Mi43YzUuNS05LjcgOC40LTIwLjYgOC40LTMxLjh6Il19LFJtdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJhbGlnbi1yaWdodCIsaWNvbjpbNDQ4LDUxMixbXSwiZjAzOCIsIk00NDggNjRjMCAxNy43LTE0LjMgMzItMzIgMzJMMTkyIDk2Yy0xNy43IDAtMzItMTQuMy0zMi0zMnMxNC4zLTMyIDMyLTMybDIyNCAwYzE3LjcgMCAzMiAxNC4zIDMyIDMyem0wIDI1NmMwIDE3LjctMTQuMyAzMi0zMiAzMmwtMjI0IDBjLTE3LjcgMC0zMi0xNC4zLTMyLTMyczE0LjMtMzIgMzItMzJsMjI0IDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJ6TTAgMTkyYzAtMTcuNyAxNC4zLTMyIDMyLTMybDM4NCAwYzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMyTDMyIDIyNGMtMTcuNyAwLTMyLTE0LjMtMzItMzJ6TTQ0OCA0NDhjMCAxNy43LTE0LjMgMzItMzIgMzJMMzIgNDgwYy0xNy43IDAtMzItMTQuMy0zMi0zMnMxNC4zLTMyIDMyLTMybDM4NCAwYzE3LjcgMCAzMiAxNC4zIDMyIDMyeiJdfSx2c2U9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiY2FibGUtY2FyIixpY29uOls1MTIsNTEyLFsxMjg2NzMsNTc1NTEsInRyYW0iXSwiZjdkYSIsIk0yODgtMzJhMzIgMzIgMCAxIDEgMCA2NCAzMiAzMiAwIDEgMSAwLTY0ek0xNjAgMjRhMzIgMzIgMCAxIDEgNjQgMCAzMiAzMiAwIDEgMSAtNjQgMHpNMzIgMjg4YzAtMzUuMyAyOC43LTY0IDY0LTY0bDEzNiAwIDAtOTYuMi0xOTMuNCA1NS4zYy0xMi43IDMuNi0yNi0zLjctMjkuNy0xNi41czMuNy0yNiAxNi41LTI5LjdsMjI0LTY0IDAgMCAyMjQtNjRjMTIuNy0zLjYgMjYgMy43IDI5LjcgMTYuNXMtMy43IDI2LTE2LjUgMjkuN2wtMjA2LjYgNTkgMCAxMDkuOSAxMzYgMGMzNS4zIDAgNjQgMjguNyA2NCA2NGwwIDE2MGMwIDM1LjMtMjguNyA2NC02NCA2NEw5NiA1MTJjLTM1LjMgMC02NC0yOC43LTY0LTY0bDAtMTYwem04MCAwYy04LjggMC0xNiA3LjItMTYgMTZsMCA2NGMwIDguOCA3LjIgMTYgMTYgMTZsNTYgMCAwLTk2LTU2IDB6bTE4NCA5NmwwLTk2LTgwIDAgMCA5NiA4MCAwem00OCAwbDU2IDBjOC44IDAgMTYtNy4yIDE2LTE2bDAtNjRjMC04LjgtNy4yLTE2LTE2LTE2bC01NiAwIDAgOTZ6Il19LEJtdD12c2UseHNlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImtpdC1tZWRpY2FsIixpY29uOls1MTIsNTEyLFsiZmlyc3QtYWlkIl0sImY0NzkiLCJNNjQgNjRDMjguNyA2NCAwIDkyLjcgMCAxMjhMMCAzODRjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMTYgMCAwLTM4NC0xNiAwem02NCAwbDAgMzg0IDI1NiAwIDAtMzg0LTI1NiAwek00NDggNDQ4YzM1LjMgMCA2NC0yOC43IDY0LTY0bDAtMjU2YzAtMzUuMy0yOC43LTY0LTY0LTY0bC0xNiAwIDAgMzg0IDE2IDB6TTIyNCAxODRjMC04LjggNy4yLTE2IDE2LTE2bDMyIDBjOC44IDAgMTYgNy4yIDE2IDE2bDAgNDAgNDAgMGM4LjggMCAxNiA3LjIgMTYgMTZsMCAzMmMwIDguOC03LjIgMTYtMTYgMTZsLTQwIDAgMCA0MGMwIDguOC03LjIgMTYtMTYgMTZsLTMyIDBjLTguOCAwLTE2LTcuMi0xNi0xNmwwLTQwLTQwIDBjLTguOCAwLTE2LTcuMi0xNi0xNmwwLTMyYzAtOC44IDcuMi0xNiAxNi0xNmw0MCAwIDAtNDB6Il19LEhtdD14c2UscW10PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImdyaXAtbGluZXMiLGljb246WzQ0OCw1MTIsW10sImY3YTQiLCJNMzIgMjg4Yy0xNy43IDAtMzIgMTQuMy0zMiAzMnMxNC4zIDMyIDMyIDMybDM4NCAwYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMyTDMyIDI4OHptMC0xMjhjLTE3LjcgMC0zMiAxNC4zLTMyIDMyczE0LjMgMzIgMzIgMzJsMzg0IDBjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJMMzIgMTYweiJdfSx5c2U9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiYnVyZ2VyIixpY29uOls1MTIsNTEyLFsiaGFtYnVyZ2VyIl0sImY4MDUiLCJNNDggMzg0Yy04LjggMC0xNiA3LjItMTYgMTYgMCA0NC4yIDM1LjggODAgODAgODBsMjg4IDBjNDQuMiAwIDgwLTM1LjggODAtODAgMC04LjgtNy4yLTE2LTE2LTE2TDQ4IDM4NHpNMzIgMjAyYzAgMTIuMiA5LjkgMjIgMjIgMjJMNDU4IDIyNGMxMi4yIDAgMjItOS45IDIyLTIyIDAtMTcuMi0yLjYtMzQuNC0xMC44LTQ5LjUtMjIuMi00MC44LTgyLjMtMTIwLjUtMjEzLjItMTIwLjVTNjUgMTExLjYgNDIuOCAxNTIuNUMzNC42IDE2Ny42IDMyIDE4NC44IDMyIDIwMnpNMCAzMDRjMCAxNy43IDE0LjMgMzIgMzIgMzJsNDQ4IDBjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJMMzIgMjcyYy0xNy43IDAtMzIgMTQuMy0zMiAzMnpNMjU2IDcyYTI0IDI0IDAgMSAxIDAgNDggMjQgMjQgMCAxIDEgMC00OHpNMTIwIDEyOGEyNCAyNCAwIDEgMSA0OCAwIDI0IDI0IDAgMSAxIC00OCAwem0yNDgtMjRhMjQgMjQgMCAxIDEgMCA0OCAyNCAyNCAwIDEgMSAwLTQ4eiJdfSxqbXQ9eXNlLFZtdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJzbm93bWFuIixpY29uOls2NDAsNTEyLFs5NzMxLDk5MjRdLCJmN2QwIiwiTTQwMyAyMTEuN2MzMi4yLTI0LjkgNTMtNjMuOSA1My0xMDcuNyAwLTc1LjEtNjAuOS0xMzYtMTM2LTEzNlMxODQgMjguOSAxODQgMTA0YzAgNDMuOSAyMC44IDgyLjkgNTMgMTA3LjctMzIuMiAxNi4zLTU5IDQxLjgtNzYuOCA3My4xTDExMiAyNjQuMiAxMTIgMjI0YzAtMTMuMy0xMC43LTI0LTI0LTI0cy0yNCAxMC43LTI0IDI0bDAgMTkuNi0yMi41LTkuN2MtMTIuMi01LjItMjYuMyAuNC0zMS41IDEyLjZzLjQgMjYuMyAxMi42IDMxLjVjMzYuMSAxNS41IDc1LjkgMzIuNSAxMTkuNCA1MS4yLTMuOSAxNC45LTYgMzAuNi02IDQ2LjcgMCA3MCAzOS4xIDEzMC44IDk2LjYgMTYxLjkgNy45IDQuMyAxNi45IDYuMSAyNS45IDYuMWwxMjMgMGM5IDAgMTgtMS44IDI1LjktNi4xIDU3LjUtMzEuMSA5Ni42LTkyIDk2LjYtMTYxLjkgMC0xNi4yLTIuMS0zMS44LTYtNDYuNyA0My41LTE4LjcgODMuNC0zNS43IDExOS40LTUxLjIgMTIuMi01LjIgMTcuOC0xOS4zIDEyLjYtMzEuNXMtMTkuMy0xNy44LTMxLjUtMTIuNmwtMjIuNSA5LjcgMC0xOS42YzAtMTMuMy0xMC43LTI0LTI0LTI0cy0yNCAxMC43LTI0IDI0bDAgNDAuMi00OC4yIDIwLjZjLTE3LjktMzEuMy00NC42LTU2LjgtNzYuOC03My4xek0yOTYgNDE2YTI0IDI0IDAgMSAxIDQ4IDAgMjQgMjQgMCAxIDEgLTQ4IDB6bTI0LTEyMGEyNCAyNCAwIDEgMSAwIDQ4IDI0IDI0IDAgMSAxIDAtNDh6TTI0OCA4MGEyNCAyNCAwIDEgMSA0OCAwIDI0IDI0IDAgMSAxIC00OCAwek0zNjggNTZhMjQgMjQgMCAxIDEgMCA0OCAyNCAyNCAwIDEgMSAwLTQ4ek0yOTIuMiAxNTkuM2MtMi43LTQuOC00LjItMTAuMi00LjItMTUuNyAwLTE3LjUgMTQuMi0zMS42IDMxLjYtMzEuNmwuOCAwYzE3LjUgMCAzMS42IDE0LjIgMzEuNiAzMS42IDAgNS41LTEuNCAxMC45LTQuMiAxNS43TDMyNyAxOTUuOGMtMy4xIDUuNC0xMC44IDUuNC0xMy45IDBsLTIwLjktMzYuNnoiXX0sVW10PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImhvdGVsIixpY29uOls1MTIsNTEyLFsxMjc5NzZdLCJmNTk0IiwiTTE2IDI0QzE2IDEwLjcgMjYuNyAwIDQwIDBMNDcyIDBjMTMuMyAwIDI0IDEwLjcgMjQgMjRzLTEwLjcgMjQtMjQgMjRsLTggMCAwIDQxNiA4IDBjMTMuMyAwIDI0IDEwLjcgMjQgMjRzLTEwLjcgMjQtMjQgMjRMNDAgNTEyYy0xMy4zIDAtMjQtMTAuNy0yNC0yNHMxMC43LTI0IDI0LTI0bDggMCAwLTQxNi04IDBDMjYuNyA0OCAxNiAzNy4zIDE2IDI0em0yMDggODhsMCAzMmMwIDguOCA3LjIgMTYgMTYgMTZsMzIgMGM4LjggMCAxNi03LjIgMTYtMTZsMC0zMmMwLTguOC03LjItMTYtMTYtMTZsLTMyIDBjLTguOCAwLTE2IDcuMi0xNiAxNnpNMTI4IDk2Yy04LjggMC0xNiA3LjItMTYgMTZsMCAzMmMwIDguOCA3LjIgMTYgMTYgMTZsMzIgMGM4LjggMCAxNi03LjIgMTYtMTZsMC0zMmMwLTguOC03LjItMTYtMTYtMTZsLTMyIDB6bTk2IDExMmwwIDMyYzAgOC44IDcuMiAxNiAxNiAxNmwzMiAwYzguOCAwIDE2LTcuMiAxNi0xNmwwLTMyYzAtOC44LTcuMi0xNi0xNi0xNmwtMzIgMGMtOC44IDAtMTYgNy4yLTE2IDE2ek0zNTIgOTZjLTguOCAwLTE2IDcuMi0xNiAxNmwwIDMyYzAgOC44IDcuMiAxNiAxNiAxNmwzMiAwYzguOCAwIDE2LTcuMiAxNi0xNmwwLTMyYzAtOC44LTcuMi0xNi0xNi0xNmwtMzIgMHpNMTEyIDIwOGwwIDMyYzAgOC44IDcuMiAxNiAxNiAxNmwzMiAwYzguOCAwIDE2LTcuMiAxNi0xNmwwLTMyYzAtOC44LTcuMi0xNi0xNi0xNmwtMzIgMGMtOC44IDAtMTYgNy4yLTE2IDE2em0yNDAtMTZjLTguOCAwLTE2IDcuMi0xNiAxNmwwIDMyYzAgOC44IDcuMiAxNiAxNiAxNmwzMiAwYzguOCAwIDE2LTcuMiAxNi0xNmwwLTMyYzAtOC44LTcuMi0xNi0xNi0xNmwtMzIgMHpNMjg4IDM4NGw0My44IDBjOS45IDAgMTcuNS05IDE0LTE4LjItMTMuOC0zNi4xLTQ4LjgtNjEuOC04OS43LTYxLjhzLTc1LjkgMjUuNy04OS43IDYxLjhjLTMuNSA5LjIgNC4xIDE4LjIgMTQgMTguMmw0My44IDAgMCA4MCA2NCAwIDAtODB6Il19LFdtdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJwcmludCIsaWNvbjpbNTEyLDUxMixbMTI4NDI0LDEyODQzOCw5MTEzXSwiZjAyZiIsIk02NCA2NEM2NCAyOC43IDkyLjcgMCAxMjggMEwzNDEuNSAwYzE3IDAgMzMuMyA2LjcgNDUuMyAxOC43bDQyLjUgNDIuNWMxMiAxMiAxOC43IDI4LjMgMTguNyA0NS4zbDAgMzcuNS0zODQgMCAwLTgwek0wIDI1NmMwLTM1LjMgMjguNy02NCA2NC02NGwzODQgMGMzNS4zIDAgNjQgMjguNyA2NCA2NGwwIDk2YzAgMTcuNy0xNC4zIDMyLTMyIDMybC0zMiAwIDAgNjRjMCAzNS4zLTI4LjcgNjQtNjQgNjRsLTI1NiAwYy0zNS4zIDAtNjQtMjguNy02NC02NGwwLTY0LTMyIDBjLTE3LjcgMC0zMi0xNC4zLTMyLTMybDAtOTZ6TTEyOCA0MTZsMCAzMiAyNTYgMCAwLTk2LTI1NiAwIDAgNjR6TTQ1NiAyNzJhMjQgMjQgMCAxIDAgLTQ4IDAgMjQgMjQgMCAxIDAgNDggMHoiXX0sd3NlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InZvbGxleWJhbGwiLGljb246WzUxMiw1MTIsWzEyNzk1Miwidm9sbGV5YmFsbC1iYWxsIl0sImY0NWYiLCJNNTEyIDI1OC45Yy0yMy40IDgtNDcuOCAxMy4xLTcyLjYgMTUuMSA1LjktOTguNi0zMC43LTE5MS4xLTk0LjktMjU4LjMgOTcuOCAzNiAxNjcuNSAxMzAgMTY3LjUgMjQwLjMgMCAxIDAgMS45IDAgMi45em0tNS45IDUyYy01LjIgMjMuNy0xMy42IDQ2LjItMjQuOSA2Ni45LTk0LjcgNTIuMi0yMTQgNTAtMzA4LjQtMTMuNiAyMS43LTMxLjMgNDkuOC01OC45IDgzLjgtODAuNSA3OS41IDQxLjYgMTY4LjUgNDkuMSAyNDkuNSAyNy4xek0yNzkuNyAyNDEuNmMtMy43LTg5LjctNDEuNy0xNzAuNS0xMDEuMy0yMjkuNyAyMi4zLTcuMSA0Ni0xMS4yIDcwLjUtMTEuOSA5Mi41IDU1LjkgMTUwLjMgMTYwLjMgMTQyLjQgMjczLjgtMzgtMy4yLTc1LjktMTMuNy0xMTEuNi0zMi4zek0xMzAuNSAzMi44QzE0OS4xIDQ5LjEgMTY1LjggNjcuNyAxNzkuOSA4OC4yIDkxLjUgMTMyLjMgMjkuNyAyMTAuMyAzLjcgMjk5LjUgMS4zIDI4NS4zIDAgMjcwLjggMCAyNTYgMCAxNjAuMiA1Mi42IDc2LjcgMTMwLjUgMzIuOHptNzMuNCA5N2MxNi4zIDM0LjUgMjYuMSA3Mi42IDI3LjkgMTEyLjgtNzUuOCA0OC0xMjYuOCAxMjEuMy0xNDguMyAyMDIuNS0xNy42LTE2LjEtMzMtMzQuNi00NS41LTU1IDIuMS0xMDguMSA2My43LTIxMC40IDE2NS45LTI2MC4zek0yNTYgNTEyYy00Ny43IDAtOTIuMy0xMy0xMzAuNS0zNS43IDQuOC0yNC4zIDEyLjYtNDggMjMuMi03MC40IDgyLjQgNTQuNCAxODAuOCA2OC45IDI3MSA0Ny00NC40IDM3LTEwMS41IDU5LjItMTYzLjcgNTkuMnoiXX0sR210PXdzZSxZbXQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToidHJhZmZpYy1saWdodCIsaWNvbjpbMzIwLDUxMixbMTI4Njc4XSwiZjYzNyIsIk02NC0zMkMyOC43LTMyIDAtMy4zIDAgMzJMMCAzODRjMCA4OC40IDcxLjYgMTYwIDE2MCAxNjBzMTYwLTcxLjYgMTYwLTE2MGwwLTM1MmMwLTM1LjMtMjguNy02NC02NC02NEw2NC0zMnptOTYgMzkyYzMwLjkgMCA1NiAyNS4xIDU2IDU2cy0yNS4xIDU2LTU2IDU2LTU2LTI1LjEtNTYtNTYgMjUuMS01NiA1Ni01NnptNTYtMTA0YTU2IDU2IDAgMSAxIC0xMTIgMCA1NiA1NiAwIDEgMSAxMTIgMHpNMTYwIDE1MmE1NiA1NiAwIDEgMSAwLTExMiA1NiA1NiAwIDEgMSAwIDExMnoiXX0sWm10PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InBsYW5lLWNpcmNsZS1jaGVjayIsaWNvbjpbNjQwLDUxMixbXSwiZTU1NSIsIk0yMzIgMjRjMC0zMC45IDI1LjEtNTYgNTYtNTZzNTYgMjUuMSA1NiA1NmwwIDEyNy4zIDc4IDcxLjVjLTY5LjMgMjktMTE4IDk3LjQtMTE4IDE3Ny4yIDAgNDkuMyAxOC42IDk0LjMgNDkuMSAxMjguM0wyODggNTEyIDE3OS45IDUzOWMtMTAuMSAyLjUtMTkuOS01LjEtMTkuOS0xNS41bDAtMTkuOGMwLTQuOSAyLjItOS41IDYtMTIuNWw2Ni01Mi44IDAtOTkuNy0xNjIuOSA1NC4zQzU4LjcgMzk2LjQgNDggMzg4LjcgNDggMzc3LjhsMC00My43YzAtOSAzLjgtMTcuNSAxMC40LTIzLjZMMjMyIDE1MS4zIDIzMiAyNHpNMzUyIDQwMGExNDQgMTQ0IDAgMSAxIDI4OCAwIDE0NCAxNDQgMCAxIDEgLTI4OCAwem0yMDEuNC02MC45Yy03LjEtNS4yLTE3LjItMy42LTIyLjQgMy41bC01MyA3Mi45LTI2LjgtMjYuOGMtNi4yLTYuMi0xNi40LTYuMi0yMi42IDBzLTYuMiAxNi40IDAgMjIuNmw0MCA0MGMzLjMgMy4zIDcuOSA1IDEyLjYgNC42czguOS0yLjggMTEuNy02LjVsNjQtODhjNS4yLTcuMSAzLjYtMTcuMi0zLjUtMjIuM3oiXX0sZUU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToidXNlcnMiLGljb246WzY0MCw1MTIsW10sImYwYzAiLCJNMzIwIDE2YTEwNCAxMDQgMCAxIDEgMCAyMDggMTA0IDEwNCAwIDEgMSAwLTIwOHpNOTYgODhhNzIgNzIgMCAxIDEgMCAxNDQgNzIgNzIgMCAxIDEgMC0xNDR6TTAgNDE2YzAtNzAuNyA1Ny4zLTEyOCAxMjgtMTI4IDEyLjggMCAyNS4yIDEuOSAzNi45IDUuNC0zMi45IDM2LjgtNTIuOSA4NS40LTUyLjkgMTM4LjZsMCAxNmMwIDExLjQgMi40IDIyLjIgNi43IDMyTDMyIDQ4MGMtMTcuNyAwLTMyLTE0LjMtMzItMzJsMC0zMnptNTIxLjMgNjRjNC4zLTkuOCA2LjctMjAuNiA2LjctMzJsMC0xNmMwLTUzLjItMjAtMTAxLjgtNTIuOS0xMzguNiAxMS43LTMuNSAyNC4xLTUuNCAzNi45LTUuNCA3MC43IDAgMTI4IDU3LjMgMTI4IDEyOGwwIDMyYzAgMTcuNy0xNC4zIDMyLTMyIDMybC04Ni43IDB6TTQ3MiAxNjBhNzIgNzIgMCAxIDEgMTQ0IDAgNzIgNzIgMCAxIDEgLTE0NCAwek0xNjAgNDMyYzAtODguNCA3MS42LTE2MCAxNjAtMTYwczE2MCA3MS42IDE2MCAxNjBsMCAxNmMwIDE3LjctMTQuMyAzMi0zMiAzMmwtMjU2IDBjLTE3LjcgMC0zMi0xNC4zLTMyLTMybDAtMTZ6Il19LFhtdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJjZXJ0aWZpY2F0ZSIsaWNvbjpbNTc2LDUxMixbXSwiZjBhMyIsIk0yMzkuMi04Yy02LjEtNi4yLTE1LTguNy0yMy40LTYuNFMyMDAuOS01LjYgMTk4LjggMi44TDE4My41IDYzYy0xLjEgNC40LTUuNiA3LTkuOSA1LjdMMTEzLjggNTEuOWMtOC40LTIuNC0xNy40IDAtMjMuNSA2LjFzLTguNSAxNS4xLTYuMSAyMy41bDE2LjkgNTkuOGMxLjIgNC4zLTEuNCA4LjgtNS43IDkuOUwzNS4xIDE2Ni41Yy04LjQgMi4xLTE1IDguNy0xNy4zIDE3LjFzLjIgMTcuMyA2LjQgMjMuNGw0NC41IDQzLjNjMy4yIDMuMSAzLjIgOC4zIDAgMTEuNUwyNC4zIDMwNS4xYy02LjIgNi4xLTguNyAxNS02LjQgMjMuNHM4LjkgMTQuOSAxNy4zIDE3LjFsNjAuMiAxNS4zYzQuNCAxLjEgNyA1LjYgNS43IDkuOUw4NC4yIDQzMC41Yy0yLjQgOC40IDAgMTcuNCA2LjEgMjMuNXMxNS4xIDguNSAyMy41IDYuMWw1OS44LTE2LjljNC4zLTEuMiA4LjggMS40IDkuOSA1LjdsMTUuMyA2MC4yYzIuMSA4LjQgOC43IDE1IDE3LjEgMTcuM3MxNy4zLS4yIDIzLjQtNi40bDQzLjMtNDQuNWMzLjEtMy4yIDguMy0zLjIgMTEuNSAwTDMzNy4zIDUyMGM2LjEgNi4yIDE1IDguNyAyMy40IDYuNHMxNC45LTguOSAxNy4xLTE3LjNMMzkzLjEgNDQ5YzEuMS00LjQgNS42LTcgOS45LTUuN2w1OS44IDE2LjljOC40IDIuNCAxNy40IDAgMjMuNS02LjFzOC41LTE1LjEgNi4xLTIzLjVsLTE2LjktNTkuOGMtMS4yLTQuMyAxLjQtOC44IDUuNy05LjlsNjAuMi0xNS4zYzguNC0yLjEgMTUtOC43IDE3LjMtMTcuMXMtLjItMTcuNC02LjQtMjMuNGwtNDQuNS00My4zYy0zLjItMy4xLTMuMi04LjMgMC0xMS41bDQ0LjUtNDMuM2M2LjItNi4xIDguNy0xNSA2LjQtMjMuNHMtOC45LTE0LjktMTcuMy0xNy4xbC02MC4yLTE1LjNjLTQuNC0xLjEtNy01LjYtNS43LTkuOWwxNi45LTU5LjhjMi40LTguNCAwLTE3LjQtNi4xLTIzLjVzLTE1LjEtOC41LTIzLjUtNi4xTDQwMyA2OC44Yy00LjMgMS4yLTguOC0xLjQtOS45LTUuN0wzNzcuOCAyLjhjLTIuMS04LjQtOC43LTE1LTE3LjEtMTcuM3MtMTcuMyAuMi0yMy40IDYuNEwyOTQgMzYuNWMtMy4xIDMuMi04LjMgMy4yLTExLjUgMEwyMzkuMi04eiJdfSxRbXQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiYWxhcm0tY2xvY2siLGljb246WzUxMiw1MTIsWzkyMDBdLCJmMzRlIiwiTTUwNC40IDEzMi41Yy00LjUgMTAuNS0xOC40IDkuOC0yNC45IC40LTI3LjgtNDAtNjYuMS03Mi4yLTExMS05Mi42LTEwLjQtNC43LTEzLjctMTguMy00LjEtMjQuNiAxNS05LjkgMzMtMTUuNyA1Mi4zLTE1LjcgNTIuNiAwIDk1LjIgNDIuNiA5NS4yIDk1LjIgMCAxMy4yLTIuNyAyNS44LTcuNiAzNy4zem0tNDcxLjkgLjRjLTYuNSA5LjQtMjAuNSAxMC4xLTI0LjktLjQtNC45LTExLjUtNy42LTI0LjEtNy42LTM3LjMgMC01Mi42IDQyLjYtOTUuMiA5NS4yLTk1LjIgMTkuMyAwIDM3LjMgNS44IDUyLjMgMTUuNyA5LjYgNi4zIDYuMyAxOS45LTQuMSAyNC42LTQ0LjggMjAuNC04My4xIDUyLjYtMTExIDkyLjZ6TTM5MC4yIDQ2Ny40QzM1Mi44IDQ5NS40IDMwNi4zIDUxMiAyNTYgNTEycy05Ni44LTE2LjYtMTM0LjEtNDQuNkw4Ni42IDUwMi42Yy0xMi41IDEyLjUtMzIuOCAxMi41LTQ1LjMgMHMtMTIuNS0zMi44IDAtNDUuM2wzNS4yLTM1LjJDNDguNiAzODQuOCAzMiAzMzguMyAzMiAyODggMzIgMTY0LjMgMTMyLjMgNjQgMjU2IDY0UzQ4MCAxNjQuMyA0ODAgMjg4YzAgNTAuMy0xNi42IDk2LjgtNDQuNiAxMzQuMmwzNS4yIDM1LjJjMTIuNSAxMi41IDEyLjUgMzIuOCAwIDQ1LjNzLTMyLjggMTIuNS00NS4zIDBsLTM1LjItMzUuMnpNMjgwIDE4NGMwLTEzLjMtMTAuNy0yNC0yNC0yNHMtMjQgMTAuNy0yNCAyNGwwIDEwNGMwIDYuNCAyLjUgMTIuNSA3IDE3bDU2IDU2YzkuNCA5LjQgMjQuNiA5LjQgMzMuOSAwczkuNC0yNC42IDAtMzMuOWwtNDktNDkgMC05NC4xeiJdfSxKbXQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiaGVsaWNvcHRlci1zeW1ib2wiLGljb246WzUxMiw1MTIsW10sImU1MDIiLCJNNDQ1LjQgMjI0bDY0LjcgMEM0OTUuNiAxMDguMiA0MDMuOCAxNi40IDI4OCAybDAgNjQuN0MzNjguNCA4MC4xIDQzMS45IDE0My42IDQ0NS40IDIyNHpNNTEwIDI4OGwtNjQuNyAwQzQzMS45IDM2OC40IDM2OC40IDQzMS45IDI4OCA0NDUuM2wwIDY0LjdjMTE1LjgtMTQuNCAyMDcuNi0xMDYuMiAyMjItMjIyek0yIDI4OEMxNi40IDQwMy44IDEwOC4yIDQ5NS42IDIyNCA1MTBsMC02NC43QzE0My42IDQzMS45IDgwLjIgMzY4LjQgNjYuNyAyODhMMiAyODh6bTAtNjRsNjQuNyAwQzgwLjIgMTQzLjYgMTQzLjYgODAuMSAyMjQgNjYuN0wyMjQgMkMxMDguMiAxNi40IDE2LjQgMTA4LjIgMiAyMjR6bTIwNi02NGMwLTE3LjctMTQuMy0zMi0zMi0zMnMtMzIgMTQuMy0zMiAzMmwwIDE5MmMwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMybDAtNjQgOTYgMCAwIDY0YzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJsMC0xOTJjMC0xNy43LTE0LjMtMzItMzItMzJzLTMyIDE0LjMtMzIgMzJsMCA2NC05NiAwIDAtNjR6Il19LE1zZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJob3VzZS1jaGltbmV5LWNyYWNrIixpY29uOls1MTIsNTEyLFsiaG91c2UtZGFtYWdlIl0sImY2ZjEiLCJNMjM0LjIgOC42YzEyLjMtMTEuNCAzMS4zLTExLjQgNDMuNSAwTDM2OCA5Mi4zIDM2OCA4MGMwLTE3LjcgMTQuMy0zMiAzMi0zMmwzMiAwYzE3LjcgMCAzMiAxNC4zIDMyIDMybDAgMTAxLjUgMzcuOCAzNS4xYzkuNiA5IDEyLjggMjIuOSA4IDM1LjFTNDkzLjIgMjcyIDQ4MCAyNzJsLTE2IDAgMCAxNzZjMCAzNS4zLTI4LjcgNjQtNjQgNjRsLTEwNS42IDAtMzguNC02NCA4MC44LTY3LjNjNy44LTYuNSA3LjYtMTguNi0uNC0yNC45TDIxOC42IDI2My4yYy0xNC42LTExLjUtMzMuOCA3LTIyLjggMjJMMjU2IDM2OCAxNzAuNSA0MzkuMmMtNi4xIDUtNy41IDEzLjgtMy41IDIwLjVsMzEuMyA1Mi4yLTg2LjQgMGMtMzUuMyAwLTY0LTI4LjctNjQtNjRsMC0xNzYtMTYgMGMtMTMuMiAwLTI1LTguMS0yOS44LTIwLjNzLTEuNi0yNi4yIDgtMzUuMWwyMjQtMjA4eiJdfSxLbXQ9TXNlLGU5dD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJwZXJzb24tbWlsaXRhcnktcG9pbnRpbmciLGljb246WzUxMiw1MTIsW10sImU1NGEiLCJNMjE0LjkgMTQuMUMyMDIgMTUuMiAxOTIgMjYgMTkyIDM5IDE5MiA1Mi44IDIwMy4yIDY0IDIxNyA2NGwxNTEgMGM4LjggMCAxNi03LjIgMTYtMTZsMC0zMC42QzM4NCA4IDM3NiAuNyAzNjYuNyAxLjRMMjE0LjkgMTQuMXpNMjA4IDExMmMwIDQ0LjIgMzUuOCA4MCA4MCA4MHM4MC0zNS44IDgwLTgwYzAtNS41LS42LTEwLjgtMS42LTE2TDIwOS42IDk2Yy0xIDUuMi0xLjYgMTAuNS0xLjYgMTZ6TTQwIDIyNGMtMjIuMSAwLTQwIDE3LjktNDAgNDBzMTcuOSA0MCA0MCA0MGwxNTIgMCAwIDg5LjQgMTYyLjgtMTYyLjhjLTEzLjMtNC4zLTI3LjMtNi41LTQxLjYtNi41TDQwIDIyNHptMzQ1LjcgMjAuOWwtMTcxLjEgMTcxLjEgMTY5LjQgMCAwLTQ2LjMgNTMuNiA5MC42YzExLjIgMTkgMzUuOCAyNS4zIDU0LjggMTQuMXMyNS4zLTM1LjggMTQuMS01NC44TDQzMC4zIDI5MC44Yy0xMS4yLTE5LTI2LjYtMzQuNS00NC42LTQ1Ljl6TTE5MiA0NDhsMCAzMmMwIDE3LjcgMTQuMyAzMiAzMiAzMmwxMjggMGMxNy43IDAgMzItMTQuMyAzMi0zMmwwLTMyLTE5MiAweiJdfSx0OXQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZGF0YWJhc2UiLGljb246WzQ0OCw1MTIsW10sImYxYzAiLCJNNDQ4IDIwNS44Yy0xNC44IDkuOC0zMS44IDE3LjctNDkuNSAyNC00NyAxNi44LTEwOC43IDI2LjItMTc0LjUgMjYuMlM5Ni40IDI0Ni41IDQ5LjUgMjI5LjhjLTE3LjYtNi4zLTM0LjctMTQuMi00OS41LTI0TDAgMjg4YzAgNDQuMiAxMDAuMyA4MCAyMjQgODBzMjI0LTM1LjggMjI0LTgwbDAtODIuMnptMC03Ny44bDAtNDhDNDQ4IDM1LjggMzQ3LjcgMCAyMjQgMFMwIDM1LjggMCA4MGwwIDQ4YzAgNDQuMiAxMDAuMyA4MCAyMjQgODBzMjI0LTM1LjggMjI0LTgwek0zOTguNSAzODkuOEMzNTEuNiA0MDYuNSAyODkuOSA0MTYgMjI0IDQxNlM5Ni40IDQwNi41IDQ5LjUgMzg5LjhjLTE3LjYtNi4zLTM0LjctMTQuMi00OS41LTI0TDAgNDMyYzAgNDQuMiAxMDAuMyA4MCAyMjQgODBzMjI0LTM1LjggMjI0LTgwbDAtNjYuMmMtMTQuOCA5LjgtMzEuOCAxNy43LTQ5LjUgMjR6Il19LHI5dD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJuZXdzcGFwZXIiLGljb246WzUxMiw1MTIsWzEyODI0MF0sImYxZWEiLCJNMCA0MTZMMCAxMjBjMC0xMy4zIDEwLjctMjQgMjQtMjRzMjQgMTAuNyAyNCAyNGwwIDI4OGMwIDEzLjMgMTAuNyAyNCAyNCAyNHMyNC0xMC43IDI0LTI0TDk2IDk2YzAtMzUuMyAyOC43LTY0IDY0LTY0bDI4OCAwYzM1LjMgMCA2NCAyOC43IDY0IDY0bDAgMzIwYzAgMzUuMy0yOC43IDY0LTY0IDY0TDY0IDQ4MGMtMzUuMyAwLTY0LTI4LjctNjQtNjR6TTE2MCAxMjhsMCA2NGMwIDE3LjcgMTQuMyAzMiAzMiAzMmw2NCAwYzE3LjcgMCAzMi0xNC4zIDMyLTMybDAtNjRjMC0xNy43LTE0LjMtMzItMzItMzJsLTY0IDBjLTE3LjcgMC0zMiAxNC4zLTMyIDMyem0yNCAyNDBjLTEzLjMgMC0yNCAxMC43LTI0IDI0czEwLjcgMjQgMjQgMjRsMjQwIDBjMTMuMyAwIDI0LTEwLjcgMjQtMjRzLTEwLjctMjQtMjQtMjRsLTI0MCAwem0tMjQtNzJjMCAxMy4zIDEwLjcgMjQgMjQgMjRsMjQwIDBjMTMuMyAwIDI0LTEwLjcgMjQtMjRzLTEwLjctMjQtMjQtMjRsLTI0MCAwYy0xMy4zIDAtMjQgMTAuNy0yNCAyNHpNMzYwIDE3NmMtMTMuMyAwLTI0IDEwLjctMjQgMjRzMTAuNyAyNCAyNCAyNGw2NCAwYzEzLjMgMCAyNC0xMC43IDI0LTI0cy0xMC43LTI0LTI0LTI0bC02NCAweiJdfSxpOXQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiY2xvdWQtcmFpbiIsaWNvbjpbNTEyLDUxMixbMTI3NzgzLDk5MjZdLCJmNzNkIiwiTTk2IDMyMGMtNTMgMC05Ni00My05Ni05NiAwLTQyLjUgMjcuNi03OC42IDY1LjktOTEuMi0xLjMtNi43LTEuOS0xMy43LTEuOS0yMC44IDAtNjEuOSA1MC4xLTExMiAxMTItMTEyIDQzLjEgMCA4MC41IDI0LjMgOTkuMiA2MCAxNC43LTE3LjEgMzYuNS0yOCA2MC44LTI4IDQ0LjIgMCA4MCAzNS44IDgwIDgwIDAgNS41LS42IDEwLjgtMS42IDE2IC41IDAgMS4xIDAgMS42IDAgNTMgMCA5NiA0MyA5NiA5NnMtNDMgOTYtOTYgOTZMOTYgMzIwem0xLjYgNjguMmMxLjEtMi41IDMuNi00LjIgNi40LTQuMnM1LjMgMS42IDYuNCA0LjJsMzAuMiA2OC4yYzIuMiA1LjEgMy40IDEwLjUgMy40IDE2IDAgMjEuOS0xOC4xIDM5LjYtNDAgMzkuNnMtNDAtMTcuNy00MC0zOS42YzAtNS41IDEuMi0xMSAzLjQtMTZsMzAuMi02OC4yem0xNTIgMGMxLjEtMi41IDMuNi00LjIgNi40LTQuMnM1LjMgMS42IDYuNCA0LjJsMzAuMiA2OC4yYzIuMiA1LjEgMy40IDEwLjUgMy40IDE2IDAgMjEuOS0xOC4xIDM5LjYtNDAgMzkuNnMtNDAtMTcuNy00MC0zOS42YzAtNS41IDEuMi0xMSAzLjQtMTZsMzAuMi02OC4yem0xMjEuOCA2OC4ybDMwLjItNjguMmMxLjEtMi41IDMuNi00LjIgNi40LTQuMnM1LjMgMS42IDYuNCA0LjJsMzAuMiA2OC4yYzIuMiA1LjEgMy40IDEwLjUgMy40IDE2IDAgMjEuOS0xOC4xIDM5LjYtNDAgMzkuNnMtNDAtMTcuNy00MC0zOS42YzAtNS41IDEuMi0xMSAzLjQtMTZ6Il19LGtzZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJtYXhpbWl6ZSIsaWNvbjpbNDQ4LDUxMixbImV4cGFuZC1hcnJvd3MtYWx0Il0sImYzMWUiLCJNMTY4IDMyTDI0IDMyQzEwLjcgMzIgMCA0Mi43IDAgNTZMMCAyMDBjMCA5LjcgNS44IDE4LjUgMTQuOCAyMi4yUzM0LjEgMjIzLjggNDEgMjE3bDQwLTQwIDc5IDc5LTc5IDc5LTQwLTQwYy02LjktNi45LTE3LjItOC45LTI2LjItNS4yUzAgMzAyLjMgMCAzMTJMMCA0NTZjMCAxMy4zIDEwLjcgMjQgMjQgMjRsMTQ0IDBjOS43IDAgMTguNS01LjggMjIuMi0xNC44czEuNy0xOS4zLTUuMi0yNi4ybC00MC00MCA3OS03OSA3OSA3OS00MCA0MGMtNi45IDYuOS04LjkgMTcuMi01LjIgMjYuMlMyNzAuMyA0ODAgMjgwIDQ4MGwxNDQgMGMxMy4zIDAgMjQtMTAuNyAyNC0yNGwwLTE0NGMwLTkuNy01LjgtMTguNS0xNC44LTIyLjJzLTE5LjMtMS43LTI2LjIgNS4ybC00MCA0MC03OS03OSA3OS03OSA0MCA0MGM2LjkgNi45IDE3LjIgOC45IDI2LjIgNS4yUzQ0OCAyMDkuNyA0NDggMjAwbDAtMTQ0YzAtMTMuMy0xMC43LTI0LTI0LTI0TDI4MCAzMmMtOS43IDAtMTguNSA1LjgtMjIuMiAxNC44UzI1Ni4yIDY2LjEgMjYzIDczbDQwIDQwLTc5IDc5LTc5LTc5IDQwLTQwYzYuOS02LjkgOC45LTE3LjIgNS4yLTI2LjJTMTc3LjcgMzIgMTY4IDMyeiJdfSxhOXQ9a3NlLG45dD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJsb2NhdGlvbi1hcnJvdyIsaWNvbjpbNTEyLDUxMixbXSwiZjEyNCIsIk00NzcuOSA3NS41YzQuNS0xMS44IDEuNy0yNS4yLTcuMi0zNC4xcy0yMi4zLTExLjgtMzQuMS03LjJsLTQxNiAxNjBDNy45IDE5OS0uMyAyMTEuMiAwIDIyNC43czkuMSAyNS40IDIxLjkgMjkuNmwxNzYuOCA1OC45IDU4LjkgMTc2LjhjNC4zIDEyLjggMTYuMSAyMS42IDI5LjYgMjEuOXMyNS43LTcuOSAzMC42LTIwLjVsMTYwLTQxNnoiXX0sbzl0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImNpdHkiLGljb246WzU3Niw1MTIsWzEyNzk2MV0sImY2NGYiLCJNMzIwIDBjLTM1LjMgMC02NCAyOC43LTY0IDY0bDAgMzItNDggMCAwLTcyYzAtMTMuMy0xMC43LTI0LTI0LTI0cy0yNCAxMC43LTI0IDI0bDAgNzItNjQgMCAwLTcyQzk2IDEwLjcgODUuMyAwIDcyIDBTNDggMTAuNyA0OCAyNGwwIDc0Yy0yNy42IDcuMS00OCAzMi4yLTQ4IDYyTDAgNDQ4YzAgMzUuMyAyOC43IDY0IDY0IDY0bDQ0OCAwYzM1LjMgMCA2NC0yOC43IDY0LTY0bDAtMTkyYzAtMzUuMy0yOC43LTY0LTY0LTY0bC02NCAwIDAtMTI4YzAtMzUuMy0yOC43LTY0LTY0LTY0TDMyMCAwem02NCAxMTJsMCAzMmMwIDguOC03LjIgMTYtMTYgMTZsLTMyIDBjLTguOCAwLTE2LTcuMi0xNi0xNmwwLTMyYzAtOC44IDcuMi0xNiAxNi0xNmwzMiAwYzguOCAwIDE2IDcuMiAxNiAxNnptLTE2IDgwYzguOCAwIDE2IDcuMiAxNiAxNmwwIDMyYzAgOC44LTcuMiAxNi0xNiAxNmwtMzIgMGMtOC44IDAtMTYtNy4yLTE2LTE2bDAtMzJjMC04LjggNy4yLTE2IDE2LTE2bDMyIDB6bTE2IDExMmwwIDMyYzAgOC44LTcuMiAxNi0xNiAxNmwtMzIgMGMtOC44IDAtMTYtNy4yLTE2LTE2bDAtMzJjMC04LjggNy4yLTE2IDE2LTE2bDMyIDBjOC44IDAgMTYgNy4yIDE2IDE2em0xMTItMTZjOC44IDAgMTYgNy4yIDE2IDE2bDAgMzJjMCA4LjgtNy4yIDE2LTE2IDE2bC0zMiAwYy04LjggMC0xNi03LjItMTYtMTZsMC0zMmMwLTguOCA3LjItMTYgMTYtMTZsMzIgMHpNMjU2IDMwNGwwIDMyYzAgOC44LTcuMiAxNi0xNiAxNmwtMzIgMGMtOC44IDAtMTYtNy4yLTE2LTE2bDAtMzJjMC04LjggNy4yLTE2IDE2LTE2bDMyIDBjOC44IDAgMTYgNy4yIDE2IDE2ek0yNDAgMTkyYzguOCAwIDE2IDcuMiAxNiAxNmwwIDMyYzAgOC44LTcuMiAxNi0xNiAxNmwtMzIgMGMtOC44IDAtMTYtNy4yLTE2LTE2bDAtMzJjMC04LjggNy4yLTE2IDE2LTE2bDMyIDB6TTEyOCAzMDRsMCAzMmMwIDguOC03LjIgMTYtMTYgMTZsLTMyIDBjLTguOCAwLTE2LTcuMi0xNi0xNmwwLTMyYzAtOC44IDcuMi0xNiAxNi0xNmwzMiAwYzguOCAwIDE2IDcuMiAxNiAxNnpNMTEyIDE5MmM4LjggMCAxNiA3LjIgMTYgMTZsMCAzMmMwIDguOC03LjIgMTYtMTYgMTZsLTMyIDBjLTguOCAwLTE2LTcuMi0xNi0xNmwwLTMyYzAtOC44IDcuMi0xNiAxNi0xNmwzMiAweiJdfSxzOXQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToieC1yYXkiLGljb246WzUxMiw1MTIsW10sImY0OTciLCJNMCA2NEMwIDQ2LjMgMTQuMyAzMiAzMiAzMmw0NDggMGMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMmwwIDMyMGMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMkwzMiA0ODBjLTE3LjcgMC0zMi0xNC4zLTMyLTMyczE0LjMtMzIgMzItMzJMMzIgOTZDMTQuMyA5NiAwIDgxLjcgMCA2NHptMjgwIDU2YzAtMTMuMy0xMC43LTI0LTI0LTI0cy0yNCAxMC43LTI0IDI0bDAgMTYtNjQgMGMtMTMuMyAwLTI0IDEwLjctMjQgMjRzMTAuNyAyNCAyNCAyNGw2NCAwIDAgNDgtODAgMGMtMTMuMyAwLTI0IDEwLjctMjQgMjRzMTAuNyAyNCAyNCAyNGw4MCAwIDAgNDgtNjQgMGMtMTMuMyAwLTI0IDEwLjctMjQgMjRzMTAuNyAyNCAyNCAyNGw2NCAwIDAgMTZjMCAxMy4zIDEwLjcgMjQgMjQgMjRzMjQtMTAuNyAyNC0yNGwwLTE2IDY0IDBjMTMuMyAwIDI0LTEwLjcgMjQtMjRzLTEwLjctMjQtMjQtMjRsLTY0IDAgMC00OCA4MCAwYzEzLjMgMCAyNC0xMC43IDI0LTI0cy0xMC43LTI0LTI0LTI0bC04MCAwIDAtNDggNjQgMGMxMy4zIDAgMjQtMTAuNyAyNC0yNHMtMTAuNy0yNC0yNC0yNGwtNjQgMCAwLTE2eiJdfSxsOXQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToidW1icmVsbGEtYmVhY2giLGljb246WzUxMiw1MTIsWzEyNzk1OF0sImY1Y2EiLCJNNDk3LjUgMzQxLjFjLTUuOSAxNi43LTI1LjMgMjMtNDEuMSAxNS4xbC0xNzguMi04OS4xLTEuNiAzLjItODguOCAxNzcuNyAyOTIuMiAwYzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMyTDMyIDUxMmMtMTcuNyAwLTMyLTE0LjMtMzItMzJzMTQuMy0zMiAzMi0zMmw4NC4yIDAgMTAzLjItMjA2LjMgMS42LTMuMi0xNjUuNC04Mi43Yy0xNS44LTcuOS0yMi40LTI3LjMtMTIuNS00MiA0NS45LTY4LjYgMTI0LjEtMTEzLjggMjEyLjktMTEzLjggMTQxLjQgMCAyNTYgMTE0LjYgMjU2IDI1NiAwIDI5LjgtNS4xIDU4LjUtMTQuNSA4NS4xeiJdfSxTc2U9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiYXJyb3ctcmlnaHQtdG8tYnJhY2tldCIsaWNvbjpbNTEyLDUxMixbInNpZ24taW4iXSwiZjA5MCIsIk0zNTIgOTZsNjQgMGMxNy43IDAgMzIgMTQuMyAzMiAzMmwwIDI1NmMwIDE3LjctMTQuMyAzMi0zMiAzMmwtNjQgMGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJzMTQuMyAzMiAzMiAzMmw2NCAwYzUzIDAgOTYtNDMgOTYtOTZsMC0yNTZjMC01My00My05Ni05Ni05NmwtNjQgMGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJzMTQuMyAzMiAzMiAzMnptLTkuNCAxODIuNmMxMi41LTEyLjUgMTIuNS0zMi44IDAtNDUuM2wtMTI4LTEyOGMtMTIuNS0xMi41LTMyLjgtMTIuNS00NS4zIDBzLTEyLjUgMzIuOCAwIDQ1LjNMMjQyLjcgMjI0IDMyIDIyNGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJzMTQuMyAzMiAzMiAzMmwyMTAuNyAwLTczLjQgNzMuNGMtMTIuNSAxMi41LTEyLjUgMzIuOCAwIDQ1LjNzMzIuOCAxMi41IDQ1LjMgMGwxMjgtMTI4eiJdfSxjOXQ9U3NlLGQ5dD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJoZWFkc2V0IixpY29uOls0NDgsNTEyLFtdLCJmNTkwIiwiTTIyNCA2NGMtNzkgMC0xNDQuNyA1Ny4zLTE1Ny43IDEzMi43IDkuMy0zIDE5LjMtNC43IDI5LjctNC43bDE2IDBjMjYuNSAwIDQ4IDIxLjUgNDggNDhsMCA5NmMwIDI2LjUtMjEuNSA0OC00OCA0OGwtMTYgMGMtNTMgMC05Ni00My05Ni05NmwwLTY0QzAgMTAwLjMgMTAwLjMgMCAyMjQgMFM0NDggMTAwLjMgNDQ4IDIyNGwwIDE2OC4xYzAgNjYuMy01My44IDEyMC0xMjAuMSAxMjBsLTg3LjktLjEtMzIgMGMtMjYuNSAwLTQ4LTIxLjUtNDgtNDhzMjEuNS00OCA0OC00OGwzMiAwYzI2LjUgMCA0OCAyMS41IDQ4IDQ4bDAgMCA0MCAwYzM5LjggMCA3Mi0zMi4yIDcyLTcybDAtMjAuOWMtMTQuMSA4LjItMzAuNSAxMi44LTQ4IDEyLjhsLTE2IDBjLTI2LjUgMC00OC0yMS41LTQ4LTQ4bDAtOTZjMC0yNi41IDIxLjUtNDggNDgtNDhsMTYgMGMxMC40IDAgMjAuMyAxLjYgMjkuNyA0LjctMTMtNzUuMy03OC42LTEzMi43LTE1Ny43LTEzMi43eiJdfSx1OXQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToic3Bsb3RjaCIsaWNvbjpbNTEyLDUxMixbXSwiZjViYyIsIk0yMDguNSA2Mi4zbDI4LjEtMzYuOUMyNDguOCA5LjQgMjY3LjggMCAyODggMCAzMTYuNSAwIDM0MS42IDE4LjcgMzQ5LjggNDZsMTcuOCA1OS40YzEwLjMgMzQuNCAzNi4xIDYyIDY5LjggNzQuNmwzOS44IDE0LjljMjAuOSA3LjkgMzQuOCAyNy45IDM0LjggNTAuMiAwIDE2LjktNy45IDMyLjgtMjEuNSA0Mi45bC02Ny4zIDUwLjVjLTI0LjMgMTguMi0zNy4yIDQ3LjktMzMuOCA3OC4xbDIuNSAyMi43YzQuMyAzOC43LTI2IDcyLjYtNjUgNzIuNi0xNC44IDAtMjkuMy01LjEtNDAuOS0xNC4zbC01NS4zLTQ0LjNjLTQuNS0zLjYtOS4zLTYuNy0xNC41LTkuMi0xNS44LTcuOS0zMy43LTEwLjQtNTEtNy4zTDgyLjQgNDUxLjljLTM0LjYgNi4zLTY2LjQtMjAuMy02Ni40LTU1LjQgMC0xMy4yIDQuNy0yNiAxMy4xLTM2LjJsMTEuMi0xMy40YzE0LjYtMTcuNCAyMi42LTM5LjQgMjIuNi02Mi4xIDAtMTguOC01LjUtMzcuMi0xNS44LTUzTDguOCAxNzMuNUMzLjEgMTY0LjcgMCAxNTQuNCAwIDE0My45IDAgMTEwLjUgMzAuMSA4NS4xIDYzIDkwLjdsNTEuMyA4LjdjMzUuOSA2LjEgNzIuMi04LjIgOTQuMi0zNy4xeiJdfSx6c2U9e3ByZWZpeDoiZmFzIixpY29uTmFtZToidXAtbG9uZyIsaWNvbjpbMzIwLDUxMixbImxvbmctYXJyb3ctYWx0LXVwIl0sImYzMGMiLCJNMTM3LjQtMjIuNmMxMi41LTEyLjUgMzIuOC0xMi41IDQ1LjMgMGwxMjggMTI4YzkuMiA5LjIgMTEuOSAyMi45IDYuOSAzNC45UzMwMC45IDE2MCAyODggMTYwbC02NCAwIDAgMzM2YzAgMjYuNS0yMS41IDQ4LTQ4IDQ4bC0zMiAwYy0yNi41IDAtNDgtMjEuNS00OC00OGwwLTMzNi02NCAwYy0xMi45IDAtMjQuNi03LjgtMjkuNi0xOS44Uy4yIDExNC41IDkuNCAxMDUuNGwxMjgtMTI4eiJdfSxwOXQ9enNlLGg5dD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJoZXhhZ29uLW5vZGVzIixpY29uOls0NDgsNTEyLFtdLCJlNjk5IiwiTTI0OCAxMDYuNmMxOC45LTkgMzItMjguMyAzMi01MC42YzAtMzAuOS0yNS4xLTU2LTU2LTU2cy01NiAyNS4xLTU2IDU2YzAgMjIuMyAxMy4xIDQxLjYgMzIgNTAuNmwwIDk4LjhjLTIuOCAxLjMtNS41IDIuOS04IDQuN2wtODAuMS00NS44YzEuNi0yMC44LTguNi00MS42LTI3LjktNTIuOEM1Ny4yIDk2IDIzIDEwNS4yIDcuNSAxMzJTMS4yIDE5MyAyOCAyMDguNWMxLjMgLjggMi42IDEuNSA0IDIuMWwwIDkwLjhjLTEuMyAuNi0yLjcgMS4zLTQgMi4xQzEuMiAzMTktOCAzNTMuMiA3LjUgMzgwUzU3LjIgNDE2IDg0IDQwMC41YzE5LjMtMTEuMSAyOS40LTMyIDI3LjgtNTIuOGw1MC41LTI4LjljLTExLjUtMTEuMi0xOS45LTI1LjYtMjMuOC00MS43TDg4IDMwNi4xYy0yLjYtMS44LTUuMi0zLjMtOC00LjdsMC05MC44YzIuOC0xLjMgNS41LTIuOSA4LTQuN2w4MC4xIDQ1LjhjLS4xIDEuNC0uMiAyLjgtLjIgNC4zYzAgMjIuMyAxMy4xIDQxLjYgMzIgNTAuNmwwIDk4LjhjLTE4LjkgOS0zMiAyOC4zLTMyIDUwLjZjMCAzMC45IDI1LjEgNTYgNTYgNTZzNTYtMjUuMSA1Ni01NmMwLTIyLjMtMTMuMS00MS42LTMyLTUwLjZsMC05OC44YzIuOC0xLjMgNS41LTIuOSA4LTQuN2w4MC4xIDQ1LjhjLTEuNiAyMC44IDguNiA0MS42IDI3LjggNTIuOGMyNi44IDE1LjUgNjEgNi4zIDc2LjUtMjAuNXM2LjMtNjEtMjAuNS03Ni41Yy0xLjMtLjgtMi43LTEuNS00LTIuMWwwLTkwLjhjMS40LS42IDIuNy0xLjMgNC0yLjFjMjYuOC0xNS41IDM2LTQ5LjcgMjAuNS03Ni41UzM5MC44IDk2IDM2NCAxMTEuNWMtMTkuMyAxMS4xLTI5LjQgMzItMjcuOCA1Mi44bC01MC42IDI4LjljMTEuNSAxMS4yIDE5LjkgMjUuNiAyMy44IDQxLjdMMzYwIDIwNS45YzIuNiAxLjggNS4yIDMuMyA4IDQuN2wwIDkwLjhjLTIuOCAxLjMtNS41IDIuOS04IDQuNmwtODAuMS00NS44Yy4xLTEuNCAuMi0yLjggLjItNC4zYzAtMjIuMy0xMy4xLTQxLjYtMzItNTAuNmwwLTk4Ljh6Il19LHNEPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6Imhvc3BpdGFsIixpY29uOls1NzYsNTEyLFsxMjc5NzMsNjI1ODksImhvc3BpdGFsLWFsdCIsImhvc3BpdGFsLXdpZGUiXSwiZjBmOCIsIk0xMjggNjRjMC0zNS4zIDI4LjctNjQgNjQtNjRMMzg0IDBjMzUuMyAwIDY0IDI4LjcgNjQgNjRsMCA2NCA2NCAwYzM1LjMgMCA2NCAyOC43IDY0IDY0bDAgMjU2YzAgMzUuMy0yOC43IDY0LTY0IDY0TDY0IDUxMmMtMzUuMyAwLTY0LTI4LjctNjQtNjRMMCAxOTJjMC0zNS4zIDI4LjctNjQgNjQtNjRsNjQgMCAwLTY0ek0yNzIgMzUyYy0xNy43IDAtMzIgMTQuMy0zMiAzMmwwIDgwIDk2IDAgMC04MGMwLTE3LjctMTQuMy0zMi0zMi0zMmwtMzIgMHpNMTI4IDM2OGwwLTMyYzAtOC44LTcuMi0xNi0xNi0xNmwtMzIgMGMtOC44IDAtMTYgNy4yLTE2IDE2bDAgMzJjMCA4LjggNy4yIDE2IDE2IDE2bDMyIDBjOC44IDAgMTYtNy4yIDE2LTE2ek0xMTIgMjU2YzguOCAwIDE2LTcuMiAxNi0xNmwwLTMyYzAtOC44LTcuMi0xNi0xNi0xNmwtMzIgMGMtOC44IDAtMTYgNy4yLTE2IDE2bDAgMzJjMCA4LjggNy4yIDE2IDE2IDE2bDMyIDB6TTUxMiAzNjhsMC0zMmMwLTguOC03LjItMTYtMTYtMTZsLTMyIDBjLTguOCAwLTE2IDcuMi0xNiAxNmwwIDMyYzAgOC44IDcuMiAxNiAxNiAxNmwzMiAwYzguOCAwIDE2LTcuMiAxNi0xNnpNNDk2IDI1NmM4LjggMCAxNi03LjIgMTYtMTZsMC0zMmMwLTguOC03LjItMTYtMTYtMTZsLTMyIDBjLTguOCAwLTE2IDcuMi0xNiAxNmwwIDMyYzAgOC44IDcuMiAxNiAxNiAxNmwzMiAwek0yNjQgMTA0bDAgMzItMzIgMGMtOC44IDAtMTYgNy4yLTE2IDE2bDAgMTZjMCA4LjggNy4yIDE2IDE2IDE2bDMyIDAgMCAzMmMwIDguOCA3LjIgMTYgMTYgMTZsMTYgMGM4LjggMCAxNi03LjIgMTYtMTZsMC0zMiAzMiAwYzguOCAwIDE2LTcuMiAxNi0xNmwwLTE2YzAtOC44LTcuMi0xNi0xNi0xNmwtMzIgMCAwLTMyYzAtOC44LTcuMi0xNi0xNi0xNmwtMTYgMGMtOC44IDAtMTYgNy4yLTE2IDE2eiJdfSxmOXQ9c0QsbTl0PXNELGc5dD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJwZXJzb24taGFyYXNzaW5nIixpY29uOls1NzYsNTEyLFtdLCJlNTQ5IiwiTTE5MiA5NmE0OCA0OCAwIDEgMCAwLTk2IDQ4IDQ4IDAgMSAwIDAgOTZ6TTU5LjQgMzA0LjVMODggMjU2LjkgODggNDgwYzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJsMC0xMjggMTYgMCAwIDEyOGMwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMybDAtMjQ0LjcgNDcuNCA1Ny4xYzExLjMgMTMuNiAzMS41IDE1LjUgNDUuMSA0LjJzMTUuNS0zMS41IDQuMi00NS4xbC03My43LTg4LjljLTE4LjItMjItNDUuMy0zNC43LTczLjktMzQuN2wtMzUuOSAwYy0zMy43IDAtNjQuOSAxNy43LTgyLjMgNDYuNmwtNTguMyA5N2MtOS4xIDE1LjEtNC4yIDM0LjggMTAuOSA0My45czM0LjggNC4yIDQzLjktMTAuOXpNNDgwIDI0MGE0OCA0OCAwIDEgMCAtOTYgMCA0OCA0OCAwIDEgMCA5NiAwek00NjQgMzQ0bDAgNTguNy00MS40LTQxLjRjLTcuMy03LjMtMTcuNi0xMC42LTI3LjgtOXMtMTguOSA4LjEtMjMuNSAxNy4zbC00OCA5NmMtNy45IDE1LjgtMS41IDM1IDE0LjMgNDIuOXMzNSAxLjUgNDIuOS0xNC4zbDI4LjEtNTYuMyA1NC43IDU0LjdjMTIuNCAxMi40IDI5LjEgMTkuMyA0Ni42IDE5LjMgMzYuNCAwIDY1LjktMjkuNSA2NS45LTY1LjlMNTc2IDM0NGMwLTMwLjktMjUuMS01Ni01Ni01NnMtNTYgMjUuMS01NiA1NnpNMjg4IDQ4YzAgOC44IDcuMiAxNiAxNiAxNmw1NiAwYzguOCAwIDE2LTcuMiAxNi0xNnMtNy4yLTE2LTE2LTE2bC01NiAwYy04LjggMC0xNiA3LjItMTYgMTZ6bS0uOCA0OS43Yy03LjktNC0xNy41LS43LTIxLjUgNy4ycy0uNyAxNy41IDcuMiAyMS41bDQ4IDI0YzcuOSA0IDE3LjUgLjcgMjEuNS03LjJzLjctMTcuNS03LjItMjEuNWwtNDgtMjR6Il19LGI5dD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJtb25leS1iaWxsLXRyZW5kLXVwIixpY29uOls1MTIsNTEyLFtdLCJlNTI5IiwiTTQ4MCA4YzAtMTMuMy0xMC43LTI0LTI0LTI0TDM1NC4yLTE2Yy0xMy4zIDAtMjQgMTAuNy0yNCAyNHMxMC43IDI0IDI0IDI0bDQzLjkgMC0xMTEuMyAxMTEuMy05NS4xLTgxLjVjLTktNy43LTIyLjItNy43LTMxLjIgMGwtMTEyIDk2Yy0xMC4xIDguNi0xMS4yIDIzLjgtMi42IDMzLjhzMjMuOCAxMS4yIDMzLjggMi42bDk2LjQtODIuNiA5Ni40IDgyLjZjOS41IDguMiAyMy43IDcuNiAzMi42LTEuM2wxMjctMTI3IDAgNDMuOWMwIDEzLjMgMTAuNyAyNCAyNCAyNHMyNC0xMC43IDI0LTI0TDQ4MCA4ek00OCAyNTZjLTI2LjUgMC00OCAyMS41LTQ4IDQ4TDAgNDY0YzAgMjYuNSAyMS41IDQ4IDQ4IDQ4bDQxNiAwYzI2LjUgMCA0OC0yMS41IDQ4LTQ4bDAtMTYwYzAtMjYuNS0yMS41LTQ4LTQ4LTQ4TDQ4IDI1NnptNDcuMyA1NmMtMy40IDIwLjEtMTkuMiAzNi0zOS40IDM5LjQtNC40IC43LTgtMi45LTgtNy4zbDAtMzJjMC00LjQgMy42LTggOC04bDMyIDBjNC40IDAgOC4xIDMuNiA3LjMgOHptMCAxNDQuMWMuNyA0LjQtMi45IDgtNy4zIDhsLTMyIDBjLTQuNCAwLTgtMy42LTgtOGwwLTMyYzAtNC40IDMuNi04LjEgOC03LjMgMjAuMSAzLjQgMzYgMTkuMiAzOS40IDM5LjR6TTQ1NiA0MTYuN2M0LjQtLjcgOCAyLjkgOCA3LjNsMCAzMmMwIDQuNC0zLjYgOC04IDhsLTMyIDBjLTQuNCAwLTguMS0zLjYtNy4zLTggMy40LTIwLjEgMTkuMi0zNiAzOS40LTM5LjR6TTQxNi43IDMxMmMtLjctNC40IDIuOS04IDcuMy04bDMyIDBjNC40IDAgOCAzLjYgOCA4bDAgMzJjMCA0LjQtMy42IDguMS04IDcuMy0yMC4xLTMuNC0zNi0xOS4yLTM5LjQtMzkuNHpNMTkyIDM4NGE2NCA2NCAwIDEgMSAxMjggMCA2NCA2NCAwIDEgMSAtMTI4IDB6Il19LENzZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJwZW4tcnVsZXIiLGljb246WzUxMiw1MTIsWyJwZW5jaWwtcnVsZXIiXSwiZjVhZSIsIk00MDQgMGMxOS4yIDAgMzcuNiA3LjYgNTEuMSAyMS4ybDM1LjcgMzUuN0M1MDQuNCA3MC40IDUxMiA4OC44IDUxMiAxMDhzLTcuNiAzNy42LTIxLjIgNTEuMUw0NDUuOSAyMDQgMzA4IDY2LjEgMzUyLjkgMjEuMkMzNjYuNCA3LjYgMzg0LjggMCA0MDQgMHpNNTguOSAzMTUuMUwyNzQuMSAxMDAgNDEyIDIzNy45IDE5Ni45IDQ1My4xYy0xMC43IDEwLjctMjQuMSAxOC41LTM4LjcgMjIuNkwzMC40IDUxMS4xYy04LjMgMi4zLTE3LjMgMC0yMy40LTYuMnMtOC41LTE1LjEtNi4yLTIzLjRMMzYuNCAzNTMuOGM0LjEtMTQuNiAxMS44LTI3LjkgMjIuNi0zOC43ek0yMjUuNCA4MC44TDgwLjggMjI1LjQgMTEuNyAxNTYuM2MtMTUuNi0xNS42LTE1LjYtNDAuOSAwLTU2LjZsODgtODhjMTUuNi0xNS42IDQwLjktMTUuNiA1Ni42IDBsNS45IDUuOS01Ni4zIDU2LjNjLTcuOCA3LjgtNy44IDIwLjUgMCAyOC4zczIwLjUgNy44IDI4LjMgMGw1Ni4zLTU2LjMgMzQuOSAzNC45ek00MzEuMiAyODYuNmwzNC45IDM0LjktNTYuMyA1Ni4zYy03LjggNy44LTcuOCAyMC41IDAgMjguM3MyMC41IDcuOCAyOC4zIDBsNTYuMy01Ni4zIDUuOSA1LjljMTUuNiAxNS42IDE1LjYgNDAuOSAwIDU2LjZsLTg4IDg4Yy0xNS42IDE1LjYtNDAuOSAxNS42LTU2LjYgMGwtNjkuMS02OS4xIDE0NC42LTE0NC42eiJdfSx2OXQ9Q3NlLHg5dD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJyZXBlYXQiLGljb246WzUxMiw1MTIsWzEyODI1N10sImYzNjMiLCJNNDcwLjYgMTE4LjZjMTIuNS0xMi41IDEyLjUtMzIuOCAwLTQ1LjNsLTY0LTY0Yy05LjItOS4yLTIyLjktMTEuOS0zNC45LTYuOVMzNTIgMTkuMSAzNTIgMzJsMCAzMi0xNjAgMEM4NiA2NCAwIDE1MCAwIDI1NiAwIDI3My43IDE0LjMgMjg4IDMyIDI4OHMzMi0xNC4zIDMyLTMyYzAtNzAuNyA1Ny4zLTEyOCAxMjgtMTI4bDE2MCAwIDAgMzJjMCAxMi45IDcuOCAyNC42IDE5LjggMjkuNnMyNS43IDIuMiAzNC45LTYuOWw2NC02NHpNNDEuNCAzOTMuNGMtMTIuNSAxMi41LTEyLjUgMzIuOCAwIDQ1LjNsNjQgNjRjOS4yIDkuMiAyMi45IDExLjkgMzQuOSA2LjlTMTYwIDQ5Mi45IDE2MCA0ODBsMC0zMiAxNjAgMGMxMDYgMCAxOTItODYgMTkyLTE5MiAwLTE3LjctMTQuMy0zMi0zMi0zMnMtMzIgMTQuMy0zMiAzMmMwIDcwLjctNTcuMyAxMjgtMTI4IDEyOGwtMTYwIDAgMC0zMmMwLTEyLjktNy44LTI0LjYtMTkuOC0yOS42cy0yNS43LTIuMi0zNC45IDYuOWwtNjQgNjR6Il19LHk5dD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJib25lIixpY29uOls2NDAsNTEyLFsxMjk0NjBdLCJmNWQ3IiwiTTE5Ny40IDE2MGMtMy45IDAtNy4yLTIuOC04LjEtNi42LTEwLjItNDIuMS00OC4xLTczLjQtOTMuMy03My40LTUzIDAtOTYgNDMtOTYgOTYgMCAyOS4xIDEyLjkgNTUuMSAzMy4zIDcyLjcgNC4zIDMuNyA0LjMgMTAuOCAwIDE0LjUtMjAuNCAxNy42LTMzLjMgNDMuNy0zMy4zIDcyLjcgMCA1MyA0MyA5NiA5NiA5NiA0NS4yIDAgODMuMS0zMS4zIDkzLjMtNzMuNCAuOS0zLjggNC4yLTYuNiA4LjEtNi42bDI0NS4xIDBjMy45IDAgNy4yIDIuOCA4LjEgNi42IDEwLjIgNDIuMSA0OC4xIDczLjQgOTMuMyA3My40IDUzIDAgOTYtNDMgOTYtOTYgMC0yOS4xLTEyLjktNTUuMS0zMy4zLTcyLjctNC4zLTMuNy00LjMtMTAuOCAwLTE0LjUgMjAuNC0xNy42IDMzLjMtNDMuNyAzMy4zLTcyLjcgMC01My00My05Ni05Ni05Ni00NS4yIDAtODMuMSAzMS4zLTkzLjMgNzMuNC0uOSAzLjgtNC4yIDYuNi04LjEgNi42bC0yNDUuMSAweiJdfSxUc2U9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZmlyZS1mbGFtZS1jdXJ2ZWQiLGljb246WzM4NCw1MTIsWyJmaXJlLWFsdCJdLCJmN2U0IiwiTTE1My42IDI5LjlsMTYtMjEuM0MxNzMuNiAzLjIgMTgwIDAgMTg2LjcgMCAxOTguNCAwIDIwOCA5LjYgMjA4IDIxLjNsMCAyMi4xYzAgMTMuMSA1LjQgMjUuNyAxNC45IDM0LjdMMzA3LjYgMTU5QzM1Ni40IDIwNS42IDM4NCAyNzAuMiAzODQgMzM3LjcgMzg0IDQzNCAzMDYgNTEyIDIwOS43IDUxMkwxOTIgNTEyQzg2IDUxMiAwIDQyNiAwIDMyMGwwLTMuOGMwLTQ4LjggMTkuNC05NS42IDUzLjktMTMwLjFsMy41LTMuNWM0LjItNC4yIDEwLTYuNiAxNi02LjYgMTIuNSAwIDIyLjYgMTAuMSAyMi42IDIyLjZMOTYgMjg4YzAgMzUuMyAyOC43IDY0IDY0IDY0czY0LTI4LjcgNjQtNjRsMC0zLjljMC0xOC03LjItMzUuMy0xOS45LTQ4bC0zOC42LTM4LjZjLTI0LTI0LTM3LjUtNTYuNy0zNy41LTkwLjcgMC0yNy43IDktNTQuOCAyNS42LTc2Ljl6Il19LHc5dD1Uc2UsX3NlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImJ1cy1zaW1wbGUiLGljb246WzQ0OCw1MTIsWyJidXMtYWx0Il0sImY1NWUiLCJNOTYgMEM0MyAwIDAgNDMgMCA5NkwwIDM4NGMwIDI5LjggMjAuNCA1NC45IDQ4IDYybDAgMzRjMCAxNy43IDE0LjMgMzIgMzIgMzJsMTYgMGMxNy43IDAgMzItMTQuMyAzMi0zMmwwLTMyIDE5MiAwIDAgMzJjMCAxNy43IDE0LjMgMzIgMzIgMzJsMTYgMGMxNy43IDAgMzItMTQuMyAzMi0zMmwwLTM0YzI3LjYtNy4xIDQ4LTMyLjIgNDgtNjJsMC0yODhjMC01My00My05Ni05Ni05Nkw5NiAwek02NCAxMjhjMC0xNy43IDE0LjMtMzIgMzItMzJsMjU2IDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJsMCA5NmMwIDE3LjctMTQuMyAzMi0zMiAzMkw5NiAyNTZjLTE3LjcgMC0zMi0xNC4zLTMyLTMybDAtOTZ6TTk2IDMyMGEzMiAzMiAwIDEgMSAwIDY0IDMyIDMyIDAgMSAxIDAtNjR6bTI1NiAwYTMyIDMyIDAgMSAxIDAgNjQgMzIgMzIgMCAxIDEgMC02NHoiXX0sTTl0PV9zZSxrOXQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToidmVudXMtbWFycyIsaWNvbjpbNjQwLDUxMixbOTg5Ml0sImYyMjgiLCJNNDgwLTY0Yy0xNy43IDAtMzIgMTQuMy0zMiAzMlM0NjIuMyAwIDQ4MCAwTDUzMC43IDAgNDc0IDU2LjdjLTI2LjMtMTUuNy01Ny4xLTI0LjctOTAtMjQuNy0zNS40IDAtNjguNCAxMC41LTk2IDI4LjUtMjcuNi0xOC02MC42LTI4LjUtOTYtMjguNS05Ny4yIDAtMTc2IDc4LjgtMTc2IDE3NiAwIDg2LjMgNjIuMSAxNTguMSAxNDQgMTczLjFsMCAzNC45LTMyIDBjLTE3LjcgMC0zMiAxNC4zLTMyIDMyczE0LjMgMzIgMzIgMzJsMzIgMCAwIDMyYzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJsMC0zMiAzMiAwYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMybC0zMiAwIDAtMzQuOWMyMy4zLTQuMyA0NC45LTEzLjEgNjQtMjUuNiAyNy42IDE4IDYwLjYgMjguNSA5NiAyOC41IDk3LjIgMCAxNzYtNzguOCAxNzYtMTc2IDAtNDEuMS0xNC4xLTc5LTM3LjgtMTA5TDU3NiA0NS4zIDU3NiA5NmMwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMybDAtMTI4YzAtMTcuNy0xNC4zLTMyLTMyLTMyTDQ4MC02NHpNMzM2IDMwOS4yYzIwLjItMjguNiAzMi02My41IDMyLTEwMS4ycy0xMS44LTcyLjYtMzItMTAxLjJjMTQuNi02LjkgMzAuOC0xMC44IDQ4LTEwLjggNjEuOSAwIDExMiA1MC4xIDExMiAxMTJTNDQ1LjkgMzIwIDM4NCAzMjBjLTE3LjIgMC0zMy41LTMuOS00OC0xMC44ek0yODggMTUwLjNjMTAuMiAxNi45IDE2IDM2LjYgMTYgNTcuN3MtNS44IDQwLjktMTYgNTcuN2MtMTAuMi0xNi45LTE2LTM2LjYtMTYtNTcuN3M1LjgtNDAuOSAxNi01Ny43em0tNDgtNDMuNWMtMjAuMiAyOC42LTMyIDYzLjUtMzIgMTAxLjJzMTEuOCA3Mi42IDMyIDEwMS4yYy0xNC41IDYuOS0zMC44IDEwLjgtNDggMTAuOC02MS45IDAtMTEyLTUwLjEtMTEyLTExMlMxMzAuMSA5NiAxOTIgOTZjMTcuMiAwIDMzLjUgMy45IDQ4IDEwLjh6Il19LFM5dD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJibGVuZGVyIixpY29uOls1MTIsNTEyLFtdLCJmNTE3IiwiTTAgNTZDMCAyNS4xIDI1LjEgMCA1NiAwTDQzNy42IDBjMjEuMyAwIDM2LjYgMjAuMyAzMC44IDQwLjhMNDU3LjEgODAgMzQ0IDgwYy0xMy4zIDAtMjQgMTAuNy0yNCAyNHMxMC43IDI0IDI0IDI0bDk5LjQgMC0xOC4zIDY0LTgxLjEgMGMtMTMuMyAwLTI0IDEwLjctMjQgMjRzMTAuNyAyNCAyNCAyNGw2Ny40IDAtMjcuNCA5Ni0yNTYgMC05LjEtOTYtNjIuOSAwYy0zMC45IDAtNTYtMjUuMS01Ni01NkwwIDU2ek0xMTQuMyAxOTJMMTAwLjYgNDggNTYgNDhjLTQuNCAwLTggMy42LTggOGwwIDEyOGMwIDQuNCAzLjYgOCA4IDhsNTguMyAwek0xMzYgMzg0bDI0MCAwYzIyLjEgMCA0MCAxNy45IDQwIDQwbDAgNDhjMCAyMi4xLTE3LjkgNDAtNDAgNDBsLTI0MCAwYy0yMi4xIDAtNDAtMTcuOS00MC00MGwwLTQ4YzAtMjIuMSAxNy45LTQwIDQwLTQwem0xMjAgODhhMjQgMjQgMCAxIDAgMC00OCAyNCAyNCAwIDEgMCAwIDQ4eiJdfSx6OXQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToidSIsaWNvbjpbMzg0LDUxMixbMTE3XSwiNTUiLCJNMzIgMzJjMTcuNyAwIDMyIDE0LjMgMzIgMzJsMCAyMjRjMCA3MC43IDU3LjMgMTI4IDEyOCAxMjhzMTI4LTU3LjMgMTI4LTEyOGwwLTIyNGMwLTE3LjcgMTQuMy0zMiAzMi0zMnMzMiAxNC4zIDMyIDMybDAgMjI0YzAgMTA2LTg2IDE5Mi0xOTIgMTkyUzAgMzk0IDAgMjg4TDAgNjRDMCA0Ni4zIDE0LjMgMzIgMzIgMzJ6Il19LFpnPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InNoYXJlIixpY29uOls1MTIsNTEyLFsibWFpbC1mb3J3YXJkIl0sImYwNjQiLCJNMzA3LjggMTguNGMtMTIgNS0xOS44IDE2LjYtMTkuOCAyOS42bDAgODAtMTEyIDBjLTk3LjIgMC0xNzYgNzguOC0xNzYgMTc2IDAgMTEzLjMgODEuNSAxNjMuOSAxMDAuMiAxNzQuMSAyLjUgMS40IDUuMyAxLjkgOC4xIDEuOSAxMC45IDAgMTkuNy04LjkgMTkuNy0xOS43IDAtNy41LTQuMy0xNC40LTkuOC0xOS41LTkuNC04LjgtMjIuMi0yNi40LTIyLjItNTYuNyAwLTUzIDQzLTk2IDk2LTk2bDk2IDAgMCA4MGMwIDEyLjkgNy44IDI0LjYgMTkuOCAyOS42czI1LjcgMi4yIDM0LjktNi45bDE2MC0xNjBjMTIuNS0xMi41IDEyLjUtMzIuOCAwLTQ1LjNsLTE2MC0xNjBjLTkuMi05LjItMjIuOS0xMS45LTM0LjktNi45eiJdfSxDOXQ9WmcsTHNlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InBob25lLWZsaXAiLGljb246WzUxMiw1MTIsWzEyODM4MSwicGhvbmUtYWx0Il0sImY4NzkiLCJNMzUxLjggMjVjNy44LTE4LjggMjguNC0yOC45IDQ4LjEtMjMuNWw1LjUgMS41YzY0LjYgMTcuNiAxMTkuOCA4MC4yIDEwMy43IDE1Ni40LTM3LjEgMTc1LTE3NC44IDMxMi43LTM0OS44IDM0OS44LTc2LjMgMTYuMi0xMzguOC0zOS4xLTE1Ni40LTEwMy43bC0xLjUtNS41Yy01LjQtMTkuNyA0LjctNDAuMyAyMy41LTQ4LjFsOTcuMy00MC41YzE2LjUtNi45IDM1LjYtMi4xIDQ3IDExLjhsMzguNiA0Ny4yYzcwLjMtMzQuOSAxMjYuOC05My4zIDE1OS4zLTE2NC45bC00NC4xLTM2LjFjLTEzLjktMTEuMy0xOC42LTMwLjQtMTEuOC00N0wzNTEuOCAyNXoiXX0sVDl0PUxzZSxfOXQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToidG9pbGV0LXBvcnRhYmxlIixpY29uOlszMjAsNTEyLFtdLCJlNTgzIiwiTTAgNjRsMCAxNiAzMjAgMCAwLTE2YzAtMzUuMy0yOC43LTY0LTY0LTY0TDY0IDBDMjguNyAwIDAgMjguNyAwIDY0em0yNCA2NEwwIDEyOCAwIDQ4OGMwIDEzLjMgMTAuNyAyNCAyNCAyNHMyNC0xMC43IDI0LTI0bDAtOCAyMjQgMCAwIDhjMCAxMy4zIDEwLjcgMjQgMjQgMjRzMjQtMTAuNyAyNC0yNGwwLTM2MC0yOTYgMHptMjI0IDk2bDI0IDAgMCA5Ni0yNCAwYy0xMy4zIDAtMjQtMTAuNy0yNC0yNGwwLTQ4YzAtMTMuMyAxMC43LTI0IDI0LTI0eiJdfSxMOXQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToicGVyc29uLXByZWduYW50IixpY29uOlszODQsNTEyLFtdLCJlMzFlIiwiTTE5MiA4MGE1NiA1NiAwIDEgMCAwLTExMiA1NiA1NiAwIDEgMCAwIDExMnptODAgMzIxLjJjOC42LTQuNSAxNi44LTEwIDI0LjMtMTYuNWw0LTMuNGMyMi42LTE5LjQgMzUuNy00Ny43IDM1LjctNzcuNiAwLTM1LjktMTguOC02OS4xLTQ5LjYtODcuNmwtMzAuNC0xOC4yIDAtMS44YzAtNDYuNS0zNy43LTg0LjEtODQuMS04NC4xLTI4LjEgMC01NC40IDE0LjEtNzAgMzcuNUwyMS40IDI3MC4yYy05LjggMTQuNy01LjggMzQuNiA4LjkgNDQuNHMzNC42IDUuOCA0NC40LTguOWwyOS00My41LTMwLjUgMTEzLjVjLTIuNiA5LjYtLjYgMTkuOSA1LjUgMjcuOFM5NCA0MTYgMTA0IDQxNmw4IDAgMCA5NmMwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMybDAtOTYgMzIgMCAwIDk2YzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJsMC0xMTAuOHoiXX0sQTl0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6Imxlc3MtdGhhbiIsaWNvbjpbNTEyLDUxMixbNjI3NzRdLCIzYyIsIk00NzcuMSA1MC42YzcuNCAxNiAuNCAzNS4xLTE1LjYgNDIuNUwxMDguNCAyNTYgNDYxLjQgNDE5YzE2IDcuNCAyMyAyNi40IDE1LjYgNDIuNXMtMjYuNCAyMy00Mi41IDE1LjZsLTQxNi0xOTJDNy4zIDI3OS44IDAgMjY4LjUgMCAyNTZTNy4zIDIzMi4yIDE4LjYgMjI3bDQxNi0xOTJjMTYtNy40IDM1LjEtLjQgNDIuNSAxNS42eiJdfSxEOXQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToic3VwZXJzY3JpcHQiLGljb246WzU3Niw1MTIsW10sImYxMmIiLCJNNTQ0IDMyYzAtMTEuMS01LjctMjEuNC0xNS4yLTI3LjJzLTIxLjItNi40LTMxLjEtMS40bC0zMiAxNkM0NDkuOSAyNy4zIDQ0My41IDQ2LjUgNDUxLjQgNjIuMyA0NTcgNzMuNSA0NjguMyA4MCA0ODAgODBsMCA4MGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJzMTQuMyAzMiAzMiAzMmw2NCAwYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMybDAtMTI4ek05NiA2NEM3OC4zIDY0IDY0IDc4LjMgNjQgOTZzMTQuMyAzMiAzMiAzMmwxNS4zIDAgODkuNiAxMjgtODkuNiAxMjgtMTUuMyAwYy0xNy43IDAtMzIgMTQuMy0zMiAzMnMxNC4zIDMyIDMyIDMybDMyIDBjMTAuNCAwIDIwLjItNS4xIDI2LjItMTMuNkwyNDAgMzExLjggMzI1LjggNDM0LjRjNiA4LjYgMTUuOCAxMy42IDI2LjIgMTMuNmwzMiAwYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMybC0xNS4zIDAtODkuNi0xMjggODkuNi0xMjggMTUuMyAwYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMybC0zMiAwYy0xMC40IDAtMjAuMiA1LjEtMjYuMiAxMy42TDI0MCAyMDAuMiAxNTQuMiA3Ny42QzE0OC4yIDY5LjEgMTM4LjQgNjQgMTI4IDY0TDk2IDY0eiJdfSxBc2U9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiY2lyY2xlLXN0b3AiLGljb246WzUxMiw1MTIsWzYyMDk0LCJzdG9wLWNpcmNsZSJdLCJmMjhkIiwiTTI1NiA1MTJhMjU2IDI1NiAwIDEgMCAwLTUxMiAyNTYgMjU2IDAgMSAwIDAgNTEyek0xOTIgMTYwbDEyOCAwYzE3LjcgMCAzMiAxNC4zIDMyIDMybDAgMTI4YzAgMTcuNy0xNC4zIDMyLTMyIDMybC0xMjggMGMtMTcuNyAwLTMyLTE0LjMtMzItMzJsMC0xMjhjMC0xNy43IDE0LjMtMzIgMzItMzJ6Il19LEU5dD1Bc2UsRHNlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImFycm93cy11cC1kb3duIixpY29uOlsyNTYsNTEyLFsiYXJyb3dzLXYiXSwiZjA3ZCIsIk0xNTAuNi0yMi42Yy0xMi41LTEyLjUtMzIuOC0xMi41LTQ1LjMgMGwtOTYgOTZjLTEyLjUgMTIuNS0xMi41IDMyLjggMCA0NS4zczMyLjggMTIuNSA0NS4zIDBMOTYgNzcuMyA5NiA0MzQuNyA1NC42IDM5My40Yy0xMi41LTEyLjUtMzIuOC0xMi41LTQ1LjMgMHMtMTIuNSAzMi44IDAgNDUuM2w5NiA5NmM2IDYgMTQuMSA5LjQgMjIuNiA5LjRzMTYuNi0zLjQgMjIuNi05LjRsOTYtOTZjMTIuNS0xMi41IDEyLjUtMzIuOCAwLTQ1LjNzLTMyLjgtMTIuNS00NS4zIDBsLTQxLjQgNDEuNCAwLTM1Ny41IDQxLjQgNDEuNGMxMi41IDEyLjUgMzIuOCAxMi41IDQ1LjMgMHMxMi41LTMyLjggMC00NS4zbC05Ni05NnoiXX0sJDl0PURzZSxFc2U9e3ByZWZpeDoiZmFzIixpY29uTmFtZToicG9vLXN0b3JtIixpY29uOls1MTIsNTEyLFsicG9vLWJvbHQiXSwiZjc1YSIsIk0yNjguOS0zMS44Yy01LjUtLjctMTEgMS40LTE0LjUgNS43cy00LjYgMTAuMS0yLjggMTUuM2MyLjggOC4yIDQuMyAxNi45IDQuMyAyNi4xIDAgMjEuNy04LjUgMzcuMi0yMS45IDQ3LjYtMTMuOSAxMC44LTM0LjEgMTctNTguMSAxN2wtMjQgMGMtNDguNiAwLTg4IDM5LjQtODggODggMCAxNC44IDMuNyAyOC44IDEwLjIgNDEuMS00MiA2LjYtNzQuMiA0My03NC4yIDg2LjkgMCA0Ni42IDM2LjIgODQuNyA4MS45IDg3LjggMy4xLTEyLjQgOS45LTIzLjggMTkuNi0zMi41TDI0Mi43IDIyNWMxMi4yLTEwLjkgMjgtMTcgNDQuNC0xNyA0NC42IDAgNzYuNSA0MyA2My43IDg1LjdsLTEyLjcgNDIuNGMyOC44IDEuMiA1Mi43IDIxLjEgNTkuOCA0Ny45bDI2LjIgMGM0OC42IDAgODgtMzkuNCA4OC04OCAwLTQzLjktMzIuMS04MC4zLTc0LjItODYuOSA2LjUtMTIuMyAxMC4yLTI2LjIgMTAuMi00MS4xIDAtNDguNi0zOS40LTg4LTg4LTg4bC05LjQgMGMuOS01LjQgMS40LTEwLjkgMS40LTE2LjYgMC00OC43LTM2LjEtODguOS04My4xLTk1LjJ6TTE0NC42IDQxNmw2MS44IDAtMzEuMiAxMDQuMWMtMy42IDExLjkgNS4zIDIzLjkgMTcuOCAyMy45IDQuNiAwIDktMS43IDEyLjQtNC43TDM0Ni41IDQxMi45YzMuNS0zLjEgNS41LTcuNiA1LjUtMTIuNCAwLTkuMi03LjQtMTYuNi0xNi42LTE2LjZsLTYxLjggMCAzMS4yLTEwNC4xYzMuNi0xMS45LTUuMy0yMy45LTE3LjgtMjMuOS00LjYgMC05IDEuNy0xMi40IDQuN0wxMzMuNSAzODcuMWMtMy41IDMuMS01LjUgNy42LTUuNSAxMi40IDAgOS4yIDcuNCAxNi42IDE2LjYgMTYuNnoiXX0sSTl0PUVzZSxQOXQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToidmlkZW8tc2xhc2giLGljb246WzU3Niw1MTIsW10sImY0ZTIiLCJNNDEtMjQuOWMtOS40LTkuNC0yNC42LTkuNC0zMy45IDBTLTIuMy0uMyA3IDkuMWw1MjggNTI4YzkuNCA5LjQgMjQuNiA5LjQgMzMuOSAwczkuNC0yNC42IDAtMzMuOWwtMTUzLTE1MyAwLTIyMi4yYzAtMzUuMy0yOC43LTY0LTY0LTY0TDEyOS44IDY0IDQxLTI0Ljl6TTMyIDEyOGwwIDI1NmMwIDM1LjMgMjguNyA2NCA2NCA2NGwyNTYgMGM3LjggMCAxNS4zLTEuNCAyMi4yLTRMMzYgMTA1LjhjLTIuNiA2LjktNCAxNC40LTQgMjIuMnpNNDY0IDMzNmw3My41IDU4LjhjNC4yIDMuNCA5LjQgNS4yIDE0LjggNS4yIDEzLjEgMCAyMy43LTEwLjYgMjMuNy0yMy43bDAtMjQwLjZjMC0xMy4xLTEwLjYtMjMuNy0yMy43LTIzLjctNS40IDAtMTAuNiAxLjgtMTQuOCA1LjJMNDY0IDE3NiA0NjQgMzM2eiJdfSxsRD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJzcXVhcmUteG1hcmsiLGljb246WzQ0OCw1MTIsWzEwMDYyLCJ0aW1lcy1zcXVhcmUiLCJ4bWFyay1zcXVhcmUiXSwiZjJkMyIsIk02NCAzMkMyOC43IDMyIDAgNjAuNyAwIDk2TDAgNDE2YzAgMzUuMyAyOC43IDY0IDY0IDY0bDMyMCAwYzM1LjMgMCA2NC0yOC43IDY0LTY0bDAtMzIwYzAtMzUuMy0yOC43LTY0LTY0LTY0TDY0IDMyem03MSAxMzVjOS40LTkuNCAyNC42LTkuNCAzMy45IDBsNTUgNTUgNTUtNTVjOS40LTkuNCAyNC42LTkuNCAzMy45IDBzOS40IDI0LjYgMCAzMy45bC01NSA1NSA1NSA1NWM5LjQgOS40IDkuNCAyNC42IDAgMzMuOXMtMjQuNiA5LjQtMzMuOSAwbC01NS01NS01NSA1NWMtOS40IDkuNC0yNC42IDkuNC0zMy45IDBzLTkuNC0yNC42IDAtMzMuOWw1NS01NS01NS01NWMtOS40LTkuNC05LjQtMjQuNiAwLTMzLjl6Il19LE45dD1sRCxGOXQ9bEQsJHNlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImhhbmQtaG9sZGluZy1kcm9wbGV0IixpY29uOls1NzYsNTEyLFsiaGFuZC1ob2xkaW5nLXdhdGVyIl0sImY0YzEiLCJNMjc1LjUgNi42TDIwOS4yIDEwM0MxOTggMTE5LjMgMTkyIDEzOC42IDE5MiAxNTguM2wwIDEuN2MwIDUzIDQzIDk2IDk2IDk2czk2LTQzIDk2LTk2bDAtMS43YzAtMTkuOC02LTM5LTE3LjItNTUuM0wzMDAuNSA2LjZDMjk3LjcgMi41IDI5MyAwIDI4OCAwcy05LjcgMi41LTEyLjUgNi42ek0xMDkuMyAzNDEuNUw2Ni43IDM4NCAzMiAzODRjLTE3LjcgMC0zMiAxNC4zLTMyIDMybDAgNjRjMCAxNy43IDE0LjMgMzIgMzIgMzJsMzIwLjUgMGMyOSAwIDU3LjMtOS4zIDgwLjctMjYuNWwxMjYuNi05My4zYzE3LjgtMTMuMSAyMS42LTM4LjEgOC41LTU1LjlzLTM4LjEtMjEuNi01NS45LTguNUwzOTIuNiA0MTYgMjgwIDQxNmMtMTMuMyAwLTI0LTEwLjctMjQtMjRzMTAuNy0yNCAyNC0yNGw3MiAwYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMybC0xNTIuMiAwYy0zMy45IDAtNjYuNSAxMy41LTkwLjUgMzcuNXoiXX0sTzl0PSRzZSxjRD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJ3b24tc2lnbiIsaWNvbjpbNTEyLDUxMixbODM2MSwia3J3Iiwid29uIl0sImYxNTkiLCJNNjIuNCA1My45QzU2LjggMzcuMSAzOC43IDI4LjEgMjEuOSAzMy42Uy0zLjkgNTcuNCAxLjcgNzQuMUw1Ni45IDI0MCAzMiAyNDBjLTEzLjMgMC0yNCAxMC43LTI0IDI0czEwLjcgMjQgMjQgMjRsNDAuOSAwIDU2LjcgMTcwLjFjNC41IDEzLjUgMTcuNCAyMi40IDMxLjYgMjEuOXMyNi40LTEwLjQgMjkuOC0yNC4yTDIzMyAyODggMjc5IDI4OCAzMjEgNDU1LjhjMy40IDEzLjggMTUuNiAyMy43IDI5LjggMjQuMnMyNy4xLTguNCAzMS42LTIxLjlMNDM5LjEgMjg4IDQ4MCAyODhjMTMuMyAwIDI0LTEwLjcgMjQtMjRzLTEwLjctMjQtMjQtMjRsLTI0LjkgMCA1NS4zLTE2NS45YzUuNi0xNi44LTMuNS0zNC45LTIwLjItNDAuNXMtMzQuOSAzLjUtNDAuNSAyMC4ybC02MiAxODYuMS01NC42IDAtNDUuOS0xODMuOEMyODMuNSA0MiAyNzAuNyAzMiAyNTYgMzJzLTI3LjUgMTAtMzEgMjQuMkwxNzkgMjQwIDEyNC40IDI0MCA2Mi40IDUzLjl6bTc4IDIzNC4xbDI2LjYgMC0xMS40IDQ1LjYtMTUuMi00NS42ek0yNDUgMjQwbDExLTQ0LjEgMTEgNDQuMS0yMiAwem0xMDAgNDhsMjYuNiAwLTE1LjIgNDUuNi0xMS40LTQ1LjZ6Il19LFI5dD1jRCxCOXQ9Y0QsSDl0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6Im9iamVjdC11bmdyb3VwIixpY29uOls2NDAsNTEyLFtdLCJmMjQ4IiwiTTMyIDExOS40QzEyLjkgMTA4LjQgMCA4Ny43IDAgNjQgMCAyOC43IDI4LjcgMCA2NCAwIDg3LjcgMCAxMDguNCAxMi45IDExOS40IDMybDIwOS4xIDBjMTEuMS0xOS4xIDMxLjctMzIgNTUuNC0zMiAzNS4zIDAgNjQgMjguNyA2NCA2NCAwIDIzLjctMTIuOSA0NC40LTMyIDU1LjRsMCAxMTMuMWMxOS4xIDExLjEgMzIgMzEuNyAzMiA1NS40IDAgMzUuMy0yOC43IDY0LTY0IDY0LTIzLjcgMC00NC40LTEyLjktNTUuNC0zMmwtMjA5LjEgMGMtMTEuMSAxOS4xLTMxLjcgMzItNTUuNCAzMi0zNS4zIDAtNjQtMjguNy02NC02NCAwLTIzLjcgMTIuOS00NC40IDMyLTU1LjRsMC0xMTMuMXpNMTE5LjQgOTZjLTUuNiA5LjctMTMuNyAxNy44LTIzLjQgMjMuNGwwIDExMy4xYzkuNyA1LjYgMTcuOCAxMy43IDIzLjQgMjMuNGwyMDkuMSAwYzUuNi05LjcgMTMuNy0xNy44IDIzLjQtMjMuNGwwLTExMy4xYy05LjctNS42LTE3LjgtMTMuNy0yMy40LTIzLjRMMTE5LjQgOTZ6TTU0NCAyNzkuNGMtOS43LTUuNi0xNy44LTEzLjctMjMuNC0yMy40bC0yOS4yIDBjLTUuMy0xNy43LTE0LjgtMzMuNS0yNy40LTQ2LjRsMC0xNy42IDU2LjYgMGMxMS4xLTE5LjEgMzEuNy0zMiA1NS40LTMyIDM1LjMgMCA2NCAyOC43IDY0IDY0IDAgMjMuNy0xMi45IDQ0LjQtMzIgNTUuNGwwIDExMy4xYzE5LjEgMTEuMSAzMiAzMS43IDMyIDU1LjQgMCAzNS4zLTI4LjcgNjQtNjQgNjQtMjMuNyAwLTQ0LjQtMTIuOS01NS40LTMybC0yMDkuMSAwYy0xMS4xIDE5LjEtMzEuNyAzMi01NS40IDMyLTM1LjMgMC02NC0yOC43LTY0LTY0IDAtMjMuNyAxMi45LTQ0LjQgMzItNTUuNGwwLTI0LjYgNjQgMCAwIDI0LjZjOS43IDUuNiAxNy44IDEzLjcgMjMuNCAyMy40bDIwOS4xIDBjNS42LTkuNyAxMy43LTE3LjggMjMuNC0yMy40bDAtMTEzLjF6Il19LHE5dD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJjb21tZW50IixpY29uOls1MTIsNTEyLFsxMjg0ODksNjE2NjldLCJmMDc1IiwiTTUxMiAyNDBjMCAxMzIuNS0xMTQuNiAyNDAtMjU2IDI0MC0zNy4xIDAtNzIuMy03LjQtMTA0LjEtMjAuN0wzMy41IDUxMC4xYy05LjQgNC0yMC4yIDEuNy0yNy4xLTUuOFMtMiA0ODUuOCAyLjggNDc2LjhsNDguOC05Mi4yQzE5LjIgMzQ0LjMgMCAyOTQuMyAwIDI0MCAwIDEwNy41IDExNC42IDAgMjU2IDBTNTEyIDEwNy41IDUxMiAyNDB6Il19LGo5dD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJoaWxsLWF2YWxhbmNoZSIsaWNvbjpbNTc2LDUxMixbXSwiZTUwNyIsIk00NDAuMSA0MDEuOWMzNC4yIDIzLjEgODEuMSAxOS41IDExMS40LTEwLjggMzQuNC0zNC40IDM0LjQtOTAuMSAwLTEyNC41LTI3LjgtMjcuOC02OS41LTMzLjEtMTAyLjYtMTYtMTEuOCA2LjEtMTYuNCAyMC42LTEwLjMgMzIuM3MyMC42IDE2LjQgMzIuMyAxMC4zYzE1LjEtNy44IDM0LTUuMyA0Ni42IDcuMyAxNS42IDE1LjYgMTUuNiA0MC45IDAgNTYuNnMtNDAuOSAxNS42LTU2LjYgMGwtODEuNy04MS43YzIyLjMtMTQuMiAzNy4xLTM5LjEgMzcuMS02Ny41IDAtMzMuOS0yMS4xLTYyLjktNTAuOS03NC41IDEuOS02LjggMi45LTE0IDIuOS0yMS41IDAtNDQuMi0zNS44LTgwLTgwLTgwLTI3LjMgMC01MS41IDEzLjctNjUuOSAzNC42LTUuOC0yMC0yNC4yLTM0LjYtNDYuMS0zNC42LTI2LjUgMC00OCAyMS41LTQ4IDQ4IDAgNCAuNSA3LjkgMS40IDExLjZMNDQwLjEgNDAxLjl6TTQ4MC40IDY0YTMyIDMyIDAgMSAwIC02NCAwIDMyIDMyIDAgMSAwIDY0IDB6bTAgMTI4YTMyIDMyIDAgMSAwIDAtNjQgMzIgMzIgMCAxIDAgMCA2NHpNNjguNyA4N0M0My41IDYxLjggLjQgNzkuNyAuNCAxMTUuM0wuNCA0MzJjMCA0NC4yIDM1LjggODAgODAgODBsMzE2LjcgMGMzNS42IDAgNTMuNS00My4xIDI4LjMtNjguM0w2OC43IDg3eiJdfSxWOXQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiYXJyb3dzLXRvLWV5ZSIsaWNvbjpbNjQwLDUxMixbXSwiZTRiZiIsIk0xNzYgNTZjMC0xMy4zLTEwLjctMjQtMjQtMjRzLTI0IDEwLjctMjQgMjRsMCAzOC4xLTYzLTYzYy05LjQtOS40LTI0LjYtOS40LTMzLjkgMFMyMS43IDU1LjYgMzEgNjVsNjMgNjMtMzguMSAwYy0xMy4zIDAtMjQgMTAuNy0yNCAyNHMxMC43IDI0IDI0IDI0bDk2IDBjMTMuMyAwIDI0LTEwLjcgMjQtMjRsMC05NnptMCA0MDBsMC05NmMwLTEzLjMtMTAuNy0yNC0yNC0yNGwtOTYgMGMtMTMuMyAwLTI0IDEwLjctMjQgMjRzMTAuNyAyNCAyNCAyNGwzOC4xIDAtNjMgNjNjLTkuNCA5LjQtOS40IDI0LjYgMCAzMy45czI0LjYgOS40IDMzLjkgMGw2My02MyAwIDM4LjFjMCAxMy4zIDEwLjcgMjQgMjQgMjRzMjQtMTAuNyAyNC0yNHptMzEyIDI0YzEzLjMgMCAyNC0xMC43IDI0LTI0bDAtMzguMSA2MyA2M2M5LjQgOS40IDI0LjYgOS40IDMzLjkgMHM5LjQtMjQuNiAwLTMzLjlsLTYzLTYzIDM4LjEgMGMxMy4zIDAgMjQtMTAuNyAyNC0yNHMtMTAuNy0yNC0yNC0yNGwtOTYgMGMtMTMuMyAwLTI0IDEwLjctMjQgMjRsMCA5NmMwIDEzLjMgMTAuNyAyNCAyNCAyNHpNNDY0IDU2bDAgOTZjMCAxMy4zIDEwLjcgMjQgMjQgMjRsOTYgMGMxMy4zIDAgMjQtMTAuNyAyNC0yNHMtMTAuNy0yNC0yNC0yNGwtMzguMSAwIDYzLTYzYzkuNC05LjQgOS40LTI0LjYgMC0zMy45cy0yNC42LTkuNC0zMy45IDBsLTYzIDYzIDAtMzguMWMwLTEzLjMtMTAuNy0yNC0yNC0yNHMtMjQgMTAuNy0yNCAyNHpNMzIwIDEyMGMtNTcuMyAwLTk5LjQgMzQtMTI1LjYgNjQuMy0yMCAyMy4xLTMyLjQgNDUuOC0zNy42IDU2LjEtMi41IDUtNC45IDkuNy00LjkgMTUuNnMyLjMgMTAuNiA0LjkgMTUuNmM1LjIgMTAuMyAxNy42IDMzIDM3LjYgNTYuMSAyNi4yIDMwLjMgNjguMiA2NC4zIDEyNS42IDY0LjNzOTkuNC0zNCAxMjUuNi02NC4zYzIwLTIzLjEgMzIuNC00NS44IDM3LjYtNTYuMSAyLjUtNSA0LjktOS43IDQuOS0xNS42cy0yLjMtMTAuNi00LjktMTUuNmMtNS4yLTEwLjMtMTcuNi0zMy0zNy42LTU2LjEtMjYuMi0zMC4zLTY4LjItNjQuMy0xMjUuNi02NC4zek0yNTYgMjU2YTY0IDY0IDAgMSAxIDEyOCAwIDY0IDY0IDAgMSAxIC0xMjggMHoiXX0sVTl0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InNub3dwbG93IixpY29uOls2NDAsNTEyLFtdLCJmN2QyIiwiTTEyOCAxNjBsMC05NmMwLTM1LjMgMjguNy02NCA2NC02NEwyOTYuNCAwYzI0LjIgMCA0Ni40IDEzLjcgNTcuMiAzNS40bDg3LjYgMTc1LjFjNC40IDguOSA2LjggMTguNyA2LjggMjguNmwwIDU2LjkgODAgMCAwLTgwYzAtNDguNiAzOS40LTg4IDg4LTg4IDEzLjMgMCAyNCAxMC43IDI0IDI0cy0xMC43IDI0LTI0IDI0Yy0yMi4xIDAtNDAgMTcuOS00MCA0MGwwIDIwOGMwIDIyLjEgMTcuOSA0MCA0MCA0MCAxMy4zIDAgMjQgMTAuNyAyNCAyNHMtMTAuNyAyNC0yNCAyNGMtNDguNiAwLTg4LTM5LjQtODgtODhsMC04MC02MyAwYzkuNSAxNi41IDE1IDM1LjYgMTUgNTYgMCA2MS45LTUwLjEgMTEyLTExMiAxMTJsLTIyNCAwYy02MS45IDAtMTEyLTUwLjEtMTEyLTExMiAwLTMwLjUgMTIuMi01OC4yIDMyLTc4LjRMNjQgMjI0YzAtMzUuMyAyOC43LTY0IDY0LTY0em05MS43IDM0LjlsNDMuNiAyOS4xIDExMy4yIDAtODAtMTYwLTEwNC40IDAgMCAxMDguOCAyNy43IDIyLjF6TTQxNiA0MDBjMC0yNi41LTIxLjUtNDgtNDgtNDhsLTIyNCAwYy0yNi41IDAtNDggMjEuNS00OCA0OHMyMS41IDQ4IDQ4IDQ4bDIyNCAwYzI2LjUgMCA0OC0yMS41IDQ4LTQ4em0tMjgwIDBhMjQgMjQgMCAxIDEgNDggMCAyNCAyNCAwIDEgMSAtNDggMHptMjE2LTI0YTI0IDI0IDAgMSAxIDAgNDggMjQgMjQgMCAxIDEgMC00OHpNMjMyIDQwMGEyNCAyNCAwIDEgMSA0OCAwIDI0IDI0IDAgMSAxIC00OCAweiJdfSxXOXQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiY2hhcnQtZ2FudHQiLGljb246WzUxMiw1MTIsW10sImUwZTQiLCJNNjQgNjRjMC0xNy43LTE0LjMtMzItMzItMzJTMCA0Ni4zIDAgNjRMMCA0MDBjMCA0NC4yIDM1LjggODAgODAgODBsNDAwIDBjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJMODAgNDE2Yy04LjggMC0xNi03LjItMTYtMTZMNjQgNjR6bTk2IDBjLTE3LjcgMC0zMiAxNC4zLTMyIDMyczE0LjMgMzIgMzIgMzJsOTYgMGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMmwtOTYgMHptNjQgMTEyYy0xNy43IDAtMzIgMTQuMy0zMiAzMnMxNC4zIDMyIDMyIDMybDEyOCAwYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMybC0xMjggMHpNMzg0IDI4OGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJzMTQuMyAzMiAzMiAzMmw2NCAwYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMybC02NCAweiJdfSxJc2U9e3ByZWZpeDoiZmFzIixpY29uTmFtZToidmlkZW8iLGljb246WzU3Niw1MTIsWyJ2aWRlby1jYW1lcmEiXSwiZjAzZCIsIk05NiA2NGMtMzUuMyAwLTY0IDI4LjctNjQgNjRsMCAyNTZjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMjU2IDBjMzUuMyAwIDY0LTI4LjcgNjQtNjRsMC0yNTZjMC0zNS4zLTI4LjctNjQtNjQtNjRMOTYgNjR6TTQ2NCAzMzZsNzMuNSA1OC44YzQuMiAzLjQgOS40IDUuMiAxNC44IDUuMiAxMy4xIDAgMjMuNy0xMC42IDIzLjctMjMuN2wwLTI0MC42YzAtMTMuMS0xMC42LTIzLjctMjMuNy0yMy43LTUuNCAwLTEwLjYgMS44LTE0LjggNS4yTDQ2NCAxNzYgNDY0IDMzNnoiXX0sRzl0PUlzZSxZOXQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiY2hlc3MtcGF3biIsaWNvbjpbMzg0LDUxMixbOTgyM10sImY0NDMiLCJNMTkyLTMyYzY2LjMgMCAxMjAgNTMuNyAxMjAgMTIwIDAgMjctOC45IDUxLjktMjQgNzIgMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJsLTEwLjcgMCAyNi43IDE2MCA1Ni4yIDcwLjNjNSA2LjMgNy44IDE0LjEgNy44IDIyLjIgMCAxOS42LTE1LjkgMzUuNS0zNS41IDM1LjVMNTEuNSA1MTJjLTE5LjYgMC0zNS41LTE1LjktMzUuNS0zNS41IDAtOC4xIDIuNy0xNS45IDcuOC0yMi4yTDgwIDM4NCAxMDYuNyAyMjQgOTYgMjI0Yy0xNy43IDAtMzItMTQuMy0zMi0zMnMxNC4zLTMyIDMyLTMyYy0xNS4xLTIwLjEtMjQtNDUtMjQtNzIgMC02Ni4zIDUzLjctMTIwIDEyMC0xMjB6Il19LFo5dD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJzeW5hZ29ndWUiLGljb246WzU3Niw1MTIsWzEyODMzM10sImY2OWIiLCJNMTYgODBjMC0zNS4zIDI4LjctNjQgNjQtNjRzNjQgMjguNyA2NCA2NGwwIDMyLTEyOCAwIDAtMzJ6bTAgMzY4bDAtMjg4IDEyOCAwIDEyNi4yLTg0LjJjMTAuNy03LjIgMjQuOC03LjIgMzUuNSAwbDEyNi4yIDg0LjIgMTI4IDAgMCAyODhjMCAzNS4zLTI4LjcgNjQtNjQgNjRMODAgNTEyYy0zNS4zIDAtNjQtMjguNy02NC02NHpNNTYwIDExMmwtMTI4IDAgMC0zMmMwLTM1LjMgMjguNy02NCA2NC02NHM2NCAyOC43IDY0IDY0bDAgMzJ6TTIyNCAzODRsMCA4MCAxMjggMCAwLTgwYzAtMzUuMy0yOC43LTY0LTY0LTY0cy02NCAyOC43LTY0IDY0em02NC0xNTJhNDAgNDAgMCAxIDAgMC04MCA0MCA0MCAwIDEgMCAwIDgweiJdfSxYOXQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiYnVpbGRpbmctY2lyY2xlLWNoZWNrIixpY29uOls1NzYsNTEyLFtdLCJlNGQyIiwiTTk2IDBDNjAuNyAwIDMyIDI4LjcgMzIgNjRsMCAzODRjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMTgwIDBjLTEwLjUtMTQuNi0xOS0zMC43LTI1LjEtNDhsLTc0LjkgMCAwLTgwYzAtMTcuNyAxNC4zLTMyIDMyLTMybDMyIDBjMiAwIDQgLjIgNS45IC41IDYtMjMuNiAxNi4zLTQ1LjQgMzAuMS02NC41bC00IDBjLTguOCAwLTE2LTcuMi0xNi0xNmwwLTMyYzAtOC44IDcuMi0xNiAxNi0xNmwzMiAwYzguOCAwIDE2IDcuMiAxNiAxNmwwIDRjMjcuNS0xOS44IDYwLjMtMzIuNCA5Ni0zNS40TDQxNiA2NGMwLTM1LjMtMjguNy02NC02NC02NEw5NiAwem0zMiAxMTJjMC04LjggNy4yLTE2IDE2LTE2bDMyIDBjOC44IDAgMTYgNy4yIDE2IDE2bDAgMzJjMCA4LjgtNy4yIDE2LTE2IDE2bC0zMiAwYy04LjggMC0xNi03LjItMTYtMTZsMC0zMnpNMjcyIDk2bDMyIDBjOC44IDAgMTYgNy4yIDE2IDE2bDAgMzJjMCA4LjgtNy4yIDE2LTE2IDE2bC0zMiAwYy04LjggMC0xNi03LjItMTYtMTZsMC0zMmMwLTguOCA3LjItMTYgMTYtMTZ6TTEyOCAyNDBjMC04LjggNy4yLTE2IDE2LTE2bDMyIDBjOC44IDAgMTYgNy4yIDE2IDE2bDAgMzJjMCA4LjgtNy4yIDE2LTE2IDE2bC0zMiAwYy04LjggMC0xNi03LjItMTYtMTZsMC0zMnpNNTc2IDQwMGExNDQgMTQ0IDAgMSAwIC0yODggMCAxNDQgMTQ0IDAgMSAwIDI4OCAwem0tODYuNi02MC45YzcuMSA1LjIgOC43IDE1LjIgMy41IDIyLjNsLTY0IDg4Yy0yLjggMy44LTcgNi4yLTExLjcgNi41cy05LjMtMS4zLTEyLjYtNC42bC00MC00MGMtNi4yLTYuMi02LjItMTYuNCAwLTIyLjZzMTYuNC02LjIgMjIuNiAwbDI2LjggMjYuOCA1My03Mi45YzUuMi03LjEgMTUuMi04LjcgMjIuNC0zLjV6Il19LFE5dD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJjYWxlbmRhci1wbHVzIixpY29uOls0NDgsNTEyLFtdLCJmMjcxIiwiTTEyOCAwYzE3LjcgMCAzMiAxNC4zIDMyIDMybDAgMzIgMTI4IDAgMC0zMmMwLTE3LjcgMTQuMy0zMiAzMi0zMnMzMiAxNC4zIDMyIDMybDAgMzIgMzIgMGMzNS4zIDAgNjQgMjguNyA2NCA2NGwwIDI4OGMwIDM1LjMtMjguNyA2NC02NCA2NEw2NCA0ODBjLTM1LjMgMC02NC0yOC43LTY0LTY0TDAgMTI4QzAgOTIuNyAyOC43IDY0IDY0IDY0bDMyIDAgMC0zMmMwLTE3LjcgMTQuMy0zMiAzMi0zMnptOTYgMTkyYy0xMy4zIDAtMjQgMTAuNy0yNCAyNGwwIDQ4LTQ4IDBjLTEzLjMgMC0yNCAxMC43LTI0IDI0czEwLjcgMjQgMjQgMjRsNDggMCAwIDQ4YzAgMTMuMyAxMC43IDI0IDI0IDI0czI0LTEwLjcgMjQtMjRsMC00OCA0OCAwYzEzLjMgMCAyNC0xMC43IDI0LTI0cy0xMC43LTI0LTI0LTI0bC00OCAwIDAtNDhjMC0xMy4zLTEwLjctMjQtMjQtMjR6Il19LFBzZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJ3aGVlbGNoYWlyLW1vdmUiLGljb246WzQ0OCw1MTIsWyJ3aGVlbGNoYWlyLWFsdCJdLCJlMmNlIiwiTTMxMiA1NmE1NiA1NiAwIDEgMSAxMTIgMCA1NiA1NiAwIDEgMSAtMTEyIDB6TTIwNS40IDEyNC4xYy02LjQtNS4yLTE1LjYtNC43LTIxLjQgMS4xbC0zMy40IDMzLjRjLTEyLjUgMTIuNS0zMi44IDEyLjUtNDUuMyAwcy0xMi41LTMyLjggMC00NS4zTDEzOC44IDgwYzI5LTI5IDc1LjItMzEuNCAxMDctNS41bDgxLjMgNjZjMjEuNCAxNy40IDIzLjggNDkuMiA1LjIgNjkuNWwtNDEuOCA0NiA5OCAwYzMwLjMgMCA1MyAyNy43IDQ3LjEgNTcuNEw0MDcuNCA0NTQuM2MtMy41IDE3LjMtMjAuMyAyOC42LTM3LjcgMjUuMXMtMjguNi0yMC4zLTI1LjEtMzcuN0wzNjkgMzIwIDMxNi44IDMyMGMyLjEgMTAuMyAzLjIgMjEgMy4yIDMyIDAgODguNC03MS42IDE2MC0xNjAgMTYwUzAgNDQwLjQgMCAzNTIgNzEuNiAxOTIgMTYwIDE5MmM2IDAgMTEuOSAuMyAxNy44IDFsNTAuNC01MC40LTIyLjctMTguNXpNMTYwIDQ0OGE5NiA5NiAwIDEgMCAwLTE5MiA5NiA5NiAwIDEgMCAwIDE5MnoiXX0sSjl0PVBzZSxLOXQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToidXNlci1zaGllbGQiLGljb246WzU3Niw1MTIsW10sImY1MDUiLCJNMjI0IDI0OGExMjAgMTIwIDAgMSAwIDAtMjQwIDEyMCAxMjAgMCAxIDAgMCAyNDB6bS0yOS43IDU2Qzk1LjggMzA0IDE2IDM4My44IDE2IDQ4Mi4zIDE2IDQ5OC43IDI5LjMgNTEyIDQ1LjcgNTEybDI1MS41IDBDMjYxIDQ2OS40IDI0MCA0MTQuNSAyNDAgMzU2LjRsMC0zMS4xYzAtNy4zIDEtMTQuNSAyLjktMjEuM2wtNDguNiAwem0yNTEgMTg0LjVsLTEzLjMgNi4zIDAtMTg4LjEgOTYgMzIgMCAxOS42YzAgNTUuOC0zMi4yIDEwNi41LTgyLjcgMTMwLjN6TTQyMS45IDI1OS41bC0xMTIgMzcuM2MtMTMuMSA0LjQtMjEuOSAxNi42LTIxLjkgMzAuNGwwIDMxLjFjMCA3NC40IDQzIDE0Mi4xIDExMC4yIDE3My43bDE4LjUgOC43YzQuOCAyLjIgMTAgMy40IDE1LjIgMy40czEwLjUtMS4yIDE1LjItMy40bDE4LjUtOC43QzUzMyA1MDAuMyA1NzYgNDMyLjYgNTc2IDM1OC4ybDAtMzEuMWMwLTEzLjgtOC44LTI2LTIxLjktMzAuNGwtMTEyLTM3LjNjLTYuNi0yLjItMTMuNy0yLjItMjAuMiAweiJdfSxlZ3Q9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiYm9sZCIsaWNvbjpbMzg0LDUxMixbXSwiZjAzMiIsIk0zMiAzMkMxNC4zIDMyIDAgNDYuMyAwIDY0UzE0LjMgOTYgMzIgOTZsMzIgMCAwIDMyMC0zMiAwYy0xNy43IDAtMzIgMTQuMy0zMiAzMnMxNC4zIDMyIDMyIDMybDIyNCAwYzcwLjcgMCAxMjgtNTcuMyAxMjgtMTI4IDAtNDYuNS0yNC44LTg3LjMtNjItMTA5LjcgMTguNy0yMi4zIDMwLTUxIDMwLTgyLjMgMC03MC43LTU3LjMtMTI4LTEyOC0xMjhMMzIgMzJ6TTI4OCAxNjBjMCAzNS4zLTI4LjcgNjQtNjQgNjRsLTk2IDAgMC0xMjggOTYgMGMzNS4zIDAgNjQgMjguNyA2NCA2NHpNMTI4IDQxNmwwLTEyOCAxMjggMGMzNS4zIDAgNjQgMjguNyA2NCA2NHMtMjguNyA2NC02NCA2NGwtMTI4IDB6Il19LE5zZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJoZWFydC1wdWxzZSIsaWNvbjpbNTEyLDUxMixbImhlYXJ0YmVhdCJdLCJmMjFlIiwiTTI1NiAxMDcuOUwyNDEgODcuMUMyMTYgNTIuNSAxNzUuOSAzMiAxMzMuMSAzMiA1OS42IDMyIDAgOTEuNiAwIDE2NS4xbDAgMi42YzAgMjMuNiA2LjIgNDggMTYuNiA3Mi4zbDEwNiAwYzMuMiAwIDYuMS0xLjkgNy40LTQuOWwzMS44LTc2LjNjMy43LTguOCAxMi4zLTE0LjYgMjEuOC0xNC44czE4LjMgNS40IDIyLjIgMTQuMWw1MS4zIDExMy45IDQxLjQtODIuOGM0LjEtOC4xIDEyLjQtMTMuMyAyMS41LTEzLjNzMTcuNCA1LjEgMjEuNSAxMy4zbDIzLjIgNDYuM2MxLjQgMi43IDQuMSA0LjQgNy4yIDQuNGwxMjMuNiAwYzEwLjUtMjQuMyAxNi42LTQ4LjcgMTYuNi03Mi4zbDAtMi42QzUxMiA5MS42IDQ1Mi40IDMyIDM3OC45IDMyIDMzNi4yIDMyIDI5NiA1Mi41IDI3MSA4Ny4xbC0xNSAyMC43ek00NjkuNiAyODhsLTk3LjggMGMtMjEuMiAwLTQwLjYtMTItNTAuMS0zMWwtMS43LTMuNC00Mi41IDg1LjFjLTQuMSA4LjMtMTIuNyAxMy41LTIyIDEzLjNzLTE3LjYtNS43LTIxLjQtMTQuMWwtNDkuMy0xMDkuNS0xMC41IDI1LjJjLTguNyAyMC45LTI5LjEgMzQuNS01MS43IDM0LjVsLTgwLjIgMGM0Ny4yIDczLjggMTIzIDE0MS43IDE3MC40IDE3Ny45IDEyLjQgOS40IDI3LjYgMTQuMSA0My4xIDE0LjFzMzAuOC00LjYgNDMuMS0xNC4xQzM0Ni42IDQyOS43IDQyMi40IDM2MS44IDQ2OS42IDI4OHoiXX0sdGd0PU5zZSxGc2U9e3ByZWZpeDoiZmFzIixpY29uTmFtZToic3F1YXJlLXJvb3QtdmFyaWFibGUiLGljb246WzU3Niw1MTIsWyJzcXVhcmUtcm9vdC1hbHQiXSwiZjY5OCIsIk0yODIuNiA3OC4xYzgtMjcuMyAzMy00Ni4xIDYxLjQtNDYuMWwyMDAgMGMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMkwzNDQgOTYgMjM4LjcgNDU3Yy0zLjYgMTIuMy0xNC4xIDIxLjItMjYuOCAyMi44cy0yNS4xLTQuNi0zMS41LTE1LjZMNzcuNiAyODggMzIgMjg4Yy0xNy43IDAtMzItMTQuMy0zMi0zMnMxNC4zLTMyIDMyLTMybDQ1LjYgMGMyMi44IDAgNDMuOCAxMi4xIDU1LjMgMzEuOGw2NS4yIDExMS44IDg0LjQtMjg5LjV6TTM5My40IDIzMy40YzEyLjUtMTIuNSAzMi44LTEyLjUgNDUuMyAwbDQxLjQgNDEuNCA0MS40LTQxLjRjMTIuNS0xMi41IDMyLjgtMTIuNSA0NS4zIDBzMTIuNSAzMi44IDAgNDUuM2wtNDEuNCA0MS40IDQxLjQgNDEuNGMxMi41IDEyLjUgMTIuNSAzMi44IDAgNDUuM3MtMzIuOCAxMi41LTQ1LjMgMGwtNDEuNC00MS40LTQxLjQgNDEuNGMtMTIuNSAxMi41LTMyLjggMTIuNS00NS4zIDBzLTEyLjUtMzIuOCAwLTQ1LjNsNDEuNC00MS40LTQxLjQtNDEuNGMtMTIuNS0xMi41LTEyLjUtMzIuOCAwLTQ1LjN6Il19LHJndD1Gc2UsT3NlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImhhbmRzLWJ1YmJsZXMiLGljb246WzUxMiw1MTIsWyJoYW5kcy13YXNoIl0sImUwNWUiLCJNMzg0IDY0YTMyIDMyIDAgMSAwIDAtNjQgMzIgMzIgMCAxIDAgMCA2NHptOTYgMTI4YTMyIDMyIDAgMSAwIDAtNjQgMzIgMzIgMCAxIDAgMCA2NHpNMTI4IDQ2NGE0OCA0OCAwIDEgMCAtOTYgMCA0OCA0OCAwIDEgMCA5NiAwek0wIDE2MGwuMSA3Mi42YzAgNDQuOCAxNy42IDg3LjEgNDcuOSAxMTguNCAuMy03NyA0MC4xLTE0OC40IDEwNS40LTE4OS4zbDEuOS0xLjJjLTIuNS0zLjctMi44LTguNi0uNC0xMi43bDYyLTEwNy40YzYuNi0xMS41IDIuNy0yNi4yLTguOC0zMi44UzE4MiA1IDE3NS40IDE2LjVsLTY4IDExNy44IDAgMCAwIDAtNDMuMyA3NSAwLTQ5LjNjMC0xNy43LTE0LjQtMzItMzItMzJTMCAxNDIuNCAwIDE2MHptMjEzLjYtMzUuOWMxNC4xLTguOCAyOS44LTEyLjcgNDUuMi0xMi4xbDM2LjUtNjMuM2M2LjYtMTEuNSAyLjctMjYuMi04LjgtMzIuOHMtMjYuMi0yLjctMzIuOCA4LjhsLTY3LjEgMTE2LjIgMjctMTYuOXptODYuNS0zNS43bC0xNi40IDI4LjRjMTUuMSA1LjUgMjguNiAxNS42IDM4LjMgMjkuN2wxOS43LTM0LjJjNi42LTExLjUgMi43LTI2LjItOC44LTMyLjhzLTI2LjItMi43LTMyLjggOC44em00Ni40IDYzLjdsLTEyLjUgMjEuN2MyIDguNiAyLjUgMTcuNSAxLjcgMjYuMWw0LjMgMCAwIDAgMzQuNCAwIDEzLjctMjMuOGM2LjYtMTEuNSAyLjctMjYuMi04LjgtMzIuOHMtMjYuMi0yLjctMzIuOCA4Ljh6TTI4My4xIDE3NWMtOS40LTE1LTI5LjEtMTkuNS00NC4xLTEwLjJsLTYwLjIgMzcuNkMxMjcuMyAyMzQuNyA5NiAyOTEuMiA5NiAzNTJsMCA4YzAgOC45IC44IDE3LjYgMi4yIDI2LjEgMzUuNCA4LjIgNjEuOCA0MCA2MS44IDc3LjkgMCA2LjMtLjcgMTIuNS0yLjEgMTguNCAyNS4yIDE4LjYgNTYuNCAyOS42IDkwLjEgMjkuNmwxNzYgMGMxMy4zIDAgMjQtMTAuNyAyNC0yNHMtMTAuNy0yNC0yNC0yNGwtOTIgMGMtNi42IDAtMTItNS40LTEyLTEyczUuNC0xMiAxMi0xMmwxMjQgMGMxMy4zIDAgMjQtMTAuNyAyNC0yNHMtMTAuNy0yNC0yNC0yNGwtMTI0IDBjLTYuNiAwLTEyLTUuNC0xMi0xMnM1LjQtMTIgMTItMTJsMTU2IDBjMTMuMyAwIDI0LTEwLjcgMjQtMjRzLTEwLjctMjQtMjQtMjRsLTE1NiAwYy02LjYgMC0xMi01LjQtMTItMTJzNS40LTEyIDEyLTEybDEyNCAwYzEzLjMgMCAyNC0xMC43IDI0LTI0cy0xMC43LTI0LTI0LTI0bC0xMzYgMCAwIDAgMCAwLTkzLjIgMCA0Ni4yLTI4LjljMTUtOS40IDE5LjUtMjkuMSAxMC4yLTQ0LjF6Il19LGlndD1Pc2UsYWd0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6Im1hcmtlciIsaWNvbjpbNTEyLDUxMixbXSwiZjVhMSIsIk00MDguOCAwYy0yNy40IDAtNTMuNiAxMC45LTczIDMwLjJMMzE4LjEgNDggMzA1IDM0LjljLTI4LjEtMjguMS03My43LTI4LjEtMTAxLjggMEwxMDMgMTM1Yy05LjQgOS40LTkuNCAyNC42IDAgMzMuOXMyNC42IDkuNCAzMy45IDBMMjM3LjEgNjguOWM5LjQtOS40IDI0LjYtOS40IDMzLjkgMEwyODQuMSA4MS45IDE4NCAxODIuMSAzMjkuOSAzMjggNDgxLjggMTc2LjJjMTkuNC0xOS40IDMwLjItNDUuNiAzMC4yLTczIDAtNTctNDYuMi0xMDMuMi0xMDMuMi0xMDMuMnpNMTAyLjQgMjYzLjdjLTQ5LjkgNDkuOS04My4zIDExNC05NS41IDE4My41TC40IDQ4My44Qy0xIDQ5MS42IDEuNSA0OTkuNCA3IDUwNXMxMy40IDggMjEuMSA2LjdsMzYuNy02LjVjNjkuNS0xMi4zIDEzMy42LTQ1LjYgMTgzLjUtOTUuNUwyOTYgMzYxLjkgMTUwLjEgMjE2IDEwMi40IDI2My43eiJdfSxuZ3Q9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiY2xpcGJvYXJkIixpY29uOlszODQsNTEyLFsxMjgyMDNdLCJmMzI4IiwiTTMyMCAzMmwtOC42IDBDMzAwLjQgMTIuOSAyNzkuNyAwIDI1NiAwTDEyOCAwQzEwNC4zIDAgODMuNiAxMi45IDcyLjYgMzJMNjQgMzJDMjguNyAzMiAwIDYwLjcgMCA5NkwwIDQ0OGMwIDM1LjMgMjguNyA2NCA2NCA2NGwyNTYgMGMzNS4zIDAgNjQtMjguNyA2NC02NGwwLTM1MmMwLTM1LjMtMjguNy02NC02NC02NHpNMTM2IDExMmMtMTMuMyAwLTI0LTEwLjctMjQtMjRzMTAuNy0yNCAyNC0yNGwxMTIgMGMxMy4zIDAgMjQgMTAuNyAyNCAyNHMtMTAuNyAyNC0yNCAyNGwtMTEyIDB6Il19LG9ndD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJwbGFjZS1vZi13b3JzaGlwIixpY29uOls1MTIsNTEyLFtdLCJmNjdmIiwiTTE2MCA3OWwwIDgxLTQ0LjggMzMuNkMxMDMuMSAyMDIuNyA5NiAyMTYuOSA5NiAyMzJsMCA0MC02MC42IDMwLjNDMTMuNyAzMTMuMiAwIDMzNS4zIDAgMzU5LjZMMCA0NDhjMCAzNS4zIDI4LjcgNjQgNjQgNjQgNzQuNyAwIDg1LjQgMCAzMjAgMGw2NCAwYzM1LjMgMCA2NC0yOC43IDY0LTY0bDAtODguNGMwLTI0LjItMTMuNy00Ni40LTM1LjQtNTcuMkw0MTYgMjcyIDQxNiAyMzJjMC0xNS4xLTcuMS0yOS4zLTE5LjItMzguNEwzNTIgMTYwIDM1MiA3OWMwLTkuNS00LjItMTguNS0xMS41LTI0LjZMMjcxLjQtMy4yYy04LjktNy40LTIxLjgtNy40LTMwLjcgMEwxNzEuNSA1NC40QzE2NC4yIDYwLjUgMTYwIDY5LjUgMTYwIDc5em05NiAyNDFjMzUuMyAwIDY0IDI4LjcgNjQgNjRsMCA4MC0xMjggMCAwLTgwYzAtMzUuMyAyOC43LTY0IDY0LTY0eiJdfSxzZ3Q9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiY2FubmFiaXMiLGljb246WzUxMiw1MTIsW10sImY1NWYiLCJNMjU2IDBjNS4zIDAgMTAuMyAyLjcgMTMuMyA3LjEgMTUuOCAyMy41IDM2LjcgNjMuNyA0OS4yIDEwOSA3LjMgMjYuNCAxMS44IDU1LjMgMTAuMyA4NCAxMS42LTguOSAyMy43LTE2LjcgMzUuOS0yMy43IDQxLTIzLjMgODQuNC0zNi45IDExMi4yLTQyLjUgNS4yLTEgMTAuNyAuNiAxNC40IDQuNHM1LjQgOS4yIDQuNCAxNC41Yy01LjYgMjcuNy0xOS4zIDcwLjktNDIuNyAxMTEuNy05LjEgMTUuOS0xOS45IDMxLjctMzIuNSA0Ni4zIDI3LjkgNi42IDUyLjUgMTcuMiA2Ny4zIDI1LjQgNS4xIDIuOCA4LjIgOC4yIDguMiAxNHMtMy4yIDExLjItOC4yIDE0Yy0xNS4yIDguNC00MC45IDE5LjUtNjkuOCAyNi4xLTIwLjIgNC42LTQyLjkgNy4yLTY1LjIgNC42bDguMyAzMy4yYzEuNSA2LjEtLjYgMTIuNS01LjUgMTYuNHMtMTEuNiA0LjYtMTcuMiAxLjhMMjgwIDQxNy4yIDI4MCA0ODhjMCAxMy4zLTEwLjcgMjQtMjQgMjRzLTI0LTEwLjctMjQtMjRsMC03MC44LTU4LjUgMjkuMWMtNS42IDIuOC0xMi4zIDIuMS0xNy4yLTEuOHMtNy0xMC4zLTUuNS0xNi40bDguMy0zMy4yYy0yMi4yIDIuNi00NSAwLTY1LjItNC42LTI4LjktNi42LTU0LjUtMTcuNi02OS44LTI2LjEtNS4xLTIuOC04LjItOC4yLTguMi0xNHMzLjItMTEuMiA4LjItMTRsNi4yLTMuM2MxNS03LjYgMzYuOC0xNi40IDYxLjEtMjIuMi0xMi41LTE0LjUtMjMuMy0zMC40LTMyLjQtNDYuMi0yMy40LTQwLjgtMzcuMS04NC00Mi43LTExMS43LTEuMS01LjIgLjYtMTAuNyA0LjQtMTQuNXM5LjItNS40IDE0LjQtNC40YzI3LjkgNS41IDcxLjIgMTkuMiAxMTIuMiA0Mi41IDEyLjIgNi45IDI0LjMgMTQuOCAzNS44IDIzLjctMS40LTI4LjcgMy4xLTU3LjYgMTAuMy04NCAxMi41LTQ1LjMgMzMuNC04NS41IDQ5LjItMTA5bDEuMi0xLjZDMjQ2LjkgMiAyNTEuMyAwIDI1NiAweiJdfSxsZ3Q9e3ByZWZpeDoiZmFzIixpY29uTmFtZToicGVvcGxlLXJvb2YiLGljb246WzU3Niw1MTIsW10sImU1MzciLCJNMzAyLjMtMTIuNmMtOS00LjUtMTkuNi00LjUtMjguNiAwbC0yNTYgMTI4QzEuOSAxMjMuMy00LjUgMTQyLjUgMy40IDE1OC4zczI3LjEgMjIuMiA0Mi45IDE0LjNMMjg4IDUxLjggNTI5LjcgMTcyLjZjMTUuOCA3LjkgMzUgMS41IDQyLjktMTQuM3MxLjUtMzUtMTQuMy00Mi45bC0yNTYtMTI4ek0yODggMjcyYTU2IDU2IDAgMSAwIDAtMTEyIDU2IDU2IDAgMSAwIDAgMTEyem0wIDQ4Yy01MyAwLTk2IDQzLTk2IDk2bDAgMzJjMCAxNy43IDE0LjMgMzIgMzIgMzJsMTI4IDBjMTcuNyAwIDMyLTE0LjMgMzItMzJsMC0zMmMwLTUzLTQzLTk2LTk2LTk2ek0xNjAgMjU2YTQ4IDQ4IDAgMSAwIC05NiAwIDQ4IDQ4IDAgMSAwIDk2IDB6bTM1MiAwYTQ4IDQ4IDAgMSAwIC05NiAwIDQ4IDQ4IDAgMSAwIDk2IDB6TTExMiAzMzZjLTQ0LjIgMC04MCAzNS44LTgwIDgwbDAgMzMuMWMwIDE3IDEzLjggMzAuOSAzMC45IDMwLjlsODcuOCAwYy00LjMtOS44LTYuNy0yMC42LTYuNy0zMmwwLTQ4YzAtMTguNCAzLjUtMzYgOS44LTUyLjItMTIuMi03LjUtMjYuNS0xMS44LTQxLjgtMTEuOHpNNDI1LjQgNDgwbDg3LjggMGMxNyAwIDMwLjktMTMuOCAzMC45LTMwLjlsMC0zMy4xYzAtNDQuMi0zNS44LTgwLTgwLTgwLTE1LjMgMC0yOS42IDQuMy00MS44IDExLjggNi4zIDE2LjIgOS44IDMzLjggOS44IDUyLjJsMCA0OGMwIDExLjQtMi40IDIyLjItNi43IDMyeiJdfSxjZ3Q9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZGlzZWFzZSIsaWNvbjpbNTEyLDUxMixbXSwiZjdmYSIsIk0yMzYuNSAyOS40TDIyNCA0OGMtMjAgMzAtNTMuNiA0OC04OS43IDQ4TDY4IDk2Yy0zNy41IDAtNjcuOSAzMC40LTY3LjkgNjcuOSAwIDE4IDcuMiAzNS4yIDE5LjkgNDcuOWwyNyAyN2MxMSAxMSAxNy4yIDI1LjkgMTcuMiA0MS41IDAgMTUuOC02LjQgMzAuOS0xNy43IDQyTDMzLjQgMzM1LjFjLTExLjEgMTAuOC0xNy4zIDI1LjctMTcuMyA0MS4yIDAgMzYuOCAzNC4xIDY0LjIgNzAuMSA1Ni4ybDYyLjMtMTMuOGM3LjctMS43IDE1LjctMi42IDIzLjYtMi42IDMyLjggMCA2NC4yIDE0LjYgODUuMiAzOS44bDMwLjUgMzYuNmMxMC40IDEyLjQgMjUuNyAxOS42IDQxLjkgMTkuNiAzMC4xIDAgNTQuNS0yNC40IDU0LjUtNTQuNWwwLTUxLjJjMC00MS40IDI1LjQtNzguNSA2NC05My41bDIyLjItOC42YzI1LjItOS44IDQxLjgtMzQuMSA0MS44LTYxLjEgMC0yNi40LTE1LjktNTAuMy00MC4zLTYwLjVMNDI5IDE2NC44Yy0zMy4yLTEzLjktNTcuNi00My02NS41LTc4LjFsLTcuOS0zNS4yYy02LjgtMzAuMS0zMy41LTUxLjUtNjQuMy01MS41LTIyIDAtNDIuNiAxMS01NC44IDI5LjR6TTE2MCAxOTJhMzIgMzIgMCAxIDEgMCA2NCAzMiAzMiAwIDEgMSAwLTY0em05NiAwYTMyIDMyIDAgMSAxIDY0IDAgMzIgMzIgMCAxIDEgLTY0IDB6bTMyIDk2YTMyIDMyIDAgMSAxIDAgNjQgMzIgMzIgMCAxIDEgMC02NHoiXX0sUnNlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImJvb2stYmlibGUiLGljb246WzQ0OCw1MTIsWyJiaWJsZSJdLCJmNjQ3IiwiTTk2IDUxMmMtNTMgMC05Ni00My05Ni05NkwwIDk2QzAgNDMgNDMgMCA5NiAwTDQwMCAwYzI2LjUgMCA0OCAyMS41IDQ4IDQ4bDAgMjg4YzAgMjAuOS0xMy40IDM4LjctMzIgNDUuM2wwIDY2LjdjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJMOTYgNTEyem0wLTEyOGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJzMTQuMyAzMiAzMiAzMmwyNTYgMCAwLTY0LTI1NiAwek0xOTIgODBsMCA0OC00OCAwYy04LjggMC0xNiA3LjItMTYgMTZsMCAzMmMwIDguOCA3LjIgMTYgMTYgMTZsNDggMCAwIDExMmMwIDguOCA3LjIgMTYgMTYgMTZsMzIgMGM4LjggMCAxNi03LjIgMTYtMTZsMC0xMTIgNDggMGM4LjggMCAxNi03LjIgMTYtMTZsMC0zMmMwLTguOC03LjItMTYtMTYtMTZsLTQ4IDAgMC00OGMwLTguOC03LjItMTYtMTYtMTZsLTMyIDBjLTguOCAwLTE2IDcuMi0xNiAxNnoiXX0sZGd0PVJzZSx1Z3Q9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiY2hlc3MtYm9hcmQiLGljb246WzQ0OCw1MTIsW10sImY0M2MiLCJNNjQgMzJDMjguNyAzMiAwIDYwLjcgMCA5NkwwIDQxNmMwIDM1LjMgMjguNyA2NCA2NCA2NGwzMjAgMGMzNS4zIDAgNjQtMjguNyA2NC02NGwwLTMyMGMwLTM1LjMtMjguNy02NC02NC02NEw2NCAzMnptNjQgNjRsMCA2NCA2NCAwIDAtNjQgNjQgMCAwIDY0IDY0IDAgMC02NCA2NCAwIDAgNjQtNjQgMCAwIDY0IDY0IDAgMCA2NC02NCAwIDAgNjQgNjQgMCAwIDY0LTY0IDAgMC02NC02NCAwIDAgNjQtNjQgMCAwLTY0LTY0IDAgMCA2NC02NCAwIDAtNjQgNjQgMCAwLTY0LTY0IDAgMC02NCA2NCAwIDAtNjQtNjQgMCAwLTY0IDY0IDB6bTY0IDEyOGw2NCAwIDAtNjQtNjQgMCAwIDY0em0wIDY0bDAtNjQtNjQgMCAwIDY0IDY0IDB6bTY0IDBsLTY0IDAgMCA2NCA2NCAwIDAtNjR6bTAgMGw2NCAwIDAtNjQtNjQgMCAwIDY0eiJdfSxwZ3Q9e3ByZWZpeDoiZmFzIixpY29uTmFtZToibWFycyIsaWNvbjpbNTEyLDUxMixbOTc5NF0sImYyMjIiLCJNMzIwIDMyYzAtMTcuNyAxNC4zLTMyIDMyLTMyTDQ4MCAwYzE3LjcgMCAzMiAxNC4zIDMyIDMybDAgMTI4YzAgMTcuNy0xNC4zIDMyLTMyIDMycy0zMi0xNC4zLTMyLTMybDAtNTAuNy05NSA5NWMxOS41IDI4LjQgMzEgNjIuNyAzMSA5OS44IDAgOTcuMi03OC44IDE3Ni0xNzYgMTc2UzMyIDQwMS4yIDMyIDMwNCAxMTAuOCAxMjggMjA4IDEyOGMzNyAwIDcxLjQgMTEuNCA5OS44IDMxbDk1LTk1LTUwLjcgMGMtMTcuNyAwLTMyLTE0LjMtMzItMzJ6TTIwOCA0MTZhMTEyIDExMiAwIDEgMCAwLTIyNCAxMTIgMTEyIDAgMSAwIDAgMjI0eiJdfSxoZ3Q9e3ByZWZpeDoiZmFzIixpY29uTmFtZToibGFwdG9wIixpY29uOls2NDAsNTEyLFsxMjgxODddLCJmMTA5IiwiTTEyOCAzMkM5Mi43IDMyIDY0IDYwLjcgNjQgOTZsMCAyNDAgNjQgMCAwLTI0MCAzODQgMCAwIDI0MCA2NCAwIDAtMjQwYzAtMzUuMy0yOC43LTY0LTY0LTY0TDEyOCAzMnpNMTkuMiAzODRDOC42IDM4NCAwIDM5Mi42IDAgNDAzLjIgMCA0NDUuNiAzNC40IDQ4MCA3Ni44IDQ4MGw0ODYuNCAwYzQyLjQgMCA3Ni44LTM0LjQgNzYuOC03Ni44IDAtMTAuNi04LjYtMTkuMi0xOS4yLTE5LjJMMTkuMiAzODR6Il19LEJzZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJ1c2VyLXhtYXJrIixpY29uOls1NzYsNTEyLFsidXNlci10aW1lcyJdLCJmMjM1IiwiTTI1NC4xIDMwNGM5OC41IDAgMTc4LjMgNzkuOCAxNzguMyAxNzguMyAwIDE2LjQtMTMuMyAyOS43LTI5LjcgMjkuN0w0Ni4xIDUxMmMtMTYuNCAwLTI5LjctMTMuMy0yOS43LTI5LjcgMC05OC41IDc5LjgtMTc4LjMgMTc4LjMtMTc4LjNsNTkuNCAwek01MzAuMyAxMDguMWM5LjQtOS40IDI0LjYtOS40IDMzLjkgMHM5LjQgMjQuNiAwIDMzLjlsLTMzLjkgMzMuOSAzMy45IDMzLjljOS40IDkuNCA5LjQgMjQuNiAwIDMzLjlzLTI0LjYgOS40LTMzLjkgMGwtMzMuOS0zMy45LTMzLjkgMzMuOWMtOS40IDkuNC0yNC42IDkuNC0zMy45IDBzLTkuNC0yNC42IDAtMzMuOWwzMy45LTMzLjktMzMuOS0zMy45Yy05LjQtOS40LTkuNC0yNC42IDAtMzMuOXMyNC42LTkuNCAzMy45IDBsMzMuOSAzMy45IDMzLjktMzMuOXpNMjI0LjQgMjQ4YTEyMCAxMjAgMCAxIDEgMC0yNDAgMTIwIDEyMCAwIDEgMSAwIDI0MHoiXX0sZmd0PUJzZSxtZ3Q9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZmxhZy11c2EiLGljb246WzQ0OCw1MTIsW10sImY3NGQiLCJNMzIgMEM0OS43IDAgNjQgMTQuMyA2NCAzMmwwIDE2IDY5LTE3LjJjMzguMS05LjUgNzguMy01LjEgMTEzLjUgMTIuNSA0Ni4zIDIzLjIgMTAwLjggMjMuMiAxNDcuMSAwbDkuNi00LjhDNDIzLjggMjguMSA0NDggNDMuMSA0NDggNjYuMWwwIDM2LjEtNDQuNyAxNi4yYy00Mi44IDE1LjYtOTAgMTMuOS0xMzEuNi00LjZsLTE2LjEtNy4yYy0yMC4zLTktNDEuOC0xNC43LTYzLjYtMTYuOWwwIDMyLjJjMTcuNCAyLjEgMzQuNCA2LjcgNTAuNiAxMy45bDE2LjEgNy4yYzQ5LjIgMjEuOSAxMDUgMjMuOCAxNTUuNiA1LjRsMzMuNy0xMi4zIDAgNjItNDQuNyAxNi4yYy00Mi44IDE1LjYtOTAgMTMuOS0xMzEuNi00LjZsLTE2LjEtNy4yYy00MC4yLTE3LjktODUtMjIuNS0xMjguMS0xMy4zbC02My41IDEzLjYgMCAzMi43IDcwLjItMTUuMWMzNi40LTcuOCA3NC4zLTMuOSAxMDguNCAxMS4zbDE2LjEgNy4yYzQ5LjIgMjEuOSAxMDUgMjMuOCAxNTUuNiA1LjRsMzMuNy0xMi4zIDAgNjEuOS00NC43IDE2LjJjLTQyLjggMTUuNi05MCAxMy45LTEzMS42LTQuNmwtMTYuMS03LjJjLTQwLjItMTcuOS04NS0yMi41LTEyOC4xLTEzLjNsLTYzLjUgMTMuNiAwIDMyLjcgNzAuMi0xNS4xYzM2LjQtNy44IDc0LjMtMy45IDEwOC40IDExLjNsMTYuMSA3LjJjNDkuMiAyMS45IDEwNSAyMy44IDE1NS42IDUuNGwzMy43LTEyLjMgMCAzMy41YzAgMTMuMy04LjMgMjUuMy0yMC44IDMwbC0zNC43IDEzYy00Ni4yIDE3LjMtOTcuNiAxNC42LTE0MS43LTcuNC0zNy45LTE5LTgxLjQtMjMuNy0xMjIuNS0xMy40TDY0IDQwMCA2NCA0ODBjMCAxNy43LTE0LjMgMzItMzIgMzJTMCA0OTcuNyAwIDQ4MEwwIDMyQzAgMTQuMyAxNC4zIDAgMzIgMHptODAgOTZhMTYgMTYgMCAxIDAgLTMyIDAgMTYgMTYgMCAxIDAgMzIgMHptMzIgMGExNiAxNiAwIDEgMCAwLTMyIDE2IDE2IDAgMSAwIDAgMzJ6bS0zMiA0OGExNiAxNiAwIDEgMCAtMzIgMCAxNiAxNiAwIDEgMCAzMiAwem0zMiAwYTE2IDE2IDAgMSAwIDAtMzIgMTYgMTYgMCAxIDAgMCAzMnoiXX0sZ2d0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImhhbmQtbWlkZGxlLWZpbmdlciIsaWNvbjpbNDQ4LDUxMixbMTI4NDA1XSwiZjgwNiIsIk0yMzIgMGMtMjIuMSAwLTQwIDE3LjktNDAgNDBsMCAxNjQuMmMtOC41LTcuNi0xOS43LTEyLjItMzItMTIuMi0yNi41IDAtNDggMjEuNS00OCA0OGwwIDgwYzAgOC44LTcuMiAxNi0xNiAxNnMtMTYtNy4yLTE2LTE2bDAtNTUuN2MtMiAxLjQtMy45IDMtNS44IDQuNUw1NSAyODQuOEM0MC40IDI5NyAzMiAzMTUgMzIgMzM0TDMyIDM3MmMwIDM4IDE2LjkgNzQgNDYuMSA5OC4zbDUuNCA0LjVjMjguOCAyNCA2NSAzNy4xIDEwMi40IDM3LjFMMzA0IDUxMmM3MC43IDAgMTI4LTU3LjMgMTI4LTEyOGwwLTk2YzAtMjYuNS0yMS41LTQ4LTQ4LTQ4LTEyLjQgMC0yMy42IDQuNy0zMi4xIDEyLjMtMS45LTI0LjgtMjIuNi00NC4zLTQ3LjktNDQuMy0xMi4zIDAtMjMuNSA0LjYtMzIgMTIuMkwyNzIgNDBjMC0yMi4xLTE3LjktNDAtNDAtNDB6Il19LGJndD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJtb3J0YXItcGVzdGxlIixpY29uOls1MTIsNTEyLFtdLCJmNWE3IiwiTTUwNC4zIDExLjFDNDkzLjMtMS42IDQ3NC41LTMuNyA0NjEgNi4yTDI1Mi4zIDE2MCAzOTcuMyAxNjAgNTAyLjYgNTQuNmMxMS44LTExLjggMTIuNi0zMC44IDEuNi00My41ek0zMiAxOTJjLTE3LjcgMC0zMiAxNC4zLTMyIDMyczE0LjMgMzIgMzIgMzJjMCA4Mi41IDQzLjQgMTQ3LjcgMTIzLjkgMTc2LjItMTEuMSAxMy45LTE5LjQgMzAuMy0yMy45IDQ4LjEtNC40IDE3LjEgMTAuNCAzMS43IDI4LjEgMzEuN2wxOTIgMGMxNy43IDAgMzIuNC0xNC42IDI4LjEtMzEuNy00LjUtMTcuOC0xMi44LTM0LjEtMjMuOS00OC4xIDgwLjUtMjguNiAxMjMuOS05My43IDEyMy45LTE3Ni4yIDE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMyTDMyIDE5MnoiXX0sdmd0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImhlYWQtc2lkZS1jb3VnaCIsaWNvbjpbNTEyLDUxMixbXSwiZTA2MSIsIk05NiA1MTJsNjQgMGM1MyAwIDk2LTQzIDk2LTk2bDAtODBjMC04LjggNy4yLTE2IDE2LTE2bDEgMGMyNiAwIDQ3LTIxIDQ3LTQ3IDAtMTEtMy45LTIxLjYtMTAuOS0zMC4xTDI3My4zIDIwMEMyNzEuNCAxOTcuNiAyNzAuMSAxOTQuNyAyNjkuNyAxOTEuNyAyNTQgODMuMyAxNjAuNyAwIDQ4IDAgNDAuNCAwIDMyLjkgLjQgMjUuNCAxLjEgMTAuNSAyLjYgMCAxNS45IDAgMzAuOUwwIDQ4MGMwIDE3LjcgMTQuMyAzMiAzMiAzMmw2NCAwem0xNi0zMjBhMzIgMzIgMCAxIDEgNjQgMCAzMiAzMiAwIDEgMSAtNjQgMHptNjMuMSAyMzcuMmwtNDEuNS0zLjVjLTEyLjItMS0yMS42LTExLjItMjEuNi0yMy40IDAtMTAuOCA3LjMtMjAuMiAxNy44LTIyLjhsNDAuNC0xMC4xYzE5LjItNC44IDM3LjggOS43IDM3LjggMjkuNSAwIDE3LjgtMTUuMiAzMS44LTMyLjkgMzAuM3pNNDgwIDMxMmEyNCAyNCAwIDEgMCAwLTQ4IDI0IDI0IDAgMSAwIDAgNDh6bS00MCAyNGEyNCAyNCAwIDEgMCAtNDggMCAyNCAyNCAwIDEgMCA0OCAwem0tNjQgNDhhMjQgMjQgMCAxIDAgLTQ4IDAgMjQgMjQgMCAxIDAgNDggMHptMTI4IDBhMjQgMjQgMCAxIDAgLTQ4IDAgMjQgMjQgMCAxIDAgNDggMHpNNDgwIDUwNGEyNCAyNCAwIDEgMCAwLTQ4IDI0IDI0IDAgMSAwIDAgNDh6bS00MC03MmEyNCAyNCAwIDEgMCAtNDggMCAyNCAyNCAwIDEgMCA0OCAweiJdfSx4Z3Q9e3ByZWZpeDoiZmFzIixpY29uTmFtZToicGxhbmUtbG9jayIsaWNvbjpbNjQwLDUxMixbXSwiZTU1OCIsIk0yMzIgMjRjMC0zMC45IDI1LjEtNTYgNTYtNTZzNTYgMjUuMSA1NiA1NmwwIDEyNy4zIDgyLjEgNzUuMkM0MDkuNyAyNDguMSA0MDAgMjc0LjkgNDAwIDMwNGwwIDI0LjRjLTcuMyA2LjYtMTMuNiAxNC4yLTE4LjcgMjIuN2wtMzcuMy0xMi40IDAgOTkuNyAyNCAxOS4yIDAgMzguM2MwIDEzLjUgMi44IDI2LjQgNy44IDM4LjFMMjg4IDUxMiAxNzkuOSA1MzljLTEwLjEgMi41LTE5LjktNS4xLTE5LjktMTUuNWwwLTE5LjhjMC00LjkgMi4yLTkuNSA2LTEyLjVsNjYtNTIuOCAwLTk5LjctMTYyLjkgNTQuM0M1OC43IDM5Ni40IDQ4IDM4OC43IDQ4IDM3Ny44bDAtNDMuN2MwLTkgMy44LTE3LjUgMTAuNC0yMy42TDIzMiAxNTEuMyAyMzIgMjR6TTU2MCAzMDQuMWMwLTE3LjctMTQuMy0zMi0zMi0zMnMtMzIgMTQuMy0zMiAzMmwwIDQ3LjkgNjQgMCAwLTQ3Ljl6TTQxNiA0MDBjMC0yMC45IDEzLjQtMzguNyAzMi00NS4zbDAtNTAuNmMwLTQ0LjIgMzUuOC04MCA4MC04MHM4MCAzNS44IDgwIDgwbDAgNTAuNmMxOC42IDYuNiAzMiAyNC40IDMyIDQ1LjNsMCA5NmMwIDI2LjUtMjEuNSA0OC00OCA0OGwtMTI4IDBjLTI2LjUgMC00OC0yMS41LTQ4LTQ4bDAtOTZ6Il19LEhzZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJiYXR0ZXJ5LXRocmVlLXF1YXJ0ZXJzIixpY29uOls2NDAsNTEyLFsiYmF0dGVyeS00Il0sImYyNDEiLCJNNTI4IDEyOGM4LjggMCAxNiA3LjIgMTYgMTZsMCAyMjRjMCA4LjgtNy4yIDE2LTE2IDE2bC00MTYgMGMtOC44IDAtMTYtNy4yLTE2LTE2bDAtMjI0YzAtOC44IDcuMi0xNiAxNi0xNmw0MTYgMHpNMTEyIDY0Yy00NC4yIDAtODAgMzUuOC04MCA4MGwwIDIyNGMwIDQ0LjIgMzUuOCA4MCA4MCA4MGw0MTYgMGM0NC4yIDAgODAtMzUuOCA4MC04MGwwLTQ4YzE3LjcgMCAzMi0xNC4zIDMyLTMybDAtNjRjMC0xNy43LTE0LjMtMzItMzItMzJsMC00OGMwLTQ0LjItMzUuOC04MC04MC04MEwxMTIgNjR6bTU2IDExMmMtMTMuMyAwLTI0IDEwLjctMjQgMjRsMCAxMTJjMCAxMy4zIDEwLjcgMjQgMjQgMjRsMjI0IDBjMTMuMyAwIDI0LTEwLjcgMjQtMjRsMC0xMTJjMC0xMy4zLTEwLjctMjQtMjQtMjRsLTIyNCAweiJdfSx5Z3Q9SHNlLHdndD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJmcmFuYy1zaWduIixpY29uOlszMjAsNTEyLFtdLCJlMThmIiwiTTgwIDMyQzYyLjMgMzIgNDggNDYuMyA0OCA2NGwwIDI1Ni0yNCAwYy0xMy4zIDAtMjQgMTAuNy0yNCAyNHMxMC43IDI0IDI0IDI0bDI0IDAgMCA4MGMwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMybDAtODAgODggMGMxMy4zIDAgMjQtMTAuNyAyNC0yNHMtMTAuNy0yNC0yNC0yNGwtODggMCAwLTY0IDE0NCAwYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMybC0xNDQgMCAwLTk2IDE3NiAwYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMyTDgwIDMyeiJdfSxxc2U9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZmlsdGVyLWNpcmNsZS1kb2xsYXIiLGljb246WzU3Niw1MTIsWyJmdW5uZWwtZG9sbGFyIl0sImY2NjIiLCJNMzIgNjRDMTkuMSA2NCA3LjQgNzEuOCAyLjQgODMuOFMuMiAxMDkuNSA5LjQgMTE4LjZMMTkyIDMwMS4zIDE5MiA0MTZjMCA4LjUgMy40IDE2LjYgOS40IDIyLjZsNjQgNjRjMi41IDIuNSA1LjMgNC41IDguMyA2LTIxLjItMzAuOS0zMy42LTY4LjMtMzMuNi0xMDguNiAwLTk5LjQgNzUuNS0xODEuMSAxNzIuMy0xOTFsOTAuNC05MC40YzkuMi05LjIgMTEuOS0yMi45IDYuOS0zNC45UzQ5Mi45IDY0IDQ4MCA2NEwzMiA2NHpNNTc2IDQwMGExNDQgMTQ0IDAgMSAwIC0yODggMCAxNDQgMTQ0IDAgMSAwIDI4OCAwek00MTYgMzIwYzAtOC44IDcuMi0xNiAxNi0xNnMxNiA3LjIgMTYgMTZsMCA4IDE2IDBjOC44IDAgMTYgNy4yIDE2IDE2cy03LjIgMTYtMTYgMTZsLTQ1LjggMGMtNS42IDAtMTAuMiA0LjYtMTAuMiAxMC4yIDAgNC45IDMuNSA5LjEgOC4zIDEwbDQ1IDguMmMyMCAzLjYgMzQuNiAyMS4xIDM0LjYgNDEuNSAwIDIzLjMtMTguOSA0Mi4yLTQyLjIgNDIuMmwtNS44IDAgMCA4YzAgOC44LTcuMiAxNi0xNiAxNnMtMTYtNy4yLTE2LTE2bDAtOC0xNiAwYy04LjggMC0xNi03LjItMTYtMTZzNy4yLTE2IDE2LTE2bDUzLjggMGM1LjYgMCAxMC4yLTQuNiAxMC4yLTEwLjIgMC00LjktMy41LTkuMS04LjMtMTBsLTQ1LTguMmMtMjAtMy42LTM0LjYtMjEuMS0zNC42LTQxLjUgMC0yMi42IDE3LjctNDEgNDAtNDIuMWwwLTguMXoiXX0sTWd0PXFzZSxrZ3Q9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiY2hlZXNlIixpY29uOls1MTIsNTEyLFtdLCJmN2VmIiwiTTUxMiAyNDAuMmwwIDE1LjgtNTEyIDBjMC0yMCAxMC0zOC43IDI2LjYtNDkuOEwyNzQuOSA0MC43YzguNi01LjcgMTguNi04LjcgMjguOS04LjcgMTE1IDAgMjA4LjIgOTMuMiAyMDguMiAyMDguMnptMCA2My44bDAgMTEyYzAgMzUuMy0yOC43IDY0LTY0IDY0TDY0IDQ4MGMtMzUuMyAwLTY0LTI4LjctNjQtNjRsMC0xMTIgNTEyIDB6Il19LGpzZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJjaXJjbGUtaCIsaWNvbjpbNTEyLDUxMixbOTQwNSwiaG9zcGl0YWwtc3ltYm9sIl0sImY0N2UiLCJNMjU2IDUxMmEyNTYgMjU2IDAgMSAwIDAtNTEyIDI1NiAyNTYgMCAxIDAgMCA1MTJ6bTk2LTM0NGwwIDE3NmMwIDEzLjMtMTAuNyAyNC0yNCAyNHMtMjQtMTAuNy0yNC0yNGwwLTY0LTk2IDAgMCA2NGMwIDEzLjMtMTAuNyAyNC0yNCAyNHMtMjQtMTAuNy0yNC0yNGwwLTE3NmMwLTEzLjMgMTAuNy0yNCAyNC0yNHMyNCAxMC43IDI0IDI0bDAgNjQgOTYgMCAwLTY0YzAtMTMuMyAxMC43LTI0IDI0LTI0czI0IDEwLjcgMjQgMjR6Il19LFNndD1qc2Usemd0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InNjaG9vbCIsaWNvbjpbNTc2LDUxMixbMTI3OTc5XSwiZjU0OSIsIk0wIDE5MmMwLTM1LjMgMjguNy02NCA2NC02NGw2NCAwIDEyNy45LTExNS4xYzE4LjMtMTYuNCA0Ni0xNi40IDY0LjIgMEw0NDggMTI4IDUxMiAxMjhjMzUuMyAwIDY0IDI4LjcgNjQgNjRsMCAyNTZjMCAzNS4zLTI4LjcgNjQtNjQgNjRMNjQgNTEyYy0zNS4zIDAtNjQtMjguNy02NC02NEwwIDE5MnpNMjI0IDM3NmwwIDg4IDEyOCAwIDAtODhjMC0yMi4xLTE3LjktNDAtNDAtNDBsLTQ4IDBjLTIyLjEgMC00MCAxNy45LTQwIDQwem0tMTEyIDhjOC44IDAgMTYtNy4yIDE2LTE2bDAtMzJjMC04LjgtNy4yLTE2LTE2LTE2bC0zMiAwYy04LjggMC0xNiA3LjItMTYgMTZsMCAzMmMwIDguOCA3LjIgMTYgMTYgMTZsMzIgMHptMTYtMTQ0bDAtMzJjMC04LjgtNy4yLTE2LTE2LTE2bC0zMiAwYy04LjggMC0xNiA3LjItMTYgMTZsMCAzMmMwIDguOCA3LjIgMTYgMTYgMTZsMzIgMGM4LjggMCAxNi03LjIgMTYtMTZ6TTQ5NiAzODRjOC44IDAgMTYtNy4yIDE2LTE2bDAtMzJjMC04LjgtNy4yLTE2LTE2LTE2bC0zMiAwYy04LjggMC0xNiA3LjItMTYgMTZsMCAzMmMwIDguOCA3LjIgMTYgMTYgMTZsMzIgMHptMTYtMTQ0bDAtMzJjMC04LjgtNy4yLTE2LTE2LTE2bC0zMiAwYy04LjggMC0xNiA3LjItMTYgMTZsMCAzMmMwIDguOCA3LjIgMTYgMTYgMTZsMzIgMGM4LjggMCAxNi03LjIgMTYtMTZ6TTI4OCAyNTZhNjQgNjQgMCAxIDAgMC0xMjggNjQgNjQgMCAxIDAgMCAxMjh6Il19LENndD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJkaWNlLWZpdmUiLGljb246WzQ0OCw1MTIsWzk4NjBdLCJmNTIzIiwiTTY0IDMyQzI4LjcgMzIgMCA2MC43IDAgOTZMMCA0MTZjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMzIwIDBjMzUuMyAwIDY0LTI4LjcgNjQtNjRsMC0zMjBjMC0zNS4zLTI4LjctNjQtNjQtNjRMNjQgMzJ6bTY0IDk2YTMyIDMyIDAgMSAxIDAgNjQgMzIgMzIgMCAxIDEgMC02NHpNOTYgMzUyYTMyIDMyIDAgMSAxIDY0IDAgMzIgMzIgMCAxIDEgLTY0IDB6TTIyNCAyMjRhMzIgMzIgMCAxIDEgMCA2NCAzMiAzMiAwIDEgMSAwLTY0em02NC02NGEzMiAzMiAwIDEgMSA2NCAwIDMyIDMyIDAgMSAxIC02NCAwem0zMiAxNjBhMzIgMzIgMCAxIDEgMCA2NCAzMiAzMiAwIDEgMSAwLTY0eiJdfSxUZ3Q9e3ByZWZpeDoiZmFzIixpY29uTmFtZToidG9ybmFkbyIsaWNvbjpbNDQ4LDUxMixbMTI3Nzg2XSwiZjc2ZiIsIk0wIDMyTDAgNDUuNkMwIDYyLjcgMS43IDc5LjYgNSA5NmwzNTIuOCAwYzMuMi02LjkgNy41LTEzLjMgMTMtMTguOGwzOC42LTM4LjZjNC4yLTQuMiA2LjYtMTAgNi42LTE2IDAtMTIuNS0xMC4xLTIyLjYtMjIuNi0yMi42TDMyIDBDMTQuMyAwIDAgMTQuMyAwIDMyek0zNTUuNyAxNDRsLTMzNiAwYzEyLjQgMjkuNyAzMC4yIDU2LjggNTIuNyA4MGwzMzkuNiAwLTQ3LjItNjIuOWMtMy45LTUuMi03LTExLTkuMi0xNy4xek0yNDIuNiAzMzQuN2M4LjIgNC44IDE1LjggMTAuNyAyMi41IDE3LjNMNDQ1IDM1MmMyLTkuOCAzLTE5LjkgMy0zMC4xIDAtMTcuMS0yLjktMzQtOC42LTQ5LjlMMTM2IDI3MiAyNDIuNiAzMzQuN3pNMjk0LjMgNDAwYzUuMyAxNyA2LjUgMzUuMiAzLjYgNTNsLTUuOSAzNS43Yy0yIDEyLjIgNy40IDIzLjQgMTkuOCAyMy40IDUuMyAwIDEwLjQtMi4xIDE0LjItNS45bDc4LjItNzguMmM4LjUtOC41IDE1LjgtMTcuOCAyMS45LTI3LjlsLTEzMS44IDB6Il19LFZzZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJqZXQtZmlnaHRlciIsaWNvbjpbNTc2LDUxMixbImZpZ2h0ZXItamV0Il0sImYwZmIiLCJNNDk2LjIgMjA2LjhjLTEwLjctNC41LTIyLjItNi44LTMzLjgtNi44TDM2MiAyMDAgMjQ4IDQ4IDI5NiA0OGMxMy4zIDAgMjQtMTAuNyAyNC0yNFMzMDkuMyAwIDI5NiAwTDE1MiAwYy0xMy4zIDAtMjQgMTAuNy0yNCAyNHMxMC43IDI0IDI0IDI0bDggMCAwIDE1Mi01NC40IDAtNTIuOC02NmMtMy0zLjgtNy42LTYtMTIuNS02TDE2IDEyOGMtOC44IDAtMTYgNy4yLTE2IDE2bDAgODggNDAgMGMxMy4zIDAgMjQgMTAuNyAyNCAyNHMtMTAuNyAyNC0yNCAyNGwtNDAgMCAwIDg4YzAgOC44IDcuMiAxNiAxNiAxNmwyNC4zIDBjNC45IDAgOS41LTIuMiAxMi41LTZsNTIuOC02NiA1NC40IDAgMCAxNTItOCAwYy0xMy4zIDAtMjQgMTAuNy0yNCAyNHMxMC43IDI0IDI0IDI0bDE0NCAwYzEzLjMgMCAyNC0xMC43IDI0LTI0cy0xMC43LTI0LTI0LTI0bC00OCAwIDExNC0xNTIgMTAwLjQgMGMxMS42IDAgMjMuMS0yLjMgMzMuOC02LjhsNjUtMjcuMWM4LjktMy43IDE0LjgtMTIuNSAxNC44LTIyLjJzLTUuOC0xOC40LTE0LjgtMjIuMmwtNjUtMjcuMXoiXX0sX2d0PVZzZSxMZ3Q9e3ByZWZpeDoiZmFzIixpY29uTmFtZToidGh1bWJzLWRvd24iLGljb246WzUxMiw1MTIsWzEyODA3OCw2MTU3Nl0sImYxNjUiLCJNMzg0IDMyYzI2LjUgMCA0OCAyMS41IDQ4IDQ4IDAgNi4zLTEuMyAxMi4yLTMuNCAxNy43IDIwLjQgNS41IDM1LjQgMjQuMSAzNS40IDQ2LjMgMCA5LjEtMi42IDE3LjYtNyAyNC45IDIyLjIgNC4yIDM5IDIzLjcgMzkgNDcuMSAwIDE5LjctMTEuOSAzNi42LTI4LjkgNDQgMTcgNy40IDI4LjkgMjQuMyAyOC45IDQ0IDAgMjYuNS0yMS41IDQ4LTQ4IDQ4bC0xNjAgMCAyOC4yIDcwLjRjMi41IDYuMyAzLjggMTMuMSAzLjggMTkuOWwwIDQuMmMwIDI3LjMtMjIuMSA0OS40LTQ5LjQgNDkuNC0xOC43IDAtMzUuOC0xMC42LTQ0LjItMjcuM0wxNzAuMSAzNTYuM2MtNi43LTEzLjMtMTAuMS0yOC0xMC4xLTQyLjlsMC0xODYuNmMwLTE5LjQgOC45LTM3LjggMjQtNTBsMTIuMi05LjdDMjI0LjYgNDQuNCAyNTkuOCAzMiAyOTYuMSAzMkwzODQgMzJ6TTgwIDk2YzE3LjcgMCAzMiAxNC4zIDMyIDMybDAgMjU2YzAgMTcuNy0xNC4zIDMyLTMyIDMybC00OCAwYy0xNy43IDAtMzItMTQuMy0zMi0zMkwwIDEyOGMwLTE3LjcgMTQuMy0zMiAzMi0zMmw0OCAweiJdfSxBZ3Q9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiYnJvb20iLGljb246WzU3Niw1MTIsWzEyOTUyOV0sImY1MWEiLCJNNTY2LjYgNTQuNmMxMi41LTEyLjUgMTIuNS0zMi44IDAtNDUuM3MtMzIuOC0xMi41LTQ1LjMgMGwtMTkyIDE5Mi0zNC43LTM0LjdjLTQuMi00LjItMTAtNi42LTE2LTYuNi0xMi41IDAtMjIuNiAxMC4xLTIyLjYgMjIuNmwwIDI5LjEgMTA4LjMgMTA4LjMgMjkuMSAwYzEyLjUgMCAyMi42LTEwLjEgMjIuNi0yMi42IDAtNi0yLjQtMTEuOC02LjYtMTZsLTM0LjctMzQuNyAxOTItMTkyek0zNDEuMSAzNTMuNEwyMjIuNiAyMzQuOWMtNDIuNy0zLjctODUuMiAxMS43LTExNS44IDQyLjNsLTggOGMtMjIuMyAyMi4zLTM0LjggNTIuNS0zNC44IDg0IDAgNi44IDcuMSAxMS4yIDEzLjIgOC4ybDUxLjEtMjUuNWM1LTIuNSA5LjUgNC4xIDUuNCA3LjlMNy4zIDQ3My40QzIuNyA0NzcuNiAwIDQ4My42IDAgNDg5LjkgMCA1MDIuMSA5LjkgNTEyIDIyLjEgNTEybDE3My4zIDBjMzguOCAwIDc1LjktMTUuNCAxMDMuNC00Mi44IDMwLjYtMzAuNiA0NS45LTczLjEgNDIuMy0xMTUuOHoiXX0sVXNlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImZpbGUtaW1wb3J0IixpY29uOlszODQsNTEyLFsiYXJyb3ctcmlnaHQtdG8tZmlsZSJdLCJmNTZmIiwiTTY0IDBDMjguNyAwIDAgMjguNyAwIDY0bDAgMjQwIDE4Mi4xIDAtMzEtMzFjLTkuNC05LjQtOS40LTI0LjYgMC0zMy45czI0LjYtOS40IDMzLjkgMGw3MiA3MmM5LjQgOS40IDkuNCAyNC42IDAgMzMuOWwtNzIgNzJjLTkuNCA5LjQtMjQuNiA5LjQtMzMuOSAwcy05LjQtMjQuNiAwLTMzLjlsMzEtMzEtMTgyLjEgMCAwIDk2YzAgMzUuMyAyOC43IDY0IDY0IDY0bDI1NiAwYzM1LjMgMCA2NC0yOC43IDY0LTY0bDAtMjc3LjVjMC0xNy02LjctMzMuMy0xOC43LTQ1LjNMMjU4LjcgMTguN0MyNDYuNyA2LjcgMjMwLjUgMCAyMTMuNSAwTDY0IDB6TTMyNS41IDE3NkwyMzIgMTc2Yy0xMy4zIDAtMjQtMTAuNy0yNC0yNEwyMDggNTguNSAzMjUuNSAxNzZ6Il19LERndD1Vc2UsV3NlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InV0ZW5zaWxzIixpY29uOls1MTIsNTEyLFsxMjc4NjAsNjE2ODUsImN1dGxlcnkiXSwiZjJlNyIsIk02My45IDE0LjRDNjMuMSA2LjIgNTYuMiAwIDQ4IDBzLTE1LjEgNi4yLTE2IDE0LjNMMTcuOSAxNDkuN2MtMS4zIDYtMS45IDEyLjEtMS45IDE4LjIgMCA0NS45IDM1LjEgODMuNiA4MCA4Ny43TDk2IDQ4MGMwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMybDAtMjI0LjRjNDQuOS00LjEgODAtNDEuOCA4MC04Ny43IDAtNi4xLS42LTEyLjItMS45LTE4LjJMMjIzLjkgMTQuM0MyMjMuMSA2LjIgMjE2LjIgMCAyMDggMHMtMTUuMSA2LjItMTUuOSAxNC40TDE3OC41IDE0OS45Yy0uNiA1LjctNS40IDEwLjEtMTEuMSAxMC4xLTUuOCAwLTEwLjYtNC40LTExLjItMTAuMkwxNDMuOSAxNC42QzE0My4yIDYuMyAxMzYuMyAwIDEyOCAwcy0xNS4yIDYuMy0xNS45IDE0LjZMOTkuOCAxNDkuOGMtLjUgNS44LTUuNCAxMC4yLTExLjIgMTAuMi01LjggMC0xMC42LTQuNC0xMS4xLTEwLjFMNjMuOSAxNC40ek00NDggMEM0MzIgMCAzMjAgMzIgMzIwIDE3NmwwIDExMmMwIDM1LjMgMjguNyA2NCA2NCA2NGwzMiAwIDAgMTI4YzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJsMC00NDhjMC0xNy43LTE0LjMtMzItMzItMzJ6Il19LEVndD1Xc2UsJGd0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImlkLWJhZGdlIixpY29uOlszODQsNTEyLFtdLCJmMmMxIiwiTTY0IDBDMjguNyAwIDAgMjguNyAwIDY0TDAgNDQ4YzAgMzUuMyAyOC43IDY0IDY0IDY0bDI1NiAwYzM1LjMgMCA2NC0yOC43IDY0LTY0bDAtMzg0YzAtMzUuMy0yOC43LTY0LTY0LTY0TDY0IDB6bTk2IDM1Mmw2NCAwYzQ0LjIgMCA4MCAzNS44IDgwIDgwIDAgOC44LTcuMiAxNi0xNiAxNkw5NiA0NDhjLTguOCAwLTE2LTcuMi0xNi0xNiAwLTQ0LjIgMzUuOC04MCA4MC04MHptLTI0LTk2YTU2IDU2IDAgMSAxIDExMiAwIDU2IDU2IDAgMSAxIC0xMTIgMHpNMTUyIDY0bDgwIDBjMTMuMyAwIDI0IDEwLjcgMjQgMjRzLTEwLjcgMjQtMjQgMjRsLTgwIDBjLTEzLjMgMC0yNC0xMC43LTI0LTI0czEwLjctMjQgMjQtMjR6Il19LElndD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJzcGlkZXIiLGljb246WzUxMiw1MTIsWzEyODM3NV0sImY3MTciLCJNMzY5LjMtMzFjMTEuOS0zLjUgMjQuNCAyLjcgMjkgMTMuOWwuOCAyLjMgNDAgMTM2YzIuNSA4LjQgLjEgMTcuNS02LjEgMjMuN2wtNjQuMSA2NC4xIDc2LjQtMjAuOCAxOS45LTU5LjggLjktMi4zYzUtMTEuMSAxNy43LTE2LjggMjkuNS0xMi45IDExLjggMy45IDE4LjUgMTYuMSAxNS44IDI4bC0uNyAyLjQtMjQgNzJjLTIuNSA3LjYtOC43IDEzLjQtMTYuNSAxNS42bC05MS4xIDI0LjggOTEuMSAyNC44YzcuNyAyLjEgMTMuOSA4IDE2LjUgMTUuNmwyNCA3MiAuNyAyLjRjMi43IDExLjktNC4xIDI0LjEtMTUuOCAyOC0xMS44IDMuOS0yNC41LTEuOC0yOS41LTEyLjlsLS45LTIuMy0xOS45LTU5LjgtNzYuNC0yMC44IDY0LjEgNjQuMWM2LjEgNi4xIDguNSAxNS4xIDYuMiAyMy40bC00MCAxNDQtLjggMi4zYy00LjQgMTEuMy0xNi44IDE3LjctMjguOCAxNC40LTEyLTMuMy0xOS4zLTE1LjItMTcuMi0yNy4ybC41LTIuNCAzNi4yLTEzMC41LTM3LjItMzcuMkMzNTEgNDA2IDMwOC40IDQ0OCAyNTYgNDQ4cy05NS00Mi05Ni05NC4xbC0zNyAzNyAzNiAxMjIuMyAuNiAyLjRjMi4yIDExLjktNC45IDIzLjktMTYuOCAyNy40LTExLjkgMy41LTI0LjQtMi43LTI5LTEzLjlsLS44LTIuMy00MC0xMzZjLTIuNS04LjQtLjEtMTcuNSA2LjEtMjMuOGw2NC4xLTY0LjEtNzYuNCAyMC44LTE5LjkgNTkuOC0uOSAyLjNjLTUgMTEuMS0xNy43IDE2LjgtMjkuNSAxMi45cy0xOC41LTE2LjEtMTUuOC0yOGwuNy0yLjQgMjQtNzJjMi41LTcuNiA4LjctMTMuNCAxNi41LTE1LjZsOTEuMS0yNC44LTkxLjEtMjQuOGMtNy43LTIuMS0xMy45LTgtMTYuNS0xNS42bC0yNC03Mi0uNy0yLjRjLTIuNy0xMS45IDQuMS0yNC4xIDE1LjgtMjhzMjQuNSAxLjggMjkuNSAxMi45bC45IDIuMyAxOS45IDU5LjggNzYuNCAyMC44LTY0LjEtNjQuMWMtNi4yLTYuMi04LjUtMTUuMy02LjEtMjMuN2w0MC0xMzYgLjgtMi4zYzQuNi0xMS4zIDE3LjEtMTcuNCAyOS0xMy45IDExLjkgMy41IDE5IDE1LjUgMTYuOCAyNy40bC0uNiAyLjQtMzYgMTIyLjMgNTMgNTNjMS00My4zIDM2LjQtNzguMSA3OS45LTc4LjFzNzguOSAzNC44IDc5LjkgNzguMmw1My4xLTUzLjEtMzYtMTIyLjMtLjYtMi40Yy0yLjItMTIgNC45LTIzLjkgMTYuOC0yNy40eiJdfSxQZ3Q9e3ByZWZpeDoiZmFzIixpY29uTmFtZToibW9iaWxlLXJldHJvIixpY29uOlszODQsNTEyLFtdLCJlNTI3IiwiTTE2IDY0QzE2IDI4LjcgNDQuNyAwIDgwIDBMMzA0IDBjMzUuMyAwIDY0IDI4LjcgNjQgNjRsMCAzODRjMCAzNS4zLTI4LjcgNjQtNjQgNjRMODAgNTEyYy0zNS4zIDAtNjQtMjguNy02NC02NEwxNiA2NHptODAgOTZsMCA2NGMwIDE3LjcgMTQuMyAzMiAzMiAzMmwxMjggMGMxNy43IDAgMzItMTQuMyAzMi0zMmwwLTY0YzAtMTcuNy0xNC4zLTMyLTMyLTMybC0xMjggMGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJ6bTggMTkyYTI0IDI0IDAgMSAwIDAtNDggMjQgMjQgMCAxIDAgMCA0OHptMjQgNzJjMC0xMy4zLTEwLjctMjQtMjQtMjRzLTI0IDEwLjctMjQgMjQgMTAuNyAyNCAyNCAyNCAyNC0xMC43IDI0LTI0em02NC03MmEyNCAyNCAwIDEgMCAwLTQ4IDI0IDI0IDAgMSAwIDAgNDh6bTI0IDcyYzAtMTMuMy0xMC43LTI0LTI0LTI0cy0yNCAxMC43LTI0IDI0IDEwLjcgMjQgMjQgMjQgMjQtMTAuNyAyNC0yNHptNjQtNzJhMjQgMjQgMCAxIDAgMC00OCAyNCAyNCAwIDEgMCAwIDQ4em0yNCA3MmMwLTEzLjMtMTAuNy0yNC0yNC0yNHMtMjQgMTAuNy0yNCAyNCAxMC43IDI0IDI0IDI0IDI0LTEwLjcgMjQtMjR6TTE2OCA0MGMtMTMuMyAwLTI0IDEwLjctMjQgMjRzMTAuNyAyNCAyNCAyNGw0OCAwYzEzLjMgMCAyNC0xMC43IDI0LTI0cy0xMC43LTI0LTI0LTI0bC00OCAweiJdfSxHc2U9e3ByZWZpeDoiZmFzIixpY29uTmFtZToic2lnbnMtcG9zdCIsaWNvbjpbNTEyLDUxMixbIm1hcC1zaWducyJdLCJmMjc3IiwiTTI1Ni40IDBjLTE3LjcgMC0zMiAxNC4zLTMyIDMybDAgMzItMTYwIDBjLTE3LjcgMC0zMiAxNC4zLTMyIDMybDAgNjRjMCAxNy43IDE0LjMgMzIgMzIgMzJsMTYwIDAgMCA2NC0xNTMuNCAwYy00LjIgMC04LjMgMS43LTExLjMgNC43bC00OCA0OGMtNi4yIDYuMi02LjIgMTYuNCAwIDIyLjZsNDggNDhjMyAzIDcuMSA0LjcgMTEuMyA0LjdsMTUzLjQgMCAwIDk2YzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJsMC05NiAxNjAgMGMxNy43IDAgMzItMTQuMyAzMi0zMmwwLTY0YzAtMTcuNy0xNC4zLTMyLTMyLTMybC0xNjAgMCAwLTY0IDE1My40IDBjNC4yIDAgOC4zLTEuNyAxMS4zLTQuN2w0OC00OGM2LjItNi4yIDYuMi0xNi40IDAtMjIuNmwtNDgtNDhjLTMtMy03LjEtNC43LTExLjMtNC43bC0xNTMuNCAwIDAtMzJjMC0xNy43LTE0LjMtMzItMzItMzJ6Il19LE5ndD1Hc2UsRmd0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6Imdyb3VwLWFycm93cy1yb3RhdGUiLGljb246WzUxMiw1MTIsW10sImU0ZjYiLCJNMzcuNiAxMjIuM2MtMTEuNSAxOC43LTIwLjYgMzktMjcgNjAuNS01IDE2LjkgNC42IDM0LjggMjEuNSAzOS44czM0LjgtNC42IDM5LjgtMjEuNWMxOC40LTYxLjkgNjcuMy0xMTAuOCAxMjkuMi0xMjkuMiAxNi45LTUgMjYuNi0yMi45IDIxLjUtMzkuOFMxOTkuOCA1LjYgMTgyLjkgMTAuNkMxNjEuNCAxNyAxNDEuMSAyNi4xIDEyMi4zIDM3LjYgMTEyLjMgMTUuNCA4OS45IDAgNjQgMCAyOC43IDAgMCAyOC43IDAgNjQgMCA4OS45IDE1LjQgMTEyLjMgMzcuNiAxMjIuM3ptNDM2LjcgMGMyMi4yLTEwIDM3LjYtMzIuNCAzNy42LTU4LjMgMC0zNS4zLTI4LjctNjQtNjQtNjQtMjUuOSAwLTQ4LjMgMTUuNC01OC4zIDM3LjYtMTguNy0xMS41LTM5LTIwLjYtNjAuNS0yNy0xNi45LTUtMzQuOCA0LjYtMzkuOCAyMS41czQuNiAzNC44IDIxLjUgMzkuOGM2MS45IDE4LjQgMTEwLjggNjcuMyAxMjkuMiAxMjkuMiA1IDE2LjkgMjIuOSAyNi42IDM5LjggMjEuNXMyNi42LTIyLjkgMjEuNS0zOS44Yy02LjQtMjEuNS0xNS41LTQxLjgtMjctNjAuNXpNNTEyIDQ0OGMwLTI1LjktMTUuNC00OC4zLTM3LjYtNTguMyAxMS41LTE4LjcgMjAuNi0zOSAyNy02MC41IDUtMTYuOS00LjYtMzQuOC0yMS41LTM5LjhzLTM0LjggNC42LTM5LjggMjEuNWMtMTguNCA2MS45LTY3LjMgMTEwLjgtMTI5LjIgMTI5LjItMTYuOSA1LTI2LjYgMjIuOS0yMS41IDM5LjhzMjIuOSAyNi42IDM5LjggMjEuNWMyMS41LTYuNCA0MS44LTE1LjUgNjAuNS0yNyAxMCAyMi4yIDMyLjQgMzcuNiA1OC4zIDM3LjYgMzUuMyAwIDY0LTI4LjcgNjQtNjR6TTM3LjYgMzg5LjdjLTIyLjIgMTAtMzcuNiAzMi40LTM3LjYgNTguMyAwIDM1LjMgMjguNyA2NCA2NCA2NCAyNS45IDAgNDguMy0xNS40IDU4LjMtMzcuNiAxOC43IDExLjUgMzkgMjAuNiA2MC41IDI3IDE2LjkgNSAzNC44LTQuNiAzOS44LTIxLjVzLTQuNi0zNC44LTIxLjUtMzkuOGMtNjEuOS0xOC40LTExMC44LTY3LjMtMTI5LjItMTI5LjItNS0xNi45LTIyLjktMjYuNi0zOS44LTIxLjVTNS42IDMxMi4yIDEwLjYgMzI5LjFjNi40IDIxLjUgMTUuNSA0MS44IDI3IDYwLjV6TTI1NiAxOTJjMTUuNiAwIDMwIDUuNiA0MS4xIDE0LjlsLTE1LjMgMTUuM2MtNi42IDYuNi0xLjkgMTcuOCA3LjQgMTcuOGw2MC41IDBjNS43IDAgMTAuNC00LjcgMTAuNC0xMC40bDAtNjAuNWMwLTkuMy0xMS4yLTEzLjktMTcuOC03LjRsLTExLjIgMTEuMmMtMTkuOC0xNy45LTQ2LjItMjguOS03NS4xLTI4LjktNDMuNiAwLTgxLjMgMjQuOS05OS44IDYxLjEtNiAxMS44LTEuNCAyNi4zIDEwLjQgMzIuM3MyNi4zIDEuNCAzMi4zLTEwLjRjMTAuNi0yMC44IDMyLjItMzQuOSA1Ny0zNC45em01OC42IDkzLjFjLTEwLjYgMjAuOC0zMi4yIDM0LjktNTcgMzQuOS0xNS43IDAtMzAtNS42LTQxLjEtMTQuOWwxNS4zLTE1LjNjNi42LTYuNiAxLjktMTcuOC03LjQtMTcuOEwxNjQgMjcyYy01LjcgMC0xMC40IDQuNy0xMC40IDEwLjRsMCA2MC41YzAgOS4zIDExLjIgMTMuOSAxNy44IDcuNGwxMS4yLTExLjJjMTkuOCAxNy45IDQ2LjIgMjguOSA3NS4xIDI4LjkgNDMuNiAwIDgxLjMtMjQuOSA5OS44LTYxLjEgNi0xMS44IDEuNC0yNi4zLTEwLjQtMzIuM3MtMjYuMy0xLjQtMzIuMyAxMC40eiJdfSxPZ3Q9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiYXJyb3dzLXNwbGl0LXVwLWFuZC1sZWZ0IixpY29uOls1MTIsNTEyLFtdLCJlNGJjIiwiTTM0Mi42LTIyLjZjLTEyLjUtMTIuNS0zMi44LTEyLjUtNDUuMyAwbC05NiA5NmMtMTIuNSAxMi41LTEyLjUgMzIuOCAwIDQ1LjNzMzIuOCAxMi41IDQ1LjMgMGw0MS40LTQxLjQgMCAxOTUuOWMtMTguOC0xMC45LTQwLjctMTcuMS02NC0xNy4xbC0xMTQuNyAwIDQxLjQtNDEuNGMxMi41LTEyLjUgMTIuNS0zMi44IDAtNDUuM3MtMzIuOC0xMi41LTQ1LjMgMGwtOTYgOTZjLTEyLjUgMTIuNS0xMi41IDMyLjggMCA0NS4zbDk2IDk2YzEyLjUgMTIuNSAzMi44IDEyLjUgNDUuMyAwczEyLjUtMzIuOCAwLTQ1LjNMMTA5LjMgMzIwIDIyNCAzMjBjMzUuMyAwIDY0IDI4LjcgNjQgNjQgMCA3MC43IDU3LjMgMTI4IDEyOCAxMjhsMzIgMGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMmwtMzIgMGMtMzUuMyAwLTY0LTI4LjctNjQtNjRsMC0zMDYuNyA0MS40IDQxLjRjMTIuNSAxMi41IDMyLjggMTIuNSA0NS4zIDBzMTIuNS0zMi44IDAtNDUuM2wtOTYtOTZ6Il19LFJndD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJmaWxsLWRyaXAiLGljb246WzU3Niw1MTIsW10sImY1NzYiLCJNMzA5LjcgNzEuNmwtNjQuNCA2NC40IDMzLjQgMzMuNGMxMi41IDEyLjUgMTIuNSAzMi44IDAgNDUuM3MtMzIuOCAxMi41LTQ1LjMgMGwtMzMuNC0zMy40LTk2LjQgOTYuNGMtMi45IDIuOS01LjEgNi41LTYuMyAxMC4zbDMyMS41IDAgNTMuNy01My43YzQuOS00LjkgNy42LTExLjUgNy42LTE4LjNzLTIuNy0xMy41LTcuNi0xOC4zTDM0Ni4zIDcxLjZDMzQxLjUgNjYuNyAzMzQuOSA2NCAzMjggNjRzLTEzLjUgMi43LTE4LjMgNy42ek01OC4zIDIzMi40bDk2LjQtOTYuNC00OS40LTQ5LjRjLTEyLjUtMTIuNS0xMi41LTMyLjggMC00NS4zczMyLjgtMTIuNSA0NS4zIDBMMjAwIDkwLjcgMjY0LjQgMjYuM0MyODEuMyA5LjUgMzA0LjEgMCAzMjggMHM0Ni43IDkuNSA2My42IDI2LjNMNTE3LjcgMTUyLjRDNTM0LjUgMTY5LjMgNTQ0IDE5Mi4xIDU0NCAyMTZzLTkuNSA0Ni43LTI2LjMgNjMuNkwzMTEuNiA0ODUuN0MyOTQuNyA1MDIuNSAyNzEuOSA1MTIgMjQ4IDUxMnMtNDYuNy05LjUtNjMuNi0yNi4zTDU4LjMgMzU5LjZDNDEuNSAzNDIuNyAzMiAzMTkuOSAzMiAyOTZzOS41LTQ2LjcgMjYuMy02My42ek01MTIgNTQ0Yy0zNS4zIDAtNjQtMjguNy02NC02NCAwLTI1LjIgMzIuNi03OS42IDUxLjItMTA4LjcgNi05LjQgMTkuNS05LjQgMjUuNSAwIDE4LjcgMjkuMSA1MS4yIDgzLjUgNTEuMiAxMDguNyAwIDM1LjMtMjguNyA2NC02NCA2NHoiXX0sQmd0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InNoaWVsZC1oZWFydCIsaWNvbjpbNTEyLDUxMixbXSwiZTU3NCIsIk0yNjkuNCAyLjlDMjY1LjIgMSAyNjAuNyAwIDI1NiAwcy05LjIgMS0xMy40IDIuOUw1NC4zIDgyLjhjLTIyIDkuMy0zOC40IDMxLTM4LjMgNTcuMiAuNSA5OS4yIDQxLjMgMjgwLjcgMjEzLjYgMzYzLjIgMTYuNyA4IDM2LjEgOCA1Mi44IDAgMTcyLjQtODIuNSAyMTMuMi0yNjQgMjEzLjYtMzYzLjIgLjEtMjYuMi0xNi4zLTQ3LjktMzguMy01Ny4yTDI2OS40IDIuOXpNMjQ5LjYgMTgzLjVsNi40IDguNSA2LjQtOC41YzExLjEtMTQuOCAyOC41LTIzLjUgNDYuOS0yMy41IDMyLjQgMCA1OC43IDI2LjMgNTguNyA1OC43bDAgNS4zYzAgNDkuMS02NS44IDk4LjEtOTYuNSAxMTguMy05LjUgNi4yLTIxLjUgNi4yLTMwLjkgMC0zMC43LTIwLjItOTYuNS02OS4zLTk2LjUtMTE4LjNsMC01LjNjMC0zMi40IDI2LjMtNTguNyA1OC43LTU4LjcgMTguNSAwIDM1LjkgOC43IDQ2LjkgMjMuNXoiXX0sWXNlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InBlcnNvbi1za2lpbmctbm9yZGljIixpY29uOls1NzYsNTEyLFsic2tpaW5nLW5vcmRpYyJdLCJmN2NhIiwiTTQyNC44IDE2YTU2IDU2IDAgMSAxIDAgMTEyIDU2IDU2IDAgMSAxIDAtMTEyem05OS44IDE5My43YzcuNiAxNS4yIDEuOSAzMy42LTEyLjYgNDJsMCAxODAuMy0zMiAwIDAtMTY0LjItMTAuMSA1Yy0yNy40IDEzLjctNjAuNyA2LjEtNzkuNC0xOC4ybC0xOS42LTI1LjUtMzkuNSA2OC44IDI0LjggMTIuNGMyOS41IDE0LjcgNDIuOSA0OS41IDMxLjEgODAuMmwtMjguMiA3My40IDE0OS40IDBjNy45IDAgMTUuNi0yLjMgMjIuMi02LjdsNy45LTUuM2MxMS03LjQgMjUuOS00LjQgMzMuMyA2LjdzNC40IDI1LjktNi43IDMzLjNsLTcuOSA1LjNDNTQzIDUwNi45IDUyNiA1MTIgNTA4LjYgNTEybC0xODkuMSAwYy0uNSAwLTEgMC0xLjUgMEwyNCA1MTJjLTEzLjMgMC0yNC0xMC43LTI0LTI0czEwLjctMjQgMjQtMjRsODggMGMwLTguMiAzLjEtMTYuNCA5LjQtMjIuNmw3NC4xLTc0LjEgMTAuMi0zNS45YzExLjMgMTguMyAyNy43IDMzLjggNDguNCA0NC4ybDQuOCAyLjQtMS45IDYuOGMtMyAxMC41LTguNiAyMC0xNi4zIDI3LjdsLTUxLjUgNTEuNSAxMDEuMyAwIDM3LjEtOTYuNC01NS42LTI3LjhDMjMwLjQgMzE5IDIxNS4zIDI2NyAyMzkuMyAyMjcuMWwzNy43LTYyLjctMjcuNy03LjdjLTktMi41LTE4LjEgMy4yLTIwIDEyLjNsLTUuOSAyOS4zYy0zLjEgMTUuNi0xNy4xIDI2LjMtMzIuNSAyNS43bC0xMzAgMjA4LTM3LjcgMCAxNDAuNi0yMjVjLTMuNC02LjMtNC42LTEzLjgtMy4xLTIxLjNsNS45LTI5LjNjOS4xLTQ1LjYgNTUuMS03My44IDk5LjktNjEuNGwzMi41IDljNDYuNyAxMyA4OCA0MC44IDExNy42IDc5LjNsMjQuOSAzMi4zIDQwLjQtMjAuMmMxNS44LTcuOSAzNS0xLjUgNDIuOSAxNC4zeiJdfSxIZ3Q9WXNlLFpzZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJzcXVhcmUtY2hlY2siLGljb246WzQ0OCw1MTIsWzk3NDUsOTk4OSw2MTUxMCwiY2hlY2stc3F1YXJlIl0sImYxNGEiLCJNMzg0IDMyYzM1LjMgMCA2NCAyOC43IDY0IDY0bDAgMzIwYzAgMzUuMy0yOC43IDY0LTY0IDY0TDY0IDQ4MGMtMzUuMyAwLTY0LTI4LjctNjQtNjRMMCA5NkMwIDYwLjcgMjguNyAzMiA2NCAzMmwzMjAgMHpNMzQyIDE0NS43Yy0xMC43LTcuOC0yNS43LTUuNC0zMy41IDUuM0wxODkuMSAzMTUuMiAxMzcgMjYzLjFjLTkuNC05LjQtMjQuNi05LjQtMzMuOSAwcy05LjQgMjQuNiAwIDMzLjlsNzIgNzJjNSA1IDExLjkgNy41IDE4LjggN3MxMy40LTQuMSAxNy41LTkuOEwzNDcuMyAxNzkuMmM3LjgtMTAuNyA1LjQtMjUuNy01LjMtMzMuNXoiXX0scWd0PVpzZSxYc2U9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiYmF0aCIsaWNvbjpbNTEyLDUxMixbMTI4NzA1LCJiYXRodHViIl0sImYyY2QiLCJNOTYgNzcuM2MwLTcuMyA1LjktMTMuMyAxMy4zLTEzLjMgMy41IDAgNi45IDEuNCA5LjQgMy45bDE0LjkgMTQuOWMtMy42IDkuMS01LjUgMTguOS01LjUgMjkuMiAwIDE5LjkgNy4yIDM4IDE5LjIgNTItNS4zIDkuMi00IDIxLjEgMy44IDI5IDkuNCA5LjQgMjQuNiA5LjQgMzMuOSAwTDI4OSA4OWM5LjQtOS40IDkuNC0yNC42IDAtMzMuOS03LjgtNy45LTE5LjgtOS4xLTI5LTMuOC0xNC0xMi0zMi4xLTE5LjItNTItMTkuMi0xMC4zIDAtMjAuMiAyLTI5LjIgNS41TDE2My45IDIyLjZDMTQ5LjQgOC4xIDEyOS43IDAgMTA5LjMgMCA2Ni42IDAgMzIgMzQuNiAzMiA3Ny4zTDMyIDI1NmMtMTcuNyAwLTMyIDE0LjMtMzIgMzJzMTQuMyAzMiAzMiAzMmwwIDQ4YzAgMjguNCAxMi40IDU0IDMyIDcxLjZMNjQgNDgwYzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJsMC0xNiAyNTYgMCAwIDE2YzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJsMC00MC40YzE5LjYtMTcuNiAzMi00My4xIDMyLTcxLjZsMC00OGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMkw5NiAyNTYgOTYgNzcuM3oiXX0samd0PVhzZSxWZ3Q9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiY2hlc3MtYmlzaG9wIixpY29uOlszMjAsNTEyLFs5ODIxXSwiZjQzYSIsIk02NCAzODRMNDguMyAzNjguM0MxNy40IDMzNy40IDAgMjk1LjQgMCAyNTEuNyAwIDIxMy4xIDEzLjUgMTc1LjggMzguMiAxNDYuMUwxMDYuNyA2NCA5NiA2NEM3OC4zIDY0IDY0IDQ5LjcgNjQgMzJTNzguMyAwIDk2IDBMMjI0IDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJsLTEwLjcgMCA0Ny42IDU3LjEtODUuOSA4NS45Yy05LjQgOS40LTkuNCAyNC42IDAgMzMuOXMyNC42IDkuNCAzMy45IDBsODIuMy04Mi4zYzE4LjcgMjcuMyAyOC43IDU5LjcgMjguNyA5MyAwIDQzLjctMTcuNCA4NS43LTQ4LjMgMTE2LjZMMjU2IDM4NCAzMTIuMiA0NTQuM2M1IDYuMyA3LjggMTQuMSA3LjggMjIuMiAwIDE5LjYtMTUuOSAzNS41LTM1LjUgMzUuNUwzNS41IDUxMmMtMTkuNiAwLTM1LjUtMTUuOS0zNS41LTM1LjUgMC04LjEgMi43LTE1LjkgNy44LTIyLjJMNjQgMzg0eiJdfSxRc2U9e3ByZWZpeDoiZmFzIixpY29uTmFtZToicHJlc2NyaXB0aW9uLWJvdHRsZS1tZWRpY2FsIixpY29uOlszODQsNTEyLFsicHJlc2NyaXB0aW9uLWJvdHRsZS1hbHQiXSwiZjQ4NiIsIk0wIDMyQzAgMTQuMyAxNC4zIDAgMzIgMEwzNTIgMGMxNy43IDAgMzIgMTQuMyAzMiAzMmwwIDMyYzAgMTcuNy0xNC4zIDMyLTMyIDMyTDMyIDk2QzE0LjMgOTYgMCA4MS43IDAgNjRMMCAzMnpNMzIgMTQ0bDMyMCAwIDAgMzA0YzAgMzUuMy0yOC43IDY0LTY0IDY0TDk2IDUxMmMtMzUuMyAwLTY0LTI4LjctNjQtNjRsMC0zMDR6TTE2MCAyNDhsMCA0MC00MCAwYy04LjggMC0xNiA3LjItMTYgMTZsMCAzMmMwIDguOCA3LjIgMTYgMTYgMTZsNDAgMCAwIDQwYzAgOC44IDcuMiAxNiAxNiAxNmwzMiAwYzguOCAwIDE2LTcuMiAxNi0xNmwwLTQwIDQwIDBjOC44IDAgMTYtNy4yIDE2LTE2bDAtMzJjMC04LjgtNy4yLTE2LTE2LTE2bC00MCAwIDAtNDBjMC04LjgtNy4yLTE2LTE2LTE2bC0zMiAwYy04LjggMC0xNiA3LjItMTYgMTZ6Il19LFVndD1Rc2UsSnNlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImRyYXctcG9seWdvbiIsaWNvbjpbNTEyLDUxMixbNTgwNTUsInZlY3Rvci1wb2x5Z29uIl0sImY1ZWUiLCJNNjQgMGMyMy43IDAgNDQuNCAxMi45IDU1LjQgMzJsMjczLjEgMGMxMS4xLTE5LjEgMzEuNy0zMiA1NS40LTMyIDM1LjMgMCA2NCAyOC43IDY0IDY0IDAgMzQtMjYuNSA2MS44LTYwIDYzLjlsLTIuMSAyLjktNzEuNSA5OS4xYzMuNiA4IDUuNiAxNi45IDUuNiAyNi4ycy0yIDE4LjItNS42IDI2LjJsMi4yIDMuMSA2OS4zIDk2IDIuMSAyLjljMzMuNSAyLjEgNjAgMjkuOSA2MCA2My45IDAgMzUuMy0yOC43IDY0LTY0IDY0LTIzLjcgMC00NC40LTEyLjktNTUuNC0zMmwtMjczLjEgMGMtMTEuMSAxOS4xLTMxLjcgMzItNTUuNCAzMi0zNS4zIDAtNjQtMjguNy02NC02NCAwLTIzLjcgMTIuOS00NC40IDMyLTU1LjRsMC0yNzMuMUMxMi45IDEwOC40IDAgODcuNyAwIDY0IDAgMjguNyAyOC43IDAgNjQgMHpNMzk0LjIgNDEzLjRsLTY1LjUtOTAuNi0yLjItMy4xYy0yLjEgLjItNC4zIC4zLTYuNSAuMy0zNS4zIDAtNjQtMjguNy02NC02NHMyOC43LTY0IDY0LTY0YzIuMiAwIDQuNCAuMSA2LjUgLjNsNjcuNy05My43Yy0uNi0uOS0xLjEtMS43LTEuNi0yLjZMMTE5LjQgOTZjLTUuNiA5LjctMTMuNyAxNy44LTIzLjQgMjMuNGwwIDI3My4xYzkuNyA1LjYgMTcuOCAxMy43IDIzLjQgMjMuNGwyNzMuMSAwYy41LS45IDEuMS0xLjggMS42LTIuNnoiXX0sV2d0PUpzZSxHZ3Q9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiaS1jdXJzb3IiLGljb246WzI1Niw1MTIsW10sImYyNDYiLCJNLjEgMjkuM0MtMS40IDQ3IDExLjcgNjIuNCAyOS4zIDYzLjlsOCAuN0M3MC41IDY3LjMgOTYgOTUgOTYgMTI4LjNsMCA5NS43LTMyIDBjLTE3LjcgMC0zMiAxNC4zLTMyIDMyczE0LjMgMzIgMzIgMzJsMzIgMCAwIDk1LjdjMCAzMy4zLTI1LjUgNjEtNTguNyA2My44bC04IC43QzExLjcgNDQ5LjYtMS40IDQ2NSAuMSA0ODIuN1MxNyA1MTMuNCAzNC43IDUxMS45bDgtLjdjMzQuMS0yLjggNjQuMi0xOC45IDg1LjQtNDIuOSAyMS4yIDI0IDUxLjIgNDAgODUuNCA0Mi45bDggLjdjMTcuNiAxLjUgMzMuMS0xMS42IDM0LjUtMjkuMnMtMTEuNi0zMy4xLTI5LjItMzQuNWwtOC0uN0MxODUuNSA0NDQuNyAxNjAgNDE3IDE2MCAzODMuN2wwLTk1LjcgMzIgMGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMmwtMzIgMCAwLTk1LjdjMC0zMy4zIDI1LjUtNjEgNTguNy02My44bDgtLjdjMTcuNi0xLjUgMzAuNy0xNi45IDI5LjItMzQuNVMyMzktMS40IDIyMS4zIC4xbC04IC43Yy0zNC4xIDIuOC02NC4yIDE4LjktODUuNCA0Mi45LTIxLjItMjQtNTEuMi00MC04NS40LTQyLjlsLTgtLjdDMTctMS40IDEuNiAxMS43IC4xIDI5LjN6Il19LFlndD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJoZWFydC1jaXJjbGUtcGx1cyIsaWNvbjpbNTc2LDUxMixbXSwiZTUwMCIsIk0yNDEgODcuMWwxNSAyMC43IDE1LTIwLjdDMjk2IDUyLjUgMzM2LjIgMzIgMzc4LjkgMzIgNDUyLjQgMzIgNTEyIDkxLjYgNTEyIDE2NS4xbDAgMi42YzAgMTcuNi0zLjQgMzUuNi05LjUgNTMuNy0yMS44LTguNi00NS42LTEzLjQtNzAuNS0xMy40LTEwNiAwLTE5MiA4Ni0xOTIgMTkyIDAgMjguNSA2LjIgNTUuNiAxNy40IDgwLS41IDAtLjkgMC0xLjQgMC0xNS41IDAtMzAuOC00LjYtNDMuMS0xNC4xLTczLTU1LjctMjEyLjktMTg2LTIxMi45LTI5OC4ybDAtMi42QzAgOTEuNiA1OS42IDMyIDEzMy4xIDMyIDE3NS44IDMyIDIxNiA1Mi41IDI0MSA4Ny4xek00MzIgMjU2YTE0NCAxNDQgMCAxIDEgMCAyODggMTQ0IDE0NCAwIDEgMSAwLTI4OHptMTYgODBjMC04LjgtNy4yLTE2LTE2LTE2cy0xNiA3LjItMTYgMTZsMCA0OC00OCAwYy04LjggMC0xNiA3LjItMTYgMTZzNy4yIDE2IDE2IDE2bDQ4IDAgMCA0OGMwIDguOCA3LjIgMTYgMTYgMTZzMTYtNy4yIDE2LTE2bDAtNDggNDggMGM4LjggMCAxNi03LjIgMTYtMTZzLTcuMi0xNi0xNi0xNmwtNDggMCAwLTQ4eiJdfSxaZ3Q9e3ByZWZpeDoiZmFzIixpY29uTmFtZToic2hpZWxkLWRvZyIsaWNvbjpbNTEyLDUxMixbXSwiZTU3MyIsIk0yNjkuNCAyLjlDMjY1LjIgMSAyNjAuNyAwIDI1NiAwcy05LjIgMS0xMy40IDIuOUw1NC4zIDgyLjhjLTIyIDkuMy0zOC40IDMxLTM4LjMgNTcuMiAuNSA5OS4yIDQxLjMgMjgwLjcgMjEzLjYgMzYzLjIgMTYuNyA4IDM2LjEgOCA1Mi44IDAgMTcyLjQtODIuNSAyMTMuMi0yNjQgMjEzLjYtMzYzLjIgLjEtMjYuMi0xNi4zLTQ3LjktMzguMy01Ny4yTDI2OS40IDIuOXpNMTYwLjkgMjg2LjJjNC44IDEuMiA5LjkgMS44IDE1LjEgMS44IDM1LjMgMCA2NC0yOC43IDY0LTY0bDAtNjQgNDQuMiAwYzEyLjEgMCAyMy4yIDYuOCAyOC42IDE3LjdsNy4yIDE0LjMgNjQgMGM4LjggMCAxNiA3LjIgMTYgMTZsMCAzMmMwIDQ0LjItMzUuOCA4MC04MCA4MGwtNDggMCAwIDUwLjdjMCA3LjMtNS45IDEzLjMtMTMuMyAxMy4zLTEuOCAwLTMuNi0uNC01LjItMS4xbC05OC43LTQyLjNjLTYuNi0yLjgtMTAuOC05LjMtMTAuOC0xNi40IDAtMi44IC42LTUuNSAxLjktOGwxNS0zMHpNMTYwIDE2MGw0OCAwIDAgNjRjMCAxNy43LTE0LjMgMzItMzIgMzJzLTMyLTE0LjMtMzItMzJsMC00OGMwLTguOCA3LjItMTYgMTYtMTZ6bTEyOCA0OGExNiAxNiAwIDEgMCAtMzIgMCAxNiAxNiAwIDEgMCAzMiAweiJdfSxYZ3Q9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZ3JlYXRlci10aGFuLWVxdWFsIixpY29uOls0NDgsNTEyLFtdLCJmNTMyIiwiTTIxLjkgOTQuNEM1LjEgODguOC0zLjkgNzAuNiAxLjcgNTMuOVMyNS40IDI4LjEgNDIuMSAzMy42bDM4NCAxMjhDNDM5LjIgMTY2IDQ0OCAxNzguMiA0NDggMTkycy04LjggMjYtMjEuOSAzMC40bC0zODQgMTI4Yy0xNi44IDUuNi0zNC45LTMuNS00MC41LTIwLjJzMy41LTM0LjkgMjAuMi00MC41TDMxNC44IDE5MiAyMS45IDk0LjR6TTQxNiA0MTZjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJMMzIgNDgwYy0xNy43IDAtMzItMTQuMy0zMi0zMnMxNC4zLTMyIDMyLTMybDM4NCAweiJdfSxRZ3Q9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZW52ZWxvcGUtb3BlbiIsaWNvbjpbNTEyLDUxMixbNjIxMzVdLCJmMmI2IiwiTTY0LjQgMTc1LjhMMjU2IDMzLjkgNDQ3LjYgMTc1LjggMjg5LjUgMjkzYy05LjcgNy4yLTIxLjQgMTEtMzMuNSAxMXMtMjMuOC0zLjktMzMuNS0xMUw2NC40IDE3NS44ek0yNTYtMzJjLTEyLjEgMC0yMy44IDMuOS0zMy41IDExTDI1LjkgMTI0LjdDOS42IDEzNi44IDAgMTU1LjggMCAxNzYuMUwwIDQxNmMwIDM1LjMgMjguNyA2NCA2NCA2NGwzODQgMGMzNS4zIDAgNjQtMjguNyA2NC02NGwwLTIzOS45YzAtMjAuMy05LjYtMzkuNC0yNS45LTUxLjRMMjg5LjUtMjFjLTkuNy03LjItMjEuNC0xMS0zMy41LTExeiJdfSxKZ3Q9e3ByZWZpeDoiZmFzIixpY29uTmFtZToibW91bmQiLGljb246WzUxMiw1MTIsW10sImU1MmQiLCJNMTEyLjQgMTc5LjJDMTQyIDEyNy43IDE5Ni44IDk2IDI1Ni4yIDk2czExNC4yIDMxLjcgMTQzLjkgODMuMkw1MDguNyAzNjhjMTIuMyAyMS4zLTMuMSA0OC0yNy43IDQ4TDMxLjUgNDE2Yy0yNC42IDAtNDAtMjYuNi0yNy43LTQ4TDExMi40IDE3OS4yeiJdfSxLZ3Q9e3ByZWZpeDoiZmFzIixpY29uTmFtZToidm9pY2VtYWlsIixpY29uOls2NDAsNTEyLFtdLCJmODk3IiwiTTE0NCAxNjBhODAgODAgMCAxIDEgMCAxNjAgODAgODAgMCAxIDEgMC0xNjB6TTI2My44IDMyMGMxNS4zLTIyLjkgMjQuMi01MC40IDI0LjItODAgMC03OS41LTY0LjUtMTQ0LTE0NC0xNDRTMCAxNjAuNSAwIDI0MCA2NC41IDM4NCAxNDQgMzg0bDM1MiAwYzc5LjUgMCAxNDQtNjQuNSAxNDQtMTQ0UzU3NS41IDk2IDQ5NiA5NiAzNTIgMTYwLjUgMzUyIDI0MGMwIDI5LjYgOC45IDU3LjEgMjQuMiA4MGwtMTEyLjUgMHpNNDk2IDE2MGE4MCA4MCAwIDEgMSAwIDE2MCA4MCA4MCAwIDEgMSAwLTE2MHoiXX0sZWJ0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InZlc3QiLGljb246WzQ0OCw1MTIsW10sImUwODUiLCJNMjAwIDQ2NGwwLTE3MC4xYzAtMy45LS41LTcuOC0xLjQtMTEuNkwxNDQuNCA2NS40QzE2Mi4xIDc3LjIgMTg4LjIgODggMjI0IDg4czYxLjktMTAuOCA3OS42LTIyLjZMMjQ5LjQgMjgyLjNjLTEgMy44LTEuNCA3LjctMS40IDExLjZMMjQ4IDQ2NGMwIDI2LjUgMjEuNSA0OCA0OCA0OGwxMDQgMGMyNi41IDAgNDgtMjEuNSA0OC00OGwwLTE5My41YzAtOS41LTIuOC0xOC43LTguMS0yNi42bC00Ny45LTcxLjhjLTUuMy03LjktOC4xLTE3LjEtOC4xLTI2LjZMMzg0IDQ4YzAtMjYuNS0yMS41LTQ4LTQ4LTQ4bC0zLjUgMGMtLjMgMC0uNiAwLTEgMC0uNiAwLTEuMiAwLTEuOCAwLTE4LjggMC0zNC4xIDkuNy00NC4xIDE4LjgtOS4zIDguNC0yOC41IDIxLjItNjEuNyAyMS4ycy01Mi40LTEyLjgtNjEuNy0yMS4yYy0xMC05LjEtMjUuMy0xOC44LTQ0LjEtMTguOC0uNiAwLTEuMiAwLTEuOCAwLS4zIDAtLjYgMC0xIDBMMTEyIDBDODUuNSAwIDY0IDIxLjUgNjQgNDhsMCA5Ny41YzAgOS41LTIuOCAxOC43LTguMSAyNi42TDguMSAyNDMuOUMyLjggMjUxLjggMCAyNjEuMSAwIDI3MC41TDAgNDY0YzAgMjYuNSAyMS41IDQ4IDQ4IDQ4bDEwNCAwYzI2LjUgMCA0OC0yMS41IDQ4LTQ4eiJdfSx0YnQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiYXVkaW8tZGVzY3JpcHRpb24iLGljb246WzUxMiw1MTIsW10sImYyOWUiLCJNMCAxMjhDMCA5Mi43IDI4LjcgNjQgNjQgNjRsMzg0IDBjMzUuMyAwIDY0IDI4LjcgNjQgNjRsMCAyNTZjMCAzNS4zLTI4LjcgNjQtNjQgNjRMNjQgNDQ4Yy0zNS4zIDAtNjQtMjguNy02NC02NEwwIDEyOHptOTYgOTZsMCAxMDRjMCAxMy4zIDEwLjcgMjQgMjQgMjRzMjQtMTAuNyAyNC0yNGwwLTI0IDQ4IDAgMCAyNGMwIDEzLjMgMTAuNyAyNCAyNCAyNHMyNC0xMC43IDI0LTI0bDAtMTA0YzAtMzUuMy0yOC43LTY0LTY0LTY0bC0xNiAwYy0zNS4zIDAtNjQgMjguNy02NCA2NHptNDggMzJsMC0zMmMwLTguOCA3LjItMTYgMTYtMTZsMTYgMGM4LjggMCAxNiA3LjIgMTYgMTZsMCAzMi00OCAwem0xNTItOTZjLTEzLjMgMC0yNCAxMC43LTI0IDI0bDAgMTQ0YzAgMTMuMyAxMC43IDI0IDI0IDI0bDQ4IDBjMzkuOCAwIDcyLTMyLjIgNzItNzJsMC00OGMwLTM5LjgtMzIuMi03Mi03Mi03MmwtNDggMHptNDggMTQ0bC0yNCAwIDAtOTYgMjQgMGMxMy4zIDAgMjQgMTAuNyAyNCAyNGwwIDQ4YzAgMTMuMy0xMC43IDI0LTI0IDI0eiJdfSxyYnQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToidyIsaWNvbjpbNTc2LDUxMixbMTE5XSwiNTciLCJNMjAuOCAzNGMxNi41LTYuMiAzNSAyLjIgNDEuMiAxOC43TDE3Mi4yIDM0Ni43IDI1Ny4zIDU1YzQtMTMuNyAxNi41LTIzIDMwLjctMjNzMjYuNyA5LjQgMzAuNyAyM0w0MDMuOCAzNDYuNyA1MTQgNTIuOGM2LjItMTYuNSAyNC42LTI0LjkgNDEuMi0xOC43UzU4MC4yIDU4LjcgNTc0IDc1LjJsLTE0NCAzODRjLTQuOCAxMi45LTE3LjQgMjEuMy0zMS4yIDIwLjdzLTI1LjctOS44LTI5LjUtMjNMMjg4IDE3OC4zIDIwNi43IDQ1N2MtMy45IDEzLjItMTUuOCAyMi41LTI5LjUgMjNzLTI2LjMtNy44LTMxLjItMjAuN0wyIDc1LjJDLTQuMiA1OC43IDQuMiA0MC4yIDIwLjggMzR6Il19LGREPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImV5ZS1kcm9wcGVyIixpY29uOls1MTIsNTEyLFsiZXllLWRyb3BwZXItZW1wdHkiLCJleWVkcm9wcGVyIl0sImYxZmIiLCJNMzQxLjYgMjkuMmwtMTAxLjYgMTAxLjYtOS40LTkuNGMtMTIuNS0xMi41LTMyLjgtMTIuNS00NS4zIDBzLTEyLjUgMzIuOCAwIDQ1LjNsMTYwIDE2MGMxMi41IDEyLjUgMzIuOCAxMi41IDQ1LjMgMHMxMi41LTMyLjggMC00NS4zbC05LjQtOS40IDEwMS42LTEwMS42YzM5LTM5IDM5LTEwMi4yIDAtMTQxLjFzLTEwMi4yLTM5LTE0MS4xIDB6TTU1LjQgMzIzLjNjLTE1IDE1LTIzLjQgMzUuNC0yMy40IDU2LjZsMCA0Mi40LTI2LjYgMzkuOWMtOC41IDEyLjctNi44IDI5LjYgNCA0MC40czI3LjcgMTIuNSA0MC40IDRsMzkuOS0yNi42IDQyLjQgMGMyMS4yIDAgNDEuNi04LjQgNTYuNi0yMy40bDEwOS40LTEwOS40LTQ1LjMtNDUuMy0xMDkuNCAxMDkuNGMtMyAzLTcuMSA0LjctMTEuMyA0LjdsLTM2LjEgMCAwLTM2LjFjMC00LjIgMS43LTguMyA0LjctMTEuM2wxMDkuNC0xMDkuNC00NS4zLTQ1LjMtMTA5LjQgMTA5LjR6Il19LGlidD1kRCxhYnQ9ZEQsQnA9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiY2lyY2xlLXhtYXJrIixpY29uOls1MTIsNTEyLFs2MTUzMiwidGltZXMtY2lyY2xlIiwieG1hcmstY2lyY2xlIl0sImYwNTciLCJNMjU2IDUxMmEyNTYgMjU2IDAgMSAwIDAtNTEyIDI1NiAyNTYgMCAxIDAgMCA1MTJ6TTE2NyAxNjdjOS40LTkuNCAyNC42LTkuNCAzMy45IDBsNTUgNTUgNTUtNTVjOS40LTkuNCAyNC42LTkuNCAzMy45IDBzOS40IDI0LjYgMCAzMy45bC01NSA1NSA1NSA1NWM5LjQgOS40IDkuNCAyNC42IDAgMzMuOXMtMjQuNiA5LjQtMzMuOSAwbC01NS01NS01NSA1NWMtOS40IDkuNC0yNC42IDkuNC0zMy45IDBzLTkuNC0yNC42IDAtMzMuOWw1NS01NS01NS01NWMtOS40LTkuNC05LjQtMjQuNiAwLTMzLjl6Il19LG5idD1CcCxvYnQ9QnAsc2J0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InRyYWlsZXIiLGljb246WzY0MCw1MTIsW10sImUwNDEiLCJNMzIgOTZjMC0zNS4zIDI4LjctNjQgNjQtNjRsMzg0IDBjMzUuMyAwIDY0IDI4LjcgNjQgNjRsMCAyNTYgNjQgMGMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMmwtMjk2LjQgMGMuMiAyLjYgLjQgNS4zIC40IDggMCA0OC42LTM5LjQgODgtODggODhzLTg4LTM5LjQtODgtODhjMC0yLjcgLjEtNS40IC40LThMOTYgNDE2Yy0zNS4zIDAtNjQtMjguNy02NC02NEwzMiA5NnptNDA4IDE2Yy0xMy4zIDAtMjQgMTAuNy0yNCAyNGwwIDE2MGMwIDEzLjMgMTAuNyAyNCAyNCAyNHMyNC0xMC43IDI0LTI0bDAtMTYwYzAtMTMuMy0xMC43LTI0LTI0LTI0ek0xMTIgMTM2bDAgMTYwYzAgMTMuMyAxMC43IDI0IDI0IDI0czI0LTEwLjcgMjQtMjRsMC0xNjBjMC0xMy4zLTEwLjctMjQtMjQtMjRzLTI0IDEwLjctMjQgMjR6bTE3Ni0yNGMtMTMuMyAwLTI0IDEwLjctMjQgMjRsMCAxNjBjMCAxMy4zIDEwLjcgMjQgMjQgMjRzMjQtMTAuNyAyNC0yNGwwLTE2MGMwLTEzLjMtMTAuNy0yNC0yNC0yNHpNMjY0IDQyNGE0MCA0MCAwIDEgMCAtODAgMCA0MCA0MCAwIDEgMCA4MCAweiJdfSx1RD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJ0dXJraXNoLWxpcmEtc2lnbiIsaWNvbjpbNDQ4LDUxMixbInRyeSIsInR1cmtpc2gtbGlyYSJdLCJlMmJiIiwiTTE2MCAzMmMxNy43IDAgMzIgMTQuMyAzMiAzMmwwIDQzLjYgMTIxLjQtMzQuN2MxMi43LTMuNiAyNiAzLjcgMjkuNyAxNi41cy0zLjcgMjYtMTYuNSAyOS43bC0xMzQuNiAzOC41IDAgNDYuMSAxMjEuNC0zNC43YzEyLjctMy42IDI2IDMuNyAyOS43IDE2LjVzLTMuNyAyNi0xNi41IDI5LjdsLTEzNC42IDM4LjUgMCAxNjIuNSA3MiAwYzUzIDAgOTYtNDMgOTYtOTYgMC0xNy43IDE0LjMtMzIgMzItMzJzMzIgMTQuMyAzMiAzMmMwIDg4LjQtNzEuNiAxNjAtMTYwIDE2MGwtMTA0IDBjLTE3LjcgMC0zMi0xNC4zLTMyLTMybDAtMTc2LjItMjUuNCA3LjNjLTEyLjcgMy42LTI2LTMuNy0yOS43LTE2LjVzMy43LTI2IDE2LjUtMjkuN2wzOC42LTExIDAtNDYuMS0yNS40IDcuM2MtMTIuNyAzLjYtMjYtMy43LTI5LjctMTYuNXMzLjctMjYgMTYuNS0yOS43bDM4LjYtMTEgMC02MS45YzAtMTcuNyAxNC4zLTMyIDMyLTMyeiJdfSxsYnQ9dUQsY2J0PXVELGRidD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJ2b2xjYW5vIixpY29uOls1MTIsNTEyLFsxMjc3NTVdLCJmNzcwIiwiTTE2MCAxNDRjLTM1LjMgMC02NC0yOC43LTY0LTY0czI4LjctNjQgNjQtNjRjMTUuNyAwIDMwIDUuNiA0MS4yIDE1IDExLjItMTguNiAzMS42LTMxIDU0LjgtMzFzNDMuNiAxMi40IDU0LjggMzFjMTEuMS05LjQgMjUuNS0xNSA0MS4yLTE1IDM1LjMgMCA2NCAyOC43IDY0IDY0cy0yOC43IDY0LTY0IDY0Yy0xNC43IDAtMjguMy01LTM5LjEtMTMuM2wtMzIgNDhDMjc1LjMgMTg3IDI2NiAxOTIgMjU2IDE5MnMtMTkuMy01LTI0LjktMTMuM2wtMzItNDhDMTg4LjMgMTM5IDE3NC43IDE0NCAxNjAgMTQ0ek0xNDQgMzUybDQ4LjQtMjQuMmMxMC4yLTUuMSAyMS42LTcuOCAzMy03LjggMTkuNiAwIDM4LjQgNy44IDUyLjIgMjEuNmwzMi41IDMyLjVjNi4zIDYuMyAxNC45IDkuOSAyMy44IDkuOSAxMS4zIDAgMjEuOC01LjYgMjgtMTVsOS43LTE0LjYtNTktNjYuM2MtOS4xLTEwLjItMjIuMi0xNi4xLTM1LjktMTYuMWwtNDEuOCAwYy0xMy43IDAtMjYuOCA1LjktMzUuOSAxNi4xbC01OS45IDY3LjQgNC43LTMuNXptMTkuNC05NS44YzE4LjItMjAuNSA0NC4zLTMyLjIgNzEuOC0zMi4ybDQxLjggMGMyNy40IDAgNTMuNSAxMS43IDcxLjggMzIuMmwxNTAuMiAxNjljOC41IDkuNSAxMy4yIDIxLjkgMTMuMiAzNC43IDAgMjguOC0yMy40IDUyLjItNTIuMiA1Mi4yTDUyLjIgNTEyQzIzLjQgNTEyIDAgNDg4LjYgMCA0NTkuOCAwIDQ0Ny4xIDQuNyA0MzQuNyAxMy4yIDQyNS4ybDE1MC4yLTE2OXoiXX0sdWJ0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6IndhbmQtc3BhcmtsZXMiLGljb246WzUxMiw1MTIsW10sImY3MmIiLCJNNDY0IDYuMWM5LjUtOC41IDI0LTguMSAzMyAuOWw4IDhjOSA5IDkuNCAyMy41IC45IDMzbC04NS44IDk1LjljLTIuNiAyLjktNC4xIDYuNy00LjEgMTAuN2wwIDIxLjRjMCA4LjgtNy4yIDE2LTE2IDE2bC0xNS44IDBjLTQuNiAwLTguOSAxLjktMTEuOSA1LjNMMTAwLjcgNTAwLjljLTYuMyA3LjEtMTUuMyAxMS4xLTI0LjggMTEuMS04LjggMC0xNy4zLTMuNS0yMy41LTkuOEw5LjcgNDU5LjdjLTYuMi02LjItOS43LTE0LjctOS43LTIzLjUgMC05LjUgNC0xOC41IDExLjEtMjQuOGwxMTEuNi05OS44YzMuNC0zIDUuMy03LjQgNS4zLTExLjlsMC0yNy42YzAtOC44IDcuMi0xNiAxNi0xNmwzNC42IDBjMy45IDAgNy43LTEuNSAxMC43LTQuMUw0NjQgNi4xek00MzIgMjg4YzMuNiAwIDYuNyAyLjQgNy43IDUuOGwxNC44IDUxLjcgNTEuNyAxNC44YzMuNCAxIDUuOCA0LjEgNS44IDcuN3MtMi40IDYuNy01LjggNy43bC01MS43IDE0LjgtMTQuOCA1MS43Yy0xIDMuNC00LjEgNS44LTcuNyA1LjhzLTYuNy0yLjQtNy43LTUuOGwtMTQuOC01MS43LTUxLjctMTQuOGMtMy40LTEtNS44LTQuMS01LjgtNy43czIuNC02LjcgNS44LTcuN2w1MS43LTE0LjggMTQuOC01MS43YzEtMy40IDQuMS01LjggNy43LTUuOHpNODcuNyA2OS44bDE0LjggNTEuNyA1MS43IDE0LjhjMy40IDEgNS44IDQuMSA1LjggNy43cy0yLjQgNi43LTUuOCA3LjdsLTUxLjcgMTQuOC0xNC44IDUxLjdjLTEgMy40LTQuMSA1LjgtNy43IDUuOHMtNi43LTIuNC03LjctNS44TDU3LjUgMTY2LjUgNS44IDE1MS43Yy0zLjQtMS01LjgtNC4xLTUuOC03LjdzMi40LTYuNyA1LjgtNy43bDUxLjctMTQuOCAxNC44LTUxLjdjMS0zLjQgNC4xLTUuOCA3LjctNS44czYuNyAyLjQgNy43IDUuOHpNMjA4IDBjMy43IDAgNi45IDIuNSA3LjggNi4xbDYuOCAyNy4zIDI3LjMgNi44YzMuNiAuOSA2LjEgNC4xIDYuMSA3LjhzLTIuNSA2LjktNi4xIDcuOGwtMjcuMyA2LjgtNi44IDI3LjNjLS45IDMuNi00LjEgNi4xLTcuOCA2LjFzLTYuOS0yLjUtNy44LTYuMWwtNi44LTI3LjMtMjcuMy02LjhjLTMuNi0uOS02LjEtNC4xLTYuMS03LjhzMi41LTYuOSA2LjEtNy44bDI3LjMtNi44IDYuOC0yNy4zYy45LTMuNiA0LjEtNi4xIDcuOC02LjF6Il19LHBidD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJtaWNyb3Bob25lIixpY29uOlszODQsNTEyLFtdLCJmMTMwIiwiTTE5MiAwQzEzOSAwIDk2IDQzIDk2IDk2bDAgMTI4YzAgNTMgNDMgOTYgOTYgOTZzOTYtNDMgOTYtOTZsMC0xMjhjMC01My00My05Ni05Ni05NnpNNDggMTg0YzAtMTMuMy0xMC43LTI0LTI0LTI0UzAgMTcwLjcgMCAxODRsMCA0MGMwIDk3LjkgNzMuMyAxNzguNyAxNjggMTkwLjVsMCA0OS41LTQ4IDBjLTEzLjMgMC0yNCAxMC43LTI0IDI0czEwLjcgMjQgMjQgMjRsMTQ0IDBjMTMuMyAwIDI0LTEwLjcgMjQtMjRzLTEwLjctMjQtMjQtMjRsLTQ4IDAgMC00OS41Yzk0LjctMTEuOCAxNjgtOTIuNiAxNjgtMTkwLjVsMC00MGMwLTEzLjMtMTAuNy0yNC0yNC0yNHMtMjQgMTAuNy0yNCAyNGwwIDQwYzAgNzkuNS02NC41IDE0NC0xNDQgMTQ0UzQ4IDMwMy41IDQ4IDIyNGwwLTQweiJdfSxoYnQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiY3Jvd24iLGljb246WzU3Niw1MTIsWzEyODA4MV0sImY1MjEiLCJNMzEzIDg3LjJjOS4yLTcuMyAxNS0xOC42IDE1LTMxLjIgMC0yMi4xLTE3LjktNDAtNDAtNDBzLTQwIDE3LjktNDAgNDBjMCAxMi42IDUuOSAyMy45IDE1IDMxLjJMMTk0LjYgMTk0LjhjLTEwIDE1LjctMzEuMyAxOS42LTQ2LjIgOC40TDg4LjkgMTU4LjdjNC41LTYuNCA3LjEtMTQuMyA3LjEtMjIuNyAwLTIyLjEtMTcuOS00MC00MC00MHMtNDAgMTcuOS00MCA0MGMwIDIxLjggMTcuNSAzOS42IDM5LjIgNDBMODcuOCAzOTMuNWM0LjcgMzEuMyAzMS42IDU0LjUgNjMuMyA1NC41bDI3My44IDBjMzEuNyAwIDU4LjYtMjMuMiA2My4zLTU0LjVMNTIwLjggMTc2YzIxLjctLjQgMzkuMi0xOC4yIDM5LjItNDAgMC0yMi4xLTE3LjktNDAtNDAtNDBzLTQwIDE3LjktNDAgNDBjMCA4LjQgMi42IDE2LjMgNy4xIDIyLjdsLTU5LjQgNDQuNmMtMTQuOSAxMS4yLTM2LjIgNy4zLTQ2LjItOC40TDMxMyA4Ny4yeiJdfSxmYnQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToidGVudC1hcnJvdy10dXJuLWxlZnQiLGljb246WzUxMiw1MTIsW10sImU1ODAiLCJNLS41IDExM2w3MiA3MmM5LjQgOS40IDI0LjYgOS40IDMzLjkgMHM5LjQtMjQuNiAwLTMzLjlsLTMxLTMxIDM1MC4xIDBjMjIuMSAwIDQwIDE3LjkgNDAgNDBsMCAyNGMwIDEzLjMgMTAuNyAyNCAyNCAyNHMyNC0xMC43IDI0LTI0bDAtMjRjMC00OC42LTM5LjQtODgtODgtODhsLTM1MC4xIDAgMzEtMzFjOS40LTkuNCA5LjQtMjQuNiAwLTMzLjlTODAuOS0yLjMgNzEuNSA3TC0uNSA3OWMtOS40IDkuNC05LjQgMjQuNiAwIDMzLjl6TTYwLjMgMjkyLjZMMzcuMSA0NzZjLTIuNCAxOS4xIDEyLjUgMzYgMzEuNyAzNmwxNTQuNSAwYzE3LjcgMCAzMi0xNC4zIDMyLTMybDAtMTE3LjRjMC01LjkgNC43LTEwLjYgMTAuNi0xMC42IDQgMCA3LjcgMi4zIDkuNSA1LjlsNjguMiAxMzYuNWM1LjQgMTAuOCAxNi41IDE3LjcgMjguNiAxNy43bDcxLjkgMGMxOS4zIDAgMzQuMi0xNi45IDMxLjctMzZMNDUyLjcgMjkyLjdjLTEuMi05LjctNi45LTE4LjQtMTUuMy0yMy40TDI3MS45IDE2OS45Yy0xMC4yLTYuMS0yMi45LTYuMS0zMy4xIC4xTDc1LjQgMjY5LjNjLTguMyA1LjEtMTMuOSAxMy43LTE1LjEgMjMuM3oiXX0sS3NlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InRydWNrLWZhc3QiLGljb246WzY0MCw1MTIsWyJzaGlwcGluZy1mYXN0Il0sImY0OGIiLCJNNjQgOTZjMC0zNS4zIDI4LjctNjQgNjQtNjRsMjg4IDBjMzUuMyAwIDY0IDI4LjcgNjQgNjRsMCAzMiA1MC43IDBjMTcgMCAzMy4zIDYuNyA0NS4zIDE4LjdMNjIxLjMgMTkyYzEyIDEyIDE4LjcgMjguMyAxOC43IDQ1LjNMNjQwIDM4NGMwIDM1LjMtMjguNyA2NC02NCA2NGwtMy4zIDBjLTEwLjQgMzYuOS00NC40IDY0LTg0LjcgNjRzLTc0LjItMjcuMS04NC43LTY0bC0xMDIuNiAwYy0xMC40IDM2LjktNDQuNCA2NC04NC43IDY0cy03NC4yLTI3LjEtODQuNy02NGwtMy4zIDBjLTM1LjMgMC02NC0yOC43LTY0LTY0bDAtNDgtNDAgMGMtMTMuMyAwLTI0LTEwLjctMjQtMjRzMTAuNy0yNCAyNC0yNGwxMTIgMGMxMy4zIDAgMjQtMTAuNyAyNC0yNHMtMTAuNy0yNC0yNC0yNEwyNCAyNDBjLTEzLjMgMC0yNC0xMC43LTI0LTI0czEwLjctMjQgMjQtMjRsMTc2IDBjMTMuMyAwIDI0LTEwLjcgMjQtMjRzLTEwLjctMjQtMjQtMjRMMjQgMTQ0Yy0xMy4zIDAtMjQtMTAuNy0yNC0yNFMxMC43IDk2IDI0IDk2bDQwIDB6TTU3NiAyODhsMC01MC43LTQ1LjMtNDUuMy01MC43IDAgMCA5NiA5NiAwek0yNTYgNDI0YTQwIDQwIDAgMSAwIC04MCAwIDQwIDQwIDAgMSAwIDgwIDB6bTIzMiA0MGE0MCA0MCAwIDEgMCAwLTgwIDQwIDQwIDAgMSAwIDAgODB6Il19LG1idD1Lc2UsZWxlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InVzZXItcGVuIixpY29uOls2NDAsNTEyLFsidXNlci1lZGl0Il0sImY0ZmYiLCJNMjU2LjEgMjQ4YTEyMCAxMjAgMCAxIDAgMC0yNDAgMTIwIDEyMCAwIDEgMCAwIDI0MHptLTI5LjcgNTZjLTk4LjUgMC0xNzguMyA3OS44LTE3OC4zIDE3OC4zIDAgMTYuNCAxMy4zIDI5LjcgMjkuNyAyOS43bDE5Ni41IDAgMTAuOS01NC41YzQuMy0yMS43IDE1LTQxLjYgMzAuNi01Ny4ybDY3LjMtNjcuM2MtMjgtMTguMy02MS40LTI4LjktOTcuNC0yOC45bC01OS40IDB6TTMzMi4zIDQ2Ni45bC0xMS45IDU5LjZjLS4yIC45LS4zIDEuOS0uMyAyLjkgMCA4IDYuNSAxNC42IDE0LjYgMTQuNiAxIDAgMS45LS4xIDIuOS0uM2w1OS42LTExLjljMTIuNC0yLjUgMjMuOC04LjYgMzIuNy0xNy41bDExOC45LTExOC45LTgwLTgwLTExOC45IDExOC45Yy04LjkgOC45LTE1IDIwLjMtMTcuNSAzMi43em0yNjcuOC0xMjNjMjIuMS0yMi4xIDIyLjEtNTcuOSAwLTgwcy01Ny45LTIyLjEtODAgMGwtMjguOCAyOC44IDgwIDgwIDI4LjgtMjguOHoiXX0sZ2J0PWVsZSxiYnQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToidXNlci1jbG9jayIsaWNvbjpbNTc2LDUxMixbXSwiZjRmZCIsIk0yMjQgOGExMjAgMTIwIDAgMSAxIDAgMjQwIDEyMCAxMjAgMCAxIDEgMC0yNDB6TTE5NC4zIDMwNGw1OS40IDBjMy45IDAgNy45IC4xIDExLjggLjQtMTYuMiAyOC4yLTI1LjUgNjAuOC0yNS41IDk1LjYgMCA0MS44IDEzLjQgODAuNSAzNiAxMTJMNDUuNyA1MTJDMjkuMyA1MTIgMTYgNDk4LjcgMTYgNDgyLjMgMTYgMzgzLjggOTUuOCAzMDQgMTk0LjMgMzA0ek0yODggNDAwYTE0NCAxNDQgMCAxIDEgMjg4IDAgMTQ0IDE0NCAwIDEgMSAtMjg4IDB6bTE0NC04MGMtOC44IDAtMTYgNy4yLTE2IDE2bDAgNjRjMCA4LjggNy4yIDE2IDE2IDE2bDQ4IDBjOC44IDAgMTYtNy4yIDE2LTE2cy03LjItMTYtMTYtMTZsLTMyIDAgMC00OGMwLTguOC03LjItMTYtMTYtMTZ6Il19LHZidD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJzaG93ZXIiLGljb246WzUxMiw1MTIsWzEyODcwM10sImYyY2MiLCJNNjQgMTMxLjljMC0xOS44IDE2LjEtMzUuOSAzNS45LTM1LjkgOS41IDAgMTguNiAzLjggMjUuNCAxMC41bDE2LjIgMTYuMmMtMjEgMzguOS0xNy40IDg3LjUgMTAuOSAxMjNMMTUxIDI0N2MtOS40IDkuNC05LjQgMjQuNiAwIDMzLjlzMjQuNiA5LjQgMzMuOSAwTDM0NSAxMjFjOS40LTkuNCA5LjQtMjQuNiAwLTMzLjlzLTI0LjYtOS40LTMzLjkgMGwtMS4zIDEuM2MtMzUuNS0yOC4zLTg0LjEtMzEuOS0xMjMtMTAuOUwxNzAuNSA2MS4zQzE1MS44IDQyLjUgMTI2LjQgMzIgOTkuOSAzMiA0NC43IDMyIDAgNzYuNyAwIDEzMS45TDAgNDQ4YzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJsMC0zMTYuMXpNMjU2IDM1MmEzMiAzMiAwIDEgMCAwLTY0IDMyIDMyIDAgMSAwIDAgNjR6bTY0IDY0YTMyIDMyIDAgMSAwIC02NCAwIDMyIDMyIDAgMSAwIDY0IDB6bTAtMTI4YTMyIDMyIDAgMSAwIDAtNjQgMzIgMzIgMCAxIDAgMCA2NHptNjQgNjRhMzIgMzIgMCAxIDAgLTY0IDAgMzIgMzIgMCAxIDAgNjQgMHptMC0xMjhhMzIgMzIgMCAxIDAgMC02NCAzMiAzMiAwIDEgMCAwIDY0em02NCA2NGEzMiAzMiAwIDEgMCAtNjQgMCAzMiAzMiAwIDEgMCA2NCAwem0zMi0zMmEzMiAzMiAwIDEgMCAwLTY0IDMyIDMyIDAgMSAwIDAgNjR6Il19LHRsZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJzcXVhcmUtY2FyZXQtdXAiLGljb246WzQ0OCw1MTIsWyJjYXJldC1zcXVhcmUtdXAiXSwiZjE1MSIsIk02NCAzMkMyOC43IDMyIDAgNjAuNyAwIDk2TDAgNDE2YzAgMzUuMyAyOC43IDY0IDY0IDY0bDMyMCAwYzM1LjMgMCA2NC0yOC43IDY0LTY0bDAtMzIwYzAtMzUuMy0yOC43LTY0LTY0LTY0TDY0IDMyek0yMjQgMTYwYzYuNyAwIDEzIDIuOCAxNy42IDcuN2wxMDQgMTEyYzYuNSA3IDguMiAxNy4yIDQuNCAyNS45UzMzNy41IDMyMCAzMjggMzIwbC0yMDggMGMtOS41IDAtMTguMi01LjctMjItMTQuNHMtMi4xLTE4LjkgNC40LTI1LjlsMTA0LTExMmM0LjUtNC45IDEwLjktNy43IDE3LjYtNy43eiJdfSx4YnQ9dGxlLHJsZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJtYXAtbG9jYXRpb24iLGljb246WzY0MCw1MTIsWyJtYXAtbWFya2VkIl0sImY1OWYiLCJNNTc2IDQ4YzAtMTEuMS01LjctMjEuNC0xNS4yLTI3LjJzLTIxLjItNi40LTMxLjEtMS40TDQxMy41IDc3LjUgMjM0LjEgMTcuNmMtOC4xLTIuNy0xNi44LTIuMS0yNC40IDEuN2wtMTI4IDY0QzcwLjggODguOCA2NCA5OS45IDY0IDExMmwwIDM1MmMwIDExLjEgNS43IDIxLjQgMTUuMiAyNy4yczIxLjIgNi40IDMxLjEgMS40bDExNi4xLTU4LjEgMTczLjMgNTcuOGMtNC4zLTYuNC04LjUtMTMuMS0xMi42LTE5LjktMTEtMTguMy0yMS45LTM5LjMtMzAtNjEuOGwtMTAxLjItMzMuNyAwLTI4NC41IDEyOCA0Mi43IDAgOTkuM2MzMS0zNS44IDc3LTU4LjQgMTI4LTU4LjQgMjIuNiAwIDQ0LjIgNC40IDY0IDEyLjVMNTc2IDQ4ek0zOTIgMzQxLjljMCA2OC45IDY0LjEgMTUwLjQgOTguNiAxODkuMyAxMS42IDEzIDMxLjMgMTMgNDIuOSAwIDM0LjUtMzguOSA5OC42LTEyMC40IDk4LjYtMTg5LjMgMC02NS4xLTUzLjctMTE3LjktMTIwLTExNy45UzM5MiAyNzYuOCAzOTIgMzQxLjl6Il19LHlidD1ybGUsd2J0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InBlbi1mYW5jeSIsaWNvbjpbNTEyLDUxMixbMTI4Mzk1LDEwMDAyXSwiZjVhYyIsIk0zNzMuNSAyNy4xYzE1LTE3LjIgMzYuNy0yNy4xIDU5LjYtMjcuMSA0My42IDAgNzkgMzUuNCA3OSA3OSAwIDIyLjgtOS45IDQ0LjYtMjcuMSA1OS42TDI4My43IDMxMy44IDI3MyAzMDMgMjA5IDIzOSAxOTguMiAyMjguMyAzNzMuNSAyNy4xek0xNjEuMSAyNTlDMTYyIDI2MCAxODggMjg2IDIzOSAzMzdsMTMuOSAxMy45LTE3LjEgNzQuMmMtMy45IDE3LjEtMTYuOSAzMC43LTMzLjggMzUuNGwtMTY5LjggNDcuNSA5Mi4zLTkyLjNjMS4yIC4xIDIuMyAuMiAzLjUgLjIgMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzItMzIgMTQuMy0zMiAzMmMwIDEuMiAuMSAyLjQgLjIgMy41TDMuOSA0NzkuOCA1MS41IDMxMGM0LjctMTYuOSAxOC4zLTI5LjkgMzUuNC0zMy44TDE2MS4xIDI1OXoiXX0scEQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZXVyby1zaWduIixpY29uOls0NDgsNTEyLFs4MzY0LCJldXIiLCJldXJvIl0sImYxNTMiLCJNNzMuMyAxOTJDMTAwLjggOTkuNSAxODYuNSAzMiAyODggMzJsNjQgMGMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMmwtNjQgMGMtNjUuNiAwLTEyMiAzOS41LTE0Ni43IDk2TDI3MiAxOTJjMTMuMyAwIDI0IDEwLjcgMjQgMjRzLTEwLjcgMjQtMjQgMjRsLTE0My4yIDBjLS41IDUuMy0uOCAxMC42LS44IDE2cy4zIDEwLjcgLjggMTZMMjcyIDI3MmMxMy4zIDAgMjQgMTAuNyAyNCAyNHMtMTAuNyAyNC0yNCAyNGwtMTMwLjcgMGMyNC43IDU2LjUgODEuMSA5NiAxNDYuNyA5Nmw2NCAwYzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMybC02NCAwYy0xMDEuNSAwLTE4Ny4yLTY3LjUtMjE0LjctMTYwTDQwIDMyMGMtMTMuMyAwLTI0LTEwLjctMjQtMjRzMTAuNy0yNCAyNC0yNGwyNC42IDBjLS43LTEwLjUtLjctMjEuNSAwLTMyTDQwIDI0MGMtMTMuMyAwLTI0LTEwLjctMjQtMjRzMTAuNy0yNCAyNC0yNGwzMy4zIDB6Il19LE1idD1wRCxrYnQ9cEQsU2J0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImhvdXNlLWNpcmNsZS14bWFyayIsaWNvbjpbNjQwLDUxMixbXSwiZTUwYiIsIk00OTYgNTQ0YTE0NCAxNDQgMCAxIDEgMC0yODggMTQ0IDE0NCAwIDEgMSAwIDI4OHpNMjY4LjYgNi41YzEyLjItOS4zIDI5LjctOC43IDQxLjIgMmwyMTcuNiAyMDJjLTEwLjItMS43LTIwLjctMi42LTMxLjMtMi42LTc4LjYgMC0xNDYuMiA0Ny4yLTE3NS45IDExNC44LTUtMS44LTEwLjUtMi44LTE2LjEtMi44bC0zMiAwYy0yNi41IDAtNDggMjEuNS00OCA0OGwwIDk2IDkwLjkgMGM2LjEgMTcuMyAxNC42IDMzLjQgMjUuMiA0OEwxNDQgNTEyYy0zNS4zIDAtNjQtMjguNy02NC02NGwwLTE3Ni0xNiAwYy0xMy4yIDAtMjUtOC4xLTI5LjgtMjAuM3MtMS42LTI2LjIgOC0zNS4xbDIyNC0yMDggMi40LTJ6TTU1NS4zIDM0MC43Yy02LjItNi4yLTE2LjQtNi4yLTIyLjYgMGwtMzYuNyAzNi43LTM2LjctMzYuN2MtNi4yLTYuMi0xNi40LTYuMi0yMi42IDBzLTYuMiAxNi40IDAgMjIuNmwzNi43IDM2LjctMzYuNyAzNi43Yy02LjIgNi4yLTYuMiAxNi40IDAgMjIuNnMxNi40IDYuMiAyMi42IDBsMzYuNy0zNi43IDM2LjcgMzYuN2M2LjIgNi4yIDE2LjQgNi4yIDIyLjYgMHM2LjItMTYuNCAwLTIyLjZsLTM2LjctMzYuNyAzNi43LTM2LjdjNi4yLTYuMiA2LjItMTYuNCAwLTIyLjZ6Il19LHpidD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJsaXJhLXNpZ24iLGljb246WzM4NCw1MTIsWzgzNTZdLCJmMTk1IiwiTTg0LjkgMjU2bC0yOC40IDBjLTEzLjMgMC0yNC0xMC43LTI0LTI0czEwLjctMjQgMjQtMjRsMTEuNiAwQzUzLjIgMTI0LjcgMTE2LjggNDIgMjA3LjYgNDJsOC4yIDBjMzMuNiAwIDY2LjIgMTEuMyA5Mi41IDMyLjJsMTYuMSAxMi43YzEzLjkgMTEgMTYuMiAzMS4xIDUuMiA0NXMtMzEuMSAxNi4yLTQ1IDUuMmwtMTYuMS0xMi43Yy0xNS0xMS45LTMzLjYtMTguNC01Mi44LTE4LjRsLTguMiAwYy01My44IDAtOTAuMSA1Mi45LTczLjUgMTAybDE2Mi40IDBjMTMuMyAwIDI0IDEwLjcgMjQgMjRzLTEwLjcgMjQtMjQgMjRsLTE0NS4xIDBjMi4zIDEwLjYgMy42IDIxLjMgMy45IDMybDE0MS4yIDBjMTMuMyAwIDI0IDEwLjcgMjQgMjRzLTEwLjcgMjQtMjQgMjRMMTUwIDMzNmMtNC44IDE4LjYtMTIuNiAzNi41LTIzLjYgNTIuOWwtMTguMSAyNy4xIDIxMi4yIDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJsLTI3MiAwYy0xMS44IDAtMjIuNi02LjUtMjguMi0xNi45cy01LTIzIDEuNi0zMi45bDUxLjItNzYuOGMzLjctNS42IDYuOS0xMS40IDkuNC0xNy40bC0yNiAwYy0xMy4zIDAtMjQtMTAuNy0yNC0yNHMxMC43LTI0IDI0LTI0bDM0LjggMGMtLjUtMTAuOC0yLjYtMjEuNi02LjQtMzJ6Il19LEZwPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6Inllbi1zaWduIixpY29uOlszODQsNTEyLFsxNjUsImNueSIsImpweSIsInJtYiIsInllbiJdLCJmMTU3IiwiTTc0LjkgNDYuN2MtOS42LTE0LjktMjkuNC0xOS4yLTQ0LjItOS42UzExLjUgNjYuNCAyMS4xIDgxLjNMMTQzLjcgMjcyIDg4IDI3MmMtMTMuMyAwLTI0IDEwLjctMjQgMjRzMTAuNyAyNCAyNCAyNGw3MiAwIDAgMzItNzIgMGMtMTMuMyAwLTI0IDEwLjctMjQgMjRzMTAuNyAyNCAyNCAyNGw3MiAwIDAgNDhjMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMmwwLTQ4IDcyIDBjMTMuMyAwIDI0LTEwLjcgMjQtMjRzLTEwLjctMjQtMjQtMjRsLTcyIDAgMC0zMiA3MiAwYzEzLjMgMCAyNC0xMC43IDI0LTI0cy0xMC43LTI0LTI0LTI0bC01NS43IDAgMTIyLjYtMTkwLjdjOS42LTE0LjkgNS4zLTM0LjctOS42LTQ0LjJzLTM0LjctNS4zLTQ0LjIgOS42TDE5MiAyMjguOCA3NC45IDQ2Ljd6Il19LENidD1GcCxUYnQ9RnAsX2J0PUZwLExidD1GcCxBYnQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiYm94LW9wZW4iLGljb246WzY0MCw1MTIsW10sImY0OWUiLCJNNTYwLjMgMjM3LjJjMTAuNCAxMS44IDI4LjMgMTQuNCA0MS44IDUuNSAxNC43LTkuOCAxOC43LTI5LjcgOC45LTQ0LjRsLTQ4LTcyYy0yLjgtNC4yLTYuNi03LjctMTEuMS0xMC4yTDM1MS40IDQuN2MtMTkuMy0xMC43LTQyLjgtMTAuNy02Mi4yIDBMODguOCAxMTZjLTUuNCAzLTkuNyA3LjQtMTIuNiAxMi44TDI3LjcgMjE4LjdjLTEyLjYgMjMuNC0zLjggNTIuNSAxOS42IDY1LjFsMzMgMTcuNyAwIDUzLjNjMCAyMyAxMi40IDQ0LjMgMzIuNCA1NS43bDE3NiA5OS43YzE5LjYgMTEuMSA0My41IDExLjEgNjMuMSAwbDE3Ni05OS43YzIwLjEtMTEuNCAzMi40LTMyLjYgMzIuNC01NS43bDAtMTE3LjV6bS0yNDAtOS44TDE3MC4yIDE0NCAzMjAuMyA2MC42IDQ3MC40IDE0NCAzMjAuMyAyMjcuNHptLTQxLjUgNTAuMmwtMjEuMyA0Ni4yLTE2NS44LTg4LjggMjUuNC00Ny4yIDE2MS43IDg5Ljh6Il19LERidD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJ0cnVjay1maWVsZCIsaWNvbjpbNjQwLDUxMixbXSwiZTU4ZCIsIk0zMiA5NmMwLTM1LjMgMjguNy02NCA2NC02NGwyMjQgMGMyMy43IDAgNDQuNCAxMi45IDU1LjQgMzJsNDAuNCAwYzMyLjQgMCA2MS42IDE5LjYgNzQgNDkuNWw0My44IDEwNi4zIDEuNyA0LjIgMjQuNyAwYzI2LjUgMCA0OCAyMS41IDQ4IDQ4bDAgNjRjMCAyNi41LTIxLjUgNDgtNDggNDhsLS40IDBjLjIgMi42IC40IDUuMyAuNCA4IDAgNDguNi0zOS40IDg4LTg4IDg4cy04OC0zOS40LTg4LTg4YzAtMi43IC4xLTUuNCAuNC04bC0xNDQuNyAwYy4yIDIuNiAuNCA1LjMgLjQgOCAwIDQ4LjYtMzkuNCA4OC04OCA4OHMtODgtMzkuNC04OC04OGMwLTMuNiAuMi03LjEgLjYtMTAuNS0xOS02LjQtMzIuNi0yNC40LTMyLjYtNDUuNWwwLTQ4Yy0xNy43IDAtMzItMTQuMy0zMi0zMmwwLTk2YzAtMTcuNyAxNC4zLTMyIDMyLTMybDAtMzJ6bTM1MiAzMmwwIDk2IDgyLjEgMC0zNS40LTg2LjFjLTIuNS02LTguMy05LjktMTQuOC05LjlMMzg0IDEyOHpNMTkyIDM5MmE0MCA0MCAwIDEgMCAtODAgMCA0MCA0MCAwIDEgMCA4MCAwem0yODAgNDBhNDAgNDAgMCAxIDAgMC04MCA0MCA0MCAwIDEgMCAwIDgweiJdfSxFYnQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToibG9jYXRpb24tcGluLWxvY2siLGljb246WzUxMiw1MTIsW10sImU1MWYiLCJNMCAxODguNkMwIDg0LjQgODYgMCAxOTIgMCAyOTQuMSAwIDM3Ny42IDc4LjMgMzgzLjYgMTc3IDMyMC43IDE4NS4xIDI3MiAyMzguOCAyNzIgMzA0bDAgMjQuNGMtMTkuNiAxNy42LTMyIDQzLjEtMzIgNzEuNWwwIDc1LjdjLTkuOSAxMS42LTE4LjkgMjEuNy0yNi40IDI5LjgtMTEuOCAxMi44LTMxLjUgMTIuOC00My4zIDAtNTAuMi01NC41LTE3MC40LTE5Ny41LTE3MC40LTMxNi44ek0xOTIgMjU2YTY0IDY0IDAgMSAwIDAtMTI4IDY0IDY0IDAgMSAwIDAgMTI4em0yNDAgNDguMWMwLTE3LjctMTQuMy0zMi0zMi0zMnMtMzIgMTQuMy0zMiAzMmwwIDQ3LjkgNjQgMCAwLTQ3Ljl6TTI4OCA0MDBjMC0yMC45IDEzLjQtMzguNyAzMi00NS4zbDAtNTAuNmMwLTQ0LjIgMzUuOC04MCA4MC04MHM4MCAzNS44IDgwIDgwbDAgNTAuNmMxOC42IDYuNiAzMiAyNC40IDMyIDQ1LjNsMCA5NmMwIDI2LjUtMjEuNSA0OC00OCA0OGwtMTI4IDBjLTI2LjUgMC00OC0yMS41LTQ4LTQ4bDAtOTZ6Il19LGlsZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJwZXJzb24tcHJheWluZyIsaWNvbjpbMzg0LDUxMixbMTI4NzIwLCJwcmF5Il0sImY2ODMiLCJNMzIwIDY0YTY0IDY0IDAgMSAwIC0xMjggMCA2NCA2NCAwIDEgMCAxMjggMHpNMjAwLjcgMjY0bDIyLjkgMzEuNWM2LjUgOC45IDE2LjMgMTQuNyAyNy4yIDE2LjFzMjEuOS0xLjcgMzAuNC04LjdsODgtNzJjMTcuMS0xNCAxOS42LTM5LjIgNS42LTU2LjNzLTM5LjItMTkuNi01Ni4zLTUuNmwtNTUuMiA0NS4yLTI2LjItMzZjLTE1LjYtMjEuNS00MC42LTM0LjItNjcuMi0zNC4yLTMwLjkgMC01OS4yIDE3LjEtNzMuNiA0NC40TDQ3LjggMjgwLjljLTIwLjIgMzguNS05LjQgODUuOSAyNS42IDExMS44TDEyNi42IDQzMiA0MCA0MzJjLTIyLjEgMC00MCAxNy45LTQwIDQwczE3LjkgNDAgNDAgNDBsMjA4IDBjMTcuMyAwIDMyLjYtMTEuMSAzOC0yNy41cy0uMy0zNC40LTE0LjItNDQuN2wtMTE2LjEtODUuOCA0NS05MHoiXX0sJGJ0PWlsZSxJYnQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiY2xpcGJvYXJkLWxpc3QiLGljb246WzM4NCw1MTIsW10sImY0NmQiLCJNMzExLjQgMzJsOC42IDBjMzUuMyAwIDY0IDI4LjcgNjQgNjRsMCAzNTJjMCAzNS4zLTI4LjcgNjQtNjQgNjRMNjQgNTEyYy0zNS4zIDAtNjQtMjguNy02NC02NEwwIDk2QzAgNjAuNyAyOC43IDMyIDY0IDMybDguNiAwQzgzLjYgMTIuOSAxMDQuMyAwIDEyOCAwTDI1NiAwYzIzLjcgMCA0NC40IDEyLjkgNTUuNCAzMnpNMjQ4IDExMmMxMy4zIDAgMjQtMTAuNyAyNC0yNHMtMTAuNy0yNC0yNC0yNEwxMzYgNjRjLTEzLjMgMC0yNCAxMC43LTI0IDI0czEwLjcgMjQgMjQgMjRsMTEyIDB6TTEyOCAyNTZhMzIgMzIgMCAxIDAgLTY0IDAgMzIgMzIgMCAxIDAgNjQgMHptMzIgMGMwIDEzLjMgMTAuNyAyNCAyNCAyNGwxMTIgMGMxMy4zIDAgMjQtMTAuNyAyNC0yNHMtMTAuNy0yNC0yNC0yNGwtMTEyIDBjLTEzLjMgMC0yNCAxMC43LTI0IDI0em0wIDEyOGMwIDEzLjMgMTAuNyAyNCAyNCAyNGwxMTIgMGMxMy4zIDAgMjQtMTAuNyAyNC0yNHMtMTAuNy0yNC0yNC0yNGwtMTEyIDBjLTEzLjMgMC0yNCAxMC43LTI0IDI0ek05NiA0MTZhMzIgMzIgMCAxIDAgMC02NCAzMiAzMiAwIDEgMCAwIDY0eiJdfSxQYnQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToic2Fjay1kb2xsYXIiLGljb246WzUxMiw1MTIsWzEyODE3Nl0sImY4MWQiLCJNMzI4IDExMmwtMTQ0IDAtMzcuMy03NC41Yy0xLjgtMy42LTIuNy03LjYtMi43LTExLjYgMC0xNC4zIDExLjYtMjUuOSAyNS45LTI1LjlMMzQyLjEgMGMxNC4zIDAgMjUuOSAxMS42IDI1LjkgMjUuOSAwIDQtLjkgOC0yLjcgMTEuNkwzMjggMTEyek0xNjkuNiAxNjBsMTcyLjggMCA0OC43IDQwLjZDNDU3LjYgMjU2IDQ5NiAzMzggNDk2IDQyNC41IDQ5NiA0NzIuOCA0NTYuOCA1MTIgNDA4LjUgNTEybC0zMDUuMSAwQzU1LjIgNTEyIDE2IDQ3Mi44IDE2IDQyNC41IDE2IDMzOCA1NC40IDI1NiAxMjAuOSAyMDAuNkwxNjkuNiAxNjB6TTI2MCAyMjRjLTExIDAtMjAgOS0yMCAyMGwwIDRjLTI4LjggLjMtNTIgMjMuNy01MiA1Mi41IDAgMjUuNyAxOC41IDQ3LjYgNDMuOSA1MS44bDQxLjcgN2M2IDEgMTAuNCA2LjIgMTAuNCAxMi4zIDAgNi45LTUuNiAxMi41LTEyLjUgMTIuNUwyMTYgMzg0Yy0xMSAwLTIwIDktMjAgMjBzOSAyMCAyMCAyMGwyNCAwIDAgNGMwIDExIDkgMjAgMjAgMjBzMjAtOSAyMC0yMGwwLTQuN2MyNS00LjEgNDQtMjUuNyA0NC01MS44IDAtMjUuNy0xOC41LTQ3LjYtNDMuOS01MS44bC00MS43LTdjLTYtMS0xMC40LTYuMi0xMC40LTEyLjMgMC02LjkgNS42LTEyLjUgMTIuNS0xMi41bDQ3LjUgMGMxMSAwIDIwLTkgMjAtMjBzLTktMjAtMjAtMjBsLTggMCAwLTRjMC0xMS05LTIwLTIwLTIweiJdfSxOYnQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToibW91bnRhaW4tc3VuIixpY29uOls1NzYsNTEyLFtdLCJlNTJmIiwiTTI1Ni41IDBjMTQuNyAwIDI4LjIgOC4xIDM1LjIgMjFsMjE2IDQwMGM2LjcgMTIuNCA2LjQgMjcuNC0uOCAzOS41LTcuMiAxMi4xLTIwLjMgMTkuNS0zNC4zIDE5LjVsLTQzMiAwYy0xNC4xIDAtMjcuMS03LjQtMzQuMy0xOS41cy03LjUtMjcuMS0uOC0zOS41bDIxNi00MDAgMi45LTQuNkMyMzEuNyA2LjIgMjQzLjYgMCAyNTYuNSAwek0xNzAuNCAyNDkuOWwyNi44IDI2LjhjNi4yIDYuMiAxNi40IDYuMiAyMi42IDBsNDMuMy00My4zYzYtNiAxNC4xLTkuNCAyMi42LTkuNGw0Mi44IDAtNzIuMS0xMzMuNS04Ni4xIDE1OS40ek00OTYuNSAxNjBhODAgODAgMCAxIDEgMC0xNjAgODAgODAgMCAxIDEgMCAxNjB6Il19LGFsZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJhcnJvdy11cC13aWRlLXNob3J0IixpY29uOls1NzYsNTEyLFsic29ydC1hbW91bnQtdXAiXSwiZjE2MSIsIk0xNTAuNiA0MS40Yy0xMi41LTEyLjUtMzIuOC0xMi41LTQ1LjMgMGwtOTYgOTZjLTEyLjUgMTIuNS0xMi41IDMyLjggMCA0NS4zczMyLjggMTIuNSA0NS4zIDBMOTYgMTQxLjMgOTYgNDQ4YzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJsMC0zMDYuNyA0MS40IDQxLjRjMTIuNSAxMi41IDMyLjggMTIuNSA0NS4zIDBzMTIuNS0zMi44IDAtNDUuM2wtOTYtOTZ6TTMyMCA0ODBsMzIgMGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMmwtMzIgMGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJzMTQuMyAzMiAzMiAzMnptMC0xMjhsOTYgMGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMmwtOTYgMGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJzMTQuMyAzMiAzMiAzMnptMC0xMjhsMTYwIDBjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJsLTE2MCAwYy0xNy43IDAtMzIgMTQuMy0zMiAzMnMxNC4zIDMyIDMyIDMyem0wLTEyOGwyMjQgMGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMkwzMjAgMzJjLTE3LjcgMC0zMiAxNC4zLTMyIDMyczE0LjMgMzIgMzIgMzJ6Il19LEZidD1hbGUsT2J0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InVzZXJzLWxpbmUiLGljb246WzU3Niw1MTIsW10sImU1OTIiLCJNMjI0IDEyOGE2NCA2NCAwIDEgMSAxMjggMCA2NCA2NCAwIDEgMSAtMTI4IDB6TTE3NiAzMzZjMC02MS45IDUwLjEtMTEyIDExMi0xMTJzMTEyIDUwLjEgMTEyIDExMmwwIDhjMCAxMy4zLTEwLjcgMjQtMjQgMjRsLTE3NiAwYy0xMy4zIDAtMjQtMTAuNy0yNC0yNGwwLTh6TTM5MiAxNDRhNTYgNTYgMCAxIDEgMTEyIDAgNTYgNTYgMCAxIDEgLTExMiAwem0yNy4yIDEwMC40YzkuMS0yLjkgMTguOC00LjQgMjguOC00LjQgNTMgMCA5NiA0MyA5NiA5NmwwIDEwLjdjMCAxMS44LTkuNiAyMS4zLTIxLjMgMjEuM2wtNzguOCAwYzIuNy03LjUgNC4xLTE1LjYgNC4xLTI0bDAtOGMwLTM0LjEtMTAuNi02NS43LTI4LjgtOTEuNnptLTI2Mi40IDBjLTE4LjIgMjYtMjguOCA1Ny41LTI4LjggOTEuNmwwIDhjMCA4LjQgMS40IDE2LjUgNC4xIDI0bC03OC44IDBDNDEuNiAzNjggMzIgMzU4LjQgMzIgMzQ2LjdMMzIgMzM2YzAtNTMgNDMtOTYgOTYtOTYgMTAgMCAxOS43IDEuNSAyOC44IDQuNHpNNzIgMTQ0YTU2IDU2IDAgMSAxIDExMiAwIDU2IDU2IDAgMSAxIC0xMTIgMHpNMCA0NDBjMC0xMy4zIDEwLjctMjQgMjQtMjRsNTI4IDBjMTMuMyAwIDI0IDEwLjcgMjQgMjRzLTEwLjcgMjQtMjQgMjRMMjQgNDY0Yy0xMy4zIDAtMjQtMTAuNy0yNC0yNHoiXX0sUmJ0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InN0YXItb2YtZGF2aWQiLGljb246WzUxMiw1MTIsWzEwMDE3XSwiZjY5YSIsIk00MTUuOSAzMTEuOWwtMjcuOCA0OC4xIDU1LjcgMC0yNy44LTQ4LjF6TTM4My42IDI1NmwtNjAuMi0xMDQtMTM0LjggMC02MC4yIDEwNCA2MC4yIDEwNCAxMzQuOCAwIDYwLjItMTA0em02NC43IDBsNTguNCAxMDAuOWMzLjUgNiA1LjMgMTIuOCA1LjMgMTkuNyAwIDIxLjctMTcuNiAzOS40LTM5LjQgMzkuNGwtMTE3IDAtNjEuMyAxMDUuOEMyODYuNSA1MzUuNiAyNzEuOCA1NDQgMjU2IDU0NHMtMzAuNS04LjQtMzguNC0yMi4ybC02MS4zLTEwNS44LTExNyAwYy0yMS43IDAtMzkuNC0xNy42LTM5LjQtMzkuNCAwLTYuOSAxLjgtMTMuNyA1LjMtMTkuN0w2My43IDI1NiA1LjMgMTU1LjFDMS44IDE0OS4xIDAgMTQyLjMgMCAxMzUuNCAwIDExMy42IDE3LjYgOTYgMzkuNCA5NmwxMTcgMCA2MS4zLTEwNS44QzIyNS41LTIzLjYgMjQwLjItMzIgMjU2LTMyczMwLjUgOC40IDM4LjQgMjIuMmw2MS4zIDEwNS44IDExNyAwYzIxLjcgMCAzOS40IDE3LjYgMzkuNCAzOS40IDAgNi45LTEuOCAxMy43LTUuMyAxOS43TDQ0OC4zIDI1NnpNMzg4LjEgMTUybDI3LjggNDguMSAyNy44LTQ4LjEtNTUuNyAwek0yOTEgOTZsLTM1LTYwLjQtMzUgNjAuNCA3MCAwek0xMjMuOSAxNTJsLTU1LjcgMCAyNy44IDQ4LjEgMjcuOC00OC4xek05Ni4xIDMxMS45bC0yNy44IDQ4LjEgNTUuNyAwLTI3LjgtNDguMXpNMjIxIDQxNmwzNSA2MC40IDM1LTYwLjQtNzAgMHoiXX0sQmJ0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6Im5vdGVzLW1lZGljYWwiLGljb246WzUxMiw1MTIsW10sImY0ODEiLCJNOTYgMzUyYzAgMzUuMyAyOC43IDY0IDY0IDY0bDE4MS41IDBjMTcgMCAzMy4zLTYuNyA0NS4zLTE4LjdMNDkzLjMgMjkwLjdjMTItMTIgMTguNy0yOC4zIDE4LjctNDUuM0w1MTIgNjRjMC0zNS4zLTI4LjctNjQtNjQtNjRMMTYwIDBDMTI0LjcgMCA5NiAyOC43IDk2IDY0bDAgMjg4ek0yODggMTEybDMyIDBjOC44IDAgMTYgNy4yIDE2IDE2bDAgNDggNDggMGM4LjggMCAxNiA3LjIgMTYgMTZsMCAzMmMwIDguOC03LjIgMTYtMTYgMTZsLTQ4IDAgMCA0OGMwIDguOC03LjIgMTYtMTYgMTZsLTMyIDBjLTguOCAwLTE2LTcuMi0xNi0xNmwwLTQ4LTQ4IDBjLTguOCAwLTE2LTcuMi0xNi0xNmwwLTMyYzAtOC44IDcuMi0xNiAxNi0xNmw0OCAwIDAtNDhjMC04LjggNy4yLTE2IDE2LTE2ek00OCAxMjBjMC0xMy4zLTEwLjctMjQtMjQtMjRTMCAxMDYuNyAwIDEyMEwwIDQ0OGMwIDM1LjMgMjguNyA2NCA2NCA2NGwyNjQgMGMxMy4zIDAgMjQtMTAuNyAyNC0yNHMtMTAuNy0yNC0yNC0yNEw2NCA0NjRjLTguOCAwLTE2LTcuMi0xNi0xNmwwLTMyOHoiXX0sSGJ0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImF1c3RyYWwtc2lnbiIsaWNvbjpbNDQ4LDUxMixbXSwiZTBhOSIsIk0yNjYuNSAyNDBsLTg1IDAgNDIuNS0xMDYuNCA0Mi41IDEwNi40em02OC45IDBMMjYyLjkgNTguM0MyNTYuNSA0Mi40IDI0MS4xIDMyIDIyNCAzMnMtMzIuNSAxMC40LTM4LjkgMjYuM0wxMTIuNiAyNDAgMzIgMjQwYy0xMy4zIDAtMjQgMTAuNy0yNCAyNHMxMC43IDI0IDI0IDI0bDYxLjQgMC0xOS4yIDQ4LTQyLjMgMGMtMTMuMyAwLTI0IDEwLjctMjQgMjRzMTAuNyAyNCAyNCAyNGwyMy4xIDAtMjAuOCA1Mi4xYy02LjYgMTYuNCAxLjQgMzUgMTcuOSA0MS42czM1LTEuNCA0MS42LTE3LjlsMzAuMy03NS45IDIwMCAwIDMwLjMgNzUuOWM2LjYgMTYuNCAyNS4yIDI0LjQgNDEuNiAxNy45czI0LjQtMjUuMiAxNy45LTQxLjZMMzkyLjkgMzg0IDQxNiAzODRjMTMuMyAwIDI0LTEwLjcgMjQtMjRzLTEwLjctMjQtMjQtMjRsLTQyLjMgMC0xOS4yLTQ4IDYxLjQgMGMxMy4zIDAgMjQtMTAuNyAyNC0yNHMtMTAuNy0yNC0yNC0yNGwtODAuNiAwem0tNDkuNyA0OGwxOS4yIDQ4LTE2MS42IDAgMTkuMi00OCAxMjMuMyAweiJdfSxxYnQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiY2xpcGJvYXJkLXVzZXIiLGljb246WzM4NCw1MTIsW10sImY3ZjMiLCJNMzExLjQgMzJsOC42IDBjMzUuMyAwIDY0IDI4LjcgNjQgNjRsMCAzNTJjMCAzNS4zLTI4LjcgNjQtNjQgNjRMNjQgNTEyYy0zNS4zIDAtNjQtMjguNy02NC02NEwwIDk2QzAgNjAuNyAyOC43IDMyIDY0IDMybDguNiAwQzgzLjYgMTIuOSAxMDQuMyAwIDEyOCAwTDI1NiAwYzIzLjcgMCA0NC40IDEyLjkgNTUuNCAzMnpNMjQ4IDExMmMxMy4zIDAgMjQtMTAuNyAyNC0yNHMtMTAuNy0yNC0yNC0yNEwxMzYgNjRjLTEzLjMgMC0yNCAxMC43LTI0IDI0czEwLjcgMjQgMjQgMjRsMTEyIDB6TTE5MiAzNDRhNTYgNTYgMCAxIDAgMC0xMTIgNTYgNTYgMCAxIDAgMCAxMTJ6TTk4LjMgNDEzYy0xMi45IDE1LjYgMi4yIDM1IDIyLjQgMzVsMTQyLjUgMGMyMC4yIDAgMzUuMy0xOS40IDIyLjQtMzUtMTQuNy0xNy43LTM2LjktMjktNjEuNy0yOWwtNjQgMGMtMjQuOCAwLTQ3IDExLjMtNjEuNyAyOXoiXX0samJ0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImZpbGUtaW1hZ2UiLGljb246WzM4NCw1MTIsWzEyODQ0M10sImYxYzUiLCJNMCA2NEMwIDI4LjcgMjguNyAwIDY0IDBMMjEzLjUgMGMxNyAwIDMzLjMgNi43IDQ1LjMgMTguN0wzNjUuMyAxMjUuM2MxMiAxMiAxOC43IDI4LjMgMTguNyA0NS4zTDM4NCA0NDhjMCAzNS4zLTI4LjcgNjQtNjQgNjRMNjQgNTEyYy0zNS4zIDAtNjQtMjguNy02NC02NEwwIDY0em0yMDgtNS41bDAgOTMuNWMwIDEzLjMgMTAuNyAyNCAyNCAyNEwzMjUuNSAxNzYgMjA4IDU4LjV6TTEyOCAyNTZhMzIgMzIgMCAxIDAgLTY0IDAgMzIgMzIgMCAxIDAgNjQgMHpNOTIuNiA0NDhsMTk4LjggMGMxNS44IDAgMjguNi0xMi44IDI4LjYtMjguNiAwLTcuMy0yLjgtMTQuNC03LjktMTkuN0wyMTUuMyAyOTcuOWMtNi02LjMtMTQuNC05LjktMjMuMi05LjlsLS4zIDBjLTguOCAwLTE3LjEgMy42LTIzLjIgOS45TDcxLjkgMzk5LjdDNjYuOCA0MDUgNjQgNDEyLjEgNjQgNDE5LjQgNjQgNDM1LjIgNzYuOCA0NDggOTIuNiA0NDh6Il19LG5sZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJzcXVhcmUtY2FyZXQtcmlnaHQiLGljb246WzQ0OCw1MTIsWyJjYXJldC1zcXVhcmUtcmlnaHQiXSwiZjE1MiIsIk00NDggOTZjMC0zNS4zLTI4LjctNjQtNjQtNjRMNjQgMzJDMjguNyAzMiAwIDYwLjcgMCA5NkwwIDQxNmMwIDM1LjMgMjguNyA2NCA2NCA2NGwzMjAgMGMzNS4zIDAgNjQtMjguNyA2NC02NGwwLTMyMHpNMzIwIDI1NmMwIDYuNy0yLjggMTMtNy43IDE3LjZsLTExMiAxMDRjLTcgNi41LTE3LjIgOC4yLTI1LjkgNC40UzE2MCAzNjkuNSAxNjAgMzYwbDAtMjA4YzAtOS41IDUuNy0xOC4yIDE0LjQtMjJzMTguOS0yLjEgMjUuOSA0LjRsMTEyIDEwNGM0LjkgNC41IDcuNyAxMC45IDcuNyAxNy42eiJdfSxWYnQ9bmxlLFVidD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJ2aWFsIixpY29uOls1MTIsNTEyLFsxMjk1MTRdLCJmNDkyIiwiTTM0Mi42IDkuNGMtMTIuNS0xMi41LTMyLjgtMTIuNS00NS4zIDBzLTEyLjUgMzIuOCAwIDQ1LjNMMzA2LjcgNjQgMjguMSAzNDIuNkMxMC4xIDM2MC42IDAgMzg1IDAgNDEwLjVMMCA0MTZjMCA1MyA0MyA5NiA5NiA5Nmw1LjUgMGMyNS41IDAgNDkuOS0xMC4xIDY3LjktMjguMWwyNzguNi0yNzguNiA5LjQgOS40YzEyLjUgMTIuNSAzMi44IDEyLjUgNDUuMyAwczEyLjUtMzIuOCAwLTQ1LjNsLTE2MC0xNjB6TTIwNS4zIDI1NmwxNDYuNy0xNDYuNyA1MC43IDUwLjctOTYgOTYtMTAxLjUgMHoiXX0sV2J0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImhlbGljb3B0ZXIiLGljb246WzU3Niw1MTIsWzEyODY0MV0sImY1MzMiLCJNMTc2IDMyYy0xMy4zIDAtMjQgMTAuNy0yNCAyNHMxMC43IDI0IDI0IDI0bDE1MiAwIDAgNDgtMjIwLjggMC0zMi44LTM5LjRDNjkuOSA4My4yIDYzLjEgODAgNTYgODBMMjQgODBDMTUuNyA4MCA4IDg0LjMgMy42IDkxLjRzLTQuOCAxNS45LTEuMSAyMy40bDQ4IDk2QzU0LjYgMjE4LjkgNjIuOSAyMjQgNzIgMjI0bDEwNy44IDAgMTA0IDE0My4xYzE1LjEgMjAuNyAzOS4xIDMyLjkgNjQuNyAzMi45bDc1LjUgMGM3NS4xIDAgMTM2LTYwLjkgMTM2LTEzNlM0OTkuMSAxMjggNDI0IDEyOGwtNDggMCAwLTQ4IDE1MiAwYzEzLjMgMCAyNC0xMC43IDI0LTI0cy0xMC43LTI0LTI0LTI0TDE3NiAzMnpNMzc2IDE5Mmw0OCAwYzM5LjggMCA3MiAzMi4yIDcyIDcycy0zMi4yIDcyLTcyIDcybC00OCAwIDAtMTQ0ek01NTIgNDE2Yy0xMy4zIDAtMjQgMTAuNy0yNCAyNCAwIDQuNC0zLjYgOC04IDhsLTI3MiAwYy0xMy4zIDAtMjQgMTAuNy0yNCAyNHMxMC43IDI0IDI0IDI0bDI3MiAwYzMwLjkgMCA1Ni0yNS4xIDU2LTU2IDAtMTMuMy0xMC43LTI0LTI0LTI0eiJdfSxHYnQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToibWl0dGVuIixpY29uOls0NDgsNTEyLFtdLCJmN2I1IiwiTTM1MiAzODRMNjQgMzg0IDUuNCAxNzguOUMxLjggMTY2LjQgMCAxNTMuNCAwIDE0MC4zIDAgNjIuOCA2Mi44IDAgMTQwLjMgMGwzLjQgMGM2NiAwIDEyMy41IDQ0LjkgMTM5LjUgMTA4LjlsMzEuNCAxMjUuOCAxNy42LTIwLjFDMzQ0LjggMjAwLjIgMzYyLjkgMTkyIDM4MiAxOTJsMi44IDBjMzQuOSAwIDYzLjMgMjguMyA2My4zIDYzLjMgMCAxNS45LTYgMzEuMi0xNi44IDQyLjlMMzUyIDM4NHpNMzIgNDY0YzAtMTcuNyAxNC4zLTMyIDMyLTMybDI4OCAwYzE3LjcgMCAzMiAxNC4zIDMyIDMybDAgMTZjMCAxNy43LTE0LjMgMzItMzIgMzJMNjQgNTEyYy0xNy43IDAtMzItMTQuMy0zMi0zMmwwLTE2eiJdfSxZYnQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZ2FzLXB1bXAiLGljb246WzUxMiw1MTIsWzk5ODFdLCJmNTJmIiwiTTMyIDY0QzMyIDI4LjcgNjAuNyAwIDk2IDBMMjU2IDBjMzUuMyAwIDY0IDI4LjcgNjQgNjRsMCAxOTIgOCAwYzQ4LjYgMCA4OCAzOS40IDg4IDg4bDAgMzJjMCAxMy4zIDEwLjcgMjQgMjQgMjRzMjQtMTAuNyAyNC0yNGwwLTE1NGMtMjcuNi03LjEtNDgtMzIuMi00OC02MmwwLTU5LjUtMjUuOC0yOC4zYy04LjktOS44LTguMi0yNSAxLjYtMzMuOXMyNS04LjIgMzMuOSAxLjZsNzEuNyA3OC44YzkuNCAxMC4zIDE0LjYgMjMuNyAxNC42IDM3LjdMNTEyIDM3NmMwIDM5LjgtMzIuMiA3Mi03MiA3MnMtNzItMzIuMi03Mi03MmwwLTMyYzAtMjIuMS0xNy45LTQwLTQwLTQwbC04IDAgMCAxNjEuNGM5LjMgMy4zIDE2IDEyLjIgMTYgMjIuNiAwIDEzLjMtMTAuNyAyNC0yNCAyNEw0MCA1MTJjLTEzLjMgMC0yNC0xMC43LTI0LTI0IDAtMTAuNSA2LjctMTkuMyAxNi0yMi42TDMyIDY0ek05NiA4MGwwIDk2YzAgOC44IDcuMiAxNiAxNiAxNmwxMjggMGM4LjggMCAxNi03LjIgMTYtMTZsMC05NmMwLTguOC03LjItMTYtMTYtMTZMMTEyIDY0Yy04LjggMC0xNiA3LjItMTYgMTZ6Il19LFpidD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJlbnZlbG9wZS1jaXJjbGUtY2hlY2siLGljb246WzY0MCw1MTIsW10sImU0ZTgiLCJNNjQgMTEyYzAtMjYuNSAyMS41LTQ4IDQ4LTQ4bDQxNiAwYzI2LjUgMCA0OCAyMS41IDQ4IDQ4bDAgODEuNGMtMjQuNC0xMS4yLTUxLjQtMTcuNC04MC0xNy40LTg3LjcgMC0xNjEuNyA1OC44LTE4NC43IDEzOS4yLTcuMS0xLjMtMTQuMS00LjItMjAuMS04LjhsLTIwOC0xNTZDNzEuMSAxNDEuMyA2NCAxMjcuMSA2NCAxMTJ6TTMwNCAzNjhjMCAyOC42IDYuMiA1NS42IDE3LjQgODBMMTI4IDQ0OGMtMzUuMyAwLTY0LTI4LjctNjQtNjRsMC0xODggMTk4LjQgMTQ4LjhjMTIuNiA5LjQgMjYuOSAxNS40IDQxLjcgMTcuOSAwIDEuOC0uMSAzLjUtLjEgNS4zem00OCAwYTE0NCAxNDQgMCAxIDEgMjg4IDAgMTQ0IDE0NCAwIDEgMSAtMjg4IDB6bTIwMS40LTYwLjljLTcuMS01LjItMTcuMi0zLjYtMjIuNCAzLjVsLTUzIDcyLjktMjYuOC0yNi44Yy02LjItNi4yLTE2LjQtNi4yLTIyLjYgMHMtNi4yIDE2LjQgMCAyMi42bDQwIDQwYzMuMyAzLjMgNy45IDUgMTIuNiA0LjZzOC45LTIuOCAxMS43LTYuNWw2NC04OGM1LjItNy4xIDMuNi0xNy4yLTMuNS0yMi4zeiJdfSxvbGU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToicGVyc29uLXNrYXRpbmciLGljb246WzUxMiw1MTIsWyJza2F0aW5nIl0sImY3YzUiLCJNMzY4IDU2YTU2IDU2IDAgMSAxIDExMiAwIDU2IDU2IDAgMSAxIC0xMTIgMHpNMTI4IDEyOGMwLTE3LjcgMTQuMy0zMiAzMi0zMmwxNTAuMSAwYzQ5LjkgMCA3NC45IDYwLjMgMzkuNiA5NS42bC02My45IDYzLjkgNjkuOCAzMWMxNy4zIDcuNyAyOC41IDI0LjkgMjguNSA0My45bDAgODUuNmMwIDE3LjctMTQuMyAzMi0zMiAzMnMtMzItMTQuMy0zMi0zMmwwLTc1LjItODIuNC0zNi42Yy00MS0xOC4yLTUxLTcyLTE5LjMtMTAzLjdsNDAuNC00MC40LTk4LjcgMGMtMTcuNyAwLTMyLTE0LjMtMzItMzJ6TTg5LjQgMzYxLjRsNzUuOS03NS45YzcuNyAxOS43IDIxLjYgMzcuMyA0MSA0OS42bC03MS42IDcxLjZjLTEyLjUgMTIuNS0zMi44IDEyLjUtNDUuMyAwcy0xMi41LTMyLjggMC00NS4zem0zNDYuNSA4Ny4xYzguNiAyLjEgMTMuOCAxMC44IDExLjYgMTkuNGwtLjQgMS43Yy02LjIgMjQuOS0yOC42IDQyLjQtNTQuMyA0Mi40TDMwNCA1MTJjLTguOCAwLTE2LTcuMi0xNi0xNnM3LjItMTYgMTYtMTZsODguOCAwYzExIDAgMjAuNi03LjUgMjMuMy0xOC4ybC40LTEuN2MyLjEtOC42IDEwLjgtMTMuOCAxOS40LTExLjZ6TTE0My4yIDQ4Ni4zbC02LjIgMy4xYy0yMS42IDEwLjgtNDcuNiA2LjYtNjQuNi0xMC41TDEyLjcgNDE5LjNjLTYuMi02LjItNi4yLTE2LjQgMC0yMi42czE2LjQtNi4yIDIyLjYgMGw1OS42IDU5LjZjNy4zIDcuMyAxOC41IDkuMSAyNy43IDQuNWw2LjItMy4xYzcuOS00IDE3LjUtLjcgMjEuNSA3LjJzLjcgMTcuNS03LjIgMjEuNXoiXX0sWGJ0PW9sZSx0RT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJzdW4iLGljb246WzU3Niw1MTIsWzk3MjhdLCJmMTg1IiwiTTI4OC0zMmM4LjQgMCAxNi4zIDQuNCAyMC42IDExLjdMMzY0LjEgNzIuMyA0NjguOSA0NmM4LjItMiAxNi45IC40IDIyLjggNi4zUzUwMCA2NyA0OTggNzUuMWwtMjYuMyAxMDQuNyA5Mi43IDU1LjVjNy4yIDQuMyAxMS43IDEyLjIgMTEuNyAyMC42cy00LjQgMTYuMy0xMS43IDIwLjZMNDcxLjcgMzMyLjEgNDk4IDQzNi44YzIgOC4yLS40IDE2LjktNi4zIDIyLjhTNDc3IDQ2OCA0NjguOSA0NjZsLTEwNC43LTI2LjMtNTUuNSA5Mi43Yy00LjMgNy4yLTEyLjIgMTEuNy0yMC42IDExLjdzLTE2LjMtNC40LTIwLjYtMTEuN0wyMTEuOSA0MzkuNyAxMDcuMiA0NjZjLTguMiAyLTE2LjgtLjQtMjIuOC02LjNTNzYgNDQ1IDc4IDQzNi44bDI2LjItMTA0LjctOTIuNi01NS41QzQuNCAyNzIuMiAwIDI2NC40IDAgMjU2czQuNC0xNi4zIDExLjctMjAuNkwxMDQuMyAxNzkuOSA3OCA3NS4xYy0yLTguMiAuMy0xNi44IDYuMy0yMi44Uzk5IDQ0IDEwNy4yIDQ2bDEwNC43IDI2LjIgNTUuNS05Mi42IDEuOC0yLjZjNC41LTUuNyAxMS40LTkuMSAxOC44LTkuMXptMCAxNDRhMTQ0IDE0NCAwIDEgMCAwIDI4OCAxNDQgMTQ0IDAgMSAwIDAtMjg4em0wIDI0MGE5NiA5NiAwIDEgMSAwLTE5MiA5NiA5NiAwIDEgMSAwIDE5MnoiXX0sc2xlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImJhc2ViYWxsIixpY29uOls1MTIsNTEyLFsxMjkzNTgsOTkxOCwiYmFzZWJhbGwtYmFsbCJdLCJmNDMzIiwiTTIzMi40IDEuMWMtMTIyLjIgMTEuNC0yMTkuNSAxMDguNy0yMzAuOSAyMzAuOSAxNi4yLS4xIDMyLTEuOCA0Ny4yLTUgMTMtMi43IDI1LjcgNS41IDI4LjQgMTguNXMtNS41IDI1LjctMTguNSAyOC40Yy0xOC40IDMuOS0zNy42IDYtNTcuMSA2LjEgMTEuNCAxMjIuMiAxMDguNyAyMTkuNSAyMzAuOSAyMzAuOSAuMS0xOS41IDIuMi0zOC43IDYuMS01Ny4xIDIuNy0xMyAxNS41LTIxLjMgMjguNC0xOC41czIxLjMgMTUuNSAxOC41IDI4LjRjLTMuMiAxNS4yLTQuOSAzMS01IDQ3LjIgMTIyLjItMTEuNCAyMTkuNS0xMDguNyAyMzAuOS0yMzAuOS0xNi4yIC4xLTMyIDEuOC00Ny4yIDUtMTMgMi43LTI1LjctNS41LTI4LjQtMTguNXM1LjUtMjUuNyAxOC41LTI4LjRjMTguNC0zLjkgMzcuNi02IDU3LjEtNi4xLTExLjQtMTIyLjItMTA4LjctMjE5LjUtMjMwLjktMjMwLjktLjEgMTkuNS0yLjIgMzguNy02LjEgNTcuMS0yLjcgMTMtMTUuNSAyMS4zLTI4LjQgMTguNXMtMjEuMy0xNS41LTE4LjUtMjguNGMzLjItMTUuMiA0LjktMzEgNS00Ny4yem0yLjggMTUxLjRjLTIxLjQgMzIuOS00OS41IDYwLjktODIuMyA4Mi4zLTExLjEgNy4yLTI2IDQuMS0zMy4yLTdzLTQuMS0yNiA3LTMzLjJjMjcuMi0xNy43IDUwLjUtNDEgNjguMy02OC4zIDcuMi0xMS4xIDIyLjEtMTQuMyAzMy4yLTdzMTQuMyAyMi4xIDcgMzMuMnpNMzkzLjEgMjg0LjJjNy4yIDExLjEgNC4xIDI2LTcgMzMuMi0yNy4yIDE3LjctNTAuNSA0MS02OC4zIDY4LjMtNy4yIDExLjEtMjIuMSAxNC4zLTMzLjIgN3MtMTQuMy0yMi4xLTctMzMuMmMyMS40LTMyLjkgNDkuNS02MC45IDgyLjMtODIuMyAxMS4xLTcuMiAyNi00LjEgMzMuMiA3eiJdfSxRYnQ9c2xlLEpidD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJpbWFnZSIsaWNvbjpbNDQ4LDUxMixbXSwiZjAzZSIsIk02NCAzMkMyOC43IDMyIDAgNjAuNyAwIDk2TDAgNDE2YzAgMzUuMyAyOC43IDY0IDY0IDY0bDMyMCAwYzM1LjMgMCA2NC0yOC43IDY0LTY0bDAtMzIwYzAtMzUuMy0yOC43LTY0LTY0LTY0TDY0IDMyem02NCA4MGE0OCA0OCAwIDEgMSAwIDk2IDQ4IDQ4IDAgMSAxIDAtOTZ6TTI3MiAyMjRjOC40IDAgMTYuMSA0LjQgMjAuNSAxMS41bDg4IDE0NGM0LjUgNy40IDQuNyAxNi43IC41IDI0LjNTMzY4LjcgNDE2IDM2MCA0MTZMODggNDE2Yy04LjkgMC0xNy4yLTUtMjEuMy0xMi45cy0zLjUtMTcuNSAxLjYtMjQuOGw1Ni04MGM0LjUtNi40IDExLjgtMTAuMiAxOS43LTEwLjJzMTUuMiAzLjggMTkuNyAxMC4ybDI2LjQgMzcuOCA2MS40LTEwMC41YzQuNC03LjEgMTIuMS0xMS41IDIwLjUtMTEuNXoiXX0sS2J0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6Im5vdGRlZiIsaWNvbjpbMzg0LDUxMixbXSwiZTFmZSIsIk02NCAzOTAuM0wxNTMuNSAyNTYgNjQgMTIxLjcgNjQgMzkwLjN6TTEwMi41IDQ0OEwyODEuNSA0NDggMTkyIDMxMy43IDEwMi41IDQ0OHptMTI4LTE5MkwzMjAgMzkwLjMgMzIwIDEyMS43IDIzMC41IDI1NnpNMjgxLjUgNjRMMTAyLjUgNjQgMTkyIDE5OC4zIDI4MS41IDY0ek0wIDQ4QzAgMjEuNSAyMS41IDAgNDggMEwzMzYgMGMyNi41IDAgNDggMjEuNSA0OCA0OGwwIDQxNmMwIDI2LjUtMjEuNSA0OC00OCA0OEw0OCA1MTJjLTI2LjUgMC00OC0yMS41LTQ4LTQ4TDAgNDh6Il19LGxsZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJiYXNrZXRiYWxsIixpY29uOls1MTIsNTEyLFsxMjc5MzYsImJhc2tldGJhbGwtYmFsbCJdLCJmNDM0IiwiTTkyLjcgNTguOGw3OC40IDc4LjRjMTguMi0yNSAyOC45LTU1LjkgMjguOS04OS4yIDAtMTQuMS0xLjktMjcuNy01LjUtNDAuNi0zOCA5LjQtNzIuNiAyNy4yLTEwMS44IDUxLjR6TTU4LjggOTIuN2MtMjQuMiAyOS4yLTQyIDYzLjgtNTEuNCAxMDEuOCAxMi45IDMuNiAyNi41IDUuNSA0MC42IDUuNSAzMy4zIDAgNjQuMS0xMC43IDg5LjItMjguOUw1OC44IDkyLjd6TTI1NiAwYy00LjYgMC05LjIgLjEtMTMuNyAuNCAzLjcgMTUuMyA1LjcgMzEuMiA1LjcgNDcuNiAwIDQ2LjYtMTUuOSA4OS40LTQyLjYgMTIzLjRMMjU2IDIyMi4xIDQxOS4zIDU4LjhDMzc0LjkgMjIuMSAzMTguMSAwIDI1NiAwek00OCAyNDhjLTE2LjQgMC0zMi40LTItNDcuNi01LjctLjIgNC41LS40IDkuMS0uNCAxMy43IDAgNjIuMSAyMi4xIDExOC45IDU4LjggMTYzLjNMMjIyLjEgMjU2IDE3MS40IDIwNS40QzEzNy40IDIzMi4xIDk0LjYgMjQ4IDQ4IDI0OHptNDYzLjYgMjEuN2MuMi00LjUgLjQtOS4xIC40LTEzLjcgMC02Mi4xLTIyLjEtMTE4LjktNTguOC0xNjMuM0wyODkuOSAyNTYgMzQwLjYgMzA2LjZjMzQtMjYuNyA3Ni45LTQyLjYgMTIzLjQtNDIuNiAxNi40IDAgMzIuNCAyIDQ3LjYgNS43em0tNy4xIDQ3LjhjLTEyLjktMy42LTI2LjUtNS41LTQwLjYtNS41LTMzLjMgMC02NC4xIDEwLjctODkuMiAyOC45bDc4LjQgNzguNGMyNC4yLTI5LjIgNDItNjMuOCA1MS40LTEwMS44ek0zNDAuOSAzNzQuOGMtMTguMiAyNS0yOC45IDU1LjktMjguOSA4OS4yIDAgMTQuMSAxLjkgMjcuNyA1LjUgNDAuNiAzOC05LjQgNzIuNi0yNy4yIDEwMS44LTUxLjRsLTc4LjQtNzguNHptLTM0LjMtMzQuM0wyNTYgMjg5LjkgOTIuNyA0NTMuMmM0NC4zIDM2LjcgMTAxLjIgNTguOCAxNjMuMyA1OC44IDQuNiAwIDkuMi0uMSAxMy43LS40LTMuNy0xNS4zLTUuNy0zMS4yLTUuNy00Ny42IDAtNDYuNiAxNS45LTg5LjQgNDIuNi0xMjMuNHoiXX0sZXZ0PWxsZSxjbGU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToicGVuY2lsIixpY29uOls1MTIsNTEyLFs5OTk5LDYxNTA0LCJwZW5jaWwtYWx0Il0sImYzMDMiLCJNMzYuNCAzNTMuMmM0LjEtMTQuNiAxMS44LTI3LjkgMjIuNi0zOC43bDE4MS4yLTE4MS4yIDMzLjktMzMuOWMxNi42IDE2LjYgNTEuMyA1MS4zIDEwNCAxMDRsMzMuOSAzMy45LTMzLjkgMzMuOS0xODEuMiAxODEuMmMtMTAuNyAxMC43LTI0LjEgMTguNS0zOC43IDIyLjZMMzAuNCA1MTAuNmMtOC4zIDIuMy0xNy4zIDAtMjMuNC02LjJTLTEuNCA0ODkuMyAuOSA0ODFMMzYuNCAzNTMuMnptNTUuNi0zLjdjLTQuNCA0LjctNy42IDEwLjQtOS4zIDE2LjZsLTI0LjEgODYuOSA4Ni45LTI0LjFjNi40LTEuOCAxMi4yLTUuMSAxNy05LjdMOTEuOSAzNDkuNXptMzU0LTE0Ni4xYy0xNi42LTE2LjYtNTEuMy01MS4zLTEwNC0xMDRMMzA4IDY1LjVDMzM0LjUgMzkgMzQ5LjQgMjQuMSAzNTIuOSAyMC42IDM2Ni40IDcgMzg0LjgtLjYgNDA0LS42UzQ0MS42IDcgNDU1LjEgMjAuNmwzNS43IDM1LjdDNTA0LjQgNjkuOSA1MTIgODguMyA1MTIgMTA3LjRzLTcuNiAzNy42LTIxLjIgNTEuMWMtMy41IDMuNS0xOC40IDE4LjQtNDQuOSA0NC45eiJdfSx0dnQ9Y2xlLHJ2dD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJwZXJzb24td2Fsa2luZy1hcnJvdy1sb29wLWxlZnQiLGljb246WzY0MCw1MTIsW10sImU1NTEiLCJNMTYwIDgwYTU2IDU2IDAgMSAwIDAtMTEyIDU2IDU2IDAgMSAwIDAgMTEyek03My40IDIyNy45bDIyLjYtMjIuNiAwIDY5LjNjMCAyOCAxMi4yIDU0LjcgMzMuNSA3Mi45bDcxLjQgNjEuMmM1LjkgNS4xIDkuOCAxMi4xIDEwLjkgMTkuOGwxMi42IDg4LjFjMi41IDE3LjUgMTguNyAyOS43IDM2LjIgMjcuMnMyOS43LTE4LjcgMjcuMi0zNi4ybC0xMi42LTg4LjFjLTMuMy0yMy4xLTE0LjktNDQuMS0zMi42LTU5LjNsLTM0LjUtMjkuNiAwLTExNS4yIDMuOCA0LjdjMTguMiAyMi44IDQ1LjggMzYgNzUgMzZsMzMuMiAwYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMybC0zMy4yIDBjLTkuNyAwLTE4LjktNC40LTI1LTEybC0xNy45LTIyLjRjLTIzLTI4LjgtNTcuOS00NS42LTk0LjgtNDUuNi0zMi4yIDAtNjMuMSAxMi44LTg1LjggMzUuNkwyOC4xIDE4Mi42QzEwLjEgMjAwLjYgMCAyMjUgMCAyNTAuNUwwIDI4OGMwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMybDAtMzcuNWMwLTguNSAzLjQtMTYuNiA5LjQtMjIuNnpNODUuOCA0MDcuM2MtMS41IDUuMi00LjMgMTAtOC4xIDEzLjhMOS40IDQ4OS40Yy0xMi41IDEyLjUtMTIuNSAzMi44IDAgNDUuM3MzMi44IDEyLjUgNDUuMyAwbDY4LjMtNjguM2MxMS41LTExLjUgMTkuOS0yNS44IDI0LjQtNDEuNWwyLjItNy42LTQ2LTM5LjRjLTIuNS0yLjItNS00LjQtNy40LTYuOEw4NS44IDQwNy4zek0zNTkgMzM1Yy05LjQgOS40LTkuNCAyNC42IDAgMzMuOWw3MiA3MmM5LjQgOS40IDI0LjYgOS40IDMzLjkgMHM5LjQtMjQuNiAwLTMzLjlsLTMxLTMxIDEwMi4xIDBjMS4yIDAgMi40LS4xIDMuNS0uMyA1Ni4xLTMuOSAxMDAuNS01MC42IDEwMC41LTEwNy43IDAtNTkuNi00OC40LTEwOC0xMDgtMTA4bC05MiAwYy0xMy4zIDAtMjQgMTAuNy0yNCAyNHMxMC43IDI0IDI0IDI0bDkyIDBjMzMuMSAwIDYwIDI2LjkgNjAgNjBzLTI2LjkgNjAtNjAgNjBsLTk4LjEgMCAzMS0zMWM5LjQtOS40IDkuNC0yNC42IDAtMzMuOXMtMjQuNi05LjQtMzMuOSAwbC03MiA3MnoiXX0saXZ0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImRpY2Utc2l4IixpY29uOls0NDgsNTEyLFs5ODYxXSwiZjUyNiIsIk0wIDk2QzAgNjAuNyAyOC43IDMyIDY0IDMybDMyMCAwYzM1LjMgMCA2NCAyOC43IDY0IDY0bDAgMzIwYzAgMzUuMy0yOC43IDY0LTY0IDY0TDY0IDQ4MGMtMzUuMyAwLTY0LTI4LjctNjQtNjRMMCA5NnptMTYwIDY0YTMyIDMyIDAgMSAwIC02NCAwIDMyIDMyIDAgMSAwIDY0IDB6TTEyOCAyODhhMzIgMzIgMCAxIDAgMC02NCAzMiAzMiAwIDEgMCAwIDY0em0zMiA2NGEzMiAzMiAwIDEgMCAtNjQgMCAzMiAzMiAwIDEgMCA2NCAwek0zMjAgMTkyYTMyIDMyIDAgMSAwIDAtNjQgMzIgMzIgMCAxIDAgMCA2NHptMzIgNjRhMzIgMzIgMCAxIDAgLTY0IDAgMzIgMzIgMCAxIDAgNjQgMHpNMzIwIDM4NGEzMiAzMiAwIDEgMCAwLTY0IDMyIDMyIDAgMSAwIDAgNjR6Il19LGRsZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJhbmdsZXMtZG93biIsaWNvbjpbMzg0LDUxMixbImFuZ2xlLWRvdWJsZS1kb3duIl0sImYxMDMiLCJNMjE0LjYgNDcwLjZjLTEyLjUgMTIuNS0zMi44IDEyLjUtNDUuMyAwbC0xNjAtMTYwYy0xMi41LTEyLjUtMTIuNS0zMi44IDAtNDUuM3MzMi44LTEyLjUgNDUuMyAwTDE5MiA0MDIuNyAzMjkuNCAyNjUuNGMxMi41LTEyLjUgMzIuOC0xMi41IDQ1LjMgMHMxMi41IDMyLjggMCA0NS4zbC0xNjAgMTYwem0xNjAtMzUybC0xNjAgMTYwYy0xMi41IDEyLjUtMzIuOCAxMi41LTQ1LjMgMGwtMTYwLTE2MGMtMTIuNS0xMi41LTEyLjUtMzIuOCAwLTQ1LjNzMzIuOC0xMi41IDQ1LjMgMEwxOTIgMjEwLjcgMzI5LjQgNzMuNGMxMi41LTEyLjUgMzIuOC0xMi41IDQ1LjMgMHMxMi41IDMyLjggMCA0NS4zeiJdfSxhdnQ9ZGxlLG52dD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJzeXJpbmdlIixpY29uOls1NzYsNTEyLFsxMjgxMzddLCJmNDhlIiwiTTQ5Ny41LTE3Yy05LjQtOS40LTI0LjYtOS40LTMzLjkgMHMtOS40IDI0LjYgMCAzMy45bDE1IDE1LTQ2LjEgNDYuMS02My02M2MtOS40LTkuNC0yNC42LTkuNC0zMy45IDBzLTkuNCAyNC42IDAgMzMuOWw3IDctNzguMSA3OC4xIDQxIDQxYzkuNCA5LjQgOS40IDI0LjYgMCAzMy45cy0yNC42IDkuNC0zMy45IDBsLTQxLTQxLTQ2LjEgNDYuMSA0MSA0MWM5LjQgOS40IDkuNCAyNC42IDAgMzMuOXMtMjQuNiA5LjQtMzMuOSAwbC00MS00MS0zNy43IDM3LjdjLTEwLjUgMTAuNS0xNi40IDI0LjctMTYuNCAzOS42bDAgODguOC01NyA1N2MtOS40IDkuNC05LjQgMjQuNiAwIDMzLjlzMjQuNiA5LjQgMzMuOSAwbDU3LTU3IDg4LjggMGMxNC45IDAgMjkuMS01LjkgMzkuNi0xNi40bDIyOS43LTIyOS43IDcgN2M5LjQgOS40IDI0LjYgOS40IDMzLjkgMHM5LjQtMjQuNiAwLTMzLjlsLTYzLTYzIDQ2LjEtNDYuMSAxNSAxNWM5LjQgOS40IDI0LjYgOS40IDMzLjkgMHM5LjQtMjQuNiAwLTMzLjlsLTY0LTY0eiJdfSx1bGU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToid2hlYXQtYXduIixpY29uOls1NzYsNTEyLFsid2hlYXQtYWx0Il0sImUyY2QiLCJNNzkuNyAyMzQuNmM2LjItNC4xIDE0LjctMy40IDIwLjEgMi4xbDQ2LjEgNDYuMSA2LjEgNi43YzE5LjcgMjMuOCAyNi4zIDU1IDE5LjIgODMuOSAzMS43LTcuNyA2Ni4yIDEgOTAuNiAyNS4zbDQ2LjEgNDYuMWM2LjIgNi4yIDYuMiAxNi40IDAgMjIuNmwtNy40IDcuNGMtMzcuNSAzNy41LTk4LjMgMzcuNS0xMzUuOCAwTDEzNC4xIDQ0NC4zIDQ5LjQgNTI5Yy05LjQgOS40LTI0LjUgOS40LTMzLjkgMC05LjQtOS40LTkuNC0yNC42IDAtMzMuOWw4NC43LTg0LjctMzAuNS0zMC41Yy0zNy41LTM3LjUtMzcuNS05OC4zIDAtMTM1LjdsNy40LTcuNCAyLjUtMi4xem0xMDQtMTA0YzYuMi00LjEgMTQuNy0zLjQgMjAuMSAyLjFsNDYuMSA0Ni4xIDYuMSA2LjdjMTkuNyAyMy44IDI2LjMgNTUgMTkuMiA4My45IDMxLjctNy43IDY2LjIgMSA5MC42IDI1LjNsNDYuMSA0Ni4xYzYuMiA2LjIgNi4yIDE2LjQgMCAyMi42bC03LjQgNy40Yy0zNy41IDM3LjUtOTguMyAzNy41LTEzNS44IDBsLTk0LjktOTQuOWMtMzcuNS0zNy41LTM3LjUtOTguMyAwLTEzNS43bDcuNC03LjQgMi41LTIuMXpNNDk1LjIgMTVjOS40LTkuNCAyNC42LTkuNCAzNCAwIDguOCA4LjggOS4zIDIyLjcgMS42IDMyLjJMNTI5LjIgNDkgNDE0LjcgMTYzLjRjNy43IDEgMTUuMiAzIDIyLjUgNS45TDQ5NS41IDExMWM5LjQtOS40IDI0LjYtOS40IDM0IDAgOC44IDguOCA5LjMgMjIuNyAxLjYgMzIuMWwtMS43IDEuOC01Mi43IDUyLjcgMzkgMzljNi4yIDYuMiA2LjIgMTYuNCAwIDIyLjZsLTcuNCA3LjRjLTM3LjUgMzcuNS05OC4zIDM3LjUtMTM1LjggMGwtOTQuOS05NC45Yy0zNy41LTM3LjUtMzcuNS05OC4zIDAtMTM1LjdsNy40LTcuNCAyLjUtMi4xYzYuMi00LjEgMTQuNy0zLjQgMjAuMSAyLjFsMzkgMzkgNTIuNy01Mi43YzkuNC05LjQgMjQuNi05LjQgMzQgMCA4LjggOC44IDkuMyAyMi43IDEuNiAzMi4xbC0xLjcgMS44LTU4LjMgNTguM2MyLjggNy4xIDQuNyAxNC41IDUuNyAyMi4xTDQ5NS4yIDE1eiJdfSxvdnQ9dWxlLHN2dD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJwbGFuZS11cCIsaWNvbjpbNTEyLDUxMixbXSwiZTIyZCIsIk0yMDAgMjRjMC0zMC45IDI1LjEtNTYgNTYtNTZzNTYgMjUuMSA1NiA1NmwwIDEyNy4zIDE3My42IDE1OS4yYzYuNiA2LjEgMTAuNCAxNC42IDEwLjQgMjMuNmwwIDQzLjdjMCAxMC45LTEwLjcgMTguNi0yMS4xIDE1LjJsLTE2Mi45LTU0LjMgMCA5OS43IDY2IDUyLjhjMy44IDMgNiA3LjYgNiAxMi41bDAgMTkuOGMwIDEwLjQtOS44IDE4LTE5LjkgMTUuNUwyNTYgNTEyIDE0Ny45IDUzOWMtMTAuMSAyLjUtMTkuOS01LjEtMTkuOS0xNS41bDAtMTkuOGMwLTQuOSAyLjItOS41IDYtMTIuNWw2Ni01Mi44IDAtOTkuNy0xNjIuOSA1NC4zQzI2LjcgMzk2LjQgMTYgMzg4LjcgMTYgMzc3LjhsMC00My43YzAtOSAzLjgtMTcuNSAxMC40LTIzLjZMMjAwIDE1MS4zIDIwMCAyNHoiXX0sbHZ0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImFsaWduLWNlbnRlciIsaWNvbjpbNDQ4LDUxMixbXSwiZjAzNyIsIk0zNTIgNjRjMC0xNy43LTE0LjMtMzItMzItMzJMMTI4IDMyYy0xNy43IDAtMzIgMTQuMy0zMiAzMnMxNC4zIDMyIDMyIDMybDE5MiAwYzE3LjcgMCAzMi0xNC4zIDMyLTMyem05NiAxMjhjMC0xNy43LTE0LjMtMzItMzItMzJMMzIgMTYwYy0xNy43IDAtMzIgMTQuMy0zMiAzMnMxNC4zIDMyIDMyIDMybDM4NCAwYzE3LjcgMCAzMi0xNC4zIDMyLTMyek0wIDQ0OGMwIDE3LjcgMTQuMyAzMiAzMiAzMmwzODQgMGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMkwzMiA0MTZjLTE3LjcgMC0zMiAxNC4zLTMyIDMyek0zNTIgMzIwYzAtMTcuNy0xNC4zLTMyLTMyLTMybC0xOTIgMGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJzMTQuMyAzMiAzMiAzMmwxOTIgMGMxNy43IDAgMzItMTQuMyAzMi0zMnoiXX0sY3Z0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImhvY2tleS1wdWNrIixpY29uOls1MTIsNTEyLFtdLCJmNDUzIiwiTTI1NiAyNTZDMTE0LjYgMjU2IDAgMjEzIDAgMTYwczExNC42LTk2IDI1Ni05NiAyNTYgNDMgMjU2IDk2LTExNC42IDk2LTI1NiA5NnpNMCAzNTJMMCAyNDIuN2MxNi45IDEyLjMgMzcgMjIuMiA1OC4xIDMwLjEgNTMgMTkuOSAxMjMgMzEuMiAxOTcuOSAzMS4yczE0NC45LTExLjMgMTk3LjktMzEuMmMyMS4yLTcuOSA0MS4yLTE3LjggNTguMS0zMC4xTDUxMiAzNTJjMCA1My0xMTQuNiA5Ni0yNTYgOTZTMCA0MDUgMCAzNTJ6Il19LHBsZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJjaXJjbGUtYXJyb3ctbGVmdCIsaWNvbjpbNTEyLDUxMixbImFycm93LWNpcmNsZS1sZWZ0Il0sImYwYTgiLCJNMjU2IDUxMmEyNTYgMjU2IDAgMSAwIDAtNTEyIDI1NiAyNTYgMCAxIDAgMCA1MTJ6TTEzNSAyMzlsODAtODBjOS40LTkuNCAyNC42LTkuNCAzMy45IDBzOS40IDI0LjYgMCAzMy45bC0zOSAzOSAxNTAuMSAwYzEzLjMgMCAyNCAxMC43IDI0IDI0cy0xMC43IDI0LTI0IDI0bC0xNTAuMSAwIDM5IDM5YzkuNCA5LjQgOS40IDI0LjYgMCAzMy45cy0yNC42IDkuNC0zMy45IDBsLTgwLTgwYy05LjQtOS40LTkuNC0yNC42IDAtMzMuOXoiXX0sZHZ0PXBsZSx1dnQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToicGx1Zy1jaXJjbGUtYm9sdCIsaWNvbjpbNjQwLDUxMixbXSwiZTU1YiIsIk0xOTItMzJjMTcuNyAwIDMyIDE0LjMgMzIgMzJsMCA5NiAxMjggMCAwLTk2YzAtMTcuNyAxNC4zLTMyIDMyLTMyczMyIDE0LjMgMzIgMzJsMCA5NiA2NCAwYzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMybDAgNDguN2MtOTguNiA4LjEtMTc2IDkwLjctMTc2IDE5MS4zIDAgMjcuMyA1LjcgNTMuMyAxNiA3Ni45bDAgMy4xYzAgMTcuNy0xNC4zIDMyLTMyIDMycy0zMi0xNC4zLTMyLTMybDAtNjYuN0MxNjUuMiAzOTguMSA5NiAzMTkuMSA5NiAyMjRsMC02NGMtMTcuNyAwLTMyLTE0LjMtMzItMzJTNzguMyA5NiA5NiA5Nmw2NCAwIDAtOTZjMC0xNy43IDE0LjMtMzIgMzItMzJ6TTM1MiA0MDBhMTQ0IDE0NCAwIDEgMSAyODggMCAxNDQgMTQ0IDAgMSAxIC0yODggMHptMTc3LjQtNzdjLTUuOC00LjItMTMuOC00LTE5LjQgLjVsLTgwIDY0Yy01LjMgNC4yLTcuNCAxMS40LTUuMSAxNy44UzQzMy4yIDQxNiA0NDAgNDE2bDMyLjkgMC0xNS45IDQyLjRjLTIuNSA2LjctLjIgMTQuMyA1LjYgMTguNnMxMy44IDQgMTkuNC0uNWw4MC02NGM1LjMtNC4yIDcuNC0xMS40IDUuMS0xNy44UzU1OC44IDM4NCA1NTIgMzg0bC0zMi45IDAgMTUuOS00Mi40YzIuNS02LjcgLjItMTQuMy01LjYtMTguNnoiXX0scHZ0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InJlc3Ryb29tIixpY29uOls2NDAsNTEyLFtdLCJmN2JkIiwiTTgwIDQ4YTQ4IDQ4IDAgMSAxIDk2IDAgNDggNDggMCAxIDEgLTk2IDB6bTQwIDMwNGwwIDEyOGMwIDE3LjctMTQuMyAzMi0zMiAzMnMtMzItMTQuMy0zMi0zMmwwLTE1NC44Yy04LjEgOS4yLTIxLjEgMTMuMi0zMy41IDkuNC0xNi45LTUuMy0yNi4zLTIzLjItMjEtNDAuMWwyOS43LTk1LjJDNDQuNCAxNTYuOSA4My42IDEyOCAxMjggMTI4czgzLjYgMjguOSA5Ni44IDcxLjJsMjkuNyA5NS4yYzUuMyAxNi45LTQuMSAzNC44LTIxIDQwLjEtMTIuNCAzLjktMjUuNC0uMi0zMy41LTkuNEwyMDAgNDgwYzAgMTcuNy0xNC4zIDMyLTMyIDMycy0zMi0xNC4zLTMyLTMybDAtMTI4LTE2IDB6TTMyMCAwYzEzLjMgMCAyNCAxMC43IDI0IDI0bDAgNDY0YzAgMTMuMy0xMC43IDI0LTI0IDI0cy0yNC0xMC43LTI0LTI0bDAtNDY0YzAtMTMuMyAxMC43LTI0IDI0LTI0ek00NjQgNDhhNDggNDggMCAxIDEgOTYgMCA0OCA0OCAwIDEgMSAtOTYgMHpNNDQwIDQ4MGwwLTk2LTE3LjggMGMtMTAuOSAwLTE4LjYtMTAuNy0xNS4yLTIxLjFsOS0yNi45Yy0zLjIgMC02LjQtLjUtOS41LTEuNS0xNi45LTUuMy0yNi4zLTIzLjItMjEtNDAuMWwyOS43LTk1LjJDNDI4LjQgMTU2LjkgNDY3LjYgMTI4IDUxMiAxMjhzODMuNiAyOC45IDk2LjggNzEuMmwyOS43IDk1LjJjNS4zIDE2LjktNC4xIDM0LjgtMjEgNDAuMS0zLjIgMS02LjQgMS41LTkuNSAxLjVsOSAyNi45YzMuNSAxMC40LTQuMyAyMS4xLTE1LjIgMjEuMWwtMTcuOCAwIDAgOTZjMCAxNy43LTE0LjMgMzItMzIgMzJzLTMyLTE0LjMtMzItMzJsMC05Ni0xNiAwIDAgOTZjMCAxNy43LTE0LjMgMzItMzIgMzJzLTMyLTE0LjMtMzItMzJ6Il19LGh2dD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJhbmNob3ItbG9jayIsaWNvbjpbNjQwLDUxMixbXSwiZTRhZCIsIk0zMjAuNSA5NmEzMiAzMiAwIDEgMSAtNjQgMCAzMiAzMiAwIDEgMSA2NCAwem0tMzItOTZjLTUzIDAtOTYgNDMtOTYgOTYgMCA0MS44IDI2LjcgNzcuNCA2NCA5MC41bDAgMjU3LjljLTYyLjktMTQuMy0xMTAuMi02OS43LTExMS45LTEzNi41bDE2LjEgMTQuMWMxMCA4LjcgMjUuMSA3LjcgMzMuOS0yLjNzNy43LTI1LjEtMi4zLTMzLjlsLTY0LTU2Yy05LTcuOS0yMi42LTcuOS0zMS42IDBsLTY0IDU2Yy0xMCA4LjctMTEgMjMuOS0yLjMgMzMuOXMyMy45IDExIDMzLjkgMi4zbDE2LjItMTQuMmMyLjEgMTEzLjEgOTQuNCAyMDQuMSAyMDggMjA0LjEgMjguMyAwIDU1LjQtNS43IDgwLTE1LjlsMC0uMiAwLTcyLjJjLTE0LjQgOS42LTMwLjYgMTYuNy00OCAyMC43bDAtMjU3LjljMzcuMy0xMy4yIDY0LTQ4LjcgNjQtOTAuNSAwLTUzLTQzLTk2LTk2LTk2em0yNzIgMzA0LjFsMCA0Ny45LTY0IDAgMC00Ny45YzAtMTcuNyAxNC4zLTMyIDMyLTMyczMyIDE0LjMgMzIgMzJ6TTQxNi41IDQwMGwwIDk2YzAgMjYuNSAyMS41IDQ4IDQ4IDQ4bDEyOCAwYzI2LjUgMCA0OC0yMS41IDQ4LTQ4bDAtOTZjMC0yMC45LTEzLjQtMzguNy0zMi00NS4zbDAtNTAuNmMwLTQ0LjItMzUuOC04MC04MC04MHMtODAgMzUuOC04MCA4MGwwIDUwLjZjLTE4LjYgNi42LTMyIDI0LjQtMzIgNDUuM3oiXX0sZnZ0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InRpbWVsaW5lIixpY29uOls1NzYsNTEyLFtdLCJlMjljIiwiTTE2MCAxNjkuM2MyOC4zLTEyLjMgNDgtNDAuNSA0OC03My4zIDAtNDQuMi0zNS44LTgwLTgwLTgwUzQ4IDUxLjggNDggOTZjMCAzMi44IDE5LjcgNjEgNDggNzMuM2wwIDU0LjctNjQgMGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJzMTQuMyAzMiAzMiAzMmwyMjQgMCAwIDU0LjdjLTI4LjMgMTIuMy00OCA0MC41LTQ4IDczLjMgMCA0NC4yIDM1LjggODAgODAgODBzODAtMzUuOCA4MC04MGMwLTMyLjgtMTkuNy02MS00OC03My4zbDAtNTQuNyAyMjQgMGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMmwtNjQgMCAwLTU0LjdjMjguMy0xMi4zIDQ4LTQwLjUgNDgtNzMuMyAwLTQ0LjItMzUuOC04MC04MC04MHMtODAgMzUuOC04MCA4MGMwIDMyLjggMTkuNyA2MSA0OCA3My4zbDAgNTQuNy0yNTYgMCAwLTU0Ljd6Il19LG12dD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJsaWdodGJ1bGIiLGljb246WzM4NCw1MTIsWzEyODE2MV0sImYwZWIiLCJNMjkyLjkgMzg0YzcuMy0yMi4zIDIxLjktNDIuNSAzOC40LTU5LjkgMzIuNy0zNC40IDUyLjctODAuOSA1Mi43LTEzMi4xIDAtMTA2LTg2LTE5Mi0xOTItMTkyUzAgODYgMCAxOTJjMCA1MS4yIDIwIDk3LjcgNTIuNyAxMzIuMSAxNi41IDE3LjQgMzEuMiAzNy42IDM4LjQgNTkuOWwyMDEuNyAwek0yODggNDMybC0xOTIgMCAwIDE2YzAgNDQuMiAzNS44IDgwIDgwIDgwbDMyIDBjNDQuMiAwIDgwLTM1LjggODAtODBsMC0xNnpNMTg0IDExMmMtMzkuOCAwLTcyIDMyLjItNzIgNzIgMCAxMy4zLTEwLjcgMjQtMjQgMjRzLTI0LTEwLjctMjQtMjRjMC02Ni4zIDUzLjctMTIwIDEyMC0xMjAgMTMuMyAwIDI0IDEwLjcgMjQgMjRzLTEwLjcgMjQtMjQgMjR6Il19LGhsZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJjaXJjbGUtYXJyb3ctcmlnaHQiLGljb246WzUxMiw1MTIsWyJhcnJvdy1jaXJjbGUtcmlnaHQiXSwiZjBhOSIsIk0yNTYgNTEyYTI1NiAyNTYgMCAxIDAgMC01MTIgMjU2IDI1NiAwIDEgMCAwIDUxMnptNDEtMTU5Yy05LjQgOS40LTI0LjYgOS40LTMzLjkgMHMtOS40LTI0LjYgMC0zMy45bDM5LTM5LTE1MC4xIDBjLTEzLjMgMC0yNC0xMC43LTI0LTI0czEwLjctMjQgMjQtMjRsMTUwLjEgMC0zOS0zOWMtOS40LTkuNC05LjQtMjQuNiAwLTMzLjlzMjQuNi05LjQgMzMuOSAwbDgwIDgwYzkuNCA5LjQgOS40IDI0LjYgMCAzMy45bC04MCA4MHoiXX0sZ3Z0PWhsZSxidnQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToibWFycy1hbmQtdmVudXMiLGljb246WzUxMiw1MTIsWzk4OTNdLCJmMjI0IiwiTTM2OCAwYy0xNy43IDAtMzItMTQuMy0zMi0zMnMxNC4zLTMyIDMyLTMybDExMiAwYzE3LjcgMCAzMiAxNC4zIDMyIDMybDAgMTEyYzAgMTcuNy0xNC4zIDMyLTMyIDMycy0zMi0xNC4zLTMyLTMybDAtMzQuNy02MyA2M2MxOS41IDI4LjQgMzEgNjIuNyAzMSA5OS44IDAgODYuMy02Mi4xIDE1OC4xLTE0NCAxNzMuMWwwIDM0LjkgMzIgMGMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMmwtMzIgMCAwIDMyYzAgMTcuNy0xNC4zIDMyLTMyIDMycy0zMi0xNC4zLTMyLTMybDAtMzItMzIgMGMtMTcuNyAwLTMyLTE0LjMtMzItMzJzMTQuMy0zMiAzMi0zMmwzMiAwIDAtMzQuOWMtODEuOS0xNS0xNDQtODYuOC0xNDQtMTczLjEgMC05Ny4yIDc4LjgtMTc2IDE3Ni0xNzYgMzcgMCA3MS40IDExLjQgOTkuOCAzMWw2My02My0zNC43IDB6TTM1MiAyMDhhMTEyIDExMiAwIDEgMCAtMjI0IDAgMTEyIDExMiAwIDEgMCAyMjQgMHoiXX0sckU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToibmV0d29yay13aXJlZCIsaWNvbjpbNTc2LDUxMixbXSwiZjZmZiIsIk0yNDggODhsODAgMCAwIDQ4LTgwIDAgMC00OHptLTgtNTZjLTI2LjUgMC00OCAyMS41LTQ4IDQ4bDAgNjRjMCAyNi41IDIxLjUgNDggNDggNDhsMTYgMCAwIDMyLTIyNCAwYy0xNy43IDAtMzIgMTQuMy0zMiAzMnMxNC4zIDMyIDMyIDMybDk2IDAgMCAzMi0xNiAwYy0yNi41IDAtNDggMjEuNS00OCA0OGwwIDY0YzAgMjYuNSAyMS41IDQ4IDQ4IDQ4bDk2IDBjMjYuNSAwIDQ4LTIxLjUgNDgtNDhsMC02NGMwLTI2LjUtMjEuNS00OC00OC00OGwtMTYgMCAwLTMyIDE5MiAwIDAgMzItMTYgMGMtMjYuNSAwLTQ4IDIxLjUtNDggNDhsMCA2NGMwIDI2LjUgMjEuNSA0OCA0OCA0OGw5NiAwYzI2LjUgMCA0OC0yMS41IDQ4LTQ4bDAtNjRjMC0yNi41LTIxLjUtNDgtNDgtNDhsLTE2IDAgMC0zMiA5NiAwYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMybC0yMjQgMCAwLTMyIDE2IDBjMjYuNSAwIDQ4LTIxLjUgNDgtNDhsMC02NGMwLTI2LjUtMjEuNS00OC00OC00OGwtOTYgMHpNNDQ4IDM3Nmw4IDAgMCA0OC04MCAwIDAtNDggNzIgMHptLTI1NiAwbDggMCAwIDQ4LTgwIDAgMC00OCA3MiAweiJdfSx2dnQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiYnVpbGRpbmctc2hpZWxkIixpY29uOls1NzYsNTEyLFtdLCJlNGQ4IiwiTTk2IDBDNjAuNyAwIDMyIDI4LjcgMzIgNjRsMCAzODRjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMjAxLjIgMGMtMTIuNS0xNC43LTIzLjItMzAuOC0zMS44LTQ4bC04OS41IDAgMC04MGMwLTE3LjcgMTQuMy0zMiAzMi0zMmwzMiAwIDAtMjYuN2MwLTE4LjEgNi4xLTM1LjIgMTYuNi00OC44LS40LTEuNC0uNi0yLjktLjYtNC41bDAtMzJjMC04LjggNy4yLTE2IDE2LTE2bDMyIDBjOC44IDAgMTYgNy4yIDE2IDE2bDAgMSA4Ni43LTI4LjljMy4xLTEgNi4yLTEuOCA5LjMtMi41TDQxNiA2NGMwLTM1LjMtMjguNy02NC02NC02NEw5NiAwem0zMiAxMTJjMC04LjggNy4yLTE2IDE2LTE2bDMyIDBjOC44IDAgMTYgNy4yIDE2IDE2bDAgMzJjMCA4LjgtNy4yIDE2LTE2IDE2bC0zMiAwYy04LjggMC0xNi03LjItMTYtMTZsMC0zMnpNMjcyIDk2bDMyIDBjOC44IDAgMTYgNy4yIDE2IDE2bDAgMzJjMCA4LjgtNy4yIDE2LTE2IDE2bC0zMiAwYy04LjggMC0xNi03LjItMTYtMTZsMC0zMmMwLTguOCA3LjItMTYgMTYtMTZ6TTEyOCAyNDBjMC04LjggNy4yLTE2IDE2LTE2bDMyIDBjOC44IDAgMTYgNy4yIDE2IDE2bDAgMzJjMCA4LjgtNy4yIDE2LTE2IDE2bC0zMiAwYy04LjggMC0xNi03LjItMTYtMTZsMC0zMnpNNDQ1LjMgNDg4LjVsLTEzLjMgNi4zIDAtMTg4LjEgOTYgMzIgMCAxOS42YzAgNTUuOC0zMi4yIDEwNi41LTgyLjcgMTMwLjN6TTQyMS45IDI1OS41bC0xMTIgMzcuM2MtMTMuMSA0LjQtMjEuOSAxNi42LTIxLjkgMzAuNGwwIDMxLjFjMCA3NC40IDQzIDE0Mi4xIDExMC4yIDE3My43bDE4LjUgOC43YzQuOCAyLjIgMTAgMy40IDE1LjIgMy40czEwLjUtMS4yIDE1LjItMy40bDE4LjUtOC43QzUzMyA1MDAuMyA1NzYgNDMyLjYgNTc2IDM1OC4ybDAtMzEuMWMwLTEzLjgtOC44LTI2LTIxLjktMzAuNGwtMTEyLTM3LjNjLTYuNi0yLjItMTMuNy0yLjItMjAuMiAweiJdfSx4dnQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiY29kZSIsaWNvbjpbNTc2LDUxMixbXSwiZjEyMSIsIk0zNjAuOCAxLjJjLTE3LTQuOS0zNC43IDUtMzkuNiAyMmwtMTI4IDQ0OGMtNC45IDE3IDUgMzQuNyAyMiAzOS42czM0LjctNSAzOS42LTIybDEyOC00NDhjNC45LTE3LTUtMzQuNy0yMi0zOS42em02NC42IDEzNi4xYy0xMi41IDEyLjUtMTIuNSAzMi44IDAgNDUuM2w3My40IDczLjQtNzMuNCA3My40Yy0xMi41IDEyLjUtMTIuNSAzMi44IDAgNDUuM3MzMi44IDEyLjUgNDUuMyAwbDk2LTk2YzEyLjUtMTIuNSAxMi41LTMyLjggMC00NS4zbC05Ni05NmMtMTIuNS0xMi41LTMyLjgtMTIuNS00NS4zIDB6bS0yNzQuNyAwYy0xMi41LTEyLjUtMzIuOC0xMi41LTQ1LjMgMGwtOTYgOTZjLTEyLjUgMTIuNS0xMi41IDMyLjggMCA0NS4zbDk2IDk2YzEyLjUgMTIuNSAzMi44IDEyLjUgNDUuMyAwczEyLjUtMzIuOCAwLTQ1LjNMNzcuMyAyNTYgMTUwLjYgMTgyLjZjMTIuNS0xMi41IDEyLjUtMzIuOCAwLTQ1LjN6Il19LGZsZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJmZWF0aGVyLXBvaW50ZWQiLGljb246WzUxMiw1MTIsWyJmZWF0aGVyLWFsdCJdLCJmNTZiIiwiTTQ3NS4zIC4xYzkuOS0uOCAxOS42IDMgMjYuNiAxMHMxMC44IDE2LjcgMTAgMjYuNmMtNCA0OS4zLTE3LjQgMTI2LjItNDYuMyAxOTkuNy0xLjggNC41LTUuNSA3LjktMTAuMiA5LjNMMzc0LjUgMjcwYy0zLjkgMS4yLTYuNSA0LjctNi41IDguOCAwIDUuMSA0LjEgOS4yIDkuMiA5LjJsMzguNiAwYzEyIDAgMTkuNyAxMi44IDEzLjUgMjMuMS00IDYuNy04LjMgMTMuMi0xMi43IDE5LjYtMiAyLjktNSA1LTguNCA2LjFMMzEwLjUgMzY2Yy0zLjkgMS4yLTYuNSA0LjctNi41IDguOCAwIDUuMSA0LjEgOS4yIDkuMiA5LjJsMTYgMGMxNC42IDAgMjEgMTcuNCA4LjggMjUuNC02OCA0NS0xMzcuNyA0My4zLTE4Mi40IDMxLjMtMTIuNy0zLjQtMjQtOS45LTM0LjQtMTcuOUw0OCA0OTZjLTguOCA4LjgtMjMuMiA4LjgtMzIgMHMtOC44LTIzLjIgMC0zMmw4MC04MCAuNSAuNWMuNy0xLjMgMS42LTIuNSAyLjctMy42TDI1NiAyMjRjOC44LTguOCA4LjgtMjMuMiAwLTMycy0yMy4yLTguOC0zMiAwTDg5LjcgMzI2LjJjLTguOSA4LjktMjQgNC40LTI1LTguMi00LjMtNTMuMiA5LjMtMTIzLjEgNzIuNi0xODYuNCA5MS4xLTkxLjEgMjU0LjItMTI0LjcgMzM3LjktMTMxLjV6Il19LHl2dD1mbGUsd3Z0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImZpbGUtY2lyY2xlLXF1ZXN0aW9uIixpY29uOls1NzYsNTEyLFtdLCJlNGVmIiwiTTk2IDBDNjAuNyAwIDMyIDI4LjcgMzIgNjRsMCAzODRjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMTgwIDBjLTIyLjctMzEuNS0zNi03MC4yLTM2LTExMiAwLTEwMC42IDc3LjQtMTgzLjIgMTc2LTE5MS4zbDAtMzguMWMwLTE3LTYuNy0zMy4zLTE4LjctNDUuM0wyOTAuNyAxOC43QzI3OC43IDYuNyAyNjIuNSAwIDI0NS41IDBMOTYgMHpNMzU3LjUgMTc2TDI2NCAxNzZjLTEzLjMgMC0yNC0xMC43LTI0LTI0TDI0MCA1OC41IDM1Ny41IDE3NnpNNDMyIDU0NGExNDQgMTQ0IDAgMSAwIDAtMjg4IDE0NCAxNDQgMCAxIDAgMCAyODh6bTAtMTAwYTIwIDIwIDAgMSAxIDAgNDAgMjAgMjAgMCAxIDEgMC00MHptMC0xMDBjLTExLjYgMC0yMS4zIDguMi0yMy41IDE5LjItMS44IDguNy0xMC4yIDE0LjMtMTguOSAxMi41cy0xNC4zLTEwLjItMTIuNS0xOC45YzUuMi0yNS42IDI3LjgtNDQuOCA1NC45LTQ0LjggMzAuOSAwIDU2IDI1LjEgNTYgNTYgMCAxOS44LTExLjcgMzcuOC0yOS44IDQ1LjlsLTEwLjQgNC42Yy0xLjIgNy43LTcuOCAxMy41LTE1LjggMTMuNS04LjggMC0xNi03LjItMTYtMTYgMC0xMS4yIDYuNi0yMS4zIDE2LjgtMjUuOWwxMi40LTUuNWM2LjYtMi45IDEwLjgtOS40IDEwLjgtMTYuNiAwLTEzLjMtMTAuNy0yNC0yNC0yNHoiXX0sTXZ0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InNpZ25hdHVyZSIsaWNvbjpbNjQwLDUxMixbXSwiZjViNyIsIk0xOTIgMTI4YzAtMTcuNyAxNC4zLTMyIDMyLTMyczMyIDE0LjMgMzIgMzJsMCA3LjhjMCAyNy43LTIuNCA1NS4zLTcuMSA4Mi41bC04NC40IDI1LjNjLTQwLjYgMTIuMi02OC40IDQ5LjYtNjguNCA5MmwwIDMyLjQtNzIgMGMtMTMuMyAwLTI0IDEwLjctMjQgMjRzMTAuNyAyNCAyNCAyNGw3Mi41IDBjNC4yIDM2IDM0LjggNjQgNzIgNjQgMjYgMCA1MC0xMy45IDYyLjktMzYuNWwxMy45LTI0LjNjMjYuOC00NyA0Ni41LTk3LjcgNTguNC0xNTAuNWw5NC40LTI4LjMtMTIuNSAzNy41Yy0zLjMgOS44LTEuNiAyMC41IDQuNCAyOC44UzQwNS43IDMyMCA0MTYgMzIwbDEyOCAwYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMybC04My42IDAgMTgtNTMuOWMzLjgtMTEuMyAuOS0yMy44LTcuNC0zMi40cy0yMC43LTExLjgtMzIuMi04LjRMMzE2LjQgMTk4LjFjMi40LTIwLjcgMy42LTQxLjQgMy42LTYyLjNsMC03LjhjMC01My00My05Ni05Ni05NnMtOTYgNDMtOTYgOTZsMCAzMmMwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMybDAtMzJ6bS05LjIgMTc3bDQ5LTE0LjdjLTEwLjQgMzMuOC0yNC41IDY2LjQtNDIuMSA5Ny4ybC0xMy45IDI0LjNjLTEuNSAyLjYtNC4zIDQuMy03LjQgNC4zLTQuNyAwLTguNS0zLjgtOC41LTguNWwwLTcxLjljMC0xNC4xIDkuMy0yNi42IDIyLjgtMzAuN3pNNjE2IDQxNmMxMy4zIDAgMjQtMTAuNyAyNC0yNHMtMTAuNy0yNC0yNC0yNGwtMjkyLjkgMGMtNi41IDE2LjMtMTMuNyAzMi4zLTIxLjYgNDhMNjE2IDQxNnoiXX0sRGc9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZWFydGgtYW1lcmljYXMiLGljb246WzUxMiw1MTIsWzEyNzc1OCwiZWFydGgiLCJlYXJ0aC1hbWVyaWNhIiwiZ2xvYmUtYW1lcmljYXMiXSwiZjU3ZCIsIk01NS43IDE5OS43bDMwLjkgMzAuOWM2IDYgMTQuMSA5LjQgMjIuNiA5LjRsMjEuNSAwYzguNSAwIDE2LjYgMy40IDIyLjYgOS40bDI5LjMgMjkuM2M2IDYgOS40IDE0LjEgOS40IDIyLjZsMCAzNy41YzAgOC41IDMuNCAxNi42IDkuNCAyMi42bDEzLjMgMTMuM2M2IDYgOS40IDE0LjEgOS40IDIyLjZsMCAxOC43YzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJsMC0yLjdjMC04LjUgMy40LTE2LjYgOS40LTIyLjZsNDUuMy00NS4zYzYtNiA5LjQtMTQuMSA5LjQtMjIuNmwwLTM0LjdjMC0xNy43LTE0LjMtMzItMzItMzJsLTgyLjcgMGMtOC41IDAtMTYuNi0zLjQtMjIuNi05LjRsLTE2LTE2Yy00LjItNC4yLTYuNi0xMC02LjYtMTYgMC0xMi41IDEwLjEtMjIuNiAyMi42LTIyLjZsMzQuNyAwYzEyLjUgMCAyMi42LTEwLjEgMjIuNi0yMi42IDAtNi0yLjQtMTEuOC02LjYtMTZsLTE5LjctMTkuN0MyNDIgMTMwIDI0MCAxMjUuMSAyNDAgMTIwczItMTAgNS43LTEzLjdsMTcuMy0xNy4zYzUuOC01LjggOS4xLTEzLjcgOS4xLTIxLjkgMC03LjItMi40LTEzLjctNi40LTE4LjktMy4yLS4xLTYuNC0uMi05LjYtLjItOTUuNCAwLTE3NS43IDY0LjItMjAwLjMgMTUxLjd6TTQ2NCAyNTZjMC0zNC42LTguNC02Ny4yLTIzLjQtOTUuOC02LjQgLjktMTIuNyAzLjktMTcuOSA5LjFsLTEzLjQgMTMuNGMtNiA2LTkuNCAxNC4xLTkuNCAyMi42bDAgMzQuN2MwIDE3LjcgMTQuMyAzMiAzMiAzMmwyNC4xIDBjMi41IDAgNS0uMyA3LjMtLjggLjQtNSAuNS0xMC4xIC41LTE1LjJ6TTAgMjU2YTI1NiAyNTYgMCAxIDEgNTEyIDAgMjU2IDI1NiAwIDEgMSAtNTEyIDB6Il19LGt2dD1EZyxTdnQ9RGcsenZ0PURnLEN2dD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJjYXJyb3QiLGljb246WzY0MCw1MTIsWzEyOTM2NV0sImY3ODciLCJNNDUzLjEtMzYuN0w0NDAuOS0yNC42Yy0zMS4yIDMxLjItMzEuMiA4MS45IDAgMTEzLjEgMTUuNiAxNS42IDMxLjIgMzEuMiA0Ni45IDQ2LjkgMzEuMiAzMS4yIDgxLjkgMzEuMiAxMTMuMSAwbDEyLjEtMTIuMWM2LjItNi4yIDYuMi0xNi40IDAtMjIuNkw2MDAuOSA4OC42Yy0zMS4yLTMxLjItODEuOS0zMS4yLTExMy4xIDAgMzEuMi0zMS4yIDMxLjItODEuOSAwLTExMy4xTDQ3NS43LTM2LjdjLTYuMi02LjItMTYuNC02LjItMjIuNiAwek0zMzEuNiA5NmMtNDUuMiAwLTg3LjEgMjAuNC0xMTUgNTQuM0wyNzMuMyAyMDdjOS40IDkuNCA5LjQgMjQuNiAwIDMzLjlzLTI0LjYgOS40LTMzLjkgMEwxOTEuNiAxOTMuMiA2Ny4yIDQ2Ni44Yy01LjUgMTIuMS0yLjkgMjYuNCA2LjUgMzUuOXMyMy43IDEyIDM1LjkgNi41bDE0MS42LTY0LjQtNDMuOC00My44Yy05LjQtOS40LTkuNC0yNC42IDAtMzMuOXMyNC42LTkuNCAzMy45IDBsNTYuNSA1Ni41IDk1LjMtNDMuM2M1My4xLTI0LjEgODcuMi03Ny4xIDg3LjItMTM1LjUgMC04Mi4yLTY2LjYtMTQ4LjgtMTQ4LjgtMTQ4Ljh6Il19LEVnPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InRlbXBlcmF0dXJlLWZ1bGwiLGljb246WzMyMCw1MTIsWyJ0ZW1wZXJhdHVyZS00IiwidGhlcm1vbWV0ZXItNCIsInRoZXJtb21ldGVyLWZ1bGwiXSwiZjJjNyIsIk0xNjAgMEMxMDcgMCA2NCA0MyA2NCA5NmwwIDE2NC43QzM0LjUgMjg3IDE2IDMyNS40IDE2IDM2OCAxNiA0NDcuNSA4MC41IDUxMiAxNjAgNTEyczE0NC02NC41IDE0NC0xNDRjMC00Mi42LTE4LjUtODEtNDgtMTA3LjNMMjU2IDk2YzAtNTMtNDMtOTYtOTYtOTZ6bTY0IDM2OGMwIDM1LjMtMjguNyA2NC02NCA2NHMtNjQtMjguNy02NC02NGMwLTI2LjkgMTYuNS00OS45IDQwLTU5LjNMMTM2IDk2YzAtMTMuMyAxMC43LTI0IDI0LTI0czI0IDEwLjcgMjQgMjRsMCAyMTIuN2MyMy41IDkuNSA0MCAzMi41IDQwIDU5LjN6Il19LFR2dD1FZyxfdnQ9RWcsTHZ0PUVnLEF2dD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJ0YWJsZS1jZWxscy1yb3ctbG9jayIsaWNvbjpbNjQwLDUxMixbXSwiZTY3YSIsIk0yNTYgMjg4bDAtNjQgMTUzLjMgMGMxNy4xLTQyLjIgNTYtNzMuMiAxMDIuNy03OWwwLTQ5YzAtMzUuMy0yOC43LTY0LTY0LTY0TDEyOCAzMkM5Mi43IDMyIDY0IDYwLjcgNjQgOTZsMCAzMjBjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMjQxLjMgMGMtLjktNS4yLTEuMy0xMC42LTEuMy0xNi4xbDAtNDcuOS0xMTIgMCAwLTY0IDExMy4zIDBjMy43LTIyIDE0LjgtNDEuNCAzMC43LTU1LjZsMC04LjQtMTQ0IDB6bTAtMTkybDE5MiAwIDAgNjQtMTkyIDAgMC02NHpNNTYwIDI3Mi4xbDAgNDcuOS02NCAwIDAtNDcuOWMwLTE3LjcgMTQuMy0zMiAzMi0zMnMzMiAxNC4zIDMyIDMyek00MTYgMzY4bDAgOTZjMCAyNi41IDIxLjUgNDggNDggNDhsMTI4IDBjMjYuNSAwIDQ4LTIxLjUgNDgtNDhsMC05NmMwLTIwLjktMTMuNC0zOC43LTMyLTQ1LjNsMC01MC42YzAtNDQuMi0zNS44LTgwLTgwLTgwcy04MCAzNS44LTgwIDgwbDAgNTAuNmMtMTguNiA2LjYtMzIgMjQuNC0zMiA0NS4zeiJdfSxEdnQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiYm9sdC1saWdodG5pbmciLGljb246WzM4NCw1MTIsW10sImUwYjciLCJNMCAyNTZMMjguNSAyOGMyLTE2IDE1LjYtMjggMzEuOC0yOEwyMjguOSAwYzE1IDAgMjcuMSAxMi4xIDI3LjEgMjcuMSAwIDMuMi0uNiA2LjUtMS43IDkuNUwyMDggMTYwIDM0Ny4zIDE2MGMyMC4yIDAgMzYuNyAxNi40IDM2LjcgMzYuNyAwIDcuNC0yLjIgMTQuNi02LjQgMjAuN2wtMTkyLjIgMjgxYy01LjkgOC42LTE1LjYgMTMuNy0yNS45IDEzLjdsLTIuOSAwYy0xNS43IDAtMjguNS0xMi44LTI4LjUtMjguNSAwLTIuMyAuMy00LjYgLjktNi45TDE3NiAyODggMzIgMjg4Yy0xNy43IDAtMzItMTQuMy0zMi0zMnoiXX0sRXZ0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImNsb3VkLXNob3dlcnMtd2F0ZXIiLGljb246WzUxMiw1MTIsW10sImU0ZTQiLCJNMjc5LjIgNTUuN0MyNjMuOSAyMi44IDIzMC42IDAgMTkyIDAgMTM5IDAgOTYgNDMgOTYgOTYgNjAuNyA5NiAzMiAxMjQuNyAzMiAxNjBzMjguNyA2NCA2NCA2NGwzMjAgMGMzNS4zIDAgNjQtMjguNyA2NC02NHMtMjguNy02NC02NC02NGwtMS42IDBjLTcuNC0zNi41LTM5LjctNjQtNzguNC02NC0yMi4yIDAtNDIuMyA5LjEtNTYuOCAyMy43ek00MTAuNiA0NzYuMWMyMC43IDE1LjYgNDYgMzAuNyA3NC4yIDM0LjUgMTMuMSAxLjggMjUuMi03LjUgMjctMjAuNnMtNy41LTI1LjItMjAuNi0yN2MtMTUuOS0yLjEtMzMuMi0xMS4zLTUxLjctMjUuMi0zOC40LTI5LTkwLjUtMjktMTI5IDAtMjQgMTguMS00MC43IDI2LjMtNTQuNSAyNi4zcy0zMC41LTguMi01NC41LTI2LjNjLTM4LjQtMjktOTAuNS0yOS0xMjkgMC0xOC41IDEzLjktMzUuOCAyMy4xLTUxLjcgMjUuMi0xMy4xIDEuOC0yMi40IDEzLjgtMjAuNiAyN3MxMy44IDIyLjQgMjcgMjAuNmMyOC4yLTMuOCA1My42LTE4LjkgNzQuMi0zNC41IDIxLjMtMTYuMSA0OS45LTE2LjEgNzEuMiAwIDI0LjIgMTguMyA1Mi4zIDM1LjkgODMuNCAzNS45czU5LjEtMTcuNyA4My40LTM1LjljMjEuMy0xNi4xIDQ5LjktMTYuMSA3MS4yIDB6TTEwMC4xIDMwMy42YzQuMi0xMi42LTIuNi0yNi4yLTE1LjItMzAuNHMtMjYuMiAyLjYtMzAuNCAxNS4ybC0yMS4zIDY0QzI5IDM2NSAzNS44IDM3OC42IDQ4LjQgMzgyLjhzMjYuMi0yLjYgMzAuNC0xNS4ybDIxLjMtNjR6bTEyMCAwYzQuMi0xMi42LTIuNi0yNi4yLTE1LjItMzAuNHMtMjYuMiAyLjYtMzAuNCAxNS4ybC0yMS4zIDY0Yy00LjIgMTIuNiAyLjYgMjYuMiAxNS4yIDMwLjRzMjYuMi0yLjYgMzAuNC0xNS4ybDIxLjMtNjR6bTExMiAwYzQuMi0xMi42LTIuNi0yNi4yLTE1LjItMzAuNHMtMjYuMiAyLjYtMzAuNCAxNS4ybC0yMS4zIDY0Yy00LjIgMTIuNiAyLjYgMjYuMiAxNS4yIDMwLjRzMjYuMi0yLjYgMzAuNC0xNS4ybDIxLjMtNjR6bTEyMCAwYzQuMi0xMi42LTIuNi0yNi4yLTE1LjItMzAuNHMtMjYuMiAyLjYtMzAuNCAxNS4ybC0yMS4zIDY0Yy00LjIgMTIuNiAyLjYgMjYuMiAxNS4yIDMwLjRzMjYuMi0yLjYgMzAuNC0xNS4ybDIxLjMtNjR6Il19LG1sZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJhcnJvdy11cC1sb25nIixpY29uOlszMjAsNTEyLFsibG9uZy1hcnJvdy11cCJdLCJmMTc2IiwiTTE4Mi42LTIyLjZjLTEyLjUtMTIuNS0zMi44LTEyLjUtNDUuMyAwbC0xMjggMTI4Yy0xMi41IDEyLjUtMTIuNSAzMi44IDAgNDUuM3MzMi44IDEyLjUgNDUuMyAwTDEyOCA3Ny4zIDEyOCA1MTJjMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMmwwLTQzNC43IDczLjQgNzMuNGMxMi41IDEyLjUgMzIuOCAxMi41IDQ1LjMgMHMxMi41LTMyLjggMC00NS4zbC0xMjgtMTI4eiJdfSwkdnQ9bWxlLGhEPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImFkZHJlc3MtY2FyZCIsaWNvbjpbNTc2LDUxMixbNjIxNDAsImNvbnRhY3QtY2FyZCIsInZjYXJkIl0sImYyYmIiLCJNNjQgMzJDMjguNyAzMiAwIDYwLjcgMCA5NkwwIDQxNmMwIDM1LjMgMjguNyA2NCA2NCA2NGw0NDggMGMzNS4zIDAgNjQtMjguNyA2NC02NGwwLTMyMGMwLTM1LjMtMjguNy02NC02NC02NEw2NCAzMnptODAgMjU2bDY0IDBjNDQuMiAwIDgwIDM1LjggODAgODAgMCA4LjgtNy4yIDE2LTE2IDE2TDgwIDM4NGMtOC44IDAtMTYtNy4yLTE2LTE2IDAtNDQuMiAzNS44LTgwIDgwLTgwem0tMjQtOTZhNTYgNTYgMCAxIDEgMTEyIDAgNTYgNTYgMCAxIDEgLTExMiAwem0yNDAtNDhsMTEyIDBjMTMuMyAwIDI0IDEwLjcgMjQgMjRzLTEwLjcgMjQtMjQgMjRsLTExMiAwYy0xMy4zIDAtMjQtMTAuNy0yNC0yNHMxMC43LTI0IDI0LTI0em0wIDk2bDExMiAwYzEzLjMgMCAyNCAxMC43IDI0IDI0cy0xMC43IDI0LTI0IDI0bC0xMTIgMGMtMTMuMyAwLTI0LTEwLjctMjQtMjRzMTAuNy0yNCAyNC0yNHoiXX0sSXZ0PWhELFB2dD1oRCxOdnQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiYW5nbGUtcmlnaHQiLGljb246WzI1Niw1MTIsWzgyNTBdLCJmMTA1IiwiTTI0Ny4xIDIzMy40YzEyLjUgMTIuNSAxMi41IDMyLjggMCA0NS4zbC0xNjAgMTYwYy0xMi41IDEyLjUtMzIuOCAxMi41LTQ1LjMgMHMtMTIuNS0zMi44IDAtNDUuM0wxNzkuMiAyNTYgNDEuOSAxMTguNmMtMTIuNS0xMi41LTEyLjUtMzIuOCAwLTQ1LjNzMzIuOC0xMi41IDQ1LjMgMGwxNjAgMTYweiJdfSxnbGU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZmFjZS1tZWgiLGljb246WzUxMiw1MTIsWzEyODUyOCwibWVoIl0sImYxMWEiLCJNMjU2IDUxMmEyNTYgMjU2IDAgMSAwIDAtNTEyIDI1NiAyNTYgMCAxIDAgMCA1MTJ6TTE3NiAxNzZhMzIgMzIgMCAxIDEgMCA2NCAzMiAzMiAwIDEgMSAwLTY0em0xMjggMzJhMzIgMzIgMCAxIDEgNjQgMCAzMiAzMiAwIDEgMSAtNjQgMHpNMTc2IDMyMGwxNjAgMGMxMy4zIDAgMjQgMTAuNyAyNCAyNHMtMTAuNyAyNC0yNCAyNGwtMTYwIDBjLTEzLjMgMC0yNC0xMC43LTI0LTI0czEwLjctMjQgMjQtMjR6Il19LEZ2dD1nbGUsT3Z0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImFycm93LXVwLWZyb20tZ3JvdW5kLXdhdGVyIixpY29uOls2NDAsNTEyLFtdLCJlNGI1IiwiTTMwMyA3YzkuNC05LjQgMjQuNi05LjQgMzMuOSAwbDg4IDg4YzkuNCA5LjQgOS40IDI0LjYgMCAzMy45cy0yNC42IDkuNC0zMy45IDBsLTQ3LTQ3IDAgMjc4LjFjMCAxMy4zLTEwLjcgMjQtMjQgMjRzLTI0LTEwLjctMjQtMjRsMC0yNzguMS00NyA0N2MtOS40IDkuNC0yNC42IDkuNC0zMy45IDBzLTkuNC0yNC42IDAtMzMuOUwzMDMgN3pNMjQwIDE5MmwwIDE2My4xYy0xMC42LTIuMi0yMS4zLTMuMi0zMi0zLjEtMzIuNSAuMi02NC45IDEwLjctOTIuMyAzMS40LTguOCA2LjYtMTUuOSAxMC45LTIxLjcgMTMuNWwtLjggLjRjLTMuNyAxLjctNi40IDIuOS05LjggLjMtNi00LjUtMTIuNi04LTE5LjMtMTAuNEw2NCAyNDBjMC0yNi41IDIxLjUtNDggNDgtNDhsMTI4IDB6bTMzNiA0OGwwIDE1NS4yYy0xLjEgLjgtMi4yIDEuNS0zLjMgMi40LTQuMSAzLjEtOC4zIC44LTEyLjYtMS41LS42LS4zLTEuMi0uNi0xLjgtMS01LjItMi43LTExLjEtNi42LTE4LTExLjctMjguMS0yMS4xLTYxLjMtMzEuNi05NC40LTMxLjQtMTUuNSAuMS0zMSAyLjUtNDYgNy4zbDAtMTY3LjMgMTI4IDBjMjYuNSAwIDQ4IDIxLjUgNDggNDh6TTQwMy40IDQ3Ni4xQzM3OS4xIDQ5NC4zIDM1MS4xIDUxMiAzMjAgNTEycy01OS4xLTE3LjctODMuNC0zNS45Yy0yMS4zLTE2LjEtNDkuOS0xNi4xLTcxLjIgMC0yMy44IDE3LjktNTQuMSAzNS41LTg4LjEgMzUuMy0yMC40LS4xLTQwLjctNi43LTU5LjgtMjEuMS0xMC42LTgtMTIuNy0yMy00LjctMzMuNnMyMy0xMi43IDMzLjYtNC43YzExLjMgOC41IDIxLjYgMTEuNCAzMS4yIDExLjUgMTcuNiAuMSAzNy4zLTkuNCA1OC45LTI1LjcgMzguNC0yOSA5MC41LTI5IDEyOSAwIDI0IDE4LjEgNDAuNyAyNi4zIDU0LjUgMjYuM3MzMC41LTguMiA1NC41LTI2LjNjMzguNC0yOSA5MC41LTI5IDEyOSAwIDE2LjkgMTIuNyAzMi45IDIxLjUgNDcuOCAyNC42IDEzLjcgMi44IDI3LjQgLjkgNDIuMy0xMC4zIDEwLjYtOCAyNS42LTUuOSAzMy42IDQuN3M1LjkgMjUuNi00LjcgMzMuNmMtMjYuNCAxOS45LTU0LjIgMjQuNC04MC43IDE5LjEtMjUuMy01LjEtNDguMS0xOC45LTY3LjItMzMuMy0yMS4zLTE2LjEtNDkuOS0xNi4xLTcxLjIgMHoiXX0sUnZ0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6Im1hcCIsaWNvbjpbNTEyLDUxMixbMTI4NTA2LDYyMDcyXSwiZjI3OSIsIk01MTIgNDhjMC0xMS4xLTUuNy0yMS40LTE1LjItMjcuMnMtMjEuMi02LjQtMzEuMS0xLjRMMzQ5LjUgNzcuNSAxNzAuMSAxNy42Yy04LjEtMi43LTE2LjgtMi4xLTI0LjQgMS43bC0xMjggNjRDNi44IDg4LjggMCA5OS45IDAgMTEyTDAgNDY0YzAgMTEuMSA1LjcgMjEuNCAxNS4yIDI3LjJzMjEuMiA2LjQgMzEuMSAxLjRsMTE2LjEtNTguMSAxNzkuNCA1OS44YzguMSAyLjcgMTYuOCAyLjEgMjQuNC0xLjdsMTI4LTY0YzEwLjgtNS40IDE3LjctMTYuNSAxNy43LTI4LjZsMC0zNTJ6TTE5MiAzNzYuOWwwLTI4NC41IDEyOCA0Mi43IDAgMjg0LjUtMTI4LTQyLjd6Il19LEJ2dD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJ1c2VyLXBsdXMiLGljb246WzY0MCw1MTIsW10sImYyMzQiLCJNMjg1LjcgMzA0Yzk4LjUgMCAxNzguMyA3OS44IDE3OC4zIDE3OC4zIDAgMTYuNC0xMy4zIDI5LjctMjkuNyAyOS43TDc3LjcgNTEyQzYxLjMgNTEyIDQ4IDQ5OC43IDQ4IDQ4Mi4zIDQ4IDM4My44IDEyNy44IDMwNCAyMjYuMyAzMDRsNTkuNCAwek01MjggODBjMTMuMyAwIDI0IDEwLjcgMjQgMjRsMCA0OCA0OCAwYzEzLjMgMCAyNCAxMC43IDI0IDI0cy0xMC43IDI0LTI0IDI0bC00OCAwIDAgNDhjMCAxMy4zLTEwLjcgMjQtMjQgMjRzLTI0LTEwLjctMjQtMjRsMC00OC00OCAwYy0xMy4zIDAtMjQtMTAuNy0yNC0yNHMxMC43LTI0IDI0LTI0bDQ4IDAgMC00OGMwLTEzLjMgMTAuNy0yNCAyNC0yNHpNMjU2IDI0OGExMjAgMTIwIDAgMSAxIDAtMjQwIDEyMCAxMjAgMCAxIDEgMCAyNDB6Il19LEh2dD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJ2ZW51cyIsaWNvbjpbMzg0LDUxMixbOTc5Ml0sImYyMjEiLCJNODAgMTc2YTExMiAxMTIgMCAxIDEgMjI0IDAgMTEyIDExMiAwIDEgMSAtMjI0IDB6TTIyMy45IDM0OS4xQzMwNS45IDMzNC4xIDM2OCAyNjIuMyAzNjggMTc2IDM2OCA3OC44IDI4OS4yIDAgMTkyIDBTMTYgNzguOCAxNiAxNzZjMCA4Ni4zIDYyLjEgMTU4LjEgMTQ0LjEgMTczLjEtLjEgMS0uMSAxLjktLjEgMi45bDAgNjQtMzIgMGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJzMTQuMyAzMiAzMiAzMmwzMiAwIDAgMzJjMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMmwwLTMyIDMyIDBjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJsLTMyIDAgMC02NGMwLTEgMC0xLjktLjEtMi45eiJdfSxxdnQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZGlhZ3JhbS1zdWNjZXNzb3IiLGljb246WzQ0OCw1MTIsW10sImU0N2EiLCJNMjg5LjIgMTM3LjljMi41LTYgOC4zLTkuOSAxNC44LTkuOWw0MCAwIDAtMjRjMC0xMy4zLTEwLjctMjQtMjQtMjRsLTk4IDBjMS4zIDUuMSAyIDEwLjUgMiAxNmwwIDY0YzAgMzUuMy0yOC43IDY0LTY0IDY0bC05NiAwYy0zNS4zIDAtNjQtMjguNy02NC02NEwwIDk2QzAgNjAuNyAyOC43IDMyIDY0IDMybDI1NiAwYzM5LjggMCA3MiAzMi4yIDcyIDcybDAgMjQgNDAgMGM2LjUgMCAxMi4zIDMuOSAxNC44IDkuOXMxLjEgMTIuOS0zLjUgMTcuNGwtNjQgNjRjLTYuMiA2LjItMTYuNCA2LjItMjIuNiAwbC02NC02NGMtNC42LTQuNi01LjktMTEuNS0zLjUtMTcuNHpNMzg0IDQ4MEw2NCA0ODBjLTM1LjMgMC02NC0yOC43LTY0LTY0bDAtNjRjMC0zNS4zIDI4LjctNjQgNjQtNjRsMzIwIDBjMzUuMyAwIDY0IDI4LjcgNjQgNjRsMCA2NGMwIDM1LjMtMjguNyA2NC02NCA2NHpNMTYwIDE2MGwwLTY0LTk2IDAgMCA2NCA5NiAweiJdfSxqdnQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiaGVhZC1zaWRlLWNvdWdoLXNsYXNoIixpY29uOls1NzYsNTEyLFtdLCJlMDYyIiwiTTUzNS0yNC45YzkuNC05LjQgMjQuNi05LjQgMzMuOSAwczkuNCAyNC42IDAgMzMuOUw0MSA1MzcuMWMtOS40IDkuNC0yNC42IDkuNC0zMy45IDBzLTkuNC0yNC42IDAtMzMuOWwyNS0yNSAwLTQ0Ny4yYzAtMTUgMTAuNS0yOC4zIDI1LjQtMjkuOCA3LjQtLjcgMTQuOS0xLjEgMjIuNi0xLjEgMTEyLjcgMCAyMDYgODMuMyAyMjEuNyAxOTEuNyAuNCAzIDEuNyA1LjkgMy42IDguM2wyLjIgMi42IDIyNy41LTIyNy41ek0xMzMuOCA1MTJMMjg4IDM1Ny44IDI4OCA0MTZjMCA1My00MyA5Ni05NiA5NmwtNTguMiAwek0xNzYgMjI0YTMyIDMyIDAgMSAwIDAtNjQgMzIgMzIgMCAxIDAgMCA2NHptMzM2IDQwYTI0IDI0IDAgMSAxIDAgNDggMjQgMjQgMCAxIDEgMC00OHptLTg4IDcyYTI0IDI0IDAgMSAxIDQ4IDAgMjQgMjQgMCAxIDEgLTQ4IDB6bS02NCA0OGEyNCAyNCAwIDEgMSA0OCAwIDI0IDI0IDAgMSAxIC00OCAwem0xMjggMGEyNCAyNCAwIDEgMSA0OCAwIDI0IDI0IDAgMSAxIC00OCAwem0yNCA3MmEyNCAyNCAwIDEgMSAwIDQ4IDI0IDI0IDAgMSAxIDAtNDh6bS04OC0yNGEyNCAyNCAwIDEgMSA0OCAwIDI0IDI0IDAgMSAxIC00OCAweiJdfSxibGU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZGlhZ3JhbS1wcm9qZWN0IixpY29uOls1MTIsNTEyLFsicHJvamVjdC1kaWFncmFtIl0sImY1NDIiLCJNMCA4MEMwIDUzLjUgMjEuNSAzMiA0OCAzMmw5NiAwYzI2LjUgMCA0OCAyMS41IDQ4IDQ4bDAgMTYgMTI4IDAgMC0xNmMwLTI2LjUgMjEuNS00OCA0OC00OGw5NiAwYzI2LjUgMCA0OCAyMS41IDQ4IDQ4bDAgOTZjMCAyNi41LTIxLjUgNDgtNDggNDhsLTk2IDBjLTI2LjUgMC00OC0yMS41LTQ4LTQ4bDAtMTYtMTI4IDAgMCAxNmMwIDcuMy0xLjcgMTQuMy00LjYgMjAuNWw2OC42IDkxLjUgODAgMGMyNi41IDAgNDggMjEuNSA0OCA0OGwwIDk2YzAgMjYuNS0yMS41IDQ4LTQ4IDQ4bC05NiAwYy0yNi41IDAtNDgtMjEuNS00OC00OGwwLTk2YzAtNy4zIDEuNy0xNC4zIDQuNi0yMC41TDEyOCAyMjQgNDggMjI0Yy0yNi41IDAtNDgtMjEuNS00OC00OEwwIDgweiJdfSxWdnQ9YmxlLGlFPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InRlcm1pbmFsIixpY29uOls1MTIsNTEyLFtdLCJmMTIwIiwiTTkuNCAxMTguNmMtMTIuNS0xMi41LTEyLjUtMzIuOCAwLTQ1LjNzMzIuOC0xMi41IDQ1LjMgMGwxNjAgMTYwYzEyLjUgMTIuNSAxMi41IDMyLjggMCA0NS4zbC0xNjAgMTYwYy0xMi41IDEyLjUtMzIuOCAxMi41LTQ1LjMgMHMtMTIuNS0zMi44IDAtNDUuM0wxNDYuNyAyNTYgOS40IDExOC42ek0yMjQgMzg0bDI1NiAwYzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMybC0yNTYgMGMtMTcuNyAwLTMyLTE0LjMtMzItMzJzMTQuMy0zMiAzMi0zMnoiXX0sVXZ0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImhvdXNlLWZpcmUiLGljb246WzY0MCw1MTIsW10sImU1MGMiLCJNNDQ4IDE5MmMxNC4xIC40IDIzLjggMTEuNCAzMi43IDIxLjcgMiAyLjMgNCA0LjYgNiA2LjdsMTkgMTkuOSAxMi4yLTEzLjhjNS40LTYuMSAxMy4zLTguOSAyMC45LTguOSA3LjIgMCAxNC4zIDIuNiAxOS45IDcuOCAxOS43IDE4LjMgMzkuOCA0My4yIDU1IDcwLjYgMTUuMSAyNy4yIDI2LjIgNTguMiAyNi4yIDg4LjIgMCA4OC43LTcxLjMgMTU5LjgtMTYwIDE1OS44LTg5LjYgMC0xNjAtNzEuMy0xNjAtMTU5LjggMC0zNy4zIDE2LTczLjQgMzYuOC0xMDQuNSAyMC45LTMxLjMgNDcuNS01OSA3MC45LTgwLjEgNS43LTUuMiAxMy4xLTcuNyAyMC4zLTcuNXpNMjY4LjYgNi41YzEyLjItOS4zIDI5LjctOC43IDQxLjIgMmwxNDcuNSAxMzdjLTE5LjItNC4zLTQwIC41LTU1LjUgMTQuNC0zNi40IDMyLjYtNjcuNyA2OS44LTkwLjMgMTA2LjQtMTAuMyAxNi42LTE5LjcgMzQuOS0yNi44IDUzLjdMMjcyIDMyMGMtMjYuNSAwLTQ4IDIxLjUtNDggNDhsMCA5NiA2NC42IDBjNy4zIDE3LjIgMTYuOCAzMy40IDI4LjIgNDhMMTQ0IDUxMmMtMzUuMyAwLTY0LTI4LjctNjQtNjRsMC0xNzYtMTYgMGMtMTMuMiAwLTI1LTguMS0yOS44LTIwLjNzLTEuNi0yNi4yIDgtMzUuMWwyMjQtMjA4IDIuNC0yek00ODkuMyAzNDMuN2MtNS40LTQuNy0xMy4xLTQuNy0xOC41IDAtMTcuNyAxNS40LTU0LjcgNTEuOS01NC43IDg4LjQgMCAzNS4zIDI4LjcgNjQgNjQgNjRzNjQtMjguNyA2NC02NGMwLTM2LjUtMzctNzMtNTQuNy04OC40eiJdfSxXdnQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToibWFzayIsaWNvbjpbNTc2LDUxMixbXSwiZjZmYSIsIk0yODggNjRDNjQgNjQgMCAxNjAgMCAyNzJTODAgNDQ4IDE3NiA0NDhsOC40IDBjMjQuMiAwIDQ2LjQtMTMuNyA1Ny4yLTM1LjRsMjMuMi00Ni4zYzQuNC04LjggMTMuMy0xNC4zIDIzLjItMTQuM3MxOC44IDUuNSAyMy4yIDE0LjNsMjMuMiA0Ni4zYzEwLjggMjEuNyAzMyAzNS40IDU3LjIgMzUuNGw4LjQgMGM5NiAwIDE3Ni02NCAxNzYtMTc2UzUxMiA2NCAyODggNjR6TTk2IDI1NmE2NCA2NCAwIDEgMSAxMjggMCA2NCA2NCAwIDEgMSAtMTI4IDB6bTMyMC02NGE2NCA2NCAwIDEgMSAwIDEyOCA2NCA2NCAwIDEgMSAwLTEyOHoiXX0sR3Z0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6Imh1cnJpY2FuZSIsaWNvbjpbMzg0LDUxMixbXSwiZjc1MSIsIk0wIDIwOEMwIDEwNC40IDc1LjcgMTguNSAxNzQuOSAyLjYgMTg0IDEuMiAxOTIgOC42IDE5MiAxNy45bDAgNjMuM2MwIDguNCA2LjUgMTUuMyAxNC43IDE2LjUgMTAwLjMgMTQuOSAxNzcuMyAxMDEuMyAxNzcuMyAyMDUuNyAwIDEwMy42LTc1LjcgMTg5LjUtMTc0LjkgMjA1LjQtOS4yIDEuNS0xNy4xLTUuOS0xNy4xLTE1LjJsMC02My4zQzE5MiA0MjEuOSAxODUuNSA0MTUgMTc3LjMgNDEzLjcgNzcgMzk4LjkgMCAzMTIuNCAwIDIwOHptMjg4IDQ4YTk2IDk2IDAgMSAwIC0xOTIgMCA5NiA5NiAwIDEgMCAxOTIgMHptLTk2LTMyYTMyIDMyIDAgMSAxIDAgNjQgMzIgMzIgMCAxIDEgMC02NHoiXX0sdmxlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImVhcnRoLWFmcmljYSIsaWNvbjpbNTEyLDUxMixbMTI3NzU3LCJnbG9iZS1hZnJpY2EiXSwiZjU3YyIsIk00NDcuNiAxNzVjLTMxLjYtNzQuNi0xMDUuNS0xMjctMTkxLjYtMTI3LTIyLjEgMC00My40IDMuNS02My40IDkuOC0uNCAyLS42IDQuMS0uNiA2LjJsMCA3My40YzAgMTIuNSAxMC4xIDIyLjYgMjIuNiAyMi42IDYgMCAxMS44LTIuNCAxNi02LjZsMTYtMTZjNi02IDE0LjEtOS40IDIyLjYtOS40bDUuNSAwYzI4LjUgMCA0Mi44IDM0LjUgMjIuNiA1NC42LTYgNi0xNC4xIDkuNC0yMi42IDkuNGwtNjEuNSAwYy04LjUgMC0xNi42IDMuNC0yMi42IDkuNGwtMjEuMyAyMS4zYy02IDYtOS40IDE0LjEtOS40IDIyLjZsMCA0Mi43YzAgMTcuNyAxNC4zIDMyIDMyIDMybDMyIDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJsMCAzMmMwIDE3LjcgMTQuMyAzMiAzMiAzMmwyLjcgMGM4LjUgMCAxNi42LTMuNCAyMi42LTkuNGwyOS4zLTI5LjNjNi02IDkuNC0xNC4xIDkuNC0yMi42bDAtMTguN2MwLTguOCA3LjItMTYgMTYtMTZzMTYtNy4yIDE2LTE2bDAtMzQuN2MwLTguNS0zLjQtMTYuNi05LjQtMjIuNmwtMTYtMTZjLTQuMi00LjItNi42LTEwLTYuNi0xNiAwLTEyLjUgMTAuMS0yMi42IDIyLjYtMjIuNmw0NSAwYzEyLjQgMCAyMi43LTcuMSAyOC0xN3pNMCAyNTZhMjU2IDI1NiAwIDEgMSA1MTIgMCAyNTYgMjU2IDAgMSAxIC01MTIgMHoiXX0sWXZ0PXZsZSx4bGU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToidGh1bWJ0YWNrIixpY29uOlszODQsNTEyLFsxMjgyMDQsMTI4MzkyLCJ0aHVtYi10YWNrIl0sImYwOGQiLCJNMzIgMzJDMzIgMTQuMyA0Ni4zIDAgNjQgMEwzMjAgMGMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMmwtMjkuNSAwIDEwLjMgMTM0LjFjMzcuMSAyMS4yIDY1LjggNTYuNCA3OC4yIDk5LjdsMy44IDEzLjRjMi44IDkuNyAuOCAyMC01LjIgMjguMVMzNjIgMzUyIDM1MiAzNTJMMzIgMzUyYy0xMCAwLTE5LjUtNC43LTI1LjUtMTIuN3MtOC0xOC40LTUuMi0yOC4xTDUgMjk3LjhjMTIuNC00My4zIDQxLTc4LjUgNzguMi05OS43TDkzLjUgNjQgNjQgNjRDNDYuMyA2NCAzMiA0OS43IDMyIDMyek0xNjAgNDAwbDY0IDAgMCAxMTJjMCAxNy43LTE0LjMgMzItMzIgMzJzLTMyLTE0LjMtMzItMzJsMC0xMTJ6Il19LFp2dD14bGUsWHZ0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImhhbmQtcG9pbnQtZG93biIsaWNvbjpbMzg0LDUxMixbXSwiZjBhNyIsIk0zMiA0ODBjMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMmwwLTIwOC02NCAwIDAgMjA4ek0yMjQgMzIwYzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJsMC02NGMwLTE3LjctMTQuMy0zMi0zMi0zMnMtMzIgMTQuMy0zMiAzMmwwIDY0em0tNjQgNjRjMTcuNyAwIDMyLTE0LjMgMzItMzJsMC00OGMwLTE3LjctMTQuMy0zMi0zMi0zMnMtMzIgMTQuMy0zMiAzMmwwIDQ4YzAgMTcuNyAxNC4zIDMyIDMyIDMyem0xNjAtOTZjMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMmwwLTY0YzAtMTcuNy0xNC4zLTMyLTMyLTMycy0zMiAxNC4zLTMyIDMybDAgNjR6bS05Ni04OGwwIC42YzkuNC01LjQgMjAuMy04LjYgMzItOC42IDEzLjIgMCAyNS40IDQgMzUuNiAxMC44IDguNy0yNC45IDMyLjUtNDIuOCA2MC40LTQyLjggMTEuNyAwIDIyLjYgMy4xIDMyIDguNmwwLTguNkMzODQgNzEuNiAzMTIuNCAwIDIyNCAwTDE2Mi4zIDBDMTE5LjggMCA3OS4xIDE2LjkgNDkuMSA0Ni45TDM3LjUgNTguNUMxMy41IDgyLjUgMCAxMTUuMSAwIDE0OWwwIDI3YzAgMzUuMyAyOC43IDY0IDY0IDY0bDg4IDBjMjIuMSAwIDQwLTE3LjkgNDAtNDBzLTE3LjktNDAtNDAtNDBsLTU2IDBjLTguOCAwLTE2LTcuMi0xNi0xNnM3LjItMTYgMTYtMTZsNTYgMGMzOS44IDAgNzIgMzIuMiA3MiA3MnoiXX0seWxlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImZhY2UtbWVoLWJsYW5rIixpY29uOls1MTIsNTEyLFsxMjg1NjYsIm1laC1ibGFuayJdLCJmNWE0IiwiTTAgMjU2YTI1NiAyNTYgMCAxIDEgNTEyIDAgMjU2IDI1NiAwIDEgMSAtNTEyIDB6bTIwOC00OGEzMiAzMiAwIDEgMCAtNjQgMCAzMiAzMiAwIDEgMCA2NCAwem0xMjggMzJhMzIgMzIgMCAxIDAgMC02NCAzMiAzMiAwIDEgMCAwIDY0eiJdfSxRdnQ9eWxlLCRnPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InRlbXBlcmF0dXJlLWVtcHR5IixpY29uOlszMjAsNTEyLFsidGVtcGVyYXR1cmUtMCIsInRoZXJtb21ldGVyLTAiLCJ0aGVybW9tZXRlci1lbXB0eSJdLCJmMmNiIiwiTTY0IDk2YzAtNTMgNDMtOTYgOTYtOTZzOTYgNDMgOTYgOTZsMCAxNjQuN2MyOS41IDI2LjQgNDggNjQuNyA0OCAxMDcuMyAwIDc5LjUtNjQuNSAxNDQtMTQ0IDE0NFMxNiA0NDcuNSAxNiAzNjhjMC00Mi42IDE4LjUtODEgNDgtMTA3LjNMNjQgOTZ6bTk2IDMzNmMzNS4zIDAgNjQtMjguNyA2NC02NHMtMjguNy02NC02NC02NC02NCAyOC43LTY0IDY0IDI4LjcgNjQgNjQgNjR6Il19LEp2dD0kZyxLdnQ9JGcsZXh0PSRnLHR4dD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJib3JkZXItbm9uZSIsaWNvbjpbNDQ4LDUxMixbXSwiZjg1MCIsIk0zMiA0MTZjLTE3LjcgMC0zMiAxNC4zLTMyIDMyczE0LjMgMzIgMzIgMzIgMzItMTQuMyAzMi0zMi0xNC4zLTMyLTMyLTMyek0xNjAgMzJhMzIgMzIgMCAxIDAgMCA2NCAzMiAzMiAwIDEgMCAwLTY0ek0yODggNDE2Yy0xNy43IDAtMzIgMTQuMy0zMiAzMnMxNC4zIDMyIDMyIDMyIDMyLTE0LjMgMzItMzItMTQuMy0zMi0zMi0zMnpNMTYwIDQ4MGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMi0zMiAxNC4zLTMyIDMyIDE0LjMgMzIgMzIgMzJ6TTI4OCAzMmEzMiAzMiAwIDEgMCAwIDY0IDMyIDMyIDAgMSAwIDAtNjR6TTQxNiA0ODBjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzItMzIgMTQuMy0zMiAzMiAxNC4zIDMyIDMyIDMyem0wLTM4NGEzMiAzMiAwIDEgMCAwLTY0IDMyIDMyIDAgMSAwIDAgNjR6TTMyIDMyYTMyIDMyIDAgMSAwIDAgNjQgMzIgMzIgMCAxIDAgMC02NHpNNDE2IDM1MmEzMiAzMiAwIDEgMCAwLTY0IDMyIDMyIDAgMSAwIDAgNjR6TTMyIDE2MGEzMiAzMiAwIDEgMCAwIDY0IDMyIDMyIDAgMSAwIDAtNjR6bTAgMTkyYTMyIDMyIDAgMSAwIDAtNjQgMzIgMzIgMCAxIDAgMCA2NHpNNDE2IDE2MGEzMiAzMiAwIDEgMCAwIDY0IDMyIDMyIDAgMSAwIDAtNjR6Il19LHJ4dD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJoaWdobGlnaHRlciIsaWNvbjpbNTc2LDUxMixbXSwiZjU5MSIsIk0zMTUgMzE1TDQ3My40IDk5LjkgNDQ0LjEgNzAuNiAyMjkgMjI5IDMxNSAzMTV6bS0xODcgNWwwIDAgMC03MS43YzAtMTUuMyA3LjItMjkuNiAxOS41LTM4LjZMNDIwLjYgOC40QzQyOCAyLjkgNDM3IDAgNDQ2LjIgMCA0NTcuNiAwIDQ2OC41IDQuNSA0NzYuNiAxMi42bDU0LjggNTQuOGM4LjEgOC4xIDEyLjYgMTkgMTIuNiAzMC41IDAgOS4yLTIuOSAxOC4yLTguNCAyNS42TDMzNC40IDM5Ni41Yy05IDEyLjMtMjMuNCAxOS41LTM4LjYgMTkuNWwtNzEuNyAwLTI1LjQgMjUuNGMtMTIuNSAxMi41LTMyLjggMTIuNS00NS4zIDBsLTUwLjctNTAuN2MtMTIuNS0xMi41LTEyLjUtMzIuOCAwLTQ1LjNMMTI4IDMyMHpNNyA0NjYuM2w1MS43LTUxLjcgNzAuNiA3MC42LTE5LjcgMTkuN2MtNC41IDQuNS0xMC42IDctMTcgN0wyNCA1MTJjLTEzLjMgMC0yNC0xMC43LTI0LTI0bDAtNC43YzAtNi40IDIuNS0xMi41IDctMTd6Il19LGl4dD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJtb25leS1iaWxsLXdhdmUiLGljb246WzUxMiw1MTIsW10sImY1M2EiLCJNMCA0MTkuNkwwIDEwOS41YzAtMjMuMiAyNC4xLTM4LjYgNDYuMy0zMiA4Ny43IDI2LjIgMTQ5LjcgNS41IDIxMi4xLTE1LjMgNjQuNS0yMS41IDEyOS40LTQzLjEgMjIzLjMtMTMuMSAxOC41IDUuOSAzMC4zIDIzLjggMzAuMyA0My4zbDAgMzEwLjFjMCAyMy4yLTI0LjEgMzguNi00Ni4yIDMyLTg3LjctMjYuMi0xNDkuOC01LjUtMjEyLjEgMTUuMy02NC41IDIxLjUtMTI5LjQgNDMuMS0yMjMuMyAxMy4xLTE4LjUtNS45LTMwLjMtMjMuOC0zMC4zLTQzLjN6TTMzNiAyNTZjMC01My0zNS44LTk2LTgwLTk2cy04MCA0My04MCA5NiAzNS44IDk2IDgwIDk2IDgwLTQzIDgwLTk2ek0xMjAgNDEzLjZjNC40IDAgNy45LTMuOCA3LjItOC4xLTQuNi0yNy44LTI3LTQ5LjUtNTUuMi01My00LjQtLjUtOCAzLjEtOCA3LjVsMCAzOS45YzAgMy42IDIuNCA2LjggNiA3LjcgMTcuOSA0LjIgMzQuMyA2LjEgNTAgNi4xem0zMTguNS01MS4xYzUgLjggOS41LTMgOS41LThsMC00Mi42YzAtNC40LTMuNi04LjEtOC03LjUtMjUuMiAzLjEtNDUuOSAyMC45LTUzLjIgNDQuNi0xLjQgNC43IDIuMyA5LjEgNy4yIDkuMiAxNC4yIC40IDI5IDEuNyA0NC40IDQuM3pNNDQ4IDE1MmwwLTM5LjljMC0zLjYtMi41LTYuOC02LTcuNy0xNy45LTQuMi0zNC4zLTYuMS01MC02LjEtNC40IDAtNy45IDMuOC03LjIgOC4xIDQuNiAyNy44IDI3IDQ5LjUgNTUuMiA1MyA0LjQgLjUgOC0zLjEgOC03LjV6TTEyNS4yIDE2Mi45YzEuNC00LjctMi4zLTkuMS03LjItOS4yLTE0LjItLjQtMjktMS43LTQ0LjQtNC4zLTUtLjgtOS41IDMtOS41IDhMNjQgMjAwYzAgNC40IDMuNiA4LjEgOCA3LjUgMjUuMi0zLjEgNDUuOS0yMC45IDUzLjItNDQuNnoiXX0sYXh0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InRvaWxldC1wYXBlci1zbGFzaCIsaWNvbjpbNTc2LDUxMixbXSwiZTA3MiIsIk00MS0yNC45Yy05LjQtOS40LTI0LjYtOS40LTMzLjkgMFMtMi4zLS4zIDcgOS4xbDUyOCA1MjhjOS40IDkuNCAyNC42IDkuNCAzMy45IDBzOS40LTI0LjYgMC0zMy45bC05NC41LTk0LjVjNDAuMi0yMyA2OS41LTk2LjkgNjkuNS0xODQuNiAwLTEwNi00My0xOTItOTYtMTkycy05NiA4Ni05NiAxOTJjMCAyNC4xIDIuMiA0Ny4yIDYuMyA2OC40TDMwNCAyMzguMiAzMDQgMjI0YzAtNTguOSAxMS44LTExNC41IDMzLjItMTU3LjIgNS45LTExLjcgMTMuMS0yMy43IDIxLjktMzQuOEwxMjggMzJjLTguMyAwLTE2LjQgMi4xLTI0LjEgNi4xbC02My02M3pNMzIgMjI0bDAgMjY0YzAgMzAuOSAyNS4xIDU2IDU2IDU2bDE2MCAwYzMwLjkgMCA1Ni0yNS4xIDU2LTU2bDAtMTE0LjItMjU2LTI1NkMzNy45IDE0OC4yIDMyIDE4NC43IDMyIDIyNHptNDE2IDY0Yy0xNy43IDAtMzItMjguNy0zMi02NHMxNC4zLTY0IDMyLTY0IDMyIDI4LjcgMzIgNjQtMTQuMyA2NC0zMiA2NHoiXX0sbnh0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImZpbGUtc2hpZWxkIixpY29uOls1NzYsNTEyLFtdLCJlNGYwIiwiTTk2IDBDNjAuNyAwIDMyIDI4LjcgMzIgNjRsMCAzODRjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMjAxLjIgMEMyNjEgNDY5LjQgMjQwIDQxNC41IDI0MCAzNTYuNGwwLTMxLjFjMC0zNC40IDIyLTY1IDU0LjctNzUuOWwxMTItMzcuM2MzLjEtMSA2LjItMS44IDkuMy0yLjVsMC0zOS4xYzAtMTctNi43LTMzLjMtMTguNy00NS4zTDI5MC43IDE4LjdDMjc4LjcgNi43IDI2Mi41IDAgMjQ1LjUgMEw5NiAwek0zNTcuNSAxNzZMMjY0IDE3NmMtMTMuMyAwLTI0LTEwLjctMjQtMjRMMjQwIDU4LjUgMzU3LjUgMTc2em04Ny44IDMxMi41bC0xMy4zIDYuMyAwLTE4OC4xIDk2IDMyIDAgMTkuNmMwIDU1LjgtMzIuMiAxMDYuNS04Mi43IDEzMC4zek00MjEuOSAyNTkuNWwtMTEyIDM3LjNjLTEzLjEgNC40LTIxLjkgMTYuNi0yMS45IDMwLjRsMCAzMS4xYzAgNzQuNCA0MyAxNDIuMSAxMTAuMiAxNzMuN2wxOC41IDguN2M0LjggMi4yIDEwIDMuNCAxNS4yIDMuNHMxMC41LTEuMiAxNS4yLTMuNGwxOC41LTguN0M1MzMgNTAwLjMgNTc2IDQzMi42IDU3NiAzNTguMmwwLTMxLjFjMC0xMy44LTguOC0yNi0yMS45LTMwLjRsLTExMi0zNy4zYy02LjYtMi4yLTEzLjctMi4yLTIwLjIgMHoiXX0sb3h0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InRleHQtaGVpZ2h0IixpY29uOls1NzYsNTEyLFtdLCJmMDM0IiwiTTQwIDMyQzE3LjkgMzIgMCA0OS45IDAgNzJsMCA1NmMwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMybDAtMzIgNjQgMCAwIDMyMC0zMiAwYy0xNy43IDAtMzIgMTQuMy0zMiAzMnMxNC4zIDMyIDMyIDMybDEyOCAwYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMybC0zMiAwIDAtMzIwIDY0IDAgMCAzMmMwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMybDAtNTZjMC0yMi4xLTE3LjktNDAtNDAtNDBMNDAgMzJ6TTQzOC42IDM2MS40Yy0xMi41LTEyLjUtMzIuOC0xMi41LTQ1LjMgMHMtMTIuNSAzMi44IDAgNDUuM2w2NCA2NGMxMi41IDEyLjUgMzIuOCAxMi41IDQ1LjMgMGw2NC02NGMxMi41LTEyLjUgMTIuNS0zMi44IDAtNDUuM3MtMzIuOC0xMi41LTQ1LjMgMGwtOS40IDkuNCAwLTIyOS41IDkuNCA5LjRjMTIuNSAxMi41IDMyLjggMTIuNSA0NS4zIDBzMTIuNS0zMi44IDAtNDUuM2wtNjQtNjRjLTYtNi0xNC4xLTkuNC0yMi42LTkuNHMtMTYuNiAzLjQtMjIuNiA5LjRsLTY0IDY0Yy0xMi41IDEyLjUtMTIuNSAzMi44IDAgNDUuM3MzMi44IDEyLjUgNDUuMyAwbDkuNC05LjQgMCAyMjkuNS05LjQtOS40eiJdfSx3bGU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZmFjZS1ncmluLXRvbmd1ZSIsaWNvbjpbNTEyLDUxMixbMTI4NTM5LCJncmluLXRvbmd1ZSJdLCJmNTg5IiwiTTAgMjU2YzAgMTA0LjQgNjIuNSAxOTQuMiAxNTIuMiAyMzQuMS01LjMtMTMtOC4yLTI3LjItOC4yLTQyLjFsMC02MS43Yy0xNi45LTE2LjUtMzAuMS0zNi43LTM4LjMtNTkuMy00LjMtMTEuOCA3LjctMjEuOCAxOS42LTE4LjEgMzkuMiAxMi4yIDgzLjcgMTkuMSAxMzAuNyAxOS4xczkxLjUtNi45IDEzMC43LTE5LjFjMTEuOS0zLjcgMjMuOSA2LjMgMTkuNiAxOC4xLTguMyAyMi42LTIxLjUgNDIuOC0zOC4zIDU5LjNsMCA2MS43YzAgMTQuOS0yLjkgMjkuMS04LjIgNDIuMSA4OS43LTM5LjggMTUyLjItMTI5LjYgMTUyLjItMjM0LjEgMC0xNDEuNC0xMTQuNi0yNTYtMjU2LTI1NlMwIDExNC42IDAgMjU2em0xNzYtODBhMzIgMzIgMCAxIDEgMCA2NCAzMiAzMiAwIDEgMSAwLTY0em0xMjggMzJhMzIgMzIgMCAxIDEgNjQgMCAzMiAzMiAwIDEgMSAtNjQgMHptMTYgMjQwbDAtNDUuNGMwLTE0LjctMTEuOS0yNi42LTI2LjYtMjYuNmwtMiAwYy0xMS4zIDAtMjEuMSA3LjktMjMuNiAxOC45LTIuOCAxMi42LTIwLjggMTIuNi0yMy42IDAtMi41LTExLjEtMTIuMy0xOC45LTIzLjYtMTguOWwtMiAwYy0xNC43IDAtMjYuNiAxMS45LTI2LjYgMjYuNmwwIDQ1LjRjMCAzNS4zIDI4LjcgNjQgNjQgNjRzNjQtMjguNyA2NC02NHoiXX0sc3h0PXdsZSxseHQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZmlsZS1zaWduYXR1cmUiLGljb246WzY0MCw1MTIsW10sImY1NzMiLCJNNjQuMSA2NGMwLTM1LjMgMjguNy02NCA2NC02NEwyNzcuNiAwYzE3IDAgMzMuMyA2LjcgNDUuMyAxOC43TDQyOS4zIDEyNS4zYzEyIDEyIDE4LjcgMjguMyAxOC43IDQ1LjNsMCA5Ny41LTEzMiAxMzItNDIuMSAwLTE2LjEtNTMuNmMtNC43LTE1LjctMTkuMS0yNi40LTM1LjUtMjYuNC0xMS4zIDAtMjEuOSA1LjEtMjguOSAxMy45TDEzMy4zIDQwOWMtOC4zIDEwLjMtNi42IDI1LjUgMy43IDMzLjdzMjUuNSA2LjYgMzMuNy0zLjhsNDcuMS01OC44IDE1LjIgNTAuN2MzIDEwLjIgMTIuNCAxNy4xIDIzIDE3LjFsMzEuNSAwYy0uOSAzLjEtMS43IDYuMy0yLjMgOS41bC0xMC45IDU0LjUtMTQ2LjIgMGMtMzUuMyAwLTY0LTI4LjctNjQtNjRsMC0zODR6bTIwOC01LjVsMCA5My41YzAgMTMuMyAxMC43IDI0IDI0IDI0bDkzLjUgMC0xMTcuNS0xMTcuNXptNjAuMiA0MDguNGMyLjUtMTIuNCA4LjYtMjMuOCAxNy41LTMyLjdsMTE4LjktMTE4LjkgODAgODAtMTE4LjkgMTE4LjljLTguOSA4LjktMjAuMyAxNS0zMi43IDE3LjVsLTU5LjYgMTEuOWMtLjkgLjItMS45IC4zLTIuOSAuMy04IDAtMTQuNi02LjUtMTQuNi0xNC42IDAtMSAuMS0xLjkgLjMtMi45bDExLjktNTkuNnptMjY3LjgtMTIzbC0yOC44IDI4LjgtODAtODAgMjguOC0yOC44YzIyLjEtMjIuMSA1Ny45LTIyLjEgODAgMHMyMi4xIDU3LjkgMCA4MHoiXX0sY3h0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImJ1aWxkaW5nLXdoZWF0IixpY29uOls2NDAsNTEyLFtdLCJlNGRiIiwiTTk2IDBDNjAuNyAwIDMyIDI4LjcgMzIgNjRsMCAzODRjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMjQ5LjMgMGMtNi0xNC44LTkuMy0zMS05LjMtNDggMC0xNy43IDcuMi0zMy43IDE4LjgtNDUuMy0xMS45LTE5LjQtMTguOC00Mi4zLTE4LjgtNjYuNyAwLTE3LjcgNy4yLTMzLjcgMTguOC00NS4zLTExLjktMTkuNC0xOC44LTQyLjMtMTguOC02Ni43IDAtMjUuMiAxNC41LTQ2LjkgMzUuNi01Ny40LTIuNC03LjEtMy42LTE0LjctMy42LTIyLjZsMC0zMkMzNjggOTYuNyAzODggNzAuMSA0MTUuOSA2MC4xIDQxMy45IDI2LjYgMzg2IDAgMzUyIDBMOTYgMHpNMjA4IDM1MmwzMiAwYzE3LjcgMCAzMiAxNC4zIDMyIDMybDAgODAtOTYgMCAwLTgwYzAtMTcuNyAxNC4zLTMyIDMyLTMyek0xMjggMTEyYzAtOC44IDcuMi0xNiAxNi0xNmwzMiAwYzguOCAwIDE2IDcuMiAxNiAxNmwwIDMyYzAgOC44LTcuMiAxNi0xNiAxNmwtMzIgMGMtOC44IDAtMTYtNy4yLTE2LTE2bDAtMzJ6TTI3MiA5NmwzMiAwYzguOCAwIDE2IDcuMiAxNiAxNmwwIDMyYzAgOC44LTcuMiAxNi0xNiAxNmwtMzIgMGMtOC44IDAtMTYtNy4yLTE2LTE2bDAtMzJjMC04LjggNy4yLTE2IDE2LTE2ek0xMjggMjQwYzAtOC44IDcuMi0xNiAxNi0xNmwzMiAwYzguOCAwIDE2IDcuMiAxNiAxNmwwIDMyYzAgOC44LTcuMiAxNi0xNiAxNmwtMzIgMGMtOC44IDAtMTYtNy4yLTE2LTE2bDAtMzJ6bTE0NC0xNmwzMiAwYzguOCAwIDE2IDcuMiAxNiAxNmwwIDMyYzAgOC44LTcuMiAxNi0xNiAxNmwtMzIgMGMtOC44IDAtMTYtNy4yLTE2LTE2bDAtMzJjMC04LjggNy4yLTE2IDE2LTE2em0zNTIgMGwtMTYgMGMtNDQuMiAwLTgwIDM1LjgtODAgODAgMCA4LjggNy4yIDE2IDE2IDE2bDE2IDBjNDQuMiAwIDgwLTM1LjggODAtODAgMC04LjgtNy4yLTE2LTE2LTE2em0xNiAxMjhjMC04LjgtNy4yLTE2LTE2LTE2bC0xNiAwYy00NC4yIDAtODAgMzUuOC04MCA4MCAwIDguOCA3LjIgMTYgMTYgMTZsMTYgMGM0NC4yIDAgODAtMzUuOCA4MC04MHptMCAxMTJjMC04LjgtNy4yLTE2LTE2LTE2bC0xNiAwYy00NC4yIDAtODAgMzUuOC04MCA4MCAwIDguOCA3LjIgMTYgMTYgMTZsMTYgMGM0NC4yIDAgODAtMzUuOCA4MC04MHpNNDk2IDUyOGMwLTQ0LjItMzUuOC04MC04MC04MGwtMTYgMGMtOC44IDAtMTYgNy4yLTE2IDE2IDAgNDQuMiAzNS44IDgwIDgwIDgwbDE2IDBjOC44IDAgMTYtNy4yIDE2LTE2em0tMTYtOTZjOC44IDAgMTYtNy4yIDE2LTE2IDAtNDQuMi0zNS44LTgwLTgwLTgwbC0xNiAwYy04LjggMC0xNiA3LjItMTYgMTYgMCA0NC4yIDM1LjggODAgODAgODBsMTYgMHptMTYtMTI4YzAtNDQuMi0zNS44LTgwLTgwLTgwbC0xNiAwYy04LjggMC0xNiA3LjItMTYgMTYgMCA0NC4yIDM1LjggODAgODAgODBsMTYgMGM4LjggMCAxNi03LjIgMTYtMTZ6TTUxMiA2NGMtMTMuMyAwLTI0IDEwLjctMjQgMjRsMCAxMDRjMCAxMy4zIDEwLjcgMjQgMjQgMjRzMjQtMTAuNyAyNC0yNGwwLTEwNGMwLTEzLjMtMTAuNy0yNC0yNC0yNHptOTYgNjRjMC0xMy4zLTEwLjctMjQtMjQtMjRzLTI0IDEwLjctMjQgMjRsMCAzMmMwIDEzLjMgMTAuNyAyNCAyNCAyNHMyNC0xMC43IDI0LTI0bDAtMzJ6TTQ0MCAxMDRjLTEzLjMgMC0yNCAxMC43LTI0IDI0bDAgMzJjMCAxMy4zIDEwLjcgMjQgMjQgMjRzMjQtMTAuNyAyNC0yNGwwLTMyYzAtMTMuMy0xMC43LTI0LTI0LTI0eiJdfSxkeHQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToicGx1Zy1jaXJjbGUtbWludXMiLGljb246WzY0MCw1MTIsW10sImU1NWUiLCJNMTkyLTMyYzE3LjcgMCAzMiAxNC4zIDMyIDMybDAgOTYgMTI4IDAgMC05NmMwLTE3LjcgMTQuMy0zMiAzMi0zMnMzMiAxNC4zIDMyIDMybDAgOTYgNjQgMGMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMmwwIDQ4LjdjLTk4LjYgOC4xLTE3NiA5MC43LTE3NiAxOTEuMyAwIDI3LjMgNS43IDUzLjMgMTYgNzYuOWwwIDMuMWMwIDE3LjctMTQuMyAzMi0zMiAzMnMtMzItMTQuMy0zMi0zMmwwLTY2LjdDMTY1LjIgMzk4LjEgOTYgMzE5LjEgOTYgMjI0bDAtNjRjLTE3LjcgMC0zMi0xNC4zLTMyLTMyUzc4LjMgOTYgOTYgOTZsNjQgMCAwLTk2YzAtMTcuNyAxNC4zLTMyIDMyLTMyek0zNTIgNDAwYTE0NCAxNDQgMCAxIDEgMjg4IDAgMTQ0IDE0NCAwIDEgMSAtMjg4IDB6bTIyNCAwYzAtOC44LTcuMi0xNi0xNi0xNmwtMTI4IDBjLTguOCAwLTE2IDcuMi0xNiAxNnM3LjIgMTYgMTYgMTZsMTI4IDBjOC44IDAgMTYtNy4yIDE2LTE2eiJdfSxmRD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJmdXRib2wiLGljb246WzUxMiw1MTIsWzk5MTcsImZ1dGJvbC1iYWxsIiwic29jY2VyLWJhbGwiXSwiZjFlMyIsIk00MTcuMyAzNjAuMWwtNzEuNi00LjhjLTUuMi0uMy0xMC4zIDEuMS0xNC41IDQuMnMtNy4yIDcuNC04LjQgMTIuNWwtMTcuNiA2OS42QzI4OS41IDQ0NS44IDI3MyA0NDggMjU2IDQ0OHMtMzMuNS0yLjItNDkuMi02LjRMMTg5LjIgMzcyYy0xLjMtNS00LjMtOS40LTguNC0xMi41cy05LjMtNC41LTE0LjUtNC4ybC03MS42IDQuOGMtMTcuNi0yNy4yLTI4LjUtNTkuMi0zMC40LTkzLjZMMTI1IDIyOC4zYzQuNC0yLjggNy42LTcgOS4yLTExLjlzMS40LTEwLjItLjUtMTVsLTI2LjctNjYuNkMxMjggMTA5LjIgMTU1LjMgODkgMTg2LjcgNzYuOWw1NS4yIDQ2YzQgMy4zIDkgNS4xIDE0LjEgNS4xczEwLjItMS44IDE0LjEtNS4xbDU1LjItNDZjMzEuMyAxMi4xIDU4LjcgMzIuMyA3OS42IDU3LjlsLTI2LjcgNjYuNmMtMS45IDQuOC0yLjEgMTAuMS0uNSAxNXM0LjkgOS4xIDkuMiAxMS45bDYwLjcgMzguMmMtMS45IDM0LjQtMTIuOCA2Ni40LTMwLjQgOTMuNnpNMjU2IDUxMmEyNTYgMjU2IDAgMSAwIDAtNTEyIDI1NiAyNTYgMCAxIDAgMCA1MTJ6bTE0LjEtMzI1LjdjLTguNC02LjEtMTkuOC02LjEtMjguMiAwTDE5NCAyMjFjLTguNCA2LjEtMTEuOSAxNi45LTguNyAyNi44bDE4LjMgNTYuM2MzLjIgOS45IDEyLjQgMTYuNiAyMi44IDE2LjZsNTkuMiAwYzEwLjQgMCAxOS42LTYuNyAyMi44LTE2LjZsMTguMy01Ni4zYzMuMi05LjktLjMtMjAuNy04LjctMjYuOGwtNDcuOS0zNC44eiJdfSx1eHQ9ZkQscHh0PWZELE1sZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJjaXJjbGUtcGx1cyIsaWNvbjpbNTEyLDUxMixbInBsdXMtY2lyY2xlIl0sImYwNTUiLCJNMjU2IDUxMmEyNTYgMjU2IDAgMSAwIDAtNTEyIDI1NiAyNTYgMCAxIDAgMCA1MTJ6TTIzMiAzNDRsMC02NC02NCAwYy0xMy4zIDAtMjQtMTAuNy0yNC0yNHMxMC43LTI0IDI0LTI0bDY0IDAgMC02NGMwLTEzLjMgMTAuNy0yNCAyNC0yNHMyNCAxMC43IDI0IDI0bDAgNjQgNjQgMGMxMy4zIDAgMjQgMTAuNyAyNCAyNHMtMTAuNyAyNC0yNCAyNGwtNjQgMCAwIDY0YzAgMTMuMy0xMC43IDI0LTI0IDI0cy0yNC0xMC43LTI0LTI0eiJdfSxoeHQ9TWxlLGZ4dD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJicmF6aWxpYW4tcmVhbC1zaWduIixpY29uOls1MTIsNTEyLFtdLCJlNDZjIiwiTTQwMCAxNmMxNy43IDAgMzIgMTQuMyAzMiAzMmwwIDE2IDE2IDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJsLTQ4LjkgMGMtMjYgMC00Ny4xIDIxLjEtNDcuMSA0Ny4xIDAgMjIuNSAxNS45IDQxLjggMzcuOSA0Ni4ybDMyLjggNi42YzUxLjkgMTAuNCA4OS4zIDU2IDg5LjMgMTA5IDAgNTAuNi0zMy44IDkzLjMtODAgMTA2LjdsMCAyMC40YzAgMTcuNy0xNC4zIDMyLTMyIDMycy0zMi0xNC4zLTMyLTMybDAtMTYtMzIgMGMtMTcuNyAwLTMyLTE0LjMtMzItMzJzMTQuMy0zMiAzMi0zMmw2NC45IDBjMjYgMCA0Ny4xLTIxLjEgNDcuMS00Ny4xIDAtMjIuNS0xNS45LTQxLjgtMzcuOS00Ni4ybC0zMi44LTYuNmMtNTEuOS0xMC40LTg5LjMtNTYtODkuMy0xMDkgMC01MC42IDMzLjgtOTMuMiA4MC0xMDYuN0wzNjggNDhjMC0xNy43IDE0LjMtMzIgMzItMzJ6TTAgNjRDMCA0Ni4zIDE0LjMgMzIgMzIgMzJsODAgMGM3OS41IDAgMTQ0IDY0LjUgMTQ0IDE0NCAwIDU0LjMtMzAgMTAxLjUtNzQuNCAxMjYuMWw0MSAxMzYuN2M1LjEgMTYuOS00LjUgMzQuOC0yMS41IDM5LjhzLTM0LjgtNC41LTM5LjgtMjEuNUwxMjAuMSAzMTkuOGMtMi43IC4xLTUuNCAuMi04LjEgLjJsLTQ4IDAgMCAxMjhjMCAxNy43LTE0LjMgMzItMzIgMzJTMCA0NjUuNyAwIDQ0OEwwIDY0ek02NCAyNTZsNDggMGM0NC4yIDAgODAtMzUuOCA4MC04MHMtMzUuOC04MC04MC04MGwtNDggMCAwIDE2MHoiXX0sbXh0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InN0YXItYW5kLWNyZXNjZW50IixpY29uOls1MTIsNTEyLFs5NzcwXSwiZjY5OSIsIk0wIDI1NmMwLTE0MS40IDExNC42LTI1NiAyNTYtMjU2IDMzIDAgNjQuNiA2LjMgOTMuNiAxNy43IDcuNCAyLjkgMTEuNSAxMC43IDkuOCAxOC40cy04LjggMTMtMTYuNyAxMi40Yy00LjgtLjMtOS43LS41LTE0LjYtLjUtMTE0LjkgMC0yMDggOTMuMS0yMDggMjA4czkzLjEgMjA4IDIwOCAyMDhjNC45IDAgOS44LS4yIDE0LjYtLjUgNy45LS41IDE1IDQuNyAxNi43IDEyLjRzLTIuNCAxNS41LTkuOCAxOC40QzMyMC42IDUwNS43IDI4OSA1MTIgMjU2IDUxMiAxMTQuNiA1MTIgMCAzOTcuNCAwIDI1NnpNMzc1LjQgMTM3LjRjMy41LTcuMSAxMy43LTcuMSAxNy4yIDBsMzEuNSA2My44YzEuNCAyLjggNC4xIDQuOCA3LjIgNS4zbDcwLjQgMTAuMmM3LjkgMS4xIDExIDEwLjggNS4zIDE2LjRsLTUwLjkgNDkuNmMtMi4zIDIuMi0zLjMgNS40LTIuOCA4LjVsMTIgNzAuMWMxLjMgNy44LTYuOSAxMy44LTEzLjkgMTAuMWwtNjMtMzMuMWMtMi44LTEuNS02LjEtMS41LTguOSAwbC02MyAzMy4xYy03IDMuNy0xNS4zLTIuMy0xMy45LTEwLjFsMTItNzAuMWMuNS0zLjEtLjUtNi4zLTIuOC04LjVMMjYxIDIzMy4xYy01LjctNS42LTIuNi0xNS4yIDUuMy0xNi40bDcwLjQtMTAuMmMzLjEtLjUgNS44LTIuNCA3LjItNS4zbDMxLjUtNjMuOHoiXX0sa2xlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImZhY2Utc3VycHJpc2UiLGljb246WzUxMiw1MTIsWzEyODU1OCwic3VycHJpc2UiXSwiZjVjMiIsIk0yNTYgNTEyYTI1NiAyNTYgMCAxIDAgMC01MTIgMjU2IDI1NiAwIDEgMCAwIDUxMnpNMTc2IDE3NmEzMiAzMiAwIDEgMSAwIDY0IDMyIDMyIDAgMSAxIDAtNjR6bTEyOCAzMmEzMiAzMiAwIDEgMSA2NCAwIDMyIDMyIDAgMSAxIC02NCAwem0tNDggODBhNjQgNjQgMCAxIDEgMCAxMjggNjQgNjQgMCAxIDEgMC0xMjh6Il19LGd4dD1rbGUsYnh0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6Imhvc3BpdGFsLXVzZXIiLGljb246WzY0MCw1MTIsW10sImY4MGQiLCJNNjQgNjRDNjQgMjguNyA5Mi43IDAgMTI4IDBMMzg0IDBjMzUuMyAwIDY0IDI4LjcgNjQgNjRsMCAxMjEuM2MtNDYuOSAxOS04MCA2NS04MCAxMTguNyAwIDI3LjcgOC44IDUzLjQgMjMuOCA3NC40LTUxLjUgMjEtODcuOCA3MS42LTg3LjggMTMwLjcgMCAxIDAgMS45IDAgMi45bC0xNzYgMGMtMzUuMyAwLTY0LTI4LjctNjQtNjRMNjQgNjR6TTIwOCA0MDBsMCA2NCA1My40IDBjNy4yLTI5LjQgMjEuMy01Ni4xIDQwLjQtNzguMy02LjEtMTkuNS0yNC4zLTMzLjctNDUuOC0zMy43LTI2LjUgMC00OCAyMS41LTQ4IDQ4ek0yNDggODhjLTguOCAwLTE2IDcuMi0xNiAxNmwwIDMyLTMyIDBjLTguOCAwLTE2IDcuMi0xNiAxNmwwIDE2YzAgOC44IDcuMiAxNiAxNiAxNmwzMiAwIDAgMzJjMCA4LjggNy4yIDE2IDE2IDE2bDE2IDBjOC44IDAgMTYtNy4yIDE2LTE2bDAtMzIgMzIgMGM4LjggMCAxNi03LjIgMTYtMTZsMC0xNmMwLTguOC03LjItMTYtMTYtMTZsLTMyIDAgMC0zMmMwLTguOC03LjItMTYtMTYtMTZsLTE2IDB6TTQxNiAzMDRhODAgODAgMCAxIDEgMTYwIDAgODAgODAgMCAxIDEgLTE2MCAwek0zNTIgNTEyYzAtNTMgNDMtOTYgOTYtOTZsOTYgMGM1MyAwIDk2IDQzIDk2IDk2IDAgMTcuNy0xNC4zIDMyLTMyIDMybC0yMjQgMGMtMTcuNyAwLTMyLTE0LjMtMzItMzJ6Il19LHZ4dD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJhcnJvdy1kb3duLXVwLWxvY2siLGljb246WzU3Niw1MTIsW10sImU0YjAiLCJNMjYyLjYgNDIyLjZsLTgwIDgwYy0xMi41IDEyLjUtMzIuOCAxMi41LTQ1LjMgMGwtODAtODBjLTEyLjUtMTIuNS0xMi41LTMyLjggMC00NS4zczMyLjgtMTIuNSA0NS4zIDBsMjUuNCAyNS40IDAtMTE0LjctNjQgMGMtMTcuNyAwLTMyLTE0LjMtMzItMzJzMTQuMy0zMiAzMi0zMmwyNTYgMCAwLTExNC43LTI1LjQgMjUuNGMtMTIuNSAxMi41LTMyLjggMTIuNS00NS4zIDBzLTEyLjUtMzIuOCAwLTQ1LjNsODAtODBjMTIuNS0xMi41IDMyLjgtMTIuNSA0NS4zIDBsODAgODBjMTIuNSAxMi41IDEyLjUgMzIuOCAwIDQ1LjNzLTMyLjggMTIuNS00NS4zIDBsLTI1LjQtMjUuNCAwIDk0LjhjLTI1LjMgMjAuMy00Mi44IDUwLjEtNDcgODMuOWwtMTQ1IDAgMCAxMTQuNyAyNS40LTI1LjRjMTIuNS0xMi41IDMyLjgtMTIuNSA0NS4zIDBzMTIuNSAzMi44IDAgNDUuM3pNMTkyIDMybDAgMTQ0LTY0IDAgMC0xNDRjMC0xNy43IDE0LjMtMzIgMzItMzJzMzIgMTQuMyAzMiAzMnpNNDk2IDMwNC4xYzAtMTcuNy0xNC4zLTMyLTMyLTMycy0zMiAxNC4zLTMyIDMybDAgNDcuOSA2NCAwIDAtNDcuOXpNMzUyIDQwMGMwLTIwLjkgMTMuNC0zOC43IDMyLTQ1LjNsMC01MC42YzAtNDQuMiAzNS44LTgwIDgwLTgwczgwIDM1LjggODAgODBsMCA1MC42YzE4LjYgNi42IDMyIDI0LjQgMzIgNDUuM2wwIDk2YzAgMjYuNS0yMS41IDQ4LTQ4IDQ4bC0xMjggMGMtMjYuNSAwLTQ4LTIxLjUtNDgtNDhsMC05NnoiXX0sU2xlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImZvbGRlciIsaWNvbjpbNTEyLDUxMixbMTI4MTkzLDEyODQ0Nyw2MTcxNiwiZm9sZGVyLWJsYW5rIl0sImYwN2IiLCJNNjQgNDQ4bDM4NCAwYzM1LjMgMCA2NC0yOC43IDY0LTY0bDAtMjQwYzAtMzUuMy0yOC43LTY0LTY0LTY0TDI5OC43IDgwYy02LjkgMC0xMy43LTIuMi0xOS4yLTYuNEwyNDEuMSA0NC44QzIzMCAzNi41IDIxNi41IDMyIDIwMi43IDMyTDY0IDMyQzI4LjcgMzIgMCA2MC43IDAgOTZMMCAzODRjMCAzNS4zIDI4LjcgNjQgNjQgNjR6Il19LHh4dD1TbGUseXh0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImhvbGx5LWJlcnJ5IixpY29uOls1MTIsNTEyLFtdLCJmN2FhIiwiTTI1Ni4yIDk2YTQ4IDQ4IDAgMSAwIDAtOTYgNDggNDggMCAxIDAgMCA5NnptLTgwIDk2YTQ4IDQ4IDAgMSAwIDAtOTYgNDggNDggMCAxIDAgMCA5NnpNMjc3IDM4My44YzEgLjEgMi4xIC4yIDMuMiAuMiAzOS44IDAgNzIgMzIuMiA3MiA3MmwwIDIyLjdjMCAxNi40IDE2IDI3LjkgMzEuNiAyMi44bDEyLjgtNC4zYzE4LTYgMzcuMy02LjUgNTUuNi0xLjVsMTkuNCA1LjNjMTcuOSA0LjkgMzQuNC0xMS42IDI5LjUtMjkuNUw0OTUuOSA0NTJjLTUtMTguMy00LjQtMzcuNiAxLjUtNTUuNmw0LjMtMTIuOGM1LjItMTUuNS02LjQtMzEuNi0yMi44LTMxLjYtMzQuNiAwLTYyLjctMjguMS02Mi43LTYyLjdsMC0zMmMwLTE2LjQtMTYtMjcuOS0zMS42LTIyLjhsLTEyLjggNC4zYy0xOCA2LTM3LjMgNi41LTU1LjYgMS41bC0yOS42LTguMWMtMi45LS44LTUuOS0xLTguNy0uNyA0LjIgOS43IDUuOCAyMC44IDMuNyAzMi4zbC02LjMgMzQuOGMtMS41IDguNC0xLjQgMTcgLjUgMjUuM2w1LjMgMjMuOWMyLjggMTIuNyAxLjEgMjUuMi00IDM1Ljl6TTEyNy44IDIzNC41Yy0xNS41LTUuMi0zMS42IDYuNC0zMS42IDIyLjhsMCAzMmMwIDM0LjYtMjguMSA2Mi43LTYyLjcgNjIuNy0xNi40IDAtMjcuOSAxNi0yMi44IDMxLjZMMTUgMzk2LjRjNiAxOCA2LjUgMzcuMyAxLjUgNTUuNmwtNS4zIDE5LjRDNi40IDQ4OS40IDIyLjggNTA1LjggNDAuNyA1MDFsMTkuNC01LjNjMTguMy01IDM3LjYtNC41IDU1LjYgMS41bDEyLjggNC4zYzE1LjUgNS4yIDMxLjYtNi40IDMxLjYtMjIuOGwwLTMyYzAtMzQuNiAyOC4xLTYyLjcgNjIuNy02Mi43IDE2LjQgMCAyNy45LTE2IDIyLjgtMzEuNmwtNC4zLTEyLjhjLTYtMTgtNi41LTM3LjMtMS41LTU1LjZsNS4zLTE5LjRjNC45LTE3LjktMTEuNi0zNC40LTI5LjUtMjkuNWwtMTkuNCA1LjNjLTE4LjMgNS0zNy42IDQuNC01NS42LTEuNWwtMTIuOC00LjN6TTM4NC4yIDE0NGE0OCA0OCAwIDEgMCAtOTYgMCA0OCA0OCAwIDEgMCA5NiAweiJdfSx3eHQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToidmVudXMtZG91YmxlIixpY29uOls2NDAsNTEyLFs5ODkwXSwiZjIyNiIsIk0xOTIgMjg4YTExMiAxMTIgMCAxIDAgMC0yMjQgMTEyIDExMiAwIDEgMCAwIDIyNHpNMzY4IDE3NmMwIDg2LjMtNjIuMSAxNTguMS0xNDQuMSAxNzMuMSAuMSAxIC4xIDEuOSAuMSAyLjlsMCA2NCAzMiAwYzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMybC0zMiAwIDAgMzJjMCAxNy43LTE0LjMgMzItMzIgMzJzLTMyLTE0LjMtMzItMzJsMC0zMi0zMiAwYy0xNy43IDAtMzItMTQuMy0zMi0zMnMxNC4zLTMyIDMyLTMybDMyIDAgMC02NGMwLTEgMC0xLjkgLjEtMi45LTgyLTE1LTE0NC4xLTg2LjgtMTQ0LjEtMTczLjEgMC05Ny4yIDc4LjgtMTc2IDE3Ni0xNzZTMzY4IDc4LjggMzY4IDE3NnpNMzU3LjUgMzI3YzE0LjQtMTUuOCAyNi42LTMzLjcgMzYuMS01My4xIDE2LjEgOSAzNC43IDE0LjEgNTQuNSAxNC4xIDYxLjkgMCAxMTItNTAuMSAxMTItMTEyUzUwOS45IDY0IDQ0OCA2NGMtMTkuOCAwLTM4LjMgNS4xLTU0LjUgMTQuMS05LjUtMTkuNC0yMS42LTM3LjMtMzYuMS01My4xIDI2LjQtMTUuOSA1Ny40LTI1IDkwLjUtMjUgOTcuMiAwIDE3NiA3OC44IDE3NiAxNzYgMCA4Ni4zLTYyLjEgMTU4LjEtMTQ0LjEgMTczLjEgLjEgLjkgLjEgMS45IC4xIDIuOWwwIDY0IDMyIDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJsLTMyIDAgMCAzMmMwIDE3LjctMTQuMyAzMi0zMiAzMnMtMzItMTQuMy0zMi0zMmwwLTMyLTMyIDBjLTE3LjcgMC0zMi0xNC4zLTMyLTMyczE0LjMtMzIgMzItMzJsMzIgMCAwLTY0YzAtMSAwLTEuOSAuMS0yLjktMjEuMS0zLjktNDAuOS0xMS41LTU4LjYtMjIuMnoiXX0sTXh0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImNsaXBib2FyZC1xdWVzdGlvbiIsaWNvbjpbMzg0LDUxMixbXSwiZTRlMyIsIk0zMTEuNCAzMmw4LjYgMGMzNS4zIDAgNjQgMjguNyA2NCA2NGwwIDM1MmMwIDM1LjMtMjguNyA2NC02NCA2NEw2NCA1MTJjLTM1LjMgMC02NC0yOC43LTY0LTY0TDAgOTZDMCA2MC43IDI4LjcgMzIgNjQgMzJsOC42IDBDODMuNiAxMi45IDEwNC4zIDAgMTI4IDBMMjU2IDBjMjMuNyAwIDQ0LjQgMTIuOSA1NS40IDMyek0yNDggMTEyYzEzLjMgMCAyNC0xMC43IDI0LTI0cy0xMC43LTI0LTI0LTI0TDEzNiA2NGMtMTMuMyAwLTI0IDEwLjctMjQgMjRzMTAuNyAyNCAyNCAyNGwxMTIgMHpNMTkyIDI0OGMxNi4xIDAgMjkuMiAxMy4xIDI5LjIgMjkuMiAwIDguNy0zLjEgMTMuOS02LjkgMTcuNy00LjUgNC40LTEwLjcgNy41LTE2LjggOS41LTE0LjkgNS0yOS41IDE5LjMtMjkuNSAzOS41IDAgMTMuMyAxMC43IDI0IDI0IDI0IDExLjUgMCAyMS4yLTguMSAyMy41LTE5IDE5LjItNy4xIDUzLjctMjYuMyA1My43LTcxLjggMC00Mi42LTM0LjYtNzcuMi03Ny4yLTc3LjJzLTc3LjIgMzQuNi03Ny4yIDc3LjJjMCAxMy4zIDEwLjcgMjQgMjQgMjRzMjQtMTAuNyAyNC0yNGMwLTE2LjEgMTMuMS0yOS4yIDI5LjItMjkuMnptMjggMTY4YzAtMTUuNS0xMi41LTI4LTI4LTI4cy0yOCAxMi41LTI4IDI4IDEyLjUgMjggMjggMjggMjgtMTIuNSAyOC0yOHoiXX0sa3h0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImhvdGRvZyIsaWNvbjpbNTEyLDUxMixbMTI3Nzg5XSwiZjgwZiIsIk0yODggMGMtMjAuNSAwLTQwLjEgOC4xLTU0LjYgMjIuNkwyMi42IDIzMy40QzguMSAyNDcuOSAwIDI2Ny41IDAgMjg4IDAgMzAwLjIgMi45IDMxMi4xIDguMiAzMjIuN0wzMjIuNyA4LjJDMzEyLjEgMi45IDMwMC4yIDAgMjg4IDB6TTIyNCA1MTJjMjAuNSAwIDQwLjEtOC4xIDU0LjYtMjIuNkw0ODkuNCAyNzguNmMxNC41LTE0LjUgMjIuNi0zNC4xIDIyLjYtNTQuNiAwLTEyLjItMi45LTI0LjEtOC4yLTM0LjdMMTg5LjMgNTAzLjhjMTAuNyA1LjQgMjIuNiA4LjIgMzQuNyA4LjJ6TTQ1Ni42IDE2OC42YzMxLjItMzEuMiAzMS4yLTgxLjkgMC0xMTMuMXMtODEuOS0zMS4yLTExMy4xIDBsLTI4OCAyODhjLTMxLjIgMzEuMi0zMS4yIDgxLjkgMCAxMTMuMXM4MS45IDMxLjIgMTEzLjEgMGwyODgtMjg4eiJdfSxTeHQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiYXJyb3ctdXAtZnJvbS1icmFja2V0IixpY29uOls0NDgsNTEyLFtdLCJlMDlhIiwiTTI0Ni42IDkuNGMtMTIuNS0xMi41LTMyLjgtMTIuNS00NS4zIDBsLTEyOCAxMjhjLTEyLjUgMTIuNS0xMi41IDMyLjggMCA0NS4zczMyLjggMTIuNSA0NS4zIDBMMTkyIDEwOS4zIDE5MiAzMjBjMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMmwwLTIxMC43IDczLjQgNzMuNGMxMi41IDEyLjUgMzIuOCAxMi41IDQ1LjMgMHMxMi41LTMyLjggMC00NS4zbC0xMjgtMTI4ek02NCAzNTJjMC0xNy43LTE0LjMtMzItMzItMzJTMCAzMzQuMyAwIDM1MmwwIDY0YzAgNTMgNDMgOTYgOTYgOTZsMjU2IDBjNTMgMCA5Ni00MyA5Ni05NmwwLTY0YzAtMTcuNy0xNC4zLTMyLTMyLTMycy0zMiAxNC4zLTMyIDMybDAgNjRjMCAxNy43LTE0LjMgMzItMzIgMzJMOTYgNDQ4Yy0xNy43IDAtMzItMTQuMy0zMi0zMmwwLTY0eiJdfSx6eHQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToibWljcm9zY29wZSIsaWNvbjpbNTEyLDUxMixbMTI4MzAwXSwiZjYxMCIsIk0xNzYgMGMtMjYuNSAwLTQ4IDIxLjUtNDggNDhsMCAyMDhjMCAyNi41IDIxLjUgNDggNDggNDhsNjQgMGMyNi41IDAgNDgtMjEuNSA0OC00OGwwLTY0IDMyIDBjNzAuNyAwIDEyOCA1Ny4zIDEyOCAxMjhTMzkwLjcgNDQ4IDMyMCA0NDhMMzIgNDQ4Yy0xNy43IDAtMzIgMTQuMy0zMiAzMnMxNC4zIDMyIDMyIDMybDQ0OCAwYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMybC0xNi45IDBjMzAuNC0zNCA0OC45LTc4LjggNDguOS0xMjggMC0xMDYtODYtMTkyLTE5Mi0xOTJsLTMyIDAgMC04MGMwLTI2LjUtMjEuNS00OC00OC00OEwxNzYgMHpNMTIwIDM1MmMtMTMuMyAwLTI0IDEwLjctMjQgMjRzMTAuNyAyNCAyNCAyNGwxNzYgMGMxMy4zIDAgMjQtMTAuNyAyNC0yNHMtMTAuNy0yNC0yNC0yNGwtMTc2IDB6Il19LEN4dD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJjbG91ZCIsaWNvbjpbNTc2LDUxMixbOTcyOV0sImYwYzIiLCJNMCAzMzZjMCA3OS41IDY0LjUgMTQ0IDE0NCAxNDRsMzA0IDBjNzAuNyAwIDEyOC01Ny4zIDEyOC0xMjggMC01MS42LTMwLjUtOTYuMS03NC41LTExNi4zIDYuNy0xMy4xIDEwLjUtMjggMTAuNS00My43IDAtNTMtNDMtOTYtOTYtOTYtMTcuNyAwLTM0LjIgNC44LTQ4LjQgMTMuMS0yNC4xLTQ1LjgtNzIuMi03Ny4xLTEyNy42LTc3LjEtNzkuNSAwLTE0NCA2NC41LTE0NCAxNDQgMCA4IC43IDE1LjkgMS45IDIzLjUtNTYuOSAxOS4yLTk3LjkgNzMuMS05Ny45IDEzNi41eiJdfSxUeHQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiYmFzZWJhbGwtYmF0LWJhbGwiLGljb246WzU3Niw1MTIsW10sImY0MzIiLCJNNDY0LjEgNTQ0YTgwIDgwIDAgMSAxIDAtMTYwIDgwIDgwIDAgMSAxIDAgMTYwem04LjQtNTc2YzE1LjEgMCAyOS43IDUuOCA0MC43IDE2LjJsNDcuMiA0NC44YzEyLjYgMTIgMTkuMSAyOSAxNy41IDQ2LjMtMS4yIDEzLjMtNyAyNS44LTE2LjUgMzUuMkwzNjMuMSAzMDljLTcuMyA3LjMtMTUuNyAxMy40LTI1IDE4TDIwNiAzOTNjLTkuMiA0LjYtMTcuNyAxMC43LTI1IDE4bC05MiA5MiAxLjcgMS44YzcuNyA5LjQgNy4xIDIzLjMtMS43IDMyLjFzLTIyLjcgOS4zLTMyLjEgMS43bC0xLjgtMS43LTQ4LTQ4LTEuNy0xLjhjLTcuNy05LjQtNy4xLTIzLjMgMS43LTMyLjFzMjIuNy05LjMgMzIuMS0xLjdsMS44IDEuNyA5Mi05MmM3LjMtNy4zIDEzLjQtMTUuNyAxOC0yNWw2Ni4xLTEzMi4xYzQuNi05LjIgMTAuNy0xNy43IDE4LTI1TDQzMC44LTE0LjdDNDQxLjktMjUuOCA0NTYuOS0zMiA0NzIuNS0zMnoiXX0semxlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImNhci1yZWFyIixpY29uOls1MTIsNTEyLFsiY2FyLWFsdCJdLCJmNWRlIiwiTTE2NS40IDk2bDE4MS4yIDBjMTMuNiAwIDI1LjcgOC42IDMwLjIgMjEuNGwyNi4xIDc0LjYtMjkzLjggMCAyNi4xLTc0LjZjNC41LTEyLjggMTYuNi0yMS40IDMwLjItMjEuNHptLTkwLjYgLjNMMzkuNiAxOTYuOEMxNi40IDIwNi40IDAgMjI5LjMgMCAyNTZsMCA5NmMwIDIzLjcgMTIuOSA0NC40IDMyIDU1LjRMMzIgNDQ4YzAgMTcuNyAxNC4zIDMyIDMyIDMybDMyIDBjMTcuNyAwIDMyLTE0LjMgMzItMzJsMC0zMiAyNTYgMCAwIDMyYzAgMTcuNyAxNC4zIDMyIDMyIDMybDMyIDBjMTcuNyAwIDMyLTE0LjMgMzItMzJsMC00MC42YzE5LjEtMTEuMSAzMi0zMS43IDMyLTU1LjRsMC05NmMwLTI2LjctMTYuNC00OS42LTM5LjYtNTkuMkw0MzcuMiA5Ni4zQzQyMy43IDU3LjggMzg3LjQgMzIgMzQ2LjYgMzJMMTY1LjQgMzJjLTQwLjggMC03Ny4xIDI1LjgtOTAuNiA2NC4zek0yMDggMjg4bDk2IDBjOC44IDAgMTYgNy4yIDE2IDE2bDAgMzJjMCA4LjgtNy4yIDE2LTE2IDE2bC05NiAwYy04LjggMC0xNi03LjItMTYtMTZsMC0zMmMwLTguOCA3LjItMTYgMTYtMTZ6TTQ4IDI4MGMwLTEzLjMgMTAuNy0yNCAyNC0yNGwzMiAwYzEzLjMgMCAyNCAxMC43IDI0IDI0cy0xMC43IDI0LTI0IDI0bC0zMiAwYy0xMy4zIDAtMjQtMTAuNy0yNC0yNHptMzYwLTI0bDMyIDBjMTMuMyAwIDI0IDEwLjcgMjQgMjRzLTEwLjcgMjQtMjQgMjRsLTMyIDBjLTEzLjMgMC0yNC0xMC43LTI0LTI0czEwLjctMjQgMjQtMjR6Il19LF94dD16bGUsQ2xlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InRodW1idGFjay1zbGFzaCIsaWNvbjpbNTc2LDUxMixbInRodW1iLXRhY2stc2xhc2giXSwiZTY4ZiIsIk00MS0yNC45Yy05LjQtOS40LTI0LjYtOS40LTMzLjkgMFMtMi4zLS4zIDcgOS4xbDUyOCA1MjhjOS40IDkuNCAyNC42IDkuNCAzMy45IDBzOS40LTI0LjYgMC0zMy45TDQxNy44IDM1MiA0NDggMzUyYzEwIDAgMTkuNS00LjcgMjUuNS0xMi43czgtMTguNCA1LjItMjguMUw0NzUgMjk3LjhjLTEyLjQtNDMuMy00MS03OC41LTc4LjItOTkuN0wzODYuNSA2NCA0MTYgNjRjMTcuNyAwIDMyLTE0LjMgMzItMzJTNDMzLjcgMCA0MTYgMEwxNjAgMGMtNy40IDAtMTQuMSAyLjUtMTkuNSA2LjZMMTkwLjEgNTYuMyAxODUuMyAxMTkuNCA0MS0yNC45ek0yODIuMiAzNTJMMTQ5LjcgMjE5LjZjLTIyLjcgMjAuNS0zOS44IDQ3LjQtNDguNyA3OC4zbC0zLjggMTMuNGMtMi44IDkuNy0uOCAyMCA1LjIgMjguMVMxMTggMzUyIDEyOCAzNTJsMTU0LjIgMHpNMjU2IDUxMmMwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMybDAtMTEyLTY0IDAgMCAxMTJ6Il19LEx4dD1DbGUsQXh0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InBsdXMtbWludXMiLGljb246WzM4NCw1MTIsW10sImU0M2MiLCJNMjI0IDMyYzAtMTcuNy0xNC4zLTMyLTMyLTMycy0zMiAxNC4zLTMyIDMybDAgMTI4LTEyOCAwYy0xNy43IDAtMzIgMTQuMy0zMiAzMnMxNC4zIDMyIDMyIDMybDEyOCAwIDAgMTI4YzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJsMC0xMjggMTI4IDBjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJsLTEyOCAwIDAtMTI4ek0wIDQ4MGMwIDE3LjcgMTQuMyAzMiAzMiAzMmwzMjAgMGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMkwzMiA0NDhjLTE3LjcgMC0zMiAxNC4zLTMyIDMyeiJdfSxEeHQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiaG91c2UtY2lyY2xlLWNoZWNrIixpY29uOls2NDAsNTEyLFtdLCJlNTA5IiwiTTQ5NiA1NDRhMTQ0IDE0NCAwIDEgMSAwLTI4OCAxNDQgMTQ0IDAgMSAxIDAgMjg4ek0yNjguNiA2LjVjMTIuMi05LjMgMjkuNy04LjcgNDEuMiAybDIxNy42IDIwMmMtMTAuMi0xLjctMjAuNy0yLjYtMzEuMy0yLjYtNzguNiAwLTE0Ni4xIDQ3LjItMTc1LjggMTE0LjgtNS4xLTEuOC0xMC41LTIuOC0xNi4yLTIuOGwtMzIgMGMtMjYuNSAwLTQ4IDIxLjUtNDggNDhsMCA5NiA5MSAwYzYuMSAxNy4zIDE0LjYgMzMuNCAyNS4xIDQ4TDE0NCA1MTJjLTM1LjMgMC02NC0yOC43LTY0LTY0bDAtMTc2LTE2IDBjLTEzLjIgMC0yNS04LjEtMjkuOC0yMC4zcy0xLjYtMjYuMiA4LTM1LjFsMjI0LTIwOCAyLjQtMnpNNTUzLjQgMzM5LjFjLTcuMS01LjItMTcuMS0zLjYtMjIuMyAzLjVsLTUzIDcyLjgtMjYuNy0yNi44Yy02LjItNi4yLTE2LjQtNi4yLTIyLjYgMC02LjIgNi4yLTYuMiAxNi40IDAgMjIuNmw0MCA0MGMzLjMgMy4zIDcuOSA1IDEyLjYgNC43czguOS0yLjggMTEuNy02LjZsNjQtODhjNS4yLTcuMSAzLjYtMTcuMS0zLjUtMjIuM3oiXX0sRXh0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImNhbGVuZGFyLWRheSIsaWNvbjpbNDQ4LDUxMixbXSwiZjc4MyIsIk0xMjggMGMxNy43IDAgMzIgMTQuMyAzMiAzMmwwIDMyIDEyOCAwIDAtMzJjMC0xNy43IDE0LjMtMzIgMzItMzJzMzIgMTQuMyAzMiAzMmwwIDMyIDMyIDBjMzUuMyAwIDY0IDI4LjcgNjQgNjRsMCAyODhjMCAzNS4zLTI4LjcgNjQtNjQgNjRMNjQgNDgwYy0zNS4zIDAtNjQtMjguNy02NC02NEwwIDEyOEMwIDkyLjcgMjguNyA2NCA2NCA2NGwzMiAwIDAtMzJjMC0xNy43IDE0LjMtMzIgMzItMzJ6bTAgMjU2Yy0xNy43IDAtMzIgMTQuMy0zMiAzMmwwIDY0YzAgMTcuNyAxNC4zIDMyIDMyIDMybDY0IDBjMTcuNyAwIDMyLTE0LjMgMzItMzJsMC02NGMwLTE3LjctMTQuMy0zMi0zMi0zMmwtNjQgMHoiXX0sJHh0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImxpYnJhIixpY29uOls1MTIsNTEyLFtdLCJlODRiIiwiTTQ4MCAzODRjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJMMzIgNDQ4Yy0xNy43IDAtMzItMTQuMy0zMi0zMnMxNC4zLTMyIDMyLTMybDQ0OCAwek0yNTYgMzJjOTcuMiAwIDE3NiA3OC44IDE3NiAxNzYgMCAxNi42LTIuNCAzMi43LTYuNyA0OGw1NC43IDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJsLTEwNC4yIDBjLTExLjggMC0yMi43LTYuNS0yOC4yLTE2LjlzLTQuOS0yMy4xIDEuNi0zMi45YzExLjktMTcuOCAxOC44LTM5LjEgMTguOC02Mi4yIDAtNjEuOS01MC4xLTExMi0xMTItMTEyUzE0NCAxNDYuMSAxNDQgMjA4YzAgMjMuMSA2LjkgNDQuNCAxOC44IDYyLjIgNi42IDkuOCA3LjIgMjIuNSAxLjYgMzIuOVMxNDguMSAzMjAgMTM2LjIgMzIwTDMyIDMyMGMtMTcuNyAwLTMyLTE0LjMtMzItMzJzMTQuMy0zMiAzMi0zMmw1NC44IDBjLTQuMy0xNS4zLTYuOC0zMS40LTYuOC00OCAwLTk3LjIgNzguOC0xNzYgMTc2LTE3NnoiXX0sSXh0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImNpcmNsZSIsaWNvbjpbNTEyLDUxMixbMTI4MzA4LDEyODMwOSwxMjg5OTIsMTI4OTkzLDEyODk5NCwxMjg5OTUsMTI4OTk2LDk2NzksOTg5OCw5ODk5LDExMDQ0LDYxNzA4LDYxOTE1XSwiZjExMSIsIk0wIDI1NmEyNTYgMjU2IDAgMSAxIDUxMiAwIDI1NiAyNTYgMCAxIDEgLTUxMiAweiJdfSxQeHQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToibW9iaWxlLXZpYnJhdGUiLGljb246WzU3Niw1MTIsW10sImU4MTYiLCJNMzg0IDBjMzUuMyAwIDY0IDI4LjcgNjQgNjRsMCAzODRjMCAzNS4zLTI4LjcgNjQtNjQgNjRsLTE5MiAwYy0zNS4zIDAtNjQtMjguNy02NC02NGwwLTM4NGMwLTM1LjMgMjguNy02NCA2NC02NEwzODQgMHpNMjQ4IDQxNmMtMTMuMyAwLTI0IDEwLjctMjQgMjRzMTAuNyAyNCAyNCAyNGw4MCAwYzEzLjMgMCAyNC0xMC43IDI0LTI0cy0xMC43LTI0LTI0LTI0bC04MCAwek00OC44IDEzMy40YzkuNC03LjcgMjMuMy03LjEgMzIuMSAxLjcgOS40IDkuNCA5LjQgMjQuNiAwIDMzLjlsLTMxIDMxIDI1LjQgMjUuNCAyLjkgMy4yYzYuMyA3LjcgOS44IDE3LjQgOS44IDI3LjQgMCAxMS41LTQuNiAyMi41LTEyLjcgMzAuNmwtMjUuNCAyNS40IDMxIDMxIDEuNyAxLjhjNy43IDkuNCA3LjEgMjMuMy0xLjcgMzIuMXMtMjIuNyA5LjMtMzIuMSAxLjdMNDcgMzc3IDEyLjcgMzQyLjZDNS42IDMzNS41IDEuMiAzMjYuMiAuMiAzMTYuM0wwIDMxMiAuMiAzMDcuN2MxLTkuOSA1LjQtMTkuMiAxMi41LTI2LjNMMzguMSAyNTYgMTIuNyAyMzAuNkM1LjYgMjIzLjUgMS4yIDIxNC4yIC4yIDIwNC4zTDAgMjAwIC4yIDE5NS43YzEtOS45IDUuNC0xOS4yIDEyLjUtMjYuM0w0NyAxMzUgNDguOCAxMzMuNHpNNDk1IDEzNWM4LjgtOC44IDIyLjctOS4zIDMyLjEtMS43bDEuOCAxLjcgMzQuMyAzNC4zYzcuMSA3LjEgMTEuNSAxNi40IDEyLjUgMjYuM2wuMiA0LjMtLjIgNC4zYy0xIDkuOS01LjQgMTkuMi0xMi41IDI2LjNsLTI1LjQgMjUuNCAyNS40IDI1LjRjNy4xIDcuMSAxMS41IDE2LjQgMTIuNSAyNi4zbC4yIDQuMy0uMiA0LjNjLTEgOS45LTUuNCAxOS4yLTEyLjUgMjYuM2wtMzQuMyAzNC4zLTEuOCAxLjdjLTkuNCA3LjctMjMuMyA3LjEtMzIuMS0xLjdzLTkuMy0yMi43LTEuNy0zMi4xbDEuNy0xLjggMzEtMzEtMjUuNC0yNS40Yy04LjEtOC4xLTEyLjctMTkuMS0xMi43LTMwLjYgMC0xMCAzLjUtMTkuNyA5LjgtMjcuNGwyLjktMy4yIDI1LjQtMjUuNC0zMS0zMWMtOS40LTkuNC05LjQtMjQuNiAwLTMzLjl6Il19LFRsZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJmYWNlLWdyaW4tc3F1aW50IixpY29uOls1MTIsNTEyLFsxMjg1MTgsImdyaW4tc3F1aW50Il0sImY1ODUiLCJNMjU2IDUxMmEyNTYgMjU2IDAgMSAwIDAtNTEyIDI1NiAyNTYgMCAxIDAgMCA1MTJ6TTM4Ni43IDMwOC45YzExLjktMy43IDIzLjkgNi4zIDE5LjYgMTguMS0yMi40IDYxLjMtODEuMyAxMDUuMS0xNTAuMyAxMDUuMVMxMjguMSAzODguMiAxMDUuNyAzMjYuOWMtNC4zLTExLjggNy43LTIxLjggMTkuNi0xOC4xIDM5LjIgMTIuMiA4My43IDE5LjEgMTMwLjcgMTkuMXM5MS41LTYuOSAxMzAuNy0xOS4xek0xMjIuNiAxNDMuMmM0LjUtNi44IDEzLjMtOS4yIDIwLjYtNS41bDc5LjYgNDBjNS40IDIuNyA4LjggOC4yIDguOCAxNC4zcy0zLjQgMTEuNi04LjggMTQuM2wtNzkuNiA0MGMtNy4zIDMuNi0xNi4xIDEuMy0yMC42LTUuNXMtMy4xLTE1LjkgMy4xLTIxLjFMMTU5IDE5MiAxMjUuOCAxNjQuM2MtNi4yLTUuMi03LjYtMTQuMy0zLjEtMjEuMXptMjYzLjYgMjEuMUwzNTMgMTkyIDM4Ni4yIDIxOS43YzYuMiA1LjIgNy42IDE0LjMgMy4xIDIxLjFzLTEzLjMgOS4yLTIwLjYgNS41bC03OS42LTQwYy01LjQtMi43LTguOC04LjItOC44LTE0LjNzMy40LTExLjYgOC44LTE0LjNsNzkuNi00MGM3LjMtMy42IDE2LjEtMS4zIDIwLjYgNS41czMuMSAxNS45LTMuMSAyMS4xeiJdfSxOeHQ9VGxlLEZ4dD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJ1c2Vycy1iZXR3ZWVuLWxpbmVzIixpY29uOls1NzYsNTEyLFtdLCJlNTkxIiwiTTI0IDE2bDUyOCAwYzEzLjMgMCAyNCAxMC43IDI0IDI0cy0xMC43IDI0LTI0IDI0TDI0IDY0QzEwLjcgNjQgMCA1My4zIDAgNDBTMTAuNyAxNiAyNCAxNnptMCA0NDhsNTI4IDBjMTMuMyAwIDI0IDEwLjcgMjQgMjRzLTEwLjcgMjQtMjQgMjRMMjQgNTEyYy0xMy4zIDAtMjQtMTAuNy0yNC0yNHMxMC43LTI0IDI0LTI0ek0zOTIgMTkyYTU2IDU2IDAgMSAxIDExMiAwIDU2IDU2IDAgMSAxIC0xMTIgMHptMjcuMiAxMDAuNGM5LjEtMi45IDE4LjgtNC40IDI4LjgtNC40IDUzIDAgOTYgNDMgOTYgOTZsMCAxMC43YzAgMTEuOC05LjYgMjEuMy0yMS4zIDIxLjNsLTc4LjggMGMyLjctNy41IDQuMS0xNS42IDQuMS0yNGwwLThjMC0zNC4xLTEwLjYtNjUuNy0yOC44LTkxLjZ6bS0yNjIuNCAwQzEzOC42IDMxOC4zIDEyOCAzNDkuOSAxMjggMzg0bDAgOGMwIDguNCAxLjQgMTYuNSA0LjEgMjRsLTc4LjggMEM0MS42IDQxNiAzMiA0MDYuNCAzMiAzOTQuN0wzMiAzODRjMC01MyA0My05NiA5Ni05NiAxMCAwIDE5LjcgMS41IDI4LjggNC40ek03MiAxOTJhNTYgNTYgMCAxIDEgMTEyIDAgNTYgNTYgMCAxIDEgLTExMiAwem0xNTItMTZhNjQgNjQgMCAxIDEgMTI4IDAgNjQgNjQgMCAxIDEgLTEyOCAwek0xNzYgMzg0YzAtNjEuOSA1MC4xLTExMiAxMTItMTEyczExMiA1MC4xIDExMiAxMTJsMCA4YzAgMTMuMy0xMC43IDI0LTI0IDI0bC0xNzYgMGMtMTMuMyAwLTI0LTEwLjctMjQtMjRsMC04eiJdfSxPeHQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiaG91c2UtbWVkaWNhbC1jaXJjbGUteG1hcmsiLGljb246WzY0MCw1MTIsW10sImU1MTMiLCJNMzA5LjggOC42Yy0xMi4zLTExLjQtMzEuMy0xMS40LTQzLjUgMGwtMjI0IDIwOGMtOS42IDktMTIuOCAyMi45LTggMzUuMVM1MC44IDI3MiA2NCAyNzJsMTYgMCAwIDE3NmMwIDM1LjMgMjguNyA2NCA2NCA2NGwxOTYgMGMtMjEuMi0yOS41LTM0LjMtNjUuMy0zNS45LTEwNEwyNzIgNDA4Yy04LjggMC0xNi03LjItMTYtMTZsMC00MC00MCAwYy04LjggMC0xNi03LjItMTYtMTZsMC0zMmMwLTguOCA3LjItMTYgMTYtMTZsNDAgMCAwLTQwYzAtOC44IDcuMi0xNiAxNi0xNmwzMiAwYzguOCAwIDE2IDcuMiAxNiAxNmwwIDQwIDIwIDBjMzQuOS00OC41IDkxLjctODAgMTU2LTgwIDEwLjcgMCAyMS4xIC45IDMxLjMgMi41TDMwOS44IDguNnpNNDk2IDU0NGExNDQgMTQ0IDAgMSAwIDAtMjg4IDE0NCAxNDQgMCAxIDAgMCAyODh6bTIyLjYtMTQ0bDM2LjcgMzYuN2M2LjIgNi4yIDYuMiAxNi40IDAgMjIuNnMtMTYuNCA2LjItMjIuNiAwbC0zNi43LTM2LjctMzYuNyAzNi43Yy02LjIgNi4yLTE2LjQgNi4yLTIyLjYgMHMtNi4yLTE2LjQgMC0yMi42bDM2LjctMzYuNy0zNi43LTM2LjdjLTYuMi02LjItNi4yLTE2LjQgMC0yMi42czE2LjQtNi4yIDIyLjYgMGwzNi43IDM2LjcgMzYuNy0zNi43YzYuMi02LjIgMTYuNC02LjIgMjIuNiAwczYuMiAxNi40IDAgMjIuNkw1MTguNiA0MDB6Il19LF9sZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJ0YWJsZS1saXN0IixpY29uOls0NDgsNTEyLFsidGgtbGlzdCJdLCJmMDBiIiwiTTAgOTZDMCA2MC43IDI4LjcgMzIgNjQgMzJsMzIwIDBjMzUuMyAwIDY0IDI4LjcgNjQgNjRsMCAzMjBjMCAzNS4zLTI4LjcgNjQtNjQgNjRMNjQgNDgwYy0zNS4zIDAtNjQtMjguNy02NC02NEwwIDk2em02NCAwbDAgNjQgNjQgMCAwLTY0LTY0IDB6bTMyMCAwbC0xOTIgMCAwIDY0IDE5MiAwIDAtNjR6TTY0IDIyNGwwIDY0IDY0IDAgMC02NC02NCAwem0zMjAgMGwtMTkyIDAgMCA2NCAxOTIgMCAwLTY0ek02NCAzNTJsMCA2NCA2NCAwIDAtNjQtNjQgMHptMzIwIDBsLTE5MiAwIDAgNjQgMTkyIDAgMC02NHoiXX0sUnh0PV9sZSxCeHQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZmxhc2stdmlhbCIsaWNvbjpbNjQwLDUxMixbXSwiZTRmMyIsIk0xODQuNiA0MTEuNWMtMy4xIDcuMy01LjQgMTQuOS02LjggMjIuNi0xNC41IDguOC0zMS41IDEzLjktNDkuOCAxMy45LTUzIDAtOTYtNDMtOTYtOTZMMzIgNjRDMTQuMyA2NCAwIDQ5LjcgMCAzMlMxNC4zIDAgMzIgMEwyMjQgMGMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMmwwIDI1NS42LTM5LjQgOTEuOXpNOTYgNjRsMCAxMjggNjQgMCAwLTEyOC02NCAwek0zNTIgMEw1MTIgMGMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMmwwIDE1My40IDkxLjMgMjEzYzIuMyA1LjQgMy44IDExLjEgNC40IDE3bC4zIC42LS4zIDBjLjIgMS44IC4zIDMuNiAuMyA1LjQgMCAzMi4zLTI2LjIgNTguNi01OC42IDU4LjZsLTI2Ni45IDBjLTMyLjMgMC01OC42LTI2LjItNTguNi01OC42IDAtMS44IC4xLTMuNiAuMy01LjRsLS4zIDAgLjMtLjZjLjYtNS44IDIuMS0xMS42IDQuNC0xN0wzMjAgMjE3LjQgMzIwIDY0Yy0xNy43IDAtMzItMTQuMy0zMi0zMlMzMDIuMyAwIDMyMCAwbDMyIDB6TTQ1My4yIDI0Mi42Yy0zLjQtOC01LjItMTYuNS01LjItMjUuMmwwLTE1My40LTY0IDAgMCAxNTMuNGMwIDguNy0xLjggMTcuMi01LjIgMjUuMmwtMzMuMiA3Ny40IDE0MC43IDAtMzMuMi03Ny40eiJdfSxMbGU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiY2lyY2xlLWV4Y2xhbWF0aW9uIixpY29uOls1MTIsNTEyLFsiZXhjbGFtYXRpb24tY2lyY2xlIl0sImYwNmEiLCJNMjU2IDUxMmEyNTYgMjU2IDAgMSAxIDAtNTEyIDI1NiAyNTYgMCAxIDEgMCA1MTJ6bTAtMTkyYTMyIDMyIDAgMSAwIDAgNjQgMzIgMzIgMCAxIDAgMC02NHptMC0xOTJjLTE4LjIgMC0zMi43IDE1LjUtMzEuNCAzMy43bDcuNCAxMDRjLjkgMTIuNiAxMS40IDIyLjMgMjMuOSAyMi4zIDEyLjYgMCAyMy05LjcgMjMuOS0yMi4zbDcuNC0xMDRjMS4zLTE4LjItMTMuMS0zMy43LTMxLjQtMzMuN3oiXX0sSHh0PUxsZSxBbGU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToidGF4aSIsaWNvbjpbNTEyLDUxMixbMTI4NjYyLCJjYWIiXSwiZjFiYSIsIk0xOTIgMGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJsMCAzMi04LjkgMGMtNDIgMC03OS4xIDI3LjMtOTEuNiA2Ny40bC0yMyA3My41QzE0LjUgMjE5LjEgMCAyNDMuOSAwIDI3MkwwIDQ0OGMwIDE3LjcgMTQuMyAzMiAzMiAzMmwzMiAwYzE3LjcgMCAzMi0xNC4zIDMyLTMybDAtMzIgMzIwIDAgMCAzMmMwIDE3LjcgMTQuMyAzMiAzMiAzMmwzMiAwYzE3LjcgMCAzMi0xNC4zIDMyLTMybDAtMTc2YzAtMjguMS0xNC41LTUyLjktMzYuNC02Ny4xbC0yMy03My41QzQ0MC4xIDkxLjMgNDAyLjkgNjQgMzYwLjkgNjRsLTguOSAwIDAtMzJjMC0xNy43LTE0LjMtMzItMzItMzJMMTkyIDB6TTE1MS4xIDEyOGwyMDkuOSAwYzE0IDAgMjYuNCA5LjEgMzAuNSAyMi41bDEzIDQxLjUtMjk2LjkgMCAxMy00MS41YzQuMi0xMy40IDE2LjUtMjIuNSAzMC41LTIyLjV6TTk2IDI3MmEzMiAzMiAwIDEgMSAwIDY0IDMyIDMyIDAgMSAxIDAtNjR6bTI4OCAzMmEzMiAzMiAwIDEgMSA2NCAwIDMyIDMyIDAgMSAxIC02NCAweiJdfSxxeHQ9QWxlLERsZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJ0ZXh0LXNsYXNoIixpY29uOls1NzYsNTEyLFsicmVtb3ZlLWZvcm1hdCJdLCJmODdkIiwiTTQxLTI0LjljLTkuNC05LjQtMjQuNi05LjQtMzMuOSAwUy0yLjMtLjMgNyA5LjFsNTI4IDUyOGM5LjQgOS40IDI0LjYgOS40IDMzLjkgMHM5LjQtMjQuNiAwLTMzLjlMMzIyLjcgMjU2LjkgMzY4LjIgOTYgNDcxIDk2IDQ2NSAxMjAuMmMtNC4zIDE3LjEgNi4xIDM0LjUgMjMuMyAzOC44czM0LjUtNi4xIDM4LjgtMjMuM2wxMS00NC4xQzU0NS42IDYxLjMgNTIyLjcgMzIgNDkxLjUgMzJsLTMxOSAwYy0xOS44IDAtMzcuMyAxMi4xLTQ0LjUgMzAuMWwtODctODd6TTE4MC40IDExNC41bDQuNi0xOC41IDExNi43IDAtMzAuOCAxMDktOTAuNS05MC41ek0yNDEgMzEwLjhMMjExLjMgNDE2IDE2MCA0MTZjLTE3LjcgMC0zMiAxNC4zLTMyIDMyczE0LjMgMzIgMzIgMzJsMTYwIDBjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJsLTQyLjIgMCAxNS4xLTUzLjMtNTEuOS01MS45eiJdfSxqeHQ9RGxlLFZ4dD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJwZW9wbGUtcHVsbGluZyIsaWNvbjpbNTc2LDUxMixbXSwiZTUzNSIsIk04MCA5NmE0OCA0OCAwIDEgMCAwLTk2IDQ4IDQ4IDAgMSAwIDAgOTZ6TTY0IDEyOGMtMzUuMyAwLTY0IDI4LjctNjQgNjRMMCAzMjBjMCAxNy43IDE0LjMgMzIgMzIgMzIgOS44IDAgMTguNS00LjQgMjQuNC0xMS4yTDgwLjQgNDg1LjNjMi45IDE3LjQgMTkuNCAyOS4yIDM2LjggMjYuM3MyOS4yLTE5LjQgMjYuMy0zNi44bC0yMC41LTEyMi43IDE1LjcgMCAzMCAxMzQuOWMzLjggMTcuMyAyMC45IDI4LjEgMzguMiAyNC4zczI4LjEtMjAuOSAyNC4zLTM4LjJsLTU3LjMtMjU4IDExNi4zIDUzLjhjLjUgLjMgMS4xIC41IDEuNiAuNyA4LjYgMy42IDE4IDMuMSAyNS45LS43IDMuNC0xLjYgNi42LTMuOSA5LjMtNi43IDMuMS0zLjIgNS41LTcgNy4xLTExLjQgLjEtLjMgLjItLjcgLjMtMWwyLjUtNy41YzUuNy0xNy4xIDE4LjMtMzAuOSAzNC43LTM4LjJsOC0zLjVjMS0uNCAxLjktLjggMi45LTEuMmwtMTYuOSA2My41Yy01LjYgMjEuMS0uMSA0My42IDE0LjcgNTkuN2w3MC43IDc3LjEgMjIgODguMWM0LjMgMTcuMSAyMS43IDI3LjYgMzguOCAyMy4zczI3LjYtMjEuNyAyMy4zLTM4LjhsLTIzLTkyLjFjLTEuOS03LjgtNS44LTE0LjktMTEuMi0yMC44bC00OS41LTU0IDE5LjMtNjUuNSA5LjYgMjNjNC40IDEwLjYgMTIuNSAxOS4zIDIyLjggMjQuNWwyNi43IDEzLjNjMTUuOCA3LjkgMzUgMS41IDQyLjktMTQuM3MxLjUtMzUtMTQuMy00Mi45bC0yMS40LTEwLjctMTUuMy0zNi44Yy0xNy4xLTQxLjEtNTcuMy02Ny45LTEwMS45LTY3LjktMjIuOCAwLTQ1LjMgNC44LTY2LjEgMTRsLTggMy41Yy0yNC40IDEwLjktNDQuNiAyOS01OC4xIDUxLjZMMTU3LjMgMTM2LjlDMTQ0LjcgMTMxIDEzMC45IDEyOCAxMTcgMTI4bC01MyAwek00NjQgOTZhNDggNDggMCAxIDAgMC05NiA0OCA0OCAwIDEgMCAwIDk2ek0zNDkuNyAzMzUuNmwtMjUgNjIuNC01OS40IDU5LjRjLTEyLjUgMTIuNS0xMi41IDMyLjggMCA0NS4zczMyLjggMTIuNSA0NS4zIDBMMzcyLjMgNDQxYzQuNi00LjYgOC4yLTEwLjEgMTAuNi0xNi4xbDE0LjUtMzYuMi00MC43LTQ0LjRjLTIuNS0yLjctNC44LTUuNi03LTguNnoiXX0sVXh0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImJhY2t3YXJkIixpY29uOls1NzYsNTEyLFs5MTk0XSwiZjA0YSIsIk0yMDQuMyA0My4xQzIxNS45IDMyIDIzMyAyOC45IDI0Ny43IDM1LjJTMjcyIDU2IDI3MiA3MmwwIDEzNi4zIDE3Mi4zLTE2NS4xQzQ1NS45IDMyIDQ3MyAyOC45IDQ4Ny43IDM1LjJTNTEyIDU2IDUxMiA3MmwwIDM2OGMwIDE2LTkuNiAzMC41LTI0LjMgMzYuOHMtMzEuOCAzLjItNDMuNC03LjlMMjcyIDMwMy43IDI3MiA0NDBjMCAxNi05LjYgMzAuNS0yNC4zIDM2LjhzLTMxLjggMy4yLTQzLjQtNy45bC0xOTItMTg0QzQuNSAyNzcuMyAwIDI2Ni45IDAgMjU2czQuNS0yMS4zIDEyLjMtMjguOWwxOTItMTg0eiJdfSxFbGU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiY2FyLWJ1cnN0IixpY29uOls2NDAsNTEyLFsiY2FyLWNyYXNoIl0sImY1ZTEiLCJNMjMyIDE2LjFsMC00OGMwLTEzLjMtMTAuNy0yNC0yNC0yNHMtMjQgMTAuNy0yNCAyNGwwIDQ4YzAgMTMuMyAxMC43IDI0IDI0IDI0czI0LTEwLjcgMjQtMjR6TTMyIDE2OC4xbDQ4IDBjMTMuMyAwIDI0LTEwLjcgMjQtMjRzLTEwLjctMjQtMjQtMjRsLTQ4IDBjLTEzLjMgMC0yNCAxMC43LTI0IDI0czEwLjcgMjQgMjQgMjR6TTI4MS41IDcwLjZjOS40IDkuNCAyNC42IDkuNCAzMy45IDBsMzMuOS0zMy45YzkuNC05LjQgOS40LTI0LjYgMC0zMy45cy0yNC42LTkuNC0zMy45IDBMMjgxLjUgMzYuNmMtOS40IDkuNC05LjQgMjQuNiAwIDMzLjl6bS0xODEgMjE1bDMzLjktMzMuOWM5LjQtOS40IDkuNC0yNC42IDAtMzMuOXMtMjQuNi05LjQtMzMuOSAwTDY2LjYgMjUxLjZjLTkuNCA5LjQtOS40IDI0LjYgMCAzMy45czI0LjYgOS40IDMzLjkgMHpNNjYuNiAyLjdjLTkuNCA5LjQtOS40IDI0LjYgMCAzMy45bDMzLjkgMzMuOWM5LjQgOS40IDI0LjYgOS40IDMzLjkgMHM5LjQtMjQuNiAwLTMzLjlMMTAwLjUgMi43QzkxLjEtNi43IDc2LTYuNyA2Ni42IDIuN3pNMzUyLjkgMTc1LjRMNTA1IDIxNi4yYzYuNCAxLjcgMTEuMSA3LjMgMTEuOCAxMy45bDcuMiA3NC0yMzEuNS02MiA0My4yLTYwLjVjMy45LTUuNCAxMC43LTcuOSAxNy4yLTYuMnpNMjIzLjYgMjI4LjVsLTIuMSAyLjljLTIxLjcgNS41LTM5LjkgMjIuMy00Ni4xIDQ1LjUtNC4xIDE1LjUtMTIuNCA0Ni40LTI0LjggOTIuN2wtOC4zIDMwLjljLTQuNiAxNy4xIDUuNiAzNC42IDIyLjYgMzkuMmwxNS41IDQuMWMxNy4xIDQuNiAzNC42LTUuNiAzOS4yLTIyLjZsOC4zLTMwLjkgMjc4LjIgNzQuNS04LjMgMzAuOWMtNC42IDE3LjEgNS42IDM0LjYgMjIuNiAzOS4ybDE1LjUgNC4xYzE3LjEgNC42IDM0LjYtNS42IDM5LjItMjIuNiA0LjEtMTUuNSAxMi40LTQ2LjQgMjQuOC05Mi43bDguMy0zMC45YzYuMi0yMy4yLTEuMS00Ni44LTE3LjItNjIuNWwtLjMtMy42LTEwLTEwM2MtMy4yLTMzLjItMjYuNy02MC45LTU4LjktNjkuNUwzNjkuNSAxMTMuNmMtMzIuMi04LjYtNjYuNCAzLjYtODUuOCAzMC44bC02MC4yIDg0LjJ6bTQ4LjcgNTcuOGEzMiAzMiAwIDEgMSAtMTYuNiA2MS44IDMyIDMyIDAgMSAxIDE2LjYtNjEuOHptMjA4LjEgODguOWEzMiAzMiAwIDEgMSA2MS44IDE2LjYgMzIgMzIgMCAxIDEgLTYxLjgtMTYuNnoiXX0sV3h0PUVsZSwkbGU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToibGluayIsaWNvbjpbNTc2LDUxMixbMTI4Mjc5LCJjaGFpbiJdLCJmMGMxIiwiTTQxOS41IDk2Yy0xNi42IDAtMzIuNyA0LjUtNDYuOCAxMi43LTE1LjgtMTYtMzQuMi0yOS40LTU0LjUtMzkuNSAyOC4yLTI0IDY0LjEtMzcuMiAxMDEuMy0zNy4yIDg2LjQgMCAxNTYuNSA3MCAxNTYuNSAxNTYuNSAwIDQxLjUtMTYuNSA4MS4zLTQ1LjggMTEwLjZsLTcxLjEgNzEuMWMtMjkuMyAyOS4zLTY5LjEgNDUuOC0xMTAuNiA0NS44LTg2LjQgMC0xNTYuNS03MC0xNTYuNS0xNTYuNSAwLTEuNSAwLTMgLjEtNC41IC41LTE3LjcgMTUuMi0zMS42IDMyLjktMzEuMXMzMS42IDE1LjIgMzEuMSAzMi45YzAgLjkgMCAxLjggMCAyLjYgMCA1MS4xIDQxLjQgOTIuNSA5Mi41IDkyLjUgMjQuNSAwIDQ4LTkuNyA2NS40LTI3LjFsNzEuMS03MS4xYzE3LjMtMTcuMyAyNy4xLTQwLjkgMjcuMS02NS40IDAtNTEuMS00MS40LTkyLjUtOTIuNS05Mi41ek0yNzUuMiAxNzMuM2MtMS45LS44LTMuOC0xLjktNS41LTMuMS0xMi42LTYuNS0yNy0xMC4yLTQyLjEtMTAuMi0yNC41IDAtNDggOS43LTY1LjQgMjcuMUw5MS4xIDI1OC4yYy0xNy4zIDE3LjMtMjcuMSA0MC45LTI3LjEgNjUuNCAwIDUxLjEgNDEuNCA5Mi41IDkyLjUgOTIuNSAxNi41IDAgMzIuNi00LjQgNDYuNy0xMi42IDE1LjggMTYgMzQuMiAyOS40IDU0LjYgMzkuNS0yOC4yIDIzLjktNjQgMzcuMi0xMDEuMyAzNy4yLTg2LjQgMC0xNTYuNS03MC0xNTYuNS0xNTYuNSAwLTQxLjUgMTYuNS04MS4zIDQ1LjgtMTEwLjZsNzEuMS03MS4xYzI5LjMtMjkuMyA2OS4xLTQ1LjggMTEwLjYtNDUuOCA4Ni42IDAgMTU2LjUgNzAuNiAxNTYuNSAxNTYuOSAwIDEuMyAwIDIuNiAwIDMuOS0uNCAxNy43LTE1LjEgMzEuNi0zMi44IDMxLjJzLTMxLjYtMTUuMS0zMS4yLTMyLjhjMC0uOCAwLTEuNSAwLTIuMyAwLTMzLjctMTgtNjMuMy00NC44LTc5LjZ6Il19LEd4dD0kbGUsSWxlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImJhY2t3YXJkLXN0ZXAiLGljb246WzM4NCw1MTIsWyJzdGVwLWJhY2t3YXJkIl0sImYwNDgiLCJNMzYzIDM2LjhjLTEyLjktNy0yOC43LTYuMy00MSAxLjhMNjQgMjA4LjEgNjQgNjRjMC0xNy43LTE0LjMtMzItMzItMzJTMCA0Ni4zIDAgNjRMMCA0NDhjMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMmwwLTE0NC4xIDI1OCAxNjkuNmMxMi4zIDguMSAyOCA4LjggNDEgMS44czIxLTIwLjUgMjEtMzUuMmwwLTM2OGMwLTE0LjctOC4xLTI4LjItMjEtMzUuMnoiXX0sWXh0PUlsZSxaeHQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToieCIsaWNvbjpbMzg0LDUxMixbMTIwXSwiNTgiLCJNMzc2LjYgODQuNWMxMS4zLTEzLjYgOS41LTMzLjgtNC4xLTQ1LjFzLTMzLjgtOS41LTQ1LjEgNC4xTDE5MiAyMDYgNTYuNiA0My41QzQ1LjMgMjkuOSAyNS4xIDI4LjEgMTEuNSAzOS40Uy0zLjkgNzAuOSA3LjQgODQuNUwxNTAuMyAyNTYgNy40IDQyNy41Yy0xMS4zIDEzLjYtOS41IDMzLjggNC4xIDQ1LjFzMzMuOCA5LjUgNDUuMS00LjFMMTkyIDMwNiAzMjcuNCA0NjguNWMxMS4zIDEzLjYgMzEuNSAxNS40IDQ1LjEgNC4xczE1LjQtMzEuNSA0LjEtNDUuMUwyMzMuNyAyNTYgMzc2LjYgODQuNXoiXX0sUGxlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImNpcmNsZS11c2VyIixpY29uOls1MTIsNTEyLFs2MjE0MiwidXNlci1jaXJjbGUiXSwiZjJiZCIsIk0zOTkgMzg0LjJDMzc2LjkgMzQ1LjggMzM1LjQgMzIwIDI4OCAzMjBsLTY0IDBjLTQ3LjQgMC04OC45IDI1LjgtMTExIDY0LjIgMzUuMiAzOS4yIDg2LjIgNjMuOCAxNDMgNjMuOHMxMDcuOC0yNC43IDE0My02My44ek0wIDI1NmEyNTYgMjU2IDAgMSAxIDUxMiAwIDI1NiAyNTYgMCAxIDEgLTUxMiAwem0yNTYgMTZhNzIgNzIgMCAxIDAgMC0xNDQgNzIgNzIgMCAxIDAgMCAxNDR6Il19LFh4dD1QbGUsTmxlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InJlY3RhbmdsZS1saXN0IixpY29uOls1MTIsNTEyLFsibGlzdC1hbHQiXSwiZjAyMiIsIk02NCA2NEMyOC43IDY0IDAgOTIuNyAwIDEyOEwwIDM4NGMwIDM1LjMgMjguNyA2NCA2NCA2NGwzODQgMGMzNS4zIDAgNjQtMjguNyA2NC02NGwwLTI1NmMwLTM1LjMtMjguNy02NC02NC02NEw2NCA2NHptOTYgMjU2YTMyIDMyIDAgMSAxIC02NCAwIDMyIDMyIDAgMSAxIDY0IDB6bS0zMi05NmEzMiAzMiAwIDEgMSAwLTY0IDMyIDMyIDAgMSAxIDAgNjR6bTEyMC01NmwxNDQgMGMxMy4zIDAgMjQgMTAuNyAyNCAyNHMtMTAuNyAyNC0yNCAyNGwtMTQ0IDBjLTEzLjMgMC0yNC0xMC43LTI0LTI0czEwLjctMjQgMjQtMjR6bTAgMTI4bDE0NCAwYzEzLjMgMCAyNCAxMC43IDI0IDI0cy0xMC43IDI0LTI0IDI0bC0xNDQgMGMtMTMuMyAwLTI0LTEwLjctMjQtMjRzMTAuNy0yNCAyNC0yNHoiXX0sUXh0PU5sZSxGbGU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiaGFuZCIsaWNvbjpbNTEyLDUxMixbMTI5MzA2LDk5OTUsImhhbmQtcGFwZXIiXSwiZjI1NiIsIk0yODggMzJjMC0xNy43LTE0LjMtMzItMzItMzJzLTMyIDE0LjMtMzIgMzJsMCAyMDhjMCA4LjgtNy4yIDE2LTE2IDE2cy0xNi03LjItMTYtMTZsMC0xNzZjMC0xNy43LTE0LjMtMzItMzItMzJzLTMyIDE0LjMtMzIgMzJsMCAyNzJjMCAxLjUgMCAzLjEgLjEgNC42TDY3LjYgMjgzYy0xNi0xNS4yLTQxLjMtMTQuNi01Ni42IDEuNFMtMy42IDMyNS43IDEyLjQgMzQxTDEyNC44IDQ0OGM0My4xIDQxLjEgMTAwLjQgNjQgMTYwIDY0bDE5LjIgMGM5Ny4yIDAgMTc2LTc4LjggMTc2LTE3NmwwLTIwOGMwLTE3LjctMTQuMy0zMi0zMi0zMnMtMzIgMTQuMy0zMiAzMmwwIDExMmMwIDguOC03LjIgMTYtMTYgMTZzLTE2LTcuMi0xNi0xNmwwLTE3NmMwLTE3LjctMTQuMy0zMi0zMi0zMnMtMzIgMTQuMy0zMiAzMmwwIDE3NmMwIDguOC03LjIgMTYtMTYgMTZzLTE2LTcuMi0xNi0xNmwwLTIwOHoiXX0sSnh0PUZsZSxLeHQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiY2FuY2VyIixpY29uOls1MTIsNTEyLFtdLCJlODQ3IiwiTTQwOCAxNTJjNTcuNCAwIDEwNCA0Ni42IDEwNCAxMDQgMCAxNDEuNC0xMTQuNiAyNTYtMjU2IDI1Ni01NC4zIDAtMTA0LjgtMTctMTQ2LjMtNDUuOS0xNC41LTEwLjEtMTgtMzAuMS03LjktNDQuNnMzMC4xLTE4IDQ0LjYtNy45YzMxLjEgMjEuNyA2OC45IDM0LjQgMTA5LjcgMzQuNCA2Ny45IDAgMTI3LjUtMzUuMyAxNjEuNy04OC41LTMuMiAuMy02LjQgLjUtOS43IC41LTU3LjQgMC0xMDQtNDYuNi0xMDQtMTA0czQ2LjYtMTA0IDEwNC0xMDR6TTI1NiAwYzU0LjMgMCAxMDQuOCAxNyAxNDYuMyA0NS45IDE0LjUgMTAuMSAxOCAzMC4xIDcuOSA0NC42cy0zMC4xIDE4LTQ0LjYgNy45Yy0zMS4xLTIxLjctNjguOS0zNC40LTEwOS43LTM0LjQtNjcuOSAwLTEyNy41IDM1LjItMTYxLjcgODguNCAzLjItLjMgNi40LS40IDkuNy0uNCA1Ny40IDAgMTA0IDQ2LjYgMTA0IDEwNFMxNjEuNCAzNjAgMTA0IDM2MCAwIDMxMy40IDAgMjU2QzAgMjU0LjEgMCAyNTIuMiAuMSAyNTAuNCAzLjEgMTExLjYgMTE2LjUgMCAyNTYgMHpNMTA0IDIxNmE0MCA0MCAwIDEgMCAwIDgwIDQwIDQwIDAgMSAwIDAtODB6bTMwNCAwYTQwIDQwIDAgMSAwIDAgODAgNDAgNDAgMCAxIDAgMC04MHoiXX0sT2xlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InZhbi1zaHV0dGxlIixpY29uOls1NzYsNTEyLFsxMjg2NTYsInNodXR0bGUtdmFuIl0sImY1YjYiLCJNNjQgNjRDMjguNyA2NCAwIDkyLjcgMCAxMjhMMCAzMzZjMCAzNS4zIDI4LjcgNjQgNjQgNjRsLjQgMGM0IDQ0LjkgNDEuNyA4MCA4Ny42IDgwczgzLjYtMzUuMSA4Ny42LTgwbDEwNC43IDBjNCA0NC45IDQxLjcgODAgODcuNiA4MCA0Ni4xIDAgODMuOS0zNS40IDg3LjctODAuNSAzMS43LTMuOCA1Ni4zLTMwLjggNTYuMy02My41bDAtMTAxLjNjMC0xMy44LTQuNS0yNy4zLTEyLjgtMzguNGwtODAtMTA2LjdDNDcxLjEgNzMuNSA0NTIuMSA2NCA0MzIgNjRMNjQgNjR6TTUwNCAyMjRsLTEyMCAwIDAtOTYgNDggMCA3MiA5NnpNNjQgMjI0bDAtOTYgOTYgMCAwIDk2LTk2IDB6bTE2MCAwbDAtOTYgOTYgMCAwIDk2LTk2IDB6TTM5MiAzOTJhNDAgNDAgMCAxIDEgODAgMCA0MCA0MCAwIDEgMSAtODAgMHpNMTUyIDM1MmE0MCA0MCAwIDEgMSAwIDgwIDQwIDQwIDAgMSAxIDAtODB6Il19LGV5dD1PbGUsdHl0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InN0YWlycyIsaWNvbjpbNTc2LDUxMixbXSwiZTI4OSIsIk0zODQgNjRjMC0xNy43IDE0LjMtMzIgMzItMzJsMTI4IDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJsLTk2IDAgMCA5NmMwIDE3LjctMTQuMyAzMi0zMiAzMmwtOTYgMCAwIDk2YzAgMTcuNy0xNC4zIDMyLTMyIDMybC05NiAwIDAgOTZjMCAxNy43LTE0LjMgMzItMzIgMzJMMzIgNDgwYy0xNy43IDAtMzItMTQuMy0zMi0zMnMxNC4zLTMyIDMyLTMybDk2IDAgMC05NmMwLTE3LjcgMTQuMy0zMiAzMi0zMmw5NiAwIDAtOTZjMC0xNy43IDE0LjMtMzIgMzItMzJsOTYgMCAwLTk2eiJdfSxyeXQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiaG9yc2UtaGVhZCIsaWNvbjpbNTEyLDUxMixbXSwiZjdhYiIsIk0wIDQ2NEwwIDMxNi45QzAgMjA4LjUgNjguMyAxMTEuOCAxNzAuNSA3NS42TDM0MC4yIDE1LjVjMjEuNC03LjYgNDMuOCA4LjMgNDMuOCAzMC45IDAgMTEtNS41IDIxLjItMTQuNiAyNy4zTDMzNiA5NmM0OC4xIDAgOTEuMiAyOS44IDEwOC4xIDc0LjlsNDguNiAxMjkuNWMxMS44IDMxLjQgNC4xIDY2LjgtMTkuNiA5MC41LTE2IDE2LTM3LjggMjUuMS02MC41IDI1LjFsLTMuNCAwYy0yNi4xIDAtNTAuOS0xMS42LTY3LjYtMzEuN2wtMzIuMy0zOC43Yy0xMS43IDQuMS0yNC4yIDYuNC0zNy4zIDYuNGwtLjEgMGMtNi4zIDAtMTIuNS0uNS0xOC42LTEuNS0zLjYtLjYtNy4yLTEuNC0xMC43LTIuM2wwIDBjLTI4LjktNy44LTUzLjEtMjYuOC02Ny44LTUyLjItNC40LTcuNy0xNC4yLTEwLjMtMjEuOS01LjhzLTEwLjMgMTQuMi01LjggMjEuOWMyNCA0MS41IDY4LjMgNzAgMTE5LjMgNzEuOWw0Ny4yIDcwLjhjNCA2LjEgNi4yIDEzLjIgNi4yIDIwLjQgMCAyMC4zLTE2LjUgMzYuOC0zNi44IDM2LjhMNDggNTEyYy0yNi41IDAtNDgtMjEuNS00OC00OHpNMzI4IDIyNGEyNCAyNCAwIDEgMCAwLTQ4IDI0IDI0IDAgMSAwIDAgNDh6Il19LGl5dD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJ2YXVsdCIsaWNvbjpbNTEyLDUxMixbXSwiZTJjNSIsIk02NCAzMkMyOC43IDMyIDAgNjAuNyAwIDk2TDAgNDE2YzAgMzUuMyAyOC43IDY0IDY0IDY0IDAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJsMjU2IDBjMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMmMzNS4zIDAgNjQtMjguNyA2NC02NGwwLTMyMGMwLTM1LjMtMjguNy02NC02NC02NEw2NCAzMnpNMjU2IDI1NmE2NCA2NCAwIDEgMCAtMTI4IDAgNjQgNjQgMCAxIDAgMTI4IDB6TTY0IDI1NmExMjggMTI4IDAgMSAxIDI1NiAwIDEyOCAxMjggMCAxIDEgLTI1NiAwem0zODQtNDhjMCAxNy44LTkuNyAzMy4zLTI0IDQxLjZsMCA3OC40YzAgMTMuMy0xMC43IDI0LTI0IDI0cy0yNC0xMC43LTI0LTI0bDAtNzguNGMtMTQuMy04LjMtMjQtMjMuOC0yNC00MS42IDAtMjYuNSAyMS41LTQ4IDQ4LTQ4czQ4IDIxLjUgNDggNDh6Il19LGF5dD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJjbG9zZWQtY2FwdGlvbmluZy1zbGFzaCIsaWNvbjpbNTc2LDUxMixbXSwiZTEzNSIsIk03LTI0LjljOS40LTkuNCAyNC42LTkuNCAzMy45IDBMMTI5LjggNjQgNDgwIDY0YzM1LjMgMCA2NCAyOC43IDY0IDY0bDAgMjU2YzAgMjUuNS0xNC45IDQ3LjQtMzYuNCA1Ny44TDU2OSA1MDMuMWM5LjQgOS40IDkuNCAyNC42IDAgMzMuOXMtMjQuNiA5LjQtMzMuOSAwTDcgOS4xQy0yLjMtLjMtMi4zLTE1LjUgNy0yNC45em0zNDUgMzExbDAtNzAuMmMwLTQuNCAzLjYtOCA4LThsMzIgMGM0LjQgMCA4IDMuNiA4IDggMCAxMy4zIDEwLjcgMjQgMjQgMjRzMjQtMTAuNyAyNC0yNGMwLTMwLjktMjUuMS01Ni01Ni01NmwtMzIgMGMtMzAuOSAwLTU2IDI1LjEtNTYgNTZsMCAyMi4yIDQ4IDQ4em02MS41IDYxLjVjMjAuMi04LjQgMzQuNS0yOC40IDM0LjUtNTEuNyAwLTEzLjMtMTAuNy0yNC0yNC0yNHMtMjQgMTAuNy0yNCAyNGMwIDQuNC0zLjYgOC04IDhsLTIyLjIgMCA0My43IDQzLjd6TTEzMC4zIDIwMC4xYy0xLjUgNS0yLjMgMTAuNC0yLjMgMTUuOWwwIDgwYzAgMzAuOSAyNS4xIDU2IDU2IDU2bDMyIDBjMTguMSAwIDM0LjEtOC41IDQ0LjQtMjEuOEwzNzguMiA0NDggOTYgNDQ4Yy0zNS4zIDAtNjQtMjguNy02NC02NGwwLTI1NmMwLTcuOCAxLjQtMTUuMyA0LTIyLjJsOTQuMyA5NC4zem05My44IDkzLjhjLS4xIC43LS4xIDEuNC0uMSAyLjEgMCA0LjQtMy42IDgtOCA4bC0zMiAwYy00LjQgMC04LTMuNi04LThsMC01MC4yIDQ4LjEgNDguMXoiXX0sbnl0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImRydW0tc3RlZWxwYW4iLGljb246WzU3Niw1MTIsW10sImY1NmEiLCJNMjg4IDMyYzE1OS4xIDAgMjg4IDQ4IDI4OCAxMjhsMCAxOTJjMCA4MC0xMjguOSAxMjgtMjg4IDEyOFMwIDQzMiAwIDM1MkwwIDE2MEMwIDgwIDEyOC45IDMyIDI4OCAzMnpNNTI4IDE2MGMwLTkuOS04LTI5LjktNTUtNDkuOC0xOC42LTcuOS00MC45LTE0LjQtNjYtMTkuNGwtMjcuOCA0My42Yy03LjMgMTEuNS0xMS4yIDI0LjgtMTEuMiAzOC40IDAgMTcuNSA2LjQgMzQuNCAxOC4xIDQ3LjVsOS44IDExYzI5LjgtNS4yIDU1LjktMTIuNSA3Ny4yLTIxLjUgNDcuMS0xOS45IDU1LTM5LjkgNTUtNDkuOHpNMzQ5LjIgMjM3LjNjLTgtMjYuMi0zMi40LTQ1LjMtNjEuMi00NS4zcy01My4zIDE5LjEtNjEuMiA0NS4zYzE5LjQgMS43IDM5LjkgMi43IDYxLjIgMi43czQxLjgtLjkgNjEuMi0yLjd6TTE2OSA5MC44Yy0yNS4yIDUtNDcuNCAxMS42LTY2IDE5LjQtNDcuMSAxOS45LTU1IDM5LjktNTUgNDkuOHM4IDI5LjkgNTUgNDkuOGMyMS4zIDkgNDcuNCAxNi4zIDc3LjIgMjEuNWw5LjgtMTFjMTEuNi0xMy4xIDE4LjEtMzAgMTguMS00Ny41IDAtMTMuNi0zLjktMjYuOS0xMS4yLTM4LjRMMTY5IDkwLjh6bTU2LjMtOGMtLjkgNC4zLTEuNCA4LjctMS40IDEzLjIgMCAzNS4zIDI4LjcgNjQgNjQgNjRzNjQtMjguNyA2NC02NGMwLTQuNS0uNS05LTEuNC0xMy4yLTE5LjgtMS44LTQwLjgtMi44LTYyLjYtMi44cy00Mi44IDEtNjIuNiAyLjh6Il19LG95dD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJ0aHVtYnMtdXAiLGljb246WzUxMiw1MTIsWzEyODA3Nyw2MTU3NV0sImYxNjQiLCJNODAgMTYwYzE3LjcgMCAzMiAxNC4zIDMyIDMybDAgMjU2YzAgMTcuNy0xNC4zIDMyLTMyIDMybC00OCAwYy0xNy43IDAtMzItMTQuMy0zMi0zMkwwIDE5MmMwLTE3LjcgMTQuMy0zMiAzMi0zMmw0OCAwek0yNzAuNiAxNkMyOTcuOSAxNiAzMjAgMzguMSAzMjAgNjUuNGwwIDQuMmMwIDYuOC0xLjMgMTMuNi0zLjggMTkuOUwyODggMTYwIDQ0OCAxNjBjMjYuNSAwIDQ4IDIxLjUgNDggNDggMCAxOS43LTExLjkgMzYuNi0yOC45IDQ0IDE3IDcuNCAyOC45IDI0LjMgMjguOSA0NCAwIDIzLjQtMTYuOCA0Mi45LTM5IDQ3LjEgNC40IDcuMyA3IDE1LjggNyAyNC45IDAgMjIuMi0xNSA0MC44LTM1LjQgNDYuMyAyLjIgNS41IDMuNCAxMS41IDMuNCAxNy43IDAgMjYuNS0yMS41IDQ4LTQ4IDQ4bC04Ny45IDBjLTM2LjMgMC03MS42LTEyLjQtOTkuOS0zNS4xTDE4NCA0MzUuMmMtMTUuMi0xMi4xLTI0LTMwLjUtMjQtNTBsMC0xODYuNmMwLTE0LjkgMy41LTI5LjYgMTAuMS00Mi45TDIyNi4zIDQzLjNDMjM0LjcgMjYuNiAyNTEuOCAxNiAyNzAuNiAxNnoiXX0sc3l0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InN0YW1wIixpY29uOls1MTIsNTEyLFtdLCJmNWJmIiwiTTMxMiAyMDEuOGMwLTE3LjQgOS4yLTMzLjIgMTkuOS00NyAxMi42LTE2LjIgMjAuMS0zNi42IDIwLjEtNTguOCAwLTUzLTQzLTk2LTk2LTk2cy05NiA0My05NiA5NmMwIDIyLjEgNy41IDQyLjUgMjAuMSA1OC44IDEwLjcgMTMuOCAxOS45IDI5LjYgMTkuOSA0NyAwIDI5LjktMjQuMyA1NC4yLTU0LjIgNTQuMkwxMTIgMjU2Yy02MS45IDAtMTEyIDUwLjEtMTEyIDExMiAwIDI2LjUgMjEuNSA0OCA0OCA0OGw0MTYgMGMyNi41IDAgNDgtMjEuNSA0OC00OCAwLTYxLjktNTAuMS0xMTItMTEyLTExMmwtMzMuOCAwYy0yOS45IDAtNTQuMi0yNC4zLTU0LjItNTQuMnpNNTYgNDY0Yy0xMy4zIDAtMjQgMTAuNy0yNCAyNHMxMC43IDI0IDI0IDI0bDQwMCAwYzEzLjMgMCAyNC0xMC43IDI0LTI0cy0xMC43LTI0LTI0LTI0TDU2IDQ2NHoiXX0sbHl0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6Im1lbm9yYWgiLGljb246WzY0MCw1MTIsW10sImY2NzYiLCJNMjAuOCA3LjRDMjIuOCAyLjkgMjcuMSAwIDMyIDBzOS4yIDIuOSAxMS4yIDcuNEw2MS4zIDQ5LjdjMS44IDQuMSAyLjcgOC42IDIuNyAxMy4xTDY0IDY0YzAgMTcuNy0xNC4zIDMyLTMyIDMyUzAgODEuNyAwIDY0bDAtMS4yYzAtNC41IC45LTguOSAyLjctMTMuMUwyMC44IDcuNHptOTYgMEMxMTguOCAyLjkgMTIzLjEgMCAxMjggMHM5LjIgMi45IDExLjIgNy40bDE4LjIgNDIuNGMxLjggNC4xIDIuNyA4LjYgMi43IDEzLjFsMCAxLjJjMCAxNy43LTE0LjMgMzItMzIgMzJTOTYgODEuNyA5NiA2NGwwLTEuMmMwLTQuNSAuOS04LjkgMi43LTEzLjFMMTE2LjggNy40em03Ny44IDQyLjRMMjEyLjggNy40QzIxNC44IDIuOSAyMTkuMSAwIDIyNCAwczkuMiAyLjkgMTEuMiA3LjRsMTguMiA0Mi40YzEuOCA0LjEgMi43IDguNiAyLjcgMTMuMWwwIDEuMmMwIDE3LjctMTQuMyAzMi0zMiAzMnMtMzItMTQuMy0zMi0zMmwwLTEuMmMwLTQuNSAuOS04LjkgMi43LTEzLjF6TTMwOC44IDcuNEMzMTAuOCAyLjkgMzE1LjEgMCAzMjAgMHM5LjIgMi45IDExLjIgNy40bDE4LjIgNDIuNGMxLjggNC4xIDIuNyA4LjYgMi43IDEzLjFsMCAxLjJjMCAxNy43LTE0LjMgMzItMzIgMzJzLTMyLTE0LjMtMzItMzJsMC0xLjJjMC00LjUgLjktOC45IDIuNy0xMy4xTDMwOC44IDcuNHptNzcuOCA0Mi40TDQwNC44IDcuNEM0MDYuOCAyLjkgNDExLjEgMCA0MTYgMHM5LjIgMi45IDExLjIgNy40bDE4LjIgNDIuNGMxLjggNC4xIDIuNyA4LjYgMi43IDEzLjFsMCAxLjJjMCAxNy43LTE0LjMgMzItMzIgMzJzLTMyLTE0LjMtMzItMzJsMC0xLjJjMC00LjUgLjktOC45IDIuNy0xMy4xek01MDAuOCA3LjRDNTAyLjggMi45IDUwNy4xIDAgNTEyIDBzOS4yIDIuOSAxMS4yIDcuNGwxOC4yIDQyLjRjMS44IDQuMSAyLjcgOC42IDIuNyAxMy4xbDAgMS4yYzAgMTcuNy0xNC4zIDMyLTMyIDMycy0zMi0xNC4zLTMyLTMybDAtMS4yYzAtNC41IC45LTguOSAyLjctMTMuMUw1MDAuOCA3LjR6bTc3LjggNDIuNEw1OTYuOCA3LjRDNTk4LjggMi45IDYwMy4xIDAgNjA4IDBzOS4yIDIuOSAxMS4yIDcuNGwxOC4yIDQyLjRjMS44IDQuMSAyLjcgOC42IDIuNyAxMy4xbDAgMS4yYzAgMTcuNy0xNC4zIDMyLTMyIDMycy0zMi0xNC4zLTMyLTMybDAtMS4yYzAtNC41IC45LTguOSAyLjctMTMuMXpNMzIgMTI4YzE3LjcgMCAzMiAxNC4zIDMyIDMybDAgMTI4YzAgMTcuNyAxNC4zIDMyIDMyIDMybDE5MiAwIDAtMTYwYzAtMTcuNyAxNC4zLTMyIDMyLTMyczMyIDE0LjMgMzIgMzJsMCAxNjAgMTkyIDBjMTcuNyAwIDMyLTE0LjMgMzItMzJsMC0xMjhjMC0xNy43IDE0LjMtMzIgMzItMzJzMzIgMTQuMyAzMiAzMmwwIDEyOGMwIDUzLTQzIDk2LTk2IDk2bC0xOTIgMCAwIDY0IDEyOCAwYzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMybC0zMjAgMGMtMTcuNyAwLTMyLTE0LjMtMzItMzJzMTQuMy0zMiAzMi0zMmwxMjggMCAwLTY0LTE5MiAwYy01MyAwLTk2LTQzLTk2LTk2TDAgMTYwYzAtMTcuNyAxNC4zLTMyIDMyLTMyem05NiAwYzE3LjcgMCAzMiAxNC4zIDMyIDMybDAgMTI4LTY0IDAgMC0xMjhjMC0xNy43IDE0LjMtMzIgMzItMzJ6bTk2IDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJsMCAxMjgtNjQgMCAwLTEyOGMwLTE3LjcgMTQuMy0zMiAzMi0zMnptMTkyIDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJsMCAxMjgtNjQgMCAwLTEyOGMwLTE3LjcgMTQuMy0zMiAzMi0zMnptOTYgMGMxNy43IDAgMzIgMTQuMyAzMiAzMmwwIDEyOC02NCAwIDAtMTI4YzAtMTcuNyAxNC4zLTMyIDMyLTMyeiJdfSxjeXQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiY2hpbGRyZW4iLGljb246WzY0MCw1MTIsW10sImU0ZTEiLCJNMTYwLjUgMGE2NCA2NCAwIDEgMSAwIDEyOCA2NCA2NCAwIDEgMSAwLTEyOHptLTcyIDQ4MGwwLTgwLTE3LjggMGMtMTAuOSAwLTE4LjYtMTAuNy0xNS4yLTIxLjFMODYuNyAyODUuNSA1OCAzMjMuM2MtMTAuNyAxNC4xLTMwLjggMTYuOC00NC44IDYuMlMtMy43IDI5OC43IDcgMjg0LjdMNjUuOSAyMDdjMjIuNC0yOS42IDU3LjUtNDcgOTQuNi00N3M3Mi4yIDE3LjQgOTQuNiA0N0wzMTQgMjg0LjdjMTAuNyAxNC4xIDcuOSAzNC4yLTYuMiA0NC44cy0zNC4yIDcuOS00NC44LTYuMmwtMjguNy0zNy44IDMxLjEgOTMuNGMzLjUgMTAuNC00LjMgMjEuMS0xNS4yIDIxLjFsLTE3LjggMCAwIDgwYzAgMTcuNy0xNC4zIDMyLTMyIDMycy0zMi0xNC4zLTMyLTMybDAtODAtMTYgMCAwIDgwYzAgMTcuNy0xNC4zIDMyLTMyIDMycy0zMi0xNC4zLTMyLTMyek00ODAuNSAwYTY0IDY0IDAgMSAxIDAgMTI4IDY0IDY0IDAgMSAxIDAtMTI4em0tOCAzODRsMCA5NmMwIDE3LjctMTQuMyAzMi0zMiAzMnMtMzItMTQuMy0zMi0zMmwwLTE3OS41LTEyLjkgMjAuNWMtOS40IDE1LTI5LjIgMTkuNC00NC4xIDEwcy0xOS40LTI5LjItMTAtNDQuMWw1MS43LTgyLjFjMTcuNi0yNy45IDQ4LjMtNDQuOSA4MS4yLTQ0LjlsMTIuMyAwYzMzIDAgNjMuNyAxNi45IDgxLjIgNDQuOUw2MTkuNiAyODdjOS40IDE1IDQuOSAzNC43LTEwIDQ0LjFzLTM0LjcgNC45LTQ0LjEtMTBsLTEyLjktMjAuNSAwIDE3OS41YzAgMTcuNy0xNC4zIDMyLTMyIDMycy0zMi0xNC4zLTMyLTMybDAtOTYtMTYgMHoiXX0sUmxlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImNoYXJ0LWxpbmUiLGljb246WzUxMiw1MTIsWyJsaW5lLWNoYXJ0Il0sImYyMDEiLCJNNjQgNjRjMC0xNy43LTE0LjMtMzItMzItMzJTMCA0Ni4zIDAgNjRMMCA0MDBjMCA0NC4yIDM1LjggODAgODAgODBsNDAwIDBjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJMODAgNDE2Yy04LjggMC0xNi03LjItMTYtMTZMNjQgNjR6bTQwNi42IDg2LjZjMTIuNS0xMi41IDEyLjUtMzIuOCAwLTQ1LjNzLTMyLjgtMTIuNS00NS4zIDBMMzIwIDIxMC43IDI2Mi42IDE1My40Yy0xMi41LTEyLjUtMzIuOC0xMi41LTQ1LjMgMGwtOTYgOTZjLTEyLjUgMTIuNS0xMi41IDMyLjggMCA0NS4zczMyLjggMTIuNSA0NS4zIDBsNzMuNC03My40IDU3LjQgNTcuNGMxMi41IDEyLjUgMzIuOCAxMi41IDQ1LjMgMGwxMjgtMTI4eiJdfSxkeXQ9UmxlLEJsZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJzcXVhcmUtZW52ZWxvcGUiLGljb246WzQ0OCw1MTIsWyJlbnZlbG9wZS1zcXVhcmUiXSwiZjE5OSIsIk02NCAzMkMyOC43IDMyIDAgNjAuNyAwIDk2TDAgNDE2YzAgMzUuMyAyOC43IDY0IDY0IDY0bDMyMCAwYzM1LjMgMCA2NC0yOC43IDY0LTY0bDAtMzIwYzAtMzUuMy0yOC43LTY0LTY0LTY0TDY0IDMyek0yMDkuMSAyNjcuOUwxMDguNCAyMDcuNGMtNy43LTQuNi0xMi40LTEyLjktMTIuNC0yMS45IDAtMTQuMSAxMS40LTI1LjUgMjUuNS0yNS41bDIwNC45IDBjMTQuMSAwIDI1LjUgMTEuNCAyNS41IDI1LjUgMCA5LTQuNyAxNy4zLTEyLjQgMjEuOUwyMzguOSAyNjcuOWMtNC41IDIuNy05LjYgNC4xLTE0LjkgNC4xcy0xMC40LTEuNC0xNC45LTQuMXpNMzUyIDIzNy4zbDAgODIuN2MwIDE3LjctMTQuMyAzMi0zMiAzMmwtMTkyIDBjLTE3LjcgMC0zMi0xNC4zLTMyLTMybDAtODIuNyA5Ni43IDU4QzIwMi4xIDMwMSAyMTMgMzA0IDIyNCAzMDRzMjEuOS0zIDMxLjMtOC43bDk2LjctNTh6Il19LHV5dD1CbGUsSGxlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImJhbi1zbW9raW5nIixpY29uOls1MTIsNTEyLFsxMjg2ODUsInNtb2tpbmctYmFuIl0sImY1NGQiLCJNOTkuNSAxNDQuOGw3OS4yIDc5LjItNTAuNyAwYy0xNy43IDAtMzIgMTQuMy0zMiAzMmwwIDMyYzAgMTcuNyAxNC4zIDMyIDMyIDMybDE0Ni43IDAgOTIuNSA5Mi41Yy0zMS40IDIyLjQtNjkuOCAzNS41LTExMS4yIDM1LjUtMTA2IDAtMTkyLTg2LTE5Mi0xOTIgMC00MS41IDEzLjEtNzkuOSAzNS41LTExMS4yek0zMzMuMyAyODhsLTMyLTMyIDgyLjcgMCAwIDMyLTUwLjcgMHptMzIgMzJsMTguNyAwYzE3LjcgMCAzMi0xNC4zIDMyLTMybDAtMzJjMC0xNy43LTE0LjMtMzItMzItMzJMMjY5LjMgMjI0IDE0NC44IDk5LjVjMzEuNC0yMi40IDY5LjgtMzUuNSAxMTEuMi0zNS41IDEwNiAwIDE5MiA4NiAxOTIgMTkyIDAgNDEuNS0xMy4xIDc5LjktMzUuNSAxMTEuMkwzNjUuMyAzMjB6TTI1NiA1MTJhMjU2IDI1NiAwIDEgMCAwLTUxMiAyNTYgMjU2IDAgMSAwIDAgNTEyek0yNzIgOTZjLTguOCAwLTE2IDcuMi0xNiAxNiAwIDI2LjUgMjEuNSA0OCA0OCA0OGwzMiAwYzguOCAwIDE2IDcuMiAxNiAxNnM3LjIgMTYgMTYgMTYgMTYtNy4yIDE2LTE2YzAtMjYuNS0yMS41LTQ4LTQ4LTQ4bC0zMiAwYy04LjggMC0xNi03LjItMTYtMTZzLTcuMi0xNi0xNi0xNnoiXX0scHl0PUhsZSxoeXQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToidHJ1Y2stZnJvbnQiLGljb246WzQ0OCw1MTIsW10sImUyYjciLCJNMCAxMTJDMCA2Ny44IDM1LjggMzIgODAgMzJsMjg4IDBjNDQuMiAwIDgwIDM1LjggODAgODBsMCAyNTZjMCAyNi4yLTEyLjYgNDkuNC0zMiA2NGwwIDQ4YzAgMTcuNy0xNC4zIDMyLTMyIDMybC0zMiAwYy0xNy43IDAtMzItMTQuMy0zMi0zMmwwLTMyLTE5MiAwIDAgMzJjMCAxNy43LTE0LjMgMzItMzIgMzJsLTMyIDBjLTE3LjcgMC0zMi0xNC4zLTMyLTMybDAtNDhDMTIuNiA0MTcuNCAwIDM5NC4yIDAgMzY4TDAgMTEyem05NiA4MGwwIDY0IDI1NiAwIDAtNjRjMC0xNy43LTE0LjMtMzItMzItMzJsLTE5MiAwYy0xNy43IDAtMzIgMTQuMy0zMiAzMnptMzIgMTYwYTMyIDMyIDAgMSAwIC02NCAwIDMyIDMyIDAgMSAwIDY0IDB6bTIyNCAzMmEzMiAzMiAwIDEgMCAwLTY0IDMyIDMyIDAgMSAwIDAgNjR6Il19LGFFPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImJ1aWxkaW5nIixpY29uOlszODQsNTEyLFsxMjc5NzAsNjE2ODddLCJmMWFkIiwiTTY0IDBDMjguNyAwIDAgMjguNyAwIDY0TDAgNDQ4YzAgMzUuMyAyOC43IDY0IDY0IDY0bDI1NiAwYzM1LjMgMCA2NC0yOC43IDY0LTY0bDAtMzg0YzAtMzUuMy0yOC43LTY0LTY0LTY0TDY0IDB6TTE3NiAzNTJsMzIgMGMxNy43IDAgMzIgMTQuMyAzMiAzMmwwIDgwLTk2IDAgMC04MGMwLTE3LjcgMTQuMy0zMiAzMi0zMnpNOTYgMTEyYzAtOC44IDcuMi0xNiAxNi0xNmwzMiAwYzguOCAwIDE2IDcuMiAxNiAxNmwwIDMyYzAgOC44LTcuMiAxNi0xNiAxNmwtMzIgMGMtOC44IDAtMTYtNy4yLTE2LTE2bDAtMzJ6TTI0MCA5NmwzMiAwYzguOCAwIDE2IDcuMiAxNiAxNmwwIDMyYzAgOC44LTcuMiAxNi0xNiAxNmwtMzIgMGMtOC44IDAtMTYtNy4yLTE2LTE2bDAtMzJjMC04LjggNy4yLTE2IDE2LTE2ek05NiAyNDBjMC04LjggNy4yLTE2IDE2LTE2bDMyIDBjOC44IDAgMTYgNy4yIDE2IDE2bDAgMzJjMCA4LjgtNy4yIDE2LTE2IDE2bC0zMiAwYy04LjggMC0xNi03LjItMTYtMTZsMC0zMnptMTQ0LTE2bDMyIDBjOC44IDAgMTYgNy4yIDE2IDE2bDAgMzJjMCA4LjgtNy4yIDE2LTE2IDE2bC0zMiAwYy04LjggMC0xNi03LjItMTYtMTZsMC0zMmMwLTguOCA3LjItMTYgMTYtMTZ6Il19LGZ5dD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJidWxsc2V5ZSIsaWNvbjpbNTEyLDUxMixbXSwiZjE0MCIsIk00NDggMjU2YTE5MiAxOTIgMCAxIDAgLTM4NCAwIDE5MiAxOTIgMCAxIDAgMzg0IDB6TTAgMjU2YTI1NiAyNTYgMCAxIDEgNTEyIDAgMjU2IDI1NiAwIDEgMSAtNTEyIDB6bTI1NiA4MGE4MCA4MCAwIDEgMCAwLTE2MCA4MCA4MCAwIDEgMCAwIDE2MHptMC0yMjRhMTQ0IDE0NCAwIDEgMSAwIDI4OCAxNDQgMTQ0IDAgMSAxIDAtMjg4ek0yMjQgMjU2YTMyIDMyIDAgMSAxIDY0IDAgMzIgMzIgMCAxIDEgLTY0IDB6Il19LHFsZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJhcnJvdy1sZWZ0LWxvbmciLGljb246WzU3Niw1MTIsWyJsb25nLWFycm93LWxlZnQiXSwiZjE3NyIsIk05LjQgMjMzLjRjLTEyLjUgMTIuNS0xMi41IDMyLjggMCA0NS4zbDEyOCAxMjhjMTIuNSAxMi41IDMyLjggMTIuNSA0NS4zIDBzMTIuNS0zMi44IDAtNDUuM0wxMDkuMyAyODggNTQ0IDI4OGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMmwtNDM0LjcgMCA3My40LTczLjRjMTIuNS0xMi41IDEyLjUtMzIuOCAwLTQ1LjNzLTMyLjgtMTIuNS00NS4zIDBsLTEyOCAxMjh6Il19LG15dD1xbGUsZ3l0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImNoZXNzLXJvb2siLGljb246WzM4NCw1MTIsWzk4MjBdLCJmNDQ3IiwiTTAgMzJMMCAxMzMuNWMwIDE3IDYuNyAzMy4zIDE4LjcgNDUuM0w2NCAyMjQgNjQgMzg0IDcuOCA0NTQuM0MyLjcgNDYwLjYgMCA0NjguNCAwIDQ3Ni41IDAgNDk2LjEgMTUuOSA1MTIgMzUuNSA1MTJsMzEyLjkgMGMxOS42IDAgMzUuNS0xNS45IDM1LjUtMzUuNSAwLTguMS0yLjctMTUuOS03LjgtMjIuMmwtNTYuMi03MC4zIDAtMTYwIDQ1LjMtNDUuM2MxMi0xMiAxOC43LTI4LjMgMTguNy00NS4zTDM4NCAzMmMwLTE3LjctMTQuMy0zMi0zMi0zMkwzMjAgMGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJsMCAzMi00OCAwIDAtMzJjMC0xNy43LTE0LjMtMzItMzItMzJMMTc2IDBjLTE3LjcgMC0zMiAxNC4zLTMyIDMybDAgMzItNDggMCAwLTMyQzk2IDE0LjMgODEuNyAwIDY0IDBMMzIgMEMxNC4zIDAgMCAxNC4zIDAgMzJ6Il19LGJ5dD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJibGVuZGVyLXBob25lIixpY29uOls1NzYsNTEyLFtdLCJmNmI2IiwiTTE1MS40IDEzLjJjMTAuMiA1LjggMTQuNSAxOC40IDEwIDI5LjNMMTM4LjIgOTguOGMtMy45IDkuNi0xMy43IDE1LjQtMjQgMTQuNGwtMjAuMi0yQzc4LjcgMTUyLjkgNzggMTk4LjkgOTEuOSAyNDEuMWwyMi40LTIuMmMxMC4zLTEgMjAgNC44IDI0IDE0LjRsMjMuMiA1Ni4zYzQuNSAxMC45IC4yIDIzLjQtMTAgMjkuM2wtMi45IDEuNmMtMzMuNiAxOS4yLTgxLjcgMTYuMi0xMDYuMi0yMS42LTU2LjMtODYuNi01Ni4zLTE5OS4xIDAtMjg1LjcgMjQuNi0zNy43IDcyLjctNDAuNyAxMDYuMi0yMS42bDIuOSAxLjZ6TTIyNCAzMzZMMTkzLjcgMTcuNUMxOTIuOCA4LjEgMjAwLjIgMCAyMDkuNiAwbDMyNCAwYzIxLjMgMCAzNi42IDIwLjMgMzAuOCA0MC44TDU1My4xIDgwIDQ0MCA4MGMtMTMuMyAwLTI0IDEwLjctMjQgMjRzMTAuNyAyNCAyNCAyNGw5OS40IDAtMTguMyA2NC04MS4xIDBjLTEzLjMgMC0yNCAxMC43LTI0IDI0czEwLjcgMjQgMjQgMjRsNjcuNCAwLTI3LjQgOTYtMjU2IDB6bTggNDhsMjQwIDBjMjIuMSAwIDQwIDE3LjkgNDAgNDBsMCA0OGMwIDIyLjEtMTcuOSA0MC00MCA0MGwtMjQwIDBjLTIyLjEgMC00MC0xNy45LTQwLTQwbDAtNDhjMC0yMi4xIDE3LjktNDAgNDAtNDB6bTEyMCA4OGEyNCAyNCAwIDEgMCAwLTQ4IDI0IDI0IDAgMSAwIDAgNDh6Il19LGpsZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJhcnJvdy10dXJuLXVwIixpY29uOlszODQsNTEyLFsibGV2ZWwtdXAiXSwiZjE0OCIsIk0zMiA0NDhjLTE3LjcgMC0zMiAxNC4zLTMyIDMyczE0LjMgMzIgMzIgMzJsOTYgMGM1MyAwIDk2LTQzIDk2LTk2bDAtMzA2LjcgNzMuNCA3My40YzEyLjUgMTIuNSAzMi44IDEyLjUgNDUuMyAwczEyLjUtMzIuOCAwLTQ1LjNsLTEyOC0xMjhjLTEyLjUtMTIuNS0zMi44LTEyLjUtNDUuMyAwbC0xMjggMTI4Yy0xMi41IDEyLjUtMTIuNSAzMi44IDAgNDUuM3MzMi44IDEyLjUgNDUuMyAwTDE2MCAxMDkuMyAxNjAgNDE2YzAgMTcuNy0xNC4zIDMyLTMyIDMybC05NiAweiJdfSx2eXQ9amxlLHh5dD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJiaWN5Y2xlIixpY29uOls2NDAsNTEyLFsxMjg2OTBdLCJmMjA2IiwiTTMzMS43IDQzLjNDMzM2IDM2LjMgMzQzLjcgMzIgMzUyIDMybDEwNCAwYzEzLjMgMCAyNCAxMC43IDI0IDI0cy0xMC43IDI0LTI0IDI0bC02NS42IDAgNzIuMiAxNDguNGMxMC43LTIuOSAyMS45LTQuNCAzMy40LTQuNCA3MC43IDAgMTI4IDU3LjMgMTI4IDEyOHMtNTcuMyAxMjgtMTI4IDEyOC0xMjgtNTcuMy0xMjgtMTI4YzAtNDIgMjAuMi03OS4yIDUxLjQtMTAyLjZsLTIwLjQtNDEuOS03My41IDE0N2MtMi4zIDQuOC02LjMgOC44LTExLjQgMTEuMi0uNiAuMy0xLjIgLjUtMS44IC43LTIuOSAxLjEtNS45IDEuNi04LjkgMS41TDI3MSAzNjhjLTcuOSA2My4xLTYxLjcgMTEyLTEyNyAxMTItNzAuNyAwLTEyOC01Ny4zLTEyOC0xMjhTNzMuMyAyMjQgMTQ0IDIyNGMxMC44IDAgMjEuMiAxLjMgMzEuMiAzLjhsMjguNS01Ni45LTExLjUtMjYuOS00MC4yIDBjLTEzLjMgMC0yNC0xMC43LTI0LTI0czEwLjctMjQgMjQtMjRsNTYgMGM5LjYgMCAxOC4zIDUuNyAyMi4xIDE0LjVsMTQuMyAzMy41IDEyMy43IDAtMzcuNy03Ny41Yy0zLjYtNy40LTMuMi0xNi4yIDEuMi0yMy4yek0yMjguNSAyMjguN2wtNDUuNiA5MS4zIDg0LjggMC0zOS4xLTkxLjN6TTMwNS43IDI4N2w0Ny41LTk1LTg4LjIgMCA0MC43IDk1em0xNjguNyA3NS41bC0yOS43LTYxYy0xMi44IDEzLTIwLjcgMzAuOC0yMC43IDUwLjUgMCAzOS44IDMyLjIgNzIgNzIgNzJzNzItMzIuMiA3Mi03Mi0zMi4yLTcyLTcyLTcyYy0yLjcgMC01LjUgLjItOC4xIC41bDI5LjcgNjFjNS44IDExLjkgLjggMjYuMy0xMS4xIDMyLjFzLTI2LjMgLjgtMzIuMS0xMS4xek0xNDkuMiAzNjhjLTIwLjIgMC0zMy40LTIxLjMtMjQuMy0zOS40bDI0LjItNDguNWMtMS43LS4xLTMuNC0uMi01LjEtLjItMzkuOCAwLTcyIDMyLjItNzIgNzJzMzIuMiA3MiA3MiA3MmMzNC4zIDAgNjIuOS0yMy45IDcwLjItNTZsLTY1IDB6Il19LFZsZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJjaXJjbGUtYXJyb3ctZG93biIsaWNvbjpbNTEyLDUxMixbImFycm93LWNpcmNsZS1kb3duIl0sImYwYWIiLCJNMjU2IDUxMmEyNTYgMjU2IDAgMSAwIDAtNTEyIDI1NiAyNTYgMCAxIDAgMCA1MTJ6TTIzOSAzNzdsLTgwLTgwYy05LjQtOS40LTkuNC0yNC42IDAtMzMuOXMyNC42LTkuNCAzMy45IDBsMzkgMzkgMC0xNTAuMWMwLTEzLjMgMTAuNy0yNCAyNC0yNHMyNCAxMC43IDI0IDI0bDAgMTUwLjEgMzktMzljOS40LTkuNCAyNC42LTkuNCAzMy45IDBzOS40IDI0LjYgMCAzMy45bC04MCA4MGMtOS40IDkuNC0yNC42IDkuNC0zMy45IDB6Il19LHl5dD1WbGUsWGc9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZ2VhciIsaWNvbjpbNTEyLDUxMixbOTg4MSwiY29nIl0sImYwMTMiLCJNMTk1LjEgOS41QzE5OC4xLTUuMyAyMTEuMi0xNiAyMjYuNC0xNmw1OS44IDBjMTUuMiAwIDI4LjMgMTAuNyAzMS4zIDI1LjVMMzMyIDc5LjVjMTQuMSA2IDI3LjMgMTMuNyAzOS4zIDIyLjhsNjcuOC0yMi41YzE0LjQtNC44IDMwLjIgMS4yIDM3LjggMTQuNGwyOS45IDUxLjhjNy42IDEzLjIgNC45IDI5LjgtNi41IDM5LjlMNDQ3IDIzMy4zYy45IDcuNCAxLjMgMTUgMS4zIDIyLjdzLS41IDE1LjMtMS4zIDIyLjdsNTMuNCA0Ny41YzExLjQgMTAuMSAxNCAyNi44IDYuNSAzOS45bC0yOS45IDUxLjhjLTcuNiAxMy4xLTIzLjQgMTkuMi0zNy44IDE0LjRsLTY3LjgtMjIuNWMtMTIuMSA5LjEtMjUuMyAxNi43LTM5LjMgMjIuOGwtMTQuNCA2OS45Yy0zLjEgMTQuOS0xNi4yIDI1LjUtMzEuMyAyNS41bC01OS44IDBjLTE1LjIgMC0yOC4zLTEwLjctMzEuMy0yNS41bC0xNC40LTY5LjljLTE0LjEtNi0yNy4yLTEzLjctMzkuMy0yMi44TDczLjUgNDMyLjNjLTE0LjQgNC44LTMwLjItMS4yLTM3LjgtMTQuNEw1LjggMzY2LjFjLTcuNi0xMy4yLTQuOS0yOS44IDYuNS0zOS45bDUzLjQtNDcuNWMtLjktNy40LTEuMy0xNS0xLjMtMjIuN3MuNS0xNS4zIDEuMy0yMi43TDEyLjMgMTg1LjhjLTExLjQtMTAuMS0xNC0yNi44LTYuNS0zOS45TDM1LjcgOTQuMWM3LjYtMTMuMiAyMy40LTE5LjIgMzcuOC0xNC40bDY3LjggMjIuNWMxMi4xLTkuMSAyNS4zLTE2LjcgMzkuMy0yMi44TDE5NS4xIDkuNXpNMjU2LjMgMzM2YTgwIDgwIDAgMSAwIC0uNi0xNjAgODAgODAgMCAxIDAgLjYgMTYweiJdfSx3eXQ9WGcsTXl0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6Im1hcnMtYW5kLXZlbnVzLWJ1cnN0IixpY29uOls2NDAsNTEyLFtdLCJlNTIzIiwiTTQ2NC0zMmMwIDE3LjcgMTQuMyAzMiAzMiAzMmwzNC43IDAtNjMgNjNjLTI4LjQtMTkuNS02Mi43LTMxLTk5LjgtMzEtOTcuMiAwLTE3NiA3OC44LTE3NiAxNzYgMCA4Ni4zIDYyLjEgMTU4LjEgMTQ0IDE3My4xbDAgMzQuOS0zMiAwYy0xNy43IDAtMzIgMTQuMy0zMiAzMnMxNC4zIDMyIDMyIDMybDMyIDAgMCAzMmMwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMybDAtMzIgMzIgMGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMmwtMzIgMCAwLTM0LjljODEuOS0xNSAxNDQtODYuOCAxNDQtMTczLjEgMC0zNy0xMS40LTcxLjQtMzEtOTkuOGw2My02MyAwIDM0LjdjMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMmwwLTExMmMwLTE3LjctMTQuMy0zMi0zMi0zMkw0OTYtNjRjLTE3LjcgMC0zMiAxNC4zLTMyIDMyek0zNjggOTZhMTEyIDExMiAwIDEgMSAwIDIyNCAxMTIgMTEyIDAgMSAxIDAtMjI0ek0xOTAuOS0yMS45QzE4OC40LTI4IDE4Mi42LTMyIDE3Ni0zMnMtMTIuNCA0LTE0LjkgMTAuMWwtMjkuNCA3NC03Ni4yLTIzLjFjLTYuMy0xLjktMTMuMSAuMi0xNy4yIDUuM1MzMy44IDQ2LjUgMzcgNTIuMmwzOS41IDY5LjEtNjUuNiA0NS4xYy01LjQgMy43LTggMTAuMy02LjUgMTYuN3M2LjcgMTEuMiAxMy4xIDEyLjJsNzguNyAxMi4yLTUuNiA3OS40Yy0uNSA2LjUgMy4xIDEyLjcgOSAxNS41czEyLjkgMS44IDE3LjgtMi42TDE1Mi4xIDI2OGMtNS4zLTE5LjEtOC4xLTM5LjItOC4xLTYwIDAtNjUuNCAyOC0xMjQuMiA3Mi42LTE2NS4xTDE5MC45LTIxLjl6Il19LGt5dD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJvdHRlciIsaWNvbjpbNjQwLDUxMixbMTI5NDQ2XSwiZjcwMCIsIk0xODEuNSAxOTcuMWwxMi45IDYuNGM1LjkgMyAxMi40IDQuNSAxOS4xIDQuNSAyMy41IDAgNDIuNi0xOS4xIDQyLjYtNDIuNmwwLTIxLjRjMC0zNS4zLTI4LjctNjQtNjQtNjRsLTY0IDBjLTM1LjMgMC02NCAyOC43LTY0IDY0bDAgMjEuNGMwIDIzLjUgMTkuMSA0Mi42IDQyLjYgNDIuNiA2LjYgMCAxMy4xLTEuNSAxOS4xLTQuNSA5LjMtNC43IDE2LjQtOC4yIDIxLjItMTAuNkwxMzUuMSAxODVjLTQuNS0zLTcuMS04LTcuMS0xMy4zbDAtMy43YzAtMTMuMyAxMC43LTI0IDI0LTI0bDE2IDBjMTMuMyAwIDI0IDEwLjcgMjQgMjRsMCAzLjdjMCA1LjMtMi43IDEwLjMtNy4xIDEzLjNsLTExLjggNy45IDguNCA0LjJ6bS04LjYgNDkuNGwtMTIuOS02LjQtMTIuOSA2LjRjLTEyLjYgNi4zLTI2LjUgOS42LTQwLjUgOS42LTMuNiAwLTcuMS0uMi0xMC42LS42bDAgLjZjMCAzNS4zIDI4LjcgNjQgNjQgNjRsNjQgMGMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMmwxNjAgMCAwLTY0YzAtMjMuNyAxMi45LTQ0LjQgMzItNTUuNCA5LjQtNS40IDIwLjMtOC42IDMyLTguNmwwLTE2YzAtMjYuNSAyMS41LTQ4IDQ4LTQ4IDguOCAwIDE2IDcuMiAxNiAxNmwwIDk2YzAgOC44IDcuMiAxNiAxNiAxNnMxNi03LjIgMTYtMTZsMC05OS43YzAtNDguMi0zMC44LTkxLTc2LjYtMTA2LjNsLTguNS0yLjhjLTgtMi43LTEyLjYtMTEuMS0xMC40LTE5LjNzMTAuMy0xMy4yIDE4LjYtMTEuNmwxOS45IDRDNTc2IDg2LjEgNjQwIDE2NC4yIDY0MCAyNTQuOWwwIDEuMSAwIDBjMCAxMjMuNy0xMDAuMyAyMjQtMjI0IDIyNGwtMTYwLjYgMEMxMzIgNDgwIDMyIDM4MCAzMiAyNTYuNmwwLTM5LjhjLTEwLjEtMTQuNi0xNi0zMi4zLTE2LTUxLjRsMC0yMS40IDAtMS40QzYuNyAxMzkuMyAwIDEzMC41IDAgMTIwIDAgMTA2LjcgMTAuNyA5NiAyNCA5NmwyLjggMEM0NC44IDU4LjIgODMuMyAzMiAxMjggMzJsNjQgMGM0NC43IDAgODMuMiAyNi4yIDEwMS4yIDY0bDIuOCAwYzEzLjMgMCAyNCAxMC43IDI0IDI0IDAgMTAuNS02LjcgMTkuMy0xNiAyMi42bDAgMS40IDAgMjEuNGMwIDEuNCAwIDIuOC0uMSA0LjMgMTItNi4yIDI1LjctOS42IDQwLjEtOS42bDggMGMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMmwtOCAwYy0xMy4zIDAtMjQgMTAuNy0yNCAyNGwwIDggNTYuNCAwYy0xNS4yIDE3LTI0LjQgMzkuNC0yNC40IDY0bC0zMiAwYy00Mi4zIDAtNzguMi0yNy40LTkxLTY1LjMtNS4xIC45LTEwLjMgMS4zLTE1LjYgMS4zLTE0LjEgMC0yNy45LTMuMy00MC41LTkuNnpNOTYgMTI4YTE2IDE2IDAgMSAxIDAgMzIgMTYgMTYgMCAxIDEgMC0zMnptMTEyIDE2YTE2IDE2IDAgMSAxIDMyIDAgMTYgMTYgMCAxIDEgLTMyIDB6Il19LFVsZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJjaXJjbGUtY2hldnJvbi1sZWZ0IixpY29uOls1MTIsNTEyLFsiY2hldnJvbi1jaXJjbGUtbGVmdCJdLCJmMTM3IiwiTTUxMiAyNTZhMjU2IDI1NiAwIDEgMCAtNTEyIDAgMjU2IDI1NiAwIDEgMCA1MTIgMHpNMjcxIDEzNWM5LjQtOS40IDI0LjYtOS40IDMzLjkgMHM5LjQgMjQuNiAwIDMzLjlsLTg3IDg3IDg3IDg3YzkuNCA5LjQgOS40IDI0LjYgMCAzMy45cy0yNC42IDkuNC0zMy45IDBMMTY3IDI3M2MtOS40LTkuNC05LjQtMjQuNiAwLTMzLjlMMjcxIDEzNXoiXX0sU3l0PVVsZSxXbGU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiY2lyY2xlLXF1ZXN0aW9uIixpY29uOls1MTIsNTEyLFs2MjEwOCwicXVlc3Rpb24tY2lyY2xlIl0sImYwNTkiLCJNMjU2IDUxMmEyNTYgMjU2IDAgMSAwIDAtNTEyIDI1NiAyNTYgMCAxIDAgMCA1MTJ6bTAtMzM2Yy0xNy43IDAtMzIgMTQuMy0zMiAzMiAwIDEzLjMtMTAuNyAyNC0yNCAyNHMtMjQtMTAuNy0yNC0yNGMwLTQ0LjIgMzUuOC04MCA4MC04MHM4MCAzNS44IDgwIDgwYzAgNDcuMi0zNiA2Ny4yLTU2IDc0LjVsMCAzLjhjMCAxMy4zLTEwLjcgMjQtMjQgMjRzLTI0LTEwLjctMjQtMjRsMC04LjFjMC0yMC41IDE0LjgtMzUuMiAzMC4xLTQwLjIgNi40LTIuMSAxMy4yLTUuNSAxOC4yLTEwLjMgNC4zLTQuMiA3LjctMTAgNy43LTE5LjYgMC0xNy43LTE0LjMtMzItMzItMzJ6TTIyNCAzNjhhMzIgMzIgMCAxIDEgNjQgMCAzMiAzMiAwIDEgMSAtNjQgMHoiXX0senl0PVdsZSxDeXQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToid2Fsa2llLXRhbGtpZSIsaWNvbjpbMzg0LDUxMixbXSwiZjhlZiIsIk04OC0zMmMxMy4zIDAgMjQgMTAuNyAyNCAyNGwwIDcyIDQ4IDBjMC0xNy43IDE0LjMtMzIgMzItMzJzMzIgMTQuMyAzMiAzMmwzMiAwYzAtMTcuNyAxNC4zLTMyIDMyLTMyczMyIDE0LjMgMzIgMzJsMTYgMGMyNi41IDAgNDggMjEuNSA0OCA0OGwwIDE2MC45YzAgOS45LTIuMyAxOS43LTYuOCAyOC42bC0yMC4yIDQwLjRjLTMuMyA2LjctNS4xIDE0LTUuMSAyMS41bDAgODQuN2MwIDM1LjMtMjguNyA2NC02NCA2NEw5NiA1MTJjLTM1LjMgMC02NC0yOC43LTY0LTY0bDAtODQuN2MwLTcuNS0xLjctMTQuOC01LjEtMjEuNUw2LjggMzAxLjVDMi4zIDI5Mi42IDAgMjgyLjggMCAyNzIuOUwwIDExMkMwIDg1LjUgMjEuNSA2NCA0OCA2NGwxNiAwIDAtNzJjMC0xMy4zIDEwLjctMjQgMjQtMjR6bTMyIDE3NmMtMTMuMyAwLTI0IDEwLjctMjQgMjRzMTAuNyAyNCAyNCAyNGwxNDQgMGMxMy4zIDAgMjQtMTAuNyAyNC0yNHMtMTAuNy0yNC0yNC0yNGwtMTQ0IDB6bTAgOTZjLTEzLjMgMC0yNCAxMC43LTI0IDI0czEwLjcgMjQgMjQgMjRsMTQ0IDBjMTMuMyAwIDI0LTEwLjcgMjQtMjRzLTEwLjctMjQtMjQtMjRsLTE0NCAweiJdfSxHbGU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToidXNlci1ncm91cCIsaWNvbjpbNTc2LDUxMixbMTI4MTAxLCJ1c2VyLWZyaWVuZHMiXSwiZjUwMCIsIk02NCAxMjhhMTEyIDExMiAwIDEgMSAyMjQgMCAxMTIgMTEyIDAgMSAxIC0yMjQgMHpNMCA0NjRjMC05Ny4yIDc4LjgtMTc2IDE3Ni0xNzZzMTc2IDc4LjggMTc2IDE3NmwwIDZjMCAyMy4yLTE4LjggNDItNDIgNDJMNDIgNTEyYy0yMy4yIDAtNDItMTguOC00Mi00MmwwLTZ6TTQzMiA2NGE5NiA5NiAwIDEgMSAwIDE5MiA5NiA5NiAwIDEgMSAwLTE5MnptMCAyNDBjNzkuNSAwIDE0NCA2NC41IDE0NCAxNDRsMCAyMi40YzAgMjMtMTguNiA0MS42LTQxLjYgNDEuNmwtMTQ0LjggMGM2LjYtMTIuNSAxMC40LTI2LjggMTAuNC00MmwwLTZjMC01MS41LTE3LjQtOTguOS00Ni41LTEzNi43IDIyLjYtMTQuNyA0OS42LTIzLjMgNzguNS0yMy4zeiJdfSxUeXQ9R2xlLFlsZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJob3VzZS1jaGltbmV5IixpY29uOls1MTIsNTEyLFs2MzQ5OSwiaG9tZS1sZyJdLCJlM2FmIiwiTTIzNC4yIDguNmMxMi4zLTExLjQgMzEuMy0xMS40IDQzLjUgMEwzNjggOTIuMyAzNjggODBjMC0xNy43IDE0LjMtMzIgMzItMzJsMzIgMGMxNy43IDAgMzIgMTQuMyAzMiAzMmwwIDEwMS41IDM3LjggMzUuMWM5LjYgOSAxMi44IDIyLjkgOCAzNS4xUzQ5My4yIDI3MiA0ODAgMjcybC0xNiAwIDAgMTc2YzAgMzUuMy0yOC43IDY0LTY0IDY0bC0yODggMGMtMzUuMyAwLTY0LTI4LjctNjQtNjRsMC0xNzYtMTYgMGMtMTMuMiAwLTI1LTguMS0yOS44LTIwLjNzLTEuNi0yNi4yIDgtMzUuMWwyMjQtMjA4ek0yNDAgMzIwYy0yNi41IDAtNDggMjEuNS00OCA0OGwwIDk2IDEyOCAwIDAtOTZjMC0yNi41LTIxLjUtNDgtNDgtNDhsLTMyIDB6Il19LF95dD1ZbGUsWmxlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InJpZ2h0LWZyb20tYnJhY2tldCIsaWNvbjpbNTEyLDUxMixbInNpZ24tb3V0LWFsdCJdLCJmMmY1IiwiTTUwNSAyNzNjOS40LTkuNCA5LjQtMjQuNiAwLTMzLjlMMzYxIDk1Yy02LjktNi45LTE3LjItOC45LTI2LjItNS4yUzMyMCAxMDIuMyAzMjAgMTEybDAgODAtMTEyIDBjLTI2LjUgMC00OCAyMS41LTQ4IDQ4bDAgMzJjMCAyNi41IDIxLjUgNDggNDggNDhsMTEyIDAgMCA4MGMwIDkuNyA1LjggMTguNSAxNC44IDIyLjJzMTkuMyAxLjcgMjYuMi01LjJMNTA1IDI3M3pNMTYwIDk2YzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMyTDk2IDMyQzQzIDMyIDAgNzUgMCAxMjhMMCAzODRjMCA1MyA0MyA5NiA5NiA5Nmw2NCAwYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMybC02NCAwYy0xNy43IDAtMzItMTQuMy0zMi0zMmwwLTI1NmMwLTE3LjcgMTQuMy0zMiAzMi0zMmw2NCAweiJdfSxMeXQ9WmxlLEF5dD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJmaWxlIixpY29uOlszODQsNTEyLFsxMjgxOTYsMTI4NDU5LDYxNDYyXSwiZjE1YiIsIk02NCAwQzI4LjcgMCAwIDI4LjcgMCA2NEwwIDQ0OGMwIDM1LjMgMjguNyA2NCA2NCA2NGwyNTYgMGMzNS4zIDAgNjQtMjguNyA2NC02NGwwLTI3Ny41YzAtMTctNi43LTMzLjMtMTguNy00NS4zTDI1OC43IDE4LjdDMjQ2LjcgNi43IDIzMC41IDAgMjEzLjUgMEw2NCAwek0zMjUuNSAxNzZMMjMyIDE3NmMtMTMuMyAwLTI0LTEwLjctMjQtMjRMMjA4IDU4LjUgMzI1LjUgMTc2eiJdfSxEeXQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToicGxhbmUtc2xhc2giLGljb246WzU3Niw1MTIsW10sImUwNjkiLCJNNDEtMjQuOWMtOS40LTkuNC0yNC42LTkuNC0zMy45IDBTLTIuMy0uMyA3IDkuMWw1MjggNTI4YzkuNCA5LjQgMjQuNiA5LjQgMzMuOSAwczkuNC0yNC42IDAtMzMuOWwtMTgzLjQtMTgzLjQgNy4xLTcuNyAxMjcuMyAwYzMwLjkgMCA1Ni0yNS4xIDU2LTU2cy0yNS4xLTU2LTU2LTU2TDM5Mi43IDIwMCAyMzMuNSAyNi40QzIyNy41IDE5LjggMjE4LjkgMTYgMjA5LjkgMTZsLTQzLjcgMGMtMTAuOSAwLTE4LjYgMTAuNy0xNS4yIDIxLjFMMTc1LjEgMTA5LjIgNDEtMjQuOXpNMTMwLjIgMjAwbC0yNC42IDAtNTIuOC02NmMtMy0zLjgtNy42LTYtMTIuNS02bC0xOS44IDBjLTEwLjQgMC0xOCA5LjgtMTUuNSAxOS45TDMyIDI1NiA1IDM2NC4xQzIuNCAzNzQuMiAxMC4xIDM4NCAyMC41IDM4NGwxOS44IDBjNC45IDAgOS41LTIuMiAxMi41LTZsNTIuOC02NiA5OS43IDAtNTQuMyAxNjIuOWMtMy41IDEwLjQgNC4zIDIxLjEgMTUuMiAyMS4xbDQzLjcgMGM5IDAgMTcuNS0zLjggMjMuNi0xMC40TDMyMC43IDM5MC41IDEzMC4yIDIwMHoiXX0sRXl0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImNsb3VkLXNob3dlcnMtaGVhdnkiLGljb246WzUxMiw1MTIsW10sImY3NDAiLCJNOTYgMzIwYy01MyAwLTk2LTQzLTk2LTk2IDAtNDIuNSAyNy42LTc4LjYgNjUuOS05MS4yLTEuMy02LjctMS45LTEzLjctMS45LTIwLjggMC02MS45IDUwLjEtMTEyIDExMi0xMTIgNDMuMSAwIDgwLjUgMjQuMyA5OS4yIDYwIDE0LjctMTcuMSAzNi41LTI4IDYwLjgtMjggNDQuMiAwIDgwIDM1LjggODAgODAgMCA1LjUtLjYgMTAuOC0xLjYgMTYgLjUgMCAxLjEgMCAxLjYgMCA1MyAwIDk2IDQzIDk2IDk2cy00MyA5Ni05NiA5Nkw5NiAzMjB6bTYuOCA3OS42bC0zMiA5NkM2Ni42IDUwOC4yIDUzIDUxNSA0MC40IDUxMC44UzIxIDQ5MyAyNS4yIDQ4MC40bDMyLTk2QzYxLjQgMzcxLjggNzUgMzY1IDg3LjYgMzY5LjJTMTA3IDM4NyAxMDIuOCAzOTkuNnptMTIwIDBsLTMyIDk2Yy00LjIgMTIuNi0xNy44IDE5LjQtMzAuNCAxNS4yUzE0MSA0OTMgMTQ1LjIgNDgwLjRsMzItOTZjNC4yLTEyLjYgMTcuOC0xOS40IDMwLjQtMTUuMlMyMjcgMzg3IDIyMi44IDM5OS42em0xMTIgMGwtMzIgOTZjLTQuMiAxMi42LTE3LjggMTkuNC0zMC40IDE1LjJTMjUzIDQ5MyAyNTcuMiA0ODAuNGwzMi05NmM0LjItMTIuNiAxNy44LTE5LjQgMzAuNC0xNS4yUzMzOSAzODcgMzM0LjggMzk5LjZ6bTEyMCAwbC0zMiA5NmMtNC4yIDEyLjYtMTcuOCAxOS40LTMwLjQgMTUuMlMzNzMgNDkzIDM3Ny4yIDQ4MC40bDMyLTk2YzQuMi0xMi42IDE3LjgtMTkuNCAzMC40LTE1LjJTNDU5IDM4NyA0NTQuOCAzOTkuNnoiXX0sJHl0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InBlcnNvbi1mYWxsaW5nIixpY29uOls1MTIsNTEyLFtdLCJlNTQ2IiwiTTMyMCAzMmMwLTE3LjctMTQuMy0zMi0zMi0zMnMtMzIgMTQuMy0zMiAzMmwwIDUuNGMwIDQ1LTIzLjYgODYuNi02Mi4xIDEwOS44bC00LjYgMi44QzEzMS40IDE4NC43IDk2IDI0Ny4xIDk2IDMxNC42TDk2IDM4NGMwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMybDAtNjkuNGMwLTE2LjcgMy4zLTMzIDkuNC00OEwzNTkuMiA1MDAuMmMxMS4xIDEzLjcgMzEuMyAxNS44IDQ1IDQuN3MxNS44LTMxLjMgNC43LTQ1TDI5NS4yIDMyMCA0MDAgMzIwIDQzOC40IDM3MS4yYzEwLjYgMTQuMSAzMC43IDE3IDQ0LjggNi40czE3LTMwLjcgNi40LTQ0LjhsLTQzLjItNTcuNkM0MzcuMyAyNjMuMSA0MjMuMSAyNTYgNDA4IDI1NmwtODkgMC02Mi45LTc1LjVjNDAuMy0zNiA2My45LTg3LjkgNjMuOS0xNDMuMWwwLTUuNHpNMTA0IDE0NGE1NiA1NiAwIDEgMCAwLTExMiA1NiA1NiAwIDEgMCAwIDExMnoiXX0sWGxlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InR1cm4tZG93biIsaWNvbjpbMzg0LDUxMixbMTA1NDksImxldmVsLWRvd24tYWx0Il0sImYzYmUiLCJNMTY5LjQgNTAyLjZjMTIuNSAxMi41IDMyLjggMTIuNSA0NS4zIDBsMTI4LTEyOGM5LjItOS4yIDExLjktMjIuOSA2LjktMzQuOVMzMzIuOSAzMjAgMzIwIDMyMGwtNjQgMCAwLTE2MEMyNTYgNzEuNiAxODQuNCAwIDk2IDBMMzIgMEMxNC4zIDAgMCAxNC4zIDAgMzJMMCA5NmMwIDE3LjcgMTQuMyAzMiAzMiAzMmw2NCAwYzE3LjcgMCAzMiAxNC4zIDMyIDMybDAgMTYwLTY0IDBjLTEyLjkgMC0yNC42IDcuOC0yOS42IDE5LjhzLTIuMiAyNS43IDYuOSAzNC45bDEyOCAxMjh6Il19LEl5dD1YbGUsUWxlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InVwLXJpZ2h0LWFuZC1kb3duLWxlZnQtZnJvbS1jZW50ZXIiLGljb246WzUxMiw1MTIsWyJleHBhbmQtYWx0Il0sImY0MjQiLCJNMzQ0IDBMNDg4IDBjMTMuMyAwIDI0IDEwLjcgMjQgMjRsMCAxNDRjMCA5LjctNS44IDE4LjUtMTQuOCAyMi4ycy0xOS4zIDEuNy0yNi4yLTUuMmwtMzktMzktODcgODdjLTkuNCA5LjQtMjQuNiA5LjQtMzMuOSAwbC0zMi0zMmMtOS40LTkuNC05LjQtMjQuNiAwLTMzLjlsODctODctMzktMzljLTYuOS02LjktOC45LTE3LjItNS4yLTI2LjJTMzM0LjMgMCAzNDQgMHpNMTY4IDUxMkwyNCA1MTJjLTEzLjMgMC0yNC0xMC43LTI0LTI0TDAgMzQ0YzAtOS43IDUuOC0xOC41IDE0LjgtMjIuMlMzNC4xIDMyMC4yIDQxIDMyN2wzOSAzOSA4Ny04N2M5LjQtOS40IDI0LjYtOS40IDMzLjkgMGwzMiAzMmM5LjQgOS40IDkuNCAyNC42IDAgMzMuOWwtODcgODcgMzkgMzljNi45IDYuOSA4LjkgMTcuMiA1LjIgMjYuMlMxNzcuNyA1MTIgMTY4IDUxMnoiXX0sUHl0PVFsZSxOeXQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToidXNlci10YWciLGljb246WzY0MCw1MTIsW10sImY1MDciLCJNMjU2LjEgOGExMjAgMTIwIDAgMSAxIDAgMjQwIDEyMCAxMjAgMCAxIDEgMC0yNDB6TTIyNi40IDMwNGw1OS40IDBjNi43IDAgMTMuMiAuNCAxOS43IDEuMS0uOSA0LjktMS40IDkuOS0xLjQgMTVsMCA5Mi4xYzAgMjUuNSAxMC4xIDQ5LjkgMjguMSA2Ny45bDMxLjkgMzEuOS0yODYuMyAwYy0xNi40IDAtMjkuNy0xMy4zLTI5LjctMjkuNyAwLTk4LjUgNzkuOC0xNzguMyAxNzguMy0xNzguM3pNMzUyLjEgNDEyLjJsMC05Mi4xYzAtMTcuNyAxNC4zLTMyIDMyLTMybDkyLjEgMGMxMi43IDAgMjQuOSA1LjEgMzMuOSAxNC4xbDk2IDk2YzE4LjcgMTguNyAxOC43IDQ5LjEgMCA2Ny45bC03Ni4xIDc2LjFjLTE4LjcgMTguNy00OS4xIDE4LjctNjcuOSAwbC05Ni05NmMtOS05LTE0LjEtMjEuMi0xNC4xLTMzLjl6bTEwNC00NC4yYTI0IDI0IDAgMSAwIC00OCAwIDI0IDI0IDAgMSAwIDQ4IDB6Il19LEZ5dD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJoYW5kLXNwYXJrbGVzIixpY29uOls2NDAsNTEyLFtdLCJlMDVkIiwiTTMyMCAwYzE3LjcgMCAzMiAxNC4zIDMyIDMybDAgMjA4YzAgOC44IDcuMiAxNiAxNiAxNnMxNi03LjIgMTYtMTZsMC0xNzZjMC0xNy43IDE0LjMtMzIgMzItMzJzMzIgMTQuMyAzMiAzMmwwIDE3NmMwIDguOCA3LjIgMTYgMTYgMTZzMTYtNy4yIDE2LTE2bDAtMTEyYzAtMTcuNyAxNC4zLTMyIDMyLTMyczMyIDE0LjMgMzIgMzJsMCAxNzguMmMtMTkuMiA1LjQtMzQuNyAyMC40LTQwLjQgNDAuM2wtNi41IDIyLjctMjIuNyA2LjVjLTI1LjIgNy4yLTQyLjUgMzAuMi00Mi41IDU2LjQgMCAyMi4xIDEyLjQgNDIgMzEuNCA1MS45LTI3LjUgMTcuOC02MC4yIDI4LjEtOTUuNCAyOC4xbC0xOS4yIDBjLTU5LjYgMC0xMTYuOS0yMi45LTE2MC02NEw3Ni40IDM0MWMtMTYtMTUuMi0xNi42LTQwLjYtMS40LTU2LjZzNDAuNi0xNi42IDU2LjYtMS40bDYwLjUgNTcuNmMwLTEuNS0uMS0zLjEtLjEtNC42bDAtMjcyYzAtMTcuNyAxNC4zLTMyIDMyLTMyczMyIDE0LjMgMzIgMzJsMCAxNzZjMCA4LjggNy4yIDE2IDE2IDE2czE2LTcuMiAxNi0xNmwwLTIwOGMwLTE3LjcgMTQuMy0zMiAzMi0zMnptLTcuMyAzMjYuNmMtMS4xLTMuOS00LjctNi42LTguNy02LjZzLTcuNiAyLjctOC43IDYuNmwtNy4zIDI1LjQtMjUuNCA3LjNjLTMuOSAxLjEtNi42IDQuNy02LjYgOC43czIuNyA3LjYgNi42IDguN2wyNS40IDcuMyA3LjMgMjUuNGMxLjEgMy45IDQuNyA2LjYgOC43IDYuNnM3LjYtMi43IDguNy02LjZsNy4zLTI1LjQgMjUuNC03LjNjMy45LTEuMSA2LjYtNC43IDYuNi04LjdzLTIuNy03LjYtNi42LTguN2wtMjUuNC03LjMtNy4zLTI1LjR6TTEwNCAxMjBsNDguMyAxMy44YzQuNiAxLjMgNy43IDUuNSA3LjcgMTAuMnMtMy4xIDguOS03LjcgMTAuMkwxMDQgMTY4IDkwLjIgMjE2LjNjLTEuMyA0LjYtNS41IDcuNy0xMC4yIDcuN3MtOC45LTMuMS0xMC4yLTcuN0w1NiAxNjggNy43IDE1NC4yQzMuMSAxNTIuOSAwIDE0OC43IDAgMTQ0czMuMS04LjkgNy43LTEwLjJMNTYgMTIwIDY5LjggNzEuN0M3MS4xIDY3LjEgNzUuMyA2NCA4MCA2NHM4LjkgMy4xIDEwLjIgNy43TDEwNCAxMjB6TTU4NCA0MDhsNDguMyAxMy44YzQuNiAxLjMgNy43IDUuNSA3LjcgMTAuMnMtMy4xIDguOS03LjcgMTAuMkw1ODQgNDU2IDU3MC4yIDUwNC4zYy0xLjMgNC42LTUuNSA3LjctMTAuMiA3LjdzLTguOS0zLjEtMTAuMi03LjdMNTM2IDQ1NiA0ODcuNyA0NDIuMmMtNC42LTEuMy03LjctNS41LTcuNy0xMC4yczMuMS04LjkgNy43LTEwLjJMNTM2IDQwOCA1NDkuOCAzNTkuN2MxLjMtNC42IDUuNS03LjcgMTAuMi03LjdzOC45IDMuMSAxMC4yIDcuN0w1ODQgNDA4eiJdfSxPeXQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiYXJyb3dzLXRvLWRvdCIsaWNvbjpbNTEyLDUxMixbXSwiZTRiZSIsIk0yNTYgMGMxNy43IDAgMzIgMTQuMyAzMiAzMmwwIDMyIDMyIDBjMTIuOSAwIDI0LjYgNy44IDI5LjYgMTkuOHMyLjIgMjUuNy02LjkgMzQuOWwtNjQgNjRjLTEyLjUgMTIuNS0zMi44IDEyLjUtNDUuMyAwbC02NC02NGMtOS4yLTkuMi0xMS45LTIyLjktNi45LTM0LjlTMTc5LjEgNjQgMTkyIDY0bDMyIDAgMC0zMmMwLTE3LjcgMTQuMy0zMiAzMi0zMnpNMTY5LjQgMzkzLjRsNjQtNjRjMTIuNS0xMi41IDMyLjgtMTIuNSA0NS4zIDBsNjQgNjRjOS4yIDkuMiAxMS45IDIyLjkgNi45IDM0LjlTMzMyLjkgNDQ4IDMyMCA0NDhsLTMyIDAgMCAzMmMwIDE3LjctMTQuMyAzMi0zMiAzMnMtMzItMTQuMy0zMi0zMmwwLTMyLTMyIDBjLTEyLjkgMC0yNC42LTcuOC0yOS42LTE5LjhzLTIuMi0yNS43IDYuOS0zNC45ek0zMiAyMjRsMzIgMCAwLTMyYzAtMTIuOSA3LjgtMjQuNiAxOS44LTI5LjZzMjUuNy0yLjIgMzQuOSA2LjlsNjQgNjRjMTIuNSAxMi41IDEyLjUgMzIuOCAwIDQ1LjNsLTY0IDY0Yy05LjIgOS4yLTIyLjkgMTEuOS0zNC45IDYuOVM2NCAzMzIuOSA2NCAzMjBsMC0zMi0zMiAwYy0xNy43IDAtMzItMTQuMy0zMi0zMnMxNC4zLTMyIDMyLTMyem0yOTcuNCA1NC42Yy0xMi41LTEyLjUtMTIuNS0zMi44IDAtNDUuM2w2NC02NGM5LjItOS4yIDIyLjktMTEuOSAzNC45LTYuOVM0NDggMTc5LjEgNDQ4IDE5MmwwIDMyIDMyIDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJsLTMyIDAgMCAzMmMwIDEyLjktNy44IDI0LjYtMTkuOCAyOS42cy0yNS43IDIuMi0zNC45LTYuOWwtNjQtNjR6TTI1NiAyMjRhMzIgMzIgMCAxIDEgMCA2NCAzMiAzMiAwIDEgMSAwLTY0eiJdfSxKbGU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZmFjZS1zYWQtY3J5IixpY29uOls1MTIsNTEyLFsxMjg1NTcsInNhZC1jcnkiXSwiZjViMyIsIk0zNTIgNDkzLjRjLTI5LjYgMTItNjIuMSAxOC42LTk2IDE4LjZzLTY2LjQtNi42LTk2LTE4LjZMMTYwIDI5NmMwLTEzLjMtMTAuNy0yNC0yNC0yNHMtMjQgMTAuNy0yNCAyNGwwIDE3MS43QzQ0LjQgNDIxLjYgMCAzNDQgMCAyNTYgMCAxMTQuNiAxMTQuNiAwIDI1NiAwUzUxMiAxMTQuNiA1MTIgMjU2YzAgODgtNDQuNCAxNjUuNi0xMTIgMjExLjdMNDAwIDI5NmMwLTEzLjMtMTAuNy0yNC0yNC0yNHMtMjQgMTAuNy0yNCAyNGwwIDE5Ny40ek0xNTIgMTk2bDE2IDBjMTEgMCAyMCA5IDIwIDIwczkgMjAgMjAgMjAgMjAtOSAyMC0yMGMwLTMzLjEtMjYuOS02MC02MC02MGwtMTYgMGMtMzMuMSAwLTYwIDI2LjktNjAgNjAgMCAxMSA5IDIwIDIwIDIwczIwLTkgMjAtMjAgOS0yMCAyMC0yMHptMTcyIDIwYzAtMTEgOS0yMCAyMC0yMGwxNiAwYzExIDAgMjAgOSAyMCAyMHM5IDIwIDIwIDIwIDIwLTkgMjAtMjBjMC0zMy4xLTI2LjktNjAtNjAtNjBsLTE2IDBjLTMzLjEgMC02MCAyNi45LTYwIDYwIDAgMTEgOSAyMCAyMCAyMHMyMC05IDIwLTIwek0yMDggMzM2bDAgMzJjMCAyNi41IDIxLjUgNDggNDggNDhzNDgtMjEuNSA0OC00OGwwLTMyYzAtMjYuNS0yMS41LTQ4LTQ4LTQ4cy00OCAyMS41LTQ4IDQ4eiJdfSxSeXQ9SmxlLEJ5dD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJkb25nLXNpZ24iLGljb246WzM4NCw1MTIsW10sImUxNjkiLCJNMjg4LTE2Yy0xNy43IDAtMzIgMTQuMy0zMiAzMmwwIDMyLTEwNCAwYy0xMy4zIDAtMjQgMTAuNy0yNCAyNHMxMC43IDI0IDI0IDI0bDEwNCAwIDAgNzIuMmMtMjIuOS0xNS4zLTUwLjQtMjQuMi04MC0yNC4yLTc5LjUgMC0xNDQgNjQuNS0xNDQgMTQ0Uzk2LjUgNDMyIDE3NiA0MzJjMzAgMCA1Ny44LTkuMSA4MC44LTI0LjggMy4zIDE0LjIgMTYgMjQuOCAzMS4yIDI0LjggMTcuNyAwIDMyLTE0LjMgMzItMzJsMC0zMDQgNDAgMGMxMy4zIDAgMjQtMTAuNyAyNC0yNHMtMTAuNy0yNC0yNC0yNGwtNDAgMCAwLTMyYzAtMTcuNy0xNC4zLTMyLTMyLTMyek05NiAyODhhODAgODAgMCAxIDEgMTYwIDAgODAgODAgMCAxIDEgLTE2MCAwek0yNCA0NjRjLTEzLjMgMC0yNCAxMC43LTI0IDI0czEwLjcgMjQgMjQgMjRsMzM2IDBjMTMuMyAwIDI0LTEwLjcgMjQtMjRzLTEwLjctMjQtMjQtMjRMMjQgNDY0eiJdfSxIeXQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToicGVvcGxlLWxpbmUiLGljb246WzU3Niw1MTIsW10sImU1MzQiLCJNMjg4IDBhNjQgNjQgMCAxIDEgMCAxMjggNjQgNjQgMCAxIDEgMC0xMjh6bTk2IDMxMmMwIDI1LTEyLjcgNDctMzIgNTkuOWwwIDQ0LjEtMTI4IDAgMC00NC4xQzIwNC43IDM1OSAxOTIgMzM3IDE5MiAzMTJsMC00MGMwLTUzIDQzLTk2IDk2LTk2czk2IDQzIDk2IDk2bDAgNDB6bTE2IDEwNGwwLTI3LjNjMTkuOS0yMi41IDMyLTUyLjIgMzItODQuN2wwLTMyYzAtMjYuNy03LjMtNTEuNi0xOS45LTczLjEgMTEuMS00LjUgMjMuMi02LjkgMzUuOS02LjkgNTMgMCA5NiA0MyA5NiA5NmwwIDMyYzAgMjMuNy0xMi45IDQ0LjQtMzIgNTUuNGwwIDQwLjYtMTEyIDB6TTY0IDM3NS40QzQ0LjkgMzY0LjQgMzIgMzQzLjcgMzIgMzIwbDAtMzJjMC01MyA0My05NiA5Ni05NiAxMi43IDAgMjQuOCAyLjUgMzUuOSA2LjktMTIuNiAyMS40LTE5LjkgNDYuNC0xOS45IDczLjFsMCAzMmMwIDMyLjUgMTIuMSA2Mi4xIDMyIDg0LjdsMCAyNy4zLTExMiAwIDAtNDAuNnpNMTI4IDMyYTU2IDU2IDAgMSAxIDAgMTEyIDU2IDU2IDAgMSAxIDAtMTEyem0zMjAgMGE1NiA1NiAwIDEgMSAwIDExMiA1NiA1NiAwIDEgMSAwLTExMnpNMjQgNDY0bDUyOCAwYzEzLjMgMCAyNCAxMC43IDI0IDI0cy0xMC43IDI0LTI0IDI0TDI0IDUxMmMtMTMuMyAwLTI0LTEwLjctMjQtMjRzMTAuNy0yNCAyNC0yNHoiXX0sS2xlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InNxdWFyZS1yc3MiLGljb246WzQ0OCw1MTIsWyJyc3Mtc3F1YXJlIl0sImYxNDMiLCJNNjQgMzJDMjguNyAzMiAwIDYwLjcgMCA5NkwwIDQxNmMwIDM1LjMgMjguNyA2NCA2NCA2NGwzMjAgMGMzNS4zIDAgNjQtMjguNyA2NC02NGwwLTMyMGMwLTM1LjMtMjguNy02NC02NC02NEw2NCAzMnpNOTYgMTM2YzAtMTMuMyAxMC43LTI0IDI0LTI0IDEzNyAwIDI0OCAxMTEgMjQ4IDI0OCAwIDEzLjMtMTAuNyAyNC0yNCAyNHMtMjQtMTAuNy0yNC0yNGMwLTExMC41LTg5LjUtMjAwLTIwMC0yMDAtMTMuMyAwLTI0LTEwLjctMjQtMjR6bTAgOTZjMC0xMy4zIDEwLjctMjQgMjQtMjQgODMuOSAwIDE1MiA2OC4xIDE1MiAxNTIgMCAxMy4zLTEwLjcgMjQtMjQgMjRzLTI0LTEwLjctMjQtMjRjMC01Ny40LTQ2LjYtMTA0LTEwNC0xMDQtMTMuMyAwLTI0LTEwLjctMjQtMjR6bTAgMTIwYTMyIDMyIDAgMSAxIDY0IDAgMzIgMzIgMCAxIDEgLTY0IDB6Il19LHF5dD1LbGUsanl0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImNhbGVuZGFyLW1pbnVzIixpY29uOls0NDgsNTEyLFtdLCJmMjcyIiwiTTEyOCAwYzE3LjcgMCAzMiAxNC4zIDMyIDMybDAgMzIgMTI4IDAgMC0zMmMwLTE3LjcgMTQuMy0zMiAzMi0zMnMzMiAxNC4zIDMyIDMybDAgMzIgMzIgMGMzNS4zIDAgNjQgMjguNyA2NCA2NGwwIDI4OGMwIDM1LjMtMjguNyA2NC02NCA2NEw2NCA0ODBjLTM1LjMgMC02NC0yOC43LTY0LTY0TDAgMTI4QzAgOTIuNyAyOC43IDY0IDY0IDY0bDMyIDAgMC0zMmMwLTE3LjcgMTQuMy0zMiAzMi0zMnptMjQgMjY0Yy0xMy4zIDAtMjQgMTAuNy0yNCAyNHMxMC43IDI0IDI0IDI0bDE0NCAwYzEzLjMgMCAyNC0xMC43IDI0LTI0cy0xMC43LTI0LTI0LTI0bC0xNDQgMHoiXX0sVnl0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImNoYXJ0LWRpYWdyYW0iLGljb246WzUxMiw1MTIsW10sImU2OTUiLCJNODAgMzJDNTMuNSAzMiAzMiA1My41IDMyIDgwczIxLjUgNDggNDggNDhsMTUyIDAgMCA0MC00OCA0OC03MiAwYy0zOS44IDAtNzIgMzIuMi03MiA3MmwwIDY0LTggMGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJsMCA2NGMwIDE3LjcgMTQuMyAzMiAzMiAzMmw2NCAwYzE3LjcgMCAzMi0xNC4zIDMyLTMybDAtNjRjMC0xNy43LTE0LjMtMzItMzItMzJsLTggMCAwLTY0YzAtMTMuMyAxMC43LTI0IDI0LTI0bDcyIDAgNDggNDggMCA0MC04IDBjLTE3LjcgMC0zMiAxNC4zLTMyIDMybDAgNjRjMCAxNy43IDE0LjMgMzIgMzIgMzJsNjQgMGMxNy43IDAgMzItMTQuMyAzMi0zMmwwLTY0YzAtMTcuNy0xNC4zLTMyLTMyLTMybC04IDAgMC00MCA0OC00OCA3MiAwYzEzLjMgMCAyNCAxMC43IDI0IDI0bDAgNjQtOCAwYy0xNy43IDAtMzIgMTQuMy0zMiAzMmwwIDY0YzAgMTcuNyAxNC4zIDMyIDMyIDMybDY0IDBjMTcuNyAwIDMyLTE0LjMgMzItMzJsMC02NGMwLTE3LjctMTQuMy0zMi0zMi0zMmwtOCAwIDAtNjRjMC0zOS44LTMyLjItNzItNzItNzJsLTcyIDAtNDgtNDggMC00MCAxNTIgMGMyNi41IDAgNDgtMjEuNSA0OC00OHMtMjEuNS00OC00OC00OEw4MCAzMnoiXX0sZWNlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImZhY2UtdGlyZWQiLGljb246WzUxMiw1MTIsWzEyODU1NSwidGlyZWQiXSwiZjVjOCIsIk0yNTYgNTEyYTI1NiAyNTYgMCAxIDAgMC01MTIgMjU2IDI1NiAwIDEgMCAwIDUxMnpNMTY0LjcgMzI4LjdjMjItMjIgNTMuOS00MC43IDkxLjMtNDAuN3M2OS4zIDE4LjcgOTEuMyA0MC43YzExLjEgMTEuMSAyMC4xIDIzLjQgMjYuNCAzNS40IDYuMiAxMS43IDEwLjMgMjQuNCAxMC4zIDM1LjkgMCA1LjItMi42IDEwLjItNi45IDEzLjJzLTkuOCAzLjctMTQuNyAxLjhsLTIwLjUtNy43Yy0yNi45LTEwLjEtNTUuNS0xNS4zLTg0LjMtMTUuM2wtMy4yIDBjLTI4LjggMC01Ny4zIDUuMi04NC4zIDE1LjNMMTQ5LjYgNDE1Yy00LjkgMS44LTEwLjQgMS4yLTE0LjctMS44UzEyOCA0MDUuMiAxMjggNDAwYzAtMTEuNiA0LjItMjQuMiAxMC4zLTM1LjkgNi4zLTEyIDE1LjMtMjQuMyAyNi40LTM1LjR6TTEyMi42IDE1OS4yYzQuNS02LjggMTMuMy05LjIgMjAuNi01LjVsNzkuNiA0MGM1LjQgMi43IDguOCA4LjIgOC44IDE0LjNzLTMuNCAxMS42LTguOCAxNC4zbC03OS42IDQwYy03LjMgMy42LTE2LjEgMS4zLTIwLjYtNS41cy0zLjEtMTUuOSAzLjEtMjEuMUwxNTkgMjA4IDEyNS44IDE4MC4zYy02LjItNS4yLTcuNi0xNC4zLTMuMS0yMS4xem0yNjMuNiAyMS4xTDM1MyAyMDggMzg2LjIgMjM1LjdjNi4yIDUuMiA3LjYgMTQuMyAzLjEgMjEuMXMtMTMuMyA5LjItMjAuNiA1LjVsLTc5LjYtNDBjLTUuNC0yLjctOC44LTguMi04LjgtMTQuM3MzLjQtMTEuNiA4LjgtMTQuM2w3OS42LTQwYzcuMy0zLjYgMTYuMS0xLjMgMjAuNiA1LjVzMy4xIDE1LjktMy4xIDIxLjF6Il19LFV5dD1lY2UsV3l0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImhhbmQtcG9pbnQtcmlnaHQiLGljb246WzUxMiw1MTIsW10sImYwYTQiLCJNNDgwIDk2YzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMybC0yMDggMCAwLTY0IDIwOCAwek0zMjAgMjg4YzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMybC02NCAwYy0xNy43IDAtMzItMTQuMy0zMi0zMnMxNC4zLTMyIDMyLTMybDY0IDB6bTY0LTY0YzAgMTcuNy0xNC4zIDMyLTMyIDMybC00OCAwYy0xNy43IDAtMzItMTQuMy0zMi0zMnMxNC4zLTMyIDMyLTMybDQ4IDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJ6TTI4OCAzODRjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJsLTY0IDBjLTE3LjcgMC0zMi0xNC4zLTMyLTMyczE0LjMtMzIgMzItMzJsNjQgMHptLTg4LTk2bC42IDBjLTUuNCA5LjQtOC42IDIwLjMtOC42IDMyIDAgMTMuMiA0IDI1LjQgMTAuOCAzNS42LTI0LjkgOC43LTQyLjggMzIuNS00Mi44IDYwLjQgMCAxMS43IDMuMSAyMi42IDguNiAzMmwtOC42IDBDNzEuNiA0NDggMCAzNzYuNCAwIDI4OGwwLTYxLjdjMC00Mi40IDE2LjktODMuMSA0Ni45LTExMy4xbDExLjYtMTEuNkM4Mi41IDc3LjUgMTE1LjEgNjQgMTQ5IDY0bDI3IDBjMzUuMyAwIDY0IDI4LjcgNjQgNjRsMCA4OGMwIDIyLjEtMTcuOSA0MC00MCA0MHMtNDAtMTcuOS00MC00MGwwLTU2YzAtOC44LTcuMi0xNi0xNi0xNnMtMTYgNy4yLTE2IDE2bDAgNTZjMCAzOS44IDMyLjIgNzIgNzIgNzJ6Il19LEd5dD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJhcnJvdy11cCIsaWNvbjpbMzg0LDUxMixbODU5M10sImYwNjIiLCJNMjE0LjYgOS40Yy0xMi41LTEyLjUtMzIuOC0xMi41LTQ1LjMgMGwtMTYwIDE2MGMtMTIuNSAxMi41LTEyLjUgMzIuOCAwIDQ1LjNzMzIuOCAxMi41IDQ1LjMgMEwxNjAgMTA5LjMgMTYwIDQ4MGMwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMybDAtMzcwLjcgMTA1LjQgMTA1LjRjMTIuNSAxMi41IDMyLjggMTIuNSA0NS4zIDBzMTIuNS0zMi44IDAtNDUuM2wtMTYwLTE2MHoiXX0sWXl0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImN1YmVzLXN0YWNrZWQiLGljb246WzUxMiw1MTIsW10sImU0ZTYiLCJNMTkyIDMyYzAtMTcuNyAxNC4zLTMyIDMyLTMybDY0IDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJsMCA2NGMwIDE3LjctMTQuMyAzMi0zMiAzMmwtNjQgMGMtMTcuNyAwLTMyLTE0LjMtMzItMzJsMC02NHptMzIgMzUybDY0IDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJsMCA2NGMwIDE3LjctMTQuMyAzMi0zMiAzMmwtNjQgMGMtMTcuNyAwLTMyLTE0LjMtMzItMzJsMC02NGMwLTE3LjcgMTQuMy0zMiAzMi0zMnptMTkyIDBsNjQgMGMxNy43IDAgMzIgMTQuMyAzMiAzMmwwIDY0YzAgMTcuNy0xNC4zIDMyLTMyIDMybC02NCAwYy0xNy43IDAtMzItMTQuMy0zMi0zMmwwLTY0YzAtMTcuNyAxNC4zLTMyIDMyLTMyek0zMjAgMTkybDY0IDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJsMCA2NGMwIDE3LjctMTQuMyAzMi0zMiAzMmwtNjQgMGMtMTcuNyAwLTMyLTE0LjMtMzItMzJsMC02NGMwLTE3LjcgMTQuMy0zMiAzMi0zMnptLTE4Mi42LTMuOWMxMi41LTEyLjUgMzIuOC0xMi41IDQ1LjMgMGw0NS4zIDQ1LjNjMTIuNSAxMi41IDEyLjUgMzIuOCAwIDQ1LjNsLTQ1LjMgNDUuM2MtMTIuNSAxMi41LTMyLjggMTIuNS00NS4zIDBMOTIuMSAyNzguNmMtMTIuNS0xMi41LTEyLjUtMzIuOCAwLTQ1LjNsNDUuMy00NS4zek0zMiAzODRsNjQgMGMxNy43IDAgMzIgMTQuMyAzMiAzMmwwIDY0YzAgMTcuNy0xNC4zIDMyLTMyIDMybC02NCAwYy0xNy43IDAtMzItMTQuMy0zMi0zMmwwLTY0YzAtMTcuNyAxNC4zLTMyIDMyLTMyeiJdfSx0Y2U9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiY2hpbGQtY29tYmF0YW50IixpY29uOls1NzYsNTEyLFsiY2hpbGQtcmlmbGUiXSwiZTRlMCIsIk0xNzYuNSAxMjhhNjQgNjQgMCAxIDAgMC0xMjggNjQgNjQgMCAxIDAgMCAxMjh6bS0xNiAzNTJsMC05NiAzMiAwIDAgOTZjMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMmwwLTE5Mi4yIDIwLjkgMzMuMmM5LjQgMTUgMjkuMiAxOS40IDQ0LjEgMTBzMTkuNC0yOS4yIDEwLTQ0LjFsLTM5LjktNjMuM0MyNjYuOCAxODQgMjIzLjMgMTYwIDE3Ni41IDE2MFM4Ni4yIDE4NCA2MS4zIDIyMy42TDIxLjQgMjg3Yy05LjQgMTUtNC45IDM0LjcgMTAgNDQuMXMzNC43IDQuOSA0NC4xLTEwbDIwLjktMzMuMiAwIDE5Mi4yYzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJ6TTQ0OC41IDBsLTMyIDBjLTguOCAwLTE2IDcuMi0xNiAxNnM3LjIgMTYgMTYgMTZsMCAxMDAuM2MtOS42IDUuNS0xNiAxNS45LTE2IDI3LjdsMCAzMmMtMTcuNyAwLTMyIDE0LjMtMzIgMzJsMCAxNDRjMCAxNy43IDE0LjMgMzIgMzIgMzJsMTYgMCAwIDk2YzAgOC44IDcuMiAxNiAxNiAxNmw1OS41IDBjMTAuNCAwIDE4LTkuOCAxNS41LTE5LjlsLTIzLTkyLjEgNDQgMGM4LjggMCAxNi03LjIgMTYtMTZsMC0xNmMwLTguOC03LjItMTYtMTYtMTZsLTQ4IDAgMC0yNi43IDUzLjEtMTcuN2M2LjUtMi4yIDEwLjktOC4zIDEwLjktMTUuMmwwLTg0LjVjMC04LjgtNy4yLTE2LTE2LTE2bC0xNiAwYy04LjggMC0xNiA3LjItMTYgMTZsMCA1Ni0xNiA1LjMgMC0xMDkuM2MwLTExLjgtNi40LTIyLjItMTYtMjcuN2wwLTExNi4zYzAtOC44LTcuMi0xNi0xNi0xNnoiXX0sWnl0PXRjZSxYeXQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToidmVzdC1wYXRjaGVzIixpY29uOls0NDgsNTEyLFtdLCJlMDg2IiwiTTIwMCAyOTMuOUwyMDAgNDY0YzAgMjYuNS0yMS41IDQ4LTQ4IDQ4TDQ4IDUxMmMtMjYuNSAwLTQ4LTIxLjUtNDgtNDhMMCAyNzAuNWMwLTkuNSAyLjgtMTguNyA4LjEtMjYuNmw0Ny45LTcxLjhjNS4zLTcuOSA4LjEtMTcuMSA4LjEtMjYuNkw2NCA0OEM2NCAyMS41IDg1LjUgMCAxMTIgMGwzLjUgMGMuMyAwIC42IDAgMSAwIC42IDAgMS4yIDAgMS44IDAgMTguOCAwIDM0LjEgOS43IDQ0LjEgMTguOCA5LjMgOC40IDI4LjUgMjEuMiA2MS43IDIxLjJzNTIuNC0xMi44IDYxLjctMjEuMmMxMC05LjEgMjUuMy0xOC44IDQ0LjEtMTguOCAuNiAwIDEuMiAwIDEuOCAwIC4zIDAgLjYgMCAxIDBMMzM2IDBjMjYuNSAwIDQ4IDIxLjUgNDggNDhsMCA5Ny41YzAgOS41IDIuOCAxOC43IDguMSAyNi42bDQ3LjkgNzEuOGM1LjMgNy45IDguMSAxNy4xIDguMSAyNi42TDQ0OCA0NjRjMCAyNi41LTIxLjUgNDgtNDggNDhsLTEwNCAwYy0yNi41IDAtNDgtMjEuNS00OC00OGwwLTE3MC4xYzAtMy45IC41LTcuOCAxLjQtMTEuNkwzMDMuNiA2NS40QzI4NS45IDc3LjIgMjU5LjggODggMjI0IDg4cy02MS45LTEwLjgtNzkuNi0yMi42bDU0LjIgMjE2LjhjMSAzLjggMS40IDcuNyAxLjQgMTEuNnpNOTYgNDU2YTQwIDQwIDAgMSAwIDAtODAgNDAgNDAgMCAxIDAgMCA4MHpNNjMuNSAyNTUuNWMtNC43IDQuNy00LjcgMTIuMyAwIDE3TDc5IDI4OCA2My41IDMwMy41Yy00LjcgNC43LTQuNyAxMi4zIDAgMTdzMTIuMyA0LjcgMTcgMEw5NiAzMDUgMTExLjUgMzIwLjVjNC43IDQuNyAxMi4zIDQuNyAxNyAwczQuNy0xMi4zIDAtMTdMMTEzIDI4OCAxMjguNSAyNzIuNWM0LjctNC43IDQuNy0xMi4zIDAtMTdzLTEyLjMtNC43LTE3IDBMOTYgMjcxIDgwLjUgMjU1LjVjLTQuNy00LjctMTIuMy00LjctMTcgMHpNMzA0IDI4MGwwIDQwYzAgOC44IDcuMiAxNiAxNiAxNmw0MCAwYzEzLjMgMCAyNC0xMC43IDI0LTI0cy0xMC43LTI0LTI0LTI0bC04IDAgMC04YzAtMTMuMy0xMC43LTI0LTI0LTI0cy0yNCAxMC43LTI0IDI0eiJdfSxyY2U9e3ByZWZpeDoiZmFzIixpY29uTmFtZToibWFydGluaS1nbGFzcy1lbXB0eSIsaWNvbjpbNTEyLDUxMixbImdsYXNzLW1hcnRpbmkiXSwiZjAwMCIsIk0zMiAzMkMxOS4xIDMyIDcuNCAzOS44IDIuNCA1MS44Uy4yIDc3LjUgOS40IDg2LjZsMjE0LjYgMjE0LjYgMCAxNDYuNy02NCAwYy0xNy43IDAtMzIgMTQuMy0zMiAzMnMxNC4zIDMyIDMyIDMybDE5MiAwYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMybC02NCAwIDAtMTQ2LjcgMjE0LjYtMjE0LjZjOS4yLTkuMiAxMS45LTIyLjkgNi45LTM0LjlTNDkyLjkgMzIgNDgwIDMyTDMyIDMyek0yNTYgMjQyLjdMMTA5LjMgOTYgNDAyLjcgOTYgMjU2IDI0Mi43eiJdfSxReXQ9cmNlLEp5dD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJtYWduZXQiLGljb246WzQ0OCw1MTIsWzEyOTUyMl0sImYwNzYiLCJNMCAxNzZMMCAyODhDMCA0MTEuNyAxMDAuMyA1MTIgMjI0IDUxMlM0NDggNDExLjcgNDQ4IDI4OGwwLTExMi0xMjggMCAwIDExMmMwIDUzLTQzIDk2LTk2IDk2cy05Ni00My05Ni05NmwwLTExMi0xMjggMHptMC00OGwxMjggMCAwLTY0YzAtMTcuNy0xNC4zLTMyLTMyLTMyTDMyIDMyQzE0LjMgMzIgMCA0Ni4zIDAgNjRsMCA2NHptMzIwIDBsMTI4IDAgMC02NGMwLTE3LjctMTQuMy0zMi0zMi0zMmwtNjQgMGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJsMCA2NHoiXX0sS3l0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InJvYWQtYmFycmllciIsaWNvbjpbNjQwLDUxMixbXSwiZTU2MiIsIk0zMiAzMkMxNC4zIDMyIDAgNDYuMyAwIDY0TDAgNDQ4YzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJMNjQgMjY2LjMgMTQ5LjIgOTYgNjQgOTYgNjQgNjRjMC0xNy43LTE0LjMtMzItMzItMzJ6TTQwNS4yIDk2bC03NC4zIDAtNS40IDEwLjctOTAuNiAxODEuMyA3NC4zIDAgNS40LTEwLjcgOTAuNi0xODEuM3pNMzYyLjggMjg4bDc0LjMgMCA1LjQtMTAuNyA5MC42LTE4MS4zLTc0LjMgMC01LjQgMTAuNy05MC42IDE4MS4zek0yMDIuOCA5NmwtNS40IDEwLjctOTAuNiAxODEuMyA3NC4zIDAgNS40LTEwLjcgOTAuNi0xODEuMy03NC4zIDB6bTI4OCAxOTJsODUuMiAwIDAgMTYwYzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJsMC0zODRjMC0xNy43LTE0LjMtMzItMzItMzJzLTMyIDE0LjMtMzIgMzJsMCA1My43LTg1LjIgMTcwLjN6Il19LGljZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJjb21wYXNzLWRyYWZ0aW5nIixpY29uOls1MTIsNTEyLFsiZHJhZnRpbmctY29tcGFzcyJdLCJmNTY4IiwiTTk5LjMgMjU2LjFsNjkuNC0xMTkuOWMtNS42LTEyLjItOC44LTI1LjgtOC44LTQwLjIgMC01MyA0My05NiA5Ni05NnM5NiA0MyA5NiA5NmMwIDE0LjMtMy4xIDI3LjktOC44IDQwLjJsNDQuNCA3Ni43Yy0yMy4xIDI2LTUzLjcgNDUuMS04OC40IDUzLjhMMjU2IDE5MS45IDE4Ny45IDMwOS41YzIxLjUgNi44IDQ0LjMgMTAuNSA2OC4xIDEwLjUgNzAuNyAwIDEzMy44LTMyLjcgMTc0LjktODQgMTEuMS0xMy44IDMxLjItMTYgNDUtNXMxNiAzMS4yIDUgNDVjLTUyLjcgNjUuOC0xMzMuOSAxMDgtMjI0LjggMTA4LTM1LjQgMC02OS40LTYuNC0xMDAuNy0xOC4xTDk4LjcgNDYzLjdDOTQgNDcxLjggODcgNDc4LjQgNzguNiA0ODIuNkwyMy4yIDUxMC4zYy01IDIuNS0xMC45IDIuMi0xNS42LS43UzAgNTAxLjUgMCA0OTZsMC01NS40YzAtOC40IDIuMi0xNi43IDYuNS0yNC4xbDYwLTEwMy43Yy0xMi44LTExLjItMjQuNi0yMy41LTM1LjMtMzYuOC0xMS4xLTEzLjgtOC44LTMzLjkgNS00NXMzMy45LTguOCA0NSA1YzUuNyA3LjEgMTEuOCAxMy44IDE4LjIgMjAuMXpNMzgxLjEgNDA3LjljMzIuNS0xMyA2Mi40LTMxIDg4LjktNTIuOWwzNS42IDYxLjVjNC4yIDcuMyA2LjUgMTUuNiA2LjUgMjQuMWwwIDU1LjRjMCA1LjUtMi45IDEwLjctNy42IDEzLjZzLTEwLjYgMy4yLTE1LjYgLjdsLTU1LjQtMjcuN2MtOC40LTQuMi0xNS40LTEwLjgtMjAuMS0xOC45bC0zMi4zLTU1Ljh6TTI1NiAxMjhhMzIgMzIgMCAxIDAgMC02NCAzMiAzMiAwIDEgMCAwIDY0eiJdfSxld3Q9aWNlLHR3dD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJzcXVhcmUtcGVyc29uLWNvbmZpbmVkIixpY29uOls0NDgsNTEyLFtdLCJlNTc3IiwiTTY0IDMyQzI4LjcgMzIgMCA2MC43IDAgOTZMMCA0MTZjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMzIwIDBjMzUuMyAwIDY0LTI4LjcgNjQtNjRsMC0zMjBjMC0zNS4zLTI4LjctNjQtNjQtNjRMNjQgMzJ6bTk2IDExMmE0OCA0OCAwIDEgMSA5NiAwIDQ4IDQ4IDAgMSAxIC05NiAwem04MCAxMDRjMC0zMC45IDI1LjEtNTYgNTYtNTZzNTYgMjUuMSA1NiA1NmwwIDEwMi4xYzAgMzYuNC0yOS41IDY1LjktNjUuOSA2NS45LTE3LjUgMC0zNC4zLTYuOS00Ni42LTE5LjNsLTU0LjctNTQuNy0yOC4xIDU2LjNjLTcuOSAxNS44LTI3LjEgMjIuMi00Mi45IDE0LjNzLTIyLjItMjcuMS0xNC4zLTQyLjlsNDgtOTZjNC42LTkuMiAxMy4zLTE1LjYgMjMuNS0xNy4zczIwLjUgMS43IDI3LjggOWw0MS40IDQxLjQgMC01OC43eiJdfSxyd3Q9e3ByZWZpeDoiZmFzIixpY29uTmFtZToicGxhdGUtd2hlYXQiLGljb246WzUxMiw1MTIsW10sImU1NWEiLCJNMTc2IDMyYzQ0LjIgMCA4MCAzNS44IDgwIDgwbDAgMTZjMCA4LjgtNy4yIDE2LTE2IDE2LTQ0LjIgMC04MC0zNS44LTgwLTgwbDAtMTZjMC04LjggNy4yLTE2IDE2LTE2ek01NiA2NGw0OCAwYzEzLjMgMCAyNCAxMC43IDI0IDI0cy0xMC43IDI0LTI0IDI0bC00OCAwYy0xMy4zIDAtMjQtMTAuNy0yNC0yNFM0Mi43IDY0IDU2IDY0ek0yNCAxMzZsMTEyIDBjMTMuMyAwIDI0IDEwLjcgMjQgMjRzLTEwLjcgMjQtMjQgMjRMMjQgMTg0Yy0xMy4zIDAtMjQtMTAuNy0yNC0yNHMxMC43LTI0IDI0LTI0em04IDk2YzAtMTMuMyAxMC43LTI0IDI0LTI0bDQ4IDBjMTMuMyAwIDI0IDEwLjcgMjQgMjRzLTEwLjcgMjQtMjQgMjRsLTQ4IDBjLTEzLjMgMC0yNC0xMC43LTI0LTI0ek0yNzIgNDhjMC04LjggNy4yLTE2IDE2LTE2IDQ0LjIgMCA4MCAzNS44IDgwIDgwbDAgMTZjMCA4LjgtNy4yIDE2LTE2IDE2LTQ0LjIgMC04MC0zNS44LTgwLTgwbDAtMTZ6TTQwMCAzMmM0NC4yIDAgODAgMzUuOCA4MCA4MGwwIDE2YzAgOC44LTcuMiAxNi0xNiAxNi00NC4yIDAtODAtMzUuOC04MC04MGwwLTE2YzAtOC44IDcuMi0xNiAxNi0xNnptODAgMTYwbDAgMTZjMCA0NC4yLTM1LjggODAtODAgODAtOC44IDAtMTYtNy4yLTE2LTE2bDAtMTZjMC00NC4yIDM1LjgtODAgODAtODAgOC44IDAgMTYgNy4yIDE2IDE2ek0zNTIgMTc2YzguOCAwIDE2IDcuMiAxNiAxNmwwIDE2YzAgNDQuMi0zNS44IDgwLTgwIDgwLTguOCAwLTE2LTcuMi0xNi0xNmwwLTE2YzAtNDQuMiAzNS44LTgwIDgwLTgwem0tOTYgMTZsMCAxNmMwIDQ0LjItMzUuOCA4MC04MCA4MC04LjggMC0xNi03LjItMTYtMTZsMC0xNmMwLTQ0LjIgMzUuOC04MCA4MC04MCA4LjggMCAxNiA3LjIgMTYgMTZ6TTMuNSAzNDcuNkMxLjYgMzMyLjkgMTMgMzIwIDI3LjggMzIwbDQ1Ni40IDBjMTQuOCAwIDI2LjIgMTIuOSAyNC40IDI3LjYtNi4zIDUwLjItNDQuNCA4OS40LTkyLjYgOTguNGwwIDJjMCAxNy43LTE0LjMgMzItMzIgMzJsLTI1NiAwYy0xNy43IDAtMzItMTQuMy0zMi0zMmwwLTJjLTQ4LjItOS04Ni4zLTQ4LjItOTIuNS05OC40eiJdfSxhY2U9e3ByZWZpeDoiZmFzIixpY29uTmFtZToic2lnbi1oYW5naW5nIixpY29uOls1MTIsNTEyLFsic2lnbiJdLCJmNGQ5IiwiTTk2IDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJsMCAzMiAzNTIgMGMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMmwtMzUyIDAgMCAzNTJjMCAxNy43LTE0LjMgMzItMzIgMzJzLTMyLTE0LjMtMzItMzJsMC0zNTItMzIgMEMxNC4zIDEyOCAwIDExMy43IDAgOTZTMTQuMyA2NCAzMiA2NGwzMiAwIDAtMzJDNjQgMTQuMyA3OC4zIDAgOTYgMHpNMjA4IDE3NmwyNDAgMGMxNy43IDAgMzIgMTQuMyAzMiAzMmwwIDE0NGMwIDE3LjctMTQuMyAzMi0zMiAzMmwtMjQwIDBjLTE3LjcgMC0zMi0xNC4zLTMyLTMybDAtMTQ0YzAtMTcuNyAxNC4zLTMyIDMyLTMyeiJdfSxpd3Q9YWNlLG5jZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJjYXItYmF0dGVyeSIsaWNvbjpbNTEyLDUxMixbImJhdHRlcnktY2FyIl0sImY1ZGYiLCJNODAgNjRjMC0xNy43IDE0LjMtMzIgMzItMzJsNjQgMGMxNy43IDAgMzIgMTQuMyAzMiAzMmw5NiAwYzAtMTcuNyAxNC4zLTMyIDMyLTMybDY0IDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJsMTYgMGMzNS4zIDAgNjQgMjguNyA2NCA2NGwwIDI1NmMwIDM1LjMtMjguNyA2NC02NCA2NEw2NCA0NDhjLTM1LjMgMC02NC0yOC43LTY0LTY0TDAgMTI4QzAgOTIuNyAyOC43IDY0IDY0IDY0bDE2IDB6TTM5MiAxODRjMC0xMy4zLTEwLjctMjQtMjQtMjRzLTI0IDEwLjctMjQgMjRsMCAzMi0zMiAwYy0xMy4zIDAtMjQgMTAuNy0yNCAyNHMxMC43IDI0IDI0IDI0bDMyIDAgMCAzMmMwIDEzLjMgMTAuNyAyNCAyNCAyNHMyNC0xMC43IDI0LTI0bDAtMzIgMzIgMGMxMy4zIDAgMjQtMTAuNyAyNC0yNHMtMTAuNy0yNC0yNC0yNGwtMzIgMCAwLTMyek02NCAyNDBjMCAxMy4zIDEwLjcgMjQgMjQgMjRsMTEyIDBjMTMuMyAwIDI0LTEwLjcgMjQtMjRzLTEwLjctMjQtMjQtMjRMODggMjE2Yy0xMy4zIDAtMjQgMTAuNy0yNCAyNHoiXX0sYXd0PW5jZSxtRD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJzaGlydCIsaWNvbjpbNjQwLDUxMixbMTI4MDg1LCJ0LXNoaXJ0IiwidHNoaXJ0Il0sImY1NTMiLCJNMzIwLjIgMTEyYzQ0LjIgMCA4MC0zNS44IDgwLTgwbDUzLjUgMGMxNyAwIDMzLjMgNi43IDQ1LjMgMTguN0w2MTcuNiAxNjkuNGMxMi41IDEyLjUgMTIuNSAzMi44IDAgNDUuM2wtNTAuNyA1MC43Yy0xMi41IDEyLjUtMzIuOCAxMi41LTQ1LjMgMGwtNDEuNC00MS40IDAgMjI0YzAgMzUuMy0yOC43IDY0LTY0IDY0bC0xOTIgMGMtMzUuMyAwLTY0LTI4LjctNjQtNjRsMC0yMjQtNDEuNCA0MS40Yy0xMi41IDEyLjUtMzIuOCAxMi41LTQ1LjMgMEwyMi45IDIxNC42Yy0xMi41LTEyLjUtMTIuNS0zMi44IDAtNDUuM0wxNDEuNSA1MC43YzEyLTEyIDI4LjMtMTguNyA0NS4zLTE4LjdsNTMuNSAwYzAgNDQuMiAzNS44IDgwIDgwIDgweiJdfSxud3Q9bUQsb3d0PW1ELHN3dD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJwYXJhZ3JhcGgiLGljb246WzQ0OCw1MTIsWzE4Ml0sImYxZGQiLCJNMTYwIDBMNDE2IDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJsLTMyIDAgMCA0MTZjMCAxNy43LTE0LjMgMzItMzIgMzJzLTMyLTE0LjMtMzItMzJsMC00MTYtNDggMCAwIDQxNmMwIDE3LjctMTQuMyAzMi0zMiAzMnMtMzItMTQuMy0zMi0zMmwwLTE2MC00OCAwQzcxLjYgMzIwIDAgMjQ4LjQgMCAxNjBTNzEuNiAwIDE2MCAweiJdfSxvY2U9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZW52ZWxvcGVzLWJ1bGsiLGljb246WzU3Niw1MTIsWyJtYWlsLWJ1bGsiXSwiZjY3NCIsIk0xMTIgMEM4NS41IDAgNjQgMjEuNSA2NCA0OGwwIDE2MCA4MCAwIDAtMzJjMC01MyA0My05NiA5Ni05NmwyMDggMCAwLTMyYzAtMjYuNS0yMS41LTQ4LTQ4LTQ4TDExMiAwek0yNDAgMTI4Yy0yNi41IDAtNDggMjEuNS00OCA0OGwwIDMyIDgwIDBjNTMgMCA5NiA0MyA5NiA5NmwwIDExMiAxNjAgMGMyNi41IDAgNDgtMjEuNSA0OC00OGwwLTE5MmMwLTI2LjUtMjEuNS00OC00OC00OGwtMjg4IDB6bTIwMCA2NGw0OCAwYzEzLjMgMCAyNCAxMC43IDI0IDI0bDAgNDhjMCAxMy4zLTEwLjcgMjQtMjQgMjRsLTQ4IDBjLTEzLjMgMC0yNC0xMC43LTI0LTI0bDAtNDhjMC0xMy4zIDEwLjctMjQgMjQtMjR6TTQ4IDI1NmMtMjYuNSAwLTQ4IDIxLjUtNDggNDhsMCAxMC40IDE1Ni42IDg2LjJjMS4xIC42IDIuMiAuOSAzLjQgLjlzMi40LS4zIDMuNC0uOUwzMjAgMzE0LjQgMzIwIDMwNGMwLTI2LjUtMjEuNS00OC00OC00OEw0OCAyNTZ6TTMyMCAzNjkuMkwxODYuNiA0NDIuNmMtOC4xIDQuNS0xNy4zIDYuOC0yNi42IDYuOHMtMTguNC0yLjQtMjYuNi02LjhMMCAzNjkuMiAwIDQ2NGMwIDI2LjUgMjEuNSA0OCA0OCA0OGwyMjQgMGMyNi41IDAgNDgtMjEuNSA0OC00OGwwLTk0Ljh6Il19LGx3dD1vY2UsY3d0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6Imd1aXRhciIsaWNvbjpbNTEyLDUxMixbXSwiZjdhNiIsIk00NjUgN2MtOS40LTkuNC0yNC42LTkuNC0zMy45IDBMMzgzIDU1Yy0yLjQgMi40LTQuMyA1LjMtNS41IDguNWwtMTUuNCA0MS03Ny41IDc3LjZjLTQ1LjEtMjkuNC05OS4zLTMwLjItMTMxIDEuNi0xMSAxMS0xOCAyNC42LTIxLjQgMzkuNi0zLjcgMTYuNi0xOS4xIDMwLjctMzYuMSAzMS42LTI1LjYgMS4zLTQ5LjMgMTAuNy02Ny4zIDI4LjYtNDQuOCA0NC44LTM2LjQgMTI1LjggMTguNyAxODAuOVMxODMuNiA1MjggMjI4LjQgNDgzLjJjMTcuOS0xNy45IDI3LjQtNDEuNyAyOC42LTY3LjMgLjktMTcgMTUtMzIuMyAzMS42LTM2LjEgMTUtMy40IDI4LjYtMTAuNSAzOS42LTIxLjQgMzEuOC0zMS44IDMxLTg1LjkgMS42LTEzMWw3Ny42LTc3LjYgNDEtMTUuNGMzLjItMS4yIDYuMS0zLjEgOC41LTUuNWw0OC00OGM5LjQtOS40IDkuNC0yNC42IDAtMzMuOUw0NjUgN3pNMjA4IDI1NmE0OCA0OCAwIDEgMSAwIDk2IDQ4IDQ4IDAgMSAxIDAtOTZ6Il19LGR3dD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJzdWl0Y2FzZSIsaWNvbjpbNTEyLDUxMixbMTI5NTIzXSwiZjBmMiIsIk0yMDAgNDhsMTEyIDBjNC40IDAgOCAzLjYgOCA4bDAgNDAtMTI4IDAgMC00MGMwLTQuNCAzLjYtOCA4LTh6bS01NiA4bDAgNDI0IDIyNCAwIDAtNDI0YzAtMzAuOS0yNS4xLTU2LTU2LTU2TDIwMCAwYy0zMC45IDAtNTYgMjUuMS01NiA1NnpNNDE2IDk2bDAgMzg0IDMyIDBjMzUuMyAwIDY0LTI4LjcgNjQtNjRsMC0yNTZjMC0zNS4zLTI4LjctNjQtNjQtNjRsLTMyIDB6TTk2IDQ4MGwwLTM4NC0zMiAwQzI4LjcgOTYgMCAxMjQuNyAwIDE2MEwwIDQxNmMwIDM1LjMgMjguNyA2NCA2NCA2NGwzMiAweiJdfSxzY2U9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiY2lyY2xlLXVwIixpY29uOls1MTIsNTEyLFs2MTQ2NywiYXJyb3ctYWx0LWNpcmNsZS11cCJdLCJmMzViIiwiTTI1NiA1MTJhMjU2IDI1NiAwIDEgMCAwLTUxMiAyNTYgMjU2IDAgMSAwIDAgNTEyem0xMS4zLTM4Ny4zbDEwNCAxMDRjNC42IDQuNiA1LjkgMTEuNSAzLjUgMTcuNFMzNjYuNSAyNTYgMzYwIDI1NmwtNTYgMCAwIDk2YzAgMTcuNy0xNC4zIDMyLTMyIDMybC0zMiAwYy0xNy43IDAtMzItMTQuMy0zMi0zMmwwLTk2LTU2IDBjLTYuNSAwLTEyLjMtMy45LTE0LjgtOS45cy0xLjEtMTIuOSAzLjUtMTcuNGwxMDQtMTA0YzYuMi02LjIgMTYuNC02LjIgMjIuNiAweiJdfSx1d3Q9c2NlLHB3dD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJmIixpY29uOlszMjAsNTEyLFsxMDJdLCI0NiIsIk0zMiAzMkMxNC4zIDMyIDAgNDYuMyAwIDY0TDAgNDQ4YzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJsMC0xNjAgMTYwIDBjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJsLTE2MCAwIDAtMTI4IDIyNCAwYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMyTDMyIDMyeiJdfSxod3Q9e3ByZWZpeDoiZmFzIixpY29uTmFtZToieG1hcmtzLWxpbmVzIixpY29uOls2NDAsNTEyLFtdLCJlNTlhIiwiTTMyIDMyQzE0LjMgMzIgMCA0Ni4zIDAgNjRTMTQuMyA5NiAzMiA5Nmw1NzYgMGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMkwzMiAzMnptMCAzODRjLTE3LjcgMC0zMiAxNC4zLTMyIDMyczE0LjMgMzIgMzIgMzJsNTc2IDBjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJMMzIgNDE2ek03IDE2N2MtOS40IDkuNC05LjQgMjQuNiAwIDMzLjlsNTUgNTUtNTUgNTVjLTkuNCA5LjQtOS40IDI0LjYgMCAzMy45czI0LjYgOS40IDMzLjkgMGw1NS01NSA1NSA1NWM5LjQgOS40IDI0LjYgOS40IDMzLjkgMHM5LjQtMjQuNiAwLTMzLjlsLTU1LTU1IDU1LTU1YzkuNC05LjQgOS40LTI0LjYgMC0zMy45cy0yNC42LTkuNC0zMy45IDBsLTU1IDU1LTU1LTU1Yy05LjQtOS40LTI0LjYtOS40LTMzLjkgMHpNMjY1IDE2N2MtOS40LTkuNC0yNC42LTkuNC0zMy45IDBzLTkuNCAyNC42IDAgMzMuOWw1NSA1NS01NSA1NWMtOS40IDkuNC05LjQgMjQuNiAwIDMzLjlzMjQuNiA5LjQgMzMuOSAwbDU1LTU1IDU1IDU1YzkuNCA5LjQgMjQuNiA5LjQgMzMuOSAwczkuNC0yNC42IDAtMzMuOWwtNTUtNTUgNTUtNTVjOS40LTkuNCA5LjQtMjQuNiAwLTMzLjlzLTI0LjYtOS40LTMzLjkgMGwtNTUgNTUtNTUtNTV6TTQ1NSAxNjdjLTkuNCA5LjQtOS40IDI0LjYgMCAzMy45bDU1IDU1LTU1IDU1Yy05LjQgOS40LTkuNCAyNC42IDAgMzMuOXMyNC42IDkuNCAzMy45IDBsNTUtNTUgNTUgNTVjOS40IDkuNCAyNC42IDkuNCAzMy45IDBzOS40LTI0LjYgMC0zMy45bC01NS01NSA1NS01NWM5LjQtOS40IDkuNC0yNC42IDAtMzMuOXMtMjQuNi05LjQtMzMuOSAwbC01NSA1NS01NS01NWMtOS40LTkuNC0yNC42LTkuNC0zMy45IDB6Il19LGxjZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJlYXJ0aC1vY2VhbmlhIixpY29uOls1MTIsNTEyLFsiZ2xvYmUtb2NlYW5pYSJdLCJlNDdiIiwiTTI1NiA1MTJhMjU2IDI1NiAwIDEgMCAwLTUxMiAyNTYgMjU2IDAgMSAwIDAgNTEyek0xOTIgMTUwLjZjMC0xMi41IDEwLjEtMjIuNiAyMi42LTIyLjZsNDEuNCAwYzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMybC0xOC43IDBjLTguNSAwLTE2LjYtMy40LTIyLjYtOS40bC0xNi0xNmMtNC4yLTQuMi02LjYtMTAtNi42LTE2ek00MzIgMjU2YzguOCAwIDE2IDcuMiAxNiAxNmwwIDMyYzAgOC44LTcuMiAxNi0xNiAxNnMtMTYtNy4yLTE2LTE2bDAtMzJjMC04LjggNy4yLTE2IDE2LTE2ek00MTEuMyAzNzkuM2wtMzIgMzJjLTYuMiA2LjItMTYuNCA2LjItMjIuNiAwcy02LjItMTYuNCAwLTIyLjZsMzItMzJjNi4yLTYuMiAxNi40LTYuMiAyMi42IDBzNi4yIDE2LjQgMCAyMi42ek0yMjQgNDMyYzAtOC44IDcuMi0xNiAxNi0xNmwzMiAwYzguOCAwIDE2IDcuMiAxNiAxNnMtNy4yIDE2LTE2IDE2bC0zMiAwYy04LjggMC0xNi03LjItMTYtMTZ6bS05Ni04MGMtMTcuNyAwLTMyLTE0LjMtMzItMzJsMC0xOC43YzAtOC41IDMuNC0xNi42IDkuNC0yMi42bDQ4LTQ4YzQuMi00LjIgMTAtNi42IDE2LTYuNmw2LjYgMGM4LjggMCAxNiA3LjIgMTYgMTZzNy4yIDE2IDE2IDE2IDE2LTcuMiAxNi0xNiA3LjItMTYgMTYtMTZsNi42IDBjNiAwIDExLjggMi40IDE2IDYuNmw0OCA0OGM2IDYgOS40IDE0LjEgOS40IDIyLjZsMCA1MC43YzAgMTcuNy0xNC4zIDMyLTMyIDMybC01MC43IDBjLTguNSAwLTE2LjYtMy40LTIyLjYtOS40bC0xMy4zLTEzLjNjLTYtNi0xNC4xLTkuNC0yMi42LTkuNEwxMjggMzUyeiJdfSxmd3Q9bGNlLG13dD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJjb21tZW50LXNsYXNoIixpY29uOls1NzYsNTEyLFtdLCJmNGIzIiwiTTQxLTI1QzMxLjYtMzQuMyAxNi40LTM0LjMgNy0yNVMtMi4zLS40IDcgOUw1MzUgNTM3YzkuNCA5LjQgMjQuNiA5LjQgMzMuOSAwczkuNC0yNC42IDAtMzMuOWwtOTYuNi05Ni42YzQ0LjQtNDMuMiA3MS42LTEwMS44IDcxLjYtMTY2LjUgMC0xMzIuNS0xMTQuNi0yNDAtMjU2LTI0MC02MyAwLTEyMC44IDIxLjQtMTY1LjQgNTYuOEw0MS0yNXptMTkuNCAxNTVDNDIuMiAxNjMgMzIgMjAwLjMgMzIgMjM5LjkgMzIgMjk0LjIgNTEuMiAzNDQuMiA4My42IDM4NC40TDM0LjggNDc2LjdjLTQuOCA5LTMuMyAyMCAzLjYgMjcuNVM1Ni4xIDUxNCA2NS41IDUxMGwxMTguNC01MC43YzMxLjggMTMuMyA2Ny4xIDIwLjcgMTA0LjEgMjAuNyAzNi40IDAgNzAuOS03LjEgMTAyLjMtMTkuOUw2MC4zIDEzMC4xeiJdfSxnd3Q9e3ByZWZpeDoiZmFzIixpY29uTmFtZToicGxheSIsaWNvbjpbNDQ4LDUxMixbOTY1NF0sImYwNGIiLCJNOTEuMiAzNi45Yy0xMi40LTYuOC0yNy40LTYuNS0zOS42IC43UzMyIDU3LjkgMzIgNzJsMCAzNjhjMCAxNC4xIDcuNSAyNy4yIDE5LjYgMzQuNHMyNy4yIDcuNSAzOS42IC43bDMzNi0xODRjMTIuOC03IDIwLjgtMjAuNSAyMC44LTM1LjFzLTgtMjguMS0yMC44LTM1LjFsLTMzNi0xODR6Il19LGJ3dD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJ2aWFsLWNpcmNsZS1jaGVjayIsaWNvbjpbNTEyLDUxMixbXSwiZTU5NiIsIk0zMiAzMkMzMiAxNC4zIDQ2LjMgMCA2NCAwTDI4OCAwYzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMybDAgMTYxLjRjLTY2LjEgMzAuMy0xMTIgOTcuMS0xMTIgMTc0LjYgMCAzOS43IDEyIDc2LjYgMzIuNyAxMDcuMi0xMC4zIDMuMS0yMS4zIDQuOC0zMi43IDQuOC02MS45IDAtMTEyLTUwLjEtMTEyLTExMkw2NCA2NEM0Ni4zIDY0IDMyIDQ5LjcgMzIgMzJ6bTk2IDMybDAgMTI4IDk2IDAgMC0xMjgtOTYgMHptOTYgMzM2YTE0NCAxNDQgMCAxIDEgMjg4IDAgMTQ0IDE0NCAwIDEgMSAtMjg4IDB6bTIwMS40LTYwLjljLTcuMS01LjItMTcuMi0zLjYtMjIuNCAzLjVsLTUzIDcyLjktMjYuOC0yNi44Yy02LjItNi4yLTE2LjQtNi4yLTIyLjYgMHMtNi4yIDE2LjQgMCAyMi42bDQwIDQwYzMuMyAzLjMgNy45IDUgMTIuNiA0LjZzOC45LTIuOCAxMS43LTYuNWw2NC04OGM1LjItNy4xIDMuNi0xNy4yLTMuNS0yMi4zeiJdfSx2d3Q9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiYnJpZGdlLWNpcmNsZS1jaGVjayIsaWNvbjpbNTc2LDUxMixbXSwiZTRjOSIsIk0zMiAzMkMxNC4zIDMyIDAgNDYuMyAwIDY0UzE0LjMgOTYgMzIgOTZsOCAwIDAgNjQtNDAgMCAwIDExMmMzNy42IDkuNCA2NCA0My4yIDY0IDgybDAgOTRjMCAxNy43IDE0LjMgMzIgMzIgMzJsMzIgMGMxNy43IDAgMzItMTQuMyAzMi0zMmwwLTY0YzAtNTMgNDMtOTYgOTYtOTYgNi40IDAgMTIuNyAuNiAxOC43IDEuOCAzNC43LTQ5LjUgOTIuMi04MS44IDE1Ny4zLTgxLjggMjguNiAwIDU1LjYgNi4yIDgwIDE3LjRsMC02NS40LTQwIDAgMC02NCA4IDBjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJMMzIgMzJ6TTQyNCA5NmwwIDY0LTgwIDAgMC02NCA4MCAwek0yOTYgOTZsMCA2NC04MCAwIDAtNjQgODAgMHpNODggOTZsODAgMCAwIDY0LTgwIDAgMC02NHpNNTc2IDQwMGExNDQgMTQ0IDAgMSAwIC0yODggMCAxNDQgMTQ0IDAgMSAwIDI4OCAwem0tODYuNi02MC45YzcuMSA1LjIgOC43IDE1LjIgMy41IDIyLjNsLTY0IDg4Yy0yLjggMy44LTcgNi4yLTExLjcgNi41cy05LjMtMS4zLTEyLjYtNC42bC00MC00MGMtNi4yLTYuMi02LjItMTYuNCAwLTIyLjZzMTYuNC02LjIgMjIuNiAwbDI2LjggMjYuOCA1My03Mi45YzUuMi03LjEgMTUuMi04LjcgMjIuNC0zLjV6Il19LHh3dD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJjZWRpLXNpZ24iLGljb246WzM4NCw1MTIsW10sImUwZGYiLCJNMjMyIDMyYzAtMTMuMy0xMC43LTI0LTI0LTI0cy0yNCAxMC43LTI0IDI0bDAgMjYuNUM4OC44IDczLjkgMTYgMTU2LjQgMTYgMjU2Uzg4LjggNDM4LjEgMTg0IDQ1My41bDAgMjYuNWMwIDEzLjMgMTAuNyAyNCAyNCAyNHMyNC0xMC43IDI0LTI0bDAtMjQuNmM0Ni44LTMuNyA4OS4xLTIzLjYgMTIxLjMtNTMuOSAxMi45LTEyLjEgMTMuNC0zMi40IDEuMy00NS4ycy0zMi40LTEzLjQtNDUuMi0xLjNjLTIwLjcgMTkuNi00Ny42IDMyLjctNzcuMyAzNi4ybDAtMjcwLjFjMjkuOCAzLjUgNTYuNiAxNi42IDc3LjMgMzYuMiAxMi45IDEyLjEgMzMuMSAxMS41IDQ1LjItMS4zczExLjUtMzMuMS0xLjMtNDUuMkMzMjEuMSA4MC4yIDI3OC44IDYwLjMgMjMyIDU2LjZMMjMyIDMyem0tNDggOTEuOGwwIDI2NC40QzEyNC4zIDM3My44IDgwIDMyMC4xIDgwIDI1NnM0NC4zLTExNy44IDEwNC0xMzIuMnoiXX0seXd0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InB1enpsZS1waWVjZSIsaWNvbjpbNTEyLDUxMixbMTI5NTEzXSwiZjEyZSIsIk0yMjQgMGMzNS4zIDAgNjQgMjEuNSA2NCA0OCAwIDEwLjQtNC40IDIwLTEyIDI3LjktNi42IDYuOS0xMiAxNS4zLTEyIDI0LjkgMCAxNSAxMi4yIDI3LjIgMjcuMiAyNy4ybDQ0LjggMGMyNi41IDAgNDggMjEuNSA0OCA0OGwwIDQ0LjhjMCAxNSAxMi4yIDI3LjIgMjcuMiAyNy4yIDkuNSAwIDE4LTUuNCAyNC45LTEyIDcuOS03LjUgMTcuNS0xMiAyNy45LTEyIDI2LjUgMCA0OCAyOC43IDQ4IDY0cy0yMS41IDY0LTQ4IDY0Yy0xMC40IDAtMjAuMS00LjQtMjcuOS0xMi02LjktNi42LTE1LjMtMTItMjQuOS0xMi0xNSAwLTI3LjIgMTIuMi0yNy4yIDI3LjJMMzg0IDQ2NGMwIDI2LjUtMjEuNSA0OC00OCA0OGwtNTYuOCAwYy0xMi44IDAtMjMuMi0xMC40LTIzLjItMjMuMiAwLTkuMiA1LjgtMTcuMyAxMy4yLTIyLjggMTEuNi04LjcgMTguOC0yMC43IDE4LjgtMzQgMC0yNi41LTI4LjctNDgtNjQtNDhzLTY0IDIxLjUtNjQgNDhjMCAxMy4zIDcuMiAyNS4zIDE4LjggMzQgNy40IDUuNSAxMy4yIDEzLjUgMTMuMiAyMi44IDAgMTIuOC0xMC40IDIzLjItMjMuMiAyMy4yTDQ4IDUxMmMtMjYuNSAwLTQ4LTIxLjUtNDgtNDhMMCAzNDMuMmMwLTEyLjggMTAuNC0yMy4yIDIzLjItMjMuMiA5LjIgMCAxNy4zIDUuOCAyMi44IDEzLjIgOC43IDExLjYgMjAuNyAxOC44IDM0IDE4LjggMjYuNSAwIDQ4LTI4LjcgNDgtNjRzLTIxLjUtNjQtNDgtNjRjLTEzLjMgMC0yNS4zIDcuMi0zNCAxOC44LTUuNSA3LjQtMTMuNSAxMy4yLTIyLjggMTMuMi0xMi44IDAtMjMuMi0xMC40LTIzLjItMjMuMkwwIDE3NmMwLTI2LjUgMjEuNS00OCA0OC00OGwxMDguOCAwYzE1IDAgMjcuMi0xMi4yIDI3LjItMjcuMiAwLTkuNS01LjQtMTgtMTItMjQuOS03LjUtNy45LTEyLTE3LjUtMTItMjcuOSAwLTI2LjUgMjguNy00OCA2NC00OHoiXX0sd3d0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImhlbG1ldC11biIsaWNvbjpbNTEyLDUxMixbXSwiZTUwMyIsIk00NzkuNSAyMjRDNDcxLjIgOTguOSAzNjcuMiAwIDI0MCAwIDEwNy41IDAgMCAxMDcuNSAwIDI0MGwwIDU2LjNDMCAzNDQuOCAzOS4yIDM4NCA4Ny43IDM4NGwxMjcuMyAwIDEyOC42IDEyMS40YzQuNSA0LjIgMTAuNCA2LjYgMTYuNSA2LjZsOTYgMGMxMy4zIDAgMjQtMTAuNyAyNC0yNHMtMTAuNy0yNC0yNC0yNGwtODYuNSAwLTEuNS0xLjUgMC0xNzQuNSAxMTIgMGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMmwtLjUgMHpNMzIwIDQxNy4ybC03OC03My43IDMyLjQtNTUuNSA0NS42IDAgMCAxMjkuMnpNMjg1LjMgMTAzLjFsMzQuNyA1MiAwLTQzLjJjMC04LjggNy4yLTE2IDE2LTE2czE2IDcuMiAxNiAxNmwwIDk2YzAgNy4xLTQuNiAxMy4zLTExLjQgMTUuM3MtMTQtLjYtMTcuOS02LjRsLTM0LjctNTIgMCA0My4yYzAgOC44LTcuMiAxNi0xNiAxNnMtMTYtNy4yLTE2LTE2bDAtOTZjMC03LjEgNC42LTEzLjMgMTEuNC0xNS4zczE0IC42IDE3LjkgNi40ek0xNjAgMTEybDAgNjRjMCA4LjggNy4yIDE2IDE2IDE2czE2LTcuMiAxNi0xNmwwLTY0YzAtOC44IDcuMi0xNiAxNi0xNnMxNiA3LjIgMTYgMTZsMCA2NGMwIDI2LjUtMjEuNSA0OC00OCA0OHMtNDgtMjEuNS00OC00OGwwLTY0YzAtOC44IDcuMi0xNiAxNi0xNnMxNiA3LjIgMTYgMTZ6Il19LE13dD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJnbGFzcy13YXRlciIsaWNvbjpbMzg0LDUxMixbXSwiZTRmNCIsIk0zMiAwQzIzLjEgMCAxNC42IDMuNyA4LjYgMTAuMlMtLjYgMjUuNCAuMSAzNC4zTDI4LjkgNDM3LjdjMyA0MS45IDM3LjggNzQuMyA3OS44IDc0LjNsMTY2LjYgMGM0MiAwIDc2LjgtMzIuNCA3OS44LTc0LjNMMzgzLjkgMzQuM2MuNi04LjktMi40LTE3LjYtOC41LTI0LjFTMzYwLjkgMCAzNTIgMEwzMiAwek03MyAxNTYuNWwtNi42LTkyLjUgMjUxLjMgMC02LjYgOTIuNS0yNC4yIDEyLjFjLTE5LjQgOS43LTQyLjIgOS43LTYxLjYgMC0yMC45LTEwLjQtNDUuNS0xMC40LTY2LjQgMC0xOS40IDkuNy00Mi4yIDkuNy02MS42IDBMNzMgMTU2LjV6Il19LGt3dD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJoZWFydC1jaXJjbGUtYm9sdCIsaWNvbjpbNTc2LDUxMixbXSwiZTRmYyIsIk0yNDEgODcuMWwxNSAyMC43IDE1LTIwLjdDMjk2IDUyLjUgMzM2LjIgMzIgMzc4LjkgMzIgNDUyLjQgMzIgNTEyIDkxLjYgNTEyIDE2NS4xbDAgMi42YzAgMTcuNi0zLjQgMzUuNi05LjUgNTMuNy0yMS44LTguNi00NS42LTEzLjQtNzAuNS0xMy40LTEwNiAwLTE5MiA4Ni0xOTIgMTkyIDAgMjguNSA2LjIgNTUuNiAxNy40IDgwLS41IDAtLjkgMC0xLjQgMC0xNS41IDAtMzAuOC00LjYtNDMuMS0xNC4xLTczLTU1LjctMjEyLjktMTg2LTIxMi45LTI5OC4ybDAtMi42QzAgOTEuNiA1OS42IDMyIDEzMy4xIDMyIDE3NS44IDMyIDIxNiA1Mi41IDI0MSA4Ny4xek0yODggNDAwYTE0NCAxNDQgMCAxIDEgMjg4IDAgMTQ0IDE0NCAwIDEgMSAtMjg4IDB6bTE3Ny40LTc3Yy01LjgtNC4yLTEzLjgtNC0xOS40IC41bC04MCA2NGMtNS4zIDQuMi03LjQgMTEuNC01LjEgMTcuOFMzNjkuMiA0MTYgMzc2IDQxNmwzMi45IDAtMTUuOSA0Mi40Yy0yLjUgNi43LS4yIDE0LjMgNS42IDE4LjZzMTMuOCA0IDE5LjQtLjVsODAtNjRjNS4zLTQuMiA3LjQtMTEuNCA1LjEtMTcuOFM0OTQuOCAzODQgNDg4IDM4NGwtMzIuOSAwIDE1LjktNDIuNGMyLjUtNi43IC4yLTE0LjMtNS42LTE4LjZ6Il19LFN3dD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJwdW1wLXNvYXAiLGljb246WzMyMCw1MTIsW10sImUwNmIiLCJNOTYgMGwwIDgwIDEyOCAwIDAtMjQgNzIgMGMxMy4zIDAgMjQtMTAuNyAyNC0yNFMzMDkuMyA4IDI5NiA4bC03MiAwIDAtOGMwLTE3LjctMTQuMy0zMi0zMi0zMmwtNjQgMEMxMTAuMy0zMiA5Ni0xNy43IDk2IDB6TTY0IDEyOGMtMzUuMyAwLTY0IDI4LjctNjQgNjRMMCA0NDhjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMTkyIDBjMzUuMyAwIDY0LTI4LjcgNjQtNjRsMC0yNTZjMC0zNS4zLTI4LjctNjQtNjQtNjRMNjQgMTI4ek0yMjQgMzQ0YzAgMzUuMy0yOC43IDU2LTY0IDU2cy02NC0yMC43LTY0LTU2YzAtMzIuNSAzNy04MC45IDUwLjktOTcuOSAzLjItMy45IDguMS02LjEgMTMuMS02LjFzOS45IDIuMiAxMy4xIDYuMUMxODcgMjYzLjEgMjI0IDMxMS41IDIyNCAzNDR6Il19LHp3dD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJoYW5kLXNjaXNzb3JzIixpY29uOls1MTIsNTEyLFtdLCJmMjU3IiwiTTQwIDIwOGMtMjIuMSAwLTQwIDE3LjktNDAgNDBzMTcuOSA0MCA0MCA0MGwxODAuMiAwYy03LjYgOC41LTEyLjIgMTkuNy0xMi4yIDMyIDAgMjUuMyAxOS41IDQ2IDQ0LjMgNDcuOS03LjcgOC41LTEyLjMgMTkuOC0xMi4zIDMyLjEgMCAyNi41IDIxLjUgNDggNDggNDhsOTYgMGM3MC43IDAgMTI4LTU3LjMgMTI4LTEyOGwwLTExMy4xYzAtNDAuMi0xNi03OC44LTQ0LjQtMTA3LjMtMjIuOC0yMi44LTUzLjYtMzUuNi04NS44LTM1LjZMMzM2IDY0Yy0yMS4zIDAtMzkuMyAxMy45LTQ1LjYgMzMuMWw3NC41IDIzLjdjOC40IDIuNyAxMy4xIDExLjcgMTAuNCAyMC4xcy0xMS43IDEzLjEtMjAuMSAxMC40bC02Ny4xLTIxLjQgMCAuMS0yMDQtNjQuMUM2Mi45IDU5LjIgNDAuNSA3MC45IDMzLjkgOTJzNS4xIDQzLjUgMjYuMiA1MC4yTDI2OS41IDIwOCA0MCAyMDh6Il19LGNjZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJkb2xseSIsaWNvbjpbNTc2LDUxMixbImRvbGx5LWJveCJdLCJmNDcyIiwiTTMyIDBDMTQuMyAwIDAgMTQuMyAwIDMyUzE0LjMgNjQgMzIgNjRsNzIuOSAwIDkyLjEgMjc2LjJjLTIyLjUgMTcuNi0zNyA0NS0zNyA3NS44IDAgNTMgNDMgOTYgOTYgOTYgNTIuNCAwIDk1LjEtNDIgOTYtOTQuM2wyMDIuMS02Ny40YzE2LjgtNS42IDI1LjgtMjMuNyAyMC4yLTQwLjVzLTIzLjctMjUuOC00MC41LTIwLjJMMzMxLjggMzU3Yy0xNy4yLTIyLjEtNDMuOS0zNi41LTc0LTM3TDE2NS43IDQzLjhDMTU2LjkgMTcuNiAxMzIuNSAwIDEwNC45IDBMMzIgMHpNMjA4IDQxNmE0OCA0OCAwIDEgMSA5NiAwIDQ4IDQ4IDAgMSAxIC05NiAwek0yODAuNSA4OS4zYy0yNS4yIDguMi0zOSAzNS4zLTMwLjggNjAuNWwzOS42IDEyMS43YzguMiAyNS4yIDM1LjMgMzkgNjAuNSAzMC44bDEyMS43LTM5LjZjMjUuMi04LjIgMzktMzUuMyAzMC44LTYwLjVMNDYyLjggODAuNWMtOC4yLTI1LjItMzUuMy0zOS02MC41LTMwLjhMMjgwLjUgODkuM3oiXX0sQ3d0PWNjZSxuRT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJwYXBlcmNsaXAiLGljb246WzUxMiw1MTIsWzEyODIwNl0sImYwYzYiLCJNMjI0LjYgMTIuOGM1Ni4yLTU2LjIgMTQ3LjQtNTYuMiAyMDMuNiAwczU2LjIgMTQ3LjQgMCAyMDMuNmwtMTY0IDE2NGMtMzQuNCAzNC40LTkwLjEgMzQuNC0xMjQuNSAwcy0zNC40LTkwLjEgMC0xMjQuNUwyOTIuNSAxMDMuM2MxMi41LTEyLjUgMzIuOC0xMi41IDQ1LjMgMHMxMi41IDMyLjggMCA0NS4zTDE4NSAzMDEuM2MtOS40IDkuNC05LjQgMjQuNiAwIDMzLjlzMjQuNiA5LjQgMzMuOSAwbDE2NC0xNjRjMzEuMi0zMS4yIDMxLjItODEuOSAwLTExMy4xcy04MS45LTMxLjItMTEzLjEgMGwtMTY0IDE2NGMtNTMuMSA1My4xLTUzLjEgMTM5LjIgMCAxOTIuM3MxMzkuMiA1My4xIDE5Mi4zIDBMNDI4LjMgMjg0LjNjMTIuNS0xMi41IDMyLjgtMTIuNSA0NS4zIDBzMTIuNSAzMi44IDAgNDUuM0wzNDMuNCA0NTkuNmMtNzguMSA3OC4xLTIwNC43IDc4LjEtMjgyLjggMHMtNzguMS0yMDQuNyAwLTI4Mi44bDE2NC0xNjR6Il19LFR3dD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJkZW1vY3JhdCIsaWNvbjpbNjQwLDUxMixbXSwiZjc0NyIsIk02NCAzMmMwLTguOSAzLjgtMjAuOSA2LjItMjcuMyAxLTIuOCAzLjgtNC43IDYuOC00LjcgMS45IDAgMy44IC43IDUuMiAyLjFMMTI4IDQ1LjcgMTczLjggMi4xYzEuNC0xLjMgMy4yLTIuMSA1LjItMi4xIDMgMCA1LjggMS44IDYuOCA0LjcgMi40IDYuNSA2LjIgMTguNCA2LjIgMjcuMyAwIDI2LjUtMjEuOSA0Mi0yOS41IDQ2LjZsNzYuMiA3Mi42YzYgNS43IDEzLjkgOC44IDIyLjEgOC44bDIxOS4yIDAgMzIgMGM0MC4zIDAgNzguMiAxOSAxMDIuNCA1MS4ybDE5LjIgMjUuNmMxMC42IDE0LjEgNy43IDM0LjItNi40IDQ0LjhzLTM0LjIgNy43LTQ0LjgtNi40bC0xOS4yLTI1LjZjLTUuMy03LTExLjgtMTIuOC0xOS4yLTE3bDAgODcuNC0zNTIgMC00MC40LTk0LjNjLTMuOS05LjItMTUuMy0xMi42LTIzLjYtN2wtNDIuMSAyOGMtOS4xIDYuMS0xOS43IDkuMy0zMC43IDkuM2wtMiAwQzIzLjkgMjU2IDAgMjMyLjEgMCAyMDIuNyAwIDE5MC42IDQuMSAxNzguOSAxMS43IDE2OS40TDg3LjYgNzQuNkM3OC4xIDY3LjQgNjQgNTMuMiA2NCAzMnpNNTQ0IDM1MmwwIDEyOGMwIDE3LjctMTQuMyAzMi0zMiAzMmwtMzIgMGMtMTcuNyAwLTMyLTE0LjMtMzItMzJsMC02NC0xNjAgMCAwIDY0YzAgMTcuNy0xNC4zIDMyLTMyIDMybC0zMiAwYy0xNy43IDAtMzItMTQuMy0zMi0zMmwwLTEyOCAzNTIgMHpNMjU2IDI4MGEyNCAyNCAwIDEgMCAwLTQ4IDI0IDI0IDAgMSAwIDAgNDh6bTI0OC0yNGEyNCAyNCAwIDEgMCAtNDggMCAyNCAyNCAwIDEgMCA0OCAwek0zNjggMjgwYTI0IDI0IDAgMSAwIDAtNDggMjQgMjQgMCAxIDAgMCA0OHoiXX0sZGNlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InNxdWFyZS1hcnJvdy11cC1yaWdodCIsaWNvbjpbNDQ4LDUxMixbImV4dGVybmFsLWxpbmstc3F1YXJlIl0sImYxNGMiLCJNMzg0IDMyYzM1LjMgMCA2NCAyOC43IDY0IDY0bDAgMzIwYzAgMzUuMy0yOC43IDY0LTY0IDY0TDY0IDQ4MGMtMzUuMyAwLTY0LTI4LjctNjQtNjRMMCA5NkMwIDYwLjcgMjguNyAzMiA2NCAzMmwzMjAgMHpNMjcyIDI5NmMwIDEzLjMgMTAuNyAyNCAyNCAyNHMyNC0xMC43IDI0LTI0bDAtMTEyYzAtMTMuMy0xMC43LTI0LTI0LTI0bC0xMTIgMGMtMTMuMyAwLTI0IDEwLjctMjQgMjRzMTAuNyAyNCAyNCAyNGw1NC4xIDAtMTAzIDEwM2MtOS40IDkuNC05LjQgMjQuNiAwIDMzLjlzMjQuNiA5LjQgMzMuOSAwbDEwMy0xMDMgMCA1NC4xeiJdfSxfd3Q9ZGNlLEx3dD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJmZXJyeSIsaWNvbjpbNjQwLDUxMixbXSwiZTRlYSIsIk0yMjQgMzJjMC0xNy43IDE0LjMtMzIgMzItMzJMMzg0IDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJsMCAzMiA0OCAwYzQ0LjIgMCA4MCAzNS44IDgwIDgwbDAgMTI4LS4xIDBjLjEgLjcgLjEgMS4zIC4xIDIgMCAzMC4yLTcuNiA1OS44LTIyIDg2LjNsLTEyLjcgMjMuMy0uNiAxYy0yMi4zLTExLjMtNDYuNS0xNi44LTcwLjgtMTYuNy0zMi41IC4yLTY0LjkgMTAuNy05Mi40IDMxLjQtMjIuMSAxNi42LTI5LjEgMTYuNi01MS4yIDAtMjguMS0yMS4xLTYxLjMtMzEuNi05NC40LTMxLjQtMjMuNiAuMi00Ny4xIDUuNy02OC43IDE2LjdsLS42LTEtMTIuNy0yMy4zYy0xNC40LTI2LjUtMjItNTYuMi0yMi04Ni4zIDAtLjcgMC0xLjQgLjEtMmwtLjEgMCAwLTEyOGMwLTQ0LjIgMzUuOC04MCA4MC04MGw0OCAwIDAtMzJ6TTE2MCAyNTZsMzIwIDAgMC0xMTJjMC04LjgtNy4yLTE2LTE2LTE2bC0yODggMGMtOC44IDAtMTYgNy4yLTE2IDE2bDAgMTEyek00MDMuNCA0NzYuMUMzNzkuMSA0OTQuMyAzNTEuMSA1MTIgMzIwIDUxMnMtNTkuMS0xNy43LTgzLjQtMzUuOWMtMjEuMy0xNi4xLTQ5LjktMTYuMS03MS4yIDAtMjMuOCAxNy45LTU0LjEgMzUuNS04OC4xIDM1LjMtMjAuNC0uMS00MC43LTYuNy01OS44LTIxLjEtMTAuNi04LTEyLjctMjMtNC43LTMzLjZzMjMtMTIuNyAzMy42LTQuN2MxMS4zIDguNSAyMS42IDExLjQgMzEuMiAxMS41IDE3LjYgLjEgMzcuMy05LjQgNTguOS0yNS43IDM4LjQtMjkgOTAuNS0yOSAxMjkgMCAyNCAxOC4xIDQwLjcgMjYuMyA1NC41IDI2LjNzMzAuNS04LjIgNTQuNS0yNi4zYzM4LjQtMjkgOTAuNS0yOSAxMjkgMCAxNi45IDEyLjcgMzIuOSAyMS41IDQ3LjggMjQuNiAxMy43IDIuOCAyNy40IC45IDQyLjMtMTAuMyAxMC42LTggMjUuNi01LjkgMzMuNiA0LjdzNS45IDI1LjYtNC43IDMzLjZjLTI2LjQgMTkuOS01NC4yIDI0LjQtODAuNyAxOS4xLTI1LjMtNS4xLTQ4LjEtMTguOS02Ny4yLTMzLjMtMjEuMy0xNi4xLTQ5LjktMTYuMS03MS4yIDB6Il19LEF3dD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJtb3NxdWl0byIsaWNvbjpbNTc2LDUxMixbXSwiZTUyYiIsIk0xNzguNSA0OTUuMmMtNy41IDkuNi0yMSAxMi4xLTMxLjMgNS4zUzEzMy41IDQ4MCAxMzguOSA0NjlsMS4yLTIuMiAzNi4yLTU4IDAtNDEgLjMtNGMuNi0zLjkgMi4yLTcuNyA0LjYtMTAuOWwzOS4zLTUyLjItNjYuMiA1OS41Yy0xNyAxNS4zLTM5IDIzLjctNjEuOSAyMy44bC04LjEgMGMtNDYuNiAwLTg0LjQtMzcuOC04NC40LTg0LjQgMC00MyAzMi40LTc5LjIgNzUuMS04My45bDEzMC41LTE0LjUtNDQuOC0zOC4zLTIuNC0yLjRjLTUuMy02LTcuMy0xNC40LTUuMy0yMi4zbDEzLjMtNTMuNC0yNS45LTM4LjktMS4zLTIuMWMtNS44LTEwLjgtMi43LTI0LjYgNy40LTMxLjcgMTAuMS03LjEgMjMuNy01LjEgMzEuNCA0LjNsMS41IDIgMzIgNDggMS40IDIuMmMyLjggNS4zIDMuNSAxMS42IDIuMSAxNy42bC0xMi4zIDQ5LjIgNTMuMyA0NS43IDAtMjguOGMwLTExLjggNi41LTIyLjEgMTYtMjcuN2wwLTYwLjUgLjMtMy4zYzEuNS03LjMgOC0xMi43IDE1LjctMTIuN3MxNC4yIDUuNSAxNS43IDEyLjdsLjMgMy4yIDAgNjAuNWM5LjYgNS41IDE2IDE1LjggMTYgMjcuN2wwIDI4LjkgNTMuNC00NS44LTEyLjMtNDkuMmMtMS41LTUuOS0uNy0xMi4yIDIuMS0xNy42bDEuNC0yLjIgMzItNDggMS41LTJjNy43LTkuNCAyMS4zLTExLjUgMzEuNC00LjMgMTAuMSA3LjEgMTMuMSAyMC45IDcuNCAzMS43bC0xLjMgMi4xLTI1LjkgMzguOSAxMy4zIDUzLjRjMiA4LS4xIDE2LjMtNS4zIDIyLjNsLTIuNCAyLjQtNDQuNyAzOC4zIDEzMC41IDE0LjVjNDIuOCA0LjggNzUuMSA0MC45IDc1LjEgODMuOSAwIDQ2LjYtMzcuOCA4NC40LTg0LjQgODQuNGwtOC4xIDBjLTIyLjggMC00NC45LTguNS02MS45LTIzLjhsLTY2LjEtNTkuNSAzOS4yIDUyLjJjMi40IDMuMiA0IDcgNC42IDEwLjlsLjMgNCAwIDQxIDM2LjIgNTggMS4yIDIuMWM1LjQgMTEgMiAyNC43LTguMyAzMS41cy0yMy44IDQuNC0zMS4zLTUuM2wtMS40LTItNDAtNjQtMS42LTMuMWMtMS40LTMuMS0yLjEtNi42LTIuMS0xMC4xbDAtMzkuOC0zMi40LTQzLjEgMCA3NC43YzAgMTcuNy0xNC4zIDMyLTMyIDMyLTE3LjcgMC0zMi0xNC4zLTMyLTMybDAtNzQuNi0zMi4zIDQzIDAgMzkuOGMwIDMuNS0uNyA2LjktMi4xIDEwLjFsLTEuNiAzLjEtNDAgNjQtMS40IDJ6Il19LER3dD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJidWlsZGluZy1jaXJjbGUtYXJyb3ctcmlnaHQiLGljb246WzU3Niw1MTIsW10sImU0ZDEiLCJNMzIgNjRDMzIgMjguNyA2MC43IDAgOTYgMEwzNTIgMGMzNS4zIDAgNjQgMjguNyA2NCA2NGwwIDE0NC43Yy0zNS43IDIuOS02OC41IDE1LjYtOTYgMzUuNGwwLTRjMC04LjgtNy4yLTE2LTE2LTE2bC0zMiAwYy04LjggMC0xNiA3LjItMTYgMTZsMCAzMmMwIDguOCA3LjIgMTYgMTYgMTZsNCAwYy0xMy44IDE5LjItMjQuMSA0MS0zMC4xIDY0LjUtMS45LS40LTMuOS0uNS01LjktLjVsLTMyIDBjLTE3LjcgMC0zMiAxNC4zLTMyIDMybDAgODAgNzQuOSAwYzYuMSAxNy4zIDE0LjYgMzMuNCAyNS4xIDQ4TDk2IDUxMmMtMzUuMyAwLTY0LTI4LjctNjQtNjRMMzIgNjR6TTE0NCA5NmMtOC44IDAtMTYgNy4yLTE2IDE2bDAgMzJjMCA4LjggNy4yIDE2IDE2IDE2bDMyIDBjOC44IDAgMTYtNy4yIDE2LTE2bDAtMzJjMC04LjgtNy4yLTE2LTE2LTE2bC0zMiAwem0xMTIgMTZsMCAzMmMwIDguOCA3LjIgMTYgMTYgMTZsMzIgMGM4LjggMCAxNi03LjIgMTYtMTZsMC0zMmMwLTguOC03LjItMTYtMTYtMTZsLTMyIDBjLTguOCAwLTE2IDcuMi0xNiAxNnpNMTQ0IDIyNGMtOC44IDAtMTYgNy4yLTE2IDE2bDAgMzJjMCA4LjggNy4yIDE2IDE2IDE2bDMyIDBjOC44IDAgMTYtNy4yIDE2LTE2bDAtMzJjMC04LjgtNy4yLTE2LTE2LTE2bC0zMiAwek0yODggNDAwYTE0NCAxNDQgMCAxIDEgMjg4IDAgMTQ0IDE0NCAwIDEgMSAtMjg4IDB6bTE0MC43LTY3LjNjLTYuMiA2LjItNi4yIDE2LjQgMCAyMi42bDI4LjcgMjguNy04OS40IDBjLTguOCAwLTE2IDcuMi0xNiAxNnM3LjIgMTYgMTYgMTZsODkuNCAwLTI4LjcgMjguN2MtNi4yIDYuMi02LjIgMTYuNCAwIDIyLjZzMTYuNCA2LjIgMjIuNiAwbDU2LTU2YzYuMi02LjIgNi4yLTE2LjQgMC0yMi42bC01Ni01NmMtNi4yLTYuMi0xNi40LTYuMi0yMi42IDB6Il19LHVjZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJsZWZ0LXJpZ2h0IixpY29uOls1MTIsNTEyLFs4NTk2LCJhcnJvd3MtYWx0LWgiXSwiZjMzNyIsIk01MDIuNiA0MDYuNmwtOTYgOTZjLTkuMiA5LjItMjIuOSAxMS45LTM0LjkgNi45UzM1MiA0OTIuOSAzNTIgNDgwbDAtNjQtMzIwIDBjLTE3LjcgMC0zMi0xNC4zLTMyLTMyczE0LjMtMzIgMzItMzJsMzIwIDAgMC02NGMwLTEyLjkgNy44LTI0LjYgMTkuOC0yOS42czI1LjctMi4yIDM0LjkgNi45bDk2IDk2YzEyLjUgMTIuNSAxMi41IDMyLjggMCA0NS4zek05LjQgMTUwLjZjLTEyLjUtMTIuNS0xMi41LTMyLjggMC00NS4zbDk2LTk2YzkuMi05LjIgMjIuOS0xMS45IDM0LjktNi45UzE2MCAxOS4xIDE2MCAzMmwwIDY0IDMyMCAwYzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMybC0zMjAgMCAwIDY0YzAgMTIuOS03LjggMjQuNi0xOS44IDI5LjZzLTI1LjcgMi4yLTM0LjktNi45bC05Ni05NnoiXX0sRXd0PXVjZSwkd3Q9e3ByZWZpeDoiZmFzIixpY29uTmFtZToidmlydXMiLGljb246WzUxMiw1MTIsW10sImUwNzQiLCJNMjk2IDQwYzAtMjIuMS0xNy45LTQwLTQwLTQwcy00MCAxNy45LTQwIDQwYzAgNDQuMS01My4zIDY2LjEtODQuNSAzNS0xNS42LTE1LjYtNDAuOS0xNS42LTU2LjYgMHMtMTUuNiA0MC45IDAgNTYuNmMzMS4yIDMxLjIgOS4xIDg0LjUtMzUgODQuNS0yMi4xIDAtNDAgMTcuOS00MCA0MHMxNy45IDQwIDQwIDQwYzQ0LjEgMCA2Ni4xIDUzLjMgMzUgODQuNS0xNS42IDE1LjYtMTUuNiA0MC45IDAgNTYuNnM0MC45IDE1LjYgNTYuNiAwYzMxLjItMzEuMiA4NC41LTkuMSA4NC41IDM1IDAgMjIuMSAxNy45IDQwIDQwIDQwczQwLTE3LjkgNDAtNDBjMC00NC4xIDUzLjMtNjYuMSA4NC41LTM1IDE1LjYgMTUuNiA0MC45IDE1LjYgNTYuNiAwczE1LjYtNDAuOSAwLTU2LjZjLTMxLjItMzEuMi05LjEtODQuNSAzNS04NC41IDIyLjEgMCA0MC0xNy45IDQwLTQwcy0xNy45LTQwLTQwLTQwYy00NC4xIDAtNjYuMS01My4zLTM1LTg0LjUgMTUuNi0xNS42IDE1LjYtNDAuOSAwLTU2LjZzLTQwLjktMTUuNi01Ni42IDBDMzQ5LjMgMTA2LjEgMjk2IDg0LjEgMjk2IDQwek0xNjAgMjI0YTMyIDMyIDAgMSAxIDY0IDAgMzIgMzIgMCAxIDEgLTY0IDB6bTE2MCAzMmEzMiAzMiAwIDEgMSAwIDY0IDMyIDMyIDAgMSAxIDAtNjR6Il19LEl3dD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJnZW0iLGljb246WzUxMiw1MTIsWzEyODE0Ml0sImYzYTUiLCJNMTE2LjcgMzMuOGM0LjUtNi4xIDExLjctOS44IDE5LjMtOS44bDI0MCAwYzcuNiAwIDE0LjggMy42IDE5LjMgOS44bDExMiAxNTJjNi44IDkuMiA2LjEgMjEuOS0xLjUgMzAuNGwtMjMyIDI1NmMtNC41IDUtMTEgNy45LTE3LjggNy45cy0xMy4yLTIuOS0xNy44LTcuOWwtMjMyLTI1NmMtNy43LTguNS04LjMtMjEuMi0xLjUtMzAuNGwxMTItMTUyem0zOC41IDM5LjhjLTMuMyAyLjUtNC4yIDctMi4xIDEwLjVMMjEwLjUgMTc5LjggNjMuMyAxOTJjLTQuMSAuMy03LjMgMy44LTcuMyA4czMuMiA3LjYgNy4zIDhsMTkyIDE2Yy40IDAgLjkgMCAxLjMgMGwxOTItMTZjNC4xLS4zIDcuMy0zLjggNy4zLThzLTMuMi03LjYtNy4zLThsLTE0Ny4yLTEyLjMgNTcuNC05NS42YzIuMS0zLjUgMS4yLTguMS0yLjEtMTAuNXMtNy45LTItMTAuNyAxTDI1NiAxNzIuMiAxNjUuOSA3NC42Yy0yLjgtMy03LjQtMy40LTEwLjctMXoiXX0sUHd0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InRvaWxldCIsaWNvbjpbNDQ4LDUxMixbMTI4NzAxXSwiZjdkOCIsIk0yNCAwQzEwLjcgMCAwIDEwLjcgMCAyNFMxMC43IDQ4IDI0IDQ4bDggMCAwIDE0OC45Yy0xLjkgMS40LTMuOCAyLjktNS42IDQuNC0xNS41IDEzLjItMjYuNCAzMS42LTI2LjQgNTQuNiAwIDQ2LjkgMTQuMyA4NC4xIDM3IDExMi41IDE0LjIgMTcuNyAzMS4xIDMxLjMgNDguNSA0MS44TDY1LjYgNDY5LjljLTMuMyA5LjgtMS42IDIwLjUgNC40IDI4LjhTODUuNyA1MTIgOTYgNTEybDI1NiAwYzEwLjMgMCAxOS45LTQuOSAyNi0xMy4zczcuNy0xOS4xIDQuNC0yOC44bC0xOS44LTU5LjVjMTcuNC0xMC41IDM0LjMtMjQuMSA0OC41LTQxLjggMjIuNy0yOC40IDM3LTY1LjUgMzctMTEyLjUgMC0yMy4xLTEwLjktNDEuNS0yNi40LTU0LjYtMS44LTEuNS0zLjctMy01LjYtNC40bDAtMTQ4LjkgOCAwYzEzLjMgMCAyNC0xMC43IDI0LTI0UzQzNy4zIDAgNDI0IDBMMjQgMHpNOTYgODBjMC04LjggNy4yLTE2IDE2LTE2bDMyIDBjOC44IDAgMTYgNy4yIDE2IDE2cy03LjIgMTYtMTYgMTZsLTMyIDBjLTguOCAwLTE2LTcuMi0xNi0xNnpNMjI0IDI4OGMtODguNCAwLTE2MC0xNC4zLTE2MC0zMnM3MS42LTMyIDE2MC0zMiAxNjAgMTQuMyAxNjAgMzItNzEuNiAzMi0xNjAgMzJ6Il19LE53dD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJzaW5nbGUtcXVvdGUtbGVmdCIsaWNvbjpbMTkyLDUxMixbXSwiZTgxYiIsIk0xMjggOTZjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJsLTggMGMtMzAuOSAwLTU2IDI1LjEtNTYgNTZsMCA4IDY0IDBjMzUuMyAwIDY0IDI4LjcgNjQgNjRsMCA2NGMwIDM1LjMtMjguNyA2NC02NCA2NGwtNjQgMGMtMzUuMyAwLTY0LTI4LjctNjQtNjRMMCAyMTZDMCAxNDkuNyA1My43IDk2IDEyMCA5Nmw4IDB6Il19LEZ3dD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJtb25leS1iaWxscyIsaWNvbjpbNTc2LDUxMixbXSwiZTFmMyIsIk0xNjAgMzJjLTM1LjMgMC02NCAyOC43LTY0IDY0bDAgMjI0YzAgMzUuMyAyOC43IDY0IDY0IDY0bDM1MiAwYzM1LjMgMCA2NC0yOC43IDY0LTY0bDAtMjI0YzAtMzUuMy0yOC43LTY0LTY0LTY0TDE2MCAzMnptMTc2IDk2YTgwIDgwIDAgMSAxIDAgMTYwIDgwIDgwIDAgMSAxIDAtMTYwek0xNjAgMTUybDAtNDhjMC00LjQgMy42LTggOC04bDQ4IDBjNC40IDAgOC4xIDMuNiA3LjUgOC0zLjYgMjktMjYuNiA1MS45LTU1LjUgNTUuNS00LjQgLjUtOC0zLjEtOC03LjV6bTAgMTEyYzAtNC40IDMuNi04LjEgOC03LjUgMjkgMy42IDUxLjkgMjYuNiA1NS41IDU1LjUgLjUgNC40LTMuMSA4LTcuNSA4bC00OCAwYy00LjQgMC04LTMuNi04LThsMC00OHpNNTA0IDE1OS41Yy0yOS0zLjYtNTEuOS0yNi42LTU1LjUtNTUuNS0uNS00LjQgMy4xLTggNy41LThsNDggMGM0LjQgMCA4IDMuNiA4IDhsMCA0OGMwIDQuNC0zLjYgOC4xLTggNy41ek01MTIgMjY0bDAgNDhjMCA0LjQtMy42IDgtOCA4bC00OCAwYy00LjQgMC04LjEtMy42LTcuNS04IDMuNi0yOSAyNi42LTUxLjkgNTUuNS01NS41IDQuNC0uNSA4IDMuMSA4IDcuNXpNNDggMTUyYzAtMTMuMy0xMC43LTI0LTI0LTI0UzAgMTM4LjcgMCAxNTJMMCA0MTZjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMzkyIDBjMTMuMyAwIDI0LTEwLjcgMjQtMjRzLTEwLjctMjQtMjQtMjRMNjQgNDMyYy04LjggMC0xNi03LjItMTYtMTZsMC0yNjR6Il19LE93dD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJ0YWJsZXQtYnV0dG9uIixpY29uOls0NDgsNTEyLFtdLCJmMTBhIiwiTTY0IDBDMjguNyAwIDAgMjguNyAwIDY0TDAgNDQ4YzAgMzUuMyAyOC43IDY0IDY0IDY0bDMyMCAwYzM1LjMgMCA2NC0yOC43IDY0LTY0bDAtMzg0YzAtMzUuMy0yOC43LTY0LTY0LTY0TDY0IDB6TTIyNCA0MDBhMzIgMzIgMCAxIDEgMCA2NCAzMiAzMiAwIDEgMSAwLTY0eiJdfSxJZz17cHJlZml4OiJmYXMiLGljb25OYW1lOiJyZWN0YW5nbGUteG1hcmsiLGljb246WzUxMiw1MTIsWzYyMTY0LCJyZWN0YW5nbGUtdGltZXMiLCJ0aW1lcy1yZWN0YW5nbGUiLCJ3aW5kb3ctY2xvc2UiXSwiZjQxMCIsIk02NCA2NEMyOC43IDY0IDAgOTIuNyAwIDEyOEwwIDM4NGMwIDM1LjMgMjguNyA2NCA2NCA2NGwzODQgMGMzNS4zIDAgNjQtMjguNyA2NC02NGwwLTI1NmMwLTM1LjMtMjguNy02NC02NC02NEw2NCA2NHpNMTY3IDE2N2M5LjQtOS40IDI0LjYtOS40IDMzLjkgMGw1NSA1NSA1NS01NWM5LjQtOS40IDI0LjYtOS40IDMzLjkgMHM5LjQgMjQuNiAwIDMzLjlsLTU1IDU1IDU1IDU1YzkuNCA5LjQgOS40IDI0LjYgMCAzMy45cy0yNC42IDkuNC0zMy45IDBsLTU1LTU1LTU1IDU1Yy05LjQgOS40LTI0LjYgOS40LTMzLjkgMHMtOS40LTI0LjYgMC0zMy45bDU1LTU1LTU1LTU1Yy05LjQtOS40LTkuNC0yNC42IDAtMzMuOXoiXX0sUnd0PUlnLEJ3dD1JZyxId3Q9SWcscXd0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6IndyZW5jaCIsaWNvbjpbNTc2LDUxMixbMTI4Mjk1XSwiZjBhZCIsIk01MDkuNCA5OC42YzcuNi03LjYgMjAuMy01LjcgMjQuMSA0LjMgNi44IDE3LjcgMTAuNSAzNyAxMC41IDU3LjEgMCA4OC40LTcxLjYgMTYwLTE2MCAxNjAtMTcuNSAwLTM0LjQtMi44LTUwLjItOEwxNDYuOSA0OTguOWMtMjguMSAyOC4xLTczLjcgMjguMS0xMDEuOCAwcy0yOC4xLTczLjcgMC0xMDEuOEwyMzIgMjEwLjJjLTUuMi0xNS44LTgtMzIuNi04LTUwLjIgMC04OC40IDcxLjYtMTYwIDE2MC0xNjAgMjAuMSAwIDM5LjQgMy43IDU3LjEgMTAuNSAxMCAzLjggMTEuOCAxNi41IDQuMyAyNC4xbC04OC43IDg4LjdjLTMgMy00LjcgNy4xLTQuNyAxMS4zbDAgNDEuNGMwIDguOCA3LjIgMTYgMTYgMTZsNDEuNCAwYzQuMiAwIDguMy0xLjcgMTEuMy00LjdsODguNy04OC43eiJdfSxRZz17cHJlZml4OiJmYXMiLGljb25OYW1lOiJ0cmFzaC1jYW4iLGljb246WzQ0OCw1MTIsWzYxNDYwLCJ0cmFzaC1hbHQiXSwiZjJlZCIsIk0xMzYuNyA1LjlDMTQxLjEtNy4yIDE1My4zLTE2IDE2Ny4xLTE2bDExMy45IDBjMTMuOCAwIDI2IDguOCAzMC40IDIxLjlMMzIwIDMyIDQxNiAzMmMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMkwzMiA5NkMxNC4zIDk2IDAgODEuNyAwIDY0UzE0LjMgMzIgMzIgMzJsOTYgMCA4LjctMjYuMXpNMzIgMTQ0bDM4NCAwIDAgMzA0YzAgMzUuMy0yOC43IDY0LTY0IDY0TDk2IDUxMmMtMzUuMyAwLTY0LTI4LjctNjQtNjRsMC0zMDR6bTg4IDY0Yy0xMy4zIDAtMjQgMTAuNy0yNCAyNGwwIDE5MmMwIDEzLjMgMTAuNyAyNCAyNCAyNHMyNC0xMC43IDI0LTI0bDAtMTkyYzAtMTMuMy0xMC43LTI0LTI0LTI0em0xMDQgMGMtMTMuMyAwLTI0IDEwLjctMjQgMjRsMCAxOTJjMCAxMy4zIDEwLjcgMjQgMjQgMjRzMjQtMTAuNyAyNC0yNGwwLTE5MmMwLTEzLjMtMTAuNy0yNC0yNC0yNHptMTA0IDBjLTEzLjMgMC0yNCAxMC43LTI0IDI0bDAgMTkyYzAgMTMuMyAxMC43IDI0IDI0IDI0czI0LTEwLjcgMjQtMjRsMC0xOTJjMC0xMy4zLTEwLjctMjQtMjQtMjR6Il19LGp3dD1RZyxwY2U9e3ByZWZpeDoiZmFzIixpY29uTmFtZToidGFibGUtY2VsbHMiLGljb246WzQ0OCw1MTIsWyJ0aCJdLCJmMDBhIiwiTTM4NCA5NmwwIDY0LTY0IDAgMC02NCA2NCAwem0wIDEyOGwwIDY0LTY0IDAgMC02NCA2NCAwem0wIDEyOGwwIDY0LTY0IDAgMC02NCA2NCAwek0yNTYgMjg4bC02NCAwIDAtNjQgNjQgMCAwIDY0em0tNjQgNjRsNjQgMCAwIDY0LTY0IDAgMC02NHptLTY0LTY0bC02NCAwIDAtNjQgNjQgMCAwIDY0ek02NCAzNTJsNjQgMCAwIDY0LTY0IDAgMC02NHptMC0xOTJsMC02NCA2NCAwIDAgNjQtNjQgMHptMTI4IDBsMC02NCA2NCAwIDAgNjQtNjQgMHpNNjQgMzJDMjguNyAzMiAwIDYwLjcgMCA5NkwwIDQxNmMwIDM1LjMgMjguNyA2NCA2NCA2NGwzMjAgMGMzNS4zIDAgNjQtMjguNyA2NC02NGwwLTMyMGMwLTM1LjMtMjguNy02NC02NC02NEw2NCAzMnoiXX0sVnd0PXBjZSxVd3Q9e3ByZWZpeDoiZmFzIixpY29uTmFtZToicmliYm9uIixpY29uOlszODQsNTEyLFsxMjc4OTVdLCJmNGQ2IiwiTTIzNS4xIDBjMzMuNCAwIDY0LjUgMTcuNCA4MS45IDQ1LjkgMS4yIDIgMTMgMjEuMyAzNS4zIDU3LjggMjEuMSAzNC41IDE4LjMgNzguNS03IDExMEwyNzguMyAyOTcuNyAzNjQuNSA0MDZjNS41IDYuOSA0LjQgMTYuOS0yLjUgMjIuNWwtODAgNjRjLTYuOSA1LjUtMTcgNC40LTIyLjUtMi41TDM4LjYgMjEzLjhDMTMuMyAxODIuMyAxMC41IDEzOC4zIDMxLjYgMTAzLjggNTQgNjcuMiA2NS43IDQ3LjkgNjcgNDUuOSA4NC40IDE3LjQgMTE1LjQgMCAxNDguOSAwbDg2LjMgMHpNMTkyIDE4OS4ybDQ4LjYtNjEuMi05Ny4zIDAgNDguNiA2MS4yek03NSAzMzYuMmw4Ni4yIDEwNy44LTM2LjggNDZjLTUuNSA2LjktMTUuNiA4LTIyLjUgMi41bC04MC02NGMtNi45LTUuNS04LTE1LjYtMi41LTIyLjVMNzUgMzM2LjJ6Il19LFd3dD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJsYW5kbWFyay1mbGFnIixpY29uOls1MTIsNTEyLFtdLCJlNTFjIiwiTTM1Mi0zMkwyNDAtMzJjLTguOCAwLTE2IDcuMi0xNiAxNmwwIDE0NC0xNzYgMGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJzMTQuMyAzMiAzMiAzMmwxNiAwIDAgMjI0LTUxLjIgMzguNEM0LjcgNDYwLjQgMCA0NjkuOSAwIDQ4MCAwIDQ5Ny43IDE0LjMgNTEyIDMyIDUxMmw0NDggMGMxNy43IDAgMzItMTQuMyAzMi0zMiAwLTEwLjEtNC43LTE5LjYtMTIuOC0yNS42bC01MS4yLTM4LjQgMC0yMjQgMTYgMGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMmwtMTkyIDAgMC02NCA4MCAwYzguOCAwIDE2LTcuMiAxNi0xNmwwLTY0YzAtOC44LTcuMi0xNi0xNi0xNnptNDggMjI0bDAgMjI0LTY0IDAgMC0yMjQgNjQgMHptLTExMiAwbDAgMjI0LTY0IDAgMC0yMjQgNjQgMHptLTExMiAwbDAgMjI0LTY0IDAgMC0yMjQgNjQgMHoiXX0saGNlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InVwLWRvd24tbGVmdC1yaWdodCIsaWNvbjpbNTEyLDUxMixbImFycm93cy1hbHQiXSwiZjBiMiIsIk0yNzguNiA5LjRjLTEyLjUtMTIuNS0zMi44LTEyLjUtNDUuMyAwbC02NCA2NGMtOS4yIDkuMi0xMS45IDIyLjktNi45IDM0LjlTMTc5LjEgMTI4IDE5MiAxMjhsMzIgMCAwIDk2LTk2IDAgMC0zMmMwLTEyLjktNy44LTI0LjYtMTkuOC0yOS42cy0yNS43LTIuMi0zNC45IDYuOWwtNjQgNjRjLTEyLjUgMTIuNS0xMi41IDMyLjggMCA0NS4zbDY0IDY0YzkuMiA5LjIgMjIuOSAxMS45IDM0LjkgNi45UzEyOCAzMzIuOSAxMjggMzIwbDAtMzIgOTYgMCAwIDk2LTMyIDBjLTEyLjkgMC0yNC42IDcuOC0yOS42IDE5LjhzLTIuMiAyNS43IDYuOSAzNC45bDY0IDY0YzEyLjUgMTIuNSAzMi44IDEyLjUgNDUuMyAwbDY0LTY0YzkuMi05LjIgMTEuOS0yMi45IDYuOS0zNC45UzMzMi45IDM4NCAzMjAgMzg0bC0zMiAwIDAtOTYgOTYgMCAwIDMyYzAgMTIuOSA3LjggMjQuNiAxOS44IDI5LjZzMjUuNyAyLjIgMzQuOS02LjlsNjQtNjRjMTIuNS0xMi41IDEyLjUtMzIuOCAwLTQ1LjNsLTY0LTY0Yy05LjItOS4yLTIyLjktMTEuOS0zNC45LTYuOVMzODQgMTc5LjEgMzg0IDE5MmwwIDMyLTk2IDAgMC05NiAzMiAwYzEyLjkgMCAyNC42LTcuOCAyOS42LTE5LjhzMi4yLTI1LjctNi45LTM0LjlsLTY0LTY0eiJdfSxHd3Q9aGNlLFl3dD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJjYXItc2lkZSIsaWNvbjpbNjQwLDUxMixbMTI4NjYzXSwiZjVlNCIsIk0xNDcgMTA2LjdsLTI5LjggODUuMyAxMjIuOSAwIDAtOTYtNzcuOSAwYy02LjggMC0xMi45IDQuMy0xNS4xIDEwLjd6TTQ4LjYgMTkzLjlMODYuNSA4NS42Qzk3LjggNTMuNSAxMjguMSAzMiAxNjIuMSAzMkwzNjAgMzJjMjUuMiAwIDQ4LjkgMTEuOSA2NCAzMmw5Ni4yIDEyOC4zQzU4Ny4xIDE5Ni41IDY0MCAyNTIuMSA2NDAgMzIwbDAgMTZjMCAzNS4zLTI4LjcgNjQtNjQgNjRsLTE2LjQgMGMtNCA0NC45LTQxLjcgODAtODcuNiA4MHMtODMuNi0zNS4xLTg3LjYtODBsLTE0NC43IDBjLTQgNDQuOS00MS43IDgwLTg3LjYgODBzLTgzLjYtMzUuMS04Ny42LTgwbC0uNCAwYy0zNS4zIDAtNjQtMjguNy02NC02NGwwLTgwYzAtMzAuMSAyMC43LTU1LjMgNDguNi02Mi4xek00NDAgMTkybC02Ny4yLTg5LjZjLTMtNC03LjgtNi40LTEyLjgtNi40bC03MiAwIDAgOTYgMTUyIDB6TTE1MiA0MzJhNDAgNDAgMCAxIDAgMC04MCA0MCA0MCAwIDEgMCAwIDgwem0zNjAtNDBhNDAgNDAgMCAxIDAgLTgwIDAgNDAgNDAgMCAxIDAgODAgMHoiXX0sZmNlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InRyYXNoLWFycm93LXVwIixpY29uOls0NDgsNTEyLFsidHJhc2gtcmVzdG9yZSJdLCJmODI5IiwiTTE2Ny4xLTE2bDExMy45IDBjMTMuOCAwIDI2IDguOCAzMC40IDIxLjlMMzIwIDMyIDQxNiAzMmMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMkwzMiA5NkMxNC4zIDk2IDAgODEuNyAwIDY0UzE0LjMgMzIgMzIgMzJsOTYgMCA4LjctMjYuMUMxNDEuMS03LjIgMTUzLjMtMTYgMTY3LjEtMTZ6TTMyIDE0NGwzODQgMC0yMS4xIDMyMy4xQzM5My4zIDQ5Mi40IDM3Mi4zIDUxMiAzNDcgNTEyTDEwMSA1MTJjLTI1LjMgMC00Ni4zLTE5LjYtNDcuOS00NC45TDMyIDE0NHptMjA5IDc5Yy05LjQtOS40LTI0LjYtOS40LTMzLjkgMGwtNzIgNzJjLTkuNCA5LjQtOS40IDI0LjYgMCAzMy45czI0LjYgOS40IDMzLjkgMGwzMS0zMSAwIDEwMi4xYzAgMTMuMyAxMC43IDI0IDI0IDI0czI0LTEwLjcgMjQtMjRsMC0xMDIuMSAzMSAzMWM5LjQgOS40IDI0LjYgOS40IDMzLjkgMHM5LjQtMjQuNiAwLTMzLjlsLTcyLTcyeiJdfSxad3Q9ZmNlLFh3dD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJsaWZlLXJpbmciLGljb246WzUxMiw1MTIsW10sImYxY2QiLCJNMzY3LjIgNDEyLjVDMzM1LjkgNDM0LjkgMjk3LjUgNDQ4IDI1NiA0NDhzLTc5LjktMTMuMS0xMTEuMi0zNS41bDU4LTU4YzE1LjggOC42IDM0IDEzLjUgNTMuMyAxMy41czM3LjQtNC45IDUzLjMtMTMuNWw1OCA1OHptOTAuNyAuOGMzMy44LTQzLjQgNTQtOTggNTQtMTU3LjNTNDkxLjggMTQyLjEgNDU4IDk4LjdjOS0xMi41IDcuOS0zMC4xLTMuNC00MS4zUzQyNS44IDQ1IDQxMy4zIDU0QzM2OS45IDIwLjIgMzE1LjMgMCAyNTYgMFMxNDIuMSAyMC4yIDk4LjcgNTRjLTEyLjUtOS0zMC4xLTcuOS00MS4zIDMuNFM0NSA4Ni4yIDU0IDk4LjdDMjAuMiAxNDIuMSAwIDE5Ni43IDAgMjU2UzIwLjIgMzY5LjkgNTQgNDEzLjNjLTkgMTIuNS03LjkgMzAuMSAzLjQgNDEuM1M4Ni4yIDQ2NyA5OC43IDQ1OGM0My40IDMzLjggOTggNTQgMTU3LjMgNTRzMTEzLjktMjAuMiAxNTcuMy01NGMxMi41IDkgMzAuMSA3LjkgNDEuMy0zLjRzMTIuNC0yOC44IDMuNC00MS4zem0tNDUuNS00Ni4xbC01OC01OGM4LjYtMTUuOCAxMy41LTM0IDEzLjUtNTMuM3MtNC45LTM3LjQtMTMuNS01My4zbDU4LTU4QzQzNC45IDE3Ni4xIDQ0OCAyMTQuNSA0NDggMjU2cy0xMy4xIDc5LjktMzUuNSAxMTEuMnpNMzY3LjIgOTkuNWwtNTggNThjLTE1LjgtOC42LTM0LTEzLjUtNTMuMy0xMy41cy0zNy40IDQuOS01My4zIDEzLjVsLTU4LTU4QzE3Ni4xIDc3LjEgMjE0LjUgNjQgMjU2IDY0czc5LjkgMTMuMSAxMTEuMiAzNS41ek0xNTcuNSAzMDkuM2wtNTggNThDNzcuMSAzMzUuOSA2NCAyOTcuNSA2NCAyNTZzMTMuMS03OS45IDM1LjUtMTExLjJsNTggNThjLTguNiAxNS44LTEzLjUgMzQtMTMuNSA1My4zczQuOSAzNy40IDEzLjUgNTMuM3pNMjA4IDI1NmE0OCA0OCAwIDEgMSA5NiAwIDQ4IDQ4IDAgMSAxIC05NiAweiJdfSxRd3Q9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiY29weXJpZ2h0IixpY29uOls1MTIsNTEyLFsxNjldLCJmMWY5IiwiTTI1NiA1MTJhMjU2IDI1NiAwIDEgMCAwLTUxMiAyNTYgMjU2IDAgMSAwIDAgNTEyek0yMDUuMSAzMDYuOWMyOC4xIDI4LjEgNzMuNyAyOC4xIDEwMS44IDAgOS40LTkuNCAyNC42LTkuNCAzMy45IDBzOS40IDI0LjYgMCAzMy45Yy00Ni45IDQ2LjktMTIyLjggNDYuOS0xNjkuNyAwcy00Ni45LTEyMi44IDAtMTY5LjcgMTIyLjgtNDYuOSAxNjkuNyAwYzkuNCA5LjQgOS40IDI0LjYgMCAzMy45cy0yNC42IDkuNC0zMy45IDBjLTI4LjEtMjguMS03My43LTI4LjEtMTAxLjggMHMtMjguMSA3My43IDAgMTAxLjh6Il19LEp3dD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJmaWxlLXByZXNjcmlwdGlvbiIsaWNvbjpbMzg0LDUxMixbXSwiZjU3MiIsIk0wIDY0QzAgMjguNyAyOC43IDAgNjQgMEwyMTMuNSAwYzE3IDAgMzMuMyA2LjcgNDUuMyAxOC43TDM2NS4zIDEyNS4zYzEyIDEyIDE4LjcgMjguMyAxOC43IDQ1LjNMMzg0IDQ0OGMwIDM1LjMtMjguNyA2NC02NCA2NEw2NCA1MTJjLTM1LjMgMC02NC0yOC43LTY0LTY0TDAgNjR6bTIwOC01LjVsMCA5My41YzAgMTMuMyAxMC43IDI0IDI0IDI0TDMyNS41IDE3NiAyMDggNTguNXpNODggMTkyYy0xMy4zIDAtMjQgMTAuNy0yNCAyNGwwIDE0NGMwIDEzLjMgMTAuNyAyNCAyNCAyNHMyNC0xMC43IDI0LTI0bDAtNDAgMjIuNSAwIDU4LjQgNTUtMzMuNCAzMS42Yy05LjYgOS4xLTEwLjEgMjQuMy0uOSAzMy45czI0LjMgMTAuMSAzMy45IC45bDM1LjQtMzMuNSAzNS42IDMzLjVjOS43IDkuMSAyNC44IDguNiAzMy45LTFzOC42LTI0LjgtMS0zMy45bC0zMy42LTMxLjYgMzMuNi0zMS44YzkuNi05LjEgMTAuMS0yNC4zIC45LTMzLjlzLTI0LjMtMTAuMS0zMy45LS45bC0zNS43IDMzLjctNDAuOS0zOC41YzEyLjktMTEuNyAyMS4xLTI4LjYgMjEuMS00Ny41IDAtMzUuMy0yOC43LTY0LTY0LTY0bC01NiAwem0zMiA4MGwtOCAwIDAtMzIgMzIgMGM4LjggMCAxNiA3LjIgMTYgMTZzLTcuMiAxNi0xNiAxNmwtMjQgMHoiXX0sS3d0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImVyYXNlciIsaWNvbjpbNTc2LDUxMixbXSwiZjEyZCIsIk0xNzguNSA0MTZsMTIzIDAgNjUuMy02NS4zLTE3My41LTE3My41LTEyNi43IDEyNi43IDExMiAxMTJ6TTIyNCA0ODBsLTQ1LjUgMGMtMTcgMC0zMy4zLTYuNy00NS4zLTE4LjdMMTcgMzQ1QzYuMSAzMzQuMSAwIDMxOS40IDAgMzA0czYuMS0zMC4xIDE3LTQxTDI2MyAxN0MyNzMuOSA2LjEgMjg4LjYgMCAzMDQgMHMzMC4xIDYuMSA0MSAxN0w1MjcgMTk5YzEwLjkgMTAuOSAxNyAyNS42IDE3IDQxcy02LjEgMzAuMS0xNyA0MWwtMTM1IDEzNSAxMjAgMGMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMmwtMjg4IDB6Il19LG1jZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJob3VyZ2xhc3Mtc3RhcnQiLGljb246WzM4NCw1MTIsWyJob3VyZ2xhc3MtMSJdLCJmMjUxIiwiTTMyIDBDMTQuMyAwIDAgMTQuMyAwIDMyUzE0LjMgNjQgMzIgNjRsMCAxMWMwIDQyLjQgMTYuOSA4My4xIDQ2LjkgMTEzLjFsNjcuOSA2Ny45LTY3LjkgNjcuOUM0OC45IDM1My45IDMyIDM5NC42IDMyIDQzN2wwIDExYy0xNy43IDAtMzIgMTQuMy0zMiAzMnMxNC4zIDMyIDMyIDMybDMyMCAwYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMybDAtMTFjMC00Mi40LTE2LjktODMuMS00Ni45LTExMy4xbC02Ny45LTY3LjkgNjcuOS02Ny45YzMwLTMwIDQ2LjktNzAuNyA0Ni45LTExMy4xbDAtMTFjMTcuNyAwIDMyLTE0LjMgMzItMzJTMzY5LjcgMCAzNTIgMEwzMiAwek0yODggNDM3bDAgMTEtMTkyIDAgMC0xMWMwLTI1LjUgMTAuMS00OS45IDI4LjEtNjcuOWw2Ny45LTY3LjkgNjcuOSA2Ny45YzE4IDE4IDI4LjEgNDIuNCAyOC4xIDY3Ljl6Il19LGVNdD1tY2UsZ2NlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImNpcmNsZS1sZWZ0IixpY29uOls1MTIsNTEyLFs2MTg0MCwiYXJyb3ctYWx0LWNpcmNsZS1sZWZ0Il0sImYzNTkiLCJNNTEyIDI1NmEyNTYgMjU2IDAgMSAwIC01MTIgMCAyNTYgMjU2IDAgMSAwIDUxMiAwek0xMjQuNyAyNDQuN2wxMDQtMTA0YzQuNi00LjYgMTEuNS01LjkgMTcuNC0zLjVzOS45IDguMyA5LjkgMTQuOGwwIDU2IDk2IDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJsMCAzMmMwIDE3LjctMTQuMyAzMi0zMiAzMmwtOTYgMCAwIDU2YzAgNi41LTMuOSAxMi4zLTkuOSAxNC44cy0xMi45IDEuMS0xNy40LTMuNWwtMTA0LTEwNGMtNi4yLTYuMi02LjItMTYuNCAwLTIyLjZ6Il19LHRNdD1nY2Usck10PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImNydXplaXJvLXNpZ24iLGljb246WzQ0OCw1MTIsW10sImUxNTIiLCJNMjQwIDk2Yy04OC40IDAtMTYwIDcxLjYtMTYwIDE2MCAwIDcxLjYgNDcuMSAxMzIuMyAxMTIgMTUyLjdMMTkyIDI1NmMwLTEzLjMgMTAuNy0yNCAyNC0yNCAxMi44IDAgMjMuMyAxMC4xIDI0IDIyLjcgMTUuNS05LjUgMzMuNS0xNC43IDUyLjMtMTQuN2wxMS44IDBjMTMuMyAwIDI0IDEwLjcgMjQgMjRzLTEwLjcgMjQtMjQgMjRsLTExLjggMGMtMTguOCAwLTM2LjEgMTAtNDUuNCAyNi4zLTQuNSA3LjktNi45IDE2LjgtNi45IDI1LjlsMCA3NS44YzQyLjUgMCA4MS4xLTE2LjYgMTA5LjgtNDMuNiAxMi45LTEyLjEgMzMuMS0xMS41IDQ1LjIgMS4zczExLjUgMzMuMS0xLjMgNDUuMkMzNTMuNyA0NTYuOCAyOTkuNSA0ODAgMjQwIDQ4MCAxMTYuMyA0ODAgMTYgMzc5LjcgMTYgMjU2UzExNi4zIDMyIDI0MCAzMmM1OS41IDAgMTEzLjcgMjMuMiAxNTMuNyA2MS4xIDEyLjkgMTIuMSAxMy40IDMyLjQgMS4zIDQ1LjJzLTMyLjQgMTMuNC00NS4yIDEuM0MzMjEuMSAxMTIuNiAyODIuNSA5NiAyNDAgOTZ6Il19LGlNdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJzbW9raW5nIixpY29uOls1NzYsNTEyLFsxMjg2ODRdLCJmNDhkIiwiTTM2MCAwYzEzLjMgMCAyNCAxMC43IDI0IDI0bDAgMTljMCA0MC4zIDE2IDc5IDQ0LjUgMTA3LjVsMjEgMjFDNDY5IDE5MSA0ODAgMjE3LjQgNDgwIDI0NWwwIDE5YzAgMTMuMy0xMC43IDI0LTI0IDI0cy0yNC0xMC43LTI0LTI0bDAtMTljMC0xNC45LTUuOS0yOS4xLTE2LjQtMzkuNmwtMjEtMjFDMzU3LjEgMTQ2LjkgMzM2IDk2IDMzNiA0M2wwLTE5YzAtMTMuMyAxMC43LTI0IDI0LTI0ek01NTIgMjg4Yy0xMy4zIDAtMjQtMTAuNy0yNC0yNGwwLTE5YzAtNDAuMy0xNi03OS00NC41LTEwNy41bC0yMS0yMUM0NDMgOTcgNDMyIDcwLjYgNDMyIDQzbDAtMTljMC0xMy4zIDEwLjctMjQgMjQtMjRzMjQgMTAuNyAyNCAyNGwwIDE5YzAgMTQuOSA1LjkgMjkuMSAxNi40IDM5LjZsMjEgMjFDNTU0LjkgMTQxLjEgNTc2IDE5MiA1NzYgMjQ1bDAgMTljMCAxMy4zLTEwLjcgMjQtMjQgMjR6TTMyMCA0NDhsOTYgMCAwLTMyLTk2IDAgMCAzMnpNMCA0MTZjMC0zNS4zIDI4LjctNjQgNjQtNjRsMzg0IDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJsMCA5NmMwIDE3LjctMTQuMyAzMi0zMiAzMkw2NCA1MTJjLTM1LjMgMC02NC0yOC43LTY0LTY0bDAtMzJ6bTU3Ni00MGwwIDExMmMwIDEzLjMtMTAuNyAyNC0yNCAyNHMtMjQtMTAuNy0yNC0yNGwwLTExMmMwLTEzLjMgMTAuNy0yNCAyNC0yNHMyNCAxMC43IDI0IDI0eiJdfSxiY2U9e3ByZWZpeDoiZmFzIixpY29uTmFtZToic3F1YXJlLXBvbGwtdmVydGljYWwiLGljb246WzQ0OCw1MTIsWyJwb2xsIl0sImY2ODEiLCJNNjQgMzJDMjguNyAzMiAwIDYwLjcgMCA5NkwwIDQxNmMwIDM1LjMgMjguNyA2NCA2NCA2NGwzMjAgMGMzNS4zIDAgNjQtMjguNyA2NC02NGwwLTMyMGMwLTM1LjMtMjguNy02NC02NC02NEw2NCAzMnptNTYgMTkyYzEzLjMgMCAyNCAxMC43IDI0IDI0bDAgMTEyYzAgMTMuMy0xMC43IDI0LTI0IDI0cy0yNC0xMC43LTI0LTI0bDAtMTEyYzAtMTMuMyAxMC43LTI0IDI0LTI0em0xODQgODhjMC0xMy4zIDEwLjctMjQgMjQtMjRzMjQgMTAuNyAyNCAyNGwwIDQ4YzAgMTMuMy0xMC43IDI0LTI0IDI0cy0yNC0xMC43LTI0LTI0bDAtNDh6TTIyNCAxMjhjMTMuMyAwIDI0IDEwLjcgMjQgMjRsMCAyMDhjMCAxMy4zLTEwLjcgMjQtMjQgMjRzLTI0LTEwLjctMjQtMjRsMC0yMDhjMC0xMy4zIDEwLjctMjQgMjQtMjR6Il19LGFNdD1iY2Usbk10PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InBlcnNvbi1jaXJjbGUtbWludXMiLGljb246WzY0MCw1MTIsW10sImU1NDAiLCJNMjgwIDI0YTU2IDU2IDAgMSAwIC0xMTIgMCA1NiA1NiAwIDEgMCAxMTIgMHptMjQgMjEyLjdMMzQxIDI4Ni42YzEyLjgtMTcuNSAyOC41LTMyLjcgNDYuMy00NWwtNTYuMi03NS43QzMwNiAxMzIgMjY2LjMgMTEyIDIyNCAxMTJzLTgyIDIwLTEwNy4yIDUzLjlsLTcwLjUgOTVjLTEwLjUgMTQuMi03LjYgMzQuMiA2LjYgNDQuOHMzNC4yIDcuNiA0NC44LTYuNkwxNDQgMjM2LjcgMTQ0IDUxMmMwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMybDAtMTYwYzAtOC44IDcuMi0xNiAxNi0xNnMxNiA3LjIgMTYgMTZsMCAxNjBjMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMmwwLTI3NS4zek02NDAgNDAwYTE0NCAxNDQgMCAxIDAgLTI4OCAwIDE0NCAxNDQgMCAxIDAgMjg4IDB6bS02NCAwYzAgOC44LTcuMiAxNi0xNiAxNmwtMTI4IDBjLTguOCAwLTE2LTcuMi0xNi0xNnM3LjItMTYgMTYtMTZsMTI4IDBjOC44IDAgMTYgNy4yIDE2IDE2eiJdfSxvTXQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiYmlvaGF6YXJkIixpY29uOls1NzYsNTEyLFs5NzYzXSwiZjc4MCIsIk0yNjAgMTIuNmMwLTguMy03LjYtMTQuNS0xNS41LTEyLjEtNjAuOSAxOC44LTEwNS4xIDc1LjgtMTA1LjEgMTQzLjEgMCAyNS4xIDYuMSA0OC43IDE3IDY5LjUtMjEgMS44LTQyIDguMi02MS41IDE5LjUtNTcuOSAzMy42LTg0LjggMTAwLjItNzAuOSAxNjIuNSAxLjkgOC40IDExLjQgMTIgMTguOSA3LjYgNS0yLjkgNy42LTguNiA3LjEtMTQuNC0uMy0zLjMtLjQtNi42LS40LTEwLjEgMC0xMjMuNSAxODQuNC0xMjMuNSAxODQuNCAwIDAgODguNC05NC41IDExMy42LTE0OC4yIDc1LjQtNC41LTMuMi0xMC41LTMuOS0xNS4zLTEuMS03IDQuMS04LjYgMTMuNi0yLjcgMTkuMSA0Ni42IDQzLjggMTE4IDUzLjkgMTc2LjEgMjAuMiAxNy45LTEwLjQgMzIuOC0yMy45IDQ0LjUtMzkuNCAxMS43IDE1LjYgMjYuNiAyOS4xIDQ0LjUgMzkuNCA1OC4xIDMzLjcgMTI5LjUgMjMuNiAxNzYuMS0yMC4yIDUuOS01LjUgNC4zLTE1LjEtMi43LTE5LjEtNC44LTIuOC0xMC44LTIuMS0xNS4zIDEuMS01My43IDM4LjItMTQ4LjIgMTMtMTQ4LjItNzUuNCAwLTEyMy41IDE4NC40LTEyMy41IDE4NC40IDAgMCAzLjQtLjEgNi44LS40IDEwLjEtLjUgNS44IDIuMSAxMS41IDcuMSAxNC40IDcuNCA0LjMgMTcgLjggMTguOS03LjYgMTMuOS02Mi4yLTEzLTEyOC45LTcwLjktMTYyLjUtMTkuNS0xMS4zLTQwLjQtMTcuNy02MS41LTE5LjUgMTAuOS0yMC44IDE3LTQ0LjQgMTctNjkuNSAwLTY3LjMtNDQuMi0xMjQuMy0xMDUuMS0xNDMuMS03LjktMi40LTE1LjUgMy44LTE1LjUgMTIuMSAwIDUuOSA0IDExIDkuNSAxMy4yIDgzLjQgMzMuNiA3MC44IDE3OC40LTM3LjggMTc4LjRTMTY3LjEgNTkuNCAyNTAuNSAyNS44YzUuNS0yLjIgOS41LTcuMyA5LjUtMTMuMnpNMjQ4LjQgMjg4YTQwIDQwIDAgMSAxIDgwIDAgNDAgNDAgMCAxIDEgLTgwIDB6TTQzNSAzMTcuN2MtMTYuMiAwLTMxLjQgNS41LTQyLjEgMTUtMTAuMSA5LjEtMTguMSAyMy40LTE4LjEgNDUuNiAwIDIxLjEgNy4yIDM1IDE2LjUgNDQuMSAzMi4yLTI0LjYgNTUuNS02MC41IDYzLjktMTAxLjgtNi4zLTEuOS0xMy4yLTMtMjAuMi0zek0yMDIgMzc4LjNjMC0yMi4zLTgtMzYuNi0xOC4xLTQ1LjYtMTAuNy05LjYtMjUuOS0xNS00Mi4xLTE1LTcgMC0xMy45IDEtMjAuMiAzIDguNCA0MS4zIDMxLjYgNzcuMiA2My45IDEwMS44IDkuNC05LjEgMTYuNS0yMy4xIDE2LjUtNDQuMnptNDEuMi0yMjQuM2M5IDEwLjIgMjMuMiAxOC4yIDQ1LjIgMTguMnMzNi4yLTggNDUuMi0xOC4yYzYuNy03LjYgMTEuNS0xNy41IDEzLjYtMjguNC0xOC4zLTYuOC0zOC4yLTEwLjUtNTguOC0xMC41cy00MC41IDMuNy01OC44IDEwLjVjMi4yIDEwLjkgNi45IDIwLjggMTMuNiAyOC41eiJdfSx2Y2U9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiYmVsbC1jb25jaWVyZ2UiLGljb246WzUxMiw1MTIsWzEyODcxOCwiY29uY2llcmdlLWJlbGwiXSwiZjU2MiIsIk0yMTYgNjRjLTEzLjMgMC0yNCAxMC43LTI0IDI0czEwLjcgMjQgMjQgMjRsMTYgMCAwIDMzLjNDMTI0LjggMTU2LjcgNDAuMiAyNDMuNyAzMi42IDM1Mmw0NDYuOSAwQzQ3MS44IDI0My43IDM4Ny4yIDE1Ni43IDI4MCAxNDUuM2wwLTMzLjMgMTYgMGMxMy4zIDAgMjQtMTAuNyAyNC0yNHMtMTAuNy0yNC0yNC0yNGwtODAgMHpNMjQgNDAwYy0xMy4zIDAtMjQgMTAuNy0yNCAyNHMxMC43IDI0IDI0IDI0bDQ2NCAwYzEzLjMgMCAyNC0xMC43IDI0LTI0cy0xMC43LTI0LTI0LTI0TDI0IDQwMHoiXX0sc010PXZjZSxsTXQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToicnVsZXItaG9yaXpvbnRhbCIsaWNvbjpbNTc2LDUxMixbXSwiZjU0NyIsIk00OCAzODRjLTI2LjUgMC00OC0yMS41LTQ4LTQ4TDAgMTc2YzAtMjYuNSAyMS41LTQ4IDQ4LTQ4bDI0IDAgMCAxMDRjMCAxMy4zIDEwLjcgMjQgMjQgMjRzMjQtMTAuNyAyNC0yNGwwLTEwNCA0OCAwIDAgNzJjMCAxMy4zIDEwLjcgMjQgMjQgMjRzMjQtMTAuNyAyNC0yNGwwLTcyIDQ4IDAgMCAxMDRjMCAxMy4zIDEwLjcgMjQgMjQgMjRzMjQtMTAuNyAyNC0yNGwwLTEwNCA0OCAwIDAgNzJjMCAxMy4zIDEwLjcgMjQgMjQgMjRzMjQtMTAuNyAyNC0yNGwwLTcyIDQ4IDAgMCAxMDRjMCAxMy4zIDEwLjcgMjQgMjQgMjRzMjQtMTAuNyAyNC0yNGwwLTEwNCAyNCAwYzI2LjUgMCA0OCAyMS41IDQ4IDQ4bDAgMTYwYzAgMjYuNS0yMS41IDQ4LTQ4IDQ4TDQ4IDM4NHoiXX0sY010PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImhvcnNlIixpY29uOls1NzYsNTEyLFsxMjgwMTRdLCJmNmYwIiwiTTQ0OCAyMzguMWwwLTc4LjEgMTYgMCA5LjggMTkuNmMxMi41IDI1LjEgNDIuMiAzNi40IDY4LjMgMjYgMjAuNS04LjIgMzMuOS0yOCAzMy45LTUwLjFMNTc2IDgwYzAtMTkuMS04LjQtMzYuMy0yMS43LTQ4bDUuNyAwYzguOCAwIDE2LTcuMiAxNi0xNlM1NjguOCAwIDU2MCAwTDQ0OCAwQzM3Ny4zIDAgMzIwIDU3LjMgMzIwIDEyOGwtMTcxLjIgMEMxMTguMSAxMjggOTEuMiAxNDQuMyA3Ni4zIDE2OC44IDMzLjIgMTc0LjUgMCAyMTEuNCAwIDI1NmwwIDU2YzAgMTMuMyAxMC43IDI0IDI0IDI0czI0LTEwLjcgMjQtMjRsMC01NmMwLTEzLjQgNi42LTI1LjIgMTYuNy0zMi41IDEuNiAxMyA2LjMgMjUuNCAxMy42IDM2LjRsMjguMiA0Mi40YzguMyAxMi40IDYuNCAyOC43LTEuMiA0MS42LTE2LjUgMjgtMjAuNiA2Mi4yLTEwIDkzLjlsMTcuNSA1Mi40YzQuNCAxMy4xIDE2LjYgMjEuOSAzMC40IDIxLjlsMzMuNyAwYzIxLjggMCAzNy4zLTIxLjQgMzAuNC00Mi4xbC0yMC44LTYyLjVjLTIuMS02LjQtLjUtMTMuNCA0LjMtMTguMmwxMi43LTEyLjdjMTMuMi0xMy4yIDIwLjYtMzEuMSAyMC42LTQ5LjcgMC0yLjMtLjEtNC42LS4zLTYuOWw4NCAyNGM0LjEgMS4yIDguMiAyLjEgMTIuMyAyLjhMMzIwIDQ4MGMwIDE3LjcgMTQuMyAzMiAzMiAzMmwzMiAwYzE3LjcgMCAzMi0xNC4zIDMyLTMybDAtMTY0LjNjMTkuMi0xOS4yIDMxLjUtNDUuNyAzMi03NS43bDAgMCAwLTEuOXpNNDk2IDY0YTE2IDE2IDAgMSAxIDAgMzIgMTYgMTYgMCAxIDEgMC0zMnoiXX0sZE10PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImNhbGVuZGFyIixpY29uOls0NDgsNTEyLFsxMjgxOTcsMTI4MTk4XSwiZjEzMyIsIk0xMjggMEMxMTAuMyAwIDk2IDE0LjMgOTYgMzJsMCAzMi0zMiAwQzI4LjcgNjQgMCA5Mi43IDAgMTI4bDAgNDggNDQ4IDAgMC00OGMwLTM1LjMtMjguNy02NC02NC02NGwtMzIgMCAwLTMyYzAtMTcuNy0xNC4zLTMyLTMyLTMycy0zMiAxNC4zLTMyIDMybDAgMzItMTI4IDAgMC0zMmMwLTE3LjctMTQuMy0zMi0zMi0zMnpNMCAyMjRMMCA0MTZjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMzIwIDBjMzUuMyAwIDY0LTI4LjcgNjQtNjRsMC0xOTItNDQ4IDB6Il19LHVNdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJoYW5kcy1ob2xkaW5nLWNoaWxkIixpY29uOls2NDAsNTEyLFtdLCJlNGZhIiwiTTMyMC0zMmE0MCA0MCAwIDEgMSAwIDgwIDQwIDQwIDAgMSAxIDAtODB6TTQwIDY0YzIyLjEgMCA0MCAxNy45IDQwIDQwbDAgMTYwLjJjMCAxNyA2LjcgMzMuMyAxOC43IDQ1LjNsNTEuMSA1MS4xYzguMyA4LjMgMjEuMyA5LjYgMzEgMy4xIDEyLjktOC42IDE0LjctMjYuOSAzLjctMzcuOC03LjMtNy4zLTIzLjEtMjMuMS00Ny4yLTQ3LjItMTIuNS0xMi41LTEyLjUtMzIuOCAwLTQ1LjNzMzIuOC0xMi41IDQ1LjMgMGMyNC4xIDI0LjEgMzkuOSAzOS45IDQ3LjIgNDcuMmwwIDAgMjUuMyAyNS4zYzIxIDIxIDMyLjggNDkuNSAzMi44IDc5LjJsMCA3OC45YzAgMjYuNS0yMS41IDQ4LTQ4IDQ4bC02Ni43IDBjLTE3IDAtMzMuMy02LjctNDUuMy0xOC43TDI4LjEgMzkzLjRDMTAuMSAzNzUuNCAwIDM1MSAwIDMyNS41TDAgMTA0QzAgODEuOSAxNy45IDY0IDQwIDY0em01NjAgMGMyMi4xIDAgNDAgMTcuOSA0MCA0MGwwIDIyMS41YzAgMjUuNS0xMC4xIDQ5LjktMjguMSA2Ny45TDUxMiA0OTMuM2MtMTIgMTItMjguMyAxOC43LTQ1LjMgMTguN0w0MDAgNTEyYy0yNi41IDAtNDgtMjEuNS00OC00OGwwLTc4LjljMC0yOS43IDExLjgtNTguMiAzMi44LTc5LjJsMjUuMy0yNS4zIDAgMGM3LjMtNy4zIDIzLjEtMjMuMSA0Ny4yLTQ3LjIgMTIuNS0xMi41IDMyLjgtMTIuNSA0NS4zIDBzMTIuNSAzMi44IDAgNDUuM2MtMjQuMSAyNC4xLTM5LjkgMzkuOS00Ny4yIDQ3LjItMTEgMTEtOS4yIDI5LjIgMy43IDM3LjggOS43IDYuNSAyMi43IDUuMiAzMS0zLjFsNTEuMS01MS4xYzEyLTEyIDE4LjctMjguMyAxOC43LTQ1LjNMNTYwIDEwNGMwLTIyLjEgMTcuOS00MCA0MC00MHpNMzg0LjUgMTQ5bC0xOS44LTE2LjcgMTEuMSA4OC44YzEuNiAxMy4yLTcuNyAyNS4xLTIwLjggMjYuOHMtMjUuMS03LjctMjYuOC0yMC44bC00LjQtMzUtNy42IDAtNC40IDM1Yy0xLjYgMTMuMi0xMy42IDIyLjUtMjYuOCAyMC44cy0yMi41LTEzLjYtMjAuOC0yNi44bDExLjEtODguOC0xOS44IDE2LjdjLTEwLjEgOC42LTI1LjMgNy4zLTMzLjgtMi44cy03LjMtMjUuMyAyLjgtMzMuOGwyNy45LTIzLjZDMjcxLjMgNzIuOCAyOTUuMyA2NCAzMjAgNjRzNDguNyA4LjggNjcuNiAyNC43bDI3LjkgMjMuNmMxMC4xIDguNiAxMS40IDIzLjcgMi44IDMzLjhzLTIzLjcgMTEuNC0zMy44IDIuOHoiXX0scE10PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6Iml0YWxpYyIsaWNvbjpbMzg0LDUxMixbXSwiZjAzMyIsIk0xMjggNjRjMC0xNy43IDE0LjMtMzIgMzItMzJsMTkyIDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJsLTU4LjcgMC0xMzMuMyAzMjAgNjQgMGMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMkwzMiA0ODBjLTE3LjcgMC0zMi0xNC4zLTMyLTMyczE0LjMtMzIgMzItMzJsNTguNyAwIDEzMy4zLTMyMC02NCAwYy0xNy43IDAtMzItMTQuMy0zMi0zMnoiXX0saE10PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImtoYW5kYSIsaWNvbjpbNTEyLDUxMixbOTc3Ml0sImY2NmQiLCJNMjQwLjcgOGM4LjktNy40IDIxLjgtNy40IDMwLjcgMGwzNy44IDMxLjVjOC43IDcuMyAxMS4xIDE5LjYgNiAyOS42LTEuMiAyLjQtMi44IDUuNS00LjYgOS4yIDM0LjIgMTkuMiA1Ny4zIDU1LjggNTcuMyA5Ny44cy0yMy4xIDc4LjYtNTcuMyA5Ny44YzEuOCAzLjcgMy4zIDYuOCA0LjYgOS4yIDUuMSAxMCAyLjcgMjIuMy02IDI5LjZsLTM3LjIgMzEgMCAxOS44YzIyLjktMTUuNyA0OC40LTMzLjMgNzYuNy01Mi43IDQyLjgtMjkuNCA2OC40LTc4IDY4LjQtMTMwbDAtMTEuMWMwLTIzLjktNy4xLTQ3LjMtMjAuNC02Ny4yLTUuMS03LjctNC42LTE3LjggMS43LTI0LjYgNi42LTcuMSAxNy4yLTguMSAyNS4yLTIuOCAyNy41IDE4LjEgODkuNCA2Ny41IDg5LjQgMTQ5LjEgMCA0Ni41LTIwLjIgODguNi00MS44IDEyMC40LTIxLjYgMzItNDUuNiA1NS01NS4zIDYzLjgtNy44IDcuMS0xOSA3LjktMjcuNiAzbC03MC44LTQwLjMtMzIuNyAyMi41IDQ1LjUgMzEuM2MxLjgtLjQgMy43LS43IDUuNy0uNyAxMy4zIDAgMjQgMTAuNyAyNCAyNHMtMTAuNyAyNC0yNCAyNGMtMTIuMiAwLTIyLjMtOS4xLTIzLjgtMjFsLTQwLjItMjcuNiAwIDI4LjljOS42IDUuNSAxNiAxNS45IDE2IDI3LjcgMCAxNy43LTE0LjMgMzItMzIgMzJzLTMyLTE0LjMtMzItMzJjMC0xMS44IDYuNC0yMi4yIDE2LTI3LjdsMC0yOC4xLTQwLjMgMjcuN2MtMS44IDExLjQtMTEuOCAyMC4xLTIzLjcgMjAuMS0xMy4zIDAtMjQtMTAuNy0yNC0yNHMxMC43LTI0IDI0LTI0YzIuMiAwIDQuNCAuMyA2LjUgLjlsNDUuOC0zMS41LTMyLjctMjIuNS03MC44IDQwLjNjLTguNyA0LjktMTkuOCA0LjEtMjcuNi0zLTkuNy04LjgtMzMuNy0zMS45LTU1LjMtNjMuOC0yMS41LTMxLjgtNDEuOC03My45LTQxLjgtMTIwLjQgMC04MS43IDYxLjktMTMxLjEgODkuNC0xNDkuMSA4LjEtNS4zIDE4LjYtNC4zIDI1LjIgMi44IDYuNCA2LjkgNi44IDE3IDEuNyAyNC42LTEzLjMgMTkuOS0yMC40IDQzLjMtMjAuNCA2Ny4ybDAgMTEuMWMwIDUxLjkgMjUuNiAxMDAuNiA2OC40IDEzMCAyOC40IDE5LjYgNTMuNyAzNi45IDc1LjYgNTJsMC0xOS4xLTM3LjItMzFjLTguNy03LjMtMTEuMS0xOS42LTYtMjkuNiAxLjItMi40IDIuOC01LjUgNC42LTkuMi0zNC4yLTE5LjItNTcuMy01NS44LTU3LjMtOTcuOHMyMy4xLTc4LjYgNTcuMy05Ny44Yy0xLjgtMy43LTMuMy02LjgtNC42LTkuMi01LjEtMTAtMi43LTIyLjMgNi0yOS42TDI0MC43IDh6TTIyMC4zIDEyMi45Yy0xNyAxMS41LTI4LjIgMzEtMjguMiA1My4xczExLjIgNDEuNiAyOC4yIDUzLjFjNi44LTE5LjIgMTEuOC0zOC40IDExLjgtNTMuMXMtNC45LTMzLjktMTEuOC01My4xem03MS41IDEwNi4yYzE3LTExLjUgMjguMi0zMSAyOC4yLTUzLjFzLTExLjItNDEuNi0yOC4yLTUzLjFjLTYuOCAxOS4yLTExLjggMzguNC0xMS44IDUzLjFzNC45IDMzLjkgMTEuOCA1My4xeiJdfSx4Y2U9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZmFjZS1mcm93bi1vcGVuIixpY29uOls1MTIsNTEyLFsxMjg1NTAsImZyb3duLW9wZW4iXSwiZjU3YSIsIk0yNTYgNTEyYTI1NiAyNTYgMCAxIDAgMC01MTIgMjU2IDI1NiAwIDEgMCAwIDUxMnpNMTc2IDE3NmEzMiAzMiAwIDEgMSAwIDY0IDMyIDMyIDAgMSAxIDAtNjR6bTEyOCAzMmEzMiAzMiAwIDEgMSA2NCAwIDMyIDMyIDAgMSAxIC02NCAwek0xODIuNCAzODIuNWMtMTIuNCA1LjItMjYuNS00LjEtMjEuMS0xNi40IDE2LTM2LjYgNTIuNC02Mi4xIDk0LjgtNjIuMXM3OC44IDI1LjYgOTQuOCA2Mi4xYzUuNCAxMi4zLTguNyAyMS42LTIxLjEgMTYuNC0yMi40LTkuNS00Ny40LTE0LjgtNzMuNy0xNC44cy01MS4zIDUuMy03My43IDE0Ljh6Il19LGZNdD14Y2Usb0U9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiY2hlY2siLGljb246WzQ0OCw1MTIsWzEwMDAzLDEwMDA0XSwiZjAwYyIsIk00MzQuOCA3MC4xYzE0LjMgMTAuNCAxNy41IDMwLjQgNy4xIDQ0LjdsLTI1NiAzNTJjLTUuNSA3LjYtMTQgMTIuMy0yMy40IDEzLjFzLTE4LjUtMi43LTI1LjEtOS4zbC0xMjgtMTI4Yy0xMi41LTEyLjUtMTIuNS0zMi44IDAtNDUuM3MzMi44LTEyLjUgNDUuMyAwbDEwMS41IDEwMS41IDIzNC0zMjEuN2MxMC40LTE0LjMgMzAuNC0xNy41IDQ0LjctNy4xeiJdfSxtTXQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZmluZ2VycHJpbnQiLGljb246WzUxMiw1MTIsW10sImY1NzciLCJNNDggMjU2YzAtMTE0LjkgOTMuMS0yMDggMjA4LTIwOCA2My4xIDAgMTE5LjYgMjguMSAxNTcuOCA3Mi41IDguNiAxMC4xIDIzLjggMTEuMiAzMy44IDIuNnMxMS4yLTIzLjggMi42LTMzLjhDNDAzLjMgMzQuNiAzMzMuNyAwIDI1NiAwIDExNC42IDAgMCAxMTQuNiAwIDI1NmwwIDQwYzAgMTMuMyAxMC43IDI0IDI0IDI0czI0LTEwLjcgMjQtMjRsMC00MHptNDU4LjUtNTIuOWMtMi43LTEzLTE1LjUtMjEuMy0yOC40LTE4LjVzLTIxLjMgMTUuNS0xOC41IDI4LjRjMi45IDEzLjkgNC41IDI4LjMgNC41IDQzLjFsMCA0MGMwIDEzLjMgMTAuNyAyNCAyNCAyNHMyNC0xMC43IDI0LTI0bDAtNDBjMC0xOC4xLTEuOS0zNS44LTUuNS01Mi45ek0yNTYgODBjLTE5IDAtMzcuNCAzLTU0LjUgOC42LTE1LjIgNS0xOC43IDIzLjctOC4zIDM1LjkgNy4xIDguMyAxOC44IDEwLjggMjkuNCA3LjkgMTAuNi0yLjkgMjEuOC00LjQgMzMuNC00LjQgNzAuNyAwIDEyOCA1Ny4zIDEyOCAxMjhsMCAyNC45YzAgMjUuMi0xLjUgNTAuMy00LjQgNzUuMy0xLjcgMTQuNiA5LjQgMjcuOCAyNC4yIDI3LjggMTEuOCAwIDIxLjktOC42IDIzLjMtMjAuMyAzLjMtMjcuNCA1LTU1IDUtODIuN2wwLTI0LjljMC05Ny4yLTc4LjgtMTc2LTE3Ni0xNzZ6TTE1MC43IDE0OC43Yy05LjEtMTAuNi0yNS4zLTExLjQtMzMuOS0uNC0yMy4xIDI5LjgtMzYuOCA2Ny4xLTM2LjggMTA3LjdsMCAyNC45YzAgMjQuMi0yLjYgNDguNC03LjggNzEuOS0zLjQgMTUuNiA3LjkgMzEuMSAyMy45IDMxLjEgMTAuNSAwIDE5LjktNyAyMi4yLTE3LjMgNi40LTI4LjEgOS43LTU2LjggOS43LTg1LjhsMC0yNC45YzAtMjcuMiA4LjUtNTIuNCAyMi45LTczLjEgNy4yLTEwLjQgOC0yNC42LS4yLTM0LjJ6TTI1NiAxNjBjLTUzIDAtOTYgNDMtOTYgOTZsMCAyNC45YzAgMzUuOS00LjYgNzEuNS0xMy44IDEwNi4xLTMuOCAxNC4zIDYuNyAyOSAyMS41IDI5IDkuNSAwIDE3LjktNi4yIDIwLjQtMTUuNCAxMC41LTM5IDE1LjktNzkuMiAxNS45LTExOS43bDAtMjQuOWMwLTI4LjcgMjMuMy01MiA1Mi01MnM1MiAyMy4zIDUyIDUybDAgMjQuOWMwIDM2LjMtMy41IDcyLjQtMTAuNCAxMDcuOS0yLjcgMTMuOSA3LjcgMjcuMiAyMS44IDI3LjIgMTAuMiAwIDE5LTcgMjEtMTcgNy43LTM4LjggMTEuNi03OC4zIDExLjYtMTE4LjFsMC0yNC45YzAtNTMtNDMtOTYtOTYtOTZ6bTI0IDk2YzAtMTMuMy0xMC43LTI0LTI0LTI0cy0yNCAxMC43LTI0IDI0bDAgMjQuOWMwIDU5LjktMTEgMTE5LjMtMzIuNSAxNzUuMmwtNS45IDE1LjNjLTQuOCAxMi40IDEuNCAyNi4zIDEzLjggMzFzMjYuMy0xLjQgMzEtMTMuOGw1LjktMTUuM0MyNjcuOSA0MTEuOSAyODAgMzQ2LjcgMjgwIDI4MC45bDAtMjQuOXoiXX0sZ010PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImNoYXJnaW5nLXN0YXRpb24iLGljb246WzU3Niw1MTIsW10sImY1ZTciLCJNNjQgNjRDNjQgMjguNyA5Mi43IDAgMTI4IDBMMjg4IDBjMzUuMyAwIDY0IDI4LjcgNjQgNjRsMCAyMjRjNDQuMiAwIDgwIDM1LjggODAgODBsMCAxMmMwIDExIDkgMjAgMjAgMjBzMjAtOSAyMC0yMGwwLTEyNy43Yy0zMi41LTEwLjItNTYtNDAuNS01Ni03Ni4zbDAtMzJjMC04LjggNy4yLTE2IDE2LTE2bDE2IDAgMC00OGMwLTguOCA3LjItMTYgMTYtMTZzMTYgNy4yIDE2IDE2bDAgNDggMzIgMCAwLTQ4YzAtOC44IDcuMi0xNiAxNi0xNnMxNiA3LjIgMTYgMTZsMCA0OCAxNiAwYzguOCAwIDE2IDcuMiAxNiAxNmwwIDMyYzAgMzUuOC0yMy41IDY2LjEtNTYgNzYuM0w1MjAgMzgwYzAgMzcuNi0zMC40IDY4LTY4IDY4cy02OC0zMC40LTY4LTY4bDAtMTJjMC0xNy43LTE0LjMtMzItMzItMzJsMCAxMjkuNGM5LjMgMy4zIDE2IDEyLjIgMTYgMjIuNiAwIDEzLjMtMTAuNyAyNC0yNCAyNEw3MiA1MTJjLTEzLjMgMC0yNC0xMC43LTI0LTI0IDAtMTAuNSA2LjctMTkuMyAxNi0yMi42TDY0IDY0em04Mi43IDEyNS43bDM5IDAtMjAuOSA2Ni45Yy0yLjQgNy42IDMuMyAxNS40IDExLjMgMTUuNCAyLjkgMCA1LjYtMSA3LjgtMi45bDk0LjYtODJjMy4xLTIuNyA0LjktNi42IDQuOS0xMC43IDAtNy44LTYuMy0xNC4xLTE0LjEtMTQuMWwtMzkgMCAyMC45LTY2LjljMi40LTcuNi0zLjMtMTUuNC0xMS4zLTE1LjQtMi45IDAtNS42IDEtNy44IDIuOWwtOTQuNiA4MmMtMy4xIDIuNy00LjkgNi42LTQuOSAxMC43IDAgNy44IDYuMyAxNC4xIDE0LjEgMTQuMXoiXX0sYk10PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InVzZXItbG9jayIsaWNvbjpbNTc2LDUxMixbXSwiZjUwMiIsIk0yMjQgOGExMjAgMTIwIDAgMSAxIDAgMjQwIDEyMCAxMjAgMCAxIDEgMC0yNDB6TTE5NC4zIDMwNGw1OS40IDBjMjkuNyAwIDU3LjcgNy4zIDgyLjMgMjAuMWwwIDQuM2MtMTkuNiAxNy42LTMyIDQzLjEtMzIgNzEuNWwwIDk2YzAgNS41IC41IDEwLjkgMS4zIDE2LjFMNDUuNyA1MTJDMjkuMyA1MTIgMTYgNDk4LjcgMTYgNDgyLjMgMTYgMzgzLjggOTUuOCAzMDQgMTk0LjMgMzA0em0zMDEuNyAuMWMwLTE3LjctMTQuMy0zMi0zMi0zMnMtMzIgMTQuMy0zMiAzMmwwIDQ3LjkgNjQgMCAwLTQ3Ljl6TTM1MiA0MDBjMC0yMC45IDEzLjQtMzguNyAzMi00NS4zbDAtNTAuNmMwLTQ0LjIgMzUuOC04MCA4MC04MHM4MCAzNS44IDgwIDgwbDAgNTAuNmMxOC42IDYuNiAzMiAyNC40IDMyIDQ1LjNsMCA5NmMwIDI2LjUtMjEuNSA0OC00OCA0OGwtMTI4IDBjLTI2LjUgMC00OC0yMS41LTQ4LTQ4bDAtOTZ6Il19LHljZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJtb2JpbGUtc2NyZWVuLWJ1dHRvbiIsaWNvbjpbMzg0LDUxMixbIm1vYmlsZS1hbHQiXSwiZjNjZCIsIk0xNiA2NEMxNiAyOC43IDQ0LjcgMCA4MCAwTDMwNCAwYzM1LjMgMCA2NCAyOC43IDY0IDY0bDAgMzg0YzAgMzUuMy0yOC43IDY0LTY0IDY0TDgwIDUxMmMtMzUuMyAwLTY0LTI4LjctNjQtNjRMMTYgNjR6bTY0IDBsMCAzMDQgMjI0IDAgMC0zMDQtMjI0IDB6TTE5MiA0NzJjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzItMzIgMTQuMy0zMiAzMiAxNC4zIDMyIDMyIDMyeiJdfSx2TXQ9eWNlLHhNdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJhbmNob3ItY2lyY2xlLWNoZWNrIixpY29uOls2NDAsNTEyLFtdLCJlNGFhIiwiTTMyMCA5NmEzMiAzMiAwIDEgMSAtNjQgMCAzMiAzMiAwIDEgMSA2NCAwek0yODggMGMtNTMgMC05NiA0My05NiA5NiAwIDQxLjggMjYuNyA3Ny40IDY0IDkwLjVsMCAyNTcuOWMtNjIuOS0xNC4zLTExMC4yLTY5LjctMTExLjktMTM2LjVsMTYuMSAxNC4xYzEwIDguNyAyNS4xIDcuNyAzMy45LTIuM3M3LjctMjUuMS0yLjMtMzMuOWwtNjQtNTZjLTktNy45LTIyLjYtNy45LTMxLjYgMGwtNjQgNTZjLTEwIDguNy0xMSAyMy45LTIuMyAzMy45czIzLjkgMTEgMzMuOSAyLjNMODAgMzA3LjljMi4xIDExMy4xIDk0LjQgMjA0LjEgMjA4IDIwNC4xIDE2LjYgMCAzMi43LTEuOSA0OC4yLTUuNi0yMC4zLTMwLjUtMzIuMi02Ny0zMi4yLTEwNi40IDAtMjcuMyA1LjctNTMuMyAxNi03Ni45bDAtMTM2LjZjMzcuMy0xMy4yIDY0LTQ4LjcgNjQtOTAuNSAwLTUzLTQzLTk2LTk2LTk2ek02NDAgNDAwYTE0NCAxNDQgMCAxIDAgLTI4OCAwIDE0NCAxNDQgMCAxIDAgMjg4IDB6bS04Ni42LTYwLjljNy4xIDUuMiA4LjcgMTUuMiAzLjUgMjIuM2wtNjQgODhjLTIuOCAzLjgtNyA2LjItMTEuNyA2LjVzLTkuMy0xLjMtMTIuNi00LjZsLTQwLTQwYy02LjItNi4yLTYuMi0xNi40IDAtMjIuNnMxNi40LTYuMiAyMi42IDBsMjYuOCAyNi44IDUzLTcyLjljNS4yLTcuMSAxNS4yLTguNyAyMi40LTMuNXoiXX0sd2NlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InBlcnNvbi13YWxraW5nLXdpdGgtY2FuZSIsaWNvbjpbNTc2LDUxMixbImJsaW5kIl0sImYyOWQiLCJNMjI0LTMyYTU2IDU2IDAgMSAxIDAgMTEyIDU2IDU2IDAgMSAxIDAtMTEyek0xNjAgMjA1LjNsLTIyLjYgMjIuNmMtNiA2LTkuNCAxNC4xLTkuNCAyMi42bDAgMzcuNWMwIDE3LjctMTQuMyAzMi0zMiAzMnMtMzItMTQuMy0zMi0zMmwwLTM3LjVjMC0yNS41IDEwLjEtNDkuOSAyOC4xLTY3LjlsMzQuNC0zNC40YzIzLjItMjMuMiA1NC42LTM2LjIgODcuMy0zNi4yIDM2LjEgMCA3MC4zIDE1LjggOTMuOCA0My4xbDY4LjYgODBjMTEuNSAxMy40IDkuOSAzMy42LTMuNSA0NS4xcy0zMy42IDkuOS00NS4xLTMuNWwtNTUuNy02NSAwIDExOC42IDM0LjUgMjkuNmMxNy43IDE1LjIgMjkuMyAzNi4yIDMyLjYgNTkuM2wxMi42IDg4LjFjMi41IDE3LjUtOS43IDMzLjctMjcuMiAzNi4ycy0zMy43LTkuNy0zNi4yLTI3LjJsLTEyLjYtODguMWMtMS4xLTcuNy01LTE0LjctMTAuOS0xOS44bC03MS40LTYxLjJjLTIxLjMtMTguMi0zMy41LTQ0LjktMzMuNS03Mi45bDAtNjkuM3ptLjEgMTY1LjhjMi40IDIuMyA0LjggNC42IDcuNCA2LjhsNDYgMzkuNC0yLjIgNy42Yy00LjUgMTUuNy0xMi45IDMwLTI0LjQgNDEuNWwtNjguMyA2OC4zYy0xMi41IDEyLjUtMzIuOCAxMi41LTQ1LjMgMHMtMTIuNS0zMi44IDAtNDUuM2w2OC4zLTY4LjNjMy44LTMuOCA2LjYtOC42IDguMS0xMy44TDE2MC4xIDM3MXptMjMzLjUtNjIuMmMxMC42LTggMjUuNi01LjggMzMuNiA0LjhsMTQ0IDE5MmM4IDEwLjYgNS44IDI1LjYtNC44IDMzLjZzLTI1LjYgNS44LTMzLjYtNC44bC0xNDQtMTkyYy04LTEwLjYtNS44LTI1LjYgNC44LTMzLjZ6Il19LHlNdD13Y2UsTWNlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImZpbGUtd2F2ZWZvcm0iLGljb246WzM4NCw1MTIsWyJmaWxlLW1lZGljYWwtYWx0Il0sImY0NzgiLCJNMCA2NEMwIDI4LjcgMjguNyAwIDY0IDBMMjEzLjUgMGMxNyAwIDMzLjMgNi43IDQ1LjMgMTguN0wzNjUuMyAxMjUuM2MxMiAxMiAxOC43IDI4LjMgMTguNyA0NS4zTDM4NCA0NDhjMCAzNS4zLTI4LjcgNjQtNjQgNjRMNjQgNTEyYy0zNS4zIDAtNjQtMjguNy02NC02NGwwLTk2IDYwLjMgMCA0OC44IDYyLjdjNS4xIDYuNiAxMy4zIDEwIDIxLjYgOS4xczE1LjUtNi4xIDE5LjEtMTMuNmw0Mi45LTkxLjIgOS45IDE5LjhjNC4xIDguMSAxMi40IDEzLjMgMjEuNSAxMy4zbDcyIDBjMTMuMyAwIDI0LTEwLjcgMjQtMjRzLTEwLjctMjQtMjQtMjRsLTU3LjIgMC0yNS40LTUwLjdjLTQuMS04LjItMTIuNi0xMy40LTIxLjgtMTMuM3MtMTcuNSA1LjUtMjEuNCAxMy44bC00Ny4zIDEwMC42LTMyLTQxLjFDODYuNCAzMDcuNCA3OS40IDMwNCA3MiAzMDRMMCAzMDQgMCA2NHptMjA4LTUuNWwwIDkzLjVjMCAxMy4zIDEwLjcgMjQgMjQgMjRMMzI1LjUgMTc2IDIwOCA1OC41eiJdfSx3TXQ9TWNlLE1NdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJob3VzZS1jcmFjayIsaWNvbjpbNTEyLDUxMixbXSwiZTNiMSIsIk0yNzcuOCA4LjZjLTEyLjMtMTEuNC0zMS4zLTExLjQtNDMuNSAwbC0yMjQgMjA4Yy05LjYgOS0xMi44IDIyLjktOCAzNS4xUzE4LjggMjcyIDMyIDI3MmwxNiAwIDAgMTc2YzAgMzUuMyAyOC43IDY0IDY0IDY0bDg2LjQgMC0zMS4zLTUyLjJjLTQuMS02LjgtMi42LTE1LjUgMy41LTIwLjVMMjU2IDM2OCAxOTUuOCAyODUuMmMtMTAuOS0xNSA4LjItMzMuNSAyMi44LTIybDExNy45IDkyLjZjOCA2LjMgOC4yIDE4LjQgLjQgMjQuOUwyNTYgNDQ4IDI5NC40IDUxMiA0MDAgNTEyYzM1LjMgMCA2NC0yOC43IDY0LTY0bDAtMTc2IDE2IDBjMTMuMiAwIDI1LTguMSAyOS44LTIwLjNzMS42LTI2LjItOC0zNS4xbC0yMjQtMjA4eiJdfSxrTXQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiaGF0LXdpemFyZCIsaWNvbjpbNTEyLDUxMixbXSwiZjZlOCIsIk02NCA0MDBsODUuNy0yMDguMmMxNy00MS4zIDQ3LjgtNzUuMyA4Ny4yLTk2LjNMMzgzLjggMTcuMmMxMi4zLTYuNiAyNi41IDQuNyAyMyAxOC4yTDM2OS42IDE3Ny44Yy0xLjEgNC4xLTEuNiA4LjMtMS42IDEyLjYgMCA2LjMgMS4yIDEyLjYgMy42IDE4LjVsNzYuNCAxOTEuMS0yMDcuMSAwIDExLjgtMzUuNCA0MC40LTEzLjVjNi41LTIuMiAxMC45LTguMyAxMC45LTE1LjJzLTQuNC0xMy0xMC45LTE1LjJsLTQwLjQtMTMuNS0xMy41LTQwLjRDMjM3IDI2MC40IDIzMC45IDI1NiAyMjQgMjU2cy0xMyA0LjQtMTUuMiAxMC45bC0xMy41IDQwLjQtNDAuNCAxMy41QzE0OC40IDMyMyAxNDQgMzI5LjEgMTQ0IDMzNnM0LjQgMTMgMTAuOSAxNS4ybDQwLjQgMTMuNSAxMS44IDM1LjQtMTQzLjEgMHpNMjc5LjYgMTQxLjVjLTEuMS0zLjMtNC4xLTUuNS03LjYtNS41cy02LjUgMi4yLTcuNiA1LjVsLTYuNyAyMC4yLTIwLjIgNi43Yy0zLjMgMS4xLTUuNSA0LjEtNS41IDcuNnMyLjIgNi41IDUuNSA3LjZsMjAuMiA2LjcgNi43IDIwLjJjMS4xIDMuMyA0LjEgNS41IDcuNiA1LjVzNi41LTIuMiA3LjYtNS41bDYuNy0yMC4yIDIwLjItNi43YzMuMy0xLjEgNS41LTQuMSA1LjUtNy42cy0yLjItNi41LTUuNS03LjZsLTIwLjItNi43LTYuNy0yMC4yek0zMiA0NDhsNDQ4IDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJMMzIgNTEyYy0xNy43IDAtMzItMTQuMy0zMi0zMnMxNC4zLTMyIDMyLTMyeiJdfSxrY2U9e3ByZWZpeDoiZmFzIixpY29uTmFtZToidXNlci1kb2N0b3IiLGljb246WzQ0OCw1MTIsWyJ1c2VyLW1kIl0sImYwZjAiLCJNMjI0IDhhMTIwIDEyMCAwIDEgMCAwIDI0MCAxMjAgMTIwIDAgMSAwIDAtMjQwem02MCAzMTIuOGMtNS40LS41LTExLS44LTE2LjYtLjhsLTg2LjkgMGMtNS42IDAtMTEuMSAuMy0xNi42IC44bDAgNjcuNWMxNi41IDcuNiAyOCAyNC4zIDI4IDQzLjYgMCAyNi41LTIxLjUgNDgtNDggNDhzLTQ4LTIxLjUtNDgtNDhjMC0xOS40IDExLjUtMzYuMSAyOC00My42bDAtNTguNEM2MSAzNTMgMTYgNDEzLjYgMTYgNDg0LjYgMTYgNDk5LjcgMjguMyA1MTIgNDMuNCA1MTJsMzYxLjEgMGMxNS4xIDAgMjcuNC0xMi4zIDI3LjQtMjcuNCAwLTcxLTQ1LTEzMS41LTEwOC0xNTQuNmwwIDM3LjRjMjMuMyA4LjIgNDAgMzAuNSA0MCA1Ni42bDAgMzJjMCAxMS05IDIwLTIwIDIwcy0yMC05LTIwLTIwbDAtMzJjMC0xMS05LTIwLTIwLTIwcy0yMCA5LTIwIDIwbDAgMzJjMCAxMS05IDIwLTIwIDIwcy0yMC05LTIwLTIwbDAtMzJjMC0yNi4xIDE2LjctNDguMyA0MC01Ni42bDAtNDYuNnoiXX0sU010PWtjZSxTY2U9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiY2hhcnQtYmFyIixpY29uOls1MTIsNTEyLFsiYmFyLWNoYXJ0Il0sImYwODAiLCJNMzIgMzJjMTcuNyAwIDMyIDE0LjMgMzIgMzJsMCAzMzZjMCA4LjggNy4yIDE2IDE2IDE2bDQwMCAwYzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMyTDgwIDQ4MGMtNDQuMiAwLTgwLTM1LjgtODAtODBMMCA2NEMwIDQ2LjMgMTQuMyAzMiAzMiAzMnptOTYgNjRjMC0xNy43IDE0LjMtMzIgMzItMzJsMTkyIDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJsLTE5MiAwYy0xNy43IDAtMzItMTQuMy0zMi0zMnptMzIgODBsMTI4IDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJsLTEyOCAwYy0xNy43IDAtMzItMTQuMy0zMi0zMnMxNC4zLTMyIDMyLTMyem0wIDExMmwyNTYgMGMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMmwtMjU2IDBjLTE3LjcgMC0zMi0xNC4zLTMyLTMyczE0LjMtMzIgMzItMzJ6Il19LHpNdD1TY2UsemNlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InNwcmF5LWNhbi1zcGFya2xlcyIsaWNvbjpbNTc2LDUxMixbImFpci1mcmVzaGVuZXIiXSwiZjVkMCIsIk0xNjAgMzJsMCA4MCAxMjggMCAwLTgwYzAtMTcuNy0xNC4zLTMyLTMyLTMyTDE5MiAwYy0xNy43IDAtMzIgMTQuMy0zMiAzMnptMCAxMjhjLTUzIDAtOTYgNDMtOTYgOTZsMCAyMDhjMCAyNi41IDIxLjUgNDggNDggNDhsMjI0IDBjMjYuNSAwIDQ4LTIxLjUgNDgtNDhsMC0yMDhjMC01My00My05Ni05Ni05NmwtMTI4IDB6bTY0IDk2YTgwIDgwIDAgMSAxIDAgMTYwIDgwIDgwIDAgMSAxIDAtMTYwek00NDggNDhjMC0xLjQtMS0zLTIuMi0zLjZMNDE2IDMyIDQwMy42IDIuMkM0MDMgMSA0MDEuNCAwIDQwMCAwcy0zIDEtMy42IDIuMkwzODQgMzIgMzU0LjIgNDQuNGMtMS4yIC42LTIuMiAyLjItMi4yIDMuNiAwIDEuNCAxIDMgMi4yIDMuNkwzODQgNjQgMzk2LjQgOTMuOEMzOTcgOTUgMzk4LjYgOTYgNDAwIDk2czMtMSAzLjYtMi4yTDQxNiA2NCA0NDUuOCA1MS42QzQ0NyA1MSA0NDggNDkuNCA0NDggNDh6bTc2LjQgNDUuOEM1MjUgOTUgNTI2LjYgOTYgNTI4IDk2czMtMSAzLjYtMi4yTDU0NCA2NCA1NzMuOCA1MS42YzEuMi0uNiAyLjItMi4yIDIuMi0zLjYgMC0xLjQtMS0zLTIuMi0zLjZMNTQ0IDMyIDUzMS42IDIuMkM1MzEgMSA1MjkuNCAwIDUyOCAwcy0zIDEtMy42IDIuMkw1MTIgMzIgNDgyLjIgNDQuNGMtMS4yIC42LTIuMiAyLjItMi4yIDMuNiAwIDEuNCAxIDMgMi4yIDMuNkw1MTIgNjQgNTI0LjQgOTMuOHptNy4yIDEwMC40Yy0uNi0xLjItMi4yLTIuMi0zLjYtMi4ycy0zIDEtMy42IDIuMkw1MTIgMjI0IDQ4Mi4yIDIzNi40Yy0xLjIgLjYtMi4yIDIuMi0yLjIgMy42IDAgMS40IDEgMyAyLjIgMy42TDUxMiAyNTYgNTI0LjQgMjg1LjhjLjYgMS4yIDIuMiAyLjIgMy42IDIuMnMzLTEgMy42LTIuMkw1NDQgMjU2IDU3My44IDI0My42YzEuMi0uNiAyLjItMi4yIDIuMi0zLjYgMC0xLjQtMS0zLTIuMi0zLjZMNTQ0IDIyNCA1MzEuNiAxOTQuMnpNNTEyIDE0NGMwLTEuNC0xLTMtMi4yLTMuNkw0ODAgMTI4IDQ2Ny42IDk4LjJDNDY3IDk3IDQ2NS40IDk2IDQ2NCA5NnMtMyAxLTMuNiAyLjJMNDQ4IDEyOCA0MTguMiAxNDAuNGMtMS4yIC42LTIuMiAyLjItMi4yIDMuNiAwIDEuNCAxIDMgMi4yIDMuNkw0NDggMTYwIDQ2MC40IDE4OS44Yy42IDEuMiAyLjIgMi4yIDMuNiAyLjJzMy0xIDMuNi0yLjJMNDgwIDE2MCA1MDkuOCAxNDcuNmMxLjItLjYgMi4yLTIuMiAyLjItMy42eiJdfSxDTXQ9emNlLFRNdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJiYWh0LXNpZ24iLGljb246WzMyMCw1MTIsW10sImUwYWMiLCJNMTM2IDBjLTEzLjMgMC0yNCAxMC43LTI0IDI0bDAgNDAtNzQuNCAwQzE2LjggNjQgMCA4MC44IDAgMTAxLjZMMCA0MDYuM2MwIDIzIDE4LjcgNDEuNyA0MS43IDQxLjdsNzAuMyAwIDAgNDBjMCAxMy4zIDEwLjcgMjQgMjQgMjRzMjQtMTAuNyAyNC0yNGwwLTQwIDQ4IDBjNjEuOSAwIDExMi01MC4xIDExMi0xMTIgMC00MC4xLTIxLjEtNzUuMy01Mi43LTk1LjEgMTMuMS0xOC4zIDIwLjctNDAuNyAyMC43LTY0LjkgMC02MS45LTUwLjEtMTEyLTExMi0xMTJsLTE2IDAgMC00MGMwLTEzLjMtMTAuNy0yNC0yNC0yNHpNMTEyIDEyOGwwIDk2LTQ4IDAgMC05NiA0OCAwem00OCA5NmwwLTk2IDE2IDBjMjYuNSAwIDQ4IDIxLjUgNDggNDhzLTIxLjUgNDgtNDggNDhsLTE2IDB6bS00OCA2NGwwIDk2LTQ4IDAgMC05NiA0OCAwem00OCA5NmwwLTk2IDQ4IDBjMjYuNSAwIDQ4IDIxLjUgNDggNDhzLTIxLjUgNDgtNDggNDhsLTQ4IDB6Il19LENjZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJ0ZW1wZXJhdHVyZS1hcnJvdy11cCIsaWNvbjpbNTEyLDUxMixbInRlbXBlcmF0dXJlLXVwIl0sImUwNDAiLCJNNjQuNSA5NmMwLTUzIDQzLTk2IDk2LTk2czk2IDQzIDk2IDk2bDAgMTY0LjdjMjkuNSAyNi40IDQ4IDY0LjcgNDggMTA3LjMgMCA3OS41LTY0LjUgMTQ0LTE0NCAxNDRzLTE0NC02NC41LTE0NC0xNDRjMC00Mi42IDE4LjUtODEgNDgtMTA3LjNMNjQuNSA5NnptOTYgMzM2YzM1LjMgMCA2NC0yOC43IDY0LTY0IDAtMjYuOS0xNi41LTQ5LjktNDAtNTkuM2wwLTIxMi43YzAtMTMuMy0xMC43LTI0LTI0LTI0cy0yNCAxMC43LTI0IDI0bDAgMjEyLjdjLTIzLjUgOS41LTQwIDMyLjUtNDAgNTkuMyAwIDM1LjMgMjguNyA2NCA2NCA2NHpNNDM5LjEgOS40bDY0IDY0YzEyLjUgMTIuNSAxMi41IDMyLjggMCA0NS4zcy0zMi44IDEyLjUtNDUuMyAwbC05LjQtOS40IDAgMTc4LjdjMCAxNy43LTE0LjMgMzItMzIgMzJzLTMyLTE0LjMtMzItMzJsMC0xNzguNy05LjQgOS40Yy0xMi41IDEyLjUtMzIuOCAxMi41LTQ1LjMgMHMtMTIuNS0zMi44IDAtNDUuM2w2NC02NGM2LTYgMTQuMS05LjQgMjIuNi05LjRzMTYuNiAzLjQgMjIuNiA5LjR6Il19LF9NdD1DY2UsTE10PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6IndlYi1hd2Vzb21lIixpY29uOls2NDAsNTEyLFtdLCJlNjgyIiwiTTM3Mi4yIDUyYzAgMjAuOS0xMi40IDM5LTMwLjIgNDcuMkw0NDggMTkyIDU1Mi40IDE3MS4xYy01LjMtNy43LTguNC0xNy4xLTguNC0yNy4xIDAtMjYuNSAyMS41LTQ4IDQ4LTQ4czQ4IDIxLjUgNDggNDhjMCAyNi0yMC42IDQ3LjEtNDYuNCA0OEw0ODEgNDQyLjNjLTEwLjMgMjMtMzMuMiAzNy43LTU4LjQgMzcuN2wtMjA1LjIgMGMtMjUuMiAwLTQ4LTE0LjgtNTguNC0zNy43TDQ2LjQgMTkyQzIwLjYgMTkxLjEgMCAxNzAgMCAxNDQgMCAxMTcuNSAyMS41IDk2IDQ4IDk2czQ4IDIxLjUgNDggNDhjMCAxMC4xLTMuMSAxOS40LTguNCAyNy4xTDE5MiAxOTIgMjk4LjEgOTkuMWMtMTcuNy04LjMtMzAtMjYuMy0zMC00Ny4xIDAtMjguNyAyMy4zLTUyIDUyLTUyczUyIDIzLjMgNTIgNTJ6Il19LEFNdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJub24tYmluYXJ5IixpY29uOlszODQsNTEyLFtdLCJlODA3IiwiTTE5MiA1NDRjLTk3LjIgMC0xNzYtNzguOC0xNzYtMTc2IDAtODYuMyA2Mi4xLTE1OCAxNDQtMTczbDAtNDcuMi00OS43IDI0LjgtMyAxLjNjLTE1LjIgNS43LTMyLjUtLjgtMzkuOS0xNS43LTcuNC0xNC44LTIuMi0zMi42IDExLjUtNDEuM2wyLjgtMS42IDM4LjgtMTkuNC0zOC44LTE5LjRjLTE1LjgtNy45LTIyLjItMjcuMS0xNC4zLTQyLjkgNy40LTE0LjggMjQuOC0yMS40IDQwLTE1LjZsMyAxLjMgNDkuNyAyNC44IDAtNDQuMmMwLTE3LjcgMTQuMy0zMiAzMi0zMnMzMiAxNC4zIDMyIDMybDAgNDQuMiA0OS43LTI0LjggMy0xLjNjMTUuMi01LjggMzIuNSAuOCAzOS45IDE1LjZzMi4yIDMyLjctMTEuNSA0MS4zbC0yLjggMS42LTM4LjcgMTkuNCAzOC43IDE5LjNjMTUuOCA3LjkgMjIuMiAyNy4xIDE0LjMgNDIuOS03LjQgMTQuOC0yNC43IDIxLjQtMzkuOSAxNS42bC0zLTEuMy00OS43LTI0LjggMCA0Ny4yYzgxLjkgMTUuMSAxNDQgODYuOCAxNDQgMTczIDAgOTcuMi03OC44IDE3Ni0xNzYgMTc2em0wLTY0YTExMiAxMTIgMCAxIDAgMC0yMjQgMTEyIDExMiAwIDEgMCAwIDIyNHoiXX0sRE10PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6Im4iLGljb246WzM4NCw1MTIsWzExMF0sIjRlIiwiTTIxLjEgMzMuOWMxMi43LTQuNiAyNi45LS43IDM1LjUgOS42TDMyMCAzNTkuNiAzMjAgNjRjMC0xNy43IDE0LjMtMzIgMzItMzJzMzIgMTQuMyAzMiAzMmwwIDM4NGMwIDEzLjUtOC40IDI1LjUtMjEuMSAzMC4xcy0yNi45IC43LTM1LjUtOS42TDY0IDE1Mi40IDY0IDQ0OGMwIDE3LjctMTQuMyAzMi0zMiAzMlMwIDQ2NS43IDAgNDQ4TDAgNjRDMCA1MC41IDguNCAzOC41IDIxLjEgMzMuOXoiXX0sVGNlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImFycm93cy11cC1kb3duLWxlZnQtcmlnaHQiLGljb246WzUxMiw1MTIsWyJhcnJvd3MiXSwiZjA0NyIsIk0yNzguNiA5LjRjLTEyLjUtMTIuNS0zMi44LTEyLjUtNDUuMyAwbC02NCA2NGMtMTIuNSAxMi41LTEyLjUgMzIuOCAwIDQ1LjNzMzIuOCAxMi41IDQ1LjMgMGw5LjQtOS40IDAgMTE0LjctMTE0LjcgMCA5LjQtOS40YzEyLjUtMTIuNSAxMi41LTMyLjggMC00NS4zcy0zMi44LTEyLjUtNDUuMyAwbC02NCA2NGMtMTIuNSAxMi41LTEyLjUgMzIuOCAwIDQ1LjNsNjQgNjRjMTIuNSAxMi41IDMyLjggMTIuNSA0NS4zIDBzMTIuNS0zMi44IDAtNDUuM2wtOS40LTkuNCAxMTQuNyAwIDAgMTE0LjctOS40LTkuNGMtMTIuNS0xMi41LTMyLjgtMTIuNS00NS4zIDBzLTEyLjUgMzIuOCAwIDQ1LjNsNjQgNjRjMTIuNSAxMi41IDMyLjggMTIuNSA0NS4zIDBsNjQtNjRjMTIuNS0xMi41IDEyLjUtMzIuOCAwLTQ1LjNzLTMyLjgtMTIuNS00NS4zIDBsLTkuNCA5LjQgMC0xMTQuNyAxMTQuNyAwLTkuNCA5LjRjLTEyLjUgMTIuNS0xMi41IDMyLjggMCA0NS4zczMyLjggMTIuNSA0NS4zIDBsNjQtNjRjMTIuNS0xMi41IDEyLjUtMzIuOCAwLTQ1LjNsLTY0LTY0Yy0xMi41LTEyLjUtMzIuOC0xMi41LTQ1LjMgMHMtMTIuNSAzMi44IDAgNDUuM2w5LjQgOS40LTExNC43IDAgMC0xMTQuNyA5LjQgOS40YzEyLjUgMTIuNSAzMi44IDEyLjUgNDUuMyAwczEyLjUtMzIuOCAwLTQ1LjNsLTY0LTY0eiJdfSxFTXQ9VGNlLFBnPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImhvdXNlIixpY29uOls1MTIsNTEyLFsxMjc5NjgsNjM0OTgsNjM1MDAsImhvbWUiLCJob21lLWFsdCIsImhvbWUtbGctYWx0Il0sImYwMTUiLCJNMjc3LjggOC42Yy0xMi4zLTExLjQtMzEuMy0xMS40LTQzLjUgMGwtMjI0IDIwOGMtOS42IDktMTIuOCAyMi45LTggMzUuMVMxOC44IDI3MiAzMiAyNzJsMTYgMCAwIDE3NmMwIDM1LjMgMjguNyA2NCA2NCA2NGwyODggMGMzNS4zIDAgNjQtMjguNyA2NC02NGwwLTE3NiAxNiAwYzEzLjIgMCAyNS04LjEgMjkuOC0yMC4zczEuNi0yNi4yLTgtMzUuMWwtMjI0LTIwOHpNMjQwIDMyMGwzMiAwYzI2LjUgMCA0OCAyMS41IDQ4IDQ4bDAgOTYtMTI4IDAgMC05NmMwLTI2LjUgMjEuNS00OCA0OC00OHoiXX0sJE10PVBnLElNdD1QZyxQTXQ9UGcsTk10PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InNwaW5uZXIiLGljb246WzUxMiw1MTIsW10sImYxMTAiLCJNMjA4IDQ4YTQ4IDQ4IDAgMSAxIDk2IDAgNDggNDggMCAxIDEgLTk2IDB6bTAgNDE2YTQ4IDQ4IDAgMSAxIDk2IDAgNDggNDggMCAxIDEgLTk2IDB6TTQ4IDIwOGE0OCA0OCAwIDEgMSAwIDk2IDQ4IDQ4IDAgMSAxIDAtOTZ6bTM2OCA0OGE0OCA0OCAwIDEgMSA5NiAwIDQ4IDQ4IDAgMSAxIC05NiAwek03NSAzNjkuMUE0OCA0OCAwIDEgMSAxNDIuOSA0MzcgNDggNDggMCAxIDEgNzUgMzY5LjF6TTc1IDc1QTQ4IDQ4IDAgMSAxIDE0Mi45IDE0Mi45IDQ4IDQ4IDAgMSAxIDc1IDc1ek00MzcgMzY5LjFBNDggNDggMCAxIDEgMzY5LjEgNDM3IDQ4IDQ4IDAgMSAxIDQzNyAzNjkuMXoiXX0sX2NlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImdhdmVsIixpY29uOls1NzYsNTEyLFsibGVnYWwiXSwiZjBlMyIsIk0xNjkuNiAxNTMuNGwtMTguNy0xOC43Yy0xMi41LTEyLjUtMTIuNS0zMi44IDAtNDUuM0wyNjUuNi0yNS40YzEyLjUtMTIuNSAzMi44LTEyLjUgNDUuMyAwTDMyOS42LTYuNmMxMi41IDEyLjUgMTIuNSAzMi44IDAgNDUuM0wyMTQuOSAxNTMuNGMtMTIuNSAxMi41LTMyLjggMTIuNS00NS4zIDB6TTI3NiAyMTEuN2wtMzEuNC0zMS40IDExMi0xMTIgMTE5LjQgMTE5LjQtMTEyIDExMi0zMS40LTMxLjQtMjMyIDIzMmMtMTUuNiAxNS42LTQwLjkgMTUuNi01Ni42IDBzLTE1LjYtNDAuOSAwLTU2LjZsMjMyLTIzMnpNMzkwLjkgMzc0LjZjLTEyLjUtMTIuNS0xMi41LTMyLjggMC00NS4zTDUwNS42IDIxNC42YzEyLjUtMTIuNSAzMi44LTEyLjUgNDUuMyAwbDE4LjcgMTguN2MxMi41IDEyLjUgMTIuNSAzMi44IDAgNDUuM0w0NTQuOSAzOTMuNGMtMTIuNSAxMi41LTMyLjggMTIuNS00NS4zIDBsLTE4LjctMTguN3oiXX0sRk10PV9jZSxMY2U9e3ByZWZpeDoiZmFzIixpY29uTmFtZToidGlja2V0LXNpbXBsZSIsaWNvbjpbNTc2LDUxMixbInRpY2tldC1hbHQiXSwiZjNmZiIsIk0wIDEyOEMwIDkyLjcgMjguNyA2NCA2NCA2NGw0NDggMGMzNS4zIDAgNjQgMjguNyA2NCA2NGwwIDY0YzAgOC44LTcuNCAxNS43LTE1LjcgMTguNi0xOC44IDYuNS0zMi4zIDI0LjQtMzIuMyA0NS40czEzLjUgMzguOSAzMi4zIDQ1LjRjOC4zIDIuOSAxNS43IDkuOCAxNS43IDE4LjZsMCA2NGMwIDM1LjMtMjguNyA2NC02NCA2NEw2NCA0NDhjLTM1LjMgMC02NC0yOC43LTY0LTY0bDAtNjRDMCAzMTEuMiA3LjQgMzA0LjMgMTUuNyAzMDEuNCAzNC41IDI5NC45IDQ4IDI3NyA0OCAyNTZzLTEzLjUtMzguOS0zMi4zLTQ1LjRDNy40IDIwNy43IDAgMjAwLjggMCAxOTJsMC02NHoiXX0sT010PUxjZSxSTXQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZG92ZSIsaWNvbjpbNTEyLDUxMixbMTI4MzMwXSwiZjRiYSIsIk00OTYgNjRjMTMuMiAwIDIwLjcgMTUuMSAxMi44IDI1LjZMNDgwIDEyOCA0ODAgMzA0YzAgNzkuNS02NC41IDE0NC0xNDQgMTQ0bC0xMTIgMC00Ni4zIDQ2LjNjLTEwLjQgMTAuNC0yNi41IDEyLjQtMzkuMSA0LjhMNDEuNSA0NDAuOWMtMTctMTAuMi0xNS0zNS41IDMuNC00Mi45TDE2MCAzNTJDMjMuOCAzMTEuMSA3LjUgMTY5LjggMjIgOTUuNyAyNS42IDc3LjkgNDUuMyA3MS40IDYxLjMgODAuMkwzMjAgMjI0IDMyMCAxNDRjMC00NC4yIDM1LjgtODAgODAtODBsOTYgMHptLTk2IDU2YTI0IDI0IDAgMSAwIDAgNDggMjQgMjQgMCAxIDAgMC00OHpNMTgyLjUtOS42YzEyLjQtMTMuNyAzMy4zLTguOSA0Mi41IDcuMWw1Ni40IDk4LjNjLTUuOCAxNC40LTkuMiAzMC4xLTkuNCA0Ni41TDEzOC4xIDY4YzEwLjEtMzEuNiAyNy01OC40IDQ0LjQtNzcuNnoiXX0sQk10PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InRhcnAtZHJvcGxldCIsaWNvbjpbNTEyLDUxMixbXSwiZTU3YyIsIk0yNTYgMTYwYzM1LjMgMCA2NC0yNi45IDY0LTYwIDAtMjQtMzMuNy03MC4xLTUyLjItOTMuNS02LjEtNy43LTE3LjUtNy43LTIzLjYgMC0xOC41IDIzLjQtNTIuMiA2OS41LTUyLjIgOTMuNSAwIDMzLjEgMjguNyA2MCA2NCA2MHpNMzY4IDk2YzAgNjEuOS01MC4xIDExMi0xMTIgMTEyUzE0NCAxNTcuOSAxNDQgOTZjMC0xMS4xIDEuNi0yMS45IDQuNi0zMkw2NCA2NEMyOC43IDY0IDAgOTIuNyAwIDEyOEwwIDM4NGMwIDM1LjMgMjguNyA2NCA2NCA2NGwyNzcuNSAwYzE3IDAgMzMuMy02LjcgNDUuMy0xOC43TDQ5My4zIDMyMi43YzEyLTEyIDE4LjctMjguMyAxOC43LTQ1LjNMNTEyIDEyOGMwLTM1LjMtMjguNy02NC02NC02NGwtODQuNiAwYzMgMTAuMSA0LjYgMjAuOSA0LjYgMzJ6bTg1LjUgMTc2TDMzNiAzODkuNSAzMzYgMjk2YzAtMTMuMyAxMC43LTI0IDI0LTI0bDkzLjUgMHpNOTYgMTI4YTMyIDMyIDAgMSAxIDAgNjQgMzIgMzIgMCAxIDEgMC02NHoiXX0sSE10PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InRyZWUtY2l0eSIsaWNvbjpbNjQwLDUxMixbXSwiZTU4NyIsIk0yODggNDhjMC0yNi41IDIxLjUtNDggNDgtNDhsOTYgMGMyNi41IDAgNDggMjEuNSA0OCA0OGwwIDQ4IDQ4IDAgMC03MmMwLTEzLjMgMTAuNy0yNCAyNC0yNHMyNCAxMC43IDI0IDI0bDAgNzIgMTYgMGMyNi41IDAgNDggMjEuNSA0OCA0OGwwIDMyMGMwIDI2LjUtMjEuNSA0OC00OCA0OGwtMjU2IDBjLTI2LjUgMC00OC0yMS41LTQ4LTQ4bDAtNDE2em02NCA2NGwwIDMyYzAgOC44IDcuMiAxNiAxNiAxNmwzMiAwYzguOCAwIDE2LTcuMiAxNi0xNmwwLTMyYzAtOC44LTcuMi0xNi0xNi0xNmwtMzIgMGMtOC44IDAtMTYgNy4yLTE2IDE2em0xNiA4MGMtOC44IDAtMTYgNy4yLTE2IDE2bDAgMzJjMCA4LjggNy4yIDE2IDE2IDE2bDMyIDBjOC44IDAgMTYtNy4yIDE2LTE2bDAtMzJjMC04LjgtNy4yLTE2LTE2LTE2bC0zMiAwek0zNTIgMzA0bDAgMzJjMCA4LjggNy4yIDE2IDE2IDE2bDMyIDBjOC44IDAgMTYtNy4yIDE2LTE2bDAtMzJjMC04LjgtNy4yLTE2LTE2LTE2bC0zMiAwYy04LjggMC0xNiA3LjItMTYgMTZ6TTUyOCAxOTJjLTguOCAwLTE2IDcuMi0xNiAxNmwwIDMyYzAgOC44IDcuMiAxNiAxNiAxNmwzMiAwYzguOCAwIDE2LTcuMiAxNi0xNmwwLTMyYzAtOC44LTcuMi0xNi0xNi0xNmwtMzIgMHpNNTEyIDMwNGwwIDMyYzAgOC44IDcuMiAxNiAxNiAxNmwzMiAwYzguOCAwIDE2LTcuMiAxNi0xNmwwLTMyYzAtOC44LTcuMi0xNi0xNi0xNmwtMzIgMGMtOC44IDAtMTYgNy4yLTE2IDE2ek05NiA0ODBsMC0xNjAtMTYgMGMtNDQuMiAwLTgwLTM1LjgtODAtODAgMC0yNi43IDEzLjEtNTAuMyAzMy4yLTY0LjktLjgtNC45LTEuMi0xMC0xLjItMTUuMSAwLTUzIDQzLTk2IDk2LTk2czk2IDQzIDk2IDk2bDAgOTZjMCAzNS4zLTI4LjcgNjQtNjQgNjRsMCAxNjBjMCAxNy43LTE0LjMgMzItMzIgMzJzLTMyLTE0LjMtMzItMzJ6Il19LEFjZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJ0dXJuLXVwIixpY29uOlszODQsNTEyLFsxMDU0OCwibGV2ZWwtdXAtYWx0Il0sImYzYmYiLCJNMTY5LjQgOS40YzEyLjUtMTIuNSAzMi44LTEyLjUgNDUuMyAwbDEyOCAxMjhjOS4yIDkuMiAxMS45IDIyLjkgNi45IDM0LjlTMzMyLjkgMTkyIDMyMCAxOTJsLTY0IDAgMCAxNjBjMCA4OC40LTcxLjYgMTYwLTE2MCAxNjBsLTY0IDBjLTE3LjcgMC0zMi0xNC4zLTMyLTMybDAtNjRjMC0xNy43IDE0LjMtMzIgMzItMzJsNjQgMGMxNy43IDAgMzItMTQuMyAzMi0zMmwwLTE2MC02NCAwYy0xMi45IDAtMjQuNi03LjgtMjkuNi0xOS44cy0yLjItMjUuNyA2LjktMzQuOWwxMjgtMTI4eiJdfSxxTXQ9QWNlLE5nPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InRlbXBlcmF0dXJlLXF1YXJ0ZXIiLGljb246WzMyMCw1MTIsWyJ0ZW1wZXJhdHVyZS0xIiwidGhlcm1vbWV0ZXItMSIsInRoZXJtb21ldGVyLXF1YXJ0ZXIiXSwiZjJjYSIsIk0xNjAgMEMxMDcgMCA2NCA0MyA2NCA5NmwwIDE2NC43QzM0LjUgMjg3IDE2IDMyNS40IDE2IDM2OCAxNiA0NDcuNSA4MC41IDUxMiAxNjAgNTEyczE0NC02NC41IDE0NC0xNDRjMC00Mi42LTE4LjUtODEtNDgtMTA3LjNMMjU2IDk2YzAtNTMtNDMtOTYtOTYtOTZ6bTY0IDM2OGMwIDM1LjMtMjguNyA2NC02NCA2NHMtNjQtMjguNy02NC02NGMwLTI2LjkgMTYuNS00OS45IDQwLTU5LjNsMC0yOC43YzAtMTMuMyAxMC43LTI0IDI0LTI0czI0IDEwLjcgMjQgMjRsMCAyOC43YzIzLjUgOS41IDQwIDMyLjUgNDAgNTkuM3oiXX0sak10PU5nLFZNdD1OZyxVTXQ9TmcsRGNlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InNsaWRlcnMiLGljb246WzUxMiw1MTIsWyJzbGlkZXJzLWgiXSwiZjFkZSIsIk0zMiA2NEMxNC4zIDY0IDAgNzguMyAwIDk2czE0LjMgMzIgMzIgMzJsODYuNyAwYzEyLjMgMjguMyA0MC41IDQ4IDczLjMgNDhzNjEtMTkuNyA3My4zLTQ4TDQ4MCAxMjhjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJMMjY1LjMgNjRDMjUzIDM1LjcgMjI0LjggMTYgMTkyIDE2cy02MSAxOS43LTczLjMgNDhMMzIgNjR6bTAgMTYwYy0xNy43IDAtMzIgMTQuMy0zMiAzMnMxNC4zIDMyIDMyIDMybDI0Ni43IDBjMTIuMyAyOC4zIDQwLjUgNDggNzMuMyA0OHM2MS0xOS43IDczLjMtNDhsNTQuNyAwYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMybC01NC43IDBjLTEyLjMtMjguMy00MC41LTQ4LTczLjMtNDhzLTYxIDE5LjctNzMuMyA0OEwzMiAyMjR6bTAgMTYwYy0xNy43IDAtMzIgMTQuMy0zMiAzMnMxNC4zIDMyIDMyIDMybDU0LjcgMGMxMi4zIDI4LjMgNDAuNSA0OCA3My4zIDQ4czYxLTE5LjcgNzMuMy00OEw0ODAgNDQ4YzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMybC0yNDYuNyAwYy0xMi4zLTI4LjMtNDAuNS00OC03My4zLTQ4cy02MSAxOS43LTczLjMgNDhMMzIgMzg0eiJdfSxXTXQ9RGNlLEdNdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJtb3NxdWUiLGljb246WzU3Niw1MTIsWzEyODMzMl0sImY2NzgiLCJNMTc0LjggMjI0bDIyNi40IDBjNDMuNSAwIDc4LjgtMzUuMyA3OC44LTc4LjggMC0yNS41LTEyLjMtNDkuNC0zMy4xLTY0LjJMMjk3LjMtMjUuNGMtNS42LTMuOS0xMy0zLjktMTguNSAwTDEyOS4xIDgxQzEwOC4zIDk1LjggOTYgMTE5LjcgOTYgMTQ1LjIgOTYgMTg4LjcgMTMxLjMgMjI0IDE3NC44IDIyNHpNNTEyIDUxMmMzNS4zIDAgNjQtMjguNyA2NC02NGwwLTIyNGMwLTE3LjctMTQuMy0zMi0zMi0zMnMtMzIgMTQuMy0zMiAzMmwwIDQ4LTQ0OCAwIDAtNDhjMC0xNy43LTE0LjMtMzItMzItMzJTMCAyMDYuMyAwIDIyNEwwIDQ0OGMwIDM1LjMgMjguNyA2NCA2NCA2NGw0NDggMHpNMjQwIDM4NGMwLTI2LjUgMjEuNS00OCA0OC00OHM0OCAyMS41IDQ4IDQ4bDAgODAtOTYgMCAwLTgweiJdfSxZTXQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiaCIsaWNvbjpbMzg0LDUxMixbMTA0XSwiNDgiLCJNMzIwIDI4OGwwIDE2MGMwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMybDAtMzg0YzAtMTcuNy0xNC4zLTMyLTMyLTMycy0zMiAxNC4zLTMyIDMybDAgMTYwLTI1NiAwIDAtMTYwYzAtMTcuNy0xNC4zLTMyLTMyLTMyUzAgNDYuMyAwIDY0TDAgNDQ4YzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJsMC0xNjAgMjU2IDB6Il19LFpNdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJpbmZvIixpY29uOlsxOTIsNTEyLFtdLCJmMTI5IiwiTTQ4IDQ4YTQ4IDQ4IDAgMSAxIDk2IDAgNDggNDggMCAxIDEgLTk2IDB6TTAgMTkyYzAtMTcuNyAxNC4zLTMyIDMyLTMybDY0IDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJsMCAyNTYgMzIgMGMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMkwzMiA1MTJjLTE3LjcgMC0zMi0xNC4zLTMyLTMyczE0LjMtMzIgMzItMzJsMzIgMCAwLTIyNC0zMiAwYy0xNy43IDAtMzItMTQuMy0zMi0zMnoiXX0sRWNlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InBlcnNvbi13YWxraW5nIixpY29uOlszODQsNTEyLFsxMjg2OTQsIndhbGtpbmciXSwiZjU1NCIsIk0xOTIgODBhNTYgNTYgMCAxIDAgMC0xMTIgNTYgNTYgMCAxIDAgMCAxMTJ6TTEwNS40IDIyNy45bDIyLjYtMjIuNiAwIDY5LjNjMCAyOCAxMi4yIDU0LjcgMzMuNSA3Mi45bDcxLjQgNjEuMmM1LjkgNS4xIDkuOCAxMi4xIDEwLjkgMTkuOGwxMi42IDg4LjFjMi41IDE3LjUgMTguNyAyOS43IDM2LjIgMjcuMnMyOS43LTE4LjcgMjcuMi0zNi4ybC0xMi42LTg4LjFjLTMuMy0yMy4xLTE0LjktNDQuMS0zMi42LTU5LjNsLTM0LjUtMjkuNiAwLTExNS4yIDMuOCA0LjdjMTguMiAyMi44IDQ1LjggMzYgNzUgMzZsMzMuMiAwYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMybC0zMy4yIDBjLTkuNyAwLTE4LjktNC40LTI1LTEybC0xNy45LTIyLjRjLTIzLTI4LjgtNTcuOS00NS42LTk0LjgtNDUuNi0zMi4yIDAtNjMuMSAxMi44LTg1LjggMzUuNkw2MC4xIDE4Mi42QzQyLjEgMjAwLjYgMzIgMjI1IDMyIDI1MC41TDMyIDI4OGMwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMybDAtMzcuNWMwLTguNSAzLjQtMTYuNiA5LjQtMjIuNnptMTIuNCAxNzkuNGMtMS41IDUuMi00LjMgMTAtOC4xIDEzLjhMNDEuNCA0ODkuNGMtMTIuNSAxMi41LTEyLjUgMzIuOCAwIDQ1LjNzMzIuOCAxMi41IDQ1LjMgMGw2OC4zLTY4LjNjMTEuNS0xMS41IDE5LjktMjUuOCAyNC40LTQxLjVsMi4yLTcuNi00Ni0zOS40Yy0yLjUtMi4yLTUtNC40LTcuNC02LjhsLTEwLjQgMzYuMnoiXX0sWE10PUVjZSwkY2U9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiYXJyb3ctdHVybi1kb3duIixpY29uOlszODQsNTEyLFsibGV2ZWwtZG93biJdLCJmMTQ5IiwiTTMyIDY0QzE0LjMgNjQgMCA0OS43IDAgMzJTMTQuMyAwIDMyIDBsOTYgMGM1MyAwIDk2IDQzIDk2IDk2bDAgMzA2LjcgNzMuNC03My40YzEyLjUtMTIuNSAzMi44LTEyLjUgNDUuMyAwczEyLjUgMzIuOCAwIDQ1LjNsLTEyOCAxMjhjLTEyLjUgMTIuNS0zMi44IDEyLjUtNDUuMyAwbC0xMjgtMTI4Yy0xMi41LTEyLjUtMTIuNS0zMi44IDAtNDUuM3MzMi44LTEyLjUgNDUuMyAwTDE2MCA0MDIuNyAxNjAgOTZjMC0xNy43LTE0LjMtMzItMzItMzJMMzIgNjR6Il19LFFNdD0kY2UsSk10PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InJvYWQiLGljb246WzUxMiw1MTIsWzEyODczOV0sImYwMTgiLCJNMjIzLjkgMzJsLTc2LjIgMGMtMjkuNCAwLTU1LjEgMjAuMS02Mi4xIDQ4LjZMMS40IDQyMC41Qy02LjEgNDUwLjcgMTYuOCA0ODAgNDggNDgwbDE3NS45IDAgMC02NGMwLTE3LjcgMTQuMy0zMiAzMi0zMnMzMiAxNC4zIDMyIDMybDAgNjQgMTc2LjEgMGMzMS4yIDAgNTQuMS0yOS4zIDQ2LjYtNTkuNUw0MjYuNSA4MC42QzQxOS40IDUyLjEgMzkzLjggMzIgMzY0LjMgMzJsLTc2LjQgMCAwIDY0YzAgMTcuNy0xNC4zIDMyLTMyIDMycy0zMi0xNC4zLTMyLTMybDAtNjR6bTY0IDE5MmwwIDY0YzAgMTcuNy0xNC4zIDMyLTMyIDMycy0zMi0xNC4zLTMyLTMybDAtNjRjMC0xNy43IDE0LjMtMzIgMzItMzJzMzIgMTQuMyAzMiAzMnoiXX0sS010PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InNwaXJhbCIsaWNvbjpbNTEyLDUxMixbXSwiZTgwYSIsIk0xMTUuNSA3LjRjMTMuNi0xMS4zIDMzLjgtOS41IDQ1LjEgNC4xczkuNSAzMy44LTQuMSA0NS4xQzEwMC4yIDEwMy41IDY0IDE3NS4yIDY0IDI1NiA2NCAzNjIgMTUwIDQ0OCAyNTYgNDQ4czE5Mi04NiAxOTItMTkyYzAtNzUuMS02MC45LTEzNi0xMzYtMTM2UzE3NiAxODAuOSAxNzYgMjU2YzAgNDQuMiAzNS44IDgwIDgwIDgwczgwLTM1LjggODAtODBjMC0xMy4zLTEwLjctMjQtMjQtMjRzLTI0IDEwLjctMjQgMjRjMCAxNy43LTE0LjMgMzItMzIgMzJzLTMyLTE0LjMtMzItMzJjMC00OC42IDM5LjQtODggODgtODhzODggMzkuNCA4OCA4OGMwIDc5LjUtNjQuNSAxNDQtMTQ0IDE0NFMxMTIgMzM1LjUgMTEyIDI1NmMwLTExMC41IDg5LjUtMjAwIDIwMC0yMDBzMjAwIDg5LjUgMjAwIDIwMGMwIDE0MS40LTExNC42IDI1Ni0yNTYgMjU2UzAgMzk3LjQgMCAyNTZDMCAxNTUuOCA0NSA2Ni4xIDExNS41IDcuNHoiXX0sSWNlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImZhY2UtZnJvd24iLGljb246WzUxMiw1MTIsWzk3ODUsImZyb3duIl0sImYxMTkiLCJNMjU2IDUxMmEyNTYgMjU2IDAgMSAwIDAtNTEyIDI1NiAyNTYgMCAxIDAgMCA1MTJ6bTkwLjYtMTEzLjljLTIwLjQtMjgtNTMuNC00Ni4xLTkwLjYtNDYuMXMtNzAuMiAxOC4xLTkwLjYgNDYuMWMtNy44IDEwLjctMjIuOCAxMy4xLTMzLjUgNS4zcy0xMy4xLTIyLjgtNS4zLTMzLjVDMTU1LjcgMzMwIDIwMi44IDMwNCAyNTYgMzA0czEwMC4zIDI2IDEyOS40IDY1LjljNy44IDEwLjcgNS40IDI1LjctNS4zIDMzLjVzLTI1LjcgNS40LTMzLjUtNS4zek0xNDQgMjA4YTMyIDMyIDAgMSAxIDY0IDAgMzIgMzIgMCAxIDEgLTY0IDB6bTE5Mi0zMmEzMiAzMiAwIDEgMSAwIDY0IDMyIDMyIDAgMSAxIDAtNjR6Il19LGVrdD1JY2UsUGNlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6IndpbmUtZ2xhc3MtZW1wdHkiLGljb246WzMyMCw1MTIsWyJ3aW5lLWdsYXNzLWFsdCJdLCJmNWNlIiwiTTY0IDBDNDguNyAwIDM1LjYgMTAuOCAzMi42IDI1LjdMMy4yIDE3M0MxLjEgMTgzLjUgMCAxOTQuMiAwIDIwNWwwIDNjMCA3Ny40IDU1IDE0MiAxMjggMTU2LjhsMCAxMTUuMi02NCAwYy0xNy43IDAtMzIgMTQuMy0zMiAzMnMxNC4zIDMyIDMyIDMybDE5MiAwYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMybC02NCAwIDAtMTE1LjJDMjY1IDM1MCAzMjAgMjg1LjQgMzIwIDIwOGwwLTNjMC0xMC43LTEuMS0yMS40LTMuMi0zMkwyODcuNCAyNS43QzI4NC40IDEwLjggMjcxLjMgMCAyNTYgMEw2NCAwem0xLjkgMTg1LjZMOTAuMiA2NCAyMjkuOCA2NCAyNTQuMSAxODUuNmMxLjMgNi40IDEuOSAxMi45IDEuOSAxOS40bDAgM2MwIDUzLTQzIDk2LTk2IDk2cy05Ni00My05Ni05NmwwLTNjMC02LjUgLjYtMTMgMS45LTE5LjR6Il19LHRrdD1QY2Uscmt0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImNsYXBwZXJib2FyZCIsaWNvbjpbNTEyLDUxMixbXSwiZTEzMSIsIk00NDggNjRjMiAwIDMuOSAuMSA1LjggLjNsLTk1LjcgOTUuNyA2Ny45IDAgNzItNzJjOC44IDExIDE0IDI0LjkgMTQgNDBsMCAyNTZjMCAzNS4zLTI4LjcgNjQtNjQgNjRMNjQgNDQ4Yy0zNS4zIDAtNjQtMjguNy02NC02NEwwIDEyOEMwIDkyLjcgMjguNyA2NCA2NCA2NGw3MC4xIDAtOTYgOTYgNjcuOSAwIDk1LTk1IDEtMSA5Mi4xIDAtOTYgOTYgNjcuOSAwIDk1LTk1IDEtMSA4Ni4xIDB6Il19LE5jZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJmb3J3YXJkLXN0ZXAiLGljb246WzM4NCw1MTIsWyJzdGVwLWZvcndhcmQiXSwiZjA1MSIsIk0yMSAzNi44YzEyLjktNyAyOC43LTYuMyA0MSAxLjhMMzIwIDIwOC4xIDMyMCA2NGMwLTE3LjcgMTQuMy0zMiAzMi0zMnMzMiAxNC4zIDMyIDMybDAgMzg0YzAgMTcuNy0xNC4zIDMyLTMyIDMycy0zMi0xNC4zLTMyLTMybDAtMTQ0LjEtMjU4IDE2OS42Yy0xMi4zIDguMS0yOCA4LjgtNDEgMS44UzAgNDU0LjcgMCA0NDBMMCA3MkMwIDU3LjMgOC4xIDQzLjggMjEgMzYuOHoiXX0saWt0PU5jZSxGY2U9e3ByZWZpeDoiZmFzIixpY29uTmFtZToic3F1YXJlLXVwLXJpZ2h0IixpY29uOls0NDgsNTEyLFs4NTk5LCJleHRlcm5hbC1saW5rLXNxdWFyZS1hbHQiXSwiZjM2MCIsIk0zODQgMzJjMzUuMyAwIDY0IDI4LjcgNjQgNjRsMCAzMjBjMCAzNS4zLTI4LjcgNjQtNjQgNjRMNjQgNDgwYy0zNS4zIDAtNjQtMjguNy02NC02NEwwIDk2QzAgNjAuNyAyOC43IDMyIDY0IDMybDMyMCAwek0xNjggMTYwYy05LjcgMC0xOC41IDUuOC0yMi4yIDE0LjhzLTEuNyAxOS4zIDUuMiAyNi4ybDM1IDM1LTY3IDY3Yy05LjQgOS40LTkuNCAyNC42IDAgMzMuOWwyNCAyNGM5LjQgOS40IDI0LjYgOS40IDMzLjkgMGw2Ny02NyAzNSAzNWM2LjkgNi45IDE3LjIgOC45IDI2LjIgNS4yUzMyMCAzMjEuNyAzMjAgMzEybDAtMTI4YzAtMTMuMy0xMC43LTI0LTI0LTI0bC0xMjggMHoiXX0sYWt0PUZjZSxPY2U9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiYm9vay1qb3VybmFsLXdoaWxscyIsaWNvbjpbNDQ4LDUxMixbImpvdXJuYWwtd2hpbGxzIl0sImY2NmEiLCJNOTYgNTEybDMyMCAwYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMybDAtNjYuN2MxOC42LTYuNiAzMi0yNC40IDMyLTQ1LjNsMC0yODhjMC0yNi41LTIxLjUtNDgtNDgtNDhMOTYgMEM0MyAwIDAgNDMgMCA5NkwwIDQxNmMwIDUzIDQzIDk2IDk2IDk2ek02NCA0MTZjMC0xNy43IDE0LjMtMzIgMzItMzJsMjU2IDAgMCA2NC0yNTYgMGMtMTcuNyAwLTMyLTE0LjMtMzItMzJ6TTI3NC4xIDk5LjJjMi42LTIuNiA2LjctMy4xIDkuOS0xLjEgMzIuMSAyMCA1My40IDU1LjYgNTMuNCA5Ni4yIDAgNjIuNi01MC43IDExMy4zLTExMy4zIDExMy4zUzExMC43IDI1Ni45IDExMC43IDE5NC4zYzAtNDAuNiAyMS40LTc2LjIgNTMuNC05Ni4yIDMuMS0yIDcuMi0xLjUgOS45IDEuMXMzLjEgNi43IDEuMiA5LjhjLTUuMiA4LjYtOC4yIDE4LjctOC4yIDI5LjUgMCAxNS4xIDUuOSAyOC44IDE1LjUgMzkuMSAyLjUgMi43IDIuOSA2LjcgLjkgOS43LTQuNyA3LjQtNy40IDE2LjEtNy40IDI1LjUgMCAyMS42IDE0LjMgMzkuOSAzNCA0NS45bDEtMjQuOGMtNy4xLTQuNC0xMS44LTEyLjItMTEuOC0yMS4xIDAtOS42IDUuNS0xOCAxMy41LTIyLjFsMy4zLTgxLjhjLjItNC4zIDMuNy03LjcgOC03LjdzNy44IDMuNCA4IDcuN2wzLjMgODEuOGM4IDQuMSAxMy41IDEyLjQgMTMuNSAyMi4xIDAgOC45LTQuNyAxNi43LTExLjggMjEuMWwxIDI0LjhjMTkuNi02IDMzLjktMjQuMSAzNC00NS42bDAtLjZjLS4xLTkuMy0yLjctMTcuOS03LjQtMjUuMi0xLjktMy4xLTEuNi03LjEgLjktOS43IDkuNi0xMC4yIDE1LjUtMjMuOSAxNS41LTM5LjEgMC0xMC44LTMtMjAuOS04LjItMjkuNS0xLjktMy4yLTEuNC03LjIgMS4yLTkuOHoiXX0sbmt0PU9jZSxSY2U9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiY2hhbXBhZ25lLWdsYXNzZXMiLGljb246WzY0MCw1MTIsWzEyOTM0NiwiZ2xhc3MtY2hlZXJzIl0sImY3OWYiLCJNMTU1LjYgMTcuM0MxNjMgMyAxNzkuOS0zLjYgMTk1IDEuOWwxMjUgNDUuNiAxMjUtNDUuNmMxNS4xLTUuNSAzMiAxLjEgMzkuNCAxNS40bDc4LjggMTUyLjljMjguOCA1NS44IDEwLjMgMTIyLjMtMzguNSAxNTYuNmwzMS4zIDg2LjIgNDEtMTVjMTYuNi02IDM1IDIuNSA0MSAxOS4xcy0yLjUgMzUtMTkuMSA0MWMtNDcuNCAxNy4zLTk0LjggMzQuNS0xNDIuMiA1MS44LTE2LjYgNi4xLTM1LTIuNS00MS0xOS4xczIuNS0zNSAxOS4xLTQxbDQxLTE1LTMxLjMtODYuMmMtNTkuNCA1LjItMTE2LjItMzMuOS0xMzAtOTUuMmwtMTQuNi02NC43LTE0LjYgNjQuN2MtMTMuOCA2MS4zLTcwLjYgMTAwLjQtMTMwIDk1LjJsLTMxLjMgODYuMiA0MSAxNWMxNi42IDYuMSAyNS4yIDI0LjQgMTkuMSA0MXMtMjQuNCAyNS4yLTQxIDE5LjFjLTQ3LjQtMTcuMy05NC44LTM0LjYtMTQyLjItNTEuOC0xNi42LTYuMS0yNS4yLTI0LjQtMTkuMS00MVMyNi4zIDM5MiA0Mi45IDM5OGw0MSAxNSAzMS4zLTg2LjJDNjYuNSAyOTIuNSA0OC4xIDIyNiA3Ni45IDE3MC4yTDE1NS42IDE3LjN6bTQ0IDU0LjRsLTI3LjIgNTIuOCA4OS4yIDMyLjUgMTMuMS01Ny45LTc1LjEtMjcuNHptMjQwLjkgMGwtNzUuMSAyNy40IDEzLjEgNTcuOSA4OS4yLTMyLjUtMjcuMi01Mi44eiJdfSxva3Q9UmNlLHNrdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJkdW1wc3RlciIsaWNvbjpbNTc2LDUxMixbXSwiZjc5MyIsIk0xMzIuMyA2NEwxMDYuNyAxOTIgMjQgMTkyYy0xMy4zIDAtMjQtMTAuNy0yNC0yNGwwLTQuMWMwLTIuNiAuNC01LjEgMS4yLTcuNkwyNi41IDgwLjRDMjkuOCA3MC42IDM5IDY0IDQ5LjMgNjRsODMgMHptMjMuNCAxMjhsMjUuNi0xMjggODIuNyAwIDAgMTI4LTEwOC4zIDB6TTMxMiA2NGw4Mi43IDAgMjUuNiAxMjgtMTA4LjMgMCAwLTEyOHptMTMxLjcgMGw4MyAwYzEwLjMgMCAxOS41IDYuNiAyMi44IDE2LjRsMjUuMyA3NS45Yy44IDIuNCAxLjIgNSAxLjIgNy42bDAgNC4xYzAgMTMuMy0xMC43IDI0LTI0IDI0bC04Mi43IDAtMjUuNi0xMjh6TTI1LjcgMjQwbDUyNC43IDBjLS40IDIuMS0xMy4zIDczLjQtMzguOSAyMTMuNy0zIDE2LjMtMTcuOSAyNy42LTM0LjQgMjYuMVM0NDggNDY0LjYgNDQ4IDQ0OGwwLTE2LTMyMCAwIDAgMTZjMCAxNi42LTEyLjYgMzAuNC0yOS4xIDMxLjlTNjcuNSA0NzAgNjQuNSA0NTMuN0MzOSAzMTMuMyAyNiAyNDIuMSAyNS43IDI0MHoiXX0sbGt0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImhlYXJ0LWNpcmNsZS14bWFyayIsaWNvbjpbNTc2LDUxMixbXSwiZTUwMSIsIk0yNDEgODcuMWwxNSAyMC43IDE1LTIwLjdDMjk2IDUyLjUgMzM2LjIgMzIgMzc4LjkgMzIgNDUyLjQgMzIgNTEyIDkxLjYgNTEyIDE2NS4xbDAgMi42YzAgMTcuNi0zLjQgMzUuNi05LjUgNTMuNy0yMS44LTguNi00NS42LTEzLjQtNzAuNS0xMy40LTEwNiAwLTE5MiA4Ni0xOTIgMTkyIDAgMjguNSA2LjIgNTUuNiAxNy40IDgwLS41IDAtLjkgMC0xLjQgMC0xNS41IDAtMzAuOC00LjYtNDMuMS0xNC4xLTczLTU1LjctMjEyLjktMTg2LTIxMi45LTI5OC4ybDAtMi42QzAgOTEuNiA1OS42IDMyIDEzMy4xIDMyIDE3NS44IDMyIDIxNiA1Mi41IDI0MSA4Ny4xek00MzIgMjU2YTE0NCAxNDQgMCAxIDEgMCAyODggMTQ0IDE0NCAwIDEgMSAwLTI4OHptNTkuMyAxMDcuM2M2LjItNi4yIDYuMi0xNi40IDAtMjIuNnMtMTYuNC02LjItMjIuNiAwbC0zNi43IDM2LjctMzYuNy0zNi43Yy02LjItNi4yLTE2LjQtNi4yLTIyLjYgMHMtNi4yIDE2LjQgMCAyMi42bDM2LjcgMzYuNy0zNi43IDM2LjdjLTYuMiA2LjItNi4yIDE2LjQgMCAyMi42czE2LjQgNi4yIDIyLjYgMGwzNi43LTM2LjcgMzYuNyAzNi43YzYuMiA2LjIgMTYuNCA2LjIgMjIuNiAwczYuMi0xNi40IDAtMjIuNmwtMzYuNy0zNi43IDM2LjctMzYuN3oiXX0sY2t0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImNvbXB1dGVyIixpY29uOls1NzYsNTEyLFtdLCJlNGU1IiwiTTM0OC44IDMyQzM0MC43IDQ2LjEgMzM2IDYyLjUgMzM2IDgwbDAgMTYtMjcyIDAgMCAyMjQgMjcyIDAgMCA2NC0yNzIgMGMtMzUuMyAwLTY0LTI4LjctNjQtNjRMMCA5NkMwIDYwLjcgMjguNyAzMiA2NCAzMmwyODQuOCAwek0zMzYgNDMyYzAgMTcuNSA0LjcgMzMuOSAxMi44IDQ4TDEyMCA0ODBjLTEzLjMgMC0yNC0xMC43LTI0LTI0czEwLjctMjQgMjQtMjRsMjE2IDB6TTQzMiAzMmw5NiAwYzI2LjUgMCA0OCAyMS41IDQ4IDQ4bDAgMzUyYzAgMjYuNS0yMS41IDQ4LTQ4IDQ4bC05NiAwYy0yNi41IDAtNDgtMjEuNS00OC00OGwwLTM1MmMwLTI2LjUgMjEuNS00OCA0OC00OHptMjQgNjRjLTEzLjMgMC0yNCAxMC43LTI0IDI0czEwLjcgMjQgMjQgMjRsNDggMGMxMy4zIDAgMjQtMTAuNyAyNC0yNHMtMTAuNy0yNC0yNC0yNGwtNDggMHptMCA5NmMtMTMuMyAwLTI0IDEwLjctMjQgMjRzMTAuNyAyNCAyNCAyNGw0OCAwYzEzLjMgMCAyNC0xMC43IDI0LTI0cy0xMC43LTI0LTI0LTI0bC00OCAwem01NiAxNDRhMzIgMzIgMCAxIDAgLTY0IDAgMzIgMzIgMCAxIDAgNjQgMHoiXX0sQmNlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6IndhbmQtbWFnaWMiLGljb246WzUxMiw1MTIsWyJtYWdpYyJdLCJmMGQwIiwiTTM5OC41IDEyLjJsLTg4LjIgODguMiAxMDEuMyAxMDEuMyA4OC4yLTg4LjJDNTA3LjYgMTA1LjYgNTEyIDk1IDUxMiA4NHMtNC40LTIxLjYtMTIuMi0yOS41TDQ1Ny41IDEyLjJDNDQ5LjYgNC40IDQzOSAwIDQyOCAwcy0yMS42IDQuNC0yOS41IDEyLjJ6TTI3Ni40IDEzNC4zTDEyLjIgMzk4LjVDNC40IDQwNi40IDAgNDE3IDAgNDI4czQuNCAyMS42IDEyLjIgMjkuNWw0Mi4zIDQyLjNDNjIuNCA1MDcuNiA3MyA1MTIgODQgNTEyczIxLjYtNC40IDI5LjUtMTIuMkwzNzcuNyAyMzUuNiAyNzYuNCAxMzQuM3oiXX0sZGt0PUJjZSx1a3Q9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiYnJhaW4iLGljb246WzUxMiw1MTIsWzEyOTUwNF0sImY1ZGMiLCJNMTIwIDU2YzAtMzAuOSAyNS4xLTU2IDU2LTU2bDI0IDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJsMCA0NDhjMCAxNy43LTE0LjMgMzItMzIgMzJsLTMyIDBjLTI5LjggMC01NC45LTIwLjQtNjItNDgtLjcgMC0xLjMgMC0yIDAtNDQuMiAwLTgwLTM1LjgtODAtODAgMC0xOCA2LTM0LjYgMTYtNDgtMTkuNC0xNC42LTMyLTM3LjgtMzItNjQgMC0zMC45IDE3LjYtNTcuOCA0My4yLTcxLjEtNy4xLTEyLTExLjItMjYtMTEuMi00MC45IDAtNDQuMiAzNS44LTgwIDgwLTgwbDAtMjR6bTI3MiAwbDAgMjRjNDQuMiAwIDgwIDM1LjggODAgODAgMCAxNS00LjEgMjktMTEuMiA0MC45IDI1LjcgMTMuMyA0My4yIDQwLjEgNDMuMiA3MS4xIDAgMjYuMi0xMi42IDQ5LjQtMzIgNjQgMTAgMTMuNCAxNiAzMCAxNiA0OCAwIDQ0LjItMzUuOCA4MC04MCA4MC0uNyAwLTEuMyAwLTIgMC03LjEgMjcuNi0zMi4yIDQ4LTYyIDQ4bC0zMiAwYy0xNy43IDAtMzItMTQuMy0zMi0zMmwwLTQ0OGMwLTE3LjcgMTQuMy0zMiAzMi0zMmwyNCAwYzMwLjkgMCA1NiAyNS4xIDU2IDU2eiJdfSxwa3Q9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiYnJpZWZjYXNlLW1lZGljYWwiLGljb246WzUxMiw1MTIsW10sImY0NjkiLCJNMjAwIDQ4bDExMiAwYzQuNCAwIDggMy42IDggOGwwIDQwLTEyOCAwIDAtNDBjMC00LjQgMy42LTggOC04em0tNTYgOGwwIDQwLTgwIDBDMjguNyA5NiAwIDEyNC43IDAgMTYwTDAgNDE2YzAgMzUuMyAyOC43IDY0IDY0IDY0bDM4NCAwYzM1LjMgMCA2NC0yOC43IDY0LTY0bDAtMjU2YzAtMzUuMy0yOC43LTY0LTY0LTY0bC04MCAwIDAtNDBjMC0zMC45LTI1LjEtNTYtNTYtNTZMMjAwIDBjLTMwLjkgMC01NiAyNS4xLTU2IDU2em04MCAxNjBjMC04LjggNy4yLTE2IDE2LTE2bDMyIDBjOC44IDAgMTYgNy4yIDE2IDE2bDAgNDAgNDAgMGM4LjggMCAxNiA3LjIgMTYgMTZsMCAzMmMwIDguOC03LjIgMTYtMTYgMTZsLTQwIDAgMCA0MGMwIDguOC03LjIgMTYtMTYgMTZsLTMyIDBjLTguOCAwLTE2LTcuMi0xNi0xNmwwLTQwLTQwIDBjLTguOCAwLTE2LTcuMi0xNi0xNmwwLTMyYzAtOC44IDcuMi0xNiAxNi0xNmw0MCAwIDAtNDB6Il19LGhrdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJob3VzZS1tZWRpY2FsLWNpcmNsZS1leGNsYW1hdGlvbiIsaWNvbjpbNjQwLDUxMixbXSwiZTUxMiIsIk0zMDkuOCA4LjZjLTEyLjMtMTEuNC0zMS4zLTExLjQtNDMuNSAwbC0yMjQgMjA4Yy05LjYgOS0xMi44IDIyLjktOCAzNS4xUzUwLjggMjcyIDY0IDI3MmwxNiAwIDAgMTc2YzAgMzUuMyAyOC43IDY0IDY0IDY0bDE5NiAwYy0yMS4yLTI5LjUtMzQuMy02NS4zLTM1LjktMTA0TDI3MiA0MDhjLTguOCAwLTE2LTcuMi0xNi0xNmwwLTQwLTQwIDBjLTguOCAwLTE2LTcuMi0xNi0xNmwwLTMyYzAtOC44IDcuMi0xNiAxNi0xNmw0MCAwIDAtNDBjMC04LjggNy4yLTE2IDE2LTE2bDMyIDBjOC44IDAgMTYgNy4yIDE2IDE2bDAgNDAgMjAgMGMzNC45LTQ4LjUgOTEuNy04MCAxNTYtODAgMTAuNyAwIDIxLjEgLjkgMzEuMyAyLjVMMzA5LjggOC42ek00OTYgNTQ0YTE0NCAxNDQgMCAxIDAgMC0yODggMTQ0IDE0NCAwIDEgMCAwIDI4OHptMC0xMDBhMjAgMjAgMCAxIDEgMCA0MCAyMCAyMCAwIDEgMSAwLTQwem0wLTE0MGM4LjggMCAxNiA3LjIgMTYgMTZsMCA4MGMwIDguOC03LjIgMTYtMTYgMTZzLTE2LTcuMi0xNi0xNmwwLTgwYzAtOC44IDcuMi0xNiAxNi0xNnoiXX0sZmt0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImNvZGUtY29tbWl0IixpY29uOls1NzYsNTEyLFtdLCJmMzg2IiwiTTI4OCAzMzZhODAgODAgMCAxIDAgMC0xNjAgODAgODAgMCAxIDAgMCAxNjB6bTE1Ni44LTQ4QzQzMCAzNjEgMzY1LjQgNDE2IDI4OCA0MTZTMTQ2IDM2MSAxMzEuMiAyODhMMzIgMjg4Yy0xNy43IDAtMzItMTQuMy0zMi0zMnMxNC4zLTMyIDMyLTMybDk5LjIgMEMxNDYgMTUxIDIxMC42IDk2IDI4OCA5NnMxNDIgNTUgMTU2LjggMTI4bDk5LjIgMGMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMmwtOTkuMiAweiJdfSxta3Q9e3ByZWZpeDoiZmFzIixpY29uTmFtZToicGVyc29uLWJyZWFzdGZlZWRpbmciLGljb246WzQ0OCw1MTIsW10sImU1M2EiLCJNMjI0IDBhODAgODAgMCAxIDEgMCAxNjAgODAgODAgMCAxIDEgMC0xNjB6TTQzNi44IDM4Mi44TDM3My41IDQ2MmMtMTYuNiAyMC43LTQ2LjggMjQuMS02Ny41IDcuNS0xNy42LTE0LjEtMjIuNy0zOC4xLTEzLjUtNTcuN2wtLjctLjFjLTM4LjktNS42LTc0LjMtMjUuMS05OS43LTU0LjhsMC0zNi44YzAtMTcuNy0xNC4zLTMyLTMyLTMycy0zMiAxNC4zLTMyIDMybDAgNDhjMCAuOCAwIDEuNiAuMSAyLjRsMTAxLjQgNTAuN2MyMy43IDExLjkgMzMuMyA0MC43IDIxLjUgNjQuNHMtNDAuNyAzMy4zLTY0LjQgMjEuNUwyNy4yIDQyNy4zYy0xLjEtLjUtMi4yLTEuMS0zLjMtMS43LTQuOS0yLjgtOS4yLTYuNC0xMi42LTEwLjYtNC42LTUuNC03LjgtMTEuNy05LjYtMTguNC0zLjMtMTItMS45LTI1LjIgNC44LTM2LjYgLjYtMS4xIDEuMy0yLjIgMi0zLjJMNzUuNiAyNTYuMWMyNi43LTQwLjEgNzEuNy02NC4xIDExOS44LTY0LjFsNzUuMiAwYzQ2LjUgMCA5MC4xIDIyLjUgMTE3LjIgNjAuM2w1MC43IDcwLjljMi4yIDMgNCA2LjEgNS41IDkuNCAyLjkgNi43IDQuMyAxMy44IDQgMjAuOC0uMyAxMC42LTQuMiAyMS0xMS4yIDI5LjR6TTMyMCAzMzJhNDQgNDQgMCAxIDAgLTg4IDAgNDQgNDQgMCAxIDAgODggMHoiXX0sZ2t0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InBlcnNvbi1yYXlzIixpY29uOls1MTIsNTEyLFtdLCJlNTRkIiwiTTMxMi41IDI0YTU2IDU2IDAgMSAwIC0xMTIgMCA1NiA1NiAwIDEgMCAxMTIgMHptMjQgMjEyLjdsNDYuMyA2Mi40YzEwLjUgMTQuMiAzMC42IDE3LjIgNDQuOCA2LjZzMTcuMi0zMC42IDYuNi00NC44bC03MC41LTk1QzMzOC41IDEzMiAyOTguOCAxMTIgMjU2LjUgMTEycy04MiAyMC0xMDcuMiA1My45bC03MC41IDk1Yy0xMC41IDE0LjItNy42IDM0LjIgNi42IDQ0LjhzMzQuMiA3LjYgNDQuOC02LjZsNDYuMy02Mi40IDAgMjc1LjNjMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMmwwLTE2MGMwLTguOCA3LjItMTYgMTYtMTZzMTYgNy4yIDE2IDE2bDAgMTYwYzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJsMC0yNzUuM3pNNy41IDdjLTkuNCA5LjQtOS40IDI0LjYgMCAzMy45bDgwIDgwYzkuNCA5LjQgMjQuNiA5LjQgMzMuOSAwczkuNC0yNC42IDAtMzMuOUw0MS41IDdDMzIuMS0yLjMgMTYuOS0yLjMgNy41IDd6bTQ2NCAwbC04MCA4MGMtOS40IDkuNC05LjQgMjQuNiAwIDMzLjlzMjQuNiA5LjQgMzMuOSAwbDgwLTgwYzkuNC05LjQgOS40LTI0LjYgMC0zMy45cy0yNC42LTkuNC0zMy45IDB6TTcuNSA1MDVjOS40IDkuNCAyNC42IDkuNCAzMy45IDBsODAtODBjOS40LTkuNCA5LjQtMjQuNiAwLTMzLjlzLTI0LjYtOS40LTMzLjkgMGwtODAgODBjLTkuNCA5LjQtOS40IDI0LjYgMCAzMy45em00NjQgMGM5LjQgOS40IDI0LjYgOS40IDMzLjkgMHM5LjQtMjQuNiAwLTMzLjlsLTgwLTgwYy05LjQtOS40LTI0LjYtOS40LTMzLjkgMHMtOS40IDI0LjYgMCAzMy45bDgwIDgweiJdfSxia3Q9e3ByZWZpeDoiZmFzIixpY29uTmFtZToibWFuYXQtc2lnbiIsaWNvbjpbMzg0LDUxMixbXSwiZTFkNSIsIk0xOTIgMzJjLTEzLjMgMC0yNCAxMC43LTI0IDI0bDAgNDEuNUM3My4zIDEwOS4zIDAgMTkwLjEgMCAyODhMMCA0NDhjMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMmwwLTE2MGMwLTYyLjUgNDQuOC0xMTQuNSAxMDQtMTI1LjhMMTY4IDQ1NmMwIDEzLjMgMTAuNyAyNCAyNCAyNHMyNC0xMC43IDI0LTI0bDAtMjkzLjhjNTkuMiAxMS4yIDEwNCA2My4zIDEwNCAxMjUuOGwwIDE2MGMwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMybDAtMTYwYzAtOTcuOS03My4zLTE3OC43LTE2OC0xOTAuNUwyMTYgNTZjMC0xMy4zLTEwLjctMjQtMjQtMjR6Il19LEhjZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJzb3J0IixpY29uOlszODQsNTEyLFsidW5zb3J0ZWQiXSwiZjBkYyIsIk0yLjQgMjA0LjJjNSAxMiAxNi42IDE5LjggMjkuNiAxOS44bDMyMCAwYzEyLjkgMCAyNC42LTcuOCAyOS42LTE5LjhzMi4yLTI1LjctNi45LTM0LjlsLTE2MC0xNjBjLTEyLjUtMTIuNS0zMi44LTEyLjUtNDUuMyAwbC0xNjAgMTYwYy05LjIgOS4yLTExLjkgMjIuOS02LjkgMzQuOXptMCAxMDMuNWMtNSAxMi0yLjIgMjUuNyA2LjkgMzQuOWwxNjAgMTYwYzEyLjUgMTIuNSAzMi44IDEyLjUgNDUuMyAwbDE2MC0xNjBjOS4yLTkuMiAxMS45LTIyLjkgNi45LTM0LjlTMzY0LjkgMjg4IDM1MiAyODhMMzIgMjg4Yy0xMi45IDAtMjQuNiA3LjgtMjkuNiAxOS44eiJdfSx2a3Q9SGNlLHFjZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJjaXJjbGUtcmFkaWF0aW9uIixpY29uOls1MTIsNTEyLFs5NzYyLCJyYWRpYXRpb24tYWx0Il0sImY3YmEiLCJNMCAyNTZhMjU2IDI1NiAwIDEgMSA1MTIgMCAyNTYgMjU2IDAgMSAxIC01MTIgMHptODAgMGw2NC4zIDBjOC43IDAgMTUuNy03LjEgMTcuMy0xNS42IDQuNC0yNC40IDE4LjEtNDUuNSAzNy4yLTU5LjcgNy40LTUuNSAxMC42LTE1LjYgNi0yMy42bC0zMi41LTU2LjNjLTQuMy03LjUtMTMuOS0xMC4zLTIxLjItNS41LTQ4LjIgMzEuNS04MS4zIDg0LjItODYuMyAxNDQuOC0uNyA4LjggNi41IDE2IDE1LjMgMTZ6bTEzNy45IDg5LjhjLTguNS0zLjctMTguOC0xLjQtMjMuNSA2LjZsLTMxIDUzLjhjLTQuMyA3LjUtMS45IDE3LjIgNS44IDIxLjEgMjYuMSAxMy4yIDU1LjUgMjAuNyA4Ni44IDIwLjdzNjAuNy03LjUgODYuOC0yMC43YzcuNy0zLjkgMTAuMS0xMy42IDUuOC0yMS4xbC0zMS01My44Yy00LjYtOC0xNS0xMC4zLTIzLjUtNi42LTExLjcgNS0yNC41IDcuOC0zOC4xIDcuOHMtMjYuNC0yLjgtMzguMS03Ljh6TTM1MC40IDI0MC40YzEuNiA4LjYgOC41IDE1LjYgMTcuMyAxNS42bDY0LjMgMGM4LjggMCAxNi4xLTcuMiAxNS4zLTE2LTUtNjAuNi0zOC4xLTExMy4yLTg2LjMtMTQ0LjgtNy4zLTQuOC0xNi44LTItMjEuMiA1LjVMMzA3LjMgMTU3Yy00LjYgOC0xLjQgMTguMSA2IDIzLjYgMTkuMSAxNC4yIDMyLjcgMzUuNCAzNy4yIDU5Ljd6TTI1NiAzMDUuN2E0OCA0OCAwIDEgMCAwLTk2IDQ4IDQ4IDAgMSAwIDAgOTZ6Il19LHhrdD1xY2UseWt0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImxhcHRvcC1jb2RlIixpY29uOls2NDAsNTEyLFtdLCJmNWZjIiwiTTY0IDk2YzAtMzUuMyAyOC43LTY0IDY0LTY0bDM4NCAwYzM1LjMgMCA2NCAyOC43IDY0IDY0bDAgMjQwLTY0IDAgMC0yNDAtMzg0IDAgMCAyNDAtNjQgMCAwLTI0MHpNMCA0MDMuMkMwIDM5Mi42IDguNiAzODQgMTkuMiAzODRsNjAxLjYgMGMxMC42IDAgMTkuMiA4LjYgMTkuMiAxOS4yIDAgNDIuNC0zNC40IDc2LjgtNzYuOCA3Ni44TDc2LjggNDgwQzM0LjQgNDgwIDAgNDQ1LjYgMCA0MDMuMnpNMjgxIDIwOWwtMzEgMzEgMzEgMzFjOS40IDkuNCA5LjQgMjQuNiAwIDMzLjlzLTI0LjYgOS40LTMzLjkgMGwtNDgtNDhjLTkuNC05LjQtOS40LTI0LjYgMC0zMy45bDQ4LTQ4YzkuNC05LjQgMjQuNi05LjQgMzMuOSAwczkuNCAyNC42IDAgMzMuOXpNMzkzIDE3NWw0OCA0OGM5LjQgOS40IDkuNCAyNC42IDAgMzMuOWwtNDggNDhjLTkuNCA5LjQtMjQuNiA5LjQtMzMuOSAwcy05LjQtMjQuNiAwLTMzLjlsMzEtMzEtMzEtMzFjLTkuNC05LjQtOS40LTI0LjYgMC0zMy45czI0LjYtOS40IDMzLjkgMHoiXX0sd2t0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InNpbmsiLGljb246WzUxMiw1MTIsW10sImUwNmQiLCJNMjg4IDk2YzAtMTcuNyAxNC4zLTMyIDMyLTMyczMyIDE0LjMgMzIgMzIgMTQuMyAzMiAzMiAzMiAzMi0xNC4zIDMyLTMyYzAtNTMtNDMtOTYtOTYtOTZzLTk2IDQzLTk2IDk2bDAgMTkyLTY0IDAgMC00MGMwLTMwLjktMjUuMS01Ni01Ni01NmwtNDggMGMtMTMuMyAwLTI0IDEwLjctMjQgMjRzMTAuNyAyNCAyNCAyNGw0OCAwYzQuNCAwIDggMy42IDggOGwwIDQwLTgwIDBjLTE3LjcgMC0zMiAxNC4zLTMyIDMyczE0LjMgMzIgMzIgMzJsMCA2NGMwIDUzIDQzIDk2IDk2IDk2bDI1NiAwYzUzIDAgOTYtNDMgOTYtOTZsMC02NGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMmwtODAgMCAwLTQwYzAtNC40IDMuNi04IDgtOGw1NiAwYzEzLjMgMCAyNC0xMC43IDI0LTI0cy0xMC43LTI0LTI0LTI0bC01NiAwYy0zMC45IDAtNTYgMjUuMS01NiA1NmwwIDQwLTY0IDAgMC0xOTJ6Il19LE1rdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJhcnJvdy11cC1mcm9tLXdhdGVyLXB1bXAiLGljb246WzY0MCw1MTIsW10sImU0YjYiLCJNMTQ0IDMyYy0yNi41IDAtNDggMjEuNS00OCA0OGwwIDE3Ni0xNiAwYy0yNi41IDAtNDggMjEuNS00OCA0OGwwIDc5LjZjMTcuNi0yIDM2IDIuNSA1MS4zIDE0IDMuNCAyLjYgNi4xIDEuNCA5LjgtLjNsLjgtLjRjNS43LTIuNiAxMi45LTYuOSAyMS43LTEzLjUgMjcuNS0yMC43IDU5LjktMzEuMiA5Mi4zLTMxLjQgMzMuMS0uMiA2Ni4zIDEwLjIgOTQuNCAzMS40IDIyLjEgMTYuNiAyOS4xIDE2LjYgNTEuMiAwIDI3LjUtMjAuNyA1OS45LTMxLjIgOTIuNC0zMS40IDMzLjEtLjIgNjYuMyAxMC4yIDk0LjQgMzEuNCA2LjkgNS4yIDEyLjggOSAxOCAxMS43IC42IC4zIDEuMiAuNiAxLjggMSA0LjIgMi4zIDguNSA0LjYgMTIuNiAxLjUgMTAuNy04LjEgMjIuOS0xMi43IDM1LjMtMTQuMWwwLTc5LjVjMC0yNi41LTIxLjUtNDgtNDgtNDhsLTU2IDAgMC0xNDIuMSA0NyA0N2M5LjQgOS40IDI0LjYgOS40IDMzLjkgMHM5LjQtMjQuNiAwLTMzLjlMNDk3IDM5Yy05LjQtOS40LTI0LjYtOS40LTMzLjkgMGwtODggODhjLTkuNCA5LjQtOS40IDI0LjYgMCAzMy45czI0LjYgOS40IDMzLjkgMGw0Ny00NyAwIDE0Mi4xLTEzNiAwIDAtMTc2YzAtMjYuNS0yMS41LTQ4LTQ4LTQ4TDE0NCAzMnpNNDc0LjYgNDc2LjFjMTkgMTQuNCA0MS45IDI4LjIgNjcuMiAzMy4zIDI2LjUgNS40IDU0LjMgLjggODAuNy0xOS4xIDEwLjYtOCAxMi43LTIzIDQuNy0zMy42cy0yMy0xMi43LTMzLjYtNC43Yy0xNC45IDExLjItMjguNiAxMy4xLTQyLjMgMTAuMy0xNC45LTMtMzAuOS0xMS45LTQ3LjgtMjQuNi0zOC40LTI5LTkwLjUtMjktMTI5IDAtMjQgMTguMS00MC43IDI2LjMtNTQuNSAyNi4zcy0zMC41LTguMi01NC41LTI2LjNjLTM4LjQtMjktOTAuNS0yOS0xMjkgMC0yMS42IDE2LjMtNDEuMyAyNS44LTU4LjkgMjUuNy05LjYtLjEtMTkuOS0zLTMxLjItMTEuNS0xMC42LTgtMjUuNi01LjktMzMuNiA0LjdTNyA0ODIuMyAxNy42IDQ5MC4zYzE5LjEgMTQuNCAzOS40IDIxIDU5LjggMjEuMSAzMy45IC4yIDY0LjMtMTcuNCA4OC4xLTM1LjMgMjEuMy0xNi4xIDQ5LjktMTYuMSA3MS4yIDAgMjQuMiAxOC4zIDUyLjMgMzUuOSA4My40IDM1LjlzNTkuMS0xNy43IDgzLjQtMzUuOWMyMS4zLTE2LjEgNDkuOS0xNi4xIDcxLjIgMHoiXX0samNlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6Im1pY3JvcGhvbmUtbGluZXMtc2xhc2giLGljb246WzU3Niw1MTIsWyJtaWNyb3Bob25lLWFsdC1zbGFzaCJdLCJmNTM5IiwiTTctMjQuOWM5LjQtOS40IDI0LjYtOS40IDMzLjkgMGwxNTEgMTUxIDAtMzAuMmMwLTUzIDQzLTk2IDk2LTk2IDUwLjMgMCA5MS42IDM4LjcgOTUuNyA4OEwzMjggODhjLTEzLjMgMC0yNCAxMC43LTI0IDI0czEwLjcgMjQgMjQgMjRsNTYgMCAwIDQ4LTU2IDBjLTEzLjMgMC0yNCAxMC43LTI0IDI0czEwLjcgMjQgMjQgMjRsNTUuNyAwYy0xLjkgMjIuOS0xMS44IDQzLjQtMjYuOSA1OWwzMy45IDMzLjljMjUuNS0yNiA0MS4zLTYxLjYgNDEuMy0xMDAuOWwwLTQwYzAtMTMuMyAxMC43LTI0IDI0LTI0czI0IDEwLjcgMjQgMjRsMCA0MGMwIDUyLjYtMjEuMSAxMDAuMi01NS4zIDEzNC44TDU2OSA1MDMuMWM5LjQgOS40IDkuNCAyNC42IDAgMzMuOXMtMjQuNiA5LjQtMzMuOSAwTDcgOS4xQy0yLjMtLjMtMi4zLTE1LjUgNy0yNC45ek0yOTcuOCAzNjcuN2w0MS40IDQxLjRjLTguOCAyLjQtMTcuOSA0LjMtMjcuMyA1LjRsMCA0OS41IDQ4IDBjMTMuMyAwIDI0IDEwLjcgMjQgMjRzLTEwLjcgMjQtMjQgMjRsLTE0NCAwYy0xMy4zIDAtMjQtMTAuNy0yNC0yNHMxMC43LTI0IDI0LTI0bDQ4IDAgMC00OS41QzE2OS4zIDQwMi43IDk2IDMyMS45IDk2IDIyNGwwLTQwYzAtNS4xIDEuNi05LjkgNC40LTEzLjhsNDMuNiA0My42IDAgMTAuMmMwIDc5LjUgNjQuNSAxNDQgMTQ0IDE0NCAzLjMgMCA2LjYtLjEgOS44LS4zeiJdfSxra3Q9amNlLFNrdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJzZXJ2ZXIiLGljb246WzQ0OCw1MTIsW10sImYyMzMiLCJNNjQgMzJDMjguNyAzMiAwIDYwLjcgMCA5NmwwIDY0YzAgMzUuMyAyOC43IDY0IDY0IDY0bDMyMCAwYzM1LjMgMCA2NC0yOC43IDY0LTY0bDAtNjRjMC0zNS4zLTI4LjctNjQtNjQtNjRMNjQgMzJ6bTIxNiA3MmEyNCAyNCAwIDEgMSAwIDQ4IDI0IDI0IDAgMSAxIDAtNDh6bTU2IDI0YTI0IDI0IDAgMSAxIDQ4IDAgMjQgMjQgMCAxIDEgLTQ4IDB6TTY0IDI4OGMtMzUuMyAwLTY0IDI4LjctNjQgNjRsMCA2NGMwIDM1LjMgMjguNyA2NCA2NCA2NGwzMjAgMGMzNS4zIDAgNjQtMjguNyA2NC02NGwwLTY0YzAtMzUuMy0yOC43LTY0LTY0LTY0TDY0IDI4OHptMjE2IDcyYTI0IDI0IDAgMSAxIDAgNDggMjQgMjQgMCAxIDEgMC00OHptNTYgMjRhMjQgMjQgMCAxIDEgNDggMCAyNCAyNCAwIDEgMSAtNDggMHoiXX0sZ0Q9e3ByZWZpeDoiZmFzIixpY29uTmFtZToidXNlciIsaWNvbjpbNDQ4LDUxMixbMTI4MTAwLDYyMTQ0LDYyNDcwLCJ1c2VyLWFsdCIsInVzZXItbGFyZ2UiXSwiZjAwNyIsIk0yMjQgMjQ4YTEyMCAxMjAgMCAxIDAgMC0yNDAgMTIwIDEyMCAwIDEgMCAwIDI0MHptLTI5LjcgNTZDOTUuOCAzMDQgMTYgMzgzLjggMTYgNDgyLjMgMTYgNDk4LjcgMjkuMyA1MTIgNDUuNyA1MTJsMzU2LjYgMGMxNi40IDAgMjkuNy0xMy4zIDI5LjctMjkuNyAwLTk4LjUtNzkuOC0xNzguMy0xNzguMy0xNzguM2wtNTkuNCAweiJdfSx6a3Q9Z0QsQ2t0PWdELFRrdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJzbm93Zmxha2UiLGljb246WzUxMiw1MTIsWzEwMDUyLDEwMDU0XSwiZjJkYyIsIk0yODguMiAwYzAtMTcuNy0xNC4zLTMyLTMyLTMycy0zMiAxNC4zLTMyIDMybDAgNjIuMS0xNS0xNWMtOS40LTkuNC0yNC42LTkuNC0zMy45IDBzLTkuNCAyNC42IDAgMzMuOWw0OSA0OSAwIDcwLjYtNjEuMi0zNS4zLTE3LjktNjYuOWMtMy40LTEyLjgtMTYuNi0yMC40LTI5LjQtMTdTOTUuMyA5OCA5OC43IDExMC44bDUuNSAyMC41LTUzLjctMzFDMzUuMiA5MS41IDE1LjYgOTYuNyA2LjggMTEycy0zLjYgMzQuOSAxMS43IDQzLjdsNTMuNyAzMS0yMC41IDUuNWMtMTIuOCAzLjQtMjAuNCAxNi42LTE3IDI5LjRzMTYuNiAyMC40IDI5LjQgMTdsNjYuOS0xNy45IDYxLjIgMzUuMy02MS4yIDM1LjMtNjYuOS0xNy45Yy0xMi44LTMuNC0yNiA0LjItMjkuNCAxN3M0LjIgMjYgMTcgMjkuNGwyMC41IDUuNS01My43IDMxQzMuMiAzNjUuMS0yIDM4NC43IDYuOCA0MDBzMjguNCAyMC42IDQzLjcgMTEuN2w1My43LTMxLTUuNSAyMC41Yy0zLjQgMTIuOCA0LjIgMjYgMTcgMjkuNHMyNi00LjIgMjkuNC0xN2wxNy45LTY2LjkgNjEuMi0zNS4zIDAgNzAuNi00OSA0OWMtOS40IDkuNC05LjQgMjQuNiAwIDMzLjlzMjQuNiA5LjQgMzMuOSAwbDE1LTE1IDAgNjIuMWMwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMybDAtNjIuMSAxNSAxNWM5LjQgOS40IDI0LjYgOS40IDMzLjkgMHM5LjQtMjQuNiAwLTMzLjlsLTQ5LTQ5IDAtNzAuNiA2MS4yIDM1LjMgMTcuOSA2Ni45YzMuNCAxMi44IDE2LjYgMjAuNCAyOS40IDE3czIwLjQtMTYuNiAxNy0yOS40bC01LjUtMjAuNSA1My43IDMxYzE1LjMgOC44IDM0LjkgMy42IDQzLjctMTEuN3MzLjYtMzQuOS0xMS43LTQzLjdsLTUzLjctMzEgMjAuNS01LjVjMTIuOC0zLjQgMjAuNC0xNi42IDE3LTI5LjRzLTE2LjYtMjAuNC0yOS40LTE3bC02Ni45IDE3LjktNjEuMi0zNS4zIDYxLjItMzUuMyA2Ni45IDE3LjljMTIuOCAzLjQgMjYtNC4yIDI5LjQtMTdzLTQuMi0yNi0xNy0yOS40bC0yMC41LTUuNSA1My43LTMxYzE1LjMtOC44IDIwLjYtMjguNCAxMS43LTQzLjdzLTI4LjQtMjAuNS00My43LTExLjdsLTUzLjcgMzEgNS41LTIwLjVjMy40LTEyLjgtNC4yLTI2LTE3LTI5LjRzLTI2IDQuMi0yOS40IDE3bC0xNy45IDY2LjktNjEuMiAzNS4zIDAtNzAuNiA0OS00OWM5LjQtOS40IDkuNC0yNC42IDAtMzMuOXMtMjQuNi05LjQtMzMuOSAwbC0xNSAxNSAwLTYyLjF6Il19LF9rdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJ0YXVydXMiLGljb246WzM4NCw1MTIsW10sImU4NGYiLCJNMzM2LTE2YzE3LjcgMCAzMiAxNC4zIDMyIDMyIDAgNTguNS0yOC42IDExMC4zLTcyLjUgMTQyLjMgNTMuMiAzNC4xIDg4LjUgOTMuOCA4OC41IDE2MS43IDAgMTA2LTg2IDE5Mi0xOTIgMTkyUzAgNDI2IDAgMzIwQzAgMjUyLjEgMzUuMyAxOTIuNCA4OC41IDE1OC4zIDQ0LjYgMTI2LjMgMTYgNzQuNSAxNiAxNiAxNi0xLjcgMzAuMy0xNiA0OC0xNlM4MC0xLjcgODAgMTZjMCA2MS45IDUwLjEgMTEyIDExMiAxMTJTMzA0IDc3LjkgMzA0IDE2YzAtMTcuNyAxNC4zLTMyIDMyLTMyek0xOTIgMTkyYTEyOCAxMjggMCAxIDAgMCAyNTYgMTI4IDEyOCAwIDEgMCAwLTI1NnoiXX0sTGt0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InNrdWxsLWNyb3NzYm9uZXMiLGljb246WzQ0OCw1MTIsWzEyODM2OSw5NzYwXSwiZjcxNCIsIk0zODQgMTQ0QzM4NCA2NC41IDMxMi40IDAgMjI0IDBTNjQgNjQuNSA2NCAxNDRjMCA0Ny4xIDI1LjEgODguOSA2NCAxMTUuMmwwIDI4LjhjMCAxNy43IDE0LjMgMzIgMzIgMzJsMTI4IDBjMTcuNyAwIDMyLTE0LjMgMzItMzJsMC0yOC44YzM4LjktMjYuMyA2NC02OC4xIDY0LTExNS4yek0xNjAgMTI4YTMyIDMyIDAgMSAxIDAgNjQgMzIgMzIgMCAxIDEgMC02NHptOTYgMzJhMzIgMzIgMCAxIDEgNjQgMCAzMiAzMiAwIDEgMSAtNjQgMHpNNDQ1LjUgMzM5LjdjLTYuOC0xNi4zLTI1LjUtMjQtNDEuOC0xNy4yTDIyNCAzOTcuMyA0NC4zIDMyMi41Yy0xNi4zLTYuOC0zNSAuOS00MS44IDE3LjJzLjkgMzUgMTcuMiA0MS44TDE0MC44IDQzMiAxOS43IDQ4Mi41QzMuNCA0ODkuMy00LjMgNTA4IDIuNSA1MjQuM3MyNS41IDI0IDQxLjggMTcuMkwyMjQgNDY2LjcgNDAzLjcgNTQxLjVjMTYuMyA2LjggMzUtLjkgNDEuOC0xNy4ycy0uOS0zNS0xNy4yLTQxLjhMMzA3LjIgNDMyIDQyOC4zIDM4MS41YzE2LjMtNi44IDI0LTI1LjUgMTcuMi00MS44eiJdfSxBa3Q9e3ByZWZpeDoiZmFzIixpY29uTmFtZToicGVzby1zaWduIixpY29uOls0NDgsNTEyLFtdLCJlMjIyIiwiTTExMiAzMkM5NC4zIDMyIDgwIDQ2LjMgODAgNjRsMCA2NC0yNCAwYy0xMy4zIDAtMjQgMTAuNy0yNCAyNHMxMC43IDI0IDI0IDI0bDI0IDAgMCAzMi0yNCAwYy0xMy4zIDAtMjQgMTAuNy0yNCAyNHMxMC43IDI0IDI0IDI0bDI0IDAgMCAxOTJjMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMmwwLTk2IDk2IDBjNjUuNiAwIDEyMi0zOS41IDE0Ni43LTk2bDM3LjMgMGMxMy4zIDAgMjQtMTAuNyAyNC0yNHMtMTAuNy0yNC0yNC0yNGwtMjQuOCAwYy41LTUuMyAuOC0xMC42IC44LTE2cy0uMy0xMC43LS44LTE2bDI0LjggMGMxMy4zIDAgMjQtMTAuNyAyNC0yNHMtMTAuNy0yNC0yNC0yNGwtMzcuMyAwQzM2MiA3MS41IDMwNS42IDMyIDI0MCAzMkwxMTIgMzJ6bTE5OS42IDk2bC0xNjcuNiAwIDAtMzIgOTYgMGMyOC40IDAgNTQgMTIuNCA3MS42IDMyek0xNDQgMTc2bDE5MC43IDBjLjkgNS4yIDEuMyAxMC41IDEuMyAxNnMtLjUgMTAuOC0xLjMgMTZsLTE5MC43IDAgMC0zMnptMTY3LjYgODBjLTE3LjYgMTkuNi00My4xIDMyLTcxLjYgMzJsLTk2IDAgMC0zMiAxNjcuNiAweiJdfSxEa3Q9e3ByZWZpeDoiZmFzIixpY29uTmFtZToid2luZS1nbGFzcyIsaWNvbjpbMzIwLDUxMixbMTI3ODYzXSwiZjRlMyIsIk0zMi42IDI1LjdDMzUuNiAxMC44IDQ4LjcgMCA2NCAwTDI1NiAwYzE1LjMgMCAyOC40IDEwLjggMzEuNCAyNS43TDMxNi44IDE3M2MyLjEgMTAuNSAzLjIgMjEuMiAzLjIgMzJsMCAzYzAgNzcuNC01NSAxNDItMTI4IDE1Ni44bDAgMTE1LjIgNjQgMGMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMkw2NCA1NDRjLTE3LjcgMC0zMi0xNC4zLTMyLTMyczE0LjMtMzIgMzItMzJsNjQgMCAwLTExNS4yQzU1IDM1MCAwIDI4NS40IDAgMjA4bDAtM2MwLTEwLjcgMS4xLTIxLjQgMy4yLTMyTDMyLjYgMjUuN3pNNzcuNCAxMjhsMTY1LjEgMC0xMi44LTY0LTEzOS41IDAtMTIuOCA2NHoiXX0sRmc9e3ByZWZpeDoiZmFzIixpY29uTmFtZToidGVtcGVyYXR1cmUtaGFsZiIsaWNvbjpbMzIwLDUxMixbMTI3Nzc3LCJ0ZW1wZXJhdHVyZS0yIiwidGhlcm1vbWV0ZXItMiIsInRoZXJtb21ldGVyLWhhbGYiXSwiZjJjOSIsIk0xNjAgMEMxMDcgMCA2NCA0MyA2NCA5NmwwIDE2NC43QzM0LjUgMjg3IDE2IDMyNS40IDE2IDM2OCAxNiA0NDcuNSA4MC41IDUxMiAxNjAgNTEyczE0NC02NC41IDE0NC0xNDRjMC00Mi42LTE4LjUtODEtNDgtMTA3LjNMMjU2IDk2YzAtNTMtNDMtOTYtOTYtOTZ6bTY0IDM2OGMwIDM1LjMtMjguNyA2NC02NCA2NHMtNjQtMjguNy02NC02NGMwLTI2LjkgMTYuNS00OS45IDQwLTU5LjNsMC05Mi43YzAtMTMuMyAxMC43LTI0IDI0LTI0czI0IDEwLjcgMjQgMjRsMCA5Mi43YzIzLjUgOS41IDQwIDMyLjUgNDAgNTkuM3oiXX0sRWt0PUZnLCRrdD1GZyxJa3Q9RmcsUGt0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InRpY2tldCIsaWNvbjpbNTc2LDUxMixbMTI3OTAzXSwiZjE0NSIsIk02NCA2NEMyOC43IDY0IDAgOTIuNyAwIDEyOGwwIDY0QzAgMjAwLjggNy40IDIwNy43IDE1LjcgMjEwLjYgMzQuNSAyMTcuMSA0OCAyMzUgNDggMjU2cy0xMy41IDM4LjktMzIuMyA0NS40QzcuNCAzMDQuMyAwIDMxMS4yIDAgMzIwbDAgNjRjMCAzNS4zIDI4LjcgNjQgNjQgNjRsNDQ4IDBjMzUuMyAwIDY0LTI4LjcgNjQtNjRsMC02NGMwLTguOC03LjQtMTUuNy0xNS43LTE4LjYtMTguOC02LjUtMzIuMy0yNC40LTMyLjMtNDUuNHMxMy41LTM4LjkgMzIuMy00NS40YzguMy0yLjkgMTUuNy05LjggMTUuNy0xOC42bDAtNjRjMC0zNS4zLTI4LjctNjQtNjQtNjRMNjQgNjR6TTQxNiAzMzZsMC0xNjAtMjU2IDAgMCAxNjAgMjU2IDB6TTExMiAxNjBjMC0xNy43IDE0LjMtMzIgMzItMzJsMjg4IDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJsMCAxOTJjMCAxNy43LTE0LjMgMzItMzIgMzJsLTI4OCAwYy0xNy43IDAtMzItMTQuMy0zMi0zMmwwLTE5MnoiXX0sTmt0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6IndoZWF0LWF3bi1jaXJjbGUtZXhjbGFtYXRpb24iLGljb246WzY0MCw1MTIsW10sImU1OTgiLCJNNDk2IDU3NmExNDQgMTQ0IDAgMSAxIDAtMjg4IDE0NCAxNDQgMCAxIDEgMCAyODh6TTgxIDUyOWMtOS40IDkuMy0yNC41IDkuMy0zMy45IDAtOS40LTkuNC05LjQtMjQuNiAwLTMzLjlMODEgNTI5em0zMC4yLTI5NC40YzYuMi00LjEgMTQuNy0zLjQgMjAuMSAyLjFsNDYuMSA0Ni4xIDYuMSA2LjdjMTkuNyAyMy44IDI2LjMgNTUgMTkuMyA4My45IDMxLjctNy43IDY2LjIgMSA5MC42IDI1LjNsMTIgMTJjLS44IDctMS4yIDE0LjItMS4yIDIxLjQgMCAyMCAzIDM5LjMgOC43IDU3LjQtMzYuOCAyMS44LTg1IDE3LTExNi42LTE0LjdMMTY1LjYgNDQ0LjMgODEgNTI5QzY5LjcgNTE3LjcgNTguNCA1MDYuMyA0NyA0OTVsODQuNy04NC43LTMwLjUtMzAuNWMtMzcuNS0zNy41LTM3LjUtOTguMyAwLTEzNS43bDcuNC03LjQgMi41LTIuMXpNNDk2IDQ3NmEyMCAyMCAwIDEgMCAwIDQwIDIwIDIwIDAgMSAwIDAtNDB6bTAtMTQwYy04LjggMC0xNiA3LjItMTYgMTZsMCA4MGMwIDguOCA3LjIgMTYgMTYgMTYgOC44IDAgMTYtNy4yIDE2LTE2bDAtODBjMC04LjgtNy4yLTE2LTE2LTE2ek0yMTUuMiAxMzAuNmM2LjItNC4xIDE0LjctMy40IDIwLjEgMi4xbDQ2LjEgNDYuMSA2LjEgNi43YzE5LjcgMjMuOCAyNi4zIDU1IDE5LjMgODMuOSAyNC4yLTUuOSA1MC4xLTIuMSA3MS45IDEwLjgtMzIuMiAyNC45LTU2LjIgNTkuOC02Ny40IDEwMC4xLTMuOC0yLjgtNy41LTYtMTEtOS41bC05NC45LTk0LjljLTM3LjUtMzcuNS0zNy41LTk4LjMgMC0xMzUuN2w3LjQtNy40IDIuNS0yLjF6TTUyNi43IDE1YzkuNC05LjQgMjQuNi05LjQgMzMuOSAwIDguOCA4LjggOS4zIDIyLjcgMS43IDMyLjFMNTYwLjYgNDkgNDQ2LjIgMTYzLjRjNy43IDEgMTUuMyAzIDIyLjUgNS45TDUyNyAxMTFjOS40LTkuNCAyNC42LTkuNCAzNCAwIDguOCA4LjggOS4zIDIyLjcgMS42IDMyLjFsLTEuNyAxLjgtNTIuNyA1Mi43IDM5IDM5YzMuMiAzLjIgNC43IDcuNCA0LjcgMTEuNi0xNy43LTUuNC0zNi41LTguMy01NS45LTguMy0zNC4yIDAtNjYuMyA4LjktOTQuMSAyNC42bC05Mi43LTkyLjdjLTM3LjUtMzcuNS0zNy41LTk4LjMgMC0xMzUuOGw3LjQtNy40IDIuNS0yLjFjNi4yLTQuMSAxNC43LTMuNCAyMC4xIDIuMWwzOSAzOSA1Mi43LTUyLjdjOS40LTkuNCAyNC42LTkuNCAzNCAwIDguOCA4LjggOS4zIDIyLjcgMS42IDMyLjFMNDY1IDQ5IDQwNi43IDEwNy4zYzIuOCA3LjEgNC43IDE0LjUgNS44IDIyLjFMNTI2LjcgMTV6Il19LEZrdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJhcnJvd3MtdHVybi1yaWdodCIsaWNvbjpbNDQ4LDUxMixbXSwiZTRjMCIsIk0zMTMuNC02LjZjMTIuNS0xMi41IDMyLjgtMTIuNSA0NS4zIDBsODAgODBjMTIuNSAxMi41IDEyLjUgMzIuOCAwIDQ1LjNsLTgwIDgwYy0xMi41IDEyLjUtMzIuOCAxMi41LTQ1LjMgMHMtMTIuNS0zMi44IDAtNDUuM0wzMzguNyAxMjggMTI4IDEyOGMtMzUuMyAwLTY0IDI4LjctNjQgNjRsMCAzMmMwIDE3LjctMTQuMyAzMi0zMiAzMlMwIDI0MS43IDAgMjI0bDAtMzJDMCAxMjEuMyA1Ny4zIDY0IDEyOCA2NGwyMTAuNyAwLTI1LjQtMjUuNGMtMTIuNS0xMi41LTEyLjUtMzIuOCAwLTQ1LjN6bS05NiAyNTZjMTIuNS0xMi41IDMyLjgtMTIuNSA0NS4zIDBsODAgODBjMTIuNSAxMi41IDEyLjUgMzIuOCAwIDQ1LjNsLTgwIDgwYy0xMi41IDEyLjUtMzIuOCAxMi41LTQ1LjMgMHMtMTIuNS0zMi44IDAtNDUuM0wyNDIuNyAzODQgOTYgMzg0Yy0xNy43IDAtMzIgMTQuMy0zMiAzMmwwIDMyYzAgMTcuNy0xNC4zIDMyLTMyIDMyUzAgNDY1LjcgMCA0NDhsMC0zMmMwLTUzIDQzLTk2IDk2LTk2bDE0Ni43IDAtMjUuNC0yNS40Yy0xMi41LTEyLjUtMTIuNS0zMi44IDAtNDUuM3oiXX0sT2t0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImNhbmR5LWNhbmUiLGljb246WzQ0OCw1MTIsW10sImY3ODYiLCJNNDIxLjggMzkuNkM0NTIgODUuMiA0NTYuNSAxNDIuOSA0MzUuMSAxOTJsLTE2NS40IDAgNDEuNC00MS40Yy44LS44IDEuNS0xLjYgMi4yLTIuNEw0MjEuOCAzOS42ek0yNjggMTAyLjljLS44IC43LTEuNiAxLjQtMi40IDIuMmwtMjguMSAyOC4xYy0yNSAyNS02NS41IDI1LTkwLjUgMHMtMjUtNjUuNSAwLTkwLjVMMTc1IDE0LjZDMjI5LjktNDAuMiAzMTQuNS00Ni43IDM3Ni41LTUuNkwyNjggMTAyLjl6TTEyNS43IDMzNmw4MC04MCAxODEgMC04Mi41IDgyLjUgMC0yLjUtMTc4LjUgMHptMTE3IDY0TDE0MS40IDUwMS4zYy0yNSAyNS02NS41IDI1LTkwLjUgMHMtMjUtNjUuNSAwLTkwLjVsMTAuNy0xMC43IDE4MSAweiJdfSxSa3Q9e3ByZWZpeDoiZmFzIixpY29uTmFtZToid2hlZWxjaGFpciIsaWNvbjpbNTEyLDUxMixbXSwiZjE5MyIsIk0xMzYgNDBhNTYgNTYgMCAxIDEgMTEyIDAgNTYgNTYgMCAxIDEgLTExMiAwek0xMTcuOSAxOTcuNmwxMi42IDYzYy0zOC42IDEyLjQtNjYuNSA0OC43LTY2LjUgOTEuNCAwIDUzIDQzIDk2IDk2IDk2IDM1LjYgMCA2Ni43LTE5LjQgODMuMy00OC4yIDIuMyAuMSA0LjYgLjIgNyAuMmw0LjEgMGMxIDAgMi4xIDAgMy4xIDBsNTUuMiAwYy0yMC40IDY0LjktODEgMTEyLTE1Mi43IDExMi04OC40IDAtMTYwLTcxLjYtMTYwLTE2MCAwLTczLjggNTAtMTM1LjkgMTE3LjktMTU0LjR6bTE0OC42LTI4LjFsMjMuNyAxMTguNSA2MC41IDBjMzMuMyAwIDYzLjIgMjAuNyA3NC45IDUxLjlsMjUuNSA2OCAxOC43LTYuMmMxNi44LTUuNiAzNC45IDMuNSA0MC41IDIwLjJzLTMuNSAzNC45LTIwLjIgNDAuNWwtNDggMTZjLTE2LjMgNS40LTM0LTMtNDAuMS0xOS4xbC0zNi4zLTk2LjljLTIuMy02LjItOC4zLTEwLjQtMTUtMTAuNGwtODYuMSAwYy0uNCAwLS44IDAtMS4zIDBsLTEzLjEgMGMtMzAuNSAwLTU2LjgtMjEuNS02Mi44LTUxLjRMMTY1LjMgMTg5LjdjLTYuNC0zMS45IDE4LTYxLjcgNTAuNi02MS43IDI0LjYgMCA0NS44IDE3LjQgNTAuNiA0MS41eiJdfSxCa3Q9e3ByZWZpeDoiZmFzIixpY29uTmFtZToic3BlbGwtY2hlY2siLGljb246WzU3Niw1MTIsW10sImY4OTEiLCJNMTIwIDMyYy00OC42IDAtODggMzkuNC04OCA4OGwwIDE2OGMwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMybDAtNjQgNjQgMCAwIDY0YzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJsMC0xNjhjMC00OC42LTM5LjQtODgtODgtODhsLTE2IDB6bTQwIDEyOGwtNjQgMCAwLTQwYzAtMTMuMyAxMC43LTI0IDI0LTI0bDE2IDBjMTMuMyAwIDI0IDEwLjcgMjQgMjRsMCA0MHpNMzA0IDMyYy0xNy43IDAtMzIgMTQuMy0zMiAzMmwwIDIyNGMwIDE3LjcgMTQuMyAzMiAzMiAzMmw3MiAwYzQ4LjYgMCA4OC0zOS40IDg4LTg4IDAtMjMuNi05LjMtNDUtMjQuNC02MC44IDEwLjMtMTQuNCAxNi40LTMyLjEgMTYuNC01MS4yIDAtNDguNi0zOS40LTg4LTg4LTg4bC02NCAwem02NCAxMTJsLTMyIDAgMC00OCAzMiAwYzEzLjMgMCAyNCAxMC43IDI0IDI0cy0xMC43IDI0LTI0IDI0ek0zMzYgMjU2bDAtNDggNDAgMGMxMy4zIDAgMjQgMTAuNyAyNCAyNHMtMTAuNyAyNC0yNCAyNGwtNDAgMHptMjMzIDg0YzExLTEzLjggOC44LTMzLjktNS00NXMtMzMuOS04LjgtNDUgNWwtMTA1LjcgMTMyLjEtMzguNy0zOC43Yy0xMi41LTEyLjUtMzIuOC0xMi41LTQ1LjMgMHMtMTIuNSAzMi44IDAgNDUuM2w2NCA2NGM2LjQgNi40IDE1LjMgOS44IDI0LjQgOS4zczE3LjUtNC45IDIzLjItMTJMNTY5IDM0MHoiXX0sSGt0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InZvbHVtZS1vZmYiLGljb246WzMyMCw1MTIsW10sImYwMjYiLCJNOTYgMzUybC00OCAwYy0yNi41IDAtNDgtMjEuNS00OC00OGwwLTk2YzAtMjYuNSAyMS41LTQ4IDQ4LTQ4bDQ4IDAgMTM0LjEtMTE5LjJjNi40LTUuNyAxNC42LTguOCAyMy4xLTguOCAxOS4yIDAgMzQuOCAxNS42IDM0LjggMzQuOGwwIDM3OC40YzAgMTkuMi0xNS42IDM0LjgtMzQuOCAzNC44LTguNSAwLTE2LjctMy4xLTIzLjEtOC44TDk2IDM1MnoiXX0scWt0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6Imx1bmdzIixpY29uOls1NzYsNTEyLFsxMjk3MjldLCJmNjA0IiwiTTMyMCAzMmMwLTE3LjctMTQuMy0zMi0zMi0zMnMtMzIgMTQuMy0zMiAzMmwwIDE0MS45LTMyIDE5LjIgMC0xMTYuN2MwLTI0LjUtMTkuOS00NC40LTQ0LjQtNDQuNC0xMi41IDAtMjQuNCA1LjMtMzIuOCAxNC41bC0yNi40IDI5QzQyLjkgMTYwLjggMCAyNzEuOCAwIDM4N2wwIDMwLjVjMCA1Mi4yIDQyLjMgOTQuNSA5NC41IDk0LjUgMjIgMCA0My43LTUuMSA2My40LTE1bDUtMi41YzM3LjQtMTguNyA2MS01Ni45IDYxLTk4LjhsMC0xMjggNjQtMzguNCA2NCAzOC40IDAgMTI4YzAgNDEuOCAyMy42IDgwLjEgNjEgOTguOGw1IDIuNWMxOS43IDkuOCA0MS40IDE1IDYzLjQgMTUgNTIuMiAwIDk0LjUtNDIuMyA5NC41LTk0LjVsMC02LjJjMC0xMTEuMS0zNi43LTIxOS0xMDQuNC0zMDdMNDI4LjkgNDguN2MtOC4xLTEwLjYtMjAuNy0xNi43LTM0LTE2LjctMjMuNyAwLTQyLjkgMTkuMi00Mi45IDQyLjlsMCAxMTguMi0zMi0xOS4yIDAtMTQxLjl6Il19LGprdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJib29rbWFyayIsaWNvbjpbMzg0LDUxMixbMTI4Mjc4LDYxNTkxXSwiZjAyZSIsIk02NCAwQzI4LjcgMCAwIDI4LjcgMCA2NEwwIDQ4MGMwIDExLjUgNi4yIDIyLjIgMTYuMiAyNy44czIyLjMgNS41IDMyLjItLjRMMTkyIDQyMS4zIDMzNS41IDUwNy40YzkuOSA1LjkgMjIuMiA2LjEgMzIuMiAuNFMzODQgNDkxLjUgMzg0IDQ4MGwwLTQxNmMwLTM1LjMtMjguNy02NC02NC02NEw2NCAweiJdfSxWa3Q9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiYmFyY29kZSIsaWNvbjpbNDQ4LDUxMixbXSwiZjAyYSIsIk0zMiAzMkMxNC4zIDMyIDAgNDYuMyAwIDY0TDAgNDQ4YzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJMNjQgNjRjMC0xNy43LTE0LjMtMzItMzItMzJ6bTg4IDBjLTEzLjMgMC0yNCAxMC43LTI0IDI0bDAgNDAwYzAgMTMuMyAxMC43IDI0IDI0IDI0czI0LTEwLjcgMjQtMjRsMC00MDBjMC0xMy4zLTEwLjctMjQtMjQtMjR6bTcyIDMybDAgMzg0YzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJsMC0zODRjMC0xNy43LTE0LjMtMzItMzItMzJzLTMyIDE0LjMtMzIgMzJ6bTIwOC04bDAgNDAwYzAgMTMuMyAxMC43IDI0IDI0IDI0czI0LTEwLjcgMjQtMjRsMC00MDBjMC0xMy4zLTEwLjctMjQtMjQtMjRzLTI0IDEwLjctMjQgMjR6bS05NiAwbDAgNDAwYzAgMTMuMyAxMC43IDI0IDI0IDI0czI0LTEwLjcgMjQtMjRsMC00MDBjMC0xMy4zLTEwLjctMjQtMjQtMjRzLTI0IDEwLjctMjQgMjR6Il19LGJEPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6Imxpc3Qtb2wiLGljb246WzUxMiw1MTIsWyJsaXN0LTEtMiIsImxpc3QtbnVtZXJpYyJdLCJmMGNiIiwiTTAgNzJDMCA1OC44IDEwLjcgNDggMjQgNDhsNDggMGMxMy4zIDAgMjQgMTAuNyAyNCAyNGwwIDEwNCAyNCAwYzEzLjMgMCAyNCAxMC43IDI0IDI0cy0xMC43IDI0LTI0IDI0bC05NiAwYy0xMy4zIDAtMjQtMTAuNy0yNC0yNHMxMC43LTI0IDI0LTI0bDI0IDAgMC04MC0yNCAwQzEwLjcgOTYgMCA4NS4zIDAgNzJ6TTMwLjQgMzAxLjJDNDEuOCAyOTIuNiA1NS43IDI4OCA3MCAyODhsNC45IDBjMzMuNyAwIDYxLjEgMjcuNCA2MS4xIDYxLjEgMCAxOS42LTkuNCAzNy45LTI1LjIgNDkuNGwtMjQgMTcuNSAzMy4yIDBjMTMuMyAwIDI0IDEwLjcgMjQgMjRzLTEwLjcgMjQtMjQgMjRsLTkwLjcgMEMxMy4xIDQ2NCAwIDQ1MC45IDAgNDM0LjcgMCA0MjUuMyA0LjUgNDE2LjUgMTIuMSA0MTFsNzAuNS01MS4zYzMuNC0yLjUgNS40LTYuNCA1LjQtMTAuNiAwLTcuMi01LjktMTMuMS0xMy4xLTEzLjFMNzAgMzM2Yy0zLjkgMC03LjcgMS4zLTEwLjggMy42TDM4LjQgMzU1LjJjLTEwLjYgOC0yNS42IDUuOC0zMy42LTQuOFMtMSAzMjQuOCA5LjYgMzE2LjhsMjAuOC0xNS42ek0yMjQgNjRsMjU2IDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJsLTI1NiAwYy0xNy43IDAtMzItMTQuMy0zMi0zMnMxNC4zLTMyIDMyLTMyem0wIDE2MGwyNTYgMGMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMmwtMjU2IDBjLTE3LjcgMC0zMi0xNC4zLTMyLTMyczE0LjMtMzIgMzItMzJ6bTAgMTYwbDI1NiAwYzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMybC0yNTYgMGMtMTcuNyAwLTMyLTE0LjMtMzItMzJzMTQuMy0zMiAzMi0zMnoiXX0sVWt0PWJELFdrdD1iRCxHa3Q9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZmlsZS1jaXJjbGUteG1hcmsiLGljb246WzU3Niw1MTIsW10sImU1YTEiLCJNOTYgMEM2MC43IDAgMzIgMjguNyAzMiA2NGwwIDM4NGMwIDM1LjMgMjguNyA2NCA2NCA2NGwxODAgMGMtMjIuNy0zMS41LTM2LTcwLjItMzYtMTEyIDAtMTAwLjYgNzcuNC0xODMuMiAxNzYtMTkxLjNsMC0zOC4xYzAtMTctNi43LTMzLjMtMTguNy00NS4zTDI5MC43IDE4LjdDMjc4LjcgNi43IDI2Mi41IDAgMjQ1LjUgMEw5NiAwek0zNTcuNSAxNzZMMjY0IDE3NmMtMTMuMyAwLTI0LTEwLjctMjQtMjRMMjQwIDU4LjUgMzU3LjUgMTc2ek00MzIgNTQ0YTE0NCAxNDQgMCAxIDAgMC0yODggMTQ0IDE0NCAwIDEgMCAwIDI4OHptNTkuMy0xODAuN2wtMzYuNyAzNi43IDM2LjcgMzYuN2M2LjIgNi4yIDYuMiAxNi40IDAgMjIuNnMtMTYuNCA2LjItMjIuNiAwbC0zNi43LTM2LjctMzYuNyAzNi43Yy02LjIgNi4yLTE2LjQgNi4yLTIyLjYgMHMtNi4yLTE2LjQgMC0yMi42bDM2LjctMzYuNy0zNi43LTM2LjdjLTYuMi02LjItNi4yLTE2LjQgMC0yMi42czE2LjQtNi4yIDIyLjYgMGwzNi43IDM2LjcgMzYuNy0zNi43YzYuMi02LjIgMTYuNC02LjIgMjIuNiAwczYuMiAxNi40IDAgMjIuNnoiXX0sWWt0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImN1YmUiLGljb246WzUxMiw1MTIsW10sImYxYjIiLCJNMjI0LjMtMi41YzE5LjgtMTEuNCA0NC4yLTExLjQgNjQgMEw0NjQuMiA5OWMxOS44IDExLjQgMzIgMzIuNiAzMiA1NS40bDAgMjAzYzAgMjIuOS0xMi4yIDQ0LTMyIDU1LjRMMjg4LjMgNTE0LjVjLTE5LjggMTEuNC00NC4yIDExLjQtNjQgMEw0OC41IDQxM2MtMTkuOC0xMS40LTMyLTMyLjYtMzItNTUuNGwwLTIwM2MwLTIyLjkgMTIuMi00NCAzMi01NS40TDIyNC4zLTIuNXptMjA3LjggMzYwbDAtMTY2LjEtMTQzLjggODMgMCAxNjYuMSAxNDMuOC04M3oiXX0sWmt0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InRhcGUiLGljb246WzU3Niw1MTIsW10sImY0ZGIiLCJNNDEyLjggNDE2YzQxLjUtNDAuNyA2Ny4yLTk3LjMgNjcuMi0xNjAgMC0xMjMuNy0xMDAuMy0yMjQtMjI0LTIyNFMzMiAxMzIuMyAzMiAyNTYgMTMyLjMgNDgwIDI1NiA0ODBsMjg4IDBjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJsLTEzMS4yIDB6TTI1NiAxNjBhOTYgOTYgMCAxIDEgMCAxOTIgOTYgOTYgMCAxIDEgMC0xOTJ6bTQ4IDk2YTQ4IDQ4IDAgMSAwIC05NiAwIDQ4IDQ4IDAgMSAwIDk2IDB6Il19LFhrdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJib21iIixpY29uOls1NzYsNTEyLFsxMjgxNjNdLCJmMWUyIiwiTTQ4MC0xNmM2LjkgMCAxMyA0LjQgMTUuMiAxMC45bDEzLjUgNDAuNCA0MC40IDEzLjVDNTU1LjYgNTEgNTYwIDU3LjEgNTYwIDY0cy00LjQgMTMtMTAuOSAxNS4ybC00MC40IDEzLjUtMTMuNSA0MC40QzQ5MyAxMzkuNiA0ODYuOSAxNDQgNDgwIDE0NHMtMTMtNC40LTE1LjItMTAuOWwtMTMuNS00MC40LTQwLjQtMTMuNUM0MDQuNCA3NyA0MDAgNzAuOSA0MDAgNjRzNC40LTEzIDEwLjktMTUuMmw0MC40LTEzLjUgMTMuNS00MC40QzQ2Ny0xMS42IDQ3My4xLTE2IDQ4MC0xNnpNMzIxLjQgOTcuNGMxMi41LTEyLjUgMzIuOC0xMi41IDQ1LjMgMGw4MCA4MGMxMi41IDEyLjUgMTIuNSAzMi44IDAgNDUuM2wtMTAuOSAxMC45YzcuOSAyMiAxMi4yIDQ1LjcgMTIuMiA3MC41IDAgMTE0LjktOTMuMSAyMDgtMjA4IDIwOFMzMiA0MTguOSAzMiAzMDQgMTI1LjEgOTYgMjQwIDk2YzI0LjcgMCA0OC41IDQuMyA3MC41IDEyLjNsMTAuOS0xMC45ek0xNDQgMzA0YzAtNTMgNDMtOTYgOTYtOTYgMTMuMyAwIDI0LTEwLjcgMjQtMjRzLTEwLjctMjQtMjQtMjRjLTc5LjUgMC0xNDQgNjQuNS0xNDQgMTQ0IDAgMTMuMyAxMC43IDI0IDI0IDI0czI0LTEwLjcgMjQtMjR6Il19LFZjZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJzY2FsZS11bmJhbGFuY2VkIixpY29uOls2NDAsNTEyLFsiYmFsYW5jZS1zY2FsZS1sZWZ0Il0sImY1MTUiLCJNNTE5LjggNjIuNGMxNi44LTUuNiAyNS44LTIzLjcgMjAuMi00MC41UzUxNi4zLTMuOSA0OTkuNiAxLjZsLTExMyAzNy43Yy0xMy45LTIzLjUtMzkuNi0zOS4zLTY4LjktMzkuMy00NC4yIDAtODAgMzUuOC04MCA4MCAwIDMgLjIgNS45IC41IDguOEwxMTUuNiAxMjkuNmMtMTYuOCA1LjYtMjUuOCAyMy43LTIwLjIgNDAuNXMyMy43IDI1LjggNDAuNSAyMC4ybDEzNS41LTQ1LjJjNC41IDMuMiA5LjMgNS45IDE0LjQgOC4ybDAgMzI2LjdjMCAxNy43IDE0LjMgMzIgMzIgMzJsMTkyIDBjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJsLTE2MCAwIDAtMjk0LjdjMjEtOS4yIDM3LjItMjcgNDQuMi00OWwxMjUuOS00MnpNNDM3LjMgMjg4bDcyLjQtMTI0LjIgNzIuNCAxMjQuMi0xNDQuOSAwem03Mi40IDk2YzYyLjkgMCAxMTUuMi0zNCAxMjYtNzguOSAyLjYtMTEtMS0yMi4zLTYuNy0zMi4xTDUzMy44IDEwOS44Yy01LTguNi0xNC4yLTEzLjgtMjQuMS0xMy44cy0xOS4xIDUuMy0yNC4xIDEzLjhMMzkwLjQgMjczLjFjLTUuNyA5LjgtOS4zIDIxLjEtNi43IDMyLjEgMTAuOCA0NC44IDYzLjEgNzguOSAxMjYgNzguOXpNMTI2LjggMjkxLjhsNzIuNCAxMjQuMi0xNDQuOSAwIDcyLjQtMTI0LjJ6TS45IDQzMy4xQzExLjcgNDc4IDY0IDUxMiAxMjYuOCA1MTJzMTE1LjItMzQgMTI2LTc4LjljMi42LTExLTEtMjIuMy02LjctMzIuMUwxNTAuOSAyMzcuOGMtNS04LjYtMTQuMi0xMy44LTI0LjEtMTMuOHMtMTkuMSA1LjMtMjQuMSAxMy44TDcuNiA0MDEuMWMtNS43IDkuOC05LjMgMjEuMS02LjcgMzIuMXoiXX0sUWt0PVZjZSxVY2U9e3ByZWZpeDoiZmFzIixpY29uTmFtZToic3F1YXJlLWNhcmV0LWxlZnQiLGljb246WzQ0OCw1MTIsWyJjYXJldC1zcXVhcmUtbGVmdCJdLCJmMTkxIiwiTTAgNDE2YzAgMzUuMyAyOC43IDY0IDY0IDY0bDMyMCAwYzM1LjMgMCA2NC0yOC43IDY0LTY0bDAtMzIwYzAtMzUuMy0yOC43LTY0LTY0LTY0TDY0IDMyQzI4LjcgMzIgMCA2MC43IDAgOTZMMCA0MTZ6TTEyOCAyNTZjMC02LjcgMi44LTEzIDcuNy0xNy42bDExMi0xMDRjNy02LjUgMTcuMi04LjIgMjUuOS00LjRTMjg4IDE0Mi41IDI4OCAxNTJsMCAyMDhjMCA5LjUtNS43IDE4LjItMTQuNCAyMnMtMTguOSAyLjEtMjUuOS00LjRsLTExMi0xMDRjLTQuOS00LjUtNy43LTEwLjktNy43LTE3LjZ6Il19LEprdD1VY2UsS2t0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InJ1bGVyIixpY29uOls1NzYsNTEyLFsxMjgyMDddLCJmNTQ1IiwiTTIwOS4xIDUxNi4yYy0xOC43IDE4LjctNDkuMSAxOC43LTY3LjkgMEwyOC4xIDQwMy4xYy0xOC43LTE4LjctMTguNy00OS4xIDAtNjcuOWwxNy0xNyA3My41IDczLjVjOS40IDkuNCAyNC42IDkuNCAzMy45IDBzOS40LTI0LjYgMC0zMy45bC03My41LTczLjUgMzMuOS0zMy45IDUwLjkgNTAuOWM5LjQgOS40IDI0LjYgOS40IDMzLjkgMHM5LjQtMjQuNiAwLTMzLjlsLTUwLjktNTAuOSAzMy45LTMzLjkgNzMuNSA3My41YzkuNCA5LjQgMjQuNiA5LjQgMzMuOSAwczkuNC0yNC42IDAtMzMuOWwtNzMuNS03My41IDMzLjktMzMuOSA1MC45IDUwLjljOS40IDkuNCAyNC42IDkuNCAzMy45IDBzOS40LTI0LjYgMC0zMy45bC01MC45LTUwLjkgMzMuOS0zMy45IDczLjUgNzMuNWM5LjQgOS40IDI0LjYgOS40IDMzLjkgMHM5LjQtMjQuNiAwLTMzLjlsLTczLjUtNzMuNSAxNy0xN2MxOC43LTE4LjcgNDkuMS0xOC43IDY3LjkgMEw1NDguNSAxMDguOWMxOC43IDE4LjcgMTguNyA0OS4xIDAgNjcuOUwyMDkuMSA1MTYuMnoiXX0sZVN0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImkiLGljb246WzMyMCw1MTIsWzEwNV0sIjQ5IiwiTTMyIDMyQzE0LjMgMzIgMCA0Ni4zIDAgNjRTMTQuMyA5NiAzMiA5Nmw5NiAwIDAgMzIwLTk2IDBjLTE3LjcgMC0zMiAxNC4zLTMyIDMyczE0LjMgMzIgMzIgMzJsMjU2IDBjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJsLTk2IDAgMC0zMjAgOTYgMGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMkwzMiAzMnoiXX0sdkQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToidm9sdW1lLXhtYXJrIixpY29uOls1NzYsNTEyLFsidm9sdW1lLW11dGUiLCJ2b2x1bWUtdGltZXMiXSwiZjZhOSIsIk00OCAzNTJsNDggMCAxMzQuMSAxMTkuMmM2LjQgNS43IDE0LjYgOC44IDIzLjEgOC44IDE5LjIgMCAzNC44LTE1LjYgMzQuOC0zNC44bDAtMzc4LjRjMC0xOS4yLTE1LjYtMzQuOC0zNC44LTM0LjgtOC41IDAtMTYuNyAzLjEtMjMuMSA4LjhMOTYgMTYwIDQ4IDE2MGMtMjYuNSAwLTQ4IDIxLjUtNDggNDhsMCA5NmMwIDI2LjUgMjEuNSA0OCA0OCA0OHpNMzY3IDE3NWMtOS40IDkuNC05LjQgMjQuNiAwIDMzLjlsNDcgNDctNDcgNDdjLTkuNCA5LjQtOS40IDI0LjYgMCAzMy45czI0LjYgOS40IDMzLjkgMGw0Ny00NyA0NyA0N2M5LjQgOS40IDI0LjYgOS40IDMzLjkgMHM5LjQtMjQuNiAwLTMzLjlsLTQ3LTQ3IDQ3LTQ3YzkuNC05LjQgOS40LTI0LjYgMC0zMy45cy0yNC42LTkuNC0zMy45IDBsLTQ3IDQ3LTQ3LTQ3Yy05LjQtOS40LTI0LjYtOS40LTMzLjkgMHoiXX0sdFN0PXZELHJTdD12RCxpU3Q9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiYXJjaHdheSIsaWNvbjpbNTEyLDUxMixbXSwiZjU1NyIsIk0zMiAzMkMxNC4zIDMyIDAgNDYuMyAwIDY0UzE0LjMgOTYgMzIgOTZsNDQ4IDBjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJMMzIgMzJ6bTAgMzg0Yy0xNy43IDAtMzIgMTQuMy0zMiAzMnMxNC4zIDMyIDMyIDMybDEyOCAwIDAtMTI4YzAtNTMgNDMtOTYgOTYtOTZzOTYgNDMgOTYgOTZsMCAxMjggMTI4IDBjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJsMC0yNzItNDQ4IDAgMCAyNzJ6Il19LFdjZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJwZXJzb24tZGlnZ2luZyIsaWNvbjpbNTc2LDUxMixbImRpZ2dpbmciXSwiZjg1ZSIsIk0yMDggNDBhNTYgNTYgMCAxIDEgMTEyIDAgNTYgNTYgMCAxIDEgLTExMiAwek0xMC41IDE4MS4zYzUuOS0xMS45IDIwLjMtMTYuNyAzMi4yLTEwLjdsMjQuNiAxMi4zIDEyLjItMjAuNGMxOC45LTMxLjUgNTMuMi01MC41IDg5LjYtNTAuNSA0Ni4yIDAgODcuNyAzMC41IDEwMC41IDc1LjRsMzIuMiAxMTIuNyA5Mi45IDQ2LjQgMjUuOC00M2M1LjgtOS42IDE2LjItMTUuNSAyNy40LTE1LjVzMjEuNyA1LjkgMjcuNCAxNS41bDk2IDE2MGM1LjkgOS45IDYuMSAyMi4yIC40IDMyLjJTNTU1LjUgNTEyIDU0NCA1MTJsLTE5MiAwYy0xMS41IDAtMjIuMi02LjItMjcuOC0xNi4ycy01LjUtMjIuMyAuNC0zMi4yTDM3MCAzODcuOCAyMS4zIDIxMy41Yy0xMS45LTUuOS0xNi43LTIwLjMtMTAuNy0zMi4yek05NC4zIDMwNy40bDExMiA1NmMxMC44IDUuNCAxNy43IDE2LjUgMTcuNyAyOC42bDAgODhjMCAxNy43LTE0LjMgMzItMzIgMzJzLTMyLTE0LjMtMzItMzJsMC02OC4yLTYxLjMtMzAuNy0zNi4zIDEwOWMtNS42IDE2LjgtMjMuNyAyNS44LTQwLjUgMjAuMlMtMy45IDQ4Ni42IDEuNyA0NjkuOWw0OC0xNDRjMi45LTguOCA5LjUtMTUuOSAxOC4xLTE5LjRzMTguMy0zLjIgMjYuNiAuOXoiXX0sYVN0PVdjZSx4RD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJnYXVnZS1oaWdoIixpY29uOls1MTIsNTEyLFs2MjQ2MSwidGFjaG9tZXRlci1hbHQiLCJ0YWNob21ldGVyLWFsdC1mYXN0Il0sImY2MjUiLCJNMCAyNTZhMjU2IDI1NiAwIDEgMSA1MTIgMCAyNTYgMjU2IDAgMSAxIC01MTIgMHpNMjg4IDk2YTMyIDMyIDAgMSAwIC02NCAwIDMyIDMyIDAgMSAwIDY0IDB6TTI1NiA0MTZjMzUuMyAwIDY0LTI4LjcgNjQtNjQgMC0xNi4yLTYtMzEuMS0xNi00Mi4zbDY5LjUtMTM4LjljNS45LTExLjkgMS4xLTI2LjMtMTAuNy0zMi4ycy0yNi4zLTEuMS0zMi4yIDEwLjdMMjYxLjEgMjg4LjJjLTEuNy0uMS0zLjQtLjItNS4xLS4yLTM1LjMgMC02NCAyOC43LTY0IDY0czI4LjcgNjQgNjQgNjR6TTE3NiAxNDRhMzIgMzIgMCAxIDAgLTY0IDAgMzIgMzIgMCAxIDAgNjQgMHpNOTYgMjg4YTMyIDMyIDAgMSAwIDAtNjQgMzIgMzIgMCAxIDAgMCA2NHptMzUyLTMyYTMyIDMyIDAgMSAwIC02NCAwIDMyIDMyIDAgMSAwIDY0IDB6Il19LG5TdD14RCxvU3Q9eEQsc1N0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImdlbmRlcmxlc3MiLGljb246WzM4NCw1MTIsW10sImYyMmQiLCJNMTkyIDEyOGExMjggMTI4IDAgMSAxIDAgMjU2IDEyOCAxMjggMCAxIDEgMC0yNTZ6bTAgMzIwYTE5MiAxOTIgMCAxIDAgMC0zODQgMTkyIDE5MiAwIDEgMCAwIDM4NHoiXX0sbFN0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImNsb3VkLXN1biIsaWNvbjpbNjQwLDUxMixbOTkyNV0sImY2YzQiLCJNMjA4LjMgMTkyYzQzLjEgMCA4MC41IDI0LjQgOTkuMiA2MC4xIDE0LjctMTcuMiAzNi40LTI4LjEgNjAuOC0yOC4xIDQ0LjIgMCA4MCAzNS44IDgwIDgwIDAgNS41LS42IDEwLjktMS42IDE2IC41IDAgMS4xIDAgMS42IDAgNTMgMCA5NiA0MyA5NiA5NnMtNDMgOTYtOTYgOTZsLTMyMCAwYy01MyAwLTk2LTQzLTk2LTk2IDAtNDIuNSAyNy43LTc4LjUgNjYtOTEuMi0xLjMtNi44LTItMTMuNy0yLTIwLjggMC02MS45IDUwLjEtMTEyIDExMi0xMTJ6bTE5Mi0yMjMuOGM1LjMgMCAxMC4zIDIuNyAxMy4zIDcuMWw0Ny4zIDcwLjQgODMuMy0xNi4zYzUuMi0xIDEwLjYgLjcgMTQuMyA0LjQgMy44IDMuOCA1LjQgOS4yIDQuNCAxNC40bC0xNi4zIDgzLjMgNzAuNCA0Ny4zYzQuNCAzIDcuMSA4IDcuMSAxMy4zIDAgNS4zLTIuNiAxMC4zLTcgMTMuMmwtNzAuNCA0Ny4zIDE0LjUgNzQuMmMtMTcuMi0yMS43LTQwLjQtMzguNC02Ny4yLTQ3LjMtMi41LTEyLjctNi45LTI0LjYtMTIuOC0zNS43IDkuNi0xNC45IDE1LjItMzIuNyAxNS4yLTUxLjcgMC01My00My05Ni05Ni05Ni00Ny45IDAtODcuNiAzNS4xLTk0LjggODAuOS0yMC45LTE2LTQ1LjktMjctNzMuMS0zMS4xbDIxLjUtMTQuNS0xNi4zLTgzLjItLjMtMmMtLjMtNC42IDEuMy05LjEgNC42LTEyLjQgMy44LTMuOCA5LjItNS40IDE0LjQtNC40bDgzLjMgMTYuMyA0Ny4zLTcwLjQgMS4yLTEuNmMzLTMuNSA3LjQtNS41IDEyLjEtNS41em0wIDE3NS44YzI2LjUgMCA0OCAyMS41IDQ4IDQ4IDAgMy44LS41IDcuNi0xLjQgMTEuMS0yMS43LTE2LjktNDguOS0yNy4xLTc4LjYtMjcuMS00LjYgMC05LjEgLjItMTMuNSAuNyA2LjQtMTkgMjQuMy0zMi43IDQ1LjUtMzIuN3oiXX0sc0U9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiYXJyb3ctcmlnaHQiLGljb246WzUxMiw1MTIsWzg1OTRdLCJmMDYxIiwiTTUwMi42IDI3OC42YzEyLjUtMTIuNSAxMi41LTMyLjggMC00NS4zbC0xNjAtMTYwYy0xMi41LTEyLjUtMzIuOC0xMi41LTQ1LjMgMHMtMTIuNSAzMi44IDAgNDUuM0w0MDIuNyAyMjQgMzIgMjI0Yy0xNy43IDAtMzIgMTQuMy0zMiAzMnMxNC4zIDMyIDMyIDMybDM3MC43IDAtMTA1LjQgMTA1LjRjLTEyLjUgMTIuNS0xMi41IDMyLjggMCA0NS4zczMyLjggMTIuNSA0NS4zIDBsMTYwLTE2MHoiXX0seUQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiaGFuZHNoYWtlIixpY29uOls1NzYsNTEyLFsxMjkzMDksNjI2NjIsImhhbmRzaGFrZS1hbHQiLCJoYW5kc2hha2Utc2ltcGxlIl0sImYyYjUiLCJNMjY4LjkgODUuMkwxNTIuMyAyMTQuOGMtNC42IDUuMS00LjQgMTMgLjUgMTcuOSAzMC41IDMwLjUgODAgMzAuNSAxMTAuNSAwbDMxLjgtMzEuOGM0LjItNC4yIDkuNS02LjUgMTQuOS02LjkgNi44LS42IDEzLjggMS43IDE5IDYuOUw1MDUuNiAzNzYgNTc2IDMyMCA1NzYgMzIgNDY0IDk2IDQ0MC4yIDgwLjFDNDI0LjQgNjkuNiA0MDUuOSA2NCAzODYuOSA2NGwtNzAuNCAwYy0xLjEgMC0yLjMgMC0zLjQgLjEtMTYuOSAuOS0zMi44IDguNS00NC4yIDIxLjF6TTExNi42IDE4Mi43TDIyMy40IDY0IDE4My44IDY0Yy0yNS41IDAtNDkuOSAxMC4xLTY3LjkgMjguMUwxMTIgOTYgMCAzMiAwIDMyMCAxNTYuNCA0NTAuM2MyMyAxOS4yIDUyIDI5LjcgODEuOSAyOS43bDE1LjcgMC03LTdjLTkuNC05LjQtOS40LTI0LjYgMC0zMy45czI0LjYtOS40IDMzLjkgMGw0MSA0MSA5IDBjMTkuMSAwIDM3LjgtNC4zIDU0LjgtMTIuM0wzNTkgNDQxYy05LjQtOS40LTkuNC0yNC42IDAtMzMuOXMyNC42LTkuNCAzMy45IDBsMzIgMzIgMTcuNS0xNy41YzguOS04LjkgMTEuNS0yMS44IDcuNi0zMy4xbC0xMzcuOS0xMzYuOC0xNC45IDE0LjljLTQ5LjMgNDkuMy0xMjkuMSA0OS4zLTE3OC40IDAtMjMtMjMtMjMuOS01OS45LTIuMi04NHoiXX0sY1N0PXlELGRTdD15RCxHY2U9e3ByZWZpeDoiZmFzIixpY29uTmFtZToicGVyc29uLXNraWluZyIsaWNvbjpbNTc2LDUxMixbOTk3NSwic2tpaW5nIl0sImY3YzkiLCJNNDE2IDU2YTU2IDU2IDAgMSAxIDExMiAwIDU2IDU2IDAgMSAxIC0xMTIgMHpNMi43IDMwMC45YzYuMS0xMS44IDIwLjYtMTYuMyAzMi40LTEwLjJsMTk3LjggMTAyLjcgNjIuMy04Ny4yLTgyLTkyLjJjLTExLTEyLjQtMTYuMi0yNy41LTE2LjItNDIuNGwxMTEuNiA1My40IDQyLjkgNDguMmMxNC45IDE2LjcgMTYuMiA0MS42IDMuMiA1OS44bC02NC40IDkwLjIgMTI4LjMgNjYuNmMxMy42IDcuMSAyOS44IDcuMiA0My42IC4zbDE1LjItNy42YzExLjktNS45IDI2LjMtMS4xIDMyLjIgMTAuN3MxLjEgMjYuMy0xMC43IDMyLjJsLTE1LjIgNy42Yy0yNy41IDEzLjctNTkuOSAxMy41LTg3LjItLjdMMTIuOSAzMzMuM0MxLjIgMzI3LjItMy40IDMxMi43IDIuNyAzMDAuOXpNMTAzIDQ5LjZsMTggOC43IDguNy0xNy40YzQtNy45IDEzLjYtMTEuMSAyMS41LTcuMnMxMS4xIDEzLjYgNy4yIDIxLjVsLTguNSAxNyA4NC44IDQxIC40LS4yIDc2LjEtMzMuOGMzMS4zLTEzLjkgNjcuOS0uNyA4My4yIDI5LjlsMjguOSA1Ny44IDY4LjcgMjcuNWMxNi40IDYuNiAyNC40IDI1LjIgMTcuOCA0MS42cy0yNS4yIDI0LjQtNDEuNiAxNy44TDM5My44IDIyNGMtMTAuOS00LjQtMTkuOC0xMi42LTI1LjEtMjMuMWwtMTEuNS0yMy4xYy0xNi40IDkuNC0yNS45IDE0LjgtMjguNSAxNi4zbC03LjYtMy43LTE4NS42LTg5LjYtOS4yIDE4LjNjLTQgNy45LTEzLjYgMTEuMS0yMS41IDcuMnMtMTEuMS0xMy42LTcuMi0yMS41bDktMTcuOS0xNy42LTguNUM4MS4xIDc0LjYgNzcuOCA2NSA4MS42IDU3Uzk1IDQ1LjcgMTAzIDQ5LjZ6Il19LHVTdD1HY2UscFN0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImJyaWRnZS13YXRlciIsaWNvbjpbNjQwLDUxMixbXSwiZTRjZSIsIk02NCA2NGw1MTIgMCAwIDExMmMtMzcuNiA5LjQtNjQgNDMuMi02NCA4MmwwIDc2LjRjLTIxLTkuNy00My41LTE0LjUtNjYtMTQuNC0xMCAuMS0yMC4xIDEuMS0zMCAzLjFsMC0zNS4xYzAtNTMtNDMtOTYtOTYtOTZzLTk2IDQzLTk2IDk2bDAgMzIuN2MtNS4zLS41LTEwLjctLjgtMTYtLjctMjcuNyAuMi01NS40IDcuOC04MCAyM2wwLTg1YzAtMzguOC0yNi40LTcyLjYtNjQtODJMNjQgNjR6TTQwMy40IDQ0NC4xQzM3OS4xIDQ2Mi4zIDM1MS4xIDQ4MCAzMjAgNDgwcy01OS4xLTE3LjctODMuNC0zNS45Yy0yMS4zLTE2LjEtNDkuOS0xNi4xLTcxLjIgMC0yMy44IDE3LjktNTQuMSAzNS41LTg4LjEgMzUuMy0yMC40LS4xLTQwLjctNi43LTU5LjgtMjEuMS0xMC42LTgtMTIuNy0yMy00LjctMzMuNnMyMy0xMi43IDMzLjYtNC43YzExLjMgOC41IDIxLjYgMTEuNCAzMS4yIDExLjUgMTcuNiAuMSAzNy4zLTkuNCA1OC45LTI1LjcgMzguNC0yOSA5MC41LTI5IDEyOSAwIDI0IDE4LjEgNDAuNyAyNi4zIDU0LjUgMjYuM3MzMC41LTguMiA1NC41LTI2LjNjMzguNC0yOSA5MC41LTI5IDEyOSAwIDE2LjkgMTIuNyAzMi45IDIxLjUgNDcuOCAyNC42IDEzLjcgMi44IDI3LjQgLjkgNDIuMy0xMC4zIDEwLjYtOCAyNS42LTUuOSAzMy42IDQuN3M1LjkgMjUuNi00LjcgMzMuNmMtMjYuNCAxOS45LTU0LjIgMjQuNC04MC43IDE5LjEtMjUuMy01LjEtNDguMS0xOC45LTY3LjItMzMuMy0yMS4zLTE2LjEtNDkuOS0xNi4xLTcxLjIgMHoiXX0saFN0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImJ1aWxkaW5nLW5nbyIsaWNvbjpbNTc2LDUxMixbXSwiZTRkNyIsIk0xMjggMEM5Mi43IDAgNjQgMjguNyA2NCA2NGwwIDM4NGMwIDM1LjMgMjguNyA2NCA2NCA2NGw0OCAwIDAtMTEyYzAtMzUuMyAyOC43LTY0IDY0LTY0bDIwOCAwIDAtMjcyYzAtMzUuMy0yOC43LTY0LTY0LTY0TDEyOCAwem0zMiAxMTJjMC04LjggNy4yLTE2IDE2LTE2bDMyIDBjOC44IDAgMTYgNy4yIDE2IDE2bDAgMzJjMCA4LjgtNy4yIDE2LTE2IDE2bC0zMiAwYy04LjggMC0xNi03LjItMTYtMTZsMC0zMnpNMzA0IDk2bDMyIDBjOC44IDAgMTYgNy4yIDE2IDE2bDAgMzJjMCA4LjgtNy4yIDE2LTE2IDE2bC0zMiAwYy04LjggMC0xNi03LjItMTYtMTZsMC0zMmMwLTguOCA3LjItMTYgMTYtMTZ6TTE2MCAyNDBjMC04LjggNy4yLTE2IDE2LTE2bDMyIDBjOC44IDAgMTYgNy4yIDE2IDE2bDAgMzJjMCA4LjgtNy4yIDE2LTE2IDE2bC0zMiAwYy04LjggMC0xNi03LjItMTYtMTZsMC0zMnptMTQ0LTE2bDMyIDBjOC44IDAgMTYgNy4yIDE2IDE2bDAgMzJjMCA4LjgtNy4yIDE2LTE2IDE2bC0zMiAwYy04LjggMC0xNi03LjItMTYtMTZsMC0zMmMwLTguOCA3LjItMTYgMTYtMTZ6TTUyMCAzODBjLTI0LjMgMC00NCAxOS43LTQ0IDQ0bDAgODBjMCAyNC4zIDE5LjcgNDQgNDQgNDRsMTYgMGMyNC4zIDAgNDQtMTkuNyA0NC00NGwwLTgwYzAtMjQuMy0xOS43LTQ0LTQ0LTQ0bC0xNiAwem0tNCA0NGMwLTIuMiAxLjgtNCA0LTRsMTYgMGMyLjIgMCA0IDEuOCA0IDRsMCA4MGMwIDIuMi0xLjggNC00IDRsLTE2IDBjLTIuMiAwLTQtMS44LTQtNGwwLTgwem0tMTY4IDBsMCA4MGMwIDI0LjMgMTkuNyA0NCA0NCA0NGwxNiAwYzI0LjMgMCA0NC0xOS43IDQ0LTQ0bDAtMjRjMC0xMS05LTIwLTIwLTIwbC04IDBjLTExIDAtMjAgOS0yMCAyMCAwIDYuNSAzLjEgMTIuNCA4IDE2bDAgOGMwIDIuMi0xLjggNC00IDRsLTE2IDBjLTIuMiAwLTQtMS44LTQtNGwwLTgwYzAtMi4yIDEuOC00IDQtNGwyMC40IDBjMS45IDkuMSA5LjkgMTYgMTkuNiAxNiAxMSAwIDIwLTkgMjAtMjAgMC0xOS45LTE2LjEtMzYtMzYtMzZsLTI0IDBjLTI0LjMgMC00NCAxOS43LTQ0IDQ0em0tOTAuMS0zMi45Yy00LjEtOC4zLTEzLjUtMTIuNy0yMi41LTEwLjVTMjIwIDM5MC43IDIyMCA0MDBsMCAxMjhjMCAxMSA5IDIwIDIwIDIwczIwLTkgMjAtMjBsMC00My4zIDI2LjEgNTIuMmM0LjEgOC4zIDEzLjUgMTIuNyAyMi41IDEwLjVTMzI0IDUzNy4zIDMyNCA1MjhsMC0xMjhjMC0xMS05LTIwLTIwLTIwcy0yMCA5LTIwIDIwbDAgNDMuMy0yNi4xLTUyLjJ6Il19LGZTdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJpZ2xvbyIsaWNvbjpbNTc2LDUxMixbXSwiZjdhZSIsIk0zMjAgMzMuOGwwIDEyNi4yLTI3MS41IDBjNTEuNy03Ny4yIDEzOS42LTEyOCAyMzkuNS0xMjggMTAuOCAwIDIxLjUgLjYgMzIgMS44ek0zNjggMTYwbDAtMTE2LjdjNjYgMTkgMTIyLjIgNjEgMTU5LjUgMTE2LjdMMzY4IDE2MHpNMjIuNiAyMDhsNzMuNCAwIDAgMTEyLTk2IDBjMC0zOS43IDgtNzcuNiAyMi42LTExMnpNMTc2IDMyMGwtMzIgMCAwLTExMiAyODggMCAwIDExMi0zMiAwIDAgNDggMTc2IDAgMCA2NGMwIDI2LjUtMjEuNSA0OC00OCA0OEw0OCA0ODBjLTI2LjUgMC00OC0yMS41LTQ4LTQ4bDAtNjQgMTc2IDAgMC00OHptMzA0IDBsMC0xMTIgNzMuNCAwQzU2OCAyNDIuNCA1NzYgMjgwLjMgNTc2IDMyMGwtOTYgMHpNMjg4IDI4OGMtMzUuMyAwLTY0IDI4LjctNjQgNjRsMCA4MCAxMjggMCAwLTgwYzAtMzUuMy0yOC43LTY0LTY0LTY0eiJdfSxZY2U9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiY2lyY2xlLWRvbGxhci10by1zbG90IixpY29uOls1NzYsNTEyLFsiZG9uYXRlIl0sImY0YjkiLCJNOTYgMjI0YTE5MiAxOTIgMCAxIDEgMzg0IDAgMTkyIDE5MiAwIDEgMSAtMzg0IDB6bTE3Ni05MmwwIDRjLTI4LjggLjMtNTIgMjMuNy01MiA1Mi41IDAgMjUuNyAxOC41IDQ3LjYgNDMuOSA1MS44bDQxLjcgN2M2IDEgMTAuNCA2LjIgMTAuNCAxMi4zIDAgNi45LTUuNiAxMi41LTEyLjUgMTIuNUwyNDggMjcyYy0xMSAwLTIwIDktMjAgMjBzOSAyMCAyMCAyMGwyNCAwIDAgNGMwIDExIDkgMjAgMjAgMjBzMjAtOSAyMC0yMGwwLTQuN2MyNS00LjEgNDQtMjUuNyA0NC01MS44IDAtMjUuNy0xOC41LTQ3LjYtNDMuOS01MS44bC00MS43LTdjLTYtMS0xMC40LTYuMi0xMC40LTEyLjMgMC02LjkgNS42LTEyLjUgMTIuNS0xMi41bDQ3LjUgMGMxMSAwIDIwLTkgMjAtMjBzLTktMjAtMjAtMjBsLTggMCAwLTRjMC0xMS05LTIwLTIwLTIwcy0yMCA5LTIwIDIwek00OCAzNDRsMCAxMDRjMCA4LjggNy4yIDE2IDE2IDE2bDQ0OCAwYzguOCAwIDE2LTcuMiAxNi0xNmwwLTEwNGMwLTEzLjMgMTAuNy0yNCAyNC0yNHMyNCAxMC43IDI0IDI0bDAgMTA0YzAgMzUuMy0yOC43IDY0LTY0IDY0TDY0IDUxMmMtMzUuMyAwLTY0LTI4LjctNjQtNjRMMCAzNDRjMC0xMy4zIDEwLjctMjQgMjQtMjRzMjQgMTAuNyAyNCAyNHoiXX0sbVN0PVljZSxnU3Q9e3ByZWZpeDoiZmFzIixpY29uTmFtZToieSIsaWNvbjpbMzg0LDUxMixbMTIxXSwiNTkiLCJNNTggNDUuNEM0Ny44IDMxIDI3LjggMjcuNyAxMy40IDM4Uy00LjMgNjguMiA2IDgyLjZMMTYwIDI5OC4zIDE2MCA0NDhjMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMmwwLTE0OS43IDE1NC0yMTUuN2MxMC4zLTE0LjQgNi45LTM0LjQtNy40LTQ0LjZTMzM2LjIgMzEgMzI2IDQ1LjRMMTkyIDIzMi45IDU4IDQ1LjR6Il19LFpjZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJmYWNlLXNtaWxlLXdpbmsiLGljb246WzUxMiw1MTIsWzEyODUyMSwic21pbGUtd2luayJdLCJmNGRhIiwiTTI1NiA1MTJhMjU2IDI1NiAwIDEgMCAwLTUxMiAyNTYgMjU2IDAgMSAwIDAgNTEyek0xNjUuNCAzMjEuOWMyMC40IDI4IDUzLjQgNDYuMSA5MC42IDQ2LjFzNzAuMi0xOC4xIDkwLjYtNDYuMWM3LjgtMTAuNyAyMi44LTEzLjEgMzMuNS01LjNzMTMuMSAyMi44IDUuMyAzMy41QzM1Ni4zIDM5MCAzMDkuMiA0MTYgMjU2IDQxNnMtMTAwLjMtMjYtMTI5LjQtNjUuOWMtNy44LTEwLjctNS40LTI1LjcgNS4zLTMzLjVzMjUuNy01LjQgMzMuNSA1LjN6TTE0NCAyMDhhMzIgMzIgMCAxIDEgNjQgMCAzMiAzMiAwIDEgMSAtNjQgMHptMTY0IDhjMCAxMS05IDIwLTIwIDIwcy0yMC05LTIwLTIwYzAtMzMuMSAyNi45LTYwIDYwLTYwbDE2IDBjMzMuMSAwIDYwIDI2LjkgNjAgNjAgMCAxMS05IDIwLTIwIDIwcy0yMC05LTIwLTIwLTktMjAtMjAtMjBsLTE2IDBjLTExIDAtMjAgOS0yMCAyMHoiXX0sYlN0PVpjZSx2U3Q9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZGljZS1mb3VyIixpY29uOls0NDgsNTEyLFs5ODU5XSwiZjUyNCIsIk0wIDk2QzAgNjAuNyAyOC43IDMyIDY0IDMybDMyMCAwYzM1LjMgMCA2NCAyOC43IDY0IDY0bDAgMzIwYzAgMzUuMy0yOC43IDY0LTY0IDY0TDY0IDQ4MGMtMzUuMyAwLTY0LTI4LjctNjQtNjRMMCA5NnptMTYwIDY0YTMyIDMyIDAgMSAwIC02NCAwIDMyIDMyIDAgMSAwIDY0IDB6TTEyOCAzODRhMzIgMzIgMCAxIDAgMC02NCAzMiAzMiAwIDEgMCAwIDY0ek0zNTIgMTYwYTMyIDMyIDAgMSAwIC02NCAwIDMyIDMyIDAgMSAwIDY0IDB6TTMyMCAzODRhMzIgMzIgMCAxIDAgMC02NCAzMiAzMiAwIDEgMCAwIDY0eiJdfSxYY2U9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZmFjZS1ncmluLXNxdWludC10ZWFycyIsaWNvbjpbNTc2LDUxMixbMTI5MzE1LCJncmluLXNxdWludC10ZWFycyJdLCJmNTg2IiwiTTU2MCAzNS40YzAgMjUuNi0xOC44IDQ3LjMtNDQuMSA1MC45TDQ2OS4xIDkzYy0xMC42IDEuNS0xOS42LTcuNS0xOC4xLTE4LjFsNi43LTQ2LjdDNDYxLjMgMi44IDQ4My0xNiA1MDguNi0xNiA1MzctMTYgNTYwIDcgNTYwIDM1LjR6TTQwMy41IDY4LjFjLTYgNDIuMiAzMC4yIDc4LjQgNzIuNCA3Mi40bDM3LjgtNS40QzU2NS43IDIzMiA1NTAuOCAzNTUuMyA0NjkgNDM3cy0yMDUgOTYuNi0zMDEuOSA0NC43bDUuNC0zNy44YzYtNDIuMi0zMC4yLTc4LjQtNzIuNC03Mi40bC0zNy44IDUuNEMxMC4zIDI4MCAyNS4yIDE1Ni43IDEwNyA3NVMzMTItMjEuNyA0MDguOSAzMC4zbC01LjQgMzcuOHpNNDE3LjggMjAxYy0xOS4xIDM2LjQtNDUuNiA3Mi43LTc4LjkgMTA2cy02OS42IDU5LjgtMTA2IDc4LjljLTExLjEgNS44LTEyLjQgMjEuNC0xLjEgMjYuNiA1OS4yIDI3LjUgMTMxLjggMTYuOCAxODAuNi0zMnM1OS41LTEyMS40IDMyLTE4MC42Yy01LjMtMTEuMy0yMC44LTEwLTI2LjYgMS4xek0xMTMuOSAyNzAuNmMxLjcgOCA5IDEzLjQgMTcuMSAxMi43bDQzLjEtMy45LTMuOSA0My4xYy0uNyA4LjEgNC43IDE1LjUgMTIuNyAxNy4xczE1LjktMi45IDE4LjQtMTAuNmwyOC04NC42YzEuOS01LjcgLjQtMTIuMS0zLjktMTYuM3MtMTAuNi01LjgtMTYuMy0zLjlsLTg0LjYgMjhjLTcuNyAyLjYtMTIuMyAxMC41LTEwLjYgMTguNXpNMzE1LjIgOTkuMWMuNy04LjEtNC43LTE1LjUtMTIuNy0xNy4xcy0xNS45IDIuOS0xOC41IDEwLjZsLTI4IDg0LjZjLTEuOSA1LjctLjQgMTIuMSAzLjkgMTYuM3MxMC42IDUuOCAxNi4zIDMuOWw4NC42LTI4YzcuNy0yLjYgMTIuMy0xMC41IDEwLjYtMTguNHMtOS0xMy40LTE3LjEtMTIuN2wtNDMuMSAzLjkgMy45LTQzLjF6TTYwLjEgNDI1LjdsNDYuNy02LjdjMTAuNi0xLjUgMTkuNiA3LjUgMTguMSAxOC4xbC02LjcgNDYuN0MxMTQuNyA1MDkuMiA5MyA1MjggNjcuNCA1MjggMzkgNTI4IDE2IDUwNSAxNiA0NzYuNiAxNiA0NTEgMzQuOCA0MjkuMyA2MC4xIDQyNS43eiJdfSx4U3Q9WGNlLHlTdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJmaWxlLWF1ZGlvIixpY29uOlszODQsNTEyLFtdLCJmMWM3IiwiTTAgNjRDMCAyOC43IDI4LjcgMCA2NCAwTDIxMy41IDBjMTcgMCAzMy4zIDYuNyA0NS4zIDE4LjdMMzY1LjMgMTI1LjNjMTIgMTIgMTguNyAyOC4zIDE4LjcgNDUuM0wzODQgNDQ4YzAgMzUuMy0yOC43IDY0LTY0IDY0TDY0IDUxMmMtMzUuMyAwLTY0LTI4LjctNjQtNjRMMCA2NHptMjA4LTUuNWwwIDkzLjVjMCAxMy4zIDEwLjcgMjQgMjQgMjRMMzI1LjUgMTc2IDIwOCA1OC41em01My44IDE4NS4yYy05LjEtNi4zLTIxLjUtNC4xLTI3LjggNXMtNC4xIDIxLjUgNSAyNy44YzIzLjkgMTYuNyAzOS40IDQ0LjMgMzkuNCA3NS41cy0xNS42IDU4LjktMzkuNCA3NS41Yy05LjEgNi4zLTExLjMgMTguOC01IDI3LjhzMTguOCAxMS4zIDI3LjggNWMzNC4xLTIzLjggNTYuNi02My41IDU2LjYtMTA4LjNTMjk2IDI2Ny41IDI2MS44IDI0My43ek04MCAzMTJjLTguOCAwLTE2IDcuMi0xNiAxNmwwIDQ4YzAgOC44IDcuMiAxNiAxNiAxNmwyNCAwIDI3LjIgMzRjMyAzLjggNy42IDYgMTIuNSA2bC4zIDBjOC44IDAgMTYtNy4yIDE2LTE2bDAtMTI4YzAtOC44LTcuMi0xNi0xNi0xNmwtLjMgMGMtNC45IDAtOS41IDIuMi0xMi41IDZsLTI3LjIgMzQtMjQgMHptMTI4IDcyLjJjMCAxMC43IDEwLjUgMTguMiAxOC45IDExLjYgMTIuOS0xMC4zIDIxLjEtMjYuMSAyMS4xLTQzLjhzLTguMi0zMy41LTIxLjEtNDMuOGMtOC40LTYuNy0xOC45IC45LTE4LjkgMTEuNmwwIDY0LjV6Il19LHdTdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJhcnJvd3MtZG93bi10by1saW5lIixpY29uOls1MTIsNTEyLFtdLCJlNGI4IiwiTTIxNC42IDMxMC42bC02NCA2NGMtMTIuNSAxMi41LTMyLjggMTIuNS00NS4zIDBsLTY0LTY0Yy0xMi41LTEyLjUtMTIuNS0zMi44IDAtNDUuM3MzMi44LTEyLjUgNDUuMyAwTDk2IDI3NC43IDk2IDMyYzAtMTcuNyAxNC4zLTMyIDMyLTMyczMyIDE0LjMgMzIgMzJsMCAyNDIuNyA5LjQtOS40YzEyLjUtMTIuNSAzMi44LTEyLjUgNDUuMyAwczEyLjUgMzIuOCAwIDQ1LjN6bTI1NiAwbC02NCA2NGMtMTIuNSAxMi41LTMyLjggMTIuNS00NS4zIDBsLTY0LTY0Yy0xMi41LTEyLjUtMTIuNS0zMi44IDAtNDUuM3MzMi44LTEyLjUgNDUuMyAwbDkuNCA5LjQgMC0yNDIuN2MwLTE3LjcgMTQuMy0zMiAzMi0zMnMzMiAxNC4zIDMyIDMybDAgMjQyLjcgOS40LTkuNGMxMi41LTEyLjUgMzIuOC0xMi41IDQ1LjMgMHMxMi41IDMyLjggMCA0NS4zek0zMiA1MTJjLTE3LjcgMC0zMi0xNC4zLTMyLTMyczE0LjMtMzIgMzItMzJsNDQ4IDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJMMzIgNTEyeiJdfSxNU3Q9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZyIsaWNvbjpbNDQ4LDUxMixbMTAzXSwiNDciLCJNMjI0IDk2QzEzNS42IDk2IDY0IDE2Ny42IDY0IDI1NnM3MS42IDE2MCAxNjAgMTYwYzc3LjQgMCAxNDItNTUgMTU2LjgtMTI4TDI1NiAyODhjLTE3LjcgMC0zMi0xNC4zLTMyLTMyczE0LjMtMzIgMzItMzJsMTQ0IDBjMjUuOCAwIDQ5LjYgMjEuNCA0Ny4yIDUwLjYtOS41IDExNS0xMDUuOCAyMDUuNC0yMjMuMiAyMDUuNC0xMjMuNyAwLTIyNC0xMDAuMy0yMjQtMjI0UzEwMC4zIDMyIDIyNCAzMmM1Ny40IDAgMTA5LjcgMjEuNiAxNDkuMyA1NyAxMy4yIDExLjggMTQuMyAzMiAyLjUgNDUuMnMtMzIgMTQuMy00NS4yIDIuNUMzMDIuMyAxMTEuNCAyNjUgOTYgMjI0IDk2eiJdfSxrU3Q9e3ByZWZpeDoiZmFzIixpY29uTmFtZToidmloYXJhIixpY29uOls1NzYsNTEyLFtdLCJmNmE3IiwiTTI3My42LTMuMmM4LjUtNi40IDIwLjMtNi40IDI4LjggMEw0NDMuMiAxMDIuNGM4LjMgNi4yIDE4LjQgOS42IDI4LjggOS42IDEzLjMgMCAyNCAxMC43IDI0IDI0cy0xMC43IDI0LTI0IDI0bC0yNCAwIDAgNDggNTguNyA2NCAxMy4zIDBjMTMuMyAwIDI0IDEwLjcgMjQgMjRzLTEwLjcgMjQtMjQgMjRsLTggMCAwIDQ4IDI0LjQgMzIgMTUuNiAwYzEzLjMgMCAyNCAxMC43IDI0IDI0cy0xMC43IDI0LTI0IDI0bC00MCAwIDAgMzJjMCAxNy43LTE0LjMgMzItMzIgMzJzLTMyLTE0LjMtMzItMzJsMC0zMi0xMjggMCAwIDMyYzAgMTcuNy0xNC4zIDMyLTMyIDMycy0zMi0xNC4zLTMyLTMybDAtMzItMTI4IDAgMCAzMmMwIDE3LjctMTQuMyAzMi0zMiAzMnMtMzItMTQuMy0zMi0zMmwwLTMyLTQwIDBjLTEzLjMgMC0yNC0xMC43LTI0LTI0czEwLjctMjQgMjQtMjRsMjIuMSAwIDE3LjktMzIgMC00OC04IDBjLTEzLjMgMC0yNC0xMC43LTI0LTI0czEwLjctMjQgMjQtMjRsMTMuMyAwIDU4LjctNjQgMC00OC0yNCAwYy0xMy4zIDAtMjQtMTAuNy0yNC0yNHMxMC43LTI0IDI0LTI0YzEwLjQgMCAyMC41LTMuNCAyOC44LTkuNkwyNzMuNi0zLjJ6TTEyOCAzNjhsMzIwIDAgMC00OC0zMjAgMCAwIDQ4ek0zODQgMTYwbC0xOTIgMCAwIDQ4IDE5MiAwIDAtNDh6Il19LFNTdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJmbGFnLWNoZWNrZXJlZCIsaWNvbjpbNDQ4LDUxMixbMTI3OTM3XSwiZjExZSIsIk0zMiAwQzQ5LjcgMCA2NCAxNC4zIDY0IDMybDAgMTYgNjktMTcuMmMzOC4xLTkuNSA3OC4zLTUuMSAxMTMuNSAxMi41IDQ2LjMgMjMuMiAxMDAuOCAyMy4yIDE0Ny4xIDBsOS42LTQuOEM0MjMuOCAyOC4xIDQ0OCA0My4xIDQ0OCA2Ni4xbDAgMjc5LjdjMCAxMy4zLTguMyAyNS4zLTIwLjggMzBsLTM0LjcgMTNjLTQ2LjIgMTcuMy05Ny42IDE0LjYtMTQxLjctNy40LTM3LjktMTktODEuNC0yMy43LTEyMi41LTEzLjRMNjQgMzg0IDY0IDQ4MGMwIDE3LjctMTQuMyAzMi0zMiAzMlMwIDQ5Ny43IDAgNDgwTDAgMzJDMCAxNC4zIDE0LjMgMCAzMiAwek02NCAxODcuMWw2NC0xMy45IDAgNjUuNS02NCAxMy45IDAgNjUuNSA0OC44LTEyLjJjNS4xLTEuMyAxMC4xLTIuNCAxNS4yLTMuM2wwLTYzLjkgMzguOS04LjRjOC4zLTEuOCAxNi43LTIuNSAyNS4xLTIuMWwwLTY0YzEzLjYgLjQgMjcuMiAyLjYgNDAuNCA2LjRsMjMuNiA2LjkgMCA2Ni43LTQxLjctMTIuM2MtNy4zLTIuMS0xNC44LTMuNC0yMi4zLTMuOGwwIDcxLjRjMjEuOCAxLjkgNDMuMyA2LjcgNjQgMTQuNGwwLTY5LjggMjIuNyA2LjdjMTMuNSA0IDI3LjMgNi40IDQxLjMgNy40bDAtNjQuMmMtNy44LS44LTE1LjYtMi4zLTIzLjItNC41bC00MC44LTEyIDAtNjJjLTEzLTMuOC0yNS44LTguOC0zOC4yLTE1LTguMi00LjEtMTYuOS03LTI1LjgtOC44bDAgNzIuNGMtMTMtLjQtMjYgLjgtMzguNyAzLjZsLTI1LjMgNS41IDAtNzUuMi02NCAxNiAwIDczLjF6TTMyMCAzMzUuN2MxNi44IDEuNSAzMy45LS43IDUwLTYuOGwxNC01LjIgMC03MS43LTcuOSAxLjhjLTE4LjQgNC4zLTM3LjMgNS43LTU2LjEgNC41bDAgNzcuNHptNjQtMTQ5LjRsMC03MC44Yy0yMC45IDYuMS00Mi40IDkuMS02NCA5LjFsMCA2OS40YzEzLjkgMS40IDI4IC41IDQxLjctMi42bDIyLjMtNS4yeiJdfSx3RD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJnYXVnZS1zaW1wbGUiLGljb246WzUxMiw1MTIsWyJnYXVnZS1zaW1wbGUtbWVkIiwidGFjaG9tZXRlci1hdmVyYWdlIl0sImY2MjkiLCJNMCAyNTZhMjU2IDI1NiAwIDEgMSA1MTIgMCAyNTYgMjU2IDAgMSAxIC01MTIgMHptMzIwIDk2YzAtMjYuOS0xNi41LTQ5LjktNDAtNTkuM0wyODAgMTIwYzAtMTMuMy0xMC43LTI0LTI0LTI0cy0yNCAxMC43LTI0IDI0bDAgMTcyLjdjLTIzLjUgOS41LTQwIDMyLjUtNDAgNTkuMyAwIDM1LjMgMjguNyA2NCA2NCA2NHM2NC0yOC43IDY0LTY0eiJdfSx6U3Q9d0QsQ1N0PXdELFFjZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJyaWdodC1sZWZ0IixpY29uOls1MTIsNTEyLFsiZXhjaGFuZ2UtYWx0Il0sImYzNjIiLCJNNTAyLjYgMTUwLjZsLTk2IDk2Yy05LjIgOS4yLTIyLjkgMTEuOS0zNC45IDYuOVMzNTIgMjM2LjkgMzUyIDIyNGwwLTY0LTMyMCAwYy0xNy43IDAtMzItMTQuMy0zMi0zMlMxNC4zIDk2IDMyIDk2bDMyMCAwIDAtNjRjMC0xMi45IDcuOC0yNC42IDE5LjgtMjkuNnMyNS43LTIuMiAzNC45IDYuOWw5NiA5NmMxMi41IDEyLjUgMTIuNSAzMi44IDAgNDUuM3ptLTM5Ny4zIDM1MmwtOTYtOTZjLTEyLjUtMTIuNS0xMi41LTMyLjggMC00NS4zbDk2LTk2YzkuMi05LjIgMjIuOS0xMS45IDM0LjktNi45UzE2MCAyNzUuMSAxNjAgMjg4bDAgNjQgMzIwIDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJsLTMyMCAwIDAgNjRjMCAxMi45LTcuOCAyNC42LTE5LjggMjkuNnMtMjUuNyAyLjItMzQuOS02Ljl6Il19LFRTdD1RY2UsX1N0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InBpbGxzIixpY29uOls1MTIsNTEyLFtdLCJmNDg0IiwiTTY0IDExMmMwLTI2LjUgMjEuNS00OCA0OC00OHM0OCAyMS41IDQ4IDQ4bDAgMTEyLTk2IDAgMC0xMTJ6TTE3NiAzNjhjMC00OC43IDE4LjEtOTMuMiA0OC0xMjdsMC0xMjlDMjI0IDUwLjEgMTczLjkgMCAxMTIgMFMwIDUwLjEgMCAxMTJMMCA0MDBjMCA2MS45IDUwLjEgMTEyIDExMiAxMTIgMzcuMyAwIDcwLjMtMTguMiA5MC43LTQ2LjMtMTctMjguNi0yNi43LTYyLTI2LjctOTcuN3ptNjQuNyA2Ny40YzQuNiA4LjcgMTYuMyA5LjcgMjMuMyAyLjdMNDM4LjEgMjY0YzctNyA2LTE4LjctMi43LTIzLjMtMjAuMS0xMC43LTQzLTE2LjctNjcuNC0xNi43LTc5LjUgMC0xNDQgNjQuNS0xNDQgMTQ0IDAgMjQuMyA2IDQ3LjMgMTYuNyA2Ny40ek0yOTcuOSA0NzJjLTcgNy02IDE4LjcgMi43IDIzLjMgMjAuMSAxMC43IDQzIDE2LjcgNjcuNCAxNi43IDc5LjUgMCAxNDQtNjQuNSAxNDQtMTQ0IDAtMjQuMy02LTQ3LjMtMTYuNy02Ny40LTQuNi04LjctMTYuMy05LjctMjMuMy0yLjdMMjk3LjkgNDcyeiJdfSxMU3Q9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZXhwbG9zaW9uIixpY29uOls1MTIsNTEyLFtdLCJlNGU5IiwiTTI1Ni0zMmMxMy4zIDAgMjQgMTAuNyAyNCAyNGwwIDQ4YzAgMTMuMy0xMC43IDI0LTI0IDI0cy0yNC0xMC43LTI0LTI0bDAtNDhjMC0xMy4zIDEwLjctMjQgMjQtMjR6bTAgMTYwYzEyLjQgMCAyMi43IDkuNCAyMy45IDIxLjdMMjkzLjQgMjkxLjYgNDY3LjYgMTEuM2M2LjctMTAuNyAyMC41LTE0LjUgMzEuNy04LjVzMTUuOCAxOS41IDEwLjYgMzFMMzcyLjggMzM4LjZjMi4yIDIuMyA0LjMgNC43IDYuMyA3LjFsOTcuMi01NC43YzEwLjUtNS45IDIzLjYtMy4xIDMwLjkgNi40czYuMyAyMy0yLjIgMzEuNWwtODcgODctNzEuNCAwYy0xMy4yLTM3LjMtNDguNy02NC05MC41LTY0cy03Ny40IDI2LjctOTAuNSA2NGwtNzkuNiAwLTc1LjUtNTIuM0MuNiAzNTctMi44IDM0NC4xIDIuNCAzMzMuNXMxNy40LTE1LjkgMjguNy0xMi40bDk3LjIgMzAuNGMzLTMuOSA2LjEtNy42IDkuNC0xMS4zTDc1LjQgMjM2LjNjLTYuMS0xMC4xLTMuOS0yMy4xIDUuMS0zMC43czIyLjItNy41IDMxLjEgLjFMMjE0IDI5My42YzEuNS0uNCAzLS44IDQuNS0xLjFsMTMuNi0xNDIuN2MxLjItMTIuMyAxMS41LTIxLjcgMjMuOS0yMS43ek0zMiA0NjRsNDU2IDBjMTMuMyAwIDI0IDEwLjcgMjQgMjRzLTEwLjcgMjQtMjQgMjRMMjQgNTEyYy0xMy4zIDAtMjQtMTAuNy0yNC0yNHMxMC43LTI0IDI0LTI0bDggMHoiXX0sQVN0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImFycm93cy1kb3duLXRvLXBlb3BsZSIsaWNvbjpbNTEyLDUxMixbXSwiZTRiOSIsIk0xMTMgMTUzYy05LjQgOS40LTI0LjYgOS40LTMzLjkgMEwxNSA4OUM1LjcgNzkuNiA1LjcgNjQuNCAxNSA1NVMzOS42IDQ1LjcgNDkgNTVMNzIgNzguMSA3Mi04YzAtMTMuMyAxMC43LTI0IDI0LTI0czI0IDEwLjcgMjQgMjRsMCA4Ni4xIDIzLTIzYzkuNC05LjQgMjQuNi05LjQgMzMuOSAwczkuNCAyNC42IDAgMzMuOWwtNjQgNjR6bTMyMCAwYy05LjQgOS40LTI0LjYgOS40LTMzLjkgMEwzMzUgODljLTkuNC05LjQtOS40LTI0LjYgMC0zMy45czI0LjYtOS40IDMzLjkgMGwyMyAyMyAwLTg2LjFjMC0xMy4zIDEwLjctMjQgMjQtMjRzMjQgMTAuNyAyNCAyNGwwIDg2LjEgMjMtMjNjOS40LTkuNCAyNC42LTkuNCAzMy45IDBzOS40IDI0LjYgMCAzMy45bC02NCA2NHpNMjU2IDE5MmE1NiA1NiAwIDEgMSAwIDExMiA1NiA1NiAwIDEgMSAwLTExMnptMCAxNjBjNTMgMCA5NiA0MyA5NiA5NmwwIDMyYzAgMTcuNy0xNC4zIDMyLTMyIDMybC0xMjggMGMtMTcuNyAwLTMyLTE0LjMtMzItMzJsMC0zMmMwLTUzIDQzLTk2IDk2LTk2ek0zMiAyODhhNDggNDggMCAxIDEgOTYgMCA0OCA0OCAwIDEgMSAtOTYgMHptMzUyIDBhNDggNDggMCAxIDEgOTYgMCA0OCA0OCAwIDEgMSAtOTYgMHpNODAgMzY4YzE1LjMgMCAyOS42IDQuMyA0MS44IDExLjgtNi4zIDE2LjItOS44IDMzLjgtOS44IDUyLjJsMCA0OGMwIDExLjQgMi40IDIyLjIgNi43IDMybC04Ny44IDBDMTMuOCA1MTIgMCA0OTguMiAwIDQ4MS4xTDAgNDQ4YzAtNDQuMiAzNS44LTgwIDgwLTgwek0zOTMuMyA1MTJjNC4zLTkuOCA2LjctMjAuNiA2LjctMzJsMC00OGMwLTE4LjQtMy41LTM2LTkuOC01Mi4yIDEyLjItNy41IDI2LjUtMTEuOCA0MS44LTExLjggNDQuMiAwIDgwIDM1LjggODAgODBsMCAzMy4xYzAgMTctMTMuOCAzMC45LTMwLjkgMzAuOWwtODcuOCAweiJdfSxEU3Q9e3ByZWZpeDoiZmFzIixpY29uTmFtZToidXNlcnMtdmlld2ZpbmRlciIsaWNvbjpbNTc2LDUxMixbXSwiZTU5NSIsIk02NCAwQzI4LjcgMCAwIDI4LjcgMCA2NGwwIDcyYzAgMTMuMyAxMC43IDI0IDI0IDI0czI0LTEwLjcgMjQtMjRsMC03MmMwLTguOCA3LjItMTYgMTYtMTZsNzIgMGMxMy4zIDAgMjQtMTAuNyAyNC0yNFMxNDkuMyAwIDEzNiAwTDY0IDB6TTQ0MCAwYy0xMy4zIDAtMjQgMTAuNy0yNCAyNHMxMC43IDI0IDI0IDI0bDcyIDBjOC44IDAgMTYgNy4yIDE2IDE2bDAgNzJjMCAxMy4zIDEwLjcgMjQgMjQgMjRzMjQtMTAuNyAyNC0yNGwwLTcyYzAtMzUuMy0yOC43LTY0LTY0LTY0TDQ0MCAwek00OCAzNzZjMC0xMy4zLTEwLjctMjQtMjQtMjRTMCAzNjIuNyAwIDM3NmwwIDcyYzAgMzUuMyAyOC43IDY0IDY0IDY0bDcyIDBjMTMuMyAwIDI0LTEwLjcgMjQtMjRzLTEwLjctMjQtMjQtMjRsLTcyIDBjLTguOCAwLTE2LTcuMi0xNi0xNmwwLTcyem01MjggMGMwLTEzLjMtMTAuNy0yNC0yNC0yNHMtMjQgMTAuNy0yNCAyNGwwIDcyYzAgOC44LTcuMiAxNi0xNiAxNmwtNzIgMGMtMTMuMyAwLTI0IDEwLjctMjQgMjRzMTAuNyAyNCAyNCAyNGw3MiAwYzM1LjMgMCA2NC0yOC43IDY0LTY0bDAtNzJ6TTI4OCAyMTZhNTYgNTYgMCAxIDAgMC0xMTIgNTYgNTYgMCAxIDAgMCAxMTJ6bTAgNDBjLTUzIDAtOTYgNDMtOTYgOTZsMCAyNGMwIDEzLjMgMTAuNyAyNCAyNCAyNGwxNDQgMGMxMy4zIDAgMjQtMTAuNyAyNC0yNGwwLTI0YzAtNTMtNDMtOTYtOTYtOTZ6bTE5Mi02NGE0OCA0OCAwIDEgMCAtOTYgMCA0OCA0OCAwIDEgMCA5NiAwek0xNjggMjcyLjNjLTQ5LjMgNC4xLTg4IDQ1LjMtODggOTUuN2wwIDEwLjdjMCAxMS44IDkuNiAyMS4zIDIxLjMgMjEuM2w0Ni44IDBjLTIuNy03LjUtNC4xLTE1LjYtNC4xLTI0bDAtMjRjMC0yOS41IDguOC01Ni45IDI0LTc5Ljd6TTQyNy45IDQwMGw0Ni44IDBjMTEuOCAwIDIxLjMtOS42IDIxLjMtMjEuM2wwLTEwLjdjMC01MC4zLTM4LjctOTEuNi04OC05NS43IDE1LjIgMjIuOCAyNCA1MC4yIDI0IDc5LjdsMCAyNGMwIDguNC0xLjQgMTYuNS00LjEgMjR6TTE5MiAxOTJhNDggNDggMCAxIDAgLTk2IDAgNDggNDggMCAxIDAgOTYgMHoiXX0sRVN0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImNhci1vbiIsaWNvbjpbNDQ4LDUxMixbXSwiZTRkZCIsIk0yNDgtOGMwLTEzLjMtMTAuNy0yNC0yNC0yNFMyMDAtMjEuMyAyMDAtOGwwIDY0YzAgMTMuMyAxMC43IDI0IDI0IDI0czI0LTEwLjcgMjQtMjRsMC02NHpNMTQ1LjMgMjA4bDE1Ny41IDBjNi43IDAgMTIuNiA0LjEgMTUgMTAuNGwyNi4xIDY5LjYtMjM5LjYgMCAyNi4xLTY5LjZjMi4zLTYuMiA4LjMtMTAuNCAxNS0xMC40ek0zNCAyOTIuOGwtMS4zIDMuNEMxMy4yIDMwNy4xIDAgMzI4IDAgMzUyTDAgNDgwYzAgMTcuNyAxNC4zIDMyIDMyIDMybDE2IDBjMTcuNyAwIDMyLTE0LjMgMzItMzJsMC0zMiAyODggMCAwIDMyYzAgMTcuNyAxNC4zIDMyIDMyIDMybDE2IDBjMTcuNyAwIDMyLTE0LjMgMzItMzJsMC0xMjhjMC0yNC0xMy4yLTQ0LjktMzIuOC01NS45bC0xLjMtMy40LTM2LjMtOTYuOWMtMTEuNy0zMS4yLTQxLjYtNTEuOS03NC45LTUxLjlsLTE1Ny41IDBjLTMzLjMgMC02My4yIDIwLjctNzQuOSA1MS45TDM0IDI5Mi44ek05NiAzMzZhMzIgMzIgMCAxIDEgMCA2NCAzMiAzMiAwIDEgMSAwLTY0em0yMjQgMzJhMzIgMzIgMCAxIDEgNjQgMCAzMiAzMiAwIDEgMSAtNjQgMHpNNyA3Qy0yLjMgMTYuNC0yLjMgMzEuNiA3IDQxTDU1IDg5YzkuNCA5LjQgMjQuNiA5LjQgMzMuOSAwUzk4LjMgNjQuNCA4OSA1NUw0MSA3QzMxLjYtMi4zIDE2LjQtMi4zIDcgN3pNNDA3IDdMMzU5IDU1Yy05LjQgOS40LTkuNCAyNC42IDAgMzMuOXMyNC42IDkuNCAzMy45IDBsNDgtNDhjOS40LTkuNCA5LjQtMjQuNiAwLTMzLjlTNDE2LjQtMi4zIDQwNyA3eiJdfSwkU3Q9e3ByZWZpeDoiZmFzIixpY29uTmFtZToic2xlaWdoIixpY29uOls2NDAsNTEyLFtdLCJmN2NjIiwiTTY0IDMyQzQ2LjMgMzIgMzIgNDYuMyAzMiA2NFM0Ni4zIDk2IDY0IDk2bDAgMTYwYzAgNDEuOCAyNi43IDc3LjQgNjQgOTAuNWwwIDY5LjUtNzIgMGMtMTMuMyAwLTI0IDEwLjctMjQgMjRzMTAuNyAyNCAyNCAyNGw1MDQgMGM0NC4yIDAgODAtMzUuOCA4MC04MGwwLThjMC0xMy4zLTEwLjctMjQtMjQtMjRzLTI0IDEwLjctMjQgMjRsMCA4YzAgMTcuNy0xNC4zIDMyLTMyIDMybC04MCAwIDAtNjRjNTMgMCA5Ni00MyA5Ni05NmwwLTk2YzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMybC0zMiAwYy0xNy43IDAtMzIgMTQuMy0zMiAzMmwwIDMyYzAgMzUuMy0yOC43IDY0LTY0IDY0bC00OC45IDBjLTQ4LjUgMC05Mi44LTI3LjQtMTE0LjUtNzAuOGwtMjUuMi01MC41QzIzNy43IDU5LjQgMTkzLjQgMzIgMTQ0LjkgMzJMNjQgMzJ6TTQzMiA0MTZsLTI1NiAwIDAtNjQgMjU2IDAgMCA2NHoiXX0sSVN0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImR1bWJiZWxsIixpY29uOls2NDAsNTEyLFtdLCJmNDRiIiwiTTk2IDExMmMwLTI2LjUgMjEuNS00OCA0OC00OHM0OCAyMS41IDQ4IDQ4bDAgMTEyIDI1NiAwIDAtMTEyYzAtMjYuNSAyMS41LTQ4IDQ4LTQ4czQ4IDIxLjUgNDggNDhsMCAxNiAxNiAwYzI2LjUgMCA0OCAyMS41IDQ4IDQ4bDAgNDhjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJsMCA0OGMwIDI2LjUtMjEuNSA0OC00OCA0OGwtMTYgMCAwIDE2YzAgMjYuNS0yMS41IDQ4LTQ4IDQ4cy00OC0yMS41LTQ4LTQ4bDAtMTEyLTI1NiAwIDAgMTEyYzAgMjYuNS0yMS41IDQ4LTQ4IDQ4cy00OC0yMS41LTQ4LTQ4bDAtMTYtMTYgMGMtMjYuNSAwLTQ4LTIxLjUtNDgtNDhsMC00OGMtMTcuNyAwLTMyLTE0LjMtMzItMzJzMTQuMy0zMiAzMi0zMmwwLTQ4YzAtMjYuNSAyMS41LTQ4IDQ4LTQ4bDE2IDAgMC0xNnoiXX0sSmNlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImJhYnktY2FycmlhZ2UiLGljb246WzUxMiw1MTIsWyJjYXJyaWFnZS1iYWJ5Il0sImY3N2QiLCJNNjQgMjA4bDAgODBjMCA1MyA0MyA5NiA5NiA5NmwxOTIgMGM1MyAwIDk2LTQzIDk2LTk2bDAtMTEyIDQwIDBjMTMuMyAwIDI0LTEwLjcgMjQtMjRzLTEwLjctMjQtMjQtMjRsLTY0IDBjLTEzLjMgMC0yNCAxMC43LTI0IDI0bDAgNTYtMzM2IDB6bS4yLTQ4bDIyMy44IDAgMC0xMjhjMC0xNy43LTE0LjMtMzItMzItMzJMMjMyIDBDMTQxLjkgMCA2OC40IDcwLjkgNjQuMiAxNjB6TTE2MCA0NjRhNDggNDggMCAxIDAgLTk2IDAgNDggNDggMCAxIDAgOTYgMHptMjg4IDBhNDggNDggMCAxIDAgLTk2IDAgNDggNDggMCAxIDAgOTYgMHoiXX0sUFN0PUpjZSxOU3Q9e3ByZWZpeDoiZmFzIixpY29uTmFtZToia2l3aS1iaXJkIixpY29uOls1NzYsNTEyLFtdLCJmNTM1IiwiTTI5MS4yIDM4OC40YzMxLjItMTguOCA2NC43LTM2LjQgMTAxLjEtMzYuNGw1NS43IDBjNC42IDAgOS4xLS4yIDEzLjYtLjdsODUuMyAxMjEuOWM0IDUuNyAxMS4zIDguMiAxNy45IDYuMVM1NzYgNDcxIDU3NiA0NjRsMC0yNDBjMC03MC43LTU3LjMtMTI4LTEyOC0xMjhsLTU1LjcgMEMzNTUuOSA5NiAzMjIuNCA3OC40IDI5MS4yIDU5LjYgMjYyLjMgNDIuMSAyMjguMyAzMiAxOTIgMzIgODYgMzIgMCAxMTggMCAyMjQgMCAyOTUuMSAzOC42IDM1Ny4xIDk2IDM5MC4zTDk2IDQ1NmMwIDEzLjMgMTAuNyAyNCAyNCAyNHMyNC0xMC43IDI0LTI0bDAtNDZjMTUuMyAzLjkgMzEuNCA2IDQ4IDYgNS40IDAgMTAuNy0uMiAxNi0uN2wwIDQwLjdjMCAxMy4zIDEwLjcgMjQgMjQgMjRzMjQtMTAuNyAyNC0yNGwwLTUwLjljMTIuNC00LjQgMjQuMi0xMCAzNS4yLTE2Ljd6TTQ0OCAyMDBhMjQgMjQgMCAxIDEgMCA0OCAyNCAyNCAwIDEgMSAwLTQ4eiJdfSxLY2U9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiY2FsZW5kYXIteG1hcmsiLGljb246WzQ0OCw1MTIsWyJjYWxlbmRhci10aW1lcyJdLCJmMjczIiwiTTEyOCAwYzE3LjcgMCAzMiAxNC4zIDMyIDMybDAgMzIgMTI4IDAgMC0zMmMwLTE3LjcgMTQuMy0zMiAzMi0zMnMzMiAxNC4zIDMyIDMybDAgMzIgMzIgMGMzNS4zIDAgNjQgMjguNyA2NCA2NGwwIDI4OGMwIDM1LjMtMjguNyA2NC02NCA2NEw2NCA0ODBjLTM1LjMgMC02NC0yOC43LTY0LTY0TDAgMTI4QzAgOTIuNyAyOC43IDY0IDY0IDY0bDMyIDAgMC0zMmMwLTE3LjcgMTQuMy0zMiAzMi0zMnpNMjkxLjkgMjIwLjFjLTkuNC05LjQtMjQuNi05LjQtMzMuOSAwbC0zMy45IDMzLjktMzMuOS0zMy45Yy05LjQtOS40LTI0LjYtOS40LTMzLjkgMHMtOS40IDI0LjYgMCAzMy45bDMzLjkgMzMuOS0zMy45IDMzLjljLTkuNCA5LjQtOS40IDI0LjYgMCAzMy45czI0LjYgOS40IDMzLjkgMGwzMy45LTMzLjkgMzMuOSAzMy45YzkuNCA5LjQgMjQuNiA5LjQgMzMuOSAwczkuNC0yNC42IDAtMzMuOWwtMzMuOS0zMy45IDMzLjktMzMuOWM5LjQtOS40IDkuNC0yNC42IDAtMzMuOXoiXX0sRlN0PUtjZSxlMGU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiY2lyY2xlLWRvd24iLGljb246WzUxMiw1MTIsWzYxNDY2LCJhcnJvdy1hbHQtY2lyY2xlLWRvd24iXSwiZjM1OCIsIk0yNTYgMGEyNTYgMjU2IDAgMSAwIDAgNTEyIDI1NiAyNTYgMCAxIDAgMC01MTJ6TTI0NC43IDM4Ny4zbC0xMDQtMTA0Yy00LjYtNC42LTUuOS0xMS41LTMuNS0xNy40czguMy05LjkgMTQuOC05LjlsNTYgMCAwLTk2YzAtMTcuNyAxNC4zLTMyIDMyLTMybDMyIDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJsMCA5NiA1NiAwYzYuNSAwIDEyLjMgMy45IDE0LjggOS45czEuMSAxMi45LTMuNSAxNy40bC0xMDQgMTA0Yy02LjIgNi4yLTE2LjQgNi4yLTIyLjYgMHoiXX0sT1N0PWUwZSxSU3Q9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZmlsZS1tZWRpY2FsIixpY29uOlszODQsNTEyLFtdLCJmNDc3IiwiTTAgNjRDMCAyOC43IDI4LjcgMCA2NCAwTDIxMy41IDBjMTcgMCAzMy4zIDYuNyA0NS4zIDE4LjdMMzY1LjMgMTI1LjNjMTIgMTIgMTguNyAyOC4zIDE4LjcgNDUuM0wzODQgNDQ4YzAgMzUuMy0yOC43IDY0LTY0IDY0TDY0IDUxMmMtMzUuMyAwLTY0LTI4LjctNjQtNjRMMCA2NHptMjA4LTUuNWwwIDkzLjVjMCAxMy4zIDEwLjcgMjQgMjQgMjRMMzI1LjUgMTc2IDIwOCA1OC41ek0xNjAgMjgwbDAgNDAtNDAgMGMtOC44IDAtMTYgNy4yLTE2IDE2bDAgMzJjMCA4LjggNy4yIDE2IDE2IDE2bDQwIDAgMCA0MGMwIDguOCA3LjIgMTYgMTYgMTZsMzIgMGM4LjggMCAxNi03LjIgMTYtMTZsMC00MCA0MCAwYzguOCAwIDE2LTcuMiAxNi0xNmwwLTMyYzAtOC44LTcuMi0xNi0xNi0xNmwtNDAgMCAwLTQwYzAtOC44LTcuMi0xNi0xNi0xNmwtMzIgMGMtOC44IDAtMTYgNy4yLTE2IDE2eiJdfSxEND17cHJlZml4OiJmYXMiLGljb25OYW1lOiJ4bWFyayIsaWNvbjpbMzg0LDUxMixbMTI4NDczLDEwMDA1LDEwMDA2LDEwMDYwLDIxNSwiY2xvc2UiLCJtdWx0aXBseSIsInJlbW92ZSIsInRpbWVzIl0sImYwMGQiLCJNNTUuMSA3My40Yy0xMi41LTEyLjUtMzIuOC0xMi41LTQ1LjMgMHMtMTIuNSAzMi44IDAgNDUuM0wxNDcuMiAyNTYgOS45IDM5My40Yy0xMi41IDEyLjUtMTIuNSAzMi44IDAgNDUuM3MzMi44IDEyLjUgNDUuMyAwTDE5Mi41IDMwMS4zIDMyOS45IDQzOC42YzEyLjUgMTIuNSAzMi44IDEyLjUgNDUuMyAwczEyLjUtMzIuOCAwLTQ1LjNMMjM3LjggMjU2IDM3NS4xIDExOC42YzEyLjUtMTIuNSAxMi41LTMyLjggMC00NS4zcy0zMi44LTEyLjUtNDUuMyAwTDE5Mi41IDIxMC43IDU1LjEgNzMuNHoiXX0sQlN0PUQ0LEhTdD1ENCxxU3Q9RDQsalN0PUQ0LHQwZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJzaGFwZXMiLGljb246WzUxMiw1MTIsWyJ0cmlhbmdsZS1jaXJjbGUtc3F1YXJlIl0sImY2MWYiLCJNMjU2IDBjMTEuMiAwIDIxLjcgNS45IDI3LjQgMTUuNWw5NiAxNjBjNS45IDkuOSA2LjEgMjIuMiAuNCAzMi4yUzM2My41IDIyNCAzNTIgMjI0bC0xOTIgMGMtMTEuNSAwLTIyLjItNi4yLTI3LjgtMTYuMnMtNS41LTIyLjMgLjQtMzIuMmw5Ni0xNjBDMjM0LjMgNS45IDI0NC44IDAgMjU2IDB6TTEyOCAyNzJhMTEyIDExMiAwIDEgMSAwIDIyNCAxMTIgMTEyIDAgMSAxIDAtMjI0em0yMDAgMTZsMTEyIDBjMjIuMSAwIDQwIDE3LjkgNDAgNDBsMCAxMTJjMCAyMi4xLTE3LjkgNDAtNDAgNDBsLTExMiAwYy0yMi4xIDAtNDAtMTcuOS00MC00MGwwLTExMmMwLTIyLjEgMTcuOS00MCA0MC00MHoiXX0sVlN0PXQwZSxVU3Q9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZGljZS1vbmUiLGljb246WzQ0OCw1MTIsWzk4NTZdLCJmNTI1IiwiTTY0IDMyQzI4LjcgMzIgMCA2MC43IDAgOTZMMCA0MTZjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMzIwIDBjMzUuMyAwIDY0LTI4LjcgNjQtNjRsMC0zMjBjMC0zNS4zLTI4LjctNjQtNjQtNjRMNjQgMzJ6TTIyNCAyMjRhMzIgMzIgMCAxIDEgMCA2NCAzMiAzMiAwIDEgMSAwLTY0eiJdfSxXU3Q9e3ByZWZpeDoiZmFzIixpY29uTmFtZToibG9jay1vcGVuIixpY29uOls1NzYsNTEyLFtdLCJmM2MxIiwiTTM4NCA5NmMwLTM1LjMgMjguNy02NCA2NC02NHM2NCAyOC43IDY0IDY0bDAgMzJjMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMmwwLTMyYzAtNzAuNy01Ny4zLTEyOC0xMjgtMTI4UzMyMCAyNS4zIDMyMCA5NmwwIDY0LTE2MCAwYy0zNS4zIDAtNjQgMjguNy02NCA2NGwwIDIyNGMwIDM1LjMgMjguNyA2NCA2NCA2NGwyNTYgMGMzNS4zIDAgNjQtMjguNyA2NC02NGwwLTIyNGMwLTM1LjMtMjguNy02NC02NC02NGwtMzIgMCAwLTY0eiJdfSxHU3Q9e3ByZWZpeDoiZmFzIixpY29uTmFtZToicGVwcGVyLWhvdCIsaWNvbjpbNTc2LDUxMixbMTI3Nzk4XSwiZjgxNiIsIk01NDUgNjVjOS40LTkuNCA5LjQtMjQuNiAwLTMzLjlzLTI0LjYtOS40LTMzLjkgMEw0NzguOSA2My4yQzQ1Mi4zIDQzLjYgNDE5LjUgMzIgMzg0IDMyIDM0OC45IDMyIDMxNi41IDQzLjMgMjkwLjEgNjIuNCAyNzQuMSA3NC4xIDI4NC4yIDk2IDMwNCA5NmwyNCAwYzEzLjMgMCAyNCAxMC43IDI0IDI0bDAgODBjMCAxMy4zIDEwLjcgMjQgMjQgMjRsODAgMGMxMy4zIDAgMjQgMTAuNyAyNCAyNGwwIDI0YzAgMTkuOCAyMS45IDI5LjkgMzMuNiAxMy45IDE5LjEtMjYuNCAzMC40LTU4LjggMzAuNC05My45IDAtMzUuNS0xMS42LTY4LjMtMzEuMi05NC45TDU0NSA2NXpNMjcwIDEzNS41bC0xNTkuNiAyMjhDMTAxLjMgMzc2LjQgODYuNyAzODQgNzEgMzg0bC03IDBjLTI2LjUgMC00OCAyMS41LTQ4IDQ4czIxLjUgNDggNDggNDhsMjcuMSAwYzY1LjcgMCAxMjkuNy0yMC4yIDE4My41LTU3LjhMNDQwLjUgMzA2LjFDNDM1IDI5NS45IDQzMiAyODQuMiA0MzIgMjcybC01NiAwYy0zOS44IDAtNzItMzIuMi03Mi03MmwwLTU2Yy0xMi4yIDAtMjMuOS0zLTM0LTguNXoiXX0scjBlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImRyb3BsZXQtc2xhc2giLGljb246WzU3Niw1MTIsWyJ0aW50LXNsYXNoIl0sImY1YzciLCJNNDEtMjQuOWMtOS40LTkuNC0yNC42LTkuNC0zMy45IDBTLTIuMy0uMyA3IDkuMWw1MjggNTI4YzkuNCA5LjQgMjQuNiA5LjQgMzMuOSAwczkuNC0yNC42IDAtMzMuOUw0NjMuNiAzOTcuOGMxMC41LTIzLjggMTYuNC01MC4xIDE2LjQtNzcuOCAwLTkxLjItMTMwLjItMjc0LjEtMTY2LjYtMzIzLjUtNS45LTgtMTUuMi0xMi41LTI1LjItMTIuNWwtLjQgMGMtMTAgMC0xOS4zIDQuNS0yNS4yIDEyLjUtMTUuNiAyMS4yLTQ4LjUgNjYuOS04MC45IDExOS40TDQxLTI0Ljl6bTkyIDIyNy43Yy0yMS42IDQzLjgtMzcgODUuOS0zNyAxMTcuMiAwIDEwNiA4NiAxOTIgMTkyIDE5MiA0My40IDAgODMuNC0xNC40IDExNS41LTM4LjZMMTMzIDIwMi44eiJdfSxZU3Q9cjBlLGkwZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJkcm9wbGV0IixpY29uOlszODQsNTEyLFsxMjgxNjcsInRpbnQiXSwiZjA0MyIsIk0xOTIgNTEyQzg2IDUxMiAwIDQyNiAwIDMyMCAwIDIyOC44IDEzMC4yIDQ1LjkgMTY2LjYtMy41IDE3Mi41LTExLjUgMTgxLjgtMTYgMTkxLjgtMTZsLjQgMGMxMCAwIDE5LjMgNC41IDI1LjIgMTIuNSAzNi40IDQ5LjQgMTY2LjYgMjMyLjMgMTY2LjYgMzIzLjUgMCAxMDYtODYgMTkyLTE5MiAxOTJ6TTExMiAzMTJjMC0xMy4zLTEwLjctMjQtMjQtMjRzLTI0IDEwLjctMjQgMjRjMCA3NS4xIDYwLjkgMTM2IDEzNiAxMzYgMTMuMyAwIDI0LTEwLjcgMjQtMjRzLTEwLjctMjQtMjQtMjRjLTQ4LjYgMC04OC0zOS40LTg4LTg4eiJdfSxaU3Q9aTBlLE1EPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImZpbGUtbGluZXMiLGljb246WzM4NCw1MTIsWzEyODQ0MSwxMjg0NjIsNjE2ODYsImZpbGUtYWx0IiwiZmlsZS10ZXh0Il0sImYxNWMiLCJNMCA2NEMwIDI4LjcgMjguNyAwIDY0IDBMMjEzLjUgMGMxNyAwIDMzLjMgNi43IDQ1LjMgMTguN0wzNjUuMyAxMjUuM2MxMiAxMiAxOC43IDI4LjMgMTguNyA0NS4zTDM4NCA0NDhjMCAzNS4zLTI4LjcgNjQtNjQgNjRMNjQgNTEyYy0zNS4zIDAtNjQtMjguNy02NC02NEwwIDY0em0yMDgtNS41bDAgOTMuNWMwIDEzLjMgMTAuNyAyNCAyNCAyNEwzMjUuNSAxNzYgMjA4IDU4LjV6TTEyMCAyNTZjLTEzLjMgMC0yNCAxMC43LTI0IDI0czEwLjcgMjQgMjQgMjRsMTQ0IDBjMTMuMyAwIDI0LTEwLjcgMjQtMjRzLTEwLjctMjQtMjQtMjRsLTE0NCAwem0wIDk2Yy0xMy4zIDAtMjQgMTAuNy0yNCAyNHMxMC43IDI0IDI0IDI0bDE0NCAwYzEzLjMgMCAyNC0xMC43IDI0LTI0cy0xMC43LTI0LTI0LTI0bC0xNDQgMHoiXX0sWFN0PU1ELFFTdD1NRCxKU3Q9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiY29tbWVudHMtZG9sbGFyIixpY29uOls1NzYsNTEyLFtdLCJmNjUzIiwiTTE5MiAzMjBjMTA2IDAgMTkyLTc4LjggMTkyLTE3NlMyOTgtMzIgMTkyLTMyIDAgNDYuOCAwIDE0NGMwIDM5LjYgMTQuMyA3Ni4yIDM4LjQgMTA1LjZMMi44IDMxNi44Qy0yLjEgMzI2LjEtLjQgMzM3LjUgNyAzNDVzMTguOSA5LjIgMjguMiA0LjJMMTE2LjggMzA2YzIzLjEgOSA0OC41IDE0IDc1LjIgMTR6bTMuMiA0OGMxNi40IDgxLjkgOTQuNyAxNDQgMTg4LjggMTQ0IDI2LjcgMCA1Mi4xLTUgNzUuMi0xNGw4MS42IDQzLjJjOS4zIDQuOSAyMC43IDMuMiAyOC4yLTQuMnM5LjItMTguOSA0LjItMjguMmwtMzUuNi02Ny4yYzI0LjEtMjkuNCAzOC40LTY2IDM4LjQtMTA1LjYgMC04Mi40LTYxLjctMTUxLjUtMTQ1LTE3MC43LTExLjUgMTE1LjgtMTE1LjggMjAxLjItMjM1LjggMjAyLjd6TTE5NiAzMmMxMSAwIDIwIDkgMjAgMjBsMCA0IDggMGMxMSAwIDIwIDkgMjAgMjBzLTkgMjAtMjAgMjBsLTQ3LjUgMGMtNi45IDAtMTIuNSA1LjYtMTIuNSAxMi41IDAgNi4xIDQuNCAxMS4zIDEwLjQgMTIuM2w0MS43IDdjMjUuMyA0LjIgNDMuOSAyNi4xIDQzLjkgNTEuOCAwIDI2LjEtMTkgNDcuNy00NCA1MS44bDAgNC43YzAgMTEtOSAyMC0yMCAyMHMtMjAtOS0yMC0yMGwwLTQtMjQgMGMtMTEgMC0yMC05LTIwLTIwczktMjAgMjAtMjBsNTUuNSAwYzYuOSAwIDEyLjUtNS42IDEyLjUtMTIuNSAwLTYuMS00LjQtMTEuMy0xMC40LTEyLjNsLTQxLjctN2MtMjUuMy00LjItNDMuOS0yNi4xLTQzLjktNTEuOCAwLTI4LjggMjMuMi01Mi4yIDUyLTUyLjVsMC00YzAtMTEgOS0yMCAyMC0yMHoiXX0sYTBlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6Im1hZ25pZnlpbmctZ2xhc3MtbG9jYXRpb24iLGljb246WzUxMiw1MTIsWyJzZWFyY2gtbG9jYXRpb24iXSwiZjY4OSIsIk00MTYgMjA4YzAgNDUuOS0xNC45IDg4LjMtNDAgMTIyLjdMNTAyLjYgNDU3LjRjMTIuNSAxMi41IDEyLjUgMzIuOCAwIDQ1LjNzLTMyLjggMTIuNS00NS4zIDBMMzMwLjcgMzc2QzI5Ni4zIDQwMS4xIDI1My45IDQxNiAyMDggNDE2IDkzLjEgNDE2IDAgMzIyLjkgMCAyMDhTOTMuMSAwIDIwOCAwIDQxNiA5My4xIDQxNiAyMDh6TTI4OCAxNzZjMC00NC4yLTM1LjgtODAtODAtODBzLTgwIDM1LjgtODAgODBjMCA0OC44IDQ2LjUgMTExLjYgNjguNiAxMzguNiA2IDcuMyAxNi44IDcuMyAyMi43IDAgMjIuMS0yNyA2OC42LTg5LjggNjguNi0xMzguNnptLTExMiAwYTMyIDMyIDAgMSAxIDY0IDAgMzIgMzIgMCAxIDEgLTY0IDB6Il19LEtTdD1hMGUsbEU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZmlsZS1pbnZvaWNlIixpY29uOlszODQsNTEyLFtdLCJmNTcwIiwiTTY0IDBDMjguNyAwIDAgMjguNyAwIDY0TDAgNDQ4YzAgMzUuMyAyOC43IDY0IDY0IDY0bDI1NiAwYzM1LjMgMCA2NC0yOC43IDY0LTY0bDAtMjc3LjVjMC0xNy02LjctMzMuMy0xOC43LTQ1LjNMMjU4LjcgMTguN0MyNDYuNyA2LjcgMjMwLjUgMCAyMTMuNSAwTDY0IDB6TTMyNS41IDE3NkwyMzIgMTc2Yy0xMy4zIDAtMjQtMTAuNy0yNC0yNEwyMDggNTguNSAzMjUuNSAxNzZ6TTY0IDM4NGwwLTY0YzAtMTcuNyAxNC4zLTMyIDMyLTMybDE5MiAwYzE3LjcgMCAzMiAxNC4zIDMyIDMybDAgNjRjMCAxNy43LTE0LjMgMzItMzIgMzJMOTYgNDE2Yy0xNy43IDAtMzItMTQuMy0zMi0zMnpNODggNjRsNDggMGMxMy4zIDAgMjQgMTAuNyAyNCAyNHMtMTAuNyAyNC0yNCAyNGwtNDggMGMtMTMuMyAwLTI0LTEwLjctMjQtMjRTNzQuNyA2NCA4OCA2NHptMCA5Nmw0OCAwYzEzLjMgMCAyNCAxMC43IDI0IDI0cy0xMC43IDI0LTI0IDI0bC00OCAwYy0xMy4zIDAtMjQtMTAuNy0yNC0yNHMxMC43LTI0IDI0LTI0eiJdfSxlenQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToicGVudGFnb24iLGljb246WzU3Niw1MTIsW10sImU3OTAiLCJNMzE2LjQtMy4xYy0xNi44LTEyLjItMzkuNi0xMi4yLTU2LjQgMEwzNS4zIDE2MC4yYy0xNi44IDEyLjItMjMuOSAzMy45LTE3LjQgNTMuN2w4NS44IDI2NC4xYzYuNCAxOS44IDI0LjkgMzMuMiA0NS43IDMzLjJsMjc3LjcgMGMyMC44IDAgMzkuMi0xMy40IDQ1LjctMzMuMmw4NS44LTI2NC4xYzYuNC0xOS44LS42LTQxLjQtMTcuNC01My43TDMxNi40LTMuMXoiXX0sdHp0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InJlcHVibGljYW4iLGljb246WzY0MCw1MTIsW10sImY3NWUiLCJNMCAxOTJDMCAxMDMuNiA3MS42IDMyIDE2MCAzMmwyMjQgMGM4OC40IDAgMTYwIDcxLjYgMTYwIDE2MGwwIDY0LTU0NCAwIDAtNjR6bTE1Mi0zMmEyNCAyNCAwIDEgMCAtNDggMCAyNCAyNCAwIDEgMCA0OCAwem0yMzIgMjRhMjQgMjQgMCAxIDAgMC00OCAyNCAyNCAwIDEgMCAwIDQ4ek0yODAgMTYwYTI0IDI0IDAgMSAwIC00OCAwIDI0IDI0IDAgMSAwIDQ4IDB6TTEyOCAyODhsNDE2IDAgMCAxMTJjMCA4LjggNy4yIDE2IDE2IDE2czE2LTcuMiAxNi0xNmwwLTQ4YzAtMTcuNyAxNC4zLTMyIDMyLTMyczMyIDE0LjMgMzIgMzJsMCA0OGMwIDQ0LjItMzUuOCA4MC04MCA4MHMtODAtMzUuOC04MC04MGwwLTQ4LTMyIDAgMCA5NmMwIDE3LjctMTQuMyAzMi0zMiAzMmwtNjQgMGMtMTcuNyAwLTMyLTE0LjMtMzItMzJsMC02NC0xOTIgMCAwIDY0YzAgMTcuNy0xNC4zIDMyLTMyIDMybC02NCAwYy0xNy43IDAtMzItMTQuMy0zMi0zMmwwLTE2MCAxMjggMHoiXX0sbjBlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InNob3AiLGljb246WzU3Niw1MTIsWyJzdG9yZS1hbHQiXSwiZjU0ZiIsIk0yMS41IDE4MS4xTDc4LjMgNjcuNEM4OS4yIDQ1LjcgMTExLjMgMzIgMTM1LjYgMzJsMzA0LjkgMGMyNC4yIDAgNDYuNCAxMy43IDU3LjIgMzUuNGw1Ni44IDExMy43YzMuNiA3LjIgNS41IDE1LjEgNS41IDIzLjIgMCAyNy4zLTIxLjIgNDkuNy00OCA1MS42TDUxMiA0NDhjMCAxNy43LTE0LjMgMzItMzIgMzJzLTMyLTE0LjMtMzItMzJsMC0xOTItOTYgMCAwIDE3NmMwIDI2LjUtMjEuNSA0OC00OCA0OGwtMTkyIDBjLTI2LjUgMC00OC0yMS41LTQ4LTQ4bDAtMTc2LjFjLTI2LjgtMS45LTQ4LTI0LjMtNDgtNTEuNiAwLTggMS45LTE2IDUuNS0yMy4yek0xMjggMjU2bDAgMTEyYzAgOC44IDcuMiAxNiAxNiAxNmwxMjggMGM4LjggMCAxNi03LjIgMTYtMTZsMC0xMTItMTYwIDB6Il19LHJ6dD1uMGUsa0Q9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZmlsbSIsaWNvbjpbNDQ4LDUxMixbMTI3OTAyLDYyMzY4LCJmaWxtLWFsdCIsImZpbG0tc2ltcGxlIl0sImYwMDgiLCJNMCA5NkMwIDYwLjcgMjguNyAzMiA2NCAzMmwzMjAgMGMzNS4zIDAgNjQgMjguNyA2NCA2NGwwIDMyMGMwIDM1LjMtMjguNyA2NC02NCA2NEw2NCA0ODBjLTM1LjMgMC02NC0yOC43LTY0LTY0TDAgOTZ6TTQ4IDM2OGwwIDMyYzAgOC44IDcuMiAxNiAxNiAxNmwzMiAwYzguOCAwIDE2LTcuMiAxNi0xNmwwLTMyYzAtOC44LTcuMi0xNi0xNi0xNmwtMzIgMGMtOC44IDAtMTYgNy4yLTE2IDE2em0zMDQtMTZjLTguOCAwLTE2IDcuMi0xNiAxNmwwIDMyYzAgOC44IDcuMiAxNiAxNiAxNmwzMiAwYzguOCAwIDE2LTcuMiAxNi0xNmwwLTMyYzAtOC44LTcuMi0xNi0xNi0xNmwtMzIgMHpNNDggMjQwbDAgMzJjMCA4LjggNy4yIDE2IDE2IDE2bDMyIDBjOC44IDAgMTYtNy4yIDE2LTE2bDAtMzJjMC04LjgtNy4yLTE2LTE2LTE2bC0zMiAwYy04LjggMC0xNiA3LjItMTYgMTZ6bTMwNC0xNmMtOC44IDAtMTYgNy4yLTE2IDE2bDAgMzJjMCA4LjggNy4yIDE2IDE2IDE2bDMyIDBjOC44IDAgMTYtNy4yIDE2LTE2bDAtMzJjMC04LjgtNy4yLTE2LTE2LTE2bC0zMiAwek00OCAxMTJsMCAzMmMwIDguOCA3LjIgMTYgMTYgMTZsMzIgMGM4LjggMCAxNi03LjIgMTYtMTZsMC0zMmMwLTguOC03LjItMTYtMTYtMTZMNjQgOTZjLTguOCAwLTE2IDcuMi0xNiAxNnpNMzUyIDk2Yy04LjggMC0xNiA3LjItMTYgMTZsMCAzMmMwIDguOCA3LjIgMTYgMTYgMTZsMzIgMGM4LjggMCAxNi03LjIgMTYtMTZsMC0zMmMwLTguOC03LjItMTYtMTYtMTZsLTMyIDB6Il19LGl6dD1rRCxhenQ9a0Qsbnp0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImJ1aWxkaW5nLWNpcmNsZS14bWFyayIsaWNvbjpbNTc2LDUxMixbXSwiZTRkNCIsIk05NiAwQzYwLjcgMCAzMiAyOC43IDMyIDY0bDAgMzg0YzAgMzUuMyAyOC43IDY0IDY0IDY0bDE4MCAwYy0xMC41LTE0LjYtMTktMzAuNy0yNS4xLTQ4bC03NC45IDAgMC04MGMwLTE3LjcgMTQuMy0zMiAzMi0zMmwzMiAwYzIgMCA0IC4yIDUuOSAuNSA2LTIzLjYgMTYuMy00NS40IDMwLjEtNjQuNWwtNCAwYy04LjggMC0xNi03LjItMTYtMTZsMC0zMmMwLTguOCA3LjItMTYgMTYtMTZsMzIgMGM4LjggMCAxNiA3LjIgMTYgMTZsMCA0YzI3LjUtMTkuOCA2MC4zLTMyLjQgOTYtMzUuNEw0MTYgNjRjMC0zNS4zLTI4LjctNjQtNjQtNjRMOTYgMHptMzIgMTEyYzAtOC44IDcuMi0xNiAxNi0xNmwzMiAwYzguOCAwIDE2IDcuMiAxNiAxNmwwIDMyYzAgOC44LTcuMiAxNi0xNiAxNmwtMzIgMGMtOC44IDAtMTYtNy4yLTE2LTE2bDAtMzJ6TTI3MiA5NmwzMiAwYzguOCAwIDE2IDcuMiAxNiAxNmwwIDMyYzAgOC44LTcuMiAxNi0xNiAxNmwtMzIgMGMtOC44IDAtMTYtNy4yLTE2LTE2bDAtMzJjMC04LjggNy4yLTE2IDE2LTE2ek0xMjggMjQwYzAtOC44IDcuMi0xNiAxNi0xNmwzMiAwYzguOCAwIDE2IDcuMiAxNiAxNmwwIDMyYzAgOC44LTcuMiAxNi0xNiAxNmwtMzIgMGMtOC44IDAtMTYtNy4yLTE2LTE2bDAtMzJ6TTQzMiA1NDRhMTQ0IDE0NCAwIDEgMCAwLTI4OCAxNDQgMTQ0IDAgMSAwIDAgMjg4em0yMi42LTE0NGwzNi43IDM2LjdjNi4yIDYuMiA2LjIgMTYuNCAwIDIyLjZzLTE2LjQgNi4yLTIyLjYgMGwtMzYuNy0zNi43LTM2LjcgMzYuN2MtNi4yIDYuMi0xNi40IDYuMi0yMi42IDBzLTYuMi0xNi40IDAtMjIuNmwzNi43LTM2LjctMzYuNy0zNi43Yy02LjItNi4yLTYuMi0xNi40IDAtMjIuNnMxNi40LTYuMiAyMi42IDBsMzYuNyAzNi43IDM2LjctMzYuN2M2LjItNi4yIDE2LjQtNi4yIDIyLjYgMHM2LjIgMTYuNCAwIDIyLjZMNDU0LjYgNDAweiJdfSxvenQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiY29tbWVudHMiLGljb246WzU3Niw1MTIsWzEyODQ5MCw2MTY3MF0sImYwODYiLCJNMzg0IDE0NGMwIDk3LjItODYgMTc2LTE5MiAxNzYtMjYuNyAwLTUyLjEtNS03NS4yLTE0TDM1LjIgMzQ5LjJjLTkuMyA0LjktMjAuNyAzLjItMjguMi00LjJzLTkuMi0xOC45LTQuMi0yOC4ybDM1LjYtNjcuMkMxNC4zIDIyMC4yIDAgMTgzLjYgMCAxNDQgMCA0Ni44IDg2LTMyIDE5Mi0zMlMzODQgNDYuOCAzODQgMTQ0em0wIDM2OGMtOTQuMSAwLTE3Mi40LTYyLjEtMTg4LjgtMTQ0IDEyMC0xLjUgMjI0LjMtODYuOSAyMzUuOC0yMDIuNyA4My4zIDE5LjIgMTQ1IDg4LjMgMTQ1IDE3MC43IDAgMzkuNi0xNC4zIDc2LjItMzguNCAxMDUuNmwzNS42IDY3LjJjNC45IDkuMyAzLjIgMjAuNy00LjIgMjguMnMtMTguOSA5LjItMjguMiA0LjJMNDU5LjIgNDk4Yy0yMy4xIDktNDguNSAxNC03NS4yIDE0eiJdfSxzenQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToidGFncyIsaWNvbjpbNTc2LDUxMixbXSwiZjAyYyIsIk00MDEuMiAzOS4xTDU0OS40IDE4OS40YzI3LjcgMjguMSAyNy43IDczLjEgMCAxMDEuMkwzOTMgNDQ4LjljLTkuMyA5LjQtMjQuNSA5LjUtMzMuOSAuMnMtOS41LTI0LjUtLjItMzMuOUw1MTUuMyAyNTYuOGM5LjItOS4zIDkuMi0yNC40IDAtMzMuN0wzNjcgNzIuOWMtOS4zLTkuNC05LjItMjQuNiAuMi0zMy45czI0LjYtOS4yIDMzLjkgLjJ6TTMyLjEgMjI5LjVMMzIuMSA5NmMwLTM1LjMgMjguNy02NCA2NC02NGwxMzMuNSAwYzE3IDAgMzMuMyA2LjcgNDUuMyAxOC43bDE0NCAxNDRjMjUgMjUgMjUgNjUuNSAwIDkwLjVMMjg1LjQgNDE4LjdjLTI1IDI1LTY1LjUgMjUtOTAuNSAwbC0xNDQtMTQ0Yy0xMi0xMi0xOC43LTI4LjMtMTguNy00NS4zem0xNDQtODUuNWEzMiAzMiAwIDEgMCAtNjQgMCAzMiAzMiAwIDEgMCA2NCAweiJdfSxsenQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZ3VuIixpY29uOls1NzYsNTEyLFtdLCJlMTliIiwiTTUyOCA1NmMwLTEzLjMtMTAuNy0yNC0yNC0yNHMtMjQgMTAuNy0yNCAyNGwwIDgtNDQ4IDBDMTQuMyA2NCAwIDc4LjMgMCA5NkwwIDIwOGMwIDE3LjcgMTQuMyAzMiAzMiAzMmwxMCAwYzIwLjggMCAzNi4xIDE5LjYgMzEgMzkuOEwzMyA0NDAuMmMtMi40IDkuNi0uMiAxOS43IDUuOCAyNy41UzU0LjEgNDgwIDY0IDQ4MGw5NiAwYzE0LjcgMCAyNy41LTEwIDMxLTI0LjJMMjE3IDM1MiAzMjEuNCAzNTJjMjMuNyAwIDQ0LjgtMTQuOSA1Mi43LTM3LjJsMjYuNy03NC44IDMxLjEgMGM4LjUgMCAxNi42LTMuNCAyMi42LTkuNGwyMi42LTIyLjYgNjYuNyAwYzE3LjcgMCAzMi0xNC4zIDMyLTMybDAtODBjMC0xNy43LTE0LjMtMzItMzItMzJsLTE2IDAgMC04ek0zMjEuNCAzMDRsLTkyLjUgMCAxNi02NCAxMDUgMC0yMSA1OC43Yy0xLjEgMy4yLTQuMiA1LjMtNy41IDUuM3pNODAgMTI4bDM4NCAwYzguOCAwIDE2IDcuMiAxNiAxNnMtNy4yIDE2LTE2IDE2TDgwIDE2MGMtOC44IDAtMTYtNy4yLTE2LTE2czcuMi0xNiAxNi0xNnoiXX0sSmc9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiY2lyY2xlLWNoZWNrIixpY29uOls1MTIsNTEyLFs2MTUzMywiY2hlY2stY2lyY2xlIl0sImYwNTgiLCJNMjU2IDUxMmEyNTYgMjU2IDAgMSAxIDAtNTEyIDI1NiAyNTYgMCAxIDEgMCA1MTJ6TTM3NCAxNDUuN2MtMTAuNy03LjgtMjUuNy01LjQtMzMuNSA1LjNMMjIxLjEgMzE1LjIgMTY5IDI2My4xYy05LjQtOS40LTI0LjYtOS40LTMzLjkgMHMtOS40IDI0LjYgMCAzMy45bDcyIDcyYzUgNSAxMS44IDcuNSAxOC44IDdzMTMuNC00LjEgMTcuNS05LjhMMzc5LjMgMTc5LjJjNy44LTEwLjcgNS40LTI1LjctNS4zLTMzLjV6Il19LGN6dD1KZyxkenQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToic2NvcnBpbyIsaWNvbjpbNjQwLDUxMixbXSwiZTg0ZSIsIk0zNjggMzJjNjEuOSAwIDExMiA1MC4xIDExMiAxMTJsMCAyODkuN2MwIDcuOSA2LjQgMTQuMyAxNC4zIDE0LjMgMy45IDAgNy42LTEuNiAxMC4yLTQuM2w0MC4xLTQxLjEtOS43LTkuN2MtNi45LTYuOS04LjktMTcuMi01LjItMjYuMlM1NDIuMyAzNTIgNTUyIDM1Mmw2NCAwIDIuNSAuMWMxMi4xIDEuMiAyMS41IDExLjUgMjEuNSAyMy45bDAgNjQtLjMgMy42Yy0xLjIgOC4yLTYuNyAxNS4zLTE0LjUgMTguNi05IDMuNy0xOS4zIDEuNi0yNi4yLTUuMmwtOS4xLTkuMS0zOS42IDQwLjZjLTE0LjcgMTUuMS0zNC45IDIzLjYtNTYgMjMuNi00My4zIDAtNzguMy0zNS4xLTc4LjMtNzguM0w0MTYgMTQ0YzAtMjYuNS0yMS41LTQ4LTQ4LTQ4cy00OCAyMS41LTQ4IDQ4bDAgMzA0YzAgMTcuNy0xNC4zIDMyLTMyIDMycy0zMi0xNC4zLTMyLTMybDAtMzA0YzAtMjYuNS0yMS41LTQ4LTQ4LTQ4cy00OCAyMS41LTQ4IDQ4bDAgMzA0YzAgMTcuNy0xNC4zIDMyLTMyIDMycy0zMi0xNC4zLTMyLTMybDAtMzIwYzAtMTYuNi0xMi42LTMwLjItMjguNy0zMS44bC02LjYtLjNDNDQuNiA5NC4yIDMyIDgwLjYgMzIgNjQgMzIgNDYuMyA0Ni4zIDMyIDY0IDMyIDkxIDMyIDExNS4zIDQzLjEgMTMyLjcgNjEgMTUyLjYgNDMgMTc5IDMyIDIwOCAzMiAyMzkuMyAzMiAyNjcuNyA0NC45IDI4OCA2NS43IDMwOC4zIDQ0LjkgMzM2LjYgMzIgMzY4IDMyeiJdfSxvMGU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiaWQtY2FyZC1jbGlwIixpY29uOls1NzYsNTEyLFsiaWQtY2FyZC1hbHQiXSwiZjQ3ZiIsIk0yNTYtMzJsNjQgMGMxNy43IDAgMzIgMTQuMyAzMiAzMmwwIDY0LTEyOCAwIDAtNjRjMC0xNy43IDE0LjMtMzIgMzItMzJ6TTY0IDMybDExMiAwIDAgMzJjMCAyNi41IDIxLjUgNDggNDggNDhsMTI4IDBjMjYuNSAwIDQ4LTIxLjUgNDgtNDhsMC0zMiAxMTIgMGMzNS4zIDAgNjQgMjguNyA2NCA2NGwwIDMyMGMwIDM1LjMtMjguNyA2NC02NCA2NEw2NCA0ODBjLTM1LjMgMC02NC0yOC43LTY0LTY0TDAgOTZDMCA2MC43IDI4LjcgMzIgNjQgMzJ6TTE3NiA0MDBjMCA4LjggNy4yIDE2IDE2IDE2bDE5MiAwYzguOCAwIDE2LTcuMiAxNi0xNiAwLTQ0LjItMzUuOC04MC04MC04MGwtNjQgMGMtNDQuMiAwLTgwIDM1LjgtODAgODB6TTI4OCAyODBhNTYgNTYgMCAxIDAgMC0xMTIgNTYgNTYgMCAxIDAgMCAxMTJ6Il19LHV6dD1vMGUscHp0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6Im1vb24iLGljb246WzUxMiw1MTIsWzEyNzc2OSw5MjE0XSwiZjE4NiIsIk0yNTYgMEMxMTQuNiAwIDAgMTE0LjYgMCAyNTZTMTE0LjYgNTEyIDI1NiA1MTJjNjguOCAwIDEzMS4zLTI3LjIgMTc3LjMtNzEuNCA3LjMtNyA5LjQtMTcuOSA1LjMtMjcuMXMtMTMuNy0xNC45LTIzLjgtMTQuMWMtNC45IC40LTkuOCAuNi0xNC44IC42LTEwMS42IDAtMTg0LTgyLjQtMTg0LTE4NCAwLTcyLjEgNDEuNS0xMzQuNiAxMDIuMS0xNjQuOCA5LjEtNC41IDE0LjMtMTQuMyAxMy4xLTI0LjRTMzIyLjYgOC41IDMxMi43IDYuM0MyOTQuNCAyLjIgMjc1LjQgMCAyNTYgMHoiXX0saHp0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6Im9pbC13ZWxsIixpY29uOls1NzYsNTEyLFtdLCJlNTMyIiwiTTUyOC4zIDYxLjNjLTExLjQtNDIuNy01NS4zLTY4LTk4LTU2LjZMNDE0LjkgOC44QzM5Ny44IDEzLjQgMzg3LjcgMzEgMzkyLjMgNDhsMjQuNSA5MS40LTEwOC4yIDI4LjEtNi4zLTE4LjFDMjk3LjcgMTM2LjYgMjg1LjYgMTI4IDI3MiAxMjhzLTI1LjcgOC42LTMwLjIgMjEuNGwtMTMuNiAzOS0xMzIuMiAzNC4zIDAtMzguNmMwLTEzLjMtMTAuNy0yNC0yNC0yNHMtMjQgMTAuNy0yNCAyNGwwIDI2NC0xNiAwYy0xNy43IDAtMzIgMTQuMy0zMiAzMnMxNC4zIDMyIDMyIDMybDUxMiAwYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMybC0xMzcuMyAwLTYxLjQtMTc1LjQtNjIuMiAxNi4xIDIyLjEgNjMuMi02Ni42IDAgMTkuOS01Ni45LTc0LjYgMTkuMy00Ni43IDEzMy41LTQxLjMgMCAwLTE1OS4yIDMzNy40LTg3LjUgMjUuMiA5NGM0LjYgMTcuMSAyMi4xIDI3LjIgMzkuMiAyMi42bDE1LjUtNC4xYzQyLjctMTEuNCA2OC01NS4zIDU2LjYtOThMNTI4LjMgNjEuM3pNMjA1LjEgNDQ4bDE2LjgtNDggMTAwLjIgMCAxNi44IDQ4LTEzMy44IDB6Il19LHMwZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJ0YWNob2dyYXBoLWRpZ2l0YWwiLGljb246WzU3Niw1MTIsWyJkaWdpdGFsLXRhY2hvZ3JhcGgiXSwiZjU2NiIsIk0wIDEyOEMwIDkyLjcgMjguNyA2NCA2NCA2NGw0NDggMGMzNS4zIDAgNjQgMjguNyA2NCA2NGwwIDI1NmMwIDM1LjMtMjguNyA2NC02NCA2NEw2NCA0NDhjLTM1LjMgMC02NC0yOC43LTY0LTY0TDAgMTI4em02NCAzMmwwIDMyYzAgMTcuNyAxNC4zIDMyIDMyIDMybDE2MCAwYzE3LjcgMCAzMi0xNC4zIDMyLTMybDAtMzJjMC0xNy43LTE0LjMtMzItMzItMzJMOTYgMTI4Yy0xNy43IDAtMzIgMTQuMy0zMiAzMnpNODggMzUyYy0xMy4zIDAtMjQgMTAuNy0yNCAyNHMxMC43IDI0IDI0IDI0bDEzNiAwYzEzLjMgMCAyNC0xMC43IDI0LTI0cy0xMC43LTI0LTI0LTI0TDg4IDM1MnptMjU2IDBjLTEzLjMgMC0yNCAxMC43LTI0IDI0czEwLjcgMjQgMjQgMjRsMTQ0IDBjMTMuMyAwIDI0LTEwLjcgMjQtMjRzLTEwLjctMjQtMjQtMjRsLTE0NCAwek00OTYgMTkyYTY0IDY0IDAgMSAwIC0xMjggMCA2NCA2NCAwIDEgMCAxMjggMHpNODggMzEyYTI0IDI0IDAgMSAwIDAtNDggMjQgMjQgMCAxIDAgMCA0OHptMTA0LTI0YTI0IDI0IDAgMSAwIC00OCAwIDI0IDI0IDAgMSAwIDQ4IDB6bTU2IDI0YTI0IDI0IDAgMSAwIDAtNDggMjQgMjQgMCAxIDAgMCA0OHoiXX0sZnp0PXMwZSxsMGU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToidGFibGV0IixpY29uOls0NDgsNTEyLFsidGFibGV0LWFuZHJvaWQiXSwiZjNmYiIsIk02NCAwQzI4LjcgMCAwIDI4LjcgMCA2NEwwIDQ0OGMwIDM1LjMgMjguNyA2NCA2NCA2NGwzMjAgMGMzNS4zIDAgNjQtMjguNyA2NC02NGwwLTM4NGMwLTM1LjMtMjguNy02NC02NC02NEw2NCAwek0xODQgNDAwbDgwIDBjMTMuMyAwIDI0IDEwLjcgMjQgMjRzLTEwLjcgMjQtMjQgMjRsLTgwIDBjLTEzLjMgMC0yNC0xMC43LTI0LTI0czEwLjctMjQgMjQtMjR6Il19LG16dD1sMGUsT2c9e3ByZWZpeDoiZmFzIixpY29uTmFtZToicnVibGUtc2lnbiIsaWNvbjpbNDQ4LDUxMixbODM4MSwicm91YmxlIiwicnViIiwicnVibGUiXSwiZjE1OCIsIk0xMTIgMzJDOTQuMyAzMiA4MCA0Ni4zIDgwIDY0bDAgMjA4LTQwIDBjLTEzLjMgMC0yNCAxMC43LTI0IDI0czEwLjcgMjQgMjQgMjRsNDAgMCAwIDQ4LTQwIDBjLTEzLjMgMC0yNCAxMC43LTI0IDI0czEwLjcgMjQgMjQgMjRsNDAgMCAwIDMyYzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJsMC0zMiAxNTIgMGMxMy4zIDAgMjQtMTAuNyAyNC0yNHMtMTAuNy0yNC0yNC0yNGwtMTUyIDAgMC00OCAxMTIgMGM3OS41IDAgMTQ0LTY0LjUgMTQ0LTE0NFMzMzUuNSAzMiAyNTYgMzJMMTEyIDMyek0yNTYgMjU2bC0xMTIgMCAwLTE2MCAxMTIgMGM0NC4yIDAgODAgMzUuOCA4MCA4MHMtMzUuOCA4MC04MCA4MHoiXX0sZ3p0PU9nLGJ6dD1PZyx2enQ9T2cseHp0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImNsb3NlZC1jYXB0aW9uaW5nIixpY29uOls1MTIsNTEyLFtdLCJmMjBhIiwiTTAgMTI4QzAgOTIuNyAyOC43IDY0IDY0IDY0bDM4NCAwYzM1LjMgMCA2NCAyOC43IDY0IDY0bDAgMjU2YzAgMzUuMy0yOC43IDY0LTY0IDY0TDY0IDQ0OGMtMzUuMyAwLTY0LTI4LjctNjQtNjRMMCAxMjh6bTE1MiA4MGwzMiAwYzQuNCAwIDggMy42IDggOCAwIDEzLjMgMTAuNyAyNCAyNCAyNHMyNC0xMC43IDI0LTI0YzAtMzAuOS0yNS4xLTU2LTU2LTU2bC0zMiAwYy0zMC45IDAtNTYgMjUuMS01NiA1NmwwIDgwYzAgMzAuOSAyNS4xIDU2IDU2IDU2bDMyIDBjMzAuOSAwIDU2LTI1LjEgNTYtNTYgMC0xMy4zLTEwLjctMjQtMjQtMjRzLTI0IDEwLjctMjQgMjRjMCA0LjQtMy42IDgtOCA4bC0zMiAwYy00LjQgMC04LTMuNi04LThsMC04MGMwLTQuNCAzLjYtOCA4LTh6bTE2OCA4YzAtNC40IDMuNi04IDgtOGwzMiAwYzQuNCAwIDggMy42IDggOCAwIDEzLjMgMTAuNyAyNCAyNCAyNHMyNC0xMC43IDI0LTI0YzAtMzAuOS0yNS4xLTU2LTU2LTU2bC0zMiAwYy0zMC45IDAtNTYgMjUuMS01NiA1NmwwIDgwYzAgMzAuOSAyNS4xIDU2IDU2IDU2bDMyIDBjMzAuOSAwIDU2LTI1LjEgNTYtNTYgMC0xMy4zLTEwLjctMjQtMjQtMjRzLTI0IDEwLjctMjQgMjRjMCA0LjQtMy42IDgtOCA4bC0zMiAwYy00LjQgMC04LTMuNi04LThsMC04MHoiXX0seXp0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InBlbiIsaWNvbjpbNTEyLDUxMixbMTI4Mzk0XSwiZjMwNCIsIk0zNTIuOSAyMS4yTDMwOCA2Ni4xIDQ0NS45IDIwNCA0OTAuOCAxNTkuMUM1MDQuNCAxNDUuNiA1MTIgMTI3LjIgNTEyIDEwOHMtNy42LTM3LjYtMjEuMi01MS4xTDQ1NS4xIDIxLjJDNDQxLjYgNy42IDQyMy4yIDAgNDA0IDBzLTM3LjYgNy42LTUxLjEgMjEuMnpNMjc0LjEgMTAwTDU4LjkgMzE1LjFjLTEwLjcgMTAuNy0xOC41IDI0LjEtMjIuNiAzOC43TC45IDQ4MS42Yy0yLjMgOC4zIDAgMTcuMyA2LjIgMjMuNHMxNS4xIDguNSAyMy40IDYuMmwxMjcuOC0zNS41YzE0LjYtNC4xIDI3LjktMTEuOCAzOC43LTIyLjZMNDEyIDIzNy45IDI3NC4xIDEwMHoiXX0sd3p0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InBsYW5lIixpY29uOls1NzYsNTEyLFtdLCJmMDcyIiwiTTUyMCAyMDBjMzAuOSAwIDU2IDI1LjEgNTYgNTZzLTI1LjEgNTYtNTYgNTZsLTEyNy4zIDAtMTU5LjIgMTczLjZjLTYuMSA2LjYtMTQuNiAxMC40LTIzLjYgMTAuNGwtNDMuNyAwYy0xMC45IDAtMTguNi0xMC43LTE1LjItMjEuMWw1NC4zLTE2Mi45LTk5LjcgMC01Mi44IDY2Yy0zIDMuOC03LjYgNi0xMi41IDZsLTE5LjggMGMtMTAuNCAwLTE4LTkuOC0xNS41LTE5LjlMMzIgMjU2IDUgMTQ3LjlDMi40IDEzNy44IDEwLjEgMTI4IDIwLjUgMTI4bDE5LjggMGM0LjkgMCA5LjUgMi4yIDEyLjUgNmw1Mi44IDY2IDk5LjcgMC01NC4zLTE2Mi45QzE0Ny42IDI2LjcgMTU1LjMgMTYgMTY2LjIgMTZsNDMuNyAwYzkgMCAxNy41IDMuOCAyMy42IDEwLjRMMzkyLjcgMjAwIDUyMCAyMDB6Il19LE16dD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJpbWFnZXMiLGljb246WzU3Niw1MTIsW10sImYzMDIiLCJNOTYgOTZjMC0zNS4zIDI4LjctNjQgNjQtNjRsMzIwIDBjMzUuMyAwIDY0IDI4LjcgNjQgNjRsMCAyNTZjMCAzNS4zLTI4LjcgNjQtNjQgNjRsLTMyMCAwYy0zNS4zIDAtNjQtMjguNy02NC02NEw5NiA5NnpNMjQgMTI4YzEzLjMgMCAyNCAxMC43IDI0IDI0bDAgMjk2YzAgOC44IDcuMiAxNiAxNiAxNmwzNjAgMGMxMy4zIDAgMjQgMTAuNyAyNCAyNHMtMTAuNyAyNC0yNCAyNEw2NCA1MTJjLTM1LjMgMC02NC0yOC43LTY0LTY0TDAgMTUyYzAtMTMuMyAxMC43LTI0IDI0LTI0em0xNjggMzJhMzIgMzIgMCAxIDAgMC02NCAzMiAzMiAwIDEgMCAwIDY0em0xOTYuNSAxMS41Yy00LjQtNy4xLTEyLjEtMTEuNS0yMC41LTExLjVzLTE2LjEgNC40LTIwLjUgMTEuNWwtNTYuMyA5Mi4xLTI0LjUtMzAuNmMtNC42LTUuNy0xMS40LTktMTguNy05cy0xNC4yIDMuMy0xOC43IDlsLTY0IDgwYy01LjggNy4yLTYuOSAxNy4xLTIuOSAyNS40UzE3NC44IDM1MiAxODQgMzUybDI3MiAwYzguNyAwIDE2LjctNC43IDIwLjktMTIuM3M0LjEtMTYuOC0uNS0yNC4zbC04OC0xNDR6Il19LGMwZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJtb2JpbGUtc2NyZWVuIixpY29uOlszODQsNTEyLFsibW9iaWxlLWFuZHJvaWQtYWx0Il0sImYzY2YiLCJNMTYgNjRDMTYgMjguNyA0NC43IDAgODAgMEwzMDQgMGMzNS4zIDAgNjQgMjguNyA2NCA2NGwwIDM4NGMwIDM1LjMtMjguNyA2NC02NCA2NEw4MCA1MTJjLTM1LjMgMC02NC0yOC43LTY0LTY0TDE2IDY0ek0xMjggNDQwYzAgMTMuMyAxMC43IDI0IDI0IDI0bDgwIDBjMTMuMyAwIDI0LTEwLjcgMjQtMjRzLTEwLjctMjQtMjQtMjRsLTgwIDBjLTEzLjMgMC0yNCAxMC43LTI0IDI0ek0zMDQgNjRsLTIyNCAwIDAgMzA0IDIyNCAwIDAtMzA0eiJdfSxrenQ9YzBlLFN6dD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJndWFyYW5pLXNpZ24iLGljb246WzM4NCw1MTIsW10sImUxOWEiLCJNMTkyIDBjLTEzLjMgMC0yNCAxMC43LTI0IDI0bDAgNDEuNUM3My4zIDc3LjMgMCAxNTguMSAwIDI1NlM3My4zIDQzNC43IDE2OCA0NDYuNWwwIDQxLjVjMCAxMy4zIDEwLjcgMjQgMjQgMjRzMjQtMTAuNyAyNC0yNGwwLTQxLjVjOTQuNy0xMS44IDE2OC05Mi42IDE2OC0xOTAuNSAwLTE3LjctMTQuMy0zMi0zMi0zMmwtMTM2IDAgMC05My44YzI1LjMgNC44IDQ3LjkgMTcgNjUuNiAzNC4zIDEyLjYgMTIuNCAzMi45IDEyLjIgNDUuMy0uNHMxMi4yLTMyLjktLjUtNDUuM0MyOTcuMiA5MC4yIDI1OC44IDcwLjggMjE2IDY1LjVMMjE2IDI0YzAtMTMuMy0xMC43LTI0LTI0LTI0ek0xNjggMTMwLjJsMCAyNTEuNUMxMDguOCAzNzAuNSA2NCAzMTguNSA2NCAyNTZzNDQuOC0xMTQuNSAxMDQtMTI1Ljh6bTQ4IDI1MS41bDAtOTMuOCAxMDAgMGMtMTIuMyA0Ny42LTUxLjIgODQuNS0xMDAgOTMuOHoiXX0sZDBlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImJhZy1zaG9wcGluZyIsaWNvbjpbNDQ4LDUxMixbInNob3BwaW5nLWJhZyJdLCJmMjkwIiwiTTE2MCA4MGMwLTM1LjMgMjguNy02NCA2NC02NHM2NCAyOC43IDY0IDY0bDAgNDgtMTI4IDAgMC00OHptLTQ4IDQ4bC02NCAwYy0yNi41IDAtNDggMjEuNS00OCA0OEwwIDM4NGMwIDUzIDQzIDk2IDk2IDk2bDI1NiAwYzUzIDAgOTYtNDMgOTYtOTZsMC0yMDhjMC0yNi41LTIxLjUtNDgtNDgtNDhsLTY0IDAgMC00OGMwLTYxLjktNTAuMS0xMTItMTEyLTExMlMxMTIgMTguMSAxMTIgODBsMCA0OHptMjQgNDhhMjQgMjQgMCAxIDEgMCA0OCAyNCAyNCAwIDEgMSAwLTQ4em0xNTIgMjRhMjQgMjQgMCAxIDEgNDggMCAyNCAyNCAwIDEgMSAtNDggMHoiXX0senp0PWQwZSx1MGU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiY2lyY2xlLXJpZ2h0IixpY29uOls1MTIsNTEyLFs2MTgzOCwiYXJyb3ctYWx0LWNpcmNsZS1yaWdodCJdLCJmMzVhIiwiTTAgMjU2YTI1NiAyNTYgMCAxIDAgNTEyIDAgMjU2IDI1NiAwIDEgMCAtNTEyIDB6bTM4Ny4zIDExLjNsLTEwNCAxMDRjLTQuNiA0LjYtMTEuNSA1LjktMTcuNCAzLjVTMjU2IDM2Ni41IDI1NiAzNjBsMC01Ni05NiAwYy0xNy43IDAtMzItMTQuMy0zMi0zMmwwLTMyYzAtMTcuNyAxNC4zLTMyIDMyLTMybDk2IDAgMC01NmMwLTYuNSAzLjktMTIuMyA5LjktMTQuOHMxMi45LTEuMSAxNy40IDMuNWwxMDQgMTA0YzYuMiA2LjIgNi4yIDE2LjQgMCAyMi42eiJdfSxDenQ9dTBlLHAwZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJwaG9uZS12b2x1bWUiLGljb246WzU3Niw1MTIsWyJ2b2x1bWUtY29udHJvbC1waG9uZSJdLCJmMmEwIiwiTTM0NC0zMmMxMjguMSAwIDIzMiAxMDMuOSAyMzIgMjMyIDAgMTMuMy0xMC43IDI0LTI0IDI0cy0yNC0xMC43LTI0LTI0YzAtMTAxLjYtODIuNC0xODQtMTg0LTE4NC0xMy4zIDAtMjQtMTAuNy0yNC0yNHMxMC43LTI0IDI0LTI0em04IDE5MmEzMiAzMiAwIDEgMSAwIDY0IDMyIDMyIDAgMSAxIDAtNjR6TTMyMCA4OGMwLTEzLjMgMTAuNy0yNCAyNC0yNCA3NS4xIDAgMTM2IDYwLjkgMTM2IDEzNiAwIDEzLjMtMTAuNyAyNC0yNCAyNHMtMjQtMTAuNy0yNC0yNGMwLTQ4LjYtMzkuNC04OC04OC04OC0xMy4zIDAtMjQtMTAuNy0yNC0yNHpNMTQ0LjEgMS40YzE5LjctNS40IDQwLjMgNC43IDQ4LjEgMjMuNWw0MC41IDk3LjNjNi45IDE2LjUgMi4xIDM1LjYtMTEuOCA0N2wtNDQuMSAzNi4xYzMyLjUgNzEuNiA4OSAxMzAgMTU5LjMgMTY0LjlMMzc0LjcgMzIzYzExLjMtMTMuOSAzMC40LTE4LjYgNDctMTEuOEw1MTkgMzUxLjhjMTguOCA3LjggMjguOSAyOC40IDIzLjUgNDguMWwtMS41IDUuNUM1MjMuNCA0NzAuMSA0NjAuOSA1MjUuMyAzODQuNiA1MDkuMiAyMDkuNiA0NzIuMSA3MS45IDMzNC40IDM0LjggMTU5LjQgMTguNyA4My4xIDczLjkgMjAuNiAxMzguNSAyLjlsNS41LTEuNXoiXX0sVHp0PXAwZSxfenQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiY3ViZXMiLGljb246WzUxMiw1MTIsW10sImYxYjMiLCJNMjg0LTEuM2MtMTcuMy0xMC0zOC43LTEwLTU2IDBMMTQzLjggNDcuM2MtMTcuMyAxMC0yOCAyOC41LTI4IDQ4LjVsMCAxMDEuOS04OC4zIDUxYy0xNy4zIDEwLTI4IDI4LjUtMjggNDguNWwwIDk3LjNjMCAyMCAxMC43IDM4LjUgMjggNDguNWw4NC4zIDQ4LjZjMTcuMyAxMCAzOC43IDEwIDU2IDBsODguMy01MSA4OC4zIDUxYzE3LjMgMTAgMzguNyAxMCA1NiAwTDQ4NC41IDQ0M2MxNy4zLTEwIDI4LTI4LjUgMjgtNDguNWwwLTk3LjNjMC0yMC0xMC43LTM4LjUtMjgtNDguNWwtODguMy01MSAwLTEwMS45YzAtMjAtMTAuNy0zOC41LTI4LTQ4LjVMMjg0LTEuM3pNMjMyIDI5Mi42bDAgMTA2LjUtODguMyA1MWMtMS4yIC43LTIuNiAxLjEtNCAxLjFsMC0xMDUuMyA5Mi4zLTUzLjN6bTIzMS40IC42Yy43IDEuMiAxLjEgMi42IDEuMSA0bDAgOTcuM2MwIDIuOS0xLjUgNS41LTQgNi45bC04NC4zIDQ4LjZjLTEuMiAuNy0yLjYgMS4xLTQgMS4xbDAtMTA1LjMgOTEuMi01Mi42ek0zNDguMyA5NS44bDAgMTAxLjktOTIuMyA1My4zIDAtMTA2LjUgOTEuMi01Mi42Yy43IDEuMiAxLjEgMi42IDEuMSA0eiJdfSxMenQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToicGhvbmUiLGljb246WzUxMiw1MTIsWzEyODIyMiwxMjgzNzldLCJmMDk1IiwiTTE2MC4yIDI1QzE1Mi4zIDYuMSAxMzEuNy0zLjkgMTEyLjEgMS40bC01LjUgMS41Yy02NC42IDE3LjYtMTE5LjggODAuMi0xMDMuNyAxNTYuNCAzNy4xIDE3NSAxNzQuOCAzMTIuNyAzNDkuOCAzNDkuOCA3Ni4zIDE2LjIgMTM4LjgtMzkuMSAxNTYuNC0xMDMuN2wxLjUtNS41YzUuNC0xOS43LTQuNy00MC4zLTIzLjUtNDguMWwtOTcuMy00MC41Yy0xNi41LTYuOS0zNS42LTIuMS00NyAxMS44bC0zOC42IDQ3LjJDMjMzLjkgMzM1LjQgMTc3LjMgMjc3IDE0NC44IDIwNS4zTDE4OSAxNjkuM2MxMy45LTExLjMgMTguNi0zMC40IDExLjgtNDdMMTYwLjIgMjV6Il19LEF6dD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJ0b3JpaS1nYXRlIixpY29uOls0NDgsNTEyLFs5OTYxXSwiZjZhMSIsIk0wIDk2TDAgMjguNUMwIDIxLjYgNS42IDE2IDEyLjUgMTYgMTQuOCAxNiAxNyAxNi42IDE5IDE3LjhMNTggNDEuMkM4Mi45IDU2LjEgMTExLjMgNjQgMTQwLjMgNjRsMTY3LjQgMGMyOSAwIDU3LjUtNy45IDgyLjMtMjIuOGwzOS0yMy40YzEuOS0xLjIgNC4yLTEuOCA2LjQtMS44IDYuOSAwIDEyLjUgNS42IDEyLjUgMTIuNUw0NDggOTZjMCAzNS4zLTI4LjcgNjQtNjQgNjRsMCA2NCAxNiAwYzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMybC0xNiAwIDAgMTkyYzAgMTcuNy0xNC4zIDMyLTMyIDMycy0zMi0xNC4zLTMyLTMybDAtMTkyLTE5MiAwIDAgMTkyYzAgMTcuNy0xNC4zIDMyLTMyIDMycy0zMi0xNC4zLTMyLTMybDAtMTkyLTE2IDBjLTE3LjcgMC0zMi0xNC4zLTMyLTMyczE0LjMtMzIgMzItMzJsMTYgMCAwLTY0QzI4LjcgMTYwIDAgMTMxLjMgMCA5NnpNMTI4IDIyNGw2NCAwIDAtNjQtNjQgMCAwIDY0em0xMjggMGw2NCAwIDAtNjQtNjQgMCAwIDY0eiJdfSxEenQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiYmFjb24iLGljb246WzU3Niw1MTIsWzEyOTM2M10sImY3ZTUiLCJNNTU3IDk2LjdjMTQuNCAxNC40IDEyLjQgMzguNC00LjMgNTAuMmwtNjQuNiA0NS43Yy00My43IDMwLjktNzkuMiA3MS45LTEwMy40IDExOS42bC0yNS4zIDQ5LjhjLTI1LjEgNDkuMy02Mi4xIDkxLjUtMTA3LjggMTIyLjZsLTc0LjEgNTAuNmMtMTMuMSA4LjktMzAuNyA3LjMtNDEuOC0zLjlsLTQ0LjktNDQuOSA4Ni41LTY2LjVjNDIuMy0zMi41IDc2LjctNzQuMyAxMDAuNi0xMjJsMjQuNS00OS4xYzI0LjUtNDkgNjEuOC05MC42IDEwNy45LTEyMC4ybDEwOC43LTY5LjkgMzggMzh6TTQ4NC4yIDIzLjlMMzg0LjMgODguMmMtNTMuNCAzNC4zLTk2LjUgODIuNC0xMjQuOSAxMzkuMWwtMjQuNSA0OS4xYy0yMC42IDQxLjMtNTAuMyA3Ny4zLTg2LjkgMTA1LjRsLTkxLjQgNzAuMy0zNi45LTM2LjljLTE0LjQtMTQuNC0xMi40LTM4LjQgNC4zLTUwLjJsNjQuNi00NS43YzQzLjctMzAuOSA3OS4yLTcxLjkgMTAzLjQtMTE5LjZsMjUuMy00OS44QzI0Mi4zIDEwMC44IDI3OS4zIDU4LjYgMzI1IDI3LjRsNzQuMS01MC42YzEzLjEtOC45IDMwLjYtNy4zIDQxLjggMy45bDQzLjMgNDMuM3oiXX0sRXp0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InBlcnNvbi1mYWxsaW5nLWJ1cnN0IixpY29uOls1NzYsNTEyLFtdLCJlNTQ3IiwiTTI1NiAwYzE3LjcgMCAzMiAxNC4zIDMyIDMybDAgNS40YzAgNTUuMi0yMy43IDEwNy02My45IDE0My4xbDYyLjkgNzUuNSA4OSAwYzE1LjEgMCAyOS4zIDcuMSAzOC40IDE5LjJsNDMuMiA1Ny42YzEwLjYgMTQuMSA3LjcgMzQuMi02LjQgNDQuOHMtMzQuMiA3LjctNDQuOC02LjRMMzY4IDMyMCAyNjMuMiAzMjAgMzc2LjggNDU5LjhjMTEuMSAxMy43IDkuMSAzMy45LTQuNyA0NXMtMzMuOSA5LjEtNDUtNC43TDEzNy40IDI2Ni42Yy02LjEgMTUtOS40IDMxLjMtOS40IDQ4bDAgNjkuNGMwIDE3LjctMTQuMyAzMi0zMiAzMnMtMzItMTQuMy0zMi0zMmwwLTY5LjRjMC02Ny40IDM1LjQtMTI5LjkgOTMuMi0xNjQuNmw0LjYtMi44QzIwMC40IDEyNCAyMjQgODIuNCAyMjQgMzcuNGwwLTUuNGMwLTE3LjcgMTQuMy0zMiAzMi0zMnpNMTYgODhBNTYgNTYgMCAxIDEgMTI4IDg4IDU2IDU2IDAgMSAxIDE2IDg4em0zNzYtNy45YzAgMTMuMy0xMC43IDI0LTI0IDI0cy0yNC0xMC43LTI0LTI0bDAtNDhjMC0xMy4zIDEwLjctMjQgMjQtMjRzMjQgMTAuNyAyNCAyNGwwIDQ4em0xMDQgMTUyYy0xMy4zIDAtMjQtMTAuNy0yNC0yNHMxMC43LTI0IDI0LTI0bDQ4IDBjMTMuMyAwIDI0IDEwLjcgMjQgMjRzLTEwLjcgMjQtMjQgMjRsLTQ4IDB6bS01NC41LTk3LjVjLTkuNC05LjQtOS40LTI0LjYgMC0zMy45bDMzLjktMzMuOWM5LjQtOS40IDI0LjYtOS40IDMzLjkgMHM5LjQgMjQuNiAwIDMzLjlsLTMzLjkgMzMuOWMtOS40IDkuNC0yNC42IDkuNC0zMy45IDB6Il19LGgwZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJxdW90ZS1yaWdodCIsaWNvbjpbNDQ4LDUxMixbODIyMSwicXVvdGUtcmlnaHQtYWx0Il0sImYxMGUiLCJNNDQ4IDI5NmMwIDY2LjMtNTMuNyAxMjAtMTIwIDEyMGwtOCAwYy0xNy43IDAtMzItMTQuMy0zMi0zMnMxNC4zLTMyIDMyLTMybDggMGMzMC45IDAgNTYtMjUuMSA1Ni01NmwwLTgtNjQgMGMtMzUuMyAwLTY0LTI4LjctNjQtNjRsMC02NGMwLTM1LjMgMjguNy02NCA2NC02NGw2NCAwYzM1LjMgMCA2NCAyOC43IDY0IDY0bDAgMTM2em0tMjU2IDBjMCA2Ni4zLTUzLjcgMTIwLTEyMCAxMjBsLTggMGMtMTcuNyAwLTMyLTE0LjMtMzItMzJzMTQuMy0zMiAzMi0zMmw4IDBjMzAuOSAwIDU2LTI1LjEgNTYtNTZsMC04LTY0IDBjLTM1LjMgMC02NC0yOC43LTY0LTY0bDAtNjRjMC0zNS4zIDI4LjctNjQgNjQtNjRsNjQgMGMzNS4zIDAgNjQgMjguNyA2NCA2NGwwIDEzNnoiXX0sJHp0PWgwZSxJenQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiaG91c2UtbWVkaWNhbC1mbGFnIixpY29uOls2NDAsNTEyLFtdLCJlNTE0IiwiTTQ4MCAwYzE3LjcgMCAzMiAxNC4zIDMyIDMybDk2IDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJsMCA5NmMwIDE3LjctMTQuMyAzMi0zMiAzMmwtOTYgMCAwIDI4OGMwIDE3LjctMTQuMyAzMi0zMiAzMnMtMzItMTQuMy0zMi0zMmwwLTQ0OGMwLTE3LjcgMTQuMy0zMiAzMi0zMnpNMjY3LjUgNTkuMUw0MDAgMTg2LjkgNDAwIDUwMy40Yy05LjQgNS40LTIwLjMgOC42LTMyIDguNmwtMjU2IDBjLTM1LjMgMC02NC0yOC43LTY0LTY0bDAtMTQ0LTE5LjkgMEMxMi42IDMwNCAwIDI5MS40IDAgMjc1LjkgMCAyNjguMyAzLjEgMjYxIDguNiAyNTUuN0wyMTIuNSA1OS4xQzIxOS45IDUyIDIyOS43IDQ4IDI0MCA0OHMyMC4xIDQgMjcuNSAxMS4xek0yMDQuOCAyNTYuOGwwIDQ0LTQ0IDBjLTkuNyAwLTE3LjYgNy45LTE3LjYgMTcuNmwwIDM1LjJjMCA5LjcgNy45IDE3LjYgMTcuNiAxNy42bDQ0IDAgMCA0NGMwIDkuNyA3LjkgMTcuNiAxNy42IDE3LjZsMzUuMiAwYzkuNyAwIDE3LjYtNy45IDE3LjYtMTcuNmwwLTQ0IDQ0IDBjOS43IDAgMTcuNi03LjkgMTcuNi0xNy42bDAtMzUuMmMwLTkuNy03LjktMTcuNi0xNy42LTE3LjZsLTQ0IDAgMC00NGMwLTkuNy03LjktMTcuNi0xNy42LTE3LjZsLTM1LjIgMGMtOS43IDAtMTcuNiA3LjktMTcuNiAxNy42eiJdfSxQenQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToicHJlc2NyaXB0aW9uIixpY29uOls0NDgsNTEyLFtdLCJmNWIxIiwiTTMyIDBDMTQuMyAwIDAgMTQuMyAwIDMyTDAgMjg4YzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJsMC02NCA1MC43IDAgMTI4IDEyOC0xMDUuNCAxMDUuNGMtMTIuNSAxMi41LTEyLjUgMzIuOCAwIDQ1LjNzMzIuOCAxMi41IDQ1LjMgMEwyODggMzk3LjMgMzkzLjQgNTAyLjZjMTIuNSAxMi41IDMyLjggMTIuNSA0NS4zIDBzMTIuNS0zMi44IDAtNDUuM0wzMzMuMyAzNTIgNDM4LjYgMjQ2LjZjMTIuNS0xMi41IDEyLjUtMzIuOCAwLTQ1LjNzLTMyLjgtMTIuNS00NS4zIDBMMjg4IDMwNi43IDIwMi4yIDIyMC45QzI1MS40IDIwOS4xIDI4OCAxNjQuOCAyODggMTEyIDI4OCA1MC4xIDIzNy45IDAgMTc2IDBMMzIgMHpNMTc2IDE2MGwtMTEyIDAgMC05NiAxMTIgMGMyNi41IDAgNDggMjEuNSA0OCA0OHMtMjEuNSA0OC00OCA0OHoiXX0sTnp0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImRpY2UtdGhyZWUiLGljb246WzQ0OCw1MTIsWzk4NThdLCJmNTI3IiwiTTY0IDMyQzI4LjcgMzIgMCA2MC43IDAgOTZMMCA0MTZjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMzIwIDBjMzUuMyAwIDY0LTI4LjcgNjQtNjRsMC0zMjBjMC0zNS4zLTI4LjctNjQtNjQtNjRMNjQgMzJ6bTY0IDk2YTMyIDMyIDAgMSAxIDAgNjQgMzIgMzIgMCAxIDEgMC02NHptNjQgMTI4YTMyIDMyIDAgMSAxIDY0IDAgMzIgMzIgMCAxIDEgLTY0IDB6bTEyOCA2NGEzMiAzMiAwIDEgMSAwIDY0IDMyIDMyIDAgMSAxIDAtNjR6Il19LEZ6dD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJidWlsZGluZy1sb2NrIixpY29uOls1NzYsNTEyLFtdLCJlNGQ2IiwiTTMyIDY0QzMyIDI4LjcgNjAuNyAwIDk2IDBMMzUyIDBjMzUuMyAwIDY0IDI4LjcgNjQgNjRsMCAxMjEuM2MtNDYuOSAxOS04MCA2NS04MCAxMTguN2wwIDI0LjRjLTE5LjYgMTcuNi0zMiA0My4xLTMyIDcxLjVsMCA5NmMwIDUuNSAuNSAxMC45IDEuMyAxNi4xTDk2IDUxMmMtMzUuMyAwLTY0LTI4LjctNjQtNjRMMzIgNjR6TTE3NiAzODRsMCA4MCA4MCAwIDAtNjQuMWMwLTEzLjcgMS45LTI3IDUuNS0zOS42LTUuNy01LjItMTMuMi04LjMtMjEuNS04LjNsLTMyIDBjLTE3LjcgMC0zMiAxNC4zLTMyIDMyek0zMDcgMjI0LjNjLTEtLjItMi0uMy0zLS4zbC0zMiAwYy04LjggMC0xNiA3LjItMTYgMTZsMCAzMmMwIDguOCA3LjIgMTYgMTYgMTZsMTYuNyAwYzIuMS0yMi44IDguNC00NC4zIDE4LjMtNjMuN3pNMTQ0IDk2Yy04LjggMC0xNiA3LjItMTYgMTZsMCAzMmMwIDguOCA3LjIgMTYgMTYgMTZsMzIgMGM4LjggMCAxNi03LjIgMTYtMTZsMC0zMmMwLTguOC03LjItMTYtMTYtMTZsLTMyIDB6bTExMiAxNmwwIDMyYzAgOC44IDcuMiAxNiAxNiAxNmwzMiAwYzguOCAwIDE2LTcuMiAxNi0xNmwwLTMyYzAtOC44LTcuMi0xNi0xNi0xNmwtMzIgMGMtOC44IDAtMTYgNy4yLTE2IDE2ek0xNDQgMjI0Yy04LjggMC0xNiA3LjItMTYgMTZsMCAzMmMwIDguOCA3LjIgMTYgMTYgMTZsMzIgMGM4LjggMCAxNi03LjIgMTYtMTZsMC0zMmMwLTguOC03LjItMTYtMTYtMTZsLTMyIDB6bTM1MiA4MC4xYzAtMTcuNy0xNC4zLTMyLTMyLTMycy0zMiAxNC4zLTMyIDMybDAgNDcuOSA2NCAwIDAtNDcuOXpNMzUyIDQwMGMwLTIwLjkgMTMuNC0zOC43IDMyLTQ1LjNsMC01MC42YzAtNDQuMiAzNS44LTgwIDgwLTgwczgwIDM1LjggODAgODBsMCA1MC42YzE4LjYgNi42IDMyIDI0LjQgMzIgNDUuM2wwIDk2YzAgMjYuNS0yMS41IDQ4LTQ4IDQ4bC0xMjggMGMtMjYuNSAwLTQ4LTIxLjUtNDgtNDhsMC05NnoiXX0sZjBlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImlkLWNhcmQiLGljb246WzU3Niw1MTIsWzYyMTQ3LCJkcml2ZXJzLWxpY2Vuc2UiXSwiZjJjMiIsIk0wIDk2QzAgNjAuNyAyOC43IDMyIDY0IDMybDQ0OCAwYzM1LjMgMCA2NCAyOC43IDY0IDY0TDAgOTZ6bTAgNDhsNTc2IDAgMCAyNzJjMCAzNS4zLTI4LjcgNjQtNjQgNjRMNjQgNDgwYy0zNS4zIDAtNjQtMjguNy02NC02NEwwIDE0NHpNMjQ3LjMgNDE2YzIwLjIgMCAzNS4zLTE5LjQgMjIuNC0zNS0xNC43LTE3LjctMzYuOS0yOS02MS43LTI5bC02NCAwYy0yNC44IDAtNDcgMTEuMy02MS43IDI5LTEyLjkgMTUuNiAyLjIgMzUgMjIuNCAzNWwxNDIuNSAwek0xNzYgMzEyYTU2IDU2IDAgMSAwIDAtMTEyIDU2IDU2IDAgMSAwIDAgMTEyek0zNjAgMjA4Yy0xMy4zIDAtMjQgMTAuNy0yNCAyNHMxMC43IDI0IDI0IDI0bDExMiAwYzEzLjMgMCAyNC0xMC43IDI0LTI0cy0xMC43LTI0LTI0LTI0bC0xMTIgMHptMCA5NmMtMTMuMyAwLTI0IDEwLjctMjQgMjRzMTAuNyAyNCAyNCAyNGwxMTIgMGMxMy4zIDAgMjQtMTAuNyAyNC0yNHMtMTAuNy0yNC0yNC0yNGwtMTEyIDB6Il19LE96dD1mMGUsbTBlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImNpcmNsZS1wbGF5IixpY29uOls1MTIsNTEyLFs2MTQ2OSwicGxheS1jaXJjbGUiXSwiZjE0NCIsIk0wIDI1NmEyNTYgMjU2IDAgMSAxIDUxMiAwIDI1NiAyNTYgMCAxIDEgLTUxMiAwek0xODguMyAxNDcuMWMtNy42IDQuMi0xMi4zIDEyLjMtMTIuMyAyMC45bDAgMTc2YzAgOC43IDQuNyAxNi43IDEyLjMgMjAuOXMxNi44IDQuMSAyNC4zLS41bDE0NC04OGM3LjEtNC40IDExLjUtMTIuMSAxMS41LTIwLjVzLTQuNC0xNi4xLTExLjUtMjAuNWwtMTQ0LTg4Yy03LjQtNC41LTE2LjctNC43LTI0LjMtLjV6Il19LFJ6dD1tMGUsZzBlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImZhY2UtbGF1Z2gtYmVhbSIsaWNvbjpbNTEyLDUxMixbMTI4NTEzLCJsYXVnaC1iZWFtIl0sImY1OWEiLCJNMjU2IDUxMmEyNTYgMjU2IDAgMSAwIDAtNTEyIDI1NiAyNTYgMCAxIDAgMCA1MTJ6TTEwMS42IDMxNGMtMy43LTEzLjcgNy41LTI2IDIxLjctMjZsMjY1LjQgMGMxNC4yIDAgMjUuNCAxMi4zIDIxLjcgMjYtMTguNSA2OC04MC42IDExOC0xNTQuNCAxMThTMTIwIDM4MiAxMDEuNiAzMTR6TTE3NiAxNjRjLTE1LjUgMC0yOCAxMi41LTI4IDI4bDAgOGMwIDExLTkgMjAtMjAgMjBzLTIwLTktMjAtMjBsMC04YzAtMzcuNiAzMC40LTY4IDY4LTY4czY4IDMwLjQgNjggNjhsMCA4YzAgMTEtOSAyMC0yMCAyMHMtMjAtOS0yMC0yMGwwLThjMC0xNS41LTEyLjUtMjgtMjgtMjh6bTEzMiAyOGwwIDhjMCAxMS05IDIwLTIwIDIwcy0yMC05LTIwLTIwbDAtOGMwLTM3LjYgMzAuNC02OCA2OC02OHM2OCAzMC40IDY4IDY4bDAgOGMwIDExLTkgMjAtMjAgMjBzLTIwLTktMjAtMjBsMC04YzAtMTUuNS0xMi41LTI4LTI4LTI4cy0yOCAxMi41LTI4IDI4eiJdfSxCenQ9ZzBlLEh6dD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJsZWFmIixpY29uOls1MTIsNTEyLFtdLCJmMDZjIiwiTTQ3MS4zIDYuN0M0NzcuNyAuNiA0ODctMS42IDQ5NS42IDEuMiA1MDUuNCA0LjUgNTEyIDEzLjcgNTEyIDI0bDAgMTg2LjljMCAxMzEuMi0xMDguMSAyMzcuMS0yMzguOCAyMzcuMS03NyAwLTE0My40LTQ5LjUtMTY3LjUtMTE4LjctMzUuNCAzMC44LTU3LjcgNzYuMS01Ny43IDEyNi43IDAgMTMuMy0xMC43IDI0LTI0IDI0UzAgNDY5LjMgMCA0NTZDMCAzODEuMSAzOC4yIDMxNS4xIDk2LjEgMjc2LjMgMTMxLjQgMjUyLjcgMTczLjUgMjQwIDIxNiAyNDBsODAgMGMxMy4zIDAgMjQtMTAuNyAyNC0yNHMtMTAuNy0yNC0yNC0yNGwtODAgMGMtMzkuNyAwLTc3LjMgOC44LTExMSAyNC41IDIzLjMtNzAgODkuMi0xMjAuNSAxNjctMTIwLjUgNjYuNCAwIDExNS44LTIyLjEgMTQ4LjctNDQgMTkuMi0xMi44IDM1LjUtMjguMSA1MC43LTQ1LjN6Il19LHF6dD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJob3VzZS1jaGltbmV5LXVzZXIiLGljb246WzUxMiw1MTIsW10sImUwNjUiLCJNMjM0LjIgOC42YzEyLjMtMTEuNCAzMS4zLTExLjQgNDMuNSAwTDM2OCA5Mi4zIDM2OCA4MGMwLTE3LjcgMTQuMy0zMiAzMi0zMmwzMiAwYzE3LjcgMCAzMiAxNC4zIDMyIDMybDAgMTAxLjUgMzcuOCAzNS4xYzkuNiA5IDEyLjggMjIuOSA4IDM1LjFTNDkzLjIgMjcyIDQ4MCAyNzJsLTE2IDAgMCAxNzZjMCAzNS4zLTI4LjcgNjQtNjQgNjRsLTI4OCAwYy0zNS4zIDAtNjQtMjguNy02NC02NGwwLTE3Ni0xNiAwYy0xMy4yIDAtMjUtOC4xLTI5LjgtMjAuM3MtMS42LTI2LjIgOC0zNS4xbDIyNC0yMDh6TTMxMiAyNTZhNTYgNTYgMCAxIDAgLTExMiAwIDU2IDU2IDAgMSAwIDExMiAwek0xNDQgNDMyYzAgOC44IDcuMiAxNiAxNiAxNmwxOTIgMGM4LjggMCAxNi03LjIgMTYtMTYgMC00NC4yLTM1LjgtODAtODAtODBsLTY0IDBjLTQ0LjIgMC04MCAzNS44LTgwIDgweiJdfSxTRD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJyb3RhdGUtcmlnaHQiLGljb246WzUxMiw1MTIsWyJyZWRvLWFsdCIsInJvdGF0ZS1mb3J3YXJkIl0sImYyZjkiLCJNNDg4IDE5MmwtMTQ0IDBjLTkuNyAwLTE4LjUtNS44LTIyLjItMTQuOHMtMS43LTE5LjMgNS4yLTI2LjJsNDYuNy00Ni43Yy03NS4zLTU4LjYtMTg0LjMtNTMuMy0yNTMuNSAxNS45LTc1IDc1LTc1IDE5Ni41IDAgMjcxLjVzMTk2LjUgNzUgMjcxLjUgMGM4LjItOC4yIDE1LjUtMTYuOSAyMS45LTI2LjEgMTAuMS0xNC41IDMwLjEtMTggNDQuNi03LjlzMTggMzAuMSA3LjkgNDQuNmMtOC41IDEyLjItMTguMiAyMy44LTI5LjEgMzQuNy0xMDAgMTAwLTI2Mi4xIDEwMC0zNjIgMFMtMjUgMTc1IDc1IDc1Yzk0LjMtOTQuMyAyNDMuNy05OS42IDM0NC4zLTE2LjJMNDcxIDdjNi45LTYuOSAxNy4yLTguOSAyNi4yLTUuMlM1MTIgMTQuMyA1MTIgMjRsMCAxNDRjMCAxMy4zLTEwLjcgMjQtMjQgMjR6Il19LGp6dD1TRCxWenQ9U0QsVXp0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InRvb3RoIixpY29uOls0NDgsNTEyLFsxMjk0NjNdLCJmNWM5IiwiTTE0NSA1LjdMMjI0IDMyIDMwMyA1LjdDMzE0LjMgMS45IDMyNiAwIDMzNy45IDAgMzk4LjcgMCA0NDggNDkuMyA0NDggMTEwLjFsMCA2OC41YzAgMjkuNC05LjUgNTguMS0yNy4yIDgxLjZsLTEuMSAxLjVjLTEyLjkgMTcuMi0yMS4zIDM3LjQtMjQuMyA1OC43TDM3My43IDQ3MS45Yy0zLjMgMjMtMjMgNDAuMS00Ni4yIDQwLjEtMjIuOCAwLTQyLjMtMTYuNS00Ni0zOUwyNjEuMyAzNTEuNmMtMy0xOC4yLTE4LjgtMzEuNi0zNy4zLTMxLjZzLTM0LjIgMTMuNC0zNy4zIDMxLjZMMTY2LjUgNDczYy0zLjggMjIuNS0yMy4yIDM5LTQ2IDM5LTIzLjIgMC00Mi45LTE3LjEtNDYuMi00MC4xTDUyLjYgMzIwLjVjLTMtMjEuMy0xMS40LTQxLjUtMjQuMy01OC43bC0xLjEtMS41QzkuNSAyMzYuNyAwIDIwOC4xIDAgMTc4LjdsMC02OC41QzAgNDkuMyA0OS4zIDAgMTEwLjEgMCAxMjIgMCAxMzMuNyAxLjkgMTQ1IDUuN3oiXX0sV3p0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImhvdXNlLWNoaW1uZXktd2luZG93IixpY29uOls1MTIsNTEyLFtdLCJlMDBkIiwiTTIzNC4yIDguNmMxMi4zLTExLjQgMzEuMy0xMS40IDQzLjUgMEwzNjggOTIuMyAzNjggODBjMC0xNy43IDE0LjMtMzIgMzItMzJsMzIgMGMxNy43IDAgMzIgMTQuMyAzMiAzMmwwIDEwMS41IDM3LjggMzUuMWM5LjYgOSAxMi44IDIyLjkgOCAzNS4xUzQ5My4yIDI3MiA0ODAgMjcybC0xNiAwIDAgMTc2YzAgMzUuMy0yOC43IDY0LTY0IDY0bC0yODggMGMtMzUuMyAwLTY0LTI4LjctNjQtNjRsMC0xNzYtMTYgMGMtMTMuMiAwLTI1LTguMS0yOS44LTIwLjNzLTEuNi0yNi4yIDgtMzUuMWwyMjQtMjA4ek0yMTYgMjI0Yy0xMy4zIDAtMjQgMTAuNy0yNCAyNGwwIDgwYzAgMTMuMyAxMC43IDI0IDI0IDI0bDgwIDBjMTMuMyAwIDI0LTEwLjcgMjQtMjRsMC04MGMwLTEzLjMtMTAuNy0yNC0yNC0yNGwtODAgMHoiXX0sR3p0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6Im1vdG9yY3ljbGUiLGljb246WzY0MCw1MTIsWzEyNzk0OV0sImYyMWMiLCJNMjgwIDE2Yy0xMy4zIDAtMjQgMTAuNy0yNCAyNHMxMC43IDI0IDI0IDI0bDU2LjYgMCAyMi41IDQ4LjctOTUuMSA3MS4zYy0zMy40LTI1LjEtNzUtNDAtMTIwLTQwbC01NiAwYy0xMy4zIDAtMjQgMTAuNy0yNCAyNHMxMC43IDI0IDI0IDI0bDU2IDBjNzguNSAwIDE0My4yIDU5LjYgMTUxLjIgMTM2bC0yNS40IDBjLTExLjItNTkuMi02My4zLTEwNC0xMjUuOC0xMDQtNzAuNyAwLTEyOCA1Ny4zLTEyOCAxMjhTNzMuMyA0ODAgMTQ0IDQ4MGM2Mi41IDAgMTE0LjUtNDQuOCAxMjUuOC0xMDRsNTAuMiAwYzEzLjMgMCAyNC0xMC43IDI0LTI0bDAtMjIuNWMwLTQ1LjEgMjUuNy04NS40IDY1LjUtMTA3LjdsMTIuMSAyNi4xYy0zMi40IDIzLjItNTMuNSA2MS4yLTUzLjUgMTA0LjEgMCA3MC43IDU3LjMgMTI4IDEyOCAxMjhzMTI4LTU3LjMgMTI4LTEyOC01Ny4zLTEyOC0xMjgtMTI4Yy0xMC43IDAtMjEgMS4zLTMwLjkgMy44TDQzMy44IDE2MCA0ODggMTYwYzEzLjMgMCAyNC0xMC43IDI0LTI0bDAtNDhjMC0xMy4zLTEwLjctMjQtMjQtMjRsLTUzLjMgMGMtNi45IDAtMTMuNyAyLjItMTkuMiA2LjRsLTE3LjEgMTIuOC0yNC42LTUzLjNDMzY5LjkgMjEuNCAzNjEuNCAxNiAzNTIgMTZsLTcyIDB6TTQ0NS44IDMwMC40bDI4LjQgNjEuNmM1LjYgMTIgMTkuOCAxNy4zIDMxLjggMTEuN3MxNy4zLTE5LjggMTEuNy0zMS44bC0yOC41LTYxLjZjMi4yLS4yIDQuNC0uMyA2LjctLjMgMzkuOCAwIDcyIDMyLjIgNzIgNzJzLTMyLjIgNzItNzIgNzItNzItMzIuMi03Mi03MmMwLTIwLjIgOC4zLTM4LjUgMjEuOC01MS42ek0xNDQgNDI0Yy0zOS44IDAtNzItMzIuMi03Mi03MnMzMi4yLTcyIDcyLTcyYzMxLjMgMCA1OCAyMCA2Ny45IDQ4TDE0NCAzMjhjLTEzLjMgMC0yNCAxMC43LTI0IDI0czEwLjcgMjQgMjQgMjRsNjcuOSAwYy05LjkgMjgtMzYuNiA0OC02Ny45IDQ4eiJdfSxiMGU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiYmFja3dhcmQtZmFzdCIsaWNvbjpbNTEyLDUxMixbOTE5OCwiZmFzdC1iYWNrd2FyZCJdLCJmMDQ5IiwiTTQ5Mi4yIDQ3Ny42Yy0xMiA1LTI1LjcgMi4yLTM0LjktNi45TDI4OCAzMDEuMyAyODggNDQ4YzAgMTIuOS03LjggMjQuNi0xOS44IDI5LjZzLTI1LjcgMi4yLTM0LjktNi45TDY0IDMwMS4zIDY0IDQ0OGMwIDE3LjctMTQuMyAzMi0zMiAzMlMwIDQ2NS43IDAgNDQ4TDAgNjRDMCA0Ni4zIDE0LjMgMzIgMzIgMzJTNjQgNDYuMyA2NCA2NEw2NCAyMTAuNyAyMzMuNCA0MS40YzkuMi05LjIgMjIuOS0xMS45IDM0LjktNi45UzI4OCA1MS4xIDI4OCA2NGwwIDE0Ni43IDE2OS40LTE2OS40YzkuMi05LjIgMjIuOS0xMS45IDM0LjktNi45UzUxMiA1MS4xIDUxMiA2NGwwIDM4NGMwIDEyLjktNy44IDI0LjYtMTkuOCAyOS42eiJdfSxZenQ9YjBlLHYwZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJhZGRyZXNzLWJvb2siLGljb246WzUxMiw1MTIsWzYyMTM4LCJjb250YWN0LWJvb2siXSwiZjJiOSIsIk05NiAwQzYwLjcgMCAzMiAyOC43IDMyIDY0bDAgMzg0YzAgMzUuMyAyOC43IDY0IDY0IDY0bDI4OCAwYzM1LjMgMCA2NC0yOC43IDY0LTY0bDAtMzg0YzAtMzUuMy0yOC43LTY0LTY0LTY0TDk2IDB6TTIwOCAyODhsNjQgMGM0NC4yIDAgODAgMzUuOCA4MCA4MCAwIDguOC03LjIgMTYtMTYgMTZsLTE5MiAwYy04LjggMC0xNi03LjItMTYtMTYgMC00NC4yIDM1LjgtODAgODAtODB6bS0yNC05NmE1NiA1NiAwIDEgMSAxMTIgMCA1NiA1NiAwIDEgMSAtMTEyIDB6TTUxMiA4MGMwLTguOC03LjItMTYtMTYtMTZzLTE2IDcuMi0xNiAxNmwwIDY0YzAgOC44IDcuMiAxNiAxNiAxNnMxNi03LjIgMTYtMTZsMC02NHptMCAxMjhjMC04LjgtNy4yLTE2LTE2LTE2cy0xNiA3LjItMTYgMTZsMCA2NGMwIDguOCA3LjIgMTYgMTYgMTZzMTYtNy4yIDE2LTE2bDAtNjR6TTQ5NiAzMjBjLTguOCAwLTE2IDcuMi0xNiAxNmwwIDY0YzAgOC44IDcuMiAxNiAxNiAxNnMxNi03LjIgMTYtMTZsMC02NGMwLTguOC03LjItMTYtMTYtMTZ6Il19LFp6dD12MGUsWHp0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InNhaWxib2F0IixpY29uOls1MTIsNTEyLFtdLCJlNDQ1IiwiTTI0MCAzNS45bDAgMzQ4LjEtMjI0IDBjLTguOCAwLTE2IDcuMi0xNiAxNiAwIDYxLjkgNTAuMSAxMTIgMTEyIDExMmwyODggMGM2MS45IDAgMTEyLTUwLjEgMTEyLTExMiAwLTguOC03LjItMTYtMTYtMTZsLTIwOCAwIDAtNDggMTYxLjcgMGMxMi45IDAgMjAuNS0xNC40IDEzLjItMjVMMjY5LjIgMjYuOWMtOC45LTEzLTI5LjItNi43LTI5LjIgOXpNMTkyIDMyMGwwLTE4NC4yYzAtMTYuMS0yMS0yMi4xLTI5LjYtOC41TDQ3LjMgMzExLjVjLTYuNyAxMC43IDEgMjQuNSAxMy42IDI0LjVMMTc2IDMzNmM4LjggMCAxNi03LjIgMTYtMTZ6Il19LFF6dD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJib29rLWJvb2ttYXJrIixpY29uOls0NDgsNTEyLFtdLCJlMGJiIiwiTTk2IDUxMmwzMjAgMGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMmwwLTY2LjdjMTguNi02LjYgMzItMjQuNCAzMi00NS4zbDAtMjg4YzAtMjYuNS0yMS41LTQ4LTQ4LTQ4bC00OCAwIDAgMTY5LjRjMCAxMi41LTEwLjEgMjIuNi0yMi42IDIyLjYtNiAwLTExLjgtMi40LTE2LTYuNkwyNzIgMTQ0IDIzMC42IDE4NS40Yy00LjIgNC4yLTEwIDYuNi0xNiA2LjYtMTIuNSAwLTIyLjYtMTAuMS0yMi42LTIyLjZMMTkyIDAgOTYgMEM0MyAwIDAgNDMgMCA5NkwwIDQxNmMwIDUzIDQzIDk2IDk2IDk2ek02NCA0MTZjMC0xNy43IDE0LjMtMzIgMzItMzJsMjU2IDAgMCA2NC0yNTYgMGMtMTcuNyAwLTMyLTE0LjMtMzItMzJ6Il19LEp6dD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJtYWduaWZ5aW5nLWdsYXNzLWFycm93LXJpZ2h0IixpY29uOls1MTIsNTEyLFtdLCJlNTIxIiwiTTQxNiAyMDhjMCA0NS45LTE0LjkgODguMy00MCAxMjIuN0w1MDIuNiA0NTcuNGMxMi41IDEyLjUgMTIuNSAzMi44IDAgNDUuM3MtMzIuOCAxMi41LTQ1LjMgMEwzMzAuNyAzNzZDMjk2LjMgNDAxLjEgMjUzLjkgNDE2IDIwOCA0MTYgOTMuMSA0MTYgMCAzMjIuOSAwIDIwOFM5My4xIDAgMjA4IDAgNDE2IDkzLjEgNDE2IDIwOHpNMzA1IDIyNWM5LjQtOS40IDkuNC0yNC42IDAtMzMuOWwtNzItNzJjLTkuNC05LjQtMjQuNi05LjQtMzMuOSAwcy05LjQgMjQuNiAwIDMzLjlsMzEgMzEtMTAyLjEgMGMtMTMuMyAwLTI0IDEwLjctMjQgMjRzMTAuNyAyNCAyNCAyNGwxMDIuMSAwLTMxIDMxYy05LjQgOS40LTkuNCAyNC42IDAgMzMuOXMyNC42IDkuNCAzMy45IDBsNzItNzJ6Il19LHgwZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJtaWNyb3Bob25lLWxpbmVzIixpY29uOlszODQsNTEyLFsxMjc4OTcsIm1pY3JvcGhvbmUtYWx0Il0sImYzYzkiLCJNOTYgOTZjMC01MyA0My05NiA5Ni05NiA1MC4zIDAgOTEuNiAzOC43IDk1LjcgODhMMjMyIDg4Yy0xMy4zIDAtMjQgMTAuNy0yNCAyNHMxMC43IDI0IDI0IDI0bDU2IDAgMCA0OC01NiAwYy0xMy4zIDAtMjQgMTAuNy0yNCAyNHMxMC43IDI0IDI0IDI0bDU1LjcgMGMtNC4xIDQ5LjMtNDUuMyA4OC05NS43IDg4LTUzIDAtOTYtNDMtOTYtOTZMOTYgOTZ6TTI0IDE2MGMxMy4zIDAgMjQgMTAuNyAyNCAyNGwwIDQwYzAgNzkuNSA2NC41IDE0NCAxNDQgMTQ0czE0NC02NC41IDE0NC0xNDRsMC00MGMwLTEzLjMgMTAuNy0yNCAyNC0yNHMyNCAxMC43IDI0IDI0bDAgNDBjMCA5Ny45LTczLjMgMTc4LjctMTY4IDE5MC41bDAgNDkuNSA0OCAwYzEzLjMgMCAyNCAxMC43IDI0IDI0cy0xMC43IDI0LTI0IDI0bC0xNDQgMGMtMTMuMyAwLTI0LTEwLjctMjQtMjRzMTAuNy0yNCAyNC0yNGw0OCAwIDAtNDkuNUM3My4zIDQwMi43IDAgMzIxLjkgMCAyMjRsMC00MGMwLTEzLjMgMTAuNy0yNCAyNC0yNHoiXX0sS3p0PXgwZSx5MGU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToicmVwbHktYWxsIixpY29uOls1NzYsNTEyLFsibWFpbC1yZXBseS1hbGwiXSwiZjEyMiIsIk0zMzIuMiAxOC40YzEyIDUgMTkuOCAxNi42IDE5LjggMjkuNmwwIDgwIDQ4IDBjOTcuMiAwIDE3NiA3OC44IDE3NiAxNzYgMCAxMTMuMy04MS41IDE2My45LTEwMC4yIDE3NC4xLTIuNSAxLjQtNS4zIDEuOS04LjEgMS45LTEwLjkgMC0xOS43LTguOS0xOS43LTE5LjcgMC03LjUgNC4zLTE0LjQgOS44LTE5LjUgOS40LTguOCAyMi4yLTI2LjQgMjIuMi01Ni43IDAtNTMtNDMtOTYtOTYtOTZsLTMyIDAgMCA4MGMwIDEyLjktNy44IDI0LjYtMTkuOCAyOS42cy0yNS43IDIuMi0zNC45LTYuOWwtMTYwLTE2MGMtMTIuNS0xMi41LTEyLjUtMzIuOCAwLTQ1LjNsMTYwLTE2MGM5LjItOS4yIDIyLjktMTEuOSAzNC45LTYuOXpNMjA1LjYgMjMuMWM5LjQgOS40IDkuNCAyNC42IDAgMzMuOUw1NC42IDIwOCAyMDUuNiAzNTguOWM5LjQgOS40IDkuNCAyNC42IDAgMzMuOXMtMjQuNiA5LjQtMzMuOSAwTDEwIDIzMS4yYy02LjQtNi0xMC0xNC40LTEwLTIzLjJzMy42LTE3LjIgMTAtMjMuMkwxNzEuNiAyMy4xYzkuNC05LjQgMjQuNi05LjQgMzMuOSAweiJdfSxlQ3Q9eTBlLHRDdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJ1bml2ZXJzYWwtYWNjZXNzIixpY29uOls1MTIsNTEyLFtdLCJmMjlhIiwiTTAgMjU2YTI1NiAyNTYgMCAxIDEgNTEyIDAgMjU2IDI1NiAwIDEgMSAtNTEyIDB6bTE2MS41LTg2LjFjLTEyLjItNS4yLTI2LjMgLjQtMzEuNSAxMi42cy40IDI2LjMgMTIuNiAzMS41bDExLjkgNS4xYzE3LjMgNy40IDM1LjIgMTIuOSA1My42IDE2LjNsMCA1MC4xYzAgNC4zLS43IDguNi0yLjEgMTIuNmwtMjguNyA4Ni4xYy00LjIgMTIuNiAyLjYgMjYuMiAxNS4yIDMwLjRzMjYuMi0yLjYgMzAuNC0xNS4ybDI0LjQtNzMuMmMxLjMtMy44IDQuOC02LjQgOC44LTYuNHM3LjYgMi42IDguOCA2LjRsMjQuNCA3My4yYzQuMiAxMi42IDE3LjggMTkuNCAzMC40IDE1LjJTMzM5IDM5NyAzMzQuOCAzODQuNGwtMjguNy04Ni4xYy0xLjQtNC4xLTIuMS04LjMtMi4xLTEyLjZsMC01MC4xYzE4LjQtMy41IDM2LjMtOC45IDUzLjYtMTYuM2wxMS45LTUuMWMxMi4yLTUuMiAxNy44LTE5LjMgMTIuNi0zMS41cy0xOS4zLTE3LjgtMzEuNS0xMi42TDMzOC43IDE3NWMtMjYuMSAxMS4yLTU0LjIgMTctODIuNyAxN3MtNTYuNS01LjgtODIuNy0xN2wtMTEuOS01LjF6TTI1NiAxNjBhNDAgNDAgMCAxIDAgMC04MCA0MCA0MCAwIDEgMCAwIDgweiJdfSx6RD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJ0b2lsZXQtcGFwZXIiLGljb246WzUxMiw1MTIsWzEyOTUzMSw2MzI2MywidG9pbGV0LXBhcGVyLWFsdCIsInRvaWxldC1wYXBlci1ibGFuayJdLCJmNzFlIiwiTTMyNy4xIDMyYy04LjggMTEuMS0xNiAyMy4xLTIxLjkgMzQuOC0yMS40IDQyLjctMzMuMiA5OC40LTMzLjIgMTU3LjJsMCAyNjRjMCAzMC45LTI1LjEgNTYtNTYgNTZMNTYgNTQ0Yy0zMC45IDAtNTYtMjUuMS01Ni01NkwwIDIyNEMwIDExOCA0MyAzMiA5NiAzMmwyMzEuMSAwek00MTYgNDE2Yy01MyAwLTk2LTg2LTk2LTE5MnM0My0xOTIgOTYtMTkyIDk2IDg2IDk2IDE5Mi00MyAxOTItOTYgMTkyem0wLTEyOGMxNy43IDAgMzItMjguNyAzMi02NHMtMTQuMy02NC0zMi02NC0zMiAyOC43LTMyIDY0IDE0LjMgNjQgMzIgNjR6Il19LHJDdD16RCxpQ3Q9ekQsYUN0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InZyLWNhcmRib2FyZCIsaWNvbjpbNTc2LDUxMixbXSwiZjcyOSIsIk01MTIgOTZMNjQgOTZDMjguNyA5NiAwIDEyNC43IDAgMTYwTDAgMzUyYzAgMzUuMyAyOC43IDY0IDY0IDY0bDExNy41IDBjMTcgMCAzMy4zLTYuNyA0NS4zLTE4LjdsMzMuOS0zMy45YzcuMi03LjIgMTcuMS0xMS4zIDI3LjMtMTEuM3MyMC4xIDQuMSAyNy4zIDExLjNsMzMuOSAzMy45YzEyIDEyIDI4LjMgMTguNyA0NS4zIDE4LjdMNTEyIDQxNmMzNS4zIDAgNjQtMjguNyA2NC02NGwwLTE5MmMwLTM1LjMtMjguNy02NC02NC02NHpNODAgMjQwYTY0IDY0IDAgMSAxIDEyOCAwIDY0IDY0IDAgMSAxIC0xMjggMHptMzUyLTY0YTY0IDY0IDAgMSAxIDAgMTI4IDY0IDY0IDAgMSAxIDAtMTI4eiJdfSxuQ3Q9e3ByZWZpeDoiZmFzIixpY29uTmFtZToicGl6emEtc2xpY2UiLGljb246WzUxMiw1MTIsW10sImY4MTgiLCJNMTY5LjcgLjljLTIyLjgtMS42LTQxLjkgMTQtNDcuNSAzNC43TDExMi41IDcyQzI5My4zIDcyLjMgNDM5LjcgMjE4LjcgNDQwIDM5OS41bDM2LjQtOS43YzIwLjgtNS41IDM2LjMtMjQuNyAzNC43LTQ3LjUtMTIuNi0xODIuOC0xNTguNi0zMjguOC0zNDEuNC0zNDEuNHptMjIyIDQxMS41Yy4yLTQuMSAuMy04LjIgLjMtMTIuNCAwLTE1NC42LTEyNS40LTI4MC0yODAtMjgwLTQuMSAwLTguMyAuMS0xMi40IC4zTC41IDQ5MS45Yy0xLjUgNS41IC4xIDExLjQgNC4xIDE1LjRzOS45IDUuNiAxNS40IDQuMWwzNzEuNi05OS4xek0xNzYgMjA4YTMyIDMyIDAgMSAxIDAgNjQgMzIgMzIgMCAxIDEgMC02NHptNjQgMTI4YTMyIDMyIDAgMSAxIDY0IDAgMzIgMzIgMCAxIDEgLTY0IDB6TTk2IDM4NGEzMiAzMiAwIDEgMSA2NCAwIDMyIDMyIDAgMSAxIC02NCAweiJdfSxvQ3Q9e3ByZWZpeDoiZmFzIixpY29uTmFtZToic3ByYXktY2FuIixpY29uOls1NzYsNTEyLFtdLCJmNWJkIiwiTTE5MiAwbDY0IDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJsMCA4MC0xMjggMCAwLTgwYzAtMTcuNyAxNC4zLTMyIDMyLTMyek02NCAyNTZjMC01MyA0My05NiA5Ni05NmwxMjggMGM1MyAwIDk2IDQzIDk2IDk2bDAgMjA4YzAgMjYuNS0yMS41IDQ4LTQ4IDQ4bC0yMjQgMGMtMjYuNSAwLTQ4LTIxLjUtNDgtNDhsMC0yMDh6bTI0MCA4MGE4MCA4MCAwIDEgMCAtMTYwIDAgODAgODAgMCAxIDAgMTYwIDB6TTMyMCA2NGEzMiAzMiAwIDEgMSA2NCAwIDMyIDMyIDAgMSAxIC02NCAwek00NDggMzJhMzIgMzIgMCAxIDEgMCA2NCAzMiAzMiAwIDEgMSAwLTY0em02NCAzMmEzMiAzMiAwIDEgMSA2NCAwIDMyIDMyIDAgMSAxIC02NCAwem0zMiA2NGEzMiAzMiAwIDEgMSAwIDY0IDMyIDMyIDAgMSAxIDAtNjR6TTUxMiAyNTZhMzIgMzIgMCAxIDEgNjQgMCAzMiAzMiAwIDEgMSAtNjQgMHpNNDQ4IDEyOGEzMiAzMiAwIDEgMSAwIDY0IDMyIDMyIDAgMSAxIDAtNjR6Il19LHcwZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJ2b2x1bWUtbG93IixpY29uOls0NDgsNTEyLFsxMjgyNjQsInZvbHVtZS1kb3duIl0sImYwMjciLCJNNDggMzUybDQ4IDAgMTM0LjEgMTE5LjJjNi40IDUuNyAxNC42IDguOCAyMy4xIDguOCAxOS4yIDAgMzQuOC0xNS42IDM0LjgtMzQuOGwwLTM3OC40YzAtMTkuMi0xNS42LTM0LjgtMzQuOC0zNC44LTguNSAwLTE2LjcgMy4xLTIzLjEgOC44TDk2IDE2MCA0OCAxNjBjLTI2LjUgMC00OCAyMS41LTQ4IDQ4bDAgOTZjMCAyNi41IDIxLjUgNDggNDggNDh6TTM4MC42IDE4MS41Yy0xMC4zLTguNC0yNS40LTYuOC0zMy44IDMuNXMtNi44IDI1LjQgMy41IDMzLjhDMzYxLjEgMjI3LjYgMzY4IDI0MSAzNjggMjU2cy02LjkgMjguNC0xNy43IDM3LjNjLTEwLjMgOC40LTExLjggMjMuNS0zLjUgMzMuOHMyMy41IDExLjggMzMuOCAzLjVDNDAyLjEgMzEyLjkgNDE2IDI4Ni4xIDQxNiAyNTZzLTEzLjktNTYuOS0zNS41LTc0LjV6Il19LHNDdD13MGUsbEN0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImNyb3NzIixpY29uOlszODQsNTEyLFsxMjgzMjcsMTAwMTNdLCJmNjU0IiwiTTE3NiAwYy0yNi41IDAtNDggMjEuNS00OCA0OGwwIDgwLTgwIDBjLTI2LjUgMC00OCAyMS41LTQ4IDQ4bDAgMzJjMCAyNi41IDIxLjUgNDggNDggNDhsODAgMCAwIDIwOGMwIDI2LjUgMjEuNSA0OCA0OCA0OGwzMiAwYzI2LjUgMCA0OC0yMS41IDQ4LTQ4bDAtMjA4IDgwIDBjMjYuNSAwIDQ4LTIxLjUgNDgtNDhsMC0zMmMwLTI2LjUtMjEuNS00OC00OC00OGwtODAgMCAwLTgwYzAtMjYuNS0yMS41LTQ4LTQ4LTQ4TDE3NiAweiJdfSxNMGU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToicGVyc29uIixpY29uOlszODQsNTEyLFsxMjk0ODUsIm1hbGUiXSwiZjE4MyIsIk0yNDggMjRhNTYgNTYgMCAxIDAgLTExMiAwIDU2IDU2IDAgMSAwIDExMiAwem0yNCAyMTIuN2w0Ni4zIDYyLjRjMTAuNSAxNC4yIDMwLjYgMTcuMiA0NC44IDYuNnMxNy4yLTMwLjYgNi42LTQ0LjhsLTcwLjUtOTVDMjc0IDEzMiAyMzQuMyAxMTIgMTkyIDExMnMtODIgMjAtMTA3LjIgNTMuOWwtNzAuNSA5NWMtMTAuNSAxNC4yLTcuNiAzNC4yIDYuNiA0NC44czM0LjIgNy42IDQ0LjgtNi42TDExMiAyMzYuNyAxMTIgNTEyYzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJsMC0xNjBjMC04LjggNy4yLTE2IDE2LTE2czE2IDcuMiAxNiAxNmwwIDE2MGMwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMybDAtMjc1LjN6Il19LGNDdD1NMGUsazBlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImhvdXJnbGFzcyIsaWNvbjpbMzg0LDUxMixbOTIwMyw2MjAzMiwiaG91cmdsYXNzLWVtcHR5Il0sImYyNTQiLCJNMCAzMkMwIDE0LjMgMTQuMyAwIDMyIDBMMzUyIDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJsMCAxMWMwIDQyLjQtMTYuOSA4My4xLTQ2LjkgMTEzLjFsLTY3LjkgNjcuOSA2Ny45IDY3LjljMzAgMzAgNDYuOSA3MC43IDQ2LjkgMTEzLjFsMCAxMWMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMkwzMiA1MTJjLTE3LjcgMC0zMi0xNC4zLTMyLTMyczE0LjMtMzIgMzItMzJsMC0xMWMwLTQyLjQgMTYuOS04My4xIDQ2LjktMTEzLjFsNjcuOS02Ny45LTY3LjktNjcuOUM0OC45IDE1OC4xIDMyIDExNy40IDMyIDc1bDAtMTFDMTQuMyA2NCAwIDQ5LjcgMCAzMnpNOTYgNjRsMCAxMWMwIDI1LjUgMTAuMSA0OS45IDI4LjEgNjcuOWw2Ny45IDY3LjkgNjcuOS02Ny45YzE4LTE4IDI4LjEtNDIuNCAyOC4xLTY3LjlsMC0xMS0xOTIgMHptMCAzODRsMTkyIDAgMC0xMWMwLTI1LjUtMTAuMS00OS45LTI4LjEtNjcuOWwtNjcuOS02Ny45LTY3LjkgNjcuOWMtMTggMTgtMjguMSA0Mi40LTI4LjEgNjcuOWwwIDExeiJdfSxkQ3Q9azBlLHVDdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJmaXNoIixpY29uOls1NzYsNTEyLFsxMjgwMzFdLCJmNTc4IiwiTTE4MC41IDE0MS41QzIxOS43IDEwOC41IDI3Mi42IDgwIDMzNiA4MHMxMTYuMyAyOC41IDE1NS41IDYxLjVjMzkuMSAzMyA2Ni45IDcyLjQgODEgOTkuOCA0LjcgOS4yIDQuNyAyMC4xIDAgMjkuMy0xNC4xIDI3LjQtNDEuOSA2Ni44LTgxIDk5LjgtMzkuMiAzMy4xLTkyIDYxLjUtMTU1LjUgNjEuNXMtMTE2LjMtMjguNS0xNTUuNS02MS41Yy0xNi4yLTEzLjctMzAuNS0yOC41LTQyLjctNDMuMUw0OC4xIDM3OS42Yy0xMi41IDcuMy0yOC40IDUuMy0zOC43LTQuOXMtMTIuNC0yNi01LjMtMzguNkw1MCAyNTYgNC4yIDE3NS45Yy03LjItMTIuNi01LTI4LjQgNS4zLTM4LjZzMjYuMS0xMi4yIDM4LjctNC45bDg5LjcgNTIuM2MxMi4yLTE0LjYgMjYuNS0yOS40IDQyLjctNDMuMXpNNDQ4IDI1NmEzMiAzMiAwIDEgMCAtNjQgMCAzMiAzMiAwIDEgMCA2NCAweiJdfSxwQ3Q9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZHJ1bXN0aWNrLWJpdGUiLGljb246WzUxMiw1MTIsW10sImY2ZDciLCJNMTYwIDI2NS4yYzAgOC41LTMuNCAxNi42LTkuNCAyMi42bC0yNi44IDI2LjhjLTEyLjMgMTIuMy0zMi41IDExLjQtNDkuNCA3LjItNC42LTEuMS05LjUtMS44LTE0LjUtMS44LTMzLjEgMC02MCAyNi45LTYwIDYwczI2LjkgNjAgNjAgNjBjNi4zIDAgMTIgNS43IDEyIDEyIDAgMzMuMSAyNi45IDYwIDYwIDYwczYwLTI2LjkgNjAtNjBjMC01LS42LTkuOC0xLjgtMTQuNS00LjItMTYuOS01LjItMzcuMSA3LjItNDkuNGwyNi44LTI2LjhjNi02IDE0LjEtOS40IDIyLjYtOS40bDg5LjIgMGM2LjMgMCAxMi40LS4zIDE4LjUtMSAxMS45LTEuMiAxNi40LTE1LjUgMTAuOC0yNi04LjUtMTUuOC0xMy4zLTMzLjgtMTMuMy01MyAwLTYxLjkgNTAuMS0xMTIgMTEyLTExMiA4IDAgMTUuNyAuOCAyMy4yIDIuNCAxMS43IDIuNSAyNC4xLTUuOSAyMi0xNy42LTE0LjctODIuMy04Ni43LTE0NC44LTE3My4yLTE0NC44LTk3LjIgMC0xNzYgNzguOC0xNzYgMTc2bDAgODkuMnoiXX0saEN0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImNoYXJ0LXNpbXBsZSIsaWNvbjpbNTEyLDUxMixbXSwiZTQ3MyIsIk0xOTIgODBjMC0yNi41IDIxLjUtNDggNDgtNDhsMzIgMGMyNi41IDAgNDggMjEuNSA0OCA0OGwwIDM1MmMwIDI2LjUtMjEuNSA0OC00OCA0OGwtMzIgMGMtMjYuNSAwLTQ4LTIxLjUtNDgtNDhsMC0zNTJ6TTAgMjcyYzAtMjYuNSAyMS41LTQ4IDQ4LTQ4bDMyIDBjMjYuNSAwIDQ4IDIxLjUgNDggNDhsMCAxNjBjMCAyNi41LTIxLjUgNDgtNDggNDhsLTMyIDBjLTI2LjUgMC00OC0yMS41LTQ4LTQ4TDAgMjcyek00MzIgOTZsMzIgMGMyNi41IDAgNDggMjEuNSA0OCA0OGwwIDI4OGMwIDI2LjUtMjEuNSA0OC00OCA0OGwtMzIgMGMtMjYuNSAwLTQ4LTIxLjUtNDgtNDhsMC0yODhjMC0yNi41IDIxLjUtNDggNDgtNDh6Il19LGZDdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJhdG9tIixpY29uOls0NDgsNTEyLFs5ODgzXSwiZjVkMiIsIk0yMjQgMzk4LjhjLTExLjggNS4xLTIzLjQgOS43LTM0LjkgMTMuNSAxNi43IDMzLjggMzEgMzUuNyAzNC45IDM1LjdzMTguMS0xLjkgMzQuOS0zNS43Yy0xMS40LTMuOS0yMy4xLTguNC0zNC45LTEzLjV6TTQxNCAyNTZjMzMgNDUuMiA0NC4zIDkwLjkgMjMuNiAxMjgtMjAuMiAzNi4zLTYyLjUgNDkuMy0xMTUuMiA0My4yLTIyIDUyLjEtNTUuNyA4NC44LTk4LjQgODQuOHMtNzYuNC0zMi43LTk4LjQtODQuOEM3Mi45IDQzMy4zIDMwLjYgNDIwLjMgMTAuNCAzODQtMTAuMyAzNDYuOSAxIDMwMS4yIDM0IDI1NiAxIDIxMC44LTEwLjMgMTY1LjEgMTAuNCAxMjggMzAuNiA5MS43IDcyLjkgNzguNyAxMjUuNiA4NC44IDE0Ny42IDMyLjcgMTgxLjIgMCAyMjQgMHM3Ni40IDMyLjcgOTguNCA4NC44YzUyLjctNi4xIDk1IDYuOCAxMTUuMiA0My4yIDIwLjcgMzcuMSA5LjQgODIuOC0yMy42IDEyOHptLTY1LjggNjcuNGMtMS43IDE0LjItMy45IDI4LTYuNyA0MS4yIDMxLjggMS40IDM4LjYtOC43IDQwLjItMTEuNyAyLjMtNC4yIDctMTcuOS0xMS45LTQ4LjEtNi44IDYuMy0xNCAxMi41LTIxLjYgMTguNnptLTYuNy0xNzUuOWMyLjggMTMuMSA1IDI2LjkgNi43IDQxLjIgNy42IDYuMSAxNC44IDEyLjMgMjEuNiAxOC42IDE4LjktMzAuMiAxNC4yLTQ0IDExLjktNDguMS0xLjYtMi45LTguNC0xMy00MC4yLTExLjd6TTI1OC45IDk5LjdDMjQyLjEgNjUuOSAyMjcuOSA2NCAyMjQgNjRzLTE4LjEgMS45LTM0LjkgMzUuN2MxMS40IDMuOSAyMy4xIDguNCAzNC45IDEzLjUgMTEuOC01LjEgMjMuNC05LjcgMzQuOS0xMy41em0tMTU5IDg4LjljMS43LTE0LjMgMy45LTI4IDYuNy00MS4yLTMxLjgtMS40LTM4LjYgOC43LTQwLjIgMTEuNy0yLjMgNC4yLTcgMTcuOSAxMS45IDQ4LjEgNi44LTYuMyAxNC0xMi41IDIxLjYtMTguNnpNNzguMiAzMDQuOGMtMTguOSAzMC4yLTE0LjIgNDQtMTEuOSA0OC4xIDEuNiAyLjkgOC40IDEzIDQwLjIgMTEuNy0yLjgtMTMuMS01LTI2LjktNi43LTQxLjItNy42LTYuMS0xNC44LTEyLjMtMjEuNi0xOC42ek0zMDQgMjU2YTgwIDgwIDAgMSAwIC0xNjAgMCA4MCA4MCAwIDEgMCAxNjAgMHptLTgwLTMyYTMyIDMyIDAgMSAxIDAgNjQgMzIgMzIgMCAxIDEgMC02NHoiXX0sbUN0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InAiLGljb246WzMyMCw1MTIsWzExMl0sIjUwIiwiTTAgNjRDMCA0Ni4zIDE0LjMgMzIgMzIgMzJsMTI4IDBjODguNCAwIDE2MCA3MS42IDE2MCAxNjBTMjQ4LjQgMzUyIDE2MCAzNTJsLTk2IDAgMCA5NmMwIDE3LjctMTQuMyAzMi0zMiAzMlMwIDQ2NS43IDAgNDQ4TDAgNjR6TTY0IDI4OGw5NiAwYzUzIDAgOTYtNDMgOTYtOTZzLTQzLTk2LTk2LTk2bC05NiAwIDAgMTkyeiJdfSxnQ3Q9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiamV0LWZpZ2h0ZXItdXAiLGljb246WzUxMiw1MTIsW10sImU1MTgiLCJNMjA2LjggNDcuOEMyMDIuMyA1OC41IDIwMCA3MCAyMDAgODEuNmwwIDEwMC40LTE1MiAxMTQgMC00OGMwLTEzLjMtMTAuNy0yNC0yNC0yNFMwIDIzNC43IDAgMjQ4TDAgMzkyYzAgMTMuMyAxMC43IDI0IDI0IDI0czI0LTEwLjcgMjQtMjRsMC04IDE1MiAwIDAgNTQuNC02NiA1Mi44Yy0zLjggMy02IDcuNi02IDEyLjVsMCAyNC4zYzAgOC44IDcuMiAxNiAxNiAxNmw4OCAwIDAtNDBjMC0xMy4zIDEwLjctMjQgMjQtMjRzMjQgMTAuNyAyNCAyNGwwIDQwIDg4IDBjOC44IDAgMTYtNy4yIDE2LTE2bDAtMjQuM2MwLTQuOS0yLjItOS41LTYtMTIuNWwtNjYtNTIuOCAwLTU0LjQgMTUyIDAgMCA4YzAgMTMuMyAxMC43IDI0IDI0IDI0czI0LTEwLjcgMjQtMjRsMC0xNDRjMC0xMy4zLTEwLjctMjQtMjQtMjRzLTI0IDEwLjctMjQgMjRsMCA0OC0xNTItMTE0IDAtMTAwLjRjMC0xMS42LTIuMy0yMy4xLTYuOC0zMy44bC0yNy4xLTY1QzI3NC40LTI2LjIgMjY1LjctMzIgMjU2LTMycy0xOC40IDUuOC0yMi4yIDE0LjhsLTI3LjEgNjV6Il19LGJDdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJwbHVnLWNpcmNsZS14bWFyayIsaWNvbjpbNjQwLDUxMixbXSwiZTU2MCIsIk0xOTItMzJjMTcuNyAwIDMyIDE0LjMgMzIgMzJsMCA5NiAxMjggMCAwLTk2YzAtMTcuNyAxNC4zLTMyIDMyLTMyczMyIDE0LjMgMzIgMzJsMCA5NiA2NCAwYzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMybDAgNDguN2MtOTguNiA4LjEtMTc2IDkwLjctMTc2IDE5MS4zIDAgMjcuMyA1LjcgNTMuMyAxNiA3Ni45bDAgMy4xYzAgMTcuNy0xNC4zIDMyLTMyIDMycy0zMi0xNC4zLTMyLTMybDAtNjYuN0MxNjUuMiAzOTguMSA5NiAzMTkuMSA5NiAyMjRsMC02NGMtMTcuNyAwLTMyLTE0LjMtMzItMzJTNzguMyA5NiA5NiA5Nmw2NCAwIDAtOTZjMC0xNy43IDE0LjMtMzIgMzItMzJ6TTQ5NiAyNTZhMTQ0IDE0NCAwIDEgMSAwIDI4OCAxNDQgMTQ0IDAgMSAxIDAtMjg4em01OS4zIDEwNy4zYzYuMi02LjIgNi4yLTE2LjQgMC0yMi42cy0xNi40LTYuMi0yMi42IDBsLTM2LjcgMzYuNy0zNi43LTM2LjdjLTYuMi02LjItMTYuNC02LjItMjIuNiAwcy02LjIgMTYuNCAwIDIyLjZsMzYuNyAzNi43LTM2LjcgMzYuN2MtNi4yIDYuMi02LjIgMTYuNCAwIDIyLjZzMTYuNCA2LjIgMjIuNiAwbDM2LjctMzYuNyAzNi43IDM2LjdjNi4yIDYuMiAxNi40IDYuMiAyMi42IDBzNi4yLTE2LjQgMC0yMi42bC0zNi43LTM2LjcgMzYuNy0zNi43eiJdfSx2Q3Q9e3ByZWZpeDoiZmFzIixpY29uTmFtZToic2hlZXQtcGxhc3RpYyIsaWNvbjpbMzg0LDUxMixbXSwiZTU3MSIsIk0wIDQ0OGMwIDM1LjMgMjguNyA2NCA2NCA2NGwxNDkuNSAwYzE3IDAgMzMuMy02LjcgNDUuMy0xOC43TDM2NS4zIDM4Ni43YzEyLTEyIDE4LjctMjguMyAxOC43LTQ1LjNMMzg0IDY0YzAtMzUuMy0yOC43LTY0LTY0LTY0TDY0IDBDMjguNyAwIDAgMjguNyAwIDY0TDAgNDQ4em0yMDggNS41bDAtOTMuNWMwLTEzLjMgMTAuNy0yNCAyNC0yNGw5My41IDAtMTE3LjUgMTE3LjV6TTE1MyAxMDVsLTQ4IDQ4Yy05LjQgOS40LTI0LjYgOS40LTMzLjkgMHMtOS40LTI0LjYgMC0zMy45bDQ4LTQ4YzkuNC05LjQgMjQuNi05LjQgMzMuOSAwczkuNCAyNC42IDAgMzMuOXptOTYgMzJMMTM3IDI0OWMtOS40IDkuNC0yNC42IDkuNC0zMy45IDBzLTkuNC0yNC42IDAtMzMuOUwyMTUgMTAzYzkuNC05LjQgMjQuNi05LjQgMzMuOSAwczkuNCAyNC42IDAgMzMuOXoiXX0seEN0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InYiLGljb246WzM4NCw1MTIsWzExOF0sIjU2IiwiTTE5LjcgMzQuNWMxNi4zLTYuOCAzNSAuOSA0MS44IDE3LjJMMTkyIDM2NC44IDMyMi41IDUxLjdjNi44LTE2LjMgMjUuNS0yNCA0MS44LTE3LjJzMjQgMjUuNSAxNy4yIDQxLjhsLTE2MCAzODRjLTUgMTEuOS0xNi42IDE5LjctMjkuNSAxOS43cy0yNC42LTcuOC0yOS41LTE5LjdMMi41IDc2LjNjLTYuOC0xNi4zIC45LTM1IDE3LjItNDEuOHoiXX0sUzBlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6Imxpc3QiLGljb246WzUxMiw1MTIsWyJsaXN0LXNxdWFyZXMiXSwiZjAzYSIsIk00MCA0OEMyNi43IDQ4IDE2IDU4LjcgMTYgNzJsMCA0OGMwIDEzLjMgMTAuNyAyNCAyNCAyNGw0OCAwYzEzLjMgMCAyNC0xMC43IDI0LTI0bDAtNDhjMC0xMy4zLTEwLjctMjQtMjQtMjRMNDAgNDh6TTE5MiA2NGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJzMTQuMyAzMiAzMiAzMmwyODggMGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMkwxOTIgNjR6bTAgMTYwYy0xNy43IDAtMzIgMTQuMy0zMiAzMnMxNC4zIDMyIDMyIDMybDI4OCAwYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMybC0yODggMHptMCAxNjBjLTE3LjcgMC0zMiAxNC4zLTMyIDMyczE0LjMgMzIgMzIgMzJsMjg4IDBjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJsLTI4OCAwek0xNiAyMzJsMCA0OGMwIDEzLjMgMTAuNyAyNCAyNCAyNGw0OCAwYzEzLjMgMCAyNC0xMC43IDI0LTI0bDAtNDhjMC0xMy4zLTEwLjctMjQtMjQtMjRsLTQ4IDBjLTEzLjMgMC0yNCAxMC43LTI0IDI0ek00MCAzNjhjLTEzLjMgMC0yNCAxMC43LTI0IDI0bDAgNDhjMCAxMy4zIDEwLjcgMjQgMjQgMjRsNDggMGMxMy4zIDAgMjQtMTAuNyAyNC0yNGwwLTQ4YzAtMTMuMy0xMC43LTI0LTI0LTI0bC00OCAweiJdfSx5Q3Q9UzBlLHdDdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJwaXNjZXMiLGljb246WzQ0OCw1MTIsW10sImU4NGMiLCJNNDAuNCAxMC40YzExLjktMTMgMzIuMi0xMy45IDQ1LjItMiAyLjkgMi43IDI4LjMgMjYuNyA1My42IDY3LjggMjIuMyAzNi4yIDQ1IDg2LjYgNTEuMSAxNDcuOGw2Ny4zIDBjNi4xLTYxLjEgMjguOC0xMTEuNiA1MS4xLTE0Ny44IDI1LjMtNDEuMSA1MC43LTY1LjEgNTMuNi02Ny44IDEzLTExLjkgMzMuMy0xMS4xIDQ1LjIgMiAxMS45IDEzIDExIDMzLjMtMiA0NS4yLTEuNCAxLjMtMjIgMjEuMS00Mi40IDU0LjItMTcuOSAyOS4xLTM1LjQgNjgtNDEuMiAxMTQuMmw5NCAwIDMuMyAuMmMxNi4xIDEuNiAyOC43IDE1LjMgMjguNyAzMS44cy0xMi42IDMwLjItMjguNyAzMS44bC0zLjMgLjItOTQgMGM1LjggNDYuMiAyMy4zIDg1LjEgNDEuMiAxMTQuMiAyMC40IDMzLjEgNDEgNTIuOSA0Mi40IDU0LjIgMTMgMTEuOSAxMy45IDMyLjIgMiA0NS4yLTExLjkgMTMtMzIuMiAxMy45LTQ1LjIgMi0yLjktMi43LTI4LjMtMjYuNy01My42LTY3LjgtMjIuMy0zNi4yLTQ1LTg2LjYtNTEuMS0xNDcuOGwtNjcuMyAwYy02LjEgNjEuMS0yOC44IDExMS42LTUxLjEgMTQ3LjgtMjUuMyA0MS4xLTUwLjcgNjUuMS01My42IDY3LjgtMTMgMTEuOS0zMy4zIDExLjEtNDUuMi0yLTExLjktMTMtMTEtMzMuMyAyLTQ1LjIgMS40LTEuMyAyMi0yMS4xIDQyLjQtNTQuMiAxNy45LTI5LjEgMzUuNC02OCA0MS4yLTExNC4ybC05NCAwYy0xNy43IDAtMzItMTQuMy0zMi0zMnMxNC4zLTMyIDMyLTMybDk0IDBjLTUuOC00Ni4yLTIzLjMtODUuMS00MS4yLTExNC4yLTIwLjQtMzMuMS00MS01Mi45LTQyLjQtNTQuMi0xMy0xMS45LTEzLjktMzIuMi0yLTQ1LjJ6Il19LE1DdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJzb2xhci1wYW5lbCIsaWNvbjpbNTc2LDUxMixbXSwiZjViYSIsIk0xMjEuOCAzMmMtMzAgMC01NiAyMC44LTYyLjUgNTAuMUw5LjYgMzA2LjFDLjcgMzQ2LjEgMzEuMSAzODQgNzIgMzg0bDE4NC4xIDAgMCA2NC02NCAwYy0xNy43IDAtMzIgMTQuMy0zMiAzMnMxNC4zIDMyIDMyIDMybDE5MiAwYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMybC02NCAwIDAtNjQgMTg0LjEgMGM0MC45IDAgNzEuNC0zNy45IDYyLjUtNzcuOWwtNDkuOC0yMjRDNTEwLjQgNTIuOCA0ODQuNSAzMiA0NTQuNSAzMkwxMjEuOCAzMnpNMjQ1LjYgOTZsODUuMiAwIDcuMyA4OC05OS44IDAgNy4zLTg4em0tNTUuNSA4OGwtODcuOCAwIDE5LjYtODggNzUuNiAwLTcuMyA4OHpNOTEuNiAyMzJsOTQuNSAwLTcuMyA4OC0xMDYuNyAwIDE5LjYtODh6bTE0Mi42IDBsMTA3LjggMCA3LjMgODgtMTIyLjUgMCA3LjMtODh6bTE1NiAwbDk0LjUgMCAxOS42IDg4LTEwNi43IDAtNy4zLTg4ek00NzQgMTg0bC04Ny44IDAtNy4zLTg4IDc1LjYgMCAxOS42IDg4eiJdfSxrQ3Q9e3ByZWZpeDoiZmFzIixpY29uTmFtZToibGFuZC1taW5lLW9uIixpY29uOls1NzYsNTEyLFtdLCJlNTFiIiwiTTMxMiAwbDAgMTI4YzAgMTMuMy0xMC43IDI0LTI0IDI0cy0yNC0xMC43LTI0LTI0TDI2NCAwYzAtMTMuMyAxMC43LTI0IDI0LTI0czI0IDEwLjcgMjQgMjR6TTE2MCAyODhjMC0xNy43IDE0LjMtMzIgMzItMzJsMTkyIDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJsMCAzMiA4MCAwYzI2LjUgMCA0OCAyMS41IDQ4IDQ4bDAgOTZjMCAyNi41LTIxLjUgNDgtNDggNDhMODAgNTEyYy0yNi41IDAtNDgtMjEuNS00OC00OGwwLTk2YzAtMjYuNSAyMS41LTQ4IDQ4LTQ4bDgwIDAgMC0zMnpNMTIgMTE0LjdjNy40LTExIDIyLjMtMTQgMzMuMy02LjdsOTYgNjRjMTEgNy40IDE0IDIyLjMgNi43IDMzLjNzLTIyLjMgMTQtMzMuMyA2LjdsLTk2LTY0Yy0xMS03LjQtMTQtMjIuMy02LjctMzMuM3pNNTMwLjcgMTA4YzExLTcuNCAyNS45LTQuNCAzMy4zIDYuN3M0LjQgMjUuOS02LjcgMzMuM2wtOTYgNjRjLTExIDcuNC0yNS45IDQuNC0zMy4zLTYuN3MtNC40LTI1LjkgNi43LTMzLjNsOTYtNjR6Il19LENEPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImhlYWRwaG9uZXMiLGljb246WzQ0OCw1MTIsWzEyNzkxMSw2Mjg2MywiaGVhZHBob25lcy1hbHQiLCJoZWFkcGhvbmVzLXNpbXBsZSJdLCJmMDI1IiwiTTY0IDIyNGMwLTg4LjQgNzEuNi0xNjAgMTYwLTE2MHMxNjAgNzEuNiAxNjAgMTYwbDAgMzcuNWMtMTAtMy41LTIwLjgtNS41LTMyLTUuNWwtMTYgMGMtMjYuNSAwLTQ4IDIxLjUtNDggNDhsMCAxMjhjMCAyNi41IDIxLjUgNDggNDggNDhsMTYgMGM1MyAwIDk2LTQzIDk2LTk2bDAtMTYwQzQ0OCAxMDAuMyAzNDcuNyAwIDIyNCAwUzAgMTAwLjMgMCAyMjRMMCAzODRjMCA1MyA0MyA5NiA5NiA5NmwxNiAwYzI2LjUgMCA0OC0yMS41IDQ4LTQ4bDAtMTI4YzAtMjYuNS0yMS41LTQ4LTQ4LTQ4bC0xNiAwYy0xMS4yIDAtMjIgMS45LTMyIDUuNUw2NCAyMjR6Il19LFNDdD1DRCx6Q3Q9Q0QsQ0N0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImJ1cyIsaWNvbjpbNDQ4LDUxMixbMTI4NjUzXSwiZjIwNyIsIk05NiAwQzQzIDAgMCA0MyAwIDk2TDAgMzg0YzAgMjkuOCAyMC40IDU0LjkgNDggNjJsMCAzNGMwIDE3LjcgMTQuMyAzMiAzMiAzMmwxNiAwYzE3LjcgMCAzMi0xNC4zIDMyLTMybDAtMzIgMTkyIDAgMCAzMmMwIDE3LjcgMTQuMyAzMiAzMiAzMmwxNiAwYzE3LjcgMCAzMi0xNC4zIDMyLTMybDAtMzRjMjcuNi03LjEgNDgtMzIuMiA0OC02MmwwLTI4OGMwLTUzLTQzLTk2LTk2LTk2TDk2IDB6TTY0IDE3NmMwLTE3LjcgMTQuMy0zMiAzMi0zMmwxMDQgMCAwIDExMi0xMDQgMGMtMTcuNyAwLTMyLTE0LjMtMzItMzJsMC00OHptMTg0IDgwbDAtMTEyIDEwNCAwYzE3LjcgMCAzMiAxNC4zIDMyIDMybDAgNDhjMCAxNy43LTE0LjMgMzItMzIgMzJsLTEwNCAwek05NiAzMjBhMzIgMzIgMCAxIDEgMCA2NCAzMiAzMiAwIDEgMSAwLTY0em0yNTYgMGEzMiAzMiAwIDEgMSAwIDY0IDMyIDMyIDAgMSAxIDAtNjR6TTE1MiA3MmMwLTEzLjMgMTAuNy0yNCAyNC0yNGw5NiAwYzEzLjMgMCAyNCAxMC43IDI0IDI0cy0xMC43IDI0LTI0IDI0bC05NiAwYy0xMy4zIDAtMjQtMTAuNy0yNC0yNHoiXX0sVEN0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImZpbGUtcG93ZXJwb2ludCIsaWNvbjpbMzg0LDUxMixbXSwiZjFjNCIsIk0wIDY0QzAgMjguNyAyOC43IDAgNjQgMEwyMTMuNSAwYzE3IDAgMzMuMyA2LjcgNDUuMyAxOC43TDM2NS4zIDEyNS4zYzEyIDEyIDE4LjcgMjguMyAxOC43IDQ1LjNMMzg0IDQ0OGMwIDM1LjMtMjguNyA2NC02NCA2NEw2NCA1MTJjLTM1LjMgMC02NC0yOC43LTY0LTY0TDAgNjR6bTIwOC01LjVsMCA5My41YzAgMTMuMyAxMC43IDI0IDI0IDI0TDMyNS41IDE3NiAyMDggNTguNXpNMTUyIDI1NmMtMTMuMyAwLTI0IDEwLjctMjQgMjRsMCAxNDRjMCAxMy4zIDEwLjcgMjQgMjQgMjRzMjQtMTAuNyAyNC0yNGwwLTI0IDI0IDBjMzkuOCAwIDcyLTMyLjIgNzItNzJzLTMyLjItNzItNzItNzJsLTQ4IDB6bTQ4IDk2bC0yNCAwIDAtNDggMjQgMGMxMy4zIDAgMjQgMTAuNyAyNCAyNHMtMTAuNyAyNC0yNCAyNHoiXX0sejBlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InF1b3RlLWxlZnQiLGljb246WzQ0OCw1MTIsWzgyMjAsInF1b3RlLWxlZnQtYWx0Il0sImYxMGQiLCJNMCAyMTZDMCAxNDkuNyA1My43IDk2IDEyMCA5Nmw4IDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJsLTggMGMtMzAuOSAwLTU2IDI1LjEtNTYgNTZsMCA4IDY0IDBjMzUuMyAwIDY0IDI4LjcgNjQgNjRsMCA2NGMwIDM1LjMtMjguNyA2NC02NCA2NGwtNjQgMGMtMzUuMyAwLTY0LTI4LjctNjQtNjRMMCAyMTZ6bTI1NiAwYzAtNjYuMyA1My43LTEyMCAxMjAtMTIwbDggMGMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMmwtOCAwYy0zMC45IDAtNTYgMjUuMS01NiA1NmwwIDggNjQgMGMzNS4zIDAgNjQgMjguNyA2NCA2NGwwIDY0YzAgMzUuMy0yOC43IDY0LTY0IDY0bC02NCAwYy0zNS4zIDAtNjQtMjguNy02NC02NGwwLTEzNnoiXX0sX0N0PXowZSxMQ3Q9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiY2hldnJvbi1kb3duIixpY29uOls0NDgsNTEyLFtdLCJmMDc4IiwiTTIwMS40IDQwNi42YzEyLjUgMTIuNSAzMi44IDEyLjUgNDUuMyAwbDE5Mi0xOTJjMTIuNS0xMi41IDEyLjUtMzIuOCAwLTQ1LjNzLTMyLjgtMTIuNS00NS4zIDBMMjI0IDMzOC43IDU0LjYgMTY5LjRjLTEyLjUtMTIuNS0zMi44LTEyLjUtNDUuMyAwcy0xMi41IDMyLjggMCA0NS4zbDE5MiAxOTJ6Il19LEMwZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJlYXJ0aC1hc2lhIixpY29uOls1MTIsNTEyLFsxMjc3NTksImdsb2JlLWFzaWEiXSwiZjU3ZSIsIk01MCAyODQuOGM0LjIgMi4xIDkgMy4yIDE0IDMuMmw1MC43IDBjOC41IDAgMTYuNiAzLjQgMjIuNiA5LjRsMTMuMyAxMy4zYzYgNiAxNC4xIDkuNCAyMi42IDkuNGwxOC43IDBjMTcuNyAwIDMyLTE0LjMgMzItMzJsMC00MGMwLTEzLjMgMTAuNy0yNCAyNC0yNHMyNC0xMC43IDI0LTI0bDAtNDIuN2MwLTguNSAzLjQtMTYuNiA5LjQtMjIuNmwxMy4zLTEzLjNjNi02IDkuNC0xNC4xIDkuNC0yMi42TDMwNCA1N2MwLTEuMi0uMS0yLjMtLjItMy41LTE1LjQtMy42LTMxLjQtNS41LTQ3LjgtNS41LTExNC45IDAtMjA4IDkzLjEtMjA4IDIwOCAwIDkuOCAuNyAxOS40IDIgMjguOHptNDAzLjMgMzcuM2MtMy4yLTEuNC02LjctMi4xLTEwLjUtMi4xTDQzMiAzMjBjLTguOCAwLTE2LTcuMi0xNi0xNnMtNy4yLTE2LTE2LTE2bC0zNC43IDBjLTguNSAwLTE2LjYgMy40LTIyLjYgOS40bC00NS4zIDQ1LjNjLTYgNi05LjQgMTQuMS05LjQgMjIuNmwwIDE4LjdjMCAxNy43IDE0LjMgMzIgMzIgMzJsMTguNyAwYzguNSAwIDE2LjYgMy40IDIyLjYgOS40IDIuMiAyLjIgNC43IDQuMSA3LjMgNS41IDM5LjMtMjUuNCA2OS41LTYzLjYgODQuNi0xMDguOHpNMCAyNTZhMjU2IDI1NiAwIDEgMSA1MTIgMCAyNTYgMjU2IDAgMSAxIC01MTIgMHpNMTI4IDM2OGMwIDguOCA3LjIgMTYgMTYgMTZsMzIgMGM4LjggMCAxNi03LjIgMTYtMTZzLTcuMi0xNi0xNi0xNmwtMzIgMGMtOC44IDAtMTYgNy4yLTE2IDE2ek0yNzIgMjU2Yy04LjggMC0xNiA3LjItMTYgMTZsMCAzMmMwIDguOCA3LjIgMTYgMTYgMTZzMTYtNy4yIDE2LTE2bDAtMzJjMC04LjgtNy4yLTE2LTE2LTE2em00OC0xMTJsMCAzMmMwIDguOCA3LjIgMTYgMTYgMTZzMTYtNy4yIDE2LTE2bDAtMzJjMC04LjgtNy4yLTE2LTE2LTE2cy0xNiA3LjItMTYgMTZ6Il19LEFDdD1DMGUsREN0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImNlbnQtc2lnbiIsaWNvbjpbMzg0LDUxMixbXSwiZTNmNSIsIk0yMDggMGMxNy43IDAgMzIgMTQuMyAzMiAzMmwwIDI1LjRjNDMuNiA1LjIgODMgMjQuNSAxMTMuMyA1My4xIDEyLjkgMTIuMSAxMy40IDMyLjQgMS4zIDQ1LjJzLTMyLjQgMTMuNC00NS4yIDEuM2MtMjQuNC0yMy01Ny4yLTM3LjEtOTMuMy0zNy4xLTc1LjEgMC0xMzYgNjAuOS0xMzYgMTM2czYwLjkgMTM2IDEzNiAxMzZjMzYuMiAwIDY5LTE0LjEgOTMuMy0zNy4xIDEyLjktMTIuMSAzMy4xLTExLjUgNDUuMiAxLjNzMTEuNSAzMy4xLTEuMyA0NS4yQzMyMyA0MzAuMSAyODMuNiA0NDkuNCAyNDAgNDU0LjZsMCAyNS40YzAgMTcuNy0xNC4zIDMyLTMyIDMycy0zMi0xNC4zLTMyLTMybDAtMjhDODQuNyA0MzMuNSAxNiAzNTIuOCAxNiAyNTZTODQuNyA3OC41IDE3NiA2MGwwLTI4YzAtMTcuNyAxNC4zLTMyIDMyLTMyeiJdfSxFQ3Q9e3ByZWZpeDoiZmFzIixpY29uTmFtZToic2hpZWxkLWNhdCIsaWNvbjpbNTEyLDUxMixbXSwiZTU3MiIsIk0yNjkuNCAyLjlDMjY1LjIgMSAyNjAuNyAwIDI1NiAwcy05LjIgMS0xMy40IDIuOUw1NC4zIDgyLjhjLTIyIDkuMy0zOC40IDMxLTM4LjMgNTcuMiAuNSA5OS4yIDQxLjMgMjgwLjcgMjEzLjYgMzYzLjIgMTYuNyA4IDM2LjEgOCA1Mi44IDAgMTcyLjQtODIuNSAyMTMuMi0yNjQgMjEzLjYtMzYzLjIgLjEtMjYuMi0xNi4zLTQ3LjktMzguMy01Ny4yTDI2OS40IDIuOXpNMTYwIDE1NC40YzAtNS44IDQuNy0xMC40IDEwLjQtMTAuNGwuMiAwYzMuNCAwIDYuNSAxLjYgOC41IDQuM2w0MCA1My4zYzMgNCA3LjggNi40IDEyLjggNi40bDQ4IDBjNSAwIDkuOC0yLjQgMTIuOC02LjRsNDAtNTMuM2MyLTIuNyA1LjItNC4zIDguNS00LjNsLjIgMGM1LjggMCAxMC40IDQuNyAxMC40IDEwLjRMMzUyIDI3MmMwIDUzLTQzIDk2LTk2IDk2cy05Ni00My05Ni05NmwwLTExNy42ek0yMTYgMjg4YTE2IDE2IDAgMSAwIDAtMzIgMTYgMTYgMCAxIDAgMCAzMnptOTYtMTZhMTYgMTYgMCAxIDAgLTMyIDAgMTYgMTYgMCAxIDAgMzIgMHoiXX0sJEN0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InNjaG9vbC1jaXJjbGUtY2hlY2siLGljb246WzY0MCw1MTIsW10sImU1NmIiLCJNNjQgMTI4Yy0zNS4zIDAtNjQgMjguNy02NCA2NEwwIDQ0OGMwIDM1LjMgMjguNyA2NCA2NCA2NGwyNzYgMGMtMTAuNS0xNC42LTE5LTMwLjctMjUuMS00OGwtOTAuOSAwIDAtODhjMC0yMi4xIDE3LjktNDAgNDAtNDBsNDggMGMxIDAgMS45IDAgMi45IC4xIDI2LjMtNzQuNiA5Ny41LTEyOC4xIDE4MS4xLTEyOC4xIDI4LjYgMCA1NS42IDYuMiA4MCAxNy40bDAtMzMuNGMwLTM1LjMtMjguNy02NC02NC02NGwtNjQgMC0xMjcuOS0xMTUuMWMtMTguMy0xNi40LTQ2LTE2LjQtNjQuMiAwTDEyOCAxMjggNjQgMTI4em02NCAyNDBjMCA4LjgtNy4yIDE2LTE2IDE2bC0zMiAwYy04LjggMC0xNi03LjItMTYtMTZsMC0zMmMwLTguOCA3LjItMTYgMTYtMTZsMzIgMGM4LjggMCAxNiA3LjIgMTYgMTZsMCAzMnpNMTEyIDI1NmwtMzIgMGMtOC44IDAtMTYtNy4yLTE2LTE2bDAtMzJjMC04LjggNy4yLTE2IDE2LTE2bDMyIDBjOC44IDAgMTYgNy4yIDE2IDE2bDAgMzJjMCA4LjgtNy4yIDE2LTE2IDE2ek0yODggMTI4YTY0IDY0IDAgMSAxIDAgMTI4IDY0IDY0IDAgMSAxIDAtMTI4ek02NDAgNDAwYTE0NCAxNDQgMCAxIDAgLTI4OCAwIDE0NCAxNDQgMCAxIDAgMjg4IDB6bS04Ni42LTYwLjljNy4xIDUuMiA4LjcgMTUuMiAzLjUgMjIuM2wtNjQgODhjLTIuOCAzLjgtNyA2LjItMTEuNyA2LjVzLTkuMy0xLjMtMTIuNi00LjZsLTQwLTQwYy02LjItNi4yLTYuMi0xNi40IDAtMjIuNnMxNi40LTYuMiAyMi42IDBsMjYuOCAyNi44IDUzLTcyLjljNS4yLTcuMSAxNS4yLTguNyAyMi40LTMuNXoiXX0sVDBlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6Im1hcnRpbmktZ2xhc3MiLGljb246WzUxMiw1MTIsWzEyNzg2NCwiZ2xhc3MtbWFydGluaS1hbHQiXSwiZjU3YiIsIk0yLjQgNTEuOEM3LjQgMzkuOCAxOS4xIDMyIDMyIDMybDQ0OCAwYzEyLjkgMCAyNC42IDcuOCAyOS42IDE5LjhzMi4yIDI1LjctNi45IDM0LjlMMjg4IDMwMS4zIDI4OCA0NDggMzUyIDQ0OGMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMmwtMTkyIDBjLTE3LjcgMC0zMi0xNC4zLTMyLTMyczE0LjMtMzIgMzItMzJsNjQgMCAwLTE0Ni43LTIxNC42LTIxNC42Qy4yIDc3LjUtMi41IDYzLjcgMi40IDUxLjh6TTM1NC43IDE0NGw0OC00OC0yOTMuNSAwIDQ4IDQ4IDE5Ny41IDB6Il19LElDdD1UMGUsUEN0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InBsdWciLGljb246WzQ0OCw1MTIsWzEyODI2OF0sImYxZTYiLCJNMTI4LTMyYzE3LjcgMCAzMiAxNC4zIDMyIDMybDAgOTYgMTI4IDAgMC05NmMwLTE3LjcgMTQuMy0zMiAzMi0zMnMzMiAxNC4zIDMyIDMybDAgOTYgNjQgMGMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMmwwIDY0YzAgOTUuMS02OS4yIDE3NC4xLTE2MCAxODkuM2wwIDY2LjdjMCAxNy43LTE0LjMgMzItMzIgMzJzLTMyLTE0LjMtMzItMzJsMC02Ni43QzEwMS4yIDM5OC4xIDMyIDMxOS4xIDMyIDIyNGwwLTY0Yy0xNy43IDAtMzItMTQuMy0zMi0zMlMxNC4zIDk2IDMyIDk2bDY0IDAgMC05NmMwLTE3LjcgMTQuMy0zMiAzMi0zMnoiXX0sTkN0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InBhbm9yYW1hIixpY29uOls1NzYsNTEyLFtdLCJlMjA5IiwiTTQzLjkgNDhDMTkuNyA0OCAwIDY3LjcgMCA5MS45TDAgNDIwLjFjMCAyNC4zIDE5LjcgNDMuOSA0My45IDQzLjkgNS41IDAgMTAuNy0xIDE1LjctMi45IDEyLjktNC45IDEwMy40LTM3LjEgMjI4LjQtMzcuMXMyMTUuNSAzMi4zIDIyOC40IDM3LjFjNSAxLjkgMTAuMiAyLjkgMTUuNyAyLjkgMjQuMyAwIDQzLjktMTkuNyA0My45LTQzLjlsMC0zMjguMmMwLTI0LjMtMTkuNy00My45LTQzLjktNDMuOS01LjUgMC0xMC43IDEtMTUuNyAyLjktMTIuOSA0LjktMTAzLjQgMzcuMS0yMjguNCAzNy4xUzcyLjUgNTUuNyA1OS42IDUwLjlDNTQuNiA0OSA0OS40IDQ4IDQzLjkgNDh6TTcyIDE3NmE0MCA0MCAwIDEgMSA4MCAwIDQwIDQwIDAgMSAxIC04MCAwem0yNjQuMS0xNmM3LjUgMCAxNC42IDMuNiAxOS4xIDkuNkw0NzkuNyAzMzYuMmM1LjkgNy45IDYuNCAxOC41IDEuMyAyNi45cy0xNC44IDEyLjgtMjQuNSAxMS4xYy00NS44LTcuOC0xMDMuMy0xNC4yLTE2OC40LTE0LjItNjUuNiAwLTEyMy40IDYuNS0xNjkuMyAxNC40LTkuOCAxLjctMTkuNy0yLjktMjQuNy0xMS41cy00LjMtMTkuNCAxLjktMjcuMkwxNjUuMyAyNDljNC42LTUuNyAxMS41LTkgMTguNy05czE0LjIgMy4zIDE4LjcgOWwyNy41IDM0LjQgODYuNy0xMTMuOWM0LjYtNiAxMS43LTkuNSAxOS4yLTkuNXoiXX0sS2c9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiY2xvY2stcm90YXRlLWxlZnQiLGljb246WzU3Niw1MTIsWyJoaXN0b3J5Il0sImYxZGEiLCJNMjg4IDY0YzEwNiAwIDE5MiA4NiAxOTIgMTkyUzM5NCA0NDggMjg4IDQ0OGMtNjUuMiAwLTEyMi45LTMyLjUtMTU3LjYtODIuMy0xMC4xLTE0LjUtMzAuMS0xOC00NC42LTcuOXMtMTggMzAuMS03LjkgNDQuNkMxMjQuMSA0NjguNiAyMDEgNTEyIDI4OCA1MTIgNDI5LjQgNTEyIDU0NCAzOTcuNCA1NDQgMjU2UzQyOS40IDAgMjg4IDBDMjAyLjMgMCAxMjYuNSA0Mi4xIDgwIDEwNi43TDgwIDgwYzAtMTcuNy0xNC4zLTMyLTMyLTMyUzE2IDYyLjMgMTYgODBsMCAxMTJjMCAxNy43IDE0LjMgMzIgMzIgMzJsMjQuNiAwYy41IDAgMSAwIDEuNSAwbDg2IDBjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJsLTM4LjMgMEMxNTQuOSAxMDIuNiAyMTcgNjQgMjg4IDY0em0yNCA4OGMwLTEzLjMtMTAuNy0yNC0yNC0yNHMtMjQgMTAuNy0yNCAyNGwwIDEwNGMwIDYuNCAyLjUgMTIuNSA3IDE3bDcyIDcyYzkuNCA5LjQgMjQuNiA5LjQgMzMuOSAwczkuNC0yNC42IDAtMzMuOWwtNjUtNjUgMC05NC4xeiJdfSxGQ3Q9S2csT0N0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6Imphci13aGVhdCIsaWNvbjpbMzIwLDUxMixbXSwiZTUxNyIsIk0zMi04YzAtMTMuMyAxMC43LTI0IDI0LTI0bDIwOCAwYzEzLjMgMCAyNCAxMC43IDI0IDI0cy0xMC43IDI0LTI0IDI0TDU2IDE2QzQyLjcgMTYgMzIgNS4zIDMyLTh6TTAgMTI4QzAgOTIuNyAyOC43IDY0IDY0IDY0bDE5MiAwYzM1LjMgMCA2NCAyOC43IDY0IDY0bDAgMzIwYzAgMzUuMy0yOC43IDY0LTY0IDY0TDY0IDUxMmMtMzUuMyAwLTY0LTI4LjctNjQtNjRMMCAxMjh6bTExMiAzMmwtNDIuMiAwYy0zLjIgMC01LjggMi42LTUuOCA1LjggMCAzMi4xIDI2IDU4LjIgNTguMiA1OC4ybDc1LjYgMGMzMi4xIDAgNTguMi0yNiA1OC4yLTU4LjIgMC0zLjItMi42LTUuOC01LjgtNS44TDIwOCAxNjBjLTE5LjEgMC0zNi4zIDguNC00OCAyMS43LTExLjctMTMuMy0yOC45LTIxLjctNDgtMjEuN3ptNDggMTE3LjdjLTExLjctMTMuMy0yOC45LTIxLjctNDgtMjEuN2wtNDIuMiAwYy0zLjIgMC01LjggMi42LTUuOCA1LjggMCAzMi4xIDI2IDU4LjIgNTguMiA1OC4ybDc1LjYgMGMzMi4xIDAgNTguMi0yNiA1OC4yLTU4LjIgMC0zLjItMi42LTUuOC01LjgtNS44TDIwOCAyNTZjLTE5LjEgMC0zNi4zIDguNC00OCAyMS43ek0xMTIgMzUybC00Mi4yIDBjLTMuMiAwLTUuOCAyLjYtNS44IDUuOCAwIDMyLjEgMjYgNTguMiA1OC4yIDU4LjJsMjEuOCAwIDAgMzJjMCA4LjggNy4yIDE2IDE2IDE2czE2LTcuMiAxNi0xNmwwLTMyIDIxLjggMGMzMi4xIDAgNTguMi0yNiA1OC4yLTU4LjIgMC0zLjItMi42LTUuOC01LjgtNS44TDIwOCAzNTJjLTE5LjEgMC0zNi4zIDguNC00OCAyMS43LTExLjctMTMuMy0yOC45LTIxLjctNDgtMjEuN3oiXX0sVEQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiY2xvdWQtYXJyb3ctZG93biIsaWNvbjpbNTc2LDUxMixbNjIzMzcsImNsb3VkLWRvd25sb2FkIiwiY2xvdWQtZG93bmxvYWQtYWx0Il0sImYwZWQiLCJNMTQ0IDQ4MGMtNzkuNSAwLTE0NC02NC41LTE0NC0xNDQgMC02My40IDQxLTExNy4yIDk3LjktMTM2LjUtMS4zLTcuNy0xLjktMTUuNS0xLjktMjMuNSAwLTc5LjUgNjQuNS0xNDQgMTQ0LTE0NCA1NS40IDAgMTAzLjUgMzEuMyAxMjcuNiA3Ny4xIDE0LjItOC4zIDMwLjgtMTMuMSA0OC40LTEzLjEgNTMgMCA5NiA0MyA5NiA5NiAwIDE1LjctMy44IDMwLjYtMTAuNSA0My43IDQ0IDIwLjMgNzQuNSA2NC43IDc0LjUgMTE2LjMgMCA3MC43LTU3LjMgMTI4LTEyOCAxMjhsLTMwNCAwek0zNzcgMzEzYzkuNC05LjQgOS40LTI0LjYgMC0zMy45cy0yNC42LTkuNC0zMy45IDBsLTMxIDMxIDAtMTAyLjFjMC0xMy4zLTEwLjctMjQtMjQtMjRzLTI0IDEwLjctMjQgMjRsMCAxMDIuMS0zMS0zMWMtOS40LTkuNC0yNC42LTkuNC0zMy45IDBzLTkuNCAyNC42IDAgMzMuOWw3MiA3MmM5LjQgOS40IDI0LjYgOS40IDMzLjkgMGw3Mi03MnoiXX0sUkN0PVRELEJDdD1URCxfMGU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToidHJ1Y2stcmFtcC1ib3giLGljb246WzU3Niw1MTIsWyJ0cnVjay1sb2FkaW5nIl0sImY0ZGUiLCJNNDAwIDMyYy00NC4yIDAtODAgMzUuOC04MCA4MGwwIDI0OC4yLTI5Ny4yIDg5LjJDNS45IDQ1NC40LTMuNyA0NzIuMyAxLjQgNDg5LjJzMjIuOSAyNi41IDM5LjggMjEuNWwzMTUuNS05NC42IDQzLjcgMGMtLjIgMi42LS40IDUuMy0uNCA4IDAgNDguNiAzOS40IDg4IDg4IDg4czg4LTM5LjQgODgtODhsMC0zOTItMTc2IDB6TTUyOCA0MjRjMCAyMi4xLTE3LjkgNDAtNDAgNDBzLTQwLTE3LjktNDAtNDAgMTcuOS00MCA0MC00MGMyMi4xIDAgMzkuOSAxNy45IDQwIDM5LjlsMCAuMXpNNTEuOSAxNDkuNUMxOC4xIDE1OS44LS45IDE5NS42IDkuNCAyMjkuNGwyOC4xIDkxLjhDNDcuOCAzNTUgODMuNiAzNzQgMTE3LjQgMzYzLjdsOTEuOC0yOC4xYzMzLjgtMTAuMyA1Mi44LTQ2LjEgNDIuNS03OS45bC0yOC4xLTkxLjhjLTEwLjMtMzMuOC00Ni4xLTUyLjgtNzkuOS00Mi41TDUxLjkgMTQ5LjV6Il19LEhDdD1fMGUscUN0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImFuZ2xlLWRvd24iLGljb246WzM4NCw1MTIsWzg5NjRdLCJmMTA3IiwiTTE2OS40IDM3NC42YzEyLjUgMTIuNSAzMi44IDEyLjUgNDUuMyAwbDE2MC0xNjBjMTIuNS0xMi41IDEyLjUtMzIuOCAwLTQ1LjNzLTMyLjgtMTIuNS00NS4zIDBMMTkyIDMwNi43IDU0LjYgMTY5LjRjLTEyLjUtMTIuNS0zMi44LTEyLjUtNDUuMyAwcy0xMi41IDMyLjggMCA0NS4zbDE2MCAxNjB6Il19LGpDdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJwbHVnLWNpcmNsZS1jaGVjayIsaWNvbjpbNjQwLDUxMixbXSwiZTU1YyIsIk0xOTItMzJjMTcuNyAwIDMyIDE0LjMgMzIgMzJsMCA5NiAxMjggMCAwLTk2YzAtMTcuNyAxNC4zLTMyIDMyLTMyczMyIDE0LjMgMzIgMzJsMCA5NiA2NCAwYzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMybDAgNDguN2MtOTguNiA4LjEtMTc2IDkwLjctMTc2IDE5MS4zIDAgMjcuMyA1LjcgNTMuMyAxNiA3Ni45bDAgMy4xYzAgMTcuNy0xNC4zIDMyLTMyIDMycy0zMi0xNC4zLTMyLTMybDAtNjYuN0MxNjUuMiAzOTguMSA5NiAzMTkuMSA5NiAyMjRsMC02NGMtMTcuNyAwLTMyLTE0LjMtMzItMzJTNzguMyA5NiA5NiA5Nmw2NCAwIDAtOTZjMC0xNy43IDE0LjMtMzIgMzItMzJ6TTM1MiA0MDBhMTQ0IDE0NCAwIDEgMSAyODggMCAxNDQgMTQ0IDAgMSAxIC0yODggMHptMjAxLjQtNjAuOWMtNy4xLTUuMi0xNy4yLTMuNi0yMi40IDMuNWwtNTMgNzIuOS0yNi44LTI2LjhjLTYuMi02LjItMTYuNC02LjItMjIuNiAwcy02LjIgMTYuNCAwIDIyLjZsNDAgNDBjMy4zIDMuMyA3LjkgNSAxMi42IDQuNnM4LjktMi44IDExLjctNi41bDY0LTg4YzUuMi03LjEgMy42LTE3LjItMy41LTIyLjN6Il19LFZDdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJ3aW5kb3ctbWF4aW1pemUiLGljb246WzUxMiw1MTIsWzEyODQ3MF0sImYyZDAiLCJNNjQgNjRDMjguNyA2NCAwIDkyLjcgMCAxMjhMMCAzODRjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMzg0IDBjMzUuMyAwIDY0LTI4LjcgNjQtNjRsMC0yNTZjMC0zNS4zLTI4LjctNjQtNjQtNjRMNjQgNjR6bTI0IDY0bDMzNiAwYzEzLjMgMCAyNCAxMC43IDI0IDI0cy0xMC43IDI0LTI0IDI0TDg4IDE3NmMtMTMuMyAwLTI0LTEwLjctMjQtMjRzMTAuNy0yNCAyNC0yNHoiXX0sVUN0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImhhbmRzLWhvbGRpbmctY2lyY2xlIixpY29uOls2NDAsNTEyLFtdLCJlNGZiIiwiTTMyMCAwYTEyOCAxMjggMCAxIDEgMCAyNTYgMTI4IDEyOCAwIDEgMSAwLTI1NnpNNDAgNjRjMjIuMSAwIDQwIDE3LjkgNDAgNDBsMCAxNjAuMmMwIDE3IDYuNyAzMy4zIDE4LjcgNDUuM2w1MS4xIDUxLjFjOC4zIDguMyAyMS4zIDkuNiAzMSAzLjEgMTIuOS04LjYgMTQuNy0yNi45IDMuNy0zNy44LTcuMy03LjMtMjMuMS0yMy4xLTQ3LjItNDcuMi0xMi41LTEyLjUtMTIuNS0zMi44IDAtNDUuM3MzMi44LTEyLjUgNDUuMyAwYzI0LjEgMjQuMSAzOS45IDM5LjkgNDcuMiA0Ny4ybDAgMCAyNS4zIDI1LjNjMjEgMjEgMzIuOCA0OS41IDMyLjggNzkuMmwwIDc4LjljMCAyNi41LTIxLjUgNDgtNDggNDhsLTY2LjcgMGMtMTcgMC0zMy4zLTYuNy00NS4zLTE4LjdMMjguMSAzOTMuNEMxMC4xIDM3NS40IDAgMzUxIDAgMzI1LjVMMCAxMDRDMCA4MS45IDE3LjkgNjQgNDAgNjR6bTU2MCAwYzIyLjEgMCA0MCAxNy45IDQwIDQwbDAgMjIxLjVjMCAyNS41LTEwLjEgNDkuOS0yOC4xIDY3LjlMNTEyIDQ5My4zYy0xMiAxMi0yOC4zIDE4LjctNDUuMyAxOC43TDQwMCA1MTJjLTI2LjUgMC00OC0yMS41LTQ4LTQ4bDAtNzguOWMwLTI5LjcgMTEuOC01OC4yIDMyLjgtNzkuMmwyNS4zLTI1LjMgMCAwYzcuMy03LjMgMjMuMS0yMy4xIDQ3LjItNDcuMiAxMi41LTEyLjUgMzIuOC0xMi41IDQ1LjMgMHMxMi41IDMyLjggMCA0NS4zYy0yNC4xIDI0LjEtMzkuOSAzOS45LTQ3LjIgNDcuMi0xMSAxMS05LjIgMjkuMiAzLjcgMzcuOCA5LjcgNi41IDIyLjcgNS4yIDMxLTMuMWw1MS4xLTUxLjFjMTItMTIgMTguNy0yOC4zIDE4LjctNDUuM0w1NjAgMTA0YzAtMjIuMSAxNy45LTQwIDQwLTQweiJdfSxMMGU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToibG9jYXRpb24tcGluIixpY29uOlszODQsNTEyLFsibWFwLW1hcmtlciJdLCJmMDQxIiwiTTE5MiAwQzg2IDAgMCA4NC40IDAgMTg4LjYgMCAzMDcuOSAxMjAuMiA0NTAuOSAxNzAuNCA1MDUuNCAxODIuMiA1MTguMiAyMDEuOCA1MTguMiAyMTMuNiA1MDUuNCAyNjMuOCA0NTAuOSAzODQgMzA3LjkgMzg0IDE4OC42IDM4NCA4NC40IDI5OCAwIDE5MiAweiJdfSxXQ3Q9TDBlLEdDdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJib3dsaW5nLWJhbGwiLGljb246WzUxMiw1MTIsW10sImY0MzYiLCJNMjU2IDUxMmEyNTYgMjU2IDAgMSAwIDAtNTEyIDI1NiAyNTYgMCAxIDAgMCA1MTJ6TTI0MCA4MGEzMiAzMiAwIDEgMSAwIDY0IDMyIDMyIDAgMSAxIDAtNjR6TTIwOCAyMDhhMzIgMzIgMCAxIDEgNjQgMCAzMiAzMiAwIDEgMSAtNjQgMHptLTY0LTY0YTMyIDMyIDAgMSAxIDAgNjQgMzIgMzIgMCAxIDEgMC02NHoiXX0sQTBlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImNhcnQtZmxhdGJlZCIsaWNvbjpbNTc2LDUxMixbImRvbGx5LWZsYXRiZWQiXSwiZjQ3NCIsIk0zMiAwQzE0LjMgMCAwIDE0LjMgMCAzMlMxNC4zIDY0IDMyIDY0bDE2IDBjOC44IDAgMTYgNy4yIDE2IDE2bDAgMjg4YzAgMzkuOCAyOS4xIDcyLjggNjcuMSA3OS0yIDUuMy0zLjEgMTEtMy4xIDE3IDAgMjYuNSAyMS41IDQ4IDQ4IDQ4czQ4LTIxLjUgNDgtNDhjMC01LjYtMS0xMS0yLjctMTZsMTk3LjUgMGMtMS44IDUtMi43IDEwLjQtMi43IDE2IDAgMjYuNSAyMS41IDQ4IDQ4IDQ4czQ4LTIxLjUgNDgtNDhjMC01LjYtMS0xMS0yLjctMTZsMzQuNyAwYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMybC00MDAgMGMtOC44IDAtMTYtNy4yLTE2LTE2bDAtMjg4QzEyOCAzNS44IDkyLjIgMCA0OCAwTDMyIDB6TTIyNCA2NGMtMjYuNSAwLTQ4IDIxLjUtNDggNDhsMCAxNzZjMCAyNi41IDIxLjUgNDggNDggNDhsMjQwIDBjMjYuNSAwIDQ4LTIxLjUgNDgtNDhsMC0xNzZjMC0yNi41LTIxLjUtNDgtNDgtNDhMMjI0IDY0eiJdfSxZQ3Q9QTBlLEQwZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJob3VzZS11c2VyIixpY29uOls1MTIsNTEyLFsiaG9tZS11c2VyIl0sImUxYjAiLCJNMjc3LjggOC42Yy0xMi4zLTExLjQtMzEuMy0xMS40LTQzLjUgMGwtMjI0IDIwOGMtOS42IDktMTIuOCAyMi45LTggMzUuMVMxOC44IDI3MiAzMiAyNzJsMTYgMCAwIDE3NmMwIDM1LjMgMjguNyA2NCA2NCA2NGwyODggMGMzNS4zIDAgNjQtMjguNyA2NC02NGwwLTE3NiAxNiAwYzEzLjIgMCAyNS04LjEgMjkuOC0yMC4zczEuNi0yNi4yLTgtMzUuMWwtMjI0LTIwOHpNMjAwIDI1NmE1NiA1NiAwIDEgMSAxMTIgMCA1NiA1NiAwIDEgMSAtMTEyIDB6TTE0NCA0MzJjMC00NC4yIDM1LjgtODAgODAtODBsNjQgMGM0NC4yIDAgODAgMzUuOCA4MCA4MCAwIDguOC03LjIgMTYtMTYgMTZsLTE5MiAwYy04LjggMC0xNi03LjItMTYtMTZ6Il19LFpDdD1EMGUsWEN0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6Imdob3N0IixpY29uOlszODQsNTEyLFsxMjgxMjNdLCJmNmUyIiwiTTQwLjEgNDY3LjFsLTExLjIgOUMyNS43IDQ3OC42IDIxLjggNDgwIDE3LjggNDgwIDggNDgwIDAgNDcyIDAgNDYyLjJMMCAxOTJDMCA4NiA4NiAwIDE5MiAwUzM4NCA4NiAzODQgMTkybDAgMjcwLjJjMCA5LjgtOCAxNy44LTE3LjggMTcuOC00IDAtNy45LTEuNC0xMS4xLTMuOWwtMTEuMi05Yy0xMy40LTEwLjctMzIuOC05LTQ0LjEgMy45TDI2OS4zIDUwNmMtMy4zIDMuOC04LjIgNi0xMy4zIDZzLTkuOS0yLjItMTMuMy02bC0yNi42LTMwLjVjLTEyLjctMTQuNi0zNS40LTE0LjYtNDguMiAwTDE0MS4zIDUwNmMtMy4zIDMuOC04LjIgNi0xMy4zIDZzLTkuOS0yLjItMTMuMy02TDg0LjIgNDcxYy0xMS4zLTEyLjktMzAuNy0xNC42LTQ0LjEtMy45ek0xNjAgMTkyYTMyIDMyIDAgMSAwIC02NCAwIDMyIDMyIDAgMSAwIDY0IDB6bTk2IDMyYTMyIDMyIDAgMSAwIDAtNjQgMzIgMzIgMCAxIDAgMCA2NHoiXX0sUUN0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImNvbW1lbnQtbm9kZXMiLGljb246WzY0MCw1MTIsW10sImU2OTYiLCJNNDgwIDIwOEM1MDMuNyAyMDggNTI1LjYgMjE1LjMgNTQzLjcgMjI3LjkgNTM2LjkgMTAwLjkgNDI1IDAgMjg4IDAgMTQ2LjYgMCAzMiAxMDcuNSAzMiAyNDAgMzIgMjk0LjMgNTEuMiAzNDQuMyA4My42IDM4NC41TDM0LjggNDc2LjhjLTQuOCA5LTMuMyAyMCAzLjYgMjcuNXMxNy44IDkuOCAyNy4xIDUuOGwxMTguNC01MC43YzI3LjIgMTEuNCA1Ni45IDE4LjQgODguMSAyMC4yIC4xLTE4LjkgNC45LTM4IDE1LTU1LjUgMTcuMS0yOS43IDQ1LjgtNDguNSA3Ny01NC4ybDkuMi0xNmMtMy40LTEwLjctNS4yLTIyLTUuMi0zMy44IDAtNjEuOSA1MC4xLTExMiAxMTItMTEyek0zMjguNiA0NDhjLTE3LjcgMzAuNi03LjIgNjkuNyAyMy40IDg3LjRzNjkuNyA3LjIgODcuNC0yMy40YzEuNS0yLjYgMi44LTUuMyAzLjktOGw3My4zIDBjMS4xIDIuNyAyLjQgNS40IDMuOSA4IDE3LjcgMzAuNiA1Ni44IDQxLjEgODcuNCAyMy40czQxLjEtNTYuOCAyMy40LTg3LjRjLTEzLjQtMjMuMi0zOS4xLTM0LjgtNjQtMzEuNGwtMTcuNi0zMC43Yy0xMSAxMS43LTI1IDIwLjYtNDAuNiAyNS42bDE2LjUgMjguOWMtMy44IDQuOC02LjggMTAtOSAxNS42bC03My40IDBjLTIuMi01LjYtNS4zLTEwLjgtOS0xNS42bDMzLTU3LjdjNC4xIC44IDguNCAxLjMgMTIuOCAxLjMgMzUuMyAwIDY0LTI4LjcgNjQtNjRzLTI4LjctNjQtNjQtNjQtNjQgMjguNy02NCA2NGMwIDEzLjQgNC4xIDI1LjggMTEuMiAzNi4xbC0zNC42IDYwLjVjLTI1LTMuNC01MC42IDguMy02NCAzMS40eiJdfSxKQ3Q9e3ByZWZpeDoiZmFzIixpY29uTmFtZToicGVyc29uLWFycm93LWRvd24tdG8tbGluZSIsaWNvbjpbNTc2LDUxMixbXSwiZTUzOCIsIk0xOTItMzJhNTYgNTYgMCAxIDEgMCAxMTIgNTYgNTYgMCAxIDEgMC0xMTJ6TTMxOC4zIDI5OS4xbC00Ni4zLTYyLjQgMCAyNDMuMyAyNzIgMGMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMkwzMiA1NDRjLTE3LjcgMC0zMi0xNC4zLTMyLTMyczE0LjMtMzIgMzItMzJsODAgMCAwLTI0My4zLTQ2LjMgNjIuNGMtMTAuNSAxNC4yLTMwLjYgMTcuMi00NC44IDYuNnMtMTcuMi0zMC42LTYuNi00NC44bDcwLjUtOTVDMTEwIDEzMiAxNDkuNyAxMTIgMTkyIDExMnM4MiAyMCAxMDcuMiA1My45bDcwLjUgOTVjMTAuNSAxNC4yIDcuNiAzNC4yLTYuNiA0NC44cy0zNC4yIDcuNi00NC44LTYuNnpNMTc2IDQ4MGwzMiAwIDAtMTI4YzAtOC44LTcuMi0xNi0xNi0xNnMtMTYgNy4yLTE2IDE2bDAgMTI4ek01NjYuNiAxNjYuNmwtODAgODBjLTEyLjUgMTIuNS0zMi44IDEyLjUtNDUuMyAwbC04MC04MGMtMTIuNS0xMi41LTEyLjUtMzIuOCAwLTQ1LjNzMzIuOC0xMi41IDQ1LjMgMEw0MzIgMTQ2LjcgNDMyIDBjMC0xNy43IDE0LjMtMzIgMzItMzJzMzIgMTQuMyAzMiAzMmwwIDE0Ni43IDI1LjQtMjUuNGMxMi41LTEyLjUgMzIuOC0xMi41IDQ1LjMgMHMxMi41IDMyLjggMCA0NS4zeiJdfSxLQ3Q9e3ByZWZpeDoiZmFzIixpY29uTmFtZToicGx1Zy1jaXJjbGUtcGx1cyIsaWNvbjpbNjQwLDUxMixbXSwiZTU1ZiIsIk0xOTItMzJjMTcuNyAwIDMyIDE0LjMgMzIgMzJsMCA5NiAxMjggMCAwLTk2YzAtMTcuNyAxNC4zLTMyIDMyLTMyczMyIDE0LjMgMzIgMzJsMCA5NiA2NCAwYzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMybDAgNDguN2MtOTguNiA4LjEtMTc2IDkwLjctMTc2IDE5MS4zIDAgMjcuMyA1LjcgNTMuMyAxNiA3Ni45bDAgMy4xYzAgMTcuNy0xNC4zIDMyLTMyIDMycy0zMi0xNC4zLTMyLTMybDAtNjYuN0MxNjUuMiAzOTguMSA5NiAzMTkuMSA5NiAyMjRsMC02NGMtMTcuNyAwLTMyLTE0LjMtMzItMzJTNzguMyA5NiA5NiA5Nmw2NCAwIDAtOTZjMC0xNy43IDE0LjMtMzIgMzItMzJ6TTQ5NiAyNTZhMTQ0IDE0NCAwIDEgMSAwIDI4OCAxNDQgMTQ0IDAgMSAxIDAtMjg4em0xNiA4MGMwLTguOC03LjItMTYtMTYtMTZzLTE2IDcuMi0xNiAxNmwwIDQ4LTQ4IDBjLTguOCAwLTE2IDcuMi0xNiAxNnM3LjIgMTYgMTYgMTZsNDggMCAwIDQ4YzAgOC44IDcuMiAxNiAxNiAxNnMxNi03LjIgMTYtMTZsMC00OCA0OCAwYzguOCAwIDE2LTcuMiAxNi0xNnMtNy4yLTE2LTE2LTE2bC00OCAwIDAtNDh6Il19LEUwZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJwZXJzb24tc3dpbW1pbmciLGljb246WzY0MCw1MTIsWzEyNzk0Niwic3dpbW1lciJdLCJmNWM0IiwiTTU1MiAxNTJhNTYgNTYgMCAxIDAgLTExMiAwIDU2IDU2IDAgMSAwIDExMiAwek0yOTMuNCAxOTguMmwtODguNiA3My45YzEuMSAwIDIuMi0uMSAzLjMtLjEgMzMuMS0uMiA2Ni4zIDEwLjIgOTQuNCAzMS40IDIyLjEgMTYuNiAyOS4xIDE2LjYgNTEuMiAwIDI3LjUtMjAuNyA1OS45LTMxLjIgOTIuNC0zMS40IDQuOCAwIDkuNyAuMiAxNC41IC42LTguMy0zMC0yNC4zLTU3LjctNDYuOC04MC4yLTE4LjQtMTguNC00MC42LTMyLjctNjUtNDEuOGwtNjguNi0yNS43Yy0yNy40LTEwLjMtNTgtNy41LTgzLjEgNy42bC01My41IDMyLjFjLTE1LjIgOS4xLTIwLjEgMjguNy0xMSA0My45czI4LjcgMjAuMSA0My45IDExTDIzMCAxODcuM2M4LjQtNSAxOC42LTUuOSAyNy43LTIuNWwzNS43IDEzLjR6bTExMCAxODEuOWMyMS4zLTE2LjEgNDkuOS0xNi4xIDcxLjIgMCAxOSAxNC40IDQxLjkgMjguMiA2Ny4yIDMzLjMgMjYuNSA1LjQgNTQuMyAuOCA4MC43LTE5LjEgMTAuNi04IDEyLjctMjMgNC43LTMzLjZzLTIzLTEyLjctMzMuNi00LjdjLTE0LjkgMTEuMi0yOC42IDEzLjEtNDIuMyAxMC4zLTE0LjktMy0zMC45LTExLjktNDcuOC0yNC42LTM4LjQtMjktOTAuNS0yOS0xMjkgMC0yNCAxOC4xLTQwLjcgMjYuMy01NC41IDI2LjNzLTMwLjUtOC4yLTU0LjUtMjYuM2MtMzguNC0yOS05MC41LTI5LTEyOSAwLTIxLjYgMTYuMy00MS4zIDI1LjgtNTguOSAyNS43LTkuNi0uMS0xOS45LTMtMzEuMi0xMS41LTEwLjYtOC0yNS42LTUuOS0zMy42IDQuN1M3IDM4Ni4zIDE3LjYgMzk0LjNjMTkuMSAxNC40IDM5LjQgMjEgNTkuOCAyMS4xIDMzLjkgLjIgNjQuMy0xNy40IDg4LjEtMzUuMyAyMS4zLTE2LjEgNDkuOS0xNi4xIDcxLjIgMCAyNC4yIDE4LjMgNTIuMyAzNS45IDgzLjQgMzUuOXM1OS4xLTE3LjcgODMuNC0zNS45eiJdfSxlVHQ9RTBlLCQwZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJjb21tZW50LWRvdHMiLGljb246WzUxMiw1MTIsWzEyODE3Miw2MjA3NSwiY29tbWVudGluZyJdLCJmNGFkIiwiTTI1NiA0ODBjMTQxLjQgMCAyNTYtMTA3LjUgMjU2LTI0MFMzOTcuNCAwIDI1NiAwIDAgMTA3LjUgMCAyNDBjMCA1NC4zIDE5LjIgMTA0LjMgNTEuNiAxNDQuNUwyLjggNDc2LjhjLTQuOCA5LTMuMyAyMCAzLjYgMjcuNXMxNy44IDkuOCAyNy4xIDUuOGwxMTguNC01MC43QzE4My43IDQ3Mi42IDIxOC45IDQ4MCAyNTYgNDgwek0xMjggMjA4YTMyIDMyIDAgMSAxIDAgNjQgMzIgMzIgMCAxIDEgMC02NHptMTI4IDBhMzIgMzIgMCAxIDEgMCA2NCAzMiAzMiAwIDEgMSAwLTY0em05NiAzMmEzMiAzMiAwIDEgMSA2NCAwIDMyIDMyIDAgMSAxIC02NCAweiJdfSx0VHQ9JDBlLEkwZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJjaGFydC1waWUiLGljb246WzU3Niw1MTIsWyJwaWUtY2hhcnQiXSwiZjIwMCIsIk01MTIuNCAyNDBsLTE3NiAwYy0xNy43IDAtMzItMTQuMy0zMi0zMmwwLTE3NmMwLTE3LjcgMTQuNC0zMi4yIDMxLjktMjkuOSAxMDcgMTQuMiAxOTEuOCA5OSAyMDYgMjA2IDIuMyAxNy41LTEyLjIgMzEuOS0yOS45IDMxLjl6TTIyMi42IDM3LjJjMTguMS0zLjggMzMuOCAxMSAzMy44IDI5LjVsMCAxOTcuM2MwIDUuNiAyIDExIDUuNSAxNS4zTDM5NCA0MzguN2MxMS43IDE0LjEgOS4yIDM1LjQtNi45IDQ0LjEtMzQuMSAxOC42LTczLjIgMjkuMi0xMTQuNyAyOS4yLTEzMi41IDAtMjQwLTEwNy41LTI0MC0yNDAgMC0xMTUuNSA4MS41LTIxMS45IDE5MC4yLTIzNC44ek00NzcuOCAyODhsNjQgMGMxOC41IDAgMzMuMyAxNS43IDI5LjUgMzMuOC0xMC4yIDQ4LjQtMzUgOTEuNC02OS42IDEyNC4yLTEyLjMgMTEuNy0zMS42IDkuMi00Mi40LTMuOUwzNzQuOSAzNDAuNGMtMTcuMy0yMC45LTIuNC01Mi40IDI0LjYtNTIuNGw3OC4yIDB6Il19LHJUdD1JMGUsaVR0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImZyb2ciLGljb246WzU3Niw1MTIsW10sImY1MmUiLCJNMzY4IDMyYzQxLjcgMCA3NS45IDMxLjggNzkuNyA3Mi41bDg1LjYgMjYuM2MyNS40IDcuOCA0Mi44IDMxLjMgNDIuOCA1Ny45IDAgMjEuOC0xMS43IDQxLjktMzAuNyA1Mi43bC0xNDQuNSA4Mi4xIDkyLjUgOTIuNSA1MC43IDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJsLTY0IDBjLTguNSAwLTE2LjYtMy40LTIyLjYtOS40TDM0Ni45IDM2MC4yYzExLjctMzYgMy4yLTc3LjEtMjUuNC0xMDUuNy00MC42LTQwLjYtMTA2LjMtNDAuNi0xNDYuOS0uMUwxMDEgMzI0LjRjLTYuNCA2LjEtNi43IDE2LjItLjYgMjIuNnMxNi4yIDYuNiAyMi42IC42bDczLjgtNzAuMiAuMS0uMSAuMS0uMWMzLjUtMy41IDcuMy02LjYgMTEuMy05LjIgMjcuOS0xOC41IDY1LjktMTUuNCA5MC41IDkuMiAyNC43IDI0LjcgMjcuNyA2Mi45IDkgOTAuOS0yLjYgMy44LTUuNiA3LjUtOSAxMC45TDI2MS44IDQxNiAzNTIgNDE2YzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMyTDY0IDQ4MEMyOC43IDQ4MCAwIDQ1MS4zIDAgNDE2IDAgMjQ5LjYgMTI3IDExMi45IDI4OS4zIDk3LjUgMjk2LjIgNjAuMiAzMjguOCAzMiAzNjggMzJ6bTAgMTA0YTI0IDI0IDAgMSAwIDAtNDggMjQgMjQgMCAxIDAgMCA0OHoiXX0sYVR0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6IndpbmUtYm90dGxlIixpY29uOlszMjAsNTEyLFtdLCJmNzJmIiwiTTgwLTMyYzAtMTcuNyAxNC4zLTMyIDMyLTMybDk2IDBjMTcuNyAwIDMyIDE0LjMgMzIgMzIgMCAxMS44LTYuNCAyMi4yLTE2IDI3LjdsMCAxNDUuNmM1Ni41IDI0LjcgOTYgODEuMSA5NiAxNDYuN2wwIDIyNGMwIDM1LjMtMjguNyA2NC02NCA2NEw2NCA1NzZjLTM1LjMgMC02NC0yOC43LTY0LTY0TDAgMjg4YzAtNjUuNiAzOS41LTEyMiA5Ni0xNDYuN0w5Ni00LjNDODYuNC05LjggODAtMjAuMiA4MC0zMnpNOTYgMjg4Yy0xNy43IDAtMzIgMTQuMy0zMiAzMmwwIDEyOGMwIDE3LjcgMTQuMyAzMiAzMiAzMmwxMjggMGMxNy43IDAgMzItMTQuMyAzMi0zMmwwLTEyOGMwLTE3LjctMTQuMy0zMi0zMi0zMkw5NiAyODh6Il19LG5UdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJpbmJveCIsaWNvbjpbNTEyLDUxMixbXSwiZjAxYyIsIk05MS44IDMyQzU5LjkgMzIgMzIuOSA1NS40IDI4LjQgODYuOUwuNiAyODEuMmMtLjQgMy0uNiA2LS42IDkuMUwwIDQxNmMwIDM1LjMgMjguNyA2NCA2NCA2NGwzODQgMGMzNS4zIDAgNjQtMjguNyA2NC02NGwwLTEyNS43YzAtMy0uMi02LjEtLjYtOS4xTDQ4My42IDg2LjlDNDc5LjEgNTUuNCA0NTIuMSAzMiA0MjAuMiAzMkw5MS44IDMyem0wIDY0bDMyOC41IDAgMjcuNCAxOTItNTkuOSAwYy0xMi4xIDAtMjMuMiA2LjgtMjguNiAxNy43bC0xNC4zIDI4LjZjLTUuNCAxMC44LTE2LjUgMTcuNy0yOC42IDE3LjdsLTEyMC40IDBjLTEyLjEgMC0yMy4yLTYuOC0yOC42LTE3LjdsLTE0LjMtMjguNmMtNS40LTEwLjgtMTYuNS0xNy43LTI4LjYtMTcuN0w2NC4zIDI4OCA5MS44IDk2eiJdfSxQMGU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToic3F1YXJlLWgiLGljb246WzQ0OCw1MTIsWyJoLXNxdWFyZSJdLCJmMGZkIiwiTTY0IDMyQzI4LjcgMzIgMCA2MC43IDAgOTZMMCA0MTZjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMzIwIDBjMzUuMyAwIDY0LTI4LjcgNjQtNjRsMC0zMjBjMC0zNS4zLTI4LjctNjQtNjQtNjRMNjQgMzJ6TTMyMCAxNjhsMCAxNzZjMCAxMy4zLTEwLjcgMjQtMjQgMjRzLTI0LTEwLjctMjQtMjRsMC02NC05NiAwIDAgNjRjMCAxMy4zLTEwLjcgMjQtMjQgMjRzLTI0LTEwLjctMjQtMjRsMC0xNzZjMC0xMy4zIDEwLjctMjQgMjQtMjRzMjQgMTAuNyAyNCAyNGwwIDY0IDk2IDAgMC02NGMwLTEzLjMgMTAuNy0yNCAyNC0yNHMyNCAxMC43IDI0IDI0eiJdfSxvVHQ9UDBlLHNUdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJob3VzZS1tZWRpY2FsIixpY29uOls1MTIsNTEyLFtdLCJlM2IyIiwiTTI3Ny44IDguNmMtMTIuMy0xMS40LTMxLjMtMTEuNC00My41IDBsLTIyNCAyMDhjLTkuNiA5LTEyLjggMjIuOS04IDM1LjFTMTguOCAyNzIgMzIgMjcybDE2IDAgMCAxNzZjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMjg4IDBjMzUuMyAwIDY0LTI4LjcgNjQtNjRsMC0xNzYgMTYgMGMxMy4yIDAgMjUtOC4xIDI5LjgtMjAuM3MxLjYtMjYuMi04LTM1LjFsLTIyNC0yMDh6TTIyNCAyNDhjMC04LjggNy4yLTE2IDE2LTE2bDMyIDBjOC44IDAgMTYgNy4yIDE2IDE2bDAgNDAgNDAgMGM4LjggMCAxNiA3LjIgMTYgMTZsMCAzMmMwIDguOC03LjIgMTYtMTYgMTZsLTQwIDAgMCA0MGMwIDguOC03LjIgMTYtMTYgMTZsLTMyIDBjLTguOCAwLTE2LTcuMi0xNi0xNmwwLTQwLTQwIDBjLTguOCAwLTE2LTcuMi0xNi0xNmwwLTMyYzAtOC44IDcuMi0xNiAxNi0xNmw0MCAwIDAtNDB6Il19LE4wZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJjaXJjbGUtY2hldnJvbi1yaWdodCIsaWNvbjpbNTEyLDUxMixbImNoZXZyb24tY2lyY2xlLXJpZ2h0Il0sImYxMzgiLCJNMCAyNTZhMjU2IDI1NiAwIDEgMCA1MTIgMCAyNTYgMjU2IDAgMSAwIC01MTIgMHpNMjQxIDM3N2MtOS40IDkuNC0yNC42IDkuNC0zMy45IDBzLTkuNC0yNC42IDAtMzMuOWw4Ny04Ny04Ny04N2MtOS40LTkuNC05LjQtMjQuNiAwLTMzLjlzMjQuNi05LjQgMzMuOSAwTDM0NSAyMzljOS40IDkuNCA5LjQgMjQuNiAwIDMzLjlMMjQxIDM3N3oiXX0sbFR0PU4wZSxjVHQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZmlsZS1jc3YiLGljb246WzU3Niw1MTIsW10sImY2ZGQiLCJNOTYgMEM2MC43IDAgMzIgMjguNyAzMiA2NGwwIDM4NGMwIDM1LjMgMjguNyA2NCA2NCA2NGw4MCAwIDAtMTEyYzAtMzUuMyAyOC43LTY0IDY0LTY0bDE3NiAwIDAtMTY1LjVjMC0xNy02LjctMzMuMy0xOC43LTQ1LjNMMjkwLjcgMTguN0MyNzguNyA2LjcgMjYyLjUgMCAyNDUuNSAwTDk2IDB6TTM1Ny41IDE3NkwyNjQgMTc2Yy0xMy4zIDAtMjQtMTAuNy0yNC0yNEwyNDAgNTguNSAzNTcuNSAxNzZ6TTI2NCAzODBjLTI0LjMgMC00NCAxOS43LTQ0IDQ0bDAgODBjMCAyNC4zIDE5LjcgNDQgNDQgNDRsMTYgMGMyNC4zIDAgNDQtMTkuNyA0NC00NGwwLThjMC0xMS05LTIwLTIwLTIwcy0yMCA5LTIwIDIwbDAgOGMwIDIuMi0xLjggNC00IDRsLTE2IDBjLTIuMiAwLTQtMS44LTQtNGwwLTgwYzAtMi4yIDEuOC00IDQtNGwxNiAwYzIuMiAwIDQgMS44IDQgNGwwIDhjMCAxMSA5IDIwIDIwIDIwczIwLTkgMjAtMjBsMC04YzAtMjQuMy0xOS43LTQ0LTQ0LTQ0bC0xNiAwem0xMzYgMGMtMjguNyAwLTUyIDIzLjMtNTIgNTJzMjMuMyA1MiA1MiA1MmM2LjYgMCAxMiA1LjQgMTIgMTJzLTUuNCAxMi0xMiAxMmwtMzIgMGMtMTEgMC0yMCA5LTIwIDIwczkgMjAgMjAgMjBsMzIgMGMyOC43IDAgNTItMjMuMyA1Mi01MnMtMjMuMy01Mi01Mi01MmMtNi42IDAtMTItNS40LTEyLTEyczUuNC0xMiAxMi0xMmwyNCAwYzExIDAgMjAtOSAyMC0yMHMtOS0yMC0yMC0yMGwtMjQgMHptOTYgMGMtMTEgMC0yMCA5LTIwIDIwbDAgMzEuNmMwIDM1LjUgMTAuNSA3MC4zIDMwLjIgOTkuOGw1LjEgNy43YzMuNyA1LjYgMTAgOC45IDE2LjYgOC45czEyLjktMy4zIDE2LjYtOC45bDUuMS03LjdjMTkuNy0yOS42IDMwLjItNjQuMyAzMC4yLTk5LjhsMC0zMS42YzAtMTEtOS0yMC0yMC0yMHMtMjAgOS0yMCAyMGwwIDMxLjZjMCAxOS42LTQuMSAzOC45LTEyIDU2LjctNy45LTE3LjgtMTItMzcuMS0xMi01Ni43bDAtMzEuNmMwLTExLTktMjAtMjAtMjB6Il19LGRUdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJoYXQtY293Ym95IixpY29uOls2NDAsNTEyLFtdLCJmOGMwIiwiTTE4Mi4yIDc2LjFMMTMwLjggMzA3LjVDMTQ1LjUgMzI0LjkgMTY3LjQgMzM2IDE5MiAzMzZsMjU2IDBjMjQuNiAwIDQ2LjUtMTEuMSA2MS4yLTI4LjVMNDU3LjggNzYuMWMtNS43LTI1LjgtMjguNi00NC4xLTU1LTQ0LjEtMTIuMiAwLTI0LjEgNC0zMy44IDExLjNsLTQuNyAzLjVjLTI2LjMgMTkuNy02Mi40IDE5LjctODguNiAwTDI3MSA0My4zYy05LjgtNy4zLTIxLjYtMTEuMy0zMy44LTExLjMtMjYuNCAwLTQ5LjMgMTguMy01NSA0NC4xek02NCAyNTZjMC0xNy43LTE0LjMtMzItMzItMzJTMCAyMzguMyAwIDI1NkMwIDM2MiA4NiA0NDggMTkyIDQ0OGwyNTYgMGMxMDYgMCAxOTItODYgMTkyLTE5MiAwLTE3LjctMTQuMy0zMi0zMi0zMnMtMzIgMTQuMy0zMiAzMmMwIDcwLjctNTcuMyAxMjgtMTI4IDEyOGwtMjU2IDBjLTcwLjcgMC0xMjgtNTcuMy0xMjgtMTI4eiJdfSxGMGU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZmFjZS1ncmluLXRvbmd1ZS13aW5rIixpY29uOls1MTIsNTEyLFsxMjg1NDAsImdyaW4tdG9uZ3VlLXdpbmsiXSwiZjU4YiIsIk0xNTIuMiA0OTAuMUM2Mi41IDQ1MC4yIDAgMzYwLjQgMCAyNTYgMCAxMTQuNiAxMTQuNiAwIDI1NiAwUzUxMiAxMTQuNiA1MTIgMjU2YzAgMTA0LjQtNjIuNSAxOTQuMi0xNTIuMiAyMzQuMSA1LjMtMTMgOC4yLTI3LjIgOC4yLTQyLjFsMC02MS43YzE2LjktMTYuNSAzMC4xLTM2LjcgMzguMy01OS4zIDQuMy0xMS44LTcuNy0yMS44LTE5LjYtMTguMS0zOS4yIDEyLjItODMuNyAxOS4xLTEzMC43IDE5LjFzLTkxLjUtNi45LTEzMC43LTE5LjFjLTExLjktMy43LTIzLjkgNi4zLTE5LjYgMTguMSA4LjMgMjIuNiAyMS41IDQyLjggMzguMyA1OS4zbDAgNjEuN2MwIDE0LjkgMi45IDI5LjEgOC4yIDQyLjF6TTE1MiAyMTJsMTYgMGMxMSAwIDIwIDkgMjAgMjBzOSAyMCAyMCAyMCAyMC05IDIwLTIwYzAtMzMuMS0yNi45LTYwLTYwLTYwbC0xNiAwYy0zMy4xIDAtNjAgMjYuOS02MCA2MCAwIDExIDkgMjAgMjAgMjBzMjAtOSAyMC0yMCA5LTIwIDIwLTIwem0xODQgNjBhNjQgNjQgMCAxIDAgMC0xMjggNjQgNjQgMCAxIDAgMCAxMjh6TTMyMCA0MDIuNmwwIDQ1LjRjMCAzNS4zLTI4LjcgNjQtNjQgNjRzLTY0LTI4LjctNjQtNjRsMC00NS40YzAtMTQuNyAxMS45LTI2LjYgMjYuNi0yNi42bDIgMGMxMS4zIDAgMjEuMSA3LjkgMjMuNiAxOC45IDIuOCAxMi42IDIwLjggMTIuNiAyMy42IDAgMi41LTExLjEgMTIuMy0xOC45IDIzLjYtMTguOWwyIDBjMTQuNyAwIDI2LjYgMTEuOSAyNi42IDI2LjZ6TTMzNiAxODRhMjQgMjQgMCAxIDEgMCA0OCAyNCAyNCAwIDEgMSAwLTQ4eiJdfSx1VHQ9RjBlLHBUdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJsIixpY29uOlszMjAsNTEyLFsxMDhdLCI0YyIsIk02NCAzMmMxNy43IDAgMzIgMTQuMyAzMiAzMmwwIDM1MiAxOTIgMGMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMkw2NCA0ODBjLTE3LjcgMC0zMi0xNC4zLTMyLTMyTDMyIDY0YzAtMTcuNyAxNC4zLTMyIDMyLTMyeiJdfSxfRD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJhcnJvdy1kb3duLXNob3J0LXdpZGUiLGljb246WzU3Niw1MTIsWyJzb3J0LWFtb3VudC1kZXNjIiwic29ydC1hbW91bnQtZG93bi1hbHQiXSwiZjg4NCIsIk0yNDYuNiAzNzQuNmwtOTYgOTZjLTEyLjUgMTIuNS0zMi44IDEyLjUtNDUuMyAwbC05Ni05NmMtMTIuNS0xMi41LTEyLjUtMzIuOCAwLTQ1LjNzMzIuOC0xMi41IDQ1LjMgMEw5NiAzNzAuNyA5NiA2NGMwLTE3LjcgMTQuMy0zMiAzMi0zMnMzMiAxNC4zIDMyIDMybDAgMzA2LjcgNDEuNC00MS40YzEyLjUtMTIuNSAzMi44LTEyLjUgNDUuMyAwczEyLjUgMzIuOCAwIDQ1LjN6TTMyMCAzMmwzMiAwYzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMybC0zMiAwYy0xNy43IDAtMzItMTQuMy0zMi0zMnMxNC4zLTMyIDMyLTMyem0wIDEyOGw5NiAwYzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMybC05NiAwYy0xNy43IDAtMzItMTQuMy0zMi0zMnMxNC4zLTMyIDMyLTMyem0wIDEyOGwxNjAgMGMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMmwtMTYwIDBjLTE3LjcgMC0zMi0xNC4zLTMyLTMyczE0LjMtMzIgMzItMzJ6bTAgMTI4bDIyNCAwYzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMybC0yMjQgMGMtMTcuNyAwLTMyLTE0LjMtMzItMzJzMTQuMy0zMiAzMi0zMnoiXX0saFR0PV9ELGZUdD1fRCxPMGU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiaG91cmdsYXNzLWhhbGYiLGljb246WzM4NCw1MTIsWyJob3VyZ2xhc3MtMiJdLCJmMjUyIiwiTTMyIDBDMTQuMyAwIDAgMTQuMyAwIDMyUzE0LjMgNjQgMzIgNjRsMCAxMWMwIDQyLjQgMTYuOSA4My4xIDQ2LjkgMTEzLjFsNjcuOSA2Ny45LTY3LjkgNjcuOUM0OC45IDM1My45IDMyIDM5NC42IDMyIDQzN2wwIDExYy0xNy43IDAtMzIgMTQuMy0zMiAzMnMxNC4zIDMyIDMyIDMybDMyMCAwYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMybDAtMTFjMC00Mi40LTE2LjktODMuMS00Ni45LTExMy4xbC02Ny45LTY3LjkgNjcuOS02Ny45YzMwLTMwIDQ2LjktNzAuNyA0Ni45LTExMy4xbDAtMTFjMTcuNyAwIDMyLTE0LjMgMzItMzJTMzY5LjcgMCAzNTIgMEwzMiAwek05NiA3NWwwLTExIDE5MiAwIDAgMTFjMCAxOS01LjYgMzcuNC0xNiA1M0wxMTIgMTI4Yy0xMC4zLTE1LjYtMTYtMzQtMTYtNTN6bTE2IDMwOWMzLjUtNS4zIDcuNi0xMC4zIDEyLjEtMTQuOWw2Ny45LTY3LjkgNjcuOSA2Ny45YzQuNiA0LjYgOC42IDkuNiAxMi4yIDE0LjlMMTEyIDM4NHoiXX0sbVR0PU8wZSxSMGU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToic3Bvb24iLGljb246WzUxMiw1MTIsWzEyOTM0OCw2MTg3MywidXRlbnNpbC1zcG9vbiJdLCJmMmU1IiwiTTI0NS44IDIyMC45Yy0xNC41LTE3LjYtMjEuOC0zOS4yLTIxLjgtNjAuOCAwLTgwLjIgOTYtMTYwLjIgMTkyLTE2MC4yIDUzIDAgOTYgNDMgOTYgOTYgMCA5Ni04MCAxOTItMTYwLjIgMTkyLTIxLjYgMC00My4yLTcuMy02MC44LTIxLjhMNTQuNiA1MDIuNmMtMTIuNSAxMi41LTMyLjggMTIuNS00NS4zIDBzLTEyLjUtMzIuOCAwLTQ1LjNMMjQ1LjggMjIwLjl6Il19LGdUdD1SMGUsQjBlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImNyZWRpdC1jYXJkIixpY29uOls1MTIsNTEyLFsxMjgxNzksNjIwODMsImNyZWRpdC1jYXJkLWFsdCJdLCJmMDlkIiwiTTAgMTI4bDAgMzIgNTEyIDAgMC0zMmMwLTM1LjMtMjguNy02NC02NC02NEw2NCA2NEMyOC43IDY0IDAgOTIuNyAwIDEyOHptMCA4MEwwIDM4NGMwIDM1LjMgMjguNyA2NCA2NCA2NGwzODQgMGMzNS4zIDAgNjQtMjguNyA2NC02NGwwLTE3Ni01MTIgMHpNNjQgMzYwYzAtMTMuMyAxMC43LTI0IDI0LTI0bDQ4IDBjMTMuMyAwIDI0IDEwLjcgMjQgMjRzLTEwLjcgMjQtMjQgMjRsLTQ4IDBjLTEzLjMgMC0yNC0xMC43LTI0LTI0em0xNDQgMGMwLTEzLjMgMTAuNy0yNCAyNC0yNGw2NCAwYzEzLjMgMCAyNCAxMC43IDI0IDI0cy0xMC43IDI0LTI0IDI0bC02NCAwYy0xMy4zIDAtMjQtMTAuNy0yNC0yNHoiXX0sYlR0PUIwZSxjRT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJmaWxlLWludm9pY2UtZG9sbGFyIixpY29uOlszODQsNTEyLFtdLCJmNTcxIiwiTTAgNjRDMCAyOC43IDI4LjcgMCA2NCAwTDIxMy41IDBjMTcgMCAzMy4zIDYuNyA0NS4zIDE4LjdMMzY1LjMgMTI1LjNjMTIgMTIgMTguNyAyOC4zIDE4LjcgNDUuM0wzODQgNDQ4YzAgMzUuMy0yOC43IDY0LTY0IDY0TDY0IDUxMmMtMzUuMyAwLTY0LTI4LjctNjQtNjRMMCA2NHptMjA4LTUuNWwwIDkzLjVjMCAxMy4zIDEwLjcgMjQgMjQgMjRMMzI1LjUgMTc2IDIwOCA1OC41ek02NCA4OGMwIDEzLjMgMTAuNyAyNCAyNCAyNGw0OCAwYzEzLjMgMCAyNC0xMC43IDI0LTI0cy0xMC43LTI0LTI0LTI0TDg4IDY0Qzc0LjcgNjQgNjQgNzQuNyA2NCA4OHptMCA5NmMwIDEzLjMgMTAuNyAyNCAyNCAyNGw0OCAwYzEzLjMgMCAyNC0xMC43IDI0LTI0cy0xMC43LTI0LTI0LTI0bC00OCAwYy0xMy4zIDAtMjQgMTAuNy0yNCAyNHptMTEyIDc2bDAgNGMtMjguOCAuMy01MiAyMy43LTUyIDUyLjUgMCAyNS43IDE4LjUgNDcuNiA0My45IDUxLjhsNDEuNyA3YzYgMSAxMC40IDYuMiAxMC40IDEyLjMgMCA2LjktNS42IDEyLjUtMTIuNSAxMi41TDE1MiA0MDBjLTExIDAtMjAgOS0yMCAyMHM5IDIwIDIwIDIwbDI0IDAgMCA0YzAgMTEgOSAyMCAyMCAyMHMyMC05IDIwLTIwbDAtNC43YzI1LTQuMSA0NC0yNS43IDQ0LTUxLjggMC0yNS43LTE4LjUtNDcuNi00My45LTUxLjhsLTQxLjctN2MtNi0xLTEwLjQtNi4yLTEwLjQtMTIuMyAwLTYuOSA1LjYtMTIuNSAxMi41LTEyLjVsNDcuNSAwYzExIDAgMjAtOSAyMC0yMHMtOS0yMC0yMC0yMGwtOCAwIDAtNGMwLTExLTktMjAtMjAtMjBzLTIwIDktMjAgMjB6Il19LEgwZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJzcGFnaGV0dGktbW9uc3Rlci1mbHlpbmciLGljb246WzY0MCw1MTIsWyJwYXN0YWZhcmlhbmlzbSJdLCJmNjdiIiwiTTIwOCA2NGExNiAxNiAwIDEgMCAtMzIgMCAxNiAxNiAwIDEgMCAzMiAwem00OCAwYzAgMTYuMi02IDMxLjEtMTYgNDIuM2wxNS42IDMxLjJjMTguNy02IDM5LjktOS41IDY0LjQtOS41czQ1LjggMy41IDY0LjQgOS41TDQwMCAxMDYuM2MtMTAtMTEuMy0xNi0yNi4xLTE2LTQyLjMgMC0zNS4zIDI4LjctNjQgNjQtNjRzNjQgMjguNyA2NCA2NC0yOC43IDY0LTY0IDY0Yy0xLjcgMC0zLjQtLjEtNS4xLS4yTDQyNy44IDE1OGMyMS4xIDEzLjYgMzcuNyAzMC4yIDUxLjQgNDYuNCA3LjEgOC4zIDEzLjUgMTYuNiAxOS4zIDI0bDEuNCAxLjhjNi4zIDguMSAxMS42IDE0LjggMTYuNyAyMC40IDEwLjcgMTEuNyAxNi4xIDEzLjQgMTkuNCAxMy40IDIuNSAwIDQuMy0uNiA3LjEtMy4zIDMuNy0zLjUgNy4xLTguOCAxMi41LTE3LjRsLjYtLjljNC42LTcuNCAxMS0xNy42IDE5LjQtMjUuNyA5LjctOS4zIDIyLjktMTYuNyA0MC40LTE2LjcgMTMuMyAwIDI0IDEwLjcgMjQgMjRzLTEwLjcgMjQtMjQgMjRjLTIuNSAwLTQuMyAuNi03LjEgMy4zLTMuNyAzLjUtNy4xIDguOC0xMi41IDE3LjRsLS42IC45Yy00LjYgNy40LTExIDE3LjYtMTkuNCAyNS43LTkuNyA5LjMtMjIuOSAxNi43LTQwLjQgMTYuNy0xOC41IDAtMzIuOS04LjUtNDQuMy0xOC42LTMuMSA0LTYuNiA4LjMtMTAuNSAxMi43IDEuNCA0LjMgMi44IDguNSA0IDEyLjUgLjkgMyAxLjggNS44IDIuNiA4LjYgMyA5LjggNS41IDE4LjIgOC42IDI1LjkgMy45IDkuOCA3LjQgMTUuNCAxMC44IDE4LjUgMi42IDIuNCA1LjkgNC4zIDEyLjggNC4zIDguNyAwIDE2LjktNC4yIDMzLjctMTMuMiAxNS04IDM1LjctMTguOCA2Mi4zLTE4LjggMTMuMyAwIDI0IDEwLjcgMjQgMjRzLTEwLjcgMjQtMjQgMjRjLTEzLjQgMC0yNC43IDUuMi0zOS43IDEzLjItMSAuNi0yLjEgMS4xLTMuMiAxLjctMTMuMSA3LjEtMzEuNiAxNy4xLTUzLjEgMTcuMS0xOC40IDAtMzMuNi02LjEtNDUuNS0xNy4yLTExLjEtMTAuMy0xNy45LTIzLjctMjIuNy0zNi0zLjYtOS02LjctMTkuMS05LjUtMjguNS0xNi40IDEyLjMtMzYuMSAyMy42LTU4LjkgMzEuMyAzLjYgMTAuOCA4LjQgMjMuNSAxNC40IDM2LjIgNy41IDE1LjkgMTYuMiAzMC40IDI1LjggNDAuNSA5LjYgMTAuMiAxNy43IDEzLjcgMjQuNSAxMy43IDEzLjMgMCAyNCAxMC43IDI0IDI0cy0xMC43IDI0LTI0IDI0Yy0yNS4yIDAtNDUtMTMuNS01OS41LTI4LjgtMTQuNS0xNS40LTI1LjctMzQuOS0zNC4yLTUzLTgtMTctMTQuMS0zMy44LTE4LjMtNDYuOS01LjIgLjQtMTAuNiAuNi0xNiAuNnMtMTAuOC0uMi0xNi0uNmMtNC4yIDEzLTEwLjMgMjkuOS0xOC4zIDQ2LjktOC41IDE4LjEtMTkuOCAzNy42LTM0LjIgNTMtMTQuNCAxNS4zLTM0LjMgMjguOC01OS41IDI4LjgtMTMuMyAwLTI0LTEwLjctMjQtMjRzMTAuNy0yNCAyNC0yNGM2LjggMCAxNS0zLjUgMjQuNS0xMy43IDkuNS0xMC4xIDE4LjMtMjQuNiAyNS44LTQwLjUgNS45LTEyLjYgMTAuNy0yNS40IDE0LjQtMzYuMi0yMi44LTcuNy00Mi41LTE5LTU4LjktMzEuMy0yLjkgOS40LTYgMTkuNS05LjUgMjguNS00LjggMTIuMi0xMS42IDI1LjYtMjIuNyAzNi0xMS45IDExLjEtMjcuMSAxNy4yLTQ1LjUgMTcuMi0xMy4xIDAtMjQuNS00LjEtMzMuOC04LjktNy45LTQtMTUuNy05LjItMjIuMS0xMy41bDAgMC0yLjQtMS42Yy0xNS4zLTEwLjItMjUuOC0xNi0zNy43LTE2LTEzLjMgMC0yNC0xMC43LTI0LTI0czEwLjctMjQgMjQtMjRjMjguMSAwIDQ5LjYgMTQuMiA2NC4zIDI0bDIuNCAxLjZjNi45IDQuNiAxMi4xIDguMSAxNy4yIDEwLjcgNS41IDIuOCA5LjEgMy42IDEyIDMuNiA2LjggMCAxMC4yLTEuOSAxMi44LTQuMyAzLjQtMy4yIDctOC44IDEwLjgtMTguNSAzLTcuNyA1LjYtMTYuMSA4LjYtMjUuOSAuOC0yLjcgMS43LTUuNiAyLjYtOC42IDEuMi00IDIuNi04LjIgNC0xMi41LTMuOS00LjUtNy40LTguOC0xMC41LTEyLjctMTEuNCAxMC4xLTI1LjkgMTguNi00NC4zIDE4LjYtMTcuNSAwLTMwLjctNy40LTQwLjQtMTYuNy04LjQtOC4xLTE0LjgtMTguMy0xOS40LTI1LjdsLS42LS45Yy01LjQtOC42LTguOC0xMy45LTEyLjUtMTcuNC0yLjgtMi43LTQuNi0zLjMtNy4xLTMuMy0xMy4zIDAtMjQtMTAuNy0yNC0yNHMxMC43LTI0IDI0LTI0YzE3LjUgMCAzMC43IDcuNCA0MC40IDE2LjcgOC40IDguMSAxNC44IDE4LjMgMTkuNCAyNS43bC42IC45YzUuNCA4LjYgOC44IDEzLjkgMTIuNSAxNy40IDIuOCAyLjcgNC42IDMuMyA3LjEgMy4zIDMuMyAwIDguNy0xLjcgMTkuNC0xMy40IDUuMS01LjYgMTAuNC0xMi4zIDE2LjctMjAuNGwxLjQtMS44YzUuOC03LjQgMTIuMi0xNS43IDE5LjMtMjQgMTMuOC0xNi4yIDMwLjMtMzIuOCA1MS40LTQ2LjRsLTE1LjEtMzAuMmMtMS43IC4xLTMuNCAuMi01LjEgLjItMzUuMyAwLTY0LTI4LjctNjQtNjRzMjguNy02NCA2NC02NCA2NCAyOC43IDY0IDY0em0yMDggMGExNiAxNiAwIDEgMCAtMzIgMCAxNiAxNiAwIDEgMCAzMiAweiJdfSx2VHQ9SDBlLHEwZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJtYXJ0aW5pLWdsYXNzLWNpdHJ1cyIsaWNvbjpbNjQwLDUxMixbImNvY2t0YWlsIl0sImY1NjEiLCJNNTc2IDgwYzAtNDQuMi0zNS44LTgwLTgwLTgwLTE4IDAtMzQuNiA2LTQ4IDE2bC04MSAwYzIzLjYtNDcuNCA3Mi41LTgwIDEyOS04MCA3OS41IDAgMTQ0IDY0LjUgMTQ0IDE0NFM1NzUuNSAyMjQgNDk2IDIyNGMtNi41IDAtMTMtLjQtMTkuMy0xLjNsNjQtNzQuN2MxLjEtMS4zIDIuMi0yLjcgMy4zLTQuMSAxOS40LTE0LjYgMzItMzcuOCAzMi02NHpNNjYuOSA4Mi42QzcyLjIgNzEuMyA4My41IDY0IDk2IDY0bDM4NCAwYzEyLjUgMCAyMy44IDcuMyAyOS4xIDE4LjZzMy40IDI0LjctNC44IDM0LjJsLTE4NC4zIDIxNSAwIDExNi4yIDY0IDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJsLTE5MiAwYy0xNy43IDAtMzItMTQuMy0zMi0zMnMxNC4zLTMyIDMyLTMybDY0IDAgMC0xMTYuMi0xODQuMy0yMTVjLTguMS05LjUtMTAtMjIuOC00LjgtMzQuMnpNMTY1LjYgMTI4TDI4OCAyNzAuOCA0MTAuNCAxMjggMTY1LjYgMTI4eiJdfSx4VHQ9cTBlLHlUdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJidWxsaG9ybiIsaWNvbjpbNTEyLDUxMixbMTI4MjI2LDEyODM2M10sImYwYTEiLCJNNDYxLjIgMTguOUM0NzIuNyAyNCA0ODAgMzUuNCA0ODAgNDhsMCA0MTZjMCAxMi42LTcuMyAyNC0xOC44IDI5LjFzLTI0LjggMy4yLTM0LjMtNS4xbC00Ni42LTQwLjdjLTQzLjYtMzguMS05OC43LTYwLjMtMTU2LjQtNjNsMCA5NS43YzAgMTcuNy0xNC4zIDMyLTMyIDMybC0zMiAwYy0xNy43IDAtMzItMTQuMy0zMi0zMmwwLTk2QzU3LjMgMzg0IDAgMzI2LjcgMCAyNTZTNTcuMyAxMjggMTI4IDEyOGw4NC41IDBjNjEuOC0uMiAxMjEuNC0yMi43IDE2Ny45LTYzLjNsNDYuNi00MC43YzkuNC04LjMgMjIuOS0xMC4yIDM0LjMtNS4xek0yMjQgMzIwbDAgLjJjNzAuMyAyLjcgMTM3LjggMjguNSAxOTIgNzMuNGwwLTI3NS4zYy01NC4yIDQ0LjktMTIxLjcgNzAuNy0xOTIgNzMuNEwyMjQgMzIweiJdfSx3VHQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiYm94LXRpc3N1ZSIsaWNvbjpbNTEyLDUxMixbXSwiZTA1YiIsIk0xMDMuOSAzMmwxNjEgMGMxMy44IDAgMjYgOC44IDMwLjQgMjEuOWwxNy40IDUyLjJjNC40IDEzLjEgMTYuNiAyMS45IDMwLjQgMjEuOWw2MC41IDBjMjEuOCAwIDM3LjMgMjEuNCAzMC40IDQyLjFMMzg0IDMyMCAxMjggMzIwIDcyLjcgNzAuOUM2OC4yIDUxIDgzLjQgMzIgMTAzLjkgMzJ6TTQ4IDI1NmwxNi42IDAgMTYuNSA3NC40Qzg2IDM1Mi40IDEwNS41IDM2OCAxMjggMzY4bDI1NiAwYzIwLjcgMCAzOS0xMy4yIDQ1LjUtMzIuOGwyNi40LTc5LjIgOC4xIDBjMjYuNSAwIDQ4IDIxLjUgNDggNDhsMCAxMjhjMCAyNi41LTIxLjUgNDgtNDggNDhMNDggNDgwYy0yNi41IDAtNDgtMjEuNS00OC00OEwwIDMwNGMwLTI2LjUgMjEuNS00OCA0OC00OHoiXX0sTVR0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6Im1hdHRyZXNzLXBpbGxvdyIsaWNvbjpbNTc2LDUxMixbXSwiZTUyNSIsIk0yNTYgNjRMNjQgNjRDMjguNyA2NCAwIDkyLjcgMCAxMjhMMCAzODRjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMTkyIDAgMC0zODR6bTQ4IDM4NGwyMDggMGMzNS4zIDAgNjQtMjguNyA2NC02NGwwLTI1NmMwLTM1LjMtMjguNy02NC02NC02NGwtMjA4IDAgMCAzODR6TTY0IDE2MGMwLTE3LjcgMTQuMy0zMiAzMi0zMmw2NCAwYzE3LjcgMCAzMiAxNC4zIDMyIDMybDAgMTkyYzAgMTcuNy0xNC4zIDMyLTMyIDMybC02NCAwYy0xNy43IDAtMzItMTQuMy0zMi0zMmwwLTE5MnoiXX0sa1R0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImNoZXZyb24tbGVmdCIsaWNvbjpbMzIwLDUxMixbOTAwMV0sImYwNTMiLCJNOS40IDIzMy40Yy0xMi41IDEyLjUtMTIuNSAzMi44IDAgNDUuM2wxOTIgMTkyYzEyLjUgMTIuNSAzMi44IDEyLjUgNDUuMyAwczEyLjUtMzIuOCAwLTQ1LjNMNzcuMyAyNTYgMjQ2LjYgODYuNmMxMi41LTEyLjUgMTIuNS0zMi44IDAtNDUuM3MtMzIuOC0xMi41LTQ1LjMgMGwtMTkyIDE5MnoiXX0sU1R0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImNsb3VkLW1vb24tcmFpbiIsaWNvbjpbNTc2LDUxMixbXSwiZjczYyIsIk00NDggMGMtNjguNiAwLTEyNy4xIDQzLjEtMTQ5LjggMTAzLjggMTcuMSAxNC4xIDI5LjYgMzMuNSAzNC45IDU1LjggMzkuOSAyMS43IDY2LjkgNjMuOSA2Ni45IDExMi41IDAgMTMuNS0yLjEgMjYuNS01LjkgMzguNyAxNi45IDYgMzUgOS4zIDUzLjkgOS4zIDQzIDAgODIuMS0xNyAxMTAuOC00NC42IDQuNi00LjQgNS45LTExLjIgMy4zLTE3cy04LjYtOS4zLTE0LjktOC44Yy0zIC4yLTYuMSAuNC05LjIgLjQtNjMuNSAwLTExNS01MS41LTExNS0xMTUgMC00NS4xIDI2LTg0LjIgNjMuOC0xMDMgNS43LTIuOCA5LTguOSA4LjItMTUuMlM0ODkuNiA1LjMgNDgzLjQgMy45QzQ3MiAxLjQgNDYwLjIgMCA0NDggMHpNMjcyIDM1MmM0NC4yIDAgODAtMzUuOCA4MC04MCAwLTM5LTI3LjktNzEuNS02NC44LTc4LjYgLjUtMy4xIC44LTYuMiAuOC05LjQgMC0zMC45LTI1LjEtNTYtNTYtNTYtMTIuNCAwLTIzLjkgNC0zMy4xIDEwLjgtMTMuNC0yNS41LTQwLjEtNDIuOC03MC45LTQyLjgtNDQuMiAwLTgwIDM1LjgtODAgODAgMCA3LjQgMSAxNC42IDIuOSAyMS41LTI5LjggMTEuNi01MC45IDQwLjYtNTAuOSA3NC41IDAgNDQuMiAzNS44IDgwIDgwIDgwbDE5MiAwek02OSA0MDEuMWMtMTIuNi00LjItMjYuMiAyLjYtMzAuNCAxNS4yTDE3LjIgNDgwLjRDMTMgNDkzIDE5LjggNTA2LjYgMzIuNCA1MTAuOHMyNi4yLTIuNiAzMC40LTE1LjJsMjEuNC02NC4xYzQuMi0xMi42LTIuNi0yNi4yLTE1LjItMzAuNHptMTIwIDBjLTEyLjYtNC4yLTI2LjIgMi42LTMwLjQgMTUuMmwtMjEuNCA2NC4xYy00LjIgMTIuNiAyLjYgMjYuMiAxNS4yIDMwLjRzMjYuMi0yLjYgMzAuNC0xNS4ybDIxLjQtNjQuMWM0LjItMTIuNi0yLjYtMjYuMi0xNS4yLTMwLjR6bTEyMCAwYy0xMi42LTQuMi0yNi4yIDIuNi0zMC40IDE1LjJsLTIxLjQgNjQuMWMtNC4yIDEyLjYgMi42IDI2LjIgMTUuMiAzMC40czI2LjItMi42IDMwLjQtMTUuMmwyMS40LTY0LjFjNC4yLTEyLjYtMi42LTI2LjItMTUuMi0zMC40eiJdfSxMRD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJhcnJvdy1kb3duLTEtOSIsaWNvbjpbNTEyLDUxMixbInNvcnQtbnVtZXJpYy1hc2MiLCJzb3J0LW51bWVyaWMtZG93biJdLCJmMTYyIiwiTTQxOC43IDM4YzguMyA2IDEzLjMgMTUuNyAxMy4zIDI2bDAgOTYgMTYgMGMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMmwtOTYgMGMtMTcuNyAwLTMyLTE0LjMtMzItMzJzMTQuMy0zMiAzMi0zMmwxNiAwIDAtNTEuNi01LjkgMmMtMTYuOCA1LjYtMzQuOS0zLjUtNDAuNS0yMC4yczMuNS0zNC45IDIwLjItNDAuNWw0OC0xNmM5LjgtMy4zIDIwLjUtMS42IDI4LjggNC40ek0zNjUuMSA0MzAuNmwxMS43LTE4Yy0zMi45LTkuOS01Ni44LTQwLjUtNTYuOC03Ni42IDAtNDQuMiAzNS44LTgwIDgwLTgwczgwIDM1LjggODAgODBjMCAyMi45LTYuNiA0NS4zLTE5LjEgNjQuNWwtNDIuMSA2NC45Yy05LjYgMTQuOC0yOS40IDE5LjEtNDQuMyA5LjRzLTE5LjEtMjkuNC05LjQtNDQuM3pNNDI0IDMzNmEyNCAyNCAwIDEgMCAtNDggMCAyNCAyNCAwIDEgMCA0OCAwek0xNTAuNiA0NzAuNmMtMTIuNSAxMi41LTMyLjggMTIuNS00NS4zIDBsLTk2LTk2Yy0xMi41LTEyLjUtMTIuNS0zMi44IDAtNDUuM3MzMi44LTEyLjUgNDUuMyAwTDk2IDM3MC43IDk2IDY0YzAtMTcuNyAxNC4zLTMyIDMyLTMyczMyIDE0LjMgMzIgMzJsMCAzMDYuNyA0MS40LTQxLjRjMTIuNS0xMi41IDMyLjgtMTIuNSA0NS4zIDBzMTIuNSAzMi44IDAgNDUuM2wtOTYgOTZ6Il19LHpUdD1MRCxDVHQ9TEQsVFR0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImhhbmQtc3BvY2siLGljb246WzUxMiw1MTIsWzEyODQwNl0sImYyNTkiLCJNMjE0LjkgMjMuN0MyMTAuMyA2LjYgMTkyLjgtMy41IDE3NS43IDEuMXMtMjcuMiAyMi4xLTIyLjYgMzkuMkwyMDYgMjM3LjhjMi41IDkuMi00LjUgMTguMi0xNCAxOC4yLTYuNCAwLTEyLTQuMi0xMy45LTEwLjNMMTM0LjYgMTAyLjdjLTUuMS0xNi45LTIzLTI2LjQtMzkuOS0yMS4zcy0yNi40IDIzLTIxLjMgMzkuOWw2Mi44IDIwNi40YzIuNCA3LjktNy4yIDEzLjgtMTMuMiA4LjFMNjcuNiAyODNjLTE2LTE1LjItNDEuMy0xNC42LTU2LjYgMS40Uy0zLjYgMzI1LjcgMTIuNCAzNDFMMTI0LjggNDQ4YzQzLjEgNDEuMSAxMDAuNCA2NCAxNjAgNjRsMTkuMSAwYy4xIDAgLjEtLjEgLjEtLjFzLjEtLjEgLjEtLjFjNTguMy0zLjUgMTA4LjYtNDMuMiAxMjUuMy05OS43bDgxLjItMjc1YzUtMTYuOS00LjctMzQuNy0yMS42LTM5LjhzLTM0LjcgNC43LTM5LjggMjEuNkw0MTEuNSAyNDcuMWMtMS42IDUuMy02LjQgOC45LTEyIDguOS03LjkgMC0xMy44LTcuMy0xMi4yLTE1LjFsMzYtMTcwLjNjMy43LTE3LjMtNy40LTM0LjMtMjQuNy0zNy45cy0zNC4zIDcuNC0zNy45IDI0LjdMMzIzLjEgMjM1LjFjLTIuNiAxMi4yLTEzLjMgMjAuOS0yNS44IDIwLjktMTEuOSAwLTIyLjQtOC0yNS40LTE5LjVsLTU3LTIxMi44eiJdfSxqMGU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToid2FuZC1tYWdpYy1zcGFya2xlcyIsaWNvbjpbNTc2LDUxMixbIm1hZ2ljLXdhbmQtc3BhcmtsZXMiXSwiZTJjYSIsIk0yNjMuNC0yN0wyNzguMiA5LjggMzE1IDI0LjZjMyAxLjIgNSA0LjIgNSA3LjRzLTIgNi4yLTUgNy40TDI3OC4yIDU0LjIgMjYzLjQgOTFjLTEuMiAzLTQuMiA1LTcuNCA1cy02LjItMi03LjQtNUwyMzMuOCA1NC4yIDE5NyAzOS40Yy0zLTEuMi01LTQuMi01LTcuNHMyLTYuMiA1LTcuNEwyMzMuOCA5LjggMjQ4LjYtMjdjMS4yLTMgNC4yLTUgNy40LTVzNi4yIDIgNy40IDV6TTExMC43IDQxLjdsMjEuNSA1MC4xIDUwLjEgMjEuNWM1LjkgMi41IDkuNyA4LjMgOS43IDE0LjdzLTMuOCAxMi4yLTkuNyAxNC43bC01MC4xIDIxLjUtMjEuNSA1MC4xYy0yLjUgNS45LTguMyA5LjctMTQuNyA5LjdzLTEyLjItMy44LTE0LjctOS43TDU5LjggMTY0LjIgOS43IDE0Mi43QzMuOCAxNDAuMiAwIDEzNC40IDAgMTI4czMuOC0xMi4yIDkuNy0xNC43TDU5LjggOTEuOCA4MS4zIDQxLjdDODMuOCAzNS44IDg5LjYgMzIgOTYgMzJzMTIuMiAzLjggMTQuNyA5Ljd6TTQ2NCAzMDRjNi40IDAgMTIuMiAzLjggMTQuNyA5LjdsMjEuNSA1MC4xIDUwLjEgMjEuNWM1LjkgMi41IDkuNyA4LjMgOS43IDE0LjdzLTMuOCAxMi4yLTkuNyAxNC43bC01MC4xIDIxLjUtMjEuNSA1MC4xYy0yLjUgNS45LTguMyA5LjctMTQuNyA5LjdzLTEyLjItMy44LTE0LjctOS43bC0yMS41LTUwLjEtNTAuMS0yMS41Yy01LjktMi41LTkuNy04LjMtOS43LTE0LjdzMy44LTEyLjIgOS43LTE0LjdsNTAuMS0yMS41IDIxLjUtNTAuMWMyLjUtNS45IDguMy05LjcgMTQuNy05Ljd6TTQ2MCAwYzExIDAgMjEuNiA0LjQgMjkuNSAxMi4ybDQyLjMgNDIuM0M1MzkuNiA2Mi40IDU0NCA3MyA1NDQgODRzLTQuNCAyMS42LTEyLjIgMjkuNWwtODguMiA4OC4yLTEwMS4zLTEwMS4zIDg4LjItODguMkM0MzguNCA0LjQgNDQ5IDAgNDYwIDB6TTQ0LjIgMzk4LjVMMzA4LjQgMTM0LjMgNDA5LjcgMjM1LjYgMTQ1LjUgNDk5LjhDMTM3LjYgNTA3LjYgMTI3IDUxMiAxMTYgNTEycy0yMS42LTQuNC0yOS41LTEyLjJMNDQuMiA0NTcuNUMzNi40IDQ0OS42IDMyIDQzOSAzMiA0MjhzNC40LTIxLjYgMTIuMi0yOS41eiJdfSxfVHQ9ajBlLExUdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJjb21tZW50LW1lZGljYWwiLGljb246WzUxMiw1MTIsW10sImY3ZjUiLCJNMjU2IDQ4MGMxNDEuNCAwIDI1Ni0xMDcuNSAyNTYtMjQwUzM5Ny40IDAgMjU2IDAgMCAxMDcuNSAwIDI0MGMwIDU0LjMgMTkuMiAxMDQuMyA1MS42IDE0NC41TDIuOCA0NzYuOGMtNC44IDktMy4zIDIwIDMuNiAyNy41czE3LjggOS44IDI3LjEgNS44bDExOC40LTUwLjdDMTgzLjcgNDcyLjYgMjE4LjkgNDgwIDI1NiA0ODB6TTIxNy42IDE1My42YzAtMTAuNiA4LjYtMTkuMiAxOS4yLTE5LjJsMzguNCAwYzEwLjYgMCAxOS4yIDguNiAxOS4yIDE5LjJsMCA0OCA0OCAwYzEwLjYgMCAxOS4yIDguNiAxOS4yIDE5LjJsMCAzOC40YzAgMTAuNi04LjYgMTkuMi0xOS4yIDE5LjJsLTQ4IDAgMCA0OGMwIDEwLjYtOC42IDE5LjItMTkuMiAxOS4ybC0zOC40IDBjLTEwLjYgMC0xOS4yLTguNi0xOS4yLTE5LjJsMC00OC00OCAwYy0xMC42IDAtMTkuMi04LjYtMTkuMi0xOS4ybDAtMzguNGMwLTEwLjYgOC42LTE5LjIgMTkuMi0xOS4ybDQ4IDAgMC00OHoiXX0sQVR0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImJlbGwtc2xhc2giLGljb246WzU3Niw1MTIsWzEyODI3Nyw2MTk0M10sImYxZjYiLCJNNDEtMjQuOWMtOS40LTkuNC0yNC42LTkuNC0zMy45IDBTLTIuMy0uMyA3IDkuMWw1MjggNTI4YzkuNCA5LjQgMjQuNiA5LjQgMzMuOSAwczkuNC0yNC42IDAtMzMuOWwtODcuNS04Ny41YzE3LjItMi40IDMwLjUtMTcuMyAzMC41LTM1LjIgMC04LjEtMi43LTE1LjktNy44LTIyLjJsLTkuOC0xMi4yQzQ2NC40IDMwOC41IDQ0OCAyNjEuOCA0NDggMjEzLjdsMC0yMS43YzAtNzcuNC01NS0xNDItMTI4LTE1Ni44bDAtMy4yYzAtMTcuNy0xNC4zLTMyLTMyLTMycy0zMiAxNC4zLTMyIDMybDAgMy4yYy0zOC42IDcuOC03Mi4yIDI5LjYtOTUuMiA1OS43TDQxLTI0Ljl6bTg3IDIzOC41YzAgNDguMS0xNi40IDk0LjgtNDYuNCAxMzIuNGwtOS44IDEyLjJjLTUgNi4zLTcuOCAxNC4xLTcuOCAyMi4yIDAgMTkuNiAxNS45IDM1LjUgMzUuNSAzNS41bDIzNS4zIDAtMjA2LjktMjA2LjkgMCA0LjV6TTI4OCA1MTJjMjkuOCAwIDU0LjktMjAuNCA2Mi00OGwtMTI0IDBjNy4xIDI3LjYgMzIuMiA0OCA2MiA0OHoiXX0sQUQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiaGFuZHNoYWtlLXNsYXNoIixpY29uOls1NzYsNTEyLFs1NzQzOSwiaGFuZHNoYWtlLWFsdC1zbGFzaCIsImhhbmRzaGFrZS1zaW1wbGUtc2xhc2giXSwiZTA2MCIsIk00MS0yNC45Yy05LjQtOS40LTI0LjYtOS40LTMzLjkgMFMtMi4zLS4zIDcgOS4xbDUyOCA1MjhjOS40IDkuNCAyNC42IDkuNCAzMy45IDBzOS40LTI0LjYgMC0zMy45bC0yODgtMjg4IDE0LjItMTQuMmM0LjItNC4yIDkuNS02LjUgMTQuOS02LjkgNi44LS42IDEzLjggMS43IDE5IDYuOUw1MDUuNiAzNzYgNTc2IDMyMCA1NzYgMzIgNDY0IDk2IDQ0MC4yIDgwLjFDNDI0LjQgNjkuNiA0MDUuOSA2NCAzODYuOSA2NGwtNzAuNCAwYy0xLjEgMC0yLjMgMC0zLjQgLjEtMTYuOSAuOS0zMi44IDguNS00NC4yIDIxLjFsLTU1LjggNjIuMS0zNC0zNCA0NC4zLTQ5LjItMzkuNyAwYy0xNS4zIDAtMzAuMSAzLjYtNDMuNSAxMC40TDQxLTI0Ljl6TTAgNjkuOEwwIDMyMCAxNTYuNCA0NTAuM2MyMyAxOS4yIDUyIDI5LjcgODEuOSAyOS43bDE1LjcgMC03LTdjLTkuNC05LjQtOS40LTI0LjYgMC0zMy45czI0LjYtOS40IDMzLjkgMGw0MSA0MSA5IDBjMjIuMiAwIDQzLjgtNS44IDYyLjgtMTYuNEwwIDY5Ljh6Il19LERUdD1BRCxFVHQ9QUQsJFR0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImJvdHRsZS13YXRlciIsaWNvbjpbMzIwLDUxMixbXSwiZTRjNSIsIk0xMTItMzJsOTYgMGMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMmwtOTYgMEM5NC4zIDMyIDgwIDE3LjcgODAgMHMxNC4zLTMyIDMyLTMyek0xNiAxNDRjMC0zNS4zIDI4LjctNjQgNjQtNjRsMTYwIDBjMzUuMyAwIDY0IDI4LjcgNjQgNjQgMCAyNC4xLTEzLjMgNDUuMS0zMyA1NiAxOS43IDEwLjkgMzMgMzEuOSAzMyA1NnMtMTMuMyA0NS4xLTMzIDU2YzE5LjcgMTAuOSAzMyAzMS45IDMzIDU2cy0xMy4zIDQ1LjEtMzMgNTZjMTkuNyAxMC45IDMzIDMxLjkgMzMgNTYgMCAzNS4zLTI4LjcgNjQtNjQgNjRMODAgNTQ0Yy0zNS4zIDAtNjQtMjguNy02NC02NCAwLTI0LjEgMTMuMy00NS4xIDMzLTU2LTE5LjctMTAuOS0zMy0zMS45LTMzLTU2czEzLjMtNDUuMSAzMy01NmMtMTkuNy0xMC45LTMzLTMxLjktMzMtNTZzMTMuMy00NS4xIDMzLTU2Yy0xOS43LTEwLjktMzMtMzEuOS0zMy01NnoiXX0sSVR0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImRpY2UtZDIwIixpY29uOls1MTIsNTEyLFtdLCJmNmNmIiwiTTIyNC40LTguMmMxOS42LTExLjEgNDMuNi0xMS4xIDYzLjEgMGwxOTIgMTA4LjhjMjAgMTEuNCAzMi40IDMyLjYgMzIuNCA1NS43bDAgMjE1LjZjMCAyMy0xMi40IDQ0LjMtMzIuNCA1NS43bC0xOTIgMTA4LjhjLTE5LjYgMTEuMS00My42IDExLjEtNjMuMSAwTDMyLjQgNDI3LjVDMTIuNCA0MTYuMSAwIDM5NC44IDAgMzcxLjhMMCAxNTYuMmMwLTIzIDEyLjQtNDQuMyAzMi40LTU1LjdMMjI0LjQtOC4yem01MiA3My4yQzI2NyA0OS44IDI0NSA0OS44IDIzNS42IDY1bC03Ni42IDEyMy43LTg1LjQtNDYuMy0zLjgtMS42Yy04LjktMi43LTE4LjggMS4xLTIzLjQgOS42cy0yLjQgMTguOSA0LjcgMjQuOGwzLjMgMi4zIDgzLjQgNDUuMi03NC42IDEyMC42QzU1LjMgMzU2LjIgNjEgMzczIDc1IDM3OC40bDE2MSA2MS45IDAgMzkuN2MwIDExIDkgMjAgMjAgMjBzMjAtOSAyMC0yMGwwLTM5LjcgMTYxLTYxLjljMTQtNS40IDE5LjctMjIuMiAxMS44LTM1bC03NC43LTEyMC42IDgzLjQtNDUuMmM5LjctNS4zIDEzLjMtMTcuNCA4LjEtMjcuMXMtMTcuNC0xMy4zLTI3LjEtOC4xTDM1MyAxODguNyAyNzYuNCA2NXptLTQ3IDMyOS45bC0xMjItNDYuOSA1NC41LTg4LjEgNjcuNSAxMzV6TTQwNC42IDM0OGwtMTIyIDQ2LjkgNjcuNS0xMzUgNTQuNSA4OC4xek0zMTkuMyAyMzJMMjU2IDM1OC42IDE5Mi43IDIzMiAzMTkuMyAyMzJ6TTMwOCAxOTJsLTEwNC4xIDAgNTItODQgNTIgODR6Il19LEREPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImFycm93LWRvd24tei1hIixpY29uOls1MTIsNTEyLFsic29ydC1hbHBoYS1kZXNjIiwic29ydC1hbHBoYS1kb3duLWFsdCJdLCJmODgxIiwiTTIzMC42IDM5MC42bC04MCA4MGMtMTIuNSAxMi41LTMyLjggMTIuNS00NS4zIDBsLTgwLTgwYy0xMi41LTEyLjUtMTIuNS0zMi44IDAtNDUuM3MzMi44LTEyLjUgNDUuMyAwTDk2IDM3MC43IDk2IDY0YzAtMTcuNyAxNC4zLTMyIDMyLTMyczMyIDE0LjMgMzIgMzJsMCAzMDYuNyAyNS40LTI1LjRjMTIuNS0xMi41IDMyLjgtMTIuNSA0NS4zIDBzMTIuNSAzMi44IDAgNDUuM3pNMjg4IDY0YzAtMTcuNyAxNC4zLTMyIDMyLTMybDEyOCAwYzEyLjkgMCAyNC42IDcuOCAyOS42IDE5LjhzMi4yIDI1LjctNi45IDM0LjlMMzk3LjMgMTYwIDQ0OCAxNjBjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJsLTEyOCAwYy0xMi45IDAtMjQuNi03LjgtMjkuNi0xOS44cy0yLjItMjUuNyA2LjktMzQuOUwzNzAuOCA5NiAzMjAgOTZjLTE3LjcgMC0zMi0xNC4zLTMyLTMyek00MTIuNiAyNzMuN2w4MCAxNjBjNy45IDE1LjggMS41IDM1LTE0LjMgNDIuOXMtMzUgMS41LTQyLjktMTQuM2wtNy4yLTE0LjMtODguNCAwLTcuMiAxNC4zYy03LjkgMTUuOC0yNy4xIDIyLjItNDIuOSAxNC4zcy0yMi4yLTI3LjEtMTQuMy00Mi45bDgwLTE2MGM1LjQtMTAuOCAxNi41LTE3LjcgMjguNi0xNy43czIzLjIgNi44IDI4LjYgMTcuN3pNMzg0IDM1OS42bC0yMC4yIDQwLjQgNDAuNCAwLTIwLjItNDAuNHoiXX0sUFR0PURELE5UdD1ERCxGVHQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiYnJ1c2giLGljb246WzM4NCw1MTIsW10sImY1NWQiLCJNMTYyLjQgNmMtMS41LTMuNi01LTYtOC45LTZsLTE5IDBjLTMuOSAwLTcuNSAyLjQtOC45IDZMMTA0LjkgNTcuN2MtMy4yIDgtMTQuNiA4LTE3LjggMEw2Ni40IDZjLTEuNS0zLjYtNS02LTguOS02TDQ4IDBDMjEuNSAwIDAgMjEuNSAwIDQ4bDAgMjA4IDM4NCAwIDAtMjA4YzAtMjYuNS0yMS41LTQ4LTQ4LTQ4TDIzMC41IDBjLTMuOSAwLTcuNSAyLjQtOC45IDZMMjAwLjkgNTcuN2MtMy4yIDgtMTQuNiA4LTE3LjggMEwxNjIuNCA2ek0wIDMwNGwwIDE2YzAgMzUuMyAyOC43IDY0IDY0IDY0bDY0IDAgMCA2NGMwIDM1LjMgMjguNyA2NCA2NCA2NHM2NC0yOC43IDY0LTY0bDAtNjQgNjQgMGMzNS4zIDAgNjQtMjguNyA2NC02NGwwLTE2LTM4NCAwek0xOTIgNDY0Yy04LjggMC0xNi03LjItMTYtMTZzNy4yLTE2IDE2LTE2IDE2IDcuMiAxNiAxNi03LjIgMTYtMTYgMTZ6Il19LE9UdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJwZXJzb24td2Fsa2luZy1kYXNoZWQtbGluZS1hcnJvdy1yaWdodCIsaWNvbjpbNjQwLDUxMixbXSwiZTU1MyIsIk0xNjAgODBhNTYgNTYgMCAxIDAgMC0xMTIgNTYgNTYgMCAxIDAgMCAxMTJ6TTczLjQgMjI3LjlsMjIuNi0yMi42IDAgNjkuM2MwIDI4IDEyLjIgNTQuNyAzMy41IDcyLjlsNzEuNCA2MS4yYzUuOSA1LjEgOS44IDEyLjEgMTAuOSAxOS44bDEyLjYgODguMWMyLjUgMTcuNSAxOC43IDI5LjcgMzYuMiAyNy4yczI5LjctMTguNyAyNy4yLTM2LjJsLTEyLjYtODguMWMtMy4zLTIzLjEtMTQuOS00NC4xLTMyLjYtNTkuM2wtMzQuNS0yOS42IDAtMTE1LjIgMy44IDQuN2MxOC4yIDIyLjggNDUuOCAzNiA3NSAzNmwzMy4yIDBjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJsLTMzLjIgMGMtOS43IDAtMTguOS00LjQtMjUtMTJsLTE3LjktMjIuNGMtMjMtMjguOC01Ny45LTQ1LjYtOTQuOC00NS42LTMyLjIgMC02My4xIDEyLjgtODUuOCAzNS42TDI4LjEgMTgyLjZDMTAuMSAyMDAuNiAwIDIyNSAwIDI1MC41TDAgMjg4YzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJsMC0zNy41YzAtOC41IDMuNC0xNi42IDkuNC0yMi42ek04NS44IDQwNy4zYy0xLjUgNS4yLTQuMyAxMC04LjEgMTMuOEw5LjQgNDg5LjRjLTEyLjUgMTIuNS0xMi41IDMyLjggMCA0NS4zczMyLjggMTIuNSA0NS4zIDBsNjguMy02OC4zYzExLjUtMTEuNSAxOS45LTI1LjggMjQuNC00MS41bDIuMi03LjYtNDYtMzkuNGMtMi41LTIuMi01LTQuNC03LjQtNi44TDg1LjggNDA3LjN6TTQzMiA4YzAtMTMuMy0xMC43LTI0LTI0LTI0UzM4NC01LjMgMzg0IDhsMCAzMmMwIDEzLjMgMTAuNyAyNCAyNCAyNHMyNC0xMC43IDI0LTI0bDAtMzJ6bTAgMTI4YzAtMTMuMy0xMC43LTI0LTI0LTI0cy0yNCAxMC43LTI0IDI0bDAgMzJjMCAxMy4zIDEwLjcgMjQgMjQgMjRzMjQtMTAuNyAyNC0yNGwwLTMyek00MDggMzIwYy0xMy4zIDAtMjQgMTAuNy0yNCAyNGwwIDMyYzAgMTMuMyAxMC43IDI0IDI0IDI0czI0LTEwLjcgMjQtMjRsMC0zMmMwLTEzLjMtMTAuNy0yNC0yNC0yNHptMjQgMTUyYzAtMTMuMy0xMC43LTI0LTI0LTI0cy0yNCAxMC43LTI0IDI0bDAgMzJjMCAxMy4zIDEwLjcgMjQgMjQgMjRzMjQtMTAuNyAyNC0yNGwwLTMyek02MDkgMjczYzkuNC05LjQgOS40LTI0LjYgMC0zMy45bC03Mi03MmMtOS40LTkuNC0yNC42LTkuNC0zMy45IDBzLTkuNCAyNC42IDAgMzMuOWwzMSAzMS0xMDIuMSAwYy0xMy4zIDAtMjQgMTAuNy0yNCAyNHMxMC43IDI0IDI0IDI0bDEwMi4xIDAtMzEgMzFjLTkuNCA5LjQtOS40IDI0LjYgMCAzMy45czI0LjYgOS40IDMzLjkgMGw3Mi03MnoiXX0sVjBlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImFycm93LXVwLXNob3J0LXdpZGUiLGljb246WzU3Niw1MTIsWyJzb3J0LWFtb3VudC11cC1hbHQiXSwiZjg4NSIsIk0zMjAgMzJjLTE3LjcgMC0zMiAxNC4zLTMyIDMyczE0LjMgMzIgMzIgMzJsMzIgMGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMmwtMzIgMHptMCAxMjhjLTE3LjcgMC0zMiAxNC4zLTMyIDMyczE0LjMgMzIgMzIgMzJsOTYgMGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMmwtOTYgMHptMCAxMjhjLTE3LjcgMC0zMiAxNC4zLTMyIDMyczE0LjMgMzIgMzIgMzJsMTYwIDBjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJsLTE2MCAwem0wIDEyOGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJzMTQuMyAzMiAzMiAzMmwyMjQgMGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMmwtMjI0IDB6TTE1MC42IDQxLjRjLTEyLjUtMTIuNS0zMi44LTEyLjUtNDUuMyAwbC05NiA5NmMtMTIuNSAxMi41LTEyLjUgMzIuOCAwIDQ1LjNzMzIuOCAxMi41IDQ1LjMgMEw5NiAxNDEuMyA5NiA0NDhjMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMmwwLTMwNi43IDQxLjQgNDEuNGMxMi41IDEyLjUgMzIuOCAxMi41IDQ1LjMgMHMxMi41LTMyLjggMC00NS4zbC05Ni05NnoiXX0sUlR0PVYwZSxVMGU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZ3JpcC12ZXJ0aWNhbCIsaWNvbjpbMzIwLDUxMixbImdyaWQtdmVydGljYWwiXSwiZjU4ZSIsIk0xMjggNDBjMC0yMi4xLTE3LjktNDAtNDAtNDBMNDAgMEMxNy45IDAgMCAxNy45IDAgNDBMMCA4OGMwIDIyLjEgMTcuOSA0MCA0MCA0MGw0OCAwYzIyLjEgMCA0MC0xNy45IDQwLTQwbDAtNDh6bTAgMTkyYzAtMjIuMS0xNy45LTQwLTQwLTQwbC00OCAwYy0yMi4xIDAtNDAgMTcuOS00MCA0MGwwIDQ4YzAgMjIuMSAxNy45IDQwIDQwIDQwbDQ4IDBjMjIuMSAwIDQwLTE3LjkgNDAtNDBsMC00OHpNMCA0MjRsMCA0OGMwIDIyLjEgMTcuOSA0MCA0MCA0MGw0OCAwYzIyLjEgMCA0MC0xNy45IDQwLTQwbDAtNDhjMC0yMi4xLTE3LjktNDAtNDAtNDBsLTQ4IDBjLTIyLjEgMC00MCAxNy45LTQwIDQwek0zMjAgNDBjMC0yMi4xLTE3LjktNDAtNDAtNDBMMjMyIDBjLTIyLjEgMC00MCAxNy45LTQwIDQwbDAgNDhjMCAyMi4xIDE3LjkgNDAgNDAgNDBsNDggMGMyMi4xIDAgNDAtMTcuOSA0MC00MGwwLTQ4ek0xOTIgMjMybDAgNDhjMCAyMi4xIDE3LjkgNDAgNDAgNDBsNDggMGMyMi4xIDAgNDAtMTcuOSA0MC00MGwwLTQ4YzAtMjIuMS0xNy45LTQwLTQwLTQwbC00OCAwYy0yMi4xIDAtNDAgMTcuOS00MCA0MHpNMzIwIDQyNGMwLTIyLjEtMTcuOS00MC00MC00MGwtNDggMGMtMjIuMSAwLTQwIDE3LjktNDAgNDBsMCA0OGMwIDIyLjEgMTcuOSA0MCA0MCA0MGw0OCAwYzIyLjEgMCA0MC0xNy45IDQwLTQwbDAtNDh6Il19LEJUdD1VMGUsSFR0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImNhci10dW5uZWwiLGljb246WzUxMiw1MTIsW10sImU0ZGUiLCJNMjU2IDBDMTE0LjYgMCAwIDExNC42IDAgMjU2TDAgNDQ4YzAgMzUuMyAyOC43IDY0IDY0IDY0bDQyLjggMGMtNi42LTUuOS0xMC44LTE0LjQtMTAuOC0yNGwwLTExMy4xYzAtMTMuNSAzLjEtMjYuOCA5LTM4LjlsMzkuNy04MC44YzkuNC0xOS4xIDI4LjktMzEuMyA1MC4yLTMxLjNMMzE3IDIyNGMyMS4zIDAgNDAuOCAxMi4xIDUwLjIgMzEuM0w0MDcgMzM2YzUuOSAxMi4xIDkgMjUuNCA5IDM4LjlMNDE2IDQ4OGMwIDkuNi00LjIgMTguMS0xMC44IDI0bDQyLjggMGMzNS4zIDAgNjQtMjguNyA2NC02NGwwLTE5MkM1MTIgMTE0LjYgMzk3LjQgMCAyNTYgMHpNMzYyLjggNTEyYy02LjYtNS45LTEwLjgtMTQuNC0xMC44LTI0bDAtMjQtMTkyIDAgMCAyNGMwIDkuNi00LjIgMTguMS0xMC44IDI0bDIxMy43IDB6bS0xNzUtMjM1LjVsLTI5LjMgNTkuNSAxOTQuOSAwLTI5LjMtNTkuNWMtMS4zLTIuNy00LjEtNC41LTcuMi00LjVMMTk1IDI3MmMtMyAwLTUuOCAxLjctNy4yIDQuNXpNMTc2IDQyNGEyNCAyNCAwIDEgMCAwLTQ4IDI0IDI0IDAgMSAwIDAgNDh6bTE4NC0yNGEyNCAyNCAwIDEgMCAtNDggMCAyNCAyNCAwIDEgMCA0OCAweiJdfSxxVHQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiY2hhcnQtY29sdW1uIixpY29uOls1MTIsNTEyLFtdLCJlMGUzIiwiTTMyIDMyYzE3LjcgMCAzMiAxNC4zIDMyIDMybDAgMzM2YzAgOC44IDcuMiAxNiAxNiAxNmw0MDAgMGMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMkw4MCA0ODBjLTQ0LjIgMC04MC0zNS44LTgwLTgwTDAgNjRDMCA0Ni4zIDE0LjMgMzIgMzIgMzJ6TTE0NCAyMjRjMTcuNyAwIDMyIDE0LjMgMzIgMzJsMCA2NGMwIDE3LjctMTQuMyAzMi0zMiAzMnMtMzItMTQuMy0zMi0zMmwwLTY0YzAtMTcuNyAxNC4zLTMyIDMyLTMyem0xNDQtNjRsMCAxNjBjMCAxNy43LTE0LjMgMzItMzIgMzJzLTMyLTE0LjMtMzItMzJsMC0xNjBjMC0xNy43IDE0LjMtMzIgMzItMzJzMzIgMTQuMyAzMiAzMnptODAgMzJjMTcuNyAwIDMyIDE0LjMgMzIgMzJsMCA5NmMwIDE3LjctMTQuMyAzMi0zMiAzMnMtMzItMTQuMy0zMi0zMmwwLTk2YzAtMTcuNyAxNC4zLTMyIDMyLTMyek01MTIgOTZsMCAyMjRjMCAxNy43LTE0LjMgMzItMzIgMzJzLTMyLTE0LjMtMzItMzJsMC0yMjRjMC0xNy43IDE0LjMtMzIgMzItMzJzMzIgMTQuMyAzMiAzMnoiXX0salR0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImNhcHJpY29ybiIsaWNvbjpbNTc2LDUxMixbXSwiZTg0OCIsIk0yNDAgMzJjNzkuNSAwIDE0NCA2NC41IDE0NCAxNDRsMCA2NS4yYzE4LjgtMTAuOSA0MC43LTE3LjIgNjQtMTcuMiA3MC43IDAgMTI4IDU3LjMgMTI4IDEyOFM1MTguNyA0ODAgNDQ4IDQ4MGMtMzUuOCAwLTY4LjItMTQuNy05MS40LTM4LjQtMjguOCA0Mi41LTc3LjQgNzAuNC0xMzIuNiA3MC40LTE3LjcgMC0zMi0xNC4zLTMyLTMyczE0LjMtMzIgMzItMzJjNTMgMCA5Ni00MyA5Ni05NmwwLTE3NmMwLTQ0LjItMzUuOC04MC04MC04MHMtODAgMzUuOC04MCA4MGwwIDIwOGMwIDE3LjctMTQuMyAzMi0zMiAzMnMtMzItMTQuMy0zMi0zMmwwLTIyNGMwLTM1LjMtMjguNy02NC02NC02NC0xNy43IDAtMzItMTQuMy0zMi0zMlMxNC4zIDMyIDMyIDMyQzcyLjYgMzIgMTA4LjggNTEgMTMyLjIgODAuNSAxNTguNiA1MC43IDE5Ny4xIDMyIDI0MCAzMnpNNDQ4IDI4OGE2NCA2NCAwIDEgMCAwIDEyOCA2NCA2NCAwIDEgMCAwLTEyOHoiXX0sVlR0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InRydWNrLWFycm93LXJpZ2h0IixpY29uOls1NzYsNTEyLFtdLCJlNThiIiwiTTY0IDMyQzI4LjcgMzIgMCA2MC43IDAgOTZMMCAzODRjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMy4zIDBjMTAuNCAzNi45IDQ0LjQgNjQgODQuNyA2NHM3NC4yLTI3LjEgODQuNy02NGwxMDIuNiAwYzEwLjQgMzYuOSA0NC40IDY0IDg0LjcgNjRzNzQuMi0yNy4xIDg0LjctNjRsMy4zIDBjMzUuMyAwIDY0LTI4LjcgNjQtNjRsMC0xNDYuN2MwLTE3LTYuNy0zMy4zLTE4LjctNDUuM0w1MTIgMTQ2LjdjLTEyLTEyLTI4LjMtMTguNy00NS4zLTE4LjdsLTUwLjcgMCAwLTMyYzAtMzUuMy0yOC43LTY0LTY0LTY0TDY0IDMyek01MTIgMjM3LjNsMCA1MC43LTk2IDAgMC05NiA1MC43IDAgNDUuMyA0NS4zek0xNTIgMzg0YTQwIDQwIDAgMSAxIDAgODAgNDAgNDAgMCAxIDEgMC04MHptMjMyIDQwYTQwIDQwIDAgMSAxIDgwIDAgNDAgNDAgMCAxIDEgLTgwIDB6TTMwNSAyMjVsLTcyIDcyYy05LjQgOS40LTI0LjYgOS40LTMzLjkgMHMtOS40LTI0LjYgMC0zMy45bDMxLTMxLTEwMi4xIDBjLTEzLjMgMC0yNC0xMC43LTI0LTI0czEwLjctMjQgMjQtMjRsMTAyLjEgMC0zMS0zMWMtOS40LTkuNC05LjQtMjQuNiAwLTMzLjlzMjQuNi05LjQgMzMuOSAwbDcyIDcyYzkuNCA5LjQgOS40IDI0LjYgMCAzMy45eiJdfSxFRD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJ0diIsaWNvbjpbNTc2LDUxMixbNjM3MTcsInRlbGV2aXNpb24iLCJ0di1hbHQiXSwiZjI2YyIsIk02NCA5NmwwIDI0MCA0NDggMCAwLTI0MC00NDggMHpNMCA5NkMwIDYwLjcgMjguNyAzMiA2NCAzMmw0NDggMGMzNS4zIDAgNjQgMjguNyA2NCA2NGwwIDI0MGMwIDM1LjMtMjguNyA2NC02NCA2NEw2NCA0MDBjLTM1LjMgMC02NC0yOC43LTY0LTY0TDAgOTZ6TTE2MCA0NDhsMjU2IDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJsLTI1NiAwYy0xNy43IDAtMzItMTQuMy0zMi0zMnMxNC4zLTMyIDMyLTMyeiJdfSxVVHQ9RUQsV1R0PUVELEdUdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJzZWN0aW9uIixpY29uOlsyNTYsNTEyLFtdLCJlNDQ3IiwiTTExMCAwQzQ5LjIgMCAwIDQ5LjIgMCAxMTAgMCAxMzMuNyA3LjYgMTU1LjggMjAuNSAxNzQgNy42IDE5MiAwIDIxNC4xIDAgMjM4IDAgMjkxLjcgMzguOSAzMzcuNiA5MS45IDM0Ni40bDYxLjcgMTAuM2MyMi4yIDMuNyAzOC40IDIyLjkgMzguNCA0NS4zIDAgMjUuNC0yMC42IDQ2LTQ2IDQ2bC05OCAwYy0xNy43IDAtMzIgMTQuMy0zMiAzMnMxNC4zIDMyIDMyIDMybDk4IDBjNjAuNyAwIDExMC00OS4yIDExMC0xMTAgMC0yMy43LTcuNi00NS45LTIwLjUtNjQgMTIuOS0xOCAyMC41LTQwLjEgMjAuNS02NCAwLTUzLjgtMzguOS05OS42LTkxLjktMTA4LjVsLTYxLjctMTAuM0M4MC4yIDE1MS42IDY0IDEzMi40IDY0IDExMCA2NCA4NC42IDg0LjYgNjQgMTEwIDY0bDk4IDBjMTcuNyAwIDMyLTE0LjMgMzItMzJTMjI1LjcgMCAyMDggMEwxMTAgMHptNzQuNyAyOTkuMWMtNi41LTIuNC0xMy40LTQuMy0yMC41LTUuNWwtNjEuNy0xMC4zYy0yMi4yLTMuNy0zOC40LTIyLjktMzguNC00NS4zIDAtOS4yIDIuNy0xNy44IDcuNC0yNSA2LjUgMi40IDEzLjQgNC4zIDIwLjUgNS41bDYxLjcgMTAuM2MyMi4yIDMuNyAzOC40IDIyLjkgMzguNCA0NS4zIDAgOS4yLTIuNyAxNy44LTcuNCAyNXoiXX0sWVR0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InBlYWNlIixpY29uOls1MTIsNTEyLFs5Nzc0XSwiZjY3YyIsIk0yMjQgNDQ1LjNsMC0xMjEuOC05NC4zIDc3LjFjMjYuMSAyMi44IDU4LjUgMzguNyA5NC4zIDQ0Ljd6TTg5LjIgMzUxLjFMMjI0IDI0MC44IDIyNCA2Ni43Yy05MC44IDE1LjItMTYwIDk0LjItMTYwIDE4OS4zIDAgMzQuNiA5LjIgNjcuMSAyNS4yIDk1LjF6bTI5My4xIDQ5LjVsLTk0LjMtNzcuMSAwIDEyMS44YzM1LjctNiA2OC4xLTIxLjkgOTQuMy00NC43em00MC42LTQ5LjVjMTYtMjggMjUuMi02MC41IDI1LjItOTUuMSAwLTk1LjEtNjkuMi0xNzQuMS0xNjAtMTg5LjNsMCAxNzQuMiAxMzQuOCAxMTAuM3pNMCAyNTZhMjU2IDI1NiAwIDEgMSA1MTIgMCAyNTYgMjU2IDAgMSAxIC01MTIgMHoiXX0sWlR0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InN0YXIiLGljb246WzU3Niw1MTIsWzExMDg4LDYxNDQ2XSwiZjAwNSIsIk0zMDkuNS0xOC45Yy00LjEtOC0xMi40LTEzLjEtMjEuNC0xMy4xcy0xNy4zIDUuMS0yMS40IDEzLjFMMTkzLjEgMTI1LjMgMzMuMiAxNTAuN2MtOC45IDEuNC0xNi4zIDcuNy0xOS4xIDE2LjNzLS41IDE4IDUuOCAyNC40bDExNC40IDExNC41LTI1LjIgMTU5LjljLTEuNCA4LjkgMi4zIDE3LjkgOS42IDIzLjJzMTYuOSA2LjEgMjUgMkwyODguMSA0MTcuNiA0MzIuNCA0OTFjOCA0LjEgMTcuNyAzLjMgMjUtMnMxMS0xNC4yIDkuNi0yMy4yTDQ0MS43IDMwNS45IDU1Ni4xIDE5MS40YzYuNC02LjQgOC42LTE1LjggNS44LTI0LjRzLTEwLjEtMTQuOS0xOS4xLTE2LjNMMzgzIDEyNS4zIDMwOS41LTE4Ljl6Il19LFhUdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJmbGFnIixpY29uOls0NDgsNTEyLFsxMjc5ODgsNjE3MjVdLCJmMDI0IiwiTTY0IDMyQzY0IDE0LjMgNDkuNyAwIDMyIDBTMCAxNC4zIDAgMzJMMCA0ODBjMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMmwwLTEyMS42IDYyLjctMTguOGM0MS45LTEyLjYgODcuMS04LjcgMTI2LjIgMTAuOSA0Mi43IDIxLjQgOTIuNSAyNCAxMzcuMiA3LjJsMzcuMS0xMy45YzEyLjUtNC43IDIwLjgtMTYuNiAyMC44LTMwbDAtMjQ3LjdjMC0yMy0yNC4yLTM4LTQ0LjgtMjcuN2wtMTEuOCA1LjljLTQ0LjkgMjIuNS05Ny44IDIyLjUtMTQyLjggMC0zNi40LTE4LjItNzguMy0yMS44LTExNy4yLTEwLjFMNjQgNTQuNCA2NCAzMnoiXX0sJEQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToidHJpYW5nbGUtZXhjbGFtYXRpb24iLGljb246WzUxMiw1MTIsWzk4ODgsImV4Y2xhbWF0aW9uLXRyaWFuZ2xlIiwid2FybmluZyJdLCJmMDcxIiwiTTI1NiAwYzE0LjcgMCAyOC4yIDguMSAzNS4yIDIxbDIxNiA0MDBjNi43IDEyLjQgNi40IDI3LjQtLjggMzkuNVM0ODYuMSA0ODAgNDcyIDQ4MEw0MCA0ODBjLTE0LjEgMC0yNy4yLTcuNC0zNC40LTE5LjVzLTcuNS0yNy4xLS44LTM5LjVsMjE2LTQwMGM3LTEyLjkgMjAuNS0yMSAzNS4yLTIxem0wIDM1MmEzMiAzMiAwIDEgMCAwIDY0IDMyIDMyIDAgMSAwIDAtNjR6bTAtMTkyYy0xOC4yIDAtMzIuNyAxNS41LTMxLjQgMzMuN2w3LjQgMTA0Yy45IDEyLjUgMTEuNCAyMi4zIDIzLjkgMjIuMyAxMi42IDAgMjMtOS43IDIzLjktMjIuM2w3LjQtMTA0YzEuMy0xOC4yLTEzLjEtMzMuNy0zMS40LTMzLjd6Il19LFFUdD0kRCxKVHQ9JEQsS1R0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InNjaG9vbC1jaXJjbGUtZXhjbGFtYXRpb24iLGljb246WzY0MCw1MTIsW10sImU1NmMiLCJNNjQgMTI4Yy0zNS4zIDAtNjQgMjguNy02NCA2NEwwIDQ0OGMwIDM1LjMgMjguNyA2NCA2NCA2NGwyNzYgMGMtMTAuNS0xNC42LTE5LTMwLjctMjUuMS00OGwtOTAuOSAwIDAtODhjMC0yMi4xIDE3LjktNDAgNDAtNDBsNDggMGMxIDAgMS45IDAgMi45IC4xIDI2LjMtNzQuNiA5Ny41LTEyOC4xIDE4MS4xLTEyOC4xIDI4LjYgMCA1NS42IDYuMiA4MCAxNy40bDAtMzMuNGMwLTM1LjMtMjguNy02NC02NC02NGwtNjQgMC0xMjcuOS0xMTUuMWMtMTguMy0xNi40LTQ2LTE2LjQtNjQuMiAwTDEyOCAxMjggNjQgMTI4em02NCAyNDBjMCA4LjgtNy4yIDE2LTE2IDE2bC0zMiAwYy04LjggMC0xNi03LjItMTYtMTZsMC0zMmMwLTguOCA3LjItMTYgMTYtMTZsMzIgMGM4LjggMCAxNiA3LjIgMTYgMTZsMCAzMnpNMTEyIDI1NmwtMzIgMGMtOC44IDAtMTYtNy4yLTE2LTE2bDAtMzJjMC04LjggNy4yLTE2IDE2LTE2bDMyIDBjOC44IDAgMTYgNy4yIDE2IDE2bDAgMzJjMCA4LjgtNy4yIDE2LTE2IDE2ek0yODggMTI4YTY0IDY0IDAgMSAxIDAgMTI4IDY0IDY0IDAgMSAxIDAtMTI4ek00OTYgNTQ0YTE0NCAxNDQgMCAxIDAgMC0yODggMTQ0IDE0NCAwIDEgMCAwIDI4OHptMC0xMDBhMjAgMjAgMCAxIDEgMCA0MCAyMCAyMCAwIDEgMSAwLTQwem0wLTE0MGM4LjggMCAxNiA3LjIgMTYgMTZsMCA4MGMwIDguOC03LjIgMTYtMTYgMTZzLTE2LTcuMi0xNi0xNmwwLTgwYzAtOC44IDcuMi0xNiAxNi0xNnoiXX0sVzBlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImdyYWR1YXRpb24tY2FwIixpY29uOls1NzYsNTEyLFsxMjc4OTEsIm1vcnRhci1ib2FyZCJdLCJmMTlkIiwiTTQ4IDE5NS44bDIwOS4yIDg2LjFjOS44IDQgMjAuMiA2LjEgMzAuOCA2LjFzMjEtMi4xIDMwLjgtNi4xbDI0Mi40LTk5LjhjOS0zLjcgMTQuOC0xMi40IDE0LjgtMjIuMXMtNS44LTE4LjQtMTQuOC0yMi4xTDMxOC44IDM4LjFDMzA5IDM0LjEgMjk4LjYgMzIgMjg4IDMycy0yMSAyLjEtMzAuOCA2LjFMMTQuOCAxMzcuOUM1LjggMTQxLjYgMCAxNTAuMyAwIDE2MEwwIDQ1NmMwIDEzLjMgMTAuNyAyNCAyNCAyNHMyNC0xMC43IDI0LTI0bDAtMjYwLjJ6bTQ4IDcxLjdMOTYgMzg0YzAgNTMgODYgOTYgMTkyIDk2czE5Mi00MyAxOTItOTZsMC0xMTYuNi0xNDIuOSA1OC45Yy0xNS42IDYuNC0zMi4yIDkuNy00OS4xIDkuN3MtMzMuNS0zLjMtNDkuMS05LjdMOTYgMjY3LjR6Il19LGVfdD1XMGUsdF90PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InN0b3JlIixpY29uOls1MTIsNTEyLFtdLCJmNTRlIiwiTTMwLjcgNzIuM0MzNy42IDQ4LjQgNTkuNSAzMiA4NC40IDMybDM0NCAwYzI0LjkgMCA0Ni44IDE2LjQgNTMuOCA0MC4zbDIzLjQgODAuMmMxMi44IDQzLjctMjAuMSA4Ny41LTY1LjYgODcuNS0yNi4zIDAtNDkuNC0xNC45LTYwLjgtMzcuMS0xMS42IDIxLjktMzQuNiAzNy4xLTYxLjQgMzcuMS0yNi42IDAtNDkuNy0xNS02MS4zLTM3LTExLjYgMjItMzQuNyAzNy02MS4zIDM3LTI2LjggMC00OS44LTE1LjEtNjEuNC0zNy4xLTExLjQgMjIuMS0zNC41IDM3LjEtNjAuOCAzNy4xLTQ1LjYgMC03OC40LTQzLjctNjUuNi04Ny41TDMwLjcgNzIuM3pNOTYuNCAzNTJsMzIwIDAgMC02Ni40YzcuNiAxLjYgMTUuNSAyLjQgMjMuNSAyLjQgMTQuMyAwIDI4LTIuNiA0MC41LTcuMmwwIDE1MS4yYzAgMjYuNS0yMS41IDQ4LTQ4IDQ4bC0zNTIgMGMtMjYuNSAwLTQ4LTIxLjUtNDgtNDhsMC0xNTEuMmMxMi41IDQuNiAyNi4xIDcuMiA0MC41IDcuMiA4LjEgMCAxNS45LS44IDIzLjUtMi40bDAgNjYuNHoiXX0scl90PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InVzZXItYXN0cm9uYXV0IixpY29uOls0NDgsNTEyLFtdLCJmNGZiIiwiTTIyNCAzMzZjNzQuNiAwIDEzOC40LTQ2LjQgMTY0LTExMmw0IDBjMTMuMyAwIDI0LTEwLjcgMjQtMjRsMC04MGMwLTEzLjMtMTAuNy0yNC0yNC0yNGwtNCAwQzM2Mi40IDMwLjQgMjk4LjYtMTYgMjI0LTE2Uzg1LjYgMzAuNCA2MCA5NmwtNCAwYy0xMy4zIDAtMjQgMTAuNy0yNCAyNGwwIDgwYzAgMTMuMyAxMC43IDI0IDI0IDI0bDQgMGMyNS42IDY1LjYgODkuNCAxMTIgMTY0IDExMnpNMjA4IDgwbDMyIDBjNTMgMCA5NiA0MyA5NiA5NnMtNDMgOTYtOTYgOTZsLTMyIDBjLTUzIDAtOTYtNDMtOTYtOTZzNDMtOTYgOTYtOTZ6TTE2IDQ4NC42QzE2IDQ5OS43IDI4LjMgNTEyIDQzLjQgNTEybDUyLjYgMCAwLTQ4YzAtMTcuNyAxNC4zLTMyIDMyLTMybDE5MiAwYzE3LjcgMCAzMiAxNC4zIDMyIDMybDAgNDggNTIuNiAwYzE1LjEgMCAyNy40LTEyLjMgMjcuNC0yNy40IDAtNTkuOC0zMS45LTExMi4yLTc5LjYtMTQxLTM2LjQgMjUuNS04MC42IDQwLjQtMTI4LjQgNDAuNHMtOTItMTQuOS0xMjguNC00MC40QzQ3LjkgMzcyLjQgMTYgNDI0LjggMTYgNDg0LjZ6TTE4My4zIDE0MS41Yy0uOS0zLjMtMy45LTUuNS03LjMtNS41cy02LjQgMi4yLTcuMyA1LjVsLTYgMjEuMi0yMS4yIDZjLTMuMyAuOS01LjUgMy45LTUuNSA3LjNzMi4yIDYuNCA1LjUgNy4zbDIxLjIgNiA2IDIxLjJjLjkgMy4zIDMuOSA1LjUgNy4zIDUuNXM2LjQtMi4yIDcuMy01LjVsNi0yMS4yIDIxLjItNmMzLjMtLjkgNS41LTMuOSA1LjUtNy4zcy0yLjItNi40LTUuNS03LjNsLTIxLjItNi02LTIxLjJ6TTE1MiA0ODhsMCAyNCA0OCAwIDAtMjRjMC0xMy4zLTEwLjctMjQtMjQtMjRzLTI0IDEwLjctMjQgMjR6bTEyMC0yNGMtMTMuMyAwLTI0IDEwLjctMjQgMjRsMCAyNCA0OCAwIDAtMjRjMC0xMy4zLTEwLjctMjQtMjQtMjR6Il19LGlfdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJidWlsZGluZy1mbGFnIixpY29uOls2NDAsNTEyLFtdLCJlNGQ1IiwiTTY0IDBDMjguNyAwIDAgMjguNyAwIDY0TDAgNDQ4YzAgMzUuMyAyOC43IDY0IDY0IDY0bDI1NiAwYzM1LjMgMCA2NC0yOC43IDY0LTY0bDAtMzg0YzAtMzUuMy0yOC43LTY0LTY0LTY0TDY0IDB6TTE3NiAzNTJsMzIgMGMxNy43IDAgMzIgMTQuMyAzMiAzMmwwIDgwLTk2IDAgMC04MGMwLTE3LjcgMTQuMy0zMiAzMi0zMnpNOTYgMTEyYzAtOC44IDcuMi0xNiAxNi0xNmwzMiAwYzguOCAwIDE2IDcuMiAxNiAxNmwwIDMyYzAgOC44LTcuMiAxNi0xNiAxNmwtMzIgMGMtOC44IDAtMTYtNy4yLTE2LTE2bDAtMzJ6TTI0MCA5NmwzMiAwYzguOCAwIDE2IDcuMiAxNiAxNmwwIDMyYzAgOC44LTcuMiAxNi0xNiAxNmwtMzIgMGMtOC44IDAtMTYtNy4yLTE2LTE2bDAtMzJjMC04LjggNy4yLTE2IDE2LTE2ek05NiAyNDBjMC04LjggNy4yLTE2IDE2LTE2bDMyIDBjOC44IDAgMTYgNy4yIDE2IDE2bDAgMzJjMCA4LjgtNy4yIDE2LTE2IDE2bC0zMiAwYy04LjggMC0xNi03LjItMTYtMTZsMC0zMnptMTQ0LTE2bDMyIDBjOC44IDAgMTYgNy4yIDE2IDE2bDAgMzJjMCA4LjgtNy4yIDE2LTE2IDE2bC0zMiAwYy04LjggMC0xNi03LjItMTYtMTZsMC0zMmMwLTguOCA3LjItMTYgMTYtMTZ6TTQ2NCAwYy0xNy43IDAtMzIgMTQuMy0zMiAzMmwwIDQ0OGMwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMybDAtMjg4IDExMiAwYzE3LjcgMCAzMi0xNC4zIDMyLTMybDAtOTZjMC0xNy43LTE0LjMtMzItMzItMzJMNDk2IDMyYzAtMTcuNy0xNC4zLTMyLTMyLTMyeiJdfSxHMGU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToibXVnLXNhdWNlciIsaWNvbjpbNTc2LDUxMixbImNvZmZlZSJdLCJmMGY0IiwiTTY0IDY0YzAtMTcuNyAxNC4zLTMyIDMyLTMybDM1MiAwYzcwLjcgMCAxMjggNTcuMyAxMjggMTI4UzUxOC43IDI4OCA0NDggMjg4YzAgNTMtNDMgOTYtOTYgOTZsLTE5MiAwYy01MyAwLTk2LTQzLTk2LTk2TDY0IDY0em00NDggOTZjMC0zNS4zLTI4LjctNjQtNjQtNjRsMCAxMjhjMzUuMyAwIDY0LTI4LjcgNjQtNjR6TTY0IDQ0OGwzODQgMGMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMkw2NCA1MTJjLTE3LjcgMC0zMi0xNC4zLTMyLTMyczE0LjMtMzIgMzItMzJ6Il19LGFfdD1HMGUsbl90PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImxlbW9uIixpY29uOls0NDgsNTEyLFsxMjc4MTldLCJmMDk0IiwiTTQ0OCA5NmMwLTM1LjMtMjguNy02NC02NC02NC02LjYgMC0xMyAxLTE5IDIuOS0yMi41IDctNDguMSAxNC45LTcxIDktNzUuMi0xOS4xLTE1Ni40IDExLTIxMy43IDY4LjNTLTcuMiAyNTAuOCAxMS45IDMyNmM1LjggMjIuOS0yIDQ4LjQtOSA3MS0xLjkgNi0yLjkgMTIuNC0yLjkgMTkgMCAzNS4zIDI4LjcgNjQgNjQgNjQgNi42IDAgMTMtMSAxOS4xLTIuOSAyMi41LTcgNDguMS0xNC45IDcxLTkgNzUuMiAxOS4xIDE1Ni40LTExIDIxMy43LTY4LjNTNDU1LjIgMjYxLjIgNDM2LjEgMTg2Yy01LjgtMjIuOSAyLTQ4LjQgOS03MSAxLjktNiAyLjktMTIuNCAyLjktMTkuMXpNMjIyLjcgMTQzYy01MiAxNS4yLTk2LjUgNTkuNy0xMTEuNyAxMTEuNy0zLjcgMTIuNy0xNy4xIDIwLTI5LjggMTYuM1M2MS4yIDI1NCA2NSAyNDEuM2MxOS44LTY3LjcgNzYuNi0xMjQuNSAxNDQuMy0xNDQuMyAxMi43LTMuNyAyNi4xIDMuNiAyOS44IDE2LjNzLTMuNiAyNi4xLTE2LjMgMjkuOHoiXX0sb190PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImNhcmF2YW4iLGljb246WzY0MCw1MTIsW10sImY4ZmYiLCJNMzIgOTZjMC0zNS4zIDI4LjctNjQgNjQtNjRsMzIwIDBjNzAuNyAwIDEyOCA1Ny4zIDEyOCAxMjhsMCAxOTIgNjQgMGMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMmwtMjk2LjQgMGMuMiAyLjYgLjQgNS4zIC40IDggMCA0OC42LTM5LjQgODgtODggODhzLTg4LTM5LjQtODgtODhjMC0yLjcgLjEtNS40IC40LThMOTYgNDE2Yy0zNS4zIDAtNjQtMjguNy02NC02NEwzMiA5NnpNMzUyIDM1Mmw2NCAwYzE3LjcgMCAzMi0xNC4zIDMyLTMybDAtNDgtMjQgMGMtMTMuMyAwLTI0LTEwLjctMjQtMjRzMTAuNy0yNCAyNC0yNGwyNCAwIDAtNjRjMC0xNy43LTE0LjMtMzItMzItMzJsLTY0IDBjLTE3LjcgMC0zMiAxNC4zLTMyIDMybDAgMTYwYzAgMTcuNyAxNC4zIDMyIDMyIDMyek0xNjAgMTI4Yy0xNy43IDAtMzIgMTQuMy0zMiAzMmwwIDY0YzAgMTcuNyAxNC4zIDMyIDMyIDMybDY0IDBjMTcuNyAwIDMyLTE0LjMgMzItMzJsMC02NGMwLTE3LjctMTQuMy0zMi0zMi0zMmwtNjQgMHptNjQgMzM2YTQwIDQwIDAgMSAwIDAtODAgNDAgNDAgMCAxIDAgMCA4MHoiXX0sc190PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InEiLGljb246WzQ0OCw1MTIsWzExM10sIjUxIiwiTTY0IDI1NmMwIDg4LjQgNzEuNiAxNjAgMTYwIDE2MCAyOC45IDAgNTYtNy43IDc5LjQtMjEuMWwtNzItODYuNGMtMTEuMy0xMy42LTkuNS0zMy44IDQuMS00NS4xczMzLjgtOS41IDQ1LjEgNC4xbDcwLjkgODUuMWMyMC40LTI2LjggMzIuNS02MC4zIDMyLjUtOTYuNiAwLTg4LjQtNzEuNi0xNjAtMTYwLTE2MFM2NCAxNjcuNiA2NCAyNTZ6TTM0NC45IDQ0NC42QzMxMCA0NjcgMjY4LjUgNDgwIDIyNCA0ODAgMTAwLjMgNDgwIDAgMzc5LjcgMCAyNTZTMTAwLjMgMzIgMjI0IDMyIDQ0OCAxMzIuMyA0NDggMjU2YzAgNTYuMS0yMC42IDEwNy40LTU0LjcgMTQ2LjdsNDcuMyA1Ni44YzExLjMgMTMuNiA5LjUgMzMuOC00LjEgNDUuMXMtMzMuOCA5LjUtNDUuMS00LjFsLTQ2LjYtNTUuOXoiXX0sbF90PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImxvY2siLGljb246WzM4NCw1MTIsWzEyODI3NF0sImYwMjMiLCJNMTI4IDk2bDAgNjQgMTI4IDAgMC02NGMwLTM1LjMtMjguNy02NC02NC02NHMtNjQgMjguNy02NCA2NHpNNjQgMTYwbDAtNjRDNjQgMjUuMyAxMjEuMy0zMiAxOTItMzJTMzIwIDI1LjMgMzIwIDk2bDAgNjRjMzUuMyAwIDY0IDI4LjcgNjQgNjRsMCAyMjRjMCAzNS4zLTI4LjcgNjQtNjQgNjRMNjQgNTEyYy0zNS4zIDAtNjQtMjguNy02NC02NEwwIDIyNGMwLTM1LjMgMjguNy02NCA2NC02NHoiXX0sY190PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InBhaW50LXJvbGxlciIsaWNvbjpbNTEyLDUxMixbXSwiZjVhYSIsIk0wIDY0QzAgMjguNyAyOC43IDAgNjQgMEwzNTIgMGMzNS4zIDAgNjQgMjguNyA2NCA2NGwxNiAwYzQ0LjIgMCA4MCAzNS44IDgwIDgwbDAgOTZjMCA0NC4yLTM1LjggODAtODAgODBsLTE2MCAwYy04LjggMC0xNiA3LjItMTYgMTZsMCAxOC43YzE4LjYgNi42IDMyIDI0LjQgMzIgNDUuM2wwIDk2YzAgMjYuNS0yMS41IDQ4LTQ4IDQ4bC0zMiAwYy0yNi41IDAtNDgtMjEuNS00OC00OGwwLTk2YzAtMjAuOSAxMy40LTM4LjcgMzItNDUuM2wwLTE4LjdjMC00NC4yIDM1LjgtODAgODAtODBsMTYwIDBjOC44IDAgMTYtNy4yIDE2LTE2bDAtOTZjMC04LjgtNy4yLTE2LTE2LTE2bC0xNiAwYzAgMzUuMy0yOC43IDY0LTY0IDY0TDY0IDE5MmMtMzUuMyAwLTY0LTI4LjctNjQtNjRMMCA2NHoiXX0sWTBlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InZvbHVtZS1oaWdoIixpY29uOls2NDAsNTEyLFsxMjgyNjYsInZvbHVtZS11cCJdLCJmMDI4IiwiTTUzMy42IDMyLjVjLTEwLjMtOC40LTI1LjQtNi44LTMzLjggMy41cy02LjggMjUuNCAzLjUgMzMuOEM1NTcuNSAxMTMuOCA1OTIgMTgwLjggNTkyIDI1NnMtMzQuNSAxNDIuMi04OC43IDE4Ni4zYy0xMC4zIDguNC0xMS44IDIzLjUtMy41IDMzLjhzMjMuNSAxMS44IDMzLjggMy41QzU5OC41IDQyNi43IDY0MCAzNDYuMiA2NDAgMjU2UzU5OC41IDg1LjIgNTMzLjYgMzIuNXpNNDczLjEgMTA3Yy0xMC4zLTguNC0yNS40LTYuOC0zMy44IDMuNXMtNi44IDI1LjQgMy41IDMzLjhDNDc1LjMgMTcwLjcgNDk2IDIxMC45IDQ5NiAyNTZzLTIwLjcgODUuMy01My4yIDExMS44Yy0xMC4zIDguNC0xMS44IDIzLjUtMy41IDMzLjhzMjMuNSAxMS44IDMzLjggMy41YzQzLjItMzUuMiA3MC45LTg4LjkgNzAuOS0xNDlzLTI3LjctMTEzLjgtNzAuOS0xNDl6bS02MC41IDc0LjVjLTEwLjMtOC40LTI1LjQtNi44LTMzLjggMy41cy02LjggMjUuNCAzLjUgMzMuOEMzOTMuMSAyMjcuNiA0MDAgMjQxIDQwMCAyNTZzLTYuOSAyOC40LTE3LjcgMzcuM2MtMTAuMyA4LjQtMTEuOCAyMy41LTMuNSAzMy44czIzLjUgMTEuOCAzMy44IDMuNUM0MzQuMSAzMTIuOSA0NDggMjg2LjEgNDQ4IDI1NnMtMTMuOS01Ni45LTM1LjQtNzQuNXpNODAgMzUybDQ4IDAgMTM0LjEgMTE5LjJjNi40IDUuNyAxNC42IDguOCAyMy4xIDguOCAxOS4yIDAgMzQuOC0xNS42IDM0LjgtMzQuOGwwLTM3OC40YzAtMTkuMi0xNS42LTM0LjgtMzQuOC0zNC44LTguNSAwLTE2LjcgMy4xLTIzLjEgOC44TDEyOCAxNjAgODAgMTYwYy0yNi41IDAtNDggMjEuNS00OCA0OGwwIDk2YzAgMjYuNSAyMS41IDQ4IDQ4IDQ4eiJdfSxkX3Q9WTBlLHVfdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJmb2xkZXItcGx1cyIsaWNvbjpbNTEyLDUxMixbXSwiZjY1ZSIsIk01MTIgMzg0YzAgMzUuMy0yOC43IDY0LTY0IDY0TDY0IDQ0OGMtMzUuMyAwLTY0LTI4LjctNjQtNjRMMCA5NkMwIDYwLjcgMjguNyAzMiA2NCAzMmwxMzguNyAwYzEzLjggMCAyNy4zIDQuNSAzOC40IDEyLjhsMzguNCAyOC44YzUuNSA0LjIgMTIuMyA2LjQgMTkuMiA2LjRMNDQ4IDgwYzM1LjMgMCA2NCAyOC43IDY0IDY0bDAgMjQwek0yNTYgMTYwYy0xMy4zIDAtMjQgMTAuNy0yNCAyNGwwIDQ4LTQ4IDBjLTEzLjMgMC0yNCAxMC43LTI0IDI0czEwLjcgMjQgMjQgMjRsNDggMCAwIDQ4YzAgMTMuMyAxMC43IDI0IDI0IDI0czI0LTEwLjcgMjQtMjRsMC00OCA0OCAwYzEzLjMgMCAyNC0xMC43IDI0LTI0cy0xMC43LTI0LTI0LTI0bC00OCAwIDAtNDhjMC0xMy4zLTEwLjctMjQtMjQtMjR6Il19LHBfdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJtZXJjdXJ5IixpY29uOlszODQsNTEyLFs5NzkxXSwiZjIyMyIsIk0xMTctNEMxMDYtMTcuOCA4NS44LTIwIDcyLjEtOXMtMTYgMzEuMi01IDQ1Qzc0LjkgNDUuNyA4My43IDU0LjUgOTMuNSA2Mi4xIDQ2LjcgOTMuNyAxNiAxNDcuMyAxNiAyMDggMTYgMjk0LjMgNzguMSAzNjYuMSAxNjAgMzgxLjFsMCAzNC45LTMyIDBjLTE3LjcgMC0zMiAxNC4zLTMyIDMyczE0LjMgMzIgMzIgMzJsMzIgMCAwIDMyYzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJsMC0zMiAzMiAwYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMybC0zMiAwIDAtMzQuOWM4MS45LTE1IDE0NC04Ni44IDE0NC0xNzMuMSAwLTYwLjctMzAuNy0xMTQuMy03Ny41LTE0NS45IDkuOC03LjcgMTguNy0xNi40IDI2LjQtMjYuMSAxMS4xLTEzLjggOC44LTMzLjktNS00NVMyNzgtMTcuOCAyNjctNGMtMTcuNiAyMi00NC43IDM2LTc1IDM2UzEzNC43IDE4IDExNy00em03NSAzMjRjLTYxLjkgMC0xMTItNTAuMS0xMTItMTEyUzEzMC4xIDk2IDE5MiA5NiAzMDQgMTQ2LjEgMzA0IDIwOGMwIDYxLjgtNTAuMSAxMTItMTExLjkgMTEybC0uMSAweiJdfSxoX3Q9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiYW5jaG9yIixpY29uOls1NzYsNTEyLFs5ODc1XSwiZjEzZCIsIk0yODggNjRhMzIgMzIgMCAxIDAgMCA2NCAzMiAzMiAwIDEgMCAwLTY0ek0xOTIgOTZjMC01MyA0My05NiA5Ni05NnM5NiA0MyA5NiA5NmMwIDQxLjgtMjYuNyA3Ny40LTY0IDkwLjVsMCAyNTcuOWM2Mi45LTE0LjMgMTEwLjItNjkuNyAxMTEuOS0xMzYuNWwtMTYuMSAxNC4xYy0xMCA4LjctMjUuMSA3LjctMzMuOS0yLjNzLTcuNy0yNS4xIDIuMy0zMy45bDY0LTU2YzktNy45IDIyLjYtNy45IDMxLjYgMGw2NCA1NmMxMCA4LjcgMTEgMjMuOSAyLjMgMzMuOXMtMjMuOSAxMS0zMy45IDIuM0w0OTYgMzA3LjlDNDkzLjkgNDIxIDQwMS42IDUxMiAyODggNTEyUzgyLjEgNDIxIDgwIDMwNy45TDYzLjggMzIyLjFjLTEwIDguNy0yNS4xIDcuNy0zMy45LTIuM3MtNy43LTI1LjEgMi4zLTMzLjlsNjQtNTZjOS03LjkgMjIuNi03LjkgMzEuNiAwbDY0IDU2YzEwIDguNyAxMSAyMy45IDIuMyAzMy45cy0yMy45IDExLTMzLjkgMi4zbC0xNi4xLTE0LjFjMS44IDY2LjggNDkuMSAxMjIuMiAxMTEuOSAxMzYuNWwwLTI1Ny45Yy0zNy4zLTEzLjItNjQtNDguNy02NC05MC41eiJdfSxaMGU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToic3F1YXJlLXBhcmtpbmciLGljb246WzQ0OCw1MTIsWzEyNzM1OSwicGFya2luZyJdLCJmNTQwIiwiTTY0IDMyQzI4LjcgMzIgMCA2MC43IDAgOTZMMCA0MTZjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMzIwIDBjMzUuMyAwIDY0LTI4LjcgNjQtNjRsMC0zMjBjMC0zNS4zLTI4LjctNjQtNjQtNjRMNjQgMzJ6TTE5MiAyNTZsNDggMGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMmwtNDggMCAwIDY0em00OCA2NGwtNDggMCAwIDMyYzAgMTcuNy0xNC4zIDMyLTMyIDMycy0zMi0xNC4zLTMyLTMybDAtMTg0YzAtMjIuMSAxNy45LTQwIDQwLTQwbDcyIDBjNTMgMCA5NiA0MyA5NiA5NnMtNDMgOTYtOTYgOTZ6Il19LGZfdD1aMGUsbV90PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImhhbnVraWFoIixpY29uOls2NDAsNTEyLFsxMjgzMzRdLCJmNmU2IiwiTTMxNC4yIDMuM2MtNS4xIDguOC0xOC4yIDMzLjMtMTguMiA1Mi43IDAgMTMuMyAxMC43IDI0IDI0IDI0czI0LTEwLjcgMjQtMjRjMC0xOS40LTEzLjEtNDMuOS0xOC4yLTUyLjctMS4yLTIuMS0zLjQtMy4zLTUuOC0zLjNzLTQuNiAxLjItNS44IDMuM3ptLTI4OCA0OEMyMS4xIDYwLjEgOCA4NC42IDggMTA0IDggMTE3LjMgMTguNyAxMjggMzIgMTI4czI0LTEwLjcgMjQtMjRjMC0xOS40LTEzLjEtNDMuOS0xOC4yLTUyLjctMS4yLTIuMS0zLjQtMy4zLTUuOC0zLjNzLTQuNiAxLjItNS44IDMuM3pNODggMTA0YzAgMTMuMyAxMC43IDI0IDI0IDI0czI0LTEwLjcgMjQtMjRjMC0xOS40LTEzLjEtNDMuOS0xOC4yLTUyLjctMS4yLTIuMS0zLjQtMy4zLTUuOC0zLjNzLTQuNiAxLjItNS44IDMuM0MxMDEuMSA2MC4xIDg4IDg0LjYgODggMTA0em04Mi4yLTUyLjdjLTUuMSA4LjgtMTguMiAzMy4zLTE4LjIgNTIuNyAwIDEzLjMgMTAuNyAyNCAyNCAyNHMyNC0xMC43IDI0LTI0YzAtMTkuNC0xMy4xLTQzLjktMTguMi01Mi43LTEuMi0yLjEtMy40LTMuMy01LjgtMy4zcy00LjYgMS4yLTUuOCAzLjN6TTIxNiAxMDRjMCAxMy4zIDEwLjcgMjQgMjQgMjRzMjQtMTAuNyAyNC0yNGMwLTE5LjQtMTMuMS00My45LTE4LjItNTIuNy0xLjItMi4xLTMuNC0zLjMtNS44LTMuM3MtNC42IDEuMi01LjggMy4zQzIyOS4xIDYwLjEgMjE2IDg0LjYgMjE2IDEwNHpNMzk0LjIgNTEuM2MtNS4xIDguOC0xOC4yIDMzLjMtMTguMiA1Mi43IDAgMTMuMyAxMC43IDI0IDI0IDI0czI0LTEwLjcgMjQtMjRjMC0xOS40LTEzLjEtNDMuOS0xOC4yLTUyLjctMS4yLTIuMS0zLjQtMy4zLTUuOC0zLjNzLTQuNiAxLjItNS44IDMuM3pNNDQwIDEwNGMwIDEzLjMgMTAuNyAyNCAyNCAyNHMyNC0xMC43IDI0LTI0YzAtMTkuNC0xMy4xLTQzLjktMTguMi01Mi43LTEuMi0yLjEtMy40LTMuMy01LjgtMy4zcy00LjYgMS4yLTUuOCAzLjNDNDUzLjEgNjAuMSA0NDAgODQuNiA0NDAgMTA0em04Mi4yLTUyLjdjLTUuMSA4LjgtMTguMiAzMy4zLTE4LjIgNTIuNyAwIDEzLjMgMTAuNyAyNCAyNCAyNHMyNC0xMC43IDI0LTI0YzAtMTkuNC0xMy4xLTQzLjktMTguMi01Mi43LTEuMi0yLjEtMy40LTMuMy01LjgtMy4zcy00LjYgMS4yLTUuOCAzLjN6TTU4NCAxMDRjMCAxMy4zIDEwLjcgMjQgMjQgMjRzMjQtMTAuNyAyNC0yNGMwLTE5LjQtMTMuMS00My45LTE4LjItNTIuNy0xLjItMi4xLTMuNC0zLjMtNS44LTMuM3MtNC42IDEuMi01LjggMy4zQzU5Ny4xIDYwLjEgNTg0IDg0LjYgNTg0IDEwNHpNMTEyIDE2MGMtOC44IDAtMTYgNy4yLTE2IDE2bDAgMTEyIDMyIDAgMC0xMTJjMC04LjgtNy4yLTE2LTE2LTE2em02NCAwYy04LjggMC0xNiA3LjItMTYgMTZsMCAxMTIgMzIgMCAwLTExMmMwLTguOC03LjItMTYtMTYtMTZ6bTY0IDBjLTguOCAwLTE2IDcuMi0xNiAxNmwwIDExMiAzMiAwIDAtMTEyYzAtOC44LTcuMi0xNi0xNi0xNnptMTYwIDBjLTguOCAwLTE2IDcuMi0xNiAxNmwwIDExMiAzMiAwIDAtMTEyYzAtOC44LTcuMi0xNi0xNi0xNnptNjQgMGMtOC44IDAtMTYgNy4yLTE2IDE2bDAgMTEyIDMyIDAgMC0xMTJjMC04LjgtNy4yLTE2LTE2LTE2em02NCAwYy04LjggMC0xNiA3LjItMTYgMTZsMCAxMTIgMzIgMCAwLTExMmMwLTguOC03LjItMTYtMTYtMTZ6TTM1MiAxNDRjMC0xNy43LTE0LjMtMzItMzItMzJzLTMyIDE0LjMtMzIgMzJsMCAxNzYtMTkyIDBjLTE3LjcgMC0zMi0xNC4zLTMyLTMybDAtOTZjMC0xNy43LTE0LjMtMzItMzItMzJTMCAxNzQuMyAwIDE5MmwwIDk2YzAgNTMgNDMgOTYgOTYgOTZsMTkyIDAgMCA2NC0xMjggMGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJzMTQuMyAzMiAzMiAzMmwzMjAgMGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMmwtMTI4IDAgMC02NCAxOTIgMGM1MyAwIDk2LTQzIDk2LTk2bDAtOTZjMC0xNy43LTE0LjMtMzItMzItMzJzLTMyIDE0LjMtMzIgMzJsMCA5NmMwIDE3LjctMTQuMyAzMi0zMiAzMmwtMTkyIDAgMC0xNzZ6Il19LFJnPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InJvdGF0ZS1sZWZ0IixpY29uOls1MTIsNTEyLFsicm90YXRlLWJhY2siLCJyb3RhdGUtYmFja3dhcmQiLCJ1bmRvLWFsdCJdLCJmMmVhIiwiTTI0IDE5MmwxNDQgMGM5LjcgMCAxOC41LTUuOCAyMi4yLTE0LjhzMS43LTE5LjMtNS4yLTI2LjJsLTQ2LjctNDYuN2M3NS4zLTU4LjYgMTg0LjMtNTMuMyAyNTMuNSAxNS45IDc1IDc1IDc1IDE5Ni41IDAgMjcxLjVzLTE5Ni41IDc1LTI3MS41IDBjLTEwLjItMTAuMi0xOS0yMS4zLTI2LjQtMzMtOS41LTE0LjktMjkuMy0xOS4zLTQ0LjItOS44cy0xOS4zIDI5LjMtOS44IDQ0LjJDNDkuNyA0MDguNyA2MS40IDQyMy41IDc1IDQzNyAxNzUgNTM3IDMzNyA1MzcgNDM3IDQzN1M1MzcgMTc1IDQzNyA3NUMzNDIuOC0xOS4zIDE5My4zLTI0LjcgOTIuNyA1OC44TDQxIDdDMzQuMSAuMiAyMy44LTEuOSAxNC44IDEuOFMwIDE0LjMgMCAyNEwwIDE2OGMwIDEzLjMgMTAuNyAyNCAyNCAyNHoiXX0sZ190PVJnLGJfdD1SZyx2X3Q9UmcsWDBlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImhlYWRpbmciLGljb246WzQ0OCw1MTIsWyJoZWFkZXIiXSwiZjFkYyIsIk0wIDY0QzAgNDYuMyAxNC4zIDMyIDMyIDMybDk2IDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJsLTE2IDAgMCAxMTIgMjI0IDAgMC0xMTItMTYgMGMtMTcuNyAwLTMyLTE0LjMtMzItMzJzMTQuMy0zMiAzMi0zMmw5NiAwYzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMybC0xNiAwIDAgMzIwIDE2IDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJsLTk2IDBjLTE3LjcgMC0zMi0xNC4zLTMyLTMyczE0LjMtMzIgMzItMzJsMTYgMCAwLTE0NC0yMjQgMCAwIDE0NCAxNiAwYzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMybC05NiAwYy0xNy43IDAtMzItMTQuMy0zMi0zMnMxNC4zLTMyIDMyLTMybDE2IDAgMC0zMjAtMTYgMEMxNC4zIDk2IDAgODEuNyAwIDY0eiJdfSx4X3Q9WDBlLHlfdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJjcm9zc2hhaXJzIixpY29uOls1NzYsNTEyLFtdLCJmMDViIiwiTTI4OC0xNmMxNy43IDAgMzIgMTQuMyAzMiAzMmwwIDE4LjNjOTguMSAxNCAxNzUuNyA5MS42IDE4OS43IDE4OS43bDE4LjMgMGMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMmwtMTguMyAwYy0xNCA5OC4xLTkxLjYgMTc1LjctMTg5LjcgMTg5LjdsMCAxOC4zYzAgMTcuNy0xNC4zIDMyLTMyIDMycy0zMi0xNC4zLTMyLTMybDAtMTguM0MxNTcuOSA0NjMuNyA4MC4zIDM4Ni4xIDY2LjMgMjg4TDQ4IDI4OGMtMTcuNyAwLTMyLTE0LjMtMzItMzJzMTQuMy0zMiAzMi0zMmwxOC4zIDBDODAuMyAxMjUuOSAxNTcuOSA0OC4zIDI1NiAzNC4zTDI1NiAxNmMwLTE3LjcgMTQuMy0zMiAzMi0zMnpNMTMxLjIgMjg4YzEyLjcgNjIuNyA2Mi4xIDExMi4xIDEyNC44IDEyNC44bDAtMTIuOGMwLTE3LjcgMTQuMy0zMiAzMi0zMnMzMiAxNC4zIDMyIDMybDAgMTIuOGM2Mi43LTEyLjcgMTEyLjEtNjIuMSAxMjQuOC0xMjQuOEw0MzIgMjg4Yy0xNy43IDAtMzItMTQuMy0zMi0zMnMxNC4zLTMyIDMyLTMybDEyLjggMEM0MzIuMSAxNjEuMyAzODIuNyAxMTEuOSAzMjAgOTkuMmwwIDEyLjhjMCAxNy43LTE0LjMgMzItMzIgMzJzLTMyLTE0LjMtMzItMzJsMC0xMi44QzE5My4zIDExMS45IDE0My45IDE2MS4zIDEzMS4yIDIyNGwxMi44IDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJsLTEyLjggMHpNMjg4IDIwOGE0OCA0OCAwIDEgMSAwIDk2IDQ4IDQ4IDAgMSAxIDAtOTZ6Il19LHdfdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJjaXJjbGUtbm9kZXMiLGljb246WzUxMiw1MTIsW10sImU0ZTIiLCJNNDE4LjQgMTU3LjljMzUuMy04LjMgNjEuNi00MCA2MS42LTc3LjkgMC00NC4yLTM1LjgtODAtODAtODAtNDMuNCAwLTc4LjcgMzQuNS04MCA3Ny41TDEzNi4yIDE1MS4xQzEyMS43IDEzNi44IDEwMS45IDEyOCA4MCAxMjggMzUuOCAxMjggMCAxNjMuOCAwIDIwOHMzNS44IDgwIDgwIDgwYzEyLjIgMCAyMy44LTIuNyAzNC4xLTcuNkwyNTkuNyA0MDcuOGMtMi40IDcuNi0zLjcgMTUuOC0zLjcgMjQuMiAwIDQ0LjIgMzUuOCA4MCA4MCA4MHM4MC0zNS44IDgwLTgwYzAtMjcuNy0xNC01Mi4xLTM1LjQtNjYuNGwzNy44LTIwNy43ek0xNTYuMyAyMzIuMmMyLjItNi45IDMuNS0xNC4yIDMuNy0yMS43bDE4My44LTczLjVjMy42IDMuNSA3LjQgNi43IDExLjYgOS41TDMxNy42IDM1NC4xYy01LjUgMS4zLTEwLjggMy4xLTE1LjggNS41TDE1Ni4zIDIzMi4yeiJdfSxNX3Q9e3ByZWZpeDoiZmFzIixpY29uTmFtZToid2luZG93LXJlc3RvcmUiLGljb246WzU3Niw1MTIsW10sImYyZDIiLCJNNTEyIDk2TDE2MCA5NmMwLTM1LjMgMjguNy02NCA2NC02NGwyODggMGMzNS4zIDAgNjQgMjguNyA2NCA2NGwwIDE5MmMwIDM1LjMtMjguNyA2NC02NCA2NGwtNDggMCAwLTY0IDQ4IDAgMC0xOTJ6TTAgMjI0YzAtMzUuMyAyOC43LTY0IDY0LTY0bDI4OCAwYzM1LjMgMCA2NCAyOC43IDY0IDY0bDAgMTkyYzAgMzUuMy0yOC43IDY0LTY0IDY0TDY0IDQ4MGMtMzUuMyAwLTY0LTI4LjctNjQtNjRMMCAyMjR6bTY0IDQwYzAgMTMuMyAxMC43IDI0IDI0IDI0bDI0MCAwYzEzLjMgMCAyNC0xMC43IDI0LTI0cy0xMC43LTI0LTI0LTI0TDg4IDI0MGMtMTMuMyAwLTI0IDEwLjctMjQgMjR6Il19LGtfdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJyIixpY29uOlszMjAsNTEyLFsxMTRdLCI1MiIsIk0zMiAzMkMxNC4zIDMyIDAgNDYuMyAwIDY0TDAgNDQ4YzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJsMC0xMjggOTUuMyAwIDEwMi40IDE0Ni40YzEwLjEgMTQuNSAzMC4xIDE4IDQ0LjYgNy45czE4LTMwLjEgNy45LTQ0LjZMMjMwLjEgMzA5LjVDMjgyLjggMjg4LjEgMzIwIDIzNi40IDMyMCAxNzYgMzIwIDk2LjUgMjU1LjUgMzIgMTc2IDMyTDMyIDMyek0xNzYgMjU2bC0xMTIgMCAwLTE2MCAxMTIgMGM0NC4yIDAgODAgMzUuOCA4MCA4MHMtMzUuOCA4MC04MCA4MHoiXX0sU190PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImZpbHRlci1jaXJjbGUteG1hcmsiLGljb246WzU3Niw1MTIsW10sImUxN2IiLCJNMzIgNjRDMTkuMSA2NCA3LjQgNzEuOCAyLjQgODMuOFMuMiAxMDkuNSA5LjQgMTE4LjZMMTkyIDMwMS4zIDE5MiA0MTZjMCA4LjUgMy40IDE2LjYgOS40IDIyLjZsNjQgNjRjMi41IDIuNSA1LjMgNC41IDguMyA2LTIxLjItMzAuOS0zMy42LTY4LjMtMzMuNi0xMDguNiAwLTk5LjQgNzUuNS0xODEuMSAxNzIuMy0xOTFsOTAuNC05MC40YzkuMi05LjIgMTEuOS0yMi45IDYuOS0zNC45UzQ5Mi45IDY0IDQ4MCA2NEwzMiA2NHpNNDMyIDU0NGExNDQgMTQ0IDAgMSAwIDAtMjg4IDE0NCAxNDQgMCAxIDAgMCAyODh6bTU5LjMtMTgwLjdsLTM2LjcgMzYuNyAzNi43IDM2LjdjNi4yIDYuMiA2LjIgMTYuNCAwIDIyLjZzLTE2LjQgNi4yLTIyLjYgMGwtMzYuNy0zNi43LTM2LjcgMzYuN2MtNi4yIDYuMi0xNi40IDYuMi0yMi42IDBzLTYuMi0xNi40IDAtMjIuNmwzNi43LTM2LjctMzYuNy0zNi43Yy02LjItNi4yLTYuMi0xNi40IDAtMjIuNnMxNi40LTYuMiAyMi42IDBsMzYuNyAzNi43IDM2LjctMzYuN2M2LjItNi4yIDE2LjQtNi4yIDIyLjYgMHM2LjIgMTYuNCAwIDIyLjZ6Il19LHpfdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJnb3B1cmFtIixpY29uOls1MTIsNTEyLFtdLCJmNjY0IiwiTTEyMCAwYzEzLjMgMCAyNCAxMC43IDI0IDI0bDAgOCA0MCAwIDAtOGMwLTEzLjMgMTAuNy0yNCAyNC0yNHMyNCAxMC43IDI0IDI0bDAgOCA0OCAwIDAtOGMwLTEzLjMgMTAuNy0yNCAyNC0yNHMyNCAxMC43IDI0IDI0bDAgOCA0MCAwIDAtOGMwLTEzLjMgMTAuNy0yNCAyNC0yNHMyNCAxMC43IDI0IDI0bDAgMTM2YzI2LjUgMCA0OCAyMS41IDQ4IDQ4bDAgODBjMjYuNSAwIDQ4IDIxLjUgNDggNDhsMCAxMjhjMCAyNi41LTIxLjUgNDgtNDggNDhsLTQ4IDAgMC0yMjQtMzIgMCAwLTEyOC00OCAwIDAgMTI4IDMyIDAgMCAyMjQtMjI0IDAgMC0yMjQgMzIgMCAwLTEyOC00OCAwIDAgMTI4LTMyIDAgMCAyMjQtNDggMGMtMjYuNSAwLTQ4LTIxLjUtNDgtNDhMMCAzMzZjMC0yNi41IDIxLjUtNDggNDgtNDhsMC04MGMwLTI2LjUgMjEuNS00OCA0OC00OEw5NiAyNGMwLTEzLjMgMTAuNy0yNCAyNC0yNHpNMjU2IDIwOGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJsMCA0OCA2NCAwIDAtNDhjMC0xNy43LTE0LjMtMzItMzItMzJ6TTIwOCA0MDBsMCA2NCA5NiAwIDAtNjRjMC0yNi41LTIxLjUtNDgtNDgtNDhzLTQ4IDIxLjUtNDggNDh6TTI1NiA5NmMtMTcuNyAwLTMyIDE0LjMtMzIgMzJsMCAzMiA2NCAwIDAtMzJjMC0xNy43LTE0LjMtMzItMzItMzJ6Il19LENfdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJoZWFydC1jaXJjbGUtbWludXMiLGljb246WzU3Niw1MTIsW10sImU0ZmYiLCJNMjQxIDg3LjFsMTUgMjAuNyAxNS0yMC43QzI5NiA1Mi41IDMzNi4yIDMyIDM3OC45IDMyIDQ1Mi40IDMyIDUxMiA5MS42IDUxMiAxNjUuMWwwIDIuNmMwIDE3LjYtMy40IDM1LjYtOS41IDUzLjctMjEuOC04LjYtNDUuNi0xMy40LTcwLjUtMTMuNC0xMDYgMC0xOTIgODYtMTkyIDE5MiAwIDI4LjUgNi4yIDU1LjYgMTcuNCA4MC0uNSAwLS45IDAtMS40IDAtMTUuNSAwLTMwLjgtNC42LTQzLjEtMTQuMS03My01NS43LTIxMi45LTE4Ni0yMTIuOS0yOTguMmwwLTIuNkMwIDkxLjYgNTkuNiAzMiAxMzMuMSAzMiAxNzUuOCAzMiAyMTYgNTIuNSAyNDEgODcuMXpNMjg4IDQwMGExNDQgMTQ0IDAgMSAxIDI4OCAwIDE0NCAxNDQgMCAxIDEgLTI4OCAwem0yMjQgMGMwLTguOC03LjItMTYtMTYtMTZsLTEyOCAwYy04LjggMC0xNiA3LjItMTYgMTZzNy4yIDE2IDE2IDE2bDEyOCAwYzguOCAwIDE2LTcuMiAxNi0xNnoiXX0sVF90PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InN0YXItb2YtbGlmZSIsaWNvbjpbNTEyLDUxMixbXSwiZjYyMSIsIk0yMDguNSAzMmMwLTE3LjcgMTQuMy0zMiAzMi0zMmwzMiAwYzE3LjcgMCAzMiAxNC4zIDMyIDMybDAgMTQwLjkgMTIyLTcwLjRjMTUuMy04LjggMzQuOS0zLjYgNDMuNyAxMS43bDE2IDI3LjdjOC44IDE1LjMgMy42IDM0LjktMTEuNyA0My43bC0xMjIgNzAuNCAxMjIgNzAuNGMxNS4zIDguOCAyMC42IDI4LjQgMTEuNyA0My43bC0xNiAyNy43Yy04LjggMTUuMy0yOC40IDIwLjYtNDMuNyAxMS43bC0xMjItNzAuNCAwIDE0MC45YzAgMTcuNy0xNC4zIDMyLTMyIDMybC0zMiAwYy0xNy43IDAtMzItMTQuMy0zMi0zMmwwLTE0MC45LTEyMiA3MC40Yy0xNS4zIDguOC0zNC45IDMuNi00My43LTExLjdsLTE2LTI3LjdjLTguOC0xNS4zLTMuNi0zNC45IDExLjctNDMuN2wxMjItNzAuNC0xMjItNzAuNGMtMTUuMy04LjgtMjAuNS0yOC40LTExLjctNDMuN2wxNi0yNy43YzguOC0xNS4zIDI4LjQtMjAuNSA0My43LTExLjdsMTIyIDcwLjQgMC0xNDAuOXoiXX0sUTBlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImJ1c2luZXNzLXRpbWUiLGljb246WzY0MCw1MTIsWyJicmllZmNhc2UtY2xvY2siXSwiZjY0YSIsIk0yNjQgNDhsMTEyIDBjNC40IDAgOCAzLjYgOCA4bDAgNDAtMTI4IDAgMC00MGMwLTQuNCAzLjYtOCA4LTh6bS01NiA4bDAgNDAtODAgMGMtMzUuMyAwLTY0IDI4LjctNjQgNjRsMCA5NiAzMDUgMGMzMy44LTI5LjkgNzguMy00OCAxMjctNDggMjguNiAwIDU1LjYgNi4yIDgwIDE3LjRsMC02NS40YzAtMzUuMy0yOC43LTY0LTY0LTY0bC04MCAwIDAtNDBjMC0zMC45LTI1LjEtNTYtNTYtNTZMMjY0IDBjLTMwLjkgMC01NiAyNS4xLTU2IDU2em04MCAyOTZjLTE3LjcgMC0zMi0xNC4zLTMyLTMybDAtMTYtMTkyIDAgMCAxMTJjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMTkzLjQgMGMtMTEuMi0yNC40LTE3LjQtNTEuNC0xNy40LTgwIDAtMTYuNiAyLjEtMzIuNyA2LTQ4bC0yMiAwem0zNTIgNDhhMTQ0IDE0NCAwIDEgMCAtMjg4IDAgMTQ0IDE0NCAwIDEgMCAyODggMHpNNDk2IDMyMGM4LjggMCAxNiA3LjIgMTYgMTZsMCA0OCAzMiAwYzguOCAwIDE2IDcuMiAxNiAxNnMtNy4yIDE2LTE2IDE2bC00OCAwYy04LjggMC0xNi03LjItMTYtMTZsMC02NGMwLTguOCA3LjItMTYgMTYtMTZ6Il19LF9fdD1RMGUsTF90PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImZpcmUtZXh0aW5ndWlzaGVyIixpY29uOls1MTIsNTEyLFsxMjk1MTldLCJmMTM0IiwiTTUxMiAzMmMwLTkuNi00LjMtMTguNy0xMS43LTI0LjdTNDgzLjEtMS4zIDQ3My43IC42bC0xNjAgMzJDMzAxLjUgMzUuMSAyOTIgNDQuMyAyODkgNTZsLTY1IDAgMC0yNGMwLTE3LjctMTQuMy0zMi0zMi0zMkwxNjAgMGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJsMCAyOC40Yy01NS4zIDEyLjMtMTAxLjMgNDkuNS0xMjUuNSA5OS4xLTUuOCAxMS45LS45IDI2LjMgMTEuMSAzMi4xczI2LjMgLjkgMzIuMS0xMS4xQzYyIDE0Ni45IDkxLjggMTIxLjEgMTI4IDExMGwwIDI4LjhjLTM3LjggMTgtNjQgNTYuNS02NCAxMDEuMmwwIDEyOCAyMjQgMCAwLTEyOGMwLTQ0LjctMjYuMi04My4yLTY0LTEwMS4ybDAtMzQuOCA2NSAwYzMgMTEuNyAxMi41IDIwLjkgMjQuNyAyMy40bDE2MCAzMmM5LjQgMS45IDE5LjEtLjYgMjYuNi02LjZTNTEyIDEzNy42IDUxMiAxMjhsMC05NnpNMjg4IDQ0OGwwLTMyLTIyNCAwIDAgMzJjMCAzNS4zIDI4LjcgNjQgNjQgNjRsOTYgMGMzNS4zIDAgNjQtMjguNyA2NC02NHoiXX0sSjBlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImFycm93LWRvd24tbG9uZyIsaWNvbjpbMzIwLDUxMixbImxvbmctYXJyb3ctZG93biJdLCJmMTc1IiwiTTEzNy40IDUzNC42YzEyLjUgMTIuNSAzMi44IDEyLjUgNDUuMyAwbDEyOC0xMjhjMTIuNS0xMi41IDEyLjUtMzIuOCAwLTQ1LjNzLTMyLjgtMTIuNS00NS4zIDBMMTkyIDQzNC43IDE5MiAwYzAtMTcuNy0xNC4zLTMyLTMyLTMyUzEyOC0xNy43IDEyOCAwbDAgNDM0LjctNzMuNC03My40Yy0xMi41LTEyLjUtMzIuOC0xMi41LTQ1LjMgMHMtMTIuNSAzMi44IDAgNDUuM2wxMjggMTI4eiJdfSxBX3Q9SjBlLERfdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJ1c2VyLW1pbnVzIixpY29uOls2NDAsNTEyLFtdLCJmNTAzIiwiTTI4NS43IDMwNGM5OC41IDAgMTc4LjMgNzkuOCAxNzguMyAxNzguMyAwIDE2LjQtMTMuMyAyOS43LTI5LjcgMjkuN0w3Ny43IDUxMkM2MS4zIDUxMiA0OCA0OTguNyA0OCA0ODIuMyA0OCAzODMuOCAxMjcuOCAzMDQgMjI2LjMgMzA0bDU5LjQgMHpNMjU2IDI0OGExMjAgMTIwIDAgMSAxIDAtMjQwIDEyMCAxMjAgMCAxIDEgMCAyNDB6bTM0NC05NmMxMy4zIDAgMjQgMTAuNyAyNCAyNHMtMTAuNyAyNC0yNCAyNGwtMTQ0IDBjLTEzLjMgMC0yNC0xMC43LTI0LTI0czEwLjctMjQgMjQtMjRsMTQ0IDB6Il19LEVfdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJtb25leS1jaGVjayIsaWNvbjpbNTEyLDUxMixbXSwiZjUzYyIsIk0wIDEyOEMwIDkyLjcgMjguNyA2NCA2NCA2NGwzODQgMGMzNS4zIDAgNjQgMjguNyA2NCA2NGwwIDI1NmMwIDM1LjMtMjguNyA2NC02NCA2NEw2NCA0NDhjLTM1LjMgMC02NC0yOC43LTY0LTY0TDAgMTI4ek05NiAzMTJjMCAxMy4zIDEwLjcgMjQgMjQgMjRsMTQ0IDBjMTMuMyAwIDI0LTEwLjcgMjQtMjRzLTEwLjctMjQtMjQtMjRsLTE0NCAwYy0xMy4zIDAtMjQgMTAuNy0yNCAyNHptMjQtMTM2Yy0xMy4zIDAtMjQgMTAuNy0yNCAyNHMxMC43IDI0IDI0IDI0bDI3MiAwYzEzLjMgMCAyNC0xMC43IDI0LTI0cy0xMC43LTI0LTI0LTI0bC0yNzIgMHoiXX0sSzBlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImhvdXNlLWxhcHRvcCIsaWNvbjpbNjQwLDUxMixbImxhcHRvcC1ob3VzZSJdLCJlMDY2IiwiTTQ0OCAyNDBsMTkuOSAwYzE1LjUgMCAyOC4xLTEyLjYgMjguMS0yOC4xIDAtNy42LTMuMS0xNC45LTguNi0yMC4yTDI4My41LTQuOUMyNzYuMS0xMiAyNjYuMy0xNiAyNTYtMTZzLTIwLjEgNC0yNy41IDExLjFMMjQuNiAxOTEuN0MxOS4xIDE5NyAxNiAyMDQuMyAxNiAyMTEuOSAxNiAyMjcuNCAyOC42IDI0MCA0NC4xIDI0MGwxOS45IDAgMCAxNDRjMCAzNS4zIDI4LjcgNjQgNjQgNjRsODUuNyAwYzcuNC02LjYgMTYuNC0xMS40IDI2LjMtMTRsMC0xMzBjMC01LjUgLjctMTAuOSAyLTE2bC0xMCAwYy0xMy4zIDAtMjQtMTAuNy0yNC0yNGwwLTQ4YzAtMTMuMyAxMC43LTI0IDI0LTI0bDQ4IDBjMTMuMyAwIDI0IDEwLjcgMjQgMjRsMCAyNCAxNDQgMHpNMzUyIDM1MmwxNjAgMCAwIDEyOC0xNjAgMCAwLTEyOHptLTY0LTMybDAgMTYwLTMyIDBjLTguOCAwLTE2IDcuMi0xNiAxNiAwIDI2LjUgMjEuNSA0OCA0OCA0OGwyODggMGMyNi41IDAgNDgtMjEuNSA0OC00OCAwLTguOC03LjItMTYtMTYtMTZsLTMyIDAgMC0xNjBjMC0xNy43LTE0LjMtMzItMzItMzJsLTIyNCAwYy0xNy43IDAtMzIgMTQuMy0zMiAzMnoiXX0sJF90PUswZSxJX3Q9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZG93bmxvYWQiLGljb246WzQ0OCw1MTIsW10sImYwMTkiLCJNMjU2IDMyYzAtMTcuNy0xNC4zLTMyLTMyLTMycy0zMiAxNC4zLTMyIDMybDAgMjEwLjctNDEuNC00MS40Yy0xMi41LTEyLjUtMzIuOC0xMi41LTQ1LjMgMHMtMTIuNSAzMi44IDAgNDUuM2w5NiA5NmMxMi41IDEyLjUgMzIuOCAxMi41IDQ1LjMgMGw5Ni05NmMxMi41LTEyLjUgMTIuNS0zMi44IDAtNDUuM3MtMzIuOC0xMi41LTQ1LjMgMEwyNTYgMjQyLjcgMjU2IDMyek02NCAzMjBjLTM1LjMgMC02NCAyOC43LTY0IDY0bDAgMzJjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMzIwIDBjMzUuMyAwIDY0LTI4LjcgNjQtNjRsMC0zMmMwLTM1LjMtMjguNy02NC02NC02NGwtNDYuOSAwLTU2LjYgNTYuNmMtMzEuMiAzMS4yLTgxLjkgMzEuMi0xMTMuMSAwTDExMC45IDMyMCA2NCAzMjB6bTMwNCA1NmEyNCAyNCAwIDEgMSAwIDQ4IDI0IDI0IDAgMSAxIDAtNDh6Il19LFBfdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJzYWdpdHRhcml1cyIsaWNvbjpbNDQ4LDUxMixbXSwiZTg0ZCIsIk00MTYgMzJjMTcuNyAwIDMyIDE0LjMgMzIgMzJsMCAxNjBjMCAxNy43LTE0LjMgMzItMzIgMzJzLTMyLTE0LjMtMzItMzJsMC04Mi44LTE0Ni44IDE0Ni44IDQxLjQgNDEuNGMxMi41IDEyLjUgMTIuNSAzMi44IDAgNDUuMnMtMzIuOCAxMi41LTQ1LjMgMEwxOTIgMzMzLjMgNTQuNiA0NzAuNmMtMTIuNSAxMi41LTMyLjggMTIuNS00NS4yIDBzLTEyLjUtMzIuOCAwLTQ1LjJMMTQ2LjggMjg4IDEwNS40IDI0Ni42Yy0xMi41LTEyLjUtMTIuNS0zMi44IDAtNDUuMnMzMi44LTEyLjUgNDUuMiAwTDE5MiAyNDIuOCAzMzguOCA5NiAyNTYgOTZjLTE3LjcgMC0zMi0xNC4zLTMyLTMyczE0LjMtMzIgMzItMzJsMTYwIDB6Il19LE5fdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJjb3VjaCIsaWNvbjpbNjQwLDUxMixbXSwiZjRiOCIsIk0xNDQgMjcyQzE0NCAyMjQuNyAxMDkuOCAxODUuNCA2NC44IDE3Ny41IDcyIDExMy42IDEyNi4yIDY0IDE5MiA2NGwyNTYgMGM2NS44IDAgMTIwIDQ5LjYgMTI3LjIgMTEzLjUtNDUgOC03OS4yIDQ3LjItNzkuMiA5NC41bDAgMzItMzUyIDAgMC0zMnpNMCAzODRMMCAyNzJjMC0yNi41IDIxLjUtNDggNDgtNDhzNDggMjEuNSA0OCA0OGwwIDgwIDQ0OCAwIDAtODBjMC0yNi41IDIxLjUtNDggNDgtNDhzNDggMjEuNSA0OCA0OGwwIDExMmMwIDM1LjMtMjguNyA2NC02NCA2NEw2NCA0NDhjLTM1LjMgMC02NC0yOC43LTY0LTY0eiJdfSxGX3Q9e3ByZWZpeDoiZmFzIixpY29uTmFtZToicm9hZC1sb2NrIixpY29uOls1NzYsNTEyLFtdLCJlNTY3IiwiTTI1NiAzMmwtNzYuMyAwYy0yOS40IDAtNTUuMSAyMC4xLTYyLjEgNDguNkwzMy40IDQyMC41QzI1LjkgNDUwLjcgNDguOCA0ODAgODAgNDgwbDE3NS45IDAgMC02NGMwLTE3LjcgMTQuMy0zMiAzMi0zMiA2LjEgMCAxMS44IDEuNyAxNi43IDQuNyAyLjgtMjMuOSAxNC4zLTQ1LjEgMzEuNC02MC4zbDAtMjQuNGMwLTcwLjcgNTcuMy0xMjggMTI4LTEyOCA2LjIgMCAxMi40IC40IDE4LjQgMS4zTDQ1OC41IDgwLjZDNDUxLjQgNTIuMSA0MjUuOCAzMiAzOTYuMyAzMmwtNzYuNCAwIDAgNjRjMCAxNy43LTE0LjMgMzItMzIgMzJzLTMyLTE0LjMtMzItMzJsMC02NHptNjQgMTkybDAgNjRjMCAxNy43LTE0LjMgMzItMzIgMzJzLTMyLTE0LjMtMzItMzJsMC02NGMwLTE3LjcgMTQuMy0zMiAzMi0zMnMzMiAxNC4zIDMyIDMyem0xNzYgODAuMWwwIDQ3LjktNjQgMCAwLTQ3LjljMC0xNy43IDE0LjMtMzIgMzItMzJzMzIgMTQuMyAzMiAzMnpNMzUyIDQwMGwwIDk2YzAgMjYuNSAyMS41IDQ4IDQ4IDQ4bDEyOCAwYzI2LjUgMCA0OC0yMS41IDQ4LTQ4bDAtOTZjMC0yMC45LTEzLjQtMzguNy0zMi00NS4zbDAtNTAuNmMwLTQ0LjItMzUuOC04MC04MC04MHMtODAgMzUuOC04MCA4MGwwIDUwLjZjLTE4LjYgNi42LTMyIDI0LjQtMzIgNDUuM3oiXX0sZTRlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InNjaXNzb3JzIixpY29uOls1MTIsNTEyLFs5OTg0LDk5ODYsOTk4OCwiY3V0Il0sImYwYzQiLCJNMTkyIDI1NmwtMzkuNSAzOS41Yy0xMi42LTQuOS0yNi4yLTcuNS00MC41LTcuNS02MS45IDAtMTEyIDUwLjEtMTEyIDExMnM1MC4xIDExMiAxMTIgMTEyIDExMi01MC4xIDExMi0xMTJjMC0xNC4zLTIuNy0yNy45LTcuNS00MC41TDQ5OS4yIDc2LjhjNy4xLTcuMSA3LjEtMTguNSAwLTI1LjYtMjguMy0yOC4zLTc0LjEtMjguMy0xMDIuNCAwTDI1NiAxOTIgMjE2LjUgMTUyLjVjNC45LTEyLjYgNy41LTI2LjIgNy41LTQwLjUgMC02MS45LTUwLjEtMTEyLTExMi0xMTJTMCA1MC4xIDAgMTEyIDUwLjEgMjI0IDExMiAyMjRjMTQuMyAwIDI3LjktMi43IDQwLjUtNy41TDE5MiAyNTZ6bTk3LjkgOTcuOUwzOTYuOCA0NjAuOGMyOC4zIDI4LjMgNzQuMSAyOC4zIDEwMi40IDAgNy4xLTcuMSA3LjEtMTguNSAwLTI1LjZsLTE0NS4zLTE0NS4zLTY0IDY0ek02NCAxMTJhNDggNDggMCAxIDEgOTYgMCA0OCA0OCAwIDEgMSAtOTYgMHptNDggMjQwYTQ4IDQ4IDAgMSAxIDAgOTYgNDggNDggMCAxIDEgMC05NnoiXX0sT190PWU0ZSxkRT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJidWciLGljb246WzU3Niw1MTIsW10sImYxODgiLCJNMTkyIDk2YzAtNTMgNDMtOTYgOTYtOTZzOTYgNDMgOTYgOTZsMCAzLjZjMCAxNS43LTEyLjcgMjguNC0yOC40IDI4LjRsLTEzNS4xIDBjLTE1LjcgMC0yOC40LTEyLjctMjguNC0yOC40bDAtMy42em0zNDUuNiAxMi44YzEwLjYgMTQuMSA3LjcgMzQuMi02LjQgNDQuOGwtOTcuOCA3My4zYzUuMyA4LjkgOS4zIDE4LjcgMTEuOCAyOS4xbDk4LjggMGMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMmwtOTYgMCAwIDMyYzAgMi42LS4xIDUuMy0uMiA3LjlsODMuNCA2Mi41YzE0LjEgMTAuNiAxNyAzMC43IDYuNCA0NC44cy0zMC43IDE3LTQ0LjggNi40bC02My4xLTQ3LjNjLTIzLjIgNDQuMi02Ni41IDc2LjItMTE3LjcgODMuOUwzMTIgMjgwYzAtMTMuMy0xMC43LTI0LTI0LTI0cy0yNCAxMC43LTI0IDI0bDAgMjMwLjJjLTUxLjItNy43LTk0LjUtMzkuNy0xMTcuNy04My45TDgzLjIgNDczLjZjLTE0LjEgMTAuNi0zNC4yIDcuNy00NC44LTYuNHMtNy43LTM0LjIgNi40LTQ0LjhsODMuNC02Mi41Yy0uMS0yLjYtLjItNS4yLS4yLTcuOWwwLTMyLTk2IDBjLTE3LjcgMC0zMi0xNC4zLTMyLTMyczE0LjMtMzIgMzItMzJsOTguOCAwYzIuNS0xMC40IDYuNS0yMC4yIDExLjgtMjkuMUw0NC44IDE1My42Yy0xNC4xLTEwLjYtMTctMzAuNy02LjQtNDQuOHMzMC43LTE3IDQ0LjgtNi40TDE5MiAxODRjMTIuMy01LjEgMjUuOC04IDQwLThsMTEyIDBjMTQuMiAwIDI3LjcgMi44IDQwIDhsMTA4LjgtODEuNmMxNC4xLTEwLjYgMzQuMi03LjcgNDQuOCA2LjR6Il19LHQ0ZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJhcnJvdy1yaWdodC1mcm9tLWJyYWNrZXQiLGljb246WzUxMiw1MTIsWyJzaWduLW91dCJdLCJmMDhiIiwiTTE2MCA5NmMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMkw5NiAzMkM0MyAzMiAwIDc1IDAgMTI4TDAgMzg0YzAgNTMgNDMgOTYgOTYgOTZsNjQgMGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMmwtNjQgMGMtMTcuNyAwLTMyLTE0LjMtMzItMzJsMC0yNTZjMC0xNy43IDE0LjMtMzIgMzItMzJsNjQgMHpNNTAyLjYgMjc4LjZjMTIuNS0xMi41IDEyLjUtMzIuOCAwLTQ1LjNsLTEyOC0xMjhjLTEyLjUtMTIuNS0zMi44LTEyLjUtNDUuMyAwcy0xMi41IDMyLjggMCA0NS4zTDQwMi43IDIyNCAxOTIgMjI0Yy0xNy43IDAtMzIgMTQuMy0zMiAzMnMxNC4zIDMyIDMyIDMybDIxMC43IDAtNzMuNCA3My40Yy0xMi41IDEyLjUtMTIuNSAzMi44IDAgNDUuM3MzMi44IDEyLjUgNDUuMyAwbDEyOC0xMjh6Il19LFJfdD10NGUsQl90PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImhhbmQtaG9sZGluZy1oYW5kIixpY29uOls1NzYsNTEyLFtdLCJlNGY3IiwiTTQ2Ni44IDE4Ni41bDQyLjUtNDIuNSAzNC43IDBjMTcuNyAwIDMyLTE0LjMgMzItMzJsMC02NGMwLTE3LjctMTQuMy0zMi0zMi0zMkwyMjMuNiAxNmMtMjkgMC01Ny4zIDkuMy04MC43IDI2LjVMMTYuMyAxMzUuOGMtMTcuOCAxMy4xLTIxLjYgMzguMS04LjUgNTUuOXMzOC4xIDIxLjYgNTUuOSA4LjVMMTgzLjQgMTEyIDI5NiAxMTJjMTMuMyAwIDI0IDEwLjcgMjQgMjRzLTEwLjcgMjQtMjQgMjRsLTcyIDBjLTE3LjcgMC0zMiAxNC4zLTMyIDMyczE0LjMgMzIgMzIgMzJsMTUyLjIgMGMzMy45IDAgNjYuNS0xMy41IDkwLjUtMzcuNXptLTM1Ny41IDEzOUw2Ni43IDM2OCAzMiAzNjhjLTE3LjcgMC0zMiAxNC4zLTMyIDMybDAgNjRjMCAxNy43IDE0LjMgMzIgMzIgMzJsMzIwLjUgMGMyOSAwIDU3LjMtOS4zIDgwLjctMjYuNWwxMjYuNi05My4zYzE3LjgtMTMuMSAyMS42LTM4LjEgOC41LTU1LjlzLTM4LjEtMjEuNi01NS45LTguNUwzOTIuNiA0MDAgMjgwIDQwMGMtMTMuMyAwLTI0LTEwLjctMjQtMjRzMTAuNy0yNCAyNC0yNGw3MiAwYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMybC0xNTIuMiAwYy0zMy45IDAtNjYuNSAxMy41LTkwLjUgMzcuNXoiXX0sSF90PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InN0cm9vcHdhZmVsIixpY29uOls1MTIsNTEyLFtdLCJmNTUxIiwiTTAgMjU2YTI1NiAyNTYgMCAxIDEgNTEyIDAgMjU2IDI1NiAwIDEgMSAtNTEyIDB6TTMxMi42IDYzLjdjLTYuMi02LjItMTYuNC02LjItMjIuNiAwTDI1NiA5Ny42IDIyMi4xIDYzLjdjLTYuMi02LjItMTYuNC02LjItMjIuNiAwcy02LjIgMTYuNCAwIDIyLjZsMzMuOSAzMy45LTQ1LjMgNDUuMy01Ni42LTU2LjZjLTYuMi02LjItMTYuNC02LjItMjIuNiAwcy02LjIgMTYuNCAwIDIyLjZsNTYuNiA1Ni42LTQ1LjMgNDUuMy0zMy45LTMzLjljLTYuMi02LjItMTYuNC02LjItMjIuNiAwcy02LjIgMTYuNCAwIDIyLjZMOTcuNiAyNTYgNjMuNyAyODkuOWMtNi4yIDYuMi02LjIgMTYuNCAwIDIyLjZzMTYuNCA2LjIgMjIuNiAwbDMzLjktMzMuOSA0NS4zIDQ1LjMtNTYuNiA1Ni42Yy02LjIgNi4yLTYuMiAxNi40IDAgMjIuNnMxNi40IDYuMiAyMi42IDBsNTYuNi01Ni42IDQ1LjMgNDUuMy0zMy45IDMzLjljLTYuMiA2LjItNi4yIDE2LjQgMCAyMi42czE2LjQgNi4yIDIyLjYgMGwzMy45LTMzLjkgMzMuOSAzMy45YzYuMiA2LjIgMTYuNCA2LjIgMjIuNiAwczYuMi0xNi40IDAtMjIuNmwtMzMuOS0zMy45IDQ1LjMtNDUuMyA1Ni42IDU2LjZjNi4yIDYuMiAxNi40IDYuMiAyMi42IDBzNi4yLTE2LjQgMC0yMi42bC01Ni42LTU2LjYgNDUuMy00NS4zIDMzLjkgMzMuOWM2LjIgNi4yIDE2LjQgNi4yIDIyLjYgMHM2LjItMTYuNCAwLTIyLjZsLTMzLjktMzMuOSAzMy45LTMzLjljNi4yLTYuMiA2LjItMTYuNCAwLTIyLjZzLTE2LjQtNi4yLTIyLjYgMGwtMzMuOSAzMy45LTQ1LjMtNDUuMyA1Ni42LTU2LjZjNi4yLTYuMiA2LjItMTYuNCAwLTIyLjZzLTE2LjQtNi4yLTIyLjYgMGwtNTYuNiA1Ni42LTQ1LjMtNDUuMyAzMy45LTMzLjljNi4yLTYuMiA2LjItMTYuNCAwLTIyLjZ6TTE0Mi45IDI1Nmw0NS4zLTQ1LjMgNDUuMyA0NS4zLTQ1LjMgNDUuMy00NS4zLTQ1LjN6bTY3LjkgNjcuOWw0NS4zLTQ1LjMgNDUuMyA0NS4zLTQ1LjMgNDUuMy00NS4zLTQ1LjN6TTI3OC42IDI1Nmw0NS4zLTQ1LjMgNDUuMyA0NS4zLTQ1LjMgNDUuMy00NS4zLTQ1LjN6bTIyLjYtNjcuOWwtNDUuMyA0NS4zLTQ1LjMtNDUuMyA0NS4zLTQ1LjMgNDUuMyA0NS4zeiJdfSxxX3Q9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiY2hpbGQiLGljb246WzMyMCw1MTIsW10sImYxYWUiLCJNOTYgNjRBNjQgNjQgMCAxIDEgMjI0IDY0IDY0IDY0IDAgMSAxIDk2IDY0em00OCAzMjBsMCA5NmMwIDE3LjctMTQuMyAzMi0zMiAzMnMtMzItMTQuMy0zMi0zMkw4MCAyODcuOCA1OS4xIDMyMWMtOS40IDE1LTI5LjIgMTkuNC00NC4xIDEwUy00LjUgMzAxLjkgNC45IDI4N2wzOS45LTYzLjNDNjkuNyAxODQgMTEzLjIgMTYwIDE2MCAxNjBzOTAuMyAyNCAxMTUuMiA2My42TDMxNS4xIDI4N2M5LjQgMTUgNC45IDM0LjctMTAgNDQuMXMtMzQuNyA0LjktNDQuMS0xMEwyNDAgMjg3LjggMjQwIDQ4MGMwIDE3LjctMTQuMyAzMi0zMiAzMnMtMzItMTQuMy0zMi0zMmwwLTk2LTMyIDB6Il19LGpfdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJpY2UtY3JlYW0iLGljb246WzM4NCw1MTIsWzEyNzg0OF0sImY4MTAiLCJNMzM1LjEgMTYwYy42LTUuMyAuOS0xMC42IC45LTE2IDAtNzkuNS02NC41LTE0NC0xNDQtMTQ0UzQ4IDY0LjUgNDggMTQ0YzAgNS40IC4zIDEwLjcgLjkgMTZsLS45IDBjLTI2LjUgMC00OCAyMS41LTQ4IDQ4czIxLjUgNDggNDggNDhsMjg4IDBjMjYuNSAwIDQ4LTIxLjUgNDgtNDhzLTIxLjUtNDgtNDgtNDhsLS45IDB6TTY0IDMwNEwxNjkuMiA1MjkuNWM0LjEgOC44IDEzIDE0LjUgMjIuOCAxNC41czE4LjYtNS43IDIyLjgtMTQuNUwzMjAgMzA0IDY0IDMwNHoiXX0scjRlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImNvbXB1dGVyLW1vdXNlIixpY29uOlszODQsNTEyLFsxMjg0MzMsIm1vdXNlIl0sImY4Y2MiLCJNMCAxOTJsMTY4IDAgMC0xOTItOCAwQzcxLjYgMCAwIDcxLjYgMCAxNjBsMCAzMnptMCA0OEwwIDM1MmMwIDg4LjQgNzEuNiAxNjAgMTYwIDE2MGw2NCAwYzg4LjQgMCAxNjAtNzEuNiAxNjAtMTYwbDAtMTEyLTM4NCAwem0zODQtNDhsMC0zMkMzODQgNzEuNiAzMTIuNCAwIDIyNCAwbC04IDAgMCAxOTIgMTY4IDB6Il19LFZfdD1yNGUsVV90PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImZhdWNldCIsaWNvbjpbNTEyLDUxMixbXSwiZTAwNSIsIk0xOTIgNjRjMC0xNy43IDE0LjMtMzIgMzItMzJzMzIgMTQuMyAzMiAzMmw5NiAwYzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMybC05NiAwIDAgNjQgMTguNyAwYzguNSAwIDE2LjYgMy40IDIyLjYgOS40bDIyLjYgMjIuNiAzMiAwYzg4LjQgMCAxNjAgNzEuNiAxNjAgMTYwIDAgMTcuNy0xNC4zIDMyLTMyIDMybC02NCAwYy0xNy43IDAtMzItMTQuMy0zMi0zMnMtMTQuMy0zMi0zMi0zMmwtMzYuMSAwYy0yMC4yIDI5LTUzLjkgNDgtOTEuOSA0OHMtNzEuNy0xOS05MS45LTQ4TDMyIDM1MmMtMTcuNyAwLTMyLTE0LjMtMzItMzJsMC02NGMwLTE3LjcgMTQuMy0zMiAzMi0zMmw5NiAwIDIyLjYtMjIuNmM2LTYgMTQuMS05LjQgMjIuNi05LjRsMTguNyAwIDAtNjQtOTYgMGMtMTcuNyAwLTMyLTE0LjMtMzItMzJTNzguMyA2NCA5NiA2NGw5NiAweiJdfSxXX3Q9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiYXdhcmQiLGljb246WzQ0OCw1MTIsW10sImY1NTkiLCJNMjQ1LjktMjUuOWMtMTMuNC04LjItMzAuMy04LjItNDMuNyAwLTI0LjQgMTQuOS0zOS41IDE4LjktNjguMSAxOC4zLTE1LjctLjQtMzAuMyA4LjEtMzcuOSAyMS45LTEzLjcgMjUuMS0yNC44IDM2LjItNDkuOSA0OS45LTEzLjggNy41LTIyLjIgMjIuMi0yMS45IDM3LjkgLjcgMjguNi0zLjQgNDMuNy0xOC4zIDY4LjEtOC4yIDEzLjQtOC4yIDMwLjMgMCA0My43IDE0LjkgMjQuNCAxOC45IDM5LjUgMTguMyA2OC4xLS40IDE1LjcgOC4xIDMwLjMgMjEuOSAzNy45IDIyLjEgMTIuMSAzMy4zIDIyLjEgNDUuMSA0MS41TDQyLjcgNDU4LjVjLTUuOSAxMS45LTEuMSAyNi4zIDEwLjcgMzIuMmw4NiA0M2MxMS41IDUuNyAyNS41IDEuNCAzMS43LTkuOGw1Mi44LTk1LjEgNTIuOCA5NS4xYzYuMiAxMS4yIDIwLjIgMTUuNiAzMS43IDkuOGw4Ni00M2MxMS45LTUuOSAxNi43LTIwLjMgMTAuNy0zMi4ybC00OC42LTk3LjJjMTEuNy0xOS40IDIzLTI5LjQgNDUuMS00MS41IDEzLjgtNy41IDIyLjItMjIuMiAyMS45LTM3LjktLjctMjguNiAzLjQtNDMuNyAxOC4zLTY4LjEgOC4yLTEzLjQgOC4yLTMwLjMgMC00My43LTE0LjktMjQuNC0xOC45LTM5LjUtMTguMy02OC4xIC40LTE1LjctOC4xLTMwLjMtMjEuOS0zNy45LTI1LjEtMTMuNy0zNi4yLTI0LjgtNDkuOS00OS45LTcuNS0xMy44LTIyLjItMjIuMi0zNy45LTIxLjktMjguNiAuNy00My43LTMuNC02OC4xLTE4LjN6TTIyNCA5NmE5NiA5NiAwIDEgMSAwIDE5MiA5NiA5NiAwIDEgMSAwLTE5MnoiXX0sR190PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InBlcnNvbi1kcm93bmluZyIsaWNvbjpbNjQwLDUxMixbXSwiZTU0NSIsIk0yNjQgODhhNTYgNTYgMCAxIDEgMTEyIDAgNTYgNTYgMCAxIDEgLTExMiAwek0xMzMuOSA2NS42YzE2LjgtNS42IDM0LjkgMy41IDQwLjUgMjAuMmwxMC45IDMyLjhjOS40IDI4LjMgMzMuMiA0OS41IDYyLjUgNTUuNiA1LjYgMS4yIDExLjMgMS44IDE3LjEgMS44bDg4IDBjMTcuMiAwIDM0LjMtMi44IDUwLjYtOC4ybDExNC40LTM4LjFjMTYuOC01LjYgMzQuOSAzLjUgNDAuNSAyMC4ycy0zLjUgMzQuOS0yMC4yIDQwLjVMNDIzLjcgMjI4LjVjLTguNCAyLjgtMTcgNS4xLTI1LjcgNi45bC0yNi41IDg4LjNjLTYuMSAzLjQtMTIuMSA3LjMtMTcuOSAxMS43LTIyLjEgMTYuNi0yOS4xIDE2LjYtNTEuMiAwLTI2LjItMTkuNy01Ni45LTMwLjItODcuOC0zMS4zbDIwLjItNjcuMmMtNTEuNS0xMC43LTkzLjUtNDguMS0xMTAuMi05OGwtMTAuOS0zMi44Yy01LjYtMTYuOCAzLjUtMzQuOSAyMC4yLTQwLjV6TTQwMy40IDQxMi4xQzM3OS4xIDQzMC4zIDM1MS4xIDQ0OCAzMjAgNDQ4cy01OS4xLTE3LjctODMuNC0zNS45Yy0yMS4zLTE2LjEtNDkuOS0xNi4xLTcxLjIgMC0yMy44IDE3LjktNTQuMSAzNS41LTg4LjEgMzUuMy0yMC40LS4xLTQwLjctNi43LTU5LjgtMjEuMS0xMC42LTgtMTIuNy0yMy00LjctMzMuNnMyMy0xMi43IDMzLjYtNC43YzExLjMgOC41IDIxLjYgMTEuNCAzMS4yIDExLjUgMTcuNiAuMSAzNy4zLTkuNCA1OC45LTI1LjcgMzguNC0yOSA5MC41LTI5IDEyOSAwIDI0IDE4LjEgNDAuNyAyNi4zIDU0LjUgMjYuM3MzMC41LTguMiA1NC41LTI2LjNjMzguNC0yOSA5MC41LTI5IDEyOSAwIDE2LjkgMTIuNyAzMi45IDIxLjUgNDcuOCAyNC42IDEzLjcgMi44IDI3LjQgLjkgNDIuMy0xMC4zIDEwLjYtOCAyNS42LTUuOSAzMy42IDQuN3M1LjkgMjUuNi00LjcgMzMuNmMtMjYuNCAxOS45LTU0LjIgMjQuNC04MC43IDE5LjEtMjUuMy01LjEtNDguMS0xOC45LTY3LjItMzMuMy0yMS4zLTE2LjEtNDkuOS0xNi4xLTcxLjIgMHoiXX0sWV90PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImNhbWVyYS1yb3RhdGUiLGljb246WzUxMiw1MTIsW10sImUwZDgiLCJNMTM4LjcgOTZsMTAuNC0zMS4yQzE1NS42IDQ1LjIgMTczLjkgMzIgMTk0LjYgMzJsMTIyLjggMGMyMC43IDAgMzkgMTMuMiA0NS41IDMyLjhMMzczLjMgOTYgNDQ4IDk2YzM1LjMgMCA2NCAyOC43IDY0IDY0bDAgMjU2YzAgMzUuMy0yOC43IDY0LTY0IDY0TDY0IDQ4MGMtMzUuMyAwLTY0LTI4LjctNjQtNjRMMCAxNjBjMC0zNS4zIDI4LjctNjQgNjQtNjRsNzQuNyAwek05NiAzMDUuOWMwIDMuOSAxLjQgNy43IDQgMTAuNmw0OCA1NGM2LjQgNy4yIDE3LjYgNy4yIDIzLjkgMGw0OC01NGMyLjYtMi45IDQtNi43IDQtMTAuNmwwLTEuOWMwLTguOC03LjItMTYtMTYtMTZsLTI0IDBjMC0zOS44IDMyLjItNzIgNzItNzIgNC40IDAgOC43IC40IDEyLjkgMS4ybDM0LjktMzkuM2MtMTQuNi02LjQtMzAuOC05LjktNDcuOC05LjktNjYuMyAwLTEyMCA1My43LTEyMCAxMjBsLTI0IDBjLTguOCAwLTE2IDcuMi0xNiAxNmwwIDEuOXptMTk2LTQ2LjVjLTIuNiAyLjktNCA2LjctNCAxMC42bDAgMS45YzAgOC44IDcuMiAxNiAxNiAxNmwyNCAwYzAgMzkuOC0zMi4yIDcyLTcyIDcyLTQuNCAwLTguNy0uNC0xMi45LTEuMmwtMzQuOSAzOS4zYzE0LjcgNi40IDMwLjggOS45IDQ3LjggOS45IDY2LjMgMCAxMjAtNTMuNyAxMjAtMTIwbDI0IDBjOC44IDAgMTYtNy4yIDE2LTE2bDAtMS45YzAtMy45LTEuNC03LjctNC0xMC42bC00OC01NGMtNi40LTcuMi0xNy42LTcuMi0yMy45IDBsLTQ4IDU0eiJdfSxpNGU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZmFjZS1ncmluLWhlYXJ0cyIsaWNvbjpbNTEyLDUxMixbMTI4NTI1LCJncmluLWhlYXJ0cyJdLCJmNTg0IiwiTTI1NiA1MTJjMTQxLjQgMCAyNTYtMTE0LjYgMjU2LTI1NiAwLTIzLjMtMy4xLTQ1LjktOC45LTY3LjMgNS41LTEzLjUgOC45LTI4LjQgOC45LTQ0LjcgMC01My00My05Ni05Ni05NmwtMi45IDBjLTIuNSAwLTUgLjEtNy40IC4zLTQyLjEtMzAuNC05My44LTQ4LjMtMTQ5LjctNDguM1MxNDguNCAxNy45IDEwNi4zIDQ4LjNjLTIuNS0uMi00LjktLjMtNy40LS4zTDk2IDQ4Yy01MyAwLTk2IDQzLTk2IDk2IDAgMTYuMyAzLjUgMzEuMiA4LjkgNDQuNy01LjggMjEuNC04LjkgNDQtOC45IDY3LjMgMCAxNDEuNCAxMTQuNiAyNTYgMjU2IDI1NnpNMzg2LjcgMzI0LjljMTEuOS0zLjcgMjMuOSA2LjMgMTkuNiAxOC4xLTIyLjQgNjEuMy04MS4zIDEwNS4xLTE1MC4zIDEwNS4xUzEyOC4xIDQwNC4yIDEwNS43IDM0Mi45Yy00LjMtMTEuOCA3LjctMjEuOCAxOS42LTE4LjEgMzkuMiAxMi4yIDgzLjcgMTkuMSAxMzAuNyAxOS4xczkxLjUtNi45IDEzMC43LTE5LjF6TTMyMi45IDk2YzEzLjUgMCAyNi41IDUuNCAzNiAxNC45bDkuMSA5LjEgOS4xLTkuMWM5LjUtOS41IDIyLjUtMTQuOSAzNi0xNC45bDIuOSAwYzI2LjUgMCA0OCAyMS41IDQ4IDQ4IDAgNTMuNC02Ni45IDk1LjctODkgMTA4LjItNC40IDIuNS05LjYgMi41LTE0IDAtMjIuMS0xMi41LTg5LTU0LjgtODktMTA4LjIgMC0yNi41IDIxLjUtNDggNDgtNDhsMi45IDB6bS0xODggMTQuOWw5LjEgOS4xIDkuMS05LjFjOS41LTkuNSAyMi41LTE0LjkgMzYtMTQuOWwyLjkgMGMyNi41IDAgNDggMjEuNSA0OCA0OCAwIDUzLjQtNjYuOSA5NS43LTg5IDEwOC4yLTQuNCAyLjUtOS42IDIuNS0xNCAwLTIyLjEtMTIuNS04OS01NC44LTg5LTEwOC4yIDAtMjYuNSAyMS41LTQ4IDQ4LTQ4bDIuOSAwYzEzLjUgMCAyNi41IDUuNCAzNiAxNC45eiJdfSxaX3Q9aTRlLFhfdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJmaWxlLWZyYWdtZW50IixpY29uOlszODQsNTEyLFtdLCJlNjk3IiwiTTY0IDBDMjguNyAwIDAgMjguNyAwIDY0bDAgMjQwIDEyOCAwYzQ0LjIgMCA4MCAzNS44IDgwIDgwbDAgMTI4IDExMiAwYzM1LjMgMCA2NC0yOC43IDY0LTY0bDAtMjc3LjVjMC0xNy02LjctMzMuMy0xOC43LTQ1LjNMMjU4LjcgMTguN0MyNDYuNyA2LjcgMjMwLjUgMCAyMTMuNSAwTDY0IDB6TTMyNS41IDE3NkwyMzIgMTc2Yy0xMy4zIDAtMjQtMTAuNy0yNC0yNEwyMDggNTguNSAzMjUuNSAxNzZ6TTMyIDM1MmMtMTcuNyAwLTMyIDE0LjMtMzIgMzJsMCA5NmMwIDE3LjcgMTQuMyAzMiAzMiAzMmw5NiAwYzE3LjcgMCAzMi0xNC4zIDMyLTMybDAtOTZjMC0xNy43LTE0LjMtMzItMzItMzJsLTk2IDB6Il19LFFfdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJwZXJzb24tbWlsaXRhcnktcmlmbGUiLGljb246WzQ0OCw1MTIsW10sImU1NGIiLCJNMTI4IDM5YzAtMTMgMTAtMjMuOCAyMi45LTI0LjlMMzAyLjcgMS40QzMxMiAuNyAzMjAgOCAzMjAgMTcuNEwzMjAgNDhjMCA4LjgtNy4yIDE2LTE2IDE2TDE1MyA2NGMtMTMuOCAwLTI1LTExLjItMjUtMjV6bTE3LjYgNTdsMTU2LjggMGMxIDUuMiAxLjYgMTAuNSAxLjYgMTYgMCA0NC4yLTM1LjggODAtODAgODBzLTgwLTM1LjgtODAtODBjMC01LjUgLjYtMTAuOCAxLjYtMTZ6bTIyOCAzNjQuM0wzMjAgMzY5LjcgMzIwIDQ4MGMwIDEuMy0uMSAyLjUtLjIgMy44TDE0NS41IDIzNC45YzE2LjYtNy4xIDM0LjYtMTAuOSA1My4zLTEwLjlsNTAuNCAwYzE1LjkgMCAzMS4zIDIuOCA0NS44IDcuOUwzODkuOSA2Ny43Yy03LjctNC40LTEwLjMtMTQuMi01LjktMjEuOXMxNC4yLTEwLjMgMjEuOS01LjlsMjcuNyAxNmM3LjcgNC40IDEwLjMgMTQuMiA1LjkgMjEuOWwtNTUuNSA5Ni4xIDEuNiAuOWMxNS4zIDguOCAyMC42IDI4LjQgMTEuNyA0My43TDM2MC43IDI4MmMyIDIuOCAzLjkgNS44IDUuNyA4LjhsNzYuMSAxMjguOGMxMS4yIDE5IDQuOSA0My41LTE0LjEgNTQuOHMtNDMuNSA0LjktNTQuOC0xNC4xek0yODggNTEybC0xMjggMGMtMTcuNyAwLTMyLTE0LjMtMzItMzJsMC0xMTAuMy01My42IDkwLjZjLTExLjIgMTktMzUuOCAyNS4zLTU0LjggMTQuMVMtNS43IDQzOC43IDUuNiA0MTkuN0w4MS43IDI5MC44YzkuNC0xNS44IDIxLjctMjkuMyAzNi00MEwyOTkuMSA1MTBjLTMuNSAxLjMtNy4yIDItMTEuMSAyek0yNjQgMzIwYTI0IDI0IDAgMSAwIDAtNDggMjQgMjQgMCAxIDAgMCA0OHoiXX0sSl90PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InRvZ2dsZS1vbiIsaWNvbjpbNTc2LDUxMixbXSwiZjIwNSIsIk0xOTIgNjRDODYgNjQgMCAxNTAgMCAyNTZTODYgNDQ4IDE5MiA0NDhsMTkyIDBjMTA2IDAgMTkyLTg2IDE5Mi0xOTJTNDkwIDY0IDM4NCA2NEwxOTIgNjR6bTE5MiA5NmE5NiA5NiAwIDEgMSAwIDE5MiA5NiA5NiAwIDEgMSAwLTE5MnoiXX0sS190PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6Imx1bmdzLXZpcnVzIixpY29uOls1NzYsNTEyLFtdLCJlMDY3IiwiTTI4OCAwYy0xNy43IDAtMzIgMTQuMy0zMiAzMmwwIDE1MS4zYzkuNi00LjggMjAuNS03LjUgMzItNy41czIyLjQgMi43IDMyIDcuNUwzMjAgMzJjMC0xNy43LTE0LjMtMzItMzItMzJ6TTQ1MC4xIDQ1MWM4IDE4LjMgOC4xIDM5LjIgLjIgNTcuNSAxMC4yIDIuMyAyMC42IDMuNSAzMS4yIDMuNSA1Mi4yIDAgOTQuNS00Mi4zIDk0LjUtOTQuNWwwLTYuMmMwLTExMS4xLTM2LjctMjE5LTEwNC40LTMwN0w0MjguOSA0OC43Yy04LjEtMTAuNi0yMC43LTE2LjctMzQtMTYuNy0yMy43IDAtNDIuOSAxOS4yLTQyLjkgNDIuOWwwIDEzOS45YzEuMiAyLjIgMi4yIDQuNiAzLjEgNi45IDI2LjQtMTEuNiA1OC4zLTYuNiA3OS45IDE1czI2LjYgNTMuNiAxNSA3OS45QzQ3NyAzMjcuMiA0OTYgMzUzLjMgNDk2IDM4My44cy0xOSA1Ni43LTQ1LjkgNjcuMXpNMjIwLjkgMjIxLjhjLjktMi40IDItNC43IDMuMS02LjlsMC0xMzguNWMwLTI0LjUtMTkuOS00NC40LTQ0LjQtNDQuNC0xMi41IDAtMjQuNCA1LjMtMzIuOCAxNC41bC0yNi40IDI5QzQyLjkgMTYwLjggMCAyNzEuOCAwIDM4N2wwIDMwLjVjMCA1Mi4yIDQyLjMgOTQuNSA5NC41IDk0LjUgMTAuNSAwIDIxLTEuMiAzMS4yLTMuNS03LjktMTguMy03LjgtMzkuMyAuMi01Ny41LTI2LjktMTAuNC00NS45LTM2LjYtNDUuOS02Ny4xczE5LTU2LjcgNDUuOS02Ny4xYy0xMS42LTI2LjQtNi42LTU4LjMgMTUtNzkuOXM1My42LTI2LjYgNzkuOS0xNXpNMTUyIDQwOGMyOC44IDAgNDMuMiAzNC44IDIyLjkgNTUuMi05LjQgOS40LTkuNCAyNC42IDAgMzMuOXMyNC42IDkuNCAzMy45IDBjMjAuNC0yMC40IDU1LjItNS45IDU1LjIgMjIuOSAwIDEzLjMgMTAuNyAyNCAyNCAyNHMyNC0xMC43IDI0LTI0YzAtMjguOCAzNC44LTQzLjIgNTUuMi0yMi45IDkuNCA5LjQgMjQuNiA5LjQgMzMuOSAwczkuNC0yNC42IDAtMzMuOWMtMjAuNC0yMC40LTUuOS01NS4yIDIyLjktNTUuMiAxMy4zIDAgMjQtMTAuNyAyNC0yNHMtMTAuNy0yNC0yNC0yNGMtMjguOCAwLTQzLjItMzQuOC0yMi45LTU1LjIgOS40LTkuNCA5LjQtMjQuNiAwLTMzLjlzLTI0LjYtOS40LTMzLjkgMGMtMjAuNCAyMC40LTU1LjIgNS45LTU1LjItMjIuOSAwLTEzLjMtMTAuNy0yNC0yNC0yNHMtMjQgMTAuNy0yNCAyNGMwIDI4LjgtMzQuOCA0My4yLTU1LjIgMjIuOS05LjQtOS40LTI0LjYtOS40LTMzLjkgMHMtOS40IDI0LjYgMCAzMy45YzIwLjQgMjAuNCA1LjkgNTUuMi0yMi45IDU1LjItMTMuMyAwLTI0IDEwLjctMjQgMjRzMTAuNyAyNCAyNCAyNHptMTA0LTgwYTI0IDI0IDAgMSAxIDAgNDggMjQgMjQgMCAxIDEgMC00OHptNDAgODhhMjQgMjQgMCAxIDEgNDggMCAyNCAyNCAwIDEgMSAtNDggMHoiXX0sSUQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToidGFibGUtdGVubmlzLXBhZGRsZS1iYWxsIixpY29uOls1MTIsNTEyLFsxMjc5NTUsInBpbmctcG9uZy1wYWRkbGUtYmFsbCIsInRhYmxlLXRlbm5pcyJdLCJmNDVkIiwiTTk3IDEyN2w2Ny40LTY3LjRjMzguMi0zOC4yIDkwLTU5LjYgMTQ0LTU5LjYgMTEyLjUgMCAyMDMuNyA5MS4yIDIwMy43IDIwMy42IDAgNDYuNC0xNS44IDkxLjEtNDQuNSAxMjctMjMuNi0xNi44LTUyLjQtMjYuNy04My41LTI2LjctMzEuMSAwLTU5LjkgOS45LTgzLjQgMjYuNkw5NyAxMjd6TTI0MCA0NDhjMCA5LjcgMSAxOS4xIDIuOCAyOC4yLTE5LjgtNS4yLTM4LTE1LjUtNTIuNy0zMC4yLTEyLjItMTIuMi0zMS45LTEyLjItNDQuMSAwTDk2LjYgNDk1LjRjLTEwLjYgMTAuNi0yNSAxNi42LTQwIDE2LjYtMzEuMiAwLTU2LjYtMjUuMy01Ni42LTU2LjYgMC0xNSA2LTI5LjQgMTYuNi00MGw0OS40LTQ5LjRjMTIuMi0xMi4yIDEyLjItMzEuOSAwLTQ0LjEtMjEuNy0yMS43LTMzLjktNTEuMi0zMy45LTgxLjkgMC0yOS40IDExLjEtNTcuNiAzMS4xLTc5TDI2Ni42IDM2NC42QzI0OS45IDM4OC4xIDI0MCA0MTYuOSAyNDAgNDQ4em0xNDQtOTZhOTYgOTYgMCAxIDEgMCAxOTIgOTYgOTYgMCAxIDEgMC0xOTJ6Il19LGVMdD1JRCx0THQ9SUQsckx0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImJveGVzLXBhY2tpbmciLGljb246WzU3Niw1MTIsW10sImU0YzciLCJNMjA4IDBsODAgMCAwIDU2YzAgMTMuMyAxMC43IDI0IDI0IDI0bDgwIDBjMTMuMyAwIDI0LTEwLjcgMjQtMjRsMC01NiA4MCAwYzI2LjUgMCA0OCAyMS41IDQ4IDQ4bDAgNDE2YzAgMjYuNS0yMS41IDQ4LTQ4IDQ4bC0xMDguOCAwYzguMi0xNC4xIDEyLjgtMzAuNSAxMi44LTQ4bDAtMTYwYzEwLTEzLjQgMTYtMzAgMTYtNDhsMC0zMmMwLTQ0LjItMzUuOC04MC04MC04MGwtMTc2IDAgMC05NmMwLTI2LjUgMjEuNS00OCA0OC00OHpNMzIgMzM2bDMyMCAwIDAgMTI4YzAgMjYuNS0yMS41IDQ4LTQ4IDQ4TDgwIDUxMmMtMjYuNSAwLTQ4LTIxLjUtNDgtNDhsMC0xMjh6TTQ4IDE5MmwyODggMGMxNy43IDAgMzIgMTQuMyAzMiAzMmwwIDMyYzAgMTcuNy0xNC4zIDMyLTMyIDMyTDQ4IDI4OGMtMTcuNyAwLTMyLTE0LjMtMzItMzJsMC0zMmMwLTE3LjcgMTQuMy0zMiAzMi0zMnoiXX0saUx0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InBlcnNvbi1jaGFsa2JvYXJkIixpY29uOls2NDAsNTEyLFtdLCJlNTNkIiwiTTE5MiA4MGE1NiA1NiAwIDEgMCAwLTExMiA1NiA1NiAwIDEgMCAwIDExMnpNMTc2IDUxMmwwLTE2MGMwLTguOCA3LjItMTYgMTYtMTZzMTYgNy4yIDE2IDE2bDAgMTYwYzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJsMC0zMzYgMTI4IDBjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJsLTE2IDAgMC00OCAxOTIgMCAwIDE5Mi0xOTIgMCAwLTMyLTY0IDAgMCA0OGMwIDI2LjUgMjEuNSA0OCA0OCA0OGwyMjQgMGMyNi41IDAgNDgtMjEuNSA0OC00OGwwLTIyNGMwLTI2LjUtMjEuNS00OC00OC00OEwzNjggMGMtMjYuNSAwLTQ4IDIxLjUtNDggNDhsMCA2NC0xMjIuNyAwYy00NS42IDAtODguNSAyMS42LTExNS42IDU4LjJMMTQuMyAyNjAuOWMtMTAuNSAxNC4yLTcuNiAzNC4yIDYuNiA0NC44czM0LjIgNy42IDQ0LjgtNi42TDExMiAyMzYuNyAxMTIgNTEyYzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJ6Il19LGFMdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJkaWNlLXR3byIsaWNvbjpbNDQ4LDUxMixbOTg1N10sImY1MjgiLCJNMCA5NkMwIDYwLjcgMjguNyAzMiA2NCAzMmwzMjAgMGMzNS4zIDAgNjQgMjguNyA2NCA2NGwwIDMyMGMwIDM1LjMtMjguNyA2NC02NCA2NEw2NCA0ODBjLTM1LjMgMC02NC0yOC43LTY0LTY0TDAgOTZ6TTM1MiAzNTJhMzIgMzIgMCAxIDAgLTY0IDAgMzIgMzIgMCAxIDAgNjQgMHpNMTI4IDE5MmEzMiAzMiAwIDEgMCAwLTY0IDMyIDMyIDAgMSAwIDAgNjR6Il19LGE0ZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJhcnJvdy1yaWdodC1hcnJvdy1sZWZ0IixpY29uOls1MTIsNTEyLFs4NjQ0LCJleGNoYW5nZSJdLCJmMGVjIiwiTTUwMi42IDE1MC42bC05NiA5NmMtMTIuNSAxMi41LTMyLjggMTIuNS00NS4zIDBzLTEyLjUtMzIuOCAwLTQ1LjNMNDAyLjcgMTYwIDMyIDE2MGMtMTcuNyAwLTMyLTE0LjMtMzItMzJTMTQuMyA5NiAzMiA5NmwzNzAuNyAwLTQxLjQtNDEuNGMtMTIuNS0xMi41LTEyLjUtMzIuOCAwLTQ1LjNzMzIuOC0xMi41IDQ1LjMgMGw5NiA5NmMxMi41IDEyLjUgMTIuNSAzMi44IDAgNDUuM3ptLTM5Ny4zIDM1MmwtOTYtOTZjLTEyLjUtMTIuNS0xMi41LTMyLjggMC00NS4zbDk2LTk2YzEyLjUtMTIuNSAzMi44LTEyLjUgNDUuMyAwczEyLjUgMzIuOCAwIDQ1LjNMMTA5LjMgMzUyIDQ4MCAzNTJjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJsLTM3MC43IDAgNDEuNCA0MS40YzEyLjUgMTIuNSAxMi41IDMyLjggMCA0NS4zcy0zMi44IDEyLjUtNDUuMyAweiJdfSxuTHQ9YTRlLG40ZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJmb290YmFsbCIsaWNvbjpbNTEyLDUxMixbMTI3OTQ0LCJmb290YmFsbC1iYWxsIl0sImY0NGUiLCJNMjYxLjEgMjIuNmMtODkgMTgtMTUwLjUgNjMuNC0xOTAgMTIzLjktMjMuMyAzNS42LTM4LjEgNzUuMy00Ni43IDExNS41TDI1MS45IDQ4OS40Yzg5LTE4IDE1MC41LTYzLjQgMTkwLjEtMTIzLjkgMjMuMy0zNS42IDM4LjEtNzUuMyA0Ni43LTExNS41TDI2MS4xIDIyLjZ6bTIzNiAxNjguMWMzLjItNDIuMyAuNy04My4zLTQuOC0xMTguNy00LjQtMjcuOC0yNi44LTQ4LTUzLjEtNTEuNi00My01LjktODIuMi03LjUtMTE3LjgtNS40TDQ5Ny4xIDE5MC42ek0xOTEuNyA0OTcuMUwxNS45IDMyMS40Yy0zLjIgNDIuMy0uNyA4My4zIDQuOCAxMTguNyA0LjQgMjcuOCAyNi44IDQ4IDUzLjEgNTEuNiA0MyA1LjkgODIuMiA3LjUgMTE3LjggNS40ek0yNzEuNSAxNDNjOS40LTkuNCAyNC42LTkuNCAzMy45IDBsNjQgNjRjOS40IDkuNCA5LjQgMjQuNiAwIDMzLjlzLTI0LjYgOS40LTMzLjkgMGwtNjQtNjRjLTkuNC05LjQtOS40LTI0LjYgMC0zMy45em0tNjQgNjRjOS40LTkuNCAyNC42LTkuNCAzMy45IDBsNjQgNjRjOS40IDkuNCA5LjQgMjQuNiAwIDMzLjlzLTI0LjYgOS40LTMzLjkgMGwtNjQtNjRjLTkuNC05LjQtOS40LTI0LjYgMC0zMy45em0tNjQgNjRjOS40LTkuNCAyNC42LTkuNCAzMy45IDBsNjQgNjRjOS40IDkuNCA5LjQgMjQuNiAwIDMzLjlzLTI0LjYgOS40LTMzLjkgMGwtNjQtNjRjLTkuNC05LjQtOS40LTI0LjYgMC0zMy45eiJdfSxvTHQ9bjRlLHNMdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJ0cnVjay1tb25zdGVyIixpY29uOls1NzYsNTEyLFtdLCJmNjNiIiwiTTMzNiA5Nmw0OCA2NC0xMjggMCAwLTY0IDgwIDB6bTEyOCA2NEwzODcuMiA1Ny42QzM3NS4xIDQxLjUgMzU2LjEgMzIgMzM2IDMyTDIyNCAzMmMtMTcuNyAwLTMyIDE0LjMtMzIgMzJsMCA5Ni0xNDQgMGMtMjYuNSAwLTQ4IDIxLjUtNDggNDhsMCA2NGMwIDE4LjEgMTAuMSAzMy45IDI0LjkgNDIuMS0uNSA1LjcgMS4xIDExLjYgNC43IDE2LjQtMy43IDYuOS02LjggMTQuMS05IDIxLjgtMTEuNiAxLjctMjAuNiAxMS43LTIwLjYgMjMuOGwwIDE2YzAgMTIuMSA4LjkgMjIuMSAyMC42IDIzLjggMi4yIDcuNiA1LjMgMTQuOSA5IDIxLjgtNyA5LjQtNi4zIDIyLjggMi4zIDMxLjNsMTEuMyAxMS4zYzguNiA4LjYgMjEuOSA5LjMgMzEuMyAyLjIgNi44IDMuNyAxNC4xIDYuOCAyMS43IDkgMS43IDExLjYgMTEuNyAyMC42IDIzLjggMjAuNmwxNiAwYzEyLjEgMCAyMi4xLTguOSAyMy44LTIwLjYgNy42LTIuMiAxNC45LTUuMyAyMS43LTkgOS40IDcgMjIuOCA2LjMgMzEuMy0yLjJsMTEuMy0xMS4zYzguNi04LjYgOS4zLTIxLjkgMi4zLTMxLjMgMy43LTYuOCA2LjgtMTQuMSA5LTIxLjcgMTEuNi0xLjcgMjAuNi0xMS43IDIwLjYtMjMuOGwwLTE2YzAtMTIuMS04LjktMjIuMS0yMC42LTIzLjgtMi4yLTcuNi01LjMtMTQuOS05LTIxLjcgMi40LTMuMiAzLjktNi44IDQuNS0xMC41bDExNC4yIDBjLjYgMy43IDIuMSA3LjMgNC41IDEwLjUtMy43IDYuOS02LjggMTQuMS05IDIxLjgtMTEuNiAxLjctMjAuNiAxMS43LTIwLjYgMjMuOGwwIDE2YzAgMTIuMSA4LjkgMjIuMSAyMC42IDIzLjggMi4yIDcuNiA1LjMgMTQuOSA5IDIxLjgtNyA5LjQtNi4zIDIyLjggMi4yIDMxLjNsMTEuMyAxMS4zYzguNSA4LjYgMjEuOSA5LjMgMzEuMyAyLjIgNi44IDMuNyAxNC4xIDYuOCAyMS43IDkgMS43IDExLjYgMTEuNyAyMC42IDIzLjggMjAuNmwxNiAwYzEyLjEgMCAyMi4xLTguOSAyMy44LTIwLjYgNy42LTIuMiAxNC45LTUuMyAyMS44LTkgOS40IDcgMjIuOCA2LjMgMzEuMy0yLjJsMTEuMy0xMS4zYzguNi04LjYgOS4zLTIxLjkgMi4yLTMxLjMgMy43LTYuOCA2LjgtMTQuMSA5LTIxLjcgMTEuNi0xLjcgMjAuNi0xMS43IDIwLjYtMjMuOGwwLTE2YzAtMTIuMS04LjktMjIuMS0yMC42LTIzLjgtMi4yLTcuNi01LjMtMTQuOS05LTIxLjcgMy42LTQuOCA1LjItMTAuNyA0LjctMTYuNCAxNC44LTguMiAyNC45LTIzLjkgMjQuOS00Mi4xbDAtNjRjMC0yNi41LTIxLjUtNDgtNDgtNDhsLTY0IDB6TTEyOCAzMzZhNDggNDggMCAxIDEgMCA5NiA0OCA0OCAwIDEgMSAwLTk2em0yNzIgNDhhNDggNDggMCAxIDEgOTYgMCA0OCA0OCAwIDEgMSAtOTYgMHoiXX0sbEx0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImFzdGVyaXNrIixpY29uOls0NDgsNTEyLFsxMDAzMyw2MTU0NV0sIjJhIiwiTTIyNCAwYzE3LjcgMCAzMiAxNC4zIDMyIDMybDAgMTY4LjYgMTQ0LTgzLjFjMTUuMy04LjggMzQuOS0zLjYgNDMuNyAxMS43czMuNiAzNC45LTExLjcgNDMuN0wyODggMjU2IDQzMiAzMzkuMWMxNS4zIDguOCAyMC42IDI4LjQgMTEuNyA0My43cy0yOC40IDIwLjYtNDMuNyAxMS43TDI1NiAzMTEuNCAyNTYgNDgwYzAgMTcuNy0xNC4zIDMyLTMyIDMycy0zMi0xNC4zLTMyLTMybDAtMTY4LjYtMTQ0IDgzLjFjLTE1LjMgOC44LTM0LjkgMy42LTQzLjctMTEuN1MuNyAzNDggMTYgMzM5LjFMMTYwIDI1NiAxNiAxNzIuOUMuNyAxNjQtNC41IDE0NC41IDQuMyAxMjkuMVMzMi43IDEwOC42IDQ4IDExNy40TDE5MiAyMDAuNiAxOTIgMzJjMC0xNy43IDE0LjMtMzIgMzItMzJ6Il19LFBEPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImJhdHRlcnktZnVsbCIsaWNvbjpbNjQwLDUxMixbMTI4MjY3LCJiYXR0ZXJ5IiwiYmF0dGVyeS01Il0sImYyNDAiLCJNNTI4IDEyOGM4LjggMCAxNiA3LjIgMTYgMTZsMCAyMjRjMCA4LjgtNy4yIDE2LTE2IDE2bC00MTYgMGMtOC44IDAtMTYtNy4yLTE2LTE2bDAtMjI0YzAtOC44IDcuMi0xNiAxNi0xNmw0MTYgMHpNMTEyIDY0Yy00NC4yIDAtODAgMzUuOC04MCA4MGwwIDIyNGMwIDQ0LjIgMzUuOCA4MCA4MCA4MGw0MTYgMGM0NC4yIDAgODAtMzUuOCA4MC04MGwwLTQ4YzE3LjcgMCAzMi0xNC4zIDMyLTMybDAtNjRjMC0xNy43LTE0LjMtMzItMzItMzJsMC00OGMwLTQ0LjItMzUuOC04MC04MC04MEwxMTIgNjR6bTU2IDExMmMtMTMuMyAwLTI0IDEwLjctMjQgMjRsMCAxMTJjMCAxMy4zIDEwLjcgMjQgMjQgMjRsMzA0IDBjMTMuMyAwIDI0LTEwLjcgMjQtMjRsMC0xMTJjMC0xMy4zLTEwLjctMjQtMjQtMjRsLTMwNCAweiJdfSxjTHQ9UEQsZEx0PVBELHVMdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJjaGlsZC1kcmVzcyIsaWNvbjpbMzIwLDUxMixbXSwiZTU5YyIsIk0yMjQgNjRBNjQgNjQgMCAxIDAgOTYgNjQgNjQgNjQgMCAxIDAgMjI0IDY0ek04OCA0MDBsMCA4MGMwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMybDAtODAgMTYgMCAwIDgwYzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJsMC04MCAxNy44IDBjMTAuOSAwIDE4LjYtMTAuNyAxNS4yLTIxLjFsLTMxLjEtOTMuNCAyOC43IDM3LjhjMTAuNyAxNC4xIDMwLjggMTYuOCA0NC44IDYuMnMxNi44LTMwLjcgNi4yLTQ0LjhMMjU0LjYgMjA3Yy0yMi40LTI5LjYtNTcuNS00Ny05NC42LTQ3cy03Mi4yIDE3LjQtOTQuNiA0N0w2LjUgMjg0LjdjLTEwLjcgMTQuMS03LjkgMzQuMiA2LjIgNDQuOHMzNC4yIDcuOSA0NC44LTYuMkw4Ni4yIDI4NS41IDU1IDM3OC45QzUxLjYgMzg5LjMgNTkuMyA0MDAgNzAuMiA0MDBMODggNDAweiJdfSxvNGU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZmFjZS1raXNzLWJlYW0iLGljb246WzUxMiw1MTIsWzEyODUzNywia2lzcy1iZWFtIl0sImY1OTciLCJNMjU2IDUxMmEyNTYgMjU2IDAgMSAwIDAtNTEyIDI1NiAyNTYgMCAxIDAgMCA1MTJ6TTI0MCAyODhsMzIgMGMyNi41IDAgNDggMjEuNSA0OCA0OCAwIDEyLjMtNC42IDIzLjUtMTIuMiAzMiA3LjYgOC41IDEyLjIgMTkuNyAxMi4yIDMyIDAgMjYuNS0yMS41IDQ4LTQ4IDQ4bC0zMiAwYy04LjggMC0xNi03LjItMTYtMTZzNy4yLTE2IDE2LTE2bDE2IDBjOC44IDAgMTYtNy4yIDE2LTE2cy03LjItMTYtMTYtMTZsLTE2IDBjLTguOCAwLTE2LTcuMi0xNi0xNnM3LjItMTYgMTYtMTZsMTYgMGM4LjggMCAxNi03LjIgMTYtMTZzLTcuMi0xNi0xNi0xNmwtMTYgMGMtOC44IDAtMTYtNy4yLTE2LTE2czcuMi0xNiAxNi0xNnpNMTc2IDE4MGMtMTUuNSAwLTI4IDEyLjUtMjggMjhsMCA4YzAgMTEtOSAyMC0yMCAyMHMtMjAtOS0yMC0yMGwwLThjMC0zNy42IDMwLjQtNjggNjgtNjhzNjggMzAuNCA2OCA2OGwwIDhjMCAxMS05IDIwLTIwIDIwcy0yMC05LTIwLTIwbDAtOGMwLTE1LjUtMTIuNS0yOC0yOC0yOHptMTMyIDI4bDAgOGMwIDExLTkgMjAtMjAgMjBzLTIwLTktMjAtMjBsMC04YzAtMzcuNiAzMC40LTY4IDY4LTY4czY4IDMwLjQgNjggNjhsMCA4YzAgMTEtOSAyMC0yMCAyMHMtMjAtOS0yMC0yMGwwLThjMC0xNS41LTEyLjUtMjgtMjgtMjhzLTI4IDEyLjUtMjggMjh6Il19LHBMdD1vNGUsczRlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InRyYXNoLWNhbi1hcnJvdy11cCIsaWNvbjpbNDQ4LDUxMixbInRyYXNoLXJlc3RvcmUtYWx0Il0sImY4MmEiLCJNMTY3LjEtMTZsMTEzLjkgMGMxMy44IDAgMjYgOC44IDMwLjQgMjEuOUwzMjAgMzIgNDE2IDMyYzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMyTDMyIDk2QzE0LjMgOTYgMCA4MS43IDAgNjRTMTQuMyAzMiAzMiAzMmw5NiAwIDguNy0yNi4xQzE0MS4xLTcuMiAxNTMuMy0xNiAxNjcuMS0xNnpNMzIgMTQ0bDM4NCAwIDAgMzA0YzAgMzUuMy0yOC43IDY0LTY0IDY0TDk2IDUxMmMtMzUuMyAwLTY0LTI4LjctNjQtNjRsMC0zMDR6bTIwOSA3OWMtOS40LTkuNC0yNC42LTkuNC0zMy45IDBsLTcyIDcyYy05LjQgOS40LTkuNCAyNC42IDAgMzMuOXMyNC42IDkuNCAzMy45IDBsMzEtMzEgMCAxMDIuMWMwIDEzLjMgMTAuNyAyNCAyNCAyNHMyNC0xMC43IDI0LTI0bDAtMTAyLjEgMzEgMzFjOS40IDkuNCAyNC42IDkuNCAzMy45IDBzOS40LTI0LjYgMC0zMy45bC03Mi03MnoiXX0saEx0PXM0ZSxmTHQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZm9udCIsaWNvbjpbNTEyLDUxMixbXSwiZjAzMSIsIk0yODUuMSA1MC43QzI3OS45IDM5LjMgMjY4LjUgMzIgMjU2IDMycy0yMy45IDcuMy0yOS4xIDE4LjdMNTkuNSA0MTYgNDggNDE2Yy0xNy43IDAtMzIgMTQuMy0zMiAzMnMxNC4zIDMyIDMyIDMybDg4IDBjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJsLTYuMSAwIDIyLTQ4IDIwOC4zIDAgMjIgNDgtNi4xIDBjLTE3LjcgMC0zMiAxNC4zLTMyIDMyczE0LjMgMzIgMzIgMzJsODggMGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMmwtMTEuNSAwLTE2Ny40LTM2NS4zek0zMzAuOCAzMDRMMTgxLjIgMzA0IDI1NiAxNDAuOCAzMzAuOCAzMDR6Il19LG1MdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJib3JlLWhvbGUiLGljb246WzUxMiw1MTIsW10sImU0YzMiLCJNMjU2IDBjLTE3LjcgMC0zMiAxNC4zLTMyIDMybDAgMjMyLjZjLTE5LjEgMTEuMS0zMiAzMS43LTMyIDU1LjQgMCAzNS4zIDI4LjcgNjQgNjQgNjRzNjQtMjguNyA2NC02NGMwLTIzLjctMTIuOS00NC40LTMyLTU1LjRMMjg4IDMyYzAtMTcuNy0xNC4zLTMyLTMyLTMyek0wIDM4NGwwIDY0YzAgMzUuMyAyOC43IDY0IDY0IDY0bDM4NCAwYzM1LjMgMCA2NC0yOC43IDY0LTY0bDAtMjcyYzAtMjYuNS0yMS41LTQ4LTQ4LTQ4bC00OCAwYy0yNi41IDAtNDggMjEuNS00OCA0OGwwIDE0NGMwIDYxLjktNTAuMSAxMTItMTEyIDExMlMxNDQgMzgxLjkgMTQ0IDMyMGwwLTE0NGMwLTI2LjUtMjEuNS00OC00OC00OGwtNDggMGMtMjYuNSAwLTQ4IDIxLjUtNDggNDhMMCAzODR6Il19LGdMdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJ2aXJ1cy1jb3ZpZCIsaWNvbjpbNTEyLDUxMixbXSwiZTRhOCIsIk0xOTIgMjRjMC0xMy4zIDEwLjctMjQgMjQtMjRsODAgMGMxMy4zIDAgMjQgMTAuNyAyNCAyNHMtMTAuNyAyNC0yNCAyNGwtMTYgMCAwIDMzLjZjMzAuNyA0LjIgNTguOCAxNi4zIDgyLjMgMzQuMUwzODYuMSA5MiAzNzQuOCA4MC42Yy05LjQtOS40LTkuNC0yNC42IDAtMzMuOXMyNC42LTkuNCAzMy45IDBsNTYuNiA1Ni42YzkuNCA5LjQgOS40IDI0LjYgMCAzMy45cy0yNC42IDkuNC0zMy45IDBsLTExLjMtMTEuMy0yMy44IDIzLjhjMTcuOSAyMy41IDI5LjkgNTEuNyAzNC4xIDgyLjNsMzMuNiAwIDAtMTZjMC0xMy4zIDEwLjctMjQgMjQtMjRzMjQgMTAuNyAyNCAyNGwwIDgwYzAgMTMuMy0xMC43IDI0LTI0IDI0cy0yNC0xMC43LTI0LTI0bDAtMTYtMzMuNiAwYy00LjIgMzAuNy0xNi4zIDU4LjgtMzQuMSA4Mi4zbDIzLjggMjMuOCAxMS4zLTExLjNjOS40LTkuNCAyNC42LTkuNCAzMy45IDBzOS40IDI0LjYgMCAzMy45bC01Ni42IDU2LjZjLTkuNCA5LjQtMjQuNiA5LjQtMzMuOSAwcy05LjQtMjQuNiAwLTMzLjlsMTEuMy0xMS4zLTIzLjgtMjMuOGMtMjMuNSAxNy45LTUxLjcgMjkuOS04Mi4zIDM0LjFsMCAzMy42IDE2IDBjMTMuMyAwIDI0IDEwLjcgMjQgMjRzLTEwLjcgMjQtMjQgMjRsLTgwIDBjLTEzLjMgMC0yNC0xMC43LTI0LTI0czEwLjctMjQgMjQtMjRsMTYgMCAwLTMzLjZjLTMwLjctNC4yLTU4LjgtMTYuMy04Mi4zLTM0LjFsLTIzLjggMjMuOCAxMS4zIDExLjNjOS40IDkuNCA5LjQgMjQuNiAwIDMzLjlzLTI0LjYgOS40LTMzLjkgMEw0Ni43IDQwOC43Yy05LjQtOS40LTkuNC0yNC42IDAtMzMuOXMyNC42LTkuNCAzMy45IDBsMTEuMyAxMS4zIDIzLjgtMjMuOEM5Ny45IDMzOC44IDg1LjggMzEwLjcgODEuNiAyODBsLTMzLjYgMCAwIDE2YzAgMTMuMy0xMC43IDI0LTI0IDI0UzAgMzA5LjMgMCAyOTZsMC04MGMwLTEzLjMgMTAuNy0yNCAyNC0yNHMyNCAxMC43IDI0IDI0bDAgMTYgMzMuNiAwYzQuMi0zMC43IDE2LjMtNTguOCAzNC4xLTgyLjNMOTIgMTI1LjkgODAuNiAxMzcuMmMtOS40IDkuNC0yNC42IDkuNC0zMy45IDBzLTkuNC0yNC42IDAtMzMuOWw1Ni42LTU2LjZjOS40LTkuNCAyNC42LTkuNCAzMy45IDBzOS40IDI0LjYgMCAzMy45TDEyNS45IDkyIDE0OS43IDExNS43YzIzLjUtMTcuOSA1MS43LTI5LjkgODIuMy0zNC4xbDAtMzMuNi0xNiAwYy0xMy4zIDAtMjQtMTAuNy0yNC0yNHptMzIgMjAwYTMyIDMyIDAgMSAwIC02NCAwIDMyIDMyIDAgMSAwIDY0IDB6bTk2IDk2YTMyIDMyIDAgMSAwIDAtNjQgMzIgMzIgMCAxIDAgMCA2NHoiXX0sYkx0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImZpbGUtcGRmIixpY29uOls1NzYsNTEyLFtdLCJmMWMxIiwiTTk2IDBDNjAuNyAwIDMyIDI4LjcgMzIgNjRsMCAzODRjMCAzNS4zIDI4LjcgNjQgNjQgNjRsODAgMCAwLTExMmMwLTM1LjMgMjguNy02NCA2NC02NGwxNzYgMCAwLTE2NS41YzAtMTctNi43LTMzLjMtMTguNy00NS4zTDI5MC43IDE4LjdDMjc4LjcgNi43IDI2Mi41IDAgMjQ1LjUgMEw5NiAwek0zNTcuNSAxNzZMMjY0IDE3NmMtMTMuMyAwLTI0LTEwLjctMjQtMjRMMjQwIDU4LjUgMzU3LjUgMTc2ek0yNDAgMzgwYy0xMSAwLTIwIDktMjAgMjBsMCAxMjhjMCAxMSA5IDIwIDIwIDIwczIwLTkgMjAtMjBsMC0yOCAxMiAwYzMzLjEgMCA2MC0yNi45IDYwLTYwcy0yNi45LTYwLTYwLTYwbC0zMiAwem0zMiA4MGwtMTIgMCAwLTQwIDEyIDBjMTEgMCAyMCA5IDIwIDIwcy05IDIwLTIwIDIwem05Ni04MGMtMTEgMC0yMCA5LTIwIDIwbDAgMTI4YzAgMTEgOSAyMCAyMCAyMGwzMiAwYzI4LjcgMCA1Mi0yMy4zIDUyLTUybDAtNjRjMC0yOC43LTIzLjMtNTItNTItNTJsLTMyIDB6bTIwIDEyOGwwLTg4IDEyIDBjNi42IDAgMTIgNS40IDEyIDEybDAgNjRjMCA2LjYtNS40IDEyLTEyIDEybC0xMiAwem04OC0xMDhsMCAxMjhjMCAxMSA5IDIwIDIwIDIwczIwLTkgMjAtMjBsMC00NCAyOCAwYzExIDAgMjAtOSAyMC0yMHMtOS0yMC0yMC0yMGwtMjggMCAwLTI0IDI4IDBjMTEgMCAyMC05IDIwLTIwcy05LTIwLTIwLTIwbC00OCAwYy0xMSAwLTIwIDktMjAgMjB6Il19LHZMdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJsYW5ndWFnZSIsaWNvbjpbNTc2LDUxMixbXSwiZjFhYiIsIk0xNjAgMGMxNy43IDAgMzIgMTQuMyAzMiAzMmwwIDMyIDEyOCAwYzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMybC05LjYgMC04LjQgMjMuMWMtMTYuNCA0NS4yLTQxLjEgODYuNS03Mi4yIDEyMiAxNC4yIDguOCAyOSAxNi42IDQ0LjQgMjMuNWw1MC40IDIyLjQgNjIuMi0xNDBjNS4xLTExLjYgMTYuNi0xOSAyOS4yLTE5czI0LjEgNy40IDI5LjIgMTlsMTI4IDI4OGM3LjIgMTYuMi0uMSAzNS4xLTE2LjIgNDIuMnMtMzUuMS0uMS00Mi4yLTE2LjJsLTIwLTQ1LTE1Ny41IDAtMjAgNDVjLTcuMiAxNi4yLTI2LjEgMjMuNC00Mi4yIDE2LjJzLTIzLjQtMjYuMS0xNi4yLTQyLjJsMzkuOC04OS41LTUwLjQtMjIuNGMtMjMtMTAuMi00NS0yMi40LTY1LjgtMzYuNC0yMS4zIDE3LjItNDQuNiAzMi4yLTY5LjUgNDQuN0w3OC4zIDM4MC42Yy0xNS44IDcuOS0zNSAxLjUtNDIuOS0xNC4zcy0xLjUtMzUgMTQuMy00Mi45bDM0LjUtMTcuM2MxNi4zLTguMiAzMS44LTE3LjcgNDYuNC0yOC4zLTEzLjgtMTIuNy0yNi44LTI2LjQtMzguOS00MC45TDgxLjYgMjI0LjdjLTExLjMtMTMuNi05LjUtMzMuOCA0LjEtNDUuMXMzMy44LTkuNSA0NS4xIDQuMWwxMC4yIDEyLjJjMTEuNSAxMy45IDI0LjEgMjYuOCAzNy40IDM4LjcgMjcuNS0zMC40IDQ5LjItNjYuMSA2My41LTEwNS40bC41LTEuMi0yMTAuMyAwQzE0LjMgMTI4IDAgMTEzLjcgMCA5NlMxNC4zIDY0IDMyIDY0bDk2IDAgMC0zMmMwLTE3LjcgMTQuMy0zMiAzMi0zMnpNNDE2IDI3MC44TDM2NS43IDM4NCA0NjYuMyAzODQgNDE2IDI3MC44eiJdfSxsNGU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToic2hpZWxkLWhhbHZlZCIsaWNvbjpbNTEyLDUxMixbInNoaWVsZC1hbHQiXSwiZjNlZCIsIk0yNTYgMGM0LjYgMCA5LjIgMSAxMy40IDIuOUw0NTcuOCA4Mi44YzIyIDkuMyAzOC40IDMxIDM4LjMgNTcuMi0uNSA5OS4yLTQxLjMgMjgwLjctMjEzLjYgMzYzLjItMTYuNyA4LTM2LjEgOC01Mi44IDAtMTcyLjQtODIuNS0yMTMuMS0yNjQtMjEzLjYtMzYzLjItLjEtMjYuMiAxNi4zLTQ3LjkgMzguMy01Ny4yTDI0Mi43IDIuOUMyNDYuOSAxIDI1MS40IDAgMjU2IDB6bTAgNjYuOGwwIDM3OC4xYzEzOC02Ni44IDE3NS4xLTIxNC44IDE3Ni0zMDMuNGwtMTc2LTc0LjYgMCAweiJdfSx4THQ9bDRlLHlMdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJjYXJldC11cCIsaWNvbjpbMzIwLDUxMixbXSwiZjBkOCIsIk0xNDAuMyAxMzUuMmMxMi42LTEwLjMgMzEuMS05LjUgNDIuOCAyLjJsMTI4IDEyOGM5LjIgOS4yIDExLjkgMjIuOSA2LjkgMzQuOVMzMDEuNCAzMjAgMjg4LjUgMzIwbC0yNTYgMGMtMTIuOSAwLTI0LjYtNy44LTI5LjYtMTkuOFMuNyAyNzQuNSA5LjkgMjY1LjRsMTI4LTEyOCAyLjQtMi4yeiJdfSxjNGU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZmlsZS1wZW4iLGljb246WzY0MCw1MTIsWzEyODIyMSwiZmlsZS1lZGl0Il0sImYzMWMiLCJNMTI4LjEgMGMtMzUuMyAwLTY0IDI4LjctNjQgNjRsMCAzODRjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMTQ2LjIgMCAxMC45LTU0LjVjNC4zLTIxLjcgMTUtNDEuNiAzMC42LTU3LjJsMTMyLjItMTMyLjIgMC05Ny41YzAtMTctNi43LTMzLjMtMTguNy00NS4zTDMyMi44IDE4LjdDMzEwLjggNi43IDI5NC41IDAgMjc3LjYgMEwxMjguMSAwek0zODkuNiAxNzZsLTkzLjUgMGMtMTMuMyAwLTI0LTEwLjctMjQtMjRsMC05My41IDExNy41IDExNy41ek0zMzIuMyA0NjYuOWwtMTEuOSA1OS42Yy0uMiAuOS0uMyAxLjktLjMgMi45IDAgOCA2LjUgMTQuNiAxNC42IDE0LjYgMSAwIDEuOS0uMSAyLjktLjNsNTkuNi0xMS45YzEyLjQtMi41IDIzLjgtOC42IDMyLjctMTcuNWwxMTguOS0xMTguOS04MC04MC0xMTguOSAxMTguOWMtOC45IDguOS0xNSAyMC4zLTE3LjUgMzIuN3ptMjY3LjgtMTIzYzIyLjEtMjIuMSAyMi4xLTU3LjkgMC04MHMtNTcuOS0yMi4xLTgwIDBsLTI4LjggMjguOCA4MCA4MCAyOC44LTI4Ljh6Il19LHdMdD1jNGUsZDRlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InBlcnNvbi1iaWtpbmciLGljb246WzU3Niw1MTIsWzEyODY5MiwiYmlraW5nIl0sImY4NGEiLCJNMzY4IDk2YTQ4IDQ4IDAgMSAwIDAtOTYgNDggNDggMCAxIDAgMCA5NnptMjcuMiA2NGwtNjEuOC00OC44Yy0xNy4zLTEzLjYtNDEuNy0xMy44LTU5LjEtLjNsLTgzLjEgNjQuMmMtMzAuNyAyMy44LTI4LjUgNzAuOCA0LjMgOTEuNkwyNTYgMzA1LjEgMjU2IDQxNmMwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMybDAtMTI4YzAtMTAuNy01LjMtMjAuNy0xNC4yLTI2LjZMMjYzIDIzMi45IDMyMy4zIDE4NC40IDM2NCAyMTdjNS43IDQuNSAxMi43IDcgMjAgN2w2NCAwYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMybC01Mi44IDB6TTExMiA1MTJhMTEyIDExMiAwIDEgMCAwLTIyNCAxMTIgMTEyIDAgMSAwIDAgMjI0em0zNTIgMGExMTIgMTEyIDAgMSAwIDAtMjI0IDExMiAxMTIgMCAxIDAgMCAyMjR6Il19LE1MdD1kNGUsdTRlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImJvb2stb3Blbi1yZWFkZXIiLGljb246WzUxMiw1MTIsWyJib29rLXJlYWRlciJdLCJmNWRhIiwiTTI1NiAxNTJhODggODggMCAxIDAgMC0xNzYgODggODggMCAxIDAgMCAxNzZ6bTAgMjk4LjdsMC0xNDkuM2MxNi4zLTYuOCAzMi45LTEzLjcgNDkuNy0yMC43IDM5LTE2LjIgODAuOC0yNC42IDEyMy4xLTI0LjZsMTkuMiAwIDAgMTYwLTE5LjIgMGMtNTkuMSAwLTExNy43IDExLjctMTcyLjMgMzQuNWwtLjUgLjJ6TTI1NiAyMzJsLTI1LjEtMTAuNUMxODQuMSAyMDIgMTMzLjkgMTkyIDgzLjIgMTkyTDQ4IDE5MmMtMjYuNSAwLTQ4IDIxLjUtNDggNDhMMCA0MzJjMCAyNi41IDIxLjUgNDggNDggNDhsMzUuMiAwYzUwLjcgMCAxMDAuOSAxMCAxNDcuNyAyOS41bDEyLjggNS4zYzcuOSAzLjMgMTYuNyAzLjMgMjQuNiAwbDEyLjgtNS4zYzQ2LjgtMTkuNSA5Ny0yOS41IDE0Ny43LTI5LjVsMzUuMiAwYzI2LjUgMCA0OC0yMS41IDQ4LTQ4bDAtMTkyYzAtMjYuNS0yMS41LTQ4LTQ4LTQ4bC0zNS4yIDBjLTUwLjcgMC0xMDAuOSAxMC0xNDcuNyAyOS41TDI1NiAyMzJ6Il19LGtMdD11NGUsU0x0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImdsYXNzLXdhdGVyLWRyb3BsZXQiLGljb246WzM4NCw1MTIsW10sImU0ZjUiLCJNMzIgMEMyMy4xIDAgMTQuNiAzLjcgOC42IDEwLjJTLS42IDI1LjQgLjEgMzQuM0wyOC45IDQzNy43YzMgNDEuOSAzNy44IDc0LjMgNzkuOCA3NC4zbDE2Ni42IDBjNDIgMCA3Ni44LTMyLjQgNzkuOC03NC4zTDM4My45IDM0LjNjLjYtOC45LTIuNC0xNy42LTguNS0yNC4xUzM2MC45IDAgMzUyIDBMMzIgMHpNODMgMjk3LjVMNjYuNCA2NCAzMTcuNiA2NCAzMDEgMjk3LjUgMjg4IDMwNGMtMjAuMSAxMC4xLTQzLjkgMTAuMS02NCAwcy00My45LTEwLjEtNjQgMC00My45IDEwLjEtNjQgMGwtMTMtNi41ek0yNTYgMTk2YzAtMjQtMzMuNy03MC4xLTUyLjItOTMuNS02LjEtNy43LTE3LjUtNy43LTIzLjYgMC0xOC41IDIzLjQtNTIuMiA2OS41LTUyLjIgOTMuNSAwIDMzLjEgMjguNyA2MCA2NCA2MHM2NC0yNi45IDY0LTYweiJdfSxwNGU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToidG93ZXItYnJvYWRjYXN0IixpY29uOls1NzYsNTEyLFsiYnJvYWRjYXN0LXRvd2VyIl0sImY1MTkiLCJNODcuOSAxMS41Yy0xMS4zLTYuOS0yNi4xLTMuMi0zMyA4LjEtMjQuOCA0MS0zOSA4OS4xLTM5IDE0MC40czE0LjIgOTkuNCAzOSAxNDAuNGM2LjkgMTEuMyAyMS42IDE1IDMzIDguMXMxNS0yMS42IDguMS0zM0M3NS43IDI0MS45IDY0IDIwMi4zIDY0IDE2MFM3NS43IDc4LjEgOTYuMSA0NC40YzYuOS0xMS4zIDMuMi0yNi4xLTguMS0zM3ptNDAwLjEgMGMtMTEuMyA2LjktMTUgMjEuNi04LjEgMzMgMjAuNCAzMy43IDMyLjEgNzMuMyAzMi4xIDExNS42cy0xMS43IDgxLjktMzIuMSAxMTUuNmMtNi45IDExLjMtMy4yIDI2LjEgOC4xIDMzczI2LjEgMy4yIDMzLTguMWMyNC44LTQxIDM5LTg5LjEgMzktMTQwLjRTNTQ1LjggNjAuNiA1MjEgMTkuNmMtNi45LTExLjMtMjEuNi0xNS0zMy04LjF6TTMyMCAyMTUuNGMxOS4xLTExLjEgMzItMzEuNyAzMi01NS40IDAtMzUuMy0yOC43LTY0LTY0LTY0cy02NCAyOC43LTY0IDY0YzAgMjMuNyAxMi45IDQ0LjQgMzIgNTUuNEwyNTYgNDgwYzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJsMC0yNjQuNnpNMTgwLjIgOTFjNy4yLTExLjIgMy45LTI2LTcuMi0zMy4ycy0yNi0zLjktMzMuMiA3LjJjLTE3LjYgMjcuNC0yNy44IDYwLTI3LjggOTVzMTAuMiA2Ny42IDI3LjggOTVjNy4yIDExLjIgMjIgMTQuNCAzMy4yIDcuMnMxNC40LTIyIDcuMi0zMy4yYy0xMi44LTE5LjktMjAuMi00My42LTIwLjItNjlzNy40LTQ5LjEgMjAuMi02OXpNNDM2LjIgNjVjLTcuMi0xMS4yLTIyLTE0LjQtMzMuMi03LjJzLTE0LjQgMjItNy4yIDMzLjJjMTIuOCAxOS45IDIwLjIgNDMuNiAyMC4yIDY5cy03LjQgNDkuMS0yMC4yIDY5Yy03LjIgMTEuMi0zLjkgMjYgNy4yIDMzLjJzMjYgMy45IDMzLjItNy4yYzE3LjYtMjcuNCAyNy44LTYwIDI3LjgtOTVzLTEwLjItNjcuNi0yNy44LTk1eiJdfSx6THQ9cDRlLGg0ZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJtaW5pbWl6ZSIsaWNvbjpbNTEyLDUxMixbImNvbXByZXNzLWFycm93cy1hbHQiXSwiZjc4YyIsIk00NTYgMjI0bC0xNDQgMGMtMTMuMyAwLTI0LTEwLjctMjQtMjRsMC0xNDRjMC05LjcgNS44LTE4LjUgMTQuOC0yMi4yUzMyMi4xIDMyLjIgMzI5IDM5bDQwIDQwIDczLjQtNzMuNEM0NDYgMiA0NTAuOSAwIDQ1NiAwczEwIDIgMTMuNyA1LjdsMzYuNyAzNi43QzUxMCA0NiA1MTIgNTAuOSA1MTIgNTZzLTIgMTAtNS43IDEzLjdMNDMzIDE0MyA0NzMgMTgzYzYuOSA2LjkgOC45IDE3LjIgNS4yIDI2LjJTNDY1LjcgMjI0IDQ1NiAyMjR6bTAgNjRjOS43IDAgMTguNSA1LjggMjIuMiAxNC44czEuNyAxOS4zLTUuMiAyNi4ybC00MCA0MCA3My40IDczLjRjMy42IDMuNiA1LjcgOC41IDUuNyAxMy43cy0yIDEwLTUuNyAxMy43bC0zNi43IDM2LjdDNDY2IDUxMCA0NjEuMSA1MTIgNDU2IDUxMnMtMTAtMi0xMy43LTUuN0wzNjkgNDMzIDMyOSA0NzNjLTYuOSA2LjktMTcuMiA4LjktMjYuMiA1LjJTMjg4IDQ2NS43IDI4OCA0NTZsMC0xNDRjMC0xMy4zIDEwLjctMjQgMjQtMjRsMTQ0IDB6bS0yNTYgMGMxMy4zIDAgMjQgMTAuNyAyNCAyNGwwIDE0NGMwIDkuNy01LjggMTguNS0xNC44IDIyLjJzLTE5LjMgMS43LTI2LjItNS4ybC00MC00MC03My40IDczLjRDNjYgNTEwIDYxLjEgNTEyIDU2IDUxMnMtMTAtMi0xMy43LTUuN0w1LjcgNDY5LjdDMiA0NjYgMCA0NjEuMSAwIDQ1NnMyLTEwIDUuNy0xMy43TDc5IDM2OSAzOSAzMjljLTYuOS02LjktOC45LTE3LjItNS4yLTI2LjJTNDYuMyAyODggNTYgMjg4bDE0NCAwek01NiAyMjRjLTkuNyAwLTE4LjUtNS44LTIyLjItMTQuOFMzMi4yIDE4OS45IDM5IDE4M0w3OSAxNDMgNS43IDY5LjdDMiA2NiAwIDYxLjEgMCA1NlMyIDQ2IDUuNyA0Mi4zTDQyLjMgNS43QzQ2IDIgNTAuOSAwIDU2IDBTNjYgMiA2OS43IDUuN0wxNDMgNzkgMTgzIDM5YzYuOS02LjkgMTcuMi04LjkgMjYuMi01LjJTMjI0IDQ2LjMgMjI0IDU2bDAgMTQ0YzAgMTMuMy0xMC43IDI0LTI0IDI0TDU2IDIyNHoiXX0sQ0x0PWg0ZSxUTHQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiYXJyb3ctcmlnaHQtdG8tY2l0eSIsaWNvbjpbNjQwLDUxMixbXSwiZTRiMyIsIk0yODggNDhjMC0yNi41IDIxLjUtNDggNDgtNDhsOTYgMGMyNi41IDAgNDggMjEuNSA0OCA0OGwwIDgwIDQ4IDAgMC03MmMwLTEzLjMgMTAuNy0yNCAyNC0yNHMyNCAxMC43IDI0IDI0bDAgNzIgMTYgMGMyNi41IDAgNDggMjEuNSA0OCA0OGwwIDI4OGMwIDI2LjUtMjEuNSA0OC00OCA0OGwtMjU2IDBjLTI2LjUgMC00OC0yMS41LTQ4LTQ4bDAtNDE2em02NCA2NGwwIDMyYzAgOC44IDcuMiAxNiAxNiAxNmwzMiAwYzguOCAwIDE2LTcuMiAxNi0xNmwwLTMyYzAtOC44LTcuMi0xNi0xNi0xNmwtMzIgMGMtOC44IDAtMTYgNy4yLTE2IDE2em0xNiA4MGMtOC44IDAtMTYgNy4yLTE2IDE2bDAgMzJjMCA4LjggNy4yIDE2IDE2IDE2bDMyIDBjOC44IDAgMTYtNy4yIDE2LTE2bDAtMzJjMC04LjgtNy4yLTE2LTE2LTE2bC0zMiAwek0zNTIgMzA0bDAgMzJjMCA4LjggNy4yIDE2IDE2IDE2bDMyIDBjOC44IDAgMTYtNy4yIDE2LTE2bDAtMzJjMC04LjgtNy4yLTE2LTE2LTE2bC0zMiAwYy04LjggMC0xNiA3LjItMTYgMTZ6bTE3Ni04MGMtOC44IDAtMTYgNy4yLTE2IDE2bDAgMzJjMCA4LjggNy4yIDE2IDE2IDE2bDMyIDBjOC44IDAgMTYtNy4yIDE2LTE2bDAtMzJjMC04LjgtNy4yLTE2LTE2LTE2bC0zMiAwek01MTIgMzM2bDAgMzJjMCA4LjggNy4yIDE2IDE2IDE2bDMyIDBjOC44IDAgMTYtNy4yIDE2LTE2bDAtMzJjMC04LjgtNy4yLTE2LTE2LTE2bC0zMiAwYy04LjggMC0xNiA3LjItMTYgMTZ6TTE1MyAxNjdsNzIgNzJjOS40IDkuNCA5LjQgMjQuNiAwIDMzLjlsLTcyIDcyYy05LjQgOS40LTI0LjYgOS40LTMzLjkgMHMtOS40LTI0LjYgMC0zMy45bDMxLTMxLTEwMi4xIDBjLTEzLjMgMC0yNC0xMC43LTI0LTI0czEwLjctMjQgMjQtMjRsMTAyLjEgMC0zMS0zMWMtOS40LTkuNC05LjQtMjQuNiAwLTMzLjlzMjQuNi05LjQgMzMuOSAweiJdfSxfTHQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToibGFwdG9wLW1lZGljYWwiLGljb246WzY0MCw1MTIsW10sImY4MTIiLCJNNjQgOTZjMC0zNS4zIDI4LjctNjQgNjQtNjRsMzg0IDBjMzUuMyAwIDY0IDI4LjcgNjQgNjRsMCAyNDAtNjQgMCAwLTI0MC0zODQgMCAwIDI0MC02NCAwIDAtMjQwek0wIDQwMy4yQzAgMzkyLjYgOC42IDM4NCAxOS4yIDM4NGw2MDEuNiAwYzEwLjYgMCAxOS4yIDguNiAxOS4yIDE5LjIgMCA0Mi40LTM0LjQgNzYuOC03Ni44IDc2LjhMNzYuOCA0ODBDMzQuNCA0ODAgMCA0NDUuNiAwIDQwMy4yek0yODggMTYwYzAtOC44IDcuMi0xNiAxNi0xNmwzMiAwYzguOCAwIDE2IDcuMiAxNiAxNmwwIDQwIDQwIDBjOC44IDAgMTYgNy4yIDE2IDE2bDAgMzJjMCA4LjgtNy4yIDE2LTE2IDE2bC00MCAwIDAgNDBjMCA4LjgtNy4yIDE2LTE2IDE2bC0zMiAwYy04LjggMC0xNi03LjItMTYtMTZsMC00MC00MCAwYy04LjggMC0xNi03LjItMTYtMTZsMC0zMmMwLTguOCA3LjItMTYgMTYtMTZsNDAgMCAwLTQweiJdfSxMTHQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiYnJlYWQtc2xpY2UiLGljb246WzUxMiw1MTIsW10sImY3ZWMiLCJNNjQgNDMybDAtMTc2Yy0zNS4zIDAtNjQtMjguNy02NC02NCAwLTIxNi41IDUxMi0yMTYuNSA1MTIgMCAwIDM1LjMtMjguNyA2NC02NCA2NGwwIDE3NmMwIDI2LjUtMjEuNSA0OC00OCA0OGwtMjg4IDBjLTI2LjUgMC00OC0yMS41LTQ4LTQ4eiJdfSxBTHQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZ2xvYmUiLGljb246WzUxMiw1MTIsWzEyNzc2MF0sImYwYWMiLCJNMzUxLjkgMjgwbC0xOTAuOSAwYzIuOSA2NC41IDE3LjIgMTIzLjkgMzcuNSAxNjcuNCAxMS40IDI0LjUgMjMuNyA0MS44IDM1LjEgNTIuNCAxMS4yIDEwLjUgMTguOSAxMi4yIDIyLjkgMTIuMnMxMS43LTEuNyAyMi45LTEyLjJjMTEuNC0xMC42IDIzLjctMjggMzUuMS01Mi40IDIwLjMtNDMuNSAzNC42LTEwMi45IDM3LjUtMTY3LjR6TTE2MC45IDIzMmwxOTAuOSAwQzM0OSAxNjcuNSAzMzQuNyAxMDguMSAzMTQuNCA2NC42IDMwMyA0MC4yIDI5MC43IDIyLjggMjc5LjMgMTIuMiAyNjguMSAxLjcgMjYwLjQgMCAyNTYuNCAwcy0xMS43IDEuNy0yMi45IDEyLjJjLTExLjQgMTAuNi0yMy43IDI4LTM1LjEgNTIuNC0yMC4zIDQzLjUtMzQuNiAxMDIuOS0zNy41IDE2Ny40em0tNDggMEMxMTYuNCAxNDYuNCAxMzguNSA2Ni45IDE3MC44IDE0LjcgNzguNyA0Ny4zIDEwLjkgMTMxLjIgMS41IDIzMmwxMTEuNCAwek0xLjUgMjgwYzkuNCAxMDAuOCA3Ny4yIDE4NC43IDE2OS4zIDIxNy4zLTMyLjMtNTIuMi01NC40LTEzMS43LTU3LjktMjE3LjNMMS41IDI4MHptMzk4LjQgMGMtMy41IDg1LjYtMjUuNiAxNjUuMS01Ny45IDIxNy4zIDkyLjEtMzIuNyAxNTkuOS0xMTYuNSAxNjkuMy0yMTcuM2wtMTExLjQgMHptMTExLjQtNDhDNTAxLjkgMTMxLjIgNDM0LjEgNDcuMyAzNDIgMTQuNyAzNzQuMyA2Ni45IDM5Ni40IDE0Ni40IDM5OS45IDIzMmwxMTEuNCAweiJdfSxETHQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZm9sZGVyLW1pbnVzIixpY29uOls1MTIsNTEyLFtdLCJmNjVkIiwiTTQ0OCA0NDhMNjQgNDQ4Yy0zNS4zIDAtNjQtMjguNy02NC02NEwwIDk2QzAgNjAuNyAyOC43IDMyIDY0IDMybDEzOC43IDBjMTMuOCAwIDI3LjMgNC41IDM4LjQgMTIuOGwzOC40IDI4LjhjNS41IDQuMiAxMi4zIDYuNCAxOS4yIDYuNEw0NDggODBjMzUuMyAwIDY0IDI4LjcgNjQgNjRsMCAyNDBjMCAzNS4zLTI4LjcgNjQtNjQgNjR6TTE4NCAyNDBjLTEzLjMgMC0yNCAxMC43LTI0IDI0czEwLjcgMjQgMjQgMjRsMTQ0IDBjMTMuMyAwIDI0LTEwLjcgMjQtMjRzLTEwLjctMjQtMjQtMjRsLTE0NCAweiJdfSxFTHQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToibWFzay1mYWNlIixpY29uOls2NDAsNTEyLFtdLCJlMWQ3IiwiTTMyMCA2NGMtMjcuMiAwLTUzLjggOC03Ni40IDIzLjFsLTM3LjEgMjQuOGMtMTUuOCAxMC41LTM0LjMgMTYuMS01My4zIDE2LjFMNjQgMTI4Yy0zNS4zIDAtNjQgMjguNy02NCA2NGwwIDc4LjdjMCA2Mi42IDQ1LjIgMTE2IDEwNyAxMjYuM2w5Ny45IDE2LjNjMzMgMjIgNzIuNiAzNC43IDExNS4xIDM0LjdzODIuMi0xMi44IDExNS4xLTM0LjdMNTMzIDM5Ni45YzYxLjctMTAuMyAxMDctNjMuNyAxMDctMTI2LjNsMC03OC43YzAtMzUuMy0yOC43LTY0LTY0LTY0bC04OS4yIDBjLTE5IDAtMzcuNS01LjYtNTMuMy0xNi4xTDM5Ni40IDg3LjFDMzczLjggNzIgMzQ3LjIgNjQgMzIwIDY0ek0xMzUuOSAzMzYuOWwtMTguNC0zLjFDODYuNiAzMjguNyA2NCAzMDIgNjQgMjcwLjdsMC03OC43IDQ4IDAgMCA0OGMwIDM1IDguNiA2Ny45IDIzLjkgOTYuOXptMzg2LjYtMy4xbC0xOC40IDMuMUM1MTkuNCAzMDcuOSA1MjggMjc1IDUyOCAyNDBsMC00OCA0OCAwIDAgNzguN2MwIDMxLjMtMjIuNiA1OC01My41IDYzLjF6TTE5MiAyMzJjMC0xMy4zIDEwLjctMjQgMjQtMjRsMjA4IDBjMTMuMyAwIDI0IDEwLjcgMjQgMjRzLTEwLjcgMjQtMjQgMjRsLTIwOCAwYy0xMy4zIDAtMjQtMTAuNy0yNC0yNHptNTYgNTZsMTQ0IDBjMTMuMyAwIDI0IDEwLjcgMjQgMjRzLTEwLjcgMjQtMjQgMjRsLTE0NCAwYy0xMy4zIDAtMjQtMTAuNy0yNC0yNHMxMC43LTI0IDI0LTI0eiJdfSwkTHQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiYm9uZyIsaWNvbjpbNTEyLDUxMixbXSwiZjU1YyIsIk00NDguNSAzODRjMCA0MS41LTEzLjEgNzkuOS0zNS41IDExMS4zLTcuOSAxMS4xLTIxLjIgMTYuNy0zNC44IDE2LjdsLTI0My4zIDBjLTEzLjcgMC0yNi45LTUuNi0zNC44LTE2LjctMjIuNC0zMS40LTM1LjUtNjkuOC0zNS41LTExMS4zIDAtNzEuMSAzOC42LTEzMy4xIDk2LTE2Ni4zbDAtMTUzLjdjLTE3LjcgMC0zMi0xNC4zLTMyLTMyczE0LjMtMzIgMzItMzJsMTkyIDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJsMCAxNTMuN2MxNC4yIDguMiAyNy4yIDE4LjIgMzguOCAyOS42bDM5LjMtMzkuMy03LTdjLTkuNC05LjQtOS40LTI0LjYgMC0zMy45czI0LjYtOS40IDMzLjkgMGMxNiAxNiAzMiAzMiA0OCA0OCA5LjQgOS40IDkuNCAyNC42IDAgMzMuOXMtMjQuNiA5LjQtMzMuOSAwbC03LTctNDMuMyA0My4zYzE3LjMgMjguOSAyNy4zIDYyLjYgMjcuMyA5OC44ek0yODguNSA2NGwtNjQgMCAwIDE5MC42LTMyIDE4LjVjLTE5LjUgMTEuMy0zNS43IDI3LjUtNDYuOSA0Ni45bDIyMS44IDBjLTExLjItMTkuNC0yNy40LTM1LjYtNDYuOS00Ni45bC0zMi0xOC41IDAtMTkwLjZ6Il19LElMdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJyb2FkLWJyaWRnZSIsaWNvbjpbNTc2LDUxMixbXSwiZTU2MyIsIk0zMiAzMmwyMDggMCAwIDY0LTI0IDAgMCA2NCAyNCAwIDAgMTI5LjNjLTQ1LjQgNy42LTgwIDQ3LjEtODAgOTQuN2wwIDY0YzAgMTcuNy0xNC4zIDMyLTMyIDMybC0zMiAwYy0xNy43IDAtMzItMTQuMy0zMi0zMmwwLTk0YzAtMzguOC0yNi40LTcyLjYtNjQtODJsMC0xMTIgNDAgMCAwLTY0LTggMEMxNC4zIDk2IDAgODEuNyAwIDY0UzE0LjMgMzIgMzIgMzJ6TTg4IDk2bDAgNjQgODAgMCAwLTY0LTgwIDB6TTMzNiAzMmw3MiAwIDAgNzJjMCAxMy4zIDEwLjcgMjQgMjQgMjRzMjQtMTAuNyAyNC0yNGwwLTcyIDcyIDBjMjYuNSAwIDQ4IDIxLjUgNDggNDhsMCAzNTJjMCAyNi41LTIxLjUgNDgtNDggNDhsLTcyIDAgMC03MmMwLTEzLjMtMTAuNy0yNC0yNC0yNHMtMjQgMTAuNy0yNCAyNGwwIDcyLTcyIDBjLTI2LjUgMC00OC0yMS41LTQ4LTQ4bDAtMzUyYzAtMjYuNSAyMS41LTQ4IDQ4LTQ4em05NiAxNjBjLTEzLjMgMC0yNCAxMC43LTI0IDI0bDAgODBjMCAxMy4zIDEwLjcgMjQgMjQgMjRzMjQtMTAuNyAyNC0yNGwwLTgwYzAtMTMuMy0xMC43LTI0LTI0LTI0eiJdfSxmNGU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiYXJyb3ctdXAtOS0xIixpY29uOls1MTIsNTEyLFsic29ydC1udW1lcmljLXVwLWFsdCJdLCJmODg3IiwiTTE1MC42IDQxLjRjLTEyLjUtMTIuNS0zMi44LTEyLjUtNDUuMyAwbC05NiA5NmMtMTIuNSAxMi41LTEyLjUgMzIuOCAwIDQ1LjNzMzIuOCAxMi41IDQ1LjMgMEw5NiAxNDEuMyA5NiA0NDhjMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMmwwLTMwNi43IDQxLjQgNDEuNGMxMi41IDEyLjUgMzIuOCAxMi41IDQ1LjMgMHMxMi41LTMyLjggMC00NS4zbC05Ni05NnpNMzY1LjEgMjA2LjZjLTkuNiAxNC44LTUuNCAzNC42IDkuNCA0NC4zczM0LjYgNS40IDQ0LjMtOS40bDQyLjEtNjQuOWMxMi40LTE5LjIgMTkuMS00MS42IDE5LjEtNjQuNSAwLTQ0LjItMzUuOC04MC04MC04MHMtODAgMzUuOC04MCA4MGMwIDM2LjEgMjMuOSA2Ni43IDU2LjggNzYuNmwtMTEuNyAxOHpNMzc2IDExMmEyNCAyNCAwIDEgMSA0OCAwIDI0IDI0IDAgMSAxIC00OCAwem00Mi43IDE4MmMtOC4zLTYtMTkuMS03LjctMjguOC00LjRsLTQ4IDE2Yy0xNi44IDUuNi0yNS44IDIzLjctMjAuMiA0MC41czIzLjcgMjUuOCA0MC41IDIwLjJsNS45LTIgMCA1MS42LTE2IDBjLTE3LjcgMC0zMiAxNC4zLTMyIDMyczE0LjMgMzIgMzIgMzJsOTYgMGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMmwtMTYgMCAwLTk2YzAtMTAuMy00LjktMTkuOS0xMy4zLTI2eiJdfSxQTHQ9ZjRlLE5MdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJtb3VudGFpbi1jaXR5IixpY29uOls2NDAsNTEyLFtdLCJlNTJlIiwiTTI1Ni4zIDQ4YzAtMjYuNSAyMS41LTQ4IDQ4LTQ4bDk2IDBjMjYuNSAwIDQ4IDIxLjUgNDggNDhsMCA0OCA0OCAwIDAtNzJjMC0xMy4zIDEwLjctMjQgMjQtMjRzMjQgMTAuNyAyNCAyNGwwIDcyIDE2IDBjMjYuNSAwIDQ4IDIxLjUgNDggNDhsMCAzMjBjMCAyNi41LTIxLjUgNDgtNDggNDhsLTc3LjggMGM0LTE1LjQgMi40LTMyLjYtNi43LTQ4LjJMMzU0LjYgMjU2IDM2OC4zIDI1NmM4LjggMCAxNi03LjIgMTYtMTZsMC0zMmMwLTguOC03LjItMTYtMTYtMTZsLTMyIDBjLTYuMSAwLTExLjQgMy40LTE0LjEgOC41bC00Mi42LTczYy02LTEwLjItMTQuMS0xOC0yMy4zLTIzLjNsMC01Ni4yem02NCA2NGwwIDMyYzAgOC44IDcuMiAxNiAxNiAxNmwzMiAwYzguOCAwIDE2LTcuMiAxNi0xNmwwLTMyYzAtOC44LTcuMi0xNi0xNi0xNmwtMzIgMGMtOC44IDAtMTYgNy4yLTE2IDE2em0xNjAgOTZsMCAzMmMwIDguOCA3LjIgMTYgMTYgMTZsMzIgMGM4LjggMCAxNi03LjIgMTYtMTZsMC0zMmMwLTguOC03LjItMTYtMTYtMTZsLTMyIDBjLTguOCAwLTE2IDcuMi0xNiAxNnptMTYgODBjLTguOCAwLTE2IDcuMi0xNiAxNmwwIDMyYzAgOC44IDcuMiAxNiAxNiAxNmwzMiAwYzguOCAwIDE2LTcuMiAxNi0xNmwwLTMyYzAtOC44LTcuMi0xNi0xNi0xNmwtMzIgMHptLTI3Mi02NC43bC02NS4xIDExMS42IDMzLjEgMzMuMSA0OC00OCA0MC40IDAtNTYuNC05Ni43em0tMjcuNi00Ny45YzEyLjMtMjEuMiA0Mi45LTIxLjIgNTUuMyAwTDQyMC4zIDQ2My45YzEyLjQgMjEuMy0yLjkgNDguMS0yNy42IDQ4LjFMNTYgNTEyYy0yNC43IDAtNDAuMS0yNi44LTI3LjYtNDguMUwxOTYuNyAxNzUuNHoiXX0sTkQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiYXJyb3ctZG93bi05LTEiLGljb246WzUxMiw1MTIsWyJzb3J0LW51bWVyaWMtZGVzYyIsInNvcnQtbnVtZXJpYy1kb3duLWFsdCJdLCJmODg2IiwiTTIzMC42IDM5MC42bC04MCA4MGMtMTIuNSAxMi41LTMyLjggMTIuNS00NS4zIDBsLTgwLTgwYy0xMi41LTEyLjUtMTIuNS0zMi44IDAtNDUuM3MzMi44LTEyLjUgNDUuMyAwTDk2IDM3MC43IDk2IDY0YzAtMTcuNyAxNC4zLTMyIDMyLTMyczMyIDE0LjMgMzIgMzJsMCAzMDYuNyAyNS40LTI1LjRjMTIuNS0xMi41IDMyLjgtMTIuNSA0NS4zIDBzMTIuNSAzMi44IDAgNDUuM3ptMTM0LjUtMTg0bDExLjctMThjLTMyLjktOS45LTU2LjgtNDAuNS01Ni44LTc2LjYgMC00NC4yIDM1LjgtODAgODAtODBzODAgMzUuOCA4MCA4MGMwIDIyLjktNi42IDQ1LjMtMTkuMSA2NC41bC00Mi4xIDY0LjljLTkuNiAxNC44LTI5LjQgMTkuMS00NC4zIDkuNHMtMTkuMS0yOS40LTkuNC00NC4zek00MjQgMTEyYTI0IDI0IDAgMSAwIC00OCAwIDI0IDI0IDAgMSAwIDQ4IDB6bS01LjMgMTgyYzguMyA2IDEzLjMgMTUuNyAxMy4zIDI2bDAgOTYgMTYgMGMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMmwtOTYgMGMtMTcuNyAwLTMyLTE0LjMtMzItMzJzMTQuMy0zMiAzMi0zMmwxNiAwIDAtNTEuNi01LjkgMmMtMTYuOCA1LjYtMzQuOS0zLjUtNDAuNS0yMC4yczMuNS0zNC45IDIwLjItNDAuNWw0OC0xNmM5LjgtMy4zIDIwLjUtMS42IDI4LjggNC40eiJdfSxGTHQ9TkQsT0x0PU5ELG00ZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJmYWNlLWdyaW4td2lkZSIsaWNvbjpbNTEyLDUxMixbMTI4NTE1LCJncmluLWFsdCJdLCJmNTgxIiwiTTI1NiA1MTJhMjU2IDI1NiAwIDEgMCAwLTUxMiAyNTYgMjU2IDAgMSAwIDAgNTEyek0zODYuNyAzMDguOWMxMS45LTMuNyAyMy45IDYuMyAxOS42IDE4LjEtMjIuNCA2MS4zLTgxLjMgMTA1LjEtMTUwLjMgMTA1LjFTMTI4LjEgMzg4LjIgMTA1LjcgMzI2LjljLTQuMy0xMS44IDcuNy0yMS44IDE5LjYtMTguMSAzOS4yIDEyLjIgODMuNyAxOS4xIDEzMC43IDE5LjFzOTEuNS02LjkgMTMwLjctMTkuMXpNMjA4IDE5MmMwIDM1LjMtMTQuMyA2NC0zMiA2NHMtMzItMjguNy0zMi02NCAxNC4zLTY0IDMyLTY0IDMyIDI4LjcgMzIgNjR6bTEyOCA2NGMtMTcuNyAwLTMyLTI4LjctMzItNjRzMTQuMy02NCAzMi02NCAzMiAyOC43IDMyIDY0LTE0LjMgNjQtMzIgNjR6Il19LFJMdD1tNGUsQkx0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InBvb3AiLGljb246WzUxMiw1MTIsW10sImY2MTkiLCJNMjU0LjQgNi42YzMuNS00LjMgOS02LjUgMTQuNS01LjcgNDYuOSA2LjMgODMuMSA0Ni41IDgzLjEgOTUuMSAwIDExLjItMS45IDIyLTUuNSAzMmw1LjUgMGMzNS4zIDAgNjQgMjguNyA2NCA2NCAwIDE5LjEtOC40IDM2LjMtMjEuNyA0OGwxMy43IDBjMzkuOCAwIDcyIDMyLjIgNzIgNzIgMCAyMy4yLTExIDQzLjgtMjggNTcgMzQuMSA1LjcgNjAgMzUuMyA2MCA3MSAwIDM5LjgtMzIuMiA3Mi03MiA3Mkw3MiA1MTJjLTM5LjggMC03Mi0zMi4yLTcyLTcyIDAtMzUuNyAyNS45LTY1LjMgNjAtNzEtMTctMTMuMi0yOC0zMy44LTI4LTU3IDAtMzkuOCAzMi4yLTcyIDcyLTcybDEzLjcgMGMtMTMuMy0xMS43LTIxLjctMjguOS0yMS43LTQ4IDAtMzUuMyAyOC43LTY0IDY0LTY0bDE2LjIgMGM0NC4xLS4xIDc5LjgtMzUuOSA3OS44LTgwIDAtOS4yLTEuNS0xNy45LTQuMy0yNi4xLTEuOC01LjItLjgtMTEuMSAyLjgtMTUuNHoiXX0sSEx0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImRoYXJtYWNoYWtyYSIsaWNvbjpbNTEyLDUxMixbOTc4NF0sImY2NTUiLCJNMzM3LjggMjA1LjdsNDguNi00Mi41YzEzLjggMTkuMyAyMy40IDQxLjkgMjcuNCA2Ni4ybC02NC40IDQuM2MtMi40LTEwLjEtNi40LTE5LjUtMTEuNi0yOHptMTQwLjEgMTkuNWMtNS4zLTM4LjgtMjAuNi03NC41LTQzLjItMTA0LjNsLjgtLjdDNDQ5IDEwOC40IDQ0OS43IDg3LjYgNDM3IDc1cy0zMy40LTEyLTQ1LjIgMS41bC0uNyAuOGMtMjkuOC0yMi42LTY1LjUtMzcuOS0xMDQuMy00My4ybC4xLTEuMWMxLjItMTcuOS0xMy0zMy0zMC45LTMzcy0zMi4xIDE1LjItMzAuOSAzM2wuMSAxLjFjLTM4LjggNS4zLTc0LjUgMjAuNi0xMDQuMyA0My4ybC0uNy0uOEMxMDguNCA2MyA4Ny42IDYyLjMgNzUgNzVzLTEyIDMzLjQgMS41IDQ1LjJsLjggLjdjLTIyLjYgMjkuOC0zNy45IDY1LjUtNDMuMiAxMDQuM2wtMS4xLS4xYy0xNy45LTEuMi0zMyAxMy0zMyAzMC45czE1LjIgMzIuMSAzMyAzMC45bDEuMS0uMWM1LjMgMzguOCAyMC42IDc0LjUgNDMuMiAxMDQuM2wtLjggLjdDNjMgNDAzLjYgNjIuMyA0MjQuNCA3NSA0MzdzMzMuNCAxMiA0NS4yLTEuNWwuNy0uOGMyOS44IDIyLjYgNjUuNSAzNy45IDEwNC4zIDQzLjJsLS4xIDEuMWMtMS4yIDE3LjkgMTMgMzMgMzAuOSAzM3MzMi4xLTE1LjIgMzAuOS0zM2wtLjEtMS4xYzM4LjgtNS4zIDc0LjUtMjAuNiAxMDQuMy00My4ybC43IC44YzExLjggMTMuNSAzMi41IDE0LjIgNDUuMiAxLjVzMTItMzMuNC0xLjUtNDUuMmwtLjgtLjdjMjIuNi0yOS44IDM3LjktNjUuNSA0My4yLTEwNC4zbDEuMSAuMWMxNy45IDEuMiAzMy0xMyAzMy0zMC45cy0xNS4yLTMyLjEtMzMtMzAuOWwtMS4xIC4xek0xNjMuMiAxMjUuNmMxOS4zLTEzLjggNDEuOS0yMy40IDY2LjItMjcuNWw0LjMgNjQuNGMtMTAgMi40LTE5LjUgNi40LTI4IDExLjZsLTQyLjUtNDguNnptLTY1IDEwMy44YzQuMS0yNC40IDEzLjctNDYuOSAyNy41LTY2LjJsNDguNiA0Mi41Yy01LjMgOC41LTkuMiAxOC0xMS42IDI4bC02NC40LTQuM3ptMjcuNSAxMTkuNGMtMTMuOC0xOS4zLTIzLjQtNDEuOS0yNy41LTY2LjJsNjQuNC00LjNjMi40IDEwLjEgNi40IDE5LjUgMTEuNiAyOGwtNDguNiA0Mi41em0xMDMuOCA2NWMtMjQuNC00LjEtNDYuOS0xMy43LTY2LjItMjcuNGw0Mi41LTQ4LjZjOC41IDUuMyAxOCA5LjIgMjggMTEuNmwtNC4zIDY0LjR6bTExOS40LTI3LjRjLTE5LjMgMTMuOC00MS45IDIzLjQtNjYuMiAyNy40bC00LjMtNjQuNGMxMC0yLjQgMTkuNS02LjQgMjgtMTEuNmw0Mi41IDQ4LjZ6bTY1LTEwMy44Yy00LjEgMjQuNC0xMy43IDQ2LjktMjcuNCA2Ni4ybC00OC42LTQyLjVjNS4zLTguNiA5LjItMTggMTEuNi0yOGw2NC40IDQuM3ptLTY1LTE1Ni45bC00Mi41IDQ4LjZjLTguNi01LjMtMTgtOS4yLTI4LTExLjZsNC4zLTY0LjRjMjQuNCA0LjEgNDYuOSAxMy43IDY2LjIgMjcuNXpNMjU2IDIyNGEzMiAzMiAwIDEgMSAwIDY0IDMyIDMyIDAgMSAxIDAtNjR6Il19LGc0ZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJiYXR0ZXJ5LXF1YXJ0ZXIiLGljb246WzY0MCw1MTIsWyJiYXR0ZXJ5LTIiXSwiZjI0MyIsIk01MjggMTI4YzguOCAwIDE2IDcuMiAxNiAxNmwwIDIyNGMwIDguOC03LjIgMTYtMTYgMTZsLTQxNiAwYy04LjggMC0xNi03LjItMTYtMTZsMC0yMjRjMC04LjggNy4yLTE2IDE2LTE2bDQxNiAwek0xMTIgNjRjLTQ0LjIgMC04MCAzNS44LTgwIDgwbDAgMjI0YzAgNDQuMiAzNS44IDgwIDgwIDgwbDQxNiAwYzQ0LjIgMCA4MC0zNS44IDgwLTgwbDAtNDhjMTcuNyAwIDMyLTE0LjMgMzItMzJsMC02NGMwLTE3LjctMTQuMy0zMi0zMi0zMmwwLTQ4YzAtNDQuMi0zNS44LTgwLTgwLTgwTDExMiA2NHptNTYgMTEyYy0xMy4zIDAtMjQgMTAuNy0yNCAyNGwwIDExMmMwIDEzLjMgMTAuNyAyNCAyNCAyNGw2NCAwYzEzLjMgMCAyNC0xMC43IDI0LTI0bDAtMTEyYzAtMTMuMy0xMC43LTI0LTI0LTI0bC02NCAweiJdfSxxTHQ9ZzRlLGpMdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJhbmtoIixpY29uOlszMjAsNTEyLFs5NzY1XSwiZjY0NCIsIk05NiAxMjhjMC0zNS4zIDI4LjctNjQgNjQtNjRzNjQgMjguNyA2NCA2NGMwIDQxLjYtMjAuNyA3Ni42LTQ2LjYgMTA0LjEtNS45IDYuMi0xMS44IDExLjgtMTcuNCAxNi43LTUuNi00LjktMTEuNS0xMC41LTE3LjQtMTYuNy0yNS45LTI3LjUtNDYuNi02Mi42LTQ2LjYtMTA0LjF6TTE2MCAwQzg5LjMgMCAzMiA1Ny4zIDMyIDEyOCAzMiAxODAuNCA1My41IDIyMy41IDc4LjggMjU2TDMyIDI1NmMtMTcuNyAwLTMyIDE0LjMtMzIgMzJzMTQuMyAzMiAzMiAzMmw5NiAwIDAgMTYwYzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJsMC0xNjAgOTYgMGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMmwtNDYuOCAwQzI2Ni41IDIyMy41IDI4OCAxODAuNCAyODggMTI4IDI4OCA1Ny4zIDIzMC43IDAgMTYwIDB6Il19LFZMdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJkaWFtb25kIixpY29uOls1MTIsNTEyLFs5ODMwXSwiZjIxOSIsIk0xNyAyMTVMMjE1IDE3QzIyNS45IDYuMSAyNDAuNiAwIDI1NiAwczMwLjEgNi4xIDQxIDE3TDQ5NSAyMTVjMTAuOSAxMC45IDE3IDI1LjYgMTcgNDFzLTYuMSAzMC4xLTE3IDQxTDI5NyA0OTVjLTEwLjkgMTAuOS0yNS42IDE3LTQxIDE3cy0zMC4xLTYuMS00MS0xN0wxNyAyOTdDNi4xIDI4Ni4xIDAgMjcxLjQgMCAyNTZzNi4xLTMwLjEgMTctNDF6Il19LFVMdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJzdWJzY3JpcHQiLGljb246WzU3Niw1MTIsW10sImYxMmMiLCJNOTYgNjRDNzguMyA2NCA2NCA3OC4zIDY0IDk2czE0LjMgMzIgMzIgMzJsMTUuMyAwIDg5LjYgMTI4LTg5LjYgMTI4LTE1LjMgMGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJzMTQuMyAzMiAzMiAzMmwzMiAwYzEwLjQgMCAyMC4yLTUuMSAyNi4yLTEzLjZMMjQwIDMxMS44IDMyNS44IDQzNC40YzYgOC42IDE1LjggMTMuNiAyNi4yIDEzLjZsMzIgMGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMmwtMTUuMyAwLTg5LjYtMTI4IDg5LjYtMTI4IDE1LjMgMGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMmwtMzIgMGMtMTAuNCAwLTIwLjIgNS4xLTI2LjIgMTMuNkwyNDAgMjAwLjIgMTU0LjIgNzcuNkMxNDguMiA2OS4xIDEzOC40IDY0IDEyOCA2NEw5NiA2NHpNNTQ0IDMyMGMwLTExLjEtNS43LTIxLjQtMTUuMi0yNy4ycy0yMS4yLTYuNC0zMS4xLTEuNGwtMzIgMTZjLTE1LjggNy45LTIyLjIgMjcuMS0xNC4zIDQyLjkgNS42IDExLjIgMTYuOSAxNy43IDI4LjYgMTcuN2wwIDgwYy0xNy43IDAtMzIgMTQuMy0zMiAzMnMxNC4zIDMyIDMyIDMybDY0IDBjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJsMC0xMjh6Il19LGI0ZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJydXBlZS1zaWduIixpY29uOls0NDgsNTEyLFs4MzYwLCJydXBlZSJdLCJmMTU2IiwiTTAgNjRDMCA0Ni4zIDE0LjMgMzIgMzIgMzJsODAgMGM3OS41IDAgMTQ0IDY0LjUgMTQ0IDE0NCAwIDU0LjMtMzAgMTAxLjUtNzQuNCAxMjYuMWw0MSAxMzYuN2M1LjEgMTYuOS00LjUgMzQuOC0yMS41IDM5LjhzLTM0LjgtNC41LTM5LjgtMjEuNUwxMjAuMSAzMTkuOGMtMi43IC4xLTUuNCAuMi04LjEgLjJsLTQ4IDAgMCAxMjhjMCAxNy43LTE0LjMgMzItMzIgMzJTMCA0NjUuNyAwIDQ0OEwwIDY0ek02NCAyNTZsNDggMGM0NC4yIDAgODAtMzUuOCA4MC04MHMtMzUuOC04MC04MC04MGwtNDggMCAwIDE2MHptMjg1LjEtMzJsMzQuOSAwYzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMybC0zNC45IDBjLTcuMiAwLTEzLjEgNS45LTEzLjEgMTMuMSAwIDUuNyAzLjcgMTAuNyA5LjEgMTIuNWw0OS40IDE1LjljMzEuOSAxMC4zIDUzLjUgMzkuOSA1My41IDczLjQgMCA0Mi42LTM0LjUgNzcuMS03Ny4xIDc3LjFMMzIwIDQ4MGMtMTcuNyAwLTMyLTE0LjMtMzItMzJzMTQuMy0zMiAzMi0zMmw1MC45IDBjNy4yIDAgMTMuMS01LjkgMTMuMS0xMy4xIDAtNS43LTMuNy0xMC43LTkuMS0xMi41bC00OS40LTE1LjljLTMxLjktMTAuMy01My41LTM5LjktNTMuNS03My40IDAtNDIuNiAzNC41LTc3LjEgNzcuMS03Ny4xeiJdfSxXTHQ9YjRlLEdMdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJwZXJzb24tcmlmbGUiLGljb246WzUxMiw1MTIsW10sImU1NGUiLCJNNDE2IDBMMzg0IDBjLTguOCAwLTE2IDcuMi0xNiAxNnM3LjIgMTYgMTYgMTZsMCAxMDAuM2MtOS42IDUuNS0xNiAxNS45LTE2IDI3LjdsMCAzMmMtMTcuNyAwLTMyIDE0LjMtMzIgMzJsMCAxNDRjMCAxNy43IDE0LjMgMzIgMzIgMzJsMTYgMCAwIDk2YzAgOC44IDcuMiAxNiAxNiAxNmw1OS41IDBjMTAuNCAwIDE4LTkuOCAxNS41LTE5LjlsLTIzLTkyLjEgNDQgMGM4LjggMCAxNi03LjIgMTYtMTZsMC0xNmMwLTguOC03LjItMTYtMTYtMTZsLTQ4IDAgMC0yNi43IDUzLjEtMTcuN2M2LjUtMi4yIDEwLjktOC4zIDEwLjktMTUuMmwwLTg0LjVjMC04LjgtNy4yLTE2LTE2LTE2bC0xNiAwYy04LjggMC0xNiA3LjItMTYgMTZsMCA1Ni0xNiA1LjMgMC0xMDkuM2MwLTExLjgtNi40LTIyLjItMTYtMjcuN0w0MzIgMTZjMC04LjgtNy4yLTE2LTE2LTE2ek0yMjQgMjA4QzExOCAyMDggMzIgMjk0IDMyIDQwMGwwIDQ4YzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJsMC00OGMwLTMyLjUgMTIuMS02Mi4xIDMyLTg0LjdsMCAxOTYuNyAxNjAgMCAwLTI5My4xYy0yMC03LjEtNDEuNi0xMC45LTY0LTEwLjl6TTI4MCA4OGE3MiA3MiAwIDEgMCAtMTQ0IDAgNzIgNzIgMCAxIDAgMTQ0IDB6Il19LFlMdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJkIixpY29uOlszODQsNTEyLFsxMDBdLCI0NCIsIk0wIDY0QzAgNDYuMyAxNC4zIDMyIDMyIDMybDEyOCAwYzEyMy43IDAgMjI0IDEwMC4zIDIyNCAyMjRTMjgzLjcgNDgwIDE2MCA0ODBMMzIgNDgwYy0xNy43IDAtMzItMTQuMy0zMi0zMkwwIDY0ek02NCA5NmwwIDMyMCA5NiAwYzg4LjQgMCAxNjAtNzEuNiAxNjAtMTYwUzI0OC40IDk2IDE2MCA5Nkw2NCA5NnoiXX0sWkx0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InNxdWFyZS1uZmkiLGljb246WzQ0OCw1MTIsW10sImU1NzYiLCJNNjQgMzJDMjguNyAzMiAwIDYwLjcgMCA5NkwwIDQxNmMwIDM1LjMgMjguNyA2NCA2NCA2NGwzMjAgMGMzNS4zIDAgNjQtMjguNyA2NC02NGwwLTMyMGMwLTM1LjMtMjguNy02NC02NC02NEw2NCAzMnpNOTMgMTcyLjNsMzUgNjMgMC01MS40YzAtMTMuMyAxMC43LTI0IDI0LTI0czI0IDEwLjcgMjQgMjRsMCAxNDRjMCAxMC45LTcuNCAyMC41LTE4IDIzLjJzLTIxLjctMi0yNy0xMS42bC0zNS02MyAwIDUxLjRjMCAxMy4zLTEwLjcgMjQtMjQgMjRzLTI0LTEwLjctMjQtMjRsMC0xNDRjMC0xMC45IDcuNC0yMC41IDE4LTIzLjJzMjEuNyAyIDI3IDExLjZ6TTIwOCAxODRjMC0xMy4zIDEwLjctMjQgMjQtMjRsODAgMGMxMy4zIDAgMjQgMTAuNyAyNCAyNHMtMTAuNyAyNC0yNCAyNGwtNTYgMCAwIDMyIDQwIDBjMTMuMyAwIDI0IDEwLjcgMjQgMjRzLTEwLjcgMjQtMjQgMjRsLTQwIDAgMCA0MGMwIDEzLjMtMTAuNyAyNC0yNCAyNHMtMjQtMTAuNy0yNC0yNGwwLTE0NHptMTkyIDBsMCAxNDRjMCAxMy4zLTEwLjcgMjQtMjQgMjRzLTI0LTEwLjctMjQtMjRsMC0xNDRjMC0xMy4zIDEwLjctMjQgMjQtMjRzMjQgMTAuNyAyNCAyNHoiXX0sWEx0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InRlZXRoIixpY29uOls1MTIsNTEyLFtdLCJmNjJlIiwiTTAgOTZDMCA2MC43IDI4LjcgMzIgNjQgMzJsMzg0IDBjMzUuMyAwIDY0IDI4LjcgNjQgNjRsMCAzMjBjMCAzNS4zLTI4LjcgNjQtNjQgNjRMNjQgNDgwYy0zNS4zIDAtNjQtMjguNy02NC02NEwwIDk2ek0xNDQgMjA4bDAgMjRjMCAxMy4zIDEwLjcgMjQgMjQgMjRsNDggMGMxMy4zIDAgMjQtMTAuNyAyNC0yNGwwLTI0YzAtMjYuNS0yMS41LTQ4LTQ4LTQ4cy00OCAyMS41LTQ4IDQ4em0xMjggMGwwIDI0YzAgMTMuMyAxMC43IDI0IDI0IDI0bDQ4IDBjMTMuMyAwIDI0LTEwLjcgMjQtMjRsMC0yNGMwLTI2LjUtMjEuNS00OC00OC00OHMtNDggMjEuNS00OCA0OHpNODAgMTc2Yy0xNy43IDAtMzIgMTQuMy0zMiAzMmwwIDI0YzAgMTMuMyAxMC43IDI0IDI0IDI0bDE2IDBjMTMuMyAwIDI0LTEwLjcgMjQtMjRsMC0yNGMwLTE3LjctMTQuMy0zMi0zMi0zMnptMzIwIDMybDAgMjRjMCAxMy4zIDEwLjcgMjQgMjQgMjRsMTYgMGMxMy4zIDAgMjQtMTAuNyAyNC0yNGwwLTI0YzAtMTcuNy0xNC4zLTMyLTMyLTMycy0zMiAxNC4zLTMyIDMyek00OCAzMzZjMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMmwwLTE2YzAtOC44LTcuMi0xNi0xNi0xNmwtMzIgMGMtOC44IDAtMTYgNy4yLTE2IDE2bDAgMTZ6bTE0NCA0OGMyNi41IDAgNDgtMjEuNSA0OC00OGwwLTE2YzAtOC44LTcuMi0xNi0xNi0xNmwtNjQgMGMtOC44IDAtMTYgNy4yLTE2IDE2bDAgMTZjMCAyNi41IDIxLjUgNDggNDggNDh6bTEyOCAwYzI2LjUgMCA0OC0yMS41IDQ4LTQ4bDAtMTZjMC04LjgtNy4yLTE2LTE2LTE2bC02NCAwYy04LjggMC0xNiA3LjItMTYgMTZsMCAxNmMwIDI2LjUgMjEuNSA0OCA0OCA0OHptMTEyLTE2YzE3LjcgMCAzMi0xNC4zIDMyLTMybDAtMTZjMC04LjgtNy4yLTE2LTE2LTE2bC0zMiAwYy04LjggMC0xNiA3LjItMTYgMTZsMCAxNmMwIDE3LjcgMTQuMyAzMiAzMiAzMnoiXX0sdjRlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6Im1hZ25pZnlpbmctZ2xhc3MtZG9sbGFyIixpY29uOls1MTIsNTEyLFsic2VhcmNoLWRvbGxhciJdLCJmNjg4IiwiTTQxNiAyMDhjMCA0NS45LTE0LjkgODguMy00MCAxMjIuN0w1MDIuNiA0NTcuNGMxMi41IDEyLjUgMTIuNSAzMi44IDAgNDUuM3MtMzIuOCAxMi41LTQ1LjMgMEwzMzAuNyAzNzZDMjk2LjMgNDAxLjEgMjUzLjkgNDE2IDIwOCA0MTYgOTMuMSA0MTYgMCAzMjIuOSAwIDIwOFM5My4xIDAgMjA4IDAgNDE2IDkzLjEgNDE2IDIwOHpNMjEyIDk2Yy0xMSAwLTIwIDktMjAgMjBsMCA0Yy0yOC44IC4zLTUyIDIzLjctNTIgNTIuNSAwIDI1LjcgMTguNSA0Ny42IDQzLjkgNTEuOGw0MS43IDdjNiAxIDEwLjQgNi4yIDEwLjQgMTIuMyAwIDYuOS01LjYgMTIuNS0xMi41IDEyLjVMMTY4IDI1NmMtMTEgMC0yMCA5LTIwIDIwczkgMjAgMjAgMjBsMjQgMCAwIDRjMCAxMSA5IDIwIDIwIDIwczIwLTkgMjAtMjBsMC00LjdjMjUtNC4xIDQ0LTI1LjcgNDQtNTEuOCAwLTI1LjctMTguNS00Ny42LTQzLjktNTEuOGwtNDEuNy03Yy02LTEtMTAuNC02LjItMTAuNC0xMi4zIDAtNi45IDUuNi0xMi41IDEyLjUtMTIuNWw0Ny41IDBjMTEgMCAyMC05IDIwLTIwcy05LTIwLTIwLTIwbC04IDAgMC00YzAtMTEtOS0yMC0yMC0yMHoiXX0sUUx0PXY0ZSxKTHQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZHVtcHN0ZXItZmlyZSIsaWNvbjpbNjQwLDUxMixbXSwiZjc5NCIsIk0xNjQuMyA2NEwxMzguNyAxOTIgNTYgMTkyYy0xMy4zIDAtMjQtMTAuNy0yNC0yNGwwLTQuMWMwLTIuNiAuNC01LjEgMS4yLTcuNkw1OC41IDgwLjRDNjEuOCA3MC42IDcxIDY0IDgxLjMgNjRsODMgMHptMjMuNCAxMjhsMjUuNi0xMjggODIuNyAwIDAgMTI4LTEwOC4zIDB6TTM0NCA2NGw4Mi43IDAgMTYgODBjLTE0LjcgLjItMjkuMyA1LjUtNDAuOSAxNS45LTExLjUgMTAuMy0yMi41IDIxLTMyLjggMzIuMWwtMjQuOSAwIDAtMTI4ek05NiAyNDBsMjMzLjIgMGMtNi40IDguOC0xMi4zIDE3LjYtMTcuNyAyNi4zLTIxLjQgMzQuNy0zOS41IDc2LjEtMzkuNSAxMTUuOCAwIDE3LjEgMi4xIDMzLjggNiA0OS45bC0xMjAuNCAwIDEuOSAxMC4zYzMuMiAxNy40LTguNCAzNC0yNS44IDM3LjJzLTM0LTguNC0zNy4yLTI1LjhDNzEgMzEzLjMgNTggMjQyLjEgNTcuNyAyNDBMOTYgMjQwem01MTItNzJjMCAxMS03LjQgMjAuMy0xNy41IDIzLjEtLjktLjgtMS43LTEuNi0yLjYtMi40LTIxLjgtMjAtNTQuMy0yMS44LTc4LTUuNS00LjItNC4zLTguNS04LjUtMTIuOS0xMi42bC0yMS4zLTEwNi42IDgzIDBjMTAuMyAwIDE5LjUgNi42IDIyLjggMTYuNGwyNS4zIDc1LjljLjggMi40IDEuMiA1IDEuMiA3LjZsMCA0LjF6TTUwNS43IDI0MC4zTDUxOCAyMjYuNWM1LjQtNi4xIDEzLjMtOC44IDIwLjktOC45IDcuMiAwIDE0LjMgMi42IDE5LjkgNy44IDE5LjcgMTguMyAzOS44IDQzLjIgNTUgNzAuNiAxNS4xIDI3LjIgMjYuMiA1OC4xIDI2LjIgODguMSAwIDg4LjctNzEuMyAxNTkuOC0xNjAgMTU5LjgtODkuNiAwLTE2MC03MS4zLTE2MC0xNTkuOCAwLTM3LjMgMTYtNzMuNCAzNi44LTEwNC41IDIwLjktMzEuMyA0Ny41LTU5IDcwLjktODAuMiA1LjctNS4yIDEzLjEtNy43IDIwLjMtNy41czEzLjQgMy4yIDE4LjggNy41YzE0LjQgMTEuNCAzOC45IDQwLjcgMzguOSA0MC43ek01NDQgNDMyLjJjMC0zNi41LTM3LTczLTU0LjgtODguNC01LjQtNC43LTEzLjEtNC43LTE4LjUgMC0xNy43IDE1LjQtNTQuOCA1MS45LTU0LjggODguNCAwIDM1LjMgMjguNyA2NCA2NCA2NHM2NC0yOC43IDY0LTY0eiJdfSxLTHQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToidXBsb2FkIixpY29uOls0NDgsNTEyLFtdLCJmMDkzIiwiTTI1NiAxMDkuM0wyNTYgMzIwYzAgMTcuNy0xNC4zIDMyLTMyIDMycy0zMi0xNC4zLTMyLTMybDAtMjEwLjctNDEuNCA0MS40Yy0xMi41IDEyLjUtMzIuOCAxMi41LTQ1LjMgMHMtMTIuNS0zMi44IDAtNDUuM2w5Ni05NmMxMi41LTEyLjUgMzIuOC0xMi41IDQ1LjMgMGw5NiA5NmMxMi41IDEyLjUgMTIuNSAzMi44IDAgNDUuM3MtMzIuOCAxMi41LTQ1LjMgMEwyNTYgMTA5LjN6TTIyNCA0MDBjNDQuMiAwIDgwLTM1LjggODAtODBsODAgMGMzNS4zIDAgNjQgMjguNyA2NCA2NGwwIDMyYzAgMzUuMy0yOC43IDY0LTY0IDY0TDY0IDQ4MGMtMzUuMyAwLTY0LTI4LjctNjQtNjRsMC0zMmMwLTM1LjMgMjguNy02NCA2NC02NGw4MCAwYzAgNDQuMiAzNS44IDgwIDgwIDgwem0xNDQgMjRhMjQgMjQgMCAxIDAgMC00OCAyNCAyNCAwIDEgMCAwIDQ4eiJdfSxGRD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJ1c2VyLXNsYXNoIixpY29uOls1NzYsNTEyLFs2MjcxNCwidXNlci1hbHQtc2xhc2giLCJ1c2VyLWxhcmdlLXNsYXNoIl0sImY1MDYiLCJNNDEtMjQuOWMtOS40LTkuNC0yNC42LTkuNC0zMy45IDBTLTIuMy0uMyA3IDkuMWw1MjggNTI4YzkuNCA5LjQgMjQuNiA5LjQgMzMuOSAwczkuNC0yNC42IDAtMzMuOUwzMTEuNSAyNDUuN2M1NS0xMC45IDk2LjUtNTkuNSA5Ni41LTExNy43IDAtNjYuMy01My43LTEyMC0xMjAtMTIwLTU4LjIgMC0xMDYuOCA0MS41LTExNy43IDk2LjVMNDEtMjQuOXpNMjM1LjYgMzA1LjRDMTQ3LjkgMzE2LjYgODAgMzkxLjUgODAgNDgyLjMgODAgNDk4LjcgOTMuMyA1MTIgMTA5LjcgNTEybDMzMi41IDAtMjA2LjYtMjA2LjZ6Il19LGVBdD1GRCx0QXQ9RkQsckF0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImFycm93LWxlZnQiLGljb246WzUxMiw1MTIsWzg1OTJdLCJmMDYwIiwiTTkuNCAyMzMuNGMtMTIuNSAxMi41LTEyLjUgMzIuOCAwIDQ1LjNsMTYwIDE2MGMxMi41IDEyLjUgMzIuOCAxMi41IDQ1LjMgMHMxMi41LTMyLjggMC00NS4zTDEwOS4zIDI4OCA0ODAgMjg4YzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMybC0zNzAuNyAwIDEwNS40LTEwNS40YzEyLjUtMTIuNSAxMi41LTMyLjggMC00NS4zcy0zMi44LTEyLjUtNDUuMyAwbC0xNjAgMTYweiJdfSxpQXQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToidmlhbC12aXJ1cyIsaWNvbjpbNTc2LDUxMixbXSwiZTU5NyIsIk02NCAzMkM2NCAxNC4zIDc4LjMgMCA5NiAwTDMyMCAwYzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMybDAgMTUxLjdjLTE4LjUgMC0zNyA3LTUxLjEgMjEuMS0yMS42IDIxLjYtMjYuNiA1My42LTE1IDc5LjktMjYuOSAxMC40LTQ1LjkgMzYuNi00NS45IDY3LjFzMTkgNTYuNyA0NS45IDY3LjFjLTcuMyAxNi41LTggMzUuMi0yLjMgNTIuMi0xMy40IDUuNy0yOC4yIDguOC00My42IDguOC02MS45IDAtMTEyLTUwLjEtMTEyLTExMkw5NiA2NEM3OC4zIDY0IDY0IDQ5LjcgNjQgMzJ6bTk2IDMybDAgMTI4IDk2IDAgMC0xMjgtOTYgMHpNMjgwIDQwOGMtMTMuMyAwLTI0LTEwLjctMjQtMjRzMTAuNy0yNCAyNC0yNGMyOC44IDAgNDMuMi0zNC44IDIyLjktNTUuMi05LjQtOS40LTkuNC0yNC42IDAtMzMuOXMyNC42LTkuNCAzMy45IDBjMjAuNCAyMC40IDU1LjIgNS45IDU1LjItMjIuOSAwLTEzLjMgMTAuNy0yNCAyNC0yNHMyNCAxMC43IDI0IDI0YzAgMjguOCAzNC44IDQzLjIgNTUuMiAyMi45IDkuNC05LjQgMjQuNi05LjQgMzMuOSAwczkuNCAyNC42IDAgMzMuOWMtMjAuNCAyMC40LTUuOSA1NS4yIDIyLjkgNTUuMiAxMy4zIDAgMjQgMTAuNyAyNCAyNHMtMTAuNyAyNC0yNCAyNGMtMjguOCAwLTQzLjIgMzQuOC0yMi45IDU1LjIgOS40IDkuNCA5LjQgMjQuNiAwIDMzLjlzLTI0LjYgOS40LTMzLjkgMGMtMjAuNC0yMC40LTU1LjItNS45LTU1LjIgMjIuOSAwIDEzLjMtMTAuNyAyNC0yNCAyNHMtMjQtMTAuNy0yNC0yNGMwLTI4LjgtMzQuOC00My4yLTU1LjItMjIuOS05LjQgOS40LTI0LjYgOS40LTMzLjkgMHMtOS40LTI0LjYgMC0zMy45YzIwLjQtMjAuNCA1LjktNTUuMi0yMi45LTU1LjJ6bTEwNC0zMmEyNCAyNCAwIDEgMCAwLTQ4IDI0IDI0IDAgMSAwIDAgNDh6bTg4IDQwYTI0IDI0IDAgMSAwIC00OCAwIDI0IDI0IDAgMSAwIDQ4IDB6Il19LGFBdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJjaGVjay1kb3VibGUiLGljb246WzM4NCw1MTIsW10sImY1NjAiLCJNMjQ5LjkgNjYuOGMxMC40LTE0LjMgNy4yLTM0LjMtNy4xLTQ0LjdzLTM0LjMtNy4yLTQ0LjcgNy4xbC0xMDYgMTQ1LjctMzcuNS0zNy41Yy0xMi41LTEyLjUtMzIuOC0xMi41LTQ1LjMgMHMtMTIuNSAzMi44IDAgNDUuM2w2NCA2NGM2LjYgNi42IDE1LjggMTAgMjUuMSA5LjNzMTcuOS01LjUgMjMuNC0xMy4xbDEyOC0xNzZ6bTEyOCAxMzZjMTAuNC0xNC4zIDcuMi0zNC4zLTcuMS00NC43cy0zNC4zLTcuMi00NC43IDcuMWwtMTcwIDIzMy43LTY5LjUtNjkuNWMtMTIuNS0xMi41LTMyLjgtMTIuNS00NS4zIDBzLTEyLjUgMzIuOCAwIDQ1LjNsOTYgOTZjNi42IDYuNiAxNS44IDEwIDI1LjEgOS4zczE3LjktNS41IDIzLjQtMTMuMWwxOTItMjY0eiJdfSxuQXQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToicGF3IixpY29uOls1MTIsNTEyLFtdLCJmMWIwIiwiTTIzNC41IDkyLjljMTQuMyA0Mi45LS4zIDg2LjItMzIuNiA5Ni44cy03MC4xLTE1LjYtODQuNC01OC41IC4zLTg2LjIgMzIuNi05Ni44IDcwLjEgMTUuNiA4NC40IDU4LjV6TTEwMC40IDE5OC42YzE4LjkgMzIuNCAxNC4zIDcwLjEtMTAuMiA4NC4xcy01OS43LS45LTc4LjUtMzMuMy0xNC4zLTcwLjEgMTAuMi04NC4xIDU5LjcgLjkgNzguNSAzMy4zek02OS4yIDQwMS4yQzEyMS42IDI1OS45IDIxNC43IDIyNCAyNTYgMjI0czEzNC40IDM1LjkgMTg2LjggMTc3LjJjMy42IDkuNyA1LjIgMjAuMSA1LjIgMzAuNWwwIDEuNmMwIDI1LjgtMjAuOSA0Ni43LTQ2LjcgNDYuNy0xMS41IDAtMjIuOS0xLjQtMzQtNC4ybC04OC0yMmMtMTUuMy0zLjgtMzEuMy0zLjgtNDYuNiAwbC04OCAyMmMtMTEuMSAyLjgtMjIuNSA0LjItMzQgNC4yLTI1LjggMC00Ni43LTIwLjktNDYuNy00Ni43bDAtMS42YzAtMTAuNCAxLjYtMjAuOCA1LjItMzAuNXpNNDIxLjggMjgyLjdjLTI0LjUtMTQtMjkuMS01MS43LTEwLjItODQuMXM1NC00Ny4zIDc4LjUtMzMuMyAyOS4xIDUxLjcgMTAuMiA4NC4xLTU0IDQ3LjMtNzguNSAzMy4zek0zMTAuMSAxODkuN2MtMzIuMy0xMC42LTQ2LjktNTMuOS0zMi42LTk2LjhzNTIuMS02OS4xIDg0LjQtNTguNSA0Ni45IDUzLjkgMzIuNiA5Ni44LTUyLjEgNjkuMS04NC40IDU4LjV6Il19LE9EPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImhlbG1ldC1zYWZldHkiLGljb246WzU3Niw1MTIsWyJoYXJkLWhhdCIsImhhdC1oYXJkIl0sImY4MDciLCJNMzUyIDI2NGwwLTIwMGMwLTE3LjctMTQuMy0zMi0zMi0zMmwtNjQgMGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJsMCAyMDBjMCAxMy4zLTEwLjcgMjQtMjQgMjRzLTI0LTEwLjctMjQtMjRsMC0xODUuOUM5MCAxMDkuOCAzMiAxOTEuOCAzMiAyODhsMCA2NCA1MTIgMCAwLTY0Yy0xLTk1LjItNTguNC0xNzcuNy0xNDQtMjA5LjhMNDAwIDI2NGMwIDEzLjMtMTAuNyAyNC0yNCAyNHMtMjQtMTAuNy0yNC0yNHpNNDAgNDAwYy0yMi4xIDAtNDAgMTcuOS00MCA0MHMxNy45IDQwIDQwIDQwbDQ5NiAwYzIyLjEgMCA0MC0xNy45IDQwLTQwcy0xNy45LTQwLTQwLTQwTDQwIDQwMHoiXX0sb0F0PU9ELHNBdD1PRCxsQXQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZSIsaWNvbjpbMzIwLDUxMixbMTAxXSwiNDUiLCJNMzIgMzJDMTQuMyAzMiAwIDQ2LjMgMCA2NEwwIDQ0OGMwIDE3LjcgMTQuMyAzMiAzMiAzMmwyNTYgMGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMmwtMjI0IDAgMC0xMjggMTYwIDBjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJsLTE2MCAwIDAtMTI4IDIyNCAwYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMyTDMyIDMyeiJdfSx4NGU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZmFjZS1sYXVnaC1zcXVpbnQiLGljb246WzUxMiw1MTIsWyJsYXVnaC1zcXVpbnQiXSwiZjU5YiIsIk0yNTYgNTEyYTI1NiAyNTYgMCAxIDAgMC01MTIgMjU2IDI1NiAwIDEgMCAwIDUxMnpNMTA3LjcgMzMyLjFDMTAyIDMxOCAxMTMuNCAzMDQgMTI4LjYgMzA0bDI1NC45IDBjMTUuMiAwIDI2LjYgMTQgMjAuOSAyOC4xLTIzLjggNTguNi04MS4yIDk5LjktMTQ4LjMgOTkuOXMtMTI0LjYtNDEuMy0xNDguMy05OS45em0xNS0xODguOGM0LjUtNi44IDEzLjMtOS4yIDIwLjYtNS41bDc5LjYgNDBjNS40IDIuNyA4LjggOC4yIDguOCAxNC4zcy0zLjQgMTEuNi04LjggMTQuM2wtNzkuNiA0MGMtNy4zIDMuNi0xNi4xIDEuMy0yMC42LTUuNXMtMy4xLTE1LjkgMy4xLTIxLjFMMTU5IDE5MiAxMjUuOCAxNjQuM2MtNi4yLTUuMi03LjYtMTQuMy0zLjEtMjEuMXptMjYzLjYgMjEuMUwzNTMgMTkyIDM4Ni4yIDIxOS43YzYuMiA1LjIgNy42IDE0LjMgMy4xIDIxLjFzLTEzLjMgOS4yLTIwLjYgNS41bC03OS42LTQwYy01LjQtMi43LTguOC04LjItOC44LTE0LjNzMy40LTExLjYgOC44LTE0LjNsNzkuNi00MGM3LjMtMy42IDE2LjEtMS4zIDIwLjYgNS41czMuMSAxNS45LTMuMSAyMS4xeiJdfSxjQXQ9eDRlLHk0ZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJkb3duLWxlZnQtYW5kLXVwLXJpZ2h0LXRvLWNlbnRlciIsaWNvbjpbNTEyLDUxMixbImNvbXByZXNzLWFsdCJdLCJmNDIyIiwiTTQzOS41IDdjOS40LTkuNCAyNC42LTkuNCAzMy45IDBsMzIgMzJjOS40IDkuNCA5LjQgMjQuNiAwIDMzLjlsLTg3IDg3IDM5IDM5YzYuOSA2LjkgOC45IDE3LjIgNS4yIDI2LjJTNDUwLjIgMjQwIDQ0MC41IDI0MGwtMTQ0IDBjLTEzLjMgMC0yNC0xMC43LTI0LTI0bDAtMTQ0YzAtOS43IDUuOC0xOC41IDE0LjgtMjIuMnMxOS4zLTEuNyAyNi4yIDUuMmwzOSAzOSA4Ny04N3pNNzIuNSAyNzJsMTQ0IDBjMTMuMyAwIDI0IDEwLjcgMjQgMjRsMCAxNDRjMCA5LjctNS44IDE4LjUtMTQuOCAyMi4ycy0xOS4zIDEuNy0yNi4yLTUuMmwtMzktMzktODcgODdjLTkuNCA5LjQtMjQuNiA5LjQtMzMuOSAwbC0zMi0zMmMtOS40LTkuNC05LjQtMjQuNiAwLTMzLjlsODctODctMzktMzljLTYuOS02LjktOC45LTE3LjItNS4yLTI2LjJTNjIuOCAyNzIgNzIuNSAyNzJ6Il19LGRBdD15NGUsdUF0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImdpZnRzIixpY29uOls1NzYsNTEyLFtdLCJmNzljIiwiTTIwMi0zMC42YzEyLjUgNC40IDE5IDE4LjEgMTQuNiAzMC42bC04LjIgMjMuMSAyNS40LTE4LjVjMTAuNy03LjggMjUuNy01LjQgMzMuNSA1LjNzNS40IDI1LjctNS4zIDMzLjVMMjMzLjggNjQgMjcyIDY0YzI2LjUgMCA0OCAyMS41IDQ4IDQ4bDAgMi4xYy01NC43IDEwLjQtOTYgNTguNC05NiAxMTZsMCAxLjljMCA4LjkgMSAxNy41IDIuOCAyNS45LTExLjkgMTcuOC0xOC44IDM5LjEtMTguOCA2Mi4xbDAgMTI4YzAgMjMuOCA3LjQgNDUuOSAyMC4xIDY0TDQ4IDUxMmMtMjYuNSAwLTQ4LTIxLjUtNDgtNDhMMCAxMTJDMCA4NS41IDIxLjUgNjQgNDggNjRsMzguMiAwLTI4LjMtMjAuNkM0Ny4yIDM1LjYgNDQuOCAyMC42IDUyLjYgOS45Uzc1LjQtMy4yIDg2LjEgNC42bDI3LjQgMjAtOC4zLTI1QzEwMS0xMyAxMDcuOC0yNi42IDEyMC40LTMwLjhzMjYuMiAyLjYgMzAuNCAxNS4ybDkuOSAyOS44IDEwLjctMzAuMmM0LjQtMTIuNSAxOC4xLTE5IDMwLjYtMTQuNnpNNDg5LjkgMjA4Yy03LjUgMC0xNC41IDMuOC0xOC42IDEwLjFMNDQ2LjkgMjU2IDQ4OCAyNTZjMTMuMyAwIDI0LTEwLjcgMjQtMjRsMC0xLjljMC0xMi4yLTkuOS0yMi4xLTIyLjEtMjIuMXpNMzg1LjEgMjU2bC0yNC40LTM3LjljLTQuMS02LjMtMTEuMS0xMC4xLTE4LjYtMTAuMS0xMi4yIDAtMjIuMSA5LjktMjIuMSAyMi4xbDAgMS45YzAgMTMuMyAxMC43IDI0IDI0IDI0bDQxLjEgMHpNMjgxLjkgMjY4LjVjLTYuMy0xMC43LTkuOS0yMy4yLTkuOS0zNi41bDAtMS45YzAtMzguNyAzMS40LTcwLjEgNzAuMS03MC4xIDIzLjggMCA0NiAxMi4xIDU4LjkgMzIuMWwxNSAyMy4yIDE1LTIzLjJjMTIuOS0yMCAzNS4xLTMyLjEgNTguOS0zMi4xIDM4LjcgMCA3MC4xIDMxLjQgNzAuMSA3MC4xbDAgMS45YzAgMTMuMy0zLjYgMjUuOC05LjkgMzYuNSAxNS43IDExLjcgMjUuOSAzMC40IDI1LjkgNTEuNWwwIDEyOGMwIDM1LjMtMjguNyA2NC02NCA2NGwtNzIgMCAwLTIwOC00OCAwIDAgMjA4LTcyIDBjLTM1LjMgMC02NC0yOC43LTY0LTY0bDAtMTI4YzAtMjEuMSAxMC4yLTM5LjggMjUuOS01MS41eiJdfSxwQXQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiYmVkIixpY29uOls1NzYsNTEyLFsxMjg3MTZdLCJmMjM2IiwiTTMyIDMyYzE3LjcgMCAzMiAxNC4zIDMyIDMybDAgMjI0IDIyNCAwIDAtMTI4YzAtMTcuNyAxNC4zLTMyIDMyLTMybDE2MCAwYzUzIDAgOTYgNDMgOTYgOTZsMCAyMjRjMCAxNy43LTE0LjMgMzItMzIgMzJzLTMyLTE0LjMtMzItMzJsMC02NC00NDggMCAwIDY0YzAgMTcuNy0xNC4zIDMyLTMyIDMyUzAgNDY1LjcgMCA0NDhMMCA2NEMwIDQ2LjMgMTQuMyAzMiAzMiAzMnptODAgMTYwYTY0IDY0IDAgMSAxIDEyOCAwIDY0IDY0IDAgMSAxIC0xMjggMHoiXX0saEF0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6Im1vbmV5LWJpbGwtdHJhbnNmZXIiLGljb246WzY0MCw1MTIsW10sImU1MjgiLCJNMzEgMTA1Yy05LjQtOS40LTkuNC0yNC42IDAtMzMuOUwxMDMtMWM5LjQtOS40IDI0LjYtOS40IDMzLjkgMHM5LjQgMjQuNiAwIDMzLjlsLTMxIDMxIDY3LjcgMCAwIDAgMzM4LjMgMGMzNS4zIDAgNjQgMjguNyA2NCA2NGwwIDE3OC4yLTUuMS01LjFjLTI4LjEtMjguMS03My43LTI4LjEtMTAxLjggMC0yNy4yIDI3LjItMjguMSA3MC42LTIuOCA5OC45bDY3LjcgMC0zMS0zMWMtOS40LTkuNC05LjQtMjQuNiAwLTMzLjlzMjQuNi05LjQgMzMuOSAwbDcyIDcyYzkuNCA5LjQgOS40IDI0LjYgMCAzMy45bC03MiA3MmMtOS40IDkuNC0yNC42IDkuNC0zMy45IDBzLTkuNC0yNC42IDAtMzMuOWwzMS0zMS00MDYuMSAwYy0zNS4zIDAtNjQtMjguNy02NC02NGwwLTE3OC4yIDUuMSA1LjFjMjguMSAyOC4xIDczLjcgMjguMSAxMDEuOCAwIDI3LjItMjcuMiAyOC4xLTcwLjYgMi44LTk4LjlsLTY3LjcgMCAzMSAzMWM5LjQgOS40IDkuNCAyNC42IDAgMzMuOXMtMjQuNiA5LjQtMzMuOSAwTDMxIDEwNXpNNDE2IDI1NmE5NiA5NiAwIDEgMCAtMTkyIDAgOTYgOTYgMCAxIDAgMTkyIDB6bTg4LTY0LjVjNC40IC41IDgtMy4xIDgtNy41bDAtNDhjMC00LjQtMy42LTgtOC04bC00OCAwYy00LjQgMC04LjEgMy42LTcuNSA4IDMuNiAyOSAyNi42IDUxLjkgNTUuNSA1NS41em0tMzY4IDEyOWMtNC40LS41LTggMy4xLTggNy41bDAgNDhjMCA0LjQgMy42IDggOCA4bDQ4IDBjNC40IDAgOC4xLTMuNiA3LjUtOC0zLjYtMjktMjYuNi01MS45LTU1LjUtNTUuNXoiXX0sdzRlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InBlcnNvbi1ydW5uaW5nIixpY29uOls0NDgsNTEyLFsxMjc5MzksInJ1bm5pbmciXSwiZjcwYyIsIk0yNTYuNS0zMmE1NiA1NiAwIDEgMSAwIDExMiA1NiA1NiAwIDEgMSAwLTExMnpNMTIzLjYgMTc2Yy0zLjMgMC02LjIgMi03LjQgNUw5NC4yIDIzNS45Yy02LjYgMTYuNC0yNS4yIDI0LjQtNDEuNiAxNy44cy0yNC40LTI1LjItMTcuOC00MS42bDIxLjktNTQuOUM2Ny43IDEyOS45IDk0LjEgMTEyIDEyMy42IDExMmw5Ny4zIDBjMjguNSAwIDU0LjggMTUuMSA2OS4xIDM5LjdsMzIuOCA1Ni4zIDYxLjYgMGMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMmwtNjEuNiAwYy0yMi44IDAtNDMuOC0xMi4xLTU1LjMtMzEuOGwtMTAtMTcuMS0yMC43IDcwLjQgNzUuNCAyMi42YzI3LjcgOC4zIDQxLjggMzkgMzAuMSA2NS41TDI4NS43IDUwOWMtNy4yIDE2LjItMjYuMSAyMy40LTQyLjIgMTYuMnMtMjMuNC0yNi4xLTE2LjItNDIuMmw0OS4yLTExMC44LTk1LjktMjguOGMtMzIuNy05LjgtNTItNDMuNy00My43LTc2LjhsMjIuNy05MC42LTM1LjkgMHptLTggMTgxYzEzLjMgMTQuOSAzMC43IDI2LjMgNTEuMiAzMi40bDQuNyAxLjQtNi45IDE5LjNjLTUuOCAxNi4zLTE2IDMwLjgtMjkuMyA0MS44TDUyLjkgNTE5LjhjLTEzLjYgMTEuMi0zMy44IDkuMy00NS00LjNzLTkuMy0zMy44IDQuMy00NWw4Mi40LTY3LjljNC41LTMuNyA3LjgtOC41IDkuOC0xMy45TDExNS42IDM1N3oiXX0sZkF0PXc0ZSxNNGU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiY2lyY2xlLWNoZXZyb24tZG93biIsaWNvbjpbNTEyLDUxMixbImNoZXZyb24tY2lyY2xlLWRvd24iXSwiZjEzYSIsIk0yNTYgMGEyNTYgMjU2IDAgMSAwIDAgNTEyIDI1NiAyNTYgMCAxIDAgMC01MTJ6TTEzNSAyNDFjLTkuNC05LjQtOS40LTI0LjYgMC0zMy45czI0LjYtOS40IDMzLjkgMGw4NyA4NyA4Ny04N2M5LjQtOS40IDI0LjYtOS40IDMzLjkgMHM5LjQgMjQuNiAwIDMzLjlMMjczIDM0NWMtOS40IDkuNC0yNC42IDkuNC0zMy45IDBMMTM1IDI0MXoiXX0sbUF0PU00ZSxnQXQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToidXNlci1udXJzZSIsaWNvbjpbNDQ4LDUxMixbXSwiZjgyZiIsIk05NiA0NC45YzAtMTIuNyA3LjUtMjQuMiAxOS4yLTI5LjNsOTYtNDJjOC4yLTMuNiAxNy41LTMuNiAyNS43IDBsOTYgNDJDMzQ0LjUgMjAuNyAzNTIgMzIuMiAzNTIgNDQuOWwwIDk5LjFjMCA3MC43LTU3LjMgMTI4LTEyOCAxMjhTOTYgMjE0LjcgOTYgMTQ0bDAtOTkuMXpNMzA0IDEyOGwtMTExLjYgMC0uNCAwLTQ4IDAgMCAxNmMwIDQ0LjIgMzUuOCA4MCA4MCA4MHM4MC0zNS44IDgwLTgwbDAtMTZ6TTIwOCAxNmwwIDE2LTE2IDBjLTQuNCAwLTggMy42LTggOGwwIDE2YzAgNC40IDMuNiA4IDggOGwxNiAwIDAgMTZjMCA0LjQgMy42IDggOCA4bDE2IDBjNC40IDAgOC0zLjYgOC04bDAtMTYgMTYgMGM0LjQgMCA4LTMuNiA4LThsMC0xNmMwLTQuNC0zLjYtOC04LThsLTE2IDAgMC0xNmMwLTQuNC0zLjYtOC04LThMMjE2IDhjLTQuNCAwLTggMy42LTggOHpNMTQyLjYgMzIzYy02LjUtNC45LTE1LjItNi4yLTIyLjYtMi44LTYxLjQgMjguMi0xMDQuMSA5MC4yLTEwNC4xIDE2Mi4xIDAgMTYuNCAxMy4zIDI5LjcgMjkuNyAyOS43bDM1Ni42IDBjMTYuNCAwIDI5LjctMTMuMyAyOS43LTI5LjcgMC03Mi00Mi43LTEzNC0xMDQuMS0xNjIuMS03LjQtMy40LTE2LjEtMi4xLTIyLjYgMi44bC02NyA1MC4yYy04LjUgNi40LTIwLjMgNi40LTI4LjggMGwtNjctNTAuMnoiXX0sazRlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImZhY2Uta2lzcy13aW5rLWhlYXJ0IixpY29uOls2NDAsNTEyLFsxMjg1MzYsImtpc3Mtd2luay1oZWFydCJdLCJmNTk4IiwiTTU0My43IDI2OC4zYy4yLTQuMSAuMy04LjIgLjMtMTIuMyAwLTE0MS40LTExNC42LTI1Ni0yNTYtMjU2UzMyIDExNC42IDMyIDI1NiAxNDYuNiA1MTIgMjg4IDUxMmM0MS40IDAgODAuNS05LjggMTE1LjEtMjcuMy03LjYtMTcuMS0xNi4xLTM4LjgtMjEuOC02MS43LTcuNy0zMC41LTE0LjEtNzYuMiA4LjItMTE0LjdsMi43LTQuNmMyOS41LTUxIDk0LjctNjguNSAxNDUuNy0zOSAyIDEuMiA0IDIuNCA1LjkgMy43ek0yNDAgMzA0YzAtOC44IDcuMi0xNiAxNi0xNmwzMiAwYzI2LjUgMCA0OCAyMS41IDQ4IDQ4IDAgMTIuMy00LjYgMjMuNS0xMi4yIDMyIDcuNiA4LjUgMTIuMiAxOS43IDEyLjIgMzIgMCAyNi41LTIxLjUgNDgtNDggNDhsLTMyIDBjLTguOCAwLTE2LTcuMi0xNi0xNnM3LjItMTYgMTYtMTZsMTYgMGM4LjggMCAxNi03LjIgMTYtMTZzLTcuMi0xNi0xNi0xNmwtMTYgMGMtOC44IDAtMTYtNy4yLTE2LTE2czcuMi0xNiAxNi0xNmwxNiAwYzguOCAwIDE2LTcuMiAxNi0xNnMtNy4yLTE2LTE2LTE2bC0xNiAwYy04LjggMC0xNi03LjItMTYtMTZ6TTIwOCAxNzZhMzIgMzIgMCAxIDEgMCA2NCAzMiAzMiAwIDEgMSAwLTY0em0xNTIgMjBjLTExIDAtMjAgOS0yMCAyMHMtOSAyMC0yMCAyMC0yMC05LTIwLTIwYzAtMzMuMSAyNi45LTYwIDYwLTYwbDE2IDBjMzMuMSAwIDYwIDI2LjkgNjAgNjAgMCAxMS05IDIwLTIwIDIwcy0yMC05LTIwLTIwLTktMjAtMjAtMjBsLTE2IDB6TTU0Mi44IDM1MGMtMi4yLTE4LjMtMTIuOS0zNC42LTI4LjktNDMuOC0yOC4xLTE2LjItNjMuOS02LjYtODAuMSAyMS41bC0yLjcgNC42Yy0yNC41IDQyLjUgNy45IDExNy45IDI0LjQgMTUwLjggNS4xIDEwLjEgMTUuNSAxNi4xIDI2LjggMTUuNSAzNi43LTIuMiAxMTguMi0xMS43IDE0Mi44LTU0LjJsMi43LTQuNmMxNi4yLTI4LjEgNi42LTYzLjktMjEuNS04MC4xLTE2LTkuMi0zNS40LTEwLjQtNTIuNC0zLjFsLTkuOCA0LjItMS4zLTEwLjZ6Il19LGJBdD1rNGUsdkF0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImZpbGwiLGljb246WzUxMiw1MTIsW10sImY1NzUiLCJNMjk2IDY0YzYuOSAwIDEzLjUgMi43IDE4LjMgNy42TDQ0MC40IDE5Ny43YzQuOSA0LjkgNy42IDExLjUgNy42IDE4LjNzLTIuNyAxMy41LTcuNiAxOC4zTDM4Ni43IDI4OCA2NS4zIDI4OGMxLjMtMy45IDMuNC03LjQgNi4zLTEwLjNsOTYuNC05Ni40IDMzLjQgMzMuNGMxMi41IDEyLjUgMzIuOCAxMi41IDQ1LjMgMHMxMi41LTMyLjggMC00NS4zTDIxMy4zIDEzNiAyNzcuNyA3MS42YzQuOS00LjkgMTEuNS03LjYgMTguMy03LjZ6TTEyMi43IDEzNkwyNi4zIDIzMi40QzkuNSAyNDkuMyAwIDI3Mi4xIDAgMjk2czkuNSA0Ni43IDI2LjMgNjMuNkwxNTIuNCA0ODUuN0MxNjkuMyA1MDIuNSAxOTIuMSA1MTIgMjE2IDUxMnM0Ni43LTkuNSA2My42LTI2LjNMNDg1LjcgMjc5LjZDNTAyLjUgMjYyLjcgNTEyIDIzOS45IDUxMiAyMTZzLTkuNS00Ni43LTI2LjMtNjMuNkwzNTkuNiAyNi4zQzM0Mi43IDkuNSAzMTkuOSAwIDI5NiAwcy00Ni43IDkuNS02My42IDI2LjNMMTY4IDkwLjcgMTE4LjYgNDEuNGMtMTIuNS0xMi41LTMyLjgtMTIuNS00NS4zIDBzLTEyLjUgMzIuOCAwIDQ1LjNMMTIyLjcgMTM2eiJdfSxTNGU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToibW9uZXktYmlsbC0xLXdhdmUiLGljb246WzUxMiw1MTIsWyJtb25leS1iaWxsLXdhdmUtYWx0Il0sImY1M2IiLCJNMCAxMDkuNUwwIDQxOS42YzAgMTkuNCAxMS44IDM3LjMgMzAuMyA0My4zIDk0IDMwIDE1OC44IDguNCAyMjMuMy0xMy4xIDYyLjQtMjAuOCAxMjQuNC00MS41IDIxMi4xLTE1LjMgMjIuMiA2LjYgNDYuMi04LjggNDYuMi0zMmwwLTMxMC4xYzAtMTkuNC0xMS44LTM3LjMtMzAuMy00My4zLTk0LTMwLTE1OC44LTguNC0yMjMuMyAxMy4xLTYyLjQgMjAuOC0xMjQuNCA0MS41LTIxMi4xIDE1LjMtMjIuMi02LjYtNDYuMyA4LjgtNDYuMyAzMnpNMjU2IDM2OGMtNTMgMC05Ni01MC4xLTk2LTExMnM0My0xMTIgOTYtMTEyIDk2IDUwLjEgOTYgMTEyLTQzIDExMi05NiAxMTJ6TTEyNy4xIDQwNS41Yy43IDQuNC0yLjggOC4xLTcuMiA4LjEtMTUuNyAwLTMyLjEtMS44LTUwLTYuMS0zLjUtLjgtNi00LTYtNy43TDY0IDM2MGMwLTQuNCAzLjYtOC4xIDgtNy41IDI4LjEgMy41IDUwLjYgMjUuMiA1NS4yIDUzek00NDggMzU0LjZjMCA1LTQuNiA4LjgtOS41IDgtMTUuNC0yLjUtMzAuMi0zLjktNDQuNC00LjMtNC45LS4xLTguNy00LjUtNy4yLTkuMiA3LjMtMjMuNyAyOC00MS40IDUzLjItNDQuNiA0LjQtLjUgOCAzLjEgOCA3LjVsMCA0Mi42em0tOC0xOTUuMWMtMjguMS0zLjUtNTAuNi0yNS4yLTU1LjItNTMtLjctNC40IDIuOC04LjEgNy4yLTguMSAxNS43IDAgMzIuMSAxLjggNTAgNi4xIDMuNSAuOCA2IDQgNiA3LjdsMCAzOS45YzAgNC40LTMuNiA4LjEtOCA3LjV6bS0zMjIuMS01LjhjNC45IC4xIDguNyA0LjUgNy4yIDkuMi03LjMgMjMuNy0yOCA0MS40LTUzLjIgNDQuNi00LjQgLjUtOC0zLjEtOC03LjVsMC00Mi42YzAtNSA0LjYtOC44IDkuNS04IDE1LjQgMi41IDMwLjIgMy45IDQ0LjQgNC4zek0yNDAgMTg4Yy0xMSAwLTIwIDktMjAgMjAgMCA5LjcgNi45IDE3LjcgMTYgMTkuNmwwIDQ4LjQtNCAwYy0xMSAwLTIwIDktMjAgMjBzOSAyMCAyMCAyMGw0OCAwYzExIDAgMjAtOSAyMC0yMHMtOS0yMC0yMC0yMGwtNCAwIDAtNjhjMC0xMS05LTIwLTIwLTIwbC0xNiAweiJdfSx4QXQ9UzRlLHlBdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJsYW5kbWFyayIsaWNvbjpbNTEyLDUxMixbMTI3OTYzXSwiZjY2ZiIsIk0yMzguNyA1LjFjMTAuNS02LjggMjQuMS02LjggMzQuNiAwbDIyNCAxNDRjMTEuOSA3LjcgMTcuNCAyMi4zIDEzLjQgMzUuOXMtMTYuNSAyMy0zMC43IDIzbC0zMiAwIDAgMjA4IDUxLjIgMzguNGM4LjEgNiAxMi44IDE1LjUgMTIuOCAyNS42IDAgMTcuNy0xNC4zIDMyLTMyIDMyTDMyIDUxMmMtMTcuNyAwLTMyLTE0LjMtMzItMzIgMC0xMC4xIDQuNy0xOS42IDEyLjgtMjUuNmw1MS4yLTM4LjQgMCAwIDAtMjA4LTMyIDBjLTE0LjIgMC0yNi43LTkuNC0zMC43LTIzczEuNS0yOC4zIDEzLjQtMzUuOWwyMjQtMTQ0ek0zMzYgMjA4bDAgMjA4IDY0IDAgMC0yMDgtNjQgMHpNMjI0IDQxNmw2NCAwIDAtMjA4LTY0IDAgMCAyMDh6TTExMiAyMDhsMCAyMDggNjQgMCAwLTIwOC02NCAweiJdfSx3QXQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToibXVzaWMiLGljb246WzUxMiw1MTIsWzEyNzkyNV0sImYwMDEiLCJNNDY4IDdjNy42IDYuMSAxMiAxNS4zIDEyIDI1bDAgMzA0YzAgNDQuMi00MyA4MC05NiA4MHMtOTYtMzUuOC05Ni04MCA0My04MCA5Ni04MGMxMS4yIDAgMjIgMS42IDMyIDQuNmwwLTExNi43LTIyNCA0OS44IDAgMjA2LjNjMCA0NC4yLTQzIDgwLTk2IDgwcy05Ni0zNS44LTk2LTgwIDQzLTgwIDk2LTgwYzExLjIgMCAyMiAxLjYgMzIgNC42TDEyOCA5NmMwLTE1IDEwLjQtMjggMjUuMS0zMS4ybDI4OC02NGM5LjUtMi4xIDE5LjQgLjIgMjcgNi4zeiJdfSxNQXQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiYm9vay1tZWRpY2FsIixpY29uOls0NDgsNTEyLFtdLCJmN2U2IiwiTTk2IDUxMmwzMjAgMGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMmwwLTY2LjdjMTguNi02LjYgMzItMjQuNCAzMi00NS4zbDAtMjg4YzAtMjYuNS0yMS41LTQ4LTQ4LTQ4TDk2IDBDNDMgMCAwIDQzIDAgOTZMMCA0MTZjMCA1MyA0MyA5NiA5NiA5NnpNNjQgNDE2YzAtMTcuNyAxNC4zLTMyIDMyLTMybDI1NiAwIDAgNjQtMjU2IDBjLTE3LjcgMC0zMi0xNC4zLTMyLTMyek0xOTIgMTIwYzAtOC44IDcuMi0xNiAxNi0xNmwzMiAwYzguOCAwIDE2IDcuMiAxNiAxNmwwIDQwIDQwIDBjOC44IDAgMTYgNy4yIDE2IDE2bDAgMzJjMCA4LjgtNy4yIDE2LTE2IDE2bC00MCAwIDAgNDBjMCA4LjgtNy4yIDE2LTE2IDE2bC0zMiAwYy04LjggMC0xNi03LjItMTYtMTZsMC00MC00MCAwYy04LjggMC0xNi03LjItMTYtMTZsMC0zMmMwLTguOCA3LjItMTYgMTYtMTZsNDAgMCAwLTQweiJdfSx6NGU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToic2h1ZmZsZSIsaWNvbjpbNTEyLDUxMixbMTI4MjU2LCJyYW5kb20iXSwiZjA3NCIsIk00MDMuOCAzNC40YzEyLTUgMjUuNy0yLjIgMzQuOSA2LjlsNjQgNjRjNiA2IDkuNCAxNC4xIDkuNCAyMi42cy0zLjQgMTYuNi05LjQgMjIuNmwtNjQgNjRjLTkuMiA5LjItMjIuOSAxMS45LTM0LjkgNi45UzM4NCAyMDQuOSAzODQgMTkybDAtMzItMzIgMGMtMTAuMSAwLTE5LjYgNC43LTI1LjYgMTIuOGwtMzIuNCA0My4yLTQwLTUzLjMgMjEuMi0yOC4zQzI5My4zIDExMC4yIDMyMS44IDk2IDM1MiA5NmwzMiAwIDAtMzJjMC0xMi45IDcuOC0yNC42IDE5LjgtMjkuNnpNMTU0IDI5Nmw0MCA1My4zLTIxLjIgMjguM0MxNTQuNyA0MDEuOCAxMjYuMiA0MTYgOTYgNDE2bC02NCAwYy0xNy43IDAtMzItMTQuMy0zMi0zMnMxNC4zLTMyIDMyLTMybDY0IDBjMTAuMSAwIDE5LjYtNC43IDI1LjYtMTIuOEwxNTQgMjk2ek00MzguNiA0NzAuNmMtOS4yIDkuMi0yMi45IDExLjktMzQuOSA2LjlTMzg0IDQ2MC45IDM4NCA0NDhsMC0zMi0zMiAwYy0zMC4yIDAtNTguNy0xNC4yLTc2LjgtMzguNEwxMjEuNiAxNzIuOGMtNi04LjEtMTUuNS0xMi44LTI1LjYtMTIuOGwtNjQgMGMtMTcuNyAwLTMyLTE0LjMtMzItMzJTMTQuMyA5NiAzMiA5Nmw2NCAwYzMwLjIgMCA1OC43IDE0LjIgNzYuOCAzOC40TDMyNi40IDMzOS4yYzYgOC4xIDE1LjUgMTIuOCAyNS42IDEyLjhsMzIgMCAwLTMyYzAtMTIuOSA3LjgtMjQuNiAxOS44LTI5LjZzMjUuNy0yLjIgMzQuOSA2LjlsNjQgNjRjNiA2IDkuNCAxNC4xIDkuNCAyMi42cy0zLjQgMTYuNi05LjQgMjIuNmwtNjQgNjR6Il19LGtBdD16NGUsU0F0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InVuZGVybGluZSIsaWNvbjpbMzg0LDUxMixbXSwiZjBjZCIsIk0wIDMyQzAgMTQuMyAxNC4zIDAgMzIgMEw5NiAwYzE3LjcgMCAzMiAxNC4zIDMyIDMyUzExMy43IDY0IDk2IDY0bDAgMTYwYzAgNTMgNDMgOTYgOTYgOTZzOTYtNDMgOTYtOTZsMC0xNjBjLTE3LjcgMC0zMi0xNC4zLTMyLTMyUzI3MC4zIDAgMjg4IDBsNjQgMGMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMmwwIDE2MGMwIDg4LjQtNzEuNiAxNjAtMTYwIDE2MFMzMiAzMTIuNCAzMiAyMjRMMzIgNjRDMTQuMyA2NCAwIDQ5LjcgMCAzMnpNMCA0ODBjMC0xNy43IDE0LjMtMzIgMzItMzJsMzIwIDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJMMzIgNTEyYy0xNy43IDAtMzItMTQuMy0zMi0zMnoiXX0sekF0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImJ1aWxkaW5nLXVzZXIiLGljb246WzY0MCw1MTIsW10sImU0ZGEiLCJNNjQgNjRDNjQgMjguNyA5Mi43IDAgMTI4IDBMMzg0IDBjMzUuMyAwIDY0IDI4LjcgNjQgNjRsMCAxMjEuM2MtNDYuOSAxOS04MCA2NS04MCAxMTguNyAwIDI3LjcgOC44IDUzLjQgMjMuOCA3NC40LTUxLjUgMjEtODcuOCA3MS42LTg3LjggMTMwLjcgMCAxIDAgMS45IDAgMi45bC0xNzYgMGMtMzUuMyAwLTY0LTI4LjctNjQtNjRMNjQgNjR6TTIwOCA0MDBsMCA2NCA1My40IDBjNy4yLTI5LjQgMjEuMy01Ni4xIDQwLjQtNzguMy02LjEtMTkuNS0yNC4zLTMzLjctNDUuOC0zMy43LTI2LjUgMC00OCAyMS41LTQ4IDQ4ek0zMzkgMjI0LjNjLTEtLjItMi0uMy0zLS4zbC0zMiAwYy04LjggMC0xNiA3LjItMTYgMTZsMCAzMmMwIDguOCA3LjIgMTYgMTYgMTZsMTYuNyAwYzIuMS0yMi44IDguNC00NC4zIDE4LjMtNjMuN3pNMTc2IDk2Yy04LjggMC0xNiA3LjItMTYgMTZsMCAzMmMwIDguOCA3LjIgMTYgMTYgMTZsMzIgMGM4LjggMCAxNi03LjIgMTYtMTZsMC0zMmMwLTguOC03LjItMTYtMTYtMTZsLTMyIDB6bTExMiAxNmwwIDMyYzAgOC44IDcuMiAxNiAxNiAxNmwzMiAwYzguOCAwIDE2LTcuMiAxNi0xNmwwLTMyYzAtOC44LTcuMi0xNi0xNi0xNmwtMzIgMGMtOC44IDAtMTYgNy4yLTE2IDE2ek0xNzYgMjI0Yy04LjggMC0xNiA3LjItMTYgMTZsMCAzMmMwIDguOCA3LjIgMTYgMTYgMTZsMzIgMGM4LjggMCAxNi03LjIgMTYtMTZsMC0zMmMwLTguOC03LjItMTYtMTYtMTZsLTMyIDB6bTI0MCA4MGE4MCA4MCAwIDEgMSAxNjAgMCA4MCA4MCAwIDEgMSAtMTYwIDB6TTM1MiA1MTJjMC01MyA0My05NiA5Ni05Nmw5NiAwYzUzIDAgOTYgNDMgOTYgOTYgMCAxNy43LTE0LjMgMzItMzIgMzJsLTIyNCAwYy0xNy43IDAtMzItMTQuMy0zMi0zMnoiXX0sQ0F0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InJvYm90IixpY29uOls2NDAsNTEyLFsxMjkzMDJdLCJmNTQ0IiwiTTM1MiAwYzAtMTcuNy0xNC4zLTMyLTMyLTMyUzI4OC0xNy43IDI4OCAwbDAgNjQtOTYgMGMtNTMgMC05NiA0My05NiA5NmwwIDIyNGMwIDUzIDQzIDk2IDk2IDk2bDI1NiAwYzUzIDAgOTYtNDMgOTYtOTZsMC0yMjRjMC01My00My05Ni05Ni05NmwtOTYgMCAwLTY0ek0xNjAgMzY4YzAtMTMuMyAxMC43LTI0IDI0LTI0bDMyIDBjMTMuMyAwIDI0IDEwLjcgMjQgMjRzLTEwLjcgMjQtMjQgMjRsLTMyIDBjLTEzLjMgMC0yNC0xMC43LTI0LTI0em0xMjAgMGMwLTEzLjMgMTAuNy0yNCAyNC0yNGwzMiAwYzEzLjMgMCAyNCAxMC43IDI0IDI0cy0xMC43IDI0LTI0IDI0bC0zMiAwYy0xMy4zIDAtMjQtMTAuNy0yNC0yNHptMTIwIDBjMC0xMy4zIDEwLjctMjQgMjQtMjRsMzIgMGMxMy4zIDAgMjQgMTAuNyAyNCAyNHMtMTAuNyAyNC0yNCAyNGwtMzIgMGMtMTMuMyAwLTI0LTEwLjctMjQtMjR6TTIyNCAxNzZhNDggNDggMCAxIDEgMCA5NiA0OCA0OCAwIDEgMSAwLTk2em0xNDQgNDhhNDggNDggMCAxIDEgOTYgMCA0OCA0OCAwIDEgMSAtOTYgMHpNNjQgMjI0YzAtMTcuNy0xNC4zLTMyLTMyLTMyUzAgMjA2LjMgMCAyMjRsMCA5NmMwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMybDAtOTZ6bTU0NC0zMmMtMTcuNyAwLTMyIDE0LjMtMzIgMzJsMCA5NmMwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMybDAtOTZjMC0xNy43LTE0LjMtMzItMzItMzJ6Il19LGViPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InBsdXMiLGljb246WzQ0OCw1MTIsWzEwMTMzLDYxNTQzLCJhZGQiXSwiMmIiLCJNMjU2IDY0YzAtMTcuNy0xNC4zLTMyLTMyLTMycy0zMiAxNC4zLTMyIDMybDAgMTYwLTE2MCAwYy0xNy43IDAtMzIgMTQuMy0zMiAzMnMxNC4zIDMyIDMyIDMybDE2MCAwIDAgMTYwYzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJsMC0xNjAgMTYwIDBjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJsLTE2MCAwIDAtMTYweiJdfSxUQXQ9ZWIsdUU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiY29weSIsaWNvbjpbNDQ4LDUxMixbXSwiZjBjNSIsIk0xOTIgMGMtMzUuMyAwLTY0IDI4LjctNjQgNjRsMCAyNTZjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMTkyIDBjMzUuMyAwIDY0LTI4LjcgNjQtNjRsMC0yMDAuNmMwLTE3LjQtNy4xLTM0LjEtMTkuNy00Ni4yTDM3MC42IDE3LjhDMzU4LjcgNi40IDM0Mi44IDAgMzI2LjMgMEwxOTIgMHpNNjQgMTI4Yy0zNS4zIDAtNjQgMjguNy02NCA2NEwwIDQ0OGMwIDM1LjMgMjguNyA2NCA2NCA2NGwxOTIgMGMzNS4zIDAgNjQtMjguNyA2NC02NGwwLTE2LTY0IDAgMCAxNi0xOTIgMCAwLTI1NiAxNiAwIDAtNjQtMTYgMHoiXX0sX0F0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImNoZXNzLWtpbmciLGljb246WzQ0OCw1MTIsWzk4MThdLCJmNDNmIiwiTTIyNC0zMmMxNy43IDAgMzIgMTQuMyAzMiAzMmwwIDMyIDMyIDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJsLTMyIDAgMCA2NCAxNTMuOCAwYzIxLjEgMCAzOC4yIDE3LjEgMzguMiAzOC4yIDAgNi40LTEuNiAxMi43LTQuNyAxOC4zTDM1MiAzODQgNDA4LjIgNDU0LjNjNSA2LjMgNy44IDE0LjEgNy44IDIyLjIgMCAxOS42LTE1LjkgMzUuNS0zNS41IDM1LjVMNjcuNSA1MTJjLTE5LjYgMC0zNS41LTE1LjktMzUuNS0zNS41IDAtOC4xIDIuNy0xNS45IDcuOC0yMi4yTDk2IDM4NCA0LjcgMjE2LjZDMS42IDIxMC45IDAgMjA0LjYgMCAxOTguMiAwIDE3Ny4xIDE3LjEgMTYwIDM4LjIgMTYwbDE1My44IDAgMC02NC0zMiAwYy0xNy43IDAtMzItMTQuMy0zMi0zMnMxNC4zLTMyIDMyLTMybDMyIDAgMC0zMmMwLTE3LjcgMTQuMy0zMiAzMi0zMnoiXX0sTEF0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImhvdXNlLWZsb29kLXdhdGVyIixpY29uOls2NDAsNTEyLFtdLCJlNTBlIiwiTTQ5NiAyMDhsNC41IDBjMTUuMiAwIDI3LjUtMTIuMyAyNy41LTI3LjUgMC03LjktMy40LTE1LjUtOS40LTIwLjdMMzQ4IDEwLjVDMzQwLjMgMy43IDMzMC4zIDAgMzIwIDBzLTIwLjMgMy43LTI4IDEwLjVMMTIxLjQgMTU5LjhjLTYgNS4yLTkuNCAxMi44LTkuNCAyMC43IDAgMTUuMiAxMi4zIDI3LjUgMjcuNSAyNy41bDQuNSAwIDAgOTQuNGMyMC4zLTkuNCA0Mi4xLTE0LjIgNjQtMTQuNCAzMy4xLS4yIDY2LjMgMTAuMiA5NC40IDMxLjQgMjIuMSAxNi42IDI5LjEgMTYuNiA1MS4yIDAgMjcuNS0yMC43IDU5LjktMzEuMiA5Mi40LTMxLjQgMTYuOS0uMSAzMy44IDIuNiA1MCA4bDAtODh6bS0yMjQtOGMwLTEzLjMgMTAuNy0yNCAyNC0yNGw0OCAwYzEzLjMgMCAyNCAxMC43IDI0IDI0bDAgNDhjMCAxMy4zLTEwLjcgMjQtMjQgMjRsLTQ4IDBjLTEzLjMgMC0yNC0xMC43LTI0LTI0bDAtNDh6TTQ3NC42IDQxMi4xYzE5IDE0LjQgNDEuOSAyOC4yIDY3LjIgMzMuMyAyNi41IDUuNCA1NC4zIC44IDgwLjctMTkuMSAxMC42LTggMTIuNy0yMyA0LjctMzMuNnMtMjMtMTIuNy0zMy42LTQuN2MtMTQuOSAxMS4yLTI4LjYgMTMuMS00Mi4zIDEwLjMtMTQuOS0zLTMwLjktMTEuOS00Ny44LTI0LjYtMzguNC0yOS05MC41LTI5LTEyOSAwLTI0IDE4LjEtNDAuNyAyNi4zLTU0LjUgMjYuM3MtMzAuNS04LjItNTQuNS0yNi4zYy0zOC40LTI5LTkwLjUtMjktMTI5IDAtMjEuNiAxNi4zLTQxLjMgMjUuOC01OC45IDI1LjctOS42LS4xLTE5LjktMy0zMS4yLTExLjUtMTAuNi04LTI1LjYtNS45LTMzLjYgNC43UzcgNDE4LjMgMTcuNiA0MjYuM2MxOS4xIDE0LjQgMzkuNCAyMSA1OS44IDIxLjEgMzMuOSAuMiA2NC4zLTE3LjQgODguMS0zNS4zIDIxLjMtMTYuMSA0OS45LTE2LjEgNzEuMiAwIDI0LjIgMTguMyA1Mi4zIDM1LjkgODMuNCAzNS45czU5LjEtMTcuNyA4My40LTM1LjljMjEuMy0xNi4xIDQ5LjktMTYuMSA3MS4yIDB6bS03MS4yIDk2YzIxLjMtMTYuMSA0OS45LTE2LjEgNzEuMiAwIDE5IDE0LjQgNDEuOSAyOC4yIDY3LjIgMzMuMyAyNi41IDUuNCA1NC4zIC44IDgwLjctMTkuMSAxMC42LTggMTIuNy0yMyA0LjctMzMuNnMtMjMtMTIuNy0zMy42LTQuN2MtMTQuOSAxMS4yLTI4LjYgMTMuMS00Mi4zIDEwLjMtMTQuOS0zLTMwLjktMTEuOS00Ny44LTI0LjYtMzguNC0yOS05MC41LTI5LTEyOSAwLTI0IDE4LjEtNDAuNyAyNi4zLTU0LjUgMjYuM3MtMzAuNS04LjItNTQuNS0yNi4zYy0zOC40LTI5LTkwLjUtMjktMTI5IDAtMjEuNiAxNi4zLTQxLjMgMjUuOC01OC45IDI1LjctOS42LS4xLTE5LjktMy0zMS4yLTExLjUtMTAuNi04LTI1LjYtNS45LTMzLjYgNC43UzcgNTE0LjMgMTcuNiA1MjIuM2MxOS4xIDE0LjQgMzkuNCAyMSA1OS44IDIxLjEgMzMuOSAuMiA2NC4zLTE3LjQgODguMS0zNS4zIDIxLjMtMTYuMSA0OS45LTE2LjEgNzEuMiAwIDI0LjIgMTguMyA1Mi4zIDM1LjkgODMuNCAzNS45czU5LjEtMTcuNyA4My40LTM1Ljl6Il19LEFBdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJiaXRjb2luLXNpZ24iLGljb246WzMyMCw1MTIsW10sImUwYjQiLCJNNjQgMjRDNjQgMTAuNyA3NC43IDAgODggMHMyNCAxMC43IDI0IDI0bDAgNDAgMzIgMCAwLTQwYzAtMTMuMyAxMC43LTI0IDI0LTI0czI0IDEwLjcgMjQgMjRsMCA0MS4xYzU0LjMgNy44IDk2IDU0LjQgOTYgMTEwLjkgMCAyNC4yLTcuNyA0Ni42LTIwLjcgNjQuOSAzMS43IDE5LjggNTIuNyA1NSA1Mi43IDk1LjEgMCA2MS45LTUwLjEgMTEyLTExMiAxMTJsLTE2IDAgMCA0MGMwIDEzLjMtMTAuNyAyNC0yNCAyNHMtMjQtMTAuNy0yNC0yNGwwLTQwLTMyIDAgMCA0MGMwIDEzLjMtMTAuNyAyNC0yNCAyNHMtMjQtMTAuNy0yNC0yNGwwLTQwLTIyLjMgMEMxOC43IDQ0OCAwIDQyOS4zIDAgNDA2LjNMMCAxMDEuNkMwIDgwLjggMTYuOCA2NCAzNy42IDY0TDY0IDY0IDY0IDI0em0wIDIwMGwxMTIgMGMyNi41IDAgNDgtMjEuNSA0OC00OHMtMjEuNS00OC00OC00OGwtMTEyIDAgMCA5NnptMTEyIDY0bC0xMTIgMCAwIDk2IDE0NCAwYzI2LjUgMCA0OC0yMS41IDQ4LTQ4cy0yMS41LTQ4LTQ4LTQ4bC0zMiAweiJdfSxEQXQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiYm94IixpY29uOls0NDgsNTEyLFsxMjgyMzBdLCJmNDY2IiwiTTM2OS40IDEyOGwtMzQuMy00OC0yMjIuMSAwLTM0LjMgNDggMjkwLjcgMHpNMCAxNDguNWMwLTEzLjMgNC4yLTI2LjMgMTEuOS0zNy4yTDYwLjkgNDIuOEM3Mi45IDI2IDkyLjMgMTYgMTEyLjkgMTZsMjIyLjEgMGMyMC43IDAgNDAuMSAxMCA1Mi4xIDI2LjhsNDguOSA2OC41YzcuOCAxMC45IDExLjkgMjMuOSAxMS45IDM3LjJMNDQ4IDQxNmMwIDM1LjMtMjguNyA2NC02NCA2NEw2NCA0ODBjLTM1LjMgMC02NC0yOC43LTY0LTY0TDAgMTQ4LjV6Il19LEM0ZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJzcXVhcmUtcGx1cyIsaWNvbjpbNDQ4LDUxMixbNjE4NDYsInBsdXMtc3F1YXJlIl0sImYwZmUiLCJNNjQgMzJDMjguNyAzMiAwIDYwLjcgMCA5NkwwIDQxNmMwIDM1LjMgMjguNyA2NCA2NCA2NGwzMjAgMGMzNS4zIDAgNjQtMjguNyA2NC02NGwwLTMyMGMwLTM1LjMtMjguNy02NC02NC02NEw2NCAzMnpNMjAwIDM0NGwwLTY0LTY0IDBjLTEzLjMgMC0yNC0xMC43LTI0LTI0czEwLjctMjQgMjQtMjRsNjQgMCAwLTY0YzAtMTMuMyAxMC43LTI0IDI0LTI0czI0IDEwLjcgMjQgMjRsMCA2NCA2NCAwYzEzLjMgMCAyNCAxMC43IDI0IDI0cy0xMC43IDI0LTI0IDI0bC02NCAwIDAgNjRjMCAxMy4zLTEwLjcgMjQtMjQgMjRzLTI0LTEwLjctMjQtMjR6Il19LEVBdD1DNGUsVDRlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImFycm93cy1sZWZ0LXJpZ2h0IixpY29uOls1NzYsNTEyLFsiYXJyb3dzLWgiXSwiZjA3ZSIsIk00NzAuNiAzNzQuNmw5Ni05NmMxMi41LTEyLjUgMTIuNS0zMi44IDAtNDUuM2wtOTYtOTZjLTEyLjUtMTIuNS0zMi44LTEyLjUtNDUuMyAwcy0xMi41IDMyLjggMCA0NS4zbDQxLjQgNDEuNC0zNTcuNSAwIDQxLjQtNDEuNGMxMi41LTEyLjUgMTIuNS0zMi44IDAtNDUuM3MtMzIuOC0xMi41LTQ1LjMgMGwtOTYgOTZjLTYgNi05LjQgMTQuMS05LjQgMjIuNnMzLjQgMTYuNiA5LjQgMjIuNmw5NiA5NmMxMi41IDEyLjUgMzIuOCAxMi41IDQ1LjMgMHMxMi41LTMyLjggMC00NS4zbC00MS40LTQxLjQgMzU3LjUgMC00MS40IDQxLjRjLTEyLjUgMTIuNS0xMi41IDMyLjggMCA0NS4zczMyLjggMTIuNSA0NS4zIDB6Il19LCRBdD1UNGUsSUF0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImZhbiIsaWNvbjpbNTEyLDUxMixbXSwiZjg2MyIsIk0xNjAgMTQ0YzAtNzkuNSA2NC41LTE0NCAxNDQtMTQ0IDguOCAwIDE2IDcuMiAxNiAxNmwwIDE1Mi4yYzE1LTUuMyAzMS4yLTguMiA0OC04LjIgNzkuNSAwIDE0NCA2NC41IDE0NCAxNDQgMCA4LjgtNy4yIDE2LTE2IDE2bC0xNTIuMiAwYzUuMyAxNSA4LjIgMzEuMiA4LjIgNDggMCA3OS41LTY0LjUgMTQ0LTE0NCAxNDQtOC44IDAtMTYtNy4yLTE2LTE2bDAtMTUyLjJjLTE1IDUuMy0zMS4yIDguMi00OCA4LjItNzkuNSAwLTE0NC02NC41LTE0NC0xNDQgMC04LjggNy4yLTE2IDE2LTE2bDE1Mi4yIDBjLTUuMy0xNS04LjItMzEuMi04LjItNDh6bTk2IDE0NGEzMiAzMiAwIDEgMCAwLTY0IDMyIDMyIDAgMSAwIDAgNjR6Il19LFBBdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJjcm93IixpY29uOls2NDAsNTEyLFtdLCJmNTIwIiwiTTQ1Ni41IDBjLTQ4LjYgMC04OCAzOS40LTg4IDg4bDAgMzYtMzU1LjIgMjY2LjRDLS44IDQwMS0zLjcgNDIxIDYuOSA0MzUuMnMzMC42IDE3IDQ0LjggNi40bDc2LjgtNTcuNiAxMzEuMyAwIDQ2LjYgMTEzLjEgMSAyLjJjNS43IDEwLjcgMTguOCAxNS41IDMwLjMgMTAuOHMxNy4zLTE3LjMgMTMuOS0yOWwtLjgtMi4zLTM5LjEtOTQuOSA0MC45IDBjMS4xIDAgMi4yIDAgMy4yIDBsNDYuNiAxMTMuMiAxIDIuMmM1LjcgMTAuNyAxOC44IDE1LjUgMzAuMyAxMC44czE3LjMtMTcuMyAxMy45LTI5bC0uOC0yLjMtNDItMTAyQzQ4NS4zIDM1NC4xIDU0NC41IDI4MCA1NDQuNSAxOTJsMC03MiA4MC41LTIwLjFjOC42LTIuMSAxMy44LTEwLjggMTEuNi0xOS40LTcuMS0yOC41LTMyLjctNDguNS02Mi4xLTQ4LjVsLTUwLjEgMEM1MDguMiAxMi41IDQ4My44IDAgNDU2LjUgMHptMCA2NGEyNCAyNCAwIDEgMSAwIDQ4IDI0IDI0IDAgMSAxIDAtNDh6Il19LE5BdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJmaWxlLWNpcmNsZS1jaGVjayIsaWNvbjpbNTc2LDUxMixbXSwiZTVhMCIsIk05NiAwQzYwLjcgMCAzMiAyOC43IDMyIDY0bDAgMzg0YzAgMzUuMyAyOC43IDY0IDY0IDY0bDE4MCAwYy0yMi43LTMxLjUtMzYtNzAuMi0zNi0xMTIgMC0xMDAuNiA3Ny40LTE4My4yIDE3Ni0xOTEuM2wwLTM4LjFjMC0xNy02LjctMzMuMy0xOC43LTQ1LjNMMjkwLjcgMTguN0MyNzguNyA2LjcgMjYyLjUgMCAyNDUuNSAwTDk2IDB6TTM1Ny41IDE3NkwyNjQgMTc2Yy0xMy4zIDAtMjQtMTAuNy0yNC0yNEwyNDAgNTguNSAzNTcuNSAxNzZ6TTU3NiA0MDBhMTQ0IDE0NCAwIDEgMCAtMjg4IDAgMTQ0IDE0NCAwIDEgMCAyODggMHptLTg2LjYtNjAuOWM3LjEgNS4yIDguNyAxNS4yIDMuNSAyMi4zbC02NCA4OGMtMi44IDMuOC03IDYuMi0xMS43IDYuNXMtOS4zLTEuMy0xMi42LTQuNmwtNDAtNDBjLTYuMi02LjItNi4yLTE2LjQgMC0yMi42czE2LjQtNi4yIDIyLjYgMGwyNi44IDI2LjggNTMtNzIuOWM1LjItNy4xIDE1LjItOC43IDIyLjQtMy41eiJdfSxCZz17cHJlZml4OiJmYXMiLGljb25OYW1lOiJsaW5rLXNsYXNoIixpY29uOls1NzYsNTEyLFsiY2hhaW4tYnJva2VuIiwiY2hhaW4tc2xhc2giLCJ1bmxpbmsiXSwiZjEyNyIsIk00MS0yNC45Yy05LjQtOS40LTI0LjYtOS40LTMzLjkgMFMtMi4zLS4zIDcgOS4xbDUyOCA1MjhjOS40IDkuNCAyNC42IDkuNCAzMy45IDBzOS40LTI0LjYgMC0zMy45bC0xMjItMTIyYzQuMi0zLjQgOC4zLTcuMSAxMi4xLTEwLjlsNzEuMS03MS4xYzI5LjMtMjkuMyA0NS44LTY5LjEgNDUuOC0xMTAuNiAwLTg2LjQtNzAtMTU2LjUtMTU2LjUtMTU2LjUtMzcuMyAwLTczLjEgMTMuMy0xMDEuMyAzNy4yIDIwLjMgMTAuMSAzOC43IDIzLjUgNTQuNSAzOS41IDE0LjEtOC4zIDMwLjItMTIuNyA0Ni44LTEyLjcgNTEuMSAwIDkyLjUgNDEuNCA5Mi41IDkyLjUgMCAyNC41LTkuNyA0OC0yNy4xIDY1LjRsLTcxLjEgNzEuMWMtMy45IDMuOS04LjEgNy40LTEyLjYgMTAuNWwtNDcuNS00Ny41YzE2LjUtLjkgMjkuNy0xNC40IDMwLjItMzEuMSAwLTEuMyAwLTIuNiAwLTMuOSAwLTg2LjMtNjkuOS0xNTYuOS0xNTYuNS0xNTYuOS0xOS4yIDAtMzcuOSAzLjUtNTUuNSAxMC4yTDQxLTI0Ljl6TTIyNS45IDE2MGMuNiAwIDEuMSAwIDEuNyAwIDE1LjEgMCAyOS41IDMuNyA0Mi4xIDEwLjIgMS44IDEuMiAzLjYgMi4zIDUuNSAzLjEgMjYuOCAxNi4zIDQ0LjggNDUuOSA0NC44IDc5LjYgMCAuNCAwIC44IDAgMS4yTDIyNS45IDE2MHpNMzQ2LjIgNDE2TDE5MiAyNjEuOGMxLjIgODQuNiA2OS42IDE1Mi45IDE1NC4xIDE1NC4xek0xMzkuNyAyMDkuNWwtNDUuMy00NS4zLTQ4LjYgNDguNmMtMjkuMyAyOS4zLTQ1LjggNjkuMS00NS44IDExMC42IDAgODYuNCA3MCAxNTYuNSAxNTYuNSAxNTYuNSAzNy4yIDAgNzMuMS0xMy4zIDEwMS4zLTM3LjItMjAuMy0xMC4xLTM4LjgtMjMuNS01NC42LTM5LjUtMTQgOC4yLTMwLjEgMTIuNi00Ni43IDEyLjYtNTEuMSAwLTkyLjUtNDEuNC05Mi41LTkyLjUgMC0yNC41IDkuNy00OCAyNy4xLTY1LjRsNDguNi00OC42eiJdfSxGQXQ9QmcsT0F0PUJnLFJBdD1CZyxIZz17cHJlZml4OiJmYXMiLGljb25OYW1lOiJhcnJvdy1yb3RhdGUtcmlnaHQiLGljb246WzUxMiw1MTIsWzg2MzUsImFycm93LXJpZ2h0LXJvdGF0ZSIsImFycm93LXJvdGF0ZS1mb3J3YXJkIiwicmVkbyJdLCJmMDFlIiwiTTQzNi43IDc0LjdMNDQ4IDg1LjQgNDQ4IDMyYzAtMTcuNyAxNC4zLTMyIDMyLTMyczMyIDE0LjMgMzIgMzJsMCAxMjhjMCAxNy43LTE0LjMgMzItMzIgMzJsLTEyOCAwYy0xNy43IDAtMzItMTQuMy0zMi0zMnMxNC4zLTMyIDMyLTMybDQ3LjkgMC03LjYtNy4yYy0uMi0uMi0uNC0uNC0uNi0uNi03NS03NS0xOTYuNS03NS0yNzEuNSAwcy03NSAxOTYuNSAwIDI3MS41IDE5Ni41IDc1IDI3MS41IDBjOC4yLTguMiAxNS41LTE2LjkgMjEuOS0yNi4xIDEwLjEtMTQuNSAzMC4xLTE4IDQ0LjYtNy45czE4IDMwLjEgNy45IDQ0LjZjLTguNSAxMi4yLTE4LjIgMjMuOC0yOS4xIDM0LjctMTAwIDEwMC0yNjIuMSAxMDAtMzYyIDBTLTI1IDE3NSA3NSA3NWM5OS45LTk5LjkgMjYxLjctMTAwIDM2MS43LS4zeiJdfSxCQXQ9SGcsSEF0PUhnLHFBdD1IZyxfNGU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToicGVuLWNsaXAiLGljb246WzUxMiw1MTIsWyJwZW4tYWx0Il0sImYzMDUiLCJNNDA0IDBjMTkuMiAwIDM3LjYgNy42IDUxLjEgMjEuMmwzNS43IDM1LjdDNTA0LjQgNzAuNCA1MTIgODguOCA1MTIgMTA4cy03LjYgMzcuNi0yMS4yIDUxLjFMNDQ1LjkgMjA0IDMwOCA2Ni4xIDM1Mi45IDIxLjJDMzY2LjQgNy42IDM4NC44IDAgNDA0IDB6TTI3NC4xIDEwMGwwIDAgMTM3LjkgMTM3LjktMjE1LjEgMjE1LjFjLTEwLjcgMTAuNy0yNC4xIDE4LjUtMzguNyAyMi42TDMwLjQgNTExLjFjLTguMyAyLjMtMTcuMyAwLTIzLjQtNi4ycy04LjUtMTUuMS02LjItMjMuNEwzNi40IDM1My44YzQuMS0xNC42IDExLjgtMjcuOSAyMi42LTM4LjdMMjQwLjEgMTMzLjkgMjIzIDExNi45Yy05LjQtOS40LTI0LjYtOS40LTMzLjkgMEw4OSAyMTdjLTkuNCA5LjQtMjQuNiA5LjQtMzMuOSAwcy05LjQtMjQuNiAwLTMzLjlMMTU1LjEgODIuOWMyOC4xLTI4LjEgNzMuNy0yOC4xIDEwMS44IDBMMjc0LjEgMTAweiJdfSxqQXQ9XzRlLFZBdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJkb29yLWNsb3NlZCIsaWNvbjpbNDQ4LDUxMixbMTI4NjgyXSwiZjUyYSIsIk0zMiA2NEMzMiAyOC43IDYwLjcgMCA5NiAwTDM1MiAwYzM1LjMgMCA2NCAyOC43IDY0IDY0bDAgMzg0YzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMyTDMyIDUxMmMtMTcuNyAwLTMyLTE0LjMtMzItMzJzMTQuMy0zMiAzMi0zMkwzMiA2NHpNMzIwIDI4OGEzMiAzMiAwIDEgMCAwLTY0IDMyIDMyIDAgMSAwIDAgNjR6Il19LFJEPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImFycm93LWRvd24td2lkZS1zaG9ydCIsaWNvbjpbNTc2LDUxMixbInNvcnQtYW1vdW50LWFzYyIsInNvcnQtYW1vdW50LWRvd24iXSwiZjE2MCIsIk0yNDYuNiAzNzQuNmwtOTYgOTZjLTEyLjUgMTIuNS0zMi44IDEyLjUtNDUuMyAwbC05Ni05NmMtMTIuNS0xMi41LTEyLjUtMzIuOCAwLTQ1LjNzMzIuOC0xMi41IDQ1LjMgMEw5NiAzNzAuNyA5NiA2NGMwLTE3LjcgMTQuMy0zMiAzMi0zMnMzMiAxNC4zIDMyIDMybDAgMzA2LjcgNDEuNC00MS40YzEyLjUtMTIuNSAzMi44LTEyLjUgNDUuMyAwczEyLjUgMzIuOCAwIDQ1LjN6TTMyMCA0ODBjLTE3LjcgMC0zMi0xNC4zLTMyLTMyczE0LjMtMzIgMzItMzJsMzIgMGMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMmwtMzIgMHptMC0xMjhjLTE3LjcgMC0zMi0xNC4zLTMyLTMyczE0LjMtMzIgMzItMzJsOTYgMGMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMmwtOTYgMHptMC0xMjhjLTE3LjcgMC0zMi0xNC4zLTMyLTMyczE0LjMtMzIgMzItMzJsMTYwIDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJsLTE2MCAwem0wLTEyOGMtMTcuNyAwLTMyLTE0LjMtMzItMzJzMTQuMy0zMiAzMi0zMmwyMjQgMGMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMkwzMjAgOTZ6Il19LFVBdD1SRCxXQXQ9UkQsR0F0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImNhcmV0LWRvd24iLGljb246WzMyMCw1MTIsW10sImYwZDciLCJNMTQwLjMgMzc2LjhjMTIuNiAxMC4yIDMxLjEgOS41IDQyLjgtMi4ybDEyOC0xMjhjOS4yLTkuMiAxMS45LTIyLjkgNi45LTM0LjlTMzAxLjQgMTkyIDI4OC41IDE5MmwtMjU2IDBjLTEyLjkgMC0yNC42IDcuOC0yOS42IDE5LjhTLjcgMjM3LjUgOS45IDI0Ni42bDEyOCAxMjggMi40IDIuMnoiXX0sWUF0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImsiLGljb246WzMyMCw1MTIsWzEwN10sIjRiIiwiTTMxMSA4Ni4zYzEyLjMtMTIuNyAxMi0zMi45LS43LTQ1LjJzLTMyLjktMTItNDUuMiAuN0MxNDMuNCAxNjcuMiA3Ni40IDIzNi4zIDY0IDI0OUw2NCA2NGMwLTE3LjctMTQuMy0zMi0zMi0zMlMwIDQ2LjMgMCA2NEwwIDQ0OGMwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMybDAtMTA3IDY0LjctNjYuNyAxMzMgMTkyYzEwLjEgMTQuNSAzMCAxOC4xIDQ0LjUgOC4xczE4LjEtMzAgOC4xLTQ0LjVMMTc0LjEgMjI3LjQgMzExIDg2LjN6Il19LEw0ZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJjaGVjay10by1zbG90IixpY29uOls1NzYsNTEyLFsidm90ZS15ZWEiXSwiZjc3MiIsIk01NTIgMjg4YzEzLjMgMCAyNCAxMC43IDI0IDI0bDAgMTA0YzAgMzUuMy0yOC43IDY0LTY0IDY0TDY0IDQ4MGMtMzUuMyAwLTY0LTI4LjctNjQtNjRMMCAzMTJjMC0xMy4zIDEwLjctMjQgMjQtMjRzMjQgMTAuNyAyNCAyNGwwIDEwNGMwIDguOCA3LjIgMTYgMTYgMTZsNDQ4IDBjOC44IDAgMTYtNy4yIDE2LTE2bDAtMTA0YzAtMTMuMyAxMC43LTI0IDI0LTI0ek00MTYgMzJjMzUuMyAwIDY0IDI4LjcgNjQgNjRsMCAyMjRjMCAzNS4zLTI4LjcgNjQtNjQgNjRsLTI1NiAwYy0zNS4zIDAtNjQtMjguNy02NC02NEw5NiA5NmMwLTM1LjMgMjguNy02NCA2NC02NGwyNTYgMHptLTM3LjEgODQuNmMtMTAuNy03LjgtMjUuNy01LjQtMzMuNSA1LjNsLTg1LjYgMTE3LjctMjYuNS0yNy40Yy05LjItOS41LTI0LjQtOS44LTMzLjktLjYtOS41IDkuMi05LjggMjQuNC0uNiAzMy45bDQ2LjQgNDhjNC45IDUuMSAxMS44IDcuOCAxOC45IDcuM3MxMy42LTQuMSAxNy44LTkuOEwzODQuMiAxNTAuMWM3LjgtMTAuNyA1LjQtMjUuNy01LjMtMzMuNXoiXX0sWkF0PUw0ZSxYQXQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZmlzaC1maW5zIixpY29uOls1NzYsNTEyLFtdLCJlNGYyIiwiTTI3NS4yIDM4LjRjLTEwLjYtOC0yNS04LjUtMzYuMy0xLjVTMjIyIDU3LjMgMjI0LjYgNzAuM2w5LjcgNDguNmMtMTkuNCA5LTM2LjkgMTkuOS01Mi40IDMxLjUtMTUuMyAxMS41LTI5IDIzLjktNDAuNyAzNi4zTDQ4LjEgMTMyLjRjLTEyLjUtNy4zLTI4LjQtNS4zLTM4LjcgNC45cy0xMi40IDI2LTUuMyAzOC42TDUwIDI1NiA0LjIgMzM2LjFjLTcuMiAxMi42LTUgMjguNCA1LjMgMzguNnMyNi4xIDEyLjIgMzguNyA0LjlsOTMuMS01NC4zYzExLjggMTIuMyAyNS40IDI0LjggNDAuNyAzNi4zIDE1LjUgMTEuNiAzMyAyMi41IDUyLjQgMzEuNWwtOS43IDQ4LjZjLTIuNiAxMyAzLjEgMjYuMyAxNC4zIDMzLjNzMjUuNiA2LjUgMzYuMy0xLjVsNzcuNi01OC4yYzU0LjktNCAxMDEuNS0yNyAxMzcuMi01My44IDM5LjItMjkuNCA2Ny4yLTY0LjcgODEuNi04OS41IDUuOC05LjkgNS44LTIyLjIgMC0zMi4xLTE0LjQtMjQuOC00Mi41LTYwLjEtODEuNi04OS41LTM1LjgtMjYuOC04Mi4zLTQ5LjgtMTM3LjItNTMuOEwyNzUuMiAzOC40ek0zODQgMjU2YTMyIDMyIDAgMSAxIDY0IDAgMzIgMzIgMCAxIDEgLTY0IDB6Il19LFFBdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJjb21wcmVzcyIsaWNvbjpbNDQ4LDUxMixbXSwiZjA2NiIsIk0xNjAgNjRjMC0xNy43LTE0LjMtMzItMzItMzJTOTYgNDYuMyA5NiA2NGwwIDY0LTY0IDBjLTE3LjcgMC0zMiAxNC4zLTMyIDMyczE0LjMgMzIgMzIgMzJsOTYgMGMxNy43IDAgMzItMTQuMyAzMi0zMmwwLTk2ek0zMiAzMjBjLTE3LjcgMC0zMiAxNC4zLTMyIDMyczE0LjMgMzIgMzIgMzJsNjQgMCAwIDY0YzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJsMC05NmMwLTE3LjctMTQuMy0zMi0zMi0zMmwtOTYgMHpNMzUyIDY0YzAtMTcuNy0xNC4zLTMyLTMyLTMycy0zMiAxNC4zLTMyIDMybDAgOTZjMCAxNy43IDE0LjMgMzIgMzIgMzJsOTYgMGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMmwtNjQgMCAwLTY0ek0zMjAgMzIwYy0xNy43IDAtMzIgMTQuMy0zMiAzMmwwIDk2YzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJsMC02NCA2NCAwYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMybC05NiAweiJdfSxBNGU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiYXJyb3ctdXAtYS16IixpY29uOls1MTIsNTEyLFsic29ydC1hbHBoYS11cCJdLCJmMTVlIiwiTTQxMi42IDQ5LjdDNDA3LjIgMzguOCAzOTYuMSAzMiAzODQgMzJzLTIzLjIgNi44LTI4LjYgMTcuN2MtNTAuNyAxMDEuMy03Ny4zIDE1NC43LTgwIDE2MC03LjkgMTUuOC0xLjUgMzUgMTQuMyA0Mi45czM1IDEuNSA0Mi45LTE0LjNsNy4yLTE0LjMgODguNCAwIDcuMiAxNC4zYzcuOSAxNS44IDI3LjEgMjIuMiA0Mi45IDE0LjNzMjIuMi0yNy4xIDE0LjMtNDIuOWMtMi43LTUuMy0yOS4zLTU4LjctODAtMTYwek0zODQgMTM1LjZsMjAuMiA0MC40LTQwLjQgMCAyMC4yLTQwLjR6TTI4OCAzMjBjMCAxNy43IDE0LjMgMzIgMzIgMzJsNTAuNyAwLTczLjQgNzMuNGMtOS4yIDkuMi0xMS45IDIyLjktNi45IDM0LjlTMzA3LjEgNDgwIDMyMCA0ODBsMTI4IDBjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJsLTUwLjcgMCA3My40LTczLjRjOS4yLTkuMiAxMS45LTIyLjkgNi45LTM0LjlTNDYwLjkgMjg4IDQ0OCAyODhsLTEyOCAwYy0xNy43IDAtMzIgMTQuMy0zMiAzMnpNMTUwLjYgNDEuNGMtMTIuNS0xMi41LTMyLjgtMTIuNS00NS4zIDBsLTgwIDgwYy0xMi41IDEyLjUtMTIuNSAzMi44IDAgNDUuM3MzMi44IDEyLjUgNDUuMyAwTDk2IDE0MS4zIDk2IDQ0OGMwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMybDAtMzA2LjcgMjUuNCAyNS40YzEyLjUgMTIuNSAzMi44IDEyLjUgNDUuMyAwczEyLjUtMzIuOCAwLTQ1LjNsLTgwLTgweiJdfSxKQXQ9QTRlLEtBdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJ1c2VyLWdyYWR1YXRlIixpY29uOls0NDgsNTEyLFtdLCJmNTAxIiwiTTI0MS4zLTEzYy0xMS40LTIuMy0yMy4xLTIuMy0zNC41IDBMMTkuMyAyNC41QzguMSAyNi43IDAgMzYuNiAwIDQ4IDAgNTguMyA2LjUgNjcuMyAxNiA3MC42TDE2IDE0NCAuMyAyMjIuNmMtLjIgLjktLjMgMS45LS4zIDIuOSAwIDggNi41IDE0LjYgMTQuNiAxNC42bDM0LjkgMGM4IDAgMTQuNi02LjUgMTQuNi0xNC42IDAtMS0uMS0xLjktLjMtMi45TDQ4IDE0NCA0OCA3Ny4zIDk2IDg2LjkgOTYgMTQ0YzAgNzAuNyA1Ny4zIDEyOCAxMjggMTI4czEyOC01Ny4zIDEyOC0xMjhsMC01Ny4xIDc2LjctMTUuM0M0MzkuOSA2OS4zIDQ0OCA1OS40IDQ0OCA0OHMtOC4xLTIxLjMtMTkuMy0yMy41TDI0MS4zLTEzek0yMjQgMjI0Yy00NC4yIDAtODAtMzUuOC04MC04MGwxNjAgMGMwIDQ0LjItMzUuOCA4MC04MCA4MHpNMTIwLjEgMzIwLjFDNTguNyAzNDguMyAxNiA0MTAuMyAxNiA0ODIuMyAxNiA0OTguNyAyOS4zIDUxMiA0NS43IDUxMmwxNTQuMyAwIDAtMTQ2LTU3LjQtNDNjLTYuNS00LjktMTUuMi02LjItMjIuNi0yLjh6TTI0OCA1MTJsMTU0LjMgMGMxNi40IDAgMjkuNy0xMy4zIDI5LjctMjkuNyAwLTcyLTQyLjctMTM0LTEwNC4xLTE2Mi4xLTcuNC0zLjQtMTYuMS0yLjEtMjIuNiAyLjhsLTU3LjQgNDMgMCAxNDZ6Il19LGVEdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJmaWxlLWNvZGUiLGljb246WzM4NCw1MTIsW10sImYxYzkiLCJNMCA2NEMwIDI4LjcgMjguNyAwIDY0IDBMMjEzLjUgMGMxNyAwIDMzLjMgNi43IDQ1LjMgMTguN0wzNjUuMyAxMjUuM2MxMiAxMiAxOC43IDI4LjMgMTguNyA0NS4zTDM4NCA0NDhjMCAzNS4zLTI4LjcgNjQtNjQgNjRMNjQgNTEyYy0zNS4zIDAtNjQtMjguNy02NC02NEwwIDY0em0yMDgtNS41bDAgOTMuNWMwIDEzLjMgMTAuNyAyNCAyNCAyNEwzMjUuNSAxNzYgMjA4IDU4LjV6TTE1NC4yIDI5NS42YzguNi0xMC4xIDcuNS0yNS4yLTIuNi0zMy44cy0yNS4yLTcuNS0zMy44IDIuNmwtNDggNTZjLTcuNyA5LTcuNyAyMi4yIDAgMzEuMmw0OCA1NmM4LjYgMTAuMSAyMy44IDExLjIgMzMuOCAyLjZzMTEuMi0yMy44IDIuNi0zMy44bC0zNC42LTQwLjQgMzQuNi00MC40em0xMTItMzEuMmMtOC42LTEwLjEtMjMuOC0xMS4yLTMzLjgtMi42cy0xMS4yIDIzLjgtMi42IDMzLjhsMzQuNiA0MC40LTM0LjYgNDAuNGMtOC42IDEwLjEtNy41IDI1LjIgMi42IDMzLjhzMjUuMiA3LjUgMzMuOC0yLjZsNDgtNTZjNy43LTkgNy43LTIyLjIgMC0zMS4ybC00OC01NnoiXX0sdER0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InNvYXAiLGljb246WzUxMiw1MTIsWzEyOTUzMl0sImUwNmUiLCJNMjA4LTMyYTQ4IDQ4IDAgMSAxIDAgOTYgNDggNDggMCAxIDEgMC05NnpNMzIwIDk2YTY0IDY0IDAgMSAxIDAgMTI4IDY0IDY0IDAgMSAxIDAtMTI4ek0zNTIgMGEzMiAzMiAwIDEgMSA2NCAwIDMyIDMyIDAgMSAxIC02NCAwek05NiAxNjBsMTEyIDBjMCAyMy44IDcuNCA0NS45IDIwLjEgNjRMMTYwIDIyNGMtNTMgMC05NiA0My05NiA5NnM0MyA5NiA5NiA5NmwxOTIgMGM1MyAwIDk2LTQzIDk2LTk2IDAtMzUuMS0xOC45LTY1LjktNDctODIuNiAxOS0xOS44IDMwLjctNDYuNiAzMS03Ni4xIDQ1LjQgNy42IDgwIDQ3LjEgODAgOTQuN2wwIDEyOGMwIDUzLTQzIDk2LTk2IDk2TDk2IDQ4MGMtNTMgMC05Ni00My05Ni05NkwwIDI1NmMwLTUzIDQzLTk2IDk2LTk2em02NCAxMTJsMTkyIDBjMjYuNSAwIDQ4IDIxLjUgNDggNDhzLTIxLjUgNDgtNDggNDhsLTE5MiAwYy0yNi41IDAtNDgtMjEuNS00OC00OHMyMS41LTQ4IDQ4LTQ4eiJdfSxyRHQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToicmVjeWNsZSIsaWNvbjpbNTEyLDUxMixbOTg0Miw5ODUwLDk4NTFdLCJmMWI4IiwiTTE1Mi4zIDYwQzE5OC41LTIwIDMxNC0yMCAzNjAuMiA2MGwzNy4zIDY0LjYgMjcuNy0xNmM4LjQtNC45IDE4LjktNC4yIDI2LjYgMS43czExLjEgMTUuOSA4LjYgMjUuM0w0MzYuOSAyMjNjLTMuNCAxMi44LTE2LjYgMjAuNC0yOS40IDE3bC04Ny40LTIzLjRjLTkuNC0yLjUtMTYuMy0xMC40LTE3LjYtMjBzMy40LTE5LjEgMTEuOC0yMy45bDI3LjctMTYtMzcuMy02NC42Yy0yMS42LTM3LjMtNzUuNC0zNy4zLTk3IDBsLTUuMyA5LjFjLTguOCAxNS4zLTI4LjQgMjAuNS00My43IDExLjdTMTM4LjIgODQuNSAxNDcgNjkuMWw1LjMtOS4xek00NDkuNyAyNzkuMWMxNS4zLTguOCAzNC45LTMuNiA0My43IDExLjdsNS4zIDkuMWM0Ni4yIDgwLTExLjUgMTgwLTEwMy45IDE4MGwtNzQuNiAwIDAgMzJjMCA5LjctNS44IDE4LjUtMTQuOCAyMi4ycy0xOS4zIDEuNy0yNi4yLTUuMmwtNjQtNjRjLTkuNC05LjQtOS40LTI0LjYgMC0zMy45bDY0LTY0YzYuOS02LjkgMTcuMi04LjkgMjYuMi01LjJzMTQuOCAxMi41IDE0LjggMjIuMmwwIDMyIDc0LjYgMGM0My4xIDAgNzAuMS00Ni43IDQ4LjUtODRsLTUuMy05LjFjLTguOC0xNS4zLTMuNi0zNC45IDExLjctNDMuN3pNNTEgMjM1LjRsLTI3LjctMTZjLTguNC00LjktMTMuMS0xNC4zLTExLjgtMjMuOXM4LjItMTcuNSAxNy42LTIwTDExNi41IDE1MmMxMi44LTMuNCAyNiA0LjIgMjkuNCAxN2wyMy40IDg3LjRjMi41IDkuNC0uOSAxOS4zLTguNiAyNS4zcy0xOC4yIDYuNi0yNi42IDEuN2wtMjcuNy0xNi0zNy4zIDY0LjZjLTIxLjYgMzcuMyA1LjQgODQgNDguNSA4NGwxMC42IDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJsLTEwLjYgMEMyNS4zIDQ4MC0zMi40IDM4MCAxMy44IDMwMEw1MSAyMzUuNHoiXX0sRDRlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImZhY2UtZ3Jpbi13aW5rIixpY29uOls1MTIsNTEyLFsiZ3Jpbi13aW5rIl0sImY1OGMiLCJNMjU2IDUxMmEyNTYgMjU2IDAgMSAwIDAtNTEyIDI1NiAyNTYgMCAxIDAgMCA1MTJ6TTM4Ni43IDMwOC45YzExLjktMy43IDIzLjkgNi4zIDE5LjYgMTguMS0yMi40IDYxLjMtODEuMyAxMDUuMS0xNTAuMyAxMDUuMVMxMjguMSAzODguMiAxMDUuNyAzMjYuOWMtNC4zLTExLjggNy43LTIxLjggMTkuNi0xOC4xIDM5LjIgMTIuMiA4My43IDE5LjEgMTMwLjcgMTkuMXM5MS41LTYuOSAxMzAuNy0xOS4xek0zMjggMTk2Yy0xMSAwLTIwIDktMjAgMjBzLTkgMjAtMjAgMjAtMjAtOS0yMC0yMGMwLTMzLjEgMjYuOS02MCA2MC02MGwxNiAwYzMzLjEgMCA2MCAyNi45IDYwIDYwIDAgMTEtOSAyMC0yMCAyMHMtMjAtOS0yMC0yMC05LTIwLTIwLTIwbC0xNiAwek0xNzYgMTc2YTMyIDMyIDAgMSAxIDAgNjQgMzIgMzIgMCAxIDEgMC02NHoiXX0saUR0PUQ0ZSxCRD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJ3YXRlci1sYWRkZXIiLGljb246WzY0MCw1MTIsWyJsYWRkZXItd2F0ZXIiLCJzd2ltbWluZy1wb29sIl0sImY1YzUiLCJNMzc0LjUgNDA1LjdjMzguNC0yOSA5MC41LTI5IDEyOSAwIDE2LjkgMTIuNyAzMi45IDIxLjUgNDcuOCAyNC42IDEzLjcgMi44IDI3LjQgLjkgNDIuMy0xMC4zIDEwLjYtOCAyNS42LTUuOSAzMy42IDQuN3M1LjggMjUuNy00LjggMzMuNmMtMjYuNCAxOS45LTU0LjIgMjQuNC04MC43IDE5LjEtMjUuMy01LjEtNDguMS0xOC45LTY3LjItMzMuMy0yMS4zLTE2LjEtNDkuOS0xNi4xLTcxLjIgMC0yNC4yIDE4LjMtNTIuMyAzNS45LTgzLjQgMzUuOXMtNTkuMS0xNy43LTgzLjMtMzUuOWMtMjEuMy0xNi4xLTQ5LjktMTYuMS03MS4yIDAtMjMuOCAxNy45LTU0LjEgMzUuNS04OC4xIDM1LjMtMjAuNC0uMS00MC43LTYuNy01OS44LTIxLjEtMTAuNi04LTEyLjctMjMtNC43LTMzLjZzMjMtMTIuNyAzMy42LTQuN2MxMS4zIDguNSAyMS42IDExLjQgMzEuMiAxMS41IDE3LjYgLjEgMzcuMy05LjQgNTguOS0yNS43IDM4LjQtMjkgOTAuNi0yOSAxMjkgMCAyNCAxOC4xIDQwLjcgMjYuMyA1NC41IDI2LjNzMzAuNS04LjIgNTQuNS0yNi4zek01MTEuOCAzMmM0OC4zIDAgODkgMzYgOTUgODMuOWwxIDguMmMyLjIgMTcuNS0xMC4yIDMzLjUtMjcuOCAzNS43cy0zMy41LTEwLjItMzUuNy0yNy44bC0xLTguMmMtMi0xNS45LTE1LjUtMjcuOC0zMS41LTI3LjgtMTcuNSAwLTMxLjggMTQuMi0zMS44IDMxLjhsMCAyMTEuOGMtMjMuMS01LjEtNDQuOS00LjQtNjQtLjRsMC01MS4yLTE5MiAwIDAgNDguN2MtNS4zLS41LTEwLjctLjgtMTYtLjctMTYuMiAuMS0zMi40IDIuNy00OCA4bDAtMjE2LjJjMC01Mi45IDQyLjktOTUuOCA5NS43LTk1LjggNDguMyAwIDg5IDM2IDk1IDgzLjlsMSA4LjJjMi4yIDE3LjUtMTAuMiAzMy41LTI3LjggMzUuN3MtMzMuNS0xMC4yLTM1LjctMjcuOGwtMS04LjJjLTItMTUuOS0xNS41LTI3LjgtMzEuNS0yNy44LTE3LjUgMC0zMS43IDE0LjItMzEuNyAzMS44bDAgOTYuMiAxOTIgMCAwLTk2LjJDNDE2IDc0LjkgNDU4LjkgMzIgNTExLjggMzJ6Il19LGFEdD1CRCxuRHQ9QkQsb0R0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImdlbWluaSIsaWNvbjpbNDQ4LDUxMixbXSwiZTg0OSIsIk0zOTUuNCA4YzEzLjItMTEuNyAzMy4zLTEwLjUgNDUuMSAyLjcgMTEuNyAxMy4yIDEwLjUgMzMuNC0yLjcgNDUuMi0yLjcgMi40LTIzLjEgMTkuOC01OC4zIDM2LjgtOC4yIDQtMTcuMiA3LjktMjcgMTEuNmwwIDMwMy4yYzkuOCAzLjggMTguOCA3LjYgMjcgMTEuNiAxOC4yIDguOCAzMi40IDE3LjcgNDIuMiAyNC41IDMgMi4xIDUuNSA0LjEgNy43IDUuNyAxLjIgLjkgMi4zIDEuNiAzLjIgMi40IC4yIC4xIC4zIC4yIC41IC40IDEuMyAxLjEgMi40IDIgMy4yIDIuNiAuNCAuMyAuNyAuNiAuOSAuOCAuMSAuMSAuMyAuMiAuMyAuMyAwIDAgLjEgLjEgLjEgLjFsLjEgMCAwIDAgMCAwYzMuMyAyLjkgNS45IDYuNCA3LjcgMTAuMiA1LjQgMTEuMyAzLjggMjUuMS01IDM1LS4zIC40LS43IC43LTEuMSAxLjEtMTEuOSAxMi4yLTMxLjIgMTMuMS00NCAxLjctLjMtLjMtMS41LTEuMy0zLjUtMi44LS40LS4zLS45LS43LTEuNS0xLjEtMS45LTEuNC00LjItMy4xLTcuMS01LjEtMi4yLTEuNS00LjctMy4xLTcuNC00LjgtNi42LTQuMS0xNC44LTguOC0yNC40LTEzLjUtNy40LTMuNi0xNS42LTcuMi0yNC43LTEwLjUtMTMuNi01LjEtMjktOS42LTQ2LjEtMTIuOS01LjctMS4xLTExLjYtMi4xLTE3LjctMi44LTEyLjEtMS42LTI1LTIuNS0zOC42LTIuNS01NC4yIDAtOTcuNCAxNC40LTEyNyAyOC44LTMuNCAxLjYtNi41IDMuMy05LjUgNC45LTUuMSAyLjgtOS43IDUuNC0xMy44IDcuOS0zLjMgMi4xLTYuMyA0LTguOSA1LjctMS43IDEuMi0zLjIgMi4zLTQuNiAzLjMtMS45IDEuNC0zLjUgMi41LTQuNiAzLjQtMS40IDEuMS0yLjIgMS44LTIuNSAyLTEzLjIgMTEuNy0zMy4zIDEwLjUtNDUuMS0yLjgtMi4yLTIuNS00LTUuMi01LjItOC4xcy0yLjEtNS45LTIuNS04LjljLTEuNC0xMC4yIDIuMi0yMC44IDEwLjQtMjguMiAuMi0uMiAuNi0uNSAxLjItMSAuMS0uMSAuMi0uMiAuMy0uM2wzLjItMi42YzEuNy0xLjMgMy43LTIuOCA2LjItNC42IDEuNi0xLjIgMy4zLTIuNSA1LjItMy44IDkuOC02LjggMjQtMTUuNyA0Mi4yLTI0LjUgOC4yLTQgMTcuMi03LjkgMjctMTEuNmwwLTMwMy4yQzg2LjcgMTAwLjYgNzcuNyA5Ni43IDY5LjUgOTIuOCAzNC4zIDc1LjcgMTQgNTguMyAxMS4zIDU1LjktMS45IDQ0LjItMy4xIDI0IDguNiAxMC43IDIwLjMtMi41IDQwLjUtMy43IDUzLjcgOCA1NS4xIDkuMiA3MC43IDIyLjIgOTcuNSAzNS4yIDEyNy4xIDQ5LjYgMTcwLjMgNjQgMjI0LjUgNjRzOTcuNC0xNC40IDEyNy0yOC44YzI2LjgtMTMgNDIuNC0yNiA0My44LTI3LjJ6TTI4OC41IDEyMi4zYy0xOS43IDMuNS00MSA1LjctNjQgNS43cy00NC4zLTIuMi02NC01LjdsMCAyNjcuNGMxMi42LTIuMyAyNS45LTQgMzkuOS00LjkgNy44LS41IDE1LjgtLjggMjQtLjggMjMgMCA0NC40IDIuMiA2NCA1LjdsMC0yNjcuNHoiXX0sc0R0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InRvd2VyLWNlbGwiLGljb246WzU3Niw1MTIsW10sImU1ODUiLCJNNTkuNiA5LjhDNDcuMyA0LjggMzMuMyAxMC43IDI4LjQgMjMgMTUuMiA1NS41IDggOTAuOSA4IDEyOHM3LjIgNzIuNSAyMC40IDEwNWM1IDEyLjMgMTkgMTguMiAzMS4zIDEzLjJzMTguMi0xOSAxMy4yLTMxLjNDNjIgMTg4LjIgNTYgMTU4LjggNTYgMTI4czYtNjAuMiAxNi45LTg3YzUtMTIuMy0xLTI2LjMtMTMuMi0zMS4zem00NTYuOCAwYy0xMi4zIDUtMTguMiAxOS0xMy4yIDMxLjMgMTAuOSAyNi44IDE2LjkgNTYuMiAxNi45IDg3cy02IDYwLjItMTYuOSA4N2MtNSAxMi4zIDEgMjYuMyAxMy4yIDMxLjNzMjYuMy0xIDMxLjMtMTMuMmMxMy4xLTMyLjUgMjAuNC02Ny45IDIwLjQtMTA1cy03LjItNzIuNS0yMC40LTEwNWMtNS0xMi4zLTE5LTE4LjItMzEuMy0xMy4yek0zNDAuMSAxNjUuMmM3LjUtMTAuNSAxMS45LTIzLjMgMTEuOS0zNy4yIDAtMzUuMy0yOC43LTY0LTY0LTY0cy02NCAyOC43LTY0IDY0YzAgMTMuOSA0LjQgMjYuNyAxMS45IDM3LjJMOTguOSA0NjYuOGMtNy4zIDE2LjEtLjIgMzUuMSAxNS45IDQyLjRzMzUuMSAuMiA0Mi40LTE1LjlsMjAuNi00NS4yIDIyMC42IDAgMjAuNiA0NS4yYzcuMyAxNi4xIDI2LjMgMjMuMiA0Mi40IDE1LjlzMjMuMi0yNi4zIDE1LjktNDIuNEwzNDAuMSAxNjUuMnpNMzc2LjUgNDAwbC0xNzcgMCAyMS44LTQ4IDEzMy4zIDAgMjEuOCA0OHpNMjg4IDIwNS4zbDQ0LjggOTguNy04OS43IDAgNDQuOC05OC43ek0xNjMuMyA3My42YzUuMy0xMi4xLS4yLTI2LjMtMTIuNC0zMS42cy0yNi4zIC4yLTMxLjYgMTIuNEMxMDkuNSA3NyAxMDQgMTAxLjkgMTA0IDEyOHM1LjUgNTEgMTUuMyA3My42YzUuMyAxMi4xIDE5LjUgMTcuNyAzMS42IDEyLjRzMTcuNy0xOS41IDEyLjQtMzEuNkMxNTYgMTY1LjggMTUyIDE0Ny40IDE1MiAxMjhzNC0zNy44IDExLjMtNTQuNHpNNDU2LjcgNTQuNGMtNS4zLTEyLjEtMTkuNS0xNy43LTMxLjYtMTIuNHMtMTcuNyAxOS41LTEyLjQgMzEuNkM0MjAgOTAuMiA0MjQgMTA4LjYgNDI0IDEyOHMtNCAzNy44LTExLjMgNTQuNGMtNS4zIDEyLjEgLjIgMjYuMyAxMi40IDMxLjZzMjYuMy0uMiAzMS42LTEyLjRDNDY2LjUgMTc5IDQ3MiAxNTQuMSA0NzIgMTI4cy01LjUtNTEtMTUuMy03My42eiJdfSxsRHQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiY29sb24tc2lnbiIsaWNvbjpbMzg0LDUxMixbXSwiZTE0MCIsIk0yMTMuOCA4LjdjMTIuOSAzLjIgMjAuNyAxNi4yIDE3LjUgMjkuMWwtNC42IDE4LjVjMTUuNCAuOCAzMC40IDMuNCA0NC43IDcuNWw5LjQtMzcuNkMyODMuOSAxMy4zIDI5NyA1LjUgMzA5LjggOC43UzMzMC41IDI1IDMyNy4zIDM3LjhMMzE2IDgyLjhjMTMuNSA3LjggMjYgMTcuMSAzNy4yIDI3LjggMTIuOSAxMi4xIDEzLjQgMzIuNCAxLjMgNDUuMnMtMzIuNCAxMy40LTQ1LjIgMS4zYy0zLjEtMi45LTYuNC01LjgtOS44LTguNEwyMzkuMiAzOTBjMjYuOS00LjYgNTEuMS0xNy4xIDcwLjEtMzUuMSAxMi45LTEyLjEgMzMuMS0xMS41IDQ1LjIgMS4zczExLjUgMzMuMS0xLjMgNDUuMmMtMzQuMyAzMi4zLTgwIDUyLjgtMTMwLjUgNTQuNGwtNy41IDI5LjljLTMuMiAxMi45LTE2LjIgMjAuNy0yOS4xIDE3LjVzLTIwLjctMTYuMi0xNy41LTI5LjFsNS42LTIyLjVjLTE1LTMuMi0yOS40LTgtNDIuOS0xNC40bC0xMi4xIDQ4LjVjLTMuMiAxMi45LTE2LjIgMjAuNy0yOS4xIDE3LjVTNjkuNSA0ODcgNzIuNyA0NzQuMmwxNi02My45QzQ0LjMgMzczLjYgMTYgMzE4LjEgMTYgMjU2IDE2IDE1OS4yIDg0LjggNzguNCAxNzYuMyA2MGw4LjQtMzMuOEMxODcuOSAxMy4zIDIwMSA1LjUgMjEzLjggOC43ek0xNTggMTMyLjljLTQ2LjEgMjEuOC03OCA2OC43LTc4IDEyMy4xIDAgMzAuNSAxMCA1OC42IDI2LjkgODEuM0wxNTggMTMyLjl6TTE0Ny40IDM3My40YzEzIDcuNiAyNy4zIDEzLjEgNDIuNSAxNi4xbDY1LjktMjYzLjZjLTEyLjYtMy44LTI1LjktNS45LTM5LjgtNS45LTEuOCAwLTMuNSAwLTUuMyAuMUwxNDcuNCAzNzMuNHoiXX0sY0R0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImxhcHRvcC1maWxlIixpY29uOls1NzYsNTEyLFtdLCJlNTFkIiwiTTY0IDY0QzY0IDI4LjcgOTIuNyAwIDEyOCAwTDQxNiAwYzM1LjMgMCA2NCAyOC43IDY0IDY0bDAgNDgtNjQgMCAwLTQ4LTI4OCAwIDAgMTkyIDExMiAwIDAgOTYtMTYzLjIgMEMzNC40IDM1MiAwIDMxNy42IDAgMjc1LjIgMCAyNjQuNiA4LjYgMjU2IDE5LjIgMjU2TDY0IDI1NiA2NCA2NHpNNTI5LjkgMjU3LjljOSA5IDE0LjEgMjEuMiAxNC4xIDMzLjlMNTQ0IDQ2NGMwIDI2LjUtMjEuNSA0OC00OCA0OGwtMTYwIDBjLTI2LjUgMC00OC0yMS41LTQ4LTQ4bDAtMjU2YzAtMjYuNSAyMS41LTQ4IDQ4LTQ4bDc2LjEgMGMxMi43IDAgMjQuOSA1LjEgMzMuOSAxNC4xIDIwIDIwIDQ3LjkgNDcuOSA4My45IDgzLjl6TTQxNiAyNzJjMCA4LjggNy4yIDE2IDE2IDE2bDYwLjEgMC03Ni4xLTc2LjEgMCA2MC4xeiJdfSxFNGU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiYmFoYWkiLGljb246WzU3Niw1MTIsWyJoYXlrYWwiXSwiZjY2NiIsIk0yODguNC04YzEzLjIgMCAyNSA4LjEgMjkuOCAyMC40bDMxLjkgODIgNzcuMi00Mi4zYzExLjYtNi4zIDI1LjgtNC45IDM1LjkgMy41czE0IDIyLjMgOS43IDM0LjhsLTI4LjIgODMuMyA4Ni4zIDE3LjJjMTIuOSAyLjYgMjMgMTIuOCAyNS4zIDI1LjhzLTMuNiAyNi4xLTE0LjkgMzIuOWwtNzUuMiA0NS43IDU1IDY4LjZjOC4zIDEwLjMgOS4zIDI0LjYgMi43IDM2cy0xOS41IDE3LjYtMzIuNiAxNS42bC04Ny0xMy4zLTIgODhjLS4zIDEzLjItOC42IDI0LjgtMjEgMjkuNHMtMjYuMyAxLTM1LTlsLTU4LTY2LjEtNTggNjYuMWMtOC43IDkuOS0yMi42IDEzLjUtMzUgOXMtMjAuOC0xNi4yLTIxLTI5LjRsLTItODgtODcgMTMuM2MtMTMgMi0yNi00LjItMzIuNi0xNS42cy01LjUtMjUuNyAyLjctMzZsNTUtNjguNi03NS4yLTQ1LjdjLTExLjMtNi44LTE3LjItMTkuOS0xNC45LTMyLjlzMTIuMy0yMy4yIDI1LjMtMjUuOGw4Ni4zLTE3LjItMjguMi04My4zYy00LjItMTIuNS0uNC0yNi4zIDkuNy0zNC44czI0LjQtOS45IDM1LjktMy41bDc3LjEgNDIuMyAzMS45LTgyQzI2My4zIC4xIDI3NS4yLTggMjg4LjQtOHptMCAxMjAuMkwyNzMgMTUxLjZjLTMuMyA4LjYtMTAuMiAxNS4zLTE4LjkgMTguNXMtMTguMiAyLjQtMjYuMy0ybC0zNy0yMC4zIDEzLjYgNDBjMyA4LjcgMiAxOC4zLTIuNiAyNi4zcy0xMi40IDEzLjYtMjEuNSAxNS40bC00MS40IDguMyAzNi4xIDIxLjljNy45IDQuOCAxMy4zIDEyLjcgMTQuOSAyMS44cy0uOCAxOC40LTYuNSAyNS42bC0yNi40IDMzIDQxLjgtNi40YzkuMS0xLjQgMTguNCAxLjIgMjUuNCA3LjFzMTEuMiAxNC42IDExLjQgMjMuOGwuOSA0Mi4yIDI3LjktMzEuOGM2LjEtNi45IDE0LjgtMTAuOSAyNC4xLTEwLjlzMTggNCAyNC4xIDEwLjlsMjcuOSAzMS44IC45LTQyLjJjLjItOS4yIDQuNC0xNy45IDExLjQtMjMuOHMxNi4zLTguNSAyNS40LTcuMWw0MS44IDYuNC0yNi40LTMzYy01LjgtNy4yLTguMi0xNi41LTYuNi0yNS42czctMTcgMTQuOS0yMS44bDM2LjEtMjEuOS00MS40LTguM2MtOS0xLjgtMTYuOS03LjQtMjEuNS0xNS40cy01LjUtMTcuNi0yLjYtMjYuM2wxMy42LTQwLTM3IDIwLjNjLTguMSA0LjQtMTcuNyA1LjItMjYuMyAycy0xNS41LTkuOS0xOC45LTE4LjVsLTE1LjMtMzkuNHoiXX0sZER0PUU0ZSwkNGU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToibW9uZXktYmlsbC0xIixpY29uOls1MTIsNTEyLFsibW9uZXktYmlsbC1hbHQiXSwiZjNkMSIsIk02NCA2NEMyOC43IDY0IDAgOTIuNyAwIDEyOEwwIDM4NGMwIDM1LjMgMjguNyA2NCA2NCA2NGwzODQgMGMzNS4zIDAgNjQtMjguNyA2NC02NGwwLTI1NmMwLTM1LjMtMjguNy02NC02NC02NEw2NCA2NHptMTkyIDgwYTExMiAxMTIgMCAxIDEgMCAyMjQgMTEyIDExMiAwIDEgMSAwLTIyNHpNNjQgMTg0bDAtNDhjMC00LjQgMy42LTggOC04bDQ4IDBjNC40IDAgOC4xIDMuNiA3LjUgOC0zLjYgMjktMjYuNiA1MS45LTU1LjUgNTUuNS00LjQgLjUtOC0zLjEtOC03LjV6bTAgMTQ0YzAtNC40IDMuNi04LjEgOC03LjUgMjkgMy42IDUxLjkgMjYuNiA1NS41IDU1LjUgLjUgNC40LTMuMSA4LTcuNSA4bC00OCAwYy00LjQgMC04LTMuNi04LThsMC00OHpNNDQwIDE5MS41Yy0yOS0zLjYtNTEuOS0yNi42LTU1LjUtNTUuNS0uNS00LjQgMy4xLTggNy41LThsNDggMGM0LjQgMCA4IDMuNiA4IDhsMCA0OGMwIDQuNC0zLjYgOC4xLTggNy41ek00NDggMzI4bDAgNDhjMCA0LjQtMy42IDgtOCA4bC00OCAwYy00LjQgMC04LjEtMy42LTcuNS04IDMuNi0yOSAyNi42LTUxLjkgNTUuNS01NS41IDQuNC0uNSA4IDMuMSA4IDcuNXpNMjQwIDE4OGMtMTEgMC0yMCA5LTIwIDIwIDAgOS43IDYuOSAxNy43IDE2IDE5LjZsMCA0OC40LTQgMGMtMTEgMC0yMCA5LTIwIDIwczkgMjAgMjAgMjBsNDggMGMxMSAwIDIwLTkgMjAtMjBzLTktMjAtMjAtMjBsLTQgMCAwLTY4YzAtMTEtOS0yMC0yMC0yMGwtMTYgMHoiXX0sdUR0PSQ0ZSxJNGU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiY2xvdWQtYm9sdCIsaWNvbjpbNTEyLDUxMixbMTI3Nzg1LCJ0aHVuZGVyc3Rvcm0iXSwiZjc2YyIsIk0wIDIyNGMwIDUzIDQzIDk2IDk2IDk2bDM4LjYgMCAxMjQuMS0xMTFjMTIuMi0xMC45IDI4LTE3IDQ0LjQtMTcgNDQuNiAwIDc2LjUgNDMgNjMuNyA4NS43TDM1NC4xIDMyMCA0MTYgMzIwYzUzIDAgOTYtNDMgOTYtOTZzLTQzLTk2LTk2LTk2Yy0uNSAwLTEuMSAwLTEuNiAwIDEuMS01LjIgMS42LTEwLjUgMS42LTE2IDAtNDQuMi0zNS44LTgwLTgwLTgwLTI0LjMgMC00Ni4xIDEwLjktNjAuOCAyOC0xOC43LTM1LjctNTYuMS02MC05OS4yLTYwLTYxLjkgMC0xMTIgNTAuMS0xMTIgMTEyIDAgNy4xIC43IDE0LjEgMS45IDIwLjgtMzguMyAxMi42LTY1LjkgNDguNy02NS45IDkxLjJ6TTE2MC42IDQwMGw2MS44IDAtMzEuMiAxMDQuMWMtMy42IDExLjkgNS4zIDIzLjkgMTcuOCAyMy45IDQuNiAwIDktMS43IDEyLjQtNC43TDM2Mi41IDM5Ni45YzMuNS0zLjEgNS41LTcuNiA1LjUtMTIuNCAwLTkuMi03LjQtMTYuNi0xNi42LTE2LjZsLTYxLjggMCAzMS4yLTEwNC4xYzMuNi0xMS45LTUuMy0yMy45LTE3LjgtMjMuOS00LjYgMC05IDEuNy0xMi40IDQuN0wxNDkuNSAzNzEuMWMtMy41IDMuMS01LjUgNy42LTUuNSAxMi40IDAgOS4yIDcuNCAxNi42IDE2LjYgMTYuNnoiXX0scER0PUk0ZSxoRHQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZXRoZXJuZXQiLGljb246WzUxMiw1MTIsW10sImY3OTYiLCJNMCAyMjRMMCA0MTZjMCAxNy43IDE0LjMgMzIgMzIgMzJsMzIgMCAwLTEwNGMwLTEzLjMgMTAuNy0yNCAyNC0yNHMyNCAxMC43IDI0IDI0bDAgMTA0IDY0IDAgMC0xMDRjMC0xMy4zIDEwLjctMjQgMjQtMjRzMjQgMTAuNyAyNCAyNGwwIDEwNCA2NCAwIDAtMTA0YzAtMTMuMyAxMC43LTI0IDI0LTI0czI0IDEwLjcgMjQgMjRsMCAxMDQgNjQgMCAwLTEwNGMwLTEzLjMgMTAuNy0yNCAyNC0yNHMyNCAxMC43IDI0IDI0bDAgMTA0IDMyIDBjMTcuNyAwIDMyLTE0LjMgMzItMzJsMC0xOTJjMC0xNy43LTE0LjMtMzItMzItMzJsLTMyIDAgMC0zMmMwLTE3LjctMTQuMy0zMi0zMi0zMmwtMzIgMCAwLTMyYzAtMTcuNy0xNC4zLTMyLTMyLTMyTDE2MCA2NGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJsMCAzMi0zMiAwYy0xNy43IDAtMzIgMTQuMy0zMiAzMmwwIDMyLTMyIDBjLTE3LjcgMC0zMiAxNC4zLTMyIDMyeiJdfSxQNGU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiaHJ5dm5pYS1zaWduIixpY29uOlszODQsNTEyLFs4MzcyLCJocnl2bmlhIl0sImY2ZjIiLCJNMzM2IDE0OS40QzMzNiA3NyAyNjguNSAyMy41IDE5OCA0MC4xTDkzLjIgNjQuOUM3NiA2OC45IDY1LjQgODYuMiA2OS40IDEwMy40czIxLjMgMjcuOSAzOC41IDIzLjhsMTA0LjgtMjQuN2MzMC4zLTcuMSA1OS4zIDE1LjggNTkuMyA0Ni45IDAgMTcuNi05LjYgMzMuOC0yNSA0Mi4zbC0uNyAuNC0yMjIuMyAwYy0xMy4zIDAtMjQgMTAuNy0yNCAyNHMxMC43IDI0IDI0IDI0bDMzNiAwYzEzLjMgMCAyNC0xMC43IDI0LTI0cy0xMC43LTI0LTI0LTI0bC0zMi40IDBjNS41LTEzLjMgOC40LTI3LjggOC40LTQyLjZ6TTM2MCAyNzJMMjQgMjcyYy0xMy4zIDAtMjQgMTAuNy0yNCAyNHMxMC43IDI0IDI0IDI0bDMzLjMgMGMtNi4xIDEzLjQtOS4zIDI4LjEtOS4zIDQzLjMgMCA2NC4xIDU2LjkgMTEzLjQgMTIwLjQgMTA0LjJsMTM3LjktMTkuOWMxNy41LTIuNSAyOS42LTE4LjcgMjcuMS0zNi4ycy0xOC44LTI5LjYtMzYuMi0yNy4xTDE1OS4yIDQwNC4yYy0yNC45IDMuNi00Ny4yLTE1LjctNDcuMi00MC45IDAtMTUuMSA4LjItMjguOSAyMS40LTM2LjJsMTMtNy4xIDIxMy42IDBjMTMuMyAwIDI0LTEwLjcgMjQtMjRzLTEwLjctMjQtMjQtMjR6Il19LGZEdD1QNGUscEU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZXllLXNsYXNoIixpY29uOls1NzYsNTEyLFtdLCJmMDcwIiwiTTQxLTI0LjljLTkuNC05LjQtMjQuNi05LjQtMzMuOSAwUy0yLjMtLjMgNyA5LjFsNTI4IDUyOGM5LjQgOS40IDI0LjYgOS40IDMzLjkgMHM5LjQtMjQuNiAwLTMzLjlsLTk2LjQtOTYuNGMyLjctMi40IDUuNC00LjggOC03LjIgNDYuOC00My41IDc4LjEtOTUuNCA5My0xMzEuMSAzLjMtNy45IDMuMy0xNi43IDAtMjQuNi0xNC45LTM1LjctNDYuMi04Ny43LTkzLTEzMS4xLTQ3LjEtNDMuNy0xMTEuOC04MC42LTE5Mi42LTgwLjYtNTYuOCAwLTEwNS42IDE4LjItMTQ2IDQ0LjJMNDEtMjQuOXpNMjA0LjUgMTM4LjdjMjMuNS0xNi44IDUyLjQtMjYuNyA4My41LTI2LjcgNzkuNSAwIDE0NCA2NC41IDE0NCAxNDQgMCAzMS4xLTkuOSA1OS45LTI2LjcgODMuNWwtMzQuNy0zNC43YzEyLjctMjEuNCAxNy00Ny43IDEwLjEtNzMuNy0xMy43LTUxLjItNjYuNC04MS42LTExNy42LTY3LjktOC42IDIuMy0xNi43IDUuNy0yNCAxMGwtMzQuNy0zNC43ek0zMjUuMyAzOTUuMWMtMTEuOSAzLjItMjQuNCA0LjktMzcuMyA0LjktNzkuNSAwLTE0NC02NC41LTE0NC0xNDQgMC0xMi45IDEuNy0yNS40IDQuOS0zNy4zTDY5LjQgMTM5LjJjLTMyLjYgMzYuOC01NSA3NS44LTY2LjkgMTA0LjUtMy4zIDcuOS0zLjMgMTYuNyAwIDI0LjYgMTQuOSAzNS43IDQ2LjIgODcuNyA5MyAxMzEuMSA0Ny4xIDQzLjcgMTExLjggODAuNiAxOTIuNiA4MC42IDM3LjMgMCA3MS4yLTcuOSAxMDEuNS0yMC42bC02NC4yLTY0LjJ6Il19LE40ZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJjYXJ0LWZsYXRiZWQtc3VpdGNhc2UiLGljb246WzU3Niw1MTIsWyJsdWdnYWdlLWNhcnQiXSwiZjU5ZCIsIk0wIDMyQzAgMTQuMyAxNC4zIDAgMzIgMEw0OCAwYzQ0LjIgMCA4MCAzNS44IDgwIDgwbDAgMjg4YzAgOC44IDcuMiAxNiAxNiAxNmw0MDAgMGMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMmwtMzQuNyAwYzEuOCA1IDIuNyAxMC40IDIuNyAxNiAwIDI2LjUtMjEuNSA0OC00OCA0OHMtNDgtMjEuNS00OC00OGMwLTUuNiAxLTExIDIuNy0xNmwtMTk3LjUgMGMxLjggNSAyLjcgMTAuNCAyLjcgMTYgMCAyNi41LTIxLjUgNDgtNDggNDhzLTQ4LTIxLjUtNDgtNDhjMC02IDEuMS0xMS43IDMuMS0xNy0zOC4xLTYuMi02Ny4xLTM5LjItNjcuMS03OUw2NCA4MGMwLTguOC03LjItMTYtMTYtMTZMMzIgNjRDMTQuMyA2NCAwIDQ5LjcgMCAzMnpNMTc2IDE0NGMwLTI2LjUgMjEuNS00OCA0OC00OGwzMiAwIDAtMjRjMC0zMC45IDI1LjEtNTYgNTYtNTZsNjQgMGMzMC45IDAgNTYgMjUuMSA1NiA1NmwwIDI0IDMyIDBjMjYuNSAwIDQ4IDIxLjUgNDggNDhsMCAxNDRjMCAyNi41LTIxLjUgNDgtNDggNDhsLTI0MCAwYy0yNi41IDAtNDgtMjEuNS00OC00OGwwLTE0NHpNMzg0IDk2bDAtMjRjMC00LjQtMy42LTgtOC04bC02NCAwYy00LjQgMC04IDMuNi04IDhsMCAyNCA4MCAweiJdfSxtRHQ9TjRlLGdEdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJyYWRpYXRpb24iLGljb246WzU3Niw1MTIsW10sImY3YjkiLCJNNDQ2LjIgMzQuNWMtMTQuMi0xMC4xLTMzLjUtNC42LTQyLjIgMTAuNUwzMzEuNiAxNzAuM2MzMS4zIDE1LjggNTIuOCA0OC4zIDUyLjggODUuN2wxNDQgMGMxNy43IDAgMzIuMi0xNC40IDMwLjEtMzEuOS05LjEtNzguMS01MS40LTE0Ni4xLTExMi4zLTE4OS42ek0xNzIuNyA0NC45QzE2NCAyOS44IDE0NC43IDI0LjMgMTMwLjUgMzQuNSA2OS42IDc3LjkgMjcuMyAxNDUuOSAxOC4yIDIyNC4xIDE2LjEgMjQxLjYgMzAuNyAyNTYgNDguMyAyNTZsMTQ0IDBjMC0zNy41IDIxLjUtNjkuOSA1Mi44LTg1LjdMMTcyLjcgNDQuOXptLTkuNCA0MTYuOGMtOC43IDE1LjEtMy44IDM0LjUgMTIgNDEuOCAzNC40IDE1LjcgNzIuNyAyNC41IDExMyAyNC41czc4LjYtOC44IDExMy0yNC41YzE1LjgtNy4yIDIwLjctMjYuNyAxMi00MS44TDM0MSAzMzYuM2MtMTUuMSA5LjktMzMuMiAxNS43LTUyLjYgMTUuN3MtMzcuNS01LjgtNTIuNi0xNS43TDE2My4zIDQ2MS43ek0yODguMyAzMDRhNDggNDggMCAxIDAgLS43LTk2IDQ4IDQ4IDAgMSAwIC43IDk2eiJdfSxiRHQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZmlsZS13b3JkIixpY29uOlszODQsNTEyLFtdLCJmMWMyIiwiTTAgNjRDMCAyOC43IDI4LjcgMCA2NCAwTDIxMy41IDBjMTcgMCAzMy4zIDYuNyA0NS4zIDE4LjdMMzY1LjMgMTI1LjNjMTIgMTIgMTguNyAyOC4zIDE4LjcgNDUuM0wzODQgNDQ4YzAgMzUuMy0yOC43IDY0LTY0IDY0TDY0IDUxMmMtMzUuMyAwLTY0LTI4LjctNjQtNjRMMCA2NHptMjA4LTUuNWwwIDkzLjVjMCAxMy4zIDEwLjcgMjQgMjQgMjRMMzI1LjUgMTc2IDIwOCA1OC41ek0xMzUuNCAyNzQuOGMtMi45LTEyLjktMTUuNy0yMS4xLTI4LjYtMTguMnMtMjEuMSAxNS43LTE4LjIgMjguNmwzMiAxNDRjMi4zIDEwLjUgMTEuNCAxOC4yIDIyLjIgMTguOHMyMC42LTYuMSAyNC0xNi40bDI1LjItNzUuNyAyNS4yIDc1LjdjMy40IDEwLjIgMTMuMiAxNi45IDI0IDE2LjRzMTkuOS04LjIgMjIuMi0xOC44bDMyLTE0NGMyLjktMTIuOS01LjMtMjUuOC0xOC4yLTI4LjZzLTI1LjggNS4zLTI4LjYgMTguMmwtMTMuMiA1OS40LTIwLjYtNjEuOGMtMy4zLTkuOC0xMi40LTE2LjQtMjIuOC0xNi40cy0xOS41IDYuNi0yMi44IDE2LjRsLTIwLjYgNjEuOC0xMy4yLTU5LjR6Il19LEY0ZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJiZWQtcHVsc2UiLGljb246WzY0MCw1MTIsWyJwcm9jZWR1cmVzIl0sImY0ODciLCJNNTMxLjItMjIuNEw1NzIgMzIgNjE2IDMyYzEzLjMgMCAyNCAxMC43IDI0IDI0cy0xMC43IDI0LTI0IDI0bC01NiAwYy03LjYgMC0xNC43LTMuNi0xOS4yLTkuNmwtMjQuMS0zMi4xLTQ3IDk5LjljLTMuNyA3LjgtMTEuMyAxMy4xLTE5LjkgMTMuN3MtMTYuOS0zLjQtMjEuNy0xMC42TDM4Ny4yIDgwIDM0NCA4MGMtMTMuMyAwLTI0LTEwLjctMjQtMjRzMTAuNy0yNCAyNC0yNGw1NiAwYzggMCAxNS41IDQgMjAgMTAuN2wyNC40IDM2LjYgNDUuOS05Ny41YzMuNi03LjYgMTAuOS0xMi44IDE5LjMtMTMuN3MxNi42IDIuNyAyMS42IDkuNXpNMzIwIDE2MGMwLTE3LjcgMTQuMy0zMiAzMi0zMmw5LjUgMCAyNi42IDM5LjljMTQuNCAyMS42IDM5LjMgMzMuOCA2NS4yIDMxLjlzNDguOC0xNy42IDU5LjgtNDEuMUw1MjcgMTI5LjJjNDUuOSA3LjIgODEgNDYuOSA4MSA5NC44bDAgMjI0YzAgMTcuNy0xNC4zIDMyLTMyIDMycy0zMi0xNC4zLTMyLTMybDAtNjQtNDQ4IDAgMCA2NGMwIDE3LjctMTQuMyAzMi0zMiAzMnMtMzItMTQuMy0zMi0zMkwzMiA2NGMwLTE3LjcgMTQuMy0zMiAzMi0zMlM5NiA0Ni4zIDk2IDY0bDAgMjI0IDIyNCAwIDAtMTI4ek0xNDQgMTkyYTY0IDY0IDAgMSAxIDEyOCAwIDY0IDY0IDAgMSAxIC0xMjggMHoiXX0sdkR0PUY0ZSx4RHQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToidGVudHMiLGljb246WzU3Niw1MTIsW10sImU1ODIiLCJNNTM5LjkgMzUybC05NS42IDAtOC40LTY2LjFjLTIuOS0yMy4yLTE1LjktNDMuOS0zNS40LTU2LjhMMjUyLjIgMTMxLjVjLTE4LTExLjktMzkuNy0xNS43LTYwLjEtMTEuNSAyLjUtNC4zIDUuOS03LjkgMTAuMS0xMC43TDM1MC42IDExLjZjMTAuNy03IDI0LjUtNyAzNS4yIDBsMTQ4LjQgOTcuN2M3LjggNS4xIDEzIDEzLjQgMTQuMiAyMi43bDIzLjMgMTg0YzIuNCAxOS4xLTEyLjUgMzYtMzEuNyAzNnpNNC44IDQ3NmwyMy4zLTE4NGMxLjItOS4zIDYuMy0xNy42IDE0LjItMjIuN2wxNDguNC05Ny43YzEwLjctNyAyNC41LTcgMzUuMiAwbDE0OC40IDk3LjdjNy44IDUuMSAxMyAxMy40IDE0LjIgMjIuN2wyMy4zIDE4NGMyLjQgMTkuMS0xMi41IDM2LTMxLjcgMzZsLTQ5LjcgMGMtMTEuMiAwLTIxLjUtNS44LTI3LjMtMTUuNGwtNzctMTI2LjdjLTEuNy0yLjgtNC44LTQuNi04LjEtNC42LTUuMyAwLTkuNSA0LjMtOS41IDkuNWwwIDEwNS4yYzAgMTcuNy0xNC4zIDMyLTMyIDMyTDM2LjUgNTEyYy0xOS4zIDAtMzQuMi0xNi45LTMxLjctMzZ6Il19LGhFPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6Im11Zy1ob3QiLGljb246WzU3Niw1MTIsWzk3NDldLCJmN2I2IiwiTTE1Mi0xNmMtMTMuMyAwLTI0IDEwLjctMjQgMjQgMCAzOC45IDIzLjQgNTkuNCAzOS4xIDczLjFsMS4xIDFjMTYuMyAxNC4zIDIzLjggMjEuOCAyMy44IDM3LjkgMCAxMy4zIDEwLjcgMjQgMjQgMjRzMjQtMTAuNyAyNC0yNGMwLTM4LjktMjMuNC01OS40LTM5LjEtNzMuMWwtMS4xLTFDMTgzLjUgMzEuNyAxNzYgMjQuMSAxNzYgOCAxNzYtNS4zIDE2NS4zLTE2IDE1Mi0xNnpNOTYgMTkyYy0xNy43IDAtMzIgMTQuMy0zMiAzMmwwIDE5MmMwIDUzIDQzIDk2IDk2IDk2bDE5MiAwYzQxLjggMCA3Ny40LTI2LjcgOTAuNS02NGw1LjUgMGM3MC43IDAgMTI4LTU3LjMgMTI4LTEyOFM1MTguNyAxOTIgNDQ4IDE5Mkw5NiAxOTJ6TTQ0OCAzODRsMC0xMjhjMzUuMyAwIDY0IDI4LjcgNjQgNjRzLTI4LjcgNjQtNjQgNjR6TTI4OCA4YzAtMTMuMy0xMC43LTI0LTI0LTI0UzI0MC01LjMgMjQwIDhjMCAzOC45IDIzLjQgNTkuNCAzOS4xIDczLjFsMS4xIDFjMTYuMyAxNC4zIDIzLjggMjEuOCAyMy44IDM3LjkgMCAxMy4zIDEwLjcgMjQgMjQgMjRzMjQtMTAuNyAyNC0yNGMwLTM4LjktMjMuNC01OS40LTM5LjEtNzMuMWwtMS4xLTFDMjk1LjUgMzEuNyAyODggMjQuMSAyODggOHoiXX0sTzRlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImJvbHQiLGljb246WzQ0OCw1MTIsWzk4ODksInphcCJdLCJmMGU3IiwiTTMzOC44LTkuOWMxMS45IDguNiAxNi4zIDI0LjIgMTAuOSAzNy44TDI3MS4zIDIyNCA0MTYgMjI0YzEzLjUgMCAyNS41IDguNCAzMC4xIDIxLjFzLjcgMjYuOS05LjYgMzUuNWwtMjg4IDI0MGMtMTEuMyA5LjQtMjcuNCA5LjktMzkuMyAxLjNzLTE2LjMtMjQuMi0xMC45LTM3LjhMMTc2LjcgMjg4IDMyIDI4OGMtMTMuNSAwLTI1LjUtOC40LTMwLjEtMjEuMXMtLjctMjYuOSA5LjYtMzUuNWwyODgtMjQwYzExLjMtOS40IDI3LjQtOS45IDM5LjMtMS4zeiJdfSx5RHQ9TzRlLHdEdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJqYXIiLGljb246WzMyMCw1MTIsW10sImU1MTYiLCJNMzItOGMwLTEzLjMgMTAuNy0yNCAyNC0yNGwyMDggMGMxMy4zIDAgMjQgMTAuNyAyNCAyNHMtMTAuNyAyNC0yNCAyNEw1NiAxNkM0Mi43IDE2IDMyIDUuMyAzMi04ek0wIDEyOEMwIDkyLjcgMjguNyA2NCA2NCA2NGwxOTIgMGMzNS4zIDAgNjQgMjguNyA2NCA2NGwwIDMyMGMwIDM1LjMtMjguNyA2NC02NCA2NEw2NCA1MTJjLTM1LjMgMC02NC0yOC43LTY0LTY0TDAgMTI4em05NiA2NGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJsMCAxMjhjMCAxNy43IDE0LjMgMzIgMzIgMzJsMTI4IDBjMTcuNyAwIDMyLTE0LjMgMzItMzJsMC0xMjhjMC0xNy43LTE0LjMtMzItMzItMzJMOTYgMTkyeiJdfSxNRHQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToidHJ1Y2stcGxhbmUiLGljb246WzY0MCw1MTIsW10sImU1OGYiLCJNMTQ0IDQ4YzAtMjYuNSAyMS41LTQ4IDQ4LTQ4czQ4IDIxLjUgNDggNDhsMCAzMjBjMCAzMi41IDEyLjEgNjIuMSAzMiA4NC43bDAgMjcuM2MwIDcuMSAuOSAxNC4xIDIuNyAyMC43TDE5MiA0ODAgODMuOSA1MDdDNzMuOCA1MDkuNiA2NCA1MDEuOSA2NCA0OTEuNWwwLTE5LjhjMC00LjkgMi4yLTkuNSA2LTEyLjVsNzQtNTkuMiAwLTU3LjYtMTIyLjEgNDguOEMxMS40IDM5NS40IDAgMzg3LjcgMCAzNzYuNGwwLTQ0YzAtOCAzLTE1LjYgOC4zLTIxLjVMMTQ0IDE2MS42IDE0NCA0OHptMjI0IDgwbDE5MiAwYzQ0LjIgMCA4MCAzNS44IDgwIDgwbDAgMTYwYzAgMjYuMi0xMi42IDQ5LjQtMzIgNjRsMCA0OGMwIDE3LjctMTQuMyAzMi0zMiAzMnMtMzItMTQuMy0zMi0zMmwwLTMyLTE2MCAwIDAgMzJjMCAxNy43LTE0LjMgMzItMzIgMzJzLTMyLTE0LjMtMzItMzJsMC00OGMtMTkuNC0xNC42LTMyLTM3LjgtMzItNjRsMC0xNjBjMC00NC4yIDM1LjgtODAgODAtODB6bTAgMTc2bDE5MiAwIDAtMzJjMC0xNy43LTE0LjMtMzItMzItMzJsLTEyOCAwYy0xNy43IDAtMzIgMTQuMy0zMiAzMmwwIDMyem0wIDg4YTI0IDI0IDAgMSAwIDAtNDggMjQgMjQgMCAxIDAgMCA0OHptMjE2LTI0YTI0IDI0IDAgMSAwIC00OCAwIDI0IDI0IDAgMSAwIDQ4IDB6Il19LGtEdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJoYW5kLWhvbGRpbmctaGVhcnQiLGljb246WzU3Niw1MTIsW10sImY0YmUiLCJNMjc5LjYgMzFDMjY1LjUgMTEuNSAyNDIuOSAwIDIxOC45IDAgMTc3LjUgMCAxNDQgMzMuNSAxNDQgNzQuOWwwIDIuNGMwIDY0LjQgODIgMTMzLjQgMTIyLjIgMTYzLjMgMTMgOS43IDMwLjUgOS43IDQzLjUgMCA0MC4yLTMwIDEyMi4yLTk4LjkgMTIyLjItMTYzLjNsMC0yLjRjMC00MS40LTMzLjUtNzQuOS03NC45LTc0LjktMjQgMC00Ni42IDExLjUtNjAuNyAzMUwyODggNDIuNyAyNzkuNiAzMXpNMTA5LjMgMzQxLjVMNjYuNyAzODQgMzIgMzg0Yy0xNy43IDAtMzIgMTQuMy0zMiAzMmwwIDY0YzAgMTcuNyAxNC4zIDMyIDMyIDMybDMyMC41IDBjMjkgMCA1Ny4zLTkuMyA4MC43LTI2LjVsMTI2LjYtOTMuM2MxNy44LTEzLjEgMjEuNi0zOC4xIDguNS01NS45cy0zOC4xLTIxLjYtNTUuOS04LjVMMzkyLjYgNDE2IDI4MCA0MTZjLTEzLjMgMC0yNC0xMC43LTI0LTI0czEwLjctMjQgMjQtMjRsNzIgMGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMmwtMTUyLjIgMGMtMzMuOSAwLTY2LjUgMTMuNS05MC41IDM3LjV6Il19LE9wPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImFycm93LXJvdGF0ZS1sZWZ0IixpY29uOls1MTIsNTEyLFs4NjM0LCJhcnJvdy1sZWZ0LXJvdGF0ZSIsImFycm93LXJvdGF0ZS1iYWNrIiwiYXJyb3ctcm90YXRlLWJhY2t3YXJkIiwidW5kbyJdLCJmMGUyIiwiTTI1NiA2NGMtNTYuOCAwLTEwNy45IDI0LjctMTQzLjEgNjRsNDcuMSAwYzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMyTDMyIDE5MmMtMTcuNyAwLTMyLTE0LjMtMzItMzJMMCAzMkMwIDE0LjMgMTQuMyAwIDMyIDBTNjQgMTQuMyA2NCAzMmwwIDU0LjdDMTEwLjkgMzMuNiAxNzkuNSAwIDI1NiAwIDM5Ny40IDAgNTEyIDExNC42IDUxMiAyNTZTMzk3LjQgNTEyIDI1NiA1MTJjLTg3IDAtMTYzLjktNDMuNC0yMTAuMS0xMDkuNy0xMC4xLTE0LjUtNi42LTM0LjQgNy45LTQ0LjZzMzQuNC02LjYgNDQuNiA3LjljMzQuOCA0OS44IDkyLjQgODIuMyAxNTcuNiA4Mi4zIDEwNiAwIDE5Mi04NiAxOTItMTkyUzM2MiA2NCAyNTYgNjR6Il19LFNEdD1PcCx6RHQ9T3AsQ0R0PU9wLFREdD1PcCxSNGU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZmFjZS1hbmdyeSIsaWNvbjpbNTEyLDUxMixbMTI4NTQ0LCJhbmdyeSJdLCJmNTU2IiwiTTAgMjU2YTI1NiAyNTYgMCAxIDEgNTEyIDAgMjU2IDI1NiAwIDEgMSAtNTEyIDB6TTI1NiAzNjhjMjQuMSAwIDQ1LjQgMTEuOCA1OC41IDMwIDcuNyAxMC44IDIyLjcgMTMuMiAzMy41IDUuNXMxMy4yLTIyLjcgNS41LTMzLjVjLTIxLjctMzAuMi01Ny4zLTUwLTk3LjUtNTBzLTc1LjcgMTkuOC05Ny41IDUwYy03LjcgMTAuOC01LjMgMjUuOCA1LjUgMzMuNXMyNS44IDUuMyAzMy41LTUuNWMxMy4xLTE4LjIgMzQuNC0zMCA1OC41LTMwem0tODAtOTZjMTcuNyAwIDMyLTE0LjMgMzItMzJsMC0uMyA5LjcgMy4yYzEwLjUgMy41IDIxLjgtMi4yIDI1LjMtMTIuNnMtMi4yLTIxLjgtMTIuNi0yNS4zbC05Ni0zMmMtMTAuNS0zLjUtMjEuOCAyLjItMjUuMyAxMi42czIuMiAyMS44IDEyLjYgMjUuM2wyOC45IDkuNmMtNC4xIDUuNC02LjYgMTIuMS02LjYgMTkuNCAwIDE3LjcgMTQuMyAzMiAzMiAzMnptMTkyLTMyYzAtNy4zLTIuNC0xNC02LjYtMTkuNGwyOC45LTkuNmMxMC41LTMuNSAxNi4xLTE0LjggMTIuNi0yNS4zcy0xNC44LTE2LjEtMjUuMy0xMi42bC05NiAzMmMtMTAuNSAzLjUtMTYuMSAxNC44LTEyLjYgMjUuM3MxNC44IDE2LjEgMjUuMyAxMi42bDkuNy0zLjIgMCAuM2MwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMyeiJdfSxfRHQ9UjRlLExEdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJidXJzdCIsaWNvbjpbNTEyLDUxMixbXSwiZTRkYyIsIk0zNy42IDQuMkMyOC0yLjMgMTUuMi0xLjEgNyA3Uy0yLjMgMjggNC4yIDM3LjZsMTEyIDE2My4zLTk5LjYgMzIuM0M2LjcgMjM2LjQgMCAyNDUuNiAwIDI1NnM2LjcgMTkuNiAxNi42IDIyLjhsMTAzLjEgMzMuNC01Mi45IDEwMC42Yy00LjkgOS4zLTMuMiAyMC43IDQuMyAyOC4xczE4LjggOS4yIDI4LjEgNC4zbDEwMC42LTUyLjkgMzMuNCAxMDMuMWMzLjIgOS45IDEyLjQgMTYuNiAyMi44IDE2LjZzMTkuNi02LjcgMjIuOC0xNi42bDMzLjQtMTAzLjEgMTAwLjYgNTIuOWM5LjMgNC45IDIwLjcgMy4yIDI4LjEtNC4zczkuMi0xOC44IDQuMy0yOC4xbC01Mi45LTEwMC42IDEwMy4xLTMzLjRjOS45LTMuMiAxNi42LTEyLjQgMTYuNi0yMi44cy02LjctMTkuNi0xNi42LTIyLjhsLTEwNi41LTM0LjUgMjUuNy03MC40YzMuMi04LjggMS0xOC42LTUuNi0yNS4ycy0xNi40LTguOC0yNS4yLTUuNmwtNzAuNCAyNS43LTM0LjUtMTA2LjVDMjc1LjYgNi43IDI2Ni40IDAgMjU2IDBzLTE5LjYgNi43LTIyLjggMTYuNkwyMDAuOSAxMTYuMiAzNy42IDQuMnoiXX0sQUR0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InoiLGljb246WzM4NCw1MTIsWzEyMl0sIjVhIiwiTTAgNjRDMCA0Ni4zIDE0LjMgMzIgMzIgMzJsMzIwIDBjMTIuNCAwIDIzLjcgNy4yIDI5IDE4LjRzMy42IDI0LjUtNC40IDM0LjFMMTAwLjMgNDE2IDM1MiA0MTZjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJMMzIgNDgwYy0xMi40IDAtMjMuNy03LjItMjktMTguNHMtMy42LTI0LjUgNC40LTM0LjFMMjgzLjcgOTYgMzIgOTZDMTQuMyA5NiAwIDgxLjcgMCA2NHoiXX0sQjRlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImJhbmRhZ2UiLGljb246WzU3Niw1MTIsWzEyOTY1NywiYmFuZC1haWQiXSwiZjQ2MiIsIk00NjQgNDE2bDQ4IDBjMzUuMyAwIDY0LTI4LjcgNjQtNjRsMC0xOTJjMC0zNS4zLTI4LjctNjQtNjQtNjRsLTQ4IDAgMCAzMjB6TTQxNiA5NmwtMjU2IDAgMCAzMjAgMjU2IDAgMC0zMjB6TTY0IDk2QzI4LjcgOTYgMCAxMjQuNyAwIDE2MEwwIDM1MmMwIDM1LjMgMjguNyA2NCA2NCA2NGw0OCAwIDAtMzIwLTQ4IDB6TTIxNiAyMDhhMjQgMjQgMCAxIDEgNDggMCAyNCAyNCAwIDEgMSAtNDggMHptMTIwLTI0YTI0IDI0IDAgMSAxIDAgNDggMjQgMjQgMCAxIDEgMC00OHpNMjE2IDMwNGEyNCAyNCAwIDEgMSA0OCAwIDI0IDI0IDAgMSAxIC00OCAwem0xMjAtMjRhMjQgMjQgMCAxIDEgMCA0OCAyNCAyNCAwIDEgMSAwLTQ4eiJdfSxERHQ9QjRlLEVEdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJwbGFuZS1jaXJjbGUtZXhjbGFtYXRpb24iLGljb246WzY0MCw1MTIsW10sImU1NTYiLCJNMjMyIDI0YzAtMzAuOSAyNS4xLTU2IDU2LTU2czU2IDI1LjEgNTYgNTZsMCAxMjcuMyA3OCA3MS41Yy02OS4zIDI5LTExOCA5Ny40LTExOCAxNzcuMiAwIDQ5LjMgMTguNiA5NC4zIDQ5LjEgMTI4LjNMMjg4IDUxMiAxNzkuOSA1MzljLTEwLjEgMi41LTE5LjktNS4xLTE5LjktMTUuNWwwLTE5LjhjMC00LjkgMi4yLTkuNSA2LTEyLjVsNjYtNTIuOCAwLTk5LjctMTYyLjkgNTQuM0M1OC43IDM5Ni40IDQ4IDM4OC43IDQ4IDM3Ny44bDAtNDMuN2MwLTkgMy44LTE3LjUgMTAuNC0yMy42TDIzMiAxNTEuMyAyMzIgMjR6TTQ5NiAyNTZhMTQ0IDE0NCAwIDEgMSAwIDI4OCAxNDQgMTQ0IDAgMSAxIDAtMjg4em0wIDIyOGEyMCAyMCAwIDEgMCAwLTQwIDIwIDIwIDAgMSAwIDAgNDB6bTAtMTgwYy04LjggMC0xNiA3LjItMTYgMTZsMCA4MGMwIDguOCA3LjIgMTYgMTYgMTZzMTYtNy4yIDE2LTE2bDAtODBjMC04LjgtNy4yLTE2LTE2LTE2eiJdfSwkRHQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiYnVzLXNpZGUiLGljb246WzY0MCw1MTIsW10sImU4MWQiLCJNNDgwIDBjODguNCAwIDE2MCA3MS42IDE2MCAxNjBsMCAyMjRjMCAzNS4zLTI4LjcgNjQtNjQgNjRsLTUuNiAwYy0xMy4yIDM3LjMtNDguNiA2NC05MC40IDY0cy03Ny4zLTI2LjctOTAuNC02NGwtMTM5LjEgMGMtMTMuMiAzNy4zLTQ4LjcgNjQtOTAuNCA2NHMtNzcuMi0yNi43LTkwLjQtNjRMNjQgNDQ4Yy0zNS4zIDAtNjQtMjguNy02NC02NEwwIDk2QzAgNDMgNDMgMCA5NiAwTDQ4MCAwek0xNjAgMzY4YTQ4IDQ4IDAgMSAwIDAgOTYgNDggNDggMCAxIDAgMC05NnptMzIwIDBhNDggNDggMCAxIDAgMCA5NiA0OCA0OCAwIDEgMCAwLTk2em0wLTMwNGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJsMCAxOTJjMCAxNy43IDE0LjMgMzIgMzIgMzJsNjQgMGMxNy43IDAgMzItMTQuMyAzMi0zMmwwLTEyOGMwLTUzLTQzLTk2LTk2LTk2ek0yNDggMjI0bDEwNCAwYzE3LjcgMCAzMi0xNC4zIDMyLTMybDAtOTZjMC0xNy43LTE0LjMtMzItMzItMzJsLTEwNCAwIDAgMTYwek05NiA2NEM3OC4zIDY0IDY0IDc4LjMgNjQgOTZsMCA5NmMwIDE3LjcgMTQuMyAzMiAzMiAzMmwxMDQgMCAwLTE2MC0xMDQgMHoiXX0sSUR0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImJ1Z3MiLGljb246WzU3Niw1MTIsW10sImU0ZDAiLCJNNDQ3LjUgMTc0LjZjOC44LTguNCAyMi43LTguOSAzMi4yLS44czExIDIxLjkgNC4xIDMxLjlsLTEuNSAxLjktMjMgMjYuN2MyNi43IDEzLjUgNDYuMyAzOS4xIDUxLjQgNjkuNmwyNS4zIDBjMTMuMyAwIDI0IDEwLjcgMjQgMjRzLTEwLjcgMjQtMjQgMjRsLTI0IDAgMCAzMiAyNCAwYzEzLjMgMCAyNCAxMC43IDI0IDI0cy0xMC43IDI0LTI0IDI0bC0yNS4zIDBjLTcuNiA0NS40LTQ3LjEgODAtOTQuNyA4MHMtODctMzQuNi05NC43LTgwTDI5NiA0MzJjLTEzLjMgMC0yNC0xMC43LTI0LTI0czEwLjctMjQgMjQtMjRsMjQgMCAwLTMyLTI0IDBjLTEzLjMgMC0yNC0xMC43LTI0LTI0czEwLjctMjQgMjQtMjRsMjUuMyAwYzUuMS0zMC41IDI0LjctNTYuMSA1MS40LTY5LjZsLTIyLjktMjYuN2MtOC42LTEwLjEtNy41LTI1LjIgMi42LTMzLjhzMjUuMi03LjUgMzMuOCAyLjZsMjkuOCAzNC44IDI5LjgtMzQuOCAxLjctMS44em0tMjU2LTE5MmM4LjgtOC40IDIyLjctOC45IDMyLjItLjhzMTEgMjEuOSA0LjEgMzEuOWwtMS41IDEuOS0yMyAyNi43QzIzMCA1NS45IDI0OS41IDgxLjUgMjU0LjcgMTEybDI1LjMgMGMxMy4zIDAgMjQgMTAuNyAyNCAyNHMtMTAuNyAyNC0yNCAyNGwtMjQgMCAwIDMyIDI0IDBjMTMuMyAwIDI0IDEwLjcgMjQgMjRzLTEwLjcgMjQtMjQgMjRsLTI1LjMgMGMtNy42IDQ1LjQtNDcuMSA4MC05NC43IDgwcy04Ny0zNC42LTk0LjctODBMNDAgMjQwYy0xMy4zIDAtMjQtMTAuNy0yNC0yNHMxMC43LTI0IDI0LTI0bDI0IDAgMC0zMi0yNCAwYy0xMy4zIDAtMjQtMTAuNy0yNC0yNHMxMC43LTI0IDI0LTI0bDI1LjMgMEM3MC41IDgxLjUgOTAgNTUuOSAxMTYuNyA0Mi40TDkzLjggMTUuNkM4NS4yIDUuNiA4Ni4zLTkuNiA5Ni40LTE4LjJzMjUuMi03LjUgMzMuOCAyLjZsMjkuOCAzNC44IDI5LjgtMzQuOCAxLjctMS44eiJdfSxINGU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiYmVlci1tdWctZW1wdHkiLGljb246WzU3Niw1MTIsWyJiZWVyIl0sImYwZmMiLCJNNjQgODBjMC0yNi41IDIxLjUtNDggNDgtNDhsMjg4IDBjMjYuNSAwIDQ4IDIxLjUgNDggNDhsMCAxNiA2NCAwYzM1LjMgMCA2NCAyOC43IDY0IDY0bDAgMTA4LjJjMCAyNC4yLTEzLjcgNDYuNC0zNS40IDU3LjJMNDQ4IDM3MS44IDQ0OCAzODRjMCA1My00MyA5Ni05NiA5NmwtMTkyIDBjLTUzIDAtOTYtNDMtOTYtOTZMNjQgODB6TTQ0OCAzMDAuMmw2NC0zMiAwLTEwOC4yLTY0IDAgMCAxNDAuMnpNMTkyIDE1MmMwLTEzLjMtMTAuNy0yNC0yNC0yNHMtMjQgMTAuNy0yNCAyNGwwIDIwOGMwIDEzLjMgMTAuNyAyNCAyNCAyNHMyNC0xMC43IDI0LTI0bDAtMjA4em04OCAwYzAtMTMuMy0xMC43LTI0LTI0LTI0cy0yNCAxMC43LTI0IDI0bDAgMjA4YzAgMTMuMyAxMC43IDI0IDI0IDI0czI0LTEwLjcgMjQtMjRsMC0yMDh6bTg4IDBjMC0xMy4zLTEwLjctMjQtMjQtMjRzLTI0IDEwLjctMjQgMjRsMCAyMDhjMCAxMy4zIDEwLjcgMjQgMjQgMjRzMjQtMTAuNyAyNC0yNGwwLTIwOHoiXX0sUER0PUg0ZSxORHQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToicGVyc29uLWNpcmNsZS1jaGVjayIsaWNvbjpbNjQwLDUxMixbXSwiZTUzZSIsIk0yODAgMjRhNTYgNTYgMCAxIDAgLTExMiAwIDU2IDU2IDAgMSAwIDExMiAwem0yNCAyMTIuN0wzNDEgMjg2LjZjMTIuOC0xNy41IDI4LjUtMzIuNyA0Ni4zLTQ1bC01Ni4yLTc1LjdDMzA2IDEzMiAyNjYuMyAxMTIgMjI0IDExMnMtODIgMjAtMTA3LjIgNTMuOWwtNzAuNSA5NWMtMTAuNSAxNC4yLTcuNiAzNC4yIDYuNiA0NC44czM0LjIgNy42IDQ0LjgtNi42TDE0NCAyMzYuNyAxNDQgNTEyYzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJsMC0xNjBjMC04LjggNy4yLTE2IDE2LTE2czE2IDcuMiAxNiAxNmwwIDE2MGMwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMybDAtMjc1LjN6TTY0MCA0MDBhMTQ0IDE0NCAwIDEgMCAtMjg4IDAgMTQ0IDE0NCAwIDEgMCAyODggMHptLTg2LjYtNjAuOWM3LjEgNS4yIDguNyAxNS4yIDMuNSAyMi4zbC02NCA4OGMtMi44IDMuOC03IDYuMi0xMS43IDYuNXMtOS4zLTEuMy0xMi42LTQuNmwtNDAtNDBjLTYuMi02LjItNi4yLTE2LjQgMC0yMi42czE2LjQtNi4yIDIyLjYgMGwyNi44IDI2LjggNTMtNzIuOWM1LjItNy4xIDE1LjItOC43IDIyLjQtMy41eiJdfSxGRHQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToic3RhcGxlciIsaWNvbjpbNjQwLDUxMixbXSwiZTVhZiIsIk02NDAgMjk5LjNMNjQwIDQzMmMwIDI2LjUtMjEuNSA0OC00OCA0OEw2NCA0ODBjLTE3LjcgMC0zMi0xNC4zLTMyLTMyczE0LjMtMzIgMzItMzJsMzg0IDAgMC00OC0zNTIgMGMtMTcuNyAwLTMyLTE0LjMtMzItMzJsMC0xMTYuNi0zMC4yLTUuNGMtMTkuNi0zLjUtMzMuOC0yMC41LTMzLjgtNDAuNCAwLTguOSAyLjktMTcuNSA4LjItMjQuNmwzNS42LTQ3LjVjMzIuOC00My44IDg0LjQtNjkuNiAxMzkuMS02OS42IDI3IDAgNTMuNiA2LjMgNzcuOCAxOC40TDU4Ni45IDIxMy41QzYxOS41IDIyOS43IDY0MCAyNjMgNjQwIDI5OS4zek00NDggMzA0bDAtMTYtMzIwLTU3LjEgMCA3My4xIDMyMCAweiJdfSxPRHQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiaG91c2UtbWVkaWNhbC1jaXJjbGUtY2hlY2siLGljb246WzY0MCw1MTIsW10sImU1MTEiLCJNMzA5LjggOC42Yy0xMi4zLTExLjQtMzEuMy0xMS40LTQzLjUgMGwtMjI0IDIwOGMtOS42IDktMTIuOCAyMi45LTggMzUuMVM1MC44IDI3MiA2NCAyNzJsMTYgMCAwIDE3NmMwIDM1LjMgMjguNyA2NCA2NCA2NGwxOTYgMGMtMjEuMi0yOS41LTM0LjMtNjUuMy0zNS45LTEwNEwyNzIgNDA4Yy04LjggMC0xNi03LjItMTYtMTZsMC00MC00MCAwYy04LjggMC0xNi03LjItMTYtMTZsMC0zMmMwLTguOCA3LjItMTYgMTYtMTZsNDAgMCAwLTQwYzAtOC44IDcuMi0xNiAxNi0xNmwzMiAwYzguOCAwIDE2IDcuMiAxNiAxNmwwIDQwIDIwIDBjMzQuOS00OC41IDkxLjctODAgMTU2LTgwIDEwLjcgMCAyMS4xIC45IDMxLjMgMi41TDMwOS44IDguNnpNNjQwIDQwMGExNDQgMTQ0IDAgMSAwIC0yODggMCAxNDQgMTQ0IDAgMSAwIDI4OCAwem0tODYuNi02MC45YzcuMSA1LjIgOC43IDE1LjIgMy41IDIyLjNsLTY0IDg4Yy0yLjggMy44LTcgNi4yLTExLjcgNi41cy05LjMtMS4zLTEyLjYtNC42bC00MC00MGMtNi4yLTYuMi02LjItMTYuNCAwLTIyLjZzMTYuNC02LjIgMjIuNiAwbDI2LjggMjYuOCA1My03Mi45YzUuMi03LjEgMTUuMi04LjcgMjIuNC0zLjV6Il19LFJEdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJuYWlyYS1zaWduIixpY29uOls0NDgsNTEyLFtdLCJlMWY2IiwiTTEyMi42IDQ2LjNjLTcuOC0xMS43LTIyLjQtMTctMzUuOS0xMi45UzY0IDQ5LjkgNjQgNjRsMCAxOTItMzIgMGMtMTMuMyAwLTI0IDEwLjctMjQgMjRzMTAuNyAyNCAyNCAyNGwzMiAwIDAgMTQ0YzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJsMC0xNDQgODkuNSAwIDEwNy44IDE2MS44YzcuOCAxMS43IDIyLjQgMTcgMzUuOSAxMi45UzM4NCA0NjIuMSAzODQgNDQ4bDAtMTQ0IDMyIDBjMTMuMyAwIDI0LTEwLjcgMjQtMjRzLTEwLjctMjQtMjQtMjRsLTMyIDAgMC0xOTJjMC0xNy43LTE0LjMtMzItMzItMzJzLTMyIDE0LjMtMzIgMzJsMCAxOTItNTcuNSAwLTEzOS44LTIwOS43ek0yOTQuNSAzMDRsMjUuNSAwIDAgMzguMy0yNS41LTM4LjN6TTE4NS41IDI1NmwtNTcuNSAwIDAtODYuMyA1Ny41IDg2LjN6Il19LEhEPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6IndpZmkiLGljb246WzU3Niw1MTIsWyJ3aWZpLTMiLCJ3aWZpLXN0cm9uZyJdLCJmMWViIiwiTTI4OCA5NmMtOTAuOSAwLTE3My4yIDM2LTIzMy43IDk0LjYtMTIuNyAxMi4zLTMzIDEyLTQ1LjItLjdzLTEyLTMzIC43LTQ1LjJDODEuNyA3NC45IDE3OS45IDMyIDI4OCAzMlM0OTQuMyA3NC45IDU2Ni4zIDE0NC43YzEyLjcgMTIuMyAxMyAzMi42IC43IDQ1LjJzLTMyLjYgMTMtNDUuMiAuN0M0NjEuMiAxMzIgMzc4LjkgOTYgMjg4IDk2ek0yNDAgNDMyYTQ4IDQ4IDAgMSAxIDk2IDAgNDggNDggMCAxIDEgLTk2IDB6TTE2OCAzMjYuMmMtMTEuNyAxMy4zLTMxLjkgMTQuNS00NS4yIDIuOHMtMTQuNS0zMS45LTIuOC00NS4yQzE2MSAyMzcuNCAyMjEuMSAyMDggMjg4IDIwOHMxMjcgMjkuNCAxNjggNzUuOGMxMS43IDEzLjMgMTAuNCAzMy41LTIuOCA0NS4ycy0zMy41IDEwLjQtNDUuMi0yLjhDMzc4LjYgMjkyLjkgMzM1LjggMjcyIDI4OCAyNzJzLTkwLjYgMjAuOS0xMjAgNTQuMnoiXX0sQkR0PUhELEhEdD1IRCx0Yj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJtb25leS1jaGVjay1kb2xsYXIiLGljb246WzUxMiw1MTIsWyJtb25leS1jaGVjay1hbHQiXSwiZjUzZCIsIk02NCA2NEMyOC43IDY0IDAgOTIuNyAwIDEyOEwwIDM4NGMwIDM1LjMgMjguNyA2NCA2NCA2NGwzODQgMGMzNS4zIDAgNjQtMjguNyA2NC02NGwwLTI1NmMwLTM1LjMtMjguNy02NC02NC02NEw2NCA2NHpNMjk2IDI4OGwxMjggMGMxMy4zIDAgMjQgMTAuNyAyNCAyNHMtMTAuNyAyNC0yNCAyNGwtMTI4IDBjLTEzLjMgMC0yNC0xMC43LTI0LTI0czEwLjctMjQgMjQtMjR6bS0yNC04OGMwLTEzLjMgMTAuNy0yNCAyNC0yNGwxMjggMGMxMy4zIDAgMjQgMTAuNyAyNCAyNHMtMTAuNyAyNC0yNCAyNGwtMTI4IDBjLTEzLjMgMC0yNC0xMC43LTI0LTI0ek0xNDggMTQ0YzExIDAgMjAgOSAyMCAyMGwwIDQgOCAwYzExIDAgMjAgOSAyMCAyMHMtOSAyMC0yMCAyMGwtNDcuNSAwYy02LjkgMC0xMi41IDUuNi0xMi41IDEyLjUgMCA2LjEgNC40IDExLjMgMTAuNCAxMi4zbDQxLjcgN2MyNS4zIDQuMiA0My45IDI2LjEgNDMuOSA1MS44IDAgMjYuMS0xOSA0Ny43LTQ0IDUxLjhsMCA0LjdjMCAxMS05IDIwLTIwIDIwcy0yMC05LTIwLTIwbDAtNC0yNCAwYy0xMSAwLTIwLTktMjAtMjBzOS0yMCAyMC0yMGw1NS41IDBjNi45IDAgMTIuNS01LjYgMTIuNS0xMi41IDAtNi4xLTQuNC0xMS4zLTEwLjQtMTIuM2wtNDEuNy03Qzk0LjUgMjY4IDc2IDI0Ni4xIDc2IDIyMC41IDc2IDE5MS43IDk5LjIgMTY4LjMgMTI4IDE2OGwwLTRjMC0xMSA5LTIwIDIwLTIweiJdfSxxRHQ9dGIscTRlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImV5ZS1sb3ctdmlzaW9uIixpY29uOls1NzYsNTEyLFsibG93LXZpc2lvbiJdLCJmMmE4IiwiTTQxLTI0LjljLTkuNC05LjQtMjQuNi05LjQtMzMuOSAwUy0yLjMtLjMgNyA5LjFsNTI4IDUyOGM5LjQgOS40IDI0LjYgOS40IDMzLjkgMHM5LjQtMjQuNiAwLTMzLjlsLTk2LjQtOTYuNGMyLjctMi40IDUuNC00LjggOC03LjIgNDYuOC00My41IDc4LjEtOTUuNCA5My0xMzEuMSAzLjMtNy45IDMuMy0xNi43IDAtMjQuNi0xNC45LTM1LjctNDYuMi04Ny43LTkzLTEzMS4xLTQ3LjEtNDMuNy0xMTEuOC04MC42LTE5Mi42LTgwLjYtNTYuOCAwLTEwNS42IDE4LjItMTQ2IDQ0LjJMNDEtMjQuOXpNMjA0LjUgMTM4LjdjMjMuNS0xNi44IDUyLjQtMjYuNyA4My41LTI2LjcgNzkuNSAwIDE0NCA2NC41IDE0NCAxNDQgMCAzMS4xLTkuOSA1OS45LTI2LjcgODMuNWwtMzQuNy0zNC43YzEyLjctMjEuNCAxNy00Ny43IDEwLjEtNzMuNy0xMy43LTUxLjItNjYuNC04MS42LTExNy42LTY3LjktOC42IDIuMy0xNi43IDUuNy0yNCAxMGwtMzQuNy0zNC43ek04OCAxNTcuOWMtOS40LTkuNC0yNC42LTkuNC0zMy45IDBzLTkuNCAyNC42IDAgMzMuOUwzMjguMiA0NjZjOS40IDkuNCAyNC42IDkuNCAzMy45IDBzOS40LTI0LjYgMC0zMy45TDg4IDE1Ny45ek00NS43IDI1MS4zYy05LjQtOS40LTI0LjYtOS40LTMzLjkgMHMtOS40IDI0LjYgMCAzMy45TDE4MS45IDQ1NS41YzkuNCA5LjQgMjQuNiA5LjQgMzMuOSAwczkuNC0yNC42IDAtMzMuOUw0NS43IDI1MS4zeiJdfSxqRHQ9cTRlLGo0ZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJjaXJjbGUtYXJyb3ctdXAiLGljb246WzUxMiw1MTIsWyJhcnJvdy1jaXJjbGUtdXAiXSwiZjBhYSIsIk0yNTYgNTEyYTI1NiAyNTYgMCAxIDAgMC01MTIgMjU2IDI1NiAwIDEgMCAwIDUxMnptMTctMzc3bDgwIDgwYzkuNCA5LjQgOS40IDI0LjYgMCAzMy45cy0yNC42IDkuNC0zMy45IDBsLTM5LTM5IDAgMTUwLjFjMCAxMy4zLTEwLjcgMjQtMjQgMjRzLTI0LTEwLjctMjQtMjRsMC0xNTAuMS0zOSAzOWMtOS40IDkuNC0yNC42IDkuNC0zMy45IDBzLTkuNC0yNC42IDAtMzMuOWw4MC04MGM5LjQtOS40IDI0LjYtOS40IDMzLjkgMHoiXX0sVkR0PWo0ZSxVRHQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiY2FtZXJhLXJldHJvIixpY29uOls1MTIsNTEyLFsxMjgyNDddLCJmMDgzIiwiTTAgNDE2bDAtMjA4IDEzNi4yIDBjMTMuNS0yMC4yIDMyLTM2LjggNTMuNy00OEwwIDE2MCAwIDEyNS43YzAtMzUuMyAyOC43LTY0IDY0LTY0bC4xIDBDNjUuMyA0NS4xIDc5LjEgMzIgOTYgMzJsMzIgMGMxNi45IDAgMzAuNyAxMy4xIDMxLjkgMjkuN2wzMi4xIDAgNTEuMi0yMy44YzguNC0zLjkgMTcuNi02IDI2LjktNkw0NDggMzJjMzUuMyAwIDY0IDI4LjcgNjQgNjRsMCA2NC0xOTAgMGMyMS43IDExLjIgNDAuMiAyNy44IDUzLjcgNDhsMTM2LjIgMCAwIDIwOGMwIDM1LjMtMjguNyA2NC02NCA2NEw2NCA0ODBjLTM1LjMgMC02NC0yOC43LTY0LTY0ek0yNTYgMTkyYTk2LjEgOTYuMSAwIDEgMCAwIDE5Mi4xIDk2LjEgOTYuMSAwIDEgMCAwLTE5Mi4xeiJdfSxXRHQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiY2Fwc3VsZXMiLGljb246WzU3Niw1MTIsW10sImY0NmIiLCJNOTYgMTEyYzAtMjYuNSAyMS41LTQ4IDQ4LTQ4czQ4IDIxLjUgNDggNDhsMCAxMTItOTYgMCAwLTExMnptLTY0IDBsMCAyODhjMCA2MS45IDUwLjEgMTEyIDExMiAxMTJzMTEyLTUwLjEgMTEyLTExMmwwLTEwNS44IDExNi4zIDE2OS41YzM1LjUgNTEuNyAxMDUuMyA2NC4zIDE1NiAyOC4xczYzLTEwNy41IDI3LjUtMTU5LjJMNDI3LjMgMTQ1LjNjLTM1LjUtNTEuNy0xMDUuMy02NC4zLTE1Ni0yOC4xLTUuNiA0LTEwLjcgOC40LTE1LjMgMTMuMWwwLTE4LjNDMjU2IDUwLjEgMjA1LjkgMCAxNDQgMFMzMiA1MC4xIDMyIDExMnpNMjk2LjYgMjQwLjJjLTE2LTIzLjMtMTAtNTUuMyAxMS45LTcxIDIxLjItMTUuMSA1MC41LTEwLjMgNjYgMTIuMmw2NyA5Ny42LTc5LjkgNTUuOS02NS05NC44eiJdfSxHRHQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToicG9vIixpY29uOls1MTIsNTEyLFsxMjgxNjldLCJmMmZlIiwiTTI2OC45IC45Yy01LjUtLjctMTEgMS40LTE0LjUgNS43cy00LjYgMTAuMS0yLjggMTUuNGMyLjggOC4yIDQuMyAxNi45IDQuMyAyNi4xIDAgNDQuMS0zNS43IDc5LjktNzkuOCA4MEwxNjAgMTI4Yy0zNS4zIDAtNjQgMjguNy02NCA2NCAwIDE5LjEgOC40IDM2LjMgMjEuNyA0OEwxMDQgMjQwYy0zOS44IDAtNzIgMzIuMi03MiA3MiAwIDIzLjIgMTEgNDMuOCAyOCA1Ny0zNC4xIDUuNy02MCAzNS4zLTYwIDcxIDAgMzkuOCAzMi4yIDcyIDcyIDcybDM2OCAwYzM5LjggMCA3Mi0zMi4yIDcyLTcyIDAtMzUuNy0yNS45LTY1LjMtNjAtNzEgMTctMTMuMiAyOC0zMy44IDI4LTU3IDAtMzkuOC0zMi4yLTcyLTcyLTcybC0xMy43IDBjMTMuMy0xMS43IDIxLjctMjguOSAyMS43LTQ4IDAtMzUuMy0yOC43LTY0LTY0LTY0bC01LjUgMGMzLjUtMTAgNS41LTIwLjggNS41LTMyIDAtNDguNi0zNi4yLTg4LjgtODMuMS05NS4xek0xOTIgMjU2YTMyIDMyIDAgMSAxIDAgNjQgMzIgMzIgMCAxIDEgMC02NHptOTYgMzJhMzIgMzIgMCAxIDEgNjQgMCAzMiAzMiAwIDEgMSAtNjQgMHptNjQgMTA4LjNjMCAyLjQtLjcgNC44LTIuMiA2LjctOC4yIDEwLjUtMzkuNSA0NS05My44IDQ1cy04NS42LTM0LjYtOTMuOC00NWMtMS41LTEuOS0yLjItNC4zLTIuMi02LjcgMC02LjggNS41LTEyLjMgMTIuMy0xMi4zbDE2Ny40IDBjNi44IDAgMTIuMyA1LjUgMTIuMyAxMi4zeiJdfSxWNGU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToidm9sdW1lIixpY29uOls1MTIsNTEyLFsxMjgyNjUsInZvbHVtZS1tZWRpdW0iXSwiZjZhOCIsIk00OCAzNTJsNDggMCAxMzQuMSAxMTkuMmM2LjQgNS43IDE0LjYgOC44IDIzLjEgOC44IDE5LjIgMCAzNC44LTE1LjYgMzQuOC0zNC44bDAtMzc4LjRjMC0xOS4yLTE1LjYtMzQuOC0zNC44LTM0LjgtOC41IDAtMTYuNyAzLjEtMjMuMSA4LjhMOTYgMTYwIDQ4IDE2MGMtMjYuNSAwLTQ4IDIxLjUtNDggNDhsMCA5NmMwIDI2LjUgMjEuNSA0OCA0OCA0OHpNNDQxLjEgMTA3Yy0xMC4zLTguNC0yNS40LTYuOC0zMy44IDMuNXMtNi44IDI1LjQgMy41IDMzLjhDNDQzLjMgMTcwLjcgNDY0IDIxMC45IDQ2NCAyNTZzLTIwLjcgODUuMy01My4yIDExMS44Yy0xMC4zIDguNC0xMS44IDIzLjUtMy41IDMzLjhzMjMuNSAxMS44IDMzLjggMy41YzQzLjItMzUuMiA3MC45LTg4LjkgNzAuOS0xNDlzLTI3LjctMTEzLjgtNzAuOS0xNDl6bS02MC41IDc0LjVjLTEwLjMtOC40LTI1LjQtNi44LTMzLjggMy41cy02LjggMjUuNCAzLjUgMzMuOEMzNjEuMSAyMjcuNiAzNjggMjQxIDM2OCAyNTZzLTYuOSAyOC40LTE3LjcgMzcuM2MtMTAuMyA4LjQtMTEuOCAyMy41LTMuNSAzMy44czIzLjUgMTEuOCAzMy44IDMuNUM0MDIuMSAzMTIuOSA0MTYgMjg2LjEgNDE2IDI1NnMtMTMuOS01Ni45LTM1LjUtNzQuNXoiXX0sWUR0PVY0ZSxaRHQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZWxldmF0b3IiLGljb246WzUxMiw1MTIsW10sImUxNmQiLCJNMjkyLjctNC43bDY0IDY0YzYuMiA2LjIgMTYuNCA2LjIgMjIuNiAwbDY0LTY0YzQuNi00LjYgNS45LTExLjUgMy41LTE3LjRTNDM4LjUtMzIgNDMyLTMyTDMwNC0zMmMtNi41IDAtMTIuMyAzLjktMTQuOCA5LjlzLTEuMSAxMi45IDMuNSAxNy40em0tMTYwLTIyLjZsLTY0IDY0Yy00LjYgNC42LTUuOSAxMS41LTMuNSAxNy40UzczLjUgNjQgODAgNjRsMTI4IDBjNi41IDAgMTIuMy0zLjkgMTQuOC05LjlzMS4xLTEyLjktMy41LTE3LjRsLTY0LTY0Yy02LjItNi4yLTE2LjQtNi4yLTIyLjYgMHpNNjQgMTI4Yy0zNS4zIDAtNjQgMjguNy02NCA2NEwwIDQ0OGMwIDM1LjMgMjguNyA2NCA2NCA2NGwzODQgMGMzNS4zIDAgNjQtMjguNyA2NC02NGwwLTI1NmMwLTM1LjMtMjguNy02NC02NC02NEw2NCAxMjh6bTk2IDk2YTQ4IDQ4IDAgMSAxIDAgOTYgNDggNDggMCAxIDEgMC05NnpNODAgNDAwYzAtMjYuNSAyMS41LTQ4IDQ4LTQ4bDY0IDBjMjYuNSAwIDQ4IDIxLjUgNDggNDhsMCAxNmMwIDE3LjctMTQuMyAzMi0zMiAzMmwtOTYgMGMtMTcuNyAwLTMyLTE0LjMtMzItMzJsMC0xNnptMTkyIDBjMC0yNi41IDIxLjUtNDggNDgtNDhsNjQgMGMyNi41IDAgNDggMjEuNSA0OCA0OGwwIDE2YzAgMTcuNy0xNC4zIDMyLTMyIDMybC05NiAwYy0xNy43IDAtMzItMTQuMy0zMi0zMmwwLTE2em0zMi0xMjhhNDggNDggMCAxIDEgOTYgMCA0OCA0OCAwIDEgMSAtOTYgMHoiXX0sWER0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InRhZyIsaWNvbjpbNTEyLDUxMixbMTI3OTkxXSwiZjAyYiIsIk0zMi41IDk2bDAgMTQ5LjVjMCAxNyA2LjcgMzMuMyAxOC43IDQ1LjNsMTkyIDE5MmMyNSAyNSA2NS41IDI1IDkwLjUgMEw0ODMuMiAzMzMuM2MyNS0yNSAyNS02NS41IDAtOTAuNWwtMTkyLTE5MkMyNzkuMiAzOC43IDI2MyAzMiAyNDYgMzJMOTYuNSAzMmMtMzUuMyAwLTY0IDI4LjctNjQgNjR6bTExMiAxNmEzMiAzMiAwIDEgMSAwIDY0IDMyIDMyIDAgMSAxIDAtNjR6Il19LFFEdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJmaWxlLWNpcmNsZS1taW51cyIsaWNvbjpbNTc2LDUxMixbXSwiZTRlZCIsIk05NiAwQzYwLjcgMCAzMiAyOC43IDMyIDY0bDAgMzg0YzAgMzUuMyAyOC43IDY0IDY0IDY0bDE4MCAwYy0yMi43LTMxLjUtMzYtNzAuMi0zNi0xMTIgMC0xMDAuNiA3Ny40LTE4My4yIDE3Ni0xOTEuM2wwLTM4LjFjMC0xNy02LjctMzMuMy0xOC43LTQ1LjNMMjkwLjcgMTguN0MyNzguNyA2LjcgMjYyLjUgMCAyNDUuNSAwTDk2IDB6TTM1Ny41IDE3NkwyNjQgMTc2Yy0xMy4zIDAtMjQtMTAuNy0yNC0yNEwyNDAgNTguNSAzNTcuNSAxNzZ6TTU3NiA0MDBhMTQ0IDE0NCAwIDEgMCAtMjg4IDAgMTQ0IDE0NCAwIDEgMCAyODggMHptLTY0IDBjMCA4LjgtNy4yIDE2LTE2IDE2bC0xMjggMGMtOC44IDAtMTYtNy4yLTE2LTE2czcuMi0xNiAxNi0xNmwxMjggMGM4LjggMCAxNiA3LjIgMTYgMTZ6Il19LFU0ZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJkb3duLWxvbmciLGljb246WzMyMCw1MTIsWyJsb25nLWFycm93LWFsdC1kb3duIl0sImYzMDkiLCJNMTM3LjQgNTM0LjZjMTIuNSAxMi41IDMyLjggMTIuNSA0NS4zIDBsMTI4LTEyOGM5LjItOS4yIDExLjktMjIuOSA2LjktMzQuOVMzMDAuOSAzNTIgMjg4IDM1MmwtNjQgMCAwLTMzNmMwLTI2LjUtMjEuNS00OC00OC00OGwtMzIgMGMtMjYuNSAwLTQ4IDIxLjUtNDggNDhsMCAzMzYtNjQgMGMtMTIuOSAwLTI0LjYgNy44LTI5LjYgMTkuOFMuMiAzOTcuNSA5LjQgNDA2LjZsMTI4IDEyOHoiXX0sSkR0PVU0ZSxLRHQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiY29tcGFjdC1kaXNjIixpY29uOls1MTIsNTEyLFsxMjgxOTEsMTI4MTkyLDEyODQ0MF0sImY1MWYiLCJNMCAyNTZhMjU2IDI1NiAwIDEgMSA1MTIgMCAyNTYgMjU2IDAgMSAxIC01MTIgMHptMjU2IDMyYTMyIDMyIDAgMSAxIDAtNjQgMzIgMzIgMCAxIDEgMCA2NHptLTk2LTMyYTk2IDk2IDAgMSAwIDE5MiAwIDk2IDk2IDAgMSAwIC0xOTIgMHptLTU2LTE2YzAtMzIuNCAxNi4zLTY2LjYgNDIuOC05My4yUzIwNy42IDEwNCAyNDAgMTA0YzEzLjMgMCAyNC0xMC43IDI0LTI0cy0xMC43LTI0LTI0LTI0Yy00Ny45IDAtOTMuNyAyMy41LTEyNy4xIDU2LjlTNTYgMTkyLjEgNTYgMjQwYzAgMTMuMyAxMC43IDI0IDI0IDI0czI0LTEwLjcgMjQtMjR6Il19LGVFdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJzdWl0Y2FzZS1yb2xsaW5nIixpY29uOlszODQsNTEyLFtdLCJmNWMxIiwiTTE0NCAyNGMwLTQuNCAzLjYtOCA4LThsODAgMGM0LjQgMCA4IDMuNiA4IDhsMCA3Mi05NiAwIDAtNzJ6TTMyMCA5NmwtMzIgMCAwLTcyYzAtMzAuOS0yNS4xLTU2LTU2LTU2bC04MCAwQzEyMS4xLTMyIDk2LTYuOSA5NiAyNGwwIDcyLTMyIDBDMjguNyA5NiAwIDEyNC43IDAgMTYwTDAgNDQ4YzAgMzUuMyAyOC43IDY0IDY0IDY0IDAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJsMTI4IDBjMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMmMzNS4zIDAgNjQtMjguNyA2NC02NGwwLTI4OGMwLTM1LjMtMjguNy02NC02NC02NHpNMTIwIDIwOGwxNDQgMGMxMy4zIDAgMjQgMTAuNyAyNCAyNHMtMTAuNyAyNC0yNCAyNGwtMTQ0IDBjLTEzLjMgMC0yNC0xMC43LTI0LTI0czEwLjctMjQgMjQtMjR6bTAgMTI4bDE0NCAwYzEzLjMgMCAyNCAxMC43IDI0IDI0cy0xMC43IDI0LTI0IDI0bC0xNDQgMGMtMTMuMyAwLTI0LTEwLjctMjQtMjRzMTAuNy0yNCAyNC0yNHoiXX0sVzRlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImJvb2stcXVyYW4iLGljb246WzQ0OCw1MTIsWyJxdXJhbiJdLCJmNjg3IiwiTTY0IDUxMmwyODggMGM1MyAwIDk2LTQzIDk2LTk2bDAtMzIwYzAtNTMtNDMtOTYtOTYtOTZMNDggMEMyMS41IDAgMCAyMS41IDAgNDhMMCAzMzZjMCAyMC45IDEzLjQgMzguNyAzMiA0NS4zTDMyIDQ0OGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJzMTQuMyAzMiAzMiAzMmwzMiAwek0zNTIgMzg0YzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMybC0yNTYgMCAwLTY0IDI1NiAwek0yNzMuMSAxNDQuNGMyLjUtNi4xIDExLjItNi4xIDEzLjcgMGwxMC4zIDI0LjggMjYuOCAyLjFjNi42IC41IDkuMiA4LjcgNC4yIDEzTDMwNy44IDIwMS45IDMxNCAyMjhjMS41IDYuNC01LjUgMTEuNS0xMS4xIDguMWwtMjIuOS0xNC0yMi45IDE0Yy01LjYgMy40LTEyLjYtMS42LTExLjEtOC4xbDYuMi0yNi4xLTIwLjQtMTcuNWMtNS00LjMtMi4zLTEyLjUgNC4yLTEzbDI2LjgtMi4xIDEwLjMtMjQuOHpNMTAwIDE5MmMwLTY4LjUgNTUuNS0xMjQgMTI0LTEyNCAyMy44IDAgNDYuMSA2LjcgNjUgMTguNCA0LjggMi45IDYuOSA4LjggNSAxNC4xcy03LjEgOC42LTEyLjcgOGMtMy4xLS4zLTYuMi0uNS05LjQtLjUtNDYuNCAwLTg0IDM3LjYtODQgODRzMzcuNiA4NCA4NCA4NGMzLjIgMCA2LjMtLjIgOS40LS41IDUuNi0uNiAxMC44IDIuNyAxMi43IDhzLS4zIDExLjItNSAxNC4xYy0xOC45IDExLjctNDEuMiAxOC40LTY1IDE4LjQtNjguNSAwLTEyNC01NS41LTEyNC0xMjR6Il19LHRFdD1XNGUsckV0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InBob25lLXNsYXNoIixpY29uOls1NzYsNTEyLFtdLCJmM2RkIiwiTTUzNS0yNC45YzkuNC05LjQgMjQuNi05LjQgMzMuOSAwczkuNCAyNC42IDAgMzMuOUw0MSA1MzcuMWMtOS40IDkuNC0yNC42IDkuNC0zMy45IDBzLTkuNC0yNC42IDAtMzMuOUwxNDEuNSAzNjguNkM4OS4yIDMxMC41IDUxLjYgMjM4LjggMzQuOCAxNTkuNCAxOC43IDgzLjEgNzMuOSAyMC42IDEzOC41IDIuOWw1LjUtMS41YzE5LjctNS40IDQwLjMgNC43IDQ4LjEgMjMuNWw0MC41IDk3LjNjNi45IDE2LjUgMi4xIDM1LjYtMTEuOCA0N2wtNDQuMSAzNi4xYzEyLjkgMjguNSAyOS42IDU0LjggNDkuNSA3OC41TDUzNS0yNC45em0tMTUwLjQgNTM0Yy02My0xMy40LTEyMS4zLTM5LjgtMTcxLjctNzYuM0wyOTcuOCAzNDhjMTIuMiA4LjIgMjUgMTUuNiAzOC4zIDIyLjJMMzc0LjcgMzIzYzExLjMtMTMuOSAzMC40LTE4LjYgNDctMTEuOEw1MTkgMzUxLjhjMTguOCA3LjggMjguOSAyOC40IDIzLjUgNDguMWwtMS41IDUuNWMtMTcuNiA2NC42LTgwLjIgMTE5LjgtMTU2LjQgMTAzLjd6Il19LGlFdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJyb2FkLWNpcmNsZS1jaGVjayIsaWNvbjpbNjQwLDUxMixbXSwiZTU2NCIsIk0yODggMzJsLTc2LjMgMGMtMjkuNCAwLTU1LjEgMjAuMS02Mi4xIDQ4LjZMNjUuNCA0MjAuNUM1Ny45IDQ1MC43IDgwLjggNDgwIDExMiA0ODBsMjA5LjQgMGMtMTEuMi0yNC40LTE3LjQtNTEuNC0xNy40LTgwIDAtMjguNiA2LjItNTUuNyAxNy40LTgwLS41IDAtMSAwLTEuNSAwLTE3LjcgMC0zMi0xNC4zLTMyLTMybDAtNjRjMC0xNy43IDE0LjMtMzIgMzItMzJzMzIgMTQuMyAzMiAzMmwwIDQ5YzM1LjItMzkuOSA4Ni43LTY1IDE0NC02NSA5IDAgMTcuOCAuNiAyNi41IDEuOGwtMzItMTI5LjJDNDgzLjQgNTIuMSA0NTcuOCAzMiA0MjguMyAzMmwtNzYuNCAwIDAgNjRjMCAxNy43LTE0LjMgMzItMzIgMzJzLTMyLTE0LjMtMzItMzJsMC02NHpNNjQwIDQwMGExNDQgMTQ0IDAgMSAwIC0yODggMCAxNDQgMTQ0IDAgMSAwIDI4OCAwem0tODYuNi02MC45YzcuMSA1LjIgOC43IDE1LjIgMy41IDIyLjNsLTY0IDg4Yy0yLjggMy44LTcgNi4yLTExLjcgNi41cy05LjMtMS4zLTEyLjYtNC42bC00MC00MGMtNi4yLTYuMi02LjItMTYuNCAwLTIyLjZzMTYuNC02LjIgMjIuNiAwbDI2LjggMjYuOCA1My03Mi45YzUuMi03LjEgMTUuMi04LjcgMjIuNC0zLjV6Il19LGFFdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJzaG9wLWxvY2siLGljb246WzY0MCw1MTIsW10sImU0YTUiLCJNMjEuNSAxODEuMUw3OC4zIDY3LjRDODkuMiA0NS43IDExMS4zIDMyIDEzNS42IDMybDMwNC45IDBjMjQuMiAwIDQ2LjQgMTMuNyA1Ny4yIDM1LjRsNTUuNiAxMTEuMWMtOC4yLTEuNi0xNi42LTIuNS0yNS4yLTIuNS01My43IDAtOTkuNyAzMy4xLTExOC43IDgwbC01Ny4zIDAgMCAxNzZjMCAyNi41LTIxLjUgNDgtNDggNDhsLTE5MiAwYy0yNi41IDAtNDgtMjEuNS00OC00OGwwLTE3Ni4xYy0yNi44LTEuOS00OC0yNC4zLTQ4LTUxLjYgMC04IDEuOS0xNiA1LjUtMjMuMnpNMTI4IDI1NmwwIDExMmMwIDguOCA3LjIgMTYgMTYgMTZsMTI4IDBjOC44IDAgMTYtNy4yIDE2LTE2bDAtMTEyLTE2MCAwem00MzIgNDguMWMwLTE3LjctMTQuMy0zMi0zMi0zMnMtMzIgMTQuMy0zMiAzMmwwIDQ3LjkgNjQgMCAwLTQ3Ljl6TTQxNiA0MDBjMC0yMC45IDEzLjQtMzguNyAzMi00NS4zbDAtNTAuNmMwLTQ0LjIgMzUuOC04MCA4MC04MHM4MCAzNS44IDgwIDgwbDAgNTAuNmMxOC42IDYuNiAzMiAyNC40IDMyIDQ1LjNsMCA5NmMwIDI2LjUtMjEuNSA0OC00OCA0OGwtMTI4IDBjLTI2LjUgMC00OC0yMS41LTQ4LTQ4bDAtOTZ6Il19LEc0ZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJpbWFnZS1wb3J0cmFpdCIsaWNvbjpbMzg0LDUxMixbInBvcnRyYWl0Il0sImYzZTAiLCJNMCA2NEMwIDI4LjcgMjguNyAwIDY0IDBMMzIwIDBjMzUuMyAwIDY0IDI4LjcgNjQgNjRsMCAzODRjMCAzNS4zLTI4LjcgNjQtNjQgNjRMNjQgNTEyYy0zNS4zIDAtNjQtMjguNy02NC02NEwwIDY0ek04MCAzNjhjMCA4LjggNy4yIDE2IDE2IDE2bDE5MiAwYzguOCAwIDE2LTcuMiAxNi0xNiAwLTQ0LjItMzUuOC04MC04MC04MGwtNjQgMGMtNDQuMiAwLTgwIDM1LjgtODAgODB6TTE5MiAyNDhhNTYgNTYgMCAxIDAgMC0xMTIgNTYgNTYgMCAxIDAgMCAxMTJ6Il19LG5FdD1HNGUsb0V0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImJyaWRnZS1sb2NrIixpY29uOls1NzYsNTEyLFtdLCJlNGNjIiwiTTAgNjRDMCA0Ni4zIDE0LjMgMzIgMzIgMzJsNDQ4IDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJsLTggMCAwIDMyLjJjMTMuOCAuNiAyNy4yIDIuOCA0MCA2LjRsMCA1MC43Yy0xNC44LTYtMzEtOS4zLTQ4LTkuMy03MC43IDAtMTI4IDU3LjMtMTI4IDEyOGwwIDI0LjRjLS40IC4zLS43IC42LTEuMSAxLTE3LjMtMjUtNDYuMi00MS4zLTc4LjktNDEuMy01MyAwLTk2IDQzLTk2IDk2bDAgNjRjMCAxNy43LTE0LjMgMzItMzIgMzJsLTMyIDBjLTE3LjcgMC0zMi0xNC4zLTMyLTMybDAtOTRjMC0zOC44LTI2LjQtNzIuNi02NC04MmwwLTExMiA0MCAwIDAtNjQtOCAwQzE0LjMgOTYgMCA4MS43IDAgNjR6bTQyNCA2OC42bDAtMzYuNi04MCAwIDAgNjQgMTguOCAwYzE4LjItMTIuOCAzOC45LTIyLjIgNjEuMi0yNy40ek0yMTYgOTZsMCA2NCA4MCAwIDAtNjQtODAgMHptLTQ4IDBsLTgwIDAgMCA2NCA4MCAwIDAtNjR6TTQ5NiAzMDQuMWMwLTE3LjctMTQuMy0zMi0zMi0zMnMtMzIgMTQuMy0zMiAzMmwwIDQ3LjkgNjQgMCAwLTQ3Ljl6TTM1MiA0MDBjMC0yMC45IDEzLjQtMzguNyAzMi00NS4zbDAtNTAuNmMwLTQ0LjIgMzUuOC04MCA4MC04MHM4MCAzNS44IDgwIDgwbDAgNTAuNmMxOC42IDYuNiAzMiAyNC40IDMyIDQ1LjNsMCA5NmMwIDI2LjUtMjEuNSA0OC00OCA0OGwtMTI4IDBjLTI2LjUgMC00OC0yMS41LTQ4LTQ4bDAtOTZ6Il19LHNFdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJoYW1tZXIiLGljb246WzY0MCw1MTIsWzEyODI5Nl0sImY2ZTMiLCJNMjQ2LjkgMTguM0wyNzEgMy44YzIxLjYtMTMgNDYuMy0xOS44IDcxLjUtMTkuOCAzNi44IDAgNzIuMiAxNC42IDk4LjIgNDAuN2w2My45IDYzLjljMTUgMTUgMjMuNCAzNS40IDIzLjQgNTYuNmwwIDMwLjkgMTkuNyAxOS43IDAgMGMxNS42LTE1LjYgNDAuOS0xNS42IDU2LjYgMHMxNS42IDQwLjkgMCA1Ni42bC02NCA2NGMtMTUuNiAxNS42LTQwLjkgMTUuNi01Ni42IDBzLTE1LjYtNDAuOSAwLTU2LjZMNDY0IDI0MCA0MzMuMSAyNDBjLTIxLjIgMC00MS42LTguNC01Ni42LTIzLjRsLTQ5LjEtNDkuMWMtMTUtMTUtMjMuNC0zNS40LTIzLjQtNTYuNmwwLTEyLjdjMC0xMS4yLTUuOS0yMS43LTE1LjUtMjcuNGwtNDEuNi0yNWMtMTAuNC02LjItMTAuNC0yMS4yIDAtMjcuNHpNNTAuNyA0MDIuN2wyMjIuMS0yMjIuMSA5MC41IDkwLjUtMjIyLjEgMjIyLjFjLTI1IDI1LTY1LjUgMjUtOTAuNSAwcy0yNS02NS41IDAtOTAuNXoiXX0sWTRlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImFycm93LXVwLTEtOSIsaWNvbjpbNTEyLDUxMixbInNvcnQtbnVtZXJpYy11cCJdLCJmMTYzIiwiTTE1MC42IDQxLjRjLTEyLjUtMTIuNS0zMi44LTEyLjUtNDUuMyAwbC05NiA5NmMtMTIuNSAxMi41LTEyLjUgMzIuOCAwIDQ1LjNzMzIuOCAxMi41IDQ1LjMgMEw5NiAxNDEuMyA5NiA0NDhjMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMmwwLTMwNi43IDQxLjQgNDEuNGMxMi41IDEyLjUgMzIuOCAxMi41IDQ1LjMgMHMxMi41LTMyLjggMC00NS4zbC05Ni05NnpNNDE4LjcgMzhjLTguMy02LTE5LjEtNy43LTI4LjgtNC40bC00OCAxNmMtMTYuOCA1LjYtMjUuOCAyMy43LTIwLjIgNDAuNXMyMy43IDI1LjggNDAuNSAyMC4ybDUuOS0yIDAgNTEuNi0xNiAwYy0xNy43IDAtMzIgMTQuMy0zMiAzMnMxNC4zIDMyIDMyIDMybDk2IDBjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJsLTE2IDAgMC05NmMwLTEwLjMtNC45LTE5LjktMTMuMy0yNnpNMzY1LjEgNDMwLjZjLTkuNiAxNC44LTUuNCAzNC42IDkuNCA0NC4zczM0LjYgNS40IDQ0LjMtOS40bDQyLjEtNjQuOWMxMi40LTE5LjIgMTkuMS00MS42IDE5LjEtNjQuNSAwLTQ0LjItMzUuOC04MC04MC04MHMtODAgMzUuOC04MCA4MGMwIDM2LjEgMjMuOSA2Ni43IDU2LjggNzYuNmwtMTEuNyAxOHpNMzc2IDMzNmEyNCAyNCAwIDEgMSA0OCAwIDI0IDI0IDAgMSAxIC00OCAweiJdfSxsRXQ9WTRlLGNFdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJjaGVzcy1rbmlnaHQiLGljb246WzM4NCw1MTIsWzk4MjJdLCJmNDQxIiwiTTE5Mi0zMmMxMDYgMCAxOTIgODYgMTkyIDE5MmwwIDEzMy41YzAgMTctNi44IDMzLjItMTguNyA0NS4yTDMyMCAzODQgMzcwLjggNDM0LjdjOC41IDguNSAxMy4yIDIwIDEzLjIgMzIgMCAyNS0yMC4zIDQ1LjItNDUuMiA0NS4zTDQ1LjMgNTEyYy0yNSAwLTQ1LjItMjAuMy00NS4yLTQ1LjMgMC0xMiA0LjgtMjMuNSAxMy4yLTMyTDY0IDM4NCA2NCAzNDkuNGMwLTE4LjcgOC4yLTM2LjQgMjIuMy00OC42bDg5LjctNzYuOC00OCAwLTEyLjEgMTIuMWMtMTIuNyAxMi43LTMwIDE5LjktNDggMTkuOS0zNy41IDAtNjcuOS0zMC40LTY3LjktNjcuOWwwLTguN2MwLTIyLjggOC4yLTQ0LjkgMjMuMS02Mi4zTDk2IDMyIDk2IDBjMC0xNy43IDE0LjMtMzIgMzItMzJsNjQgMHpNMTYwIDcyYTI0IDI0IDAgMSAwIDAgNDggMjQgMjQgMCAxIDAgMC00OHoiXX0sZEV0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImhvdXNlLWZsb29kLXdhdGVyLWNpcmNsZS1hcnJvdy1yaWdodCIsaWNvbjpbNjQwLDUxMixbXSwiZTUwZiIsIk0yODguNSAxMTJhMTQ0IDE0NCAwIDEgMCAtMjg4IDAgMTQ0IDE0NCAwIDEgMCAyODggMHpNMTQxLjIgNDQuN2M2LjItNi4yIDE2LjQtNi4yIDIyLjYgMGw1NiA1NmM2LjIgNi4yIDYuMiAxNi40IDAgMjIuNmwtNTYgNTZjLTYuMiA2LjItMTYuNCA2LjItMjIuNiAwcy02LjItMTYuNCAwLTIyLjZsMjguNy0yOC43LTg5LjQgMGMtOC44IDAtMTYtNy4yLTE2LTE2czcuMi0xNiAxNi0xNmw4OS40IDAtMjguNy0yOC43Yy02LjItNi4yLTYuMi0xNi40IDAtMjIuNnpNMzM2LjUgMTEyYzAgNzEuMS0zOC42IDEzMy4xLTk2IDE2Ni4zbDAgMTIuOGMyMi4xIDQuNSA0My40IDEzLjkgNjIuNCAyOC4yIDIyLjEgMTYuNiAyOS4xIDE2LjYgNTEuMiAwIDI3LjUtMjAuNyA1OS45LTMxLjIgOTIuNC0zMS40IDMzLjEtLjIgNjYuMyAxMC4yIDk0LjQgMzEuNCA2LjkgNS4yIDEyLjggOSAxOCAxMS43IC42IC4zIDEuMiAuNiAxLjggMSA0LjIgMi4zIDguNSA0LjYgMTIuNiAxLjUgNi00LjUgMTIuNi04IDE5LjMtMTAuNGwwLTExNS4yIDQuNSAwYzE1LjIgMCAyNy41LTEyLjMgMjcuNS0yNy41IDAtNy45LTMuNC0xNS41LTkuNC0yMC43TDQ0NC41IDEwLjVDNDM2LjggMy43IDQyNi44IDAgNDE2LjUgMHMtMjAuMyAzLjctMjggMTAuNUwzMjkuOSA2MS44YzQuMyAxNiA2LjYgMzIuOCA2LjYgNTAuMnptMzIgODhjMC0xMy4zIDEwLjctMjQgMjQtMjRsNDggMGMxMy4zIDAgMjQgMTAuNyAyNCAyNGwwIDQ4YzAgMTMuMy0xMC43IDI0LTI0IDI0bC00OCAwYy0xMy4zIDAtMjQtMTAuNy0yNC0yNGwwLTQ4ek00NzUuMSA0MTIuMWMxOSAxNC40IDQxLjkgMjguMiA2Ny4yIDMzLjMgMjYuNSA1LjQgNTQuMyAuOCA4MC43LTE5LjEgMTAuNi04IDEyLjctMjMgNC43LTMzLjZzLTIzLTEyLjctMzMuNi00LjdjLTE0LjkgMTEuMi0yOC42IDEzLjEtNDIuMyAxMC4zLTE0LjktMy0zMC45LTExLjktNDcuOC0yNC42LTM4LjQtMjktOTAuNS0yOS0xMjkgMC0yNCAxOC4xLTQwLjcgMjYuMy01NC41IDI2LjNTMjkwIDM5MS44IDI2NiAzNzMuN2MtMzguNC0yOS05MC41LTI5LTEyOSAwLTIxLjYgMTYuMy00MS4zIDI1LjgtNTguOSAyNS43LTkuNi0uMS0xOS45LTMtMzEuMi0xMS41LTEwLjYtOC0yNS42LTUuOS0zMy42IDQuN3MtNS45IDI1LjYgNC43IDMzLjZjMTkuMSAxNC40IDM5LjQgMjEgNTkuOCAyMS4xIDMzLjkgLjIgNjQuMy0xNy40IDg4LjEtMzUuMyAyMS4zLTE2LjEgNDkuOS0xNi4xIDcxLjIgMCAyNC4yIDE4LjMgNTIuMyAzNS45IDgzLjQgMzUuOXM1OS4xLTE3LjcgODMuNC0zNS45YzIxLjMtMTYuMSA0OS45LTE2LjEgNzEuMiAwem0tNzEuMiA5NmMyMS4zLTE2LjEgNDkuOS0xNi4xIDcxLjIgMCAxOSAxNC40IDQxLjkgMjguMiA2Ny4yIDMzLjMgMjYuNSA1LjQgNTQuMyAuOCA4MC43LTE5LjEgMTAuNi04IDEyLjctMjMgNC43LTMzLjZzLTIzLTEyLjctMzMuNi00LjdjLTE0LjkgMTEuMi0yOC42IDEzLjEtNDIuMyAxMC4zLTE0LjktMy0zMC45LTExLjktNDcuOC0yNC42LTM4LjQtMjktOTAuNS0yOS0xMjkgMC0yNCAxOC4xLTQwLjcgMjYuMy01NC41IDI2LjNTMjkwIDQ4Ny44IDI2NiA0NjkuN2MtMzguNC0yOS05MC41LTI5LTEyOSAwLTIxLjYgMTYuMy00MS4zIDI1LjgtNTguOSAyNS43LTkuNi0uMS0xOS45LTMtMzEuMi0xMS41LTEwLjYtOC0yNS42LTUuOS0zMy42IDQuN3MtNS45IDI1LjYgNC43IDMzLjZjMTkuMSAxNC40IDM5LjQgMjEgNTkuOCAyMS4xIDMzLjkgLjIgNjQuMy0xNy40IDg4LjEtMzUuMyAyMS4zLTE2LjEgNDkuOS0xNi4xIDcxLjIgMCAyNC4yIDE4LjMgNTIuMyAzNS45IDgzLjQgMzUuOXM1OS4xLTE3LjcgODMuNC0zNS45eiJdfSxyYj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJhcnJvdy11cC1yaWdodC1mcm9tLXNxdWFyZSIsaWNvbjpbNTEyLDUxMixbImV4dGVybmFsLWxpbmsiXSwiZjA4ZSIsIk0zMjAgMGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJzMTQuMyAzMiAzMiAzMmw4Mi43IDAtMjAxLjQgMjAxLjRjLTEyLjUgMTIuNS0xMi41IDMyLjggMCA0NS4zczMyLjggMTIuNSA0NS4zIDBMNDQ4IDEwOS4zIDQ0OCAxOTJjMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMmwwLTE2MGMwLTE3LjctMTQuMy0zMi0zMi0zMkwzMjAgMHpNODAgOTZDMzUuOCA5NiAwIDEzMS44IDAgMTc2TDAgNDMyYzAgNDQuMiAzNS44IDgwIDgwIDgwbDI1NiAwYzQ0LjIgMCA4MC0zNS44IDgwLTgwbDAtODBjMC0xNy43LTE0LjMtMzItMzItMzJzLTMyIDE0LjMtMzIgMzJsMCA4MGMwIDguOC03LjIgMTYtMTYgMTZMODAgNDQ4Yy04LjggMC0xNi03LjItMTYtMTZsMC0yNTZjMC04LjggNy4yLTE2IDE2LTE2bDgwIDBjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJMODAgOTZ6Il19LHVFdD1yYixwRXQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiYXJyb3ctZG93bi11cC1hY3Jvc3MtbGluZSIsaWNvbjpbNTEyLDUxMixbXSwiZTRhZiIsIk0yNjUuNCAxMDUuNGw5Ni05NmMxMi41LTEyLjUgMzIuOC0xMi41IDQ1LjMgMGw5NiA5NmMxMi41IDEyLjUgMTIuNSAzMi44IDAgNDUuM3MtMzIuOCAxMi41LTQ1LjMgMGwtNDEuNC00MS40IDAgMTE0LjcgNjQgMGMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMmwtMzIwIDAgMCAxMTQuNyA0MS40LTQxLjRjMTIuNS0xMi41IDMyLjgtMTIuNSA0NS4zIDBzMTIuNSAzMi44IDAgNDUuM2wtOTYgOTZjLTEyLjUgMTIuNS0zMi44IDEyLjUtNDUuMyAwbC05Ni05NmMtMTIuNS0xMi41LTEyLjUtMzIuOCAwLTQ1LjNzMzIuOC0xMi41IDQ1LjMgMEw5NiA0MDIuNyA5NiAyODggMzIgMjg4Yy0xNy43IDAtMzItMTQuMy0zMi0zMnMxNC4zLTMyIDMyLTMybDMyMCAwIDAtMTE0LjctNDEuNCA0MS40Yy0xMi41IDEyLjUtMzIuOCAxMi41LTQ1LjMgMHMtMTIuNS0zMi44IDAtNDUuM3pNNDE2IDMzNmwwIDE0NGMwIDE3LjctMTQuMyAzMi0zMiAzMnMtMzItMTQuMy0zMi0zMmwwLTE0NCA2NCAwek05NiAxNzZMOTYgMzJjMC0xNy43IDE0LjMtMzIgMzItMzJzMzIgMTQuMyAzMiAzMmwwIDE0NC02NCAweiJdfSxaNGU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZmFjZS1ncmluLWJlYW0iLGljb246WzUxMiw1MTIsWzEyODUxNiwiZ3Jpbi1iZWFtIl0sImY1ODIiLCJNMjU2IDUxMmEyNTYgMjU2IDAgMSAwIDAtNTEyIDI1NiAyNTYgMCAxIDAgMCA1MTJ6TTM4Ni43IDMwOC45YzExLjktMy43IDIzLjkgNi4zIDE5LjYgMTguMS0yMi40IDYxLjMtODEuMyAxMDUuMS0xNTAuMyAxMDUuMVMxMjguMSAzODguMiAxMDUuNyAzMjYuOWMtNC4zLTExLjggNy43LTIxLjggMTkuNi0xOC4xIDM5LjIgMTIuMiA4My43IDE5LjEgMTMwLjcgMTkuMXM5MS41LTYuOSAxMzAuNy0xOS4xek0xNzYgMTgwYy0xNS41IDAtMjggMTIuNS0yOCAyOGwwIDhjMCAxMS05IDIwLTIwIDIwcy0yMC05LTIwLTIwbDAtOGMwLTM3LjYgMzAuNC02OCA2OC02OHM2OCAzMC40IDY4IDY4bDAgOGMwIDExLTkgMjAtMjAgMjBzLTIwLTktMjAtMjBsMC04YzAtMTUuNS0xMi41LTI4LTI4LTI4em0xMzIgMjhsMCA4YzAgMTEtOSAyMC0yMCAyMHMtMjAtOS0yMC0yMGwwLThjMC0zNy42IDMwLjQtNjggNjgtNjhzNjggMzAuNCA2OCA2OGwwIDhjMCAxMS05IDIwLTIwIDIwcy0yMC05LTIwLTIwbDAtOGMwLTE1LjUtMTIuNS0yOC0yOC0yOHMtMjggMTIuNS0yOCAyOHoiXX0saEV0PVo0ZSxYNGU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToicmVjdGFuZ2xlLWFkIixpY29uOls1MTIsNTEyLFsiYWQiXSwiZjY0MSIsIk02NCA2NEMyOC43IDY0IDAgOTIuNyAwIDEyOEwwIDM4NGMwIDM1LjMgMjguNyA2NCA2NCA2NGwzODQgMGMzNS4zIDAgNjQtMjguNyA2NC02NGwwLTI1NmMwLTM1LjMtMjguNy02NC02NC02NEw2NCA2NHpNNDE2IDE4NGwwIDE0NGMwIDEzLjMtMTAuNyAyNC0yNCAyNC03LjEgMC0xMy41LTMuMS0xNy45LTgtMTAuMiA1LjEtMjEuOCA4LTM0LjEgOC00MiAwLTc2LTM0LTc2LTc2czM0LTc2IDc2LTc2YzkuOSAwIDE5LjMgMS45IDI4IDUuM2wwLTIxLjNjMC0xMy4zIDEwLjctMjQgMjQtMjRzMjQgMTAuNyAyNCAyNHptLTQ4IDkyYTI4IDI4IDAgMSAwIC01NiAwIDI4IDI4IDAgMSAwIDU2IDB6TTE2MCAyMDhjLTguOCAwLTE2IDcuMi0xNiAxNmwwIDMyIDQ4IDAgMC0zMmMwLTguOC03LjItMTYtMTYtMTZsLTE2IDB6bTMyIDk2bC00OCAwIDAgMjRjMCAxMy4zLTEwLjcgMjQtMjQgMjRzLTI0LTEwLjctMjQtMjRsMC0xMDRjMC0zNS4zIDI4LjctNjQgNjQtNjRsMTYgMGMzNS4zIDAgNjQgMjguNyA2NCA2NGwwIDEwNGMwIDEzLjMtMTAuNyAyNC0yNCAyNHMtMjQtMTAuNy0yNC0yNGwwLTI0eiJdfSxmRXQ9WDRlLFE0ZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJib29rLXRhbmFraCIsaWNvbjpbNDQ4LDUxMixbInRhbmFraCJdLCJmODI3IiwiTTM1MiA1MTJMMzIgNTEyYy0xNy43IDAtMzItMTQuMy0zMi0zMnMxNC4zLTMyIDMyLTMybDAtNjYuN0MxMy40IDM3NC43IDAgMzU2LjkgMCAzMzZMMCA0OEMwIDIxLjUgMjEuNSAwIDQ4IDBMMzUyIDBjNTMgMCA5NiA0MyA5NiA5NmwwIDMyMGMwIDUzLTQzIDk2LTk2IDk2em0zMi05NmMwLTE3LjctMTQuMy0zMi0zMi0zMmwtMjU2IDAgMCA2NCAyNTYgMGMxNy43IDAgMzItMTQuMyAzMi0zMnpNMTEzLjkgMjI5Yy0xLjIgMi0xLjkgNC4yLTEuOSA2LjYgMCA2LjkgNS42IDEyLjUgMTIuNSAxMi41bDU2LjkgMCAzMC41IDQ5LjJjMi42IDQuMiA3LjIgNi44IDEyLjIgNi44czkuNi0yLjYgMTIuMi02LjhsMzAuNS00OS4yIDU2LjkgMGM2LjkgMCAxMi41LTUuNiAxMi41LTEyLjUgMC0yLjMtLjYtNC42LTEuOS02LjZsLTI3LjgtNDUgMjcuOC00NWMxLjItMiAxLjktNC4yIDEuOS02LjYgMC02LjktNS42LTEyLjUtMTIuNS0xMi41bC01Ni45IDAtMzAuNS00OS4yQzIzMy42IDY2LjYgMjI5IDY0IDIyNCA2NHMtOS42IDIuNi0xMi4yIDYuOGwtMzAuNSA0OS4yLTU2LjkgMGMtNi45IDAtMTIuNSA1LjYtMTIuNSAxMi41IDAgMi4zIC42IDQuNiAxLjkgNi42bDI3LjggNDUtMjcuOCA0NXoiXX0sbUV0PVE0ZSxKNGU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiaG90LXR1Yi1wZXJzb24iLGljb246WzQ0OCw1MTIsWyJob3QtdHViIl0sImY1OTMiLCJNMjQwIDQwYzAgMTMuNiA1LjggMjYuNSAxNS44IDM1LjZsMjYuNSAyMy44YzI0IDIxLjYgMzcuNyA1Mi4zIDM3LjcgODQuNiAwIDEzLjMtMTAuNyAyNC0yNCAyNHMtMjQtMTAuNy0yNC0yNGMwLTE4LjctNy45LTM2LjQtMjEuOC00OC45bC0yNi41LTIzLjhDMjAzLjUgOTMuMSAxOTIgNjcuMiAxOTIgNDAgMTkyIDI2LjcgMjAyLjcgMTYgMjE2IDE2czI0IDEwLjcgMjQgMjR6TTAgMzM2bDAtODBjMC0zNS4zIDI4LjctNjQgNjQtNjRsMTkuNyAwYzguMSAwIDE2LjIgMS42IDIzLjggNC42bDEzNy4xIDU0LjhjNy42IDMgMTUuNiA0LjYgMjMuOCA0LjZMMzg0IDI1NmMzNS4zIDAgNjQgMjguNyA2NCA2NGwwIDEyOGMwIDM1LjMtMjguNyA2NC02NCA2NEw2NCA1MTJjLTM1LjMgMC02NC0yOC43LTY0LTY0TDAgMzM2em05Ni0xNmMtMTMuMyAwLTI0IDEwLjctMjQgMjRsMCA4MGMwIDEzLjMgMTAuNyAyNCAyNCAyNHMyNC0xMC43IDI0LTI0bDAtODBjMC0xMy4zLTEwLjctMjQtMjQtMjR6bTE1MiAyNGMwLTEzLjMtMTAuNy0yNC0yNC0yNHMtMjQgMTAuNy0yNCAyNGwwIDgwYzAgMTMuMyAxMC43IDI0IDI0IDI0czI0LTEwLjcgMjQtMjRsMC04MHptMTA0LTI0Yy0xMy4zIDAtMjQgMTAuNy0yNCAyNGwwIDgwYzAgMTMuMyAxMC43IDI0IDI0IDI0czI0LTEwLjcgMjQtMjRsMC04MGMwLTEzLjMtMTAuNy0yNC0yNC0yNHpNMzI4IDE2YzEzLjMgMCAyNCAxMC43IDI0IDI0IDAgMTMuNiA1LjggMjYuNSAxNS44IDM1LjZsMjYuNSAyMy44YzI0IDIxLjYgMzcuNyA1Mi4zIDM3LjcgODQuNiAwIDEzLjMtMTAuNyAyNC0yNCAyNHMtMjQtMTAuNy0yNC0yNGMwLTE4LjctNy45LTM2LjQtMjEuOC00OC45bC0yNi41LTIzLjhDMzE1LjUgOTMuMSAzMDQgNjcuMiAzMDQgNDAgMzA0IDI2LjcgMzE0LjcgMTYgMzI4IDE2ek02NCA0MGE1NiA1NiAwIDEgMSAwIDExMiA1NiA1NiAwIDEgMSAwLTExMnoiXX0sZ0V0PUo0ZSxiRXQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZmlsZS1oYWxmLWRhc2hlZCIsaWNvbjpbMzg0LDUxMixbXSwiZTY5OCIsIk02NCAwQzI4LjcgMCAwIDI4LjcgMCA2NGwwIDI1NiAzODQgMCAwLTE0OS41YzAtMTctNi43LTMzLjMtMTguNy00NS4zTDI1OC43IDE4LjdDMjQ2LjcgNi43IDIzMC41IDAgMjEzLjUgMEw2NCAwek0zMjUuNSAxNzZMMjMyIDE3NmMtMTMuMyAwLTI0LTEwLjctMjQtMjRMMjA4IDU4LjUgMzI1LjUgMTc2ek0wIDM1MmwwIDY0IDY0IDAgMC02NC02NCAwek02NCA1MTJsMC02NC02NCAwYzAgMzUuMyAyOC43IDY0IDY0IDY0em0zMiAwbDgwIDAgMC02NC04MCAwIDAgNjR6bTExMiAwbDgwIDAgMC02NC04MCAwIDAgNjR6bTExMiAwYzM1LjMgMCA2NC0yOC43IDY0LTY0bC02NCAwIDAgNjR6bTY0LTE2MGwtNjQgMCAwIDY0IDY0IDAgMC02NHoiXX0sSzRlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6Im91dGRlbnQiLGljb246WzQ0OCw1MTIsWyJkZWRlbnQiXSwiZjAzYiIsIk0uNCA2NGMwLTE3LjcgMTQuMy0zMiAzMi0zMmwzODQgMGMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMmwtMzg0IDBDMTQuOCA5NiAuNCA4MS43IC40IDY0em0xOTIgMTI4YzAtMTcuNyAxNC4zLTMyIDMyLTMybDE5MiAwYzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMybC0xOTIgMGMtMTcuNyAwLTMyLTE0LjMtMzItMzJ6bTMyIDk2bDE5MiAwYzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMybC0xOTIgMGMtMTcuNyAwLTMyLTE0LjMtMzItMzJzMTQuMy0zMiAzMi0zMnpNLjQgNDQ4YzAtMTcuNyAxNC4zLTMyIDMyLTMybDM4NCAwYzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMybC0zODQgMGMtMTcuNyAwLTMyLTE0LjMtMzItMzJ6TS43IDI2OC42Yy04LjItNi40LTguMi0xOC45IDAtMjUuM2wxMDEuOS03OS4zYzEwLjUtOC4yIDI1LjgtLjcgMjUuOCAxMi42bDAgMTU4LjZjMCAxMy4zLTE1LjMgMjAuOC0yNS44IDEyLjZMLjcgMjY4LjZ6Il19LHZFdD1LNGUseEV0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImhhbmQtcGVhY2UiLGljb246WzQ0OCw1MTIsWzk5OTZdLCJmMjViIiwiTTE5MiAwYzE3LjcgMCAzMiAxNC4zIDMyIDMybDAgMjA4LTY0IDAgMC0yMDhjMC0xNy43IDE0LjMtMzIgMzItMzJ6bTk2IDE2MGMxNy43IDAgMzIgMTQuMyAzMiAzMmwwIDY0YzAgMTcuNy0xNC4zIDMyLTMyIDMycy0zMi0xNC4zLTMyLTMybDAtNjRjMC0xNy43IDE0LjMtMzIgMzItMzJ6bTY0IDY0YzAtMTcuNyAxNC4zLTMyIDMyLTMyczMyIDE0LjMgMzIgMzJsMCA2NGMwIDE3LjctMTQuMyAzMi0zMiAzMnMtMzItMTQuMy0zMi0zMmwwLTY0ek02MS4zIDUxLjJMMTQzLjkgMjQwIDc0LjEgMjQwIDIuNyA3Ni44Qy00LjQgNjAuNiAzIDQxLjggMTkuMiAzNC43UzU0LjIgMzUgNjEuMyA1MS4yem0yNyAyMjEuM2wtLjItLjUgOTUuOSAwYzIyLjEgMCA0MCAxNy45IDQwIDQwcy0xNy45IDQwLTQwIDQwbC01NiAwYy04LjggMC0xNiA3LjItMTYgMTZzNy4yIDE2IDE2IDE2bDU2IDBjMzkuOCAwIDcyLTMyLjIgNzItNzJsMC0uNmM5LjQgNS40IDIwLjMgOC42IDMyIDguNiAxMy4yIDAgMjUuNC00IDM1LjYtMTAuOCA4LjcgMjQuOSAzMi41IDQyLjggNjAuNCA0Mi44IDExLjcgMCAyMi42LTMuMSAzMi04LjZsMCA4LjZjMCA4OC40LTcxLjYgMTYwLTE2MCAxNjBsLTYxLjcgMGMtNDIuNCAwLTgzLjEtMTYuOS0xMTMuMS00Ni45TDY5LjUgNDUzLjVDNDUuNSA0MjkuNSAzMiAzOTYuOSAzMiAzNjNsMC0yN2MwLTMyLjcgMjQuNi01OS43IDU2LjMtNjMuNXoiXX0seUV0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImhlYWQtc2lkZS12aXJ1cyIsaWNvbjpbNTEyLDUxMixbXSwiZTA2NCIsIk0zMjkuNyA0NDhjLTUuMSAwLTkuNyAzLjctOS43IDguOGwwIDcuMmMwIDI2LjUtMjEuNSA0OC00OCA0OGwtMTYwIDBjLTI2LjUgMC00OC0yMS41LTQ4LTQ4bDAtNjMuNmMwLTEyLjYtNS4xLTI0LjUtMTMuMS0zNC4yLTMxLjgtMzguNy01MC45LTg4LjItNTAuOS0xNDIuMiAwLTEyMy43IDEwMC4zLTIyNCAyMjQtMjI0IDExMi43IDAgMjA2IDgzLjMgMjIxLjcgMTkxLjcgLjQgMyAxLjcgNS45IDMuNiA4LjNsMzUuOCA0Mi45YzcgOC40IDEwLjkgMTkuMSAxMC45IDMwLjEgMCAyNS45LTIxIDQ3LTQ3IDQ3bC0xIDBjLTguOCAwLTE2IDcuMi0xNiAxNmwwIDQ4YzAgMzUuMy0yOC43IDY0LTY0IDY0bC0zOC4zIDB6TTIyNCA2NGMtMTMuMyAwLTI0IDEwLjctMjQgMjQgMCAyMi45LTI3LjcgMzQuNC00My45IDE4LjItOS40LTkuNC0yNC42LTkuNC0zMy45IDBzLTkuNCAyNC42IDAgMzMuOWMxNi4yIDE2LjIgNC43IDQzLjktMTguMiA0My45LTEzLjMgMC0yNCAxMC43LTI0IDI0czEwLjcgMjQgMjQgMjRjMjIuOSAwIDM0LjQgMjcuNyAxOC4yIDQzLjktOS40IDkuNC05LjQgMjQuNiAwIDMzLjlzMjQuNiA5LjQgMzMuOSAwYzE2LjItMTYuMiA0My45LTQuNyA0My45IDE4LjIgMCAxMy4zIDEwLjcgMjQgMjQgMjRzMjQtMTAuNyAyNC0yNGMwLTIyLjkgMjcuNy0zNC40IDQzLjktMTguMiA5LjQgOS40IDI0LjYgOS40IDMzLjkgMHM5LjQtMjQuNiAwLTMzLjljLTE2LjItMTYuMi00LjctNDMuOSAxOC4yLTQzLjkgMTMuMyAwIDI0LTEwLjcgMjQtMjRzLTEwLjctMjQtMjQtMjRjLTIyLjkgMC0zNC40LTI3LjctMTguMi00My45IDkuNC05LjQgOS40LTI0LjYgMC0zMy45cy0yNC42LTkuNC0zMy45IDBjLTE2LjIgMTYuMi00My45IDQuNy00My45LTE4LjIgMC0xMy4zLTEwLjctMjQtMjQtMjR6bS0zMiA4OGEyNCAyNCAwIDEgMSAwIDQ4IDI0IDI0IDAgMSAxIDAtNDh6bTQwIDg4YTI0IDI0IDAgMSAxIDQ4IDAgMjQgMjQgMCAxIDEgLTQ4IDB6Il19LHdFdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJjb21wYXNzIixpY29uOls1MTIsNTEyLFsxMjk1MTddLCJmMTRlIiwiTTI1NiA1MTJhMjU2IDI1NiAwIDEgMCAwLTUxMiAyNTYgMjU2IDAgMSAwIDAgNTEyem01MC43LTE4Ni45TDE2Mi40IDM4MC42Yy0xOS40IDcuNS0zOC41LTExLjYtMzEtMzFsNTUuNS0xNDQuM2MzLjMtOC41IDkuOS0xNS4xIDE4LjQtMTguNGwxNDQuMy01NS41YzE5LjQtNy41IDM4LjUgMTEuNiAzMSAzMUwzMjUuMSAzMDYuN2MtMy4yIDguNS05LjkgMTUuMS0xOC40IDE4LjR6TTI4OCAyNTZhMzIgMzIgMCAxIDAgLTY0IDAgMzIgMzIgMCAxIDAgNjQgMHoiXX0sTUV0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InBlbi1uaWIiLGljb246WzUxMiw1MTIsWzEwMDAxXSwiZjVhZCIsIk0zNjguNSAxOC4zbC01MC4xIDUwLjEgMTI1LjMgMTI1LjMgNTAuMS01MC4xYzIxLjktMjEuOSAyMS45LTU3LjMgMC03OS4yTDQ0Ny43IDE4LjNjLTIxLjktMjEuOS01Ny4zLTIxLjktNzkuMiAwek0yNzkuMyA5Ny4ybC0uNSAuMS0xNDQuMSA0My4yYy0xOS45IDYtMzUuNyAyMS4yLTQyLjMgNDFMMy44IDQ0NS44Yy0yLjkgOC43LTEuOSAxOC4yIDIuNSAyNkwxNjEuNyAzMTYuNGMtMS4xLTQtMS42LTguMS0xLjYtMTIuNCAwLTI2LjUgMjEuNS00OCA0OC00OHM0OCAyMS41IDQ4IDQ4LTIxLjUgNDgtNDggNDhjLTQuMyAwLTguNS0uNi0xMi40LTEuNkw0MC4zIDUwNS43YzcuOCA0LjQgMTcuMiA1LjQgMjYgMi41bDI2NC4zLTg4LjZjMTkuNy02LjYgMzUtMjIuNCA0MS00Mi4zbDQzLjItMTQ0LjEgLjEtLjUtMTM1LjUtMTM1LjV6Il19LGtFdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJ0ZW50LWFycm93cy1kb3duIixpY29uOls1MTIsNTEyLFtdLCJlNTgxIiwiTTE4NS41IDEyMWM5LjQtOS40IDkuNC0yNC42IDAtMzMuOXMtMjQuNi05LjQtMzMuOSAwbC0zMSAzMSAwLTEwMi4xYzAtMTMuMy0xMC43LTI0LTI0LTI0cy0yNCAxMC43LTI0IDI0bDAgMTAyLjEtMzEtMzFjLTkuNC05LjQtMjQuNi05LjQtMzMuOSAwcy05LjQgMjQuNiAwIDMzLjlsNzIgNzJjOS40IDkuNCAyNC42IDkuNCAzMy45IDBsNzItNzJ6bTI0OCA3Mmw3Mi03MmM5LjQtOS40IDkuNC0yNC42IDAtMzMuOXMtMjQuNi05LjQtMzMuOSAwbC0zMSAzMSAwLTEwMi4xYzAtMTMuMy0xMC43LTI0LTI0LTI0cy0yNCAxMC43LTI0IDI0bDAgMTAyLjEtMzEtMzFjLTkuNC05LjQtMjQuNi05LjQtMzMuOSAwcy05LjQgMjQuNiAwIDMzLjlsNzIgNzJjOS40IDkuNCAyNC42IDkuNCAzMy45IDB6TTYwLjMgMjkyLjZMMzcuMSA0NzZjLTIuNCAxOS4xIDEyLjUgMzYgMzEuNyAzNmwxNTQuNSAwYzE3LjcgMCAzMi0xNC4zIDMyLTMybDAtMTE3LjRjMC01LjkgNC43LTEwLjYgMTAuNi0xMC42IDQgMCA3LjcgMi4zIDkuNSA1LjlsNjguMiAxMzYuNWM1LjQgMTAuOCAxNi41IDE3LjcgMjguNiAxNy43bDcxLjkgMGMxOS4zIDAgMzQuMi0xNi45IDMxLjctMzZMNDUyLjcgMjkyLjdjLTEuMi05LjctNi45LTE4LjQtMTUuMy0yMy40TDI3MS45IDE2OS45Yy0xMC4yLTYuMS0yMi45LTYuMS0zMy4xIC4xTDc1LjQgMjY5LjNjLTguMyA1LjEtMTMuOSAxMy43LTE1LjEgMjMuM3oiXX0sZTNlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImZvcndhcmQtZmFzdCIsaWNvbjpbNTEyLDUxMixbOTE5NywiZmFzdC1mb3J3YXJkIl0sImYwNTAiLCJNMTkuOCA0NzcuNmMxMiA1IDI1LjcgMi4yIDM0LjktNi45TDIyNCAzMDEuMyAyMjQgNDQ4YzAgMTIuOSA3LjggMjQuNiAxOS44IDI5LjZzMjUuNyAyLjIgMzQuOS02LjlMNDQ4IDMwMS4zIDQ0OCA0NDhjMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMmwwLTM4NGMwLTE3LjctMTQuMy0zMi0zMi0zMnMtMzIgMTQuMy0zMiAzMmwwIDE0Ni43LTE2OS40LTE2OS40Yy05LjItOS4yLTIyLjktMTEuOS0zNC45LTYuOVMyMjQgNTEuMSAyMjQgNjRMMjI0IDIxMC43IDU0LjYgNDEuNGMtOS4yLTkuMi0yMi45LTExLjktMzQuOS02LjlTMCA1MS4xIDAgNjRMMCA0NDhjMCAxMi45IDcuOCAyNC42IDE5LjggMjkuNnoiXX0sU0V0PWUzZSx6RXQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiY3JvcCIsaWNvbjpbNTEyLDUxMixbXSwiZjEyNSIsIk00NDggMTA5LjNsNTQuNi01NC42YzEyLjUtMTIuNSAxMi41LTMyLjggMC00NS4zcy0zMi44LTEyLjUtNDUuMyAwTDQwMi43IDY0IDE3NiA2NCAxNzYgMTI4IDMzOC43IDEyOCAxMjggMzM4LjcgMTI4IDMyYzAtMTcuNy0xNC4zLTMyLTMyLTMyUzY0IDE0LjMgNjQgMzJsMCAzMi0zMiAwQzE0LjMgNjQgMCA3OC4zIDAgOTZzMTQuMyAzMiAzMiAzMmwzMiAwIDAgMjU2YzAgMzUuMyAyOC43IDY0IDY0IDY0bDIwOCAwIDAtNjQtMTYyLjcgMCAyMTAuNy0yMTAuNyAwIDMwNi43YzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJsMC0zMiAzMiAwYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMybC0zMiAwIDAtMjc0Ljd6Il19LHQzZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJ3aGlza2V5LWdsYXNzIixpY29uOls0NDgsNTEyLFsxMjkzNDcsImdsYXNzLXdoaXNrZXkiXSwiZjdhMCIsIk0zMiAzMkMxNC4zIDMyIDAgNDYuMyAwIDY0TDAgMzUyYzAgNzAuNyA1Ny4zIDEyOCAxMjggMTI4bDE5MiAwYzcwLjcgMCAxMjgtNTcuMyAxMjgtMTI4bDAtMjg4YzAtMTcuNy0xNC4zLTMyLTMyLTMyTDMyIDMyek02NCAyNTZsMC0xNjAgMzIwIDAgMCAxNjAtMzIwIDB6Il19LENFdD10M2UsVEV0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InNxdWFyZSIsaWNvbjpbNDQ4LDUxMixbOTYzMiw5NzIzLDk3MjQsNjE1OTBdLCJmMGM4IiwiTTY0IDMybDMyMCAwYzM1LjMgMCA2NCAyOC43IDY0IDY0bDAgMzIwYzAgMzUuMy0yOC43IDY0LTY0IDY0TDY0IDQ4MGMtMzUuMyAwLTY0LTI4LjctNjQtNjRMMCA5NkMwIDYwLjcgMjguNyAzMiA2NCAzMnoiXX0scjNlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImZhY2UtZ3JpbiIsaWNvbjpbNTEyLDUxMixbMTI4NTEyLCJncmluIl0sImY1ODAiLCJNMjU2IDUxMmEyNTYgMjU2IDAgMSAwIDAtNTEyIDI1NiAyNTYgMCAxIDAgMCA1MTJ6TTM4Ni43IDMwOC45YzExLjktMy43IDIzLjkgNi4zIDE5LjYgMTguMS0yMi40IDYxLjMtODEuMyAxMDUuMS0xNTAuMyAxMDUuMVMxMjguMSAzODguMiAxMDUuNyAzMjYuOWMtNC4zLTExLjggNy43LTIxLjggMTkuNi0xOC4xIDM5LjIgMTIuMiA4My43IDE5LjEgMTMwLjcgMTkuMXM5MS41LTYuOSAxMzAuNy0xOS4xek0xNDQgMjA4YTMyIDMyIDAgMSAxIDY0IDAgMzIgMzIgMCAxIDEgLTY0IDB6bTE5Mi0zMmEzMiAzMiAwIDEgMSAwIDY0IDMyIDMyIDAgMSAxIDAtNjR6Il19LF9FdD1yM2UsTEV0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImZpbGUtY29udHJhY3QiLGljb246WzM4NCw1MTIsW10sImY1NmMiLCJNMCA2NEMwIDI4LjcgMjguNyAwIDY0IDBMMjEzLjUgMGMxNyAwIDMzLjMgNi43IDQ1LjMgMTguN0wzNjUuMyAxMjUuM2MxMiAxMiAxOC43IDI4LjMgMTguNyA0NS4zTDM4NCA0NDhjMCAzNS4zLTI4LjcgNjQtNjQgNjRMNjQgNTEyYy0zNS4zIDAtNjQtMjguNy02NC02NEwwIDY0em0yMDgtNS41bDAgOTMuNWMwIDEzLjMgMTAuNyAyNCAyNCAyNEwzMjUuNSAxNzYgMjA4IDU4LjV6TTg4IDY0Qzc0LjcgNjQgNjQgNzQuNyA2NCA4OHMxMC43IDI0IDI0IDI0bDQ4IDBjMTMuMyAwIDI0LTEwLjcgMjQtMjRzLTEwLjctMjQtMjQtMjRMODggNjR6bTAgOTZjLTEzLjMgMC0yNCAxMC43LTI0IDI0czEwLjcgMjQgMjQgMjRsNDggMGMxMy4zIDAgMjQtMTAuNyAyNC0yNHMtMTAuNy0yNC0yNC0yNGwtNDggMHptNzAuMyAxNjBjLTExLjMgMC0yMS45IDUuMS0yOC45IDEzLjlMNjkuMyA0MDljLTguMyAxMC4zLTYuNiAyNS41IDMuNyAzMy43czI1LjUgNi42IDMzLjctMy44bDQ3LjEtNTguOCAxNS4yIDUwLjdjMyAxMC4yIDEyLjQgMTcuMSAyMyAxNy4xbDEwNCAwYzEzLjMgMCAyNC0xMC43IDI0LTI0cy0xMC43LTI0LTI0LTI0bC04Ni4xIDAtMTYuMS01My42Yy00LjctMTUuNy0xOS4xLTI2LjQtMzUuNS0yNi40eiJdfSxBRXQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiYW5nbGUtdXAiLGljb246WzM4NCw1MTIsWzg5NjNdLCJmMTA2IiwiTTE2OS40IDEzNy40YzEyLjUtMTIuNSAzMi44LTEyLjUgNDUuMyAwbDE2MCAxNjBjMTIuNSAxMi41IDEyLjUgMzIuOCAwIDQ1LjNzLTMyLjggMTIuNS00NS4zIDBMMTkyIDIwNS4zIDU0LjYgMzQyLjZjLTEyLjUgMTIuNS0zMi44IDEyLjUtNDUuMyAwcy0xMi41LTMyLjggMC00NS4zbDE2MC0xNjB6Il19LGkzZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJmYWNlLXNtaWxlIixpY29uOls1MTIsNTEyLFsxMjg1NzgsInNtaWxlIl0sImYxMTgiLCJNMjU2IDUxMmEyNTYgMjU2IDAgMSAwIDAtNTEyIDI1NiAyNTYgMCAxIDAgMCA1MTJ6TTE2NS40IDMyMS45YzIwLjQgMjggNTMuNCA0Ni4xIDkwLjYgNDYuMXM3MC4yLTE4LjEgOTAuNi00Ni4xYzcuOC0xMC43IDIyLjgtMTMuMSAzMy41LTUuM3MxMy4xIDIyLjggNS4zIDMzLjVDMzU2LjMgMzkwIDMwOS4yIDQxNiAyNTYgNDE2cy0xMDAuMy0yNi0xMjkuNC02NS45Yy03LjgtMTAuNy01LjQtMjUuNyA1LjMtMzMuNXMyNS43LTUuNCAzMy41IDUuM3pNMTQ0IDIwOGEzMiAzMiAwIDEgMSA2NCAwIDMyIDMyIDAgMSAxIC02NCAwem0xOTItMzJhMzIgMzIgMCAxIDEgMCA2NCAzMiAzMiAwIDEgMSAwLTY0eiJdfSxERXQ9aTNlLEVFdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJwZXJzb24tZHJlc3MtYnVyc3QiLGljb246WzY0MCw1MTIsW10sImU1NDQiLCJNMjA4IDQwLjFjMTMuMyAwIDI0LTEwLjcgMjQtMjRsMC00OGMwLTEzLjMtMTAuNy0yNC0yNC0yNHMtMjQgMTAuNy0yNCAyNGwwIDQ4YzAgMTMuMyAxMC43IDI0IDI0IDI0ek04IDE0NC4xYzAgMTMuMyAxMC43IDI0IDI0IDI0bDQ4IDBjMTMuMyAwIDI0LTEwLjcgMjQtMjRzLTEwLjctMjQtMjQtMjRsLTQ4IDBjLTEzLjMgMC0yNCAxMC43LTI0IDI0em05Mi41IDE0MS40bDMzLjktMzMuOWM5LjQtOS40IDkuNC0yNC42IDAtMzMuOXMtMjQuNi05LjQtMzMuOSAwTDY2LjYgMjUxLjZjLTkuNCA5LjQtOS40IDI0LjYgMCAzMy45czI0LjYgOS40IDMzLjkgMHpNNjYuNiAyLjdjLTkuNCA5LjQtOS40IDI0LjYgMCAzMy45bDMzLjkgMzMuOWM5LjQgOS40IDI0LjYgOS40IDMzLjkgMHM5LjQtMjQuNiAwLTMzLjlMMTAwLjUgMi43QzkxLjEtNi43IDc2LTYuNyA2Ni42IDIuN3pNMzUyIDgwYTU2IDU2IDAgMSAwIDAtMTEyIDU2IDU2IDAgMSAwIDAgMTEyek0yNDYuMiAzODRsMjUuOCAwIDAgMTI4YzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJsMC0xMjggMzIgMCAwIDEyOGMwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMybDAtMTI4IDI1LjggMGMxMC45IDAgMTguNi0xMC43IDE1LjItMjEuMWwtNDMtMTI5IDQ4LjMgNjUuMWMxMC41IDE0LjIgMzAuNiAxNy4yIDQ0LjggNi42czE3LjItMzAuNiA2LjYtNDQuOGwtNzAuNS05NUM0MzQgMTMyIDM5NC4zIDExMiAzNTIgMTEycy04MiAyMC0xMDcuMiA1My45bC03MC41IDk1Yy0xMC41IDE0LjItNy42IDM0LjIgNi42IDQ0LjhzMzQuMiA3LjYgNDQuOC02LjZsNDguMy02NS4xLTQzIDEyOWMtMy41IDEwLjQgNC4zIDIxLjEgMTUuMiAyMS4xeiJdfSwkRXQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZGl2aWRlIixpY29uOls0NDgsNTEyLFsxMDEzNSwyNDddLCJmNTI5IiwiTTIyNCA0OGE1NiA1NiAwIDEgMSAwIDExMiA1NiA1NiAwIDEgMSAwLTExMnpNMCAyNTZjMC0xNy43IDE0LjMtMzIgMzItMzJsMzg0IDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJMMzIgMjg4Yy0xNy43IDAtMzItMTQuMy0zMi0zMnpNMTY4IDQwOGE1NiA1NiAwIDEgMSAxMTIgMCA1NiA1NiAwIDEgMSAtMTEyIDB6Il19LElFdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJjb2RlLWZvcmsiLGljb246WzQ0OCw1MTIsW10sImUxM2IiLCJNODAgMTA0YTI0IDI0IDAgMSAwIDAtNDggMjQgMjQgMCAxIDAgMCA0OHptODAtMjRjMCAzMi44LTE5LjcgNjEtNDggNzMuM2wwIDIyLjdjMCAyNi41IDIxLjUgNDggNDggNDhsMTI4IDBjMjYuNSAwIDQ4LTIxLjUgNDgtNDhsMC0yMi43Yy0yOC4zLTEyLjMtNDgtNDAuNS00OC03My4zIDAtNDQuMiAzNS44LTgwIDgwLTgwczgwIDM1LjggODAgODBjMCAzMi44LTE5LjcgNjEtNDggNzMuM2wwIDIyLjdjMCA2MS45LTUwLjEgMTEyLTExMiAxMTJsLTMyIDAgMCA3MC43YzI4LjMgMTIuMyA0OCA0MC41IDQ4IDczLjMgMCA0NC4yLTM1LjggODAtODAgODBzLTgwLTM1LjgtODAtODBjMC0zMi44IDE5LjctNjEgNDgtNzMuM2wwLTcwLjctMzIgMEM5OC4xIDI4OCA0OCAyMzcuOSA0OCAxNzZsMC0yMi43QzE5LjcgMTQxIDAgMTEyLjggMCA4MCAwIDM1LjggMzUuOCAwIDgwIDBzODAgMzUuOCA4MCA4MHptMjA4IDI0YTI0IDI0IDAgMSAwIDAtNDggMjQgMjQgMCAxIDAgMCA0OHpNMjQ4IDQzMmEyNCAyNCAwIDEgMCAtNDggMCAyNCAyNCAwIDEgMCA0OCAweiJdfSxQRXQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiaG91c2UtZmxhZyIsaWNvbjpbNjQwLDUxMixbXSwiZTUwZCIsIk00NzIgMGMxNy43IDAgMzIgMTQuMyAzMiAzMmw5NiAwYzE3LjcgMCAzMiAxNC4zIDMyIDMybDAgOTZjMCAxNy43LTE0LjMgMzItMzIgMzJsLTk2IDAgMCAyODhjMCAxNy43LTE0LjMgMzItMzIgMzJzLTMyLTE0LjMtMzItMzJsMC00NDhjMC0xNy43IDE0LjMtMzIgMzItMzJ6TTI4My41IDU5LjFsMTAwLjUgOTYuOSAwIDM1Ni0yNTYgMGMtMzUuMyAwLTY0LTI4LjctNjQtNjRsMC0xNDQtMTkuOSAwYy0xNS41IDAtMjguMS0xMi42LTI4LjEtMjguMSAwLTcuNiAzLjEtMTQuOSA4LjYtMjAuMkwyMjguNSA1OS4xQzIzNS45IDUyIDI0NS43IDQ4IDI1NiA0OHMyMC4xIDQgMjcuNSAxMS4xek0yMzIgMjU2Yy0xMy4zIDAtMjQgMTAuNy0yNCAyNGwwIDQ4YzAgMTMuMyAxMC43IDI0IDI0IDI0bDQ4IDBjMTMuMyAwIDI0LTEwLjcgMjQtMjRsMC00OGMwLTEzLjMtMTAuNy0yNC0yNC0yNGwtNDggMHoiXX0sUnA9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiYnVpbGRpbmctY29sdW1ucyIsaWNvbjpbNTEyLDUxMixbImJhbmsiLCJpbnN0aXR1dGlvbiIsIm11c2V1bSIsInVuaXZlcnNpdHkiXSwiZjE5YyIsIk0yNzEuOSAyMC4yYy05LjgtNS42LTIxLjktNS42LTMxLjggMGwtMjI0IDEyOGMtMTIuNiA3LjItMTguOCAyMi0xNS4xIDM2UzE3LjUgMjA4IDMyIDIwOGwzMiAwIDAgMjA4IDAgMC01MS4yIDM4LjRDNC43IDQ2MC40IDAgNDY5LjkgMCA0ODAgMCA0OTcuNyAxNC4zIDUxMiAzMiA1MTJsNDQ4IDBjMTcuNyAwIDMyLTE0LjMgMzItMzIgMC0xMC4xLTQuNy0xOS42LTEyLjgtMjUuNmwtNTEuMi0zOC40IDAtMjA4IDMyIDBjMTQuNSAwIDI3LjItOS44IDMwLjktMjMuOHMtMi41LTI4LjgtMTUuMS0zNmwtMjI0LTEyOHpNNDAwIDIwOGwwIDIwOC02NCAwIDAtMjA4IDY0IDB6bS0xMTIgMGwwIDIwOC02NCAwIDAtMjA4IDY0IDB6bS0xMTIgMGwwIDIwOC02NCAwIDAtMjA4IDY0IDB6TTI1NiA5NmEzMiAzMiAwIDEgMSAwIDY0IDMyIDMyIDAgMSAxIDAtNjR6Il19LE5FdD1ScCxGRXQ9UnAsT0V0PVJwLFJFdD1ScCxCRXQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToicnVnIixpY29uOls1NzYsNTEyLFtdLCJlNTY5IiwiTTI0IDY0bDU2IDAgMCAzODQtNTYgMGMtMTMuMyAwLTI0LTEwLjctMjQtMjRzMTAuNy0yNCAyNC0yNGw4IDAgMC00MC04IDBjLTEzLjMgMC0yNC0xMC43LTI0LTI0czEwLjctMjQgMjQtMjRsOCAwIDAtMzItOCAwYy0xMy4zIDAtMjQtMTAuNy0yNC0yNHMxMC43LTI0IDI0LTI0bDggMCAwLTMyLTggMGMtMTMuMyAwLTI0LTEwLjctMjQtMjRzMTAuNy0yNCAyNC0yNGw4IDAgMC00MC04IDBDMTAuNyAxMTIgMCAxMDEuMyAwIDg4UzEwLjcgNjQgMjQgNjR6bTEwNCAwbDMyMCAwIDAgMzg0LTMyMCAwIDAtMzg0ek01NzYgODhjMCAxMy4zLTEwLjcgMjQtMjQgMjRsLTggMCAwIDQwIDggMGMxMy4zIDAgMjQgMTAuNyAyNCAyNHMtMTAuNyAyNC0yNCAyNGwtOCAwIDAgMzIgOCAwYzEzLjMgMCAyNCAxMC43IDI0IDI0cy0xMC43IDI0LTI0IDI0bC04IDAgMCAzMiA4IDBjMTMuMyAwIDI0IDEwLjcgMjQgMjRzLTEwLjcgMjQtMjQgMjRsLTggMCAwIDQwIDggMGMxMy4zIDAgMjQgMTAuNyAyNCAyNHMtMTAuNyAyNC0yNCAyNGwtNTYgMCAwLTM4NCA1NiAwYzEzLjMgMCAyNCAxMC43IDI0IDI0eiJdfSxIRXQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiY29kZS1tZXJnZSIsaWNvbjpbNDQ4LDUxMixbXSwiZjM4NyIsIk04MCA1NmEyNCAyNCAwIDEgMSAwIDQ4IDI0IDI0IDAgMSAxIDAtNDh6bTMyLjQgOTcuMmMyOC0xMi40IDQ3LjYtNDAuNSA0Ny42LTczLjIgMC00NC4yLTM1LjgtODAtODAtODBTMCAzNS44IDAgODBjMCAzMi44IDE5LjcgNjEgNDggNzMuM2wwIDIwNS4zQzE5LjcgMzcxIDAgMzk5LjIgMCA0MzIgMCA0NzYuMiAzNS44IDUxMiA4MCA1MTJzODAtMzUuOCA4MC04MGMwLTMyLjgtMTkuNy02MS00OC03My4zbDAtODYuNmMyNi43IDIwLjEgNjAgMzIgOTYgMzJsODYuNyAwYzEyLjMgMjguMyA0MC41IDQ4IDczLjMgNDggNDQuMiAwIDgwLTM1LjggODAtODBzLTM1LjgtODAtODAtODBjLTMyLjggMC02MSAxOS43LTczLjMgNDhMMjA4IDI0MGMtNDkuOSAwLTkxLTM4LjEtOTUuNi04Ni44ek04MCA0MDhhMjQgMjQgMCAxIDEgMCA0OCAyNCAyNCAwIDEgMSAwLTQ4ek0zNDQgMjcyYTI0IDI0IDAgMSAxIDQ4IDAgMjQgMjQgMCAxIDEgLTQ4IDB6Il19LHFFdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJob3VzZS10c3VuYW1pIixpY29uOls2NDAsNTEyLFtdLCJlNTE1IiwiTTI4OCAxNkMxNTUuNSAxNiA0OCAxMjMuNSA0OCAyNTZTMTU1LjUgNDk2IDI4OCA0OTZjNy40IDAgMTkuNy0yLjMgMzMuNy03LjMgMTMuOC00LjkgMjcuMS0xMS43IDM2LjctMTguOSAzOC40LTI5IDkwLjUtMjkgMTI5IDAgMTUuNCAxMS42IDM1LjMgMjEuMSA1NSAyNC40IDE5LjUgMy4zIDM3IC40IDUxLjEtMTAuMiAxMC42LTggMjUuNi01LjkgMzMuNiA0LjdzNS45IDI1LjYtNC43IDMzLjZjLTI3LjMgMjAuNS01OS4yIDI0LTg3LjkgMTkuMi0yOC41LTQuOC01NS40LTE4LTc1LjktMzMuNC0yMS4zLTE2LjEtNDkuOS0xNi4xLTcxLjIgMC0xNC41IDEwLjktMzIuNCAxOS43LTQ5LjUgMjUuOC0xNi44IDYtMzQuOSAxMC4xLTQ5LjkgMTAuMWwtLjEgMEMxMjguOSA1NDMuOSAwIDQxNSAwIDI1NiAwIDk2LjkgMTI4LjktMzIgMjg4LTMyIDMwMS4zLTMyIDMxMi0yMS4zIDMxMi04cy0xMC43IDI0LTI0IDI0em00NC44IDE2Ni40bDk2LTcyYzExLjQtOC41IDI3LjEtOC41IDM4LjUgMGw5NS41IDcyYzggNiAxMi43IDE1LjUgMTIuNyAyNS41bC4zIDEyMS41Yy0yLjIgMS4zLTQuMyAyLjYtNi40IDQuMi00LjMgMy4xLTguNyAuOC0xMy4yLTEuNWwtMS4yLS42LS43LS4zYy01LjQtMi43LTExLjctNi42LTE4LjktMTEuNy0yOS41LTIxLjEtNjQuMy0zMS42LTk5LjEtMzEuNC0zNC4xIC4yLTY4LjEgMTAuNy05NyAzMS40LTcuOCA1LjYtMTMuOCA5LjMtMTkuMyAxMS4yTDMyMCAyMDhjMC0xMC4xIDQuNy0xOS42IDEyLjgtMjUuNnptNTQuNiAyMjkuN2MtMTQuNSAxMC45LTMyLjQgMTkuNy00OS41IDI1LjgtMTYuOCA2LTM0LjkgMTAuMS00OS45IDEwLjEtMTA2IDAtMTkyLTg2LTE5Mi0xOTJTMTgyIDY0IDI4OCA2NGMxMy4zIDAgMjQgMTAuNyAyNCAyNHMtMTAuNyAyNC0yNCAyNGMtNzkuNSAwLTE0NCA2NC41LTE0NCAxNDRzNjQuNSAxNDQgMTQ0IDE0NGM3LjQgMCAxOS43LTIuMyAzMy43LTcuMyAxMy44LTQuOSAyNy4xLTExLjcgMzYuNy0xOC45IDM4LjQtMjkgOTAuNS0yOSAxMjkgMCAxNS40IDExLjYgMzUuMyAyMS4xIDU1IDI0LjQgMTkuNSAzLjMgMzcgLjQgNTEuMS0xMC4yIDEwLjYtOCAyNS42LTUuOSAzMy42IDQuN3M1LjkgMjUuNi00LjcgMzMuNmMtMjcuMyAyMC41LTU5LjIgMjQtODcuOSAxOS4yLTI4LjUtNC44LTU1LjQtMTgtNzUuOS0zMy40LTIxLjMtMTYuMS00OS45LTE2LjEtNzEuMiAweiJdfSxqRXQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToibWFnbmlmeWluZy1nbGFzcy1jaGFydCIsaWNvbjpbNTEyLDUxMixbXSwiZTUyMiIsIk00MTYgMjA4YzAgNDUuOS0xNC45IDg4LjMtNDAgMTIyLjdMNTAyLjYgNDU3LjRjMTIuNSAxMi41IDEyLjUgMzIuOCAwIDQ1LjNzLTMyLjggMTIuNS00NS4zIDBMMzMwLjcgMzc2QzI5Ni4zIDQwMS4xIDI1My45IDQxNiAyMDggNDE2IDkzLjEgNDE2IDAgMzIyLjkgMCAyMDhTOTMuMSAwIDIwOCAwIDQxNiA5My4xIDQxNiAyMDh6bS0zMTIgOGwwIDY0YzAgMTMuMyAxMC43IDI0IDI0IDI0czI0LTEwLjcgMjQtMjRsMC02NGMwLTEzLjMtMTAuNy0yNC0yNC0yNHMtMjQgMTAuNy0yNCAyNHptODAtOTZsMCAxNjBjMCAxMy4zIDEwLjcgMjQgMjQgMjRzMjQtMTAuNyAyNC0yNGwwLTE2MGMwLTEzLjMtMTAuNy0yNC0yNC0yNHMtMjQgMTAuNy0yNCAyNHptODAgNjRsMCA5NmMwIDEzLjMgMTAuNyAyNCAyNCAyNHMyNC0xMC43IDI0LTI0bDAtOTZjMC0xMy4zLTEwLjctMjQtMjQtMjRzLTI0IDEwLjctMjQgMjR6Il19LFZFdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJ1bWJyZWxsYSIsaWNvbjpbNTEyLDUxMixbXSwiZjBlOSIsIk0yNTYtMzJjMTcuNyAwIDMyIDE0LjMgMzIgMzJsMCAyYzEyNi4zIDE1LjcgMjI0IDEyMy41IDIyNCAyNTQgMCAzLjgtLjEgNy41LS4yIDExLjMtLjMgNi45LTUgMTIuOC0xMS43IDE0LjdzLTEzLjgtLjctMTcuNi02LjVjLTE0LjQtMjEuNC0zOC44LTM1LjUtNjYuNS0zNS41LTI5LjMgMC01NC45IDE1LjctNjguOSAzOS4zLTIuNyA0LjYtNy42IDcuNi0xMyA3LjhzLTEwLjUtMi4yLTEzLjctNi41Yy0xNC42LTE5LjgtMzgtMzIuNi02NC41LTMyLjZzLTQ5LjkgMTIuOC02NC41IDMyLjZjLTMuMiA0LjMtOC4zIDYuOC0xMy43IDYuNXMtMTAuMi0zLjItMTMtNy44Yy0xNC0yMy42LTM5LjYtMzkuMy02OC45LTM5LjMtMjcuNyAwLTUyLjEgMTQuMS02Ni41IDM1LjUtMy45IDUuNy0xMSA4LjQtMTcuNiA2LjVTLjUgMjc0LjIgLjIgMjY3LjNDLjEgMjYzLjUgMCAyNTkuOCAwIDI1NiAwIDEyNS41IDk3LjcgMTcuNyAyMjQgMmwwLTJjMC0xNy43IDE0LjMtMzIgMzItMzJ6bTMyIDM2MGwwIDEwMi42YzAgNDUtMzYuNSA4MS40LTgxLjQgODEuNC0zMC44IDAtNTktMTcuNC03Mi44LTQ1bC0yLjMtNC43Yy03LjktMTUuOC0xLjUtMzUgMTQuMy00Mi45czM1LTEuNSA0Mi45IDE0LjNsMi4zIDQuN2MzIDUuOSA5IDkuNiAxNS42IDkuNiA5LjYgMCAxNy40LTcuOCAxNy40LTE3LjRMMjI0IDMyOGMwLTE3LjcgMTQuMy0zMiAzMi0zMnMzMiAxNC4zIDMyIDMyeiJdfSxVRXQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiaGlsbC1yb2Nrc2xpZGUiLGljb246WzU3Niw1MTIsW10sImU1MDgiLCJNMjUyLjQgMTAzLjhsMjcgNDhjMi44IDUgOC4yIDguMiAxMy45IDguMmw1My4zIDBjNS44IDAgMTEuMS0zLjEgMTMuOS04LjJsMjctNDhjMi43LTQuOSAyLjctMTAuOCAwLTE1LjdsLTI3LTQ4Yy0yLjgtNS04LjItOC4yLTEzLjktOC4ybC01My4zIDBjLTUuOCAwLTExLjEgMy4xLTEzLjkgOC4ybC0yNyA0OGMtMi43IDQuOS0yLjcgMTAuOCAwIDE1Ljd6TTY4LjMgODdDNDMuMSA2MS44IDAgNzkuNyAwIDExNS4zTDAgNDMyYzAgNDQuMiAzNS44IDgwIDgwIDgwbDMxNi43IDBjMzUuNiAwIDUzLjUtNDMuMSAyOC4zLTY4LjNMNjguMyA4N3pNNTA0LjIgNDAzLjZjNC45IDIuNyAxMC44IDIuNyAxNS43IDBsNDgtMjdjNS0yLjggOC4yLTguMiA4LjItMTMuOWwwLTUzLjNjMC01LjgtMy4xLTExLjEtOC4yLTEzLjlsLTQ4LTI3Yy00LjktMi43LTEwLjgtMi43LTE1LjcgMGwtNDggMjdjLTUgMi44LTguMiA4LjItOC4yIDEzLjlsMCA1My4zYzAgNS44IDMuMSAxMS4xIDguMiAxMy45bDQ4IDI3ek0xOTIgNjRhMzIgMzIgMCAxIDAgLTY0IDAgMzIgMzIgMCAxIDAgNjQgMHpNMzg0IDI4OGEzMiAzMiAwIDEgMCAwLTY0IDMyIDMyIDAgMSAwIDAgNjR6Il19LFdFdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJ1c2VyLXNlY3JldCIsaWNvbjpbNDQ4LDUxMixbMTI4MzczXSwiZjIxYiIsIk0xNzEtMTZjLTM2LjQgMC01Ny44IDU4LjMtNjguMyAxMTJMNzIgOTZjLTEzLjMgMC0yNCAxMC43LTI0IDI0czEwLjcgMjQgMjQgMjRsMjQgMCAwIDMyYzAgMTcgMy4zIDMzLjIgOS4zIDQ4bC05LjMgMCAwIDAtMjAuNSAwYy0xNS4yIDAtMjcuNSAxMi4zLTI3LjUgMjcuNSAwIDMgLjUgNS45IDEuNCA4LjdsMjguOSA4Ni42QzQwLjIgMzc5LjYgMTYgNDI4LjEgMTYgNDgyLjMgMTYgNDk4LjcgMjkuMyA1MTIgNDUuNyA1MTJsMzU2LjYgMGMxNi40IDAgMjkuNy0xMy4zIDI5LjctMjkuNyAwLTU0LjItMjQuMi0xMDIuNy02Mi4zLTEzNS40bDI4LjktODYuNmMuOS0yLjggMS40LTUuNyAxLjQtOC43IDAtMTUuMi0xMi4zLTI3LjUtMjcuNS0yNy41bC0yMC41IDAgMCAwLTkuMyAwYzYtMTQuOCA5LjMtMzEgOS4zLTQ4bDAtMzIgMjQgMGMxMy4zIDAgMjQtMTAuNyAyNC0yNHMtMTAuNy0yNC0yNC0yNGwtMzAuNyAwYy0xMC40LTUzLjctMzEuOS0xMTItNjguMy0xMTItOS42IDAtMTkgMy45LTI3LjUgOC4yLTguMiA0LjEtMTguNCA3LjgtMjUuNSA3LjhzLTE3LjMtMy43LTI1LjUtNy44QzE5MC0xMi4xIDE4MC42LTE2IDE3MS0xNnptOTMuNyA0ODQuNGwtMjQuOC03MC45IDI3LjktMzIuNWMyLjctMy4yIDQuMi03LjIgNC4yLTExLjQgMC05LjctNy44LTE3LjUtMTcuNS0xNy41bC02MSAwYy05LjcgMC0xNy41IDcuOC0xNy41IDE3LjUgMCA0LjIgMS41IDguMiA0LjIgMTEuNGwyNy45IDMyLjUtMjQuOCA3MC45LTU3LTE4MC40IDM1LjcgMGMxOC40IDEwLjIgMzkuNSAxNiA2MiAxNnM0My42LTUuOCA2Mi0xNmwzNS43IDAtNTcgMTgwLjR6TTIyNCAyNTZjLTM0LjcgMC02NC4yLTIyLjEtNzUuMy01MyA1LjcgMy4yIDEyLjMgNSAxOS4zIDVsMTIuNCAwYzE2LjUgMCAzMS4xLTEwLjYgMzYuMy0yNi4yIDIuMy03IDEyLjItNyAxNC41IDAgNS4yIDE1LjYgMTkuOSAyNi4yIDM2LjMgMjYuMmwxMi40IDBjNyAwIDEzLjYtMS44IDE5LjMtNS0xMS4xIDMwLjktNDAuNiA1My03NS4zIDUzeiJdfSxHRXQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToicGFnZXIiLGljb246WzUxMiw1MTIsWzEyODIyM10sImY4MTUiLCJNMCAxMjhDMCA5Mi43IDI4LjcgNjQgNjQgNjRsMzg0IDBjMzUuMyAwIDY0IDI4LjcgNjQgNjRsMCAyNTZjMCAzNS4zLTI4LjcgNjQtNjQgNjRMNjQgNDQ4Yy0zNS4zIDAtNjQtMjguNy02NC02NEwwIDEyOHptNjQgMzJsMCA2NGMwIDE3LjcgMTQuMyAzMiAzMiAzMmwzMjAgMGMxNy43IDAgMzItMTQuMyAzMi0zMmwwLTY0YzAtMTcuNy0xNC4zLTMyLTMyLTMyTDk2IDEyOGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJ6TTg4IDMyMGMtMTMuMyAwLTI0IDEwLjctMjQgMjRzMTAuNyAyNCAyNCAyNGw0OCAwYzEzLjMgMCAyNC0xMC43IDI0LTI0cy0xMC43LTI0LTI0LTI0bC00OCAwem0xMjggMGMtMTMuMyAwLTI0IDEwLjctMjQgMjRzMTAuNyAyNCAyNCAyNGw0OCAwYzEzLjMgMCAyNC0xMC43IDI0LTI0cy0xMC43LTI0LTI0LTI0bC00OCAweiJdfSxZRXQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiYnJpZWZjYXNlIixpY29uOls1MTIsNTEyLFsxMjgxODhdLCJmMGIxIiwiTTIwMCA0OGwxMTIgMGM0LjQgMCA4IDMuNiA4IDhsMCA0MC0xMjggMCAwLTQwYzAtNC40IDMuNi04IDgtOHptLTU2IDhsMCA0MC04MCAwQzI4LjcgOTYgMCAxMjQuNyAwIDE2MGwwIDk2IDUxMiAwIDAtOTZjMC0zNS4zLTI4LjctNjQtNjQtNjRsLTgwIDAgMC00MGMwLTMwLjktMjUuMS01Ni01Ni01NkwyMDAgMGMtMzAuOSAwLTU2IDI1LjEtNTYgNTZ6TTUxMiAzMDRsLTE5MiAwIDAgMTZjMCAxNy43LTE0LjMgMzItMzIgMzJsLTY0IDBjLTE3LjcgMC0zMi0xNC4zLTMyLTMybDAtMTYtMTkyIDAgMCAxMTJjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMzg0IDBjMzUuMyAwIDY0LTI4LjcgNjQtNjRsMC0xMTJ6Il19LFpFdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJ0cm93ZWwtYnJpY2tzIixpY29uOls1MTIsNTEyLFtdLCJlNThhIiwiTTIyNCAzMmMwLTExLjUtNi4yLTIyLjItMTYuMi0yNy44cy0yMi4zLTUuNS0zMi4yIC40bC0xNjAgOTZDNS45IDEwNi4zIDAgMTE2LjggMCAxMjhzNS45IDIxLjcgMTUuNSAyNy40bDE2MCA5NmM5LjkgNS45IDIyLjIgNi4xIDMyLjIgLjRTMjI0IDIzNS41IDIyNCAyMjRsMC02NCAyNTYgMGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMmwtMjU2IDAgMC02NHptOTYgMTkyYy0xNy43IDAtMzIgMTQuMy0zMiAzMmwwIDY0YzAgMTcuNyAxNC4zIDMyIDMyIDMybDE2MCAwYzE3LjcgMCAzMi0xNC4zIDMyLTMybDAtNjRjMC0xNy43LTE0LjMtMzItMzItMzJsLTE2MCAwek0wIDQxNmwwIDY0YzAgMTcuNyAxNC4zIDMyIDMyIDMybDk2IDBjMTcuNyAwIDMyLTE0LjMgMzItMzJsMC02NGMwLTE3LjctMTQuMy0zMi0zMi0zMmwtOTYgMGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJ6bTIyNC0zMmMtMTcuNyAwLTMyIDE0LjMtMzIgMzJsMCA2NGMwIDE3LjcgMTQuMyAzMiAzMiAzMmwyNTYgMGMxNy43IDAgMzItMTQuMyAzMi0zMmwwLTY0YzAtMTcuNy0xNC4zLTMyLTMyLTMybC0yNTYgMHoiXX0sWEV0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InNvY2tzIixpY29uOls1MTIsNTEyLFsxMjk1MTBdLCJmNjk2IiwiTTI1Mi44IDBMMTc2IDBjLTI2LjUgMC00OCAyMS41LTQ4IDQ4bDAgMTYgMTEyIDAgMC0xNmMwLTE3LjUgNC43LTMzLjkgMTIuOC00OHpNMTI4IDExMmwwIDEyOGMwIDIwLjEtOS41IDM5LjEtMjUuNiA1MS4ybC02NCA0OGMtMjQuMiAxOC4xLTM4LjQgNDYuNi0zOC40IDc2LjggMCA1MyA0MyA5NiA5NiA5NiAxNS40IDAgMzAuNS0zLjcgNDQtMTAuNy0xNy42LTIzLjktMjgtNTMuNC0yOC04NS4zIDAtNDUuMyAyMS4zLTg4IDU3LjYtMTE1LjJsNjQtNDhjNC0zIDYuNC03LjggNi40LTEyLjhsMC0xMjgtMTEyIDB6bTE2MCAwbDAgMTI4YzAgMjAuMS05LjUgMzkuMS0yNS42IDUxLjJsLTY0IDQ4Yy0yNC4yIDE4LjEtMzguNCA0Ni42LTM4LjQgNzYuOCAwIDUzIDQzIDk2IDk2IDk2IDIwLjggMCA0MS02LjcgNTcuNi0xOS4ybDExNS4yLTg2LjRDNDYxIDM4Mi4yIDQ4MCAzNDQuMyA0ODAgMzA0bDAtMTkyLTE5MiAwek00ODAgNjRsMC0xNmMwLTI2LjUtMjEuNS00OC00OC00OEwzMzYgMGMtMjYuNSAwLTQ4IDIxLjUtNDggNDhsMCAxNiAxOTIgMHoiXX0sUUV0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InQiLGljb246WzM4NCw1MTIsWzExNl0sIjU0IiwiTTMyIDMyQzE0LjMgMzIgMCA0Ni4zIDAgNjRTMTQuMyA5NiAzMiA5NmwxMjggMCAwIDM1MmMwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMybDAtMzUyIDEyOCAwYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMyTDMyIDMyeiJdfSxKRXQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToibWljcm9jaGlwIixpY29uOls1MTIsNTEyLFtdLCJmMmRiIiwiTTE3NiAyNGMwLTEzLjMtMTAuNy0yNC0yNC0yNHMtMjQgMTAuNy0yNCAyNGwwIDQwYy0zNS4zIDAtNjQgMjguNy02NCA2NGwtNDAgMGMtMTMuMyAwLTI0IDEwLjctMjQgMjRzMTAuNyAyNCAyNCAyNGw0MCAwIDAgNTYtNDAgMGMtMTMuMyAwLTI0IDEwLjctMjQgMjRzMTAuNyAyNCAyNCAyNGw0MCAwIDAgNTYtNDAgMGMtMTMuMyAwLTI0IDEwLjctMjQgMjRzMTAuNyAyNCAyNCAyNGw0MCAwYzAgMzUuMyAyOC43IDY0IDY0IDY0bDAgNDBjMCAxMy4zIDEwLjcgMjQgMjQgMjRzMjQtMTAuNyAyNC0yNGwwLTQwIDU2IDAgMCA0MGMwIDEzLjMgMTAuNyAyNCAyNCAyNHMyNC0xMC43IDI0LTI0bDAtNDAgNTYgMCAwIDQwYzAgMTMuMyAxMC43IDI0IDI0IDI0czI0LTEwLjcgMjQtMjRsMC00MGMzNS4zIDAgNjQtMjguNyA2NC02NGw0MCAwYzEzLjMgMCAyNC0xMC43IDI0LTI0cy0xMC43LTI0LTI0LTI0bC00MCAwIDAtNTYgNDAgMGMxMy4zIDAgMjQtMTAuNyAyNC0yNHMtMTAuNy0yNC0yNC0yNGwtNDAgMCAwLTU2IDQwIDBjMTMuMyAwIDI0LTEwLjcgMjQtMjRzLTEwLjctMjQtMjQtMjRsLTQwIDBjMC0zNS4zLTI4LjctNjQtNjQtNjRsMC00MGMwLTEzLjMtMTAuNy0yNC0yNC0yNHMtMjQgMTAuNy0yNCAyNGwwIDQwLTU2IDAgMC00MGMwLTEzLjMtMTAuNy0yNC0yNC0yNHMtMjQgMTAuNy0yNCAyNGwwIDQwLTU2IDAgMC00MHpNMTYwIDEyOGwxOTIgMGMxNy43IDAgMzIgMTQuMyAzMiAzMmwwIDE5MmMwIDE3LjctMTQuMyAzMi0zMiAzMmwtMTkyIDBjLTE3LjcgMC0zMi0xNC4zLTMyLTMybDAtMTkyYzAtMTcuNyAxNC4zLTMyIDMyLTMyem0xNiA0OGwwIDE2MCAxNjAgMCAwLTE2MC0xNjAgMHoiXX0sYTNlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InRydWNrLW1lZGljYWwiLGljb246WzU3Niw1MTIsWzEyODY1NywiYW1idWxhbmNlIl0sImYwZjkiLCJNNjQgMzJDMjguNyAzMiAwIDYwLjcgMCA5NkwwIDM4NGMwIDM1LjMgMjguNyA2NCA2NCA2NGwzLjMgMGMxMC40IDM2LjkgNDQuNCA2NCA4NC43IDY0czc0LjItMjcuMSA4NC43LTY0bDEwMi42IDBjMTAuNCAzNi45IDQ0LjQgNjQgODQuNyA2NHM3NC4yLTI3LjEgODQuNy02NGwzLjMgMGMzNS4zIDAgNjQtMjguNyA2NC02NGwwLTE0Ni43YzAtMTctNi43LTMzLjMtMTguNy00NS4zTDUxMiAxNDYuN2MtMTItMTItMjguMy0xOC43LTQ1LjMtMTguN2wtNTAuNyAwIDAtMzJjMC0zNS4zLTI4LjctNjQtNjQtNjRMNjQgMzJ6TTUxMiAyMzcuM2wwIDUwLjctOTYgMCAwLTk2IDUwLjcgMCA0NS4zIDQ1LjN6TTE1MiAzODRhNDAgNDAgMCAxIDEgMCA4MCA0MCA0MCAwIDEgMSAwLTgwem0yMzIgNDBhNDAgNDAgMCAxIDEgODAgMCA0MCA0MCAwIDEgMSAtODAgMHpNMTc2IDEzNmMwLTguOCA3LjItMTYgMTYtMTZsMzIgMGM4LjggMCAxNiA3LjIgMTYgMTZsMCA0MCA0MCAwYzguOCAwIDE2IDcuMiAxNiAxNmwwIDMyYzAgOC44LTcuMiAxNi0xNiAxNmwtNDAgMCAwIDQwYzAgOC44LTcuMiAxNi0xNiAxNmwtMzIgMGMtOC44IDAtMTYtNy4yLTE2LTE2bDAtNDAtNDAgMGMtOC44IDAtMTYtNy4yLTE2LTE2bDAtMzJjMC04LjggNy4yLTE2IDE2LTE2bDQwIDAgMC00MHoiXX0sS0V0PWEzZSxlJHQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToib20iLGljb246WzU3Niw1MTIsWzEyODMyOV0sImY2NzkiLCJNMzg4LjcgNC43YzYuMi02LjIgMTYuNC02LjIgMjIuNiAwbDE2IDE2YzYuMiA2LjIgNi4yIDE2LjQgMCAyMi42bC0xNiAxNmMtNi4yIDYuMi0xNi40IDYuMi0yMi42IDBsLTE2LTE2Yy02LjItNi4yLTYuMi0xNi40IDAtMjIuNmwxNi0xNnpNMTc2IDE2MGMtMTAuOCAwLTIwLjggMy42LTI4LjggOS42LTE0LjEgMTAuNi0zNC4yIDcuOC00NC44LTYuNHMtNy44LTM0LjIgNi40LTQ0LjhjMTguNy0xNC4xIDQyLTIyLjQgNjcuMi0yMi40IDYxLjkgMCAxMTIgNTAuMSAxMTIgMTEyIDAgMTcuMi0zLjkgMzMuNS0xMC44IDQ4bDQ5LjcgMGMxMi43IDAgMjQuOS01IDMzLjktMTQuMWwyMC43LTIwLjdjMTguNy0xOC43IDQ0LjEtMjkuMyA3MC42LTI5LjMgNTUuMiAwIDk5LjkgNDQuNyA5OS45IDk5LjlsMCA5Ni4xYzAgNTUuMi00NC44IDEwMC0xMDAgMTAwUzM1MiA0NDMuMiAzNTIgMzg4bDAtNGMwLTE3LjcgMTQuMy0zMiAzMi0zMnMzMiAxNC4zIDMyIDMybDAgNGMwIDE5LjkgMTYuMSAzNiAzNiAzNnMzNi0xNi4xIDM2LTM2bDAtOTYuMWMwLTE5LjgtMTYuMS0zNS45LTM1LjktMzUuOS05LjUgMC0xOC42IDMuOC0yNS40IDEwLjVsLTIwLjcgMjAuN2MtMjEgMjEtNDkuNCAzMi44LTc5LjEgMzIuOGwtMjYuOCAwYzEyLjYgMTkuNiAxOS45IDQyLjggMTkuOSA2OCAwIDc1LjItNjUgMTMyLTE0MCAxMzJTNDAgNDYzLjIgNDAgMzg4YzAtMTcuNyAxNC4zLTMyIDMyLTMyczMyIDE0LjMgMzIgMzJjMCAzNS4zIDMxLjcgNjggNzYgNjhzNzYtMzIuNyA3Ni02OC0zMS43LTY4LTc2LTY4bC0yMCAwYy0xNy43IDAtMzItMTQuMy0zMi0zMnMxNC4zLTMyIDMyLTMybDE2IDBjMjYuNSAwIDQ4LTIxLjUgNDgtNDhzLTIxLjUtNDgtNDgtNDh6TTMzNy4xIDYwLjFjLTExLTEzLjgtMzEuMS0xNi4yLTQ1LTUuMnMtMTYuMiAzMS4xLTUuMiA0NUMzMTIuNiAxMzIuMiAzNTQuNCAxNTIgNDAwIDE1MnM4Ny40LTE5LjggMTEzLjEtNTIuMWMxMS0xMy44IDguNy0zNC01LjItNDVzLTM0LTguNy00NSA1LjJDNDUwLjMgNzYgNDI3LjUgODggNDAwIDg4cy01MC4zLTEyLTYyLjktMjcuOXoiXX0sdCR0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6Im1vc3F1aXRvLW5ldCIsaWNvbjpbNjQwLDUxMixbXSwiZTUyYyIsIk01NzYgMzUyYzEzLjMgMCAyNCAxMC43IDI0IDI0bDAgMTYgMTYgMGMxMy4zIDAgMjQgMTAuNyAyNCAyNHMtMTAuNyAyNC0yNCAyNGwtMTYgMCAwIDQ4IDE2IDBjMTMuMyAwIDI0IDEwLjcgMjQgMjRzLTEwLjcgMjQtMjQgMjRsLTE2IDAgMCAxNi0uMSAyLjVDNTk4LjYgNTY2LjYgNTg4LjQgNTc2IDU3NiA1NzZzLTIyLjYtOS40LTIzLjktMjEuNWwtLjEtMi41IDAtMTYtNDggMCAwIDE2LS4xIDIuNUM1MDIuNiA1NjYuNiA0OTIuNCA1NzYgNDgwIDU3NnMtMjIuNi05LjQtMjMuOS0yMS41bC0uMS0yLjUgMC0xNi0xNiAwYy0xMy4zIDAtMjQtMTAuNy0yNC0yNHMxMC43LTI0IDI0LTI0bDE2IDAgMC00OC0xNiAwYy0xMy4zIDAtMjQtMTAuNy0yNC0yNHMxMC43LTI0IDI0LTI0bDE2IDAgMC0xNmMwLTEzLjMgMTAuNy0yNCAyNC0yNHMyNCAxMC43IDI0IDI0bDAgMTYgNDggMCAwLTE2YzAtMTMuMyAxMC43LTI0IDI0LTI0ek00MjkuOSAxNi4zYzcuNy05LjQgMjEuMy0xMS41IDMxLjQtNC4zIDEwLjEgNy4xIDEzLjEgMjAuOSA3LjQgMzEuN2wtMS4zIDIuMS0yNS45IDM4LjkgMTMuMyA1My40YzIgOC0uMSAxNi4zLTUuMyAyMi4zbC0yLjQgMi40LTQ0LjcgMzguMyAxMzAuNSAxNC41YzQyLjggNC44IDc1LjEgNDAuOSA3NS4xIDgzLjkgMCAzLjktLjQgNy43LS45IDExLjUtNy4zLTMuNS0xNS4zLTUuOC0yMy44LTYuN0w1NzYgMzA0Yy0xOC41IDAtMzUuMyA3LTQ4IDE4LjQtMTEtOS45LTI1LjEtMTYuNS00MC42LTE4LjFMNDgwIDMwNGMtMzAuMyAwLTU2LjEgMTguNy02Ni44IDQ1LjItMTIuNSA1LTIzLjIgMTMuNC0zMS4xIDI0bC0zMC4yLTQwLjEgMCA3NC43YzAgMTcuNy0xNC4zIDMyLTMyIDMyLTE2LjYgMC0zMC4yLTEyLjYtMzEuOC0yOC43bC0uMi0zLjMgMC03NC42LTMyLjMgNDMgMCAzOS44YzAgMy41LS43IDYuOS0yLjEgMTAuMWwtMS42IDMuMS00MCA2NC0xLjQgMmMtNy41IDkuNi0yMSAxMi4xLTMxLjMgNS4zLTEwLjMtNi44LTEzLjctMjAuNS04LjMtMzEuNWwxLjItMi4yIDM2LjItNTggMC00MSAuMy00Yy42LTMuOSAyLjItNy43IDQuNi0xMC45bDM5LjMtNTIuMi02Ni4yIDU5LjVjLTE3IDE1LjMtMzkgMjMuNy02MS45IDIzLjhsLTguMSAwYy00Ni42IDAtODQuNC0zNy44LTg0LjQtODQuNCAwLTQzIDMyLjQtNzkuMiA3NS4xLTgzLjlsMTMwLjUtMTQuNS00NC43LTM4LjMtMi40LTIuNGMtNS4yLTYtNy4zLTE0LjQtNS4zLTIyLjNsMTMuMy01My40LTI1LjktMzguOS0xLjItMi4xYy01LjctMTAuOC0yLjctMjQuNiA3LjQtMzEuNyAxMC4xLTcuMSAyMy43LTUuMSAzMS40IDQuM2wxLjUgMiAzMiA0OCAxLjQgMi4yYzIuOCA1LjMgMy41IDExLjYgMi4xIDE3LjZsLTEyLjMgNDkuMiA1My4zIDQ1LjcgMC0yOC44IC4yLTMuMmMxLjEtMTAuNCA3LjItMTkuNCAxNS44LTI0LjRsMC02MC41IC4zLTMuMmMxLjUtNy4zIDgtMTIuNyAxNS43LTEyLjggNy43IDAgMTQuMiA1LjUgMTUuNyAxMi44bC4zIDMuMiAwIDYwLjVjOC43IDUgMTQuOCAxNCAxNS44IDI0LjRsLjIgMy4yIDAgMjguOSA1My40LTQ1LjctMTIuMy00OS4yYy0xLjUtNS45LS43LTEyLjIgMi4xLTE3LjZsMS40LTIuMiAzMi00OCAxLjUtMnpNNTA0IDQ4OGw0OCAwIDAtNDgtNDggMCAwIDQ4eiJdfSxyJHQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToicHJlc2NyaXB0aW9uLWJvdHRsZSIsaWNvbjpbMzg0LDUxMixbXSwiZjQ4NSIsIk0wIDMyQzAgMTQuMyAxNC4zIDAgMzIgMEwzNTIgMGMxNy43IDAgMzIgMTQuMyAzMiAzMmwwIDMyYzAgMTcuNy0xNC4zIDMyLTMyIDMyTDMyIDk2QzE0LjMgOTYgMCA4MS43IDAgNjRMMCAzMnpNMzIgMTQ0bDMyMCAwIDAgMzA0YzAgMzUuMy0yOC43IDY0LTY0IDY0TDk2IDUxMmMtMzUuMyAwLTY0LTI4LjctNjQtNjRsNzIgMGMxMy4zIDAgMjQtMTAuNyAyNC0yNHMtMTAuNy0yNC0yNC0yNGwtNzIgMCAwLTQ4IDcyIDBjMTMuMyAwIDI0LTEwLjcgMjQtMjRzLTEwLjctMjQtMjQtMjRsLTcyIDAgMC00OCA3MiAwYzEzLjMgMCAyNC0xMC43IDI0LTI0cy0xMC43LTI0LTI0LTI0bC03MiAwIDAtNjR6Il19LG4zZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJ1c2Vycy1nZWFyIixpY29uOls2NDAsNTEyLFsidXNlcnMtY29nIl0sImY1MDkiLCJNMzIwIDIyNGExMDQgMTA0IDAgMSAwIDAtMjA4IDEwNCAxMDQgMCAxIDAgMCAyMDh6TTk2IDIzMmE3MiA3MiAwIDEgMCAwLTE0NCA3MiA3MiAwIDEgMCAwIDE0NHpNMCA0MTZsMCAzMmMwIDE3LjcgMTQuMyAzMiAzMiAzMmw4Ni43IDBjLTQuMy05LjgtNi43LTIwLjYtNi43LTMybDAtMTZjMC01My4yIDIwLTEwMS44IDUyLjktMTM4LjYtMTEuNy0zLjUtMjQuMS01LjQtMzYuOS01LjQtNzAuNyAwLTEyOCA1Ny4zLTEyOCAxMjh6TTYxNiAxNjBhNzIgNzIgMCAxIDAgLTE0NCAwIDcyIDcyIDAgMSAwIDE0NCAwek0xNjAgNDMybDAgMTZjMCAxNy43IDE0LjMgMzIgMzIgMzJsMTU2LjggMGMtNy4xLTIxLjYtNi4zLTQ0LjQgMTAuNy02NC0xNC0xNi4yLTIwLjUtMzkuNy0xMS40LTYzLjMgNi42LTE3LjEgMTUuOS0zMy4xIDI3LjQtNDcuMyA1LjQtNi42IDExLjYtMTEuNyAxOC4zLTE1LjQtMjIuMS0xMS41LTQ3LjItMTgtNzMuOC0xOC04OC40IDAtMTYwIDcxLjYtMTYwIDE2MHptNDY0LjYtNDQuMWM2LjMtMy42IDkuNS0xMS4xIDYuOC0xOC00LjgtMTIuNC0xMS41LTI0LjEtMTkuOS0zNC40LTQuNi01LjctMTIuNy02LjctMTktMy0yMS44IDEyLjYtNDguNi0yLjgtNDguNi0yOC4xIDAtNy4zLTQuOS0xMy44LTEyLjEtMTQuOS0xMi45LTItMjYuOC0yLTM5LjcgMC03LjIgMS4xLTEyLjEgNy42LTEyLjEgMTQuOSAwIDI1LjItMjYuOCA0MC43LTQ4LjYgMjguMS02LjMtMy42LTE0LjQtMi42LTE5IDMtOC40IDEwLjMtMTUuMSAyMi0xOS45IDM0LjQtMi42IDYuOCAuNSAxNC4zIDYuOCAxNy45IDIxLjkgMTIuNiAyMS45IDQzLjUgMCA1Ni4yLTYuMyAzLjYtOS41IDExLjEtNi44IDE3LjkgNC44IDEyLjQgMTEuNSAyNC4xIDE5LjkgMzQuNCA0LjYgNS43IDEyLjcgNi43IDE5IDMgMjEuOC0xMi42IDQ4LjYgMi45IDQ4LjYgMjguMSAwIDcuMyA0LjkgMTMuOCAxMi4xIDE0LjkgMTIuOSAyIDI2LjggMiAzOS43IDAgNy4yLTEuMSAxMi4xLTcuNiAxMi4xLTE0LjkgMC0yNS4yIDI2LjgtNDAuNyA0OC42LTI4LjEgNi4zIDMuNiAxNC40IDIuNiAxOS0zIDguNC0xMC4zIDE1LjEtMjIgMTkuOS0zNC40IDIuNi02LjgtLjUtMTQuMy02LjgtMTcuOS0yMS45LTEyLjYtMjEuOS00My41IDAtNTYuMnpNNDcyIDQxNmE0MCA0MCAwIDEgMSA4MCAwIDQwIDQwIDAgMSAxIC04MCAweiJdfSxpJHQ9bjNlLGEkdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJyb2FkLWNpcmNsZS1leGNsYW1hdGlvbiIsaWNvbjpbNjQwLDUxMixbXSwiZTU2NSIsIk0yODggMzJsLTc2LjMgMGMtMjkuNCAwLTU1LjEgMjAuMS02Mi4xIDQ4LjZMNjUuNCA0MjAuNUM1Ny45IDQ1MC43IDgwLjggNDgwIDExMiA0ODBsMjA5LjQgMGMtMTEuMi0yNC40LTE3LjQtNTEuNC0xNy40LTgwIDAtMjguNiA2LjItNTUuNyAxNy40LTgwLS41IDAtMSAwLTEuNSAwLTE3LjcgMC0zMi0xNC4zLTMyLTMybDAtNjRjMC0xNy43IDE0LjMtMzIgMzItMzJzMzIgMTQuMyAzMiAzMmwwIDQ5YzM1LjItMzkuOSA4Ni43LTY1IDE0NC02NSA5IDAgMTcuOCAuNiAyNi41IDEuOGwtMzItMTI5LjJDNDgzLjQgNTIuMSA0NTcuOCAzMiA0MjguMyAzMmwtNzYuNCAwIDAgNjRjMCAxNy43LTE0LjMgMzItMzIgMzJzLTMyLTE0LjMtMzItMzJsMC02NHpNNDk2IDU0NGExNDQgMTQ0IDAgMSAwIDAtMjg4IDE0NCAxNDQgMCAxIDAgMCAyODh6bTAtMTAwYTIwIDIwIDAgMSAxIDAgNDAgMjAgMjAgMCAxIDEgMC00MHptMC0xNDBjOC44IDAgMTYgNy4yIDE2IDE2bDAgODBjMCA4LjgtNy4yIDE2LTE2IDE2cy0xNi03LjItMTYtMTZsMC04MGMwLTguOCA3LjItMTYgMTYtMTZ6Il19LG4kdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJwYXVzZSIsaWNvbjpbMzg0LDUxMixbOTIwOF0sImYwNGMiLCJNNDggMzJDMjEuNSAzMiAwIDUzLjUgMCA4MEwwIDQzMmMwIDI2LjUgMjEuNSA0OCA0OCA0OGw2NCAwYzI2LjUgMCA0OC0yMS41IDQ4LTQ4bDAtMzUyYzAtMjYuNS0yMS41LTQ4LTQ4LTQ4TDQ4IDMyem0yMjQgMGMtMjYuNSAwLTQ4IDIxLjUtNDggNDhsMCAzNTJjMCAyNi41IDIxLjUgNDggNDggNDhsNjQgMGMyNi41IDAgNDgtMjEuNSA0OC00OGwwLTM1MmMwLTI2LjUtMjEuNS00OC00OC00OGwtNjQgMHoiXX0scWc9e3ByZWZpeDoiZmFzIixpY29uTmFtZToic3RhZmYtc25ha2UiLGljb246WzQ0OCw1MTIsWyJyb2QtYXNjbGVwaXVzIiwicm9kLXNuYWtlIiwic3RhZmYtYWVzY3VsYXBpdXMiXSwiZTU3OSIsIk0xOTIgMzJsMC0zMmMwLTE3LjcgMTQuMy0zMiAzMi0zMnMzMiAxNC4zIDMyIDMybDAgMzIgNjQgMGM1MyAwIDk2IDQzIDk2IDk2cy00MyA5Ni05NiA5NmwtMTYgMCAwLTY0IDE2IDBjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJsLTY0IDAgMCAxOTIgMzIgMGM1MyAwIDk2IDQzIDk2IDk2IDAgNDcuNi0zNC42IDg3LjEtODAgOTQuN2wwLTY3YzkuNi01LjUgMTYtMTUuOSAxNi0yNy43IDAtMTcuNy0xNC4zLTMyLTMyLTMybC0zMiAwIDAgMTYwYzAgMTcuNy0xNC4zIDMyLTMyIDMycy0zMi0xNC4zLTMyLTMybDAtMzItMzIgMGMtMTcuNyAwLTMyLTE0LjMtMzItMzJzMTQuMy0zMiAzMi0zMmwzMiAwIDAtNjQtMzIgMGMtNTMgMC05Ni00My05Ni05NiAwLTQ3LjYgMzQuNi04Ny4xIDgwLTk0LjdsMCA2N2MtOS42IDUuNS0xNiAxNS45LTE2IDI3LjcgMCAxNy43IDE0LjMgMzIgMzIgMzJsMzIgMCAwLTE5Mi03Mi42IDBjLTExLjEgMTkuMS0zMS43IDMyLTU1LjQgMzJsLTE2IDBDMjEuNSAxMjggMCAxMDYuNSAwIDgwUzIxLjUgMzIgNDggMzJsMTQ0IDB6Il19LG8kdD1xZyxzJHQ9cWcsbCR0PXFnLGMkdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJwaWdneS1iYW5rIixpY29uOls1NzYsNTEyLFtdLCJmNGQzIiwiTTI4OC0zMmE5NiA5NiAwIDEgMSAwIDE5MiA5NiA5NiAwIDEgMSAwLTE5MnpNNDggMzA0YzAtNzAuMSA0Ny0xMzEuNCAxMTcuMS0xNjQuOSAyNS4zIDQxLjMgNzAuOSA2OC45IDEyMi45IDY4LjkgNTUuNyAwIDEwNC4xLTMxLjcgMTI4LTc4IDE1LjgtMTEuMyAzNS4xLTE4IDU2LTE4bDE5LjUgMGMxMC40IDAgMTggOS44IDE1LjUgMTkuOWwtMTcuMSA2OC4zYzkuOSAxMi40IDE4LjIgMjUuNyAyNC40IDM5LjhsMjEuNyAwYzEzLjMgMCAyNCAxMC43IDI0IDI0bDAgMTEyYzAgMTMuMy0xMC43IDI0LTI0IDI0bC00MCAwYy0xNi41IDIyLTM4LjUgMzkuNi02NCA1MC43bDAgMjkuM2MwIDE3LjctMTQuMyAzMi0zMiAzMmwtMzMgMGMtMTQuMyAwLTI2LjgtOS41LTMwLjgtMjMuMmwtNy4xLTI0LjgtODIuMyAwLTcuMSAyNC44QzIzNS44IDUwMi41IDIyMy4zIDUxMiAyMDkgNTEybC0zMyAwYy0xNy43IDAtMzItMTQuMy0zMi0zMmwwLTI5LjNDODcuNSA0MjYgNDggMzY5LjYgNDggMzA0em0zNzYgMTZhMjQgMjQgMCAxIDAgMC00OCAyNCAyNCAwIDEgMCAwIDQ4eiJdfSxkJHQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToibW9udW1lbnQiLGljb246WzM4NCw1MTIsW10sImY1YTYiLCJNMjA5LTMzYy05LjQtOS40LTI0LjYtOS40LTMzLjkgMEw5NSA0N2MtNC4xIDQuMS02LjUgOS40LTcgMTUuMUw1OC40IDQ0OCA0OCA0NDhjLTE3LjcgMC0zMiAxNC4zLTMyIDMyczE0LjMgMzIgMzIgMzJsMjg4IDBjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJsLTEwLjQgMC0yOS43LTM4NS44Yy0uNC01LjctMi45LTExLjEtNy0xNS4xTDIwOS0zM3pNMTI4IDI5NmMwLTEzLjMgMTAuNy0yNCAyNC0yNGw4MCAwYzEzLjMgMCAyNCAxMC43IDI0IDI0cy0xMC43IDI0LTI0IDI0bC04MCAwYy0xMy4zIDAtMjQtMTAuNy0yNC0yNHoiXX0sbzNlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImFuZ2xlcy1yaWdodCIsaWNvbjpbNDQ4LDUxMixbMTg3LCJhbmdsZS1kb3VibGUtcmlnaHQiXSwiZjEwMSIsIk00MzkuMSAyNzguNmMxMi41LTEyLjUgMTIuNS0zMi44IDAtNDUuM2wtMTYwLTE2MGMtMTIuNS0xMi41LTMyLjgtMTIuNS00NS4zIDBzLTEyLjUgMzIuOCAwIDQ1LjNMMzcxLjIgMjU2IDIzMy45IDM5My40Yy0xMi41IDEyLjUtMTIuNSAzMi44IDAgNDUuM3MzMi44IDEyLjUgNDUuMyAwbDE2MC0xNjB6bS0zNTIgMTYwbDE2MC0xNjBjMTIuNS0xMi41IDEyLjUtMzIuOCAwLTQ1LjNsLTE2MC0xNjBjLTEyLjUtMTIuNS0zMi44LTEyLjUtNDUuMyAwcy0xMi41IDMyLjggMCA0NS4zTDE3OS4yIDI1NiA0MS45IDM5My40Yy0xMi41IDEyLjUtMTIuNSAzMi44IDAgNDUuM3MzMi44IDEyLjUgNDUuMyAweiJdfSx1JHQ9bzNlLGliPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImRlc2t0b3AiLGljb246WzUxMiw1MTIsWzEyODQyMSw2MTcwNCwiZGVza3RvcC1hbHQiXSwiZjM5MCIsIk02NCAzMkMyOC43IDMyIDAgNjAuNyAwIDk2TDAgMzUyYzAgMzUuMyAyOC43IDY0IDY0IDY0bDE0NCAwLTE2IDQ4LTcyIDBjLTEzLjMgMC0yNCAxMC43LTI0IDI0czEwLjcgMjQgMjQgMjRsMjcyIDBjMTMuMyAwIDI0LTEwLjcgMjQtMjRzLTEwLjctMjQtMjQtMjRsLTcyIDAtMTYtNDggMTQ0IDBjMzUuMyAwIDY0LTI4LjcgNjQtNjRsMC0yNTZjMC0zNS4zLTI4LjctNjQtNjQtNjRMNjQgMzJ6TTk2IDk2bDMyMCAwYzE3LjcgMCAzMiAxNC4zIDMyIDMybDAgMTYwYzAgMTcuNy0xNC4zIDMyLTMyIDMyTDk2IDMyMGMtMTcuNyAwLTMyLTE0LjMtMzItMzJsMC0xNjBjMC0xNy43IDE0LjMtMzIgMzItMzJ6Il19LHAkdD1pYixoJHQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToicGxhbmUtY2lyY2xlLXhtYXJrIixpY29uOls2NDAsNTEyLFtdLCJlNTU3IiwiTTIzMiAyNGMwLTMwLjkgMjUuMS01NiA1Ni01NnM1NiAyNS4xIDU2IDU2bDAgMTI3LjMgNzggNzEuNWMtNjkuMyAyOS0xMTggOTcuNC0xMTggMTc3LjIgMCA0OS4zIDE4LjYgOTQuMyA0OS4xIDEyOC4zTDI4OCA1MTIgMTc5LjkgNTM5Yy0xMC4xIDIuNS0xOS45LTUuMS0xOS45LTE1LjVsMC0xOS44YzAtNC45IDIuMi05LjUgNi0xMi41bDY2LTUyLjggMC05OS43LTE2Mi45IDU0LjNDNTguNyAzOTYuNCA0OCAzODguNyA0OCAzNzcuOGwwLTQzLjdjMC05IDMuOC0xNy41IDEwLjQtMjMuNkwyMzIgMTUxLjMgMjMyIDI0ek00OTYgMjU2YTE0NCAxNDQgMCAxIDEgMCAyODggMTQ0IDE0NCAwIDEgMSAwLTI4OHptNTkuMyAxMDcuM2M2LjItNi4yIDYuMi0xNi40IDAtMjIuNnMtMTYuNC02LjItMjIuNiAwbC0zNi43IDM2LjctMzYuNy0zNi43Yy02LjItNi4yLTE2LjQtNi4yLTIyLjYgMHMtNi4yIDE2LjQgMCAyMi42bDM2LjcgMzYuNy0zNi43IDM2LjdjLTYuMiA2LjItNi4yIDE2LjQgMCAyMi42czE2LjQgNi4yIDIyLjYgMGwzNi43LTM2LjcgMzYuNyAzNi43YzYuMiA2LjIgMTYuNCA2LjIgMjIuNiAwczYuMi0xNi40IDAtMjIuNmwtMzYuNy0zNi43IDM2LjctMzYuN3oiXX0sZiR0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InJldHdlZXQiLGljb246WzU3Niw1MTIsW10sImYwNzkiLCJNMTE4LjYgNDEuNGMtMTIuNS0xMi41LTMyLjgtMTIuNS00NS4zIDBsLTY0IDY0Yy05LjIgOS4yLTExLjkgMjIuOS02LjkgMzQuOVMxOS4xIDE2MCAzMiAxNjBsMzIgMCAwIDIyNGMwIDUzIDQzIDk2IDk2IDk2bDEyOCAwYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMybC0xMjggMGMtMTcuNyAwLTMyLTE0LjMtMzItMzJsMC0yMjQgMzIgMGMxMi45IDAgMjQuNi03LjggMjkuNi0xOS44czIuMi0yNS43LTYuOS0zNC45bC02NC02NHpNNDU3LjQgNDcwLjZjMTIuNSAxMi41IDMyLjggMTIuNSA0NS4zIDBsNjQtNjRjOS4yLTkuMiAxMS45LTIyLjkgNi45LTM0LjlTNTU2LjkgMzUyIDU0NCAzNTJsLTMyIDAgMC0yMjRjMC01My00My05Ni05Ni05NkwyODggMzJjLTE3LjcgMC0zMiAxNC4zLTMyIDMyczE0LjMgMzIgMzIgMzJsMTI4IDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJsMCAyMjQtMzIgMGMtMTIuOSAwLTI0LjYgNy44LTI5LjYgMTkuOHMtMi4yIDI1LjcgNi45IDM0LjlsNjQgNjR6Il19LHMzZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJ1c2VyLWdlYXIiLGljb246WzY0MCw1MTIsWyJ1c2VyLWNvZyJdLCJmNGZlIiwiTTI1Ni41IDhhMTIwIDEyMCAwIDEgMSAwIDI0MCAxMjAgMTIwIDAgMSAxIDAtMjQwek0yMjYuNyAzMDRsNTkuNCAwIDEuNSAwYy0xMi45IDI2LjgtNy44IDU4LjIgMTEuNSA3OS41LTIwLjIgMjIuMy0yNC44IDU1LjgtOS40IDgzLjRsMjIuNSA0MC40Yy45IDEuNiAxLjkgMy4yIDIuOSA0LjdsLTIzNyAwYy0xNi40IDAtMjkuNy0xMy4zLTI5LjctMjkuNyAwLTk4LjUgNzkuOC0xNzguMyAxNzguMy0xNzguM3ptMjA1LjktNTYuNGMwLTEzLjMgMTAuNy0yNCAyNC0yNGw0OCAwYzEzLjMgMCAyNCAxMC43IDI0IDI0bDAgNi4xYzAgMTguOSAyNC4xIDMyLjggNDAuNSAyMy40bDUtMi45YzExLjYtNi43IDI2LjUtMi42IDMzIDkuMWwyMi40IDQwLjJjNi4yIDExLjIgMi42IDI1LjItOC4yIDMybC00LjcgMi45Yy0xNi4yIDEwLjEtMTYuMiAzOS45IDAgNTAuMWw0LjYgMi45YzEwLjggNi44IDE0LjUgMjAuOCA4LjMgMzJMNjA3IDQ4My44Yy02LjUgMTEuNy0yMS40IDE1LjktMzMgOS4xbC00LjktMi45Yy0xNi40LTkuNS00MC41IDQuNS00MC41IDIzLjRsMCA2LjFjMCAxMy4zLTEwLjcgMjQtMjQgMjRsLTQ4IDBjLTEzLjMgMC0yNC0xMC43LTI0LTI0bDAtNS45YzAtMTktMjQuMi0zMy00MC43LTIzLjVsLTQuOCAyLjhjLTExLjYgNi43LTI2LjQgMi42LTMzLTkuMWwtMjIuNi00MC40Yy02LjItMTEuMi0yLjYtMjUuMyA4LjMtMzIuMWw0LjQtMi43YzE2LjMtMTAuMSAxNi4zLTQwLjEgMC01MC4ybC00LjUtMi44Yy0xMC45LTYuOC0xNC41LTIwLjktOC4zLTMyLjFsMjIuNS00MC4zYzYuNS0xMS43IDIxLjQtMTUuOCAzMi45LTkuMWw0LjggMi44YzE2LjUgOS41IDQwLjctNC41IDQwLjctMjMuNWwwLTUuOXptOTkuOSAxMzYuMmE1MiA1MiAwIDEgMCAtMTA0IDAgNTIgNTIgMCAxIDAgMTA0IDB6Il19LG0kdD1zM2UsZyR0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImJvcmRlci1hbGwiLGljb246WzQ0OCw1MTIsW10sImY4NGMiLCJNMzg0IDk2bDAgMTI4LTEyOCAwIDAtMTI4IDEyOCAwem0wIDE5MmwwIDEyOC0xMjggMCAwLTEyOCAxMjggMHpNMTkyIDIyNGwtMTI4IDAgMC0xMjggMTI4IDAgMCAxMjh6TTY0IDI4OGwxMjggMCAwIDEyOC0xMjggMCAwLTEyOHpNNjQgMzJDMjguNyAzMiAwIDYwLjcgMCA5NkwwIDQxNmMwIDM1LjMgMjguNyA2NCA2NCA2NGwzMjAgMGMzNS4zIDAgNjQtMjguNyA2NC02NGwwLTMyMGMwLTM1LjMtMjguNy02NC02NC02NEw2NCAzMnoiXX0sYiR0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImNvaW5zIixpY29uOls1MTIsNTEyLFtdLCJmNTFlIiwiTTEyOCA5NmwwLTE2YzAtNDQuMiA4Ni04MCAxOTItODBTNTEyIDM1LjggNTEyIDgwbDAgMTZjMCAzMC42LTQxLjMgNTcuMi0xMDIgNzAuNy0yLjQtMi44LTQuOS01LjUtNy40LTgtMTUuNS0xNS4zLTM1LjUtMjYuOS01Ni40LTM1LjUtNDEuOS0xNy41LTk2LjUtMjcuMS0xNTQuMi0yNy4xLTIxLjkgMC00My4zIDEuNC02My44IDQuMS0uMi0xLjMtLjItMi43LS4yLTQuMXpNNDMyIDM1M2wwLTQ2LjJjMTUuMS0zLjkgMjkuMy04LjUgNDIuMi0xMy45IDEzLjItNS41IDI2LjEtMTIuMiAzNy44LTIwLjNsMCAxNS40YzAgMjYuOC0zMS41IDUwLjUtODAgNjV6bTAtOTZsMC0zM2MwLTQuNS0uNC04LjgtMS0xMyAxNS41LTMuOSAzMC04LjYgNDMuMi0xNC4yczI2LjEtMTIuMiAzNy44LTIwLjNsMCAxNS40YzAgMjYuOC0zMS41IDUwLjUtODAgNjV6TTAgMjQwbDAtMTZjMC00NC4yIDg2LTgwIDE5Mi04MHMxOTIgMzUuOCAxOTIgODBsMCAxNmMwIDQ0LjItODYgODAtMTkyIDgwUzAgMjg0LjIgMCAyNDB6bTM4NCA5NmMwIDQ0LjItODYgODAtMTkyIDgwUzAgMzgwLjIgMCAzMzZsMC0xNS40YzExLjYgOC4xIDI0LjUgMTQuNyAzNy44IDIwLjMgNDEuOSAxNy41IDk2LjUgMjcuMSAxNTQuMiAyNy4xczExMi4zLTkuNyAxNTQuMi0yNy4xYzEzLjItNS41IDI2LjEtMTIuMiAzNy44LTIwLjNsMCAxNS40em0wIDgwLjZsMCAxNS40YzAgNDQuMi04NiA4MC0xOTIgODBTMCA0NzYuMiAwIDQzMmwwLTE1LjRjMTEuNiA4LjEgMjQuNSAxNC43IDM3LjggMjAuMyA0MS45IDE3LjUgOTYuNSAyNy4xIDE1NC4yIDI3LjFzMTEyLjMtOS43IDE1NC4yLTI3LjFjMTMuMi01LjUgMjYuMS0xMi4yIDM3LjgtMjAuM3oiXX0sdiR0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6Im1hcnMtc3Ryb2tlIixpY29uOls1NzYsNTEyLFs5ODk0XSwiZjIyOSIsIk00MTYtMzJjLTE3LjcgMC0zMiAxNC4zLTMyIDMyczE0LjMgMzIgMzIgMzJsNTAuNyAwLTU4LjcgNTguNy0xNy40LTE3LjRjLTEyLjUtMTIuNS0zMi44LTEyLjUtNDUuMyAwcy0xMi41IDMyLjggMCA0NS4zbDE3LjQgMTcuNC0yMyAyM2MtMjguNC0xOS41LTYyLjctMzEtOTkuOC0zMS05Ny4yIDAtMTc2IDc4LjgtMTc2IDE3NnM3OC44IDE3NiAxNzYgMTc2IDE3Ni03OC44IDE3Ni0xNzZjMC0zNy0xMS40LTcxLjQtMzEtOTkuOGwyMy0yMyAxNy40IDE3LjRjMTIuNSAxMi41IDMyLjggMTIuNSA0NS4zIDBzMTIuNS0zMi44IDAtNDUuM0w0NTMuMyAxMzYgNTEyIDc3LjMgNTEyIDEyOGMwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMyTDU3NiAwYzAtMTcuNy0xNC4zLTMyLTMyLTMyTDQxNi0zMnpNMTI4IDMwNGExMTIgMTEyIDAgMSAxIDIyNCAwIDExMiAxMTIgMCAxIDEgLTIyNCAweiJdfSxsM2U9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiaGFuZHNoYWtlLWFuZ2xlIixpY29uOls1NzYsNTEyLFsiaGFuZHMtaGVscGluZyJdLCJmNGM0IiwiTTI2OC45IDUzLjJMMTUyLjMgMTgyLjhjLTQuNiA1LjEtNC40IDEzIC41IDE3LjkgMzAuNSAzMC41IDgwIDMwLjUgMTEwLjUgMGwzMS44LTMxLjhjNC4yLTQuMiA5LjUtNi41IDE0LjktNi45IDYuOC0uNiAxMy44IDEuNyAxOSA2LjlMNTA1LjYgMzQ0IDU3NiAyODggNTc2IDAgNDY0IDY0IDQ0MC4yIDQ4LjFDNDI0LjQgMzcuNiA0MDUuOSAzMiAzODYuOSAzMmwtNzAuNCAwYy0xLjEgMC0yLjMgMC0zLjQgLjEtMTYuOSAuOS0zMi44IDguNS00NC4yIDIxLjF6TTExNi42IDE1MC43TDIyMy40IDMyIDE4My44IDMyYy0yNS41IDAtNDkuOSAxMC4xLTY3LjkgMjguMUwwIDE5MiAwIDU0NCAxNDQgNDA4IDE1Ni40IDQxOC4zYzIzIDE5LjIgNTIgMjkuNyA4MS45IDI5LjdsMTUuNyAwLTctN2MtOS40LTkuNC05LjQtMjQuNiAwLTMzLjlzMjQuNi05LjQgMzMuOSAwbDQxIDQxIDkgMGMxOS4xIDAgMzcuOC00LjMgNTQuOC0xMi4zTDM1OSA0MDljLTkuNC05LjQtOS40LTI0LjYgMC0zMy45czI0LjYtOS40IDMzLjkgMGwzMiAzMiAxNy41LTE3LjVjOC45LTguOSAxMS41LTIxLjggNy42LTMzLjFsLTEzNy45LTEzNi44LTE0LjkgMTQuOWMtNDkuMyA0OS4zLTEyOS4xIDQ5LjMtMTc4LjQgMC0yMy0yMy0yMy45LTU5LjktMi4yLTg0eiJdfSx4JHQ9bDNlLHkkdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJhcnJvdy1kb3duIixpY29uOlszODQsNTEyLFs4NTk1XSwiZjA2MyIsIk0xNjkuNCA1MDIuNmMxMi41IDEyLjUgMzIuOCAxMi41IDQ1LjMgMGwxNjAtMTYwYzEyLjUtMTIuNSAxMi41LTMyLjggMC00NS4zcy0zMi44LTEyLjUtNDUuMyAwTDIyNCA0MDIuNyAyMjQgMzJjMC0xNy43LTE0LjMtMzItMzItMzJzLTMyIDE0LjMtMzIgMzJsMCAzNzAuNy0xMDUuNC0xMDUuNGMtMTIuNS0xMi41LTMyLjgtMTIuNS00NS4zIDBzLTEyLjUgMzIuOCAwIDQ1LjNsMTYwIDE2MHoiXX0sYzNlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImxvY2F0aW9uLWRvdCIsaWNvbjpbMzg0LDUxMixbIm1hcC1tYXJrZXItYWx0Il0sImYzYzUiLCJNMCAxODguNkMwIDg0LjQgODYgMCAxOTIgMFMzODQgODQuNCAzODQgMTg4LjZjMCAxMTkuMy0xMjAuMiAyNjIuMy0xNzAuNCAzMTYuOC0xMS44IDEyLjgtMzEuNSAxMi44LTQzLjMgMC01MC4yLTU0LjUtMTcwLjQtMTk3LjUtMTcwLjQtMzE2Ljh6TTE5MiAyNTZhNjQgNjQgMCAxIDAgMC0xMjggNjQgNjQgMCAxIDAgMCAxMjh6Il19LHckdD1jM2UsTSR0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InBsdWctY2lyY2xlLWV4Y2xhbWF0aW9uIixpY29uOls2NDAsNTEyLFtdLCJlNTVkIiwiTTE5Mi0zMmMxNy43IDAgMzIgMTQuMyAzMiAzMmwwIDk2IDEyOCAwIDAtOTZjMC0xNy43IDE0LjMtMzIgMzItMzJzMzIgMTQuMyAzMiAzMmwwIDk2IDY0IDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJsMCA0OC43Yy05OC42IDguMS0xNzYgOTAuNy0xNzYgMTkxLjMgMCAyNy4zIDUuNyA1My4zIDE2IDc2LjlsMCAzLjFjMCAxNy43LTE0LjMgMzItMzIgMzJzLTMyLTE0LjMtMzItMzJsMC02Ni43QzE2NS4yIDM5OC4xIDk2IDMxOS4xIDk2IDIyNGwwLTY0Yy0xNy43IDAtMzItMTQuMy0zMi0zMlM3OC4zIDk2IDk2IDk2bDY0IDAgMC05NmMwLTE3LjcgMTQuMy0zMiAzMi0zMnpNNDk2IDI1NmExNDQgMTQ0IDAgMSAxIDAgMjg4IDE0NCAxNDQgMCAxIDEgMC0yODh6bTAgMjI4YTIwIDIwIDAgMSAwIDAtNDAgMjAgMjAgMCAxIDAgMCA0MHptMC0xODBjLTguOCAwLTE2IDcuMi0xNiAxNmwwIDgwYzAgOC44IDcuMiAxNiAxNiAxNnMxNi03LjIgMTYtMTZsMC04MGMwLTguOC03LjItMTYtMTYtMTZ6Il19LGskdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJjb29raWUtYml0ZSIsaWNvbjpbNTEyLDUxMixbXSwiZjU2NCIsIk0yNTcuNSAyNy42Yy0uOC01LjQtNC45LTkuOC0xMC4zLTEwLjYtMjIuMS0zLjEtNDQuNiAuOS02NC40IDExLjRsLTc0IDM5LjVDODkuMSA3OC40IDczLjIgOTQuOSA2My40IDExNUwyNi43IDE5MC42Yy05LjggMjAuMS0xMyA0Mi45LTkuMSA2NC45bDE0LjUgODIuOGMzLjkgMjIuMSAxNC42IDQyLjMgMzAuNyA1Ny45bDYwLjMgNTguNGMxNi4xIDE1LjYgMzYuNiAyNS42IDU4LjcgMjguN2w4MyAxMS43YzIyLjEgMy4xIDQ0LjYtLjkgNjQuNC0xMS40bDc0LTM5LjVjMTkuNy0xMC41IDM1LjYtMjcgNDUuNC00Ny4ybDM2LjctNzUuNWM5LjgtMjAuMSAxMy00Mi45IDkuMS02NC45LS45LTUuMy01LjMtOS4zLTEwLjYtMTAuMS01MS41LTguMi05Mi44LTQ3LjEtMTA0LjUtOTcuNC0xLjgtNy42LTgtMTMuNC0xNS43LTE0LjYtNTQuNi04LjctOTcuNy01Mi0xMDYuMi0xMDYuOHpNMjA4IDE0NGEzMiAzMiAwIDEgMSAwIDY0IDMyIDMyIDAgMSAxIDAtNjR6TTE0NCAzMzZhMzIgMzIgMCAxIDEgNjQgMCAzMiAzMiAwIDEgMSAtNjQgMHptMjI0LTY0YTMyIDMyIDAgMSAxIDAgNjQgMzIgMzIgMCAxIDEgMC02NHoiXX0sZDNlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InNjcmV3ZHJpdmVyLXdyZW5jaCIsaWNvbjpbNTc2LDUxMixbInRvb2xzIl0sImY3ZDkiLCJNNzAuOC02LjdjNS40LTUuNCAxMy44LTYuMiAyMC4yLTJMMjA5LjkgNzAuNWM4LjkgNS45IDE0LjIgMTUuOSAxNC4yIDI2LjZsMCA0OS42IDkwLjggOTAuOGMzMy4zLTE1IDczLjktOC45IDEwMS4yIDE4LjVMNTQyLjIgMzgyLjFjMTguNyAxOC43IDE4LjcgNDkuMSAwIDY3LjlsLTYwLjEgNjAuMWMtMTguNyAxOC43LTQ5LjEgMTguNy02Ny45IDBMMjg4LjEgMzg0Yy0yNy40LTI3LjQtMzMuNS02Ny45LTE4LjUtMTAxLjJsLTkwLjgtOTAuOC00OS42IDBjLTEwLjcgMC0yMC43LTUuMy0yNi42LTE0LjJMMjMuNCA1OC45Yy00LjItNi4zLTMuNC0xNC44IDItMjAuMkw3MC44LTYuN3ptMTQ1IDMwMy41Yy02LjMgMzYuOSAyLjMgNzUuOSAyNi4yIDEwNy4ybC05NC45IDk1Yy0yOC4xIDI4LjEtNzMuNyAyOC4xLTEwMS44IDBzLTI4LjEtNzMuNyAwLTEwMS44bDEzNS40LTEzNS41IDM1LjIgMzUuMXpNMzg0LjEgMGMyMC4xIDAgMzkuNCAzLjcgNTcuMSAxMC41IDEwIDMuOCAxMS44IDE2LjUgNC4zIDI0LjFMMzg4LjggOTEuM2MtMyAzLTQuNyA3LjEtNC43IDExLjNsMCA0MS40YzAgOC44IDcuMiAxNiAxNiAxNmw0MS40IDBjNC4yIDAgOC4zLTEuNyAxMS4zLTQuN2w1Ni43LTU2LjdjNy42LTcuNSAyMC4zLTUuNyAyNC4xIDQuMyA2LjggMTcuNyAxMC41IDM3IDEwLjUgNTcuMSAwIDQzLjItMTcuMiA4Mi4zLTQ1IDExMS4xbC00OS4xLTQ5LjFjLTMzLjEtMzMtNzguNS00NS43LTEyMS4xLTM4LjRsLTU2LjgtNTYuOCAwLTI5LjctLjItNWMtLjgtMTIuNC00LjQtMjQuMy0xMC41LTM0LjkgMjkuNC0zNSA3My40LTU3LjIgMTIyLjctNTcuM3oiXX0sUyR0PWQzZSx6JHQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiaW5kZW50IixpY29uOls0NDgsNTEyLFtdLCJmMDNjIiwiTTAgNjRDMCA0Ni4zIDE0LjMgMzIgMzIgMzJsMzg0IDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJMMzIgOTZDMTQuMyA5NiAwIDgxLjcgMCA2NHpNMTkyIDE5MmMwLTE3LjcgMTQuMy0zMiAzMi0zMmwxOTIgMGMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMmwtMTkyIDBjLTE3LjcgMC0zMi0xNC4zLTMyLTMyem0zMiA5NmwxOTIgMGMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMmwtMTkyIDBjLTE3LjcgMC0zMi0xNC4zLTMyLTMyczE0LjMtMzIgMzItMzJ6TTAgNDQ4YzAtMTcuNyAxNC4zLTMyIDMyLTMybDM4NCAwYzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMyTDMyIDQ4MGMtMTcuNyAwLTMyLTE0LjMtMzItMzJ6TTEyNy44IDI2OC42TDI1LjggMzQ3LjlDMTUuMyAzNTYuMSAwIDM0OC42IDAgMzM1LjNMMCAxNzYuN2MwLTEzLjMgMTUuMy0yMC44IDI1LjgtMTIuNmwxMDEuOSA3OS4zYzguMiA2LjQgOC4yIDE4LjkgMCAyNS4zeiJdfSx1M2U9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiYmFycyIsaWNvbjpbNDQ4LDUxMixbIm5hdmljb24iXSwiZjBjOSIsIk0wIDk2QzAgNzguMyAxNC4zIDY0IDMyIDY0bDM4NCAwYzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMyTDMyIDEyOEMxNC4zIDEyOCAwIDExMy43IDAgOTZ6TTAgMjU2YzAtMTcuNyAxNC4zLTMyIDMyLTMybDM4NCAwYzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMyTDMyIDI4OGMtMTcuNyAwLTMyLTE0LjMtMzItMzJ6TTQ0OCA0MTZjMCAxNy43LTE0LjMgMzItMzIgMzJMMzIgNDQ4Yy0xNy43IDAtMzItMTQuMy0zMi0zMnMxNC4zLTMyIDMyLTMybDM4NCAwYzE3LjcgMCAzMiAxNC4zIDMyIDMyeiJdfSxDJHQ9dTNlLHAzZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJoYW5kcy1wcmF5aW5nIixpY29uOls2NDAsNTEyLFsicHJheWluZy1oYW5kcyJdLCJmNjg0IiwiTTIyNCAyOTZjMCAxMy4zLTEwLjcgMjQtMjQgMjRzLTI0LTEwLjctMjQtMjRsMC0xMTIuNiA4OC4yLTExOS43YzEzLjEtMTcuOCA5LjMtNDIuOC04LjUtNTUuOXMtNDIuOC05LjMtNTUuOSA4LjVMMTA2LjUgMTQyLjlDODkuMyAxNjYuMiA4MCAxOTQuNSA4MCAyMjMuNmwwIDExMC43LTU4LjEgMTkuNEM4LjggMzU4IDAgMzcwLjIgMCAzODRsMCA5NmMwIDEwIDQuNyAxOS41IDEyLjcgMjUuNXMxOC40IDggMjguMSA1LjJsMTU0LjQtNDQuMWM1NS0xNS43IDkyLjgtNjUuOSA5Mi44LTEyMy4xTDI4OCAyMjRjMC0xNy43LTE0LjMtMzItMzItMzJzLTMyIDE0LjMtMzIgMzJsMCA3MnptMTkyIDBsMC03MmMwLTE3LjctMTQuMy0zMi0zMi0zMnMtMzIgMTQuMy0zMiAzMmwwIDExOS42YzAgNTcuMiAzNy45IDEwNy40IDkyLjggMTIzLjFsMTU0LjQgNDQuMWM5LjcgMi44IDIwIC44IDI4LjEtNS4yUzY0MCA0OTAgNjQwIDQ4MGwwLTk2YzAtMTMuOC04LjgtMjYtMjEuOS0zMC40bC01OC4xLTE5LjQgMC0xMTAuN2MwLTI5LTkuMy01Ny4zLTI2LjUtODAuN0w0NDAuMiAxNi4zQzQyNy4xLTEuNSA0MDIuMS01LjMgMzg0LjMgNy44cy0yMS42IDM4LjEtOC41IDU1LjlMNDY0IDE4My40IDQ2NCAyOTZjMCAxMy4zLTEwLjcgMjQtMjQgMjRzLTI0LTEwLjctMjQtMjR6Il19LFQkdD1wM2UsXyR0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InZpcnVzZXMiLGljb246WzY0MCw1MTIsW10sImUwNzYiLCJNMTkyIDBjMTcuNyAwIDMyIDE0LjMgMzIgMzIgMCAzMC41IDM2LjkgNDUuOCA1OC41IDI0LjIgMTIuNS0xMi41IDMyLjgtMTIuNSA0NS4zIDBzMTIuNSAzMi44IDAgNDUuM2MtMjEuNiAyMS42LTYuMyA1OC41IDI0LjIgNTguNSAxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMmMtMzAuNSAwLTQ1LjggMzYuOS0yNC4yIDU4LjUgMTIuNSAxMi41IDEyLjUgMzIuOCAwIDQ1LjNzLTMyLjggMTIuNS00NS4zIDBjLTIxLjYtMjEuNi01OC41LTYuMy01OC41IDI0LjIgMCAxNy43LTE0LjMgMzItMzIgMzJzLTMyLTE0LjMtMzItMzJjMC0zMC41LTM2LjktNDUuOC01OC41LTI0LjItMTIuNSAxMi41LTMyLjggMTIuNS00NS4zIDBzLTEyLjUtMzIuOCAwLTQ1LjNDNzcuOCAyNjAuOSA2Mi41IDIyNCAzMiAyMjQgMTQuMyAyMjQgMCAyMDkuNyAwIDE5MnMxNC4zLTMyIDMyLTMyYzMwLjUgMCA0NS44LTM2LjkgMjQuMi01OC41LTEyLjUtMTIuNS0xMi41LTMyLjggMC00NS4zczMyLjgtMTIuNSA0NS4zIDBDMTIzLjEgNzcuOCAxNjAgNjIuNSAxNjAgMzIgMTYwIDE0LjMgMTc0LjMgMCAxOTIgMHpNMTQ0IDE3NmEzMiAzMiAwIDEgMCAwLTY0IDMyIDMyIDAgMSAwIDAgNjR6bTEyOCA2NGEzMiAzMiAwIDEgMCAtNjQgMCAzMiAzMiAwIDEgMCA2NCAwem0yNDggNDBjMCAyMi45IDI3LjcgMzQuNCA0My45IDE4LjIgOS40LTkuNCAyNC42LTkuNCAzMy45IDBzOS40IDI0LjYgMCAzMy45Yy0xNi4yIDE2LjItNC43IDQzLjkgMTguMiA0My45IDEzLjMgMCAyNCAxMC43IDI0IDI0cy0xMC43IDI0LTI0IDI0Yy0yMi45IDAtMzQuNCAyNy43LTE4LjIgNDMuOSA5LjQgOS40IDkuNCAyNC42IDAgMzMuOXMtMjQuNiA5LjQtMzMuOSAwYy0xNi4yLTE2LjItNDMuOS00LjctNDMuOSAxOC4yIDAgMTMuMy0xMC43IDI0LTI0IDI0cy0yNC0xMC43LTI0LTI0YzAtMjIuOS0yNy43LTM0LjQtNDMuOS0xOC4yLTkuNCA5LjQtMjQuNiA5LjQtMzMuOSAwcy05LjQtMjQuNiAwLTMzLjljMTYuMi0xNi4yIDQuNy00My45LTE4LjItNDMuOS0xMy4zIDAtMjQtMTAuNy0yNC0yNHMxMC43LTI0IDI0LTI0YzIyLjkgMCAzNC40LTI3LjcgMTguMi00My45LTkuNC05LjQtOS40LTI0LjYgMC0zMy45czI0LjYtOS40IDMzLjkgMGMxNi4yIDE2LjIgNDMuOSA0LjcgNDMuOS0xOC4yIDAtMTMuMyAxMC43LTI0IDI0LTI0czI0IDEwLjcgMjQgMjR6TTUwNCAzODRhMjQgMjQgMCAxIDAgLTQ4IDAgMjQgMjQgMCAxIDAgNDggMHoiXX0sTCR0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InNjaG9vbC1mbGFnIixpY29uOls1NzYsNTEyLFtdLCJlNTZlIiwiTTI1Ni04YzAtMTMuMyAxMC43LTI0IDI0LTI0bDExMiAwYzEzLjMgMCAyNCAxMC43IDI0IDI0bDAgNDhjMCAxMy4zLTEwLjcgMjQtMjQgMjRsLTcyIDAgMCAxOS4yIDEyOCA3Ni44IDY0IDBjMzUuMyAwIDY0IDI4LjcgNjQgNjRsMCAyMjRjMCAzNS4zLTI4LjcgNjQtNjQgNjRMNjQgNTEyYy0zNS4zIDAtNjQtMjguNy02NC02NEwwIDIyNGMwLTM1LjMgMjguNy02NCA2NC02NGw2NCAwIDEyOC03Ni44IDAtOTEuMnpNMjQwIDM4NGwwIDgwIDk2IDAgMC04MGMwLTI2LjUtMjEuNS00OC00OC00OHMtNDggMjEuNS00OCA0OHpNMTEyIDQxNmM4LjggMCAxNi03LjIgMTYtMTZsMC0zMmMwLTguOC03LjItMTYtMTYtMTZsLTMyIDBjLTguOCAwLTE2IDcuMi0xNiAxNmwwIDMyYzAgOC44IDcuMiAxNiAxNiAxNmwzMiAwem0xNi0xNDRsMC0zMmMwLTguOC03LjItMTYtMTYtMTZsLTMyIDBjLTguOCAwLTE2IDcuMi0xNiAxNmwwIDMyYzAgOC44IDcuMiAxNiAxNiAxNmwzMiAwYzguOCAwIDE2LTcuMiAxNi0xNnpNNDk2IDQxNmM4LjggMCAxNi03LjIgMTYtMTZsMC0zMmMwLTguOC03LjItMTYtMTYtMTZsLTMyIDBjLTguOCAwLTE2IDcuMi0xNiAxNmwwIDMyYzAgOC44IDcuMiAxNiAxNiAxNmwzMiAwem0xNi0xNDRsMC0zMmMwLTguOC03LjItMTYtMTYtMTZsLTMyIDBjLTguOCAwLTE2IDcuMi0xNiAxNmwwIDMyYzAgOC44IDcuMiAxNiAxNiAxNmwzMiAwYzguOCAwIDE2LTcuMiAxNi0xNnptLTIyNCAwYTQ4IDQ4IDAgMSAwIDAtOTYgNDggNDggMCAxIDAgMCA5NnoiXX0sQSR0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InRyYWRlbWFyayIsaWNvbjpbNjQwLDUxMixbODQ4Ml0sImYyNWMiLCJNMzQ2LjYgMTEwLjJjLTcuOC0xMS43LTIyLjQtMTctMzUuOS0xMi45UzI4OCAxMTMuOSAyODggMTI4bDAgMjU2YzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJsMC0xNTAuMyA2OS40IDEwNC4xYzUuOSA4LjkgMTUuOSAxNC4yIDI2LjYgMTQuMnMyMC43LTUuMyAyNi42LTE0LjJMNTQ0IDIzMy43IDU0NCAzODRjMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMmwwLTI1NmMwLTE0LjEtOS4yLTI2LjUtMjIuNy0zMC42cy0yOC4xIDEuMS0zNS45IDEyLjlMNDQ4IDI2Mi4zIDM0Ni42IDExMC4yek0zMiA5NkMxNC4zIDk2IDAgMTEwLjMgMCAxMjhzMTQuMyAzMiAzMiAzMmw2NCAwIDAgMjI0YzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJsMC0yMjQgNjQgMGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMkwzMiA5NnoiXX0sRCR0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImZpcmUtYnVybmVyIixpY29uOls1MTIsNTEyLFtdLCJlNGYxIiwiTTI4MS43IDQ4LjNMMjk0IDM0LjVjNS40LTYuMSAxMy4zLTguOCAyMC45LTguOSA3LjIgMCAxNC4zIDIuNiAxOS45IDcuOCAxOS43IDE4LjMgMzkuOCA0My4yIDU1IDcwLjYgMTUuMSAyNy4yIDI2LjIgNTguMSAyNi4yIDg4LjEgMCA4OC43LTcxLjMgMTU5LjgtMTYwIDE1OS44LTg5LjYgMC0xNjAtNzEuMy0xNjAtMTU5LjggMC0zNy4zIDE2LTczLjQgMzYuOC0xMDQuNSAyMC45LTMxLjMgNDcuNS01OSA3MC45LTgwLjIgNS43LTUuMiAxMy4xLTcuNyAyMC4zLTcuNXMxMy40IDMuMiAxOC44IDcuNWMxNC40IDExLjQgMzguOSA0MC43IDM4LjkgNDAuN3pNMzIwIDI0MC4yYzAtMzYuNS0zNy03My01NC44LTg4LjQtNS40LTQuNy0xMy4xLTQuNy0xOC41IDAtMTcuNyAxNS40LTU0LjggNTEuOS01NC44IDg4LjQgMCAzNS4zIDI4LjcgNjQgNjQgNjRzNjQtMjguNyA2NC02NHpNOTIuOCAzMjBjMzcuNyA0OC4zIDk2LjEgODAgMTYzLjIgODAgNjYuNSAwIDEyNS4xLTMxLjcgMTYzLTgwbDQ1IDBjMjYuNSAwIDQ4IDIxLjUgNDggNDhsMCA2NGMwIDI2LjUtMjEuNSA0OC00OCA0OEw0OCA0ODBjLTI2LjUgMC00OC0yMS41LTQ4LTQ4bDAtNjRjMC0yNi41IDIxLjUtNDggNDgtNDhsNDQuOCAwek00NTYgNDAwYTI0IDI0IDAgMSAwIC00OCAwIDI0IDI0IDAgMSAwIDQ4IDB6Il19LGgzZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJmYWNlLXNtaWxlLWJlYW0iLGljb246WzUxMiw1MTIsWzEyODUyMiwic21pbGUtYmVhbSJdLCJmNWI4IiwiTTI1NiA1MTJhMjU2IDI1NiAwIDEgMCAwLTUxMiAyNTYgMjU2IDAgMSAwIDAgNTEyek0xNjUuNCAzMjEuOWMyMC40IDI4IDUzLjQgNDYuMSA5MC42IDQ2LjFzNzAuMi0xOC4xIDkwLjYtNDYuMWM3LjgtMTAuNyAyMi44LTEzLjEgMzMuNS01LjNzMTMuMSAyMi44IDUuMyAzMy41QzM1Ni4zIDM5MCAzMDkuMiA0MTYgMjU2IDQxNnMtMTAwLjMtMjYtMTI5LjQtNjUuOWMtNy44LTEwLjctNS40LTI1LjcgNS4zLTMzLjVzMjUuNy01LjQgMzMuNSA1LjN6TTE3NiAxODBjLTE1LjUgMC0yOCAxMi41LTI4IDI4bDAgOGMwIDExLTkgMjAtMjAgMjBzLTIwLTktMjAtMjBsMC04YzAtMzcuNiAzMC40LTY4IDY4LTY4czY4IDMwLjQgNjggNjhsMCA4YzAgMTEtOSAyMC0yMCAyMHMtMjAtOS0yMC0yMGwwLThjMC0xNS41LTEyLjUtMjgtMjgtMjh6bTEzMiAyOGwwIDhjMCAxMS05IDIwLTIwIDIwcy0yMC05LTIwLTIwbDAtOGMwLTM3LjYgMzAuNC02OCA2OC02OHM2OCAzMC40IDY4IDY4bDAgOGMwIDExLTkgMjAtMjAgMjBzLTIwLTktMjAtMjBsMC04YzAtMTUuNS0xMi41LTI4LTI4LTI4cy0yOCAxMi41LTI4IDI4eiJdfSxFJHQ9aDNlLCQkdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJ0ZW50LWFycm93LWxlZnQtcmlnaHQiLGljb246WzUxMiw1MTIsW10sImU1N2YiLCJNLS41IDExM2MtOS40LTkuNC05LjQtMjQuNiAwLTMzLjlsNzItNzJjOS40LTkuNCAyNC42LTkuNCAzMy45IDBzOS40IDI0LjYgMCAzMy45bC0zMSAzMSAzMTAuMSAwIDU0LjEgMC0zMS0zMWMtOS40LTkuNC05LjQtMjQuNiAwLTMzLjlzMjQuNi05LjQgMzMuOSAwbDcyIDcyYzkuNCA5LjQgOS40IDI0LjYgMCAzMy45bC03MiA3MmMtOS40IDkuNC0yNC42IDkuNC0zMy45IDBzLTkuNC0yNC42IDAtMzMuOWwzMS0zMS0xMDIuMSAwLS4xIDAtMjYyIDAgMzEgMzFjOS40IDkuNCA5LjQgMjQuNiAwIDMzLjlzLTI0LjYgOS40LTMzLjkgMGwtNzItNzJ6TTM3LjEgNDc2TDYwLjMgMjkyLjZjMS4yLTkuNyA2LjgtMTguMyAxNS4xLTIzLjNMMjM4LjggMTcwYzEwLjItNi4yIDIyLjktNi4yIDMzLjEtLjFsMTY1LjUgOTkuNGM4LjQgNSAxNCAxMy43IDE1LjMgMjMuNEw0NzUuOSA0NzZjMi40IDE5LjEtMTIuNSAzNi0zMS43IDM2bC03MS45IDBjLTEyLjEgMC0yMy4yLTYuOC0yOC42LTE3LjdMMjc1LjQgMzU3LjljLTEuOC0zLjYtNS41LTUuOS05LjUtNS45LTUuOSAwLTEwLjYgNC43LTEwLjYgMTAuNmwwIDExNy40YzAgMTcuNy0xNC4zIDMyLTMyIDMyTDY4LjggNTEyYy0xOS4zIDAtMzQuMi0xNi45LTMxLjctMzZ6Il19LEkkdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJyb3V0ZSIsaWNvbjpbNTEyLDUxMixbXSwiZjRkNyIsIk01MTIgOTZjMCA1MC4yLTU5LjEgMTI1LjEtODQuNiAxNTUtMy44IDQuNC05LjQgNi4xLTE0LjUgNUwzMjAgMjU2Yy0xNy43IDAtMzIgMTQuMy0zMiAzMnMxNC4zIDMyIDMyIDMybDk2IDBjNTMgMCA5NiA0MyA5NiA5NnMtNDMgOTYtOTYgOTZsLTI3Ni40IDBjOC43LTkuOSAxOS4zLTIyLjYgMzAtMzYuOCA2LjMtOC40IDEyLjgtMTcuNiAxOS0yNy4yTDQxNiA0NDhjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJsLTk2IDBjLTUzIDAtOTYtNDMtOTYtOTZzNDMtOTYgOTYtOTZsMzkuOCAwYy0yMS0zMS41LTM5LjgtNjcuNy0zOS44LTk2IDAtNTMgNDMtOTYgOTYtOTZzOTYgNDMgOTYgOTZ6TTExNy4xIDQ4OS4xYy0zLjggNC4zLTcuMiA4LjEtMTAuMSAxMS4zbC0xLjggMi0uMi0uMmMtNiA0LjYtMTQuNiA0LTIwLTEuOC0yNS4yLTI3LjQtODUtOTcuOS04NS0xNDguNCAwLTUzIDQzLTk2IDk2LTk2czk2IDQzIDk2IDk2YzAgMzAtMjEuMSA2Ny00My41IDk3LjktMTAuNyAxNC43LTIxLjcgMjgtMzAuOCAzOC41bC0uNiAuN3pNMTI4IDM1MmEzMiAzMiAwIDEgMCAtNjQgMCAzMiAzMiAwIDEgMCA2NCAwek00MTYgMTI4YTMyIDMyIDAgMSAwIDAtNjQgMzIgMzIgMCAxIDAgMCA2NHoiXX0sZjNlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImFuZ2xlcy11cCIsaWNvbjpbMzg0LDUxMixbImFuZ2xlLWRvdWJsZS11cCJdLCJmMTAyIiwiTTIxNC42IDQxLjRjLTEyLjUtMTIuNS0zMi44LTEyLjUtNDUuMyAwbC0xNjAgMTYwYy0xMi41IDEyLjUtMTIuNSAzMi44IDAgNDUuM3MzMi44IDEyLjUgNDUuMyAwTDE5MiAxMDkuMyAzMjkuNCAyNDYuNmMxMi41IDEyLjUgMzIuOCAxMi41IDQ1LjMgMHMxMi41LTMyLjggMC00NS4zbC0xNjAtMTYwem0xNjAgMzUybC0xNjAtMTYwYy0xMi41LTEyLjUtMzIuOC0xMi41LTQ1LjMgMGwtMTYwIDE2MGMtMTIuNSAxMi41LTEyLjUgMzIuOCAwIDQ1LjNzMzIuOCAxMi41IDQ1LjMgMEwxOTIgMzAxLjMgMzI5LjQgNDM4LjZjMTIuNSAxMi41IDMyLjggMTIuNSA0NS4zIDBzMTIuNS0zMi44IDAtNDUuM3oiXX0sUCR0PWYzZSxOJHQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiYnVja2V0IixpY29uOls0NDgsNTEyLFtdLCJlNGNmIiwiTTQ0My43IDIwOGMyLjcgNC43IDQuMyAxMC4yIDQuMyAxNiAwIDE3LjctMTQuMyAzMi0zMiAzMmwtNS4xIDAtMjIuNCAyMTNjLTIuNiAyNC40LTIzLjIgNDMtNDcuOCA0M2wtMjMzLjYgMGMtMjQuNiAwLTQ1LjItMTguNS00Ny44LTQzTDM3LjEgMjU2IDMyIDI1NmMtMTcuNyAwLTMyLTE0LjMtMzItMzIgMC01LjggMS42LTExLjMgNC4zLTE2bDQzOS40IDB6TTIyNC0xNmM3OS41IDAgMTQ0IDY0LjUgMTQ0IDE0NGwwIDMyLTQ4IDAgMC0zMmMwLTUzLTQzLTk2LTk2LTk2cy05NiA0My05NiA5NmwwIDMyLTQ4IDAgMC0zMkM4MCA0OC41IDE0NC41LTE2IDIyNC0xNnoiXX0sRiR0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6Imxlc3MtdGhhbi1lcXVhbCIsaWNvbjpbNDQ4LDUxMixbXSwiZjUzNyIsIk00MjYuMSA5NC40YzE2LjgtNS42IDI1LjgtMjMuNyAyMC4yLTQwLjVzLTIzLjctMjUuOC00MC41LTIwLjJsLTM4NCAxMjhDOC44IDE2NiAwIDE3OC4yIDAgMTkyczguOCAyNiAyMS45IDMwLjRsMzg0IDEyOGMxNi44IDUuNiAzNC45LTMuNSA0MC41LTIwLjJzLTMuNS0zNC45LTIwLjItNDAuNUwxMzMuMiAxOTIgNDI2LjEgOTQuNHpNMzIgNDE2Yy0xNy43IDAtMzIgMTQuMy0zMiAzMnMxNC4zIDMyIDMyIDMybDM4NCAwYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMyTDMyIDQxNnoiXX0sTyR0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImZvbGRlci1jbG9zZWQiLGljb246WzUxMiw1MTIsW10sImUxODUiLCJNNDQ4IDQ0OEw2NCA0NDhjLTM1LjMgMC02NC0yOC43LTY0LTY0bDAtMTc2IDUxMiAwIDAgMTc2YzAgMzUuMy0yOC43IDY0LTY0IDY0em02NC0yODhMMCAxNjAgMCA5NkMwIDYwLjcgMjguNyAzMiA2NCAzMmwxMzguNyAwYzEzLjggMCAyNy4zIDQuNSAzOC40IDEyLjhsMzguNCAyOC44YzUuNSA0LjIgMTIuMyA2LjQgMTkuMiA2LjRMNDQ4IDgwYzM1LjMgMCA2NCAyOC43IDY0IDY0bDAgMTZ6Il19LFIkdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJwZXJzb24tdGhyb3VnaC13aW5kb3ciLGljb246WzY0MCw1MTIsW10sImU1YTkiLCJNNjQgNjRsMjI0IDAgMCA5LjhjMCAzOS0yMy43IDc0LTU5LjkgODguNC02MC41IDI0LjItMTAwLjEgODIuNy0xMDAuMSAxNDcuOWwwIDczLjgtNjQgMCAwLTMyMHptMjg4IDBsMjI0IDAgMCAzMjAtNjcuNyAwLTMuNy00LjUtNzUuMi05MC4yYy05LjEtMTAuOS0yMi42LTE3LjMtMzYuOS0xNy4zbC03MS4xIDAtNDEtNjMuMWMtLjMtLjUtLjYtMS0xLTEuNCA0NC43LTI5IDcyLjUtNzkgNzIuNS0xMzMuNmwwLTkuOHptNzMgMzIwbC0yNi42IDAgNDIuNyA2NCAxNTAuOSAwYzI2LjUgMCA0OC0yMS41IDQ4LTQ4bDAtMzUyYzAtMjYuNS0yMS41LTQ4LTQ4LTQ4TDQ4IDBDMjEuNSAwIDAgMjEuNSAwIDQ4TDAgNDAwYzAgMjYuNSAyMS41IDQ4IDQ4IDQ4bDI2MC4yIDAgMzMuMiA0OS44YzkuOCAxNC43IDI5LjcgMTguNyA0NC40IDguOXMxOC43LTI5LjcgOC45LTQ0LjRsLTg0LjItMTI2LjIgNzQuNiAwIDQwIDQ4em0tMTU5LjUgMGwtNzMuNSAwIDAtNzMuOGMwLTEwLjIgMS42LTIwLjEgNC43LTI5LjVMMjY1LjUgMzg0ek0xOTIgMTI4YTQ4IDQ4IDAgMSAwIC05NiAwIDQ4IDQ4IDAgMSAwIDk2IDB6Il19LEIkdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJzY2hvb2wtbG9jayIsaWNvbjpbNjQwLDUxMixbXSwiZTU2ZiIsIk0wIDE5MmMwLTM1LjMgMjguNy02NCA2NC02NGw2NCAwIDEyNy45LTExNS4xYzE4LjMtMTYuNCA0Ni0xNi40IDY0LjIgMEw0NDggMTI4IDUxMiAxMjhjMzMgMCA2MC4yIDI1IDYzLjYgNTcuMi0xNC43LTUuOS0zMC44LTkuMi00Ny42LTkuMi03MC43IDAtMTI4IDU3LjMtMTI4IDEyOGwwIDI0LjRjLTE5LjYgMTcuNi0zMiA0My4xLTMyIDcxLjVsMCA5NmMwIDUuNSAuNSAxMC45IDEuMyAxNi4xTDY0IDUxMmMtMzUuMyAwLTY0LTI4LjctNjQtNjRMMCAxOTJ6TTMzMi4zIDM0MS41Yy02LTMuNS0xMi45LTUuNS0yMC4zLTUuNWwtNDggMGMtMjIuMSAwLTQwIDE3LjktNDAgNDBsMCA4OCA5NiAwIDAtNjQuMWMwLTIwLjggNC40LTQwLjUgMTIuMy01OC40ek0xMTIgMzg0YzguOCAwIDE2LTcuMiAxNi0xNmwwLTMyYzAtOC44LTcuMi0xNi0xNi0xNmwtMzIgMGMtOC44IDAtMTYgNy4yLTE2IDE2bDAgMzJjMCA4LjggNy4yIDE2IDE2IDE2bDMyIDB6bTE2LTE0NGwwLTMyYzAtOC44LTcuMi0xNi0xNi0xNmwtMzIgMGMtOC44IDAtMTYgNy4yLTE2IDE2bDAgMzJjMCA4LjggNy4yIDE2IDE2IDE2bDMyIDBjOC44IDAgMTYtNy4yIDE2LTE2em0yMjQtNDhhNjQgNjQgMCAxIDAgLTEyOCAwIDY0IDY0IDAgMSAwIDEyOCAwek01NjAgMzUybDAtNDcuOWMwLTE3LjctMTQuMy0zMi0zMi0zMnMtMzIgMTQuMy0zMiAzMmwwIDQ3LjkgNjQgMHptLTExMiAyLjdsMC01MC42YzAtNDQuMiAzNS44LTgwIDgwLTgwczgwIDM1LjggODAgODBsMCA1MC42YzE4LjYgNi42IDMyIDI0LjQgMzIgNDUuM2wwIDk2YzAgMjYuNS0yMS41IDQ4LTQ4IDQ4bC0xMjggMGMtMjYuNSAwLTQ4LTIxLjUtNDgtNDhsMC05NmMwLTIwLjkgMTMuNC0zOC43IDMyLTQ1LjN6Il19LEgkdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJwZXJzb24tYnVyc3QiLGljb246WzY0MCw1MTIsW10sImU1M2IiLCJNMjA0IDQwLjFjLTEzLjMgMC0yNC0xMC43LTI0LTI0bDAtNDhjMC0xMy4zIDEwLjctMjQgMjQtMjRzMjQgMTAuNyAyNCAyNGwwIDQ4YzAgMTMuMy0xMC43IDI0LTI0IDI0ek00IDE0NC4xYzAtMTMuMyAxMC43LTI0IDI0LTI0bDQ4IDBjMTMuMyAwIDI0IDEwLjcgMjQgMjRzLTEwLjcgMjQtMjQgMjRsLTQ4IDBjLTEzLjMgMC0yNC0xMC43LTI0LTI0ek05Ni41IDI4NS41Yy05LjQgOS40LTI0LjYgOS40LTMzLjkgMHMtOS40LTI0LjYgMC0zMy45bDMzLjktMzMuOWM5LjQtOS40IDI0LjYtOS40IDMzLjkgMHM5LjQgMjQuNiAwIDMzLjlMOTYuNSAyODUuNXpNNjIuNiAyLjdjOS40LTkuNCAyNC42LTkuNCAzMy45IDBsMzMuOSAzMy45YzkuNCA5LjQgOS40IDI0LjYgMCAzMy45cy0yNC42IDkuNC0zMy45IDBMNjIuNiAzNi42Yy05LjQtOS40LTkuNC0yNC42IDAtMzMuOXpNMzUyLjQtMzJhNTYgNTYgMCAxIDEgMCAxMTIgNTYgNTYgMCAxIDEgMC0xMTJ6TTQ3OC43IDI5OS4xbC00Ni4zLTYyLjQgMCAyNzUuM2MwIDE3LjctMTQuMyAzMi0zMiAzMnMtMzItMTQuMy0zMi0zMmwwLTE2MGMwLTguOC03LjItMTYtMTYtMTZzLTE2IDcuMi0xNiAxNmwwIDE2MGMwIDE3LjctMTQuMyAzMi0zMiAzMnMtMzItMTQuMy0zMi0zMmwwLTI3NS4zLTQ2LjMgNjIuNGMtMTAuNSAxNC4yLTMwLjYgMTcuMi00NC44IDYuNnMtMTcuMi0zMC42LTYuNi00NC44bDcwLjUtOTVjMjUuMi0zMy45IDY1LTUzLjkgMTA3LjItNTMuOXM4MiAyMCAxMDcuMiA1My45bDcwLjUgOTVjMTAuNSAxNC4yIDcuNiAzNC4yLTYuNiA0NC44cy0zNC4yIDcuNi00NC44LTYuNnoiXX0sbTNlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImxlZnQtbG9uZyIsaWNvbjpbNTc2LDUxMixbImxvbmctYXJyb3ctYWx0LWxlZnQiXSwiZjMwYSIsIk05LjQgMjc4LjZjLTEyLjUtMTIuNS0xMi41LTMyLjggMC00NS4zbDEyOC0xMjhjOS4yLTkuMiAyMi45LTExLjkgMzQuOS02LjlTMTkyIDExNS4xIDE5MiAxMjhsMCA2NCAzMzYgMGMyNi41IDAgNDggMjEuNSA0OCA0OGwwIDMyYzAgMjYuNS0yMS41IDQ4LTQ4IDQ4bC0zMzYgMCAwIDY0YzAgMTIuOS03LjggMjQuNi0xOS44IDI5LjZzLTI1LjcgMi4yLTM0LjktNi45bC0xMjgtMTI4eiJdfSxxJHQ9bTNlLGczZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJsb2NhdGlvbi1jcm9zc2hhaXJzIixpY29uOls1NzYsNTEyLFsibG9jYXRpb24iXSwiZjYwMSIsIk0yODgtMTZjMTcuNyAwIDMyIDE0LjMgMzIgMzJsMCAxOC4zYzk4LjEgMTQgMTc1LjcgOTEuNiAxODkuNyAxODkuN2wxOC4zIDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJsLTE4LjMgMGMtMTQgOTguMS05MS42IDE3NS43LTE4OS43IDE4OS43bDAgMTguM2MwIDE3LjctMTQuMyAzMi0zMiAzMnMtMzItMTQuMy0zMi0zMmwwLTE4LjNDMTU3LjkgNDYzLjcgODAuMyAzODYuMSA2Ni4zIDI4OEw0OCAyODhjLTE3LjcgMC0zMi0xNC4zLTMyLTMyczE0LjMtMzIgMzItMzJsMTguMyAwQzgwLjMgMTI1LjkgMTU3LjkgNDguMyAyNTYgMzQuM0wyNTYgMTZjMC0xNy43IDE0LjMtMzIgMzItMzJ6TTEyOCAyNTZhMTYwIDE2MCAwIDEgMCAzMjAgMCAxNjAgMTYwIDAgMSAwIC0zMjAgMHptMTYwLTk2YTk2IDk2IDAgMSAxIDAgMTkyIDk2IDk2IDAgMSAxIDAtMTkyeiJdfSxqJHQ9ZzNlLGIzZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJwZXJzb24tZG90cy1mcm9tLWxpbmUiLGljb246WzUxMiw1MTIsWyJkaWFnbm9zZXMiXSwiZjQ3MCIsIk0xODQgNzJhNzIgNzIgMCAxIDEgMTQ0IDAgNzIgNzIgMCAxIDEgLTE0NCAwek0xNjAgMjk5LjNjLTE5LjkgMjIuNi0zMiA1Mi4yLTMyIDg0LjdsMCAzMi02NCAwIDAtMzJjMC0xMDYgODYtMTkyIDE5Mi0xOTJzMTkyIDg2IDE5MiAxOTJsMCAzMi02NCAwIDAtMzJjMC0zMi41LTEyLjEtNjIuMS0zMi04NC43bDAgMTE2LjctMTkyIDAgMC0xMTYuN3pNMjMyIDM4NGEyNCAyNCAwIDEgMCAwLTQ4IDI0IDI0IDAgMSAwIDAgNDh6bTg4LTEwNGEyNCAyNCAwIDEgMCAtNDggMCAyNCAyNCAwIDEgMCA0OCAwek0yNCA0NjRsNDY0IDBjMTMuMyAwIDI0IDEwLjcgMjQgMjRzLTEwLjcgMjQtMjQgMjRMMjQgNTEyYy0xMy4zIDAtMjQtMTAuNy0yNC0yNHMxMC43LTI0IDI0LTI0ek02NCAxODRhMjQgMjQgMCAxIDEgNDggMCAyNCAyNCAwIDEgMSAtNDggMHptNDI0IDcyYTI0IDI0IDAgMSAxIDAgNDggMjQgMjQgMCAxIDEgMC00OHoiXX0sViR0PWIzZSxxRD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJnYXVnZS1zaW1wbGUtaGlnaCIsaWNvbjpbNTEyLDUxMixbNjE2NjgsInRhY2hvbWV0ZXIiLCJ0YWNob21ldGVyLWZhc3QiXSwiZjYyYSIsIk0wIDI1NmEyNTYgMjU2IDAgMSAxIDUxMiAwIDI1NiAyNTYgMCAxIDEgLTUxMiAwem0zMjAgOTZjMC0xNi4yLTYtMzEuMS0xNi00Mi4zbDY5LjUtMTM4LjljNS45LTExLjkgMS4xLTI2LjMtMTAuNy0zMi4ycy0yNi4zLTEuMS0zMi4yIDEwLjdMMjYxLjEgMjg4LjJjLTEuNy0uMS0zLjQtLjItNS4xLS4yLTM1LjMgMC02NCAyOC43LTY0IDY0czI4LjcgNjQgNjQgNjQgNjQtMjguNyA2NC02NHoiXX0sVSR0PXFELFckdD1xRCx2M2U9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiYW5nbGVzLWxlZnQiLGljb246WzQ0OCw1MTIsWzE3MSwiYW5nbGUtZG91YmxlLWxlZnQiXSwiZjEwMCIsIk05LjQgMjMzLjRjLTEyLjUgMTIuNS0xMi41IDMyLjggMCA0NS4zbDE2MCAxNjBjMTIuNSAxMi41IDMyLjggMTIuNSA0NS4zIDBzMTIuNS0zMi44IDAtNDUuM0w3Ny4zIDI1NiAyMTQuNiAxMTguNmMxMi41LTEyLjUgMTIuNS0zMi44IDAtNDUuM3MtMzIuOC0xMi41LTQ1LjMgMGwtMTYwIDE2MHptMzUyLTE2MGwtMTYwIDE2MGMtMTIuNSAxMi41LTEyLjUgMzIuOCAwIDQ1LjNsMTYwIDE2MGMxMi41IDEyLjUgMzIuOCAxMi41IDQ1LjMgMHMxMi41LTMyLjggMC00NS4zTDI2OS4zIDI1NiA0MDYuNiAxMTguNmMxMi41LTEyLjUgMTIuNS0zMi44IDAtNDUuM3MtMzIuOC0xMi41LTQ1LjMgMHoiXX0sRyR0PXYzZSx4M2U9e3ByZWZpeDoiZmFzIixpY29uTmFtZToidXAtZG93biIsaWNvbjpbNTEyLDUxMixbODU5NywxMTAyMSwiYXJyb3dzLWFsdC12Il0sImYzMzgiLCJNNDA2LjYgNTAyLjZsOTYtOTZjOS4yLTkuMiAxMS45LTIyLjkgNi45LTM0LjlTNDkyLjkgMzUyIDQ4MCAzNTJsLTY0IDAgMC0zMjBjMC0xNy43LTE0LjMtMzItMzItMzJzLTMyIDE0LjMtMzIgMzJsMCAzMjAtNjQgMGMtMTIuOSAwLTI0LjYgNy44LTI5LjYgMTkuOHMtMi4yIDI1LjcgNi45IDM0LjlsOTYgOTZjMTIuNSAxMi41IDMyLjggMTIuNSA0NS4zIDB6TTE1MC42IDkuNGMtMTIuNS0xMi41LTMyLjgtMTIuNS00NS4zIDBsLTk2IDk2Yy05LjIgOS4yLTExLjkgMjIuOS02LjkgMzQuOVMxOS4xIDE2MCAzMiAxNjBsNjQgMCAwIDMyMGMwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMybDAtMzIwIDY0IDBjMTIuOSAwIDI0LjYtNy44IDI5LjYtMTkuOHMyLjItMjUuNy02LjktMzQuOWwtOTYtOTZ6Il19LFkkdD14M2UseTNlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImJhdHRlcnktZW1wdHkiLGljb246WzY0MCw1MTIsWyJiYXR0ZXJ5LTAiXSwiZjI0NCIsIk0xMTIgMTYwYy04LjggMC0xNiA3LjItMTYgMTZsMCAyMjRjMCA4LjggNy4yIDE2IDE2IDE2bDQxNiAwYzguOCAwIDE2LTcuMiAxNi0xNmwwLTIyNGMwLTguOC03LjItMTYtMTYtMTZsLTQxNiAwek0zMiAxNzZjMC00NC4yIDM1LjgtODAgODAtODBsNDE2IDBjNDQuMiAwIDgwIDM1LjggODAgODBsMCA0OGMxNy43IDAgMzIgMTQuMyAzMiAzMmwwIDY0YzAgMTcuNy0xNC4zIDMyLTMyIDMybDAgNDhjMCA0NC4yLTM1LjggODAtODAgODBsLTQxNiAwYy00NC4yIDAtODAtMzUuOC04MC04MGwwLTIyNHoiXX0sWiR0PXkzZSxYJHQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToia2V5Ym9hcmQiLGljb246WzU3Niw1MTIsWzllM10sImYxMWMiLCJNNjQgNjRDMjguNyA2NCAwIDkyLjcgMCAxMjhMMCAzODRjMCAzNS4zIDI4LjcgNjQgNjQgNjRsNDQ4IDBjMzUuMyAwIDY0LTI4LjcgNjQtNjRsMC0yNTZjMC0zNS4zLTI4LjctNjQtNjQtNjRMNjQgNjR6bTE2IDY0bDMyIDBjOC44IDAgMTYgNy4yIDE2IDE2bDAgMzJjMCA4LjgtNy4yIDE2LTE2IDE2bC0zMiAwYy04LjggMC0xNi03LjItMTYtMTZsMC0zMmMwLTguOCA3LjItMTYgMTYtMTZ6TTY0IDI0MGMwLTguOCA3LjItMTYgMTYtMTZsMzIgMGM4LjggMCAxNiA3LjIgMTYgMTZsMCAzMmMwIDguOC03LjIgMTYtMTYgMTZsLTMyIDBjLTguOCAwLTE2LTcuMi0xNi0xNmwwLTMyek0xNzYgMTI4bDMyIDBjOC44IDAgMTYgNy4yIDE2IDE2bDAgMzJjMCA4LjgtNy4yIDE2LTE2IDE2bC0zMiAwYy04LjggMC0xNi03LjItMTYtMTZsMC0zMmMwLTguOCA3LjItMTYgMTYtMTZ6TTE2MCAyNDBjMC04LjggNy4yLTE2IDE2LTE2bDMyIDBjOC44IDAgMTYgNy4yIDE2IDE2bDAgMzJjMCA4LjgtNy4yIDE2LTE2IDE2bC0zMiAwYy04LjggMC0xNi03LjItMTYtMTZsMC0zMnptMTYgODBsMjI0IDBjOC44IDAgMTYgNy4yIDE2IDE2bDAgMzJjMCA4LjgtNy4yIDE2LTE2IDE2bC0yMjQgMGMtOC44IDAtMTYtNy4yLTE2LTE2bDAtMzJjMC04LjggNy4yLTE2IDE2LTE2em04MC0xNzZjMC04LjggNy4yLTE2IDE2LTE2bDMyIDBjOC44IDAgMTYgNy4yIDE2IDE2bDAgMzJjMCA4LjgtNy4yIDE2LTE2IDE2bC0zMiAwYy04LjggMC0xNi03LjItMTYtMTZsMC0zMnptMTYgODBsMzIgMGM4LjggMCAxNiA3LjIgMTYgMTZsMCAzMmMwIDguOC03LjIgMTYtMTYgMTZsLTMyIDBjLTguOCAwLTE2LTcuMi0xNi0xNmwwLTMyYzAtOC44IDcuMi0xNiAxNi0xNnptODAtODBjMC04LjggNy4yLTE2IDE2LTE2bDMyIDBjOC44IDAgMTYgNy4yIDE2IDE2bDAgMzJjMCA4LjgtNy4yIDE2LTE2IDE2bC0zMiAwYy04LjggMC0xNi03LjItMTYtMTZsMC0zMnptMTYgODBsMzIgMGM4LjggMCAxNiA3LjIgMTYgMTZsMCAzMmMwIDguOC03LjIgMTYtMTYgMTZsLTMyIDBjLTguOCAwLTE2LTcuMi0xNi0xNmwwLTMyYzAtOC44IDcuMi0xNiAxNi0xNnptODAtODBjMC04LjggNy4yLTE2IDE2LTE2bDMyIDBjOC44IDAgMTYgNy4yIDE2IDE2bDAgMzJjMCA4LjgtNy4yIDE2LTE2IDE2bC0zMiAwYy04LjggMC0xNi03LjItMTYtMTZsMC0zMnptMTYgODBsMzIgMGM4LjggMCAxNiA3LjIgMTYgMTZsMCAzMmMwIDguOC03LjIgMTYtMTYgMTZsLTMyIDBjLTguOCAwLTE2LTcuMi0xNi0xNmwwLTMyYzAtOC44IDcuMi0xNiAxNi0xNnoiXX0sUSR0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImNvb2tpZSIsaWNvbjpbNTEyLDUxMixbMTI3ODUwXSwiZjU2MyIsIk0yNDcuMiAxN2MtMjIuMS0zLjEtNDQuNiAuOS02NC40IDExLjRsLTc0IDM5LjVDODkuMSA3OC40IDczLjIgOTQuOSA2My40IDExNUwyNi43IDE5MC42Yy05LjggMjAuMS0xMyA0Mi45LTkuMSA2NC45bDE0LjUgODIuOGMzLjkgMjIuMSAxNC42IDQyLjMgMzAuNyA1Ny45bDYwLjMgNTguNGMxNi4xIDE1LjYgMzYuNiAyNS42IDU4LjcgMjguN2w4MyAxMS43YzIyLjEgMy4xIDQ0LjYtLjkgNjQuNC0xMS40bDc0LTM5LjVjMTkuNy0xMC41IDM1LjYtMjcgNDUuNC00Ny4ybDM2LjctNzUuNWM5LjgtMjAuMSAxMy00Mi45IDkuMS02NC45bC0xNC42LTgyLjhjLTMuOS0yMi4xLTE0LjYtNDIuMy0zMC43LTU3LjlMMzg4LjkgNTcuNWMtMTYuMS0xNS42LTM2LjYtMjUuNi01OC43LTI4LjdMMjQ3LjIgMTd6TTIwOCAxNDRhMzIgMzIgMCAxIDEgMCA2NCAzMiAzMiAwIDEgMSAwLTY0ek0xNDQgMzM2YTMyIDMyIDAgMSAxIDY0IDAgMzIgMzIgMCAxIDEgLTY0IDB6bTIyNC02NGEzMiAzMiAwIDEgMSAwIDY0IDMyIDMyIDAgMSAxIDAtNjR6Il19LEokdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJzdG9wd2F0Y2giLGljb246WzQ0OCw1MTIsWzkyMDFdLCJmMmYyIiwiTTE2OC41IDBjLTEzLjMgMC0yNCAxMC43LTI0IDI0czEwLjcgMjQgMjQgMjRsMzIgMCAwIDI1LjNjLTEwOCAxMS45LTE5MiAxMDMuNS0xOTIgMjE0LjcgMCAxMTkuMyA5Ni43IDIxNiAyMTYgMjE2czIxNi05Ni43IDIxNi0yMTZjMC0zOS44LTEwLjgtNzcuMS0yOS42LTEwOS4ybDI4LjItMjguMmMxMi41LTEyLjUgMTIuNS0zMi44IDAtNDUuM3MtMzIuOC0xMi41LTQ1LjMgMGwtMjMuNCAyMy40Yy0zMi45LTMwLjItNzUuMi01MC4zLTEyMi01NS41bDAtMjUuMyAzMiAwYzEzLjMgMCAyNC0xMC43IDI0LTI0cy0xMC43LTI0LTI0LTI0bC0xMTIgMHptODAgMTg0bDAgMTA0YzAgMTMuMy0xMC43IDI0LTI0IDI0cy0yNC0xMC43LTI0LTI0bDAtMTA0YzAtMTMuMyAxMC43LTI0IDI0LTI0czI0IDEwLjcgMjQgMjR6Il19LEskdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJlamVjdCIsaWNvbjpbNDQ4LDUxMixbOTE2N10sImYwNTIiLCJNMjI0IDMyYzEzLjUgMCAyNi4zIDUuNiAzNS40IDE1LjZsMTc2IDE5MmMxMi45IDE0IDE2LjIgMzQuMyA4LjYgNTEuOFM0MTkgMzIwIDQwMCAzMjBMNDggMzIwYy0xOSAwLTM2LjMtMTEuMi00My45LTI4LjdzLTQuMy0zNy43IDguNi01MS44bDE3Ni0xOTJDMTk3LjcgMzcuNiAyMTAuNSAzMiAyMjQgMzJ6TTAgNDMyYzAtMjYuNSAyMS41LTQ4IDQ4LTQ4bDM1MiAwYzI2LjUgMCA0OCAyMS41IDQ4IDQ4cy0yMS41IDQ4LTQ4IDQ4TDQ4IDQ4MGMtMjYuNSAwLTQ4LTIxLjUtNDgtNDh6Il19LGVJdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJzYXRlbGxpdGUtZGlzaCIsaWNvbjpbNTEyLDUxMixbMTI4MjI1XSwiZjdjMCIsIk0yMzIgMGMxNTQuNiAwIDI4MCAxMjUuNCAyODAgMjgwIDAgMTMuMy0xMC43IDI0LTI0IDI0cy0yNC0xMC43LTI0LTI0YzAtMTI4LjEtMTAzLjktMjMyLTIzMi0yMzItMTMuMyAwLTI0LTEwLjctMjQtMjRTMjE4LjcgMCAyMzIgMHpNMjA4IDEyMGMwLTEzLjMgMTAuNy0yNCAyNC0yNCAxMDEuNiAwIDE4NCA4Mi40IDE4NCAxODQgMCAxMy4zLTEwLjcgMjQtMjQgMjRzLTI0LTEwLjctMjQtMjRjMC03NS4xLTYwLjktMTM2LTEzNi0xMzYtMTMuMyAwLTI0LTEwLjctMjQtMjR6TTI2LjQgMTQyLjdjOC44LTE3LjkgMzIuNC0xOS45IDQ2LjUtNS44bDEyOC41IDEyOC41IDMyLTMyYzEyLjUtMTIuNSAzMi44LTEyLjUgNDUuMyAwczEyLjUgMzIuOCAwIDQ1LjNsLTMyIDMyIDEyOC41IDEyOC41YzE0LjEgMTQuMSAxMiAzNy42LTUuOCA0Ni41LTM0LjIgMTYuOS03Mi42IDI2LjQtMTEzLjMgMjYuNC0xNDEuNCAwLTI1Ni0xMTQuNi0yNTYtMjU2IDAtNDAuNyA5LjUtNzkuMiAyNi40LTExMy4zeiJdfSx3M2U9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZmFjZS1yb2xsaW5nLWV5ZXMiLGljb246WzUxMiw1MTIsWzEyODU4MCwibWVoLXJvbGxpbmctZXllcyJdLCJmNWE1IiwiTTI1NiA1MTJhMjU2IDI1NiAwIDEgMCAwLTUxMiAyNTYgMjU2IDAgMSAwIDAgNTEyek0xOTIgMzUybDEyOCAwYzEzLjMgMCAyNCAxMC43IDI0IDI0cy0xMC43IDI0LTI0IDI0bC0xMjggMGMtMTMuMyAwLTI0LTEwLjctMjQtMjRzMTAuNy0yNCAyNC0yNHptMzItMTI4YzAgMzUuMy0yOC43IDY0LTY0IDY0cy02NC0yOC43LTY0LTY0YzAtMjYgMTUuNS00OC40IDM3LjgtNTguNC0zLjcgNS4yLTUuOCAxMS42LTUuOCAxOC40IDAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJjMC02LjktMi4yLTEzLjItNS44LTE4LjQgMjIuMyAxMCAzNy44IDMyLjQgMzcuOCA1OC40em0xMjggNjRjLTM1LjMgMC02NC0yOC43LTY0LTY0IDAtMjYgMTUuNS00OC40IDM3LjgtNTguNC0zLjcgNS4yLTUuOCAxMS42LTUuOCAxOC40IDAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJjMC02LjktMi4yLTEzLjItNS44LTE4LjQgMjIuMyAxMCAzNy44IDMyLjQgMzcuOCA1OC40IDAgMzUuMy0yOC43IDY0LTY0IDY0eiJdfSx0SXQ9dzNlLE0zZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJsaXN0LWNoZWNrIixpY29uOls1MTIsNTEyLFsidGFza3MiXSwiZjBhZSIsIk0xMzMuOCAzNi4zYzEwLjkgNy42IDEzLjUgMjIuNiA1LjkgMzMuNGwtNTYgODBjLTQuMSA1LjgtMTAuNSA5LjUtMTcuNiAxMC4xUzUyIDE1OCA0NyAxNTNMNyAxMTNDLTIuMyAxMDMuNi0yLjMgODguNCA3IDc5UzMxLjYgNjkuNyA0MSA3OWwxOS44IDE5LjggMzkuNi01Ni42YzcuNi0xMC45IDIyLjYtMTMuNSAzMy40LTUuOXptMCAxNjBjMTAuOSA3LjYgMTMuNSAyMi42IDUuOSAzMy40bC01NiA4MGMtNC4xIDUuOC0xMC41IDkuNS0xNy42IDEwLjFTNTIgMzE4IDQ3IDMxM0w3IDI3M2MtOS40LTkuNC05LjQtMjQuNiAwLTMzLjlzMjQuNi05LjQgMzMuOSAwbDE5LjggMTkuOCAzOS42LTU2LjZjNy42LTEwLjkgMjIuNi0xMy41IDMzLjQtNS45ek0yMjQgOTZjMC0xNy43IDE0LjMtMzIgMzItMzJsMjI0IDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJsLTIyNCAwYy0xNy43IDAtMzItMTQuMy0zMi0zMnptMCAxNjBjMC0xNy43IDE0LjMtMzIgMzItMzJsMjI0IDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJsLTIyNCAwYy0xNy43IDAtMzItMTQuMy0zMi0zMnpNMTYwIDQxNmMwLTE3LjcgMTQuMy0zMiAzMi0zMmwyODggMGMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMmwtMjg4IDBjLTE3LjcgMC0zMi0xNC4zLTMyLTMyek02NCAzNzZhNDAgNDAgMCAxIDEgMCA4MCA0MCA0MCAwIDEgMSAwLTgweiJdfSxySXQ9TTNlLGlJdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJzYWNrLXhtYXJrIixpY29uOls1MTIsNTEyLFtdLCJlNTZhIiwiTTMyOCAxMTJsLTE0NCAwLTM3LjMtNzQuNWMtMS44LTMuNi0yLjctNy42LTIuNy0xMS42IDAtMTQuMyAxMS42LTI1LjkgMjUuOS0yNS45TDM0Mi4xIDBjMTQuMyAwIDI1LjkgMTEuNiAyNS45IDI1LjkgMCA0LS45IDgtMi43IDExLjZMMzI4IDExMnpNMTY5LjYgMTYwbDE3Mi44IDAgNDguNyA0MC42QzQ1Ny42IDI1NiA0OTYgMzM4IDQ5NiA0MjQuNSA0OTYgNDcyLjggNDU2LjggNTEyIDQwOC41IDUxMmwtMzA1LjEgMEM1NS4yIDUxMiAxNiA0NzIuOCAxNiA0MjQuNSAxNiAzMzggNTQuNCAyNTYgMTIwLjkgMjAwLjZMMTY5LjYgMTYwek0zMjMuOSAyODQuMWMtOS40LTkuNC0yNC42LTkuNC0zMy45IDBsLTMzLjkgMzMuOS0zMy45LTMzLjljLTkuNC05LjQtMjQuNi05LjQtMzMuOSAwcy05LjQgMjQuNiAwIDMzLjlsMzMuOSAzMy45LTMzLjkgMzMuOWMtOS40IDkuNC05LjQgMjQuNiAwIDMzLjlzMjQuNiA5LjQgMzMuOSAwbDMzLjktMzMuOSAzMy45IDMzLjljOS40IDkuNCAyNC42IDkuNCAzMy45IDBzOS40LTI0LjYgMC0zMy45bC0zMy45LTMzLjkgMzMuOS0zMy45YzkuNC05LjQgOS40LTI0LjYgMC0zMy45eiJdfSxhSXQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiaGFzaHRhZyIsaWNvbjpbNTEyLDUxMixbNjIwOThdLCIyMyIsIk0yMTQuNyAuN2MxNy4zIDMuNyAyOC4zIDIwLjcgMjQuNiAzOGwtMTkuMSA4OS4zIDEyNi41IDAgMjItMTAyLjdDMzcyLjQgOCAzODkuNC0zIDQwNi43IC43czI4LjMgMjAuNyAyNC42IDM4TDQxMi4yIDEyOCA0ODAgMTI4YzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMybC04MS42IDAtMjcuNCAxMjggNjcuOCAwYzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMybC04MS42IDAtMjIgMTAyLjdjLTMuNyAxNy4zLTIwLjcgMjguMy0zOCAyNC42cy0yOC4zLTIwLjctMjQuNi0zOGwxOS4xLTg5LjMtMTI2LjUgMC0yMiAxMDIuN2MtMy43IDE3LjMtMjAuNyAyOC4zLTM4IDI0LjZzLTI4LjMtMjAuNy0yNC42LTM4TDk5LjggMzg0IDMyIDM4NGMtMTcuNyAwLTMyLTE0LjMtMzItMzJzMTQuMy0zMiAzMi0zMmw4MS42IDAgMjcuNC0xMjgtNjcuOCAwYy0xNy43IDAtMzItMTQuMy0zMi0zMnMxNC4zLTMyIDMyLTMybDgxLjYgMCAyMi0xMDIuN0MxODAuNCA4IDE5Ny40LTMgMjE0LjcgLjd6TTIwNi40IDE5MmwtMjcuNCAxMjggMTI2LjUgMCAyNy40LTEyOC0xMjYuNSAweiJdfSxuSXQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToidHJhaW4iLGljb246WzM4NCw1MTIsWzEyODY0Nl0sImYyMzgiLCJNMCA5NkMwIDQzIDQzIDAgOTYgMEwyODggMGM1MyAwIDk2IDQzIDk2IDk2bDAgMjU2YzAgNDAuMS0yNC42IDc0LjUtNTkuNSA4OC44bDUzLjkgNjMuN2M4LjYgMTAuMSA3LjMgMjUuMy0yLjggMzMuOHMtMjUuMyA3LjMtMzMuOC0yLjhsLTc0LTg3LjUtMTUxLjMgMC03NCA4Ny41Yy04LjYgMTAuMS0yMy43IDExLjQtMzMuOCAyLjhzLTExLjQtMjMuNy0yLjgtMzMuOGw1My45LTYzLjdDMjQuNiA0MjYuNSAwIDM5Mi4xIDAgMzUyTDAgOTZ6bTY0IDMybDAgOTZjMCAxNy43IDE0LjMgMzIgMzIgMzJsMTkyIDBjMTcuNyAwIDMyLTE0LjMgMzItMzJsMC05NmMwLTE3LjctMTQuMy0zMi0zMi0zMkw5NiA5NmMtMTcuNyAwLTMyIDE0LjMtMzIgMzJ6TTE5MiAzODRhMzIgMzIgMCAxIDAgMC02NCAzMiAzMiAwIDEgMCAwIDY0eiJdfSxvSXQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZ2FtZXBhZCIsaWNvbjpbNjQwLDUxMixbXSwiZjExYiIsIk00NDggNjRjMTA2IDAgMTkyIDg2IDE5MiAxOTJTNTU0IDQ0OCA0NDggNDQ4bC0yNTYgMEM4NiA0NDggMCAzNjIgMCAyNTZTODYgNjQgMTkyIDY0bDI1NiAwek0xOTIgMTc2Yy0xMy4zIDAtMjQgMTAuNy0yNCAyNGwwIDMyLTMyIDBjLTEzLjMgMC0yNCAxMC43LTI0IDI0czEwLjcgMjQgMjQgMjRsMzIgMCAwIDMyYzAgMTMuMyAxMC43IDI0IDI0IDI0czI0LTEwLjcgMjQtMjRsMC0zMiAzMiAwYzEzLjMgMCAyNC0xMC43IDI0LTI0cy0xMC43LTI0LTI0LTI0bC0zMiAwIDAtMzJjMC0xMy4zLTEwLjctMjQtMjQtMjR6bTI0MCA5NmEzMiAzMiAwIDEgMCAwIDY0IDMyIDMyIDAgMSAwIDAtNjR6bTY0LTk2YTMyIDMyIDAgMSAwIDAgNjQgMzIgMzIgMCAxIDAgMC02NHoiXX0sazNlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImZpbGUtZXhwb3J0IixpY29uOls1NzYsNTEyLFsiYXJyb3ctcmlnaHQtZnJvbS1maWxlIl0sImY1NmUiLCJNOTYuNSAwYy0zNS4zIDAtNjQgMjguNy02NCA2NGwwIDM4NGMwIDM1LjMgMjguNyA2NCA2NCA2NGwyNTYgMGMzNS4zIDAgNjQtMjguNyA2NC02NGwwLTk2IDc4LjEgMC0zMSAzMWMtOS40IDkuNC05LjQgMjQuNiAwIDMzLjlzMjQuNiA5LjQgMzMuOSAwbDcyLTcyYzkuNC05LjQgOS40LTI0LjYgMC0zMy45bC03Mi03MmMtOS40LTkuNC0yNC42LTkuNC0zMy45IDBzLTkuNCAyNC42IDAgMzMuOWwzMSAzMS03OC4xIDAgMC0xMzMuNWMwLTE3LTYuNy0zMy4zLTE4LjctNDUuM0wyOTEuMiAxOC43QzI3OS4yIDYuNyAyNjMgMCAyNDYgMEw5Ni41IDB6TTM1OCAxNzZsLTkzLjUgMGMtMTMuMyAwLTI0LTEwLjctMjQtMjRMMjQwLjUgNTguNSAzNTggMTc2ek0yMjQuNSAzMjhjMC0xMy4zIDEwLjctMjQgMjQtMjRsMTA0IDAgMCA0OC0xMDQgMGMtMTMuMyAwLTI0LTEwLjctMjQtMjR6Il19LHNJdD1rM2UsUzNlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImZhY2UtZ3JpbWFjZSIsaWNvbjpbNTEyLDUxMixbMTI4NTU2LCJncmltYWNlIl0sImY1N2YiLCJNMjU2IDUxMmEyNTYgMjU2IDAgMSAwIDAtNTEyIDI1NiAyNTYgMCAxIDAgMCA1MTJ6TTQwMCAzNTJjMCAyNS4yLTE5LjQgNDUuOC00NCA0Ny44bDAtOTUuN2MyNC42IDIgNDQgMjIuNyA0NCA0Ny44ek0yNzYgMzA0bDQwIDAgMCA5Ni00MCAwIDAtOTZ6bS04MCA5NmwwLTk2IDQwIDAgMCA5Ni00MCAwem0tNDAtOTUuOGwwIDk1LjdjLTI0LjYtMi00NC0yMi43LTQ0LTQ3LjhzMTkuNC00NS44IDQ0LTQ3Ljh6TTE0NCAyMDhhMzIgMzIgMCAxIDEgNjQgMCAzMiAzMiAwIDEgMSAtNjQgMHptMTkyLTMyYTMyIDMyIDAgMSAxIDAgNjQgMzIgMzIgMCAxIDEgMC02NHoiXX0sbEl0PVMzZSx6M2U9e3ByZWZpeDoiZmFzIixpY29uTmFtZToidHJhaW4tc3Vid2F5IixpY29uOlszODQsNTEyLFsic3Vid2F5Il0sImYyMzkiLCJNMCA5NkMwIDQzIDQzIDAgOTYgMEwyODggMGM1MyAwIDk2IDQzIDk2IDk2bDAgMjU2YzAgNDAuMS0yNC42IDc0LjUtNTkuNSA4OC44bDUzLjkgNjMuN2M4LjYgMTAuMSA3LjMgMjUuMy0yLjggMzMuOHMtMjUuMyA3LjMtMzMuOC0yLjhsLTc0LTg3LjUtMTUxLjMgMC03NCA4Ny41Yy04LjYgMTAuMS0yMy43IDExLjQtMzMuOCAyLjhzLTExLjQtMjMuNy0yLjgtMzMuOGw1My45LTYzLjdDMjQuNiA0MjYuNSAwIDM5Mi4xIDAgMzUyTDAgOTZ6bTY0IDMybDAgOTZjMCAxNy43IDE0LjMgMzIgMzIgMzJsNzIgMCAwLTE2MC03MiAwYy0xNy43IDAtMzIgMTQuMy0zMiAzMnpNMjE2IDI1Nmw3MiAwYzE3LjcgMCAzMi0xNC4zIDMyLTMybDAtOTZjMC0xNy43LTE0LjMtMzItMzItMzJsLTcyIDAgMCAxNjB6TTk2IDM4NGEzMiAzMiAwIDEgMCAwLTY0IDMyIDMyIDAgMSAwIDAgNjR6bTIyNC0zMmEzMiAzMiAwIDEgMCAtNjQgMCAzMiAzMiAwIDEgMCA2NCAweiJdfSxjSXQ9ejNlLEMzZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJjaXJjbGUtZG90IixpY29uOls1MTIsNTEyLFsxMjgyODAsImRvdC1jaXJjbGUiXSwiZjE5MiIsIk0yNTYgNTEyYTI1NiAyNTYgMCAxIDAgMC01MTIgMjU2IDI1NiAwIDEgMCAwIDUxMnptMC0zNTJhOTYgOTYgMCAxIDEgMCAxOTIgOTYgOTYgMCAxIDEgMC0xOTJ6Il19LGRJdD1DM2UsdUl0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6Im9iamVjdC1ncm91cCIsaWNvbjpbNTc2LDUxMixbXSwiZjI0NyIsIk0zMiAxMTkuNEMxMi45IDEwOC40IDAgODcuNyAwIDY0IDAgMjguNyAyOC43IDAgNjQgMCA4Ny43IDAgMTA4LjQgMTIuOSAxMTkuNCAzMmwzMzcuMSAwYzExLjEtMTkuMSAzMS43LTMyIDU1LjQtMzIgMzUuMyAwIDY0IDI4LjcgNjQgNjQgMCAyMy43LTEyLjkgNDQuNC0zMiA1NS40bDAgMjczLjFjMTkuMSAxMS4xIDMyIDMxLjcgMzIgNTUuNCAwIDM1LjMtMjguNyA2NC02NCA2NC0yMy43IDAtNDQuNC0xMi45LTU1LjQtMzJsLTMzNy4xIDBjLTExLjEgMTkuMS0zMS43IDMyLTU1LjQgMzItMzUuMyAwLTY0LTI4LjctNjQtNjQgMC0yMy43IDEyLjktNDQuNCAzMi01NS40bDAtMjczLjF6bTQ0OCAwYy05LjctNS42LTE3LjgtMTMuNy0yMy40LTIzLjRMMTE5LjQgOTZjLTUuNiA5LjctMTMuNyAxNy44LTIzLjQgMjMuNGwwIDI3My4xYzkuNyA1LjYgMTcuOCAxMy43IDIzLjQgMjMuNGwzMzcuMSAwYzUuNi05LjcgMTMuNy0xNy44IDIzLjQtMjMuNGwwLTI3My4xek0xNDQgMTc2YzAtMTcuNyAxNC4zLTMyIDMyLTMybDExMiAwYzE3LjcgMCAzMiAxNC4zIDMyIDMybDAgNjRjMCAxNy43LTE0LjMgMzItMzIgMzJsLTExMiAwYy0xNy43IDAtMzItMTQuMy0zMi0zMmwwLTY0ek0yNTYgMzIwbDMyIDBjNDQuMiAwIDgwLTM1LjggODAtODBsMzIgMGMxNy43IDAgMzIgMTQuMyAzMiAzMmwwIDY0YzAgMTcuNy0xNC4zIDMyLTMyIDMybC0xMTIgMGMtMTcuNyAwLTMyLTE0LjMtMzItMzJsMC0xNnoiXX0scEl0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InNoaXAiLGljb246WzY0MCw1MTIsWzEyODY3NF0sImYyMWEiLCJNMjcyIDBjLTI2LjUgMC00OCAyMS41LTQ4IDQ4bDAgMTYtMTYgMGMtNDQuMiAwLTgwIDM1LjgtODAgODBsMCAxMDguOC0yMS42IDguNmMtMTQuOCA1LjktMjIuNSAyMi40LTE3LjQgMzcuNSAxMC40IDMxLjMgMjYuOCA1OS4zIDQ3LjcgODMuMSAyMC4xLTkuMiA0MS43LTEzLjkgNjMuMy0xNCAzMy4xLS4yIDY2LjMgMTAuMiA5NC40IDMxLjRsMS42IDEuMiAwLTIxNS0xMDQgNDEuNiAwLTgzLjJjMC04LjggNy4yLTE2IDE2LTE2bDIyNCAwYzguOCAwIDE2IDcuMiAxNiAxNmwwIDgzLjItMTA0LTQxLjYgMCAyMTUgMS42LTEuMmMyNy41LTIwLjcgNTkuOS0zMS4yIDkyLjQtMzEuNCAyMi4zLS4xIDQ0LjYgNC41IDY1LjMgMTQgMjAuOS0yMy43IDM3LjMtNTEuOCA0Ny43LTgzLjEgNS0xNS4yLTIuNi0zMS42LTE3LjQtMzcuNUw1MTIgMjUyLjggNTEyIDE0NGMwLTQ0LjItMzUuOC04MC04MC04MGwtMTYgMCAwLTE2YzAtMjYuNS0yMS41LTQ4LTQ4LTQ4TDI3MiAwek00MDMuNCA0NzYuMWMyMS4zLTE2LjEgNDkuOS0xNi4xIDcxLjIgMCAxOSAxNC40IDQxLjkgMjguMiA2Ny4yIDMzLjMgMjYuNSA1LjQgNTQuMyAuOCA4MC43LTE5LjEgMTAuNi04IDEyLjctMjMgNC43LTMzLjZzLTIzLTEyLjctMzMuNi00LjdjLTE0LjkgMTEuMi0yOC42IDEzLjEtNDIuMyAxMC4zLTE0LjktMy0zMC45LTExLjktNDcuOC0yNC42LTM4LjQtMjktOTAuNS0yOS0xMjkgMC0yNCAxOC4xLTQwLjcgMjYuMy01NC41IDI2LjNzLTMwLjUtOC4yLTU0LjUtMjYuM2MtMzguNC0yOS05MC41LTI5LTEyOSAwLTIxLjYgMTYuMy00MS4zIDI1LjgtNTguOSAyNS43LTkuNi0uMS0xOS45LTMtMzEuMi0xMS41LTEwLjYtOC0yNS42LTUuOS0zMy42IDQuN1M3IDQ4Mi4zIDE3LjYgNDkwLjNjMTkuMSAxNC40IDM5LjQgMjEgNTkuOCAyMS4xIDMzLjkgLjIgNjQuMy0xNy40IDg4LjEtMzUuMyAyMS4zLTE2LjEgNDkuOS0xNi4xIDcxLjIgMCAyNC4yIDE4LjMgNTIuMyAzNS45IDgzLjQgMzUuOXM1OS4xLTE3LjcgODMuNC0zNS45eiJdfSxoSXQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiYyIsaWNvbjpbMzg0LDUxMixbOTldLCI0MyIsIk0zMjkuMSAxNDIuOWMtNjIuNS02Mi41LTE1NS44LTYyLjUtMjE4LjMgMHMtNjIuNSAxNjMuOCAwIDIyNi4zIDE1NS44IDYyLjUgMjE4LjMgMGMxMi41LTEyLjUgMzIuOC0xMi41IDQ1LjMgMHMxMi41IDMyLjggMCA0NS4zYy04Ny41IDg3LjUtMjIxLjMgODcuNS0zMDguOCAwcy04Ny41LTIyOS4zIDAtMzE2LjggMjIxLjMtODcuNSAzMDguOCAwYzEyLjUgMTIuNSAxMi41IDMyLjggMCA0NS4zcy0zMi44IDEyLjUtNDUuMyAweiJdfSxUM2U9e3ByZWZpeDoiZmFzIixpY29uTmFtZToic3F1YXJlLXBob25lIixpY29uOls0NDgsNTEyLFsicGhvbmUtc3F1YXJlIl0sImYwOTgiLCJNNjQgMzJDMjguNyAzMiAwIDYwLjcgMCA5NkwwIDQxNmMwIDM1LjMgMjguNyA2NCA2NCA2NGwzMjAgMGMzNS4zIDAgNjQtMjguNyA2NC02NGwwLTMyMGMwLTM1LjMtMjguNy02NC02NC02NEw2NCAzMnptODggOTYuN2M5LjgtMi43IDIwLjEgMi40IDI0IDExLjhsMjAuMyA0OC43YzMuNCA4LjMgMS4xIDE3LjgtNS45IDIzLjVsLTIyLjEgMThjMTYuMiAzNS44IDQ0LjUgNjUgNzkuNiA4Mi40bDE5LjMtMjMuNmM1LjctNi45IDE1LjItOS4zIDIzLjUtNS45bDQ4LjcgMjAuM2M5LjQgMy45IDE0LjQgMTQuMiAxMS44IDI0bC0uOCAyLjhjLTguOCAzMi4zLTQwLjEgNTkuOS03OC4yIDUxLjgtODcuNS0xOC41LTE1Ni4zLTg3LjQtMTc0LjktMTc0LjktOC4xLTM4LjEgMTkuNS02OS40IDUxLjgtNzguMmwyLjgtLjh6Il19LGZJdD1UM2UsbUl0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InJ1bGVyLWNvbWJpbmVkIixpY29uOls0NDgsNTEyLFtdLCJmNTQ2IiwiTTEgNDQxLjdDNS41IDQ2My41IDI0LjggNDgwIDQ4IDQ4MGwzNTIgMGMyNi41IDAgNDgtMjEuNSA0OC00OGwwLTk2YzAtMjYuNS0yMS41LTQ4LTQ4LTQ4bC00OCAwIDAgNzJjMCAxMy4zLTEwLjcgMjQtMjQgMjRzLTI0LTEwLjctMjQtMjRsMC03Mi02NCAwIDAgNzJjMCAxMy4zLTEwLjcgMjQtMjQgMjRzLTI0LTEwLjctMjQtMjRsMC03Mi03MiAwYy0xMy4zIDAtMjQtMTAuNy0yNC0yNHMxMC43LTI0IDI0LTI0bDcyIDAgMC02NC03MiAwYy0xMy4zIDAtMjQtMTAuNy0yNC0yNHMxMC43LTI0IDI0LTI0bDcyIDAgMC00OGMwLTI2LjUtMjEuNS00OC00OC00OEw0OCAzMkMyMS41IDMyIDAgNTMuNSAwIDgwTDAgNDMyYzAgMy4zIC4zIDYuNiAxIDkuN3oiXX0sakQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiYXJyb3dzLXJvdGF0ZSIsaWNvbjpbNTEyLDUxMixbMTI4NDcyLCJyZWZyZXNoIiwic3luYyJdLCJmMDIxIiwiTTY1LjkgMjI4LjVjMTMuMy05MyA5My40LTE2NC41IDE5MC4xLTE2NC41IDUzIDAgMTAxIDIxLjUgMTM1LjggNTYuMiAuMiAuMiAuNCAuNCAuNiAuNmw3LjYgNy4yLTQ3LjkgMGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJzMTQuMyAzMiAzMiAzMmwxMjggMGMxNy43IDAgMzItMTQuMyAzMi0zMmwwLTEyOGMwLTE3LjctMTQuMy0zMi0zMi0zMnMtMzIgMTQuMy0zMiAzMmwwIDUzLjQtMTEuMy0xMC43QzM5MC41IDI4LjYgMzI2LjUgMCAyNTYgMCAxMjcgMCAyMC4zIDk1LjQgMi42IDIxOS41IC4xIDIzNyAxMi4yIDI1My4yIDI5LjcgMjU1LjdzMzMuNy05LjcgMzYuMi0yNy4xem00NDMuNSA2NGMyLjUtMTcuNS05LjctMzMuNy0yNy4xLTM2LjJzLTMzLjcgOS43LTM2LjIgMjcuMWMtMTMuMyA5My05My40IDE2NC41LTE5MC4xIDE2NC41LTUzIDAtMTAxLTIxLjUtMTM1LjgtNTYuMi0uMi0uMi0uNC0uNC0uNi0uNmwtNy42LTcuMiA0Ny45IDBjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJMMzIgMzIwYy04LjUgMC0xNi43IDMuNC0yMi43IDkuNVMtLjEgMzQzLjcgMCAzNTIuM2wxIDEyN2MuMSAxNy43IDE0LjYgMzEuOSAzMi4zIDMxLjdTNjUuMiA0OTYuNCA2NSA0NzguN2wtLjQtNTEuNSAxMC43IDEwLjFjNDYuMyA0Ni4xIDExMC4yIDc0LjcgMTgwLjcgNzQuNyAxMjkgMCAyMzUuNy05NS40IDI1My40LTIxOS41eiJdfSxnSXQ9akQsYkl0PWpELF8zZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJwZXJzb24tZHJlc3MiLGljb246WzM4NCw1MTIsWyJmZW1hbGUiXSwiZjE4MiIsIk0xMzYgMjRhNTYgNTYgMCAxIDEgMTEyIDAgNTYgNTYgMCAxIDEgLTExMiAwek0xMTIgMzg0bC0yNS44IDBjLTEwLjkgMC0xOC42LTEwLjctMTUuMi0yMS4xbDQzLTEyOS00OC4zIDY1LjFjLTEwLjUgMTQuMi0zMC42IDE3LjItNDQuOCA2LjZzLTE3LjItMzAuNi02LjYtNDQuOGw3MC41LTk1QzExMCAxMzIgMTQ5LjcgMTEyIDE5MiAxMTJzODIgMjAgMTA3LjIgNTMuOWw3MC41IDk1YzEwLjUgMTQuMiA3LjYgMzQuMi02LjYgNDQuOHMtMzQuMiA3LjYtNDQuOC02LjZMMjcwIDIzNCAzMTMgMzYyLjljMy41IDEwLjQtNC4zIDIxLjEtMTUuMiAyMS4xbC0yNS44IDAgMCAxMjhjMCAxNy43LTE0LjMgMzItMzIgMzJzLTMyLTE0LjMtMzItMzJsMC0xMjgtMzIgMCAwIDEyOGMwIDE3LjctMTQuMyAzMi0zMiAzMnMtMzItMTQuMy0zMi0zMmwwLTEyOHoiXX0sdkl0PV8zZSx4SXQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiYm9vay1vcGVuIixpY29uOls1MTIsNTEyLFsxMjgyMTQsMTI4MzY2XSwiZjUxOCIsIk0yNTYgMTQxLjNsMCAzMDkuMyAuNS0uMkMzMTEuMSA0MjcuNyAzNjkuNyA0MTYgNDI4LjggNDE2bDE5LjIgMCAwLTMyMC0xOS4yIDBjLTQyLjIgMC04NC4xIDguNC0xMjMuMSAyNC42LTE2LjggNy0zMy40IDEzLjktNDkuNyAyMC43ek0yMzAuOSA2MS41TDI1NiA3MiAyODEuMSA2MS41QzMyNy45IDQyIDM3OC4xIDMyIDQyOC44IDMyTDQ2NCAzMmMyNi41IDAgNDggMjEuNSA0OCA0OGwwIDM1MmMwIDI2LjUtMjEuNSA0OC00OCA0OGwtMzUuMiAwYy01MC43IDAtMTAwLjkgMTAtMTQ3LjcgMjkuNWwtMTIuOCA1LjNjLTcuOSAzLjMtMTYuNyAzLjMtMjQuNiAwbC0xMi44LTUuM0MxODQuMSA0OTAgMTMzLjkgNDgwIDgzLjIgNDgwTDQ4IDQ4MGMtMjYuNSAwLTQ4LTIxLjUtNDgtNDhMMCA4MEMwIDUzLjUgMjEuNSAzMiA0OCAzMmwzNS4yIDBjNTAuNyAwIDEwMC45IDEwIDE0Ny43IDI5LjV6Il19LHlJdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJmb2xkZXItdHJlZSIsaWNvbjpbNTc2LDUxMixbXSwiZjgwMiIsIk00OCAyNEM0OCAxMC43IDM3LjMgMCAyNCAwUzAgMTAuNyAwIDI0TDAgMzkyYzAgMzAuOSAyNS4xIDU2IDU2IDU2bDE4NCAwIDAtNDgtMTg0IDBjLTQuNCAwLTgtMy42LTgtOGwwLTIzMiAxOTIgMCAwLTQ4LTE5MiAwIDAtODh6TTMzNiAyMjRsMTkyIDBjMjYuNSAwIDQ4LTIxLjUgNDgtNDhsMC05NmMwLTI2LjUtMjEuNS00OC00OC00OGwtODIuNyAwYy04LjUgMC0xNi42LTMuNC0yMi42LTkuNGwtOC42LTguNmMtOS05LTIxLjItMTQuMS0zMy45LTE0LjFMMzM2IDBjLTI2LjUgMC00OCAyMS41LTQ4IDQ4bDAgMTI4YzAgMjYuNSAyMS41IDQ4IDQ4IDQ4em0wIDI4OGwxOTIgMGMyNi41IDAgNDgtMjEuNSA0OC00OGwwLTk2YzAtMjYuNS0yMS41LTQ4LTQ4LTQ4bC04Mi43IDBjLTguNSAwLTE2LjYtMy40LTIyLjYtOS40bC04LjYtOC42Yy05LTktMjEuMi0xNC4xLTMzLjktMTQuMUwzMzYgMjg4Yy0yNi41IDAtNDggMjEuNS00OCA0OGwwIDEyOGMwIDI2LjUgMjEuNSA0OCA0OCA0OHoiXX0sd0l0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InZpcmdvIixpY29uOls2NDAsNTEyLFtdLCJlODUwIiwiTTM2OCAzMmM2MS45IDAgMTEyIDUwLjEgMTEyIDExMmwwIDI2LjhjMTQuNS02LjkgMzAuOC0xMC44IDQ4LTEwLjggNjEuOSAwIDExMiA1MC4xIDExMiAxMTJTNTg5LjkgMzg0IDUyOCAzODRsLTQ4IDAgMCAzMmMwIDE2LjYgMTIuNiAzMC4yIDI4LjcgMzEuOGw2LjYgLjNjMTYuMSAxLjYgMjguNyAxNS4zIDI4LjcgMzEuOCAwIDE3LjctMTQuMyAzMi0zMiAzMi01MyAwLTk2LTQzLTk2LTk2bDAtMzItMTYgMGMtMTcuNyAwLTMyLTE0LjMtMzItMzJzMTQuMy0zMiAzMi0zMmwxNiAwIDAtMTc2YzAtMjYuNS0yMS41LTQ4LTQ4LTQ4cy00OCAyMS41LTQ4IDQ4bDAgMzA0YzAgMTcuNy0xNC4zIDMyLTMyIDMycy0zMi0xNC4zLTMyLTMybDAtMzA0YzAtMjYuNS0yMS41LTQ4LTQ4LTQ4cy00OCAyMS41LTQ4IDQ4bDAgMzA0YzAgMTcuNy0xNC4zIDMyLTMyIDMycy0zMi0xNC4zLTMyLTMybDAtMzIwYzAtMTYuNi0xMi42LTMwLjItMjguNy0zMS44bC02LjYtLjNDNDQuNiA5NC4yIDMyIDgwLjYgMzIgNjQgMzIgNDYuMyA0Ni4zIDMyIDY0IDMyIDkxIDMyIDExNS4zIDQzLjEgMTMyLjcgNjEgMTUyLjYgNDMgMTc5IDMyIDIwOCAzMiAyMzkuMyAzMiAyNjcuNyA0NC45IDI4OCA2NS43IDMwOC4zIDQ0LjkgMzM2LjYgMzIgMzY4IDMyek01MjggMjI0Yy0yNi41IDAtNDggMjEuNS00OCA0OGwwIDQ4IDQ4IDBjMjYuNSAwIDQ4LTIxLjUgNDgtNDhzLTIxLjUtNDgtNDgtNDh6Il19LEwzZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJib3gtYXJjaGl2ZSIsaWNvbjpbNTEyLDUxMixbImFyY2hpdmUiXSwiZjE4NyIsIk0wIDY0QzAgNDYuMyAxNC4zIDMyIDMyIDMybDQ0OCAwYzE3LjcgMCAzMiAxNC4zIDMyIDMybDAgMzJjMCAxNy43LTE0LjMgMzItMzIgMzJMMzIgMTI4QzE0LjMgMTI4IDAgMTEzLjcgMCA5NkwwIDY0ek0zMiAxNzZsNDQ4IDAgMCAyNDBjMCAzNS4zLTI4LjcgNjQtNjQgNjRMOTYgNDgwYy0zNS4zIDAtNjQtMjguNy02NC02NGwwLTI0MHptMTUyIDY0Yy0xMy4zIDAtMjQgMTAuNy0yNCAyNHMxMC43IDI0IDI0IDI0bDE0NCAwYzEzLjMgMCAyNC0xMC43IDI0LTI0cy0xMC43LTI0LTI0LTI0bC0xNDQgMHoiXX0sTUl0PUwzZSxrSXQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToidGVudC1hcnJvdy1kb3duLXRvLWxpbmUiLGljb246WzU3Niw1MTIsW10sImU1N2UiLCJNMTg1IDEyMWM5LjQtOS40IDkuNC0yNC42IDAtMzMuOXMtMjQuNi05LjQtMzMuOSAwbC0zMSAzMSAwLTEwMi4xQzEyMCAyLjcgMTA5LjMtOCA5Ni04UzcyIDIuNyA3MiAxNmwwIDEwMi4xLTMxLTMxQzMxLjYgNzcuNyAxNi40IDc3LjcgNyA4N1MtMi4zIDExMS42IDcgMTIxbDcyIDcyYzkuNCA5LjQgMjQuNiA5LjQgMzMuOSAwbDcyLTcyek0xNTUuOCAyNjAuNkwxMzIuMSA0NDggMzIgNDQ4Yy0xNy43IDAtMzIgMTQuMy0zMiAzMnMxNC4zIDMyIDMyIDMybDUxMiAwYzE3LjcgMCAzMi0xNC4zIDMyLTMyIDAtMi44LS40LTUuNS0xLThMNTQ4LjIgMjYwLjdjLTEuMi05LjctNi45LTE4LjQtMTUuMy0yMy40TDM2Ny40IDEzNy45Yy0xMC4yLTYuMS0yMi45LTYuMS0zMy4xIC4xTDE3MC45IDIzNy4zYy04LjMgNS4xLTEzLjkgMTMuNy0xNS4xIDIzLjN6TTQ0OCA0NDhsLTk3LjEgMCAwLTE0OS40YzAtNS45IDQuNy0xMC42IDEwLjYtMTAuNiA0IDAgNy43IDIuMyA5LjUgNS45TDQ0OCA0NDh6Il19LFNJdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJxcmNvZGUiLGljb246WzQ0OCw1MTIsW10sImYwMjkiLCJNNjQgMTYwbDY0IDAgMC02NC02NCAwIDAgNjR6TTAgODBDMCA1My41IDIxLjUgMzIgNDggMzJsOTYgMGMyNi41IDAgNDggMjEuNSA0OCA0OGwwIDk2YzAgMjYuNS0yMS41IDQ4LTQ4IDQ4bC05NiAwYy0yNi41IDAtNDgtMjEuNS00OC00OEwwIDgwek02NCA0MTZsNjQgMCAwLTY0LTY0IDAgMCA2NHpNMCAzMzZjMC0yNi41IDIxLjUtNDggNDgtNDhsOTYgMGMyNi41IDAgNDggMjEuNSA0OCA0OGwwIDk2YzAgMjYuNS0yMS41IDQ4LTQ4IDQ4bC05NiAwYy0yNi41IDAtNDgtMjEuNS00OC00OGwwLTk2ek0zMjAgOTZsMCA2NCA2NCAwIDAtNjQtNjQgMHpNMzA0IDMybDk2IDBjMjYuNSAwIDQ4IDIxLjUgNDggNDhsMCA5NmMwIDI2LjUtMjEuNSA0OC00OCA0OGwtOTYgMGMtMjYuNSAwLTQ4LTIxLjUtNDgtNDhsMC05NmMwLTI2LjUgMjEuNS00OCA0OC00OHpNMjg4IDM1MmEzMiAzMiAwIDEgMSAwLTY0IDMyIDMyIDAgMSAxIDAgNjR6bTAgNjRjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzItMzItMTQuMy0zMi0zMiAxNC4zLTMyIDMyLTMyem05NiAzMmMwLTE3LjcgMTQuMy0zMiAzMi0zMnMzMiAxNC4zIDMyIDMyLTE0LjMgMzItMzIgMzItMzItMTQuMy0zMi0zMnptMzItOTZhMzIgMzIgMCAxIDEgMC02NCAzMiAzMiAwIDEgMSAwIDY0em0tMzIgMzJhMzIgMzIgMCAxIDEgLTY0IDAgMzIgMzIgMCAxIDEgNjQgMHoiXX0sekl0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImRyYWdvbiIsaWNvbjpbNjQwLDUxMixbMTI4MDA5XSwiZjZkNSIsIk0zNTIgMTI0LjVsLTUxLjktMTNjLTYuNS0xLjYtMTEuMy03LjEtMTItMTMuOHMyLjgtMTMuMSA4LjctMTYuMWw0MC44LTIwLjQtNDMuMy0zMi41Yy01LjUtNC4xLTcuOC0xMS4zLTUuNi0xNy45UzI5Ny4xIDAgMzA0IDBMNDY0IDBjMzAuMiAwIDU4LjcgMTQuMiA3Ni44IDM4LjRsNTcuNiA3Ni44YzYuMiA4LjMgOS42IDE4LjQgOS42IDI4LjggMCAyNi41LTIxLjUgNDgtNDggNDhsLTIxLjUgMGMtMTcgMC0zMy4zLTYuNy00NS4zLTE4LjdsLTEzLjMtMTMuMy0zMiAwIDAgMjEuNWMwIDI0LjggMTIuOCA0Ny45IDMzLjggNjEuMWwxMDYuNiA2Ni42YzMyLjEgMjAuMSA1MS42IDU1LjIgNTEuNiA5My4xIDAgNjAuNi00OS4xIDEwOS44LTEwOS44IDEwOS44TDMyLjMgNTEyYy0zLjMgMC02LjYtLjQtOS42LTEuNC05LjItMi44LTE2LjctOS42LTIwLjQtMTguNi0xLjMtMy4zLTIuMi02LjktMi4zLTEwLjctLjItMy43IC4zLTcuMyAxLjMtMTAuNyAyLjgtOS4yIDkuNi0xNi43IDE4LjYtMjAuNCAzLTEuMiA2LjItMiA5LjUtMi4yTDQzMy4zIDQxMmM4LjMtLjcgMTQuNy03LjcgMTQuNy0xNi4xIDAtNC4zLTEuNy04LjQtNC43LTExLjRsLTQ0LjQtNDQuNGMtMzAtMzAtNDYuOS03MC43LTQ2LjktMTEzLjFsMC0xMDIuNXpNNTEyIDcyLjNjMC0uMSAwLS4yIDAtLjNzMC0uMiAwLS4zbDAgLjZ6bS0xLjMgNy40TDQ2NC4zIDY4LjFjLS4yIDEuMy0uMyAyLjYtLjMgMy45IDAgMTMuMyAxMC43IDI0IDI0IDI0IDEwLjYgMCAxOS41LTYuOCAyMi43LTE2LjN6TTEzMC45IDExNi41YzE2LjMtMTQuNSA0MC40LTE2LjIgNTguNS00LjFsMTMwLjYgODcgMCAyNy41YzAgMzIuOCA4LjQgNjQuOCAyNCA5M2wtMjMyIDBjLTYuNyAwLTEyLjctNC4yLTE1LTEwLjRzLS41LTEzLjMgNC42LTE3LjdMMTcxIDIzMi4zIDE4LjQgMjU1LjhjLTcgMS4xLTEzLjktMi42LTE2LjktOVMuMSAyMzIuOCA1LjQgMjI4TDEzMC45IDExNi41eiJdfSxBM2U9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiaG91cmdsYXNzLWVuZCIsaWNvbjpbMzg0LDUxMixbODk4NywiaG91cmdsYXNzLTMiXSwiZjI1MyIsIk0zMiAwQzE0LjMgMCAwIDE0LjMgMCAzMlMxNC4zIDY0IDMyIDY0bDAgMTFjMCA0Mi40IDE2LjkgODMuMSA0Ni45IDExMy4xbDY3LjkgNjcuOS02Ny45IDY3LjlDNDguOSAzNTMuOSAzMiAzOTQuNiAzMiA0MzdsMCAxMWMtMTcuNyAwLTMyIDE0LjMtMzIgMzJzMTQuMyAzMiAzMiAzMmwzMjAgMGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMmwwLTExYzAtNDIuNC0xNi45LTgzLjEtNDYuOS0xMTMuMWwtNjcuOS02Ny45IDY3LjktNjcuOWMzMC0zMCA0Ni45LTcwLjcgNDYuOS0xMTMuMWwwLTExYzE3LjcgMCAzMi0xNC4zIDMyLTMyUzM2OS43IDAgMzUyIDBMMzIgMHpNOTYgNzVsMC0xMSAxOTIgMCAwIDExYzAgMjUuNS0xMC4xIDQ5LjktMjguMSA2Ny45bC02Ny45IDY3LjktNjcuOS02Ny45QzEwNi4xIDEyNC45IDk2IDEwMC40IDk2IDc1eiJdfSxDSXQ9QTNlLEhwPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImdyaXAiLGljb246WzUxMiw1MTIsWzU4MTE5LCJncmlkLWhvcml6b250YWwiLCJncmlwLWhvcml6b250YWwiXSwiZjU4ZCIsIk04OCA5NmMyMi4xIDAgNDAgMTcuOSA0MCA0MGwwIDQ4YzAgMjIuMS0xNy45IDQwLTQwIDQwbC00OCAwYy0yMi4xIDAtNDAtMTcuOS00MC00MGwwLTQ4YzAtMjIuMSAxNy45LTQwIDQwLTQwbDQ4IDB6TTI4MCAyMjRsLTQ4IDBjLTIyLjEgMC00MC0xNy45LTQwLTQwbDAtNDhjMC0yMi4xIDE3LjktNDAgNDAtNDBsNDggMGMyMi4xIDAgNDAgMTcuOSA0MCA0MGwwIDQ4YzAgMjIuMS0xNy45IDQwLTQwIDQwem0xOTIgMGwtNDggMGMtMjIuMSAwLTQwLTE3LjktNDAtNDBsMC00OGMwLTIyLjEgMTcuOS00MCA0MC00MGw0OCAwYzIyLjEgMCA0MCAxNy45IDQwIDQwbDAgNDhjMCAyMi4xLTE3LjkgNDAtNDAgNDB6bTAgMTkybC00OCAwYy0yMi4xIDAtNDAtMTcuOS00MC00MGwwLTQ4YzAtMjIuMSAxNy45LTQwIDQwLTQwbDQ4IDBjMjIuMSAwIDQwIDE3LjkgNDAgNDBsMCA0OGMwIDIyLjEtMTcuOSA0MC00MCA0MHpNMjgwIDI4OGMyMi4xIDAgNDAgMTcuOSA0MCA0MGwwIDQ4YzAgMjIuMS0xNy45IDQwLTQwIDQwbC00OCAwYy0yMi4xIDAtNDAtMTcuOS00MC00MGwwLTQ4YzAtMjIuMSAxNy45LTQwIDQwLTQwbDQ4IDB6TTg4IDQxNmwtNDggMGMtMjIuMSAwLTQwLTE3LjktNDAtNDBsMC00OGMwLTIyLjEgMTcuOS00MCA0MC00MGw0OCAwYzIyLjEgMCA0MCAxNy45IDQwIDQwbDAgNDhjMCAyMi4xLTE3LjkgNDAtNDAgNDB6Il19LFRJdD1IcCxfSXQ9SHAsRDNlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImJvcmRlci10b3AtbGVmdCIsaWNvbjpbNDQ4LDUxMixbImJvcmRlci1zdHlsZSJdLCJmODUzIiwiTTAgNDQ4YzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJsMC0zNTIgMzUyIDBjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJMNjQgMzJDMjguNyAzMiAwIDYwLjcgMCA5NkwwIDQ0OHptMTI4IDBjMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMi0xNC4zLTMyLTMyLTMyLTMyIDE0LjMtMzIgMzJ6bTEyOCAwYzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzItMTQuMy0zMi0zMi0zMi0zMiAxNC4zLTMyIDMyem0xNjAgMzJjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzItMzIgMTQuMy0zMiAzMiAxNC4zIDMyIDMyIDMyek0zODQgMTkyYTMyIDMyIDAgMSAwIDY0IDAgMzIgMzIgMCAxIDAgLTY0IDB6bTMyIDE2MGEzMiAzMiAwIDEgMCAwLTY0IDMyIDMyIDAgMSAwIDAgNjR6Il19LExJdD1EM2UsRTNlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6Imxpc3QtdWwiLGljb246WzUxMiw1MTIsWyJsaXN0LWRvdHMiXSwiZjBjYSIsIk00OCAxNDRhNDggNDggMCAxIDAgMC05NiA0OCA0OCAwIDEgMCAwIDk2ek0xOTIgNjRjLTE3LjcgMC0zMiAxNC4zLTMyIDMyczE0LjMgMzIgMzIgMzJsMjg4IDBjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJMMTkyIDY0em0wIDE2MGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJzMTQuMyAzMiAzMiAzMmwyODggMGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMmwtMjg4IDB6bTAgMTYwYy0xNy43IDAtMzIgMTQuMy0zMiAzMnMxNC4zIDMyIDMyIDMybDI4OCAwYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMybC0yODggMHpNNDggNDY0YTQ4IDQ4IDAgMSAwIDAtOTYgNDggNDggMCAxIDAgMCA5NnpNOTYgMjU2YTQ4IDQ4IDAgMSAwIC05NiAwIDQ4IDQ4IDAgMSAwIDk2IDB6Il19LEFJdD1FM2UsREl0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InBlb3BsZS1yb2JiZXJ5IixpY29uOls1NzYsNTEyLFtdLCJlNTM2IiwiTTQ4OC4yIDU5LjFDNDc4LjEgOTkuNiA0NDEuNyAxMjggNDAwIDEyOHMtNzguMS0yOC40LTg4LjItNjguOUwzMDMgMjQuMkMyOTguOCA3LjEgMjgxLjQtMy4zIDI2NC4yIDFTMjM2LjcgMjIuNiAyNDEgMzkuOGw4LjcgMzQuOWMxMSA0NCA0MC4yIDc5LjYgNzguMyA5OS42TDMyOCA0ODBjMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMmwwLTEyOCAxNiAwIDAgMTI4YzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJsMC0zMDUuN2MzOC4xLTIwIDY3LjMtNTUuNiA3OC4zLTk5LjZMNTU5IDM5LjhjNC4zLTE3LjEtNi4xLTM0LjUtMjMuMy0zOC44UzUwMS4yIDcuMSA0OTcgMjQuMmwtOC43IDM0Ljl6TTQwMCA5NmE0OCA0OCAwIDEgMCAwLTk2IDQ4IDQ4IDAgMSAwIDAgOTZ6TTgwIDk2YTQ4IDQ4IDAgMSAwIDAtOTYgNDggNDggMCAxIDAgMCA5NnptLTggMzJjLTM1LjMgMC02NCAyOC43LTY0IDY0bDAgOTYgMCAuNiAwIDE5MS40YzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJsMC0xMjggMTYgMCAwIDEyOGMwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMybDAtMjI3LjMgMTMgMjAuNWM1LjkgOS4yIDE2LjEgMTQuOSAyNyAxNC45bDQ4IDBjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJsLTMwLjQgMC0zNy40LTU4LjlDMTU3LjYgMTQyIDEzMi4xIDEyOCAxMDQuNyAxMjhMNzIgMTI4eiJdfSxFSXQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToibW9iaWxlLWJ1dHRvbiIsaWNvbjpbMzg0LDUxMixbXSwiZjEwYiIsIk04MCAwQzQ0LjcgMCAxNiAyOC43IDE2IDY0bDAgMzg0YzAgMzUuMyAyOC43IDY0IDY0IDY0bDIyNCAwYzM1LjMgMCA2NC0yOC43IDY0LTY0bDAtMzg0YzAtMzUuMy0yOC43LTY0LTY0LTY0TDgwIDB6TTE5MiA0NjRjLTE3LjcgMC0zMi0xNC4zLTMyLTMyczE0LjMtMzIgMzItMzIgMzIgMTQuMyAzMiAzMi0xNC4zIDMyLTMyIDMyeiJdfSxWRD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJhcnJvdy1kb3duLWEteiIsaWNvbjpbNTEyLDUxMixbInNvcnQtYWxwaGEtYXNjIiwic29ydC1hbHBoYS1kb3duIl0sImYxNWQiLCJNMjMwLjYgMzkwLjZsLTgwIDgwYy0xMi41IDEyLjUtMzIuOCAxMi41LTQ1LjMgMGwtODAtODBjLTEyLjUtMTIuNS0xMi41LTMyLjggMC00NS4zczMyLjgtMTIuNSA0NS4zIDBMOTYgMzcwLjcgOTYgNjRjMC0xNy43IDE0LjMtMzIgMzItMzJzMzIgMTQuMyAzMiAzMmwwIDMwNi43IDI1LjQtMjUuNGMxMi41LTEyLjUgMzIuOC0xMi41IDQ1LjMgMHMxMi41IDMyLjggMCA0NS4zem0xODItMzQwLjljNTAuNyAxMDEuMyA3Ny4zIDE1NC43IDgwIDE2MCA3LjkgMTUuOCAxLjUgMzUtMTQuMyA0Mi45cy0zNSAxLjUtNDIuOS0xNC4zbC03LjItMTQuMy04OC40IDAtNy4yIDE0LjNjLTcuOSAxNS44LTI3LjEgMjIuMi00Mi45IDE0LjNzLTIyLjItMjcuMS0xNC4zLTQyLjljMi43LTUuMyAyOS4zLTU4LjcgODAtMTYwIDUuNC0xMC44IDE2LjUtMTcuNyAyOC42LTE3LjdzMjMuMiA2LjggMjguNiAxNy43ek0zODQgMTM1LjZsLTIwLjIgNDAuNCA0MC40IDAtMjAuMi00MC40ek0yODggMzIwYzAtMTcuNyAxNC4zLTMyIDMyLTMybDEyOCAwYzEyLjkgMCAyNC42IDcuOCAyOS42IDE5LjhzMi4yIDI1LjctNi45IDM0LjlMMzk3LjMgNDE2IDQ0OCA0MTZjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJsLTEyOCAwYy0xMi45IDAtMjQuNi03LjgtMjkuNi0xOS44cy0yLjItMjUuNyA2LjktMzQuOWw3My40LTczLjQtNTAuNyAwYy0xNy43IDAtMzItMTQuMy0zMi0zMnoiXX0sJEl0PVZELElJdD1WRCxQSXQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToibW9uZXktYmlsbCIsaWNvbjpbNTEyLDUxMixbXSwiZjBkNiIsIk02NCA2NEMyOC43IDY0IDAgOTIuNyAwIDEyOEwwIDM4NGMwIDM1LjMgMjguNyA2NCA2NCA2NGwzODQgMGMzNS4zIDAgNjQtMjguNyA2NC02NGwwLTI1NmMwLTM1LjMtMjguNy02NC02NC02NEw2NCA2NHptMTkyIDk2YTk2IDk2IDAgMSAxIDAgMTkyIDk2IDk2IDAgMSAxIDAtMTkyem0xOTIgMjRjMCA0LjQtMy42IDguMS04IDcuNS0yOS0zLjYtNTEuOS0yNi42LTU1LjUtNTUuNS0uNS00LjQgMy4xLTggNy41LThsNDggMGM0LjQgMCA4IDMuNiA4IDhsMCA0OHpNNjQgMzI4YzAtNC40IDMuNi04LjEgOC03LjUgMjkgMy42IDUxLjkgMjYuNiA1NS41IDU1LjUgLjUgNC40LTMuMSA4LTcuNSA4bC00OCAwYy00LjQgMC04LTMuNi04LThsMC00OHptOC0xMzYuNWMtNC40IC41LTgtMy4xLTgtNy41bDAtNDhjMC00LjQgMy42LTggOC04bDQ4IDBjNC40IDAgOC4xIDMuNiA3LjUgOC0zLjYgMjktMjYuNiA1MS45LTU1LjUgNTUuNXptMzY4IDEyOWM0LjQtLjUgOCAzLjEgOCA3LjVsMCA0OGMwIDQuNC0zLjYgOC04IDhsLTQ4IDBjLTQuNCAwLTguMS0zLjYtNy41LTggMy42LTI5IDI2LjYtNTEuOSA1NS41LTU1LjV6Il19LCQzZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJjaXJjbGUtbWludXMiLGljb246WzUxMiw1MTIsWyJtaW51cy1jaXJjbGUiXSwiZjA1NiIsIk0yNTYgNTEyYTI1NiAyNTYgMCAxIDAgMC01MTIgMjU2IDI1NiAwIDEgMCAwIDUxMnpNMTY4IDIzMmwxNzYgMGMxMy4zIDAgMjQgMTAuNyAyNCAyNHMtMTAuNyAyNC0yNCAyNGwtMTc2IDBjLTEzLjMgMC0yNC0xMC43LTI0LTI0czEwLjctMjQgMjQtMjR6Il19LE5JdD0kM2UsSTNlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImFycm93LXBvaW50ZXIiLGljb246WzQ0OCw1MTIsWyJtb3VzZS1wb2ludGVyIl0sImYyNDUiLCJNNzcuMyAyLjVjOC4xLTQuMSAxNy45LTMuMiAyNS4xIDIuM2wzMjAgMjM5LjljOC4zIDYuMiAxMS42IDE3IDguNCAyNi44cy0xMi40IDE2LjQtMjIuOCAxNi40bC0xNTIuMyAwIDg4LjkgMTc3LjdjNy45IDE1LjggMS41IDM1LTE0LjMgNDIuOXMtMzUgMS41LTQyLjktMTQuM2wtODguOS0xNzcuNy05MS4zIDEyMS44Yy02LjIgOC4zLTE3IDExLjYtMjYuOCA4LjRTNjQgNDM0LjMgNjQgNDI0TDY0IDI0YzAtOS4xIDUuMS0xNy40IDEzLjMtMjEuNXoiXX0sRkl0PUkzZSxQM2U9e3ByZWZpeDoiZmFzIixpY29uTmFtZToic3F1YXJlLXNoYXJlLW5vZGVzIixpY29uOls0NDgsNTEyLFsic2hhcmUtYWx0LXNxdWFyZSJdLCJmMWUxIiwiTTY0IDMyQzI4LjcgMzIgMCA2MC43IDAgOTZMMCA0MTZjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMzIwIDBjMzUuMyAwIDY0LTI4LjcgNjQtNjRsMC0zMjBjMC0zNS4zLTI4LjctNjQtNjQtNjRMNjQgMzJ6TTM2OCAxNjBjMCAzNS4zLTI4LjcgNjQtNjQgNjQtMTUuNCAwLTI5LjUtNS40LTQwLjYtMTQuNWwtODUuMyA0Ni41IDg1LjMgNDYuNWMxMS05LjEgMjUuMi0xNC41IDQwLjYtMTQuNSAzNS4zIDAgNjQgMjguNyA2NCA2NHMtMjguNyA2NC02NCA2NC02NC0yOC43LTY0LTY0YzAtMi41IC4xLTQuOSAuNC03LjNMMTU4LjUgMzAwYy0xMS43IDEyLjMtMjguMiAyMC00Ni41IDIwLTM1LjMgMC02NC0yOC43LTY0LTY0czI4LjctNjQgNjQtNjRjMTguMyAwIDM0LjggNy43IDQ2LjUgMjBsODEuOS00NC43Yy0uMy0yLjQtLjQtNC45LS40LTcuMyAwLTM1LjMgMjguNy02NCA2NC02NHM2NCAyOC43IDY0IDY0eiJdfSxPSXQ9UDNlLE4zZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJ0YWJsZS1jZWxscy1sYXJnZSIsaWNvbjpbNDQ4LDUxMixbInRoLWxhcmdlIl0sImYwMDkiLCJNMzg0IDk2bC0xMjggMCAwIDEyOCAxMjggMCAwLTEyOHptNjQgMTI4bDAgMTkyYzAgMzUuMy0yOC43IDY0LTY0IDY0TDY0IDQ4MGMtMzUuMyAwLTY0LTI4LjctNjQtNjRMMCA5NkMwIDYwLjcgMjguNyAzMiA2NCAzMmwzMjAgMGMzNS4zIDAgNjQgMjguNyA2NCA2NGwwIDEyOHpNNjQgMjg4bDAgMTI4IDEyOCAwIDAtMTI4LTEyOCAwem0xMjgtNjRsMC0xMjgtMTI4IDAgMCAxMjggMTI4IDB6bTY0IDY0bDAgMTI4IDEyOCAwIDAtMTI4LTEyOCAweiJdfSxSSXQ9TjNlLEJJdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJjYXQiLGljb246WzU3Niw1MTIsWzEyODAwOF0sImY2YmUiLCJNNjQgOTZjNTMgMCA5NiA0MyA5NiA5NmwwIDg1LjhjMjkuNy00NC43IDc3LjgtNzYuMiAxMzMuNC04NCAyNS42IDYwIDg1LjIgMTAyLjEgMTU0LjYgMTAyLjEgMTAuOSAwIDIxLjYtMS4xIDMyLTMuMUw0ODAgNDgwYzAgMTcuNy0xNC4zIDMyLTMyIDMycy0zMi0xNC4zLTMyLTMybDAtMTQwLjgtMTM2IDEwOC44IDU2IDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJsLTE0NCAwYy01MyAwLTk2LTQzLTk2LTk2bDAtMjI0YzAtMTYuNi0xMi42LTMwLjItMjguNy0zMS44bC02LjYtLjNDNDQuNiAxNTguMiAzMiAxNDQuNiAzMiAxMjggMzIgMTEwLjMgNDYuMyA5NiA2NCA5NnpNNTMzLjggMy4yQzU0NC4yLTUuNSA1NjAgMS45IDU2MCAxNS41TDU2MCAxMjhjMCA2MS45LTUwLjEgMTEyLTExMiAxMTJTMzM2IDE4OS45IDMzNiAxMjhsMC0xMTIuNWMwLTEzLjYgMTUuOC0yMSAyNi4yLTEyLjNMNDE2IDQ4IDQ4MCA0OCA1MzMuOCAzLjJ6TTQwMCAxMDhhMjAgMjAgMCAxIDAgMCA0MCAyMCAyMCAwIDEgMCAwLTQwem05NiAwYTIwIDIwIDAgMSAwIDAgNDAgMjAgMjAgMCAxIDAgMC00MHoiXX0sSEl0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImNhbGVuZGFyLXdlZWsiLGljb246WzQ0OCw1MTIsW10sImY3ODQiLCJNMTI4IDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJsMCAzMiAxMjggMCAwLTMyYzAtMTcuNyAxNC4zLTMyIDMyLTMyczMyIDE0LjMgMzIgMzJsMCAzMiAzMiAwYzM1LjMgMCA2NCAyOC43IDY0IDY0bDAgMjg4YzAgMzUuMy0yOC43IDY0LTY0IDY0TDY0IDQ4MGMtMzUuMyAwLTY0LTI4LjctNjQtNjRMMCAxMjhDMCA5Mi43IDI4LjcgNjQgNjQgNjRsMzIgMCAwLTMyYzAtMTcuNyAxNC4zLTMyIDMyLTMyem0wIDI1NmMtMTcuNyAwLTMyIDE0LjMtMzIgMzJsMCA2NGMwIDE3LjcgMTQuMyAzMiAzMiAzMmwxOTIgMGMxNy43IDAgMzItMTQuMyAzMi0zMmwwLTY0YzAtMTcuNy0xNC4zLTMyLTMyLTMybC0xOTIgMHoiXX0scUl0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImNvZGUtY29tcGFyZSIsaWNvbjpbNTEyLDUxMixbXSwiZTEzYSIsIk0xOTguOCAxLjhjOS0zLjcgMTkuMy0xLjcgMjYuMiA1LjJsNTYgNTZjOS40IDkuNCA5LjQgMjQuNiAwIDMzLjlsLTU2IDU2Yy02LjkgNi45LTE3LjIgOC45LTI2LjIgNS4yUzE4NCAxNDUuNyAxODQgMTM2bDAtMjQtMjQgMGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJsMCAyMTQuN2MyOC4zIDEyLjMgNDggNDAuNSA0OCA3My4zIDAgNDQuMi0zNS44IDgwLTgwIDgwcy04MC0zNS44LTgwLTgwYzAtMzIuOCAxOS43LTYxIDQ4LTczLjNMNjQgMTQ0YzAtNTMgNDMtOTYgOTYtOTZsMjQgMCAwLTI0YzAtOS43IDUuOC0xOC41IDE0LjgtMjIuMnpNMzkyIDgwYTI0IDI0IDAgMSAwIDQ4IDAgMjQgMjQgMCAxIDAgLTQ4IDB6bS04IDczLjNjLTI4LjMtMTIuMy00OC00MC41LTQ4LTczLjMgMC00NC4yIDM1LjgtODAgODAtODBzODAgMzUuOCA4MCA4MGMwIDMyLjgtMTkuNyA2MS00OCA3My4zTDQ0OCAzNjhjMCA1My00MyA5Ni05NiA5NmwtMjQgMCAwIDI0YzAgOS43LTUuOCAxOC41LTE0LjggMjIuMnMtMTkuMyAxLjctMjYuMi01LjJsLTU2LTU2Yy05LjQtOS40LTkuNC0yNC42IDAtMzMuOWw1Ni01NmM2LjktNi45IDE3LjItOC45IDI2LjItNS4yUzMyOCAzNjYuMyAzMjggMzc2bDAgMjQgMjQgMGMxNy43IDAgMzItMTQuMyAzMi0zMmwwLTIxNC43ek03MiA0MzJhMjQgMjQgMCAxIDAgNDggMCAyNCAyNCAwIDEgMCAtNDggMHoiXX0sakl0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImxlbyIsaWNvbjpbNTEyLDUxMixbXSwiZTg0YSIsIk0yNjAgMGM3Mi45IDAgMTMyIDU5LjEgMTMyIDEzMmwwIDUuNC0uMSAxLjQtMjMuOCAyNzBjLjQgMjEuNyAxOC4yIDM5LjIgNDAgMzkuMiAyMi4xIDAgNDAtMTcuOSA0MC00MGwwLTQwYzAtMTcuNyAxNC4zLTMyIDMyLTMyczMyIDE0LjMgMzIgMzJsMCA0MGMwIDU3LjQtNDYuNiAxMDQtMTA0IDEwNFMzMDQgNDY1LjQgMzA0IDQwOGwwLTEuNCAuMS0xLjQgMjMuOS0yNzAuNiAwLTIuNmMwLTM3LjYtMzAuNC02OC02OC02OHMtNjggMzAuNC02OCA2OGwwIDRjMCAzLjcgLjMgNy4zIC44IDExbDI5LjcgMTkzLjRjLjkgNi4xIDEuNCAxMi4yIDEuNCAxOC40bDAgOS4yYzAgNjEuOS01MC4xIDExMi0xMTIgMTEyUzAgNDI5LjkgMCAzNjggNTAuMSAyNTYgMTEyIDI1NmMxMS43IDAgMjMgMS44IDMzLjcgNS4xTDEyOS42IDE1Ni43Yy0xLjEtNi44LTEuNi0xMy44LTEuNi0yMC43bDAtNEMxMjggNTkuMSAxODcuMSAwIDI2MCAwek0xMTIgMzIwYTQ4IDQ4IDAgMSAwIDAgOTYgNDggNDggMCAxIDAgMC05NnoiXX0sVkl0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InJvYWQtY2lyY2xlLXhtYXJrIixpY29uOls2NDAsNTEyLFtdLCJlNTY2IiwiTTI4Ny45IDMybC03Ni4yIDBjLTI5LjQgMC01NS4xIDIwLjEtNjIuMSA0OC42TDY1LjQgNDIwLjVDNTcuOSA0NTAuNyA4MC44IDQ4MCAxMTIgNDgwbDIwOS40IDBjLTExLjItMjQuNC0xNy40LTUxLjQtMTcuNC04MCAwLTI4LjYgNi4yLTU1LjcgMTcuNC04MC0uNSAwLTEgMC0xLjYgMC0xNy43IDAtMzItMTQuMy0zMi0zMmwwLTY0YzAtMTcuNyAxNC4zLTMyIDMyLTMyczMyIDE0LjMgMzIgMzJsMCA0OS4yYzM1LjItNDAgODYuNy02NS4yIDE0NC4yLTY1LjIgOSAwIDE3LjggLjYgMjYuNCAxLjhsLTMyLTEyOS4yQzQ4My40IDUyLjEgNDU3LjggMzIgNDI4LjMgMzJsLTc2LjUgMCAwIDY0YzAgMTcuNy0xNC4zIDMyLTMyIDMycy0zMi0xNC4zLTMyLTMybDAtNjR6TTQ5NiA1NDRhMTQ0IDE0NCAwIDEgMCAwLTI4OCAxNDQgMTQ0IDAgMSAwIDAgMjg4em01OS4zLTE4MC43bC0zNi43IDM2LjcgMzYuNyAzNi43YzYuMiA2LjIgNi4yIDE2LjQgMCAyMi42cy0xNi40IDYuMi0yMi42IDBsLTM2LjctMzYuNy0zNi43IDM2LjdjLTYuMiA2LjItMTYuNCA2LjItMjIuNiAwcy02LjItMTYuNCAwLTIyLjZsMzYuNy0zNi43LTM2LjctMzYuN2MtNi4yLTYuMi02LjItMTYuNCAwLTIyLjZzMTYuNC02LjIgMjIuNiAwbDM2LjcgMzYuNyAzNi43LTM2LjdjNi4yLTYuMiAxNi40LTYuMiAyMi42IDBzNi4yIDE2LjQgMCAyMi42eiJdfSxVSXQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToicGFsbGV0IixpY29uOls1NzYsNTEyLFtdLCJmNDgyIiwiTTMyIDMyMGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJzMTQuMyAzMiAzMiAzMmwzMiAwIDAgNjQtMzIgMGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJzMTQuMyAzMiAzMiAzMmw1MTIgMGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMmwtMzIgMCAwLTY0IDMyIDBjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJMMzIgMzIwem05NiA2NGwxMjggMCAwIDY0LTEyOCAwIDAtNjR6bTE5MiAwbDEyOCAwIDAgNjQtMTI4IDAgMC02NHoiXX0sVUQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiY2FrZS1jYW5kbGVzIixpY29uOls0NDgsNTEyLFsxMjc4NzQsImJpcnRoZGF5LWNha2UiLCJjYWtlIl0sImYxZmQiLCJNODYuNC0xMC41TDYxLjggMzEuNkM1OCAzOC4xIDU2IDQ1LjYgNTYgNTMuMkw1NiA1NmMwIDIyLjEgMTcuOSA0MCA0MCA0MHM0MC0xNy45IDQwLTQwbDAtMi44YzAtNy42LTItMTUtNS44LTIxLjZMMTA1LjYtMTAuNWMtMi0zLjQtNS43LTUuNS05LjYtNS41cy03LjYgMi4xLTkuNiA1LjV6bTEyOCAwTDE4OS44IDMxLjZjLTMuOCA2LjUtNS44IDE0LTUuOCAyMS42bDAgMi44YzAgMjIuMSAxNy45IDQwIDQwIDQwczQwLTE3LjkgNDAtNDBsMC0yLjhjMC03LjYtMi0xNS01LjgtMjEuNkwyMzMuNi0xMC41Yy0yLTMuNC01LjctNS41LTkuNi01LjVzLTcuNiAyLjEtOS42IDUuNXpNMzE3LjggMzEuNmMtMy44IDYuNS01LjggMTQtNS44IDIxLjZsMCAyLjhjMCAyMi4xIDE3LjkgNDAgNDAgNDBzNDAtMTcuOSA0MC00MGwwLTIuOGMwLTcuNi0yLTE1LTUuOC0yMS42TDM2MS42LTEwLjVjLTItMy40LTUuNy01LjUtOS42LTUuNXMtNy42IDIuMS05LjYgNS41TDMxNy44IDMxLjZ6TTEyOCAxNjBjMC0xNy43LTE0LjMtMzItMzItMzJzLTMyIDE0LjMtMzIgMzJsMCA1My41QzI2LjcgMjI2LjYgMCAyNjIuMiAwIDMwNGwwIDIwLjhjMjAuOSAxLjMgNDEuNiA3LjMgNjAuMyAxOGw3LjEgNC4xYzI2LjMgMTUgNTguOSAxMy40IDgzLjYtNC4yIDQzLjctMzEuMiAxMDIuMy0zMS4yIDE0NiAwIDI0LjYgMTcuNiA1Ny4zIDE5LjMgODMuNiA0LjJsNy4xLTQuMWMxOC43LTEwLjcgMzkuMy0xNi43IDYwLjMtMThsMC0yMC44YzAtNDEuOC0yNi43LTc3LjQtNjQtOTAuNWwwLTUzLjVjMC0xNy43LTE0LjMtMzItMzItMzJzLTMyIDE0LjMtMzIgMzJsMCA0OC02NCAwIDAtNDhjMC0xNy43LTE0LjMtMzItMzItMzJzLTMyIDE0LjMtMzIgMzJsMCA0OC02NCAwIDAtNDh6TTQ0OCAzNzNjLTEyLjcgMS4yLTI1LjEgNS0zNi41IDExLjVsLTcuMSA0LjFjLTQyLjYgMjQuMy05NS40IDIxLjctMTM1LjMtNi44LTI3LTE5LjMtNjMuMi0xOS4zLTkwLjIgMC0zOS45IDI4LjUtOTIuNyAzMS4yLTEzNS4zIDYuOGwtNy4xLTQuMUMyNS4xIDM3OCAxMi43IDM3NC4xIDAgMzczbDAgNzVjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMzIwIDBjMzUuMyAwIDY0LTI4LjcgNjQtNjRsMC03NXoiXX0sV0l0PVVELEdJdD1VRCxZSXQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiYnVnLXNsYXNoIixpY29uOls1NzYsNTEyLFtdLCJlNDkwIiwiTTctMjQuOWM5LjQtOS40IDI0LjYtOS40IDMzLjkgMEwyNDEuOCAxNzYgMzQ0IDE3NmMxNC4yIDAgMjcuNyAyLjggNDAgOGwxMDguOC04MS42YzE0LjEtMTAuNiAzNC4yLTcuNyA0NC44IDYuNHM3LjcgMzQuMi02LjQgNDQuOGwtOTcuOCA3My4zYzUuMyA4LjkgOS4zIDE4LjcgMTEuOCAyOS4xbDk4LjggMGMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMmwtOTYgMCAwIDMyYzAgOS41LS44IDE4LjctMi40IDI3LjhMNTY5IDUwMy4xYzkuNCA5LjQgOS40IDI0LjYgMCAzMy45cy0yNC42IDkuNC0zMy45IDBMNyA5LjFDLTIuMy0uMy0yLjMtMTUuNSA3LTI0Ljl6TTM5OC4yIDQ2OGMtMjMuMiAyMi4xLTUzIDM3LjItODYuMiA0Mi4ybDAtMTI4LjQgODYuMiA4Ni4yek0yNjQgMzMzLjhsMCAxNzYuNGMtNTEuMi03LjctOTQuNS0zOS43LTExNy43LTgzLjlMODMuMiA0NzMuNmMtMTQuMSAxMC42LTM0LjIgNy43LTQ0LjgtNi40cy03LjctMzQuMiA2LjQtNDQuOGw4My40LTYyLjVjLS4xLTIuNi0uMi01LjItLjItNy45bDAtMzItOTYgMGMtMTcuNyAwLTMyLTE0LjMtMzItMzJzMTQuMy0zMiAzMi0zMmw5OC44IDBjMy4zLTEzLjkgOS4zLTI2LjcgMTcuNi0zNy44TDI2NCAzMzMuOHpNMzU1LjYgMTI4bC04Mi40IDAtNzIuMy03Mi4zQzIxNi4xIDIyLjggMjQ5LjQgMCAyODggMCAzNDEgMCAzODQgNDMgMzg0IDk2bDAgMy42YzAgMTUuNy0xMi43IDI4LjQtMjguNCAyOC40eiJdfSxaSXQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToidGFycCIsaWNvbjpbNTEyLDUxMixbXSwiZTU3YiIsIk00NDggNjRjMzUuMyAwIDY0IDI4LjcgNjQgNjRsMCAxNDkuNWMwIDE3LTYuNyAzMy4zLTE4LjcgNDUuM0wzODYuNyA0MjkuM2MtMTIgMTItMjguMyAxOC43LTQ1LjMgMTguN0w2NCA0NDhjLTM1LjMgMC02NC0yOC43LTY0LTY0TDAgMTI4QzAgOTIuNyAyOC43IDY0IDY0IDY0bDM4NCAwem01LjUgMjA4TDM2MCAyNzJjLTEzLjMgMC0yNCAxMC43LTI0IDI0bDAgOTMuNSAxMTcuNS0xMTcuNXpNOTYgMTkyYTMyIDMyIDAgMSAwIDAtNjQgMzIgMzIgMCAxIDAgMCA2NHoiXX0sWEl0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImRpYWdyYW0tcHJlZGVjZXNzb3IiLGljb246WzQ0OCw1MTIsW10sImU0NzciLCJNMjg5LjIgMTM3LjljMi41LTYgOC4zLTkuOSAxNC44LTkuOWw0MCAwIDAtMjRjMC0xMy4zLTEwLjctMjQtMjQtMjRsLTk4IDBjMS4zIDUuMSAyIDEwLjUgMiAxNmwwIDY0YzAgMzUuMy0yOC43IDY0LTY0IDY0bC05NiAwYy0zNS4zIDAtNjQtMjguNy02NC02NEwwIDk2QzAgNjAuNyAyOC43IDMyIDY0IDMybDI1NiAwYzM5LjggMCA3MiAzMi4yIDcyIDcybDAgMjQgNDAgMGM2LjUgMCAxMi4zIDMuOSAxNC44IDkuOXMxLjEgMTIuOS0zLjUgMTcuNGwtNjQgNjRjLTYuMiA2LjItMTYuNCA2LjItMjIuNiAwbC02NC02NGMtNC42LTQuNi01LjktMTEuNS0zLjUtMTcuNHpNMzg0IDM1MmwtMzIwIDAgMCA2NCAzMjAgMCAwLTY0em02NCA2NGMwIDM1LjMtMjguNyA2NC02NCA2NEw2NCA0ODBjLTM1LjMgMC02NC0yOC43LTY0LTY0bDAtNjRjMC0zNS4zIDI4LjctNjQgNjQtNjRsMzIwIDBjMzUuMyAwIDY0IDI4LjcgNjQgNjRsMCA2NHoiXX0sRjNlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImZhY2UtZmx1c2hlZCIsaWNvbjpbNTEyLDUxMixbMTI4NTYzLCJmbHVzaGVkIl0sImY1NzkiLCJNMCAyNTZhMjU2IDI1NiAwIDEgMSA1MTIgMCAyNTYgMjU2IDAgMSAxIC01MTIgMHpNMTY4IDM5MmMwIDEzLjMgMTAuNyAyNCAyNCAyNGwxMjggMGMxMy4zIDAgMjQtMTAuNyAyNC0yNHMtMTAuNy0yNC0yNC0yNGwtMTI4IDBjLTEzLjMgMC0yNCAxMC43LTI0IDI0em0tOC05NmE3MiA3MiAwIDEgMCAwLTE0NCA3MiA3MiAwIDEgMCAwIDE0NHptMjY0LTcyYTcyIDcyIDAgMSAwIC0xNDQgMCA3MiA3MiAwIDEgMCAxNDQgMHptLTI4OCAwYTI0IDI0IDAgMSAxIDQ4IDAgMjQgMjQgMCAxIDEgLTQ4IDB6bTE5MiAwYTI0IDI0IDAgMSAxIDQ4IDAgMjQgMjQgMCAxIDEgLTQ4IDB6Il19LFFJdD1GM2UsSkl0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImRpYWdyYW0tbmV4dCIsaWNvbjpbNDQ4LDUxMixbXSwiZTQ3NiIsIk0zODQgMjI0YzM1LjMgMCA2NC0yOC43IDY0LTY0bDAtNjRjMC0zNS4zLTI4LjctNjQtNjQtNjRMNjQgMzJDMjguNyAzMiAwIDYwLjcgMCA5NmwwIDY0YzAgMzUuMyAyOC43IDY0IDY0IDY0bDEyOCAwIDAgNjQtMzIgMGMtNi41IDAtMTIuMyAzLjktMTQuOCA5LjlzLTEuMSAxMi45IDMuNSAxNy40bDY0IDY0YzYuMiA2LjIgMTYuNCA2LjIgMjIuNiAwbDY0LTY0YzQuNi00LjYgNS45LTExLjUgMy41LTE3LjRTMjk0LjUgMjg4IDI4OCAyODhsLTMyIDAgMC02NCAxMjggMHpNNjQgMjg4Yy0zNS4zIDAtNjQgMjguNy02NCA2NGwwIDY0YzAgMzUuMyAyOC43IDY0IDY0IDY0bDMyMCAwYzM1LjMgMCA2NC0yOC43IDY0LTY0bDAtNjRjMC0zNS4zLTI4LjctNjQtNjQtNjRsLTM0IDBjNS42IDIxLjctLjUgNDUuMS0xNi43IDYxLjNsLTY0IDY0Yy0yNSAyNS02NS41IDI1LTkwLjUgMGwtNjQtNjRDOTguNiAzMzMuMSA5Mi40IDMwOS43IDk4IDI4OGwtMzQgMHoiXX0sS0l0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImFuY2hvci1jaXJjbGUteG1hcmsiLGljb246WzY0MCw1MTIsW10sImU0YWMiLCJNMzIwLjUgOTZhMzIgMzIgMCAxIDEgLTY0IDAgMzIgMzIgMCAxIDEgNjQgMHptLTMyLTk2Yy01MyAwLTk2IDQzLTk2IDk2IDAgNDEuOCAyNi43IDc3LjQgNjQgOTAuNWwwIDI1Ny45Yy02Mi45LTE0LjMtMTEwLjItNjkuNy0xMTEuOS0xMzYuNWwxNi4xIDE0LjFjMTAgOC43IDI1LjEgNy43IDMzLjktMi4zczcuNy0yNS4xLTIuMy0zMy45bC02NC01NmMtOS03LjktMjIuNi03LjktMzEuNiAwbC02NCA1NmMtMTAgOC43LTExIDIzLjktMi4zIDMzLjlzMjMuOSAxMSAzMy45IDIuM2wxNi4yLTE0LjJjMi4xIDExMy4xIDk0LjQgMjA0LjEgMjA4IDIwNC4xIDE2LjYgMCAzMi43LTEuOSA0OC4yLTUuNi0yMC4zLTMwLjUtMzIuMi02Ny0zMi4yLTEwNi40IDAtMjcuMyA1LjctNTMuMyAxNi03Ni45bDAtMTM2LjZjMzcuMy0xMy4yIDY0LTQ4LjcgNjQtOTAuNSAwLTUzLTQzLTk2LTk2LTk2em0yMDggNTQ0YTE0NCAxNDQgMCAxIDAgMC0yODggMTQ0IDE0NCAwIDEgMCAwIDI4OHptNTkuMy0xODAuN2wtMzYuNyAzNi43IDM2LjcgMzYuN2M2LjIgNi4yIDYuMiAxNi40IDAgMjIuNnMtMTYuNCA2LjItMjIuNiAwbC0zNi43LTM2LjctMzYuNyAzNi43Yy02LjIgNi4yLTE2LjQgNi4yLTIyLjYgMHMtNi4yLTE2LjQgMC0yMi42bDM2LjctMzYuNy0zNi43LTM2LjdjLTYuMi02LjItNi4yLTE2LjQgMC0yMi42czE2LjQtNi4yIDIyLjYgMGwzNi43IDM2LjcgMzYuNy0zNi43YzYuMi02LjIgMTYuNC02LjIgMjIuNiAwczYuMiAxNi40IDAgMjIuNnoiXX0sZVB0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InBlcnNvbi1jaXJjbGUteG1hcmsiLGljb246WzY0MCw1MTIsW10sImU1NDMiLCJNMjgwIDI0YTU2IDU2IDAgMSAwIC0xMTIgMCA1NiA1NiAwIDEgMCAxMTIgMHptMjQgMjEyLjdMMzQxIDI4Ni42YzEyLjgtMTcuNSAyOC41LTMyLjcgNDYuMy00NWwtNTYuMi03NS43QzMwNiAxMzIgMjY2LjMgMTEyIDIyNCAxMTJzLTgyIDIwLTEwNy4yIDUzLjlsLTcwLjUgOTVjLTEwLjUgMTQuMi03LjYgMzQuMiA2LjYgNDQuOHMzNC4yIDcuNiA0NC44LTYuNkwxNDQgMjM2LjcgMTQ0IDUxMmMwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMybDAtMTYwYzAtOC44IDcuMi0xNiAxNi0xNnMxNiA3LjIgMTYgMTZsMCAxNjBjMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMmwwLTI3NS4zek00OTYgNTQ0YTE0NCAxNDQgMCAxIDAgMC0yODggMTQ0IDE0NCAwIDEgMCAwIDI4OHptMjIuNi0xNDRsMzYuNyAzNi43YzYuMiA2LjIgNi4yIDE2LjQgMCAyMi42cy0xNi40IDYuMi0yMi42IDBsLTM2LjctMzYuNy0zNi43IDM2LjdjLTYuMiA2LjItMTYuNCA2LjItMjIuNiAwcy02LjItMTYuNCAwLTIyLjZsMzYuNy0zNi43LTM2LjctMzYuN2MtNi4yLTYuMi02LjItMTYuNCAwLTIyLjZzMTYuNC02LjIgMjIuNiAwbDM2LjcgMzYuNyAzNi43LTM2LjdjNi4yLTYuMiAxNi40LTYuMiAyMi42IDBzNi4yIDE2LjQgMCAyMi42TDUxOC42IDQwMHoiXX0sdFB0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InNwYSIsaWNvbjpbNTc2LDUxMixbXSwiZjViYiIsIk0xNjkuNyAyMjcuNWMzNC4zIDE4LjcgNjQuNSA0NC4xIDg4LjggNzQuNSAxMS4xIDEzLjkgMjEgMjguOSAyOS40IDQ0LjggOC41LTE1LjkgMTguMy0zMC44IDI5LjQtNDQuOCAyNC4zLTMwLjUgNTQuNS01NS45IDg4LjgtNzQuNSA0MS43LTIyLjcgODkuNC0zNS41IDEzOS43LTM1LjVsOS45IDBjMTEuMSAwIDIwLjEgOSAyMC4xIDIwLjEgMCAxNDgtMTE5LjkgMjY3LjktMjY3LjkgMjY3LjlsLTQwLjIgMEMxMTkuOSA0ODAgMCAzNjAuMSAwIDIxMi4xIDAgMjAxIDkgMTkyIDIwLjEgMTkybDkuOSAwYzUwLjQgMCA5OC4xIDEyLjggMTM5LjcgMzUuNXpNMzAzLjkgMzhjMTYuOSAxNS45IDYxLjQgNjMuNCA4OSAxNDIuMy00MC4xIDIwLjItNzUuOCA0OC4yLTEwNC45IDgyLjEtMjkuMi0zMy45LTY0LjgtNjEuOC0xMDQuOS04Mi4xIDI3LjYtNzguOSA3Mi4yLTEyNi40IDg5LTE0Mi4zIDQuMy00LjEgMTAtNiAxNS45LTZzMTEuNiAyIDE1LjkgNnoiXX0sclB0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImFyaWVzIixpY29uOls1MTIsNTEyLFtdLCJlODQ2IiwiTTQwMS42IDBjNjEuMyAwIDExMC40IDUwLjMgMTEwLjQgMTExIDAgMjkuNC0xMS42IDU3LjktMzIuNiA3OC44bC04LjggOC44Yy0xMi41IDEyLjUtMzIuOCAxMi41LTQ1LjIgMHMtMTIuNS0zMi44IDAtNDUuMmw4LjgtOC44YzguOC04LjggMTMuOC0yMSAxMy44LTMzLjYgMC0yNS45LTIxLjEtNDctNDYuNC00Ny0yMi41IDAtNDEuNyAxNi4xLTQ1LjcgMzguMkwyODcuNSA0ODUuNmMwIC4xLS4xIC4zLS4xIC40LS4yIC44LS4zIDEuNi0uNSAyLjMtLjEgLjMtLjEgLjUtLjIgLjctLjIgLjYtLjQgMS4zLS43IDEuOS0uMiAuNS0uNCAxLS42IDEuNS0uMSAuMy0uMyAuNi0uNCAuOS0xLjYgMy41LTMuOCA2LjUtNi40IDkuMi0yIDItNC4yIDMuNy02LjYgNS4xLS4yIC4xLS4zIC4yLS41IC4zLS43IC40LTEuNCAuNy0yLjEgMS0uMyAuMS0uNiAuMy0uOSAuNC0uNSAuMi0xIC40LTEuNSAuNi0uNiAuMi0xLjIgLjUtMS45IC43LS4yIC4xLS41IC4yLS43IC4yLS44IC4yLTEuNiAuNC0yLjMgLjUtLjIgMC0uMyAuMS0uNCAuMS0uMiAwLS40IDAtLjYgLjEtLjcgLjEtMS4zIC4yLTIgLjItLjQgMC0uOCAuMS0xLjIgLjEtLjYgMC0xLjIgLjEtMS44IC4xLS42IDAtMS4yIDAtMS44LS4xLS40IDAtLjgtLjEtMS4yLS4xLS43LS4xLTEuNC0uMS0yLS4yLS4yIDAtLjQgMC0uNi0uMS0uMiAwLS4zLS4xLS41LS4xLS44LS4yLTEuNi0uMy0yLjMtLjUtLjMtLjEtLjUtLjEtLjgtLjItLjYtLjItMS4zLS40LTEuOS0uNy0uNS0uMi0xLS40LTEuNS0uNi0uMy0uMS0uNi0uMy0uOS0uNC0uNy0uMy0xLjQtLjctMi4xLTEtLjItLjEtLjMtLjItLjUtLjMtMi40LTEuNC00LjctMy4xLTYuNi01LjEtMi42LTIuNi00LjgtNS43LTYuNC05LjItLjEtLjItLjItLjMtLjItLjVsLS41LTEuMWMtLjEtLjMtLjItLjUtLjMtLjgtLjItLjYtLjUtMS4yLS43LTEuOS0uMS0uMi0uMi0uNS0uMi0uNy0uMi0uOC0uNC0xLjYtLjUtMi4zIDAtLjEtLjEtLjMtLjEtLjRMMTU2IDEwMi4yYy00LTIyLjEtMjMuMi0zOC4yLTQ1LjctMzguMi0yNS4zIDAtNDYuNCAyMS4xLTQ2LjQgNDcgMCAxMi42IDUgMjQuOCAxMy44IDMzLjZsOC44IDguOGMxMi41IDEyLjUgMTIuNSAzMi44IDAgNDUuMnMtMzIuOCAxMi41LTQ1LjIgMGwtOC44LTguOEMxMS42IDE2OC45IDAgMTQwLjMgMCAxMTEgMCA1MC4zIDQ5LjEgMCAxMTAuNCAwIDE2My44IDAgMjA5LjYgMzguMyAyMTkgOTFsMzcgMjA3IDM3LTIwN2M5LjQtNTIuNiA1NS4yLTkxIDEwOC43LTkxeiJdfSxPM2U9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiYmFycy1wcm9ncmVzcyIsaWNvbjpbNDQ4LDUxMixbInRhc2tzLWFsdCJdLCJmODI4IiwiTTI4OCAxNjBsOTYgMCAwLTY0LTk2IDAgMCA2NHpNMCAxNjBMMCA4MEMwIDUzLjUgMjEuNSAzMiA0OCAzMmwzNTIgMGMyNi41IDAgNDggMjEuNSA0OCA0OGwwIDk2YzAgMjYuNS0yMS41IDQ4LTQ4IDQ4TDQ4IDIyNGMtMjYuNSAwLTQ4LTIxLjUtNDgtNDhsMC0xNnpNMTYwIDQxNmwyMjQgMCAwLTY0LTIyNCAwIDAgNjR6TTAgNDE2bDAtODBjMC0yNi41IDIxLjUtNDggNDgtNDhsMzUyIDBjMjYuNSAwIDQ4IDIxLjUgNDggNDhsMCA5NmMwIDI2LjUtMjEuNSA0OC00OCA0OEw0OCA0ODBjLTI2LjUgMC00OC0yMS41LTQ4LTQ4bDAtMTZ6Il19LGlQdD1PM2UsYVB0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImhlYXJ0LWNpcmNsZS1jaGVjayIsaWNvbjpbNTc2LDUxMixbXSwiZTRmZCIsIk0yNDEgODcuMWwxNSAyMC43IDE1LTIwLjdDMjk2IDUyLjUgMzM2LjIgMzIgMzc4LjkgMzIgNDUyLjQgMzIgNTEyIDkxLjYgNTEyIDE2NS4xbDAgMi42YzAgMTcuNi0zLjQgMzUuNi05LjUgNTMuNy0yMS44LTguNi00NS42LTEzLjQtNzAuNS0xMy40LTEwNiAwLTE5MiA4Ni0xOTIgMTkyIDAgMjguNSA2LjIgNTUuNiAxNy40IDgwLS41IDAtLjkgMC0xLjQgMC0xNS41IDAtMzAuOC00LjYtNDMuMS0xNC4xLTczLTU1LjctMjEyLjktMTg2LTIxMi45LTI5OC4ybDAtMi42QzAgOTEuNiA1OS42IDMyIDEzMy4xIDMyIDE3NS44IDMyIDIxNiA1Mi41IDI0MSA4Ny4xek0yODggNDAwYTE0NCAxNDQgMCAxIDEgMjg4IDAgMTQ0IDE0NCAwIDEgMSAtMjg4IDB6bTIwMS40LTYwLjljLTcuMS01LjItMTcuMi0zLjYtMjIuNCAzLjVsLTUzIDcyLjktMjYuOC0yNi44Yy02LjItNi4yLTE2LjQtNi4yLTIyLjYgMHMtNi4yIDE2LjQgMCAyMi42bDQwIDQwYzMuMyAzLjMgNy45IDUgMTIuNiA0LjZzOC45LTIuOCAxMS43LTYuNWw2NC04OGM1LjItNy4xIDMuNi0xNy4yLTMuNS0yMi4zeiJdfSxSM2U9e3ByZWZpeDoiZmFzIixpY29uTmFtZToibWFycy1zdHJva2UtcmlnaHQiLGljb246WzY0MCw1MTIsWzk4OTcsIm1hcnMtc3Ryb2tlLWgiXSwiZjIyYiIsIk0zMjAuNSAyNTZhMTEyIDExMiAwIDEgMCAtMjI0IDAgMTEyIDExMiAwIDEgMCAyMjQgMHpNMjA4LjUgODBjODYuMyAwIDE1OC4xIDYyLjEgMTczLjEgMTQ0LjEgMS0uMSAxLjktLjEgMi45LS4xbDE2IDAgMC0zMmMwLTE3LjcgMTQuMy0zMiAzMi0zMnMzMiAxNC4zIDMyIDMybDAgMzIgNjEuNCAwLTIyLjQtMjhjLTExLTEzLjgtOC44LTMzLjkgNS00NXMzMy45LTguOCA0NSA1bDY0IDgwYzkuMyAxMS43IDkuMyAyOC4zIDAgNDBsLTY0IDgwYy0xMSAxMy44LTMxLjIgMTYtNDUgNXMtMTYtMzEuMi01LTQ1bDIyLjQtMjgtNjEuNCAwIDAgMzJjMCAxNy43LTE0LjMgMzItMzIgMzJzLTMyLTE0LjMtMzItMzJsMC0zMi0xNiAwYy0xIDAtMS45IDAtMi45LS4xLTE1IDgyLTg2LjggMTQ0LjEtMTczLjEgMTQ0LjEtOTcuMiAwLTE3Ni03OC44LTE3Ni0xNzZzNzguOC0xNzYgMTc2LTE3NnoiXX0sblB0PVIzZSxvUHQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToidG93ZXItb2JzZXJ2YXRpb24iLGljb246WzQ0OCw1MTIsW10sImU1ODYiLCJNMjA5LjcgMy40YzktNC41IDE5LjYtNC41IDI4LjYgMGwxNjAgODBjMTUuOCA3LjkgMjIuMiAyNy4xIDE0LjMgNDIuOS01LjYgMTEuMi0xNi45IDE3LjctMjguNiAxNy43bDAgODBjMCAxNy43LTE0LjMgMzItMzIgMzJsLTEzIDAgMzIgMTkyIDQ1IDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJMMzIgNTEyYy0xNy43IDAtMzItMTQuMy0zMi0zMnMxNC4zLTMyIDMyLTMybDQ1IDAgMzItMTkyLTEzIDBjLTE3LjcgMC0zMi0xNC4zLTMyLTMybDAtODBjLTExLjcgMC0yMy02LjUtMjguNi0xNy43LTcuOS0xNS44LTEuNS0zNSAxNC4zLTQyLjlsMTYwLTgwek0zMTAuNyA0NDhsLTg2LjctNjEuOS04Ni43IDYxLjkgMTczLjQgMHptLTE1My0xOTJsLTMuNSAyMS4yIDY5LjkgNDkuOSA2OS45LTQ5LjktMy41LTIxLjItMTMyLjcgMHptLTEyLjMgNzMuOWwtMTAuMSA2MC42IDQ3LjUtMzMuOS0zNy40LTI2Ljd6bTExOS45IDI2LjdsNDcuNSAzMy45LTEwLjEtNjAuNi0zNy40IDI2Ljd6TTE1MiAxMjhjLTEzLjMgMC0yNCAxMC43LTI0IDI0czEwLjcgMjQgMjQgMjRsMTQ0IDBjMTMuMyAwIDI0LTEwLjcgMjQtMjRzLTEwLjctMjQtMjQtMjRsLTE0NCAweiJdfSxXRD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJzdGVybGluZy1zaWduIixpY29uOlszODQsNTEyLFsxNjMsImdicCIsInBvdW5kLXNpZ24iXSwiZjE1NCIsIk05MS4zIDI4OGwtMzQuOCAwYy0xMy4zIDAtMjQtMTAuNy0yNC0yNHMxMC43LTI0IDI0LTI0bDIxLjQgMEMzNy4zIDE0Ny4zIDEwNS4xIDQyIDIwNy42IDQybDguMiAwYzMzLjYgMCA2Ni4yIDExLjMgOTIuNSAzMi4ybDE2LjEgMTIuN2MxMy45IDExIDE2LjIgMzEuMSA1LjIgNDVzLTMxLjEgMTYuMi00NSA1LjJsLTE2LjEtMTIuN2MtMTUtMTEuOS0zMy42LTE4LjQtNTIuOC0xOC40bC04LjIgMGMtNTcuMyAwLTk0LjcgNTkuOS02OS43IDExMS40IDMuNiA3LjQgNi42IDE0LjkgOS4xIDIyLjZsMTQ5LjUgMGMxMy4zIDAgMjQgMTAuNyAyNCAyNHMtMTAuNyAyNC0yNCAyNGwtMTQxLjIgMGMxIDM1LjMtOC43IDcwLjYtMjguOSAxMDAuOWwtMTguMSAyNy4xIDIxMi4yIDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJsLTI3MiAwYy0xMS44IDAtMjIuNi02LjUtMjguMi0xNi45cy01LTIzIDEuNi0zMi45bDUxLjItNzYuOGMxMy4xLTE5LjYgMTkuMi00Mi42IDE4LjItNjUuNHoiXX0sc1B0PVdELGxQdD1XRCxjUHQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZmF1Y2V0LWRyaXAiLGljb246WzUxMiw1MTIsWzEyODY4OF0sImUwMDYiLCJNMjI0IDMyYy0xNy43IDAtMzIgMTQuMy0zMiAzMkw5NiA2NEM3OC4zIDY0IDY0IDc4LjMgNjQgOTZzMTQuMyAzMiAzMiAzMmw5NiAwIDAgNjQtMTguNyAwYy04LjUgMC0xNi42IDMuNC0yMi42IDkuNEwxMjggMjI0IDMyIDIyNGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJsMCA2NGMwIDE3LjcgMTQuMyAzMiAzMiAzMmwxMDAuMSAwYzIwLjIgMjkgNTMuOSA0OCA5MS45IDQ4czcxLjctMTkgOTEuOS00OGwzNi4xIDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJzMTQuMyAzMiAzMiAzMmw2NCAwYzE3LjcgMCAzMi0xNC4zIDMyLTMyIDAtODguNC03MS42LTE2MC0xNjAtMTYwbC0zMiAwLTIyLjYtMjIuNmMtNi02LTE0LjEtOS40LTIyLjYtOS40bC0xOC43IDAgMC02NCA5NiAwYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMybC05NiAwYzAtMTcuNy0xNC4zLTMyLTMyLTMyek00MzYuOCA0NTUuNGwtMTguMiA0Mi40Yy0xLjggNC4xLTIuNyA4LjYtMi43IDEzLjFsMCAxLjJjMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMmwwLTEuMmMwLTQuNS0uOS04LjktMi43LTEzLjFsLTE4LjItNDIuNGMtMS45LTQuNS02LjMtNy40LTExLjItNy40cy05LjIgMi45LTExLjIgNy40eiJdfSxhYj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJjaXJjbGUtaW5mbyIsaWNvbjpbNTEyLDUxMixbImluZm8tY2lyY2xlIl0sImYwNWEiLCJNMjU2IDUxMmEyNTYgMjU2IDAgMSAwIDAtNTEyIDI1NiAyNTYgMCAxIDAgMCA1MTJ6TTIyNCAxNjBhMzIgMzIgMCAxIDEgNjQgMCAzMiAzMiAwIDEgMSAtNjQgMHptLTggNjRsNDggMGMxMy4zIDAgMjQgMTAuNyAyNCAyNGwwIDg4IDggMGMxMy4zIDAgMjQgMTAuNyAyNCAyNHMtMTAuNyAyNC0yNCAyNGwtODAgMGMtMTMuMyAwLTI0LTEwLjctMjQtMjRzMTAuNy0yNCAyNC0yNGwyNCAwIDAtNjQtMjQgMGMtMTMuMyAwLTI0LTEwLjctMjQtMjRzMTAuNy0yNCAyNC0yNHoiXX0sZFB0PWFiLHVQdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJmZWF0aGVyIixpY29uOls1MTIsNTEyLFsxMjk3MThdLCJmNTJkIiwiTTM1MiAwYzQxIDAgODAuMyAxNi4zIDEwOS4yIDQ1LjJsNS41IDUuNWMyOSAyOSA0NS4zIDY4LjMgNDUuMyAxMDkuMiAwIDI0LjEtNS43IDQ3LjYtMTYuMiA2OC44LTEuOSAzLjctNS4zIDYuNS05LjMgNy43TDM3NC41IDI3MGMtMy45IDEuMi02LjUgNC43LTYuNSA4LjggMCA1LjEgNC4xIDkuMiA5LjIgOS4ybDMyLjIgMGMxNC4zIDAgMjEuNCAxNy4yIDExLjMgMjcuM2wtMjIuNCAyMi40Yy0xLjkgMS45LTQuMiAzLjItNi43IDRsLTgxIDI0LjNjLTMuOSAxLjItNi41IDQuNy02LjUgOC44IDAgNS4xIDQuMSA5LjIgOS4yIDkuMiAxMy4yIDAgMTguOSAxNS43IDcuOCAyMi45LTQxLjEgMjYuNi04OS4zIDQxLjEtMTM5IDQxLjFsLTg2IDAtNDggNDhjLTguOCA4LjgtMjMuMiA4LjgtMzIgMHMtOC44LTIzLjIgMC0zMkwyNTYgMjI0YzguOC04LjggOC44LTIzLjIgMC0zMnMtMjMuMi04LjgtMzIgMEw3OS41IDMzNi41Yy01LjcgNS43LTE1LjUgMS43LTE1LjUtNi40IDAtNjcuOSAyNy0xMzMgNzUtMTgxTDI0Mi44IDQ1LjJDMjcxLjcgMTYuMyAzMTEgMCAzNTIgMHoiXX0scFB0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImJvd2wtcmljZSIsaWNvbjpbNTEyLDUxMixbXSwiZTJlYiIsIk0xNzYgNDBjMC0xMy4zIDEwLjctMjQgMjQtMjRsMTYgMGMxMy4zIDAgMjQgMTAuNyAyNCAyNHMtMTAuNyAyNC0yNCAyNGwtMTYgMGMtMTMuMyAwLTI0LTEwLjctMjQtMjR6bTI0IDQ4bDE2IDBjMTMuMyAwIDI0IDEwLjcgMjQgMjRzLTEwLjcgMjQtMjQgMjRsLTE2IDBjLTEzLjMgMC0yNC0xMC43LTI0LTI0czEwLjctMjQgMjQtMjR6TTU2IDE2MGwxNiAwYzEzLjMgMCAyNCAxMC43IDI0IDI0cy0xMC43IDI0LTI0IDI0bC0xNiAwYy0xMy4zIDAtMjQtMTAuNy0yNC0yNHMxMC43LTI0IDI0LTI0ek0wIDI4My40QzAgMjY4LjMgMTIuMyAyNTYgMjcuNCAyNTZsNDU3LjEgMGMxNS4xIDAgMjcuNCAxMi4zIDI3LjQgMjcuNCAwIDcwLjUtNDQuNCAxMzAuNy0xMDYuNyAxNTQuMUw0MDMuNSA0NTJjLTIgMTYtMTUuNiAyOC0zMS44IDI4bC0yMzEuNSAwYy0xNi4xIDAtMjkuOC0xMi0zMS44LTI4bC0xLjgtMTQuNEM0NC40IDQxNC4xIDAgMzUzLjkgMCAyODMuNHpNMjI0IDE4NGMwLTEzLjMgMTAuNy0yNCAyNC0yNGwxNiAwYzEzLjMgMCAyNCAxMC43IDI0IDI0cy0xMC43IDI0LTI0IDI0bC0xNiAwYy0xMy4zIDAtMjQtMTAuNy0yNC0yNHptLTk2IDBjMC0xMy4zIDEwLjctMjQgMjQtMjRsMTYgMGMxMy4zIDAgMjQgMTAuNyAyNCAyNHMtMTAuNyAyNC0yNCAyNGwtMTYgMGMtMTMuMyAwLTI0LTEwLjctMjQtMjR6TTEwNCA4OGwxNiAwYzEzLjMgMCAyNCAxMC43IDI0IDI0cy0xMC43IDI0LTI0IDI0bC0xNiAwYy0xMy4zIDAtMjQtMTAuNy0yNC0yNHMxMC43LTI0IDI0LTI0em0yMTYgOTZjMC0xMy4zIDEwLjctMjQgMjQtMjRsMTYgMGMxMy4zIDAgMjQgMTAuNyAyNCAyNHMtMTAuNyAyNC0yNCAyNGwtMTYgMGMtMTMuMyAwLTI0LTEwLjctMjQtMjR6TTI5NiA4OGwxNiAwYzEzLjMgMCAyNCAxMC43IDI0IDI0cy0xMC43IDI0LTI0IDI0bC0xNiAwYy0xMy4zIDAtMjQtMTAuNy0yNC0yNHMxMC43LTI0IDI0LTI0em0xMjAgOTZjMC0xMy4zIDEwLjctMjQgMjQtMjRsMTYgMGMxMy4zIDAgMjQgMTAuNyAyNCAyNHMtMTAuNyAyNC0yNCAyNGwtMTYgMGMtMTMuMyAwLTI0LTEwLjctMjQtMjR6TTM5MiA4OGwxNiAwYzEzLjMgMCAyNCAxMC43IDI0IDI0cy0xMC43IDI0LTI0IDI0bC0xNiAwYy0xMy4zIDAtMjQtMTAuNy0yNC0yNHMxMC43LTI0IDI0LTI0ek0yOTYgMTZsMTYgMGMxMy4zIDAgMjQgMTAuNyAyNCAyNHMtMTAuNyAyNC0yNCAyNGwtMTYgMGMtMTMuMyAwLTI0LTEwLjctMjQtMjRzMTAuNy0yNCAyNC0yNHoiXX0sQjNlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InN0YXItaGFsZi1zdHJva2UiLGljb246WzU3Niw1MTIsWyJzdGFyLWhhbGYtYWx0Il0sImY1YzAiLCJNMjg4LjEgMzUzLjZjMTAgMCAxOS45IDIuMyAyOSA3bDc0LjQgMzcuOS0xMy04Mi41Yy0zLjItMjAuMiAzLjUtNDAuNyAxNy45LTU1LjJsNTktNTkuMS04Mi41LTEzLjFjLTIwLjItMy4yLTM3LjctMTUuOS00Ny0zNC4xbC0zOC03NC40IDAgMjczLjZ6TTQ1Ny40IDQ4OWMtNy4zIDUuMy0xNyA2LjEtMjUgMkwyODguMSA0MTcuNiAxNDMuOCA0OTFjLTggNC4xLTE3LjcgMy4zLTI1LTJzLTExLTE0LjItOS42LTIzLjJMMTM0LjQgMzA1LjkgMjAgMTkxLjRjLTYuNC02LjQtOC42LTE1LjgtNS44LTI0LjRzMTAuMS0xNC45IDE5LjEtMTYuM2wxNTkuOS0yNS40IDczLjYtMTQ0LjJjNC4xLTggMTIuNC0xMy4xIDIxLjQtMTMuMXMxNy4zIDUuMSAyMS40IDEzLjFMMzgzIDEyNS4zIDU0Mi45IDE1MC43YzguOSAxLjQgMTYuMyA3LjcgMTkuMSAxNi4zcy41IDE4LTUuOCAyNC40TDQ0MS43IDMwNS45IDQ2NyA0NjUuOGMxLjQgOC45LTIuMyAxNy45LTkuNiAyMy4yeiJdfSxoUHQ9QjNlLEgzZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJ0ZW1wZXJhdHVyZS1hcnJvdy1kb3duIixpY29uOls1MTIsNTEyLFsidGVtcGVyYXR1cmUtZG93biJdLCJlMDNmIiwiTTY0LjUgOTZjMC01MyA0My05NiA5Ni05NnM5NiA0MyA5NiA5NmwwIDE2NC43YzI5LjUgMjYuNCA0OCA2NC43IDQ4IDEwNy4zIDAgNzkuNS02NC41IDE0NC0xNDQgMTQ0cy0xNDQtNjQuNS0xNDQtMTQ0YzAtNDIuNiAxOC41LTgxIDQ4LTEwNy4zTDY0LjUgOTZ6bTk2IDMzNmMzNS4zIDAgNjQtMjguNyA2NC02NCAwLTI2LjktMTYuNS00OS45LTQwLTU5LjNsMC0yOC43YzAtMTMuMy0xMC43LTI0LTI0LTI0cy0yNCAxMC43LTI0IDI0bDAgMjguN2MtMjMuNSA5LjUtNDAgMzIuNS00MCA1OS4zIDAgMzUuMyAyOC43IDY0IDY0IDY0ek00MzkuMSAzMTAuNmMtNiA2LTE0LjEgOS40LTIyLjYgOS40cy0xNi42LTMuNC0yMi42LTkuNGwtNjQtNjRjLTEyLjUtMTIuNS0xMi41LTMyLjggMC00NS4zczMyLjgtMTIuNSA0NS4zIDBsOS40IDkuNCAwLTE3OC43YzAtMTcuNyAxNC4zLTMyIDMyLTMyczMyIDE0LjMgMzIgMzJsMCAxNzguNyA5LjQtOS40YzEyLjUtMTIuNSAzMi44LTEyLjUgNDUuMyAwczEyLjUgMzIuOCAwIDQ1LjNsLTY0IDY0eiJdfSxmUHQ9SDNlLG1QdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJtYXNrLXZlbnRpbGF0b3IiLGljb246WzY0MCw1MTIsW10sImU1MjQiLCJNMTUyLjIgMTkyYy0xNS40IDM4LjMtMjQuMiA3Ny4yLTI0LjIgMTA4LjggMCAxMy4zIDEuNSAyNi4yIDQuNCAzOC43bC0xNy0zLjRjLTI5LjktNi01MS40LTMyLjItNTEuNC02Mi44bDAtODEuMyA4OC4yIDB6bTMyLjktNjRMNjQgMTI4Yy0zNS4zIDAtNjQgMjguNy02NCA2NGwwIDgxLjNjMCA2MSA0My4xIDExMy41IDEwMi45IDEyNS41bDY2LjMgMTMuM2MxOC43IDIyLjEgNDIuOSA0MCA3MC44IDUxLjhsMC04Ny44Yy0xMC4xLTE0LjItMTYtMzEuMy0xNi00OS43IDAtNDkuNSA0My0xMzQuNCA5Ni0xMzQuNCA1Mi41IDAgOTYgODQuOSA5NiAxMzQuNCAwIDE4LjQtNS45IDM1LjQtMTYgNDkuNmwwIDg3LjdjMjcuNi0xMS44IDUxLjctMjkuNiA3MC40LTUxLjZsNjYuNy0xMy4zYzU5LjgtMTIgMTAyLjktNjQuNSAxMDIuOS0xMjUuNWwwLTgxLjNjMC0zNS4zLTI4LjctNjQtNjQtNjRsLTEyMS41IDBjLTM0LjgtNTQuMi04Mi41LTk2LTEzNC41LTk2LTUyLjYgMC0xMDAuMiA0MS44LTEzNC45IDk2em0zMDIuNSA2NGw4OC40IDAgMCA4MS4zYzAgMzAuNS0yMS41IDU2LjgtNTEuNCA2Mi44bC0xNyAzLjRjMi45LTEyLjQgNC41LTI1LjQgNC41LTM4LjcgMC0zMS42LTguOS03MC41LTI0LjQtMTA4Ljh6TTI4OCAzMjBsMCAxOTIgNjQgMCAwLTE5MmMwLTE3LjctMTQuMy0zMi0zMi0zMnMtMzIgMTQuMy0zMiAzMnoiXX0sZ1B0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImZpbGUtdmlkZW8iLGljb246WzM4NCw1MTIsW10sImYxYzgiLCJNMCA2NEMwIDI4LjcgMjguNyAwIDY0IDBMMjEzLjUgMGMxNyAwIDMzLjMgNi43IDQ1LjMgMTguN0wzNjUuMyAxMjUuM2MxMiAxMiAxOC43IDI4LjMgMTguNyA0NS4zTDM4NCA0NDhjMCAzNS4zLTI4LjcgNjQtNjQgNjRMNjQgNTEyYy0zNS4zIDAtNjQtMjguNy02NC02NEwwIDY0em0yMDgtNS41bDAgOTMuNWMwIDEzLjMgMTAuNyAyNCAyNCAyNEwzMjUuNSAxNzYgMjA4IDU4LjV6TTgwIDMwNGwwIDk2YzAgMTcuNyAxNC4zIDMyIDMyIDMybDk2IDBjMTcuNyAwIDMyLTE0LjMgMzItMzJsMC0yNCAzNSAzNWMzLjIgMy4yIDcuNSA1IDEyIDUgOS40IDAgMTctNy42IDE3LTE3bDAtOTQuMWMwLTkuNC03LjYtMTctMTctMTctNC41IDAtOC44IDEuOC0xMiA1bC0zNSAzNSAwLTI0YzAtMTcuNy0xNC4zLTMyLTMyLTMybC05NiAwYy0xNy43IDAtMzIgMTQuMy0zMiAzMnoiXX0sYlB0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImFycm93LXRyZW5kLWRvd24iLGljb246WzU3Niw1MTIsW10sImUwOTciLCJNMzg0IDM1MmMtMTcuNyAwLTMyIDE0LjMtMzIgMzJzMTQuMyAzMiAzMiAzMmwxNjAgMGMxNy43IDAgMzItMTQuMyAzMi0zMmwwLTE2MGMwLTE3LjctMTQuMy0zMi0zMi0zMnMtMzIgMTQuMy0zMiAzMmwwIDgyLjctMTY5LjQtMTY5LjRjLTEyLjUtMTIuNS0zMi44LTEyLjUtNDUuMyAwTDE5MiAyNDIuNyA1NC42IDEwNS40Yy0xMi41LTEyLjUtMzIuOC0xMi41LTQ1LjMgMHMtMTIuNSAzMi44IDAgNDUuM2wxNjAgMTYwYzEyLjUgMTIuNSAzMi44IDEyLjUgNDUuMyAwTDMyMCAyMDUuMyA0NjYuNyAzNTIgMzg0IDM1MnoiXX0sdlB0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6Im9pbC1jYW4iLGljb246WzY0MCw1MTIsW10sImY2MTMiLCJNMzIwIDEyOGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMkwxOTIgNjRjLTE3LjcgMC0zMiAxNC4zLTMyIDMyczE0LjMgMzIgMzIgMzJsMzIgMCAwIDMyLTE3NiAwYy0yNi41IDAtNDggMjEuNS00OCA0OGwwIDY0LjhjMCAxOSAxMS4yIDM2LjIgMjguNSA0My45bDY3LjUgMzAgMCAyMS4zYzAgMjYuNSAyMS41IDQ4IDQ4IDQ4bDI1OS4xIDBjMTguNCAwIDM1LjgtNy45IDQ4LTIxLjdMNjMzLjUgMTg3LjdjMTIuMy0xMy45LS4zLTM1LjQtMTguNC0zMS41TDQ0OCAxOTIgMzk3LjUgMTY2LjhjLTguOS00LjQtMTguNy02LjgtMjguNi02LjhsLTgwLjkgMCAwLTMyIDMyIDB6TTk2IDIwOGwwIDg2LjEtNDgtMjEuMyAwLTY0LjggNDggMHoiXX0scTNlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InBlb3BsZS1jYXJyeS1ib3giLGljb246WzU3Niw1MTIsWyJwZW9wbGUtY2FycnkiXSwiZjRjZSIsIk02NC0zMkE1NiA1NiAwIDEgMSA2NCA4MCA1NiA1NiAwIDEgMSA2NC0zMnpNMCAxNzEuMWMwLTMyLjYgMjYuNS01OS4xIDU5LjEtNTkuMSAyMy41IDAgNDUuNSAxMS4zIDU5LjEgMzAuNGw0OC43IDY4LjJjNS44IDguMiAxNS4xIDEzLjEgMjUuMSAxMy40bDAtOTZjMC0xNy43IDE0LjMtMzIgMzItMzJsMTI4IDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJsMCA5NmMxMC0uMyAxOS4zLTUuMiAyNS4xLTEzLjRsNDguNy02OC4yYzEzLjYtMTkuMSAzNS42LTMwLjQgNTkuMS0zMC40IDMyLjYgMCA1OS4xIDI2LjUgNTkuMSA1OS4xTDU3NiAyNzJjMCAzMC4yLTE0LjIgNTguNy0zOC40IDc2LjhsLTc2LjggNTcuNmMtOC4xIDYtMTIuOCAxNS41LTEyLjggMjUuNmwwIDgwYzAgMTcuNy0xNC4zIDMyLTMyIDMycy0zMi0xNC4zLTMyLTMybDAtODBjMC0zMC4yIDE0LjItNTguNyAzOC40LTc2LjhsNDEuNi0zMS4yIDAtODAuMS0yLjggMy45Yy0xOCAyNS4yLTQ3LjEgNDAuMi03OC4xIDQwLjJMMzUyIDI4OGMtLjYgMC0xLjMgMC0xLjktLjEtLjYgMC0xLjMgLjEtMS45IC4xbC0xMjAuNCAwYy0uNiAwLTEuMyAwLTEuOS0uMS0uNiAwLTEuMyAuMS0xLjkgLjFsLTMxLjEgMGMtMzEgMC02MC4xLTE1LTc4LjEtNDAuMmwtMi44LTMuOSAwIDgwLjEgNDEuNiAzMS4yQzE3Ny44IDM3My4zIDE5MiA0MDEuOCAxOTIgNDMybDAgODBjMCAxNy43LTE0LjMgMzItMzIgMzJzLTMyLTE0LjMtMzItMzJsMC04MGMwLTEwLjEtNC43LTE5LjYtMTIuOC0yNS42TDM4LjQgMzQ4LjhDMTQuMiAzMzAuNyAwIDMwMi4yIDAgMjcyTDAgMTcxLjF6TTAgMzc5LjNjMy4xIDIuNyA2LjMgNS40IDkuNiA3LjlMNjQgNDI4IDY0IDUxMmMwIDE3LjctMTQuMyAzMi0zMiAzMlMwIDUyOS43IDAgNTEyTDAgMzc5LjN6TTU2OCAyNGE1NiA1NiAwIDEgMSAtMTEyIDAgNTYgNTYgMCAxIDEgMTEyIDB6bTggNDg4YzAgMTcuNy0xNC4zIDMyLTMyIDMycy0zMi0xNC4zLTMyLTMybDAtODQgNTQuNC00MC44YzMuMy0yLjUgNi41LTUuMSA5LjYtNy45TDU3NiA1MTJ6Il19LHhQdD1xM2UseVB0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImNoYWlyIixpY29uOls0NDgsNTEyLFsxMjk2ODFdLCJmNmMwIiwiTTE1MiAyNTZsMC0xODEuOGMtMjQuNSAyMC41LTQwIDUxLjQtNDAgODUuOGwwIDk2IDQwIDB6bTQ4IDBsNDggMCAwLTIwNS40Yy03LjctMS43LTE1LjgtMi42LTI0LTIuNnMtMTYuMyAuOS0yNCAyLjZMMjAwIDI1NnpNMjk2IDc0LjJsMCAxODEuOCA0MCAwIDAtOTZjMC0zNC40LTE1LjUtNjUuMi00MC04NS44ek0zMiAyNTZsMzIgMCAwLTk2QzY0IDcxLjYgMTM1LjYgMCAyMjQgMFMzODQgNzEuNiAzODQgMTYwbDAgOTYgMzIgMGMxNy43IDAgMzIgMTQuMyAzMiAzMmwwIDY0YzAgMTcuNy0xNC4zIDMyLTMyIDMybDAgOTZjMCAxNy43LTE0LjMgMzItMzIgMzJzLTMyLTE0LjMtMzItMzJsMC05Ni0yNTYgMCAwIDk2YzAgMTcuNy0xNC4zIDMyLTMyIDMycy0zMi0xNC4zLTMyLTMybDAtOTZjLTE3LjcgMC0zMi0xNC4zLTMyLTMybDAtNjRjMC0xNy43IDE0LjMtMzIgMzItMzJ6Il19LHdQdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJ3aW5kIixpY29uOls1MTIsNTEyLFtdLCJmNzJlIiwiTTI4OCAzMmMwIDE3LjcgMTQuMyAzMiAzMiAzMmw0MCAwYzEzLjMgMCAyNCAxMC43IDI0IDI0cy0xMC43IDI0LTI0IDI0TDMyIDExMmMtMTcuNyAwLTMyIDE0LjMtMzIgMzJzMTQuMyAzMiAzMiAzMmwzMjggMGM0OC42IDAgODgtMzkuNCA4OC04OFM0MDguNiAwIDM2MCAwTDMyMCAwYy0xNy43IDAtMzIgMTQuMy0zMiAzMnptNjQgMzUyYzAgMTcuNyAxNC4zIDMyIDMyIDMybDMyIDBjNTMgMCA5Ni00MyA5Ni05NnMtNDMtOTYtOTYtOTZMMzIgMjI0Yy0xNy43IDAtMzIgMTQuMy0zMiAzMnMxNC4zIDMyIDMyIDMybDM4NCAwYzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMybC0zMiAwYy0xNy43IDAtMzIgMTQuMy0zMiAzMnpNMTI4IDUxMmw0MCAwYzQ4LjYgMCA4OC0zOS40IDg4LTg4cy0zOS40LTg4LTg4LTg4TDMyIDMzNmMtMTcuNyAwLTMyIDE0LjMtMzIgMzJzMTQuMyAzMiAzMiAzMmwxMzYgMGMxMy4zIDAgMjQgMTAuNyAyNCAyNHMtMTAuNyAyNC0yNCAyNGwtNDAgMGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJzMTQuMyAzMiAzMiAzMnoiXX0sTVB0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImxheWVyLWdyb3VwIixpY29uOls1MTIsNTEyLFtdLCJmNWZkIiwiTTIzMi41IDUuMmMxNC45LTYuOSAzMi4xLTYuOSA0NyAwbDIxOC42IDEwMWM4LjUgMy45IDEzLjkgMTIuNCAxMy45IDIxLjhzLTUuNCAxNy45LTEzLjkgMjEuOGwtMjE4LjYgMTAxYy0xNC45IDYuOS0zMi4xIDYuOS00NyAwTDEzLjkgMTQ5LjhDNS40IDE0NS44IDAgMTM3LjMgMCAxMjhzNS40LTE3LjkgMTMuOS0yMS44TDIzMi41IDUuMnpNNDguMSAyMTguNGwxNjQuMyA3NS45YzI3LjcgMTIuOCA1OS42IDEyLjggODcuMyAwbDE2NC4zLTc1LjkgMzQuMSAxNS44YzguNSAzLjkgMTMuOSAxMi40IDEzLjkgMjEuOHMtNS40IDE3LjktMTMuOSAyMS44bC0yMTguNiAxMDFjLTE0LjkgNi45LTMyLjEgNi45LTQ3IDBMMTMuOSAyNzcuOEM1LjQgMjczLjggMCAyNjUuMyAwIDI1NnM1LjQtMTcuOSAxMy45LTIxLjhsMzQuMS0xNS44ek0xMy45IDM2Mi4ybDM0LjEtMTUuOCAxNjQuMyA3NS45YzI3LjcgMTIuOCA1OS42IDEyLjggODcuMyAwbDE2NC4zLTc1LjkgMzQuMSAxNS44YzguNSAzLjkgMTMuOSAxMi40IDEzLjkgMjEuOHMtNS40IDE3LjktMTMuOSAyMS44bC0yMTguNiAxMDFjLTE0LjkgNi45LTMyLjEgNi45LTQ3IDBMMTMuOSA0MDUuOEM1LjQgNDAxLjggMCAzOTMuMyAwIDM4NHM1LjQtMTcuOSAxMy45LTIxLjh6Il19LGtQdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJoZWFkLXNpZGUtbWFzayIsaWNvbjpbNTEyLDUxMixbXSwiZTA2MyIsIk00NDUuOSAxOTNjLS4xLS40LS4yLS45LS4yLTEuMy0xNS43LTEwOC40LTEwOC45LTE5MS43LTIyMS43LTE5MS43LTg1IDAtMTU5IDQ3LjQtMTk2LjkgMTE3LjJMMjgzLjMgMjg4IDQ1NiAyODggNDQyLjkgMzM2IDMzNiAzMzZjLTguOCAwLTE2IDcuMi0xNiAxNnM3LjIgMTYgMTYgMTZsOTguMiAwLTguNyAzMi04OS41IDBjLTguOCAwLTE2IDcuMi0xNiAxNnM3LjIgMTYgMTYgMTZsODAuNiAwYy02LjcgMTkuMS0yNC44IDMyLTQ1LjMgMzJMMjg4IDQ2NGMtMTcuNyAwLTMyLTE0LjMtMzItMzJsMC0xMDQuNS0yNDcuNS0xNjVDMyAxODIuMSAwIDIwMi43IDAgMjI0IDAgMjc4IDE5LjEgMzI3LjUgNTAuOSAzNjYuMiA1OC45IDM3NS45IDY0IDM4Ny44IDY0IDQwMC40TDY0IDQ2NGMwIDI2LjUgMjEuNSA0OCA0OCA0OGwxMjcuMyAwIC43IDAgMTMxLjMgMGM0NC45IDAgODMuOC0zMS4xIDkzLjYtNzQuOWwzMy45LTE1MC4zYzMuMy0xNC40LS4zLTI5LjUtOS43LTQxTDQ0NS45IDE5M3pNMjg4IDE5MmEzMiAzMiAwIDEgMSA2NCAwIDMyIDMyIDAgMSAxIC02NCAweiJdfSxHRD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJoYW5kcyIsaWNvbjpbNTEyLDUxMixbInNpZ24tbGFuZ3VhZ2UiLCJzaWduaW5nIl0sImYyYTciLCJNNTEyIDE2MGwtLjEgNzIuNmMwIDQ0LjgtMTcuNiA4Ny4xLTQ3LjkgMTE4LjQtLjMtNzctNDAuMS0xNDguNC0xMDUuNC0xODkuM2wtMS45LTEuMmMyLjUtMy43IDIuOC04LjYgLjQtMTIuN2wtNjItMTA3LjRjLTYuNi0xMS41LTIuNy0yNi4yIDguOC0zMi44UzMzMCA1IDMzNi42IDE2LjVsNjggMTE3LjggMCAwIDAgMCA0My4zIDc1IC4xLTQ5LjNjMC0xNy43IDE0LjQtMzIgMzItMzJzMzIgMTQuNCAzMiAzMnpNMjk4LjQgMTI0LjJjLTE0LjEtOC44LTI5LjgtMTIuNy00NS4yLTEyLjFMMjE2LjcgNDguOGMtNi42LTExLjUtMi43LTI2LjIgOC44LTMyLjhzMjYuMi0yLjcgMzIuOCA4LjhsNjcuMSAxMTYuMi0yNy0xNi45ek0yMTEuOSA4OC41bDE2LjQgMjguNGMtMTUuMSA1LjUtMjguNiAxNS42LTM4LjMgMjkuN2wtMTkuNy0zNC4yYy02LjYtMTEuNS0yLjctMjYuMiA4LjgtMzIuOHMyNi4yLTIuNyAzMi44IDguOHptLTQ2LjQgNjMuN2wxMi41IDIxLjdjLTIgOC42LTIuNSAxNy41LTEuNyAyNi4xbC00LjMgMCAwIDAtMzQuNCAwLTEzLjctMjMuOGMtNi42LTExLjUtMi43LTI2LjIgOC44LTMyLjhzMjYuMi0yLjcgMzIuOCA4Ljh6TTIyOC45IDE3NWM5LjQtMTUgMjkuMS0xOS41IDQ0LjEtMTAuMmw2MC4yIDM3LjZDMzg0LjcgMjM0LjcgNDE2IDI5MS4yIDQxNiAzNTJsMCA4YzAgODMuOS02OC4xIDE1Mi0xNTIgMTUyTDg4IDUxMmMtMTMuMyAwLTI0LTEwLjctMjQtMjRzMTAuNy0yNCAyNC0yNGw5MiAwYzYuNiAwIDEyLTUuNCAxMi0xMnMtNS40LTEyLTEyLTEyTDU2IDQ0MGMtMTMuMyAwLTI0LTEwLjctMjQtMjRzMTAuNy0yNCAyNC0yNGwxMjQgMGM2LjYgMCAxMi01LjQgMTItMTJzLTUuNC0xMi0xMi0xMkwyNCAzNjhjLTEzLjMgMC0yNC0xMC43LTI0LTI0czEwLjctMjQgMjQtMjRsMTU2IDBjNi42IDAgMTItNS40IDEyLTEycy01LjQtMTItMTItMTJMNTYgMjk2Yy0xMy4zIDAtMjQtMTAuNy0yNC0yNHMxMC43LTI0IDI0LTI0bDEzNiAwIDAgMCAwIDAgOTMuMiAwLTQ2LjItMjguOWMtMTUtOS40LTE5LjUtMjkuMS0xMC4yLTQ0LjF6Il19LFNQdD1HRCx6UHQ9R0QsQ1B0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InRhYmxldHMiLGljb246WzUxMiw1MTIsW10sImY0OTAiLCJNNDk1LjMgNzYuNmMtNC42LTguNy0xNi4zLTkuNy0yMy4zLTIuN0wyOTcuOSAyNDhjLTcgNy02IDE4LjcgMi43IDIzLjMgMjAuMSAxMC43IDQzIDE2LjcgNjcuNCAxNi43IDc5LjUgMCAxNDQtNjQuNSAxNDQtMTQ0IDAtMjQuMy02LTQ3LjMtMTYuNy02Ny40ek0yNDAuNyAyMTEuNGM0LjYgOC43IDE2LjMgOS43IDIzLjMgMi43TDQzOC4xIDQwYzctNyA2LTE4LjctMi43LTIzLjMtMjAuMS0xMC43LTQzLTE2LjctNjcuNC0xNi43LTc5LjUgMC0xNDQgNjQuNS0xNDQgMTQ0IDAgMjQuMyA2IDQ3LjMgMTYuNyA2Ny40ek0xNDQgMjI0Qzc5LjIgMjI0IDI0LjQgMjY2LjggNi4zIDMyNS42IDMuNCAzMzUuMSAxMSAzNDQgMjAuOSAzNDRsMjQ2LjIgMGM5LjkgMCAxNy41LTguOSAxNC42LTE4LjQtLjktMy0xLjktNS45LTMtOC43LTM3LjQtMTguMS02OC00OC04Ny04NC44LTE0LjktNS4yLTMwLjktOC4xLTQ3LjYtOC4xek0yODEuNyA0MTAuNGMyLjktOS41LTQuNy0xOC40LTE0LjYtMTguNEwyMC45IDM5MkMxMSAzOTIgMy40IDQwMC45IDYuMyA0MTAuNCAyNC40IDQ2OS4yIDc5LjIgNTEyIDE0NCA1MTJzMTE5LjYtNDIuOCAxMzcuNy0xMDEuNnoiXX0sVFB0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6IndlaWdodC1oYW5naW5nIixpY29uOls1MTIsNTEyLFtdLCJmNWNkIiwiTTIyNCA5NmEzMiAzMiAwIDEgMSA2NCAwIDMyIDMyIDAgMSAxIC02NCAwem0xMjIuNSAzMmMzLjUtMTAgNS41LTIwLjggNS41LTMyIDAtNTMtNDMtOTYtOTYtOTZzLTk2IDQzLTk2IDk2YzAgMTEuMiAxLjkgMjIgNS41IDMybC0yMS44IDBjLTI4LjMgMC01My4yIDE4LjUtNjEuMyA0NS42TDIuNCA0NDAuMkMuOCA0NDUuNCAwIDQ1MC44IDAgNDU2LjIgMCA0ODcgMjUgNTEyIDU1LjggNTEybDQwMC40IDBjMzAuOCAwIDU1LjgtMjUgNTUuOC01NS44IDAtNS40LS44LTEwLjgtMi40LTE2bC04MC0yNjYuNWMtOC4xLTI3LjEtMzMtNDUuNi02MS4zLTQ1LjZsLTIxLjggMHoiXX0sX1B0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImRpY2UiLGljb246WzUxMiw1MTIsWzEyNzkyMl0sImY1MjIiLCJNMTQxLjQgMi4zQzEwMy04IDYzLjUgMTQuOCA1My4zIDUzLjJMMi41IDI0Mi43Qy03LjggMjgxLjEgMTUgMzIwLjYgNTMuNCAzMzAuOWwxODkuNSA1MC44YzM4LjQgMTAuMyA3Ny45LTEyLjUgODguMi01MC45bDUwLjgtMTg5LjVjMTAuMy0zOC40LTEyLjUtNzcuOS01MC45LTg4LjJMMTQxLjQgMi4zem0yMyAyMDUuN2EzMiAzMiAwIDEgMSA1NS40LTMyIDMyIDMyIDAgMSAxIC01NS40IDMyek03OS4yIDIyMC4zYTMyIDMyIDAgMSAxIDMyIDU1LjQgMzIgMzIgMCAxIDEgLTMyLTU1LjR6bTE4NSA5Ni40YTMyIDMyIDAgMSAxIC0zMi01NS40IDMyIDMyIDAgMSAxIDMyIDU1LjR6bTktMjA4LjRhMzIgMzIgMCAxIDEgMzIgNTUuNCAzMiAzMiAwIDEgMSAtMzItNTUuNHptLTEyMSAxNC40YTMyIDMyIDAgMSAxIC0zMi01NS40IDMyIDMyIDAgMSAxIDMyIDU1LjR6TTQxOCAxOTJMMzc3LjQgMzQzLjJjLTE3LjIgNjQtODMgMTAyLTE0NyA4NC45bC0zOC4zLTEwLjMgMCAzMC4yYzAgMzUuMyAyOC43IDY0IDY0IDY0bDE5MiAwYzM1LjMgMCA2NC0yOC43IDY0LTY0bDAtMTkyYzAtMzUuMy0yOC43LTY0LTY0LTY0TDQxOCAxOTJ6Il19LGozZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJzaG9wLXNsYXNoIixpY29uOls1NzYsNTEyLFsic3RvcmUtYWx0LXNsYXNoIl0sImUwNzAiLCJNNDEtMjQuOWMtOS40LTkuNC0yNC42LTkuNC0zMy45IDBTLTIuMy0uMyA3IDkuMWw1MjggNTI4YzkuNCA5LjQgMjQuNiA5LjQgMzMuOSAwczkuNC0yNC42IDAtMzMuOWwtNTctNTcgMC0xOTAuM2MyNi44LTEuOSA0OC0yNC4zIDQ4LTUxLjYgMC04LTEuOS0xNi01LjUtMjMuMkw0OTcuNyA2Ny40QzQ4Ni44IDQ1LjcgNDY0LjcgMzIgNDQwLjQgMzJMMTM1LjYgMzJjLTEwLjcgMC0yMSAyLjctMzAuMiA3LjZMNDEtMjQuOXpNMzIxLjggMjU2TDQ0OCAyNTYgNDQ4IDM4Mi4yIDMyMS44IDI1NnpNMzUyIDQyMS44bC02NC02NCAwIDEwLjJjMCA4LjgtNy4yIDE2LTE2IDE2bC0xMjggMGMtOC44IDAtMTYtNy4yLTE2LTE2bDAtMTEyIDU4LjIgMC0xMzQuOC0xMzQuOC0yOS45IDU5LjljLTMuNiA3LjItNS41IDE1LjEtNS41IDIzLjIgMCAyNy4zIDIxLjIgNDkuNyA0OCA1MS42TDY0IDQzMmMwIDI2LjUgMjEuNSA0OCA0OCA0OGwxOTIgMGMyNi41IDAgNDgtMjEuNSA0OC00OGwwLTEwLjJ6Il19LExQdD1qM2UsVjNlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InNvcnQtZG93biIsaWNvbjpbMzg0LDUxMixbInNvcnQtZGVzYyJdLCJmMGRkIiwiTTMyIDI4OGMtMTIuOSAwLTI0LjYgNy44LTI5LjYgMTkuOFMuMiAzMzMuNSA5LjQgMzQyLjZsMTYwIDE2MGMxMi41IDEyLjUgMzIuOCAxMi41IDQ1LjMgMGwxNjAtMTYwYzkuMi05LjIgMTEuOS0yMi45IDYuOS0zNC45UzM2NC45IDI4OCAzNTIgMjg4TDMyIDI4OHoiXX0sQVB0PVYzZSxEUHQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToicGVzZXRhLXNpZ24iLGljb246WzQ0OCw1MTIsW10sImUyMjEiLCJNMTEyIDMyQzk0LjMgMzIgODAgNDYuMyA4MCA2NGwwIDEwNC0yNCAwYy0xMy4zIDAtMjQgMTAuNy0yNCAyNHMxMC43IDI0IDI0IDI0bDI0IDAgMCAyMzJjMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMmwwLTk2IDk2IDBjODAuMiAwIDE0Ni42LTU5IDE1OC4yLTEzNmwyNS44IDBjMTMuMyAwIDI0LTEwLjcgMjQtMjRzLTEwLjctMjQtMjQtMjRsLTI1LjggMEMzODYuNiA5MSAzMjAuMiAzMiAyNDAgMzJMMTEyIDMyek0zMzMgMTY4bC0xODkgMCAwLTcyIDk2IDBjNDQuNyAwIDgyLjMgMzAuNiA5MyA3MnpNMTQ0IDIxNmwxODkgMGMtMTAuNyA0MS40LTQ4LjIgNzItOTMgNzJsLTk2IDAgMC03MnoiXX0sVTNlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InRhYmxldC1zY3JlZW4tYnV0dG9uIixpY29uOls0NDgsNTEyLFsidGFibGV0LWFsdCJdLCJmM2ZhIiwiTTAgNjRDMCAyOC43IDI4LjcgMCA2NCAwTDM4NCAwYzM1LjMgMCA2NCAyOC43IDY0IDY0bDAgMzg0YzAgMzUuMy0yOC43IDY0LTY0IDY0TDY0IDUxMmMtMzUuMyAwLTY0LTI4LjctNjQtNjRMMCA2NHpNMjU2IDQzMmEzMiAzMiAwIDEgMCAtNjQgMCAzMiAzMiAwIDEgMCA2NCAwek0zODQgNjRsLTMyMCAwIDAgMjg4IDMyMCAwIDAtMjg4eiJdfSxFUHQ9VTNlLFczZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJoYW5kLWhvbGRpbmctZG9sbGFyIixpY29uOls1NzYsNTEyLFsiaGFuZC1ob2xkaW5nLXVzZCJdLCJmNGMwIiwiTTI4OC0xNmMtMTMuMyAwLTI0IDEwLjctMjQgMjRsMCAxMi0xLjggMGMtMzYuNiAwLTY2LjIgMjkuNy02Ni4yIDY2LjIgMCAzMy40IDI0LjkgNjEuNiA1OCA2NS43bDYxIDcuNmM1LjEgLjYgOSA1IDkgMTAuMiAwIDUuNy00LjYgMTAuMi0xMC4yIDEwLjJMMjQwIDE4MGMtMTUuNSAwLTI4IDEyLjUtMjggMjhzMTIuNSAyOCAyOCAyOGwyNCAwIDAgMTJjMCAxMy4zIDEwLjcgMjQgMjQgMjRzMjQtMTAuNyAyNC0yNGwwLTEyIDEuOCAwYzM2LjYgMCA2Ni4yLTI5LjcgNjYuMi02Ni4yIDAtMzMuNC0yNC45LTYxLjYtNTgtNjUuN2wtNjEtNy42Yy01LjEtLjYtOS01LTktMTAuMiAwLTUuNyA0LjYtMTAuMiAxMC4yLTEwLjJMMzI4IDc2YzE1LjUgMCAyOC0xMi41IDI4LTI4cy0xMi41LTI4LTI4LTI4bC0xNiAwIDAtMTJjMC0xMy4zLTEwLjctMjQtMjQtMjR6TTEwOS4zIDM0MS41TDY2LjcgMzg0IDMyIDM4NGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJsMCA2NGMwIDE3LjcgMTQuMyAzMiAzMiAzMmwzMjAuNSAwYzI5IDAgNTcuMy05LjMgODAuNy0yNi41bDEyNi42LTkzLjNjMTcuOC0xMy4xIDIxLjYtMzguMSA4LjUtNTUuOXMtMzguMS0yMS42LTU1LjktOC41TDM5Mi42IDQxNiAyODAgNDE2Yy0xMy4zIDAtMjQtMTAuNy0yNC0yNHMxMC43LTI0IDI0LTI0bDcyIDBjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJsLTE1Mi4yIDBjLTMzLjkgMC02Ni41IDEzLjUtOTAuNSAzNy41eiJdfSwkUHQ9VzNlLEczZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJzaGllbGQiLGljb246WzUxMiw1MTIsWzEyODczNywic2hpZWxkLWJsYW5rIl0sImYxMzIiLCJNMjU2IDBjNC42IDAgOS4yIDEgMTMuNCAyLjlMNDU3LjggODIuOGMyMiA5LjMgMzguNCAzMSAzOC4zIDU3LjItLjUgOTkuMi00MS4zIDI4MC43LTIxMy42IDM2My4yLTE2LjcgOC0zNi4xIDgtNTIuOCAwLTE3Mi40LTgyLjUtMjEzLjEtMjY0LTIxMy42LTM2My4yLS4xLTI2LjIgMTYuMy00Ny45IDM4LjMtNTcuMkwyNDIuNyAyLjlDMjQ2LjkgMSAyNTEuNCAwIDI1NiAweiJdfSxJUHQ9RzNlLFkzZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJmYWNlLWxhdWdoIixpY29uOls1MTIsNTEyLFsibGF1Z2giXSwiZjU5OSIsIk0yNTYgNTEyYTI1NiAyNTYgMCAxIDAgMC01MTIgMjU2IDI1NiAwIDEgMCAwIDUxMnpNMTAxLjYgMzE0Yy0zLjctMTMuNyA3LjUtMjYgMjEuNy0yNmwyNjUuNCAwYzE0LjIgMCAyNS40IDEyLjMgMjEuNyAyNi0xOC41IDY4LTgwLjYgMTE4LTE1NC40IDExOFMxMjAgMzgyIDEwMS42IDMxNHpNMTQ0IDE5MmEzMiAzMiAwIDEgMSA2NCAwIDMyIDMyIDAgMSAxIC02NCAwem0xOTItMzJhMzIgMzIgMCAxIDEgMCA2NCAzMiAzMiAwIDEgMSAwLTY0eiJdfSxQUHQ9WTNlLE5QdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJoYW5kcy1ob2xkaW5nIixpY29uOls2NDAsNTEyLFtdLCJmNGMyIiwiTTgwIDEwNGMwLTIyLjEtMTcuOS00MC00MC00MFMwIDgxLjkgMCAxMDRMMCAzMjUuNWMwIDI1LjUgMTAuMSA0OS45IDI4LjEgNjcuOUwxMjggNDkzLjNjMTIgMTIgMjguMyAxOC43IDQ1LjMgMTguN2w2Ni43IDBjMjYuNSAwIDQ4LTIxLjUgNDgtNDhsMC03OC45YzAtMjkuNy0xMS44LTU4LjItMzIuOC03OS4ybC0yNS4zLTI1LjMgMCAwYy03LjMtNy4zLTIzLjEtMjMuMS00Ny4yLTQ3LjItMTIuNS0xMi41LTMyLjgtMTIuNS00NS4zIDBzLTEyLjUgMzIuOCAwIDQ1LjNjMjQuMSAyNC4xIDM5LjkgMzkuOSA0Ny4yIDQ3LjIgMTEgMTEgOS4yIDI5LjItMy43IDM3LjgtOS43IDYuNS0yMi43IDUuMi0zMS0zLjFMOTguNyAzMDkuNWMtMTItMTItMTguNy0yOC4zLTE4LjctNDUuM0w4MCAxMDR6bTQ4MCAwbDAgMTYwLjJjMCAxNy02LjcgMzMuMy0xOC43IDQ1LjNsLTUxLjEgNTEuMWMtOC4zIDguMy0yMS4zIDkuNi0zMSAzLjEtMTIuOS04LjYtMTQuNy0yNi45LTMuNy0zNy44IDcuMy03LjMgMjMuMS0yMy4xIDQ3LjItNDcuMiAxMi41LTEyLjUgMTIuNS0zMi44IDAtNDUuM3MtMzIuOC0xMi41LTQ1LjMgMGMtMjQuMSAyNC4xLTM5LjkgMzkuOS00Ny4yIDQ3LjJsMCAwLTI1LjMgMjUuM2MtMjEgMjEtMzIuOCA0OS41LTMyLjggNzkuMmwwIDc4LjljMCAyNi41IDIxLjUgNDggNDggNDhsNjYuNyAwYzE3IDAgMzMuMy02LjcgNDUuMy0xOC43bDk5LjktOTkuOWMxOC0xOCAyOC4xLTQyLjQgMjguMS02Ny45TDY0MCAxMDRjMC0yMi4xLTE3LjktNDAtNDAtNDBzLTQwIDE3LjktNDAgNDB6Il19LFozZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJjYXJ0LXNob3BwaW5nIixpY29uOls2NDAsNTEyLFsxMjg3MjIsInNob3BwaW5nLWNhcnQiXSwiZjA3YSIsIk0yNC0xNkMxMC43LTE2IDAtNS4zIDAgOFMxMC43IDMyIDI0IDMybDQ1LjMgMGMzLjkgMCA3LjIgMi44IDcuOSA2LjZsNTIuMSAyODYuM2M2LjIgMzQuMiAzNiA1OS4xIDcwLjggNTkuMUw0NTYgMzg0YzEzLjMgMCAyNC0xMC43IDI0LTI0cy0xMC43LTI0LTI0LTI0bC0yNTUuOSAwYy0xMS42IDAtMjEuNS04LjMtMjMuNi0xOS43bC01LjEtMjguMyAzMDMuNiAwYzMwLjggMCA1Ny4yLTIxLjkgNjIuOS01Mi4yTDU2OC45IDY5LjlDNTcyLjYgNTAuMiA1NTcuNSAzMiA1MzcuNCAzMmwtNDEyLjcgMC0uNC0yYy00LjgtMjYuNi0yOC00Ni01NS4xLTQ2TDI0LTE2ek0yMDggNTEyYTQ4IDQ4IDAgMSAwIDAtOTYgNDggNDggMCAxIDAgMCA5NnptMjI0IDBhNDggNDggMCAxIDAgMC05NiA0OCA0OCAwIDEgMCAwIDk2eiJdfSxGUHQ9WjNlLE9QdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJvY3RhZ29uIixpY29uOls1MTIsNTEyLFsxMjg3MjFdLCJmMzA2IiwiTTE4OC42IC4xYy0xNyAwLTMzLjMgNi43LTQ1LjMgMTguN0wxOS4yIDE0M0M3LjIgMTU1IC41IDE3MS4yIC41IDE4OC4ybDAgMTM1LjZjMCAxNyA2LjcgMzMuMyAxOC43IDQ1LjNMMTQzLjQgNDkzLjJjMTIgMTIgMjguMyAxOC43IDQ1LjMgMTguN2wxMzUuNiAwYzE3IDAgMzMuMy02LjcgNDUuMy0xOC43TDQ5My42IDM2OWMxMi0xMiAxOC43LTI4LjMgMTguNy00NS4zbDAtMTM1LjZjMC0xNy02LjctMzMuMy0xOC43LTQ1LjNMMzY5LjUgMTguOGMtMTItMTItMjguMy0xOC43LTQ1LjMtMTguN0wxODguNiAuMXoiXX0sUlB0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImhhbmQtcG9pbnRlciIsaWNvbjpbNDQ4LDUxMixbXSwiZjI1YSIsIk0xMjggNDBjMC0yMi4xIDE3LjktNDAgNDAtNDBzNDAgMTcuOSA0MCA0MGwwIDE0OC4yYzguNS03LjYgMTkuNy0xMi4yIDMyLTEyLjIgMjAuNiAwIDM4LjIgMTMgNDUgMzEuMiA4LjgtOS4zIDIxLjItMTUuMiAzNS0xNS4yIDI1LjMgMCA0NiAxOS41IDQ3LjkgNDQuMyA4LjUtNy43IDE5LjgtMTIuMyAzMi4xLTEyLjMgMjYuNSAwIDQ4IDIxLjUgNDggNDhsMCAxMTJjMCA3MC43LTU3LjMgMTI4LTEyOCAxMjhsLTg1LjMgMGMtNSAwLTkuOS0uMy0xNC43LTEtNTUuMy01LjYtMTA2LjItMzQtMTQwLTc5TDggMzM2Yy0xMy4zLTE3LjctOS43LTQyLjcgOC01NnM0Mi43LTkuNyA1NiA4bDU2IDc0LjcgMC0zMjIuN3pNMjQwIDMwNGMwLTguOC03LjItMTYtMTYtMTZzLTE2IDcuMi0xNiAxNmwwIDk2YzAgOC44IDcuMiAxNiAxNiAxNnMxNi03LjIgMTYtMTZsMC05NnptNDgtMTZjLTguOCAwLTE2IDcuMi0xNiAxNmwwIDk2YzAgOC44IDcuMiAxNiAxNiAxNnMxNi03LjIgMTYtMTZsMC05NmMwLTguOC03LjItMTYtMTYtMTZ6bTgwIDE2YzAtOC44LTcuMi0xNi0xNi0xNnMtMTYgNy4yLTE2IDE2bDAgOTZjMCA4LjggNy4yIDE2IDE2IDE2czE2LTcuMiAxNi0xNmwwLTk2eiJdfSxCUHQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToicmVnaXN0ZXJlZCIsaWNvbjpbNTEyLDUxMixbMTc0XSwiZjI1ZCIsIk0yNTYgNTEyYTI1NiAyNTYgMCAxIDAgMC01MTIgMjU2IDI1NiAwIDEgMCAwIDUxMnpNMjAwIDE0NGw4MCAwYzM5LjggMCA3MiAzMi4yIDcyIDcyIDAgMjguOS0xNyA1My44LTQxLjYgNjUuM2wzMC4yIDUwLjNjNi44IDExLjQgMy4xIDI2LjEtOC4yIDMyLjlzLTI2LjEgMy4xLTMyLjktOC4ybC00MS02OC4zLTM0LjQgMCAwIDU2YzAgMTMuMy0xMC43IDI0LTI0IDI0cy0yNC0xMC43LTI0LTI0bDAtMTc2YzAtMTMuMyAxMC43LTI0IDI0LTI0em03MiA5Nmw4IDBjMTMuMyAwIDI0LTEwLjcgMjQtMjRzLTEwLjctMjQtMjQtMjRsLTU2IDAgMCA0OCA0OCAweiJdfSxIUHQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiaG91c2Utc2lnbmFsIixpY29uOls1NzYsNTEyLFtdLCJlMDEyIiwiTTUxNS45IDI0MGwtMTkuOSAwIDAgMTQ0YzAgMzUuMy0yOC43IDY0LTY0IDY0bC0xMzcgMGMtMjQtOTEuNy05My41LTE2NS0xODMtMTk0LjNsMC0xMy43LTE5LjkgMGMtMTUuNSAwLTI4LjEtMTIuNi0yOC4xLTI4LjEgMC03LjYgMy4xLTE0LjkgOC42LTIwLjJMMjc2LjUtNC45QzI4My45LTEyIDI5My43LTE2IDMwNC0xNnMyMC4xIDQgMjcuNSAxMS4xTDUzNS40IDE5MS43YzUuNSA1LjMgOC42IDEyLjYgOC42IDIwLjIgMCAxNS41LTEyLjYgMjguMS0yOC4xIDI4LjF6TTI4MCAxOTJjLTEzLjMgMC0yNCAxMC43LTI0IDI0bDAgNDhjMCAxMy4zIDEwLjcgMjQgMjQgMjRsNDggMGMxMy4zIDAgMjQtMTAuNyAyNC0yNGwwLTQ4YzAtMTMuMy0xMC43LTI0LTI0LTI0bC00OCAwek0yNCAyODhjMTI4LjEgMCAyMzIgMTAzLjkgMjMyIDIzMiAwIDEzLjMtMTAuNyAyNC0yNCAyNHMtMjQtMTAuNy0yNC0yNGMwLTEwMS42LTgyLjQtMTg0LTE4NC0xODQtMTMuMyAwLTI0LTEwLjctMjQtMjRzMTAuNy0yNCAyNC0yNHptOCAxOTJhMzIgMzIgMCAxIDEgMCA2NCAzMiAzMiAwIDEgMSAwLTY0ek0wIDQwOGMwLTEzLjMgMTAuNy0yNCAyNC0yNCA3NS4xIDAgMTM2IDYwLjkgMTM2IDEzNiAwIDEzLjMtMTAuNyAyNC0yNCAyNHMtMjQtMTAuNy0yNC0yNGMwLTQ4LjYtMzkuNC04OC04OC04OC0xMy4zIDAtMjQtMTAuNy0yNC0yNHoiXX0scVB0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImJhbmdsYWRlc2hpLXRha2Etc2lnbiIsaWNvbjpbMzg0LDUxMixbXSwiZTJlNiIsIk0zNiAzMi4zQzE4LjQgMzAuMSAyLjQgNDIuNSAuMyA2MFMxMC41IDkzLjYgMjggOTUuOGw3LjkgMWMxNiAyIDI4IDE1LjYgMjggMzEuOGwwIDMxLjUtNDAgMGMtMTMuMyAwLTI0IDEwLjctMjQgMjRzMTAuNyAyNCAyNCAyNGw0MCAwIDAgMTc2YzAgNTMgNDMgOTYgOTYgOTZsMzIgMGMxMDYgMCAxOTItODYgMTkyLTE5MmwwLTMyYzAtNTMtNDMtOTYtOTYtOTZsLTE2IDBjLTE3LjcgMC0zMiAxNC4zLTMyIDMyczE0LjMgMzIgMzIgMzJsMTYgMGMxNy43IDAgMzIgMTQuMyAzMiAzMmwwIDMyYzAgNzAuNy01Ny4zIDEyOC0xMjggMTI4bC0zMiAwYy0xNy43IDAtMzItMTQuMy0zMi0zMmwwLTE3NiA0MCAwYzEzLjMgMCAyNC0xMC43IDI0LTI0cy0xMC43LTI0LTI0LTI0bC00MCAwIDAtMzEuNUMxMjggODAuMSA5MiAzOS4yIDQzLjkgMzMuMmwtNy45LTF6Il19LENacj17ZmEwOmV1dCxmYTE6dHV0LGZhMjpydXQsZmEzOml1dCxmYTQ6YXV0LGZhNTpudXQsZmE2Om91dCxmYTc6c3V0LGZhODpsdXQsZmE5OmN1dCxmYURvbGxhclNpZ246UUEsZmFEb2xsYXI6ZHV0LGZhVXNkOnV1dCxmYURvZzpwdXQsZmFUcnVja01vdmluZzpodXQsZmFSb3RhdGU6Qm9lLGZhU3luY0FsdDpmdXQsZmFTcXVhcmVNaW51czpIb2UsZmFNaW51c1NxdWFyZTptdXQsZmFBbGlnbkp1c3RpZnk6Z3V0LGZhQ2FsZW5kYXJDaGVjazpidXQsZmFGYWNlS2lzczpxb2UsZmFLaXNzOnZ1dCxmYUtpdGNoZW5TZXQ6eHV0LGZhRG5hOnl1dCxmYUNoaWxkUmVhY2hpbmc6d3V0LGZhUGFzdGU6amcsZmFGaWxlQ2xpcGJvYXJkOk11dCxmYU1ldGVvcjprdXQsZmFHZWFyczpqb2UsZmFDb2dzOlN1dCxmYUZpbGVDaXJjbGVQbHVzOnp1dCxmYUljaWNsZXM6Q3V0LGZhQXJyb3dUcmVuZFVwOlR1dCxmYUhleGFnb25Ob2Rlc0JvbHQ6X3V0LGZhUXVlc3Rpb246THV0LGZhSGFuZHNCb3VuZDpBdXQsZmFQZXJzb25XYWxraW5nTHVnZ2FnZTpEdXQsZmFGaWxlQXJyb3dEb3duOlZvZSxmYUZpbGVEb3dubG9hZDpFdXQsZmFQZXJzb25Cb290aDokdXQsZmFMb2N1c3Q6SXV0LGZhUmlnaHRMb25nOlVvZSxmYUxvbmdBcnJvd0FsdFJpZ2h0OlB1dCxmYVRydWNrRHJvcGxldDpOdXQsZmFIYW5kSG9sZGluZ01lZGljYWw6RnV0LGZhSGFuZFBvaW50TGVmdDpPdXQsZmFDYWxjdWxhdG9yOlJ1dCxmYU1pbnVzOlZnLGZhU3VidHJhY3Q6QnV0LGZhQXJyb3dVcFpBOldvZSxmYVNvcnRBbHBoYVVwQWx0Okh1dCxmYU1pY3JvcGhvbmVTbGFzaDpxdXQsZmFTcXVhcmVQZW46SkEsZmFQZW5TcXVhcmU6anV0LGZhUGVuY2lsU3F1YXJlOlZ1dCxmYUhhbmRGaXN0OkdvZSxmYUZpc3RSYWlzZWQ6VXV0LGZhQ29tbWVudFNtczpZb2UsZmFTbXM6V3V0LGZhU2ltQ2FyZDpHdXQsZmFTY2FsZUJhbGFuY2VkOlpvZSxmYUJhbGFuY2VTY2FsZTpZdXQsZmFDYXI6WG9lLGZhQXV0b21vYmlsZTpadXQsZmFDcm9wU2ltcGxlOlFvZSxmYUNyb3BBbHQ6WHV0LGZhTWVkYWw6UXV0LGZhU2Nyb2xsOkp1dCxmYUZpbGVFeGNlbDpLdXQsZmFGaWx0ZXI6ZTh0LGZhRHJ1bTp0OHQsZmFNYXBQaW46cjh0LGZhU2NhbGVVbmJhbGFuY2VkRmxpcDpKb2UsZmFCYWxhbmNlU2NhbGVSaWdodDppOHQsZmFBcnJvd3NUb0NpcmNsZTphOHQsZmFFbnZlbG9wZTpuOHQsZmFCYWJ5Om84dCxmYVNxdWFyZUNhcmV0RG93bjpLb2UsZmFDYXJldFNxdWFyZURvd246czh0LGZhVGVudDpsOHQsZmFBOmM4dCxmYVBhcmFjaHV0ZUJveDpkOHQsZmFDYXJ0QXJyb3dEb3duOnU4dCxmYUJyaWRnZUNpcmNsZUV4Y2xhbWF0aW9uOnA4dCxmYUNsb3VkQXJyb3dVcDpLQSxmYUNsb3VkVXBsb2FkOmg4dCxmYUNsb3VkVXBsb2FkQWx0OmY4dCxmYUF0Om04dCxmYUluZGlhblJ1cGVlU2lnbjplRCxmYUluZGlhblJ1cGVlOmc4dCxmYUlucjpiOHQsZmFUcnVjazp2OHQsZmFDaGFsa2JvYXJkVXNlcjplMmUsZmFDaGFsa2JvYXJkVGVhY2hlcjp4OHQsZmFVc2VyQ2hlY2s6eTh0LGZhVXNlck5pbmphOnc4dCxmYVBsYW50V2lsdDpNOHQsZmFXZWlnaHRTY2FsZTp0MmUsZmFXZWlnaHQ6azh0LGZhQ2FyZXRSaWdodDpZRCxmYUZsb3JpblNpZ246Uzh0LGZhQmVsbDpaRCxmYUxhcmlTaWduOno4dCxmYU1pbGxTaWduOkM4dCxmYVBlcnNvblNub3dib2FyZGluZzpyMmUsZmFTbm93Ym9hcmRpbmc6VDh0LGZhVHR5OmkyZSxmYVRlbGV0eXBlOl84dCxmYVVzZXJzUmVjdGFuZ2xlOkw4dCxmYU1vYmlsZTp0RCxmYU1vYmlsZUFuZHJvaWQ6QTh0LGZhTW9iaWxlUGhvbmU6RDh0LGZhQXJyb3dzVHVyblRvRG90czpFOHQsZmFFeGNsYW1hdGlvbjokOHQsZmFDaHVyY2g6STh0LGZhVG9nZ2xlT2ZmOlA4dCxmYVNob2VQcmludHM6Tjh0LGZhRmlsZUNpcmNsZUV4Y2xhbWF0aW9uOkY4dCxmYVdhbGxldDpYRCxmYU1lc3NhZ2U6VWcsZmFDb21tZW50QWx0Ok84dCxmYVRyb3BoeTpSOHQsZmFGYWNlRGl6enk6YTJlLGZhRGl6enk6Qjh0LGZhQmFjdGVyaWE6SDh0LGZhRWFyRGVhZjpUZyxmYURlYWY6cTh0LGZhRGVhZm5lc3M6ajh0LGZhSGFyZE9mSGVhcmluZzpWOHQsZmFQZW9wbGVBcnJvd3M6bjJlLGZhUGVvcGxlQXJyb3dzTGVmdFJpZ2h0OlU4dCxmYUhhbmRzQ2xhcHBpbmc6Vzh0LGZhVmlydXNDb3ZpZFNsYXNoOkc4dCxmYUNhbGVuZGFyRGF5czpvMmUsZmFDYWxlbmRhckFsdDpZOHQsZmFEaWFtb25kVHVyblJpZ2h0OnMyZSxmYURpcmVjdGlvbnM6Wjh0LGZhSGFuZFBvaW50VXA6WDh0LGZhQmV6aWVyQ3VydmU6UTh0LGZhUGVyc29uSGFsZkRyZXNzOko4dCxmYVNxdWFyZVBvbGxIb3Jpem9udGFsOmwyZSxmYVBvbGxIOks4dCxmYVNjaG9vbENpcmNsZVhtYXJrOmVwdCxmYUhhbmRMaXphcmQ6dHB0LGZhQ2hhbGtib2FyZDpjMmUsZmFCbGFja2JvYXJkOnJwdCxmYVVwUmlnaHRGcm9tU3F1YXJlOmQyZSxmYUV4dGVybmFsTGlua0FsdDppcHQsZmFTcXVhcmVGdWxsOmFwdCxmYUNsb3ZlcjpucHQsZmFUZWV0aE9wZW46b3B0LGZhQmFyc1N0YWdnZXJlZDpyRCxmYVJlb3JkZXI6c3B0LGZhU3RyZWFtOmxwdCxmYVdhcmVob3VzZTpjcHQsZmFTd2F0Y2hib29rOmRwdCxmYUNhbXBncm91bmQ6dXB0LGZhUGVyc29uV2Fsa2luZ0Fycm93UmlnaHQ6cHB0LGZhR2xhc3NlczpocHQsZmFDaXJjbGVQYXVzZTp1MmUsZmFQYXVzZUNpcmNsZTpmcHQsZmFNZW1vcnk6bXB0LGZhR2lmdDpncHQsZmFNb25leUJpbGxXaGVhdDpicHQsZmFEdW5nZW9uOnZwdCxmYVN1aXRjYXNlTWVkaWNhbDpwMmUsZmFNZWRraXQ6eHB0LGZhUGVyc29uQ2FuZTp5cHQsZmFHYXVnZTpfZyxmYURhc2hib2FyZDp3cHQsZmFHYXVnZU1lZDpNcHQsZmFUYWNob21ldGVyQWx0QXZlcmFnZTprcHQsZmFFbnZlbG9wZU9wZW5UZXh0OlNwdCxmYVRvb2xib3g6enB0LGZhUG93ZXJPZmY6Q3B0LGZhU2lnbmFsOmlELGZhU2lnbmFsNTpUcHQsZmFTaWduYWxQZXJmZWN0Ol9wdCxmYUFycm93c1NwaW46THB0LGZhSm9pbnQ6QXB0LGZhQnJhaWxsZTpEcHQsZmFCYXNrZXRTaG9wcGluZzpoMmUsZmFTaG9wcGluZ0Jhc2tldDpFcHQsZmFCcmlkZ2U6JHB0LGZhUGxhbmVBcnJpdmFsOklwdCxmYUNhc2hSZWdpc3RlcjpQcHQsZmFSaW5nOk5wdCxmYUFxdWFyaXVzOkZwdCxmYVNoYXJlTm9kZXM6ZjJlLGZhU2hhcmVBbHQ6T3B0LGZhUGVyc29uQ2lyY2xlRXhjbGFtYXRpb246UnB0LGZhQmlub2N1bGFyczpCcHQsZmFLaXBTaWduOkhwdCxmYUhhcmREcml2ZTptMmUsZmFIZGQ6cXB0LGZhUmFua2luZ1N0YXI6anB0LGZhVXNlclRpZTpWcHQsZmFFbGxpcHNpczpnMmUsZmFFbGxpcHNpc0g6VXB0LGZhU3RvcmVTbGFzaDpXcHQsZmFQZXJjZW50OmIyZSxmYVBlcmNlbnRhZ2U6R3B0LGZhRmlsZVppcHBlcjp2MmUsZmFGaWxlQXJjaGl2ZTpZcHQsZmFEaXNwbGF5OlpwdCxmYUljb25zOngyZSxmYUhlYXJ0TXVzaWNDYW1lcmFCb2x0OlhwdCxmYVJ1bGVyVmVydGljYWw6UXB0LGZhTWFwTG9jYXRpb25Eb3Q6eTJlLGZhTWFwTWFya2VkQWx0OkpwdCxmYUhlYXJ0Q3JhY2s6dzJlLGZhSGVhcnRCcm9rZW46S3B0LGZhQ293OmVodCxmYVJzczpXZyxmYUZlZWQ6dGh0LGZhTWFnbmlmeWluZ0dsYXNzOkdnLGZhU2VhcmNoOnJodCxmYUNsb3VkTW9vbjppaHQsZmFCb3hlc1N0YWNrZWQ6YUQsZmFCb3hlczphaHQsZmFCb3hlc0FsdDpuaHQsZmFDb2RlQnJhbmNoOm9odCxmYUJhbjpNMmUsZmFDYW5jZWw6c2h0LGZhSnVnRGV0ZXJnZW50OmxodCxmYVJlcGx5OmsyZSxmYU1haWxSZXBseTpjaHQsZmFTdW5QbGFudFdpbHQ6ZGh0LGZhQmFjdGVyaXVtOnVodCxmYVJlY29yZFZpbnlsOnBodCxmYUZsb3BweURpc2s6UzJlLGZhU2F2ZTpoaHQsZmFUb2lsZXRzUG9ydGFibGU6Zmh0LGZhTzptaHQsZmFQYWxldHRlOmdodCxmYVVubG9jazpiaHQsZmFFYXJMaXN0ZW46ejJlLGZhQXNzaXN0aXZlTGlzdGVuaW5nU3lzdGVtczp2aHQsZmFDb2RlUHVsbFJlcXVlc3Q6eGh0LGZhS2V5OnlodCxmYVNrdWxsOndodCxmYU1hcnNTdHJva2VVcDpDMmUsZmFNYXJzU3Ryb2tlVjpNaHQsZmFGaXJlRmxhbWVTaW1wbGU6VDJlLGZhQnVybjpraHQsZmFUcmVlOlNodCxmYVNtb2c6emh0LGZhUzpDaHQsZmFKZWRpOlRodCxmYVBlcnNvbkhpa2luZzpfMmUsZmFIaWtpbmc6X2h0LGZhQXJyb3dzVXBUb0xpbmU6TGh0LGZhTWFyc0RvdWJsZTpBaHQsZmFUaGVybW9tZXRlcjpEaHQsZmFQYWludGJydXNoOkwyZSxmYVBhaW50QnJ1c2g6RWh0LGZhTmV1dGVyOiRodCxmYVNxdWFyZVBob25lRmxpcDpBMmUsZmFQaG9uZVNxdWFyZUFsdDpJaHQsZmFGYWNlR3JpblRvbmd1ZVNxdWludDpEMmUsZmFHcmluVG9uZ3VlU3F1aW50OlBodCxmYUNvbW1lbnREb2xsYXI6Tmh0LGZhSGlwcG86Rmh0LGZhQm93bEZvb2Q6T2h0LGZhU3F1YXJlVmlydXM6Umh0LGZhQ2xvdWRTdW5SYWluOkJodCxmYUFycm93UmlnaHRMb25nOkUyZSxmYUxvbmdBcnJvd1JpZ2h0OkhodCxmYUJ1aWxkaW5nVW46cWh0LGZhVGVtcGVyYXR1cmVMb3c6amh0LGZhRG9vck9wZW46Vmh0LGZhQWxpZ25MZWZ0OlVodCxmYUNhbWVyYTokMmUsZmFDYW1lcmFBbHQ6V2h0LGZhVXNlcnNSYXlzOkdodCxmYVJhaW5ib3c6WWh0LGZhU2l0ZW1hcDpaaHQsZmFGYWNlR3JpblN0YXJzOkkyZSxmYUdyaW5TdGFyczpYaHQsZmFTb3J0VXA6UDJlLGZhU29ydEFzYzpRaHQsZmFFeWU6UUQsZmFDYXJldExlZnQ6SkQsZmFBcHBsZVdob2xlOk4yZSxmYUFwcGxlQWx0OkpodCxmYVNjcm9sbFRvcmFoOkYyZSxmYVRvcmFoOktodCxmYUhvdXNlTG9jazplZnQsZmFBcnJvd3NMZWZ0UmlnaHRUb0xpbmU6dGZ0LGZhVHJhc2g6bmIsZmFGYWNlU2FkVGVhcjpPMmUsZmFTYWRUZWFyOnJmdCxmYUZheDppZnQsZmFQZXJzb25DaXJjbGVQbHVzOmFmdCxmYUhhbXNhOm5mdCxmYVBlcnNvbkNpcmNsZVF1ZXN0aW9uOm9mdCxmYUNsaXBib2FyZENoZWNrOnNmdCxmYVNoYXJlRnJvbVNxdWFyZTpSMmUsZmFTaGFyZVNxdWFyZTpsZnQsZmFSZWNlaXB0OktELGZhRXF1YWxzOmNmdCxmYUNoZXZyb25VcDpkZnQsZmFWaXJ1c1NsYXNoOnVmdCxmYVNsYXNoOnBmdCxmYUV4cGFuZDpoZnQsZmFOb3RlU3RpY2t5OkIyZSxmYVN0aWNreU5vdGU6ZmZ0LGZhVGFibGVDb2x1bW5zOkgyZSxmYUNvbHVtbnM6bWZ0LGZhUGVyc29uU2hlbHRlcjpnZnQsZmFDaXJjbGVOb3RjaDpiZnQsZmFXYXRlcjp2ZnQsZmFEZWxldGVMZWZ0OnEyZSxmYUJhY2tzcGFjZTp4ZnQsZmFCcm9vbUJhbGw6bkQsZmFRdWlkZGl0Y2g6eWZ0LGZhUXVpZGRpdGNoQnJvb21CYWxsOndmdCxmYUo6TWZ0LGZhU2h1dHRsZVNwYWNlOmoyZSxmYVNwYWNlU2h1dHRsZTprZnQsZmFZaW5ZYW5nOlNmdCxmYVN0b3A6emZ0LGZhVHJvd2VsOkNmdCxmYUhhbmRCYWNrRmlzdDpWMmUsZmFIYW5kUm9jazpUZnQsZmFUZW1wZXJhdHVyZUhpZ2g6X2Z0LGZhR3JlYXRlclRoYW46TGZ0LGZhQ3J1dGNoOkFmdCxmYVNlcHRhZ29uOlUyZSxmYUhlcHRhZ29uOkRmdCxmYVN0cmVldFZpZXc6RWZ0LGZhV2F2ZVNxdWFyZTokZnQsZmFBbmdsZUxlZnQ6SWZ0LGZhU2NyZXdkcml2ZXI6UGZ0LGZhVHJhY3RvcjpOZnQsZmFCcmlkZ2VDaXJjbGVYbWFyazpGZnQsZmFWaWFsczpPZnQsZmFTdGV0aG9zY29wZTpSZnQsZmFQb2RjYXN0OkJmdCxmYUFycm93VXBSaWdodERvdHM6SGZ0LGZhQ2hlc3NRdWVlbjpxZnQsZmFBbmNob3JDaXJjbGVFeGNsYW1hdGlvbjpqZnQsZmFFbGxpcHNpc1ZlcnRpY2FsOlcyZSxmYUVsbGlwc2lzVjpWZnQsZmFIZWFydENpcmNsZUV4Y2xhbWF0aW9uOlVmdCxmYUJ1aWxkaW5nQ2lyY2xlRXhjbGFtYXRpb246V2Z0LGZhUGVyc29uQXJyb3dVcEZyb21MaW5lOkdmdCxmYU5vdEVxdWFsOllmdCxmYVRyYWluVHJhbTpaZnQsZmFQbGFuZURlcGFydHVyZTpYZnQsZmFSaWdodFRvQnJhY2tldDpHMmUsZmFTaWduSW5BbHQ6UWZ0LGZhU2RDYXJkOkpmdCxmYUhvdXNlQ2lyY2xlRXhjbGFtYXRpb246S2Z0LGZhU2hla2VsU2lnbjpOcCxmYUlsczplN3QsZmFTaGVrZWw6dDd0LGZhU2hlcWVsOnI3dCxmYVNoZXFlbFNpZ246aTd0LGZhUmFkaW86YTd0LGZhSGFuZERvdHM6WTJlLGZhQWxsZXJnaWVzOm43dCxmYUJvb2tTa3VsbDpaMmUsZmFCb29rRGVhZDpvN3QsZmFVbmxvY2tLZXlob2xlOlgyZSxmYVVubG9ja0FsdDpzN3QsZmFGaWxlQXJyb3dVcDpRMmUsZmFGaWxlVXBsb2FkOmw3dCxmYUZhY2VHcmluVGVhcnM6SjJlLGZhR3JpblRlYXJzOmM3dCxmYVBlblRvU3F1YXJlOllnLGZhRWRpdDpkN3QsZmFFYXJ0aEV1cm9wZTpLMmUsZmFHbG9iZUV1cm9wZTp1N3QsZmFGYWNlR3JpbkJlYW1Td2VhdDplc2UsZmFHcmluQmVhbVN3ZWF0OnA3dCxmYUNpcmNsZUhhbGZTdHJva2U6dHNlLGZhQWRqdXN0Omg3dCxmYVBlcnNvbk1pbGl0YXJ5VG9QZXJzb246Zjd0LGZhVGFibGVDZWxsc0NvbHVtbkxvY2s6bTd0LGZhVHJ1Y2tGaWVsZFVuOmc3dCxmYUNsb2NrOnJzZSxmYUNsb2NrRm91cjpiN3QsZmFCb29rOnY3dCxmYUZhY2VMYXVnaFdpbms6aXNlLGZhTGF1Z2hXaW5rOng3dCxmYUNsb3VkTWVhdGJhbGw6eTd0LGZhQ2hhcnRBcmVhOmFzZSxmYUFyZWFDaGFydDp3N3QsZmFSdXBpYWhTaWduOk03dCxmYVRleHRXaWR0aDprN3QsZmFTYXRlbGxpdGU6Uzd0LGZhTWFnbmlmeWluZ0dsYXNzTWludXM6bnNlLGZhU2VhcmNoTWludXM6ejd0LGZhUGVvcGxlR3JvdXA6Qzd0LGZhU3F1YXJlQmluYXJ5OlQ3dCxmYU1hc2tzVGhlYXRlcjpvc2UsZmFUaGVhdGVyTWFza3M6Xzd0LGZhQ2FydFBsdXM6TDd0LGZhSGFuZHNBc2xJbnRlcnByZXRpbmc6TGcsZmFBbWVyaWNhblNpZ25MYW5ndWFnZUludGVycHJldGluZzpBN3QsZmFBc2xJbnRlcnByZXRpbmc6RDd0LGZhSGFuZHNBbWVyaWNhblNpZ25MYW5ndWFnZUludGVycHJldGluZzpFN3QsZmFUYWJsZUNlbGxzUm93VW5sb2NrOiQ3dCxmYVJvY2tldDpJN3QsZmFTaHJpbXA6UDd0LGZhVGVuZ2VTaWduOnNzZSxmYVRlbmdlOk43dCxmYUhvdXNlQ2hpbW5leU1lZGljYWw6bHNlLGZhQ2xpbmljTWVkaWNhbDpGN3QsZmFVc2Vyc1NsYXNoOk83dCxmYVBhcGVyUGxhbmU6Ujd0LGZhQm9va0F0bGFzOmNzZSxmYUF0bGFzOkI3dCxmYVRhYmxlOkg3dCxmYUhlYXJ0OnE3dCxmYUNpcmNsZUNoZXZyb25VcDpkc2UsZmFDaGV2cm9uQ2lyY2xlVXA6ajd0LGZhQmF0dGVyeUhhbGY6dXNlLGZhQmF0dGVyeTM6Vjd0LGZhRm9udEF3ZXNvbWU6b0QsZmFGb250QXdlc29tZUZsYWc6VTd0LGZhRm9udEF3ZXNvbWVMb2dvRnVsbDpXN3QsZmFIYW5kY3VmZnM6Rzd0LGZhSGF0Q293Ym95U2lkZTpZN3QsZmFJbmR1c3RyeTpaN3QsZmFMaW5lc0xlYW5pbmc6WDd0LGZhUGFzc3BvcnQ6UTd0LGZhSW5maW5pdHk6Sjd0LGZhQ2xvbmU6Szd0LGZhRm9yd2FyZDplbXQsZmFNOnRtdCxmYVJvYWRTcGlrZXM6cm10LGZhTW91bnRhaW46aW10LGZhQ2hlc3M6YW10LGZhVGVtcGVyYXR1cmVUaHJlZVF1YXJ0ZXJzOkFnLGZhVGVtcGVyYXR1cmUzOm5tdCxmYVRoZXJtb21ldGVyMzpvbXQsZmFUaGVybW9tZXRlclRocmVlUXVhcnRlcnM6c210LGZhQjpsbXQsZmFTaGllbGRWaXJ1czpjbXQsZmFMaXRlY29pblNpZ246ZG10LGZhRGljZUQ2OnVtdCxmYUdyaXBMaW5lc1ZlcnRpY2FsOnBtdCxmYUdvbGZCYWxsVGVlOnBzZSxmYUdvbGZCYWxsOmhtdCxmYUhleGFnb246Zm10LGZhRm9sZGVyT3BlbjptbXQsZmFLYWFiYTpnbXQsZmFIYW5kSG9sZGluZzpibXQsZmFTaW5nbGVRdW90ZVJpZ2h0OnZtdCxmYUJvdHRsZURyb3BsZXQ6eG10LGZhV2luZG93TWluaW1pemU6eW10LGZhQ2hldnJvblJpZ2h0OndtdCxmYUVnZzpNbXQsZmFMYW5kbWFya0RvbWU6aHNlLGZhTGFuZG1hcmtBbHQ6a210LGZhV29ybTpTbXQsZmFVc2VySW5qdXJlZDp6bXQsZmFTdHJpa2V0aHJvdWdoOkNtdCxmYUJsb2c6VG10LGZhU3RvcHdhdGNoMjA6X210LGZhVHJ1Y2tQaWNrdXA6TG10LGZhU2VlZGxpbmc6ZnNlLGZhU3Byb3V0OkFtdCxmYVRyYW5zZ2VuZGVyOm1zZSxmYVRyYW5zZ2VuZGVyQWx0OkRtdCxmYVN0YXJIYWxmOkVtdCxmYVBob3RvRmlsbTpnc2UsZmFQaG90b1ZpZGVvOiRtdCxmYVBpY3R1cmVJblBpY3R1cmU6SW10LGZhUHVtcE1lZGljYWw6UG10LGZhRmlyZTpObXQsZmFNYWduaWZ5aW5nR2xhc3NQbHVzOmJzZSxmYVNlYXJjaFBsdXM6Rm10LGZhRmxhc2s6T210LGZhQWxpZ25SaWdodDpSbXQsZmFDYWJsZUNhcjp2c2UsZmFUcmFtOkJtdCxmYUtpdE1lZGljYWw6eHNlLGZhRmlyc3RBaWQ6SG10LGZhR3JpcExpbmVzOnFtdCxmYUJ1cmdlcjp5c2UsZmFIYW1idXJnZXI6am10LGZhU25vd21hbjpWbXQsZmFIb3RlbDpVbXQsZmFQcmludDpXbXQsZmFWb2xsZXliYWxsOndzZSxmYVZvbGxleWJhbGxCYWxsOkdtdCxmYVRyYWZmaWNMaWdodDpZbXQsZmFQbGFuZUNpcmNsZUNoZWNrOlptdCxmYVVzZXJzOmVFLGZhQ2VydGlmaWNhdGU6WG10LGZhQWxhcm1DbG9jazpRbXQsZmFIZWxpY29wdGVyU3ltYm9sOkptdCxmYUhvdXNlQ2hpbW5leUNyYWNrOk1zZSxmYUhvdXNlRGFtYWdlOkttdCxmYVBlcnNvbk1pbGl0YXJ5UG9pbnRpbmc6ZTl0LGZhRGF0YWJhc2U6dDl0LGZhTmV3c3BhcGVyOnI5dCxmYUNsb3VkUmFpbjppOXQsZmFNYXhpbWl6ZTprc2UsZmFFeHBhbmRBcnJvd3NBbHQ6YTl0LGZhTG9jYXRpb25BcnJvdzpuOXQsZmFDaXR5Om85dCxmYVhSYXk6czl0LGZhVW1icmVsbGFCZWFjaDpsOXQsZmFBcnJvd1JpZ2h0VG9CcmFja2V0OlNzZSxmYVNpZ25JbjpjOXQsZmFIZWFkc2V0OmQ5dCxmYVNwbG90Y2g6dTl0LGZhVXBMb25nOnpzZSxmYUxvbmdBcnJvd0FsdFVwOnA5dCxmYUhleGFnb25Ob2RlczpoOXQsZmFIb3NwaXRhbDpzRCxmYUhvc3BpdGFsQWx0OmY5dCxmYUhvc3BpdGFsV2lkZTptOXQsZmFQZXJzb25IYXJhc3Npbmc6Zzl0LGZhTW9uZXlCaWxsVHJlbmRVcDpiOXQsZmFQZW5SdWxlcjpDc2UsZmFQZW5jaWxSdWxlcjp2OXQsZmFSZXBlYXQ6eDl0LGZhQm9uZTp5OXQsZmFGaXJlRmxhbWVDdXJ2ZWQ6VHNlLGZhRmlyZUFsdDp3OXQsZmFCdXNTaW1wbGU6X3NlLGZhQnVzQWx0Ok05dCxmYVZlbnVzTWFyczprOXQsZmFCbGVuZGVyOlM5dCxmYVU6ejl0LGZhU2hhcmU6WmcsZmFNYWlsRm9yd2FyZDpDOXQsZmFQaG9uZUZsaXA6THNlLGZhUGhvbmVBbHQ6VDl0LGZhVG9pbGV0UG9ydGFibGU6Xzl0LGZhUGVyc29uUHJlZ25hbnQ6TDl0LGZhTGVzc1RoYW46QTl0LGZhU3VwZXJzY3JpcHQ6RDl0LGZhQ2lyY2xlU3RvcDpBc2UsZmFTdG9wQ2lyY2xlOkU5dCxmYUFycm93c1VwRG93bjpEc2UsZmFBcnJvd3NWOiQ5dCxmYVBvb1N0b3JtOkVzZSxmYVBvb0JvbHQ6STl0LGZhVmlkZW9TbGFzaDpQOXQsZmFTcXVhcmVYbWFyazpsRCxmYVRpbWVzU3F1YXJlOk45dCxmYVhtYXJrU3F1YXJlOkY5dCxmYUhhbmRIb2xkaW5nRHJvcGxldDokc2UsZmFIYW5kSG9sZGluZ1dhdGVyOk85dCxmYVdvblNpZ246Y0QsZmFLcnc6Ujl0LGZhV29uOkI5dCxmYU9iamVjdFVuZ3JvdXA6SDl0LGZhQ29tbWVudDpxOXQsZmFIaWxsQXZhbGFuY2hlOmo5dCxmYUFycm93c1RvRXllOlY5dCxmYVNub3dwbG93OlU5dCxmYUNoYXJ0R2FudHQ6Vzl0LGZhVmlkZW86SXNlLGZhVmlkZW9DYW1lcmE6Rzl0LGZhQ2hlc3NQYXduOlk5dCxmYVN5bmFnb2d1ZTpaOXQsZmFCdWlsZGluZ0NpcmNsZUNoZWNrOlg5dCxmYUNhbGVuZGFyUGx1czpROXQsZmFXaGVlbGNoYWlyTW92ZTpQc2UsZmFXaGVlbGNoYWlyQWx0Oko5dCxmYVVzZXJTaGllbGQ6Szl0LGZhQm9sZDplZ3QsZmFIZWFydFB1bHNlOk5zZSxmYUhlYXJ0YmVhdDp0Z3QsZmFTcXVhcmVSb290VmFyaWFibGU6RnNlLGZhU3F1YXJlUm9vdEFsdDpyZ3QsZmFIYW5kc0J1YmJsZXM6T3NlLGZhSGFuZHNXYXNoOmlndCxmYU1hcmtlcjphZ3QsZmFDbGlwYm9hcmQ6bmd0LGZhUGxhY2VPZldvcnNoaXA6b2d0LGZhQ2FubmFiaXM6c2d0LGZhUGVvcGxlUm9vZjpsZ3QsZmFEaXNlYXNlOmNndCxmYUJvb2tCaWJsZTpSc2UsZmFCaWJsZTpkZ3QsZmFDaGVzc0JvYXJkOnVndCxmYU1hcnM6cGd0LGZhTGFwdG9wOmhndCxmYVVzZXJYbWFyazpCc2UsZmFVc2VyVGltZXM6Zmd0LGZhRmxhZ1VzYTptZ3QsZmFIYW5kTWlkZGxlRmluZ2VyOmdndCxmYU1vcnRhclBlc3RsZTpiZ3QsZmFIZWFkU2lkZUNvdWdoOnZndCxmYVBsYW5lTG9jazp4Z3QsZmFCYXR0ZXJ5VGhyZWVRdWFydGVyczpIc2UsZmFCYXR0ZXJ5NDp5Z3QsZmFGcmFuY1NpZ246d2d0LGZhRmlsdGVyQ2lyY2xlRG9sbGFyOnFzZSxmYUZ1bm5lbERvbGxhcjpNZ3QsZmFDaGVlc2U6a2d0LGZhQ2lyY2xlSDpqc2UsZmFIb3NwaXRhbFN5bWJvbDpTZ3QsZmFTY2hvb2w6emd0LGZhRGljZUZpdmU6Q2d0LGZhVG9ybmFkbzpUZ3QsZmFKZXRGaWdodGVyOlZzZSxmYUZpZ2h0ZXJKZXQ6X2d0LGZhVGh1bWJzRG93bjpMZ3QsZmFCcm9vbTpBZ3QsZmFGaWxlSW1wb3J0OlVzZSxmYUFycm93UmlnaHRUb0ZpbGU6RGd0LGZhVXRlbnNpbHM6V3NlLGZhQ3V0bGVyeTpFZ3QsZmFJZEJhZGdlOiRndCxmYVNwaWRlcjpJZ3QsZmFNb2JpbGVSZXRybzpQZ3QsZmFTaWduc1Bvc3Q6R3NlLGZhTWFwU2lnbnM6Tmd0LGZhR3JvdXBBcnJvd3NSb3RhdGU6Rmd0LGZhQXJyb3dzU3BsaXRVcEFuZExlZnQ6T2d0LGZhRmlsbERyaXA6Umd0LGZhU2hpZWxkSGVhcnQ6Qmd0LGZhUGVyc29uU2tpaW5nTm9yZGljOllzZSxmYVNraWluZ05vcmRpYzpIZ3QsZmFTcXVhcmVDaGVjazpac2UsZmFDaGVja1NxdWFyZTpxZ3QsZmFCYXRoOlhzZSxmYUJhdGh0dWI6amd0LGZhQ2hlc3NCaXNob3A6Vmd0LGZhUHJlc2NyaXB0aW9uQm90dGxlTWVkaWNhbDpRc2UsZmFQcmVzY3JpcHRpb25Cb3R0bGVBbHQ6VWd0LGZhRHJhd1BvbHlnb246SnNlLGZhVmVjdG9yUG9seWdvbjpXZ3QsZmFJQ3Vyc29yOkdndCxmYUhlYXJ0Q2lyY2xlUGx1czpZZ3QsZmFTaGllbGREb2c6Wmd0LGZhR3JlYXRlclRoYW5FcXVhbDpYZ3QsZmFFbnZlbG9wZU9wZW46UWd0LGZhTW91bmQ6Smd0LGZhVm9pY2VtYWlsOktndCxmYVZlc3Q6ZWJ0LGZhQXVkaW9EZXNjcmlwdGlvbjp0YnQsZmFXOnJidCxmYUV5ZURyb3BwZXI6ZEQsZmFFeWVEcm9wcGVyRW1wdHk6aWJ0LGZhRXllZHJvcHBlcjphYnQsZmFDaXJjbGVYbWFyazpCcCxmYVRpbWVzQ2lyY2xlOm5idCxmYVhtYXJrQ2lyY2xlOm9idCxmYVRyYWlsZXI6c2J0LGZhVHVya2lzaExpcmFTaWduOnVELGZhVHJ5OmxidCxmYVR1cmtpc2hMaXJhOmNidCxmYVZvbGNhbm86ZGJ0LGZhV2FuZFNwYXJrbGVzOnVidCxmYU1pY3JvcGhvbmU6cGJ0LGZhQ3Jvd246aGJ0LGZhVGVudEFycm93VHVybkxlZnQ6ZmJ0LGZhVHJ1Y2tGYXN0OktzZSxmYVNoaXBwaW5nRmFzdDptYnQsZmFVc2VyUGVuOmVsZSxmYVVzZXJFZGl0OmdidCxmYVVzZXJDbG9jazpiYnQsZmFTaG93ZXI6dmJ0LGZhU3F1YXJlQ2FyZXRVcDp0bGUsZmFDYXJldFNxdWFyZVVwOnhidCxmYU1hcExvY2F0aW9uOnJsZSxmYU1hcE1hcmtlZDp5YnQsZmFQZW5GYW5jeTp3YnQsZmFFdXJvU2lnbjpwRCxmYUV1cjpNYnQsZmFFdXJvOmtidCxmYUhvdXNlQ2lyY2xlWG1hcms6U2J0LGZhTGlyYVNpZ246emJ0LGZhWWVuU2lnbjpGcCxmYUNueTpDYnQsZmFKcHk6VGJ0LGZhUm1iOl9idCxmYVllbjpMYnQsZmFCb3hPcGVuOkFidCxmYVRydWNrRmllbGQ6RGJ0LGZhTG9jYXRpb25QaW5Mb2NrOkVidCxmYVBlcnNvblByYXlpbmc6aWxlLGZhUHJheTokYnQsZmFDbGlwYm9hcmRMaXN0OklidCxmYVNhY2tEb2xsYXI6UGJ0LGZhTW91bnRhaW5TdW46TmJ0LGZhQXJyb3dVcFdpZGVTaG9ydDphbGUsZmFTb3J0QW1vdW50VXA6RmJ0LGZhVXNlcnNMaW5lOk9idCxmYVN0YXJPZkRhdmlkOlJidCxmYU5vdGVzTWVkaWNhbDpCYnQsZmFBdXN0cmFsU2lnbjpIYnQsZmFDbGlwYm9hcmRVc2VyOnFidCxmYUZpbGVJbWFnZTpqYnQsZmFTcXVhcmVDYXJldFJpZ2h0Om5sZSxmYUNhcmV0U3F1YXJlUmlnaHQ6VmJ0LGZhVmlhbDpVYnQsZmFIZWxpY29wdGVyOldidCxmYU1pdHRlbjpHYnQsZmFHYXNQdW1wOllidCxmYUVudmVsb3BlQ2lyY2xlQ2hlY2s6WmJ0LGZhUGVyc29uU2thdGluZzpvbGUsZmFTa2F0aW5nOlhidCxmYVN1bjp0RSxmYUJhc2ViYWxsOnNsZSxmYUJhc2ViYWxsQmFsbDpRYnQsZmFJbWFnZTpKYnQsZmFOb3RkZWY6S2J0LGZhQmFza2V0YmFsbDpsbGUsZmFCYXNrZXRiYWxsQmFsbDpldnQsZmFQZW5jaWw6Y2xlLGZhUGVuY2lsQWx0OnR2dCxmYVBlcnNvbldhbGtpbmdBcnJvd0xvb3BMZWZ0OnJ2dCxmYURpY2VTaXg6aXZ0LGZhQW5nbGVzRG93bjpkbGUsZmFBbmdsZURvdWJsZURvd246YXZ0LGZhU3lyaW5nZTpudnQsZmFXaGVhdEF3bjp1bGUsZmFXaGVhdEFsdDpvdnQsZmFQbGFuZVVwOnN2dCxmYUFsaWduQ2VudGVyOmx2dCxmYUhvY2tleVB1Y2s6Y3Z0LGZhQ2lyY2xlQXJyb3dMZWZ0OnBsZSxmYUFycm93Q2lyY2xlTGVmdDpkdnQsZmFQbHVnQ2lyY2xlQm9sdDp1dnQsZmFSZXN0cm9vbTpwdnQsZmFBbmNob3JMb2NrOmh2dCxmYVRpbWVsaW5lOmZ2dCxmYUxpZ2h0YnVsYjptdnQsZmFDaXJjbGVBcnJvd1JpZ2h0OmhsZSxmYUFycm93Q2lyY2xlUmlnaHQ6Z3Z0LGZhTWFyc0FuZFZlbnVzOmJ2dCxmYU5ldHdvcmtXaXJlZDpyRSxmYUJ1aWxkaW5nU2hpZWxkOnZ2dCxmYUNvZGU6eHZ0LGZhRmVhdGhlclBvaW50ZWQ6ZmxlLGZhRmVhdGhlckFsdDp5dnQsZmFGaWxlQ2lyY2xlUXVlc3Rpb246d3Z0LGZhU2lnbmF0dXJlOk12dCxmYUVhcnRoQW1lcmljYXM6RGcsZmFFYXJ0aDprdnQsZmFFYXJ0aEFtZXJpY2E6U3Z0LGZhR2xvYmVBbWVyaWNhczp6dnQsZmFDYXJyb3Q6Q3Z0LGZhVGVtcGVyYXR1cmVGdWxsOkVnLGZhVGVtcGVyYXR1cmU0OlR2dCxmYVRoZXJtb21ldGVyNDpfdnQsZmFUaGVybW9tZXRlckZ1bGw6THZ0LGZhVGFibGVDZWxsc1Jvd0xvY2s6QXZ0LGZhQm9sdExpZ2h0bmluZzpEdnQsZmFDbG91ZFNob3dlcnNXYXRlcjpFdnQsZmFBcnJvd1VwTG9uZzptbGUsZmFMb25nQXJyb3dVcDokdnQsZmFBZGRyZXNzQ2FyZDpoRCxmYUNvbnRhY3RDYXJkOkl2dCxmYVZjYXJkOlB2dCxmYUFuZ2xlUmlnaHQ6TnZ0LGZhRmFjZU1laDpnbGUsZmFNZWg6RnZ0LGZhQXJyb3dVcEZyb21Hcm91bmRXYXRlcjpPdnQsZmFNYXA6UnZ0LGZhVXNlclBsdXM6QnZ0LGZhVmVudXM6SHZ0LGZhRGlhZ3JhbVN1Y2Nlc3NvcjpxdnQsZmFIZWFkU2lkZUNvdWdoU2xhc2g6anZ0LGZhRGlhZ3JhbVByb2plY3Q6YmxlLGZhUHJvamVjdERpYWdyYW06VnZ0LGZhVGVybWluYWw6aUUsZmFIb3VzZUZpcmU6VXZ0LGZhTWFzazpXdnQsZmFIdXJyaWNhbmU6R3Z0LGZhRWFydGhBZnJpY2E6dmxlLGZhR2xvYmVBZnJpY2E6WXZ0LGZhVGh1bWJ0YWNrOnhsZSxmYVRodW1iVGFjazpadnQsZmFIYW5kUG9pbnREb3duOlh2dCxmYUZhY2VNZWhCbGFuazp5bGUsZmFNZWhCbGFuazpRdnQsZmFUZW1wZXJhdHVyZUVtcHR5OiRnLGZhVGVtcGVyYXR1cmUwOkp2dCxmYVRoZXJtb21ldGVyMDpLdnQsZmFUaGVybW9tZXRlckVtcHR5OmV4dCxmYUJvcmRlck5vbmU6dHh0LGZhSGlnaGxpZ2h0ZXI6cnh0LGZhTW9uZXlCaWxsV2F2ZTppeHQsZmFUb2lsZXRQYXBlclNsYXNoOmF4dCxmYUZpbGVTaGllbGQ6bnh0LGZhVGV4dEhlaWdodDpveHQsZmFGYWNlR3JpblRvbmd1ZTp3bGUsZmFHcmluVG9uZ3VlOnN4dCxmYUZpbGVTaWduYXR1cmU6bHh0LGZhQnVpbGRpbmdXaGVhdDpjeHQsZmFQbHVnQ2lyY2xlTWludXM6ZHh0LGZhRnV0Ym9sOmZELGZhRnV0Ym9sQmFsbDp1eHQsZmFTb2NjZXJCYWxsOnB4dCxmYUNpcmNsZVBsdXM6TWxlLGZhUGx1c0NpcmNsZTpoeHQsZmFCcmF6aWxpYW5SZWFsU2lnbjpmeHQsZmFTdGFyQW5kQ3Jlc2NlbnQ6bXh0LGZhRmFjZVN1cnByaXNlOmtsZSxmYVN1cnByaXNlOmd4dCxmYUhvc3BpdGFsVXNlcjpieHQsZmFBcnJvd0Rvd25VcExvY2s6dnh0LGZhRm9sZGVyOlNsZSxmYUZvbGRlckJsYW5rOnh4dCxmYUhvbGx5QmVycnk6eXh0LGZhVmVudXNEb3VibGU6d3h0LGZhQ2xpcGJvYXJkUXVlc3Rpb246TXh0LGZhSG90ZG9nOmt4dCxmYUFycm93VXBGcm9tQnJhY2tldDpTeHQsZmFNaWNyb3Njb3BlOnp4dCxmYUNsb3VkOkN4dCxmYUJhc2ViYWxsQmF0QmFsbDpUeHQsZmFDYXJSZWFyOnpsZSxmYUNhckFsdDpfeHQsZmFUaHVtYnRhY2tTbGFzaDpDbGUsZmFUaHVtYlRhY2tTbGFzaDpMeHQsZmFQbHVzTWludXM6QXh0LGZhSG91c2VDaXJjbGVDaGVjazpEeHQsZmFDYWxlbmRhckRheTpFeHQsZmFMaWJyYTokeHQsZmFDaXJjbGU6SXh0LGZhTW9iaWxlVmlicmF0ZTpQeHQsZmFGYWNlR3JpblNxdWludDpUbGUsZmFHcmluU3F1aW50Ok54dCxmYVVzZXJzQmV0d2VlbkxpbmVzOkZ4dCxmYUhvdXNlTWVkaWNhbENpcmNsZVhtYXJrOk94dCxmYVRhYmxlTGlzdDpfbGUsZmFUaExpc3Q6Unh0LGZhRmxhc2tWaWFsOkJ4dCxmYUNpcmNsZUV4Y2xhbWF0aW9uOkxsZSxmYUV4Y2xhbWF0aW9uQ2lyY2xlOkh4dCxmYVRheGk6QWxlLGZhQ2FiOnF4dCxmYVRleHRTbGFzaDpEbGUsZmFSZW1vdmVGb3JtYXQ6anh0LGZhUGVvcGxlUHVsbGluZzpWeHQsZmFCYWNrd2FyZDpVeHQsZmFDYXJCdXJzdDpFbGUsZmFDYXJDcmFzaDpXeHQsZmFMaW5rOiRsZSxmYUNoYWluOkd4dCxmYUJhY2t3YXJkU3RlcDpJbGUsZmFTdGVwQmFja3dhcmQ6WXh0LGZhWDpaeHQsZmFDaXJjbGVVc2VyOlBsZSxmYVVzZXJDaXJjbGU6WHh0LGZhUmVjdGFuZ2xlTGlzdDpObGUsZmFMaXN0QWx0OlF4dCxmYUhhbmQ6RmxlLGZhSGFuZFBhcGVyOkp4dCxmYUNhbmNlcjpLeHQsZmFWYW5TaHV0dGxlOk9sZSxmYVNodXR0bGVWYW46ZXl0LGZhU3RhaXJzOnR5dCxmYUhvcnNlSGVhZDpyeXQsZmFWYXVsdDppeXQsZmFDbG9zZWRDYXB0aW9uaW5nU2xhc2g6YXl0LGZhRHJ1bVN0ZWVscGFuOm55dCxmYVRodW1ic1VwOm95dCxmYVN0YW1wOnN5dCxmYU1lbm9yYWg6bHl0LGZhQ2hpbGRyZW46Y3l0LGZhQ2hhcnRMaW5lOlJsZSxmYUxpbmVDaGFydDpkeXQsZmFTcXVhcmVFbnZlbG9wZTpCbGUsZmFFbnZlbG9wZVNxdWFyZTp1eXQsZmFCYW5TbW9raW5nOkhsZSxmYVNtb2tpbmdCYW46cHl0LGZhVHJ1Y2tGcm9udDpoeXQsZmFCdWlsZGluZzphRSxmYUJ1bGxzZXllOmZ5dCxmYUFycm93TGVmdExvbmc6cWxlLGZhTG9uZ0Fycm93TGVmdDpteXQsZmFDaGVzc1Jvb2s6Z3l0LGZhQmxlbmRlclBob25lOmJ5dCxmYUFycm93VHVyblVwOmpsZSxmYUxldmVsVXA6dnl0LGZhQmljeWNsZTp4eXQsZmFDaXJjbGVBcnJvd0Rvd246VmxlLGZhQXJyb3dDaXJjbGVEb3duOnl5dCxmYUdlYXI6WGcsZmFDb2c6d3l0LGZhTWFyc0FuZFZlbnVzQnVyc3Q6TXl0LGZhT3R0ZXI6a3l0LGZhQ2lyY2xlQ2hldnJvbkxlZnQ6VWxlLGZhQ2hldnJvbkNpcmNsZUxlZnQ6U3l0LGZhQ2lyY2xlUXVlc3Rpb246V2xlLGZhUXVlc3Rpb25DaXJjbGU6enl0LGZhV2Fsa2llVGFsa2llOkN5dCxmYVVzZXJHcm91cDpHbGUsZmFVc2VyRnJpZW5kczpUeXQsZmFIb3VzZUNoaW1uZXk6WWxlLGZhSG9tZUxnOl95dCxmYVJpZ2h0RnJvbUJyYWNrZXQ6WmxlLGZhU2lnbk91dEFsdDpMeXQsZmFGaWxlOkF5dCxmYVBsYW5lU2xhc2g6RHl0LGZhQ2xvdWRTaG93ZXJzSGVhdnk6RXl0LGZhUGVyc29uRmFsbGluZzokeXQsZmFUdXJuRG93bjpYbGUsZmFMZXZlbERvd25BbHQ6SXl0LGZhVXBSaWdodEFuZERvd25MZWZ0RnJvbUNlbnRlcjpRbGUsZmFFeHBhbmRBbHQ6UHl0LGZhVXNlclRhZzpOeXQsZmFIYW5kU3BhcmtsZXM6Rnl0LGZhQXJyb3dzVG9Eb3Q6T3l0LGZhRmFjZVNhZENyeTpKbGUsZmFTYWRDcnk6Unl0LGZhRG9uZ1NpZ246Qnl0LGZhUGVvcGxlTGluZTpIeXQsZmFTcXVhcmVSc3M6S2xlLGZhUnNzU3F1YXJlOnF5dCxmYUNhbGVuZGFyTWludXM6anl0LGZhQ2hhcnREaWFncmFtOlZ5dCxmYUZhY2VUaXJlZDplY2UsZmFUaXJlZDpVeXQsZmFIYW5kUG9pbnRSaWdodDpXeXQsZmFBcnJvd1VwOkd5dCxmYUN1YmVzU3RhY2tlZDpZeXQsZmFDaGlsZENvbWJhdGFudDp0Y2UsZmFDaGlsZFJpZmxlOlp5dCxmYVZlc3RQYXRjaGVzOlh5dCxmYU1hcnRpbmlHbGFzc0VtcHR5OnJjZSxmYUdsYXNzTWFydGluaTpReXQsZmFNYWduZXQ6Snl0LGZhUm9hZEJhcnJpZXI6S3l0LGZhQ29tcGFzc0RyYWZ0aW5nOmljZSxmYURyYWZ0aW5nQ29tcGFzczpld3QsZmFTcXVhcmVQZXJzb25Db25maW5lZDp0d3QsZmFQbGF0ZVdoZWF0OnJ3dCxmYVNpZ25IYW5naW5nOmFjZSxmYVNpZ246aXd0LGZhQ2FyQmF0dGVyeTpuY2UsZmFCYXR0ZXJ5Q2FyOmF3dCxmYVNoaXJ0Om1ELGZhVFNoaXJ0Om53dCxmYVRzaGlydDpvd3QsZmFQYXJhZ3JhcGg6c3d0LGZhRW52ZWxvcGVzQnVsazpvY2UsZmFNYWlsQnVsazpsd3QsZmFHdWl0YXI6Y3d0LGZhU3VpdGNhc2U6ZHd0LGZhQ2lyY2xlVXA6c2NlLGZhQXJyb3dBbHRDaXJjbGVVcDp1d3QsZmFGOnB3dCxmYVhtYXJrc0xpbmVzOmh3dCxmYUVhcnRoT2NlYW5pYTpsY2UsZmFHbG9iZU9jZWFuaWE6Znd0LGZhQ29tbWVudFNsYXNoOm13dCxmYVBsYXk6Z3d0LGZhVmlhbENpcmNsZUNoZWNrOmJ3dCxmYUJyaWRnZUNpcmNsZUNoZWNrOnZ3dCxmYUNlZGlTaWduOnh3dCxmYVB1enpsZVBpZWNlOnl3dCxmYUhlbG1ldFVuOnd3dCxmYUdsYXNzV2F0ZXI6TXd0LGZhSGVhcnRDaXJjbGVCb2x0Omt3dCxmYVB1bXBTb2FwOlN3dCxmYUhhbmRTY2lzc29yczp6d3QsZmFEb2xseTpjY2UsZmFEb2xseUJveDpDd3QsZmFQYXBlcmNsaXA6bkUsZmFEZW1vY3JhdDpUd3QsZmFTcXVhcmVBcnJvd1VwUmlnaHQ6ZGNlLGZhRXh0ZXJuYWxMaW5rU3F1YXJlOl93dCxmYUZlcnJ5Okx3dCxmYU1vc3F1aXRvOkF3dCxmYUJ1aWxkaW5nQ2lyY2xlQXJyb3dSaWdodDpEd3QsZmFMZWZ0UmlnaHQ6dWNlLGZhQXJyb3dzQWx0SDpFd3QsZmFWaXJ1czokd3QsZmFHZW06SXd0LGZhVG9pbGV0OlB3dCxmYVNpbmdsZVF1b3RlTGVmdDpOd3QsZmFNb25leUJpbGxzOkZ3dCxmYVRhYmxldEJ1dHRvbjpPd3QsZmFSZWN0YW5nbGVYbWFyazpJZyxmYVJlY3RhbmdsZVRpbWVzOlJ3dCxmYVRpbWVzUmVjdGFuZ2xlOkJ3dCxmYVdpbmRvd0Nsb3NlOkh3dCxmYVdyZW5jaDpxd3QsZmFUcmFzaENhbjpRZyxmYVRyYXNoQWx0Omp3dCxmYVRhYmxlQ2VsbHM6cGNlLGZhVGg6Vnd0LGZhUmliYm9uOlV3dCxmYUxhbmRtYXJrRmxhZzpXd3QsZmFVcERvd25MZWZ0UmlnaHQ6aGNlLGZhQXJyb3dzQWx0Okd3dCxmYUNhclNpZGU6WXd0LGZhVHJhc2hBcnJvd1VwOmZjZSxmYVRyYXNoUmVzdG9yZTpad3QsZmFMaWZlUmluZzpYd3QsZmFDb3B5cmlnaHQ6UXd0LGZhRmlsZVByZXNjcmlwdGlvbjpKd3QsZmFFcmFzZXI6S3d0LGZhSG91cmdsYXNzU3RhcnQ6bWNlLGZhSG91cmdsYXNzMTplTXQsZmFDaXJjbGVMZWZ0OmdjZSxmYUFycm93QWx0Q2lyY2xlTGVmdDp0TXQsZmFDcnV6ZWlyb1NpZ246ck10LGZhU21va2luZzppTXQsZmFTcXVhcmVQb2xsVmVydGljYWw6YmNlLGZhUG9sbDphTXQsZmFQZXJzb25DaXJjbGVNaW51czpuTXQsZmFCaW9oYXphcmQ6b010LGZhQmVsbENvbmNpZXJnZTp2Y2UsZmFDb25jaWVyZ2VCZWxsOnNNdCxmYVJ1bGVySG9yaXpvbnRhbDpsTXQsZmFIb3JzZTpjTXQsZmFDYWxlbmRhcjpkTXQsZmFIYW5kc0hvbGRpbmdDaGlsZDp1TXQsZmFJdGFsaWM6cE10LGZhS2hhbmRhOmhNdCxmYUZhY2VGcm93bk9wZW46eGNlLGZhRnJvd25PcGVuOmZNdCxmYUNoZWNrOm9FLGZhRmluZ2VycHJpbnQ6bU10LGZhQ2hhcmdpbmdTdGF0aW9uOmdNdCxmYVVzZXJMb2NrOmJNdCxmYU1vYmlsZVNjcmVlbkJ1dHRvbjp5Y2UsZmFNb2JpbGVBbHQ6dk10LGZhQW5jaG9yQ2lyY2xlQ2hlY2s6eE10LGZhUGVyc29uV2Fsa2luZ1dpdGhDYW5lOndjZSxmYUJsaW5kOnlNdCxmYUZpbGVXYXZlZm9ybTpNY2UsZmFGaWxlTWVkaWNhbEFsdDp3TXQsZmFIb3VzZUNyYWNrOk1NdCxmYUhhdFdpemFyZDprTXQsZmFVc2VyRG9jdG9yOmtjZSxmYVVzZXJNZDpTTXQsZmFDaGFydEJhcjpTY2UsZmFCYXJDaGFydDp6TXQsZmFTcHJheUNhblNwYXJrbGVzOnpjZSxmYUFpckZyZXNoZW5lcjpDTXQsZmFCYWh0U2lnbjpUTXQsZmFUZW1wZXJhdHVyZUFycm93VXA6Q2NlLGZhVGVtcGVyYXR1cmVVcDpfTXQsZmFXZWJBd2Vzb21lOkxNdCxmYU5vbkJpbmFyeTpBTXQsZmFOOkRNdCxmYUFycm93c1VwRG93bkxlZnRSaWdodDpUY2UsZmFBcnJvd3M6RU10LGZhSG91c2U6UGcsZmFIb21lOiRNdCxmYUhvbWVBbHQ6SU10LGZhSG9tZUxnQWx0OlBNdCxmYVNwaW5uZXI6Tk10LGZhR2F2ZWw6X2NlLGZhTGVnYWw6Rk10LGZhVGlja2V0U2ltcGxlOkxjZSxmYVRpY2tldEFsdDpPTXQsZmFEb3ZlOlJNdCxmYVRhcnBEcm9wbGV0OkJNdCxmYVRyZWVDaXR5OkhNdCxmYVR1cm5VcDpBY2UsZmFMZXZlbFVwQWx0OnFNdCxmYVRlbXBlcmF0dXJlUXVhcnRlcjpOZyxmYVRlbXBlcmF0dXJlMTpqTXQsZmFUaGVybW9tZXRlcjE6Vk10LGZhVGhlcm1vbWV0ZXJRdWFydGVyOlVNdCxmYVNsaWRlcnM6RGNlLGZhU2xpZGVyc0g6V010LGZhTW9zcXVlOkdNdCxmYUg6WU10LGZhSW5mbzpaTXQsZmFQZXJzb25XYWxraW5nOkVjZSxmYVdhbGtpbmc6WE10LGZhQXJyb3dUdXJuRG93bjokY2UsZmFMZXZlbERvd246UU10LGZhUm9hZDpKTXQsZmFTcGlyYWw6S010LGZhRmFjZUZyb3duOkljZSxmYUZyb3duOmVrdCxmYVdpbmVHbGFzc0VtcHR5OlBjZSxmYVdpbmVHbGFzc0FsdDp0a3QsZmFDbGFwcGVyYm9hcmQ6cmt0LGZhRm9yd2FyZFN0ZXA6TmNlLGZhU3RlcEZvcndhcmQ6aWt0LGZhU3F1YXJlVXBSaWdodDpGY2UsZmFFeHRlcm5hbExpbmtTcXVhcmVBbHQ6YWt0LGZhQm9va0pvdXJuYWxXaGlsbHM6T2NlLGZhSm91cm5hbFdoaWxsczpua3QsZmFDaGFtcGFnbmVHbGFzc2VzOlJjZSxmYUdsYXNzQ2hlZXJzOm9rdCxmYUR1bXBzdGVyOnNrdCxmYUhlYXJ0Q2lyY2xlWG1hcms6bGt0LGZhQ29tcHV0ZXI6Y2t0LGZhV2FuZE1hZ2ljOkJjZSxmYU1hZ2ljOmRrdCxmYUJyYWluOnVrdCxmYUJyaWVmY2FzZU1lZGljYWw6cGt0LGZhSG91c2VNZWRpY2FsQ2lyY2xlRXhjbGFtYXRpb246aGt0LGZhQ29kZUNvbW1pdDpma3QsZmFQZXJzb25CcmVhc3RmZWVkaW5nOm1rdCxmYVBlcnNvblJheXM6Z2t0LGZhTWFuYXRTaWduOmJrdCxmYVNvcnQ6SGNlLGZhVW5zb3J0ZWQ6dmt0LGZhQ2lyY2xlUmFkaWF0aW9uOnFjZSxmYVJhZGlhdGlvbkFsdDp4a3QsZmFMYXB0b3BDb2RlOnlrdCxmYVNpbms6d2t0LGZhQXJyb3dVcEZyb21XYXRlclB1bXA6TWt0LGZhTWljcm9waG9uZUxpbmVzU2xhc2g6amNlLGZhTWljcm9waG9uZUFsdFNsYXNoOmtrdCxmYVNlcnZlcjpTa3QsZmFVc2VyOmdELGZhVXNlckFsdDp6a3QsZmFVc2VyTGFyZ2U6Q2t0LGZhU25vd2ZsYWtlOlRrdCxmYVRhdXJ1czpfa3QsZmFTa3VsbENyb3NzYm9uZXM6TGt0LGZhUGVzb1NpZ246QWt0LGZhV2luZUdsYXNzOkRrdCxmYVRlbXBlcmF0dXJlSGFsZjpGZyxmYVRlbXBlcmF0dXJlMjpFa3QsZmFUaGVybW9tZXRlcjI6JGt0LGZhVGhlcm1vbWV0ZXJIYWxmOklrdCxmYVRpY2tldDpQa3QsZmFXaGVhdEF3bkNpcmNsZUV4Y2xhbWF0aW9uOk5rdCxmYUFycm93c1R1cm5SaWdodDpGa3QsZmFDYW5keUNhbmU6T2t0LGZhV2hlZWxjaGFpcjpSa3QsZmFTcGVsbENoZWNrOkJrdCxmYVZvbHVtZU9mZjpIa3QsZmFMdW5nczpxa3QsZmFCb29rbWFyazpqa3QsZmFCYXJjb2RlOlZrdCxmYUxpc3RPbDpiRCxmYUxpc3QxMjpVa3QsZmFMaXN0TnVtZXJpYzpXa3QsZmFGaWxlQ2lyY2xlWG1hcms6R2t0LGZhQ3ViZTpZa3QsZmFUYXBlOlprdCxmYUJvbWI6WGt0LGZhU2NhbGVVbmJhbGFuY2VkOlZjZSxmYUJhbGFuY2VTY2FsZUxlZnQ6UWt0LGZhU3F1YXJlQ2FyZXRMZWZ0OlVjZSxmYUNhcmV0U3F1YXJlTGVmdDpKa3QsZmFSdWxlcjpLa3QsZmFJOmVTdCxmYVZvbHVtZVhtYXJrOnZELGZhVm9sdW1lTXV0ZTp0U3QsZmFWb2x1bWVUaW1lczpyU3QsZmFBcmNod2F5OmlTdCxmYVBlcnNvbkRpZ2dpbmc6V2NlLGZhRGlnZ2luZzphU3QsZmFHYXVnZUhpZ2g6eEQsZmFUYWNob21ldGVyQWx0Om5TdCxmYVRhY2hvbWV0ZXJBbHRGYXN0Om9TdCxmYUdlbmRlcmxlc3M6c1N0LGZhQ2xvdWRTdW46bFN0LGZhQXJyb3dSaWdodDpzRSxmYUhhbmRzaGFrZTp5RCxmYUhhbmRzaGFrZUFsdDpjU3QsZmFIYW5kc2hha2VTaW1wbGU6ZFN0LGZhUGVyc29uU2tpaW5nOkdjZSxmYVNraWluZzp1U3QsZmFCcmlkZ2VXYXRlcjpwU3QsZmFCdWlsZGluZ05nbzpoU3QsZmFJZ2xvbzpmU3QsZmFDaXJjbGVEb2xsYXJUb1Nsb3Q6WWNlLGZhRG9uYXRlOm1TdCxmYVk6Z1N0LGZhRmFjZVNtaWxlV2luazpaY2UsZmFTbWlsZVdpbms6YlN0LGZhRGljZUZvdXI6dlN0LGZhRmFjZUdyaW5TcXVpbnRUZWFyczpYY2UsZmFHcmluU3F1aW50VGVhcnM6eFN0LGZhRmlsZUF1ZGlvOnlTdCxmYUFycm93c0Rvd25Ub0xpbmU6d1N0LGZhRzpNU3QsZmFWaWhhcmE6a1N0LGZhRmxhZ0NoZWNrZXJlZDpTU3QsZmFHYXVnZVNpbXBsZTp3RCxmYUdhdWdlU2ltcGxlTWVkOnpTdCxmYVRhY2hvbWV0ZXJBdmVyYWdlOkNTdCxmYVJpZ2h0TGVmdDpRY2UsZmFFeGNoYW5nZUFsdDpUU3QsZmFQaWxsczpfU3QsZmFFeHBsb3Npb246TFN0LGZhQXJyb3dzRG93blRvUGVvcGxlOkFTdCxmYVVzZXJzVmlld2ZpbmRlcjpEU3QsZmFDYXJPbjpFU3QsZmFTbGVpZ2g6JFN0LGZhRHVtYmJlbGw6SVN0LGZhQmFieUNhcnJpYWdlOkpjZSxmYUNhcnJpYWdlQmFieTpQU3QsZmFLaXdpQmlyZDpOU3QsZmFDYWxlbmRhclhtYXJrOktjZSxmYUNhbGVuZGFyVGltZXM6RlN0LGZhQ2lyY2xlRG93bjplMGUsZmFBcnJvd0FsdENpcmNsZURvd246T1N0LGZhRmlsZU1lZGljYWw6UlN0LGZhWG1hcms6RDQsZmFDbG9zZTpCU3QsZmFNdWx0aXBseTpIU3QsZmFSZW1vdmU6cVN0LGZhVGltZXM6alN0LGZhU2hhcGVzOnQwZSxmYVRyaWFuZ2xlQ2lyY2xlU3F1YXJlOlZTdCxmYURpY2VPbmU6VVN0LGZhTG9ja09wZW46V1N0LGZhUGVwcGVySG90OkdTdCxmYURyb3BsZXRTbGFzaDpyMGUsZmFUaW50U2xhc2g6WVN0LGZhRHJvcGxldDppMGUsZmFUaW50OlpTdCxmYUZpbGVMaW5lczpNRCxmYUZpbGVBbHQ6WFN0LGZhRmlsZVRleHQ6UVN0LGZhQ29tbWVudHNEb2xsYXI6SlN0LGZhTWFnbmlmeWluZ0dsYXNzTG9jYXRpb246YTBlLGZhU2VhcmNoTG9jYXRpb246S1N0LGZhRmlsZUludm9pY2U6bEUsZmFQZW50YWdvbjplenQsZmFSZXB1YmxpY2FuOnR6dCxmYVNob3A6bjBlLGZhU3RvcmVBbHQ6cnp0LGZhRmlsbTprRCxmYUZpbG1BbHQ6aXp0LGZhRmlsbVNpbXBsZTphenQsZmFCdWlsZGluZ0NpcmNsZVhtYXJrOm56dCxmYUNvbW1lbnRzOm96dCxmYVRhZ3M6c3p0LGZhR3VuOmx6dCxmYUNpcmNsZUNoZWNrOkpnLGZhQ2hlY2tDaXJjbGU6Y3p0LGZhU2NvcnBpbzpkenQsZmFJZENhcmRDbGlwOm8wZSxmYUlkQ2FyZEFsdDp1enQsZmFNb29uOnB6dCxmYU9pbFdlbGw6aHp0LGZhVGFjaG9ncmFwaERpZ2l0YWw6czBlLGZhRGlnaXRhbFRhY2hvZ3JhcGg6Znp0LGZhVGFibGV0OmwwZSxmYVRhYmxldEFuZHJvaWQ6bXp0LGZhUnVibGVTaWduOk9nLGZhUm91YmxlOmd6dCxmYVJ1YjpienQsZmFSdWJsZTp2enQsZmFDbG9zZWRDYXB0aW9uaW5nOnh6dCxmYVBlbjp5enQsZmFQbGFuZTp3enQsZmFJbWFnZXM6TXp0LGZhTW9iaWxlU2NyZWVuOmMwZSxmYU1vYmlsZUFuZHJvaWRBbHQ6a3p0LGZhR3VhcmFuaVNpZ246U3p0LGZhQmFnU2hvcHBpbmc6ZDBlLGZhU2hvcHBpbmdCYWc6enp0LGZhQ2lyY2xlUmlnaHQ6dTBlLGZhQXJyb3dBbHRDaXJjbGVSaWdodDpDenQsZmFQaG9uZVZvbHVtZTpwMGUsZmFWb2x1bWVDb250cm9sUGhvbmU6VHp0LGZhQ3ViZXM6X3p0LGZhUGhvbmU6THp0LGZhVG9yaWlHYXRlOkF6dCxmYUJhY29uOkR6dCxmYVBlcnNvbkZhbGxpbmdCdXJzdDpFenQsZmFRdW90ZVJpZ2h0OmgwZSxmYVF1b3RlUmlnaHRBbHQ6JHp0LGZhSG91c2VNZWRpY2FsRmxhZzpJenQsZmFQcmVzY3JpcHRpb246UHp0LGZhRGljZVRocmVlOk56dCxmYUJ1aWxkaW5nTG9jazpGenQsZmFJZENhcmQ6ZjBlLGZhRHJpdmVyc0xpY2Vuc2U6T3p0LGZhQ2lyY2xlUGxheTptMGUsZmFQbGF5Q2lyY2xlOlJ6dCxmYUZhY2VMYXVnaEJlYW06ZzBlLGZhTGF1Z2hCZWFtOkJ6dCxmYUxlYWY6SHp0LGZhSG91c2VDaGltbmV5VXNlcjpxenQsZmFSb3RhdGVSaWdodDpTRCxmYVJlZG9BbHQ6anp0LGZhUm90YXRlRm9yd2FyZDpWenQsZmFUb290aDpVenQsZmFIb3VzZUNoaW1uZXlXaW5kb3c6V3p0LGZhTW90b3JjeWNsZTpHenQsZmFCYWNrd2FyZEZhc3Q6YjBlLGZhRmFzdEJhY2t3YXJkOll6dCxmYUFkZHJlc3NCb29rOnYwZSxmYUNvbnRhY3RCb29rOlp6dCxmYVNhaWxib2F0Olh6dCxmYUJvb2tCb29rbWFyazpRenQsZmFNYWduaWZ5aW5nR2xhc3NBcnJvd1JpZ2h0Okp6dCxmYU1pY3JvcGhvbmVMaW5lczp4MGUsZmFNaWNyb3Bob25lQWx0Okt6dCxmYVJlcGx5QWxsOnkwZSxmYU1haWxSZXBseUFsbDplQ3QsZmFVbml2ZXJzYWxBY2Nlc3M6dEN0LGZhVG9pbGV0UGFwZXI6ekQsZmFUb2lsZXRQYXBlckFsdDpyQ3QsZmFUb2lsZXRQYXBlckJsYW5rOmlDdCxmYVZyQ2FyZGJvYXJkOmFDdCxmYVBpenphU2xpY2U6bkN0LGZhU3ByYXlDYW46b0N0LGZhVm9sdW1lTG93OncwZSxmYVZvbHVtZURvd246c0N0LGZhQ3Jvc3M6bEN0LGZhUGVyc29uOk0wZSxmYU1hbGU6Y0N0LGZhSG91cmdsYXNzOmswZSxmYUhvdXJnbGFzc0VtcHR5OmRDdCxmYUZpc2g6dUN0LGZhRHJ1bXN0aWNrQml0ZTpwQ3QsZmFDaGFydFNpbXBsZTpoQ3QsZmFBdG9tOmZDdCxmYVA6bUN0LGZhSmV0RmlnaHRlclVwOmdDdCxmYVBsdWdDaXJjbGVYbWFyazpiQ3QsZmFTaGVldFBsYXN0aWM6dkN0LGZhVjp4Q3QsZmFMaXN0OlMwZSxmYUxpc3RTcXVhcmVzOnlDdCxmYVBpc2Nlczp3Q3QsZmFTb2xhclBhbmVsOk1DdCxmYUxhbmRNaW5lT246a0N0LGZhSGVhZHBob25lczpDRCxmYUhlYWRwaG9uZXNBbHQ6U0N0LGZhSGVhZHBob25lc1NpbXBsZTp6Q3QsZmFCdXM6Q0N0LGZhRmlsZVBvd2VycG9pbnQ6VEN0LGZhUXVvdGVMZWZ0OnowZSxmYVF1b3RlTGVmdEFsdDpfQ3QsZmFDaGV2cm9uRG93bjpMQ3QsZmFFYXJ0aEFzaWE6QzBlLGZhR2xvYmVBc2lhOkFDdCxmYUNlbnRTaWduOkRDdCxmYVNoaWVsZENhdDpFQ3QsZmFTY2hvb2xDaXJjbGVDaGVjazokQ3QsZmFNYXJ0aW5pR2xhc3M6VDBlLGZhR2xhc3NNYXJ0aW5pQWx0OklDdCxmYVBsdWc6UEN0LGZhUGFub3JhbWE6TkN0LGZhQ2xvY2tSb3RhdGVMZWZ0OktnLGZhSGlzdG9yeTpGQ3QsZmFKYXJXaGVhdDpPQ3QsZmFDbG91ZEFycm93RG93bjpURCxmYUNsb3VkRG93bmxvYWQ6UkN0LGZhQ2xvdWREb3dubG9hZEFsdDpCQ3QsZmFUcnVja1JhbXBCb3g6XzBlLGZhVHJ1Y2tMb2FkaW5nOkhDdCxmYUFuZ2xlRG93bjpxQ3QsZmFQbHVnQ2lyY2xlQ2hlY2s6akN0LGZhV2luZG93TWF4aW1pemU6VkN0LGZhSGFuZHNIb2xkaW5nQ2lyY2xlOlVDdCxmYUxvY2F0aW9uUGluOkwwZSxmYU1hcE1hcmtlcjpXQ3QsZmFCb3dsaW5nQmFsbDpHQ3QsZmFDYXJ0RmxhdGJlZDpBMGUsZmFEb2xseUZsYXRiZWQ6WUN0LGZhSG91c2VVc2VyOkQwZSxmYUhvbWVVc2VyOlpDdCxmYUdob3N0OlhDdCxmYUNvbW1lbnROb2RlczpRQ3QsZmFQZXJzb25BcnJvd0Rvd25Ub0xpbmU6SkN0LGZhUGx1Z0NpcmNsZVBsdXM6S0N0LGZhUGVyc29uU3dpbW1pbmc6RTBlLGZhU3dpbW1lcjplVHQsZmFDb21tZW50RG90czokMGUsZmFDb21tZW50aW5nOnRUdCxmYUNoYXJ0UGllOkkwZSxmYVBpZUNoYXJ0OnJUdCxmYUZyb2c6aVR0LGZhV2luZUJvdHRsZTphVHQsZmFJbmJveDpuVHQsZmFTcXVhcmVIOlAwZSxmYUhTcXVhcmU6b1R0LGZhSG91c2VNZWRpY2FsOnNUdCxmYUNpcmNsZUNoZXZyb25SaWdodDpOMGUsZmFDaGV2cm9uQ2lyY2xlUmlnaHQ6bFR0LGZhRmlsZUNzdjpjVHQsZmFIYXRDb3dib3k6ZFR0LGZhRmFjZUdyaW5Ub25ndWVXaW5rOkYwZSxmYUdyaW5Ub25ndWVXaW5rOnVUdCxmYUw6cFR0LGZhQXJyb3dEb3duU2hvcnRXaWRlOl9ELGZhU29ydEFtb3VudERlc2M6aFR0LGZhU29ydEFtb3VudERvd25BbHQ6ZlR0LGZhSG91cmdsYXNzSGFsZjpPMGUsZmFIb3VyZ2xhc3MyOm1UdCxmYVNwb29uOlIwZSxmYVV0ZW5zaWxTcG9vbjpnVHQsZmFDcmVkaXRDYXJkOkIwZSxmYUNyZWRpdENhcmRBbHQ6YlR0LGZhRmlsZUludm9pY2VEb2xsYXI6Y0UsZmFTcGFnaGV0dGlNb25zdGVyRmx5aW5nOkgwZSxmYVBhc3RhZmFyaWFuaXNtOnZUdCxmYU1hcnRpbmlHbGFzc0NpdHJ1czpxMGUsZmFDb2NrdGFpbDp4VHQsZmFCdWxsaG9ybjp5VHQsZmFCb3hUaXNzdWU6d1R0LGZhTWF0dHJlc3NQaWxsb3c6TVR0LGZhQ2hldnJvbkxlZnQ6a1R0LGZhQ2xvdWRNb29uUmFpbjpTVHQsZmFBcnJvd0Rvd24xOTpMRCxmYVNvcnROdW1lcmljQXNjOnpUdCxmYVNvcnROdW1lcmljRG93bjpDVHQsZmFIYW5kU3BvY2s6VFR0LGZhV2FuZE1hZ2ljU3BhcmtsZXM6ajBlLGZhTWFnaWNXYW5kU3BhcmtsZXM6X1R0LGZhQ29tbWVudE1lZGljYWw6TFR0LGZhQmVsbFNsYXNoOkFUdCxmYUhhbmRzaGFrZVNsYXNoOkFELGZhSGFuZHNoYWtlQWx0U2xhc2g6RFR0LGZhSGFuZHNoYWtlU2ltcGxlU2xhc2g6RVR0LGZhQm90dGxlV2F0ZXI6JFR0LGZhRGljZUQyMDpJVHQsZmFBcnJvd0Rvd25aQTpERCxmYVNvcnRBbHBoYURlc2M6UFR0LGZhU29ydEFscGhhRG93bkFsdDpOVHQsZmFCcnVzaDpGVHQsZmFQZXJzb25XYWxraW5nRGFzaGVkTGluZUFycm93UmlnaHQ6T1R0LGZhQXJyb3dVcFNob3J0V2lkZTpWMGUsZmFTb3J0QW1vdW50VXBBbHQ6UlR0LGZhR3JpcFZlcnRpY2FsOlUwZSxmYUdyaWRWZXJ0aWNhbDpCVHQsZmFDYXJUdW5uZWw6SFR0LGZhQ2hhcnRDb2x1bW46cVR0LGZhQ2Fwcmljb3JuOmpUdCxmYVRydWNrQXJyb3dSaWdodDpWVHQsZmFUdjpFRCxmYVRlbGV2aXNpb246VVR0LGZhVHZBbHQ6V1R0LGZhU2VjdGlvbjpHVHQsZmFQZWFjZTpZVHQsZmFTdGFyOlpUdCxmYUZsYWc6WFR0LGZhVHJpYW5nbGVFeGNsYW1hdGlvbjokRCxmYUV4Y2xhbWF0aW9uVHJpYW5nbGU6UVR0LGZhV2FybmluZzpKVHQsZmFTY2hvb2xDaXJjbGVFeGNsYW1hdGlvbjpLVHQsZmFHcmFkdWF0aW9uQ2FwOlcwZSxmYU1vcnRhckJvYXJkOmVfdCxmYVN0b3JlOnRfdCxmYVVzZXJBc3Ryb25hdXQ6cl90LGZhQnVpbGRpbmdGbGFnOmlfdCxmYU11Z1NhdWNlcjpHMGUsZmFDb2ZmZWU6YV90LGZhTGVtb246bl90LGZhQ2FyYXZhbjpvX3QsZmFROnNfdCxmYUxvY2s6bF90LGZhUGFpbnRSb2xsZXI6Y190LGZhVm9sdW1lSGlnaDpZMGUsZmFWb2x1bWVVcDpkX3QsZmFGb2xkZXJQbHVzOnVfdCxmYU1lcmN1cnk6cF90LGZhQW5jaG9yOmhfdCxmYVNxdWFyZVBhcmtpbmc6WjBlLGZhUGFya2luZzpmX3QsZmFIYW51a2lhaDptX3QsZmFSb3RhdGVMZWZ0OlJnLGZhUm90YXRlQmFjazpnX3QsZmFSb3RhdGVCYWNrd2FyZDpiX3QsZmFVbmRvQWx0OnZfdCxmYUhlYWRpbmc6WDBlLGZhSGVhZGVyOnhfdCxmYUNyb3NzaGFpcnM6eV90LGZhQ2lyY2xlTm9kZXM6d190LGZhV2luZG93UmVzdG9yZTpNX3QsZmFSOmtfdCxmYUZpbHRlckNpcmNsZVhtYXJrOlNfdCxmYUdvcHVyYW06el90LGZhSGVhcnRDaXJjbGVNaW51czpDX3QsZmFTdGFyT2ZMaWZlOlRfdCxmYUJ1c2luZXNzVGltZTpRMGUsZmFCcmllZmNhc2VDbG9jazpfX3QsZmFGaXJlRXh0aW5ndWlzaGVyOkxfdCxmYUFycm93RG93bkxvbmc6SjBlLGZhTG9uZ0Fycm93RG93bjpBX3QsZmFVc2VyTWludXM6RF90LGZhTW9uZXlDaGVjazpFX3QsZmFIb3VzZUxhcHRvcDpLMGUsZmFMYXB0b3BIb3VzZTokX3QsZmFEb3dubG9hZDpJX3QsZmFTYWdpdHRhcml1czpQX3QsZmFDb3VjaDpOX3QsZmFSb2FkTG9jazpGX3QsZmFTY2lzc29yczplNGUsZmFDdXQ6T190LGZhQnVnOmRFLGZhQXJyb3dSaWdodEZyb21CcmFja2V0OnQ0ZSxmYVNpZ25PdXQ6Ul90LGZhSGFuZEhvbGRpbmdIYW5kOkJfdCxmYVN0cm9vcHdhZmVsOkhfdCxmYUNoaWxkOnFfdCxmYUljZUNyZWFtOmpfdCxmYUNvbXB1dGVyTW91c2U6cjRlLGZhTW91c2U6Vl90LGZhRmF1Y2V0OlVfdCxmYUF3YXJkOldfdCxmYVBlcnNvbkRyb3duaW5nOkdfdCxmYUNhbWVyYVJvdGF0ZTpZX3QsZmFGYWNlR3JpbkhlYXJ0czppNGUsZmFHcmluSGVhcnRzOlpfdCxmYUZpbGVGcmFnbWVudDpYX3QsZmFQZXJzb25NaWxpdGFyeVJpZmxlOlFfdCxmYVRvZ2dsZU9uOkpfdCxmYUx1bmdzVmlydXM6S190LGZhVGFibGVUZW5uaXNQYWRkbGVCYWxsOklELGZhUGluZ1BvbmdQYWRkbGVCYWxsOmVMdCxmYVRhYmxlVGVubmlzOnRMdCxmYUJveGVzUGFja2luZzpyTHQsZmFQZXJzb25DaGFsa2JvYXJkOmlMdCxmYURpY2VUd286YUx0LGZhQXJyb3dSaWdodEFycm93TGVmdDphNGUsZmFFeGNoYW5nZTpuTHQsZmFGb290YmFsbDpuNGUsZmFGb290YmFsbEJhbGw6b0x0LGZhVHJ1Y2tNb25zdGVyOnNMdCxmYUFzdGVyaXNrOmxMdCxmYUJhdHRlcnlGdWxsOlBELGZhQmF0dGVyeTpjTHQsZmFCYXR0ZXJ5NTpkTHQsZmFDaGlsZERyZXNzOnVMdCxmYUZhY2VLaXNzQmVhbTpvNGUsZmFLaXNzQmVhbTpwTHQsZmFUcmFzaENhbkFycm93VXA6czRlLGZhVHJhc2hSZXN0b3JlQWx0OmhMdCxmYUZvbnQ6Zkx0LGZhQm9yZUhvbGU6bUx0LGZhVmlydXNDb3ZpZDpnTHQsZmFGaWxlUGRmOmJMdCxmYUxhbmd1YWdlOnZMdCxmYVNoaWVsZEhhbHZlZDpsNGUsZmFTaGllbGRBbHQ6eEx0LGZhQ2FyZXRVcDp5THQsZmFGaWxlUGVuOmM0ZSxmYUZpbGVFZGl0OndMdCxmYVBlcnNvbkJpa2luZzpkNGUsZmFCaWtpbmc6TUx0LGZhQm9va09wZW5SZWFkZXI6dTRlLGZhQm9va1JlYWRlcjprTHQsZmFHbGFzc1dhdGVyRHJvcGxldDpTTHQsZmFUb3dlckJyb2FkY2FzdDpwNGUsZmFCcm9hZGNhc3RUb3dlcjp6THQsZmFNaW5pbWl6ZTpoNGUsZmFDb21wcmVzc0Fycm93c0FsdDpDTHQsZmFBcnJvd1JpZ2h0VG9DaXR5OlRMdCxmYUxhcHRvcE1lZGljYWw6X0x0LGZhQnJlYWRTbGljZTpMTHQsZmFHbG9iZTpBTHQsZmFGb2xkZXJNaW51czpETHQsZmFNYXNrRmFjZTpFTHQsZmFCb25nOiRMdCxmYVJvYWRCcmlkZ2U6SUx0LGZhQXJyb3dVcDkxOmY0ZSxmYVNvcnROdW1lcmljVXBBbHQ6UEx0LGZhTW91bnRhaW5DaXR5Ok5MdCxmYUFycm93RG93bjkxOk5ELGZhU29ydE51bWVyaWNEZXNjOkZMdCxmYVNvcnROdW1lcmljRG93bkFsdDpPTHQsZmFGYWNlR3JpbldpZGU6bTRlLGZhR3JpbkFsdDpSTHQsZmFQb29wOkJMdCxmYURoYXJtYWNoYWtyYTpITHQsZmFCYXR0ZXJ5UXVhcnRlcjpnNGUsZmFCYXR0ZXJ5MjpxTHQsZmFBbmtoOmpMdCxmYURpYW1vbmQ6Vkx0LGZhU3Vic2NyaXB0OlVMdCxmYVJ1cGVlU2lnbjpiNGUsZmFSdXBlZTpXTHQsZmFQZXJzb25SaWZsZTpHTHQsZmFEOllMdCxmYVNxdWFyZU5maTpaTHQsZmFUZWV0aDpYTHQsZmFNYWduaWZ5aW5nR2xhc3NEb2xsYXI6djRlLGZhU2VhcmNoRG9sbGFyOlFMdCxmYUR1bXBzdGVyRmlyZTpKTHQsZmFVcGxvYWQ6S0x0LGZhVXNlclNsYXNoOkZELGZhVXNlckFsdFNsYXNoOmVBdCxmYVVzZXJMYXJnZVNsYXNoOnRBdCxmYUFycm93TGVmdDpyQXQsZmFWaWFsVmlydXM6aUF0LGZhQ2hlY2tEb3VibGU6YUF0LGZhUGF3Om5BdCxmYUhlbG1ldFNhZmV0eTpPRCxmYUhhcmRIYXQ6b0F0LGZhSGF0SGFyZDpzQXQsZmFFOmxBdCxmYUZhY2VMYXVnaFNxdWludDp4NGUsZmFMYXVnaFNxdWludDpjQXQsZmFEb3duTGVmdEFuZFVwUmlnaHRUb0NlbnRlcjp5NGUsZmFDb21wcmVzc0FsdDpkQXQsZmFHaWZ0czp1QXQsZmFCZWQ6cEF0LGZhTW9uZXlCaWxsVHJhbnNmZXI6aEF0LGZhUGVyc29uUnVubmluZzp3NGUsZmFSdW5uaW5nOmZBdCxmYUNpcmNsZUNoZXZyb25Eb3duOk00ZSxmYUNoZXZyb25DaXJjbGVEb3duOm1BdCxmYVVzZXJOdXJzZTpnQXQsZmFGYWNlS2lzc1dpbmtIZWFydDprNGUsZmFLaXNzV2lua0hlYXJ0OmJBdCxmYUZpbGw6dkF0LGZhTW9uZXlCaWxsMVdhdmU6UzRlLGZhTW9uZXlCaWxsV2F2ZUFsdDp4QXQsZmFMYW5kbWFyazp5QXQsZmFNdXNpYzp3QXQsZmFCb29rTWVkaWNhbDpNQXQsZmFTaHVmZmxlOno0ZSxmYVJhbmRvbTprQXQsZmFVbmRlcmxpbmU6U0F0LGZhQnVpbGRpbmdVc2VyOnpBdCxmYVJvYm90OkNBdCxmYVBsdXM6ZWIsZmFBZGQ6VEF0LGZhQ29weTp1RSxmYUNoZXNzS2luZzpfQXQsZmFIb3VzZUZsb29kV2F0ZXI6TEF0LGZhQml0Y29pblNpZ246QUF0LGZhQm94OkRBdCxmYVNxdWFyZVBsdXM6QzRlLGZhUGx1c1NxdWFyZTpFQXQsZmFBcnJvd3NMZWZ0UmlnaHQ6VDRlLGZhQXJyb3dzSDokQXQsZmFGYW46SUF0LGZhQ3JvdzpQQXQsZmFGaWxlQ2lyY2xlQ2hlY2s6TkF0LGZhTGlua1NsYXNoOkJnLGZhQ2hhaW5Ccm9rZW46RkF0LGZhQ2hhaW5TbGFzaDpPQXQsZmFVbmxpbms6UkF0LGZhQXJyb3dSb3RhdGVSaWdodDpIZyxmYUFycm93UmlnaHRSb3RhdGU6QkF0LGZhQXJyb3dSb3RhdGVGb3J3YXJkOkhBdCxmYVJlZG86cUF0LGZhUGVuQ2xpcDpfNGUsZmFQZW5BbHQ6akF0LGZhRG9vckNsb3NlZDpWQXQsZmFBcnJvd0Rvd25XaWRlU2hvcnQ6UkQsZmFTb3J0QW1vdW50QXNjOlVBdCxmYVNvcnRBbW91bnREb3duOldBdCxmYUNhcmV0RG93bjpHQXQsZmFLOllBdCxmYUNoZWNrVG9TbG90Okw0ZSxmYVZvdGVZZWE6WkF0LGZhRmlzaEZpbnM6WEF0LGZhQ29tcHJlc3M6UUF0LGZhQXJyb3dVcEFaOkE0ZSxmYVNvcnRBbHBoYVVwOkpBdCxmYVVzZXJHcmFkdWF0ZTpLQXQsZmFGaWxlQ29kZTplRHQsZmFTb2FwOnREdCxmYVJlY3ljbGU6ckR0LGZhRmFjZUdyaW5XaW5rOkQ0ZSxmYUdyaW5XaW5rOmlEdCxmYVdhdGVyTGFkZGVyOkJELGZhTGFkZGVyV2F0ZXI6YUR0LGZhU3dpbW1pbmdQb29sOm5EdCxmYUdlbWluaTpvRHQsZmFUb3dlckNlbGw6c0R0LGZhQ29sb25TaWduOmxEdCxmYUxhcHRvcEZpbGU6Y0R0LGZhQmFoYWk6RTRlLGZhSGF5a2FsOmREdCxmYU1vbmV5QmlsbDE6JDRlLGZhTW9uZXlCaWxsQWx0OnVEdCxmYUNsb3VkQm9sdDpJNGUsZmFUaHVuZGVyc3Rvcm06cER0LGZhRXRoZXJuZXQ6aER0LGZhSHJ5dm5pYVNpZ246UDRlLGZhSHJ5dm5pYTpmRHQsZmFFeWVTbGFzaDpwRSxmYUNhcnRGbGF0YmVkU3VpdGNhc2U6TjRlLGZhTHVnZ2FnZUNhcnQ6bUR0LGZhUmFkaWF0aW9uOmdEdCxmYUZpbGVXb3JkOmJEdCxmYUJlZFB1bHNlOkY0ZSxmYVByb2NlZHVyZXM6dkR0LGZhVGVudHM6eER0LGZhTXVnSG90OmhFLGZhQm9sdDpPNGUsZmFaYXA6eUR0LGZhSmFyOndEdCxmYVRydWNrUGxhbmU6TUR0LGZhSGFuZEhvbGRpbmdIZWFydDprRHQsZmFBcnJvd1JvdGF0ZUxlZnQ6T3AsZmFBcnJvd0xlZnRSb3RhdGU6U0R0LGZhQXJyb3dSb3RhdGVCYWNrOnpEdCxmYUFycm93Um90YXRlQmFja3dhcmQ6Q0R0LGZhVW5kbzpURHQsZmFGYWNlQW5ncnk6UjRlLGZhQW5ncnk6X0R0LGZhQnVyc3Q6TER0LGZhWjpBRHQsZmFCYW5kYWdlOkI0ZSxmYUJhbmRBaWQ6RER0LGZhUGxhbmVDaXJjbGVFeGNsYW1hdGlvbjpFRHQsZmFCdXNTaWRlOiREdCxmYUJ1Z3M6SUR0LGZhQmVlck11Z0VtcHR5Okg0ZSxmYUJlZXI6UER0LGZhUGVyc29uQ2lyY2xlQ2hlY2s6TkR0LGZhU3RhcGxlcjpGRHQsZmFIb3VzZU1lZGljYWxDaXJjbGVDaGVjazpPRHQsZmFOYWlyYVNpZ246UkR0LGZhV2lmaTpIRCxmYVdpZmkzOkJEdCxmYVdpZmlTdHJvbmc6SER0LGZhTW9uZXlDaGVja0RvbGxhcjp0YixmYU1vbmV5Q2hlY2tBbHQ6cUR0LGZhRXllTG93VmlzaW9uOnE0ZSxmYUxvd1Zpc2lvbjpqRHQsZmFDaXJjbGVBcnJvd1VwOmo0ZSxmYUFycm93Q2lyY2xlVXA6VkR0LGZhQ2FtZXJhUmV0cm86VUR0LGZhQ2Fwc3VsZXM6V0R0LGZhUG9vOkdEdCxmYVZvbHVtZTpWNGUsZmFWb2x1bWVNZWRpdW06WUR0LGZhRWxldmF0b3I6WkR0LGZhVGFnOlhEdCxmYUZpbGVDaXJjbGVNaW51czpRRHQsZmFEb3duTG9uZzpVNGUsZmFMb25nQXJyb3dBbHREb3duOkpEdCxmYUNvbXBhY3REaXNjOktEdCxmYVN1aXRjYXNlUm9sbGluZzplRXQsZmFCb29rUXVyYW46VzRlLGZhUXVyYW46dEV0LGZhUGhvbmVTbGFzaDpyRXQsZmFSb2FkQ2lyY2xlQ2hlY2s6aUV0LGZhU2hvcExvY2s6YUV0LGZhSW1hZ2VQb3J0cmFpdDpHNGUsZmFQb3J0cmFpdDpuRXQsZmFCcmlkZ2VMb2NrOm9FdCxmYUhhbW1lcjpzRXQsZmFBcnJvd1VwMTk6WTRlLGZhU29ydE51bWVyaWNVcDpsRXQsZmFDaGVzc0tuaWdodDpjRXQsZmFIb3VzZUZsb29kV2F0ZXJDaXJjbGVBcnJvd1JpZ2h0OmRFdCxmYUFycm93VXBSaWdodEZyb21TcXVhcmU6cmIsZmFFeHRlcm5hbExpbms6dUV0LGZhQXJyb3dEb3duVXBBY3Jvc3NMaW5lOnBFdCxmYUZhY2VHcmluQmVhbTpaNGUsZmFHcmluQmVhbTpoRXQsZmFSZWN0YW5nbGVBZDpYNGUsZmFBZDpmRXQsZmFCb29rVGFuYWtoOlE0ZSxmYVRhbmFraDptRXQsZmFIb3RUdWJQZXJzb246SjRlLGZhSG90VHViOmdFdCxmYUZpbGVIYWxmRGFzaGVkOmJFdCxmYU91dGRlbnQ6SzRlLGZhRGVkZW50OnZFdCxmYUhhbmRQZWFjZTp4RXQsZmFIZWFkU2lkZVZpcnVzOnlFdCxmYUNvbXBhc3M6d0V0LGZhUGVuTmliOk1FdCxmYVRlbnRBcnJvd3NEb3duOmtFdCxmYUZvcndhcmRGYXN0OmUzZSxmYUZhc3RGb3J3YXJkOlNFdCxmYUNyb3A6ekV0LGZhV2hpc2tleUdsYXNzOnQzZSxmYUdsYXNzV2hpc2tleTpDRXQsZmFTcXVhcmU6VEV0LGZhRmFjZUdyaW46cjNlLGZhR3JpbjpfRXQsZmFGaWxlQ29udHJhY3Q6TEV0LGZhQW5nbGVVcDpBRXQsZmFGYWNlU21pbGU6aTNlLGZhU21pbGU6REV0LGZhUGVyc29uRHJlc3NCdXJzdDpFRXQsZmFEaXZpZGU6JEV0LGZhQ29kZUZvcms6SUV0LGZhSG91c2VGbGFnOlBFdCxmYUJ1aWxkaW5nQ29sdW1uczpScCxmYUJhbms6TkV0LGZhSW5zdGl0dXRpb246RkV0LGZhTXVzZXVtOk9FdCxmYVVuaXZlcnNpdHk6UkV0LGZhUnVnOkJFdCxmYUNvZGVNZXJnZTpIRXQsZmFIb3VzZVRzdW5hbWk6cUV0LGZhTWFnbmlmeWluZ0dsYXNzQ2hhcnQ6akV0LGZhVW1icmVsbGE6VkV0LGZhSGlsbFJvY2tzbGlkZTpVRXQsZmFVc2VyU2VjcmV0OldFdCxmYVBhZ2VyOkdFdCxmYUJyaWVmY2FzZTpZRXQsZmFUcm93ZWxCcmlja3M6WkV0LGZhU29ja3M6WEV0LGZhVDpRRXQsZmFNaWNyb2NoaXA6SkV0LGZhVHJ1Y2tNZWRpY2FsOmEzZSxmYUFtYnVsYW5jZTpLRXQsZmFPbTplJHQsZmFNb3NxdWl0b05ldDp0JHQsZmFQcmVzY3JpcHRpb25Cb3R0bGU6ciR0LGZhVXNlcnNHZWFyOm4zZSxmYVVzZXJzQ29nOmkkdCxmYVJvYWRDaXJjbGVFeGNsYW1hdGlvbjphJHQsZmFQYXVzZTpuJHQsZmFTdGFmZlNuYWtlOnFnLGZhUm9kQXNjbGVwaXVzOm8kdCxmYVJvZFNuYWtlOnMkdCxmYVN0YWZmQWVzY3VsYXBpdXM6bCR0LGZhUGlnZ3lCYW5rOmMkdCxmYU1vbnVtZW50OmQkdCxmYUFuZ2xlc1JpZ2h0Om8zZSxmYUFuZ2xlRG91YmxlUmlnaHQ6dSR0LGZhRGVza3RvcDppYixmYURlc2t0b3BBbHQ6cCR0LGZhUGxhbmVDaXJjbGVYbWFyazpoJHQsZmFSZXR3ZWV0OmYkdCxmYVVzZXJHZWFyOnMzZSxmYVVzZXJDb2c6bSR0LGZhQm9yZGVyQWxsOmckdCxmYUNvaW5zOmIkdCxmYU1hcnNTdHJva2U6diR0LGZhSGFuZHNoYWtlQW5nbGU6bDNlLGZhSGFuZHNIZWxwaW5nOngkdCxmYUFycm93RG93bjp5JHQsZmFMb2NhdGlvbkRvdDpjM2UsZmFNYXBNYXJrZXJBbHQ6dyR0LGZhUGx1Z0NpcmNsZUV4Y2xhbWF0aW9uOk0kdCxmYUNvb2tpZUJpdGU6ayR0LGZhU2NyZXdkcml2ZXJXcmVuY2g6ZDNlLGZhVG9vbHM6UyR0LGZhSW5kZW50OnokdCxmYUJhcnM6dTNlLGZhTmF2aWNvbjpDJHQsZmFIYW5kc1ByYXlpbmc6cDNlLGZhUHJheWluZ0hhbmRzOlQkdCxmYVZpcnVzZXM6XyR0LGZhU2Nob29sRmxhZzpMJHQsZmFUcmFkZW1hcms6QSR0LGZhRmlyZUJ1cm5lcjpEJHQsZmFGYWNlU21pbGVCZWFtOmgzZSxmYVNtaWxlQmVhbTpFJHQsZmFUZW50QXJyb3dMZWZ0UmlnaHQ6JCR0LGZhUm91dGU6SSR0LGZhQW5nbGVzVXA6ZjNlLGZhQW5nbGVEb3VibGVVcDpQJHQsZmFCdWNrZXQ6TiR0LGZhTGVzc1RoYW5FcXVhbDpGJHQsZmFGb2xkZXJDbG9zZWQ6TyR0LGZhUGVyc29uVGhyb3VnaFdpbmRvdzpSJHQsZmFTY2hvb2xMb2NrOkIkdCxmYVBlcnNvbkJ1cnN0OkgkdCxmYUxlZnRMb25nOm0zZSxmYUxvbmdBcnJvd0FsdExlZnQ6cSR0LGZhTG9jYXRpb25Dcm9zc2hhaXJzOmczZSxmYUxvY2F0aW9uOmokdCxmYVBlcnNvbkRvdHNGcm9tTGluZTpiM2UsZmFEaWFnbm9zZXM6ViR0LGZhR2F1Z2VTaW1wbGVIaWdoOnFELGZhVGFjaG9tZXRlcjpVJHQsZmFUYWNob21ldGVyRmFzdDpXJHQsZmFBbmdsZXNMZWZ0OnYzZSxmYUFuZ2xlRG91YmxlTGVmdDpHJHQsZmFVcERvd246eDNlLGZhQXJyb3dzQWx0VjpZJHQsZmFCYXR0ZXJ5RW1wdHk6eTNlLGZhQmF0dGVyeTA6WiR0LGZhS2V5Ym9hcmQ6WCR0LGZhQ29va2llOlEkdCxmYVN0b3B3YXRjaDpKJHQsZmFFamVjdDpLJHQsZmFTYXRlbGxpdGVEaXNoOmVJdCxmYUZhY2VSb2xsaW5nRXllczp3M2UsZmFNZWhSb2xsaW5nRXllczp0SXQsZmFMaXN0Q2hlY2s6TTNlLGZhVGFza3M6ckl0LGZhU2Fja1htYXJrOmlJdCxmYUhhc2h0YWc6YUl0LGZhVHJhaW46bkl0LGZhR2FtZXBhZDpvSXQsZmFGaWxlRXhwb3J0OmszZSxmYUFycm93UmlnaHRGcm9tRmlsZTpzSXQsZmFGYWNlR3JpbWFjZTpTM2UsZmFHcmltYWNlOmxJdCxmYVRyYWluU3Vid2F5OnozZSxmYVN1YndheTpjSXQsZmFDaXJjbGVEb3Q6QzNlLGZhRG90Q2lyY2xlOmRJdCxmYU9iamVjdEdyb3VwOnVJdCxmYVNoaXA6cEl0LGZhQzpoSXQsZmFTcXVhcmVQaG9uZTpUM2UsZmFQaG9uZVNxdWFyZTpmSXQsZmFSdWxlckNvbWJpbmVkOm1JdCxmYUFycm93c1JvdGF0ZTpqRCxmYVJlZnJlc2g6Z0l0LGZhU3luYzpiSXQsZmFQZXJzb25EcmVzczpfM2UsZmFGZW1hbGU6dkl0LGZhQm9va09wZW46eEl0LGZhRm9sZGVyVHJlZTp5SXQsZmFWaXJnbzp3SXQsZmFCb3hBcmNoaXZlOkwzZSxmYUFyY2hpdmU6TUl0LGZhVGVudEFycm93RG93blRvTGluZTprSXQsZmFRcmNvZGU6U0l0LGZhRHJhZ29uOnpJdCxmYUhvdXJnbGFzc0VuZDpBM2UsZmFIb3VyZ2xhc3MzOkNJdCxmYUdyaXA6SHAsZmFHcmlkSG9yaXpvbnRhbDpUSXQsZmFHcmlwSG9yaXpvbnRhbDpfSXQsZmFCb3JkZXJUb3BMZWZ0OkQzZSxmYUJvcmRlclN0eWxlOkxJdCxmYUxpc3RVbDpFM2UsZmFMaXN0RG90czpBSXQsZmFQZW9wbGVSb2JiZXJ5OkRJdCxmYU1vYmlsZUJ1dHRvbjpFSXQsZmFBcnJvd0Rvd25BWjpWRCxmYVNvcnRBbHBoYUFzYzokSXQsZmFTb3J0QWxwaGFEb3duOklJdCxmYU1vbmV5QmlsbDpQSXQsZmFDaXJjbGVNaW51czokM2UsZmFNaW51c0NpcmNsZTpOSXQsZmFBcnJvd1BvaW50ZXI6STNlLGZhTW91c2VQb2ludGVyOkZJdCxmYVNxdWFyZVNoYXJlTm9kZXM6UDNlLGZhU2hhcmVBbHRTcXVhcmU6T0l0LGZhVGFibGVDZWxsc0xhcmdlOk4zZSxmYVRoTGFyZ2U6Ukl0LGZhQ2F0OkJJdCxmYUNhbGVuZGFyV2VlazpISXQsZmFDb2RlQ29tcGFyZTpxSXQsZmFMZW86akl0LGZhUm9hZENpcmNsZVhtYXJrOlZJdCxmYVBhbGxldDpVSXQsZmFDYWtlQ2FuZGxlczpVRCxmYUJpcnRoZGF5Q2FrZTpXSXQsZmFDYWtlOkdJdCxmYUJ1Z1NsYXNoOllJdCxmYVRhcnA6Wkl0LGZhRGlhZ3JhbVByZWRlY2Vzc29yOlhJdCxmYUZhY2VGbHVzaGVkOkYzZSxmYUZsdXNoZWQ6UUl0LGZhRGlhZ3JhbU5leHQ6Skl0LGZhQW5jaG9yQ2lyY2xlWG1hcms6S0l0LGZhUGVyc29uQ2lyY2xlWG1hcms6ZVB0LGZhU3BhOnRQdCxmYUFyaWVzOnJQdCxmYUJhcnNQcm9ncmVzczpPM2UsZmFUYXNrc0FsdDppUHQsZmFIZWFydENpcmNsZUNoZWNrOmFQdCxmYU1hcnNTdHJva2VSaWdodDpSM2UsZmFNYXJzU3Ryb2tlSDpuUHQsZmFUb3dlck9ic2VydmF0aW9uOm9QdCxmYVN0ZXJsaW5nU2lnbjpXRCxmYUdicDpzUHQsZmFQb3VuZFNpZ246bFB0LGZhRmF1Y2V0RHJpcDpjUHQsZmFDaXJjbGVJbmZvOmFiLGZhSW5mb0NpcmNsZTpkUHQsZmFGZWF0aGVyOnVQdCxmYUJvd2xSaWNlOnBQdCxmYVN0YXJIYWxmU3Ryb2tlOkIzZSxmYVN0YXJIYWxmQWx0OmhQdCxmYVRlbXBlcmF0dXJlQXJyb3dEb3duOkgzZSxmYVRlbXBlcmF0dXJlRG93bjpmUHQsZmFNYXNrVmVudGlsYXRvcjptUHQsZmFGaWxlVmlkZW86Z1B0LGZhQXJyb3dUcmVuZERvd246YlB0LGZhT2lsQ2FuOnZQdCxmYVBlb3BsZUNhcnJ5Qm94OnEzZSxmYVBlb3BsZUNhcnJ5OnhQdCxmYUNoYWlyOnlQdCxmYVdpbmQ6d1B0LGZhTGF5ZXJHcm91cDpNUHQsZmFIZWFkU2lkZU1hc2s6a1B0LGZhSGFuZHM6R0QsZmFTaWduTGFuZ3VhZ2U6U1B0LGZhU2lnbmluZzp6UHQsZmFUYWJsZXRzOkNQdCxmYVdlaWdodEhhbmdpbmc6VFB0LGZhRGljZTpfUHQsZmFTaG9wU2xhc2g6ajNlLGZhU3RvcmVBbHRTbGFzaDpMUHQsZmFTb3J0RG93bjpWM2UsZmFTb3J0RGVzYzpBUHQsZmFQZXNldGFTaWduOkRQdCxmYVRhYmxldFNjcmVlbkJ1dHRvbjpVM2UsZmFUYWJsZXRBbHQ6RVB0LGZhSGFuZEhvbGRpbmdEb2xsYXI6VzNlLGZhSGFuZEhvbGRpbmdVc2Q6JFB0LGZhU2hpZWxkOkczZSxmYVNoaWVsZEJsYW5rOklQdCxmYUZhY2VMYXVnaDpZM2UsZmFMYXVnaDpQUHQsZmFIYW5kc0hvbGRpbmc6TlB0LGZhQ2FydFNob3BwaW5nOlozZSxmYVNob3BwaW5nQ2FydDpGUHQsZmFPY3RhZ29uOk9QdCxmYUhhbmRQb2ludGVyOlJQdCxmYVJlZ2lzdGVyZWQ6QlB0LGZhSG91c2VTaWduYWw6SFB0LGZhQmFuZ2xhZGVzaGlUYWthU2lnbjpxUHR9fSk7dmFyIHdOPWplKGc9PnsidXNlIHN0cmljdCI7dmFyIFZQdD17eG1sbnM6Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIix3aWR0aDoyNCxoZWlnaHQ6MjQsdmlld0JveDoiMCAwIDI0IDI0IixmaWxsOiJub25lIixzdHJva2U6ImN1cnJlbnRDb2xvciIsInN0cm9rZS13aWR0aCI6Miwic3Ryb2tlLWxpbmVjYXAiOiJyb3VuZCIsInN0cm9rZS1saW5lam9pbiI6InJvdW5kIn0sVVB0PShbZSx0LHJdKT0+e2xldCBpPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnROUygiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciLGUpO3JldHVybiBPYmplY3Qua2V5cyh0KS5mb3JFYWNoKGE9PntpLnNldEF0dHJpYnV0ZShhLFN0cmluZyh0W2FdKSl9KSxyPy5sZW5ndGgmJnIuZm9yRWFjaChhPT57bGV0IG49VVB0KGEpO2kuYXBwZW5kQ2hpbGQobil9KSxpfSxXUHQ9KGUsdD17fSk9PntsZXQgaT17Li4uVlB0LC4uLnR9O3JldHVybiBVUHQoWyJzdmciLGksZV0pfSxUWnI9ZT0+e2ZvcihsZXQgdCBpbiBlKWlmKHQuc3RhcnRzV2l0aCgiYXJpYS0iKXx8dD09PSJyb2xlInx8dD09PSJ0aXRsZSIpcmV0dXJuITA7cmV0dXJuITF9LF9acj0oLi4uZSk9PmUuZmlsdGVyKCh0LHIsaSk9PiEhdCYmdC50cmltKCkhPT0iIiYmaS5pbmRleE9mKHQpPT09cikuam9pbigiICIpLnRyaW0oKSxMWnI9ZT0+ZS5yZXBsYWNlKC9eKFtBLVpdKXxbXHMtX10rKFx3KS9nLCh0LHIsaSk9Pmk/aS50b1VwcGVyQ2FzZSgpOnIudG9Mb3dlckNhc2UoKSksQVpyPWU9PntsZXQgdD1MWnIoZSk7cmV0dXJuIHQuY2hhckF0KDApLnRvVXBwZXJDYXNlKCkrdC5zbGljZSgxKX0sRFpyPWU9PkFycmF5LmZyb20oZS5hdHRyaWJ1dGVzKS5yZWR1Y2UoKHQscik9Pih0W3IubmFtZV09ci52YWx1ZSx0KSx7fSksR1B0PWU9PnR5cGVvZiBlPT0ic3RyaW5nIj9lOiFlfHwhZS5jbGFzcz8iIjplLmNsYXNzJiZ0eXBlb2YgZS5jbGFzcz09InN0cmluZyI/ZS5jbGFzcy5zcGxpdCgiICIpOmUuY2xhc3MmJkFycmF5LmlzQXJyYXkoZS5jbGFzcyk/ZS5jbGFzczoiIixZUHQ9KGUse25hbWVBdHRyOnQsaWNvbnM6cixhdHRyczppfSk9PntsZXQgYT1lLmdldEF0dHJpYnV0ZSh0KTtpZihhPT1udWxsKXJldHVybjtsZXQgbj1BWnIoYSksbz1yW25dO2lmKCFvKXJldHVybiBjb25zb2xlLndhcm4oYCR7ZS5vdXRlckhUTUx9IGljb24gbmFtZSB3YXMgbm90IGZvdW5kIGluIHRoZSBwcm92aWRlZCBpY29ucyBvYmplY3QuYCk7bGV0IHM9RFpyKGUpLGw9VFpyKHMpP3t9OnsiYXJpYS1oaWRkZW4iOiJ0cnVlIn0sYz17Li4uVlB0LCJkYXRhLWx1Y2lkZSI6YSwuLi5sLC4uLmksLi4uc30sdT1HUHQocyksZD1HUHQoaSksaD1fWnIoImx1Y2lkZSIsYGx1Y2lkZS0ke2F9YCwuLi51LC4uLmQpO2gmJk9iamVjdC5hc3NpZ24oYyx7Y2xhc3M6aH0pO2xldCBmPVdQdChvLGMpO3JldHVybiBlLnBhcmVudE5vZGU/LnJlcGxhY2VDaGlsZChmLGUpfSxaUHQ9W1sicGF0aCIse2Q6Im0xNCAxMiA0IDQgNC00In1dLFsicGF0aCIse2Q6Ik0xOCAxNlY3In1dLFsicGF0aCIse2Q6Im0yIDE2IDQuMDM5LTkuNjlhLjUuNSAwIDAgMSAuOTIzIDBMMTEgMTYifV0sWyJwYXRoIix7ZDoiTTMuMzA0IDEzaDYuMzkyIn1dXSxYUHQ9W1sicGF0aCIse2Q6Im0xNCAxMSA0LTQgNCA0In1dLFsicGF0aCIse2Q6Ik0xOCAxNlY3In1dLFsicGF0aCIse2Q6Im0yIDE2IDQuMDM5LTkuNjlhLjUuNSAwIDAgMSAuOTIzIDBMMTEgMTYifV0sWyJwYXRoIix7ZDoiTTMuMzA0IDEzaDYuMzkyIn1dXSxRUHQ9W1sicGF0aCIse2Q6Im0xNSAxNiAyLjUzNi03LjMyOGExLjAyIDEuMDIgMSAwIDEgMS45MjggMEwyMiAxNiJ9XSxbInBhdGgiLHtkOiJNMTUuNjk3IDE0aDUuNjA2In1dLFsicGF0aCIse2Q6Im0yIDE2IDQuMDM5LTkuNjlhLjUuNSAwIDAgMSAuOTIzIDBMMTEgMTYifV0sWyJwYXRoIix7ZDoiTTMuMzA0IDEzaDYuMzkyIn1dXSxKUHQ9W1siY2lyY2xlIix7Y3g6IjE2IixjeToiNCIscjoiMSJ9XSxbInBhdGgiLHtkOiJtMTggMTkgMS03LTYgMSJ9XSxbInBhdGgiLHtkOiJtNSA4IDMtMyA1LjUgMy0yLjM2IDMuNSJ9XSxbInBhdGgiLHtkOiJNNC4yNCAxNC41YTUgNSAwIDAgMCA2Ljg4IDYifV0sWyJwYXRoIix7ZDoiTTEzLjc2IDE3LjVhNSA1IDAgMCAwLTYuODgtNiJ9XV0sS1B0PVtbInBhdGgiLHtkOiJNMTggMTcuNWEyLjUgMi41IDAgMSAxLTQgMi4wM1YxMiJ9XSxbInBhdGgiLHtkOiJNNiAxMkg0YTIgMiAwIDAgMS0yLTJWNWEyIDIgMCAwIDEgMi0yaDE2YTIgMiAwIDAgMSAyIDJ2NWEyIDIgMCAwIDEtMiAyaC0yIn1dLFsicGF0aCIse2Q6Ik02IDhoMTIifV0sWyJwYXRoIix7ZDoiTTYuNiAxNS41NzJBMiAyIDAgMSAwIDEwIDE3di01In1dXSxlTnQ9W1sicGF0aCIse2Q6Ik0yMiAxMmgtMi40OGEyIDIgMCAwIDAtMS45MyAxLjQ2bC0yLjM1IDguMzZhLjI1LjI1IDAgMCAxLS40OCAwTDkuMjQgMi4xOGEuMjUuMjUgMCAwIDAtLjQ4IDBsLTIuMzUgOC4zNkEyIDIgMCAwIDEgNC40OSAxMkgyIn1dXSx0TnQ9W1sicGF0aCIse2Q6Ik01IDE3SDRhMiAyIDAgMCAxLTItMlY1YTIgMiAwIDAgMSAyLTJoMTZhMiAyIDAgMCAxIDIgMnYxMGEyIDIgMCAwIDEtMiAyaC0xIn1dLFsicGF0aCIse2Q6Im0xMiAxNSA1IDZIN1oifV1dLGZFPVtbImNpcmNsZSIse2N4OiIxMiIsY3k6IjEzIixyOiI4In1dLFsicGF0aCIse2Q6Ik01IDMgMiA2In1dLFsicGF0aCIse2Q6Im0yMiA2LTMtMyJ9XSxbInBhdGgiLHtkOiJNNi4zOCAxOC43IDQgMjEifV0sWyJwYXRoIix7ZDoiTTE3LjY0IDE4LjY3IDIwIDIxIn1dLFsicGF0aCIse2Q6Im05IDEzIDIgMiA0LTQifV1dLG1FPVtbImNpcmNsZSIse2N4OiIxMiIsY3k6IjEzIixyOiI4In1dLFsicGF0aCIse2Q6Ik01IDMgMiA2In1dLFsicGF0aCIse2Q6Im0yMiA2LTMtMyJ9XSxbInBhdGgiLHtkOiJNNi4zOCAxOC43IDQgMjEifV0sWyJwYXRoIix7ZDoiTTE3LjY0IDE4LjY3IDIwIDIxIn1dLFsicGF0aCIse2Q6Ik05IDEzaDYifV1dLHJOdD1bWyJwYXRoIix7ZDoiTTYuODcgNi44N2E4IDggMCAxIDAgMTEuMjYgMTEuMjYifV0sWyJwYXRoIix7ZDoiTTE5LjkgMTQuMjVhOCA4IDAgMCAwLTkuMTUtOS4xNSJ9XSxbInBhdGgiLHtkOiJtMjIgNi0zLTMifV0sWyJwYXRoIix7ZDoiTTYuMjYgMTguNjcgNCAyMSJ9XSxbInBhdGgiLHtkOiJtMiAyIDIwIDIwIn1dLFsicGF0aCIse2Q6Ik00IDQgMiA2In1dXSxnRT1bWyJjaXJjbGUiLHtjeDoiMTIiLGN5OiIxMyIscjoiOCJ9XSxbInBhdGgiLHtkOiJNNSAzIDIgNiJ9XSxbInBhdGgiLHtkOiJtMjIgNi0zLTMifV0sWyJwYXRoIix7ZDoiTTYuMzggMTguNyA0IDIxIn1dLFsicGF0aCIse2Q6Ik0xNy42NCAxOC42NyAyMCAyMSJ9XSxbInBhdGgiLHtkOiJNMTIgMTB2NiJ9XSxbInBhdGgiLHtkOiJNOSAxM2g2In1dXSxpTnQ9W1siY2lyY2xlIix7Y3g6IjEyIixjeToiMTMiLHI6IjgifV0sWyJwYXRoIix7ZDoiTTEyIDl2NGwyIDIifV0sWyJwYXRoIix7ZDoiTTUgMyAyIDYifV0sWyJwYXRoIix7ZDoibTIyIDYtMy0zIn1dLFsicGF0aCIse2Q6Ik02LjM4IDE4LjcgNCAyMSJ9XSxbInBhdGgiLHtkOiJNMTcuNjQgMTguNjcgMjAgMjEifV1dLGFOdD1bWyJwYXRoIix7ZDoiTTExIDIxYzAtMi41IDItMi41IDItNSJ9XSxbInBhdGgiLHtkOiJNMTYgMjFjMC0yLjUgMi0yLjUgMi01In1dLFsicGF0aCIse2Q6Im0xOSA4LS44IDNhMS4yNSAxLjI1IDAgMCAxLTEuMiAxSDdhMS4yNSAxLjI1IDAgMCAxLTEuMi0xTDUgOCJ9XSxbInBhdGgiLHtkOiJNMjEgM2ExIDEgMCAwIDEgMSAxdjJhMiAyIDAgMCAxLTIgMkg0YTIgMiAwIDAgMS0yLTJWNGExIDEgMCAwIDEgMS0xeiJ9XSxbInBhdGgiLHtkOiJNNiAyMWMwLTIuNSAyLTIuNSAyLTUifV1dLG5OdD1bWyJyZWN0Iix7d2lkdGg6IjE4IixoZWlnaHQ6IjE4Iix4OiIzIix5OiIzIixyeDoiMiIscnk6IjIifV0sWyJwb2x5bGluZSIse3BvaW50czoiMTEgMyAxMSAxMSAxNCA4IDE3IDExIDE3IDMifV1dLG9OdD1bWyJwYXRoIix7ZDoiTTIgMTJoMjAifV0sWyJwYXRoIix7ZDoiTTEwIDE2djRhMiAyIDAgMCAxLTIgMkg2YTIgMiAwIDAgMS0yLTJ2LTQifV0sWyJwYXRoIix7ZDoiTTEwIDhWNGEyIDIgMCAwIDAtMi0ySDZhMiAyIDAgMCAwLTIgMnY0In1dLFsicGF0aCIse2Q6Ik0yMCAxNnYxYTIgMiAwIDAgMS0yIDJoLTJhMiAyIDAgMCAxLTItMnYtMSJ9XSxbInBhdGgiLHtkOiJNMTQgOFY3YzAtMS4xLjktMiAyLTJoMmEyIDIgMCAwIDEgMiAydjEifV1dLHNOdD1bWyJwYXRoIix7ZDoiTTEyIDJ2MjAifV0sWyJwYXRoIix7ZDoiTTggMTBINGEyIDIgMCAwIDEtMi0yVjZjMC0xLjEuOS0yIDItMmg0In1dLFsicGF0aCIse2Q6Ik0xNiAxMGg0YTIgMiAwIDAgMCAyLTJWNmEyIDIgMCAwIDAtMi0yaC00In1dLFsicGF0aCIse2Q6Ik04IDIwSDdhMiAyIDAgMCAxLTItMnYtMmMwLTEuMS45LTIgMi0yaDEifV0sWyJwYXRoIix7ZDoiTTE2IDE0aDFhMiAyIDAgMCAxIDIgMnYyYTIgMiAwIDAgMS0yIDJoLTEifV1dLGxOdD1bWyJyZWN0Iix7d2lkdGg6IjYiLGhlaWdodDoiMTYiLHg6IjQiLHk6IjIiLHJ4OiIyIn1dLFsicmVjdCIse3dpZHRoOiI2IixoZWlnaHQ6IjkiLHg6IjE0Iix5OiI5IixyeDoiMiJ9XSxbInBhdGgiLHtkOiJNMjIgMjJIMiJ9XV0sY050PVtbInJlY3QiLHt3aWR0aDoiMTYiLGhlaWdodDoiNiIseDoiMiIseToiNCIscng6IjIifV0sWyJyZWN0Iix7d2lkdGg6IjkiLGhlaWdodDoiNiIseDoiOSIseToiMTQiLHJ4OiIyIn1dLFsicGF0aCIse2Q6Ik0yMiAyMlYyIn1dXSxkTnQ9W1sicmVjdCIse3dpZHRoOiI2IixoZWlnaHQ6IjE0Iix4OiI0Iix5OiI1IixyeDoiMiJ9XSxbInJlY3QiLHt3aWR0aDoiNiIsaGVpZ2h0OiIxMCIseDoiMTQiLHk6IjciLHJ4OiIyIn1dLFsicGF0aCIse2Q6Ik0xNyAyMnYtNSJ9XSxbInBhdGgiLHtkOiJNMTcgN1YyIn1dLFsicGF0aCIse2Q6Ik03IDIydi0zIn1dLFsicGF0aCIse2Q6Ik03IDVWMiJ9XV0sdU50PVtbInJlY3QiLHt3aWR0aDoiNiIsaGVpZ2h0OiIxNCIseDoiNCIseToiNSIscng6IjIifV0sWyJyZWN0Iix7d2lkdGg6IjYiLGhlaWdodDoiMTAiLHg6IjE0Iix5OiI3IixyeDoiMiJ9XSxbInBhdGgiLHtkOiJNMTAgMnYyMCJ9XSxbInBhdGgiLHtkOiJNMjAgMnYyMCJ9XV0scE50PVtbInJlY3QiLHt3aWR0aDoiNiIsaGVpZ2h0OiIxNCIseDoiNCIseToiNSIscng6IjIifV0sWyJyZWN0Iix7d2lkdGg6IjYiLGhlaWdodDoiMTAiLHg6IjE0Iix5OiI3IixyeDoiMiJ9XSxbInBhdGgiLHtkOiJNNCAydjIwIn1dLFsicGF0aCIse2Q6Ik0xNCAydjIwIn1dXSxoTnQ9W1sicmVjdCIse3dpZHRoOiI2IixoZWlnaHQ6IjE0Iix4OiIyIix5OiI1IixyeDoiMiJ9XSxbInJlY3QiLHt3aWR0aDoiNiIsaGVpZ2h0OiIxMCIseDoiMTYiLHk6IjciLHJ4OiIyIn1dLFsicGF0aCIse2Q6Ik0xMiAydjIwIn1dXSxmTnQ9W1sicmVjdCIse3dpZHRoOiI2IixoZWlnaHQ6IjE0Iix4OiIyIix5OiI1IixyeDoiMiJ9XSxbInJlY3QiLHt3aWR0aDoiNiIsaGVpZ2h0OiIxMCIseDoiMTIiLHk6IjciLHJ4OiIyIn1dLFsicGF0aCIse2Q6Ik0yMiAydjIwIn1dXSxtTnQ9W1sicmVjdCIse3dpZHRoOiI2IixoZWlnaHQ6IjE0Iix4OiI2Iix5OiI1IixyeDoiMiJ9XSxbInJlY3QiLHt3aWR0aDoiNiIsaGVpZ2h0OiIxMCIseDoiMTYiLHk6IjciLHJ4OiIyIn1dLFsicGF0aCIse2Q6Ik0yIDJ2MjAifV1dLGdOdD1bWyJyZWN0Iix7d2lkdGg6IjYiLGhlaWdodDoiMTAiLHg6IjkiLHk6IjciLHJ4OiIyIn1dLFsicGF0aCIse2Q6Ik00IDIyVjIifV0sWyJwYXRoIix7ZDoiTTIwIDIyVjIifV1dLGJOdD1bWyJyZWN0Iix7d2lkdGg6IjYiLGhlaWdodDoiMTQiLHg6IjMiLHk6IjUiLHJ4OiIyIn1dLFsicmVjdCIse3dpZHRoOiI2IixoZWlnaHQ6IjEwIix4OiIxNSIseToiNyIscng6IjIifV0sWyJwYXRoIix7ZDoiTTMgMnYyMCJ9XSxbInBhdGgiLHtkOiJNMjEgMnYyMCJ9XV0sdk50PVtbInJlY3QiLHt3aWR0aDoiNiIsaGVpZ2h0OiIxNiIseDoiNCIseToiNiIscng6IjIifV0sWyJyZWN0Iix7d2lkdGg6IjYiLGhlaWdodDoiOSIseDoiMTQiLHk6IjYiLHJ4OiIyIn1dLFsicGF0aCIse2Q6Ik0yMiAySDIifV1dLHhOdD1bWyJyZWN0Iix7d2lkdGg6IjkiLGhlaWdodDoiNiIseDoiNiIseToiMTQiLHJ4OiIyIn1dLFsicmVjdCIse3dpZHRoOiIxNiIsaGVpZ2h0OiI2Iix4OiI2Iix5OiI0IixyeDoiMiJ9XSxbInBhdGgiLHtkOiJNMiAydjIwIn1dXSx5TnQ9W1sicGF0aCIse2Q6Ik0yMiAxN2gtMyJ9XSxbInBhdGgiLHtkOiJNMjIgN2gtNSJ9XSxbInBhdGgiLHtkOiJNNSAxN0gyIn1dLFsicGF0aCIse2Q6Ik03IDdIMiJ9XSxbInJlY3QiLHt4OiI1Iix5OiIxNCIsd2lkdGg6IjE0IixoZWlnaHQ6IjYiLHJ4OiIyIn1dLFsicmVjdCIse3g6IjciLHk6IjQiLHdpZHRoOiIxMCIsaGVpZ2h0OiI2IixyeDoiMiJ9XV0sd050PVtbInJlY3QiLHt3aWR0aDoiMTQiLGhlaWdodDoiNiIseDoiNSIseToiMTQiLHJ4OiIyIn1dLFsicmVjdCIse3dpZHRoOiIxMCIsaGVpZ2h0OiI2Iix4OiI3Iix5OiI0IixyeDoiMiJ9XSxbInBhdGgiLHtkOiJNMiAyMGgyMCJ9XSxbInBhdGgiLHtkOiJNMiAxMGgyMCJ9XV0sTU50PVtbInJlY3QiLHt3aWR0aDoiMTQiLGhlaWdodDoiNiIseDoiNSIseToiMTQiLHJ4OiIyIn1dLFsicmVjdCIse3dpZHRoOiIxMCIsaGVpZ2h0OiI2Iix4OiI3Iix5OiI0IixyeDoiMiJ9XSxbInBhdGgiLHtkOiJNMiAxNGgyMCJ9XSxbInBhdGgiLHtkOiJNMiA0aDIwIn1dXSxrTnQ9W1sicmVjdCIse3dpZHRoOiIxNCIsaGVpZ2h0OiI2Iix4OiI1Iix5OiIxNiIscng6IjIifV0sWyJyZWN0Iix7d2lkdGg6IjEwIixoZWlnaHQ6IjYiLHg6IjciLHk6IjIiLHJ4OiIyIn1dLFsicGF0aCIse2Q6Ik0yIDEyaDIwIn1dXSxTTnQ9W1sicmVjdCIse3dpZHRoOiIxNCIsaGVpZ2h0OiI2Iix4OiI1Iix5OiIxMiIscng6IjIifV0sWyJyZWN0Iix7d2lkdGg6IjEwIixoZWlnaHQ6IjYiLHg6IjciLHk6IjIiLHJ4OiIyIn1dLFsicGF0aCIse2Q6Ik0yIDIyaDIwIn1dXSx6TnQ9W1sicmVjdCIse3dpZHRoOiIxNCIsaGVpZ2h0OiI2Iix4OiI1Iix5OiIxNiIscng6IjIifV0sWyJyZWN0Iix7d2lkdGg6IjEwIixoZWlnaHQ6IjYiLHg6IjciLHk6IjYiLHJ4OiIyIn1dLFsicGF0aCIse2Q6Ik0yIDJoMjAifV1dLENOdD1bWyJyZWN0Iix7d2lkdGg6IjEwIixoZWlnaHQ6IjYiLHg6IjciLHk6IjkiLHJ4OiIyIn1dLFsicGF0aCIse2Q6Ik0yMiAyMEgyIn1dLFsicGF0aCIse2Q6Ik0yMiA0SDIifV1dLFROdD1bWyJyZWN0Iix7d2lkdGg6IjE0IixoZWlnaHQ6IjYiLHg6IjUiLHk6IjE1IixyeDoiMiJ9XSxbInJlY3QiLHt3aWR0aDoiMTAiLGhlaWdodDoiNiIseDoiNyIseToiMyIscng6IjIifV0sWyJwYXRoIix7ZDoiTTIgMjFoMjAifV0sWyJwYXRoIix7ZDoiTTIgM2gyMCJ9XV0sX050PVtbInBhdGgiLHtkOiJNMTAgMTBINiJ9XSxbInBhdGgiLHtkOiJNMTQgMThWNmEyIDIgMCAwIDAtMi0ySDRhMiAyIDAgMCAwLTIgMnYxMWExIDEgMCAwIDAgMSAxaDIifV0sWyJwYXRoIix7ZDoiTTE5IDE4aDJhMSAxIDAgMCAwIDEtMXYtMy4yOGExIDEgMCAwIDAtLjY4NC0uOTQ4bC0xLjkyMy0uNjQxYTEgMSAwIDAgMS0uNTc4LS41MDJsLTEuNTM5LTMuMDc2QTEgMSAwIDAgMCAxNi4zODIgOEgxNCJ9XSxbInBhdGgiLHtkOiJNOCA4djQifV0sWyJwYXRoIix7ZDoiTTkgMThoNiJ9XSxbImNpcmNsZSIse2N4OiIxNyIsY3k6IjE4IixyOiIyIn1dLFsiY2lyY2xlIix7Y3g6IjciLGN5OiIxOCIscjoiMiJ9XV0sTE50PVtbInBhdGgiLHtkOiJNMTYgMTJoMyJ9XSxbInBhdGgiLHtkOiJNMTcuNSAxMmE4IDggMCAwIDEtOCA4QTQuNSA0LjUgMCAwIDEgNSAxNS41YzAtNiA4LTQgOC04LjVhMyAzIDAgMSAwLTYgMGMwIDMgMi41IDguNSAxMiAxMyJ9XV0sQU50PVtbInBhdGgiLHtkOiJNMTAgMTdjLTUtMy03LTctNy05YTIgMiAwIDAgMSA0IDBjMCAyLjUtNSAyLjUtNSA2IDAgMS43IDEuMyAzIDMgMyAyLjggMCA1LTIuMiA1LTUifV0sWyJwYXRoIix7ZDoiTTIyIDE3Yy01LTMtNy03LTctOWEyIDIgMCAwIDEgNCAwYzAgMi41LTUgMi41LTUgNiAwIDEuNyAxLjMgMyAzIDMgMi44IDAgNS0yLjIgNS01In1dXSxETnQ9W1sicGF0aCIse2Q6Ik0xMCAydjUuNjMyYzAgLjQyNC0uMjcyLjc5NS0uNjUzLjk4MkE2IDYgMCAwIDAgNiAxNGMuMDA2IDQgMyA3IDUgOCJ9XSxbInBhdGgiLHtkOiJNMTAgNUg4YTIgMiAwIDAgMCAwIDRoLjY4In1dLFsicGF0aCIse2Q6Ik0xNCAydjUuNjMyYzAgLjQyNC4yNzIuNzk1LjY1Mi45ODJBNiA2IDAgMCAxIDE4IDE0YzAgNC0zIDctNSA4In1dLFsicGF0aCIse2Q6Ik0xNCA1aDJhMiAyIDAgMCAxIDAgNGgtLjY4In1dLFsicGF0aCIse2Q6Ik0xOCAyMkg2In1dLFsicGF0aCIse2Q6Ik05IDJoNiJ9XV0sRU50PVtbInBhdGgiLHtkOiJNMTIgNnYxNiJ9XSxbInBhdGgiLHtkOiJtMTkgMTMgMi0xYTkgOSAwIDAgMS0xOCAwbDIgMSJ9XSxbInBhdGgiLHtkOiJNOSAxMWg2In1dLFsiY2lyY2xlIix7Y3g6IjEyIixjeToiNCIscjoiMiJ9XV0sJE50PVtbImNpcmNsZSIse2N4OiIxMiIsY3k6IjEyIixyOiIxMCJ9XSxbInBhdGgiLHtkOiJNMTYgMTZzLTEuNS0yLTQtMi00IDItNCAyIn1dLFsicGF0aCIse2Q6Ik03LjUgOCAxMCA5In1dLFsicGF0aCIse2Q6Im0xNCA5IDIuNS0xIn1dLFsicGF0aCIse2Q6Ik05IDEwaC4wMSJ9XSxbInBhdGgiLHtkOiJNMTUgMTBoLjAxIn1dXSxJTnQ9W1siY2lyY2xlIix7Y3g6IjEyIixjeToiMTIiLHI6IjEwIn1dLFsicGF0aCIse2Q6Ik04IDE1aDgifV0sWyJwYXRoIix7ZDoiTTggOWgyIn1dLFsicGF0aCIse2Q6Ik0xNCA5aDIifV1dLFBOdD1bWyJwYXRoIix7ZDoiTTIgMTIgNyAyIn1dLFsicGF0aCIse2Q6Im03IDEyIDUtMTAifV0sWyJwYXRoIix7ZDoibTEyIDEyIDUtMTAifV0sWyJwYXRoIix7ZDoibTE3IDEyIDUtMTAifV0sWyJwYXRoIix7ZDoiTTQuNSA3aDE1In1dLFsicGF0aCIse2Q6Ik0xMiAxNnY2In1dXSxOTnQ9W1sicGF0aCIse2Q6Ik03IDEwSDZhNCA0IDAgMCAxLTQtNCAxIDEgMCAwIDEgMS0xaDQifV0sWyJwYXRoIix7ZDoiTTcgNWExIDEgMCAwIDEgMS0xaDEzYTEgMSAwIDAgMSAxIDEgNyA3IDAgMCAxLTcgN0g4YTEgMSAwIDAgMS0xLTF6In1dLFsicGF0aCIse2Q6Ik05IDEydjUifV0sWyJwYXRoIix7ZDoiTTE1IDEydjUifV0sWyJwYXRoIix7ZDoiTTUgMjBhMyAzIDAgMCAxIDMtM2g4YTMgMyAwIDAgMSAzIDMgMSAxIDAgMCAxLTEgMUg2YTEgMSAwIDAgMS0xLTEifV1dLEZOdD1bWyJjaXJjbGUiLHtjeDoiMTIiLGN5OiIxMiIscjoiMTAifV0sWyJwYXRoIix7ZDoibTE0LjMxIDggNS43NCA5Ljk0In1dLFsicGF0aCIse2Q6Ik05LjY5IDhoMTEuNDgifV0sWyJwYXRoIix7ZDoibTcuMzggMTIgNS43NC05Ljk0In1dLFsicGF0aCIse2Q6Ik05LjY5IDE2IDMuOTUgNi4wNiJ9XSxbInBhdGgiLHtkOiJNMTQuMzEgMTZIMi44MyJ9XSxbInBhdGgiLHtkOiJtMTYuNjIgMTItNS43NCA5Ljk0In1dXSxPTnQ9W1sicmVjdCIse3dpZHRoOiIyMCIsaGVpZ2h0OiIxNiIseDoiMiIseToiNCIscng6IjIifV0sWyJwYXRoIix7ZDoiTTYgOGguMDEifV0sWyJwYXRoIix7ZDoiTTEwIDhoLjAxIn1dLFsicGF0aCIse2Q6Ik0xNCA4aC4wMSJ9XV0sUk50PVtbInJlY3QiLHt4OiIyIix5OiI0Iix3aWR0aDoiMjAiLGhlaWdodDoiMTYiLHJ4OiIyIn1dLFsicGF0aCIse2Q6Ik0xMCA0djQifV0sWyJwYXRoIix7ZDoiTTIgOGgyMCJ9XSxbInBhdGgiLHtkOiJNNiA0djQifV1dLEJOdD1bWyJwYXRoIix7ZDoiTTEyIDYuNTI4VjNhMSAxIDAgMCAxIDEtMWgwIn1dLFsicGF0aCIse2Q6Ik0xOC4yMzcgMjFBMTUgMTUgMCAwIDAgMjIgMTFhNiA2IDAgMCAwLTEwLTQuNDcyQTYgNiAwIDAgMCAyIDExYTE1LjEgMTUuMSAwIDAgMCAzLjc2MyAxMCAzIDMgMCAwIDAgMy42NDguNjQ4IDUuNSA1LjUgMCAwIDEgNS4xNzggMEEzIDMgMCAwIDAgMTguMjM3IDIxIn1dXSxITnQ9W1sicmVjdCIse3dpZHRoOiIyMCIsaGVpZ2h0OiI1Iix4OiIyIix5OiIzIixyeDoiMSJ9XSxbInBhdGgiLHtkOiJNNCA4djExYTIgMiAwIDAgMCAyIDJoMiJ9XSxbInBhdGgiLHtkOiJNMjAgOHYxMWEyIDIgMCAwIDEtMiAyaC0yIn1dLFsicGF0aCIse2Q6Im05IDE1IDMtMyAzIDMifV0sWyJwYXRoIix7ZDoiTTEyIDEydjkifV1dLHFOdD1bWyJyZWN0Iix7d2lkdGg6IjIwIixoZWlnaHQ6IjUiLHg6IjIiLHk6IjMiLHJ4OiIxIn1dLFsicGF0aCIse2Q6Ik00IDh2MTFhMiAyIDAgMCAwIDIgMmgxMmEyIDIgMCAwIDAgMi0yVjgifV0sWyJwYXRoIix7ZDoibTkuNSAxNyA1LTUifV0sWyJwYXRoIix7ZDoibTkuNSAxMiA1IDUifV1dLGpOdD1bWyJyZWN0Iix7d2lkdGg6IjIwIixoZWlnaHQ6IjUiLHg6IjIiLHk6IjMiLHJ4OiIxIn1dLFsicGF0aCIse2Q6Ik00IDh2MTFhMiAyIDAgMCAwIDIgMmgxMmEyIDIgMCAwIDAgMi0yVjgifV0sWyJwYXRoIix7ZDoiTTEwIDEyaDQifV1dLFZOdD1bWyJwYXRoIix7ZDoiTTE5IDlWNmEyIDIgMCAwIDAtMi0ySDdhMiAyIDAgMCAwLTIgMnYzIn1dLFsicGF0aCIse2Q6Ik0zIDE2YTIgMiAwIDAgMCAyIDJoMTRhMiAyIDAgMCAwIDItMnYtNWEyIDIgMCAwIDAtNCAwdjEuNWEuNS41IDAgMCAxLS41LjVoLTlhLjUuNSAwIDAgMS0uNS0uNVYxMWEyIDIgMCAwIDAtNCAweiJ9XSxbInBhdGgiLHtkOiJNNSAxOHYyIn1dLFsicGF0aCIse2Q6Ik0xOSAxOHYyIn1dXSxVTnQ9W1sicGF0aCIse2Q6Ik0xNSAxMWExIDEgMCAwIDAgMSAxaDIuOTM5YTEgMSAwIDAgMSAuNzUgMS44MTFsLTYuODM1IDYuODM2YTEuMjA3IDEuMjA3IDAgMCAxLTEuNzA3IDBMNC4zMSAxMy44MWExIDEgMCAwIDEgLjc1LTEuODExSDhhMSAxIDAgMCAwIDEtMVY5YTEgMSAwIDAgMSAxLTFoNGExIDEgMCAwIDEgMSAxeiJ9XSxbInBhdGgiLHtkOiJNOSA0aDYifV1dLFdOdD1bWyJwYXRoIix7ZDoiTTE1IDExYTEgMSAwIDAgMCAxIDFoMi45MzlhMSAxIDAgMCAxIC43NSAxLjgxMWwtNi44MzUgNi44MzZhMS4yMDcgMS4yMDcgMCAwIDEtMS43MDcgMEw0LjMxIDEzLjgxYTEgMSAwIDAgMSAuNzUtMS44MTFIOGExIDEgMCAwIDAgMS0xVjVhMSAxIDAgMCAxIDEtMWg0YTEgMSAwIDAgMSAxIDF6In1dXSxHTnQ9W1sicGF0aCIse2Q6Ik0xMyA5YTEgMSAwIDAgMS0xLTFWNS4wNjFhMSAxIDAgMCAwLTEuODExLS43NWwtNi44MzUgNi44MzZhMS4yMDcgMS4yMDcgMCAwIDAgMCAxLjcwN2w2LjgzNSA2LjgzNWExIDEgMCAwIDAgMS44MTEtLjc1VjE2YTEgMSAwIDAgMSAxLTFoMmExIDEgMCAwIDAgMS0xdi00YTEgMSAwIDAgMC0xLTF6In1dLFsicGF0aCIse2Q6Ik0yMCA5djYifV1dLFlOdD1bWyJwYXRoIix7ZDoiTTEzIDlhMSAxIDAgMCAxLTEtMVY1LjA2MWExIDEgMCAwIDAtMS44MTEtLjc1bC02LjgzNSA2LjgzNmExLjIwNyAxLjIwNyAwIDAgMCAwIDEuNzA3bDYuODM1IDYuODM1YTEgMSAwIDAgMCAxLjgxMS0uNzVWMTZhMSAxIDAgMCAxIDEtMWg2YTEgMSAwIDAgMCAxLTF2LTRhMSAxIDAgMCAwLTEtMXoifV1dLFpOdD1bWyJwYXRoIix7ZDoiTTExIDlhMSAxIDAgMCAwIDEtMVY1LjA2MWExIDEgMCAwIDEgMS44MTEtLjc1bDYuODM2IDYuODM2YTEuMjA3IDEuMjA3IDAgMCAxIDAgMS43MDdsLTYuODM2IDYuODM1YTEgMSAwIDAgMS0xLjgxMS0uNzVWMTZhMSAxIDAgMCAwLTEtMUg5YTEgMSAwIDAgMS0xLTF2LTRhMSAxIDAgMCAxIDEtMXoifV0sWyJwYXRoIix7ZDoiTTQgOXY2In1dXSxYTnQ9W1sicGF0aCIse2Q6Ik0xMSA5YTEgMSAwIDAgMCAxLTFWNS4wNjFhMSAxIDAgMCAxIDEuODExLS43NWw2LjgzNiA2LjgzNmExLjIwNyAxLjIwNyAwIDAgMSAwIDEuNzA3bC02LjgzNiA2LjgzNWExIDEgMCAwIDEtMS44MTEtLjc1VjE2YTEgMSAwIDAgMC0xLTFINWExIDEgMCAwIDEtMS0xdi00YTEgMSAwIDAgMSAxLTF6In1dXSxRTnQ9W1sicGF0aCIse2Q6Ik05IDEzYTEgMSAwIDAgMC0xLTFINS4wNjFhMSAxIDAgMCAxLS43NS0xLjgxMWw2LjgzNi02LjgzNWExLjIwNyAxLjIwNyAwIDAgMSAxLjcwNyAwbDYuODM1IDYuODM1YTEgMSAwIDAgMS0uNzUgMS44MTFIMTZhMSAxIDAgMCAwLTEgMXYyYTEgMSAwIDAgMS0xIDFoLTRhMSAxIDAgMCAxLTEtMXoifV0sWyJwYXRoIix7ZDoiTTkgMjBoNiJ9XV0sSk50PVtbInBhdGgiLHtkOiJNOSAxM2ExIDEgMCAwIDAtMS0xSDUuMDYxYTEgMSAwIDAgMS0uNzUtMS44MTFsNi44MzYtNi44MzVhMS4yMDcgMS4yMDcgMCAwIDEgMS43MDcgMGw2LjgzNSA2LjgzNWExIDEgMCAwIDEtLjc1IDEuODExSDE2YTEgMSAwIDAgMC0xIDF2NmExIDEgMCAwIDEtMSAxaC00YTEgMSAwIDAgMS0xLTF6In1dXSxLTnQ9W1sicGF0aCIse2Q6Im0zIDE2IDQgNCA0LTQifV0sWyJwYXRoIix7ZDoiTTcgMjBWNCJ9XSxbInJlY3QiLHt4OiIxNSIseToiNCIsd2lkdGg6IjQiLGhlaWdodDoiNiIscnk6IjIifV0sWyJwYXRoIix7ZDoiTTE3IDIwdi02aC0yIn1dLFsicGF0aCIse2Q6Ik0xNSAyMGg0In1dXSxlRnQ9W1sicGF0aCIse2Q6Im0zIDE2IDQgNCA0LTQifV0sWyJwYXRoIix7ZDoiTTcgMjBWNCJ9XSxbInBhdGgiLHtkOiJNMTcgMTBWNGgtMiJ9XSxbInBhdGgiLHtkOiJNMTUgMTBoNCJ9XSxbInJlY3QiLHt4OiIxNSIseToiMTQiLHdpZHRoOiI0IixoZWlnaHQ6IjYiLHJ5OiIyIn1dXSxiRT1bWyJwYXRoIix7ZDoibTMgMTYgNCA0IDQtNCJ9XSxbInBhdGgiLHtkOiJNNyAyMFY0In1dLFsicGF0aCIse2Q6Ik0yMCA4aC01In1dLFsicGF0aCIse2Q6Ik0xNSAxMFY2LjVhMi41IDIuNSAwIDAgMSA1IDBWMTAifV0sWyJwYXRoIix7ZDoiTTE1IDE0aDVsLTUgNmg1In1dXSx0RnQ9W1sicGF0aCIse2Q6Ik0xOSAzSDUifV0sWyJwYXRoIix7ZDoiTTEyIDIxVjcifV0sWyJwYXRoIix7ZDoibTYgMTUgNiA2IDYtNiJ9XV0sckZ0PVtbInBhdGgiLHtkOiJNMTcgNyA3IDE3In1dLFsicGF0aCIse2Q6Ik0xNyAxN0g3VjcifV1dLGlGdD1bWyJwYXRoIix7ZDoibTMgMTYgNCA0IDQtNCJ9XSxbInBhdGgiLHtkOiJNNyAyMFY0In1dLFsicGF0aCIse2Q6Ik0xMSA0aDQifV0sWyJwYXRoIix7ZDoiTTExIDhoNyJ9XSxbInBhdGgiLHtkOiJNMTEgMTJoMTAifV1dLGFGdD1bWyJwYXRoIix7ZDoibTcgNyAxMCAxMCJ9XSxbInBhdGgiLHtkOiJNMTcgN3YxMEg3In1dXSxuRnQ9W1sicGF0aCIse2Q6Ik0xMiAydjE0In1dLFsicGF0aCIse2Q6Im0xOSA5LTcgNy03LTcifV0sWyJjaXJjbGUiLHtjeDoiMTIiLGN5OiIyMSIscjoiMSJ9XV0sb0Z0PVtbInBhdGgiLHtkOiJNMTIgMTdWMyJ9XSxbInBhdGgiLHtkOiJtNiAxMSA2IDYgNi02In1dLFsicGF0aCIse2Q6Ik0xOSAyMUg1In1dXSxzRnQ9W1sicGF0aCIse2Q6Im0zIDE2IDQgNCA0LTQifV0sWyJwYXRoIix7ZDoiTTcgMjBWNCJ9XSxbInBhdGgiLHtkOiJtMjEgOC00LTQtNCA0In1dLFsicGF0aCIse2Q6Ik0xNyA0djE2In1dXSx2RT1bWyJwYXRoIix7ZDoibTMgMTYgNCA0IDQtNCJ9XSxbInBhdGgiLHtkOiJNNyAyMFY0In1dLFsicGF0aCIse2Q6Ik0xMSA0aDEwIn1dLFsicGF0aCIse2Q6Ik0xMSA4aDcifV0sWyJwYXRoIix7ZDoiTTExIDEyaDQifV1dLHhFPVtbInBhdGgiLHtkOiJtMyAxNiA0IDQgNC00In1dLFsicGF0aCIse2Q6Ik03IDR2MTYifV0sWyJwYXRoIix7ZDoiTTE1IDRoNWwtNSA2aDUifV0sWyJwYXRoIix7ZDoiTTE1IDIwdi0zLjVhMi41IDIuNSAwIDAgMSA1IDBWMjAifV0sWyJwYXRoIix7ZDoiTTIwIDE4aC01In1dXSxsRnQ9W1sicGF0aCIse2Q6Ik0xMiA1djE0In1dLFsicGF0aCIse2Q6Im0xOSAxMi03IDctNy03In1dXSxjRnQ9W1sicGF0aCIse2Q6Im05IDYtNiA2IDYgNiJ9XSxbInBhdGgiLHtkOiJNMyAxMmgxNCJ9XSxbInBhdGgiLHtkOiJNMjEgMTlWNSJ9XV0sZEZ0PVtbInBhdGgiLHtkOiJNOCAzIDQgN2w0IDQifV0sWyJwYXRoIix7ZDoiTTQgN2gxNiJ9XSxbInBhdGgiLHtkOiJtMTYgMjEgNC00LTQtNCJ9XSxbInBhdGgiLHtkOiJNMjAgMTdINCJ9XV0sdUZ0PVtbInBhdGgiLHtkOiJNMyAxOVY1In1dLFsicGF0aCIse2Q6Im0xMyA2LTYgNiA2IDYifV0sWyJwYXRoIix7ZDoiTTcgMTJoMTQifV1dLHBGdD1bWyJwYXRoIix7ZDoibTEyIDE5LTctNyA3LTcifV0sWyJwYXRoIix7ZDoiTTE5IDEySDUifV1dLGhGdD1bWyJwYXRoIix7ZDoiTTMgNXYxNCJ9XSxbInBhdGgiLHtkOiJNMjEgMTJINyJ9XSxbInBhdGgiLHtkOiJtMTUgMTggNi02LTYtNiJ9XV0sZkZ0PVtbInBhdGgiLHtkOiJtMTYgMyA0IDQtNCA0In1dLFsicGF0aCIse2Q6Ik0yMCA3SDQifV0sWyJwYXRoIix7ZDoibTggMjEtNC00IDQtNCJ9XSxbInBhdGgiLHtkOiJNNCAxN2gxNiJ9XV0sbUZ0PVtbInBhdGgiLHtkOiJNMTcgMTJIMyJ9XSxbInBhdGgiLHtkOiJtMTEgMTggNi02LTYtNiJ9XSxbInBhdGgiLHtkOiJNMjEgNXYxNCJ9XV0sZ0Z0PVtbInBhdGgiLHtkOiJNNSAxMmgxNCJ9XSxbInBhdGgiLHtkOiJtMTIgNSA3IDctNyA3In1dXSxiRnQ9W1sicGF0aCIse2Q6Im0zIDggNC00IDQgNCJ9XSxbInBhdGgiLHtkOiJNNyA0djE2In1dLFsicmVjdCIse3g6IjE1Iix5OiI0Iix3aWR0aDoiNCIsaGVpZ2h0OiI2IixyeToiMiJ9XSxbInBhdGgiLHtkOiJNMTcgMjB2LTZoLTIifV0sWyJwYXRoIix7ZDoiTTE1IDIwaDQifV1dLHZGdD1bWyJwYXRoIix7ZDoibTMgOCA0LTQgNCA0In1dLFsicGF0aCIse2Q6Ik03IDR2MTYifV0sWyJwYXRoIix7ZDoiTTE3IDEwVjRoLTIifV0sWyJwYXRoIix7ZDoiTTE1IDEwaDQifV0sWyJyZWN0Iix7eDoiMTUiLHk6IjE0Iix3aWR0aDoiNCIsaGVpZ2h0OiI2IixyeToiMiJ9XV0seUU9W1sicGF0aCIse2Q6Im0zIDggNC00IDQgNCJ9XSxbInBhdGgiLHtkOiJNNyA0djE2In1dLFsicGF0aCIse2Q6Ik0yMCA4aC01In1dLFsicGF0aCIse2Q6Ik0xNSAxMFY2LjVhMi41IDIuNSAwIDAgMSA1IDBWMTAifV0sWyJwYXRoIix7ZDoiTTE1IDE0aDVsLTUgNmg1In1dXSx4RnQ9W1sicGF0aCIse2Q6Im0yMSAxNi00IDQtNC00In1dLFsicGF0aCIse2Q6Ik0xNyAyMFY0In1dLFsicGF0aCIse2Q6Im0zIDggNC00IDQgNCJ9XSxbInBhdGgiLHtkOiJNNyA0djE2In1dXSx5RnQ9W1sicGF0aCIse2Q6Im01IDkgNy03IDcgNyJ9XSxbInBhdGgiLHtkOiJNMTIgMTZWMiJ9XSxbImNpcmNsZSIse2N4OiIxMiIsY3k6IjIxIixyOiIxIn1dXSx3RnQ9W1sicGF0aCIse2Q6Im0xOCA5LTYtNi02IDYifV0sWyJwYXRoIix7ZDoiTTEyIDN2MTQifV0sWyJwYXRoIix7ZDoiTTUgMjFoMTQifV1dLE1GdD1bWyJwYXRoIix7ZDoiTTcgMTdWN2gxMCJ9XSxbInBhdGgiLHtkOiJNMTcgMTcgNyA3In1dXSx3RT1bWyJwYXRoIix7ZDoibTMgOCA0LTQgNCA0In1dLFsicGF0aCIse2Q6Ik03IDR2MTYifV0sWyJwYXRoIix7ZDoiTTExIDEyaDQifV0sWyJwYXRoIix7ZDoiTTExIDE2aDcifV0sWyJwYXRoIix7ZDoiTTExIDIwaDEwIn1dXSxrRnQ9W1sicGF0aCIse2Q6Ik03IDdoMTB2MTAifV0sWyJwYXRoIix7ZDoiTTcgMTcgMTcgNyJ9XV0sU0Z0PVtbInBhdGgiLHtkOiJNNSAzaDE0In1dLFsicGF0aCIse2Q6Im0xOCAxMy02LTYtNiA2In1dLFsicGF0aCIse2Q6Ik0xMiA3djE0In1dXSx6RnQ9W1sicGF0aCIse2Q6Im0zIDggNC00IDQgNCJ9XSxbInBhdGgiLHtkOiJNNyA0djE2In1dLFsicGF0aCIse2Q6Ik0xMSAxMmgxMCJ9XSxbInBhdGgiLHtkOiJNMTEgMTZoNyJ9XSxbInBhdGgiLHtkOiJNMTEgMjBoNCJ9XV0sTUU9W1sicGF0aCIse2Q6Im0zIDggNC00IDQgNCJ9XSxbInBhdGgiLHtkOiJNNyA0djE2In1dLFsicGF0aCIse2Q6Ik0xNSA0aDVsLTUgNmg1In1dLFsicGF0aCIse2Q6Ik0xNSAyMHYtMy41YTIuNSAyLjUgMCAwIDEgNSAwVjIwIn1dLFsicGF0aCIse2Q6Ik0yMCAxOGgtNSJ9XV0sQ0Z0PVtbInBhdGgiLHtkOiJtNSAxMiA3LTcgNyA3In1dLFsicGF0aCIse2Q6Ik0xMiAxOVY1In1dXSxURnQ9W1sicGF0aCIse2Q6Im00IDYgMy0zIDMgMyJ9XSxbInBhdGgiLHtkOiJNNyAxN1YzIn1dLFsicGF0aCIse2Q6Im0xNCA2IDMtMyAzIDMifV0sWyJwYXRoIix7ZDoiTTE3IDE3VjMifV0sWyJwYXRoIix7ZDoiTTQgMjFoMTYifV1dLF9GdD1bWyJwYXRoIix7ZDoiTTEyIDZ2MTIifV0sWyJwYXRoIix7ZDoiTTE3LjE5NiA5IDYuODA0IDE1In1dLFsicGF0aCIse2Q6Im02LjgwNCA5IDEwLjM5MiA2In1dXSxMRnQ9W1siY2lyY2xlIix7Y3g6IjEyIixjeToiMTIiLHI6IjQifV0sWyJwYXRoIix7ZDoiTTE2IDh2NWEzIDMgMCAwIDAgNiAwdi0xYTEwIDEwIDAgMSAwLTQgOCJ9XV0sQUZ0PVtbImNpcmNsZSIse2N4OiIxMiIsY3k6IjEyIixyOiIxIn1dLFsicGF0aCIse2Q6Ik0yMC4yIDIwLjJjMi4wNC0yLjAzLjAyLTcuMzYtNC41LTExLjktNC41NC00LjUyLTkuODctNi41NC0xMS45LTQuNS0yLjA0IDIuMDMtLjAyIDcuMzYgNC41IDExLjkgNC41NCA0LjUyIDkuODcgNi41NCAxMS45IDQuNVoifV0sWyJwYXRoIix7ZDoiTTE1LjcgMTUuN2M0LjUyLTQuNTQgNi41NC05Ljg3IDQuNS0xMS45LTIuMDMtMi4wNC03LjM2LS4wMi0xMS45IDQuNS00LjUyIDQuNTQtNi41NCA5Ljg3LTQuNSAxMS45IDIuMDMgMi4wNCA3LjM2LjAyIDExLjktNC41WiJ9XV0sREZ0PVtbInBhdGgiLHtkOiJNMiAxMHYzIn1dLFsicGF0aCIse2Q6Ik02IDZ2MTEifV0sWyJwYXRoIix7ZDoiTTEwIDN2MTgifV0sWyJwYXRoIix7ZDoiTTE0IDh2NyJ9XSxbInBhdGgiLHtkOiJNMTggNXYxMyJ9XSxbInBhdGgiLHtkOiJNMjIgMTB2MyJ9XV0sRUZ0PVtbInBhdGgiLHtkOiJNMiAxM2EyIDIgMCAwIDAgMi0yVjdhMiAyIDAgMCAxIDQgMHYxM2EyIDIgMCAwIDAgNCAwVjRhMiAyIDAgMCAxIDQgMHYxM2EyIDIgMCAwIDAgNCAwdi00YTIgMiAwIDAgMSAyLTIifV1dLCRGdD1bWyJwYXRoIix7ZDoibTE1LjQ3NyAxMi44OSAxLjUxNSA4LjUyNmEuNS41IDAgMCAxLS44MS40N2wtMy41OC0yLjY4N2ExIDEgMCAwIDAtMS4xOTcgMGwtMy41ODYgMi42ODZhLjUuNSAwIDAgMS0uODEtLjQ2OWwxLjUxNC04LjUyNiJ9XSxbImNpcmNsZSIse2N4OiIxMiIsY3k6IjgiLHI6IjYifV1dLElGdD1bWyJwYXRoIix7ZDoibTE0IDEyLTguMzgxIDguMzhhMSAxIDAgMCAxLTMuMDAxLTNMMTEgOSJ9XSxbInBhdGgiLHtkOiJNMTUgMTUuNWEuNS41IDAgMCAwIC41LjVBNi41IDYuNSAwIDAgMCAyMiA5LjVhLjUuNSAwIDAgMC0uNS0uNWgtMS42NzJhMiAyIDAgMCAxLTEuNDE0LS41ODZsLTUuMDYyLTUuMDYyYTEuMjA1IDEuMjA1IDAgMCAwLTEuNzA0IDBMOS4zNTIgNS42NDhhMS4yMDUgMS4yMDUgMCAwIDAgMCAxLjcwNGw1LjA2MiA1LjA2MkEyIDIgMCAwIDEgMTUgMTMuODI4eiJ9XV0sa0U9W1sicGF0aCIse2Q6Ik0xMy41IDEwLjUgMTUgOSJ9XSxbInBhdGgiLHtkOiJNNCA0djE1YTEgMSAwIDAgMCAxIDFoMTUifV0sWyJwYXRoIix7ZDoiTTQuMjkzIDE5LjcwNyA2IDE4In1dLFsicGF0aCIse2Q6Im05IDE1IDEuNS0xLjUifV1dLFBGdD1bWyJwYXRoIix7ZDoiTTQgMTBhNCA0IDAgMCAxIDQtNGg4YTQgNCAwIDAgMSA0IDR2MTBhMiAyIDAgMCAxLTIgMkg2YTIgMiAwIDAgMS0yLTJ6In1dLFsicGF0aCIse2Q6Ik04IDEwaDgifV0sWyJwYXRoIix7ZDoiTTggMThoOCJ9XSxbInBhdGgiLHtkOiJNOCAyMnYtNmEyIDIgMCAwIDEgMi0yaDRhMiAyIDAgMCAxIDIgMnY2In1dLFsicGF0aCIse2Q6Ik05IDZWNGEyIDIgMCAwIDEgMi0yaDJhMiAyIDAgMCAxIDIgMnYyIn1dXSxORnQ9W1sicGF0aCIse2Q6Ik0xMCAxNmMuNS4zIDEuMi41IDIgLjVzMS41LS4yIDItLjUifV0sWyJwYXRoIix7ZDoiTTE1IDEyaC4wMSJ9XSxbInBhdGgiLHtkOiJNMTkuMzggNi44MTNBOSA5IDAgMCAxIDIwLjggMTAuMmEyIDIgMCAwIDEgMCAzLjYgOSA5IDAgMCAxLTE3LjYgMCAyIDIgMCAwIDEgMC0zLjZBOSA5IDAgMCAxIDEyIDNjMiAwIDMuNSAxLjEgMy41IDIuNXMtLjkgMi41LTIgMi41Yy0uOCAwLTEuNS0uNC0xLjUtMSJ9XSxbInBhdGgiLHtkOiJNOSAxMmguMDEifV1dLEZGdD1bWyJwYXRoIix7ZDoiTTMuODUgOC42MmE0IDQgMCAwIDEgNC43OC00Ljc3IDQgNCAwIDAgMSA2Ljc0IDAgNCA0IDAgMCAxIDQuNzggNC43OCA0IDQgMCAwIDEgMCA2Ljc0IDQgNCAwIDAgMS00Ljc3IDQuNzggNCA0IDAgMCAxLTYuNzUgMCA0IDQgMCAwIDEtNC43OC00Ljc3IDQgNCAwIDAgMSAwLTYuNzZaIn1dLFsibGluZSIse3gxOiIxMiIseDI6IjEyIix5MToiOCIseTI6IjEyIn1dLFsibGluZSIse3gxOiIxMiIseDI6IjEyLjAxIix5MToiMTYiLHkyOiIxNiJ9XV0sT0Z0PVtbInBhdGgiLHtkOiJNMy44NSA4LjYyYTQgNCAwIDAgMSA0Ljc4LTQuNzcgNCA0IDAgMCAxIDYuNzQgMCA0IDQgMCAwIDEgNC43OCA0Ljc4IDQgNCAwIDAgMSAwIDYuNzQgNCA0IDAgMCAxLTQuNzcgNC43OCA0IDQgMCAwIDEtNi43NSAwIDQgNCAwIDAgMS00Ljc4LTQuNzcgNCA0IDAgMCAxIDAtNi43NloifV0sWyJwYXRoIix7ZDoiTTEyIDd2MTAifV0sWyJwYXRoIix7ZDoiTTE1LjQgMTBhNCA0IDAgMSAwIDAgNCJ9XV0sU0U9W1sicGF0aCIse2Q6Ik0zLjg1IDguNjJhNCA0IDAgMCAxIDQuNzgtNC43NyA0IDQgMCAwIDEgNi43NCAwIDQgNCAwIDAgMSA0Ljc4IDQuNzggNCA0IDAgMCAxIDAgNi43NCA0IDQgMCAwIDEtNC43NyA0Ljc4IDQgNCAwIDAgMS02Ljc1IDAgNCA0IDAgMCAxLTQuNzgtNC43NyA0IDQgMCAwIDEgMC02Ljc2WiJ9XSxbInBhdGgiLHtkOiJtOSAxMiAyIDIgNC00In1dXSxSRnQ9W1sicGF0aCIse2Q6Ik0zLjg1IDguNjJhNCA0IDAgMCAxIDQuNzgtNC43NyA0IDQgMCAwIDEgNi43NCAwIDQgNCAwIDAgMSA0Ljc4IDQuNzggNCA0IDAgMCAxIDAgNi43NCA0IDQgMCAwIDEtNC43NyA0Ljc4IDQgNCAwIDAgMS02Ljc1IDAgNCA0IDAgMCAxLTQuNzgtNC43NyA0IDQgMCAwIDEgMC02Ljc2WiJ9XSxbInBhdGgiLHtkOiJNOCA4aDgifV0sWyJwYXRoIix7ZDoiTTggMTJoOCJ9XSxbInBhdGgiLHtkOiJtMTMgMTctNS0xaDFhNCA0IDAgMCAwIDAtOCJ9XV0sQkZ0PVtbInBhdGgiLHtkOiJNMy44NSA4LjYyYTQgNCAwIDAgMSA0Ljc4LTQuNzcgNCA0IDAgMCAxIDYuNzQgMCA0IDQgMCAwIDEgNC43OCA0Ljc4IDQgNCAwIDAgMSAwIDYuNzQgNCA0IDAgMCAxLTQuNzcgNC43OCA0IDQgMCAwIDEtNi43NSAwIDQgNCAwIDAgMS00Ljc4LTQuNzcgNCA0IDAgMCAxIDAtNi43NloifV0sWyJwYXRoIix7ZDoiTTE2IDhoLTZhMiAyIDAgMSAwIDAgNGg0YTIgMiAwIDEgMSAwIDRIOCJ9XSxbInBhdGgiLHtkOiJNMTIgMThWNiJ9XV0sSEZ0PVtbInBhdGgiLHtkOiJNMy44NSA4LjYyYTQgNCAwIDAgMSA0Ljc4LTQuNzcgNCA0IDAgMCAxIDYuNzQgMCA0IDQgMCAwIDEgNC43OCA0Ljc4IDQgNCAwIDAgMSAwIDYuNzQgNCA0IDAgMCAxLTQuNzcgNC43OCA0IDQgMCAwIDEtNi43NSAwIDQgNCAwIDAgMS00Ljc4LTQuNzcgNCA0IDAgMCAxIDAtNi43NloifV0sWyJwYXRoIix7ZDoiTTcgMTJoNSJ9XSxbInBhdGgiLHtkOiJNMTUgOS40YTQgNCAwIDEgMCAwIDUuMiJ9XV0scUZ0PVtbInBhdGgiLHtkOiJNMy44NSA4LjYyYTQgNCAwIDAgMSA0Ljc4LTQuNzcgNCA0IDAgMCAxIDYuNzQgMCA0IDQgMCAwIDEgNC43OCA0Ljc4IDQgNCAwIDAgMSAwIDYuNzQgNCA0IDAgMCAxLTQuNzcgNC43OCA0IDQgMCAwIDEtNi43NSAwIDQgNCAwIDAgMS00Ljc4LTQuNzcgNCA0IDAgMCAxIDAtNi43NloifV0sWyJsaW5lIix7eDE6IjEyIix4MjoiMTIiLHkxOiIxNiIseTI6IjEyIn1dLFsibGluZSIse3gxOiIxMiIseDI6IjEyLjAxIix5MToiOCIseTI6IjgifV1dLGpGdD1bWyJwYXRoIix7ZDoiTTMuODUgOC42MmE0IDQgMCAwIDEgNC43OC00Ljc3IDQgNCAwIDAgMSA2Ljc0IDAgNCA0IDAgMCAxIDQuNzggNC43OCA0IDQgMCAwIDEgMCA2Ljc0IDQgNCAwIDAgMS00Ljc3IDQuNzggNCA0IDAgMCAxLTYuNzUgMCA0IDQgMCAwIDEtNC43OC00Ljc3IDQgNCAwIDAgMSAwLTYuNzZaIn1dLFsicGF0aCIse2Q6Im05IDggMyAzdjcifV0sWyJwYXRoIix7ZDoibTEyIDExIDMtMyJ9XSxbInBhdGgiLHtkOiJNOSAxMmg2In1dLFsicGF0aCIse2Q6Ik05IDE2aDYifV1dLFZGdD1bWyJwYXRoIix7ZDoiTTMuODUgOC42MmE0IDQgMCAwIDEgNC43OC00Ljc3IDQgNCAwIDAgMSA2Ljc0IDAgNCA0IDAgMCAxIDQuNzggNC43OCA0IDQgMCAwIDEgMCA2Ljc0IDQgNCAwIDAgMS00Ljc3IDQuNzggNCA0IDAgMCAxLTYuNzUgMCA0IDQgMCAwIDEtNC43OC00Ljc3IDQgNCAwIDAgMSAwLTYuNzZaIn1dLFsibGluZSIse3gxOiI4Iix4MjoiMTYiLHkxOiIxMiIseTI6IjEyIn1dXSxVRnQ9W1sicGF0aCIse2Q6Ik0zLjg1IDguNjJhNCA0IDAgMCAxIDQuNzgtNC43NyA0IDQgMCAwIDEgNi43NCAwIDQgNCAwIDAgMSA0Ljc4IDQuNzggNCA0IDAgMCAxIDAgNi43NCA0IDQgMCAwIDEtNC43NyA0Ljc4IDQgNCAwIDAgMS02Ljc1IDAgNCA0IDAgMCAxLTQuNzgtNC43NyA0IDQgMCAwIDEgMC02Ljc2WiJ9XSxbInBhdGgiLHtkOiJtMTUgOS02IDYifV0sWyJwYXRoIix7ZDoiTTkgOWguMDEifV0sWyJwYXRoIix7ZDoiTTE1IDE1aC4wMSJ9XV0sV0Z0PVtbInBhdGgiLHtkOiJNMy44NSA4LjYyYTQgNCAwIDAgMSA0Ljc4LTQuNzcgNCA0IDAgMCAxIDYuNzQgMCA0IDQgMCAwIDEgNC43OCA0Ljc4IDQgNCAwIDAgMSAwIDYuNzQgNCA0IDAgMCAxLTQuNzcgNC43OCA0IDQgMCAwIDEtNi43NSAwIDQgNCAwIDAgMS00Ljc4LTQuNzcgNCA0IDAgMCAxIDAtNi43NloifV0sWyJsaW5lIix7eDE6IjEyIix4MjoiMTIiLHkxOiI4Iix5MjoiMTYifV0sWyJsaW5lIix7eDE6IjgiLHgyOiIxNiIseTE6IjEyIix5MjoiMTIifV1dLEdGdD1bWyJwYXRoIix7ZDoiTTMuODUgOC42MmE0IDQgMCAwIDEgNC43OC00Ljc3IDQgNCAwIDAgMSA2Ljc0IDAgNCA0IDAgMCAxIDQuNzggNC43OCA0IDQgMCAwIDEgMCA2Ljc0IDQgNCAwIDAgMS00Ljc3IDQuNzggNCA0IDAgMCAxLTYuNzUgMCA0IDQgMCAwIDEtNC43OC00Ljc3IDQgNCAwIDAgMSAwLTYuNzZaIn1dLFsicGF0aCIse2Q6Ik04IDEyaDQifV0sWyJwYXRoIix7ZDoiTTEwIDE2VjkuNWEyLjUgMi41IDAgMCAxIDUgMCJ9XSxbInBhdGgiLHtkOiJNOCAxNmg3In1dXSx6RT1bWyJwYXRoIix7ZDoiTTMuODUgOC42MmE0IDQgMCAwIDEgNC43OC00Ljc3IDQgNCAwIDAgMSA2Ljc0IDAgNCA0IDAgMCAxIDQuNzggNC43OCA0IDQgMCAwIDEgMCA2Ljc0IDQgNCAwIDAgMS00Ljc3IDQuNzggNCA0IDAgMCAxLTYuNzUgMCA0IDQgMCAwIDEtNC43OC00Ljc3IDQgNCAwIDAgMSAwLTYuNzZaIn1dLFsicGF0aCIse2Q6Ik05LjA5IDlhMyAzIDAgMCAxIDUuODMgMWMwIDItMyAzLTMgMyJ9XSxbImxpbmUiLHt4MToiMTIiLHgyOiIxMi4wMSIseTE6IjE3Iix5MjoiMTcifV1dLFlGdD1bWyJwYXRoIix7ZDoiTTMuODUgOC42MmE0IDQgMCAwIDEgNC43OC00Ljc3IDQgNCAwIDAgMSA2Ljc0IDAgNCA0IDAgMCAxIDQuNzggNC43OCA0IDQgMCAwIDEgMCA2Ljc0IDQgNCAwIDAgMS00Ljc3IDQuNzggNCA0IDAgMCAxLTYuNzUgMCA0IDQgMCAwIDEtNC43OC00Ljc3IDQgNCAwIDAgMSAwLTYuNzZaIn1dLFsicGF0aCIse2Q6Ik05IDE2aDUifV0sWyJwYXRoIix7ZDoiTTkgMTJoNWEyIDIgMCAxIDAgMC00aC0zdjkifV1dLFpGdD1bWyJwYXRoIix7ZDoiTTMuODUgOC42MmE0IDQgMCAwIDEgNC43OC00Ljc3IDQgNCAwIDAgMSA2Ljc0IDAgNCA0IDAgMCAxIDQuNzggNC43OCA0IDQgMCAwIDEgMCA2Ljc0IDQgNCAwIDAgMS00Ljc3IDQuNzggNCA0IDAgMCAxLTYuNzUgMCA0IDQgMCAwIDEtNC43OC00Ljc3IDQgNCAwIDAgMSAwLTYuNzZaIn1dLFsicGF0aCIse2Q6Ik0xMSAxN1Y4aDQifV0sWyJwYXRoIix7ZDoiTTExIDEyaDMifV0sWyJwYXRoIix7ZDoiTTkgMTZoNCJ9XV0sWEZ0PVtbInBhdGgiLHtkOiJNMTEgN3YxMGE1IDUgMCAwIDAgNS01In1dLFsicGF0aCIse2Q6Im0xNSA4LTYgMyJ9XSxbInBhdGgiLHtkOiJNMy44NSA4LjYyYTQgNCAwIDAgMSA0Ljc4LTQuNzcgNCA0IDAgMCAxIDYuNzQgMCA0IDQgMCAwIDEgNC43OCA0Ljc4IDQgNCAwIDAgMSAwIDYuNzQgNCA0IDAgMCAxLTQuNzcgNC43OCA0IDQgMCAwIDEtNi43NSAwIDQgNCAwIDAgMS00Ljc4LTQuNzcgNCA0IDAgMCAxIDAtNi43NiJ9XV0sUUZ0PVtbInBhdGgiLHtkOiJNMy44NSA4LjYyYTQgNCAwIDAgMSA0Ljc4LTQuNzcgNCA0IDAgMCAxIDYuNzQgMCA0IDQgMCAwIDEgNC43OCA0Ljc4IDQgNCAwIDAgMSAwIDYuNzQgNCA0IDAgMCAxLTQuNzcgNC43OCA0IDQgMCAwIDEtNi43NSAwIDQgNCAwIDAgMS00Ljc4LTQuNzcgNCA0IDAgMCAxIDAtNi43NloifV0sWyJsaW5lIix7eDE6IjE1Iix4MjoiOSIseTE6IjkiLHkyOiIxNSJ9XSxbImxpbmUiLHt4MToiOSIseDI6IjE1Iix5MToiOSIseTI6IjE1In1dXSxKRnQ9W1sicGF0aCIse2Q6Ik0zLjg1IDguNjJhNCA0IDAgMCAxIDQuNzgtNC43NyA0IDQgMCAwIDEgNi43NCAwIDQgNCAwIDAgMSA0Ljc4IDQuNzggNCA0IDAgMCAxIDAgNi43NCA0IDQgMCAwIDEtNC43NyA0Ljc4IDQgNCAwIDAgMS02Ljc1IDAgNCA0IDAgMCAxLTQuNzgtNC43NyA0IDQgMCAwIDEgMC02Ljc2WiJ9XV0sS0Z0PVtbInBhdGgiLHtkOiJNMjIgMThINmEyIDIgMCAwIDEtMi0yVjdhMiAyIDAgMCAwLTItMiJ9XSxbInBhdGgiLHtkOiJNMTcgMTRWNGEyIDIgMCAwIDAtMi0yaC0xYTIgMiAwIDAgMC0yIDJ2MTAifV0sWyJyZWN0Iix7d2lkdGg6IjEzIixoZWlnaHQ6IjgiLHg6IjgiLHk6IjYiLHJ4OiIxIn1dLFsiY2lyY2xlIix7Y3g6IjE4IixjeToiMjAiLHI6IjIifV0sWyJjaXJjbGUiLHtjeDoiOSIsY3k6IjIwIixyOiIyIn1dXSxlT3Q9W1sicGF0aCIse2Q6Ik0xMiAxNnYxYTIgMiAwIDAgMCAyIDJoMWEyIDIgMCAwIDEgMiAydjEifV0sWyJwYXRoIix7ZDoiTTEyIDZhMiAyIDAgMCAxIDIgMiJ9XSxbInBhdGgiLHtkOiJNMTggOGMwIDQtMy41IDgtNiA4cy02LTQtNi04YTYgNiAwIDAgMSAxMiAwIn1dXSx0T3Q9W1sicGF0aCIse2Q6Ik00LjkyOSA0LjkyOSAxOS4wNyAxOS4wNzEifV0sWyJjaXJjbGUiLHtjeDoiMTIiLGN5OiIxMiIscjoiMTAifV1dLHJPdD1bWyJwYXRoIix7ZDoiTTQgMTNjMy41LTIgOC0yIDEwIDJhNS41IDUuNSAwIDAgMSA4IDUifV0sWyJwYXRoIix7ZDoiTTUuMTUgMTcuODljNS41Mi0xLjUyIDguNjUtNi44OSA3LTEyQzExLjU1IDQgMTEuNSAyIDEzIDJjMy4yMiAwIDUgNS41IDUgOCAwIDYuNS00LjIgMTItMTAuNDkgMTJDNS4xMSAyMiAyIDIyIDIgMjBjMC0xLjUgMS4xNC0xLjU1IDMuMTUtMi4xMVoifV1dLGlPdD1bWyJwYXRoIix7ZDoiTTEwIDEwLjAxaC4wMSJ9XSxbInBhdGgiLHtkOiJNMTAgMTQuMDFoLjAxIn1dLFsicGF0aCIse2Q6Ik0xNCAxMC4wMWguMDEifV0sWyJwYXRoIix7ZDoiTTE0IDE0LjAxaC4wMSJ9XSxbInBhdGgiLHtkOiJNMTggNnYxMiJ9XSxbInBhdGgiLHtkOiJNNiA2djEyIn1dLFsicmVjdCIse3g6IjIiLHk6IjYiLHdpZHRoOiIyMCIsaGVpZ2h0OiIxMiIscng6IjIifV1dLGFPdD1bWyJwYXRoIix7ZDoiTTEyIDE4SDRhMiAyIDAgMCAxLTItMlY4YTIgMiAwIDAgMSAyLTJoMTZhMiAyIDAgMCAxIDIgMnY1In1dLFsicGF0aCIse2Q6Im0xNiAxOSAzIDMgMy0zIn1dLFsicGF0aCIse2Q6Ik0xOCAxMmguMDEifV0sWyJwYXRoIix7ZDoiTTE5IDE2djYifV0sWyJwYXRoIix7ZDoiTTYgMTJoLjAxIn1dLFsiY2lyY2xlIix7Y3g6IjEyIixjeToiMTIiLHI6IjIifV1dLG5PdD1bWyJwYXRoIix7ZDoiTTEyIDE4SDRhMiAyIDAgMCAxLTItMlY4YTIgMiAwIDAgMSAyLTJoMTZhMiAyIDAgMCAxIDIgMnY1In1dLFsicGF0aCIse2Q6Ik0xOCAxMmguMDEifV0sWyJwYXRoIix7ZDoiTTE5IDIydi02In1dLFsicGF0aCIse2Q6Im0yMiAxOS0zLTMtMyAzIn1dLFsicGF0aCIse2Q6Ik02IDEyaC4wMSJ9XSxbImNpcmNsZSIse2N4OiIxMiIsY3k6IjEyIixyOiIyIn1dXSxvT3Q9W1sicGF0aCIse2Q6Ik0xMyAxOEg0YTIgMiAwIDAgMS0yLTJWOGEyIDIgMCAwIDEgMi0yaDE2YTIgMiAwIDAgMSAyIDJ2NSJ9XSxbInBhdGgiLHtkOiJtMTcgMTcgNSA1In1dLFsicGF0aCIse2Q6Ik0xOCAxMmguMDEifV0sWyJwYXRoIix7ZDoibTIyIDE3LTUgNSJ9XSxbInBhdGgiLHtkOiJNNiAxMmguMDEifV0sWyJjaXJjbGUiLHtjeDoiMTIiLGN5OiIxMiIscjoiMiJ9XV0sc090PVtbInJlY3QiLHt3aWR0aDoiMjAiLGhlaWdodDoiMTIiLHg6IjIiLHk6IjYiLHJ4OiIyIn1dLFsiY2lyY2xlIix7Y3g6IjEyIixjeToiMTIiLHI6IjIifV0sWyJwYXRoIix7ZDoiTTYgMTJoLjAxTTE4IDEyaC4wMSJ9XV0sbE90PVtbInBhdGgiLHtkOiJNMyA1djE0In1dLFsicGF0aCIse2Q6Ik04IDV2MTQifV0sWyJwYXRoIix7ZDoiTTEyIDV2MTQifV0sWyJwYXRoIix7ZDoiTTE3IDV2MTQifV0sWyJwYXRoIix7ZDoiTTIxIDV2MTQifV1dLGNPdD1bWyJwYXRoIix7ZDoiTTEwIDNhNDEgNDEgMCAwIDAgMCAxOCJ9XSxbInBhdGgiLHtkOiJNMTQgM2E0MSA0MSAwIDAgMSAwIDE4In1dLFsicGF0aCIse2Q6Ik0xNyAzYTIgMiAwIDAgMSAxLjY4LjkyIDE1LjI1IDE1LjI1IDAgMCAxIDAgMTYuMTZBMiAyIDAgMCAxIDE3IDIxSDdhMiAyIDAgMCAxLTEuNjgtLjkyIDE1LjI1IDE1LjI1IDAgMCAxIDAtMTYuMTZBMiAyIDAgMCAxIDcgM3oifV0sWyJwYXRoIix7ZDoiTTMuODQgMTdoMTYuMzIifV0sWyJwYXRoIix7ZDoiTTMuODQgN2gxNi4zMiJ9XV0sZE90PVtbInBhdGgiLHtkOiJNNCAyMGgxNiJ9XSxbInBhdGgiLHtkOiJtNiAxNiA2LTEyIDYgMTIifV0sWyJwYXRoIix7ZDoiTTggMTJoOCJ9XV0sdU90PVtbInBhdGgiLHtkOiJNMTAgNCA4IDYifV0sWyJwYXRoIix7ZDoiTTE3IDE5djIifV0sWyJwYXRoIix7ZDoiTTIgMTJoMjAifV0sWyJwYXRoIix7ZDoiTTcgMTl2MiJ9XSxbInBhdGgiLHtkOiJNOSA1IDcuNjIxIDMuNjIxQTIuMTIxIDIuMTIxIDAgMCAwIDQgNXYxMmEyIDIgMCAwIDAgMiAyaDEyYTIgMiAwIDAgMCAyLTJ2LTUifV1dLHBPdD1bWyJwYXRoIix7ZDoibTExIDctMyA1aDRsLTMgNSJ9XSxbInBhdGgiLHtkOiJNMTQuODU2IDZIMTZhMiAyIDAgMCAxIDIgMnY4YTIgMiAwIDAgMS0yIDJoLTIuOTM1In1dLFsicGF0aCIse2Q6Ik0yMiAxNHYtNCJ9XSxbInBhdGgiLHtkOiJNNS4xNCAxOEg0YTIgMiAwIDAgMS0yLTJWOGEyIDIgMCAwIDEgMi0yaDIuOTM2In1dXSxoT3Q9W1sicGF0aCIse2Q6Ik0xMCAxMHY0In1dLFsicGF0aCIse2Q6Ik0xNCAxMHY0In1dLFsicGF0aCIse2Q6Ik0yMiAxNHYtNCJ9XSxbInBhdGgiLHtkOiJNNiAxMHY0In1dLFsicmVjdCIse3g6IjIiLHk6IjYiLHdpZHRoOiIxNiIsaGVpZ2h0OiIxMiIscng6IjIifV1dLGZPdD1bWyJwYXRoIix7ZDoiTTIyIDE0di00In1dLFsicGF0aCIse2Q6Ik02IDE0di00In1dLFsicmVjdCIse3g6IjIiLHk6IjYiLHdpZHRoOiIxNiIsaGVpZ2h0OiIxMiIscng6IjIifV1dLG1PdD1bWyJwYXRoIix7ZDoiTTEwIDE0di00In1dLFsicGF0aCIse2Q6Ik0yMiAxNHYtNCJ9XSxbInBhdGgiLHtkOiJNNiAxNHYtNCJ9XSxbInJlY3QiLHt4OiIyIix5OiI2Iix3aWR0aDoiMTYiLGhlaWdodDoiMTIiLHJ4OiIyIn1dXSxnT3Q9W1sicGF0aCIse2Q6Ik0xMCA5djYifV0sWyJwYXRoIix7ZDoiTTEyLjU0MyA2SDE2YTIgMiAwIDAgMSAyIDJ2OGEyIDIgMCAwIDEtMiAyaC0zLjYwNSJ9XSxbInBhdGgiLHtkOiJNMjIgMTR2LTQifV0sWyJwYXRoIix7ZDoiTTcgMTJoNiJ9XSxbInBhdGgiLHtkOiJNNy42MDYgMThINGEyIDIgMCAwIDEtMi0yVjhhMiAyIDAgMCAxIDItMmgzLjYwNiJ9XV0sYk90PVtbInBhdGgiLHtkOiJNMTAgMTdoLjAxIn1dLFsicGF0aCIse2Q6Ik0xMCA3djYifV0sWyJwYXRoIix7ZDoiTTE0IDZoMmEyIDIgMCAwIDEgMiAydjhhMiAyIDAgMCAxLTIgMmgtMiJ9XSxbInBhdGgiLHtkOiJNMjIgMTR2LTQifV0sWyJwYXRoIix7ZDoiTTYgMThINGEyIDIgMCAwIDEtMi0yVjhhMiAyIDAgMCAxIDItMmgyIn1dXSx2T3Q9W1sicGF0aCIse2Q6Ik0gMjIgMTQgTCAyMiAxMCJ9XSxbInJlY3QiLHt4OiIyIix5OiI2Iix3aWR0aDoiMTYiLGhlaWdodDoiMTIiLHJ4OiIyIn1dXSx4T3Q9W1sicGF0aCIse2Q6Ik00LjUgM2gxNSJ9XSxbInBhdGgiLHtkOiJNNiAzdjE2YTIgMiAwIDAgMCAyIDJoOGEyIDIgMCAwIDAgMi0yVjMifV0sWyJwYXRoIix7ZDoiTTYgMTRoMTIifV1dLHlPdD1bWyJwYXRoIix7ZDoiTTkgOWMtLjY0LjY0LTEuNTIxLjk1NC0yLjQwMiAxLjE2NUE2IDYgMCAwIDAgOCAyMmExMy45NiAxMy45NiAwIDAgMCA5LjktNC4xIn1dLFsicGF0aCIse2Q6Ik0xMC43NSA1LjA5M0E2IDYgMCAwIDEgMjIgOGMwIDIuNDExLS42MSA0LjY4LTEuNjgzIDYuNjYifV0sWyJwYXRoIix7ZDoiTTUuMzQxIDEwLjYyYTQgNCAwIDAgMCA2LjQ4NyAxLjIwOE0xMC42MiA1LjM0MWE0LjAxNSA0LjAxNSAwIDAgMSAyLjAzOSAyLjA0In1dLFsibGluZSIse3gxOiIyIix4MjoiMjIiLHkxOiIyIix5MjoiMjIifV1dLHdPdD1bWyJwYXRoIix7ZDoiTTEwLjE2NSA2LjU5OEM5Ljk1NCA3LjQ3OCA5LjY0IDguMzYgOSA5Yy0uNjQuNjQtMS41MjEuOTU0LTIuNDAyIDEuMTY1QTYgNiAwIDAgMCA4IDIyYzcuNzMyIDAgMTQtNi4yNjggMTQtMTRhNiA2IDAgMCAwLTExLjgzNS0xLjQwMloifV0sWyJwYXRoIix7ZDoiTTUuMzQxIDEwLjYyYTQgNCAwIDEgMCA1LjI3OS01LjI4In1dXSxNT3Q9W1sicGF0aCIse2Q6Ik0yIDIwdi04YTIgMiAwIDAgMSAyLTJoMTZhMiAyIDAgMCAxIDIgMnY4In1dLFsicGF0aCIse2Q6Ik00IDEwVjZhMiAyIDAgMCAxIDItMmgxMmEyIDIgMCAwIDEgMiAydjQifV0sWyJwYXRoIix7ZDoiTTEyIDR2NiJ9XSxbInBhdGgiLHtkOiJNMiAxOGgyMCJ9XV0sa090PVtbInBhdGgiLHtkOiJNMyAyMHYtOGEyIDIgMCAwIDEgMi0yaDE0YTIgMiAwIDAgMSAyIDJ2OCJ9XSxbInBhdGgiLHtkOiJNNSAxMFY2YTIgMiAwIDAgMSAyLTJoMTBhMiAyIDAgMCAxIDIgMnY0In1dLFsicGF0aCIse2Q6Ik0zIDE4aDE4In1dXSxTT3Q9W1sicGF0aCIse2Q6Ik0yIDR2MTYifV0sWyJwYXRoIix7ZDoiTTIgOGgxOGEyIDIgMCAwIDEgMiAydjEwIn1dLFsicGF0aCIse2Q6Ik0yIDE3aDIwIn1dLFsicGF0aCIse2Q6Ik02IDh2OSJ9XV0sek90PVtbInBhdGgiLHtkOiJNMTYuNCAxMy43QTYuNSA2LjUgMCAxIDAgNi4yOCA2LjZjLTEuMSAzLjEzLS43OCAzLjktMy4xOCA2LjA4QTMgMyAwIDAgMCA1IDE4YzQgMCA4LjQtMS44IDExLjQtNC4zIn1dLFsicGF0aCIse2Q6Im0xOC41IDYgMi4xOSA0LjVhNi40OCA2LjQ4IDAgMCAxLTIuMjkgNy4yQzE1LjQgMjAuMiAxMSAyMiA3IDIyYTMgMyAwIDAgMS0yLjY4LTEuNjZMMi40IDE2LjUifV0sWyJjaXJjbGUiLHtjeDoiMTIuNSIsY3k6IjguNSIscjoiMi41In1dXSxDT3Q9W1sicGF0aCIse2Q6Ik0xMyAxM3Y1In1dLFsicGF0aCIse2Q6Ik0xNyAxMS40N1Y4In1dLFsicGF0aCIse2Q6Ik0xNyAxMWgxYTMgMyAwIDAgMSAyLjc0NSA0LjIxMSJ9XSxbInBhdGgiLHtkOiJtMiAyIDIwIDIwIn1dLFsicGF0aCIse2Q6Ik01IDh2MTJhMiAyIDAgMCAwIDIgMmg4YTIgMiAwIDAgMCAyLTJ2LTMifV0sWyJwYXRoIix7ZDoiTTcuNTM2IDcuNTM1QzYuNzY2IDcuNjQ5IDYuMTU0IDggNS41IDhhMi41IDIuNSAwIDAgMS0xLjc2OC00LjI2OCJ9XSxbInBhdGgiLHtkOiJNOC43MjcgMy4yMDRDOS4zMDYgMi43NjcgOS44ODUgMiAxMSAyYzEuNTYgMCAyIDEuNSAzIDEuNXMxLjcyLS41IDIuNS0uNWExIDEgMCAxIDEgMCA1Yy0uNzggMC0xLjUtLjUtMi41LS41YTMuMTQ5IDMuMTQ5IDAgMCAwLS44NDIuMTIifV0sWyJwYXRoIix7ZDoiTTkgMTQuNlYxOCJ9XV0sVE90PVtbInBhdGgiLHtkOiJNMTcgMTFoMWEzIDMgMCAwIDEgMCA2aC0xIn1dLFsicGF0aCIse2Q6Ik05IDEydjYifV0sWyJwYXRoIix7ZDoiTTEzIDEydjYifV0sWyJwYXRoIix7ZDoiTTE0IDcuNWMtMSAwLTEuNDQuNS0zIC41cy0yLS41LTMtLjUtMS43Mi41LTIuNS41YTIuNSAyLjUgMCAwIDEgMC01Yy43OCAwIDEuNTcuNSAyLjUuNVM5LjQ0IDIgMTEgMnMyIDEuNSAzIDEuNSAxLjcyLS41IDIuNS0uNWEyLjUgMi41IDAgMCAxIDAgNWMtLjc4IDAtMS41LS41LTIuNS0uNVoifV0sWyJwYXRoIix7ZDoiTTUgOHYxMmEyIDIgMCAwIDAgMiAyaDhhMiAyIDAgMCAwIDItMlY4In1dXSxfT3Q9W1sicGF0aCIse2Q6Ik0xMC4yNjggMjFhMiAyIDAgMCAwIDMuNDY0IDAifV0sWyJwYXRoIix7ZDoiTTExLjY4IDIuMDA5QTYgNiAwIDAgMCA2IDhjMCA0LjQ5OS0xLjQxMSA1Ljk1Ni0yLjczOCA3LjMyNkExIDEgMCAwIDAgNCAxN2gxNmExIDEgMCAwIDAgLjc0LTEuNjczYy0uODI0LS44NS0xLjY3OC0xLjczMS0yLjIxLTMuMzQ4In1dLFsiY2lyY2xlIix7Y3g6IjE4IixjeToiNSIscjoiMyJ9XV0sTE90PVtbInBhdGgiLHtkOiJNMTguNTE4IDE3LjM0N0E3IDcgMCAwIDEgMTQgMTkifV0sWyJwYXRoIix7ZDoiTTE4LjggNEExMSAxMSAwIDAgMSAyMCA5In1dLFsicGF0aCIse2Q6Ik05IDloLjAxIn1dLFsiY2lyY2xlIix7Y3g6IjIwIixjeToiMTYiLHI6IjIifV0sWyJjaXJjbGUiLHtjeDoiOSIsY3k6IjkiLHI6IjcifV0sWyJyZWN0Iix7eDoiNCIseToiMTYiLHdpZHRoOiIxMCIsaGVpZ2h0OiI2IixyeDoiMiJ9XV0sQU90PVtbInBhdGgiLHtkOiJNMTAuMjY4IDIxYTIgMiAwIDAgMCAzLjQ2NCAwIn1dLFsicGF0aCIse2Q6Ik0xNSA4aDYifV0sWyJwYXRoIix7ZDoiTTE2LjI0MyAzLjc1N0E2IDYgMCAwIDAgNiA4YzAgNC40OTktMS40MTEgNS45NTYtMi43MzggNy4zMjZBMSAxIDAgMCAwIDQgMTdoMTZhMSAxIDAgMCAwIC43NC0xLjY3M0E5LjQgOS40IDAgMCAxIDE4LjY2NyAxMiJ9XV0sRE90PVtbInBhdGgiLHtkOiJNMTAuMjY4IDIxYTIgMiAwIDAgMCAzLjQ2NCAwIn1dLFsicGF0aCIse2Q6Ik0xNyAxN0g0YTEgMSAwIDAgMS0uNzQtMS42NzNDNC41OSAxMy45NTYgNiAxMi40OTkgNiA4YTYgNiAwIDAgMSAuMjU4LTEuNzQyIn1dLFsicGF0aCIse2Q6Im0yIDIgMjAgMjAifV0sWyJwYXRoIix7ZDoiTTguNjY4IDMuMDFBNiA2IDAgMCAxIDE4IDhjMCAyLjY4Ny43NyA0LjY1MyAxLjcwNyA2LjA1In1dXSxFT3Q9W1sicGF0aCIse2Q6Ik0xMC4yNjggMjFhMiAyIDAgMCAwIDMuNDY0IDAifV0sWyJwYXRoIix7ZDoiTTE1IDhoNiJ9XSxbInBhdGgiLHtkOiJNMTggNXY2In1dLFsicGF0aCIse2Q6Ik0yMC4wMDIgMTQuNDY0YTkgOSAwIDAgMCAuNzM4Ljg2M0ExIDEgMCAwIDEgMjAgMTdINGExIDEgMCAwIDEtLjc0LTEuNjczQzQuNTkgMTMuOTU2IDYgMTIuNDk5IDYgOGE2IDYgMCAwIDEgOC43NS01LjMzMiJ9XV0sJE90PVtbInBhdGgiLHtkOiJNMTAuMjY4IDIxYTIgMiAwIDAgMCAzLjQ2NCAwIn1dLFsicGF0aCIse2Q6Ik0yMiA4YzAtMi4zLS44LTQuMy0yLTYifV0sWyJwYXRoIix7ZDoiTTMuMjYyIDE1LjMyNkExIDEgMCAwIDAgNCAxN2gxNmExIDEgMCAwIDAgLjc0LTEuNjczQzE5LjQxIDEzLjk1NiAxOCAxMi40OTkgMTggOEE2IDYgMCAwIDAgNiA4YzAgNC40OTktMS40MTEgNS45NTYtMi43MzggNy4zMjYifV0sWyJwYXRoIix7ZDoiTTQgMkMyLjggMy43IDIgNS43IDIgOCJ9XV0sSU90PVtbInBhdGgiLHtkOiJNMTAuMjY4IDIxYTIgMiAwIDAgMCAzLjQ2NCAwIn1dLFsicGF0aCIse2Q6Ik0zLjI2MiAxNS4zMjZBMSAxIDAgMCAwIDQgMTdoMTZhMSAxIDAgMCAwIC43NC0xLjY3M0MxOS40MSAxMy45NTYgMTggMTIuNDk5IDE4IDhBNiA2IDAgMCAwIDYgOGMwIDQuNDk5LTEuNDExIDUuOTU2LTIuNzM4IDcuMzI2In1dXSxDRT1bWyJyZWN0Iix7d2lkdGg6IjEzIixoZWlnaHQ6IjciLHg6IjMiLHk6IjMiLHJ4OiIxIn1dLFsicGF0aCIse2Q6Im0yMiAxNS0zLTMgMy0zIn1dLFsicmVjdCIse3dpZHRoOiIxMyIsaGVpZ2h0OiI3Iix4OiIzIix5OiIxNCIscng6IjEifV1dLFRFPVtbInJlY3QiLHt3aWR0aDoiMTMiLGhlaWdodDoiNyIseDoiOCIseToiMyIscng6IjEifV0sWyJwYXRoIix7ZDoibTIgOSAzIDMtMyAzIn1dLFsicmVjdCIse3dpZHRoOiIxMyIsaGVpZ2h0OiI3Iix4OiI4Iix5OiIxNCIscng6IjEifV1dLFBPdD1bWyJyZWN0Iix7d2lkdGg6IjciLGhlaWdodDoiMTMiLHg6IjMiLHk6IjMiLHJ4OiIxIn1dLFsicGF0aCIse2Q6Im05IDIyIDMtMyAzIDMifV0sWyJyZWN0Iix7d2lkdGg6IjciLGhlaWdodDoiMTMiLHg6IjE0Iix5OiIzIixyeDoiMSJ9XV0sTk90PVtbInJlY3QiLHt3aWR0aDoiNyIsaGVpZ2h0OiIxMyIseDoiMyIseToiOCIscng6IjEifV0sWyJwYXRoIix7ZDoibTE1IDItMyAzLTMtMyJ9XSxbInJlY3QiLHt3aWR0aDoiNyIsaGVpZ2h0OiIxMyIseDoiMTQiLHk6IjgiLHJ4OiIxIn1dXSxGT3Q9W1sicGF0aCIse2Q6Ik0xMi40MDkgMTMuMDE3QTUgNSAwIDAgMSAyMiAxNWMwIDMuODY2LTQgNy05IDctNC4wNzcgMC04LjE1My0uODItMTAuMzcxLTIuNDYyLS40MjYtLjMxNi0uNjMxLS44MzItLjYyLTEuMzYyQzIuMTE4IDEyLjcyMyAyLjYyNyAyIDEwIDJhMyAzIDAgMCAxIDMgMyAyIDIgMCAwIDEtMiAyYy0xLjEwNSAwLTEuNjQtLjQ0NC0yLTEifV0sWyJwYXRoIix7ZDoiTTE1IDE0YTUgNSAwIDAgMC03LjU4NCAyIn1dLFsicGF0aCIse2Q6Ik05Ljk2NCA2LjgyNUM4LjAxOSA3Ljk3NyA5LjUgMTMgOCAxNSJ9XV0sT090PVtbImNpcmNsZSIse2N4OiIxOC41IixjeToiMTcuNSIscjoiMy41In1dLFsiY2lyY2xlIix7Y3g6IjUuNSIsY3k6IjE3LjUiLHI6IjMuNSJ9XSxbImNpcmNsZSIse2N4OiIxNSIsY3k6IjUiLHI6IjEifV0sWyJwYXRoIix7ZDoiTTEyIDE3LjVWMTRsLTMtMyA0LTMgMiAzaDIifV1dLFJPdD1bWyJyZWN0Iix7eDoiMTQiLHk6IjE0Iix3aWR0aDoiNCIsaGVpZ2h0OiI2IixyeDoiMiJ9XSxbInJlY3QiLHt4OiI2Iix5OiI0Iix3aWR0aDoiNCIsaGVpZ2h0OiI2IixyeDoiMiJ9XSxbInBhdGgiLHtkOiJNNiAyMGg0In1dLFsicGF0aCIse2Q6Ik0xNCAxMGg0In1dLFsicGF0aCIse2Q6Ik02IDE0aDJ2NiJ9XSxbInBhdGgiLHtkOiJNMTQgNGgydjYifV1dLEJPdD1bWyJwYXRoIix7ZDoiTTEwIDEwaDQifV0sWyJwYXRoIix7ZDoiTTE5IDdWNGExIDEgMCAwIDAtMS0xaC0yYTEgMSAwIDAgMC0xIDF2MyJ9XSxbInBhdGgiLHtkOiJNMjAgMjFhMiAyIDAgMCAwIDItMnYtMy44NTFjMC0xLjM5LTItMi45NjItMi00LjgyOVY4YTEgMSAwIDAgMC0xLTFoLTRhMSAxIDAgMCAwLTEgMXYxMWEyIDIgMCAwIDAgMiAyeiJ9XSxbInBhdGgiLHtkOiJNIDIyIDE2IEwgMiAxNiJ9XSxbInBhdGgiLHtkOiJNNCAyMWEyIDIgMCAwIDEtMi0ydi0zLjg1MWMwLTEuMzkgMi0yLjk2MiAyLTQuODI5VjhhMSAxIDAgMCAxIDEtMWg0YTEgMSAwIDAgMSAxIDF2MTFhMiAyIDAgMCAxLTIgMnoifV0sWyJwYXRoIix7ZDoiTTkgN1Y0YTEgMSAwIDAgMC0xLTFINmExIDEgMCAwIDAtMSAxdjMifV1dLEhPdD1bWyJjaXJjbGUiLHtjeDoiMTIiLGN5OiIxMS45IixyOiIyIn1dLFsicGF0aCIse2Q6Ik02LjcgMy40Yy0uOSAyLjUgMCA1LjIgMi4yIDYuN0M2LjUgOSAzLjcgOS42IDIgMTEuNiJ9XSxbInBhdGgiLHtkOiJtOC45IDEwLjEgMS40LjgifV0sWyJwYXRoIix7ZDoiTTE3LjMgMy40Yy45IDIuNSAwIDUuMi0yLjIgNi43IDIuNC0xLjIgNS4yLS42IDYuOSAxLjUifV0sWyJwYXRoIix7ZDoibTE1LjEgMTAuMS0xLjQuOCJ9XSxbInBhdGgiLHtkOiJNMTYuNyAyMC44Yy0yLjYtLjQtNC42LTIuNi00LjctNS4zLS4yIDIuNi0yLjEgNC44LTQuNyA1LjIifV0sWyJwYXRoIix7ZDoiTTEyIDEzLjl2MS42In1dLFsicGF0aCIse2Q6Ik0xMy41IDUuNGMtMS0uMi0yLS4yLTMgMCJ9XSxbInBhdGgiLHtkOiJNMTcgMTYuNGMuNy0uNyAxLjItMS42IDEuNS0yLjUifV0sWyJwYXRoIix7ZDoiTTUuNSAxMy45Yy4zLjkuOCAxLjggMS41IDIuNSJ9XV0scU90PVtbInBhdGgiLHtkOiJNMTYgN2guMDEifV0sWyJwYXRoIix7ZDoiTTMuNCAxOEgxMmE4IDggMCAwIDAgOC04VjdhNCA0IDAgMCAwLTcuMjgtMi4zTDIgMjAifV0sWyJwYXRoIix7ZDoibTIwIDcgMiAuNS0yIC41In1dLFsicGF0aCIse2Q6Ik0xMCAxOHYzIn1dLFsicGF0aCIse2Q6Ik0xNCAxNy43NVYyMSJ9XSxbInBhdGgiLHtkOiJNNyAxOGE2IDYgMCAwIDAgMy44NC0xMC42MSJ9XV0sak90PVtbInBhdGgiLHtkOiJNMTIgMTh2NCJ9XSxbInBhdGgiLHtkOiJtMTcgMTggMS45NTYtMTEuNDY4In1dLFsicGF0aCIse2Q6Im0zIDggNy44Mi01LjYxNWEyIDIgMCAwIDEgMi4zNiAwTDIxIDgifV0sWyJwYXRoIix7ZDoiTTQgMThoMTYifV0sWyJwYXRoIix7ZDoiTTcgMTggNS4wNDQgNi41MzIifV0sWyJjaXJjbGUiLHtjeDoiMTIiLGN5OiIxMCIscjoiMiJ9XV0sVk90PVtbInBhdGgiLHtkOiJNMTEuNzY3IDE5LjA4OWM0LjkyNC44NjggNi4xNC02LjAyNSAxLjIxNi02Ljg5NG0tMS4yMTYgNi44OTRMNS44NiAxOC4wNDdtNS45MDggMS4wNDItLjM0NyAxLjk3bTEuNTYzLTguODY0YzQuOTI0Ljg2OSA2LjE0LTYuMDI1IDEuMjE1LTYuODkzbS0xLjIxNSA2Ljg5My0zLjk0LS42OTRtNS4xNTUtNi4yTDguMjkgNC4yNm01LjkwOCAxLjA0Mi4zNDgtMS45N003LjQ4IDIwLjM2NGwzLjEyNi0xNy43MjcifV1dLFVPdD1bWyJjaXJjbGUiLHtjeDoiOSIsY3k6IjkiLHI6IjcifV0sWyJjaXJjbGUiLHtjeDoiMTUiLGN5OiIxNSIscjoiNyJ9XV0sV090PVtbInBhdGgiLHtkOiJNMyAzaDE4In1dLFsicGF0aCIse2Q6Ik0yMCA3SDgifV0sWyJwYXRoIix7ZDoiTTIwIDExSDgifV0sWyJwYXRoIix7ZDoiTTEwIDE5aDEwIn1dLFsicGF0aCIse2Q6Ik04IDE1aDEyIn1dLFsicGF0aCIse2Q6Ik00IDN2MTQifV0sWyJjaXJjbGUiLHtjeDoiNCIsY3k6IjE5IixyOiIyIn1dXSxHT3Q9W1sicGF0aCIse2Q6Im03IDcgMTAgMTAtNSA1VjJsNSA1TDcgMTcifV0sWyJsaW5lIix7eDE6IjE4Iix4MjoiMjEiLHkxOiIxMiIseTI6IjEyIn1dLFsibGluZSIse3gxOiIzIix4MjoiNiIseTE6IjEyIix5MjoiMTIifV1dLFlPdD1bWyJwYXRoIix7ZDoiTTEwIDIyVjdhMSAxIDAgMCAwLTEtMUg0YTIgMiAwIDAgMC0yIDJ2MTJhMiAyIDAgMCAwIDIgMmgxMmEyIDIgMCAwIDAgMi0ydi01YTEgMSAwIDAgMC0xLTFIMiJ9XSxbInJlY3QiLHt4OiIxNCIseToiMiIsd2lkdGg6IjgiLGhlaWdodDoiOCIscng6IjEifV1dLFpPdD1bWyJwYXRoIix7ZDoibTE3IDE3LTUgNVYxMmwtNSA1In1dLFsicGF0aCIse2Q6Im0yIDIgMjAgMjAifV0sWyJwYXRoIix7ZDoiTTE0LjUgOS41IDE3IDdsLTUtNXY0LjUifV1dLFhPdD1bWyJwYXRoIix7ZDoibTcgNyAxMCAxMC01IDVWMmw1IDVMNyAxNyJ9XSxbInBhdGgiLHtkOiJNMjAuODMgMTQuODNhNCA0IDAgMCAwIDAtNS42NiJ9XSxbInBhdGgiLHtkOiJNMTggMTJoLjAxIn1dXSxRT3Q9W1sicGF0aCIse2Q6Ik02IDEyaDlhNCA0IDAgMCAxIDAgOEg3YTEgMSAwIDAgMS0xLTFWNWExIDEgMCAwIDEgMS0xaDdhNCA0IDAgMCAxIDAgOCJ9XV0sSk90PVtbInBhdGgiLHtkOiJtNyA3IDEwIDEwLTUgNVYybDUgNUw3IDE3In1dXSxLT3Q9W1siY2lyY2xlIix7Y3g6IjExIixjeToiMTMiLHI6IjkifV0sWyJwYXRoIix7ZDoiTTE0LjM1IDQuNjUgMTYuMyAyLjdhMi40MSAyLjQxIDAgMCAxIDMuNCAwbDEuNiAxLjZhMi40IDIuNCAwIDAgMSAwIDMuNGwtMS45NSAxLjk1In1dLFsicGF0aCIse2Q6Im0yMiAyLTEuNSAxLjUifV1dLGVSdD1bWyJwYXRoIix7ZDoiTTIxIDE2VjhhMiAyIDAgMCAwLTEtMS43M2wtNy00YTIgMiAwIDAgMC0yIDBsLTcgNEEyIDIgMCAwIDAgMyA4djhhMiAyIDAgMCAwIDEgMS43M2w3IDRhMiAyIDAgMCAwIDIgMGw3LTRBMiAyIDAgMCAwIDIxIDE2eiJ9XSxbImNpcmNsZSIse2N4OiIxMiIsY3k6IjEyIixyOiI0In1dXSx0UnQ9W1sicGF0aCIse2Q6Ik0xNyAxMGMuNy0uNyAxLjY5IDAgMi41IDBhMi41IDIuNSAwIDEgMCAwLTUgLjUuNSAwIDAgMS0uNS0uNSAyLjUgMi41IDAgMSAwLTUgMGMwIC44MS43IDEuOCAwIDIuNWwtNyA3Yy0uNy43LTEuNjkgMC0yLjUgMGEyLjUgMi41IDAgMCAwIDAgNWMuMjggMCAuNS4yMi41LjVhMi41IDIuNSAwIDEgMCA1IDBjMC0uODEtLjctMS44IDAtMi41WiJ9XV0sclJ0PVtbInBhdGgiLHtkOiJNNCAxOS41di0xNUEyLjUgMi41IDAgMCAxIDYuNSAySDE5YTEgMSAwIDAgMSAxIDF2MThhMSAxIDAgMCAxLTEgMUg2LjVhMSAxIDAgMCAxIDAtNUgyMCJ9XSxbInBhdGgiLHtkOiJtOCAxMyA0LTcgNCA3In1dLFsicGF0aCIse2Q6Ik05LjEgMTFoNS43In1dXSxpUnQ9W1sicGF0aCIse2Q6Ik0xMiAxM2guMDEifV0sWyJwYXRoIix7ZDoiTTEyIDZ2MyJ9XSxbInBhdGgiLHtkOiJNNCAxOS41di0xNUEyLjUgMi41IDAgMCAxIDYuNSAySDE5YTEgMSAwIDAgMSAxIDF2MThhMSAxIDAgMCAxLTEgMUg2LjVhMSAxIDAgMCAxIDAtNUgyMCJ9XV0sYVJ0PVtbInBhdGgiLHtkOiJNNCAxOS41di0xNUEyLjUgMi41IDAgMCAxIDYuNSAySDE5YTEgMSAwIDAgMSAxIDF2MThhMSAxIDAgMCAxLTEgMUg2LjVhMSAxIDAgMCAxIDAtNUgyMCJ9XSxbInBhdGgiLHtkOiJtOSA5LjUgMiAyIDQtNCJ9XV0sblJ0PVtbInBhdGgiLHtkOiJNMTIgNnY3In1dLFsicGF0aCIse2Q6Ik0xNiA4djMifV0sWyJwYXRoIix7ZDoiTTQgMTkuNXYtMTVBMi41IDIuNSAwIDAgMSA2LjUgMkgxOWExIDEgMCAwIDEgMSAxdjE4YTEgMSAwIDAgMS0xIDFINi41YTEgMSAwIDAgMSAwLTVIMjAifV0sWyJwYXRoIix7ZDoiTTggOHYzIn1dXSxvUnQ9W1sicGF0aCIse2Q6Ik01IDdhMiAyIDAgMCAwLTIgMnYxMSJ9XSxbInBhdGgiLHtkOiJNNS44MDMgMThINWEyIDIgMCAwIDAgMCA0aDkuNWEuNS41IDAgMCAwIC41LS41VjIxIn1dLFsicGF0aCIse2Q6Ik05IDE1VjRhMiAyIDAgMCAxIDItMmg5LjVhLjUuNSAwIDAgMSAuNS41djE0YS41LjUgMCAwIDEtLjUuNUgxMWEyIDIgMCAwIDEgMC00aDEwIn1dXSxfRT1bWyJwYXRoIix7ZDoiTTEyIDE3aDEuNSJ9XSxbInBhdGgiLHtkOiJNMTIgMjJoMS41In1dLFsicGF0aCIse2Q6Ik0xMiAyaDEuNSJ9XSxbInBhdGgiLHtkOiJNMTcuNSAyMkgxOWExIDEgMCAwIDAgMS0xIn1dLFsicGF0aCIse2Q6Ik0xNy41IDJIMTlhMSAxIDAgMCAxIDEgMXYxLjUifV0sWyJwYXRoIix7ZDoiTTIwIDE0djNoLTIuNSJ9XSxbInBhdGgiLHtkOiJNMjAgOC41VjEwIn1dLFsicGF0aCIse2Q6Ik00IDEwVjguNSJ9XSxbInBhdGgiLHtkOiJNNCAxOS41VjE0In1dLFsicGF0aCIse2Q6Ik00IDQuNUEyLjUgMi41IDAgMCAxIDYuNSAySDgifV0sWyJwYXRoIix7ZDoiTTggMjJINi41YTEgMSAwIDAgMSAwLTVIOCJ9XV0sc1J0PVtbInBhdGgiLHtkOiJNMTIgMTNWNyJ9XSxbInBhdGgiLHtkOiJNNCAxOS41di0xNUEyLjUgMi41IDAgMCAxIDYuNSAySDE5YTEgMSAwIDAgMSAxIDF2MThhMSAxIDAgMCAxLTEgMUg2LjVhMSAxIDAgMCAxIDAtNUgyMCJ9XSxbInBhdGgiLHtkOiJtOSAxMCAzIDMgMy0zIn1dXSxsUnQ9W1sicGF0aCIse2Q6Ik00IDE5LjV2LTE1QTIuNSAyLjUgMCAwIDEgNi41IDJIMTlhMSAxIDAgMCAxIDEgMXYxOGExIDEgMCAwIDEtMSAxSDYuNWExIDEgMCAwIDEgMC01SDIwIn1dLFsicGF0aCIse2Q6Ik04IDEydi0yYTQgNCAwIDAgMSA4IDB2MiJ9XSxbImNpcmNsZSIse2N4OiIxNSIsY3k6IjEyIixyOiIxIn1dLFsiY2lyY2xlIix7Y3g6IjkiLGN5OiIxMiIscjoiMSJ9XV0sY1J0PVtbInBhdGgiLHtkOiJNNCAxOS41di0xNUEyLjUgMi41IDAgMCAxIDYuNSAySDE5YTEgMSAwIDAgMSAxIDF2MThhMSAxIDAgMCAxLTEgMUg2LjVhMSAxIDAgMCAxIDAtNUgyMCJ9XSxbInBhdGgiLHtkOiJNOC42MiA5LjhBMi4yNSAyLjI1IDAgMSAxIDEyIDYuODM2YTIuMjUgMi4yNSAwIDEgMSAzLjM4IDIuOTY2bC0yLjYyNiAyLjg1NmEuOTk4Ljk5OCAwIDAgMS0xLjUwNyAweiJ9XV0sZFJ0PVtbInBhdGgiLHtkOiJtMjAgMTMuNy0yLjEtMi4xYTIgMiAwIDAgMC0yLjggMEw5LjcgMTcifV0sWyJwYXRoIix7ZDoiTTQgMTkuNXYtMTVBMi41IDIuNSAwIDAgMSA2LjUgMkgxOWExIDEgMCAwIDEgMSAxdjE4YTEgMSAwIDAgMS0xIDFINi41YTEgMSAwIDAgMSAwLTVIMjAifV0sWyJjaXJjbGUiLHtjeDoiMTAiLGN5OiI4IixyOiIyIn1dXSx1UnQ9W1sicGF0aCIse2Q6Ik0xMyAySDYuNUEyLjUgMi41IDAgMCAwIDQgNC41djE1In1dLFsicGF0aCIse2Q6Ik0xNyAydjYifV0sWyJwYXRoIix7ZDoiTTE3IDRoMiJ9XSxbInBhdGgiLHtkOiJNMjAgMTUuMlYyMWExIDEgMCAwIDEtMSAxSDYuNWExIDEgMCAwIDEgMC01SDIwIn1dLFsiY2lyY2xlIix7Y3g6IjE3IixjeToiMTAiLHI6IjIifV1dLHBSdD1bWyJwYXRoIix7ZDoiTTE4IDZWNGEyIDIgMCAxIDAtNCAwdjIifV0sWyJwYXRoIix7ZDoiTTIwIDE1djZhMSAxIDAgMCAxLTEgMUg2LjVhMSAxIDAgMCAxIDAtNUgyMCJ9XSxbInBhdGgiLHtkOiJNNCAxOS41di0xNUEyLjUgMi41IDAgMCAxIDYuNSAySDEwIn1dLFsicmVjdCIse3g6IjEyIix5OiI2Iix3aWR0aDoiOCIsaGVpZ2h0OiI1IixyeDoiMSJ9XV0saFJ0PVtbInBhdGgiLHtkOiJNMTAgMnY4bDMtMyAzIDNWMiJ9XSxbInBhdGgiLHtkOiJNNCAxOS41di0xNUEyLjUgMi41IDAgMCAxIDYuNSAySDE5YTEgMSAwIDAgMSAxIDF2MThhMSAxIDAgMCAxLTEgMUg2LjVhMSAxIDAgMCAxIDAtNUgyMCJ9XV0sZlJ0PVtbInBhdGgiLHtkOiJNNCAxOS41di0xNUEyLjUgMi41IDAgMCAxIDYuNSAySDE5YTEgMSAwIDAgMSAxIDF2MThhMSAxIDAgMCAxLTEgMUg2LjVhMSAxIDAgMCAxIDAtNUgyMCJ9XSxbInBhdGgiLHtkOiJNOSAxMGg2In1dXSxtUnQ9W1sicGF0aCIse2Q6Ik0xMiAyMVY3In1dLFsicGF0aCIse2Q6Im0xNiAxMiAyIDIgNC00In1dLFsicGF0aCIse2Q6Ik0yMiA2VjRhMSAxIDAgMCAwLTEtMWgtNWE0IDQgMCAwIDAtNCA0IDQgNCAwIDAgMC00LTRIM2ExIDEgMCAwIDAtMSAxdjEzYTEgMSAwIDAgMCAxIDFoNmEzIDMgMCAwIDEgMyAzIDMgMyAwIDAgMSAzLTNoNmExIDEgMCAwIDAgMS0xdi0xLjMifV1dLGdSdD1bWyJwYXRoIix7ZDoiTTEyIDd2MTQifV0sWyJwYXRoIix7ZDoiTTE2IDEyaDIifV0sWyJwYXRoIix7ZDoiTTE2IDhoMiJ9XSxbInBhdGgiLHtkOiJNMyAxOGExIDEgMCAwIDEtMS0xVjRhMSAxIDAgMCAxIDEtMWg1YTQgNCAwIDAgMSA0IDQgNCA0IDAgMCAxIDQtNGg1YTEgMSAwIDAgMSAxIDF2MTNhMSAxIDAgMCAxLTEgMWgtNmEzIDMgMCAwIDAtMyAzIDMgMyAwIDAgMC0zLTN6In1dLFsicGF0aCIse2Q6Ik02IDEyaDIifV0sWyJwYXRoIix7ZDoiTTYgOGgyIn1dXSxiUnQ9W1sicGF0aCIse2Q6Ik0xMiA3djE0In1dLFsicGF0aCIse2Q6Ik0zIDE4YTEgMSAwIDAgMS0xLTFWNGExIDEgMCAwIDEgMS0xaDVhNCA0IDAgMCAxIDQgNCA0IDQgMCAwIDEgNC00aDVhMSAxIDAgMCAxIDEgMXYxM2ExIDEgMCAwIDEtMSAxaC02YTMgMyAwIDAgMC0zIDMgMyAzIDAgMCAwLTMtM3oifV1dLHZSdD1bWyJwYXRoIix7ZDoiTTEyIDd2NiJ9XSxbInBhdGgiLHtkOiJNNCAxOS41di0xNUEyLjUgMi41IDAgMCAxIDYuNSAySDE5YTEgMSAwIDAgMSAxIDF2MThhMSAxIDAgMCAxLTEgMUg2LjVhMSAxIDAgMCAxIDAtNUgyMCJ9XSxbInBhdGgiLHtkOiJNOSAxMGg2In1dXSx4UnQ9W1sicGF0aCIse2Q6Ik0xMSAyMkg1LjVhMSAxIDAgMCAxIDAtNWg0LjUwMSJ9XSxbInBhdGgiLHtkOiJtMjEgMjItMS44NzktMS44NzgifV0sWyJwYXRoIix7ZDoiTTMgMTkuNXYtMTVBMi41IDIuNSAwIDAgMSA1LjUgMkgxOGExIDEgMCAwIDEgMSAxdjgifV0sWyJjaXJjbGUiLHtjeDoiMTciLGN5OiIxOCIscjoiMyJ9XV0seVJ0PVtbInBhdGgiLHtkOiJNNCAxOS41di0xNUEyLjUgMi41IDAgMCAxIDYuNSAySDE5YTEgMSAwIDAgMSAxIDF2MThhMSAxIDAgMCAxLTEgMUg2LjVhMSAxIDAgMCAxIDAtNUgyMCJ9XSxbInBhdGgiLHtkOiJNOCAxMWg4In1dLFsicGF0aCIse2Q6Ik04IDdoNiJ9XV0sd1J0PVtbInBhdGgiLHtkOiJNMTAgMTNoNCJ9XSxbInBhdGgiLHtkOiJNMTIgNnY3In1dLFsicGF0aCIse2Q6Ik0xNiA4VjZIOHYyIn1dLFsicGF0aCIse2Q6Ik00IDE5LjV2LTE1QTIuNSAyLjUgMCAwIDEgNi41IDJIMTlhMSAxIDAgMCAxIDEgMXYxOGExIDEgMCAwIDEtMSAxSDYuNWExIDEgMCAwIDEgMC01SDIwIn1dXSxNUnQ9W1sicGF0aCIse2Q6Ik0xMiAxM1Y3In1dLFsicGF0aCIse2Q6Ik0xOCAyaDFhMSAxIDAgMCAxIDEgMXYxOGExIDEgMCAwIDEtMSAxSDYuNWExIDEgMCAwIDEgMC01SDIwIn1dLFsicGF0aCIse2Q6Ik00IDE5LjV2LTE1QTIuNSAyLjUgMCAwIDEgNi41IDIifV0sWyJwYXRoIix7ZDoibTkgMTAgMy0zIDMgMyJ9XSxbInBhdGgiLHtkOiJtOSA1IDMtMyAzIDMifV1dLGtSdD1bWyJwYXRoIix7ZDoiTTEyIDEzVjcifV0sWyJwYXRoIix7ZDoiTTQgMTkuNXYtMTVBMi41IDIuNSAwIDAgMSA2LjUgMkgxOWExIDEgMCAwIDEgMSAxdjE4YTEgMSAwIDAgMS0xIDFINi41YTEgMSAwIDAgMSAwLTVIMjAifV0sWyJwYXRoIix7ZDoibTkgMTAgMy0zIDMgMyJ9XV0sU1J0PVtbInBhdGgiLHtkOiJNMTUgMTNhMyAzIDAgMSAwLTYgMCJ9XSxbInBhdGgiLHtkOiJNNCAxOS41di0xNUEyLjUgMi41IDAgMCAxIDYuNSAySDE5YTEgMSAwIDAgMSAxIDF2MThhMSAxIDAgMCAxLTEgMUg2LjVhMSAxIDAgMCAxIDAtNUgyMCJ9XSxbImNpcmNsZSIse2N4OiIxMiIsY3k6IjgiLHI6IjIifV1dLHpSdD1bWyJwYXRoIix7ZDoibTE0LjUgNy01IDUifV0sWyJwYXRoIix7ZDoiTTQgMTkuNXYtMTVBMi41IDIuNSAwIDAgMSA2LjUgMkgxOWExIDEgMCAwIDEgMSAxdjE4YTEgMSAwIDAgMS0xIDFINi41YTEgMSAwIDAgMSAwLTVIMjAifV0sWyJwYXRoIix7ZDoibTkuNSA3IDUgNSJ9XV0sQ1J0PVtbInBhdGgiLHtkOiJNNCAxOS41di0xNUEyLjUgMi41IDAgMCAxIDYuNSAySDE5YTEgMSAwIDAgMSAxIDF2MThhMSAxIDAgMCAxLTEgMUg2LjVhMSAxIDAgMCAxIDAtNUgyMCJ9XV0sVFJ0PVtbInBhdGgiLHtkOiJNMTcgM2EyIDIgMCAwIDEgMiAydjE1YTEgMSAwIDAgMS0xLjQ5Ni44NjhsLTQuNTEyLTIuNTc4YTIgMiAwIDAgMC0xLjk4NCAwbC00LjUxMiAyLjU3OEExIDEgMCAwIDEgNSAyMFY1YTIgMiAwIDAgMSAyLTJ6In1dLFsicGF0aCIse2Q6Im05IDEwIDIgMiA0LTQifV1dLF9SdD1bWyJwYXRoIix7ZDoiTTE1IDEwSDkifV0sWyJwYXRoIix7ZDoiTTE3IDNhMiAyIDAgMCAxIDIgMnYxNWExIDEgMCAwIDEtMS40OTYuODY4bC00LjUxMi0yLjU3OGEyIDIgMCAwIDAtMS45ODQgMGwtNC41MTIgMi41NzhBMSAxIDAgMCAxIDUgMjBWNWEyIDIgMCAwIDEgMi0yeiJ9XV0sTFJ0PVtbInBhdGgiLHtkOiJNMTIgN3Y2In1dLFsicGF0aCIse2Q6Ik0xNSAxMEg5In1dLFsicGF0aCIse2Q6Ik0xNyAzYTIgMiAwIDAgMSAyIDJ2MTVhMSAxIDAgMCAxLTEuNDk2Ljg2OGwtNC41MTItMi41NzhhMiAyIDAgMCAwLTEuOTg0IDBsLTQuNTEyIDIuNTc4QTEgMSAwIDAgMSA1IDIwVjVhMiAyIDAgMCAxIDItMnoifV1dLEFSdD1bWyJwYXRoIix7ZDoibTE0LjUgNy41LTUgNSJ9XSxbInBhdGgiLHtkOiJNMTcgM2EyIDIgMCAwIDEgMiAydjE1YTEgMSAwIDAgMS0xLjQ5Ni44NjhsLTQuNTEyLTIuNTc4YTIgMiAwIDAgMC0xLjk4NCAwbC00LjUxMiAyLjU3OEExIDEgMCAwIDEgNSAyMFY1YTIgMiAwIDAgMSAyLTJ6In1dLFsicGF0aCIse2Q6Im05LjUgNy41IDUgNSJ9XV0sRFJ0PVtbInBhdGgiLHtkOiJNMTcgM2EyIDIgMCAwIDEgMiAydjE1YTEgMSAwIDAgMS0xLjQ5Ni44NjhsLTQuNTEyLTIuNTc4YTIgMiAwIDAgMC0xLjk4NCAwbC00LjUxMiAyLjU3OEExIDEgMCAwIDEgNSAyMFY1YTIgMiAwIDAgMSAyLTJ6In1dXSxFUnQ9W1sicGF0aCIse2Q6Ik00IDlWNWEyIDIgMCAwIDEgMi0yaDEyYTIgMiAwIDAgMSAyIDJ2NCJ9XSxbInBhdGgiLHtkOiJNOCA4djEifV0sWyJwYXRoIix7ZDoiTTEyIDh2MSJ9XSxbInBhdGgiLHtkOiJNMTYgOHYxIn1dLFsicmVjdCIse3dpZHRoOiIyMCIsaGVpZ2h0OiIxMiIseDoiMiIseToiOSIscng6IjIifV0sWyJjaXJjbGUiLHtjeDoiOCIsY3k6IjE1IixyOiIyIn1dLFsiY2lyY2xlIix7Y3g6IjE2IixjeToiMTUiLHI6IjIifV1dLCRSdD1bWyJwYXRoIix7ZDoiTTEyIDZWMkg4In1dLFsicGF0aCIse2Q6Ik0xNSAxMXYyIn1dLFsicGF0aCIse2Q6Ik0yIDEyaDIifV0sWyJwYXRoIix7ZDoiTTIwIDEyaDIifV0sWyJwYXRoIix7ZDoiTTIwIDE2YTIgMiAwIDAgMS0yIDJIOC44MjhhMiAyIDAgMCAwLTEuNDE0LjU4NmwtMi4yMDIgMi4yMDJBLjcxLjcxIDAgMCAxIDQgMjAuMjg2VjhhMiAyIDAgMCAxIDItMmgxMmEyIDIgMCAwIDEgMiAyeiJ9XSxbInBhdGgiLHtkOiJNOSAxMXYyIn1dXSxJUnQ9W1sicGF0aCIse2Q6Ik0xMiA4VjRIOCJ9XSxbInJlY3QiLHt3aWR0aDoiMTYiLGhlaWdodDoiMTIiLHg6IjQiLHk6IjgiLHJ4OiIyIn1dLFsicGF0aCIse2Q6Ik0yIDE0aDIifV0sWyJwYXRoIix7ZDoiTTIwIDE0aDIifV0sWyJwYXRoIix7ZDoiTTE1IDEzdjIifV0sWyJwYXRoIix7ZDoiTTkgMTN2MiJ9XV0sUFJ0PVtbInBhdGgiLHtkOiJNMTMuNjcgOEgxOGEyIDIgMCAwIDEgMiAydjQuMzMifV0sWyJwYXRoIix7ZDoiTTIgMTRoMiJ9XSxbInBhdGgiLHtkOiJNMjAgMTRoMiJ9XSxbInBhdGgiLHtkOiJNMjIgMjIgMiAyIn1dLFsicGF0aCIse2Q6Ik04IDhINmEyIDIgMCAwIDAtMiAydjhhMiAyIDAgMCAwIDIgMmgxMmEyIDIgMCAwIDAgMS40MTQtLjU4NiJ9XSxbInBhdGgiLHtkOiJNOSAxM3YyIn1dLFsicGF0aCIse2Q6Ik05LjY3IDRIMTJ2Mi4zMyJ9XV0sTlJ0PVtbInBhdGgiLHtkOiJNMTAgM2ExIDEgMCAwIDEgMS0xaDJhMSAxIDAgMCAxIDEgMXYyYTYgNiAwIDAgMCAxLjIgMy42bC42LjhBNiA2IDAgMCAxIDE3IDEzdjhhMSAxIDAgMCAxLTEgMUg4YTEgMSAwIDAgMS0xLTF2LThhNiA2IDAgMCAxIDEuMi0zLjZsLjYtLjhBNiA2IDAgMCAwIDEwIDV6In1dLFsicGF0aCIse2Q6Ik0xNyAxM2gtNGExIDEgMCAwIDAtMSAxdjNhMSAxIDAgMCAwIDEgMWg0In1dXSxGUnQ9W1sicGF0aCIse2Q6Ik0xNyAzaDR2NCJ9XSxbInBhdGgiLHtkOiJNMTguNTc1IDExLjA4MmExMyAxMyAwIDAgMSAxLjA0OCA5LjAyNyAxLjE3IDEuMTcgMCAwIDEtMS45MTQuNTk3TDE0IDE3In1dLFsicGF0aCIse2Q6Ik03IDEwIDMuMjkgNi4yOWExLjE3IDEuMTcgMCAwIDEgLjYtMS45MSAxMyAxMyAwIDAgMSA5LjAzIDEuMDUifV0sWyJwYXRoIix7ZDoiTTcgMTRhMS43IDEuNyAwIDAgMC0xLjIwNy41bC0yLjY0NiAyLjY0NkEuNS41IDAgMCAwIDMuNSAxOEg1YTEgMSAwIDAgMSAxIDF2MS41YS41LjUgMCAwIDAgLjg1NC4zNTRMOS41IDE4LjIwN0ExLjcgMS43IDAgMCAwIDEwIDE3di0yYTEgMSAwIDAgMC0xLTF6In1dLFsicGF0aCIse2Q6Ik05LjcwNyAxNC4yOTMgMjEgMyJ9XV0sT1J0PVtbInBhdGgiLHtkOiJNMjEgOGEyIDIgMCAwIDAtMS0xLjczbC03LTRhMiAyIDAgMCAwLTIgMGwtNyA0QTIgMiAwIDAgMCAzIDh2OGEyIDIgMCAwIDAgMSAxLjczbDcgNGEyIDIgMCAwIDAgMiAwbDctNEEyIDIgMCAwIDAgMjEgMTZaIn1dLFsicGF0aCIse2Q6Im0zLjMgNyA4LjcgNSA4LjctNSJ9XSxbInBhdGgiLHtkOiJNMTIgMjJWMTIifV1dLFJSdD1bWyJwYXRoIix7ZDoiTTIuOTcgMTIuOTJBMiAyIDAgMCAwIDIgMTQuNjN2My4yNGEyIDIgMCAwIDAgLjk3IDEuNzFsMyAxLjhhMiAyIDAgMCAwIDIuMDYgMEwxMiAxOXYtNS41bC01LTMtNC4wMyAyLjQyWiJ9XSxbInBhdGgiLHtkOiJtNyAxNi41LTQuNzQtMi44NSJ9XSxbInBhdGgiLHtkOiJtNyAxNi41IDUtMyJ9XSxbInBhdGgiLHtkOiJNNyAxNi41djUuMTcifV0sWyJwYXRoIix7ZDoiTTEyIDEzLjVWMTlsMy45NyAyLjM4YTIgMiAwIDAgMCAyLjA2IDBsMy0xLjhhMiAyIDAgMCAwIC45Ny0xLjcxdi0zLjI0YTIgMiAwIDAgMC0uOTctMS43MUwxNyAxMC41bC01IDNaIn1dLFsicGF0aCIse2Q6Im0xNyAxNi41LTUtMyJ9XSxbInBhdGgiLHtkOiJtMTcgMTYuNSA0Ljc0LTIuODUifV0sWyJwYXRoIix7ZDoiTTE3IDE2LjV2NS4xNyJ9XSxbInBhdGgiLHtkOiJNNy45NyA0LjQyQTIgMiAwIDAgMCA3IDYuMTN2NC4zN2w1IDMgNS0zVjYuMTNhMiAyIDAgMCAwLS45Ny0xLjcxbC0zLTEuOGEyIDIgMCAwIDAtMi4wNiAwbC0zIDEuOFoifV0sWyJwYXRoIix7ZDoiTTEyIDggNy4yNiA1LjE1In1dLFsicGF0aCIse2Q6Im0xMiA4IDQuNzQtMi44NSJ9XSxbInBhdGgiLHtkOiJNMTIgMTMuNVY4In1dXSxMRT1bWyJwYXRoIix7ZDoiTTggM0g3YTIgMiAwIDAgMC0yIDJ2NWEyIDIgMCAwIDEtMiAyIDIgMiAwIDAgMSAyIDJ2NWMwIDEuMS45IDIgMiAyaDEifV0sWyJwYXRoIix7ZDoiTTE2IDIxaDFhMiAyIDAgMCAwIDItMnYtNWMwLTEuMS45LTIgMi0yYTIgMiAwIDAgMS0yLTJWNWEyIDIgMCAwIDAtMi0yaC0xIn1dXSxCUnQ9W1sicGF0aCIse2Q6Ik0xNiAzaDNhMSAxIDAgMCAxIDEgMXYxNmExIDEgMCAwIDEtMSAxaC0zIn1dLFsicGF0aCIse2Q6Ik04IDIxSDVhMSAxIDAgMCAxLTEtMVY0YTEgMSAwIDAgMSAxLTFoMyJ9XV0sSFJ0PVtbInBhdGgiLHtkOiJNMTIgNWEzIDMgMCAxIDAtNS45OTcuMTI1IDQgNCAwIDAgMC0yLjUyNiA1Ljc3IDQgNCAwIDAgMCAuNTU2IDYuNTg4QTQgNCAwIDEgMCAxMiAxOFoifV0sWyJwYXRoIix7ZDoiTTkgMTNhNC41IDQuNSAwIDAgMCAzLTQifV0sWyJwYXRoIix7ZDoiTTYuMDAzIDUuMTI1QTMgMyAwIDAgMCA2LjQwMSA2LjUifV0sWyJwYXRoIix7ZDoiTTMuNDc3IDEwLjg5NmE0IDQgMCAwIDEgLjU4NS0uMzk2In1dLFsicGF0aCIse2Q6Ik02IDE4YTQgNCAwIDAgMS0xLjk2Ny0uNTE2In1dLFsicGF0aCIse2Q6Ik0xMiAxM2g0In1dLFsicGF0aCIse2Q6Ik0xMiAxOGg2YTIgMiAwIDAgMSAyIDJ2MSJ9XSxbInBhdGgiLHtkOiJNMTIgOGg4In1dLFsicGF0aCIse2Q6Ik0xNiA4VjVhMiAyIDAgMCAxIDItMiJ9XSxbImNpcmNsZSIse2N4OiIxNiIsY3k6IjEzIixyOiIuNSJ9XSxbImNpcmNsZSIse2N4OiIxOCIsY3k6IjMiLHI6Ii41In1dLFsiY2lyY2xlIix7Y3g6IjIwIixjeToiMjEiLHI6Ii41In1dLFsiY2lyY2xlIix7Y3g6IjIwIixjeToiOCIscjoiLjUifV1dLHFSdD1bWyJwYXRoIix7ZDoibTEwLjg1MiAxNC43NzItLjM4My45MjMifV0sWyJwYXRoIix7ZDoibTEwLjg1MiA5LjIyOC0uMzgzLS45MjMifV0sWyJwYXRoIix7ZDoibTEzLjE0OCAxNC43NzIuMzgyLjkyNCJ9XSxbInBhdGgiLHtkOiJtMTMuNTMxIDguMzA1LS4zODMuOTIzIn1dLFsicGF0aCIse2Q6Im0xNC43NzIgMTAuODUyLjkyMy0uMzgzIn1dLFsicGF0aCIse2Q6Im0xNC43NzIgMTMuMTQ4LjkyMy4zODMifV0sWyJwYXRoIix7ZDoiTTE3LjU5OCA2LjVBMyAzIDAgMSAwIDEyIDVhMyAzIDAgMCAwLTUuNjMtMS40NDYgMyAzIDAgMCAwLS4zNjggMS41NzEgNCA0IDAgMCAwLTIuNTI1IDUuNzcxIn1dLFsicGF0aCIse2Q6Ik0xNy45OTggNS4xMjVhNCA0IDAgMCAxIDIuNTI1IDUuNzcxIn1dLFsicGF0aCIse2Q6Ik0xOS41MDUgMTAuMjk0YTQgNCAwIDAgMS0xLjUgNy43MDYifV0sWyJwYXRoIix7ZDoiTTQuMDMyIDE3LjQ4M0E0IDQgMCAwIDAgMTEuNDY0IDIwYy4xOC0uMzExLjg5Mi0uMzExIDEuMDcyIDBhNCA0IDAgMCAwIDcuNDMyLTIuNTE2In1dLFsicGF0aCIse2Q6Ik00LjUgMTAuMjkxQTQgNCAwIDAgMCA2IDE4In1dLFsicGF0aCIse2Q6Ik02LjAwMiA1LjEyNWEzIDMgMCAwIDAgLjQgMS4zNzUifV0sWyJwYXRoIix7ZDoibTkuMjI4IDEwLjg1Mi0uOTIzLS4zODMifV0sWyJwYXRoIix7ZDoibTkuMjI4IDEzLjE0OC0uOTIzLjM4MyJ9XSxbImNpcmNsZSIse2N4OiIxMiIsY3k6IjEyIixyOiIzIn1dXSxqUnQ9W1sicGF0aCIse2Q6Ik0xMiAxOFY1In1dLFsicGF0aCIse2Q6Ik0xNSAxM2E0LjE3IDQuMTcgMCAwIDEtMy00IDQuMTcgNC4xNyAwIDAgMS0zIDQifV0sWyJwYXRoIix7ZDoiTTE3LjU5OCA2LjVBMyAzIDAgMSAwIDEyIDVhMyAzIDAgMSAwLTUuNTk4IDEuNSJ9XSxbInBhdGgiLHtkOiJNMTcuOTk3IDUuMTI1YTQgNCAwIDAgMSAyLjUyNiA1Ljc3In1dLFsicGF0aCIse2Q6Ik0xOCAxOGE0IDQgMCAwIDAgMi03LjQ2NCJ9XSxbInBhdGgiLHtkOiJNMTkuOTY3IDE3LjQ4M0E0IDQgMCAxIDEgMTIgMThhNCA0IDAgMSAxLTcuOTY3LS41MTcifV0sWyJwYXRoIix7ZDoiTTYgMThhNCA0IDAgMCAxLTItNy40NjQifV0sWyJwYXRoIix7ZDoiTTYuMDAzIDUuMTI1YTQgNCAwIDAgMC0yLjUyNiA1Ljc3In1dXSxWUnQ9W1sicGF0aCIse2Q6Ik0xNiAzdjIuMTA3In1dLFsicGF0aCIse2Q6Ik0xNyA5YzEgMyAyLjUgMy41IDMuNSA0LjVBNSA1IDAgMCAxIDIyIDE3YTUgNSAwIDAgMS0xMCAwYzAtLjMgMC0uNi4xLS45YTIgMiAwIDEgMCAzLjMtMkMxMyAxMS41IDE2IDkgMTcgOSJ9XSxbInBhdGgiLHtkOiJNMjEgOC4yNzRWNWEyIDIgMCAwIDAtMi0ySDVhMiAyIDAgMCAwLTIgMnYxNGEyIDIgMCAwIDAgMiAyaDMuOTM4In1dLFsicGF0aCIse2Q6Ik0zIDE1aDUuMjUzIn1dLFsicGF0aCIse2Q6Ik0zIDloOC4yMjgifV0sWyJwYXRoIix7ZDoiTTggMTV2NiJ9XSxbInBhdGgiLHtkOiJNOCAzdjYifV1dLFVSdD1bWyJwYXRoIix7ZDoiTTEyIDl2MS4yNTgifV0sWyJwYXRoIix7ZDoiTTE2IDN2NS40NiJ9XSxbInBhdGgiLHtkOiJNMjEgOS4xMThWNWEyIDIgMCAwIDAtMi0ySDVhMiAyIDAgMCAwLTIgMnYxNGEyIDIgMCAwIDAgMiAyaDUuNzUifV0sWyJwYXRoIix7ZDoiTTIyIDE3LjVjMCAyLjQ5OS0xLjc1IDMuNzQ5LTMuODMgNC40NzRhLjUuNSAwIDAgMS0uMzM1LS4wMDVjLTIuMDg1LS43Mi0zLjgzNS0xLjk3LTMuODM1LTQuNDdWMTRhLjUuNSAwIDAgMSAuNS0uNDk5YzEgMCAyLjI1LS42IDMuMTItMS4zNmEuNi42IDAgMCAxIC43Ni0uMDAxYy44NzUuNzY1IDIuMTIgMS4zNiAzLjEyIDEuMzZhLjUuNSAwIDAgMSAuNS41eiJ9XSxbInBhdGgiLHtkOiJNMyAxNWg3In1dLFsicGF0aCIse2Q6Ik0zIDloMTIuMTQyIn1dLFsicGF0aCIse2Q6Ik04IDE1djYifV0sWyJwYXRoIix7ZDoiTTggM3Y2In1dXSxXUnQ9W1sicGF0aCIse2Q6Ik0xMiAxMmguMDEifV0sWyJwYXRoIix7ZDoiTTE2IDZWNGEyIDIgMCAwIDAtMi0yaC00YTIgMiAwIDAgMC0yIDJ2MiJ9XSxbInBhdGgiLHtkOiJNMjIgMTNhMTguMTUgMTguMTUgMCAwIDEtMjAgMCJ9XSxbInJlY3QiLHt3aWR0aDoiMjAiLGhlaWdodDoiMTQiLHg6IjIiLHk6IjYiLHJ4OiIyIn1dXSxHUnQ9W1sicmVjdCIse3dpZHRoOiIxOCIsaGVpZ2h0OiIxOCIseDoiMyIseToiMyIscng6IjIifV0sWyJwYXRoIix7ZDoiTTEyIDl2NiJ9XSxbInBhdGgiLHtkOiJNMTYgMTV2NiJ9XSxbInBhdGgiLHtkOiJNMTYgM3Y2In1dLFsicGF0aCIse2Q6Ik0zIDE1aDE4In1dLFsicGF0aCIse2Q6Ik0zIDloMTgifV0sWyJwYXRoIix7ZDoiTTggMTV2NiJ9XSxbInBhdGgiLHtkOiJNOCAzdjYifV1dLFlSdD1bWyJwYXRoIix7ZDoiTTEwIDIwdjIifV0sWyJwYXRoIix7ZDoiTTE0IDIwdjIifV0sWyJwYXRoIix7ZDoiTTE4IDIwdjIifV0sWyJwYXRoIix7ZDoiTTIxIDIwSDMifV0sWyJwYXRoIix7ZDoiTTYgMjB2MiJ9XSxbInBhdGgiLHtkOiJNOCAxNlY0YTIgMiAwIDAgMSAyLTJoNGEyIDIgMCAwIDEgMiAydjEyIn1dLFsicmVjdCIse3g6IjQiLHk6IjYiLHdpZHRoOiIxNiIsaGVpZ2h0OiIxMCIscng6IjIifV1dLFpSdD1bWyJwYXRoIix7ZDoiTTEyIDExdjQifV0sWyJwYXRoIix7ZDoiTTE0IDEzaC00In1dLFsicGF0aCIse2Q6Ik0xNiA2VjRhMiAyIDAgMCAwLTItMmgtNGEyIDIgMCAwIDAtMiAydjIifV0sWyJwYXRoIix7ZDoiTTE4IDZ2MTQifV0sWyJwYXRoIix7ZDoiTTYgNnYxNCJ9XSxbInJlY3QiLHt3aWR0aDoiMjAiLGhlaWdodDoiMTQiLHg6IjIiLHk6IjYiLHJ4OiIyIn1dXSxYUnQ9W1sicGF0aCIse2Q6Ik0xNiAyMFY0YTIgMiAwIDAgMC0yLTJoLTRhMiAyIDAgMCAwLTIgMnYxNiJ9XSxbInJlY3QiLHt3aWR0aDoiMjAiLGhlaWdodDoiMTQiLHg6IjIiLHk6IjYiLHJ4OiIyIn1dXSxRUnQ9W1sicmVjdCIse3g6IjgiLHk6IjgiLHdpZHRoOiI4IixoZWlnaHQ6IjgiLHJ4OiIyIn1dLFsicGF0aCIse2Q6Ik00IDEwYTIgMiAwIDAgMS0yLTJWNGEyIDIgMCAwIDEgMi0yaDRhMiAyIDAgMCAxIDIgMiJ9XSxbInBhdGgiLHtkOiJNMTQgMjBhMiAyIDAgMCAwIDIgMmg0YTIgMiAwIDAgMCAyLTJ2LTRhMiAyIDAgMCAwLTItMiJ9XV0sSlJ0PVtbInBhdGgiLHtkOiJtMTYgMjItMS00In1dLFsicGF0aCIse2Q6Ik0xOSAxNGExIDEgMCAwIDAgMS0xdi0xYTIgMiAwIDAgMC0yLTJoLTNhMSAxIDAgMCAxLTEtMVY0YTIgMiAwIDAgMC00IDB2NWExIDEgMCAwIDEtMSAxSDZhMiAyIDAgMCAwLTIgMnYxYTEgMSAwIDAgMCAxIDEifV0sWyJwYXRoIix7ZDoiTTE5IDE0SDVsLTEuOTczIDYuNzY3QTEgMSAwIDAgMCA0IDIyaDE2YTEgMSAwIDAgMCAuOTczLTEuMjMzeiJ9XSxbInBhdGgiLHtkOiJtOCAyMiAxLTQifV1dLEtSdD1bWyJwYXRoIix7ZDoibTExIDEwIDMgMyJ9XSxbInBhdGgiLHtkOiJNNi41IDIxQTMuNSAzLjUgMCAxIDAgMyAxNy41YTIuNjIgMi42MiAwIDAgMS0uNzA4IDEuNzkyQTEgMSAwIDAgMCAzIDIxeiJ9XSxbInBhdGgiLHtkOiJNOS45NjkgMTcuMDMxIDIxLjM3OCA1LjYyNGExIDEgMCAwIDAtMy4wMDItMy4wMDJMNi45NjcgMTQuMDMxIn1dXSxlQnQ9W1sicGF0aCIse2Q6Ik03LjAwMSAxNS4wODVBMS41IDEuNSAwIDAgMSA5IDE2LjUifV0sWyJjaXJjbGUiLHtjeDoiMTguNSIsY3k6IjguNSIscjoiMy41In1dLFsiY2lyY2xlIix7Y3g6IjcuNSIsY3k6IjE2LjUiLHI6IjUuNSJ9XSxbImNpcmNsZSIse2N4OiI3LjUiLGN5OiI0LjUiLHI6IjIuNSJ9XV0sdEJ0PVtbInBhdGgiLHtkOiJNMTIgMjB2LTgifV0sWyJwYXRoIix7ZDoiTTEyLjY1NiA3SDE0YTQgNCAwIDAgMSA0IDR2MS4zNDQifV0sWyJwYXRoIix7ZDoiTTE0LjEyIDMuODggMTYgMiJ9XSxbInBhdGgiLHtkOiJNMTcuMTIzIDE3LjEyM0E2IDYgMCAwIDEgNiAxNHYtM2E0IDQgMCAwIDEgMS43Mi0zLjI4NyJ9XSxbInBhdGgiLHtkOiJtMiAyIDIwIDIwIn1dLFsicGF0aCIse2Q6Ik0yMSA1YTQgNCAwIDAgMS0zLjU1IDMuOTcifV0sWyJwYXRoIix7ZDoiTTIyIDEzaC0zLjM0NCJ9XSxbInBhdGgiLHtkOiJNMyAyMWE0IDQgMCAwIDEgMy44MS00In1dLFsicGF0aCIse2Q6Ik0zIDVhNCA0IDAgMCAwIDMuNTUgMy45NyJ9XSxbInBhdGgiLHtkOiJNNiAxM0gyIn1dLFsicGF0aCIse2Q6Im04IDIgMS44OCAxLjg4In1dLFsicGF0aCIse2Q6Ik05LjcxMiA0LjA2QTMgMyAwIDAgMSAxNSA2djEuMTMifV1dLHJCdD1bWyJwYXRoIix7ZDoiTTEwIDE5LjY1NUE2IDYgMCAwIDEgNiAxNHYtM2E0IDQgMCAwIDEgNC00aDRhNCA0IDAgMCAxIDQgMy45NyJ9XSxbInBhdGgiLHtkOiJNMTQgMTUuMDAzYTEgMSAwIDAgMSAxLjUxNy0uODU5bDQuOTk3IDIuOTk3YTEgMSAwIDAgMSAwIDEuNzE4bC00Ljk5NyAyLjk5N2ExIDEgMCAwIDEtMS41MTctLjg2eiJ9XSxbInBhdGgiLHtkOiJNMTQuMTIgMy44OCAxNiAyIn1dLFsicGF0aCIse2Q6Ik0yMSA1YTQgNCAwIDAgMS0zLjU1IDMuOTcifV0sWyJwYXRoIix7ZDoiTTMgMjFhNCA0IDAgMCAxIDMuODEtNCJ9XSxbInBhdGgiLHtkOiJNMyA1YTQgNCAwIDAgMCAzLjU1IDMuOTcifV0sWyJwYXRoIix7ZDoiTTYgMTNIMiJ9XSxbInBhdGgiLHtkOiJtOCAyIDEuODggMS44OCJ9XSxbInBhdGgiLHtkOiJNOSA3LjEzVjZhMyAzIDAgMSAxIDYgMHYxLjEzIn1dXSxpQnQ9W1sicGF0aCIse2Q6Ik0xMiAyMHYtOSJ9XSxbInBhdGgiLHtkOiJNMTQgN2E0IDQgMCAwIDEgNCA0djNhNiA2IDAgMCAxLTEyIDB2LTNhNCA0IDAgMCAxIDQtNHoifV0sWyJwYXRoIix7ZDoiTTE0LjEyIDMuODggMTYgMiJ9XSxbInBhdGgiLHtkOiJNMjEgMjFhNCA0IDAgMCAwLTMuODEtNCJ9XSxbInBhdGgiLHtkOiJNMjEgNWE0IDQgMCAwIDEtMy41NSAzLjk3In1dLFsicGF0aCIse2Q6Ik0yMiAxM2gtNCJ9XSxbInBhdGgiLHtkOiJNMyAyMWE0IDQgMCAwIDEgMy44MS00In1dLFsicGF0aCIse2Q6Ik0zIDVhNCA0IDAgMCAwIDMuNTUgMy45NyJ9XSxbInBhdGgiLHtkOiJNNiAxM0gyIn1dLFsicGF0aCIse2Q6Im04IDIgMS44OCAxLjg4In1dLFsicGF0aCIse2Q6Ik05IDcuMTNWNmEzIDMgMCAxIDEgNiAwdjEuMTMifV1dLGFCdD1bWyJwYXRoIix7ZDoiTTEwIDEyaDQifV0sWyJwYXRoIix7ZDoiTTEwIDhoNCJ9XSxbInBhdGgiLHtkOiJNMTQgMjF2LTNhMiAyIDAgMCAwLTQgMHYzIn1dLFsicGF0aCIse2Q6Ik02IDEwSDRhMiAyIDAgMCAwLTIgMnY3YTIgMiAwIDAgMCAyIDJoMTZhMiAyIDAgMCAwIDItMlY5YTIgMiAwIDAgMC0yLTJoLTIifV0sWyJwYXRoIix7ZDoiTTYgMjFWNWEyIDIgMCAwIDEgMi0yaDhhMiAyIDAgMCAxIDIgMnYxNiJ9XV0sbkJ0PVtbInBhdGgiLHtkOiJNMTIgMTBoLjAxIn1dLFsicGF0aCIse2Q6Ik0xMiAxNGguMDEifV0sWyJwYXRoIix7ZDoiTTEyIDZoLjAxIn1dLFsicGF0aCIse2Q6Ik0xNiAxMGguMDEifV0sWyJwYXRoIix7ZDoiTTE2IDE0aC4wMSJ9XSxbInBhdGgiLHtkOiJNMTYgNmguMDEifV0sWyJwYXRoIix7ZDoiTTggMTBoLjAxIn1dLFsicGF0aCIse2Q6Ik04IDE0aC4wMSJ9XSxbInBhdGgiLHtkOiJNOCA2aC4wMSJ9XSxbInBhdGgiLHtkOiJNOSAyMnYtM2ExIDEgMCAwIDEgMS0xaDRhMSAxIDAgMCAxIDEgMXYzIn1dLFsicmVjdCIse3g6IjQiLHk6IjIiLHdpZHRoOiIxNiIsaGVpZ2h0OiIyMCIscng6IjIifV1dLG9CdD1bWyJwYXRoIix7ZDoiTTQgNiAyIDcifV0sWyJwYXRoIix7ZDoiTTEwIDZoNCJ9XSxbInBhdGgiLHtkOiJtMjIgNy0yLTEifV0sWyJyZWN0Iix7d2lkdGg6IjE2IixoZWlnaHQ6IjE2Iix4OiI0Iix5OiIzIixyeDoiMiJ9XSxbInBhdGgiLHtkOiJNNCAxMWgxNiJ9XSxbInBhdGgiLHtkOiJNOCAxNWguMDEifV0sWyJwYXRoIix7ZDoiTTE2IDE1aC4wMSJ9XSxbInBhdGgiLHtkOiJNNiAxOXYyIn1dLFsicGF0aCIse2Q6Ik0xOCAyMXYtMiJ9XV0sc0J0PVtbInBhdGgiLHtkOiJNOCA2djYifV0sWyJwYXRoIix7ZDoiTTE1IDZ2NiJ9XSxbInBhdGgiLHtkOiJNMiAxMmgxOS42In1dLFsicGF0aCIse2Q6Ik0xOCAxOGgzcy41LTEuNy44LTIuOGMuMS0uNC4yLS44LjItMS4yIDAtLjQtLjEtLjgtLjItMS4ybC0xLjQtNUMyMC4xIDYuOCAxOS4xIDYgMTggNkg0YTIgMiAwIDAgMC0yIDJ2MTBoMyJ9XSxbImNpcmNsZSIse2N4OiI3IixjeToiMTgiLHI6IjIifV0sWyJwYXRoIix7ZDoiTTkgMThoNSJ9XSxbImNpcmNsZSIse2N4OiIxNiIsY3k6IjE4IixyOiIyIn1dXSxsQnQ9W1sicGF0aCIse2Q6Ik0xMCAzaC4wMSJ9XSxbInBhdGgiLHtkOiJNMTQgMmguMDEifV0sWyJwYXRoIix7ZDoibTIgOSAyMC01In1dLFsicGF0aCIse2Q6Ik0xMiAxMlY2LjUifV0sWyJyZWN0Iix7d2lkdGg6IjE2IixoZWlnaHQ6IjEwIix4OiI0Iix5OiIxMiIscng6IjMifV0sWyJwYXRoIix7ZDoiTTkgMTJ2NSJ9XSxbInBhdGgiLHtkOiJNMTUgMTJ2NSJ9XSxbInBhdGgiLHtkOiJNNCAxN2gxNiJ9XV0sY0J0PVtbInBhdGgiLHtkOiJNMTcgMTlhMSAxIDAgMCAxLTEtMXYtMmEyIDIgMCAwIDEgMi0yaDJhMiAyIDAgMCAxIDIgMnYyYTEgMSAwIDAgMS0xIDF6In1dLFsicGF0aCIse2Q6Ik0xNyAyMXYtMiJ9XSxbInBhdGgiLHtkOiJNMTkgMTRWNi41YTEgMSAwIDAgMC03IDB2MTFhMSAxIDAgMCAxLTcgMFYxMCJ9XSxbInBhdGgiLHtkOiJNMjEgMjF2LTIifV0sWyJwYXRoIix7ZDoiTTMgNVYzIn1dLFsicGF0aCIse2Q6Ik00IDEwYTIgMiAwIDAgMS0yLTJWNmExIDEgMCAwIDEgMS0xaDRhMSAxIDAgMCAxIDEgMXYyYTIgMiAwIDAgMS0yIDJ6In1dLFsicGF0aCIse2Q6Ik03IDVWMyJ9XV0sZEJ0PVtbInBhdGgiLHtkOiJNMTYgMTNIMyJ9XSxbInBhdGgiLHtkOiJNMTYgMTdIMyJ9XSxbInBhdGgiLHtkOiJtNy4yIDcuOS0zLjM4OCAyLjVBMiAyIDAgMCAwIDMgMTIuMDFWMjBhMSAxIDAgMCAwIDEgMWgxNmExIDEgMCAwIDAgMS0xdi04LjY1NGMwLTItMi40NC02LjAyNi02LjQ0LTguMDI2YTEgMSAwIDAgMC0xLjA4Mi4wNTdMMTAuNCA1LjYifV0sWyJjaXJjbGUiLHtjeDoiOSIsY3k6IjciLHI6IjIifV1dLHVCdD1bWyJwYXRoIix7ZDoiTTIwIDIxdi04YTIgMiAwIDAgMC0yLTJINmEyIDIgMCAwIDAtMiAydjgifV0sWyJwYXRoIix7ZDoiTTQgMTZzLjUtMSAyLTEgMi41IDIgNCAyIDIuNS0yIDQtMiAyLjUgMiA0IDIgMi0xIDItMSJ9XSxbInBhdGgiLHtkOiJNMiAyMWgyMCJ9XSxbInBhdGgiLHtkOiJNNyA4djMifV0sWyJwYXRoIix7ZDoiTTEyIDh2MyJ9XSxbInBhdGgiLHtkOiJNMTcgOHYzIn1dLFsicGF0aCIse2Q6Ik03IDRoLjAxIn1dLFsicGF0aCIse2Q6Ik0xMiA0aC4wMSJ9XSxbInBhdGgiLHtkOiJNMTcgNGguMDEifV1dLHBCdD1bWyJyZWN0Iix7d2lkdGg6IjE2IixoZWlnaHQ6IjIwIix4OiI0Iix5OiIyIixyeDoiMiJ9XSxbImxpbmUiLHt4MToiOCIseDI6IjE2Iix5MToiNiIseTI6IjYifV0sWyJsaW5lIix7eDE6IjE2Iix4MjoiMTYiLHkxOiIxNCIseTI6IjE4In1dLFsicGF0aCIse2Q6Ik0xNiAxMGguMDEifV0sWyJwYXRoIix7ZDoiTTEyIDEwaC4wMSJ9XSxbInBhdGgiLHtkOiJNOCAxMGguMDEifV0sWyJwYXRoIix7ZDoiTTEyIDE0aC4wMSJ9XSxbInBhdGgiLHtkOiJNOCAxNGguMDEifV0sWyJwYXRoIix7ZDoiTTEyIDE4aC4wMSJ9XSxbInBhdGgiLHtkOiJNOCAxOGguMDEifV1dLGhCdD1bWyJwYXRoIix7ZDoiTTExIDE0aDF2NCJ9XSxbInBhdGgiLHtkOiJNMTYgMnY0In1dLFsicGF0aCIse2Q6Ik0zIDEwaDE4In1dLFsicGF0aCIse2Q6Ik04IDJ2NCJ9XSxbInJlY3QiLHt4OiIzIix5OiI0Iix3aWR0aDoiMTgiLGhlaWdodDoiMTgiLHJ4OiIyIn1dXSxmQnQ9W1sicGF0aCIse2Q6Im0xNCAxOCA0IDQgNC00In1dLFsicGF0aCIse2Q6Ik0xNiAydjQifV0sWyJwYXRoIix7ZDoiTTE4IDE0djgifV0sWyJwYXRoIix7ZDoiTTIxIDExLjM1NFY2YTIgMiAwIDAgMC0yLTJINWEyIDIgMCAwIDAtMiAydjE0YTIgMiAwIDAgMCAyIDJoNy4zNDMifV0sWyJwYXRoIix7ZDoiTTMgMTBoMTgifV0sWyJwYXRoIix7ZDoiTTggMnY0In1dXSxtQnQ9W1sicGF0aCIse2Q6Im0xNCAxOCA0LTQgNCA0In1dLFsicGF0aCIse2Q6Ik0xNiAydjQifV0sWyJwYXRoIix7ZDoiTTE4IDIydi04In1dLFsicGF0aCIse2Q6Ik0yMSAxMS4zNDNWNmEyIDIgMCAwIDAtMi0ySDVhMiAyIDAgMCAwLTIgMnYxNGEyIDIgMCAwIDAgMiAyaDkifV0sWyJwYXRoIix7ZDoiTTMgMTBoMTgifV0sWyJwYXRoIix7ZDoiTTggMnY0In1dXSxnQnQ9W1sicGF0aCIse2Q6Ik04IDJ2NCJ9XSxbInBhdGgiLHtkOiJNMTYgMnY0In1dLFsicGF0aCIse2Q6Ik0yMSAxNFY2YTIgMiAwIDAgMC0yLTJINWEyIDIgMCAwIDAtMiAydjE0YTIgMiAwIDAgMCAyIDJoOCJ9XSxbInBhdGgiLHtkOiJNMyAxMGgxOCJ9XSxbInBhdGgiLHtkOiJtMTYgMjAgMiAyIDQtNCJ9XV0sYkJ0PVtbInBhdGgiLHtkOiJNOCAydjQifV0sWyJwYXRoIix7ZDoiTTE2IDJ2NCJ9XSxbInJlY3QiLHt3aWR0aDoiMTgiLGhlaWdodDoiMTgiLHg6IjMiLHk6IjQiLHJ4OiIyIn1dLFsicGF0aCIse2Q6Ik0zIDEwaDE4In1dLFsicGF0aCIse2Q6Im05IDE2IDIgMiA0LTQifV1dLHZCdD1bWyJwYXRoIix7ZDoiTTE2IDE0djIuMmwxLjYgMSJ9XSxbInBhdGgiLHtkOiJNMTYgMnY0In1dLFsicGF0aCIse2Q6Ik0yMSA3LjVWNmEyIDIgMCAwIDAtMi0ySDVhMiAyIDAgMCAwLTIgMnYxNGEyIDIgMCAwIDAgMiAyaDMuNSJ9XSxbInBhdGgiLHtkOiJNMyAxMGg1In1dLFsicGF0aCIse2Q6Ik04IDJ2NCJ9XSxbImNpcmNsZSIse2N4OiIxNiIsY3k6IjE2IixyOiI2In1dXSx4QnQ9W1sicGF0aCIse2Q6Im0xNS4yMjggMTYuODUyLS45MjMtLjM4MyJ9XSxbInBhdGgiLHtkOiJtMTUuMjI4IDE5LjE0OC0uOTIzLjM4MyJ9XSxbInBhdGgiLHtkOiJNMTYgMnY0In1dLFsicGF0aCIse2Q6Im0xNi40NyAxNC4zMDUuMzgyLjkyMyJ9XSxbInBhdGgiLHtkOiJtMTYuODUyIDIwLjc3Mi0uMzgzLjkyNCJ9XSxbInBhdGgiLHtkOiJtMTkuMTQ4IDE1LjIyOC4zODMtLjkyMyJ9XSxbInBhdGgiLHtkOiJtMTkuNTMgMjEuNjk2LS4zODItLjkyNCJ9XSxbInBhdGgiLHtkOiJtMjAuNzcyIDE2Ljg1Mi45MjQtLjM4MyJ9XSxbInBhdGgiLHtkOiJtMjAuNzcyIDE5LjE0OC45MjQuMzgzIn1dLFsicGF0aCIse2Q6Ik0yMSAxMC41OTJWNmEyIDIgMCAwIDAtMi0ySDVhMiAyIDAgMCAwLTIgMnYxNGEyIDIgMCAwIDAgMiAyaDYifV0sWyJwYXRoIix7ZDoiTTMgMTBoMTgifV0sWyJwYXRoIix7ZDoiTTggMnY0In1dLFsiY2lyY2xlIix7Y3g6IjE4IixjeToiMTgiLHI6IjMifV1dLHlCdD1bWyJwYXRoIix7ZDoiTTggMnY0In1dLFsicGF0aCIse2Q6Ik0xNiAydjQifV0sWyJyZWN0Iix7d2lkdGg6IjE4IixoZWlnaHQ6IjE4Iix4OiIzIix5OiI0IixyeDoiMiJ9XSxbInBhdGgiLHtkOiJNMyAxMGgxOCJ9XSxbInBhdGgiLHtkOiJNOCAxNGguMDEifV0sWyJwYXRoIix7ZDoiTTEyIDE0aC4wMSJ9XSxbInBhdGgiLHtkOiJNMTYgMTRoLjAxIn1dLFsicGF0aCIse2Q6Ik04IDE4aC4wMSJ9XSxbInBhdGgiLHtkOiJNMTIgMThoLjAxIn1dLFsicGF0aCIse2Q6Ik0xNiAxOGguMDEifV1dLHdCdD1bWyJwYXRoIix7ZDoiTTMgMjBhMiAyIDAgMCAwIDIgMmgxMGEyLjQgMi40IDAgMCAwIDEuNzA2LS43MDZsMy41ODgtMy41ODhBMi40IDIuNCAwIDAgMCAyMSAxNlY2YTIgMiAwIDAgMC0yLTJINWEyIDIgMCAwIDAtMiAyeiJ9XSxbInBhdGgiLHtkOiJNMTUgMjJ2LTVhMSAxIDAgMCAxIDEtMWg1In1dLFsicGF0aCIse2Q6Ik04IDJ2NCJ9XSxbInBhdGgiLHtkOiJNMTYgMnY0In1dLFsicGF0aCIse2Q6Ik0zIDEwaDE4In1dXSxNQnQ9W1sicGF0aCIse2Q6Ik0xMi4xMjcgMjJINWEyIDIgMCAwIDEtMi0yVjZhMiAyIDAgMCAxIDItMmgxNGEyIDIgMCAwIDEgMiAydjUuMTI1In1dLFsicGF0aCIse2Q6Ik0xNC42MiAxOC44QTIuMjUgMi4yNSAwIDEgMSAxOCAxNS44MzZhMi4yNSAyLjI1IDAgMSAxIDMuMzggMi45NjZsLTIuNjI2IDIuODU2YS45OTguOTk4IDAgMCAxLTEuNTA3IDB6In1dLFsicGF0aCIse2Q6Ik0xNiAydjQifV0sWyJwYXRoIix7ZDoiTTMgMTBoMTgifV0sWyJwYXRoIix7ZDoiTTggMnY0In1dXSxrQnQ9W1sicGF0aCIse2Q6Ik04IDJ2NCJ9XSxbInBhdGgiLHtkOiJNMTYgMnY0In1dLFsicmVjdCIse3dpZHRoOiIxOCIsaGVpZ2h0OiIxOCIseDoiMyIseToiNCIscng6IjIifV0sWyJwYXRoIix7ZDoiTTMgMTBoMTgifV0sWyJwYXRoIix7ZDoiTTEwIDE2aDQifV1dLFNCdD1bWyJwYXRoIix7ZDoiTTE2IDE5aDYifV0sWyJwYXRoIix7ZDoiTTE2IDJ2NCJ9XSxbInBhdGgiLHtkOiJNMjEgMTVWNmEyIDIgMCAwIDAtMi0ySDVhMiAyIDAgMCAwLTIgMnYxNGEyIDIgMCAwIDAgMiAyaDguNSJ9XSxbInBhdGgiLHtkOiJNMyAxMGgxOCJ9XSxbInBhdGgiLHtkOiJNOCAydjQifV1dLHpCdD1bWyJwYXRoIix7ZDoiTTQuMiA0LjJBMiAyIDAgMCAwIDMgNnYxNGEyIDIgMCAwIDAgMiAyaDE0YTIgMiAwIDAgMCAxLjgyLTEuMTgifV0sWyJwYXRoIix7ZDoiTTIxIDE1LjVWNmEyIDIgMCAwIDAtMi0ySDkuNSJ9XSxbInBhdGgiLHtkOiJNMTYgMnY0In1dLFsicGF0aCIse2Q6Ik0zIDEwaDcifV0sWyJwYXRoIix7ZDoiTTIxIDEwaC01LjUifV0sWyJwYXRoIix7ZDoibTIgMiAyMCAyMCJ9XV0sQ0J0PVtbInBhdGgiLHtkOiJNOCAydjQifV0sWyJwYXRoIix7ZDoiTTE2IDJ2NCJ9XSxbInJlY3QiLHt3aWR0aDoiMTgiLGhlaWdodDoiMTgiLHg6IjMiLHk6IjQiLHJ4OiIyIn1dLFsicGF0aCIse2Q6Ik0zIDEwaDE4In1dLFsicGF0aCIse2Q6Ik0xMCAxNmg0In1dLFsicGF0aCIse2Q6Ik0xMiAxNHY0In1dXSxUQnQ9W1sicGF0aCIse2Q6Ik0xNiAxOWg2In1dLFsicGF0aCIse2Q6Ik0xNiAydjQifV0sWyJwYXRoIix7ZDoiTTE5IDE2djYifV0sWyJwYXRoIix7ZDoiTTIxIDEyLjU5OFY2YTIgMiAwIDAgMC0yLTJINWEyIDIgMCAwIDAtMiAydjE0YTIgMiAwIDAgMCAyIDJoOC41In1dLFsicGF0aCIse2Q6Ik0zIDEwaDE4In1dLFsicGF0aCIse2Q6Ik04IDJ2NCJ9XV0sX0J0PVtbInJlY3QiLHt3aWR0aDoiMTgiLGhlaWdodDoiMTgiLHg6IjMiLHk6IjQiLHJ4OiIyIn1dLFsicGF0aCIse2Q6Ik0xNiAydjQifV0sWyJwYXRoIix7ZDoiTTMgMTBoMTgifV0sWyJwYXRoIix7ZDoiTTggMnY0In1dLFsicGF0aCIse2Q6Ik0xNyAxNGgtNiJ9XSxbInBhdGgiLHtkOiJNMTMgMThINyJ9XSxbInBhdGgiLHtkOiJNNyAxNGguMDEifV0sWyJwYXRoIix7ZDoiTTE3IDE4aC4wMSJ9XV0sTEJ0PVtbInBhdGgiLHtkOiJNMTYgMnY0In1dLFsicGF0aCIse2Q6Ik0yMSAxMS43NVY2YTIgMiAwIDAgMC0yLTJINWEyIDIgMCAwIDAtMiAydjE0YTIgMiAwIDAgMCAyIDJoNy4yNSJ9XSxbInBhdGgiLHtkOiJtMjIgMjItMS44NzUtMS44NzUifV0sWyJwYXRoIix7ZDoiTTMgMTBoMTgifV0sWyJwYXRoIix7ZDoiTTggMnY0In1dLFsiY2lyY2xlIix7Y3g6IjE4IixjeToiMTgiLHI6IjMifV1dLEFCdD1bWyJwYXRoIix7ZDoiTTExIDEwdjRoNCJ9XSxbInBhdGgiLHtkOiJtMTEgMTQgMS41MzUtMS42MDVhNSA1IDAgMCAxIDggMS41In1dLFsicGF0aCIse2Q6Ik0xNiAydjQifV0sWyJwYXRoIix7ZDoibTIxIDE4LTEuNTM1IDEuNjA1YTUgNSAwIDAgMS04LTEuNSJ9XSxbInBhdGgiLHtkOiJNMjEgMjJ2LTRoLTQifV0sWyJwYXRoIix7ZDoiTTIxIDguNVY2YTIgMiAwIDAgMC0yLTJINWEyIDIgMCAwIDAtMiAydjE0YTIgMiAwIDAgMCAyIDJoNC4zIn1dLFsicGF0aCIse2Q6Ik0zIDEwaDQifV0sWyJwYXRoIix7ZDoiTTggMnY0In1dXSxEQnQ9W1sicGF0aCIse2Q6Ik04IDJ2NCJ9XSxbInBhdGgiLHtkOiJNMTYgMnY0In1dLFsicGF0aCIse2Q6Ik0yMSAxM1Y2YTIgMiAwIDAgMC0yLTJINWEyIDIgMCAwIDAtMiAydjE0YTIgMiAwIDAgMCAyIDJoOCJ9XSxbInBhdGgiLHtkOiJNMyAxMGgxOCJ9XSxbInBhdGgiLHtkOiJtMTcgMjIgNS01In1dLFsicGF0aCIse2Q6Im0xNyAxNyA1IDUifV1dLEVCdD1bWyJwYXRoIix7ZDoiTTggMnY0In1dLFsicGF0aCIse2Q6Ik0xNiAydjQifV0sWyJyZWN0Iix7d2lkdGg6IjE4IixoZWlnaHQ6IjE4Iix4OiIzIix5OiI0IixyeDoiMiJ9XSxbInBhdGgiLHtkOiJNMyAxMGgxOCJ9XSxbInBhdGgiLHtkOiJtMTQgMTQtNCA0In1dLFsicGF0aCIse2Q6Im0xMCAxNCA0IDQifV1dLCRCdD1bWyJwYXRoIix7ZDoiTTggMnY0In1dLFsicGF0aCIse2Q6Ik0xNiAydjQifV0sWyJyZWN0Iix7d2lkdGg6IjE4IixoZWlnaHQ6IjE4Iix4OiIzIix5OiI0IixyeDoiMiJ9XSxbInBhdGgiLHtkOiJNMyAxMGgxOCJ9XV0sSUJ0PVtbInBhdGgiLHtkOiJNMTIgMnYyIn1dLFsicGF0aCIse2Q6Ik0xNS43MjYgMjEuMDFBMiAyIDAgMCAxIDE0IDIySDRhMiAyIDAgMCAxLTItMlYxMGEyIDIgMCAwIDEgMi0yIn1dLFsicGF0aCIse2Q6Ik0xOCAydjIifV0sWyJwYXRoIix7ZDoiTTIgMTNoMiJ9XSxbInBhdGgiLHtkOiJNOCA4aDE0In1dLFsicmVjdCIse3g6IjgiLHk6IjMiLHdpZHRoOiIxNCIsaGVpZ2h0OiIxNCIscng6IjIifV1dLFBCdD1bWyJwYXRoIix7ZDoiTTE0LjU2NCAxNC41NThhMyAzIDAgMSAxLTQuMTIyLTQuMTIxIn1dLFsicGF0aCIse2Q6Im0yIDIgMjAgMjAifV0sWyJwYXRoIix7ZDoiTTIwIDIwSDRhMiAyIDAgMCAxLTItMlY5YTIgMiAwIDAgMSAyLTJoMS45OTdhMiAyIDAgMCAwIC44MTktLjE3NSJ9XSxbInBhdGgiLHtkOiJNOS42OTUgNC4wMjRBMiAyIDAgMCAxIDEwLjAwNCA0aDMuOTkzYTIgMiAwIDAgMSAxLjc2IDEuMDVsLjQ4Ni45QTIgMiAwIDAgMCAxOC4wMDMgN0gyMGEyIDIgMCAwIDEgMiAydjcuMzQ0In1dXSxOQnQ9W1sicGF0aCIse2Q6Ik0xMy45OTcgNGEyIDIgMCAwIDEgMS43NiAxLjA1bC40ODYuOUEyIDIgMCAwIDAgMTguMDAzIDdIMjBhMiAyIDAgMCAxIDIgMnY5YTIgMiAwIDAgMS0yIDJINGEyIDIgMCAwIDEtMi0yVjlhMiAyIDAgMCAxIDItMmgxLjk5N2EyIDIgMCAwIDAgMS43NTktMS4wNDhsLjQ4OS0uOTA0QTIgMiAwIDAgMSAxMC4wMDQgNHoifV0sWyJjaXJjbGUiLHtjeDoiMTIiLGN5OiIxMyIscjoiMyJ9XV0sRkJ0PVtbInBhdGgiLHtkOiJNNS43IDIxYTIgMiAwIDAgMS0zLjUtMmw4LjYtMTRhNiA2IDAgMCAxIDEwLjQgNiAyIDIgMCAxIDEtMy40NjQtMiAyIDIgMCAxIDAtMy40NjQtMloifV0sWyJwYXRoIix7ZDoiTTE3Ljc1IDcgMTUgMi4xIn1dLFsicGF0aCIse2Q6Ik0xMC45IDQuOCAxMyA5In1dLFsicGF0aCIse2Q6Im03LjkgOS43IDIgNC40In1dLFsicGF0aCIse2Q6Ik00LjkgMTQuNyA3IDE4LjkifV1dLE9CdD1bWyJwYXRoIix7ZDoiTTEwIDEwdjcuOSJ9XSxbInBhdGgiLHtkOiJNMTEuODAyIDYuMTQ1YTUgNSAwIDAgMSA2LjA1MyA2LjA1MyJ9XSxbInBhdGgiLHtkOiJNMTQgNi4xdjIuMjQzIn1dLFsicGF0aCIse2Q6Im0xNS41IDE1LjU3MS0uOTY0Ljk2NGE1IDUgMCAwIDEtNy4wNzEgMCA1IDUgMCAwIDEgMC03LjA3bC45NjQtLjk2NSJ9XSxbInBhdGgiLHtkOiJNMTYgN1YzYTEgMSAwIDAgMSAxLjcwNy0uNzA3IDIuNSAyLjUgMCAwIDAgMi4xNTIuNzE3IDEgMSAwIDAgMSAxLjEzMSAxLjEzMSAyLjUgMi41IDAgMCAwIC43MTcgMi4xNTJBMSAxIDAgMCAxIDIxIDhoLTQifV0sWyJwYXRoIix7ZDoibTIgMiAyMCAyMCJ9XSxbInBhdGgiLHtkOiJNOCAxN3Y0YTEgMSAwIDAgMS0xLjcwNy43MDcgMi41IDIuNSAwIDAgMC0yLjE1Mi0uNzE3IDEgMSAwIDAgMS0xLjEzMS0xLjEzMSAyLjUgMi41IDAgMCAwLS43MTctMi4xNTJBMSAxIDAgMCAxIDMgMTZoNCJ9XV0sUkJ0PVtbInBhdGgiLHtkOiJNMTAgN3YxMC45In1dLFsicGF0aCIse2Q6Ik0xNCA2LjFWMTcifV0sWyJwYXRoIix7ZDoiTTE2IDdWM2ExIDEgMCAwIDEgMS43MDctLjcwNyAyLjUgMi41IDAgMCAwIDIuMTUyLjcxNyAxIDEgMCAwIDEgMS4xMzEgMS4xMzEgMi41IDIuNSAwIDAgMCAuNzE3IDIuMTUyQTEgMSAwIDAgMSAyMSA4aC00In1dLFsicGF0aCIse2Q6Ik0xNi41MzYgNy40NjVhNSA1IDAgMCAwLTcuMDcyIDBsLTIgMmE1IDUgMCAwIDAgMCA3LjA3IDUgNSAwIDAgMCA3LjA3MiAwbDItMmE1IDUgMCAwIDAgMC03LjA3In1dLFsicGF0aCIse2Q6Ik04IDE3djRhMSAxIDAgMCAxLTEuNzA3LjcwNyAyLjUgMi41IDAgMCAwLTIuMTUyLS43MTcgMSAxIDAgMCAxLTEuMTMxLTEuMTMxIDIuNSAyLjUgMCAwIDAtLjcxNy0yLjE1MkExIDEgMCAwIDEgMyAxNmg0In1dXSxCQnQ9W1sicGF0aCIse2Q6Ik0xMiAyMnYtNGMxLjUgMS41IDMuNSAzIDYgMyAwLTEuNS0uNS0zLjUtMi01In1dLFsicGF0aCIse2Q6Ik0xMy45ODggOC4zMjdDMTMuOTAyIDYuMDU0IDEzLjM2NSAzLjgyIDEyIDJhOS4zIDkuMyAwIDAgMC0xLjQ0NSAyLjkifV0sWyJwYXRoIix7ZDoiTTE3LjM3NSAxMS43MjVDMTguODgyIDEwLjUzIDIxIDcuODQxIDIxIDZjLTIuMzI0IDAtNS4wOCAxLjI5Ni02LjY2MiAyLjY4NCJ9XSxbInBhdGgiLHtkOiJtMiAyIDIwIDIwIn1dLFsicGF0aCIse2Q6Ik0yMS4wMjQgMTUuMzc4QTE1IDE1IDAgMCAwIDIyIDE1Yy0uNDI2LTEuMjc5LTIuNjctMi41NTctNC4yNS0yLjkwNyJ9XSxbInBhdGgiLHtkOiJNNi45OTUgNi45OTJDNS43MTQgNi40IDQuMjkgNiAzIDZjMCAyIDIuNSA1IDQgNi0xLjUgMC00LjUgMS41LTUgMyAzLjUgMS41IDYgMSA2IDEtMS41IDEuNS0yIDMuNS0yIDUgMi41IDAgNC41LTEuNSA2LTMifV1dLEhCdD1bWyJwYXRoIix7ZDoiTTEyIDIydi00In1dLFsicGF0aCIse2Q6Ik03IDEyYy0xLjUgMC00LjUgMS41LTUgMyAzLjUgMS41IDYgMSA2IDEtMS41IDEuNS0yIDMuNS0yIDUgMi41IDAgNC41LTEuNSA2LTMgMS41IDEuNSAzLjUgMyA2IDMgMC0xLjUtLjUtMy41LTItNSAwIDAgMi41LjUgNi0xLS41LTEuNS0zLjUtMy01LTMgMS41LTEgNC00IDQtNi0yLjUgMC01LjUgMS41LTcgMyAwLTIuNS0uNS01LTItNy0xLjUgMi0yIDQuNS0yIDctMS41LTEuNS00LjUtMy03LTMgMCAyIDIuNSA1IDQgNiJ9XV0scUJ0PVtbInBhdGgiLHtkOiJNMTAuNSA1SDE5YTIgMiAwIDAgMSAyIDJ2OC41In1dLFsicGF0aCIse2Q6Ik0xNyAxMWgtLjUifV0sWyJwYXRoIix7ZDoiTTE5IDE5SDVhMiAyIDAgMCAxLTItMlY3YTIgMiAwIDAgMSAyLTIifV0sWyJwYXRoIix7ZDoibTIgMiAyMCAyMCJ9XSxbInBhdGgiLHtkOiJNNyAxMWg0In1dLFsicGF0aCIse2Q6Ik03IDE1aDIuNSJ9XV0sQUU9W1sicmVjdCIse3dpZHRoOiIxOCIsaGVpZ2h0OiIxNCIseDoiMyIseToiNSIscng6IjIiLHJ5OiIyIn1dLFsicGF0aCIse2Q6Ik03IDE1aDRNMTUgMTVoMk03IDExaDJNMTMgMTFoNCJ9XV0sakJ0PVtbInBhdGgiLHtkOiJtMjEgOC0yIDItMS41LTMuN0EyIDIgMCAwIDAgMTUuNjQ2IDVIOC40YTIgMiAwIDAgMC0xLjkwMyAxLjI1N0w1IDEwIDMgOCJ9XSxbInBhdGgiLHtkOiJNNyAxNGguMDEifV0sWyJwYXRoIix7ZDoiTTE3IDE0aC4wMSJ9XSxbInJlY3QiLHt3aWR0aDoiMTgiLGhlaWdodDoiOCIseDoiMyIseToiMTAiLHJ4OiIyIn1dLFsicGF0aCIse2Q6Ik01IDE4djIifV0sWyJwYXRoIix7ZDoiTTE5IDE4djIifV1dLFZCdD1bWyJwYXRoIix7ZDoiTTEwIDJoNCJ9XSxbInBhdGgiLHtkOiJtMjEgOC0yIDItMS41LTMuN0EyIDIgMCAwIDAgMTUuNjQ2IDVIOC40YTIgMiAwIDAgMC0xLjkwMyAxLjI1N0w1IDEwIDMgOCJ9XSxbInBhdGgiLHtkOiJNNyAxNGguMDEifV0sWyJwYXRoIix7ZDoiTTE3IDE0aC4wMSJ9XSxbInJlY3QiLHt3aWR0aDoiMTgiLGhlaWdodDoiOCIseDoiMyIseToiMTAiLHJ4OiIyIn1dLFsicGF0aCIse2Q6Ik01IDE4djIifV0sWyJwYXRoIix7ZDoiTTE5IDE4djIifV1dLFVCdD1bWyJwYXRoIix7ZDoiTTE5IDE3aDJjLjYgMCAxLS40IDEtMXYtM2MwLS45LS43LTEuNy0xLjUtMS45QzE4LjcgMTAuNiAxNiAxMCAxNiAxMHMtMS4zLTEuNC0yLjItMi4zYy0uNS0uNC0xLjEtLjctMS44LS43SDVjLS42IDAtMS4xLjQtMS40LjlsLTEuNCAyLjlBMy43IDMuNyAwIDAgMCAyIDEydjRjMCAuNi40IDEgMSAxaDIifV0sWyJjaXJjbGUiLHtjeDoiNyIsY3k6IjE3IixyOiIyIn1dLFsicGF0aCIse2Q6Ik05IDE3aDYifV0sWyJjaXJjbGUiLHtjeDoiMTciLGN5OiIxNyIscjoiMiJ9XV0sV0J0PVtbInBhdGgiLHtkOiJNMTggMTlWOWE0IDQgMCAwIDAtNC00SDZhNCA0IDAgMCAwLTQgNHY4YTIgMiAwIDAgMCAyIDJoMiJ9XSxbInBhdGgiLHtkOiJNMiA5aDNhMSAxIDAgMCAxIDEgMXYyYTEgMSAwIDAgMS0xIDFIMiJ9XSxbInBhdGgiLHtkOiJNMjIgMTd2MWExIDEgMCAwIDEtMSAxSDEwdi05YTEgMSAwIDAgMSAxLTFoMmExIDEgMCAwIDEgMSAxdjkifV0sWyJjaXJjbGUiLHtjeDoiOCIsY3k6IjE5IixyOiIyIn1dXSxHQnQ9W1sicGF0aCIse2Q6Ik0xMiAxNHY0In1dLFsicGF0aCIse2Q6Ik0xNC4xNzIgMmEyIDIgMCAwIDEgMS40MTQuNTg2bDMuODI4IDMuODI4QTIgMiAwIDAgMSAyMCA3LjgyOFYyMGEyIDIgMCAwIDEtMiAySDZhMiAyIDAgMCAxLTItMlY0YTIgMiAwIDAgMSAyLTJ6In1dLFsicGF0aCIse2Q6Ik04IDE0aDgifV0sWyJyZWN0Iix7eDoiOCIseToiMTAiLHdpZHRoOiI4IixoZWlnaHQ6IjgiLHJ4OiIxIn1dXSxZQnQ9W1sicGF0aCIse2Q6Ik0yLjI3IDIxLjdzOS44Ny0zLjUgMTIuNzMtNi4zNmE0LjUgNC41IDAgMCAwLTYuMzYtNi4zN0M1Ljc3IDExLjg0IDIuMjcgMjEuNyAyLjI3IDIxLjd6TTguNjQgMTRsLTIuMDUtMi4wNE0xNS4zNCAxNWwtMi40Ni0yLjQ2In1dLFsicGF0aCIse2Q6Ik0yMiA5cy0xLjMzLTItMy41LTJDMTYuODYgNyAxNSA5IDE1IDlzMS4zMyAyIDMuNSAyUzIyIDkgMjIgOXoifV0sWyJwYXRoIix7ZDoiTTE1IDJzLTIgMS4zMy0yIDMuNVMxNSA5IDE1IDlzMi0xLjg0IDItMy41QzE3IDMuMzMgMTUgMiAxNSAyeiJ9XV0sWkJ0PVtbInBhdGgiLHtkOiJNMTAgOXY3In1dLFsicGF0aCIse2Q6Ik0xNCA2djEwIn1dLFsiY2lyY2xlIix7Y3g6IjE3LjUiLGN5OiIxMi41IixyOiIzLjUifV0sWyJjaXJjbGUiLHtjeDoiNi41IixjeToiMTIuNSIscjoiMy41In1dXSxYQnQ9W1sicGF0aCIse2Q6Im0yIDE2IDQuMDM5LTkuNjlhLjUuNSAwIDAgMSAuOTIzIDBMMTEgMTYifV0sWyJwYXRoIix7ZDoiTTIyIDl2NyJ9XSxbInBhdGgiLHtkOiJNMy4zMDQgMTNoNi4zOTIifV0sWyJjaXJjbGUiLHtjeDoiMTguNSIsY3k6IjEyLjUiLHI6IjMuNSJ9XV0sUUJ0PVtbInBhdGgiLHtkOiJNMTUgMTFoNC41YTEgMSAwIDAgMSAwIDVoLTRhLjUuNSAwIDAgMS0uNS0uNXYtOWEuNS41IDAgMCAxIC41LS41aDNhMSAxIDAgMCAxIDAgNSJ9XSxbInBhdGgiLHtkOiJtMiAxNiA0LjAzOS05LjY5YS41LjUgMCAwIDEgLjkyMyAwTDExIDE2In1dLFsicGF0aCIse2Q6Ik0zLjMwNCAxM2g2LjM5MiJ9XV0sSkJ0PVtbInJlY3QiLHt3aWR0aDoiMjAiLGhlaWdodDoiMTYiLHg6IjIiLHk6IjQiLHJ4OiIyIn1dLFsiY2lyY2xlIix7Y3g6IjgiLGN5OiIxMCIscjoiMiJ9XSxbInBhdGgiLHtkOiJNOCAxMmg4In1dLFsiY2lyY2xlIix7Y3g6IjE2IixjeToiMTAiLHI6IjIifV0sWyJwYXRoIix7ZDoibTYgMjAgLjctMi45QTEuNCAxLjQgMCAwIDEgOC4xIDE2aDcuOGExLjQgMS40IDAgMCAxIDEuNCAxbC43IDMifV1dLEtCdD1bWyJwYXRoIix7ZDoiTTIgOFY2YTIgMiAwIDAgMSAyLTJoMTZhMiAyIDAgMCAxIDIgMnYxMmEyIDIgMCAwIDEtMiAyaC02In1dLFsicGF0aCIse2Q6Ik0yIDEyYTkgOSAwIDAgMSA4IDgifV0sWyJwYXRoIix7ZDoiTTIgMTZhNSA1IDAgMCAxIDQgNCJ9XSxbImxpbmUiLHt4MToiMiIseDI6IjIuMDEiLHkxOiIyMCIseTI6IjIwIn1dXSxlSHQ9W1sicGF0aCIse2Q6Ik0xMCA1VjMifV0sWyJwYXRoIix7ZDoiTTE0IDVWMyJ9XSxbInBhdGgiLHtkOiJNMTUgMjF2LTNhMyAzIDAgMCAwLTYgMHYzIn1dLFsicGF0aCIse2Q6Ik0xOCAzdjgifV0sWyJwYXRoIix7ZDoiTTE4IDVINiJ9XSxbInBhdGgiLHtkOiJNMjIgMTFIMiJ9XSxbInBhdGgiLHtkOiJNMjIgOXYxMGEyIDIgMCAwIDEtMiAySDRhMiAyIDAgMCAxLTItMlY5In1dLFsicGF0aCIse2Q6Ik02IDN2OCJ9XV0sdEh0PVtbInBhdGgiLHtkOiJNMTIgNWMuNjcgMCAxLjM1LjA5IDIgLjI2IDEuNzgtMiA1LjAzLTIuODQgNi40Mi0yLjI2IDEuNC41OC0uNDIgNy0uNDIgNyAuNTcgMS4wNyAxIDIuMjQgMSAzLjQ0QzIxIDE3LjkgMTYuOTcgMjEgMTIgMjFzLTktMy05LTcuNTZjMC0xLjI1LjUtMi40IDEtMy40NCAwIDAtMS44OS02LjQyLS41LTcgMS4zOS0uNTggNC43Mi4yMyA2LjUgMi4yM0E5LjA0IDkuMDQgMCAwIDEgMTIgNVoifV0sWyJwYXRoIix7ZDoiTTggMTR2LjUifV0sWyJwYXRoIix7ZDoiTTE2IDE0di41In1dLFsicGF0aCIse2Q6Ik0xMS4yNSAxNi4yNWgxLjVMMTIgMTdsLS43NS0uNzVaIn1dXSxySHQ9W1sicGF0aCIse2Q6Ik0xNi43NSAxMmgzLjYzMmExIDEgMCAwIDEgLjg5NCAxLjQ0N2wtMi4wMzQgNC4wNjlhMSAxIDAgMCAxLTEuNzA4LjEzNGwtMi4xMjQtMi45NyJ9XSxbInBhdGgiLHtkOiJNMTcuMTA2IDkuMDUzYTEgMSAwIDAgMSAuNDQ3IDEuMzQxbC0zLjEwNiA2LjIxMWExIDEgMCAwIDEtMS4zNDIuNDQ3TDMuNjEgMTIuM2EyLjkyIDIuOTIgMCAwIDEtMS4zLTMuOTFMMy42OSA1LjZhMi45MiAyLjkyIDAgMCAxIDMuOTItMS4zeiJ9XSxbInBhdGgiLHtkOiJNMiAxOWgzLjc2YTIgMiAwIDAgMCAxLjgtMS4xTDkgMTUifV0sWyJwYXRoIix7ZDoiTTIgMjF2LTQifV0sWyJwYXRoIix7ZDoiTTcgOWguMDEifV1dLERFPVtbInBhdGgiLHtkOiJNMyAzdjE2YTIgMiAwIDAgMCAyIDJoMTYifV0sWyJwYXRoIix7ZDoiTTcgMTEuMjA3YS41LjUgMCAwIDEgLjE0Ni0uMzUzbDItMmEuNS41IDAgMCAxIC43MDggMGwzLjI5MiAzLjI5MmEuNS41IDAgMCAwIC43MDggMGw0LjI5Mi00LjI5MmEuNS41IDAgMCAxIC44NTQuMzUzVjE2YTEgMSAwIDAgMS0xIDFIOGExIDEgMCAwIDEtMS0xeiJ9XV0sRUU9W1sicGF0aCIse2Q6Ik0zIDN2MTZhMiAyIDAgMCAwIDIgMmgxNiJ9XSxbInJlY3QiLHt4OiI3Iix5OiIxMyIsd2lkdGg6IjkiLGhlaWdodDoiNCIscng6IjEifV0sWyJyZWN0Iix7eDoiNyIseToiNSIsd2lkdGg6IjEyIixoZWlnaHQ6IjQiLHJ4OiIxIn1dXSxpSHQ9W1sicGF0aCIse2Q6Ik0zIDN2MTZhMiAyIDAgMCAwIDIgMmgxNiJ9XSxbInBhdGgiLHtkOiJNNyAxMWg4In1dLFsicGF0aCIse2Q6Ik03IDE2aDMifV0sWyJwYXRoIix7ZDoiTTcgNmgxMiJ9XV0sYUh0PVtbInBhdGgiLHtkOiJNMyAzdjE2YTIgMiAwIDAgMCAyIDJoMTYifV0sWyJwYXRoIix7ZDoiTTcgMTFoOCJ9XSxbInBhdGgiLHtkOiJNNyAxNmgxMiJ9XSxbInBhdGgiLHtkOiJNNyA2aDMifV1dLG5IdD1bWyJwYXRoIix7ZDoiTTExIDEzdjQifV0sWyJwYXRoIix7ZDoiTTE1IDV2NCJ9XSxbInBhdGgiLHtkOiJNMyAzdjE2YTIgMiAwIDAgMCAyIDJoMTYifV0sWyJyZWN0Iix7eDoiNyIseToiMTMiLHdpZHRoOiI5IixoZWlnaHQ6IjQiLHJ4OiIxIn1dLFsicmVjdCIse3g6IjciLHk6IjUiLHdpZHRoOiIxMiIsaGVpZ2h0OiI0IixyeDoiMSJ9XV0sJEU9W1sicGF0aCIse2Q6Ik05IDV2NCJ9XSxbInJlY3QiLHt3aWR0aDoiNCIsaGVpZ2h0OiI2Iix4OiI3Iix5OiI5IixyeDoiMSJ9XSxbInBhdGgiLHtkOiJNOSAxNXYyIn1dLFsicGF0aCIse2Q6Ik0xNyAzdjIifV0sWyJyZWN0Iix7d2lkdGg6IjQiLGhlaWdodDoiOCIseDoiMTUiLHk6IjUiLHJ4OiIxIn1dLFsicGF0aCIse2Q6Ik0xNyAxM3YzIn1dLFsicGF0aCIse2Q6Ik0zIDN2MTZhMiAyIDAgMCAwIDIgMmgxNiJ9XV0sSUU9W1sicGF0aCIse2Q6Ik0zIDN2MTZhMiAyIDAgMCAwIDIgMmgxNiJ9XSxbInJlY3QiLHt4OiIxNSIseToiNSIsd2lkdGg6IjQiLGhlaWdodDoiMTIiLHJ4OiIxIn1dLFsicmVjdCIse3g6IjciLHk6IjgiLHdpZHRoOiI0IixoZWlnaHQ6IjkiLHJ4OiIxIn1dXSxvSHQ9W1sicGF0aCIse2Q6Ik0xMyAxN1Y5In1dLFsicGF0aCIse2Q6Ik0xOCAxN3YtMyJ9XSxbInBhdGgiLHtkOiJNMyAzdjE2YTIgMiAwIDAgMCAyIDJoMTYifV0sWyJwYXRoIix7ZDoiTTggMTdWNSJ9XV0sUEU9W1sicGF0aCIse2Q6Ik0zIDN2MTZhMiAyIDAgMCAwIDIgMmgxNiJ9XSxbInBhdGgiLHtkOiJNNyAxNmg4In1dLFsicGF0aCIse2Q6Ik03IDExaDEyIn1dLFsicGF0aCIse2Q6Ik03IDZoMyJ9XV0sTkU9W1sicGF0aCIse2Q6Ik0xMyAxN1Y5In1dLFsicGF0aCIse2Q6Ik0xOCAxN1Y1In1dLFsicGF0aCIse2Q6Ik0zIDN2MTZhMiAyIDAgMCAwIDIgMmgxNiJ9XSxbInBhdGgiLHtkOiJNOCAxN3YtMyJ9XV0sc0h0PVtbInBhdGgiLHtkOiJNMTEgMTNINyJ9XSxbInBhdGgiLHtkOiJNMTkgOWgtNCJ9XSxbInBhdGgiLHtkOiJNMyAzdjE2YTIgMiAwIDAgMCAyIDJoMTYifV0sWyJyZWN0Iix7eDoiMTUiLHk6IjUiLHdpZHRoOiI0IixoZWlnaHQ6IjEyIixyeDoiMSJ9XSxbInJlY3QiLHt4OiI3Iix5OiI4Iix3aWR0aDoiNCIsaGVpZ2h0OiI5IixyeDoiMSJ9XV0sRkU9W1sicGF0aCIse2Q6Ik0zIDN2MTZhMiAyIDAgMCAwIDIgMmgxNiJ9XSxbInBhdGgiLHtkOiJNMTggMTdWOSJ9XSxbInBhdGgiLHtkOiJNMTMgMTdWNSJ9XSxbInBhdGgiLHtkOiJNOCAxN3YtMyJ9XV0sbEh0PVtbInBhdGgiLHtkOiJNMTAgNmg4In1dLFsicGF0aCIse2Q6Ik0xMiAxNmg2In1dLFsicGF0aCIse2Q6Ik0zIDN2MTZhMiAyIDAgMCAwIDIgMmgxNiJ9XSxbInBhdGgiLHtkOiJNOCAxMWg3In1dXSxPRT1bWyJwYXRoIix7ZDoiTTMgM3YxNmEyIDIgMCAwIDAgMiAyaDE2In1dLFsicGF0aCIse2Q6Im0xOSA5LTUgNS00LTQtMyAzIn1dXSxjSHQ9W1sicGF0aCIse2Q6Im0xMy4xMSA3LjY2NCAxLjc4IDIuNjcyIn1dLFsicGF0aCIse2Q6Im0xNC4xNjIgMTIuNzg4LTMuMzI0IDEuNDI0In1dLFsicGF0aCIse2Q6Im0yMCA0LTYuMDYgMS41MTUifV0sWyJwYXRoIix7ZDoiTTMgM3YxNmEyIDIgMCAwIDAgMiAyaDE2In1dLFsiY2lyY2xlIix7Y3g6IjEyIixjeToiNiIscjoiMiJ9XSxbImNpcmNsZSIse2N4OiIxNiIsY3k6IjEyIixyOiIyIn1dLFsiY2lyY2xlIix7Y3g6IjkiLGN5OiIxNSIscjoiMiJ9XV0sZEh0PVtbInBhdGgiLHtkOiJNNSAyMVYzIn1dLFsicGF0aCIse2Q6Ik0xMiAyMVY5In1dLFsicGF0aCIse2Q6Ik0xOSAyMXYtNiJ9XV0sUkU9W1sicGF0aCIse2Q6Ik01IDIxdi02In1dLFsicGF0aCIse2Q6Ik0xMiAyMVY5In1dLFsicGF0aCIse2Q6Ik0xOSAyMVYzIn1dXSxCRT1bWyJwYXRoIix7ZDoiTTUgMjF2LTYifV0sWyJwYXRoIix7ZDoiTTEyIDIxVjMifV0sWyJwYXRoIix7ZDoiTTE5IDIxVjkifV1dLHVIdD1bWyJwYXRoIix7ZDoiTTEyIDE2djUifV0sWyJwYXRoIix7ZDoiTTE2IDE0djcifV0sWyJwYXRoIix7ZDoiTTIwIDEwdjExIn1dLFsicGF0aCIse2Q6Im0yMiAzLTguNjQ2IDguNjQ2YS41LjUgMCAwIDEtLjcwOCAwTDkuMzU0IDguMzU0YS41LjUgMCAwIDAtLjcwNyAwTDIgMTUifV0sWyJwYXRoIix7ZDoiTTQgMTh2MyJ9XSxbInBhdGgiLHtkOiJNOCAxNHY3In1dXSxIRT1bWyJwYXRoIix7ZDoiTTYgNWgxMiJ9XSxbInBhdGgiLHtkOiJNNCAxMmgxMCJ9XSxbInBhdGgiLHtkOiJNMTIgMTloOCJ9XV0scUU9W1sicGF0aCIse2Q6Ik0yMSAxMmMuNTUyIDAgMS4wMDUtLjQ0OS45NS0uOTk4YTEwIDEwIDAgMCAwLTguOTUzLTguOTUxYy0uNTUtLjA1NS0uOTk4LjM5OC0uOTk4Ljk1djhhMSAxIDAgMCAwIDEgMXoifV0sWyJwYXRoIix7ZDoiTTIxLjIxIDE1Ljg5QTEwIDEwIDAgMSAxIDggMi44MyJ9XV0sakU9W1siY2lyY2xlIix7Y3g6IjcuNSIsY3k6IjcuNSIscjoiLjUiLGZpbGw6ImN1cnJlbnRDb2xvciJ9XSxbImNpcmNsZSIse2N4OiIxOC41IixjeToiNS41IixyOiIuNSIsZmlsbDoiY3VycmVudENvbG9yIn1dLFsiY2lyY2xlIix7Y3g6IjExLjUiLGN5OiIxMS41IixyOiIuNSIsZmlsbDoiY3VycmVudENvbG9yIn1dLFsiY2lyY2xlIix7Y3g6IjcuNSIsY3k6IjE2LjUiLHI6Ii41IixmaWxsOiJjdXJyZW50Q29sb3IifV0sWyJjaXJjbGUiLHtjeDoiMTcuNSIsY3k6IjE0LjUiLHI6Ii41IixmaWxsOiJjdXJyZW50Q29sb3IifV0sWyJwYXRoIix7ZDoiTTMgM3YxNmEyIDIgMCAwIDAgMiAyaDE2In1dXSxwSHQ9W1sicGF0aCIse2Q6Ik0zIDN2MTZhMiAyIDAgMCAwIDIgMmgxNiJ9XSxbInBhdGgiLHtkOiJNNyAxNmMuNS0yIDEuNS03IDQtNyAyIDAgMiAzIDQgMyAyLjUgMCA0LjUtNSA1LTcifV1dLGhIdD1bWyJwYXRoIix7ZDoiTTIwIDRMOSAxNSJ9XSxbInBhdGgiLHtkOiJNMjEgMTlMMyAxOSJ9XSxbInBhdGgiLHtkOiJNOSAxNUw0IDEwIn1dXSxmSHQ9W1sicGF0aCIse2Q6Ik0xOCA2IDcgMTdsLTUtNSJ9XSxbInBhdGgiLHtkOiJtMjIgMTAtNy41IDcuNUwxMyAxNiJ9XV0sbUh0PVtbInBhdGgiLHtkOiJNMTcgMjFhMSAxIDAgMCAwIDEtMXYtNS4zNWMwLS40NTcuMzE2LS44NDQuNzI3LTEuMDQxYTQgNCAwIDAgMC0yLjEzNC03LjU4OSA1IDUgMCAwIDAtOS4xODYgMCA0IDQgMCAwIDAtMi4xMzQgNy41ODhjLjQxMS4xOTguNzI3LjU4NS43MjcgMS4wNDFWMjBhMSAxIDAgMCAwIDEgMVoifV0sWyJwYXRoIix7ZDoiTTYgMTdoMTIifV1dLGdIdD1bWyJwYXRoIix7ZDoiTTIgMTdhNSA1IDAgMCAwIDEwIDBjMC0yLjc2LTIuNS01LTUtMy0yLjUtMi01IC4yNC01IDNaIn1dLFsicGF0aCIse2Q6Ik0xMiAxN2E1IDUgMCAwIDAgMTAgMGMwLTIuNzYtMi41LTUtNS0zLTIuNS0yLTUgLjI0LTUgM1oifV0sWyJwYXRoIix7ZDoiTTcgMTRjMy4yMi0yLjkxIDQuMjktOC43NSA1LTEyIDEuNjYgMi4zOCA0Ljk0IDkgNSAxMiJ9XSxbInBhdGgiLHtkOiJNMjIgOWMtNC4yOSAwLTcuMTQtMi4zMy0xMC03IDUuNzEgMCAxMCA0LjY3IDEwIDdaIn1dXSxiSHQ9W1sicGF0aCIse2Q6Ik0yMCA2IDkgMTdsLTUtNSJ9XV0sdkh0PVtbInBhdGgiLHtkOiJNNSAyMGEyIDIgMCAwIDEgMi0yaDEwYTIgMiAwIDAgMSAyIDJ2MWExIDEgMCAwIDEtMSAxSDZhMSAxIDAgMCAxLTEtMXoifV0sWyJwYXRoIix7ZDoiTTE1IDE4YzEuNS0uNjE1IDMtMi40NjEgMy00LjkyM0MxOCA4Ljc2OSAxNC41IDQuNDYyIDEyIDIgOS41IDQuNDYyIDYgOC43NyA2IDEzLjA3NyA2IDE1LjUzOSA3LjUgMTcuMzg1IDkgMTgifV0sWyJwYXRoIix7ZDoibTE2IDctMi41IDIuNSJ9XSxbInBhdGgiLHtkOiJNOSAyaDYifV1dLHhIdD1bWyJwYXRoIix7ZDoiTTQgMjBhMiAyIDAgMCAxIDItMmgxMmEyIDIgMCAwIDEgMiAydjFhMSAxIDAgMCAxLTEgMUg1YTEgMSAwIDAgMS0xLTF6In1dLFsicGF0aCIse2Q6Im02LjcgMTgtMS0xQzQuMzUgMTUuNjgyIDMgMTQuMDkgMyAxMmE1IDUgMCAwIDEgNC45NS01YzEuNTg0IDAgMi43LjQ1NSA0LjA1IDEuODE4QzEzLjM1IDcuNDU1IDE0LjQ2NiA3IDE2LjA1IDdBNSA1IDAgMCAxIDIxIDEyYzAgMi4wODItMS4zNTkgMy42NzMtMi43IDVsLTEgMSJ9XSxbInBhdGgiLHtkOiJNMTAgNGg0In1dLFsicGF0aCIse2Q6Ik0xMiAydjYuODE4In1dXSx5SHQ9W1sicGF0aCIse2Q6Ik01IDIwYTIgMiAwIDAgMSAyLTJoMTBhMiAyIDAgMCAxIDIgMnYxYTEgMSAwIDAgMS0xIDFINmExIDEgMCAwIDEtMS0xeiJ9XSxbInBhdGgiLHtkOiJtMTQuNSAxMCAxLjUgOCJ9XSxbInBhdGgiLHtkOiJNNyAxMGgxMCJ9XSxbInBhdGgiLHtkOiJtOCAxOCAxLjUtOCJ9XSxbImNpcmNsZSIse2N4OiIxMiIsY3k6IjYiLHI6IjQifV1dLHdIdD1bWyJwYXRoIix7ZDoiTTQgMjBhMiAyIDAgMCAxIDItMmgxMmEyIDIgMCAwIDEgMiAydjFhMSAxIDAgMCAxLTEgMUg1YTEgMSAwIDAgMS0xLTF6In1dLFsicGF0aCIse2Q6Im0xMi40NzQgNS45NDMgMS41NjcgNS4zNGExIDEgMCAwIDAgMS43NS4zMjhsMi42MTYtMy40MDIifV0sWyJwYXRoIix7ZDoibTIwIDktMyA5In1dLFsicGF0aCIse2Q6Im01LjU5NCA4LjIwOSAyLjYxNSAzLjQwM2ExIDEgMCAwIDAgMS43NS0uMzI5bDEuNTY3LTUuMzQifV0sWyJwYXRoIix7ZDoiTTcgMTggNCA5In1dLFsiY2lyY2xlIix7Y3g6IjEyIixjeToiNCIscjoiMiJ9XSxbImNpcmNsZSIse2N4OiIyMCIsY3k6IjciLHI6IjIifV0sWyJjaXJjbGUiLHtjeDoiNCIsY3k6IjciLHI6IjIifV1dLE1IdD1bWyJwYXRoIix7ZDoiTTUgMjBhMiAyIDAgMCAxIDItMmgxMGEyIDIgMCAwIDEgMiAydjFhMSAxIDAgMCAxLTEgMUg2YTEgMSAwIDAgMS0xLTF6In1dLFsicGF0aCIse2Q6Ik0xNi41IDE4YzEtMiAyLjUtNSAyLjUtOWE3IDcgMCAwIDAtNy03SDYuNjM1YTEgMSAwIDAgMC0uNzY4IDEuNjRMNyA1bC0yLjMyIDUuODAyYTIgMiAwIDAgMCAuOTUgMi41MjZsMi44NyAxLjQ1NiJ9XSxbInBhdGgiLHtkOiJtMTUgNSAxLjQyNS0xLjQyNSJ9XSxbInBhdGgiLHtkOiJtMTcgOCAxLjUzLTEuNTMifV0sWyJwYXRoIix7ZDoiTTkuNzEzIDEyLjE4NSA3IDE4In1dXSxrSHQ9W1sicGF0aCIse2Q6Ik01IDIwYTIgMiAwIDAgMSAyLTJoMTBhMiAyIDAgMCAxIDIgMnYxYTEgMSAwIDAgMS0xIDFINmExIDEgMCAwIDEtMS0xeiJ9XSxbInBhdGgiLHtkOiJNMTAgMnYyIn1dLFsicGF0aCIse2Q6Ik0xNCAydjIifV0sWyJwYXRoIix7ZDoibTE3IDE4LTEtOSJ9XSxbInBhdGgiLHtkOiJNNiAydjVhMiAyIDAgMCAwIDIgMmg4YTIgMiAwIDAgMCAyLTJWMiJ9XSxbInBhdGgiLHtkOiJNNiA0aDEyIn1dLFsicGF0aCIse2Q6Im03IDE4IDEtOSJ9XV0sU0h0PVtbInBhdGgiLHtkOiJtNiA5IDYgNiA2LTYifV1dLHpIdD1bWyJwYXRoIix7ZDoibTE3IDE4LTYtNiA2LTYifV0sWyJwYXRoIix7ZDoiTTcgNnYxMiJ9XV0sQ0h0PVtbInBhdGgiLHtkOiJtNyAxOCA2LTYtNi02In1dLFsicGF0aCIse2Q6Ik0xNyA2djEyIn1dXSxUSHQ9W1sicGF0aCIse2Q6Im0xNSAxOC02LTYgNi02In1dXSxfSHQ9W1sicGF0aCIse2Q6Im05IDE4IDYtNi02LTYifV1dLExIdD1bWyJwYXRoIix7ZDoibTE4IDE1LTYtNi02IDYifV1dLEFIdD1bWyJwYXRoIix7ZDoibTcgMjAgNS01IDUgNSJ9XSxbInBhdGgiLHtkOiJtNyA0IDUgNSA1LTUifV1dLERIdD1bWyJwYXRoIix7ZDoibTcgNiA1IDUgNS01In1dLFsicGF0aCIse2Q6Im03IDEzIDUgNSA1LTUifV1dLEVIdD1bWyJwYXRoIix7ZDoiTTEyIDEyaC4wMSJ9XSxbInBhdGgiLHtkOiJNMTYgMTJoLjAxIn1dLFsicGF0aCIse2Q6Im0xNyA3IDUgNS01IDUifV0sWyJwYXRoIix7ZDoibTcgNy01IDUgNSA1In1dLFsicGF0aCIse2Q6Ik04IDEyaC4wMSJ9XV0sJEh0PVtbInBhdGgiLHtkOiJtOSA3LTUgNSA1IDUifV0sWyJwYXRoIix7ZDoibTE1IDcgNSA1LTUgNSJ9XV0sSUh0PVtbInBhdGgiLHtkOiJtMTEgMTctNS01IDUtNSJ9XSxbInBhdGgiLHtkOiJtMTggMTctNS01IDUtNSJ9XV0sUEh0PVtbInBhdGgiLHtkOiJtMjAgMTctNS01IDUtNSJ9XSxbInBhdGgiLHtkOiJtNCAxNyA1LTUtNS01In1dXSxOSHQ9W1sicGF0aCIse2Q6Im02IDE3IDUtNS01LTUifV0sWyJwYXRoIix7ZDoibTEzIDE3IDUtNS01LTUifV1dLEZIdD1bWyJwYXRoIix7ZDoibTE3IDExLTUtNS01IDUifV0sWyJwYXRoIix7ZDoibTE3IDE4LTUtNS01IDUifV1dLFZFPVtbInBhdGgiLHtkOiJNMTAuODggMjEuOTQgMTUuNDYgMTQifV0sWyJwYXRoIix7ZDoiTTIxLjE3IDhIMTIifV0sWyJwYXRoIix7ZDoiTTMuOTUgNi4wNiA4LjU0IDE0In1dLFsiY2lyY2xlIix7Y3g6IjEyIixjeToiMTIiLHI6IjEwIn1dLFsiY2lyY2xlIix7Y3g6IjEyIixjeToiMTIiLHI6IjQifV1dLE9IdD1bWyJwYXRoIix7ZDoibTcgMTUgNSA1IDUtNSJ9XSxbInBhdGgiLHtkOiJtNyA5IDUtNSA1IDUifV1dLFJIdD1bWyJwYXRoIix7ZDoiTTEyIDEySDNhMSAxIDAgMCAwLTEgMXYyYTEgMSAwIDAgMCAxIDFoMTMifV0sWyJwYXRoIix7ZDoiTTE4IDhjMC0yLjUtMi0yLjUtMi01In1dLFsicGF0aCIse2Q6Im0yIDIgMjAgMjAifV0sWyJwYXRoIix7ZDoiTTIxIDEyYTEgMSAwIDAgMSAxIDF2MmExIDEgMCAwIDEtLjUuODY2In1dLFsicGF0aCIse2Q6Ik0yMiA4YzAtMi41LTItMi41LTItNSJ9XSxbInBhdGgiLHtkOiJNNyAxMnY0In1dXSxCSHQ9W1sicGF0aCIse2Q6Ik0xMCA5aDQifV0sWyJwYXRoIix7ZDoiTTEyIDd2NSJ9XSxbInBhdGgiLHtkOiJNMTQgMjF2LTNhMiAyIDAgMCAwLTQgMHYzIn1dLFsicGF0aCIse2Q6Im0xOCA5IDMuNTIgMi4xNDdhMSAxIDAgMCAxIC40OC44NTRWMTlhMiAyIDAgMCAxLTIgMkg0YTIgMiAwIDAgMS0yLTJ2LTYuOTk5YTEgMSAwIDAgMSAuNDgtLjg1NEw2IDkifV0sWyJwYXRoIix7ZDoiTTYgMjFWN2ExIDEgMCAwIDEgLjM3Ni0uNzgybDUtMy45OTlhMSAxIDAgMCAxIDEuMjQ5LjAwMWw1IDRBMSAxIDAgMCAxIDE4IDd2MTQifV1dLEhIdD1bWyJwYXRoIix7ZDoiTTE3IDEySDNhMSAxIDAgMCAwLTEgMXYyYTEgMSAwIDAgMCAxIDFoMTQifV0sWyJwYXRoIix7ZDoiTTE4IDhjMC0yLjUtMi0yLjUtMi01In1dLFsicGF0aCIse2Q6Ik0yMSAxNmExIDEgMCAwIDAgMS0xdi0yYTEgMSAwIDAgMC0xLTEifV0sWyJwYXRoIix7ZDoiTTIyIDhjMC0yLjUtMi0yLjUtMi01In1dLFsicGF0aCIse2Q6Ik03IDEydjQifV1dLFVFPVtbImNpcmNsZSIse2N4OiIxMiIsY3k6IjEyIixyOiIxMCJ9XSxbImxpbmUiLHt4MToiMTIiLHgyOiIxMiIseTE6IjgiLHkyOiIxMiJ9XSxbImxpbmUiLHt4MToiMTIiLHgyOiIxMi4wMSIseTE6IjE2Iix5MjoiMTYifV1dLFdFPVtbImNpcmNsZSIse2N4OiIxMiIsY3k6IjEyIixyOiIxMCJ9XSxbInBhdGgiLHtkOiJNMTIgOHY4In1dLFsicGF0aCIse2Q6Im04IDEyIDQgNCA0LTQifV1dLEdFPVtbImNpcmNsZSIse2N4OiIxMiIsY3k6IjEyIixyOiIxMCJ9XSxbInBhdGgiLHtkOiJtMTIgOC00IDQgNCA0In1dLFsicGF0aCIse2Q6Ik0xNiAxMkg4In1dXSxZRT1bWyJwYXRoIix7ZDoiTTIgMTJhMTAgMTAgMCAxIDEgMTAgMTAifV0sWyJwYXRoIix7ZDoibTIgMjIgMTAtMTAifV0sWyJwYXRoIix7ZDoiTTggMjJIMnYtNiJ9XV0sWkU9W1sicGF0aCIse2Q6Ik0xMiAyMmExMCAxMCAwIDEgMSAxMC0xMCJ9XSxbInBhdGgiLHtkOiJNMjIgMjIgMTIgMTIifV0sWyJwYXRoIix7ZDoiTTIyIDE2djZoLTYifV1dLFhFPVtbInBhdGgiLHtkOiJNMiA4VjJoNiJ9XSxbInBhdGgiLHtkOiJtMiAyIDEwIDEwIn1dLFsicGF0aCIse2Q6Ik0xMiAyQTEwIDEwIDAgMSAxIDIgMTIifV1dLFFFPVtbInBhdGgiLHtkOiJNMjIgMTJBMTAgMTAgMCAxIDEgMTIgMiJ9XSxbInBhdGgiLHtkOiJNMjIgMiAxMiAxMiJ9XSxbInBhdGgiLHtkOiJNMTYgMmg2djYifV1dLEpFPVtbImNpcmNsZSIse2N4OiIxMiIsY3k6IjEyIixyOiIxMCJ9XSxbInBhdGgiLHtkOiJtMTIgMTYgNC00LTQtNCJ9XSxbInBhdGgiLHtkOiJNOCAxMmg4In1dXSxLRT1bWyJjaXJjbGUiLHtjeDoiMTIiLGN5OiIxMiIscjoiMTAifV0sWyJwYXRoIix7ZDoibTE2IDEyLTQtNC00IDQifV0sWyJwYXRoIix7ZDoiTTEyIDE2VjgifV1dLGUkPVtbInBhdGgiLHtkOiJNMjEuODAxIDEwQTEwIDEwIDAgMSAxIDE3IDMuMzM1In1dLFsicGF0aCIse2Q6Im05IDExIDMgM0wyMiA0In1dXSx0JD1bWyJjaXJjbGUiLHtjeDoiMTIiLGN5OiIxMiIscjoiMTAifV0sWyJwYXRoIix7ZDoibTkgMTIgMiAyIDQtNCJ9XV0sciQ9W1siY2lyY2xlIix7Y3g6IjEyIixjeToiMTIiLHI6IjEwIn1dLFsicGF0aCIse2Q6Im0xNiAxMC00IDQtNC00In1dXSxpJD1bWyJjaXJjbGUiLHtjeDoiMTIiLGN5OiIxMiIscjoiMTAifV0sWyJwYXRoIix7ZDoibTE0IDE2LTQtNCA0LTQifV1dLGEkPVtbImNpcmNsZSIse2N4OiIxMiIsY3k6IjEyIixyOiIxMCJ9XSxbInBhdGgiLHtkOiJtMTAgOCA0IDQtNCA0In1dXSxuJD1bWyJjaXJjbGUiLHtjeDoiMTIiLGN5OiIxMiIscjoiMTAifV0sWyJwYXRoIix7ZDoibTggMTQgNC00IDQgNCJ9XV0scUh0PVtbInBhdGgiLHtkOiJNMTAuMSAyLjE4MmExMCAxMCAwIDAgMSAzLjggMCJ9XSxbInBhdGgiLHtkOiJNMTMuOSAyMS44MThhMTAgMTAgMCAwIDEtMy44IDAifV0sWyJwYXRoIix7ZDoiTTE3LjYwOSAzLjcyMWExMCAxMCAwIDAgMSAyLjY5IDIuNyJ9XSxbInBhdGgiLHtkOiJNMi4xODIgMTMuOWExMCAxMCAwIDAgMSAwLTMuOCJ9XSxbInBhdGgiLHtkOiJNMjAuMjc5IDE3LjYwOWExMCAxMCAwIDAgMS0yLjcgMi42OSJ9XSxbInBhdGgiLHtkOiJNMjEuODE4IDEwLjFhMTAgMTAgMCAwIDEgMCAzLjgifV0sWyJwYXRoIix7ZDoiTTMuNzIxIDYuMzkxYTEwIDEwIDAgMCAxIDIuNy0yLjY5In1dLFsicGF0aCIse2Q6Ik02LjM5MSAyMC4yNzlhMTAgMTAgMCAwIDEtMi42OS0yLjcifV1dLG8kPVtbImxpbmUiLHt4MToiOCIseDI6IjE2Iix5MToiMTIiLHkyOiIxMiJ9XSxbImxpbmUiLHt4MToiMTIiLHgyOiIxMiIseTE6IjE2Iix5MjoiMTYifV0sWyJsaW5lIix7eDE6IjEyIix4MjoiMTIiLHkxOiI4Iix5MjoiOCJ9XSxbImNpcmNsZSIse2N4OiIxMiIsY3k6IjEyIixyOiIxMCJ9XV0sakh0PVtbImNpcmNsZSIse2N4OiIxMiIsY3k6IjEyIixyOiIxMCJ9XSxbInBhdGgiLHtkOiJNMTYgOGgtNmEyIDIgMCAxIDAgMCA0aDRhMiAyIDAgMSAxIDAgNEg4In1dLFsicGF0aCIse2Q6Ik0xMiAxOFY2In1dXSxWSHQ9W1sicGF0aCIse2Q6Ik0xMC4xIDIuMThhOS45MyA5LjkzIDAgMCAxIDMuOCAwIn1dLFsicGF0aCIse2Q6Ik0xNy42IDMuNzFhOS45NSA5Ljk1IDAgMCAxIDIuNjkgMi43In1dLFsicGF0aCIse2Q6Ik0yMS44MiAxMC4xYTkuOTMgOS45MyAwIDAgMSAwIDMuOCJ9XSxbInBhdGgiLHtkOiJNMjAuMjkgMTcuNmE5Ljk1IDkuOTUgMCAwIDEtMi43IDIuNjkifV0sWyJwYXRoIix7ZDoiTTEzLjkgMjEuODJhOS45NCA5Ljk0IDAgMCAxLTMuOCAwIn1dLFsicGF0aCIse2Q6Ik02LjQgMjAuMjlhOS45NSA5Ljk1IDAgMCAxLTIuNjktMi43In1dLFsicGF0aCIse2Q6Ik0yLjE4IDEzLjlhOS45MyA5LjkzIDAgMCAxIDAtMy44In1dLFsicGF0aCIse2Q6Ik0zLjcxIDYuNGE5Ljk1IDkuOTUgMCAwIDEgMi43LTIuNjkifV0sWyJjaXJjbGUiLHtjeDoiMTIiLGN5OiIxMiIscjoiMSJ9XV0sVUh0PVtbImNpcmNsZSIse2N4OiIxMiIsY3k6IjEyIixyOiIxMCJ9XSxbImNpcmNsZSIse2N4OiIxMiIsY3k6IjEyIixyOiIxIn1dXSxXSHQ9W1siY2lyY2xlIix7Y3g6IjEyIixjeToiMTIiLHI6IjEwIn1dLFsicGF0aCIse2Q6Ik0xNyAxMmguMDEifV0sWyJwYXRoIix7ZDoiTTEyIDEyaC4wMSJ9XSxbInBhdGgiLHtkOiJNNyAxMmguMDEifV1dLEdIdD1bWyJwYXRoIix7ZDoiTTcgMTBoMTAifV0sWyJwYXRoIix7ZDoiTTcgMTRoMTAifV0sWyJjaXJjbGUiLHtjeDoiMTIiLGN5OiIxMiIscjoiMTAifV1dLFlIdD1bWyJwYXRoIix7ZDoiTTEyIDJhMTAgMTAgMCAwIDEgNy4zOCAxNi43NSJ9XSxbInBhdGgiLHtkOiJtMTYgMTItNC00LTQgNCJ9XSxbInBhdGgiLHtkOiJNMTIgMTZWOCJ9XSxbInBhdGgiLHtkOiJNMi41IDguODc1YTEwIDEwIDAgMCAwLS41IDMifV0sWyJwYXRoIix7ZDoiTTIuODMgMTZhMTAgMTAgMCAwIDAgMi40MyAzLjQifV0sWyJwYXRoIix7ZDoiTTQuNjM2IDUuMjM1YTEwIDEwIDAgMCAxIC44OTEtLjg1NyJ9XSxbInBhdGgiLHtkOiJNOC42NDQgMjEuNDJhMTAgMTAgMCAwIDAgNy42MzEtLjM4In1dXSxaSHQ9W1sicGF0aCIse2Q6Ik0xMiAyYTEwIDEwIDAgMCAxIDcuMzggMTYuNzUifV0sWyJwYXRoIix7ZDoiTTEyIDh2OCJ9XSxbInBhdGgiLHtkOiJNMTYgMTJIOCJ9XSxbInBhdGgiLHtkOiJNMi41IDguODc1YTEwIDEwIDAgMCAwLS41IDMifV0sWyJwYXRoIix7ZDoiTTIuODMgMTZhMTAgMTAgMCAwIDAgMi40MyAzLjQifV0sWyJwYXRoIix7ZDoiTTQuNjM2IDUuMjM1YTEwIDEwIDAgMCAxIC44OTEtLjg1NyJ9XSxbInBhdGgiLHtkOiJNOC42NDQgMjEuNDJhMTAgMTAgMCAwIDAgNy42MzEtLjM4In1dXSxzJD1bWyJwYXRoIix7ZDoiTTE1LjYgMi43YTEwIDEwIDAgMSAwIDUuNyA1LjcifV0sWyJjaXJjbGUiLHtjeDoiMTIiLGN5OiIxMiIscjoiMiJ9XSxbInBhdGgiLHtkOiJNMTMuNCAxMC42IDE5IDUifV1dLGwkPVtbImNpcmNsZSIse2N4OiIxMiIsY3k6IjEyIixyOiIxMCJ9XSxbInBhdGgiLHtkOiJNOCAxMmg4In1dXSxjJD1bWyJwYXRoIix7ZDoiTTEyLjY1NiA3SDEzYTMgMyAwIDAgMSAyLjk4NCAzLjMwNyJ9XSxbInBhdGgiLHtkOiJNMTMgMTNIOSJ9XSxbInBhdGgiLHtkOiJNMTkuMDcxIDE5LjA3MUExIDEgMCAwIDEgNC45MyA0LjkzIn1dLFsicGF0aCIse2Q6Im0yIDIgMjAgMjAifV0sWyJwYXRoIix7ZDoiTTguMzU3IDIuNjg3YTEwIDEwIDAgMCAxIDEyLjk1NiAxMi45NTYifV0sWyJwYXRoIix7ZDoiTTkgMTdWOSJ9XV0sWEh0PVtbInBhdGgiLHtkOiJtMiAyIDIwIDIwIn1dLFsicGF0aCIse2Q6Ik04LjM1IDIuNjlBMTAgMTAgMCAwIDEgMjEuMyAxNS42NSJ9XSxbInBhdGgiLHtkOiJNMTkuMDggMTkuMDhBMTAgMTAgMCAxIDEgNC45MiA0LjkyIn1dXSxkJD1bWyJjaXJjbGUiLHtjeDoiMTIiLGN5OiIxMiIscjoiMTAifV0sWyJwYXRoIix7ZDoiTTkgMTdWN2g0YTMgMyAwIDAgMSAwIDZIOSJ9XV0sdSQ9W1siY2lyY2xlIix7Y3g6IjEyIixjeToiMTIiLHI6IjEwIn1dLFsibGluZSIse3gxOiIxMCIseDI6IjEwIix5MToiMTUiLHkyOiI5In1dLFsibGluZSIse3gxOiIxNCIseDI6IjE0Iix5MToiMTUiLHkyOiI5In1dXSxwJD1bWyJjaXJjbGUiLHtjeDoiMTIiLGN5OiIxMiIscjoiMTAifV0sWyJwYXRoIix7ZDoibTE1IDktNiA2In1dLFsicGF0aCIse2Q6Ik05IDloLjAxIn1dLFsicGF0aCIse2Q6Ik0xNSAxNWguMDEifV1dLGgkPVtbInBhdGgiLHtkOiJNOSA5LjAwM2ExIDEgMCAwIDEgMS41MTctLjg1OWw0Ljk5NyAyLjk5N2ExIDEgMCAwIDEgMCAxLjcxOGwtNC45OTcgMi45OTdBMSAxIDAgMCAxIDkgMTQuOTk2eiJ9XSxbImNpcmNsZSIse2N4OiIxMiIsY3k6IjEyIixyOiIxMCJ9XV0sUUh0PVtbImNpcmNsZSIse2N4OiIxMiIsY3k6IjE5IixyOiIyIn1dLFsiY2lyY2xlIix7Y3g6IjEyIixjeToiNSIscjoiMiJ9XSxbImNpcmNsZSIse2N4OiIxNiIsY3k6IjEyIixyOiIyIn1dLFsiY2lyY2xlIix7Y3g6IjIwIixjeToiMTkiLHI6IjIifV0sWyJjaXJjbGUiLHtjeDoiNCIsY3k6IjE5IixyOiIyIn1dLFsiY2lyY2xlIix7Y3g6IjgiLGN5OiIxMiIscjoiMiJ9XV0sZiQ9W1siY2lyY2xlIix7Y3g6IjEyIixjeToiMTIiLHI6IjEwIn1dLFsicGF0aCIse2Q6Ik04IDEyaDgifV0sWyJwYXRoIix7ZDoiTTEyIDh2OCJ9XV0sSkh0PVtbInBhdGgiLHtkOiJNMTAgMTZWOS41YTEgMSAwIDAgMSA1IDAifV0sWyJwYXRoIix7ZDoiTTggMTJoNCJ9XSxbInBhdGgiLHtkOiJNOCAxNmg3In1dLFsiY2lyY2xlIix7Y3g6IjEyIixjeToiMTIiLHI6IjEwIn1dXSxtJD1bWyJwYXRoIix7ZDoiTTEyIDd2NCJ9XSxbInBhdGgiLHtkOiJNNy45OTggOS4wMDNhNSA1IDAgMSAwIDgtLjAwNSJ9XSxbImNpcmNsZSIse2N4OiIxMiIsY3k6IjEyIixyOiIxMCJ9XV0scXA9W1siY2lyY2xlIix7Y3g6IjEyIixjeToiMTIiLHI6IjEwIn1dLFsicGF0aCIse2Q6Ik05LjA5IDlhMyAzIDAgMCAxIDUuODMgMWMwIDItMyAzLTMgMyJ9XSxbInBhdGgiLHtkOiJNMTIgMTdoLjAxIn1dXSxnJD1bWyJwYXRoIix7ZDoiTTIyIDIgMiAyMiJ9XSxbImNpcmNsZSIse2N4OiIxMiIsY3k6IjEyIixyOiIxMCJ9XV0sS0h0PVtbImNpcmNsZSIse2N4OiIxMiIsY3k6IjEyIixyOiIxMCJ9XSxbImxpbmUiLHt4MToiOSIseDI6IjE1Iix5MToiMTUiLHkyOiI5In1dXSxlcXQ9W1siY2lyY2xlIix7Y3g6IjEyIixjeToiMTIiLHI6IjYifV1dLHRxdD1bWyJwYXRoIix7ZDoiTTExLjA1MSA3LjYxNmExIDEgMCAwIDEgMS45MDkuMDI0bC43MzcgMS40NTJhMSAxIDAgMCAwIC43MzcuNTM1bDEuNjM0LjI1NmExIDEgMCAwIDEgLjU4OCAxLjgwNmwtMS4xNzIgMS4xNjhhMSAxIDAgMCAwLS4yODIuODY2bC4yNTkgMS42MTNhMSAxIDAgMCAxLTEuNTQxIDEuMTM0bC0xLjQ2NS0uNzVhMSAxIDAgMCAwLS45MTIgMGwtMS40NjUuNzVhMSAxIDAgMCAxLTEuNTM5LTEuMTMzbC4yNTgtMS42MTNhMSAxIDAgMCAwLS4yODItLjg2N2wtMS4xNTYtMS4xNTJhMSAxIDAgMCAxIC41NzItMS44MjJsMS42MzMtLjI1NmExIDEgMCAwIDAgLjczNy0uNTM1eiJ9XSxbImNpcmNsZSIse2N4OiIxMiIsY3k6IjEyIixyOiIxMCJ9XV0sYiQ9W1siY2lyY2xlIix7Y3g6IjEyIixjeToiMTIiLHI6IjEwIn1dLFsicmVjdCIse3g6IjkiLHk6IjkiLHdpZHRoOiI2IixoZWlnaHQ6IjYiLHJ4OiIxIn1dXSx2JD1bWyJwYXRoIix7ZDoiTTE4IDIwYTYgNiAwIDAgMC0xMiAwIn1dLFsiY2lyY2xlIix7Y3g6IjEyIixjeToiMTAiLHI6IjQifV0sWyJjaXJjbGUiLHtjeDoiMTIiLGN5OiIxMiIscjoiMTAifV1dLHgkPVtbImNpcmNsZSIse2N4OiIxMiIsY3k6IjEyIixyOiIxMCJ9XSxbImNpcmNsZSIse2N4OiIxMiIsY3k6IjEwIixyOiIzIn1dLFsicGF0aCIse2Q6Ik03IDIwLjY2MlYxOWEyIDIgMCAwIDEgMi0yaDZhMiAyIDAgMCAxIDIgMnYxLjY2MiJ9XV0seSQ9W1siY2lyY2xlIix7Y3g6IjEyIixjeToiMTIiLHI6IjEwIn1dLFsicGF0aCIse2Q6Im0xNSA5LTYgNiJ9XSxbInBhdGgiLHtkOiJtOSA5IDYgNiJ9XV0scnF0PVtbImNpcmNsZSIse2N4OiIxMiIsY3k6IjEyIixyOiIxMCJ9XV0saXF0PVtbInJlY3QiLHt3aWR0aDoiMTgiLGhlaWdodDoiMTgiLHg6IjMiLHk6IjMiLHJ4OiIyIn1dLFsicGF0aCIse2Q6Ik0xMSA5aDRhMiAyIDAgMCAwIDItMlYzIn1dLFsiY2lyY2xlIix7Y3g6IjkiLGN5OiI5IixyOiIyIn1dLFsicGF0aCIse2Q6Ik03IDIxdi00YTIgMiAwIDAgMSAyLTJoNCJ9XSxbImNpcmNsZSIse2N4OiIxNSIsY3k6IjE1IixyOiIyIn1dXSxhcXQ9W1sicGF0aCIse2Q6Ik0yMS42NiAxNy42N2ExLjA4IDEuMDggMCAwIDEtLjA0IDEuNkExMiAxMiAwIDAgMSA0LjczIDIuMzhhMS4xIDEuMSAwIDAgMSAxLjYxLS4wNHoifV0sWyJwYXRoIix7ZDoiTTE5LjY1IDE1LjY2QTggOCAwIDAgMSA4LjM1IDQuMzQifV0sWyJwYXRoIix7ZDoibTE0IDEwLTUuNSA1LjUifV0sWyJwYXRoIix7ZDoiTTE0IDE3Ljg1VjEwSDYuMTUifV1dLG5xdD1bWyJwYXRoIix7ZDoiTTIwLjIgNiAzIDExbC0uOS0yLjRjLS4zLTEuMS4zLTIuMiAxLjMtMi41bDEzLjUtNGMxLjEtLjMgMi4yLjMgMi41IDEuM1oifV0sWyJwYXRoIix7ZDoibTYuMiA1LjMgMy4xIDMuOSJ9XSxbInBhdGgiLHtkOiJtMTIuNCAzLjQgMy4xIDQifV0sWyJwYXRoIix7ZDoiTTMgMTFoMTh2OGEyIDIgMCAwIDEtMiAySDVhMiAyIDAgMCAxLTItMloifV1dLG9xdD1bWyJyZWN0Iix7d2lkdGg6IjgiLGhlaWdodDoiNCIseDoiOCIseToiMiIscng6IjEiLHJ5OiIxIn1dLFsicGF0aCIse2Q6Ik0xNiA0aDJhMiAyIDAgMCAxIDIgMnYxNGEyIDIgMCAwIDEtMiAySDZhMiAyIDAgMCAxLTItMlY2YTIgMiAwIDAgMSAyLTJoMiJ9XSxbInBhdGgiLHtkOiJtOSAxNCAyIDIgNC00In1dXSxzcXQ9W1sicGF0aCIse2Q6Ik0xNiAxNHYyLjJsMS42IDEifV0sWyJwYXRoIix7ZDoiTTE2IDRoMmEyIDIgMCAwIDEgMiAydi44MzIifV0sWyJwYXRoIix7ZDoiTTggNEg2YTIgMiAwIDAgMC0yIDJ2MTRhMiAyIDAgMCAwIDIgMmgyIn1dLFsiY2lyY2xlIix7Y3g6IjE2IixjeToiMTYiLHI6IjYifV0sWyJyZWN0Iix7eDoiOCIseToiMiIsd2lkdGg6IjgiLGhlaWdodDoiNCIscng6IjEifV1dLGxxdD1bWyJyZWN0Iix7d2lkdGg6IjgiLGhlaWdodDoiNCIseDoiOCIseToiMiIscng6IjEiLHJ5OiIxIn1dLFsicGF0aCIse2Q6Ik04IDRINmEyIDIgMCAwIDAtMiAydjE0YTIgMiAwIDAgMCAyIDJoMTJhMiAyIDAgMCAwIDItMnYtMiJ9XSxbInBhdGgiLHtkOiJNMTYgNGgyYTIgMiAwIDAgMSAyIDJ2NCJ9XSxbInBhdGgiLHtkOiJNMjEgMTRIMTEifV0sWyJwYXRoIix7ZDoibTE1IDEwLTQgNCA0IDQifV1dLGNxdD1bWyJyZWN0Iix7d2lkdGg6IjgiLGhlaWdodDoiNCIseDoiOCIseToiMiIscng6IjEiLHJ5OiIxIn1dLFsicGF0aCIse2Q6Ik0xNiA0aDJhMiAyIDAgMCAxIDIgMnYxNGEyIDIgMCAwIDEtMiAySDZhMiAyIDAgMCAxLTItMlY2YTIgMiAwIDAgMSAyLTJoMiJ9XSxbInBhdGgiLHtkOiJNMTIgMTFoNCJ9XSxbInBhdGgiLHtkOiJNMTIgMTZoNCJ9XSxbInBhdGgiLHtkOiJNOCAxMWguMDEifV0sWyJwYXRoIix7ZDoiTTggMTZoLjAxIn1dXSxkcXQ9W1sicmVjdCIse3dpZHRoOiI4IixoZWlnaHQ6IjQiLHg6IjgiLHk6IjIiLHJ4OiIxIixyeToiMSJ9XSxbInBhdGgiLHtkOiJNMTYgNGgyYTIgMiAwIDAgMSAyIDJ2MTRhMiAyIDAgMCAxLTIgMkg2YTIgMiAwIDAgMS0yLTJWNmEyIDIgMCAwIDEgMi0yaDIifV0sWyJwYXRoIix7ZDoiTTkgMTRoNiJ9XV0sdXF0PVtbInBhdGgiLHtkOiJNMTEgMTRoMTAifV0sWyJwYXRoIix7ZDoiTTE2IDRoMmEyIDIgMCAwIDEgMiAydjEuMzQ0In1dLFsicGF0aCIse2Q6Im0xNyAxOCA0LTQtNC00In1dLFsicGF0aCIse2Q6Ik04IDRINmEyIDIgMCAwIDAtMiAydjE0YTIgMiAwIDAgMCAyIDJoMTJhMiAyIDAgMCAwIDEuNzkzLTEuMTEzIn1dLFsicmVjdCIse3g6IjgiLHk6IjIiLHdpZHRoOiI4IixoZWlnaHQ6IjQiLHJ4OiIxIn1dXSx3JD1bWyJyZWN0Iix7d2lkdGg6IjgiLGhlaWdodDoiNCIseDoiOCIseToiMiIscng6IjEifV0sWyJwYXRoIix7ZDoiTTggNEg2YTIgMiAwIDAgMC0yIDJ2MTRhMiAyIDAgMCAwIDIgMmgxMmEyIDIgMCAwIDAgMi0ydi0uNSJ9XSxbInBhdGgiLHtkOiJNMTYgNGgyYTIgMiAwIDAgMSAxLjczIDEifV0sWyJwYXRoIix7ZDoiTTggMThoMSJ9XSxbInBhdGgiLHtkOiJNMjEuMzc4IDEyLjYyNmExIDEgMCAwIDAtMy4wMDQtMy4wMDRsLTQuMDEgNC4wMTJhMiAyIDAgMCAwLS41MDYuODU0bC0uODM3IDIuODdhLjUuNSAwIDAgMCAuNjIuNjJsMi44Ny0uODM3YTIgMiAwIDAgMCAuODU0LS41MDZ6In1dXSxNJD1bWyJyZWN0Iix7d2lkdGg6IjgiLGhlaWdodDoiNCIseDoiOCIseToiMiIscng6IjEifV0sWyJwYXRoIix7ZDoiTTE2IDRoMmEyIDIgMCAwIDEgMiAydjE0YTIgMiAwIDAgMS0yIDJoLTUuNSJ9XSxbInBhdGgiLHtkOiJNNCAxMy41VjZhMiAyIDAgMCAxIDItMmgyIn1dLFsicGF0aCIse2Q6Ik0xMy4zNzggMTUuNjI2YTEgMSAwIDEgMC0zLjAwNC0zLjAwNGwtNS4wMSA1LjAxMmEyIDIgMCAwIDAtLjUwNi44NTRsLS44MzcgMi44N2EuNS41IDAgMCAwIC42Mi42MmwyLjg3LS44MzdhMiAyIDAgMCAwIC44NTQtLjUwNnoifV1dLHBxdD1bWyJyZWN0Iix7d2lkdGg6IjgiLGhlaWdodDoiNCIseDoiOCIseToiMiIscng6IjEiLHJ5OiIxIn1dLFsicGF0aCIse2Q6Ik0xNiA0aDJhMiAyIDAgMCAxIDIgMnYxNGEyIDIgMCAwIDEtMiAySDZhMiAyIDAgMCAxLTItMlY2YTIgMiAwIDAgMSAyLTJoMiJ9XSxbInBhdGgiLHtkOiJNOSAxNGg2In1dLFsicGF0aCIse2Q6Ik0xMiAxN3YtNiJ9XV0saHF0PVtbInJlY3QiLHt3aWR0aDoiOCIsaGVpZ2h0OiI0Iix4OiI4Iix5OiIyIixyeDoiMSIscnk6IjEifV0sWyJwYXRoIix7ZDoiTTE2IDRoMmEyIDIgMCAwIDEgMiAydjE0YTIgMiAwIDAgMS0yIDJINmEyIDIgMCAwIDEtMi0yVjZhMiAyIDAgMCAxIDItMmgyIn1dLFsicGF0aCIse2Q6Ik05IDEydi0xaDZ2MSJ9XSxbInBhdGgiLHtkOiJNMTEgMTdoMiJ9XSxbInBhdGgiLHtkOiJNMTIgMTF2NiJ9XV0sZnF0PVtbInJlY3QiLHt3aWR0aDoiOCIsaGVpZ2h0OiI0Iix4OiI4Iix5OiIyIixyeDoiMSIscnk6IjEifV0sWyJwYXRoIix7ZDoiTTE2IDRoMmEyIDIgMCAwIDEgMiAydjE0YTIgMiAwIDAgMS0yIDJINmEyIDIgMCAwIDEtMi0yVjZhMiAyIDAgMCAxIDItMmgyIn1dLFsicGF0aCIse2Q6Im0xNSAxMS02IDYifV0sWyJwYXRoIix7ZDoibTkgMTEgNiA2In1dXSxtcXQ9W1sicGF0aCIse2Q6Ik0xMiA2djZsMi00In1dLFsiY2lyY2xlIix7Y3g6IjEyIixjeToiMTIiLHI6IjEwIn1dXSxncXQ9W1sicmVjdCIse3dpZHRoOiI4IixoZWlnaHQ6IjQiLHg6IjgiLHk6IjIiLHJ4OiIxIixyeToiMSJ9XSxbInBhdGgiLHtkOiJNMTYgNGgyYTIgMiAwIDAgMSAyIDJ2MTRhMiAyIDAgMCAxLTIgMkg2YTIgMiAwIDAgMS0yLTJWNmEyIDIgMCAwIDEgMi0yaDIifV1dLGJxdD1bWyJwYXRoIix7ZDoiTTEyIDZ2NmwtNC0yIn1dLFsiY2lyY2xlIix7Y3g6IjEyIixjeToiMTIiLHI6IjEwIn1dXSx2cXQ9W1sicGF0aCIse2Q6Ik0xMiA2djZsLTItNCJ9XSxbImNpcmNsZSIse2N4OiIxMiIsY3k6IjEyIixyOiIxMCJ9XV0seHF0PVtbInBhdGgiLHtkOiJNMTIgNnY2In1dLFsiY2lyY2xlIix7Y3g6IjEyIixjeToiMTIiLHI6IjEwIn1dXSx5cXQ9W1sicGF0aCIse2Q6Ik0xMiA2djZsNC0yIn1dLFsiY2lyY2xlIix7Y3g6IjEyIixjeToiMTIiLHI6IjEwIn1dXSx3cXQ9W1sicGF0aCIse2Q6Ik0xMiA2djZoNCJ9XSxbImNpcmNsZSIse2N4OiIxMiIsY3k6IjEyIixyOiIxMCJ9XV0sTXF0PVtbInBhdGgiLHtkOiJNMTIgNnY2bDQgMiJ9XSxbImNpcmNsZSIse2N4OiIxMiIsY3k6IjEyIixyOiIxMCJ9XV0sa3F0PVtbInBhdGgiLHtkOiJNMTIgNnY2bDIgNCJ9XSxbImNpcmNsZSIse2N4OiIxMiIsY3k6IjEyIixyOiIxMCJ9XV0sU3F0PVtbInBhdGgiLHtkOiJNMTIgNnYxMCJ9XSxbImNpcmNsZSIse2N4OiIxMiIsY3k6IjEyIixyOiIxMCJ9XV0senF0PVtbInBhdGgiLHtkOiJNMTIgNnY2bC0yIDQifV0sWyJjaXJjbGUiLHtjeDoiMTIiLGN5OiIxMiIscjoiMTAifV1dLENxdD1bWyJwYXRoIix7ZDoiTTEyIDZ2NmwtNCAyIn1dLFsiY2lyY2xlIix7Y3g6IjEyIixjeToiMTIiLHI6IjEwIn1dXSxUcXQ9W1sicGF0aCIse2Q6Ik0xMiA2djZIOCJ9XSxbImNpcmNsZSIse2N4OiIxMiIsY3k6IjEyIixyOiIxMCJ9XV0sX3F0PVtbInBhdGgiLHtkOiJNMTIgNnY2bDIgMSJ9XSxbInBhdGgiLHtkOiJNMTIuMzM3IDIxLjk5NGExMCAxMCAwIDEgMSA5LjU4OC04Ljc2NyJ9XSxbInBhdGgiLHtkOiJtMTQgMTggNCA0IDQtNCJ9XSxbInBhdGgiLHtkOiJNMTggMTR2OCJ9XV0sTHF0PVtbInBhdGgiLHtkOiJNMTIgNnY2bDQgMiJ9XSxbInBhdGgiLHtkOiJNMjAgMTJ2NSJ9XSxbInBhdGgiLHtkOiJNMjAgMjFoLjAxIn1dLFsicGF0aCIse2Q6Ik0yMS4yNSA4LjJBMTAgMTAgMCAxIDAgMTYgMjEuMTYifV1dLEFxdD1bWyJwYXRoIix7ZDoiTTEyIDZ2NmwxLjU2Ljc4In1dLFsicGF0aCIse2Q6Ik0xMy4yMjcgMjEuOTI1YTEwIDEwIDAgMSAxIDguNzY3LTkuNTg4In1dLFsicGF0aCIse2Q6Im0xNCAxOCA0LTQgNCA0In1dLFsicGF0aCIse2Q6Ik0xOCAyMnYtOCJ9XV0sRHF0PVtbInBhdGgiLHtkOiJNMTIgNnY2bDQgMiJ9XSxbInBhdGgiLHtkOiJNMjIgMTJhMTAgMTAgMCAxIDAtMTEgOS45NSJ9XSxbInBhdGgiLHtkOiJtMjIgMTYtNS41IDUuNUwxNCAxOSJ9XV0sRXF0PVtbInBhdGgiLHtkOiJNMTIgMmExMCAxMCAwIDAgMSA3LjM4IDE2Ljc1In1dLFsicGF0aCIse2Q6Ik0xMiA2djZsNCAyIn1dLFsicGF0aCIse2Q6Ik0yLjUgOC44NzVhMTAgMTAgMCAwIDAtLjUgMyJ9XSxbInBhdGgiLHtkOiJNMi44MyAxNmExMCAxMCAwIDAgMCAyLjQzIDMuNCJ9XSxbInBhdGgiLHtkOiJNNC42MzYgNS4yMzVhMTAgMTAgMCAwIDEgLjg5MS0uODU3In1dLFsicGF0aCIse2Q6Ik04LjY0NCAyMS40MmExMCAxMCAwIDAgMCA3LjYzMS0uMzgifV1dLCRxdD1bWyJwYXRoIix7ZDoiTTEyIDZ2NmwzLjY0NCAxLjgyMiJ9XSxbInBhdGgiLHtkOiJNMTYgMTloNiJ9XSxbInBhdGgiLHtkOiJNMTkgMTZ2NiJ9XSxbInBhdGgiLHtkOiJNMjEuOTIgMTMuMjY3YTEwIDEwIDAgMSAwLTguNjUzIDguNjUzIn1dXSxJcXQ9W1sicGF0aCIse2Q6Ik0xMiA2djZsNCAyIn1dLFsiY2lyY2xlIix7Y3g6IjEyIixjeToiMTIiLHI6IjEwIn1dXSxQcXQ9W1sicGF0aCIse2Q6Ik0xMCA5LjE3YTMgMyAwIDEgMCAwIDUuNjYifV0sWyJwYXRoIix7ZDoiTTE3IDkuMTdhMyAzIDAgMSAwIDAgNS42NiJ9XSxbInJlY3QiLHt4OiIyIix5OiI1Iix3aWR0aDoiMjAiLGhlaWdodDoiMTQiLHJ4OiIyIn1dXSxOcXQ9W1sicGF0aCIse2Q6Ik0xMiAxMnY0In1dLFsicGF0aCIse2Q6Ik0xMiAyMGguMDEifV0sWyJwYXRoIix7ZDoiTTguMTI4IDE2Ljk0OUE3IDcgMCAxIDEgMTUuNzEgOGgxLjc5YTEgMSAwIDAgMSAwIDloLTEuNjQyIn1dXSxGcXQ9W1sicGF0aCIse2Q6Ik0yMSAxNS4yNTFBNC41IDQuNSAwIDAgMCAxNy41IDhoLTEuNzlBNyA3IDAgMSAwIDMgMTMuNjA3In1dLFsicGF0aCIse2Q6Ik03IDExdjRoNCJ9XSxbInBhdGgiLHtkOiJNOCAxOWE1IDUgMCAwIDAgOS0zIDQuNSA0LjUgMCAwIDAtNC41LTQuNSA0LjgyIDQuODIgMCAwIDAtMy40MSAxLjQxTDcgMTUifV1dLE9xdD1bWyJwYXRoIix7ZDoibTE3IDE1LTUuNSA1LjVMOSAxOCJ9XSxbInBhdGgiLHtkOiJNNS41MTYgMTYuMDdBNyA3IDAgMSAxIDE1LjcxIDhoMS43OWE0LjUgNC41IDAgMCAxIDMuNTAxIDcuMzI3In1dXSxScXQ9W1sicGF0aCIse2Q6Im0xMC44NTIgMTkuNzcyLS4zODMuOTI0In1dLFsicGF0aCIse2Q6Im0xMy4xNDggMTQuMjI4LjM4My0uOTIzIn1dLFsicGF0aCIse2Q6Ik0xMy4xNDggMTkuNzcyYTMgMyAwIDEgMC0yLjI5Ni01LjU0NGwtLjM4My0uOTIzIn1dLFsicGF0aCIse2Q6Im0xMy41MyAyMC42OTYtLjM4Mi0uOTI0YTMgMyAwIDEgMS0yLjI5Ni01LjU0NCJ9XSxbInBhdGgiLHtkOiJtMTQuNzcyIDE1Ljg1Mi45MjMtLjM4MyJ9XSxbInBhdGgiLHtkOiJtMTQuNzcyIDE4LjE0OC45MjMuMzgzIn1dLFsicGF0aCIse2Q6Ik00LjIgMTUuMWE3IDcgMCAxIDEgOS45My05Ljg1OEE3IDcgMCAwIDEgMTUuNzEgOGgxLjc5YTQuNSA0LjUgMCAwIDEgMi41IDguMiJ9XSxbInBhdGgiLHtkOiJtOS4yMjggMTUuODUyLS45MjMtLjM4MyJ9XSxbInBhdGgiLHtkOiJtOS4yMjggMTguMTQ4LS45MjMuMzgzIn1dXSxrJD1bWyJwYXRoIix7ZDoiTTEyIDEzdjhsLTQtNCJ9XSxbInBhdGgiLHtkOiJtMTIgMjEgNC00In1dLFsicGF0aCIse2Q6Ik00LjM5MyAxNS4yNjlBNyA3IDAgMSAxIDE1LjcxIDhoMS43OWE0LjUgNC41IDAgMCAxIDIuNDM2IDguMjg0In1dXSxCcXQ9W1sicGF0aCIse2Q6Ik00IDE0Ljg5OUE3IDcgMCAxIDEgMTUuNzEgOGgxLjc5YTQuNSA0LjUgMCAwIDEgMi41IDguMjQyIn1dLFsicGF0aCIse2Q6Ik04IDE5djEifV0sWyJwYXRoIix7ZDoiTTggMTR2MSJ9XSxbInBhdGgiLHtkOiJNMTYgMTl2MSJ9XSxbInBhdGgiLHtkOiJNMTYgMTR2MSJ9XSxbInBhdGgiLHtkOiJNMTIgMjF2MSJ9XSxbInBhdGgiLHtkOiJNMTIgMTZ2MSJ9XV0sSHF0PVtbInBhdGgiLHtkOiJNNCAxNC44OTlBNyA3IDAgMSAxIDE1LjcxIDhoMS43OWE0LjUgNC41IDAgMCAxIDIuNSA4LjI0MiJ9XSxbInBhdGgiLHtkOiJNMTYgMTdINyJ9XSxbInBhdGgiLHtkOiJNMTcgMjFIOSJ9XV0scXF0PVtbInBhdGgiLHtkOiJNNCAxNC44OTlBNyA3IDAgMSAxIDE1LjcxIDhoMS43OWE0LjUgNC41IDAgMCAxIDIuNSA4LjI0MiJ9XSxbInBhdGgiLHtkOiJNMTYgMTR2MiJ9XSxbInBhdGgiLHtkOiJNOCAxNHYyIn1dLFsicGF0aCIse2Q6Ik0xNiAyMGguMDEifV0sWyJwYXRoIix7ZDoiTTggMjBoLjAxIn1dLFsicGF0aCIse2Q6Ik0xMiAxNnYyIn1dLFsicGF0aCIse2Q6Ik0xMiAyMmguMDEifV1dLGpxdD1bWyJwYXRoIix7ZDoiTTExIDIwdjIifV0sWyJwYXRoIix7ZDoiTTE4LjM3NiAxNC41MTJhNiA2IDAgMCAwIDMuNDYxLTQuMTI3Yy4xNDgtLjYyNS0uNjU5LS45Ny0xLjI0OC0uNzE0YTQgNCAwIDAgMS01LjI1OS01LjI2Yy4yNTUtLjU4OS0uMDktMS4zOTUtLjcxNi0xLjI0OGE2IDYgMCAwIDAtNC41OTQgNS4zNiJ9XSxbInBhdGgiLHtkOiJNMyAyMGE1IDUgMCAxIDEgOC45LTRIMTNhMyAzIDAgMCAxIDIgNS4yNCJ9XSxbInBhdGgiLHtkOiJNNyAxOXYyIn1dXSxWcXQ9W1sicGF0aCIse2Q6Ik02IDE2LjMyNkE3IDcgMCAxIDEgMTUuNzEgOGgxLjc5YTQuNSA0LjUgMCAwIDEgLjUgOC45NzMifV0sWyJwYXRoIix7ZDoibTEzIDEyLTMgNWg0bC0zIDUifV1dLFVxdD1bWyJwYXRoIix7ZDoiTTEzIDE2YTMgMyAwIDAgMSAwIDZIN2E1IDUgMCAxIDEgNC45LTZ6In1dLFsicGF0aCIse2Q6Ik0xOC4zNzYgMTQuNTEyYTYgNiAwIDAgMCAzLjQ2MS00LjEyN2MuMTQ4LS42MjUtLjY1OS0uOTctMS4yNDgtLjcxNGE0IDQgMCAwIDEtNS4yNTktNS4yNmMuMjU1LS41ODktLjA5LTEuMzk1LS43MTYtMS4yNDhhNiA2IDAgMCAwLTQuNTk0IDUuMzYifV1dLFdxdD1bWyJwYXRoIix7ZDoiTTEwLjk0IDUuMjc0QTcgNyAwIDAgMSAxNS43MSAxMGgxLjc5YTQuNSA0LjUgMCAwIDEgNC4yMjIgNi4wNTcifV0sWyJwYXRoIix7ZDoiTTE4Ljc5NiAxOC44MUE0LjUgNC41IDAgMCAxIDE3LjUgMTlIOUE3IDcgMCAwIDEgNS43OSA1Ljc4In1dLFsicGF0aCIse2Q6Im0yIDIgMjAgMjAifV1dLEdxdD1bWyJwYXRoIix7ZDoiTTQgMTQuODk5QTcgNyAwIDEgMSAxNS43MSA4aDEuNzlhNC41IDQuNSAwIDAgMSAyLjUgOC4yNDIifV0sWyJwYXRoIix7ZDoibTkuMiAyMiAzLTcifV0sWyJwYXRoIix7ZDoibTkgMTMtMyA3In1dLFsicGF0aCIse2Q6Im0xNyAxMy0zIDcifV1dLFlxdD1bWyJwYXRoIix7ZDoiTTQgMTQuODk5QTcgNyAwIDEgMSAxNS43MSA4aDEuNzlhNC41IDQuNSAwIDAgMSAyLjUgOC4yNDIifV0sWyJwYXRoIix7ZDoiTTE2IDE0djYifV0sWyJwYXRoIix7ZDoiTTggMTR2NiJ9XSxbInBhdGgiLHtkOiJNMTIgMTZ2NiJ9XV0sWnF0PVtbInBhdGgiLHtkOiJNNCAxNC44OTlBNyA3IDAgMSAxIDE1LjcxIDhoMS43OWE0LjUgNC41IDAgMCAxIDIuNSA4LjI0MiJ9XSxbInBhdGgiLHtkOiJNOCAxNWguMDEifV0sWyJwYXRoIix7ZDoiTTggMTloLjAxIn1dLFsicGF0aCIse2Q6Ik0xMiAxN2guMDEifV0sWyJwYXRoIix7ZDoiTTEyIDIxaC4wMSJ9XSxbInBhdGgiLHtkOiJNMTYgMTVoLjAxIn1dLFsicGF0aCIse2Q6Ik0xNiAxOWguMDEifV1dLFhxdD1bWyJwYXRoIix7ZDoiTTEyIDJ2MiJ9XSxbInBhdGgiLHtkOiJtNC45MyA0LjkzIDEuNDEgMS40MSJ9XSxbInBhdGgiLHtkOiJNMjAgMTJoMiJ9XSxbInBhdGgiLHtkOiJtMTkuMDcgNC45My0xLjQxIDEuNDEifV0sWyJwYXRoIix7ZDoiTTE1Ljk0NyAxMi42NWE0IDQgMCAwIDAtNS45MjUtNC4xMjgifV0sWyJwYXRoIix7ZDoiTTMgMjBhNSA1IDAgMSAxIDguOS00SDEzYTMgMyAwIDAgMSAyIDUuMjQifV0sWyJwYXRoIix7ZDoiTTExIDIwdjIifV0sWyJwYXRoIix7ZDoiTTcgMTl2MiJ9XV0sUXF0PVtbInBhdGgiLHtkOiJNMTIgMnYyIn1dLFsicGF0aCIse2Q6Im00LjkzIDQuOTMgMS40MSAxLjQxIn1dLFsicGF0aCIse2Q6Ik0yMCAxMmgyIn1dLFsicGF0aCIse2Q6Im0xOS4wNyA0LjkzLTEuNDEgMS40MSJ9XSxbInBhdGgiLHtkOiJNMTUuOTQ3IDEyLjY1YTQgNCAwIDAgMC01LjkyNS00LjEyOCJ9XSxbInBhdGgiLHtkOiJNMTMgMjJIN2E1IDUgMCAxIDEgNC45LTZIMTNhMyAzIDAgMCAxIDAgNloifV1dLEpxdD1bWyJwYXRoIix7ZDoibTE3IDE4LTEuNTM1IDEuNjA1YTUgNSAwIDAgMS04LTEuNSJ9XSxbInBhdGgiLHtkOiJNMTcgMjJ2LTRoLTQifV0sWyJwYXRoIix7ZDoiTTIwLjk5NiAxNS4yNTFBNC41IDQuNSAwIDAgMCAxNy40OTUgOGgtMS43OWE3IDcgMCAxIDAtMTIuNzA5IDUuNjA3In1dLFsicGF0aCIse2Q6Ik03IDEwdjRoNCJ9XSxbInBhdGgiLHtkOiJtNyAxNCAxLjUzNS0xLjYwNWE1IDUgMCAwIDEgOCAxLjUifV1dLFMkPVtbInBhdGgiLHtkOiJNMTIgMTN2OCJ9XSxbInBhdGgiLHtkOiJNNCAxNC44OTlBNyA3IDAgMSAxIDE1LjcxIDhoMS43OWE0LjUgNC41IDAgMCAxIDIuNSA4LjI0MiJ9XSxbInBhdGgiLHtkOiJtOCAxNyA0LTQgNCA0In1dXSxLcXQ9W1sicGF0aCIse2Q6Ik0xNy41IDE5SDlhNyA3IDAgMSAxIDYuNzEtOWgxLjc5YTQuNSA0LjUgMCAxIDEgMCA5WiJ9XV0sZWp0PVtbInBhdGgiLHtkOiJNMTcuNSAxMmExIDEgMCAxIDEgMCA5SDkuMDA2YTcgNyAwIDEgMSA2LjcwMi05eiJ9XSxbInBhdGgiLHtkOiJNMjEuODMyIDlBMyAzIDAgMCAwIDE5IDdoLTIuMjA3YTUuNSA1LjUgMCAwIDAtMTAuNzIuNjEifV1dLHRqdD1bWyJwYXRoIix7ZDoiTTE2LjE3IDcuODMgMiAyMiJ9XSxbInBhdGgiLHtkOiJNNC4wMiAxMmEyLjgyNyAyLjgyNyAwIDEgMSAzLjgxLTQuMTdBMi44MjcgMi44MjcgMCAxIDEgMTIgNC4wMmEyLjgyNyAyLjgyNyAwIDEgMSA0LjE3IDMuODFBMi44MjcgMi44MjcgMCAxIDEgMTkuOTggMTJhMi44MjcgMi44MjcgMCAxIDEtMy44MSA0LjE3QTIuODI3IDIuODI3IDAgMSAxIDEyIDE5Ljk4YTIuODI3IDIuODI3IDAgMSAxLTQuMTctMy44MUExIDEgMCAxIDEgNCAxMiJ9XSxbInBhdGgiLHtkOiJtNy44MyA3LjgzIDguMzQgOC4zNCJ9XV0scmp0PVtbInBhdGgiLHtkOiJNMTcuMjggOS4wNWE1LjUgNS41IDAgMSAwLTEwLjU2IDBBNS41IDUuNSAwIDEgMCAxMiAxNy42NmE1LjUgNS41IDAgMSAwIDUuMjgtOC42WiJ9XSxbInBhdGgiLHtkOiJNMTIgMTcuNjZMMTIgMjIifV1dLHokPVtbInBhdGgiLHtkOiJtMTggMTYgNC00LTQtNCJ9XSxbInBhdGgiLHtkOiJtNiA4LTQgNCA0IDQifV0sWyJwYXRoIix7ZDoibTE0LjUgNC01IDE2In1dXSxpanQ9W1sicGF0aCIse2Q6Im0xNiAxOCA2LTYtNi02In1dLFsicGF0aCIse2Q6Im04IDYtNiA2IDYgNiJ9XV0sYWp0PVtbInBvbHlnb24iLHtwb2ludHM6IjEyIDIgMjIgOC41IDIyIDE1LjUgMTIgMjIgMiAxNS41IDIgOC41IDEyIDIifV0sWyJsaW5lIix7eDE6IjEyIix4MjoiMTIiLHkxOiIyMiIseTI6IjE1LjUifV0sWyJwb2x5bGluZSIse3BvaW50czoiMjIgOC41IDEyIDE1LjUgMiA4LjUifV0sWyJwb2x5bGluZSIse3BvaW50czoiMiAxNS41IDEyIDguNSAyMiAxNS41In1dLFsibGluZSIse3gxOiIxMiIseDI6IjEyIix5MToiMiIseTI6IjguNSJ9XV0sbmp0PVtbInBhdGgiLHtkOiJNMjEgMTZWOGEyIDIgMCAwIDAtMS0xLjczbC03LTRhMiAyIDAgMCAwLTIgMGwtNyA0QTIgMiAwIDAgMCAzIDh2OGEyIDIgMCAwIDAgMSAxLjczbDcgNGEyIDIgMCAwIDAgMiAwbDctNEEyIDIgMCAwIDAgMjEgMTZ6In1dLFsicG9seWxpbmUiLHtwb2ludHM6IjcuNSA0LjIxIDEyIDYuODEgMTYuNSA0LjIxIn1dLFsicG9seWxpbmUiLHtwb2ludHM6IjcuNSAxOS43OSA3LjUgMTQuNiAzIDEyIn1dLFsicG9seWxpbmUiLHtwb2ludHM6IjIxIDEyIDE2LjUgMTQuNiAxNi41IDE5Ljc5In1dLFsicG9seWxpbmUiLHtwb2ludHM6IjMuMjcgNi45NiAxMiAxMi4wMSAyMC43MyA2Ljk2In1dLFsibGluZSIse3gxOiIxMiIseDI6IjEyIix5MToiMjIuMDgiLHkyOiIxMiJ9XV0sb2p0PVtbInBhdGgiLHtkOiJNMTAgMnYyIn1dLFsicGF0aCIse2Q6Ik0xNCAydjIifV0sWyJwYXRoIix7ZDoiTTE2IDhhMSAxIDAgMCAxIDEgMXY4YTQgNCAwIDAgMS00IDRIN2E0IDQgMCAwIDEtNC00VjlhMSAxIDAgMCAxIDEtMWgxNGE0IDQgMCAxIDEgMCA4aC0xIn1dLFsicGF0aCIse2Q6Ik02IDJ2MiJ9XV0sc2p0PVtbInBhdGgiLHtkOiJNMTEgMTAuMjcgNyAzLjM0In1dLFsicGF0aCIse2Q6Im0xMSAxMy43My00IDYuOTMifV0sWyJwYXRoIix7ZDoiTTEyIDIydi0yIn1dLFsicGF0aCIse2Q6Ik0xMiAydjIifV0sWyJwYXRoIix7ZDoiTTE0IDEyaDgifV0sWyJwYXRoIix7ZDoibTE3IDIwLjY2LTEtMS43MyJ9XSxbInBhdGgiLHtkOiJtMTcgMy4zNC0xIDEuNzMifV0sWyJwYXRoIix7ZDoiTTIgMTJoMiJ9XSxbInBhdGgiLHtkOiJtMjAuNjYgMTctMS43My0xIn1dLFsicGF0aCIse2Q6Im0yMC42NiA3LTEuNzMgMSJ9XSxbInBhdGgiLHtkOiJtMy4zNCAxNyAxLjczLTEifV0sWyJwYXRoIix7ZDoibTMuMzQgNyAxLjczIDEifV0sWyJjaXJjbGUiLHtjeDoiMTIiLGN5OiIxMiIscjoiMiJ9XSxbImNpcmNsZSIse2N4OiIxMiIsY3k6IjEyIixyOiI4In1dXSxsanQ9W1siY2lyY2xlIix7Y3g6IjgiLGN5OiI4IixyOiI2In1dLFsicGF0aCIse2Q6Ik0xOC4wOSAxMC4zN0E2IDYgMCAxIDEgMTAuMzQgMTgifV0sWyJwYXRoIix7ZDoiTTcgNmgxdjQifV0sWyJwYXRoIix7ZDoibTE2LjcxIDEzLjg4LjcuNzEtMi44MiAyLjgyIn1dXSxDJD1bWyJyZWN0Iix7d2lkdGg6IjE4IixoZWlnaHQ6IjE4Iix4OiIzIix5OiIzIixyeDoiMiJ9XSxbInBhdGgiLHtkOiJNMTIgM3YxOCJ9XV0sanA9W1sicGF0aCIse2Q6Ik0xMC41IDIxSDVhMiAyIDAgMCAxLTItMlY1YTIgMiAwIDAgMSAyLTJoMTRhMiAyIDAgMCAxIDIgMnY1LjUifV0sWyJwYXRoIix7ZDoibTE0LjMgMTkuNiAxLS40In1dLFsicGF0aCIse2Q6Ik0xNSAzdjcuNSJ9XSxbInBhdGgiLHtkOiJtMTUuMiAxNi45LS45LS4zIn1dLFsicGF0aCIse2Q6Im0xNi42IDIxLjcuMy0uOSJ9XSxbInBhdGgiLHtkOiJtMTYuOCAxNS4zLS40LTEifV0sWyJwYXRoIix7ZDoibTE5LjEgMTUuMi4zLS45In1dLFsicGF0aCIse2Q6Im0xOS42IDIxLjctLjQtMSJ9XSxbInBhdGgiLHtkOiJtMjAuNyAxNi44IDEtLjQifV0sWyJwYXRoIix7ZDoibTIxLjcgMTkuNC0uOS0uMyJ9XSxbInBhdGgiLHtkOiJNOSAzdjE4In1dLFsiY2lyY2xlIix7Y3g6IjE4IixjeToiMTgiLHI6IjMifV1dLFQkPVtbInJlY3QiLHt3aWR0aDoiMTgiLGhlaWdodDoiMTgiLHg6IjMiLHk6IjMiLHJ4OiIyIn1dLFsicGF0aCIse2Q6Ik05IDN2MTgifV0sWyJwYXRoIix7ZDoiTTE1IDN2MTgifV1dLGNqdD1bWyJyZWN0Iix7d2lkdGg6IjE4IixoZWlnaHQ6IjE4Iix4OiIzIix5OiIzIixyeDoiMiJ9XSxbInBhdGgiLHtkOiJNNy41IDN2MTgifV0sWyJwYXRoIix7ZDoiTTEyIDN2MTgifV0sWyJwYXRoIix7ZDoiTTE2LjUgM3YxOCJ9XV0sZGp0PVtbInBhdGgiLHtkOiJNMTQgM2ExIDEgMCAwIDEgMSAxdjVhMSAxIDAgMCAxLTEgMSJ9XSxbInBhdGgiLHtkOiJNMTkgM2ExIDEgMCAwIDEgMSAxdjVhMSAxIDAgMCAxLTEgMSJ9XSxbInBhdGgiLHtkOiJtNyAxNSAzIDMifV0sWyJwYXRoIix7ZDoibTcgMjEgMy0zSDVhMiAyIDAgMCAxLTItMnYtMiJ9XSxbInJlY3QiLHt4OiIxNCIseToiMTQiLHdpZHRoOiI3IixoZWlnaHQ6IjciLHJ4OiIxIn1dLFsicmVjdCIse3g6IjMiLHk6IjMiLHdpZHRoOiI3IixoZWlnaHQ6IjciLHJ4OiIxIn1dXSx1anQ9W1sicGF0aCIse2Q6Ik0xNSA2djEyYTMgMyAwIDEgMCAzLTNINmEzIDMgMCAxIDAgMyAzVjZhMyAzIDAgMSAwLTMgM2gxMmEzIDMgMCAxIDAtMy0zIn1dXSxwanQ9W1sicGF0aCIse2Q6Im0xNi4yNCA3Ljc2LTEuODA0IDUuNDExYTIgMiAwIDAgMS0xLjI2NSAxLjI2NUw3Ljc2IDE2LjI0bDEuODA0LTUuNDExYTIgMiAwIDAgMSAxLjI2NS0xLjI2NXoifV0sWyJjaXJjbGUiLHtjeDoiMTIiLGN5OiIxMiIscjoiMTAifV1dLGhqdD1bWyJwYXRoIix7ZDoiTTE1LjUzNiAxMS4yOTNhMSAxIDAgMCAwIDAgMS40MTRsMi4zNzYgMi4zNzdhMSAxIDAgMCAwIDEuNDE0IDBsMi4zNzctMi4zNzdhMSAxIDAgMCAwIDAtMS40MTRsLTIuMzc3LTIuMzc3YTEgMSAwIDAgMC0xLjQxNCAweiJ9XSxbInBhdGgiLHtkOiJNMi4yOTcgMTEuMjkzYTEgMSAwIDAgMCAwIDEuNDE0bDIuMzc3IDIuMzc3YTEgMSAwIDAgMCAxLjQxNCAwbDIuMzc3LTIuMzc3YTEgMSAwIDAgMCAwLTEuNDE0TDYuMDg4IDguOTE2YTEgMSAwIDAgMC0xLjQxNCAweiJ9XSxbInBhdGgiLHtkOiJNOC45MTYgMTcuOTEyYTEgMSAwIDAgMCAwIDEuNDE1bDIuMzc3IDIuMzc2YTEgMSAwIDAgMCAxLjQxNCAwbDIuMzc3LTIuMzc2YTEgMSAwIDAgMCAwLTEuNDE1bC0yLjM3Ny0yLjM3NmExIDEgMCAwIDAtMS40MTQgMHoifV0sWyJwYXRoIix7ZDoiTTguOTE2IDQuNjc0YTEgMSAwIDAgMCAwIDEuNDE0bDIuMzc3IDIuMzc2YTEgMSAwIDAgMCAxLjQxNCAwbDIuMzc3LTIuMzc2YTEgMSAwIDAgMCAwLTEuNDE0bC0yLjM3Ny0yLjM3N2ExIDEgMCAwIDAtMS40MTQgMHoifV1dLGZqdD1bWyJyZWN0Iix7d2lkdGg6IjE0IixoZWlnaHQ6IjgiLHg6IjUiLHk6IjIiLHJ4OiIyIn1dLFsicmVjdCIse3dpZHRoOiIyMCIsaGVpZ2h0OiI4Iix4OiIyIix5OiIxNCIscng6IjIifV0sWyJwYXRoIix7ZDoiTTYgMThoMiJ9XSxbInBhdGgiLHtkOiJNMTIgMThoNiJ9XV0sbWp0PVtbInBhdGgiLHtkOiJNMyAyMGExIDEgMCAwIDEtMS0xdi0xYTIgMiAwIDAgMSAyLTJoMTZhMiAyIDAgMCAxIDIgMnYxYTEgMSAwIDAgMS0xIDFaIn1dLFsicGF0aCIse2Q6Ik0yMCAxNmE4IDggMCAxIDAtMTYgMCJ9XSxbInBhdGgiLHtkOiJNMTIgNHY0In1dLFsicGF0aCIse2Q6Ik0xMCA0aDQifV1dLGdqdD1bWyJwYXRoIix7ZDoibTIwLjkgMTguNTUtOC0xNS45OGExIDEgMCAwIDAtMS44IDBsLTggMTUuOTgifV0sWyJlbGxpcHNlIix7Y3g6IjEyIixjeToiMTkiLHJ4OiI5IixyeToiMyJ9XV0sXyQ9W1sicGF0aCIse2Q6Ik0xNiAydjIifV0sWyJwYXRoIix7ZDoiTTE3LjkxNSAyMmE2IDYgMCAwIDAtMTIgMCJ9XSxbInBhdGgiLHtkOiJNOCAydjIifV0sWyJjaXJjbGUiLHtjeDoiMTIiLGN5OiIxMiIscjoiNCJ9XSxbInJlY3QiLHt4OiIzIix5OiI0Iix3aWR0aDoiMTgiLGhlaWdodDoiMTgiLHJ4OiIyIn1dXSxianQ9W1sicmVjdCIse3g6IjIiLHk6IjYiLHdpZHRoOiIyMCIsaGVpZ2h0OiI4IixyeDoiMSJ9XSxbInBhdGgiLHtkOiJNMTcgMTR2NyJ9XSxbInBhdGgiLHtkOiJNNyAxNHY3In1dLFsicGF0aCIse2Q6Ik0xNyAzdjMifV0sWyJwYXRoIix7ZDoiTTcgM3YzIn1dLFsicGF0aCIse2Q6Ik0xMCAxNCAyLjMgNi4zIn1dLFsicGF0aCIse2Q6Im0xNCA2IDcuNyA3LjcifV0sWyJwYXRoIix7ZDoibTggNiA4IDgifV1dLHZqdD1bWyJwYXRoIix7ZDoiTTE2IDJ2MiJ9XSxbInBhdGgiLHtkOiJNNyAyMnYtMmEyIDIgMCAwIDEgMi0yaDZhMiAyIDAgMCAxIDIgMnYyIn1dLFsicGF0aCIse2Q6Ik04IDJ2MiJ9XSxbImNpcmNsZSIse2N4OiIxMiIsY3k6IjExIixyOiIzIn1dLFsicmVjdCIse3g6IjMiLHk6IjQiLHdpZHRoOiIxOCIsaGVpZ2h0OiIxOCIscng6IjIifV1dLHhqdD1bWyJwYXRoIix7ZDoiTTIyIDcuN2MwLS42LS40LTEuMi0uOC0xLjVsLTYuMy0zLjlhMS43MiAxLjcyIDAgMCAwLTEuNyAwbC0xMC4zIDZjLS41LjItLjkuOC0uOSAxLjR2Ni42YzAgLjUuNCAxLjIuOCAxLjVsNi4zIDMuOWExLjcyIDEuNzIgMCAwIDAgMS43IDBsMTAuMy02Yy41LS4zLjktMSAuOS0xLjVaIn1dLFsicGF0aCIse2Q6Ik0xMCAyMS45VjE0TDIuMSA5LjEifV0sWyJwYXRoIix7ZDoibTEwIDE0IDExLjktNi45In1dLFsicGF0aCIse2Q6Ik0xNCAxOS44di04LjEifV0sWyJwYXRoIix7ZDoiTTE4IDE3LjVWOS40In1dXSx5anQ9W1sicGF0aCIse2Q6Ik0xMiAyYTEwIDEwIDAgMSAwIDEwIDEwIDQgNCAwIDAgMS01LTUgNCA0IDAgMCAxLTUtNSJ9XSxbInBhdGgiLHtkOiJNOC41IDguNXYuMDEifV0sWyJwYXRoIix7ZDoiTTE2IDE1LjV2LjAxIn1dLFsicGF0aCIse2Q6Ik0xMiAxMnYuMDEifV0sWyJwYXRoIix7ZDoiTTExIDE3di4wMSJ9XSxbInBhdGgiLHtkOiJNNyAxNHYuMDEifV1dLHdqdD1bWyJjaXJjbGUiLHtjeDoiMTIiLGN5OiIxMiIscjoiMTAifV0sWyJwYXRoIix7ZDoiTTEyIDE4YTYgNiAwIDAgMCAwLTEydjEyeiJ9XV0sTWp0PVtbInBhdGgiLHtkOiJNMiAxMmgyMCJ9XSxbInBhdGgiLHtkOiJNMjAgMTJ2OGEyIDIgMCAwIDEtMiAySDZhMiAyIDAgMCAxLTItMnYtOCJ9XSxbInBhdGgiLHtkOiJtNCA4IDE2LTQifV0sWyJwYXRoIix7ZDoibTguODYgNi43OC0uNDUtMS44MWEyIDIgMCAwIDEgMS40NS0yLjQzbDEuOTQtLjQ4YTIgMiAwIDAgMSAyLjQzIDEuNDZsLjQ1IDEuOCJ9XV0sa2p0PVtbInBhdGgiLHtkOiJtMTIgMTUgMiAyIDQtNCJ9XSxbInJlY3QiLHt3aWR0aDoiMTQiLGhlaWdodDoiMTQiLHg6IjgiLHk6IjgiLHJ4OiIyIixyeToiMiJ9XSxbInBhdGgiLHtkOiJNNCAxNmMtMS4xIDAtMi0uOS0yLTJWNGMwLTEuMS45LTIgMi0yaDEwYzEuMSAwIDIgLjkgMiAyIn1dXSxTanQ9W1sibGluZSIse3gxOiIxMiIseDI6IjE4Iix5MToiMTUiLHkyOiIxNSJ9XSxbInJlY3QiLHt3aWR0aDoiMTQiLGhlaWdodDoiMTQiLHg6IjgiLHk6IjgiLHJ4OiIyIixyeToiMiJ9XSxbInBhdGgiLHtkOiJNNCAxNmMtMS4xIDAtMi0uOS0yLTJWNGMwLTEuMS45LTIgMi0yaDEwYzEuMSAwIDIgLjkgMiAyIn1dXSx6anQ9W1sibGluZSIse3gxOiIxNSIseDI6IjE1Iix5MToiMTIiLHkyOiIxOCJ9XSxbImxpbmUiLHt4MToiMTIiLHgyOiIxOCIseTE6IjE1Iix5MjoiMTUifV0sWyJyZWN0Iix7d2lkdGg6IjE0IixoZWlnaHQ6IjE0Iix4OiI4Iix5OiI4IixyeDoiMiIscnk6IjIifV0sWyJwYXRoIix7ZDoiTTQgMTZjLTEuMSAwLTItLjktMi0yVjRjMC0xLjEuOS0yIDItMmgxMGMxLjEgMCAyIC45IDIgMiJ9XV0sQ2p0PVtbImxpbmUiLHt4MToiMTIiLHgyOiIxOCIseTE6IjE4Iix5MjoiMTIifV0sWyJyZWN0Iix7d2lkdGg6IjE0IixoZWlnaHQ6IjE0Iix4OiI4Iix5OiI4IixyeDoiMiIscnk6IjIifV0sWyJwYXRoIix7ZDoiTTQgMTZjLTEuMSAwLTItLjktMi0yVjRjMC0xLjEuOS0yIDItMmgxMGMxLjEgMCAyIC45IDIgMiJ9XV0sVGp0PVtbImxpbmUiLHt4MToiMTIiLHgyOiIxOCIseTE6IjEyIix5MjoiMTgifV0sWyJsaW5lIix7eDE6IjEyIix4MjoiMTgiLHkxOiIxOCIseTI6IjEyIn1dLFsicmVjdCIse3dpZHRoOiIxNCIsaGVpZ2h0OiIxNCIseDoiOCIseToiOCIscng6IjIiLHJ5OiIyIn1dLFsicGF0aCIse2Q6Ik00IDE2Yy0xLjEgMC0yLS45LTItMlY0YzAtMS4xLjktMiAyLTJoMTBjMS4xIDAgMiAuOSAyIDIifV1dLF9qdD1bWyJyZWN0Iix7d2lkdGg6IjE0IixoZWlnaHQ6IjE0Iix4OiI4Iix5OiI4IixyeDoiMiIscnk6IjIifV0sWyJwYXRoIix7ZDoiTTQgMTZjLTEuMSAwLTItLjktMi0yVjRjMC0xLjEuOS0yIDItMmgxMGMxLjEgMCAyIC45IDIgMiJ9XV0sTGp0PVtbImNpcmNsZSIse2N4OiIxMiIsY3k6IjEyIixyOiIxMCJ9XSxbInBhdGgiLHtkOiJNOS4xNyAxNC44M2E0IDQgMCAxIDAgMC01LjY2In1dXSxBanQ9W1siY2lyY2xlIix7Y3g6IjEyIixjeToiMTIiLHI6IjEwIn1dLFsicGF0aCIse2Q6Ik0xNC44MyAxNC44M2E0IDQgMCAxIDEgMC01LjY2In1dXSxEanQ9W1sicGF0aCIse2Q6Ik0yMCA0djdhNCA0IDAgMCAxLTQgNEg0In1dLFsicGF0aCIse2Q6Im05IDEwLTUgNSA1IDUifV1dLEVqdD1bWyJwYXRoIix7ZDoibTE1IDEwIDUgNS01IDUifV0sWyJwYXRoIix7ZDoiTTQgNHY3YTQgNCAwIDAgMCA0IDRoMTIifV1dLCRqdD1bWyJwYXRoIix7ZDoibTE0IDE1LTUgNS01LTUifV0sWyJwYXRoIix7ZDoiTTIwIDRoLTdhNCA0IDAgMCAwLTQgNHYxMiJ9XV0sSWp0PVtbInBhdGgiLHtkOiJNMTQgOSA5IDQgNCA5In1dLFsicGF0aCIse2Q6Ik0yMCAyMGgtN2E0IDQgMCAwIDEtNC00VjQifV1dLFBqdD1bWyJwYXRoIix7ZDoibTEwIDE1IDUgNSA1LTUifV0sWyJwYXRoIix7ZDoiTTQgNGg3YTQgNCAwIDAgMSA0IDR2MTIifV1dLE5qdD1bWyJwYXRoIix7ZDoibTEwIDkgNS01IDUgNSJ9XSxbInBhdGgiLHtkOiJNNCAyMGg3YTQgNCAwIDAgMCA0LTRWNCJ9XV0sRmp0PVtbInBhdGgiLHtkOiJNMjAgMjB2LTdhNCA0IDAgMCAwLTQtNEg0In1dLFsicGF0aCIse2Q6Ik05IDE0IDQgOWw1LTUifV1dLE9qdD1bWyJwYXRoIix7ZDoibTE1IDE0IDUtNS01LTUifV0sWyJwYXRoIix7ZDoiTTQgMjB2LTdhNCA0IDAgMCAxIDQtNGgxMiJ9XV0sUmp0PVtbInBhdGgiLHtkOiJNMTIgMjB2MiJ9XSxbInBhdGgiLHtkOiJNMTIgMnYyIn1dLFsicGF0aCIse2Q6Ik0xNyAyMHYyIn1dLFsicGF0aCIse2Q6Ik0xNyAydjIifV0sWyJwYXRoIix7ZDoiTTIgMTJoMiJ9XSxbInBhdGgiLHtkOiJNMiAxN2gyIn1dLFsicGF0aCIse2Q6Ik0yIDdoMiJ9XSxbInBhdGgiLHtkOiJNMjAgMTJoMiJ9XSxbInBhdGgiLHtkOiJNMjAgMTdoMiJ9XSxbInBhdGgiLHtkOiJNMjAgN2gyIn1dLFsicGF0aCIse2Q6Ik03IDIwdjIifV0sWyJwYXRoIix7ZDoiTTcgMnYyIn1dLFsicmVjdCIse3g6IjQiLHk6IjQiLHdpZHRoOiIxNiIsaGVpZ2h0OiIxNiIscng6IjIifV0sWyJyZWN0Iix7eDoiOCIseToiOCIsd2lkdGg6IjgiLGhlaWdodDoiOCIscng6IjEifV1dLEJqdD1bWyJjaXJjbGUiLHtjeDoiMTIiLGN5OiIxMiIscjoiMTAifV0sWyJwYXRoIix7ZDoiTTEwIDkuM2EyLjggMi44IDAgMCAwLTMuNSAxIDMuMSAzLjEgMCAwIDAgMCAzLjQgMi43IDIuNyAwIDAgMCAzLjUgMSJ9XSxbInBhdGgiLHtkOiJNMTcgOS4zYTIuOCAyLjggMCAwIDAtMy41IDEgMy4xIDMuMSAwIDAgMCAwIDMuNCAyLjcgMi43IDAgMCAwIDMuNSAxIn1dXSxIanQ9W1sicmVjdCIse3dpZHRoOiIyMCIsaGVpZ2h0OiIxNCIseDoiMiIseToiNSIscng6IjIifV0sWyJsaW5lIix7eDE6IjIiLHgyOiIyMiIseTE6IjEwIix5MjoiMTAifV1dLHFqdD1bWyJwYXRoIix7ZDoiTTEwLjIgMThINC43NzRhMS41IDEuNSAwIDAgMS0xLjM1Mi0uOTcgMTEgMTEgMCAwIDEgLjEzMi02LjQ4NyJ9XSxbInBhdGgiLHtkOiJNMTggMTAuMlY0Ljc3NGExLjUgMS41IDAgMCAwLS45Ny0xLjM1MiAxMSAxMSAwIDAgMC02LjQ4Ni4xMzIifV0sWyJwYXRoIix7ZDoiTTE4IDVhNCAzIDAgMCAxIDQgMyAyIDIgMCAwIDEtMiAyIDEwIDEwIDAgMCAwLTUuMTM5IDEuNDIifV0sWyJwYXRoIix7ZDoiTTUgMThhMyA0IDAgMCAwIDMgNCAyIDIgMCAwIDAgMi0yIDEwIDEwIDAgMCAxIDEuNDItNS4xNCJ9XSxbInBhdGgiLHtkOiJNOC43MDkgMi41NTRhMTAgMTAgMCAwIDAtNi4xNTUgNi4xNTUgMS41IDEuNSAwIDAgMCAuNjc2IDEuNjI2bDkuODA3IDUuNDJhMiAyIDAgMCAwIDIuNzE4LTIuNzE4bC01LjQyLTkuODA3YTEuNSAxLjUgMCAwIDAtMS42MjYtLjY3NiJ9XV0samp0PVtbInBhdGgiLHtkOiJNNiAydjE0YTIgMiAwIDAgMCAyIDJoMTQifV0sWyJwYXRoIix7ZDoiTTE4IDIyVjhhMiAyIDAgMCAwLTItMkgyIn1dXSxWanQ9W1sicGF0aCIse2Q6Ik00IDlhMiAyIDAgMCAwLTIgMnYyYTIgMiAwIDAgMCAyIDJoNGExIDEgMCAwIDEgMSAxdjRhMiAyIDAgMCAwIDIgMmgyYTIgMiAwIDAgMCAyLTJ2LTRhMSAxIDAgMCAxIDEtMWg0YTIgMiAwIDAgMCAyLTJ2LTJhMiAyIDAgMCAwLTItMmgtNGExIDEgMCAwIDEtMS0xVjRhMiAyIDAgMCAwLTItMmgtMmEyIDIgMCAwIDAtMiAydjRhMSAxIDAgMCAxLTEgMXoifV1dLFVqdD1bWyJjaXJjbGUiLHtjeDoiMTIiLGN5OiIxMiIscjoiMTAifV0sWyJsaW5lIix7eDE6IjIyIix4MjoiMTgiLHkxOiIxMiIseTI6IjEyIn1dLFsibGluZSIse3gxOiI2Iix4MjoiMiIseTE6IjEyIix5MjoiMTIifV0sWyJsaW5lIix7eDE6IjEyIix4MjoiMTIiLHkxOiI2Iix5MjoiMiJ9XSxbImxpbmUiLHt4MToiMTIiLHgyOiIxMiIseTE6IjIyIix5MjoiMTgifV1dLFdqdD1bWyJwYXRoIix7ZDoiTTExLjU2MiAzLjI2NmEuNS41IDAgMCAxIC44NzYgMEwxNS4zOSA4Ljg3YTEgMSAwIDAgMCAxLjUxNi4yOTRMMjEuMTgzIDUuNWEuNS41IDAgMCAxIC43OTguNTE5bC0yLjgzNCAxMC4yNDZhMSAxIDAgMCAxLS45NTYuNzM0SDUuODFhMSAxIDAgMCAxLS45NTctLjczNEwyLjAyIDYuMDJhLjUuNSAwIDAgMSAuNzk4LS41MTlsNC4yNzYgMy42NjRhMSAxIDAgMCAwIDEuNTE2LS4yOTR6In1dLFsicGF0aCIse2Q6Ik01IDIxaDE0In1dXSxHanQ9W1sicGF0aCIse2Q6Im0yMS4xMiA2LjQtNi4wNS00LjA2YTIgMiAwIDAgMC0yLjE3LS4wNUwyLjk1IDguNDFhMiAyIDAgMCAwLS45NSAxLjd2NS44MmEyIDIgMCAwIDAgLjg4IDEuNjZsNi4wNSA0LjA3YTIgMiAwIDAgMCAyLjE3LjA1bDkuOTUtNi4xMmEyIDIgMCAwIDAgLjk1LTEuN1Y4LjA2YTIgMiAwIDAgMC0uODgtMS42NloifV0sWyJwYXRoIix7ZDoiTTEwIDIydi04TDIuMjUgOS4xNSJ9XSxbInBhdGgiLHtkOiJtMTAgMTQgMTEuNzctNi44NyJ9XV0sWWp0PVtbInBhdGgiLHtkOiJtNiA4IDEuNzUgMTIuMjhhMiAyIDAgMCAwIDIgMS43Mmg0LjU0YTIgMiAwIDAgMCAyLTEuNzJMMTggOCJ9XSxbInBhdGgiLHtkOiJNNSA4aDE0In1dLFsicGF0aCIse2Q6Ik03IDE1YTYuNDcgNi40NyAwIDAgMSA1IDAgNi40NyA2LjQ3IDAgMCAwIDUgMCJ9XSxbInBhdGgiLHtkOiJtMTIgOCAxLTZoMiJ9XV0sWmp0PVtbImVsbGlwc2UiLHtjeDoiMTIiLGN5OiI1IixyeDoiOSIscnk6IjMifV0sWyJwYXRoIix7ZDoiTTMgNXYxNGE5IDMgMCAwIDAgMTggMFY1In1dXSxYanQ9W1siY2lyY2xlIix7Y3g6IjEyIixjeToiMTIiLHI6IjgifV0sWyJsaW5lIix7eDE6IjMiLHgyOiI2Iix5MToiMyIseTI6IjYifV0sWyJsaW5lIix7eDE6IjIxIix4MjoiMTgiLHkxOiIzIix5MjoiNiJ9XSxbImxpbmUiLHt4MToiMyIseDI6IjYiLHkxOiIyMSIseTI6IjE4In1dLFsibGluZSIse3gxOiIyMSIseDI6IjE4Iix5MToiMjEiLHkyOiIxOCJ9XV0sUWp0PVtbImVsbGlwc2UiLHtjeDoiMTIiLGN5OiI1IixyeDoiOSIscnk6IjMifV0sWyJwYXRoIix7ZDoiTTMgMTJhOSAzIDAgMCAwIDUgMi42OSJ9XSxbInBhdGgiLHtkOiJNMjEgOS4zVjUifV0sWyJwYXRoIix7ZDoiTTMgNXYxNGE5IDMgMCAwIDAgNi40NyAyLjg4In1dLFsicGF0aCIse2Q6Ik0xMiAxMnY0aDQifV0sWyJwYXRoIix7ZDoiTTEzIDIwYTUgNSAwIDAgMCA5LTMgNC41IDQuNSAwIDAgMC00LjUtNC41Yy0xLjMzIDAtMi41NC41NC0zLjQxIDEuNDFMMTIgMTYifV1dLEpqdD1bWyJwYXRoIix7ZDoiTTExIDExLjMxYzEuMTcuNTYgMS41NCAxLjY5IDMuNSAxLjY5IDIuNSAwIDIuNS0yIDUtMiAxLjMgMCAxLjkuNSAyLjUgMSJ9XSxbInBhdGgiLHtkOiJNMTEuNzUgMThjLjM1LjUgMS40NSAxIDIuNzUgMSAyLjUgMCAyLjUtMiA1LTIgMS4zIDAgMS45LjUgMi41IDEifV0sWyJwYXRoIix7ZDoiTTIgMTBoNCJ9XSxbInBhdGgiLHtkOiJNMiAxNGg0In1dLFsicGF0aCIse2Q6Ik0yIDE4aDQifV0sWyJwYXRoIix7ZDoiTTIgNmg0In1dLFsicGF0aCIse2Q6Ik03IDNhMSAxIDAgMCAwLTEgMXYxNmExIDEgMCAwIDAgMSAxaDRhMSAxIDAgMCAwIDEtMUwxMCA0YTEgMSAwIDAgMC0xLTF6In1dXSxLanQ9W1sicGF0aCIse2Q6Ik0yMSAxMS42OTNWNSJ9XSxbInBhdGgiLHtkOiJtMjIgMjItMS44NzUtMS44NzUifV0sWyJwYXRoIix7ZDoiTTMgMTJhOSAzIDAgMCAwIDguNjk3IDIuOTk4In1dLFsicGF0aCIse2Q6Ik0zIDV2MTRhOSAzIDAgMCAwIDkuMjggMi45OTkifV0sWyJjaXJjbGUiLHtjeDoiMTgiLGN5OiIxOCIscjoiMyJ9XSxbImVsbGlwc2UiLHtjeDoiMTIiLGN5OiI1IixyeDoiOSIscnk6IjMifV1dLGVWdD1bWyJlbGxpcHNlIix7Y3g6IjEyIixjeToiNSIscng6IjkiLHJ5OiIzIn1dLFsicGF0aCIse2Q6Ik0zIDVWMTlBOSAzIDAgMCAwIDE1IDIxLjg0In1dLFsicGF0aCIse2Q6Ik0yMSA1VjgifV0sWyJwYXRoIix7ZDoiTTIxIDEyTDE4IDE3SDIyTDE5IDIyIn1dLFsicGF0aCIse2Q6Ik0zIDEyQTkgMyAwIDAgMCAxNC41OSAxNC44NyJ9XV0sdFZ0PVtbImVsbGlwc2UiLHtjeDoiMTIiLGN5OiI1IixyeDoiOSIscnk6IjMifV0sWyJwYXRoIix7ZDoiTTMgNVYxOUE5IDMgMCAwIDAgMjEgMTlWNSJ9XSxbInBhdGgiLHtkOiJNMyAxMkE5IDMgMCAwIDAgMjEgMTIifV1dLHJWdD1bWyJwYXRoIix7ZDoibTEzIDIxLTMtMyAzLTMifV0sWyJwYXRoIix7ZDoiTTIwIDE4SDEwIn1dLFsicGF0aCIse2Q6Ik0zIDExaC4wMSJ9XSxbInJlY3QiLHt4OiI2Iix5OiIzIix3aWR0aDoiNSIsaGVpZ2h0OiI4IixyeDoiMi41In1dXSxpVnQ9W1sicGF0aCIse2Q6Ik0xMCAxOGgxMCJ9XSxbInBhdGgiLHtkOiJtMTcgMjEgMy0zLTMtMyJ9XSxbInBhdGgiLHtkOiJNMyAxMWguMDEifV0sWyJyZWN0Iix7eDoiMTUiLHk6IjMiLHdpZHRoOiI1IixoZWlnaHQ6IjgiLHJ4OiIyLjUifV0sWyJyZWN0Iix7eDoiNiIseToiMyIsd2lkdGg6IjUiLGhlaWdodDoiOCIscng6IjIuNSJ9XV0sYVZ0PVtbInBhdGgiLHtkOiJNMTAgNWEyIDIgMCAwIDAtMS4zNDQuNTE5bC02LjMyOCA1Ljc0YTEgMSAwIDAgMCAwIDEuNDgxbDYuMzI4IDUuNzQxQTIgMiAwIDAgMCAxMCAxOWgxMGEyIDIgMCAwIDAgMi0yVjdhMiAyIDAgMCAwLTItMnoifV0sWyJwYXRoIix7ZDoibTEyIDkgNiA2In1dLFsicGF0aCIse2Q6Im0xOCA5LTYgNiJ9XV0sblZ0PVtbInBhdGgiLHtkOiJNMTAuMTYyIDMuMTY3QTEwIDEwIDAgMCAwIDIgMTNhMiAyIDAgMCAwIDQgMHYtMWEyIDIgMCAwIDEgNCAwdjRhMiAyIDAgMCAwIDQgMHYtNGEyIDIgMCAwIDEgNCAwdjFhMiAyIDAgMCAwIDQtLjAwNiAxMCAxMCAwIDAgMC04LjE2MS05LjgyNiJ9XSxbInBhdGgiLHtkOiJNMjAuODA0IDE0Ljg2OWE5IDkgMCAwIDEtMTcuNjA4IDAifV0sWyJjaXJjbGUiLHtjeDoiMTIiLGN5OiI0IixyOiIyIn1dXSxvVnQ9W1siY2lyY2xlIix7Y3g6IjE5IixjeToiMTkiLHI6IjIifV0sWyJjaXJjbGUiLHtjeDoiNSIsY3k6IjUiLHI6IjIifV0sWyJwYXRoIix7ZDoiTTYuNDggMy42NmExMCAxMCAwIDAgMSAxMy44NiAxMy44NiJ9XSxbInBhdGgiLHtkOiJtNi40MSA2LjQxIDExLjE4IDExLjE4In1dLFsicGF0aCIse2Q6Ik0zLjY2IDYuNDhhMTAgMTAgMCAwIDAgMTMuODYgMTMuODYifV1dLHNWdD1bWyJwYXRoIix7ZDoiTTIuNyAxMC4zYTIuNDEgMi40MSAwIDAgMCAwIDMuNDFsNy41OSA3LjU5YTIuNDEgMi40MSAwIDAgMCAzLjQxIDBsNy41OS03LjU5YTIuNDEgMi40MSAwIDAgMCAwLTMuNDFMMTMuNyAyLjcxYTIuNDEgMi40MSAwIDAgMC0zLjQxIDB6In1dLFsicGF0aCIse2Q6Ik04IDEyaDgifV1dLEwkPVtbInBhdGgiLHtkOiJNMi43IDEwLjNhMi40MSAyLjQxIDAgMCAwIDAgMy40MWw3LjU5IDcuNTlhMi40MSAyLjQxIDAgMCAwIDMuNDEgMGw3LjU5LTcuNTlhMi40MSAyLjQxIDAgMCAwIDAtMy40MUwxMy43IDIuNzFhMi40MSAyLjQxIDAgMCAwLTMuNDEgMFoifV0sWyJwYXRoIix7ZDoiTTkuMiA5LjJoLjAxIn1dLFsicGF0aCIse2Q6Im0xNC41IDkuNS01IDUifV0sWyJwYXRoIix7ZDoiTTE0LjcgMTQuOGguMDEifV1dLGxWdD1bWyJwYXRoIix7ZDoiTTEyIDh2OCJ9XSxbInBhdGgiLHtkOiJNMi43IDEwLjNhMi40MSAyLjQxIDAgMCAwIDAgMy40MWw3LjU5IDcuNTlhMi40MSAyLjQxIDAgMCAwIDMuNDEgMGw3LjU5LTcuNTlhMi40MSAyLjQxIDAgMCAwIDAtMy40MUwxMy43IDIuNzFhMi40MSAyLjQxIDAgMCAwLTMuNDEgMHoifV0sWyJwYXRoIix7ZDoiTTggMTJoOCJ9XV0sY1Z0PVtbInBhdGgiLHtkOiJNMi43IDEwLjNhMi40MSAyLjQxIDAgMCAwIDAgMy40MWw3LjU5IDcuNTlhMi40MSAyLjQxIDAgMCAwIDMuNDEgMGw3LjU5LTcuNTlhMi40MSAyLjQxIDAgMCAwIDAtMy40MWwtNy41OS03LjU5YTIuNDEgMi40MSAwIDAgMC0zLjQxIDBaIn1dXSxkVnQ9W1sicmVjdCIse3dpZHRoOiIxOCIsaGVpZ2h0OiIxOCIseDoiMyIseToiMyIscng6IjIiLHJ5OiIyIn1dLFsicGF0aCIse2Q6Ik0xMiAxMmguMDEifV1dLHVWdD1bWyJyZWN0Iix7d2lkdGg6IjE4IixoZWlnaHQ6IjE4Iix4OiIzIix5OiIzIixyeDoiMiIscnk6IjIifV0sWyJwYXRoIix7ZDoiTTE1IDloLjAxIn1dLFsicGF0aCIse2Q6Ik05IDE1aC4wMSJ9XV0scFZ0PVtbInJlY3QiLHt3aWR0aDoiMTgiLGhlaWdodDoiMTgiLHg6IjMiLHk6IjMiLHJ4OiIyIixyeToiMiJ9XSxbInBhdGgiLHtkOiJNMTYgOGguMDEifV0sWyJwYXRoIix7ZDoiTTEyIDEyaC4wMSJ9XSxbInBhdGgiLHtkOiJNOCAxNmguMDEifV1dLGhWdD1bWyJyZWN0Iix7d2lkdGg6IjE4IixoZWlnaHQ6IjE4Iix4OiIzIix5OiIzIixyeDoiMiIscnk6IjIifV0sWyJwYXRoIix7ZDoiTTE2IDhoLjAxIn1dLFsicGF0aCIse2Q6Ik04IDhoLjAxIn1dLFsicGF0aCIse2Q6Ik04IDE2aC4wMSJ9XSxbInBhdGgiLHtkOiJNMTYgMTZoLjAxIn1dXSxmVnQ9W1sicmVjdCIse3dpZHRoOiIxOCIsaGVpZ2h0OiIxOCIseDoiMyIseToiMyIscng6IjIiLHJ5OiIyIn1dLFsicGF0aCIse2Q6Ik0xNiA4aC4wMSJ9XSxbInBhdGgiLHtkOiJNOCA4aC4wMSJ9XSxbInBhdGgiLHtkOiJNOCAxNmguMDEifV0sWyJwYXRoIix7ZDoiTTE2IDE2aC4wMSJ9XSxbInBhdGgiLHtkOiJNMTIgMTJoLjAxIn1dXSxtVnQ9W1sicmVjdCIse3dpZHRoOiIxOCIsaGVpZ2h0OiIxOCIseDoiMyIseToiMyIscng6IjIiLHJ5OiIyIn1dLFsicGF0aCIse2Q6Ik0xNiA4aC4wMSJ9XSxbInBhdGgiLHtkOiJNMTYgMTJoLjAxIn1dLFsicGF0aCIse2Q6Ik0xNiAxNmguMDEifV0sWyJwYXRoIix7ZDoiTTggOGguMDEifV0sWyJwYXRoIix7ZDoiTTggMTJoLjAxIn1dLFsicGF0aCIse2Q6Ik04IDE2aC4wMSJ9XV0sZ1Z0PVtbInJlY3QiLHt3aWR0aDoiMTIiLGhlaWdodDoiMTIiLHg6IjIiLHk6IjEwIixyeDoiMiIscnk6IjIifV0sWyJwYXRoIix7ZDoibTE3LjkyIDE0IDMuNS0zLjVhMi4yNCAyLjI0IDAgMCAwIDAtM2wtNS00LjkyYTIuMjQgMi4yNCAwIDAgMC0zIDBMMTAgNiJ9XSxbInBhdGgiLHtkOiJNNiAxOGguMDEifV0sWyJwYXRoIix7ZDoiTTEwIDE0aC4wMSJ9XSxbInBhdGgiLHtkOiJNMTUgNmguMDEifV0sWyJwYXRoIix7ZDoiTTE4IDloLjAxIn1dXSxiVnQ9W1sicGF0aCIse2Q6Ik0xMiAzdjE0In1dLFsicGF0aCIse2Q6Ik01IDEwaDE0In1dLFsicGF0aCIse2Q6Ik01IDIxaDE0In1dXSx2VnQ9W1siY2lyY2xlIix7Y3g6IjEyIixjeToiMTIiLHI6IjEwIn1dLFsiY2lyY2xlIix7Y3g6IjEyIixjeToiMTIiLHI6IjQifV0sWyJwYXRoIix7ZDoiTTEyIDEyaC4wMSJ9XV0seFZ0PVtbImNpcmNsZSIse2N4OiIxMiIsY3k6IjEyIixyOiIxMCJ9XSxbInBhdGgiLHtkOiJNNiAxMmMwLTEuNy43LTMuMiAxLjgtNC4yIn1dLFsiY2lyY2xlIix7Y3g6IjEyIixjeToiMTIiLHI6IjIifV0sWyJwYXRoIix7ZDoiTTE4IDEyYzAgMS43LS43IDMuMi0xLjggNC4yIn1dXSx5VnQ9W1sicmVjdCIse3dpZHRoOiIxOCIsaGVpZ2h0OiIxOCIseDoiMyIseToiMyIscng6IjIifV0sWyJjaXJjbGUiLHtjeDoiMTIiLGN5OiIxMiIscjoiNSJ9XSxbInBhdGgiLHtkOiJNMTIgMTJoLjAxIn1dXSx3VnQ9W1siY2lyY2xlIix7Y3g6IjEyIixjeToiMTIiLHI6IjEwIn1dLFsiY2lyY2xlIix7Y3g6IjEyIixjeToiMTIiLHI6IjIifV1dLE1WdD1bWyJjaXJjbGUiLHtjeDoiMTIiLGN5OiI2IixyOiIxIn1dLFsibGluZSIse3gxOiI1Iix4MjoiMTkiLHkxOiIxMiIseTI6IjEyIn1dLFsiY2lyY2xlIix7Y3g6IjEyIixjeToiMTgiLHI6IjEifV1dLGtWdD1bWyJwYXRoIix7ZDoiTTE1IDJjLTEuMzUgMS41LTIuMDkyIDMtMi41IDQuNUwxNCA4In1dLFsicGF0aCIse2Q6Im0xNyA2LTIuODkxLTIuODkxIn1dLFsicGF0aCIse2Q6Ik0yIDE1YzMuMzMzLTMgNi42NjctMyAxMC0zIn1dLFsicGF0aCIse2Q6Im0yIDIgMjAgMjAifV0sWyJwYXRoIix7ZDoibTIwIDkgLjg5MS44OTEifV0sWyJwYXRoIix7ZDoiTTIyIDljLTEuNSAxLjM1LTMgMi4wOTItNC41IDIuNWwtMS0xIn1dLFsicGF0aCIse2Q6Ik0zLjEwOSAxNC4xMDkgNCAxNSJ9XSxbInBhdGgiLHtkOiJtNi41IDEyLjUgMSAxIn1dLFsicGF0aCIse2Q6Im03IDE4IDIuODkxIDIuODkxIn1dLFsicGF0aCIse2Q6Ik05IDIyYzEuMzUtMS41IDIuMDkyLTMgMi41LTQuNUwxMCAxNiJ9XV0sU1Z0PVtbInBhdGgiLHtkOiJtMTAgMTYgMS41IDEuNSJ9XSxbInBhdGgiLHtkOiJtMTQgOC0xLjUtMS41In1dLFsicGF0aCIse2Q6Ik0xNSAyYy0xLjc5OCAxLjk5OC0yLjUxOCAzLjk5NS0yLjgwNyA1Ljk5MyJ9XSxbInBhdGgiLHtkOiJtMTYuNSAxMC41IDEgMSJ9XSxbInBhdGgiLHtkOiJtMTcgNi0yLjg5MS0yLjg5MSJ9XSxbInBhdGgiLHtkOiJNMiAxNWM2LjY2Ny02IDEzLjMzMyAwIDIwLTYifV0sWyJwYXRoIix7ZDoibTIwIDkgLjg5MS44OTEifV0sWyJwYXRoIix7ZDoiTTMuMTA5IDE0LjEwOSA0IDE1In1dLFsicGF0aCIse2Q6Im02LjUgMTIuNSAxIDEifV0sWyJwYXRoIix7ZDoibTcgMTggMi44OTEgMi44OTEifV0sWyJwYXRoIix7ZDoiTTkgMjJjMS43OTgtMS45OTggMi41MTgtMy45OTUgMi44MDctNS45OTMifV1dLHpWdD1bWyJwYXRoIix7ZDoiTTExLjI1IDE2LjI1aDEuNUwxMiAxN3oifV0sWyJwYXRoIix7ZDoiTTE2IDE0di41In1dLFsicGF0aCIse2Q6Ik00LjQyIDExLjI0N0ExMy4xNTIgMTMuMTUyIDAgMCAwIDQgMTQuNTU2QzQgMTguNzI4IDcuNTgyIDIxIDEyIDIxczgtMi4yNzIgOC02LjQ0NGExMS43MDIgMTEuNzAyIDAgMCAwLS40OTMtMy4zMDkifV0sWyJwYXRoIix7ZDoiTTggMTR2LjUifV0sWyJwYXRoIix7ZDoiTTguNSA4LjVjLS4zODQgMS4wNS0xLjA4MyAyLjAyOC0yLjM0NCAyLjUtMS45MzEuNzIyLTMuNTc2LS4yOTctMy42NTYtMS0uMTEzLS45OTQgMS4xNzctNi41MyA0LTcgMS45MjMtLjMyMSAzLjY1MS44NDUgMy42NTEgMi4yMzVBNy40OTcgNy40OTcgMCAwIDEgMTQgNS4yNzdjMC0xLjM5IDEuODQ0LTIuNTk4IDMuNzY3LTIuMjc3IDIuODIzLjQ3IDQuMTEzIDYuMDA2IDQgNy0uMDguNzAzLTEuNzI1IDEuNzIyLTMuNjU2IDEtMS4yNjEtLjQ3Mi0xLjg1NS0xLjQ1LTIuMjM5LTIuNSJ9XV0sQ1Z0PVtbImxpbmUiLHt4MToiMTIiLHgyOiIxMiIseTE6IjIiLHkyOiIyMiJ9XSxbInBhdGgiLHtkOiJNMTcgNUg5LjVhMy41IDMuNSAwIDAgMCAwIDdoNWEzLjUgMy41IDAgMCAxIDAgN0g2In1dXSxUVnQ9W1sicGF0aCIse2Q6Ik0yIDhoMjAifV0sWyJyZWN0Iix7d2lkdGg6IjIwIixoZWlnaHQ6IjE2Iix4OiIyIix5OiI0IixyeDoiMiJ9XSxbInBhdGgiLHtkOiJNNiAxNmgxMiJ9XV0sX1Z0PVtbInBhdGgiLHtkOiJNMjAuNSAxMGEyLjUgMi41IDAgMCAxLTIuNC0zSDE4YTIuOTUgMi45NSAwIDAgMS0yLjYtNC40IDEwIDEwIDAgMSAwIDYuMyA3LjFjLS4zLjItLjguMy0xLjIuMyJ9XSxbImNpcmNsZSIse2N4OiIxMiIsY3k6IjEyIixyOiIzIn1dXSxMVnQ9W1sicGF0aCIse2Q6Ik0xMCAxMmguMDEifV0sWyJwYXRoIix7ZDoiTTE4IDlWNmEyIDIgMCAwIDAtMi0ySDhhMiAyIDAgMCAwLTIgMnYxNCJ9XSxbInBhdGgiLHtkOiJNMiAyMGg4In1dLFsicGF0aCIse2Q6Ik0yMCAxN3YtMmEyIDIgMCAxIDAtNCAwdjIifV0sWyJyZWN0Iix7eDoiMTQiLHk6IjE3Iix3aWR0aDoiOCIsaGVpZ2h0OiI1IixyeDoiMSJ9XV0sQVZ0PVtbInBhdGgiLHtkOiJNMTAgMTJoLjAxIn1dLFsicGF0aCIse2Q6Ik0xOCAyMFY2YTIgMiAwIDAgMC0yLTJIOGEyIDIgMCAwIDAtMiAydjE0In1dLFsicGF0aCIse2Q6Ik0yIDIwaDIwIn1dXSxEVnQ9W1sicGF0aCIse2Q6Ik0xMSAyMEgyIn1dLFsicGF0aCIse2Q6Ik0xMSA0LjU2MnYxNi4xNTdhMSAxIDAgMCAwIDEuMjQyLjk3TDE5IDIwVjUuNTYyYTIgMiAwIDAgMC0xLjUxNS0xLjk0bC00LTFBMiAyIDAgMCAwIDExIDQuNTYxeiJ9XSxbInBhdGgiLHtkOiJNMTEgNEg4YTIgMiAwIDAgMC0yIDJ2MTQifV0sWyJwYXRoIix7ZDoiTTE0IDEyaC4wMSJ9XSxbInBhdGgiLHtkOiJNMjIgMjBoLTMifV1dLEVWdD1bWyJjaXJjbGUiLHtjeDoiMTIuMSIsY3k6IjEyLjEiLHI6IjEifV1dLCRWdD1bWyJwYXRoIix7ZDoiTTEyIDE1VjMifV0sWyJwYXRoIix7ZDoiTTIxIDE1djRhMiAyIDAgMCAxLTIgMkg1YTIgMiAwIDAgMS0yLTJ2LTQifV0sWyJwYXRoIix7ZDoibTcgMTAgNSA1IDUtNSJ9XV0sSVZ0PVtbInBhdGgiLHtkOiJtMTIuOTkgNi43NCAxLjkzIDMuNDQifV0sWyJwYXRoIix7ZDoiTTE5LjEzNiAxMmExMCAxMCAwIDAgMS0xNC4yNzEgMCJ9XSxbInBhdGgiLHtkOiJtMjEgMjEtMi4xNi0zLjg0In1dLFsicGF0aCIse2Q6Im0zIDIxIDguMDItMTQuMjYifV0sWyJjaXJjbGUiLHtjeDoiMTIiLGN5OiI1IixyOiIyIn1dXSxQVnQ9W1siY2lyY2xlIix7Y3g6IjEyIixjeToiMTIiLHI6IjEwIn1dLFsicGF0aCIse2Q6Ik0xOS4xMyA1LjA5QzE1LjIyIDkuMTQgMTAgMTAuNDQgMi4yNSAxMC45NCJ9XSxbInBhdGgiLHtkOiJNMjEuNzUgMTIuODRjLTYuNjItMS40MS0xMi4xNCAxLTE2LjM4IDYuMzIifV0sWyJwYXRoIix7ZDoiTTguNTYgMi43NWM0LjM3IDYgNiA5LjQyIDggMTcuNzIifV1dLE5WdD1bWyJwYXRoIix7ZDoiTTEwIDExaC4wMSJ9XSxbInBhdGgiLHtkOiJNMTQgNmguMDEifV0sWyJwYXRoIix7ZDoiTTE4IDZoLjAxIn1dLFsicGF0aCIse2Q6Ik02LjUgMTMuMWguMDEifV0sWyJwYXRoIix7ZDoiTTIyIDVjMCA5LTQgMTItNiAxMnMtNi0zLTYtMTJjMC0yIDItMyA2LTNzNiAxIDYgMyJ9XSxbInBhdGgiLHtkOiJNMTcuNCA5LjljLS44LjgtMiAuOC0yLjggMCJ9XSxbInBhdGgiLHtkOiJNMTAuMSA3LjFDOSA3LjIgNy43IDcuNyA2IDguNmMtMy41IDItNC43IDMuOS0zLjcgNS42IDQuNSA3LjggOS41IDguNCAxMS4yIDcuNC45LS41IDEuOS0yLjEgMS45LTQuNyJ9XSxbInBhdGgiLHtkOiJNOS4xIDE2LjVjLjMtMS4xIDEuNC0xLjcgMi40LTEuNCJ9XV0sRlZ0PVtbInBhdGgiLHtkOiJNMTAgMThhMSAxIDAgMCAxIDEgMXYyYTEgMSAwIDAgMS0xIDFINWEzIDMgMCAwIDEtMy0zIDEgMSAwIDAgMSAxLTF6In1dLFsicGF0aCIse2Q6Ik0xMyAxMEg0YTIgMiAwIDAgMS0yLTJWNGEyIDIgMCAwIDEgMi0yaDlhMSAxIDAgMCAxIDEgMXY2YTEgMSAwIDAgMS0xIDFsLS44MSAzLjI0MmExIDEgMCAwIDEtLjk3Ljc1OEg4In1dLFsicGF0aCIse2Q6Ik0xNCA0aDNhMSAxIDAgMCAxIDEgMXYyYTEgMSAwIDAgMS0xIDFoLTMifV0sWyJwYXRoIix7ZDoiTTE4IDZoNCJ9XSxbInBhdGgiLHtkOiJtNSAxMC0yIDgifV0sWyJwYXRoIix7ZDoibTcgMTggMi04In1dXSxPVnQ9W1sicGF0aCIse2Q6Ik0xMCAxMCA3IDcifV0sWyJwYXRoIix7ZDoibTEwIDE0LTMgMyJ9XSxbInBhdGgiLHtkOiJtMTQgMTAgMy0zIn1dLFsicGF0aCIse2Q6Im0xNCAxNCAzIDMifV0sWyJwYXRoIix7ZDoiTTE0LjIwNSA0LjEzOWE0IDQgMCAxIDEgNS40MzkgNS44NjMifV0sWyJwYXRoIix7ZDoiTTE5LjYzNyAxNGE0IDQgMCAxIDEtNS40MzIgNS44NjgifV0sWyJwYXRoIix7ZDoiTTQuMzY3IDEwYTQgNCAwIDEgMSA1LjQzOC01Ljg2MiJ9XSxbInBhdGgiLHtkOiJNOS43OTUgMTkuODYyYTQgNCAwIDEgMS01LjQyOS01Ljg3MyJ9XSxbInJlY3QiLHt4OiIxMCIseToiOCIsd2lkdGg6IjQiLGhlaWdodDoiOCIscng6IjEifV1dLFJWdD1bWyJwYXRoIix7ZDoiTTE4LjcxNSAxMy4xODZDMTguMjkgMTEuODU4IDE3LjM4NCAxMC42MDcgMTYgOS41Yy0yLTEuNi0zLjUtNC00LTYuNWExMC43IDEwLjcgMCAwIDEtLjg4NCAyLjU4NiJ9XSxbInBhdGgiLHtkOiJtMiAyIDIwIDIwIn1dLFsicGF0aCIse2Q6Ik04Ljc5NSA4Ljc5N0ExMSAxMSAwIDAgMSA4IDkuNUM2IDExLjEgNSAxMyA1IDE1YTcgNyAwIDAgMCAxMy4yMjIgMy4yMDgifV1dLEJWdD1bWyJwYXRoIix7ZDoiTTEyIDIyYTcgNyAwIDAgMCA3LTdjMC0yLTEtMy45LTMtNS41cy0zLjUtNC00LTYuNWMtLjUgMi41LTIgNC45LTQgNi41QzYgMTEuMSA1IDEzIDUgMTVhNyA3IDAgMCAwIDcgN3oifV1dLEhWdD1bWyJwYXRoIix7ZDoiTTcgMTYuM2MyLjIgMCA0LTEuODMgNC00LjA1IDAtMS4xNi0uNTctMi4yNi0xLjcxLTMuMTlTNy4yOSA2Ljc1IDcgNS4zYy0uMjkgMS40NS0xLjE0IDIuODQtMi4yOSAzLjc2UzMgMTEuMSAzIDEyLjI1YzAgMi4yMiAxLjggNC4wNSA0IDQuMDV6In1dLFsicGF0aCIse2Q6Ik0xMi41NiA2LjZBMTAuOTcgMTAuOTcgMCAwIDAgMTQgMy4wMmMuNSAyLjUgMiA0LjkgNCA2LjVzMyAzLjUgMyA1LjVhNi45OCA2Ljk4IDAgMCAxLTExLjkxIDQuOTcifV1dLHFWdD1bWyJwYXRoIix7ZDoibTIgMiA4IDgifV0sWyJwYXRoIix7ZDoibTIyIDItOCA4In1dLFsiZWxsaXBzZSIse2N4OiIxMiIsY3k6IjkiLHJ4OiIxMCIscnk6IjUifV0sWyJwYXRoIix7ZDoiTTcgMTMuNHY3LjkifV0sWyJwYXRoIix7ZDoiTTEyIDE0djgifV0sWyJwYXRoIix7ZDoiTTE3IDEzLjR2Ny45In1dLFsicGF0aCIse2Q6Ik0yIDl2OGExMCA1IDAgMCAwIDIwIDBWOSJ9XV0salZ0PVtbInBhdGgiLHtkOiJNMTUuNCAxNS42M2E3Ljg3NSA2IDEzNSAxIDEgNi4yMy02LjIzIDQuNSAzLjQzIDEzNSAwIDAtNi4yMyA2LjIzIn1dLFsicGF0aCIse2Q6Im04LjI5IDEyLjcxLTIuNiAyLjZhMi41IDIuNSAwIDEgMC0xLjY1IDQuNjVBMi41IDIuNSAwIDEgMCA4LjcgMTguM2wyLjU5LTIuNTkifV1dLFZWdD1bWyJwYXRoIix7ZDoiTTE3LjU5NiAxMi43NjhhMiAyIDAgMSAwIDIuODI5LTIuODI5bC0xLjc2OC0xLjc2N2EyIDIgMCAwIDAgMi44MjgtMi44MjlsLTIuODI4LTIuODI4YTIgMiAwIDAgMC0yLjgyOSAyLjgyOGwtMS43NjctMS43NjhhMiAyIDAgMSAwLTIuODI5IDIuODI5eiJ9XSxbInBhdGgiLHtkOiJtMi41IDIxLjUgMS40LTEuNCJ9XSxbInBhdGgiLHtkOiJtMjAuMSAzLjkgMS40LTEuNCJ9XSxbInBhdGgiLHtkOiJNNS4zNDMgMjEuNDg1YTIgMiAwIDEgMCAyLjgyOS0yLjgyOGwxLjc2NyAxLjc2OGEyIDIgMCAxIDAgMi44MjktMi44MjlsLTYuMzY0LTYuMzY0YTIgMiAwIDEgMC0yLjgyOSAyLjgyOWwxLjc2OCAxLjc2N2EyIDIgMCAwIDAtMi44MjggMi44Mjl6In1dLFsicGF0aCIse2Q6Im05LjYgMTQuNCA0LjgtNC44In1dXSxVVnQ9W1sicGF0aCIse2Q6Ik02IDE4LjVhMy41IDMuNSAwIDEgMCA3IDBjMC0xLjU3LjkyLTIuNTIgMi4wNC0zLjQ2In1dLFsicGF0aCIse2Q6Ik02IDguNWMwLS43NS4xMy0xLjQ3LjM2LTIuMTQifV0sWyJwYXRoIix7ZDoiTTguOCAzLjE1QTYuNSA2LjUgMCAwIDEgMTkgOC41YzAgMS42My0uNDQgMi44MS0xLjA5IDMuNzYifV0sWyJwYXRoIix7ZDoiTTEyLjUgNkEyLjUgMi41IDAgMCAxIDE1IDguNU0xMCAxM2EyIDIgMCAwIDAgMS44Mi0xLjE4In1dLFsibGluZSIse3gxOiIyIix4MjoiMjIiLHkxOiIyIix5MjoiMjIifV1dLFdWdD1bWyJwYXRoIix7ZDoiTTcgMy4zNFY1YTMgMyAwIDAgMCAzIDMifV0sWyJwYXRoIix7ZDoiTTExIDIxLjk1VjE4YTIgMiAwIDAgMC0yLTIgMiAyIDAgMCAxLTItMnYtMWEyIDIgMCAwIDAtMi0ySDIuMDUifV0sWyJwYXRoIix7ZDoiTTIxLjU0IDE1SDE3YTIgMiAwIDAgMC0yIDJ2NC41NCJ9XSxbInBhdGgiLHtkOiJNMTIgMmExMCAxMCAwIDEgMCA5LjU0IDEzIn1dLFsicGF0aCIse2Q6Ik0yMCA2VjRhMiAyIDAgMSAwLTQgMHYyIn1dLFsicmVjdCIse3dpZHRoOiI4IixoZWlnaHQ6IjUiLHg6IjE0Iix5OiI2IixyeDoiMSJ9XV0sR1Z0PVtbInBhdGgiLHtkOiJNNiA4LjVhNi41IDYuNSAwIDEgMSAxMyAwYzAgNi02IDYtNiAxMGEzLjUgMy41IDAgMSAxLTcgMCJ9XSxbInBhdGgiLHtkOiJNMTUgOC41YTIuNSAyLjUgMCAwIDAtNSAwdjFhMiAyIDAgMSAxIDAgNCJ9XV0sQSQ9W1sicGF0aCIse2Q6Ik0yMS41NCAxNUgxN2EyIDIgMCAwIDAtMiAydjQuNTQifV0sWyJwYXRoIix7ZDoiTTcgMy4zNFY1YTMgMyAwIDAgMCAzIDNhMiAyIDAgMCAxIDIgMmMwIDEuMS45IDIgMiAyYTIgMiAwIDAgMCAyLTJjMC0xLjEuOS0yIDItMmgzLjE3In1dLFsicGF0aCIse2Q6Ik0xMSAyMS45NVYxOGEyIDIgMCAwIDAtMi0yYTIgMiAwIDAgMS0yLTJ2LTFhMiAyIDAgMCAwLTItMkgyLjA1In1dLFsiY2lyY2xlIix7Y3g6IjEyIixjeToiMTIiLHI6IjEwIn1dXSxZVnQ9W1siY2lyY2xlIix7Y3g6IjEyIixjeToiMTIiLHI6IjEwIn1dLFsicGF0aCIse2Q6Ik0xMiAyYTcgNyAwIDEgMCAxMCAxMCJ9XV0sWlZ0PVtbImNpcmNsZSIse2N4OiIxMS41IixjeToiMTIuNSIscjoiMy41In1dLFsicGF0aCIse2Q6Ik0zIDhjMC0zLjUgMi41LTYgNi41LTYgNSAwIDQuODMgMyA3LjUgNXM1IDIgNSA2YzAgNC41LTIuNSA2LjUtNyA2LjUtMi41IDAtMi41IDIuNS02IDIuNXMtNy0yLTctNS41YzAtMyAxLjUtMyAxLjUtNUMzLjUgMTAgMyA5IDMgOFoifV1dLFhWdD1bWyJwYXRoIix7ZDoibTIgMiAyMCAyMCJ9XSxbInBhdGgiLHtkOiJNMjAgMTQuMzQ3VjE0YzAtNi00LTEyLTgtMTItMS4wNzggMC0yLjE1Ny40MzYtMy4xNTcgMS4xOSJ9XSxbInBhdGgiLHtkOiJNNi4yMDYgNi4yMUM0Ljg3MSA4LjQgNCAxMS4yIDQgMTRhOCA4IDAgMCAwIDE0LjU2OCA0LjU2OCJ9XV0sUVZ0PVtbInBhdGgiLHtkOiJNMTIgMkM4IDIgNCA4IDQgMTRhOCA4IDAgMCAwIDE2IDBjMC02LTQtMTItOC0xMiJ9XV0sRCQ9W1siY2lyY2xlIix7Y3g6IjEyIixjeToiMTIiLHI6IjEifV0sWyJjaXJjbGUiLHtjeDoiMTIiLGN5OiI1IixyOiIxIn1dLFsiY2lyY2xlIix7Y3g6IjEyIixjeToiMTkiLHI6IjEifV1dLEUkPVtbImNpcmNsZSIse2N4OiIxMiIsY3k6IjEyIixyOiIxIn1dLFsiY2lyY2xlIix7Y3g6IjE5IixjeToiMTIiLHI6IjEifV0sWyJjaXJjbGUiLHtjeDoiNSIsY3k6IjEyIixyOiIxIn1dXSxKVnQ9W1sicGF0aCIse2Q6Ik01IDE1YTYuNSA2LjUgMCAwIDEgNyAwIDYuNSA2LjUgMCAwIDAgNyAwIn1dLFsicGF0aCIse2Q6Ik01IDlhNi41IDYuNSAwIDAgMSA3IDAgNi41IDYuNSAwIDAgMCA3IDAifV1dLEtWdD1bWyJsaW5lIix7eDE6IjUiLHgyOiIxOSIseTE6IjkiLHkyOiI5In1dLFsibGluZSIse3gxOiI1Iix4MjoiMTkiLHkxOiIxNSIseTI6IjE1In1dLFsibGluZSIse3gxOiIxOSIseDI6IjUiLHkxOiI1Iix5MjoiMTkifV1dLGVVdD1bWyJsaW5lIix7eDE6IjUiLHgyOiIxOSIseTE6IjkiLHkyOiI5In1dLFsibGluZSIse3gxOiI1Iix4MjoiMTkiLHkxOiIxNSIseTI6IjE1In1dXSx0VXQ9W1sicGF0aCIse2Q6Im0xNSAyMCAzLTNoMmEyIDIgMCAwIDAgMi0yVjZhMiAyIDAgMCAwLTItMkg0YTIgMiAwIDAgMC0yIDJ2OWEyIDIgMCAwIDAgMiAyaDJsMyAzeiJ9XSxbInBhdGgiLHtkOiJNNiA4djEifV0sWyJwYXRoIix7ZDoiTTEwIDh2MSJ9XSxbInBhdGgiLHtkOiJNMTQgOHYxIn1dLFsicGF0aCIse2Q6Ik0xOCA4djEifV1dLHJVdD1bWyJwYXRoIix7ZDoiTTIxIDIxSDhhMiAyIDAgMCAxLTEuNDItLjU4N2wtMy45OTQtMy45OTlhMiAyIDAgMCAxIDAtMi44MjhsMTAtMTBhMiAyIDAgMCAxIDIuODI5IDBsNS45OTkgNmEyIDIgMCAwIDEgMCAyLjgyOEwxMi44MzQgMjEifV0sWyJwYXRoIix7ZDoibTUuMDgyIDExLjA5IDguODI4IDguODI4In1dXSxpVXQ9W1sicGF0aCIse2Q6Ik00IDEwaDEyIn1dLFsicGF0aCIse2Q6Ik00IDE0aDkifV0sWyJwYXRoIix7ZDoiTTE5IDZhNy43IDcuNyAwIDAgMC01LjItMkE3LjkgNy45IDAgMCAwIDYgMTJjMCA0LjQgMy41IDggNy44IDggMiAwIDMuOC0uOCA1LjItMiJ9XV0sYVV0PVtbInBhdGgiLHtkOiJNMTQgMTNoMmEyIDIgMCAwIDEgMiAydjJhMiAyIDAgMCAwIDQgMHYtNi45OThhMiAyIDAgMCAwLS41OS0xLjQyTDE4IDUifV0sWyJwYXRoIix7ZDoiTTE0IDIxVjVhMiAyIDAgMCAwLTItMkg1YTIgMiAwIDAgMC0yIDJ2MTYifV0sWyJwYXRoIix7ZDoiTTIgMjFoMTMifV0sWyJwYXRoIix7ZDoiTTMgN2gxMSJ9XSxbInBhdGgiLHtkOiJtOSAxMS0yIDNoM2wtMiAzIn1dXSxuVXQ9W1sicGF0aCIse2Q6Im0xNSAxNSA2IDYifV0sWyJwYXRoIix7ZDoibTE1IDkgNi02In1dLFsicGF0aCIse2Q6Ik0yMSAxNnY1aC01In1dLFsicGF0aCIse2Q6Ik0yMSA4VjNoLTUifV0sWyJwYXRoIix7ZDoiTTMgMTZ2NWg1In1dLFsicGF0aCIse2Q6Im0zIDIxIDYtNiJ9XSxbInBhdGgiLHtkOiJNMyA4VjNoNSJ9XSxbInBhdGgiLHtkOiJNOSA5IDMgMyJ9XV0sb1V0PVtbInBhdGgiLHtkOiJNMTUgM2g2djYifV0sWyJwYXRoIix7ZDoiTTEwIDE0IDIxIDMifV0sWyJwYXRoIix7ZDoiTTE4IDEzdjZhMiAyIDAgMCAxLTIgMkg1YTIgMiAwIDAgMS0yLTJWOGEyIDIgMCAwIDEgMi0yaDYifV1dLHNVdD1bWyJwYXRoIix7ZDoibTE1IDE4LS43MjItMy4yNSJ9XSxbInBhdGgiLHtkOiJNMiA4YTEwLjY0NSAxMC42NDUgMCAwIDAgMjAgMCJ9XSxbInBhdGgiLHtkOiJtMjAgMTUtMS43MjYtMi4wNSJ9XSxbInBhdGgiLHtkOiJtNCAxNSAxLjcyNi0yLjA1In1dLFsicGF0aCIse2Q6Im05IDE4IC43MjItMy4yNSJ9XV0sbFV0PVtbInBhdGgiLHtkOiJNMi4wNjIgMTIuMzQ4YTEgMSAwIDAgMSAwLS42OTYgMTAuNzUgMTAuNzUgMCAwIDEgMTkuODc2IDAgMSAxIDAgMCAxIDAgLjY5NiAxMC43NSAxMC43NSAwIDAgMS0xOS44NzYgMCJ9XSxbImNpcmNsZSIse2N4OiIxMiIsY3k6IjEyIixyOiIzIn1dXSxjVXQ9W1sicGF0aCIse2Q6Ik0xMC43MzMgNS4wNzZhMTAuNzQ0IDEwLjc0NCAwIDAgMSAxMS4yMDUgNi41NzUgMSAxIDAgMCAxIDAgLjY5NiAxMC43NDcgMTAuNzQ3IDAgMCAxLTEuNDQ0IDIuNDkifV0sWyJwYXRoIix7ZDoiTTE0LjA4NCAxNC4xNThhMyAzIDAgMCAxLTQuMjQyLTQuMjQyIn1dLFsicGF0aCIse2Q6Ik0xNy40NzkgMTcuNDk5YTEwLjc1IDEwLjc1IDAgMCAxLTE1LjQxNy01LjE1MSAxIDEgMCAwIDEgMC0uNjk2IDEwLjc1IDEwLjc1IDAgMCAxIDQuNDQ2LTUuMTQzIn1dLFsicGF0aCIse2Q6Im0yIDIgMjAgMjAifV1dLGRVdD1bWyJwYXRoIix7ZDoiTTE4IDJoLTNhNSA1IDAgMCAwLTUgNXYzSDd2NGgzdjhoNHYtOGgzbDEtNGgtNFY3YTEgMSAwIDAgMSAxLTFoM3oifV1dLHVVdD1bWyJwYXRoIix7ZDoiTTEyIDE2aC4wMSJ9XSxbInBhdGgiLHtkOiJNMTYgMTZoLjAxIn1dLFsicGF0aCIse2Q6Ik0zIDE5YTIgMiAwIDAgMCAyIDJoMTRhMiAyIDAgMCAwIDItMlY4LjVhLjUuNSAwIDAgMC0uNzY5LS40MjJsLTQuNDYyIDIuODQ0QS41LjUgMCAwIDEgMTUgMTAuNXYtMmEuNS41IDAgMCAwLS43NjktLjQyMkw5Ljc3IDEwLjkyMkEuNS41IDAgMCAxIDkgMTAuNVY1YTIgMiAwIDAgMC0yLTJINWEyIDIgMCAwIDAtMiAyeiJ9XSxbInBhdGgiLHtkOiJNOCAxNmguMDEifV1dLHBVdD1bWyJwYXRoIix7ZDoiTTEwLjgyNyAxNi4zNzlhNi4wODIgNi4wODIgMCAwIDEtOC42MTgtNy4wMDJsNS40MTIgMS40NWE2LjA4MiA2LjA4MiAwIDAgMSA3LjAwMi04LjYxOGwtMS40NSA1LjQxMmE2LjA4MiA2LjA4MiAwIDAgMSA4LjYxOCA3LjAwMmwtNS40MTItMS40NWE2LjA4MiA2LjA4MiAwIDAgMS03LjAwMiA4LjYxOGwxLjQ1LTUuNDEyWiJ9XSxbInBhdGgiLHtkOiJNMTIgMTJ2LjAxIn1dXSxoVXQ9W1sicGF0aCIse2Q6Ik0xMiA2YTIgMiAwIDAgMSAzLjQxNC0xLjQxNGw2IDZhMiAyIDAgMCAxIDAgMi44MjhsLTYgNkEyIDIgMCAwIDEgMTIgMTh6In1dLFsicGF0aCIse2Q6Ik0yIDZhMiAyIDAgMCAxIDMuNDE0LTEuNDE0bDYgNmEyIDIgMCAwIDEgMCAyLjgyOGwtNiA2QTIgMiAwIDAgMSAyIDE4eiJ9XV0sZlV0PVtbInBhdGgiLHtkOiJNMTIuNjcgMTlhMiAyIDAgMCAwIDEuNDE2LS41ODhsNi4xNTQtNi4xNzJhNiA2IDAgMCAwLTguNDktOC40OUw1LjU4NiA5LjkxNEEyIDIgMCAwIDAgNSAxMS4zMjhWMThhMSAxIDAgMCAwIDEgMXoifV0sWyJwYXRoIix7ZDoiTTE2IDggMiAyMiJ9XSxbInBhdGgiLHtkOiJNMTcuNSAxNUg5In1dXSxtVXQ9W1sicGF0aCIse2Q6Ik00IDMgMiA1djE1YzAgLjYuNCAxIDEgMWgyYy42IDAgMS0uNCAxLTFWNVoifV0sWyJwYXRoIix7ZDoiTTYgOGg0In1dLFsicGF0aCIse2Q6Ik02IDE4aDQifV0sWyJwYXRoIix7ZDoibTEyIDMtMiAydjE1YzAgLjYuNCAxIDEgMWgyYy42IDAgMS0uNCAxLTFWNVoifV0sWyJwYXRoIix7ZDoiTTE0IDhoNCJ9XSxbInBhdGgiLHtkOiJNMTQgMThoNCJ9XSxbInBhdGgiLHtkOiJtMjAgMy0yIDJ2MTVjMCAuNi40IDEgMSAxaDJjLjYgMCAxLS40IDEtMVY1WiJ9XV0sZ1V0PVtbImNpcmNsZSIse2N4OiIxMiIsY3k6IjEyIixyOiIyIn1dLFsicGF0aCIse2Q6Ik0xMiAydjQifV0sWyJwYXRoIix7ZDoibTYuOCAxNS0zLjUgMiJ9XSxbInBhdGgiLHtkOiJtMjAuNyA3LTMuNSAyIn1dLFsicGF0aCIse2Q6Ik02LjggOSAzLjMgNyJ9XSxbInBhdGgiLHtkOiJtMjAuNyAxNy0zLjUtMiJ9XSxbInBhdGgiLHtkOiJtOSAyMiAzLTggMyA4In1dLFsicGF0aCIse2Q6Ik04IDIyaDgifV0sWyJwYXRoIix7ZDoiTTE4IDE4LjdhOSA5IDAgMSAwLTEyIDAifV1dLGJVdD1bWyJwYXRoIix7ZDoiTTUgNS41QTMuNSAzLjUgMCAwIDEgOC41IDJIMTJ2N0g4LjVBMy41IDMuNSAwIDAgMSA1IDUuNXoifV0sWyJwYXRoIix7ZDoiTTEyIDJoMy41YTMuNSAzLjUgMCAxIDEgMCA3SDEyVjJ6In1dLFsicGF0aCIse2Q6Ik0xMiAxMi41YTMuNSAzLjUgMCAxIDEgNyAwIDMuNSAzLjUgMCAxIDEtNyAweiJ9XSxbInBhdGgiLHtkOiJNNSAxOS41QTMuNSAzLjUgMCAwIDEgOC41IDE2SDEydjMuNWEzLjUgMy41IDAgMSAxLTcgMHoifV0sWyJwYXRoIix7ZDoiTTUgMTIuNUEzLjUgMy41IDAgMCAxIDguNSA5SDEydjdIOC41QTMuNSAzLjUgMCAwIDEgNSAxMi41eiJ9XV0sdlV0PVtbInBhdGgiLHtkOiJNMTMuNjU5IDIySDE4YTIgMiAwIDAgMCAyLTJWOGEyLjQgMi40IDAgMCAwLS43MDYtMS43MDZsLTMuNTg4LTMuNTg4QTIuNCAyLjQgMCAwIDAgMTQgMkg2YTIgMiAwIDAgMC0yIDJ2MTEuNSJ9XSxbInBhdGgiLHtkOiJNMTQgMnY1YTEgMSAwIDAgMCAxIDFoNSJ9XSxbInBhdGgiLHtkOiJNOCAxMnYtMSJ9XSxbInBhdGgiLHtkOiJNOCAxOHYtMiJ9XSxbInBhdGgiLHtkOiJNOCA3VjYifV0sWyJjaXJjbGUiLHtjeDoiOCIsY3k6IjIwIixyOiIyIn1dXSwkJD1bWyJwYXRoIix7ZDoiTTYgMjJhMiAyIDAgMCAxLTItMlY0YTIgMiAwIDAgMSAyLTJoOGEyLjQgMi40IDAgMCAxIDEuNzA0LjcwNmwzLjU4OCAzLjU4OEEyLjQgMi40IDAgMCAxIDIwIDh2MTJhMiAyIDAgMCAxLTIgMnoifV0sWyJwYXRoIix7ZDoiTTE0IDJ2NWExIDEgMCAwIDAgMSAxaDUifV0sWyJwYXRoIix7ZDoibTggMTggNC00In1dLFsicGF0aCIse2Q6Ik04IDEwdjhoOCJ9XV0sSSQ9W1sicGF0aCIse2Q6Ik0xMyAyMmg1YTIgMiAwIDAgMCAyLTJWOGEyLjQgMi40IDAgMCAwLS43MDYtMS43MDZsLTMuNTg4LTMuNTg4QTIuNCAyLjQgMCAwIDAgMTQgMkg2YTIgMiAwIDAgMC0yIDJ2My4zIn1dLFsicGF0aCIse2Q6Ik0xNCAydjVhMSAxIDAgMCAwIDEgMWg1In1dLFsicGF0aCIse2Q6Im03LjY5IDE2LjQ3OSAxLjI5IDQuODhhLjUuNSAwIDAgMS0uNjk4LjU5MWwtMS44NDMtLjg0OWExIDEgMCAwIDAtLjg3OS4wMDFsLTEuODQ2Ljg1YS41LjUgMCAwIDEtLjY5Mi0uNTkzbDEuMjktNC44OCJ9XSxbImNpcmNsZSIse2N4OiI2IixjeToiMTQiLHI6IjMifV1dLFAkPVtbInBhdGgiLHtkOiJNMTQgMjJoNGEyIDIgMCAwIDAgMi0yVjhhMi40IDIuNCAwIDAgMC0uNzA2LTEuNzA2bC0zLjU4OC0zLjU4OEEyLjQgMi40IDAgMCAwIDE0IDJINmEyIDIgMCAwIDAtMiAydjYifV0sWyJwYXRoIix7ZDoiTTE0IDJ2NWExIDEgMCAwIDAgMSAxaDUifV0sWyJwYXRoIix7ZDoiTTUgMTRhMSAxIDAgMCAwLTEgMXYyYTEgMSAwIDAgMS0xIDEgMSAxIDAgMCAxIDEgMXYyYTEgMSAwIDAgMCAxIDEifV0sWyJwYXRoIix7ZDoiTTkgMjJhMSAxIDAgMCAwIDEtMXYtMmExIDEgMCAwIDEgMS0xIDEgMSAwIDAgMS0xLTF2LTJhMSAxIDAgMCAwLTEtMSJ9XV0seFV0PVtbInBhdGgiLHtkOiJNMTQuNSAyMkgxOGEyIDIgMCAwIDAgMi0yVjhhMi40IDIuNCAwIDAgMC0uNzA2LTEuNzA2bC0zLjU4OC0zLjU4OEEyLjQgMi40IDAgMCAwIDE0IDJINmEyIDIgMCAwIDAtMiAydjMuOCJ9XSxbInBhdGgiLHtkOiJNMTQgMnY1YTEgMSAwIDAgMCAxIDFoNSJ9XSxbInBhdGgiLHtkOiJNMTEuNyAxNC4yIDcgMTdsLTQuNy0yLjgifV0sWyJwYXRoIix7ZDoiTTMgMTMuMWEyIDIgMCAwIDAtLjk5OSAxLjc2djMuMjRhMiAyIDAgMCAwIC45NjkgMS43OEw2IDIxLjdhMiAyIDAgMCAwIDIuMDMuMDFMMTEgMTkuOWEyIDIgMCAwIDAgMS0xLjc2VjE0LjlhMiAyIDAgMCAwLS45Ny0xLjc4TDggMTEuM2EyIDIgMCAwIDAtMi4wMy0uMDF6In1dLFsicGF0aCIse2Q6Ik03IDE3djUifV1dLE4kPVtbInBhdGgiLHtkOiJNNiAyMmEyIDIgMCAwIDEtMi0yVjRhMiAyIDAgMCAxIDItMmg4YTIuNCAyLjQgMCAwIDEgMS43MDQuNzA2bDMuNTg4IDMuNTg4QTIuNCAyLjQgMCAwIDEgMjAgOHYxMmEyIDIgMCAwIDEtMiAyeiJ9XSxbInBhdGgiLHtkOiJNMTQgMnY1YTEgMSAwIDAgMCAxIDFoNSJ9XSxbInBhdGgiLHtkOiJNMTAgMTJhMSAxIDAgMCAwLTEgMXYxYTEgMSAwIDAgMS0xIDEgMSAxIDAgMCAxIDEgMXYxYTEgMSAwIDAgMCAxIDEifV0sWyJwYXRoIix7ZDoiTTE0IDE4YTEgMSAwIDAgMCAxLTF2LTFhMSAxIDAgMCAxIDEtMSAxIDEgMCAwIDEtMS0xdi0xYTEgMSAwIDAgMC0xLTEifV1dLEYkPVtbInBhdGgiLHtkOiJNNiAyMmEyIDIgMCAwIDEtMi0yVjRhMiAyIDAgMCAxIDItMmg4YTIuNCAyLjQgMCAwIDEgMS43MDQuNzA2bDMuNTg4IDMuNTg4QTIuNCAyLjQgMCAwIDEgMjAgOHYxMmEyIDIgMCAwIDEtMiAyeiJ9XSxbInBhdGgiLHtkOiJNMTQgMnY1YTEgMSAwIDAgMCAxIDFoNSJ9XSxbInBhdGgiLHtkOiJNOCAxOHYtMiJ9XSxbInBhdGgiLHtkOiJNMTIgMTh2LTQifV0sWyJwYXRoIix7ZDoiTTE2IDE4di02In1dXSxPJD1bWyJwYXRoIix7ZDoiTTYgMjJhMiAyIDAgMCAxLTItMlY0YTIgMiAwIDAgMSAyLTJoOGEyLjQgMi40IDAgMCAxIDEuNzA0LjcwNmwzLjU4OCAzLjU4OEEyLjQgMi40IDAgMCAxIDIwIDh2MTJhMiAyIDAgMCAxLTIgMnoifV0sWyJwYXRoIix7ZDoiTTE0IDJ2NWExIDEgMCAwIDAgMSAxaDUifV0sWyJwYXRoIix7ZDoiTTggMTh2LTEifV0sWyJwYXRoIix7ZDoiTTEyIDE4di02In1dLFsicGF0aCIse2Q6Ik0xNiAxOHYtMyJ9XV0sUiQ9W1sicGF0aCIse2Q6Ik02IDIyYTIgMiAwIDAgMS0yLTJWNGEyIDIgMCAwIDEgMi0yaDhhMi40IDIuNCAwIDAgMSAxLjcwNC43MDZsMy41ODggMy41ODhBMi40IDIuNCAwIDAgMSAyMCA4djEyYTIgMiAwIDAgMS0yIDJ6In1dLFsicGF0aCIse2Q6Ik0xNCAydjVhMSAxIDAgMCAwIDEgMWg1In1dLFsicGF0aCIse2Q6Im0xNiAxMy0zLjUgMy41LTItMkw4IDE3In1dXSxCJD1bWyJwYXRoIix7ZDoiTTE1Ljk0MSAyMkgxOGEyIDIgMCAwIDAgMi0yVjhhMi40IDIuNCAwIDAgMC0uNzA2LTEuNzA0bC0zLjU4OC0zLjU4OEEyLjQgMi40IDAgMCAwIDE0IDJINmEyIDIgMCAwIDAtMiAydjMuNTEyIn1dLFsicGF0aCIse2Q6Ik0xNCAydjVhMSAxIDAgMCAwIDEgMWg1In1dLFsicGF0aCIse2Q6Ik00LjAxNyAxMS41MTJhNiA2IDAgMSAwIDguNDY2IDguNDc1In1dLFsicGF0aCIse2Q6Ik05IDE2YTEgMSAwIDAgMS0xLTF2LTRjMC0uNTUyLjQ1LTEuMDA4Ljk5NS0uOTE3YTYgNiAwIDAgMSA0LjkyMiA0LjkyMmMuMDkxLjU0NC0uMzY1Ljk5NS0uOTE3Ljk5NXoifV1dLEgkPVtbInBhdGgiLHtkOiJNMTAuNSAyMkg2YTIgMiAwIDAgMS0yLTJWNGEyIDIgMCAwIDEgMi0yaDhhMi40IDIuNCAwIDAgMSAxLjcwNi43MDZsMy41ODggMy41ODhBMi40IDIuNCAwIDAgMSAyMCA4djYifV0sWyJwYXRoIix7ZDoiTTE0IDJ2NWExIDEgMCAwIDAgMSAxaDUifV0sWyJwYXRoIix7ZDoibTE0IDIwIDIgMiA0LTQifV1dLHlVdD1bWyJwYXRoIix7ZDoiTTE2IDIyaDJhMiAyIDAgMCAwIDItMlY4YTIuNCAyLjQgMCAwIDAtLjcwNi0xLjcwNmwtMy41ODgtMy41ODhBMi40IDIuNCAwIDAgMCAxNCAySDZhMiAyIDAgMCAwLTIgMnYyLjg1In1dLFsicGF0aCIse2Q6Ik0xNCAydjVhMSAxIDAgMCAwIDEgMWg1In1dLFsicGF0aCIse2Q6Ik04IDE0djIuMmwxLjYgMSJ9XSxbImNpcmNsZSIse2N4OiI4IixjeToiMTYiLHI6IjYifV1dLHdVdD1bWyJwYXRoIix7ZDoiTTYgMjJhMiAyIDAgMCAxLTItMlY0YTIgMiAwIDAgMSAyLTJoOGEyLjQgMi40IDAgMCAxIDEuNzA0LjcwNmwzLjU4OCAzLjU4OEEyLjQgMi40IDAgMCAxIDIwIDh2MTJhMiAyIDAgMCAxLTIgMnoifV0sWyJwYXRoIix7ZDoiTTE0IDJ2NWExIDEgMCAwIDAgMSAxaDUifV0sWyJwYXRoIix7ZDoibTkgMTUgMiAyIDQtNCJ9XV0scSQ9W1sicGF0aCIse2Q6Ik00IDEyLjE1VjRhMiAyIDAgMCAxIDItMmg4YTIuNCAyLjQgMCAwIDEgMS43MDYuNzA2bDMuNTg4IDMuNTg4QTIuNCAyLjQgMCAwIDEgMjAgOHYxMmEyIDIgMCAwIDEtMiAyaC0zLjM1In1dLFsicGF0aCIse2Q6Ik0xNCAydjVhMSAxIDAgMCAwIDEgMWg1In1dLFsicGF0aCIse2Q6Im01IDE2LTMgMyAzIDMifV0sWyJwYXRoIix7ZDoibTkgMjIgMy0zLTMtMyJ9XV0sTVV0PVtbInBhdGgiLHtkOiJNNiAyMmEyIDIgMCAwIDEtMi0yVjRhMiAyIDAgMCAxIDItMmg4YTIuNCAyLjQgMCAwIDEgMS43MDQuNzA2bDMuNTg4IDMuNTg4QTIuNCAyLjQgMCAwIDEgMjAgOHYxMmEyIDIgMCAwIDEtMiAyeiJ9XSxbInBhdGgiLHtkOiJNMTQgMnY1YTEgMSAwIDAgMCAxIDFoNSJ9XSxbInBhdGgiLHtkOiJNMTAgMTIuNSA4IDE1bDIgMi41In1dLFsicGF0aCIse2Q6Im0xNCAxMi41IDIgMi41LTIgMi41In1dXSxqJD1bWyJwYXRoIix7ZDoiTTE1IDhhMSAxIDAgMCAxLTEtMVYyYTIuNCAyLjQgMCAwIDEgMS43MDQuNzA2bDMuNTg4IDMuNTg4QTIuNCAyLjQgMCAwIDEgMjAgOHoifV0sWyJwYXRoIix7ZDoiTTIwIDh2MTJhMiAyIDAgMCAxLTIgMmgtNC4xODIifV0sWyJwYXRoIix7ZDoibTMuMzA1IDE5LjUzLjkyMy0uMzgyIn1dLFsicGF0aCIse2Q6Ik00IDEwLjU5MlY0YTIgMiAwIDAgMSAyLTJoOCJ9XSxbInBhdGgiLHtkOiJtNC4yMjggMTYuODUyLS45MjQtLjM4MyJ9XSxbInBhdGgiLHtkOiJtNS44NTIgMTUuMjI4LS4zODMtLjkyMyJ9XSxbInBhdGgiLHtkOiJtNS44NTIgMjAuNzcyLS4zODMuOTI0In1dLFsicGF0aCIse2Q6Im04LjE0OCAxNS4yMjguMzgzLS45MjMifV0sWyJwYXRoIix7ZDoibTguNTMgMjEuNjk2LS4zODItLjkyNCJ9XSxbInBhdGgiLHtkOiJtOS43NzMgMTYuODUyLjkyMi0uMzgzIn1dLFsicGF0aCIse2Q6Im05Ljc3MyAxOS4xNDguOTIyLjM4MyJ9XSxbImNpcmNsZSIse2N4OiI3IixjeToiMTgiLHI6IjMifV1dLGtVdD1bWyJwYXRoIix7ZDoiTTYgMjJhMiAyIDAgMCAxLTItMlY0YTIgMiAwIDAgMSAyLTJoOGEyLjQgMi40IDAgMCAxIDEuNzA0LjcwNmwzLjU4OCAzLjU4OEEyLjQgMi40IDAgMCAxIDIwIDh2MTJhMiAyIDAgMCAxLTIgMnoifV0sWyJwYXRoIix7ZDoiTTkgMTBoNiJ9XSxbInBhdGgiLHtkOiJNMTIgMTNWNyJ9XSxbInBhdGgiLHtkOiJNOSAxN2g2In1dXSxTVXQ9W1sicGF0aCIse2Q6Ik00IDEyVjRhMiAyIDAgMCAxIDItMmg4YTIuNCAyLjQgMCAwIDEgMS43MDYuNzA2bDMuNTg4IDMuNTg4QTIuNCAyLjQgMCAwIDEgMjAgOHYxMmEyIDIgMCAwIDEtMiAyIn1dLFsicGF0aCIse2Q6Ik0xNCAydjVhMSAxIDAgMCAwIDEgMWg1In1dLFsicGF0aCIse2Q6Ik0xMCAxNmgydjYifV0sWyJwYXRoIix7ZDoiTTEwIDIyaDQifV0sWyJyZWN0Iix7eDoiMiIseToiMTYiLHdpZHRoOiI0IixoZWlnaHQ6IjYiLHJ4OiIyIn1dXSx6VXQ9W1sicGF0aCIse2Q6Ik02IDIyYTIgMiAwIDAgMS0yLTJWNGEyIDIgMCAwIDEgMi0yaDhhMi40IDIuNCAwIDAgMSAxLjcwNC43MDZsMy41ODggMy41ODhBMi40IDIuNCAwIDAgMSAyMCA4djEyYTIgMiAwIDAgMS0yIDJ6In1dLFsicGF0aCIse2Q6Ik0xNCAydjVhMSAxIDAgMCAwIDEgMWg1In1dLFsicGF0aCIse2Q6Ik0xMiAxOHYtNiJ9XSxbInBhdGgiLHtkOiJtOSAxNSAzIDMgMy0zIn1dXSxWJD1bWyJwYXRoIix7ZDoiTTYgMjJhMiAyIDAgMCAxLTItMlY0YTIgMiAwIDAgMSAyLTJoOGEyLjQgMi40IDAgMCAxIDEuNzA0LjcwNmwzLjU4OCAzLjU4OEEyLjQgMi40IDAgMCAxIDIwIDh2MTJhMiAyIDAgMCAxLTIgMnoifV0sWyJwYXRoIix7ZDoiTTEyIDl2NCJ9XSxbInBhdGgiLHtkOiJNMTIgMTdoLjAxIn1dXSxWcD1bWyJwYXRoIix7ZDoiTTQgNi44MzVWNGEyIDIgMCAwIDEgMi0yaDhhMi40IDIuNCAwIDAgMSAxLjcwNi43MDZsMy41ODggMy41ODhBMi40IDIuNCAwIDAgMSAyMCA4djEyYTIgMiAwIDAgMS0yIDJoLS4zNDMifV0sWyJwYXRoIix7ZDoiTTE0IDJ2NWExIDEgMCAwIDAgMSAxaDUifV0sWyJwYXRoIix7ZDoiTTIgMTlhMiAyIDAgMCAxIDQgMHYxYTIgMiAwIDAgMS00IDB2LTRhNiA2IDAgMCAxIDEyIDB2NGEyIDIgMCAwIDEtNCAwdi0xYTIgMiAwIDAgMSA0IDAifV1dLENVdD1bWyJwYXRoIix7ZDoiTTEzIDIyaDVhMiAyIDAgMCAwIDItMlY4YTIuNCAyLjQgMCAwIDAtLjcwNi0xLjcwNmwtMy41ODgtMy41ODhBMi40IDIuNCAwIDAgMCAxNCAySDZhMiAyIDAgMCAwLTIgMnY3In1dLFsicGF0aCIse2Q6Ik0xNCAydjVhMSAxIDAgMCAwIDEgMWg1In1dLFsicGF0aCIse2Q6Ik0zLjYyIDE4LjhBMi4yNSAyLjI1IDAgMSAxIDcgMTUuODM2YTIuMjUgMi4yNSAwIDEgMSAzLjM4IDIuOTY2bC0yLjYyNiAyLjg1NmExIDEgMCAwIDEtMS41MDcgMHoifV1dLFRVdD1bWyJwYXRoIix7ZDoiTTYgMjJhMiAyIDAgMCAxLTItMlY0YTIgMiAwIDAgMSAyLTJoOGEyLjQgMi40IDAgMCAxIDEuNzA0LjcwNmwzLjU4OCAzLjU4OEEyLjQgMi40IDAgMCAxIDIwIDh2MTJhMiAyIDAgMCAxLTIgMnoifV0sWyJwYXRoIix7ZDoiTTE0IDJ2NWExIDEgMCAwIDAgMSAxaDUifV0sWyJjaXJjbGUiLHtjeDoiMTAiLGN5OiIxMiIscjoiMiJ9XSxbInBhdGgiLHtkOiJtMjAgMTctMS4yOTYtMS4yOTZhMi40MSAyLjQxIDAgMCAwLTMuNDA4IDBMOSAyMiJ9XV0sX1V0PVtbInBhdGgiLHtkOiJNNCAxMVY0YTIgMiAwIDAgMSAyLTJoOGEyLjQgMi40IDAgMCAxIDEuNzA2LjcwNmwzLjU4OCAzLjU4OEEyLjQgMi40IDAgMCAxIDIwIDh2MTJhMiAyIDAgMCAxLTIgMkg2YTIgMiAwIDAgMS0yLTJ2LTEifV0sWyJwYXRoIix7ZDoiTTE0IDJ2NWExIDEgMCAwIDAgMSAxaDUifV0sWyJwYXRoIix7ZDoiTTIgMTVoMTAifV0sWyJwYXRoIix7ZDoibTkgMTggMy0zLTMtMyJ9XV0sVSQ9W1sicGF0aCIse2Q6Ik0xNCAydjVhMSAxIDAgMCAwIDEgMWg1In1dLFsicGF0aCIse2Q6Ik00IDEydjYifV0sWyJwYXRoIix7ZDoiTTQgMTRoMiJ9XSxbInBhdGgiLHtkOiJNOS42NSAyMkgxOGEyIDIgMCAwIDAgMi0yVjhhMi40IDIuNCAwIDAgMC0uNzA2LTEuNzA2bC0zLjU4OC0zLjU4OEEyLjQgMi40IDAgMCAwIDE0IDJINmEyIDIgMCAwIDAtMiAydjQifV0sWyJjaXJjbGUiLHtjeDoiNCIsY3k6IjIwIixyOiIyIn1dXSxXJD1bWyJwYXRoIix7ZDoiTTQgOS44VjRhMiAyIDAgMCAxIDItMmg4YTIuNCAyLjQgMCAwIDEgMS43MDYuNzA2bDMuNTg4IDMuNTg4QTIuNCAyLjQgMCAwIDEgMjAgOHYxMmEyIDIgMCAwIDEtMiAyaC0zIn1dLFsicGF0aCIse2Q6Ik0xNCAydjVhMSAxIDAgMCAwIDEgMWg1In1dLFsicGF0aCIse2Q6Ik05IDE3di0yYTIgMiAwIDAgMC00IDB2MiJ9XSxbInJlY3QiLHt3aWR0aDoiOCIsaGVpZ2h0OiI1Iix4OiIzIix5OiIxNyIscng6IjEifV1dLEckPVtbInBhdGgiLHtkOiJNMjAgMTRWOGEyLjQgMi40IDAgMCAwLS43MDYtMS43MDZsLTMuNTg4LTMuNTg4QTIuNCAyLjQgMCAwIDAgMTQgMkg2YTIgMiAwIDAgMC0yIDJ2MTZhMiAyIDAgMCAwIDIgMmgxMiJ9XSxbInBhdGgiLHtkOiJNMTQgMnY1YTEgMSAwIDAgMCAxIDFoNSJ9XSxbInBhdGgiLHtkOiJNMTQgMThoNiJ9XV0sTFV0PVtbInBhdGgiLHtkOiJNNiAyMmEyIDIgMCAwIDEtMi0yVjRhMiAyIDAgMCAxIDItMmg4YTIuNCAyLjQgMCAwIDEgMS43MDQuNzA2bDMuNTg4IDMuNTg4QTIuNCAyLjQgMCAwIDEgMjAgOHYxMmEyIDIgMCAwIDEtMiAyeiJ9XSxbInBhdGgiLHtkOiJNMTQgMnY1YTEgMSAwIDAgMCAxIDFoNSJ9XSxbInBhdGgiLHtkOiJNOSAxNWg2In1dXSxBVXQ9W1sicGF0aCIse2Q6Ik0xMS42NSAyMkgxOGEyIDIgMCAwIDAgMi0yVjhhMi40IDIuNCAwIDAgMC0uNzA2LTEuNzA2bC0zLjU4OC0zLjU4OEEyLjQgMi40IDAgMCAwIDE0IDJINmEyIDIgMCAwIDAtMiAydjEwLjM1In1dLFsicGF0aCIse2Q6Ik0xNCAydjVhMSAxIDAgMCAwIDEgMWg1In1dLFsicGF0aCIse2Q6Ik04IDIwdi03bDMgMS40NzQifV0sWyJjaXJjbGUiLHtjeDoiNiIsY3k6IjIwIixyOiIyIn1dXSxEVXQ9W1sicGF0aCIse2Q6Ik00LjIyNiAyMC45MjVBMiAyIDAgMCAwIDYgMjJoMTJhMiAyIDAgMCAwIDItMlY4YTIuNCAyLjQgMCAwIDAtLjcwNi0xLjcwNmwtMy41ODgtMy41ODhBMi40IDIuNCAwIDAgMCAxNCAySDZhMiAyIDAgMCAwLTIgMnYzLjEyNyJ9XSxbInBhdGgiLHtkOiJNMTQgMnY1YTEgMSAwIDAgMCAxIDFoNSJ9XSxbInBhdGgiLHtkOiJtNSAxMS0zIDMifV0sWyJwYXRoIix7ZDoibTUgMTctMy0zaDEwIn1dXSxZJD1bWyJwYXRoIix7ZDoibTE4LjIyNiA1LjIyNi0yLjUyLTIuNTJBMi40IDIuNCAwIDAgMCAxNCAySDZhMiAyIDAgMCAwLTIgMnYxNmEyIDIgMCAwIDAgMiAyaDEyYTIgMiAwIDAgMCAyLTJ2LS4zNTEifV0sWyJwYXRoIix7ZDoiTTIxLjM3OCAxMi42MjZhMSAxIDAgMCAwLTMuMDA0LTMuMDA0bC00LjAxIDQuMDEyYTIgMiAwIDAgMC0uNTA2Ljg1NGwtLjgzNyAyLjg3YS41LjUgMCAwIDAgLjYyLjYybDIuODctLjgzN2EyIDIgMCAwIDAgLjg1NC0uNTA2eiJ9XSxbInBhdGgiLHtkOiJNOCAxOGgxIn1dXSxaJD1bWyJwYXRoIix7ZDoiTTEyLjY1OSAyMkgxOGEyIDIgMCAwIDAgMi0yVjhhMi40IDIuNCAwIDAgMC0uNzA2LTEuNzA2bC0zLjU4OC0zLjU4OEEyLjQgMi40IDAgMCAwIDE0IDJINmEyIDIgMCAwIDAtMiAydjkuMzQifV0sWyJwYXRoIix7ZDoiTTE0IDJ2NWExIDEgMCAwIDAgMSAxaDUifV0sWyJwYXRoIix7ZDoiTTEwLjM3OCAxMi42MjJhMSAxIDAgMCAxIDMgMy4wMDNMOC4zNiAyMC42MzdhMiAyIDAgMCAxLS44NTQuNTA2bC0yLjg2Ny44MzdhLjUuNSAwIDAgMS0uNjItLjYybC44MzYtMi44NjlhMiAyIDAgMCAxIC41MDYtLjg1M3oifV1dLFgkPVtbInBhdGgiLHtkOiJNNiAyMmEyIDIgMCAwIDEtMi0yVjRhMiAyIDAgMCAxIDItMmg4YTIuNCAyLjQgMCAwIDEgMS43MDQuNzA2bDMuNTg4IDMuNTg4QTIuNCAyLjQgMCAwIDEgMjAgOHYxMmEyIDIgMCAwIDEtMiAyeiJ9XSxbInBhdGgiLHtkOiJNMTQgMnY1YTEgMSAwIDAgMCAxIDFoNSJ9XSxbInBhdGgiLHtkOiJNMTUuMDMzIDEzLjQ0YS42NDcuNjQ3IDAgMCAxIDAgMS4xMmwtNC4wNjUgMi4zNTJhLjY0NS42NDUgMCAwIDEtLjk2OC0uNTZ2LTQuNzA0YS42NDUuNjQ1IDAgMCAxIC45NjctLjU2eiJ9XV0sUSQ9W1sicGF0aCIse2Q6Ik0xMS4zNSAyMkg2YTIgMiAwIDAgMS0yLTJWNGEyIDIgMCAwIDEgMi0yaDhhMi40IDIuNCAwIDAgMSAxLjcwNi43MDZsMy41ODggMy41ODhBMi40IDIuNCAwIDAgMSAyMCA4djUuMzUifV0sWyJwYXRoIix7ZDoiTTE0IDJ2NWExIDEgMCAwIDAgMSAxaDUifV0sWyJwYXRoIix7ZDoiTTE0IDE5aDYifV0sWyJwYXRoIix7ZDoiTTE3IDE2djYifV1dLEokPVtbInBhdGgiLHtkOiJNNiAyMmEyIDIgMCAwIDEtMi0yVjRhMiAyIDAgMCAxIDItMmg4YTIuNCAyLjQgMCAwIDEgMS43MDQuNzA2bDMuNTg4IDMuNTg4QTIuNCAyLjQgMCAwIDEgMjAgOHYxMmEyIDIgMCAwIDEtMiAyeiJ9XSxbInBhdGgiLHtkOiJNMTIgMTdoLjAxIn1dLFsicGF0aCIse2Q6Ik05LjEgOWEzIDMgMCAwIDEgNS44MiAxYzAgMi0zIDMtMyAzIn1dXSxFVXQ9W1sicGF0aCIse2Q6Ik02IDIyYTIgMiAwIDAgMS0yLTJWNGEyIDIgMCAwIDEgMi0yaDhhMi40IDIuNCAwIDAgMSAxLjcwNC43MDZsMy41ODggMy41ODhBMi40IDIuNCAwIDAgMSAyMCA4djEyYTIgMiAwIDAgMS0yIDJ6In1dLFsicGF0aCIse2Q6Ik0xNCAydjVhMSAxIDAgMCAwIDEgMWg1In1dLFsicGF0aCIse2Q6Ik05IDE1aDYifV0sWyJwYXRoIix7ZDoiTTEyIDE4di02In1dXSwkVXQ9W1sicGF0aCIse2Q6Ik0yMCAxMFY4YTIuNCAyLjQgMCAwIDAtLjcwNi0xLjcwNGwtMy41ODgtMy41ODhBMi40IDIuNCAwIDAgMCAxNCAySDZhMiAyIDAgMCAwLTIgMnYxNmEyIDIgMCAwIDAgMiAyaDQuMzUifV0sWyJwYXRoIix7ZDoiTTE0IDJ2NWExIDEgMCAwIDAgMSAxaDUifV0sWyJwYXRoIix7ZDoiTTE2IDE0YTIgMiAwIDAgMC0yIDIifV0sWyJwYXRoIix7ZDoiTTE2IDIyYTIgMiAwIDAgMS0yLTIifV0sWyJwYXRoIix7ZDoiTTIwIDE0YTIgMiAwIDAgMSAyIDIifV0sWyJwYXRoIix7ZDoiTTIwIDIyYTIgMiAwIDAgMCAyLTIifV1dLElVdD1bWyJwYXRoIix7ZDoiTTYgMjJhMiAyIDAgMCAxLTItMlY0YTIgMiAwIDAgMSAyLTJoOGEyLjQgMi40IDAgMCAxIDEuNzA0LjcwNmwzLjU4OCAzLjU4OEEyLjQgMi40IDAgMCAxIDIwIDh2MTJhMiAyIDAgMCAxLTIgMnoifV0sWyJwYXRoIix7ZDoiTTE0IDJ2NWExIDEgMCAwIDAgMSAxaDUifV0sWyJjaXJjbGUiLHtjeDoiMTEuNSIsY3k6IjE0LjUiLHI6IjIuNSJ9XSxbInBhdGgiLHtkOiJNMTMuMyAxNi4zIDE1IDE4In1dXSxLJD1bWyJwYXRoIix7ZDoiTTExLjEgMjJINmEyIDIgMCAwIDEtMi0yVjRhMiAyIDAgMCAxIDItMmg4YTIuNCAyLjQgMCAwIDEgMS43MDYuNzA2bDMuNTg5IDMuNTg4QTIuNCAyLjQgMCAwIDEgMjAgOHYzLjI1In1dLFsicGF0aCIse2Q6Ik0xNCAydjVhMSAxIDAgMCAwIDEgMWg1In1dLFsicGF0aCIse2Q6Im0yMSAyMi0yLjg4LTIuODgifV0sWyJjaXJjbGUiLHtjeDoiMTYiLGN5OiIxNyIscjoiMyJ9XV0sZUk9W1sicGF0aCIse2Q6Ik02IDIyYTIgMiAwIDAgMS0yLTJWNGEyIDIgMCAwIDEgMi0yaDhhMi40IDIuNCAwIDAgMSAxLjcwNC43MDZsMy41ODggMy41ODhBMi40IDIuNCAwIDAgMSAyMCA4djEyYTIgMiAwIDAgMS0yIDJ6In1dLFsicGF0aCIse2Q6Ik0xNCAydjVhMSAxIDAgMCAwIDEgMWg1In1dLFsicGF0aCIse2Q6Ik04IDE1aC4wMSJ9XSxbInBhdGgiLHtkOiJNMTEuNSAxMy41YTIuNSAyLjUgMCAwIDEgMCAzIn1dLFsicGF0aCIse2Q6Ik0xNSAxMmE1IDUgMCAwIDEgMCA2In1dXSxQVXQ9W1sicGF0aCIse2Q6Ik02IDIyYTIgMiAwIDAgMS0yLTJWNGEyIDIgMCAwIDEgMi0yaDhhMi40IDIuNCAwIDAgMSAxLjcwNC43MDZsMy41ODggMy41ODhBMi40IDIuNCAwIDAgMSAyMCA4djEyYTIgMiAwIDAgMS0yIDJ6In1dLFsicGF0aCIse2Q6Ik0xNCAydjVhMSAxIDAgMCAwIDEgMWg1In1dLFsicGF0aCIse2Q6Ik04IDEyaDgifV0sWyJwYXRoIix7ZDoiTTEwIDExdjIifV0sWyJwYXRoIix7ZDoiTTggMTdoOCJ9XSxbInBhdGgiLHtkOiJNMTQgMTZ2MiJ9XV0sTlV0PVtbInBhdGgiLHtkOiJNNiAyMmEyIDIgMCAwIDEtMi0yVjRhMiAyIDAgMCAxIDItMmg4YTIuNCAyLjQgMCAwIDEgMS43MDQuNzA2bDMuNTg4IDMuNTg4QTIuNCAyLjQgMCAwIDEgMjAgOHYxMmEyIDIgMCAwIDEtMiAyeiJ9XSxbInBhdGgiLHtkOiJNMTQgMnY1YTEgMSAwIDAgMCAxIDFoNSJ9XSxbInBhdGgiLHtkOiJNOCAxM2gyIn1dLFsicGF0aCIse2Q6Ik0xNCAxM2gyIn1dLFsicGF0aCIse2Q6Ik04IDE3aDIifV0sWyJwYXRoIix7ZDoiTTE0IDE3aDIifV1dLEZVdD1bWyJwYXRoIix7ZDoiTTExIDIxYTEgMSAwIDAgMS0xIDFINGExIDEgMCAwIDEtMS0xdi04YTEgMSAwIDAgMSAxLTEifV0sWyJwYXRoIix7ZDoiTTE2IDE2YTEgMSAwIDAgMS0xIDFIOWExIDEgMCAwIDEtMS0xVjhhMSAxIDAgMCAxIDEtMSJ9XSxbInBhdGgiLHtkOiJNMjEgNmEyIDIgMCAwIDAtLjU4Ni0xLjQxNGwtMi0yQTIgMiAwIDAgMCAxNyAyaC0zYTEgMSAwIDAgMC0xIDF2OGExIDEgMCAwIDAgMSAxaDZhMSAxIDAgMCAwIDEtMXoifV1dLE9VdD1bWyJwYXRoIix7ZDoiTTQgMTFWNGEyIDIgMCAwIDEgMi0yaDhhMi40IDIuNCAwIDAgMSAxLjcwNi43MDZsMy41ODggMy41ODhBMi40IDIuNCAwIDAgMSAyMCA4djEyYTIgMiAwIDAgMS0yIDJINmEyIDIgMCAwIDEtMi0ydi0zYTIgMiAwIDAgMSAyLTJoNyJ9XSxbInBhdGgiLHtkOiJNMTQgMnY1YTEgMSAwIDAgMCAxIDFoNSJ9XSxbInBhdGgiLHtkOiJtMTAgMTggMy0zLTMtMyJ9XV0sUlV0PVtbInBhdGgiLHtkOiJNNiAyMmEyIDIgMCAwIDEtMi0yVjRhMiAyIDAgMCAxIDItMmg4YTIuNCAyLjQgMCAwIDEgMS43MDQuNzA2bDMuNTg4IDMuNTg4QTIuNCAyLjQgMCAwIDEgMjAgOHYxMmEyIDIgMCAwIDEtMiAyeiJ9XSxbInBhdGgiLHtkOiJNMTQgMnY1YTEgMSAwIDAgMCAxIDFoNSJ9XSxbInBhdGgiLHtkOiJtOCAxNiAyLTItMi0yIn1dLFsicGF0aCIse2Q6Ik0xMiAxOGg0In1dXSxCVXQ9W1sicGF0aCIse2Q6Ik02IDIyYTIgMiAwIDAgMS0yLTJWNGEyIDIgMCAwIDEgMi0yaDhhMi40IDIuNCAwIDAgMSAxLjcwNC43MDZsMy41ODggMy41ODhBMi40IDIuNCAwIDAgMSAyMCA4djEyYTIgMiAwIDAgMS0yIDJ6In1dLFsicGF0aCIse2Q6Ik0xNCAydjVhMSAxIDAgMCAwIDEgMWg1In1dLFsicGF0aCIse2Q6Ik0xMCA5SDgifV0sWyJwYXRoIix7ZDoiTTE2IDEzSDgifV0sWyJwYXRoIix7ZDoiTTE2IDE3SDgifV1dLHRJPVtbInBhdGgiLHtkOiJNMTIgMjJoNmEyIDIgMCAwIDAgMi0yVjhhMi40IDIuNCAwIDAgMC0uNzA2LTEuNzA2bC0zLjU4OC0zLjU4OEEyLjQgMi40IDAgMCAwIDE0IDJINmEyIDIgMCAwIDAtMiAydjYifV0sWyJwYXRoIix7ZDoiTTE0IDJ2NWExIDEgMCAwIDAgMSAxaDUifV0sWyJwYXRoIix7ZDoiTTMgMTZ2LTEuNWEuNS41IDAgMCAxIC41LS41aDdhLjUuNSAwIDAgMSAuNS41VjE2In1dLFsicGF0aCIse2Q6Ik02IDIyaDIifV0sWyJwYXRoIix7ZDoiTTcgMTR2OCJ9XV0sSFV0PVtbInBhdGgiLHtkOiJNNiAyMmEyIDIgMCAwIDEtMi0yVjRhMiAyIDAgMCAxIDItMmg4YTIuNCAyLjQgMCAwIDEgMS43MDQuNzA2bDMuNTg4IDMuNTg4QTIuNCAyLjQgMCAwIDEgMjAgOHYxMmEyIDIgMCAwIDEtMiAyeiJ9XSxbInBhdGgiLHtkOiJNMTQgMnY1YTEgMSAwIDAgMCAxIDFoNSJ9XSxbInBhdGgiLHtkOiJNMTEgMThoMiJ9XSxbInBhdGgiLHtkOiJNMTIgMTJ2NiJ9XSxbInBhdGgiLHtkOiJNOSAxM3YtLjVhLjUuNSAwIDAgMSAuNS0uNWg1YS41LjUgMCAwIDEgLjUuNXYuNSJ9XV0scVV0PVtbInBhdGgiLHtkOiJNNiAyMmEyIDIgMCAwIDEtMi0yVjRhMiAyIDAgMCAxIDItMmg4YTIuNCAyLjQgMCAwIDEgMS43MDQuNzA2bDMuNTg4IDMuNTg4QTIuNCAyLjQgMCAwIDEgMjAgOHYxMmEyIDIgMCAwIDEtMiAyeiJ9XSxbInBhdGgiLHtkOiJNMTQgMnY1YTEgMSAwIDAgMCAxIDFoNSJ9XSxbInBhdGgiLHtkOiJNMTIgMTJ2NiJ9XSxbInBhdGgiLHtkOiJtMTUgMTUtMy0zLTMgMyJ9XV0salV0PVtbInBhdGgiLHtkOiJNNiAyMmEyIDIgMCAwIDEtMi0yVjRhMiAyIDAgMCAxIDItMmg4YTIuNCAyLjQgMCAwIDEgMS43MDQuNzA2bDMuNTg4IDMuNTg4QTIuNCAyLjQgMCAwIDEgMjAgOHYxMmEyIDIgMCAwIDEtMiAyeiJ9XSxbInBhdGgiLHtkOiJNMTQgMnY1YTEgMSAwIDAgMCAxIDFoNSJ9XSxbInBhdGgiLHtkOiJNMTYgMjJhNCA0IDAgMCAwLTggMCJ9XSxbImNpcmNsZSIse2N4OiIxMiIsY3k6IjE1IixyOiIzIn1dXSxyST1bWyJwYXRoIix7ZDoiTTQgMTJWNGEyIDIgMCAwIDEgMi0yaDhhMi40IDIuNCAwIDAgMSAxLjcwNi43MDZsMy41ODggMy41ODhBMi40IDIuNCAwIDAgMSAyMCA4djEyYTIgMiAwIDAgMS0yIDIifV0sWyJwYXRoIix7ZDoiTTE0IDJ2NWExIDEgMCAwIDAgMSAxaDUifV0sWyJwYXRoIix7ZDoibTEwIDE3Ljg0MyAzLjAzMy0xLjc1NWEuNjQuNjQgMCAwIDEgLjk2Ny41NnY0LjcwNGEuNjUuNjUgMCAwIDEtLjk2Ny41NkwxMCAyMC4xNTcifV0sWyJyZWN0Iix7d2lkdGg6IjciLGhlaWdodDoiNiIseDoiMyIseToiMTYiLHJ4OiIxIn1dXSxWVXQ9W1sicGF0aCIse2Q6Ik00IDExLjU1VjRhMiAyIDAgMCAxIDItMmg4YTIuNCAyLjQgMCAwIDEgMS43MDYuNzA2bDMuNTg4IDMuNTg4QTIuNCAyLjQgMCAwIDEgMjAgOHYxMmEyIDIgMCAwIDEtMiAyaC0xLjk1In1dLFsicGF0aCIse2Q6Ik0xNCAydjVhMSAxIDAgMCAwIDEgMWg1In1dLFsicGF0aCIse2Q6Ik0xMiAxNWE1IDUgMCAwIDEgMCA2In1dLFsicGF0aCIse2Q6Ik04IDE0LjUwMmEuNS41IDAgMCAwLS44MjYtLjM4MWwtMS44OTMgMS42MzFhMSAxIDAgMCAxLS42NTEuMjQzSDMuNWEuNS41IDAgMCAwLS41LjUwMXYzLjAwNmEuNS41IDAgMCAwIC41LjUwMWgxLjEyOWExIDEgMCAwIDEgLjY1Mi4yNDNsMS44OTMgMS42MzNhLjUuNSAwIDAgMCAuODI2LS4zOHoifV1dLGlJPVtbInBhdGgiLHtkOiJNMTEgMjJINmEyIDIgMCAwIDEtMi0yVjRhMiAyIDAgMCAxIDItMmg4YTIuNCAyLjQgMCAwIDEgMS43MDYuNzA2bDMuNTg4IDMuNTg4QTIuNCAyLjQgMCAwIDEgMjAgOHY1In1dLFsicGF0aCIse2Q6Ik0xNCAydjVhMSAxIDAgMCAwIDEgMWg1In1dLFsicGF0aCIse2Q6Im0xNSAxNyA1IDUifV0sWyJwYXRoIix7ZDoibTIwIDE3LTUgNSJ9XV0sVVV0PVtbInBhdGgiLHtkOiJNNiAyMmEyIDIgMCAwIDEtMi0yVjRhMiAyIDAgMCAxIDItMmg4YTIuNCAyLjQgMCAwIDEgMS43MDQuNzA2bDMuNTg4IDMuNTg4QTIuNCAyLjQgMCAwIDEgMjAgOHYxMmEyIDIgMCAwIDEtMiAyeiJ9XSxbInBhdGgiLHtkOiJNMTQgMnY1YTEgMSAwIDAgMCAxIDFoNSJ9XSxbInBhdGgiLHtkOiJtMTQuNSAxMi41LTUgNSJ9XSxbInBhdGgiLHtkOiJtOS41IDEyLjUgNSA1In1dXSxXVXQ9W1sicGF0aCIse2Q6Ik02IDIyYTIgMiAwIDAgMS0yLTJWNGEyIDIgMCAwIDEgMi0yaDhhMi40IDIuNCAwIDAgMSAxLjcwNC43MDZsMy41ODggMy41ODhBMi40IDIuNCAwIDAgMSAyMCA4djEyYTIgMiAwIDAgMS0yIDJ6In1dLFsicGF0aCIse2Q6Ik0xNCAydjVhMSAxIDAgMCAwIDEgMWg1In1dXSxHVXQ9W1sicGF0aCIse2Q6Ik0xNSAyaC00YTIgMiAwIDAgMC0yIDJ2MTFhMiAyIDAgMCAwIDIgMmg4YTIgMiAwIDAgMCAyLTJWOCJ9XSxbInBhdGgiLHtkOiJNMTYuNzA2IDIuNzA2QTIuNCAyLjQgMCAwIDAgMTUgMnY1YTEgMSAwIDAgMCAxIDFoNWEyLjQgMi40IDAgMCAwLS43MDYtMS43MDZ6In1dLFsicGF0aCIse2Q6Ik01IDdhMiAyIDAgMCAwLTIgMnYxMWEyIDIgMCAwIDAgMiAyaDhhMiAyIDAgMCAwIDEuNzMyLTEifV1dLFlVdD1bWyJyZWN0Iix7d2lkdGg6IjE4IixoZWlnaHQ6IjE4Iix4OiIzIix5OiIzIixyeDoiMiJ9XSxbInBhdGgiLHtkOiJNNyAzdjE4In1dLFsicGF0aCIse2Q6Ik0zIDcuNWg0In1dLFsicGF0aCIse2Q6Ik0zIDEyaDE4In1dLFsicGF0aCIse2Q6Ik0zIDE2LjVoNCJ9XSxbInBhdGgiLHtkOiJNMTcgM3YxOCJ9XSxbInBhdGgiLHtkOiJNMTcgNy41aDQifV0sWyJwYXRoIix7ZDoiTTE3IDE2LjVoNCJ9XV0sYUk9W1sicGF0aCIse2Q6Ik0xMiAxMGEyIDIgMCAwIDAtMiAyYzAgMS4wMi0uMSAyLjUxLS4yNiA0In1dLFsicGF0aCIse2Q6Ik0xNCAxMy4xMmMwIDIuMzggMCA2LjM4LTEgOC44OCJ9XSxbInBhdGgiLHtkOiJNMTcuMjkgMjEuMDJjLjEyLS42LjQzLTIuMy41LTMuMDIifV0sWyJwYXRoIix7ZDoiTTIgMTJhMTAgMTAgMCAwIDEgMTgtNiJ9XSxbInBhdGgiLHtkOiJNMiAxNmguMDEifV0sWyJwYXRoIix7ZDoiTTIxLjggMTZjLjItMiAuMTMxLTUuMzU0IDAtNiJ9XSxbInBhdGgiLHtkOiJNNSAxOS41QzUuNSAxOCA2IDE1IDYgMTJhNiA2IDAgMCAxIC4zNC0yIn1dLFsicGF0aCIse2Q6Ik04LjY1IDIyYy4yMS0uNjYuNDUtMS4zMi41Ny0yIn1dLFsicGF0aCIse2Q6Ik05IDYuOGE2IDYgMCAwIDEgOSA1LjJ2MiJ9XV0sWlV0PVtbInBhdGgiLHtkOiJNMTUgNi41VjNhMSAxIDAgMCAwLTEtMWgtMmExIDEgMCAwIDAtMSAxdjMuNSJ9XSxbInBhdGgiLHtkOiJNOSAxOGg4In1dLFsicGF0aCIse2Q6Ik0xOCAzaC0zIn1dLFsicGF0aCIse2Q6Ik0xMSAzYTYgNiAwIDAgMC02IDZ2MTEifV0sWyJwYXRoIix7ZDoiTTUgMTNoNCJ9XSxbInBhdGgiLHtkOiJNMTcgMTBhNCA0IDAgMCAwLTggMHYxMGEyIDIgMCAwIDAgMiAyaDRhMiAyIDAgMCAwIDItMloifV1dLFhVdD1bWyJwYXRoIix7ZDoiTTE4IDEyLjQ3di4wM20wLS41di40N20tLjQ3NSA1LjA1NkE2Ljc0NCA2Ljc0NCAwIDAgMSAxNSAxOGMtMy41NiAwLTcuNTYtMi41My04LjUtNiAuMzQ4LTEuMjggMS4xMTQtMi40MzMgMi4xMjEtMy4zOG0zLjQ0NC0yLjA4OEE4LjgwMiA4LjgwMiAwIDAgMSAxNSA2YzMuNTYgMCA2LjA2IDIuNTQgNyA2LS4zMDkgMS4xNC0uNzg2IDIuMTc3LTEuNDEzIDMuMDU4In1dLFsicGF0aCIse2Q6Ik03IDEwLjY3QzcgOCA1LjU4IDUuOTcgMi43MyA1LjVjLTEgMS41LTEgNSAuMjMgNi41LTEuMjQgMS41LTEuMjQgNS0uMjMgNi41QzUuNTggMTguMDMgNyAxNiA3IDEzLjMzbTcuNDgtNC4zNzJBOS43NyA5Ljc3IDAgMCAxIDE2IDYuMDdtMCAxMS44NmE5Ljc3IDkuNzcgMCAwIDEtMS43MjgtMy42MTgifV0sWyJwYXRoIix7ZDoibTE2LjAxIDE3LjkzLS4yMyAxLjRBMiAyIDAgMCAxIDEzLjggMjFIOS41YTUuOTYgNS45NiAwIDAgMCAxLjQ5LTMuOThNOC41MyAzaDUuMjdhMiAyIDAgMCAxIDEuOTggMS42N2wuMjMgMS40TTIgMmwyMCAyMCJ9XV0sUVV0PVtbInBhdGgiLHtkOiJNMiAxNnM5LTE1IDIwLTRDMTEgMjMgMiA4IDIgOCJ9XV0sSlV0PVtbInBhdGgiLHtkOiJNNi41IDEyYy45NC0zLjQ2IDQuOTQtNiA4LjUtNiAzLjU2IDAgNi4wNiAyLjU0IDcgNi0uOTQgMy40Ny0zLjQ0IDYtNyA2cy03LjU2LTIuNTMtOC41LTZaIn1dLFsicGF0aCIse2Q6Ik0xOCAxMnYuNSJ9XSxbInBhdGgiLHtkOiJNMTYgMTcuOTNhOS43NyA5Ljc3IDAgMCAxIDAtMTEuODYifV0sWyJwYXRoIix7ZDoiTTcgMTAuNjdDNyA4IDUuNTggNS45NyAyLjczIDUuNWMtMSAxLjUtMSA1IC4yMyA2LjUtMS4yNCAxLjUtMS4yNCA1LS4yMyA2LjVDNS41OCAxOC4wMyA3IDE2IDcgMTMuMzMifV0sWyJwYXRoIix7ZDoiTTEwLjQ2IDcuMjZDMTAuMiA1Ljg4IDkuMTcgNC4yNCA4IDNoNS44YTIgMiAwIDAgMSAxLjk4IDEuNjdsLjIzIDEuNCJ9XSxbInBhdGgiLHtkOiJtMTYuMDEgMTcuOTMtLjIzIDEuNEEyIDIgMCAwIDEgMTMuOCAyMUg5LjVhNS45NiA1Ljk2IDAgMCAwIDEuNDktMy45OCJ9XV0sS1V0PVtbInBhdGgiLHtkOiJtMTcuNTg2IDExLjQxNC01LjkzIDUuOTNhMSAxIDAgMCAxLTgtOGwzLjEzNy0zLjEzN2EuNzA3LjcwNyAwIDAgMSAxLjIwNy41VjEwIn1dLFsicGF0aCIse2Q6Ik0yMC40MTQgOC41ODYgMjIgNyJ9XSxbImNpcmNsZSIse2N4OiIxOSIsY3k6IjEwIixyOiIyIn1dXSxlV3Q9W1sicGF0aCIse2Q6Ik0xNiAxNmMtMyAwLTUtMi04LTJhNiA2IDAgMCAwLTQgMS41MjgifV0sWyJwYXRoIix7ZDoibTIgMiAyMCAyMCJ9XSxbInBhdGgiLHtkOiJNNCAyMlY0In1dLFsicGF0aCIse2Q6Ik03LjY1NiAySDhjMyAwIDUgMiA3LjMzMyAycTIgMCAzLjA2Ny0uOEExIDEgMCAwIDEgMjAgNHYxMC4zNDcifV1dLHRXdD1bWyJwYXRoIix7ZDoiTTE4IDIyVjIuOGEuOC44IDAgMCAwLTEuMTctLjcxTDUuNDUgNy43OGEuOC44IDAgMCAwIDAgMS40NEwxOCAxNS41In1dXSxyV3Q9W1sicGF0aCIse2Q6Ik02IDIyVjIuOGEuOC44IDAgMCAxIDEuMTctLjcxbDExLjM4IDUuNjlhLjguOCAwIDAgMSAwIDEuNDRMNiAxNS41In1dXSxpV3Q9W1sicGF0aCIse2Q6Ik00IDIyVjRhMSAxIDAgMCAxIC40LS44QTYgNiAwIDAgMSA4IDJjMyAwIDUgMiA3LjMzMyAycTIgMCAzLjA2Ny0uOEExIDEgMCAwIDEgMjAgNHYxMGExIDEgMCAwIDEtLjQuOEE2IDYgMCAwIDEgMTYgMTZjLTMgMC01LTItOC0yYTYgNiAwIDAgMC00IDEuNTI4In1dXSxhV3Q9W1sicGF0aCIse2Q6Ik0xMiAyYzEgMyAyLjUgMy41IDMuNSA0LjVBNSA1IDAgMCAxIDE3IDEwYTUgNSAwIDEgMS0xMCAwYzAtLjMgMC0uNi4xLS45YTIgMiAwIDEgMCAzLjMtMkM4IDQuNSAxMSAyIDEyIDJaIn1dLFsicGF0aCIse2Q6Im01IDIyIDE0LTQifV0sWyJwYXRoIix7ZDoibTUgMTggMTQgNCJ9XV0sbld0PVtbInBhdGgiLHtkOiJNMTIgM3ExIDQgNCA2LjV0MyA1LjVhMSAxIDAgMCAxLTE0IDAgNSA1IDAgMCAxIDEtMyAxIDEgMCAwIDAgNSAwYzAtMi0xLjUtMy0xLjUtNXEwLTIgMi41LTQifV1dLG9XdD1bWyJwYXRoIix7ZDoiTTExLjY1MiA2SDE4In1dLFsicGF0aCIse2Q6Ik0xMiAxM3YxIn1dLFsicGF0aCIse2Q6Ik0xNiAxNnY0YTIgMiAwIDAgMS0yIDJoLTRhMiAyIDAgMCAxLTItMnYtOGE0IDQgMCAwIDAtLjgtMi40bC0uNi0uOEEzIDMgMCAwIDEgNiA3VjYifV0sWyJwYXRoIix7ZDoibTIgMiAyMCAyMCJ9XSxbInBhdGgiLHtkOiJNNy42NDkgMkgxN2ExIDEgMCAwIDEgMSAxdjRhMyAzIDAgMCAxLS42IDEuOGwtLjYuOGE0IDQgMCAwIDAtLjU1IDEuMDA3In1dXSxzV3Q9W1sicGF0aCIse2Q6Ik0xMiAxM3YxIn1dLFsicGF0aCIse2Q6Ik0xNyAyYTEgMSAwIDAgMSAxIDF2NGEzIDMgMCAwIDEtLjYgMS44bC0uNi44QTQgNCAwIDAgMCAxNiAxMnY4YTIgMiAwIDAgMS0yIDJIMTBhMiAyIDAgMCAxLTItMnYtOGE0IDQgMCAwIDAtLjgtMi40bC0uNi0uOEEzIDMgMCAwIDEgNiA3VjNhMSAxIDAgMCAxIDEtMXoifV0sWyJwYXRoIix7ZDoiTTYgNmgxMiJ9XV0sbFd0PVtbInBhdGgiLHtkOiJNMTAgMnYyLjM0MyJ9XSxbInBhdGgiLHtkOiJNMTQgMnY2LjM0MyJ9XSxbInBhdGgiLHtkOiJtMiAyIDIwIDIwIn1dLFsicGF0aCIse2Q6Ik0yMCAyMGEyIDIgMCAwIDEtMiAySDZhMiAyIDAgMCAxLTEuNzU1LTIuOTZsNS4yMjctOS41NjMifV0sWyJwYXRoIix7ZDoiTTYuNDUzIDE1SDE1In1dLFsicGF0aCIse2Q6Ik04LjUgMmg3In1dXSxjV3Q9W1sicGF0aCIse2Q6Ik0xNCAydjZhMiAyIDAgMCAwIC4yNDUuOTZsNS41MSAxMC4wOEEyIDIgMCAwIDEgMTggMjJINmEyIDIgMCAwIDEtMS43NTUtMi45Nmw1LjUxLTEwLjA4QTIgMiAwIDAgMCAxMCA4VjIifV0sWyJwYXRoIix7ZDoiTTYuNDUzIDE1aDExLjA5NCJ9XSxbInBhdGgiLHtkOiJNOC41IDJoNyJ9XV0sZFd0PVtbInBhdGgiLHtkOiJNMTAgMnY2LjI5MmE3IDcgMCAxIDAgNCAwVjIifV0sWyJwYXRoIix7ZDoiTTUgMTVoMTQifV0sWyJwYXRoIix7ZDoiTTguNSAyaDcifV1dLHVXdD1bWyJwYXRoIix7ZDoibTMgNyA1IDUtNSA1VjcifV0sWyJwYXRoIix7ZDoibTIxIDctNSA1IDUgNVY3In1dLFsicGF0aCIse2Q6Ik0xMiAyMHYyIn1dLFsicGF0aCIse2Q6Ik0xMiAxNHYyIn1dLFsicGF0aCIse2Q6Ik0xMiA4djIifV0sWyJwYXRoIix7ZDoiTTEyIDJ2MiJ9XV0scFd0PVtbInBhdGgiLHtkOiJNOCAzSDVhMiAyIDAgMCAwLTIgMnYxNGMwIDEuMS45IDIgMiAyaDMifV0sWyJwYXRoIix7ZDoiTTE2IDNoM2EyIDIgMCAwIDEgMiAydjE0YTIgMiAwIDAgMS0yIDJoLTMifV0sWyJwYXRoIix7ZDoiTTEyIDIwdjIifV0sWyJwYXRoIix7ZDoiTTEyIDE0djIifV0sWyJwYXRoIix7ZDoiTTEyIDh2MiJ9XSxbInBhdGgiLHtkOiJNMTIgMnYyIn1dXSxoV3Q9W1sicGF0aCIse2Q6Im0xNyAzLTUgNS01LTVoMTAifV0sWyJwYXRoIix7ZDoibTE3IDIxLTUtNS01IDVoMTAifV0sWyJwYXRoIix7ZDoiTTQgMTJIMiJ9XSxbInBhdGgiLHtkOiJNMTAgMTJIOCJ9XSxbInBhdGgiLHtkOiJNMTYgMTJoLTIifV0sWyJwYXRoIix7ZDoiTTIyIDEyaC0yIn1dXSxmV3Q9W1sicGF0aCIse2Q6Ik0yMSA4VjVhMiAyIDAgMCAwLTItMkg1YTIgMiAwIDAgMC0yIDJ2MyJ9XSxbInBhdGgiLHtkOiJNMjEgMTZ2M2EyIDIgMCAwIDEtMiAySDVhMiAyIDAgMCAxLTItMnYtMyJ9XSxbInBhdGgiLHtkOiJNNCAxMkgyIn1dLFsicGF0aCIse2Q6Ik0xMCAxMkg4In1dLFsicGF0aCIse2Q6Ik0xNiAxMmgtMiJ9XSxbInBhdGgiLHtkOiJNMjIgMTJoLTIifV1dLG1XdD1bWyJwYXRoIix7ZDoiTTEyIDVhMyAzIDAgMSAxIDMgM20tMy0zYTMgMyAwIDEgMC0zIDNtMy0zdjFNOSA4YTMgMyAwIDEgMCAzIDNNOSA4aDFtNSAwYTMgMyAwIDEgMS0zIDNtMy0zaC0xbS0yIDN2LTEifV0sWyJjaXJjbGUiLHtjeDoiMTIiLGN5OiI4IixyOiIyIn1dLFsicGF0aCIse2Q6Ik0xMiAxMHYxMiJ9XSxbInBhdGgiLHtkOiJNMTIgMjJjNC4yIDAgNy0xLjY2NyA3LTUtNC4yIDAtNyAxLjY2Ny03IDVaIn1dLFsicGF0aCIse2Q6Ik0xMiAyMmMtNC4yIDAtNy0xLjY2Ny03LTUgNC4yIDAgNyAxLjY2NyA3IDVaIn1dXSxnV3Q9W1siY2lyY2xlIix7Y3g6IjEyIixjeToiMTIiLHI6IjMifV0sWyJwYXRoIix7ZDoiTTEyIDE2LjVBNC41IDQuNSAwIDEgMSA3LjUgMTIgNC41IDQuNSAwIDEgMSAxMiA3LjVhNC41IDQuNSAwIDEgMSA0LjUgNC41IDQuNSA0LjUgMCAxIDEtNC41IDQuNSJ9XSxbInBhdGgiLHtkOiJNMTIgNy41VjkifV0sWyJwYXRoIix7ZDoiTTcuNSAxMkg5In1dLFsicGF0aCIse2Q6Ik0xNi41IDEySDE1In1dLFsicGF0aCIse2Q6Ik0xMiAxNi41VjE1In1dLFsicGF0aCIse2Q6Im04IDggMS44OCAxLjg4In1dLFsicGF0aCIse2Q6Ik0xNC4xMiA5Ljg4IDE2IDgifV0sWyJwYXRoIix7ZDoibTggMTYgMS44OC0xLjg4In1dLFsicGF0aCIse2Q6Ik0xNC4xMiAxNC4xMiAxNiAxNiJ9XV0sYld0PVtbImNpcmNsZSIse2N4OiIxMiIsY3k6IjEyIixyOiIzIn1dLFsicGF0aCIse2Q6Ik0zIDdWNWEyIDIgMCAwIDEgMi0yaDIifV0sWyJwYXRoIix7ZDoiTTE3IDNoMmEyIDIgMCAwIDEgMiAydjIifV0sWyJwYXRoIix7ZDoiTTIxIDE3djJhMiAyIDAgMCAxLTIgMmgtMiJ9XSxbInBhdGgiLHtkOiJNNyAyMUg1YTIgMiAwIDAgMS0yLTJ2LTIifV1dLHZXdD1bWyJwYXRoIix7ZDoiTTIgMTJoNiJ9XSxbInBhdGgiLHtkOiJNMjIgMTJoLTYifV0sWyJwYXRoIix7ZDoiTTEyIDJ2MiJ9XSxbInBhdGgiLHtkOiJNMTIgOHYyIn1dLFsicGF0aCIse2Q6Ik0xMiAxNHYyIn1dLFsicGF0aCIse2Q6Ik0xMiAyMHYyIn1dLFsicGF0aCIse2Q6Im0xOSA5LTMgMyAzIDMifV0sWyJwYXRoIix7ZDoibTUgMTUgMy0zLTMtMyJ9XV0seFd0PVtbInBhdGgiLHtkOiJNMTIgMjJ2LTYifV0sWyJwYXRoIix7ZDoiTTEyIDhWMiJ9XSxbInBhdGgiLHtkOiJNNCAxMkgyIn1dLFsicGF0aCIse2Q6Ik0xMCAxMkg4In1dLFsicGF0aCIse2Q6Ik0xNiAxMmgtMiJ9XSxbInBhdGgiLHtkOiJNMjIgMTJoLTIifV0sWyJwYXRoIix7ZDoibTE1IDE5LTMtMy0zIDMifV0sWyJwYXRoIix7ZDoibTE1IDUtMyAzLTMtMyJ9XV0seVd0PVtbInBhdGgiLHtkOiJNMjAgMjBhMiAyIDAgMCAwIDItMlY4YTIgMiAwIDAgMC0yLTJoLTcuOWEyIDIgMCAwIDEtMS42OS0uOUw5LjYgMy45QTIgMiAwIDAgMCA3LjkzIDNINGEyIDIgMCAwIDAtMiAydjEzYTIgMiAwIDAgMCAyIDJaIn1dLFsicGF0aCIse2Q6Im05IDEzIDIgMiA0LTQifV1dLHdXdD1bWyJjaXJjbGUiLHtjeDoiMTUiLGN5OiIxOSIscjoiMiJ9XSxbInBhdGgiLHtkOiJNMjAuOSAxOS44QTIgMiAwIDAgMCAyMiAxOFY4YTIgMiAwIDAgMC0yLTJoLTcuOWEyIDIgMCAwIDEtMS42OS0uOUw5LjYgMy45QTIgMiAwIDAgMCA3LjkzIDNINGEyIDIgMCAwIDAtMiAydjEzYTIgMiAwIDAgMCAyIDJoNS4xIn1dLFsicGF0aCIse2Q6Ik0xNSAxMXYtMSJ9XSxbInBhdGgiLHtkOiJNMTUgMTd2LTIifV1dLE1XdD1bWyJwYXRoIix7ZDoiTTE2IDE0djIuMmwxLjYgMSJ9XSxbInBhdGgiLHtkOiJNNyAyMEg0YTIgMiAwIDAgMS0yLTJWNWEyIDIgMCAwIDEgMi0yaDMuOWEyIDIgMCAwIDEgMS42OS45bC44MSAxLjJhMiAyIDAgMCAwIDEuNjcuOUgyMGEyIDIgMCAwIDEgMiAyIn1dLFsiY2lyY2xlIix7Y3g6IjE2IixjeToiMTYiLHI6IjYifV1dLGtXdD1bWyJwYXRoIix7ZDoiTTIwIDIwYTIgMiAwIDAgMCAyLTJWOGEyIDIgMCAwIDAtMi0yaC03LjlhMiAyIDAgMCAxLTEuNjktLjlMOS42IDMuOUEyIDIgMCAwIDAgNy45MyAzSDRhMiAyIDAgMCAwLTIgMnYxM2EyIDIgMCAwIDAgMiAyWiJ9XSxbInBhdGgiLHtkOiJNMiAxMGgyMCJ9XV0sU1d0PVtbInBhdGgiLHtkOiJNMTAgMTAuNSA4IDEzbDIgMi41In1dLFsicGF0aCIse2Q6Im0xNCAxMC41IDIgMi41LTIgMi41In1dLFsicGF0aCIse2Q6Ik0yMCAyMGEyIDIgMCAwIDAgMi0yVjhhMiAyIDAgMCAwLTItMmgtNy45YTIgMiAwIDAgMS0xLjY5LS45TDkuNiAzLjlBMiAyIDAgMCAwIDcuOTMgM0g0YTIgMiAwIDAgMC0yIDJ2MTNhMiAyIDAgMCAwIDIgMnoifV1dLG5JPVtbInBhdGgiLHtkOiJNMTAuMyAyMEg0YTIgMiAwIDAgMS0yLTJWNWEyIDIgMCAwIDEgMi0yaDMuOThhMiAyIDAgMCAxIDEuNjkuOWwuNjYgMS4yQTIgMiAwIDAgMCAxMiA2aDhhMiAyIDAgMCAxIDIgMnYzLjMifV0sWyJwYXRoIix7ZDoibTE0LjMwNSAxOS41My45MjMtLjM4MiJ9XSxbInBhdGgiLHtkOiJtMTUuMjI4IDE2Ljg1Mi0uOTIzLS4zODMifV0sWyJwYXRoIix7ZDoibTE2Ljg1MiAxNS4yMjgtLjM4My0uOTIzIn1dLFsicGF0aCIse2Q6Im0xNi44NTIgMjAuNzcyLS4zODMuOTI0In1dLFsicGF0aCIse2Q6Im0xOS4xNDggMTUuMjI4LjM4My0uOTIzIn1dLFsicGF0aCIse2Q6Im0xOS41MyAyMS42OTYtLjM4Mi0uOTI0In1dLFsicGF0aCIse2Q6Im0yMC43NzIgMTYuODUyLjkyNC0uMzgzIn1dLFsicGF0aCIse2Q6Im0yMC43NzIgMTkuMTQ4LjkyNC4zODMifV0sWyJjaXJjbGUiLHtjeDoiMTgiLGN5OiIxOCIscjoiMyJ9XV0seld0PVtbInBhdGgiLHtkOiJNNCAyMGgxNmEyIDIgMCAwIDAgMi0yVjhhMiAyIDAgMCAwLTItMmgtNy45M2EyIDIgMCAwIDEtMS42Ni0uOWwtLjgyLTEuMkEyIDIgMCAwIDAgNy45MyAzSDRhMiAyIDAgMCAwLTIgMnYxM2MwIDEuMS45IDIgMiAyWiJ9XSxbImNpcmNsZSIse2N4OiIxMiIsY3k6IjEzIixyOiIxIn1dXSxDV3Q9W1sicGF0aCIse2Q6Ik0yMCAyMGEyIDIgMCAwIDAgMi0yVjhhMiAyIDAgMCAwLTItMmgtNy45YTIgMiAwIDAgMS0xLjY5LS45TDkuNiAzLjlBMiAyIDAgMCAwIDcuOTMgM0g0YTIgMiAwIDAgMC0yIDJ2MTNhMiAyIDAgMCAwIDIgMloifV0sWyJwYXRoIix7ZDoiTTEyIDEwdjYifV0sWyJwYXRoIix7ZDoibTE1IDEzLTMgMy0zLTMifV1dLFRXdD1bWyJwYXRoIix7ZDoiTTE4IDE5YTUgNSAwIDAgMS01LTV2OCJ9XSxbInBhdGgiLHtkOiJNOSAyMEg0YTIgMiAwIDAgMS0yLTJWNWEyIDIgMCAwIDEgMi0yaDMuOWEyIDIgMCAwIDEgMS42OS45bC44MSAxLjJhMiAyIDAgMCAwIDEuNjcuOUgyMGEyIDIgMCAwIDEgMiAydjUifV0sWyJjaXJjbGUiLHtjeDoiMTMiLGN5OiIxMiIscjoiMiJ9XSxbImNpcmNsZSIse2N4OiIyMCIsY3k6IjE5IixyOiIyIn1dXSxfV3Q9W1siY2lyY2xlIix7Y3g6IjEyIixjeToiMTMiLHI6IjIifV0sWyJwYXRoIix7ZDoiTTIwIDIwYTIgMiAwIDAgMCAyLTJWOGEyIDIgMCAwIDAtMi0yaC03LjlhMiAyIDAgMCAxLTEuNjktLjlMOS42IDMuOUEyIDIgMCAwIDAgNy45MyAzSDRhMiAyIDAgMCAwLTIgMnYxM2EyIDIgMCAwIDAgMiAyWiJ9XSxbInBhdGgiLHtkOiJNMTQgMTNoMyJ9XSxbInBhdGgiLHtkOiJNNyAxM2gzIn1dXSxMV3Q9W1sicGF0aCIse2Q6Ik0xMC42MzggMjBINGEyIDIgMCAwIDEtMi0yVjVhMiAyIDAgMCAxIDItMmgzLjlhMiAyIDAgMCAxIDEuNjkuOWwuODEgMS4yYTIgMiAwIDAgMCAxLjY3LjlIMjBhMiAyIDAgMCAxIDIgMnYzLjQxNyJ9XSxbInBhdGgiLHtkOiJNMTQuNjIgMTguOEEyLjI1IDIuMjUgMCAxIDEgMTggMTUuODM2YTIuMjUgMi4yNSAwIDEgMSAzLjM4IDIuOTY2bC0yLjYyNiAyLjg1NmEuOTk4Ljk5OCAwIDAgMS0xLjUwNyAweiJ9XV0sQVd0PVtbInBhdGgiLHtkOiJNMiA5VjVhMiAyIDAgMCAxIDItMmgzLjlhMiAyIDAgMCAxIDEuNjkuOWwuODEgMS4yYTIgMiAwIDAgMCAxLjY3LjlIMjBhMiAyIDAgMCAxIDIgMnYxMGEyIDIgMCAwIDEtMiAySDRhMiAyIDAgMCAxLTItMnYtMSJ9XSxbInBhdGgiLHtkOiJNMiAxM2gxMCJ9XSxbInBhdGgiLHtkOiJtOSAxNiAzLTMtMy0zIn1dXSxEV3Q9W1sicGF0aCIse2Q6Ik00IDIwaDE2YTIgMiAwIDAgMCAyLTJWOGEyIDIgMCAwIDAtMi0yaC03LjkzYTIgMiAwIDAgMS0xLjY2LS45bC0uODItMS4yQTIgMiAwIDAgMCA3LjkzIDNINGEyIDIgMCAwIDAtMiAydjEzYzAgMS4xLjkgMiAyIDJaIn1dLFsicGF0aCIse2Q6Ik04IDEwdjQifV0sWyJwYXRoIix7ZDoiTTEyIDEwdjIifV0sWyJwYXRoIix7ZDoiTTE2IDEwdjYifV1dLEVXdD1bWyJwYXRoIix7ZDoiTTEzIDIwSDRhMiAyIDAgMCAxLTItMlY1YTIgMiAwIDAgMSAyLTJoMy45YTIgMiAwIDAgMSAxLjY5LjlsLjgxIDEuMmEyIDIgMCAwIDAgMS42Ny45SDIwYTIgMiAwIDAgMSAyIDJ2MS4zNiJ9XSxbInBhdGgiLHtkOiJNMTkgMTJ2NiJ9XSxbInBhdGgiLHtkOiJNMTkgMTRoMiJ9XSxbImNpcmNsZSIse2N4OiIxOSIsY3k6IjIwIixyOiIyIn1dXSwkV3Q9W1sicmVjdCIse3dpZHRoOiI4IixoZWlnaHQ6IjUiLHg6IjE0Iix5OiIxNyIscng6IjEifV0sWyJwYXRoIix7ZDoiTTEwIDIwSDRhMiAyIDAgMCAxLTItMlY1YTIgMiAwIDAgMSAyLTJoMy45YTIgMiAwIDAgMSAxLjY5LjlsLjgxIDEuMmEyIDIgMCAwIDAgMS42Ny45SDIwYTIgMiAwIDAgMSAyIDJ2Mi41In1dLFsicGF0aCIse2Q6Ik0yMCAxN3YtMmEyIDIgMCAxIDAtNCAwdjIifV1dLElXdD1bWyJwYXRoIix7ZDoiTTkgMTNoNiJ9XSxbInBhdGgiLHtkOiJNMjAgMjBhMiAyIDAgMCAwIDItMlY4YTIgMiAwIDAgMC0yLTJoLTcuOWEyIDIgMCAwIDEtMS42OS0uOUw5LjYgMy45QTIgMiAwIDAgMCA3LjkzIDNINGEyIDIgMCAwIDAtMiAydjEzYTIgMiAwIDAgMCAyIDJaIn1dXSxQV3Q9W1sicGF0aCIse2Q6Im02IDE0IDEuNDUtMi45QTIgMiAwIDAgMSA5LjI0IDEwSDIwYTIgMiAwIDAgMSAxLjk0IDIuNWwtMS41NSA2YTIgMiAwIDAgMS0xLjk0IDEuNUg0YTIgMiAwIDAgMS0yLTJWNWMwLTEuMS45LTIgMi0yaDMuOTNhMiAyIDAgMCAxIDEuNjYuOWwuODIgMS4yYTIgMiAwIDAgMCAxLjY2LjlIMThhMiAyIDAgMCAxIDIgMnYyIn1dLFsiY2lyY2xlIix7Y3g6IjE0IixjeToiMTUiLHI6IjEifV1dLE5XdD1bWyJwYXRoIix7ZDoibTYgMTQgMS41LTIuOUEyIDIgMCAwIDEgOS4yNCAxMEgyMGEyIDIgMCAwIDEgMS45NCAyLjVsLTEuNTQgNmEyIDIgMCAwIDEtMS45NSAxLjVINGEyIDIgMCAwIDEtMi0yVjVhMiAyIDAgMCAxIDItMmgzLjlhMiAyIDAgMCAxIDEuNjkuOWwuODEgMS4yYTIgMiAwIDAgMCAxLjY3LjlIMThhMiAyIDAgMCAxIDIgMnYyIn1dXSxGV3Q9W1sicGF0aCIse2Q6Ik0yIDcuNVY1YTIgMiAwIDAgMSAyLTJoMy45YTIgMiAwIDAgMSAxLjY5LjlsLjgxIDEuMmEyIDIgMCAwIDAgMS42Ny45SDIwYTIgMiAwIDAgMSAyIDJ2MTBhMiAyIDAgMCAxLTIgMkg0YTIgMiAwIDAgMS0yLTEuNSJ9XSxbInBhdGgiLHtkOiJNMiAxM2gxMCJ9XSxbInBhdGgiLHtkOiJtNSAxMC0zIDMgMyAzIn1dXSxvST1bWyJwYXRoIix7ZDoiTTIgMTEuNVY1YTIgMiAwIDAgMSAyLTJoMy45Yy43IDAgMS4zLjMgMS43LjlsLjggMS4yYy40LjYgMSAuOSAxLjcuOUgyMGEyIDIgMCAwIDEgMiAydjEwYTIgMiAwIDAgMS0yIDJoLTkuNSJ9XSxbInBhdGgiLHtkOiJNMTEuMzc4IDEzLjYyNmExIDEgMCAxIDAtMy4wMDQtMy4wMDRsLTUuMDEgNS4wMTJhMiAyIDAgMCAwLS41MDYuODU0bC0uODM3IDIuODdhLjUuNSAwIDAgMCAuNjIuNjJsMi44Ny0uODM3YTIgMiAwIDAgMCAuODU0LS41MDZ6In1dXSxPV3Q9W1sicGF0aCIse2Q6Ik0xMiAxMHY2In1dLFsicGF0aCIse2Q6Ik05IDEzaDYifV0sWyJwYXRoIix7ZDoiTTIwIDIwYTIgMiAwIDAgMCAyLTJWOGEyIDIgMCAwIDAtMi0yaC03LjlhMiAyIDAgMCAxLTEuNjktLjlMOS42IDMuOUEyIDIgMCAwIDAgNy45MyAzSDRhMiAyIDAgMCAwLTIgMnYxM2EyIDIgMCAwIDAgMiAyWiJ9XV0sUld0PVtbInBhdGgiLHtkOiJNNCAyMGgxNmEyIDIgMCAwIDAgMi0yVjhhMiAyIDAgMCAwLTItMmgtNy45M2EyIDIgMCAwIDEtMS42Ni0uOWwtLjgyLTEuMkEyIDIgMCAwIDAgNy45MyAzSDRhMiAyIDAgMCAwLTIgMnYxM2MwIDEuMS45IDIgMiAyWiJ9XSxbImNpcmNsZSIse2N4OiIxMiIsY3k6IjEzIixyOiIyIn1dLFsicGF0aCIse2Q6Ik0xMiAxNXY1In1dXSxCV3Q9W1siY2lyY2xlIix7Y3g6IjExLjUiLGN5OiIxMi41IixyOiIyLjUifV0sWyJwYXRoIix7ZDoiTTIwIDIwYTIgMiAwIDAgMCAyLTJWOGEyIDIgMCAwIDAtMi0yaC03LjlhMiAyIDAgMCAxLTEuNjktLjlMOS42IDMuOUEyIDIgMCAwIDAgNy45MyAzSDRhMiAyIDAgMCAwLTIgMnYxM2EyIDIgMCAwIDAgMiAyWiJ9XSxbInBhdGgiLHtkOiJNMTMuMyAxNC4zIDE1IDE2In1dXSxIV3Q9W1sicGF0aCIse2Q6Ik0xMC43IDIwSDRhMiAyIDAgMCAxLTItMlY1YTIgMiAwIDAgMSAyLTJoMy45YTIgMiAwIDAgMSAxLjY5LjlsLjgxIDEuMmEyIDIgMCAwIDAgMS42Ny45SDIwYTIgMiAwIDAgMSAyIDJ2NC4xIn1dLFsicGF0aCIse2Q6Im0yMSAyMS0xLjktMS45In1dLFsiY2lyY2xlIix7Y3g6IjE3IixjeToiMTciLHI6IjMifV1dLHFXdD1bWyJwYXRoIix7ZDoiTTIgOS4zNVY1YTIgMiAwIDAgMSAyLTJoMy45YTIgMiAwIDAgMSAxLjY5LjlsLjgxIDEuMmEyIDIgMCAwIDAgMS42Ny45SDIwYTIgMiAwIDAgMSAyIDJ2MTBhMiAyIDAgMCAxLTIgMkg0YTIgMiAwIDAgMS0yLTJ2LTNhMiAyIDAgMCAxIDItMmg3In1dLFsicGF0aCIse2Q6Im04IDE2IDMtMy0zLTMifV1dLGpXdD1bWyJwYXRoIix7ZDoiTTkgMjBINGEyIDIgMCAwIDEtMi0yVjVhMiAyIDAgMCAxIDItMmgzLjlhMiAyIDAgMCAxIDEuNjkuOWwuODEgMS4yYTIgMiAwIDAgMCAxLjY3LjlIMjBhMiAyIDAgMCAxIDIgMnYuNSJ9XSxbInBhdGgiLHtkOiJNMTIgMTB2NGg0In1dLFsicGF0aCIse2Q6Im0xMiAxNCAxLjUzNS0xLjYwNWE1IDUgMCAwIDEgOCAxLjUifV0sWyJwYXRoIix7ZDoiTTIyIDIydi00aC00In1dLFsicGF0aCIse2Q6Im0yMiAxOC0xLjUzNSAxLjYwNWE1IDUgMCAwIDEtOC0xLjUifV1dLFZXdD1bWyJwYXRoIix7ZDoiTTIwIDEwYTEgMSAwIDAgMCAxLTFWNmExIDEgMCAwIDAtMS0xaC0yLjVhMSAxIDAgMCAxLS44LS40bC0uOS0xLjJBMSAxIDAgMCAwIDE1IDNoLTJhMSAxIDAgMCAwLTEgMXY1YTEgMSAwIDAgMCAxIDFaIn1dLFsicGF0aCIse2Q6Ik0yMCAyMWExIDEgMCAwIDAgMS0xdi0zYTEgMSAwIDAgMC0xLTFoLTIuOWExIDEgMCAwIDEtLjg4LS41NWwtLjQyLS44NWExIDEgMCAwIDAtLjkyLS42SDEzYTEgMSAwIDAgMC0xIDF2NWExIDEgMCAwIDAgMSAxWiJ9XSxbInBhdGgiLHtkOiJNMyA1YTIgMiAwIDAgMCAyIDJoMyJ9XSxbInBhdGgiLHtkOiJNMyAzdjEzYTIgMiAwIDAgMCAyIDJoMyJ9XV0sVVd0PVtbInBhdGgiLHtkOiJNMjAgMjBhMiAyIDAgMCAwIDItMlY4YTIgMiAwIDAgMC0yLTJoLTcuOWEyIDIgMCAwIDEtMS42OS0uOUw5LjYgMy45QTIgMiAwIDAgMCA3LjkzIDNINGEyIDIgMCAwIDAtMiAydjEzYTIgMiAwIDAgMCAyIDJaIn1dLFsicGF0aCIse2Q6Ik0xMiAxMHY2In1dLFsicGF0aCIse2Q6Im05IDEzIDMtMyAzIDMifV1dLFdXdD1bWyJwYXRoIix7ZDoiTTIwIDIwYTIgMiAwIDAgMCAyLTJWOGEyIDIgMCAwIDAtMi0yaC03LjlhMiAyIDAgMCAxLTEuNjktLjlMOS42IDMuOUEyIDIgMCAwIDAgNy45MyAzSDRhMiAyIDAgMCAwLTIgMnYxM2EyIDIgMCAwIDAgMiAyWiJ9XSxbInBhdGgiLHtkOiJtOS41IDEwLjUgNSA1In1dLFsicGF0aCIse2Q6Im0xNC41IDEwLjUtNSA1In1dXSxHV3Q9W1sicGF0aCIse2Q6Ik0yMCAyMGEyIDIgMCAwIDAgMi0yVjhhMiAyIDAgMCAwLTItMmgtNy45YTIgMiAwIDAgMS0xLjY5LS45TDkuNiAzLjlBMiAyIDAgMCAwIDcuOTMgM0g0YTIgMiAwIDAgMC0yIDJ2MTNhMiAyIDAgMCAwIDIgMloifV1dLFlXdD1bWyJwYXRoIix7ZDoiTTIwIDVhMiAyIDAgMCAxIDIgMnY3YTIgMiAwIDAgMS0yIDJIOWEyIDIgMCAwIDEtMi0yVjVhMiAyIDAgMCAxIDItMmgyLjVhMS41IDEuNSAwIDAgMSAxLjIuNmwuNi44YTEuNSAxLjUgMCAwIDAgMS4yLjZ6In1dLFsicGF0aCIse2Q6Ik0zIDguMjY4YTIgMiAwIDAgMC0xIDEuNzM4VjE5YTIgMiAwIDAgMCAyIDJoMTFhMiAyIDAgMCAwIDEuNzMyLTEifV1dLFpXdD1bWyJwYXRoIix7ZDoiTTEyIDEySDVhMiAyIDAgMCAwLTIgMnY1In1dLFsiY2lyY2xlIix7Y3g6IjEzIixjeToiMTkiLHI6IjIifV0sWyJjaXJjbGUiLHtjeDoiNSIsY3k6IjE5IixyOiIyIn1dLFsicGF0aCIse2Q6Ik04IDE5aDNtNS0xN3YxN2g2TTYgMTJWN2MwLTEuMS45LTIgMi0yaDNsNSA1In1dXSxYV3Q9W1sicGF0aCIse2Q6Ik00IDE2di0yLjM4QzQgMTEuNSAyLjk3IDEwLjUgMyA4Yy4wMy0yLjcyIDEuNDktNiA0LjUtNkM5LjM3IDIgMTAgMy44IDEwIDUuNWMwIDMuMTEtMiA1LjY2LTIgOC42OFYxNmEyIDIgMCAxIDEtNCAwWiJ9XSxbInBhdGgiLHtkOiJNMjAgMjB2LTIuMzhjMC0yLjEyIDEuMDMtMy4xMiAxLTUuNjItLjAzLTIuNzItMS40OS02LTQuNS02QzE0LjYzIDYgMTQgNy44IDE0IDkuNWMwIDMuMTEgMiA1LjY2IDIgOC42OFYyMGEyIDIgMCAxIDAgNCAwWiJ9XSxbInBhdGgiLHtkOiJNMTYgMTdoNCJ9XSxbInBhdGgiLHtkOiJNNCAxM2g0In1dXSxRV3Q9W1sicGF0aCIse2Q6Ik00IDE0aDYifV0sWyJwYXRoIix7ZDoiTTQgMmgxMCJ9XSxbInJlY3QiLHt4OiI0Iix5OiIxOCIsd2lkdGg6IjE2IixoZWlnaHQ6IjQiLHJ4OiIxIn1dLFsicmVjdCIse3g6IjQiLHk6IjYiLHdpZHRoOiIxNiIsaGVpZ2h0OiI0IixyeDoiMSJ9XV0sSld0PVtbInBhdGgiLHtkOiJtMTUgMTcgNS01LTUtNSJ9XSxbInBhdGgiLHtkOiJNNCAxOHYtMmE0IDQgMCAwIDEgNC00aDEyIn1dXSxLV3Q9W1sibGluZSIse3gxOiIyMiIseDI6IjIiLHkxOiI2Iix5MjoiNiJ9XSxbImxpbmUiLHt4MToiMjIiLHgyOiIyIix5MToiMTgiLHkyOiIxOCJ9XSxbImxpbmUiLHt4MToiNiIseDI6IjYiLHkxOiIyIix5MjoiMjIifV0sWyJsaW5lIix7eDE6IjE4Iix4MjoiMTgiLHkxOiIyIix5MjoiMjIifV1dLGVHdD1bWyJwYXRoIix7ZDoiTTUgMTZWOWgxNFYySDVsMTQgMTRoLTdtLTcgMCA3IDd2LTdtLTcgMGg3In1dXSx0R3Q9W1siY2lyY2xlIix7Y3g6IjEyIixjeToiMTIiLHI6IjEwIn1dLFsicGF0aCIse2Q6Ik0xNiAxNnMtMS41LTItNC0yLTQgMi00IDIifV0sWyJsaW5lIix7eDE6IjkiLHgyOiI5LjAxIix5MToiOSIseTI6IjkifV0sWyJsaW5lIix7eDE6IjE1Iix4MjoiMTUuMDEiLHkxOiI5Iix5MjoiOSJ9XV0sckd0PVtbInBhdGgiLHtkOiJNMTQgMTNoMmEyIDIgMCAwIDEgMiAydjJhMiAyIDAgMCAwIDQgMHYtNi45OThhMiAyIDAgMCAwLS41OS0xLjQyTDE4IDUifV0sWyJwYXRoIix7ZDoiTTE0IDIxVjVhMiAyIDAgMCAwLTItMkg1YTIgMiAwIDAgMC0yIDJ2MTYifV0sWyJwYXRoIix7ZDoiTTIgMjFoMTMifV0sWyJwYXRoIix7ZDoiTTMgOWgxMSJ9XV0saUd0PVtbInBhdGgiLHtkOiJNMyA3VjVhMiAyIDAgMCAxIDItMmgyIn1dLFsicGF0aCIse2Q6Ik0xNyAzaDJhMiAyIDAgMCAxIDIgMnYyIn1dLFsicGF0aCIse2Q6Ik0yMSAxN3YyYTIgMiAwIDAgMS0yIDJoLTIifV0sWyJwYXRoIix7ZDoiTTcgMjFINWEyIDIgMCAwIDEtMi0ydi0yIn1dLFsicmVjdCIse3dpZHRoOiIxMCIsaGVpZ2h0OiI4Iix4OiI3Iix5OiI4IixyeDoiMSJ9XV0sYUd0PVtbInBhdGgiLHtkOiJNMTMuMzU0IDNIM2ExIDEgMCAwIDAtLjc0MiAxLjY3bDcuMjI1IDcuOTg5QTIgMiAwIDAgMSAxMCAxNHY2YTEgMSAwIDAgMCAuNTUzLjg5NWwyIDFBMSAxIDAgMCAwIDE0IDIxdi03YTIgMiAwIDAgMSAuNTE3LTEuMzQxbDEuMjE4LTEuMzQ4In1dLFsicGF0aCIse2Q6Ik0xNiA2aDYifV0sWyJwYXRoIix7ZDoiTTE5IDN2NiJ9XV0sc0k9W1sicGF0aCIse2Q6Ik0xMi41MzEgM0gzYTEgMSAwIDAgMC0uNzQyIDEuNjdsNy4yMjUgNy45ODlBMiAyIDAgMCAxIDEwIDE0djZhMSAxIDAgMCAwIC41NTMuODk1bDIgMUExIDEgMCAwIDAgMTQgMjF2LTdhMiAyIDAgMCAxIC41MTctMS4zNDFsLjQyNy0uNDczIn1dLFsicGF0aCIse2Q6Im0xNi41IDMuNSA1IDUifV0sWyJwYXRoIix7ZDoibTIxLjUgMy41LTUgNSJ9XV0sbEk9W1sicGF0aCIse2Q6Ik0xMCAyMGExIDEgMCAwIDAgLjU1My44OTVsMiAxQTEgMSAwIDAgMCAxNCAyMXYtN2EyIDIgMCAwIDEgLjUxNy0xLjM0MUwyMS43NCA0LjY3QTEgMSAwIDAgMCAyMSAzSDNhMSAxIDAgMCAwLS43NDIgMS42N2w3LjIyNSA3Ljk4OUEyIDIgMCAwIDEgMTAgMTR6In1dXSxuR3Q9W1sicGF0aCIse2Q6Ik0yIDd2MTAifV0sWyJwYXRoIix7ZDoiTTYgNXYxNCJ9XSxbInJlY3QiLHt3aWR0aDoiMTIiLGhlaWdodDoiMTgiLHg6IjEwIix5OiIzIixyeDoiMiJ9XV0sb0d0PVtbInBhdGgiLHtkOiJNMiAzdjE4In1dLFsicmVjdCIse3dpZHRoOiIxMiIsaGVpZ2h0OiIxOCIseDoiNiIseToiMyIscng6IjIifV0sWyJwYXRoIix7ZDoiTTIyIDN2MTgifV1dLHNHdD1bWyJyZWN0Iix7d2lkdGg6IjE4IixoZWlnaHQ6IjE0Iix4OiIzIix5OiIzIixyeDoiMiJ9XSxbInBhdGgiLHtkOiJNNCAyMWgxIn1dLFsicGF0aCIse2Q6Ik05IDIxaDEifV0sWyJwYXRoIix7ZDoiTTE0IDIxaDEifV0sWyJwYXRoIix7ZDoiTTE5IDIxaDEifV1dLGxHdD1bWyJwYXRoIix7ZDoiTTcgMmgxMCJ9XSxbInBhdGgiLHtkOiJNNSA2aDE0In1dLFsicmVjdCIse3dpZHRoOiIxOCIsaGVpZ2h0OiIxMiIseDoiMyIseToiMTAiLHJ4OiIyIn1dXSxjR3Q9W1sicGF0aCIse2Q6Ik0zIDJoMTgifV0sWyJyZWN0Iix7d2lkdGg6IjE4IixoZWlnaHQ6IjEyIix4OiIzIix5OiI2IixyeDoiMiJ9XSxbInBhdGgiLHtkOiJNMyAyMmgxOCJ9XV0sZEd0PVtbImxpbmUiLHt4MToiNiIseDI6IjEwIix5MToiMTEiLHkyOiIxMSJ9XSxbImxpbmUiLHt4MToiOCIseDI6IjgiLHkxOiI5Iix5MjoiMTMifV0sWyJsaW5lIix7eDE6IjE1Iix4MjoiMTUuMDEiLHkxOiIxMiIseTI6IjEyIn1dLFsibGluZSIse3gxOiIxOCIseDI6IjE4LjAxIix5MToiMTAiLHkyOiIxMCJ9XSxbInBhdGgiLHtkOiJNMTcuMzIgNUg2LjY4YTQgNCAwIDAgMC0zLjk3OCAzLjU5Yy0uMDA2LjA1Mi0uMDEuMTAxLS4wMTcuMTUyQzIuNjA0IDkuNDE2IDIgMTQuNDU2IDIgMTZhMyAzIDAgMCAwIDMgM2MxIDAgMS41LS41IDItMWwxLjQxNC0xLjQxNEEyIDIgMCAwIDEgOS44MjggMTZoNC4zNDRhMiAyIDAgMCAxIDEuNDE0LjU4NkwxNyAxOGMuNS41IDEgMSAyIDFhMyAzIDAgMCAwIDMtM2MwLTEuNTQ1LS42MDQtNi41ODQtLjY4NS03LjI1OC0uMDA3LS4wNS0uMDExLS4xLS4wMTctLjE1MUE0IDQgMCAwIDAgMTcuMzIgNXoifV1dLHVHdD1bWyJwYXRoIix7ZDoiTTExLjE0NiAxNS44NTRhMS4yMDcgMS4yMDcgMCAwIDEgMS43MDggMGwxLjU2IDEuNTZBMiAyIDAgMCAxIDE1IDE4LjgyOFYyMWExIDEgMCAwIDEtMSAxaC00YTEgMSAwIDAgMS0xLTF2LTIuMTcyYTIgMiAwIDAgMSAuNTg2LTEuNDE0eiJ9XSxbInBhdGgiLHtkOiJNMTguODI4IDE1YTIgMiAwIDAgMS0xLjQxNC0uNTg2bC0xLjU2LTEuNTZhMS4yMDcgMS4yMDcgMCAwIDEgMC0xLjcwOGwxLjU2LTEuNTZBMiAyIDAgMCAxIDE4LjgyOCA5SDIxYTEgMSAwIDAgMSAxIDF2NGExIDEgMCAwIDEtMSAxeiJ9XSxbInBhdGgiLHtkOiJNNi41ODYgMTQuNDE0QTIgMiAwIDAgMSA1LjE3MiAxNUgzYTEgMSAwIDAgMS0xLTF2LTRhMSAxIDAgMCAxIDEtMWgyLjE3MmEyIDIgMCAwIDEgMS40MTQuNTg2bDEuNTYgMS41NmExLjIwNyAxLjIwNyAwIDAgMSAwIDEuNzA4eiJ9XSxbInBhdGgiLHtkOiJNOSAzYTEgMSAwIDAgMSAxLTFoNGExIDEgMCAwIDEgMSAxdjIuMTcyYTIgMiAwIDAgMS0uNTg2IDEuNDE0bC0xLjU2IDEuNTZhMS4yMDcgMS4yMDcgMCAwIDEtMS43MDggMGwtMS41Ni0xLjU2QTIgMiAwIDAgMSA5IDUuMTcyeiJ9XV0scEd0PVtbImxpbmUiLHt4MToiNiIseDI6IjEwIix5MToiMTIiLHkyOiIxMiJ9XSxbImxpbmUiLHt4MToiOCIseDI6IjgiLHkxOiIxMCIseTI6IjE0In1dLFsibGluZSIse3gxOiIxNSIseDI6IjE1LjAxIix5MToiMTMiLHkyOiIxMyJ9XSxbImxpbmUiLHt4MToiMTgiLHgyOiIxOC4wMSIseTE6IjExIix5MjoiMTEifV0sWyJyZWN0Iix7d2lkdGg6IjIwIixoZWlnaHQ6IjEyIix4OiIyIix5OiI2IixyeDoiMiJ9XV0saEd0PVtbInBhdGgiLHtkOiJtMTIgMTQgNC00In1dLFsicGF0aCIse2Q6Ik0zLjM0IDE5YTEwIDEwIDAgMSAxIDE3LjMyIDAifV1dLGZHdD1bWyJwYXRoIix7ZDoibTE0IDEzLTguMzgxIDguMzhhMSAxIDAgMCAxLTMuMDAxLTNsOC4zODQtOC4zODEifV0sWyJwYXRoIix7ZDoibTE2IDE2IDYtNiJ9XSxbInBhdGgiLHtkOiJtMjEuNSAxMC41LTgtOCJ9XSxbInBhdGgiLHtkOiJtOCA4IDYtNiJ9XSxbInBhdGgiLHtkOiJtOC41IDcuNSA4IDgifV1dLG1HdD1bWyJwYXRoIix7ZDoiTTEwLjUgMyA4IDlsNCAxMyA0LTEzLTIuNS02In1dLFsicGF0aCIse2Q6Ik0xNyAzYTIgMiAwIDAgMSAxLjYuOGwzIDRhMiAyIDAgMCAxIC4wMTMgMi4zODJsLTcuOTkgMTAuOTg2YTIgMiAwIDAgMS0zLjI0NyAwbC03Ljk5LTEwLjk4NkEyIDIgMCAwIDEgMi40IDcuOGwyLjk5OC0zLjk5N0EyIDIgMCAwIDEgNyAzeiJ9XSxbInBhdGgiLHtkOiJNMiA5aDIwIn1dXSxnR3Q9W1sicGF0aCIse2Q6Ik0xMS41IDIxYTcuNSA3LjUgMCAxIDEgNy4zNS05In1dLFsicGF0aCIse2Q6Ik0xMyAxMlYzIn1dLFsicGF0aCIse2Q6Ik00IDIxaDE2In1dLFsicGF0aCIse2Q6Ik05IDEyVjMifV1dLGJHdD1bWyJwYXRoIix7ZDoiTTkgMTBoLjAxIn1dLFsicGF0aCIse2Q6Ik0xNSAxMGguMDEifV0sWyJwYXRoIix7ZDoiTTEyIDJhOCA4IDAgMCAwLTggOHYxMmwzLTMgMi41IDIuNUwxMiAxOWwyLjUgMi41TDE3IDE5bDMgM1YxMGE4IDggMCAwIDAtOC04eiJ9XV0sdkd0PVtbInBhdGgiLHtkOiJNMTUgNmE5IDkgMCAwIDAtOSA5VjMifV0sWyJwYXRoIix7ZDoiTTIxIDE4aC02In1dLFsiY2lyY2xlIix7Y3g6IjE4IixjeToiNiIscjoiMyJ9XSxbImNpcmNsZSIse2N4OiI2IixjeToiMTgiLHI6IjMifV1dLHhHdD1bWyJwYXRoIix7ZDoiTTYgM3YxMiJ9XSxbInBhdGgiLHtkOiJNMTggOWEzIDMgMCAxIDAgMC02IDMgMyAwIDAgMCAwIDZ6In1dLFsicGF0aCIse2Q6Ik02IDIxYTMgMyAwIDEgMCAwLTYgMyAzIDAgMCAwIDAgNnoifV0sWyJwYXRoIix7ZDoiTTE1IDZhOSA5IDAgMCAwLTkgOSJ9XSxbInBhdGgiLHtkOiJNMTggMTV2NiJ9XSxbInBhdGgiLHtkOiJNMjEgMThoLTYifV1dLHlHdD1bWyJyZWN0Iix7eDoiMyIseToiOCIsd2lkdGg6IjE4IixoZWlnaHQ6IjQiLHJ4OiIxIn1dLFsicGF0aCIse2Q6Ik0xMiA4djEzIn1dLFsicGF0aCIse2Q6Ik0xOSAxMnY3YTIgMiAwIDAgMS0yIDJIN2EyIDIgMCAwIDEtMi0ydi03In1dLFsicGF0aCIse2Q6Ik03LjUgOGEyLjUgMi41IDAgMCAxIDAtNUE0LjggOCAwIDAgMSAxMiA4YTQuOCA4IDAgMCAxIDQuNS01IDIuNSAyLjUgMCAwIDEgMCA1In1dXSx3R3Q9W1sicGF0aCIse2Q6Ik0xNSA2YTkgOSAwIDAgMC05IDlWMyJ9XSxbImNpcmNsZSIse2N4OiIxOCIsY3k6IjYiLHI6IjMifV0sWyJjaXJjbGUiLHtjeDoiNiIsY3k6IjE4IixyOiIzIn1dXSxjST1bWyJjaXJjbGUiLHtjeDoiMTIiLGN5OiIxMiIscjoiMyJ9XSxbImxpbmUiLHt4MToiMyIseDI6IjkiLHkxOiIxMiIseTI6IjEyIn1dLFsibGluZSIse3gxOiIxNSIseDI6IjIxIix5MToiMTIiLHkyOiIxMiJ9XV0sTUd0PVtbInBhdGgiLHtkOiJNMTIgM3Y2In1dLFsiY2lyY2xlIix7Y3g6IjEyIixjeToiMTIiLHI6IjMifV0sWyJwYXRoIix7ZDoiTTEyIDE1djYifV1dLGtHdD1bWyJjaXJjbGUiLHtjeDoiNSIsY3k6IjYiLHI6IjMifV0sWyJwYXRoIix7ZDoiTTEyIDZoNWEyIDIgMCAwIDEgMiAydjcifV0sWyJwYXRoIix7ZDoibTE1IDktMy0zIDMtMyJ9XSxbImNpcmNsZSIse2N4OiIxOSIsY3k6IjE4IixyOiIzIn1dLFsicGF0aCIse2Q6Ik0xMiAxOEg3YTIgMiAwIDAgMS0yLTJWOSJ9XSxbInBhdGgiLHtkOiJtOSAxNSAzIDMtMyAzIn1dXSxTR3Q9W1siY2lyY2xlIix7Y3g6IjE4IixjeToiMTgiLHI6IjMifV0sWyJjaXJjbGUiLHtjeDoiNiIsY3k6IjYiLHI6IjMifV0sWyJwYXRoIix7ZDoiTTEzIDZoM2EyIDIgMCAwIDEgMiAydjcifV0sWyJwYXRoIix7ZDoiTTExIDE4SDhhMiAyIDAgMCAxLTItMlY5In1dXSx6R3Q9W1siY2lyY2xlIix7Y3g6IjEyIixjeToiMTgiLHI6IjMifV0sWyJjaXJjbGUiLHtjeDoiNiIsY3k6IjYiLHI6IjMifV0sWyJjaXJjbGUiLHtjeDoiMTgiLGN5OiI2IixyOiIzIn1dLFsicGF0aCIse2Q6Ik0xOCA5djJjMCAuNi0uNCAxLTEgMUg3Yy0uNiAwLTEtLjQtMS0xVjkifV0sWyJwYXRoIix7ZDoiTTEyIDEydjMifV1dLENHdD1bWyJjaXJjbGUiLHtjeDoiNSIsY3k6IjYiLHI6IjMifV0sWyJwYXRoIix7ZDoiTTUgOXY2In1dLFsiY2lyY2xlIix7Y3g6IjUiLGN5OiIxOCIscjoiMyJ9XSxbInBhdGgiLHtkOiJNMTIgM3YxOCJ9XSxbImNpcmNsZSIse2N4OiIxOSIsY3k6IjYiLHI6IjMifV0sWyJwYXRoIix7ZDoiTTE2IDE1LjdBOSA5IDAgMCAwIDE5IDkifV1dLFRHdD1bWyJjaXJjbGUiLHtjeDoiMTgiLGN5OiIxOCIscjoiMyJ9XSxbImNpcmNsZSIse2N4OiI2IixjeToiNiIscjoiMyJ9XSxbInBhdGgiLHtkOiJNNiAyMVY5YTkgOSAwIDAgMCA5IDkifV1dLF9HdD1bWyJjaXJjbGUiLHtjeDoiNSIsY3k6IjYiLHI6IjMifV0sWyJwYXRoIix7ZDoiTTUgOXYxMiJ9XSxbImNpcmNsZSIse2N4OiIxOSIsY3k6IjE4IixyOiIzIn1dLFsicGF0aCIse2Q6Im0xNSA5LTMtMyAzLTMifV0sWyJwYXRoIix7ZDoiTTEyIDZoNWEyIDIgMCAwIDEgMiAydjcifV1dLExHdD1bWyJjaXJjbGUiLHtjeDoiNiIsY3k6IjYiLHI6IjMifV0sWyJwYXRoIix7ZDoiTTYgOXYxMiJ9XSxbInBhdGgiLHtkOiJtMjEgMy02IDYifV0sWyJwYXRoIix7ZDoibTIxIDktNi02In1dLFsicGF0aCIse2Q6Ik0xOCAxMS41VjE1In1dLFsiY2lyY2xlIix7Y3g6IjE4IixjeToiMTgiLHI6IjMifV1dLEFHdD1bWyJjaXJjbGUiLHtjeDoiNSIsY3k6IjYiLHI6IjMifV0sWyJwYXRoIix7ZDoiTTUgOXYxMiJ9XSxbInBhdGgiLHtkOiJtMTUgOS0zLTMgMy0zIn1dLFsicGF0aCIse2Q6Ik0xMiA2aDVhMiAyIDAgMCAxIDIgMnYzIn1dLFsicGF0aCIse2Q6Ik0xOSAxNXY2In1dLFsicGF0aCIse2Q6Ik0yMiAxOGgtNiJ9XV0sREd0PVtbImNpcmNsZSIse2N4OiI2IixjeToiNiIscjoiMyJ9XSxbInBhdGgiLHtkOiJNNiA5djEyIn1dLFsicGF0aCIse2Q6Ik0xMyA2aDNhMiAyIDAgMCAxIDIgMnYzIn1dLFsicGF0aCIse2Q6Ik0xOCAxNXY2In1dLFsicGF0aCIse2Q6Ik0yMSAxOGgtNiJ9XV0sRUd0PVtbImNpcmNsZSIse2N4OiIxOCIsY3k6IjE4IixyOiIzIn1dLFsiY2lyY2xlIix7Y3g6IjYiLGN5OiI2IixyOiIzIn1dLFsicGF0aCIse2Q6Ik0xOCA2VjUifV0sWyJwYXRoIix7ZDoiTTE4IDExdi0xIn1dLFsibGluZSIse3gxOiI2Iix4MjoiNiIseTE6IjkiLHkyOiIyMSJ9XV0sJEd0PVtbImNpcmNsZSIse2N4OiIxOCIsY3k6IjE4IixyOiIzIn1dLFsiY2lyY2xlIix7Y3g6IjYiLGN5OiI2IixyOiIzIn1dLFsicGF0aCIse2Q6Ik0xMyA2aDNhMiAyIDAgMCAxIDIgMnY3In1dLFsibGluZSIse3gxOiI2Iix4MjoiNiIseTE6IjkiLHkyOiIyMSJ9XV0sSUd0PVtbInBhdGgiLHtkOiJNMTUgMjJ2LTRhNC44IDQuOCAwIDAgMC0xLTMuNWMzIDAgNi0yIDYtNS41LjA4LTEuMjUtLjI3LTIuNDgtMS0zLjUuMjgtMS4xNS4yOC0yLjM1IDAtMy41IDAgMC0xIDAtMyAxLjUtMi42NC0uNS01LjM2LS41LTggMEM2IDIgNSAyIDUgMmMtLjMgMS4xNS0uMyAyLjM1IDAgMy41QTUuNDAzIDUuNDAzIDAgMCAwIDQgOWMwIDMuNSAzIDUuNSA2IDUuNS0uMzkuNDktLjY4IDEuMDUtLjg1IDEuNjUtLjE3LjYtLjIyIDEuMjMtLjE1IDEuODV2NCJ9XSxbInBhdGgiLHtkOiJNOSAxOGMtNC41MSAyLTUtMi03LTIifV1dLFBHdD1bWyJwYXRoIix7ZDoibTIyIDEzLjI5LTMuMzMtMTBhLjQyLjQyIDAgMCAwLS4xNC0uMTguMzguMzggMCAwIDAtLjIyLS4xMS4zOS4zOSAwIDAgMC0uMjMuMDcuNDIuNDIgMCAwIDAtLjE0LjE4bC0yLjI2IDYuNjdIOC4zMkw2LjEgMy4yNmEuNDIuNDIgMCAwIDAtLjEtLjE4LjM4LjM4IDAgMCAwLS4yNi0uMDguMzkuMzkgMCAwIDAtLjIzLjA3LjQyLjQyIDAgMCAwLS4xNC4xOEwyIDEzLjI5YS43NC43NCAwIDAgMCAuMjcuODNMMTIgMjFsOS42OS02Ljg4YS43MS43MSAwIDAgMCAuMzEtLjgzWiJ9XV0sTkd0PVtbInBhdGgiLHtkOiJNNS4xMTYgNC4xMDRBMSAxIDAgMCAxIDYuMTEgM2gxMS43OGExIDEgMCAwIDEgLjk5NCAxLjEwNUwxNy4xOSAyMC4yMUEyIDIgMCAwIDEgMTUuMiAyMkg4LjhhMiAyIDAgMCAxLTItMS43OXoifV0sWyJwYXRoIix7ZDoiTTYgMTJhNSA1IDAgMCAxIDYgMCA1IDUgMCAwIDAgNiAwIn1dXSxGR3Q9W1siY2lyY2xlIix7Y3g6IjYiLGN5OiIxNSIscjoiNCJ9XSxbImNpcmNsZSIse2N4OiIxOCIsY3k6IjE1IixyOiI0In1dLFsicGF0aCIse2Q6Ik0xNCAxNWEyIDIgMCAwIDAtMi0yIDIgMiAwIDAgMC0yIDIifV0sWyJwYXRoIix7ZDoiTTIuNSAxMyA1IDdjLjctMS4zIDEuNC0yIDMtMiJ9XSxbInBhdGgiLHtkOiJNMjEuNSAxMyAxOSA3Yy0uNy0xLjMtMS41LTItMy0yIn1dXSxPR3Q9W1sicGF0aCIse2Q6Ik0xNS42ODYgMTVBMTQuNSAxNC41IDAgMCAxIDEyIDIyYTE0LjUgMTQuNSAwIDAgMSAwLTIwIDEwIDEwIDAgMSAwIDkuNTQyIDEzIn1dLFsicGF0aCIse2Q6Ik0yIDEyaDguNSJ9XSxbInBhdGgiLHtkOiJNMjAgNlY0YTIgMiAwIDEgMC00IDB2MiJ9XSxbInJlY3QiLHt3aWR0aDoiOCIsaGVpZ2h0OiI1Iix4OiIxNCIseToiNiIscng6IjEifV1dLFJHdD1bWyJjaXJjbGUiLHtjeDoiMTIiLGN5OiIxMiIscjoiMTAifV0sWyJwYXRoIix7ZDoiTTEyIDJhMTQuNSAxNC41IDAgMCAwIDAgMjAgMTQuNSAxNC41IDAgMCAwIDAtMjAifV0sWyJwYXRoIix7ZDoiTTIgMTJoMjAifV1dLEJHdD1bWyJwYXRoIix7ZDoibTE2IDMgNSA1In1dLFsicGF0aCIse2Q6Ik0yIDEyaDIwQTEwIDEwIDAgMSAxIDEyIDJhMTQuNSAxNC41IDAgMCAwIDAgMjAgMTQuNSAxNC41IDAgMCAwIDQtMTAifV0sWyJwYXRoIix7ZDoibTIxIDMtNSA1In1dXSxIR3Q9W1sicGF0aCIse2Q6Ik0xMiAxM1YybDggNC04IDQifV0sWyJwYXRoIix7ZDoiTTIwLjU2MSAxMC4yMjJhOSA5IDAgMSAxLTEyLjU1LTUuMjkifV0sWyJwYXRoIix7ZDoiTTguMDAyIDkuOTk3YTUgNSAwIDEgMCA4LjkgMi4wMiJ9XV0scUd0PVtbInBhdGgiLHtkOiJNMiAyMVYzIn1dLFsicGF0aCIse2Q6Ik0yIDVoMThhMiAyIDAgMCAxIDIgMnY4YTIgMiAwIDAgMS0yIDJIMi4yNiJ9XSxbInBhdGgiLHtkOiJNNyAxN3YzYTEgMSAwIDAgMCAxIDFoNWExIDEgMCAwIDAgMS0xdi0zIn1dLFsiY2lyY2xlIix7Y3g6IjE2IixjeToiMTEiLHI6IjIifV0sWyJjaXJjbGUiLHtjeDoiOCIsY3k6IjExIixyOiIyIn1dXSxqR3Q9W1sicGF0aCIse2Q6Ik0yMS40MiAxMC45MjJhMSAxIDAgMCAwLS4wMTktMS44MzhMMTIuODMgNS4xOGEyIDIgMCAwIDAtMS42NiAwTDIuNiA5LjA4YTEgMSAwIDAgMCAwIDEuODMybDguNTcgMy45MDhhMiAyIDAgMCAwIDEuNjYgMHoifV0sWyJwYXRoIix7ZDoiTTIyIDEwdjYifV0sWyJwYXRoIix7ZDoiTTYgMTIuNVYxNmE2IDMgMCAwIDAgMTIgMHYtMy41In1dXSxWR3Q9W1sicGF0aCIse2Q6Ik0yMiA1VjJsLTUuODkgNS44OSJ9XSxbImNpcmNsZSIse2N4OiIxNi42IixjeToiMTUuODkiLHI6IjMifV0sWyJjaXJjbGUiLHtjeDoiOC4xMSIsY3k6IjcuNCIscjoiMyJ9XSxbImNpcmNsZSIse2N4OiIxMi4zNSIsY3k6IjExLjY1IixyOiIzIn1dLFsiY2lyY2xlIix7Y3g6IjEzLjkxIixjeToiNS44NSIscjoiMyJ9XSxbImNpcmNsZSIse2N4OiIxOC4xNSIsY3k6IjEwLjA5IixyOiIzIn1dLFsiY2lyY2xlIix7Y3g6IjYuNTYiLGN5OiIxMy4yIixyOiIzIn1dLFsiY2lyY2xlIix7Y3g6IjEwLjgiLGN5OiIxNy40NCIscjoiMyJ9XSxbImNpcmNsZSIse2N4OiI1IixjeToiMTkiLHI6IjMifV1dLGRJPVtbInBhdGgiLHtkOiJNMTIgM3YxN2ExIDEgMCAwIDEtMSAxSDVhMiAyIDAgMCAxLTItMlY1YTIgMiAwIDAgMSAyLTJoMTRhMiAyIDAgMCAxIDIgMnY2YTEgMSAwIDAgMS0xIDFIMyJ9XSxbInBhdGgiLHtkOiJtMTYgMTkgMiAyIDQtNCJ9XV0sdUk9W1sicGF0aCIse2Q6Ik0xMiAzdjE3YTEgMSAwIDAgMS0xIDFINWEyIDIgMCAwIDEtMi0yVjVhMiAyIDAgMCAxIDItMmgxNGEyIDIgMCAwIDEgMiAydjZhMSAxIDAgMCAxLTEgMUgzIn1dLFsicGF0aCIse2Q6Ik0xNiAxOWg2In1dLFsicGF0aCIse2Q6Ik0xOSAyMnYtNiJ9XV0scEk9W1sicGF0aCIse2Q6Ik0xMiAzdjE3YTEgMSAwIDAgMS0xIDFINWEyIDIgMCAwIDEtMi0yVjVhMiAyIDAgMCAxIDItMmgxNGEyIDIgMCAwIDEgMiAydjZhMSAxIDAgMCAxLTEgMUgzIn1dLFsicGF0aCIse2Q6Im0xNiAxNiA1IDUifV0sWyJwYXRoIix7ZDoibTE2IDIxIDUtNSJ9XV0saEk9W1sicGF0aCIse2Q6Ik0xMiAzdjE4In1dLFsicGF0aCIse2Q6Ik0zIDEyaDE4In1dLFsicmVjdCIse3g6IjMiLHk6IjMiLHdpZHRoOiIxOCIsaGVpZ2h0OiIxOCIscng6IjIifV1dLFVHdD1bWyJwYXRoIix7ZDoiTTE1IDN2MTgifV0sWyJwYXRoIix7ZDoiTTMgMTJoMTgifV0sWyJwYXRoIix7ZDoiTTkgM3YxOCJ9XSxbInJlY3QiLHt4OiIzIix5OiIzIix3aWR0aDoiMTgiLGhlaWdodDoiMTgiLHJ4OiIyIn1dXSxVcD1bWyJyZWN0Iix7d2lkdGg6IjE4IixoZWlnaHQ6IjE4Iix4OiIzIix5OiIzIixyeDoiMiJ9XSxbInBhdGgiLHtkOiJNMyA5aDE4In1dLFsicGF0aCIse2Q6Ik0zIDE1aDE4In1dLFsicGF0aCIse2Q6Ik05IDN2MTgifV0sWyJwYXRoIix7ZDoiTTE1IDN2MTgifV1dLFdHdD1bWyJjaXJjbGUiLHtjeDoiMTIiLGN5OiI5IixyOiIxIn1dLFsiY2lyY2xlIix7Y3g6IjE5IixjeToiOSIscjoiMSJ9XSxbImNpcmNsZSIse2N4OiI1IixjeToiOSIscjoiMSJ9XSxbImNpcmNsZSIse2N4OiIxMiIsY3k6IjE1IixyOiIxIn1dLFsiY2lyY2xlIix7Y3g6IjE5IixjeToiMTUiLHI6IjEifV0sWyJjaXJjbGUiLHtjeDoiNSIsY3k6IjE1IixyOiIxIn1dXSxHR3Q9W1siY2lyY2xlIix7Y3g6IjkiLGN5OiIxMiIscjoiMSJ9XSxbImNpcmNsZSIse2N4OiI5IixjeToiNSIscjoiMSJ9XSxbImNpcmNsZSIse2N4OiI5IixjeToiMTkiLHI6IjEifV0sWyJjaXJjbGUiLHtjeDoiMTUiLGN5OiIxMiIscjoiMSJ9XSxbImNpcmNsZSIse2N4OiIxNSIsY3k6IjUiLHI6IjEifV0sWyJjaXJjbGUiLHtjeDoiMTUiLGN5OiIxOSIscjoiMSJ9XV0sWUd0PVtbImNpcmNsZSIse2N4OiIxMiIsY3k6IjUiLHI6IjEifV0sWyJjaXJjbGUiLHtjeDoiMTkiLGN5OiI1IixyOiIxIn1dLFsiY2lyY2xlIix7Y3g6IjUiLGN5OiI1IixyOiIxIn1dLFsiY2lyY2xlIix7Y3g6IjEyIixjeToiMTIiLHI6IjEifV0sWyJjaXJjbGUiLHtjeDoiMTkiLGN5OiIxMiIscjoiMSJ9XSxbImNpcmNsZSIse2N4OiI1IixjeToiMTIiLHI6IjEifV0sWyJjaXJjbGUiLHtjeDoiMTIiLGN5OiIxOSIscjoiMSJ9XSxbImNpcmNsZSIse2N4OiIxOSIsY3k6IjE5IixyOiIxIn1dLFsiY2lyY2xlIix7Y3g6IjUiLGN5OiIxOSIscjoiMSJ9XV0sWkd0PVtbInBhdGgiLHtkOiJNMyA3VjVjMC0xLjEuOS0yIDItMmgyIn1dLFsicGF0aCIse2Q6Ik0xNyAzaDJjMS4xIDAgMiAuOSAyIDJ2MiJ9XSxbInBhdGgiLHtkOiJNMjEgMTd2MmMwIDEuMS0uOSAyLTIgMmgtMiJ9XSxbInBhdGgiLHtkOiJNNyAyMUg1Yy0xLjEgMC0yLS45LTItMnYtMiJ9XSxbInJlY3QiLHt3aWR0aDoiNyIsaGVpZ2h0OiI1Iix4OiI3Iix5OiI3IixyeDoiMSJ9XSxbInJlY3QiLHt3aWR0aDoiNyIsaGVpZ2h0OiI1Iix4OiIxMCIseToiMTIiLHJ4OiIxIn1dXSxYR3Q9W1sicGF0aCIse2Q6Im0xMS45IDEyLjEgNC41MTQtNC41MTQifV0sWyJwYXRoIix7ZDoiTTIwLjEgMi4zYTEgMSAwIDAgMC0xLjQgMGwtMS4xMTQgMS4xMTRBMiAyIDAgMCAwIDE3IDQuODI4djEuMzQ0YTIgMiAwIDAgMS0uNTg2IDEuNDE0QTIgMiAwIDAgMSAxNy44MjggN2gxLjM0NGEyIDIgMCAwIDAgMS40MTQtLjU4NkwyMS43IDUuM2ExIDEgMCAwIDAgMC0xLjR6In1dLFsicGF0aCIse2Q6Im02IDE2IDIgMiJ9XSxbInBhdGgiLHtkOiJNOC4yMyA5Ljg1QTMgMyAwIDAgMSAxMSA4YTUgNSAwIDAgMSA1IDUgMyAzIDAgMCAxLTEuODUgMi43N2wtLjkyLjM4QTIgMiAwIDAgMCAxMiAxOGE0IDQgMCAwIDEtNCA0IDYgNiAwIDAgMS02LTYgNCA0IDAgMCAxIDQtNCAyIDIgMCAwIDAgMS44NS0xLjIzeiJ9XV0sUUd0PVtbInBhdGgiLHtkOiJNMTMuMTQ0IDIxLjE0NEE3LjI3NCAxMC40NDUgNDUgMSAwIDIuODU2IDEwLjg1NiJ9XSxbInBhdGgiLHtkOiJNMTMuMTQ0IDIxLjE0NEE3LjI3NCA0LjM2NSA0NSAwIDAgMi44NTYgMTAuODU2YTcuMjc0IDQuMzY1IDQ1IDAgMCAxMC4yODggMTAuMjg4In1dLFsicGF0aCIse2Q6Ik0xNi41NjUgMTAuNDM1IDE4LjYgOC40YTIuNTAxIDIuNTAxIDAgMSAwIDEuNjUtNC42NSAyLjUgMi41IDAgMSAwLTQuNjYgMS42NmwtMi4wMjQgMi4wMjUifV0sWyJwYXRoIix7ZDoibTguNSAxNi41LTEtMSJ9XV0sSkd0PVtbInBhdGgiLHtkOiJNMTIgMTZINGEyIDIgMCAxIDEgMC00aDE2YTIgMiAwIDEgMSAwIDRoLTQuMjUifV0sWyJwYXRoIix7ZDoiTTUgMTJhMiAyIDAgMCAxLTItMiA5IDcgMCAwIDEgMTggMCAyIDIgMCAwIDEtMiAyIn1dLFsicGF0aCIse2Q6Ik01IDE2YTIgMiAwIDAgMC0yIDIgMyAzIDAgMCAwIDMgM2gxMmEzIDMgMCAwIDAgMy0zIDIgMiAwIDAgMC0yLTJxMCAwIDAgMCJ9XSxbInBhdGgiLHtkOiJtNi42NyAxMiA2LjEzIDQuNmEyIDIgMCAwIDAgMi44LS40bDMuMTUtNC4yIn1dXSxLR3Q9W1sicGF0aCIse2Q6Im0xNSAxMi05LjM3MyA5LjM3M2ExIDEgMCAwIDEtMy4wMDEtM0wxMiA5In1dLFsicGF0aCIse2Q6Im0xOCAxNSA0LTQifV0sWyJwYXRoIix7ZDoibTIxLjUgMTEuNS0xLjkxNC0xLjkxNEEyIDIgMCAwIDEgMTkgOC4xNzJ2LS4zNDRhMiAyIDAgMCAwLS41ODYtMS40MTRsLTEuNjU3LTEuNjU3QTYgNiAwIDAgMCAxMi41MTYgM0g5bDEuMjQzIDEuMjQzQTYgNiAwIDAgMSAxMiA4LjQ4NVYxMGwyIDJoMS4xNzJhMiAyIDAgMCAxIDEuNDE0LjU4NkwxOC41IDE0LjUifV1dLGVZdD1bWyJwYXRoIix7ZDoiTTExIDE1aDJhMiAyIDAgMSAwIDAtNGgtM2MtLjYgMC0xLjEuMi0xLjQuNkwzIDE3In1dLFsicGF0aCIse2Q6Im03IDIxIDEuNi0xLjRjLjMtLjQuOC0uNiAxLjQtLjZoNGMxLjEgMCAyLjEtLjQgMi44LTEuMmw0LjYtNC40YTIgMiAwIDAgMC0yLjc1LTIuOTFsLTQuMiAzLjkifV0sWyJwYXRoIix7ZDoibTIgMTYgNiA2In1dLFsiY2lyY2xlIix7Y3g6IjE2IixjeToiOSIscjoiMi45In1dLFsiY2lyY2xlIix7Y3g6IjYiLGN5OiI1IixyOiIzIn1dXSx0WXQ9W1sicGF0aCIse2Q6Ik0xMi4wMzUgMTcuMDEyYTMgMyAwIDAgMC0zLTNsLS4zMTEtLjAwMmEuNzIuNzIgMCAwIDEtLjUwNS0xLjIyOWwxLjE5NS0xLjE5NUEyIDIgMCAwIDEgMTAuODI4IDExSDEyYTIgMiAwIDAgMCAwLTRIOS4yNDNhMyAzIDAgMCAwLTIuMTIyLjg3OWwtMi43MDcgMi43MDdBNC44MyA0LjgzIDAgMCAwIDMgMTRhOCA4IDAgMCAwIDggOGgyYTggOCAwIDAgMCA4LThWN2EyIDIgMCAxIDAtNCAwdjJhMiAyIDAgMSAwIDQgMCJ9XSxbInBhdGgiLHtkOiJNMTMuODg4IDkuNjYyQTIgMiAwIDAgMCAxNyA4VjVBMiAyIDAgMSAwIDEzIDUifV0sWyJwYXRoIix7ZDoiTTkgNUEyIDIgMCAxIDAgNSA1VjEwIn1dLFsicGF0aCIse2Q6Ik05IDdWNEEyIDIgMCAxIDEgMTMgNFY3LjI2OCJ9XV0sZkk9W1sicGF0aCIse2Q6Ik0xOCAxMS41VjlhMiAyIDAgMCAwLTItMmEyIDIgMCAwIDAtMiAydjEuNCJ9XSxbInBhdGgiLHtkOiJNMTQgMTBWOGEyIDIgMCAwIDAtMi0yYTIgMiAwIDAgMC0yIDJ2MiJ9XSxbInBhdGgiLHtkOiJNMTAgOS45VjlhMiAyIDAgMCAwLTItMmEyIDIgMCAwIDAtMiAydjUifV0sWyJwYXRoIix7ZDoiTTYgMTRhMiAyIDAgMCAwLTItMmEyIDIgMCAwIDAtMiAyIn1dLFsicGF0aCIse2Q6Ik0xOCAxMWEyIDIgMCAxIDEgNCAwdjNhOCA4IDAgMCAxLTggOGgtNGE4IDggMCAwIDEtOC04IDIgMiAwIDEgMSA0IDAifV1dLHJZdD1bWyJwYXRoIix7ZDoiTTExIDE0aDJhMiAyIDAgMCAwIDAtNGgtM2MtLjYgMC0xLjEuMi0xLjQuNkwzIDE2In1dLFsicGF0aCIse2Q6Im0xNC40NSAxMy4zOSA1LjA1LTQuNjk0QzIwLjE5NiA4IDIxIDYuODUgMjEgNS43NWEyLjc1IDIuNzUgMCAwIDAtNC43OTctMS44MzcuMjc2LjI3NiAwIDAgMS0uNDA2IDBBMi43NSAyLjc1IDAgMCAwIDExIDUuNzVjMCAxLjIuODAyIDIuMjQ4IDEuNSAyLjk0NkwxNiAxMS45NSJ9XSxbInBhdGgiLHtkOiJtMiAxNSA2IDYifV0sWyJwYXRoIix7ZDoibTcgMjAgMS42LTEuNGMuMy0uNC44LS42IDEuNC0uNmg0YzEuMSAwIDIuMS0uNCAyLjgtMS4ybDQuNi00LjRhMSAxIDAgMCAwLTIuNzUtMi45MSJ9XV0sbUk9W1sicGF0aCIse2Q6Ik0xMSAxMmgyYTIgMiAwIDEgMCAwLTRoLTNjLS42IDAtMS4xLjItMS40LjZMMyAxNCJ9XSxbInBhdGgiLHtkOiJtNyAxOCAxLjYtMS40Yy4zLS40LjgtLjYgMS40LS42aDRjMS4xIDAgMi4xLS40IDIuOC0xLjJsNC42LTQuNGEyIDIgMCAwIDAtMi43NS0yLjkxbC00LjIgMy45In1dLFsicGF0aCIse2Q6Im0yIDEzIDYgNiJ9XV0saVl0PVtbInBhdGgiLHtkOiJNMTggMTIuNVYxMGEyIDIgMCAwIDAtMi0yYTIgMiAwIDAgMC0yIDJ2MS40In1dLFsicGF0aCIse2Q6Ik0xNCAxMVY5YTIgMiAwIDEgMC00IDB2MiJ9XSxbInBhdGgiLHtkOiJNMTAgMTAuNVY1YTIgMiAwIDEgMC00IDB2OSJ9XSxbInBhdGgiLHtkOiJtNyAxNS0xLjc2LTEuNzZhMiAyIDAgMCAwLTIuODMgMi44MmwzLjYgMy42QzcuNSAyMS4xNCA5LjIgMjIgMTIgMjJoMmE4IDggMCAwIDAgOC04VjdhMiAyIDAgMSAwLTQgMHY1In1dXSxhWXQ9W1sicGF0aCIse2Q6Ik0xMiAzVjIifV0sWyJwYXRoIix7ZDoibTE1LjQgMTcuNCAzLjItMi44YTIgMiAwIDEgMSAyLjggMi45bC0zLjYgMy4zYy0uNy44LTEuNyAxLjItMi44IDEuMmgtNGMtMS4xIDAtMi4xLS40LTIuOC0xLjJsLTEuMzAyLTEuNDY0QTEgMSAwIDAgMCA2LjE1MSAxOUg1In1dLFsicGF0aCIse2Q6Ik0yIDE0aDEyYTIgMiAwIDAgMSAwIDRoLTIifV0sWyJwYXRoIix7ZDoiTTQgMTBoMTYifV0sWyJwYXRoIix7ZDoiTTUgMTBhNyA3IDAgMCAxIDE0IDAifV0sWyJwYXRoIix7ZDoiTTUgMTR2NmExIDEgMCAwIDEtMSAxSDIifV1dLG5ZdD1bWyJwYXRoIix7ZDoiTTE4IDExVjZhMiAyIDAgMCAwLTItMmEyIDIgMCAwIDAtMiAyIn1dLFsicGF0aCIse2Q6Ik0xNCAxMFY0YTIgMiAwIDAgMC0yLTJhMiAyIDAgMCAwLTIgMnYyIn1dLFsicGF0aCIse2Q6Ik0xMCAxMC41VjZhMiAyIDAgMCAwLTItMmEyIDIgMCAwIDAtMiAydjgifV0sWyJwYXRoIix7ZDoiTTE4IDhhMiAyIDAgMSAxIDQgMHY2YTggOCAwIDAgMS04IDhoLTJjLTIuOCAwLTQuNS0uODYtNS45OS0yLjM0bC0zLjYtMy42YTIgMiAwIDAgMSAyLjgzLTIuODJMNyAxNSJ9XV0sb1l0PVtbInBhdGgiLHtkOiJNMi4wNDggMTguNTY2QTIgMiAwIDAgMCA0IDIxaDE2YTIgMiAwIDAgMCAxLjk1Mi0yLjQzNGwtMi05QTIgMiAwIDAgMCAxOCA4SDZhMiAyIDAgMCAwLTEuOTUyIDEuNTY2eiJ9XSxbInBhdGgiLHtkOiJNOCAxMVY2YTQgNCAwIDAgMSA4IDB2NSJ9XV0sc1l0PVtbInBhdGgiLHtkOiJtMTEgMTcgMiAyYTEgMSAwIDEgMCAzLTMifV0sWyJwYXRoIix7ZDoibTE0IDE0IDIuNSAyLjVhMSAxIDAgMSAwIDMtM2wtMy44OC0zLjg4YTMgMyAwIDAgMC00LjI0IDBsLS44OC44OGExIDEgMCAxIDEtMy0zbDIuODEtMi44MWE1Ljc5IDUuNzkgMCAwIDEgNy4wNi0uODdsLjQ3LjI4YTIgMiAwIDAgMCAxLjQyLjI1TDIxIDQifV0sWyJwYXRoIix7ZDoibTIxIDMgMSAxMWgtMiJ9XSxbInBhdGgiLHtkOiJNMyAzIDIgMTRsNi41IDYuNWExIDEgMCAxIDAgMy0zIn1dLFsicGF0aCIse2Q6Ik0zIDRoOCJ9XV0sbFl0PVtbInBhdGgiLHtkOiJNMTIgMnY4In1dLFsicGF0aCIse2Q6Im0xNiA2LTQgNC00LTQifV0sWyJyZWN0Iix7d2lkdGg6IjIwIixoZWlnaHQ6IjgiLHg6IjIiLHk6IjE0IixyeDoiMiJ9XSxbInBhdGgiLHtkOiJNNiAxOGguMDEifV0sWyJwYXRoIix7ZDoiTTEwIDE4aC4wMSJ9XV0sY1l0PVtbInBhdGgiLHtkOiJtMTYgNi00LTQtNCA0In1dLFsicGF0aCIse2Q6Ik0xMiAydjgifV0sWyJyZWN0Iix7d2lkdGg6IjIwIixoZWlnaHQ6IjgiLHg6IjIiLHk6IjE0IixyeDoiMiJ9XSxbInBhdGgiLHtkOiJNNiAxOGguMDEifV0sWyJwYXRoIix7ZDoiTTEwIDE4aC4wMSJ9XV0sZFl0PVtbInBhdGgiLHtkOiJNMTAgMTZoLjAxIn1dLFsicGF0aCIse2Q6Ik0yLjIxMiAxMS41NzdhMiAyIDAgMCAwLS4yMTIuODk2VjE4YTIgMiAwIDAgMCAyIDJoMTZhMiAyIDAgMCAwIDItMnYtNS41MjdhMiAyIDAgMCAwLS4yMTItLjg5NkwxOC41NSA1LjExQTIgMiAwIDAgMCAxNi43NiA0SDcuMjRhMiAyIDAgMCAwLTEuNzkgMS4xMXoifV0sWyJwYXRoIix7ZDoiTTIxLjk0NiAxMi4wMTNIMi4wNTQifV0sWyJwYXRoIix7ZDoiTTYgMTZoLjAxIn1dXSx1WXQ9W1sicGF0aCIse2Q6Ik0xMCAxMFY1YTEgMSAwIDAgMSAxLTFoMmExIDEgMCAwIDEgMSAxdjUifV0sWyJwYXRoIix7ZDoiTTE0IDZhNiA2IDAgMCAxIDYgNnYzIn1dLFsicGF0aCIse2Q6Ik00IDE1di0zYTYgNiAwIDAgMSA2LTYifV0sWyJyZWN0Iix7eDoiMiIseToiMTUiLHdpZHRoOiIyMCIsaGVpZ2h0OiI0IixyeDoiMSJ9XV0scFl0PVtbImxpbmUiLHt4MToiNCIseDI6IjIwIix5MToiOSIseTI6IjkifV0sWyJsaW5lIix7eDE6IjQiLHgyOiIyMCIseTE6IjE1Iix5MjoiMTUifV0sWyJsaW5lIix7eDE6IjEwIix4MjoiOCIseTE6IjMiLHkyOiIyMSJ9XSxbImxpbmUiLHt4MToiMTYiLHgyOiIxNCIseTE6IjMiLHkyOiIyMSJ9XV0saFl0PVtbInBhdGgiLHtkOiJNMTQgMThhMiAyIDAgMCAwLTQgMCJ9XSxbInBhdGgiLHtkOiJtMTkgMTEtMi4xMS02LjY1N2EyIDIgMCAwIDAtMi43NTItMS4xNDhsLTEuMjc2LjYxQTIgMiAwIDAgMSAxMiA0SDguNWEyIDIgMCAwIDAtMS45MjUgMS40NTZMNSAxMSJ9XSxbInBhdGgiLHtkOiJNMiAxMWgyMCJ9XSxbImNpcmNsZSIse2N4OiIxNyIsY3k6IjE4IixyOiIzIn1dLFsiY2lyY2xlIix7Y3g6IjciLGN5OiIxOCIscjoiMyJ9XV0sZll0PVtbInBhdGgiLHtkOiJtNS4yIDYuMiAxLjQgMS40In1dLFsicGF0aCIse2Q6Ik0yIDEzaDIifV0sWyJwYXRoIix7ZDoiTTIwIDEzaDIifV0sWyJwYXRoIix7ZDoibTE3LjQgNy42IDEuNC0xLjQifV0sWyJwYXRoIix7ZDoiTTIyIDE3SDIifV0sWyJwYXRoIix7ZDoiTTIyIDIxSDIifV0sWyJwYXRoIix7ZDoiTTE2IDEzYTQgNCAwIDAgMC04IDAifV0sWyJwYXRoIix7ZDoiTTEyIDVWMi41In1dXSxtWXQ9W1sicGF0aCIse2Q6Ik0xMCAxMkg2In1dLFsicGF0aCIse2Q6Ik0xMCAxNVY5In1dLFsicGF0aCIse2Q6Ik0xNCAxNC41YS41LjUgMCAwIDAgLjUuNWgxYTIuNSAyLjUgMCAwIDAgMi41LTIuNXYtMUEyLjUgMi41IDAgMCAwIDE1LjUgOWgtMWEuNS41IDAgMCAwLS41LjV6In1dLFsicGF0aCIse2Q6Ik02IDE1VjkifV0sWyJyZWN0Iix7eDoiMiIseToiNSIsd2lkdGg6IjIwIixoZWlnaHQ6IjE0IixyeDoiMiJ9XV0sZ1l0PVtbInBhdGgiLHtkOiJNMjIgOWExIDEgMCAwIDAtMS0xSDNhMSAxIDAgMCAwLTEgMXY0YTEgMSAwIDAgMCAxIDFoMWwyIDJoMTJsMi0yaDFhMSAxIDAgMCAwIDEtMVoifV0sWyJwYXRoIix7ZDoiTTcuNSAxMmg5In1dXSxiWXQ9W1sicGF0aCIse2Q6Ik00IDEyaDgifV0sWyJwYXRoIix7ZDoiTTQgMThWNiJ9XSxbInBhdGgiLHtkOiJNMTIgMThWNiJ9XSxbInBhdGgiLHtkOiJtMTcgMTIgMy0ydjgifV1dLHZZdD1bWyJwYXRoIix7ZDoiTTQgMTJoOCJ9XSxbInBhdGgiLHtkOiJNNCAxOFY2In1dLFsicGF0aCIse2Q6Ik0xMiAxOFY2In1dLFsicGF0aCIse2Q6Ik0yMSAxOGgtNGMwLTQgNC0zIDQtNiAwLTEuNS0yLTIuNS00LTEifV1dLHhZdD1bWyJwYXRoIix7ZDoiTTQgMTJoOCJ9XSxbInBhdGgiLHtkOiJNNCAxOFY2In1dLFsicGF0aCIse2Q6Ik0xMiAxOFY2In1dLFsicGF0aCIse2Q6Ik0xNy41IDEwLjVjMS43LTEgMy41IDAgMy41IDEuNWEyIDIgMCAwIDEtMiAyIn1dLFsicGF0aCIse2Q6Ik0xNyAxNy41YzIgMS41IDQgLjMgNC0xLjVhMiAyIDAgMCAwLTItMiJ9XV0seVl0PVtbInBhdGgiLHtkOiJNMTIgMThWNiJ9XSxbInBhdGgiLHtkOiJNMTcgMTB2M2ExIDEgMCAwIDAgMSAxaDMifV0sWyJwYXRoIix7ZDoiTTIxIDEwdjgifV0sWyJwYXRoIix7ZDoiTTQgMTJoOCJ9XSxbInBhdGgiLHtkOiJNNCAxOFY2In1dXSx3WXQ9W1sicGF0aCIse2Q6Ik00IDEyaDgifV0sWyJwYXRoIix7ZDoiTTQgMThWNiJ9XSxbInBhdGgiLHtkOiJNMTIgMThWNiJ9XSxbInBhdGgiLHtkOiJNMTcgMTN2LTNoNCJ9XSxbInBhdGgiLHtkOiJNMTcgMTcuN2MuNC4yLjguMyAxLjMuMyAxLjUgMCAyLjctMS4xIDIuNy0yLjVTMTkuOCAxMyAxOC4zIDEzSDE3In1dXSxNWXQ9W1sicGF0aCIse2Q6Ik00IDEyaDgifV0sWyJwYXRoIix7ZDoiTTQgMThWNiJ9XSxbInBhdGgiLHtkOiJNMTIgMThWNiJ9XSxbImNpcmNsZSIse2N4OiIxOSIsY3k6IjE2IixyOiIyIn1dLFsicGF0aCIse2Q6Ik0yMCAxMGMtMiAyLTMgMy41LTMgNiJ9XV0sa1l0PVtbInBhdGgiLHtkOiJNNiAxMmgxMiJ9XSxbInBhdGgiLHtkOiJNNiAyMFY0In1dLFsicGF0aCIse2Q6Ik0xOCAyMFY0In1dXSxTWXQ9W1sicGF0aCIse2Q6Ik0yMSAxNGgtMS4zNDMifV0sWyJwYXRoIix7ZDoiTTkuMTI4IDMuNDdBOSA5IDAgMCAxIDIxIDEydjMuMzQzIn1dLFsicGF0aCIse2Q6Im0yIDIgMjAgMjAifV0sWyJwYXRoIix7ZDoiTTIwLjQxNCAyMC40MTRBMiAyIDAgMCAxIDE5IDIxaC0xYTIgMiAwIDAgMS0yLTJ2LTMifV0sWyJwYXRoIix7ZDoiTTMgMTRoM2EyIDIgMCAwIDEgMiAydjNhMiAyIDAgMCAxLTIgMkg1YTIgMiAwIDAgMS0yLTJ2LTdhOSA5IDAgMCAxIDIuNjM2LTYuMzY0In1dXSx6WXQ9W1sicGF0aCIse2Q6Ik0zIDE0aDNhMiAyIDAgMCAxIDIgMnYzYTIgMiAwIDAgMS0yIDJINWEyIDIgMCAwIDEtMi0ydi03YTkgOSAwIDAgMSAxOCAwdjdhMiAyIDAgMCAxLTIgMmgtMWEyIDIgMCAwIDEtMi0ydi0zYTIgMiAwIDAgMSAyLTJoMyJ9XV0sQ1l0PVtbInBhdGgiLHtkOiJNMTIuNDA5IDUuODI0Yy0uNzAyLjc5Mi0xLjE1IDEuNDk2LTEuNDE1IDIuMTY2bDIuMTUzIDIuMTU2YS41LjUgMCAwIDEgMCAuNzA3bC0yLjI5MyAyLjI5M2EuNS41IDAgMCAwIDAgLjcwN0wxMiAxNSJ9XSxbInBhdGgiLHtkOiJNMTMuNTA4IDIwLjMxM2EyIDIgMCAwIDEtMyAuMDE5TDUgMTVjLTEuNS0xLjUtMy0zLjItMy01LjVhNS41IDUuNSAwIDAgMSA5LjU5MS0zLjY3Ny42LjYgMCAwIDAgLjgxOC4wMDFBNS41IDUuNSAwIDAgMSAyMiA5LjVjMCAyLjI5LTEuNSA0LTMgNS41eiJ9XV0sVFl0PVtbInBhdGgiLHtkOiJNMyAxMWgzYTIgMiAwIDAgMSAyIDJ2M2EyIDIgMCAwIDEtMiAySDVhMiAyIDAgMCAxLTItMnYtNVptMCAwYTkgOSAwIDEgMSAxOCAwbTAgMHY1YTIgMiAwIDAgMS0yIDJoLTFhMiAyIDAgMCAxLTItMnYtM2EyIDIgMCAwIDEgMi0yaDNaIn1dLFsicGF0aCIse2Q6Ik0yMSAxNnYyYTQgNCAwIDAgMS00IDRoLTUifV1dLF9ZdD1bWyJwYXRoIix7ZDoiTTE5LjQxNCAxNC40MTRDMjEgMTIuODI4IDIyIDExLjUgMjIgOS41YTUuNSA1LjUgMCAwIDAtOS41OTEtMy42NzYuNi42IDAgMCAxLS44MTguMDAxQTUuNSA1LjUgMCAwIDAgMiA5LjVjMCAyLjMgMS41IDQgMyA1LjVsNS41MzUgNS4zNjJhMiAyIDAgMCAwIDIuODc5LjA1MiAyLjEyIDIuMTIgMCAwIDAtLjAwNC0zIDIuMTI0IDIuMTI0IDAgMSAwIDMtMyAyLjEyNCAyLjEyNCAwIDAgMCAzLjAwNCAwIDIgMiAwIDAgMCAwLTIuODI4bC0xLjg4MS0xLjg4MmEyLjQxIDIuNDEgMCAwIDAtMy40MDkgMGwtMS43MSAxLjcxYTIgMiAwIDAgMS0yLjgyOCAwIDIgMiAwIDAgMSAwLTIuODI4bDIuODIzLTIuNzYyIn1dXSxMWXQ9W1sicGF0aCIse2Q6Im0xNC44NzYgMTguOTktMS4zNjggMS4zMjNhMiAyIDAgMCAxLTMgLjAxOUw1IDE1Yy0xLjUtMS41LTMtMy4yLTMtNS41YTUuNSA1LjUgMCAwIDEgOS41OTEtMy42NzYuNTYuNTYgMCAwIDAgLjgxOCAwQTUuNDkgNS40OSAwIDAgMSAyMiA5LjVhNS4yIDUuMiAwIDAgMS0uMjQ0IDEuNTcyIn1dLFsicGF0aCIse2Q6Ik0xNSAxNWg2In1dXSxBWXQ9W1sicGF0aCIse2Q6Ik0xMC41IDQuODkzYTUuNSA1LjUgMCAwIDEgMS4wOTEuOTMxLjU2LjU2IDAgMCAwIC44MTggMEE1LjQ5IDUuNDkgMCAwIDEgMjIgOS41YzAgMS44NzItMS4wMDIgMy4zNTYtMi4xODcgNC42NTUifV0sWyJwYXRoIix7ZDoibTE2Ljk2NyAxNi45NjctMy40NTkgMy4zNDZhMiAyIDAgMCAxLTMgLjAxOUw1IDE1Yy0xLjUtMS41LTMtMy4yLTMtNS41YTUuNSA1LjUgMCAwIDEgMi43NDctNC43NjEifV0sWyJwYXRoIix7ZDoibTIgMiAyMCAyMCJ9XV0sRFl0PVtbInBhdGgiLHtkOiJNMiA5LjVhNS41IDUuNSAwIDAgMSA5LjU5MS0zLjY3Ni41Ni41NiAwIDAgMCAuODE4IDBBNS40OSA1LjQ5IDAgMCAxIDIyIDkuNWMwIDIuMjktMS41IDQtMyA1LjVsLTUuNDkyIDUuMzEzYTIgMiAwIDAgMS0zIC4wMTlMNSAxNWMtMS41LTEuNS0zLTMuMi0zLTUuNSJ9XSxbInBhdGgiLHtkOiJNMy4yMiAxM0g5LjVsLjUtMSAyIDQuNSAyLTcgMS41IDMuNWg1LjI3In1dXSxFWXQ9W1sicGF0aCIse2Q6Im0xNC40NzkgMTkuMzc0LS45NzEuOTM5YTIgMiAwIDAgMS0zIC4wMTlMNSAxNWMtMS41LTEuNS0zLTMuMi0zLTUuNWE1LjUgNS41IDAgMCAxIDkuNTkxLTMuNjc2LjU2LjU2IDAgMCAwIC44MTggMEE1LjQ5IDUuNDkgMCAwIDEgMjIgOS41YTUuMiA1LjIgMCAwIDEtLjIxOSAxLjQ5In1dLFsicGF0aCIse2Q6Ik0xNSAxNWg2In1dLFsicGF0aCIse2Q6Ik0xOCAxMnY2In1dXSwkWXQ9W1sicGF0aCIse2Q6Ik0yIDkuNWE1LjUgNS41IDAgMCAxIDkuNTkxLTMuNjc2LjU2LjU2IDAgMCAwIC44MTggMEE1LjQ5IDUuNDkgMCAwIDEgMjIgOS41YzAgMi4yOS0xLjUgNC0zIDUuNWwtNS40OTIgNS4zMTNhMiAyIDAgMCAxLTMgLjAxOUw1IDE1Yy0xLjUtMS41LTMtMy4yLTMtNS41In1dXSxJWXQ9W1sicGF0aCIse2Q6Ik0xMSA4YzItMy0yLTMgMC02In1dLFsicGF0aCIse2Q6Ik0xNS41IDhjMi0zLTItMyAwLTYifV0sWyJwYXRoIix7ZDoiTTYgMTBoLjAxIn1dLFsicGF0aCIse2Q6Ik02IDE0aC4wMSJ9XSxbInBhdGgiLHtkOiJNMTAgMTZ2LTQifV0sWyJwYXRoIix7ZDoiTTE0IDE2di00In1dLFsicGF0aCIse2Q6Ik0xOCAxNnYtNCJ9XSxbInBhdGgiLHtkOiJNMjAgNmEyIDIgMCAwIDEgMiAydjEwYTIgMiAwIDAgMS0yIDJINGEyIDIgMCAwIDEtMi0yVjhhMiAyIDAgMCAxIDItMmgzIn1dLFsicGF0aCIse2Q6Ik01IDIwdjIifV0sWyJwYXRoIix7ZDoiTTE5IDIwdjIifV1dLFBZdD1bWyJwYXRoIix7ZDoiTTExIDE3djQifV0sWyJwYXRoIix7ZDoiTTE0IDN2OGEyIDIgMCAwIDAgMiAyaDUuODY1In1dLFsicGF0aCIse2Q6Ik0xNyAxN3Y0In1dLFsicGF0aCIse2Q6Ik0xOCAxN2E0IDQgMCAwIDAgNC00IDggNiAwIDAgMC04LTYgNiA1IDAgMCAwLTYgNXYzYTIgMiAwIDAgMCAyIDJ6In1dLFsicGF0aCIse2Q6Ik0yIDEwdjUifV0sWyJwYXRoIix7ZDoiTTYgM2gxNiJ9XSxbInBhdGgiLHtkOiJNNyAyMWgxNCJ9XSxbInBhdGgiLHtkOiJNOCAxM0gyIn1dXSxOWXQ9W1sicGF0aCIse2Q6Ik0yMSAxNlY4YTIgMiAwIDAgMC0xLTEuNzNsLTctNGEyIDIgMCAwIDAtMiAwbC03IDRBMiAyIDAgMCAwIDMgOHY4YTIgMiAwIDAgMCAxIDEuNzNsNyA0YTIgMiAwIDAgMCAyIDBsNy00QTIgMiAwIDAgMCAyMSAxNnoifV1dLEZZdD1bWyJwYXRoIix7ZDoibTkgMTEtNiA2djNoOWwzLTMifV0sWyJwYXRoIix7ZDoibTIyIDEyLTQuNiA0LjZhMiAyIDAgMCAxLTIuOCAwbC01LjItNS4yYTIgMiAwIDAgMSAwLTIuOEwxNCA0In1dXSxPWXQ9W1sicGF0aCIse2Q6Ik0zIDEyYTkgOSAwIDEgMCA5LTkgOS43NSA5Ljc1IDAgMCAwLTYuNzQgMi43NEwzIDgifV0sWyJwYXRoIix7ZDoiTTMgM3Y1aDUifV0sWyJwYXRoIix7ZDoiTTEyIDd2NWw0IDIifV1dLFJZdD1bWyJwYXRoIix7ZDoiTTEwLjgyIDE2LjEyYzEuNjkuNiAzLjkxLjc5IDUuMTguODUuNTUuMDMgMS0uNDIuOTctLjk3LS4wNi0xLjI3LS4yNi0zLjUtLjg1LTUuMTgifV0sWyJwYXRoIix7ZDoiTTExLjUgNi41YzEuNjQgMCA1LS4zOCA2LjcxLTEuMDcuNTItLjIuNTUtLjgyLjEyLTEuMTdBMTAgMTAgMCAwIDAgNC4yNiAxOC4zM2MuMzUuNDMuOTYuNCAxLjE3LS4xMi42OS0xLjcxIDEuMDctNS4wNyAxLjA3LTYuNzEgMS4zNC40NSAzLjEuOSA0Ljg4LjYyYS44OC44OCAwIDAgMCAuNzMtLjc0Yy4zLTIuMTQtLjE1LTMuNS0uNjEtNC44OCJ9XSxbInBhdGgiLHtkOiJNMTUuNjIgMTYuOTVjLjIuODUuNjIgMi43Ni41IDQuMjhhLjc3Ljc3IDAgMCAxLS45LjcgMTYuNjQgMTYuNjQgMCAwIDEtNC4wOC0xLjM2In1dLFsicGF0aCIse2Q6Ik0xNi4xMyAyMS4wNWMxLjY1LjYzIDMuNjguODQgNC44Ny45MWEuOS45IDAgMCAwIC45Ni0uOTYgMTcuNjggMTcuNjggMCAwIDAtLjktNC44NyJ9XSxbInBhdGgiLHtkOiJNMTYuOTQgMTUuNjJjLjg2LjIgMi43Ny42MiA0LjI5LjVhLjc3Ljc3IDAgMCAwIC43LS45IDE2LjY0IDE2LjY0IDAgMCAwLTEuMzYtNC4wOCJ9XSxbInBhdGgiLHtkOiJNMTcuOTkgNS41MmEyMC44MiAyMC44MiAwIDAgMSAzLjE1IDQuNS44LjggMCAwIDEtLjY4IDEuMTNjLTIuMzMuMi01LjMtLjMyLTguMjctMS41NyJ9XSxbInBhdGgiLHtkOiJNNC45MyA0LjkzIDMgM2EuNy43IDAgMCAxIDAtMSJ9XSxbInBhdGgiLHtkOiJNOS41OCAxMi4xOGMxLjI0IDIuOTggMS43NyA1Ljk1IDEuNTcgOC4yOGEuOC44IDAgMCAxLTEuMTMuNjggMjAuODIgMjAuODIgMCAwIDEtNC41LTMuMTUifV1dLEJZdD1bWyJwYXRoIix7ZDoiTTEwLjgyIDE2LjEyYzEuNjkuNiAzLjkxLjc5IDUuMTguODUuMjguMDEuNTMtLjA5LjctLjI3In1dLFsicGF0aCIse2Q6Ik0xMS4xNCAyMC41N2MuNTIuMjQgMi40NCAxLjEyIDQuMDggMS4zNy40Ni4wNi44Ni0uMjUuOS0uNzEuMTItMS41Mi0uMy0zLjQzLS41LTQuMjgifV0sWyJwYXRoIix7ZDoiTTE2LjEzIDIxLjA1YzEuNjUuNjMgMy42OC44NCA0Ljg3LjkxYS45LjkgMCAwIDAgLjctLjI2In1dLFsicGF0aCIse2Q6Ik0xNy45OSA1LjUyYTIwLjgzIDIwLjgzIDAgMCAxIDMuMTUgNC41LjguOCAwIDAgMS0uNjggMS4xM2MtMS4xNy4xLTIuNS4wMi0zLjktLjI1In1dLFsicGF0aCIse2Q6Ik0yMC41NyAxMS4xNGMuMjQuNTIgMS4xMiAyLjQ0IDEuMzcgNC4wOC4wNC4zLS4wOC41OS0uMzEuNzUifV0sWyJwYXRoIix7ZDoiTTQuOTMgNC45M2ExMCAxMCAwIDAgMC0uNjcgMTMuNGMuMzUuNDMuOTYuNCAxLjE3LS4xMi42OS0xLjcxIDEuMDctNS4wNyAxLjA3LTYuNzEgMS4zNC40NSAzLjEuOSA0Ljg4LjYyYS44NS44NSAwIDAgMCAuNDgtLjI0In1dLFsicGF0aCIse2Q6Ik01LjUyIDE3Ljk5YzEuMDUuOTUgMi45MSAyLjQyIDQuNSAzLjE1YS44LjggMCAwIDAgMS4xMy0uNjhjLjItMi4zNC0uMzMtNS4zLTEuNTctOC4yOCJ9XSxbInBhdGgiLHtkOiJNOC4zNSAyLjY4YTEwIDEwIDAgMCAxIDkuOTggMS41OGMuNDMuMzUuNC45Ni0uMTIgMS4xNy0xLjUuNi00LjMuOTgtNi4wNyAxLjA1In1dLFsicGF0aCIse2Q6Im0yIDIgMjAgMjAifV1dLEhZdD1bWyJwYXRoIix7ZDoiTTEyIDd2NCJ9XSxbInBhdGgiLHtkOiJNMTQgMjF2LTNhMiAyIDAgMCAwLTQgMHYzIn1dLFsicGF0aCIse2Q6Ik0xNCA5aC00In1dLFsicGF0aCIse2Q6Ik0xOCAxMWgyYTIgMiAwIDAgMSAyIDJ2NmEyIDIgMCAwIDEtMiAySDRhMiAyIDAgMCAxLTItMnYtOWEyIDIgMCAwIDEgMi0yaDIifV0sWyJwYXRoIix7ZDoiTTE4IDIxVjVhMiAyIDAgMCAwLTItMkg4YTIgMiAwIDAgMC0yIDJ2MTYifV1dLHFZdD1bWyJwYXRoIix7ZDoiTTEwIDIydi02LjU3In1dLFsicGF0aCIse2Q6Ik0xMiAxMWguMDEifV0sWyJwYXRoIix7ZDoiTTEyIDdoLjAxIn1dLFsicGF0aCIse2Q6Ik0xNCAxNS40M1YyMiJ9XSxbInBhdGgiLHtkOiJNMTUgMTZhNSA1IDAgMCAwLTYgMCJ9XSxbInBhdGgiLHtkOiJNMTYgMTFoLjAxIn1dLFsicGF0aCIse2Q6Ik0xNiA3aC4wMSJ9XSxbInBhdGgiLHtkOiJNOCAxMWguMDEifV0sWyJwYXRoIix7ZDoiTTggN2guMDEifV0sWyJyZWN0Iix7eDoiNCIseToiMiIsd2lkdGg6IjE2IixoZWlnaHQ6IjIwIixyeDoiMiJ9XV0sall0PVtbInBhdGgiLHtkOiJNNSAyMmgxNCJ9XSxbInBhdGgiLHtkOiJNNSAyaDE0In1dLFsicGF0aCIse2Q6Ik0xNyAyMnYtNC4xNzJhMiAyIDAgMCAwLS41ODYtMS40MTRMMTIgMTJsLTQuNDE0IDQuNDE0QTIgMiAwIDAgMCA3IDE3LjgyOFYyMiJ9XSxbInBhdGgiLHtkOiJNNyAydjQuMTcyYTIgMiAwIDAgMCAuNTg2IDEuNDE0TDEyIDEybDQuNDE0LTQuNDE0QTIgMiAwIDAgMCAxNyA2LjE3MlYyIn1dXSxWWXQ9W1sicGF0aCIse2Q6Ik04LjYyIDEzLjhBMi4yNSAyLjI1IDAgMSAxIDEyIDEwLjgzNmEyLjI1IDIuMjUgMCAxIDEgMy4zOCAyLjk2NmwtMi42MjYgMi44NTZhLjk5OC45OTggMCAwIDEtMS41MDcgMHoifV0sWyJwYXRoIix7ZDoiTTMgMTBhMiAyIDAgMCAxIC43MDktMS41MjhsNy02YTIgMiAwIDAgMSAyLjU4MiAwbDcgNkEyIDIgMCAwIDEgMjEgMTB2OWEyIDIgMCAwIDEtMiAySDVhMiAyIDAgMCAxLTItMnoifV1dLFVZdD1bWyJwYXRoIix7ZDoiTTEwIDEyVjguOTY0In1dLFsicGF0aCIse2Q6Ik0xNCAxMlY4Ljk2NCJ9XSxbInBhdGgiLHtkOiJNMTUgMTJhMSAxIDAgMCAxIDEgMXYyYTIgMiAwIDAgMS0yIDJoLTRhMiAyIDAgMCAxLTItMnYtMmExIDEgMCAwIDEgMS0xeiJ9XSxbInBhdGgiLHtkOiJNOC41IDIxSDVhMiAyIDAgMCAxLTItMnYtOWEyIDIgMCAwIDEgLjcwOS0xLjUyOGw3LTZhMiAyIDAgMCAxIDIuNTgyIDBsNyA2QTIgMiAwIDAgMSAyMSAxMHY5YTIgMiAwIDAgMS0yIDJoLTVhMiAyIDAgMCAxLTItMnYtMiJ9XV0sV1l0PVtbInBhdGgiLHtkOiJNMTIuMzUgMjFINWEyIDIgMCAwIDEtMi0ydi05YTIgMiAwIDAgMSAuNzEtMS41M2w3LTZhMiAyIDAgMCAxIDIuNTggMGw3IDZBMiAyIDAgMCAxIDIxIDEwdjIuMzUifV0sWyJwYXRoIix7ZDoiTTE0LjggMTIuNEExIDEgMCAwIDAgMTQgMTJoLTRhMSAxIDAgMCAwLTEgMXY4In1dLFsicGF0aCIse2Q6Ik0xNSAxOGg2In1dLFsicGF0aCIse2Q6Ik0xOCAxNXY2In1dXSxHWXQ9W1sicGF0aCIse2Q6Ik05LjUgMTMuODY2YTQgNCAwIDAgMSA1IC4wMSJ9XSxbInBhdGgiLHtkOiJNMTIgMTdoLjAxIn1dLFsicGF0aCIse2Q6Ik0zIDEwYTIgMiAwIDAgMSAuNzA5LTEuNTI4bDctNmEyIDIgMCAwIDEgMi41ODIgMGw3IDZBMiAyIDAgMCAxIDIxIDEwdjlhMiAyIDAgMCAxLTIgMkg1YTIgMiAwIDAgMS0yLTJ6In1dLFsicGF0aCIse2Q6Ik03IDEwLjc1NGE4IDggMCAwIDEgMTAgMCJ9XV0sZ0k9W1sicGF0aCIse2Q6Ik0xNSAyMXYtOGExIDEgMCAwIDAtMS0xaC00YTEgMSAwIDAgMC0xIDF2OCJ9XSxbInBhdGgiLHtkOiJNMyAxMGEyIDIgMCAwIDEgLjcwOS0xLjUyOGw3LTZhMiAyIDAgMCAxIDIuNTgyIDBsNyA2QTIgMiAwIDAgMSAyMSAxMHY5YTIgMiAwIDAgMS0yIDJINWEyIDIgMCAwIDEtMi0yeiJ9XV0sYkk9W1sicGF0aCIse2Q6Ik0xMiAxN2M1IDAgOC0yLjY5IDgtNkg0YzAgMy4zMSAzIDYgOCA2bS00IDRoOG0tNC0zdjNNNS4xNCAxMWEzLjUgMy41IDAgMSAxIDYuNzEgMCJ9XSxbInBhdGgiLHtkOiJNMTIuMTQgMTFhMy41IDMuNSAwIDEgMSA2LjcxIDAifV0sWyJwYXRoIix7ZDoiTTE1LjUgNi41YTMuNSAzLjUgMCAxIDAtNyAwIn1dXSx2ST1bWyJwYXRoIix7ZDoibTcgMTEgNC4wOCAxMC4zNWExIDEgMCAwIDAgMS44NCAwTDE3IDExIn1dLFsicGF0aCIse2Q6Ik0xNyA3QTUgNSAwIDAgMCA3IDcifV0sWyJwYXRoIix7ZDoiTTE3IDdhMiAyIDAgMCAxIDAgNEg3YTIgMiAwIDAgMSAwLTQifV1dLFlZdD1bWyJwYXRoIix7ZDoiTTEzLjUgOGgtMyJ9XSxbInBhdGgiLHtkOiJtMTUgMi0xIDJoM2EyIDIgMCAwIDEgMiAydjE0YTIgMiAwIDAgMS0yIDJIN2EyIDIgMCAwIDEtMi0yVjZhMiAyIDAgMCAxIDItMmgzIn1dLFsicGF0aCIse2Q6Ik0xNi44OTkgMjJBNSA1IDAgMCAwIDcuMSAyMiJ9XSxbInBhdGgiLHtkOiJtOSAyIDMgNiJ9XSxbImNpcmNsZSIse2N4OiIxMiIsY3k6IjE1IixyOiIzIn1dXSxaWXQ9W1sicGF0aCIse2Q6Ik0xNiAxMGgyIn1dLFsicGF0aCIse2Q6Ik0xNiAxNGgyIn1dLFsicGF0aCIse2Q6Ik02LjE3IDE1YTMgMyAwIDAgMSA1LjY2IDAifV0sWyJjaXJjbGUiLHtjeDoiOSIsY3k6IjExIixyOiIyIn1dLFsicmVjdCIse3g6IjIiLHk6IjUiLHdpZHRoOiIyMCIsaGVpZ2h0OiIxNCIscng6IjIifV1dLFhZdD1bWyJwYXRoIix7ZDoiTTEwLjMgMjFINWEyIDIgMCAwIDEtMi0yVjVhMiAyIDAgMCAxIDItMmgxNGEyIDIgMCAwIDEgMiAydjEwbC0zLjEtMy4xYTIgMiAwIDAgMC0yLjgxNC4wMTRMNiAyMSJ9XSxbInBhdGgiLHtkOiJtMTQgMTkgMyAzdi01LjUifV0sWyJwYXRoIix7ZDoibTE3IDIyIDMtMyJ9XSxbImNpcmNsZSIse2N4OiI5IixjeToiOSIscjoiMiJ9XV0sUVl0PVtbInBhdGgiLHtkOiJNMjEgOXYxMGEyIDIgMCAwIDEtMiAySDVhMiAyIDAgMCAxLTItMlY1YTIgMiAwIDAgMSAyLTJoNyJ9XSxbImxpbmUiLHt4MToiMTYiLHgyOiIyMiIseTE6IjUiLHkyOiI1In1dLFsiY2lyY2xlIix7Y3g6IjkiLGN5OiI5IixyOiIyIn1dLFsicGF0aCIse2Q6Im0yMSAxNS0zLjA4Ni0zLjA4NmEyIDIgMCAwIDAtMi44MjggMEw2IDIxIn1dXSxKWXQ9W1sibGluZSIse3gxOiIyIix4MjoiMjIiLHkxOiIyIix5MjoiMjIifV0sWyJwYXRoIix7ZDoiTTEwLjQxIDEwLjQxYTIgMiAwIDEgMS0yLjgzLTIuODMifV0sWyJsaW5lIix7eDE6IjEzLjUiLHgyOiI2Iix5MToiMTMuNSIseTI6IjIxIn1dLFsibGluZSIse3gxOiIxOCIseDI6IjIxIix5MToiMTIiLHkyOiIxNSJ9XSxbInBhdGgiLHtkOiJNMy41OSAzLjU5QTEuOTkgMS45OSAwIDAgMCAzIDV2MTRhMiAyIDAgMCAwIDIgMmgxNGMuNTUgMCAxLjA1Mi0uMjIgMS40MS0uNTkifV0sWyJwYXRoIix7ZDoiTTIxIDE1VjVhMiAyIDAgMCAwLTItMkg5In1dXSxLWXQ9W1sicGF0aCIse2Q6Ik0xNSAxNS4wMDNhMSAxIDAgMCAxIDEuNTE3LS44NTlsNC45OTcgMi45OTdhMSAxIDAgMCAxIDAgMS43MThsLTQuOTk3IDIuOTk3YTEgMSAwIDAgMS0xLjUxNy0uODZ6In1dLFsicGF0aCIse2Q6Ik0yMSAxMi4xN1Y1YTIgMiAwIDAgMC0yLTJINWEyIDIgMCAwIDAtMiAydjE0YTIgMiAwIDAgMCAyIDJoNiJ9XSxbInBhdGgiLHtkOiJtNiAyMSA1LTUifV0sWyJjaXJjbGUiLHtjeDoiOSIsY3k6IjkiLHI6IjIifV1dLGVadD1bWyJwYXRoIix7ZDoiTTE2IDVoNiJ9XSxbInBhdGgiLHtkOiJNMTkgMnY2In1dLFsicGF0aCIse2Q6Ik0yMSAxMS41VjE5YTIgMiAwIDAgMS0yIDJINWEyIDIgMCAwIDEtMi0yVjVhMiAyIDAgMCAxIDItMmg3LjUifV0sWyJwYXRoIix7ZDoibTIxIDE1LTMuMDg2LTMuMDg2YTIgMiAwIDAgMC0yLjgyOCAwTDYgMjEifV0sWyJjaXJjbGUiLHtjeDoiOSIsY3k6IjkiLHI6IjIifV1dLHRadD1bWyJwYXRoIix7ZDoiTTEwLjMgMjFINWEyIDIgMCAwIDEtMi0yVjVhMiAyIDAgMCAxIDItMmgxNGEyIDIgMCAwIDEgMiAydjEwbC0zLjEtMy4xYTIgMiAwIDAgMC0yLjgxNC4wMTRMNiAyMSJ9XSxbInBhdGgiLHtkOiJtMTQgMTkuNSAzLTMgMyAzIn1dLFsicGF0aCIse2Q6Ik0xNyAyMnYtNS41In1dLFsiY2lyY2xlIix7Y3g6IjkiLGN5OiI5IixyOiIyIn1dXSxyWnQ9W1sicmVjdCIse3dpZHRoOiIxOCIsaGVpZ2h0OiIxOCIseDoiMyIseToiMyIscng6IjIiLHJ5OiIyIn1dLFsiY2lyY2xlIix7Y3g6IjkiLGN5OiI5IixyOiIyIn1dLFsicGF0aCIse2Q6Im0yMSAxNS0zLjA4Ni0zLjA4NmEyIDIgMCAwIDAtMi44MjggMEw2IDIxIn1dXSxpWnQ9W1sicGF0aCIse2Q6Ik0xNiAzaDV2NSJ9XSxbInBhdGgiLHtkOiJNMTcgMjFoMmEyIDIgMCAwIDAgMi0yIn1dLFsicGF0aCIse2Q6Ik0yMSAxMnYzIn1dLFsicGF0aCIse2Q6Im0yMSAzLTUgNSJ9XSxbInBhdGgiLHtkOiJNMyA3VjVhMiAyIDAgMCAxIDItMiJ9XSxbInBhdGgiLHtkOiJtNSAyMSA0LjE0NC00LjE0NGExLjIxIDEuMjEgMCAwIDEgMS43MTIgMEwxMyAxOSJ9XSxbInBhdGgiLHtkOiJNOSAzaDMifV0sWyJyZWN0Iix7eDoiMyIseToiMTEiLHdpZHRoOiIxMCIsaGVpZ2h0OiIxMCIscng6IjEifV1dLGFadD1bWyJwYXRoIix7ZDoibTIyIDExLTEuMjk2LTEuMjk2YTIuNCAyLjQgMCAwIDAtMy40MDggMEwxMSAxNiJ9XSxbInBhdGgiLHtkOiJNNCA4YTIgMiAwIDAgMC0yIDJ2MTBhMiAyIDAgMCAwIDIgMmgxMGEyIDIgMCAwIDAgMi0yIn1dLFsiY2lyY2xlIix7Y3g6IjEzIixjeToiNyIscjoiMSIsZmlsbDoiY3VycmVudENvbG9yIn1dLFsicmVjdCIse3g6IjgiLHk6IjIiLHdpZHRoOiIxNCIsaGVpZ2h0OiIxNCIscng6IjIifV1dLG5adD1bWyJwYXRoIix7ZDoiTTEyIDN2MTIifV0sWyJwYXRoIix7ZDoibTggMTEgNCA0IDQtNCJ9XSxbInBhdGgiLHtkOiJNOCA1SDRhMiAyIDAgMCAwLTIgMnYxMGEyIDIgMCAwIDAgMiAyaDE2YTIgMiAwIDAgMCAyLTJWN2EyIDIgMCAwIDAtMi0yaC00In1dXSxvWnQ9W1sicG9seWxpbmUiLHtwb2ludHM6IjIyIDEyIDE2IDEyIDE0IDE1IDEwIDE1IDggMTIgMiAxMiJ9XSxbInBhdGgiLHtkOiJNNS40NSA1LjExIDIgMTJ2NmEyIDIgMCAwIDAgMiAyaDE2YTIgMiAwIDAgMCAyLTJ2LTZsLTMuNDUtNi44OUEyIDIgMCAwIDAgMTYuNzYgNEg3LjI0YTIgMiAwIDAgMC0xLjc5IDEuMTF6In1dXSxzWnQ9W1sicGF0aCIse2Q6Ik02IDNoMTIifV0sWyJwYXRoIix7ZDoiTTYgOGgxMiJ9XSxbInBhdGgiLHtkOiJtNiAxMyA4LjUgOCJ9XSxbInBhdGgiLHtkOiJNNiAxM2gzIn1dLFsicGF0aCIse2Q6Ik05IDEzYzYuNjY3IDAgNi42NjctMTAgMC0xMCJ9XV0sbFp0PVtbInBhdGgiLHtkOiJNNiAxNmM1IDAgNy04IDEyLThhNCA0IDAgMCAxIDAgOGMtNSAwLTctOC0xMi04YTQgNCAwIDEgMCAwIDgifV1dLGNadD1bWyJjaXJjbGUiLHtjeDoiMTIiLGN5OiIxMiIscjoiMTAifV0sWyJwYXRoIix7ZDoiTTEyIDE2di00In1dLFsicGF0aCIse2Q6Ik0xMiA4aC4wMSJ9XV0sZFp0PVtbInJlY3QiLHt3aWR0aDoiMTgiLGhlaWdodDoiMTgiLHg6IjMiLHk6IjMiLHJ4OiIyIn1dLFsicGF0aCIse2Q6Ik03IDdoLjAxIn1dLFsicGF0aCIse2Q6Ik0xNyA3aC4wMSJ9XSxbInBhdGgiLHtkOiJNNyAxN2guMDEifV0sWyJwYXRoIix7ZDoiTTE3IDE3aC4wMSJ9XV0sdVp0PVtbInJlY3QiLHt3aWR0aDoiMjAiLGhlaWdodDoiMjAiLHg6IjIiLHk6IjIiLHJ4OiI1IixyeToiNSJ9XSxbInBhdGgiLHtkOiJNMTYgMTEuMzdBNCA0IDAgMSAxIDEyLjYzIDggNCA0IDAgMCAxIDE2IDExLjM3eiJ9XSxbImxpbmUiLHt4MToiMTcuNSIseDI6IjE3LjUxIix5MToiNi41Iix5MjoiNi41In1dXSxwWnQ9W1sicGF0aCIse2Q6Im0xNiAxNCA0IDQtNCA0In1dLFsicGF0aCIse2Q6Ik0yMCAxMGE4IDggMCAxIDAtOCA4aDgifV1dLGhadD1bWyJsaW5lIix7eDE6IjE5Iix4MjoiMTAiLHkxOiI0Iix5MjoiNCJ9XSxbImxpbmUiLHt4MToiMTQiLHgyOiI1Iix5MToiMjAiLHkyOiIyMCJ9XSxbImxpbmUiLHt4MToiMTUiLHgyOiI5Iix5MToiNCIseTI6IjIwIn1dXSxmWnQ9W1sicGF0aCIse2Q6Ik00IDEwYTggOCAwIDEgMSA4IDhINCJ9XSxbInBhdGgiLHtkOiJtOCAyMi00LTQgNC00In1dXSxtWnQ9W1sicGF0aCIse2Q6Ik0xMiA5LjVWMjFtMC0xMS41TDYgM202IDYuNUwxOCAzIn1dLFsicGF0aCIse2Q6Ik02IDE1aDEyIn1dLFsicGF0aCIse2Q6Ik02IDExaDEyIn1dXSxnWnQ9W1sicGF0aCIse2Q6Ik0yMSAxN2EyIDIgMCAwIDAtMi0ySDVhMiAyIDAgMCAwLTIgMnYyYTIgMiAwIDAgMCAyIDJoMTRhMiAyIDAgMCAwIDItMnYtMloifV0sWyJwYXRoIix7ZDoiTTYgMTV2LTIifV0sWyJwYXRoIix7ZDoiTTEyIDE1VjkifV0sWyJjaXJjbGUiLHtjeDoiMTIiLGN5OiI2IixyOiIzIn1dXSxiWnQ9W1sicGF0aCIse2Q6Ik01IDN2MTQifV0sWyJwYXRoIix7ZDoiTTEyIDN2OCJ9XSxbInBhdGgiLHtkOiJNMTkgM3YxOCJ9XV0sdlp0PVtbInBhdGgiLHtkOiJNMTggMTdhMSAxIDAgMCAwLTEgMXYxYTIgMiAwIDEgMCAyLTJ6In1dLFsicGF0aCIse2Q6Ik0yMC45NyAzLjYxYS40NS40NSAwIDAgMC0uNTgtLjU4QzEwLjIgNi42IDYuNiAxMC4yIDMuMDMgMjAuMzlhLjQ1LjQ1IDAgMCAwIC41OC41OEMxMy44IDE3LjQgMTcuNCAxMy44IDIwLjk3IDMuNjEifV0sWyJwYXRoIix7ZDoibTYuNzA3IDYuNzA3IDEwLjU4NiAxMC41ODYifV0sWyJwYXRoIix7ZDoiTTcgNWEyIDIgMCAxIDAtMiAyaDFhMSAxIDAgMCAwIDEtMXoifV1dLHhadD1bWyJwYXRoIix7ZDoiTTIuNTg2IDE3LjQxNEEyIDIgMCAwIDAgMiAxOC44MjhWMjFhMSAxIDAgMCAwIDEgMWgzYTEgMSAwIDAgMCAxLTF2LTFhMSAxIDAgMCAxIDEtMWgxYTEgMSAwIDAgMCAxLTF2LTFhMSAxIDAgMCAxIDEtMWguMTcyYTIgMiAwIDAgMCAxLjQxNC0uNTg2bC44MTQtLjgxNGE2LjUgNi41IDAgMSAwLTQtNHoifV0sWyJjaXJjbGUiLHtjeDoiMTYuNSIsY3k6IjcuNSIscjoiLjUiLGZpbGw6ImN1cnJlbnRDb2xvciJ9XV0seVp0PVtbInBhdGgiLHtkOiJNMTIuNCAyLjdhMi41IDIuNSAwIDAgMSAzLjQgMGw1LjUgNS41YTIuNSAyLjUgMCAwIDEgMCAzLjRsLTMuNyAzLjdhMi41IDIuNSAwIDAgMS0zLjQgMEw4LjcgOS44YTIuNSAyLjUgMCAwIDEgMC0zLjR6In1dLFsicGF0aCIse2Q6Im0xNCA3IDMgMyJ9XSxbInBhdGgiLHtkOiJtOS40IDEwLjYtNi44MTQgNi44MTRBMiAyIDAgMCAwIDIgMTguODI4VjIxYTEgMSAwIDAgMCAxIDFoM2ExIDEgMCAwIDAgMS0xdi0xYTEgMSAwIDAgMSAxLTFoMWExIDEgMCAwIDAgMS0xdi0xYTEgMSAwIDAgMSAxLTFoLjE3MmEyIDIgMCAwIDAgMS40MTQtLjU4NmwuODE0LS44MTQifV1dLHdadD1bWyJwYXRoIix7ZDoibTE1LjUgNy41IDIuMyAyLjNhMSAxIDAgMCAwIDEuNCAwbDIuMS0yLjFhMSAxIDAgMCAwIDAtMS40TDE5IDQifV0sWyJwYXRoIix7ZDoibTIxIDItOS42IDkuNiJ9XSxbImNpcmNsZSIse2N4OiI3LjUiLGN5OiIxNS41IixyOiI1LjUifV1dLE1adD1bWyJyZWN0Iix7d2lkdGg6IjIwIixoZWlnaHQ6IjE2Iix4OiIyIix5OiI0IixyeDoiMiJ9XSxbInBhdGgiLHtkOiJNNiA4aDQifV0sWyJwYXRoIix7ZDoiTTE0IDhoLjAxIn1dLFsicGF0aCIse2Q6Ik0xOCA4aC4wMSJ9XSxbInBhdGgiLHtkOiJNMiAxMmgyMCJ9XSxbInBhdGgiLHtkOiJNNiAxMnY0In1dLFsicGF0aCIse2Q6Ik0xMCAxMnY0In1dLFsicGF0aCIse2Q6Ik0xNCAxMnY0In1dLFsicGF0aCIse2Q6Ik0xOCAxMnY0In1dXSxrWnQ9W1sicGF0aCIse2Q6Ik0gMjAgNCBBMiAyIDAgMCAxIDIyIDYifV0sWyJwYXRoIix7ZDoiTSAyMiA2IEwgMjIgMTYuNDEifV0sWyJwYXRoIix7ZDoiTSA3IDE2IEwgMTYgMTYifV0sWyJwYXRoIix7ZDoiTSA5LjY5IDQgTCAyMCA0In1dLFsicGF0aCIse2Q6Ik0xNCA4aC4wMSJ9XSxbInBhdGgiLHtkOiJNMTggOGguMDEifV0sWyJwYXRoIix7ZDoibTIgMiAyMCAyMCJ9XSxbInBhdGgiLHtkOiJNMjAgMjBINGEyIDIgMCAwIDEtMi0yVjZhMiAyIDAgMCAxIDItMiJ9XSxbInBhdGgiLHtkOiJNNiA4aC4wMSJ9XSxbInBhdGgiLHtkOiJNOCAxMmguMDEifV1dLFNadD1bWyJwYXRoIix7ZDoiTTEwIDhoLjAxIn1dLFsicGF0aCIse2Q6Ik0xMiAxMmguMDEifV0sWyJwYXRoIix7ZDoiTTE0IDhoLjAxIn1dLFsicGF0aCIse2Q6Ik0xNiAxMmguMDEifV0sWyJwYXRoIix7ZDoiTTE4IDhoLjAxIn1dLFsicGF0aCIse2Q6Ik02IDhoLjAxIn1dLFsicGF0aCIse2Q6Ik03IDE2aDEwIn1dLFsicGF0aCIse2Q6Ik04IDEyaC4wMSJ9XSxbInJlY3QiLHt3aWR0aDoiMjAiLGhlaWdodDoiMTYiLHg6IjIiLHk6IjQiLHJ4OiIyIn1dXSx6WnQ9W1sicGF0aCIse2Q6Ik0xMiAydjUifV0sWyJwYXRoIix7ZDoiTTE0LjgyOSAxNS45OThhMyAzIDAgMSAxLTUuNjU4IDAifV0sWyJwYXRoIix7ZDoiTTIwLjkyIDE0LjYwNkExIDEgMCAwIDEgMjAgMTZINGExIDEgMCAwIDEtLjkyLTEuMzk0bDMtN0ExIDEgMCAwIDEgNyA3aDEwYTEgMSAwIDAgMSAuOTIuNjA2eiJ9XV0sQ1p0PVtbInBhdGgiLHtkOiJNMTAuMjkzIDIuMjkzYTEgMSAwIDAgMSAxLjQxNCAwbDIuNSAyLjUgNS45OTQgMS4yMjdhMSAxIDAgMCAxIC41MDYgMS42ODdsLTcgN2ExIDEgMCAwIDEtMS42ODctLjUwNmwtMS4yMjctNS45OTQtMi41LTIuNWExIDEgMCAwIDEgMC0xLjQxNHoifV0sWyJwYXRoIix7ZDoibTE0LjIwNyA0Ljc5My0zLjQxNCAzLjQxNCJ9XSxbInBhdGgiLHtkOiJNMyAyMGEyIDIgMCAwIDEgMi0yaDRhMiAyIDAgMCAxIDIgMnYxYTEgMSAwIDAgMS0xIDFINGExIDEgMCAwIDEtMS0xeiJ9XSxbInBhdGgiLHtkOiJtOS4wODYgNi41LTQuNzkzIDQuNzkzYTEgMSAwIDAgMC0uMTggMS4xN0w3IDE4In1dXSxUWnQ9W1sicGF0aCIse2Q6Ik0xMiAxMHYxMiJ9XSxbInBhdGgiLHtkOiJNMTcuOTI5IDcuNjI5QTEgMSAwIDAgMSAxNyA5SDdhMSAxIDAgMCAxLS45MjgtMS4zNzFsMi01QTEgMSAwIDAgMSA5IDJoNmExIDEgMCAwIDEgLjkyOC42Mjl6In1dLFsicGF0aCIse2Q6Ik05IDIyaDYifV1dLF9adD1bWyJwYXRoIix7ZDoiTTE5LjkyOSAxOC42MjlBMSAxIDAgMCAxIDE5IDIwSDlhMSAxIDAgMCAxLS45MjgtMS4zNzFsMi01QTEgMSAwIDAgMSAxMSAxM2g2YTEgMSAwIDAgMSAuOTI4LjYyOXoifV0sWyJwYXRoIix7ZDoiTTYgM2EyIDIgMCAwIDEgMiAydjJhMiAyIDAgMCAxLTIgMkg1YTEgMSAwIDAgMS0xLTFWNGExIDEgMCAwIDEgMS0xeiJ9XSxbInBhdGgiLHtkOiJNOCA2aDRhMiAyIDAgMCAxIDIgMnY1In1dXSxMWnQ9W1sicGF0aCIse2Q6Ik0xOS45MjkgOS42MjlBMSAxIDAgMCAxIDE5IDExSDlhMSAxIDAgMCAxLS45MjgtMS4zNzFsMi01QTEgMSAwIDAgMSAxMSA0aDZhMSAxIDAgMCAxIC45MjguNjI5eiJ9XSxbInBhdGgiLHtkOiJNNiAxNWEyIDIgMCAwIDEgMiAydjJhMiAyIDAgMCAxLTIgMkg1YTEgMSAwIDAgMS0xLTF2LTRhMSAxIDAgMCAxIDEtMXoifV0sWyJwYXRoIix7ZDoiTTggMThoNGEyIDIgMCAwIDAgMi0ydi01In1dXSxBWnQ9W1sicGF0aCIse2Q6Ik0xMiAxMnY2In1dLFsicGF0aCIse2Q6Ik00LjA3NyAxMC42MTVBMSAxIDAgMCAwIDUgMTJoMTRhMSAxIDAgMCAwIC45MjMtMS4zODVsLTMuMDc3LTcuMzg0QTIgMiAwIDAgMCAxNSAySDlhMiAyIDAgMCAwLTEuODQ2IDEuMjNaIn1dLFsicGF0aCIse2Q6Ik04IDIwYTIgMiAwIDAgMSAyLTJoNGEyIDIgMCAwIDEgMiAydjFhMSAxIDAgMCAxLTEgMUg5YTEgMSAwIDAgMS0xLTF6In1dXSxEWnQ9W1sicGF0aCIse2Q6Ik0xMCAxOHYtNyJ9XSxbInBhdGgiLHtkOiJNMTEuMTIgMi4xOThhMiAyIDAgMCAxIDEuNzYuMDA2bDcuODY2IDMuODQ3Yy40NzYuMjMzLjMxLjk0OS0uMjIuOTQ5SDMuNDc0Yy0uNTMgMC0uNjk1LS43MTYtLjIyLS45NDl6In1dLFsicGF0aCIse2Q6Ik0xNCAxOHYtNyJ9XSxbInBhdGgiLHtkOiJNMTggMTh2LTcifV0sWyJwYXRoIix7ZDoiTTMgMjJoMTgifV0sWyJwYXRoIix7ZDoiTTYgMTh2LTcifV1dLEVadD1bWyJwYXRoIix7ZDoibTEyIDggNi0zLTYtM3YxMCJ9XSxbInBhdGgiLHtkOiJtOCAxMS45OS01LjUgMy4xNGExIDEgMCAwIDAgMCAxLjc0bDguNSA0Ljg2YTIgMiAwIDAgMCAyIDBsOC41LTQuODZhMSAxIDAgMCAwIDAtMS43NEwxNiAxMiJ9XSxbInBhdGgiLHtkOiJtNi40OSAxMi44NSAxMS4wMiA2LjMifV0sWyJwYXRoIix7ZDoiTTE3LjUxIDEyLjg1IDYuNSAxOS4xNSJ9XV0sJFp0PVtbInBhdGgiLHtkOiJtNSA4IDYgNiJ9XSxbInBhdGgiLHtkOiJtNCAxNCA2LTYgMi0zIn1dLFsicGF0aCIse2Q6Ik0yIDVoMTIifV0sWyJwYXRoIix7ZDoiTTcgMmgxIn1dLFsicGF0aCIse2Q6Im0yMiAyMi01LTEwLTUgMTAifV0sWyJwYXRoIix7ZDoiTTE0IDE4aDYifV1dLEladD1bWyJwYXRoIix7ZDoiTTIgMjBoMjAifV0sWyJwYXRoIix7ZDoibTkgMTAgMiAyIDQtNCJ9XSxbInJlY3QiLHt4OiIzIix5OiI0Iix3aWR0aDoiMTgiLGhlaWdodDoiMTIiLHJ4OiIyIn1dXSx4ST1bWyJyZWN0Iix7d2lkdGg6IjE4IixoZWlnaHQ6IjEyIix4OiIzIix5OiI0IixyeDoiMiIscnk6IjIifV0sWyJsaW5lIix7eDE6IjIiLHgyOiIyMiIseTE6IjIwIix5MjoiMjAifV1dLFBadD1bWyJwYXRoIix7ZDoiTTE4IDVhMiAyIDAgMCAxIDIgMnY4LjUyNmEyIDIgMCAwIDAgLjIxMi44OTdsMS4wNjggMi4xMjdhMSAxIDAgMCAxLS45IDEuNDVIMy42MmExIDEgMCAwIDEtLjktMS40NWwxLjA2OC0yLjEyN0EyIDIgMCAwIDAgNCAxNS41MjZWN2EyIDIgMCAwIDEgMi0yeiJ9XSxbInBhdGgiLHtkOiJNMjAuMDU0IDE1Ljk4N0gzLjk0NiJ9XV0sTlp0PVtbInBhdGgiLHtkOiJNNyAyMmE1IDUgMCAwIDEtMi00In1dLFsicGF0aCIse2Q6Ik03IDE2LjkzYy45Ni40MyAxLjk2Ljc0IDIuOTkuOTEifV0sWyJwYXRoIix7ZDoiTTMuMzQgMTRBNi44IDYuOCAwIDAgMSAyIDEwYzAtNC40MiA0LjQ4LTggMTAtOHMxMCAzLjU4IDEwIDhhNy4xOSA3LjE5IDAgMCAxLS4zMyAyIn1dLFsicGF0aCIse2Q6Ik01IDE4YTIgMiAwIDEgMCAwLTQgMiAyIDAgMCAwIDAgNHoifV0sWyJwYXRoIix7ZDoiTTE0LjMzIDIyaC0uMDlhLjM1LjM1IDAgMCAxLS4yNC0uMzJ2LTEwYS4zNC4zNCAwIDAgMSAuMzMtLjM0Yy4wOCAwIC4xNS4wMy4yMS4wOGw3LjM0IDZhLjMzLjMzIDAgMCAxLS4yMS41OWgtNC40OWwtMi41NyAzLjg1YS4zNS4zNSAwIDAgMS0uMjguMTR6In1dXSxGWnQ9W1sicGF0aCIse2Q6Ik0zLjcwNCAxNC40NjdhMTAgOCAwIDEgMSAzLjExNSAyLjM3NSJ9XSxbInBhdGgiLHtkOiJNNyAyMmE1IDUgMCAwIDEtMi0zLjk5NCJ9XSxbImNpcmNsZSIse2N4OiI1IixjeToiMTYiLHI6IjIifV1dLE9adD1bWyJjaXJjbGUiLHtjeDoiMTIiLGN5OiIxMiIscjoiMTAifV0sWyJwYXRoIix7ZDoiTTE4IDEzYTYgNiAwIDAgMS02IDUgNiA2IDAgMCAxLTYtNWgxMloifV0sWyJsaW5lIix7eDE6IjkiLHgyOiI5LjAxIix5MToiOSIseTI6IjkifV0sWyJsaW5lIix7eDE6IjE1Iix4MjoiMTUuMDEiLHkxOiI5Iix5MjoiOSJ9XV0sUlp0PVtbInBhdGgiLHtkOiJNMTMgMTMuNzRhMiAyIDAgMCAxLTIgMEwyLjUgOC44N2ExIDEgMCAwIDEgMC0xLjc0TDExIDIuMjZhMiAyIDAgMCAxIDIgMGw4LjUgNC44N2ExIDEgMCAwIDEgMCAxLjc0eiJ9XSxbInBhdGgiLHtkOiJtMjAgMTQuMjg1IDEuNS44NDVhMSAxIDAgMCAxIDAgMS43NEwxMyAyMS43NGEyIDIgMCAwIDEtMiAwbC04LjUtNC44N2ExIDEgMCAwIDEgMC0xLjc0bDEuNS0uODQ1In1dXSxCWnQ9W1sicGF0aCIse2Q6Ik0xMi44MyAyLjE4YTIgMiAwIDAgMC0xLjY2IDBMMi42IDYuMDhhMSAxIDAgMCAwIDAgMS44M2w4LjU4IDMuOTFhMiAyIDAgMCAwIC44My4xOCAyIDIgMCAwIDAgLjgzLS4xOGw4LjU4LTMuOWExIDEgMCAwIDAgMC0xLjgzMXoifV0sWyJwYXRoIix7ZDoiTTE2IDE3aDYifV0sWyJwYXRoIix7ZDoiTTE5IDE0djYifV0sWyJwYXRoIix7ZDoiTTIgMTJhMSAxIDAgMCAwIC41OC45MWw4LjYgMy45MWEyIDIgMCAwIDAgLjgyNS4xNzgifV0sWyJwYXRoIix7ZDoiTTIgMTdhMSAxIDAgMCAwIC41OC45MWw4LjYgMy45MWEyIDIgMCAwIDAgMS42NSAwbDIuMTE2LS45NjIifV1dLHlJPVtbInBhdGgiLHtkOiJNMTIuODMgMi4xOGEyIDIgMCAwIDAtMS42NiAwTDIuNiA2LjA4YTEgMSAwIDAgMCAwIDEuODNsOC41OCAzLjkxYTIgMiAwIDAgMCAxLjY2IDBsOC41OC0zLjlhMSAxIDAgMCAwIDAtMS44M3oifV0sWyJwYXRoIix7ZDoiTTIgMTJhMSAxIDAgMCAwIC41OC45MWw4LjYgMy45MWEyIDIgMCAwIDAgMS42NSAwbDguNTgtMy45QTEgMSAwIDAgMCAyMiAxMiJ9XSxbInBhdGgiLHtkOiJNMiAxN2ExIDEgMCAwIDAgLjU4LjkxbDguNiAzLjkxYTIgMiAwIDAgMCAxLjY1IDBsOC41OC0zLjlBMSAxIDAgMCAwIDIyIDE3In1dXSxIWnQ9W1sicmVjdCIse3dpZHRoOiI3IixoZWlnaHQ6IjkiLHg6IjMiLHk6IjMiLHJ4OiIxIn1dLFsicmVjdCIse3dpZHRoOiI3IixoZWlnaHQ6IjUiLHg6IjE0Iix5OiIzIixyeDoiMSJ9XSxbInJlY3QiLHt3aWR0aDoiNyIsaGVpZ2h0OiI5Iix4OiIxNCIseToiMTIiLHJ4OiIxIn1dLFsicmVjdCIse3dpZHRoOiI3IixoZWlnaHQ6IjUiLHg6IjMiLHk6IjE2IixyeDoiMSJ9XV0scVp0PVtbInJlY3QiLHt3aWR0aDoiNyIsaGVpZ2h0OiI3Iix4OiIzIix5OiIzIixyeDoiMSJ9XSxbInJlY3QiLHt3aWR0aDoiNyIsaGVpZ2h0OiI3Iix4OiIxNCIseToiMyIscng6IjEifV0sWyJyZWN0Iix7d2lkdGg6IjciLGhlaWdodDoiNyIseDoiMTQiLHk6IjE0IixyeDoiMSJ9XSxbInJlY3QiLHt3aWR0aDoiNyIsaGVpZ2h0OiI3Iix4OiIzIix5OiIxNCIscng6IjEifV1dLGpadD1bWyJyZWN0Iix7d2lkdGg6IjciLGhlaWdodDoiNyIseDoiMyIseToiMyIscng6IjEifV0sWyJyZWN0Iix7d2lkdGg6IjciLGhlaWdodDoiNyIseDoiMyIseToiMTQiLHJ4OiIxIn1dLFsicGF0aCIse2Q6Ik0xNCA0aDcifV0sWyJwYXRoIix7ZDoiTTE0IDloNyJ9XSxbInBhdGgiLHtkOiJNMTQgMTVoNyJ9XSxbInBhdGgiLHtkOiJNMTQgMjBoNyJ9XV0sVlp0PVtbInJlY3QiLHt3aWR0aDoiNyIsaGVpZ2h0OiIxOCIseDoiMyIseToiMyIscng6IjEifV0sWyJyZWN0Iix7d2lkdGg6IjciLGhlaWdodDoiNyIseDoiMTQiLHk6IjMiLHJ4OiIxIn1dLFsicmVjdCIse3dpZHRoOiI3IixoZWlnaHQ6IjciLHg6IjE0Iix5OiIxNCIscng6IjEifV1dLFVadD1bWyJyZWN0Iix7d2lkdGg6IjE4IixoZWlnaHQ6IjciLHg6IjMiLHk6IjMiLHJ4OiIxIn1dLFsicmVjdCIse3dpZHRoOiI3IixoZWlnaHQ6IjciLHg6IjMiLHk6IjE0IixyeDoiMSJ9XSxbInJlY3QiLHt3aWR0aDoiNyIsaGVpZ2h0OiI3Iix4OiIxNCIseToiMTQiLHJ4OiIxIn1dXSxXWnQ9W1sicmVjdCIse3dpZHRoOiIxOCIsaGVpZ2h0OiI3Iix4OiIzIix5OiIzIixyeDoiMSJ9XSxbInJlY3QiLHt3aWR0aDoiOSIsaGVpZ2h0OiI3Iix4OiIzIix5OiIxNCIscng6IjEifV0sWyJyZWN0Iix7d2lkdGg6IjUiLGhlaWdodDoiNyIseDoiMTYiLHk6IjE0IixyeDoiMSJ9XV0sR1p0PVtbInBhdGgiLHtkOiJNMTEgMjBBNyA3IDAgMCAxIDkuOCA2LjFDMTUuNSA1IDE3IDQuNDggMTkgMmMxIDIgMiA0LjE4IDIgOCAwIDUuNS00Ljc4IDEwLTEwIDEwWiJ9XSxbInBhdGgiLHtkOiJNMiAyMWMwLTMgMS44NS01LjM2IDUuMDgtNkM5LjUgMTQuNTIgMTIgMTMgMTMgMTIifV1dLFladD1bWyJwYXRoIix7ZDoiTTIgMjJjMS4yNS0uOTg3IDIuMjctMS45NzUgMy45LTIuMmE1LjU2IDUuNTYgMCAwIDEgMy44IDEuNSA0IDQgMCAwIDAgNi4xODctMi4zNTMgMy41IDMuNSAwIDAgMCAzLjY5LTUuMTE2QTMuNSAzLjUgMCAwIDAgMjAuOTUgOCAzLjUgMy41IDAgMSAwIDE2IDMuMDVhMy41IDMuNSAwIDAgMC01LjgzMSAxLjM3MyAzLjUgMy41IDAgMCAwLTUuMTE2IDMuNjkgNCA0IDAgMCAwLTIuMzQ4IDYuMTU1QzMuNDk5IDE1LjQyIDQuNDA5IDE2LjcxMiA0LjIgMTguMSAzLjkyNiAxOS43NDMgMy4wMTQgMjAuNzMyIDIgMjIifV0sWyJwYXRoIix7ZDoiTTIgMjIgMTcgNyJ9XV0sWlp0PVtbInBhdGgiLHtkOiJNMTYgMTJoM2EyIDIgMCAwIDAgMS45MDItMS4zOGwxLjA1Ni0zLjMzM0ExIDEgMCAwIDAgMjEgNkgzYTEgMSAwIDAgMC0uOTU4IDEuMjg3bDEuMDU2IDMuMzM0QTIgMiAwIDAgMCA1IDEyaDMifV0sWyJwYXRoIix7ZDoiTTE4IDZWM2ExIDEgMCAwIDAtMS0xaC0zIn1dLFsicmVjdCIse3dpZHRoOiI4IixoZWlnaHQ6IjEyIix4OiI4Iix5OiIxMCIscng6IjEifV1dLFhadD1bWyJyZWN0Iix7d2lkdGg6IjgiLGhlaWdodDoiMTgiLHg6IjMiLHk6IjMiLHJ4OiIxIn1dLFsicGF0aCIse2Q6Ik03IDN2MTgifV0sWyJwYXRoIix7ZDoiTTIwLjQgMTguOWMuMi41LS4xIDEuMS0uNiAxLjNsLTEuOS43Yy0uNS4yLTEuMS0uMS0xLjMtLjZMMTEuMSA1LjFjLS4yLS41LjEtMS4xLjYtMS4zbDEuOS0uN2MuNS0uMiAxLjEuMSAxLjMuNloifV1dLFFadD1bWyJwYXRoIix7ZDoibTE2IDYgNCAxNCJ9XSxbInBhdGgiLHtkOiJNMTIgNnYxNCJ9XSxbInBhdGgiLHtkOiJNOCA4djEyIn1dLFsicGF0aCIse2Q6Ik00IDR2MTYifV1dLEpadD1bWyJjaXJjbGUiLHtjeDoiMTIiLGN5OiIxMiIscjoiMTAifV0sWyJwYXRoIix7ZDoibTQuOTMgNC45MyA0LjI0IDQuMjQifV0sWyJwYXRoIix7ZDoibTE0LjgzIDkuMTcgNC4yNC00LjI0In1dLFsicGF0aCIse2Q6Im0xNC44MyAxNC44MyA0LjI0IDQuMjQifV0sWyJwYXRoIix7ZDoibTkuMTcgMTQuODMtNC4yNCA0LjI0In1dLFsiY2lyY2xlIix7Y3g6IjEyIixjeToiMTIiLHI6IjQifV1dLEtadD1bWyJwYXRoIix7ZDoiTTE0IDEyaDJ2OCJ9XSxbInBhdGgiLHtkOiJNMTQgMjBoNCJ9XSxbInBhdGgiLHtkOiJNNiAxMmg0In1dLFsicGF0aCIse2Q6Ik02IDIwaDQifV0sWyJwYXRoIix7ZDoiTTggMjBWOGE0IDQgMCAwIDEgNy40NjQtMiJ9XV0sZVh0PVtbInBhdGgiLHtkOiJNMTYuOCAxMS4yYy44LS45IDEuMi0yIDEuMi0zLjJhNiA2IDAgMCAwLTkuMy01In1dLFsicGF0aCIse2Q6Im0yIDIgMjAgMjAifV0sWyJwYXRoIix7ZDoiTTYuMyA2LjNhNC42NyA0LjY3IDAgMCAwIDEuMiA1LjJjLjcuNyAxLjMgMS41IDEuNSAyLjUifV0sWyJwYXRoIix7ZDoiTTkgMThoNiJ9XSxbInBhdGgiLHtkOiJNMTAgMjJoNCJ9XV0sdFh0PVtbInBhdGgiLHtkOiJNMTUgMTRjLjItMSAuNy0xLjcgMS41LTIuNSAxLS45IDEuNS0yLjIgMS41LTMuNUE2IDYgMCAwIDAgNiA4YzAgMSAuMiAyLjIgMS41IDMuNS43LjcgMS4zIDEuNSAxLjUgMi41In1dLFsicGF0aCIse2Q6Ik05IDE4aDYifV0sWyJwYXRoIix7ZDoiTTEwIDIyaDQifV1dLHJYdD1bWyJwYXRoIix7ZDoiTTcgMy41YzUtMiA3IDIuNSAzIDRDMS41IDEwIDIgMTUgNSAxNmM1IDIgOS0xMCAxNC03cy41IDEzLjUtNCAxMmMtNS0yLjUuNS0xMSA2LTIifV1dLGlYdD1bWyJwYXRoIix7ZDoiTTkgMTdIN0E1IDUgMCAwIDEgNyA3In1dLFsicGF0aCIse2Q6Ik0xNSA3aDJhNSA1IDAgMCAxIDQgOCJ9XSxbImxpbmUiLHt4MToiOCIseDI6IjEyIix5MToiMTIiLHkyOiIxMiJ9XSxbImxpbmUiLHt4MToiMiIseDI6IjIyIix5MToiMiIseTI6IjIyIn1dXSxhWHQ9W1sicGF0aCIse2Q6Ik05IDE3SDdBNSA1IDAgMCAxIDcgN2gyIn1dLFsicGF0aCIse2Q6Ik0xNSA3aDJhNSA1IDAgMSAxIDAgMTBoLTIifV0sWyJsaW5lIix7eDE6IjgiLHgyOiIxNiIseTE6IjEyIix5MjoiMTIifV1dLG5YdD1bWyJwYXRoIix7ZDoiTTEwIDEzYTUgNSAwIDAgMCA3LjU0LjU0bDMtM2E1IDUgMCAwIDAtNy4wNy03LjA3bC0xLjcyIDEuNzEifV0sWyJwYXRoIix7ZDoiTTE0IDExYTUgNSAwIDAgMC03LjU0LS41NGwtMyAzYTUgNSAwIDAgMCA3LjA3IDcuMDdsMS43MS0xLjcxIn1dXSxvWHQ9W1sicGF0aCIse2Q6Ik0xNiA4YTYgNiAwIDAgMSA2IDZ2N2gtNHYtN2EyIDIgMCAwIDAtMi0yIDIgMiAwIDAgMC0yIDJ2N2gtNHYtN2E2IDYgMCAwIDEgNi02eiJ9XSxbInJlY3QiLHt3aWR0aDoiNCIsaGVpZ2h0OiIxMiIseDoiMiIseToiOSJ9XSxbImNpcmNsZSIse2N4OiI0IixjeToiNCIscjoiMiJ9XV0sc1h0PVtbInBhdGgiLHtkOiJNMTYgNUgzIn1dLFsicGF0aCIse2Q6Ik0xNiAxMkgzIn1dLFsicGF0aCIse2Q6Ik0xMSAxOUgzIn1dLFsicGF0aCIse2Q6Im0xNSAxOCAyIDIgNC00In1dXSxsWHQ9W1sicGF0aCIse2Q6Ik0xMyA1aDgifV0sWyJwYXRoIix7ZDoiTTEzIDEyaDgifV0sWyJwYXRoIix7ZDoiTTEzIDE5aDgifV0sWyJwYXRoIix7ZDoibTMgMTcgMiAyIDQtNCJ9XSxbInBhdGgiLHtkOiJtMyA3IDIgMiA0LTQifV1dLGNYdD1bWyJwYXRoIix7ZDoiTTMgNWg4In1dLFsicGF0aCIse2Q6Ik0zIDEyaDgifV0sWyJwYXRoIix7ZDoiTTMgMTloOCJ9XSxbInBhdGgiLHtkOiJtMTUgNSAzIDMgMy0zIn1dLFsicGF0aCIse2Q6Im0xNSAxOSAzLTMgMyAzIn1dXSxkWHQ9W1sicGF0aCIse2Q6Ik0zIDVoOCJ9XSxbInBhdGgiLHtkOiJNMyAxMmg4In1dLFsicGF0aCIse2Q6Ik0zIDE5aDgifV0sWyJwYXRoIix7ZDoibTE1IDggMy0zIDMgMyJ9XSxbInBhdGgiLHtkOiJtMTUgMTYgMyAzIDMtMyJ9XV0sdVh0PVtbInBhdGgiLHtkOiJNMTAgNWgxMSJ9XSxbInBhdGgiLHtkOiJNMTAgMTJoMTEifV0sWyJwYXRoIix7ZDoiTTEwIDE5aDExIn1dLFsicGF0aCIse2Q6Im0zIDEwIDMtMy0zLTMifV0sWyJwYXRoIix7ZDoibTMgMjAgMy0zLTMtMyJ9XV0scFh0PVtbInBhdGgiLHtkOiJNMTYgNUgzIn1dLFsicGF0aCIse2Q6Ik0xNiAxMkgzIn1dLFsicGF0aCIse2Q6Ik05IDE5SDMifV0sWyJwYXRoIix7ZDoibTE2IDE2LTMgMyAzIDMifV0sWyJwYXRoIix7ZDoiTTIxIDV2MTJhMiAyIDAgMCAxLTIgMmgtNiJ9XV0saFh0PVtbInBhdGgiLHtkOiJNMTIgNUgyIn1dLFsicGF0aCIse2Q6Ik02IDEyaDEyIn1dLFsicGF0aCIse2Q6Ik05IDE5aDYifV0sWyJwYXRoIix7ZDoiTTE2IDVoNiJ9XSxbInBhdGgiLHtkOiJNMTkgOFYyIn1dXSxmWHQ9W1sicGF0aCIse2Q6Ik0yIDVoMjAifV0sWyJwYXRoIix7ZDoiTTYgMTJoMTIifV0sWyJwYXRoIix7ZDoiTTkgMTloNiJ9XV0sV3A9W1sicGF0aCIse2Q6Ik0yMSA1SDExIn1dLFsicGF0aCIse2Q6Ik0yMSAxMkgxMSJ9XSxbInBhdGgiLHtkOiJNMjEgMTlIMTEifV0sWyJwYXRoIix7ZDoibTcgOC00IDQgNCA0In1dXSxHcD1bWyJwYXRoIix7ZDoiTTIxIDVIMTEifV0sWyJwYXRoIix7ZDoiTTIxIDEySDExIn1dLFsicGF0aCIse2Q6Ik0yMSAxOUgxMSJ9XSxbInBhdGgiLHtkOiJtMyA4IDQgNC00IDQifV1dLG1YdD1bWyJwYXRoIix7ZDoiTTE2IDVIMyJ9XSxbInBhdGgiLHtkOiJNMTEgMTJIMyJ9XSxbInBhdGgiLHtkOiJNMTYgMTlIMyJ9XSxbInBhdGgiLHtkOiJNMjEgMTJoLTYifV1dLGdYdD1bWyJwYXRoIix7ZDoiTTE2IDVIMyJ9XSxbInBhdGgiLHtkOiJNMTEgMTJIMyJ9XSxbInBhdGgiLHtkOiJNMTEgMTlIMyJ9XSxbInBhdGgiLHtkOiJNMjEgMTZWNSJ9XSxbImNpcmNsZSIse2N4OiIxOCIsY3k6IjE2IixyOiIzIn1dXSxiWHQ9W1sicGF0aCIse2Q6Ik0xMSA1aDEwIn1dLFsicGF0aCIse2Q6Ik0xMSAxMmgxMCJ9XSxbInBhdGgiLHtkOiJNMTEgMTloMTAifV0sWyJwYXRoIix7ZDoiTTQgNGgxdjUifV0sWyJwYXRoIix7ZDoiTTQgOWgyIn1dLFsicGF0aCIse2Q6Ik02LjUgMjBIMy40YzAtMSAyLjYtMS45MjUgMi42LTMuNWExLjUgMS41IDAgMCAwLTIuNi0xLjAyIn1dXSx2WHQ9W1sicGF0aCIse2Q6Ik0xNiA1SDMifV0sWyJwYXRoIix7ZDoiTTExIDEySDMifV0sWyJwYXRoIix7ZDoiTTE2IDE5SDMifV0sWyJwYXRoIix7ZDoiTTE4IDl2NiJ9XSxbInBhdGgiLHtkOiJNMjEgMTJoLTYifV1dLHhYdD1bWyJwYXRoIix7ZDoiTTIxIDVIMyJ9XSxbInBhdGgiLHtkOiJNNyAxMkgzIn1dLFsicGF0aCIse2Q6Ik03IDE5SDMifV0sWyJwYXRoIix7ZDoiTTEyIDE4YTUgNSAwIDAgMCA5LTMgNC41IDQuNSAwIDAgMC00LjUtNC41Yy0xLjMzIDAtMi41NC41NC0zLjQxIDEuNDFMMTEgMTQifV0sWyJwYXRoIix7ZDoiTTExIDEwdjRoNCJ9XV0seVh0PVtbInBhdGgiLHtkOiJNMyA1aDYifV0sWyJwYXRoIix7ZDoiTTMgMTJoMTMifV0sWyJwYXRoIix7ZDoiTTMgMTloMTMifV0sWyJwYXRoIix7ZDoibTE2IDgtMy0zIDMtMyJ9XSxbInBhdGgiLHtkOiJNMjEgMTlWN2EyIDIgMCAwIDAtMi0yaC02In1dXSx3WHQ9W1sicGF0aCIse2Q6Ik0xMyA1aDgifV0sWyJwYXRoIix7ZDoiTTEzIDEyaDgifV0sWyJwYXRoIix7ZDoiTTEzIDE5aDgifV0sWyJwYXRoIix7ZDoibTMgMTcgMiAyIDQtNCJ9XSxbInJlY3QiLHt4OiIzIix5OiI0Iix3aWR0aDoiNiIsaGVpZ2h0OiI2IixyeDoiMSJ9XV0sTVh0PVtbInBhdGgiLHtkOiJNOCA1aDEzIn1dLFsicGF0aCIse2Q6Ik0xMyAxMmg4In1dLFsicGF0aCIse2Q6Ik0xMyAxOWg4In1dLFsicGF0aCIse2Q6Ik0zIDEwYTIgMiAwIDAgMCAyIDJoMyJ9XSxbInBhdGgiLHtkOiJNMyA1djEyYTIgMiAwIDAgMCAyIDJoMyJ9XV0sa1h0PVtbInBhdGgiLHtkOiJNMjEgNUgzIn1dLFsicGF0aCIse2Q6Ik0xMCAxMkgzIn1dLFsicGF0aCIse2Q6Ik0xMCAxOUgzIn1dLFsicGF0aCIse2Q6Ik0xNSAxMi4wMDNhMSAxIDAgMCAxIDEuNTE3LS44NTlsNC45OTcgMi45OTdhMSAxIDAgMCAxIDAgMS43MThsLTQuOTk3IDIuOTk3YTEgMSAwIDAgMS0xLjUxNy0uODZ6In1dXSxTWHQ9W1sicGF0aCIse2Q6Ik0xNiA1SDMifV0sWyJwYXRoIix7ZDoiTTExIDEySDMifV0sWyJwYXRoIix7ZDoiTTE2IDE5SDMifV0sWyJwYXRoIix7ZDoibTE1LjUgOS41IDUgNSJ9XSxbInBhdGgiLHtkOiJtMjAuNSA5LjUtNSA1In1dXSx6WHQ9W1sicGF0aCIse2Q6Ik0zIDVoLjAxIn1dLFsicGF0aCIse2Q6Ik0zIDEyaC4wMSJ9XSxbInBhdGgiLHtkOiJNMyAxOWguMDEifV0sWyJwYXRoIix7ZDoiTTggNWgxMyJ9XSxbInBhdGgiLHtkOiJNOCAxMmgxMyJ9XSxbInBhdGgiLHtkOiJNOCAxOWgxMyJ9XV0sd0k9W1sicGF0aCIse2Q6Ik0yMSAxMmE5IDkgMCAxIDEtNi4yMTktOC41NiJ9XV0sQ1h0PVtbInBhdGgiLHtkOiJNMTIgMnY0In1dLFsicGF0aCIse2Q6Im0xNi4yIDcuOCAyLjktMi45In1dLFsicGF0aCIse2Q6Ik0xOCAxMmg0In1dLFsicGF0aCIse2Q6Im0xNi4yIDE2LjIgMi45IDIuOSJ9XSxbInBhdGgiLHtkOiJNMTIgMTh2NCJ9XSxbInBhdGgiLHtkOiJtNC45IDE5LjEgMi45LTIuOSJ9XSxbInBhdGgiLHtkOiJNMiAxMmg0In1dLFsicGF0aCIse2Q6Im00LjkgNC45IDIuOSAyLjkifV1dLFRYdD1bWyJwYXRoIix7ZDoiTTIyIDEyYTEgMSAwIDAgMS0xMCAwIDEgMSAwIDAgMC0xMCAwIn1dLFsicGF0aCIse2Q6Ik03IDIwLjdhMSAxIDAgMSAxIDUtOC43IDEgMSAwIDEgMCA1LTguNiJ9XSxbInBhdGgiLHtkOiJNNyAzLjNhMSAxIDAgMSAxIDUgOC42IDEgMSAwIDEgMCA1IDguNiJ9XSxbImNpcmNsZSIse2N4OiIxMiIsY3k6IjEyIixyOiIxMCJ9XV0sX1h0PVtbImxpbmUiLHt4MToiMiIseDI6IjUiLHkxOiIxMiIseTI6IjEyIn1dLFsibGluZSIse3gxOiIxOSIseDI6IjIyIix5MToiMTIiLHkyOiIxMiJ9XSxbImxpbmUiLHt4MToiMTIiLHgyOiIxMiIseTE6IjIiLHkyOiI1In1dLFsibGluZSIse3gxOiIxMiIseDI6IjEyIix5MToiMTkiLHkyOiIyMiJ9XSxbImNpcmNsZSIse2N4OiIxMiIsY3k6IjEyIixyOiI3In1dLFsiY2lyY2xlIix7Y3g6IjEyIixjeToiMTIiLHI6IjMifV1dLExYdD1bWyJwYXRoIix7ZDoiTTEyIDE5djMifV0sWyJwYXRoIix7ZDoiTTEyIDJ2MyJ9XSxbInBhdGgiLHtkOiJNMTguODkgMTMuMjRhNyA3IDAgMCAwLTguMTMtOC4xMyJ9XSxbInBhdGgiLHtkOiJNMTkgMTJoMyJ9XSxbInBhdGgiLHtkOiJNMiAxMmgzIn1dLFsicGF0aCIse2Q6Im0yIDIgMjAgMjAifV0sWyJwYXRoIix7ZDoiTTcuMDUgNy4wNWE3IDcgMCAwIDAgOS45IDkuOSJ9XV0sQVh0PVtbImxpbmUiLHt4MToiMiIseDI6IjUiLHkxOiIxMiIseTI6IjEyIn1dLFsibGluZSIse3gxOiIxOSIseDI6IjIyIix5MToiMTIiLHkyOiIxMiJ9XSxbImxpbmUiLHt4MToiMTIiLHgyOiIxMiIseTE6IjIiLHkyOiI1In1dLFsibGluZSIse3gxOiIxMiIseDI6IjEyIix5MToiMTkiLHkyOiIyMiJ9XSxbImNpcmNsZSIse2N4OiIxMiIsY3k6IjEyIixyOiI3In1dXSxEWHQ9W1siY2lyY2xlIix7Y3g6IjEyIixjeToiMTYiLHI6IjEifV0sWyJyZWN0Iix7eDoiMyIseToiMTAiLHdpZHRoOiIxOCIsaGVpZ2h0OiIxMiIscng6IjIifV0sWyJwYXRoIix7ZDoiTTcgMTBWN2E1IDUgMCAwIDEgMTAgMHYzIn1dXSxNST1bWyJjaXJjbGUiLHtjeDoiMTIiLGN5OiIxNiIscjoiMSJ9XSxbInJlY3QiLHt3aWR0aDoiMTgiLGhlaWdodDoiMTIiLHg6IjMiLHk6IjEwIixyeDoiMiJ9XSxbInBhdGgiLHtkOiJNNyAxMFY3YTUgNSAwIDAgMSA5LjMzLTIuNSJ9XV0sRVh0PVtbInJlY3QiLHt3aWR0aDoiMTgiLGhlaWdodDoiMTEiLHg6IjMiLHk6IjExIixyeDoiMiIscnk6IjIifV0sWyJwYXRoIix7ZDoiTTcgMTFWN2E1IDUgMCAwIDEgMTAgMHY0In1dXSxrST1bWyJyZWN0Iix7d2lkdGg6IjE4IixoZWlnaHQ6IjExIix4OiIzIix5OiIxMSIscng6IjIiLHJ5OiIyIn1dLFsicGF0aCIse2Q6Ik03IDExVjdhNSA1IDAgMCAxIDkuOS0xIn1dXSwkWHQ9W1sicGF0aCIse2Q6Im0xMCAxNyA1LTUtNS01In1dLFsicGF0aCIse2Q6Ik0xNSAxMkgzIn1dLFsicGF0aCIse2Q6Ik0xNSAzaDRhMiAyIDAgMCAxIDIgMnYxNGEyIDIgMCAwIDEtMiAyaC00In1dXSxJWHQ9W1sicGF0aCIse2Q6Ik0zIDVoMSJ9XSxbInBhdGgiLHtkOiJNMyAxMmgxIn1dLFsicGF0aCIse2Q6Ik0zIDE5aDEifV0sWyJwYXRoIix7ZDoiTTggNWgxIn1dLFsicGF0aCIse2Q6Ik04IDEyaDEifV0sWyJwYXRoIix7ZDoiTTggMTloMSJ9XSxbInBhdGgiLHtkOiJNMTMgNWg4In1dLFsicGF0aCIse2Q6Ik0xMyAxMmg4In1dLFsicGF0aCIse2Q6Ik0xMyAxOWg4In1dXSxQWHQ9W1sicGF0aCIse2Q6Im0xNiAxNyA1LTUtNS01In1dLFsicGF0aCIse2Q6Ik0yMSAxMkg5In1dLFsicGF0aCIse2Q6Ik05IDIxSDVhMiAyIDAgMCAxLTItMlY1YTIgMiAwIDAgMSAyLTJoNCJ9XV0sTlh0PVtbImNpcmNsZSIse2N4OiIxMSIsY3k6IjExIixyOiI4In1dLFsicGF0aCIse2Q6Im0yMSAyMS00LjMtNC4zIn1dLFsicGF0aCIse2Q6Ik0xMSAxMWEyIDIgMCAwIDAgNCAwIDQgNCAwIDAgMC04IDAgNiA2IDAgMCAwIDEyIDAifV1dLEZYdD1bWyJwYXRoIix7ZDoiTTYgMjBhMiAyIDAgMCAxLTItMlY4YTIgMiAwIDAgMSAyLTJoMTJhMiAyIDAgMCAxIDIgMnYxMGEyIDIgMCAwIDEtMiAyIn1dLFsicGF0aCIse2Q6Ik04IDE4VjRhMiAyIDAgMCAxIDItMmg0YTIgMiAwIDAgMSAyIDJ2MTQifV0sWyJwYXRoIix7ZDoiTTEwIDIwaDQifV0sWyJjaXJjbGUiLHtjeDoiMTYiLGN5OiIyMCIscjoiMiJ9XSxbImNpcmNsZSIse2N4OiI4IixjeToiMjAiLHI6IjIifV1dLE9YdD1bWyJwYXRoIix7ZDoibTEyIDE1IDQgNCJ9XSxbInBhdGgiLHtkOiJNMi4zNTIgMTAuNjQ4YTEuMjA1IDEuMjA1IDAgMCAwIDAgMS43MDRsMi4yOTYgMi4yOTZhMS4yMDUgMS4yMDUgMCAwIDAgMS43MDQgMGw2LjAyOS02LjAyOWExIDEgMCAxIDEgMyAzbC02LjAyOSA2LjAyOWExLjIwNSAxLjIwNSAwIDAgMCAwIDEuNzA0bDIuMjk2IDIuMjk2YTEuMjA1IDEuMjA1IDAgMCAwIDEuNzA0IDBsNi4zNjUtNi4zNjdBMSAxIDAgMCAwIDguNzE2IDQuMjgyeiJ9XSxbInBhdGgiLHtkOiJtNSA4IDQgNCJ9XV0sUlh0PVtbInBhdGgiLHtkOiJNMjIgMTNWNmEyIDIgMCAwIDAtMi0ySDRhMiAyIDAgMCAwLTIgMnYxMmMwIDEuMS45IDIgMiAyaDgifV0sWyJwYXRoIix7ZDoibTIyIDctOC45NyA1LjdhMS45NCAxLjk0IDAgMCAxLTIuMDYgMEwyIDcifV0sWyJwYXRoIix7ZDoibTE2IDE5IDIgMiA0LTQifV1dLEJYdD1bWyJwYXRoIix7ZDoiTTIyIDE1VjZhMiAyIDAgMCAwLTItMkg0YTIgMiAwIDAgMC0yIDJ2MTJjMCAxLjEuOSAyIDIgMmg4In1dLFsicGF0aCIse2Q6Im0yMiA3LTguOTcgNS43YTEuOTQgMS45NCAwIDAgMS0yLjA2IDBMMiA3In1dLFsicGF0aCIse2Q6Ik0xNiAxOWg2In1dXSxIWHQ9W1sicGF0aCIse2Q6Ik0yMS4yIDguNGMuNS4zOC44Ljk3LjggMS42djEwYTIgMiAwIDAgMS0yIDJINGEyIDIgMCAwIDEtMi0yVjEwYTIgMiAwIDAgMSAuOC0xLjZsOC02YTIgMiAwIDAgMSAyLjQgMGw4IDZaIn1dLFsicGF0aCIse2Q6Im0yMiAxMC04Ljk3IDUuN2ExLjk0IDEuOTQgMCAwIDEtMi4wNiAwTDIgMTAifV1dLHFYdD1bWyJwYXRoIix7ZDoiTTIyIDEzVjZhMiAyIDAgMCAwLTItMkg0YTIgMiAwIDAgMC0yIDJ2MTJjMCAxLjEuOSAyIDIgMmg4In1dLFsicGF0aCIse2Q6Im0yMiA3LTguOTcgNS43YTEuOTQgMS45NCAwIDAgMS0yLjA2IDBMMiA3In1dLFsicGF0aCIse2Q6Ik0xOSAxNnY2In1dLFsicGF0aCIse2Q6Ik0xNiAxOWg2In1dXSxTST1bWyJwYXRoIix7ZDoiTTIyIDEwLjVWNmEyIDIgMCAwIDAtMi0ySDRhMiAyIDAgMCAwLTIgMnYxMmMwIDEuMS45IDIgMiAyaDEyLjUifV0sWyJwYXRoIix7ZDoibTIyIDctOC45NyA1LjdhMS45NCAxLjk0IDAgMCAxLTIuMDYgMEwyIDcifV0sWyJwYXRoIix7ZDoiTTE4IDE1LjI4Yy4yLS40LjUtLjguOS0xYTIuMSAyLjEgMCAwIDEgMi42LjRjLjMuNC41LjguNSAxLjMgMCAxLjMtMiAyLTIgMiJ9XSxbInBhdGgiLHtkOiJNMjAgMjJ2LjAxIn1dXSxqWHQ9W1sicGF0aCIse2Q6Ik0yMiAxMi41VjZhMiAyIDAgMCAwLTItMkg0YTIgMiAwIDAgMC0yIDJ2MTJjMCAxLjEuOSAyIDIgMmg3LjUifV0sWyJwYXRoIix7ZDoibTIyIDctOC45NyA1LjdhMS45NCAxLjk0IDAgMCAxLTIuMDYgMEwyIDcifV0sWyJwYXRoIix7ZDoiTTE4IDIxYTMgMyAwIDEgMCAwLTYgMyAzIDAgMCAwIDAgNloifV0sWyJjaXJjbGUiLHtjeDoiMTgiLGN5OiIxOCIscjoiMyJ9XSxbInBhdGgiLHtkOiJtMjIgMjItMS41LTEuNSJ9XV0sVlh0PVtbInBhdGgiLHtkOiJNMjIgMTAuNVY2YTIgMiAwIDAgMC0yLTJINGEyIDIgMCAwIDAtMiAydjEyYzAgMS4xLjkgMiAyIDJoMTIuNSJ9XSxbInBhdGgiLHtkOiJtMjIgNy04Ljk3IDUuN2ExLjk0IDEuOTQgMCAwIDEtMi4wNiAwTDIgNyJ9XSxbInBhdGgiLHtkOiJNMjAgMTR2NCJ9XSxbInBhdGgiLHtkOiJNMjAgMjJ2LjAxIn1dXSxVWHQ9W1sicGF0aCIse2Q6Im0yMiA3LTguOTkxIDUuNzI3YTIgMiAwIDAgMS0yLjAwOSAwTDIgNyJ9XSxbInJlY3QiLHt4OiIyIix5OiI0Iix3aWR0aDoiMjAiLGhlaWdodDoiMTYiLHJ4OiIyIn1dXSxXWHQ9W1sicGF0aCIse2Q6Ik0yMiAxM1Y2YTIgMiAwIDAgMC0yLTJINGEyIDIgMCAwIDAtMiAydjEyYzAgMS4xLjkgMiAyIDJoOSJ9XSxbInBhdGgiLHtkOiJtMjIgNy04Ljk3IDUuN2ExLjk0IDEuOTQgMCAwIDEtMi4wNiAwTDIgNyJ9XSxbInBhdGgiLHtkOiJtMTcgMTcgNCA0In1dLFsicGF0aCIse2Q6Im0yMSAxNy00IDQifV1dLEdYdD1bWyJwYXRoIix7ZDoiTTIyIDE3YTIgMiAwIDAgMS0yIDJINGEyIDIgMCAwIDEtMi0yVjkuNUMyIDcgNCA1IDYuNSA1SDE4YzIuMiAwIDQgMS44IDQgNHY4WiJ9XSxbInBvbHlsaW5lIix7cG9pbnRzOiIxNSw5IDE4LDkgMTgsMTEifV0sWyJwYXRoIix7ZDoiTTYuNSA1QzkgNSAxMSA3IDExIDkuNVYxN2EyIDIgMCAwIDEtMiAyIn1dLFsibGluZSIse3gxOiI2Iix4MjoiNyIseTE6IjEwIix5MjoiMTAifV1dLFlYdD1bWyJwYXRoIix7ZDoiTTE3IDE5YTIgMiAwIDAgMS0yIDJINGEyIDIgMCAwIDEtMi0ydi04YTIgMiAwIDAgMSAxLTEuNzMyIn1dLFsicGF0aCIse2Q6Im0yMiA1LjUtNi40MTkgNC4xNzlhMiAyIDAgMCAxLTIuMTYyIDBMNyA1LjUifV0sWyJyZWN0Iix7eDoiNyIseToiMyIsd2lkdGg6IjE1IixoZWlnaHQ6IjEyIixyeDoiMiJ9XV0sWlh0PVtbInBhdGgiLHtkOiJtMTEgMTktMS4xMDYtLjU1MmEyIDIgMCAwIDAtMS43ODggMGwtMy42NTkgMS44M0ExIDEgMCAwIDEgMyAxOS4zODFWNi42MThhMSAxIDAgMCAxIC41NTMtLjg5NGw0LjU1My0yLjI3N2EyIDIgMCAwIDEgMS43ODggMGw0LjIxMiAyLjEwNmEyIDIgMCAwIDAgMS43ODggMGwzLjY1OS0xLjgzQTEgMSAwIDAgMSAyMSA0LjYxOVYxNCJ9XSxbInBhdGgiLHtkOiJNMTUgNS43NjRWMTQifV0sWyJwYXRoIix7ZDoiTTIxIDE4aC02In1dLFsicGF0aCIse2Q6Ik05IDMuMjM2djE1In1dXSxYWHQ9W1sicGF0aCIse2Q6Ik0yMCAxMGMwIDQuOTkzLTUuNTM5IDEwLjE5My03LjM5OSAxMS43OTlhMSAxIDAgMCAxLTEuMjAyIDBDOS41MzkgMjAuMTkzIDQgMTQuOTkzIDQgMTBhOCA4IDAgMCAxIDE2IDAifV0sWyJwYXRoIix7ZDoibTkgMTAgMiAyIDQtNCJ9XV0sUVh0PVtbInBhdGgiLHtkOiJNMTkuNDMgMTIuOTM1Yy4zNTctLjk2Ny41Ny0xLjk1NS41Ny0yLjkzNWE4IDggMCAwIDAtMTYgMGMwIDQuOTkzIDUuNTM5IDEwLjE5MyA3LjM5OSAxMS43OTlhMSAxIDAgMCAwIDEuMjAyIDAgMzIuMTk3IDMyLjE5NyAwIDAgMCAuODEzLS43MjgifV0sWyJjaXJjbGUiLHtjeDoiMTIiLGN5OiIxMCIscjoiMyJ9XSxbInBhdGgiLHtkOiJtMTYgMTggMiAyIDQtNCJ9XV0sSlh0PVtbInBhdGgiLHtkOiJNMTUgMjJhMSAxIDAgMCAxLTEtMXYtNGExIDEgMCAwIDEgLjQ0NS0uODMybDMtMmExIDEgMCAwIDEgMS4xMSAwbDMgMkExIDEgMCAwIDEgMjIgMTd2NGExIDEgMCAwIDEtMSAxeiJ9XSxbInBhdGgiLHtkOiJNMTggMTBhOCA4IDAgMCAwLTE2IDBjMCA0Ljk5MyA1LjUzOSAxMC4xOTMgNy4zOTkgMTEuNzk5YTEgMSAwIDAgMCAuNjAxLjIifV0sWyJwYXRoIix7ZDoiTTE4IDIydi0zIn1dLFsiY2lyY2xlIix7Y3g6IjEwIixjeToiMTAiLHI6IjMifV1dLEtYdD1bWyJwYXRoIix7ZDoiTTIwIDEwYzAgNC45OTMtNS41MzkgMTAuMTkzLTcuMzk5IDExLjc5OWExIDEgMCAwIDEtMS4yMDIgMEM5LjUzOSAyMC4xOTMgNCAxNC45OTMgNCAxMGE4IDggMCAwIDEgMTYgMCJ9XSxbInBhdGgiLHtkOiJNOSAxMGg2In1dXSxlUXQ9W1sicGF0aCIse2Q6Ik0xOC45NzcgMTRDMTkuNiAxMi43MDEgMjAgMTEuMzQzIDIwIDEwYTggOCAwIDAgMC0xNiAwYzAgNC45OTMgNS41MzkgMTAuMTkzIDcuMzk5IDExLjc5OWExIDEgMCAwIDAgMS4yMDIgMCAzMiAzMiAwIDAgMCAuODI0LS43MzgifV0sWyJjaXJjbGUiLHtjeDoiMTIiLGN5OiIxMCIscjoiMyJ9XSxbInBhdGgiLHtkOiJNMTYgMThoNiJ9XV0sdFF0PVtbInBhdGgiLHtkOiJNMTIuNzUgNy4wOWEzIDMgMCAwIDEgMi4xNiAyLjE2In1dLFsicGF0aCIse2Q6Ik0xNy4wNzIgMTcuMDcyYy0xLjYzNCAyLjE3LTMuNTI3IDMuOTEyLTQuNDcxIDQuNzI3YTEgMSAwIDAgMS0xLjIwMiAwQzkuNTM5IDIwLjE5MyA0IDE0Ljk5MyA0IDEwYTggOCAwIDAgMSAxLjQzMi00LjU2OCJ9XSxbInBhdGgiLHtkOiJtMiAyIDIwIDIwIn1dLFsicGF0aCIse2Q6Ik04LjQ3NSAyLjgxOEE4IDggMCAwIDEgMjAgMTBjMCAxLjE4My0uMzEgMi4zNzctLjgxIDMuNTMzIn1dLFsicGF0aCIse2Q6Ik05LjEzIDkuMTNhMyAzIDAgMCAwIDMuNzQgMy43NCJ9XV0sekk9W1sicGF0aCIse2Q6Ik0xNy45NyA5LjMwNEE4IDggMCAwIDAgMiAxMGMwIDQuNjkgNC44ODcgOS41NjIgNy4wMjIgMTEuNDY4In1dLFsicGF0aCIse2Q6Ik0yMS4zNzggMTYuNjI2YTEgMSAwIDAgMC0zLjAwNC0zLjAwNGwtNC4wMSA0LjAxMmEyIDIgMCAwIDAtLjUwNi44NTRsLS44MzcgMi44N2EuNS41IDAgMCAwIC42Mi42MmwyLjg3LS44MzdhMiAyIDAgMCAwIC44NTQtLjUwNnoifV0sWyJjaXJjbGUiLHtjeDoiMTAiLGN5OiIxMCIscjoiMyJ9XV0sclF0PVtbInBhdGgiLHtkOiJNMjAgMTBjMCA0Ljk5My01LjUzOSAxMC4xOTMtNy4zOTkgMTEuNzk5YTEgMSAwIDAgMS0xLjIwMiAwQzkuNTM5IDIwLjE5MyA0IDE0Ljk5MyA0IDEwYTggOCAwIDAgMSAxNiAwIn1dLFsicGF0aCIse2Q6Ik0xMiA3djYifV0sWyJwYXRoIix7ZDoiTTkgMTBoNiJ9XV0saVF0PVtbInBhdGgiLHtkOiJNMTkuOTE0IDExLjEwNUE3LjI5OCA3LjI5OCAwIDAgMCAyMCAxMGE4IDggMCAwIDAtMTYgMGMwIDQuOTkzIDUuNTM5IDEwLjE5MyA3LjM5OSAxMS43OTlhMSAxIDAgMCAwIDEuMjAyIDAgMzIgMzIgMCAwIDAgLjgyNC0uNzM4In1dLFsiY2lyY2xlIix7Y3g6IjEyIixjeToiMTAiLHI6IjMifV0sWyJwYXRoIix7ZDoiTTE2IDE4aDYifV0sWyJwYXRoIix7ZDoiTTE5IDE1djYifV1dLGFRdD1bWyJwYXRoIix7ZDoiTTIwIDEwYzAgNC45OTMtNS41MzkgMTAuMTkzLTcuMzk5IDExLjc5OWExIDEgMCAwIDEtMS4yMDIgMEM5LjUzOSAyMC4xOTMgNCAxNC45OTMgNCAxMGE4IDggMCAwIDEgMTYgMCJ9XSxbInBhdGgiLHtkOiJtMTQuNSA3LjUtNSA1In1dLFsicGF0aCIse2Q6Im05LjUgNy41IDUgNSJ9XV0sblF0PVtbInBhdGgiLHtkOiJNMTkuNzUyIDExLjkwMUE3Ljc4IDcuNzggMCAwIDAgMjAgMTBhOCA4IDAgMCAwLTE2IDBjMCA0Ljk5MyA1LjUzOSAxMC4xOTMgNy4zOTkgMTEuNzk5YTEgMSAwIDAgMCAxLjIwMiAwIDE5IDE5IDAgMCAwIC4wOS0uMDc3In1dLFsiY2lyY2xlIix7Y3g6IjEyIixjeToiMTAiLHI6IjMifV0sWyJwYXRoIix7ZDoibTIxLjUgMTUuNS01IDUifV0sWyJwYXRoIix7ZDoibTIxLjUgMjAuNS01LTUifV1dLG9RdD1bWyJwYXRoIix7ZDoiTTIwIDEwYzAgNC45OTMtNS41MzkgMTAuMTkzLTcuMzk5IDExLjc5OWExIDEgMCAwIDEtMS4yMDIgMEM5LjUzOSAyMC4xOTMgNCAxNC45OTMgNCAxMGE4IDggMCAwIDEgMTYgMCJ9XSxbImNpcmNsZSIse2N4OiIxMiIsY3k6IjEwIixyOiIzIn1dXSxzUXQ9W1sicGF0aCIse2Q6Ik0xOCA4YzAgMy42MTMtMy44NjkgNy40MjktNS4zOTMgOC43OTVhMSAxIDAgMCAxLTEuMjE0IDBDOS44NyAxNS40MjkgNiAxMS42MTMgNiA4YTYgNiAwIDAgMSAxMiAwIn1dLFsiY2lyY2xlIix7Y3g6IjEyIixjeToiOCIscjoiMiJ9XSxbInBhdGgiLHtkOiJNOC43MTQgMTRoLTMuNzFhMSAxIDAgMCAwLS45NDguNjgzbC0yLjAwNCA2QTEgMSAwIDAgMCAzIDIyaDE4YTEgMSAwIDAgMCAuOTQ4LTEuMzE2bC0yLTZhMSAxIDAgMCAwLS45NDktLjY4NGgtMy43MTIifV1dLGxRdD1bWyJwYXRoIix7ZDoibTExIDE5LTEuMTA2LS41NTJhMiAyIDAgMCAwLTEuNzg4IDBsLTMuNjU5IDEuODNBMSAxIDAgMCAxIDMgMTkuMzgxVjYuNjE4YTEgMSAwIDAgMSAuNTUzLS44OTRsNC41NTMtMi4yNzdhMiAyIDAgMCAxIDEuNzg4IDBsNC4yMTIgMi4xMDZhMiAyIDAgMCAwIDEuNzg4IDBsMy42NTktMS44M0ExIDEgMCAwIDEgMjEgNC42MTlWMTIifV0sWyJwYXRoIix7ZDoiTTE1IDUuNzY0VjEyIn1dLFsicGF0aCIse2Q6Ik0xOCAxNXY2In1dLFsicGF0aCIse2Q6Ik0yMSAxOGgtNiJ9XSxbInBhdGgiLHtkOiJNOSAzLjIzNnYxNSJ9XV0sY1F0PVtbInBhdGgiLHtkOiJNMTQuMTA2IDUuNTUzYTIgMiAwIDAgMCAxLjc4OCAwbDMuNjU5LTEuODNBMSAxIDAgMCAxIDIxIDQuNjE5djEyLjc2NGExIDEgMCAwIDEtLjU1My44OTRsLTQuNTUzIDIuMjc3YTIgMiAwIDAgMS0xLjc4OCAwbC00LjIxMi0yLjEwNmEyIDIgMCAwIDAtMS43ODggMGwtMy42NTkgMS44M0ExIDEgMCAwIDEgMyAxOS4zODFWNi42MThhMSAxIDAgMCAxIC41NTMtLjg5NGw0LjU1My0yLjI3N2EyIDIgMCAwIDEgMS43ODggMHoifV0sWyJwYXRoIix7ZDoiTTE1IDUuNzY0djE1In1dLFsicGF0aCIse2Q6Ik05IDMuMjM2djE1In1dXSxkUXQ9W1sicGF0aCIse2Q6Im0xNCA2IDQgNCJ9XSxbInBhdGgiLHtkOiJNMTcgM2g0djQifV0sWyJwYXRoIix7ZDoibTIxIDMtNy43NSA3Ljc1In1dLFsiY2lyY2xlIix7Y3g6IjkiLGN5OiIxNSIscjoiNiJ9XV0sdVF0PVtbInBhdGgiLHtkOiJNMTYgM2g1djUifV0sWyJwYXRoIix7ZDoibTIxIDMtNi43NSA2Ljc1In1dLFsiY2lyY2xlIix7Y3g6IjEwIixjeToiMTQiLHI6IjYifV1dLHBRdD1bWyJwYXRoIix7ZDoiTTggMjJoOCJ9XSxbInBhdGgiLHtkOiJNMTIgMTF2MTEifV0sWyJwYXRoIix7ZDoibTE5IDMtNyA4LTctOFoifV1dLGhRdD1bWyJwYXRoIix7ZDoiTTE1IDNoNnY2In1dLFsicGF0aCIse2Q6Im0yMSAzLTcgNyJ9XSxbInBhdGgiLHtkOiJtMyAyMSA3LTcifV0sWyJwYXRoIix7ZDoiTTkgMjFIM3YtNiJ9XV0sZlF0PVtbInBhdGgiLHtkOiJNOCAzSDVhMiAyIDAgMCAwLTIgMnYzIn1dLFsicGF0aCIse2Q6Ik0yMSA4VjVhMiAyIDAgMCAwLTItMmgtMyJ9XSxbInBhdGgiLHtkOiJNMyAxNnYzYTIgMiAwIDAgMCAyIDJoMyJ9XSxbInBhdGgiLHtkOiJNMTYgMjFoM2EyIDIgMCAwIDAgMi0ydi0zIn1dXSxtUXQ9W1sicGF0aCIse2Q6Ik03LjIxIDE1IDIuNjYgNy4xNGEyIDIgMCAwIDEgLjEzLTIuMkw0LjQgMi44QTIgMiAwIDAgMSA2IDJoMTJhMiAyIDAgMCAxIDEuNi44bDEuNiAyLjE0YTIgMiAwIDAgMSAuMTQgMi4yTDE2Ljc5IDE1In1dLFsicGF0aCIse2Q6Ik0xMSAxMiA1LjEyIDIuMiJ9XSxbInBhdGgiLHtkOiJtMTMgMTIgNS44OC05LjgifV0sWyJwYXRoIix7ZDoiTTggN2g4In1dLFsiY2lyY2xlIix7Y3g6IjEyIixjeToiMTciLHI6IjUifV0sWyJwYXRoIix7ZDoiTTEyIDE4di0yaC0uNSJ9XV0sZ1F0PVtbInBhdGgiLHtkOiJNMTEuNjM2IDZBMTMgMTMgMCAwIDAgMTkuNCAzLjIgMSAxIDAgMCAxIDIxIDR2MTEuMzQ0In1dLFsicGF0aCIse2Q6Ik0xNC4zNzggMTQuMzU3QTEzIDEzIDAgMCAwIDExIDE0SDVhMiAyIDAgMCAxLTItMlY4YTIgMiAwIDAgMSAyLTJoMSJ9XSxbInBhdGgiLHtkOiJtMiAyIDIwIDIwIn1dLFsicGF0aCIse2Q6Ik02IDE0YTEyIDEyIDAgMCAwIDIuNCA3LjIgMiAyIDAgMCAwIDMuMi0yLjRBOCA4IDAgMCAxIDEwIDE0In1dLFsicGF0aCIse2Q6Ik04IDh2NiJ9XV0sYlF0PVtbInBhdGgiLHtkOiJNMTEgNmExMyAxMyAwIDAgMCA4LjQtMi44QTEgMSAwIDAgMSAyMSA0djEyYTEgMSAwIDAgMS0xLjYuOEExMyAxMyAwIDAgMCAxMSAxNEg1YTIgMiAwIDAgMS0yLTJWOGEyIDIgMCAwIDEgMi0yeiJ9XSxbInBhdGgiLHtkOiJNNiAxNGExMiAxMiAwIDAgMCAyLjQgNy4yIDIgMiAwIDAgMCAzLjItMi40QTggOCAwIDAgMSAxMCAxNCJ9XSxbInBhdGgiLHtkOiJNOCA2djgifV1dLHZRdD1bWyJjaXJjbGUiLHtjeDoiMTIiLGN5OiIxMiIscjoiMTAifV0sWyJsaW5lIix7eDE6IjgiLHgyOiIxNiIseTE6IjE1Iix5MjoiMTUifV0sWyJsaW5lIix7eDE6IjkiLHgyOiI5LjAxIix5MToiOSIseTI6IjkifV0sWyJsaW5lIix7eDE6IjE1Iix4MjoiMTUuMDEiLHkxOiI5Iix5MjoiOSJ9XV0seFF0PVtbInBhdGgiLHtkOiJNNCA1aDE2In1dLFsicGF0aCIse2Q6Ik00IDEyaDE2In1dLFsicGF0aCIse2Q6Ik00IDE5aDE2In1dXSx5UXQ9W1sicGF0aCIse2Q6Ik0xMiAxMnYtMiJ9XSxbInBhdGgiLHtkOiJNMTIgMTh2LTIifV0sWyJwYXRoIix7ZDoiTTE2IDEydi0yIn1dLFsicGF0aCIse2Q6Ik0xNiAxOHYtMiJ9XSxbInBhdGgiLHtkOiJNMiAxMWgxLjUifV0sWyJwYXRoIix7ZDoiTTIwIDE4di0yIn1dLFsicGF0aCIse2Q6Ik0yMC41IDExSDIyIn1dLFsicGF0aCIse2Q6Ik00IDE4di0yIn1dLFsicGF0aCIse2Q6Ik04IDEydi0yIn1dLFsicGF0aCIse2Q6Ik04IDE4di0yIn1dLFsicmVjdCIse3g6IjIiLHk6IjYiLHdpZHRoOiIyMCIsaGVpZ2h0OiIxMCIscng6IjIifV1dLHdRdD1bWyJwYXRoIix7ZDoibTggNiA0LTQgNCA0In1dLFsicGF0aCIse2Q6Ik0xMiAydjEwLjNhNCA0IDAgMCAxLTEuMTcyIDIuODcyTDQgMjIifV0sWyJwYXRoIix7ZDoibTIwIDIyLTUtNSJ9XV0sTVF0PVtbInBhdGgiLHtkOiJtMTAgOS0zIDMgMyAzIn1dLFsicGF0aCIse2Q6Im0xNCAxNSAzLTMtMy0zIn1dLFsicGF0aCIse2Q6Ik0yLjk5MiAxNi4zNDJhMiAyIDAgMCAxIC4wOTQgMS4xNjdsLTEuMDY1IDMuMjlhMSAxIDAgMCAwIDEuMjM2IDEuMTY4bDMuNDEzLS45OThhMiAyIDAgMCAxIDEuMDk5LjA5MiAxMCAxMCAwIDEgMC00Ljc3Ny00LjcxOSJ9XV0sa1F0PVtbInBhdGgiLHtkOiJNMTAuMSAyLjE4MmExMCAxMCAwIDAgMSAzLjggMCJ9XSxbInBhdGgiLHtkOiJNMTMuOSAyMS44MThhMTAgMTAgMCAwIDEtMy44IDAifV0sWyJwYXRoIix7ZDoiTTE3LjYwOSAzLjcyYTEwIDEwIDAgMCAxIDIuNjkgMi43In1dLFsicGF0aCIse2Q6Ik0yLjE4MiAxMy45YTEwIDEwIDAgMCAxIDAtMy44In1dLFsicGF0aCIse2Q6Ik0yMC4yOCAxNy42MWExMCAxMCAwIDAgMS0yLjcgMi42OSJ9XSxbInBhdGgiLHtkOiJNMjEuODE4IDEwLjFhMTAgMTAgMCAwIDEgMCAzLjgifV0sWyJwYXRoIix7ZDoiTTMuNzIxIDYuMzkxYTEwIDEwIDAgMCAxIDIuNy0yLjY5In1dLFsicGF0aCIse2Q6Im02LjE2MyAyMS4xMTctMi45MDYuODVhMSAxIDAgMCAxLTEuMjM2LTEuMTY5bC45NjUtMi45OCJ9XV0sU1F0PVtbInBhdGgiLHtkOiJNMi45OTIgMTYuMzQyYTIgMiAwIDAgMSAuMDk0IDEuMTY3bC0xLjA2NSAzLjI5YTEgMSAwIDAgMCAxLjIzNiAxLjE2OGwzLjQxMy0uOTk4YTIgMiAwIDAgMSAxLjA5OS4wOTIgMTAgMTAgMCAxIDAtNC43NzctNC43MTkifV0sWyJwYXRoIix7ZDoiTTcuODI4IDEzLjA3QTMgMyAwIDAgMSAxMiA4Ljc2NGEzIDMgMCAwIDEgNS4wMDQgMi4yMjQgMyAzIDAgMCAxLS44MzIgMi4wODNsLTMuNDQ3IDMuNjJhMSAxIDAgMCAxLTEuNDUtLjAwMXoifV1dLHpRdD1bWyJwYXRoIix7ZDoiTTIuOTkyIDE2LjM0MmEyIDIgMCAwIDEgLjA5NCAxLjE2N2wtMS4wNjUgMy4yOWExIDEgMCAwIDAgMS4yMzYgMS4xNjhsMy40MTMtLjk5OGEyIDIgMCAwIDEgMS4wOTkuMDkyIDEwIDEwIDAgMSAwLTQuNzc3LTQuNzE5In1dLFsicGF0aCIse2Q6Ik04IDEyaC4wMSJ9XSxbInBhdGgiLHtkOiJNMTIgMTJoLjAxIn1dLFsicGF0aCIse2Q6Ik0xNiAxMmguMDEifV1dLENRdD1bWyJwYXRoIix7ZDoibTIgMiAyMCAyMCJ9XSxbInBhdGgiLHtkOiJNNC45MyA0LjkyOWExMCAxMCAwIDAgMC0xLjkzOCAxMS40MTIgMiAyIDAgMCAxIC4wOTQgMS4xNjdsLTEuMDY1IDMuMjlhMSAxIDAgMCAwIDEuMjM2IDEuMTY4bDMuNDEzLS45OThhMiAyIDAgMCAxIDEuMDk5LjA5MiAxMCAxMCAwIDAgMCAxMS4zMDItMS45ODkifV0sWyJwYXRoIix7ZDoiTTguMzUgMi42OUExMCAxMCAwIDAgMSAyMS4zIDE1LjY1In1dXSxUUXQ9W1sicGF0aCIse2Q6Ik0yLjk5MiAxNi4zNDJhMiAyIDAgMCAxIC4wOTQgMS4xNjdsLTEuMDY1IDMuMjlhMSAxIDAgMCAwIDEuMjM2IDEuMTY4bDMuNDEzLS45OThhMiAyIDAgMCAxIDEuMDk5LjA5MiAxMCAxMCAwIDEgMC00Ljc3Ny00LjcxOSJ9XSxbInBhdGgiLHtkOiJNOCAxMmg4In1dLFsicGF0aCIse2Q6Ik0xMiA4djgifV1dLENJPVtbInBhdGgiLHtkOiJNMi45OTIgMTYuMzQyYTIgMiAwIDAgMSAuMDk0IDEuMTY3bC0xLjA2NSAzLjI5YTEgMSAwIDAgMCAxLjIzNiAxLjE2OGwzLjQxMy0uOTk4YTIgMiAwIDAgMSAxLjA5OS4wOTIgMTAgMTAgMCAxIDAtNC43NzctNC43MTkifV0sWyJwYXRoIix7ZDoiTTkuMDkgOWEzIDMgMCAwIDEgNS44MyAxYzAgMi0zIDMtMyAzIn1dLFsicGF0aCIse2Q6Ik0xMiAxN2guMDEifV1dLF9RdD1bWyJwYXRoIix7ZDoiTTIuOTkyIDE2LjM0MmEyIDIgMCAwIDEgLjA5NCAxLjE2N2wtMS4wNjUgMy4yOWExIDEgMCAwIDAgMS4yMzYgMS4xNjhsMy40MTMtLjk5OGEyIDIgMCAwIDEgMS4wOTkuMDkyIDEwIDEwIDAgMSAwLTQuNzc3LTQuNzE5In1dLFsicGF0aCIse2Q6Ik0xMiA4djQifV0sWyJwYXRoIix7ZDoiTTEyIDE2aC4wMSJ9XV0sTFF0PVtbInBhdGgiLHtkOiJNMi45OTIgMTYuMzQyYTIgMiAwIDAgMSAuMDk0IDEuMTY3bC0xLjA2NSAzLjI5YTEgMSAwIDAgMCAxLjIzNiAxLjE2OGwzLjQxMy0uOTk4YTIgMiAwIDAgMSAxLjA5OS4wOTIgMTAgMTAgMCAxIDAtNC43NzctNC43MTkifV0sWyJwYXRoIix7ZDoibTEwIDE1LTMtMyAzLTMifV0sWyJwYXRoIix7ZDoiTTcgMTJoOGEyIDIgMCAwIDEgMiAydjEifV1dLEFRdD1bWyJwYXRoIix7ZDoiTTIuOTkyIDE2LjM0MmEyIDIgMCAwIDEgLjA5NCAxLjE2N2wtMS4wNjUgMy4yOWExIDEgMCAwIDAgMS4yMzYgMS4xNjhsMy40MTMtLjk5OGEyIDIgMCAwIDEgMS4wOTkuMDkyIDEwIDEwIDAgMSAwLTQuNzc3LTQuNzE5In1dLFsicGF0aCIse2Q6Im0xNSA5LTYgNiJ9XSxbInBhdGgiLHtkOiJtOSA5IDYgNiJ9XV0sRFF0PVtbInBhdGgiLHtkOiJNMi45OTIgMTYuMzQyYTIgMiAwIDAgMSAuMDk0IDEuMTY3bC0xLjA2NSAzLjI5YTEgMSAwIDAgMCAxLjIzNiAxLjE2OGwzLjQxMy0uOTk4YTIgMiAwIDAgMSAxLjA5OS4wOTIgMTAgMTAgMCAxIDAtNC43NzctNC43MTkifV1dLEVRdD1bWyJwYXRoIix7ZDoiTTIyIDE3YTIgMiAwIDAgMS0yIDJINi44MjhhMiAyIDAgMCAwLTEuNDE0LjU4NmwtMi4yMDIgMi4yMDJBLjcxLjcxIDAgMCAxIDIgMjEuMjg2VjVhMiAyIDAgMCAxIDItMmgxNmEyIDIgMCAwIDEgMiAyeiJ9XSxbInBhdGgiLHtkOiJtMTAgOC0zIDMgMyAzIn1dLFsicGF0aCIse2Q6Im0xNCAxNCAzLTMtMy0zIn1dXSwkUXQ9W1sicGF0aCIse2Q6Ik0xNCAzaDIifV0sWyJwYXRoIix7ZDoiTTE2IDE5aC0yIn1dLFsicGF0aCIse2Q6Ik0yIDEydi0yIn1dLFsicGF0aCIse2Q6Ik0yIDE2djUuMjg2YS43MS43MSAwIDAgMCAxLjIxMi41MDJsMS4xNDktMS4xNDkifV0sWyJwYXRoIix7ZDoiTTIwIDE5YTIgMiAwIDAgMCAyLTJ2LTEifV0sWyJwYXRoIix7ZDoiTTIyIDEwdjIifV0sWyJwYXRoIix7ZDoiTTIyIDZWNWEyIDIgMCAwIDAtMi0yIn1dLFsicGF0aCIse2Q6Ik00IDNhMiAyIDAgMCAwLTIgMnYxIn1dLFsicGF0aCIse2Q6Ik04IDE5aDIifV0sWyJwYXRoIix7ZDoiTTggM2gyIn1dXSxJUXQ9W1sicGF0aCIse2Q6Ik0yMiAxN2EyIDIgMCAwIDEtMiAySDYuODI4YTIgMiAwIDAgMC0xLjQxNC41ODZsLTIuMjAyIDIuMjAyQS43MS43MSAwIDAgMSAyIDIxLjI4NlY1YTIgMiAwIDAgMSAyLTJoMTZhMiAyIDAgMCAxIDIgMnoifV0sWyJwYXRoIix7ZDoiTTEwIDE1aDQifV0sWyJwYXRoIix7ZDoiTTEwIDloNCJ9XSxbInBhdGgiLHtkOiJNMTIgN3Y0In1dXSxQUXQ9W1sicGF0aCIse2Q6Ik0xMi43IDNINGEyIDIgMCAwIDAtMiAydjE2LjI4NmEuNzEuNzEgMCAwIDAgMS4yMTIuNTAybDIuMjAyLTIuMjAyQTIgMiAwIDAgMSA2LjgyOCAxOUgyMGEyIDIgMCAwIDAgMi0ydi00LjcifV0sWyJjaXJjbGUiLHtjeDoiMTkiLGN5OiI2IixyOiIzIn1dXSxOUXQ9W1sicGF0aCIse2Q6Ik0yMiAxN2EyIDIgMCAwIDEtMiAySDYuODI4YTIgMiAwIDAgMC0xLjQxNC41ODZsLTIuMjAyIDIuMjAyQS43MS43MSAwIDAgMSAyIDIxLjI4NlY1YTIgMiAwIDAgMSAyLTJoMTZhMiAyIDAgMCAxIDIgMnoifV0sWyJwYXRoIix7ZDoiTTcuNSA5LjVjMCAuNjg3LjI2NSAxLjM4My42OTcgMS44NDRsMy4wMDkgMy4yNjRhMS4xNCAxLjE0IDAgMCAwIC40MDcuMzE0IDEgMSAwIDAgMCAuNzgzLS4wMDQgMS4xNCAxLjE0IDAgMCAwIC4zOTgtLjMxbDMuMDA4LTMuMjY0QTIuNzcgMi43NyAwIDAgMCAxNi41IDkuNSAyLjUgMi41IDAgMCAwIDEyIDhhMi41IDIuNSAwIDAgMC00LjUgMS41In1dXSxGUXQ9W1sicGF0aCIse2Q6Ik0yMiA4LjVWNWEyIDIgMCAwIDAtMi0ySDRhMiAyIDAgMCAwLTIgMnYxNi4yODZhLjcxLjcxIDAgMCAwIDEuMjEyLjUwMmwyLjIwMi0yLjIwMkEyIDIgMCAwIDEgNi44MjggMTlIMTAifV0sWyJwYXRoIix7ZDoiTTIwIDE1di0yYTIgMiAwIDAgMC00IDB2MiJ9XSxbInJlY3QiLHt4OiIxNCIseToiMTUiLHdpZHRoOiI4IixoZWlnaHQ6IjUiLHJ4OiIxIn1dXSxPUXQ9W1sicGF0aCIse2Q6Ik0yMiAxN2EyIDIgMCAwIDEtMiAySDYuODI4YTIgMiAwIDAgMC0xLjQxNC41ODZsLTIuMjAyIDIuMjAyQS43MS43MSAwIDAgMSAyIDIxLjI4NlY1YTIgMiAwIDAgMSAyLTJoMTZhMiAyIDAgMCAxIDIgMnoifV0sWyJwYXRoIix7ZDoiTTEyIDExaC4wMSJ9XSxbInBhdGgiLHtkOiJNMTYgMTFoLjAxIn1dLFsicGF0aCIse2Q6Ik04IDExaC4wMSJ9XV0sUlF0PVtbInBhdGgiLHtkOiJNMTkgMTlINi44MjhhMiAyIDAgMCAwLTEuNDE0LjU4NmwtMi4yMDIgMi4yMDJBLjcuNyAwIDAgMSAyIDIxLjI4NlY1YTIgMiAwIDAgMSAxLjE4NC0xLjgyNiJ9XSxbInBhdGgiLHtkOiJtMiAyIDIwIDIwIn1dLFsicGF0aCIse2Q6Ik04LjY1NiAzSDIwYTIgMiAwIDAgMSAyIDJ2MTEuMzQ0In1dXSxCUXQ9W1sicGF0aCIse2Q6Ik0yMiAxN2EyIDIgMCAwIDEtMiAySDYuODI4YTIgMiAwIDAgMC0xLjQxNC41ODZsLTIuMjAyIDIuMjAyQS43MS43MSAwIDAgMSAyIDIxLjI4NlY1YTIgMiAwIDAgMSAyLTJoMTZhMiAyIDAgMCAxIDIgMnoifV0sWyJwYXRoIix7ZDoiTTEyIDh2NiJ9XSxbInBhdGgiLHtkOiJNOSAxMWg2In1dXSxIUXQ9W1sicGF0aCIse2Q6Ik0xNCAxNGEyIDIgMCAwIDAgMi0yVjhoLTIifV0sWyJwYXRoIix7ZDoiTTIyIDE3YTIgMiAwIDAgMS0yIDJINi44MjhhMiAyIDAgMCAwLTEuNDE0LjU4NmwtMi4yMDIgMi4yMDJBLjcxLjcxIDAgMCAxIDIgMjEuMjg2VjVhMiAyIDAgMCAxIDItMmgxNmEyIDIgMCAwIDEgMiAyeiJ9XSxbInBhdGgiLHtkOiJNOCAxNGEyIDIgMCAwIDAgMi0yVjhIOCJ9XV0scVF0PVtbInBhdGgiLHtkOiJNMjIgMTdhMiAyIDAgMCAxLTIgMkg2LjgyOGEyIDIgMCAwIDAtMS40MTQuNTg2bC0yLjIwMiAyLjIwMkEuNzEuNzEgMCAwIDEgMiAyMS4yODZWNWEyIDIgMCAwIDEgMi0yaDE2YTIgMiAwIDAgMSAyIDJ6In1dLFsicGF0aCIse2Q6Im0xMCA4LTMgMyAzIDMifV0sWyJwYXRoIix7ZDoiTTE3IDE0di0xYTIgMiAwIDAgMC0yLTJINyJ9XV0salF0PVtbInBhdGgiLHtkOiJNMTIgM0g0YTIgMiAwIDAgMC0yIDJ2MTYuMjg2YS43MS43MSAwIDAgMCAxLjIxMi41MDJsMi4yMDItMi4yMDJBMiAyIDAgMCAxIDYuODI4IDE5SDIwYTIgMiAwIDAgMCAyLTJ2LTQifV0sWyJwYXRoIix7ZDoiTTE2IDNoNnY2In1dLFsicGF0aCIse2Q6Im0xNiA5IDYtNiJ9XV0sVlF0PVtbInBhdGgiLHtkOiJNMjIgMTdhMiAyIDAgMCAxLTIgMkg2LjgyOGEyIDIgMCAwIDAtMS40MTQuNTg2bC0yLjIwMiAyLjIwMkEuNzEuNzEgMCAwIDEgMiAyMS4yODZWNWEyIDIgMCAwIDEgMi0yaDE2YTIgMiAwIDAgMSAyIDJ6In1dLFsicGF0aCIse2Q6Ik03IDExaDEwIn1dLFsicGF0aCIse2Q6Ik03IDE1aDYifV0sWyJwYXRoIix7ZDoiTTcgN2g4In1dXSxVUXQ9W1sicGF0aCIse2Q6Ik0yMiAxN2EyIDIgMCAwIDEtMiAySDYuODI4YTIgMiAwIDAgMC0xLjQxNC41ODZsLTIuMjAyIDIuMjAyQS43MS43MSAwIDAgMSAyIDIxLjI4NlY1YTIgMiAwIDAgMSAyLTJoMTZhMiAyIDAgMCAxIDIgMnoifV0sWyJwYXRoIix7ZDoiTTEyIDE1aC4wMSJ9XSxbInBhdGgiLHtkOiJNMTIgN3Y0In1dXSxXUXQ9W1sicGF0aCIse2Q6Ik0yMiAxN2EyIDIgMCAwIDEtMiAySDYuODI4YTIgMiAwIDAgMC0xLjQxNC41ODZsLTIuMjAyIDIuMjAyQS43MS43MSAwIDAgMSAyIDIxLjI4NlY1YTIgMiAwIDAgMSAyLTJoMTZhMiAyIDAgMCAxIDIgMnoifV0sWyJwYXRoIix7ZDoibTE0LjUgOC41LTUgNSJ9XSxbInBhdGgiLHtkOiJtOS41IDguNSA1IDUifV1dLEdRdD1bWyJwYXRoIix7ZDoiTTIyIDE3YTIgMiAwIDAgMS0yIDJINi44MjhhMiAyIDAgMCAwLTEuNDE0LjU4NmwtMi4yMDIgMi4yMDJBLjcxLjcxIDAgMCAxIDIgMjEuMjg2VjVhMiAyIDAgMCAxIDItMmgxNmEyIDIgMCAwIDEgMiAyeiJ9XV0sWVF0PVtbInBhdGgiLHtkOiJNMTYgMTBhMiAyIDAgMCAxLTIgMkg2LjgyOGEyIDIgMCAwIDAtMS40MTQuNTg2bC0yLjIwMiAyLjIwMkEuNzEuNzEgMCAwIDEgMiAxNC4yODZWNGEyIDIgMCAwIDEgMi0yaDEwYTIgMiAwIDAgMSAyIDJ6In1dLFsicGF0aCIse2Q6Ik0yMCA5YTIgMiAwIDAgMSAyIDJ2MTAuMjg2YS43MS43MSAwIDAgMS0xLjIxMi41MDJsLTIuMjAyLTIuMjAyQTIgMiAwIDAgMCAxNy4xNzIgMTlIMTBhMiAyIDAgMCAxLTItMnYtMSJ9XV0sWlF0PVtbInBhdGgiLHtkOiJNMTIgMTl2MyJ9XSxbInBhdGgiLHtkOiJNMTUgOS4zNFY1YTMgMyAwIDAgMC01LjY4LTEuMzMifV0sWyJwYXRoIix7ZDoiTTE2Ljk1IDE2Ljk1QTcgNyAwIDAgMSA1IDEydi0yIn1dLFsicGF0aCIse2Q6Ik0xOC44OSAxMy4yM0E3IDcgMCAwIDAgMTkgMTJ2LTIifV0sWyJwYXRoIix7ZDoibTIgMiAyMCAyMCJ9XSxbInBhdGgiLHtkOiJNOSA5djNhMyAzIDAgMCAwIDUuMTIgMi4xMiJ9XV0sVEk9W1sicGF0aCIse2Q6Im0xMSA3LjYwMS01Ljk5NCA4LjE5YTEgMSAwIDAgMCAuMSAxLjI5OGwuODE3LjgxOGExIDEgMCAwIDAgMS4zMTQuMDg3TDE1LjA5IDEyIn1dLFsicGF0aCIse2Q6Ik0xNi41IDIxLjE3NEMxNS41IDIwLjUgMTQuMzcyIDIwIDEzIDIwYy0yLjA1OCAwLTMuOTI4IDIuMzU2LTYgMi0yLjA3Mi0uMzU2LTIuNzc1LTMuMzY5LTEuNS00LjUifV0sWyJjaXJjbGUiLHtjeDoiMTYiLGN5OiI3IixyOiI1In1dXSxYUXQ9W1sicGF0aCIse2Q6Ik0xMiAxOXYzIn1dLFsicGF0aCIse2Q6Ik0xOSAxMHYyYTcgNyAwIDAgMS0xNCAwdi0yIn1dLFsicmVjdCIse3g6IjkiLHk6IjIiLHdpZHRoOiI2IixoZWlnaHQ6IjEzIixyeDoiMyJ9XV0sUVF0PVtbInBhdGgiLHtkOiJNMTAgMTJoNCJ9XSxbInBhdGgiLHtkOiJNMTAgMTdoNCJ9XSxbInBhdGgiLHtkOiJNMTAgN2g0In1dLFsicGF0aCIse2Q6Ik0xOCAxMmgyIn1dLFsicGF0aCIse2Q6Ik0xOCAxOGgyIn1dLFsicGF0aCIse2Q6Ik0xOCA2aDIifV0sWyJwYXRoIix7ZDoiTTQgMTJoMiJ9XSxbInBhdGgiLHtkOiJNNCAxOGgyIn1dLFsicGF0aCIse2Q6Ik00IDZoMiJ9XSxbInJlY3QiLHt4OiI2Iix5OiIyIix3aWR0aDoiMTIiLGhlaWdodDoiMjAiLHJ4OiIyIn1dXSxKUXQ9W1sicGF0aCIse2Q6Ik02IDE4aDgifV0sWyJwYXRoIix7ZDoiTTMgMjJoMTgifV0sWyJwYXRoIix7ZDoiTTE0IDIyYTcgNyAwIDEgMCAwLTE0aC0xIn1dLFsicGF0aCIse2Q6Ik05IDE0aDIifV0sWyJwYXRoIix7ZDoiTTkgMTJhMiAyIDAgMCAxLTItMlY2aDZ2NGEyIDIgMCAwIDEtMiAyWiJ9XSxbInBhdGgiLHtkOiJNMTIgNlYzYTEgMSAwIDAgMC0xLTFIOWExIDEgMCAwIDAtMSAxdjMifV1dLEtRdD1bWyJyZWN0Iix7d2lkdGg6IjIwIixoZWlnaHQ6IjE1Iix4OiIyIix5OiI0IixyeDoiMiJ9XSxbInJlY3QiLHt3aWR0aDoiOCIsaGVpZ2h0OiI3Iix4OiI2Iix5OiI4IixyeDoiMSJ9XSxbInBhdGgiLHtkOiJNMTggOHY3In1dLFsicGF0aCIse2Q6Ik02IDE5djIifV0sWyJwYXRoIix7ZDoiTTE4IDE5djIifV1dLGVKdD1bWyJwYXRoIix7ZDoiTTEyIDEzdjgifV0sWyJwYXRoIix7ZDoiTTEyIDN2MyJ9XSxbInBhdGgiLHtkOiJNNCA2YTEgMSAwIDAgMC0xIDF2NWExIDEgMCAwIDAgMSAxaDEzYTIgMiAwIDAgMCAxLjE1Mi0uMzY1bDMuNDI0LTIuMzE3YTEgMSAwIDAgMCAwLTEuNjM1bC0zLjQyNC0yLjMxOEEyIDIgMCAwIDAgMTcgNnoifV1dLHRKdD1bWyJwYXRoIix7ZDoiTTggMmg4In1dLFsicGF0aCIse2Q6Ik05IDJ2MS4zNDNNMTUgMnYyLjc4OWE0IDQgMCAwIDAgLjY3MiAyLjIxOWwuNjU2Ljk4NGE0IDQgMCAwIDEgLjY3MiAyLjIydjEuMTMxTTcuOCA3LjhsLS4xMjguMTkyQTQgNCAwIDAgMCA3IDEwLjIxMlYyMGEyIDIgMCAwIDAgMiAyaDZhMiAyIDAgMCAwIDItMnYtMyJ9XSxbInBhdGgiLHtkOiJNNyAxNWE2LjQ3IDYuNDcgMCAwIDEgNSAwIDYuNDcyIDYuNDcyIDAgMCAwIDMuNDM1LjQzNSJ9XSxbImxpbmUiLHt4MToiMiIseDI6IjIyIix5MToiMiIseTI6IjIyIn1dXSxySnQ9W1sicGF0aCIse2Q6Im0xNCAxMCA3LTcifV0sWyJwYXRoIix7ZDoiTTIwIDEwaC02VjQifV0sWyJwYXRoIix7ZDoibTMgMjEgNy03In1dLFsicGF0aCIse2Q6Ik00IDE0aDZ2NiJ9XV0saUp0PVtbInBhdGgiLHtkOiJNOCAyaDgifV0sWyJwYXRoIix7ZDoiTTkgMnYyLjc4OWE0IDQgMCAwIDEtLjY3MiAyLjIxOWwtLjY1Ni45ODRBNCA0IDAgMCAwIDcgMTAuMjEyVjIwYTIgMiAwIDAgMCAyIDJoNmEyIDIgMCAwIDAgMi0ydi05Ljc4OWE0IDQgMCAwIDAtLjY3Mi0yLjIxOWwtLjY1Ni0uOTg0QTQgNCAwIDAgMSAxNSA0Ljc4OFYyIn1dLFsicGF0aCIse2Q6Ik03IDE1YTYuNDcyIDYuNDcyIDAgMCAxIDUgMCA2LjQ3IDYuNDcgMCAwIDAgNSAwIn1dXSxhSnQ9W1sicGF0aCIse2Q6Ik04IDN2M2EyIDIgMCAwIDEtMiAySDMifV0sWyJwYXRoIix7ZDoiTTIxIDhoLTNhMiAyIDAgMCAxLTItMlYzIn1dLFsicGF0aCIse2Q6Ik0zIDE2aDNhMiAyIDAgMCAxIDIgMnYzIn1dLFsicGF0aCIse2Q6Ik0xNiAyMXYtM2EyIDIgMCAwIDEgMi0yaDMifV1dLG5KdD1bWyJwYXRoIix7ZDoiTTUgMTJoMTQifV1dLG9KdD1bWyJwYXRoIix7ZDoibTkgMTAgMiAyIDQtNCJ9XSxbInJlY3QiLHt3aWR0aDoiMjAiLGhlaWdodDoiMTQiLHg6IjIiLHk6IjMiLHJ4OiIyIn1dLFsicGF0aCIse2Q6Ik0xMiAxN3Y0In1dLFsicGF0aCIse2Q6Ik04IDIxaDgifV1dLHNKdD1bWyJwYXRoIix7ZDoiTTExIDEzYTMgMyAwIDEgMSAyLjgzLTRIMTRhMiAyIDAgMCAxIDAgNHoifV0sWyJwYXRoIix7ZDoiTTEyIDE3djQifV0sWyJwYXRoIix7ZDoiTTggMjFoOCJ9XSxbInJlY3QiLHt4OiIyIix5OiIzIix3aWR0aDoiMjAiLGhlaWdodDoiMTQiLHJ4OiIyIn1dXSxsSnQ9W1sicGF0aCIse2Q6Ik0xMiAxN3Y0In1dLFsicGF0aCIse2Q6Im0xNC4zMDUgNy41My45MjMtLjM4MiJ9XSxbInBhdGgiLHtkOiJtMTUuMjI4IDQuODUyLS45MjMtLjM4MyJ9XSxbInBhdGgiLHtkOiJtMTYuODUyIDMuMjI4LS4zODMtLjkyNCJ9XSxbInBhdGgiLHtkOiJtMTYuODUyIDguNzcyLS4zODMuOTIzIn1dLFsicGF0aCIse2Q6Im0xOS4xNDggMy4yMjguMzgzLS45MjQifV0sWyJwYXRoIix7ZDoibTE5LjUzIDkuNjk2LS4zODItLjkyNCJ9XSxbInBhdGgiLHtkOiJtMjAuNzcyIDQuODUyLjkyNC0uMzgzIn1dLFsicGF0aCIse2Q6Im0yMC43NzIgNy4xNDguOTI0LjM4MyJ9XSxbInBhdGgiLHtkOiJNMjIgMTN2MmEyIDIgMCAwIDEtMiAySDRhMiAyIDAgMCAxLTItMlY1YTIgMiAwIDAgMSAyLTJoNyJ9XSxbInBhdGgiLHtkOiJNOCAyMWg4In1dLFsiY2lyY2xlIix7Y3g6IjE4IixjeToiNiIscjoiMyJ9XV0sY0p0PVtbInBhdGgiLHtkOiJNMTIgMTd2NCJ9XSxbInBhdGgiLHtkOiJNMjIgMTIuMzA3VjE1YTIgMiAwIDAgMS0yIDJINGEyIDIgMCAwIDEtMi0yVjVhMiAyIDAgMCAxIDItMmg4LjY5MyJ9XSxbInBhdGgiLHtkOiJNOCAyMWg4In1dLFsiY2lyY2xlIix7Y3g6IjE5IixjeToiNiIscjoiMyJ9XV0sZEp0PVtbInBhdGgiLHtkOiJNMTIgMTNWNyJ9XSxbInBhdGgiLHtkOiJtMTUgMTAtMyAzLTMtMyJ9XSxbInJlY3QiLHt3aWR0aDoiMjAiLGhlaWdodDoiMTQiLHg6IjIiLHk6IjMiLHJ4OiIyIn1dLFsicGF0aCIse2Q6Ik0xMiAxN3Y0In1dLFsicGF0aCIse2Q6Ik04IDIxaDgifV1dLHVKdD1bWyJwYXRoIix7ZDoiTTEyIDE3djQifV0sWyJwYXRoIix7ZDoiTTE3IDE3SDRhMiAyIDAgMCAxLTItMlY1YTIgMiAwIDAgMSAxLjE4NC0xLjgyNiJ9XSxbInBhdGgiLHtkOiJtMiAyIDIwIDIwIn1dLFsicGF0aCIse2Q6Ik04IDIxaDgifV0sWyJwYXRoIix7ZDoiTTguNjU2IDNIMjBhMiAyIDAgMCAxIDIgMnYxMGEyIDIgMCAwIDEtLjI5MyAxLjA0MiJ9XV0scEp0PVtbInBhdGgiLHtkOiJNMTAgMTNWNyJ9XSxbInBhdGgiLHtkOiJNMTQgMTNWNyJ9XSxbInJlY3QiLHt3aWR0aDoiMjAiLGhlaWdodDoiMTQiLHg6IjIiLHk6IjMiLHJ4OiIyIn1dLFsicGF0aCIse2Q6Ik0xMiAxN3Y0In1dLFsicGF0aCIse2Q6Ik04IDIxaDgifV1dLGhKdD1bWyJwYXRoIix7ZDoiTTE1LjAzMyA5LjQ0YS42NDcuNjQ3IDAgMCAxIDAgMS4xMmwtNC4wNjUgMi4zNTJhLjY0NS42NDUgMCAwIDEtLjk2OC0uNTZWNy42NDhhLjY0NS42NDUgMCAwIDEgLjk2Ny0uNTZ6In1dLFsicGF0aCIse2Q6Ik0xMiAxN3Y0In1dLFsicGF0aCIse2Q6Ik04IDIxaDgifV0sWyJyZWN0Iix7eDoiMiIseToiMyIsd2lkdGg6IjIwIixoZWlnaHQ6IjE0IixyeDoiMiJ9XV0sZkp0PVtbInBhdGgiLHtkOiJNMTggOFY2YTIgMiAwIDAgMC0yLTJINGEyIDIgMCAwIDAtMiAydjdhMiAyIDAgMCAwIDIgMmg4In1dLFsicGF0aCIse2Q6Ik0xMCAxOXYtMy45NiAzLjE1In1dLFsicGF0aCIse2Q6Ik03IDE5aDUifV0sWyJyZWN0Iix7d2lkdGg6IjYiLGhlaWdodDoiMTAiLHg6IjE2Iix5OiIxMiIscng6IjIifV1dLG1KdD1bWyJwYXRoIix7ZDoiTTUuNSAyMEg4In1dLFsicGF0aCIse2Q6Ik0xNyA5aC4wMSJ9XSxbInJlY3QiLHt3aWR0aDoiMTAiLGhlaWdodDoiMTYiLHg6IjEyIix5OiI0IixyeDoiMiJ9XSxbInBhdGgiLHtkOiJNOCA2SDRhMiAyIDAgMCAwLTIgMnY2YTIgMiAwIDAgMCAyIDJoNCJ9XSxbImNpcmNsZSIse2N4OiIxNyIsY3k6IjE1IixyOiIxIn1dXSxnSnQ9W1sicGF0aCIse2Q6Ik0xMiAxN3Y0In1dLFsicGF0aCIse2Q6Ik04IDIxaDgifV0sWyJyZWN0Iix7eDoiMiIseToiMyIsd2lkdGg6IjIwIixoZWlnaHQ6IjE0IixyeDoiMiJ9XSxbInJlY3QiLHt4OiI5Iix5OiI3Iix3aWR0aDoiNiIsaGVpZ2h0OiI2IixyeDoiMSJ9XV0sYkp0PVtbInBhdGgiLHtkOiJtOSAxMCAzLTMgMyAzIn1dLFsicGF0aCIse2Q6Ik0xMiAxM1Y3In1dLFsicmVjdCIse3dpZHRoOiIyMCIsaGVpZ2h0OiIxNCIseDoiMiIseToiMyIscng6IjIifV0sWyJwYXRoIix7ZDoiTTEyIDE3djQifV0sWyJwYXRoIix7ZDoiTTggMjFoOCJ9XV0sdkp0PVtbInBhdGgiLHtkOiJtMTQuNSAxMi41LTUtNSJ9XSxbInBhdGgiLHtkOiJtOS41IDEyLjUgNS01In1dLFsicmVjdCIse3dpZHRoOiIyMCIsaGVpZ2h0OiIxNCIseDoiMiIseToiMyIscng6IjIifV0sWyJwYXRoIix7ZDoiTTEyIDE3djQifV0sWyJwYXRoIix7ZDoiTTggMjFoOCJ9XV0seEp0PVtbInJlY3QiLHt3aWR0aDoiMjAiLGhlaWdodDoiMTQiLHg6IjIiLHk6IjMiLHJ4OiIyIn1dLFsibGluZSIse3gxOiI4Iix4MjoiMTYiLHkxOiIyMSIseTI6IjIxIn1dLFsibGluZSIse3gxOiIxMiIseDI6IjEyIix5MToiMTciLHkyOiIyMSJ9XV0seUp0PVtbInBhdGgiLHtkOiJNMTggNWg0In1dLFsicGF0aCIse2Q6Ik0yMCAzdjQifV0sWyJwYXRoIix7ZDoiTTIwLjk4NSAxMi40ODZhOSA5IDAgMSAxLTkuNDczLTkuNDcyYy40MDUtLjAyMi42MTcuNDYuNDAyLjgwM2E2IDYgMCAwIDAgOC4yNjggOC4yNjhjLjM0NC0uMjE1LjgyNS0uMDA0LjgwMy40MDEifV1dLHdKdD1bWyJwYXRoIix7ZDoiTTIwLjk4NSAxMi40ODZhOSA5IDAgMSAxLTkuNDczLTkuNDcyYy40MDUtLjAyMi42MTcuNDYuNDAyLjgwM2E2IDYgMCAwIDAgOC4yNjggOC4yNjhjLjM0NC0uMjE1LjgyNS0uMDA0LjgwMy40MDEifV1dLE1KdD1bWyJwYXRoIix7ZDoibTE4IDE0LTEtMyJ9XSxbInBhdGgiLHtkOiJtMyA5IDYgMmEyIDIgMCAwIDEgMi0yaDJhMiAyIDAgMCAxIDEuOTkgMS44MSJ9XSxbInBhdGgiLHtkOiJNOCAxN2gzYTEgMSAwIDAgMCAxLTEgNiA2IDAgMCAxIDYtNiAxIDEgMCAwIDAgMS0xdi0uNzVBNSA1IDAgMCAwIDE3IDUifV0sWyJjaXJjbGUiLHtjeDoiMTkiLGN5OiIxNyIscjoiMyJ9XSxbImNpcmNsZSIse2N4OiI1IixjeToiMTciLHI6IjMifV1dLGtKdD1bWyJwYXRoIix7ZDoibTggMyA0IDggNS01IDUgMTVIMkw4IDN6In1dLFsicGF0aCIse2Q6Ik00LjE0IDE1LjA4YzIuNjItMS41NyA1LjI0LTEuNDMgNy44Ni40MiAyLjc0IDEuOTQgNS40OSAyIDguMjMuMTkifV1dLFNKdD1bWyJwYXRoIix7ZDoibTggMyA0IDggNS01IDUgMTVIMkw4IDN6In1dXSx6SnQ9W1sicGF0aCIse2Q6Ik0xMiA2di4zNDMifV0sWyJwYXRoIix7ZDoiTTE4LjIxOCAxOC4yMThBNyA3IDAgMCAxIDUgMTVWOWE3IDcgMCAwIDEgLjc4Mi0zLjIxOCJ9XSxbInBhdGgiLHtkOiJNMTkgMTMuMzQzVjlBNyA3IDAgMCAwIDguNTYgMi45MDIifV0sWyJwYXRoIix7ZDoiTTIyIDIyIDIgMiJ9XV0sQ0p0PVtbInBhdGgiLHtkOiJtMTUuNTUgOC40NSA1LjEzOCAyLjA4N2EuNS41IDAgMCAxLS4wNjMuOTQ3bC02LjEyNCAxLjU4YTIgMiAwIDAgMC0xLjQzOCAxLjQzNWwtMS41NzkgNi4xMjZhLjUuNSAwIDAgMS0uOTQ3LjA2M0w4LjQ1IDE1LjU1MSJ9XSxbInBhdGgiLHtkOiJNMjIgMiAyIDIyIn1dLFsicGF0aCIse2Q6Im02LjgxNiAxMS41MjgtMi43NzktNi44NGEuNDk1LjQ5NSAwIDAgMSAuNjUxLS42NTFsNi44NCAyLjc3OSJ9XV0sVEp0PVtbInBhdGgiLHtkOiJNNC4wMzcgNC42ODhhLjQ5NS40OTUgMCAwIDEgLjY1MS0uNjUxbDE2IDYuNWEuNS41IDAgMCAxLS4wNjMuOTQ3bC02LjEyNCAxLjU4YTIgMiAwIDAgMC0xLjQzOCAxLjQzNWwtMS41NzkgNi4xMjZhLjUuNSAwIDAgMS0uOTQ3LjA2M3oifV1dLF9KdD1bWyJwYXRoIix7ZDoiTTIuMDM0IDIuNjgxYS40OTguNDk4IDAgMCAxIC42NDctLjY0N2w5IDMuNWEuNS41IDAgMCAxLS4wMzMuOTQ0TDguMjA0IDcuNTQ1YTEgMSAwIDAgMC0uNjYuNjZsLTEuMDY2IDMuNDQzYS41LjUgMCAwIDEtLjk0NC4wMzN6In1dLFsiY2lyY2xlIix7Y3g6IjE2IixjeToiMTYiLHI6IjYifV0sWyJwYXRoIix7ZDoibTExLjggMTEuOCA4LjQgOC40In1dXSxMSnQ9W1sicGF0aCIse2Q6Ik0xNCA0LjEgMTIgNiJ9XSxbInBhdGgiLHtkOiJtNS4xIDgtMi45LS44In1dLFsicGF0aCIse2Q6Im02IDEyLTEuOSAyIn1dLFsicGF0aCIse2Q6Ik03LjIgMi4yIDggNS4xIn1dLFsicGF0aCIse2Q6Ik05LjAzNyA5LjY5YS40OTguNDk4IDAgMCAxIC42NTMtLjY1M2wxMSA0LjVhLjUuNSAwIDAgMS0uMDc0Ljk0OWwtNC4zNDkgMS4wNDFhMSAxIDAgMCAwLS43NC43MzlsLTEuMDQgNC4zNWEuNS41IDAgMCAxLS45NS4wNzR6In1dXSxBSnQ9W1sicGF0aCIse2Q6Ik0xMi41ODYgMTIuNTg2IDE5IDE5In1dLFsicGF0aCIse2Q6Ik0zLjY4OCAzLjAzN2EuNDk3LjQ5NyAwIDAgMC0uNjUxLjY1MWw2LjUgMTUuOTk5YS41MDEuNTAxIDAgMCAwIC45NDctLjA2MmwxLjU2OS02LjA4M2EyIDIgMCAwIDEgMS40NDgtMS40NzlsNi4xMjQtMS41NzlhLjUuNSAwIDAgMCAuMDYzLS45NDd6In1dXSxESnQ9W1sicmVjdCIse3g6IjUiLHk6IjIiLHdpZHRoOiIxNCIsaGVpZ2h0OiIyMCIscng6IjcifV0sWyJwYXRoIix7ZDoiTTEyIDZ2NCJ9XV0sX0k9W1sicGF0aCIse2Q6Ik01IDN2MTZoMTYifV0sWyJwYXRoIix7ZDoibTUgMTkgNi02In1dLFsicGF0aCIse2Q6Im0yIDYgMy0zIDMgMyJ9XSxbInBhdGgiLHtkOiJtMTggMTYgMyAzLTMgMyJ9XV0sRUp0PVtbInBhdGgiLHtkOiJNMTkgMTN2NmgtNiJ9XSxbInBhdGgiLHtkOiJNNSAxMVY1aDYifV0sWyJwYXRoIix7ZDoibTUgNSAxNCAxNCJ9XV0sJEp0PVtbInBhdGgiLHtkOiJNMTEgMTlINXYtNiJ9XSxbInBhdGgiLHtkOiJNMTMgNWg2djYifV0sWyJwYXRoIix7ZDoiTTE5IDUgNSAxOSJ9XV0sSUp0PVtbInBhdGgiLHtkOiJNMTEgMTlINVYxMyJ9XSxbInBhdGgiLHtkOiJNMTkgNUw1IDE5In1dXSxQSnQ9W1sicGF0aCIse2Q6Ik0xOSAxM1YxOUgxMyJ9XSxbInBhdGgiLHtkOiJNNSA1TDE5IDE5In1dXSxOSnQ9W1sicGF0aCIse2Q6Ik04IDE4TDEyIDIyTDE2IDE4In1dLFsicGF0aCIse2Q6Ik0xMiAyVjIyIn1dXSxGSnQ9W1sicGF0aCIse2Q6Im0xOCA4IDQgNC00IDQifV0sWyJwYXRoIix7ZDoiTTIgMTJoMjAifV0sWyJwYXRoIix7ZDoibTYgOC00IDQgNCA0In1dXSxPSnQ9W1sicGF0aCIse2Q6Ik02IDhMMiAxMkw2IDE2In1dLFsicGF0aCIse2Q6Ik0yIDEySDIyIn1dXSxSSnQ9W1sicGF0aCIse2Q6Ik0xOCA4TDIyIDEyTDE4IDE2In1dLFsicGF0aCIse2Q6Ik0yIDEySDIyIn1dXSxCSnQ9W1sicGF0aCIse2Q6Ik01IDExVjVIMTEifV0sWyJwYXRoIix7ZDoiTTUgNUwxOSAxOSJ9XV0sSEp0PVtbInBhdGgiLHtkOiJNMTMgNUgxOVYxMSJ9XSxbInBhdGgiLHtkOiJNMTkgNUw1IDE5In1dXSxxSnQ9W1sicGF0aCIse2Q6Ik04IDZMMTIgMkwxNiA2In1dLFsicGF0aCIse2Q6Ik0xMiAyVjIyIn1dXSxqSnQ9W1sicGF0aCIse2Q6Ik0xMiAydjIwIn1dLFsicGF0aCIse2Q6Im04IDE4IDQgNCA0LTQifV0sWyJwYXRoIix7ZDoibTggNiA0LTQgNCA0In1dXSxWSnQ9W1sicGF0aCIse2Q6Ik0xMiAydjIwIn1dLFsicGF0aCIse2Q6Im0xNSAxOS0zIDMtMy0zIn1dLFsicGF0aCIse2Q6Im0xOSA5IDMgMy0zIDMifV0sWyJwYXRoIix7ZDoiTTIgMTJoMjAifV0sWyJwYXRoIix7ZDoibTUgOS0zIDMgMyAzIn1dLFsicGF0aCIse2Q6Im05IDUgMy0zIDMgMyJ9XV0sVUp0PVtbImNpcmNsZSIse2N4OiI4IixjeToiMTgiLHI6IjQifV0sWyJwYXRoIix7ZDoiTTEyIDE4VjJsNyA0In1dXSxXSnQ9W1siY2lyY2xlIix7Y3g6IjEyIixjeToiMTgiLHI6IjQifV0sWyJwYXRoIix7ZDoiTTE2IDE4VjIifV1dLEdKdD1bWyJwYXRoIix7ZDoiTTkgMThWNWwxMi0ydjEzIn1dLFsicGF0aCIse2Q6Im05IDkgMTItMiJ9XSxbImNpcmNsZSIse2N4OiI2IixjeToiMTgiLHI6IjMifV0sWyJjaXJjbGUiLHtjeDoiMTgiLGN5OiIxNiIscjoiMyJ9XV0sWUp0PVtbInBhdGgiLHtkOiJNOSAxOFY1bDEyLTJ2MTMifV0sWyJjaXJjbGUiLHtjeDoiNiIsY3k6IjE4IixyOiIzIn1dLFsiY2lyY2xlIix7Y3g6IjE4IixjeToiMTYiLHI6IjMifV1dLFpKdD1bWyJwYXRoIix7ZDoiTTkuMzEgOS4zMSA1IDIxbDctNCA3IDQtMS4xNy0zLjE3In1dLFsicGF0aCIse2Q6Ik0xNC41MyA4Ljg4IDEyIDJsLTEuMTcgMy4xNyJ9XSxbImxpbmUiLHt4MToiMiIseDI6IjIyIix5MToiMiIseTI6IjIyIn1dXSxYSnQ9W1sicG9seWdvbiIse3BvaW50czoiMTIgMiAxOSAyMSAxMiAxNyA1IDIxIDEyIDIifV1dLFFKdD1bWyJwb2x5Z29uIix7cG9pbnRzOiIzIDExIDIyIDIgMTMgMjEgMTEgMTMgMyAxMSJ9XV0sSkp0PVtbInBhdGgiLHtkOiJNOC40MyA4LjQzIDMgMTFsOCAyIDIgOCAyLjU3LTUuNDMifV0sWyJwYXRoIix7ZDoiTTE3LjM5IDExLjczIDIyIDJsLTkuNzMgNC42MSJ9XSxbImxpbmUiLHt4MToiMiIseDI6IjIyIix5MToiMiIseTI6IjIyIn1dXSxLSnQ9W1sicmVjdCIse3g6IjE2Iix5OiIxNiIsd2lkdGg6IjYiLGhlaWdodDoiNiIscng6IjEifV0sWyJyZWN0Iix7eDoiMiIseToiMTYiLHdpZHRoOiI2IixoZWlnaHQ6IjYiLHJ4OiIxIn1dLFsicmVjdCIse3g6IjkiLHk6IjIiLHdpZHRoOiI2IixoZWlnaHQ6IjYiLHJ4OiIxIn1dLFsicGF0aCIse2Q6Ik01IDE2di0zYTEgMSAwIDAgMSAxLTFoMTJhMSAxIDAgMCAxIDEgMXYzIn1dLFsicGF0aCIse2Q6Ik0xMiAxMlY4In1dXSxlS3Q9W1sicGF0aCIse2Q6Ik0xNSAxOGgtNSJ9XSxbInBhdGgiLHtkOiJNMTggMTRoLTgifV0sWyJwYXRoIix7ZDoiTTQgMjJoMTZhMiAyIDAgMCAwIDItMlY0YTIgMiAwIDAgMC0yLTJIOGEyIDIgMCAwIDAtMiAydjE2YTIgMiAwIDAgMS00IDB2LTlhMiAyIDAgMCAxIDItMmgyIn1dLFsicmVjdCIse3dpZHRoOiI4IixoZWlnaHQ6IjQiLHg6IjEwIix5OiI2IixyeDoiMSJ9XV0sdEt0PVtbInBhdGgiLHtkOiJNNiA4LjMyYTcuNDMgNy40MyAwIDAgMSAwIDcuMzYifV0sWyJwYXRoIix7ZDoiTTkuNDYgNi4yMWExMS43NiAxMS43NiAwIDAgMSAwIDExLjU4In1dLFsicGF0aCIse2Q6Ik0xMi45MSA0LjFhMTUuOTEgMTUuOTEgMCAwIDEgLjAxIDE1LjgifV0sWyJwYXRoIix7ZDoiTTE2LjM3IDJhMjAuMTYgMjAuMTYgMCAwIDEgMCAyMCJ9XV0sckt0PVtbInBhdGgiLHtkOiJNMTIgMnYxMCJ9XSxbInBhdGgiLHtkOiJtOC41IDQgNyA0In1dLFsicGF0aCIse2Q6Im04LjUgOCA3LTQifV0sWyJjaXJjbGUiLHtjeDoiMTIiLGN5OiIxNyIscjoiNSJ9XV0saUt0PVtbInBhdGgiLHtkOiJNMTMuNCAySDZhMiAyIDAgMCAwLTIgMnYxNmEyIDIgMCAwIDAgMiAyaDEyYTIgMiAwIDAgMCAyLTJ2LTcuNCJ9XSxbInBhdGgiLHtkOiJNMiA2aDQifV0sWyJwYXRoIix7ZDoiTTIgMTBoNCJ9XSxbInBhdGgiLHtkOiJNMiAxNGg0In1dLFsicGF0aCIse2Q6Ik0yIDE4aDQifV0sWyJwYXRoIix7ZDoiTTIxLjM3OCA1LjYyNmExIDEgMCAxIDAtMy4wMDQtMy4wMDRsLTUuMDEgNS4wMTJhMiAyIDAgMCAwLS41MDYuODU0bC0uODM3IDIuODdhLjUuNSAwIDAgMCAuNjIuNjJsMi44Ny0uODM3YTIgMiAwIDAgMCAuODU0LS41MDZ6In1dXSxhS3Q9W1sicGF0aCIse2Q6Ik0yIDZoNCJ9XSxbInBhdGgiLHtkOiJNMiAxMGg0In1dLFsicGF0aCIse2Q6Ik0yIDE0aDQifV0sWyJwYXRoIix7ZDoiTTIgMThoNCJ9XSxbInJlY3QiLHt3aWR0aDoiMTYiLGhlaWdodDoiMjAiLHg6IjQiLHk6IjIiLHJ4OiIyIn1dLFsicGF0aCIse2Q6Ik0xNSAydjIwIn1dLFsicGF0aCIse2Q6Ik0xNSA3aDUifV0sWyJwYXRoIix7ZDoiTTE1IDEyaDUifV0sWyJwYXRoIix7ZDoiTTE1IDE3aDUifV1dLG5LdD1bWyJwYXRoIix7ZDoiTTIgNmg0In1dLFsicGF0aCIse2Q6Ik0yIDEwaDQifV0sWyJwYXRoIix7ZDoiTTIgMTRoNCJ9XSxbInBhdGgiLHtkOiJNMiAxOGg0In1dLFsicmVjdCIse3dpZHRoOiIxNiIsaGVpZ2h0OiIyMCIseDoiNCIseToiMiIscng6IjIifV0sWyJwYXRoIix7ZDoiTTkuNSA4aDUifV0sWyJwYXRoIix7ZDoiTTkuNSAxMkgxNiJ9XSxbInBhdGgiLHtkOiJNOS41IDE2SDE0In1dXSxvS3Q9W1sicGF0aCIse2Q6Ik0yIDZoNCJ9XSxbInBhdGgiLHtkOiJNMiAxMGg0In1dLFsicGF0aCIse2Q6Ik0yIDE0aDQifV0sWyJwYXRoIix7ZDoiTTIgMThoNCJ9XSxbInJlY3QiLHt3aWR0aDoiMTYiLGhlaWdodDoiMjAiLHg6IjQiLHk6IjIiLHJ4OiIyIn1dLFsicGF0aCIse2Q6Ik0xNiAydjIwIn1dXSxzS3Q9W1sicGF0aCIse2Q6Ik04IDJ2NCJ9XSxbInBhdGgiLHtkOiJNMTIgMnY0In1dLFsicGF0aCIse2Q6Ik0xNiAydjQifV0sWyJwYXRoIix7ZDoiTTE2IDRoMmEyIDIgMCAwIDEgMiAydjIifV0sWyJwYXRoIix7ZDoiTTIwIDEydjIifV0sWyJwYXRoIix7ZDoiTTIwIDE4djJhMiAyIDAgMCAxLTIgMmgtMSJ9XSxbInBhdGgiLHtkOiJNMTMgMjJoLTIifV0sWyJwYXRoIix7ZDoiTTcgMjJINmEyIDIgMCAwIDEtMi0ydi0yIn1dLFsicGF0aCIse2Q6Ik00IDE0di0yIn1dLFsicGF0aCIse2Q6Ik00IDhWNmEyIDIgMCAwIDEgMi0yaDIifV0sWyJwYXRoIix7ZDoiTTggMTBoNiJ9XSxbInBhdGgiLHtkOiJNOCAxNGg4In1dLFsicGF0aCIse2Q6Ik04IDE4aDUifV1dLGxLdD1bWyJwYXRoIix7ZDoiTTggMnY0In1dLFsicGF0aCIse2Q6Ik0xMiAydjQifV0sWyJwYXRoIix7ZDoiTTE2IDJ2NCJ9XSxbInJlY3QiLHt3aWR0aDoiMTYiLGhlaWdodDoiMTgiLHg6IjQiLHk6IjQiLHJ4OiIyIn1dLFsicGF0aCIse2Q6Ik04IDEwaDYifV0sWyJwYXRoIix7ZDoiTTggMTRoOCJ9XSxbInBhdGgiLHtkOiJNOCAxOGg1In1dXSxjS3Q9W1sicGF0aCIse2Q6Ik0xMiA0VjIifV0sWyJwYXRoIix7ZDoiTTUgMTB2NGE3LjAwNCA3LjAwNCAwIDAgMCA1LjI3NyA2Ljc4N2MuNDEyLjEwNC44MDIuMjkyIDEuMTAyLjU5MkwxMiAyMmwuNjIxLS42MjFjLjMtLjMuNjktLjQ4OCAxLjEwMi0uNTkyQTcuMDAzIDcuMDAzIDAgMCAwIDE5IDE0di00In1dLFsicGF0aCIse2Q6Ik0xMiA0QzggNCA0LjUgNiA0IDhjLS4yNDMuOTctLjkxOSAxLjk1Mi0yIDMgMS4zMS0uMDgyIDEuOTcyLS4yOSAzLTEgLjU0LjkyLjk4MiAxLjM1NiAyIDIgMS40NTItLjY0NyAxLjk1NC0xLjA5OCAyLjUtMiAuNTk1Ljk5NSAxLjE1MSAxLjQyNyAyLjUgMiAxLjMxLS42MjEgMS44NjItMS4wNTggMi41LTIgLjYyOS45NzcgMS4xNjIgMS40MjMgMi41IDIgMS4yMDktLjU0OCAxLjY4LS45NjcgMi0yIDEuMDMyLjkxNiAxLjY4MyAxLjE1NyAzIDEtMS4yOTctMS4wMzYtMS43NTgtMi4wMy0yLTMtLjUtMi00LTQtOC00WiJ9XV0sZEt0PVtbInBhdGgiLHtkOiJNMTIgNFYyIn1dLFsicGF0aCIse2Q6Ik01IDEwdjRhNy4wMDQgNy4wMDQgMCAwIDAgNS4yNzcgNi43ODdjLjQxMi4xMDQuODAyLjI5MiAxLjEwMi41OTJMMTIgMjJsLjYyMS0uNjIxYy4zLS4zLjY5LS40ODggMS4xMDItLjU5MmE3LjAxIDcuMDEgMCAwIDAgNC4xMjUtMi45MzkifV0sWyJwYXRoIix7ZDoiTTE5IDEwdjMuMzQzIn1dLFsicGF0aCIse2Q6Ik0xMiAxMmMtMS4zNDktLjU3My0xLjkwNS0xLjAwNS0yLjUtMi0uNTQ2LjkwMi0xLjA0OCAxLjM1My0yLjUgMi0xLjAxOC0uNjQ0LTEuNDYtMS4wOC0yLTItMS4wMjguNzEtMS42OS45MTgtMyAxIDEuMDgxLTEuMDQ4IDEuNzU3LTIuMDMgMi0zIC4xOTQtLjc3Ni44NC0xLjU1MSAxLjc5LTIuMjFtMTEuNjU0IDUuOTk3Yy44ODctLjQ1NyAxLjI4LS44OTEgMS41NTYtMS43ODcgMS4wMzIuOTE2IDEuNjgzIDEuMTU3IDMgMS0xLjI5Ny0xLjAzNi0xLjc1OC0yLjAzLTItMy0uNS0yLTQtNC04LTQtLjc0IDAtMS40NjEuMDY4LTIuMTUuMTkyIn1dLFsibGluZSIse3gxOiIyIix4MjoiMjIiLHkxOiIyIix5MjoiMjIifV1dLExJPVtbInBhdGgiLHtkOiJNMTIgMTZoLjAxIn1dLFsicGF0aCIse2Q6Ik0xMiA4djQifV0sWyJwYXRoIix7ZDoiTTE1LjMxMiAyYTIgMiAwIDAgMSAxLjQxNC41ODZsNC42ODggNC42ODhBMiAyIDAgMCAxIDIyIDguNjg4djYuNjI0YTIgMiAwIDAgMS0uNTg2IDEuNDE0bC00LjY4OCA0LjY4OGEyIDIgMCAwIDEtMS40MTQuNTg2SDguNjg4YTIgMiAwIDAgMS0xLjQxNC0uNTg2bC00LjY4OC00LjY4OEEyIDIgMCAwIDEgMiAxNS4zMTJWOC42ODhhMiAyIDAgMCAxIC41ODYtMS40MTRsNC42ODgtNC42ODhBMiAyIDAgMCAxIDguNjg4IDJ6In1dXSx1S3Q9W1sicGF0aCIse2Q6Ik0yLjU4NiAxNi43MjZBMiAyIDAgMCAxIDIgMTUuMzEyVjguNjg4YTIgMiAwIDAgMSAuNTg2LTEuNDE0bDQuNjg4LTQuNjg4QTIgMiAwIDAgMSA4LjY4OCAyaDYuNjI0YTIgMiAwIDAgMSAxLjQxNC41ODZsNC42ODggNC42ODhBMiAyIDAgMCAxIDIyIDguNjg4djYuNjI0YTIgMiAwIDAgMS0uNTg2IDEuNDE0bC00LjY4OCA0LjY4OGEyIDIgMCAwIDEtMS40MTQuNTg2SDguNjg4YTIgMiAwIDAgMS0xLjQxNC0uNTg2eiJ9XSxbInBhdGgiLHtkOiJNOCAxMmg4In1dXSxBST1bWyJwYXRoIix7ZDoiTTEwIDE1VjkifV0sWyJwYXRoIix7ZDoiTTE0IDE1VjkifV0sWyJwYXRoIix7ZDoiTTIuNTg2IDE2LjcyNkEyIDIgMCAwIDEgMiAxNS4zMTJWOC42ODhhMiAyIDAgMCAxIC41ODYtMS40MTRsNC42ODgtNC42ODhBMiAyIDAgMCAxIDguNjg4IDJoNi42MjRhMiAyIDAgMCAxIDEuNDE0LjU4Nmw0LjY4OCA0LjY4OEEyIDIgMCAwIDEgMjIgOC42ODh2Ni42MjRhMiAyIDAgMCAxLS41ODYgMS40MTRsLTQuNjg4IDQuNjg4YTIgMiAwIDAgMS0xLjQxNC41ODZIOC42ODhhMiAyIDAgMCAxLTEuNDE0LS41ODZ6In1dXSxEST1bWyJwYXRoIix7ZDoibTE1IDktNiA2In1dLFsicGF0aCIse2Q6Ik0yLjU4NiAxNi43MjZBMiAyIDAgMCAxIDIgMTUuMzEyVjguNjg4YTIgMiAwIDAgMSAuNTg2LTEuNDE0bDQuNjg4LTQuNjg4QTIgMiAwIDAgMSA4LjY4OCAyaDYuNjI0YTIgMiAwIDAgMSAxLjQxNC41ODZsNC42ODggNC42ODhBMiAyIDAgMCAxIDIyIDguNjg4djYuNjI0YTIgMiAwIDAgMS0uNTg2IDEuNDE0bC00LjY4OCA0LjY4OGEyIDIgMCAwIDEtMS40MTQuNTg2SDguNjg4YTIgMiAwIDAgMS0xLjQxNC0uNTg2eiJ9XSxbInBhdGgiLHtkOiJtOSA5IDYgNiJ9XV0scEt0PVtbInBhdGgiLHtkOiJNMi41ODYgMTYuNzI2QTIgMiAwIDAgMSAyIDE1LjMxMlY4LjY4OGEyIDIgMCAwIDEgLjU4Ni0xLjQxNGw0LjY4OC00LjY4OEEyIDIgMCAwIDEgOC42ODggMmg2LjYyNGEyIDIgMCAwIDEgMS40MTQuNTg2bDQuNjg4IDQuNjg4QTIgMiAwIDAgMSAyMiA4LjY4OHY2LjYyNGEyIDIgMCAwIDEtLjU4NiAxLjQxNGwtNC42ODggNC42ODhhMiAyIDAgMCAxLTEuNDE0LjU4Nkg4LjY4OGEyIDIgMCAwIDEtMS40MTQtLjU4NnoifV1dLGhLdD1bWyJwYXRoIix7ZDoiTTMgMjBoNC41YS41LjUgMCAwIDAgLjUtLjV2LS4yODJhLjUyLjUyIDAgMCAwLS4yNDctLjQzNyA4IDggMCAxIDEgOC40OTQtLjAwMS41Mi41MiAwIDAgMC0uMjQ3LjQzOHYuMjgyYS41LjUgMCAwIDAgLjUuNUgyMSJ9XV0sZkt0PVtbInBhdGgiLHtkOiJNMjAuMzQxIDYuNDg0QTEwIDEwIDAgMCAxIDEwLjI2NiAyMS44NSJ9XSxbInBhdGgiLHtkOiJNMy42NTkgMTcuNTE2QTEwIDEwIDAgMCAxIDEzLjc0IDIuMTUyIn1dLFsiY2lyY2xlIix7Y3g6IjEyIixjeToiMTIiLHI6IjMifV0sWyJjaXJjbGUiLHtjeDoiMTkiLGN5OiI1IixyOiIyIn1dLFsiY2lyY2xlIix7Y3g6IjUiLGN5OiIxOSIscjoiMiJ9XV0sbUt0PVtbInBhdGgiLHtkOiJNMyAzaDZsNiAxOGg2In1dLFsicGF0aCIse2Q6Ik0xNCAzaDcifV1dLGdLdD1bWyJwYXRoIix7ZDoiTTEyIDEyVjRhMSAxIDAgMCAxIDEtMWg2LjI5N2ExIDEgMCAwIDEgLjY1MSAxLjc1OWwtNC42OTYgNC4wMjUifV0sWyJwYXRoIix7ZDoibTEyIDIxLTcuNDE0LTcuNDE0QTIgMiAwIDAgMSA0IDEyLjE3MlY2LjQxNWExLjAwMiAxLjAwMiAwIDAgMSAxLjcwNy0uNzA3TDIwIDIwLjAwOSJ9XSxbInBhdGgiLHtkOiJtMTIuMjE0IDMuMzgxIDguNDE0IDE0Ljk2NmExIDEgMCAwIDEtLjE2NyAxLjE5OWwtMS4xNjggMS4xNjNhMSAxIDAgMCAxLS43MDYuMjkxSDYuMzUxYTEgMSAwIDAgMS0uNjI1LS4yMTlMMy4yNSAxOC44YTEgMSAwIDAgMSAuNjMxLTEuNzgxbDQuMTY1LjAyNyJ9XV0sYkt0PVtbInBhdGgiLHtkOiJNMTIgM3Y2In1dLFsicGF0aCIse2Q6Ik0xNi43NiAzYTIgMiAwIDAgMSAxLjggMS4xbDIuMjMgNC40NzlhMiAyIDAgMCAxIC4yMS44OTFWMTlhMiAyIDAgMCAxLTIgMkg1YTIgMiAwIDAgMS0yLTJWOS40NzJhMiAyIDAgMCAxIC4yMTEtLjg5NEw1LjQ1IDQuMUEyIDIgMCAwIDEgNy4yNCAzeiJ9XSxbInBhdGgiLHtkOiJNMy4wNTQgOS4wMTNoMTcuODkzIn1dXSx2S3Q9W1sicGF0aCIse2Q6Im0xNiAxNiAyIDIgNC00In1dLFsicGF0aCIse2Q6Ik0yMSAxMFY4YTIgMiAwIDAgMC0xLTEuNzNsLTctNGEyIDIgMCAwIDAtMiAwbC03IDRBMiAyIDAgMCAwIDMgOHY4YTIgMiAwIDAgMCAxIDEuNzNsNyA0YTIgMiAwIDAgMCAyIDBsMi0xLjE0In1dLFsicGF0aCIse2Q6Im03LjUgNC4yNyA5IDUuMTUifV0sWyJwb2x5bGluZSIse3BvaW50czoiMy4yOSA3IDEyIDEyIDIwLjcxIDcifV0sWyJsaW5lIix7eDE6IjEyIix4MjoiMTIiLHkxOiIyMiIseTI6IjEyIn1dXSx4S3Q9W1sicGF0aCIse2Q6Ik0xNiAxNmg2In1dLFsicGF0aCIse2Q6Ik0yMSAxMFY4YTIgMiAwIDAgMC0xLTEuNzNsLTctNGEyIDIgMCAwIDAtMiAwbC03IDRBMiAyIDAgMCAwIDMgOHY4YTIgMiAwIDAgMCAxIDEuNzNsNyA0YTIgMiAwIDAgMCAyIDBsMi0xLjE0In1dLFsicGF0aCIse2Q6Im03LjUgNC4yNyA5IDUuMTUifV0sWyJwb2x5bGluZSIse3BvaW50czoiMy4yOSA3IDEyIDEyIDIwLjcxIDcifV0sWyJsaW5lIix7eDE6IjEyIix4MjoiMTIiLHkxOiIyMiIseTI6IjEyIn1dXSx5S3Q9W1sicGF0aCIse2Q6Ik0xMiAyMnYtOSJ9XSxbInBhdGgiLHtkOiJNMTUuMTcgMi4yMWExLjY3IDEuNjcgMCAwIDEgMS42MyAwTDIxIDQuNTdhMS45MyAxLjkzIDAgMCAxIDAgMy4zNkw4LjgyIDE0Ljc5YTEuNjU1IDEuNjU1IDAgMCAxLTEuNjQgMEwzIDEyLjQzYTEuOTMgMS45MyAwIDAgMSAwLTMuMzZ6In1dLFsicGF0aCIse2Q6Ik0yMCAxM3YzLjg3YTIuMDYgMi4wNiAwIDAgMS0xLjExIDEuODNsLTYgMy4wOGExLjkzIDEuOTMgMCAwIDEtMS43OCAwbC02LTMuMDhBMi4wNiAyLjA2IDAgMCAxIDQgMTYuODdWMTMifV0sWyJwYXRoIix7ZDoiTTIxIDEyLjQzYTEuOTMgMS45MyAwIDAgMCAwLTMuMzZMOC44MyAyLjJhMS42NCAxLjY0IDAgMCAwLTEuNjMgMEwzIDQuNTdhMS45MyAxLjkzIDAgMCAwIDAgMy4zNmwxMi4xOCA2Ljg2YTEuNjM2IDEuNjM2IDAgMCAwIDEuNjMgMHoifV1dLHdLdD1bWyJwYXRoIix7ZDoiTTE2IDE2aDYifV0sWyJwYXRoIix7ZDoiTTE5IDEzdjYifV0sWyJwYXRoIix7ZDoiTTIxIDEwVjhhMiAyIDAgMCAwLTEtMS43M2wtNy00YTIgMiAwIDAgMC0yIDBsLTcgNEEyIDIgMCAwIDAgMyA4djhhMiAyIDAgMCAwIDEgMS43M2w3IDRhMiAyIDAgMCAwIDIgMGwyLTEuMTQifV0sWyJwYXRoIix7ZDoibTcuNSA0LjI3IDkgNS4xNSJ9XSxbInBvbHlsaW5lIix7cG9pbnRzOiIzLjI5IDcgMTIgMTIgMjAuNzEgNyJ9XSxbImxpbmUiLHt4MToiMTIiLHgyOiIxMiIseTE6IjIyIix5MjoiMTIifV1dLE1LdD1bWyJwYXRoIix7ZDoiTTIxIDEwVjhhMiAyIDAgMCAwLTEtMS43M2wtNy00YTIgMiAwIDAgMC0yIDBsLTcgNEEyIDIgMCAwIDAgMyA4djhhMiAyIDAgMCAwIDEgMS43M2w3IDRhMiAyIDAgMCAwIDIgMGwyLTEuMTQifV0sWyJwYXRoIix7ZDoibTcuNSA0LjI3IDkgNS4xNSJ9XSxbInBvbHlsaW5lIix7cG9pbnRzOiIzLjI5IDcgMTIgMTIgMjAuNzEgNyJ9XSxbImxpbmUiLHt4MToiMTIiLHgyOiIxMiIseTE6IjIyIix5MjoiMTIifV0sWyJjaXJjbGUiLHtjeDoiMTguNSIsY3k6IjE1LjUiLHI6IjIuNSJ9XSxbInBhdGgiLHtkOiJNMjAuMjcgMTcuMjcgMjIgMTkifV1dLGtLdD1bWyJwYXRoIix7ZDoiTTIxIDEwVjhhMiAyIDAgMCAwLTEtMS43M2wtNy00YTIgMiAwIDAgMC0yIDBsLTcgNEEyIDIgMCAwIDAgMyA4djhhMiAyIDAgMCAwIDEgMS43M2w3IDRhMiAyIDAgMCAwIDIgMGwyLTEuMTQifV0sWyJwYXRoIix7ZDoibTcuNSA0LjI3IDkgNS4xNSJ9XSxbInBvbHlsaW5lIix7cG9pbnRzOiIzLjI5IDcgMTIgMTIgMjAuNzEgNyJ9XSxbImxpbmUiLHt4MToiMTIiLHgyOiIxMiIseTE6IjIyIix5MjoiMTIifV0sWyJwYXRoIix7ZDoibTE3IDEzIDUgNW0tNSAwIDUtNSJ9XV0sU0t0PVtbInBhdGgiLHtkOiJNMTEgMjEuNzNhMiAyIDAgMCAwIDIgMGw3LTRBMiAyIDAgMCAwIDIxIDE2VjhhMiAyIDAgMCAwLTEtMS43M2wtNy00YTIgMiAwIDAgMC0yIDBsLTcgNEEyIDIgMCAwIDAgMyA4djhhMiAyIDAgMCAwIDEgMS43M3oifV0sWyJwYXRoIix7ZDoiTTEyIDIyVjEyIn1dLFsicG9seWxpbmUiLHtwb2ludHM6IjMuMjkgNyAxMiAxMiAyMC43MSA3In1dLFsicGF0aCIse2Q6Im03LjUgNC4yNyA5IDUuMTUifV1dLHpLdD1bWyJyZWN0Iix7d2lkdGg6IjE2IixoZWlnaHQ6IjYiLHg6IjIiLHk6IjIiLHJ4OiIyIn1dLFsicGF0aCIse2Q6Ik0xMCAxNnYtMmEyIDIgMCAwIDEgMi0yaDhhMiAyIDAgMCAwIDItMlY3YTIgMiAwIDAgMC0yLTJoLTIifV0sWyJyZWN0Iix7d2lkdGg6IjQiLGhlaWdodDoiNiIseDoiOCIseToiMTYiLHJ4OiIxIn1dXSxDS3Q9W1sicGF0aCIse2Q6Ik0xMSA3IDYgMiJ9XSxbInBhdGgiLHtkOiJNMTguOTkyIDEySDIuMDQxIn1dLFsicGF0aCIse2Q6Ik0yMS4xNDUgMTguMzhBMy4zNCAzLjM0IDAgMCAxIDIwIDE2LjVhMy4zIDMuMyAwIDAgMS0xLjE0NSAxLjg4Yy0uNTc1LjQ2LS44NTUgMS4wMi0uODU1IDEuNTk1QTIgMiAwIDAgMCAyMCAyMmEyIDIgMCAwIDAgMi0yLjAyNWMwLS41OC0uMjg1LTEuMTMtLjg1NS0xLjU5NSJ9XSxbInBhdGgiLHtkOiJtOC41IDQuNSAyLjE0OC0yLjE0OGExLjIwNSAxLjIwNSAwIDAgMSAxLjcwNCAwbDcuMjk2IDcuMjk2YTEuMjA1IDEuMjA1IDAgMCAxIDAgMS43MDRsLTcuNTkyIDcuNTkyYTMuNjE1IDMuNjE1IDAgMCAxLTUuMTEyIDBsLTMuODg4LTMuODg4YTMuNjE1IDMuNjE1IDAgMCAxIDAtNS4xMTJMNS42NyA3LjMzIn1dXSxFST1bWyJwYXRoIix7ZDoiTTEwIDJ2MiJ9XSxbInBhdGgiLHtkOiJNMTQgMnY0In1dLFsicGF0aCIse2Q6Ik0xNyAyYTEgMSAwIDAgMSAxIDF2OUg2VjNhMSAxIDAgMCAxIDEtMXoifV0sWyJwYXRoIix7ZDoiTTYgMTJhMSAxIDAgMCAwLTEgMXYxYTIgMiAwIDAgMCAyIDJoMmExIDEgMCAwIDEgMSAxdjIuOWEyIDIgMCAxIDAgNCAwVjE3YTEgMSAwIDAgMSAxLTFoMmEyIDIgMCAwIDAgMi0ydi0xYTEgMSAwIDAgMC0xLTEifV1dLFRLdD1bWyJwYXRoIix7ZDoibTE0LjYyMiAxNy44OTctMTAuNjgtMi45MTMifV0sWyJwYXRoIix7ZDoiTTE4LjM3NiAyLjYyMmExIDEgMCAxIDEgMy4wMDIgMy4wMDJMMTcuMzYgOS42NDNhLjUuNSAwIDAgMCAwIC43MDdsLjk0NC45NDRhMi40MSAyLjQxIDAgMCAxIDAgMy40MDhsLS45NDQuOTQ0YS41LjUgMCAwIDEtLjcwNyAwTDguMzU0IDcuMzQ4YS41LjUgMCAwIDEgMC0uNzA3bC45NDQtLjk0NGEyLjQxIDIuNDEgMCAwIDEgMy40MDggMGwuOTQ0Ljk0NGEuNS41IDAgMCAwIC43MDcgMHoifV0sWyJwYXRoIix7ZDoiTTkgOGMtMS44MDQgMi43MS0zLjk3IDMuNDYtNi41ODMgMy45NDhhLjUwNy41MDcgMCAwIDAtLjMwMi44MTlsNy4zMiA4Ljg4M2ExIDEgMCAwIDAgMS4xODUuMjA0QzEyLjczNSAyMC40MDUgMTYgMTYuNzkyIDE2IDE1In1dXSxfS3Q9W1sicGF0aCIse2Q6Ik0xMiAyMmExIDEgMCAwIDEgMC0yMCAxMCA5IDAgMCAxIDEwIDkgNSA1IDAgMCAxLTUgNWgtMi4yNWExLjc1IDEuNzUgMCAwIDAtMS40IDIuOGwuMy40YTEuNzUgMS43NSAwIDAgMS0xLjQgMi44eiJ9XSxbImNpcmNsZSIse2N4OiIxMy41IixjeToiNi41IixyOiIuNSIsZmlsbDoiY3VycmVudENvbG9yIn1dLFsiY2lyY2xlIix7Y3g6IjE3LjUiLGN5OiIxMC41IixyOiIuNSIsZmlsbDoiY3VycmVudENvbG9yIn1dLFsiY2lyY2xlIix7Y3g6IjYuNSIsY3k6IjEyLjUiLHI6Ii41IixmaWxsOiJjdXJyZW50Q29sb3IifV0sWyJjaXJjbGUiLHtjeDoiOC41IixjeToiNy41IixyOiIuNSIsZmlsbDoiY3VycmVudENvbG9yIn1dXSxMS3Q9W1sicGF0aCIse2Q6Ik0xMS4yNSAxNy4yNWgxLjVMMTIgMTh6In1dLFsicGF0aCIse2Q6Im0xNSAxMiAyIDIifV0sWyJwYXRoIix7ZDoiTTE4IDYuNWEuNS41IDAgMCAwLS41LS41In1dLFsicGF0aCIse2Q6Ik0yMC42OSA5LjY3YTQuNSA0LjUgMCAxIDAtNy4wNC01LjUgOC4zNSA4LjM1IDAgMCAwLTMuMyAwIDQuNSA0LjUgMCAxIDAtNy4wNCA1LjVDMi40OSAxMS4yIDIgMTIuODggMiAxNC41IDIgMTkuNDcgNi40OCAyMiAxMiAyMnMxMC0yLjUzIDEwLTcuNWMwLTEuNjItLjQ4LTMuMy0xLjMtNC44MyJ9XSxbInBhdGgiLHtkOiJNNiA2LjVhLjQ5NS40OTUgMCAwIDEgLjUtLjUifV0sWyJwYXRoIix7ZDoibTkgMTItMiAyIn1dXSxBS3Q9W1sicmVjdCIse3dpZHRoOiIxOCIsaGVpZ2h0OiIxOCIseDoiMyIseToiMyIscng6IjIifV0sWyJwYXRoIix7ZDoiTTMgMTVoMTgifV0sWyJwYXRoIix7ZDoibTE1IDgtMyAzLTMtMyJ9XV0sJEk9W1sicmVjdCIse3dpZHRoOiIxOCIsaGVpZ2h0OiIxOCIseDoiMyIseToiMyIscng6IjIifV0sWyJwYXRoIix7ZDoiTTE0IDE1aDEifV0sWyJwYXRoIix7ZDoiTTE5IDE1aDIifV0sWyJwYXRoIix7ZDoiTTMgMTVoMiJ9XSxbInBhdGgiLHtkOiJNOSAxNWgxIn1dXSxES3Q9W1sicmVjdCIse3dpZHRoOiIxOCIsaGVpZ2h0OiIxOCIseDoiMyIseToiMyIscng6IjIifV0sWyJwYXRoIix7ZDoiTTMgMTVoMTgifV0sWyJwYXRoIix7ZDoibTkgMTAgMy0zIDMgMyJ9XV0sRUt0PVtbInJlY3QiLHt3aWR0aDoiMTgiLGhlaWdodDoiMTgiLHg6IjMiLHk6IjMiLHJ4OiIyIn1dLFsicGF0aCIse2Q6Ik0zIDE1aDE4In1dXSxJST1bWyJyZWN0Iix7d2lkdGg6IjE4IixoZWlnaHQ6IjE4Iix4OiIzIix5OiIzIixyeDoiMiJ9XSxbInBhdGgiLHtkOiJNOSAzdjE4In1dLFsicGF0aCIse2Q6Im0xNiAxNS0zLTMgMy0zIn1dXSxQST1bWyJyZWN0Iix7d2lkdGg6IjE4IixoZWlnaHQ6IjE4Iix4OiIzIix5OiIzIixyeDoiMiJ9XSxbInBhdGgiLHtkOiJNOSAxNHYxIn1dLFsicGF0aCIse2Q6Ik05IDE5djIifV0sWyJwYXRoIix7ZDoiTTkgM3YyIn1dLFsicGF0aCIse2Q6Ik05IDl2MSJ9XV0sTkk9W1sicmVjdCIse3dpZHRoOiIxOCIsaGVpZ2h0OiIxOCIseDoiMyIseToiMyIscng6IjIifV0sWyJwYXRoIix7ZDoiTTkgM3YxOCJ9XSxbInBhdGgiLHtkOiJtMTQgOSAzIDMtMyAzIn1dXSwkS3Q9W1sicGF0aCIse2Q6Ik0xNSAxMFY5In1dLFsicGF0aCIse2Q6Ik0xNSAxNXYtMSJ9XSxbInBhdGgiLHtkOiJNMTUgMjF2LTIifV0sWyJwYXRoIix7ZDoiTTE1IDVWMyJ9XSxbInBhdGgiLHtkOiJNOSAxMFY5In1dLFsicGF0aCIse2Q6Ik05IDE1di0xIn1dLFsicGF0aCIse2Q6Ik05IDIxdi0yIn1dLFsicGF0aCIse2Q6Ik05IDVWMyJ9XSxbInJlY3QiLHt4OiIzIix5OiIzIix3aWR0aDoiMTgiLGhlaWdodDoiMTgiLHJ4OiIyIn1dXSxGST1bWyJyZWN0Iix7d2lkdGg6IjE4IixoZWlnaHQ6IjE4Iix4OiIzIix5OiIzIixyeDoiMiJ9XSxbInBhdGgiLHtkOiJNOSAzdjE4In1dXSxJS3Q9W1sicmVjdCIse3dpZHRoOiIxOCIsaGVpZ2h0OiIxOCIseDoiMyIseToiMyIscng6IjIifV0sWyJwYXRoIix7ZDoiTTE1IDN2MTgifV0sWyJwYXRoIix7ZDoibTggOSAzIDMtMyAzIn1dXSxPST1bWyJyZWN0Iix7d2lkdGg6IjE4IixoZWlnaHQ6IjE4Iix4OiIzIix5OiIzIixyeDoiMiJ9XSxbInBhdGgiLHtkOiJNMTUgMTR2MSJ9XSxbInBhdGgiLHtkOiJNMTUgMTl2MiJ9XSxbInBhdGgiLHtkOiJNMTUgM3YyIn1dLFsicGF0aCIse2Q6Ik0xNSA5djEifV1dLFBLdD1bWyJyZWN0Iix7d2lkdGg6IjE4IixoZWlnaHQ6IjE4Iix4OiIzIix5OiIzIixyeDoiMiJ9XSxbInBhdGgiLHtkOiJNMTUgM3YxOCJ9XSxbInBhdGgiLHtkOiJtMTAgMTUtMy0zIDMtMyJ9XV0sTkt0PVtbInJlY3QiLHt3aWR0aDoiMTgiLGhlaWdodDoiMTgiLHg6IjMiLHk6IjMiLHJ4OiIyIn1dLFsicGF0aCIse2Q6Ik0xNSAzdjE4In1dXSxGS3Q9W1sicGF0aCIse2Q6Ik0xNCAxNWgxIn1dLFsicGF0aCIse2Q6Ik0xNCA5aDEifV0sWyJwYXRoIix7ZDoiTTE5IDE1aDIifV0sWyJwYXRoIix7ZDoiTTE5IDloMiJ9XSxbInBhdGgiLHtkOiJNMyAxNWgyIn1dLFsicGF0aCIse2Q6Ik0zIDloMiJ9XSxbInBhdGgiLHtkOiJNOSAxNWgxIn1dLFsicGF0aCIse2Q6Ik05IDloMSJ9XSxbInJlY3QiLHt4OiIzIix5OiIzIix3aWR0aDoiMTgiLGhlaWdodDoiMTgiLHJ4OiIyIn1dXSxPS3Q9W1sicmVjdCIse3dpZHRoOiIxOCIsaGVpZ2h0OiIxOCIseDoiMyIseToiMyIscng6IjIifV0sWyJwYXRoIix7ZDoiTTMgOWgxOCJ9XSxbInBhdGgiLHtkOiJtOSAxNiAzLTMgMyAzIn1dXSxSST1bWyJyZWN0Iix7d2lkdGg6IjE4IixoZWlnaHQ6IjE4Iix4OiIzIix5OiIzIixyeDoiMiJ9XSxbInBhdGgiLHtkOiJNMTQgOWgxIn1dLFsicGF0aCIse2Q6Ik0xOSA5aDIifV0sWyJwYXRoIix7ZDoiTTMgOWgyIn1dLFsicGF0aCIse2Q6Ik05IDloMSJ9XV0sUkt0PVtbInJlY3QiLHt3aWR0aDoiMTgiLGhlaWdodDoiMTgiLHg6IjMiLHk6IjMiLHJ4OiIyIn1dLFsicGF0aCIse2Q6Ik0zIDloMTgifV0sWyJwYXRoIix7ZDoibTE1IDE0LTMgMy0zLTMifV1dLEJLdD1bWyJyZWN0Iix7d2lkdGg6IjE4IixoZWlnaHQ6IjE4Iix4OiIzIix5OiIzIixyeDoiMiJ9XSxbInBhdGgiLHtkOiJNMyA5aDE4In1dXSxIS3Q9W1sicmVjdCIse3dpZHRoOiIxOCIsaGVpZ2h0OiIxOCIseDoiMyIseToiMyIscng6IjIifV0sWyJwYXRoIix7ZDoiTTkgM3YxOCJ9XSxbInBhdGgiLHtkOiJNOSAxNWgxMiJ9XV0scUt0PVtbInJlY3QiLHt3aWR0aDoiMTgiLGhlaWdodDoiMTgiLHg6IjMiLHk6IjMiLHJ4OiIyIn1dLFsicGF0aCIse2Q6Ik0zIDE1aDEyIn1dLFsicGF0aCIse2Q6Ik0xNSAzdjE4In1dXSxCST1bWyJyZWN0Iix7d2lkdGg6IjE4IixoZWlnaHQ6IjE4Iix4OiIzIix5OiIzIixyeDoiMiJ9XSxbInBhdGgiLHtkOiJNMyA5aDE4In1dLFsicGF0aCIse2Q6Ik05IDIxVjkifV1dLGpLdD1bWyJwYXRoIix7ZDoibTE2IDYtOC40MTQgOC41ODZhMiAyIDAgMCAwIDIuODI5IDIuODI5bDguNDE0LTguNTg2YTQgNCAwIDEgMC01LjY1Ny01LjY1N2wtOC4zNzkgOC41NTFhNiA2IDAgMSAwIDguNDg1IDguNDg1bDguMzc5LTguNTUxIn1dXSxWS3Q9W1sicGF0aCIse2Q6Ik04IDIxcy00LTMtNC05IDQtOSA0LTkifV0sWyJwYXRoIix7ZDoiTTE2IDNzNCAzIDQgOS00IDktNCA5In1dXSxVS3Q9W1sicGF0aCIse2Q6Ik0xMSAxNWgyIn1dLFsicGF0aCIse2Q6Ik0xMiAxMnYzIn1dLFsicGF0aCIse2Q6Ik0xMiAxOXYzIn1dLFsicGF0aCIse2Q6Ik0xNS4yODIgMTlhMSAxIDAgMCAwIC45NDgtLjY4bDIuMzctNi45ODhhNyA3IDAgMSAwLTEzLjIgMGwyLjM3IDYuOTg4YTEgMSAwIDAgMCAuOTQ4LjY4eiJ9XSxbInBhdGgiLHtkOiJNOSA5YTMgMyAwIDEgMSA2IDAifV1dLFdLdD1bWyJwYXRoIix7ZDoiTTUuOCAxMS4zIDIgMjJsMTAuNy0zLjc5In1dLFsicGF0aCIse2Q6Ik00IDNoLjAxIn1dLFsicGF0aCIse2Q6Ik0yMiA4aC4wMSJ9XSxbInBhdGgiLHtkOiJNMTUgMmguMDEifV0sWyJwYXRoIix7ZDoiTTIyIDIwaC4wMSJ9XSxbInBhdGgiLHtkOiJtMjIgMi0yLjI0Ljc1YTIuOSAyLjkgMCAwIDAtMS45NiAzLjEyYy4xLjg2LS41NyAxLjYzLTEuNDUgMS42M2gtLjM4Yy0uODYgMC0xLjYuNi0xLjc2IDEuNDRMMTQgMTAifV0sWyJwYXRoIix7ZDoibTIyIDEzLS44Mi0uMzNjLS44Ni0uMzQtMS44Mi4yLTEuOTggMS4xMWMtLjExLjctLjcyIDEuMjItMS40MyAxLjIySDE3In1dLFsicGF0aCIse2Q6Im0xMSAyIC4zMy44MmMuMzQuODYtLjIgMS44Mi0xLjExIDEuOThDOS41MiA0LjkgOSA1LjUyIDkgNi4yM1Y3In1dLFsicGF0aCIse2Q6Ik0xMSAxM2MxLjkzIDEuOTMgMi44MyA0LjE3IDIgNS0uODMuODMtMy4wNy0uMDctNS0yLTEuOTMtMS45My0yLjgzLTQuMTctMi01IC44My0uODMgMy4wNy4wNyA1IDJaIn1dXSxHS3Q9W1sicmVjdCIse3g6IjE0Iix5OiIzIix3aWR0aDoiNSIsaGVpZ2h0OiIxOCIscng6IjEifV0sWyJyZWN0Iix7eDoiNSIseToiMyIsd2lkdGg6IjUiLGhlaWdodDoiMTgiLHJ4OiIxIn1dXSxZS3Q9W1siY2lyY2xlIix7Y3g6IjExIixjeToiNCIscjoiMiJ9XSxbImNpcmNsZSIse2N4OiIxOCIsY3k6IjgiLHI6IjIifV0sWyJjaXJjbGUiLHtjeDoiMjAiLGN5OiIxNiIscjoiMiJ9XSxbInBhdGgiLHtkOiJNOSAxMGE1IDUgMCAwIDEgNSA1djMuNWEzLjUgMy41IDAgMCAxLTYuODQgMS4wNDVRNi41MiAxNy40OCA0LjQ2IDE2Ljg0QTMuNSAzLjUgMCAwIDEgNS41IDEwWiJ9XV0sWkt0PVtbInJlY3QiLHt3aWR0aDoiMTQiLGhlaWdodDoiMjAiLHg6IjUiLHk6IjIiLHJ4OiIyIn1dLFsicGF0aCIse2Q6Ik0xNSAxNGguMDEifV0sWyJwYXRoIix7ZDoiTTkgNmg2In1dLFsicGF0aCIse2Q6Ik05IDEwaDYifV1dLEhJPVtbInBhdGgiLHtkOiJNMTMgMjFoOCJ9XSxbInBhdGgiLHtkOiJNMjEuMTc0IDYuODEyYTEgMSAwIDAgMC0zLjk4Ni0zLjk4N0wzLjg0MiAxNi4xNzRhMiAyIDAgMCAwLS41LjgzbC0xLjMyMSA0LjM1MmEuNS41IDAgMCAwIC42MjMuNjIybDQuMzUzLTEuMzJhMiAyIDAgMCAwIC44My0uNDk3eiJ9XV0sWEt0PVtbInBhdGgiLHtkOiJtMTAgMTAtNi4xNTcgNi4xNjJhMiAyIDAgMCAwLS41LjgzM2wtMS4zMjIgNC4zNmEuNS41IDAgMCAwIC42MjIuNjI0bDQuMzU4LTEuMzIzYTIgMiAwIDAgMCAuODMtLjVMMTQgMTMuOTgyIn1dLFsicGF0aCIse2Q6Im0xMi44MjkgNy4xNzIgNC4zNTktNC4zNDZhMSAxIDAgMSAxIDMuOTg2IDMuOTg2bC00LjM1MyA0LjM1MyJ9XSxbInBhdGgiLHtkOiJtMiAyIDIwIDIwIn1dXSxRS3Q9W1sicGF0aCIse2Q6Ik0xNS43MDcgMjEuMjkzYTEgMSAwIDAgMS0xLjQxNCAwbC0xLjU4Ni0xLjU4NmExIDEgMCAwIDEgMC0xLjQxNGw1LjU4Ni01LjU4NmExIDEgMCAwIDEgMS40MTQgMGwxLjU4NiAxLjU4NmExIDEgMCAwIDEgMCAxLjQxNHoifV0sWyJwYXRoIix7ZDoibTE4IDEzLTEuMzc1LTYuODc0YTEgMSAwIDAgMC0uNzQ2LS43NzZMMy4yMzUgMi4wMjhhMSAxIDAgMCAwLTEuMjA3IDEuMjA3TDUuMzUgMTUuODc5YTEgMSAwIDAgMCAuNzc2Ljc0NkwxMyAxOCJ9XSxbInBhdGgiLHtkOiJtMi4zIDIuMyA3LjI4NiA3LjI4NiJ9XSxbImNpcmNsZSIse2N4OiIxMSIsY3k6IjExIixyOiIyIn1dXSxxST1bWyJwYXRoIix7ZDoiTTIxLjE3NCA2LjgxMmExIDEgMCAwIDAtMy45ODYtMy45ODdMMy44NDIgMTYuMTc0YTIgMiAwIDAgMC0uNS44M2wtMS4zMjEgNC4zNTJhLjUuNSAwIDAgMCAuNjIzLjYyMmw0LjM1My0xLjMyYTIgMiAwIDAgMCAuODMtLjQ5N3oifV1dLEpLdD1bWyJwYXRoIix7ZDoiTTEzIDIxaDgifV0sWyJwYXRoIix7ZDoibTE1IDUgNCA0In1dLFsicGF0aCIse2Q6Ik0yMS4xNzQgNi44MTJhMSAxIDAgMCAwLTMuOTg2LTMuOTg3TDMuODQyIDE2LjE3NGEyIDIgMCAwIDAtLjUuODNsLTEuMzIxIDQuMzUyYS41LjUgMCAwIDAgLjYyMy42MjJsNC4zNTMtMS4zMmEyIDIgMCAwIDAgLjgzLS40OTd6In1dXSxLS3Q9W1sicGF0aCIse2Q6Im0xMCAxMC02LjE1NyA2LjE2MmEyIDIgMCAwIDAtLjUuODMzbC0xLjMyMiA0LjM2YS41LjUgMCAwIDAgLjYyMi42MjRsNC4zNTgtMS4zMjNhMiAyIDAgMCAwIC44My0uNUwxNCAxMy45ODIifV0sWyJwYXRoIix7ZDoibTEyLjgyOSA3LjE3MiA0LjM1OS00LjM0NmExIDEgMCAxIDEgMy45ODYgMy45ODZsLTQuMzUzIDQuMzUzIn1dLFsicGF0aCIse2Q6Im0xNSA1IDQgNCJ9XSxbInBhdGgiLHtkOiJtMiAyIDIwIDIwIn1dXSxlZXI9W1sicGF0aCIse2Q6Ik0xMyA3IDguNyAyLjdhMi40MSAyLjQxIDAgMCAwLTMuNCAwTDIuNyA1LjNhMi40MSAyLjQxIDAgMCAwIDAgMy40TDcgMTMifV0sWyJwYXRoIix7ZDoibTggNiAyLTIifV0sWyJwYXRoIix7ZDoibTE4IDE2IDItMiJ9XSxbInBhdGgiLHtkOiJtMTcgMTEgNC4zIDQuM2MuOTQuOTQuOTQgMi40NiAwIDMuNGwtMi42IDIuNmMtLjk0Ljk0LTIuNDYuOTQtMy40IDBMMTEgMTcifV0sWyJwYXRoIix7ZDoiTTIxLjE3NCA2LjgxMmExIDEgMCAwIDAtMy45ODYtMy45ODdMMy44NDIgMTYuMTc0YTIgMiAwIDAgMC0uNS44M2wtMS4zMjEgNC4zNTJhLjUuNSAwIDAgMCAuNjIzLjYyMmw0LjM1My0xLjMyYTIgMiAwIDAgMCAuODMtLjQ5N3oifV0sWyJwYXRoIix7ZDoibTE1IDUgNCA0In1dXSx0ZXI9W1sicGF0aCIse2Q6Ik0xMC44MyAyLjM4YTIgMiAwIDAgMSAyLjM0IDBsOCA1Ljc0YTIgMiAwIDAgMSAuNzMgMi4yNWwtMy4wNCA5LjI2YTIgMiAwIDAgMS0xLjkgMS4zN0g3LjA0YTIgMiAwIDAgMS0xLjktMS4zN0wyLjEgMTAuMzdhMiAyIDAgMCAxIC43My0yLjI1eiJ9XV0scmVyPVtbInBhdGgiLHtkOiJNMjEuMTc0IDYuODEyYTEgMSAwIDAgMC0zLjk4Ni0zLjk4N0wzLjg0MiAxNi4xNzRhMiAyIDAgMCAwLS41LjgzbC0xLjMyMSA0LjM1MmEuNS41IDAgMCAwIC42MjMuNjIybDQuMzUzLTEuMzJhMiAyIDAgMCAwIC44My0uNDk3eiJ9XSxbInBhdGgiLHtkOiJtMTUgNSA0IDQifV1dLGllcj1bWyJsaW5lIix7eDE6IjE5Iix4MjoiNSIseTE6IjUiLHkyOiIxOSJ9XSxbImNpcmNsZSIse2N4OiI2LjUiLGN5OiI2LjUiLHI6IjIuNSJ9XSxbImNpcmNsZSIse2N4OiIxNy41IixjeToiMTcuNSIscjoiMi41In1dXSxhZXI9W1siY2lyY2xlIix7Y3g6IjEyIixjeToiNSIscjoiMSJ9XSxbInBhdGgiLHtkOiJtOSAyMCAzLTYgMyA2In1dLFsicGF0aCIse2Q6Im02IDggNiAyIDYtMiJ9XSxbInBhdGgiLHtkOiJNMTIgMTB2NCJ9XV0sbmVyPVtbInBhdGgiLHtkOiJNMjAgMTFINCJ9XSxbInBhdGgiLHtkOiJNMjAgN0g0In1dLFsicGF0aCIse2Q6Ik03IDIxVjRhMSAxIDAgMCAxIDEtMWg0YTEgMSAwIDAgMSAwIDEySDcifV1dLG9lcj1bWyJwYXRoIix7ZDoiTTEzIDJhOSA5IDAgMCAxIDkgOSJ9XSxbInBhdGgiLHtkOiJNMTMgNmE1IDUgMCAwIDEgNSA1In1dLFsicGF0aCIse2Q6Ik0xMy44MzIgMTYuNTY4YTEgMSAwIDAgMCAxLjIxMy0uMzAzbC4zNTUtLjQ2NUEyIDIgMCAwIDEgMTcgMTVoM2EyIDIgMCAwIDEgMiAydjNhMiAyIDAgMCAxLTIgMkExOCAxOCAwIDAgMSAyIDRhMiAyIDAgMCAxIDItMmgzYTIgMiAwIDAgMSAyIDJ2M2EyIDIgMCAwIDEtLjggMS42bC0uNDY4LjM1MWExIDEgMCAwIDAtLjI5MiAxLjIzMyAxNCAxNCAwIDAgMCA2LjM5MiA2LjM4NCJ9XV0sc2VyPVtbInBhdGgiLHtkOiJNMTQgNmg4In1dLFsicGF0aCIse2Q6Im0xOCAyIDQgNC00IDQifV0sWyJwYXRoIix7ZDoiTTEzLjgzMiAxNi41NjhhMSAxIDAgMCAwIDEuMjEzLS4zMDNsLjM1NS0uNDY1QTIgMiAwIDAgMSAxNyAxNWgzYTIgMiAwIDAgMSAyIDJ2M2EyIDIgMCAwIDEtMiAyQTE4IDE4IDAgMCAxIDIgNGEyIDIgMCAwIDEgMi0yaDNhMiAyIDAgMCAxIDIgMnYzYTIgMiAwIDAgMS0uOCAxLjZsLS40NjguMzUxYTEgMSAwIDAgMC0uMjkyIDEuMjMzIDE0IDE0IDAgMCAwIDYuMzkyIDYuMzg0In1dXSxsZXI9W1sicGF0aCIse2Q6Ik0xNiAydjZoNiJ9XSxbInBhdGgiLHtkOiJtMjIgMi02IDYifV0sWyJwYXRoIix7ZDoiTTEzLjgzMiAxNi41NjhhMSAxIDAgMCAwIDEuMjEzLS4zMDNsLjM1NS0uNDY1QTIgMiAwIDAgMSAxNyAxNWgzYTIgMiAwIDAgMSAyIDJ2M2EyIDIgMCAwIDEtMiAyQTE4IDE4IDAgMCAxIDIgNGEyIDIgMCAwIDEgMi0yaDNhMiAyIDAgMCAxIDIgMnYzYTIgMiAwIDAgMS0uOCAxLjZsLS40NjguMzUxYTEgMSAwIDAgMC0uMjkyIDEuMjMzIDE0IDE0IDAgMCAwIDYuMzkyIDYuMzg0In1dXSxjZXI9W1sicGF0aCIse2Q6Im0xNiAyIDYgNiJ9XSxbInBhdGgiLHtkOiJtMjIgMi02IDYifV0sWyJwYXRoIix7ZDoiTTEzLjgzMiAxNi41NjhhMSAxIDAgMCAwIDEuMjEzLS4zMDNsLjM1NS0uNDY1QTIgMiAwIDAgMSAxNyAxNWgzYTIgMiAwIDAgMSAyIDJ2M2EyIDIgMCAwIDEtMiAyQTE4IDE4IDAgMCAxIDIgNGEyIDIgMCAwIDEgMi0yaDNhMiAyIDAgMCAxIDIgMnYzYTIgMiAwIDAgMS0uOCAxLjZsLS40NjguMzUxYTEgMSAwIDAgMC0uMjkyIDEuMjMzIDE0IDE0IDAgMCAwIDYuMzkyIDYuMzg0In1dXSxkZXI9W1sicGF0aCIse2Q6Ik0xMC4xIDEzLjlhMTQgMTQgMCAwIDAgMy43MzIgMi42NjggMSAxIDAgMCAwIDEuMjEzLS4zMDNsLjM1NS0uNDY1QTIgMiAwIDAgMSAxNyAxNWgzYTIgMiAwIDAgMSAyIDJ2M2EyIDIgMCAwIDEtMiAyIDE4IDE4IDAgMCAxLTEyLjcyOC01LjI3MiJ9XSxbInBhdGgiLHtkOiJNMjIgMiAyIDIyIn1dLFsicGF0aCIse2Q6Ik00Ljc2IDEzLjU4MkExOCAxOCAwIDAgMSAyIDRhMiAyIDAgMCAxIDItMmgzYTIgMiAwIDAgMSAyIDJ2M2EyIDIgMCAwIDEtLjggMS42bC0uNDY4LjM1MWExIDEgMCAwIDAtLjI5MiAxLjIzMyAxNCAxNCAwIDAgMCAuMjQ0LjQ3MyJ9XV0sdWVyPVtbInBhdGgiLHtkOiJtMTYgOCA2LTYifV0sWyJwYXRoIix7ZDoiTTIyIDhWMmgtNiJ9XSxbInBhdGgiLHtkOiJNMTMuODMyIDE2LjU2OGExIDEgMCAwIDAgMS4yMTMtLjMwM2wuMzU1LS40NjVBMiAyIDAgMCAxIDE3IDE1aDNhMiAyIDAgMCAxIDIgMnYzYTIgMiAwIDAgMS0yIDJBMTggMTggMCAwIDEgMiA0YTIgMiAwIDAgMSAyLTJoM2EyIDIgMCAwIDEgMiAydjNhMiAyIDAgMCAxLS44IDEuNmwtLjQ2OC4zNTFhMSAxIDAgMCAwLS4yOTIgMS4yMzMgMTQgMTQgMCAwIDAgNi4zOTIgNi4zODQifV1dLHBlcj1bWyJwYXRoIix7ZDoiTTEzLjgzMiAxNi41NjhhMSAxIDAgMCAwIDEuMjEzLS4zMDNsLjM1NS0uNDY1QTIgMiAwIDAgMSAxNyAxNWgzYTIgMiAwIDAgMSAyIDJ2M2EyIDIgMCAwIDEtMiAyQTE4IDE4IDAgMCAxIDIgNGEyIDIgMCAwIDEgMi0yaDNhMiAyIDAgMCAxIDIgMnYzYTIgMiAwIDAgMS0uOCAxLjZsLS40NjguMzUxYTEgMSAwIDAgMC0uMjkyIDEuMjMzIDE0IDE0IDAgMCAwIDYuMzkyIDYuMzg0In1dXSxoZXI9W1sibGluZSIse3gxOiI5Iix4MjoiOSIseTE6IjQiLHkyOiIyMCJ9XSxbInBhdGgiLHtkOiJNNCA3YzAtMS43IDEuMy0zIDMtM2gxMyJ9XSxbInBhdGgiLHtkOiJNMTggMjBjLTEuNyAwLTMtMS4zLTMtM1Y0In1dXSxmZXI9W1sicGF0aCIse2Q6Ik0xOC41IDhjLTEuNCAwLTIuNi0uOC0zLjItMkE2Ljg3IDYuODcgMCAwIDAgMiA5djExYTIgMiAwIDAgMCAyIDJoMTZhMiAyIDAgMCAwIDItMnYtOC41QzIyIDkuNiAyMC40IDggMTguNSA4In1dLFsicGF0aCIse2Q6Ik0yIDE0aDIwIn1dLFsicGF0aCIse2Q6Ik02IDE0djQifV0sWyJwYXRoIix7ZDoiTTEwIDE0djQifV0sWyJwYXRoIix7ZDoiTTE0IDE0djQifV0sWyJwYXRoIix7ZDoiTTE4IDE0djQifV1dLG1lcj1bWyJwYXRoIix7ZDoibTE0IDEzLTguMzgxIDguMzhhMSAxIDAgMCAxLTMuMDAxLTNMMTEgOS45OTkifV0sWyJwYXRoIix7ZDoiTTE1Ljk3MyA0LjAyN0ExMyAxMyAwIDAgMCA1LjkwMiAyLjM3M2MtMS4zOTguMzQyLTEuMDkyIDIuMTU4LjI3NyAyLjYwMWExOS45IDE5LjkgMCAwIDEgNS44MjIgMy4wMjQifV0sWyJwYXRoIix7ZDoiTTE2LjAwMSAxMS45OTlhMTkuOSAxOS45IDAgMCAxIDMuMDI0IDUuODI0Yy40NDQgMS4zNjkgMi4yNiAxLjY3NiAyLjYwMy4yNzhBMTMgMTMgMCAwIDAgMjAgOC4wNjkifV0sWyJwYXRoIix7ZDoiTTE4LjM1MiAzLjM1MmExLjIwNSAxLjIwNSAwIDAgMC0xLjcwNCAwbC01LjI5NiA1LjI5NmExLjIwNSAxLjIwNSAwIDAgMCAwIDEuNzA0bDIuMjk2IDIuMjk2YTEuMjA1IDEuMjA1IDAgMCAwIDEuNzA0IDBsNS4yOTYtNS4yOTZhMS4yMDUgMS4yMDUgMCAwIDAgMC0xLjcwNHoifV1dLGdlcj1bWyJwYXRoIix7ZDoiTTIxIDlWNmEyIDIgMCAwIDAtMi0ySDRhMiAyIDAgMCAwLTIgMnYxMGMwIDEuMS45IDIgMiAyaDQifV0sWyJyZWN0Iix7d2lkdGg6IjEwIixoZWlnaHQ6IjciLHg6IjEyIix5OiIxMyIscng6IjIifV1dLGJlcj1bWyJwYXRoIix7ZDoiTTExIDE3aDN2MmExIDEgMCAwIDAgMSAxaDJhMSAxIDAgMCAwIDEtMXYtM2EzLjE2IDMuMTYgMCAwIDAgMi0yaDFhMSAxIDAgMCAwIDEtMXYtMmExIDEgMCAwIDAtMS0xaC0xYTUgNSAwIDAgMC0yLTRWM2E0IDQgMCAwIDAtMy4yIDEuNmwtLjMuNEgxMWE2IDYgMCAwIDAtNiA2djFhNSA1IDAgMCAwIDIgNHYzYTEgMSAwIDAgMCAxIDFoMmExIDEgMCAwIDAgMS0xeiJ9XSxbInBhdGgiLHtkOiJNMTYgMTBoLjAxIn1dLFsicGF0aCIse2Q6Ik0yIDh2MWEyIDIgMCAwIDAgMiAyaDEifV1dLHZlcj1bWyJwYXRoIix7ZDoiTTIgMTBoNlY0In1dLFsicGF0aCIse2Q6Im0yIDQgNiA2In1dLFsicGF0aCIse2Q6Ik0yMSAxMFY3YTIgMiAwIDAgMC0yLTJoLTcifV0sWyJwYXRoIix7ZDoiTTMgMTR2MmEyIDIgMCAwIDAgMiAyaDMifV0sWyJyZWN0Iix7eDoiMTIiLHk6IjE0Iix3aWR0aDoiMTAiLGhlaWdodDoiNyIscng6IjEifV1dLHhlcj1bWyJwYXRoIix7ZDoiTTE0IDN2MTEifV0sWyJwYXRoIix7ZDoiTTE0IDloLTNhMyAzIDAgMCAxIDAtNmg5In1dLFsicGF0aCIse2Q6Ik0xOCAzdjExIn1dLFsicGF0aCIse2Q6Ik0yMiAxOEgybDQtNCJ9XSxbInBhdGgiLHtkOiJtNiAyMi00LTQifV1dLHllcj1bWyJwYXRoIix7ZDoiTTEwIDN2MTEifV0sWyJwYXRoIix7ZDoiTTEwIDlIN2ExIDEgMCAwIDEgMC02aDgifV0sWyJwYXRoIix7ZDoiTTE0IDN2MTEifV0sWyJwYXRoIix7ZDoibTE4IDE0IDQgNEgyIn1dLFsicGF0aCIse2Q6Im0yMiAxOC00IDQifV1dLHdlcj1bWyJwYXRoIix7ZDoiTTEzIDR2MTYifV0sWyJwYXRoIix7ZDoiTTE3IDR2MTYifV0sWyJwYXRoIix7ZDoiTTE5IDRIOS41YTQuNSA0LjUgMCAwIDAgMCA5SDEzIn1dXSxNZXI9W1sicGF0aCIse2Q6Ik0xOCAxMWgtNGExIDEgMCAwIDAtMSAxdjVhMSAxIDAgMCAwIDEgMWg0In1dLFsicGF0aCIse2Q6Ik02IDd2MTNhMiAyIDAgMCAwIDIgMmg4YTIgMiAwIDAgMCAyLTJWNyJ9XSxbInJlY3QiLHt3aWR0aDoiMTYiLGhlaWdodDoiNSIseDoiNCIseToiMiIscng6IjEifV1dLGtlcj1bWyJwYXRoIix7ZDoibTEwLjUgMjAuNSAxMC0xMGE0Ljk1IDQuOTUgMCAxIDAtNy03bC0xMCAxMGE0Ljk1IDQuOTUgMCAxIDAgNyA3WiJ9XSxbInBhdGgiLHtkOiJtOC41IDguNSA3IDcifV1dLFNlcj1bWyJwYXRoIix7ZDoiTTEyIDE3djUifV0sWyJwYXRoIix7ZDoiTTE1IDkuMzRWN2ExIDEgMCAwIDEgMS0xIDIgMiAwIDAgMCAwLTRINy44OSJ9XSxbInBhdGgiLHtkOiJtMiAyIDIwIDIwIn1dLFsicGF0aCIse2Q6Ik05IDl2MS43NmEyIDIgMCAwIDEtMS4xMSAxLjc5bC0xLjc4LjlBMiAyIDAgMCAwIDUgMTUuMjRWMTZhMSAxIDAgMCAwIDEgMWgxMSJ9XV0semVyPVtbInBhdGgiLHtkOiJNMTIgMTd2NSJ9XSxbInBhdGgiLHtkOiJNOSAxMC43NmEyIDIgMCAwIDEtMS4xMSAxLjc5bC0xLjc4LjlBMiAyIDAgMCAwIDUgMTUuMjRWMTZhMSAxIDAgMCAwIDEgMWgxMmExIDEgMCAwIDAgMS0xdi0uNzZhMiAyIDAgMCAwLTEuMTEtMS43OWwtMS43OC0uOUEyIDIgMCAwIDEgMTUgMTAuNzZWN2ExIDEgMCAwIDEgMS0xIDIgMiAwIDAgMCAwLTRIOGEyIDIgMCAwIDAgMCA0IDEgMSAwIDAgMSAxIDF6In1dXSxDZXI9W1sicGF0aCIse2Q6Im0xMiA5LTguNDE0IDguNDE0QTIgMiAwIDAgMCAzIDE4LjgyOHYxLjM0NGEyIDIgMCAwIDEtLjU4NiAxLjQxNEEyIDIgMCAwIDEgMy44MjggMjFoMS4zNDRhMiAyIDAgMCAwIDEuNDE0LS41ODZMMTUgMTIifV0sWyJwYXRoIix7ZDoibTE4IDkgLjQuNGExIDEgMCAxIDEtMyAzbC0zLjgtMy44YTEgMSAwIDEgMSAzLTNsLjQuNCAzLjQtMy40YTEgMSAwIDEgMSAzIDN6In1dLFsicGF0aCIse2Q6Im0yIDIyIC40MTQtLjQxNCJ9XV0sVGVyPVtbInBhdGgiLHtkOiJtMTIgMTQtMSAxIn1dLFsicGF0aCIse2Q6Im0xMy43NSAxOC4yNS0xLjI1IDEuNDIifV0sWyJwYXRoIix7ZDoiTTE3Ljc3NSA1LjY1NGExNS42OCAxNS42OCAwIDAgMC0xMi4xMjEgMTIuMTIifV0sWyJwYXRoIix7ZDoiTTE4LjggOS4zYTEgMSAwIDAgMCAyLjEgNy43In1dLFsicGF0aCIse2Q6Ik0yMS45NjQgMjAuNzMyYTEgMSAwIDAgMS0xLjIzMiAxLjIzMmwtMTgtNWExIDEgMCAwIDEtLjY5NS0xLjIzMkExOS42OCAxOS42OCAwIDAgMSAxNS43MzIgMi4wMzdhMSAxIDAgMCAxIDEuMjMyLjY5NXoifV1dLF9lcj1bWyJwYXRoIix7ZDoiTTIgMjJoMjAifV0sWyJwYXRoIix7ZDoiTTMuNzcgMTAuNzcgMiA5bDItNC41IDEuMS41NWMuNTUuMjguOS44NC45IDEuNDVzLjM1IDEuMTcuOSAxLjQ1TDggOC41bDMtNiAxLjA1LjUzYTIgMiAwIDAgMSAxLjA5IDEuNTJsLjcyIDUuNGEyIDIgMCAwIDAgMS4wOSAxLjUybDQuNCAyLjJjLjQyLjIyLjc4LjU1IDEuMDEuOTZsLjYgMS4wM2MuNDkuODgtLjA2IDEuOTgtMS4wNiAyLjFsLTEuMTguMTVjLS40Ny4wNi0uOTUtLjAyLTEuMzctLjI0TDQuMjkgMTEuMTVhMiAyIDAgMCAxLS41Mi0uMzhaIn1dXSxMZXI9W1sicGF0aCIse2Q6Ik0yIDIyaDIwIn1dLFsicGF0aCIse2Q6Ik02LjM2IDE3LjQgNCAxN2wtMi00IDEuMS0uNTVhMiAyIDAgMCAxIDEuOCAwbC4xNy4xYTIgMiAwIDAgMCAxLjggMEw4IDEyIDUgNmwuOS0uNDVhMiAyIDAgMCAxIDIuMDkuMmw0LjAyIDNhMiAyIDAgMCAwIDIuMS4ybDQuMTktMi4wNmEyLjQxIDIuNDEgMCAwIDEgMS43My0uMTdMMjEgN2ExLjQgMS40IDAgMCAxIC44NyAxLjk5bC0uMzguNzZjLS4yMy40Ni0uNi44NC0xLjA3IDEuMDhMNy41OCAxNy4yYTIgMiAwIDAgMS0xLjIyLjE4WiJ9XV0sQWVyPVtbInBhdGgiLHtkOiJNMTcuOCAxOS4yIDE2IDExbDMuNS0zLjVDMjEgNiAyMS41IDQgMjEgM2MtMS0uNS0zIDAtNC41IDEuNUwxMyA4IDQuOCA2LjJjLS41LS4xLS45LjEtMS4xLjVsLS4zLjVjLS4yLjUtLjEgMSAuMyAxLjNMOSAxMmwtMiAzSDRsLTEgMSAzIDIgMiAzIDEtMXYtM2wzLTIgMy41IDUuM2MuMy40LjguNSAxLjMuM2wuNS0uMmMuNC0uMy42LS43LjUtMS4yeiJ9XV0sRGVyPVtbInBhdGgiLHtkOiJNNSA1YTIgMiAwIDAgMSAzLjAwOC0xLjcyOGwxMS45OTcgNi45OThhMiAyIDAgMCAxIC4wMDMgMy40NThsLTEyIDdBMiAyIDAgMCAxIDUgMTl6In1dXSxFZXI9W1sicGF0aCIse2Q6Ik05IDJ2NiJ9XSxbInBhdGgiLHtkOiJNMTUgMnY2In1dLFsicGF0aCIse2Q6Ik0xMiAxN3Y1In1dLFsicGF0aCIse2Q6Ik01IDhoMTQifV0sWyJwYXRoIix7ZDoiTTYgMTFWOGgxMnYzYTYgNiAwIDEgMS0xMiAwWiJ9XV0sakk9W1sicGF0aCIse2Q6Ik02LjMgMjAuM2EyLjQgMi40IDAgMCAwIDMuNCAwTDEyIDE4bC02LTYtMi4zIDIuM2EyLjQgMi40IDAgMCAwIDAgMy40WiJ9XSxbInBhdGgiLHtkOiJtMiAyMiAzLTMifV0sWyJwYXRoIix7ZDoiTTcuNSAxMy41IDEwIDExIn1dLFsicGF0aCIse2Q6Ik0xMC41IDE2LjUgMTMgMTQifV0sWyJwYXRoIix7ZDoibTE4IDMtNCA0aDZsLTQgNCJ9XV0sJGVyPVtbInBhdGgiLHtkOiJNMTIgMjJ2LTUifV0sWyJwYXRoIix7ZDoiTTE1IDhWMiJ9XSxbInBhdGgiLHtkOiJNMTcgOGExIDEgMCAwIDEgMSAxdjRhNCA0IDAgMCAxLTQgNGgtNGE0IDQgMCAwIDEtNC00VjlhMSAxIDAgMCAxIDEtMXoifV0sWyJwYXRoIix7ZDoiTTkgOFYyIn1dXSxJZXI9W1sicGF0aCIse2Q6Ik01IDEyaDE0In1dLFsicGF0aCIse2Q6Ik0xMiA1djE0In1dXSxQZXI9W1sicGF0aCIse2Q6Ik0zIDJ2MWMwIDEgMiAxIDIgMlMzIDYgMyA3czIgMSAyIDItMiAxLTIgMiAyIDEgMiAyIn1dLFsicGF0aCIse2Q6Ik0xOCA2aC4wMSJ9XSxbInBhdGgiLHtkOiJNNiAxOGguMDEifV0sWyJwYXRoIix7ZDoiTTIwLjgzIDguODNhNCA0IDAgMCAwLTUuNjYtNS42NmwtMTIgMTJhNCA0IDAgMSAwIDUuNjYgNS42NloifV0sWyJwYXRoIix7ZDoiTTE4IDExLjY2VjIyYTQgNCAwIDAgMCA0LTRWNiJ9XV0sTmVyPVtbInBhdGgiLHtkOiJNMTMgMTdhMSAxIDAgMSAwLTIgMGwuNSA0LjVhMC41IDAuNSAwIDAgMCAxIDB6IixmaWxsOiJjdXJyZW50Q29sb3IifV0sWyJwYXRoIix7ZDoiTTE2Ljg1IDE4LjU4YTkgOSAwIDEgMC05LjcgMCJ9XSxbInBhdGgiLHtkOiJNOCAxNGE1IDUgMCAxIDEgOCAwIn1dLFsiY2lyY2xlIix7Y3g6IjEyIixjeToiMTEiLHI6IjEiLGZpbGw6ImN1cnJlbnRDb2xvciJ9XV0sRmVyPVtbInBhdGgiLHtkOiJNMjAgM2EyIDIgMCAwIDEgMiAydjZhMSAxIDAgMCAxLTIwIDBWNWEyIDIgMCAwIDEgMi0yeiJ9XSxbInBhdGgiLHtkOiJtOCAxMCA0IDQgNC00In1dXSxPZXI9W1sicGF0aCIse2Q6Ik0xMCA0LjVWNGEyIDIgMCAwIDAtMi40MS0xLjk1NyJ9XSxbInBhdGgiLHtkOiJNMTMuOSA4LjRhMiAyIDAgMCAwLTEuMjYtMS4yOTUifV0sWyJwYXRoIix7ZDoiTTIxLjcgMTYuMkE4IDggMCAwIDAgMjIgMTR2LTNhMiAyIDAgMSAwLTQgMHYtMWEyIDIgMCAwIDAtMy42My0xLjE1OCJ9XSxbInBhdGgiLHtkOiJtNyAxNS0xLjgtMS44YTIgMiAwIDAgMC0yLjc5IDIuODZMNiAxOS43YTcuNzQgNy43NCAwIDAgMCA2IDIuM2gyYTggOCAwIDAgMCA1LjY1Ny0yLjM0MyJ9XSxbInBhdGgiLHtkOiJNNiA2djgifV0sWyJwYXRoIix7ZDoibTIgMiAyMCAyMCJ9XV0sUmVyPVtbInBhdGgiLHtkOiJNMjIgMTRhOCA4IDAgMCAxLTggOCJ9XSxbInBhdGgiLHtkOiJNMTggMTF2LTFhMiAyIDAgMCAwLTItMmEyIDIgMCAwIDAtMiAyIn1dLFsicGF0aCIse2Q6Ik0xNCAxMFY5YTIgMiAwIDAgMC0yLTJhMiAyIDAgMCAwLTIgMnYxIn1dLFsicGF0aCIse2Q6Ik0xMCA5LjVWNGEyIDIgMCAwIDAtMi0yYTIgMiAwIDAgMC0yIDJ2MTAifV0sWyJwYXRoIix7ZDoiTTE4IDExYTIgMiAwIDEgMSA0IDB2M2E4IDggMCAwIDEtOCA4aC0yYy0yLjggMC00LjUtLjg2LTUuOTktMi4zNGwtMy42LTMuNmEyIDIgMCAwIDEgMi44My0yLjgyTDcgMTUifV1dLEJlcj1bWyJwYXRoIix7ZDoiTTE4IDhhMiAyIDAgMCAwIDAtNCAyIDIgMCAwIDAtNCAwIDIgMiAwIDAgMC00IDAgMiAyIDAgMCAwLTQgMCAyIDIgMCAwIDAgMCA0In1dLFsicGF0aCIse2Q6Ik0xMCAyMiA5IDgifV0sWyJwYXRoIix7ZDoibTE0IDIyIDEtMTQifV0sWyJwYXRoIix7ZDoiTTIwIDhjLjUgMCAuOS40LjggMWwtMi42IDEyYy0uMS41LS43IDEtMS4yIDFIN2MtLjYgMC0xLjEtLjQtMS4yLTFMMy4yIDljLS4xLS42LjMtMSAuOC0xWiJ9XV0sSGVyPVtbInBhdGgiLHtkOiJNMTguNiAxNC40Yy44LS44LjgtMiAwLTIuOGwtOC4xLTguMWE0Ljk1IDQuOTUgMCAxIDAtNy4xIDcuMWw4LjEgOC4xYy45LjcgMi4xLjcgMi45LS4xWiJ9XSxbInBhdGgiLHtkOiJtMjIgMjItNS41LTUuNSJ9XV0scWVyPVtbInBhdGgiLHtkOiJNMTggN2MwLTUuMzMzLTgtNS4zMzMtOCAwIn1dLFsicGF0aCIse2Q6Ik0xMCA3djE0In1dLFsicGF0aCIse2Q6Ik02IDIxaDEyIn1dLFsicGF0aCIse2Q6Ik02IDEzaDEwIn1dXSxqZXI9W1sicGF0aCIse2Q6Ik0xOC4zNiA2LjY0QTkgOSAwIDAgMSAyMC43NyAxNSJ9XSxbInBhdGgiLHtkOiJNNi4xNiA2LjE2YTkgOSAwIDEgMCAxMi42OCAxMi42OCJ9XSxbInBhdGgiLHtkOiJNMTIgMnY0In1dLFsicGF0aCIse2Q6Im0yIDIgMjAgMjAifV1dLFZlcj1bWyJwYXRoIix7ZDoiTTEyIDJ2MTAifV0sWyJwYXRoIix7ZDoiTTE4LjQgNi42YTkgOSAwIDEgMS0xMi43Ny4wNCJ9XV0sVWVyPVtbInBhdGgiLHtkOiJNMTMuNSAyMkg3YTEgMSAwIDAgMS0xLTF2LTZhMSAxIDAgMCAxIDEtMWgxMGExIDEgMCAwIDEgMSAxdi41In1dLFsicGF0aCIse2Q6Im0xNiAxOSAyIDIgNC00In1dLFsicGF0aCIse2Q6Ik02IDE4SDRhMiAyIDAgMCAxLTItMnYtNWEyIDIgMCAwIDEgMi0yaDE2YTIgMiAwIDAgMSAyIDJ2MiJ9XSxbInBhdGgiLHtkOiJNNiA5VjNhMSAxIDAgMCAxIDEtMWgxMGExIDEgMCAwIDEgMSAxdjYifV1dLFdlcj1bWyJwYXRoIix7ZDoiTTIgM2gyMCJ9XSxbInBhdGgiLHtkOiJNMjEgM3YxMWEyIDIgMCAwIDEtMiAySDVhMiAyIDAgMCAxLTItMlYzIn1dLFsicGF0aCIse2Q6Im03IDIxIDUtNSA1IDUifV1dLEdlcj1bWyJwYXRoIix7ZDoiTTEyLjUzMSAyMkg3YTEgMSAwIDAgMS0xLTF2LTZhMSAxIDAgMCAxIDEtMWg2LjM3NyJ9XSxbInBhdGgiLHtkOiJtMTYuNSAxNi41IDUgNSJ9XSxbInBhdGgiLHtkOiJtMTYuNSAyMS41IDUtNSJ9XSxbInBhdGgiLHtkOiJNNiAxOEg0YTIgMiAwIDAgMS0yLTJ2LTVhMiAyIDAgMCAxIDItMmgxNmEyIDIgMCAwIDEgMiAydjEuNSJ9XSxbInBhdGgiLHtkOiJNNiA5VjNhMSAxIDAgMCAxIDEtMWgxMGExIDEgMCAwIDEgMSAxdjYifV1dLFllcj1bWyJwYXRoIix7ZDoiTTYgMThINGEyIDIgMCAwIDEtMi0ydi01YTIgMiAwIDAgMSAyLTJoMTZhMiAyIDAgMCAxIDIgMnY1YTIgMiAwIDAgMS0yIDJoLTIifV0sWyJwYXRoIix7ZDoiTTYgOVYzYTEgMSAwIDAgMSAxLTFoMTBhMSAxIDAgMCAxIDEgMXY2In1dLFsicmVjdCIse3g6IjYiLHk6IjE0Iix3aWR0aDoiMTIiLGhlaWdodDoiOCIscng6IjEifV1dLFplcj1bWyJwYXRoIix7ZDoiTTUgNyAzIDUifV0sWyJwYXRoIix7ZDoiTTkgNlYzIn1dLFsicGF0aCIse2Q6Im0xMyA3IDItMiJ9XSxbImNpcmNsZSIse2N4OiI5IixjeToiMTMiLHI6IjMifV0sWyJwYXRoIix7ZDoiTTExLjgzIDEySDIwYTIgMiAwIDAgMSAyIDJ2NGEyIDIgMCAwIDEtMiAySDRhMiAyIDAgMCAxLTItMnYtNGEyIDIgMCAwIDEgMi0yaDIuMTcifV0sWyJwYXRoIix7ZDoiTTE2IDE2aDIifV1dLFhlcj1bWyJyZWN0Iix7d2lkdGg6IjIwIixoZWlnaHQ6IjE2Iix4OiIyIix5OiI0IixyeDoiMiJ9XSxbInBhdGgiLHtkOiJNMTIgOXYxMSJ9XSxbInBhdGgiLHtkOiJNMiA5aDEzYTIgMiAwIDAgMSAyIDJ2OSJ9XV0sUWVyPVtbInBhdGgiLHtkOiJNMTUuMzkgNC4zOWExIDEgMCAwIDAgMS42OC0uNDc0IDIuNSAyLjUgMCAxIDEgMy4wMTQgMy4wMTUgMSAxIDAgMCAwLS40NzQgMS42OGwxLjY4MyAxLjY4MmEyLjQxNCAyLjQxNCAwIDAgMSAwIDMuNDE0TDE5LjYxIDE1LjM5YTEgMSAwIDAgMS0xLjY4LS40NzQgMi41IDIuNSAwIDEgMC0zLjAxNCAzLjAxNSAxIDEgMCAwIDEgLjQ3NCAxLjY4bC0xLjY4MyAxLjY4MmEyLjQxNCAyLjQxNCAwIDAgMS0zLjQxNCAwTDguNjEgMTkuNjFhMSAxIDAgMCAwLTEuNjguNDc0IDIuNSAyLjUgMCAxIDEtMy4wMTQtMy4wMTUgMSAxIDAgMCAwIC40NzQtMS42OGwtMS42ODMtMS42ODJhMi40MTQgMi40MTQgMCAwIDEgMC0zLjQxNEw0LjM5IDguNjFhMSAxIDAgMCAxIDEuNjguNDc0IDIuNSAyLjUgMCAxIDAgMy4wMTQtMy4wMTUgMSAxIDAgMCAxLS40NzQtMS42OGwxLjY4My0xLjY4MmEyLjQxNCAyLjQxNCAwIDAgMSAzLjQxNCAweiJ9XV0sSmVyPVtbInBhdGgiLHtkOiJNMi41IDE2Ljg4YTEgMSAwIDAgMS0uMzItMS40M2w5LTEzLjAyYTEgMSAwIDAgMSAxLjY0IDBsOSAxMy4wMWExIDEgMCAwIDEtLjMyIDEuNDRsLTguNTEgNC44NmEyIDIgMCAwIDEtMS45OCAwWiJ9XSxbInBhdGgiLHtkOiJNMTIgMnYyMCJ9XV0sS2VyPVtbInJlY3QiLHt3aWR0aDoiNSIsaGVpZ2h0OiI1Iix4OiIzIix5OiIzIixyeDoiMSJ9XSxbInJlY3QiLHt3aWR0aDoiNSIsaGVpZ2h0OiI1Iix4OiIxNiIseToiMyIscng6IjEifV0sWyJyZWN0Iix7d2lkdGg6IjUiLGhlaWdodDoiNSIseDoiMyIseToiMTYiLHJ4OiIxIn1dLFsicGF0aCIse2Q6Ik0yMSAxNmgtM2EyIDIgMCAwIDAtMiAydjMifV0sWyJwYXRoIix7ZDoiTTIxIDIxdi4wMSJ9XSxbInBhdGgiLHtkOiJNMTIgN3YzYTIgMiAwIDAgMS0yIDJINyJ9XSxbInBhdGgiLHtkOiJNMyAxMmguMDEifV0sWyJwYXRoIix7ZDoiTTEyIDNoLjAxIn1dLFsicGF0aCIse2Q6Ik0xMiAxNnYuMDEifV0sWyJwYXRoIix7ZDoiTTE2IDEyaDEifV0sWyJwYXRoIix7ZDoiTTIxIDEydi4wMSJ9XSxbInBhdGgiLHtkOiJNMTIgMjF2LTEifV1dLGV0cj1bWyJwYXRoIix7ZDoiTTE2IDNhMiAyIDAgMCAwLTIgMnY2YTIgMiAwIDAgMCAyIDIgMSAxIDAgMCAxIDEgMXYxYTIgMiAwIDAgMS0yIDIgMSAxIDAgMCAwLTEgMXYyYTEgMSAwIDAgMCAxIDEgNiA2IDAgMCAwIDYtNlY1YTIgMiAwIDAgMC0yLTJ6In1dLFsicGF0aCIse2Q6Ik01IDNhMiAyIDAgMCAwLTIgMnY2YTIgMiAwIDAgMCAyIDIgMSAxIDAgMCAxIDEgMXYxYTIgMiAwIDAgMS0yIDIgMSAxIDAgMCAwLTEgMXYyYTEgMSAwIDAgMCAxIDEgNiA2IDAgMCAwIDYtNlY1YTIgMiAwIDAgMC0yLTJ6In1dXSx0dHI9W1sicGF0aCIse2Q6Ik0xMyAxNmEzIDMgMCAwIDEgMi4yNCA1In1dLFsicGF0aCIse2Q6Ik0xOCAxMmguMDEifV0sWyJwYXRoIix7ZDoiTTE4IDIxaC04YTQgNCAwIDAgMS00LTQgNyA3IDAgMCAxIDctN2guMkw5LjYgNi40YTEgMSAwIDEgMSAyLjgtMi44TDE1LjggN2guMmMzLjMgMCA2IDIuNyA2IDZ2MWEyIDIgMCAwIDEtMiAyaC0xYTMgMyAwIDAgMC0zIDMifV0sWyJwYXRoIix7ZDoiTTIwIDguNTRWNGEyIDIgMCAxIDAtNCAwdjMifV0sWyJwYXRoIix7ZDoiTTcuNjEyIDEyLjUyNGEzIDMgMCAxIDAtMS42IDQuMyJ9XV0scnRyPVtbInBhdGgiLHtkOiJNMTkuMDcgNC45M0ExMCAxMCAwIDAgMCA2Ljk5IDMuMzQifV0sWyJwYXRoIix7ZDoiTTQgNmguMDEifV0sWyJwYXRoIix7ZDoiTTIuMjkgOS42MkExMCAxMCAwIDEgMCAyMS4zMSA4LjM1In1dLFsicGF0aCIse2Q6Ik0xNi4yNCA3Ljc2QTYgNiAwIDEgMCA4LjIzIDE2LjY3In1dLFsicGF0aCIse2Q6Ik0xMiAxOGguMDEifV0sWyJwYXRoIix7ZDoiTTE3Ljk5IDExLjY2QTYgNiAwIDAgMSAxNS43NyAxNi42NyJ9XSxbImNpcmNsZSIse2N4OiIxMiIsY3k6IjEyIixyOiIyIn1dLFsicGF0aCIse2Q6Im0xMy40MSAxMC41OSA1LjY2LTUuNjYifV1dLGl0cj1bWyJwYXRoIix7ZDoiTTEyIDEyaC4wMSJ9XSxbInBhdGgiLHtkOiJNMTQgMTUuNDY0MWE0IDQgMCAwIDEtNCAwTDcuNTI3ODYgMTkuNzQ1OTcgQSAxIDEgMCAwIDAgNy45OTMwMyAyMS4xNjIxMSAxMCAxMCAwIDAgMCAxNi4wMDY5NyAyMS4xNjIxMSAxIDEgMCAwIDAgMTYuNDcyMTQgMTkuNzQ1OTd6In1dLFsicGF0aCIse2Q6Ik0xNiAxMmE0IDQgMCAwIDAtMi0zLjQ2NGwyLjQ3Mi00LjI4MmExIDEgMCAwIDEgMS40Ni0uMzA1IDEwIDEwIDAgMCAxIDQuMDA2IDYuOTRBMSAxIDAgMCAxIDIxIDEyeiJ9XSxbInBhdGgiLHtkOiJNOCAxMmE0IDQgMCAwIDEgMi0zLjQ2NEw3LjUyOCA0LjI1NGExIDEgMCAwIDAtMS40Ni0uMzA1IDEwIDEwIDAgMCAwLTQuMDA2IDYuOTRBMSAxIDAgMCAwIDMgMTJ6In1dXSxhdHI9W1sicGF0aCIse2Q6Ik0zIDEyaDMuMjhhMSAxIDAgMCAxIC45NDguNjg0bDIuMjk4IDcuOTM0YS41LjUgMCAwIDAgLjk2LS4wNDRMMTMuODIgNC43NzFBMSAxIDAgMCAxIDE0Ljc5MiA0SDIxIn1dXSxudHI9W1sicGF0aCIse2Q6Ik01IDE2djIifV0sWyJwYXRoIix7ZDoiTTE5IDE2djIifV0sWyJyZWN0Iix7d2lkdGg6IjIwIixoZWlnaHQ6IjgiLHg6IjIiLHk6IjgiLHJ4OiIyIn1dLFsicGF0aCIse2Q6Ik0xOCAxMmguMDEifV1dLG90cj1bWyJwYXRoIix7ZDoiTTQuOSAxNi4xQzEgMTIuMiAxIDUuOCA0LjkgMS45In1dLFsicGF0aCIse2Q6Ik03LjggNC43YTYuMTQgNi4xNCAwIDAgMC0uOCA3LjUifV0sWyJjaXJjbGUiLHtjeDoiMTIiLGN5OiI5IixyOiIyIn1dLFsicGF0aCIse2Q6Ik0xNi4yIDQuOGMyIDIgMi4yNiA1LjExLjggNy40NyJ9XSxbInBhdGgiLHtkOiJNMTkuMSAxLjlhOS45NiA5Ljk2IDAgMCAxIDAgMTQuMSJ9XSxbInBhdGgiLHtkOiJNOS41IDE4aDUifV0sWyJwYXRoIix7ZDoibTggMjIgNC0xMSA0IDExIn1dXSxzdHI9W1sicGF0aCIse2Q6Ik0xNi4yNDcgNy43NjFhNiA2IDAgMCAxIDAgOC40NzgifV0sWyJwYXRoIix7ZDoiTTE5LjA3NSA0LjkzM2ExMCAxMCAwIDAgMSAwIDE0LjEzNCJ9XSxbInBhdGgiLHtkOiJNNC45MjUgMTkuMDY3YTEwIDEwIDAgMCAxIDAtMTQuMTM0In1dLFsicGF0aCIse2Q6Ik03Ljc1MyAxNi4yMzlhNiA2IDAgMCAxIDAtOC40NzgifV0sWyJjaXJjbGUiLHtjeDoiMTIiLGN5OiIxMiIscjoiMiJ9XV0sbHRyPVtbInBhdGgiLHtkOiJNMjAuMzQgMTcuNTJhMTAgMTAgMCAxIDAtMi44MiAyLjgyIn1dLFsiY2lyY2xlIix7Y3g6IjE5IixjeToiMTkiLHI6IjIifV0sWyJwYXRoIix7ZDoibTEzLjQxIDEzLjQxIDQuMTggNC4xOCJ9XSxbImNpcmNsZSIse2N4OiIxMiIsY3k6IjEyIixyOiIyIn1dXSxjdHI9W1sicGF0aCIse2Q6Ik01IDE1aDE0In1dLFsicGF0aCIse2Q6Ik01IDloMTQifV0sWyJwYXRoIix7ZDoibTE0IDIwLTUtNSA2LTYtNS01In1dXSxkdHI9W1sicGF0aCIse2Q6Ik0yMiAxN2ExMCAxMCAwIDAgMC0yMCAwIn1dLFsicGF0aCIse2Q6Ik02IDE3YTYgNiAwIDAgMSAxMiAwIn1dLFsicGF0aCIse2Q6Ik0xMCAxN2EyIDIgMCAwIDEgNCAwIn1dXSx1dHI9W1sicGF0aCIse2Q6Ik0xMyAyMkg0YTIgMiAwIDAgMSAwLTRoMTIifV0sWyJwYXRoIix7ZDoiTTEzLjIzNiAxOGEzIDMgMCAwIDAtMi4yLTUifV0sWyJwYXRoIix7ZDoiTTE2IDloLjAxIn1dLFsicGF0aCIse2Q6Ik0xNi44MiAzLjk0YTMgMyAwIDEgMSAzLjIzNyA0Ljg2OGwxLjgxNSAyLjU4N2ExLjUgMS41IDAgMCAxLTEuNSAyLjFsLTIuODcyLS40NTNhMyAzIDAgMCAwLTMuNSAzIn1dLFsicGF0aCIse2Q6Ik0xNyA0Ljk4OGEzIDMgMCAxIDAtNS4yIDIuMDUyQTcgNyAwIDAgMCA0IDE0LjAxNSA0IDQgMCAwIDAgOCAxOCJ9XV0scHRyPVtbInJlY3QiLHt3aWR0aDoiMTIiLGhlaWdodDoiMjAiLHg6IjYiLHk6IjIiLHJ4OiIyIn1dLFsicmVjdCIse3dpZHRoOiIyMCIsaGVpZ2h0OiIxMiIseDoiMiIseToiNiIscng6IjIifV1dLGh0cj1bWyJwYXRoIix7ZDoiTTQgMnYyMGwyLTEgMiAxIDItMSAyIDEgMi0xIDIgMSAyLTEgMiAxVjJsLTIgMS0yLTEtMiAxLTItMS0yIDEtMi0xLTIgMVoifV0sWyJwYXRoIix7ZDoiTTEyIDYuNXYxMSJ9XSxbInBhdGgiLHtkOiJNMTUgOS40YTQgNCAwIDEgMCAwIDUuMiJ9XV0sZnRyPVtbInBhdGgiLHtkOiJNNCAydjIwbDItMSAyIDEgMi0xIDIgMSAyLTEgMiAxIDItMSAyIDFWMmwtMiAxLTItMS0yIDEtMi0xLTIgMS0yLTEtMiAxWiJ9XSxbInBhdGgiLHtkOiJNOCAxMmg1In1dLFsicGF0aCIse2Q6Ik0xNiA5LjVhNCA0IDAgMSAwIDAgNS4yIn1dXSxtdHI9W1sicGF0aCIse2Q6Ik00IDJ2MjBsMi0xIDIgMSAyLTEgMiAxIDItMSAyIDEgMi0xIDIgMVYybC0yIDEtMi0xLTIgMS0yLTEtMiAxLTItMS0yIDFaIn1dLFsicGF0aCIse2Q6Ik04IDdoOCJ9XSxbInBhdGgiLHtkOiJNMTIgMTcuNSA4IDE1aDFhNCA0IDAgMCAwIDAtOCJ9XSxbInBhdGgiLHtkOiJNOCAxMWg4In1dXSxndHI9W1sicGF0aCIse2Q6Ik00IDJ2MjBsMi0xIDIgMSAyLTEgMiAxIDItMSAyIDEgMi0xIDIgMVYybC0yIDEtMi0xLTIgMS0yLTEtMiAxLTItMS0yIDFaIn1dLFsicGF0aCIse2Q6Im0xMiAxMCAzLTMifV0sWyJwYXRoIix7ZDoibTkgNyAzIDN2Ny41In1dLFsicGF0aCIse2Q6Ik05IDExaDYifV0sWyJwYXRoIix7ZDoiTTkgMTVoNiJ9XV0sYnRyPVtbInBhdGgiLHtkOiJNNCAydjIwbDItMSAyIDEgMi0xIDIgMSAyLTEgMiAxIDItMSAyIDFWMmwtMiAxLTItMS0yIDEtMi0xLTIgMS0yLTEtMiAxWiJ9XSxbInBhdGgiLHtkOiJNOCAxM2g1In1dLFsicGF0aCIse2Q6Ik0xMCAxN1Y5LjVhMi41IDIuNSAwIDAgMSA1IDAifV0sWyJwYXRoIix7ZDoiTTggMTdoNyJ9XV0sdnRyPVtbInBhdGgiLHtkOiJNNCAydjIwbDItMSAyIDEgMi0xIDIgMSAyLTEgMiAxIDItMSAyIDFWMmwtMiAxLTItMS0yIDEtMi0xLTIgMS0yLTEtMiAxWiJ9XSxbInBhdGgiLHtkOiJNOCAxNWg1In1dLFsicGF0aCIse2Q6Ik04IDExaDVhMiAyIDAgMSAwIDAtNGgtM3YxMCJ9XV0seHRyPVtbInBhdGgiLHtkOiJNNCAydjIwbDItMSAyIDEgMi0xIDIgMSAyLTEgMiAxIDItMSAyIDFWMmwtMiAxLTItMS0yIDEtMi0xLTIgMS0yLTEtMiAxWiJ9XSxbInBhdGgiLHtkOiJNMTAgMTdWN2g1In1dLFsicGF0aCIse2Q6Ik0xMCAxMWg0In1dLFsicGF0aCIse2Q6Ik04IDE1aDUifV1dLHl0cj1bWyJwYXRoIix7ZDoiTTEzIDE2SDgifV0sWyJwYXRoIix7ZDoiTTE0IDhIOCJ9XSxbInBhdGgiLHtkOiJNMTYgMTJIOCJ9XSxbInBhdGgiLHtkOiJNNCAzYTEgMSAwIDAgMSAxLTEgMS4zIDEuMyAwIDAgMSAuNy4ybC45MzMuNmExLjMgMS4zIDAgMCAwIDEuNCAwbC45MzQtLjZhMS4zIDEuMyAwIDAgMSAxLjQgMGwuOTMzLjZhMS4zIDEuMyAwIDAgMCAxLjQgMGwuOTMzLS42YTEuMyAxLjMgMCAwIDEgMS40IDBsLjkzNC42YTEuMyAxLjMgMCAwIDAgMS40IDBsLjkzMy0uNkExLjMgMS4zIDAgMCAxIDE5IDJhMSAxIDAgMCAxIDEgMXYxOGExIDEgMCAwIDEtMSAxIDEuMyAxLjMgMCAwIDEtLjctLjJsLS45MzMtLjZhMS4zIDEuMyAwIDAgMC0xLjQgMGwtLjkzNC42YTEuMyAxLjMgMCAwIDEtMS40IDBsLS45MzMtLjZhMS4zIDEuMyAwIDAgMC0xLjQgMGwtLjkzMy42YTEuMyAxLjMgMCAwIDEtMS40IDBsLS45MzQtLjZhMS4zIDEuMyAwIDAgMC0xLjQgMGwtLjkzMy42YTEuMyAxLjMgMCAwIDEtLjcuMiAxIDEgMCAwIDEtMS0xeiJ9XV0sd3RyPVtbInBhdGgiLHtkOiJNMTAgNi41djExYTUuNSA1LjUgMCAwIDAgNS41LTUuNSJ9XSxbInBhdGgiLHtkOiJtMTQgOC02IDMifV0sWyJwYXRoIix7ZDoiTTQgMnYyMGwyLTEgMiAxIDItMSAyIDEgMi0xIDIgMSAyLTEgMiAxVjJsLTIgMS0yLTEtMiAxLTItMS0yIDEtMi0xLTIgMXoifV1dLE10cj1bWyJwYXRoIix7ZDoiTTQgMnYyMGwyLTEgMiAxIDItMSAyIDEgMi0xIDIgMSAyLTEgMiAxVjJsLTIgMS0yLTEtMiAxLTItMS0yIDEtMi0xLTIgMVoifV0sWyJwYXRoIix7ZDoiTTE2IDhoLTZhMiAyIDAgMSAwIDAgNGg0YTIgMiAwIDEgMSAwIDRIOCJ9XSxbInBhdGgiLHtkOiJNMTIgMTcuNXYtMTEifV1dLGt0cj1bWyJwYXRoIix7ZDoiTTE0IDR2MTZIM2ExIDEgMCAwIDEtMS0xVjVhMSAxIDAgMCAxIDEtMXoifV0sWyJjaXJjbGUiLHtjeDoiMTQiLGN5OiIxMiIscjoiOCJ9XV0sVkk9W1sicmVjdCIse3dpZHRoOiIyMCIsaGVpZ2h0OiIxMiIseDoiMiIseToiNiIscng6IjIifV0sWyJwYXRoIix7ZDoiTTEyIDEyaC4wMSJ9XSxbInBhdGgiLHtkOiJNMTcgMTJoLjAxIn1dLFsicGF0aCIse2Q6Ik03IDEyaC4wMSJ9XV0sU3RyPVtbInJlY3QiLHt3aWR0aDoiMjAiLGhlaWdodDoiMTIiLHg6IjIiLHk6IjYiLHJ4OiIyIn1dXSx6dHI9W1sicGF0aCIse2Q6Ik0yMCA2YTIgMiAwIDAgMSAyIDJ2OGEyIDIgMCAwIDEtMiAyaC00YTIgMiAwIDAgMS0xLjYtLjhsLTEuNi0yLjEzYTEgMSAwIDAgMC0xLjYgMEw5LjYgMTcuMkEyIDIgMCAwIDEgOCAxOEg0YTIgMiAwIDAgMS0yLTJWOGEyIDIgMCAwIDEgMi0yeiJ9XV0sQ3RyPVtbInJlY3QiLHt3aWR0aDoiMTIiLGhlaWdodDoiMjAiLHg6IjYiLHk6IjIiLHJ4OiIyIn1dXSxUdHI9W1sicGF0aCIse2Q6Ik03IDE5SDQuODE1YTEuODMgMS44MyAwIDAgMS0xLjU3LS44ODEgMS43ODUgMS43ODUgMCAwIDEtLjAwNC0xLjc4NEw3LjE5NiA5LjUifV0sWyJwYXRoIix7ZDoiTTExIDE5aDguMjAzYTEuODMgMS44MyAwIDAgMCAxLjU1Ni0uODkgMS43ODQgMS43ODQgMCAwIDAgMC0xLjc3NWwtMS4yMjYtMi4xMiJ9XSxbInBhdGgiLHtkOiJtMTQgMTYtMyAzIDMgMyJ9XSxbInBhdGgiLHtkOiJNOC4yOTMgMTMuNTk2IDcuMTk2IDkuNSAzLjEgMTAuNTk4In1dLFsicGF0aCIse2Q6Im05LjM0NCA1LjgxMSAxLjA5My0xLjg5MkExLjgzIDEuODMgMCAwIDEgMTEuOTg1IDNhMS43ODQgMS43ODQgMCAwIDEgMS41NDYuODg4bDMuOTQzIDYuODQzIn1dLFsicGF0aCIse2Q6Im0xMy4zNzggOS42MzMgNC4wOTYgMS4wOTggMS4wOTctNC4wOTYifV1dLF90cj1bWyJjaXJjbGUiLHtjeDoiMTIiLGN5OiIxNyIscjoiMSJ9XSxbInBhdGgiLHtkOiJNMjEgN3Y2aC02In1dLFsicGF0aCIse2Q6Ik0zIDE3YTkgOSAwIDAgMSA5LTkgOSA5IDAgMCAxIDYgMi4zbDMgMi43In1dXSxMdHI9W1sicGF0aCIse2Q6Im0xNSAxNCA1LTUtNS01In1dLFsicGF0aCIse2Q6Ik0yMCA5SDkuNUE1LjUgNS41IDAgMCAwIDQgMTQuNUE1LjUgNS41IDAgMCAwIDkuNSAyMEgxMyJ9XV0sQXRyPVtbInBhdGgiLHtkOiJNMjEgN3Y2aC02In1dLFsicGF0aCIse2Q6Ik0zIDE3YTkgOSAwIDAgMSA5LTkgOSA5IDAgMCAxIDYgMi4zbDMgMi43In1dXSxEdHI9W1sicGF0aCIse2Q6Ik0yMSAxMmE5IDkgMCAwIDAtOS05IDkuNzUgOS43NSAwIDAgMC02Ljc0IDIuNzRMMyA4In1dLFsicGF0aCIse2Q6Ik0zIDN2NWg1In1dLFsicGF0aCIse2Q6Ik0zIDEyYTkgOSAwIDAgMCA5IDkgOS43NSA5Ljc1IDAgMCAwIDYuNzQtMi43NEwyMSAxNiJ9XSxbInBhdGgiLHtkOiJNMTYgMTZoNXY1In1dLFsiY2lyY2xlIix7Y3g6IjEyIixjeToiMTIiLHI6IjEifV1dLEV0cj1bWyJwYXRoIix7ZDoiTTIxIDEyYTkgOSAwIDAgMC05LTkgOS43NSA5Ljc1IDAgMCAwLTYuNzQgMi43NEwzIDgifV0sWyJwYXRoIix7ZDoiTTMgM3Y1aDUifV0sWyJwYXRoIix7ZDoiTTMgMTJhOSA5IDAgMCAwIDkgOSA5Ljc1IDkuNzUgMCAwIDAgNi43NC0yLjc0TDIxIDE2In1dLFsicGF0aCIse2Q6Ik0xNiAxNmg1djUifV1dLCR0cj1bWyJwYXRoIix7ZDoiTTIxIDhMMTguNzQgNS43NEE5Ljc1IDkuNzUgMCAwIDAgMTIgM0MxMSAzIDEwLjAzIDMuMTYgOS4xMyAzLjQ3In1dLFsicGF0aCIse2Q6Ik04IDE2SDN2NSJ9XSxbInBhdGgiLHtkOiJNMyAxMkMzIDkuNTEgNCA3LjI2IDUuNjQgNS42NCJ9XSxbInBhdGgiLHtkOiJtMyAxNiAyLjI2IDIuMjZBOS43NSA5Ljc1IDAgMCAwIDEyIDIxYzIuNDkgMCA0Ljc0LTEgNi4zNi0yLjY0In1dLFsicGF0aCIse2Q6Ik0yMSAxMmMwIDEtLjE2IDEuOTctLjQ3IDIuODcifV0sWyJwYXRoIix7ZDoiTTIxIDN2NWgtNSJ9XSxbInBhdGgiLHtkOiJNMjIgMjIgMiAyIn1dXSxJdHI9W1sicGF0aCIse2Q6Ik0zIDEyYTkgOSAwIDAgMSA5LTkgOS43NSA5Ljc1IDAgMCAxIDYuNzQgMi43NEwyMSA4In1dLFsicGF0aCIse2Q6Ik0yMSAzdjVoLTUifV0sWyJwYXRoIix7ZDoiTTIxIDEyYTkgOSAwIDAgMS05IDkgOS43NSA5Ljc1IDAgMCAxLTYuNzQtMi43NEwzIDE2In1dLFsicGF0aCIse2Q6Ik04IDE2SDN2NSJ9XV0sUHRyPVtbInBhdGgiLHtkOiJNNSA2YTQgNCAwIDAgMSA0LTRoNmE0IDQgMCAwIDEgNCA0djE0YTIgMiAwIDAgMS0yIDJIN2EyIDIgMCAwIDEtMi0yVjZaIn1dLFsicGF0aCIse2Q6Ik01IDEwaDE0In1dLFsicGF0aCIse2Q6Ik0xNSA3djYifV1dLE50cj1bWyJwYXRoIix7ZDoiTTE3IDN2MTAifV0sWyJwYXRoIix7ZDoibTEyLjY3IDUuNSA4LjY2IDUifV0sWyJwYXRoIix7ZDoibTEyLjY3IDEwLjUgOC42Ni01In1dLFsicGF0aCIse2Q6Ik05IDE3YTIgMiAwIDAgMC0yLTJINWEyIDIgMCAwIDAtMiAydjJhMiAyIDAgMCAwIDIgMmgyYTIgMiAwIDAgMCAyLTJ2LTJ6In1dXSxGdHI9W1sicGF0aCIse2Q6Ik00IDdWNGgxNnYzIn1dLFsicGF0aCIse2Q6Ik01IDIwaDYifV0sWyJwYXRoIix7ZDoiTTEzIDQgOCAyMCJ9XSxbInBhdGgiLHtkOiJtMTUgMTUgNSA1In1dLFsicGF0aCIse2Q6Im0yMCAxNS01IDUifV1dLE90cj1bWyJwYXRoIix7ZDoibTIgOSAzLTMgMyAzIn1dLFsicGF0aCIse2Q6Ik0xMyAxOEg3YTIgMiAwIDAgMS0yLTJWNiJ9XSxbInBhdGgiLHtkOiJtMjIgMTUtMyAzLTMtMyJ9XSxbInBhdGgiLHtkOiJNMTEgNmg2YTIgMiAwIDAgMSAyIDJ2MTAifV1dLFJ0cj1bWyJwYXRoIix7ZDoibTE3IDIgNCA0LTQgNCJ9XSxbInBhdGgiLHtkOiJNMyAxMXYtMWE0IDQgMCAwIDEgNC00aDE0In1dLFsicGF0aCIse2Q6Im03IDIyLTQtNCA0LTQifV0sWyJwYXRoIix7ZDoiTTIxIDEzdjFhNCA0IDAgMCAxLTQgNEgzIn1dLFsicGF0aCIse2Q6Ik0xMSAxMGgxdjQifV1dLEJ0cj1bWyJwYXRoIix7ZDoibTE3IDIgNCA0LTQgNCJ9XSxbInBhdGgiLHtkOiJNMyAxMXYtMWE0IDQgMCAwIDEgNC00aDE0In1dLFsicGF0aCIse2Q6Im03IDIyLTQtNCA0LTQifV0sWyJwYXRoIix7ZDoiTTIxIDEzdjFhNCA0IDAgMCAxLTQgNEgzIn1dXSxIdHI9W1sicGF0aCIse2Q6Ik0xNCAxNGExIDEgMCAwIDEgMSAxdjVhMSAxIDAgMCAxLTEgMSJ9XSxbInBhdGgiLHtkOiJNMTQgNGExIDEgMCAwIDEgMS0xIn1dLFsicGF0aCIse2Q6Ik0xNSAxMGExIDEgMCAwIDEtMS0xIn1dLFsicGF0aCIse2Q6Ik0xOSAxNGExIDEgMCAwIDEgMSAxdjVhMSAxIDAgMCAxLTEgMSJ9XSxbInBhdGgiLHtkOiJNMjEgNGExIDEgMCAwIDAtMS0xIn1dLFsicGF0aCIse2Q6Ik0yMSA5YTEgMSAwIDAgMS0xIDEifV0sWyJwYXRoIix7ZDoibTMgNyAzIDMgMy0zIn1dLFsicGF0aCIse2Q6Ik02IDEwVjVhMiAyIDAgMCAxIDItMmgyIn1dLFsicmVjdCIse3g6IjMiLHk6IjE0Iix3aWR0aDoiNyIsaGVpZ2h0OiI3IixyeDoiMSJ9XV0scXRyPVtbInBhdGgiLHtkOiJNMTQgNGExIDEgMCAwIDEgMS0xIn1dLFsicGF0aCIse2Q6Ik0xNSAxMGExIDEgMCAwIDEtMS0xIn1dLFsicGF0aCIse2Q6Ik0yMSA0YTEgMSAwIDAgMC0xLTEifV0sWyJwYXRoIix7ZDoiTTIxIDlhMSAxIDAgMCAxLTEgMSJ9XSxbInBhdGgiLHtkOiJtMyA3IDMgMyAzLTMifV0sWyJwYXRoIix7ZDoiTTYgMTBWNWEyIDIgMCAwIDEgMi0yaDIifV0sWyJyZWN0Iix7eDoiMyIseToiMTQiLHdpZHRoOiI3IixoZWlnaHQ6IjciLHJ4OiIxIn1dXSxqdHI9W1sicGF0aCIse2Q6Im0xMiAxNy01LTUgNS01In1dLFsicGF0aCIse2Q6Ik0yMiAxOHYtMmE0IDQgMCAwIDAtNC00SDcifV0sWyJwYXRoIix7ZDoibTcgMTctNS01IDUtNSJ9XV0sVnRyPVtbInBhdGgiLHtkOiJNMjAgMTh2LTJhNCA0IDAgMCAwLTQtNEg0In1dLFsicGF0aCIse2Q6Im05IDE3LTUtNSA1LTUifV1dLFV0cj1bWyJwYXRoIix7ZDoiTTEyIDZhMiAyIDAgMCAwLTMuNDE0LTEuNDE0bC02IDZhMiAyIDAgMCAwIDAgMi44MjhsNiA2QTIgMiAwIDAgMCAxMiAxOHoifV0sWyJwYXRoIix7ZDoiTTIyIDZhMiAyIDAgMCAwLTMuNDE0LTEuNDE0bC02IDZhMiAyIDAgMCAwIDAgMi44MjhsNiA2QTIgMiAwIDAgMCAyMiAxOHoifV1dLFd0cj1bWyJwYXRoIix7ZDoiTTEyIDExLjIyQzExIDkuOTk3IDEwIDkgMTAgOGEyIDIgMCAwIDEgNCAwYzAgMS0uOTk4IDIuMDAyLTIuMDEgMy4yMiJ9XSxbInBhdGgiLHtkOiJtMTIgMTggMi41Ny0zLjUifV0sWyJwYXRoIix7ZDoiTTYuMjQzIDkuMDE2YTcgNyAwIDAgMSAxMS41MDctLjAwOSJ9XSxbInBhdGgiLHtkOiJNOS4zNSAxNC41MyAxMiAxMS4yMiJ9XSxbInBhdGgiLHtkOiJNOS4zNSAxNC41M0M3LjcyOCAxMi4yNDYgNiAxMC4yMjEgNiA3YTYgNSAwIDAgMSAxMiAwYy0uMDA1IDMuMjItMS43NzggNS4yMzUtMy40MyA3LjVsMy41NTcgNC41MjdhMSAxIDAgMCAxLS4yMDMgMS40M2wtMS44OTQgMS4zNmExIDEgMCAwIDEtMS4zODQtLjIxNUwxMiAxOGwtMi42NzkgMy41OTNhMSAxIDAgMCAxLTEuMzkuMjEzbC0xLjg2NS0xLjM1M2ExIDEgMCAwIDEtLjIwMy0xLjQyMnoifV1dLEd0cj1bWyJwYXRoIix7ZDoiTTQuNSAxNi41Yy0xLjUgMS4yNi0yIDUtMiA1czMuNzQtLjUgNS0yYy43MS0uODQuNy0yLjEzLS4wOS0yLjkxYTIuMTggMi4xOCAwIDAgMC0yLjkxLS4wOXoifV0sWyJwYXRoIix7ZDoibTEyIDE1LTMtM2EyMiAyMiAwIDAgMSAyLTMuOTVBMTIuODggMTIuODggMCAwIDEgMjIgMmMwIDIuNzItLjc4IDcuNS02IDExYTIyLjM1IDIyLjM1IDAgMCAxLTQgMnoifV0sWyJwYXRoIix7ZDoiTTkgMTJINHMuNTUtMy4wMyAyLTRjMS42Mi0xLjA4IDUgMCA1IDAifV0sWyJwYXRoIix7ZDoiTTEyIDE1djVzMy4wMy0uNTUgNC0yYzEuMDgtMS42MiAwLTUgMC01In1dXSxZdHI9W1sicG9seWxpbmUiLHtwb2ludHM6IjMuNSAyIDYuNSAxMi41IDE4IDEyLjUifV0sWyJsaW5lIix7eDE6IjkuNSIseDI6IjUuNSIseTE6IjEyLjUiLHkyOiIyMCJ9XSxbImxpbmUiLHt4MToiMTUiLHgyOiIxOC41Iix5MToiMTIuNSIseTI6IjIwIn1dLFsicGF0aCIse2Q6Ik0yLjc1IDE4YTEzIDEzIDAgMCAwIDE4LjUgMCJ9XV0sWnRyPVtbInBhdGgiLHtkOiJNNiAxOVY1In1dLFsicGF0aCIse2Q6Ik0xMCAxOVY2LjgifV0sWyJwYXRoIix7ZDoiTTE0IDE5di03LjgifV0sWyJwYXRoIix7ZDoiTTE4IDV2NCJ9XSxbInBhdGgiLHtkOiJNMTggMTl2LTYifV0sWyJwYXRoIix7ZDoiTTIyIDE5VjkifV0sWyJwYXRoIix7ZDoiTTIgMTlWOWE0IDQgMCAwIDEgNC00YzIgMCA0IDEuMzMgNiA0czQgNCA2IDRhNCA0IDAgMSAwLTMtNi42NSJ9XV0sWHRyPVtbInBhdGgiLHtkOiJNMTcgMTBoLTFhNCA0IDAgMSAxIDQtNHYuNTM0In1dLFsicGF0aCIse2Q6Ik0xNyA2aDFhNCA0IDAgMCAxIDEuNDIgNy43NGwtMi4yOS44N2E2IDYgMCAwIDEtNS4zMzktMTAuNjhsMi4wNjktMS4zMSJ9XSxbInBhdGgiLHtkOiJNNC41IDE3YzIuOC0uNSA0LjQgMCA1LjUuOHMxLjggMi4yIDIuMyAzLjdjLTIgLjQtMy41LjQtNC44LS4zLTEuMi0uNi0yLjMtMS45LTMtNC4yIn1dLFsicGF0aCIse2Q6Ik05Ljc3IDEyQzQgMTUgMiAyMiAyIDIyIn1dLFsiY2lyY2xlIix7Y3g6IjE3IixjeToiOCIscjoiMiJ9XV0sVUk9W1sicGF0aCIse2Q6Ik0xNi40NjYgNy41QzE1LjY0MyA0LjIzNyAxMy45NTIgMiAxMiAyIDkuMjM5IDIgNyA2LjQ3NyA3IDEyczIuMjM5IDEwIDUgMTBjLjM0MiAwIC42NzctLjA2OSAxLS4yIn1dLFsicGF0aCIse2Q6Im0xNS4xOTQgMTMuNzA3IDMuODE0IDEuODYtMS44NiAzLjgxNCJ9XSxbInBhdGgiLHtkOiJNMTkgMTUuNTdjLTEuODA0Ljg4NS00LjI3NCAxLjQzLTcgMS40My01LjUyMyAwLTEwLTIuMjM5LTEwLTVzNC40NzctNSAxMC01YzQuODM4IDAgOC44NzMgMS43MTggOS44IDQifV1dLFF0cj1bWyJwYXRoIix7ZDoiTTEyIDd2NiJ9XSxbInBhdGgiLHtkOiJNMTIgOWgyIn1dLFsicGF0aCIse2Q6Ik0zIDEyYTkgOSAwIDEgMCA5LTkgOS43NCA5Ljc0IDAgMCAwLTYuNzQgMi43NEwzIDgifV0sWyJwYXRoIix7ZDoiTTMgM3Y1aDUifV0sWyJjaXJjbGUiLHtjeDoiMTIiLGN5OiIxNSIscjoiMiJ9XV0sSnRyPVtbInBhdGgiLHtkOiJNMjAgOVY3YTIgMiAwIDAgMC0yLTJoLTYifV0sWyJwYXRoIix7ZDoibTE1IDItMyAzIDMgMyJ9XSxbInBhdGgiLHtkOiJNMjAgMTN2NWEyIDIgMCAwIDEtMiAySDZhMiAyIDAgMCAxLTItMlY3YTIgMiAwIDAgMSAyLTJoMiJ9XV0sS3RyPVtbInBhdGgiLHtkOiJNMyAxMmE5IDkgMCAxIDAgOS05IDkuNzUgOS43NSAwIDAgMC02Ljc0IDIuNzRMMyA4In1dLFsicGF0aCIse2Q6Ik0zIDN2NWg1In1dXSxlcnI9W1sicGF0aCIse2Q6Ik0xMiA1SDZhMiAyIDAgMCAwLTIgMnYzIn1dLFsicGF0aCIse2Q6Im05IDggMy0zLTMtMyJ9XSxbInBhdGgiLHtkOiJNNCAxNHY0YTIgMiAwIDAgMCAyIDJoMTJhMiAyIDAgMCAwIDItMlY3YTIgMiAwIDAgMC0yLTJoLTIifV1dLHRycj1bWyJwYXRoIix7ZDoiTTIxIDEyYTkgOSAwIDEgMS05LTljMi41MiAwIDQuOTMgMSA2Ljc0IDIuNzRMMjEgOCJ9XSxbInBhdGgiLHtkOiJNMjEgM3Y1aC01In1dXSxycnI9W1siY2lyY2xlIix7Y3g6IjYiLGN5OiIxOSIscjoiMyJ9XSxbInBhdGgiLHtkOiJNOSAxOWg4LjVjLjQgMCAuOS0uMSAxLjMtLjIifV0sWyJwYXRoIix7ZDoiTTUuMiA1LjJBMy41IDMuNTMgMCAwIDAgNi41IDEySDEyIn1dLFsicGF0aCIse2Q6Im0yIDIgMjAgMjAifV0sWyJwYXRoIix7ZDoiTTIxIDE1LjNhMy41IDMuNSAwIDAgMC0zLjMtMy4zIn1dLFsicGF0aCIse2Q6Ik0xNSA1aC00LjMifV0sWyJjaXJjbGUiLHtjeDoiMTgiLGN5OiI1IixyOiIzIn1dXSxpcnI9W1siY2lyY2xlIix7Y3g6IjYiLGN5OiIxOSIscjoiMyJ9XSxbInBhdGgiLHtkOiJNOSAxOWg4LjVhMy41IDMuNSAwIDAgMCAwLTdoLTExYTMuNSAzLjUgMCAwIDEgMC03SDE1In1dLFsiY2lyY2xlIix7Y3g6IjE4IixjeToiNSIscjoiMyJ9XV0sYXJyPVtbInJlY3QiLHt3aWR0aDoiMjAiLGhlaWdodDoiOCIseDoiMiIseToiMTQiLHJ4OiIyIn1dLFsicGF0aCIse2Q6Ik02LjAxIDE4SDYifV0sWyJwYXRoIix7ZDoiTTEwLjAxIDE4SDEwIn1dLFsicGF0aCIse2Q6Ik0xNSAxMHY0In1dLFsicGF0aCIse2Q6Ik0xNy44NCA3LjE3YTQgNCAwIDAgMC01LjY2IDAifV0sWyJwYXRoIix7ZDoiTTIwLjY2IDQuMzRhOCA4IDAgMCAwLTExLjMxIDAifV1dLFdJPVtbInJlY3QiLHt3aWR0aDoiMTgiLGhlaWdodDoiMTgiLHg6IjMiLHk6IjMiLHJ4OiIyIn1dLFsicGF0aCIse2Q6Ik0zIDEyaDE4In1dXSxHST1bWyJyZWN0Iix7d2lkdGg6IjE4IixoZWlnaHQ6IjE4Iix4OiIzIix5OiIzIixyeDoiMiJ9XSxbInBhdGgiLHtkOiJNMjEgOUgzIn1dLFsicGF0aCIse2Q6Ik0yMSAxNUgzIn1dXSxucnI9W1sicmVjdCIse3dpZHRoOiIxOCIsaGVpZ2h0OiIxOCIseDoiMyIseToiMyIscng6IjIifV0sWyJwYXRoIix7ZDoiTTIxIDcuNUgzIn1dLFsicGF0aCIse2Q6Ik0yMSAxMkgzIn1dLFsicGF0aCIse2Q6Ik0yMSAxNi41SDMifV1dLG9ycj1bWyJwYXRoIix7ZDoiTTQgMTFhOSA5IDAgMCAxIDkgOSJ9XSxbInBhdGgiLHtkOiJNNCA0YTE2IDE2IDAgMCAxIDE2IDE2In1dLFsiY2lyY2xlIix7Y3g6IjUiLGN5OiIxOSIscjoiMSJ9XV0sc3JyPVtbInBhdGgiLHtkOiJNMTAgMTV2LTMifV0sWyJwYXRoIix7ZDoiTTE0IDE1di0zIn1dLFsicGF0aCIse2Q6Ik0xOCAxNXYtMyJ9XSxbInBhdGgiLHtkOiJNMiA4VjQifV0sWyJwYXRoIix7ZDoiTTIyIDZIMiJ9XSxbInBhdGgiLHtkOiJNMjIgOFY0In1dLFsicGF0aCIse2Q6Ik02IDE1di0zIn1dLFsicmVjdCIse3g6IjIiLHk6IjEyIix3aWR0aDoiMjAiLGhlaWdodDoiOCIscng6IjIifV1dLGxycj1bWyJwYXRoIix7ZDoiTTYgMTFoOGE0IDQgMCAwIDAgMC04SDl2MTgifV0sWyJwYXRoIix7ZDoiTTYgMTVoOCJ9XV0sY3JyPVtbInBhdGgiLHtkOiJNMjEuMyAxNS4zYTIuNCAyLjQgMCAwIDEgMCAzLjRsLTIuNiAyLjZhMi40IDIuNCAwIDAgMS0zLjQgMEwyLjcgOC43YTIuNDEgMi40MSAwIDAgMSAwLTMuNGwyLjYtMi42YTIuNDEgMi40MSAwIDAgMSAzLjQgMFoifV0sWyJwYXRoIix7ZDoibTE0LjUgMTIuNSAyLTIifV0sWyJwYXRoIix7ZDoibTExLjUgOS41IDItMiJ9XSxbInBhdGgiLHtkOiJtOC41IDYuNSAyLTIifV0sWyJwYXRoIix7ZDoibTE3LjUgMTUuNSAyLTIifV1dLGRycj1bWyJwYXRoIix7ZDoiTTcgMjFoMTAifV0sWyJwYXRoIix7ZDoiTTEyIDIxYTkgOSAwIDAgMCA5LTlIM2E5IDkgMCAwIDAgOSA5WiJ9XSxbInBhdGgiLHtkOiJNMTEuMzggMTJhMi40IDIuNCAwIDAgMS0uNC00Ljc3IDIuNCAyLjQgMCAwIDEgMy4yLTIuNzcgMi40IDIuNCAwIDAgMSAzLjQ3LS42MyAyLjQgMi40IDAgMCAxIDMuMzcgMy4zNyAyLjQgMi40IDAgMCAxLTEuMSAzLjcgMi41MSAyLjUxIDAgMCAxIC4wMyAxLjEifV0sWyJwYXRoIix7ZDoibTEzIDEyIDQtNCJ9XSxbInBhdGgiLHtkOiJNMTAuOSA3LjI1QTMuOTkgMy45OSAwIDAgMCA0IDEwYzAgLjczLjIgMS40MS41NCAyIn1dXSx1cnI9W1sicGF0aCIse2Q6Ik0xMCAydjE1In1dLFsicGF0aCIse2Q6Ik03IDIyYTQgNCAwIDAgMS00LTQgMSAxIDAgMCAxIDEtMWgxNmExIDEgMCAwIDEgMSAxIDQgNCAwIDAgMS00IDR6In1dLFsicGF0aCIse2Q6Ik05LjE1OSAyLjQ2YTEgMSAwIDAgMSAxLjUyMS0uMTkzbDkuOTc3IDguOThBMSAxIDAgMCAxIDIwIDEzSDRhMSAxIDAgMCAxLS44MjQtMS41Njd6In1dXSxwcnI9W1sicGF0aCIse2Q6Im0yLjM3IDExLjIyMyA4LjM3Mi02Ljc3N2EyIDIgMCAwIDEgMi41MTYgMGw4LjM3MSA2Ljc3NyJ9XSxbInBhdGgiLHtkOiJNMjEgMTVhMSAxIDAgMCAxIDEgMXYyYTEgMSAwIDAgMS0xIDFoLTUuMjUifV0sWyJwYXRoIix7ZDoiTTMgMTVhMSAxIDAgMCAwLTEgMXYyYTEgMSAwIDAgMCAxIDFoOSJ9XSxbInBhdGgiLHtkOiJtNi42NyAxNSA2LjEzIDQuNmEyIDIgMCAwIDAgMi44LS40bDMuMTUtNC4yIn1dLFsicmVjdCIse3dpZHRoOiIyMCIsaGVpZ2h0OiI0Iix4OiIyIix5OiIxMSIscng6IjEifV1dLGhycj1bWyJwYXRoIix7ZDoiTTQgMTBhNy4zMSA3LjMxIDAgMCAwIDEwIDEwWiJ9XSxbInBhdGgiLHtkOiJtOSAxNSAzLTMifV0sWyJwYXRoIix7ZDoiTTE3IDEzYTYgNiAwIDAgMC02LTYifV0sWyJwYXRoIix7ZDoiTTIxIDEzQTEwIDEwIDAgMCAwIDExIDMifV1dLGZycj1bWyJwYXRoIix7ZDoibTEzLjUgNi41LTMuMTQ4LTMuMTQ4YTEuMjA1IDEuMjA1IDAgMCAwLTEuNzA0IDBMNi4zNTIgNS42NDhhMS4yMDUgMS4yMDUgMCAwIDAgMCAxLjcwNEw5LjUgMTAuNSJ9XSxbInBhdGgiLHtkOiJNMTYuNSA3LjUgMTkgNSJ9XSxbInBhdGgiLHtkOiJtMTcuNSAxMC41IDMuMTQ4IDMuMTQ4YTEuMjA1IDEuMjA1IDAgMCAxIDAgMS43MDRsLTIuMjk2IDIuMjk2YTEuMjA1IDEuMjA1IDAgMCAxLTEuNzA0IDBMMTMuNSAxNC41In1dLFsicGF0aCIse2Q6Ik05IDIxYTYgNiAwIDAgMC02LTYifV0sWyJwYXRoIix7ZDoiTTkuMzUyIDEwLjY0OGExLjIwNSAxLjIwNSAwIDAgMCAwIDEuNzA0bDIuMjk2IDIuMjk2YTEuMjA1IDEuMjA1IDAgMCAwIDEuNzA0IDBsNC4yOTYtNC4yOTZhMS4yMDUgMS4yMDUgMCAwIDAgMC0xLjcwNGwtMi4yOTYtMi4yOTZhMS4yMDUgMS4yMDUgMCAwIDAtMS43MDQgMHoifV1dLG1ycj1bWyJwYXRoIix7ZDoibTIwIDE5LjUtNS41IDEuMiJ9XSxbInBhdGgiLHtkOiJNMTQuNSA0djExLjIyYTEgMSAwIDAgMCAxLjI0Mi45N0wyMCAxNS4yIn1dLFsicGF0aCIse2Q6Im0yLjk3OCAxOS4zNTEgNS41NDktMS4zNjNBMiAyIDAgMCAwIDEwIDE2VjIifV0sWyJwYXRoIix7ZDoiTTIwIDEwIDQgMTMuNSJ9XV0sZ3JyPVtbInBhdGgiLHtkOiJNMTAgMnYzYTEgMSAwIDAgMCAxIDFoNSJ9XSxbInBhdGgiLHtkOiJNMTggMTh2LTZhMSAxIDAgMCAwLTEtMWgtNmExIDEgMCAwIDAtMSAxdjYifV0sWyJwYXRoIix7ZDoiTTE4IDIySDRhMiAyIDAgMCAxLTItMlY2In1dLFsicGF0aCIse2Q6Ik04IDE4YTIgMiAwIDAgMS0yLTJWNGEyIDIgMCAwIDEgMi0yaDkuMTcyYTIgMiAwIDAgMSAxLjQxNC41ODZsMi44MjggMi44MjhBMiAyIDAgMCAxIDIyIDYuODI4VjE2YTIgMiAwIDAgMS0yLjAxIDJ6In1dXSxicnI9W1sicGF0aCIse2Q6Ik0xMyAxM0g4YTEgMSAwIDAgMC0xIDF2NyJ9XSxbInBhdGgiLHtkOiJNMTQgOGgxIn1dLFsicGF0aCIse2Q6Ik0xNyAyMXYtNCJ9XSxbInBhdGgiLHtkOiJtMiAyIDIwIDIwIn1dLFsicGF0aCIse2Q6Ik0yMC40MSAyMC40MUEyIDIgMCAwIDEgMTkgMjFINWEyIDIgMCAwIDEtMi0yVjVhMiAyIDAgMCAxIC41OS0xLjQxIn1dLFsicGF0aCIse2Q6Ik0yOS41IDExLjVzNSA1IDQgNSJ9XSxbInBhdGgiLHtkOiJNOSAzaDYuMmEyIDIgMCAwIDEgMS40LjZsMy44IDMuOGEyIDIgMCAwIDEgLjYgMS40VjE1In1dXSx2cnI9W1sicGF0aCIse2Q6Ik0xNS4yIDNhMiAyIDAgMCAxIDEuNC42bDMuOCAzLjhhMiAyIDAgMCAxIC42IDEuNFYxOWEyIDIgMCAwIDEtMiAySDVhMiAyIDAgMCAxLTItMlY1YTIgMiAwIDAgMSAyLTJ6In1dLFsicGF0aCIse2Q6Ik0xNyAyMXYtN2ExIDEgMCAwIDAtMS0xSDhhMSAxIDAgMCAwLTEgMXY3In1dLFsicGF0aCIse2Q6Ik03IDN2NGExIDEgMCAwIDAgMSAxaDcifV1dLFlJPVtbInBhdGgiLHtkOiJNNSA3djExYTEgMSAwIDAgMCAxIDFoMTEifV0sWyJwYXRoIix7ZDoiTTUuMjkzIDE4LjcwNyAxMSAxMyJ9XSxbImNpcmNsZSIse2N4OiIxOSIsY3k6IjE5IixyOiIyIn1dLFsiY2lyY2xlIix7Y3g6IjUiLGN5OiI1IixyOiIyIn1dXSx4cnI9W1sicGF0aCIse2Q6Ik0xMiAzdjE4In1dLFsicGF0aCIse2Q6Im0xOSA4IDMgOGE1IDUgMCAwIDEtNiAwelY3In1dLFsicGF0aCIse2Q6Ik0zIDdoMWExNyAxNyAwIDAgMCA4LTIgMTcgMTcgMCAwIDAgOCAyaDEifV0sWyJwYXRoIix7ZDoibTUgOCAzIDhhNSA1IDAgMCAxLTYgMHpWNyJ9XSxbInBhdGgiLHtkOiJNNyAyMWgxMCJ9XV0seXJyPVtbInBhdGgiLHtkOiJNMTIgM0g1YTIgMiAwIDAgMC0yIDJ2MTRhMiAyIDAgMCAwIDIgMmgxNGEyIDIgMCAwIDAgMi0ydi03In1dLFsicGF0aCIse2Q6Ik0xNCAxNUg5di01In1dLFsicGF0aCIse2Q6Ik0xNiAzaDV2NSJ9XSxbInBhdGgiLHtkOiJNMjEgMyA5IDE1In1dXSx3cnI9W1sicGF0aCIse2Q6Ik0zIDdWNWEyIDIgMCAwIDEgMi0yaDIifV0sWyJwYXRoIix7ZDoiTTE3IDNoMmEyIDIgMCAwIDEgMiAydjIifV0sWyJwYXRoIix7ZDoiTTIxIDE3djJhMiAyIDAgMCAxLTIgMmgtMiJ9XSxbInBhdGgiLHtkOiJNNyAyMUg1YTIgMiAwIDAgMS0yLTJ2LTIifV0sWyJjaXJjbGUiLHtjeDoiMTIiLGN5OiIxMiIscjoiMSJ9XSxbInBhdGgiLHtkOiJNMTguOTQ0IDEyLjMzYTEgMSAwIDAgMCAwLS42NiA3LjUgNy41IDAgMCAwLTEzLjg4OCAwIDEgMSAwIDAgMCAwIC42NiA3LjUgNy41IDAgMCAwIDEzLjg4OCAwIn1dXSxNcnI9W1sicGF0aCIse2Q6Ik0zIDdWNWEyIDIgMCAwIDEgMi0yaDIifV0sWyJwYXRoIix7ZDoiTTE3IDNoMmEyIDIgMCAwIDEgMiAydjIifV0sWyJwYXRoIix7ZDoiTTIxIDE3djJhMiAyIDAgMCAxLTIgMmgtMiJ9XSxbInBhdGgiLHtkOiJNNyAyMUg1YTIgMiAwIDAgMS0yLTJ2LTIifV0sWyJwYXRoIix7ZDoiTTggN3YxMCJ9XSxbInBhdGgiLHtkOiJNMTIgN3YxMCJ9XSxbInBhdGgiLHtkOiJNMTcgN3YxMCJ9XV0sa3JyPVtbInBhdGgiLHtkOiJNMyA3VjVhMiAyIDAgMCAxIDItMmgyIn1dLFsicGF0aCIse2Q6Ik0xNyAzaDJhMiAyIDAgMCAxIDIgMnYyIn1dLFsicGF0aCIse2Q6Ik0yMSAxN3YyYTIgMiAwIDAgMS0yIDJoLTIifV0sWyJwYXRoIix7ZDoiTTcgMjFINWEyIDIgMCAwIDEtMi0ydi0yIn1dLFsicGF0aCIse2Q6Ik04IDE0czEuNSAyIDQgMiA0LTIgNC0yIn1dLFsicGF0aCIse2Q6Ik05IDloLjAxIn1dLFsicGF0aCIse2Q6Ik0xNSA5aC4wMSJ9XV0sU3JyPVtbInBhdGgiLHtkOiJNMTcgM2gyYTIgMiAwIDAgMSAyIDJ2MiJ9XSxbInBhdGgiLHtkOiJNMjEgMTd2MmEyIDIgMCAwIDEtMiAyaC0yIn1dLFsicGF0aCIse2Q6Ik0zIDdWNWEyIDIgMCAwIDEgMi0yaDIifV0sWyJwYXRoIix7ZDoiTTcgMjFINWEyIDIgMCAwIDEtMi0ydi0yIn1dLFsicGF0aCIse2Q6Ik03LjgyOCAxMy4wN0EzIDMgMCAwIDEgMTIgOC43NjRhMyAzIDAgMCAxIDQuMTcyIDQuMzA2bC0zLjQ0NyAzLjYyYTEgMSAwIDAgMS0xLjQ0OSAweiJ9XV0senJyPVtbInBhdGgiLHtkOiJNMyA3VjVhMiAyIDAgMCAxIDItMmgyIn1dLFsicGF0aCIse2Q6Ik0xNyAzaDJhMiAyIDAgMCAxIDIgMnYyIn1dLFsicGF0aCIse2Q6Ik0yMSAxN3YyYTIgMiAwIDAgMS0yIDJoLTIifV0sWyJwYXRoIix7ZDoiTTcgMjFINWEyIDIgMCAwIDEtMi0ydi0yIn1dLFsicGF0aCIse2Q6Ik03IDEyaDEwIn1dXSxDcnI9W1sicGF0aCIse2Q6Ik0xNyAxMnY0YTEgMSAwIDAgMS0xIDFoLTQifV0sWyJwYXRoIix7ZDoiTTE3IDNoMmEyIDIgMCAwIDEgMiAydjIifV0sWyJwYXRoIix7ZDoiTTE3IDhWNyJ9XSxbInBhdGgiLHtkOiJNMjEgMTd2MmEyIDIgMCAwIDEtMiAyaC0yIn1dLFsicGF0aCIse2Q6Ik0zIDdWNWEyIDIgMCAwIDEgMi0yaDIifV0sWyJwYXRoIix7ZDoiTTcgMTdoLjAxIn1dLFsicGF0aCIse2Q6Ik03IDIxSDVhMiAyIDAgMCAxLTItMnYtMiJ9XSxbInJlY3QiLHt4OiI3Iix5OiI3Iix3aWR0aDoiNSIsaGVpZ2h0OiI1IixyeDoiMSJ9XV0sVHJyPVtbInBhdGgiLHtkOiJNMyA3VjVhMiAyIDAgMCAxIDItMmgyIn1dLFsicGF0aCIse2Q6Ik0xNyAzaDJhMiAyIDAgMCAxIDIgMnYyIn1dLFsicGF0aCIse2Q6Ik0yMSAxN3YyYTIgMiAwIDAgMS0yIDJoLTIifV0sWyJwYXRoIix7ZDoiTTcgMjFINWEyIDIgMCAwIDEtMi0ydi0yIn1dLFsiY2lyY2xlIix7Y3g6IjEyIixjeToiMTIiLHI6IjMifV0sWyJwYXRoIix7ZDoibTE2IDE2LTEuOS0xLjkifV1dLF9ycj1bWyJwYXRoIix7ZDoiTTMgN1Y1YTIgMiAwIDAgMSAyLTJoMiJ9XSxbInBhdGgiLHtkOiJNMTcgM2gyYTIgMiAwIDAgMSAyIDJ2MiJ9XSxbInBhdGgiLHtkOiJNMjEgMTd2MmEyIDIgMCAwIDEtMiAyaC0yIn1dLFsicGF0aCIse2Q6Ik03IDIxSDVhMiAyIDAgMCAxLTItMnYtMiJ9XSxbInBhdGgiLHtkOiJNNyA4aDgifV0sWyJwYXRoIix7ZDoiTTcgMTJoMTAifV0sWyJwYXRoIix7ZDoiTTcgMTZoNiJ9XV0sTHJyPVtbInBhdGgiLHtkOiJNMyA3VjVhMiAyIDAgMCAxIDItMmgyIn1dLFsicGF0aCIse2Q6Ik0xNyAzaDJhMiAyIDAgMCAxIDIgMnYyIn1dLFsicGF0aCIse2Q6Ik0yMSAxN3YyYTIgMiAwIDAgMS0yIDJoLTIifV0sWyJwYXRoIix7ZDoiTTcgMjFINWEyIDIgMCAwIDEtMi0ydi0yIn1dXSxBcnI9W1sicGF0aCIse2Q6Ik0xNCAyMXYtM2EyIDIgMCAwIDAtNCAwdjMifV0sWyJwYXRoIix7ZDoiTTE4IDV2MTYifV0sWyJwYXRoIix7ZDoibTQgNiA3LjEwNi0zLjc5YTIgMiAwIDAgMSAxLjc4OCAwTDIwIDYifV0sWyJwYXRoIix7ZDoibTYgMTEtMy41MiAyLjE0N2ExIDEgMCAwIDAtLjQ4Ljg1NFYxOWEyIDIgMCAwIDAgMiAyaDE2YTIgMiAwIDAgMCAyLTJ2LTVhMSAxIDAgMCAwLS40OC0uODUzTDE4IDExIn1dLFsicGF0aCIse2Q6Ik02IDV2MTYifV0sWyJjaXJjbGUiLHtjeDoiMTIiLGN5OiI5IixyOiIyIn1dXSxEcnI9W1sicGF0aCIse2Q6Ik01LjQyIDkuNDIgOCAxMiJ9XSxbImNpcmNsZSIse2N4OiI0IixjeToiOCIscjoiMiJ9XSxbInBhdGgiLHtkOiJtMTQgNi04LjU4IDguNTgifV0sWyJjaXJjbGUiLHtjeDoiNCIsY3k6IjE2IixyOiIyIn1dLFsicGF0aCIse2Q6Ik0xMC44IDE0LjggMTQgMTgifV0sWyJwYXRoIix7ZDoiTTE2IDEyaC0yIn1dLFsicGF0aCIse2Q6Ik0yMiAxMmgtMiJ9XV0sRXJyPVtbImNpcmNsZSIse2N4OiI2IixjeToiNiIscjoiMyJ9XSxbInBhdGgiLHtkOiJNOC4xMiA4LjEyIDEyIDEyIn1dLFsicGF0aCIse2Q6Ik0yMCA0IDguMTIgMTUuODgifV0sWyJjaXJjbGUiLHtjeDoiNiIsY3k6IjE4IixyOiIzIn1dLFsicGF0aCIse2Q6Ik0xNC44IDE0LjggMjAgMjAifV1dLCRycj1bWyJwYXRoIix7ZDoiTTIxIDRoLTMuNWwyIDExLjA1In1dLFsicGF0aCIse2Q6Ik02Ljk1IDE3aDUuMTQyYy41MjMgMCAuOTUtLjQwNiAxLjA2My0uOTE2YTYuNSA2LjUgMCAwIDEgNS4zNDUtNS4wMDkifV0sWyJjaXJjbGUiLHtjeDoiMTkuNSIsY3k6IjE3LjUiLHI6IjIuNSJ9XSxbImNpcmNsZSIse2N4OiI0LjUiLGN5OiIxNy41IixyOiIyLjUifV1dLElycj1bWyJwYXRoIix7ZDoiTTEzIDNINGEyIDIgMCAwIDAtMiAydjEwYTIgMiAwIDAgMCAyIDJoMTZhMiAyIDAgMCAwIDItMnYtMyJ9XSxbInBhdGgiLHtkOiJNOCAyMWg4In1dLFsicGF0aCIse2Q6Ik0xMiAxN3Y0In1dLFsicGF0aCIse2Q6Im0yMiAzLTUgNSJ9XSxbInBhdGgiLHtkOiJtMTcgMyA1IDUifV1dLFBycj1bWyJwYXRoIix7ZDoiTTEzIDNINGEyIDIgMCAwIDAtMiAydjEwYTIgMiAwIDAgMCAyIDJoMTZhMiAyIDAgMCAwIDItMnYtMyJ9XSxbInBhdGgiLHtkOiJNOCAyMWg4In1dLFsicGF0aCIse2Q6Ik0xMiAxN3Y0In1dLFsicGF0aCIse2Q6Im0xNyA4IDUtNSJ9XSxbInBhdGgiLHtkOiJNMTcgM2g1djUifV1dLE5ycj1bWyJwYXRoIix7ZDoiTTE5IDE3VjVhMiAyIDAgMCAwLTItMkg0In1dLFsicGF0aCIse2Q6Ik04IDIxaDEyYTIgMiAwIDAgMCAyLTJ2LTFhMSAxIDAgMCAwLTEtMUgxMWExIDEgMCAwIDAtMSAxdjFhMiAyIDAgMSAxLTQgMFY1YTIgMiAwIDEgMC00IDB2MmExIDEgMCAwIDAgMSAxaDMifV1dLEZycj1bWyJwYXRoIix7ZDoiTTE1IDEyaC01In1dLFsicGF0aCIse2Q6Ik0xNSA4aC01In1dLFsicGF0aCIse2Q6Ik0xOSAxN1Y1YTIgMiAwIDAgMC0yLTJINCJ9XSxbInBhdGgiLHtkOiJNOCAyMWgxMmEyIDIgMCAwIDAgMi0ydi0xYTEgMSAwIDAgMC0xLTFIMTFhMSAxIDAgMCAwLTEgMXYxYTIgMiAwIDEgMS00IDBWNWEyIDIgMCAxIDAtNCAwdjJhMSAxIDAgMCAwIDEgMWgzIn1dXSxPcnI9W1siY2lyY2xlIix7Y3g6IjExIixjeToiMTEiLHI6IjgifV0sWyJwYXRoIix7ZDoibTIxIDIxLTQuMy00LjMifV0sWyJwYXRoIix7ZDoiTTExIDd2NCJ9XSxbInBhdGgiLHtkOiJNMTEgMTVoLjAxIn1dXSxScnI9W1sicGF0aCIse2Q6Im04IDExIDIgMiA0LTQifV0sWyJjaXJjbGUiLHtjeDoiMTEiLGN5OiIxMSIscjoiOCJ9XSxbInBhdGgiLHtkOiJtMjEgMjEtNC4zLTQuMyJ9XV0sQnJyPVtbInBhdGgiLHtkOiJtMTMgMTMuNSAyLTIuNS0yLTIuNSJ9XSxbInBhdGgiLHtkOiJtMjEgMjEtNC4zLTQuMyJ9XSxbInBhdGgiLHtkOiJNOSA4LjUgNyAxMWwyIDIuNSJ9XSxbImNpcmNsZSIse2N4OiIxMSIsY3k6IjExIixyOiI4In1dXSxIcnI9W1sicGF0aCIse2Q6Im0xMy41IDguNS01IDUifV0sWyJjaXJjbGUiLHtjeDoiMTEiLGN5OiIxMSIscjoiOCJ9XSxbInBhdGgiLHtkOiJtMjEgMjEtNC4zLTQuMyJ9XV0scXJyPVtbInBhdGgiLHtkOiJtMTMuNSA4LjUtNSA1In1dLFsicGF0aCIse2Q6Im04LjUgOC41IDUgNSJ9XSxbImNpcmNsZSIse2N4OiIxMSIsY3k6IjExIixyOiI4In1dLFsicGF0aCIse2Q6Im0yMSAyMS00LjMtNC4zIn1dXSxqcnI9W1sicGF0aCIse2Q6Im0yMSAyMS00LjM0LTQuMzQifV0sWyJjaXJjbGUiLHtjeDoiMTEiLGN5OiIxMSIscjoiOCJ9XV0sVnJyPVtbInBhdGgiLHtkOiJNMTYgNWE0IDMgMCAwIDAtOCAwYzAgNCA4IDMgOCA3YTQgMyAwIDAgMS04IDAifV0sWyJwYXRoIix7ZDoiTTggMTlhNCAzIDAgMCAwIDggMGMwLTQtOC0zLTgtN2E0IDMgMCAwIDEgOCAwIn1dXSxaST1bWyJwYXRoIix7ZDoiTTMuNzE0IDMuMDQ4YS40OTguNDk4IDAgMCAwLS42ODMuNjI3bDIuODQzIDcuNjI3YTIgMiAwIDAgMSAwIDEuMzk2bC0yLjg0MiA3LjYyN2EuNDk4LjQ5OCAwIDAgMCAuNjgyLjYyN2wxOC04LjVhLjUuNSAwIDAgMCAwLS45MDR6In1dLFsicGF0aCIse2Q6Ik02IDEyaDE2In1dXSxVcnI9W1sicmVjdCIse3g6IjE0Iix5OiIxNCIsd2lkdGg6IjgiLGhlaWdodDoiOCIscng6IjIifV0sWyJyZWN0Iix7eDoiMiIseToiMiIsd2lkdGg6IjgiLGhlaWdodDoiOCIscng6IjIifV0sWyJwYXRoIix7ZDoiTTcgMTR2MWEyIDIgMCAwIDAgMiAyaDEifV0sWyJwYXRoIix7ZDoiTTE0IDdoMWEyIDIgMCAwIDEgMiAydjEifV1dLFdycj1bWyJwYXRoIix7ZDoiTTE0LjUzNiAyMS42ODZhLjUuNSAwIDAgMCAuOTM3LS4wMjRsNi41LTE5YS40OTYuNDk2IDAgMCAwLS42MzUtLjYzNWwtMTkgNi41YS41LjUgMCAwIDAtLjAyNC45MzdsNy45MyAzLjE4YTIgMiAwIDAgMSAxLjExMiAxLjExeiJ9XSxbInBhdGgiLHtkOiJtMjEuODU0IDIuMTQ3LTEwLjk0IDEwLjkzOSJ9XV0sR3JyPVtbInBhdGgiLHtkOiJNMTIgM3YxOCJ9XSxbInBhdGgiLHtkOiJtMTYgMTYgNC00LTQtNCJ9XSxbInBhdGgiLHtkOiJtOCA4LTQgNCA0IDQifV1dLFlycj1bWyJwYXRoIix7ZDoibTE2IDE2LTQgNC00LTQifV0sWyJwYXRoIix7ZDoiTTMgMTJoMTgifV0sWyJwYXRoIix7ZDoibTggOCA0LTQgNCA0In1dXSxacnI9W1sicGF0aCIse2Q6Im0xMC44NTIgMTQuNzcyLS4zODMuOTIzIn1dLFsicGF0aCIse2Q6Ik0xMy4xNDggMTQuNzcyYTMgMyAwIDEgMC0yLjI5Ni01LjU0NGwtLjM4My0uOTIzIn1dLFsicGF0aCIse2Q6Im0xMy4xNDggOS4yMjguMzgzLS45MjMifV0sWyJwYXRoIix7ZDoibTEzLjUzIDE1LjY5Ni0uMzgyLS45MjRhMyAzIDAgMSAxLTIuMjk2LTUuNTQ0In1dLFsicGF0aCIse2Q6Im0xNC43NzIgMTAuODUyLjkyMy0uMzgzIn1dLFsicGF0aCIse2Q6Im0xNC43NzIgMTMuMTQ4LjkyMy4zODMifV0sWyJwYXRoIix7ZDoiTTQuNSAxMEg0YTIgMiAwIDAgMS0yLTJWNGEyIDIgMCAwIDEgMi0yaDE2YTIgMiAwIDAgMSAyIDJ2NGEyIDIgMCAwIDEtMiAyaC0uNSJ9XSxbInBhdGgiLHtkOiJNNC41IDE0SDRhMiAyIDAgMCAwLTIgMnY0YTIgMiAwIDAgMCAyIDJoMTZhMiAyIDAgMCAwIDItMnYtNGEyIDIgMCAwIDAtMi0yaC0uNSJ9XSxbInBhdGgiLHtkOiJNNiAxOGguMDEifV0sWyJwYXRoIix7ZDoiTTYgNmguMDEifV0sWyJwYXRoIix7ZDoibTkuMjI4IDEwLjg1Mi0uOTIzLS4zODMifV0sWyJwYXRoIix7ZDoibTkuMjI4IDEzLjE0OC0uOTIzLjM4MyJ9XV0sWHJyPVtbInBhdGgiLHtkOiJNNiAxMEg0YTIgMiAwIDAgMS0yLTJWNGEyIDIgMCAwIDEgMi0yaDE2YTIgMiAwIDAgMSAyIDJ2NGEyIDIgMCAwIDEtMiAyaC0yIn1dLFsicGF0aCIse2Q6Ik02IDE0SDRhMiAyIDAgMCAwLTIgMnY0YTIgMiAwIDAgMCAyIDJoMTZhMiAyIDAgMCAwIDItMnYtNGEyIDIgMCAwIDAtMi0yaC0yIn1dLFsicGF0aCIse2Q6Ik02IDZoLjAxIn1dLFsicGF0aCIse2Q6Ik02IDE4aC4wMSJ9XSxbInBhdGgiLHtkOiJtMTMgNi00IDZoNmwtNCA2In1dXSxRcnI9W1sicGF0aCIse2Q6Ik03IDJoMTNhMiAyIDAgMCAxIDIgMnY0YTIgMiAwIDAgMS0yIDJoLTUifV0sWyJwYXRoIix7ZDoiTTEwIDEwIDIuNSAyLjVDMiAyIDIgMi41IDIgNXYzYTIgMiAwIDAgMCAyIDJoNnoifV0sWyJwYXRoIix7ZDoiTTIyIDE3di0xYTIgMiAwIDAgMC0yLTJoLTEifV0sWyJwYXRoIix7ZDoiTTQgMTRhMiAyIDAgMCAwLTIgMnY0YTIgMiAwIDAgMCAyIDJoMTYuNWwxLS41LjUuNS04LThINHoifV0sWyJwYXRoIix7ZDoiTTYgMThoLjAxIn1dLFsicGF0aCIse2Q6Im0yIDIgMjAgMjAifV1dLEpycj1bWyJyZWN0Iix7d2lkdGg6IjIwIixoZWlnaHQ6IjgiLHg6IjIiLHk6IjIiLHJ4OiIyIixyeToiMiJ9XSxbInJlY3QiLHt3aWR0aDoiMjAiLGhlaWdodDoiOCIseDoiMiIseToiMTQiLHJ4OiIyIixyeToiMiJ9XSxbImxpbmUiLHt4MToiNiIseDI6IjYuMDEiLHkxOiI2Iix5MjoiNiJ9XSxbImxpbmUiLHt4MToiNiIseDI6IjYuMDEiLHkxOiIxOCIseTI6IjE4In1dXSxLcnI9W1sicGF0aCIse2Q6Ik0xNCAxN0g1In1dLFsicGF0aCIse2Q6Ik0xOSA3aC05In1dLFsiY2lyY2xlIix7Y3g6IjE3IixjeToiMTciLHI6IjMifV0sWyJjaXJjbGUiLHtjeDoiNyIsY3k6IjciLHI6IjMifV1dLGUxcj1bWyJwYXRoIix7ZDoiTTkuNjcxIDQuMTM2YTIuMzQgMi4zNCAwIDAgMSA0LjY1OSAwIDIuMzQgMi4zNCAwIDAgMCAzLjMxOSAxLjkxNSAyLjM0IDIuMzQgMCAwIDEgMi4zMyA0LjAzMyAyLjM0IDIuMzQgMCAwIDAgMCAzLjgzMSAyLjM0IDIuMzQgMCAwIDEtMi4zMyA0LjAzMyAyLjM0IDIuMzQgMCAwIDAtMy4zMTkgMS45MTUgMi4zNCAyLjM0IDAgMCAxLTQuNjU5IDAgMi4zNCAyLjM0IDAgMCAwLTMuMzItMS45MTUgMi4zNCAyLjM0IDAgMCAxLTIuMzMtNC4wMzMgMi4zNCAyLjM0IDAgMCAwIDAtMy44MzFBMi4zNCAyLjM0IDAgMCAxIDYuMzUgNi4wNTFhMi4zNCAyLjM0IDAgMCAwIDMuMzE5LTEuOTE1In1dLFsiY2lyY2xlIix7Y3g6IjEyIixjeToiMTIiLHI6IjMifV1dLHQxcj1bWyJwYXRoIix7ZDoiTTguMyAxMGEuNy43IDAgMCAxLS42MjYtMS4wNzlMMTEuNCAzYS43LjcgMCAwIDEgMS4xOTgtLjA0M0wxNi4zIDguOWEuNy43IDAgMCAxLS41NzIgMS4xWiJ9XSxbInJlY3QiLHt4OiIzIix5OiIxNCIsd2lkdGg6IjciLGhlaWdodDoiNyIscng6IjEifV0sWyJjaXJjbGUiLHtjeDoiMTcuNSIsY3k6IjE3LjUiLHI6IjMuNSJ9XV0scjFyPVtbImNpcmNsZSIse2N4OiIxOCIsY3k6IjUiLHI6IjMifV0sWyJjaXJjbGUiLHtjeDoiNiIsY3k6IjEyIixyOiIzIn1dLFsiY2lyY2xlIix7Y3g6IjE4IixjeToiMTkiLHI6IjMifV0sWyJsaW5lIix7eDE6IjguNTkiLHgyOiIxNS40MiIseTE6IjEzLjUxIix5MjoiMTcuNDkifV0sWyJsaW5lIix7eDE6IjE1LjQxIix4MjoiOC41OSIseTE6IjYuNTEiLHkyOiIxMC40OSJ9XV0saTFyPVtbInBhdGgiLHtkOiJNMTIgMnYxMyJ9XSxbInBhdGgiLHtkOiJtMTYgNi00LTQtNCA0In1dLFsicGF0aCIse2Q6Ik00IDEydjhhMiAyIDAgMCAwIDIgMmgxMmEyIDIgMCAwIDAgMi0ydi04In1dXSxhMXI9W1sicmVjdCIse3dpZHRoOiIxOCIsaGVpZ2h0OiIxOCIseDoiMyIseToiMyIscng6IjIiLHJ5OiIyIn1dLFsibGluZSIse3gxOiIzIix4MjoiMjEiLHkxOiI5Iix5MjoiOSJ9XSxbImxpbmUiLHt4MToiMyIseDI6IjIxIix5MToiMTUiLHkyOiIxNSJ9XSxbImxpbmUiLHt4MToiOSIseDI6IjkiLHkxOiI5Iix5MjoiMjEifV0sWyJsaW5lIix7eDE6IjE1Iix4MjoiMTUiLHkxOiI5Iix5MjoiMjEifV1dLG4xcj1bWyJwYXRoIix7ZDoiTTE0IDExYTIgMiAwIDEgMS00IDAgNCA0IDAgMCAxIDggMCA2IDYgMCAwIDEtMTIgMCA4IDggMCAwIDEgMTYgMCAxMCAxMCAwIDEgMS0yMCAwIDExLjkzIDExLjkzIDAgMCAxIDIuNDItNy4yMiAyIDIgMCAxIDEgMy4xNiAyLjQ0In1dXSxvMXI9W1sicGF0aCIse2Q6Ik0yMCAxM2MwIDUtMy41IDcuNS03LjY2IDguOTVhMSAxIDAgMCAxLS42Ny0uMDFDNy41IDIwLjUgNCAxOCA0IDEzVjZhMSAxIDAgMCAxIDEtMWMyIDAgNC41LTEuMiA2LjI0LTIuNzJhMS4xNyAxLjE3IDAgMCAxIDEuNTIgMEMxNC41MSAzLjgxIDE3IDUgMTkgNWExIDEgMCAwIDEgMSAxeiJ9XSxbInBhdGgiLHtkOiJNMTIgOHY0In1dLFsicGF0aCIse2Q6Ik0xMiAxNmguMDEifV1dLHMxcj1bWyJwYXRoIix7ZDoiTTIwIDEzYzAgNS0zLjUgNy41LTcuNjYgOC45NWExIDEgMCAwIDEtLjY3LS4wMUM3LjUgMjAuNSA0IDE4IDQgMTNWNmExIDEgMCAwIDEgMS0xYzIgMCA0LjUtMS4yIDYuMjQtMi43MmExLjE3IDEuMTcgMCAwIDEgMS41MiAwQzE0LjUxIDMuODEgMTcgNSAxOSA1YTEgMSAwIDAgMSAxIDF6In1dLFsicGF0aCIse2Q6Im00LjI0MyA1LjIxIDE0LjM5IDEyLjQ3MiJ9XV0sbDFyPVtbInBhdGgiLHtkOiJNMjAgMTNjMCA1LTMuNSA3LjUtNy42NiA4Ljk1YTEgMSAwIDAgMS0uNjctLjAxQzcuNSAyMC41IDQgMTggNCAxM1Y2YTEgMSAwIDAgMSAxLTFjMiAwIDQuNS0xLjIgNi4yNC0yLjcyYTEuMTcgMS4xNyAwIDAgMSAxLjUyIDBDMTQuNTEgMy44MSAxNyA1IDE5IDVhMSAxIDAgMCAxIDEgMXoifV0sWyJwYXRoIix7ZDoibTkgMTIgMiAyIDQtNCJ9XV0sYzFyPVtbInBhdGgiLHtkOiJNMjAgMTNjMCA1LTMuNSA3LjUtNy42NiA4Ljk1YTEgMSAwIDAgMS0uNjctLjAxQzcuNSAyMC41IDQgMTggNCAxM1Y2YTEgMSAwIDAgMSAxLTFjMiAwIDQuNS0xLjIgNi4yNC0yLjcyYTEuMTcgMS4xNyAwIDAgMSAxLjUyIDBDMTQuNTEgMy44MSAxNyA1IDE5IDVhMSAxIDAgMCAxIDEgMXoifV0sWyJwYXRoIix7ZDoiTTggMTJoLjAxIn1dLFsicGF0aCIse2Q6Ik0xMiAxMmguMDEifV0sWyJwYXRoIix7ZDoiTTE2IDEyaC4wMSJ9XV0sZDFyPVtbInBhdGgiLHtkOiJNMjAgMTNjMCA1LTMuNSA3LjUtNy42NiA4Ljk1YTEgMSAwIDAgMS0uNjctLjAxQzcuNSAyMC41IDQgMTggNCAxM1Y2YTEgMSAwIDAgMSAxLTFjMiAwIDQuNS0xLjIgNi4yNC0yLjcyYTEuMTcgMS4xNyAwIDAgMSAxLjUyIDBDMTQuNTEgMy44MSAxNyA1IDE5IDVhMSAxIDAgMCAxIDEgMXoifV0sWyJwYXRoIix7ZDoiTTEyIDIyVjIifV1dLHUxcj1bWyJwYXRoIix7ZDoiTTIwIDEzYzAgNS0zLjUgNy41LTcuNjYgOC45NWExIDEgMCAwIDEtLjY3LS4wMUM3LjUgMjAuNSA0IDE4IDQgMTNWNmExIDEgMCAwIDEgMS0xYzIgMCA0LjUtMS4yIDYuMjQtMi43MmExLjE3IDEuMTcgMCAwIDEgMS41MiAwQzE0LjUxIDMuODEgMTcgNSAxOSA1YTEgMSAwIDAgMSAxIDF6In1dLFsicGF0aCIse2Q6Ik05IDEyaDYifV1dLHAxcj1bWyJwYXRoIix7ZDoibTIgMiAyMCAyMCJ9XSxbInBhdGgiLHtkOiJNNSA1YTEgMSAwIDAgMC0xIDF2N2MwIDUgMy41IDcuNSA3LjY3IDguOTRhMSAxIDAgMCAwIC42Ny4wMWMyLjM1LS44MiA0LjQ4LTEuOTcgNS45LTMuNzEifV0sWyJwYXRoIix7ZDoiTTkuMzA5IDMuNjUyQTEyLjI1MiAxMi4yNTIgMCAwIDAgMTEuMjQgMi4yOGExLjE3IDEuMTcgMCAwIDEgMS41MiAwQzE0LjUxIDMuODEgMTcgNSAxOSA1YTEgMSAwIDAgMSAxIDF2N2E5Ljc4NCA5Ljc4NCAwIDAgMS0uMDggMS4yNjQifV1dLGgxcj1bWyJwYXRoIix7ZDoiTTIwIDEzYzAgNS0zLjUgNy41LTcuNjYgOC45NWExIDEgMCAwIDEtLjY3LS4wMUM3LjUgMjAuNSA0IDE4IDQgMTNWNmExIDEgMCAwIDEgMS0xYzIgMCA0LjUtMS4yIDYuMjQtMi43MmExLjE3IDEuMTcgMCAwIDEgMS41MiAwQzE0LjUxIDMuODEgMTcgNSAxOSA1YTEgMSAwIDAgMSAxIDF6In1dLFsicGF0aCIse2Q6Ik05IDEyaDYifV0sWyJwYXRoIix7ZDoiTTEyIDl2NiJ9XV0sWEk9W1sicGF0aCIse2Q6Ik0yMCAxM2MwIDUtMy41IDcuNS03LjY2IDguOTVhMSAxIDAgMCAxLS42Ny0uMDFDNy41IDIwLjUgNCAxOCA0IDEzVjZhMSAxIDAgMCAxIDEtMWMyIDAgNC41LTEuMiA2LjI0LTIuNzJhMS4xNyAxLjE3IDAgMCAxIDEuNTIgMEMxNC41MSAzLjgxIDE3IDUgMTkgNWExIDEgMCAwIDEgMSAxeiJ9XSxbInBhdGgiLHtkOiJNOS4xIDlhMyAzIDAgMCAxIDUuODIgMWMwIDItMyAzLTMgMyJ9XSxbInBhdGgiLHtkOiJNMTIgMTdoLjAxIn1dXSxmMXI9W1sicGF0aCIse2Q6Ik0yMCAxM2MwIDUtMy41IDcuNS03LjY2IDguOTVhMSAxIDAgMCAxLS42Ny0uMDFDNy41IDIwLjUgNCAxOCA0IDEzVjZhMSAxIDAgMCAxIDEtMWMyIDAgNC41LTEuMiA2LjI0LTIuNzJhMS4xNyAxLjE3IDAgMCAxIDEuNTIgMEMxNC41MSAzLjgxIDE3IDUgMTkgNWExIDEgMCAwIDEgMSAxeiJ9XSxbInBhdGgiLHtkOiJNNi4zNzYgMTguOTFhNiA2IDAgMCAxIDExLjI0OS4wMDMifV0sWyJjaXJjbGUiLHtjeDoiMTIiLGN5OiIxMSIscjoiNCJ9XV0sUUk9W1sicGF0aCIse2Q6Ik0yMCAxM2MwIDUtMy41IDcuNS03LjY2IDguOTVhMSAxIDAgMCAxLS42Ny0uMDFDNy41IDIwLjUgNCAxOCA0IDEzVjZhMSAxIDAgMCAxIDEtMWMyIDAgNC41LTEuMiA2LjI0LTIuNzJhMS4xNyAxLjE3IDAgMCAxIDEuNTIgMEMxNC41MSAzLjgxIDE3IDUgMTkgNWExIDEgMCAwIDEgMSAxeiJ9XSxbInBhdGgiLHtkOiJtMTQuNSA5LjUtNSA1In1dLFsicGF0aCIse2Q6Im05LjUgOS41IDUgNSJ9XV0sbTFyPVtbInBhdGgiLHtkOiJNMjAgMTNjMCA1LTMuNSA3LjUtNy42NiA4Ljk1YTEgMSAwIDAgMS0uNjctLjAxQzcuNSAyMC41IDQgMTggNCAxM1Y2YTEgMSAwIDAgMSAxLTFjMiAwIDQuNS0xLjIgNi4yNC0yLjcyYTEuMTcgMS4xNyAwIDAgMSAxLjUyIDBDMTQuNTEgMy44MSAxNyA1IDE5IDVhMSAxIDAgMCAxIDEgMXoifV1dLGcxcj1bWyJjaXJjbGUiLHtjeDoiMTIiLGN5OiIxMiIscjoiOCJ9XSxbInBhdGgiLHtkOiJNMTIgMnY3LjUifV0sWyJwYXRoIix7ZDoibTE5IDUtNS4yMyA1LjIzIn1dLFsicGF0aCIse2Q6Ik0yMiAxMmgtNy41In1dLFsicGF0aCIse2Q6Im0xOSAxOS01LjIzLTUuMjMifV0sWyJwYXRoIix7ZDoiTTEyIDE0LjVWMjIifV0sWyJwYXRoIix7ZDoiTTEwLjIzIDEzLjc3IDUgMTkifV0sWyJwYXRoIix7ZDoiTTkuNSAxMkgyIn1dLFsicGF0aCIse2Q6Ik0xMC4yMyAxMC4yMyA1IDUifV0sWyJjaXJjbGUiLHtjeDoiMTIiLGN5OiIxMiIscjoiMi41In1dXSxiMXI9W1sicGF0aCIse2Q6Ik0xMiAxMC4xODlWMTQifV0sWyJwYXRoIix7ZDoiTTEyIDJ2MyJ9XSxbInBhdGgiLHtkOiJNMTkgMTNWN2EyIDIgMCAwIDAtMi0ySDdhMiAyIDAgMCAwLTIgMnY2In1dLFsicGF0aCIse2Q6Ik0xOS4zOCAyMEExMS42IDExLjYgMCAwIDAgMjEgMTRsLTguMTg4LTMuNjM5YTIgMiAwIDAgMC0xLjYyNCAwTDMgMTRhMTEuNiAxMS42IDAgMCAwIDIuODEgNy43NiJ9XSxbInBhdGgiLHtkOiJNMiAyMWMuNi41IDEuMiAxIDIuNSAxIDIuNSAwIDIuNS0yIDUtMiAxLjMgMCAxLjkuNSAyLjUgMXMxLjIgMSAyLjUgMWMyLjUgMCAyLjUtMiA1LTIgMS4zIDAgMS45LjUgMi41IDEifV1dLHYxcj1bWyJwYXRoIix7ZDoiTTIwLjM4IDMuNDYgMTYgMmE0IDQgMCAwIDEtOCAwTDMuNjIgMy40NmEyIDIgMCAwIDAtMS4zNCAyLjIzbC41OCAzLjQ3YTEgMSAwIDAgMCAuOTkuODRINnYxMGMwIDEuMS45IDIgMiAyaDhhMiAyIDAgMCAwIDItMlYxMGgyLjE1YTEgMSAwIDAgMCAuOTktLjg0bC41OC0zLjQ3YTIgMiAwIDAgMC0xLjM0LTIuMjN6In1dXSx4MXI9W1sicGF0aCIse2Q6Ik0xNiAxMGE0IDQgMCAwIDEtOCAwIn1dLFsicGF0aCIse2Q6Ik0zLjEwMyA2LjAzNGgxNy43OTQifV0sWyJwYXRoIix7ZDoiTTMuNCA1LjQ2N2EyIDIgMCAwIDAtLjQgMS4yVjIwYTIgMiAwIDAgMCAyIDJoMTRhMiAyIDAgMCAwIDItMlY2LjY2N2EyIDIgMCAwIDAtLjQtMS4ybC0yLTIuNjY3QTIgMiAwIDAgMCAxNyAySDdhMiAyIDAgMCAwLTEuNi44eiJ9XV0seTFyPVtbInBhdGgiLHtkOiJtMTUgMTEtMSA5In1dLFsicGF0aCIse2Q6Im0xOSAxMS00LTcifV0sWyJwYXRoIix7ZDoiTTIgMTFoMjAifV0sWyJwYXRoIix7ZDoibTMuNSAxMSAxLjYgNy40YTIgMiAwIDAgMCAyIDEuNmg5LjhhMiAyIDAgMCAwIDItMS42bDEuNy03LjQifV0sWyJwYXRoIix7ZDoiTTQuNSAxNS41aDE1In1dLFsicGF0aCIse2Q6Im01IDExIDQtNyJ9XSxbInBhdGgiLHtkOiJtOSAxMSAxIDkifV1dLHcxcj1bWyJjaXJjbGUiLHtjeDoiOCIsY3k6IjIxIixyOiIxIn1dLFsiY2lyY2xlIix7Y3g6IjE5IixjeToiMjEiLHI6IjEifV0sWyJwYXRoIix7ZDoiTTIuMDUgMi4wNWgybDIuNjYgMTIuNDJhMiAyIDAgMCAwIDIgMS41OGg5Ljc4YTIgMiAwIDAgMCAxLjk1LTEuNTdsMS42NS03LjQzSDUuMTIifV1dLE0xcj1bWyJwYXRoIix7ZDoiTTIxLjU2IDQuNTZhMS41IDEuNSAwIDAgMSAwIDIuMTIybC0uNDcuNDdhMyAzIDAgMCAxLTQuMjEyLS4wMyAzIDMgMCAwIDEgMC00LjI0M2wuNDQtLjQ0YTEuNSAxLjUgMCAwIDEgMi4xMjEgMHoifV0sWyJwYXRoIix7ZDoiTTMgMjJhMSAxIDAgMCAxLTEtMXYtMy41ODZhMSAxIDAgMCAxIC4yOTMtLjcwN2wzLjM1NS0zLjM1NWExLjIwNSAxLjIwNSAwIDAgMSAxLjcwNCAwbDMuMjk2IDMuMjk2YTEuMjA1IDEuMjA1IDAgMCAxIDAgMS43MDRsLTMuMzU1IDMuMzU1YTEgMSAwIDAgMS0uNzA3LjI5M3oifV0sWyJwYXRoIix7ZDoibTkgMTUgNy44NzktNy44NzgifV1dLGsxcj1bWyJwYXRoIix7ZDoibTQgNCAyLjUgMi41In1dLFsicGF0aCIse2Q6Ik0xMy41IDYuNWE0Ljk1IDQuOTUgMCAwIDAtNyA3In1dLFsicGF0aCIse2Q6Ik0xNSA1IDUgMTUifV0sWyJwYXRoIix7ZDoiTTE0IDE3di4wMSJ9XSxbInBhdGgiLHtkOiJNMTAgMTZ2LjAxIn1dLFsicGF0aCIse2Q6Ik0xMyAxM3YuMDEifV0sWyJwYXRoIix7ZDoiTTE2IDEwdi4wMSJ9XSxbInBhdGgiLHtkOiJNMTEgMjB2LjAxIn1dLFsicGF0aCIse2Q6Ik0xNyAxNHYuMDEifV0sWyJwYXRoIix7ZDoiTTIwIDExdi4wMSJ9XV0sUzFyPVtbInBhdGgiLHtkOiJNNCAxM1Y0YTIgMiAwIDAgMSAyLTJoOGEyLjQgMi40IDAgMCAxIDEuNzA2LjcwNmwzLjU4OCAzLjU4OEEyLjQgMi40IDAgMCAxIDIwIDh2NSJ9XSxbInBhdGgiLHtkOiJNMTQgMnY1YTEgMSAwIDAgMCAxIDFoNSJ9XSxbInBhdGgiLHtkOiJNMTAgMjJ2LTUifV0sWyJwYXRoIix7ZDoiTTE0IDE5di0yIn1dLFsicGF0aCIse2Q6Ik0xOCAyMHYtMyJ9XSxbInBhdGgiLHtkOiJNMiAxM2gyMCJ9XSxbInBhdGgiLHtkOiJNNiAyMHYtMyJ9XV0sejFyPVtbInBhdGgiLHtkOiJNMTEgMTJoLjAxIn1dLFsicGF0aCIse2Q6Ik0xMyAyMmMuNS0uNSAxLjEyLTEgMi41LTEtMS4zOCAwLTItLjUtMi41LTEifV0sWyJwYXRoIix7ZDoiTTE0IDJhMy4yOCAzLjI4IDAgMCAxLTMuMjI3IDEuNzk4bC02LjE3LS41NjFBMi4zODcgMi4zODcgMCAxIDAgNC4zODcgOEgxNS41YTEgMSAwIDAgMSAwIDEzIDEgMSAwIDAgMCAwLTVIMTJhNyA3IDAgMCAxLTctN1Y4In1dLFsicGF0aCIse2Q6Ik0xNCA4YTguNSA4LjUgMCAwIDEgMCA4In1dLFsicGF0aCIse2Q6Ik0xNiAxNmMyIDAgNC41LTQgNC02In1dXSxDMXI9W1sicGF0aCIse2Q6Im0xNSAxNSA2IDZtLTYtNnY0LjhtMC00LjhoNC44In1dLFsicGF0aCIse2Q6Ik05IDE5LjhWMTVtMCAwSDQuMk05IDE1bC02IDYifV0sWyJwYXRoIix7ZDoiTTE1IDQuMlY5bTAgMGg0LjhNMTUgOWw2LTYifV0sWyJwYXRoIix7ZDoiTTkgNC4yVjltMCAwSDQuMk05IDkgMyAzIn1dXSxUMXI9W1sicGF0aCIse2Q6Im0xOCAxNCA0IDQtNCA0In1dLFsicGF0aCIse2Q6Im0xOCAyIDQgNC00IDQifV0sWyJwYXRoIix7ZDoiTTIgMThoMS45NzNhNCA0IDAgMCAwIDMuMy0xLjdsNS40NTQtOC42YTQgNCAwIDAgMSAzLjMtMS43SDIyIn1dLFsicGF0aCIse2Q6Ik0yIDZoMS45NzJhNCA0IDAgMCAxIDMuNiAyLjIifV0sWyJwYXRoIix7ZDoiTTIyIDE4aC02LjA0MWE0IDQgMCAwIDEtMy4zLTEuOGwtLjM1OS0uNDUifV1dLF8xcj1bWyJwYXRoIix7ZDoiTTEyIDIydi01LjE3MmEyIDIgMCAwIDAtLjU4Ni0xLjQxNEw5LjUgMTMuNSJ9XSxbInBhdGgiLHtkOiJNMTQuNSAxNC41IDEyIDE3In1dLFsicGF0aCIse2Q6Ik0xNyA4LjhBNiA2IDAgMCAxIDEzLjggMjBIMTBBNi41IDYuNSAwIDAgMSA3IDhhNSA1IDAgMCAxIDEwIDB6In1dXSxMMXI9W1sicGF0aCIse2Q6Ik0xOCA3VjVhMSAxIDAgMCAwLTEtMUg2LjVhLjUuNSAwIDAgMC0uNC44bDQuNSA2YTIgMiAwIDAgMSAwIDIuNGwtNC41IDZhLjUuNSAwIDAgMCAuNC44SDE3YTEgMSAwIDAgMCAxLTF2LTIifV1dLEExcj1bWyJwYXRoIix7ZDoiTTIgMjBoLjAxIn1dLFsicGF0aCIse2Q6Ik03IDIwdi00In1dLFsicGF0aCIse2Q6Ik0xMiAyMHYtOCJ9XSxbInBhdGgiLHtkOiJNMTcgMjBWOCJ9XV0sRDFyPVtbInBhdGgiLHtkOiJNMiAyMGguMDEifV0sWyJwYXRoIix7ZDoiTTcgMjB2LTQifV1dLEUxcj1bWyJwYXRoIix7ZDoiTTIgMjBoLjAxIn1dLFsicGF0aCIse2Q6Ik03IDIwdi00In1dLFsicGF0aCIse2Q6Ik0xMiAyMHYtOCJ9XV0sJDFyPVtbInBhdGgiLHtkOiJNMiAyMGguMDEifV1dLEkxcj1bWyJwYXRoIix7ZDoiTTIgMjBoLjAxIn1dLFsicGF0aCIse2Q6Ik03IDIwdi00In1dLFsicGF0aCIse2Q6Ik0xMiAyMHYtOCJ9XSxbInBhdGgiLHtkOiJNMTcgMjBWOCJ9XSxbInBhdGgiLHtkOiJNMjIgNHYxNiJ9XV0sUDFyPVtbInBhdGgiLHtkOiJtMjEgMTctMi4xNTYtMS44NjhBLjUuNSAwIDAgMCAxOCAxNS41di41YTEgMSAwIDAgMS0xIDFoLTJhMSAxIDAgMCAxLTEtMWMwLTIuNTQ1LTMuOTkxLTMuOTctOC41LTRhMSAxIDAgMCAwIDAgNWM0LjE1MyAwIDQuNzQ1LTExLjI5NSA1LjcwOC0xMy41YTIuNSAyLjUgMCAxIDEgMy4zMSAzLjI4NCJ9XSxbInBhdGgiLHtkOiJNMyAyMWgxOCJ9XV0sTjFyPVtbInBhdGgiLHtkOiJNMTAgOUg0TDIgN2wyLTJoNiJ9XSxbInBhdGgiLHtkOiJNMTQgNWg2bDIgMi0yIDJoLTYifV0sWyJwYXRoIix7ZDoiTTEwIDIyVjRhMiAyIDAgMSAxIDQgMHYxOCJ9XSxbInBhdGgiLHtkOiJNOCAyMmg4In1dXSxGMXI9W1sicGF0aCIse2Q6Ik0xMiAxM3Y4In1dLFsicGF0aCIse2Q6Ik0xMiAzdjMifV0sWyJwYXRoIix7ZDoiTTE4IDZhMiAyIDAgMCAxIDEuMzg3LjU2bDIuMzA3IDIuMjJhMSAxIDAgMCAxIDAgMS40NGwtMi4zMDcgMi4yMkEyIDIgMCAwIDEgMTggMTNINmEyIDIgMCAwIDEtMS4zODctLjU2bC0yLjMwNi0yLjIyYTEgMSAwIDAgMSAwLTEuNDRsMi4zMDYtMi4yMkEyIDIgMCAwIDEgNiA2eiJ9XV0sTzFyPVtbInBhdGgiLHtkOiJNNyAxOHYtNmE1IDUgMCAxIDEgMTAgMHY2In1dLFsicGF0aCIse2Q6Ik01IDIxYTEgMSAwIDAgMCAxIDFoMTJhMSAxIDAgMCAwIDEtMXYtMWEyIDIgMCAwIDAtMi0ySDdhMiAyIDAgMCAwLTIgMnoifV0sWyJwYXRoIix7ZDoiTTIxIDEyaDEifV0sWyJwYXRoIix7ZDoiTTE4LjUgNC41IDE4IDUifV0sWyJwYXRoIix7ZDoiTTIgMTJoMSJ9XSxbInBhdGgiLHtkOiJNMTIgMnYxIn1dLFsicGF0aCIse2Q6Im00LjkyOSA0LjkyOS43MDcuNzA3In1dLFsicGF0aCIse2Q6Ik0xMiAxMnY2In1dXSxSMXI9W1sicGF0aCIse2Q6Ik0xNy45NzEgNC4yODVBMiAyIDAgMCAxIDIxIDZ2MTJhMiAyIDAgMCAxLTMuMDI5IDEuNzE1bC05Ljk5Ny01Ljk5OGEyIDIgMCAwIDEtLjAwMy0zLjQzMnoifV0sWyJwYXRoIix7ZDoiTTMgMjBWNCJ9XV0sQjFyPVtbInBhdGgiLHtkOiJNMjEgNHYxNiJ9XSxbInBhdGgiLHtkOiJNNi4wMjkgNC4yODVBMiAyIDAgMCAwIDMgNnYxMmEyIDIgMCAwIDAgMy4wMjkgMS43MTVsOS45OTctNS45OThhMiAyIDAgMCAwIC4wMDMtMy40MzJ6In1dXSxIMXI9W1sicGF0aCIse2Q6Im0xMi41IDE3LS41LTEtLjUgMWgxeiJ9XSxbInBhdGgiLHtkOiJNMTUgMjJhMSAxIDAgMCAwIDEtMXYtMWEyIDIgMCAwIDAgMS41Ni0zLjI1IDggOCAwIDEgMC0xMS4xMiAwQTIgMiAwIDAgMCA4IDIwdjFhMSAxIDAgMCAwIDEgMXoifV0sWyJjaXJjbGUiLHtjeDoiMTUiLGN5OiIxMiIscjoiMSJ9XSxbImNpcmNsZSIse2N4OiI5IixjeToiMTIiLHI6IjEifV1dLHExcj1bWyJyZWN0Iix7d2lkdGg6IjMiLGhlaWdodDoiOCIseDoiMTMiLHk6IjIiLHJ4OiIxLjUifV0sWyJwYXRoIix7ZDoiTTE5IDguNVYxMGgxLjVBMS41IDEuNSAwIDEgMCAxOSA4LjUifV0sWyJyZWN0Iix7d2lkdGg6IjMiLGhlaWdodDoiOCIseDoiOCIseToiMTQiLHJ4OiIxLjUifV0sWyJwYXRoIix7ZDoiTTUgMTUuNVYxNEgzLjVBMS41IDEuNSAwIDEgMCA1IDE1LjUifV0sWyJyZWN0Iix7d2lkdGg6IjgiLGhlaWdodDoiMyIseDoiMTQiLHk6IjEzIixyeDoiMS41In1dLFsicGF0aCIse2Q6Ik0xNS41IDE5SDE0djEuNWExLjUgMS41IDAgMSAwIDEuNS0xLjUifV0sWyJyZWN0Iix7d2lkdGg6IjgiLGhlaWdodDoiMyIseDoiMiIseToiOCIscng6IjEuNSJ9XSxbInBhdGgiLHtkOiJNOC41IDVIMTBWMy41QTEuNSAxLjUgMCAxIDAgOC41IDUifV1dLGoxcj1bWyJwYXRoIix7ZDoiTTIyIDIgMiAyMiJ9XV0sVjFyPVtbInBhdGgiLHtkOiJNMTEgMTYuNTg2VjE5YTEgMSAwIDAgMS0xIDFIMkwxOC4zNyAzLjYzYTEgMSAwIDEgMSAzIDNsLTkuNjYzIDkuNjYzYTEgMSAwIDAgMS0xLjQxNCAwTDggMTQifV1dLFUxcj1bWyJwYXRoIix7ZDoiTTEwIDVIMyJ9XSxbInBhdGgiLHtkOiJNMTIgMTlIMyJ9XSxbInBhdGgiLHtkOiJNMTQgM3Y0In1dLFsicGF0aCIse2Q6Ik0xNiAxN3Y0In1dLFsicGF0aCIse2Q6Ik0yMSAxMmgtOSJ9XSxbInBhdGgiLHtkOiJNMjEgMTloLTUifV0sWyJwYXRoIix7ZDoiTTIxIDVoLTcifV0sWyJwYXRoIix7ZDoiTTggMTB2NCJ9XSxbInBhdGgiLHtkOiJNOCAxMkgzIn1dXSxKST1bWyJwYXRoIix7ZDoiTTEwIDhoNCJ9XSxbInBhdGgiLHtkOiJNMTIgMjF2LTkifV0sWyJwYXRoIix7ZDoiTTEyIDhWMyJ9XSxbInBhdGgiLHtkOiJNMTcgMTZoNCJ9XSxbInBhdGgiLHtkOiJNMTkgMTJWMyJ9XSxbInBhdGgiLHtkOiJNMTkgMjF2LTUifV0sWyJwYXRoIix7ZDoiTTMgMTRoNCJ9XSxbInBhdGgiLHtkOiJNNSAxMFYzIn1dLFsicGF0aCIse2Q6Ik01IDIxdi03In1dXSxXMXI9W1sicmVjdCIse3dpZHRoOiIxNCIsaGVpZ2h0OiIyMCIseDoiNSIseToiMiIscng6IjIiLHJ5OiIyIn1dLFsicGF0aCIse2Q6Ik0xMi42NjcgOCAxMCAxMmg0bC0yLjY2NyA0In1dXSxHMXI9W1sicmVjdCIse3dpZHRoOiI3IixoZWlnaHQ6IjEyIix4OiIyIix5OiI2IixyeDoiMSJ9XSxbInBhdGgiLHtkOiJNMTMgOC4zMmE3LjQzIDcuNDMgMCAwIDEgMCA3LjM2In1dLFsicGF0aCIse2Q6Ik0xNi40NiA2LjIxYTExLjc2IDExLjc2IDAgMCAxIDAgMTEuNTgifV0sWyJwYXRoIix7ZDoiTTE5LjkxIDQuMWExNS45MSAxNS45MSAwIDAgMSAuMDEgMTUuOCJ9XV0sWTFyPVtbInJlY3QiLHt3aWR0aDoiMTQiLGhlaWdodDoiMjAiLHg6IjUiLHk6IjIiLHJ4OiIyIixyeToiMiJ9XSxbInBhdGgiLHtkOiJNMTIgMThoLjAxIn1dXSxaMXI9W1sicGF0aCIse2Q6Ik0yMiAxMXYxYTEwIDEwIDAgMSAxLTktMTAifV0sWyJwYXRoIix7ZDoiTTggMTRzMS41IDIgNCAyIDQtMiA0LTIifV0sWyJsaW5lIix7eDE6IjkiLHgyOiI5LjAxIix5MToiOSIseTI6IjkifV0sWyJsaW5lIix7eDE6IjE1Iix4MjoiMTUuMDEiLHkxOiI5Iix5MjoiOSJ9XSxbInBhdGgiLHtkOiJNMTYgNWg2In1dLFsicGF0aCIse2Q6Ik0xOSAydjYifV1dLFgxcj1bWyJjaXJjbGUiLHtjeDoiMTIiLGN5OiIxMiIscjoiMTAifV0sWyJwYXRoIix7ZDoiTTggMTRzMS41IDIgNCAyIDQtMiA0LTIifV0sWyJsaW5lIix7eDE6IjkiLHgyOiI5LjAxIix5MToiOSIseTI6IjkifV0sWyJsaW5lIix7eDE6IjE1Iix4MjoiMTUuMDEiLHkxOiI5Iix5MjoiOSJ9XV0sUTFyPVtbInBhdGgiLHtkOiJNMiAxM2E2IDYgMCAxIDAgMTIgMCA0IDQgMCAxIDAtOCAwIDIgMiAwIDAgMCA0IDAifV0sWyJjaXJjbGUiLHtjeDoiMTAiLGN5OiIxMyIscjoiOCJ9XSxbInBhdGgiLHtkOiJNMiAyMWgxMmM0LjQgMCA4LTMuNiA4LThWN2EyIDIgMCAxIDAtNCAwdjYifV0sWyJwYXRoIix7ZDoiTTE4IDMgMTkuMSA1LjIifV0sWyJwYXRoIix7ZDoiTTIyIDMgMjAuOSA1LjIifV1dLEoxcj1bWyJwYXRoIix7ZDoiTTEwLjUgMnY0In1dLFsicGF0aCIse2Q6Ik0xNCAySDdhMiAyIDAgMCAwLTIgMiJ9XSxbInBhdGgiLHtkOiJNMTkuMjkgMTQuNzZBNi42NyA2LjY3IDAgMCAxIDE3IDExYTYuNiA2LjYgMCAwIDEtMi4yOSAzLjc2Yy0xLjE1LjkyLTEuNzEgMi4wNC0xLjcxIDMuMTkgMCAyLjIyIDEuOCA0LjA1IDQgNC4wNXM0LTEuODMgNC00LjA1YzAtMS4xNi0uNTctMi4yNi0xLjcxLTMuMTkifV0sWyJwYXRoIix7ZDoiTTkuNjA3IDIxSDZhMiAyIDAgMCAxLTItMnYtN2EyIDIgMCAwIDEgMi0yaDdWN2ExIDEgMCAwIDAtMS0xSDlhMSAxIDAgMCAwLTEgMXYzIn1dXSxLMXI9W1sicGF0aCIse2Q6Im0xMCAyMC0xLjI1LTIuNUw2IDE4In1dLFsicGF0aCIse2Q6Ik0xMCA0IDguNzUgNi41IDYgNiJ9XSxbInBhdGgiLHtkOiJtMTQgMjAgMS4yNS0yLjVMMTggMTgifV0sWyJwYXRoIix7ZDoibTE0IDQgMS4yNSAyLjVMMTggNiJ9XSxbInBhdGgiLHtkOiJtMTcgMjEtMy02aC00In1dLFsicGF0aCIse2Q6Im0xNyAzLTMgNiAxLjUgMyJ9XSxbInBhdGgiLHtkOiJNMiAxMmg2LjVMMTAgOSJ9XSxbInBhdGgiLHtkOiJtMjAgMTAtMS41IDIgMS41IDIifV0sWyJwYXRoIix7ZDoiTTIyIDEyaC02LjVMMTQgMTUifV0sWyJwYXRoIix7ZDoibTQgMTAgMS41IDJMNCAxNCJ9XSxbInBhdGgiLHtkOiJtNyAyMSAzLTYtMS41LTMifV0sWyJwYXRoIix7ZDoibTcgMyAzIDZoNCJ9XV0sZWlyPVtbInBhdGgiLHtkOiJNMjAgOVY2YTIgMiAwIDAgMC0yLTJINmEyIDIgMCAwIDAtMiAydjMifV0sWyJwYXRoIix7ZDoiTTIgMTZhMiAyIDAgMCAwIDIgMmgxNmEyIDIgMCAwIDAgMi0ydi01YTIgMiAwIDAgMC00IDB2MS41YS41LjUgMCAwIDEtLjUuNWgtMTFhLjUuNSAwIDAgMS0uNS0uNVYxMWEyIDIgMCAwIDAtNCAweiJ9XSxbInBhdGgiLHtkOiJNNCAxOHYyIn1dLFsicGF0aCIse2Q6Ik0yMCAxOHYyIn1dLFsicGF0aCIse2Q6Ik0xMiA0djkifV1dLHRpcj1bWyJwYXRoIix7ZDoiTTExIDJoMiJ9XSxbInBhdGgiLHtkOiJtMTQuMjggMTQtNC41NiA4In1dLFsicGF0aCIse2Q6Im0yMSAyMi0xLjU1OC00SDQuNTU4In1dLFsicGF0aCIse2Q6Ik0zIDEwdjIifV0sWyJwYXRoIix7ZDoiTTYuMjQ1IDE1LjA0QTIgMiAwIDAgMSA4IDE0aDEyYTEgMSAwIDAgMSAuODY0IDEuNTA1bC0zLjExIDUuNDU3QTIgMiAwIDAgMSAxNiAyMkg0YTEgMSAwIDAgMS0uODYzLTEuNTA2eiJ9XSxbInBhdGgiLHtkOiJNNyAyYTQgNCAwIDAgMS00IDQifV0sWyJwYXRoIix7ZDoibTguNjYgNy42NiAxLjQxIDEuNDEifV1dLHJpcj1bWyJwYXRoIix7ZDoiTTEyIDIxYTkgOSAwIDAgMCA5LTlIM2E5IDkgMCAwIDAgOSA5WiJ9XSxbInBhdGgiLHtkOiJNNyAyMWgxMCJ9XSxbInBhdGgiLHtkOiJNMTkuNSAxMiAyMiA2In1dLFsicGF0aCIse2Q6Ik0xNi4yNSAzYy4yNy4xLjguNTMuNzUgMS4zNi0uMDYuODMtLjkzIDEuMi0xIDIuMDItLjA1Ljc4LjM0IDEuMjQuNzMgMS42MiJ9XSxbInBhdGgiLHtkOiJNMTEuMjUgM2MuMjcuMS44LjUzLjc0IDEuMzYtLjA1LjgzLS45MyAxLjItLjk4IDIuMDItLjA2Ljc4LjMzIDEuMjQuNzIgMS42MiJ9XSxbInBhdGgiLHtkOiJNNi4yNSAzYy4yNy4xLjguNTMuNzUgMS4zNi0uMDYuODMtLjkzIDEuMi0xIDIuMDItLjA1Ljc4LjM0IDEuMjQuNzQgMS42MiJ9XV0saWlyPVtbInBhdGgiLHtkOiJNMjIgMTd2MWMwIC41LS41IDEtMSAxSDNjLS41IDAtMS0uNS0xLTF2LTEifV1dLGFpcj1bWyJwYXRoIix7ZDoiTTEyIDE4djQifV0sWyJwYXRoIix7ZDoiTTIgMTQuNDk5YTUuNSA1LjUgMCAwIDAgOS41OTEgMy42NzUuNi42IDAgMCAxIC44MTguMDAxQTUuNSA1LjUgMCAwIDAgMjIgMTQuNWMwLTIuMjktMS41LTQtMy01LjVsLTUuNDkyLTUuMzEyYTIgMiAwIDAgMC0zLS4wMkw1IDguOTk5Yy0xLjUgMS41LTMgMy4yLTMgNS41In1dXSxuaXI9W1sicGF0aCIse2Q6Ik0xMS4wMTcgMi44MTRhMSAxIDAgMCAxIDEuOTY2IDBsMS4wNTEgNS41NThhMiAyIDAgMCAwIDEuNTk0IDEuNTk0bDUuNTU4IDEuMDUxYTEgMSAwIDAgMSAwIDEuOTY2bC01LjU1OCAxLjA1MWEyIDIgMCAwIDAtMS41OTQgMS41OTRsLTEuMDUxIDUuNTU4YTEgMSAwIDAgMS0xLjk2NiAwbC0xLjA1MS01LjU1OGEyIDIgMCAwIDAtMS41OTQtMS41OTRsLTUuNTU4LTEuMDUxYTEgMSAwIDAgMSAwLTEuOTY2bDUuNTU4LTEuMDUxYTIgMiAwIDAgMCAxLjU5NC0xLjU5NHoifV1dLEtJPVtbInBhdGgiLHtkOiJNMTEuMDE3IDIuODE0YTEgMSAwIDAgMSAxLjk2NiAwbDEuMDUxIDUuNTU4YTIgMiAwIDAgMCAxLjU5NCAxLjU5NGw1LjU1OCAxLjA1MWExIDEgMCAwIDEgMCAxLjk2NmwtNS41NTggMS4wNTFhMiAyIDAgMCAwLTEuNTk0IDEuNTk0bC0xLjA1MSA1LjU1OGExIDEgMCAwIDEtMS45NjYgMGwtMS4wNTEtNS41NThhMiAyIDAgMCAwLTEuNTk0LTEuNTk0bC01LjU1OC0xLjA1MWExIDEgMCAwIDEgMC0xLjk2Nmw1LjU1OC0xLjA1MWEyIDIgMCAwIDAgMS41OTQtMS41OTR6In1dLFsicGF0aCIse2Q6Ik0yMCAydjQifV0sWyJwYXRoIix7ZDoiTTIyIDRoLTQifV0sWyJjaXJjbGUiLHtjeDoiNCIsY3k6IjIwIixyOiIyIn1dXSxvaXI9W1sicmVjdCIse3dpZHRoOiIxNiIsaGVpZ2h0OiIyMCIseDoiNCIseToiMiIscng6IjIifV0sWyJwYXRoIix7ZDoiTTEyIDZoLjAxIn1dLFsiY2lyY2xlIix7Y3g6IjEyIixjeToiMTQiLHI6IjQifV0sWyJwYXRoIix7ZDoiTTEyIDE0aC4wMSJ9XV0sc2lyPVtbInBhdGgiLHtkOiJNOC44IDIwdi00LjFsMS45LjJhMi4zIDIuMyAwIDAgMCAyLjE2NC0yLjFWOC4zQTUuMzcgNS4zNyAwIDAgMCAyIDguMjVjMCAyLjguNjU2IDMuMDU0IDEgNC41NWE1Ljc3IDUuNzcgMCAwIDEgLjAyOSAyLjc1OEwyIDIwIn1dLFsicGF0aCIse2Q6Ik0xOS44IDE3LjhhNy41IDcuNSAwIDAgMCAuMDAzLTEwLjYwMyJ9XSxbInBhdGgiLHtkOiJNMTcgMTVhMy41IDMuNSAwIDAgMC0uMDI1LTQuOTc1In1dXSxsaXI9W1sicGF0aCIse2Q6Im02IDE2IDYtMTIgNiAxMiJ9XSxbInBhdGgiLHtkOiJNOCAxMmg4In1dLFsicGF0aCIse2Q6Ik00IDIxYzEuMSAwIDEuMS0xIDIuMy0xczEuMSAxIDIuMyAxYzEuMSAwIDEuMS0xIDIuMy0xIDEuMSAwIDEuMSAxIDIuMyAxIDEuMSAwIDEuMS0xIDIuMy0xIDEuMSAwIDEuMSAxIDIuMyAxIDEuMSAwIDEuMS0xIDIuMy0xIn1dXSxjaXI9W1sicGF0aCIse2Q6Im02IDE2IDYtMTIgNiAxMiJ9XSxbInBhdGgiLHtkOiJNOCAxMmg4In1dLFsicGF0aCIse2Q6Im0xNiAyMCAyIDIgNC00In1dXSxkaXI9W1sicGF0aCIse2Q6Ik0xMi4wMzQgMTIuNjgxYS40OTguNDk4IDAgMCAxIC42NDctLjY0N2w5IDMuNWEuNS41IDAgMCAxLS4wMzMuOTQzbC0zLjQ0NCAxLjA2OGExIDEgMCAwIDAtLjY2LjY2bC0xLjA2NyAzLjQ0M2EuNS41IDAgMCAxLS45NDMuMDMzeiJ9XSxbInBhdGgiLHtkOiJNNSAxN0ExMiAxMiAwIDAgMSAxNyA1In1dLFsiY2lyY2xlIix7Y3g6IjE5IixjeToiNSIscjoiMiJ9XSxbImNpcmNsZSIse2N4OiI1IixjeToiMTkiLHI6IjIifV1dLHVpcj1bWyJjaXJjbGUiLHtjeDoiMTkiLGN5OiI1IixyOiIyIn1dLFsiY2lyY2xlIix7Y3g6IjUiLGN5OiIxOSIscjoiMiJ9XSxbInBhdGgiLHtkOiJNNSAxN0ExMiAxMiAwIDAgMSAxNyA1In1dXSxwaXI9W1sicGF0aCIse2Q6Ik0xNiAzaDV2NSJ9XSxbInBhdGgiLHtkOiJNOCAzSDN2NSJ9XSxbInBhdGgiLHtkOiJNMTIgMjJ2LTguM2E0IDQgMCAwIDAtMS4xNzItMi44NzJMMyAzIn1dLFsicGF0aCIse2Q6Im0xNSA5IDYtNiJ9XV0saGlyPVtbInBhdGgiLHtkOiJNMTcgMTMuNDQgNC40NDIgMTcuMDgyQTIgMiAwIDAgMCA0Ljk4MiAyMUgxOWEyIDIgMCAwIDAgLjU1OC0zLjkyMWwtMS4xMTUtLjMyQTIgMiAwIDAgMSAxNyAxNC44MzdWNy42NiJ9XSxbInBhdGgiLHtkOiJtNyAxMC41NiAxMi41NTgtMy42NDJBMiAyIDAgMCAwIDE5LjAxOCAzSDVhMiAyIDAgMCAwLS41NTggMy45MjFsMS4xMTUuMzJBMiAyIDAgMCAxIDcgOS4xNjN2Ny4xNzgifV1dLGZpcj1bWyJwYXRoIix7ZDoiTTE1LjI5NSAxOS41NjIgMTYgMjIifV0sWyJwYXRoIix7ZDoibTE3IDE2IDMuNzU4IDIuMDk4In1dLFsicGF0aCIse2Q6Im0xOSAxMi41IDMuMDI2LS41OTgifV0sWyJwYXRoIix7ZDoiTTcuNjEgNi4zYTMgMyAwIDAgMC0zLjkyIDEuM2wtMS4zOCAyLjc5YTMgMyAwIDAgMCAxLjMgMy45MWw2Ljg5IDMuNTk3YTEgMSAwIDAgMCAxLjM0Mi0uNDQ3bDMuMTA2LTYuMjExYTEgMSAwIDAgMC0uNDQ3LTEuMzQxeiJ9XSxbInBhdGgiLHtkOiJNOCA5VjIifV1dLG1pcj1bWyJwYXRoIix7ZDoiTTMgM2guMDEifV0sWyJwYXRoIix7ZDoiTTcgNWguMDEifV0sWyJwYXRoIix7ZDoiTTExIDdoLjAxIn1dLFsicGF0aCIse2Q6Ik0zIDdoLjAxIn1dLFsicGF0aCIse2Q6Ik03IDloLjAxIn1dLFsicGF0aCIse2Q6Ik0zIDExaC4wMSJ9XSxbInJlY3QiLHt3aWR0aDoiNCIsaGVpZ2h0OiI0Iix4OiIxNSIseToiNSJ9XSxbInBhdGgiLHtkOiJtMTkgOSAyIDJ2MTBjMCAuNi0uNCAxLTEgMWgtNmMtLjYgMC0xLS40LTEtMVYxMWwyLTIifV0sWyJwYXRoIix7ZDoibTEzIDE0IDgtMiJ9XSxbInBhdGgiLHtkOiJtMTMgMTkgOC0yIn1dXSxnaXI9W1sicGF0aCIse2Q6Ik0xNCA5LjUzNlY3YTQgNCAwIDAgMSA0LTRoMS41YS41LjUgMCAwIDEgLjUuNVY1YTQgNCAwIDAgMS00IDQgNCA0IDAgMCAwLTQgNGMwIDIgMSAzIDEgNWE1IDUgMCAwIDEtMSAzIn1dLFsicGF0aCIse2Q6Ik00IDlhNSA1IDAgMCAxIDggNCA1IDUgMCAwIDEtOC00In1dLFsicGF0aCIse2Q6Ik01IDIxaDE0In1dXSxlUD1bWyJyZWN0Iix7d2lkdGg6IjE4IixoZWlnaHQ6IjE4Iix4OiIzIix5OiIzIixyeDoiMiJ9XSxbInBhdGgiLHtkOiJtMTYgOC04IDgifV0sWyJwYXRoIix7ZDoiTTE2IDE2SDhWOCJ9XV0sdFA9W1sicmVjdCIse3dpZHRoOiIxOCIsaGVpZ2h0OiIxOCIseDoiMyIseToiMyIscng6IjIifV0sWyJwYXRoIix7ZDoiTTE3IDEyaC0ybC0yIDUtMi0xMC0yIDVINyJ9XV0sclA9W1sicmVjdCIse3dpZHRoOiIxOCIsaGVpZ2h0OiIxOCIseDoiMyIseToiMyIscng6IjIifV0sWyJwYXRoIix7ZDoibTggOCA4IDgifV0sWyJwYXRoIix7ZDoiTTE2IDh2OEg4In1dXSxpUD1bWyJyZWN0Iix7d2lkdGg6IjE4IixoZWlnaHQ6IjE4Iix4OiIzIix5OiIzIixyeDoiMiJ9XSxbInBhdGgiLHtkOiJNMTIgOHY4In1dLFsicGF0aCIse2Q6Im04IDEyIDQgNCA0LTQifV1dLGFQPVtbInJlY3QiLHt3aWR0aDoiMTgiLGhlaWdodDoiMTgiLHg6IjMiLHk6IjMiLHJ4OiIyIn1dLFsicGF0aCIse2Q6Im0xMiA4LTQgNCA0IDQifV0sWyJwYXRoIix7ZDoiTTE2IDEySDgifV1dLG5QPVtbInBhdGgiLHtkOiJNMTMgMjFoNmEyIDIgMCAwIDAgMi0yVjVhMiAyIDAgMCAwLTItMkg1YTIgMiAwIDAgMC0yIDJ2NiJ9XSxbInBhdGgiLHtkOiJtMyAyMSA5LTkifV0sWyJwYXRoIix7ZDoiTTkgMjFIM3YtNiJ9XV0sb1A9W1sicGF0aCIse2Q6Ik0xMyAzaDZhMiAyIDAgMCAxIDIgMnYxNGEyIDIgMCAwIDEtMiAySDVhMiAyIDAgMCAxLTItMnYtNiJ9XSxbInBhdGgiLHtkOiJtMyAzIDkgOSJ9XSxbInBhdGgiLHtkOiJNMyA5VjNoNiJ9XV0sc1A9W1sicGF0aCIse2Q6Ik0yMSAxMVY1YTIgMiAwIDAgMC0yLTJINWEyIDIgMCAwIDAtMiAydjE0YTIgMiAwIDAgMCAyIDJoNiJ9XSxbInBhdGgiLHtkOiJtMjEgMjEtOS05In1dLFsicGF0aCIse2Q6Ik0yMSAxNXY2aC02In1dXSxsUD1bWyJwYXRoIix7ZDoiTTIxIDEzdjZhMiAyIDAgMCAxLTIgMkg1YTIgMiAwIDAgMS0yLTJWNWEyIDIgMCAwIDEgMi0yaDYifV0sWyJwYXRoIix7ZDoibTIxIDMtOSA5In1dLFsicGF0aCIse2Q6Ik0xNSAzaDZ2NiJ9XV0sY1A9W1sicmVjdCIse3dpZHRoOiIxOCIsaGVpZ2h0OiIxOCIseDoiMyIseToiMyIscng6IjIifV0sWyJwYXRoIix7ZDoiTTggMTJoOCJ9XSxbInBhdGgiLHtkOiJtMTIgMTYgNC00LTQtNCJ9XV0sZFA9W1sicmVjdCIse3dpZHRoOiIxOCIsaGVpZ2h0OiIxOCIseDoiMyIseToiMyIscng6IjIifV0sWyJwYXRoIix7ZDoiTTggMTZWOGg4In1dLFsicGF0aCIse2Q6Ik0xNiAxNiA4IDgifV1dLHVQPVtbInJlY3QiLHt3aWR0aDoiMTgiLGhlaWdodDoiMTgiLHg6IjMiLHk6IjMiLHJ4OiIyIn1dLFsicGF0aCIse2Q6Ik04IDhoOHY4In1dLFsicGF0aCIse2Q6Im04IDE2IDgtOCJ9XV0scFA9W1sicmVjdCIse3dpZHRoOiIxOCIsaGVpZ2h0OiIxOCIseDoiMyIseToiMyIscng6IjIifV0sWyJwYXRoIix7ZDoibTE2IDEyLTQtNC00IDQifV0sWyJwYXRoIix7ZDoiTTEyIDE2VjgifV1dLGhQPVtbInJlY3QiLHt3aWR0aDoiMTgiLGhlaWdodDoiMTgiLHg6IjMiLHk6IjMiLHJ4OiIyIn1dLFsicGF0aCIse2Q6Ik0xMiA4djgifV0sWyJwYXRoIix7ZDoibTguNSAxNCA3LTQifV0sWyJwYXRoIix7ZDoibTguNSAxMCA3IDQifV1dLGZQPVtbImxpbmUiLHt4MToiNSIseTE6IjMiLHgyOiIxOSIseTI6IjMifV0sWyJsaW5lIix7eDE6IjMiLHkxOiI1Iix4MjoiMyIseTI6IjE5In1dLFsibGluZSIse3gxOiIyMSIseTE6IjUiLHgyOiIyMSIseTI6IjE5In1dLFsibGluZSIse3gxOiI5Iix5MToiMjEiLHgyOiIxMCIseTI6IjIxIn1dLFsibGluZSIse3gxOiIxNCIseTE6IjIxIix4MjoiMTUiLHkyOiIyMSJ9XSxbInBhdGgiLHtkOiJNIDMgNSBBMiAyIDAgMCAxIDUgMyJ9XSxbInBhdGgiLHtkOiJNIDE5IDMgQTIgMiAwIDAgMSAyMSA1In1dLFsicGF0aCIse2Q6Ik0gNSAyMSBBMiAyIDAgMCAxIDMgMTkifV0sWyJwYXRoIix7ZDoiTSAyMSAxOSBBMiAyIDAgMCAxIDE5IDIxIn1dLFsiY2lyY2xlIix7Y3g6IjguNSIsY3k6IjguNSIscjoiMS41In1dLFsibGluZSIse3gxOiI5LjU2MDY2Iix5MToiOS41NjA2NiIseDI6IjEyIix5MjoiMTIifV0sWyJsaW5lIix7eDE6IjE3Iix5MToiMTciLHgyOiIxNC44MiIseTI6IjE0LjgyIn1dLFsiY2lyY2xlIix7Y3g6IjguNSIsY3k6IjE1LjUiLHI6IjEuNSJ9XSxbImxpbmUiLHt4MToiOS41NjA2NiIseTE6IjE0LjQzOTM0Iix4MjoiMTciLHkyOiI3In1dXSxZcD1bWyJyZWN0Iix7d2lkdGg6IjE4IixoZWlnaHQ6IjE4Iix4OiIzIix5OiIzIixyeDoiMiJ9XSxbInBhdGgiLHtkOiJNOSA4aDcifV0sWyJwYXRoIix7ZDoiTTggMTJoNiJ9XSxbInBhdGgiLHtkOiJNMTEgMTZoNSJ9XV0sbVA9W1sicGF0aCIse2Q6Ik0yMSAxMC42NTZWMTlhMiAyIDAgMCAxLTIgMkg1YTIgMiAwIDAgMS0yLTJWNWEyIDIgMCAwIDEgMi0yaDEyLjM0NCJ9XSxbInBhdGgiLHtkOiJtOSAxMSAzIDNMMjIgNCJ9XV0sZ1A9W1sicmVjdCIse3dpZHRoOiIxOCIsaGVpZ2h0OiIxOCIseDoiMyIseToiMyIscng6IjIifV0sWyJwYXRoIix7ZDoibTkgMTIgMiAyIDQtNCJ9XV0sYlA9W1sicmVjdCIse3dpZHRoOiIxOCIsaGVpZ2h0OiIxOCIseDoiMyIseToiMyIscng6IjIifV0sWyJwYXRoIix7ZDoibTE2IDEwLTQgNC00LTQifV1dLHZQPVtbInJlY3QiLHt3aWR0aDoiMTgiLGhlaWdodDoiMTgiLHg6IjMiLHk6IjMiLHJ4OiIyIn1dLFsicGF0aCIse2Q6Im0xNCAxNi00LTQgNC00In1dXSx4UD1bWyJyZWN0Iix7d2lkdGg6IjE4IixoZWlnaHQ6IjE4Iix4OiIzIix5OiIzIixyeDoiMiJ9XSxbInBhdGgiLHtkOiJtMTAgOCA0IDQtNCA0In1dXSx5UD1bWyJyZWN0Iix7d2lkdGg6IjE4IixoZWlnaHQ6IjE4Iix4OiIzIix5OiIzIixyeDoiMiJ9XSxbInBhdGgiLHtkOiJtOCAxNCA0LTQgNCA0In1dXSxiaXI9W1sicGF0aCIse2Q6Ik0xMCA5LjUgOCAxMmwyIDIuNSJ9XSxbInBhdGgiLHtkOiJNMTQgMjFoMSJ9XSxbInBhdGgiLHtkOiJtMTQgOS41IDIgMi41LTIgMi41In1dLFsicGF0aCIse2Q6Ik01IDIxYTIgMiAwIDAgMS0yLTJWNWEyIDIgMCAwIDEgMi0yaDE0YTIgMiAwIDAgMSAyIDJ2MTRhMiAyIDAgMCAxLTIgMiJ9XSxbInBhdGgiLHtkOiJNOSAyMWgxIn1dXSx3UD1bWyJwYXRoIix7ZDoibTEwIDktMyAzIDMgMyJ9XSxbInBhdGgiLHtkOiJtMTQgMTUgMy0zLTMtMyJ9XSxbInJlY3QiLHt4OiIzIix5OiIzIix3aWR0aDoiMTgiLGhlaWdodDoiMTgiLHJ4OiIyIn1dXSx2aXI9W1sicGF0aCIse2Q6Ik01IDIxYTIgMiAwIDAgMS0yLTJWNWEyIDIgMCAwIDEgMi0yaDE0YTIgMiAwIDAgMSAyIDJ2MTRhMiAyIDAgMCAxLTIgMiJ9XSxbInBhdGgiLHtkOiJNOSAyMWgxIn1dLFsicGF0aCIse2Q6Ik0xNCAyMWgxIn1dXSxNUD1bWyJwYXRoIix7ZDoiTTggN3Y3In1dLFsicGF0aCIse2Q6Ik0xMiA3djQifV0sWyJwYXRoIix7ZDoiTTE2IDd2OSJ9XSxbInBhdGgiLHtkOiJNNSAzYTIgMiAwIDAgMC0yIDIifV0sWyJwYXRoIix7ZDoiTTkgM2gxIn1dLFsicGF0aCIse2Q6Ik0xNCAzaDEifV0sWyJwYXRoIix7ZDoiTTE5IDNhMiAyIDAgMCAxIDIgMiJ9XSxbInBhdGgiLHtkOiJNMjEgOXYxIn1dLFsicGF0aCIse2Q6Ik0yMSAxNHYxIn1dLFsicGF0aCIse2Q6Ik0yMSAxOWEyIDIgMCAwIDEtMiAyIn1dLFsicGF0aCIse2Q6Ik0xNCAyMWgxIn1dLFsicGF0aCIse2Q6Ik05IDIxaDEifV0sWyJwYXRoIix7ZDoiTTUgMjFhMiAyIDAgMCAxLTItMiJ9XSxbInBhdGgiLHtkOiJNMyAxNHYxIn1dLFsicGF0aCIse2Q6Ik0zIDl2MSJ9XV0sa1A9W1sicGF0aCIse2Q6Ik0xMi4wMzQgMTIuNjgxYS40OTguNDk4IDAgMCAxIC42NDctLjY0N2w5IDMuNWEuNS41IDAgMCAxLS4wMzMuOTQzbC0zLjQ0NCAxLjA2OGExIDEgMCAwIDAtLjY2LjY2bC0xLjA2NyAzLjQ0M2EuNS41IDAgMCAxLS45NDMuMDMzeiJ9XSxbInBhdGgiLHtkOiJNNSAzYTIgMiAwIDAgMC0yIDIifV0sWyJwYXRoIix7ZDoiTTE5IDNhMiAyIDAgMCAxIDIgMiJ9XSxbInBhdGgiLHtkOiJNNSAyMWEyIDIgMCAwIDEtMi0yIn1dLFsicGF0aCIse2Q6Ik05IDNoMSJ9XSxbInBhdGgiLHtkOiJNOSAyMWgyIn1dLFsicGF0aCIse2Q6Ik0xNCAzaDEifV0sWyJwYXRoIix7ZDoiTTMgOXYxIn1dLFsicGF0aCIse2Q6Ik0yMSA5djIifV0sWyJwYXRoIix7ZDoiTTMgMTR2MSJ9XV0sU1A9W1sicGF0aCIse2Q6Ik01IDNhMiAyIDAgMCAwLTIgMiJ9XSxbInBhdGgiLHtkOiJNMTkgM2EyIDIgMCAwIDEgMiAyIn1dLFsicGF0aCIse2Q6Ik0yMSAxOWEyIDIgMCAwIDEtMiAyIn1dLFsicGF0aCIse2Q6Ik01IDIxYTIgMiAwIDAgMS0yLTIifV0sWyJwYXRoIix7ZDoiTTkgM2gxIn1dLFsicGF0aCIse2Q6Ik05IDIxaDEifV0sWyJwYXRoIix7ZDoiTTE0IDNoMSJ9XSxbInBhdGgiLHtkOiJNMTQgMjFoMSJ9XSxbInBhdGgiLHtkOiJNMyA5djEifV0sWyJwYXRoIix7ZDoiTTIxIDl2MSJ9XSxbInBhdGgiLHtkOiJNMyAxNHYxIn1dLFsicGF0aCIse2Q6Ik0yMSAxNHYxIn1dXSx4aXI9W1sicGF0aCIse2Q6Ik0xNCAyMWgxIn1dLFsicGF0aCIse2Q6Ik0yMSAxNHYxIn1dLFsicGF0aCIse2Q6Ik0yMSAxOWEyIDIgMCAwIDEtMiAyIn1dLFsicGF0aCIse2Q6Ik0yMSA5djEifV0sWyJwYXRoIix7ZDoiTTMgMTR2MSJ9XSxbInBhdGgiLHtkOiJNMyA1YTIgMiAwIDAgMSAyLTJoMTRhMiAyIDAgMCAxIDIgMiJ9XSxbInBhdGgiLHtkOiJNMyA5djEifV0sWyJwYXRoIix7ZDoiTTUgMjFhMiAyIDAgMCAxLTItMiJ9XSxbInBhdGgiLHtkOiJNOSAyMWgxIn1dXSx6UD1bWyJyZWN0Iix7d2lkdGg6IjE4IixoZWlnaHQ6IjE4Iix4OiIzIix5OiIzIixyeDoiMiIscnk6IjIifV0sWyJsaW5lIix7eDE6IjgiLHgyOiIxNiIseTE6IjEyIix5MjoiMTIifV0sWyJsaW5lIix7eDE6IjEyIix4MjoiMTIiLHkxOiIxNiIseTI6IjE2In1dLFsibGluZSIse3gxOiIxMiIseDI6IjEyIix5MToiOCIseTI6IjgifV1dLENQPVtbInJlY3QiLHt3aWR0aDoiMTgiLGhlaWdodDoiMTgiLHg6IjMiLHk6IjMiLHJ4OiIyIn1dLFsiY2lyY2xlIix7Y3g6IjEyIixjeToiMTIiLHI6IjEifV1dLFRQPVtbInJlY3QiLHt3aWR0aDoiMTgiLGhlaWdodDoiMTgiLHg6IjMiLHk6IjMiLHJ4OiIyIn1dLFsicGF0aCIse2Q6Ik03IDEwaDEwIn1dLFsicGF0aCIse2Q6Ik03IDE0aDEwIn1dXSxfUD1bWyJyZWN0Iix7d2lkdGg6IjE4IixoZWlnaHQ6IjE4Iix4OiIzIix5OiIzIixyeDoiMiIscnk6IjIifV0sWyJwYXRoIix7ZDoiTTkgMTdjMiAwIDIuOC0xIDIuOC0yLjhWMTBjMC0yIDEtMy4zIDMuMi0zIn1dLFsicGF0aCIse2Q6Ik05IDExLjJoNS43In1dXSxMUD1bWyJyZWN0Iix7d2lkdGg6IjE4IixoZWlnaHQ6IjE4Iix4OiIzIix5OiIzIixyeDoiMiJ9XSxbInBhdGgiLHtkOiJNOCA3djcifV0sWyJwYXRoIix7ZDoiTTEyIDd2NCJ9XSxbInBhdGgiLHtkOiJNMTYgN3Y5In1dXSxBUD1bWyJyZWN0Iix7d2lkdGg6IjE4IixoZWlnaHQ6IjE4Iix4OiIzIix5OiIzIixyeDoiMiJ9XSxbInBhdGgiLHtkOiJNNyA3djEwIn1dLFsicGF0aCIse2Q6Ik0xMSA3djEwIn1dLFsicGF0aCIse2Q6Im0xNSA3IDIgMTAifV1dLERQPVtbInBhdGgiLHtkOiJNOCAxNlY4LjVhLjUuNSAwIDAgMSAuOS0uM2wyLjcgMy41OTlhLjUuNSAwIDAgMCAuOCAwbDIuNy0zLjZhLjUuNSAwIDAgMSAuOS4zVjE2In1dLFsicmVjdCIse3g6IjMiLHk6IjMiLHdpZHRoOiIxOCIsaGVpZ2h0OiIxOCIscng6IjIifV1dLEVQPVtbInJlY3QiLHt3aWR0aDoiMTgiLGhlaWdodDoiMTgiLHg6IjMiLHk6IjMiLHJ4OiIyIn1dLFsicGF0aCIse2Q6Ik03IDhoMTAifV0sWyJwYXRoIix7ZDoiTTcgMTJoMTAifV0sWyJwYXRoIix7ZDoiTTcgMTZoMTAifV1dLCRQPVtbInJlY3QiLHt3aWR0aDoiMTgiLGhlaWdodDoiMTgiLHg6IjMiLHk6IjMiLHJ4OiIyIn1dLFsicGF0aCIse2Q6Ik04IDEyaDgifV1dLElQPVtbInBhdGgiLHtkOiJNMTIuMDM0IDEyLjY4MWEuNDk4LjQ5OCAwIDAgMSAuNjQ3LS42NDdsOSAzLjVhLjUuNSAwIDAgMS0uMDMzLjk0M2wtMy40NDQgMS4wNjhhMSAxIDAgMCAwLS42Ni42NmwtMS4wNjcgMy40NDNhLjUuNSAwIDAgMS0uOTQzLjAzM3oifV0sWyJwYXRoIix7ZDoiTTIxIDExVjVhMiAyIDAgMCAwLTItMkg1YTIgMiAwIDAgMC0yIDJ2MTRhMiAyIDAgMCAwIDIgMmg2In1dXSxQUD1bWyJwYXRoIix7ZDoiTTMuNiAzLjZBMiAyIDAgMCAxIDUgM2gxNGEyIDIgMCAwIDEgMiAydjE0YTIgMiAwIDAgMS0uNTkgMS40MSJ9XSxbInBhdGgiLHtkOiJNMyA4LjdWMTlhMiAyIDAgMCAwIDIgMmgxMC4zIn1dLFsicGF0aCIse2Q6Im0yIDIgMjAgMjAifV0sWyJwYXRoIix7ZDoiTTEzIDEzYTMgMyAwIDEgMCAwLTZIOXYyIn1dLFsicGF0aCIse2Q6Ik05IDE3di0yLjMifV1dLE5QPVtbInJlY3QiLHt3aWR0aDoiMTgiLGhlaWdodDoiMTgiLHg6IjMiLHk6IjMiLHJ4OiIyIn1dLFsicGF0aCIse2Q6Ik05IDE3VjdoNGEzIDMgMCAwIDEgMCA2SDkifV1dLHlpcj1bWyJyZWN0Iix7d2lkdGg6IjE4IixoZWlnaHQ6IjE4Iix4OiIzIix5OiIzIixyeDoiMiJ9XSxbImxpbmUiLHt4MToiMTAiLHgyOiIxMCIseTE6IjE1Iix5MjoiOSJ9XSxbImxpbmUiLHt4MToiMTQiLHgyOiIxNCIseTE6IjE1Iix5MjoiOSJ9XV0sRTQ9W1sicGF0aCIse2Q6Ik0xMiAzSDVhMiAyIDAgMCAwLTIgMnYxNGEyIDIgMCAwIDAgMiAyaDE0YTIgMiAwIDAgMCAyLTJ2LTcifV0sWyJwYXRoIix7ZDoiTTE4LjM3NSAyLjYyNWExIDEgMCAwIDEgMyAzbC05LjAxMyA5LjAxNGEyIDIgMCAwIDEtLjg1My41MDVsLTIuODczLjg0YS41LjUgMCAwIDEtLjYyLS42MmwuODQtMi44NzNhMiAyIDAgMCAxIC41MDYtLjg1MnoifV1dLEZQPVtbInJlY3QiLHt3aWR0aDoiMTgiLGhlaWdodDoiMTgiLHg6IjMiLHk6IjMiLHJ4OiIyIn1dLFsicGF0aCIse2Q6Ik03IDdoMTAifV0sWyJwYXRoIix7ZDoiTTEwIDd2MTAifV0sWyJwYXRoIix7ZDoiTTE2IDE3YTIgMiAwIDAgMS0yLTJWNyJ9XV0sT1A9W1sicmVjdCIse3dpZHRoOiIxOCIsaGVpZ2h0OiIxOCIseDoiMyIseToiMyIscng6IjIifV0sWyJwYXRoIix7ZDoibTE1IDktNiA2In1dLFsicGF0aCIse2Q6Ik05IDloLjAxIn1dLFsicGF0aCIse2Q6Ik0xNSAxNWguMDEifV1dLFJQPVtbInJlY3QiLHt3aWR0aDoiMTgiLGhlaWdodDoiMTgiLHg6IjMiLHk6IjMiLHJ4OiIyIn1dLFsicGF0aCIse2Q6Ik0xMiAxMkg5LjVhMi41IDIuNSAwIDAgMSAwLTVIMTcifV0sWyJwYXRoIix7ZDoiTTEyIDd2MTAifV0sWyJwYXRoIix7ZDoiTTE2IDd2MTAifV1dLEJQPVtbInJlY3QiLHt4OiIzIix5OiIzIix3aWR0aDoiMTgiLGhlaWdodDoiMTgiLHJ4OiIyIn1dLFsicGF0aCIse2Q6Ik05IDkuMDAzYTEgMSAwIDAgMSAxLjUxNy0uODU5bDQuOTk3IDIuOTk3YTEgMSAwIDAgMSAwIDEuNzE4bC00Ljk5NyAyLjk5N0ExIDEgMCAwIDEgOSAxNC45OTZ6In1dXSxIUD1bWyJyZWN0Iix7d2lkdGg6IjE4IixoZWlnaHQ6IjE4Iix4OiIzIix5OiIzIixyeDoiMiJ9XSxbInBhdGgiLHtkOiJNOCAxMmg4In1dLFsicGF0aCIse2Q6Ik0xMiA4djgifV1dLHFQPVtbInBhdGgiLHtkOiJNMTIgN3Y0In1dLFsicGF0aCIse2Q6Ik03Ljk5OCA5LjAwM2E1IDUgMCAxIDAgOC0uMDA1In1dLFsicmVjdCIse3g6IjMiLHk6IjMiLHdpZHRoOiIxOCIsaGVpZ2h0OiIxOCIscng6IjIifV1dLHdpcj1bWyJwYXRoIix7ZDoiTTIxIDExYTggOCAwIDAgMC04LTgifV0sWyJwYXRoIix7ZDoiTTIxIDE1djRhMiAyIDAgMCAxLTIgMkg1YTIgMiAwIDAgMS0yLTJWNWEyIDIgMCAwIDEgMi0yaDQifV1dLE1pcj1bWyJwYXRoIix7ZDoiTTcgMTJoMmwyIDUgMi0xMGg0In1dLFsicmVjdCIse3g6IjMiLHk6IjMiLHdpZHRoOiIxOCIsaGVpZ2h0OiIxOCIscng6IjIifV1dLGpQPVtbInJlY3QiLHt3aWR0aDoiMTgiLGhlaWdodDoiMTgiLHg6IjMiLHk6IjMiLHJ4OiIyIn1dLFsiY2lyY2xlIix7Y3g6IjguNSIsY3k6IjguNSIscjoiMS41In1dLFsibGluZSIse3gxOiI5LjU2MDY2Iix5MToiOS41NjA2NiIseDI6IjEyIix5MjoiMTIifV0sWyJsaW5lIix7eDE6IjE3Iix5MToiMTciLHgyOiIxNC44MiIseTI6IjE0LjgyIn1dLFsiY2lyY2xlIix7Y3g6IjguNSIsY3k6IjE1LjUiLHI6IjEuNSJ9XSxbImxpbmUiLHt4MToiOS41NjA2NiIseTE6IjE0LjQzOTM0Iix4MjoiMTciLHkyOiI3In1dXSxWUD1bWyJyZWN0Iix7d2lkdGg6IjE4IixoZWlnaHQ6IjE4Iix4OiIzIix5OiIzIixyeDoiMiJ9XSxbInBhdGgiLHtkOiJNMTYgOC45VjdIOGw0IDUtNCA1aDh2LTEuOSJ9XV0sVVA9W1sicmVjdCIse3dpZHRoOiIxOCIsaGVpZ2h0OiIxOCIseDoiMyIseToiMyIscng6IjIifV0sWyJsaW5lIix7eDE6IjkiLHgyOiIxNSIseTE6IjE1Iix5MjoiOSJ9XV0sV1A9W1sicGF0aCIse2Q6Ik04IDE5SDVjLTEgMC0yLTEtMi0yVjdjMC0xIDEtMiAyLTJoMyJ9XSxbInBhdGgiLHtkOiJNMTYgNWgzYzEgMCAyIDEgMiAydjEwYzAgMS0xIDItMiAyaC0zIn1dLFsibGluZSIse3gxOiIxMiIseDI6IjEyIix5MToiNCIseTI6IjIwIn1dXSxHUD1bWyJwYXRoIix7ZDoiTTUgOFY1YzAtMSAxLTIgMi0yaDEwYzEgMCAyIDEgMiAydjMifV0sWyJwYXRoIix7ZDoiTTE5IDE2djNjMCAxLTEgMi0yIDJIN2MtMSAwLTItMS0yLTJ2LTMifV0sWyJsaW5lIix7eDE6IjQiLHgyOiIyMCIseTE6IjEyIix5MjoiMTIifV1dLGtpcj1bWyJwYXRoIix7ZDoiTTQgMTBjLTEuMSAwLTItLjktMi0yVjRjMC0xLjEuOS0yIDItMmg0YzEuMSAwIDIgLjkgMiAyIn1dLFsicGF0aCIse2Q6Ik0xMCAxNmMtMS4xIDAtMi0uOS0yLTJ2LTRjMC0xLjEuOS0yIDItMmg0YzEuMSAwIDIgLjkgMiAyIn1dLFsicmVjdCIse3dpZHRoOiI4IixoZWlnaHQ6IjgiLHg6IjE0Iix5OiIxNCIscng6IjIifV1dLFNpcj1bWyJyZWN0Iix7eDoiMyIseToiMyIsd2lkdGg6IjE4IixoZWlnaHQ6IjE4IixyeDoiMiJ9XSxbInJlY3QiLHt4OiI4Iix5OiI4Iix3aWR0aDoiOCIsaGVpZ2h0OiI4IixyeDoiMSJ9XV0semlyPVtbInBhdGgiLHtkOiJNMTEuMDM1IDcuNjlhMSAxIDAgMCAxIDEuOTA5LjAyNGwuNzM3IDEuNDUyYTEgMSAwIDAgMCAuNzM3LjUzNWwxLjYzNC4yNTZhMSAxIDAgMCAxIC41ODggMS44MDZsLTEuMTcyIDEuMTY4YTEgMSAwIDAgMC0uMjgyLjg2NmwuMjU5IDEuNjEzYTEgMSAwIDAgMS0xLjU0MSAxLjEzNGwtMS40NjUtLjc1YTEgMSAwIDAgMC0uOTEyIDBsLTEuNDY1Ljc1YTEgMSAwIDAgMS0xLjUzOS0xLjEzM2wuMjU4LTEuNjEzYTEgMSAwIDAgMC0uMjgyLS44NjZsLTEuMTU2LTEuMTUzYTEgMSAwIDAgMSAuNTcyLTEuODIybDEuNjMzLS4yNTZhMSAxIDAgMCAwIC43MzctLjUzNXoifV0sWyJyZWN0Iix7eDoiMyIseToiMyIsd2lkdGg6IjE4IixoZWlnaHQ6IjE4IixyeDoiMiJ9XV0sQ2lyPVtbInJlY3QiLHt3aWR0aDoiMTgiLGhlaWdodDoiMTgiLHg6IjMiLHk6IjMiLHJ4OiIyIn1dLFsicmVjdCIse3g6IjkiLHk6IjkiLHdpZHRoOiI2IixoZWlnaHQ6IjYiLHJ4OiIxIn1dXSxZUD1bWyJwYXRoIix7ZDoibTcgMTEgMi0yLTItMiJ9XSxbInBhdGgiLHtkOiJNMTEgMTNoNCJ9XSxbInJlY3QiLHt3aWR0aDoiMTgiLGhlaWdodDoiMTgiLHg6IjMiLHk6IjMiLHJ4OiIyIixyeToiMiJ9XV0sWlA9W1sicGF0aCIse2Q6Ik0xOCAyMWE2IDYgMCAwIDAtMTIgMCJ9XSxbImNpcmNsZSIse2N4OiIxMiIsY3k6IjExIixyOiI0In1dLFsicmVjdCIse3dpZHRoOiIxOCIsaGVpZ2h0OiIxOCIseDoiMyIseToiMyIscng6IjIifV1dLFhQPVtbInJlY3QiLHt3aWR0aDoiMTgiLGhlaWdodDoiMTgiLHg6IjMiLHk6IjMiLHJ4OiIyIn1dLFsiY2lyY2xlIix7Y3g6IjEyIixjeToiMTAiLHI6IjMifV0sWyJwYXRoIix7ZDoiTTcgMjF2LTJhMiAyIDAgMCAxIDItMmg2YTIgMiAwIDAgMSAyIDJ2MiJ9XV0sUVA9W1sicmVjdCIse3dpZHRoOiIxOCIsaGVpZ2h0OiIxOCIseDoiMyIseToiMyIscng6IjIiLHJ5OiIyIn1dLFsicGF0aCIse2Q6Im0xNSA5LTYgNiJ9XSxbInBhdGgiLHtkOiJtOSA5IDYgNiJ9XV0sVGlyPVtbInJlY3QiLHt3aWR0aDoiMTgiLGhlaWdodDoiMTgiLHg6IjMiLHk6IjMiLHJ4OiIyIn1dXSxfaXI9W1sicGF0aCIse2Q6Ik0xNiAxMnYyYTIgMiAwIDAgMS0yIDJIOWExIDEgMCAwIDAtMSAxdjNhMiAyIDAgMCAwIDIgMmgxMGEyIDIgMCAwIDAgMi0yVjEwYTIgMiAwIDAgMC0yLTJoMCJ9XSxbInBhdGgiLHtkOiJNNCAxNmEyIDIgMCAwIDEtMi0yVjRhMiAyIDAgMCAxIDItMmgxMGEyIDIgMCAwIDEgMiAydjNhMSAxIDAgMCAxLTEgMWgtNWEyIDIgMCAwIDAtMiAydjIifV1dLExpcj1bWyJwYXRoIix7ZDoiTTEwIDIyYTIgMiAwIDAgMS0yLTIifV0sWyJwYXRoIix7ZDoiTTE0IDJhMiAyIDAgMCAxIDIgMiJ9XSxbInBhdGgiLHtkOiJNMTYgMjJoLTIifV0sWyJwYXRoIix7ZDoiTTIgMTBWOCJ9XSxbInBhdGgiLHtkOiJNMiA0YTIgMiAwIDAgMSAyLTIifV0sWyJwYXRoIix7ZDoiTTIwIDhhMiAyIDAgMCAxIDIgMiJ9XSxbInBhdGgiLHtkOiJNMjIgMTR2MiJ9XSxbInBhdGgiLHtkOiJNMjIgMjBhMiAyIDAgMCAxLTIgMiJ9XSxbInBhdGgiLHtkOiJNNCAxNmEyIDIgMCAwIDEtMi0yIn1dLFsicGF0aCIse2Q6Ik04IDEwYTIgMiAwIDAgMSAyLTJoNWExIDEgMCAwIDEgMSAxdjVhMiAyIDAgMCAxLTIgMkg5YTEgMSAwIDAgMS0xLTF6In1dLFsicGF0aCIse2Q6Ik04IDJoMiJ9XV0sQWlyPVtbInBhdGgiLHtkOiJNMTAgMjJhMiAyIDAgMCAxLTItMiJ9XSxbInBhdGgiLHtkOiJNMTYgMjJoLTIifV0sWyJwYXRoIix7ZDoiTTE2IDRhMiAyIDAgMCAwLTItMkg0YTIgMiAwIDAgMC0yIDJ2MTBhMiAyIDAgMCAwIDIgMmgzYTEgMSAwIDAgMCAxLTF2LTVhMiAyIDAgMCAxIDItMmg1YTEgMSAwIDAgMCAxLTF6In1dLFsicGF0aCIse2Q6Ik0yMCA4YTIgMiAwIDAgMSAyIDIifV0sWyJwYXRoIix7ZDoiTTIyIDE0djIifV0sWyJwYXRoIix7ZDoiTTIyIDIwYTIgMiAwIDAgMS0yIDIifV1dLERpcj1bWyJwYXRoIix7ZDoiTTQgMTZhMiAyIDAgMCAxLTItMlY0YTIgMiAwIDAgMSAyLTJoMTBhMiAyIDAgMCAxIDIgMnYzYTEgMSAwIDAgMCAxIDFoM2EyIDIgMCAwIDEgMiAydjEwYTIgMiAwIDAgMS0yIDJIMTBhMiAyIDAgMCAxLTItMnYtM2ExIDEgMCAwIDAtMS0xeiJ9XV0sRWlyPVtbInBhdGgiLHtkOiJNMTMuNzcgMy4wNDNhMzQgMzQgMCAwIDAtMy41NCAwIn1dLFsicGF0aCIse2Q6Ik0xMy43NzEgMjAuOTU2YTMzIDMzIDAgMCAxLTMuNTQxLjAwMSJ9XSxbInBhdGgiLHtkOiJNMjAuMTggMTcuNzRjLS41MSAxLjE1LTEuMjkgMS45My0yLjQzOSAyLjQ0In1dLFsicGF0aCIse2Q6Ik0yMC4xOCA2LjI1OWMtLjUxLTEuMTQ4LTEuMjkxLTEuOTI5LTIuNDQtMi40MzgifV0sWyJwYXRoIix7ZDoiTTIwLjk1NyAxMC4yM2EzMyAzMyAwIDAgMSAwIDMuNTQifV0sWyJwYXRoIix7ZDoiTTMuMDQzIDEwLjIzYTM0IDM0IDAgMCAwIC4wMDEgMy41NDEifV0sWyJwYXRoIix7ZDoiTTYuMjYgMjAuMTc5Yy0xLjE1LS41MDgtMS45My0xLjI5LTIuNDQtMi40MzgifV0sWyJwYXRoIix7ZDoiTTYuMjYgMy44MmMtMS4xNDkuNTEtMS45MyAxLjI5MS0yLjQ0IDIuNDQifV1dLCRpcj1bWyJwYXRoIix7ZDoiTTEyIDNjNy4yIDAgOSAxLjggOSA5cy0xLjggOS05IDktOS0xLjgtOS05IDEuOC05IDktOSJ9XV0sSWlyPVtbInBhdGgiLHtkOiJNMTUuMjM2IDIyYTMgMyAwIDAgMC0yLjItNSJ9XSxbInBhdGgiLHtkOiJNMTYgMjBhMyAzIDAgMCAxIDMtM2gxYTIgMiAwIDAgMCAyLTJ2LTJhNCA0IDAgMCAwLTQtNFY0In1dLFsicGF0aCIse2Q6Ik0xOCAxM2guMDEifV0sWyJwYXRoIix7ZDoiTTE4IDZhNCA0IDAgMCAwLTQgNCA3IDcgMCAwIDAtNyA3YzAtNSA0LTUgNC0xMC41YTQuNSA0LjUgMCAxIDAtOSAwIDIuNSAyLjUgMCAwIDAgNSAwQzcgMTAgMyAxMSAzIDE3YzAgMi44IDIuMiA1IDUgNWgxMCJ9XV0sUGlyPVtbInBhdGgiLHtkOiJNMTQgMTNWOC41QzE0IDcgMTUgNyAxNSA1YTMgMyAwIDAgMC02IDBjMCAyIDEgMiAxIDMuNVYxMyJ9XSxbInBhdGgiLHtkOiJNMjAgMTUuNWEyLjUgMi41IDAgMCAwLTIuNS0yLjVoLTExQTIuNSAyLjUgMCAwIDAgNCAxNS41VjE3YTEgMSAwIDAgMCAxIDFoMTRhMSAxIDAgMCAwIDEtMXoifV0sWyJwYXRoIix7ZDoiTTUgMjJoMTQifV1dLE5pcj1bWyJwYXRoIix7ZDoiTTEyIDE4LjMzOGEyLjEgMi4xIDAgMCAwLS45ODcuMjQ0TDYuMzk2IDIxLjAxYS41My41MyAwIDAgMS0uNzctLjU2bC44ODEtNS4xMzlhMi4xMiAyLjEyIDAgMCAwLS42MTEtMS44NzlMMi4xNiA5Ljc5NWEuNTMuNTMgMCAwIDEgLjI5NC0uOTA2bDUuMTY1LS43NTVhMi4xMiAyLjEyIDAgMCAwIDEuNTk3LTEuMTZsMi4zMDktNC42NzlBLjUzLjUzIDAgMCAxIDEyIDIifV1dLEZpcj1bWyJwYXRoIix7ZDoibTEwLjM0NCA0LjY4OCAxLjE4MS0yLjM5M2EuNTMuNTMgMCAwIDEgLjk1IDBsMi4zMSA0LjY3OWEyLjEyIDIuMTIgMCAwIDAgMS41OTUgMS4xNmw1LjE2Ni43NTZhLjUzLjUzIDAgMCAxIC4yOTQuOTA0bC0zLjIzNyAzLjE1MiJ9XSxbInBhdGgiLHtkOiJtMTcuOTQ1IDE3Ljk0NS40MyAyLjUwNWEuNTMuNTMgMCAwIDEtLjc3MS41NmwtNC42MTgtMi40MjhhMi4xMiAyLjEyIDAgMCAwLTEuOTczIDBMNi4zOTYgMjEuMDFhLjUzLjUzIDAgMCAxLS43Ny0uNTZsLjg4MS01LjEzOWEyLjEyIDIuMTIgMCAwIDAtLjYxMS0xLjg3OUwyLjE2IDkuNzk1YS41My41MyAwIDAgMSAuMjk0LS45MDZsNS4xNjUtLjc1NWE4IDggMCAwIDAgLjQtLjA5OSJ9XSxbInBhdGgiLHtkOiJtMiAyIDIwIDIwIn1dXSxPaXI9W1sicGF0aCIse2Q6Ik0xMS41MjUgMi4yOTVhLjUzLjUzIDAgMCAxIC45NSAwbDIuMzEgNC42NzlhMi4xMjMgMi4xMjMgMCAwIDAgMS41OTUgMS4xNmw1LjE2Ni43NTZhLjUzLjUzIDAgMCAxIC4yOTQuOTA0bC0zLjczNiAzLjYzOGEyLjEyMyAyLjEyMyAwIDAgMC0uNjExIDEuODc4bC44ODIgNS4xNGEuNTMuNTMgMCAwIDEtLjc3MS41NmwtNC42MTgtMi40MjhhMi4xMjIgMi4xMjIgMCAwIDAtMS45NzMgMEw2LjM5NiAyMS4wMWEuNTMuNTMgMCAwIDEtLjc3LS41NmwuODgxLTUuMTM5YTIuMTIyIDIuMTIyIDAgMCAwLS42MTEtMS44NzlMMi4xNiA5Ljc5NWEuNTMuNTMgMCAwIDEgLjI5NC0uOTA2bDUuMTY1LS43NTVhMi4xMjIgMi4xMjIgMCAwIDAgMS41OTctMS4xNnoifV1dLFJpcj1bWyJwYXRoIix7ZDoiTTEzLjk3MSA0LjI4NUEyIDIgMCAwIDEgMTcgNnYxMmEyIDIgMCAwIDEtMy4wMjkgMS43MTVsLTkuOTk3LTUuOTk4YTIgMiAwIDAgMS0uMDAzLTMuNDMyeiJ9XSxbInBhdGgiLHtkOiJNMjEgMjBWNCJ9XV0sQmlyPVtbInBhdGgiLHtkOiJNMTAuMDI5IDQuMjg1QTIgMiAwIDAgMCA3IDZ2MTJhMiAyIDAgMCAwIDMuMDI5IDEuNzE1bDkuOTk3LTUuOTk4YTIgMiAwIDAgMCAuMDAzLTMuNDMyeiJ9XSxbInBhdGgiLHtkOiJNMyA0djE2In1dXSxIaXI9W1sicGF0aCIse2Q6Ik0xMSAydjIifV0sWyJwYXRoIix7ZDoiTTUgMnYyIn1dLFsicGF0aCIse2Q6Ik01IDNINGEyIDIgMCAwIDAtMiAydjRhNiA2IDAgMCAwIDEyIDBWNWEyIDIgMCAwIDAtMi0yaC0xIn1dLFsicGF0aCIse2Q6Ik04IDE1YTYgNiAwIDAgMCAxMiAwdi0zIn1dLFsiY2lyY2xlIix7Y3g6IjIwIixjeToiMTAiLHI6IjIifV1dLHFpcj1bWyJwYXRoIix7ZDoiTTIxIDlhMi40IDIuNCAwIDAgMC0uNzA2LTEuNzA2bC0zLjU4OC0zLjU4OEEyLjQgMi40IDAgMCAwIDE1IDNINWEyIDIgMCAwIDAtMiAydjE0YTIgMiAwIDAgMCAyIDJoMTRhMiAyIDAgMCAwIDItMnoifV0sWyJwYXRoIix7ZDoiTTE1IDN2NWExIDEgMCAwIDAgMSAxaDUifV0sWyJwYXRoIix7ZDoiTTggMTNoLjAxIn1dLFsicGF0aCIse2Q6Ik0xNiAxM2guMDEifV0sWyJwYXRoIix7ZDoiTTEwIDE2cy44IDEgMiAxYzEuMyAwIDItMSAyLTEifV1dLGppcj1bWyJwYXRoIix7ZDoiTTIxIDlhMi40IDIuNCAwIDAgMC0uNzA2LTEuNzA2bC0zLjU4OC0zLjU4OEEyLjQgMi40IDAgMCAwIDE1IDNINWEyIDIgMCAwIDAtMiAydjE0YTIgMiAwIDAgMCAyIDJoMTRhMiAyIDAgMCAwIDItMnoifV0sWyJwYXRoIix7ZDoiTTE1IDN2NWExIDEgMCAwIDAgMSAxaDUifV1dLFZpcj1bWyJwYXRoIix7ZDoiTTExLjI2NCAyLjIwNUE0IDQgMCAwIDAgNi40MiA0LjIxMWwtNCA4YTQgNCAwIDAgMCAxLjM1OSA1LjExN2w2IDRhNCA0IDAgMCAwIDQuNDM4IDBsNi00YTQgNCAwIDAgMCAxLjU3Ni00LjU5MmwtMi02YTQgNCAwIDAgMC0yLjUzLTIuNTN6In1dLFsicGF0aCIse2Q6Ik0xMS45OSAyMiAxNCAxMmw3LjgyMiAzLjE4NCJ9XSxbInBhdGgiLHtkOiJNMTQgMTIgOC40NyAyLjMwMiJ9XV0sVWlyPVtbInBhdGgiLHtkOiJNMTUgMjF2LTVhMSAxIDAgMCAwLTEtMWgtNGExIDEgMCAwIDAtMSAxdjUifV0sWyJwYXRoIix7ZDoiTTE3Ljc3NCAxMC4zMWExLjEyIDEuMTIgMCAwIDAtMS41NDkgMCAyLjUgMi41IDAgMCAxLTMuNDUxIDAgMS4xMiAxLjEyIDAgMCAwLTEuNTQ4IDAgMi41IDIuNSAwIDAgMS0zLjQ1MiAwIDEuMTIgMS4xMiAwIDAgMC0xLjU0OSAwIDIuNSAyLjUgMCAwIDEtMy43Ny0zLjI0OGwyLjg4OS00LjE4NEEyIDIgMCAwIDEgNyAyaDEwYTIgMiAwIDAgMSAxLjY1My44NzNsMi44OTUgNC4xOTJhMi41IDIuNSAwIDAgMS0zLjc3NCAzLjI0NCJ9XSxbInBhdGgiLHtkOiJNNCAxMC45NVYxOWEyIDIgMCAwIDAgMiAyaDEyYTIgMiAwIDAgMCAyLTJ2LTguMDUifV1dLFdpcj1bWyJyZWN0Iix7d2lkdGg6IjIwIixoZWlnaHQ6IjYiLHg6IjIiLHk6IjQiLHJ4OiIyIn1dLFsicmVjdCIse3dpZHRoOiIyMCIsaGVpZ2h0OiI2Iix4OiIyIix5OiIxNCIscng6IjIifV1dLEdpcj1bWyJyZWN0Iix7d2lkdGg6IjYiLGhlaWdodDoiMjAiLHg6IjQiLHk6IjIiLHJ4OiIyIn1dLFsicmVjdCIse3dpZHRoOiI2IixoZWlnaHQ6IjIwIix4OiIxNCIseToiMiIscng6IjIifV1dLFlpcj1bWyJwYXRoIix7ZDoiTTE2IDRIOWEzIDMgMCAwIDAtMi44MyA0In1dLFsicGF0aCIse2Q6Ik0xNCAxMmE0IDQgMCAwIDEgMCA4SDYifV0sWyJsaW5lIix7eDE6IjQiLHgyOiIyMCIseTE6IjEyIix5MjoiMTIifV1dLFppcj1bWyJwYXRoIix7ZDoibTQgNSA4IDgifV0sWyJwYXRoIix7ZDoibTEyIDUtOCA4In1dLFsicGF0aCIse2Q6Ik0yMCAxOWgtNGMwLTEuNS40NC0yIDEuNS0yLjVTMjAgMTUuMzMgMjAgMTRjMC0uNDctLjE3LS45My0uNDgtMS4yOWEyLjExIDIuMTEgMCAwIDAtMi42Mi0uNDRjLS40Mi4yNC0uNzQuNjItLjkgMS4wNyJ9XV0sWGlyPVtbImNpcmNsZSIse2N4OiIxMiIsY3k6IjEyIixyOiI0In1dLFsicGF0aCIse2Q6Ik0xMiA0aC4wMSJ9XSxbInBhdGgiLHtkOiJNMjAgMTJoLjAxIn1dLFsicGF0aCIse2Q6Ik0xMiAyMGguMDEifV0sWyJwYXRoIix7ZDoiTTQgMTJoLjAxIn1dLFsicGF0aCIse2Q6Ik0xNy42NTcgNi4zNDNoLjAxIn1dLFsicGF0aCIse2Q6Ik0xNy42NTcgMTcuNjU3aC4wMSJ9XSxbInBhdGgiLHtkOiJNNi4zNDMgMTcuNjU3aC4wMSJ9XSxbInBhdGgiLHtkOiJNNi4zNDMgNi4zNDNoLjAxIn1dXSxRaXI9W1siY2lyY2xlIix7Y3g6IjEyIixjeToiMTIiLHI6IjQifV0sWyJwYXRoIix7ZDoiTTEyIDN2MSJ9XSxbInBhdGgiLHtkOiJNMTIgMjB2MSJ9XSxbInBhdGgiLHtkOiJNMyAxMmgxIn1dLFsicGF0aCIse2Q6Ik0yMCAxMmgxIn1dLFsicGF0aCIse2Q6Im0xOC4zNjQgNS42MzYtLjcwNy43MDcifV0sWyJwYXRoIix7ZDoibTYuMzQzIDE3LjY1Ny0uNzA3LjcwNyJ9XSxbInBhdGgiLHtkOiJtNS42MzYgNS42MzYuNzA3LjcwNyJ9XSxbInBhdGgiLHtkOiJtMTcuNjU3IDE3LjY1Ny43MDcuNzA3In1dXSxKaXI9W1sicGF0aCIse2Q6Ik0xMiAydjIifV0sWyJwYXRoIix7ZDoiTTE0LjgzNyAxNi4zODVhNiA2IDAgMSAxLTcuMjIzLTcuMjIyYy42MjQtLjE0Ny45Ny42Ni43MTUgMS4yNDhhNCA0IDAgMCAwIDUuMjYgNS4yNTljLjU4OS0uMjU1IDEuMzk2LjA5IDEuMjQ4LjcxNSJ9XSxbInBhdGgiLHtkOiJNMTYgMTJhNCA0IDAgMCAwLTQtNCJ9XSxbInBhdGgiLHtkOiJtMTkgNS0xLjI1NiAxLjI1NiJ9XSxbInBhdGgiLHtkOiJNMjAgMTJoMiJ9XV0sS2lyPVtbInBhdGgiLHtkOiJNMTAgMjF2LTEifV0sWyJwYXRoIix7ZDoiTTEwIDRWMyJ9XSxbInBhdGgiLHtkOiJNMTAgOWEzIDMgMCAwIDAgMCA2In1dLFsicGF0aCIse2Q6Im0xNCAyMCAxLjI1LTIuNUwxOCAxOCJ9XSxbInBhdGgiLHtkOiJtMTQgNCAxLjI1IDIuNUwxOCA2In1dLFsicGF0aCIse2Q6Im0xNyAyMS0zLTYgMS41LTNIMjIifV0sWyJwYXRoIix7ZDoibTE3IDMtMyA2IDEuNSAzIn1dLFsicGF0aCIse2Q6Ik0yIDEyaDEifV0sWyJwYXRoIix7ZDoibTIwIDEwLTEuNSAyIDEuNSAyIn1dLFsicGF0aCIse2Q6Im0zLjY0IDE4LjM2LjctLjcifV0sWyJwYXRoIix7ZDoibTQuMzQgNi4zNC0uNy0uNyJ9XV0sZWFyPVtbImNpcmNsZSIse2N4OiIxMiIsY3k6IjEyIixyOiI0In1dLFsicGF0aCIse2Q6Ik0xMiAydjIifV0sWyJwYXRoIix7ZDoiTTEyIDIwdjIifV0sWyJwYXRoIix7ZDoibTQuOTMgNC45MyAxLjQxIDEuNDEifV0sWyJwYXRoIix7ZDoibTE3LjY2IDE3LjY2IDEuNDEgMS40MSJ9XSxbInBhdGgiLHtkOiJNMiAxMmgyIn1dLFsicGF0aCIse2Q6Ik0yMCAxMmgyIn1dLFsicGF0aCIse2Q6Im02LjM0IDE3LjY2LTEuNDEgMS40MSJ9XSxbInBhdGgiLHtkOiJtMTkuMDcgNC45My0xLjQxIDEuNDEifV1dLHRhcj1bWyJwYXRoIix7ZDoiTTEyIDJ2OCJ9XSxbInBhdGgiLHtkOiJtNC45MyAxMC45MyAxLjQxIDEuNDEifV0sWyJwYXRoIix7ZDoiTTIgMThoMiJ9XSxbInBhdGgiLHtkOiJNMjAgMThoMiJ9XSxbInBhdGgiLHtkOiJtMTkuMDcgMTAuOTMtMS40MSAxLjQxIn1dLFsicGF0aCIse2Q6Ik0yMiAyMkgyIn1dLFsicGF0aCIse2Q6Im04IDYgNC00IDQgNCJ9XSxbInBhdGgiLHtkOiJNMTYgMThhNCA0IDAgMCAwLTggMCJ9XV0scmFyPVtbInBhdGgiLHtkOiJNMTIgMTBWMiJ9XSxbInBhdGgiLHtkOiJtNC45MyAxMC45MyAxLjQxIDEuNDEifV0sWyJwYXRoIix7ZDoiTTIgMThoMiJ9XSxbInBhdGgiLHtkOiJNMjAgMThoMiJ9XSxbInBhdGgiLHtkOiJtMTkuMDcgMTAuOTMtMS40MSAxLjQxIn1dLFsicGF0aCIse2Q6Ik0yMiAyMkgyIn1dLFsicGF0aCIse2Q6Im0xNiA2LTQgNC00LTQifV0sWyJwYXRoIix7ZDoiTTE2IDE4YTQgNCAwIDAgMC04IDAifV1dLGlhcj1bWyJwYXRoIix7ZDoibTQgMTkgOC04In1dLFsicGF0aCIse2Q6Im0xMiAxOS04LTgifV0sWyJwYXRoIix7ZDoiTTIwIDEyaC00YzAtMS41LjQ0Mi0yIDEuNS0yLjVTMjAgOC4zMzQgMjAgNy4wMDJjMC0uNDcyLS4xNy0uOTMtLjQ4NC0xLjI5YTIuMTA1IDIuMTA1IDAgMCAwLTIuNjE3LS40MzZjLS40Mi4yMzktLjczOC42MTQtLjg5OSAxLjA2In1dXSxhYXI9W1sicGF0aCIse2Q6Ik0xMSAxN2E0IDQgMCAwIDEtOCAwVjVhMiAyIDAgMCAxIDItMmg0YTIgMiAwIDAgMSAyIDJaIn1dLFsicGF0aCIse2Q6Ik0xNi43IDEzSDE5YTIgMiAwIDAgMSAyIDJ2NGEyIDIgMCAwIDEtMiAySDcifV0sWyJwYXRoIix7ZDoiTSA3IDE3aC4wMSJ9XSxbInBhdGgiLHtkOiJtMTEgOCAyLjMtMi4zYTIuNCAyLjQgMCAwIDEgMy40MDQuMDA0TDE4LjYgNy42YTIuNCAyLjQgMCAwIDEgLjAyNiAzLjQzNEw5LjkgMTkuOCJ9XV0sbmFyPVtbInBhdGgiLHtkOiJNMTAgMjFWM2g4In1dLFsicGF0aCIse2Q6Ik02IDE2aDkifV0sWyJwYXRoIix7ZDoiTTEwIDkuNWg3In1dXSxvYXI9W1sicGF0aCIse2Q6Ik0xMSAxOUg0YTIgMiAwIDAgMS0yLTJWN2EyIDIgMCAwIDEgMi0yaDUifV0sWyJwYXRoIix7ZDoiTTEzIDVoN2EyIDIgMCAwIDEgMiAydjEwYTIgMiAwIDAgMS0yIDJoLTUifV0sWyJjaXJjbGUiLHtjeDoiMTIiLGN5OiIxMiIscjoiMyJ9XSxbInBhdGgiLHtkOiJtMTggMjItMy0zIDMtMyJ9XSxbInBhdGgiLHtkOiJtNiAyIDMgMy0zIDMifV1dLHNhcj1bWyJwYXRoIix7ZDoibTExIDE5LTYtNiJ9XSxbInBhdGgiLHtkOiJtNSAyMS0yLTIifV0sWyJwYXRoIix7ZDoibTggMTYtNCA0In1dLFsicGF0aCIse2Q6Ik05LjUgMTcuNSAyMSA2VjNoLTNMNi41IDE0LjUifV1dLGxhcj1bWyJwb2x5bGluZSIse3BvaW50czoiMTQuNSAxNy41IDMgNiAzIDMgNiAzIDE3LjUgMTQuNSJ9XSxbImxpbmUiLHt4MToiMTMiLHgyOiIxOSIseTE6IjE5Iix5MjoiMTMifV0sWyJsaW5lIix7eDE6IjE2Iix4MjoiMjAiLHkxOiIxNiIseTI6IjIwIn1dLFsibGluZSIse3gxOiIxOSIseDI6IjIxIix5MToiMjEiLHkyOiIxOSJ9XSxbInBvbHlsaW5lIix7cG9pbnRzOiIxNC41IDYuNSAxOCAzIDIxIDMgMjEgNiAxNy41IDkuNSJ9XSxbImxpbmUiLHt4MToiNSIseDI6IjkiLHkxOiIxNCIseTI6IjE4In1dLFsibGluZSIse3gxOiI3Iix4MjoiNCIseTE6IjE3Iix5MjoiMjAifV0sWyJsaW5lIix7eDE6IjMiLHgyOiI1Iix5MToiMTkiLHkyOiIyMSJ9XV0sY2FyPVtbInBhdGgiLHtkOiJtMTggMiA0IDQifV0sWyJwYXRoIix7ZDoibTE3IDcgMy0zIn1dLFsicGF0aCIse2Q6Ik0xOSA5IDguNyAxOS4zYy0xIDEtMi41IDEtMy40IDBsLS42LS42Yy0xLTEtMS0yLjUgMC0zLjRMMTUgNSJ9XSxbInBhdGgiLHtkOiJtOSAxMSA0IDQifV0sWyJwYXRoIix7ZDoibTUgMTktMyAzIn1dLFsicGF0aCIse2Q6Im0xNCA0IDYgNiJ9XV0sZGFyPVtbInBhdGgiLHtkOiJNOSAzSDVhMiAyIDAgMCAwLTIgMnY0bTYtNmgxMGEyIDIgMCAwIDEgMiAydjRNOSAzdjE4bTAgMGgxMGEyIDIgMCAwIDAgMi0yVjlNOSAyMUg1YTIgMiAwIDAgMS0yLTJWOW0wIDBoMTgifV1dLHVhcj1bWyJwYXRoIix7ZDoiTTEyIDIxdi02In1dLFsicGF0aCIse2Q6Ik0xMiA5VjMifV0sWyJwYXRoIix7ZDoiTTMgMTVoMTgifV0sWyJwYXRoIix7ZDoiTTMgOWgxOCJ9XSxbInJlY3QiLHt3aWR0aDoiMTgiLGhlaWdodDoiMTgiLHg6IjMiLHk6IjMiLHJ4OiIyIn1dXSxwYXI9W1sicGF0aCIse2Q6Ik0xMiAxNVY5In1dLFsicGF0aCIse2Q6Ik0zIDE1aDE4In1dLFsicGF0aCIse2Q6Ik0zIDloMTgifV0sWyJyZWN0Iix7d2lkdGg6IjE4IixoZWlnaHQ6IjE4Iix4OiIzIix5OiIzIixyeDoiMiJ9XV0saGFyPVtbInBhdGgiLHtkOiJNMTQgMTR2MiJ9XSxbInBhdGgiLHtkOiJNMTQgMjB2MiJ9XSxbInBhdGgiLHtkOiJNMTQgMnYyIn1dLFsicGF0aCIse2Q6Ik0xNCA4djIifV0sWyJwYXRoIix7ZDoiTTIgMTVoOCJ9XSxbInBhdGgiLHtkOiJNMiAzaDZhMiAyIDAgMCAxIDIgMnYxNGEyIDIgMCAwIDEtMiAySDIifV0sWyJwYXRoIix7ZDoiTTIgOWg4In1dLFsicGF0aCIse2Q6Ik0yMiAxNWgtNCJ9XSxbInBhdGgiLHtkOiJNMjIgM2gtMmEyIDIgMCAwIDAtMiAydjE0YTIgMiAwIDAgMCAyIDJoMiJ9XSxbInBhdGgiLHtkOiJNMjIgOWgtNCJ9XSxbInBhdGgiLHtkOiJNNSAzdjE4In1dXSxmYXI9W1sicGF0aCIse2Q6Ik0xNiA1SDMifV0sWyJwYXRoIix7ZDoiTTE2IDEySDMifV0sWyJwYXRoIix7ZDoiTTE2IDE5SDMifV0sWyJwYXRoIix7ZDoiTTIxIDVoLjAxIn1dLFsicGF0aCIse2Q6Ik0yMSAxMmguMDEifV0sWyJwYXRoIix7ZDoiTTIxIDE5aC4wMSJ9XV0sbWFyPVtbInBhdGgiLHtkOiJNMTUgM3YxOCJ9XSxbInJlY3QiLHt3aWR0aDoiMTgiLGhlaWdodDoiMTgiLHg6IjMiLHk6IjMiLHJ4OiIyIn1dLFsicGF0aCIse2Q6Ik0yMSA5SDMifV0sWyJwYXRoIix7ZDoiTTIxIDE1SDMifV1dLGdhcj1bWyJwYXRoIix7ZDoiTTE0IDEwaDIifV0sWyJwYXRoIix7ZDoiTTE1IDIydi04In1dLFsicGF0aCIse2Q6Ik0xNSAydjQifV0sWyJwYXRoIix7ZDoiTTIgMTBoMiJ9XSxbInBhdGgiLHtkOiJNMjAgMTBoMiJ9XSxbInBhdGgiLHtkOiJNMyAxOWgxOCJ9XSxbInBhdGgiLHtkOiJNMyAyMnYtNmEyIDIgMTM1IDAgMSAyLTJoMTRhMiAyIDQ1IDAgMSAyIDJ2NiJ9XSxbInBhdGgiLHtkOiJNMyAydjJhMiAyIDQ1IDAgMCAyIDJoMTRhMiAyIDEzNSAwIDAgMi0yVjIifV0sWyJwYXRoIix7ZDoiTTggMTBoMiJ9XSxbInBhdGgiLHtkOiJNOSAyMnYtOCJ9XSxbInBhdGgiLHtkOiJNOSAydjQifV1dLGJhcj1bWyJwYXRoIix7ZDoiTTEyIDN2MTgifV0sWyJyZWN0Iix7d2lkdGg6IjE4IixoZWlnaHQ6IjE4Iix4OiIzIix5OiIzIixyeDoiMiJ9XSxbInBhdGgiLHtkOiJNMyA5aDE4In1dLFsicGF0aCIse2Q6Ik0zIDE1aDE4In1dXSx4YXI9W1sicmVjdCIse3dpZHRoOiIxNiIsaGVpZ2h0OiIyMCIseDoiNCIseToiMiIscng6IjIiLHJ5OiIyIn1dLFsibGluZSIse3gxOiIxMiIseDI6IjEyLjAxIix5MToiMTgiLHkyOiIxOCJ9XV0seWFyPVtbInJlY3QiLHt3aWR0aDoiMTAiLGhlaWdodDoiMTQiLHg6IjMiLHk6IjgiLHJ4OiIyIn1dLFsicGF0aCIse2Q6Ik01IDRhMiAyIDAgMCAxIDItMmgxMmEyIDIgMCAwIDEgMiAydjE2YTIgMiAwIDAgMS0yIDJoLTIuNCJ9XSxbInBhdGgiLHtkOiJNOCAxOGguMDEifV1dLHdhcj1bWyJjaXJjbGUiLHtjeDoiNyIsY3k6IjciLHI6IjUifV0sWyJjaXJjbGUiLHtjeDoiMTciLGN5OiIxNyIscjoiNSJ9XSxbInBhdGgiLHtkOiJNMTIgMTdoMTAifV0sWyJwYXRoIix7ZDoibTMuNDYgMTAuNTQgNy4wOC03LjA4In1dXSxNYXI9W1sicGF0aCIse2Q6Ik0xMi41ODYgMi41ODZBMiAyIDAgMCAwIDExLjE3MiAySDRhMiAyIDAgMCAwLTIgMnY3LjE3MmEyIDIgMCAwIDAgLjU4NiAxLjQxNGw4LjcwNCA4LjcwNGEyLjQyNiAyLjQyNiAwIDAgMCAzLjQyIDBsNi41OC02LjU4YTIuNDI2IDIuNDI2IDAgMCAwIDAtMy40MnoifV0sWyJjaXJjbGUiLHtjeDoiNy41IixjeToiNy41IixyOiIuNSIsZmlsbDoiY3VycmVudENvbG9yIn1dXSxrYXI9W1sicGF0aCIse2Q6Ik0xMy4xNzIgMmEyIDIgMCAwIDEgMS40MTQuNTg2bDYuNzEgNi43MWEyLjQgMi40IDAgMCAxIDAgMy40MDhsLTQuNTkyIDQuNTkyYTIuNCAyLjQgMCAwIDEtMy40MDggMGwtNi43MS02LjcxQTIgMiAwIDAgMSA2IDkuMTcyVjNhMSAxIDAgMCAxIDEtMXoifV0sWyJwYXRoIix7ZDoiTTIgN3Y2LjE3MmEyIDIgMCAwIDAgLjU4NiAxLjQxNGw2LjcxIDYuNzFhMi40IDIuNCAwIDAgMCAzLjE5MS4xOTMifV0sWyJjaXJjbGUiLHtjeDoiMTAuNSIsY3k6IjYuNSIscjoiLjUiLGZpbGw6ImN1cnJlbnRDb2xvciJ9XV0sU2FyPVtbInBhdGgiLHtkOiJNNCA0djE2In1dXSx6YXI9W1sicGF0aCIse2Q6Ik00IDR2MTYifV0sWyJwYXRoIix7ZDoiTTkgNHYxNiJ9XV0sQ2FyPVtbInBhdGgiLHtkOiJNNCA0djE2In1dLFsicGF0aCIse2Q6Ik05IDR2MTYifV0sWyJwYXRoIix7ZDoiTTE0IDR2MTYifV1dLFRhcj1bWyJwYXRoIix7ZDoiTTQgNHYxNiJ9XSxbInBhdGgiLHtkOiJNOSA0djE2In1dLFsicGF0aCIse2Q6Ik0xNCA0djE2In1dLFsicGF0aCIse2Q6Ik0xOSA0djE2In1dXSxfYXI9W1sicGF0aCIse2Q6Ik00IDR2MTYifV0sWyJwYXRoIix7ZDoiTTkgNHYxNiJ9XSxbInBhdGgiLHtkOiJNMTQgNHYxNiJ9XSxbInBhdGgiLHtkOiJNMTkgNHYxNiJ9XSxbInBhdGgiLHtkOiJNMjIgNiAyIDE4In1dXSxMYXI9W1siY2lyY2xlIix7Y3g6IjE3IixjeToiNCIscjoiMiJ9XSxbInBhdGgiLHtkOiJNMTUuNTkgNS40MSA1LjQxIDE1LjU5In1dLFsiY2lyY2xlIix7Y3g6IjQiLGN5OiIxNyIscjoiMiJ9XSxbInBhdGgiLHtkOiJNMTIgMjJzLTQtOS0xLjUtMTEuNVMyMiAxMiAyMiAxMiJ9XV0sQWFyPVtbImNpcmNsZSIse2N4OiIxMiIsY3k6IjEyIixyOiIxMCJ9XSxbImNpcmNsZSIse2N4OiIxMiIsY3k6IjEyIixyOiI2In1dLFsiY2lyY2xlIix7Y3g6IjEyIixjeToiMTIiLHI6IjIifV1dLERhcj1bWyJwYXRoIix7ZDoibTEwLjA2NSAxMi40OTMtNi4xOCAxLjMxOGEuOTM0LjkzNCAwIDAgMS0xLjEwOC0uNzAybC0uNTM3LTIuMTVhMS4wNyAxLjA3IDAgMCAxIC42OTEtMS4yNjVsMTMuNTA0LTQuNDQifV0sWyJwYXRoIix7ZDoibTEzLjU2IDExLjc0NyA0LjMzMi0uOTI0In1dLFsicGF0aCIse2Q6Im0xNiAyMS0zLjEwNS02LjIxIn1dLFsicGF0aCIse2Q6Ik0xNi40ODUgNS45NGEyIDIgMCAwIDEgMS40NTUtMi40MjVsMS4wOS0uMjcyYTEgMSAwIDAgMSAxLjIxMi43MjdsMS41MTUgNi4wNmExIDEgMCAwIDEtLjcyNyAxLjIxM2wtMS4wOS4yNzJhMiAyIDAgMCAxLTIuNDI1LTEuNDU1eiJ9XSxbInBhdGgiLHtkOiJtNi4xNTggOC42MzMgMS4xMTQgNC40NTYifV0sWyJwYXRoIix7ZDoibTggMjEgMy4xMDUtNi4yMSJ9XSxbImNpcmNsZSIse2N4OiIxMiIsY3k6IjEzIixyOiIyIn1dXSxFYXI9W1siY2lyY2xlIix7Y3g6IjQiLGN5OiI0IixyOiIyIn1dLFsicGF0aCIse2Q6Im0xNCA1IDMtMyAzIDMifV0sWyJwYXRoIix7ZDoibTE0IDEwIDMtMyAzIDMifV0sWyJwYXRoIix7ZDoiTTE3IDE0VjIifV0sWyJwYXRoIix7ZDoiTTE3IDE0SDdsLTUgOGgyMFoifV0sWyJwYXRoIix7ZDoiTTggMTR2OCJ9XSxbInBhdGgiLHtkOiJtOSAxNCA1IDgifV1dLCRhcj1bWyJwYXRoIix7ZDoiTTMuNSAyMSAxNCAzIn1dLFsicGF0aCIse2Q6Ik0yMC41IDIxIDEwIDMifV0sWyJwYXRoIix7ZDoiTTE1LjUgMjEgMTIgMTVsLTMuNSA2In1dLFsicGF0aCIse2Q6Ik0yIDIxaDIwIn1dXSxJYXI9W1sicGF0aCIse2Q6Ik0xMiAxOWg4In1dLFsicGF0aCIse2Q6Im00IDE3IDYtNi02LTYifV1dLEpQPVtbInBhdGgiLHtkOiJNMjEgNyA2LjgyIDIxLjE4YTIuODMgMi44MyAwIDAgMS0zLjk5LS4wMWEyLjgzIDIuODMgMCAwIDEgMC00TDE3IDMifV0sWyJwYXRoIix7ZDoibTE2IDIgNiA2In1dLFsicGF0aCIse2Q6Ik0xMiAxNkg0In1dXSxQYXI9W1sicGF0aCIse2Q6Ik0xNC41IDJ2MTcuNWMwIDEuNC0xLjEgMi41LTIuNSAyLjVjLTEuNCAwLTIuNS0xLjEtMi41LTIuNVYyIn1dLFsicGF0aCIse2Q6Ik04LjUgMmg3In1dLFsicGF0aCIse2Q6Ik0xNC41IDE2aC01In1dXSxOYXI9W1sicGF0aCIse2Q6Ik05IDJ2MTcuNUEyLjUgMi41IDAgMCAxIDYuNSAyMkEyLjUgMi41IDAgMCAxIDQgMTkuNVYyIn1dLFsicGF0aCIse2Q6Ik0yMCAydjE3LjVhMi41IDIuNSAwIDAgMS0yLjUgMi41YTIuNSAyLjUgMCAwIDEtMi41LTIuNVYyIn1dLFsicGF0aCIse2Q6Ik0zIDJoNyJ9XSxbInBhdGgiLHtkOiJNMTQgMmg3In1dLFsicGF0aCIse2Q6Ik05IDE2SDQifV0sWyJwYXRoIix7ZDoiTTIwIDE2aC01In1dXSxLUD1bWyJwYXRoIix7ZDoiTTIxIDVIMyJ9XSxbInBhdGgiLHtkOiJNMTcgMTJINyJ9XSxbInBhdGgiLHtkOiJNMTkgMTlINSJ9XV0sZU49W1sicGF0aCIse2Q6Ik0yMSA1SDMifV0sWyJwYXRoIix7ZDoiTTIxIDEySDkifV0sWyJwYXRoIix7ZDoiTTIxIDE5SDcifV1dLHROPVtbInBhdGgiLHtkOiJNMyA1aDE4In1dLFsicGF0aCIse2Q6Ik0zIDEyaDE4In1dLFsicGF0aCIse2Q6Ik0zIDE5aDE4In1dXSxGYXI9W1sicGF0aCIse2Q6Ik0xMiAyMGgtMWEyIDIgMCAwIDEtMi0yIDIgMiAwIDAgMS0yIDJINiJ9XSxbInBhdGgiLHtkOiJNMTMgOGg3YTIgMiAwIDAgMSAyIDJ2NGEyIDIgMCAwIDEtMiAyaC03In1dLFsicGF0aCIse2Q6Ik01IDE2SDRhMiAyIDAgMCAxLTItMnYtNGEyIDIgMCAwIDEgMi0yaDEifV0sWyJwYXRoIix7ZDoiTTYgNGgxYTIgMiAwIDAgMSAyIDIgMiAyIDAgMCAxIDItMmgxIn1dLFsicGF0aCIse2Q6Ik05IDZ2MTIifV1dLFpwPVtbInBhdGgiLHtkOiJNMjEgNUgzIn1dLFsicGF0aCIse2Q6Ik0xNSAxMkgzIn1dLFsicGF0aCIse2Q6Ik0xNyAxOUgzIn1dXSxPYXI9W1sicGF0aCIse2Q6Ik0xNyAyMmgtMWE0IDQgMCAwIDEtNC00VjZhNCA0IDAgMCAxIDQtNGgxIn1dLFsicGF0aCIse2Q6Ik03IDIyaDFhNCA0IDAgMCAwIDQtNHYtMSJ9XSxbInBhdGgiLHtkOiJNNyAyaDFhNCA0IDAgMCAxIDQgNHYxIn1dXSxyTj1bWyJwYXRoIix7ZDoiTTE1IDVoNiJ9XSxbInBhdGgiLHtkOiJNMTUgMTJoNiJ9XSxbInBhdGgiLHtkOiJNMyAxOWgxOCJ9XSxbInBhdGgiLHtkOiJtMyAxMiAzLjU1My03LjcyNGEuNS41IDAgMCAxIC44OTQgMEwxMSAxMiJ9XSxbInBhdGgiLHtkOiJNMy45MiAxMGg2LjE2In1dXSxSYXI9W1sicGF0aCIse2Q6Ik0xNyA1SDMifV0sWyJwYXRoIix7ZDoiTTIxIDEySDgifV0sWyJwYXRoIix7ZDoiTTIxIDE5SDgifV0sWyJwYXRoIix7ZDoiTTMgMTJ2NyJ9XV0sQmFyPVtbInBhdGgiLHtkOiJNMjEgNUgzIn1dLFsicGF0aCIse2Q6Ik0xMCAxMkgzIn1dLFsicGF0aCIse2Q6Ik0xMCAxOUgzIn1dLFsiY2lyY2xlIix7Y3g6IjE3IixjeToiMTUiLHI6IjMifV0sWyJwYXRoIix7ZDoibTIxIDE5LTEuOS0xLjkifV1dLGlOPVtbInBhdGgiLHtkOiJNMTQgMjFoMSJ9XSxbInBhdGgiLHtkOiJNMTQgM2gxIn1dLFsicGF0aCIse2Q6Ik0xOSAzYTIgMiAwIDAgMSAyIDIifV0sWyJwYXRoIix7ZDoiTTIxIDE0djEifV0sWyJwYXRoIix7ZDoiTTIxIDE5YTIgMiAwIDAgMS0yIDIifV0sWyJwYXRoIix7ZDoiTTIxIDl2MSJ9XSxbInBhdGgiLHtkOiJNMyAxNHYxIn1dLFsicGF0aCIse2Q6Ik0zIDl2MSJ9XSxbInBhdGgiLHtkOiJNNSAyMWEyIDIgMCAwIDEtMi0yIn1dLFsicGF0aCIse2Q6Ik01IDNhMiAyIDAgMCAwLTIgMiJ9XSxbInBhdGgiLHtkOiJNNyAxMmgxMCJ9XSxbInBhdGgiLHtkOiJNNyAxNmg2In1dLFsicGF0aCIse2Q6Ik03IDhoOCJ9XSxbInBhdGgiLHtkOiJNOSAyMWgxIn1dLFsicGF0aCIse2Q6Ik05IDNoMSJ9XV0sYU49W1sicGF0aCIse2Q6Im0xNiAxNi0zIDMgMyAzIn1dLFsicGF0aCIse2Q6Ik0zIDEyaDE0LjVhMSAxIDAgMCAxIDAgN0gxMyJ9XSxbInBhdGgiLHtkOiJNMyAxOWg2In1dLFsicGF0aCIse2Q6Ik0zIDVoMTgifV1dLEhhcj1bWyJwYXRoIix7ZDoiTTIgMTBzMy0zIDMtOCJ9XSxbInBhdGgiLHtkOiJNMjIgMTBzLTMtMy0zLTgifV0sWyJwYXRoIix7ZDoiTTEwIDJjMCA0LjQtMy42IDgtOCA4In1dLFsicGF0aCIse2Q6Ik0xNCAyYzAgNC40IDMuNiA4IDggOCJ9XSxbInBhdGgiLHtkOiJNMiAxMHMyIDIgMiA1In1dLFsicGF0aCIse2Q6Ik0yMiAxMHMtMiAyLTIgNSJ9XSxbInBhdGgiLHtkOiJNOCAxNWg4In1dLFsicGF0aCIse2Q6Ik0yIDIydi0xYTIgMiAwIDAgMSAyLTJoNGEyIDIgMCAwIDEgMiAydjEifV0sWyJwYXRoIix7ZDoiTTE0IDIydi0xYTIgMiAwIDAgMSAyLTJoNGEyIDIgMCAwIDEgMiAydjEifV1dLHFhcj1bWyJwYXRoIix7ZDoibTEwIDIwLTEuMjUtMi41TDYgMTgifV0sWyJwYXRoIix7ZDoiTTEwIDQgOC43NSA2LjUgNiA2In1dLFsicGF0aCIse2Q6Ik0xMC41ODUgMTVIMTAifV0sWyJwYXRoIix7ZDoiTTIgMTJoNi41TDEwIDkifV0sWyJwYXRoIix7ZDoiTTIwIDE0LjU0YTQgNCAwIDEgMS00IDBWNGEyIDIgMCAwIDEgNCAweiJ9XSxbInBhdGgiLHtkOiJtNCAxMCAxLjUgMkw0IDE0In1dLFsicGF0aCIse2Q6Im03IDIxIDMtNi0xLjUtMyJ9XSxbInBhdGgiLHtkOiJtNyAzIDMgNmgyIn1dXSxqYXI9W1sicGF0aCIse2Q6Ik0xMiAydjIifV0sWyJwYXRoIix7ZDoiTTEyIDhhNCA0IDAgMCAwLTEuNjQ1IDcuNjQ3In1dLFsicGF0aCIse2Q6Ik0yIDEyaDIifV0sWyJwYXRoIix7ZDoiTTIwIDE0LjU0YTQgNCAwIDEgMS00IDBWNGEyIDIgMCAwIDEgNCAweiJ9XSxbInBhdGgiLHtkOiJtNC45MyA0LjkzIDEuNDEgMS40MSJ9XSxbInBhdGgiLHtkOiJtNi4zNCAxNy42Ni0xLjQxIDEuNDEifV1dLFZhcj1bWyJwYXRoIix7ZDoiTTE0IDR2MTAuNTRhNCA0IDAgMSAxLTQgMFY0YTIgMiAwIDAgMSA0IDBaIn1dXSxVYXI9W1sicGF0aCIse2Q6Ik05IDE4LjEyIDEwIDE0SDQuMTdhMiAyIDAgMCAxLTEuOTItMi41NmwyLjMzLThBMiAyIDAgMCAxIDYuNSAySDIwYTIgMiAwIDAgMSAyIDJ2OGEyIDIgMCAwIDEtMiAyaC0yLjc2YTIgMiAwIDAgMC0xLjc5IDEuMTFMMTIgMjJhMy4xMyAzLjEzIDAgMCAxLTMtMy44OFoifV0sWyJwYXRoIix7ZDoiTTE3IDE0VjIifV1dLFdhcj1bWyJwYXRoIix7ZDoiTTE1IDUuODggMTQgMTBoNS44M2EyIDIgMCAwIDEgMS45MiAyLjU2bC0yLjMzIDhBMiAyIDAgMCAxIDE3LjUgMjJINGEyIDIgMCAwIDEtMi0ydi04YTIgMiAwIDAgMSAyLTJoMi43NmEyIDIgMCAwIDAgMS43OS0xLjExTDEyIDJhMy4xMyAzLjEzIDAgMCAxIDMgMy44OFoifV0sWyJwYXRoIix7ZDoiTTcgMTB2MTIifV1dLEdhcj1bWyJwYXRoIix7ZDoiTTIgOWEzIDMgMCAwIDEgMCA2djJhMiAyIDAgMCAwIDIgMmgxNmEyIDIgMCAwIDAgMi0ydi0yYTMgMyAwIDAgMSAwLTZWN2EyIDIgMCAwIDAtMi0ySDRhMiAyIDAgMCAwLTIgMloifV0sWyJwYXRoIix7ZDoibTkgMTIgMiAyIDQtNCJ9XV0sWWFyPVtbInBhdGgiLHtkOiJNMiA5YTMgMyAwIDAgMSAwIDZ2MmEyIDIgMCAwIDAgMiAyaDE2YTIgMiAwIDAgMCAyLTJ2LTJhMyAzIDAgMCAxIDAtNlY3YTIgMiAwIDAgMC0yLTJINGEyIDIgMCAwIDAtMiAyWiJ9XSxbInBhdGgiLHtkOiJNOSAxMmg2In1dXSxaYXI9W1sicGF0aCIse2Q6Ik0yIDlhMyAzIDAgMSAxIDAgNnYyYTIgMiAwIDAgMCAyIDJoMTZhMiAyIDAgMCAwIDItMnYtMmEzIDMgMCAxIDEgMC02VjdhMiAyIDAgMCAwLTItMkg0YTIgMiAwIDAgMC0yIDJaIn1dLFsicGF0aCIse2Q6Ik05IDloLjAxIn1dLFsicGF0aCIse2Q6Im0xNSA5LTYgNiJ9XSxbInBhdGgiLHtkOiJNMTUgMTVoLjAxIn1dXSxYYXI9W1sicGF0aCIse2Q6Ik0yIDlhMyAzIDAgMCAxIDAgNnYyYTIgMiAwIDAgMCAyIDJoMTZhMiAyIDAgMCAwIDItMnYtMmEzIDMgMCAwIDEgMC02VjdhMiAyIDAgMCAwLTItMkg0YTIgMiAwIDAgMC0yIDJaIn1dLFsicGF0aCIse2Q6Ik05IDEyaDYifV0sWyJwYXRoIix7ZDoiTTEyIDl2NiJ9XV0sUWFyPVtbInBhdGgiLHtkOiJNMiA5YTMgMyAwIDAgMSAwIDZ2MmEyIDIgMCAwIDAgMiAyaDE2YTIgMiAwIDAgMCAyLTJ2LTJhMyAzIDAgMCAxIDAtNlY3YTIgMiAwIDAgMC0yLTJINGEyIDIgMCAwIDAtMiAyWiJ9XSxbInBhdGgiLHtkOiJtOS41IDE0LjUgNS01In1dXSxKYXI9W1sicGF0aCIse2Q6Ik0yIDlhMyAzIDAgMCAxIDAgNnYyYTIgMiAwIDAgMCAyIDJoMTZhMiAyIDAgMCAwIDItMnYtMmEzIDMgMCAwIDEgMC02VjdhMiAyIDAgMCAwLTItMkg0YTIgMiAwIDAgMC0yIDJaIn1dLFsicGF0aCIse2Q6Im05LjUgMTQuNSA1LTUifV0sWyJwYXRoIix7ZDoibTkuNSA5LjUgNSA1In1dXSxLYXI9W1sicGF0aCIse2Q6Ik0yIDlhMyAzIDAgMCAxIDAgNnYyYTIgMiAwIDAgMCAyIDJoMTZhMiAyIDAgMCAwIDItMnYtMmEzIDMgMCAwIDEgMC02VjdhMiAyIDAgMCAwLTItMkg0YTIgMiAwIDAgMC0yIDJaIn1dLFsicGF0aCIse2Q6Ik0xMyA1djIifV0sWyJwYXRoIix7ZDoiTTEzIDE3djIifV0sWyJwYXRoIix7ZDoiTTEzIDExdjIifV1dLGVucj1bWyJwYXRoIix7ZDoiTTEwLjUgMTdoMS4yMjdhMiAyIDAgMCAwIDEuMzQ1LS41MkwxOCAxMiJ9XSxbInBhdGgiLHtkOiJtMTIgMTMuNSAzLjc5NC41MDYifV0sWyJwYXRoIix7ZDoibTMuMTczIDguMTggMTEtNWEyIDIgMCAwIDEgMi42NDcuOTkzTDE4LjU2IDgifV0sWyJwYXRoIix7ZDoiTTYgMTBWOCJ9XSxbInBhdGgiLHtkOiJNNiAxNHYxIn1dLFsicGF0aCIse2Q6Ik02IDE5djIifV0sWyJyZWN0Iix7eDoiMiIseToiOCIsd2lkdGg6IjIwIixoZWlnaHQ6IjEzIixyeDoiMiJ9XV0sdG5yPVtbInBhdGgiLHtkOiJNMTAgMmg0In1dLFsicGF0aCIse2Q6Ik00LjYgMTFhOCA4IDAgMCAwIDEuNyA4LjcgOCA4IDAgMCAwIDguNyAxLjcifV0sWyJwYXRoIix7ZDoiTTcuNCA3LjRhOCA4IDAgMCAxIDEwLjMgMSA4IDggMCAwIDEgLjkgMTAuMiJ9XSxbInBhdGgiLHtkOiJtMiAyIDIwIDIwIn1dLFsicGF0aCIse2Q6Ik0xMiAxMnYtMiJ9XV0scm5yPVtbInBhdGgiLHtkOiJtMy4xNzMgOC4xOCAxMS01YTIgMiAwIDAgMSAyLjY0Ny45OTNMMTguNTYgOCJ9XSxbInBhdGgiLHtkOiJNNiAxMFY4In1dLFsicGF0aCIse2Q6Ik02IDE0djEifV0sWyJwYXRoIix7ZDoiTTYgMTl2MiJ9XSxbInJlY3QiLHt4OiIyIix5OiI4Iix3aWR0aDoiMjAiLGhlaWdodDoiMTMiLHJ4OiIyIn1dXSxpbnI9W1sicGF0aCIse2Q6Ik0xMCAyaDQifV0sWyJwYXRoIix7ZDoiTTEyIDE0di00In1dLFsicGF0aCIse2Q6Ik00IDEzYTggOCAwIDAgMSA4LTcgOCA4IDAgMSAxLTUuMyAxNEw0IDE3LjYifV0sWyJwYXRoIix7ZDoiTTkgMTdINHY1In1dXSxhbnI9W1sibGluZSIse3gxOiIxMCIseDI6IjE0Iix5MToiMiIseTI6IjIifV0sWyJsaW5lIix7eDE6IjEyIix4MjoiMTUiLHkxOiIxNCIseTI6IjExIn1dLFsiY2lyY2xlIix7Y3g6IjEyIixjeToiMTQiLHI6IjgifV1dLG5ucj1bWyJjaXJjbGUiLHtjeDoiOSIsY3k6IjEyIixyOiIzIn1dLFsicmVjdCIse3dpZHRoOiIyMCIsaGVpZ2h0OiIxNCIseDoiMiIseToiNSIscng6IjcifV1dLG9ucj1bWyJjaXJjbGUiLHtjeDoiMTUiLGN5OiIxMiIscjoiMyJ9XSxbInJlY3QiLHt3aWR0aDoiMjAiLGhlaWdodDoiMTQiLHg6IjIiLHk6IjUiLHJ4OiI3In1dXSxzbnI9W1sicGF0aCIse2Q6Ik03IDEyaDEzYTEgMSAwIDAgMSAxIDEgNSA1IDAgMCAxLTUgNWgtLjU5OGEuNS41IDAgMCAwLS40MjQuNzY1bDEuNTQ0IDIuNDdhLjUuNSAwIDAgMS0uNDI0Ljc2NUg1LjQwMmEuNS41IDAgMCAxLS40MjQtLjc2NUw3IDE4In1dLFsicGF0aCIse2Q6Ik04IDE4YTUgNSAwIDAgMS01LTVWNGEyIDIgMCAwIDEgMi0yaDhhMiAyIDAgMCAxIDIgMnY4In1dXSxsbnI9W1sicGF0aCIse2Q6Ik0xMCAxNWg0In1dLFsicGF0aCIse2Q6Im0xNC44MTcgMTAuOTk1LS45NzEtMS40NSAxLjAzNC0xLjIzMmEyIDIgMCAwIDAtMi4wMjUtMy4yMzhsLTEuODIuMzY0TDkuOTEgMy44ODVhMiAyIDAgMCAwLTMuNjI1Ljc0OEw2LjE0MSA2LjU1bC0xLjcyNS40MjZhMiAyIDAgMCAwLS4xOSAzLjc1NmwuNjU3LjI3In1dLFsicGF0aCIse2Q6Im0xOC44MjIgMTAuOTk1IDIuMjYtNS4zOGExIDEgMCAwIDAtLjU1Ny0xLjMxOEwxNi45NTQgMi45YTEgMSAwIDAgMC0xLjI4MS41MzNsLS45MjQgMi4xMjIifV0sWyJwYXRoIix7ZDoiTTQgMTIuMDA2QTEgMSAwIDAgMSA0Ljk5NCAxMUgxOWExIDEgMCAwIDEgMSAxdjdhMiAyIDAgMCAxLTIgMkg2YTIgMiAwIDAgMS0yLTJ6In1dXSxjbnI9W1sicGF0aCIse2Q6Ik0xNiAxMnY0In1dLFsicGF0aCIse2Q6Ik0xNiA2YTIgMiAwIDAgMSAxLjQxNC41ODZsNCA0QTIgMiAwIDAgMSAyMiAxMnY3YTIgMiAwIDAgMS0yIDJINGEyIDIgMCAwIDEtMi0ydi03YTIgMiAwIDAgMSAuNTg2LTEuNDE0bDQtNEEyIDIgMCAwIDEgOCA2eiJ9XSxbInBhdGgiLHtkOiJNMTYgNlY0YTIgMiAwIDAgMC0yLTJoLTRhMiAyIDAgMCAwLTIgMnYyIn1dLFsicGF0aCIse2Q6Ik0yIDE0aDIwIn1dLFsicGF0aCIse2Q6Ik04IDEydjQifV1dLGRucj1bWyJwYXRoIix7ZDoiTTIxIDRIMyJ9XSxbInBhdGgiLHtkOiJNMTggOEg2In1dLFsicGF0aCIse2Q6Ik0xOSAxMkg5In1dLFsicGF0aCIse2Q6Ik0xNiAxNmgtNiJ9XSxbInBhdGgiLHtkOiJNMTEgMjBIOSJ9XV0sdW5yPVtbImVsbGlwc2UiLHtjeDoiMTIiLGN5OiIxMSIscng6IjMiLHJ5OiIyIn1dLFsiZWxsaXBzZSIse2N4OiIxMiIsY3k6IjEyLjUiLHJ4OiIxMCIscnk6IjguNSJ9XV0scG5yPVtbInBhdGgiLHtkOiJNMTIgMjB2LTYifV0sWyJwYXRoIix7ZDoiTTE5LjY1NiAxNEgyMiJ9XSxbInBhdGgiLHtkOiJNMiAxNGgxMiJ9XSxbInBhdGgiLHtkOiJtMiAyIDIwIDIwIn1dLFsicGF0aCIse2Q6Ik0yMCAyMEg0YTIgMiAwIDAgMS0yLTJWNmEyIDIgMCAwIDEgMi0yIn1dLFsicGF0aCIse2Q6Ik05LjY1NiA0SDIwYTIgMiAwIDAgMSAyIDJ2MTAuMzQ0In1dXSxobnI9W1sicmVjdCIse3dpZHRoOiIyMCIsaGVpZ2h0OiIxNiIseDoiMiIseToiNCIscng6IjIifV0sWyJwYXRoIix7ZDoiTTIgMTRoMjAifV0sWyJwYXRoIix7ZDoiTTEyIDIwdi02In1dXSxmbnI9W1sicGF0aCIse2Q6Ik0xOC4yIDEyLjI3IDIwIDZINGwxLjggNi4yN2ExIDEgMCAwIDAgLjk1LjczaDEwLjVhMSAxIDAgMCAwIC45Ni0uNzNaIn1dLFsicGF0aCIse2Q6Ik04IDEzdjkifV0sWyJwYXRoIix7ZDoiTTE2IDIydi05In1dLFsicGF0aCIse2Q6Im05IDYgMSA3In1dLFsicGF0aCIse2Q6Im0xNSA2LTEgNyJ9XSxbInBhdGgiLHtkOiJNMTIgNlYyIn1dLFsicGF0aCIse2Q6Ik0xMyAyaC0yIn1dXSxtbnI9W1sicmVjdCIse3dpZHRoOiIxOCIsaGVpZ2h0OiIxMiIseDoiMyIseToiOCIscng6IjEifV0sWyJwYXRoIix7ZDoiTTEwIDhWNWMwLS42LS40LTEtMS0xSDZhMSAxIDAgMCAwLTEgMXYzIn1dLFsicGF0aCIse2Q6Ik0xOSA4VjVjMC0uNi0uNC0xLTEtMWgtM2ExIDEgMCAwIDAtMSAxdjMifV1dLGducj1bWyJwYXRoIix7ZDoibTEwIDExIDExIC45YTEgMSAwIDAgMSAuOCAxLjFsLS42NjUgNC4xNThhMSAxIDAgMCAxLS45ODguODQySDIwIn1dLFsicGF0aCIse2Q6Ik0xNiAxOGgtNSJ9XSxbInBhdGgiLHtkOiJNMTggNWExIDEgMCAwIDAtMSAxdjUuNTczIn1dLFsicGF0aCIse2Q6Ik0zIDRoOC4xMjlhMSAxIDAgMCAxIC45OS44NjNMMTMgMTEuMjQ2In1dLFsicGF0aCIse2Q6Ik00IDExVjQifV0sWyJwYXRoIix7ZDoiTTcgMTVoLjAxIn1dLFsicGF0aCIse2Q6Ik04IDEwLjFWNCJ9XSxbImNpcmNsZSIse2N4OiIxOCIsY3k6IjE4IixyOiIyIn1dLFsiY2lyY2xlIix7Y3g6IjciLGN5OiIxNSIscjoiNSJ9XV0sYm5yPVtbInBhdGgiLHtkOiJNMTYuMDUgMTAuOTY2YTUgMi41IDAgMCAxLTguMSAwIn1dLFsicGF0aCIse2Q6Im0xNi45MjMgMTQuMDQ5IDQuNDggMi4wNGExIDEgMCAwIDEgLjAwMSAxLjgzMWwtOC41NzQgMy45YTIgMiAwIDAgMS0xLjY2IDBsLTguNTc0LTMuOTFhMSAxIDAgMCAxIDAtMS44M2w0LjQ4NC0yLjA0In1dLFsicGF0aCIse2Q6Ik0xNi45NDkgMTQuMTRhNSAyLjUgMCAxIDEtOS45IDBMMTAuMDYzIDMuNWEyIDIgMCAwIDEgMy44NzQgMHoifV0sWyJwYXRoIix7ZDoiTTkuMTk0IDYuNTdhNSAyLjUgMCAwIDAgNS42MSAwIn1dXSx2bnI9W1sicGF0aCIse2Q6Ik0yIDIyVjEyYTEwIDEwIDAgMSAxIDIwIDB2MTAifV0sWyJwYXRoIix7ZDoiTTE1IDYuOHYxLjRhMyAyLjggMCAxIDEtNiAwVjYuOCJ9XSxbInBhdGgiLHtkOiJNMTAgMTVoLjAxIn1dLFsicGF0aCIse2Q6Ik0xNCAxNWguMDEifV0sWyJwYXRoIix7ZDoiTTEwIDE5YTQgNCAwIDAgMS00LTR2LTNhNiA2IDAgMSAxIDEyIDB2M2E0IDQgMCAwIDEtNCA0WiJ9XSxbInBhdGgiLHtkOiJtOSAxOS0yIDMifV0sWyJwYXRoIix7ZDoibTE1IDE5IDIgMyJ9XV0seG5yPVtbInBhdGgiLHtkOiJNOCAzLjFWN2E0IDQgMCAwIDAgOCAwVjMuMSJ9XSxbInBhdGgiLHtkOiJtOSAxNS0xLTEifV0sWyJwYXRoIix7ZDoibTE1IDE1IDEtMSJ9XSxbInBhdGgiLHtkOiJNOSAxOWMtMi44IDAtNS0yLjItNS01di00YTggOCAwIDAgMSAxNiAwdjRjMCAyLjgtMi4yIDUtNSA1WiJ9XSxbInBhdGgiLHtkOiJtOCAxOS0yIDMifV0sWyJwYXRoIix7ZDoibTE2IDE5IDIgMyJ9XV0seW5yPVtbInBhdGgiLHtkOiJNMiAxNyAxNyAyIn1dLFsicGF0aCIse2Q6Im0yIDE0IDggOCJ9XSxbInBhdGgiLHtkOiJtNSAxMSA4IDgifV0sWyJwYXRoIix7ZDoibTggOCA4IDgifV0sWyJwYXRoIix7ZDoibTExIDUgOCA4In1dLFsicGF0aCIse2Q6Im0xNCAyIDggOCJ9XSxbInBhdGgiLHtkOiJNNyAyMiAyMiA3In1dXSxuTj1bWyJyZWN0Iix7d2lkdGg6IjE2IixoZWlnaHQ6IjE2Iix4OiI0Iix5OiIzIixyeDoiMiJ9XSxbInBhdGgiLHtkOiJNNCAxMWgxNiJ9XSxbInBhdGgiLHtkOiJNMTIgM3Y4In1dLFsicGF0aCIse2Q6Im04IDE5LTIgMyJ9XSxbInBhdGgiLHtkOiJtMTggMjItMi0zIn1dLFsicGF0aCIse2Q6Ik04IDE1aC4wMSJ9XSxbInBhdGgiLHtkOiJNMTYgMTVoLjAxIn1dXSx3bnI9W1sicGF0aCIse2Q6Ik0xMiAxNnY2In1dLFsicGF0aCIse2Q6Ik0xNCAyMGgtNCJ9XSxbInBhdGgiLHtkOiJNMTggMmg0djQifV0sWyJwYXRoIix7ZDoibTIgMiA3LjE3IDcuMTcifV0sWyJwYXRoIix7ZDoiTTIgNS4zNTVWMmgzLjM1NyJ9XSxbInBhdGgiLHtkOiJtMjIgMi03LjE3IDcuMTcifV0sWyJwYXRoIix7ZDoiTTggNSA1IDgifV0sWyJjaXJjbGUiLHtjeDoiMTIiLGN5OiIxMiIscjoiNCJ9XV0sTW5yPVtbInBhdGgiLHtkOiJNMTAgMTF2NiJ9XSxbInBhdGgiLHtkOiJNMTQgMTF2NiJ9XSxbInBhdGgiLHtkOiJNMTkgNnYxNGEyIDIgMCAwIDEtMiAySDdhMiAyIDAgMCAxLTItMlY2In1dLFsicGF0aCIse2Q6Ik0zIDZoMTgifV0sWyJwYXRoIix7ZDoiTTggNlY0YTIgMiAwIDAgMSAyLTJoNGEyIDIgMCAwIDEgMiAydjIifV1dLGtucj1bWyJwYXRoIix7ZDoiTTE5IDZ2MTRhMiAyIDAgMCAxLTIgMkg3YTIgMiAwIDAgMS0yLTJWNiJ9XSxbInBhdGgiLHtkOiJNMyA2aDE4In1dLFsicGF0aCIse2Q6Ik04IDZWNGEyIDIgMCAwIDEgMi0yaDRhMiAyIDAgMCAxIDIgMnYyIn1dXSxTbnI9W1sicGF0aCIse2Q6Ik04IDE5YTQgNCAwIDAgMS0yLjI0LTcuMzJBMy41IDMuNSAwIDAgMSA5IDYuMDNWNmEzIDMgMCAxIDEgNiAwdi4wNGEzLjUgMy41IDAgMCAxIDMuMjQgNS42NUE0IDQgMCAwIDEgMTYgMTlaIn1dLFsicGF0aCIse2Q6Ik0xMiAxOXYzIn1dXSxvTj1bWyJwYXRoIix7ZDoiTTEzIDhjMC0yLjc2LTIuNDYtNS01LjUtNVMyIDUuMjQgMiA4aDJsMS0xIDEgMWg0In1dLFsicGF0aCIse2Q6Ik0xMyA3LjE0QTUuODIgNS44MiAwIDAgMSAxNi41IDZjMy4wNCAwIDUuNSAyLjI0IDUuNSA1aC0zbC0xLTEtMSAxaC0zIn1dLFsicGF0aCIse2Q6Ik01Ljg5IDkuNzFjLTIuMTUgMi4xNS0yLjMgNS40Ny0uMzUgNy40M2w0LjI0LTQuMjUuNy0uNy43MS0uNzEgMi4xMi0yLjEyYy0xLjk1LTEuOTYtNS4yNy0xLjgtNy40Mi4zNSJ9XSxbInBhdGgiLHtkOiJNMTEgMTUuNWMuNSAyLjUtLjE3IDQuNS0xIDYuNWg0YzItNS41LS41LTEyLTEtMTQifV1dLHpucj1bWyJwYXRoIix7ZDoibTE3IDE0IDMgMy4zYTEgMSAwIDAgMS0uNyAxLjdINC43YTEgMSAwIDAgMS0uNy0xLjdMNyAxNGgtLjNhMSAxIDAgMCAxLS43LTEuN0w5IDloLS4yQTEgMSAwIDAgMSA4IDcuM0wxMiAzbDQgNC4zYTEgMSAwIDAgMS0uOCAxLjdIMTVsMyAzLjNhMSAxIDAgMCAxLS43IDEuN0gxN1oifV0sWyJwYXRoIix7ZDoiTTEyIDIydi0zIn1dXSxDbnI9W1sicGF0aCIse2Q6Ik0xMCAxMHYuMkEzIDMgMCAwIDEgOC45IDE2SDVhMyAzIDAgMCAxLTEtNS44VjEwYTMgMyAwIDAgMSA2IDBaIn1dLFsicGF0aCIse2Q6Ik03IDE2djYifV0sWyJwYXRoIix7ZDoiTTEzIDE5djMifV0sWyJwYXRoIix7ZDoiTTEyIDE5aDguM2ExIDEgMCAwIDAgLjctMS43TDE4IDE0aC4zYTEgMSAwIDAgMCAuNy0xLjdMMTYgOWguMmExIDEgMCAwIDAgLjgtMS43TDEzIDNsLTEuNCAxLjUifV1dLFRucj1bWyJyZWN0Iix7d2lkdGg6IjE4IixoZWlnaHQ6IjE4Iix4OiIzIix5OiIzIixyeDoiMiIscnk6IjIifV0sWyJyZWN0Iix7d2lkdGg6IjMiLGhlaWdodDoiOSIseDoiNyIseToiNyJ9XSxbInJlY3QiLHt3aWR0aDoiMyIsaGVpZ2h0OiI1Iix4OiIxNCIseToiNyJ9XV0sX25yPVtbInBhdGgiLHtkOiJNMTYgMTdoNnYtNiJ9XSxbInBhdGgiLHtkOiJtMjIgMTctOC41LTguNS01IDVMMiA3In1dXSxMbnI9W1sicGF0aCIse2Q6Ik0xNC44MjggMTQuODI4IDIxIDIxIn1dLFsicGF0aCIse2Q6Ik0yMSAxNnY1aC01In1dLFsicGF0aCIse2Q6Im0yMSAzLTkgOS00LTQtNiA2In1dLFsicGF0aCIse2Q6Ik0yMSA4VjNoLTUifV1dLEFucj1bWyJwYXRoIix7ZDoiTTE2IDdoNnY2In1dLFsicGF0aCIse2Q6Im0yMiA3LTguNSA4LjUtNS01TDIgMTcifV1dLHNOPVtbInBhdGgiLHtkOiJtMjEuNzMgMTgtOC0xNGEyIDIgMCAwIDAtMy40OCAwbC04IDE0QTIgMiAwIDAgMCA0IDIxaDE2YTIgMiAwIDAgMCAxLjczLTMifV0sWyJwYXRoIix7ZDoiTTEyIDl2NCJ9XSxbInBhdGgiLHtkOiJNMTIgMTdoLjAxIn1dXSxEbnI9W1sicGF0aCIse2Q6Ik0xMC4xNyA0LjE5M2EyIDIgMCAwIDEgMy42NjYuMDEzIn1dLFsicGF0aCIse2Q6Ik0xNCAyMWgyIn1dLFsicGF0aCIse2Q6Im0xNS44NzQgNy43NDMgMSAxLjczMiJ9XSxbInBhdGgiLHtkOiJtMTguODQ5IDEyLjk1MiAxIDEuNzMyIn1dLFsicGF0aCIse2Q6Ik0yMS44MjQgMTguMThhMiAyIDAgMCAxLTEuODM1IDIuODI0In1dLFsicGF0aCIse2Q6Ik00LjAyNCAyMWEyIDIgMCAwIDEtMS44MzktMi44MzkifV0sWyJwYXRoIix7ZDoibTUuMTM2IDEyLjk1Mi0xIDEuNzMyIn1dLFsicGF0aCIse2Q6Ik04IDIxaDIifV0sWyJwYXRoIix7ZDoibTguMTAyIDcuNzQzLTEgMS43MzIifV1dLEVucj1bWyJwYXRoIix7ZDoiTTIyIDE4YTIgMiAwIDAgMS0yIDJIM2MtMS4xIDAtMS4zLS42LS40LTEuM0wyMC40IDQuM2MuOS0uNyAxLjYtLjQgMS42LjdaIn1dXSwkbnI9W1sicGF0aCIse2Q6Ik0xMy43MyA0YTIgMiAwIDAgMC0zLjQ2IDBsLTggMTRBMiAyIDAgMCAwIDQgMjFoMTZhMiAyIDAgMCAwIDEuNzMtM1oifV1dLElucj1bWyJwYXRoIix7ZDoiTTE0IDE5VjdhMiAyIDAgMCAwLTItMkg5In1dLFsicGF0aCIse2Q6Ik0xNSAxOUg5In1dLFsicGF0aCIse2Q6Ik0xOSAxOWgyYTEgMSAwIDAgMCAxLTF2LTMuNjVhMSAxIDAgMCAwLS4yMi0uNjJMMTguMyA5LjM4YTEgMSAwIDAgMC0uNzgtLjM4SDE0In1dLFsicGF0aCIse2Q6Ik0yIDEzdjVhMSAxIDAgMCAwIDEgMWgyIn1dLFsicGF0aCIse2Q6Ik00IDMgMi4xNSA1LjE1YS40OTUuNDk1IDAgMCAwIC4zNS44NmgyLjE1YS40Ny40NyAwIDAgMSAuMzUuODZMMyA5LjAyIn1dLFsiY2lyY2xlIix7Y3g6IjE3IixjeToiMTkiLHI6IjIifV0sWyJjaXJjbGUiLHtjeDoiNyIsY3k6IjE5IixyOiIyIn1dXSxQbnI9W1sicGF0aCIse2Q6Ik0xMCAxNC42NnYxLjYyNmEyIDIgMCAwIDEtLjk3NiAxLjY5NkE1IDUgMCAwIDAgNyAyMS45NzgifV0sWyJwYXRoIix7ZDoiTTE0IDE0LjY2djEuNjI2YTIgMiAwIDAgMCAuOTc2IDEuNjk2QTUgNSAwIDAgMSAxNyAyMS45NzgifV0sWyJwYXRoIix7ZDoiTTE4IDloMS41YTEgMSAwIDAgMCAwLTVIMTgifV0sWyJwYXRoIix7ZDoiTTQgMjJoMTYifV0sWyJwYXRoIix7ZDoiTTYgOWE2IDYgMCAwIDAgMTIgMFYzYTEgMSAwIDAgMC0xLTFIN2ExIDEgMCAwIDAtMSAxeiJ9XSxbInBhdGgiLHtkOiJNNiA5SDQuNWExIDEgMCAwIDEgMC01SDYifV1dLE5ucj1bWyJwYXRoIix7ZDoiTTE0IDE4VjZhMiAyIDAgMCAwLTItMkg0YTIgMiAwIDAgMC0yIDJ2MTFhMSAxIDAgMCAwIDEgMWgyIn1dLFsicGF0aCIse2Q6Ik0xNSAxOEg5In1dLFsicGF0aCIse2Q6Ik0xOSAxOGgyYTEgMSAwIDAgMCAxLTF2LTMuNjVhMSAxIDAgMCAwLS4yMi0uNjI0bC0zLjQ4LTQuMzVBMSAxIDAgMCAwIDE3LjUyIDhIMTQifV0sWyJjaXJjbGUiLHtjeDoiMTciLGN5OiIxOCIscjoiMiJ9XSxbImNpcmNsZSIse2N4OiI3IixjeToiMTgiLHI6IjIifV1dLEZucj1bWyJwYXRoIix7ZDoiTTE1IDQgNSA5In1dLFsicGF0aCIse2Q6Im0xNSA4LjUtMTAgNSJ9XSxbInBhdGgiLHtkOiJNMTggMTJhOSA5IDAgMCAxLTkgOVYzIn1dXSxPbnI9W1sicGF0aCIse2Q6Ik0xMCAxMi4wMWguMDEifV0sWyJwYXRoIix7ZDoiTTE4IDh2NGE4IDggMCAwIDEtMS4wNyA0In1dLFsiY2lyY2xlIix7Y3g6IjEwIixjeToiMTIiLHI6IjQifV0sWyJyZWN0Iix7eDoiMiIseToiNCIsd2lkdGg6IjIwIixoZWlnaHQ6IjE2IixyeDoiMiJ9XV0sUm5yPVtbInBhdGgiLHtkOiJtMTIgMTAgMiA0djNhMSAxIDAgMCAwIDEgMWgyYTEgMSAwIDAgMCAxLTF2LTNhOCA4IDAgMSAwLTE2IDB2M2ExIDEgMCAwIDAgMSAxaDJhMSAxIDAgMCAwIDEtMXYtM2wyLTRoNFoifV0sWyJwYXRoIix7ZDoiTTQuODIgNy45IDggMTAifV0sWyJwYXRoIix7ZDoiTTE1LjE4IDcuOSAxMiAxMCJ9XSxbInBhdGgiLHtkOiJNMTYuOTMgMTBIMjBhMiAyIDAgMCAxIDAgNEgyIn1dXSxCbnI9W1sicGF0aCIse2Q6Ik0xNS4wMzMgOS40NGEuNjQ3LjY0NyAwIDAgMSAwIDEuMTJsLTQuMDY1IDIuMzUyYS42NDUuNjQ1IDAgMCAxLS45NjgtLjU2VjcuNjQ4YS42NDUuNjQ1IDAgMCAxIC45NjctLjU2eiJ9XSxbInBhdGgiLHtkOiJNNyAyMWgxMCJ9XSxbInJlY3QiLHt3aWR0aDoiMjAiLGhlaWdodDoiMTQiLHg6IjIiLHk6IjMiLHJ4OiIyIn1dXSxsTj1bWyJwYXRoIix7ZDoiTTcgMjFoMTAifV0sWyJyZWN0Iix7d2lkdGg6IjIwIixoZWlnaHQ6IjE0Iix4OiIyIix5OiIzIixyeDoiMiJ9XV0sSG5yPVtbInBhdGgiLHtkOiJtMTcgMi01IDUtNS01In1dLFsicmVjdCIse3dpZHRoOiIyMCIsaGVpZ2h0OiIxNSIseDoiMiIseToiNyIscng6IjIifV1dLHFucj1bWyJwYXRoIix7ZDoiTTIxIDJIM3YxNmg1djRsNC00aDVsNC00VjJ6bS0xMCA5VjdtNSA0VjcifV1dLGpucj1bWyJwYXRoIix7ZDoiTTIyIDRzLS43IDIuMS0yIDMuNGMxLjYgMTAtOS40IDE3LjMtMTggMTEuNiAyLjIuMSA0LjQtLjYgNi0yQzMgMTUuNS41IDkuNiAzIDVjMi4yIDIuNiA1LjYgNC4xIDkgNC0uOS00LjIgNC02LjYgNy0zLjggMS4xIDAgMy0xLjIgMy0xLjJ6In1dXSxWbnI9W1sicGF0aCIse2Q6Ik0xNCAxNi41YS41LjUgMCAwIDAgLjUuNWguNWEyIDIgMCAwIDEgMCA0SDlhMiAyIDAgMCAxIDAtNGguNWEuNS41IDAgMCAwIC41LS41di05YS41LjUgMCAwIDAtLjUtLjVoLTNhLjUuNSAwIDAgMC0uNS41VjhhMiAyIDAgMCAxLTQgMFY1YTIgMiAwIDAgMSAyLTJoMTZhMiAyIDAgMCAxIDIgMnYzYTIgMiAwIDAgMS00IDB2LS41YS41LjUgMCAwIDAtLjUtLjVoLTNhLjUuNSAwIDAgMC0uNS41WiJ9XV0sVW5yPVtbInBhdGgiLHtkOiJNMTIgNHYxNiJ9XSxbInBhdGgiLHtkOiJNNCA3VjVhMSAxIDAgMCAxIDEtMWgxNGExIDEgMCAwIDEgMSAxdjIifV0sWyJwYXRoIix7ZDoiTTkgMjBoNiJ9XV0sV25yPVtbInBhdGgiLHtkOiJNMTIgMTN2N2EyIDIgMCAwIDAgNCAwIn1dLFsicGF0aCIse2Q6Ik0xMiAydjIifV0sWyJwYXRoIix7ZDoiTTE4LjY1NiAxM2gyLjMzNmExIDEgMCAwIDAgLjk3LTEuMjc0IDEwLjI4NCAxMC4yODQgMCAwIDAtMTIuMDctNy41MSJ9XSxbInBhdGgiLHtkOiJtMiAyIDIwIDIwIn1dLFsicGF0aCIse2Q6Ik01Ljk2MSA1Ljk1N2ExMC4yOCAxMC4yOCAwIDAgMC0zLjkyMiA1Ljc2OUExIDEgMCAwIDAgMyAxM2gxMCJ9XV0sR25yPVtbInBhdGgiLHtkOiJNMTIgMTN2N2EyIDIgMCAwIDAgNCAwIn1dLFsicGF0aCIse2Q6Ik0xMiAydjIifV0sWyJwYXRoIix7ZDoiTTIwLjk5MiAxM2ExIDEgMCAwIDAgLjk3LTEuMjc0IDEwLjI4NCAxMC4yODQgMCAwIDAtMTkuOTIzIDBBMSAxIDAgMCAwIDMgMTN6In1dXSxZbnI9W1sicGF0aCIse2Q6Ik02IDR2NmE2IDYgMCAwIDAgMTIgMFY0In1dLFsibGluZSIse3gxOiI0Iix4MjoiMjAiLHkxOiIyMCIseTI6IjIwIn1dXSxabnI9W1sicGF0aCIse2Q6Ik05IDE0IDQgOWw1LTUifV0sWyJwYXRoIix7ZDoiTTQgOWgxMC41YTUuNSA1LjUgMCAwIDEgNS41IDUuNWE1LjUgNS41IDAgMCAxLTUuNSA1LjVIMTEifV1dLFhucj1bWyJwYXRoIix7ZDoiTTIxIDE3YTkgOSAwIDAgMC0xNS02LjdMMyAxMyJ9XSxbInBhdGgiLHtkOiJNMyA3djZoNiJ9XSxbImNpcmNsZSIse2N4OiIxMiIsY3k6IjE3IixyOiIxIn1dXSxRbnI9W1sicGF0aCIse2Q6Ik0zIDd2Nmg2In1dLFsicGF0aCIse2Q6Ik0yMSAxN2E5IDkgMCAwIDAtOS05IDkgOSAwIDAgMC02IDIuM0wzIDEzIn1dXSxKbnI9W1sicGF0aCIse2Q6Ik0xNiAxMmg2In1dLFsicGF0aCIse2Q6Ik04IDEySDIifV0sWyJwYXRoIix7ZDoiTTEyIDJ2MiJ9XSxbInBhdGgiLHtkOiJNMTIgOHYyIn1dLFsicGF0aCIse2Q6Ik0xMiAxNHYyIn1dLFsicGF0aCIse2Q6Ik0xMiAyMHYyIn1dLFsicGF0aCIse2Q6Im0xOSAxNSAzLTMtMy0zIn1dLFsicGF0aCIse2Q6Im01IDktMyAzIDMgMyJ9XV0sS25yPVtbInBhdGgiLHtkOiJNMTIgMjJ2LTYifV0sWyJwYXRoIix7ZDoiTTEyIDhWMiJ9XSxbInBhdGgiLHtkOiJNNCAxMkgyIn1dLFsicGF0aCIse2Q6Ik0xMCAxMkg4In1dLFsicGF0aCIse2Q6Ik0xNiAxMmgtMiJ9XSxbInBhdGgiLHtkOiJNMjIgMTJoLTIifV0sWyJwYXRoIix7ZDoibTE1IDE5LTMgMy0zLTMifV0sWyJwYXRoIix7ZDoibTE1IDUtMy0zLTMgMyJ9XV0sZW9yPVtbInJlY3QiLHt3aWR0aDoiOCIsaGVpZ2h0OiI2Iix4OiI1Iix5OiI0IixyeDoiMSJ9XSxbInJlY3QiLHt3aWR0aDoiOCIsaGVpZ2h0OiI2Iix4OiIxMSIseToiMTQiLHJ4OiIxIn1dXSxjTj1bWyJwYXRoIix7ZDoiTTE0IDIxdi0zYTIgMiAwIDAgMC00IDB2MyJ9XSxbInBhdGgiLHtkOiJNMTggMTJoLjAxIn1dLFsicGF0aCIse2Q6Ik0xOCAxNmguMDEifV0sWyJwYXRoIix7ZDoiTTIyIDdhMSAxIDAgMCAwLTEtMWgtMmEyIDIgMCAwIDEtMS4xNDMtLjM1OUwxMy4xNDMgMi4zNmEyIDIgMCAwIDAtMi4yODYtLjAwMUw2LjE0MyA1LjY0QTIgMiAwIDAgMSA1IDZIM2ExIDEgMCAwIDAtMSAxdjEyYTIgMiAwIDAgMCAyIDJoMTZhMiAyIDAgMCAwIDItMnoifV0sWyJwYXRoIix7ZDoiTTYgMTJoLjAxIn1dLFsicGF0aCIse2Q6Ik02IDE2aC4wMSJ9XSxbImNpcmNsZSIse2N4OiIxMiIsY3k6IjEwIixyOiIyIn1dXSx0b3I9W1sicGF0aCIse2Q6Im0xOC44NCAxMi4yNSAxLjcyLTEuNzFoLS4wMmE1LjAwNCA1LjAwNCAwIDAgMC0uMTItNy4wNyA1LjAwNiA1LjAwNiAwIDAgMC02Ljk1IDBsLTEuNzIgMS43MSJ9XSxbInBhdGgiLHtkOiJtNS4xNyAxMS43NS0xLjcxIDEuNzFhNS4wMDQgNS4wMDQgMCAwIDAgLjEyIDcuMDcgNS4wMDYgNS4wMDYgMCAwIDAgNi45NSAwbDEuNzEtMS43MSJ9XSxbImxpbmUiLHt4MToiOCIseDI6IjgiLHkxOiIyIix5MjoiNSJ9XSxbImxpbmUiLHt4MToiMiIseDI6IjUiLHkxOiI4Iix5MjoiOCJ9XSxbImxpbmUiLHt4MToiMTYiLHgyOiIxNiIseTE6IjE5Iix5MjoiMjIifV0sWyJsaW5lIix7eDE6IjE5Iix4MjoiMjIiLHkxOiIxNiIseTI6IjE2In1dXSxyb3I9W1sicGF0aCIse2Q6Ik0xNSA3aDJhNSA1IDAgMCAxIDAgMTBoLTJtLTYgMEg3QTUgNSAwIDAgMSA3IDdoMiJ9XV0saW9yPVtbInBhdGgiLHtkOiJtMTkgNSAzLTMifV0sWyJwYXRoIix7ZDoibTIgMjIgMy0zIn1dLFsicGF0aCIse2Q6Ik02LjMgMjAuM2EyLjQgMi40IDAgMCAwIDMuNCAwTDEyIDE4bC02LTYtMi4zIDIuM2EyLjQgMi40IDAgMCAwIDAgMy40WiJ9XSxbInBhdGgiLHtkOiJNNy41IDEzLjUgMTAgMTEifV0sWyJwYXRoIix7ZDoiTTEwLjUgMTYuNSAxMyAxNCJ9XSxbInBhdGgiLHtkOiJtMTIgNiA2IDYgMi4zLTIuM2EyLjQgMi40IDAgMCAwIDAtMy40bC0yLjYtMi42YTIuNCAyLjQgMCAwIDAtMy40IDBaIn1dXSxhb3I9W1sicGF0aCIse2Q6Ik0xMiAzdjEyIn1dLFsicGF0aCIse2Q6Im0xNyA4LTUtNS01IDUifV0sWyJwYXRoIix7ZDoiTTIxIDE1djRhMiAyIDAgMCAxLTIgMkg1YTIgMiAwIDAgMS0yLTJ2LTQifV1dLG5vcj1bWyJjaXJjbGUiLHtjeDoiMTAiLGN5OiI3IixyOiIxIn1dLFsiY2lyY2xlIix7Y3g6IjQiLGN5OiIyMCIscjoiMSJ9XSxbInBhdGgiLHtkOiJNNC43IDE5LjMgMTkgNSJ9XSxbInBhdGgiLHtkOiJtMjEgMy0zIDEgMiAyWiJ9XSxbInBhdGgiLHtkOiJNOS4yNiA3LjY4IDUgMTJsMiA1In1dLFsicGF0aCIse2Q6Im0xMCAxNCA1IDIgMy41LTMuNSJ9XSxbInBhdGgiLHtkOiJtMTggMTIgMS0xIDEgMS0xIDFaIn1dXSxvb3I9W1sicGF0aCIse2Q6Im0xNiAxMSAyIDIgNC00In1dLFsicGF0aCIse2Q6Ik0xNiAyMXYtMmE0IDQgMCAwIDAtNC00SDZhNCA0IDAgMCAwLTQgNHYyIn1dLFsiY2lyY2xlIix7Y3g6IjkiLGN5OiI3IixyOiI0In1dXSxzb3I9W1sicGF0aCIse2Q6Ik0xMCAxNUg2YTQgNCAwIDAgMC00IDR2MiJ9XSxbInBhdGgiLHtkOiJtMTQuMzA1IDE2LjUzLjkyMy0uMzgyIn1dLFsicGF0aCIse2Q6Im0xNS4yMjggMTMuODUyLS45MjMtLjM4MyJ9XSxbInBhdGgiLHtkOiJtMTYuODUyIDEyLjIyOC0uMzgzLS45MjMifV0sWyJwYXRoIix7ZDoibTE2Ljg1MiAxNy43NzItLjM4My45MjQifV0sWyJwYXRoIix7ZDoibTE5LjE0OCAxMi4yMjguMzgzLS45MjMifV0sWyJwYXRoIix7ZDoibTE5LjUzIDE4LjY5Ni0uMzgyLS45MjQifV0sWyJwYXRoIix7ZDoibTIwLjc3MiAxMy44NTIuOTI0LS4zODMifV0sWyJwYXRoIix7ZDoibTIwLjc3MiAxNi4xNDguOTI0LjM4MyJ9XSxbImNpcmNsZSIse2N4OiIxOCIsY3k6IjE1IixyOiIzIn1dLFsiY2lyY2xlIix7Y3g6IjkiLGN5OiI3IixyOiI0In1dXSxsb3I9W1sicGF0aCIse2Q6Ik0yMCAxMXY2In1dLFsicGF0aCIse2Q6Ik0yMCAxM2gyIn1dLFsicGF0aCIse2Q6Ik0zIDIxdi0yYTQgNCAwIDAgMSA0LTRoNmE0IDQgMCAwIDEgMi4wNzIuNTc4In1dLFsiY2lyY2xlIix7Y3g6IjEwIixjeToiNyIscjoiNCJ9XSxbImNpcmNsZSIse2N4OiIyMCIsY3k6IjE5IixyOiIyIn1dXSxjb3I9W1sicGF0aCIse2Q6Ik0xOSAxNnYtMmEyIDIgMCAwIDAtNCAwdjIifV0sWyJwYXRoIix7ZDoiTTkuNSAxNUg3YTQgNCAwIDAgMC00IDR2MiJ9XSxbImNpcmNsZSIse2N4OiIxMCIsY3k6IjciLHI6IjQifV0sWyJyZWN0Iix7eDoiMTMiLHk6IjE2Iix3aWR0aDoiOCIsaGVpZ2h0OiI1IixyeDoiLjg5OSJ9XV0sZG9yPVtbInBhdGgiLHtkOiJNMTYgMjF2LTJhNCA0IDAgMCAwLTQtNEg2YTQgNCAwIDAgMC00IDR2MiJ9XSxbImNpcmNsZSIse2N4OiI5IixjeToiNyIscjoiNCJ9XSxbImxpbmUiLHt4MToiMjIiLHgyOiIxNiIseTE6IjExIix5MjoiMTEifV1dLHVvcj1bWyJwYXRoIix7ZDoiTTExLjUgMTVIN2E0IDQgMCAwIDAtNCA0djIifV0sWyJwYXRoIix7ZDoiTTIxLjM3OCAxNi42MjZhMSAxIDAgMCAwLTMuMDA0LTMuMDA0bC00LjAxIDQuMDEyYTIgMiAwIDAgMC0uNTA2Ljg1NGwtLjgzNyAyLjg3YS41LjUgMCAwIDAgLjYyLjYybDIuODctLjgzN2EyIDIgMCAwIDAgLjg1NC0uNTA2eiJ9XSxbImNpcmNsZSIse2N4OiIxMCIsY3k6IjciLHI6IjQifV1dLHBvcj1bWyJwYXRoIix7ZDoiTTE2IDIxdi0yYTQgNCAwIDAgMC00LTRINmE0IDQgMCAwIDAtNCA0djIifV0sWyJjaXJjbGUiLHtjeDoiOSIsY3k6IjciLHI6IjQifV0sWyJsaW5lIix7eDE6IjE5Iix4MjoiMTkiLHkxOiI4Iix5MjoiMTQifV0sWyJsaW5lIix7eDE6IjIyIix4MjoiMTYiLHkxOiIxMSIseTI6IjExIn1dXSxkTj1bWyJwYXRoIix7ZDoiTTIgMjFhOCA4IDAgMCAxIDEzLjI5Mi02In1dLFsiY2lyY2xlIix7Y3g6IjEwIixjeToiOCIscjoiNSJ9XSxbInBhdGgiLHtkOiJtMTYgMTkgMiAyIDQtNCJ9XV0sdU49W1sicGF0aCIse2Q6Im0xNC4zMDUgMTkuNTMuOTIzLS4zODIifV0sWyJwYXRoIix7ZDoibTE1LjIyOCAxNi44NTItLjkyMy0uMzgzIn1dLFsicGF0aCIse2Q6Im0xNi44NTIgMTUuMjI4LS4zODMtLjkyMyJ9XSxbInBhdGgiLHtkOiJtMTYuODUyIDIwLjc3Mi0uMzgzLjkyNCJ9XSxbInBhdGgiLHtkOiJtMTkuMTQ4IDE1LjIyOC4zODMtLjkyMyJ9XSxbInBhdGgiLHtkOiJtMTkuNTMgMjEuNjk2LS4zODItLjkyNCJ9XSxbInBhdGgiLHtkOiJNMiAyMWE4IDggMCAwIDEgMTAuNDM0LTcuNjIifV0sWyJwYXRoIix7ZDoibTIwLjc3MiAxNi44NTIuOTI0LS4zODMifV0sWyJwYXRoIix7ZDoibTIwLjc3MiAxOS4xNDguOTI0LjM4MyJ9XSxbImNpcmNsZSIse2N4OiIxMCIsY3k6IjgiLHI6IjUifV0sWyJjaXJjbGUiLHtjeDoiMTgiLGN5OiIxOCIscjoiMyJ9XV0saG9yPVtbInBhdGgiLHtkOiJNMTkgMTF2NiJ9XSxbInBhdGgiLHtkOiJNMTkgMTNoMiJ9XSxbInBhdGgiLHtkOiJNMiAyMWE4IDggMCAwIDEgMTIuODY4LTYuMzQ5In1dLFsiY2lyY2xlIix7Y3g6IjEwIixjeToiOCIscjoiNSJ9XSxbImNpcmNsZSIse2N4OiIxOSIsY3k6IjE5IixyOiIyIn1dXSxwTj1bWyJwYXRoIix7ZDoiTTIgMjFhOCA4IDAgMCAxIDEzLjI5Mi02In1dLFsiY2lyY2xlIix7Y3g6IjEwIixjeToiOCIscjoiNSJ9XSxbInBhdGgiLHtkOiJNMjIgMTloLTYifV1dLG1vcj1bWyJwYXRoIix7ZDoiTTIgMjFhOCA4IDAgMCAxIDEwLjgyMS03LjQ4NyJ9XSxbInBhdGgiLHtkOiJNMjEuMzc4IDE2LjYyNmExIDEgMCAwIDAtMy4wMDQtMy4wMDRsLTQuMDEgNC4wMTJhMiAyIDAgMCAwLS41MDYuODU0bC0uODM3IDIuODdhLjUuNSAwIDAgMCAuNjIuNjJsMi44Ny0uODM3YTIgMiAwIDAgMCAuODU0LS41MDZ6In1dLFsiY2lyY2xlIix7Y3g6IjEwIixjeToiOCIscjoiNSJ9XV0saE49W1sicGF0aCIse2Q6Ik0yIDIxYTggOCAwIDAgMSAxMy4yOTItNiJ9XSxbImNpcmNsZSIse2N4OiIxMCIsY3k6IjgiLHI6IjUifV0sWyJwYXRoIix7ZDoiTTE5IDE2djYifV0sWyJwYXRoIix7ZDoiTTIyIDE5aC02In1dXSxnb3I9W1siY2lyY2xlIix7Y3g6IjEwIixjeToiOCIscjoiNSJ9XSxbInBhdGgiLHtkOiJNMiAyMWE4IDggMCAwIDEgMTAuNDM0LTcuNjIifV0sWyJjaXJjbGUiLHtjeDoiMTgiLGN5OiIxOCIscjoiMyJ9XSxbInBhdGgiLHtkOiJtMjIgMjItMS45LTEuOSJ9XV0sZk49W1sicGF0aCIse2Q6Ik0yIDIxYTggOCAwIDAgMSAxMS44NzMtNyJ9XSxbImNpcmNsZSIse2N4OiIxMCIsY3k6IjgiLHI6IjUifV0sWyJwYXRoIix7ZDoibTE3IDE3IDUgNSJ9XSxbInBhdGgiLHtkOiJtMjIgMTctNSA1In1dXSxtTj1bWyJjaXJjbGUiLHtjeDoiMTIiLGN5OiI4IixyOiI1In1dLFsicGF0aCIse2Q6Ik0yMCAyMWE4IDggMCAwIDAtMTYgMCJ9XV0sYm9yPVtbImNpcmNsZSIse2N4OiIxMCIsY3k6IjciLHI6IjQifV0sWyJwYXRoIix7ZDoiTTEwLjMgMTVIN2E0IDQgMCAwIDAtNCA0djIifV0sWyJjaXJjbGUiLHtjeDoiMTciLGN5OiIxNyIscjoiMyJ9XSxbInBhdGgiLHtkOiJtMjEgMjEtMS45LTEuOSJ9XV0sdm9yPVtbInBhdGgiLHtkOiJNMTYuMDUxIDEyLjYxNmExIDEgMCAwIDEgMS45MDkuMDI0bC43MzcgMS40NTJhMSAxIDAgMCAwIC43MzcuNTM1bDEuNjM0LjI1NmExIDEgMCAwIDEgLjU4OCAxLjgwNmwtMS4xNzIgMS4xNjhhMSAxIDAgMCAwLS4yODIuODY2bC4yNTkgMS42MTNhMSAxIDAgMCAxLTEuNTQxIDEuMTM0bC0xLjQ2NS0uNzVhMSAxIDAgMCAwLS45MTIgMGwtMS40NjUuNzVhMSAxIDAgMCAxLTEuNTM5LTEuMTMzbC4yNTgtMS42MTNhMSAxIDAgMCAwLS4yODItLjg2NmwtMS4xNTYtMS4xNTNhMSAxIDAgMCAxIC41NzItMS44MjJsMS42MzMtLjI1NmExIDEgMCAwIDAgLjczNy0uNTM1eiJ9XSxbInBhdGgiLHtkOiJNOCAxNUg3YTQgNCAwIDAgMC00IDR2MiJ9XSxbImNpcmNsZSIse2N4OiIxMCIsY3k6IjciLHI6IjQifV1dLHhvcj1bWyJwYXRoIix7ZDoiTTE2IDIxdi0yYTQgNCAwIDAgMC00LTRINmE0IDQgMCAwIDAtNCA0djIifV0sWyJjaXJjbGUiLHtjeDoiOSIsY3k6IjciLHI6IjQifV0sWyJsaW5lIix7eDE6IjE3Iix4MjoiMjIiLHkxOiI4Iix5MjoiMTMifV0sWyJsaW5lIix7eDE6IjIyIix4MjoiMTciLHkxOiI4Iix5MjoiMTMifV1dLHlvcj1bWyJwYXRoIix7ZDoiTTE5IDIxdi0yYTQgNCAwIDAgMC00LTRIOWE0IDQgMCAwIDAtNCA0djIifV0sWyJjaXJjbGUiLHtjeDoiMTIiLGN5OiI3IixyOiI0In1dXSxnTj1bWyJwYXRoIix7ZDoiTTE4IDIxYTggOCAwIDAgMC0xNiAwIn1dLFsiY2lyY2xlIix7Y3g6IjEwIixjeToiOCIscjoiNSJ9XSxbInBhdGgiLHtkOiJNMjIgMjBjMC0zLjM3LTItNi41LTQtOGE1IDUgMCAwIDAtLjQ1LTguMyJ9XV0sd29yPVtbInBhdGgiLHtkOiJNMTYgMjF2LTJhNCA0IDAgMCAwLTQtNEg2YTQgNCAwIDAgMC00IDR2MiJ9XSxbInBhdGgiLHtkOiJNMTYgMy4xMjhhNCA0IDAgMCAxIDAgNy43NDQifV0sWyJwYXRoIix7ZDoiTTIyIDIxdi0yYTQgNCAwIDAgMC0zLTMuODcifV0sWyJjaXJjbGUiLHtjeDoiOSIsY3k6IjciLHI6IjQifV1dLGJOPVtbInBhdGgiLHtkOiJtMTYgMi0yLjMgMi4zYTMgMyAwIDAgMCAwIDQuMmwxLjggMS44YTMgMyAwIDAgMCA0LjIgMEwyMiA4In1dLFsicGF0aCIse2Q6Ik0xNSAxNSAzLjMgMy4zYTQuMiA0LjIgMCAwIDAgMCA2bDcuMyA3LjNjLjcuNyAyIC43IDIuOCAwTDE1IDE1Wm0wIDAgNyA3In1dLFsicGF0aCIse2Q6Im0yLjEgMjEuOCA2LjQtNi4zIn1dLFsicGF0aCIse2Q6Im0xOSA1LTcgNyJ9XV0sdk49W1sicGF0aCIse2Q6Ik0zIDJ2N2MwIDEuMS45IDIgMiAyaDRhMiAyIDAgMCAwIDItMlYyIn1dLFsicGF0aCIse2Q6Ik03IDJ2MjAifV0sWyJwYXRoIix7ZDoiTTIxIDE1VjJhNSA1IDAgMCAwLTUgNXY2YzAgMS4xLjkgMiAyIDJoM1ptMCAwdjcifV1dLE1vcj1bWyJwYXRoIix7ZDoiTTEyIDJ2MjAifV0sWyJwYXRoIix7ZDoiTTIgNWgyMCJ9XSxbInBhdGgiLHtkOiJNMyAzdjIifV0sWyJwYXRoIix7ZDoiTTcgM3YyIn1dLFsicGF0aCIse2Q6Ik0xNyAzdjIifV0sWyJwYXRoIix7ZDoiTTIxIDN2MiJ9XSxbInBhdGgiLHtkOiJtMTkgNS03IDctNy03In1dXSxrb3I9W1sicGF0aCIse2Q6Ik0xMyA2djVhMSAxIDAgMCAwIDEgMWg2LjEwMmExIDEgMCAwIDEgLjcxMi4yOThsLjg5OC45MWExIDEgMCAwIDEgLjI4OC43MDJWMTdhMSAxIDAgMCAxLTEgMWgtMyJ9XSxbInBhdGgiLHtkOiJNNSAxOEgzYTEgMSAwIDAgMS0xLTFWOGEyIDIgMCAwIDEgMi0yaDEyYzEuMSAwIDIuMS44IDIuNCAxLjhsMS4xNzYgNC4yIn1dLFsicGF0aCIse2Q6Ik05IDE4aDUifV0sWyJjaXJjbGUiLHtjeDoiMTYiLGN5OiIxOCIscjoiMiJ9XSxbImNpcmNsZSIse2N4OiI3IixjeToiMTgiLHI6IjIifV1dLFNvcj1bWyJwYXRoIix7ZDoiTTggMjFzLTQtMy00LTkgNC05IDQtOSJ9XSxbInBhdGgiLHtkOiJNMTYgM3M0IDMgNCA5LTQgOS00IDkifV0sWyJsaW5lIix7eDE6IjE1Iix4MjoiOSIseTE6IjkiLHkyOiIxNSJ9XSxbImxpbmUiLHt4MToiOSIseDI6IjE1Iix5MToiOSIseTI6IjE1In1dXSx6b3I9W1sicmVjdCIse3dpZHRoOiIxOCIsaGVpZ2h0OiIxOCIseDoiMyIseToiMyIscng6IjIifV0sWyJjaXJjbGUiLHtjeDoiNy41IixjeToiNy41IixyOiIuNSIsZmlsbDoiY3VycmVudENvbG9yIn1dLFsicGF0aCIse2Q6Im03LjkgNy45IDIuNyAyLjcifV0sWyJjaXJjbGUiLHtjeDoiMTYuNSIsY3k6IjcuNSIscjoiLjUiLGZpbGw6ImN1cnJlbnRDb2xvciJ9XSxbInBhdGgiLHtkOiJtMTMuNCAxMC42IDIuNy0yLjcifV0sWyJjaXJjbGUiLHtjeDoiNy41IixjeToiMTYuNSIscjoiLjUiLGZpbGw6ImN1cnJlbnRDb2xvciJ9XSxbInBhdGgiLHtkOiJtNy45IDE2LjEgMi43LTIuNyJ9XSxbImNpcmNsZSIse2N4OiIxNi41IixjeToiMTYuNSIscjoiLjUiLGZpbGw6ImN1cnJlbnRDb2xvciJ9XSxbInBhdGgiLHtkOiJtMTMuNCAxMy40IDIuNyAyLjcifV0sWyJjaXJjbGUiLHtjeDoiMTIiLGN5OiIxMiIscjoiMiJ9XV0sQ29yPVtbInBhdGgiLHtkOiJNMTkuNSA3YTI0IDI0IDAgMCAxIDAgMTAifV0sWyJwYXRoIix7ZDoiTTQuNSA3YTI0IDI0IDAgMCAwIDAgMTAifV0sWyJwYXRoIix7ZDoiTTcgMTkuNWEyNCAyNCAwIDAgMCAxMCAwIn1dLFsicGF0aCIse2Q6Ik03IDQuNWEyNCAyNCAwIDAgMSAxMCAwIn1dLFsicmVjdCIse3g6IjE3Iix5OiIxNyIsd2lkdGg6IjUiLGhlaWdodDoiNSIscng6IjEifV0sWyJyZWN0Iix7eDoiMTciLHk6IjIiLHdpZHRoOiI1IixoZWlnaHQ6IjUiLHJ4OiIxIn1dLFsicmVjdCIse3g6IjIiLHk6IjE3Iix3aWR0aDoiNSIsaGVpZ2h0OiI1IixyeDoiMSJ9XSxbInJlY3QiLHt4OiIyIix5OiIyIix3aWR0aDoiNSIsaGVpZ2h0OiI1IixyeDoiMSJ9XV0sVG9yPVtbInBhdGgiLHtkOiJNMTYgOHE2IDAgNi02LTYgMC02IDYifV0sWyJwYXRoIix7ZDoiTTE3LjQxIDMuNTlhMTAgMTAgMCAxIDAgMyAzIn1dLFsicGF0aCIse2Q6Ik0yIDJhMjYuNiAyNi42IDAgMCAxIDEwIDIwYy45LTYuODIgMS41LTkuNSA0LTE0In1dXSxfb3I9W1sicGF0aCIse2Q6Ik0xOCAxMWMtMS41IDAtMi41LjUtMyAyIn1dLFsicGF0aCIse2Q6Ik00IDZhMiAyIDAgMCAwLTIgMnY0YTUgNSAwIDAgMCA1IDUgOCA4IDAgMCAxIDUgMiA4IDggMCAwIDEgNS0yIDUgNSAwIDAgMCA1LTVWOGEyIDIgMCAwIDAtMi0yaC0zYTggOCAwIDAgMC01IDIgOCA4IDAgMCAwLTUtMnoifV0sWyJwYXRoIix7ZDoiTTYgMTFjMS41IDAgMi41LjUgMyAyIn1dXSxMb3I9W1sicGF0aCIse2Q6Ik0xMCAyMGg0In1dLFsicGF0aCIse2Q6Ik0xMiAxNnY2In1dLFsicGF0aCIse2Q6Ik0xNyAyaDR2NCJ9XSxbInBhdGgiLHtkOiJtMjEgMi01LjQ2IDUuNDYifV0sWyJjaXJjbGUiLHtjeDoiMTIiLGN5OiIxMSIscjoiNSJ9XV0sQW9yPVtbInBhdGgiLHtkOiJNMTIgMTV2NyJ9XSxbInBhdGgiLHtkOiJNOSAxOWg2In1dLFsiY2lyY2xlIix7Y3g6IjEyIixjeToiOSIscjoiNiJ9XV0sRG9yPVtbInBhdGgiLHtkOiJtMiA4IDIgMi0yIDIgMiAyLTIgMiJ9XSxbInBhdGgiLHtkOiJtMjIgOC0yIDIgMiAyLTIgMiAyIDIifV0sWyJwYXRoIix7ZDoiTTggOHYxMGMwIC41NS40NSAxIDEgMWg2Yy41NSAwIDEtLjQ1IDEtMXYtMiJ9XSxbInBhdGgiLHtkOiJNMTYgMTAuMzRWNmMwLS41NS0uNDUtMS0xLTFoLTQuMzQifV0sWyJsaW5lIix7eDE6IjIiLHgyOiIyMiIseTE6IjIiLHkyOiIyMiJ9XV0sRW9yPVtbInBhdGgiLHtkOiJtMiA4IDIgMi0yIDIgMiAyLTIgMiJ9XSxbInBhdGgiLHtkOiJtMjIgOC0yIDIgMiAyLTIgMiAyIDIifV0sWyJyZWN0Iix7d2lkdGg6IjgiLGhlaWdodDoiMTQiLHg6IjgiLHk6IjUiLHJ4OiIxIn1dXSwkb3I9W1sicGF0aCIse2Q6Ik0xMC42NiA2SDE0YTIgMiAwIDAgMSAyIDJ2Mi41bDUuMjQ4LTMuMDYyQS41LjUgMCAwIDEgMjIgNy44N3Y4LjE5NiJ9XSxbInBhdGgiLHtkOiJNMTYgMTZhMiAyIDAgMCAxLTIgMkg0YTIgMiAwIDAgMS0yLTJWOGEyIDIgMCAwIDEgMi0yaDIifV0sWyJwYXRoIix7ZDoibTIgMiAyMCAyMCJ9XV0sSW9yPVtbInBhdGgiLHtkOiJtMTYgMTMgNS4yMjMgMy40ODJhLjUuNSAwIDAgMCAuNzc3LS40MTZWNy44N2EuNS41IDAgMCAwLS43NTItLjQzMkwxNiAxMC41In1dLFsicmVjdCIse3g6IjIiLHk6IjYiLHdpZHRoOiIxNCIsaGVpZ2h0OiIxMiIscng6IjIifV1dLFBvcj1bWyJyZWN0Iix7d2lkdGg6IjIwIixoZWlnaHQ6IjE2Iix4OiIyIix5OiI0IixyeDoiMiJ9XSxbInBhdGgiLHtkOiJNMiA4aDIwIn1dLFsiY2lyY2xlIix7Y3g6IjgiLGN5OiIxNCIscjoiMiJ9XSxbInBhdGgiLHtkOiJNOCAxMmg4In1dLFsiY2lyY2xlIix7Y3g6IjE2IixjeToiMTQiLHI6IjIifV1dLE5vcj1bWyJwYXRoIix7ZDoiTTIxIDE3djJhMiAyIDAgMCAxLTIgMkg1YTIgMiAwIDAgMS0yLTJ2LTIifV0sWyJwYXRoIix7ZDoiTTIxIDdWNWEyIDIgMCAwIDAtMi0ySDVhMiAyIDAgMCAwLTIgMnYyIn1dLFsiY2lyY2xlIix7Y3g6IjEyIixjeToiMTIiLHI6IjEifV0sWyJwYXRoIix7ZDoiTTE4Ljk0NCAxMi4zM2ExIDEgMCAwIDAgMC0uNjYgNy41IDcuNSAwIDAgMC0xMy44ODggMCAxIDEgMCAwIDAgMCAuNjYgNy41IDcuNSAwIDAgMCAxMy44ODggMCJ9XV0sRm9yPVtbImNpcmNsZSIse2N4OiI2IixjeToiMTIiLHI6IjQifV0sWyJjaXJjbGUiLHtjeDoiMTgiLGN5OiIxMiIscjoiNCJ9XSxbImxpbmUiLHt4MToiNiIseDI6IjE4Iix5MToiMTYiLHkyOiIxNiJ9XV0sT29yPVtbInBhdGgiLHtkOiJNMTEuMSA3LjFhMTYuNTUgMTYuNTUgMCAwIDEgMTAuOSA0In1dLFsicGF0aCIse2Q6Ik0xMiAxMmExMi42IDEyLjYgMCAwIDEtOC43IDUifV0sWyJwYXRoIix7ZDoiTTE2LjggMTMuNmExNi41NSAxNi41NSAwIDAgMS05IDcuNSJ9XSxbInBhdGgiLHtkOiJNMjAuNyAxN2ExMi44IDEyLjggMCAwIDAtOC43LTUgMTMuMyAxMy4zIDAgMCAxIDAtMTAifV0sWyJwYXRoIix7ZDoiTTYuMyAzLjhhMTYuNTUgMTYuNTUgMCAwIDAgMS45IDExLjUifV0sWyJjaXJjbGUiLHtjeDoiMTIiLGN5OiIxMiIscjoiMTAifV1dLFJvcj1bWyJwYXRoIix7ZDoiTTExIDQuNzAyYS43MDUuNzA1IDAgMCAwLTEuMjAzLS40OThMNi40MTMgNy41ODdBMS40IDEuNCAwIDAgMSA1LjQxNiA4SDNhMSAxIDAgMCAwLTEgMXY2YTEgMSAwIDAgMCAxIDFoMi40MTZhMS40IDEuNCAwIDAgMSAuOTk3LjQxM2wzLjM4MyAzLjM4NEEuNzA1LjcwNSAwIDAgMCAxMSAxOS4yOTh6In1dLFsicGF0aCIse2Q6Ik0xNiA5YTUgNSAwIDAgMSAwIDYifV1dLEJvcj1bWyJwYXRoIix7ZDoiTTExIDQuNzAyYS43MDUuNzA1IDAgMCAwLTEuMjAzLS40OThMNi40MTMgNy41ODdBMS40IDEuNCAwIDAgMSA1LjQxNiA4SDNhMSAxIDAgMCAwLTEgMXY2YTEgMSAwIDAgMCAxIDFoMi40MTZhMS40IDEuNCAwIDAgMSAuOTk3LjQxM2wzLjM4MyAzLjM4NEEuNzA1LjcwNSAwIDAgMCAxMSAxOS4yOTh6In1dLFsicGF0aCIse2Q6Ik0xNiA5YTUgNSAwIDAgMSAwIDYifV0sWyJwYXRoIix7ZDoiTTE5LjM2NCAxOC4zNjRhOSA5IDAgMCAwIDAtMTIuNzI4In1dXSxIb3I9W1sicGF0aCIse2Q6Ik0xNiA5YTUgNSAwIDAgMSAuOTUgMi4yOTMifV0sWyJwYXRoIix7ZDoiTTE5LjM2NCA1LjYzNmE5IDkgMCAwIDEgMS44ODkgOS45NiJ9XSxbInBhdGgiLHtkOiJtMiAyIDIwIDIwIn1dLFsicGF0aCIse2Q6Im03IDctLjU4Ny41ODdBMS40IDEuNCAwIDAgMSA1LjQxNiA4SDNhMSAxIDAgMCAwLTEgMXY2YTEgMSAwIDAgMCAxIDFoMi40MTZhMS40IDEuNCAwIDAgMSAuOTk3LjQxM2wzLjM4MyAzLjM4NEEuNzA1LjcwNSAwIDAgMCAxMSAxOS4yOThWMTEifV0sWyJwYXRoIix7ZDoiTTkuODI4IDQuMTcyQS42ODYuNjg2IDAgMCAxIDExIDQuNjU3di42ODYifV1dLHFvcj1bWyJwYXRoIix7ZDoiTTExIDQuNzAyYS43MDUuNzA1IDAgMCAwLTEuMjAzLS40OThMNi40MTMgNy41ODdBMS40IDEuNCAwIDAgMSA1LjQxNiA4SDNhMSAxIDAgMCAwLTEgMXY2YTEgMSAwIDAgMCAxIDFoMi40MTZhMS40IDEuNCAwIDAgMSAuOTk3LjQxM2wzLjM4MyAzLjM4NEEuNzA1LjcwNSAwIDAgMCAxMSAxOS4yOTh6In1dLFsibGluZSIse3gxOiIyMiIseDI6IjE2Iix5MToiOSIseTI6IjE1In1dLFsibGluZSIse3gxOiIxNiIseDI6IjIyIix5MToiOSIseTI6IjE1In1dXSxqb3I9W1sicGF0aCIse2Q6Im05IDEyIDIgMiA0LTQifV0sWyJwYXRoIix7ZDoiTTUgN2MwLTEuMS45LTIgMi0yaDEwYTIgMiAwIDAgMSAyIDJ2MTJINVY3WiJ9XSxbInBhdGgiLHtkOiJNMjIgMTlIMiJ9XV0sVm9yPVtbInBhdGgiLHtkOiJNMTEgNC43MDJhLjcwNS43MDUgMCAwIDAtMS4yMDMtLjQ5OEw2LjQxMyA3LjU4N0ExLjQgMS40IDAgMCAxIDUuNDE2IDhIM2ExIDEgMCAwIDAtMSAxdjZhMSAxIDAgMCAwIDEgMWgyLjQxNmExLjQgMS40IDAgMCAxIC45OTcuNDEzbDMuMzgzIDMuMzg0QS43MDUuNzA1IDAgMCAwIDExIDE5LjI5OHoifV1dLFVvcj1bWyJyZWN0Iix7d2lkdGg6IjE4IixoZWlnaHQ6IjE4Iix4OiIzIix5OiIzIixyeDoiMiJ9XSxbInBhdGgiLHtkOiJNMyA5YTIgMiAwIDAgMSAyLTJoMTRhMiAyIDAgMCAxIDIgMiJ9XSxbInBhdGgiLHtkOiJNMyAxMWgzYy44IDAgMS42LjMgMi4xLjlsMS4xLjljMS42IDEuNiA0LjEgMS42IDUuNyAwbDEuMS0uOWMuNS0uNSAxLjMtLjkgMi4xLS45SDIxIn1dXSx4Tj1bWyJwYXRoIix7ZDoiTTE3IDE0aC4wMSJ9XSxbInBhdGgiLHtkOiJNNyA3aDEyYTIgMiAwIDAgMSAyIDJ2MTBhMiAyIDAgMCAxLTIgMkg1YTIgMiAwIDAgMS0yLTJWNWEyIDIgMCAwIDEgMi0yaDE0In1dXSxXb3I9W1sicGF0aCIse2Q6Ik0xOSA3VjRhMSAxIDAgMCAwLTEtMUg1YTIgMiAwIDAgMCAwIDRoMTVhMSAxIDAgMCAxIDEgMXY0aC0zYTIgMiAwIDAgMCAwIDRoM2ExIDEgMCAwIDAgMS0xdi0yYTEgMSAwIDAgMC0xLTEifV0sWyJwYXRoIix7ZDoiTTMgNXYxNGEyIDIgMCAwIDAgMiAyaDE1YTEgMSAwIDAgMCAxLTF2LTQifV1dLEdvcj1bWyJwYXRoIix7ZDoiTTEyIDE3djQifV0sWyJwYXRoIix7ZDoiTTggMjFoOCJ9XSxbInBhdGgiLHtkOiJtOSAxNyA2LjEtNi4xYTIgMiAwIDAgMSAyLjgxLjAxTDIyIDE1In1dLFsiY2lyY2xlIix7Y3g6IjgiLGN5OiI5IixyOiIyIn1dLFsicmVjdCIse3g6IjIiLHk6IjMiLHdpZHRoOiIyMCIsaGVpZ2h0OiIxNCIscng6IjIifV1dLHlOPVtbInBhdGgiLHtkOiJtMjEuNjQgMy42NC0xLjI4LTEuMjhhMS4yMSAxLjIxIDAgMCAwLTEuNzIgMEwyLjM2IDE4LjY0YTEuMjEgMS4yMSAwIDAgMCAwIDEuNzJsMS4yOCAxLjI4YTEuMiAxLjIgMCAwIDAgMS43MiAwTDIxLjY0IDUuMzZhMS4yIDEuMiAwIDAgMCAwLTEuNzIifV0sWyJwYXRoIix7ZDoibTE0IDcgMyAzIn1dLFsicGF0aCIse2Q6Ik01IDZ2NCJ9XSxbInBhdGgiLHtkOiJNMTkgMTR2NCJ9XSxbInBhdGgiLHtkOiJNMTAgMnYyIn1dLFsicGF0aCIse2Q6Ik03IDhIMyJ9XSxbInBhdGgiLHtkOiJNMjEgMTZoLTQifV0sWyJwYXRoIix7ZDoiTTExIDNIOSJ9XV0sWW9yPVtbInBhdGgiLHtkOiJNMTUgNFYyIn1dLFsicGF0aCIse2Q6Ik0xNSAxNnYtMiJ9XSxbInBhdGgiLHtkOiJNOCA5aDIifV0sWyJwYXRoIix7ZDoiTTIwIDloMiJ9XSxbInBhdGgiLHtkOiJNMTcuOCAxMS44IDE5IDEzIn1dLFsicGF0aCIse2Q6Ik0xNSA5aC4wMSJ9XSxbInBhdGgiLHtkOiJNMTcuOCA2LjIgMTkgNSJ9XSxbInBhdGgiLHtkOiJtMyAyMSA5LTkifV0sWyJwYXRoIix7ZDoiTTEyLjIgNi4yIDExIDUifV1dLFpvcj1bWyJwYXRoIix7ZDoiTTE4IDIxVjEwYTEgMSAwIDAgMC0xLTFIN2ExIDEgMCAwIDAtMSAxdjExIn1dLFsicGF0aCIse2Q6Ik0yMiAxOWEyIDIgMCAwIDEtMiAySDRhMiAyIDAgMCAxLTItMlY4YTIgMiAwIDAgMSAxLjEzMi0xLjgwM2w3Ljk1LTMuOTc0YTIgMiAwIDAgMSAxLjgzNyAwbDcuOTQ4IDMuOTc0QTIgMiAwIDAgMSAyMiA4eiJ9XSxbInBhdGgiLHtkOiJNNiAxM2gxMiJ9XSxbInBhdGgiLHtkOiJNNiAxN2gxMiJ9XV0sWG9yPVtbInBhdGgiLHtkOiJNMyA2aDMifV0sWyJwYXRoIix7ZDoiTTE3IDZoLjAxIn1dLFsicmVjdCIse3dpZHRoOiIxOCIsaGVpZ2h0OiIyMCIseDoiMyIseToiMiIscng6IjIifV0sWyJjaXJjbGUiLHtjeDoiMTIiLGN5OiIxMyIscjoiNSJ9XSxbInBhdGgiLHtkOiJNMTIgMThhMi41IDIuNSAwIDAgMCAwLTUgMi41IDIuNSAwIDAgMSAwLTUifV1dLFFvcj1bWyJwYXRoIix7ZDoiTTEyIDEwdjIuMmwxLjYgMSJ9XSxbInBhdGgiLHtkOiJtMTYuMTMgNy42Ni0uODEtNC4wNWEyIDIgMCAwIDAtMi0xLjYxaC0yLjY4YTIgMiAwIDAgMC0yIDEuNjFsLS43OCA0LjA1In1dLFsicGF0aCIse2Q6Im03Ljg4IDE2LjM2LjggNGEyIDIgMCAwIDAgMiAxLjYxaDIuNzJhMiAyIDAgMCAwIDItMS42MWwuODEtNC4wNSJ9XSxbImNpcmNsZSIse2N4OiIxMiIsY3k6IjEyIixyOiI2In1dXSxKb3I9W1sicGF0aCIse2Q6Ik0xMiAxMEwxMiAyIn1dLFsicGF0aCIse2Q6Ik0xNiA2TDEyIDEwTDggNiJ9XSxbInBhdGgiLHtkOiJNMiAxNUMyLjYgMTUuNSAzLjIgMTYgNC41IDE2QzcgMTYgNyAxNCA5LjUgMTRDMTIuMSAxNCAxMS45IDE2IDE0LjUgMTZDMTcgMTYgMTcgMTQgMTkuNSAxNEMyMC44IDE0IDIxLjQgMTQuNSAyMiAxNSJ9XSxbInBhdGgiLHtkOiJNMiAyMUMyLjYgMjEuNSAzLjIgMjIgNC41IDIyQzcgMjIgNyAyMCA5LjUgMjBDMTIuMSAyMCAxMS45IDIyIDE0LjUgMjJDMTcgMjIgMTcgMjAgMTkuNSAyMEMyMC44IDIwIDIxLjQgMjAuNSAyMiAyMSJ9XV0sS29yPVtbInBhdGgiLHtkOiJNMTIgMnY4In1dLFsicGF0aCIse2Q6Ik0yIDE1Yy42LjUgMS4yIDEgMi41IDEgMi41IDAgMi41LTIgNS0yIDIuNiAwIDIuNCAyIDUgMiAyLjUgMCAyLjUtMiA1LTIgMS4zIDAgMS45LjUgMi41IDEifV0sWyJwYXRoIix7ZDoiTTIgMjFjLjYuNSAxLjIgMSAyLjUgMSAyLjUgMCAyLjUtMiA1LTIgMi42IDAgMi40IDIgNSAyIDIuNSAwIDIuNS0yIDUtMiAxLjMgMCAxLjkuNSAyLjUgMSJ9XSxbInBhdGgiLHtkOiJtOCA2IDQtNCA0IDQifV1dLGUycj1bWyJwYXRoIix7ZDoiTTE5IDVhMiAyIDAgMCAwLTIgMnYxMSJ9XSxbInBhdGgiLHtkOiJNMiAxOGMuNi41IDEuMiAxIDIuNSAxIDIuNSAwIDIuNS0yIDUtMiAyLjYgMCAyLjQgMiA1IDIgMi41IDAgMi41LTIgNS0yIDEuMyAwIDEuOS41IDIuNSAxIn1dLFsicGF0aCIse2Q6Ik03IDEzaDEwIn1dLFsicGF0aCIse2Q6Ik03IDloMTAifV0sWyJwYXRoIix7ZDoiTTkgNWEyIDIgMCAwIDAtMiAydjExIn1dXSx0MnI9W1sicGF0aCIse2Q6Ik0yIDZjLjYuNSAxLjIgMSAyLjUgMUM3IDcgNyA1IDkuNSA1YzIuNiAwIDIuNCAyIDUgMiAyLjUgMCAyLjUtMiA1LTIgMS4zIDAgMS45LjUgMi41IDEifV0sWyJwYXRoIix7ZDoiTTIgMTJjLjYuNSAxLjIgMSAyLjUgMSAyLjUgMCAyLjUtMiA1LTIgMi42IDAgMi40IDIgNSAyIDIuNSAwIDIuNS0yIDUtMiAxLjMgMCAxLjkuNSAyLjUgMSJ9XSxbInBhdGgiLHtkOiJNMiAxOGMuNi41IDEuMiAxIDIuNSAxIDIuNSAwIDIuNS0yIDUtMiAyLjYgMCAyLjQgMiA1IDIgMi41IDAgMi41LTIgNS0yIDEuMyAwIDEuOS41IDIuNSAxIn1dXSxyMnI9W1sicGF0aCIse2Q6Im0xMC41ODYgNS40MTQtNS4xNzIgNS4xNzIifV0sWyJwYXRoIix7ZDoibTE4LjU4NiAxMy40MTQtNS4xNzIgNS4xNzIifV0sWyJwYXRoIix7ZDoiTTYgMTJoMTIifV0sWyJjaXJjbGUiLHtjeDoiMTIiLGN5OiIyMCIscjoiMiJ9XSxbImNpcmNsZSIse2N4OiIxMiIsY3k6IjQiLHI6IjIifV0sWyJjaXJjbGUiLHtjeDoiMjAiLGN5OiIxMiIscjoiMiJ9XSxbImNpcmNsZSIse2N4OiI0IixjeToiMTIiLHI6IjIifV1dLGkycj1bWyJjaXJjbGUiLHtjeDoiMTIiLGN5OiIxMCIscjoiOCJ9XSxbImNpcmNsZSIse2N4OiIxMiIsY3k6IjEwIixyOiIzIn1dLFsicGF0aCIse2Q6Ik03IDIyaDEwIn1dLFsicGF0aCIse2Q6Ik0xMiAyMnYtNCJ9XV0sYTJyPVtbInBhdGgiLHtkOiJNMTcgMTdoLTVjLTEuMDktLjAyLTEuOTQuOTItMi41IDEuOUEzIDMgMCAxIDEgMi41NyAxNSJ9XSxbInBhdGgiLHtkOiJNOSAzLjRhNCA0IDAgMCAxIDYuNTIuNjYifV0sWyJwYXRoIix7ZDoibTYgMTcgMy4xLTUuOGEyLjUgMi41IDAgMCAwIC4wNTctMi4wNSJ9XSxbInBhdGgiLHtkOiJNMjAuMyAyMC4zYTQgNCAwIDAgMS0yLjMuNyJ9XSxbInBhdGgiLHtkOiJNMTguNiAxM2E0IDQgMCAwIDEgMy4zNTcgMy40MTQifV0sWyJwYXRoIix7ZDoibTEyIDYgLjYgMSJ9XSxbInBhdGgiLHtkOiJtMiAyIDIwIDIwIn1dXSxuMnI9W1sicGF0aCIse2Q6Ik0xOCAxNi45OGgtNS45OWMtMS4xIDAtMS45NS45NC0yLjQ4IDEuOUE0IDQgMCAwIDEgMiAxN2MuMDEtLjcuMi0xLjQuNTctMiJ9XSxbInBhdGgiLHtkOiJtNiAxNyAzLjEzLTUuNzhjLjUzLS45Ny4xLTIuMTgtLjUtMy4xYTQgNCAwIDEgMSA2Ljg5LTQuMDYifV0sWyJwYXRoIix7ZDoibTEyIDYgMy4xMyA1LjczQzE1LjY2IDEyLjcgMTYuOSAxMyAxOCAxM2E0IDQgMCAwIDEgMCA4In1dXSxvMnI9W1sicGF0aCIse2Q6Ik02LjUgOGEyIDIgMCAwIDAtMS45MDYgMS40NkwyLjEgMTguNUEyIDIgMCAwIDAgNCAyMWgxNmEyIDIgMCAwIDAgMS45MjUtMi41NEwxOS40IDkuNUEyIDIgMCAwIDAgMTcuNDggOHoifV0sWyJwYXRoIix7ZDoiTTcuOTk5IDE1YTIuNSAyLjUgMCAwIDEgNCAwIDIuNSAyLjUgMCAwIDAgNCAwIn1dLFsiY2lyY2xlIix7Y3g6IjEyIixjeToiNSIscjoiMyJ9XV0sczJyPVtbInBhdGgiLHtkOiJtMiAyMiAxMC0xMCJ9XSxbInBhdGgiLHtkOiJtMTYgOC0xLjE3IDEuMTcifV0sWyJwYXRoIix7ZDoiTTMuNDcgMTIuNTMgNSAxMWwxLjUzIDEuNTNhMy41IDMuNSAwIDAgMSAwIDQuOTRMNSAxOWwtMS41My0xLjUzYTMuNSAzLjUgMCAwIDEgMC00Ljk0WiJ9XSxbInBhdGgiLHtkOiJtOCA4LS41My41M2EzLjUgMy41IDAgMCAwIDAgNC45NEw5IDE1bDEuNTMtMS41M2MuNTUtLjU1Ljg4LTEuMjUuOTgtMS45NyJ9XSxbInBhdGgiLHtkOiJNMTAuOTEgNS4yNmMuMTUtLjI2LjM0LS41MS41Ni0uNzNMMTMgM2wxLjUzIDEuNTNhMy41IDMuNSAwIDAgMSAuMjggNC42MiJ9XSxbInBhdGgiLHtkOiJNMjAgMmgydjJhNCA0IDAgMCAxLTQgNGgtMlY2YTQgNCAwIDAgMSA0LTRaIn1dLFsicGF0aCIse2Q6Ik0xMS40NyAxNy40NyAxMyAxOWwtMS41MyAxLjUzYTMuNSAzLjUgMCAwIDEtNC45NCAwTDUgMTlsMS41My0xLjUzYTMuNSAzLjUgMCAwIDEgNC45NCAwWiJ9XSxbInBhdGgiLHtkOiJtMTYgMTYtLjUzLjUzYTMuNSAzLjUgMCAwIDEtNC45NCAwTDkgMTVsMS41My0xLjUzYTMuNDkgMy40OSAwIDAgMSAxLjk3LS45OCJ9XSxbInBhdGgiLHtkOiJNMTguNzQgMTMuMDljLjI2LS4xNS41MS0uMzQuNzMtLjU2TDIxIDExbC0xLjUzLTEuNTNhMy41IDMuNSAwIDAgMC00LjYyLS4yOCJ9XSxbImxpbmUiLHt4MToiMiIseDI6IjIyIix5MToiMiIseTI6IjIyIn1dXSxsMnI9W1siY2lyY2xlIix7Y3g6IjEyIixjeToiNSIscjoiMyJ9XSxbInBhdGgiLHtkOiJNNi41IDhhMiAyIDAgMCAwLTEuOTA1IDEuNDZMMi4xIDE4LjVBMiAyIDAgMCAwIDQgMjFoMTZhMiAyIDAgMCAwIDEuOTI1LTIuNTRMMTkuNCA5LjVBMiAyIDAgMCAwIDE3LjQ4IDhaIn1dXSxjMnI9W1sicGF0aCIse2Q6Ik0yIDIyIDE2IDgifV0sWyJwYXRoIix7ZDoiTTMuNDcgMTIuNTMgNSAxMWwxLjUzIDEuNTNhMy41IDMuNSAwIDAgMSAwIDQuOTRMNSAxOWwtMS41My0xLjUzYTMuNSAzLjUgMCAwIDEgMC00Ljk0WiJ9XSxbInBhdGgiLHtkOiJNNy40NyA4LjUzIDkgN2wxLjUzIDEuNTNhMy41IDMuNSAwIDAgMSAwIDQuOTRMOSAxNWwtMS41My0xLjUzYTMuNSAzLjUgMCAwIDEgMC00Ljk0WiJ9XSxbInBhdGgiLHtkOiJNMTEuNDcgNC41MyAxMyAzbDEuNTMgMS41M2EzLjUgMy41IDAgMCAxIDAgNC45NEwxMyAxMWwtMS41My0xLjUzYTMuNSAzLjUgMCAwIDEgMC00Ljk0WiJ9XSxbInBhdGgiLHtkOiJNMjAgMmgydjJhNCA0IDAgMCAxLTQgNGgtMlY2YTQgNCAwIDAgMSA0LTRaIn1dLFsicGF0aCIse2Q6Ik0xMS40NyAxNy40NyAxMyAxOWwtMS41MyAxLjUzYTMuNSAzLjUgMCAwIDEtNC45NCAwTDUgMTlsMS41My0xLjUzYTMuNSAzLjUgMCAwIDEgNC45NCAwWiJ9XSxbInBhdGgiLHtkOiJNMTUuNDcgMTMuNDcgMTcgMTVsLTEuNTMgMS41M2EzLjUgMy41IDAgMCAxLTQuOTQgMEw5IDE1bDEuNTMtMS41M2EzLjUgMy41IDAgMCAxIDQuOTQgMFoifV0sWyJwYXRoIix7ZDoiTTE5LjQ3IDkuNDcgMjEgMTFsLTEuNTMgMS41M2EzLjUgMy41IDAgMCAxLTQuOTQgMEwxMyAxMWwxLjUzLTEuNTNhMy41IDMuNSAwIDAgMSA0Ljk0IDBaIn1dXSxkMnI9W1siY2lyY2xlIix7Y3g6IjciLGN5OiIxMiIscjoiMyJ9XSxbInBhdGgiLHtkOiJNMTAgOXY2In1dLFsiY2lyY2xlIix7Y3g6IjE3IixjeToiMTIiLHI6IjMifV0sWyJwYXRoIix7ZDoiTTE0IDd2OCJ9XSxbInBhdGgiLHtkOiJNMjIgMTd2MWMwIC41LS41IDEtMSAxSDNjLS41IDAtMS0uNS0xLTF2LTEifV1dLHUycj1bWyJwYXRoIix7ZDoibTE0LjMwNSAxOS41My45MjMtLjM4MiJ9XSxbInBhdGgiLHtkOiJtMTUuMjI4IDE2Ljg1Mi0uOTIzLS4zODMifV0sWyJwYXRoIix7ZDoibTE2Ljg1MiAxNS4yMjgtLjM4My0uOTIzIn1dLFsicGF0aCIse2Q6Im0xNi44NTIgMjAuNzcyLS4zODMuOTI0In1dLFsicGF0aCIse2Q6Im0xOS4xNDggMTUuMjI4LjM4My0uOTIzIn1dLFsicGF0aCIse2Q6Im0xOS41MyAyMS42OTYtLjM4Mi0uOTI0In1dLFsicGF0aCIse2Q6Ik0yIDcuODJhMTUgMTUgMCAwIDEgMjAgMCJ9XSxbInBhdGgiLHtkOiJtMjAuNzcyIDE2Ljg1Mi45MjQtLjM4MyJ9XSxbInBhdGgiLHtkOiJtMjAuNzcyIDE5LjE0OC45MjQuMzgzIn1dLFsicGF0aCIse2Q6Ik01IDExLjg1OGExMCAxMCAwIDAgMSAxMS41LTEuNzg1In1dLFsicGF0aCIse2Q6Ik04LjUgMTUuNDI5YTUgNSAwIDAgMSAyLjQxMy0xLjMxIn1dLFsiY2lyY2xlIix7Y3g6IjE4IixjeToiMTgiLHI6IjMifV1dLHAycj1bWyJwYXRoIix7ZDoiTTEyIDIwaC4wMSJ9XSxbInBhdGgiLHtkOiJNNSAxMi44NTlhMTAgMTAgMCAwIDEgMTQgMCJ9XSxbInBhdGgiLHtkOiJNOC41IDE2LjQyOWE1IDUgMCAwIDEgNyAwIn1dXSxoMnI9W1sicGF0aCIse2Q6Ik0xMiAyMGguMDEifV0sWyJwYXRoIix7ZDoiTTguNSAxNi40MjlhNSA1IDAgMCAxIDcgMCJ9XV0sZjJyPVtbInBhdGgiLHtkOiJNMTIgMjBoLjAxIn1dLFsicGF0aCIse2Q6Ik04LjUgMTYuNDI5YTUgNSAwIDAgMSA3IDAifV0sWyJwYXRoIix7ZDoiTTUgMTIuODU5YTEwIDEwIDAgMCAxIDUuMTctMi42OSJ9XSxbInBhdGgiLHtkOiJNMTkgMTIuODU5YTEwIDEwIDAgMCAwLTIuMDA3LTEuNTIzIn1dLFsicGF0aCIse2Q6Ik0yIDguODJhMTUgMTUgMCAwIDEgNC4xNzctMi42NDMifV0sWyJwYXRoIix7ZDoiTTIyIDguODJhMTUgMTUgMCAwIDAtMTEuMjg4LTMuNzY0In1dLFsicGF0aCIse2Q6Im0yIDIgMjAgMjAifV1dLG0ycj1bWyJwYXRoIix7ZDoiTTIgOC44MmExNSAxNSAwIDAgMSAyMCAwIn1dLFsicGF0aCIse2Q6Ik0yMS4zNzggMTYuNjI2YTEgMSAwIDAgMC0zLjAwNC0zLjAwNGwtNC4wMSA0LjAxMmEyIDIgMCAwIDAtLjUwNi44NTRsLS44MzcgMi44N2EuNS41IDAgMCAwIC42Mi42MmwyLjg3LS44MzdhMiAyIDAgMCAwIC44NTQtLjUwNnoifV0sWyJwYXRoIix7ZDoiTTUgMTIuODU5YTEwIDEwIDAgMCAxIDEwLjUtMi4yMjIifV0sWyJwYXRoIix7ZDoiTTguNSAxNi40MjlhNSA1IDAgMCAxIDMtMS40MDYifV1dLGcycj1bWyJwYXRoIix7ZDoiTTExLjk2NSAxMC4xMDV2NEwxMy41IDEyLjVhNSA1IDAgMCAxIDggMS41In1dLFsicGF0aCIse2Q6Ik0xMS45NjUgMTQuMTA1aDQifV0sWyJwYXRoIix7ZDoiTTE3Ljk2NSAxOC4xMDVoNEwyMC40MyAxOS43MWE1IDUgMCAwIDEtOC0xLjUifV0sWyJwYXRoIix7ZDoiTTIgOC44MmExNSAxNSAwIDAgMSAyMCAwIn1dLFsicGF0aCIse2Q6Ik0yMS45NjUgMjIuMTA1di00In1dLFsicGF0aCIse2Q6Ik01IDEyLjg2YTEwIDEwIDAgMCAxIDMtMi4wMzIifV0sWyJwYXRoIix7ZDoiTTguNSAxNi40MjloLjAxIn1dXSxiMnI9W1sicGF0aCIse2Q6Ik0xMiAyMGguMDEifV1dLHYycj1bWyJwYXRoIix7ZDoiTTEyIDIwaC4wMSJ9XSxbInBhdGgiLHtkOiJNMiA4LjgyYTE1IDE1IDAgMCAxIDIwIDAifV0sWyJwYXRoIix7ZDoiTTUgMTIuODU5YTEwIDEwIDAgMCAxIDE0IDAifV0sWyJwYXRoIix7ZDoiTTguNSAxNi40MjlhNSA1IDAgMCAxIDcgMCJ9XV0seDJyPVtbInBhdGgiLHtkOiJNMTAgMnY4In1dLFsicGF0aCIse2Q6Ik0xMi44IDIxLjZBMiAyIDAgMSAwIDE0IDE4SDIifV0sWyJwYXRoIix7ZDoiTTE3LjUgMTBhMi41IDIuNSAwIDEgMSAyIDRIMiJ9XSxbInBhdGgiLHtkOiJtNiA2IDQgNCA0LTQifV1dLHkycj1bWyJwYXRoIix7ZDoiTTEyLjggMTkuNkEyIDIgMCAxIDAgMTQgMTZIMiJ9XSxbInBhdGgiLHtkOiJNMTcuNSA4YTIuNSAyLjUgMCAxIDEgMiA0SDIifV0sWyJwYXRoIix7ZDoiTTkuOCA0LjRBMiAyIDAgMSAxIDExIDhIMiJ9XV0sdzJyPVtbInBhdGgiLHtkOiJNOCAyMmg4In1dLFsicGF0aCIse2Q6Ik03IDEwaDEwIn1dLFsicGF0aCIse2Q6Ik0xMiAxNXY3In1dLFsicGF0aCIse2Q6Ik0xMiAxNWE1IDUgMCAwIDAgNS01YzAtMi0uNS00LTItOEg5Yy0xLjUgNC0yIDYtMiA4YTUgNSAwIDAgMCA1IDVaIn1dXSxNMnI9W1sicmVjdCIse3dpZHRoOiI4IixoZWlnaHQ6IjgiLHg6IjMiLHk6IjMiLHJ4OiIyIn1dLFsicGF0aCIse2Q6Ik03IDExdjRhMiAyIDAgMCAwIDIgMmg0In1dLFsicmVjdCIse3dpZHRoOiI4IixoZWlnaHQ6IjgiLHg6IjEzIix5OiIxMyIscng6IjIifV1dLGsycj1bWyJwYXRoIix7ZDoiTTggMjJoOCJ9XSxbInBhdGgiLHtkOiJNNyAxMGgzbTcgMGgtMS4zNDMifV0sWyJwYXRoIix7ZDoiTTEyIDE1djcifV0sWyJwYXRoIix7ZDoiTTcuMzA3IDcuMzA3QTEyLjMzIDEyLjMzIDAgMCAwIDcgMTBhNSA1IDAgMCAwIDcuMzkxIDQuMzkxTTguNjM4IDIuOTgxQzguNzUgMi42NjggOC44NzIgMi4zNCA5IDJoNmMxLjUgNCAyIDYgMiA4IDAgLjQwNy0uMDUuODA5LS4xNDUgMS4xOTgifV0sWyJsaW5lIix7eDE6IjIiLHgyOiIyMiIseTE6IjIiLHkyOiIyMiJ9XV0sUzJyPVtbInBhdGgiLHtkOiJtMTkgMTItMS41IDMifV0sWyJwYXRoIix7ZDoiTTE5LjYzIDE4LjgxIDIyIDIwIn1dLFsicGF0aCIse2Q6Ik02LjQ3IDguMjNhMS42OCAxLjY4IDAgMCAxIDIuNDQgMS45M2wtLjY0IDIuMDhhNi43NiA2Ljc2IDAgMCAwIDEwLjE2IDcuNjdsLjQyLS4yN2ExIDEgMCAxIDAtMi43My00LjIxbC0uNDIuMjdhMS43NiAxLjc2IDAgMCAxLTIuNjMtMS45OWwuNjQtMi4wOEE2LjY2IDYuNjYgMCAwIDAgMy45NCAzLjlsLS43LjRhMSAxIDAgMSAwIDIuNTUgNC4zNHoifV1dLHoycj1bWyJwYXRoIix7ZDoiTTE4IDYgNiAxOCJ9XSxbInBhdGgiLHtkOiJtNiA2IDEyIDEyIn1dXSxDMnI9W1sicGF0aCIse2Q6Ik0yLjUgMTdhMjQuMTIgMjQuMTIgMCAwIDEgMC0xMCAyIDIgMCAwIDEgMS40LTEuNCA0OS41NiA0OS41NiAwIDAgMSAxNi4yIDBBMiAyIDAgMCAxIDIxLjUgN2EyNC4xMiAyNC4xMiAwIDAgMSAwIDEwIDIgMiAwIDAgMS0xLjQgMS40IDQ5LjU1IDQ5LjU1IDAgMCAxLTE2LjIgMEEyIDIgMCAwIDEgMi41IDE3In1dLFsicGF0aCIse2Q6Im0xMCAxNSA1LTMtNS0zeiJ9XV0sVDJyPVtbInBhdGgiLHtkOiJNMTQuNyA2LjNhMSAxIDAgMCAwIDAgMS40bDEuNiAxLjZhMSAxIDAgMCAwIDEuNCAwbDMuMTA2LTMuMTA1Yy4zMi0uMzIyLjg2My0uMjIuOTgzLjIxOGE2IDYgMCAwIDEtOC4yNTkgNy4wNTdsLTcuOTEgNy45MWExIDEgMCAwIDEtMi45OTktM2w3LjkxLTcuOTFhNiA2IDAgMCAxIDcuMDU3LTguMjU5Yy40MzguMTIuNTQuNjYyLjIxOS45ODR6In1dXSxfMnI9W1sicGF0aCIse2Q6Ik0xMC41MTMgNC44NTYgMTMuMTIgMi4xN2EuNS41IDAgMCAxIC44Ni40NmwtMS4zNzcgNC4zMTcifV0sWyJwYXRoIix7ZDoiTTE1LjY1NiAxMEgyMGExIDEgMCAwIDEgLjc4IDEuNjNsLTEuNzIgMS43NzMifV0sWyJwYXRoIix7ZDoiTTE2LjI3MyAxNi4yNzMgMTAuODggMjEuODNhLjUuNSAwIDAgMS0uODYtLjQ2bDEuOTItNi4wMkExIDEgMCAwIDAgMTEgMTRINGExIDEgMCAwIDEtLjc4LTEuNjNsNC41MDctNC42NDMifV0sWyJwYXRoIix7ZDoibTIgMiAyMCAyMCJ9XV0sTDJyPVtbInBhdGgiLHtkOiJNNCAxNGExIDEgMCAwIDEtLjc4LTEuNjNsOS45LTEwLjJhLjUuNSAwIDAgMSAuODYuNDZsLTEuOTIgNi4wMkExIDEgMCAwIDAgMTMgMTBoN2ExIDEgMCAwIDEgLjc4IDEuNjNsLTkuOSAxMC4yYS41LjUgMCAwIDEtLjg2LS40NmwxLjkyLTYuMDJBMSAxIDAgMCAwIDExIDE0eiJ9XV0sQTJyPVtbImNpcmNsZSIse2N4OiIxMSIsY3k6IjExIixyOiI4In1dLFsibGluZSIse3gxOiIyMSIseDI6IjE2LjY1Iix5MToiMjEiLHkyOiIxNi42NSJ9XSxbImxpbmUiLHt4MToiOCIseDI6IjE0Iix5MToiMTEiLHkyOiIxMSJ9XV0sRDJyPVtbImNpcmNsZSIse2N4OiIxMSIsY3k6IjExIixyOiI4In1dLFsibGluZSIse3gxOiIyMSIseDI6IjE2LjY1Iix5MToiMjEiLHkyOiIxNi42NSJ9XSxbImxpbmUiLHt4MToiMTEiLHgyOiIxMSIseTE6IjgiLHkyOiIxNCJ9XSxbImxpbmUiLHt4MToiOCIseDI6IjE0Iix5MToiMTEiLHkyOiIxMSJ9XV0sRVpyPU9iamVjdC5mcmVlemUoe19fcHJvdG9fXzpudWxsLEFBcnJvd0Rvd246WlB0LEFBcnJvd1VwOlhQdCxBTGFyZ2VTbWFsbDpRUHQsQWNjZXNzaWJpbGl0eTpKUHQsQWN0aXZpdHk6ZU50LEFjdGl2aXR5U3F1YXJlOnRQLEFpclZlbnQ6S1B0LEFpcnBsYXk6dE50LEFsYXJtQ2hlY2s6ZkUsQWxhcm1DbG9jazppTnQsQWxhcm1DbG9ja0NoZWNrOmZFLEFsYXJtQ2xvY2tNaW51czptRSxBbGFybUNsb2NrT2ZmOnJOdCxBbGFybUNsb2NrUGx1czpnRSxBbGFybU1pbnVzOm1FLEFsYXJtUGx1czpnRSxBbGFybVNtb2tlOmFOdCxBbGJ1bTpuTnQsQWxlcnRDaXJjbGU6VUUsQWxlcnRPY3RhZ29uOkxJLEFsZXJ0VHJpYW5nbGU6c04sQWxpZ25DZW50ZXI6S1AsQWxpZ25DZW50ZXJIb3Jpem9udGFsOm9OdCxBbGlnbkNlbnRlclZlcnRpY2FsOnNOdCxBbGlnbkVuZEhvcml6b250YWw6bE50LEFsaWduRW5kVmVydGljYWw6Y050LEFsaWduSG9yaXpvbnRhbERpc3RyaWJ1dGVDZW50ZXI6ZE50LEFsaWduSG9yaXpvbnRhbERpc3RyaWJ1dGVFbmQ6dU50LEFsaWduSG9yaXpvbnRhbERpc3RyaWJ1dGVTdGFydDpwTnQsQWxpZ25Ib3Jpem9udGFsSnVzdGlmeUNlbnRlcjpoTnQsQWxpZ25Ib3Jpem9udGFsSnVzdGlmeUVuZDpmTnQsQWxpZ25Ib3Jpem9udGFsSnVzdGlmeVN0YXJ0Om1OdCxBbGlnbkhvcml6b250YWxTcGFjZUFyb3VuZDpnTnQsQWxpZ25Ib3Jpem9udGFsU3BhY2VCZXR3ZWVuOmJOdCxBbGlnbkp1c3RpZnk6dE4sQWxpZ25MZWZ0OlpwLEFsaWduUmlnaHQ6ZU4sQWxpZ25TdGFydEhvcml6b250YWw6dk50LEFsaWduU3RhcnRWZXJ0aWNhbDp4TnQsQWxpZ25WZXJ0aWNhbERpc3RyaWJ1dGVDZW50ZXI6eU50LEFsaWduVmVydGljYWxEaXN0cmlidXRlRW5kOndOdCxBbGlnblZlcnRpY2FsRGlzdHJpYnV0ZVN0YXJ0Ok1OdCxBbGlnblZlcnRpY2FsSnVzdGlmeUNlbnRlcjprTnQsQWxpZ25WZXJ0aWNhbEp1c3RpZnlFbmQ6U050LEFsaWduVmVydGljYWxKdXN0aWZ5U3RhcnQ6ek50LEFsaWduVmVydGljYWxTcGFjZUFyb3VuZDpDTnQsQWxpZ25WZXJ0aWNhbFNwYWNlQmV0d2VlbjpUTnQsQW1idWxhbmNlOl9OdCxBbXBlcnNhbmQ6TE50LEFtcGVyc2FuZHM6QU50LEFtcGhvcmE6RE50LEFuY2hvcjpFTnQsQW5ncnk6JE50LEFubm95ZWQ6SU50LEFudGVubmE6UE50LEFudmlsOk5OdCxBcGVydHVyZTpGTnQsQXBwV2luZG93OlJOdCxBcHBXaW5kb3dNYWM6T050LEFwcGxlOkJOdCxBcmNoaXZlOmpOdCxBcmNoaXZlUmVzdG9yZTpITnQsQXJjaGl2ZVg6cU50LEFyZWFDaGFydDpERSxBcm1jaGFpcjpWTnQsQXJyb3dCaWdEb3duOldOdCxBcnJvd0JpZ0Rvd25EYXNoOlVOdCxBcnJvd0JpZ0xlZnQ6WU50LEFycm93QmlnTGVmdERhc2g6R050LEFycm93QmlnUmlnaHQ6WE50LEFycm93QmlnUmlnaHREYXNoOlpOdCxBcnJvd0JpZ1VwOkpOdCxBcnJvd0JpZ1VwRGFzaDpRTnQsQXJyb3dEb3duOmxGdCxBcnJvd0Rvd24wMTpLTnQsQXJyb3dEb3duMTA6ZUZ0LEFycm93RG93bkFaOmJFLEFycm93RG93bkF6OmJFLEFycm93RG93bkNpcmNsZTpXRSxBcnJvd0Rvd25Gcm9tTGluZTp0RnQsQXJyb3dEb3duTGVmdDpyRnQsQXJyb3dEb3duTGVmdEZyb21DaXJjbGU6WUUsQXJyb3dEb3duTGVmdEZyb21TcXVhcmU6blAsQXJyb3dEb3duTGVmdFNxdWFyZTplUCxBcnJvd0Rvd25OYXJyb3dXaWRlOmlGdCxBcnJvd0Rvd25SaWdodDphRnQsQXJyb3dEb3duUmlnaHRGcm9tQ2lyY2xlOlpFLEFycm93RG93blJpZ2h0RnJvbVNxdWFyZTpzUCxBcnJvd0Rvd25SaWdodFNxdWFyZTpyUCxBcnJvd0Rvd25TcXVhcmU6aVAsQXJyb3dEb3duVG9Eb3Q6bkZ0LEFycm93RG93blRvTGluZTpvRnQsQXJyb3dEb3duVXA6c0Z0LEFycm93RG93bldpZGVOYXJyb3c6dkUsQXJyb3dEb3duWkE6eEUsQXJyb3dEb3duWmE6eEUsQXJyb3dMZWZ0OnBGdCxBcnJvd0xlZnRDaXJjbGU6R0UsQXJyb3dMZWZ0RnJvbUxpbmU6Y0Z0LEFycm93TGVmdFJpZ2h0OmRGdCxBcnJvd0xlZnRTcXVhcmU6YVAsQXJyb3dMZWZ0VG9MaW5lOnVGdCxBcnJvd1JpZ2h0OmdGdCxBcnJvd1JpZ2h0Q2lyY2xlOkpFLEFycm93UmlnaHRGcm9tTGluZTpoRnQsQXJyb3dSaWdodExlZnQ6ZkZ0LEFycm93UmlnaHRTcXVhcmU6Y1AsQXJyb3dSaWdodFRvTGluZTptRnQsQXJyb3dVcDpDRnQsQXJyb3dVcDAxOmJGdCxBcnJvd1VwMTA6dkZ0LEFycm93VXBBWjp5RSxBcnJvd1VwQXo6eUUsQXJyb3dVcENpcmNsZTpLRSxBcnJvd1VwRG93bjp4RnQsQXJyb3dVcEZyb21Eb3Q6eUZ0LEFycm93VXBGcm9tTGluZTp3RnQsQXJyb3dVcExlZnQ6TUZ0LEFycm93VXBMZWZ0RnJvbUNpcmNsZTpYRSxBcnJvd1VwTGVmdEZyb21TcXVhcmU6b1AsQXJyb3dVcExlZnRTcXVhcmU6ZFAsQXJyb3dVcE5hcnJvd1dpZGU6d0UsQXJyb3dVcFJpZ2h0OmtGdCxBcnJvd1VwUmlnaHRGcm9tQ2lyY2xlOlFFLEFycm93VXBSaWdodEZyb21TcXVhcmU6bFAsQXJyb3dVcFJpZ2h0U3F1YXJlOnVQLEFycm93VXBTcXVhcmU6cFAsQXJyb3dVcFRvTGluZTpTRnQsQXJyb3dVcFdpZGVOYXJyb3c6ekZ0LEFycm93VXBaQTpNRSxBcnJvd1VwWmE6TUUsQXJyb3dzVXBGcm9tTGluZTpURnQsQXN0ZXJpc2s6X0Z0LEFzdGVyaXNrU3F1YXJlOmhQLEF0U2lnbjpMRnQsQXRvbTpBRnQsQXVkaW9MaW5lczpERnQsQXVkaW9XYXZlZm9ybTpFRnQsQXdhcmQ6JEZ0LEF4ZTpJRnQsQXhpczNEOmtFLEF4aXMzZDprRSxCYWJ5Ok5GdCxCYWNrcGFjazpQRnQsQmFkZ2U6SkZ0LEJhZGdlQWxlcnQ6RkZ0LEJhZGdlQ2VudDpPRnQsQmFkZ2VDaGVjazpTRSxCYWRnZURvbGxhclNpZ246QkZ0LEJhZGdlRXVybzpIRnQsQmFkZ2VIZWxwOnpFLEJhZGdlSW5kaWFuUnVwZWU6UkZ0LEJhZGdlSW5mbzpxRnQsQmFkZ2VKYXBhbmVzZVllbjpqRnQsQmFkZ2VNaW51czpWRnQsQmFkZ2VQZXJjZW50OlVGdCxCYWRnZVBsdXM6V0Z0LEJhZGdlUG91bmRTdGVybGluZzpHRnQsQmFkZ2VRdWVzdGlvbk1hcms6ekUsQmFkZ2VSdXNzaWFuUnVibGU6WUZ0LEJhZGdlU3dpc3NGcmFuYzpaRnQsQmFkZ2VUdXJraXNoTGlyYTpYRnQsQmFkZ2VYOlFGdCxCYWdnYWdlQ2xhaW06S0Z0LEJhbGxvb246ZU90LEJhbjp0T3QsQmFuYW5hOnJPdCxCYW5kYWdlOmlPdCxCYW5rbm90ZTpzT3QsQmFua25vdGVBcnJvd0Rvd246YU90LEJhbmtub3RlQXJyb3dVcDpuT3QsQmFua25vdGVYOm9PdCxCYXJDaGFydDpSRSxCYXJDaGFydDI6QkUsQmFyQ2hhcnQzOkZFLEJhckNoYXJ0NDpORSxCYXJDaGFydEJpZzpJRSxCYXJDaGFydEhvcml6b250YWw6UEUsQmFyQ2hhcnRIb3Jpem9udGFsQmlnOkVFLEJhcmNvZGU6bE90LEJhcnJlbDpjT3QsQmFzZWxpbmU6ZE90LEJhdGg6dU90LEJhdHRlcnk6dk90LEJhdHRlcnlDaGFyZ2luZzpwT3QsQmF0dGVyeUZ1bGw6aE90LEJhdHRlcnlMb3c6Zk90LEJhdHRlcnlNZWRpdW06bU90LEJhdHRlcnlQbHVzOmdPdCxCYXR0ZXJ5V2FybmluZzpiT3QsQmVha2VyOnhPdCxCZWFuOndPdCxCZWFuT2ZmOnlPdCxCZWQ6U090LEJlZERvdWJsZTpNT3QsQmVkU2luZ2xlOmtPdCxCZWVmOnpPdCxCZWVyOlRPdCxCZWVyT2ZmOkNPdCxCZWxsOklPdCxCZWxsRG90Ol9PdCxCZWxsRWxlY3RyaWM6TE90LEJlbGxNaW51czpBT3QsQmVsbE9mZjpET3QsQmVsbFBsdXM6RU90LEJlbGxSaW5nOiRPdCxCZXR3ZWVuSG9yaXpvbmFsRW5kOkNFLEJldHdlZW5Ib3Jpem9uYWxTdGFydDpURSxCZXR3ZWVuSG9yaXpvbnRhbEVuZDpDRSxCZXR3ZWVuSG9yaXpvbnRhbFN0YXJ0OlRFLEJldHdlZW5WZXJ0aWNhbEVuZDpQT3QsQmV0d2VlblZlcnRpY2FsU3RhcnQ6Tk90LEJpY2Vwc0ZsZXhlZDpGT3QsQmlrZTpPT3QsQmluYXJ5OlJPdCxCaW5vY3VsYXJzOkJPdCxCaW9oYXphcmQ6SE90LEJpcmQ6cU90LEJpcmRob3VzZTpqT3QsQml0Y29pbjpWT3QsQmxlbmQ6VU90LEJsaW5kczpXT3QsQmxvY2tzOllPdCxCbHVldG9vdGg6Sk90LEJsdWV0b290aENvbm5lY3RlZDpHT3QsQmx1ZXRvb3RoT2ZmOlpPdCxCbHVldG9vdGhTZWFyY2hpbmc6WE90LEJvbGQ6UU90LEJvbHQ6ZVJ0LEJvbWI6S090LEJvbmU6dFJ0LEJvb2s6Q1J0LEJvb2tBOnJSdCxCb29rQWxlcnQ6aVJ0LEJvb2tBdWRpbzpuUnQsQm9va0NoZWNrOmFSdCxCb29rQ29weTpvUnQsQm9va0Rhc2hlZDpfRSxCb29rRG93bjpzUnQsQm9va0hlYWRwaG9uZXM6bFJ0LEJvb2tIZWFydDpjUnQsQm9va0ltYWdlOmRSdCxCb29rS2V5OnVSdCxCb29rTG9jazpwUnQsQm9va01hcmtlZDpoUnQsQm9va01pbnVzOmZSdCxCb29rT3BlbjpiUnQsQm9va09wZW5DaGVjazptUnQsQm9va09wZW5UZXh0OmdSdCxCb29rUGx1czp2UnQsQm9va1NlYXJjaDp4UnQsQm9va1RlbXBsYXRlOl9FLEJvb2tUZXh0OnlSdCxCb29rVHlwZTp3UnQsQm9va1VwOmtSdCxCb29rVXAyOk1SdCxCb29rVXNlcjpTUnQsQm9va1g6elJ0LEJvb2ttYXJrOkRSdCxCb29rbWFya0NoZWNrOlRSdCxCb29rbWFya01pbnVzOl9SdCxCb29rbWFya1BsdXM6TFJ0LEJvb2ttYXJrWDpBUnQsQm9vbUJveDpFUnQsQm90OklSdCxCb3RNZXNzYWdlU3F1YXJlOiRSdCxCb3RPZmY6UFJ0LEJvdHRsZVdpbmU6TlJ0LEJvd0Fycm93OkZSdCxCb3g6T1J0LEJveFNlbGVjdDpTUCxCb3hlczpSUnQsQnJhY2VzOkxFLEJyYWNrZXRzOkJSdCxCcmFpbjpqUnQsQnJhaW5DaXJjdWl0OkhSdCxCcmFpbkNvZzpxUnQsQnJpY2tXYWxsOkdSdCxCcmlja1dhbGxGaXJlOlZSdCxCcmlja1dhbGxTaGllbGQ6VVJ0LEJyaWVmY2FzZTpYUnQsQnJpZWZjYXNlQnVzaW5lc3M6V1J0LEJyaWVmY2FzZUNvbnZleW9yQmVsdDpZUnQsQnJpZWZjYXNlTWVkaWNhbDpaUnQsQnJpbmdUb0Zyb250OlFSdCxCcnVzaDpLUnQsQnJ1c2hDbGVhbmluZzpKUnQsQnViYmxlczplQnQsQnVnOmlCdCxCdWdPZmY6dEJ0LEJ1Z1BsYXk6ckJ0LEJ1aWxkaW5nOm5CdCxCdWlsZGluZzI6YUJ0LEJ1czpzQnQsQnVzRnJvbnQ6b0J0LENhYmxlOmNCdCxDYWJsZUNhcjpsQnQsQ2FrZTp1QnQsQ2FrZVNsaWNlOmRCdCxDYWxjdWxhdG9yOnBCdCxDYWxlbmRhcjokQnQsQ2FsZW5kYXIxOmhCdCxDYWxlbmRhckFycm93RG93bjpmQnQsQ2FsZW5kYXJBcnJvd1VwOm1CdCxDYWxlbmRhckNoZWNrOmJCdCxDYWxlbmRhckNoZWNrMjpnQnQsQ2FsZW5kYXJDbG9jazp2QnQsQ2FsZW5kYXJDb2c6eEJ0LENhbGVuZGFyRGF5czp5QnQsQ2FsZW5kYXJGb2xkOndCdCxDYWxlbmRhckhlYXJ0Ok1CdCxDYWxlbmRhck1pbnVzOlNCdCxDYWxlbmRhck1pbnVzMjprQnQsQ2FsZW5kYXJPZmY6ekJ0LENhbGVuZGFyUGx1czpUQnQsQ2FsZW5kYXJQbHVzMjpDQnQsQ2FsZW5kYXJSYW5nZTpfQnQsQ2FsZW5kYXJTZWFyY2g6TEJ0LENhbGVuZGFyU3luYzpBQnQsQ2FsZW5kYXJYOkVCdCxDYWxlbmRhclgyOkRCdCxDYWxlbmRhcnM6SUJ0LENhbWVyYTpOQnQsQ2FtZXJhT2ZmOlBCdCxDYW5kbGVzdGlja0NoYXJ0OiRFLENhbmR5OlJCdCxDYW5keUNhbmU6RkJ0LENhbmR5T2ZmOk9CdCxDYW5uYWJpczpIQnQsQ2FubmFiaXNPZmY6QkJ0LENhcHRpb25zOkFFLENhcHRpb25zT2ZmOnFCdCxDYXI6VUJ0LENhckZyb250OmpCdCxDYXJUYXhpRnJvbnQ6VkJ0LENhcmF2YW46V0J0LENhcmRTaW06R0J0LENhcnJvdDpZQnQsQ2FzZUxvd2VyOlpCdCxDYXNlU2Vuc2l0aXZlOlhCdCxDYXNlVXBwZXI6UUJ0LENhc3NldHRlVGFwZTpKQnQsQ2FzdDpLQnQsQ2FzdGxlOmVIdCxDYXQ6dEh0LENjdHY6ckh0LENoYXJ0QXJlYTpERSxDaGFydEJhcjpQRSxDaGFydEJhckJpZzpFRSxDaGFydEJhckRlY3JlYXNpbmc6aUh0LENoYXJ0QmFySW5jcmVhc2luZzphSHQsQ2hhcnRCYXJTdGFja2VkOm5IdCxDaGFydENhbmRsZXN0aWNrOiRFLENoYXJ0Q29sdW1uOkZFLENoYXJ0Q29sdW1uQmlnOklFLENoYXJ0Q29sdW1uRGVjcmVhc2luZzpvSHQsQ2hhcnRDb2x1bW5JbmNyZWFzaW5nOk5FLENoYXJ0Q29sdW1uU3RhY2tlZDpzSHQsQ2hhcnRHYW50dDpsSHQsQ2hhcnRMaW5lOk9FLENoYXJ0TmV0d29yazpjSHQsQ2hhcnROb0F4ZXNDb2x1bW46QkUsQ2hhcnROb0F4ZXNDb2x1bW5EZWNyZWFzaW5nOmRIdCxDaGFydE5vQXhlc0NvbHVtbkluY3JlYXNpbmc6UkUsQ2hhcnROb0F4ZXNDb21iaW5lZDp1SHQsQ2hhcnROb0F4ZXNHYW50dDpIRSxDaGFydFBpZTpxRSxDaGFydFNjYXR0ZXI6akUsQ2hhcnRTcGxpbmU6cEh0LENoZWNrOmJIdCxDaGVja0NoZWNrOmZIdCxDaGVja0NpcmNsZTplJCxDaGVja0NpcmNsZTI6dCQsQ2hlY2tMaW5lOmhIdCxDaGVja1NxdWFyZTptUCxDaGVja1NxdWFyZTI6Z1AsQ2hlZkhhdDptSHQsQ2hlcnJ5OmdIdCxDaGVzc0Jpc2hvcDp2SHQsQ2hlc3NLaW5nOnhIdCxDaGVzc0tuaWdodDpNSHQsQ2hlc3NQYXduOnlIdCxDaGVzc1F1ZWVuOndIdCxDaGVzc1Jvb2s6a0h0LENoZXZyb25Eb3duOlNIdCxDaGV2cm9uRG93bkNpcmNsZTpyJCxDaGV2cm9uRG93blNxdWFyZTpiUCxDaGV2cm9uRmlyc3Q6ekh0LENoZXZyb25MYXN0OkNIdCxDaGV2cm9uTGVmdDpUSHQsQ2hldnJvbkxlZnRDaXJjbGU6aSQsQ2hldnJvbkxlZnRTcXVhcmU6dlAsQ2hldnJvblJpZ2h0Ol9IdCxDaGV2cm9uUmlnaHRDaXJjbGU6YSQsQ2hldnJvblJpZ2h0U3F1YXJlOnhQLENoZXZyb25VcDpMSHQsQ2hldnJvblVwQ2lyY2xlOm4kLENoZXZyb25VcFNxdWFyZTp5UCxDaGV2cm9uc0Rvd246REh0LENoZXZyb25zRG93blVwOkFIdCxDaGV2cm9uc0xlZnQ6SUh0LENoZXZyb25zTGVmdFJpZ2h0OiRIdCxDaGV2cm9uc0xlZnRSaWdodEVsbGlwc2lzOkVIdCxDaGV2cm9uc1JpZ2h0Ok5IdCxDaGV2cm9uc1JpZ2h0TGVmdDpQSHQsQ2hldnJvbnNVcDpGSHQsQ2hldnJvbnNVcERvd246T0h0LENocm9tZTpWRSxDaHJvbWl1bTpWRSxDaHVyY2g6Qkh0LENpZ2FyZXR0ZTpISHQsQ2lnYXJldHRlT2ZmOlJIdCxDaXJjbGU6cnF0LENpcmNsZUFsZXJ0OlVFLENpcmNsZUFycm93RG93bjpXRSxDaXJjbGVBcnJvd0xlZnQ6R0UsQ2lyY2xlQXJyb3dPdXREb3duTGVmdDpZRSxDaXJjbGVBcnJvd091dERvd25SaWdodDpaRSxDaXJjbGVBcnJvd091dFVwTGVmdDpYRSxDaXJjbGVBcnJvd091dFVwUmlnaHQ6UUUsQ2lyY2xlQXJyb3dSaWdodDpKRSxDaXJjbGVBcnJvd1VwOktFLENpcmNsZUNoZWNrOnQkLENpcmNsZUNoZWNrQmlnOmUkLENpcmNsZUNoZXZyb25Eb3duOnIkLENpcmNsZUNoZXZyb25MZWZ0OmkkLENpcmNsZUNoZXZyb25SaWdodDphJCxDaXJjbGVDaGV2cm9uVXA6biQsQ2lyY2xlRGFzaGVkOnFIdCxDaXJjbGVEaXZpZGU6byQsQ2lyY2xlRG9sbGFyU2lnbjpqSHQsQ2lyY2xlRG90OlVIdCxDaXJjbGVEb3REYXNoZWQ6Vkh0LENpcmNsZUVsbGlwc2lzOldIdCxDaXJjbGVFcXVhbDpHSHQsQ2lyY2xlRmFkaW5nQXJyb3dVcDpZSHQsQ2lyY2xlRmFkaW5nUGx1czpaSHQsQ2lyY2xlR2F1Z2U6cyQsQ2lyY2xlSGVscDpxcCxDaXJjbGVNaW51czpsJCxDaXJjbGVPZmY6WEh0LENpcmNsZVBhcmtpbmc6ZCQsQ2lyY2xlUGFya2luZ09mZjpjJCxDaXJjbGVQYXVzZTp1JCxDaXJjbGVQZXJjZW50OnAkLENpcmNsZVBpbGU6UUh0LENpcmNsZVBsYXk6aCQsQ2lyY2xlUGx1czpmJCxDaXJjbGVQb3VuZFN0ZXJsaW5nOkpIdCxDaXJjbGVQb3dlcjptJCxDaXJjbGVRdWVzdGlvbk1hcms6cXAsQ2lyY2xlU2xhc2g6S0h0LENpcmNsZVNsYXNoMjpnJCxDaXJjbGVTbGFzaGVkOmckLENpcmNsZVNtYWxsOmVxdCxDaXJjbGVTdGFyOnRxdCxDaXJjbGVTdG9wOmIkLENpcmNsZVVzZXI6eCQsQ2lyY2xlVXNlclJvdW5kOnYkLENpcmNsZVg6eSQsQ2lyY3VpdEJvYXJkOmlxdCxDaXRydXM6YXF0LENsYXBwZXJib2FyZDpucXQsQ2xpcGJvYXJkOmdxdCxDbGlwYm9hcmRDaGVjazpvcXQsQ2xpcGJvYXJkQ2xvY2s6c3F0LENsaXBib2FyZENvcHk6bHF0LENsaXBib2FyZEVkaXQ6TSQsQ2xpcGJvYXJkTGlzdDpjcXQsQ2xpcGJvYXJkTWludXM6ZHF0LENsaXBib2FyZFBhc3RlOnVxdCxDbGlwYm9hcmRQZW46TSQsQ2xpcGJvYXJkUGVuTGluZTp3JCxDbGlwYm9hcmRQbHVzOnBxdCxDbGlwYm9hcmRTaWduYXR1cmU6dyQsQ2xpcGJvYXJkVHlwZTpocXQsQ2xpcGJvYXJkWDpmcXQsQ2xvY2s6SXF0LENsb2NrMTptcXQsQ2xvY2sxMDpicXQsQ2xvY2sxMTp2cXQsQ2xvY2sxMjp4cXQsQ2xvY2syOnlxdCxDbG9jazM6d3F0LENsb2NrNDpNcXQsQ2xvY2s1OmtxdCxDbG9jazY6U3F0LENsb2NrNzp6cXQsQ2xvY2s4OkNxdCxDbG9jazk6VHF0LENsb2NrQWxlcnQ6THF0LENsb2NrQXJyb3dEb3duOl9xdCxDbG9ja0Fycm93VXA6QXF0LENsb2NrQ2hlY2s6RHF0LENsb2NrRmFkaW5nOkVxdCxDbG9ja1BsdXM6JHF0LENsb3NlZENhcHRpb246UHF0LENsb3VkOktxdCxDbG91ZEFsZXJ0Ok5xdCxDbG91ZEJhY2t1cDpGcXQsQ2xvdWRDaGVjazpPcXQsQ2xvdWRDb2c6UnF0LENsb3VkRG93bmxvYWQ6ayQsQ2xvdWREcml6emxlOkJxdCxDbG91ZEZvZzpIcXQsQ2xvdWRIYWlsOnFxdCxDbG91ZExpZ2h0bmluZzpWcXQsQ2xvdWRNb29uOlVxdCxDbG91ZE1vb25SYWluOmpxdCxDbG91ZE9mZjpXcXQsQ2xvdWRSYWluOllxdCxDbG91ZFJhaW5XaW5kOkdxdCxDbG91ZFNub3c6WnF0LENsb3VkU3VuOlFxdCxDbG91ZFN1blJhaW46WHF0LENsb3VkU3luYzpKcXQsQ2xvdWRVcGxvYWQ6UyQsQ2xvdWR5OmVqdCxDbG92ZXI6dGp0LENsdWI6cmp0LENvZGU6aWp0LENvZGUyOnokLENvZGVTcXVhcmU6d1AsQ29kZVhtbDp6JCxDb2RlcGVuOmFqdCxDb2Rlc2FuZGJveDpuanQsQ29mZmVlOm9qdCxDb2c6c2p0LENvaW5zOmxqdCxDb2x1bW5zOkMkLENvbHVtbnMyOkMkLENvbHVtbnMzOlQkLENvbHVtbnMzQ29nOmpwLENvbHVtbnM0OmNqdCxDb2x1bW5zU2V0dGluZ3M6anAsQ29tYmluZTpkanQsQ29tbWFuZDp1anQsQ29tcGFzczpwanQsQ29tcG9uZW50OmhqdCxDb21wdXRlcjpmanQsQ29uY2llcmdlQmVsbDptanQsQ29uZTpnanQsQ29uc3RydWN0aW9uOmJqdCxDb250YWN0OnZqdCxDb250YWN0MjpfJCxDb250YWN0Um91bmQ6XyQsQ29udGFpbmVyOnhqdCxDb250cmFzdDp3anQsQ29va2llOnlqdCxDb29raW5nUG90Ok1qdCxDb3B5Ol9qdCxDb3B5Q2hlY2s6a2p0LENvcHlNaW51czpTanQsQ29weVBsdXM6emp0LENvcHlTbGFzaDpDanQsQ29weVg6VGp0LENvcHlsZWZ0OkxqdCxDb3B5cmlnaHQ6QWp0LENvcm5lckRvd25MZWZ0OkRqdCxDb3JuZXJEb3duUmlnaHQ6RWp0LENvcm5lckxlZnREb3duOiRqdCxDb3JuZXJMZWZ0VXA6SWp0LENvcm5lclJpZ2h0RG93bjpQanQsQ29ybmVyUmlnaHRVcDpOanQsQ29ybmVyVXBMZWZ0OkZqdCxDb3JuZXJVcFJpZ2h0Ok9qdCxDcHU6Ump0LENyZWF0aXZlQ29tbW9uczpCanQsQ3JlZGl0Q2FyZDpIanQsQ3JvaXNzYW50OnFqdCxDcm9wOmpqdCxDcm9zczpWanQsQ3Jvc3NoYWlyOlVqdCxDcm93bjpXanQsQ3Vib2lkOkdqdCxDdXBTb2RhOllqdCxDdXJseUJyYWNlczpMRSxDdXJyZW5jeTpYanQsQ3lsaW5kZXI6Wmp0LERhbTpKanQsRGF0YWJhc2U6dFZ0LERhdGFiYXNlQmFja3VwOlFqdCxEYXRhYmFzZVNlYXJjaDpLanQsRGF0YWJhc2VaYXA6ZVZ0LERlY2ltYWxzQXJyb3dMZWZ0OnJWdCxEZWNpbWFsc0Fycm93UmlnaHQ6aVZ0LERlbGV0ZTphVnQsRGVzc2VydDpuVnQsRGlhbWV0ZXI6b1Z0LERpYW1vbmQ6Y1Z0LERpYW1vbmRNaW51czpzVnQsRGlhbW9uZFBlcmNlbnQ6TCQsRGlhbW9uZFBsdXM6bFZ0LERpY2UxOmRWdCxEaWNlMjp1VnQsRGljZTM6cFZ0LERpY2U0OmhWdCxEaWNlNTpmVnQsRGljZTY6bVZ0LERpY2VzOmdWdCxEaWZmOmJWdCxEaXNjOndWdCxEaXNjMjp2VnQsRGlzYzM6eFZ0LERpc2NBbGJ1bTp5VnQsRGl2aWRlOk1WdCxEaXZpZGVDaXJjbGU6byQsRGl2aWRlU3F1YXJlOnpQLERuYTpTVnQsRG5hT2ZmOmtWdCxEb2NrOlRWdCxEb2c6elZ0LERvbGxhclNpZ246Q1Z0LERvbnV0Ol9WdCxEb29yQ2xvc2VkOkFWdCxEb29yQ2xvc2VkTG9ja2VkOkxWdCxEb29yT3BlbjpEVnQsRG90OkVWdCxEb3RTcXVhcmU6Q1AsRG93bmxvYWQ6JFZ0LERvd25sb2FkQ2xvdWQ6ayQsRHJhZnRpbmdDb21wYXNzOklWdCxEcmFtYTpOVnQsRHJpYmJibGU6UFZ0LERyaWxsOkZWdCxEcm9uZTpPVnQsRHJvcGxldDpCVnQsRHJvcGxldE9mZjpSVnQsRHJvcGxldHM6SFZ0LERydW06cVZ0LERydW1zdGljazpqVnQsRHVtYmJlbGw6VlZ0LEVhcjpHVnQsRWFyT2ZmOlVWdCxFYXJ0aDpBJCxFYXJ0aExvY2s6V1Z0LEVjbGlwc2U6WVZ0LEVkaXQ6RTQsRWRpdDI6cUksRWRpdDM6SEksRWdnOlFWdCxFZ2dGcmllZDpaVnQsRWdnT2ZmOlhWdCxFbGxpcHNpczpFJCxFbGxpcHNpc1ZlcnRpY2FsOkQkLEVxdWFsOmVVdCxFcXVhbEFwcHJveGltYXRlbHk6SlZ0LEVxdWFsTm90OktWdCxFcXVhbFNxdWFyZTpUUCxFcmFzZXI6clV0LEV0aGVybmV0UG9ydDp0VXQsRXVybzppVXQsRXZDaGFyZ2VyOmFVdCxFeHBhbmQ6blV0LEV4dGVybmFsTGluazpvVXQsRXllOmxVdCxFeWVDbG9zZWQ6c1V0LEV5ZU9mZjpjVXQsRmFjZWJvb2s6ZFV0LEZhY3Rvcnk6dVV0LEZhbjpwVXQsRmFzdEZvcndhcmQ6aFV0LEZlYXRoZXI6ZlV0LEZlbmNlOm1VdCxGZXJyaXNXaGVlbDpnVXQsRmlnbWE6YlV0LEZpbGU6V1V0LEZpbGVBcmNoaXZlOnZVdCxGaWxlQXVkaW86VnAsRmlsZUF1ZGlvMjpWcCxGaWxlQXhpczNEOiQkLEZpbGVBeGlzM2Q6JCQsRmlsZUJhZGdlOkkkLEZpbGVCYWRnZTI6SSQsRmlsZUJhckNoYXJ0OkYkLEZpbGVCYXJDaGFydDI6TyQsRmlsZUJveDp4VXQsRmlsZUJyYWNlczpOJCxGaWxlQnJhY2VzQ29ybmVyOlAkLEZpbGVDaGFydENvbHVtbjpPJCxGaWxlQ2hhcnRDb2x1bW5JbmNyZWFzaW5nOkYkLEZpbGVDaGFydExpbmU6UiQsRmlsZUNoYXJ0UGllOkIkLEZpbGVDaGVjazp3VXQsRmlsZUNoZWNrMjpIJCxGaWxlQ2hlY2tDb3JuZXI6SCQsRmlsZUNsb2NrOnlVdCxGaWxlQ29kZTpNVXQsRmlsZUNvZGUyOnEkLEZpbGVDb2RlQ29ybmVyOnEkLEZpbGVDb2c6aiQsRmlsZUNvZzI6aiQsRmlsZURpZmY6a1V0LEZpbGVEaWdpdDpTVXQsRmlsZURvd246elV0LEZpbGVFZGl0OlokLEZpbGVFeGNsYW1hdGlvblBvaW50OlYkLEZpbGVIZWFkcGhvbmU6VnAsRmlsZUhlYXJ0OkNVdCxGaWxlSW1hZ2U6VFV0LEZpbGVJbnB1dDpfVXQsRmlsZUpzb246TiQsRmlsZUpzb24yOlAkLEZpbGVLZXk6VSQsRmlsZUtleTI6VSQsRmlsZUxpbmVDaGFydDpSJCxGaWxlTG9jazpXJCxGaWxlTG9jazI6VyQsRmlsZU1pbnVzOkxVdCxGaWxlTWludXMyOkckLEZpbGVNaW51c0Nvcm5lcjpHJCxGaWxlTXVzaWM6QVV0LEZpbGVPdXRwdXQ6RFV0LEZpbGVQZW46WiQsRmlsZVBlbkxpbmU6WSQsRmlsZVBpZUNoYXJ0OkIkLEZpbGVQbGF5OlgkLEZpbGVQbHVzOkVVdCxGaWxlUGx1czI6USQsRmlsZVBsdXNDb3JuZXI6USQsRmlsZVF1ZXN0aW9uOkokLEZpbGVRdWVzdGlvbk1hcms6SiQsRmlsZVNjYW46JFV0LEZpbGVTZWFyY2g6SVV0LEZpbGVTZWFyY2gyOkskLEZpbGVTZWFyY2hDb3JuZXI6SyQsRmlsZVNpZ25hbDplSSxGaWxlU2lnbmF0dXJlOlkkLEZpbGVTbGlkZXJzOlBVdCxGaWxlU3ByZWFkc2hlZXQ6TlV0LEZpbGVTdGFjazpGVXQsRmlsZVN5bWxpbms6T1V0LEZpbGVUZXJtaW5hbDpSVXQsRmlsZVRleHQ6QlV0LEZpbGVUeXBlOkhVdCxGaWxlVHlwZTI6dEksRmlsZVR5cGVDb3JuZXI6dEksRmlsZVVwOnFVdCxGaWxlVXNlcjpqVXQsRmlsZVZpZGVvOlgkLEZpbGVWaWRlbzI6ckksRmlsZVZpZGVvQ2FtZXJhOnJJLEZpbGVWb2x1bWU6VlV0LEZpbGVWb2x1bWUyOmVJLEZpbGVXYXJuaW5nOlYkLEZpbGVYOlVVdCxGaWxlWDI6aUksRmlsZVhDb3JuZXI6aUksRmlsZXM6R1V0LEZpbG06WVV0LEZpbHRlcjpsSSxGaWx0ZXJYOnNJLEZpbmdlcnByaW50OmFJLEZpbmdlcnByaW50UGF0dGVybjphSSxGaXJlRXh0aW5ndWlzaGVyOlpVdCxGaXNoOkpVdCxGaXNoT2ZmOlhVdCxGaXNoU3ltYm9sOlFVdCxGaXNoaW5nSG9vazpLVXQsRmxhZzppV3QsRmxhZ09mZjplV3QsRmxhZ1RyaWFuZ2xlTGVmdDp0V3QsRmxhZ1RyaWFuZ2xlUmlnaHQ6cld0LEZsYW1lOm5XdCxGbGFtZUtpbmRsaW5nOmFXdCxGbGFzaGxpZ2h0OnNXdCxGbGFzaGxpZ2h0T2ZmOm9XdCxGbGFza0NvbmljYWw6Y1d0LEZsYXNrQ29uaWNhbE9mZjpsV3QsRmxhc2tSb3VuZDpkV3QsRmxpcEhvcml6b250YWw6cFd0LEZsaXBIb3Jpem9udGFsMjp1V3QsRmxpcFZlcnRpY2FsOmZXdCxGbGlwVmVydGljYWwyOmhXdCxGbG93ZXI6Z1d0LEZsb3dlcjI6bVd0LEZvY3VzOmJXdCxGb2xkSG9yaXpvbnRhbDp2V3QsRm9sZFZlcnRpY2FsOnhXdCxGb2xkZXI6R1d0LEZvbGRlckFyY2hpdmU6d1d0LEZvbGRlckNoZWNrOnlXdCxGb2xkZXJDbG9jazpNV3QsRm9sZGVyQ2xvc2VkOmtXdCxGb2xkZXJDb2RlOlNXdCxGb2xkZXJDb2c6bkksRm9sZGVyQ29nMjpuSSxGb2xkZXJEb3Q6eld0LEZvbGRlckRvd246Q1d0LEZvbGRlckVkaXQ6b0ksRm9sZGVyR2l0Ol9XdCxGb2xkZXJHaXQyOlRXdCxGb2xkZXJIZWFydDpMV3QsRm9sZGVySW5wdXQ6QVd0LEZvbGRlckthbmJhbjpEV3QsRm9sZGVyS2V5OkVXdCxGb2xkZXJMb2NrOiRXdCxGb2xkZXJNaW51czpJV3QsRm9sZGVyT3BlbjpOV3QsRm9sZGVyT3BlbkRvdDpQV3QsRm9sZGVyT3V0cHV0OkZXdCxGb2xkZXJQZW46b0ksRm9sZGVyUGx1czpPV3QsRm9sZGVyUm9vdDpSV3QsRm9sZGVyU2VhcmNoOkhXdCxGb2xkZXJTZWFyY2gyOkJXdCxGb2xkZXJTeW1saW5rOnFXdCxGb2xkZXJTeW5jOmpXdCxGb2xkZXJUcmVlOlZXdCxGb2xkZXJVcDpVV3QsRm9sZGVyWDpXV3QsRm9sZGVyczpZV3QsRm9vdHByaW50czpYV3QsRm9ya0tuaWZlOnZOLEZvcmtLbmlmZUNyb3NzZWQ6Yk4sRm9ya2xpZnQ6Wld0LEZvcm06UVd0LEZvcm1JbnB1dDpWSSxGb3J3YXJkOkpXdCxGcmFtZTpLV3QsRnJhbWVyOmVHdCxGcm93bjp0R3QsRnVlbDpyR3QsRnVsbHNjcmVlbjppR3QsRnVuY3Rpb25TcXVhcmU6X1AsRnVubmVsOmxJLEZ1bm5lbFBsdXM6YUd0LEZ1bm5lbFg6c0ksR2FsbGVyeUhvcml6b250YWw6b0d0LEdhbGxlcnlIb3Jpem9udGFsRW5kOm5HdCxHYWxsZXJ5VGh1bWJuYWlsczpzR3QsR2FsbGVyeVZlcnRpY2FsOmNHdCxHYWxsZXJ5VmVydGljYWxFbmQ6bEd0LEdhbWVwYWQ6cEd0LEdhbWVwYWQyOmRHdCxHYW1lcGFkRGlyZWN0aW9uYWw6dUd0LEdhbnR0Q2hhcnQ6SEUsR2FudHRDaGFydFNxdWFyZTpZcCxHYXVnZTpoR3QsR2F1Z2VDaXJjbGU6cyQsR2F2ZWw6Zkd0LEdlbTptR3QsR2VvcmdpYW5MYXJpOmdHdCxHaG9zdDpiR3QsR2lmdDp5R3QsR2l0QnJhbmNoOndHdCxHaXRCcmFuY2hNaW51czp2R3QsR2l0QnJhbmNoUGx1czp4R3QsR2l0Q29tbWl0OmNJLEdpdENvbW1pdEhvcml6b250YWw6Y0ksR2l0Q29tbWl0VmVydGljYWw6TUd0LEdpdENvbXBhcmU6U0d0LEdpdENvbXBhcmVBcnJvd3M6a0d0LEdpdEZvcms6ekd0LEdpdEdyYXBoOkNHdCxHaXRNZXJnZTpUR3QsR2l0UHVsbFJlcXVlc3Q6JEd0LEdpdFB1bGxSZXF1ZXN0QXJyb3c6X0d0LEdpdFB1bGxSZXF1ZXN0Q2xvc2VkOkxHdCxHaXRQdWxsUmVxdWVzdENyZWF0ZTpER3QsR2l0UHVsbFJlcXVlc3RDcmVhdGVBcnJvdzpBR3QsR2l0UHVsbFJlcXVlc3REcmFmdDpFR3QsR2l0aHViOklHdCxHaXRsYWI6UEd0LEdsYXNzV2F0ZXI6Tkd0LEdsYXNzZXM6Rkd0LEdsb2JlOlJHdCxHbG9iZTI6QSQsR2xvYmVMb2NrOk9HdCxHbG9iZVg6Qkd0LEdvYWw6SEd0LEdwdTpxR3QsR3JhYjpmSSxHcmFkdWF0aW9uQ2FwOmpHdCxHcmFwZTpWR3QsR3JpZDpVcCxHcmlkMlgyOmhJLEdyaWQyWDJDaGVjazpkSSxHcmlkMlgyUGx1czp1SSxHcmlkMlgyWDpwSSxHcmlkMngyOmhJLEdyaWQyeDJDaGVjazpkSSxHcmlkMngyUGx1czp1SSxHcmlkMngyWDpwSSxHcmlkM1gzOlVwLEdyaWQzeDI6VUd0LEdyaWQzeDM6VXAsR3JpcDpZR3QsR3JpcEhvcml6b250YWw6V0d0LEdyaXBWZXJ0aWNhbDpHR3QsR3JvdXA6Wkd0LEd1aXRhcjpYR3QsSGFtOlFHdCxIYW1idXJnZXI6Skd0LEhhbW1lcjpLR3QsSGFuZDpuWXQsSGFuZENvaW5zOmVZdCxIYW5kRmlzdDp0WXQsSGFuZEdyYWI6ZkksSGFuZEhlYXJ0OnJZdCxIYW5kSGVscGluZzptSSxIYW5kTWV0YWw6aVl0LEhhbmRQbGF0dGVyOmFZdCxIYW5kYmFnOm9ZdCxIYW5kc2hha2U6c1l0LEhhcmREcml2ZTpkWXQsSGFyZERyaXZlRG93bmxvYWQ6bFl0LEhhcmREcml2ZVVwbG9hZDpjWXQsSGFyZEhhdDp1WXQsSGFzaDpwWXQsSGF0R2xhc3NlczpoWXQsSGF6ZTpmWXQsSGQ6bVl0LEhkbWlQb3J0OmdZdCxIZWFkaW5nOmtZdCxIZWFkaW5nMTpiWXQsSGVhZGluZzI6dll0LEhlYWRpbmczOnhZdCxIZWFkaW5nNDp5WXQsSGVhZGluZzU6d1l0LEhlYWRpbmc2Ok1ZdCxIZWFkcGhvbmVPZmY6U1l0LEhlYWRwaG9uZXM6ell0LEhlYWRzZXQ6VFl0LEhlYXJ0OiRZdCxIZWFydENyYWNrOkNZdCxIZWFydEhhbmRzaGFrZTpfWXQsSGVhcnRNaW51czpMWXQsSGVhcnRPZmY6QVl0LEhlYXJ0UGx1czpFWXQsSGVhcnRQdWxzZTpEWXQsSGVhdGVyOklZdCxIZWxpY29wdGVyOlBZdCxIZWxwQ2lyY2xlOnFwLEhlbHBpbmdIYW5kOm1JLEhleGFnb246Tll0LEhpZ2hsaWdodGVyOkZZdCxIaXN0b3J5Ok9ZdCxIb21lOmdJLEhvcDpSWXQsSG9wT2ZmOkJZdCxIb3NwaXRhbDpIWXQsSG90ZWw6cVl0LEhvdXJnbGFzczpqWXQsSG91c2U6Z0ksSG91c2VIZWFydDpWWXQsSG91c2VQbHVnOlVZdCxIb3VzZVBsdXM6V1l0LEhvdXNlV2lmaTpHWXQsSWNlQ3JlYW06dkksSWNlQ3JlYW0yOmJJLEljZUNyZWFtQm93bDpiSSxJY2VDcmVhbUNvbmU6dkksSWRDYXJkOlpZdCxJZENhcmRMYW55YXJkOllZdCxJbWFnZTpyWnQsSW1hZ2VEb3duOlhZdCxJbWFnZU1pbnVzOlFZdCxJbWFnZU9mZjpKWXQsSW1hZ2VQbGF5OktZdCxJbWFnZVBsdXM6ZVp0LEltYWdlVXA6dFp0LEltYWdlVXBzY2FsZTppWnQsSW1hZ2VzOmFadCxJbXBvcnQ6blp0LEluYm94Om9adCxJbmRlbnQ6R3AsSW5kZW50RGVjcmVhc2U6V3AsSW5kZW50SW5jcmVhc2U6R3AsSW5kaWFuUnVwZWU6c1p0LEluZmluaXR5OmxadCxJbmZvOmNadCxJbnNwZWN0OklQLEluc3BlY3Rpb25QYW5lbDpkWnQsSW5zdGFncmFtOnVadCxJdGFsaWM6aFp0LEl0ZXJhdGlvbkNjdzpwWnQsSXRlcmF0aW9uQ3c6Zlp0LEphcGFuZXNlWWVuOm1adCxKb3lzdGljazpnWnQsS2FuYmFuOmJadCxLYW5iYW5TcXVhcmU6TFAsS2FuYmFuU3F1YXJlRGFzaGVkOk1QLEtheWFrOnZadCxLZXk6d1p0LEtleVJvdW5kOnhadCxLZXlTcXVhcmU6eVp0LEtleWJvYXJkOlNadCxLZXlib2FyZE11c2ljOk1adCxLZXlib2FyZE9mZjprWnQsTGFtcDpBWnQsTGFtcENlaWxpbmc6elp0LExhbXBEZXNrOkNadCxMYW1wRmxvb3I6VFp0LExhbXBXYWxsRG93bjpfWnQsTGFtcFdhbGxVcDpMWnQsTGFuZFBsb3Q6RVp0LExhbmRtYXJrOkRadCxMYW5ndWFnZXM6JFp0LExhcHRvcDpQWnQsTGFwdG9wMjp4SSxMYXB0b3BNaW5pbWFsOnhJLExhcHRvcE1pbmltYWxDaGVjazpJWnQsTGFzc286Rlp0LExhc3NvU2VsZWN0Ok5adCxMYXVnaDpPWnQsTGF5ZXJzOnlJLExheWVyczI6Ulp0LExheWVyczM6eUksTGF5ZXJzUGx1czpCWnQsTGF5b3V0OkJJLExheW91dERhc2hib2FyZDpIWnQsTGF5b3V0R3JpZDpxWnQsTGF5b3V0TGlzdDpqWnQsTGF5b3V0UGFuZWxMZWZ0OlZadCxMYXlvdXRQYW5lbFRvcDpVWnQsTGF5b3V0VGVtcGxhdGU6V1p0LExlYWY6R1p0LExlYWZ5R3JlZW46WVp0LExlY3Rlcm46Wlp0LExldHRlclRleHQ6ck4sTGlicmFyeTpRWnQsTGlicmFyeUJpZzpYWnQsTGlicmFyeVNxdWFyZTpBUCxMaWZlQnVveTpKWnQsTGlnYXR1cmU6S1p0LExpZ2h0YnVsYjp0WHQsTGlnaHRidWxiT2ZmOmVYdCxMaW5lQ2hhcnQ6T0UsTGluZVNxdWlnZ2xlOnJYdCxMaW5rOm5YdCxMaW5rMjphWHQsTGluazJPZmY6aVh0LExpbmtlZGluOm9YdCxMaXN0OnpYdCxMaXN0Q2hlY2s6c1h0LExpc3RDaGVja3M6bFh0LExpc3RDaGV2cm9uc0Rvd25VcDpjWHQsTGlzdENoZXZyb25zVXBEb3duOmRYdCxMaXN0Q29sbGFwc2U6dVh0LExpc3RFbmQ6cFh0LExpc3RGaWx0ZXI6Zlh0LExpc3RGaWx0ZXJQbHVzOmhYdCxMaXN0SW5kZW50RGVjcmVhc2U6V3AsTGlzdEluZGVudEluY3JlYXNlOkdwLExpc3RNaW51czptWHQsTGlzdE11c2ljOmdYdCxMaXN0T3JkZXJlZDpiWHQsTGlzdFBsdXM6dlh0LExpc3RSZXN0YXJ0OnhYdCxMaXN0U3RhcnQ6eVh0LExpc3RUb2RvOndYdCxMaXN0VHJlZTpNWHQsTGlzdFZpZGVvOmtYdCxMaXN0WDpTWHQsTG9hZGVyOkNYdCxMb2FkZXIyOndJLExvYWRlckNpcmNsZTp3SSxMb2FkZXJQaW53aGVlbDpUWHQsTG9jYXRlOkFYdCxMb2NhdGVGaXhlZDpfWHQsTG9jYXRlT2ZmOkxYdCxMb2NhdGlvbkVkaXQ6ekksTG9jazpFWHQsTG9ja0tleWhvbGU6RFh0LExvY2tLZXlob2xlT3BlbjpNSSxMb2NrT3BlbjprSSxMb2dJbjokWHQsTG9nT3V0OlBYdCxMb2dzOklYdCxMb2xsaXBvcDpOWHQsTHVnZ2FnZTpGWHQsTVNxdWFyZTpEUCxNYWduZXQ6T1h0LE1haWw6VVh0LE1haWxDaGVjazpSWHQsTWFpbE1pbnVzOkJYdCxNYWlsT3BlbjpIWHQsTWFpbFBsdXM6cVh0LE1haWxRdWVzdGlvbjpTSSxNYWlsUXVlc3Rpb25NYXJrOlNJLE1haWxTZWFyY2g6alh0LE1haWxXYXJuaW5nOlZYdCxNYWlsWDpXWHQsTWFpbGJveDpHWHQsTWFpbHM6WVh0LE1hcDpjUXQsTWFwTWludXM6Wlh0LE1hcFBpbjpvUXQsTWFwUGluQ2hlY2s6UVh0LE1hcFBpbkNoZWNrSW5zaWRlOlhYdCxNYXBQaW5Ib3VzZTpKWHQsTWFwUGluTWludXM6ZVF0LE1hcFBpbk1pbnVzSW5zaWRlOktYdCxNYXBQaW5PZmY6dFF0LE1hcFBpblBlbjp6SSxNYXBQaW5QbHVzOmlRdCxNYXBQaW5QbHVzSW5zaWRlOnJRdCxNYXBQaW5YOm5RdCxNYXBQaW5YSW5zaWRlOmFRdCxNYXBQaW5uZWQ6c1F0LE1hcFBsdXM6bFF0LE1hcnM6dVF0LE1hcnNTdHJva2U6ZFF0LE1hcnRpbmk6cFF0LE1heGltaXplOmZRdCxNYXhpbWl6ZTI6aFF0LE1lZGFsOm1RdCxNZWdhcGhvbmU6YlF0LE1lZ2FwaG9uZU9mZjpnUXQsTWVoOnZRdCxNZW1vcnlTdGljazp5UXQsTWVudTp4UXQsTWVudVNxdWFyZTpFUCxNZXJnZTp3UXQsTWVzc2FnZUNpcmNsZTpEUXQsTWVzc2FnZUNpcmNsZUNvZGU6TVF0LE1lc3NhZ2VDaXJjbGVEYXNoZWQ6a1F0LE1lc3NhZ2VDaXJjbGVIZWFydDpTUXQsTWVzc2FnZUNpcmNsZU1vcmU6elF0LE1lc3NhZ2VDaXJjbGVPZmY6Q1F0LE1lc3NhZ2VDaXJjbGVQbHVzOlRRdCxNZXNzYWdlQ2lyY2xlUXVlc3Rpb246Q0ksTWVzc2FnZUNpcmNsZVF1ZXN0aW9uTWFyazpDSSxNZXNzYWdlQ2lyY2xlUmVwbHk6TFF0LE1lc3NhZ2VDaXJjbGVXYXJuaW5nOl9RdCxNZXNzYWdlQ2lyY2xlWDpBUXQsTWVzc2FnZVNxdWFyZTpHUXQsTWVzc2FnZVNxdWFyZUNvZGU6RVF0LE1lc3NhZ2VTcXVhcmVEYXNoZWQ6JFF0LE1lc3NhZ2VTcXVhcmVEaWZmOklRdCxNZXNzYWdlU3F1YXJlRG90OlBRdCxNZXNzYWdlU3F1YXJlSGVhcnQ6TlF0LE1lc3NhZ2VTcXVhcmVMb2NrOkZRdCxNZXNzYWdlU3F1YXJlTW9yZTpPUXQsTWVzc2FnZVNxdWFyZU9mZjpSUXQsTWVzc2FnZVNxdWFyZVBsdXM6QlF0LE1lc3NhZ2VTcXVhcmVRdW90ZTpIUXQsTWVzc2FnZVNxdWFyZVJlcGx5OnFRdCxNZXNzYWdlU3F1YXJlU2hhcmU6alF0LE1lc3NhZ2VTcXVhcmVUZXh0OlZRdCxNZXNzYWdlU3F1YXJlV2FybmluZzpVUXQsTWVzc2FnZVNxdWFyZVg6V1F0LE1lc3NhZ2VzU3F1YXJlOllRdCxNaWM6WFF0LE1pYzI6VEksTWljT2ZmOlpRdCxNaWNWb2NhbDpUSSxNaWNyb2NoaXA6UVF0LE1pY3Jvc2NvcGU6SlF0LE1pY3Jvd2F2ZTpLUXQsTWlsZXN0b25lOmVKdCxNaWxrOmlKdCxNaWxrT2ZmOnRKdCxNaW5pbWl6ZTphSnQsTWluaW1pemUyOnJKdCxNaW51czpuSnQsTWludXNDaXJjbGU6bCQsTWludXNTcXVhcmU6JFAsTW9uaXRvcjp4SnQsTW9uaXRvckNoZWNrOm9KdCxNb25pdG9yQ2xvdWQ6c0p0LE1vbml0b3JDb2c6bEp0LE1vbml0b3JEb3Q6Y0p0LE1vbml0b3JEb3duOmRKdCxNb25pdG9yT2ZmOnVKdCxNb25pdG9yUGF1c2U6cEp0LE1vbml0b3JQbGF5OmhKdCxNb25pdG9yU21hcnRwaG9uZTpmSnQsTW9uaXRvclNwZWFrZXI6bUp0LE1vbml0b3JTdG9wOmdKdCxNb25pdG9yVXA6Ykp0LE1vbml0b3JYOnZKdCxNb29uOndKdCxNb29uU3Rhcjp5SnQsTW9yZUhvcml6b250YWw6RSQsTW9yZVZlcnRpY2FsOkQkLE1vdG9yYmlrZTpNSnQsTW91bnRhaW46U0p0LE1vdW50YWluU25vdzprSnQsTW91c2U6REp0LE1vdXNlT2ZmOnpKdCxNb3VzZVBvaW50ZXI6QUp0LE1vdXNlUG9pbnRlcjI6VEp0LE1vdXNlUG9pbnRlcjJPZmY6Q0p0LE1vdXNlUG9pbnRlckJhbjpfSnQsTW91c2VQb2ludGVyQ2xpY2s6TEp0LE1vdXNlUG9pbnRlclNxdWFyZURhc2hlZDprUCxNb3ZlOlZKdCxNb3ZlM0Q6X0ksTW92ZTNkOl9JLE1vdmVEaWFnb25hbDokSnQsTW92ZURpYWdvbmFsMjpFSnQsTW92ZURvd246Tkp0LE1vdmVEb3duTGVmdDpJSnQsTW92ZURvd25SaWdodDpQSnQsTW92ZUhvcml6b250YWw6Rkp0LE1vdmVMZWZ0Ok9KdCxNb3ZlUmlnaHQ6Ukp0LE1vdmVVcDpxSnQsTW92ZVVwTGVmdDpCSnQsTW92ZVVwUmlnaHQ6SEp0LE1vdmVWZXJ0aWNhbDpqSnQsTXVzaWM6WUp0LE11c2ljMjpVSnQsTXVzaWMzOldKdCxNdXNpYzQ6R0p0LE5hdmlnYXRpb246UUp0LE5hdmlnYXRpb24yOlhKdCxOYXZpZ2F0aW9uMk9mZjpaSnQsTmF2aWdhdGlvbk9mZjpKSnQsTmV0d29yazpLSnQsTmV3c3BhcGVyOmVLdCxOZmM6dEt0LE5vbkJpbmFyeTpyS3QsTm90ZWJvb2s6b0t0LE5vdGVib29rUGVuOmlLdCxOb3RlYm9va1RhYnM6YUt0LE5vdGVib29rVGV4dDpuS3QsTm90ZXBhZFRleHQ6bEt0LE5vdGVwYWRUZXh0RGFzaGVkOnNLdCxOdXQ6Y0t0LE51dE9mZjpkS3QsT2N0YWdvbjpwS3QsT2N0YWdvbkFsZXJ0OkxJLE9jdGFnb25NaW51czp1S3QsT2N0YWdvblBhdXNlOkFJLE9jdGFnb25YOkRJLE9tZWdhOmhLdCxPcHRpb246bUt0LE9yYml0OmZLdCxPcmlnYW1pOmdLdCxPdXRkZW50OldwLFBhY2thZ2U6U0t0LFBhY2thZ2UyOmJLdCxQYWNrYWdlQ2hlY2s6dkt0LFBhY2thZ2VNaW51czp4S3QsUGFja2FnZU9wZW46eUt0LFBhY2thZ2VQbHVzOndLdCxQYWNrYWdlU2VhcmNoOk1LdCxQYWNrYWdlWDprS3QsUGFpbnRCdWNrZXQ6Q0t0LFBhaW50Um9sbGVyOnpLdCxQYWludGJydXNoOlRLdCxQYWludGJydXNoMjpFSSxQYWludGJydXNoVmVydGljYWw6RUksUGFsZXR0ZTpfS3QsUGFsbXRyZWU6b04sUGFuZGE6TEt0LFBhbmVsQm90dG9tOkVLdCxQYW5lbEJvdHRvbUNsb3NlOkFLdCxQYW5lbEJvdHRvbURhc2hlZDokSSxQYW5lbEJvdHRvbUluYWN0aXZlOiRJLFBhbmVsQm90dG9tT3BlbjpES3QsUGFuZWxMZWZ0OkZJLFBhbmVsTGVmdENsb3NlOklJLFBhbmVsTGVmdERhc2hlZDpQSSxQYW5lbExlZnRJbmFjdGl2ZTpQSSxQYW5lbExlZnRPcGVuOk5JLFBhbmVsTGVmdFJpZ2h0RGFzaGVkOiRLdCxQYW5lbFJpZ2h0Ok5LdCxQYW5lbFJpZ2h0Q2xvc2U6SUt0LFBhbmVsUmlnaHREYXNoZWQ6T0ksUGFuZWxSaWdodEluYWN0aXZlOk9JLFBhbmVsUmlnaHRPcGVuOlBLdCxQYW5lbFRvcDpCS3QsUGFuZWxUb3BCb3R0b21EYXNoZWQ6Rkt0LFBhbmVsVG9wQ2xvc2U6T0t0LFBhbmVsVG9wRGFzaGVkOlJJLFBhbmVsVG9wSW5hY3RpdmU6UkksUGFuZWxUb3BPcGVuOlJLdCxQYW5lbHNMZWZ0Qm90dG9tOkhLdCxQYW5lbHNMZWZ0UmlnaHQ6VCQsUGFuZWxzUmlnaHRCb3R0b206cUt0LFBhbmVsc1RvcEJvdHRvbTpHSSxQYW5lbHNUb3BMZWZ0OkJJLFBhcGVyY2xpcDpqS3QsUGFyZW50aGVzZXM6Vkt0LFBhcmtpbmdDaXJjbGU6ZCQsUGFya2luZ0NpcmNsZU9mZjpjJCxQYXJraW5nTWV0ZXI6VUt0LFBhcmtpbmdTcXVhcmU6TlAsUGFya2luZ1NxdWFyZU9mZjpQUCxQYXJ0eVBvcHBlcjpXS3QsUGF1c2U6R0t0LFBhdXNlQ2lyY2xlOnUkLFBhdXNlT2N0YWdvbjpBSSxQYXdQcmludDpZS3QsUGNDYXNlOlpLdCxQZW46cUksUGVuQm94OkU0LFBlbkxpbmU6SEksUGVuT2ZmOlhLdCxQZW5TcXVhcmU6RTQsUGVuVG9vbDpRS3QsUGVuY2lsOnJlcixQZW5jaWxMaW5lOkpLdCxQZW5jaWxPZmY6S0t0LFBlbmNpbFJ1bGVyOmVlcixQZW50YWdvbjp0ZXIsUGVyY2VudDppZXIsUGVyY2VudENpcmNsZTpwJCxQZXJjZW50RGlhbW9uZDpMJCxQZXJjZW50U3F1YXJlOk9QLFBlcnNvblN0YW5kaW5nOmFlcixQaGlsaXBwaW5lUGVzbzpuZXIsUGhvbmU6cGVyLFBob25lQ2FsbDpvZXIsUGhvbmVGb3J3YXJkZWQ6c2VyLFBob25lSW5jb21pbmc6bGVyLFBob25lTWlzc2VkOmNlcixQaG9uZU9mZjpkZXIsUGhvbmVPdXRnb2luZzp1ZXIsUGk6aGVyLFBpU3F1YXJlOkZQLFBpYW5vOmZlcixQaWNrYXhlOm1lcixQaWN0dXJlSW5QaWN0dXJlOnZlcixQaWN0dXJlSW5QaWN0dXJlMjpnZXIsUGllQ2hhcnQ6cUUsUGlnZ3lCYW5rOmJlcixQaWxjcm93OndlcixQaWxjcm93TGVmdDp4ZXIsUGlsY3Jvd1JpZ2h0OnllcixQaWxjcm93U3F1YXJlOlJQLFBpbGw6a2VyLFBpbGxCb3R0bGU6TWVyLFBpbjp6ZXIsUGluT2ZmOlNlcixQaXBldHRlOkNlcixQaXp6YTpUZXIsUGxhbmU6QWVyLFBsYW5lTGFuZGluZzpfZXIsUGxhbmVUYWtlb2ZmOkxlcixQbGF5OkRlcixQbGF5Q2lyY2xlOmgkLFBsYXlTcXVhcmU6QlAsUGx1ZzokZXIsUGx1ZzI6RWVyLFBsdWdaYXA6akksUGx1Z1phcDI6akksUGx1czpJZXIsUGx1c0NpcmNsZTpmJCxQbHVzU3F1YXJlOkhQLFBvY2tldDpGZXIsUG9ja2V0S25pZmU6UGVyLFBvZGNhc3Q6TmVyLFBvaW50ZXI6UmVyLFBvaW50ZXJPZmY6T2VyLFBvcGNvcm46QmVyLFBvcHNpY2xlOkhlcixQb3VuZFN0ZXJsaW5nOnFlcixQb3dlcjpWZXIsUG93ZXJDaXJjbGU6bSQsUG93ZXJPZmY6amVyLFBvd2VyU3F1YXJlOnFQLFByZXNlbnRhdGlvbjpXZXIsUHJpbnRlcjpZZXIsUHJpbnRlckNoZWNrOlVlcixQcmludGVyWDpHZXIsUHJvamVjdG9yOlplcixQcm9wb3J0aW9uczpYZXIsUHV6emxlOlFlcixQeXJhbWlkOkplcixRckNvZGU6S2VyLFF1b3RlOmV0cixSYWJiaXQ6dHRyLFJhZGFyOnJ0cixSYWRpYXRpb246aXRyLFJhZGljYWw6YXRyLFJhZGlvOnN0cixSYWRpb1JlY2VpdmVyOm50cixSYWRpb1Rvd2VyOm90cixSYWRpdXM6bHRyLFJhaWxTeW1ib2w6Y3RyLFJhaW5ib3c6ZHRyLFJhdDp1dHIsUmF0aW86cHRyLFJlY2VpcHQ6TXRyLFJlY2VpcHRDZW50Omh0cixSZWNlaXB0RXVybzpmdHIsUmVjZWlwdEluZGlhblJ1cGVlOm10cixSZWNlaXB0SmFwYW5lc2VZZW46Z3RyLFJlY2VpcHRQb3VuZFN0ZXJsaW5nOmJ0cixSZWNlaXB0UnVzc2lhblJ1YmxlOnZ0cixSZWNlaXB0U3dpc3NGcmFuYzp4dHIsUmVjZWlwdFRleHQ6eXRyLFJlY2VpcHRUdXJraXNoTGlyYTp3dHIsUmVjdGFuZ2xlQ2lyY2xlOmt0cixSZWN0YW5nbGVFbGxpcHNpczpWSSxSZWN0YW5nbGVHb2dnbGVzOnp0cixSZWN0YW5nbGVIb3Jpem9udGFsOlN0cixSZWN0YW5nbGVWZXJ0aWNhbDpDdHIsUmVjeWNsZTpUdHIsUmVkbzpBdHIsUmVkbzI6THRyLFJlZG9Eb3Q6X3RyLFJlZnJlc2hDY3c6RXRyLFJlZnJlc2hDY3dEb3Q6RHRyLFJlZnJlc2hDdzpJdHIsUmVmcmVzaEN3T2ZmOiR0cixSZWZyaWdlcmF0b3I6UHRyLFJlZ2V4Ok50cixSZW1vdmVGb3JtYXR0aW5nOkZ0cixSZXBlYXQ6QnRyLFJlcGVhdDE6UnRyLFJlcGVhdDI6T3RyLFJlcGxhY2U6cXRyLFJlcGxhY2VBbGw6SHRyLFJlcGx5OlZ0cixSZXBseUFsbDpqdHIsUmV3aW5kOlV0cixSaWJib246V3RyLFJvY2tldDpHdHIsUm9ja2luZ0NoYWlyOll0cixSb2xsZXJDb2FzdGVyOlp0cixSb3NlOlh0cixSb3RhdGUzRDpVSSxSb3RhdGUzZDpVSSxSb3RhdGVDY3c6S3RyLFJvdGF0ZUNjd0tleTpRdHIsUm90YXRlQ2N3U3F1YXJlOkp0cixSb3RhdGVDdzp0cnIsUm90YXRlQ3dTcXVhcmU6ZXJyLFJvdXRlOmlycixSb3V0ZU9mZjpycnIsUm91dGVyOmFycixSb3dzOldJLFJvd3MyOldJLFJvd3MzOkdJLFJvd3M0Om5ycixSc3M6b3JyLFJ1bGVyOmNycixSdWxlckRpbWVuc2lvbkxpbmU6c3JyLFJ1c3NpYW5SdWJsZTpscnIsU2FpbGJvYXQ6dXJyLFNhbGFkOmRycixTYW5kd2ljaDpwcnIsU2F0ZWxsaXRlOmZycixTYXRlbGxpdGVEaXNoOmhycixTYXVkaVJpeWFsOm1ycixTYXZlOnZycixTYXZlQWxsOmdycixTYXZlT2ZmOmJycixTY2FsZTp4cnIsU2NhbGUzRDpZSSxTY2FsZTNkOllJLFNjYWxpbmc6eXJyLFNjYW46THJyLFNjYW5CYXJjb2RlOk1ycixTY2FuRXllOndycixTY2FuRmFjZTprcnIsU2NhbkhlYXJ0OlNycixTY2FuTGluZTp6cnIsU2NhblFyQ29kZTpDcnIsU2NhblNlYXJjaDpUcnIsU2NhblRleHQ6X3JyLFNjYXR0ZXJDaGFydDpqRSxTY2hvb2w6QXJyLFNjaG9vbDI6Y04sU2Npc3NvcnM6RXJyLFNjaXNzb3JzTGluZURhc2hlZDpEcnIsU2Npc3NvcnNTcXVhcmU6alAsU2Npc3NvcnNTcXVhcmVEYXNoZWRCb3R0b206ZlAsU2Nvb3RlcjokcnIsU2NyZWVuU2hhcmU6UHJyLFNjcmVlblNoYXJlT2ZmOklycixTY3JvbGw6TnJyLFNjcm9sbFRleHQ6RnJyLFNlYXJjaDpqcnIsU2VhcmNoQWxlcnQ6T3JyLFNlYXJjaENoZWNrOlJycixTZWFyY2hDb2RlOkJycixTZWFyY2hTbGFzaDpIcnIsU2VhcmNoWDpxcnIsU2VjdGlvbjpWcnIsU2VuZDpXcnIsU2VuZEhvcml6b25hbDpaSSxTZW5kSG9yaXpvbnRhbDpaSSxTZW5kVG9CYWNrOlVycixTZXBhcmF0b3JIb3Jpem9udGFsOllycixTZXBhcmF0b3JWZXJ0aWNhbDpHcnIsU2VydmVyOkpycixTZXJ2ZXJDb2c6WnJyLFNlcnZlckNyYXNoOlhycixTZXJ2ZXJPZmY6UXJyLFNldHRpbmdzOmUxcixTZXR0aW5nczI6S3JyLFNoYXBlczp0MXIsU2hhcmU6aTFyLFNoYXJlMjpyMXIsU2hlZXQ6YTFyLFNoZWxsOm4xcixTaGllbGQ6bTFyLFNoaWVsZEFsZXJ0Om8xcixTaGllbGRCYW46czFyLFNoaWVsZENoZWNrOmwxcixTaGllbGRDbG9zZTpRSSxTaGllbGRFbGxpcHNpczpjMXIsU2hpZWxkSGFsZjpkMXIsU2hpZWxkTWludXM6dTFyLFNoaWVsZE9mZjpwMXIsU2hpZWxkUGx1czpoMXIsU2hpZWxkUXVlc3Rpb246WEksU2hpZWxkUXVlc3Rpb25NYXJrOlhJLFNoaWVsZFVzZXI6ZjFyLFNoaWVsZFg6UUksU2hpcDpiMXIsU2hpcFdoZWVsOmcxcixTaGlydDp2MXIsU2hvcHBpbmdCYWc6eDFyLFNob3BwaW5nQmFza2V0OnkxcixTaG9wcGluZ0NhcnQ6dzFyLFNob3ZlbDpNMXIsU2hvd2VySGVhZDprMXIsU2hyZWRkZXI6UzFyLFNocmltcDp6MXIsU2hyaW5rOkMxcixTaHJ1YjpfMXIsU2h1ZmZsZTpUMXIsU2lkZWJhcjpGSSxTaWRlYmFyQ2xvc2U6SUksU2lkZWJhck9wZW46TkksU2lnbWE6TDFyLFNpZ21hU3F1YXJlOlZQLFNpZ25hbDpJMXIsU2lnbmFsSGlnaDpBMXIsU2lnbmFsTG93OkQxcixTaWduYWxNZWRpdW06RTFyLFNpZ25hbFplcm86JDFyLFNpZ25hdHVyZTpQMXIsU2lnbnBvc3Q6RjFyLFNpZ25wb3N0QmlnOk4xcixTaXJlbjpPMXIsU2tpcEJhY2s6UjFyLFNraXBGb3J3YXJkOkIxcixTa3VsbDpIMXIsU2xhY2s6cTFyLFNsYXNoOmoxcixTbGFzaFNxdWFyZTpVUCxTbGljZTpWMXIsU2xpZGVyczpKSSxTbGlkZXJzSG9yaXpvbnRhbDpVMXIsU2xpZGVyc1ZlcnRpY2FsOkpJLFNtYXJ0cGhvbmU6WTFyLFNtYXJ0cGhvbmVDaGFyZ2luZzpXMXIsU21hcnRwaG9uZU5mYzpHMXIsU21pbGU6WDFyLFNtaWxlUGx1czpaMXIsU25haWw6UTFyLFNub3dmbGFrZTpLMXIsU29hcERpc3BlbnNlckRyb3BsZXQ6SjFyLFNvZmE6ZWlyLFNvbGFyUGFuZWw6dGlyLFNvcnRBc2M6d0UsU29ydERlc2M6dkUsU291cDpyaXIsU3BhY2U6aWlyLFNwYWRlOmFpcixTcGFya2xlOm5pcixTcGFya2xlczpLSSxTcGVha2VyOm9pcixTcGVlY2g6c2lyLFNwZWxsQ2hlY2s6Y2lyLFNwZWxsQ2hlY2syOmxpcixTcGxpbmU6dWlyLFNwbGluZVBvaW50ZXI6ZGlyLFNwbGl0OnBpcixTcGxpdFNxdWFyZUhvcml6b250YWw6V1AsU3BsaXRTcXVhcmVWZXJ0aWNhbDpHUCxTcG9vbDpoaXIsU3BvdGxpZ2h0OmZpcixTcHJheUNhbjptaXIsU3Byb3V0OmdpcixTcXVhcmU6VGlyLFNxdWFyZUFjdGl2aXR5OnRQLFNxdWFyZUFycm93RG93bjppUCxTcXVhcmVBcnJvd0Rvd25MZWZ0OmVQLFNxdWFyZUFycm93RG93blJpZ2h0OnJQLFNxdWFyZUFycm93TGVmdDphUCxTcXVhcmVBcnJvd091dERvd25MZWZ0Om5QLFNxdWFyZUFycm93T3V0RG93blJpZ2h0OnNQLFNxdWFyZUFycm93T3V0VXBMZWZ0Om9QLFNxdWFyZUFycm93T3V0VXBSaWdodDpsUCxTcXVhcmVBcnJvd1JpZ2h0OmNQLFNxdWFyZUFycm93VXA6cFAsU3F1YXJlQXJyb3dVcExlZnQ6ZFAsU3F1YXJlQXJyb3dVcFJpZ2h0OnVQLFNxdWFyZUFzdGVyaXNrOmhQLFNxdWFyZUJvdHRvbURhc2hlZFNjaXNzb3JzOmZQLFNxdWFyZUNoYXJ0R2FudHQ6WXAsU3F1YXJlQ2hlY2s6Z1AsU3F1YXJlQ2hlY2tCaWc6bVAsU3F1YXJlQ2hldnJvbkRvd246YlAsU3F1YXJlQ2hldnJvbkxlZnQ6dlAsU3F1YXJlQ2hldnJvblJpZ2h0OnhQLFNxdWFyZUNoZXZyb25VcDp5UCxTcXVhcmVDb2RlOndQLFNxdWFyZURhc2hlZDpTUCxTcXVhcmVEYXNoZWRCb3R0b206dmlyLFNxdWFyZURhc2hlZEJvdHRvbUNvZGU6YmlyLFNxdWFyZURhc2hlZEthbmJhbjpNUCxTcXVhcmVEYXNoZWRNb3VzZVBvaW50ZXI6a1AsU3F1YXJlRGFzaGVkVG9wU29saWQ6eGlyLFNxdWFyZURpdmlkZTp6UCxTcXVhcmVEb3Q6Q1AsU3F1YXJlRXF1YWw6VFAsU3F1YXJlRnVuY3Rpb246X1AsU3F1YXJlR2FudHRDaGFydDpZcCxTcXVhcmVLYW5iYW46TFAsU3F1YXJlTGlicmFyeTpBUCxTcXVhcmVNOkRQLFNxdWFyZU1lbnU6RVAsU3F1YXJlTWludXM6JFAsU3F1YXJlTW91c2VQb2ludGVyOklQLFNxdWFyZVBhcmtpbmc6TlAsU3F1YXJlUGFya2luZ09mZjpQUCxTcXVhcmVQYXVzZTp5aXIsU3F1YXJlUGVuOkU0LFNxdWFyZVBlcmNlbnQ6T1AsU3F1YXJlUGk6RlAsU3F1YXJlUGlsY3JvdzpSUCxTcXVhcmVQbGF5OkJQLFNxdWFyZVBsdXM6SFAsU3F1YXJlUG93ZXI6cVAsU3F1YXJlUmFkaWNhbDpNaXIsU3F1YXJlUm91bmRDb3JuZXI6d2lyLFNxdWFyZVNjaXNzb3JzOmpQLFNxdWFyZVNpZ21hOlZQLFNxdWFyZVNsYXNoOlVQLFNxdWFyZVNwbGl0SG9yaXpvbnRhbDpXUCxTcXVhcmVTcGxpdFZlcnRpY2FsOkdQLFNxdWFyZVNxdWFyZTpTaXIsU3F1YXJlU3RhY2s6a2lyLFNxdWFyZVN0YXI6emlyLFNxdWFyZVN0b3A6Q2lyLFNxdWFyZVRlcm1pbmFsOllQLFNxdWFyZVVzZXI6WFAsU3F1YXJlVXNlclJvdW5kOlpQLFNxdWFyZVg6UVAsU3F1YXJlc0V4Y2x1ZGU6X2lyLFNxdWFyZXNJbnRlcnNlY3Q6TGlyLFNxdWFyZXNTdWJ0cmFjdDpBaXIsU3F1YXJlc1VuaXRlOkRpcixTcXVpcmNsZTokaXIsU3F1aXJjbGVEYXNoZWQ6RWlyLFNxdWlycmVsOklpcixTdGFtcDpQaXIsU3RhcjpPaXIsU3RhckhhbGY6TmlyLFN0YXJPZmY6RmlyLFN0YXJzOktJLFN0ZXBCYWNrOlJpcixTdGVwRm9yd2FyZDpCaXIsU3RldGhvc2NvcGU6SGlyLFN0aWNrZXI6cWlyLFN0aWNreU5vdGU6amlyLFN0b25lOlZpcixTdG9wQ2lyY2xlOmIkLFN0b3JlOlVpcixTdHJldGNoSG9yaXpvbnRhbDpXaXIsU3RyZXRjaFZlcnRpY2FsOkdpcixTdHJpa2V0aHJvdWdoOllpcixTdWJzY3JpcHQ6WmlyLFN1YnRpdGxlczpBRSxTdW46ZWFyLFN1bkRpbTpYaXIsU3VuTWVkaXVtOlFpcixTdW5Nb29uOkppcixTdW5Tbm93OktpcixTdW5yaXNlOnRhcixTdW5zZXQ6cmFyLFN1cGVyc2NyaXB0OmlhcixTd2F0Y2hCb29rOmFhcixTd2lzc0ZyYW5jOm5hcixTd2l0Y2hDYW1lcmE6b2FyLFN3b3JkOnNhcixTd29yZHM6bGFyLFN5cmluZ2U6Y2FyLFRhYmxlOmJhcixUYWJsZTI6ZGFyLFRhYmxlQ2VsbHNNZXJnZTp1YXIsVGFibGVDZWxsc1NwbGl0OnBhcixUYWJsZUNvbHVtbnNTcGxpdDpoYXIsVGFibGVDb25maWc6anAsVGFibGVPZkNvbnRlbnRzOmZhcixUYWJsZVByb3BlcnRpZXM6bWFyLFRhYmxlUm93c1NwbGl0OmdhcixUYWJsZXQ6eGFyLFRhYmxldFNtYXJ0cGhvbmU6eWFyLFRhYmxldHM6d2FyLFRhZzpNYXIsVGFnczprYXIsVGFsbHkxOlNhcixUYWxseTI6emFyLFRhbGx5MzpDYXIsVGFsbHk0OlRhcixUYWxseTU6X2FyLFRhbmdlbnQ6TGFyLFRhcmdldDpBYXIsVGVsZXNjb3BlOkRhcixUZW50OiRhcixUZW50VHJlZTpFYXIsVGVybWluYWw6SWFyLFRlcm1pbmFsU3F1YXJlOllQLFRlc3RUdWJlOlBhcixUZXN0VHViZTI6SlAsVGVzdFR1YmVEaWFnb25hbDpKUCxUZXN0VHViZXM6TmFyLFRleHQ6WnAsVGV4dEFsaWduQ2VudGVyOktQLFRleHRBbGlnbkVuZDplTixUZXh0QWxpZ25KdXN0aWZ5OnROLFRleHRBbGlnblN0YXJ0OlpwLFRleHRDdXJzb3I6T2FyLFRleHRDdXJzb3JJbnB1dDpGYXIsVGV4dEluaXRpYWw6ck4sVGV4dFF1b3RlOlJhcixUZXh0U2VhcmNoOkJhcixUZXh0U2VsZWN0OmlOLFRleHRTZWxlY3Rpb246aU4sVGV4dFdyYXA6YU4sVGhlYXRlcjpIYXIsVGhlcm1vbWV0ZXI6VmFyLFRoZXJtb21ldGVyU25vd2ZsYWtlOnFhcixUaGVybW9tZXRlclN1bjpqYXIsVGh1bWJzRG93bjpVYXIsVGh1bWJzVXA6V2FyLFRpY2tldDpLYXIsVGlja2V0Q2hlY2s6R2FyLFRpY2tldE1pbnVzOllhcixUaWNrZXRQZXJjZW50OlphcixUaWNrZXRQbHVzOlhhcixUaWNrZXRTbGFzaDpRYXIsVGlja2V0WDpKYXIsVGlja2V0czpybnIsVGlja2V0c1BsYW5lOmVucixUaW1lcjphbnIsVGltZXJPZmY6dG5yLFRpbWVyUmVzZXQ6aW5yLFRvZ2dsZUxlZnQ6bm5yLFRvZ2dsZVJpZ2h0Om9ucixUb2lsZXQ6c25yLFRvb2xDYXNlOmxucixUb29sYm94OmNucixUb3JuYWRvOmRucixUb3J1czp1bnIsVG91Y2hwYWQ6aG5yLFRvdWNocGFkT2ZmOnBucixUb3dlckNvbnRyb2w6Zm5yLFRveUJyaWNrOm1ucixUcmFjdG9yOmducixUcmFmZmljQ29uZTpibnIsVHJhaW46bk4sVHJhaW5Gcm9udDp4bnIsVHJhaW5Gcm9udFR1bm5lbDp2bnIsVHJhaW5UcmFjazp5bnIsVHJhbUZyb250Om5OLFRyYW5zZ2VuZGVyOnducixUcmFzaDprbnIsVHJhc2gyOk1ucixUcmVlRGVjaWR1b3VzOlNucixUcmVlUGFsbTpvTixUcmVlUGluZTp6bnIsVHJlZXM6Q25yLFRyZWxsbzpUbnIsVHJlbmRpbmdEb3duOl9ucixUcmVuZGluZ1VwOkFucixUcmVuZGluZ1VwRG93bjpMbnIsVHJpYW5nbGU6JG5yLFRyaWFuZ2xlQWxlcnQ6c04sVHJpYW5nbGVEYXNoZWQ6RG5yLFRyaWFuZ2xlUmlnaHQ6RW5yLFRyb3BoeTpQbnIsVHJ1Y2s6Tm5yLFRydWNrRWxlY3RyaWM6SW5yLFR1cmtpc2hMaXJhOkZucixUdXJudGFibGU6T25yLFR1cnRsZTpSbnIsVHY6SG5yLFR2MjpsTixUdk1pbmltYWw6bE4sVHZNaW5pbWFsUGxheTpCbnIsVHdpdGNoOnFucixUd2l0dGVyOmpucixUeXBlOlVucixUeXBlT3V0bGluZTpWbnIsVW1icmVsbGE6R25yLFVtYnJlbGxhT2ZmOlducixVbmRlcmxpbmU6WW5yLFVuZG86UW5yLFVuZG8yOlpucixVbmRvRG90OlhucixVbmZvbGRIb3Jpem9udGFsOkpucixVbmZvbGRWZXJ0aWNhbDpLbnIsVW5ncm91cDplb3IsVW5pdmVyc2l0eTpjTixVbmxpbms6dG9yLFVubGluazI6cm9yLFVubG9jazprSSxVbmxvY2tLZXlob2xlOk1JLFVucGx1Zzppb3IsVXBsb2FkOmFvcixVcGxvYWRDbG91ZDpTJCxVc2I6bm9yLFVzZXI6eW9yLFVzZXIyOm1OLFVzZXJDaGVjazpvb3IsVXNlckNoZWNrMjpkTixVc2VyQ2lyY2xlOngkLFVzZXJDaXJjbGUyOnYkLFVzZXJDb2c6c29yLFVzZXJDb2cyOnVOLFVzZXJLZXk6bG9yLFVzZXJMb2NrOmNvcixVc2VyTWludXM6ZG9yLFVzZXJNaW51czI6cE4sVXNlclBlbjp1b3IsVXNlclBsdXM6cG9yLFVzZXJQbHVzMjpoTixVc2VyUm91bmQ6bU4sVXNlclJvdW5kQ2hlY2s6ZE4sVXNlclJvdW5kQ29nOnVOLFVzZXJSb3VuZEtleTpob3IsVXNlclJvdW5kTWludXM6cE4sVXNlclJvdW5kUGVuOm1vcixVc2VyUm91bmRQbHVzOmhOLFVzZXJSb3VuZFNlYXJjaDpnb3IsVXNlclJvdW5kWDpmTixVc2VyU2VhcmNoOmJvcixVc2VyU3F1YXJlOlhQLFVzZXJTcXVhcmUyOlpQLFVzZXJTdGFyOnZvcixVc2VyWDp4b3IsVXNlclgyOmZOLFVzZXJzOndvcixVc2VyczI6Z04sVXNlcnNSb3VuZDpnTixVdGVuc2lsczp2TixVdGVuc2lsc0Nyb3NzZWQ6Yk4sVXRpbGl0eVBvbGU6TW9yLFZhbjprb3IsVmFyaWFibGU6U29yLFZhdWx0OnpvcixWZWN0b3JTcXVhcmU6Q29yLFZlZ2FuOlRvcixWZW5ldGlhbk1hc2s6X29yLFZlbnVzOkFvcixWZW51c0FuZE1hcnM6TG9yLFZlcmlmaWVkOlNFLFZpYnJhdGU6RW9yLFZpYnJhdGVPZmY6RG9yLFZpZGVvOklvcixWaWRlb09mZjokb3IsVmlkZW90YXBlOlBvcixWaWV3Ok5vcixWb2ljZW1haWw6Rm9yLFZvbGxleWJhbGw6T29yLFZvbHVtZTpWb3IsVm9sdW1lMTpSb3IsVm9sdW1lMjpCb3IsVm9sdW1lT2ZmOkhvcixWb2x1bWVYOnFvcixWb3RlOmpvcixXYWxsZXQ6V29yLFdhbGxldDI6eE4sV2FsbGV0Q2FyZHM6VW9yLFdhbGxldE1pbmltYWw6eE4sV2FsbHBhcGVyOkdvcixXYW5kOllvcixXYW5kMjp5TixXYW5kU3BhcmtsZXM6eU4sV2FyZWhvdXNlOlpvcixXYXNoaW5nTWFjaGluZTpYb3IsV2F0Y2g6UW9yLFdhdmVzOnQycixXYXZlc0Fycm93RG93bjpKb3IsV2F2ZXNBcnJvd1VwOktvcixXYXZlc0xhZGRlcjplMnIsV2F5cG9pbnRzOnIycixXZWJjYW06aTJyLFdlYmhvb2s6bjJyLFdlYmhvb2tPZmY6YTJyLFdlaWdodDpsMnIsV2VpZ2h0VGlsZGU6bzJyLFdoZWF0OmMycixXaGVhdE9mZjpzMnIsV2hvbGVXb3JkOmQycixXaWZpOnYycixXaWZpQ29nOnUycixXaWZpSGlnaDpwMnIsV2lmaUxvdzpoMnIsV2lmaU9mZjpmMnIsV2lmaVBlbjptMnIsV2lmaVN5bmM6ZzJyLFdpZmlaZXJvOmIycixXaW5kOnkycixXaW5kQXJyb3dEb3duOngycixXaW5lOncycixXaW5lT2ZmOmsycixXb3JrZmxvdzpNMnIsV29ybTpTMnIsV3JhcFRleHQ6YU4sV3JlbmNoOlQycixYOnoycixYQ2lyY2xlOnkkLFhPY3RhZ29uOkRJLFhTcXVhcmU6UVAsWW91dHViZTpDMnIsWmFwOkwycixaYXBPZmY6XzJyLFpvb21JbjpEMnIsWm9vbU91dDpBMnJ9KSxFMnI9KHtpY29uczplPXt9LG5hbWVBdHRyOnQ9ImRhdGEtbHVjaWRlIixhdHRyczpyPXt9LHJvb3Q6aT1kb2N1bWVudCxpblRlbXBsYXRlczphfT17fSk9PntpZighT2JqZWN0LnZhbHVlcyhlKS5sZW5ndGgpdGhyb3cgbmV3IEVycm9yKGBQbGVhc2UgcHJvdmlkZSBhbiBpY29ucyBvYmplY3QuCklmIHlvdSB3YW50IHRvIHVzZSBhbGwgdGhlIGljb25zIHlvdSBjYW4gaW1wb3J0IGl0IGxpa2U6CiBcYGltcG9ydCB7IGNyZWF0ZUljb25zLCBpY29ucyB9IGZyb20gJ2x1Y2lkZSc7Cmx1Y2lkZS5jcmVhdGVJY29ucyh7aWNvbnN9KTtcYGApO2lmKHR5cGVvZiBpPiJ1Iil0aHJvdyBuZXcgRXJyb3IoImBjcmVhdGVJY29ucygpYCBvbmx5IHdvcmtzIGluIGEgYnJvd3NlciBlbnZpcm9ubWVudC4iKTtpZihBcnJheS5mcm9tKGkucXVlcnlTZWxlY3RvckFsbChgWyR7dH1dYCkpLmZvckVhY2gobz0+WVB0KG8se25hbWVBdHRyOnQsaWNvbnM6ZSxhdHRyczpyfSkpLGEmJkFycmF5LmZyb20oaS5xdWVyeVNlbGVjdG9yQWxsKCJ0ZW1wbGF0ZSIpKS5mb3JFYWNoKHM9PkUycih7aWNvbnM6ZSxuYW1lQXR0cjp0LGF0dHJzOnIscm9vdDpzLmNvbnRlbnQsaW5UZW1wbGF0ZXM6YX0pKSx0PT09ImRhdGEtbHVjaWRlIil7bGV0IG89aS5xdWVyeVNlbGVjdG9yQWxsKCJbaWNvbi1uYW1lXSIpO28ubGVuZ3RoPjAmJihjb25zb2xlLndhcm4oIltMdWNpZGVdIFNvbWUgaWNvbnMgd2VyZSBmb3VuZCB3aXRoIHRoZSBub3cgZGVwcmVjYXRlZCBpY29uLW5hbWUgYXR0cmlidXRlLiBUaGVzZSB3aWxsIHN0aWxsIGJlIHJlcGxhY2VkIGZvciBiYWNrd2FyZHMgY29tcGF0aWJpbGl0eSwgYnV0IHdpbGwgbm8gbG9uZ2VyIGJlIHN1cHBvcnRlZCBpbiB2MS4wIGFuZCB5b3Ugc2hvdWxkIHN3aXRjaCB0byBkYXRhLWx1Y2lkZSIpLEFycmF5LmZyb20obykuZm9yRWFjaChzPT5ZUHQocyx7bmFtZUF0dHI6Imljb24tbmFtZSIsaWNvbnM6ZSxhdHRyczpyfSkpKX19O2cuQUFycm93RG93bj1aUHQsZy5BQXJyb3dVcD1YUHQsZy5BTGFyZ2VTbWFsbD1RUHQsZy5BY2Nlc3NpYmlsaXR5PUpQdCxnLkFjdGl2aXR5PWVOdCxnLkFjdGl2aXR5U3F1YXJlPXRQLGcuQWlyVmVudD1LUHQsZy5BaXJwbGF5PXROdCxnLkFsYXJtQ2hlY2s9ZkUsZy5BbGFybUNsb2NrPWlOdCxnLkFsYXJtQ2xvY2tDaGVjaz1mRSxnLkFsYXJtQ2xvY2tNaW51cz1tRSxnLkFsYXJtQ2xvY2tPZmY9ck50LGcuQWxhcm1DbG9ja1BsdXM9Z0UsZy5BbGFybU1pbnVzPW1FLGcuQWxhcm1QbHVzPWdFLGcuQWxhcm1TbW9rZT1hTnQsZy5BbGJ1bT1uTnQsZy5BbGVydENpcmNsZT1VRSxnLkFsZXJ0T2N0YWdvbj1MSSxnLkFsZXJ0VHJpYW5nbGU9c04sZy5BbGlnbkNlbnRlcj1LUCxnLkFsaWduQ2VudGVySG9yaXpvbnRhbD1vTnQsZy5BbGlnbkNlbnRlclZlcnRpY2FsPXNOdCxnLkFsaWduRW5kSG9yaXpvbnRhbD1sTnQsZy5BbGlnbkVuZFZlcnRpY2FsPWNOdCxnLkFsaWduSG9yaXpvbnRhbERpc3RyaWJ1dGVDZW50ZXI9ZE50LGcuQWxpZ25Ib3Jpem9udGFsRGlzdHJpYnV0ZUVuZD11TnQsZy5BbGlnbkhvcml6b250YWxEaXN0cmlidXRlU3RhcnQ9cE50LGcuQWxpZ25Ib3Jpem9udGFsSnVzdGlmeUNlbnRlcj1oTnQsZy5BbGlnbkhvcml6b250YWxKdXN0aWZ5RW5kPWZOdCxnLkFsaWduSG9yaXpvbnRhbEp1c3RpZnlTdGFydD1tTnQsZy5BbGlnbkhvcml6b250YWxTcGFjZUFyb3VuZD1nTnQsZy5BbGlnbkhvcml6b250YWxTcGFjZUJldHdlZW49Yk50LGcuQWxpZ25KdXN0aWZ5PXROLGcuQWxpZ25MZWZ0PVpwLGcuQWxpZ25SaWdodD1lTixnLkFsaWduU3RhcnRIb3Jpem9udGFsPXZOdCxnLkFsaWduU3RhcnRWZXJ0aWNhbD14TnQsZy5BbGlnblZlcnRpY2FsRGlzdHJpYnV0ZUNlbnRlcj15TnQsZy5BbGlnblZlcnRpY2FsRGlzdHJpYnV0ZUVuZD13TnQsZy5BbGlnblZlcnRpY2FsRGlzdHJpYnV0ZVN0YXJ0PU1OdCxnLkFsaWduVmVydGljYWxKdXN0aWZ5Q2VudGVyPWtOdCxnLkFsaWduVmVydGljYWxKdXN0aWZ5RW5kPVNOdCxnLkFsaWduVmVydGljYWxKdXN0aWZ5U3RhcnQ9ek50LGcuQWxpZ25WZXJ0aWNhbFNwYWNlQXJvdW5kPUNOdCxnLkFsaWduVmVydGljYWxTcGFjZUJldHdlZW49VE50LGcuQW1idWxhbmNlPV9OdCxnLkFtcGVyc2FuZD1MTnQsZy5BbXBlcnNhbmRzPUFOdCxnLkFtcGhvcmE9RE50LGcuQW5jaG9yPUVOdCxnLkFuZ3J5PSROdCxnLkFubm95ZWQ9SU50LGcuQW50ZW5uYT1QTnQsZy5BbnZpbD1OTnQsZy5BcGVydHVyZT1GTnQsZy5BcHBXaW5kb3c9Uk50LGcuQXBwV2luZG93TWFjPU9OdCxnLkFwcGxlPUJOdCxnLkFyY2hpdmU9ak50LGcuQXJjaGl2ZVJlc3RvcmU9SE50LGcuQXJjaGl2ZVg9cU50LGcuQXJlYUNoYXJ0PURFLGcuQXJtY2hhaXI9Vk50LGcuQXJyb3dCaWdEb3duPVdOdCxnLkFycm93QmlnRG93bkRhc2g9VU50LGcuQXJyb3dCaWdMZWZ0PVlOdCxnLkFycm93QmlnTGVmdERhc2g9R050LGcuQXJyb3dCaWdSaWdodD1YTnQsZy5BcnJvd0JpZ1JpZ2h0RGFzaD1aTnQsZy5BcnJvd0JpZ1VwPUpOdCxnLkFycm93QmlnVXBEYXNoPVFOdCxnLkFycm93RG93bj1sRnQsZy5BcnJvd0Rvd24wMT1LTnQsZy5BcnJvd0Rvd24xMD1lRnQsZy5BcnJvd0Rvd25BWj1iRSxnLkFycm93RG93bkF6PWJFLGcuQXJyb3dEb3duQ2lyY2xlPVdFLGcuQXJyb3dEb3duRnJvbUxpbmU9dEZ0LGcuQXJyb3dEb3duTGVmdD1yRnQsZy5BcnJvd0Rvd25MZWZ0RnJvbUNpcmNsZT1ZRSxnLkFycm93RG93bkxlZnRGcm9tU3F1YXJlPW5QLGcuQXJyb3dEb3duTGVmdFNxdWFyZT1lUCxnLkFycm93RG93bk5hcnJvd1dpZGU9aUZ0LGcuQXJyb3dEb3duUmlnaHQ9YUZ0LGcuQXJyb3dEb3duUmlnaHRGcm9tQ2lyY2xlPVpFLGcuQXJyb3dEb3duUmlnaHRGcm9tU3F1YXJlPXNQLGcuQXJyb3dEb3duUmlnaHRTcXVhcmU9clAsZy5BcnJvd0Rvd25TcXVhcmU9aVAsZy5BcnJvd0Rvd25Ub0RvdD1uRnQsZy5BcnJvd0Rvd25Ub0xpbmU9b0Z0LGcuQXJyb3dEb3duVXA9c0Z0LGcuQXJyb3dEb3duV2lkZU5hcnJvdz12RSxnLkFycm93RG93blpBPXhFLGcuQXJyb3dEb3duWmE9eEUsZy5BcnJvd0xlZnQ9cEZ0LGcuQXJyb3dMZWZ0Q2lyY2xlPUdFLGcuQXJyb3dMZWZ0RnJvbUxpbmU9Y0Z0LGcuQXJyb3dMZWZ0UmlnaHQ9ZEZ0LGcuQXJyb3dMZWZ0U3F1YXJlPWFQLGcuQXJyb3dMZWZ0VG9MaW5lPXVGdCxnLkFycm93UmlnaHQ9Z0Z0LGcuQXJyb3dSaWdodENpcmNsZT1KRSxnLkFycm93UmlnaHRGcm9tTGluZT1oRnQsZy5BcnJvd1JpZ2h0TGVmdD1mRnQsZy5BcnJvd1JpZ2h0U3F1YXJlPWNQLGcuQXJyb3dSaWdodFRvTGluZT1tRnQsZy5BcnJvd1VwPUNGdCxnLkFycm93VXAwMT1iRnQsZy5BcnJvd1VwMTA9dkZ0LGcuQXJyb3dVcEFaPXlFLGcuQXJyb3dVcEF6PXlFLGcuQXJyb3dVcENpcmNsZT1LRSxnLkFycm93VXBEb3duPXhGdCxnLkFycm93VXBGcm9tRG90PXlGdCxnLkFycm93VXBGcm9tTGluZT13RnQsZy5BcnJvd1VwTGVmdD1NRnQsZy5BcnJvd1VwTGVmdEZyb21DaXJjbGU9WEUsZy5BcnJvd1VwTGVmdEZyb21TcXVhcmU9b1AsZy5BcnJvd1VwTGVmdFNxdWFyZT1kUCxnLkFycm93VXBOYXJyb3dXaWRlPXdFLGcuQXJyb3dVcFJpZ2h0PWtGdCxnLkFycm93VXBSaWdodEZyb21DaXJjbGU9UUUsZy5BcnJvd1VwUmlnaHRGcm9tU3F1YXJlPWxQLGcuQXJyb3dVcFJpZ2h0U3F1YXJlPXVQLGcuQXJyb3dVcFNxdWFyZT1wUCxnLkFycm93VXBUb0xpbmU9U0Z0LGcuQXJyb3dVcFdpZGVOYXJyb3c9ekZ0LGcuQXJyb3dVcFpBPU1FLGcuQXJyb3dVcFphPU1FLGcuQXJyb3dzVXBGcm9tTGluZT1URnQsZy5Bc3Rlcmlzaz1fRnQsZy5Bc3Rlcmlza1NxdWFyZT1oUCxnLkF0U2lnbj1MRnQsZy5BdG9tPUFGdCxnLkF1ZGlvTGluZXM9REZ0LGcuQXVkaW9XYXZlZm9ybT1FRnQsZy5Bd2FyZD0kRnQsZy5BeGU9SUZ0LGcuQXhpczNEPWtFLGcuQXhpczNkPWtFLGcuQmFieT1ORnQsZy5CYWNrcGFjaz1QRnQsZy5CYWRnZT1KRnQsZy5CYWRnZUFsZXJ0PUZGdCxnLkJhZGdlQ2VudD1PRnQsZy5CYWRnZUNoZWNrPVNFLGcuQmFkZ2VEb2xsYXJTaWduPUJGdCxnLkJhZGdlRXVybz1IRnQsZy5CYWRnZUhlbHA9ekUsZy5CYWRnZUluZGlhblJ1cGVlPVJGdCxnLkJhZGdlSW5mbz1xRnQsZy5CYWRnZUphcGFuZXNlWWVuPWpGdCxnLkJhZGdlTWludXM9VkZ0LGcuQmFkZ2VQZXJjZW50PVVGdCxnLkJhZGdlUGx1cz1XRnQsZy5CYWRnZVBvdW5kU3Rlcmxpbmc9R0Z0LGcuQmFkZ2VRdWVzdGlvbk1hcms9ekUsZy5CYWRnZVJ1c3NpYW5SdWJsZT1ZRnQsZy5CYWRnZVN3aXNzRnJhbmM9WkZ0LGcuQmFkZ2VUdXJraXNoTGlyYT1YRnQsZy5CYWRnZVg9UUZ0LGcuQmFnZ2FnZUNsYWltPUtGdCxnLkJhbGxvb249ZU90LGcuQmFuPXRPdCxnLkJhbmFuYT1yT3QsZy5CYW5kYWdlPWlPdCxnLkJhbmtub3RlPXNPdCxnLkJhbmtub3RlQXJyb3dEb3duPWFPdCxnLkJhbmtub3RlQXJyb3dVcD1uT3QsZy5CYW5rbm90ZVg9b090LGcuQmFyQ2hhcnQ9UkUsZy5CYXJDaGFydDI9QkUsZy5CYXJDaGFydDM9RkUsZy5CYXJDaGFydDQ9TkUsZy5CYXJDaGFydEJpZz1JRSxnLkJhckNoYXJ0SG9yaXpvbnRhbD1QRSxnLkJhckNoYXJ0SG9yaXpvbnRhbEJpZz1FRSxnLkJhcmNvZGU9bE90LGcuQmFycmVsPWNPdCxnLkJhc2VsaW5lPWRPdCxnLkJhdGg9dU90LGcuQmF0dGVyeT12T3QsZy5CYXR0ZXJ5Q2hhcmdpbmc9cE90LGcuQmF0dGVyeUZ1bGw9aE90LGcuQmF0dGVyeUxvdz1mT3QsZy5CYXR0ZXJ5TWVkaXVtPW1PdCxnLkJhdHRlcnlQbHVzPWdPdCxnLkJhdHRlcnlXYXJuaW5nPWJPdCxnLkJlYWtlcj14T3QsZy5CZWFuPXdPdCxnLkJlYW5PZmY9eU90LGcuQmVkPVNPdCxnLkJlZERvdWJsZT1NT3QsZy5CZWRTaW5nbGU9a090LGcuQmVlZj16T3QsZy5CZWVyPVRPdCxnLkJlZXJPZmY9Q090LGcuQmVsbD1JT3QsZy5CZWxsRG90PV9PdCxnLkJlbGxFbGVjdHJpYz1MT3QsZy5CZWxsTWludXM9QU90LGcuQmVsbE9mZj1ET3QsZy5CZWxsUGx1cz1FT3QsZy5CZWxsUmluZz0kT3QsZy5CZXR3ZWVuSG9yaXpvbmFsRW5kPUNFLGcuQmV0d2Vlbkhvcml6b25hbFN0YXJ0PVRFLGcuQmV0d2Vlbkhvcml6b250YWxFbmQ9Q0UsZy5CZXR3ZWVuSG9yaXpvbnRhbFN0YXJ0PVRFLGcuQmV0d2VlblZlcnRpY2FsRW5kPVBPdCxnLkJldHdlZW5WZXJ0aWNhbFN0YXJ0PU5PdCxnLkJpY2Vwc0ZsZXhlZD1GT3QsZy5CaWtlPU9PdCxnLkJpbmFyeT1ST3QsZy5CaW5vY3VsYXJzPUJPdCxnLkJpb2hhemFyZD1IT3QsZy5CaXJkPXFPdCxnLkJpcmRob3VzZT1qT3QsZy5CaXRjb2luPVZPdCxnLkJsZW5kPVVPdCxnLkJsaW5kcz1XT3QsZy5CbG9ja3M9WU90LGcuQmx1ZXRvb3RoPUpPdCxnLkJsdWV0b290aENvbm5lY3RlZD1HT3QsZy5CbHVldG9vdGhPZmY9Wk90LGcuQmx1ZXRvb3RoU2VhcmNoaW5nPVhPdCxnLkJvbGQ9UU90LGcuQm9sdD1lUnQsZy5Cb21iPUtPdCxnLkJvbmU9dFJ0LGcuQm9vaz1DUnQsZy5Cb29rQT1yUnQsZy5Cb29rQWxlcnQ9aVJ0LGcuQm9va0F1ZGlvPW5SdCxnLkJvb2tDaGVjaz1hUnQsZy5Cb29rQ29weT1vUnQsZy5Cb29rRGFzaGVkPV9FLGcuQm9va0Rvd249c1J0LGcuQm9va0hlYWRwaG9uZXM9bFJ0LGcuQm9va0hlYXJ0PWNSdCxnLkJvb2tJbWFnZT1kUnQsZy5Cb29rS2V5PXVSdCxnLkJvb2tMb2NrPXBSdCxnLkJvb2tNYXJrZWQ9aFJ0LGcuQm9va01pbnVzPWZSdCxnLkJvb2tPcGVuPWJSdCxnLkJvb2tPcGVuQ2hlY2s9bVJ0LGcuQm9va09wZW5UZXh0PWdSdCxnLkJvb2tQbHVzPXZSdCxnLkJvb2tTZWFyY2g9eFJ0LGcuQm9va1RlbXBsYXRlPV9FLGcuQm9va1RleHQ9eVJ0LGcuQm9va1R5cGU9d1J0LGcuQm9va1VwPWtSdCxnLkJvb2tVcDI9TVJ0LGcuQm9va1VzZXI9U1J0LGcuQm9va1g9elJ0LGcuQm9va21hcms9RFJ0LGcuQm9va21hcmtDaGVjaz1UUnQsZy5Cb29rbWFya01pbnVzPV9SdCxnLkJvb2ttYXJrUGx1cz1MUnQsZy5Cb29rbWFya1g9QVJ0LGcuQm9vbUJveD1FUnQsZy5Cb3Q9SVJ0LGcuQm90TWVzc2FnZVNxdWFyZT0kUnQsZy5Cb3RPZmY9UFJ0LGcuQm90dGxlV2luZT1OUnQsZy5Cb3dBcnJvdz1GUnQsZy5Cb3g9T1J0LGcuQm94U2VsZWN0PVNQLGcuQm94ZXM9UlJ0LGcuQnJhY2VzPUxFLGcuQnJhY2tldHM9QlJ0LGcuQnJhaW49alJ0LGcuQnJhaW5DaXJjdWl0PUhSdCxnLkJyYWluQ29nPXFSdCxnLkJyaWNrV2FsbD1HUnQsZy5Ccmlja1dhbGxGaXJlPVZSdCxnLkJyaWNrV2FsbFNoaWVsZD1VUnQsZy5CcmllZmNhc2U9WFJ0LGcuQnJpZWZjYXNlQnVzaW5lc3M9V1J0LGcuQnJpZWZjYXNlQ29udmV5b3JCZWx0PVlSdCxnLkJyaWVmY2FzZU1lZGljYWw9WlJ0LGcuQnJpbmdUb0Zyb250PVFSdCxnLkJydXNoPUtSdCxnLkJydXNoQ2xlYW5pbmc9SlJ0LGcuQnViYmxlcz1lQnQsZy5CdWc9aUJ0LGcuQnVnT2ZmPXRCdCxnLkJ1Z1BsYXk9ckJ0LGcuQnVpbGRpbmc9bkJ0LGcuQnVpbGRpbmcyPWFCdCxnLkJ1cz1zQnQsZy5CdXNGcm9udD1vQnQsZy5DYWJsZT1jQnQsZy5DYWJsZUNhcj1sQnQsZy5DYWtlPXVCdCxnLkNha2VTbGljZT1kQnQsZy5DYWxjdWxhdG9yPXBCdCxnLkNhbGVuZGFyPSRCdCxnLkNhbGVuZGFyMT1oQnQsZy5DYWxlbmRhckFycm93RG93bj1mQnQsZy5DYWxlbmRhckFycm93VXA9bUJ0LGcuQ2FsZW5kYXJDaGVjaz1iQnQsZy5DYWxlbmRhckNoZWNrMj1nQnQsZy5DYWxlbmRhckNsb2NrPXZCdCxnLkNhbGVuZGFyQ29nPXhCdCxnLkNhbGVuZGFyRGF5cz15QnQsZy5DYWxlbmRhckZvbGQ9d0J0LGcuQ2FsZW5kYXJIZWFydD1NQnQsZy5DYWxlbmRhck1pbnVzPVNCdCxnLkNhbGVuZGFyTWludXMyPWtCdCxnLkNhbGVuZGFyT2ZmPXpCdCxnLkNhbGVuZGFyUGx1cz1UQnQsZy5DYWxlbmRhclBsdXMyPUNCdCxnLkNhbGVuZGFyUmFuZ2U9X0J0LGcuQ2FsZW5kYXJTZWFyY2g9TEJ0LGcuQ2FsZW5kYXJTeW5jPUFCdCxnLkNhbGVuZGFyWD1FQnQsZy5DYWxlbmRhclgyPURCdCxnLkNhbGVuZGFycz1JQnQsZy5DYW1lcmE9TkJ0LGcuQ2FtZXJhT2ZmPVBCdCxnLkNhbmRsZXN0aWNrQ2hhcnQ9JEUsZy5DYW5keT1SQnQsZy5DYW5keUNhbmU9RkJ0LGcuQ2FuZHlPZmY9T0J0LGcuQ2FubmFiaXM9SEJ0LGcuQ2FubmFiaXNPZmY9QkJ0LGcuQ2FwdGlvbnM9QUUsZy5DYXB0aW9uc09mZj1xQnQsZy5DYXI9VUJ0LGcuQ2FyRnJvbnQ9akJ0LGcuQ2FyVGF4aUZyb250PVZCdCxnLkNhcmF2YW49V0J0LGcuQ2FyZFNpbT1HQnQsZy5DYXJyb3Q9WUJ0LGcuQ2FzZUxvd2VyPVpCdCxnLkNhc2VTZW5zaXRpdmU9WEJ0LGcuQ2FzZVVwcGVyPVFCdCxnLkNhc3NldHRlVGFwZT1KQnQsZy5DYXN0PUtCdCxnLkNhc3RsZT1lSHQsZy5DYXQ9dEh0LGcuQ2N0dj1ySHQsZy5DaGFydEFyZWE9REUsZy5DaGFydEJhcj1QRSxnLkNoYXJ0QmFyQmlnPUVFLGcuQ2hhcnRCYXJEZWNyZWFzaW5nPWlIdCxnLkNoYXJ0QmFySW5jcmVhc2luZz1hSHQsZy5DaGFydEJhclN0YWNrZWQ9bkh0LGcuQ2hhcnRDYW5kbGVzdGljaz0kRSxnLkNoYXJ0Q29sdW1uPUZFLGcuQ2hhcnRDb2x1bW5CaWc9SUUsZy5DaGFydENvbHVtbkRlY3JlYXNpbmc9b0h0LGcuQ2hhcnRDb2x1bW5JbmNyZWFzaW5nPU5FLGcuQ2hhcnRDb2x1bW5TdGFja2VkPXNIdCxnLkNoYXJ0R2FudHQ9bEh0LGcuQ2hhcnRMaW5lPU9FLGcuQ2hhcnROZXR3b3JrPWNIdCxnLkNoYXJ0Tm9BeGVzQ29sdW1uPUJFLGcuQ2hhcnROb0F4ZXNDb2x1bW5EZWNyZWFzaW5nPWRIdCxnLkNoYXJ0Tm9BeGVzQ29sdW1uSW5jcmVhc2luZz1SRSxnLkNoYXJ0Tm9BeGVzQ29tYmluZWQ9dUh0LGcuQ2hhcnROb0F4ZXNHYW50dD1IRSxnLkNoYXJ0UGllPXFFLGcuQ2hhcnRTY2F0dGVyPWpFLGcuQ2hhcnRTcGxpbmU9cEh0LGcuQ2hlY2s9Ykh0LGcuQ2hlY2tDaGVjaz1mSHQsZy5DaGVja0NpcmNsZT1lJCxnLkNoZWNrQ2lyY2xlMj10JCxnLkNoZWNrTGluZT1oSHQsZy5DaGVja1NxdWFyZT1tUCxnLkNoZWNrU3F1YXJlMj1nUCxnLkNoZWZIYXQ9bUh0LGcuQ2hlcnJ5PWdIdCxnLkNoZXNzQmlzaG9wPXZIdCxnLkNoZXNzS2luZz14SHQsZy5DaGVzc0tuaWdodD1NSHQsZy5DaGVzc1Bhd249eUh0LGcuQ2hlc3NRdWVlbj13SHQsZy5DaGVzc1Jvb2s9a0h0LGcuQ2hldnJvbkRvd249U0h0LGcuQ2hldnJvbkRvd25DaXJjbGU9ciQsZy5DaGV2cm9uRG93blNxdWFyZT1iUCxnLkNoZXZyb25GaXJzdD16SHQsZy5DaGV2cm9uTGFzdD1DSHQsZy5DaGV2cm9uTGVmdD1USHQsZy5DaGV2cm9uTGVmdENpcmNsZT1pJCxnLkNoZXZyb25MZWZ0U3F1YXJlPXZQLGcuQ2hldnJvblJpZ2h0PV9IdCxnLkNoZXZyb25SaWdodENpcmNsZT1hJCxnLkNoZXZyb25SaWdodFNxdWFyZT14UCxnLkNoZXZyb25VcD1MSHQsZy5DaGV2cm9uVXBDaXJjbGU9biQsZy5DaGV2cm9uVXBTcXVhcmU9eVAsZy5DaGV2cm9uc0Rvd249REh0LGcuQ2hldnJvbnNEb3duVXA9QUh0LGcuQ2hldnJvbnNMZWZ0PUlIdCxnLkNoZXZyb25zTGVmdFJpZ2h0PSRIdCxnLkNoZXZyb25zTGVmdFJpZ2h0RWxsaXBzaXM9RUh0LGcuQ2hldnJvbnNSaWdodD1OSHQsZy5DaGV2cm9uc1JpZ2h0TGVmdD1QSHQsZy5DaGV2cm9uc1VwPUZIdCxnLkNoZXZyb25zVXBEb3duPU9IdCxnLkNocm9tZT1WRSxnLkNocm9taXVtPVZFLGcuQ2h1cmNoPUJIdCxnLkNpZ2FyZXR0ZT1ISHQsZy5DaWdhcmV0dGVPZmY9Ukh0LGcuQ2lyY2xlPXJxdCxnLkNpcmNsZUFsZXJ0PVVFLGcuQ2lyY2xlQXJyb3dEb3duPVdFLGcuQ2lyY2xlQXJyb3dMZWZ0PUdFLGcuQ2lyY2xlQXJyb3dPdXREb3duTGVmdD1ZRSxnLkNpcmNsZUFycm93T3V0RG93blJpZ2h0PVpFLGcuQ2lyY2xlQXJyb3dPdXRVcExlZnQ9WEUsZy5DaXJjbGVBcnJvd091dFVwUmlnaHQ9UUUsZy5DaXJjbGVBcnJvd1JpZ2h0PUpFLGcuQ2lyY2xlQXJyb3dVcD1LRSxnLkNpcmNsZUNoZWNrPXQkLGcuQ2lyY2xlQ2hlY2tCaWc9ZSQsZy5DaXJjbGVDaGV2cm9uRG93bj1yJCxnLkNpcmNsZUNoZXZyb25MZWZ0PWkkLGcuQ2lyY2xlQ2hldnJvblJpZ2h0PWEkLGcuQ2lyY2xlQ2hldnJvblVwPW4kLGcuQ2lyY2xlRGFzaGVkPXFIdCxnLkNpcmNsZURpdmlkZT1vJCxnLkNpcmNsZURvbGxhclNpZ249akh0LGcuQ2lyY2xlRG90PVVIdCxnLkNpcmNsZURvdERhc2hlZD1WSHQsZy5DaXJjbGVFbGxpcHNpcz1XSHQsZy5DaXJjbGVFcXVhbD1HSHQsZy5DaXJjbGVGYWRpbmdBcnJvd1VwPVlIdCxnLkNpcmNsZUZhZGluZ1BsdXM9Wkh0LGcuQ2lyY2xlR2F1Z2U9cyQsZy5DaXJjbGVIZWxwPXFwLGcuQ2lyY2xlTWludXM9bCQsZy5DaXJjbGVPZmY9WEh0LGcuQ2lyY2xlUGFya2luZz1kJCxnLkNpcmNsZVBhcmtpbmdPZmY9YyQsZy5DaXJjbGVQYXVzZT11JCxnLkNpcmNsZVBlcmNlbnQ9cCQsZy5DaXJjbGVQaWxlPVFIdCxnLkNpcmNsZVBsYXk9aCQsZy5DaXJjbGVQbHVzPWYkLGcuQ2lyY2xlUG91bmRTdGVybGluZz1KSHQsZy5DaXJjbGVQb3dlcj1tJCxnLkNpcmNsZVF1ZXN0aW9uTWFyaz1xcCxnLkNpcmNsZVNsYXNoPUtIdCxnLkNpcmNsZVNsYXNoMj1nJCxnLkNpcmNsZVNsYXNoZWQ9ZyQsZy5DaXJjbGVTbWFsbD1lcXQsZy5DaXJjbGVTdGFyPXRxdCxnLkNpcmNsZVN0b3A9YiQsZy5DaXJjbGVVc2VyPXgkLGcuQ2lyY2xlVXNlclJvdW5kPXYkLGcuQ2lyY2xlWD15JCxnLkNpcmN1aXRCb2FyZD1pcXQsZy5DaXRydXM9YXF0LGcuQ2xhcHBlcmJvYXJkPW5xdCxnLkNsaXBib2FyZD1ncXQsZy5DbGlwYm9hcmRDaGVjaz1vcXQsZy5DbGlwYm9hcmRDbG9jaz1zcXQsZy5DbGlwYm9hcmRDb3B5PWxxdCxnLkNsaXBib2FyZEVkaXQ9TSQsZy5DbGlwYm9hcmRMaXN0PWNxdCxnLkNsaXBib2FyZE1pbnVzPWRxdCxnLkNsaXBib2FyZFBhc3RlPXVxdCxnLkNsaXBib2FyZFBlbj1NJCxnLkNsaXBib2FyZFBlbkxpbmU9dyQsZy5DbGlwYm9hcmRQbHVzPXBxdCxnLkNsaXBib2FyZFNpZ25hdHVyZT13JCxnLkNsaXBib2FyZFR5cGU9aHF0LGcuQ2xpcGJvYXJkWD1mcXQsZy5DbG9jaz1JcXQsZy5DbG9jazE9bXF0LGcuQ2xvY2sxMD1icXQsZy5DbG9jazExPXZxdCxnLkNsb2NrMTI9eHF0LGcuQ2xvY2syPXlxdCxnLkNsb2NrMz13cXQsZy5DbG9jazQ9TXF0LGcuQ2xvY2s1PWtxdCxnLkNsb2NrNj1TcXQsZy5DbG9jazc9enF0LGcuQ2xvY2s4PUNxdCxnLkNsb2NrOT1UcXQsZy5DbG9ja0FsZXJ0PUxxdCxnLkNsb2NrQXJyb3dEb3duPV9xdCxnLkNsb2NrQXJyb3dVcD1BcXQsZy5DbG9ja0NoZWNrPURxdCxnLkNsb2NrRmFkaW5nPUVxdCxnLkNsb2NrUGx1cz0kcXQsZy5DbG9zZWRDYXB0aW9uPVBxdCxnLkNsb3VkPUtxdCxnLkNsb3VkQWxlcnQ9TnF0LGcuQ2xvdWRCYWNrdXA9RnF0LGcuQ2xvdWRDaGVjaz1PcXQsZy5DbG91ZENvZz1ScXQsZy5DbG91ZERvd25sb2FkPWskLGcuQ2xvdWREcml6emxlPUJxdCxnLkNsb3VkRm9nPUhxdCxnLkNsb3VkSGFpbD1xcXQsZy5DbG91ZExpZ2h0bmluZz1WcXQsZy5DbG91ZE1vb249VXF0LGcuQ2xvdWRNb29uUmFpbj1qcXQsZy5DbG91ZE9mZj1XcXQsZy5DbG91ZFJhaW49WXF0LGcuQ2xvdWRSYWluV2luZD1HcXQsZy5DbG91ZFNub3c9WnF0LGcuQ2xvdWRTdW49UXF0LGcuQ2xvdWRTdW5SYWluPVhxdCxnLkNsb3VkU3luYz1KcXQsZy5DbG91ZFVwbG9hZD1TJCxnLkNsb3VkeT1lanQsZy5DbG92ZXI9dGp0LGcuQ2x1Yj1yanQsZy5Db2RlPWlqdCxnLkNvZGUyPXokLGcuQ29kZVNxdWFyZT13UCxnLkNvZGVYbWw9eiQsZy5Db2RlcGVuPWFqdCxnLkNvZGVzYW5kYm94PW5qdCxnLkNvZmZlZT1vanQsZy5Db2c9c2p0LGcuQ29pbnM9bGp0LGcuQ29sdW1ucz1DJCxnLkNvbHVtbnMyPUMkLGcuQ29sdW1uczM9VCQsZy5Db2x1bW5zM0NvZz1qcCxnLkNvbHVtbnM0PWNqdCxnLkNvbHVtbnNTZXR0aW5ncz1qcCxnLkNvbWJpbmU9ZGp0LGcuQ29tbWFuZD11anQsZy5Db21wYXNzPXBqdCxnLkNvbXBvbmVudD1oanQsZy5Db21wdXRlcj1manQsZy5Db25jaWVyZ2VCZWxsPW1qdCxnLkNvbmU9Z2p0LGcuQ29uc3RydWN0aW9uPWJqdCxnLkNvbnRhY3Q9dmp0LGcuQ29udGFjdDI9XyQsZy5Db250YWN0Um91bmQ9XyQsZy5Db250YWluZXI9eGp0LGcuQ29udHJhc3Q9d2p0LGcuQ29va2llPXlqdCxnLkNvb2tpbmdQb3Q9TWp0LGcuQ29weT1fanQsZy5Db3B5Q2hlY2s9a2p0LGcuQ29weU1pbnVzPVNqdCxnLkNvcHlQbHVzPXpqdCxnLkNvcHlTbGFzaD1DanQsZy5Db3B5WD1UanQsZy5Db3B5bGVmdD1ManQsZy5Db3B5cmlnaHQ9QWp0LGcuQ29ybmVyRG93bkxlZnQ9RGp0LGcuQ29ybmVyRG93blJpZ2h0PUVqdCxnLkNvcm5lckxlZnREb3duPSRqdCxnLkNvcm5lckxlZnRVcD1JanQsZy5Db3JuZXJSaWdodERvd249UGp0LGcuQ29ybmVyUmlnaHRVcD1OanQsZy5Db3JuZXJVcExlZnQ9Rmp0LGcuQ29ybmVyVXBSaWdodD1PanQsZy5DcHU9Ump0LGcuQ3JlYXRpdmVDb21tb25zPUJqdCxnLkNyZWRpdENhcmQ9SGp0LGcuQ3JvaXNzYW50PXFqdCxnLkNyb3A9amp0LGcuQ3Jvc3M9Vmp0LGcuQ3Jvc3NoYWlyPVVqdCxnLkNyb3duPVdqdCxnLkN1Ym9pZD1HanQsZy5DdXBTb2RhPVlqdCxnLkN1cmx5QnJhY2VzPUxFLGcuQ3VycmVuY3k9WGp0LGcuQ3lsaW5kZXI9Wmp0LGcuRGFtPUpqdCxnLkRhdGFiYXNlPXRWdCxnLkRhdGFiYXNlQmFja3VwPVFqdCxnLkRhdGFiYXNlU2VhcmNoPUtqdCxnLkRhdGFiYXNlWmFwPWVWdCxnLkRlY2ltYWxzQXJyb3dMZWZ0PXJWdCxnLkRlY2ltYWxzQXJyb3dSaWdodD1pVnQsZy5EZWxldGU9YVZ0LGcuRGVzc2VydD1uVnQsZy5EaWFtZXRlcj1vVnQsZy5EaWFtb25kPWNWdCxnLkRpYW1vbmRNaW51cz1zVnQsZy5EaWFtb25kUGVyY2VudD1MJCxnLkRpYW1vbmRQbHVzPWxWdCxnLkRpY2UxPWRWdCxnLkRpY2UyPXVWdCxnLkRpY2UzPXBWdCxnLkRpY2U0PWhWdCxnLkRpY2U1PWZWdCxnLkRpY2U2PW1WdCxnLkRpY2VzPWdWdCxnLkRpZmY9YlZ0LGcuRGlzYz13VnQsZy5EaXNjMj12VnQsZy5EaXNjMz14VnQsZy5EaXNjQWxidW09eVZ0LGcuRGl2aWRlPU1WdCxnLkRpdmlkZUNpcmNsZT1vJCxnLkRpdmlkZVNxdWFyZT16UCxnLkRuYT1TVnQsZy5EbmFPZmY9a1Z0LGcuRG9jaz1UVnQsZy5Eb2c9elZ0LGcuRG9sbGFyU2lnbj1DVnQsZy5Eb251dD1fVnQsZy5Eb29yQ2xvc2VkPUFWdCxnLkRvb3JDbG9zZWRMb2NrZWQ9TFZ0LGcuRG9vck9wZW49RFZ0LGcuRG90PUVWdCxnLkRvdFNxdWFyZT1DUCxnLkRvd25sb2FkPSRWdCxnLkRvd25sb2FkQ2xvdWQ9ayQsZy5EcmFmdGluZ0NvbXBhc3M9SVZ0LGcuRHJhbWE9TlZ0LGcuRHJpYmJibGU9UFZ0LGcuRHJpbGw9RlZ0LGcuRHJvbmU9T1Z0LGcuRHJvcGxldD1CVnQsZy5Ecm9wbGV0T2ZmPVJWdCxnLkRyb3BsZXRzPUhWdCxnLkRydW09cVZ0LGcuRHJ1bXN0aWNrPWpWdCxnLkR1bWJiZWxsPVZWdCxnLkVhcj1HVnQsZy5FYXJPZmY9VVZ0LGcuRWFydGg9QSQsZy5FYXJ0aExvY2s9V1Z0LGcuRWNsaXBzZT1ZVnQsZy5FZGl0PUU0LGcuRWRpdDI9cUksZy5FZGl0Mz1ISSxnLkVnZz1RVnQsZy5FZ2dGcmllZD1aVnQsZy5FZ2dPZmY9WFZ0LGcuRWxsaXBzaXM9RSQsZy5FbGxpcHNpc1ZlcnRpY2FsPUQkLGcuRXF1YWw9ZVV0LGcuRXF1YWxBcHByb3hpbWF0ZWx5PUpWdCxnLkVxdWFsTm90PUtWdCxnLkVxdWFsU3F1YXJlPVRQLGcuRXJhc2VyPXJVdCxnLkV0aGVybmV0UG9ydD10VXQsZy5FdXJvPWlVdCxnLkV2Q2hhcmdlcj1hVXQsZy5FeHBhbmQ9blV0LGcuRXh0ZXJuYWxMaW5rPW9VdCxnLkV5ZT1sVXQsZy5FeWVDbG9zZWQ9c1V0LGcuRXllT2ZmPWNVdCxnLkZhY2Vib29rPWRVdCxnLkZhY3Rvcnk9dVV0LGcuRmFuPXBVdCxnLkZhc3RGb3J3YXJkPWhVdCxnLkZlYXRoZXI9ZlV0LGcuRmVuY2U9bVV0LGcuRmVycmlzV2hlZWw9Z1V0LGcuRmlnbWE9YlV0LGcuRmlsZT1XVXQsZy5GaWxlQXJjaGl2ZT12VXQsZy5GaWxlQXVkaW89VnAsZy5GaWxlQXVkaW8yPVZwLGcuRmlsZUF4aXMzRD0kJCxnLkZpbGVBeGlzM2Q9JCQsZy5GaWxlQmFkZ2U9SSQsZy5GaWxlQmFkZ2UyPUkkLGcuRmlsZUJhckNoYXJ0PUYkLGcuRmlsZUJhckNoYXJ0Mj1PJCxnLkZpbGVCb3g9eFV0LGcuRmlsZUJyYWNlcz1OJCxnLkZpbGVCcmFjZXNDb3JuZXI9UCQsZy5GaWxlQ2hhcnRDb2x1bW49TyQsZy5GaWxlQ2hhcnRDb2x1bW5JbmNyZWFzaW5nPUYkLGcuRmlsZUNoYXJ0TGluZT1SJCxnLkZpbGVDaGFydFBpZT1CJCxnLkZpbGVDaGVjaz13VXQsZy5GaWxlQ2hlY2syPUgkLGcuRmlsZUNoZWNrQ29ybmVyPUgkLGcuRmlsZUNsb2NrPXlVdCxnLkZpbGVDb2RlPU1VdCxnLkZpbGVDb2RlMj1xJCxnLkZpbGVDb2RlQ29ybmVyPXEkLGcuRmlsZUNvZz1qJCxnLkZpbGVDb2cyPWokLGcuRmlsZURpZmY9a1V0LGcuRmlsZURpZ2l0PVNVdCxnLkZpbGVEb3duPXpVdCxnLkZpbGVFZGl0PVokLGcuRmlsZUV4Y2xhbWF0aW9uUG9pbnQ9ViQsZy5GaWxlSGVhZHBob25lPVZwLGcuRmlsZUhlYXJ0PUNVdCxnLkZpbGVJbWFnZT1UVXQsZy5GaWxlSW5wdXQ9X1V0LGcuRmlsZUpzb249TiQsZy5GaWxlSnNvbjI9UCQsZy5GaWxlS2V5PVUkLGcuRmlsZUtleTI9VSQsZy5GaWxlTGluZUNoYXJ0PVIkLGcuRmlsZUxvY2s9VyQsZy5GaWxlTG9jazI9VyQsZy5GaWxlTWludXM9TFV0LGcuRmlsZU1pbnVzMj1HJCxnLkZpbGVNaW51c0Nvcm5lcj1HJCxnLkZpbGVNdXNpYz1BVXQsZy5GaWxlT3V0cHV0PURVdCxnLkZpbGVQZW49WiQsZy5GaWxlUGVuTGluZT1ZJCxnLkZpbGVQaWVDaGFydD1CJCxnLkZpbGVQbGF5PVgkLGcuRmlsZVBsdXM9RVV0LGcuRmlsZVBsdXMyPVEkLGcuRmlsZVBsdXNDb3JuZXI9USQsZy5GaWxlUXVlc3Rpb249SiQsZy5GaWxlUXVlc3Rpb25NYXJrPUokLGcuRmlsZVNjYW49JFV0LGcuRmlsZVNlYXJjaD1JVXQsZy5GaWxlU2VhcmNoMj1LJCxnLkZpbGVTZWFyY2hDb3JuZXI9SyQsZy5GaWxlU2lnbmFsPWVJLGcuRmlsZVNpZ25hdHVyZT1ZJCxnLkZpbGVTbGlkZXJzPVBVdCxnLkZpbGVTcHJlYWRzaGVldD1OVXQsZy5GaWxlU3RhY2s9RlV0LGcuRmlsZVN5bWxpbms9T1V0LGcuRmlsZVRlcm1pbmFsPVJVdCxnLkZpbGVUZXh0PUJVdCxnLkZpbGVUeXBlPUhVdCxnLkZpbGVUeXBlMj10SSxnLkZpbGVUeXBlQ29ybmVyPXRJLGcuRmlsZVVwPXFVdCxnLkZpbGVVc2VyPWpVdCxnLkZpbGVWaWRlbz1YJCxnLkZpbGVWaWRlbzI9ckksZy5GaWxlVmlkZW9DYW1lcmE9ckksZy5GaWxlVm9sdW1lPVZVdCxnLkZpbGVWb2x1bWUyPWVJLGcuRmlsZVdhcm5pbmc9ViQsZy5GaWxlWD1VVXQsZy5GaWxlWDI9aUksZy5GaWxlWENvcm5lcj1pSSxnLkZpbGVzPUdVdCxnLkZpbG09WVV0LGcuRmlsdGVyPWxJLGcuRmlsdGVyWD1zSSxnLkZpbmdlcnByaW50PWFJLGcuRmluZ2VycHJpbnRQYXR0ZXJuPWFJLGcuRmlyZUV4dGluZ3Vpc2hlcj1aVXQsZy5GaXNoPUpVdCxnLkZpc2hPZmY9WFV0LGcuRmlzaFN5bWJvbD1RVXQsZy5GaXNoaW5nSG9vaz1LVXQsZy5GbGFnPWlXdCxnLkZsYWdPZmY9ZVd0LGcuRmxhZ1RyaWFuZ2xlTGVmdD10V3QsZy5GbGFnVHJpYW5nbGVSaWdodD1yV3QsZy5GbGFtZT1uV3QsZy5GbGFtZUtpbmRsaW5nPWFXdCxnLkZsYXNobGlnaHQ9c1d0LGcuRmxhc2hsaWdodE9mZj1vV3QsZy5GbGFza0NvbmljYWw9Y1d0LGcuRmxhc2tDb25pY2FsT2ZmPWxXdCxnLkZsYXNrUm91bmQ9ZFd0LGcuRmxpcEhvcml6b250YWw9cFd0LGcuRmxpcEhvcml6b250YWwyPXVXdCxnLkZsaXBWZXJ0aWNhbD1mV3QsZy5GbGlwVmVydGljYWwyPWhXdCxnLkZsb3dlcj1nV3QsZy5GbG93ZXIyPW1XdCxnLkZvY3VzPWJXdCxnLkZvbGRIb3Jpem9udGFsPXZXdCxnLkZvbGRWZXJ0aWNhbD14V3QsZy5Gb2xkZXI9R1d0LGcuRm9sZGVyQXJjaGl2ZT13V3QsZy5Gb2xkZXJDaGVjaz15V3QsZy5Gb2xkZXJDbG9jaz1NV3QsZy5Gb2xkZXJDbG9zZWQ9a1d0LGcuRm9sZGVyQ29kZT1TV3QsZy5Gb2xkZXJDb2c9bkksZy5Gb2xkZXJDb2cyPW5JLGcuRm9sZGVyRG90PXpXdCxnLkZvbGRlckRvd249Q1d0LGcuRm9sZGVyRWRpdD1vSSxnLkZvbGRlckdpdD1fV3QsZy5Gb2xkZXJHaXQyPVRXdCxnLkZvbGRlckhlYXJ0PUxXdCxnLkZvbGRlcklucHV0PUFXdCxnLkZvbGRlckthbmJhbj1EV3QsZy5Gb2xkZXJLZXk9RVd0LGcuRm9sZGVyTG9jaz0kV3QsZy5Gb2xkZXJNaW51cz1JV3QsZy5Gb2xkZXJPcGVuPU5XdCxnLkZvbGRlck9wZW5Eb3Q9UFd0LGcuRm9sZGVyT3V0cHV0PUZXdCxnLkZvbGRlclBlbj1vSSxnLkZvbGRlclBsdXM9T1d0LGcuRm9sZGVyUm9vdD1SV3QsZy5Gb2xkZXJTZWFyY2g9SFd0LGcuRm9sZGVyU2VhcmNoMj1CV3QsZy5Gb2xkZXJTeW1saW5rPXFXdCxnLkZvbGRlclN5bmM9ald0LGcuRm9sZGVyVHJlZT1WV3QsZy5Gb2xkZXJVcD1VV3QsZy5Gb2xkZXJYPVdXdCxnLkZvbGRlcnM9WVd0LGcuRm9vdHByaW50cz1YV3QsZy5Gb3JrS25pZmU9dk4sZy5Gb3JrS25pZmVDcm9zc2VkPWJOLGcuRm9ya2xpZnQ9Wld0LGcuRm9ybT1RV3QsZy5Gb3JtSW5wdXQ9VkksZy5Gb3J3YXJkPUpXdCxnLkZyYW1lPUtXdCxnLkZyYW1lcj1lR3QsZy5Gcm93bj10R3QsZy5GdWVsPXJHdCxnLkZ1bGxzY3JlZW49aUd0LGcuRnVuY3Rpb25TcXVhcmU9X1AsZy5GdW5uZWw9bEksZy5GdW5uZWxQbHVzPWFHdCxnLkZ1bm5lbFg9c0ksZy5HYWxsZXJ5SG9yaXpvbnRhbD1vR3QsZy5HYWxsZXJ5SG9yaXpvbnRhbEVuZD1uR3QsZy5HYWxsZXJ5VGh1bWJuYWlscz1zR3QsZy5HYWxsZXJ5VmVydGljYWw9Y0d0LGcuR2FsbGVyeVZlcnRpY2FsRW5kPWxHdCxnLkdhbWVwYWQ9cEd0LGcuR2FtZXBhZDI9ZEd0LGcuR2FtZXBhZERpcmVjdGlvbmFsPXVHdCxnLkdhbnR0Q2hhcnQ9SEUsZy5HYW50dENoYXJ0U3F1YXJlPVlwLGcuR2F1Z2U9aEd0LGcuR2F1Z2VDaXJjbGU9cyQsZy5HYXZlbD1mR3QsZy5HZW09bUd0LGcuR2VvcmdpYW5MYXJpPWdHdCxnLkdob3N0PWJHdCxnLkdpZnQ9eUd0LGcuR2l0QnJhbmNoPXdHdCxnLkdpdEJyYW5jaE1pbnVzPXZHdCxnLkdpdEJyYW5jaFBsdXM9eEd0LGcuR2l0Q29tbWl0PWNJLGcuR2l0Q29tbWl0SG9yaXpvbnRhbD1jSSxnLkdpdENvbW1pdFZlcnRpY2FsPU1HdCxnLkdpdENvbXBhcmU9U0d0LGcuR2l0Q29tcGFyZUFycm93cz1rR3QsZy5HaXRGb3JrPXpHdCxnLkdpdEdyYXBoPUNHdCxnLkdpdE1lcmdlPVRHdCxnLkdpdFB1bGxSZXF1ZXN0PSRHdCxnLkdpdFB1bGxSZXF1ZXN0QXJyb3c9X0d0LGcuR2l0UHVsbFJlcXVlc3RDbG9zZWQ9TEd0LGcuR2l0UHVsbFJlcXVlc3RDcmVhdGU9REd0LGcuR2l0UHVsbFJlcXVlc3RDcmVhdGVBcnJvdz1BR3QsZy5HaXRQdWxsUmVxdWVzdERyYWZ0PUVHdCxnLkdpdGh1Yj1JR3QsZy5HaXRsYWI9UEd0LGcuR2xhc3NXYXRlcj1OR3QsZy5HbGFzc2VzPUZHdCxnLkdsb2JlPVJHdCxnLkdsb2JlMj1BJCxnLkdsb2JlTG9jaz1PR3QsZy5HbG9iZVg9Qkd0LGcuR29hbD1IR3QsZy5HcHU9cUd0LGcuR3JhYj1mSSxnLkdyYWR1YXRpb25DYXA9akd0LGcuR3JhcGU9Vkd0LGcuR3JpZD1VcCxnLkdyaWQyWDI9aEksZy5HcmlkMlgyQ2hlY2s9ZEksZy5HcmlkMlgyUGx1cz11SSxnLkdyaWQyWDJYPXBJLGcuR3JpZDJ4Mj1oSSxnLkdyaWQyeDJDaGVjaz1kSSxnLkdyaWQyeDJQbHVzPXVJLGcuR3JpZDJ4Mlg9cEksZy5HcmlkM1gzPVVwLGcuR3JpZDN4Mj1VR3QsZy5HcmlkM3gzPVVwLGcuR3JpcD1ZR3QsZy5HcmlwSG9yaXpvbnRhbD1XR3QsZy5HcmlwVmVydGljYWw9R0d0LGcuR3JvdXA9Wkd0LGcuR3VpdGFyPVhHdCxnLkhhbT1RR3QsZy5IYW1idXJnZXI9Skd0LGcuSGFtbWVyPUtHdCxnLkhhbmQ9bll0LGcuSGFuZENvaW5zPWVZdCxnLkhhbmRGaXN0PXRZdCxnLkhhbmRHcmFiPWZJLGcuSGFuZEhlYXJ0PXJZdCxnLkhhbmRIZWxwaW5nPW1JLGcuSGFuZE1ldGFsPWlZdCxnLkhhbmRQbGF0dGVyPWFZdCxnLkhhbmRiYWc9b1l0LGcuSGFuZHNoYWtlPXNZdCxnLkhhcmREcml2ZT1kWXQsZy5IYXJkRHJpdmVEb3dubG9hZD1sWXQsZy5IYXJkRHJpdmVVcGxvYWQ9Y1l0LGcuSGFyZEhhdD11WXQsZy5IYXNoPXBZdCxnLkhhdEdsYXNzZXM9aFl0LGcuSGF6ZT1mWXQsZy5IZD1tWXQsZy5IZG1pUG9ydD1nWXQsZy5IZWFkaW5nPWtZdCxnLkhlYWRpbmcxPWJZdCxnLkhlYWRpbmcyPXZZdCxnLkhlYWRpbmczPXhZdCxnLkhlYWRpbmc0PXlZdCxnLkhlYWRpbmc1PXdZdCxnLkhlYWRpbmc2PU1ZdCxnLkhlYWRwaG9uZU9mZj1TWXQsZy5IZWFkcGhvbmVzPXpZdCxnLkhlYWRzZXQ9VFl0LGcuSGVhcnQ9JFl0LGcuSGVhcnRDcmFjaz1DWXQsZy5IZWFydEhhbmRzaGFrZT1fWXQsZy5IZWFydE1pbnVzPUxZdCxnLkhlYXJ0T2ZmPUFZdCxnLkhlYXJ0UGx1cz1FWXQsZy5IZWFydFB1bHNlPURZdCxnLkhlYXRlcj1JWXQsZy5IZWxpY29wdGVyPVBZdCxnLkhlbHBDaXJjbGU9cXAsZy5IZWxwaW5nSGFuZD1tSSxnLkhleGFnb249Tll0LGcuSGlnaGxpZ2h0ZXI9Rll0LGcuSGlzdG9yeT1PWXQsZy5Ib21lPWdJLGcuSG9wPVJZdCxnLkhvcE9mZj1CWXQsZy5Ib3NwaXRhbD1IWXQsZy5Ib3RlbD1xWXQsZy5Ib3VyZ2xhc3M9all0LGcuSG91c2U9Z0ksZy5Ib3VzZUhlYXJ0PVZZdCxnLkhvdXNlUGx1Zz1VWXQsZy5Ib3VzZVBsdXM9V1l0LGcuSG91c2VXaWZpPUdZdCxnLkljZUNyZWFtPXZJLGcuSWNlQ3JlYW0yPWJJLGcuSWNlQ3JlYW1Cb3dsPWJJLGcuSWNlQ3JlYW1Db25lPXZJLGcuSWRDYXJkPVpZdCxnLklkQ2FyZExhbnlhcmQ9WVl0LGcuSW1hZ2U9clp0LGcuSW1hZ2VEb3duPVhZdCxnLkltYWdlTWludXM9UVl0LGcuSW1hZ2VPZmY9Sll0LGcuSW1hZ2VQbGF5PUtZdCxnLkltYWdlUGx1cz1lWnQsZy5JbWFnZVVwPXRadCxnLkltYWdlVXBzY2FsZT1pWnQsZy5JbWFnZXM9YVp0LGcuSW1wb3J0PW5adCxnLkluYm94PW9adCxnLkluZGVudD1HcCxnLkluZGVudERlY3JlYXNlPVdwLGcuSW5kZW50SW5jcmVhc2U9R3AsZy5JbmRpYW5SdXBlZT1zWnQsZy5JbmZpbml0eT1sWnQsZy5JbmZvPWNadCxnLkluc3BlY3Q9SVAsZy5JbnNwZWN0aW9uUGFuZWw9ZFp0LGcuSW5zdGFncmFtPXVadCxnLkl0YWxpYz1oWnQsZy5JdGVyYXRpb25DY3c9cFp0LGcuSXRlcmF0aW9uQ3c9Zlp0LGcuSmFwYW5lc2VZZW49bVp0LGcuSm95c3RpY2s9Z1p0LGcuS2FuYmFuPWJadCxnLkthbmJhblNxdWFyZT1MUCxnLkthbmJhblNxdWFyZURhc2hlZD1NUCxnLktheWFrPXZadCxnLktleT13WnQsZy5LZXlSb3VuZD14WnQsZy5LZXlTcXVhcmU9eVp0LGcuS2V5Ym9hcmQ9U1p0LGcuS2V5Ym9hcmRNdXNpYz1NWnQsZy5LZXlib2FyZE9mZj1rWnQsZy5MYW1wPUFadCxnLkxhbXBDZWlsaW5nPXpadCxnLkxhbXBEZXNrPUNadCxnLkxhbXBGbG9vcj1UWnQsZy5MYW1wV2FsbERvd249X1p0LGcuTGFtcFdhbGxVcD1MWnQsZy5MYW5kUGxvdD1FWnQsZy5MYW5kbWFyaz1EWnQsZy5MYW5ndWFnZXM9JFp0LGcuTGFwdG9wPVBadCxnLkxhcHRvcDI9eEksZy5MYXB0b3BNaW5pbWFsPXhJLGcuTGFwdG9wTWluaW1hbENoZWNrPUladCxnLkxhc3NvPUZadCxnLkxhc3NvU2VsZWN0PU5adCxnLkxhdWdoPU9adCxnLkxheWVycz15SSxnLkxheWVyczI9Ulp0LGcuTGF5ZXJzMz15SSxnLkxheWVyc1BsdXM9Qlp0LGcuTGF5b3V0PUJJLGcuTGF5b3V0RGFzaGJvYXJkPUhadCxnLkxheW91dEdyaWQ9cVp0LGcuTGF5b3V0TGlzdD1qWnQsZy5MYXlvdXRQYW5lbExlZnQ9Vlp0LGcuTGF5b3V0UGFuZWxUb3A9VVp0LGcuTGF5b3V0VGVtcGxhdGU9V1p0LGcuTGVhZj1HWnQsZy5MZWFmeUdyZWVuPVladCxnLkxlY3Rlcm49Wlp0LGcuTGV0dGVyVGV4dD1yTixnLkxpYnJhcnk9UVp0LGcuTGlicmFyeUJpZz1YWnQsZy5MaWJyYXJ5U3F1YXJlPUFQLGcuTGlmZUJ1b3k9Slp0LGcuTGlnYXR1cmU9S1p0LGcuTGlnaHRidWxiPXRYdCxnLkxpZ2h0YnVsYk9mZj1lWHQsZy5MaW5lQ2hhcnQ9T0UsZy5MaW5lU3F1aWdnbGU9clh0LGcuTGluaz1uWHQsZy5MaW5rMj1hWHQsZy5MaW5rMk9mZj1pWHQsZy5MaW5rZWRpbj1vWHQsZy5MaXN0PXpYdCxnLkxpc3RDaGVjaz1zWHQsZy5MaXN0Q2hlY2tzPWxYdCxnLkxpc3RDaGV2cm9uc0Rvd25VcD1jWHQsZy5MaXN0Q2hldnJvbnNVcERvd249ZFh0LGcuTGlzdENvbGxhcHNlPXVYdCxnLkxpc3RFbmQ9cFh0LGcuTGlzdEZpbHRlcj1mWHQsZy5MaXN0RmlsdGVyUGx1cz1oWHQsZy5MaXN0SW5kZW50RGVjcmVhc2U9V3AsZy5MaXN0SW5kZW50SW5jcmVhc2U9R3AsZy5MaXN0TWludXM9bVh0LGcuTGlzdE11c2ljPWdYdCxnLkxpc3RPcmRlcmVkPWJYdCxnLkxpc3RQbHVzPXZYdCxnLkxpc3RSZXN0YXJ0PXhYdCxnLkxpc3RTdGFydD15WHQsZy5MaXN0VG9kbz13WHQsZy5MaXN0VHJlZT1NWHQsZy5MaXN0VmlkZW89a1h0LGcuTGlzdFg9U1h0LGcuTG9hZGVyPUNYdCxnLkxvYWRlcjI9d0ksZy5Mb2FkZXJDaXJjbGU9d0ksZy5Mb2FkZXJQaW53aGVlbD1UWHQsZy5Mb2NhdGU9QVh0LGcuTG9jYXRlRml4ZWQ9X1h0LGcuTG9jYXRlT2ZmPUxYdCxnLkxvY2F0aW9uRWRpdD16SSxnLkxvY2s9RVh0LGcuTG9ja0tleWhvbGU9RFh0LGcuTG9ja0tleWhvbGVPcGVuPU1JLGcuTG9ja09wZW49a0ksZy5Mb2dJbj0kWHQsZy5Mb2dPdXQ9UFh0LGcuTG9ncz1JWHQsZy5Mb2xsaXBvcD1OWHQsZy5MdWdnYWdlPUZYdCxnLk1TcXVhcmU9RFAsZy5NYWduZXQ9T1h0LGcuTWFpbD1VWHQsZy5NYWlsQ2hlY2s9Ulh0LGcuTWFpbE1pbnVzPUJYdCxnLk1haWxPcGVuPUhYdCxnLk1haWxQbHVzPXFYdCxnLk1haWxRdWVzdGlvbj1TSSxnLk1haWxRdWVzdGlvbk1hcms9U0ksZy5NYWlsU2VhcmNoPWpYdCxnLk1haWxXYXJuaW5nPVZYdCxnLk1haWxYPVdYdCxnLk1haWxib3g9R1h0LGcuTWFpbHM9WVh0LGcuTWFwPWNRdCxnLk1hcE1pbnVzPVpYdCxnLk1hcFBpbj1vUXQsZy5NYXBQaW5DaGVjaz1RWHQsZy5NYXBQaW5DaGVja0luc2lkZT1YWHQsZy5NYXBQaW5Ib3VzZT1KWHQsZy5NYXBQaW5NaW51cz1lUXQsZy5NYXBQaW5NaW51c0luc2lkZT1LWHQsZy5NYXBQaW5PZmY9dFF0LGcuTWFwUGluUGVuPXpJLGcuTWFwUGluUGx1cz1pUXQsZy5NYXBQaW5QbHVzSW5zaWRlPXJRdCxnLk1hcFBpblg9blF0LGcuTWFwUGluWEluc2lkZT1hUXQsZy5NYXBQaW5uZWQ9c1F0LGcuTWFwUGx1cz1sUXQsZy5NYXJzPXVRdCxnLk1hcnNTdHJva2U9ZFF0LGcuTWFydGluaT1wUXQsZy5NYXhpbWl6ZT1mUXQsZy5NYXhpbWl6ZTI9aFF0LGcuTWVkYWw9bVF0LGcuTWVnYXBob25lPWJRdCxnLk1lZ2FwaG9uZU9mZj1nUXQsZy5NZWg9dlF0LGcuTWVtb3J5U3RpY2s9eVF0LGcuTWVudT14UXQsZy5NZW51U3F1YXJlPUVQLGcuTWVyZ2U9d1F0LGcuTWVzc2FnZUNpcmNsZT1EUXQsZy5NZXNzYWdlQ2lyY2xlQ29kZT1NUXQsZy5NZXNzYWdlQ2lyY2xlRGFzaGVkPWtRdCxnLk1lc3NhZ2VDaXJjbGVIZWFydD1TUXQsZy5NZXNzYWdlQ2lyY2xlTW9yZT16UXQsZy5NZXNzYWdlQ2lyY2xlT2ZmPUNRdCxnLk1lc3NhZ2VDaXJjbGVQbHVzPVRRdCxnLk1lc3NhZ2VDaXJjbGVRdWVzdGlvbj1DSSxnLk1lc3NhZ2VDaXJjbGVRdWVzdGlvbk1hcms9Q0ksZy5NZXNzYWdlQ2lyY2xlUmVwbHk9TFF0LGcuTWVzc2FnZUNpcmNsZVdhcm5pbmc9X1F0LGcuTWVzc2FnZUNpcmNsZVg9QVF0LGcuTWVzc2FnZVNxdWFyZT1HUXQsZy5NZXNzYWdlU3F1YXJlQ29kZT1FUXQsZy5NZXNzYWdlU3F1YXJlRGFzaGVkPSRRdCxnLk1lc3NhZ2VTcXVhcmVEaWZmPUlRdCxnLk1lc3NhZ2VTcXVhcmVEb3Q9UFF0LGcuTWVzc2FnZVNxdWFyZUhlYXJ0PU5RdCxnLk1lc3NhZ2VTcXVhcmVMb2NrPUZRdCxnLk1lc3NhZ2VTcXVhcmVNb3JlPU9RdCxnLk1lc3NhZ2VTcXVhcmVPZmY9UlF0LGcuTWVzc2FnZVNxdWFyZVBsdXM9QlF0LGcuTWVzc2FnZVNxdWFyZVF1b3RlPUhRdCxnLk1lc3NhZ2VTcXVhcmVSZXBseT1xUXQsZy5NZXNzYWdlU3F1YXJlU2hhcmU9alF0LGcuTWVzc2FnZVNxdWFyZVRleHQ9VlF0LGcuTWVzc2FnZVNxdWFyZVdhcm5pbmc9VVF0LGcuTWVzc2FnZVNxdWFyZVg9V1F0LGcuTWVzc2FnZXNTcXVhcmU9WVF0LGcuTWljPVhRdCxnLk1pYzI9VEksZy5NaWNPZmY9WlF0LGcuTWljVm9jYWw9VEksZy5NaWNyb2NoaXA9UVF0LGcuTWljcm9zY29wZT1KUXQsZy5NaWNyb3dhdmU9S1F0LGcuTWlsZXN0b25lPWVKdCxnLk1pbGs9aUp0LGcuTWlsa09mZj10SnQsZy5NaW5pbWl6ZT1hSnQsZy5NaW5pbWl6ZTI9ckp0LGcuTWludXM9bkp0LGcuTWludXNDaXJjbGU9bCQsZy5NaW51c1NxdWFyZT0kUCxnLk1vbml0b3I9eEp0LGcuTW9uaXRvckNoZWNrPW9KdCxnLk1vbml0b3JDbG91ZD1zSnQsZy5Nb25pdG9yQ29nPWxKdCxnLk1vbml0b3JEb3Q9Y0p0LGcuTW9uaXRvckRvd249ZEp0LGcuTW9uaXRvck9mZj11SnQsZy5Nb25pdG9yUGF1c2U9cEp0LGcuTW9uaXRvclBsYXk9aEp0LGcuTW9uaXRvclNtYXJ0cGhvbmU9Zkp0LGcuTW9uaXRvclNwZWFrZXI9bUp0LGcuTW9uaXRvclN0b3A9Z0p0LGcuTW9uaXRvclVwPWJKdCxnLk1vbml0b3JYPXZKdCxnLk1vb249d0p0LGcuTW9vblN0YXI9eUp0LGcuTW9yZUhvcml6b250YWw9RSQsZy5Nb3JlVmVydGljYWw9RCQsZy5Nb3RvcmJpa2U9TUp0LGcuTW91bnRhaW49U0p0LGcuTW91bnRhaW5Tbm93PWtKdCxnLk1vdXNlPURKdCxnLk1vdXNlT2ZmPXpKdCxnLk1vdXNlUG9pbnRlcj1BSnQsZy5Nb3VzZVBvaW50ZXIyPVRKdCxnLk1vdXNlUG9pbnRlcjJPZmY9Q0p0LGcuTW91c2VQb2ludGVyQmFuPV9KdCxnLk1vdXNlUG9pbnRlckNsaWNrPUxKdCxnLk1vdXNlUG9pbnRlclNxdWFyZURhc2hlZD1rUCxnLk1vdmU9Vkp0LGcuTW92ZTNEPV9JLGcuTW92ZTNkPV9JLGcuTW92ZURpYWdvbmFsPSRKdCxnLk1vdmVEaWFnb25hbDI9RUp0LGcuTW92ZURvd249Tkp0LGcuTW92ZURvd25MZWZ0PUlKdCxnLk1vdmVEb3duUmlnaHQ9UEp0LGcuTW92ZUhvcml6b250YWw9Rkp0LGcuTW92ZUxlZnQ9T0p0LGcuTW92ZVJpZ2h0PVJKdCxnLk1vdmVVcD1xSnQsZy5Nb3ZlVXBMZWZ0PUJKdCxnLk1vdmVVcFJpZ2h0PUhKdCxnLk1vdmVWZXJ0aWNhbD1qSnQsZy5NdXNpYz1ZSnQsZy5NdXNpYzI9VUp0LGcuTXVzaWMzPVdKdCxnLk11c2ljND1HSnQsZy5OYXZpZ2F0aW9uPVFKdCxnLk5hdmlnYXRpb24yPVhKdCxnLk5hdmlnYXRpb24yT2ZmPVpKdCxnLk5hdmlnYXRpb25PZmY9Skp0LGcuTmV0d29yaz1LSnQsZy5OZXdzcGFwZXI9ZUt0LGcuTmZjPXRLdCxnLk5vbkJpbmFyeT1yS3QsZy5Ob3RlYm9vaz1vS3QsZy5Ob3RlYm9va1Blbj1pS3QsZy5Ob3RlYm9va1RhYnM9YUt0LGcuTm90ZWJvb2tUZXh0PW5LdCxnLk5vdGVwYWRUZXh0PWxLdCxnLk5vdGVwYWRUZXh0RGFzaGVkPXNLdCxnLk51dD1jS3QsZy5OdXRPZmY9ZEt0LGcuT2N0YWdvbj1wS3QsZy5PY3RhZ29uQWxlcnQ9TEksZy5PY3RhZ29uTWludXM9dUt0LGcuT2N0YWdvblBhdXNlPUFJLGcuT2N0YWdvblg9REksZy5PbWVnYT1oS3QsZy5PcHRpb249bUt0LGcuT3JiaXQ9Zkt0LGcuT3JpZ2FtaT1nS3QsZy5PdXRkZW50PVdwLGcuUGFja2FnZT1TS3QsZy5QYWNrYWdlMj1iS3QsZy5QYWNrYWdlQ2hlY2s9dkt0LGcuUGFja2FnZU1pbnVzPXhLdCxnLlBhY2thZ2VPcGVuPXlLdCxnLlBhY2thZ2VQbHVzPXdLdCxnLlBhY2thZ2VTZWFyY2g9TUt0LGcuUGFja2FnZVg9a0t0LGcuUGFpbnRCdWNrZXQ9Q0t0LGcuUGFpbnRSb2xsZXI9ekt0LGcuUGFpbnRicnVzaD1US3QsZy5QYWludGJydXNoMj1FSSxnLlBhaW50YnJ1c2hWZXJ0aWNhbD1FSSxnLlBhbGV0dGU9X0t0LGcuUGFsbXRyZWU9b04sZy5QYW5kYT1MS3QsZy5QYW5lbEJvdHRvbT1FS3QsZy5QYW5lbEJvdHRvbUNsb3NlPUFLdCxnLlBhbmVsQm90dG9tRGFzaGVkPSRJLGcuUGFuZWxCb3R0b21JbmFjdGl2ZT0kSSxnLlBhbmVsQm90dG9tT3Blbj1ES3QsZy5QYW5lbExlZnQ9RkksZy5QYW5lbExlZnRDbG9zZT1JSSxnLlBhbmVsTGVmdERhc2hlZD1QSSxnLlBhbmVsTGVmdEluYWN0aXZlPVBJLGcuUGFuZWxMZWZ0T3Blbj1OSSxnLlBhbmVsTGVmdFJpZ2h0RGFzaGVkPSRLdCxnLlBhbmVsUmlnaHQ9Tkt0LGcuUGFuZWxSaWdodENsb3NlPUlLdCxnLlBhbmVsUmlnaHREYXNoZWQ9T0ksZy5QYW5lbFJpZ2h0SW5hY3RpdmU9T0ksZy5QYW5lbFJpZ2h0T3Blbj1QS3QsZy5QYW5lbFRvcD1CS3QsZy5QYW5lbFRvcEJvdHRvbURhc2hlZD1GS3QsZy5QYW5lbFRvcENsb3NlPU9LdCxnLlBhbmVsVG9wRGFzaGVkPVJJLGcuUGFuZWxUb3BJbmFjdGl2ZT1SSSxnLlBhbmVsVG9wT3Blbj1SS3QsZy5QYW5lbHNMZWZ0Qm90dG9tPUhLdCxnLlBhbmVsc0xlZnRSaWdodD1UJCxnLlBhbmVsc1JpZ2h0Qm90dG9tPXFLdCxnLlBhbmVsc1RvcEJvdHRvbT1HSSxnLlBhbmVsc1RvcExlZnQ9QkksZy5QYXBlcmNsaXA9akt0LGcuUGFyZW50aGVzZXM9Vkt0LGcuUGFya2luZ0NpcmNsZT1kJCxnLlBhcmtpbmdDaXJjbGVPZmY9YyQsZy5QYXJraW5nTWV0ZXI9VUt0LGcuUGFya2luZ1NxdWFyZT1OUCxnLlBhcmtpbmdTcXVhcmVPZmY9UFAsZy5QYXJ0eVBvcHBlcj1XS3QsZy5QYXVzZT1HS3QsZy5QYXVzZUNpcmNsZT11JCxnLlBhdXNlT2N0YWdvbj1BSSxnLlBhd1ByaW50PVlLdCxnLlBjQ2FzZT1aS3QsZy5QZW49cUksZy5QZW5Cb3g9RTQsZy5QZW5MaW5lPUhJLGcuUGVuT2ZmPVhLdCxnLlBlblNxdWFyZT1FNCxnLlBlblRvb2w9UUt0LGcuUGVuY2lsPXJlcixnLlBlbmNpbExpbmU9Skt0LGcuUGVuY2lsT2ZmPUtLdCxnLlBlbmNpbFJ1bGVyPWVlcixnLlBlbnRhZ29uPXRlcixnLlBlcmNlbnQ9aWVyLGcuUGVyY2VudENpcmNsZT1wJCxnLlBlcmNlbnREaWFtb25kPUwkLGcuUGVyY2VudFNxdWFyZT1PUCxnLlBlcnNvblN0YW5kaW5nPWFlcixnLlBoaWxpcHBpbmVQZXNvPW5lcixnLlBob25lPXBlcixnLlBob25lQ2FsbD1vZXIsZy5QaG9uZUZvcndhcmRlZD1zZXIsZy5QaG9uZUluY29taW5nPWxlcixnLlBob25lTWlzc2VkPWNlcixnLlBob25lT2ZmPWRlcixnLlBob25lT3V0Z29pbmc9dWVyLGcuUGk9aGVyLGcuUGlTcXVhcmU9RlAsZy5QaWFubz1mZXIsZy5QaWNrYXhlPW1lcixnLlBpY3R1cmVJblBpY3R1cmU9dmVyLGcuUGljdHVyZUluUGljdHVyZTI9Z2VyLGcuUGllQ2hhcnQ9cUUsZy5QaWdneUJhbms9YmVyLGcuUGlsY3Jvdz13ZXIsZy5QaWxjcm93TGVmdD14ZXIsZy5QaWxjcm93UmlnaHQ9eWVyLGcuUGlsY3Jvd1NxdWFyZT1SUCxnLlBpbGw9a2VyLGcuUGlsbEJvdHRsZT1NZXIsZy5QaW49emVyLGcuUGluT2ZmPVNlcixnLlBpcGV0dGU9Q2VyLGcuUGl6emE9VGVyLGcuUGxhbmU9QWVyLGcuUGxhbmVMYW5kaW5nPV9lcixnLlBsYW5lVGFrZW9mZj1MZXIsZy5QbGF5PURlcixnLlBsYXlDaXJjbGU9aCQsZy5QbGF5U3F1YXJlPUJQLGcuUGx1Zz0kZXIsZy5QbHVnMj1FZXIsZy5QbHVnWmFwPWpJLGcuUGx1Z1phcDI9akksZy5QbHVzPUllcixnLlBsdXNDaXJjbGU9ZiQsZy5QbHVzU3F1YXJlPUhQLGcuUG9ja2V0PUZlcixnLlBvY2tldEtuaWZlPVBlcixnLlBvZGNhc3Q9TmVyLGcuUG9pbnRlcj1SZXIsZy5Qb2ludGVyT2ZmPU9lcixnLlBvcGNvcm49QmVyLGcuUG9wc2ljbGU9SGVyLGcuUG91bmRTdGVybGluZz1xZXIsZy5Qb3dlcj1WZXIsZy5Qb3dlckNpcmNsZT1tJCxnLlBvd2VyT2ZmPWplcixnLlBvd2VyU3F1YXJlPXFQLGcuUHJlc2VudGF0aW9uPVdlcixnLlByaW50ZXI9WWVyLGcuUHJpbnRlckNoZWNrPVVlcixnLlByaW50ZXJYPUdlcixnLlByb2plY3Rvcj1aZXIsZy5Qcm9wb3J0aW9ucz1YZXIsZy5QdXp6bGU9UWVyLGcuUHlyYW1pZD1KZXIsZy5RckNvZGU9S2VyLGcuUXVvdGU9ZXRyLGcuUmFiYml0PXR0cixnLlJhZGFyPXJ0cixnLlJhZGlhdGlvbj1pdHIsZy5SYWRpY2FsPWF0cixnLlJhZGlvPXN0cixnLlJhZGlvUmVjZWl2ZXI9bnRyLGcuUmFkaW9Ub3dlcj1vdHIsZy5SYWRpdXM9bHRyLGcuUmFpbFN5bWJvbD1jdHIsZy5SYWluYm93PWR0cixnLlJhdD11dHIsZy5SYXRpbz1wdHIsZy5SZWNlaXB0PU10cixnLlJlY2VpcHRDZW50PWh0cixnLlJlY2VpcHRFdXJvPWZ0cixnLlJlY2VpcHRJbmRpYW5SdXBlZT1tdHIsZy5SZWNlaXB0SmFwYW5lc2VZZW49Z3RyLGcuUmVjZWlwdFBvdW5kU3Rlcmxpbmc9YnRyLGcuUmVjZWlwdFJ1c3NpYW5SdWJsZT12dHIsZy5SZWNlaXB0U3dpc3NGcmFuYz14dHIsZy5SZWNlaXB0VGV4dD15dHIsZy5SZWNlaXB0VHVya2lzaExpcmE9d3RyLGcuUmVjdGFuZ2xlQ2lyY2xlPWt0cixnLlJlY3RhbmdsZUVsbGlwc2lzPVZJLGcuUmVjdGFuZ2xlR29nZ2xlcz16dHIsZy5SZWN0YW5nbGVIb3Jpem9udGFsPVN0cixnLlJlY3RhbmdsZVZlcnRpY2FsPUN0cixnLlJlY3ljbGU9VHRyLGcuUmVkbz1BdHIsZy5SZWRvMj1MdHIsZy5SZWRvRG90PV90cixnLlJlZnJlc2hDY3c9RXRyLGcuUmVmcmVzaENjd0RvdD1EdHIsZy5SZWZyZXNoQ3c9SXRyLGcuUmVmcmVzaEN3T2ZmPSR0cixnLlJlZnJpZ2VyYXRvcj1QdHIsZy5SZWdleD1OdHIsZy5SZW1vdmVGb3JtYXR0aW5nPUZ0cixnLlJlcGVhdD1CdHIsZy5SZXBlYXQxPVJ0cixnLlJlcGVhdDI9T3RyLGcuUmVwbGFjZT1xdHIsZy5SZXBsYWNlQWxsPUh0cixnLlJlcGx5PVZ0cixnLlJlcGx5QWxsPWp0cixnLlJld2luZD1VdHIsZy5SaWJib249V3RyLGcuUm9ja2V0PUd0cixnLlJvY2tpbmdDaGFpcj1ZdHIsZy5Sb2xsZXJDb2FzdGVyPVp0cixnLlJvc2U9WHRyLGcuUm90YXRlM0Q9VUksZy5Sb3RhdGUzZD1VSSxnLlJvdGF0ZUNjdz1LdHIsZy5Sb3RhdGVDY3dLZXk9UXRyLGcuUm90YXRlQ2N3U3F1YXJlPUp0cixnLlJvdGF0ZUN3PXRycixnLlJvdGF0ZUN3U3F1YXJlPWVycixnLlJvdXRlPWlycixnLlJvdXRlT2ZmPXJycixnLlJvdXRlcj1hcnIsZy5Sb3dzPVdJLGcuUm93czI9V0ksZy5Sb3dzMz1HSSxnLlJvd3M0PW5ycixnLlJzcz1vcnIsZy5SdWxlcj1jcnIsZy5SdWxlckRpbWVuc2lvbkxpbmU9c3JyLGcuUnVzc2lhblJ1YmxlPWxycixnLlNhaWxib2F0PXVycixnLlNhbGFkPWRycixnLlNhbmR3aWNoPXBycixnLlNhdGVsbGl0ZT1mcnIsZy5TYXRlbGxpdGVEaXNoPWhycixnLlNhdWRpUml5YWw9bXJyLGcuU2F2ZT12cnIsZy5TYXZlQWxsPWdycixnLlNhdmVPZmY9YnJyLGcuU2NhbGU9eHJyLGcuU2NhbGUzRD1ZSSxnLlNjYWxlM2Q9WUksZy5TY2FsaW5nPXlycixnLlNjYW49THJyLGcuU2NhbkJhcmNvZGU9TXJyLGcuU2NhbkV5ZT13cnIsZy5TY2FuRmFjZT1rcnIsZy5TY2FuSGVhcnQ9U3JyLGcuU2NhbkxpbmU9enJyLGcuU2NhblFyQ29kZT1DcnIsZy5TY2FuU2VhcmNoPVRycixnLlNjYW5UZXh0PV9ycixnLlNjYXR0ZXJDaGFydD1qRSxnLlNjaG9vbD1BcnIsZy5TY2hvb2wyPWNOLGcuU2Npc3NvcnM9RXJyLGcuU2Npc3NvcnNMaW5lRGFzaGVkPURycixnLlNjaXNzb3JzU3F1YXJlPWpQLGcuU2Npc3NvcnNTcXVhcmVEYXNoZWRCb3R0b209ZlAsZy5TY29vdGVyPSRycixnLlNjcmVlblNoYXJlPVBycixnLlNjcmVlblNoYXJlT2ZmPUlycixnLlNjcm9sbD1OcnIsZy5TY3JvbGxUZXh0PUZycixnLlNlYXJjaD1qcnIsZy5TZWFyY2hBbGVydD1PcnIsZy5TZWFyY2hDaGVjaz1ScnIsZy5TZWFyY2hDb2RlPUJycixnLlNlYXJjaFNsYXNoPUhycixnLlNlYXJjaFg9cXJyLGcuU2VjdGlvbj1WcnIsZy5TZW5kPVdycixnLlNlbmRIb3Jpem9uYWw9WkksZy5TZW5kSG9yaXpvbnRhbD1aSSxnLlNlbmRUb0JhY2s9VXJyLGcuU2VwYXJhdG9ySG9yaXpvbnRhbD1ZcnIsZy5TZXBhcmF0b3JWZXJ0aWNhbD1HcnIsZy5TZXJ2ZXI9SnJyLGcuU2VydmVyQ29nPVpycixnLlNlcnZlckNyYXNoPVhycixnLlNlcnZlck9mZj1RcnIsZy5TZXR0aW5ncz1lMXIsZy5TZXR0aW5nczI9S3JyLGcuU2hhcGVzPXQxcixnLlNoYXJlPWkxcixnLlNoYXJlMj1yMXIsZy5TaGVldD1hMXIsZy5TaGVsbD1uMXIsZy5TaGllbGQ9bTFyLGcuU2hpZWxkQWxlcnQ9bzFyLGcuU2hpZWxkQmFuPXMxcixnLlNoaWVsZENoZWNrPWwxcixnLlNoaWVsZENsb3NlPVFJLGcuU2hpZWxkRWxsaXBzaXM9YzFyLGcuU2hpZWxkSGFsZj1kMXIsZy5TaGllbGRNaW51cz11MXIsZy5TaGllbGRPZmY9cDFyLGcuU2hpZWxkUGx1cz1oMXIsZy5TaGllbGRRdWVzdGlvbj1YSSxnLlNoaWVsZFF1ZXN0aW9uTWFyaz1YSSxnLlNoaWVsZFVzZXI9ZjFyLGcuU2hpZWxkWD1RSSxnLlNoaXA9YjFyLGcuU2hpcFdoZWVsPWcxcixnLlNoaXJ0PXYxcixnLlNob3BwaW5nQmFnPXgxcixnLlNob3BwaW5nQmFza2V0PXkxcixnLlNob3BwaW5nQ2FydD13MXIsZy5TaG92ZWw9TTFyLGcuU2hvd2VySGVhZD1rMXIsZy5TaHJlZGRlcj1TMXIsZy5TaHJpbXA9ejFyLGcuU2hyaW5rPUMxcixnLlNocnViPV8xcixnLlNodWZmbGU9VDFyLGcuU2lkZWJhcj1GSSxnLlNpZGViYXJDbG9zZT1JSSxnLlNpZGViYXJPcGVuPU5JLGcuU2lnbWE9TDFyLGcuU2lnbWFTcXVhcmU9VlAsZy5TaWduYWw9STFyLGcuU2lnbmFsSGlnaD1BMXIsZy5TaWduYWxMb3c9RDFyLGcuU2lnbmFsTWVkaXVtPUUxcixnLlNpZ25hbFplcm89JDFyLGcuU2lnbmF0dXJlPVAxcixnLlNpZ25wb3N0PUYxcixnLlNpZ25wb3N0QmlnPU4xcixnLlNpcmVuPU8xcixnLlNraXBCYWNrPVIxcixnLlNraXBGb3J3YXJkPUIxcixnLlNrdWxsPUgxcixnLlNsYWNrPXExcixnLlNsYXNoPWoxcixnLlNsYXNoU3F1YXJlPVVQLGcuU2xpY2U9VjFyLGcuU2xpZGVycz1KSSxnLlNsaWRlcnNIb3Jpem9udGFsPVUxcixnLlNsaWRlcnNWZXJ0aWNhbD1KSSxnLlNtYXJ0cGhvbmU9WTFyLGcuU21hcnRwaG9uZUNoYXJnaW5nPVcxcixnLlNtYXJ0cGhvbmVOZmM9RzFyLGcuU21pbGU9WDFyLGcuU21pbGVQbHVzPVoxcixnLlNuYWlsPVExcixnLlNub3dmbGFrZT1LMXIsZy5Tb2FwRGlzcGVuc2VyRHJvcGxldD1KMXIsZy5Tb2ZhPWVpcixnLlNvbGFyUGFuZWw9dGlyLGcuU29ydEFzYz13RSxnLlNvcnREZXNjPXZFLGcuU291cD1yaXIsZy5TcGFjZT1paXIsZy5TcGFkZT1haXIsZy5TcGFya2xlPW5pcixnLlNwYXJrbGVzPUtJLGcuU3BlYWtlcj1vaXIsZy5TcGVlY2g9c2lyLGcuU3BlbGxDaGVjaz1jaXIsZy5TcGVsbENoZWNrMj1saXIsZy5TcGxpbmU9dWlyLGcuU3BsaW5lUG9pbnRlcj1kaXIsZy5TcGxpdD1waXIsZy5TcGxpdFNxdWFyZUhvcml6b250YWw9V1AsZy5TcGxpdFNxdWFyZVZlcnRpY2FsPUdQLGcuU3Bvb2w9aGlyLGcuU3BvdGxpZ2h0PWZpcixnLlNwcmF5Q2FuPW1pcixnLlNwcm91dD1naXIsZy5TcXVhcmU9VGlyLGcuU3F1YXJlQWN0aXZpdHk9dFAsZy5TcXVhcmVBcnJvd0Rvd249aVAsZy5TcXVhcmVBcnJvd0Rvd25MZWZ0PWVQLGcuU3F1YXJlQXJyb3dEb3duUmlnaHQ9clAsZy5TcXVhcmVBcnJvd0xlZnQ9YVAsZy5TcXVhcmVBcnJvd091dERvd25MZWZ0PW5QLGcuU3F1YXJlQXJyb3dPdXREb3duUmlnaHQ9c1AsZy5TcXVhcmVBcnJvd091dFVwTGVmdD1vUCxnLlNxdWFyZUFycm93T3V0VXBSaWdodD1sUCxnLlNxdWFyZUFycm93UmlnaHQ9Y1AsZy5TcXVhcmVBcnJvd1VwPXBQLGcuU3F1YXJlQXJyb3dVcExlZnQ9ZFAsZy5TcXVhcmVBcnJvd1VwUmlnaHQ9dVAsZy5TcXVhcmVBc3Rlcmlzaz1oUCxnLlNxdWFyZUJvdHRvbURhc2hlZFNjaXNzb3JzPWZQLGcuU3F1YXJlQ2hhcnRHYW50dD1ZcCxnLlNxdWFyZUNoZWNrPWdQLGcuU3F1YXJlQ2hlY2tCaWc9bVAsZy5TcXVhcmVDaGV2cm9uRG93bj1iUCxnLlNxdWFyZUNoZXZyb25MZWZ0PXZQLGcuU3F1YXJlQ2hldnJvblJpZ2h0PXhQLGcuU3F1YXJlQ2hldnJvblVwPXlQLGcuU3F1YXJlQ29kZT13UCxnLlNxdWFyZURhc2hlZD1TUCxnLlNxdWFyZURhc2hlZEJvdHRvbT12aXIsZy5TcXVhcmVEYXNoZWRCb3R0b21Db2RlPWJpcixnLlNxdWFyZURhc2hlZEthbmJhbj1NUCxnLlNxdWFyZURhc2hlZE1vdXNlUG9pbnRlcj1rUCxnLlNxdWFyZURhc2hlZFRvcFNvbGlkPXhpcixnLlNxdWFyZURpdmlkZT16UCxnLlNxdWFyZURvdD1DUCxnLlNxdWFyZUVxdWFsPVRQLGcuU3F1YXJlRnVuY3Rpb249X1AsZy5TcXVhcmVHYW50dENoYXJ0PVlwLGcuU3F1YXJlS2FuYmFuPUxQLGcuU3F1YXJlTGlicmFyeT1BUCxnLlNxdWFyZU09RFAsZy5TcXVhcmVNZW51PUVQLGcuU3F1YXJlTWludXM9JFAsZy5TcXVhcmVNb3VzZVBvaW50ZXI9SVAsZy5TcXVhcmVQYXJraW5nPU5QLGcuU3F1YXJlUGFya2luZ09mZj1QUCxnLlNxdWFyZVBhdXNlPXlpcixnLlNxdWFyZVBlbj1FNCxnLlNxdWFyZVBlcmNlbnQ9T1AsZy5TcXVhcmVQaT1GUCxnLlNxdWFyZVBpbGNyb3c9UlAsZy5TcXVhcmVQbGF5PUJQLGcuU3F1YXJlUGx1cz1IUCxnLlNxdWFyZVBvd2VyPXFQLGcuU3F1YXJlUmFkaWNhbD1NaXIsZy5TcXVhcmVSb3VuZENvcm5lcj13aXIsZy5TcXVhcmVTY2lzc29ycz1qUCxnLlNxdWFyZVNpZ21hPVZQLGcuU3F1YXJlU2xhc2g9VVAsZy5TcXVhcmVTcGxpdEhvcml6b250YWw9V1AsZy5TcXVhcmVTcGxpdFZlcnRpY2FsPUdQLGcuU3F1YXJlU3F1YXJlPVNpcixnLlNxdWFyZVN0YWNrPWtpcixnLlNxdWFyZVN0YXI9emlyLGcuU3F1YXJlU3RvcD1DaXIsZy5TcXVhcmVUZXJtaW5hbD1ZUCxnLlNxdWFyZVVzZXI9WFAsZy5TcXVhcmVVc2VyUm91bmQ9WlAsZy5TcXVhcmVYPVFQLGcuU3F1YXJlc0V4Y2x1ZGU9X2lyLGcuU3F1YXJlc0ludGVyc2VjdD1MaXIsZy5TcXVhcmVzU3VidHJhY3Q9QWlyLGcuU3F1YXJlc1VuaXRlPURpcixnLlNxdWlyY2xlPSRpcixnLlNxdWlyY2xlRGFzaGVkPUVpcixnLlNxdWlycmVsPUlpcixnLlN0YW1wPVBpcixnLlN0YXI9T2lyLGcuU3RhckhhbGY9TmlyLGcuU3Rhck9mZj1GaXIsZy5TdGFycz1LSSxnLlN0ZXBCYWNrPVJpcixnLlN0ZXBGb3J3YXJkPUJpcixnLlN0ZXRob3Njb3BlPUhpcixnLlN0aWNrZXI9cWlyLGcuU3RpY2t5Tm90ZT1qaXIsZy5TdG9uZT1WaXIsZy5TdG9wQ2lyY2xlPWIkLGcuU3RvcmU9VWlyLGcuU3RyZXRjaEhvcml6b250YWw9V2lyLGcuU3RyZXRjaFZlcnRpY2FsPUdpcixnLlN0cmlrZXRocm91Z2g9WWlyLGcuU3Vic2NyaXB0PVppcixnLlN1YnRpdGxlcz1BRSxnLlN1bj1lYXIsZy5TdW5EaW09WGlyLGcuU3VuTWVkaXVtPVFpcixnLlN1bk1vb249SmlyLGcuU3VuU25vdz1LaXIsZy5TdW5yaXNlPXRhcixnLlN1bnNldD1yYXIsZy5TdXBlcnNjcmlwdD1pYXIsZy5Td2F0Y2hCb29rPWFhcixnLlN3aXNzRnJhbmM9bmFyLGcuU3dpdGNoQ2FtZXJhPW9hcixnLlN3b3JkPXNhcixnLlN3b3Jkcz1sYXIsZy5TeXJpbmdlPWNhcixnLlRhYmxlPWJhcixnLlRhYmxlMj1kYXIsZy5UYWJsZUNlbGxzTWVyZ2U9dWFyLGcuVGFibGVDZWxsc1NwbGl0PXBhcixnLlRhYmxlQ29sdW1uc1NwbGl0PWhhcixnLlRhYmxlQ29uZmlnPWpwLGcuVGFibGVPZkNvbnRlbnRzPWZhcixnLlRhYmxlUHJvcGVydGllcz1tYXIsZy5UYWJsZVJvd3NTcGxpdD1nYXIsZy5UYWJsZXQ9eGFyLGcuVGFibGV0U21hcnRwaG9uZT15YXIsZy5UYWJsZXRzPXdhcixnLlRhZz1NYXIsZy5UYWdzPWthcixnLlRhbGx5MT1TYXIsZy5UYWxseTI9emFyLGcuVGFsbHkzPUNhcixnLlRhbGx5ND1UYXIsZy5UYWxseTU9X2FyLGcuVGFuZ2VudD1MYXIsZy5UYXJnZXQ9QWFyLGcuVGVsZXNjb3BlPURhcixnLlRlbnQ9JGFyLGcuVGVudFRyZWU9RWFyLGcuVGVybWluYWw9SWFyLGcuVGVybWluYWxTcXVhcmU9WVAsZy5UZXN0VHViZT1QYXIsZy5UZXN0VHViZTI9SlAsZy5UZXN0VHViZURpYWdvbmFsPUpQLGcuVGVzdFR1YmVzPU5hcixnLlRleHQ9WnAsZy5UZXh0QWxpZ25DZW50ZXI9S1AsZy5UZXh0QWxpZ25FbmQ9ZU4sZy5UZXh0QWxpZ25KdXN0aWZ5PXROLGcuVGV4dEFsaWduU3RhcnQ9WnAsZy5UZXh0Q3Vyc29yPU9hcixnLlRleHRDdXJzb3JJbnB1dD1GYXIsZy5UZXh0SW5pdGlhbD1yTixnLlRleHRRdW90ZT1SYXIsZy5UZXh0U2VhcmNoPUJhcixnLlRleHRTZWxlY3Q9aU4sZy5UZXh0U2VsZWN0aW9uPWlOLGcuVGV4dFdyYXA9YU4sZy5UaGVhdGVyPUhhcixnLlRoZXJtb21ldGVyPVZhcixnLlRoZXJtb21ldGVyU25vd2ZsYWtlPXFhcixnLlRoZXJtb21ldGVyU3VuPWphcixnLlRodW1ic0Rvd249VWFyLGcuVGh1bWJzVXA9V2FyLGcuVGlja2V0PUthcixnLlRpY2tldENoZWNrPUdhcixnLlRpY2tldE1pbnVzPVlhcixnLlRpY2tldFBlcmNlbnQ9WmFyLGcuVGlja2V0UGx1cz1YYXIsZy5UaWNrZXRTbGFzaD1RYXIsZy5UaWNrZXRYPUphcixnLlRpY2tldHM9cm5yLGcuVGlja2V0c1BsYW5lPWVucixnLlRpbWVyPWFucixnLlRpbWVyT2ZmPXRucixnLlRpbWVyUmVzZXQ9aW5yLGcuVG9nZ2xlTGVmdD1ubnIsZy5Ub2dnbGVSaWdodD1vbnIsZy5Ub2lsZXQ9c25yLGcuVG9vbENhc2U9bG5yLGcuVG9vbGJveD1jbnIsZy5Ub3JuYWRvPWRucixnLlRvcnVzPXVucixnLlRvdWNocGFkPWhucixnLlRvdWNocGFkT2ZmPXBucixnLlRvd2VyQ29udHJvbD1mbnIsZy5Ub3lCcmljaz1tbnIsZy5UcmFjdG9yPWducixnLlRyYWZmaWNDb25lPWJucixnLlRyYWluPW5OLGcuVHJhaW5Gcm9udD14bnIsZy5UcmFpbkZyb250VHVubmVsPXZucixnLlRyYWluVHJhY2s9eW5yLGcuVHJhbUZyb250PW5OLGcuVHJhbnNnZW5kZXI9d25yLGcuVHJhc2g9a25yLGcuVHJhc2gyPU1ucixnLlRyZWVEZWNpZHVvdXM9U25yLGcuVHJlZVBhbG09b04sZy5UcmVlUGluZT16bnIsZy5UcmVlcz1DbnIsZy5UcmVsbG89VG5yLGcuVHJlbmRpbmdEb3duPV9ucixnLlRyZW5kaW5nVXA9QW5yLGcuVHJlbmRpbmdVcERvd249TG5yLGcuVHJpYW5nbGU9JG5yLGcuVHJpYW5nbGVBbGVydD1zTixnLlRyaWFuZ2xlRGFzaGVkPURucixnLlRyaWFuZ2xlUmlnaHQ9RW5yLGcuVHJvcGh5PVBucixnLlRydWNrPU5ucixnLlRydWNrRWxlY3RyaWM9SW5yLGcuVHVya2lzaExpcmE9Rm5yLGcuVHVybnRhYmxlPU9ucixnLlR1cnRsZT1SbnIsZy5Udj1IbnIsZy5UdjI9bE4sZy5Udk1pbmltYWw9bE4sZy5Udk1pbmltYWxQbGF5PUJucixnLlR3aXRjaD1xbnIsZy5Ud2l0dGVyPWpucixnLlR5cGU9VW5yLGcuVHlwZU91dGxpbmU9Vm5yLGcuVW1icmVsbGE9R25yLGcuVW1icmVsbGFPZmY9V25yLGcuVW5kZXJsaW5lPVlucixnLlVuZG89UW5yLGcuVW5kbzI9Wm5yLGcuVW5kb0RvdD1YbnIsZy5VbmZvbGRIb3Jpem9udGFsPUpucixnLlVuZm9sZFZlcnRpY2FsPUtucixnLlVuZ3JvdXA9ZW9yLGcuVW5pdmVyc2l0eT1jTixnLlVubGluaz10b3IsZy5VbmxpbmsyPXJvcixnLlVubG9jaz1rSSxnLlVubG9ja0tleWhvbGU9TUksZy5VbnBsdWc9aW9yLGcuVXBsb2FkPWFvcixnLlVwbG9hZENsb3VkPVMkLGcuVXNiPW5vcixnLlVzZXI9eW9yLGcuVXNlcjI9bU4sZy5Vc2VyQ2hlY2s9b29yLGcuVXNlckNoZWNrMj1kTixnLlVzZXJDaXJjbGU9eCQsZy5Vc2VyQ2lyY2xlMj12JCxnLlVzZXJDb2c9c29yLGcuVXNlckNvZzI9dU4sZy5Vc2VyS2V5PWxvcixnLlVzZXJMb2NrPWNvcixnLlVzZXJNaW51cz1kb3IsZy5Vc2VyTWludXMyPXBOLGcuVXNlclBlbj11b3IsZy5Vc2VyUGx1cz1wb3IsZy5Vc2VyUGx1czI9aE4sZy5Vc2VyUm91bmQ9bU4sZy5Vc2VyUm91bmRDaGVjaz1kTixnLlVzZXJSb3VuZENvZz11TixnLlVzZXJSb3VuZEtleT1ob3IsZy5Vc2VyUm91bmRNaW51cz1wTixnLlVzZXJSb3VuZFBlbj1tb3IsZy5Vc2VyUm91bmRQbHVzPWhOLGcuVXNlclJvdW5kU2VhcmNoPWdvcixnLlVzZXJSb3VuZFg9Zk4sZy5Vc2VyU2VhcmNoPWJvcixnLlVzZXJTcXVhcmU9WFAsZy5Vc2VyU3F1YXJlMj1aUCxnLlVzZXJTdGFyPXZvcixnLlVzZXJYPXhvcixnLlVzZXJYMj1mTixnLlVzZXJzPXdvcixnLlVzZXJzMj1nTixnLlVzZXJzUm91bmQ9Z04sZy5VdGVuc2lscz12TixnLlV0ZW5zaWxzQ3Jvc3NlZD1iTixnLlV0aWxpdHlQb2xlPU1vcixnLlZhbj1rb3IsZy5WYXJpYWJsZT1Tb3IsZy5WYXVsdD16b3IsZy5WZWN0b3JTcXVhcmU9Q29yLGcuVmVnYW49VG9yLGcuVmVuZXRpYW5NYXNrPV9vcixnLlZlbnVzPUFvcixnLlZlbnVzQW5kTWFycz1Mb3IsZy5WZXJpZmllZD1TRSxnLlZpYnJhdGU9RW9yLGcuVmlicmF0ZU9mZj1Eb3IsZy5WaWRlbz1Jb3IsZy5WaWRlb09mZj0kb3IsZy5WaWRlb3RhcGU9UG9yLGcuVmlldz1Ob3IsZy5Wb2ljZW1haWw9Rm9yLGcuVm9sbGV5YmFsbD1Pb3IsZy5Wb2x1bWU9Vm9yLGcuVm9sdW1lMT1Sb3IsZy5Wb2x1bWUyPUJvcixnLlZvbHVtZU9mZj1Ib3IsZy5Wb2x1bWVYPXFvcixnLlZvdGU9am9yLGcuV2FsbGV0PVdvcixnLldhbGxldDI9eE4sZy5XYWxsZXRDYXJkcz1Vb3IsZy5XYWxsZXRNaW5pbWFsPXhOLGcuV2FsbHBhcGVyPUdvcixnLldhbmQ9WW9yLGcuV2FuZDI9eU4sZy5XYW5kU3BhcmtsZXM9eU4sZy5XYXJlaG91c2U9Wm9yLGcuV2FzaGluZ01hY2hpbmU9WG9yLGcuV2F0Y2g9UW9yLGcuV2F2ZXM9dDJyLGcuV2F2ZXNBcnJvd0Rvd249Sm9yLGcuV2F2ZXNBcnJvd1VwPUtvcixnLldhdmVzTGFkZGVyPWUycixnLldheXBvaW50cz1yMnIsZy5XZWJjYW09aTJyLGcuV2ViaG9vaz1uMnIsZy5XZWJob29rT2ZmPWEycixnLldlaWdodD1sMnIsZy5XZWlnaHRUaWxkZT1vMnIsZy5XaGVhdD1jMnIsZy5XaGVhdE9mZj1zMnIsZy5XaG9sZVdvcmQ9ZDJyLGcuV2lmaT12MnIsZy5XaWZpQ29nPXUycixnLldpZmlIaWdoPXAycixnLldpZmlMb3c9aDJyLGcuV2lmaU9mZj1mMnIsZy5XaWZpUGVuPW0ycixnLldpZmlTeW5jPWcycixnLldpZmlaZXJvPWIycixnLldpbmQ9eTJyLGcuV2luZEFycm93RG93bj14MnIsZy5XaW5lPXcycixnLldpbmVPZmY9azJyLGcuV29ya2Zsb3c9TTJyLGcuV29ybT1TMnIsZy5XcmFwVGV4dD1hTixnLldyZW5jaD1UMnIsZy5YPXoycixnLlhDaXJjbGU9eSQsZy5YT2N0YWdvbj1ESSxnLlhTcXVhcmU9UVAsZy5Zb3V0dWJlPUMycixnLlphcD1MMnIsZy5aYXBPZmY9XzJyLGcuWm9vbUluPUQycixnLlpvb21PdXQ9QTJyLGcuY3JlYXRlRWxlbWVudD1XUHQsZy5jcmVhdGVJY29ucz1FMnIsZy5pY29ucz1FWnJ9KTt2YXIgWHAsJDJyLEkycj1wKCgpPT57eGUoKTtvcigpO1hwPWVyKHdOKCksMSksJDJyPSgpPT57bGV0IGU9T2JqZWN0LmtleXMoTU4uZmEpO2NvbnNvbGUubG9nKCJGaXJzdCBmZXcgTHVjaWRlIGtleXM6IixPYmplY3Qua2V5cyhYcCkuc2xpY2UoMCw1KSk7bGV0IHQ9T2JqZWN0LmtleXMoWHApLmZpbHRlcihuPT57bGV0IG89blswXT09PW5bMF0udG9VcHBlckNhc2UoKSYmblswXSE9PW5bMF0udG9Mb3dlckNhc2UoKSxzPXR5cGVvZiBYcFtuXT09ImZ1bmN0aW9uIixsPSFbImNyZWF0ZUVsZW1lbnQiLCJjcmVhdGVJY29ucyIsImRlZmF1bHQiXS5pbmNsdWRlcyhuKTtyZXR1cm4gcyYmbyYmbH0pLm1hcChuPT5uLmNoYXJBdCgwKS50b0xvd2VyQ2FzZSgpK24uc2xpY2UoMSkpO2lmKGNvbnNvbGUubG9nKGBGb3VuZCAke3QubGVuZ3RofSBMdWNpZGUgaWNvbnNgKSx0Lmxlbmd0aD09PTAmJihjb25zb2xlLmxvZygiVHJ5aW5nIGFsdGVybmF0aXZlIGFwcHJvYWNoIHRvIGZpbmQgTHVjaWRlIGljb25zIiksWHAuaWNvbnMpKXtsZXQgbj1YcC5pY29uc3x8e307dC5wdXNoKC4uLk9iamVjdC5rZXlzKG4pKSxjb25zb2xlLmxvZyhgRm91bmQgJHt0Lmxlbmd0aH0gaWNvbnMgdmlhIGFsdGVybmF0aXZlIG1ldGhvZGApfWxldCByPSgpPT57bGV0IG49ZS5tYXAoYz0+YGZhOiR7Y31gKSxvPXQubWFwKGM9PmBsdWNpZGU6JHtjfWApLHM9Wy4uLm4sLi4ub10sbD1zLmpvaW4oYApgKTtuYXZpZ2F0b3IuY2xpcGJvYXJkLndyaXRlVGV4dChsKS50aGVuKCgpPT57bGV0IHU9d2luZG93LmV2ZW50LmN1cnJlbnRUYXJnZXQsZD11LnRleHRDb250ZW50O3UudGV4dENvbnRlbnQ9YFx1MjcxMyBDb3BpZWQgJHtzLmxlbmd0aH0gaWNvbiBuYW1lcyFgLHNldFRpbWVvdXQoKCk9Pnt1LnRleHRDb250ZW50PWR9LDJlMyl9KX0saT1uPT57bGV0IG89bi50YXJnZXQudmFsdWUudG9Mb3dlckNhc2UoKS50cmltKCkscz1uLnRhcmdldC5jbG9zZXN0KCIuZGVtb0NvbnRhaW5lciIpO3MucXVlcnlTZWxlY3RvckFsbCgiLmljb25Db250YWluZXIiKS5mb3JFYWNoKGM9PntsZXQgdT1jLmdldEF0dHJpYnV0ZSgiZGF0YS1uYW1lIik7bz09PSIifHx1JiZ1LmluY2x1ZGVzKG8pP2MuY2xhc3NMaXN0LnJlbW92ZSgiaGlkZGVuIik6Yy5jbGFzc0xpc3QuYWRkKCJoaWRkZW4iKX0pLHMucXVlcnlTZWxlY3RvckFsbCgiLnNlY3Rpb24tY29udGFpbmVyIikuZm9yRWFjaChjPT57bGV0IHU9Yy5xdWVyeVNlbGVjdG9yQWxsKCIuaWNvbkNvbnRhaW5lcjpub3QoLmhpZGRlbikiKS5sZW5ndGgsZD1jLnF1ZXJ5U2VsZWN0b3IoIi5pY29uLWNvdW50Iik7aWYoZCl7bGV0IGg9Yy5jbGFzc0xpc3QuY29udGFpbnMoImZhLXNlY3Rpb24iKT9lLmxlbmd0aDp0Lmxlbmd0aDtkLnRleHRDb250ZW50PXU9PT1oP2Ake2h9IGljb25zYDpgJHt1fSBvZiAke2h9IGljb25zYH19KX0sYT0obixvKT0+e2xldCBzPWAke299OiR7bn1gO25hdmlnYXRvci5jbGlwYm9hcmQud3JpdGVUZXh0KHMpLnRoZW4oKCk9PntsZXQgdT13aW5kb3cuZXZlbnQuY3VycmVudFRhcmdldC5xdWVyeVNlbGVjdG9yKCIuY29weS10b29sdGlwIik7dSYmKHUudGV4dENvbnRlbnQ9IkNvcGllZCEiLHNldFRpbWVvdXQoKCk9Pnt1LnRleHRDb250ZW50PSJDbGljayB0byBjb3B5In0sMmUzKSl9KX07cmV0dXJuIENgCiAgPHN0eWxlPgogICAgLmRlbW9Db250YWluZXIgewogICAgICB3aWR0aDogMTAwJTsKICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDsKICAgICAgZGlzcGxheTogZmxleDsKICAgICAgZmxleC13cmFwOiB3cmFwOwogICAgICBiYWNrZ3JvdW5kOiAjMTExMTExOwogICAgICBwYWRkaW5nOiAyMHB4OwogICAgICBmb250LXNpemU6IDMwcHg7CiAgICAgIGZvbnQtZmFtaWx5OiAtYXBwbGUtc3lzdGVtLCBCbGlua01hY1N5c3RlbUZvbnQsICJTZWdvZSBVSSIsIFJvYm90bywgT3h5Z2VuLVNhbnMsIFVidW50dSwgQ2FudGFyZWxsLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmOwogICAgfQogICAgCiAgICAuc2VhcmNoLWNvbnRhaW5lciB7CiAgICAgIHdpZHRoOiAxMDAlOwogICAgICBtYXJnaW4tYm90dG9tOiAyMHB4OwogICAgICBkaXNwbGF5OiBmbGV4OwogICAgICBnYXA6IDEwcHg7CiAgICB9CiAgICAKICAgICNpY29uU2VhcmNoIHsKICAgICAgZmxleDogMTsKICAgICAgcGFkZGluZzogMTJweCAxNnB4OwogICAgICBmb250LXNpemU6IDE2cHg7CiAgICAgIGJvcmRlcjogbm9uZTsKICAgICAgYm9yZGVyLXJhZGl1czogNHB4OwogICAgICBiYWNrZ3JvdW5kOiAjMjIyOwogICAgICBjb2xvcjogI2ZmZjsKICAgICAgYm9yZGVyOiAxcHggc29saWQgIzMzMzsKICAgIH0KICAgIAogICAgI2ljb25TZWFyY2g6Zm9jdXMgewogICAgICBvdXRsaW5lOiBub25lOwogICAgICBib3JkZXItY29sb3I6ICNlNDAwMmI7CiAgICB9CiAgICAKICAgIC5jb3B5LWFsbC1idXR0b24gewogICAgICBwYWRkaW5nOiAxMnB4IDIwcHg7CiAgICAgIGZvbnQtc2l6ZTogMTZweDsKICAgICAgYm9yZGVyOiBub25lOwogICAgICBib3JkZXItcmFkaXVzOiA0cHg7CiAgICAgIGJhY2tncm91bmQ6ICNlNDAwMmI7CiAgICAgIGNvbG9yOiAjZmZmOwogICAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICAgIHRyYW5zaXRpb246IGFsbCAwLjJzOwogICAgICB3aGl0ZS1zcGFjZTogbm93cmFwOwogICAgfQogICAgCiAgICAuY29weS1hbGwtYnV0dG9uOmhvdmVyIHsKICAgICAgYmFja2dyb3VuZDogI2M0MDAxYjsKICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0xcHgpOwogICAgfQogICAgCiAgICAuY29weS1hbGwtYnV0dG9uOmFjdGl2ZSB7CiAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgwKTsKICAgIH0KICAgIAogICAgZGVlcy1pY29uIHsKICAgICAgdHJhbnNpdGlvbjogYWxsIDAuMnMgZWFzZTsKICAgICAgY29sb3I6ICNmZmZmZmY7CiAgICB9CgogICAgLmljb25Db250YWluZXIgewogICAgICBkaXNwbGF5OiBmbGV4OwogICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICBwYWRkaW5nOiAyMHB4IDE2cHggMHB4IDE2cHg7CiAgICAgIGJvcmRlcjogMXB4IHNvbGlkICMzMzMzMzM7CiAgICAgIG1hcmdpbi1yaWdodDogMTBweDsKICAgICAgbWFyZ2luLWJvdHRvbTogMTBweDsKICAgICAgYm9yZGVyLXJhZGl1czogNHB4OwogICAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kLWNvbG9yIDAuMnM7CiAgICAgIGN1cnNvcjogcG9pbnRlcjsKICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgfQogICAgCiAgICAuaWNvbkNvbnRhaW5lcjpob3ZlciB7CiAgICAgIGJhY2tncm91bmQtY29sb3I6ICMyMjI7CiAgICB9CgogICAgLmljb25OYW1lIHsKICAgICAgZm9udC1zaXplOiAxMnB4OwogICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7CiAgICAgIGNvbG9yOiAjY2NjOwogICAgICBiYWNrZ3JvdW5kOiAjMzMzMzMzOwogICAgICBwYWRkaW5nOiA2cHggMTBweDsKICAgICAgbWFyZ2luLWxlZnQ6IC0xNnB4OwogICAgICBtYXJnaW4tcmlnaHQ6IC0xNnB4OwogICAgICBtYXJnaW4tdG9wOiAyMHB4OwogICAgICB3aGl0ZS1zcGFjZTogbm93cmFwOwogICAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpczsKICAgICAgbWF4LXdpZHRoOiAxMjBweDsKICAgICAgYm9yZGVyLXJhZGl1czogMCAwIDRweCA0cHg7CiAgICB9CgogICAgLnNlY3Rpb24tdGl0bGUgewogICAgICB3aWR0aDogMTAwJTsKICAgICAgY29sb3I6ICNmZmZmZmY7CiAgICAgIGZvbnQtc2l6ZTogMjRweDsKICAgICAgbWFyZ2luOiAyMHB4IDA7CiAgICAgIHBhZGRpbmctYm90dG9tOiAxMHB4OwogICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgIzMzMzMzMzsKICAgICAgZGlzcGxheTogZmxleDsKICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuOwogICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgfQogICAgCiAgICAuYXBpLW5vdGUgewogICAgICBmb250LXNpemU6IDE0cHg7CiAgICAgIGNvbG9yOiAjZTQwMDJiOwogICAgICBtYXJnaW4tYm90dG9tOiAyMHB4OwogICAgICBwYWRkaW5nOiAxMHB4OwogICAgICBib3JkZXI6IDFweCBzb2xpZCAjZTQwMDJiOwogICAgICBib3JkZXItcmFkaXVzOiA0cHg7CiAgICAgIGJhY2tncm91bmQ6IHJnYmEoMjI4LCAwLCA0MywgMC4xKTsKICAgIH0KICAgIAogICAgLmljb24tY291bnQgewogICAgICBmb250LXNpemU6IDE0cHg7CiAgICAgIGNvbG9yOiAjODg4OwogICAgICBmb250LXdlaWdodDogbm9ybWFsOwogICAgICBiYWNrZ3JvdW5kOiAjMjIyOwogICAgICBwYWRkaW5nOiA1cHggMTBweDsKICAgICAgYm9yZGVyLXJhZGl1czogMjBweDsKICAgIH0KICAgIAogICAgLmljb25zLWdyaWQgewogICAgICBkaXNwbGF5OiBmbGV4OwogICAgICBmbGV4LXdyYXA6IHdyYXA7CiAgICAgIHdpZHRoOiAxMDAlOwogICAgfQogICAgCiAgICAuc2VjdGlvbi1jb250YWluZXIgewogICAgICB3aWR0aDogMTAwJTsKICAgICAgbWFyZ2luLWJvdHRvbTogMzBweDsKICAgIH0KICAgIAogICAgLmNvcHktdG9vbHRpcCB7CiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgYmFja2dyb3VuZDogIzMzMzsKICAgICAgY29sb3I6IHdoaXRlOwogICAgICBwYWRkaW5nOiA1cHggMTBweDsKICAgICAgYm9yZGVyLXJhZGl1czogNHB4OwogICAgICBmb250LXNpemU6IDEycHg7CiAgICAgIHRvcDogLTMwcHg7CiAgICAgIG9wYWNpdHk6IDA7CiAgICAgIHRyYW5zaXRpb246IG9wYWNpdHkgMC4zczsKICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7CiAgICB9CiAgICAKICAgIC5pY29uQ29udGFpbmVyOmhvdmVyIC5jb3B5LXRvb2x0aXAgewogICAgICBvcGFjaXR5OiAxOwogICAgfQoKICAgIC5pY29uQ29udGFpbmVyOmhvdmVyIGRlZXMtaWNvbiB7CiAgICAgIHRyYW5zZm9ybTogc2NhbGUoMS4xKTsKICAgIH0KICAgIAogICAgLmhpZGRlbiB7CiAgICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDsKICAgIH0KICA8L3N0eWxlPgogIAogIDxkaXYgY2xhc3M9ImRlbW9Db250YWluZXIiPgogICAgPGRpdiBjbGFzcz0ic2VhcmNoLWNvbnRhaW5lciI+CiAgICAgIDxpbnB1dCB0eXBlPSJ0ZXh0IiBpZD0iaWNvblNlYXJjaCIgcGxhY2Vob2xkZXI9IlNlYXJjaCBpY29ucy4uLiIgQGlucHV0PSR7aX0+CiAgICAgIDxidXR0b24gY2xhc3M9ImNvcHktYWxsLWJ1dHRvbiIgQGNsaWNrPSR7cn0+8J+TiyBDb3B5IEFsbCBJY29uIE5hbWVzPC9idXR0b24+CiAgICA8L2Rpdj4KICAgIAogICAgPGRpdiBjbGFzcz0iYXBpLW5vdGUiPgogICAgICBOZXcgQVBJOiBVc2UgPGNvZGU+aWNvbj0iZmE6aWNvbk5hbWUiPC9jb2RlPiBvciA8Y29kZT5pY29uPSJsdWNpZGU6aWNvbk5hbWUiPC9jb2RlPiBpbnN0ZWFkIG9mIDxjb2RlPmljb25GQTwvY29kZT4uIAogICAgICBDbGljayBhbnkgaWNvbiB0byBjb3B5IGl0cyBuZXcgZm9ybWF0IHRvIGNsaXBib2FyZC4KICAgIDwvZGl2PgogICAgCiAgICA8ZGl2IGNsYXNzPSJzZWN0aW9uLWNvbnRhaW5lciBmYS1zZWN0aW9uIj4KICAgICAgPGRpdiBjbGFzcz0ic2VjdGlvbi10aXRsZSI+CiAgICAgICAgRm9udEF3ZXNvbWUgSWNvbnMKICAgICAgICA8c3BhbiBjbGFzcz0iaWNvbi1jb3VudCI+JHtlLmxlbmd0aH0gaWNvbnM8L3NwYW4+CiAgICAgIDwvZGl2PgogICAgICA8ZGl2IGNsYXNzPSJpY29ucy1ncmlkIj4KICAgICAgICAke2UubWFwKG49PntsZXQgbz1gZmE6JHtufWA7cmV0dXJuIENgCiAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iaWNvbkNvbnRhaW5lciBmYS1pY29uIiBkYXRhLW5hbWU9JHtuLnRvTG93ZXJDYXNlKCl9IEBjbGljaz0keygpPT5hKG4sImZhIil9PgogICAgICAgICAgICAgICAgPGRlZXMtaWNvbiAuaWNvbj0ke299IGljb25TaXplPSIyNCI+PC9kZWVzLWljb24+CiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJpY29uTmFtZSI+ZmE6JHtufTwvZGl2PgogICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImNvcHktdG9vbHRpcCI+Q2xpY2sgdG8gY29weTwvc3Bhbj4KICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgYH0pfQogICAgICA8L2Rpdj4KICAgIDwvZGl2PgoKICAgIDxkaXYgY2xhc3M9InNlY3Rpb24tY29udGFpbmVyIGx1Y2lkZS1zZWN0aW9uIj4KICAgICAgPGRpdiBjbGFzcz0ic2VjdGlvbi10aXRsZSI+CiAgICAgICAgTHVjaWRlIEljb25zCiAgICAgICAgPHNwYW4gY2xhc3M9Imljb24tY291bnQiPiR7dC5sZW5ndGh9IGljb25zPC9zcGFuPgogICAgICA8L2Rpdj4KICAgICAgPGRpdiBjbGFzcz0iaWNvbnMtZ3JpZCI+CiAgICAgICAgJHt0Lm1hcChuPT57bGV0IG89YGx1Y2lkZToke259YDtyZXR1cm4gQ2AKICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJpY29uQ29udGFpbmVyIGx1Y2lkZS1pY29uIiBkYXRhLW5hbWU9JHtuLnRvTG93ZXJDYXNlKCl9IEBjbGljaz0keygpPT5hKG4sImx1Y2lkZSIpfT4KICAgICAgICAgICAgICAgIDxkZWVzLWljb24gLmljb249JHtvfSBpY29uU2l6ZT0iMjQiPjwvZGVlcy1pY29uPgogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iaWNvbk5hbWUiPmx1Y2lkZToke259PC9kaXY+CiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iY29weS10b29sdGlwIj5DbGljayB0byBjb3B5PC9zcGFuPgogICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICBgfSl9CiAgICAgIDwvZGl2PgogICAgPC9kaXY+CiAgPC9kaXY+CiAgYH19KTtmdW5jdGlvbiBJWnIoKXtKcC5zaXplPlAyciYmQXJyYXkuZnJvbShKcC5rZXlzKCkpLnNsaWNlKDAsUDJyLzUpLmZvckVhY2godD0+SnAuZGVsZXRlKHQpKX12YXIga04sWDNlLFFwLHoyLCRacixNTixKcCxQMnIsTjJyLG9yPXAoKCk9Pnt4ZSgpO0t0KCk7SmUoKTtMaXQoKTtJM3QoKTtLNXQoKTtqUHQoKTtJMnIoKTtrTj1lcih3TigpLDEpLFgzZT1lcih3TigpLDEpLFFwPWZ1bmN0aW9uKGUsdCxyLGksYSxuKXtmdW5jdGlvbiBvKHkpe2lmKHkhPT12b2lkIDAmJnR5cGVvZiB5IT0iZnVuY3Rpb24iKXRocm93IG5ldyBUeXBlRXJyb3IoIkZ1bmN0aW9uIGV4cGVjdGVkIik7cmV0dXJuIHl9Zm9yKHZhciBzPWkua2luZCxsPXM9PT0iZ2V0dGVyIj8iZ2V0IjpzPT09InNldHRlciI/InNldCI6InZhbHVlIixjPSF0JiZlP2kuc3RhdGljP2U6ZS5wcm90b3R5cGU6bnVsbCx1PXR8fChjP09iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoYyxpLm5hbWUpOnt9KSxkLGg9ITEsZj1yLmxlbmd0aC0xO2Y+PTA7Zi0tKXt2YXIgeD17fTtmb3IodmFyIHYgaW4gaSl4W3ZdPXY9PT0iYWNjZXNzIj97fTppW3ZdO2Zvcih2YXIgdiBpbiBpLmFjY2Vzcyl4LmFjY2Vzc1t2XT1pLmFjY2Vzc1t2XTt4LmFkZEluaXRpYWxpemVyPWZ1bmN0aW9uKHkpe2lmKGgpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGFkZCBpbml0aWFsaXplcnMgYWZ0ZXIgZGVjb3JhdGlvbiBoYXMgY29tcGxldGVkIik7bi5wdXNoKG8oeXx8bnVsbCkpfTt2YXIgYj0oMCxyW2ZdKShzPT09ImFjY2Vzc29yIj97Z2V0OnUuZ2V0LHNldDp1LnNldH06dVtsXSx4KTtpZihzPT09ImFjY2Vzc29yIil7aWYoYj09PXZvaWQgMCljb250aW51ZTtpZihiPT09bnVsbHx8dHlwZW9mIGIhPSJvYmplY3QiKXRocm93IG5ldyBUeXBlRXJyb3IoIk9iamVjdCBleHBlY3RlZCIpOyhkPW8oYi5nZXQpKSYmKHUuZ2V0PWQpLChkPW8oYi5zZXQpKSYmKHUuc2V0PWQpLChkPW8oYi5pbml0KSkmJmEudW5zaGlmdChkKX1lbHNlKGQ9byhiKSkmJihzPT09ImZpZWxkIj9hLnVuc2hpZnQoZCk6dVtsXT1kKX1jJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoYyxpLm5hbWUsdSksaD0hMH0sejI9ZnVuY3Rpb24oZSx0LHIpe2Zvcih2YXIgaT1hcmd1bWVudHMubGVuZ3RoPjIsYT0wO2E8dC5sZW5ndGg7YSsrKXI9aT90W2FdLmNhbGwoZSxyKTp0W2FdLmNhbGwoZSk7cmV0dXJuIGk/cjp2b2lkIDB9LCRacj17YXJyb3dSaWdodDpzRSxhcnJvd1VwUmlnaHRGcm9tU3F1YXJlOnJiLGJlbGw6WkQsYnVnOmRFLGJ1aWxkaW5nOmFFLGNhcmV0TGVmdDpKRCxjYXJldFJpZ2h0OllELGNoZWNrOm9FLGNpcmNsZUluZm86YWIsY2lyY2xlQ2hlY2s6Q2csY2lyY2xlQ2hlY2tTb2xpZDpKZyxjaXJjbGVYbWFyazpQcCxjaXJjbGVYbWFya1NvbGlkOkJwLGNsb2NrUm90YXRlTGVmdDpLZyxjb3B5OlhBLGNvcHlTb2xpZDp1RSxkZXNrdG9wOmliLGV5ZTpRRCxleWVTbGFzaDpwRSxmaWxlSW52b2ljZTpsRSxmaWxlSW52b2ljZURvbGxlcjpjRSxnZWFyOlhnLGdyaXA6SHAsbWFnbmlmeWluZ0dsYXNzOkdnLG1lc3NhZ2U6U2csbWVzc2FnZVNvbGlkOlVnLG1vbmV5Q2hlY2tEb2xsYXI6dGIsbXVnSG90OmhFLG1pbnVzOlZnLG5ldHdvcmtXaXJlZDpyRSxwYXBlcmNsaXA6bkUscGFzdGU6a2cscGFzdGVTb2xpZDpqZyxwZW5Ub1NxdWFyZTpZZyxwbHVzOmViLHJlY2VpcHQ6S0QscnNzOldnLHNoYXJlOlpnLHN1bjpaQSxzdW5Tb2xpZDp0RSx0ZXJtaW5hbDppRSx0cmFzaDpuYix0cmFzaFNvbGlkOm5iLHRyYXNoQ2FuOnpnLHRyYXNoQ2FuU29saWQ6UWcsdXNlcnM6ZUUsd2FsbGV0OlhELHhtYXJrOkQ0LGZhY2Vib29rOk5BLGdvb2dsZTpJQSxpbnN0YWdyYW06UkEsbGlua2VkaW46UEEsbWVkaXVtOnlnLHNsYWNrOkZBLHRpa3RvazpPQSx0d2l0dGVyOkJBfSxNTj17ZmE6JFpyfSxKcD1uZXcgTWFwLFAycj01MDA7TjJyPSgoKT0+e2xldCBlPVt5ZSgiZGVlcy1pY29uIildLHQscj1bXSxpLGE9emUsbixvPVtdLHM9W10sbCxjPVtdLHU9W10sZCxoPVtdLGY9W10seCx2PVtdLGI9W10seSx3PVtdLGs9W107dmFyIE89Y2xhc3MgZXh0ZW5kcyBhe3N0YXRpY3tpPXRoaXN9c3RhdGlje2xldCB6PXR5cGVvZiBTeW1ib2w9PSJmdW5jdGlvbiImJlN5bWJvbC5tZXRhZGF0YT9PYmplY3QuY3JlYXRlKGFbU3ltYm9sLm1ldGFkYXRhXT8/bnVsbCk6dm9pZCAwO249W2ooe3R5cGU6U3RyaW5nLGNvbnZlcnRlcjp7ZnJvbUF0dHJpYnV0ZTpNPT5NLHRvQXR0cmlidXRlOk09Pk19fSldLGw9W2ooe3R5cGU6U3RyaW5nLGNvbnZlcnRlcjp7ZnJvbUF0dHJpYnV0ZTpNPT5NLHRvQXR0cmlidXRlOk09Pk19fSldLGQ9W2ooe3R5cGU6TnVtYmVyfSldLHg9W2ooe3R5cGU6U3RyaW5nfSldLHk9W2ooe3R5cGU6TnVtYmVyfSldLFFwKHRoaXMsbnVsbCxuLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiaWNvbkZBIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpNPT4iaWNvbkZBImluIE0sZ2V0Ok09Pk0uaWNvbkZBLHNldDooTSxGKT0+e00uaWNvbkZBPUZ9fSxtZXRhZGF0YTp6fSxvLHMpLFFwKHRoaXMsbnVsbCxsLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiaWNvbiIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6TT0+Imljb24iaW4gTSxnZXQ6TT0+TS5pY29uLHNldDooTSxGKT0+e00uaWNvbj1GfX0sbWV0YWRhdGE6en0sYyx1KSxRcCh0aGlzLG51bGwsZCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6Imljb25TaXplIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpNPT4iaWNvblNpemUiaW4gTSxnZXQ6TT0+TS5pY29uU2l6ZSxzZXQ6KE0sRik9PntNLmljb25TaXplPUZ9fSxtZXRhZGF0YTp6fSxoLGYpLFFwKHRoaXMsbnVsbCx4LHtraW5kOiJhY2Nlc3NvciIsbmFtZToiY29sb3IiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOk09PiJjb2xvciJpbiBNLGdldDpNPT5NLmNvbG9yLHNldDooTSxGKT0+e00uY29sb3I9Rn19LG1ldGFkYXRhOnp9LHYsYiksUXAodGhpcyxudWxsLHkse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJzdHJva2VXaWR0aCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6TT0+InN0cm9rZVdpZHRoImluIE0sZ2V0Ok09Pk0uc3Ryb2tlV2lkdGgsc2V0OihNLEYpPT57TS5zdHJva2VXaWR0aD1GfX0sbWV0YWRhdGE6en0sdyxrKSxRcChudWxsLHQ9e3ZhbHVlOml9LGUse2tpbmQ6ImNsYXNzIixuYW1lOmkubmFtZSxtZXRhZGF0YTp6fSxudWxsLHIpLE89aT10LnZhbHVlLHomJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShpLFN5bWJvbC5tZXRhZGF0YSx7ZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITAsdmFsdWU6en0pfXN0YXRpYyBkZW1vPSQycjtzdGF0aWMgZGVtb0dyb3Vwcz1bIlV0aWxpdHkiXTsjZT16Mih0aGlzLG8sdm9pZCAwKTtnZXQgaWNvbkZBKCl7cmV0dXJuIHRoaXMuI2V9c2V0IGljb25GQSh6KXt0aGlzLiNlPXp9I3Q9KHoyKHRoaXMscyksejIodGhpcyxjLHZvaWQgMCkpO2dldCBpY29uKCl7cmV0dXJuIHRoaXMuI3R9c2V0IGljb24oeil7dGhpcy4jdD16fSNyPSh6Mih0aGlzLHUpLHoyKHRoaXMsaCx2b2lkIDApKTtnZXQgaWNvblNpemUoKXtyZXR1cm4gdGhpcy4jcn1zZXQgaWNvblNpemUoeil7dGhpcy4jcj16fSNpPSh6Mih0aGlzLGYpLHoyKHRoaXMsdiwiY3VycmVudENvbG9yIikpO2dldCBjb2xvcigpe3JldHVybiB0aGlzLiNpfXNldCBjb2xvcih6KXt0aGlzLiNpPXp9I2E9KHoyKHRoaXMsYiksejIodGhpcyx3LDIpKTtnZXQgc3Ryb2tlV2lkdGgoKXtyZXR1cm4gdGhpcy4jYX1zZXQgc3Ryb2tlV2lkdGgoeil7dGhpcy4jYT16fWxhc3RJY29uPSh6Mih0aGlzLGspLG51bGwpO2xhc3RJY29uU2l6ZT1udWxsO2xhc3RDb2xvcj1udWxsO2xhc3RTdHJva2VXaWR0aD1udWxsO2NvbnN0cnVjdG9yKCl7c3VwZXIoKSxkMS5zZXR1cCgpfWdldEVmZmVjdGl2ZUljb24oKXtyZXR1cm4gdGhpcy5pY29uP3RoaXMuaWNvbjp0aGlzLmljb25GQT90aGlzLmljb25GQS5zdGFydHNXaXRoKCJsdWNpZGU6Iik/dGhpcy5pY29uRkE6YGZhOiR7dGhpcy5pY29uRkF9YDpudWxsfXBhcnNlSWNvblN0cmluZyh6KXtsZXQgTT16LnRvTG93ZXJDYXNlKCk7cmV0dXJuIE0uc3RhcnRzV2l0aCgiZmE6Iik/e3R5cGU6ImZhIixuYW1lOnouc3Vic3RyaW5nKDMpfTpNLnN0YXJ0c1dpdGgoImx1Y2lkZToiKT97dHlwZToibHVjaWRlIixuYW1lOnouc3Vic3RyaW5nKDcpfTp7dHlwZToibHVjaWRlIixuYW1lOnp9fXJlbmRlckx1Y2lkZUljb24oeil7bGV0IE09YGx1Y2lkZToke3p9OiR7dGhpcy5pY29uU2l6ZX06JHt0aGlzLmNvbG9yfToke3RoaXMuc3Ryb2tlV2lkdGh9YDtpZihKcC5oYXMoTSkpcmV0dXJuIEpwLmdldChNKXx8IiI7dHJ5e2xldCBGPXouY2hhckF0KDApLnRvVXBwZXJDYXNlKCkrei5zbGljZSgxKTtpZigha05bRl0pcmV0dXJuIGNvbnNvbGUud2FybihgTHVjaWRlIGljb24gJyR7Rn0nIG5vdCBmb3VuZCBpbiBsdWNpZGVJY29ucyBvYmplY3RgKSwiIjtsZXQgRD0oMCxYM2UuY3JlYXRlRWxlbWVudCkoa05bRl0se2NvbG9yOnRoaXMuY29sb3Isc2l6ZTp0aGlzLmljb25TaXplLHN0cm9rZVdpZHRoOnRoaXMuc3Ryb2tlV2lkdGh9KTtpZighRClyZXR1cm4gY29uc29sZS53YXJuKGBjcmVhdGVFbGVtZW50IHJldHVybmVkIGVtcHR5IHJlc3VsdCBmb3IgJHtGfWApLCIiO2xldCBOPUQub3V0ZXJIVE1MO3JldHVybiBKcC5zZXQoTSxOKSxJWnIoKSxOfWNhdGNoKEYpe3JldHVybiBjb25zb2xlLmVycm9yKGBFcnJvciByZW5kZXJpbmcgTHVjaWRlIGljb24gJHt6fTpgLEYpLGA8c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgd2lkdGg9IiR7dGhpcy5pY29uU2l6ZX0iIGhlaWdodD0iJHt0aGlzLmljb25TaXplfSIgdmlld0JveD0iMCAwIDI0IDI0IiBmaWxsPSJub25lIiBzdHJva2U9IiR7dGhpcy5jb2xvcn0iIHN0cm9rZS13aWR0aD0iJHt0aGlzLnN0cm9rZVdpZHRofSIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBzdHJva2UtbGluZWpvaW49InJvdW5kIj4KICAgICAgICA8dGV4dCB4PSI1MCUiIHk9IjUwJSIgZm9udC1zaXplPSI2IiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBkb21pbmFudC1iYXNlbGluZT0ibWlkZGxlIiBmaWxsPSIke3RoaXMuY29sb3J9Ij4ke3p9PC90ZXh0PgogICAgICA8L3N2Zz5gfX1zdGF0aWMgc3R5bGVzPVtEZSxtLmRlZmF1bHRTdHlsZXMsb2VgCiAgICAgIC8qIFRPRE86IE1pZ3JhdGUgaGFyZGNvZGVkIHZhbHVlcyB0byAtLWRlZXMtKiBDU1MgdmFyaWFibGVzICovCiAgICAgIDpob3N0IHsKICAgICAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOwogICAgICAgIGxpbmUtaGVpZ2h0OiAxOwogICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7CiAgICAgIH0KCiAgICAgIC8qIEltcHJvdmUgcmVuZGVyaW5nIHBlcmZvcm1hbmNlICovCiAgICAgICNpY29uQ29udGFpbmVyIHN2ZyB7CiAgICAgICAgZGlzcGxheTogYmxvY2s7CiAgICAgICAgaGVpZ2h0OiAxMDAlOwogICAgICAgIHdpZHRoOiAxMDAlOwogICAgICAgIHdpbGwtY2hhbmdlOiB0cmFuc2Zvcm07IC8qIEhlbHBzIHdpdGggYW5pbWF0aW9ucyAqLwogICAgICAgIGNvbnRhaW46IHN0cmljdDsgLyogUGVyZm9ybWFuY2Ugb3B0aW1pemF0aW9uICovCiAgICAgIH0KICAgIGBdO3JlbmRlcigpe3JldHVybiBDYAogICAgICAke2QxLnN0eWxlc30KICAgICAgPHN0eWxlPgogICAgICAgICNpY29uQ29udGFpbmVyIHsKICAgICAgICAgIHdpZHRoOiAke3RoaXMuaWNvblNpemV9cHg7CiAgICAgICAgICBoZWlnaHQ6ICR7dGhpcy5pY29uU2l6ZX1weDsKICAgICAgICB9CiAgICAgIDwvc3R5bGU+CiAgICAgIDxkaXYgaWQ9Imljb25Db250YWluZXIiPjwvZGl2PgogICAgYH11cGRhdGVkKCl7dGhpcy5pY29uU2l6ZXx8KHRoaXMuaWNvblNpemU9cGFyc2VJbnQoZ2xvYmFsVGhpcy5nZXRDb21wdXRlZFN0eWxlKHRoaXMpLmZvbnRTaXplLnJlcGxhY2UoL1xEL2csIiIpKSk7bGV0IHo9dGhpcy5nZXRFZmZlY3RpdmVJY29uKCk7aWYodGhpcy5sYXN0SWNvbj09PXomJnRoaXMubGFzdEljb25TaXplPT09dGhpcy5pY29uU2l6ZSYmdGhpcy5sYXN0Q29sb3I9PT10aGlzLmNvbG9yJiZ0aGlzLmxhc3RTdHJva2VXaWR0aD09PXRoaXMuc3Ryb2tlV2lkdGgpcmV0dXJuO3RoaXMubGFzdEljb249eix0aGlzLmxhc3RJY29uU2l6ZT10aGlzLmljb25TaXplLHRoaXMubGFzdENvbG9yPXRoaXMuY29sb3IsdGhpcy5sYXN0U3Ryb2tlV2lkdGg9dGhpcy5zdHJva2VXaWR0aDtsZXQgTT10aGlzLnNoYWRvd1Jvb3Q/LnF1ZXJ5U2VsZWN0b3IoIiNpY29uQ29udGFpbmVyIik7aWYoISghTXx8IXopKXRyeXtsZXR7dHlwZTpGLG5hbWU6RH09dGhpcy5wYXJzZUljb25TdHJpbmcoeik7aWYoRj09PSJsdWNpZGUiKXtNLmlubmVySFRNTD0iIjt0cnl7bGV0IE49RC5jaGFyQXQoMCkudG9VcHBlckNhc2UoKStELnNsaWNlKDEpO2lmKGtOW05dKXtsZXQgUj0oMCxYM2UuY3JlYXRlRWxlbWVudCkoa05bTl0se2NvbG9yOnRoaXMuY29sb3Isc2l6ZTp0aGlzLmljb25TaXplLHN0cm9rZVdpZHRoOnRoaXMuc3Ryb2tlV2lkdGh9KTtpZihSKXtNLmFwcGVuZENoaWxkKFIpO3JldHVybn19dGhyb3cgbmV3IEVycm9yKGBDb3VsZCBub3QgY3JlYXRlIGVsZW1lbnQgZm9yICR7Tn1gKX1jYXRjaChOKXtjb25zb2xlLmVycm9yKCJFcnJvciByZW5kZXJpbmcgTHVjaWRlIGljb246IixOKTtsZXQgUj10aGlzLnJlbmRlckx1Y2lkZUljb24oRCk7UiYmKE0uaW5uZXJIVE1MPVIpfX1lbHNle2xldCBOPU1OLmZhW0RdO2lmKE4pe2xldCBSPUZhZShOKS5odG1sWzBdO00uaW5uZXJIVE1MPVJ9ZWxzZSBjb25zb2xlLndhcm4oYEZvbnRBd2Vzb21lIGljb24gbm90IGZvdW5kOiAke0R9YCl9fWNhdGNoKEYpe2NvbnNvbGUuZXJyb3IoYEVycm9yIHVwZGF0aW5nIGljb24gJHt6fTpgLEYpfX1hc3luYyBkaXNjb25uZWN0ZWRDYWxsYmFjaygpe3N1cGVyLmRpc2Nvbm5lY3RlZENhbGxiYWNrKCksdGhpcy5sYXN0SWNvbj1udWxsLHRoaXMubGFzdEljb25TaXplPW51bGwsdGhpcy5sYXN0Q29sb3I9bnVsbCx0aGlzLmxhc3RTdHJva2VXaWR0aD1udWxsfXN0YXRpY3t6MihpLHIpfX07cmV0dXJuIE89aX0pKCl9KTt2YXIgRjJyLFEzZSxTcixNaT1wKCgpPT57d2koKTtZcnQoKTt4ZSgpO0t0KCk7cGMoKTt4bygpO29yKCk7SmUoKTtGMnI9ZnVuY3Rpb24oZSx0LHIsaSxhLG4pe2Z1bmN0aW9uIG8oeSl7aWYoeSE9PXZvaWQgMCYmdHlwZW9mIHkhPSJmdW5jdGlvbiIpdGhyb3cgbmV3IFR5cGVFcnJvcigiRnVuY3Rpb24gZXhwZWN0ZWQiKTtyZXR1cm4geX1mb3IodmFyIHM9aS5raW5kLGw9cz09PSJnZXR0ZXIiPyJnZXQiOnM9PT0ic2V0dGVyIj8ic2V0IjoidmFsdWUiLGM9IXQmJmU/aS5zdGF0aWM/ZTplLnByb3RvdHlwZTpudWxsLHU9dHx8KGM/T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihjLGkubmFtZSk6e30pLGQsaD0hMSxmPXIubGVuZ3RoLTE7Zj49MDtmLS0pe3ZhciB4PXt9O2Zvcih2YXIgdiBpbiBpKXhbdl09dj09PSJhY2Nlc3MiP3t9Omlbdl07Zm9yKHZhciB2IGluIGkuYWNjZXNzKXguYWNjZXNzW3ZdPWkuYWNjZXNzW3ZdO3guYWRkSW5pdGlhbGl6ZXI9ZnVuY3Rpb24oeSl7aWYoaCl0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgYWRkIGluaXRpYWxpemVycyBhZnRlciBkZWNvcmF0aW9uIGhhcyBjb21wbGV0ZWQiKTtuLnB1c2gobyh5fHxudWxsKSl9O3ZhciBiPSgwLHJbZl0pKHM9PT0iYWNjZXNzb3IiP3tnZXQ6dS5nZXQsc2V0OnUuc2V0fTp1W2xdLHgpO2lmKHM9PT0iYWNjZXNzb3IiKXtpZihiPT09dm9pZCAwKWNvbnRpbnVlO2lmKGI9PT1udWxsfHx0eXBlb2YgYiE9Im9iamVjdCIpdGhyb3cgbmV3IFR5cGVFcnJvcigiT2JqZWN0IGV4cGVjdGVkIik7KGQ9byhiLmdldCkpJiYodS5nZXQ9ZCksKGQ9byhiLnNldCkpJiYodS5zZXQ9ZCksKGQ9byhiLmluaXQpKSYmYS51bnNoaWZ0KGQpfWVsc2UoZD1vKGIpKSYmKHM9PT0iZmllbGQiP2EudW5zaGlmdChkKTp1W2xdPWQpfWMmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShjLGkubmFtZSx1KSxoPSEwfSxRM2U9ZnVuY3Rpb24oZSx0LHIpe2Zvcih2YXIgaT1hcmd1bWVudHMubGVuZ3RoPjIsYT0wO2E8dC5sZW5ndGg7YSsrKXI9aT90W2FdLmNhbGwoZSxyKTp0W2FdLmNhbGwoZSk7cmV0dXJuIGk/cjp2b2lkIDB9LFNyPSgoKT0+e2xldCBlPVt5ZSgiZGVlcy1jb250ZXh0bWVudSIpXSx0LHI9W10saSxhPXplLG4sbz1bXSxzPVtdO3ZhciBsPWNsYXNzIGV4dGVuZHMgYXtzdGF0aWN7aT10aGlzfXN0YXRpY3tsZXQgYz10eXBlb2YgU3ltYm9sPT0iZnVuY3Rpb24iJiZTeW1ib2wubWV0YWRhdGE/T2JqZWN0LmNyZWF0ZShhW1N5bWJvbC5tZXRhZGF0YV0/P251bGwpOnZvaWQgMDtuPVtqKHt0eXBlOkFycmF5fSldLEYycih0aGlzLG51bGwsbix7a2luZDoiYWNjZXNzb3IiLG5hbWU6Im1lbnVJdGVtcyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6dT0+Im1lbnVJdGVtcyJpbiB1LGdldDp1PT51Lm1lbnVJdGVtcyxzZXQ6KHUsZCk9Pnt1Lm1lbnVJdGVtcz1kfX0sbWV0YWRhdGE6Y30sbyxzKSxGMnIobnVsbCx0PXt2YWx1ZTppfSxlLHtraW5kOiJjbGFzcyIsbmFtZTppLm5hbWUsbWV0YWRhdGE6Y30sbnVsbCxyKSxsPWk9dC52YWx1ZSxjJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoaSxTeW1ib2wubWV0YWRhdGEse2VudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwLHZhbHVlOmN9KX1zdGF0aWMgZGVtbz1HcnQ7c3RhdGljIGRlbW9Hcm91cHM9WyJPdmVybGF5Il07c3RhdGljIGNvbnRleHRNZW51RGVhY3RpdmF0ZWQ9ITE7c3RhdGljIGFjY3VtdWxhdGVkTWVudUl0ZW1zPVtdO3N0YXRpYyBpbml0aWFsaXplR2xvYmFsTGlzdGVuZXIoKXtkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCJjb250ZXh0bWVudSIsYz0+e2lmKHRoaXMuY29udGV4dE1lbnVEZWFjdGl2YXRlZClyZXR1cm47Yy5wcmV2ZW50RGVmYXVsdCgpLGwuYWNjdW11bGF0ZWRNZW51SXRlbXM9W107bGV0IHU9Yy5jb21wb3NlZFBhdGgoKTtmb3IobGV0IGQgb2YgdSlpZihkLmdldENvbnRleHRNZW51SXRlbXMpe2xldCBoPWQuZ2V0Q29udGV4dE1lbnVJdGVtcygpO2gmJmgubGVuZ3RoPjAmJihsLmFjY3VtdWxhdGVkTWVudUl0ZW1zLmxlbmd0aD4wJiZsLmFjY3VtdWxhdGVkTWVudUl0ZW1zLnB1c2goe2RpdmlkZXI6ITB9KSxsLmFjY3VtdWxhdGVkTWVudUl0ZW1zLnB1c2goLi4uaCkpfWwub3BlbkNvbnRleHRNZW51V2l0aE9wdGlvbnMoYyxsLmFjY3VtdWxhdGVkTWVudUl0ZW1zKX0pfXN0YXRpYyBhc3luYyBvcGVuQ29udGV4dE1lbnVXaXRoT3B0aW9ucyhjLHUpe2lmKHRoaXMuY29udGV4dE1lbnVEZWFjdGl2YXRlZClyZXR1cm47Yy5wcmV2ZW50RGVmYXVsdCgpLGMuc3RvcFByb3BhZ2F0aW9uKCk7bGV0IGQ9bmV3IGw7ZC5zdHlsZS5wb3NpdGlvbj0iZml4ZWQiLGQuc3R5bGUuekluZGV4PVN0cmluZyhmaS5vdmVybGF5LmNvbnRleHRNZW51KSxkLnN0eWxlLm9wYWNpdHk9IjAiLGQuc3R5bGUudHJhbnNmb3JtPSJzY2FsZSgwLjk1KSB0cmFuc2xhdGVZKC0xMHB4KSIsZC5tZW51SXRlbXM9dSxkLndpbmRvd0xheWVyPWF3YWl0ICRvLmNyZWF0ZUFuZFNob3coKSxkLndpbmRvd0xheWVyLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIixhc3luYyB5PT57eS50YXJnZXQuY2xvc2VzdCgiZGVlcy1jb250ZXh0bWVudSIpfHxhd2FpdCBkLmRlc3Ryb3koKX0pLGRvY3VtZW50LmJvZHkuYXBwZW5kKGQpLGF3YWl0IGp0LnNtYXJ0ZGVsYXkuZGVsYXlGb3IoMCk7bGV0IGg9ZC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKSxmPXdpbmRvdy5pbm5lcldpZHRoLHg9d2luZG93LmlubmVySGVpZ2h0LHY9Yy5jbGllbnRZLGI9Yy5jbGllbnRYO2IraC53aWR0aD5mJiYoYj1mLWgud2lkdGgtMTApLHYraC5oZWlnaHQ+eCYmKHY9eC1oLmhlaWdodC0xMCksYjwxMCYmKGI9MTApLHY8MTAmJih2PTEwKSxkLnN0eWxlLnRvcD1gJHt2fXB4YCxkLnN0eWxlLmxlZnQ9YCR7Yn1weGAsZC5zdHlsZS50cmFuc2Zvcm1PcmlnaW49InRvcCBsZWZ0Iixhd2FpdCBqdC5zbWFydGRlbGF5LmRlbGF5Rm9yKDApLGQuc3R5bGUub3BhY2l0eT0iMSIsZC5zdHlsZS50cmFuc2Zvcm09InNjYWxlKDEpIHRyYW5zbGF0ZVkoMCkifSNlPVEzZSh0aGlzLG8sW10pO2dldCBtZW51SXRlbXMoKXtyZXR1cm4gdGhpcy4jZX1zZXQgbWVudUl0ZW1zKGMpe3RoaXMuI2U9Y313aW5kb3dMYXllcj1RM2UodGhpcyxzKTtzdWJtZW51PW51bGw7c3VibWVudVRpbWVvdXQ9bnVsbDtwYXJlbnRNZW51PW51bGw7aXNEZXN0cm95aW5nPSExO2NvbnN0cnVjdG9yKCl7c3VwZXIoKSx0aGlzLnRhYkluZGV4PTB9c3RhdGljIHN0eWxlcz1bRGUsbS5kZWZhdWx0U3R5bGVzLG9lYAogICAgICAvKiBUT0RPOiBNaWdyYXRlIGhhcmRjb2RlZCB2YWx1ZXMgdG8gLS1kZWVzLSogQ1NTIHZhcmlhYmxlcyAqLwogICAgICA6aG9zdCB7CiAgICAgICAgZGlzcGxheTogYmxvY2s7CiAgICAgICAgdHJhbnNpdGlvbjogb3BhY2l0eSAwLjJzLCB0cmFuc2Zvcm0gMC4yczsKICAgICAgICBvdXRsaW5lOiBub25lOwogICAgICB9CgogICAgICAubWFpbmJveCB7CiAgICAgICAgbWluLXdpZHRoOiAyMDBweDsKICAgICAgICBtYXgtd2lkdGg6IDI4MHB4OwogICAgICAgIGJhY2tncm91bmQ6ICR7bS5iZFRoZW1lKCIjZmZmZmZmIiwiIzAwMDAwMCIpfTsKICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAke20uYmRUaGVtZSgiI2UwZTBlMCIsIiMyMDIwMjAiKX07CiAgICAgICAgYm9yZGVyLXJhZGl1czogNHB4OwogICAgICAgIGJveC1zaGFkb3c6ICR7bS5iZFRoZW1lKCIwIDRweCAxMnB4IHJnYmEoMCwgMCwgMCwgMC4xNSkiLCIwIDRweCAxMnB4IHJnYmEoMCwgMCwgMCwgMC4zKSIpfTsKICAgICAgICB1c2VyLXNlbGVjdDogbm9uZTsKICAgICAgICBwYWRkaW5nOiA0cHggMDsKICAgICAgICBmb250LXNpemU6IDEycHg7CiAgICAgICAgY29sb3I6ICR7bS5iZFRoZW1lKCIjMzMzIiwiI2NjYyIpfTsKICAgICAgfQoKICAgICAgLm1lbnVpdGVtIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgZ2FwOiA4cHg7CiAgICAgICAgcGFkZGluZzogOHB4IDEycHg7CiAgICAgICAgY3Vyc29yOiBkZWZhdWx0OwogICAgICAgIHRyYW5zaXRpb246IGJhY2tncm91bmQgMC4xczsKICAgICAgICBsaW5lLWhlaWdodDogMTsKICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgIH0KCiAgICAgIC5tZW51aXRlbTpob3ZlciB7CiAgICAgICAgYmFja2dyb3VuZDogJHttLmJkVGhlbWUoInJnYmEoMCwgMCwgMCwgMC4wNCkiLCJyZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMDgpIil9OwogICAgICB9CiAgICAgIAogICAgICAubWVudWl0ZW0uaGFzLXN1Ym1lbnU6OmFmdGVyIHsKICAgICAgICBjb250ZW50OiAn4oC6JzsKICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgICAgcmlnaHQ6IDhweDsKICAgICAgICBmb250LXNpemU6IDE2cHg7CiAgICAgICAgb3BhY2l0eTogMC41OwogICAgICB9CgogICAgICAubWVudWl0ZW06YWN0aXZlOm5vdCguaGFzLXN1Ym1lbnUpIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke20uYmRUaGVtZSgicmdiYSgwLCAwLCAwLCAwLjA4KSIsInJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xMikiKX07CiAgICAgIH0KICAgICAgCiAgICAgIC5tZW51aXRlbS5kaXNhYmxlZCB7CiAgICAgICAgb3BhY2l0eTogMC41OwogICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7CiAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7CiAgICAgIH0KCiAgICAgIC5tZW51aXRlbSBkZWVzLWljb24gewogICAgICAgIGZvbnQtc2l6ZTogMTRweDsKICAgICAgICBvcGFjaXR5OiAwLjc7CiAgICAgIH0KCiAgICAgIC5tZW51aXRlbS10ZXh0IHsKICAgICAgICBmbGV4OiAxOwogICAgICB9CgogICAgICAubWVudWl0ZW0tc2hvcnRjdXQgewogICAgICAgIGZvbnQtc2l6ZTogMTFweDsKICAgICAgICBjb2xvcjogJHttLmJkVGhlbWUoIiM5OTkiLCIjNjY2Iil9OwogICAgICAgIG1hcmdpbi1sZWZ0OiBhdXRvOwogICAgICAgIG9wYWNpdHk6IDAuNzsKICAgICAgfQoKICAgICAgLm1lbnUtZGl2aWRlciB7CiAgICAgICAgaGVpZ2h0OiAxcHg7CiAgICAgICAgYmFja2dyb3VuZDogJHttLmJkVGhlbWUoIiNlMGUwZTAiLCIjMjAyMDIwIil9OwogICAgICAgIG1hcmdpbjogNHB4IDA7CiAgICAgIH0KICAgIGBdO3JlbmRlcigpe3JldHVybiBDYAogICAgICA8ZGl2IGNsYXNzPSJtYWluYm94Ij4KICAgICAgICAke3RoaXMubWVudUl0ZW1zLm1hcChjPT57aWYoImRpdmlkZXIiaW4gYyYmYy5kaXZpZGVyKXJldHVybiBDYDxkaXYgY2xhc3M9Im1lbnUtZGl2aWRlciI+PC9kaXY+YDtsZXQgdT1jLGQ9dS5zdWJtZW51JiZ1LnN1Ym1lbnUubGVuZ3RoPjA7cmV0dXJuIENgCiAgICAgICAgICAgIDxkaXYgCiAgICAgICAgICAgICAgY2xhc3M9Im1lbnVpdGVtICR7dS5kaXNhYmxlZD8iZGlzYWJsZWQiOiIifSAke2Q/Imhhcy1zdWJtZW51IjoiIn0iIAogICAgICAgICAgICAgIEBjbGljaz0keygpPT4hdS5kaXNhYmxlZCYmIWQmJnRoaXMuaGFuZGxlQ2xpY2sodSl9CiAgICAgICAgICAgICAgQG1vdXNlZW50ZXI9JHsoKT0+dGhpcy5oYW5kbGVNZW51SXRlbUhvdmVyKHUsZCl9CiAgICAgICAgICAgICAgQG1vdXNlbGVhdmU9JHsoKT0+dGhpcy5oYW5kbGVNZW51SXRlbUxlYXZlKCl9CiAgICAgICAgICAgID4KICAgICAgICAgICAgICAke3UuaWNvbk5hbWU/Q2AKICAgICAgICAgICAgICAgIDxkZWVzLWljb24gLmljb249IiR7dS5pY29uTmFtZX0iPjwvZGVlcy1pY29uPgogICAgICAgICAgICAgIGA6IiJ9CiAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9Im1lbnVpdGVtLXRleHQiPiR7dS5uYW1lfTwvc3Bhbj4KICAgICAgICAgICAgICAke3Uuc2hvcnRjdXQmJiFkP0NgCiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0ibWVudWl0ZW0tc2hvcnRjdXQiPiR7dS5zaG9ydGN1dH08L3NwYW4+CiAgICAgICAgICAgICAgYDoiIn0KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICBgfSl9CiAgICAgICAgJHt0aGlzLm1lbnVJdGVtcy5sZW5ndGg9PT0wP0NgCiAgICAgICAgICAgIDxkaXYgY2xhc3M9Im1lbnVpdGVtIiBAY2xpY2s9JHsoKT0+e2wuY29udGV4dE1lbnVEZWFjdGl2YXRlZD0hMCx0aGlzLmRlc3Ryb3koKX19PgogICAgICAgICAgICAgIDxkZWVzLWljb24gLmljb249Imx1Y2lkZTp4Ij48L2RlZXMtaWNvbj4KICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0ibWVudWl0ZW0tdGV4dCI+QWxsb3cgbmF0aXZlIGNvbnRleHQ8L3NwYW4+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgIGA6Q2BgfQogICAgICA8L2Rpdj4KICAgIGB9YXN5bmMgZmlyc3RVcGRhdGVkKCl7dGhpcy5mb2N1cygpLHRoaXMuYWRkRXZlbnRMaXN0ZW5lcigia2V5ZG93biIsdGhpcy5oYW5kbGVLZXlkb3duKX1oYW5kbGVLZXlkb3duPWM9PntsZXQgdT1BcnJheS5mcm9tKHRoaXMuc2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yQWxsKCIubWVudWl0ZW06bm90KC5kaXNhYmxlZCkiKSksZD11LmZpbmRJbmRleChoPT5oLm1hdGNoZXMoIjpob3ZlciIpKTtzd2l0Y2goYy5rZXkpe2Nhc2UiQXJyb3dEb3duIjpjLnByZXZlbnREZWZhdWx0KCk7bGV0IGg9ZCsxPHUubGVuZ3RoP2QrMTowO3VbaF0uZGlzcGF0Y2hFdmVudChuZXcgTW91c2VFdmVudCgibW91c2VlbnRlciIpKTticmVhaztjYXNlIkFycm93VXAiOmMucHJldmVudERlZmF1bHQoKTtsZXQgZj1kLTE+PTA/ZC0xOnUubGVuZ3RoLTE7dVtmXS5kaXNwYXRjaEV2ZW50KG5ldyBNb3VzZUV2ZW50KCJtb3VzZWVudGVyIikpO2JyZWFrO2Nhc2UiRW50ZXIiOmMucHJldmVudERlZmF1bHQoKSxkPj0wJiZ1W2RdLmNsaWNrKCk7YnJlYWs7Y2FzZSJFc2NhcGUiOmMucHJldmVudERlZmF1bHQoKSx0aGlzLmRlc3Ryb3koKTticmVha319O2FzeW5jIGhhbmRsZUNsaWNrKGMpe2MuYWN0aW9uKCksYXdhaXQgdGhpcy5kZXN0cm95QWxsKCl9YXN5bmMgaGFuZGxlTWVudUl0ZW1Ib3ZlcihjLHUpe3RoaXMuc3VibWVudVRpbWVvdXQmJihjbGVhclRpbWVvdXQodGhpcy5zdWJtZW51VGltZW91dCksdGhpcy5zdWJtZW51VGltZW91dD1udWxsKSx0aGlzLnN1Ym1lbnUmJmF3YWl0IHRoaXMuaGlkZVN1Ym1lbnUoKSx1JiZjLnN1Ym1lbnUmJih0aGlzLnN1Ym1lbnVUaW1lb3V0PXNldFRpbWVvdXQoKCk9Pnt0aGlzLnNob3dTdWJtZW51KGMpfSwyMDApKX1oYW5kbGVNZW51SXRlbUxlYXZlKCl7dGhpcy5zdWJtZW51VGltZW91dCYmY2xlYXJUaW1lb3V0KHRoaXMuc3VibWVudVRpbWVvdXQpLHRoaXMuc3VibWVudVRpbWVvdXQ9c2V0VGltZW91dCgoKT0+e3RoaXMuc3VibWVudSYmIXRoaXMuc3VibWVudS5tYXRjaGVzKCI6aG92ZXIiKSYmdGhpcy5oaWRlU3VibWVudSgpfSwzMDApfWFzeW5jIHNob3dTdWJtZW51KGMpe2lmKCFjLnN1Ym1lbnV8fGMuc3VibWVudS5sZW5ndGg9PT0wKXJldHVybjtsZXQgZD1BcnJheS5mcm9tKHRoaXMuc2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yQWxsKCIubWVudWl0ZW0iKSkuZmluZCh3PT53LnF1ZXJ5U2VsZWN0b3IoIi5tZW51aXRlbS10ZXh0Iik/LnRleHRDb250ZW50PT09Yy5uYW1lKTtpZighZClyZXR1cm47dGhpcy5zdWJtZW51PW5ldyBsLHRoaXMuc3VibWVudS5tZW51SXRlbXM9Yy5zdWJtZW51LHRoaXMuc3VibWVudS5wYXJlbnRNZW51PXRoaXMsdGhpcy5zdWJtZW51LnN0eWxlLnBvc2l0aW9uPSJmaXhlZCIsdGhpcy5zdWJtZW51LnN0eWxlLnpJbmRleD1TdHJpbmcocGFyc2VJbnQodGhpcy5zdHlsZS56SW5kZXgpKzEpLHRoaXMuc3VibWVudS5zdHlsZS5vcGFjaXR5PSIwIix0aGlzLnN1Ym1lbnUuc3R5bGUudHJhbnNmb3JtPSJzY2FsZSgwLjk1KSIsZG9jdW1lbnQuYm9keS5hcHBlbmQodGhpcy5zdWJtZW51KSxhd2FpdCBqdC5zbWFydGRlbGF5LmRlbGF5Rm9yKDApO2xldCBoPWQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCksZj10aGlzLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLHg9dGhpcy5zdWJtZW51LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLHY9d2luZG93LmlubmVyV2lkdGgsYj1mLnJpZ2h0LTQseT1oLnRvcDtiK3gud2lkdGg+di0xMCYmKGI9Zi5sZWZ0LXgud2lkdGgrNCkseSt4LmhlaWdodD53aW5kb3cuaW5uZXJIZWlnaHQtMTAmJih5PXdpbmRvdy5pbm5lckhlaWdodC14LmhlaWdodC0xMCksdGhpcy5zdWJtZW51LnN0eWxlLmxlZnQ9YCR7Yn1weGAsdGhpcy5zdWJtZW51LnN0eWxlLnRvcD1gJHt5fXB4YCxhd2FpdCBqdC5zbWFydGRlbGF5LmRlbGF5Rm9yKDApLHRoaXMuc3VibWVudS5zdHlsZS5vcGFjaXR5PSIxIix0aGlzLnN1Ym1lbnUuc3R5bGUudHJhbnNmb3JtPSJzY2FsZSgxKSIsdGhpcy5zdWJtZW51LmFkZEV2ZW50TGlzdGVuZXIoIm1vdXNlZW50ZXIiLCgpPT57dGhpcy5zdWJtZW51VGltZW91dCYmKGNsZWFyVGltZW91dCh0aGlzLnN1Ym1lbnVUaW1lb3V0KSx0aGlzLnN1Ym1lbnVUaW1lb3V0PW51bGwpfSksdGhpcy5zdWJtZW51LmFkZEV2ZW50TGlzdGVuZXIoIm1vdXNlbGVhdmUiLCgpPT57dGhpcy5oYW5kbGVNZW51SXRlbUxlYXZlKCl9KX1hc3luYyBoaWRlU3VibWVudSgpe3RoaXMuc3VibWVudSYmKGF3YWl0IHRoaXMuc3VibWVudS5kZXN0cm95KCksdGhpcy5zdWJtZW51PW51bGwpfWFzeW5jIGRlc3Ryb3koKXt0aGlzLmlzRGVzdHJveWluZ3x8KHRoaXMuaXNEZXN0cm95aW5nPSEwLHRoaXMuc3VibWVudVRpbWVvdXQmJihjbGVhclRpbWVvdXQodGhpcy5zdWJtZW51VGltZW91dCksdGhpcy5zdWJtZW51VGltZW91dD1udWxsKSx0aGlzLnN1Ym1lbnUmJihhd2FpdCB0aGlzLnN1Ym1lbnUuZGVzdHJveSgpLHRoaXMuc3VibWVudT1udWxsKSx0aGlzLndpbmRvd0xheWVyJiYhdGhpcy5wYXJlbnRNZW51JiZ0aGlzLndpbmRvd0xheWVyLmRlc3Ryb3koKSx0aGlzLnN0eWxlLm9wYWNpdHk9IjAiLHRoaXMuc3R5bGUudHJhbnNmb3JtPSJzY2FsZSgwLjk1KSB0cmFuc2xhdGVZKC0xMHB4KSIsYXdhaXQganQuc21hcnRkZWxheS5kZWxheUZvcigxMDApLHRoaXMucGFyZW50RWxlbWVudCYmdGhpcy5wYXJlbnRFbGVtZW50LnJlbW92ZUNoaWxkKHRoaXMpKX1hc3luYyBkZXN0cm95QWxsKCl7bGV0IGM9dGhpcztmb3IoO2MucGFyZW50TWVudTspYz1jLnBhcmVudE1lbnU7YXdhaXQgYy5kZXN0cm95KCl9c3RhdGlje1EzZShpLHIpfX07cmV0dXJuIGw9aX0pKCk7U3IuaW5pdGlhbGl6ZUdsb2JhbExpc3RlbmVyKCl9KTt2YXIgTzJyLEozZSxQWnIsUjJyPXAoKCk9Pnt4ZSgpO08ycj1mdW5jdGlvbihlLHQscixpLGEsbil7ZnVuY3Rpb24gbyh5KXtpZih5IT09dm9pZCAwJiZ0eXBlb2YgeSE9ImZ1bmN0aW9uIil0aHJvdyBuZXcgVHlwZUVycm9yKCJGdW5jdGlvbiBleHBlY3RlZCIpO3JldHVybiB5fWZvcih2YXIgcz1pLmtpbmQsbD1zPT09ImdldHRlciI/ImdldCI6cz09PSJzZXR0ZXIiPyJzZXQiOiJ2YWx1ZSIsYz0hdCYmZT9pLnN0YXRpYz9lOmUucHJvdG90eXBlOm51bGwsdT10fHwoYz9PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGMsaS5uYW1lKTp7fSksZCxoPSExLGY9ci5sZW5ndGgtMTtmPj0wO2YtLSl7dmFyIHg9e307Zm9yKHZhciB2IGluIGkpeFt2XT12PT09ImFjY2VzcyI/e306aVt2XTtmb3IodmFyIHYgaW4gaS5hY2Nlc3MpeC5hY2Nlc3Nbdl09aS5hY2Nlc3Nbdl07eC5hZGRJbml0aWFsaXplcj1mdW5jdGlvbih5KXtpZihoKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBhZGQgaW5pdGlhbGl6ZXJzIGFmdGVyIGRlY29yYXRpb24gaGFzIGNvbXBsZXRlZCIpO24ucHVzaChvKHl8fG51bGwpKX07dmFyIGI9KDAscltmXSkocz09PSJhY2Nlc3NvciI/e2dldDp1LmdldCxzZXQ6dS5zZXR9OnVbbF0seCk7aWYocz09PSJhY2Nlc3NvciIpe2lmKGI9PT12b2lkIDApY29udGludWU7aWYoYj09PW51bGx8fHR5cGVvZiBiIT0ib2JqZWN0Iil0aHJvdyBuZXcgVHlwZUVycm9yKCJPYmplY3QgZXhwZWN0ZWQiKTsoZD1vKGIuZ2V0KSkmJih1LmdldD1kKSwoZD1vKGIuc2V0KSkmJih1LnNldD1kKSwoZD1vKGIuaW5pdCkpJiZhLnVuc2hpZnQoZCl9ZWxzZShkPW8oYikpJiYocz09PSJmaWVsZCI/YS51bnNoaWZ0KGQpOnVbbF09ZCl9YyYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGMsaS5uYW1lLHUpLGg9ITB9LEozZT1mdW5jdGlvbihlLHQscil7Zm9yKHZhciBpPWFyZ3VtZW50cy5sZW5ndGg+MixhPTA7YTx0Lmxlbmd0aDthKyspcj1pP3RbYV0uY2FsbChlLHIpOnRbYV0uY2FsbChlKTtyZXR1cm4gaT9yOnZvaWQgMH0sUFpyPSgoKT0+e2xldCBlPVt5ZSgiZGVlcy1kZW1vd3JhcHBlciIpXSx0LHI9W10saSxhPXplLG4sbz1bXSxzPVtdO3ZhciBsPWNsYXNzIGV4dGVuZHMgYXtzdGF0aWN7aT10aGlzfXN0YXRpY3tsZXQgYz10eXBlb2YgU3ltYm9sPT0iZnVuY3Rpb24iJiZTeW1ib2wubWV0YWRhdGE/T2JqZWN0LmNyZWF0ZShhW1N5bWJvbC5tZXRhZGF0YV0/P251bGwpOnZvaWQgMDtuPVtqKHthdHRyaWJ1dGU6ITF9KV0sTzJyKHRoaXMsbnVsbCxuLHtraW5kOiJhY2Nlc3NvciIsbmFtZToicnVuQWZ0ZXJSZW5kZXIiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOnU9PiJydW5BZnRlclJlbmRlciJpbiB1LGdldDp1PT51LnJ1bkFmdGVyUmVuZGVyLHNldDoodSxkKT0+e3UucnVuQWZ0ZXJSZW5kZXI9ZH19LG1ldGFkYXRhOmN9LG8scyksTzJyKG51bGwsdD17dmFsdWU6aX0sZSx7a2luZDoiY2xhc3MiLG5hbWU6aS5uYW1lLG1ldGFkYXRhOmN9LG51bGwsciksbD1pPXQudmFsdWUsYyYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGksU3ltYm9sLm1ldGFkYXRhLHtlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMCx2YWx1ZTpjfSl9I2U9SjNlKHRoaXMsbyx2b2lkIDApO2dldCBydW5BZnRlclJlbmRlcigpe3JldHVybiB0aGlzLiNlfXNldCBydW5BZnRlclJlbmRlcihjKXt0aGlzLiNlPWN9c3RhdGljIHN0eWxlcz1bb2VgCiAgICAgIDpob3N0IHsKICAgICAgICBkaXNwbGF5OiBjb250ZW50czsKICAgICAgfQogICAgYF07cmVuZGVyKCl7cmV0dXJuIENgCiAgICAgIDxzbG90Pjwvc2xvdD4KICAgIGB9YXN5bmMgZmlyc3RVcGRhdGVkKCl7aWYoYXdhaXQgdGhpcy51cGRhdGVDb21wbGV0ZSxhd2FpdCBuZXcgUHJvbWlzZShjPT5zZXRUaW1lb3V0KGMsNTApKSx0aGlzLmNoaWxkcmVuLmxlbmd0aD4wJiZ0aGlzLnJ1bkFmdGVyUmVuZGVyKXRyeXthd2FpdCB0aGlzLnJ1bkFmdGVyUmVuZGVyKHRoaXMpfWNhdGNoKGMpe2NvbnNvbGUuZXJyb3IoIkVycm9yIGluIHJ1bkFmdGVyUmVuZGVyOiIsYyl9fWNvbnN0cnVjdG9yKCl7c3VwZXIoLi4uYXJndW1lbnRzKSxKM2UodGhpcyxzKX1zdGF0aWN7SjNlKGkscil9fTtyZXR1cm4gbD1pfSkoKX0pO3ZhciBwMT1wKCgpPT57UjJyKCl9KTt2YXIgQjJyLEgycj1wKCgpPT57eGUoKTtwMSgpO0Iycj0oKT0+e2xldCBlPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRlZXMtYXBwdWktYWN0aXZpdHlsb2ciKTtyZXR1cm4gc2V0VGltZW91dCgoKT0+e2UuYWRkTWFueShbe3R5cGU6ImxvZ2luIix1c2VyOiJKb2huIERvZSIsbWVzc2FnZToibG9nZ2VkIGluIGZyb20gQ2hyb21lIG9uIG1hY09TIn0se3R5cGU6ImNyZWF0ZSIsdXNlcjoiSm9obiBEb2UiLG1lc3NhZ2U6J2NyZWF0ZWQgYSBuZXcgcHJvamVjdCAiRnJvbnRlbmQgQXBwIid9LHt0eXBlOiJ1cGRhdGUiLHVzZXI6IkphbmUgU21pdGgiLG1lc3NhZ2U6InVwZGF0ZWQgQVBJIGRvY3VtZW50YXRpb24ifSx7dHlwZToidmlldyIsdXNlcjoiSm9obiBEb2UiLG1lc3NhZ2U6InZpZXdlZCBkYXNoYm9hcmQgYW5hbHl0aWNzIn0se3R5cGU6ImRlbGV0ZSIsdXNlcjoiQWRtaW4iLG1lc3NhZ2U6InJlbW92ZWQgZGVwcmVjYXRlZCBlbmRwb2ludCJ9LHt0eXBlOiJjdXN0b20iLHVzZXI6IlN5c3RlbSIsbWVzc2FnZToic2NoZWR1bGVkIGJhY2t1cCBjb21wbGV0ZWQiLGljb25OYW1lOiJsdWNpZGU6ZGF0YWJhc2UifSx7dHlwZToibG9nb3V0Iix1c2VyOiJBbGljZSBCcm93biIsbWVzc2FnZToibG9nZ2VkIG91dCJ9LHt0eXBlOiJjcmVhdGUiLHVzZXI6IkphbmUgU21pdGgiLG1lc3NhZ2U6ImNyZWF0ZWQgaW52b2ljZSAjMTIzNCJ9XSksZS5lbnRyaWVzJC5zdWJzY3JpYmUodD0+e2NvbnNvbGUubG9nKCJBY3Rpdml0eSBsb2cgdXBkYXRlZDoiLHQubGVuZ3RoLCJlbnRyaWVzIil9KX0sMTAwKSxDYAogICAgPGRlZXMtZGVtb3dyYXBwZXI+CiAgICAgIDxzdHlsZT4KICAgICAgICAuZGVtby1jb250YWluZXIgewogICAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOwogICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICAgIGhlaWdodDogNjAwcHg7CiAgICAgICAgICBiYWNrZ3JvdW5kOiAke20uYmRUaGVtZSgiI2Y0ZjRmNSIsIiMwOTA5MGIiKX07CiAgICAgICAgICBwYWRkaW5nOiAzMnB4OwogICAgICAgIH0KICAgICAgPC9zdHlsZT4KICAgICAgPGRpdiBjbGFzcz0iZGVtby1jb250YWluZXIiPgogICAgICAgICR7ZX0KICAgICAgPC9kaXY+CiAgICA8L2RlZXMtZGVtb3dyYXBwZXI+CiAgYH19KTt2YXIgU04sTGQscTJyLEszZT1wKCgpPT57eGUoKTtLdCgpO01pKCk7b3IoKTtIMnIoKTtKZSgpO1NOPWZ1bmN0aW9uKGUsdCxyLGksYSxuKXtmdW5jdGlvbiBvKHkpe2lmKHkhPT12b2lkIDAmJnR5cGVvZiB5IT0iZnVuY3Rpb24iKXRocm93IG5ldyBUeXBlRXJyb3IoIkZ1bmN0aW9uIGV4cGVjdGVkIik7cmV0dXJuIHl9Zm9yKHZhciBzPWkua2luZCxsPXM9PT0iZ2V0dGVyIj8iZ2V0IjpzPT09InNldHRlciI/InNldCI6InZhbHVlIixjPSF0JiZlP2kuc3RhdGljP2U6ZS5wcm90b3R5cGU6bnVsbCx1PXR8fChjP09iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoYyxpLm5hbWUpOnt9KSxkLGg9ITEsZj1yLmxlbmd0aC0xO2Y+PTA7Zi0tKXt2YXIgeD17fTtmb3IodmFyIHYgaW4gaSl4W3ZdPXY9PT0iYWNjZXNzIj97fTppW3ZdO2Zvcih2YXIgdiBpbiBpLmFjY2Vzcyl4LmFjY2Vzc1t2XT1pLmFjY2Vzc1t2XTt4LmFkZEluaXRpYWxpemVyPWZ1bmN0aW9uKHkpe2lmKGgpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGFkZCBpbml0aWFsaXplcnMgYWZ0ZXIgZGVjb3JhdGlvbiBoYXMgY29tcGxldGVkIik7bi5wdXNoKG8oeXx8bnVsbCkpfTt2YXIgYj0oMCxyW2ZdKShzPT09ImFjY2Vzc29yIj97Z2V0OnUuZ2V0LHNldDp1LnNldH06dVtsXSx4KTtpZihzPT09ImFjY2Vzc29yIil7aWYoYj09PXZvaWQgMCljb250aW51ZTtpZihiPT09bnVsbHx8dHlwZW9mIGIhPSJvYmplY3QiKXRocm93IG5ldyBUeXBlRXJyb3IoIk9iamVjdCBleHBlY3RlZCIpOyhkPW8oYi5nZXQpKSYmKHUuZ2V0PWQpLChkPW8oYi5zZXQpKSYmKHUuc2V0PWQpLChkPW8oYi5pbml0KSkmJmEudW5zaGlmdChkKX1lbHNlKGQ9byhiKSkmJihzPT09ImZpZWxkIj9hLnVuc2hpZnQoZCk6dVtsXT1kKX1jJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoYyxpLm5hbWUsdSksaD0hMH0sTGQ9ZnVuY3Rpb24oZSx0LHIpe2Zvcih2YXIgaT1hcmd1bWVudHMubGVuZ3RoPjIsYT0wO2E8dC5sZW5ndGg7YSsrKXI9aT90W2FdLmNhbGwoZSxyKTp0W2FdLmNhbGwoZSk7cmV0dXJuIGk/cjp2b2lkIDB9LHEycj0oKCk9PntsZXQgZT1beWUoImRlZXMtYXBwdWktYWN0aXZpdHlsb2ciKV0sdCxyPVtdLGksYT16ZSxuLG89W10scz1bXSxsLGM9W10sdT1bXSxkLGg9W10sZj1bXTt2YXIgeD1jbGFzcyBleHRlbmRzIGF7c3RhdGlje2k9dGhpc31zdGF0aWN7bGV0IHY9dHlwZW9mIFN5bWJvbD09ImZ1bmN0aW9uIiYmU3ltYm9sLm1ldGFkYXRhP09iamVjdC5jcmVhdGUoYVtTeW1ib2wubWV0YWRhdGFdPz9udWxsKTp2b2lkIDA7bj1bZmUoKV0sbD1bZmUoKV0sZD1bZmUoKV0sU04odGhpcyxudWxsLG4se2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJlbnRyaWVzIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpiPT4iZW50cmllcyJpbiBiLGdldDpiPT5iLmVudHJpZXMsc2V0OihiLHkpPT57Yi5lbnRyaWVzPXl9fSxtZXRhZGF0YTp2fSxvLHMpLFNOKHRoaXMsbnVsbCxsLHtraW5kOiJhY2Nlc3NvciIsbmFtZToic2VhcmNoUXVlcnkiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmI9PiJzZWFyY2hRdWVyeSJpbiBiLGdldDpiPT5iLnNlYXJjaFF1ZXJ5LHNldDooYix5KT0+e2Iuc2VhcmNoUXVlcnk9eX19LG1ldGFkYXRhOnZ9LGMsdSksU04odGhpcyxudWxsLGQse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJmaWx0ZXJDcml0ZXJpYSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6Yj0+ImZpbHRlckNyaXRlcmlhImluIGIsZ2V0OmI9PmIuZmlsdGVyQ3JpdGVyaWEsc2V0OihiLHkpPT57Yi5maWx0ZXJDcml0ZXJpYT15fX0sbWV0YWRhdGE6dn0saCxmKSxTTihudWxsLHQ9e3ZhbHVlOml9LGUse2tpbmQ6ImNsYXNzIixuYW1lOmkubmFtZSxtZXRhZGF0YTp2fSxudWxsLHIpLHg9aT10LnZhbHVlLHYmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShpLFN5bWJvbC5tZXRhZGF0YSx7ZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITAsdmFsdWU6dn0pfXN0YXRpYyBkZW1vPUIycjtzdGF0aWMgZGVtb0dyb3Vwcz1bIkFwcCBVSSJdOyNlPUxkKHRoaXMsbyxbXSk7Z2V0IGVudHJpZXMoKXtyZXR1cm4gdGhpcy4jZX1zZXQgZW50cmllcyh2KXt0aGlzLiNlPXZ9I3Q9KExkKHRoaXMscyksTGQodGhpcyxjLCIiKSk7Z2V0IHNlYXJjaFF1ZXJ5KCl7cmV0dXJuIHRoaXMuI3R9c2V0IHNlYXJjaFF1ZXJ5KHYpe3RoaXMuI3Q9dn0jcj0oTGQodGhpcyx1KSxMZCh0aGlzLGgse30pKTtnZXQgZmlsdGVyQ3JpdGVyaWEoKXtyZXR1cm4gdGhpcy4jcn1zZXQgZmlsdGVyQ3JpdGVyaWEodil7dGhpcy4jcj12fWVudHJpZXMkPShMZCh0aGlzLGYpLG5ldyBqdC5zbWFydHJ4LnJ4anMuU3ViamVjdCk7c3RhdGljIHN0eWxlcz1bRGUsbS5kZWZhdWx0U3R5bGVzLG9lYAogICAgICA6aG9zdCB7CiAgICAgICAgLyogQ1NTIFZhcmlhYmxlcyBhbGlnbmVkIHdpdGggc2Vjb25kYXJ5IG1lbnUgKi8KICAgICAgICAtLWFjdGl2aXR5bG9nLWJnOiAke20uYmRUaGVtZSgiI2ZhZmFmYSIsIiMwYTBhMGEiKX07CiAgICAgICAgLS1hY3Rpdml0eWxvZy1mZzogJHttLmJkVGhlbWUoIiM1MjUyNTIiLCIjYTNhM2EzIil9OwogICAgICAgIC0tYWN0aXZpdHlsb2ctZmctbXV0ZWQ6ICR7bS5iZFRoZW1lKCIjNzM3MzczIiwiIzczNzM3MyIpfTsKICAgICAgICAtLWFjdGl2aXR5bG9nLWZnLWFjdGl2ZTogJHttLmJkVGhlbWUoIiMwYTBhMGEiLCIjZmFmYWZhIil9OwogICAgICAgIC0tYWN0aXZpdHlsb2ctYm9yZGVyOiAke20uYmRUaGVtZSgiI2U1ZTVlNSIsIiMxYTFhMWEiKX07CiAgICAgICAgLS1hY3Rpdml0eWxvZy1ob3ZlcjogJHttLmJkVGhlbWUoInJnYmEoMCwgMCwgMCwgMC4wNCkiLCJyZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMDYpIil9OwogICAgICAgIC0tYWN0aXZpdHlsb2ctYWNjZW50OiAke20uYmRUaGVtZSgiIzc4NzE2YyIsIiNiNWE5OWEiKX07CgogICAgICAgIGNvbG9yOiB2YXIoLS1hY3Rpdml0eWxvZy1mZyk7CiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICAgIGRpc3BsYXk6IGJsb2NrOwogICAgICAgIHdpZHRoOiAxMDAlOwogICAgICAgIGhlaWdodDogMTAwJTsKICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1hY3Rpdml0eWxvZy1iZyk7CiAgICAgICAgZm9udC1mYW1pbHk6ICdHZWlzdCBTYW5zJywgLWFwcGxlLXN5c3RlbSwgQmxpbmtNYWNTeXN0ZW1Gb250LCBzYW5zLXNlcmlmOwogICAgICAgIGJvcmRlci1sZWZ0OiAxcHggc29saWQgdmFyKC0tYWN0aXZpdHlsb2ctYm9yZGVyKTsKICAgICAgICBjdXJzb3I6IGRlZmF1bHQ7CiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgICAgfQoKICAgICAgLm1haW5jb250YWluZXIgewogICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgICB0b3A6IDBweDsKICAgICAgICBsZWZ0OiAwcHg7CiAgICAgICAgaGVpZ2h0OiAxMDAlOwogICAgICAgIHdpZHRoOiAyODBweDsKICAgICAgfQoKICAgICAgLyogSGVhZGVyIHdpdGggc3RyZWFtaW5nIGluZGljYXRvciAqLwogICAgICAudG9wYmFyIHsKICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgICAgdG9wOiAwcHg7CiAgICAgICAgaGVpZ2h0OiA0OHB4OwogICAgICAgIHdpZHRoOiAxMDAlOwogICAgICAgIHBhZGRpbmc6IDBweCAxMnB4OwogICAgICAgIGJhY2tncm91bmQ6IHZhcigtLWFjdGl2aXR5bG9nLWJnKTsKICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgdmFyKC0tYWN0aXZpdHlsb2ctYm9yZGVyKTsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuOwogICAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7CiAgICAgIH0KCiAgICAgIC50b3BiYXIgLmhlYWRpbmcgewogICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7CiAgICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgICAgIGNvbG9yOiB2YXIoLS1hY3Rpdml0eWxvZy1mZy1hY3RpdmUpOwogICAgICB9CgogICAgICAubGl2ZS1pbmRpY2F0b3IgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBnYXA6IDZweDsKICAgICAgICBmb250LXNpemU6IDEwcHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDsKICAgICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlOwogICAgICAgIGxldHRlci1zcGFjaW5nOiAwLjA1ZW07CiAgICAgICAgY29sb3I6IHZhcigtLWFjdGl2aXR5bG9nLWZnLW11dGVkKTsKICAgICAgfQoKICAgICAgLmxpdmUtaW5kaWNhdG9yIC5kb3QgewogICAgICAgIHdpZHRoOiA2cHg7CiAgICAgICAgaGVpZ2h0OiA2cHg7CiAgICAgICAgYmFja2dyb3VuZDogJHttLmJkVGhlbWUoIiMyMmM1NWUiLCIjMjJjNTVlIil9OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDUwJTsKICAgICAgICBhbmltYXRpb246IHB1bHNlIDJzIGVhc2UtaW4tb3V0IGluZmluaXRlOwogICAgICB9CgogICAgICBAa2V5ZnJhbWVzIHB1bHNlIHsKICAgICAgICAwJSwgMTAwJSB7IG9wYWNpdHk6IDAuNTsgdHJhbnNmb3JtOiBzY2FsZSgwLjkpOyB9CiAgICAgICAgNTAlIHsgb3BhY2l0eTogMTsgdHJhbnNmb3JtOiBzY2FsZSgxLjEpOyB9CiAgICAgIH0KCiAgICAgIC8qIEFjdGl2aXR5IGNvbnRhaW5lciAqLwogICAgICAuYWN0aXZpdHlDb250YWluZXIgewogICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgICB0b3A6IDQ4cHg7CiAgICAgICAgYm90dG9tOiA0OHB4OwogICAgICAgIHdpZHRoOiAxMDAlOwogICAgICAgIHBhZGRpbmc6IDhweCAwOwogICAgICAgIG92ZXJmbG93LXk6IGF1dG87CiAgICAgICAgb3ZlcnNjcm9sbC1iZWhhdmlvcjogY29udGFpbjsKICAgICAgICBzY3JvbGxiYXItd2lkdGg6IHRoaW47CiAgICAgICAgc2Nyb2xsYmFyLWNvbG9yOiAke20uYmRUaGVtZSgiI2Q0ZDRkNCIsIiMzMzMzMzMiKX0gdHJhbnNwYXJlbnQ7CiAgICAgIH0KCiAgICAgIC5hY3Rpdml0eUNvbnRhaW5lcjo6LXdlYmtpdC1zY3JvbGxiYXIgewogICAgICAgIHdpZHRoOiA2cHg7CiAgICAgIH0KCiAgICAgIC5hY3Rpdml0eUNvbnRhaW5lcjo6LXdlYmtpdC1zY3JvbGxiYXItdHJhY2sgewogICAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50OwogICAgICB9CgogICAgICAuYWN0aXZpdHlDb250YWluZXI6Oi13ZWJraXQtc2Nyb2xsYmFyLXRodW1iIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke20uYmRUaGVtZSgiI2Q0ZDRkNCIsIiMzMzMzMzMiKX07CiAgICAgICAgYm9yZGVyLXJhZGl1czogM3B4OwogICAgICB9CgogICAgICAuYWN0aXZpdHlDb250YWluZXI6Oi13ZWJraXQtc2Nyb2xsYmFyLXRodW1iOmhvdmVyIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke20uYmRUaGVtZSgiI2EzYTNhMyIsIiM1MjUyNTIiKX07CiAgICAgIH0KCiAgICAgIC5lbXB0eS1zdGF0ZSB7CiAgICAgICAgZm9udC1zaXplOiAxM3B4OwogICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjsKICAgICAgICBwYWRkaW5nOiA0MHB4IDE2cHg7CiAgICAgICAgY29sb3I6IHZhcigtLWFjdGl2aXR5bG9nLWZnLW11dGVkKTsKICAgICAgfQoKICAgICAgLyogRGF0ZSBzZXBhcmF0b3IgLSB3YXJtIHRhdXBlIHN0eWxpbmcgKi8KICAgICAgLmRhdGUtc2VwYXJhdG9yIHsKICAgICAgICBwYWRkaW5nOiAxMnB4IDEycHggNnB4OwogICAgICAgIGZvbnQtc2l6ZTogMTBweDsKICAgICAgICBmb250LXdlaWdodDogNjAwOwogICAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7CiAgICAgICAgbGV0dGVyLXNwYWNpbmc6IDAuNXB4OwogICAgICAgIGNvbG9yOiB2YXIoLS1hY3Rpdml0eWxvZy1hY2NlbnQpOwogICAgICAgIHBvc2l0aW9uOiBzdGlja3k7CiAgICAgICAgdG9wOiAwOwogICAgICAgIHotaW5kZXg6IDE7CiAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tYWN0aXZpdHlsb2ctYmcpOwogICAgICB9CgogICAgICAvKiBBY3Rpdml0eSBlbnRyeSAtIG1vZGVybiBzdGFja2VkIGxheW91dCAqLwogICAgICAuYWN0aXZpdHllbnRyeSB7CiAgICAgICAgZm9udC1zaXplOiAxMnB4OwogICAgICAgIHBhZGRpbmc6IDhweCAxMnB4OwogICAgICAgIG1hcmdpbjogMnB4IDRweDsKICAgICAgICBib3JkZXItcmFkaXVzOiA2cHg7CiAgICAgICAgdHJhbnNpdGlvbjogYmFja2dyb3VuZCAwLjE1cyBlYXNlOwogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7CiAgICAgICAgZ2FwOiAxMHB4OwogICAgICAgIGxpbmUtaGVpZ2h0OiAxLjQ7CiAgICAgICAgYW5pbWF0aW9uOiBmYWRlSW4gMC4ycyBlYXNlLW91dDsKICAgICAgfQoKICAgICAgQGtleWZyYW1lcyBmYWRlSW4gewogICAgICAgIGZyb20gewogICAgICAgICAgb3BhY2l0eTogMDsKICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtMnB4KTsKICAgICAgICB9CiAgICAgICAgdG8gewogICAgICAgICAgb3BhY2l0eTogMTsKICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgwKTsKICAgICAgICB9CiAgICAgIH0KCiAgICAgIC5hY3Rpdml0eWVudHJ5OmhvdmVyIHsKICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1hY3Rpdml0eWxvZy1ob3Zlcik7CiAgICAgIH0KCiAgICAgIC5hY3Rpdml0eS1pY29uIHsKICAgICAgICB3aWR0aDogMjhweDsKICAgICAgICBoZWlnaHQ6IDI4cHg7CiAgICAgICAgYm9yZGVyLXJhZGl1czogNnB4OwogICAgICAgIGJhY2tncm91bmQ6ICR7bS5iZFRoZW1lKCJyZ2JhKDAsIDAsIDAsIDAuMDQpIiwicmdiYSgyNTUsIDI1NSwgMjU1LCAwLjA2KSIpfTsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7CiAgICAgICAgZmxleC1zaHJpbms6IDA7CiAgICAgICAgZm9udC1zaXplOiAxM3B4OwogICAgICAgIGNvbG9yOiB2YXIoLS1hY3Rpdml0eWxvZy1mZy1tdXRlZCk7CiAgICAgICAgbWFyZ2luLXRvcDogMXB4OwogICAgICB9CgogICAgICAuYWN0aXZpdHktaWNvbi5sb2dpbiB7CiAgICAgICAgYmFja2dyb3VuZDogJHttLmJkVGhlbWUoInJnYmEoMzQsIDE5NywgOTQsIDAuMDgpIiwicmdiYSgzNCwgMTk3LCA5NCwgMC4xMikiKX07CiAgICAgICAgY29sb3I6ICR7bS5iZFRoZW1lKCIjMTZhMzRhIiwiIzRhZGU4MCIpfTsKICAgICAgfQoKICAgICAgLmFjdGl2aXR5LWljb24ubG9nb3V0IHsKICAgICAgICBiYWNrZ3JvdW5kOiAke20uYmRUaGVtZSgicmdiYSgyMzksIDY4LCA2OCwgMC4wOCkiLCJyZ2JhKDIzOSwgNjgsIDY4LCAwLjEyKSIpfTsKICAgICAgICBjb2xvcjogJHttLmJkVGhlbWUoIiNkYzI2MjYiLCIjZjg3MTcxIil9OwogICAgICB9CgogICAgICAuYWN0aXZpdHktaWNvbi52aWV3IHsKICAgICAgICBiYWNrZ3JvdW5kOiAke20uYmRUaGVtZSgicmdiYSg1OSwgMTMwLCAyNDYsIDAuMDgpIiwicmdiYSg1OSwgMTMwLCAyNDYsIDAuMTIpIil9OwogICAgICAgIGNvbG9yOiAke20uYmRUaGVtZSgiIzI1NjNlYiIsIiM2MGE1ZmEiKX07CiAgICAgIH0KCiAgICAgIC5hY3Rpdml0eS1pY29uLmNyZWF0ZSB7CiAgICAgICAgYmFja2dyb3VuZDogJHttLmJkVGhlbWUoInJnYmEoMTY4LCA4NSwgMjQ3LCAwLjA4KSIsInJnYmEoMTY4LCA4NSwgMjQ3LCAwLjEyKSIpfTsKICAgICAgICBjb2xvcjogJHttLmJkVGhlbWUoIiM5MzMzZWEiLCIjYzA4NGZjIil9OwogICAgICB9CgogICAgICAuYWN0aXZpdHktaWNvbi51cGRhdGUgewogICAgICAgIGJhY2tncm91bmQ6ICR7bS5iZFRoZW1lKCJyZ2JhKDI1MSwgMTQ2LCA2MCwgMC4wOCkiLCJyZ2JhKDI1MSwgMTQ2LCA2MCwgMC4xMikiKX07CiAgICAgICAgY29sb3I6ICR7bS5iZFRoZW1lKCIjZWE1ODBjIiwiI2ZiOTIzYyIpfTsKICAgICAgfQoKICAgICAgLmFjdGl2aXR5LWljb24uZGVsZXRlIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke20uYmRUaGVtZSgicmdiYSgyMzksIDY4LCA2OCwgMC4wOCkiLCJyZ2JhKDIzOSwgNjgsIDY4LCAwLjEyKSIpfTsKICAgICAgICBjb2xvcjogJHttLmJkVGhlbWUoIiNkYzI2MjYiLCIjZjg3MTcxIil9OwogICAgICB9CgogICAgICAuYWN0aXZpdHktaWNvbi5jdXN0b20gewogICAgICAgIGJhY2tncm91bmQ6ICR7bS5iZFRoZW1lKCJyZ2JhKDEwMCwgMTE2LCAxMzksIDAuMDgpIiwicmdiYSgxMDAsIDExNiwgMTM5LCAwLjEyKSIpfTsKICAgICAgICBjb2xvcjogJHttLmJkVGhlbWUoIiM0NzU1NjkiLCIjOTRhM2I4Iil9OwogICAgICB9CgogICAgICAuYWN0aXZpdHktY29udGVudCB7CiAgICAgICAgZmxleDogMTsKICAgICAgICBtaW4td2lkdGg6IDA7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICAgIGdhcDogMnB4OwogICAgICB9CgogICAgICAuYWN0aXZpdHktaGVhZGVyIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgZ2FwOiA2cHg7CiAgICAgIH0KCiAgICAgIC5hY3Rpdml0eS11c2VyIHsKICAgICAgICBmb250LXdlaWdodDogNjAwOwogICAgICAgIGZvbnQtc2l6ZTogMTJweDsKICAgICAgICBjb2xvcjogdmFyKC0tYWN0aXZpdHlsb2ctZmctYWN0aXZlKTsKICAgICAgfQoKICAgICAgLmFjdGl2aXR5LXNlcGFyYXRvciB7CiAgICAgICAgY29sb3I6IHZhcigtLWFjdGl2aXR5bG9nLWZnLW11dGVkKTsKICAgICAgICBmb250LXNpemU6IDEwcHg7CiAgICAgIH0KCiAgICAgIC50aW1lc3RhbXAgewogICAgICAgIGNvbG9yOiB2YXIoLS1hY3Rpdml0eWxvZy1mZy1tdXRlZCk7CiAgICAgICAgZm9udC13ZWlnaHQ6IDQwMDsKICAgICAgICBmb250LXNpemU6IDExcHg7CiAgICAgICAgZm9udC12YXJpYW50LW51bWVyaWM6IHRhYnVsYXItbnVtczsKICAgICAgICBmb250LWZhbWlseTogJ0dlaXN0IE1vbm8nLCBtb25vc3BhY2U7CiAgICAgIH0KCiAgICAgIC5hY3Rpdml0eS1tZXNzYWdlIHsKICAgICAgICBjb2xvcjogdmFyKC0tYWN0aXZpdHlsb2ctZmcpOwogICAgICAgIGZvbnQtc2l6ZTogMTJweDsKICAgICAgICBsaW5lLWhlaWdodDogMS41OwogICAgICAgIHdvcmQtYnJlYWs6IGJyZWFrLXdvcmQ7CiAgICAgIH0KCiAgICAgIC8qIFNlYXJjaCBib3ggLSByZWZpbmVkIHN0eWxpbmcgKi8KICAgICAgLnNlYXJjaGJveCB7CiAgICAgICAgcG9zaXRpb246IGFic29sdXRlOwogICAgICAgIGJvdHRvbTogMHB4OwogICAgICAgIHdpZHRoOiAxMDAlOwogICAgICAgIGhlaWdodDogNDhweDsKICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1hY3Rpdml0eWxvZy1iZyk7CiAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkIHZhcigtLWFjdGl2aXR5bG9nLWJvcmRlcik7CiAgICAgICAgcGFkZGluZzogOHB4IDEycHg7CiAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDsKICAgICAgfQoKICAgICAgLnNlYXJjaC13cmFwcGVyIHsKICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgICAgaGVpZ2h0OiAzMnB4OwogICAgICB9CgogICAgICAuc2VhcmNoLWljb24gewogICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgICBsZWZ0OiAxMHB4OwogICAgICAgIHRvcDogNTAlOwogICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTsKICAgICAgICBjb2xvcjogdmFyKC0tYWN0aXZpdHlsb2ctZmctbXV0ZWQpOwogICAgICAgIGZvbnQtc2l6ZTogMTNweDsKICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTsKICAgICAgICB0cmFuc2l0aW9uOiBjb2xvciAwLjE1cyBlYXNlOwogICAgICB9CgogICAgICAuc2VhcmNoYm94IGlucHV0IHsKICAgICAgICBjb2xvcjogdmFyKC0tYWN0aXZpdHlsb2ctZmctYWN0aXZlKTsKICAgICAgICBiYWNrZ3JvdW5kOiAke20uYmRUaGVtZSgicmdiYSgwLCAwLCAwLCAwLjAzKSIsInJnYmEoMjU1LCAyNTUsIDI1NSwgMC4wNCkiKX07CiAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgICAgaGVpZ2h0OiAxMDAlOwogICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICR7bS5iZFRoZW1lKCJyZ2JhKDAsIDAsIDAsIDAuMDgpIiwicmdiYSgyNTUsIDI1NSwgMjU1LCAwLjA4KSIpfTsKICAgICAgICBib3JkZXItcmFkaXVzOiA2cHg7CiAgICAgICAgcGFkZGluZzogMCAxMnB4IDAgMzRweDsKICAgICAgICBmb250LWZhbWlseTogJ0dlaXN0IFNhbnMnLCBzYW5zLXNlcmlmOwogICAgICAgIGZvbnQtc2l6ZTogMTJweDsKICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC4xNXMgZWFzZTsKICAgICAgfQoKICAgICAgLnNlYXJjaGJveCBpbnB1dDo6cGxhY2Vob2xkZXIgewogICAgICAgIGNvbG9yOiB2YXIoLS1hY3Rpdml0eWxvZy1mZy1tdXRlZCk7CiAgICAgIH0KCiAgICAgIC5zZWFyY2hib3ggaW5wdXQ6Zm9jdXMgewogICAgICAgIG91dGxpbmU6IG5vbmU7CiAgICAgICAgYm9yZGVyLWNvbG9yOiAke20uYmRUaGVtZSgicmdiYSgwLCAwLCAwLCAwLjE1KSIsInJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xNSkiKX07CiAgICAgICAgYmFja2dyb3VuZDogJHttLmJkVGhlbWUoInJnYmEoMCwgMCwgMCwgMC4wMikiLCJyZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMDYpIil9OwogICAgICB9CgogICAgICAuc2VhcmNoLXdyYXBwZXI6aGFzKGlucHV0OmZvY3VzKSAuc2VhcmNoLWljb24gewogICAgICAgIGNvbG9yOiB2YXIoLS1hY3Rpdml0eWxvZy1mZyk7CiAgICAgIH0KICAgIGBdO3JlbmRlcigpe2xldCB2PXRoaXMuZ2V0RmlsdGVyZWRFbnRyaWVzKCksYj10aGlzLmdyb3VwRW50cmllc0J5RGF0ZSh2KTtyZXR1cm4gQ2AKICAgICAgJHtkMS5zdHlsZXN9CiAgICAgIDxzdHlsZT48L3N0eWxlPgogICAgICA8ZGl2IGNsYXNzPSJtYWluY29udGFpbmVyIj4KICAgICAgICA8ZGl2IGNsYXNzPSJ0b3BiYXIiPgogICAgICAgICAgPGRpdiBjbGFzcz0iaGVhZGluZyI+QWN0aXZpdHkgTG9nPC9kaXY+CiAgICAgICAgICAke3YubGVuZ3RoPjA/Q2A8ZGl2IGNsYXNzPSJsaXZlLWluZGljYXRvciI+PHNwYW4gY2xhc3M9ImRvdCI+PC9zcGFuPkxpdmU8L2Rpdj5gOiIifQogICAgICAgIDwvZGl2PgogICAgICAgIDxkaXYgY2xhc3M9ImFjdGl2aXR5Q29udGFpbmVyIj4KICAgICAgICAgICR7di5sZW5ndGg9PT0wP0NgPGRpdiBjbGFzcz0iZW1wdHktc3RhdGUiPk5vIGFjdGl2aXR5IGVudHJpZXM8L2Rpdj5gOmIubWFwKHk9PkNgCiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImRhdGUtc2VwYXJhdG9yIj4ke3kubGFiZWx9PC9kaXY+CiAgICAgICAgICAgICAgICAgICR7eS5lbnRyaWVzLm1hcCh3PT50aGlzLnJlbmRlckFjdGl2aXR5RW50cnkodykpfQogICAgICAgICAgICAgICAgYCl9CiAgICAgICAgPC9kaXY+CiAgICAgICAgPGRpdiBjbGFzcz0ic2VhcmNoYm94Ij4KICAgICAgICAgIDxkaXYgY2xhc3M9InNlYXJjaC13cmFwcGVyIj4KICAgICAgICAgICAgPGRlZXMtaWNvbiBjbGFzcz0ic2VhcmNoLWljb24iIC5pY29uPSR7Imx1Y2lkZTpzZWFyY2gifT48L2RlZXMtaWNvbj4KICAgICAgICAgICAgPGlucHV0CiAgICAgICAgICAgICAgdHlwZT0idGV4dCIKICAgICAgICAgICAgICBwbGFjZWhvbGRlcj0iU2VhcmNoIGFjdGl2aXRpZXMsIHVzZXJzLi4uIgogICAgICAgICAgICAgIC52YWx1ZT0ke3RoaXMuc2VhcmNoUXVlcnl9CiAgICAgICAgICAgICAgQGlucHV0PSR7dGhpcy5oYW5kbGVTZWFyY2hJbnB1dH0KICAgICAgICAgICAgLz4KICAgICAgICAgIDwvZGl2PgogICAgICAgIDwvZGl2PgogICAgICA8L2Rpdj4KICAgIGB9cmVuZGVyQWN0aXZpdHlFbnRyeSh2KXtsZXQgYj12LnRpbWVzdGFtcHx8bmV3IERhdGUseT10aGlzLmZvcm1hdFRpbWUoYiksdz12Lmljb25OYW1lfHx0aGlzLmdldEljb25Gb3JUeXBlKHYudHlwZSk7cmV0dXJuIENgCiAgICAgIDxkaXYKICAgICAgICBjbGFzcz0iYWN0aXZpdHllbnRyeSIKICAgICAgICBAY29udGV4dG1lbnU9JHtrPT50aGlzLmhhbmRsZUNvbnRleHRNZW51KGssdil9CiAgICAgID4KICAgICAgICA8ZGl2IGNsYXNzPSJhY3Rpdml0eS1pY29uICR7di50eXBlfSI+CiAgICAgICAgICA8ZGVlcy1pY29uIC5pY29uPSR7d30+PC9kZWVzLWljb24+CiAgICAgICAgPC9kaXY+CiAgICAgICAgPGRpdiBjbGFzcz0iYWN0aXZpdHktY29udGVudCI+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJhY3Rpdml0eS1oZWFkZXIiPgogICAgICAgICAgICA8c3BhbiBjbGFzcz0iYWN0aXZpdHktdXNlciI+JHt2LnVzZXJ9PC9zcGFuPgogICAgICAgICAgICA8c3BhbiBjbGFzcz0iYWN0aXZpdHktc2VwYXJhdG9yIj7Ctzwvc3Bhbj4KICAgICAgICAgICAgPHNwYW4gY2xhc3M9InRpbWVzdGFtcCI+JHt5fTwvc3Bhbj4KICAgICAgICAgIDwvZGl2PgogICAgICAgICAgPGRpdiBjbGFzcz0iYWN0aXZpdHktbWVzc2FnZSI+JHt2Lm1lc3NhZ2V9PC9kaXY+CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGl2PgogICAgYH1hZGQodil7bGV0IGI9ey4uLnYsaWQ6di5pZHx8dGhpcy5nZW5lcmF0ZUlkKCksdGltZXN0YW1wOnYudGltZXN0YW1wfHxuZXcgRGF0ZX07dGhpcy5lbnRyaWVzPVtiLC4uLnRoaXMuZW50cmllc10sdGhpcy5lbnRyaWVzJC5uZXh0KHRoaXMuZW50cmllcyl9YWRkTWFueSh2KXtsZXQgYj12Lm1hcCh5PT4oey4uLnksaWQ6eS5pZHx8dGhpcy5nZW5lcmF0ZUlkKCksdGltZXN0YW1wOnkudGltZXN0YW1wfHxuZXcgRGF0ZX0pKTt0aGlzLmVudHJpZXM9Wy4uLmIucmV2ZXJzZSgpLC4uLnRoaXMuZW50cmllc10sdGhpcy5lbnRyaWVzJC5uZXh0KHRoaXMuZW50cmllcyl9Y2xlYXIoKXt0aGlzLmVudHJpZXM9W10sdGhpcy5lbnRyaWVzJC5uZXh0KHRoaXMuZW50cmllcyl9Z2V0RW50cmllcygpe3JldHVyblsuLi50aGlzLmVudHJpZXNdfWZpbHRlcih2KXtyZXR1cm4gdGhpcy5lbnRyaWVzLmZpbHRlcihiPT4hKHYudXNlciYmYi51c2VyIT09di51c2VyfHx2LnR5cGUmJmIudHlwZSE9PXYudHlwZSkpfXNlYXJjaCh2KXtsZXQgYj12LnRvTG93ZXJDYXNlKCk7cmV0dXJuIHRoaXMuZW50cmllcy5maWx0ZXIoeT0+eS5tZXNzYWdlLnRvTG93ZXJDYXNlKCkuaW5jbHVkZXMoYil8fHkudXNlci50b0xvd2VyQ2FzZSgpLmluY2x1ZGVzKGIpKX1nZW5lcmF0ZUlkKCl7cmV0dXJuYGFjdGl2aXR5LSR7RGF0ZS5ub3coKX0tJHtNYXRoLnJhbmRvbSgpLnRvU3RyaW5nKDM2KS5zdWJzdHIoMiw5KX1gfWdldEZpbHRlcmVkRW50cmllcygpe2xldCB2PXRoaXMuZW50cmllcztpZih0aGlzLnNlYXJjaFF1ZXJ5KXtsZXQgYj10aGlzLnNlYXJjaFF1ZXJ5LnRvTG93ZXJDYXNlKCk7dj12LmZpbHRlcih5PT55Lm1lc3NhZ2UudG9Mb3dlckNhc2UoKS5pbmNsdWRlcyhiKXx8eS51c2VyLnRvTG93ZXJDYXNlKCkuaW5jbHVkZXMoYikpfXJldHVybih0aGlzLmZpbHRlckNyaXRlcmlhLnVzZXJ8fHRoaXMuZmlsdGVyQ3JpdGVyaWEudHlwZSkmJih2PXYuZmlsdGVyKGI9PiEodGhpcy5maWx0ZXJDcml0ZXJpYS51c2VyJiZiLnVzZXIhPT10aGlzLmZpbHRlckNyaXRlcmlhLnVzZXJ8fHRoaXMuZmlsdGVyQ3JpdGVyaWEudHlwZSYmYi50eXBlIT09dGhpcy5maWx0ZXJDcml0ZXJpYS50eXBlKSkpLHZ9Z3JvdXBFbnRyaWVzQnlEYXRlKHYpe2xldCBiPW5ldyBNYXAseT1uZXcgRGF0ZSx3PW5ldyBEYXRlKHkpO3cuc2V0RGF0ZSh3LmdldERhdGUoKS0xKTtmb3IobGV0IGsgb2Ygdil7bGV0IE89ay50aW1lc3RhbXB8fG5ldyBEYXRlLHo7dGhpcy5pc1NhbWVEYXkoTyx5KT96PSJUb2RheSI6dGhpcy5pc1NhbWVEYXkoTyx3KT96PSJZZXN0ZXJkYXkiOno9Ty50b0xvY2FsZURhdGVTdHJpbmcoImVuLVVTIix7bW9udGg6InNob3J0IixkYXk6Im51bWVyaWMiLHllYXI6Ty5nZXRGdWxsWWVhcigpIT09eS5nZXRGdWxsWWVhcigpPyJudW1lcmljIjp2b2lkIDB9KSxiLmhhcyh6KXx8Yi5zZXQoeixbXSksYi5nZXQoeikucHVzaChrKX1yZXR1cm4gQXJyYXkuZnJvbShiLmVudHJpZXMoKSkubWFwKChbayxPXSk9Pih7bGFiZWw6ayxlbnRyaWVzOk99KSl9aXNTYW1lRGF5KHYsYil7cmV0dXJuIHYuZ2V0RnVsbFllYXIoKT09PWIuZ2V0RnVsbFllYXIoKSYmdi5nZXRNb250aCgpPT09Yi5nZXRNb250aCgpJiZ2LmdldERhdGUoKT09PWIuZ2V0RGF0ZSgpfWZvcm1hdFRpbWUodil7cmV0dXJuIHYudG9Mb2NhbGVUaW1lU3RyaW5nKCJlbi1VUyIse2hvdXI6IjItZGlnaXQiLG1pbnV0ZToiMi1kaWdpdCIsaG91cjEyOiExfSl9Z2V0SWNvbkZvclR5cGUodil7bGV0IGI9e2xvZ2luOiJsdWNpZGU6bG9nSW4iLGxvZ291dDoibHVjaWRlOmxvZ091dCIsdmlldzoibHVjaWRlOmV5ZSIsY3JlYXRlOiJsdWNpZGU6cGx1cyIsdXBkYXRlOiJsdWNpZGU6ZWRpdCIsZGVsZXRlOiJsdWNpZGU6dHJhc2gyIixjdXN0b206Imx1Y2lkZTphY3Rpdml0eSJ9O3JldHVybiBiW3ZdfHxiLmN1c3RvbX1oYW5kbGVTZWFyY2hJbnB1dCh2KXtsZXQgYj12LnRhcmdldDt0aGlzLnNlYXJjaFF1ZXJ5PWIudmFsdWV9aGFuZGxlQ29udGV4dE1lbnUodixiKXt2LnByZXZlbnREZWZhdWx0KCksU3Iub3BlbkNvbnRleHRNZW51V2l0aE9wdGlvbnModixbe25hbWU6IkNvcHkgYWN0aXZpdHkiLGljb25OYW1lOiJsdWNpZGU6Y29weSIsYWN0aW9uOmFzeW5jKCk9Pnthd2FpdCBuYXZpZ2F0b3IuY2xpcGJvYXJkLndyaXRlVGV4dChgJHtiLnVzZXJ9ICR7Yi5tZXNzYWdlfWApfX0se25hbWU6IkZpbHRlciBieSB1c2VyIixpY29uTmFtZToibHVjaWRlOnVzZXIiLGFjdGlvbjphc3luYygpPT57dGhpcy5maWx0ZXJDcml0ZXJpYT17dXNlcjpiLnVzZXJ9fX0se25hbWU6IkZpbHRlciBieSB0eXBlIixpY29uTmFtZToibHVjaWRlOmZpbHRlciIsYWN0aW9uOmFzeW5jKCk9Pnt0aGlzLmZpbHRlckNyaXRlcmlhPXt0eXBlOmIudHlwZX19fSx7bmFtZToiQ2xlYXIgZmlsdGVycyIsaWNvbk5hbWU6Imx1Y2lkZTp4IixhY3Rpb246YXN5bmMoKT0+e3RoaXMuZmlsdGVyQ3JpdGVyaWE9e30sdGhpcy5zZWFyY2hRdWVyeT0iIn19XSl9c3RhdGlje0xkKGkscil9fTtyZXR1cm4geD1pfSkoKX0pO3ZhciBqMnI9cCgoKT0+e0szZSgpfSk7dmFyIFYycj1wKCgpPT57fSk7dmFyIFUycj1wKCgpPT57d2koKX0pO3ZhciBXMnI9cCgoKT0+e30pO3ZhciBHMnI9cCgoKT0+e30pO3ZhciBZMnI9cCgoKT0+e30pO3ZhciAkND1wKCgpPT57VjJyKCk7VTJyKCk7VzJyKCk7RzJyKCk7WTJyKCl9KTt2YXIgWjJyLFgycj1wKCgpPT57eGUoKTtwMSgpO2U2ZSgpO1oycj0oKT0+e2xldCBlPVt7bmFtZToiRmlsZSIsYWN0aW9uOmFzeW5jKCk9Pnt9LHN1Ym1lbnU6W3tuYW1lOiJOZXcgRmlsZSIsc2hvcnRjdXQ6IkNtZCtOIixpY29uTmFtZToiZmlsZS1wbHVzIixhY3Rpb246YXN5bmMoKT0+Y29uc29sZS5sb2coIk5ldyBmaWxlIil9LHtuYW1lOiJPcGVuLi4uIixzaG9ydGN1dDoiQ21kK08iLGljb25OYW1lOiJmb2xkZXItb3BlbiIsYWN0aW9uOmFzeW5jKCk9PmNvbnNvbGUubG9nKCJPcGVuIil9LHtuYW1lOiJPcGVuIFJlY2VudCIsYWN0aW9uOmFzeW5jKCk9Pnt9LHN1Ym1lbnU6W3tuYW1lOiJwcm9qZWN0LWFscGhhLnRzIixhY3Rpb246YXN5bmMoKT0+Y29uc29sZS5sb2coIk9wZW4gcmVjZW50IDEiKX0se25hbWU6ImNvbmZpZy5qc29uIixhY3Rpb246YXN5bmMoKT0+Y29uc29sZS5sb2coIk9wZW4gcmVjZW50IDIiKX0se25hbWU6InJlYWRtZS5tZCIsYWN0aW9uOmFzeW5jKCk9PmNvbnNvbGUubG9nKCJPcGVuIHJlY2VudCAzIil9XX0se2RpdmlkZXI6ITB9LHtuYW1lOiJTYXZlIixzaG9ydGN1dDoiQ21kK1MiLGljb25OYW1lOiJzYXZlIixhY3Rpb246YXN5bmMoKT0+Y29uc29sZS5sb2coIlNhdmUiKX0se25hbWU6IlNhdmUgQXMuLi4iLHNob3J0Y3V0OiJDbWQrU2hpZnQrUyIsYWN0aW9uOmFzeW5jKCk9PmNvbnNvbGUubG9nKCJTYXZlIGFzIiksZGlzYWJsZWQ6ITB9LHtkaXZpZGVyOiEwfSx7bmFtZToiRXhpdCIsc2hvcnRjdXQ6IkNtZCtRIixhY3Rpb246YXN5bmMoKT0+Y29uc29sZS5sb2coIkV4aXQiKX1dfSx7bmFtZToiRWRpdCIsYWN0aW9uOmFzeW5jKCk9Pnt9LHN1Ym1lbnU6W3tuYW1lOiJVbmRvIixzaG9ydGN1dDoiQ21kK1oiLGljb25OYW1lOiJ1bmRvIixhY3Rpb246YXN5bmMoKT0+Y29uc29sZS5sb2coIlVuZG8iKX0se25hbWU6IlJlZG8iLHNob3J0Y3V0OiJDbWQrU2hpZnQrWiIsaWNvbk5hbWU6InJlZG8iLGFjdGlvbjphc3luYygpPT5jb25zb2xlLmxvZygiUmVkbyIpfSx7ZGl2aWRlcjohMH0se25hbWU6IkN1dCIsc2hvcnRjdXQ6IkNtZCtYIixpY29uTmFtZToic2Npc3NvcnMiLGFjdGlvbjphc3luYygpPT5jb25zb2xlLmxvZygiQ3V0Iil9LHtuYW1lOiJDb3B5IixzaG9ydGN1dDoiQ21kK0MiLGljb25OYW1lOiJjb3B5IixhY3Rpb246YXN5bmMoKT0+Y29uc29sZS5sb2coIkNvcHkiKX0se25hbWU6IlBhc3RlIixzaG9ydGN1dDoiQ21kK1YiLGljb25OYW1lOiJjbGlwYm9hcmQiLGFjdGlvbjphc3luYygpPT5jb25zb2xlLmxvZygiUGFzdGUiKX0se2RpdmlkZXI6ITB9LHtuYW1lOiJGaW5kIixzaG9ydGN1dDoiQ21kK0YiLGljb25OYW1lOiJzZWFyY2giLGFjdGlvbjphc3luYygpPT5jb25zb2xlLmxvZygiRmluZCIpfSx7bmFtZToiUmVwbGFjZSIsc2hvcnRjdXQ6IkNtZCtIIixhY3Rpb246YXN5bmMoKT0+Y29uc29sZS5sb2coIlJlcGxhY2UiKX1dfSx7bmFtZToiVmlldyIsYWN0aW9uOmFzeW5jKCk9Pnt9LHN1Ym1lbnU6W3tuYW1lOiJUb2dnbGUgRnVsbHNjcmVlbiIsc2hvcnRjdXQ6IkYxMSIsaWNvbk5hbWU6ImV4cGFuZCIsYWN0aW9uOmFzeW5jKCk9PmNvbnNvbGUubG9nKCJGdWxsc2NyZWVuIil9LHtuYW1lOiJab29tIEluIixzaG9ydGN1dDoiQ21kKysiLGljb25OYW1lOiJ6b29tLWluIixhY3Rpb246YXN5bmMoKT0+Y29uc29sZS5sb2coIlpvb20gaW4iKX0se25hbWU6Ilpvb20gT3V0IixzaG9ydGN1dDoiQ21kKy0iLGljb25OYW1lOiJ6b29tLW91dCIsYWN0aW9uOmFzeW5jKCk9PmNvbnNvbGUubG9nKCJab29tIG91dCIpfSx7bmFtZToiUmVzZXQgWm9vbSIsc2hvcnRjdXQ6IkNtZCswIixhY3Rpb246YXN5bmMoKT0+Y29uc29sZS5sb2coIlJlc2V0IHpvb20iKX0se2RpdmlkZXI6ITB9LHtuYW1lOiJUb2dnbGUgU2lkZWJhciIsc2hvcnRjdXQ6IkNtZCtCIixhY3Rpb246YXN5bmMoKT0+Y29uc29sZS5sb2coIlRvZ2dsZSBzaWRlYmFyIil9LHtuYW1lOiJUb2dnbGUgVGVybWluYWwiLHNob3J0Y3V0OiJDbWQrSiIsaWNvbk5hbWU6InRlcm1pbmFsIixhY3Rpb246YXN5bmMoKT0+Y29uc29sZS5sb2coIlRvZ2dsZSB0ZXJtaW5hbCIpfV19LHtuYW1lOiJIZWxwIixhY3Rpb246YXN5bmMoKT0+e30sc3VibWVudTpbe25hbWU6IkRvY3VtZW50YXRpb24iLGljb25OYW1lOiJib29rIixhY3Rpb246YXN5bmMoKT0+Y29uc29sZS5sb2coIkRvY3VtZW50YXRpb24iKX0se25hbWU6IlJlbGVhc2UgTm90ZXMiLGljb25OYW1lOiJmaWxlLXRleHQiLGFjdGlvbjphc3luYygpPT5jb25zb2xlLmxvZygiUmVsZWFzZSBub3RlcyIpfSx7ZGl2aWRlcjohMH0se25hbWU6IlJlcG9ydCBJc3N1ZSIsaWNvbk5hbWU6ImJ1ZyIsYWN0aW9uOmFzeW5jKCk9PmNvbnNvbGUubG9nKCJSZXBvcnQgaXNzdWUiKX0se25hbWU6IkFib3V0IixpY29uTmFtZToiaW5mbyIsYWN0aW9uOmFzeW5jKCk9PmNvbnNvbGUubG9nKCJBYm91dCIpfV19XTtyZXR1cm4gQ2AKICAgIDxkZWVzLWRlbW93cmFwcGVyIC5ydW5BZnRlclJlbmRlcj0ke2FzeW5jIHQ9PntsZXQgcj10LnF1ZXJ5U2VsZWN0b3IoIiNhcHBiYXIiKSxpPXQucXVlcnlTZWxlY3RvckFsbCgiLnN0YXR1cy10b2dnbGUgZGVlcy1idXR0b24iKTtpWzBdLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIiwoKT0+e3IudXNlcj17Li4uci51c2VyLHN0YXR1czoib25saW5lIn19KSxpWzFdLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIiwoKT0+e3IudXNlcj17Li4uci51c2VyLHN0YXR1czoiYnVzeSJ9fSksaVsyXS5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsKCk9PntyLnVzZXI9ey4uLnIudXNlcixzdGF0dXM6ImF3YXkifX0pLGlbM10uYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLCgpPT57ci51c2VyPXsuLi5yLnVzZXIsc3RhdHVzOiJvZmZsaW5lIn19KSx0LnF1ZXJ5U2VsZWN0b3IoIi53aW5kb3ctY29udHJvbHMtdG9nZ2xlIGRlZXMtYnV0dG9uIikuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLCgpPT57ci5zaG93V2luZG93Q29udHJvbHM9IXIuc2hvd1dpbmRvd0NvbnRyb2xzfSk7bGV0IG49dC5xdWVyeVNlbGVjdG9yQWxsKCIuYnJlYWRjcnVtYi10b2dnbGUgZGVlcy1idXR0b24iKTtuWzBdLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIiwoKT0+e3IuYnJlYWRjcnVtYnM9IkhvbWUgPiBEb2N1bWVudHMgPiBQcm9qZWN0cyA+IE15QXBwID4gc3JjID4gaW5kZXgudHMifSksblsxXS5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsKCk9PntyLmJyZWFkY3J1bWJzPSJEYXNoYm9hcmQifSl9fT4KICAgICAgPHN0eWxlPgogICAgICAgICR7b2VgCiAgICAgICAgLmRlbW8tY29udGFpbmVyIHsKICAgICAgICAgIGhlaWdodDogNjAwcHg7CiAgICAgICAgICB3aWR0aDogMTAwJTsKICAgICAgICAgIGJhY2tncm91bmQ6ICMxYTFhMWE7CiAgICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgICB9CiAgICAgICAgCiAgICAgICAgLmNvbnRlbnQgewogICAgICAgICAgZmxleDogMTsKICAgICAgICAgIHBhZGRpbmc6IDIwcHg7CiAgICAgICAgICBjb2xvcjogI2NjYzsKICAgICAgICB9CiAgICAgICAgCiAgICAgICAgLmNvbnRyb2xzIHsKICAgICAgICAgIHBhZGRpbmc6IDIwcHg7CiAgICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgICAgZ2FwOiAxNnB4OwogICAgICAgICAgZmxleC13cmFwOiB3cmFwOwogICAgICAgIH0KICAgICAgICAKICAgICAgICAuY29udHJvbC1ncm91cCB7CiAgICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgICAgIGdhcDogOHB4OwogICAgICAgIH0KICAgICAgICAKICAgICAgICAuY29udHJvbC1ncm91cCBsYWJlbCB7CiAgICAgICAgICBmb250LXNpemU6IDEycHg7CiAgICAgICAgICBjb2xvcjogIzg4ODsKICAgICAgICB9CiAgICAgIGB9CiAgICA8L3N0eWxlPgogICAgCiAgICA8ZGl2IGNsYXNzPSJkZW1vLWNvbnRhaW5lciI+CiAgICAgIDxkZWVzLWFwcHVpLWFwcGJhcgogICAgICAgIGlkPSJhcHBiYXIiCiAgICAgICAgLm1lbnVJdGVtcz0ke2V9CiAgICAgICAgLmJyZWFkY3J1bWJzPSR7IlByb2plY3QgPiBzcmMgPiBjb21wb25lbnRzID4gQXBwQmFyLnRzIn0KICAgICAgICAuYnJlYWRjcnVtYlNlcGFyYXRvcj0keyIgPiAifQogICAgICAgIC5zaG93V2luZG93Q29udHJvbHM9JHshMH0KICAgICAgICAuc2hvd1NlYXJjaD0keyEwfQogICAgICAgIC50aGVtZT0keyJkYXJrIn0KICAgICAgICAudXNlcj0ke3tuYW1lOiJKb2huIERvZSIsc3RhdHVzOiJvbmxpbmUifX0KICAgICAgICBAbWVudS1zZWxlY3Q9JHt0PT5jb25zb2xlLmxvZygiTWVudSBzZWxlY3RlZDoiLHQuZGV0YWlsLml0ZW0pfQogICAgICAgIEBicmVhZGNydW1iLW5hdmlnYXRlPSR7dD0+Y29uc29sZS5sb2coIkJyZWFkY3J1bWIgY2xpY2tlZDoiLHQuZGV0YWlsKX0KICAgICAgICBAc2VhcmNoLWNsaWNrPSR7KCk9PmNvbnNvbGUubG9nKCJTZWFyY2ggY2xpY2tlZCIpfQogICAgICAgIEB1c2VyLW1lbnUtb3Blbj0keygpPT5jb25zb2xlLmxvZygiVXNlciBtZW51IGNsaWNrZWQiKX0KICAgICAgPjwvZGVlcy1hcHB1aS1hcHBiYXI+CiAgICAgIAogICAgICA8ZGl2IGNsYXNzPSJjb250ZW50Ij4KICAgICAgICA8aDI+QXBwIEJhciBEZW1vPC9oMj4KICAgICAgICA8cD5UaGlzIGRlbW8gc2hvd3MgdmFyaW91cyBmZWF0dXJlcyBvZiB0aGUgYXBwIGJhciBjb21wb25lbnQ6PC9wPgogICAgICAgIDx1bD4KICAgICAgICAgIDxsaT5EeW5hbWljIG1lbnUgaXRlbXMgd2l0aCBpY29ucywgc2hvcnRjdXRzLCBhbmQgc3VibWVudXM8L2xpPgogICAgICAgICAgPGxpPkJyZWFkY3J1bWIgbmF2aWdhdGlvbjwvbGk+CiAgICAgICAgICA8bGk+VXNlciBhY2NvdW50IHNlY3Rpb24gd2l0aCBzdGF0dXMgaW5kaWNhdG9yPC9saT4KICAgICAgICAgIDxsaT5TZWFyY2ggaWNvbjwvbGk+CiAgICAgICAgICA8bGk+V2luZG93IGNvbnRyb2xzIChwbGF0Zm9ybS1zcGVjaWZpYyk8L2xpPgogICAgICAgICAgPGxpPkRhcmsvbGlnaHQgdGhlbWUgc3VwcG9ydDwvbGk+CiAgICAgICAgICA8bGk+S2V5Ym9hcmQgbmF2aWdhdGlvbiAoVGFiLCBFbnRlciwgRXNjYXBlKTwvbGk+CiAgICAgICAgICA8bGk+Q3VzdG9tIGV2ZW50cyBmb3IgYWxsIGludGVyYWN0aW9uczwvbGk+CiAgICAgICAgPC91bD4KICAgICAgPC9kaXY+CiAgICAgIAogICAgICA8ZGl2IGNsYXNzPSJjb250cm9scyI+CiAgICAgICAgPGRpdiBjbGFzcz0iY29udHJvbC1ncm91cCI+CiAgICAgICAgICA8bGFiZWw+VGhlbWU8L2xhYmVsPgogICAgICAgICAgPGRlZXMtYnV0dG9uLWdyb3VwIGNsYXNzPSJ0aGVtZS10b2dnbGUiPgogICAgICAgICAgICA8ZGVlcy1idXR0b24+RGFyazwvZGVlcy1idXR0b24+CiAgICAgICAgICAgIDxkZWVzLWJ1dHRvbj5MaWdodDwvZGVlcy1idXR0b24+CiAgICAgICAgICA8L2RlZXMtYnV0dG9uLWdyb3VwPgogICAgICAgIDwvZGl2PgogICAgICAgIAogICAgICAgIDxkaXYgY2xhc3M9ImNvbnRyb2wtZ3JvdXAiPgogICAgICAgICAgPGxhYmVsPlVzZXIgU3RhdHVzPC9sYWJlbD4KICAgICAgICAgIDxkZWVzLWJ1dHRvbi1ncm91cCBjbGFzcz0ic3RhdHVzLXRvZ2dsZSI+CiAgICAgICAgICAgIDxkZWVzLWJ1dHRvbj5PbmxpbmU8L2RlZXMtYnV0dG9uPgogICAgICAgICAgICA8ZGVlcy1idXR0b24+QnVzeTwvZGVlcy1idXR0b24+CiAgICAgICAgICAgIDxkZWVzLWJ1dHRvbj5Bd2F5PC9kZWVzLWJ1dHRvbj4KICAgICAgICAgICAgPGRlZXMtYnV0dG9uPk9mZmxpbmU8L2RlZXMtYnV0dG9uPgogICAgICAgICAgPC9kZWVzLWJ1dHRvbi1ncm91cD4KICAgICAgICA8L2Rpdj4KICAgICAgICAKICAgICAgICA8ZGl2IGNsYXNzPSJjb250cm9sLWdyb3VwIj4KICAgICAgICAgIDxsYWJlbD5XaW5kb3cgQ29udHJvbHM8L2xhYmVsPgogICAgICAgICAgPGRlZXMtYnV0dG9uLWdyb3VwIGNsYXNzPSJ3aW5kb3ctY29udHJvbHMtdG9nZ2xlIj4KICAgICAgICAgICAgPGRlZXMtYnV0dG9uPlRvZ2dsZTwvZGVlcy1idXR0b24+CiAgICAgICAgICA8L2RlZXMtYnV0dG9uLWdyb3VwPgogICAgICAgIDwvZGl2PgogICAgICAgIAogICAgICAgIDxkaXYgY2xhc3M9ImNvbnRyb2wtZ3JvdXAiPgogICAgICAgICAgPGxhYmVsPkJyZWFkY3J1bWJzPC9sYWJlbD4KICAgICAgICAgIDxkZWVzLWJ1dHRvbi1ncm91cCBjbGFzcz0iYnJlYWRjcnVtYi10b2dnbGUiPgogICAgICAgICAgICA8ZGVlcy1idXR0b24+TG9uZyBQYXRoPC9kZWVzLWJ1dHRvbj4KICAgICAgICAgICAgPGRlZXMtYnV0dG9uPlNob3J0IFBhdGg8L2RlZXMtYnV0dG9uPgogICAgICAgICAgPC9kZWVzLWJ1dHRvbi1ncm91cD4KICAgICAgICA8L2Rpdj4KICAgICAgPC9kaXY+CiAgICA8L2Rpdj4KICAgIDwvZGVlcy1kZW1vd3JhcHBlcj4KICBgfX0pO3ZhciBRMnIsSjJyPXAoKCk9Pnt4ZSgpO1Eycj1bbS5kZWZhdWx0U3R5bGVzLG9lYAogICAgICA6aG9zdCB7CiAgICAgICAgLyogQ1NTIFZhcmlhYmxlcyBmb3IgdGhlbWluZyAqLwogICAgICAgIC0tYXBwYmFyLWhlaWdodDogNDBweDsKICAgICAgICAtLWFwcGJhci1mb250LXNpemU6IDEycHg7CiAgICAgICAgCiAgICAgICAgZGlzcGxheTogYmxvY2s7CiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICAgIHdpZHRoOiAxMDAlOwogICAgICAgIGhlaWdodDogdmFyKC0tYXBwYmFyLWhlaWdodCk7CiAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICR7bS5iZFRoZW1lKCIjZTBlMGUwIiwiIzIwMjAyMCIpfTsKICAgICAgICBiYWNrZ3JvdW5kOiAke20uYmRUaGVtZSgiI2ZmZmZmZiIsIiMwMDAwMDAiKX07CiAgICAgICAgY29sb3I6ICR7bS5iZFRoZW1lKCIjMDAwMDAwODAiLCIjZmZmZmZmODAiKX07CiAgICAgICAgZm9udC1zaXplOiB2YXIoLS1hcHBiYXItZm9udC1zaXplKTsKICAgICAgICBkaXNwbGF5OiBncmlkOwogICAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogYXV0byAxZnIgYXV0bzsKICAgICAgICAtd2Via2l0LWFwcC1yZWdpb246IGRyYWc7CiAgICAgICAgdXNlci1zZWxlY3Q6IG5vbmU7CiAgICAgIH0KCiAgICAgIC5tZW51cyB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGdhcDogNHB4OwogICAgICAgIHBhZGRpbmc6IDAgOHB4OwogICAgICAgIGN1cnNvcjogZGVmYXVsdDsKICAgICAgfQoKICAgICAgLm1lbnVJdGVtIHsKICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgICAgbGluZS1oZWlnaHQ6IDI0cHg7CiAgICAgICAgcGFkZGluZzogMHB4IDEycHg7CiAgICAgICAgbWFyZ2luOiA4cHggMHB4OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDRweDsKICAgICAgICAtd2Via2l0LWFwcC1yZWdpb246IG5vLWRyYWc7CiAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuMnMgZWFzZTsKICAgICAgICBjdXJzb3I6IGRlZmF1bHQ7CiAgICAgICAgb3V0bGluZTogbm9uZTsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgZ2FwOiA0cHg7CiAgICAgIH0KCiAgICAgIC8qIE9wdGlvbmFsOiBTdHlsZSBmb3IgbWVudSBpdGVtcyB3aXRoIGljb25zIChub3QgdHlwaWNhbGx5IHVzZWQgZm9yIHRvcC1sZXZlbCBpdGVtcykgKi8KICAgICAgLm1lbnVJdGVtIGRlZXMtaWNvbiB7CiAgICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgICAgIG9wYWNpdHk6IDAuODsKICAgICAgfQoKICAgICAgLm1lbnVJdGVtOmhvdmVyIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke20uYmRUaGVtZSgiIzAwMDAwMDEwIiwiI2ZmZmZmZjIwIil9OwogICAgICAgIGNvbG9yOiAke20uYmRUaGVtZSgiIzAwMDAwMCIsIiNmZmZmZmYiKX07CiAgICAgIH0KCiAgICAgIC5tZW51SXRlbS5hY3RpdmUgewogICAgICAgIGJhY2tncm91bmQ6ICR7bS5iZFRoZW1lKCIjMDAwMDAwMjAiLCIjZmZmZmZmMzAiKX07CiAgICAgICAgY29sb3I6ICR7bS5iZFRoZW1lKCIjMDAwMDAwIiwiI2ZmZmZmZiIpfTsKICAgICAgfQoKICAgICAgLm1lbnVJdGVtW2Rpc2FibGVkXSB7CiAgICAgICAgb3BhY2l0eTogMC41OwogICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7CiAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7CiAgICAgIH0KCiAgICAgIC5tZW51SXRlbTpmb2N1cy12aXNpYmxlIHsKICAgICAgICBib3gtc2hhZG93OiAwIDAgMCAycHggJHttLmJkVGhlbWUoIiMwMDAwMDA4MCIsIiNmZmZmZmY4MCIpfTsKICAgICAgfQoKCiAgICAgIC8qIERyb3Bkb3duIHN0eWxlcyAqLwogICAgICAuZHJvcGRvd24gewogICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgICB0b3A6IDEwMCU7CiAgICAgICAgbGVmdDogMDsKICAgICAgICBtaW4td2lkdGg6IDIwMHB4OwogICAgICAgIGJhY2tncm91bmQ6ICR7bS5iZFRoZW1lKCIjZmZmZmZmIiwiIzAwMDAwMCIpfTsKICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAke20uYmRUaGVtZSgiI2UwZTBlMCIsIiMyMDIwMjAiKX07CiAgICAgICAgYm9yZGVyLXJhZGl1czogNHB4OwogICAgICAgIGJveC1zaGFkb3c6ICR7bS5iZFRoZW1lKCIwIDRweCAxMnB4IHJnYmEoMCwgMCwgMCwgMC4xNSkiLCIwIDRweCAxMnB4IHJnYmEoMCwgMCwgMCwgMC4zKSIpfTsKICAgICAgICBtYXJnaW4tdG9wOiA0cHg7CiAgICAgICAgei1pbmRleDogMTAwMDsKICAgICAgICBvcGFjaXR5OiAwOwogICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtMTBweCk7CiAgICAgICAgdHJhbnNpdGlvbjogb3BhY2l0eSAwLjJzLCB0cmFuc2Zvcm0gMC4yczsKICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTsKICAgICAgfQoKICAgICAgLmRyb3Bkb3duLm9wZW4gewogICAgICAgIG9wYWNpdHk6IDE7CiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDApOwogICAgICAgIHBvaW50ZXItZXZlbnRzOiBhdXRvOwogICAgICB9CgogICAgICAuZHJvcGRvd24taXRlbSB7CiAgICAgICAgcGFkZGluZzogOHB4IDE2cHg7CiAgICAgICAgY3Vyc29yOiBkZWZhdWx0OwogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBnYXA6IDhweDsKICAgICAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kIDAuMXM7CiAgICAgIH0KCiAgICAgIC5kcm9wZG93bi1pdGVtOmhvdmVyLAogICAgICAuZHJvcGRvd24taXRlbS5mb2N1c2VkIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke20uYmRUaGVtZSgiIzAwMDAwMDEwIiwiI2ZmZmZmZjIwIil9OwogICAgICB9CgogICAgICAuZHJvcGRvd24tZGl2aWRlciB7CiAgICAgICAgaGVpZ2h0OiAxcHg7CiAgICAgICAgYmFja2dyb3VuZDogJHttLmJkVGhlbWUoIiNlMGUwZTAiLCIjMjAyMDIwIil9OwogICAgICAgIG1hcmdpbjogNHB4IDA7CiAgICAgIH0KCiAgICAgIC5kcm9wZG93bi1pdGVtW2Rpc2FibGVkXSB7CiAgICAgICAgb3BhY2l0eTogMC41OwogICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7CiAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7CiAgICAgIH0KCiAgICAgIC5kcm9wZG93bi1pdGVtIC5zaG9ydGN1dCB7CiAgICAgICAgbWFyZ2luLWxlZnQ6IGF1dG87CiAgICAgICAgb3BhY2l0eTogMC42OwogICAgICAgIGZvbnQtc2l6ZTogMTFweDsKICAgICAgfQoKICAgICAgLyogQnJlYWRjcnVtYnMgKi8KICAgICAgLmJyZWFkY3J1bWJzIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7CiAgICAgICAgaGVpZ2h0OiAxMDAlOwogICAgICAgIHBhZGRpbmc6IDAgMTZweDsKICAgICAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzOwogICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7CiAgICAgIH0KCiAgICAgIC5icmVhZGNydW1iLWl0ZW0gewogICAgICAgIGNvbG9yOiAke20uYmRUaGVtZSgiIzAwMDAwMDgwIiwiI2ZmZmZmZjgwIil9OwogICAgICAgIGN1cnNvcjogZGVmYXVsdDsKICAgICAgICB0cmFuc2l0aW9uOiBjb2xvciAwLjJzOwogICAgICB9CgogICAgICAuYnJlYWRjcnVtYi1pdGVtOmhvdmVyIHsKICAgICAgICBjb2xvcjogJHttLmJkVGhlbWUoIiMwMDAwMDAiLCIjZmZmZmZmIil9OwogICAgICB9CgogICAgICAuYnJlYWRjcnVtYi1zZXBhcmF0b3IgewogICAgICAgIG1hcmdpbjogMCA4cHg7CiAgICAgICAgb3BhY2l0eTogMC41OwogICAgICB9CgogICAgICAvKiBBY2NvdW50IHNlY3Rpb24gKi8KICAgICAgLmFjY291bnQgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kOwogICAgICAgIHBhZGRpbmc6IDAgMTZweDsKICAgICAgICBnYXA6IDEycHg7CiAgICAgIH0KCiAgICAgIC5zZWFyY2gtaWNvbiB7CiAgICAgICAgY3Vyc29yOiBkZWZhdWx0OwogICAgICAgIG9wYWNpdHk6IDAuNzsKICAgICAgICB0cmFuc2l0aW9uOiBvcGFjaXR5IDAuMnM7CiAgICAgIH0KCiAgICAgIC5zZWFyY2gtaWNvbjpob3ZlciB7CiAgICAgICAgb3BhY2l0eTogMTsKICAgICAgfQoKICAgICAgLnVzZXItaW5mbyB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGdhcDogOHB4OwogICAgICAgIGN1cnNvcjogZGVmYXVsdDsKICAgICAgICBwYWRkaW5nOiA0cHggOHB4OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDRweDsKICAgICAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kIDAuMnM7CiAgICAgIH0KCiAgICAgIC51c2VyLWluZm86aG92ZXIgewogICAgICAgIGJhY2tncm91bmQ6ICR7bS5iZFRoZW1lKCIjMDAwMDAwMTAiLCIjZmZmZmZmMjAiKX07CiAgICAgIH0KCiAgICAgIC51c2VyLWF2YXRhciB7CiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICAgIHdpZHRoOiAyNHB4OwogICAgICAgIGhlaWdodDogMjRweDsKICAgICAgICBib3JkZXItcmFkaXVzOiA1MCU7CiAgICAgICAgYmFja2dyb3VuZDogJHttLmJkVGhlbWUoIiMwMDAwMDAyMCIsIiNmZmZmZmYzMCIpfTsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7CiAgICAgICAgZm9udC1zaXplOiAxMHB4OwogICAgICAgIGZvbnQtd2VpZ2h0OiBib2xkOwogICAgICB9CgogICAgICAudXNlci1hdmF0YXIgaW1nIHsKICAgICAgICB3aWR0aDogMTAwJTsKICAgICAgICBoZWlnaHQ6IDEwMCU7CiAgICAgICAgYm9yZGVyLXJhZGl1czogNTAlOwogICAgICAgIG9iamVjdC1maXQ6IGNvdmVyOwogICAgICB9CgogICAgICAudXNlci1zdGF0dXMgewogICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgICBib3R0b206IC0ycHg7CiAgICAgICAgcmlnaHQ6IC0ycHg7CiAgICAgICAgd2lkdGg6IDhweDsKICAgICAgICBoZWlnaHQ6IDhweDsKICAgICAgICBib3JkZXItcmFkaXVzOiA1MCU7CiAgICAgICAgYm9yZGVyOiAycHggc29saWQgJHttLmJkVGhlbWUoIiNmZmZmZmYiLCIjMDAwMDAwIil9OwogICAgICB9CgogICAgICAudXNlci1zdGF0dXMub25saW5lIHsKICAgICAgICBiYWNrZ3JvdW5kOiAjNGNhZjUwOwogICAgICB9CgogICAgICAudXNlci1zdGF0dXMub2ZmbGluZSB7CiAgICAgICAgYmFja2dyb3VuZDogIzc1NzU3NTsKICAgICAgfQoKICAgICAgLnVzZXItc3RhdHVzLmJ1c3kgewogICAgICAgIGJhY2tncm91bmQ6ICNmNDQzMzY7CiAgICAgIH0KCiAgICAgIC51c2VyLXN0YXR1cy5hd2F5IHsKICAgICAgICBiYWNrZ3JvdW5kOiAjZmY5ODAwOwogICAgICB9CgogICAgICAvKiBBY3Rpdml0eSBsb2cgdG9nZ2xlIGJ1dHRvbiAqLwogICAgICAuYWN0aXZpdHktdG9nZ2xlIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgZ2FwOiAycHg7CiAgICAgICAgaGVpZ2h0OiAyOHB4OwogICAgICAgIHBhZGRpbmc6IDAgOHB4OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDZweDsKICAgICAgICBjdXJzb3I6IGRlZmF1bHQ7CiAgICAgICAgLXdlYmtpdC1hcHAtcmVnaW9uOiBuby1kcmFnOwogICAgICAgIGNvbG9yOiAke20uYmRUaGVtZSgiIzAwMDAwMDYwIiwiI2ZmZmZmZjYwIil9OwogICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICR7bS5iZFRoZW1lKCJyZ2JhKDAsIDAsIDAsIDAuMSkiLCJyZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMSkiKX07CiAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuMTVzIGVhc2U7CiAgICAgIH0KCiAgICAgIC5hY3Rpdml0eS10b2dnbGU6aG92ZXIgewogICAgICAgIGJhY2tncm91bmQ6ICR7bS5iZFRoZW1lKCIjMDAwMDAwMTAiLCIjZmZmZmZmMTUiKX07CiAgICAgICAgY29sb3I6ICR7bS5iZFRoZW1lKCIjMDAwMDAwIiwiI2ZmZmZmZiIpfTsKICAgICAgICBib3JkZXItY29sb3I6IHRyYW5zcGFyZW50OwogICAgICB9CgogICAgICAuYWN0aXZpdHktdG9nZ2xlLmFjdGl2ZSB7CiAgICAgICAgYmFja2dyb3VuZDogJHttLmJkVGhlbWUoIiMwMDAwMDAxNSIsIiNmZmZmZmYyMCIpfTsKICAgICAgICBjb2xvcjogJHttLmJkVGhlbWUoIiMwMDAwMDAiLCIjZmZmZmZmIil9OwogICAgICAgIGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQ7CiAgICAgIH0KCiAgICAgIC5hY3Rpdml0eS10b2dnbGUgZGVlcy1pY29uIHsKICAgICAgICBmb250LXNpemU6IDE0cHg7CiAgICAgIH0KCiAgICAgIC5hY3Rpdml0eS1iYWRnZSB7CiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICAgIG1hcmdpbi1sZWZ0OiA0cHg7CiAgICAgICAgbWluLXdpZHRoOiAxNnB4OwogICAgICAgIGhlaWdodDogMTZweDsKICAgICAgICBwYWRkaW5nOiAwIDRweDsKICAgICAgICBiYWNrZ3JvdW5kOiAke20uYmRUaGVtZSgiIzUyNTI1MiIsIiM1MjUyNTIiKX07CiAgICAgICAgY29sb3I6ICNmYWZhZmE7CiAgICAgICAgZm9udC1zaXplOiAxMHB4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7CiAgICAgICAgYm9yZGVyLXJhZGl1czogOHB4OwogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKICAgICAgICBsaW5lLWhlaWdodDogMTsKICAgICAgfQogICAgYF19KTt2YXIgSzJyLGVzcj1wKCgpPT57eGUoKTtLMnI9ZT0+Q2AKICAgICAgICA8ZGl2IGNsYXNzPSJtZW51cyI+CiAgICAgICAgICAke2Uuc2hvd1dpbmRvd0NvbnRyb2xzP0NgPGRlZXMtd2luZG93Y29udHJvbHM+PC9kZWVzLXdpbmRvd2NvbnRyb2xzPmA6IiJ9CiAgICAgICAgICAke2UucmVuZGVyTWVudUl0ZW1zKCl9CiAgICAgICAgPC9kaXY+CiAgICAgICAgPGRpdiBjbGFzcz0iYnJlYWRjcnVtYnMiPgogICAgICAgICAgJHtlLnJlbmRlckJyZWFkY3J1bWJzKCl9CiAgICAgICAgPC9kaXY+CiAgICAgICAgPGRpdiBjbGFzcz0iYWNjb3VudCI+CiAgICAgICAgICAke2UucmVuZGVyQWNjb3VudFNlY3Rpb24oKX0KICAgICAgICA8L2Rpdj4KICAgICAgYH0pO3ZhciB0NmUsb2IsdHNyLHI2ZT1wKCgpPT57eGUoKTtKZSgpO3Q2ZT1mdW5jdGlvbihlLHQscixpLGEsbil7ZnVuY3Rpb24gbyh5KXtpZih5IT09dm9pZCAwJiZ0eXBlb2YgeSE9ImZ1bmN0aW9uIil0aHJvdyBuZXcgVHlwZUVycm9yKCJGdW5jdGlvbiBleHBlY3RlZCIpO3JldHVybiB5fWZvcih2YXIgcz1pLmtpbmQsbD1zPT09ImdldHRlciI/ImdldCI6cz09PSJzZXR0ZXIiPyJzZXQiOiJ2YWx1ZSIsYz0hdCYmZT9pLnN0YXRpYz9lOmUucHJvdG90eXBlOm51bGwsdT10fHwoYz9PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGMsaS5uYW1lKTp7fSksZCxoPSExLGY9ci5sZW5ndGgtMTtmPj0wO2YtLSl7dmFyIHg9e307Zm9yKHZhciB2IGluIGkpeFt2XT12PT09ImFjY2VzcyI/e306aVt2XTtmb3IodmFyIHYgaW4gaS5hY2Nlc3MpeC5hY2Nlc3Nbdl09aS5hY2Nlc3Nbdl07eC5hZGRJbml0aWFsaXplcj1mdW5jdGlvbih5KXtpZihoKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBhZGQgaW5pdGlhbGl6ZXJzIGFmdGVyIGRlY29yYXRpb24gaGFzIGNvbXBsZXRlZCIpO24ucHVzaChvKHl8fG51bGwpKX07dmFyIGI9KDAscltmXSkocz09PSJhY2Nlc3NvciI/e2dldDp1LmdldCxzZXQ6dS5zZXR9OnVbbF0seCk7aWYocz09PSJhY2Nlc3NvciIpe2lmKGI9PT12b2lkIDApY29udGludWU7aWYoYj09PW51bGx8fHR5cGVvZiBiIT0ib2JqZWN0Iil0aHJvdyBuZXcgVHlwZUVycm9yKCJPYmplY3QgZXhwZWN0ZWQiKTsoZD1vKGIuZ2V0KSkmJih1LmdldD1kKSwoZD1vKGIuc2V0KSkmJih1LnNldD1kKSwoZD1vKGIuaW5pdCkpJiZhLnVuc2hpZnQoZCl9ZWxzZShkPW8oYikpJiYocz09PSJmaWVsZCI/YS51bnNoaWZ0KGQpOnVbbF09ZCl9YyYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGMsaS5uYW1lLHUpLGg9ITB9LG9iPWZ1bmN0aW9uKGUsdCxyKXtmb3IodmFyIGk9YXJndW1lbnRzLmxlbmd0aD4yLGE9MDthPHQubGVuZ3RoO2ErKylyPWk/dFthXS5jYWxsKGUscik6dFthXS5jYWxsKGUpO3JldHVybiBpP3I6dm9pZCAwfSx0c3I9KCgpPT57bGV0IGU9W3llKCJkZWVzLXdpbmRvd2NvbnRyb2xzIildLHQscj1bXSxpLGE9emUsbixvPVtdLHM9W10sbCxjPVtdLHU9W107dmFyIGQ9Y2xhc3MgZXh0ZW5kcyBhe3N0YXRpY3tpPXRoaXN9c3RhdGlje2xldCBoPXR5cGVvZiBTeW1ib2w9PSJmdW5jdGlvbiImJlN5bWJvbC5tZXRhZGF0YT9PYmplY3QuY3JlYXRlKGFbU3ltYm9sLm1ldGFkYXRhXT8/bnVsbCk6dm9pZCAwO249W2ooe3JlZmxlY3Q6ITB9KV0sbD1baih7cmVmbGVjdDohMH0pXSx0NmUodGhpcyxudWxsLG4se2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJ0eXBlIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpmPT4idHlwZSJpbiBmLGdldDpmPT5mLnR5cGUsc2V0OihmLHgpPT57Zi50eXBlPXh9fSxtZXRhZGF0YTpofSxvLHMpLHQ2ZSh0aGlzLG51bGwsbCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InBvc2l0aW9uIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpmPT4icG9zaXRpb24iaW4gZixnZXQ6Zj0+Zi5wb3NpdGlvbixzZXQ6KGYseCk9PntmLnBvc2l0aW9uPXh9fSxtZXRhZGF0YTpofSxjLHUpLHQ2ZShudWxsLHQ9e3ZhbHVlOml9LGUse2tpbmQ6ImNsYXNzIixuYW1lOmkubmFtZSxtZXRhZGF0YTpofSxudWxsLHIpLGQ9aT10LnZhbHVlLGgmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShpLFN5bWJvbC5tZXRhZGF0YSx7ZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITAsdmFsdWU6aH0pfXN0YXRpYyBkZW1vPSgpPT5DYDxkZWVzLXdpbmRvd2NvbnRyb2xzPjwvZGVlcy13aW5kb3djb250cm9scz5gO3N0YXRpYyBkZW1vR3JvdXBzPVsiVXRpbGl0eSJdOyNlPW9iKHRoaXMsbywibWFjIik7Z2V0IHR5cGUoKXtyZXR1cm4gdGhpcy4jZX1zZXQgdHlwZShoKXt0aGlzLiNlPWh9I3Q9KG9iKHRoaXMscyksb2IodGhpcyxjLCJsZWZ0IikpO2dldCBwb3NpdGlvbigpe3JldHVybiB0aGlzLiN0fXNldCBwb3NpdGlvbihoKXt0aGlzLiN0PWh9c3RhdGljIHN0eWxlcz1bRGUsbS5kZWZhdWx0U3R5bGVzLG9lYAogICAgICAvKiBUT0RPOiBNaWdyYXRlIGhhcmRjb2RlZCB2YWx1ZXMgdG8gLS1kZWVzLSogQ1NTIHZhcmlhYmxlcyAqLwogICAgICA6aG9zdCB7CiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICAgIGRpc3BsYXk6IGJsb2NrOwogICAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7CiAgICAgICAgcGFkZGluZy1sZWZ0OiAxNnB4OwogICAgICAgIHBhZGRpbmctcmlnaHQ6IDE2cHg7CiAgICAgIH0KCiAgICAgIC53aW5kb3dDb250cm9scyB7CiAgICAgICAgaGVpZ2h0OiAxMDAlOwogICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgIH0KCiAgICAgIC53aW5kb3dDb250cm9scyBkaXYgewogICAgICAgIHdpZHRoOiAxMnB4OwogICAgICAgIGhlaWdodDogMTJweDsKICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7CiAgICAgICAgYm9yZGVyLXJhZGl1czogNTAlOwogICAgICAgIG1hcmdpbjogMHB4OwogICAgICAgIHBhZGRpbmc6IDBweDsKICAgICAgICBiYWNrZ3JvdW5kOiAjMjIyMjIyOwogICAgICB9CgogICAgICAud2luZG93Q29udHJvbHMgZGl2LmNsb3NlIHsKICAgICAgICBiYWNrZ3JvdW5kOiAjZmY1ZjU3OwogICAgICAgIG1hcmdpbi1yaWdodDogMTJweDsKICAgICAgfQoKICAgICAgLndpbmRvd0NvbnRyb2xzIGRpdi50b0RvY2sgewogICAgICAgIGJhY2tncm91bmQ6ICNmZmJkMmU7CiAgICAgICAgbWFyZ2luLXJpZ2h0OiAxMnB4OwogICAgICB9CgogICAgICAud2luZG93Q29udHJvbHMgZGl2Lm1pbk1heCB7CiAgICAgICAgYmFja2dyb3VuZDogIzI3YzkzZjsKICAgICAgfQoKICAgICAgLndpbmRvd0NvbnRyb2xzIGRpdjpob3ZlciB7CiAgICAgICAgYmFja2dyb3VuZDogIzMzMzMzMzsKICAgICAgfQogICAgYF07cmVuZGVyKCl7cmV0dXJuIENgCiAgICAgICR7dGhpcy50eXBlPT09Im1hYyImJnRoaXMucG9zaXRpb249PT0ibGVmdCJ8fCh0aGlzLnR5cGU9PT0ibGludXgifHx0aGlzLnR5cGU9PT0id2luZG93cyIpJiZ0aGlzLnBvc2l0aW9uPT09InJpZ2h0Ij9DYAogICAgICAgICAgICA8ZGl2IGNsYXNzPSJ3aW5kb3dDb250cm9scyI+CiAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iY2xvc2UiPjwvZGl2PgogICAgICAgICAgICAgIDxkaXYgY2xhc3M9InRvRG9jayI+PC9kaXY+CiAgICAgICAgICAgICAgPGRpdiBjbGFzcz0ibWluTWF4Ij48L2Rpdj4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICBgOkNgYH0KICAgIGB9Y29uc3RydWN0b3IoKXtzdXBlciguLi5hcmd1bWVudHMpLG9iKHRoaXMsdSl9c3RhdGlje29iKGkscil9fTtyZXR1cm4gZD1pfSkoKX0pO3ZhciBzYixnYyxyc3IsaTZlPXAoKCk9Pnt3aSgpO3hvKCk7eGUoKTtKZSgpO3NiPWZ1bmN0aW9uKGUsdCxyLGksYSxuKXtmdW5jdGlvbiBvKHkpe2lmKHkhPT12b2lkIDAmJnR5cGVvZiB5IT0iZnVuY3Rpb24iKXRocm93IG5ldyBUeXBlRXJyb3IoIkZ1bmN0aW9uIGV4cGVjdGVkIik7cmV0dXJuIHl9Zm9yKHZhciBzPWkua2luZCxsPXM9PT0iZ2V0dGVyIj8iZ2V0IjpzPT09InNldHRlciI/InNldCI6InZhbHVlIixjPSF0JiZlP2kuc3RhdGljP2U6ZS5wcm90b3R5cGU6bnVsbCx1PXR8fChjP09iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoYyxpLm5hbWUpOnt9KSxkLGg9ITEsZj1yLmxlbmd0aC0xO2Y+PTA7Zi0tKXt2YXIgeD17fTtmb3IodmFyIHYgaW4gaSl4W3ZdPXY9PT0iYWNjZXNzIj97fTppW3ZdO2Zvcih2YXIgdiBpbiBpLmFjY2Vzcyl4LmFjY2Vzc1t2XT1pLmFjY2Vzc1t2XTt4LmFkZEluaXRpYWxpemVyPWZ1bmN0aW9uKHkpe2lmKGgpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGFkZCBpbml0aWFsaXplcnMgYWZ0ZXIgZGVjb3JhdGlvbiBoYXMgY29tcGxldGVkIik7bi5wdXNoKG8oeXx8bnVsbCkpfTt2YXIgYj0oMCxyW2ZdKShzPT09ImFjY2Vzc29yIj97Z2V0OnUuZ2V0LHNldDp1LnNldH06dVtsXSx4KTtpZihzPT09ImFjY2Vzc29yIil7aWYoYj09PXZvaWQgMCljb250aW51ZTtpZihiPT09bnVsbHx8dHlwZW9mIGIhPSJvYmplY3QiKXRocm93IG5ldyBUeXBlRXJyb3IoIk9iamVjdCBleHBlY3RlZCIpOyhkPW8oYi5nZXQpKSYmKHUuZ2V0PWQpLChkPW8oYi5zZXQpKSYmKHUuc2V0PWQpLChkPW8oYi5pbml0KSkmJmEudW5zaGlmdChkKX1lbHNlKGQ9byhiKSkmJihzPT09ImZpZWxkIj9hLnVuc2hpZnQoZCk6dVtsXT1kKX1jJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoYyxpLm5hbWUsdSksaD0hMH0sZ2M9ZnVuY3Rpb24oZSx0LHIpe2Zvcih2YXIgaT1hcmd1bWVudHMubGVuZ3RoPjIsYT0wO2E8dC5sZW5ndGg7YSsrKXI9aT90W2FdLmNhbGwoZSxyKTp0W2FdLmNhbGwoZSk7cmV0dXJuIGk/cjp2b2lkIDB9LHJzcj0oKCk9PntsZXQgZT1beWUoImRlZXMtYXBwdWktcHJvZmlsZWRyb3Bkb3duIildLHQscj1bXSxpLGE9emUsbixvPVtdLHM9W10sbCxjPVtdLHU9W10sZCxoPVtdLGY9W10seCx2PVtdLGI9W107dmFyIHk9Y2xhc3MgZXh0ZW5kcyBhe3N0YXRpY3tpPXRoaXN9c3RhdGlje2xldCB3PXR5cGVvZiBTeW1ib2w9PSJmdW5jdGlvbiImJlN5bWJvbC5tZXRhZGF0YT9PYmplY3QuY3JlYXRlKGFbU3ltYm9sLm1ldGFkYXRhXT8/bnVsbCk6dm9pZCAwO249W2ooe3R5cGU6T2JqZWN0fSldLGw9W2ooe3R5cGU6QXJyYXl9KV0sZD1baih7dHlwZTpCb29sZWFuLHJlZmxlY3Q6ITB9KV0seD1baih7dHlwZTpTdHJpbmd9KV0sc2IodGhpcyxudWxsLG4se2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJ1c2VyIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczprPT4idXNlciJpbiBrLGdldDprPT5rLnVzZXIsc2V0OihrLE8pPT57ay51c2VyPU99fSxtZXRhZGF0YTp3fSxvLHMpLHNiKHRoaXMsbnVsbCxsLHtraW5kOiJhY2Nlc3NvciIsbmFtZToibWVudUl0ZW1zIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczprPT4ibWVudUl0ZW1zImluIGssZ2V0Oms9PmsubWVudUl0ZW1zLHNldDooayxPKT0+e2subWVudUl0ZW1zPU99fSxtZXRhZGF0YTp3fSxjLHUpLHNiKHRoaXMsbnVsbCxkLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiaXNPcGVuIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczprPT4iaXNPcGVuImluIGssZ2V0Oms9PmsuaXNPcGVuLHNldDooayxPKT0+e2suaXNPcGVuPU99fSxtZXRhZGF0YTp3fSxoLGYpLHNiKHRoaXMsbnVsbCx4LHtraW5kOiJhY2Nlc3NvciIsbmFtZToicG9zaXRpb24iLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOms9PiJwb3NpdGlvbiJpbiBrLGdldDprPT5rLnBvc2l0aW9uLHNldDooayxPKT0+e2sucG9zaXRpb249T319LG1ldGFkYXRhOnd9LHYsYiksc2IobnVsbCx0PXt2YWx1ZTppfSxlLHtraW5kOiJjbGFzcyIsbmFtZTppLm5hbWUsbWV0YWRhdGE6d30sbnVsbCxyKSx5PWk9dC52YWx1ZSx3JiZPYmplY3QuZGVmaW5lUHJvcGVydHkoaSxTeW1ib2wubWV0YWRhdGEse2VudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwLHZhbHVlOnd9KX1zdGF0aWMgZGVtbz0oKT0+Q2AKICAgIDxkZWVzLWFwcHVpLXByb2ZpbGVkcm9wZG93bgogICAgICAudXNlcj0ke3tuYW1lOiJKb2huIERvZSIsZW1haWw6ImpvaG4uZG9lQGV4YW1wbGUuY29tIixhdmF0YXI6Imh0dHBzOi8vcmFuZG9tdXNlci5tZS9hcGkvcG9ydHJhaXRzL21lbi8xLmpwZyIsc3RhdHVzOiJvbmxpbmUifX0KICAgICAgLm1lbnVJdGVtcz0ke1t7bmFtZToiUHJvZmlsZSBTZXR0aW5ncyIsaWNvbk5hbWU6InVzZXIiLGFjdGlvbjphc3luYygpPT5jb25zb2xlLmxvZygiUHJvZmlsZSIpfSx7bmFtZToiQWNjb3VudCIsaWNvbk5hbWU6InNldHRpbmdzIixhY3Rpb246YXN5bmMoKT0+Y29uc29sZS5sb2coIkFjY291bnQiKX0se2RpdmlkZXI6ITB9LHtuYW1lOiJIZWxwICYgU3VwcG9ydCIsaWNvbk5hbWU6ImhlbHBDaXJjbGUiLGFjdGlvbjphc3luYygpPT5jb25zb2xlLmxvZygiSGVscCIpfSx7bmFtZToiS2V5Ym9hcmQgU2hvcnRjdXRzIixpY29uTmFtZToia2V5Ym9hcmQiLHNob3J0Y3V0OiJDbWQrSyIsYWN0aW9uOmFzeW5jKCk9PmNvbnNvbGUubG9nKCJTaG9ydGN1dHMiKX0se2RpdmlkZXI6ITB9LHtuYW1lOiJTaWduIE91dCIsaWNvbk5hbWU6ImxvZ091dCIsYWN0aW9uOmFzeW5jKCk9PmNvbnNvbGUubG9nKCJTaWduIG91dCIpfV19CiAgICAgIC5pc09wZW49JHshMH0KICAgID48L2RlZXMtYXBwdWktcHJvZmlsZWRyb3Bkb3duPgogIGA7c3RhdGljIGRlbW9Hcm91cHM9WyJBcHAgVUkiXTsjZT1nYyh0aGlzLG8sdm9pZCAwKTtnZXQgdXNlcigpe3JldHVybiB0aGlzLiNlfXNldCB1c2VyKHcpe3RoaXMuI2U9d30jdD0oZ2ModGhpcyxzKSxnYyh0aGlzLGMsW10pKTtnZXQgbWVudUl0ZW1zKCl7cmV0dXJuIHRoaXMuI3R9c2V0IG1lbnVJdGVtcyh3KXt0aGlzLiN0PXd9I3I9KGdjKHRoaXMsdSksZ2ModGhpcyxoLCExKSk7Z2V0IGlzT3Blbigpe3JldHVybiB0aGlzLiNyfXNldCBpc09wZW4odyl7dGhpcy4jcj13fSNpPShnYyh0aGlzLGYpLGdjKHRoaXMsdiwidG9wLXJpZ2h0IikpO2dldCBwb3NpdGlvbigpe3JldHVybiB0aGlzLiNpfXNldCBwb3NpdGlvbih3KXt0aGlzLiNpPXd9c3RhdGljIHN0eWxlcz1bRGUsbS5kZWZhdWx0U3R5bGVzLG9lYAogICAgICAvKiBUT0RPOiBNaWdyYXRlIGhhcmRjb2RlZCB2YWx1ZXMgdG8gLS1kZWVzLSogQ1NTIHZhcmlhYmxlcyAqLwogICAgICA6aG9zdCB7CiAgICAgICAgZGlzcGxheTogYmxvY2s7CiAgICAgICAgcG9zaXRpb246IGFic29sdXRlOwogICAgICAgIHRvcDogMTAwJTsKICAgICAgICBsZWZ0OiAwOwogICAgICAgIHJpZ2h0OiAwOwogICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lOwogICAgICB9CgogICAgICAuZHJvcGRvd24gewogICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgICBtaW4td2lkdGg6IDIyMHB4OwogICAgICAgIGJhY2tncm91bmQ6ICR7bS5iZFRoZW1lKCIjZmZmZmZmIiwiIzAwMDAwMCIpfTsKICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAke20uYmRUaGVtZSgiI2UwZTBlMCIsIiMyMDIwMjAiKX07CiAgICAgICAgYm9yZGVyLXJhZGl1czogNHB4OwogICAgICAgIGJveC1zaGFkb3c6ICR7bS5iZFRoZW1lKCIwIDRweCAxMnB4IHJnYmEoMCwgMCwgMCwgMC4xNSkiLCIwIDRweCAxMnB4IHJnYmEoMCwgMCwgMCwgMC4zKSIpfTsKICAgICAgICB6LWluZGV4OiAke2ZpLm92ZXJsYXkuZHJvcGRvd259OwogICAgICAgIG9wYWNpdHk6IDA7CiAgICAgICAgdHJhbnNmb3JtOiBzY2FsZSgwLjk1KSB0cmFuc2xhdGVZKC0xMHB4KTsKICAgICAgICB0cmFuc2l0aW9uOiBvcGFjaXR5IDAuMnMsIHRyYW5zZm9ybSAwLjJzOwogICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lOwogICAgICAgIG92ZXJmbG93OiBoaWRkZW47CiAgICAgICAgZm9udC1zaXplOiAxMnB4OwogICAgICB9CgogICAgICA6aG9zdChbaXNvcGVuXSkgLmRyb3Bkb3duIHsKICAgICAgICBvcGFjaXR5OiAxOwogICAgICAgIHRyYW5zZm9ybTogc2NhbGUoMSkgdHJhbnNsYXRlWSgwKTsKICAgICAgICBwb2ludGVyLWV2ZW50czogYXV0bzsKICAgICAgfQogICAgICAKICAgICAgLmJhY2tkcm9wIHsKICAgICAgICBkaXNwbGF5OiBub25lOwogICAgICB9CgogICAgICAvKiBQb3NpdGlvbiB2YXJpYW50cyAqLwogICAgICAuZHJvcGRvd24udG9wLXJpZ2h0IHsKICAgICAgICB0b3A6IDEwMCU7CiAgICAgICAgcmlnaHQ6IDA7CiAgICAgICAgbWFyZ2luLXRvcDogNHB4OwogICAgICB9CgogICAgICAuZHJvcGRvd24udG9wLWxlZnQgewogICAgICAgIHRvcDogMTAwJTsKICAgICAgICBsZWZ0OiAwOwogICAgICAgIG1hcmdpbi10b3A6IDhweDsKICAgICAgfQoKICAgICAgLmRyb3Bkb3duLmJvdHRvbS1yaWdodCB7CiAgICAgICAgYm90dG9tOiAxMDAlOwogICAgICAgIHJpZ2h0OiAwOwogICAgICAgIG1hcmdpbi1ib3R0b206IDhweDsKICAgICAgfQoKICAgICAgLmRyb3Bkb3duLmJvdHRvbS1sZWZ0IHsKICAgICAgICBib3R0b206IDEwMCU7CiAgICAgICAgbGVmdDogMDsKICAgICAgICBtYXJnaW4tYm90dG9tOiA4cHg7CiAgICAgIH0KCiAgICAgIC8qIFVzZXIgc2VjdGlvbiAqLwogICAgICAudXNlci1zZWN0aW9uIHsKICAgICAgICBwYWRkaW5nOiAxMnB4OwogICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAke20uYmRUaGVtZSgiI2UwZTBlMCIsIiMyMDIwMjAiKX07CiAgICAgIH0KCiAgICAgIC51c2VyLWluZm8gewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBnYXA6IDEwcHg7CiAgICAgIH0KCiAgICAgIC51c2VyLWF2YXRhciB7CiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICAgIHdpZHRoOiAzNnB4OwogICAgICAgIGhlaWdodDogMzZweDsKICAgICAgICBib3JkZXItcmFkaXVzOiA1MCU7CiAgICAgICAgYmFja2dyb3VuZDogJHttLmJkVGhlbWUoIiNmMGYwZjAiLCIjMWExYTFhIil9OwogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKICAgICAgICBmb250LXNpemU6IDE0cHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDsKICAgICAgICBjb2xvcjogJHttLmJkVGhlbWUoIiM2NjYiLCIjOTk5Iil9OwogICAgICAgIG92ZXJmbG93OiBoaWRkZW47CiAgICAgIH0KCiAgICAgIC51c2VyLWF2YXRhciBpbWcgewogICAgICAgIHdpZHRoOiAxMDAlOwogICAgICAgIGhlaWdodDogMTAwJTsKICAgICAgICBvYmplY3QtZml0OiBjb3ZlcjsKICAgICAgfQoKICAgICAgLnVzZXItc3RhdHVzIHsKICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgICAgYm90dG9tOiAwOwogICAgICAgIHJpZ2h0OiAwOwogICAgICAgIHdpZHRoOiAxMHB4OwogICAgICAgIGhlaWdodDogMTBweDsKICAgICAgICBib3JkZXItcmFkaXVzOiA1MCU7CiAgICAgICAgYm9yZGVyOiAycHggc29saWQgJHttLmJkVGhlbWUoIiNmZmZmZmYiLCIjMDAwMDAwIil9OwogICAgICB9CgogICAgICAudXNlci1zdGF0dXMub25saW5lIHsKICAgICAgICBiYWNrZ3JvdW5kOiAjNGNhZjUwOwogICAgICB9CgogICAgICAudXNlci1zdGF0dXMub2ZmbGluZSB7CiAgICAgICAgYmFja2dyb3VuZDogIzc1NzU3NTsKICAgICAgfQoKICAgICAgLnVzZXItc3RhdHVzLmJ1c3kgewogICAgICAgIGJhY2tncm91bmQ6ICNmNDQzMzY7CiAgICAgIH0KCiAgICAgIC51c2VyLXN0YXR1cy5hd2F5IHsKICAgICAgICBiYWNrZ3JvdW5kOiAjZmY5ODAwOwogICAgICB9CgogICAgICAudXNlci1kZXRhaWxzIHsKICAgICAgICBmbGV4OiAxOwogICAgICAgIG1pbi13aWR0aDogMDsKICAgICAgfQoKICAgICAgLnVzZXItbmFtZSB7CiAgICAgICAgZm9udC1zaXplOiAxM3B4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7CiAgICAgICAgY29sb3I6ICR7bS5iZFRoZW1lKCIjMDAwIiwiI2ZmZiIpfTsKICAgICAgICBsaW5lLWhlaWdodDogMS4yOwogICAgICAgIG1hcmdpbjogMDsKICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwOwogICAgICAgIG92ZXJmbG93OiBoaWRkZW47CiAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7CiAgICAgIH0KCiAgICAgIC51c2VyLWVtYWlsIHsKICAgICAgICBmb250LXNpemU6IDExcHg7CiAgICAgICAgY29sb3I6ICR7bS5iZFRoZW1lKCIjNjY2IiwiIzk5OSIpfTsKICAgICAgICBtYXJnaW4tdG9wOiAycHg7CiAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDsKICAgICAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzOwogICAgICB9CgogICAgICAvKiBNZW51IHNlY3Rpb24gKi8KICAgICAgLm1lbnUtc2VjdGlvbiB7CiAgICAgICAgcGFkZGluZzogNHB4IDA7CiAgICAgIH0KCiAgICAgIC5tZW51LWl0ZW0gewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBnYXA6IDhweDsKICAgICAgICBwYWRkaW5nOiA4cHggMTJweDsKICAgICAgICBjdXJzb3I6IGRlZmF1bHQ7CiAgICAgICAgdHJhbnNpdGlvbjogYmFja2dyb3VuZCAwLjFzOwogICAgICAgIGNvbG9yOiAke20uYmRUaGVtZSgiIzMzMyIsIiNjY2MiKX07CiAgICAgICAgZm9udC1zaXplOiAxMnB4OwogICAgICAgIGxpbmUtaGVpZ2h0OiAxOwogICAgICAgIHVzZXItc2VsZWN0OiBub25lOwogICAgICB9CgogICAgICAubWVudS1pdGVtOmhvdmVyIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke20uYmRUaGVtZSgicmdiYSgwLCAwLCAwLCAwLjA0KSIsInJnYmEoMjU1LCAyNTUsIDI1NSwgMC4wOCkiKX07CiAgICAgIH0KCiAgICAgIC5tZW51LWl0ZW06YWN0aXZlIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke20uYmRUaGVtZSgicmdiYSgwLCAwLCAwLCAwLjA4KSIsInJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xMikiKX07CiAgICAgIH0KCiAgICAgIC5tZW51LWl0ZW0gZGVlcy1pY29uIHsKICAgICAgICBmb250LXNpemU6IDE0cHg7CiAgICAgICAgb3BhY2l0eTogMC43OwogICAgICB9CgogICAgICAubWVudS1pdGVtLXRleHQgewogICAgICAgIGZsZXg6IDE7CiAgICAgIH0KCiAgICAgIC5tZW51LXNob3J0Y3V0IHsKICAgICAgICBmb250LXNpemU6IDExcHg7CiAgICAgICAgY29sb3I6ICR7bS5iZFRoZW1lKCIjOTk5IiwiIzY2NiIpfTsKICAgICAgICBtYXJnaW4tbGVmdDogYXV0bzsKICAgICAgICBvcGFjaXR5OiAwLjc7CiAgICAgIH0KCiAgICAgIC5tZW51LWRpdmlkZXIgewogICAgICAgIGhlaWdodDogMXB4OwogICAgICAgIGJhY2tncm91bmQ6ICR7bS5iZFRoZW1lKCIjZTBlMGUwIiwiIzIwMjAyMCIpfTsKICAgICAgICBtYXJnaW46IDRweCAwOwogICAgICB9CgogICAgICAvKiBCYWNrZHJvcCBmb3IgbW9iaWxlICovCiAgICAgIEBtZWRpYSAobWF4LXdpZHRoOiA3NjhweCkgewogICAgICAgIC5iYWNrZHJvcCB7CiAgICAgICAgICBwb3NpdGlvbjogZml4ZWQ7CiAgICAgICAgICB0b3A6IDA7CiAgICAgICAgICBsZWZ0OiAwOwogICAgICAgICAgcmlnaHQ6IDA7CiAgICAgICAgICBib3R0b206IDA7CiAgICAgICAgICBiYWNrZ3JvdW5kOiByZ2JhKDAsIDAsIDAsIDAuMyk7CiAgICAgICAgICB6LWluZGV4OiAke2ZpLmJhY2tkcm9wLmRyb3Bkb3dufTsKICAgICAgICAgIG9wYWNpdHk6IDA7CiAgICAgICAgICB0cmFuc2l0aW9uOiBvcGFjaXR5IDAuMnM7CiAgICAgICAgICBkaXNwbGF5OiBub25lOwogICAgICAgIH0KCiAgICAgICAgOmhvc3QoW2lzb3Blbl0pIC5iYWNrZHJvcCB7CiAgICAgICAgICBkaXNwbGF5OiBibG9jazsKICAgICAgICAgIG9wYWNpdHk6IDE7CiAgICAgICAgICBwb2ludGVyLWV2ZW50czogYXV0bzsKICAgICAgICB9CgogICAgICAgIC5kcm9wZG93biB7CiAgICAgICAgICBwb3NpdGlvbjogZml4ZWQ7CiAgICAgICAgICB0b3A6IDUwJTsKICAgICAgICAgIGxlZnQ6IDUwJTsKICAgICAgICAgIHJpZ2h0OiBhdXRvOwogICAgICAgICAgYm90dG9tOiBhdXRvOwogICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSwgLTUwJSkgc2NhbGUoMC45NSk7CiAgICAgICAgICBtYXJnaW46IDA7CiAgICAgICAgICBtYXgtd2lkdGg6IGNhbGMoMTAwdncgLSAzMnB4KTsKICAgICAgICAgIG1heC1oZWlnaHQ6IGNhbGMoMTAwdmggLSAzMnB4KTsKICAgICAgICAgIG92ZXJmbG93LXk6IGF1dG87CiAgICAgICAgICBvdmVyc2Nyb2xsLWJlaGF2aW9yOiBjb250YWluOwogICAgICAgIH0KCiAgICAgICAgOmhvc3QoW2lzb3Blbl0pIC5kcm9wZG93biB7CiAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlLCAtNTAlKSBzY2FsZSgxKTsKICAgICAgICB9CiAgICAgIH0KICAgIGBdO3JlbmRlcigpe3JldHVybiBDYAogICAgICA8ZGl2IGNsYXNzPSJiYWNrZHJvcCIgQGNsaWNrPSR7KCk9PnRoaXMuY2xvc2UoKX0+PC9kaXY+CiAgICAgIDxkaXYgY2xhc3M9ImRyb3Bkb3duICR7dGhpcy5wb3NpdGlvbn0iPgogICAgICAgICR7dGhpcy51c2VyP0NgCiAgICAgICAgICA8ZGl2IGNsYXNzPSJ1c2VyLXNlY3Rpb24iPgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJ1c2VyLWluZm8iPgogICAgICAgICAgICAgIDxkaXYgY2xhc3M9InVzZXItYXZhdGFyIj4KICAgICAgICAgICAgICAgICR7dGhpcy51c2VyLmF2YXRhcj9DYDxpbWcgc3JjPSIke3RoaXMudXNlci5hdmF0YXJ9IiBhbHQ9IiR7dGhpcy51c2VyLm5hbWV9Ij5gOnRoaXMuZ2V0SW5pdGlhbHModGhpcy51c2VyLm5hbWUpfQogICAgICAgICAgICAgICAgJHt0aGlzLnVzZXIuc3RhdHVzP0NgCiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InVzZXItc3RhdHVzICR7dGhpcy51c2VyLnN0YXR1c30iPjwvZGl2PgogICAgICAgICAgICAgICAgYDoiIn0KICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJ1c2VyLWRldGFpbHMiPgogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0idXNlci1uYW1lIj4ke3RoaXMudXNlci5uYW1lfTwvZGl2PgogICAgICAgICAgICAgICAgJHt0aGlzLnVzZXIuZW1haWw/Q2AKICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0idXNlci1lbWFpbCI+JHt0aGlzLnVzZXIuZW1haWx9PC9kaXY+CiAgICAgICAgICAgICAgICBgOiIifQogICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIDwvZGl2PgogICAgICAgIGA6IiJ9CiAgICAgICAgCiAgICAgICAgPGRpdiBjbGFzcz0ibWVudS1zZWN0aW9uIj4KICAgICAgICAgICR7dGhpcy5tZW51SXRlbXMubWFwKHc9PnRoaXMucmVuZGVyTWVudUl0ZW0odykpfQogICAgICAgIDwvZGl2PgogICAgICA8L2Rpdj4KICAgIGB9cmVuZGVyTWVudUl0ZW0odyl7aWYoImRpdmlkZXIiaW4gdyYmdy5kaXZpZGVyKXJldHVybiBDYDxkaXYgY2xhc3M9Im1lbnUtZGl2aWRlciI+PC9kaXY+YDtsZXQgaz13O3JldHVybiBDYAogICAgICA8ZGl2IGNsYXNzPSJtZW51LWl0ZW0iIEBjbGljaz0keygpPT50aGlzLmhhbmRsZU1lbnVDbGljayhrKX0+CiAgICAgICAgJHtrLmljb25OYW1lP0NgCiAgICAgICAgICA8ZGVlcy1pY29uIC5pY29uPSIke2BsdWNpZGU6JHtrLmljb25OYW1lfWB9Ij48L2RlZXMtaWNvbj4KICAgICAgICBgOiIifQogICAgICAgIDxzcGFuIGNsYXNzPSJtZW51LWl0ZW0tdGV4dCI+JHtrLm5hbWV9PC9zcGFuPgogICAgICAgICR7ay5zaG9ydGN1dD9DYAogICAgICAgICAgPHNwYW4gY2xhc3M9Im1lbnUtc2hvcnRjdXQiPiR7ay5zaG9ydGN1dH08L3NwYW4+CiAgICAgICAgYDoiIn0KICAgICAgPC9kaXY+CiAgICBgfWdldEluaXRpYWxzKHcpe3JldHVybiB3LnNwbGl0KCIgIikubWFwKGs9PmtbMF0pLmpvaW4oIiIpLnRvVXBwZXJDYXNlKCkuc2xpY2UoMCwyKX1hc3luYyBoYW5kbGVNZW51Q2xpY2sodyl7YXdhaXQgdy5hY3Rpb24oKSx0aGlzLmNsb3NlKCksdGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBDdXN0b21FdmVudCgibWVudS1zZWxlY3QiLHtkZXRhaWw6e2l0ZW06d30sYnViYmxlczohMCxjb21wb3NlZDohMH0pKX1vcGVuKCl7dGhpcy5pc09wZW49ITB9Y2xvc2UoKXt0aGlzLmlzT3Blbj0hMX10b2dnbGUoKXt0aGlzLmlzT3Blbj0hdGhpcy5pc09wZW59YXN5bmMgY29ubmVjdGVkQ2FsbGJhY2soKXthd2FpdCBzdXBlci5jb25uZWN0ZWRDYWxsYmFjaygpLHRoaXMuaGFuZGxlT3V0c2lkZUNsaWNrPXRoaXMuaGFuZGxlT3V0c2lkZUNsaWNrLmJpbmQodGhpcyksZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLHRoaXMuaGFuZGxlT3V0c2lkZUNsaWNrKX1hc3luYyBkaXNjb25uZWN0ZWRDYWxsYmFjaygpe2F3YWl0IHN1cGVyLmRpc2Nvbm5lY3RlZENhbGxiYWNrKCksZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcigiY2xpY2siLHRoaXMuaGFuZGxlT3V0c2lkZUNsaWNrKX1oYW5kbGVPdXRzaWRlQ2xpY2sodyl7aWYodGhpcy5pc09wZW4mJiF0aGlzLmNvbnRhaW5zKHcudGFyZ2V0KSl7bGV0IGs9dGhpcy5wYXJlbnRFbGVtZW50O2lmKGsmJmsuY29udGFpbnMody50YXJnZXQpKXJldHVybjt0aGlzLmNsb3NlKCl9fWNvbnN0cnVjdG9yKCl7c3VwZXIoLi4uYXJndW1lbnRzKSxnYyh0aGlzLGIpfXN0YXRpY3tnYyhpLHIpfX07cmV0dXJuIHk9aX0pKCl9KTt2YXIgJGEsenIsaXNyLGU2ZT1wKCgpPT57eGUoKTtLdCgpOyQ0KCk7d2koKTtYMnIoKTtKMnIoKTtlc3IoKTtvcigpO3I2ZSgpO2k2ZSgpOyRhPWZ1bmN0aW9uKGUsdCxyLGksYSxuKXtmdW5jdGlvbiBvKHkpe2lmKHkhPT12b2lkIDAmJnR5cGVvZiB5IT0iZnVuY3Rpb24iKXRocm93IG5ldyBUeXBlRXJyb3IoIkZ1bmN0aW9uIGV4cGVjdGVkIik7cmV0dXJuIHl9Zm9yKHZhciBzPWkua2luZCxsPXM9PT0iZ2V0dGVyIj8iZ2V0IjpzPT09InNldHRlciI/InNldCI6InZhbHVlIixjPSF0JiZlP2kuc3RhdGljP2U6ZS5wcm90b3R5cGU6bnVsbCx1PXR8fChjP09iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoYyxpLm5hbWUpOnt9KSxkLGg9ITEsZj1yLmxlbmd0aC0xO2Y+PTA7Zi0tKXt2YXIgeD17fTtmb3IodmFyIHYgaW4gaSl4W3ZdPXY9PT0iYWNjZXNzIj97fTppW3ZdO2Zvcih2YXIgdiBpbiBpLmFjY2Vzcyl4LmFjY2Vzc1t2XT1pLmFjY2Vzc1t2XTt4LmFkZEluaXRpYWxpemVyPWZ1bmN0aW9uKHkpe2lmKGgpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGFkZCBpbml0aWFsaXplcnMgYWZ0ZXIgZGVjb3JhdGlvbiBoYXMgY29tcGxldGVkIik7bi5wdXNoKG8oeXx8bnVsbCkpfTt2YXIgYj0oMCxyW2ZdKShzPT09ImFjY2Vzc29yIj97Z2V0OnUuZ2V0LHNldDp1LnNldH06dVtsXSx4KTtpZihzPT09ImFjY2Vzc29yIil7aWYoYj09PXZvaWQgMCljb250aW51ZTtpZihiPT09bnVsbHx8dHlwZW9mIGIhPSJvYmplY3QiKXRocm93IG5ldyBUeXBlRXJyb3IoIk9iamVjdCBleHBlY3RlZCIpOyhkPW8oYi5nZXQpKSYmKHUuZ2V0PWQpLChkPW8oYi5zZXQpKSYmKHUuc2V0PWQpLChkPW8oYi5pbml0KSkmJmEudW5zaGlmdChkKX1lbHNlKGQ9byhiKSkmJihzPT09ImZpZWxkIj9hLnVuc2hpZnQoZCk6dVtsXT1kKX1jJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoYyxpLm5hbWUsdSksaD0hMH0senI9ZnVuY3Rpb24oZSx0LHIpe2Zvcih2YXIgaT1hcmd1bWVudHMubGVuZ3RoPjIsYT0wO2E8dC5sZW5ndGg7YSsrKXI9aT90W2FdLmNhbGwoZSxyKTp0W2FdLmNhbGwoZSk7cmV0dXJuIGk/cjp2b2lkIDB9LGlzcj0oKCk9PntsZXQgZT1beWUoImRlZXMtYXBwdWktYXBwYmFyIildLHQscj1bXSxpLGE9emUsbixvPVtdLHM9W10sbCxjPVtdLHU9W10sZCxoPVtdLGY9W10seCx2PVtdLGI9W10seSx3PVtdLGs9W10sTyx6PVtdLE09W10sRixEPVtdLE49W10sUixfPVtdLFM9W10sJCxUPVtdLEU9W10scSxCPVtdLEc9W10sZWUsUD1bXSxnZT1bXSx3ZSxJPVtdLG5lPVtdLGtlLFk9W10sQT1bXSxMLFU9W10sVj1bXSxYLGRlPVtdLHZlPVtdO3ZhciBMZT1jbGFzcyBleHRlbmRzIGF7c3RhdGlje2k9dGhpc31zdGF0aWN7bGV0IFc9dHlwZW9mIFN5bWJvbD09ImZ1bmN0aW9uIiYmU3ltYm9sLm1ldGFkYXRhP09iamVjdC5jcmVhdGUoYVtTeW1ib2wubWV0YWRhdGFdPz9udWxsKTp2b2lkIDA7bj1baih7dHlwZTpBcnJheX0pXSxsPVtqKHt0eXBlOlN0cmluZ30pXSxkPVtqKHt0eXBlOlN0cmluZ30pXSx4PVtqKHt0eXBlOkJvb2xlYW59KV0seT1baih7dHlwZTpPYmplY3R9KV0sTz1baih7dHlwZTpBcnJheX0pXSxGPVtqKHt0eXBlOkJvb2xlYW59KV0sUj1baih7dHlwZTpCb29sZWFufSldLCQ9W2ooe3R5cGU6TnVtYmVyfSldLHE9W2ooe3R5cGU6Qm9vbGVhbn0pXSxlZT1bZmUoKV0sd2U9W2ZlKCldLGtlPVtmZSgpXSxMPVtmZSgpXSxYPVtmZSgpXSwkYSh0aGlzLG51bGwsbix7a2luZDoiYWNjZXNzb3IiLG5hbWU6Im1lbnVJdGVtcyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6SD0+Im1lbnVJdGVtcyJpbiBILGdldDpIPT5ILm1lbnVJdGVtcyxzZXQ6KEgsdGUpPT57SC5tZW51SXRlbXM9dGV9fSxtZXRhZGF0YTpXfSxvLHMpLCRhKHRoaXMsbnVsbCxsLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiYnJlYWRjcnVtYnMiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOkg9PiJicmVhZGNydW1icyJpbiBILGdldDpIPT5ILmJyZWFkY3J1bWJzLHNldDooSCx0ZSk9PntILmJyZWFkY3J1bWJzPXRlfX0sbWV0YWRhdGE6V30sYyx1KSwkYSh0aGlzLG51bGwsZCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImJyZWFkY3J1bWJTZXBhcmF0b3IiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOkg9PiJicmVhZGNydW1iU2VwYXJhdG9yImluIEgsZ2V0Okg9PkguYnJlYWRjcnVtYlNlcGFyYXRvcixzZXQ6KEgsdGUpPT57SC5icmVhZGNydW1iU2VwYXJhdG9yPXRlfX0sbWV0YWRhdGE6V30saCxmKSwkYSh0aGlzLG51bGwseCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InNob3dXaW5kb3dDb250cm9scyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6SD0+InNob3dXaW5kb3dDb250cm9scyJpbiBILGdldDpIPT5ILnNob3dXaW5kb3dDb250cm9scyxzZXQ6KEgsdGUpPT57SC5zaG93V2luZG93Q29udHJvbHM9dGV9fSxtZXRhZGF0YTpXfSx2LGIpLCRhKHRoaXMsbnVsbCx5LHtraW5kOiJhY2Nlc3NvciIsbmFtZToidXNlciIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6SD0+InVzZXIiaW4gSCxnZXQ6SD0+SC51c2VyLHNldDooSCx0ZSk9PntILnVzZXI9dGV9fSxtZXRhZGF0YTpXfSx3LGspLCRhKHRoaXMsbnVsbCxPLHtraW5kOiJhY2Nlc3NvciIsbmFtZToicHJvZmlsZU1lbnVJdGVtcyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6SD0+InByb2ZpbGVNZW51SXRlbXMiaW4gSCxnZXQ6SD0+SC5wcm9maWxlTWVudUl0ZW1zLHNldDooSCx0ZSk9PntILnByb2ZpbGVNZW51SXRlbXM9dGV9fSxtZXRhZGF0YTpXfSx6LE0pLCRhKHRoaXMsbnVsbCxGLHtraW5kOiJhY2Nlc3NvciIsbmFtZToic2hvd1NlYXJjaCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6SD0+InNob3dTZWFyY2giaW4gSCxnZXQ6SD0+SC5zaG93U2VhcmNoLHNldDooSCx0ZSk9PntILnNob3dTZWFyY2g9dGV9fSxtZXRhZGF0YTpXfSxELE4pLCRhKHRoaXMsbnVsbCxSLHtraW5kOiJhY2Nlc3NvciIsbmFtZToic2hvd0FjdGl2aXR5TG9nVG9nZ2xlIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpIPT4ic2hvd0FjdGl2aXR5TG9nVG9nZ2xlImluIEgsZ2V0Okg9Pkguc2hvd0FjdGl2aXR5TG9nVG9nZ2xlLHNldDooSCx0ZSk9PntILnNob3dBY3Rpdml0eUxvZ1RvZ2dsZT10ZX19LG1ldGFkYXRhOld9LF8sUyksJGEodGhpcyxudWxsLCQse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJhY3Rpdml0eUxvZ0NvdW50IixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpIPT4iYWN0aXZpdHlMb2dDb3VudCJpbiBILGdldDpIPT5ILmFjdGl2aXR5TG9nQ291bnQsc2V0OihILHRlKT0+e0guYWN0aXZpdHlMb2dDb3VudD10ZX19LG1ldGFkYXRhOld9LFQsRSksJGEodGhpcyxudWxsLHEse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJhY3Rpdml0eUxvZ0FjdGl2ZSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6SD0+ImFjdGl2aXR5TG9nQWN0aXZlImluIEgsZ2V0Okg9PkguYWN0aXZpdHlMb2dBY3RpdmUsc2V0OihILHRlKT0+e0guYWN0aXZpdHlMb2dBY3RpdmU9dGV9fSxtZXRhZGF0YTpXfSxCLEcpLCRhKHRoaXMsbnVsbCxlZSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImFjdGl2ZU1lbnUiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOkg9PiJhY3RpdmVNZW51ImluIEgsZ2V0Okg9PkguYWN0aXZlTWVudSxzZXQ6KEgsdGUpPT57SC5hY3RpdmVNZW51PXRlfX0sbWV0YWRhdGE6V30sUCxnZSksJGEodGhpcyxudWxsLHdlLHtraW5kOiJhY2Nlc3NvciIsbmFtZToib3BlbkRyb3Bkb3ducyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6SD0+Im9wZW5Ecm9wZG93bnMiaW4gSCxnZXQ6SD0+SC5vcGVuRHJvcGRvd25zLHNldDooSCx0ZSk9PntILm9wZW5Ecm9wZG93bnM9dGV9fSxtZXRhZGF0YTpXfSxJLG5lKSwkYSh0aGlzLG51bGwsa2Use2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJmb2N1c2VkSXRlbSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6SD0+ImZvY3VzZWRJdGVtImluIEgsZ2V0Okg9PkguZm9jdXNlZEl0ZW0sc2V0OihILHRlKT0+e0guZm9jdXNlZEl0ZW09dGV9fSxtZXRhZGF0YTpXfSxZLEEpLCRhKHRoaXMsbnVsbCxMLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiZm9jdXNlZERyb3Bkb3duSXRlbSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6SD0+ImZvY3VzZWREcm9wZG93bkl0ZW0iaW4gSCxnZXQ6SD0+SC5mb2N1c2VkRHJvcGRvd25JdGVtLHNldDooSCx0ZSk9PntILmZvY3VzZWREcm9wZG93bkl0ZW09dGV9fSxtZXRhZGF0YTpXfSxVLFYpLCRhKHRoaXMsbnVsbCxYLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiaXNQcm9maWxlRHJvcGRvd25PcGVuIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpIPT4iaXNQcm9maWxlRHJvcGRvd25PcGVuImluIEgsZ2V0Okg9PkguaXNQcm9maWxlRHJvcGRvd25PcGVuLHNldDooSCx0ZSk9PntILmlzUHJvZmlsZURyb3Bkb3duT3Blbj10ZX19LG1ldGFkYXRhOld9LGRlLHZlKSwkYShudWxsLHQ9e3ZhbHVlOml9LGUse2tpbmQ6ImNsYXNzIixuYW1lOmkubmFtZSxtZXRhZGF0YTpXfSxudWxsLHIpLExlPWk9dC52YWx1ZSxXJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoaSxTeW1ib2wubWV0YWRhdGEse2VudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwLHZhbHVlOld9KX1zdGF0aWMgZGVtbz1aMnI7c3RhdGljIGRlbW9Hcm91cHM9WyJBcHAgVUkiXTsjZT16cih0aGlzLG8sW10pO2dldCBtZW51SXRlbXMoKXtyZXR1cm4gdGhpcy4jZX1zZXQgbWVudUl0ZW1zKFcpe3RoaXMuI2U9V30jdD0oenIodGhpcyxzKSx6cih0aGlzLGMsIiIpKTtnZXQgYnJlYWRjcnVtYnMoKXtyZXR1cm4gdGhpcy4jdH1zZXQgYnJlYWRjcnVtYnMoVyl7dGhpcy4jdD1XfSNyPSh6cih0aGlzLHUpLHpyKHRoaXMsaCwiID4gIikpO2dldCBicmVhZGNydW1iU2VwYXJhdG9yKCl7cmV0dXJuIHRoaXMuI3J9c2V0IGJyZWFkY3J1bWJTZXBhcmF0b3IoVyl7dGhpcy4jcj1XfSNpPSh6cih0aGlzLGYpLHpyKHRoaXMsdiwhMCkpO2dldCBzaG93V2luZG93Q29udHJvbHMoKXtyZXR1cm4gdGhpcy4jaX1zZXQgc2hvd1dpbmRvd0NvbnRyb2xzKFcpe3RoaXMuI2k9V30jYT0oenIodGhpcyxiKSx6cih0aGlzLHcsdm9pZCAwKSk7Z2V0IHVzZXIoKXtyZXR1cm4gdGhpcy4jYX1zZXQgdXNlcihXKXt0aGlzLiNhPVd9I249KHpyKHRoaXMsayksenIodGhpcyx6LFtdKSk7Z2V0IHByb2ZpbGVNZW51SXRlbXMoKXtyZXR1cm4gdGhpcy4jbn1zZXQgcHJvZmlsZU1lbnVJdGVtcyhXKXt0aGlzLiNuPVd9I289KHpyKHRoaXMsTSksenIodGhpcyxELCExKSk7Z2V0IHNob3dTZWFyY2goKXtyZXR1cm4gdGhpcy4jb31zZXQgc2hvd1NlYXJjaChXKXt0aGlzLiNvPVd9I3M9KHpyKHRoaXMsTiksenIodGhpcyxfLCExKSk7Z2V0IHNob3dBY3Rpdml0eUxvZ1RvZ2dsZSgpe3JldHVybiB0aGlzLiNzfXNldCBzaG93QWN0aXZpdHlMb2dUb2dnbGUoVyl7dGhpcy4jcz1XfSNsPSh6cih0aGlzLFMpLHpyKHRoaXMsVCwwKSk7Z2V0IGFjdGl2aXR5TG9nQ291bnQoKXtyZXR1cm4gdGhpcy4jbH1zZXQgYWN0aXZpdHlMb2dDb3VudChXKXt0aGlzLiNsPVd9I2M9KHpyKHRoaXMsRSksenIodGhpcyxCLCExKSk7Z2V0IGFjdGl2aXR5TG9nQWN0aXZlKCl7cmV0dXJuIHRoaXMuI2N9c2V0IGFjdGl2aXR5TG9nQWN0aXZlKFcpe3RoaXMuI2M9V30jZD0oenIodGhpcyxHKSx6cih0aGlzLFAsbnVsbCkpO2dldCBhY3RpdmVNZW51KCl7cmV0dXJuIHRoaXMuI2R9c2V0IGFjdGl2ZU1lbnUoVyl7dGhpcy4jZD1XfSN1PSh6cih0aGlzLGdlKSx6cih0aGlzLEksbmV3IFNldCkpO2dldCBvcGVuRHJvcGRvd25zKCl7cmV0dXJuIHRoaXMuI3V9c2V0IG9wZW5Ecm9wZG93bnMoVyl7dGhpcy4jdT1XfSNwPSh6cih0aGlzLG5lKSx6cih0aGlzLFksbnVsbCkpO2dldCBmb2N1c2VkSXRlbSgpe3JldHVybiB0aGlzLiNwfXNldCBmb2N1c2VkSXRlbShXKXt0aGlzLiNwPVd9I2g9KHpyKHRoaXMsQSksenIodGhpcyxVLC0xKSk7Z2V0IGZvY3VzZWREcm9wZG93bkl0ZW0oKXtyZXR1cm4gdGhpcy4jaH1zZXQgZm9jdXNlZERyb3Bkb3duSXRlbShXKXt0aGlzLiNoPVd9I2Y9KHpyKHRoaXMsViksenIodGhpcyxkZSwhMSkpO2dldCBpc1Byb2ZpbGVEcm9wZG93bk9wZW4oKXtyZXR1cm4gdGhpcy4jZn1zZXQgaXNQcm9maWxlRHJvcGRvd25PcGVuKFcpe3RoaXMuI2Y9V31zdGF0aWMgc3R5bGVzPVEycjtyZW5kZXIoKXtyZXR1cm4gSzJyKHRoaXMpfXJlbmRlck1lbnVJdGVtcygpe3JldHVybiBDYAogICAgICAke3RoaXMubWVudUl0ZW1zLm1hcCgoVyxIKT0+dGhpcy5yZW5kZXJNZW51SXRlbShXLGBtZW51LSR7SH1gKSl9CiAgICBgfXJlbmRlck1lbnVJdGVtKFcsSCl7aWYoImRpdmlkZXIiaW4gVyYmVy5kaXZpZGVyKXJldHVybiBDYDxkaXYgY2xhc3M9ImRyb3Bkb3duLWRpdmlkZXIiPjwvZGl2PmA7bGV0IHRlPVcsYmU9dGhpcy5hY3RpdmVNZW51PT09SCx1ZT10ZS5zdWJtZW51JiZ0ZS5zdWJtZW51Lmxlbmd0aD4wO3JldHVybiBDYAogICAgICA8ZGl2CiAgICAgICAgY2xhc3M9Im1lbnVJdGVtICR7YmU/ImFjdGl2ZSI6IiJ9IgogICAgICAgID9kaXNhYmxlZD0ke3RlLmRpc2FibGVkfQogICAgICAgIHRhYmluZGV4PSIke3RlLmRpc2FibGVkPy0xOjB9IgogICAgICAgIGRhdGEtaXRlbS1pZD0iJHtIfSIKICAgICAgICBAY2xpY2s9JHsoKT0+dGhpcy5oYW5kbGVNZW51Q2xpY2sodGUsSCl9CiAgICAgICAgQGtleWRvd249JHtDZT0+dGhpcy5oYW5kbGVNZW51S2V5ZG93bihDZSx0ZSxIKX0KICAgICAgICByb2xlPSJtZW51aXRlbSIKICAgICAgICBhcmlhLWhhc3BvcHVwPSIke3VlfSIKICAgICAgICBhcmlhLWV4cGFuZGVkPSIke2JlfSIKICAgICAgPgogICAgICAgICR7dGUuaWNvbk5hbWU/Q2A8ZGVlcy1pY29uIC5pY29uPSIke2BsdWNpZGU6JHt0ZS5pY29uTmFtZX1gfSI+PC9kZWVzLWljb24+YDoiIn0KICAgICAgICAke3RlLm5hbWV9CiAgICAgICAgJHt1ZT90aGlzLnJlbmRlckRyb3Bkb3duKHRlLnN1Ym1lbnUsSCxiZSk6IiJ9CiAgICAgIDwvZGl2PgogICAgYH1yZW5kZXJEcm9wZG93bihXLEgsdGUpe3JldHVybiBDYAogICAgICA8ZGl2IAogICAgICAgIGNsYXNzPSJkcm9wZG93biAke3RlPyJvcGVuIjoiIn0iIAogICAgICAgIEBjbGljaz0ke2JlPT5iZS5zdG9wUHJvcGFnYXRpb24oKX0KICAgICAgICBAa2V5ZG93bj0ke2JlPT50aGlzLmhhbmRsZURyb3Bkb3duS2V5ZG93bihiZSxXLEgpfQogICAgICAgIHRhYmluZGV4PSIke3RlPzA6LTF9IgogICAgICAgIHJvbGU9Im1lbnUiCiAgICAgID4KICAgICAgICAke1cubWFwKChiZSx1ZSk9PnRoaXMucmVuZGVyRHJvcGRvd25JdGVtKGJlLGAke0h9LSR7dWV9YCkpfQogICAgICA8L2Rpdj4KICAgIGB9cmVuZGVyRHJvcGRvd25JdGVtKFcsSCl7aWYoImRpdmlkZXIiaW4gVyYmVy5kaXZpZGVyKXJldHVybiBDYDxkaXYgY2xhc3M9ImRyb3Bkb3duLWRpdmlkZXIiPjwvZGl2PmA7bGV0IHRlPVcsYmU9cGFyc2VJbnQoSC5zcGxpdCgiLSIpLnBvcCgpfHwiMCIpLHVlPXRoaXMuZm9jdXNlZERyb3Bkb3duSXRlbT09PWJlO3JldHVybiBDYAogICAgICA8ZGl2CiAgICAgICAgY2xhc3M9ImRyb3Bkb3duLWl0ZW0gJHt1ZT8iZm9jdXNlZCI6IiJ9IgogICAgICAgID9kaXNhYmxlZD0ke3RlLmRpc2FibGVkfQogICAgICAgIEBjbGljaz0keygpPT50aGlzLmhhbmRsZURyb3Bkb3duSXRlbUNsaWNrKHRlKX0KICAgICAgICBAbW91c2VlbnRlcj0keygpPT50aGlzLmZvY3VzZWREcm9wZG93bkl0ZW09YmV9CiAgICAgICAgcm9sZT0ibWVudWl0ZW0iCiAgICAgICAgdGFiaW5kZXg9IiR7dGUuZGlzYWJsZWQ/LTE6MH0iCiAgICAgID4KICAgICAgICAke3RlLmljb25OYW1lP0NgPGRlZXMtaWNvbiAuaWNvbj0iJHtgbHVjaWRlOiR7dGUuaWNvbk5hbWV9YH0iPjwvZGVlcy1pY29uPmA6IiJ9CiAgICAgICAgPHNwYW4+JHt0ZS5uYW1lfTwvc3Bhbj4KICAgICAgICAke3RlLnNob3J0Y3V0P0NgPHNwYW4gY2xhc3M9InNob3J0Y3V0Ij4ke3RlLnNob3J0Y3V0fTwvc3Bhbj5gOiIifQogICAgICA8L2Rpdj4KICAgIGB9cmVuZGVyQnJlYWRjcnVtYnMoKXtpZighdGhpcy5icmVhZGNydW1icylyZXR1cm4gQ2BgO2xldCBXPXRoaXMuYnJlYWRjcnVtYnMuc3BsaXQodGhpcy5icmVhZGNydW1iU2VwYXJhdG9yKTtyZXR1cm4gQ2AKICAgICAgJHtXLm1hcCgoSCx0ZSk9PkNgCiAgICAgICAgJHt0ZT4wP0NgPHNwYW4gY2xhc3M9ImJyZWFkY3J1bWItc2VwYXJhdG9yIj4ke3RoaXMuYnJlYWRjcnVtYlNlcGFyYXRvcn08L3NwYW4+YDoiIn0KICAgICAgICA8c3BhbiAKICAgICAgICAgIGNsYXNzPSJicmVhZGNydW1iLWl0ZW0iIAogICAgICAgICAgQGNsaWNrPSR7KCk9PnRoaXMuaGFuZGxlQnJlYWRjcnVtYkNsaWNrKEgsdGUpfQogICAgICAgID4KICAgICAgICAgICR7SH0KICAgICAgICA8L3NwYW4+CiAgICAgIGApfQogICAgYH1yZW5kZXJBY2NvdW50U2VjdGlvbigpe3JldHVybiBDYAogICAgICAke3RoaXMuc2hvd1NlYXJjaD9DYAogICAgICAgIDxkZWVzLWljb24KICAgICAgICAgIGNsYXNzPSJzZWFyY2gtaWNvbiIKICAgICAgICAgIC5pY29uPSR7Imx1Y2lkZTpzZWFyY2gifQogICAgICAgICAgQGNsaWNrPSR7dGhpcy5oYW5kbGVTZWFyY2hDbGlja30KICAgICAgICA+PC9kZWVzLWljb24+CiAgICAgIGA6IiJ9CiAgICAgICR7dGhpcy51c2VyP0NgCiAgICAgICAgPGRpdiBzdHlsZT0icG9zaXRpb246IHJlbGF0aXZlOyI+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJ1c2VyLWluZm8iIEBjbGljaz0ke3RoaXMuaGFuZGxlVXNlckNsaWNrfT4KICAgICAgICAgICAgPGRpdiBjbGFzcz0idXNlci1hdmF0YXIiPgogICAgICAgICAgICAgICR7dGhpcy51c2VyLmF2YXRhcj9DYDxpbWcgc3JjPSIke3RoaXMudXNlci5hdmF0YXJ9IiBhbHQ9IiR7dGhpcy51c2VyLm5hbWV9Ij5gOkNgJHt0aGlzLnVzZXIubmFtZS5jaGFyQXQoMCkudG9VcHBlckNhc2UoKX1gfQogICAgICAgICAgICAgICR7dGhpcy51c2VyLnN0YXR1cz9DYAogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0idXNlci1zdGF0dXMgJHt0aGlzLnVzZXIuc3RhdHVzfSI+PC9kaXY+CiAgICAgICAgICAgICAgYDoiIn0KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDxzcGFuPiR7dGhpcy51c2VyLm5hbWV9PC9zcGFuPgogICAgICAgICAgPC9kaXY+CiAgICAgICAgICA8ZGVlcy1hcHB1aS1wcm9maWxlZHJvcGRvd24KICAgICAgICAgICAgLnVzZXI9JHt0aGlzLnVzZXJ9CiAgICAgICAgICAgIC5tZW51SXRlbXM9JHt0aGlzLnByb2ZpbGVNZW51SXRlbXN9CiAgICAgICAgICAgIC5pc09wZW49JHt0aGlzLmlzUHJvZmlsZURyb3Bkb3duT3Blbn0KICAgICAgICAgICAgLnBvc2l0aW9uPSR7InRvcC1yaWdodCJ9CiAgICAgICAgICAgIEBtZW51LXNlbGVjdD0ke1c9PnRoaXMuaGFuZGxlUHJvZmlsZU1lbnVTZWxlY3QoVyl9CiAgICAgICAgICA+PC9kZWVzLWFwcHVpLXByb2ZpbGVkcm9wZG93bj4KICAgICAgICA8L2Rpdj4KICAgICAgYDoiIn0KICAgICAgJHt0aGlzLnNob3dBY3Rpdml0eUxvZ1RvZ2dsZT9DYAogICAgICAgIDxkaXYKICAgICAgICAgIGNsYXNzPSJhY3Rpdml0eS10b2dnbGUgJHt0aGlzLmFjdGl2aXR5TG9nQWN0aXZlPyJhY3RpdmUiOiIifSIKICAgICAgICAgIEBjbGljaz0ke3RoaXMuaGFuZGxlQWN0aXZpdHlUb2dnbGV9CiAgICAgICAgICB0aXRsZT0iQWN0aXZpdHkgTG9nIgogICAgICAgID4KICAgICAgICAgIDxkZWVzLWljb24gLmljb249JHsibHVjaWRlOmFjdGl2aXR5In0+PC9kZWVzLWljb24+CiAgICAgICAgICAke3RoaXMuYWN0aXZpdHlMb2dDb3VudD4wP0NgCiAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJhY3Rpdml0eS1iYWRnZSI+JHt0aGlzLmFjdGl2aXR5TG9nQ291bnQ+OTk/Ijk5KyI6dGhpcy5hY3Rpdml0eUxvZ0NvdW50fTwvc3Bhbj4KICAgICAgICAgIGA6IiJ9CiAgICAgICAgPC9kaXY+CiAgICAgIGA6IiJ9CiAgICBgfWhhbmRsZU1lbnVDbGljayhXLEgpe1cuZGlzYWJsZWR8fChXLnN1Ym1lbnUmJlcuc3VibWVudS5sZW5ndGg+MD90aGlzLmFjdGl2ZU1lbnU9PT1IP3RoaXMuYWN0aXZlTWVudT1udWxsOnRoaXMuYWN0aXZlTWVudT1IOih0aGlzLmFjdGl2ZU1lbnU9bnVsbCxXLmFjdGlvbiYmVy5hY3Rpb24oKSx0aGlzLmRpc3BhdGNoRXZlbnQobmV3IEN1c3RvbUV2ZW50KCJtZW51LXNlbGVjdCIse2RldGFpbDp7aXRlbTpXfSxidWJibGVzOiEwLGNvbXBvc2VkOiEwfSkpKSl9aGFuZGxlRHJvcGRvd25JdGVtQ2xpY2soVyl7Vy5kaXNhYmxlZHx8KHRoaXMuYWN0aXZlTWVudT1udWxsLFcuYWN0aW9uJiZXLmFjdGlvbigpLHRoaXMuZGlzcGF0Y2hFdmVudChuZXcgQ3VzdG9tRXZlbnQoIm1lbnUtc2VsZWN0Iix7ZGV0YWlsOntpdGVtOld9LGJ1YmJsZXM6ITAsY29tcG9zZWQ6ITB9KSkpfWhhbmRsZU1lbnVLZXlkb3duKFcsSCx0ZSl7c3dpdGNoKFcua2V5KXtjYXNlIkVudGVyIjpjYXNlIiAiOlcucHJldmVudERlZmF1bHQoKSx0aGlzLmhhbmRsZU1lbnVDbGljayhILHRlKTticmVhaztjYXNlIkFycm93RG93biI6aWYoSC5zdWJtZW51JiZ0aGlzLmFjdGl2ZU1lbnU9PT10ZSl7Vy5wcmV2ZW50RGVmYXVsdCgpLHRoaXMuZm9jdXNlZERyb3Bkb3duSXRlbT0wO2xldCBiZT10aGlzLmZpbmROZXh0VmFsaWRJdGVtKEguc3VibWVudSwtMSwxKTtiZSE9PS0xJiYodGhpcy5mb2N1c2VkRHJvcGRvd25JdGVtPWJlLHNldFRpbWVvdXQoKCk9PntsZXQgdWU9dGhpcy5yZW5kZXJSb290LnF1ZXJ5U2VsZWN0b3IoIi5kcm9wZG93bi5vcGVuIik7dWUmJnVlLmZvY3VzKCl9LDApKX1icmVhaztjYXNlIkVzY2FwZSI6dGhpcy5hY3RpdmVNZW51PW51bGwsdGhpcy5mb2N1c2VkRHJvcGRvd25JdGVtPS0xO2JyZWFrO2Nhc2UiVGFiIjp0aGlzLmFjdGl2ZU1lbnU9PT10ZSYmKHRoaXMuYWN0aXZlTWVudT1udWxsLHRoaXMuZm9jdXNlZERyb3Bkb3duSXRlbT0tMSk7YnJlYWs7Y2FzZSJBcnJvd1JpZ2h0IjpXLnByZXZlbnREZWZhdWx0KCksdGhpcy5mb2N1c05leHRNZW51SXRlbSh0ZSwxKTticmVhaztjYXNlIkFycm93TGVmdCI6Vy5wcmV2ZW50RGVmYXVsdCgpLHRoaXMuZm9jdXNOZXh0TWVudUl0ZW0odGUsLTEpO2JyZWFrfX1oYW5kbGVCcmVhZGNydW1iQ2xpY2soVyxIKXt0aGlzLmRpc3BhdGNoRXZlbnQobmV3IEN1c3RvbUV2ZW50KCJicmVhZGNydW1iLW5hdmlnYXRlIix7ZGV0YWlsOnticmVhZGNydW1iOlcsaW5kZXg6SH0sYnViYmxlczohMCxjb21wb3NlZDohMH0pKX1oYW5kbGVTZWFyY2hDbGljaygpe3RoaXMuZGlzcGF0Y2hFdmVudChuZXcgQ3VzdG9tRXZlbnQoInNlYXJjaC1jbGljayIse2J1YmJsZXM6ITAsY29tcG9zZWQ6ITB9KSl9aGFuZGxlQWN0aXZpdHlUb2dnbGUoKXt0aGlzLmRpc3BhdGNoRXZlbnQobmV3IEN1c3RvbUV2ZW50KCJhY3Rpdml0eS10b2dnbGUiLHtidWJibGVzOiEwLGNvbXBvc2VkOiEwfSkpfWhhbmRsZVVzZXJDbGljaygpe3RoaXMuaXNQcm9maWxlRHJvcGRvd25PcGVuPSF0aGlzLmlzUHJvZmlsZURyb3Bkb3duT3Blbix0aGlzLmRpc3BhdGNoRXZlbnQobmV3IEN1c3RvbUV2ZW50KCJ1c2VyLW1lbnUtb3BlbiIse2J1YmJsZXM6ITAsY29tcG9zZWQ6ITB9KSl9aGFuZGxlUHJvZmlsZU1lbnVTZWxlY3QoVyl7dGhpcy5pc1Byb2ZpbGVEcm9wZG93bk9wZW49ITEsdGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBDdXN0b21FdmVudCgicHJvZmlsZS1tZW51LXNlbGVjdCIse2RldGFpbDpXLmRldGFpbCxidWJibGVzOiEwLGNvbXBvc2VkOiEwfSkpfWFzeW5jIGNvbm5lY3RlZENhbGxiYWNrKCl7YXdhaXQgc3VwZXIuY29ubmVjdGVkQ2FsbGJhY2soKSx0aGlzLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIix0aGlzLmhhbmRsZUdsb2JhbENsaWNrKSxkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsdGhpcy5oYW5kbGVEb2N1bWVudENsaWNrKX1hc3luYyBkaXNjb25uZWN0ZWRDYWxsYmFjaygpe2F3YWl0IHN1cGVyLmRpc2Nvbm5lY3RlZENhbGxiYWNrKCksZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcigiY2xpY2siLHRoaXMuaGFuZGxlRG9jdW1lbnRDbGljayl9aGFuZGxlR2xvYmFsQ2xpY2s9KHpyKHRoaXMsdmUpLFc9PntXLnN0b3BQcm9wYWdhdGlvbigpfSk7aGFuZGxlRG9jdW1lbnRDbGljaz0oKT0+e3RoaXMuYWN0aXZlTWVudT1udWxsLHRoaXMuZm9jdXNlZERyb3Bkb3duSXRlbT0tMX07aGFuZGxlRHJvcGRvd25LZXlkb3duKFcsSCx0ZSl7bGV0IGJlPUguZmlsdGVyKHVlPT4hKCJkaXZpZGVyImluIHVlJiZ1ZS5kaXZpZGVyKSk7c3dpdGNoKFcua2V5KXtjYXNlIkFycm93RG93biI6Vy5wcmV2ZW50RGVmYXVsdCgpO2xldCB1ZT10aGlzLmZpbmROZXh0VmFsaWRJdGVtKEgsdGhpcy5mb2N1c2VkRHJvcGRvd25JdGVtLDEpO3VlIT09LTEmJih0aGlzLmZvY3VzZWREcm9wZG93bkl0ZW09dWUpO2JyZWFrO2Nhc2UiQXJyb3dVcCI6Vy5wcmV2ZW50RGVmYXVsdCgpO2xldCBDZT10aGlzLmZpbmROZXh0VmFsaWRJdGVtKEgsdGhpcy5mb2N1c2VkRHJvcGRvd25JdGVtLC0xKTtDZSE9PS0xJiYodGhpcy5mb2N1c2VkRHJvcGRvd25JdGVtPUNlKTticmVhaztjYXNlIkVudGVyIjppZihXLnByZXZlbnREZWZhdWx0KCksdGhpcy5mb2N1c2VkRHJvcGRvd25JdGVtIT09LTEpe2xldCBJZT1iZVt0aGlzLmZvY3VzZWREcm9wZG93bkl0ZW1dO0llJiYiYWN0aW9uImluIEllJiYhSWUuZGlzYWJsZWQmJnRoaXMuaGFuZGxlRHJvcGRvd25JdGVtQ2xpY2soSWUpfWJyZWFrO2Nhc2UiSG9tZSI6Vy5wcmV2ZW50RGVmYXVsdCgpO2xldCBoZT10aGlzLmZpbmROZXh0VmFsaWRJdGVtKEgsLTEsMSk7aGUhPT0tMSYmKHRoaXMuZm9jdXNlZERyb3Bkb3duSXRlbT1oZSk7YnJlYWs7Y2FzZSJFbmQiOlcucHJldmVudERlZmF1bHQoKTtsZXQgaWU9dGhpcy5maW5kTmV4dFZhbGlkSXRlbShILEgubGVuZ3RoLC0xKTtpZSE9PS0xJiYodGhpcy5mb2N1c2VkRHJvcGRvd25JdGVtPWllKTticmVhaztjYXNlIkVzY2FwZSI6Vy5wcmV2ZW50RGVmYXVsdCgpLHRoaXMuYWN0aXZlTWVudT1udWxsLHRoaXMuZm9jdXNlZERyb3Bkb3duSXRlbT0tMTtsZXQgU2U9dGhpcy5yZW5kZXJSb290LnF1ZXJ5U2VsZWN0b3IoIi5tZW51SXRlbS5hY3RpdmUiKTtTZSYmU2UuZm9jdXMoKTticmVha319ZmluZE5leHRWYWxpZEl0ZW0oVyxILHRlKXtsZXQgYmU9SCt0ZTtmb3IoO2JlPj0wJiZiZTxXLmxlbmd0aDspe2xldCB1ZT1XW2JlXTtpZighKCJkaXZpZGVyImluIHVlJiZ1ZS5kaXZpZGVyKSYmISgiZGlzYWJsZWQiaW4gdWUmJnVlLmRpc2FibGVkKSlyZXR1cm4gYmU7YmUrPXRlfXJldHVybi0xfWZvY3VzTmV4dE1lbnVJdGVtKFcsSCl7bGV0IHRlPUFycmF5LmZyb20odGhpcy5yZW5kZXJSb290LnF1ZXJ5U2VsZWN0b3JBbGwoIi5tZW51SXRlbSIpKSxiZT10ZS5maW5kSW5kZXgoaGU9PmhlLmdldEF0dHJpYnV0ZSgiZGF0YS1pdGVtLWlkIik9PT1XKTtpZihiZT09PS0xKXJldHVybjtsZXQgdWU9YmUrSDt1ZTwwP3VlPXRlLmxlbmd0aC0xOnVlPj10ZS5sZW5ndGgmJih1ZT0wKTtsZXQgQ2U9MDtmb3IoO0NlPHRlLmxlbmd0aDspe2xldCBoZT10ZVt1ZV07aWYoIWhlLmhhc0F0dHJpYnV0ZSgiZGlzYWJsZWQiKSl7aGUuZm9jdXMoKSx0aGlzLmFjdGl2ZU1lbnUmJih0aGlzLmFjdGl2ZU1lbnU9bnVsbCx0aGlzLmZvY3VzZWREcm9wZG93bkl0ZW09LTEpO2JyZWFrfXVlPSh1ZStIK3RlLmxlbmd0aCkldGUubGVuZ3RoLENlKyt9fXN0YXRpY3t6cihpLHIpfX07cmV0dXJuIExlPWl9KSgpfSk7dmFyIGE2ZT1wKCgpPT57ZTZlKCl9KTt2YXIgYXNyLG5zcixvc3I9cCgoKT0+e3hlKCk7cDEoKTtuc3I9KCk9PkMoYXNyfHwoYXNyPXM1KFtgCiAgICA8ZGVlcy1kZW1vd3JhcHBlcj4KICAgICAgPHN0eWxlPgogICAgICAgIC5kZW1vLWNvbnRhaW5lciB7CiAgICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgICAgIGdhcDogMjRweDsKICAgICAgICAgIHBhZGRpbmc6IDI0cHg7CiAgICAgICAgICBiYWNrZ3JvdW5kOiAjMWExYTFhOwogICAgICAgIH0KCiAgICAgICAgLmRlbW8tc2VjdGlvbiB7CiAgICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgICAgIGdhcDogOHB4OwogICAgICAgIH0KCiAgICAgICAgLmRlbW8tbGFiZWwgewogICAgICAgICAgZm9udC1zaXplOiAxMnB4OwogICAgICAgICAgY29sb3I6ICM3MzczNzM7CiAgICAgICAgICBmb250LWZhbWlseTogJ0dlaXN0IFNhbnMnLCBzYW5zLXNlcmlmOwogICAgICAgIH0KCiAgICAgICAgLmRlbW8tYm90dG9tYmFyLXdyYXBwZXIgewogICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgaHNsKDAgMCUgMjAlKTsKICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDRweDsKICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47CiAgICAgICAgfQogICAgICA8L3N0eWxlPgogICAgICA8ZGl2IGNsYXNzPSJkZW1vLWNvbnRhaW5lciI+CiAgICAgICAgPGRpdiBjbGFzcz0iZGVtby1zZWN0aW9uIj4KICAgICAgICAgIDxkaXYgY2xhc3M9ImRlbW8tbGFiZWwiPkJvdHRvbSBiYXIgd2l0aCBzdGF0dXMgd2lkZ2V0cyBhbmQgYWN0aW9uczwvZGl2PgogICAgICAgICAgPGRpdiBjbGFzcz0iZGVtby1ib3R0b21iYXItd3JhcHBlciI+CiAgICAgICAgICAgIDxkZWVzLWFwcHVpLWJvdHRvbWJhcgogICAgICAgICAgICAgIGlkPSJkZW1vLWJvdHRvbWJhciIKICAgICAgICAgICAgPjwvZGVlcy1hcHB1aS1ib3R0b21iYXI+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICA8L2Rpdj4KCiAgICAgICAgPGRpdiBjbGFzcz0iZGVtby1zZWN0aW9uIj4KICAgICAgICAgIDxkaXYgY2xhc3M9ImRlbW8tbGFiZWwiPkNvbnRyb2xzPC9kaXY+CiAgICAgICAgICA8ZGl2IHN0eWxlPSJkaXNwbGF5OiBmbGV4OyBnYXA6IDhweDsgZmxleC13cmFwOiB3cmFwOyI+CiAgICAgICAgICAgIDxidXR0b24gb25jbGljaz0iYWRkU3VjY2Vzc1dpZGdldCgpIj5BZGQgU3VjY2VzcyBXaWRnZXQ8L2J1dHRvbj4KICAgICAgICAgICAgPGJ1dHRvbiBvbmNsaWNrPSJhZGRXYXJuaW5nV2lkZ2V0KCkiPkFkZCBXYXJuaW5nIFdpZGdldDwvYnV0dG9uPgogICAgICAgICAgICA8YnV0dG9uIG9uY2xpY2s9ImFkZEVycm9yV2lkZ2V0KCkiPkFkZCBFcnJvciBXaWRnZXQ8L2J1dHRvbj4KICAgICAgICAgICAgPGJ1dHRvbiBvbmNsaWNrPSJhZGRMb2FkaW5nV2lkZ2V0KCkiPkFkZCBMb2FkaW5nIFdpZGdldDwvYnV0dG9uPgogICAgICAgICAgICA8YnV0dG9uIG9uY2xpY2s9ImFkZFJpZ2h0V2lkZ2V0KCkiPkFkZCBSaWdodCBXaWRnZXQ8L2J1dHRvbj4KICAgICAgICAgICAgPGJ1dHRvbiBvbmNsaWNrPSJhZGRBY3Rpb24oKSI+QWRkIEFjdGlvbjwvYnV0dG9uPgogICAgICAgICAgICA8YnV0dG9uIG9uY2xpY2s9ImNsZWFyQWxsKCkiPkNsZWFyIEFsbDwvYnV0dG9uPgogICAgICAgICAgPC9kaXY+CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGl2PgogICAgICA8c2NyaXB0IHR5cGU9Im1vZHVsZSI+CiAgICAgICAgY29uc3QgYm90dG9tYmFyID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2RlbW8tYm90dG9tYmFyJyk7CgogICAgICAgIC8vIFdhaXQgZm9yIGNvbXBvbmVudCB0byBpbml0aWFsaXplCiAgICAgICAgYXdhaXQgYm90dG9tYmFyLnVwZGF0ZUNvbXBsZXRlOwoKICAgICAgICAvLyBBZGQgaW5pdGlhbCB3aWRnZXRzCiAgICAgICAgYm90dG9tYmFyLmFkZFdpZGdldCh7CiAgICAgICAgICBpZDogJ3N0YXR1cycsCiAgICAgICAgICBpY29uTmFtZTogJ2x1Y2lkZTphY3Rpdml0eScsCiAgICAgICAgICBsYWJlbDogJ1N5c3RlbSBPbmxpbmUnLAogICAgICAgICAgc3RhdHVzOiAnc3VjY2VzcycsCiAgICAgICAgICB0b29sdGlwOiAnQWxsIHN5c3RlbXMgb3BlcmF0aW9uYWwnLAogICAgICAgICAgb25DbGljazogKCkgPT4gY29uc29sZS5sb2coJ1N0YXR1cyBjbGlja2VkJyksCiAgICAgICAgICBjb250ZXh0TWVudUl0ZW1zOiBbCiAgICAgICAgICAgIHsgbmFtZTogJ1ZpZXcgRGV0YWlscycsIGljb25OYW1lOiAnbHVjaWRlOmluZm8nLCBhY3Rpb246ICgpID0+IGFsZXJ0KCdTeXN0ZW0gZGV0YWlscycpIH0sCiAgICAgICAgICAgIHsgZGl2aWRlcjogdHJ1ZSB9LAogICAgICAgICAgICB7IG5hbWU6ICdSZWZyZXNoIFN0YXR1cycsIGljb25OYW1lOiAnbHVjaWRlOnJlZnJlc2hDdycsIGFjdGlvbjogKCkgPT4gYWxlcnQoJ1JlZnJlc2hpbmcuLi4nKSB9LAogICAgICAgICAgXSwKICAgICAgICB9KTsKCiAgICAgICAgYm90dG9tYmFyLmFkZFdpZGdldCh7CiAgICAgICAgICBpZDogJ25vdGlmaWNhdGlvbnMnLAogICAgICAgICAgaWNvbk5hbWU6ICdsdWNpZGU6YmVsbCcsCiAgICAgICAgICBsYWJlbDogJzMgbm90aWZpY2F0aW9ucycsCiAgICAgICAgICBzdGF0dXM6ICd3YXJuaW5nJywKICAgICAgICAgIHRvb2x0aXA6ICdZb3UgaGF2ZSB1bnJlYWQgbm90aWZpY2F0aW9ucycsCiAgICAgICAgICBvbkNsaWNrOiAoKSA9PiBjb25zb2xlLmxvZygnTm90aWZpY2F0aW9ucyBjbGlja2VkJyksCiAgICAgICAgfSk7CgogICAgICAgIGJvdHRvbWJhci5hZGRXaWRnZXQoewogICAgICAgICAgaWQ6ICd2ZXJzaW9uJywKICAgICAgICAgIGljb25OYW1lOiAnbHVjaWRlOmdpdEJyYW5jaCcsCiAgICAgICAgICBsYWJlbDogJ3YxLjIuMycsCiAgICAgICAgICB0b29sdGlwOiAnQ3VycmVudCB2ZXJzaW9uJywKICAgICAgICAgIHBvc2l0aW9uOiAncmlnaHQnLAogICAgICAgICAgb25DbGljazogKCkgPT4gY29uc29sZS5sb2coJ1ZlcnNpb24gY2xpY2tlZCcpLAogICAgICAgIH0pOwoKICAgICAgICAvLyBBZGQgaW5pdGlhbCBhY3Rpb25zCiAgICAgICAgYm90dG9tYmFyLmFkZEFjdGlvbih7CiAgICAgICAgICBpZDogJ3NldHRpbmdzJywKICAgICAgICAgIGljb25OYW1lOiAnbHVjaWRlOnNldHRpbmdzJywKICAgICAgICAgIHRvb2x0aXA6ICdTZXR0aW5ncycsCiAgICAgICAgICBwb3NpdGlvbjogJ3JpZ2h0JywKICAgICAgICAgIG9uQ2xpY2s6ICgpID0+IGFsZXJ0KCdTZXR0aW5ncyBjbGlja2VkJyksCiAgICAgICAgfSk7CgogICAgICAgIGJvdHRvbWJhci5hZGRBY3Rpb24oewogICAgICAgICAgaWQ6ICdoZWxwJywKICAgICAgICAgIGljb25OYW1lOiAnbHVjaWRlOmhlbHBDaXJjbGUnLAogICAgICAgICAgdG9vbHRpcDogJ0hlbHAnLAogICAgICAgICAgcG9zaXRpb246ICdyaWdodCcsCiAgICAgICAgICBvbkNsaWNrOiAoKSA9PiBhbGVydCgnSGVscCBjbGlja2VkJyksCiAgICAgICAgfSk7CgogICAgICAgIC8vIERlbW8gY29udHJvbCBmdW5jdGlvbnMKICAgICAgICBsZXQgd2lkZ2V0Q291bnRlciA9IDA7CiAgICAgICAgbGV0IGFjdGlvbkNvdW50ZXIgPSAwOwoKICAgICAgICB3aW5kb3cuYWRkU3VjY2Vzc1dpZGdldCA9ICgpID0+IHsKICAgICAgICAgIHdpZGdldENvdW50ZXIrKzsKICAgICAgICAgIGJvdHRvbWJhci5hZGRXaWRnZXQoewogICAgICAgICAgICBpZDogJ3N1Y2Nlc3MtJyArIHdpZGdldENvdW50ZXIsCiAgICAgICAgICAgIGljb25OYW1lOiAnbHVjaWRlOmNoZWNrQ2lyY2xlJywKICAgICAgICAgICAgbGFiZWw6ICdTdWNjZXNzICcgKyB3aWRnZXRDb3VudGVyLAogICAgICAgICAgICBzdGF0dXM6ICdzdWNjZXNzJywKICAgICAgICAgICAgdG9vbHRpcDogJ1N1Y2Nlc3Mgd2lkZ2V0JywKICAgICAgICAgICAgb25DbGljazogKCkgPT4gYm90dG9tYmFyLnJlbW92ZVdpZGdldCgnc3VjY2Vzcy0nICsgd2lkZ2V0Q291bnRlciksCiAgICAgICAgICB9KTsKICAgICAgICB9OwoKICAgICAgICB3aW5kb3cuYWRkV2FybmluZ1dpZGdldCA9ICgpID0+IHsKICAgICAgICAgIHdpZGdldENvdW50ZXIrKzsKICAgICAgICAgIGJvdHRvbWJhci5hZGRXaWRnZXQoewogICAgICAgICAgICBpZDogJ3dhcm5pbmctJyArIHdpZGdldENvdW50ZXIsCiAgICAgICAgICAgIGljb25OYW1lOiAnbHVjaWRlOmFsZXJ0VHJpYW5nbGUnLAogICAgICAgICAgICBsYWJlbDogJ1dhcm5pbmcgJyArIHdpZGdldENvdW50ZXIsCiAgICAgICAgICAgIHN0YXR1czogJ3dhcm5pbmcnLAogICAgICAgICAgICB0b29sdGlwOiAnV2FybmluZyB3aWRnZXQnLAogICAgICAgICAgICBvbkNsaWNrOiAoKSA9PiBib3R0b21iYXIucmVtb3ZlV2lkZ2V0KCd3YXJuaW5nLScgKyB3aWRnZXRDb3VudGVyKSwKICAgICAgICAgIH0pOwogICAgICAgIH07CgogICAgICAgIHdpbmRvdy5hZGRFcnJvcldpZGdldCA9ICgpID0+IHsKICAgICAgICAgIHdpZGdldENvdW50ZXIrKzsKICAgICAgICAgIGJvdHRvbWJhci5hZGRXaWRnZXQoewogICAgICAgICAgICBpZDogJ2Vycm9yLScgKyB3aWRnZXRDb3VudGVyLAogICAgICAgICAgICBpY29uTmFtZTogJ2x1Y2lkZTp4Q2lyY2xlJywKICAgICAgICAgICAgbGFiZWw6ICdFcnJvciAnICsgd2lkZ2V0Q291bnRlciwKICAgICAgICAgICAgc3RhdHVzOiAnZXJyb3InLAogICAgICAgICAgICB0b29sdGlwOiAnRXJyb3Igd2lkZ2V0JywKICAgICAgICAgICAgb25DbGljazogKCkgPT4gYm90dG9tYmFyLnJlbW92ZVdpZGdldCgnZXJyb3ItJyArIHdpZGdldENvdW50ZXIpLAogICAgICAgICAgfSk7CiAgICAgICAgfTsKCiAgICAgICAgd2luZG93LmFkZExvYWRpbmdXaWRnZXQgPSAoKSA9PiB7CiAgICAgICAgICB3aWRnZXRDb3VudGVyKys7CiAgICAgICAgICBjb25zdCBpZCA9ICdsb2FkaW5nLScgKyB3aWRnZXRDb3VudGVyOwogICAgICAgICAgYm90dG9tYmFyLmFkZFdpZGdldCh7CiAgICAgICAgICAgIGlkOiBpZCwKICAgICAgICAgICAgaWNvbk5hbWU6ICdsdWNpZGU6bG9hZGVyMicsCiAgICAgICAgICAgIGxhYmVsOiAnTG9hZGluZy4uLicsCiAgICAgICAgICAgIHN0YXR1czogJ2FjdGl2ZScsCiAgICAgICAgICAgIGxvYWRpbmc6IHRydWUsCiAgICAgICAgICAgIHRvb2x0aXA6ICdMb2FkaW5nIGluIHByb2dyZXNzJywKICAgICAgICAgIH0pOwoKICAgICAgICAgIC8vIFNpbXVsYXRlIGNvbXBsZXRpb24gYWZ0ZXIgMyBzZWNvbmRzCiAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHsKICAgICAgICAgICAgYm90dG9tYmFyLnVwZGF0ZVdpZGdldChpZCwgewogICAgICAgICAgICAgIGljb25OYW1lOiAnbHVjaWRlOmNoZWNrJywKICAgICAgICAgICAgICBsYWJlbDogJ0RvbmUhJywKICAgICAgICAgICAgICBzdGF0dXM6ICdzdWNjZXNzJywKICAgICAgICAgICAgICBsb2FkaW5nOiBmYWxzZSwKICAgICAgICAgICAgfSk7CiAgICAgICAgICB9LCAzMDAwKTsKICAgICAgICB9OwoKICAgICAgICB3aW5kb3cuYWRkUmlnaHRXaWRnZXQgPSAoKSA9PiB7CiAgICAgICAgICB3aWRnZXRDb3VudGVyKys7CiAgICAgICAgICBib3R0b21iYXIuYWRkV2lkZ2V0KHsKICAgICAgICAgICAgaWQ6ICdyaWdodC0nICsgd2lkZ2V0Q291bnRlciwKICAgICAgICAgICAgaWNvbk5hbWU6ICdsdWNpZGU6aW5mbycsCiAgICAgICAgICAgIGxhYmVsOiAnUmlnaHQgJyArIHdpZGdldENvdW50ZXIsCiAgICAgICAgICAgIHBvc2l0aW9uOiAncmlnaHQnLAogICAgICAgICAgICBvbkNsaWNrOiAoKSA9PiBib3R0b21iYXIucmVtb3ZlV2lkZ2V0KCdyaWdodC0nICsgd2lkZ2V0Q291bnRlciksCiAgICAgICAgICB9KTsKICAgICAgICB9OwoKICAgICAgICB3aW5kb3cuYWRkQWN0aW9uID0gKCkgPT4gewogICAgICAgICAgYWN0aW9uQ291bnRlcisrOwogICAgICAgICAgYm90dG9tYmFyLmFkZEFjdGlvbih7CiAgICAgICAgICAgIGlkOiAnYWN0aW9uLScgKyBhY3Rpb25Db3VudGVyLAogICAgICAgICAgICBpY29uTmFtZTogJ2x1Y2lkZTp6YXAnLAogICAgICAgICAgICB0b29sdGlwOiAnQWN0aW9uICcgKyBhY3Rpb25Db3VudGVyLAogICAgICAgICAgICBvbkNsaWNrOiAoKSA9PiB7CiAgICAgICAgICAgICAgYWxlcnQoJ0FjdGlvbiAnICsgYWN0aW9uQ291bnRlciArICcgY2xpY2tlZCcpOwogICAgICAgICAgICAgIGJvdHRvbWJhci5yZW1vdmVBY3Rpb24oJ2FjdGlvbi0nICsgYWN0aW9uQ291bnRlcik7CiAgICAgICAgICAgIH0sCiAgICAgICAgICB9KTsKICAgICAgICB9OwoKICAgICAgICB3aW5kb3cuY2xlYXJBbGwgPSAoKSA9PiB7CiAgICAgICAgICBib3R0b21iYXIuY2xlYXJXaWRnZXRzKCk7CiAgICAgICAgICBib3R0b21iYXIuY2xlYXJBY3Rpb25zKCk7CiAgICAgICAgICB3aWRnZXRDb3VudGVyID0gMDsKICAgICAgICAgIGFjdGlvbkNvdW50ZXIgPSAwOwogICAgICAgIH07CiAgICAgIDxcL3NjcmlwdD4KICAgIDwvZGVlcy1kZW1vd3JhcHBlcj4KICBgXSkpKX0pO3ZhciBuNmUsbGIsc3NyLG82ZT1wKCgpPT57eGUoKTtKZSgpO29yKCk7TWkoKTtvc3IoKTtuNmU9ZnVuY3Rpb24oZSx0LHIsaSxhLG4pe2Z1bmN0aW9uIG8oeSl7aWYoeSE9PXZvaWQgMCYmdHlwZW9mIHkhPSJmdW5jdGlvbiIpdGhyb3cgbmV3IFR5cGVFcnJvcigiRnVuY3Rpb24gZXhwZWN0ZWQiKTtyZXR1cm4geX1mb3IodmFyIHM9aS5raW5kLGw9cz09PSJnZXR0ZXIiPyJnZXQiOnM9PT0ic2V0dGVyIj8ic2V0IjoidmFsdWUiLGM9IXQmJmU/aS5zdGF0aWM/ZTplLnByb3RvdHlwZTpudWxsLHU9dHx8KGM/T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihjLGkubmFtZSk6e30pLGQsaD0hMSxmPXIubGVuZ3RoLTE7Zj49MDtmLS0pe3ZhciB4PXt9O2Zvcih2YXIgdiBpbiBpKXhbdl09dj09PSJhY2Nlc3MiP3t9Omlbdl07Zm9yKHZhciB2IGluIGkuYWNjZXNzKXguYWNjZXNzW3ZdPWkuYWNjZXNzW3ZdO3guYWRkSW5pdGlhbGl6ZXI9ZnVuY3Rpb24oeSl7aWYoaCl0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgYWRkIGluaXRpYWxpemVycyBhZnRlciBkZWNvcmF0aW9uIGhhcyBjb21wbGV0ZWQiKTtuLnB1c2gobyh5fHxudWxsKSl9O3ZhciBiPSgwLHJbZl0pKHM9PT0iYWNjZXNzb3IiP3tnZXQ6dS5nZXQsc2V0OnUuc2V0fTp1W2xdLHgpO2lmKHM9PT0iYWNjZXNzb3IiKXtpZihiPT09dm9pZCAwKWNvbnRpbnVlO2lmKGI9PT1udWxsfHx0eXBlb2YgYiE9Im9iamVjdCIpdGhyb3cgbmV3IFR5cGVFcnJvcigiT2JqZWN0IGV4cGVjdGVkIik7KGQ9byhiLmdldCkpJiYodS5nZXQ9ZCksKGQ9byhiLnNldCkpJiYodS5zZXQ9ZCksKGQ9byhiLmluaXQpKSYmYS51bnNoaWZ0KGQpfWVsc2UoZD1vKGIpKSYmKHM9PT0iZmllbGQiP2EudW5zaGlmdChkKTp1W2xdPWQpfWMmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShjLGkubmFtZSx1KSxoPSEwfSxsYj1mdW5jdGlvbihlLHQscil7Zm9yKHZhciBpPWFyZ3VtZW50cy5sZW5ndGg+MixhPTA7YTx0Lmxlbmd0aDthKyspcj1pP3RbYV0uY2FsbChlLHIpOnRbYV0uY2FsbChlKTtyZXR1cm4gaT9yOnZvaWQgMH0sc3NyPSgoKT0+e2xldCBlPVt5ZSgiZGVlcy1hcHB1aS1ib3R0b21iYXIiKV0sdCxyPVtdLGksYT16ZSxuLG89W10scz1bXSxsLGM9W10sdT1bXTt2YXIgZD1jbGFzcyBleHRlbmRzIGF7c3RhdGlje2k9dGhpc31zdGF0aWN7bGV0IGg9dHlwZW9mIFN5bWJvbD09ImZ1bmN0aW9uIiYmU3ltYm9sLm1ldGFkYXRhP09iamVjdC5jcmVhdGUoYVtTeW1ib2wubWV0YWRhdGFdPz9udWxsKTp2b2lkIDA7bj1bZmUoKV0sbD1bZmUoKV0sbjZlKHRoaXMsbnVsbCxuLHtraW5kOiJhY2Nlc3NvciIsbmFtZToid2lkZ2V0cyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6Zj0+IndpZGdldHMiaW4gZixnZXQ6Zj0+Zi53aWRnZXRzLHNldDooZix4KT0+e2Yud2lkZ2V0cz14fX0sbWV0YWRhdGE6aH0sbyxzKSxuNmUodGhpcyxudWxsLGwse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJhY3Rpb25zIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpmPT4iYWN0aW9ucyJpbiBmLGdldDpmPT5mLmFjdGlvbnMsc2V0OihmLHgpPT57Zi5hY3Rpb25zPXh9fSxtZXRhZGF0YTpofSxjLHUpLG42ZShudWxsLHQ9e3ZhbHVlOml9LGUse2tpbmQ6ImNsYXNzIixuYW1lOmkubmFtZSxtZXRhZGF0YTpofSxudWxsLHIpLGQ9aT10LnZhbHVlLGgmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShpLFN5bWJvbC5tZXRhZGF0YSx7ZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITAsdmFsdWU6aH0pfXN0YXRpYyBkZW1vPW5zcjtzdGF0aWMgZGVtb0dyb3Vwcz1bIkFwcCBVSSJdOyNlPWxiKHRoaXMsbyxbXSk7Z2V0IHdpZGdldHMoKXtyZXR1cm4gdGhpcy4jZX1zZXQgd2lkZ2V0cyhoKXt0aGlzLiNlPWh9I3Q9KGxiKHRoaXMscyksbGIodGhpcyxjLFtdKSk7Z2V0IGFjdGlvbnMoKXtyZXR1cm4gdGhpcy4jdH1zZXQgYWN0aW9ucyhoKXt0aGlzLiN0PWh9c3RhdGljIHN0eWxlcz1bRGUsbS5kZWZhdWx0U3R5bGVzLG9lYAogICAgICA6aG9zdCB7CiAgICAgICAgZGlzcGxheTogYmxvY2s7CiAgICAgICAgaGVpZ2h0OiAyNHB4OwogICAgICAgIGZsZXgtc2hyaW5rOiAwOwogICAgICAgIHVzZXItc2VsZWN0OiBub25lOwogICAgICB9CgogICAgICAuYm90dG9tLWJhciB7CiAgICAgICAgaGVpZ2h0OiAyNHB4OwogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBwYWRkaW5nOiAwIDhweDsKICAgICAgICBnYXA6IDRweDsKICAgICAgICBiYWNrZ3JvdW5kOiAke20uYmRUaGVtZSgiaHNsKDAgMCUgOTQlKSIsImhzbCgwIDAlIDYlKSIpfTsKICAgICAgICBib3JkZXItdG9wOiAxcHggc29saWQgJHttLmJkVGhlbWUoImhzbCgwIDAlIDg1JSkiLCJoc2woMCAwJSAxNSUpIil9OwogICAgICAgIGZvbnQtc2l6ZTogMTFweDsKICAgICAgICBjb2xvcjogJHttLmJkVGhlbWUoImhzbCgwIDAlIDQwJSkiLCJoc2woMCAwJSA2MCUpIil9OwogICAgICB9CgogICAgICAud2lkZ2V0IHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgZ2FwOiA0cHg7CiAgICAgICAgcGFkZGluZzogMnB4IDZweDsKICAgICAgICBib3JkZXItcmFkaXVzOiAzcHg7CiAgICAgICAgY3Vyc29yOiBwb2ludGVyOwogICAgICAgIHRyYW5zaXRpb246IGJhY2tncm91bmQgMC4xNXMgZWFzZSwgY29sb3IgMC4xNXMgZWFzZTsKICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwOwogICAgICB9CgogICAgICAud2lkZ2V0OmhvdmVyIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke20uYmRUaGVtZSgiaHNsKDAgMCUgODglKSIsImhzbCgwIDAlIDEyJSkiKX07CiAgICAgICAgY29sb3I6ICR7bS5iZFRoZW1lKCJoc2woMCAwJSAyMCUpIiwiaHNsKDAgMCUgODAlKSIpfTsKICAgICAgfQoKICAgICAgLndpZGdldCBkZWVzLWljb24gewogICAgICAgIGZsZXgtc2hyaW5rOiAwOwogICAgICB9CgogICAgICAud2lkZ2V0LXNlcGFyYXRvciB7CiAgICAgICAgd2lkdGg6IDFweDsKICAgICAgICBoZWlnaHQ6IDE0cHg7CiAgICAgICAgYmFja2dyb3VuZDogJHttLmJkVGhlbWUoImhzbCgwIDAlIDgwJSkiLCJoc2woMCAwJSAyMCUpIil9OwogICAgICAgIG1hcmdpbjogMCA0cHg7CiAgICAgIH0KCiAgICAgIC8qIFN0YXR1cyBjb2xvcnMgbWF0Y2hpbmcgZGVlcy13b3Jrc3BhY2UtYm90dG9tYmFyICovCiAgICAgIC53aWRnZXQuYWN0aXZlIHsKICAgICAgICBjb2xvcjogJHttLmJkVGhlbWUoImhzbCgyMTAgMTAwJSA0NSUpIiwiaHNsKDIxMCAxMDAlIDYwJSkiKX07CiAgICAgIH0KCiAgICAgIC53aWRnZXQuc3VjY2VzcyB7CiAgICAgICAgY29sb3I6ICR7bS5iZFRoZW1lKCJoc2woMTQyIDcwJSAzNSUpIiwiaHNsKDE0MiA3MCUgNTAlKSIpfTsKICAgICAgfQoKICAgICAgLndpZGdldC53YXJuaW5nIHsKICAgICAgICBjb2xvcjogJHttLmJkVGhlbWUoImhzbCgzOCA5MiUgNDUlKSIsImhzbCgzOCA5MiUgNTUlKSIpfTsKICAgICAgfQoKICAgICAgLndpZGdldC5lcnJvciB7CiAgICAgICAgY29sb3I6ICR7bS5iZFRoZW1lKCJoc2woMCA3MCUgNTAlKSIsImhzbCgwIDcwJSA2MCUpIil9OwogICAgICB9CgogICAgICBAa2V5ZnJhbWVzIHNwaW4gewogICAgICAgIGZyb20geyB0cmFuc2Zvcm06IHJvdGF0ZSgwZGVnKTsgfQogICAgICAgIHRvIHsgdHJhbnNmb3JtOiByb3RhdGUoMzYwZGVnKTsgfQogICAgICB9CgogICAgICAuc3Bpbm5pbmcgewogICAgICAgIGFuaW1hdGlvbjogc3BpbiAxcyBsaW5lYXIgaW5maW5pdGU7CiAgICAgIH0KCiAgICAgIC5zcGFjZXIgewogICAgICAgIGZsZXg6IDE7CiAgICAgIH0KCiAgICAgIC5hY3Rpb24tYnV0dG9uIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7CiAgICAgICAgd2lkdGg6IDIwcHg7CiAgICAgICAgaGVpZ2h0OiAyMHB4OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDNweDsKICAgICAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICAgICAgdHJhbnNpdGlvbjogYmFja2dyb3VuZCAwLjE1cyBlYXNlOwogICAgICAgIGNvbG9yOiAke20uYmRUaGVtZSgiaHNsKDAgMCUgNDAlKSIsImhzbCgwIDAlIDYwJSkiKX07CiAgICAgIH0KCiAgICAgIC5hY3Rpb24tYnV0dG9uOmhvdmVyIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke20uYmRUaGVtZSgiaHNsKDAgMCUgODglKSIsImhzbCgwIDAlIDEyJSkiKX07CiAgICAgICAgY29sb3I6ICR7bS5iZFRoZW1lKCJoc2woMCAwJSAyMCUpIiwiaHNsKDAgMCUgODAlKSIpfTsKICAgICAgfQoKICAgICAgLmFjdGlvbi1idXR0b24uZGlzYWJsZWQgewogICAgICAgIG9wYWNpdHk6IDAuNTsKICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkOwogICAgICB9CgogICAgICAuYWN0aW9uLWJ1dHRvbi5kaXNhYmxlZDpob3ZlciB7CiAgICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7CiAgICAgICAgY29sb3I6ICR7bS5iZFRoZW1lKCJoc2woMCAwJSA0MCUpIiwiaHNsKDAgMCUgNjAlKSIpfTsKICAgICAgfQogICAgYF07cmVuZGVyKCl7bGV0IGg9dGhpcy53aWRnZXRzLmZpbHRlcihiPT5iLnBvc2l0aW9uIT09InJpZ2h0Iikuc29ydCgoYix5KT0+KGIub3JkZXJ8fDApLSh5Lm9yZGVyfHwwKSksZj10aGlzLndpZGdldHMuZmlsdGVyKGI9PmIucG9zaXRpb249PT0icmlnaHQiKS5zb3J0KChiLHkpPT4oYi5vcmRlcnx8MCktKHkub3JkZXJ8fDApKSx4PXRoaXMuYWN0aW9ucy5maWx0ZXIoYj0+Yi5wb3NpdGlvbj09PSJsZWZ0Iiksdj10aGlzLmFjdGlvbnMuZmlsdGVyKGI9PmIucG9zaXRpb24hPT0ibGVmdCIpO3JldHVybiBDYAogICAgICA8ZGl2IGNsYXNzPSJib3R0b20tYmFyIj4KICAgICAgICA8IS0tIExlZnQgYWN0aW9ucyAtLT4KICAgICAgICAke3gubWFwKGI9PnRoaXMucmVuZGVyQWN0aW9uKGIpKX0KCiAgICAgICAgPCEtLSBMZWZ0IHdpZGdldHMgLS0+CiAgICAgICAgJHtoLm1hcCgoYix5KT0+Q2AKICAgICAgICAgICR7eT4wfHx4Lmxlbmd0aD4wP0NgPGRpdiBjbGFzcz0id2lkZ2V0LXNlcGFyYXRvciI+PC9kaXY+YDoiIn0KICAgICAgICAgICR7dGhpcy5yZW5kZXJXaWRnZXQoYil9CiAgICAgICAgYCl9CgogICAgICAgIDxkaXYgY2xhc3M9InNwYWNlciI+PC9kaXY+CgogICAgICAgIDwhLS0gUmlnaHQgd2lkZ2V0cyAtLT4KICAgICAgICAke2YubWFwKChiLHkpPT5DYAogICAgICAgICAgJHt0aGlzLnJlbmRlcldpZGdldChiKX0KICAgICAgICAgICR7eTxmLmxlbmd0aC0xfHx2Lmxlbmd0aD4wP0NgPGRpdiBjbGFzcz0id2lkZ2V0LXNlcGFyYXRvciI+PC9kaXY+YDoiIn0KICAgICAgICBgKX0KCiAgICAgICAgPCEtLSBSaWdodCBhY3Rpb25zIC0tPgogICAgICAgICR7di5tYXAoYj0+dGhpcy5yZW5kZXJBY3Rpb24oYikpfQogICAgICA8L2Rpdj4KICAgIGB9cmVuZGVyV2lkZ2V0KGgpe2xldCBmPWguc3RhdHVzJiZoLnN0YXR1cyE9PSJpZGxlIj9oLnN0YXR1czoiIix4PWguaWNvbk5hbWU/aC5pY29uTmFtZS5zdGFydHNXaXRoKCJsdWNpZGU6Iik/aC5pY29uTmFtZTpgbHVjaWRlOiR7aC5pY29uTmFtZX1gOiIiO3JldHVybiBDYAogICAgICA8ZGl2CiAgICAgICAgY2xhc3M9IndpZGdldCAke2Z9IgogICAgICAgIHRpdGxlPSIke2gudG9vbHRpcHx8IiJ9IgogICAgICAgIEBjbGljaz0keygpPT5oLm9uQ2xpY2s/LigpfQogICAgICAgIEBjb250ZXh0bWVudT0ke3Y9PnRoaXMuaGFuZGxlV2lkZ2V0Q29udGV4dE1lbnUodixoKX0KICAgICAgPgogICAgICAgICR7eD9DYAogICAgICAgICAgPGRlZXMtaWNvbgogICAgICAgICAgICAuaWNvbj0ke3h9CiAgICAgICAgICAgIGljb25TaXplPSIxMiIKICAgICAgICAgICAgY2xhc3M9IiR7aC5sb2FkaW5nPyJzcGlubmluZyI6IiJ9IgogICAgICAgICAgPjwvZGVlcy1pY29uPgogICAgICAgIGA6IiJ9CiAgICAgICAgJHtoLmxhYmVsP0NgPHNwYW4+JHtoLmxhYmVsfTwvc3Bhbj5gOiIifQogICAgICA8L2Rpdj4KICAgIGB9cmVuZGVyQWN0aW9uKGgpe2xldCBmPWguaWNvbk5hbWUuc3RhcnRzV2l0aCgibHVjaWRlOiIpP2guaWNvbk5hbWU6YGx1Y2lkZToke2guaWNvbk5hbWV9YDtyZXR1cm4gQ2AKICAgICAgPGRpdgogICAgICAgIGNsYXNzPSJhY3Rpb24tYnV0dG9uICR7aC5kaXNhYmxlZD8iZGlzYWJsZWQiOiIifSIKICAgICAgICB0aXRsZT0iJHtoLnRvb2x0aXB8fCIifSIKICAgICAgICBAY2xpY2s9JHsoKT0+IWguZGlzYWJsZWQmJmgub25DbGljaz8uKCl9CiAgICAgID4KICAgICAgICA8ZGVlcy1pY29uCiAgICAgICAgICAuaWNvbj0ke2Z9CiAgICAgICAgICBpY29uU2l6ZT0iMTIiCiAgICAgICAgPjwvZGVlcy1pY29uPgogICAgICA8L2Rpdj4KICAgIGB9YXN5bmMgaGFuZGxlV2lkZ2V0Q29udGV4dE1lbnUoaCxmKXtpZighZi5jb250ZXh0TWVudUl0ZW1zfHxmLmNvbnRleHRNZW51SXRlbXMubGVuZ3RoPT09MClyZXR1cm47aC5wcmV2ZW50RGVmYXVsdCgpO2xldCB4PVtdO2ZvcihsZXQgdiBvZiBmLmNvbnRleHRNZW51SXRlbXMpdi5kaXZpZGVyP3gucHVzaCh7ZGl2aWRlcjohMH0pOngucHVzaCh7bmFtZTp2Lm5hbWUsaWNvbk5hbWU6di5pY29uTmFtZSxhY3Rpb246YXN5bmMoKT0+e2F3YWl0IHYuYWN0aW9uKCl9LGRpc2FibGVkOnYuZGlzYWJsZWR9KTthd2FpdCBTci5vcGVuQ29udGV4dE1lbnVXaXRoT3B0aW9ucyhoLHgpfWFkZFdpZGdldChoKXt0aGlzLndpZGdldHM9dGhpcy53aWRnZXRzLmZpbHRlcihmPT5mLmlkIT09aC5pZCksdGhpcy53aWRnZXRzPVsuLi50aGlzLndpZGdldHMsaF19dXBkYXRlV2lkZ2V0KGgsZil7dGhpcy53aWRnZXRzPXRoaXMud2lkZ2V0cy5tYXAoeD0+eC5pZD09PWg/ey4uLngsLi4uZn06eCl9cmVtb3ZlV2lkZ2V0KGgpe3RoaXMud2lkZ2V0cz10aGlzLndpZGdldHMuZmlsdGVyKGY9PmYuaWQhPT1oKX1nZXRXaWRnZXQoaCl7cmV0dXJuIHRoaXMud2lkZ2V0cy5maW5kKGY9PmYuaWQ9PT1oKX1jbGVhcldpZGdldHMoKXt0aGlzLndpZGdldHM9W119YWRkQWN0aW9uKGgpe3RoaXMuYWN0aW9ucz10aGlzLmFjdGlvbnMuZmlsdGVyKGY9PmYuaWQhPT1oLmlkKSx0aGlzLmFjdGlvbnM9Wy4uLnRoaXMuYWN0aW9ucyxoXX1yZW1vdmVBY3Rpb24oaCl7dGhpcy5hY3Rpb25zPXRoaXMuYWN0aW9ucy5maWx0ZXIoZj0+Zi5pZCE9PWgpfWNsZWFyQWN0aW9ucygpe3RoaXMuYWN0aW9ucz1bXX1jb25zdHJ1Y3Rvcigpe3N1cGVyKC4uLmFyZ3VtZW50cyksbGIodGhpcyx1KX1zdGF0aWN7bGIoaSxyKX19O3JldHVybiBkPWl9KSgpfSk7dmFyIGxzcj1wKCgpPT57bzZlKCl9KTt2YXIgY3NyLGRzcj1wKCgpPT57eGUoKTtjc3I9KCk9PkNgCiAgPHN0eWxlPgogICAgJHtvZWAKICAgICAgLmRlbW8tYmFja2dyb3VuZCB7CiAgICAgICAgcGFkZGluZzogMjRweDsKICAgICAgICBiYWNrZ3JvdW5kOiAke20uYmRUaGVtZSgiaHNsKDAgMCUgOTUlKSIsImhzbCgwIDAlIDUlKSIpfTsKICAgICAgICBtaW4taGVpZ2h0OiAxMDB2aDsKICAgICAgfQogICAgICAKICAgICAgLmRlbW8tY29udGFpbmVyIHsKICAgICAgICBtYXgtd2lkdGg6IDEyMDBweDsKICAgICAgICBtYXJnaW46IDAgYXV0bzsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgICAgZ2FwOiAyNHB4OwogICAgICB9CiAgICAgIAogICAgICAuc2VjdGlvbi10aXRsZSB7CiAgICAgICAgZm9udC1zaXplOiAyNHB4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA3MDA7CiAgICAgICAgbWFyZ2luOiAzMnB4IDAgMTZweCAwOwogICAgICAgIGNvbG9yOiAke20uYmRUaGVtZSgiaHNsKDAgMCUgOSUpIiwiaHNsKDAgMCUgOTUlKSIpfTsKICAgICAgICBsZXR0ZXItc3BhY2luZzogLTAuMDI1ZW07CiAgICAgIH0KICAgICAgCiAgICAgIC5zZWN0aW9uLXRpdGxlOmZpcnN0LWNoaWxkIHsKICAgICAgICBtYXJnaW4tdG9wOiAwOwogICAgICB9CiAgICAgIAogICAgICAuZ3JpZC1sYXlvdXQgewogICAgICAgIGRpc3BsYXk6IGdyaWQ7CiAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAxZnIgMWZyOwogICAgICAgIGdhcDogMjRweDsKICAgICAgfQogICAgICAKICAgICAgLmdyaWQtM2NvbCB7CiAgICAgICAgZGlzcGxheTogZ3JpZDsKICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDFmciAxZnIgMWZyOwogICAgICAgIGdhcDogMjRweDsKICAgICAgfQogICAgICAKICAgICAgQG1lZGlhIChtYXgtd2lkdGg6IDk2OHB4KSB7CiAgICAgICAgLmdyaWQtM2NvbCB7CiAgICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDFmcjsKICAgICAgICB9CiAgICAgIH0KICAgICAgCiAgICAgIEBtZWRpYSAobWF4LXdpZHRoOiA3NjhweCkgewogICAgICAgIC5ncmlkLWxheW91dCB7CiAgICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDFmcjsKICAgICAgICB9CiAgICAgIH0KICAgICAgCiAgICAgIGNvZGUgewogICAgICAgIGJhY2tncm91bmQ6ICR7bS5iZFRoZW1lKCJoc2woMCAwJSA4OS44JSkiLCJoc2woMCAwJSAxNC45JSkiKX07CiAgICAgICAgcGFkZGluZzogMnB4IDZweDsKICAgICAgICBib3JkZXItcmFkaXVzOiAzcHg7CiAgICAgICAgZm9udC1zaXplOiAxM3B4OwogICAgICB9CiAgICBgfQogIDwvc3R5bGU+CiAgCiAgPGRpdiBjbGFzcz0iZGVtby1iYWNrZ3JvdW5kIj4KICAgIDxkaXYgY2xhc3M9ImRlbW8tY29udGFpbmVyIj4KICAgICAgPGgyIGNsYXNzPSJzZWN0aW9uLXRpdGxlIj5EZWZhdWx0IFBhbmVsczwvaDI+CiAgICAgIAogICAgICA8ZGVlcy1wYW5lbCAudGl0bGU9JHsiUGFuZWwgQ29tcG9uZW50In0gLnN1YnRpdGxlPSR7IlRoZSBkZWZhdWx0IHBhbmVsIHZhcmlhbnQgd2l0aCBzaGFkY24taW5zcGlyZWQgc3R5bGluZyJ9PgogICAgICAgIDxwPlRoZSBwYW5lbCBjb21wb25lbnQgYXV0b21hdGljYWxseSBmb2xsb3dzIHRoZSB0aGVtZSBhbmQgcHJvdmlkZXMgY29uc2lzdGVudCBzdHlsaW5nIGZvciBncm91cGVkIGNvbnRlbnQuPC9wPgogICAgICAgIDxwPkl0J3MgcGVyZmVjdCBmb3IgY3JlYXRpbmcgc2VjdGlvbnMgaW4geW91ciBhcHBsaWNhdGlvbiB3aXRoIHByb3BlciBzcGFjaW5nIGFuZCBib3JkZXJzLjwvcD4KICAgICAgPC9kZWVzLXBhbmVsPgogICAgICAKICAgICAgPGRpdiBjbGFzcz0iZ3JpZC1sYXlvdXQiPgogICAgICAgIDxkZWVzLXBhbmVsIC50aXRsZT0keyJGZWF0dXJlIE92ZXJ2aWV3In0gLnN1YnRpdGxlPSR7IktleSBjYXBhYmlsaXRpZXMifT4KICAgICAgICAgIDxwPkdyaWQgbGF5b3V0cyB3b3JrIGdyZWF0IHdpdGggcGFuZWxzIGZvciBjcmVhdGluZyBkYXNoYm9hcmRzIGFuZCBmZWF0dXJlIHNlY3Rpb25zLjwvcD4KICAgICAgICAgIDxkZWVzLWJ1dHRvbj5MZWFybiBNb3JlPC9kZWVzLWJ1dHRvbj4KICAgICAgICA8L2RlZXMtcGFuZWw+CiAgICAgICAgCiAgICAgICAgPGRlZXMtcGFuZWwgLnRpdGxlPSR7IlF1aWNrIEFjdGlvbnMifSAuc3VidGl0bGU9JHsiQ29tbW9uIHRhc2tzIn0+CiAgICAgICAgICA8cD5FYWNoIHBhbmVsIG1haW50YWlucyBjb25zaXN0ZW50IHNwYWNpbmcgYW5kIHN0eWxpbmcgYWNyb3NzIHlvdXIgYXBwbGljYXRpb24uPC9wPgogICAgICAgICAgPGRlZXMtYnV0dG9uPkdldCBTdGFydGVkPC9kZWVzLWJ1dHRvbj4KICAgICAgICA8L2RlZXMtcGFuZWw+CiAgICAgIDwvZGl2PgogICAgICAKICAgICAgPGgyIGNsYXNzPSJzZWN0aW9uLXRpdGxlIj5QYW5lbCBWYXJpYW50czwvaDI+CiAgICAgIAogICAgICA8ZGVlcy1wYW5lbCAudGl0bGU9JHsiRGVmYXVsdCBWYXJpYW50In0gLnZhcmlhbnQ9JHsiZGVmYXVsdCJ9PgogICAgICAgIDxwPlRoZSBkZWZhdWx0IHZhcmlhbnQgaGFzIGEgd2hpdGUgYmFja2dyb3VuZCwgc3VidGxlIGJvcmRlciwgYW5kIG1pbmltYWwgc2hhZG93LiBJdCdzIHRoZSBzdGFuZGFyZCBjaG9pY2UgZm9yIG1vc3QgY29udGVudC48L3A+CiAgICAgICAgPHA+VXNlIDxjb2RlPnZhcmlhbnQ9ImRlZmF1bHQiPC9jb2RlPiBvciBvbWl0IHRoZSB2YXJpYW50IHByb3BlcnR5LjwvcD4KICAgICAgPC9kZWVzLXBhbmVsPgogICAgICAKICAgICAgPGRlZXMtcGFuZWwgLnRpdGxlPSR7Ik91dGxpbmUgVmFyaWFudCJ9IC5zdWJ0aXRsZT0keyJUcmFuc3BhcmVudCBiYWNrZ3JvdW5kIHdpdGggYm9yZGVyIn0gLnZhcmlhbnQ9JHsib3V0bGluZSJ9PgogICAgICAgIDxwPlRoZSBvdXRsaW5lIHZhcmlhbnQgcmVtb3ZlcyB0aGUgYmFja2dyb3VuZCBjb2xvciBhbmQgc2hhZG93LCBrZWVwaW5nIG9ubHkgdGhlIGJvcmRlci48L3A+CiAgICAgICAgPHA+VXNlIDxjb2RlPnZhcmlhbnQ9Im91dGxpbmUiPC9jb2RlPiBmb3IgYSBsaWdodGVyIHZpc3VhbCB3ZWlnaHQuPC9wPgogICAgICA8L2RlZXMtcGFuZWw+CiAgICAgIAogICAgICA8ZGVlcy1wYW5lbCAudGl0bGU9JHsiR2hvc3QgVmFyaWFudCJ9IC5zdWJ0aXRsZT0keyJNaW5pbWFsIHN0eWxpbmcgZm9yIHN1YnRsZSBzZWN0aW9ucyJ9IC52YXJpYW50PSR7Imdob3N0In0+CiAgICAgICAgPHA+VGhlIGdob3N0IHZhcmlhbnQgaGFzIG5vIGJvcmRlciBvciBiYWNrZ3JvdW5kIGJ5IGRlZmF1bHQsIG9ubHkgc2hvd2luZyBhIHN1YnRsZSBiYWNrZ3JvdW5kIG9uIGhvdmVyLjwvcD4KICAgICAgICA8cD5Vc2UgPGNvZGU+dmFyaWFudD0iZ2hvc3QiPC9jb2RlPiBmb3IgdGhlIG1vc3QgbWluaW1hbCBhcHBlYXJhbmNlLjwvcD4KICAgICAgPC9kZWVzLXBhbmVsPgogICAgICAKICAgICAgPGgyIGNsYXNzPSJzZWN0aW9uLXRpdGxlIj5QYW5lbCBTaXplczwvaDI+CiAgICAgIAogICAgICA8ZGl2IGNsYXNzPSJncmlkLTNjb2wiPgogICAgICAgIDxkZWVzLXBhbmVsIC50aXRsZT0keyJTbWFsbCBQYW5lbCJ9IC5zaXplPSR7InNtIn0+CiAgICAgICAgICA8cD5Db21wYWN0IHBhZGRpbmcgZm9yIGRlbnNlIGxheW91dHMuPC9wPgogICAgICAgICAgPHA+VXNlIDxjb2RlPnNpemU9InNtIjwvY29kZT48L3A+CiAgICAgICAgPC9kZWVzLXBhbmVsPgogICAgICAgIAogICAgICAgIDxkZWVzLXBhbmVsIC50aXRsZT0keyJNZWRpdW0gUGFuZWwifSAuc2l6ZT0keyJtZCJ9PgogICAgICAgICAgPHA+RGVmYXVsdCBzaXplIHdpdGggYmFsYW5jZWQgc3BhY2luZy48L3A+CiAgICAgICAgICA8cD5Vc2UgPGNvZGU+c2l6ZT0ibWQiPC9jb2RlPiBvciBvbWl0LjwvcD4KICAgICAgICA8L2RlZXMtcGFuZWw+CiAgICAgICAgCiAgICAgICAgPGRlZXMtcGFuZWwgLnRpdGxlPSR7IkxhcmdlIFBhbmVsIn0gLnNpemU9JHsibGcifT4KICAgICAgICAgIDxwPkdlbmVyb3VzIHBhZGRpbmcgZm9yIHByb21pbmVudCBzZWN0aW9ucy48L3A+CiAgICAgICAgICA8cD5Vc2UgPGNvZGU+c2l6ZT0ibGciPC9jb2RlPjwvcD4KICAgICAgICA8L2RlZXMtcGFuZWw+CiAgICAgIDwvZGl2PgogICAgICAKICAgICAgPGgyIGNsYXNzPSJzZWN0aW9uLXRpdGxlIj5Db21wbGV4IEV4YW1wbGVzPC9oMj4KICAgICAgCiAgICAgIDxkZWVzLXBhbmVsIC50aXRsZT0keyJGb3JtIEV4YW1wbGUifSAuc3VidGl0bGU9JHsiUGFuZWxzIHdvcmsgZ3JlYXQgZm9yIG9yZ2FuaXppbmcgZm9ybSBzZWN0aW9ucyJ9PgogICAgICAgIDxkZWVzLWZvcm0+CiAgICAgICAgICA8ZGVlcy1pbnB1dC10ZXh0IC5sYWJlbD0keyJQcm9qZWN0IE5hbWUifSAucmVxdWlyZWQ9JHshMH0+PC9kZWVzLWlucHV0LXRleHQ+CiAgICAgICAgICA8ZGVlcy1pbnB1dC10ZXh0IC5sYWJlbD0keyJEZXNjcmlwdGlvbiJ9IC5pbnB1dFR5cGU9JHsidGV4dGFyZWEifT48L2RlZXMtaW5wdXQtdGV4dD4KICAgICAgICAgIDxkZWVzLWlucHV0LWRyb3Bkb3duIAogICAgICAgICAgICAubGFiZWw9JHsiQ2F0ZWdvcnkifSAKICAgICAgICAgICAgLm9wdGlvbnM9JHtbe29wdGlvbjoiV2ViIERldmVsb3BtZW50IixrZXk6IndlYiJ9LHtvcHRpb246Ik1vYmlsZSBBcHAiLGtleToibW9iaWxlIn0se29wdGlvbjoiRGVza3RvcCBTb2Z0d2FyZSIsa2V5OiJkZXNrdG9wIn1dfQogICAgICAgICAgPjwvZGVlcy1pbnB1dC1kcm9wZG93bj4KICAgICAgICAgIDxkZWVzLWZvcm0tc3VibWl0PkNyZWF0ZSBQcm9qZWN0PC9kZWVzLWZvcm0tc3VibWl0PgogICAgICAgIDwvZGVlcy1mb3JtPgogICAgICA8L2RlZXMtcGFuZWw+CiAgICAgIAogICAgICA8ZGVlcy1wYW5lbCAudGl0bGU9JHsiTmVzdGVkIFBhbmVscyJ9IC5zdWJ0aXRsZT0keyJQYW5lbHMgY2FuIGJlIG5lc3RlZCBmb3IgaGllcmFyY2hpY2FsIG9yZ2FuaXphdGlvbiJ9PgogICAgICAgIDxwPllvdSBjYW4gbmVzdCBwYW5lbHMgdG8gY3JlYXRlIG1vcmUgY29tcGxleCBsYXlvdXRzOjwvcD4KICAgICAgICAKICAgICAgICA8ZGVlcy1wYW5lbCAudGl0bGU9JHsiTmVzdGVkIFBhbmVsIDEifSAudmFyaWFudD0keyJvdXRsaW5lIn0gLnNpemU9JHsic20ifT4KICAgICAgICAgIDxwPlRoaXMgaXMgYSBuZXN0ZWQgcGFuZWwgd2l0aCBvdXRsaW5lIHZhcmlhbnQgYW5kIHNtYWxsIHNpemUuPC9wPgogICAgICAgIDwvZGVlcy1wYW5lbD4KICAgICAgICAKICAgICAgICA8ZGVlcy1wYW5lbCAudGl0bGU9JHsiTmVzdGVkIFBhbmVsIDIifSAudmFyaWFudD0keyJnaG9zdCJ9IC5zaXplPSR7InNtIn0+CiAgICAgICAgICA8cD5UaGlzIGlzIGFub3RoZXIgbmVzdGVkIHBhbmVsIHdpdGggZ2hvc3QgdmFyaWFudC48L3A+CiAgICAgICAgPC9kZWVzLXBhbmVsPgogICAgICA8L2RlZXMtcGFuZWw+CiAgICAgIAogICAgICA8aDIgY2xhc3M9InNlY3Rpb24tdGl0bGUiPlVudGl0bGVkIFBhbmVsczwvaDI+CiAgICAgIAogICAgICA8ZGVlcy1wYW5lbD4KICAgICAgICA8cD5QYW5lbHMgd29yayBncmVhdCBldmVuIHdpdGhvdXQgYSB0aXRsZSBmb3Igc2ltcGxlIGNvbnRlbnQgZ3JvdXBpbmcuPC9wPgogICAgICAgIDxwPlRoZXkgcHJvdmlkZSB2aXN1YWwgc2VwYXJhdGlvbiBhbmQgY29uc2lzdGVudCBwYWRkaW5nIHRocm91Z2hvdXQgeW91ciBpbnRlcmZhY2UuPC9wPgogICAgICA8L2RlZXMtcGFuZWw+CiAgICAgIAogICAgICA8ZGl2IGNsYXNzPSJncmlkLWxheW91dCI+CiAgICAgICAgPGRlZXMtcGFuZWwgLnZhcmlhbnQ9JHsib3V0bGluZSJ9PgogICAgICAgICAgPGg0IHN0eWxlPSJtYXJnaW4tdG9wOiAwOyI+Q3VzdG9tIENvbnRlbnQ8L2g0PgogICAgICAgICAgPHA+WW91IGNhbiBhZGQgeW91ciBvd24gaGVhZGluZ3MgYW5kIHN0cnVjdHVyZSB3aXRoaW4gdW50aXRsZWQgcGFuZWxzLjwvcD4KICAgICAgICA8L2RlZXMtcGFuZWw+CiAgICAgICAgCiAgICAgICAgPGRlZXMtcGFuZWwgLnZhcmlhbnQ9JHsiZ2hvc3QifT4KICAgICAgICAgIDxoNCBzdHlsZT0ibWFyZ2luLXRvcDogMDsiPk1pbmltYWwgU3R5bGU8L2g0PgogICAgICAgICAgPHA+R2hvc3QgcGFuZWxzIHdpdGhvdXQgdGl0bGVzIGNyZWF0ZSB2ZXJ5IHN1YnRsZSBjb250ZW50IHNlY3Rpb25zLjwvcD4KICAgICAgICA8L2RlZXMtcGFuZWw+CiAgICAgIDwvZGl2PgogICAgPC9kaXY+CiAgPC9kaXY+CmB9KTt2YXIgTlpyLEZacixzNmUsT1pyLElyLEFkLFJacixCWnIsdXNyLEhacixxWnIsVXJhLFdyYSxRYT1wKCgpPT57eGUoKTtOWnI9IkdlaXN0IFNhbnMiLEZacj0iSW50ZWwgT25lIE1vbm8iLHM2ZT1gJyR7TlpyfScsIC1hcHBsZS1zeXN0ZW0sIEJsaW5rTWFjU3lzdGVtRm9udCwgJ1NlZ29lIFVJJywgJ1JvYm90bycsICdPeHlnZW4nLCAnVWJ1bnR1JywgJ0NhbnRhcmVsbCcsICdGaXJhIFNhbnMnLCAnRHJvaWQgU2FucycsICdIZWx2ZXRpY2EgTmV1ZScsIHNhbnMtc2VyaWZgLE9acj1gJyR7RlpyfScsICdTRiBNb25vJywgJ01vbmFjbycsICdJbmNvbnNvbGF0YScsICdGaXJhIENvZGUnLCAnRmlyYSBNb25vJywgJ0Ryb2lkIFNhbnMgTW9ubycsICdDb3VyaWVyIE5ldycsIG1vbm9zcGFjZWAsSXI9a3IoczZlKSxBZD1rcihPWnIpLFJacj0iQ2FsIFNhbnMiLEJacj1gJyR7UlpyfScsICR7czZlfWAsdXNyPWtyKEJaciksSFpyPSJSb2JvdG8gU2xhYiIscVpyPWAnJHtIWnJ9JywgR2VvcmdpYSwgc2VyaWZgLFVyYT1rcihxWnIpLFdyYT1rcihgCiAgZm9udC1mYW1pbHk6ICR7czZlfTsKICAtd2Via2l0LWZvbnQtc21vb3RoaW5nOiBhbnRpYWxpYXNlZDsKICAtbW96LW9zeC1mb250LXNtb290aGluZzogZ3JheXNjYWxlOwogIGZvbnQtZmVhdHVyZS1zZXR0aW5nczogJ2N2MTEnLCAndG51bScsICdjdjA1JyAxOwpgKX0pO3ZhciBLcCxDMixwc3IsT2k9cCgoKT0+e3hlKCk7ZHNyKCk7UWEoKTtKZSgpO0twPWZ1bmN0aW9uKGUsdCxyLGksYSxuKXtmdW5jdGlvbiBvKHkpe2lmKHkhPT12b2lkIDAmJnR5cGVvZiB5IT0iZnVuY3Rpb24iKXRocm93IG5ldyBUeXBlRXJyb3IoIkZ1bmN0aW9uIGV4cGVjdGVkIik7cmV0dXJuIHl9Zm9yKHZhciBzPWkua2luZCxsPXM9PT0iZ2V0dGVyIj8iZ2V0IjpzPT09InNldHRlciI/InNldCI6InZhbHVlIixjPSF0JiZlP2kuc3RhdGljP2U6ZS5wcm90b3R5cGU6bnVsbCx1PXR8fChjP09iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoYyxpLm5hbWUpOnt9KSxkLGg9ITEsZj1yLmxlbmd0aC0xO2Y+PTA7Zi0tKXt2YXIgeD17fTtmb3IodmFyIHYgaW4gaSl4W3ZdPXY9PT0iYWNjZXNzIj97fTppW3ZdO2Zvcih2YXIgdiBpbiBpLmFjY2Vzcyl4LmFjY2Vzc1t2XT1pLmFjY2Vzc1t2XTt4LmFkZEluaXRpYWxpemVyPWZ1bmN0aW9uKHkpe2lmKGgpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGFkZCBpbml0aWFsaXplcnMgYWZ0ZXIgZGVjb3JhdGlvbiBoYXMgY29tcGxldGVkIik7bi5wdXNoKG8oeXx8bnVsbCkpfTt2YXIgYj0oMCxyW2ZdKShzPT09ImFjY2Vzc29yIj97Z2V0OnUuZ2V0LHNldDp1LnNldH06dVtsXSx4KTtpZihzPT09ImFjY2Vzc29yIil7aWYoYj09PXZvaWQgMCljb250aW51ZTtpZihiPT09bnVsbHx8dHlwZW9mIGIhPSJvYmplY3QiKXRocm93IG5ldyBUeXBlRXJyb3IoIk9iamVjdCBleHBlY3RlZCIpOyhkPW8oYi5nZXQpKSYmKHUuZ2V0PWQpLChkPW8oYi5zZXQpKSYmKHUuc2V0PWQpLChkPW8oYi5pbml0KSkmJmEudW5zaGlmdChkKX1lbHNlKGQ9byhiKSkmJihzPT09ImZpZWxkIj9hLnVuc2hpZnQoZCk6dVtsXT1kKX1jJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoYyxpLm5hbWUsdSksaD0hMH0sQzI9ZnVuY3Rpb24oZSx0LHIpe2Zvcih2YXIgaT1hcmd1bWVudHMubGVuZ3RoPjIsYT0wO2E8dC5sZW5ndGg7YSsrKXI9aT90W2FdLmNhbGwoZSxyKTp0W2FdLmNhbGwoZSk7cmV0dXJuIGk/cjp2b2lkIDB9LHBzcj0oKCk9PntsZXQgZT1beWUoImRlZXMtcGFuZWwiKV0sdCxyPVtdLGksYT16ZSxuLG89W10scz1bXSxsLGM9W10sdT1bXSxkLGg9W10sZj1bXSx4LHY9W10sYj1bXSx5LHc9W10saz1bXTt2YXIgTz1jbGFzcyBleHRlbmRzIGF7c3RhdGlje2k9dGhpc31zdGF0aWN7bGV0IHo9dHlwZW9mIFN5bWJvbD09ImZ1bmN0aW9uIiYmU3ltYm9sLm1ldGFkYXRhP09iamVjdC5jcmVhdGUoYVtTeW1ib2wubWV0YWRhdGFdPz9udWxsKTp2b2lkIDA7bj1baih7dHlwZTpTdHJpbmd9KV0sbD1baih7dHlwZTpTdHJpbmd9KV0sZD1baih7dHlwZTpTdHJpbmd9KV0seD1baih7dHlwZTpTdHJpbmd9KV0seT1baih7YXR0cmlidXRlOiExfSldLEtwKHRoaXMsbnVsbCxuLHtraW5kOiJhY2Nlc3NvciIsbmFtZToidGl0bGUiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOk09PiJ0aXRsZSJpbiBNLGdldDpNPT5NLnRpdGxlLHNldDooTSxGKT0+e00udGl0bGU9Rn19LG1ldGFkYXRhOnp9LG8scyksS3AodGhpcyxudWxsLGwse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJzdWJ0aXRsZSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6TT0+InN1YnRpdGxlImluIE0sZ2V0Ok09Pk0uc3VidGl0bGUsc2V0OihNLEYpPT57TS5zdWJ0aXRsZT1GfX0sbWV0YWRhdGE6en0sYyx1KSxLcCh0aGlzLG51bGwsZCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InZhcmlhbnQiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOk09PiJ2YXJpYW50ImluIE0sZ2V0Ok09Pk0udmFyaWFudCxzZXQ6KE0sRik9PntNLnZhcmlhbnQ9Rn19LG1ldGFkYXRhOnp9LGgsZiksS3AodGhpcyxudWxsLHgse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJzaXplIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpNPT4ic2l6ZSJpbiBNLGdldDpNPT5NLnNpemUsc2V0OihNLEYpPT57TS5zaXplPUZ9fSxtZXRhZGF0YTp6fSx2LGIpLEtwKHRoaXMsbnVsbCx5LHtraW5kOiJhY2Nlc3NvciIsbmFtZToicnVuQWZ0ZXJSZW5kZXIiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOk09PiJydW5BZnRlclJlbmRlciJpbiBNLGdldDpNPT5NLnJ1bkFmdGVyUmVuZGVyLHNldDooTSxGKT0+e00ucnVuQWZ0ZXJSZW5kZXI9Rn19LG1ldGFkYXRhOnp9LHcsayksS3AobnVsbCx0PXt2YWx1ZTppfSxlLHtraW5kOiJjbGFzcyIsbmFtZTppLm5hbWUsbWV0YWRhdGE6en0sbnVsbCxyKSxPPWk9dC52YWx1ZSx6JiZPYmplY3QuZGVmaW5lUHJvcGVydHkoaSxTeW1ib2wubWV0YWRhdGEse2VudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwLHZhbHVlOnp9KX1zdGF0aWMgZGVtbz1jc3I7c3RhdGljIGRlbW9Hcm91cHM9WyJMYXlvdXQiXTsjZT1DMih0aGlzLG8sIiIpO2dldCB0aXRsZSgpe3JldHVybiB0aGlzLiNlfXNldCB0aXRsZSh6KXt0aGlzLiNlPXp9I3Q9KEMyKHRoaXMscyksQzIodGhpcyxjLCIiKSk7Z2V0IHN1YnRpdGxlKCl7cmV0dXJuIHRoaXMuI3R9c2V0IHN1YnRpdGxlKHope3RoaXMuI3Q9en0jcj0oQzIodGhpcyx1KSxDMih0aGlzLGgsImRlZmF1bHQiKSk7Z2V0IHZhcmlhbnQoKXtyZXR1cm4gdGhpcy4jcn1zZXQgdmFyaWFudCh6KXt0aGlzLiNyPXp9I2k9KEMyKHRoaXMsZiksQzIodGhpcyx2LCJtZCIpKTtnZXQgc2l6ZSgpe3JldHVybiB0aGlzLiNpfXNldCBzaXplKHope3RoaXMuI2k9en0jYT0oQzIodGhpcyxiKSxDMih0aGlzLHcsdm9pZCAwKSk7Z2V0IHJ1bkFmdGVyUmVuZGVyKCl7cmV0dXJuIHRoaXMuI2F9c2V0IHJ1bkFmdGVyUmVuZGVyKHope3RoaXMuI2E9en1zdGF0aWMgc3R5bGVzPVtEZSxtLmRlZmF1bHRTdHlsZXMsb2VgCiAgICAgIC8qIFRPRE86IE1pZ3JhdGUgaGFyZGNvZGVkIHZhbHVlcyB0byAtLWRlZXMtKiBDU1MgdmFyaWFibGVzICovCiAgICAgIDpob3N0IHsKICAgICAgICBkaXNwbGF5OiBibG9jazsKICAgICAgICBmb250LWZhbWlseTogJHtJcn07CiAgICAgICAgYmFja2dyb3VuZDogJHttLmJkVGhlbWUoImhzbCgwIDAlIDEwMCUpIiwiaHNsKDAgMCUgMy45JSkiKX07CiAgICAgICAgYm9yZGVyLXJhZGl1czogNnB4OwogICAgICAgIHBhZGRpbmc6IDI0cHg7CiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHttLmJkVGhlbWUoImhzbCgwIDAlIDg5LjglKSIsImhzbCgwIDAlIDE0LjklKSIpfTsKICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC4ycyBjdWJpYy1iZXppZXIoMC40LCAwLCAwLjIsIDEpOwogICAgICB9CgogICAgICAvKiBWYXJpYW50OiBkZWZhdWx0ICovCiAgICAgIDpob3N0KFt2YXJpYW50PSJkZWZhdWx0Il0pIHsKICAgICAgICBib3gtc2hhZG93OiAwIDFweCAycHggMCBoc2woMCAwJSAwJSAvIDAuMDUpOwogICAgICB9CgogICAgICAvKiBWYXJpYW50OiBvdXRsaW5lICovCiAgICAgIDpob3N0KFt2YXJpYW50PSJvdXRsaW5lIl0pIHsKICAgICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDsKICAgICAgICBib3gtc2hhZG93OiBub25lOwogICAgICB9CgogICAgICAvKiBWYXJpYW50OiBnaG9zdCAqLwogICAgICA6aG9zdChbdmFyaWFudD0iZ2hvc3QiXSkgewogICAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50OwogICAgICAgIGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQ7CiAgICAgICAgYm94LXNoYWRvdzogbm9uZTsKICAgICAgICBwYWRkaW5nOiAxNnB4OwogICAgICB9CgogICAgICAvKiBTaXplIHZhcmlhdGlvbnMgKi8KICAgICAgOmhvc3QoW3NpemU9InNtIl0pIHsKICAgICAgICBwYWRkaW5nOiAxNnB4OwogICAgICB9CgogICAgICA6aG9zdChbc2l6ZT0ibGciXSkgewogICAgICAgIHBhZGRpbmc6IDMycHg7CiAgICAgIH0KCiAgICAgIC5oZWFkZXIgewogICAgICAgIG1hcmdpbi1ib3R0b206IDE2cHg7CiAgICAgIH0KCiAgICAgIC5oZWFkZXI6ZW1wdHkgewogICAgICAgIGRpc3BsYXk6IG5vbmU7CiAgICAgIH0KCiAgICAgIC50aXRsZSB7CiAgICAgICAgbWFyZ2luOiAwOwogICAgICAgIGZvbnQtc2l6ZTogMThweDsKICAgICAgICBmb250LXdlaWdodDogNjAwOwogICAgICAgIGNvbG9yOiAke20uYmRUaGVtZSgiaHNsKDAgMCUgOSUpIiwiaHNsKDAgMCUgOTUlKSIpfTsKICAgICAgICBsZXR0ZXItc3BhY2luZzogLTAuMDI1ZW07CiAgICAgICAgbGluZS1oZWlnaHQ6IDEuNTsKICAgICAgfQoKICAgICAgLyogVGl0bGUgc2l6ZSB2YXJpYXRpb25zICovCiAgICAgIDpob3N0KFtzaXplPSJzbSJdKSAudGl0bGUgewogICAgICAgIGZvbnQtc2l6ZTogMTZweDsKICAgICAgfQoKICAgICAgOmhvc3QoW3NpemU9ImxnIl0pIC50aXRsZSB7CiAgICAgICAgZm9udC1zaXplOiAyMHB4OwogICAgICB9CgogICAgICAuc3VidGl0bGUgewogICAgICAgIG1hcmdpbjogNHB4IDAgMCAwOwogICAgICAgIGZvbnQtc2l6ZTogMTRweDsKICAgICAgICBjb2xvcjogJHttLmJkVGhlbWUoImhzbCgyMTUuNCAxNi4zJSA1Ni45JSkiLCJoc2woMjE1IDIwLjIlIDU1LjElKSIpfTsKICAgICAgICBsZXR0ZXItc3BhY2luZzogLTAuMDA2ZW07CiAgICAgICAgbGluZS1oZWlnaHQ6IDEuNTsKICAgICAgfQoKICAgICAgLyogU3VidGl0bGUgc2l6ZSB2YXJpYXRpb25zICovCiAgICAgIDpob3N0KFtzaXplPSJzbSJdKSAuc3VidGl0bGUgewogICAgICAgIGZvbnQtc2l6ZTogMTNweDsKICAgICAgfQoKICAgICAgOmhvc3QoW3NpemU9ImxnIl0pIC5zdWJ0aXRsZSB7CiAgICAgICAgZm9udC1zaXplOiAxNXB4OwogICAgICAgIG1hcmdpbi10b3A6IDZweDsKICAgICAgfQoKICAgICAgLmNvbnRlbnQgewogICAgICAgIGNvbG9yOiAke20uYmRUaGVtZSgiaHNsKDIxNS4zIDI1JSAyNi43JSkiLCJoc2woMjE3LjkgMTAuNiUgODQuOSUpIil9OwogICAgICAgIGZvbnQtc2l6ZTogMTRweDsKICAgICAgICBsaW5lLWhlaWdodDogMS42OwogICAgICB9CgogICAgICAvKiBDb250ZW50IHNpemUgdmFyaWF0aW9ucyAqLwogICAgICA6aG9zdChbc2l6ZT0ic20iXSkgLmNvbnRlbnQgewogICAgICAgIGZvbnQtc2l6ZTogMTNweDsKICAgICAgfQoKICAgICAgOmhvc3QoW3NpemU9ImxnIl0pIC5jb250ZW50IHsKICAgICAgICBmb250LXNpemU6IDE1cHg7CiAgICAgIH0KCiAgICAgIC8qIFJlbW92ZSBtYXJnaW5zIGZyb20gZmlyc3QgYW5kIGxhc3QgY2hpbGRyZW4gKi8KICAgICAgLmNvbnRlbnQgOjpzbG90dGVkKCo6Zmlyc3QtY2hpbGQpIHsKICAgICAgICBtYXJnaW4tdG9wOiAwOwogICAgICB9CgogICAgICAuY29udGVudCA6OnNsb3R0ZWQoKjpsYXN0LWNoaWxkKSB7CiAgICAgICAgbWFyZ2luLWJvdHRvbTogMDsKICAgICAgfQoKICAgICAgLyogSW50ZXJhY3RpdmUgc3RhdGVzIGZvciBkZWZhdWx0IHZhcmlhbnQgKi8KICAgICAgOmhvc3QoW3ZhcmlhbnQ9ImRlZmF1bHQiXTpob3ZlcikgewogICAgICAgIGJvcmRlci1jb2xvcjogJHttLmJkVGhlbWUoImhzbCgwIDAlIDc5LjglKSIsImhzbCgwIDAlIDIwLjklKSIpfTsKICAgICAgICBib3gtc2hhZG93OiAwIDRweCA2cHggLTFweCBoc2woMCAwJSAwJSAvIDAuMSksIDAgMnB4IDRweCAtMnB4IGhzbCgwIDAlIDAlIC8gMC4xKTsKICAgICAgfQoKICAgICAgLyogSW50ZXJhY3RpdmUgc3RhdGVzIGZvciBvdXRsaW5lIHZhcmlhbnQgKi8KICAgICAgOmhvc3QoW3ZhcmlhbnQ9Im91dGxpbmUiXTpob3ZlcikgewogICAgICAgIGJvcmRlci1jb2xvcjogJHttLmJkVGhlbWUoImhzbCgwIDAlIDc5LjglKSIsImhzbCgwIDAlIDIwLjklKSIpfTsKICAgICAgICBiYWNrZ3JvdW5kOiAke20uYmRUaGVtZSgiaHNsKDAgMCUgOTglKSIsImhzbCgwIDAlIDcuOCUpIil9OwogICAgICB9CgogICAgICAvKiBJbnRlcmFjdGl2ZSBzdGF0ZXMgZm9yIGdob3N0IHZhcmlhbnQgKi8KICAgICAgOmhvc3QoW3ZhcmlhbnQ9Imdob3N0Il06aG92ZXIpIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke20uYmRUaGVtZSgiaHNsKDAgMCUgOTUuMSUpIiwiaHNsKDAgMCUgMTQuOSUpIil9OwogICAgICB9CgogICAgICAvKiBGb2N1cyBzdGF0ZXMgKi8KICAgICAgOmhvc3QoOmZvY3VzLXdpdGhpbikgewogICAgICAgIG91dGxpbmU6IG5vbmU7CiAgICAgICAgYm9yZGVyLWNvbG9yOiAke20uYmRUaGVtZSgiaHNsKDIyMi4yIDQ3LjQlIDUxLjIlKSIsImhzbCgyMTcuMiA5MS4yJSA1OS44JSkiKX07CiAgICAgICAgYm94LXNoYWRvdzogMCAwIDAgM3B4ICR7bS5iZFRoZW1lKCJoc2woMjIyLjIgNDcuNCUgNTEuMiUgLyAwLjEpIiwiaHNsKDIxNy4yIDkxLjIlIDU5LjglIC8gMC4xKSIpfTsKICAgICAgfQoKICAgICAgLyogTmVzdGVkIHBhbmVscyBzcGFjaW5nICovCiAgICAgIDo6c2xvdHRlZChkZWVzLXBhbmVsKSB7CiAgICAgICAgbWFyZ2luLXRvcDogMTZweDsKICAgICAgfQoKICAgICAgOjpzbG90dGVkKGRlZXMtcGFuZWw6Zmlyc3QtY2hpbGQpIHsKICAgICAgICBtYXJnaW4tdG9wOiAwOwogICAgICB9CiAgICBgXTtyZW5kZXIoKXtyZXR1cm4gQ2AKICAgICAgPGRpdiBjbGFzcz0iaGVhZGVyIj4KICAgICAgICAke3RoaXMudGl0bGU/Q2A8aDMgY2xhc3M9InRpdGxlIj4ke3RoaXMudGl0bGV9PC9oMz5gOiIifQogICAgICAgICR7dGhpcy5zdWJ0aXRsZT9DYDxwIGNsYXNzPSJzdWJ0aXRsZSI+JHt0aGlzLnN1YnRpdGxlfTwvcD5gOiIifQogICAgICA8L2Rpdj4KICAgICAgPGRpdiBjbGFzcz0iY29udGVudCI+CiAgICAgICAgPHNsb3Q+PC9zbG90PgogICAgICA8L2Rpdj4KICAgIGB9YXN5bmMgZmlyc3RVcGRhdGVkKCl7dGhpcy5ydW5BZnRlclJlbmRlciYmYXdhaXQgdGhpcy5ydW5BZnRlclJlbmRlcih0aGlzKX1jb25zdHJ1Y3Rvcigpe3N1cGVyKC4uLmFyZ3VtZW50cyksQzIodGhpcyxrKX1zdGF0aWN7QzIoaSxyKX19O3JldHVybiBPPWl9KSgpfSk7dmFyIGhzcixsNmUsZnNyLG1zcj1wKCgpPT57eGUoKTtwMSgpO09pKCk7bDZlPWU9PkFycmF5LmZyb20oe2xlbmd0aDplfSwodCxyKT0+KHtpZDpyLHVzYWdlOk1hdGgucm91bmQoTWF0aC5yYW5kb20oKSoxMDApLGxhYmVsOmAke3J9YH0pKSxmc3I9KCk9PkMoaHNyfHwoaHNyPXM1KFtgCiAgPGRlZXMtZGVtb3dyYXBwZXI+CiAgICA8c3R5bGU+CiAgICAgIGAsYAogICAgPC9zdHlsZT4KICAgIAogICAgPGRpdiBjbGFzcz0iZGVtby1jb250YWluZXIiPgogICAgICA8ZGVlcy1wYW5lbCAudGl0bGU9YCwiIC5zdWJ0aXRsZT0iLGA+CiAgICAgICAgPGRlZXMtc3RhdHNncmlkCiAgICAgICAgICAudGlsZXM9YCxgCiAgICAgICAgICAuZ3JpZEFjdGlvbnM9YCxgCiAgICAgICAgICAubWluVGlsZVdpZHRoPWAsYAogICAgICAgICAgLmdhcD1gLGAKICAgICAgICA+PC9kZWVzLXN0YXRzZ3JpZD4KICAgICAgICAKICAgICAgICA8ZGl2IGlkPSJhY3Rpb24tb3V0cHV0IiBzdHlsZT0ibWFyZ2luLXRvcDogMTZweDsgcGFkZGluZzogMTJweDsgYmFja2dyb3VuZDogYCwiOyBib3JkZXItcmFkaXVzOiA2cHg7IGZvbnQtc2l6ZTogMTRweDsgZm9udC1mYW1pbHk6IG1vbm9zcGFjZTsgY29sb3I6ICIsYDsiPgogICAgICAgICAgPGVtPkNsaWNrIG9uIHRpbGUgYWN0aW9ucyBvciBncmlkIGFjdGlvbnMgdG8gc2VlIHRoZSByZXN1bHQuLi48L2VtPgogICAgICAgIDwvZGl2PgogICAgICA8L2RlZXMtcGFuZWw+CiAgICAgIAogICAgICA8ZGVlcy1wYW5lbCAudGl0bGU9YCwiIC5zdWJ0aXRsZT0iLGA+CiAgICAgICAgPGRlZXMtc3RhdHNncmlkCiAgICAgICAgICAudGlsZXM9YCxgCiAgICAgICAgICAubWluVGlsZVdpZHRoPWAsYAogICAgICAgICAgLmdhcD1gLGAKICAgICAgICA+PC9kZWVzLXN0YXRzZ3JpZD4KICAgICAgICAKICAgICAgICA8ZGl2IGNsYXNzPSJ0aWxlLWNvbmZpZyI+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJjb25maWctc2VjdGlvbiI+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNvbmZpZy10aXRsZSI+Q29uZmlndXJhdGlvbiBPcHRpb25zPC9kaXY+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNvbmZpZy1kZXNjcmlwdGlvbiI+CiAgICAgICAgICAgICAgRWFjaCB0aWxlIHR5cGUgc3VwcG9ydHMgZGlmZmVyZW50IHByb3BlcnRpZXM6CiAgICAgICAgICAgICAgPHVsIHN0eWxlPSJtYXJnaW46IDhweCAwOyBwYWRkaW5nLWxlZnQ6IDIwcHg7Ij4KICAgICAgICAgICAgICAgIDxsaT48c3Ryb25nPk51bWJlcjo8L3N0cm9uZz4gdmFsdWUsIHVuaXQsIGNvbG9yLCBkZXNjcmlwdGlvbjwvbGk+CiAgICAgICAgICAgICAgICA8bGk+PHN0cm9uZz5HYXVnZTo8L3N0cm9uZz4gdmFsdWUsIHVuaXQsIGdhdWdlT3B0aW9ucyAobWluLCBtYXgsIHRocmVzaG9sZHMpPC9saT4KICAgICAgICAgICAgICAgIDxsaT48c3Ryb25nPlBlcmNlbnRhZ2U6PC9zdHJvbmc+IHZhbHVlICgwLTEwMCksIGNvbG9yLCBkZXNjcmlwdGlvbjwvbGk+CiAgICAgICAgICAgICAgICA8bGk+PHN0cm9uZz5UcmVuZDo8L3N0cm9uZz4gdmFsdWUsIHVuaXQsIHRyZW5kRGF0YSBhcnJheSwgZGVzY3JpcHRpb248L2xpPgogICAgICAgICAgICAgICAgPGxpPjxzdHJvbmc+VGV4dDo8L3N0cm9uZz4gdmFsdWUgKHN0cmluZyksIGNvbG9yLCBkZXNjcmlwdGlvbjwvbGk+CiAgICAgICAgICAgICAgPC91bD4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICA8L2Rpdj4KICAgICAgPC9kZWVzLXBhbmVsPgogICAgICAKICAgICAgPGRlZXMtcGFuZWwgLnRpdGxlPWAsIiAuc3VidGl0bGU9IixgPgogICAgICAgIDxoNCBzdHlsZT0ibWFyZ2luOiAwIDAgMTZweCAwOyBmb250LXNpemU6IDE2cHg7IGZvbnQtd2VpZ2h0OiA2MDA7Ij5Db21wYWN0IExheW91dCAoMTgwcHggdGlsZXMpPC9oND4KICAgICAgICA8ZGVlcy1zdGF0c2dyaWQKICAgICAgICAgIC50aWxlcz1gLGAKICAgICAgICAgIC5taW5UaWxlV2lkdGg9YCxgCiAgICAgICAgICAuZ2FwPWAsYAogICAgICAgID48L2RlZXMtc3RhdHNncmlkPgogICAgICAgIAogICAgICAgIDxoNCBzdHlsZT0ibWFyZ2luOiAyNHB4IDAgMTZweCAwOyBmb250LXNpemU6IDE2cHg7IGZvbnQtd2VpZ2h0OiA2MDA7Ij5TcGFjaW91cyBMYXlvdXQgKDMyMHB4IHRpbGVzKTwvaDQ+CiAgICAgICAgPGRlZXMtc3RhdHNncmlkCiAgICAgICAgICAudGlsZXM9YCxgCiAgICAgICAgICAubWluVGlsZVdpZHRoPWAsYAogICAgICAgICAgLmdhcD1gLGAKICAgICAgICA+PC9kZWVzLXN0YXRzZ3JpZD4KICAgICAgPC9kZWVzLXBhbmVsPgogICAgICAKICAgICAgPGRlZXMtcGFuZWwgLnRpdGxlPWAsIiAuc3VidGl0bGU9IixgPgogICAgICAgIDxkZWVzLXN0YXRzZ3JpZAogICAgICAgICAgaWQ9ImNwdS1jb3Jlcy1ncmlkIgogICAgICAgICAgLnRpbGVzPWAsYAogICAgICAgICAgLmdyaWRBY3Rpb25zPWAsYAogICAgICAgICAgLm1pblRpbGVXaWR0aD1gLGAKICAgICAgICAgIC5nYXA9YCxgCiAgICAgICAgPjwvZGVlcy1zdGF0c2dyaWQ+CiAgICAgIDwvZGVlcy1wYW5lbD4KCiAgICAgIDxkZWVzLXBhbmVsIC50aXRsZT1gLCIgLnN1YnRpdGxlPSIsYD4KICAgICAgICA8ZGVlcy1zdGF0c2dyaWQKICAgICAgICAgIGlkPSJpbnRlcmFjdGl2ZS1ncmlkIgogICAgICAgICAgLnRpbGVzPWAsYAogICAgICAgICAgLmdyaWRBY3Rpb25zPWAsYAogICAgICAgICAgLm1pblRpbGVXaWR0aD1gLGAKICAgICAgICAgIC5nYXA9YCxgCiAgICAgICAgPjwvZGVlcy1zdGF0c2dyaWQ+CiAgICAgIDwvZGVlcy1wYW5lbD4KICAgICAgCiAgICAgIDxkZWVzLXBhbmVsIC50aXRsZT1gLCIgLnN1YnRpdGxlPSIsYD4KICAgICAgICA8ZGl2IGNsYXNzPSJjb2RlLWJsb2NrIj5gLGA8L2Rpdj4KICAgICAgPC9kZWVzLXBhbmVsPgoKICAgICAgPGRlZXMtcGFuZWwgLnRpdGxlPWAsIiAuc3VidGl0bGU9IixgPgogICAgICAgIDxkZWVzLXN0YXRzZ3JpZAogICAgICAgICAgLnRpbGVzPWAsYAogICAgICAgICAgLm1pblRpbGVXaWR0aD1gLGAKICAgICAgICAgIC5nYXA9YCxgCiAgICAgICAgPjwvZGVlcy1zdGF0c2dyaWQ+CgogICAgICAgIDxkaXYgY2xhc3M9InRpbGUtY29uZmlnIj4KICAgICAgICAgIDxkaXYgY2xhc3M9ImNvbmZpZy1zZWN0aW9uIj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0iY29uZmlnLXRpdGxlIj5QYXJ0aXRpb24gVGlsZSBQcm9wZXJ0aWVzPC9kaXY+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNvbmZpZy1kZXNjcmlwdGlvbiI+CiAgICAgICAgICAgICAgPHVsIHN0eWxlPSJtYXJnaW46IDhweCAwOyBwYWRkaW5nLWxlZnQ6IDIwcHg7Ij4KICAgICAgICAgICAgICAgIDxsaT48c3Ryb25nPnBhcnRpdGlvbkRhdGEudXNlZDo8L3N0cm9uZz4gVXNlZCBzcGFjZSBpbiBieXRlcyAoYXV0by1mb3JtYXR0ZWQpPC9saT4KICAgICAgICAgICAgICAgIDxsaT48c3Ryb25nPnBhcnRpdGlvbkRhdGEudG90YWw6PC9zdHJvbmc+IFRvdGFsIGNhcGFjaXR5IGluIGJ5dGVzPC9saT4KICAgICAgICAgICAgICAgIDxsaT48c3Ryb25nPnBhcnRpdGlvbkRhdGEuZmlsZXN5c3RlbTo8L3N0cm9uZz4gRmlsZXN5c3RlbSB0eXBlIChleHQ0LCB4ZnMsIG50ZnMpPC9saT4KICAgICAgICAgICAgICAgIDxsaT48c3Ryb25nPnBhcnRpdGlvbkRhdGEubW91bnRQb2ludDo8L3N0cm9uZz4gTW91bnQgcG9pbnQgcGF0aCAob3B0aW9uYWwpPC9saT4KICAgICAgICAgICAgICA8L3VsPgogICAgICAgICAgICAgIENvbG9yIHRocmVzaG9sZHM6IE5vcm1hbCAoJmx0Ozc1JSksIFdhcm5pbmcgKDc1LTkwJSksIENyaXRpY2FsICgmZ3Q7OTAlKQogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIDwvZGl2PgogICAgICAgICAgPGRpdiBjbGFzcz0iY29uZmlnLXNlY3Rpb24iPgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJjb25maWctdGl0bGUiPkRpc2sgVGlsZSBQcm9wZXJ0aWVzPC9kaXY+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNvbmZpZy1kZXNjcmlwdGlvbiI+CiAgICAgICAgICAgICAgPHVsIHN0eWxlPSJtYXJnaW46IDhweCAwOyBwYWRkaW5nLWxlZnQ6IDIwcHg7Ij4KICAgICAgICAgICAgICAgIDxsaT48c3Ryb25nPmRpc2tEYXRhLmNhcGFjaXR5Ojwvc3Ryb25nPiBUb3RhbCBjYXBhY2l0eSBpbiBieXRlczwvbGk+CiAgICAgICAgICAgICAgICA8bGk+PHN0cm9uZz5kaXNrRGF0YS5tb2RlbDo8L3N0cm9uZz4gRGlzayBtb2RlbCBuYW1lIChvcHRpb25hbCk8L2xpPgogICAgICAgICAgICAgICAgPGxpPjxzdHJvbmc+ZGlza0RhdGEudHlwZTo8L3N0cm9uZz4gRGlzayB0eXBlOiAnc3NkJywgJ2hkZCcsIG9yICdudm1lJzwvbGk+CiAgICAgICAgICAgICAgICA8bGk+PHN0cm9uZz5kaXNrRGF0YS5pb3BzOjwvc3Ryb25nPiBSZWFkL3dyaXRlIElPUFMgKG9wdGlvbmFsKTwvbGk+CiAgICAgICAgICAgICAgICA8bGk+PHN0cm9uZz5kaXNrRGF0YS5oZWFsdGg6PC9zdHJvbmc+IEhlYWx0aCBwZXJjZW50YWdlIDAtMTAwIChvcHRpb25hbCk8L2xpPgogICAgICAgICAgICAgIDwvdWw+CiAgICAgICAgICAgICAgSGVhbHRoIHRocmVzaG9sZHM6IEdvb2QgKDcwLTEwMCUpLCBXYXJuaW5nICgzMC03MCUpLCBDcml0aWNhbCAoJmx0OzMwJSkKICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICA8L2Rpdj4KICAgICAgPC9kZWVzLXBhbmVsPgogICAgPC9kaXY+CgogICAgPHNjcmlwdD4KICAgICAgLy8gQ2xlYW51cCBsaXZlIHVwZGF0ZXMgb24gcGFnZSB1bmxvYWQKICAgICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ2JlZm9yZXVubG9hZCcsICgpID0+IHsKICAgICAgICBpZiAoKHdpbmRvdyBhcyBhbnkpLmxpdmVVcGRhdGVJbnRlcnZhbCkgewogICAgICAgICAgY2xlYXJJbnRlcnZhbCgod2luZG93IGFzIGFueSkubGl2ZVVwZGF0ZUludGVydmFsKTsKICAgICAgICB9CiAgICAgIH0pOwogICAgPFwvc2NyaXB0PgogIDwvZGVlcy1kZW1vd3JhcHBlcj4KICBgXSkpLG9lYAogICAgICAgIC5kZW1vLWNvbnRhaW5lciB7CiAgICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgICAgIGdhcDogMjRweDsKICAgICAgICAgIHBhZGRpbmc6IDI0cHg7CiAgICAgICAgICBtYXgtd2lkdGg6IDE0MDBweDsKICAgICAgICAgIG1hcmdpbjogMCBhdXRvOwogICAgICAgIH0KICAgICAgICAKICAgICAgICBkZWVzLXBhbmVsIHsKICAgICAgICAgIG1hcmdpbi1ib3R0b206IDI0cHg7CiAgICAgICAgfQogICAgICAgIAogICAgICAgIGRlZXMtcGFuZWw6bGFzdC1jaGlsZCB7CiAgICAgICAgICBtYXJnaW4tYm90dG9tOiAwOwogICAgICAgIH0KICAgICAgICAKICAgICAgICAudGlsZS1jb25maWcgewogICAgICAgICAgZGlzcGxheTogZ3JpZDsKICAgICAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KGF1dG8tZml0LCBtaW5tYXgoMzAwcHgsIDFmcikpOwogICAgICAgICAgZ2FwOiAxNnB4OwogICAgICAgICAgbWFyZ2luLXRvcDogMTZweDsKICAgICAgICB9CiAgICAgICAgCiAgICAgICAgLmNvbmZpZy1zZWN0aW9uIHsKICAgICAgICAgIHBhZGRpbmc6IDE2cHg7CiAgICAgICAgICBiYWNrZ3JvdW5kOiAke20uYmRUaGVtZSgiaHNsKDIxMCA0MCUgOTYuMSUpIiwiaHNsKDIxNSAyMC4yJSAxNi44JSkiKX07CiAgICAgICAgICBib3JkZXItcmFkaXVzOiA2cHg7CiAgICAgICAgfQogICAgICAgIAogICAgICAgIC5jb25maWctdGl0bGUgewogICAgICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDsKICAgICAgICAgIG1hcmdpbi1ib3R0b206IDhweDsKICAgICAgICAgIGNvbG9yOiAke20uYmRUaGVtZSgiaHNsKDIxNS4zIDI1JSA4LjglKSIsImhzbCgyMTAgNDAlIDk4JSkiKX07CiAgICAgICAgfQogICAgICAgIAogICAgICAgIC5jb25maWctZGVzY3JpcHRpb24gewogICAgICAgICAgZm9udC1zaXplOiAxM3B4OwogICAgICAgICAgY29sb3I6ICR7bS5iZFRoZW1lKCJoc2woMjE1LjQgMTYuMyUgNTYuOSUpIiwiaHNsKDIxNSAyMC4yJSA1NS4xJSkiKX07CiAgICAgICAgfQogICAgICAgIAogICAgICAgIC5jb2RlLWJsb2NrIHsKICAgICAgICAgIGJhY2tncm91bmQ6ICR7bS5iZFRoZW1lKCJoc2woMjEwIDQwJSA5Ni4xJSkiLCJoc2woMjE1IDIwLjIlIDExLjglKSIpfTsKICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICR7bS5iZFRoZW1lKCJoc2woMjE0LjMgMzEuOCUgOTEuNCUpIiwiaHNsKDIxNSAyMC4yJSAxNi44JSkiKX07CiAgICAgICAgICBib3JkZXItcmFkaXVzOiA2cHg7CiAgICAgICAgICBwYWRkaW5nOiAxNnB4OwogICAgICAgICAgZm9udC1mYW1pbHk6IG1vbm9zcGFjZTsKICAgICAgICAgIGZvbnQtc2l6ZTogMTNweDsKICAgICAgICAgIG92ZXJmbG93LXg6IGF1dG87CiAgICAgICAgICB3aGl0ZS1zcGFjZTogcHJlOwogICAgICAgIH0KICAgICAgYCwiMS4gQ29tcHJlaGVuc2l2ZSBEYXNoYm9hcmQiLCJGdWxsLWZlYXR1cmVkIHN0YXRzIGdyaWQgd2l0aCB2YXJpb3VzIHRpbGUgdHlwZXMsIGFjdGlvbnMsIGFuZCBMdWNpZGUgaWNvbnMiLFt7aWQ6InJldmVudWUiLHRpdGxlOiJUb3RhbCBSZXZlbnVlIix2YWx1ZToxMjU0MjAsdW5pdDoiJCIsdHlwZToibnVtYmVyIixpY29uOiJsdWNpZGU6ZG9sbGFyLXNpZ24iLGRlc2NyaXB0aW9uOiIrMTIuNSUgZnJvbSBsYXN0IG1vbnRoIixhY3Rpb25zOlt7bmFtZToiVmlldyBEZXRhaWxzIixpY29uTmFtZToibHVjaWRlOnRyZW5kaW5nLXVwIixhY3Rpb246YXN5bmMoKT0+e2xldCBlPWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoIiNhY3Rpb24tb3V0cHV0Iik7ZSYmKGUudGV4dENvbnRlbnQ9IlZpZXdpbmcgcmV2ZW51ZSBkZXRhaWxzOiAkMTI1LDQyMCAoKzEyLjUlKSIpfX0se25hbWU6IkV4cG9ydCBEYXRhIixpY29uTmFtZToibHVjaWRlOmRvd25sb2FkIixhY3Rpb246YXN5bmMoKT0+e2xldCBlPWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoIiNhY3Rpb24tb3V0cHV0Iik7ZSYmKGUudGV4dENvbnRlbnQ9IkV4cG9ydGluZyByZXZlbnVlIGRhdGEgdG8gQ1NWLi4uIil9fV19LHtpZDoidXNlcnMiLHRpdGxlOiJBY3RpdmUgVXNlcnMiLHZhbHVlOjM4NDcsdHlwZToibnVtYmVyIixpY29uOiJsdWNpZGU6dXNlcnMiLGRlc2NyaXB0aW9uOiIzMjQgbmV3IHRoaXMgd2VlayIsYWN0aW9uczpbe25hbWU6IlZpZXcgVXNlciBMaXN0IixpY29uTmFtZToibHVjaWRlOmxpc3QiLGFjdGlvbjphc3luYygpPT57bGV0IGU9ZG9jdW1lbnQucXVlcnlTZWxlY3RvcigiI2FjdGlvbi1vdXRwdXQiKTtlJiYoZS50ZXh0Q29udGVudD0iT3BlbmluZyB1c2VyIGxpc3QuLi4iKX19XX0se2lkOiJjcHUiLHRpdGxlOiJDUFUgVXNhZ2UiLHZhbHVlOjczLHVuaXQ6IiUiLHR5cGU6ImdhdWdlIixpY29uOiJsdWNpZGU6Y3B1IixnYXVnZU9wdGlvbnM6e21pbjowLG1heDoxMDAsdGhyZXNob2xkczpbe3ZhbHVlOjAsY29sb3I6ImhzbCgxNDIuMSA3Ni4yJSAzNi4zJSkifSx7dmFsdWU6NjAsY29sb3I6ImhzbCg0NS40IDkzLjQlIDQ3LjUlKSJ9LHt2YWx1ZTo4MCxjb2xvcjoiaHNsKDAgODQuMiUgNjAuMiUpIn1dfX0se2lkOiJzdG9yYWdlIix0aXRsZToiU3RvcmFnZSBVc2VkIix2YWx1ZTo2NSx0eXBlOiJwZXJjZW50YWdlIixpY29uOiJsdWNpZGU6aGFyZC1kcml2ZSIsZGVzY3JpcHRpb246IjY1MCBHQiBvZiAxIFRCIn0se2lkOiJsYXRlbmN5Iix0aXRsZToiUmVzcG9uc2UgVGltZSIsdmFsdWU6MTQyLHVuaXQ6Im1zIix0eXBlOiJ0cmVuZCIsaWNvbjoibHVjaWRlOmFjdGl2aXR5Iix0cmVuZERhdGE6WzE1MCwxNDUsMTQ4LDE0MiwxMzgsMTQwLDEzNSwxNDUsMTQyXSxkZXNjcmlwdGlvbjoiUDk1In0se2lkOiJ1cHRpbWUiLHRpdGxlOiJTeXN0ZW0gVXB0aW1lIix2YWx1ZToiOTkuOTUlIix0eXBlOiJ0ZXh0IixpY29uOiJsdWNpZGU6Y2hlY2stY2lyY2xlIixjb2xvcjoiaHNsKDE0Mi4xIDc2LjIlIDM2LjMlKSIsZGVzY3JpcHRpb246Ikxhc3QgMzAgZGF5cyJ9XSxbe25hbWU6IlJlZnJlc2giLGljb25OYW1lOiJsdWNpZGU6cmVmcmVzaC1jdyIsYWN0aW9uOmFzeW5jKCk9PntsZXQgZT1kb2N1bWVudC5xdWVyeVNlbGVjdG9yKCJkZWVzLXN0YXRzZ3JpZCIpO2UmJihlLnN0eWxlLm9wYWNpdHk9IjAuNSIsc2V0VGltZW91dCgoKT0+e2Uuc3R5bGUub3BhY2l0eT0iMSJ9LDMwMCkpfX0se25hbWU6IkV4cG9ydCIsaWNvbk5hbWU6Imx1Y2lkZTpzaGFyZSIsYWN0aW9uOmFzeW5jKCk9PntsZXQgZT1kb2N1bWVudC5xdWVyeVNlbGVjdG9yKCIjYWN0aW9uLW91dHB1dCIpO2UmJihlLnRleHRDb250ZW50PSJFeHBvcnRpbmcgZGFzaGJvYXJkIHJlcG9ydC4uLiIpfX0se25hbWU6IlNldHRpbmdzIixpY29uTmFtZToibHVjaWRlOnNldHRpbmdzIixhY3Rpb246YXN5bmMoKT0+e2xldCBlPWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoIiNhY3Rpb24tb3V0cHV0Iik7ZSYmKGUudGV4dENvbnRlbnQ9Ik9wZW5pbmcgZGFzaGJvYXJkIHNldHRpbmdzLi4uIil9fV0sMjUwLDE2LG0uYmRUaGVtZSgiaHNsKDIxMCA0MCUgOTYuMSUpIiwiaHNsKDIxNSAyMC4yJSAxNi44JSkiKSxtLmJkVGhlbWUoImhzbCgyMTUuMyAyNSUgOC44JSkiLCJoc2woMjEwIDQwJSA5OCUpIiksIjIuIFRpbGUgVHlwZXMiLCJEaWZmZXJlbnQgdmlzdWFsaXphdGlvbiB0eXBlcyBhdmFpbGFibGUgaW4gdGhlIHN0YXRzIGdyaWQiLFt7aWQ6Im51bWJlci1leGFtcGxlIix0aXRsZToiTnVtYmVyIFRpbGUiLHZhbHVlOjQyMTk1LHVuaXQ6IiQiLHR5cGU6Im51bWJlciIsaWNvbjoibHVjaWRlOmhhc2giLGRlc2NyaXB0aW9uOiJTaW1wbGUgbnVtZXJpYyBkaXNwbGF5In0se2lkOiJnYXVnZS1leGFtcGxlIix0aXRsZToiR2F1Z2UgVGlsZSIsdmFsdWU6NjgsdW5pdDoiJSIsdHlwZToiZ2F1Z2UiLGljb246Imx1Y2lkZTpnYXVnZSIsZ2F1Z2VPcHRpb25zOnttaW46MCxtYXg6MTAwLHRocmVzaG9sZHM6W3t2YWx1ZTowLGNvbG9yOiJoc2woMTQyLjEgNzYuMiUgMzYuMyUpIn0se3ZhbHVlOjUwLGNvbG9yOiJoc2woNDUuNCA5My40JSA0Ny41JSkifSx7dmFsdWU6ODAsY29sb3I6ImhzbCgwIDg0LjIlIDYwLjIlKSJ9XX19LHtpZDoicGVyY2VudGFnZS1leGFtcGxlIix0aXRsZToiUGVyY2VudGFnZSBUaWxlIix2YWx1ZTo3OCx0eXBlOiJwZXJjZW50YWdlIixpY29uOiJsdWNpZGU6cGVyY2VudCIsZGVzY3JpcHRpb246IlByb2dyZXNzIGJhciB2aXN1YWxpemF0aW9uIn0se2lkOiJ0cmVuZC1leGFtcGxlIix0aXRsZToiVHJlbmQgVGlsZSIsdmFsdWU6ODkyLHVuaXQ6Im9wcy9zIix0eXBlOiJ0cmVuZCIsaWNvbjoibHVjaWRlOnRyZW5kaW5nLXVwIix0cmVuZERhdGE6WzcyMCw3NTAsNzgwLDc5NSw4MTAsODM1LDg1MCw4NjUsODgwLDg5Ml0sZGVzY3JpcHRpb246ImF2ZyJ9LHtpZDoidGV4dC1leGFtcGxlIix0aXRsZToiVGV4dCBUaWxlIix2YWx1ZToiT3BlcmF0aW9uYWwiLHR5cGU6InRleHQiLGljb246Imx1Y2lkZTppbmZvIixjb2xvcjoiaHNsKDE0Mi4xIDc2LjIlIDM2LjMlKSIsZGVzY3JpcHRpb246IlN0YXR1cyBkaXNwbGF5In1dLDI4MCwxNiwiMy4gR3JpZCBDb25maWd1cmF0aW9ucyIsIkRpZmZlcmVudCBsYXlvdXQgb3B0aW9ucyBhbmQgcmVzcG9uc2l2ZSBiZWhhdmlvciIsW3tpZDoiMSIsdGl0bGU6Ik9yZGVycyIsdmFsdWU6MTU2LHR5cGU6Im51bWJlciIsaWNvbjoibHVjaWRlOnNob3BwaW5nLWNhcnQifSx7aWQ6IjIiLHRpdGxlOiJSZXZlbnVlIix2YWx1ZTo4NDIwLHVuaXQ6IiQiLHR5cGU6Im51bWJlciIsaWNvbjoibHVjaWRlOmRvbGxhci1zaWduIn0se2lkOiIzIix0aXRsZToiVXNlcnMiLHZhbHVlOjQyMyx0eXBlOiJudW1iZXIiLGljb246Imx1Y2lkZTp1c2VycyJ9LHtpZDoiNCIsdGl0bGU6Ikdyb3d0aCIsdmFsdWU6MTIuNSx1bml0OiIlIix0eXBlOiJudW1iZXIiLGljb246Imx1Y2lkZTp0cmVuZGluZy11cCIsY29sb3I6ImhzbCgxNDIuMSA3Ni4yJSAzNi4zJSkifV0sMTgwLDEyLFt7aWQ6InNwYWNpb3VzMSIsdGl0bGU6Ik1vbnRobHkgUmV2ZW51ZSIsdmFsdWU6MTg0NTAwLHVuaXQ6IiQiLHR5cGU6Im51bWJlciIsaWNvbjoibHVjaWRlOmNyZWRpdC1jYXJkIixkZXNjcmlwdGlvbjoiVG90YWwgcmV2ZW51ZSB0aGlzIG1vbnRoIn0se2lkOiJzcGFjaW91czIiLHRpdGxlOiJDdXN0b21lciBTYXRpc2ZhY3Rpb24iLHZhbHVlOjk0LHR5cGU6InBlcmNlbnRhZ2UiLGljb246Imx1Y2lkZTpzbWlsZSIsZGVzY3JpcHRpb246IkJhc2VkIG9uIDEsMjM0IHJldmlld3MifSx7aWQ6InNwYWNpb3VzMyIsdGl0bGU6IlNlcnZlciBSZXNwb25zZSIsdmFsdWU6OTgsdW5pdDoibXMiLHR5cGU6InRyZW5kIixpY29uOiJsdWNpZGU6c2VydmVyIix0cmVuZERhdGE6WzEwNSwxMDIsMTAwLDk5LDk4LDk4LDk3LDk4XSxkZXNjcmlwdGlvbjoiYXZnIHJlc3BvbnNlIHRpbWUifV0sMzIwLDIwLCI0LiBDUFUgQ29yZXMgVmlzdWFsaXphdGlvbiIsIlZlcnRpY2FsIGJhciB2aXN1YWxpemF0aW9uIGZvciBtdWx0aS1jb3JlIENQVSB1c2FnZSB3aXRoIGNvbHVtbiBzcGFubmluZyIsW3tpZDoiY3B1LWNvcmVzLTgiLHRpdGxlOiJDUFUgQ29yZXMgKDgtY29yZSkiLHZhbHVlOjAsdHlwZToiY3B1Q29yZXMiLGljb246Imx1Y2lkZTpjcHUiLGNvbHVtblNwYW46Mixjb3Jlc0RhdGE6bDZlKDgpLGRlc2NyaXB0aW9uOiJJbnRlbCBpNyAtIDggY29yZXMifSx7aWQ6Im1lbW9yeSIsdGl0bGU6Ik1lbW9yeSBVc2FnZSIsdmFsdWU6NjgsdHlwZToicGVyY2VudGFnZSIsaWNvbjoibHVjaWRlOmRhdGFiYXNlIixkZXNjcmlwdGlvbjoiMTMuNiBHQiBvZiAyMCBHQiJ9LHtpZDoiY3B1LWNvcmVzLTE2Iix0aXRsZToiQ1BVIENvcmVzICgxNi1jb3JlKSIsdmFsdWU6MCx0eXBlOiJjcHVDb3JlcyIsaWNvbjoibHVjaWRlOmNwdSIsY29sdW1uU3BhbjoyLGNvcmVzRGF0YTpsNmUoMTYpLGRlc2NyaXB0aW9uOiJBTUQgUnl6ZW4gOSAtIDE2IGNvcmVzIn0se2lkOiJuZXR3b3JrIix0aXRsZToiTmV0d29yayBJL08iLHZhbHVlOjI0NSx1bml0OiJNQi9zIix0eXBlOiJ0cmVuZCIsaWNvbjoibHVjaWRlOm5ldHdvcmsiLHRyZW5kRGF0YTpbMjAwLDIyMCwyMzUsMjQwLDIzOCwyNDVdLGRlc2NyaXB0aW9uOiJ0aHJvdWdocHV0In0se2lkOiJjcHUtY29yZXMtMzIiLHRpdGxlOiJTZXJ2ZXIgQ1BVICgzMi1jb3JlKSIsdmFsdWU6MCx0eXBlOiJjcHVDb3JlcyIsaWNvbjoibHVjaWRlOnNlcnZlciIsY29sdW1uU3BhbjozLGNvcmVzRGF0YTpsNmUoMzIpLGRlc2NyaXB0aW9uOiJBTUQgRVBZQyAtIDMyIGNvcmVzIn0se2lkOiJkaXNrIix0aXRsZToiRGlzayBVc2FnZSIsdmFsdWU6NDIsdHlwZToicGVyY2VudGFnZSIsaWNvbjoibHVjaWRlOmhhcmQtZHJpdmUiLGRlc2NyaXB0aW9uOiI0MjAgR0Igb2YgMSBUQiJ9XSxbe25hbWU6IlJhbmRvbWl6ZSIsaWNvbk5hbWU6Imx1Y2lkZTpzaHVmZmxlIixhY3Rpb246YXN5bmMoKT0+e2xldCBlPWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoIiNjcHUtY29yZXMtZ3JpZCIpO2lmKCFlKXJldHVybjtsZXQgdD1lLnRpbGVzLm1hcChyPT5yLnR5cGU9PT0iY3B1Q29yZXMiJiZyLmNvcmVzRGF0YT97Li4ucixjb3Jlc0RhdGE6ci5jb3Jlc0RhdGEubWFwKGk9Pih7Li4uaSx1c2FnZTpNYXRoLnJvdW5kKE1hdGgucmFuZG9tKCkqMTAwKX0pKX06cik7ZS50aWxlcz10fX1dLDI1MCwxNiwiNS4gSW50ZXJhY3RpdmUgRmVhdHVyZXMiLCJUaWxlcyB3aXRoIGFjdGlvbnMgYW5kIHJlYWwtdGltZSB1cGRhdGVzIixbe2lkOiJsaXZlLWNwdSIsdGl0bGU6IkxpdmUgQ1BVIix2YWx1ZTo0NSx1bml0OiIlIix0eXBlOiJnYXVnZSIsaWNvbjoibHVjaWRlOmNwdSIsZ2F1Z2VPcHRpb25zOnttaW46MCxtYXg6MTAwLHRocmVzaG9sZHM6W3t2YWx1ZTowLGNvbG9yOiJoc2woMTQyLjEgNzYuMiUgMzYuMyUpIn0se3ZhbHVlOjYwLGNvbG9yOiJoc2woNDUuNCA5My40JSA0Ny41JSkifSx7dmFsdWU6ODAsY29sb3I6ImhzbCgwIDg0LjIlIDYwLjIlKSJ9XX19LHtpZDoibGl2ZS1yZXF1ZXN0cyIsdGl0bGU6IlJlcXVlc3RzL3NlYyIsdmFsdWU6ODkyLHR5cGU6InRyZW5kIixpY29uOiJsdWNpZGU6YWN0aXZpdHkiLHRyZW5kRGF0YTpbODUwLDg2MCw4NzAsODgwLDg4NSw4OTAsODkyXX0se2lkOiJsaXZlLW1lbW9yeSIsdGl0bGU6Ik1lbW9yeSBVc2FnZSIsdmFsdWU6NjIsdHlwZToicGVyY2VudGFnZSIsaWNvbjoibHVjaWRlOmRhdGFiYXNlIn0se2lkOiJjb3VudGVyIix0aXRsZToiRXZlbnQgQ291bnRlciIsdmFsdWU6MCx0eXBlOiJudW1iZXIiLGljb246Imx1Y2lkZTp6YXAiLGFjdGlvbnM6W3tuYW1lOiJJbmNyZW1lbnQiLGljb25OYW1lOiJsdWNpZGU6cGx1cyIsYWN0aW9uOmFzeW5jKCk9PntsZXQgZT1kb2N1bWVudC5xdWVyeVNlbGVjdG9yKCIjaW50ZXJhY3RpdmUtZ3JpZCIpO2lmKCFlKXJldHVybjtsZXQgdD1lLnRpbGVzLmZpbmQocj0+ci5pZD09PSJjb3VudGVyIik7dC52YWx1ZT10eXBlb2YgdC52YWx1ZT09Im51bWJlciI/dC52YWx1ZSsxOjEsZS50aWxlcz1bLi4uZS50aWxlc119fSx7bmFtZToiUmVzZXQiLGljb25OYW1lOiJsdWNpZGU6cm90YXRlLWNjdyIsYWN0aW9uOmFzeW5jKCk9PntsZXQgZT1kb2N1bWVudC5xdWVyeVNlbGVjdG9yKCIjaW50ZXJhY3RpdmUtZ3JpZCIpO2lmKCFlKXJldHVybjtsZXQgdD1lLnRpbGVzLmZpbmQocj0+ci5pZD09PSJjb3VudGVyIik7dC52YWx1ZT0wLGUudGlsZXM9Wy4uLmUudGlsZXNdfX1dfV0sW3tuYW1lOiJTdGFydCBMaXZlIFVwZGF0ZXMiLGljb25OYW1lOiJsdWNpZGU6cGxheSIsYWN0aW9uOmFzeW5jIGZ1bmN0aW9uKCl7d2luZG93LmxpdmVVcGRhdGVJbnRlcnZhbD8oY2xlYXJJbnRlcnZhbCh3aW5kb3cubGl2ZVVwZGF0ZUludGVydmFsKSx3aW5kb3cubGl2ZVVwZGF0ZUludGVydmFsPW51bGwsdGhpcy5uYW1lPSJTdGFydCBMaXZlIFVwZGF0ZXMiLHRoaXMuaWNvbk5hbWU9Imx1Y2lkZTpwbGF5Iik6KHdpbmRvdy5saXZlVXBkYXRlSW50ZXJ2YWw9c2V0SW50ZXJ2YWwoKCk9PntsZXQgZT1kb2N1bWVudC5xdWVyeVNlbGVjdG9yKCIjaW50ZXJhY3RpdmUtZ3JpZCIpO2lmKGUpe2xldCB0PVsuLi5lLnRpbGVzXSxyPXQuZmluZChvPT5vLmlkPT09ImxpdmUtY3B1Iik7ci52YWx1ZT1NYXRoLm1heCgwLE1hdGgubWluKDEwMCxyLnZhbHVlKyhNYXRoLnJhbmRvbSgpKjIwLTEwKSkpO2xldCBpPXQuZmluZChvPT5vLmlkPT09ImxpdmUtcmVxdWVzdHMiKSxhPWkudmFsdWUrTWF0aC5yb3VuZChNYXRoLnJhbmRvbSgpKjUwLTI1KTtpLnZhbHVlPU1hdGgubWF4KDgwMCxhKSxpLnRyZW5kRGF0YT1bLi4uaS50cmVuZERhdGEuc2xpY2UoMSksaS52YWx1ZV07bGV0IG49dC5maW5kKG89Pm8uaWQ9PT0ibGl2ZS1tZW1vcnkiKTtuLnZhbHVlPU1hdGgubWF4KDAsTWF0aC5taW4oMTAwLG4udmFsdWUrKE1hdGgucmFuZG9tKCkqMTAtNSkpKSxlLnRpbGVzPXR9fSwxZTMpLHRoaXMubmFtZT0iU3RvcCBMaXZlIFVwZGF0ZXMiLHRoaXMuaWNvbk5hbWU9Imx1Y2lkZTpwYXVzZSIpfX1dLDI1MCwxNiwiNi4gQ29kZSBFeGFtcGxlIiwiSG93IHRvIGltcGxlbWVudCBhIHN0YXRzIGdyaWQgd2l0aCBUeXBlU2NyaXB0IixgY29uc3QgdGlsZXM6IElTdGF0c1RpbGVbXSA9IFsKICB7CiAgICBpZDogJ3JldmVudWUnLAogICAgdGl0bGU6ICdUb3RhbCBSZXZlbnVlJywKICAgIHZhbHVlOiAxMjU0MjAsCiAgICB1bml0OiAnJCcsCiAgICB0eXBlOiAnbnVtYmVyJywKICAgIGljb246ICdsdWNpZGU6ZG9sbGFyLXNpZ24nLAogICAgZGVzY3JpcHRpb246ICcrMTIuNSUgZnJvbSBsYXN0IG1vbnRoJywKICAgIGFjdGlvbnM6IFsKICAgICAgewogICAgICAgIG5hbWU6ICdWaWV3IERldGFpbHMnLAogICAgICAgIGljb25OYW1lOiAnbHVjaWRlOnRyZW5kaW5nLXVwJywKICAgICAgICBhY3Rpb246IGFzeW5jICgpID0+IHsKICAgICAgICAgIGNvbnNvbGUubG9nKCdWaWV3IHJldmVudWUgZGV0YWlscycpOwogICAgICAgIH0KICAgICAgfQogICAgXQogIH0sCiAgewogICAgaWQ6ICdjcHUnLAogICAgdGl0bGU6ICdDUFUgVXNhZ2UnLAogICAgdmFsdWU6IDczLAogICAgdW5pdDogJyUnLAogICAgdHlwZTogJ2dhdWdlJywKICAgIGljb246ICdsdWNpZGU6Y3B1JywKICAgIGdhdWdlT3B0aW9uczogewogICAgICBtaW46IDAsCiAgICAgIG1heDogMTAwLAogICAgICB0aHJlc2hvbGRzOiBbCiAgICAgICAgeyB2YWx1ZTogMCwgY29sb3I6ICdoc2woMTQyLjEgNzYuMiUgMzYuMyUpJyB9LAogICAgICAgIHsgdmFsdWU6IDYwLCBjb2xvcjogJ2hzbCg0NS40IDkzLjQlIDQ3LjUlKScgfSwKICAgICAgICB7IHZhbHVlOiA4MCwgY29sb3I6ICdoc2woMCA4NC4yJSA2MC4yJSknIH0KICAgICAgXQogICAgfQogIH0KXTsKCi8vIFJlbmRlciB0aGUgc3RhdHMgZ3JpZApodG1sXGAKICA8ZGVlcy1zdGF0c2dyaWQKICAgIC50aWxlcz1cJHt0aWxlc30KICAgIC5taW5UaWxlV2lkdGg9XCR7MjUwfQogICAgLmdhcD1cJHsxNn0KICAgIC5ncmlkQWN0aW9ucz1cJHtbCiAgICAgIHsKICAgICAgICBuYW1lOiAnUmVmcmVzaCcsCiAgICAgICAgaWNvbk5hbWU6ICdsdWNpZGU6cmVmcmVzaC1jdycsCiAgICAgICAgYWN0aW9uOiBhc3luYyAoKSA9PiBjb25zb2xlLmxvZygnUmVmcmVzaCcpCiAgICAgIH0KICAgIF19CiAgPjwvZGVlcy1zdGF0c2dyaWQ+ClxgO2AsIjcuIERpc2sgJiBTdG9yYWdlIFRpbGVzIiwiUGFydGl0aW9uIGFuZCBwaHlzaWNhbCBkaXNrIHZpc3VhbGl6YXRpb24gdGlsZXMiLFt7aWQ6InJvb3QtcGFydGl0aW9uIix0aXRsZToiUm9vdCBQYXJ0aXRpb24iLHZhbHVlOjAsdHlwZToicGFydGl0aW9uIixpY29uOiJsdWNpZGU6Zm9sZGVyLXJvb3QiLHBhcnRpdGlvbkRhdGE6e3VzZWQ6Njk4MzQxNDI1MTUyLHRvdGFsOjEwNzM3NDE4MjRlMyxmaWxlc3lzdGVtOiJleHQ0Iixtb3VudFBvaW50OiIvIn19LHtpZDoiaG9tZS1wYXJ0aXRpb24iLHRpdGxlOiJIb21lIFBhcnRpdGlvbiIsdmFsdWU6MCx0eXBlOiJwYXJ0aXRpb24iLGljb246Imx1Y2lkZTpob21lIixwYXJ0aXRpb25EYXRhOnt1c2VkOjIxNDc0ODM2NDgwMCx0b3RhbDo1MzY4NzA5MTJlMyxmaWxlc3lzdGVtOiJleHQ0Iixtb3VudFBvaW50OiIvaG9tZSJ9fSx7aWQ6ImRhdGEtcGFydGl0aW9uIix0aXRsZToiRGF0YSBQYXJ0aXRpb24iLHZhbHVlOjAsdHlwZToicGFydGl0aW9uIixpY29uOiJsdWNpZGU6ZGF0YWJhc2UiLHBhcnRpdGlvbkRhdGE6e3VzZWQ6MTkzMjczNTI4MzIwMCx0b3RhbDoyMTQ3NDgzNjQ4ZTMsZmlsZXN5c3RlbToieGZzIixtb3VudFBvaW50OiIvZGF0YSJ9fSx7aWQ6Im52bWUtc3NkIix0aXRsZToiUHJpbWFyeSBOVk1lIix2YWx1ZTowLHR5cGU6ImRpc2siLGljb246Imx1Y2lkZTpoYXJkLWRyaXZlIixjb2x1bW5TcGFuOjIsZGlza0RhdGE6e2NhcGFjaXR5OjJlMTIsbW9kZWw6IlNhbXN1bmcgOTkwIFBybyIsdHlwZToibnZtZSIsaW9wczp7cmVhZDo3NDUwLHdyaXRlOjY5MDB9LGhlYWx0aDo5OH19LHtpZDoic2F0YS1zc2QiLHRpdGxlOiJTZWNvbmRhcnkgU1NEIix2YWx1ZTowLHR5cGU6ImRpc2siLGljb246Imx1Y2lkZTpoYXJkLWRyaXZlIixkaXNrRGF0YTp7Y2FwYWNpdHk6MWUxMixtb2RlbDoiQ3J1Y2lhbCBNWDUwMCIsdHlwZToic3NkIixpb3BzOntyZWFkOjU2MCx3cml0ZTo1MTB9LGhlYWx0aDo4NX19LHtpZDoiaGRkLXN0b3JhZ2UiLHRpdGxlOiJCYWNrdXAgSEREIix2YWx1ZTowLHR5cGU6ImRpc2siLGljb246Imx1Y2lkZTphcmNoaXZlIixkaXNrRGF0YTp7Y2FwYWNpdHk6OGUxMixtb2RlbDoiU2VhZ2F0ZSBJcm9uV29sZiIsdHlwZToiaGRkIixpb3BzOntyZWFkOjIxMCx3cml0ZToxOTV9LGhlYWx0aDo0Mn19XSwyODAsMTYpfSk7dmFyIERkLHpuLG90LE0xPXAoKCk9Pnt4ZSgpO0t0KCk7RGQ9ZnVuY3Rpb24oZSx0LHIsaSxhLG4pe2Z1bmN0aW9uIG8oeSl7aWYoeSE9PXZvaWQgMCYmdHlwZW9mIHkhPSJmdW5jdGlvbiIpdGhyb3cgbmV3IFR5cGVFcnJvcigiRnVuY3Rpb24gZXhwZWN0ZWQiKTtyZXR1cm4geX1mb3IodmFyIHM9aS5raW5kLGw9cz09PSJnZXR0ZXIiPyJnZXQiOnM9PT0ic2V0dGVyIj8ic2V0IjoidmFsdWUiLGM9IXQmJmU/aS5zdGF0aWM/ZTplLnByb3RvdHlwZTpudWxsLHU9dHx8KGM/T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihjLGkubmFtZSk6e30pLGQsaD0hMSxmPXIubGVuZ3RoLTE7Zj49MDtmLS0pe3ZhciB4PXt9O2Zvcih2YXIgdiBpbiBpKXhbdl09dj09PSJhY2Nlc3MiP3t9Omlbdl07Zm9yKHZhciB2IGluIGkuYWNjZXNzKXguYWNjZXNzW3ZdPWkuYWNjZXNzW3ZdO3guYWRkSW5pdGlhbGl6ZXI9ZnVuY3Rpb24oeSl7aWYoaCl0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgYWRkIGluaXRpYWxpemVycyBhZnRlciBkZWNvcmF0aW9uIGhhcyBjb21wbGV0ZWQiKTtuLnB1c2gobyh5fHxudWxsKSl9O3ZhciBiPSgwLHJbZl0pKHM9PT0iYWNjZXNzb3IiP3tnZXQ6dS5nZXQsc2V0OnUuc2V0fTp1W2xdLHgpO2lmKHM9PT0iYWNjZXNzb3IiKXtpZihiPT09dm9pZCAwKWNvbnRpbnVlO2lmKGI9PT1udWxsfHx0eXBlb2YgYiE9Im9iamVjdCIpdGhyb3cgbmV3IFR5cGVFcnJvcigiT2JqZWN0IGV4cGVjdGVkIik7KGQ9byhiLmdldCkpJiYodS5nZXQ9ZCksKGQ9byhiLnNldCkpJiYodS5zZXQ9ZCksKGQ9byhiLmluaXQpKSYmYS51bnNoaWZ0KGQpfWVsc2UoZD1vKGIpKSYmKHM9PT0iZmllbGQiP2EudW5zaGlmdChkKTp1W2xdPWQpfWMmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShjLGkubmFtZSx1KSxoPSEwfSx6bj1mdW5jdGlvbihlLHQscil7Zm9yKHZhciBpPWFyZ3VtZW50cy5sZW5ndGg+MixhPTA7YTx0Lmxlbmd0aDthKyspcj1pP3RbYV0uY2FsbChlLHIpOnRbYV0uY2FsbChlKTtyZXR1cm4gaT9yOnZvaWQgMH0sb3Q9KCgpPT57bGV0IGU9emUsdCxyPVtdLGk9W10sYSxuPVtdLG89W10scyxsPVtdLGM9W10sdSxkPVtdLGg9W10sZix4PVtdLHY9W10sYix5PVtdLHc9W10sayxPPVtdLHo9W107cmV0dXJuIGNsYXNzIGV4dGVuZHMgZXtzdGF0aWN7bGV0IEY9dHlwZW9mIFN5bWJvbD09ImZ1bmN0aW9uIiYmU3ltYm9sLm1ldGFkYXRhP09iamVjdC5jcmVhdGUoZVtTeW1ib2wubWV0YWRhdGFdPz9udWxsKTp2b2lkIDA7dD1baih7dHlwZTpTdHJpbmd9KV0sYT1baih7dHlwZTpTdHJpbmd9KV0scz1baih7dHlwZTpTdHJpbmd9KV0sdT1baih7dHlwZTpTdHJpbmd9KV0sZj1baih7dHlwZTpCb29sZWFufSldLGI9W2ooe3R5cGU6Qm9vbGVhbn0pXSxrPVtqKHt0eXBlOlN0cmluZ30pXSxEZCh0aGlzLG51bGwsdCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImxheW91dE1vZGUiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOkQ9PiJsYXlvdXRNb2RlImluIEQsZ2V0OkQ9PkQubGF5b3V0TW9kZSxzZXQ6KEQsTik9PntELmxheW91dE1vZGU9Tn19LG1ldGFkYXRhOkZ9LHIsaSksRGQodGhpcyxudWxsLGEse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJsYWJlbFBvc2l0aW9uIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpEPT4ibGFiZWxQb3NpdGlvbiJpbiBELGdldDpEPT5ELmxhYmVsUG9zaXRpb24sc2V0OihELE4pPT57RC5sYWJlbFBvc2l0aW9uPU59fSxtZXRhZGF0YTpGfSxuLG8pLERkKHRoaXMsbnVsbCxzLHtraW5kOiJhY2Nlc3NvciIsbmFtZToia2V5IixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpEPT4ia2V5ImluIEQsZ2V0OkQ9PkQua2V5LHNldDooRCxOKT0+e0Qua2V5PU59fSxtZXRhZGF0YTpGfSxsLGMpLERkKHRoaXMsbnVsbCx1LHtraW5kOiJhY2Nlc3NvciIsbmFtZToibGFiZWwiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOkQ9PiJsYWJlbCJpbiBELGdldDpEPT5ELmxhYmVsLHNldDooRCxOKT0+e0QubGFiZWw9Tn19LG1ldGFkYXRhOkZ9LGQsaCksRGQodGhpcyxudWxsLGYse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJyZXF1aXJlZCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6RD0+InJlcXVpcmVkImluIEQsZ2V0OkQ9PkQucmVxdWlyZWQsc2V0OihELE4pPT57RC5yZXF1aXJlZD1OfX0sbWV0YWRhdGE6Rn0seCx2KSxEZCh0aGlzLG51bGwsYix7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImRpc2FibGVkIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpEPT4iZGlzYWJsZWQiaW4gRCxnZXQ6RD0+RC5kaXNhYmxlZCxzZXQ6KEQsTik9PntELmRpc2FibGVkPU59fSxtZXRhZGF0YTpGfSx5LHcpLERkKHRoaXMsbnVsbCxrLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiZGVzY3JpcHRpb24iLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOkQ9PiJkZXNjcmlwdGlvbiJpbiBELGdldDpEPT5ELmRlc2NyaXB0aW9uLHNldDooRCxOKT0+e0QuZGVzY3JpcHRpb249Tn19LG1ldGFkYXRhOkZ9LE8seiksRiYmT2JqZWN0LmRlZmluZVByb3BlcnR5KHRoaXMsU3ltYm9sLm1ldGFkYXRhLHtlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMCx2YWx1ZTpGfSl9I2U9em4odGhpcyxyLCJhdXRvIik7Z2V0IGxheW91dE1vZGUoKXtyZXR1cm4gdGhpcy4jZX1zZXQgbGF5b3V0TW9kZShGKXt0aGlzLiNlPUZ9I3Q9KHpuKHRoaXMsaSksem4odGhpcyxuLCJ0b3AiKSk7Z2V0IGxhYmVsUG9zaXRpb24oKXtyZXR1cm4gdGhpcy4jdH1zZXQgbGFiZWxQb3NpdGlvbihGKXt0aGlzLiN0PUZ9I3I9KHpuKHRoaXMsbyksem4odGhpcyxsLHZvaWQgMCkpO2dldCBrZXkoKXtyZXR1cm4gdGhpcy4jcn1zZXQga2V5KEYpe3RoaXMuI3I9Rn0jaT0oem4odGhpcyxjKSx6bih0aGlzLGQsdm9pZCAwKSk7Z2V0IGxhYmVsKCl7cmV0dXJuIHRoaXMuI2l9c2V0IGxhYmVsKEYpe3RoaXMuI2k9Rn0jYT0oem4odGhpcyxoKSx6bih0aGlzLHgsITEpKTtnZXQgcmVxdWlyZWQoKXtyZXR1cm4gdGhpcy4jYX1zZXQgcmVxdWlyZWQoRil7dGhpcy4jYT1GfSNuPSh6bih0aGlzLHYpLHpuKHRoaXMseSwhMSkpO2dldCBkaXNhYmxlZCgpe3JldHVybiB0aGlzLiNufXNldCBkaXNhYmxlZChGKXt0aGlzLiNuPUZ9I289KHpuKHRoaXMsdyksem4odGhpcyxPLHZvaWQgMCkpO2dldCBkZXNjcmlwdGlvbigpe3JldHVybiB0aGlzLiNvfXNldCBkZXNjcmlwdGlvbihGKXt0aGlzLiNvPUZ9c3RhdGljIGdldCBiYXNlU3R5bGVzKCl7cmV0dXJuW29lYAogICAgICAgIC8qIENTUyBWYXJpYWJsZXMgZm9yIGNvbnNpc3RlbnQgc3BhY2luZyAqLwogICAgICAgIDpob3N0IHsKICAgICAgICAgIC0tZGVlcy1pbnB1dC1zcGFjaW5nLXVuaXQ6IDhweDsKICAgICAgICAgIC0tZGVlcy1pbnB1dC1sYWJlbC1nYXA6IHZhcigtLWRlZXMtaW5wdXQtc3BhY2luZy11bml0KTsgLyogOHB4ICovCiAgICAgICAgfQoKICAgICAgICAvKiBEZWZhdWx0IGJsb2NrIGRpc3BsYXkgd2l0aCBubyBtYXJnaW5zIC0gc3BhY2luZyBpcyBjb250YWluZXItZHJpdmVuICovCiAgICAgICAgOmhvc3QgewogICAgICAgICAgZGlzcGxheTogYmxvY2s7CiAgICAgICAgICBtYXJnaW46IDA7CiAgICAgICAgfQoKICAgICAgICAvKiBIb3Jpem9udGFsIGxheW91dCBtb2RlIC0gYWN0aXZhdGVkIGJ5IGF0dHJpYnV0ZSAqLwogICAgICAgIDpob3N0KFtsYXlvdXQtbW9kZT0iaG9yaXpvbnRhbCJdKSB7CiAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7CiAgICAgICAgfQoKICAgICAgICAvKiBMYWJlbCBwb3NpdGlvbiB2YXJpYXRpb25zICovCiAgICAgICAgOmhvc3QoW2xhYmVsLXBvc2l0aW9uPSJsZWZ0Il0pIC5pbnB1dC13cmFwcGVyIHsKICAgICAgICAgIGRpc3BsYXk6IGdyaWQ7CiAgICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IGF1dG8gMWZyOwogICAgICAgICAgZ2FwOiB2YXIoLS1kZWVzLWlucHV0LWxhYmVsLWdhcCk7CiAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIH0KCiAgICAgICAgOmhvc3QoW2xhYmVsLXBvc2l0aW9uPSJyaWdodCJdKSAuaW5wdXQtd3JhcHBlciB7CiAgICAgICAgICBkaXNwbGF5OiBncmlkOwogICAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAxZnIgYXV0bzsKICAgICAgICAgIGdhcDogdmFyKC0tZGVlcy1pbnB1dC1sYWJlbC1nYXApOwogICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICB9CgogICAgICAgIDpob3N0KFtsYWJlbC1wb3NpdGlvbj0idG9wIl0pIC5pbnB1dC13cmFwcGVyIHsKICAgICAgICAgIGRpc3BsYXk6IGJsb2NrOwogICAgICAgIH0KCiAgICAgICAgOmhvc3QoW2xhYmVsLXBvc2l0aW9uPSJub25lIl0pIGRlZXMtbGFiZWwgewogICAgICAgICAgZGlzcGxheTogbm9uZTsKICAgICAgICB9CiAgICAgIGBdfWNoYW5nZVN1YmplY3Q9KHpuKHRoaXMseiksbmV3IGp0LnNtYXJ0cngucnhqcy5TdWJqZWN0KTthc3luYyBjb25uZWN0ZWRDYWxsYmFjaygpe2F3YWl0IHN1cGVyLmNvbm5lY3RlZENhbGxiYWNrKCksdGhpcy5kZXRlY3RMYXlvdXRNb2RlKCl9ZGV0ZWN0TGF5b3V0TW9kZSgpe2lmKHRoaXMubGF5b3V0TW9kZSE9PSJhdXRvIil7dGhpcy5zZXRBdHRyaWJ1dGUoImxheW91dC1tb2RlIix0aGlzLmxheW91dE1vZGUpO3JldHVybn1sZXQgRj10aGlzLmNsb3Nlc3QoImRlZXMtZm9ybSIpO0YmJkYuaGFzQXR0cmlidXRlKCJob3Jpem9udGFsLWxheW91dCIpP3RoaXMuc2V0QXR0cmlidXRlKCJsYXlvdXQtbW9kZSIsImhvcml6b250YWwiKTp0aGlzLnNldEF0dHJpYnV0ZSgibGF5b3V0LW1vZGUiLCJ2ZXJ0aWNhbCIpfXVwZGF0ZWQoRil7c3VwZXIudXBkYXRlZChGKSxGLmhhcygibGF5b3V0TW9kZSIpJiZ0aGlzLmRldGVjdExheW91dE1vZGUoKSxGLmhhcygibGFiZWxQb3NpdGlvbiIpJiZ0aGlzLnNldEF0dHJpYnV0ZSgibGFiZWwtcG9zaXRpb24iLHRoaXMubGFiZWxQb3NpdGlvbil9YXN5bmMgZnJlZXplKCl7dGhpcy5kaXNhYmxlZD0hMH1hc3luYyB1bmZyZWV6ZSgpe3RoaXMuZGlzYWJsZWQ9ITF9fX0pKCl9KTt2YXIgZ3NyLGJzcj1wKCgpPT57eGUoKTtwMSgpO09pKCk7STQoKTtnc3I9KCk9PkNgCiAgPGRlZXMtZGVtb3dyYXBwZXIgLnJ1bkFmdGVyUmVuZGVyPSR7YXN5bmMgZT0+e2xldCB0PWUucXVlcnlTZWxlY3RvckFsbCgiZGVlcy1pbnB1dC1jaGVja2JveCIpLHI9ZS5xdWVyeVNlbGVjdG9yKCIjc2VsZWN0LWFsbC1idG4iKSxpPWUucXVlcnlTZWxlY3RvcigiI2NsZWFyLWFsbC1idG4iKTtyJiZpJiYoci5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsKCk9Pnt0LmZvckVhY2goYT0+eyFhLmRpc2FibGVkJiZhLmtleT8uc3RhcnRzV2l0aCgiZmVhdHVyZSIpJiYoYS52YWx1ZT0hMCl9KX0pLGkuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLCgpPT57dC5mb3JFYWNoKGE9PnshYS5kaXNhYmxlZCYmYS5rZXk/LnN0YXJ0c1dpdGgoImZlYXR1cmUiKSYmKGEudmFsdWU9ITEpfSl9KSl9fT4KICAgIDxzdHlsZT4KICAgICAgJHtvZWAKICAgICAgICAuZGVtby1jb250YWluZXIgewogICAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgICAgICBnYXA6IDI0cHg7CiAgICAgICAgICBwYWRkaW5nOiAyNHB4OwogICAgICAgICAgbWF4LXdpZHRoOiAxMjAwcHg7CiAgICAgICAgICBtYXJnaW46IDAgYXV0bzsKICAgICAgICB9CiAgICAgICAgCiAgICAgICAgZGVlcy1wYW5lbCB7CiAgICAgICAgICBtYXJnaW4tYm90dG9tOiAyNHB4OwogICAgICAgIH0KICAgICAgICAKICAgICAgICBkZWVzLXBhbmVsOmxhc3QtY2hpbGQgewogICAgICAgICAgbWFyZ2luLWJvdHRvbTogMDsKICAgICAgICB9CiAgICAgICAgCiAgICAgICAgLmNoZWNrYm94LWdyb3VwIHsKICAgICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICAgICAgZ2FwOiAxMnB4OwogICAgICAgIH0KICAgICAgICAKICAgICAgICAuaG9yaXpvbnRhbC1jaGVja2JveGVzIHsKICAgICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgICBnYXA6IDI0cHg7CiAgICAgICAgICBmbGV4LXdyYXA6IHdyYXA7CiAgICAgICAgfQogICAgICAgIAogICAgICAgIC5pbnRlcmFjdGl2ZS1zZWN0aW9uIHsKICAgICAgICAgIGJhY2tncm91bmQ6ICR7bS5iZFRoZW1lKCJoc2woMjEwIDQwJSA5Ni4xJSkiLCJoc2woMjE1IDIwLjIlIDE2LjglKSIpfTsKICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDhweDsKICAgICAgICAgIHBhZGRpbmc6IDE2cHg7CiAgICAgICAgICBtYXJnaW4tdG9wOiAxNnB4OwogICAgICAgIH0KICAgICAgICAKICAgICAgICAub3V0cHV0LXRleHQgewogICAgICAgICAgZm9udC1mYW1pbHk6IG1vbm9zcGFjZTsKICAgICAgICAgIGZvbnQtc2l6ZTogMTNweDsKICAgICAgICAgIGNvbG9yOiAke20uYmRUaGVtZSgiaHNsKDIxNS4zIDI1JSAyNi43JSkiLCJoc2woMjEwIDQwJSA4MCUpIil9OwogICAgICAgICAgcGFkZGluZzogOHB4OwogICAgICAgICAgYmFja2dyb3VuZDogJHttLmJkVGhlbWUoImhzbCgyMTAgNDAlIDk4JSkiLCJoc2woMjE1IDIwLjIlIDExLjglKSIpfTsKICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDRweDsKICAgICAgICAgIG1pbi1oZWlnaHQ6IDI0cHg7CiAgICAgICAgfQogICAgICAgIAogICAgICAgIC5mb3JtLXNlY3Rpb24gewogICAgICAgICAgYmFja2dyb3VuZDogJHttLmJkVGhlbWUoImhzbCgwIDAlIDk3JSkiLCJoc2woMCAwJSA3JSkiKX07CiAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAke20uYmRUaGVtZSgiaHNsKDAgMCUgODkuOCUpIiwiaHNsKDAgMCUgMTQuOSUpIil9OwogICAgICAgICAgYm9yZGVyLXJhZGl1czogOHB4OwogICAgICAgICAgcGFkZGluZzogMjBweDsKICAgICAgICAgIG1hcmdpbi10b3A6IDE2cHg7CiAgICAgICAgfQogICAgICAgIAogICAgICAgIC5idXR0b24tZ3JvdXAgewogICAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICAgIGdhcDogOHB4OwogICAgICAgICAgbWFyZ2luLWJvdHRvbTogMTZweDsKICAgICAgICB9CiAgICAgICAgCiAgICAgICAgLmZlYXR1cmUtbGlzdCB7CiAgICAgICAgICBiYWNrZ3JvdW5kOiAke20uYmRUaGVtZSgiaHNsKDIxMCA0MCUgOTYuMSUpIiwiaHNsKDIxNSAyMC4yJSAxMS44JSkiKX07CiAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAke20uYmRUaGVtZSgiaHNsKDIxNC4zIDMxLjglIDkxLjQlKSIsImhzbCgyMTUgMjAuMiUgMTYuOCUpIil9OwogICAgICAgICAgYm9yZGVyLXJhZGl1czogNnB4OwogICAgICAgICAgcGFkZGluZzogMTZweDsKICAgICAgICB9CiAgICAgICAgCiAgICAgICAgLnNlY3Rpb24tdGl0bGUgewogICAgICAgICAgZm9udC1zaXplOiAxNnB4OwogICAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDsKICAgICAgICAgIG1hcmdpbi1ib3R0b206IDE2cHg7CiAgICAgICAgICBjb2xvcjogJHttLmJkVGhlbWUoImhzbCgyMTUuMyAyNSUgOC44JSkiLCJoc2woMjEwIDQwJSA5OCUpIil9OwogICAgICAgIH0KICAgICAgYH0KICAgIDwvc3R5bGU+CiAgICAKICAgIDxkaXYgY2xhc3M9ImRlbW8tY29udGFpbmVyIj4KICAgICAgPGRlZXMtcGFuZWwgLnRpdGxlPSR7IkJhc2ljIENoZWNrYm94ZXMifSAuc3VidGl0bGU9JHsiU2ltcGxlIGNoZWNrYm94IGV4YW1wbGVzIHdpdGggdmFyaW91cyBsYWJlbHMifT4KICAgICAgICA8ZGl2IGNsYXNzPSJjaGVja2JveC1ncm91cCI+CiAgICAgICAgICA8ZGVlcy1pbnB1dC1jaGVja2JveCAKICAgICAgICAgICAgLmxhYmVsPSR7IkkgYWdyZWUgdG8gdGhlIFRlcm1zIGFuZCBDb25kaXRpb25zIn0gCiAgICAgICAgICAgIC52YWx1ZT0keyEwfQogICAgICAgICAgICAua2V5PSR7InRlcm1zIn0KICAgICAgICAgID48L2RlZXMtaW5wdXQtY2hlY2tib3g+CiAgICAgICAgICAKICAgICAgICAgIDxkZWVzLWlucHV0LWNoZWNrYm94IAogICAgICAgICAgICAubGFiZWw9JHsiU3Vic2NyaWJlIHRvIG5ld3NsZXR0ZXIifSAKICAgICAgICAgICAgLnZhbHVlPSR7ITF9CiAgICAgICAgICAgIC5rZXk9JHsibmV3c2xldHRlciJ9CiAgICAgICAgICA+PC9kZWVzLWlucHV0LWNoZWNrYm94PgogICAgICAgICAgCiAgICAgICAgICA8ZGVlcy1pbnB1dC1jaGVja2JveCAKICAgICAgICAgICAgLmxhYmVsPSR7IkVuYWJsZSBub3RpZmljYXRpb25zIn0gCiAgICAgICAgICAgIC52YWx1ZT0keyExfQogICAgICAgICAgICAuZGVzY3JpcHRpb249JHsiUmVjZWl2ZSBlbWFpbCB1cGRhdGVzIGFib3V0IHlvdXIgYWNjb3VudCJ9CiAgICAgICAgICAgIC5rZXk9JHsibm90aWZpY2F0aW9ucyJ9CiAgICAgICAgICA+PC9kZWVzLWlucHV0LWNoZWNrYm94PgogICAgICAgIDwvZGl2PgogICAgICA8L2RlZXMtcGFuZWw+CiAgICAgIAogICAgICA8ZGVlcy1wYW5lbCAudGl0bGU9JHsiQ2hlY2tib3ggU3RhdGVzIn0gLnN1YnRpdGxlPSR7IkRpZmZlcmVudCBjaGVja2JveCBzdGF0ZXMgYW5kIGNvbmZpZ3VyYXRpb25zIn0+CiAgICAgICAgPGRpdiBjbGFzcz0iY2hlY2tib3gtZ3JvdXAiPgogICAgICAgICAgPGRlZXMtaW5wdXQtY2hlY2tib3ggCiAgICAgICAgICAgIC5sYWJlbD0keyJEZWZhdWx0IHN0YXRlIn0gCiAgICAgICAgICAgIC52YWx1ZT0keyExfQogICAgICAgICAgPjwvZGVlcy1pbnB1dC1jaGVja2JveD4KICAgICAgICAgIAogICAgICAgICAgPGRlZXMtaW5wdXQtY2hlY2tib3ggCiAgICAgICAgICAgIC5sYWJlbD0keyJDaGVja2VkIHN0YXRlIn0gCiAgICAgICAgICAgIC52YWx1ZT0keyEwfQogICAgICAgICAgPjwvZGVlcy1pbnB1dC1jaGVja2JveD4KICAgICAgICAgIAogICAgICAgICAgPGRlZXMtaW5wdXQtY2hlY2tib3ggCiAgICAgICAgICAgIC5sYWJlbD0keyJEaXNhYmxlZCB1bmNoZWNrZWQifSAKICAgICAgICAgICAgLnZhbHVlPSR7ITF9CiAgICAgICAgICAgIC5kaXNhYmxlZD0keyEwfQogICAgICAgICAgPjwvZGVlcy1pbnB1dC1jaGVja2JveD4KICAgICAgICAgIAogICAgICAgICAgPGRlZXMtaW5wdXQtY2hlY2tib3ggCiAgICAgICAgICAgIC5sYWJlbD0keyJEaXNhYmxlZCBjaGVja2VkIn0gCiAgICAgICAgICAgIC52YWx1ZT0keyEwfQogICAgICAgICAgICAuZGlzYWJsZWQ9JHshMH0KICAgICAgICAgID48L2RlZXMtaW5wdXQtY2hlY2tib3g+CiAgICAgICAgICAKICAgICAgICAgIDxkZWVzLWlucHV0LWNoZWNrYm94IAogICAgICAgICAgICAubGFiZWw9JHsiUmVxdWlyZWQgY2hlY2tib3gifSAKICAgICAgICAgICAgLnJlcXVpcmVkPSR7ITB9CiAgICAgICAgICAgIC5rZXk9JHsicmVxdWlyZWQifQogICAgICAgICAgPjwvZGVlcy1pbnB1dC1jaGVja2JveD4KICAgICAgICA8L2Rpdj4KICAgICAgPC9kZWVzLXBhbmVsPgogICAgICAKICAgICAgPGRlZXMtcGFuZWwgLnRpdGxlPSR7Ikhvcml6b250YWwgTGF5b3V0In0gLnN1YnRpdGxlPSR7IkNoZWNrYm94ZXMgYXJyYW5nZWQgaG9yaXpvbnRhbGx5IGZvciBjb21wYWN0IGZvcm1zIn0+CiAgICAgICAgPGRpdiBjbGFzcz0iaG9yaXpvbnRhbC1jaGVja2JveGVzIj4KICAgICAgICAgIDxkZWVzLWlucHV0LWNoZWNrYm94IAogICAgICAgICAgICAubGFiZWw9JHsiT3B0aW9uIEEifSAKICAgICAgICAgICAgLnZhbHVlPSR7ITF9CiAgICAgICAgICAgIC5sYXlvdXRNb2RlPSR7Imhvcml6b250YWwifQogICAgICAgICAgICAua2V5PSR7Im9wdGlvbkEifQogICAgICAgICAgPjwvZGVlcy1pbnB1dC1jaGVja2JveD4KICAgICAgICAgIAogICAgICAgICAgPGRlZXMtaW5wdXQtY2hlY2tib3ggCiAgICAgICAgICAgIC5sYWJlbD0keyJPcHRpb24gQiJ9IAogICAgICAgICAgICAudmFsdWU9JHshMH0KICAgICAgICAgICAgLmxheW91dE1vZGU9JHsiaG9yaXpvbnRhbCJ9CiAgICAgICAgICAgIC5rZXk9JHsib3B0aW9uQiJ9CiAgICAgICAgICA+PC9kZWVzLWlucHV0LWNoZWNrYm94PgogICAgICAgICAgCiAgICAgICAgICA8ZGVlcy1pbnB1dC1jaGVja2JveCAKICAgICAgICAgICAgLmxhYmVsPSR7Ik9wdGlvbiBDIn0gCiAgICAgICAgICAgIC52YWx1ZT0keyExfQogICAgICAgICAgICAubGF5b3V0TW9kZT0keyJob3Jpem9udGFsIn0KICAgICAgICAgICAgLmtleT0keyJvcHRpb25DIn0KICAgICAgICAgID48L2RlZXMtaW5wdXQtY2hlY2tib3g+CiAgICAgICAgICAKICAgICAgICAgIDxkZWVzLWlucHV0LWNoZWNrYm94IAogICAgICAgICAgICAubGFiZWw9JHsiT3B0aW9uIEQifSAKICAgICAgICAgICAgLnZhbHVlPSR7ITB9CiAgICAgICAgICAgIC5sYXlvdXRNb2RlPSR7Imhvcml6b250YWwifQogICAgICAgICAgICAua2V5PSR7Im9wdGlvbkQifQogICAgICAgICAgPjwvZGVlcy1pbnB1dC1jaGVja2JveD4KICAgICAgICA8L2Rpdj4KICAgICAgPC9kZWVzLXBhbmVsPgogICAgICAKICAgICAgPGRlZXMtcGFuZWwgLnRpdGxlPSR7IkZlYXR1cmUgU2VsZWN0aW9uIEV4YW1wbGUifSAuc3VidGl0bGU9JHsiQ29tbW9uIHVzZSBjYXNlIGZvciBmZWF0dXJlIHRvZ2dsZXMgd2l0aCBiYXRjaCBvcGVyYXRpb25zIn0+CiAgICAgICAgPGRpdiBjbGFzcz0iYnV0dG9uLWdyb3VwIj4KICAgICAgICAgIDxkZWVzLWJ1dHRvbiBpZD0ic2VsZWN0LWFsbC1idG4iIHR5cGU9InNlY29uZGFyeSI+U2VsZWN0IEFsbDwvZGVlcy1idXR0b24+CiAgICAgICAgICA8ZGVlcy1idXR0b24gaWQ9ImNsZWFyLWFsbC1idG4iIHR5cGU9InNlY29uZGFyeSI+Q2xlYXIgQWxsPC9kZWVzLWJ1dHRvbj4KICAgICAgICA8L2Rpdj4KICAgICAgICAKICAgICAgICA8ZGl2IGNsYXNzPSJmZWF0dXJlLWxpc3QiPgogICAgICAgICAgPGRpdiBjbGFzcz0iY2hlY2tib3gtZ3JvdXAiPgogICAgICAgICAgICA8ZGVlcy1pbnB1dC1jaGVja2JveCAKICAgICAgICAgICAgICAubGFiZWw9JHsiRGFyayBNb2RlIFN1cHBvcnQifSAKICAgICAgICAgICAgICAudmFsdWU9JHshMH0KICAgICAgICAgICAgICAua2V5PSR7ImZlYXR1cmUxIn0KICAgICAgICAgICAgPjwvZGVlcy1pbnB1dC1jaGVja2JveD4KICAgICAgICAgICAgCiAgICAgICAgICAgIDxkZWVzLWlucHV0LWNoZWNrYm94IAogICAgICAgICAgICAgIC5sYWJlbD0keyJFbWFpbCBOb3RpZmljYXRpb25zIn0gCiAgICAgICAgICAgICAgLnZhbHVlPSR7ITB9CiAgICAgICAgICAgICAgLmtleT0keyJmZWF0dXJlMiJ9CiAgICAgICAgICAgID48L2RlZXMtaW5wdXQtY2hlY2tib3g+CiAgICAgICAgICAgIAogICAgICAgICAgICA8ZGVlcy1pbnB1dC1jaGVja2JveCAKICAgICAgICAgICAgICAubGFiZWw9JHsiVHdvLUZhY3RvciBBdXRoZW50aWNhdGlvbiJ9IAogICAgICAgICAgICAgIC52YWx1ZT0keyExfQogICAgICAgICAgICAgIC5rZXk9JHsiZmVhdHVyZTMifQogICAgICAgICAgICA+PC9kZWVzLWlucHV0LWNoZWNrYm94PgogICAgICAgICAgICAKICAgICAgICAgICAgPGRlZXMtaW5wdXQtY2hlY2tib3ggCiAgICAgICAgICAgICAgLmxhYmVsPSR7IkFQSSBBY2Nlc3MifSAKICAgICAgICAgICAgICAudmFsdWU9JHshMH0KICAgICAgICAgICAgICAua2V5PSR7ImZlYXR1cmU0In0KICAgICAgICAgICAgPjwvZGVlcy1pbnB1dC1jaGVja2JveD4KICAgICAgICAgICAgCiAgICAgICAgICAgIDxkZWVzLWlucHV0LWNoZWNrYm94IAogICAgICAgICAgICAgIC5sYWJlbD0keyJBZHZhbmNlZCBBbmFseXRpY3MifSAKICAgICAgICAgICAgICAudmFsdWU9JHshMX0KICAgICAgICAgICAgICAua2V5PSR7ImZlYXR1cmU1In0KICAgICAgICAgICAgPjwvZGVlcy1pbnB1dC1jaGVja2JveD4KICAgICAgICAgIDwvZGl2PgogICAgICAgIDwvZGl2PgogICAgICA8L2RlZXMtcGFuZWw+CiAgICAgIAogICAgICA8ZGVlcy1wYW5lbCAudGl0bGU9JHsiUHJpdmFjeSBTZXR0aW5ncyBFeGFtcGxlIn0gLnN1YnRpdGxlPSR7IkNoZWNrYm94ZXMgaW4gYSB0eXBpY2FsIGZvcm0gY29udGV4dCJ9PgogICAgICAgIDxkaXYgY2xhc3M9ImZvcm0tc2VjdGlvbiI+CiAgICAgICAgICA8aDQgY2xhc3M9InNlY3Rpb24tdGl0bGUiPlByaXZhY3kgUHJlZmVyZW5jZXM8L2g0PgogICAgICAgICAgCiAgICAgICAgICA8ZGl2IGNsYXNzPSJjaGVja2JveC1ncm91cCI+CiAgICAgICAgICAgIDxkZWVzLWlucHV0LWNoZWNrYm94IAogICAgICAgICAgICAgIC5sYWJlbD0keyJTaGFyZSBhbmFseXRpY3MgZGF0YSJ9IAogICAgICAgICAgICAgIC52YWx1ZT0keyEwfQogICAgICAgICAgICAgIC5kZXNjcmlwdGlvbj0keyJIZWxwIHVzIGltcHJvdmUgYnkgc2hhcmluZyBhbm9ueW1vdXMgdXNhZ2UgZGF0YSJ9CiAgICAgICAgICAgID48L2RlZXMtaW5wdXQtY2hlY2tib3g+CiAgICAgICAgICAgIAogICAgICAgICAgICA8ZGVlcy1pbnB1dC1jaGVja2JveCAKICAgICAgICAgICAgICAubGFiZWw9JHsiUGVyc29uYWxpemVkIHJlY29tbWVuZGF0aW9ucyJ9IAogICAgICAgICAgICAgIC52YWx1ZT0keyEwfQogICAgICAgICAgICAgIC5kZXNjcmlwdGlvbj0keyJHZXQgc3VnZ2VzdGlvbnMgYmFzZWQgb24geW91ciBhY3Rpdml0eSJ9CiAgICAgICAgICAgID48L2RlZXMtaW5wdXQtY2hlY2tib3g+CiAgICAgICAgICAgIAogICAgICAgICAgICA8ZGVlcy1pbnB1dC1jaGVja2JveCAKICAgICAgICAgICAgICAubGFiZWw9JHsiTWFya2V0aW5nIGNvbW11bmljYXRpb25zIn0gCiAgICAgICAgICAgICAgLnZhbHVlPSR7ITF9CiAgICAgICAgICAgICAgLmRlc2NyaXB0aW9uPSR7IlJlY2VpdmUgcHJvbW90aW9uYWwgZW1haWxzIGFuZCBzcGVjaWFsIG9mZmVycyJ9CiAgICAgICAgICAgID48L2RlZXMtaW5wdXQtY2hlY2tib3g+CiAgICAgICAgICAgIAogICAgICAgICAgICA8ZGVlcy1pbnB1dC1jaGVja2JveCAKICAgICAgICAgICAgICAubGFiZWw9JHsiVGhpcmQtcGFydHkgaW50ZWdyYXRpb25zIn0gCiAgICAgICAgICAgICAgLnZhbHVlPSR7ITF9CiAgICAgICAgICAgICAgLmRlc2NyaXB0aW9uPSR7IkFsbG93IGFwcHJvdmVkIHBhcnRuZXJzIHRvIGFjY2VzcyB5b3VyIGRhdGEifQogICAgICAgICAgICA+PC9kZWVzLWlucHV0LWNoZWNrYm94PgogICAgICAgICAgPC9kaXY+CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGVlcy1wYW5lbD4KICAgICAgCiAgICAgIDxkZWVzLXBhbmVsIC50aXRsZT0keyJJbnRlcmFjdGl2ZSBFeGFtcGxlIn0gLnN1YnRpdGxlPSR7IkNsaWNrIGNoZWNrYm94ZXMgdG8gc2VlIHZhbHVlIGNoYW5nZXMifT4KICAgICAgICA8ZGl2IGNsYXNzPSJjaGVja2JveC1ncm91cCI+CiAgICAgICAgICA8ZGVlcy1pbnB1dC1jaGVja2JveCAKICAgICAgICAgICAgLmxhYmVsPSR7IkZlYXR1cmUgdG9nZ2xlIn0gCiAgICAgICAgICAgIC52YWx1ZT0keyExfQogICAgICAgICAgICBAY2hhbmdlU3ViamVjdD0ke2U9PntsZXQgdD1kb2N1bWVudC5xdWVyeVNlbGVjdG9yKCIjY2hlY2tib3gtb3V0cHV0Iik7aWYodCYmZS5kZXRhaWwpe2xldCByPWUuZGV0YWlsLmdldFZhbHVlKCk7dC50ZXh0Q29udGVudD1gRmVhdHVyZSBpcyAke3I/ImVuYWJsZWQiOiJkaXNhYmxlZCJ9YH19fQogICAgICAgICAgPjwvZGVlcy1pbnB1dC1jaGVja2JveD4KICAgICAgICAgIAogICAgICAgICAgPGRlZXMtaW5wdXQtY2hlY2tib3ggCiAgICAgICAgICAgIC5sYWJlbD0keyJEZWJ1ZyBtb2RlIn0gCiAgICAgICAgICAgIC52YWx1ZT0keyExfQogICAgICAgICAgICBAY2hhbmdlU3ViamVjdD0ke2U9PntsZXQgdD1kb2N1bWVudC5xdWVyeVNlbGVjdG9yKCIjZGVidWctb3V0cHV0Iik7aWYodCYmZS5kZXRhaWwpe2xldCByPWUuZGV0YWlsLmdldFZhbHVlKCk7dC50ZXh0Q29udGVudD1gRGVidWcgbW9kZTogJHtyPyJPTiI6Ik9GRiJ9YH19fQogICAgICAgICAgPjwvZGVlcy1pbnB1dC1jaGVja2JveD4KICAgICAgICA8L2Rpdj4KICAgICAgICAKICAgICAgICA8ZGl2IGNsYXNzPSJpbnRlcmFjdGl2ZS1zZWN0aW9uIj4KICAgICAgICAgIDxkaXYgaWQ9ImNoZWNrYm94LW91dHB1dCIgY2xhc3M9Im91dHB1dC10ZXh0Ij5GZWF0dXJlIGlzIGRpc2FibGVkPC9kaXY+CiAgICAgICAgICA8ZGl2IGlkPSJkZWJ1Zy1vdXRwdXQiIGNsYXNzPSJvdXRwdXQtdGV4dCIgc3R5bGU9Im1hcmdpbi10b3A6IDhweDsiPkRlYnVnIG1vZGU6IE9GRjwvZGl2PgogICAgICAgIDwvZGl2PgogICAgICA8L2RlZXMtcGFuZWw+CiAgICA8L2Rpdj4KICA8L2RlZXMtZGVtb3dyYXBwZXI+CmB9KTt2YXIgYzZlLGNiLHpOLENOPXAoKCk9Pnt4ZSgpO00xKCk7YnNyKCk7UWEoKTtKZSgpO2M2ZT1mdW5jdGlvbihlLHQscixpLGEsbil7ZnVuY3Rpb24gbyh5KXtpZih5IT09dm9pZCAwJiZ0eXBlb2YgeSE9ImZ1bmN0aW9uIil0aHJvdyBuZXcgVHlwZUVycm9yKCJGdW5jdGlvbiBleHBlY3RlZCIpO3JldHVybiB5fWZvcih2YXIgcz1pLmtpbmQsbD1zPT09ImdldHRlciI/ImdldCI6cz09PSJzZXR0ZXIiPyJzZXQiOiJ2YWx1ZSIsYz0hdCYmZT9pLnN0YXRpYz9lOmUucHJvdG90eXBlOm51bGwsdT10fHwoYz9PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGMsaS5uYW1lKTp7fSksZCxoPSExLGY9ci5sZW5ndGgtMTtmPj0wO2YtLSl7dmFyIHg9e307Zm9yKHZhciB2IGluIGkpeFt2XT12PT09ImFjY2VzcyI/e306aVt2XTtmb3IodmFyIHYgaW4gaS5hY2Nlc3MpeC5hY2Nlc3Nbdl09aS5hY2Nlc3Nbdl07eC5hZGRJbml0aWFsaXplcj1mdW5jdGlvbih5KXtpZihoKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBhZGQgaW5pdGlhbGl6ZXJzIGFmdGVyIGRlY29yYXRpb24gaGFzIGNvbXBsZXRlZCIpO24ucHVzaChvKHl8fG51bGwpKX07dmFyIGI9KDAscltmXSkocz09PSJhY2Nlc3NvciI/e2dldDp1LmdldCxzZXQ6dS5zZXR9OnVbbF0seCk7aWYocz09PSJhY2Nlc3NvciIpe2lmKGI9PT12b2lkIDApY29udGludWU7aWYoYj09PW51bGx8fHR5cGVvZiBiIT0ib2JqZWN0Iil0aHJvdyBuZXcgVHlwZUVycm9yKCJPYmplY3QgZXhwZWN0ZWQiKTsoZD1vKGIuZ2V0KSkmJih1LmdldD1kKSwoZD1vKGIuc2V0KSkmJih1LnNldD1kKSwoZD1vKGIuaW5pdCkpJiZhLnVuc2hpZnQoZCl9ZWxzZShkPW8oYikpJiYocz09PSJmaWVsZCI/YS51bnNoaWZ0KGQpOnVbbF09ZCl9YyYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGMsaS5uYW1lLHUpLGg9ITB9LGNiPWZ1bmN0aW9uKGUsdCxyKXtmb3IodmFyIGk9YXJndW1lbnRzLmxlbmd0aD4yLGE9MDthPHQubGVuZ3RoO2ErKylyPWk/dFthXS5jYWxsKGUscik6dFthXS5jYWxsKGUpO3JldHVybiBpP3I6dm9pZCAwfSx6Tj0oKCk9PntsZXQgZT1beWUoImRlZXMtaW5wdXQtY2hlY2tib3giKV0sdCxyPVtdLGksYT1vdCxuLG89W10scz1bXSxsLGM9W10sdT1bXTt2YXIgZD1jbGFzcyBleHRlbmRzIGF7c3RhdGlje2k9dGhpc31zdGF0aWN7bGV0IGg9dHlwZW9mIFN5bWJvbD09ImZ1bmN0aW9uIiYmU3ltYm9sLm1ldGFkYXRhP09iamVjdC5jcmVhdGUoYVtTeW1ib2wubWV0YWRhdGFdPz9udWxsKTp2b2lkIDA7bj1baih7dHlwZTpCb29sZWFufSldLGw9W2ooe3R5cGU6Qm9vbGVhbn0pXSxjNmUodGhpcyxudWxsLG4se2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJ2YWx1ZSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6Zj0+InZhbHVlImluIGYsZ2V0OmY9PmYudmFsdWUsc2V0OihmLHgpPT57Zi52YWx1ZT14fX0sbWV0YWRhdGE6aH0sbyxzKSxjNmUodGhpcyxudWxsLGwse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJpbmRldGVybWluYXRlIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpmPT4iaW5kZXRlcm1pbmF0ZSJpbiBmLGdldDpmPT5mLmluZGV0ZXJtaW5hdGUsc2V0OihmLHgpPT57Zi5pbmRldGVybWluYXRlPXh9fSxtZXRhZGF0YTpofSxjLHUpLGM2ZShudWxsLHQ9e3ZhbHVlOml9LGUse2tpbmQ6ImNsYXNzIixuYW1lOmkubmFtZSxtZXRhZGF0YTpofSxudWxsLHIpLGQ9aT10LnZhbHVlLGgmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShpLFN5bWJvbC5tZXRhZGF0YSx7ZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITAsdmFsdWU6aH0pfXN0YXRpYyBkZW1vPWdzcjtzdGF0aWMgZGVtb0dyb3Vwcz1bIklucHV0Il07I2U9Y2IodGhpcyxvLCExKTtnZXQgdmFsdWUoKXtyZXR1cm4gdGhpcy4jZX1zZXQgdmFsdWUoaCl7dGhpcy4jZT1ofSN0PShjYih0aGlzLHMpLGNiKHRoaXMsYywhMSkpO2dldCBpbmRldGVybWluYXRlKCl7cmV0dXJuIHRoaXMuI3R9c2V0IGluZGV0ZXJtaW5hdGUoaCl7dGhpcy4jdD1ofWNvbnN0cnVjdG9yKCl7c3VwZXIoKSxjYih0aGlzLHUpLHRoaXMubGFiZWxQb3NpdGlvbj0icmlnaHQifXN0YXRpYyBzdHlsZXM9W0RlLC4uLm90LmJhc2VTdHlsZXMsbS5kZWZhdWx0U3R5bGVzLG9lYAogICAgICAgIC8qIFRPRE86IE1pZ3JhdGUgaGFyZGNvZGVkIHZhbHVlcyB0byAtLWRlZXMtKiBDU1MgdmFyaWFibGVzICovCiAgICAgICAgKiB7CiAgICAgICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94OwogICAgICAgIH0KCiAgICAgICAgOmhvc3QgewogICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICAgICAgY3Vyc29yOiBkZWZhdWx0OwogICAgICAgICAgZm9udC1mYW1pbHk6ICR7SXJ9OwogICAgICAgIH0KCiAgICAgICAgLm1haW5jb250YWluZXIgewogICAgICAgICAgZGlzcGxheTogaW5saW5lLWZsZXg7CiAgICAgICAgICBhbGlnbi1pdGVtczogZmxleC1zdGFydDsKICAgICAgICAgIGdhcDogOHB4OwogICAgICAgICAgY3Vyc29yOiBwb2ludGVyOwogICAgICAgICAgdXNlci1zZWxlY3Q6IG5vbmU7CiAgICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC4xNXMgZWFzZTsKICAgICAgICB9CgogICAgICAgIC5jaGVja2JveCB7CiAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgICAgICBoZWlnaHQ6IDE4cHg7CiAgICAgICAgICB3aWR0aDogMThweDsKICAgICAgICAgIGZsZXgtc2hyaW5rOiAwOwogICAgICAgICAgYm9yZGVyLXJhZGl1czogNHB4OwogICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHttLmJkVGhlbWUoImhzbCgwIDAlIDg5LjglKSIsImhzbCgwIDAlIDE0LjklKSIpfTsKICAgICAgICAgIGJhY2tncm91bmQ6ICR7bS5iZFRoZW1lKCJoc2woMCAwJSAxMDAlKSIsImhzbCgwIDAlIDMuOSUpIil9OwogICAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuMTVzIGVhc2U7CiAgICAgICAgICBtYXJnaW4tdG9wOiAxcHg7CiAgICAgICAgfQoKICAgICAgICAubWFpbmNvbnRhaW5lcjpob3ZlciAuY2hlY2tib3ggewogICAgICAgICAgYm9yZGVyLWNvbG9yOiAke20uYmRUaGVtZSgiaHNsKDAgMCUgNzkuOCUpIiwiaHNsKDAgMCUgMjAuOSUpIil9OwogICAgICAgIH0KCiAgICAgICAgLmNoZWNrYm94LnNlbGVjdGVkIHsKICAgICAgICAgIGJhY2tncm91bmQ6ICR7bS5iZFRoZW1lKCJoc2woMjIyLjIgNDcuNCUgNTEuMiUpIiwiaHNsKDIxNy4yIDkxLjIlIDU5LjglKSIpfTsKICAgICAgICAgIGJvcmRlci1jb2xvcjogJHttLmJkVGhlbWUoImhzbCgyMjIuMiA0Ny40JSA1MS4yJSkiLCJoc2woMjE3LjIgOTEuMiUgNTkuOCUpIil9OwogICAgICAgIH0KCiAgICAgICAgLmNoZWNrYm94OmZvY3VzLXZpc2libGUgewogICAgICAgICAgb3V0bGluZTogbm9uZTsKICAgICAgICAgIGJveC1zaGFkb3c6IDAgMCAwIDNweCAke20uYmRUaGVtZSgiaHNsKDIyMi4yIDQ3LjQlIDUxLjIlIC8gMC4xKSIsImhzbCgyMTcuMiA5MS4yJSA1OS44JSAvIDAuMSkiKX07CiAgICAgICAgfQoKICAgICAgICAvKiBDaGVja21hcmsgdXNpbmcgTHVjaWRlIGljb24gc3R5bGUgKi8KICAgICAgICAuY2hlY2tib3ggLmNoZWNrbWFyayB7CiAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgICAgICB0b3A6IDUwJTsKICAgICAgICAgIGxlZnQ6IDUwJTsKICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUsIC01MCUpOwogICAgICAgICAgb3BhY2l0eTogMDsKICAgICAgICAgIHRyYW5zaXRpb246IG9wYWNpdHkgMC4xNXMgZWFzZTsKICAgICAgICB9CgogICAgICAgIC5jaGVja2JveC5zZWxlY3RlZCAuY2hlY2ttYXJrIHsKICAgICAgICAgIG9wYWNpdHk6IDE7CiAgICAgICAgfQoKICAgICAgICAuY2hlY2tib3ggLmNoZWNrbWFyayBzdmcgewogICAgICAgICAgd2lkdGg6IDEycHg7CiAgICAgICAgICBoZWlnaHQ6IDEycHg7CiAgICAgICAgICBzdHJva2U6IHdoaXRlOwogICAgICAgICAgc3Ryb2tlLXdpZHRoOiAzOwogICAgICAgIH0KCiAgICAgICAgLyogRGlzYWJsZWQgc3RhdGUgKi8KICAgICAgICAubWFpbmNvbnRhaW5lci5kaXNhYmxlZCB7CiAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkOwogICAgICAgICAgb3BhY2l0eTogMC41OwogICAgICAgIH0KCiAgICAgICAgLmNoZWNrYm94LmRpc2FibGVkIHsKICAgICAgICAgIGJhY2tncm91bmQ6ICR7bS5iZFRoZW1lKCJoc2woMCAwJSA5NS4xJSkiLCJoc2woMCAwJSAxNC45JSkiKX07CiAgICAgICAgICBib3JkZXItY29sb3I6ICR7bS5iZFRoZW1lKCJoc2woMCAwJSA4OS44JSkiLCJoc2woMCAwJSAxNC45JSkiKX07CiAgICAgICAgfQoKICAgICAgICAvKiBMYWJlbCAqLwogICAgICAgIC5sYWJlbC1jb250YWluZXIgewogICAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgICAgICBnYXA6IDJweDsKICAgICAgICAgIGZsZXg6IDE7CiAgICAgICAgfQoKICAgICAgICAuY2hlY2tib3gtbGFiZWwgewogICAgICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDsKICAgICAgICAgIGxpbmUtaGVpZ2h0OiAyMHB4OwogICAgICAgICAgY29sb3I6ICR7bS5iZFRoZW1lKCJoc2woMCAwJSAxNSUpIiwiaHNsKDAgMCUgOTAlKSIpfTsKICAgICAgICAgIHRyYW5zaXRpb246IGNvbG9yIDAuMTVzIGVhc2U7CiAgICAgICAgICBsZXR0ZXItc3BhY2luZzogLTAuMDFlbTsKICAgICAgICB9CgogICAgICAgIC5tYWluY29udGFpbmVyOmhvdmVyIC5jaGVja2JveC1sYWJlbCB7CiAgICAgICAgICBjb2xvcjogJHttLmJkVGhlbWUoImhzbCgwIDAlIDklKSIsImhzbCgwIDAlIDk1JSkiKX07CiAgICAgICAgfQoKICAgICAgICAubWFpbmNvbnRhaW5lci5kaXNhYmxlZDpob3ZlciAuY2hlY2tib3gtbGFiZWwgewogICAgICAgICAgY29sb3I6ICR7bS5iZFRoZW1lKCJoc2woMCAwJSAxNSUpIiwiaHNsKDAgMCUgOTAlKSIpfTsKICAgICAgICB9CgogICAgICAgIC8qIERlc2NyaXB0aW9uICovCiAgICAgICAgLmRlc2NyaXB0aW9uLXRleHQgewogICAgICAgICAgZm9udC1zaXplOiAxMnB4OwogICAgICAgICAgY29sb3I6ICR7bS5iZFRoZW1lKCJoc2woMCAwJSA0NS4xJSkiLCJoc2woMCAwJSA2My45JSkiKX07CiAgICAgICAgICBsaW5lLWhlaWdodDogMS41OwogICAgICAgIH0KICAgIGBdO3JlbmRlcigpe3JldHVybiBDYAogICAgICA8ZGl2IGNsYXNzPSJpbnB1dC13cmFwcGVyIj4KICAgICAgICA8ZGl2IGNsYXNzPSJtYWluY29udGFpbmVyICR7dGhpcy5kaXNhYmxlZD8iZGlzYWJsZWQiOiIifSIgQGNsaWNrPSIke3RoaXMudG9nZ2xlU2VsZWN0ZWR9Ij4KICAgICAgICAgIDxkaXYgCiAgICAgICAgICAgIGNsYXNzPSJjaGVja2JveCAke3RoaXMudmFsdWU/InNlbGVjdGVkIjoiIn0gJHt0aGlzLmRpc2FibGVkPyJkaXNhYmxlZCI6IiJ9IiAKICAgICAgICAgICAgdGFiaW5kZXg9IiR7dGhpcy5kaXNhYmxlZD8iLTEiOiIwIn0iCiAgICAgICAgICAgIEBrZXlkb3duPSIke3RoaXMuaGFuZGxlS2V5ZG93bn0iCiAgICAgICAgICA+CiAgICAgICAgICAgICR7dGhpcy52YWx1ZT9DYAogICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iY2hlY2ttYXJrIj4KICAgICAgICAgICAgICAgICAgICA8c3ZnIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KICAgICAgICAgICAgICAgICAgICAgIDxwYXRoIGQ9Ik0yMCA2TDkgMTdMNCAxMiIgc3Ryb2tlPSJjdXJyZW50Q29sb3IiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIgc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCIvPgogICAgICAgICAgICAgICAgICAgIDwvc3ZnPgogICAgICAgICAgICAgICAgICA8L3NwYW4+CiAgICAgICAgICAgICAgICBgOnRoaXMuaW5kZXRlcm1pbmF0ZT9DYAogICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJjaGVja21hcmsiPgogICAgICAgICAgICAgICAgICAgICAgPHN2ZyB2aWV3Qm94PSIwIDAgMjQgMjQiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CiAgICAgICAgICAgICAgICAgICAgICAgIDxwYXRoIGQ9Ik01IDEySDE5IiBzdHJva2U9ImN1cnJlbnRDb2xvciIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBzdHJva2UtbGluZWpvaW49InJvdW5kIi8+CiAgICAgICAgICAgICAgICAgICAgICA8L3N2Zz4KICAgICAgICAgICAgICAgICAgICA8L3NwYW4+CiAgICAgICAgICAgICAgICAgIGA6Q2BgfQogICAgICAgICAgPC9kaXY+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJsYWJlbC1jb250YWluZXIiPgogICAgICAgICAgICAke3RoaXMubGFiZWw/Q2A8ZGl2IGNsYXNzPSJjaGVja2JveC1sYWJlbCI+JHt0aGlzLmxhYmVsfTwvZGl2PmA6IiJ9CiAgICAgICAgICAgICR7dGhpcy5kZXNjcmlwdGlvbj9DYDxkaXYgY2xhc3M9ImRlc2NyaXB0aW9uLXRleHQiPiR7dGhpcy5kZXNjcmlwdGlvbn08L2Rpdj5gOiIifQogICAgICAgICAgPC9kaXY+CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGl2PgogICAgYH1hc3luYyB0b2dnbGVTZWxlY3RlZCgpe3RoaXMuZGlzYWJsZWR8fCh0aGlzLnZhbHVlPSF0aGlzLnZhbHVlLHRoaXMuZGlzcGF0Y2hFdmVudChuZXcgQ3VzdG9tRXZlbnQoIm5ld1ZhbHVlIix7ZGV0YWlsOnRoaXMudmFsdWUsYnViYmxlczohMH0pKSx0aGlzLmNoYW5nZVN1YmplY3QubmV4dCh0aGlzKSl9Z2V0VmFsdWUoKXtyZXR1cm4gdGhpcy52YWx1ZX1zZXRWYWx1ZShoKXt0aGlzLnZhbHVlPWh9Zm9jdXMoKXtsZXQgaD10aGlzLnNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvcigiLmNoZWNrYm94Iik7aCYmaC5mb2N1cygpfWhhbmRsZUtleWRvd24oaCl7KGgua2V5PT09IiAifHxoLmtleT09PSJFbnRlciIpJiYoaC5wcmV2ZW50RGVmYXVsdCgpLHRoaXMudG9nZ2xlU2VsZWN0ZWQoKSl9c3RhdGlje2NiKGkscil9fTtyZXR1cm4gZD1pfSkoKX0pO3ZhciAkZD17fTtGZSgkZCx7YnJpZ2h0OigpPT5FZCxkYXJrOigpPT5Jb30pO3ZhciBJbyxFZCxQbz1wKCgpPT57SW89e2JsdWU6IiMwMDUwYjkiLGJsdWVBY3RpdmU6IiMwMDY5ZjIiLGJsdWVNdXRlZDoiIzAxMjQ1MiIsdGV4dDoiI2ZmZmZmZiJ9LEVkPXtibHVlOiIjMDA1MGI5IixibHVlQWN0aXZlOiIjMDA2OWYyIixibHVlTXV0ZWQ6IiMwMDY5ZjIiLHRleHQ6IiMzMzMzMzMifX0pO3ZhciB2c3IseHNyPXAoKCk9Pnt4ZSgpO0lkKCk7dnNyPSgpPT5DYAogIDxzdHlsZT4KICAgICR7b2VgCiAgICAgIC5kZW1vLWNvbnRhaW5lciB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICAgIGdhcDogMjRweDsKICAgICAgICBwYWRkaW5nOiAyNHB4OwogICAgICAgIG1heC13aWR0aDogMTIwMHB4OwogICAgICAgIG1hcmdpbjogMCBhdXRvOwogICAgICB9CiAgICAgIAogICAgICAuZGVtby1zZWN0aW9uIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke20uYmRUaGVtZSgiI2Y4ZjlmYSIsIiMxYTFhMWEiKX07CiAgICAgICAgYm9yZGVyLXJhZGl1czogOHB4OwogICAgICAgIHBhZGRpbmc6IDI0cHg7CiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHttLmJkVGhlbWUoIiNlMGUwZTAiLCIjMzMzIil9OwogICAgICB9CiAgICAgIAogICAgICAuZGVtby1zZWN0aW9uIGgzIHsKICAgICAgICBtYXJnaW4tdG9wOiAwOwogICAgICAgIG1hcmdpbi1ib3R0b206IDE2cHg7CiAgICAgICAgY29sb3I6ICR7bS5iZFRoZW1lKCIjMzMzIiwiI2ZmZiIpfTsKICAgICAgfQogICAgICAKICAgICAgLmRlbW8tc2VjdGlvbiBwIHsKICAgICAgICBjb2xvcjogJHttLmJkVGhlbWUoIiM2NjYiLCIjOTk5Iil9OwogICAgICAgIG1hcmdpbi1ib3R0b206IDE2cHg7CiAgICAgIH0KICAgICAgCiAgICAgIC5idXR0b24tZ3JpZCB7CiAgICAgICAgZGlzcGxheTogZ3JpZDsKICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdChhdXRvLWZpdCwgbWlubWF4KDE1MHB4LCAxZnIpKTsKICAgICAgICBnYXA6IDE2cHg7CiAgICAgIH0KICAgIGB9CiAgPC9zdHlsZT4KICAKICA8ZGl2IGNsYXNzPSJkZW1vLWNvbnRhaW5lciI+CiAgICA8ZGl2IGNsYXNzPSJkZW1vLXNlY3Rpb24iPgogICAgICA8aDM+SGVhZGVyIEJ1dHRvbnM8L2gzPgogICAgICA8cD5Nb2RhbHMgY2FuIGhhdmUgb3B0aW9uYWwgaGVhZGVyIGJ1dHRvbnMgZm9yIGhlbHAgYW5kIGNsb3NpbmcuPC9wPgogICAgICA8ZGl2IGNsYXNzPSJidXR0b24tZ3JpZCI+CiAgICAgICAgPGRlZXMtYnV0dG9uIEBjbGljaz0keygpPT57V3IuY3JlYXRlQW5kU2hvdyh7aGVhZGluZzoiV2l0aCBIZWxwIEJ1dHRvbiIsc2hvd0hlbHBCdXR0b246ITAsb25IZWxwOmFzeW5jKCk9PntsZXQgZT1hd2FpdCBXci5jcmVhdGVBbmRTaG93KHtoZWFkaW5nOiJIZWxwIix3aWR0aDoic21hbGwiLHNob3dDbG9zZUJ1dHRvbjohMCxzaG93SGVscEJ1dHRvbjohMSxjb250ZW50OkNgCiAgICAgICAgICAgICAgICAgIDxwPlRoaXMgaXMgdGhlIGhlbHAgY29udGVudCBmb3IgdGhlIG1vZGFsLjwvcD4KICAgICAgICAgICAgICAgICAgPHA+WW91IGNhbiBwcm92aWRlIGNvbnRleHQtc3BlY2lmaWMgaGVscCBoZXJlLjwvcD4KICAgICAgICAgICAgICAgIGAsbWVudU9wdGlvbnM6W3tuYW1lOiJHb3QgaXQiLGFjdGlvbjphc3luYyB0PT50LmRlc3Ryb3koKX1dfSl9LGNvbnRlbnQ6Q2AKICAgICAgICAgICAgICA8cD5UaGlzIG1vZGFsIGhhcyBhIGhlbHAgYnV0dG9uIGluIHRoZSBoZWFkZXIuIENsaWNrIGl0IHRvIHNlZSBoZWxwIGNvbnRlbnQuPC9wPgogICAgICAgICAgICAgIDxwPlRoZSBjbG9zZSBidXR0b24gaXMgYWxzbyB2aXNpYmxlIGJ5IGRlZmF1bHQuPC9wPgogICAgICAgICAgICBgLG1lbnVPcHRpb25zOlt7bmFtZToiT0siLGFjdGlvbjphc3luYyBlPT5lLmRlc3Ryb3koKX1dfSl9fT5XaXRoIEhlbHAgQnV0dG9uPC9kZWVzLWJ1dHRvbj4KICAgICAgICAKICAgICAgICA8ZGVlcy1idXR0b24gQGNsaWNrPSR7KCk9PntXci5jcmVhdGVBbmRTaG93KHtoZWFkaW5nOiJObyBDbG9zZSBCdXR0b24iLHNob3dDbG9zZUJ1dHRvbjohMSxjb250ZW50OkNgCiAgICAgICAgICAgICAgPHA+VGhpcyBtb2RhbCBoYXMgbm8gY2xvc2UgYnV0dG9uIGluIHRoZSBoZWFkZXIuPC9wPgogICAgICAgICAgICAgIDxwPllvdSBtdXN0IHVzZSB0aGUgYWN0aW9uIGJ1dHRvbnMgb3IgY2xpY2sgb3V0c2lkZSB0byBjbG9zZSBpdC48L3A+CiAgICAgICAgICAgIGAsbWVudU9wdGlvbnM6W3tuYW1lOiJDbG9zZSIsYWN0aW9uOmFzeW5jIGU9PmUuZGVzdHJveSgpfV19KX19Pk5vIENsb3NlIEJ1dHRvbjwvZGVlcy1idXR0b24+CiAgICAgICAgCiAgICAgICAgPGRlZXMtYnV0dG9uIEBjbGljaz0keygpPT57V3IuY3JlYXRlQW5kU2hvdyh7aGVhZGluZzoiQm90aCBCdXR0b25zIixzaG93SGVscEJ1dHRvbjohMCxzaG93Q2xvc2VCdXR0b246ITAsb25IZWxwOigpPT5hbGVydCgiSGVscCBjbGlja2VkISIpLGNvbnRlbnQ6Q2AKICAgICAgICAgICAgICA8cD5UaGlzIG1vZGFsIGhhcyBib3RoIGhlbHAgYW5kIGNsb3NlIGJ1dHRvbnMuPC9wPgogICAgICAgICAgICBgLG1lbnVPcHRpb25zOlt7bmFtZToiRG9uZSIsYWN0aW9uOmFzeW5jIGU9PmUuZGVzdHJveSgpfV19KX19PkJvdGggQnV0dG9uczwvZGVlcy1idXR0b24+CiAgICAgICAgCiAgICAgICAgPGRlZXMtYnV0dG9uIEBjbGljaz0keygpPT57V3IuY3JlYXRlQW5kU2hvdyh7aGVhZGluZzoiQ2xlYW4gSGVhZGVyIixzaG93Q2xvc2VCdXR0b246ITEsc2hvd0hlbHBCdXR0b246ITEsY29udGVudDpDYAogICAgICAgICAgICAgIDxwPlRoaXMgbW9kYWwgaGFzIGEgY2xlYW4gaGVhZGVyIHdpdGggbm8gYnV0dG9ucy48L3A+CiAgICAgICAgICAgIGAsbWVudU9wdGlvbnM6W3tuYW1lOiJDbG9zZSIsYWN0aW9uOmFzeW5jIGU9PmUuZGVzdHJveSgpfV19KX19PkNsZWFuIEhlYWRlcjwvZGVlcy1idXR0b24+CiAgICAgIDwvZGl2PgogICAgPC9kaXY+CiAgICAKICAgIDxkaXYgY2xhc3M9ImRlbW8tc2VjdGlvbiI+CiAgICAgIDxoMz5Nb2RhbCBXaWR0aCBWYXJpYXRpb25zPC9oMz4KICAgICAgPHA+TW9kYWxzIGNhbiBoYXZlIGRpZmZlcmVudCB3aWR0aHM6IHNtYWxsLCBtZWRpdW0sIGxhcmdlLCBmdWxsc2NyZWVuLCBvciBjdXN0b20gcGl4ZWwgdmFsdWVzLjwvcD4KICAgICAgPGRpdiBjbGFzcz0iYnV0dG9uLWdyaWQiPgogICAgICAgIDxkZWVzLWJ1dHRvbiBAY2xpY2s9JHsoKT0+e1dyLmNyZWF0ZUFuZFNob3coe2hlYWRpbmc6IlNtYWxsIE1vZGFsIix3aWR0aDoic21hbGwiLGNvbnRlbnQ6Q2AKICAgICAgICAgICAgICA8cD5UaGlzIGlzIGEgc21hbGwgbW9kYWwgd2l0aCBhIHdpZHRoIG9mIDM4MHB4LiBQZXJmZWN0IGZvciBzaW1wbGUgY29uZmlybWF0aW9ucyBvciBicmllZiBtZXNzYWdlcy48L3A+CiAgICAgICAgICAgIGAsbWVudU9wdGlvbnM6W3tuYW1lOiJDYW5jZWwiLGFjdGlvbjphc3luYyBlPT5lLmRlc3Ryb3koKX0se25hbWU6Ik9LIixhY3Rpb246YXN5bmMgZT0+ZS5kZXN0cm95KCl9XX0pfX0+U21hbGwgTW9kYWw8L2RlZXMtYnV0dG9uPgogICAgICAgIAogICAgICAgIDxkZWVzLWJ1dHRvbiBAY2xpY2s9JHsoKT0+e1dyLmNyZWF0ZUFuZFNob3coe2hlYWRpbmc6Ik1lZGl1bSBNb2RhbCAoRGVmYXVsdCkiLHdpZHRoOiJtZWRpdW0iLGNvbnRlbnQ6Q2AKICAgICAgICAgICAgICA8ZGVlcy1mb3JtPgogICAgICAgICAgICAgICAgPGRlZXMtaW5wdXQtdGV4dCAubGFiZWw9JHsiVXNlcm5hbWUifT48L2RlZXMtaW5wdXQtdGV4dD4KICAgICAgICAgICAgICAgIDxkZWVzLWlucHV0LXRleHQgLmxhYmVsPSR7IkVtYWlsIn0gLmlucHV0VHlwZT0keyJlbWFpbCJ9PjwvZGVlcy1pbnB1dC10ZXh0PgogICAgICAgICAgICAgICAgPGRlZXMtaW5wdXQtdGV4dCAubGFiZWw9JHsiUGFzc3dvcmQifSAuaW5wdXRUeXBlPSR7InBhc3N3b3JkIn0+PC9kZWVzLWlucHV0LXRleHQ+CiAgICAgICAgICAgICAgPC9kZWVzLWZvcm0+CiAgICAgICAgICAgIGAsbWVudU9wdGlvbnM6W3tuYW1lOiJDYW5jZWwiLGFjdGlvbjphc3luYyBlPT5lLmRlc3Ryb3koKX0se25hbWU6IlNpZ24gVXAiLGFjdGlvbjphc3luYyBlPT5lLmRlc3Ryb3koKX1dfSl9fT5NZWRpdW0gTW9kYWw8L2RlZXMtYnV0dG9uPgogICAgICAgIAogICAgICAgIDxkZWVzLWJ1dHRvbiBAY2xpY2s9JHsoKT0+e1dyLmNyZWF0ZUFuZFNob3coe2hlYWRpbmc6IkxhcmdlIE1vZGFsIix3aWR0aDoibGFyZ2UiLGNvbnRlbnQ6Q2AKICAgICAgICAgICAgICA8aDQ+V2lkZSBDb250ZW50IEFyZWE8L2g0PgogICAgICAgICAgICAgIDxwPlRoaXMgbGFyZ2UgbW9kYWwgaXMgODAwcHggd2lkZSBhbmQgcGVyZmVjdCBmb3IgZGlzcGxheWluZyBtb3JlIGNvbXBsZXggY29udGVudCBsaWtlIGZvcm1zIHdpdGggbXVsdGlwbGUgY29sdW1ucywgdGFibGVzLCBvciBkZXRhaWxlZCBpbmZvcm1hdGlvbi48L3A+CiAgICAgICAgICAgICAgPGRpdiBzdHlsZT0iZGlzcGxheTogZ3JpZDsgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAxZnIgMWZyOyBnYXA6IDE2cHg7IG1hcmdpbi10b3A6IDE2cHg7Ij4KICAgICAgICAgICAgICAgIDxkZWVzLWlucHV0LXRleHQgLmxhYmVsPSR7IkZpcnN0IE5hbWUifT48L2RlZXMtaW5wdXQtdGV4dD4KICAgICAgICAgICAgICAgIDxkZWVzLWlucHV0LXRleHQgLmxhYmVsPSR7Ikxhc3QgTmFtZSJ9PjwvZGVlcy1pbnB1dC10ZXh0PgogICAgICAgICAgICAgICAgPGRlZXMtaW5wdXQtdGV4dCAubGFiZWw9JHsiQ29tcGFueSJ9PjwvZGVlcy1pbnB1dC10ZXh0PgogICAgICAgICAgICAgICAgPGRlZXMtaW5wdXQtdGV4dCAubGFiZWw9JHsiUG9zaXRpb24ifT48L2RlZXMtaW5wdXQtdGV4dD4KICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgYCxtZW51T3B0aW9uczpbe25hbWU6IkNhbmNlbCIsYWN0aW9uOmFzeW5jIGU9PmUuZGVzdHJveSgpfSx7bmFtZToiU2F2ZSIsYWN0aW9uOmFzeW5jIGU9PmUuZGVzdHJveSgpfV19KX19PkxhcmdlIE1vZGFsPC9kZWVzLWJ1dHRvbj4KICAgICAgICAKICAgICAgICA8ZGVlcy1idXR0b24gQGNsaWNrPSR7KCk9PntXci5jcmVhdGVBbmRTaG93KHtoZWFkaW5nOiJGdWxsc2NyZWVuIEVkaXRvciIsd2lkdGg6ImZ1bGxzY3JlZW4iLHNob3dIZWxwQnV0dG9uOiEwLG9uSGVscDphc3luYygpPT57YWxlcnQoIkluIGEgcmVhbCBhcHAsIHRoaXMgd291bGQgc2hvdyBlZGl0b3IgZG9jdW1lbnRhdGlvbiIpfSxjb250ZW50OkNgCiAgICAgICAgICAgICAgPGg0PkZ1bGxzY3JlZW4gRXhwZXJpZW5jZSB3aXRoIEhlYWRlciBDb250cm9sczwvaDQ+CiAgICAgICAgICAgICAgPHA+VGhpcyBtb2RhbCB0YWtlcyB1cCBhbG1vc3QgdGhlIGVudGlyZSB2aWV3cG9ydCB3aXRoIGEgMjBweCBtYXJnaW4gb24gYWxsIHNpZGVzLiBUaGUgaGVhZGVyIGJ1dHRvbnMgYXJlIHBhcnRpY3VsYXJseSB1c2VmdWwgaW4gZnVsbHNjcmVlbiBtb2RlLjwvcD4KICAgICAgICAgICAgICA8cD5UaGUgY29udGVudCBhcmVhIGNhbiBiZSBhcyB0YWxsIGFzIG5lZWRlZCBhbmQgd2lsbCBzY3JvbGwgaWYgbmVjZXNzYXJ5LjwvcD4KICAgICAgICAgICAgICA8ZGl2IHN0eWxlPSJoZWlnaHQ6IDIwMHB4OyBiYWNrZ3JvdW5kOiAke20uYmRUaGVtZSgiI2YwZjBmMCIsIiMyYTJhMmEiKX07IGJvcmRlci1yYWRpdXM6IDhweDsgZGlzcGxheTogZmxleDsgYWxpZ24taXRlbXM6IGNlbnRlcjsganVzdGlmeS1jb250ZW50OiBjZW50ZXI7IG1hcmdpbi10b3A6IDE2cHg7Ij4KICAgICAgICAgICAgICAgIDxzcGFuIHN0eWxlPSJjb2xvcjogJHttLmJkVGhlbWUoIiM5OTkiLCIjNjY2Iil9Ij5MYXJnZSBjb250ZW50IGFyZWE8L3NwYW4+CiAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIGAsbWVudU9wdGlvbnM6W3tuYW1lOiJTYXZlIixhY3Rpb246YXN5bmMgZT0+ZS5kZXN0cm95KCl9LHtuYW1lOiJDYW5jZWwiLGFjdGlvbjphc3luYyBlPT5lLmRlc3Ryb3koKX1dfSl9fT5GdWxsc2NyZWVuIE1vZGFsPC9kZWVzLWJ1dHRvbj4KICAgICAgPC9kaXY+CiAgICA8L2Rpdj4KICAgIAogICAgPGRpdiBjbGFzcz0iZGVtby1zZWN0aW9uIj4KICAgICAgPGgzPkN1c3RvbSBXaWR0aCAmIENvbnN0cmFpbnRzPC9oMz4KICAgICAgPHA+WW91IGNhbiBhbHNvIHNldCBjdXN0b20gcGl4ZWwgd2lkdGhzIGFuZCBtaW4vbWF4IGNvbnN0cmFpbnRzLjwvcD4KICAgICAgPGRpdiBjbGFzcz0iYnV0dG9uLWdyaWQiPgogICAgICAgIDxkZWVzLWJ1dHRvbiBAY2xpY2s9JHsoKT0+e1dyLmNyZWF0ZUFuZFNob3coe2hlYWRpbmc6IkN1c3RvbSBXaWR0aCAoNzAwcHgpIix3aWR0aDo3MDAsY29udGVudDpDYAogICAgICAgICAgICAgIDxwPlRoaXMgbW9kYWwgaGFzIGEgY3VzdG9tIHdpZHRoIG9mIGV4YWN0bHkgNzAwIHBpeGVscy48L3A+CiAgICAgICAgICAgIGAsbWVudU9wdGlvbnM6W3tuYW1lOiJDbG9zZSIsYWN0aW9uOmFzeW5jIGU9PmUuZGVzdHJveSgpfV19KX19PkN1c3RvbSA3MDBweDwvZGVlcy1idXR0b24+CiAgICAgICAgCiAgICAgICAgPGRlZXMtYnV0dG9uIEBjbGljaz0keygpPT57V3IuY3JlYXRlQW5kU2hvdyh7aGVhZGluZzoiV2l0aCBNYXggV2lkdGgiLHdpZHRoOiJsYXJnZSIsbWF4V2lkdGg6NjAwLGNvbnRlbnQ6Q2AKICAgICAgICAgICAgICA8cD5UaGlzIG1vZGFsIGlzIHNldCB0byAnbGFyZ2UnIGJ1dCBjb25zdHJhaW5lZCBieSBhIG1heFdpZHRoIG9mIDYwMHB4LjwvcD4KICAgICAgICAgICAgYCxtZW51T3B0aW9uczpbe25hbWU6IkdvdCBpdCIsYWN0aW9uOmFzeW5jIGU9PmUuZGVzdHJveSgpfV19KX19Pk1heCBXaWR0aCA2MDBweDwvZGVlcy1idXR0b24+CiAgICAgICAgCiAgICAgICAgPGRlZXMtYnV0dG9uIEBjbGljaz0keygpPT57V3IuY3JlYXRlQW5kU2hvdyh7aGVhZGluZzoiV2l0aCBNaW4gV2lkdGgiLHdpZHRoOjMwMCxtaW5XaWR0aDo0MDAsY29udGVudDpDYAogICAgICAgICAgICAgIDxwPlRoaXMgbW9kYWwgd2lkdGggaXMgc2V0IHRvIDMwMHB4IGJ1dCBoYXMgYSBtaW5XaWR0aCBvZiA0MDBweCwgc28gaXQgd2lsbCBiZSA0MDBweCB3aWRlLjwvcD4KICAgICAgICAgICAgYCxtZW51T3B0aW9uczpbe25hbWU6Ik9LIixhY3Rpb246YXN5bmMgZT0+ZS5kZXN0cm95KCl9XX0pfX0+TWluIFdpZHRoIDQwMHB4PC9kZWVzLWJ1dHRvbj4KICAgICAgPC9kaXY+CiAgICA8L2Rpdj4KICAgIAogICAgPGRpdiBjbGFzcz0iZGVtby1zZWN0aW9uIj4KICAgICAgPGgzPkJ1dHRvbiBWYXJpYXRpb25zPC9oMz4KICAgICAgPHA+TW9kYWxzIGNhbiBoYXZlIGRpZmZlcmVudCBidXR0b24gY29uZmlndXJhdGlvbnMgd2l0aCBwcm9wZXIgc3BhY2luZy48L3A+CiAgICAgIDxkaXYgY2xhc3M9ImJ1dHRvbi1ncmlkIj4KICAgICAgICA8ZGVlcy1idXR0b24gQGNsaWNrPSR7KCk9PntXci5jcmVhdGVBbmRTaG93KHtoZWFkaW5nOiJNdWx0aXBsZSBBY3Rpb25zIixjb250ZW50OkNgCiAgICAgICAgICAgICAgPHA+VGhpcyBtb2RhbCBkZW1vbnN0cmF0ZXMgbXVsdGlwbGUgYnV0dG9ucyB3aXRoIHByb3BlciBzcGFjaW5nIGJldHdlZW4gdGhlbS48L3A+CiAgICAgICAgICAgIGAsbWVudU9wdGlvbnM6W3tuYW1lOiJEZWxldGUiLGFjdGlvbjphc3luYyBlPT5lLmRlc3Ryb3koKX0se25hbWU6IkNhbmNlbCIsYWN0aW9uOmFzeW5jIGU9PmUuZGVzdHJveSgpfSx7bmFtZToiU2F2ZSBDaGFuZ2VzIixhY3Rpb246YXN5bmMgZT0+ZS5kZXN0cm95KCl9XX0pfX0+VGhyZWUgQnV0dG9uczwvZGVlcy1idXR0b24+CiAgICAgICAgCiAgICAgICAgPGRlZXMtYnV0dG9uIEBjbGljaz0keygpPT57V3IuY3JlYXRlQW5kU2hvdyh7aGVhZGluZzoiU2luZ2xlIEFjdGlvbiIsY29udGVudDpDYAogICAgICAgICAgICAgIDxwPlNvbWV0aW1lcyB5b3UganVzdCBuZWVkIG9uZSBidXR0b24uPC9wPgogICAgICAgICAgICBgLG1lbnVPcHRpb25zOlt7bmFtZToiQWNrbm93bGVkZ2UiLGFjdGlvbjphc3luYyBlPT5lLmRlc3Ryb3koKX1dfSl9fT5TaW5nbGUgQnV0dG9uPC9kZWVzLWJ1dHRvbj4KICAgICAgICAKICAgICAgICA8ZGVlcy1idXR0b24gQGNsaWNrPSR7KCk9PntXci5jcmVhdGVBbmRTaG93KHtoZWFkaW5nOiJObyBBY3Rpb25zIixjb250ZW50OkNgCiAgICAgICAgICAgICAgPHA+VGhpcyBtb2RhbCBoYXMgbm8gYm90dG9tIGJ1dHRvbnMuIFVzZSB0aGUgWCBidXR0b24gb3IgY2xpY2sgb3V0c2lkZSB0byBjbG9zZS48L3A+CiAgICAgICAgICAgICAgPHAgc3R5bGU9Im1hcmdpbi10b3A6IDE2cHg7IGNvbG9yOiAke20uYmRUaGVtZSgiIzY2NiIsIiM5OTkiKX07Ij5UaGlzIGlzIHVzZWZ1bCBmb3IgaW5mb3JtYXRpb25hbCBtb2RhbHMgdGhhdCBkb24ndCByZXF1aXJlIHVzZXIgYWN0aW9uLjwvcD4KICAgICAgICAgICAgYCxtZW51T3B0aW9uczpbXX0pfX0+Tm8gQnV0dG9uczwvZGVlcy1idXR0b24+CiAgICAgICAgCiAgICAgICAgPGRlZXMtYnV0dG9uIEBjbGljaz0keygpPT57V3IuY3JlYXRlQW5kU2hvdyh7aGVhZGluZzoiTG9uZyBCdXR0b24gTGFiZWxzIixjb250ZW50OkNgCiAgICAgICAgICAgICAgPHA+VGVzdGluZyBidXR0b24gbGF5b3V0IHdpdGggbG9uZ2VyIGxhYmVscy48L3A+CiAgICAgICAgICAgIGAsbWVudU9wdGlvbnM6W3tuYW1lOiJEaXNjYXJkIEFsbCBDaGFuZ2VzIixhY3Rpb246YXN5bmMgZT0+ZS5kZXN0cm95KCl9LHtuYW1lOiJTYXZlIGFuZCBDb250aW51ZSBFZGl0aW5nIixhY3Rpb246YXN5bmMgZT0+ZS5kZXN0cm95KCl9XX0pfX0+TG9uZyBMYWJlbHM8L2RlZXMtYnV0dG9uPgogICAgICA8L2Rpdj4KICAgIDwvZGl2PgogICAgCiAgICA8ZGl2IGNsYXNzPSJkZW1vLXNlY3Rpb24iPgogICAgICA8aDM+UmVzcG9uc2l2ZSBCZWhhdmlvcjwvaDM+CiAgICAgIDxwPkFsbCBtb2RhbHMgYXV0b21hdGljYWxseSBiZWNvbWUgZnVsbC13aWR0aCBvbiBtb2JpbGUgZGV2aWNlcyAoPCA3NjhweCB2aWV3cG9ydCB3aWR0aCkgZm9yIGJldHRlciB1c2FiaWxpdHkuPC9wPgogICAgICA8ZGVlcy1idXR0b24gQGNsaWNrPSR7KCk9PntXci5jcmVhdGVBbmRTaG93KHtoZWFkaW5nOiJSZXNwb25zaXZlIE1vZGFsIix3aWR0aDoibGFyZ2UiLHNob3dIZWxwQnV0dG9uOiEwLG9uSGVscDooKT0+Y29uc29sZS5sb2coIkhlbHAgcmVxdWVzdGVkIGZvciByZXNwb25zaXZlIG1vZGFsIiksY29udGVudDpDYAogICAgICAgICAgICA8cD5SZXNpemUgeW91ciBicm93c2VyIHdpbmRvdyB0byBzZWUgaG93IHRoaXMgbW9kYWwgYWRhcHRzLiBPbiBtb2JpbGUgdmlld3BvcnRzLCBpdCB3aWxsIGF1dG9tYXRpY2FsbHkgdGFrZSB0aGUgZnVsbCB3aWR0aCBtaW51cyBtYXJnaW5zLjwvcD4KICAgICAgICAgICAgPHA+VGhlIGhlYWRlciBidXR0b25zIHJlbWFpbiBhY2Nlc3NpYmxlIGF0IGFsbCB2aWV3cG9ydCBzaXplcy48L3A+CiAgICAgICAgICBgLG1lbnVPcHRpb25zOlt7bmFtZToiQ2xvc2UiLGFjdGlvbjphc3luYyBlPT5lLmRlc3Ryb3koKX1dfSl9fT5UZXN0IFJlc3BvbnNpdmU8L2RlZXMtYnV0dG9uPgogICAgPC9kaXY+CiAgPC9kaXY+CmB9KTt2YXIgWW4saDEsV3IsSWQ9cCgoKT0+e1BvKCk7d2koKTt4bygpO1FhKCk7eHNyKCk7eGUoKTtLdCgpO3BjKCk7b3IoKTtKZSgpO1luPWZ1bmN0aW9uKGUsdCxyLGksYSxuKXtmdW5jdGlvbiBvKHkpe2lmKHkhPT12b2lkIDAmJnR5cGVvZiB5IT0iZnVuY3Rpb24iKXRocm93IG5ldyBUeXBlRXJyb3IoIkZ1bmN0aW9uIGV4cGVjdGVkIik7cmV0dXJuIHl9Zm9yKHZhciBzPWkua2luZCxsPXM9PT0iZ2V0dGVyIj8iZ2V0IjpzPT09InNldHRlciI/InNldCI6InZhbHVlIixjPSF0JiZlP2kuc3RhdGljP2U6ZS5wcm90b3R5cGU6bnVsbCx1PXR8fChjP09iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoYyxpLm5hbWUpOnt9KSxkLGg9ITEsZj1yLmxlbmd0aC0xO2Y+PTA7Zi0tKXt2YXIgeD17fTtmb3IodmFyIHYgaW4gaSl4W3ZdPXY9PT0iYWNjZXNzIj97fTppW3ZdO2Zvcih2YXIgdiBpbiBpLmFjY2Vzcyl4LmFjY2Vzc1t2XT1pLmFjY2Vzc1t2XTt4LmFkZEluaXRpYWxpemVyPWZ1bmN0aW9uKHkpe2lmKGgpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGFkZCBpbml0aWFsaXplcnMgYWZ0ZXIgZGVjb3JhdGlvbiBoYXMgY29tcGxldGVkIik7bi5wdXNoKG8oeXx8bnVsbCkpfTt2YXIgYj0oMCxyW2ZdKShzPT09ImFjY2Vzc29yIj97Z2V0OnUuZ2V0LHNldDp1LnNldH06dVtsXSx4KTtpZihzPT09ImFjY2Vzc29yIil7aWYoYj09PXZvaWQgMCljb250aW51ZTtpZihiPT09bnVsbHx8dHlwZW9mIGIhPSJvYmplY3QiKXRocm93IG5ldyBUeXBlRXJyb3IoIk9iamVjdCBleHBlY3RlZCIpOyhkPW8oYi5nZXQpKSYmKHUuZ2V0PWQpLChkPW8oYi5zZXQpKSYmKHUuc2V0PWQpLChkPW8oYi5pbml0KSkmJmEudW5zaGlmdChkKX1lbHNlKGQ9byhiKSkmJihzPT09ImZpZWxkIj9hLnVuc2hpZnQoZCk6dVtsXT1kKX1jJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoYyxpLm5hbWUsdSksaD0hMH0saDE9ZnVuY3Rpb24oZSx0LHIpe2Zvcih2YXIgaT1hcmd1bWVudHMubGVuZ3RoPjIsYT0wO2E8dC5sZW5ndGg7YSsrKXI9aT90W2FdLmNhbGwoZSxyKTp0W2FdLmNhbGwoZSk7cmV0dXJuIGk/cjp2b2lkIDB9LFdyPSgoKT0+e2xldCBlPVt5ZSgiZGVlcy1tb2RhbCIpXSx0LHI9W10saSxhPXplLG4sbz1bXSxzPVtdLGwsYz1bXSx1PVtdLGQsaD1bXSxmPVtdLHgsdj1bXSxiPVtdLHksdz1bXSxrPVtdLE8sej1bXSxNPVtdLEYsRD1bXSxOPVtdLFIsXz1bXSxTPVtdLCQsVD1bXSxFPVtdLHEsQj1bXSxHPVtdLGVlLFA9W10sZ2U9W10sd2UsST1bXSxuZT1bXTt2YXIga2U9Y2xhc3MgZXh0ZW5kcyBhe3N0YXRpY3tpPXRoaXN9c3RhdGlje2xldCBZPXR5cGVvZiBTeW1ib2w9PSJmdW5jdGlvbiImJlN5bWJvbC5tZXRhZGF0YT9PYmplY3QuY3JlYXRlKGFbU3ltYm9sLm1ldGFkYXRhXT8/bnVsbCk6dm9pZCAwO249W2ooe3R5cGU6U3RyaW5nfSldLGw9W2ZlKHt9KV0sZD1bZmUoe30pXSx4PVtqKHt0eXBlOlN0cmluZ30pXSx5PVtqKHt0eXBlOk51bWJlcn0pXSxPPVtqKHt0eXBlOk51bWJlcn0pXSxGPVtqKHt0eXBlOkJvb2xlYW59KV0sUj1baih7dHlwZTpCb29sZWFufSldLCQ9W2ooe2F0dHJpYnV0ZTohMX0pXSxxPVtqKHt0eXBlOkJvb2xlYW59KV0sZWU9W2ooe3R5cGU6TnVtYmVyfSldLHdlPVtmZSgpXSxZbih0aGlzLG51bGwsbix7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImhlYWRpbmciLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOkE9PiJoZWFkaW5nImluIEEsZ2V0OkE9PkEuaGVhZGluZyxzZXQ6KEEsTCk9PntBLmhlYWRpbmc9TH19LG1ldGFkYXRhOll9LG8scyksWW4odGhpcyxudWxsLGwse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJjb250ZW50IixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpBPT4iY29udGVudCJpbiBBLGdldDpBPT5BLmNvbnRlbnQsc2V0OihBLEwpPT57QS5jb250ZW50PUx9fSxtZXRhZGF0YTpZfSxjLHUpLFluKHRoaXMsbnVsbCxkLHtraW5kOiJhY2Nlc3NvciIsbmFtZToibWVudU9wdGlvbnMiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOkE9PiJtZW51T3B0aW9ucyJpbiBBLGdldDpBPT5BLm1lbnVPcHRpb25zLHNldDooQSxMKT0+e0EubWVudU9wdGlvbnM9TH19LG1ldGFkYXRhOll9LGgsZiksWW4odGhpcyxudWxsLHgse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJ3aWR0aCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6QT0+IndpZHRoImluIEEsZ2V0OkE9PkEud2lkdGgsc2V0OihBLEwpPT57QS53aWR0aD1MfX0sbWV0YWRhdGE6WX0sdixiKSxZbih0aGlzLG51bGwseSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6Im1heFdpZHRoIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpBPT4ibWF4V2lkdGgiaW4gQSxnZXQ6QT0+QS5tYXhXaWR0aCxzZXQ6KEEsTCk9PntBLm1heFdpZHRoPUx9fSxtZXRhZGF0YTpZfSx3LGspLFluKHRoaXMsbnVsbCxPLHtraW5kOiJhY2Nlc3NvciIsbmFtZToibWluV2lkdGgiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOkE9PiJtaW5XaWR0aCJpbiBBLGdldDpBPT5BLm1pbldpZHRoLHNldDooQSxMKT0+e0EubWluV2lkdGg9TH19LG1ldGFkYXRhOll9LHosTSksWW4odGhpcyxudWxsLEYse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJzaG93Q2xvc2VCdXR0b24iLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOkE9PiJzaG93Q2xvc2VCdXR0b24iaW4gQSxnZXQ6QT0+QS5zaG93Q2xvc2VCdXR0b24sc2V0OihBLEwpPT57QS5zaG93Q2xvc2VCdXR0b249TH19LG1ldGFkYXRhOll9LEQsTiksWW4odGhpcyxudWxsLFIse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJzaG93SGVscEJ1dHRvbiIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6QT0+InNob3dIZWxwQnV0dG9uImluIEEsZ2V0OkE9PkEuc2hvd0hlbHBCdXR0b24sc2V0OihBLEwpPT57QS5zaG93SGVscEJ1dHRvbj1MfX0sbWV0YWRhdGE6WX0sXyxTKSxZbih0aGlzLG51bGwsJCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6Im9uSGVscCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6QT0+Im9uSGVscCJpbiBBLGdldDpBPT5BLm9uSGVscCxzZXQ6KEEsTCk9PntBLm9uSGVscD1MfX0sbWV0YWRhdGE6WX0sVCxFKSxZbih0aGlzLG51bGwscSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6Im1vYmlsZUZ1bGxzY3JlZW4iLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOkE9PiJtb2JpbGVGdWxsc2NyZWVuImluIEEsZ2V0OkE9PkEubW9iaWxlRnVsbHNjcmVlbixzZXQ6KEEsTCk9PntBLm1vYmlsZUZ1bGxzY3JlZW49TH19LG1ldGFkYXRhOll9LEIsRyksWW4odGhpcyxudWxsLGVlLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiY29udGVudFBhZGRpbmciLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOkE9PiJjb250ZW50UGFkZGluZyJpbiBBLGdldDpBPT5BLmNvbnRlbnRQYWRkaW5nLHNldDooQSxMKT0+e0EuY29udGVudFBhZGRpbmc9TH19LG1ldGFkYXRhOll9LFAsZ2UpLFluKHRoaXMsbnVsbCx3ZSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6Im1vZGFsWkluZGV4IixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpBPT4ibW9kYWxaSW5kZXgiaW4gQSxnZXQ6QT0+QS5tb2RhbFpJbmRleCxzZXQ6KEEsTCk9PntBLm1vZGFsWkluZGV4PUx9fSxtZXRhZGF0YTpZfSxJLG5lKSxZbihudWxsLHQ9e3ZhbHVlOml9LGUse2tpbmQ6ImNsYXNzIixuYW1lOmkubmFtZSxtZXRhZGF0YTpZfSxudWxsLHIpLGtlPWk9dC52YWx1ZSxZJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoaSxTeW1ib2wubWV0YWRhdGEse2VudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwLHZhbHVlOll9KX1zdGF0aWMgZGVtbz12c3I7c3RhdGljIGRlbW9Hcm91cHM9WyJPdmVybGF5Il07c3RhdGljIGFzeW5jIGNyZWF0ZUFuZFNob3coWSl7bGV0IEE9ZG9jdW1lbnQuYm9keSxMPW5ldyBrZTtyZXR1cm4gTC5oZWFkaW5nPVkuaGVhZGluZyxMLmNvbnRlbnQ9WS5jb250ZW50LEwubWVudU9wdGlvbnM9WS5tZW51T3B0aW9ucyxZLndpZHRoJiYoTC53aWR0aD1ZLndpZHRoKSxZLm1heFdpZHRoJiYoTC5tYXhXaWR0aD1ZLm1heFdpZHRoKSxZLm1pbldpZHRoJiYoTC5taW5XaWR0aD1ZLm1pbldpZHRoKSxZLnNob3dDbG9zZUJ1dHRvbiE9PXZvaWQgMCYmKEwuc2hvd0Nsb3NlQnV0dG9uPVkuc2hvd0Nsb3NlQnV0dG9uKSxZLnNob3dIZWxwQnV0dG9uIT09dm9pZCAwJiYoTC5zaG93SGVscEJ1dHRvbj1ZLnNob3dIZWxwQnV0dG9uKSxZLm9uSGVscCYmKEwub25IZWxwPVkub25IZWxwKSxZLm1vYmlsZUZ1bGxzY3JlZW4hPT12b2lkIDAmJihMLm1vYmlsZUZ1bGxzY3JlZW49WS5tb2JpbGVGdWxsc2NyZWVuKSxZLmNvbnRlbnRQYWRkaW5nIT09dm9pZCAwJiYoTC5jb250ZW50UGFkZGluZz1ZLmNvbnRlbnRQYWRkaW5nKSxMLndpbmRvd0xheWVyPWF3YWl0ICRvLmNyZWF0ZUFuZFNob3coe2JsdXI6ITB9KSxMLndpbmRvd0xheWVyLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIixhc3luYygpPT57YXdhaXQgTC5kZXN0cm95KCl9KSxBLmFwcGVuZChMLndpbmRvd0xheWVyKSxBLmFwcGVuZChMKSxMLm1vZGFsWkluZGV4PUtyLmdldE5leHRaSW5kZXgoKSxLci5yZWdpc3RlcihMLEwubW9kYWxaSW5kZXgpLEx9I2U9aDEodGhpcyxvLCIiKTtnZXQgaGVhZGluZygpe3JldHVybiB0aGlzLiNlfXNldCBoZWFkaW5nKFkpe3RoaXMuI2U9WX0jdD0oaDEodGhpcyxzKSxoMSh0aGlzLGMsdm9pZCAwKSk7Z2V0IGNvbnRlbnQoKXtyZXR1cm4gdGhpcy4jdH1zZXQgY29udGVudChZKXt0aGlzLiN0PVl9I3I9KGgxKHRoaXMsdSksaDEodGhpcyxoLFtdKSk7Z2V0IG1lbnVPcHRpb25zKCl7cmV0dXJuIHRoaXMuI3J9c2V0IG1lbnVPcHRpb25zKFkpe3RoaXMuI3I9WX0jaT0oaDEodGhpcyxmKSxoMSh0aGlzLHYsIm1lZGl1bSIpKTtnZXQgd2lkdGgoKXtyZXR1cm4gdGhpcy4jaX1zZXQgd2lkdGgoWSl7dGhpcy4jaT1ZfSNhPShoMSh0aGlzLGIpLGgxKHRoaXMsdyx2b2lkIDApKTtnZXQgbWF4V2lkdGgoKXtyZXR1cm4gdGhpcy4jYX1zZXQgbWF4V2lkdGgoWSl7dGhpcy4jYT1ZfSNuPShoMSh0aGlzLGspLGgxKHRoaXMseix2b2lkIDApKTtnZXQgbWluV2lkdGgoKXtyZXR1cm4gdGhpcy4jbn1zZXQgbWluV2lkdGgoWSl7dGhpcy4jbj1ZfSNvPShoMSh0aGlzLE0pLGgxKHRoaXMsRCwhMCkpO2dldCBzaG93Q2xvc2VCdXR0b24oKXtyZXR1cm4gdGhpcy4jb31zZXQgc2hvd0Nsb3NlQnV0dG9uKFkpe3RoaXMuI289WX0jcz0oaDEodGhpcyxOKSxoMSh0aGlzLF8sITEpKTtnZXQgc2hvd0hlbHBCdXR0b24oKXtyZXR1cm4gdGhpcy4jc31zZXQgc2hvd0hlbHBCdXR0b24oWSl7dGhpcy4jcz1ZfSNsPShoMSh0aGlzLFMpLGgxKHRoaXMsVCx2b2lkIDApKTtnZXQgb25IZWxwKCl7cmV0dXJuIHRoaXMuI2x9c2V0IG9uSGVscChZKXt0aGlzLiNsPVl9I2M9KGgxKHRoaXMsRSksaDEodGhpcyxCLCExKSk7Z2V0IG1vYmlsZUZ1bGxzY3JlZW4oKXtyZXR1cm4gdGhpcy4jY31zZXQgbW9iaWxlRnVsbHNjcmVlbihZKXt0aGlzLiNjPVl9I2Q9KGgxKHRoaXMsRyksaDEodGhpcyxQLDE2KSk7Z2V0IGNvbnRlbnRQYWRkaW5nKCl7cmV0dXJuIHRoaXMuI2R9c2V0IGNvbnRlbnRQYWRkaW5nKFkpe3RoaXMuI2Q9WX0jdT0oaDEodGhpcyxnZSksaDEodGhpcyxJLDFlMykpO2dldCBtb2RhbFpJbmRleCgpe3JldHVybiB0aGlzLiN1fXNldCBtb2RhbFpJbmRleChZKXt0aGlzLiN1PVl9Y29uc3RydWN0b3IoKXtzdXBlcigpfXN0YXRpYyBzdHlsZXM9W0RlLG0uZGVmYXVsdFN0eWxlcyxvZWAKICAgICAgLyogVE9ETzogTWlncmF0ZSBoYXJkY29kZWQgdmFsdWVzIHRvIC0tZGVlcy0qIENTUyB2YXJpYWJsZXMgKi8KICAgICAgOmhvc3QgewogICAgICAgIGZvbnQtZmFtaWx5OiAke0lyfTsKICAgICAgICBjb2xvcjogJHttLmJkVGhlbWUoIiMzMzMiLCIjZmZmIil9OwogICAgICAgIHdpbGwtY2hhbmdlOiB0cmFuc2Zvcm07CiAgICAgIH0KICAgICAgLm1vZGFsQ29udGFpbmVyIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIHBvc2l0aW9uOiBmaXhlZDsKICAgICAgICB0b3A6IDBweDsKICAgICAgICBsZWZ0OiAwcHg7CiAgICAgICAgd2lkdGg6IDEwMHZ3OwogICAgICAgIGhlaWdodDogMTAwdmg7CiAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOwogICAgICB9CiAgICAgIC5tb2RhbCB7CiAgICAgICAgd2lsbC1jaGFuZ2U6IHRyYW5zZm9ybTsKICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMHB4KSBzY2FsZSgwLjk1KTsKICAgICAgICBvcGFjaXR5OiAwOwogICAgICAgIG1pbi1oZWlnaHQ6IDEyMHB4OwogICAgICAgIG1heC1oZWlnaHQ6IGNhbGMoMTAwdmggLSA0MHB4KTsKICAgICAgICBiYWNrZ3JvdW5kOiAke20uYmRUaGVtZSgiI2ZmZmZmZiIsIiMwOTA5MGIiKX07CiAgICAgICAgYm9yZGVyLXJhZGl1czogNnB4OwogICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICR7bS5iZFRoZW1lKCIjZTVlN2ViIiwiIzI3MjcyYSIpfTsKICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC4ycyBlYXNlOwogICAgICAgIG92ZXJmbG93OiBoaWRkZW47CiAgICAgICAgYm94LXNoYWRvdzogMCAxcHggM3B4IHJnYmEoMCwgMCwgMCwgMC4xKSwgMCAxcHggMnB4IHJnYmEoMCwgMCwgMCwgMC4wNik7CiAgICAgICAgbWFyZ2luOiAyMHB4OwogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgICBvdmVyc2Nyb2xsLWJlaGF2aW9yOiBjb250YWluOwogICAgICB9CgogICAgICAvKiBXaWR0aCB2YXJpYXRpb25zICovCiAgICAgIC5tb2RhbC53aWR0aC1zbWFsbCB7CiAgICAgICAgd2lkdGg6IDM4MHB4OwogICAgICB9CgogICAgICAubW9kYWwud2lkdGgtbWVkaXVtIHsKICAgICAgICB3aWR0aDogNTYwcHg7CiAgICAgIH0KCiAgICAgIC5tb2RhbC53aWR0aC1sYXJnZSB7CiAgICAgICAgd2lkdGg6IDgwMHB4OwogICAgICB9CgogICAgICAubW9kYWwud2lkdGgtZnVsbHNjcmVlbiB7CiAgICAgICAgd2lkdGg6IGNhbGMoMTAwdncgLSA0MHB4KTsKICAgICAgICBoZWlnaHQ6IGNhbGMoMTAwdmggLSA0MHB4KTsKICAgICAgICBtYXgtaGVpZ2h0OiBjYWxjKDEwMHZoIC0gNDBweCk7CiAgICAgIH0KCiAgICAgIEBtZWRpYSAobWF4LXdpZHRoOiA3NjhweCkgewogICAgICAgIC5tb2RhbCB7CiAgICAgICAgICB3aWR0aDogY2FsYygxMDB2dyAtIDQwcHgpICFpbXBvcnRhbnQ7CiAgICAgICAgICBtYXgtd2lkdGg6IG5vbmUgIWltcG9ydGFudDsKICAgICAgICB9CiAgICAgICAgCiAgICAgICAgLyogQWxsb3cgZnVsbCBoZWlnaHQgb24gbW9iaWxlIHdoZW4gY29udGVudCBuZWVkcyBpdCAqLwogICAgICAgIC5tb2RhbENvbnRhaW5lciB7CiAgICAgICAgICBwYWRkaW5nOiAxMHB4OwogICAgICAgIH0KICAgICAgICAKICAgICAgICAubW9kYWwgewogICAgICAgICAgbWFyZ2luOiAxMHB4OwogICAgICAgICAgbWF4LWhlaWdodDogY2FsYygxMDB2aCAtIDIwcHgpOwogICAgICAgIH0KICAgICAgICAKICAgICAgICAvKiBGdWxsIHNjcmVlbiBtb2RlIG9uIG1vYmlsZSAqLwogICAgICAgIC5tb2RhbC5tb2JpbGUtZnVsbHNjcmVlbiB7CiAgICAgICAgICB3aWR0aDogMTAwdncgIWltcG9ydGFudDsKICAgICAgICAgIGhlaWdodDogMTAwdmggIWltcG9ydGFudDsKICAgICAgICAgIG1heC1oZWlnaHQ6IDEwMHZoICFpbXBvcnRhbnQ7CiAgICAgICAgICBtYXJnaW46IDA7CiAgICAgICAgICBib3JkZXItcmFkaXVzOiAwOwogICAgICAgICAgYm9yZGVyOiBub25lOwogICAgICAgIH0KICAgICAgfQoKICAgICAgLm1vZGFsLnNob3cgewogICAgICAgIG9wYWNpdHk6IDE7CiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDBweCkgc2NhbGUoMSk7CiAgICAgIH0KCiAgICAgIC5tb2RhbC5zaG93LnByZWRlc3Ryb3kgewogICAgICAgIG9wYWNpdHk6IDA7CiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDEwcHgpIHNjYWxlKDEpOwogICAgICB9CgogICAgICAubW9kYWwgLmhlYWRpbmcgewogICAgICAgIGhlaWdodDogNDBweDsKICAgICAgICBtaW4taGVpZ2h0OiA0MHB4OwogICAgICAgIGZvbnQtZmFtaWx5OiAke0lyfTsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuOwogICAgICAgIHBhZGRpbmc6IDAgMTJweDsKICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHttLmJkVGhlbWUoIiNlNWU3ZWIiLCIjMjcyNzJhIil9OwogICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgICBmbGV4LXNocmluazogMDsKICAgICAgfQoKICAgICAgLm1vZGFsIC5oZWFkaW5nIC5oZWFkZXItYnV0dG9ucyB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGdhcDogNHB4OwogICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgICByaWdodDogOHB4OwogICAgICAgIHRvcDogNTAlOwogICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTsKICAgICAgfQoKICAgICAgLm1vZGFsIC5oZWFkaW5nIC5oZWFkZXItYnV0dG9uIHsKICAgICAgICB3aWR0aDogMjhweDsKICAgICAgICBoZWlnaHQ6IDI4cHg7CiAgICAgICAgYm9yZGVyLXJhZGl1czogNHB4OwogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKICAgICAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuMTVzIGVhc2U7CiAgICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7CiAgICAgICAgY29sb3I6ICR7bS5iZFRoZW1lKCIjNzE3MTdhIiwiI2ExYTFhYSIpfTsKICAgICAgfQoKICAgICAgLm1vZGFsIC5oZWFkaW5nIC5oZWFkZXItYnV0dG9uOmhvdmVyIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke20uYmRUaGVtZSgiI2Y0ZjRmNSIsIiMyNzI3MmEiKX07CiAgICAgICAgY29sb3I6ICR7bS5iZFRoZW1lKCIjMDkwOTBiIiwiI2ZhZmFmYSIpfTsKICAgICAgfQoKICAgICAgLm1vZGFsIC5oZWFkaW5nIC5oZWFkZXItYnV0dG9uOmFjdGl2ZSB7CiAgICAgICAgYmFja2dyb3VuZDogJHttLmJkVGhlbWUoIiNlNWU3ZWIiLCIjM2YzZjQ2Iil9OwogICAgICB9CgogICAgICAubW9kYWwgLmhlYWRpbmcgLmhlYWRlci1idXR0b24gZGVlcy1pY29uIHsKICAgICAgICB3aWR0aDogMTZweDsKICAgICAgICBoZWlnaHQ6IDE2cHg7CiAgICAgICAgZGlzcGxheTogYmxvY2s7CiAgICAgIH0KCiAgICAgIC5tb2RhbCAuaGVhZGluZyAuaGVhZGluZy10ZXh0IHsKICAgICAgICBmbGV4OiAxOwogICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjsKICAgICAgICBmb250LXdlaWdodDogNjAwOwogICAgICAgIGZvbnQtc2l6ZTogMTRweDsKICAgICAgICBsaW5lLWhlaWdodDogNDBweDsKICAgICAgICBwYWRkaW5nOiAwIDQwcHg7CiAgICAgICAgY29sb3I6ICR7bS5iZFRoZW1lKCIjMDkwOTBiIiwiI2ZhZmFmYSIpfTsKICAgICAgfQoKICAgICAgLm1vZGFsIC5jb250ZW50IHsKICAgICAgICBmbGV4OiAxOwogICAgICAgIG92ZXJmbG93LXk6IGF1dG87CiAgICAgICAgb3ZlcmZsb3cteDogaGlkZGVuOwogICAgICAgIG92ZXJzY3JvbGwtYmVoYXZpb3I6IGNvbnRhaW47CiAgICAgIH0KICAgICAgLm1vZGFsIC5ib3R0b21CdXR0b25zIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7CiAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICR7bS5iZFRoZW1lKCIjZTVlN2ViIiwiIzI3MjcyYSIpfTsKICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kOwogICAgICAgIGdhcDogOHB4OwogICAgICAgIHBhZGRpbmc6IDhweDsKICAgICAgICBmbGV4LXNocmluazogMDsKICAgICAgfQoKICAgICAgLm1vZGFsIC5ib3R0b21CdXR0b25zIC5ib3R0b21CdXR0b24gewogICAgICAgIHBhZGRpbmc6IDhweCAxNnB4OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDRweDsKICAgICAgICBsaW5lLWhlaWdodDogMTZweDsKICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7CiAgICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7CiAgICAgICAgY3Vyc29yOiBwb2ludGVyOwogICAgICAgIHVzZXItc2VsZWN0OiBub25lOwogICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjE1cyBlYXNlOwogICAgICAgIGJhY2tncm91bmQ6ICR7bS5iZFRoZW1lKCIjZmZmZmZmIiwiIzI3MjcyYSIpfTsKICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAke20uYmRUaGVtZSgiI2U1ZTdlYiIsIiMzZjNmNDYiKX07CiAgICAgICAgY29sb3I6ICR7bS5iZFRoZW1lKCIjMDkwOTBiIiwiI2ZhZmFmYSIpfTsKICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwOwogICAgICB9CgogICAgICAubW9kYWwgLmJvdHRvbUJ1dHRvbnMgLmJvdHRvbUJ1dHRvbjpob3ZlciB7CiAgICAgICAgYmFja2dyb3VuZDogJHttLmJkVGhlbWUoIiNmNGY0ZjUiLCIjM2YzZjQ2Iil9OwogICAgICAgIGJvcmRlci1jb2xvcjogJHttLmJkVGhlbWUoIiNkMWQ1ZGIiLCIjNTI1MjViIil9OwogICAgICB9CiAgICAgIC5tb2RhbCAuYm90dG9tQnV0dG9ucyAuYm90dG9tQnV0dG9uOmFjdGl2ZSB7CiAgICAgICAgYmFja2dyb3VuZDogJHttLmJkVGhlbWUoIiNlNWU3ZWIiLCIjNTI1MjViIil9OwogICAgICB9CiAgICAgIC5tb2RhbCAuYm90dG9tQnV0dG9ucyAuYm90dG9tQnV0dG9uOmxhc3QtY2hpbGQgewogICAgICAgIGJvcmRlci1yaWdodDogbm9uZTsKICAgICAgfQoKICAgICAgLm1vZGFsIC5ib3R0b21CdXR0b25zIC5ib3R0b21CdXR0b24ucHJpbWFyeSB7CiAgICAgICAgYmFja2dyb3VuZDogJHttLmJkVGhlbWUoIiMzYjgyZjYiLCIjM2I4MmY2Iil9OwogICAgICAgIGJvcmRlci1jb2xvcjogJHttLmJkVGhlbWUoIiMzYjgyZjYiLCIjM2I4MmY2Iil9OwogICAgICAgIGNvbG9yOiAjZmZmZmZmOwogICAgICB9CiAgICAgIC5tb2RhbCAuYm90dG9tQnV0dG9ucyAuYm90dG9tQnV0dG9uLnByaW1hcnk6aG92ZXIgewogICAgICAgIGJhY2tncm91bmQ6ICR7bS5iZFRoZW1lKCIjMjU2M2ViIiwiIzI1NjNlYiIpfTsKICAgICAgICBib3JkZXItY29sb3I6ICR7bS5iZFRoZW1lKCIjMjU2M2ViIiwiIzI1NjNlYiIpfTsKICAgICAgfQogICAgICAubW9kYWwgLmJvdHRvbUJ1dHRvbnMgLmJvdHRvbUJ1dHRvbi5wcmltYXJ5OmFjdGl2ZSB7CiAgICAgICAgYmFja2dyb3VuZDogJHttLmJkVGhlbWUoIiMxZDRlZDgiLCIjMWQ0ZWQ4Iil9OwogICAgICAgIGJvcmRlci1jb2xvcjogJHttLmJkVGhlbWUoIiMxZDRlZDgiLCIjMWQ0ZWQ4Iil9OwogICAgICB9CiAgICBgXTtyZW5kZXIoKXtsZXQgWT10eXBlb2YgdGhpcy53aWR0aD09InN0cmluZyI/YHdpZHRoLSR7dGhpcy53aWR0aH1gOiIiLEE9dHlwZW9mIHRoaXMud2lkdGg9PSJudW1iZXIiP2Ake3RoaXMud2lkdGh9cHhgOiIiLEw9dGhpcy5tYXhXaWR0aD9gJHt0aGlzLm1heFdpZHRofXB4YDoiIixVPXRoaXMubWluV2lkdGg/YCR7dGhpcy5taW5XaWR0aH1weGA6IiIsVj10aGlzLm1vYmlsZUZ1bGxzY3JlZW4/Im1vYmlsZS1mdWxsc2NyZWVuIjoiIjtyZXR1cm4gQ2AKICAgICAgPHN0eWxlPgogICAgICAgICR7QT9gLm1vZGFsIHsgd2lkdGg6ICR7QX07IH1gOiIifQogICAgICAgICR7TD9gLm1vZGFsIHsgbWF4LXdpZHRoOiAke0x9OyB9YDoiIn0KICAgICAgICAke1U/YC5tb2RhbCB7IG1pbi13aWR0aDogJHtVfTsgfWA6IiJ9CiAgICAgIDwvc3R5bGU+CiAgICAgIDxkaXYgY2xhc3M9Im1vZGFsQ29udGFpbmVyIiBAY2xpY2s9JHt0aGlzLmhhbmRsZU91dHNpZGVDbGlja30gc3R5bGU9InotaW5kZXg6ICR7dGhpcy5tb2RhbFpJbmRleH0iPgogICAgICAgIDxkaXYgY2xhc3M9Im1vZGFsICR7WX0gJHtWfSI+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJoZWFkaW5nIj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0iaGVhZGluZy10ZXh0Ij4ke3RoaXMuaGVhZGluZ308L2Rpdj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0iaGVhZGVyLWJ1dHRvbnMiPgogICAgICAgICAgICAgICR7dGhpcy5zaG93SGVscEJ1dHRvbj9DYAogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iaGVhZGVyLWJ1dHRvbiIgQGNsaWNrPSR7dGhpcy5oYW5kbGVIZWxwfSB0aXRsZT0iSGVscCI+CiAgICAgICAgICAgICAgICAgIDxkZWVzLWljb24gLmljb249JHsibHVjaWRlOmhlbHBDaXJjbGUifT48L2RlZXMtaWNvbj4KICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgIGA6IiJ9CiAgICAgICAgICAgICAgJHt0aGlzLnNob3dDbG9zZUJ1dHRvbj9DYAogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iaGVhZGVyLWJ1dHRvbiIgQGNsaWNrPSR7KCk9PnRoaXMuZGVzdHJveSgpfSB0aXRsZT0iQ2xvc2UiPgogICAgICAgICAgICAgICAgICA8ZGVlcy1pY29uIC5pY29uPSR7Imx1Y2lkZTp4In0+PC9kZWVzLWljb24+CiAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICBgOiIifQogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIDwvZGl2PgogICAgICAgICAgPGRpdiBjbGFzcz0iY29udGVudCIgc3R5bGU9InBhZGRpbmc6ICR7dGhpcy5jb250ZW50UGFkZGluZ31weDsiPiR7dGhpcy5jb250ZW50fTwvZGl2PgogICAgICAgICAgJHt0aGlzLm1lbnVPcHRpb25zLmxlbmd0aD4wP0NgCiAgICAgICAgICAgIDxkaXYgY2xhc3M9ImJvdHRvbUJ1dHRvbnMiPgogICAgICAgICAgICAgICR7dGhpcy5tZW51T3B0aW9ucy5tYXAoKFgsZGUpPT5DYAogICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJib3R0b21CdXR0b24gJHtkZT09PXRoaXMubWVudU9wdGlvbnMubGVuZ3RoLTE/InByaW1hcnkiOiIifSAke1gubmFtZT09PSJPSyI/Im9rIjoiIn0iIEBjbGljaz0keygpPT57WC5hY3Rpb24odGhpcyl9fT4ke1gubmFtZX08L2Rpdj4KICAgICAgICAgICAgICAgIGApfQogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIGA6IiJ9CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGl2PgogICAgYH13aW5kb3dMYXllcj1oMSh0aGlzLG5lKTthc3luYyBmaXJzdFVwZGF0ZWQoWSl7c3VwZXIuZmlyc3RVcGRhdGVkKFkpLGF3YWl0KGF3YWl0IHRoaXMuZG9tdG9vbHNQcm9taXNlKS5jb252ZW5pZW5jZS5zbWFydGRlbGF5LmRlbGF5Rm9yKDMwKSx0aGlzLnNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvcigiLm1vZGFsIikuY2xhc3NMaXN0LmFkZCgic2hvdyIpfWFzeW5jIGhhbmRsZU91dHNpZGVDbGljayhZKXtZLnN0b3BQcm9wYWdhdGlvbigpO2xldCBBPXRoaXMuc2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yKCIubW9kYWxDb250YWluZXIiKTtZLnRhcmdldD09PUEmJmF3YWl0IHRoaXMuZGVzdHJveSgpfWFzeW5jIGRlc3Ryb3koKXtsZXQgWT1hd2FpdCB0aGlzLmRvbXRvb2xzUHJvbWlzZTt0aGlzLnNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvcigiLm1vZGFsIikuY2xhc3NMaXN0LmFkZCgicHJlZGVzdHJveSIpLGF3YWl0IFkuY29udmVuaWVuY2Uuc21hcnRkZWxheS5kZWxheUZvcigyMDApLGRvY3VtZW50LmJvZHkucmVtb3ZlQ2hpbGQodGhpcyksYXdhaXQgdGhpcy53aW5kb3dMYXllci5kZXN0cm95KCksS3IudW5yZWdpc3Rlcih0aGlzKX1hc3luYyBoYW5kbGVIZWxwKCl7dGhpcy5vbkhlbHAmJmF3YWl0IHRoaXMub25IZWxwKCl9c3RhdGlje2gxKGkscil9fTtyZXR1cm4ga2U9aX0pKCl9KTt2YXIgeXNyLHdzcj1wKCgpPT57eGUoKTt5c3I9KCk9PkNgCiAgICA8ZGVlcy1sYWJlbCAubGFiZWw9JHsiYSBsYWJlbCJ9PjwvZGVlcy1sYWJlbD4KICBgfSk7dmFyIFROLFBkLE1zcixlaD1wKCgpPT57d2koKTtQbygpO3hlKCk7d3NyKCk7SmUoKTtUTj1mdW5jdGlvbihlLHQscixpLGEsbil7ZnVuY3Rpb24gbyh5KXtpZih5IT09dm9pZCAwJiZ0eXBlb2YgeSE9ImZ1bmN0aW9uIil0aHJvdyBuZXcgVHlwZUVycm9yKCJGdW5jdGlvbiBleHBlY3RlZCIpO3JldHVybiB5fWZvcih2YXIgcz1pLmtpbmQsbD1zPT09ImdldHRlciI/ImdldCI6cz09PSJzZXR0ZXIiPyJzZXQiOiJ2YWx1ZSIsYz0hdCYmZT9pLnN0YXRpYz9lOmUucHJvdG90eXBlOm51bGwsdT10fHwoYz9PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGMsaS5uYW1lKTp7fSksZCxoPSExLGY9ci5sZW5ndGgtMTtmPj0wO2YtLSl7dmFyIHg9e307Zm9yKHZhciB2IGluIGkpeFt2XT12PT09ImFjY2VzcyI/e306aVt2XTtmb3IodmFyIHYgaW4gaS5hY2Nlc3MpeC5hY2Nlc3Nbdl09aS5hY2Nlc3Nbdl07eC5hZGRJbml0aWFsaXplcj1mdW5jdGlvbih5KXtpZihoKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBhZGQgaW5pdGlhbGl6ZXJzIGFmdGVyIGRlY29yYXRpb24gaGFzIGNvbXBsZXRlZCIpO24ucHVzaChvKHl8fG51bGwpKX07dmFyIGI9KDAscltmXSkocz09PSJhY2Nlc3NvciI/e2dldDp1LmdldCxzZXQ6dS5zZXR9OnVbbF0seCk7aWYocz09PSJhY2Nlc3NvciIpe2lmKGI9PT12b2lkIDApY29udGludWU7aWYoYj09PW51bGx8fHR5cGVvZiBiIT0ib2JqZWN0Iil0aHJvdyBuZXcgVHlwZUVycm9yKCJPYmplY3QgZXhwZWN0ZWQiKTsoZD1vKGIuZ2V0KSkmJih1LmdldD1kKSwoZD1vKGIuc2V0KSkmJih1LnNldD1kKSwoZD1vKGIuaW5pdCkpJiZhLnVuc2hpZnQoZCl9ZWxzZShkPW8oYikpJiYocz09PSJmaWVsZCI/YS51bnNoaWZ0KGQpOnVbbF09ZCl9YyYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGMsaS5uYW1lLHUpLGg9ITB9LFBkPWZ1bmN0aW9uKGUsdCxyKXtmb3IodmFyIGk9YXJndW1lbnRzLmxlbmd0aD4yLGE9MDthPHQubGVuZ3RoO2ErKylyPWk/dFthXS5jYWxsKGUscik6dFthXS5jYWxsKGUpO3JldHVybiBpP3I6dm9pZCAwfSxNc3I9KCgpPT57bGV0IGU9W3llKCJkZWVzLWxhYmVsIildLHQscj1bXSxpLGE9emUsbixvPVtdLHM9W10sbCxjPVtdLHU9W10sZCxoPVtdLGY9W107dmFyIHg9Y2xhc3MgZXh0ZW5kcyBhe3N0YXRpY3tpPXRoaXN9c3RhdGlje2xldCB2PXR5cGVvZiBTeW1ib2w9PSJmdW5jdGlvbiImJlN5bWJvbC5tZXRhZGF0YT9PYmplY3QuY3JlYXRlKGFbU3ltYm9sLm1ldGFkYXRhXT8/bnVsbCk6dm9pZCAwO249W2ooe3R5cGU6U3RyaW5nLHJlZmxlY3Q6ITB9KV0sbD1baih7dHlwZTpTdHJpbmcscmVmbGVjdDohMH0pXSxkPVtqKHt0eXBlOkJvb2xlYW4scmVmbGVjdDohMH0pXSxUTih0aGlzLG51bGwsbix7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImxhYmVsIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpiPT4ibGFiZWwiaW4gYixnZXQ6Yj0+Yi5sYWJlbCxzZXQ6KGIseSk9PntiLmxhYmVsPXl9fSxtZXRhZGF0YTp2fSxvLHMpLFROKHRoaXMsbnVsbCxsLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiZGVzY3JpcHRpb24iLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmI9PiJkZXNjcmlwdGlvbiJpbiBiLGdldDpiPT5iLmRlc2NyaXB0aW9uLHNldDooYix5KT0+e2IuZGVzY3JpcHRpb249eX19LG1ldGFkYXRhOnZ9LGMsdSksVE4odGhpcyxudWxsLGQse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJyZXF1aXJlZCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6Yj0+InJlcXVpcmVkImluIGIsZ2V0OmI9PmIucmVxdWlyZWQsc2V0OihiLHkpPT57Yi5yZXF1aXJlZD15fX0sbWV0YWRhdGE6dn0saCxmKSxUTihudWxsLHQ9e3ZhbHVlOml9LGUse2tpbmQ6ImNsYXNzIixuYW1lOmkubmFtZSxtZXRhZGF0YTp2fSxudWxsLHIpLHg9aT10LnZhbHVlLHYmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShpLFN5bWJvbC5tZXRhZGF0YSx7ZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITAsdmFsdWU6dn0pfXN0YXRpYyBkZW1vPXlzcjtzdGF0aWMgZGVtb0dyb3Vwcz1bIkxheW91dCIsIklucHV0Il07I2U9UGQodGhpcyxvLCIiKTtnZXQgbGFiZWwoKXtyZXR1cm4gdGhpcy4jZX1zZXQgbGFiZWwodil7dGhpcy4jZT12fSN0PShQZCh0aGlzLHMpLFBkKHRoaXMsYyx2b2lkIDApKTtnZXQgZGVzY3JpcHRpb24oKXtyZXR1cm4gdGhpcy4jdH1zZXQgZGVzY3JpcHRpb24odil7dGhpcy4jdD12fSNyPShQZCh0aGlzLHUpLFBkKHRoaXMsaCwhMSkpO2dldCByZXF1aXJlZCgpe3JldHVybiB0aGlzLiNyfXNldCByZXF1aXJlZCh2KXt0aGlzLiNyPXZ9c3RhdGljIHN0eWxlcz1bRGUsbS5kZWZhdWx0U3R5bGVzLG9lYAogICAgICAvKiBUT0RPOiBNaWdyYXRlIGhhcmRjb2RlZCB2YWx1ZXMgdG8gLS1kZWVzLSogQ1NTIHZhcmlhYmxlcyAqLwogICAgICA6aG9zdCB7CiAgICAgICAgZm9udC1mYW1pbHk6IC1hcHBsZS1zeXN0ZW0sIEJsaW5rTWFjU3lzdGVtRm9udCwgJ1NlZ29lIFVJJywgJ1JvYm90bycsIHNhbnMtc2VyaWY7CiAgICAgIH0KCiAgICAgIC5sYWJlbCB7CiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrOwogICAgICAgIGNvbG9yOiAke20uYmRUaGVtZSgiaHNsKDAgMCUgMTUlKSIsImhzbCgwIDAlIDkwJSkiKX07CiAgICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7CiAgICAgICAgbGluZS1oZWlnaHQ6IDEuNTsKICAgICAgICBtYXJnaW4tYm90dG9tOiA2cHg7CiAgICAgICAgY3Vyc29yOiBkZWZhdWx0OwogICAgICAgIHVzZXItc2VsZWN0OiBub25lOwogICAgICAgIGxldHRlci1zcGFjaW5nOiAtMC4wMWVtOwogICAgICB9CgogICAgICAucmVxdWlyZWQgewogICAgICAgIGNvbG9yOiAke20uYmRUaGVtZSgiaHNsKDAgODQuMiUgNjAuMiUpIiwiaHNsKDAgNzIuMiUgNTAuNiUpIil9OwogICAgICAgIG1hcmdpbi1sZWZ0OiAycHg7CiAgICAgIH0KCiAgICAgIGRlZXMtaWNvbiB7CiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrOwogICAgICAgIGZvbnQtc2l6ZTogMTJweDsKICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMXB4KTsKICAgICAgICBtYXJnaW4tbGVmdDogNHB4OwogICAgICAgIGNvbG9yOiAke20uYmRUaGVtZSgiaHNsKDAgMCUgNDUuMSUpIiwiaHNsKDAgMCUgNjMuOSUpIil9OwogICAgICAgIGN1cnNvcjogaGVscDsKICAgICAgfQogICAgYF07cmVuZGVyKCl7cmV0dXJuIENgCiAgICAgICR7dGhpcy5sYWJlbD9DYAogICAgICAgICAgICA8ZGl2IGNsYXNzPSJsYWJlbCI+CiAgICAgICAgICAgICAgJHt0aGlzLmxhYmVsfQogICAgICAgICAgICAgICR7dGhpcy5yZXF1aXJlZD9DYDxzcGFuIGNsYXNzPSJyZXF1aXJlZCI+Kjwvc3Bhbj5gOiIifQogICAgICAgICAgICAgICR7dGhpcy5kZXNjcmlwdGlvbj9DYAogICAgICAgICAgICAgICAgICAgIDxkZWVzLWljb24gLmljb249JHsibHVjaWRlOmluZm8ifT48L2RlZXMtaWNvbj4KICAgICAgICAgICAgICAgICAgICA8ZGVlcy1zcGVlY2hidWJibGUgLnRleHQ9JHt0aGlzLmRlc2NyaXB0aW9ufT48L2RlZXMtc3BlZWNoYnViYmxlPgogICAgICAgICAgICAgICAgICBgOkNgYH0KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICBgOkNgYH0KICAgIGB9Y29uc3RydWN0b3IoKXtzdXBlciguLi5hcmd1bWVudHMpLFBkKHRoaXMsZil9c3RhdGlje1BkKGkscil9fTtyZXR1cm4geD1pfSkoKX0pO3ZhciBfTixkNmU9cCgoKT0+e19OPSIwLjU1LjEifSk7dmFyIHRoLFQyLGtzcixOZD1wKCgpPT57eGUoKTtLdCgpO2Q2ZSgpO0plKCk7dGg9ZnVuY3Rpb24oZSx0LHIsaSxhLG4pe2Z1bmN0aW9uIG8oeSl7aWYoeSE9PXZvaWQgMCYmdHlwZW9mIHkhPSJmdW5jdGlvbiIpdGhyb3cgbmV3IFR5cGVFcnJvcigiRnVuY3Rpb24gZXhwZWN0ZWQiKTtyZXR1cm4geX1mb3IodmFyIHM9aS5raW5kLGw9cz09PSJnZXR0ZXIiPyJnZXQiOnM9PT0ic2V0dGVyIj8ic2V0IjoidmFsdWUiLGM9IXQmJmU/aS5zdGF0aWM/ZTplLnByb3RvdHlwZTpudWxsLHU9dHx8KGM/T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihjLGkubmFtZSk6e30pLGQsaD0hMSxmPXIubGVuZ3RoLTE7Zj49MDtmLS0pe3ZhciB4PXt9O2Zvcih2YXIgdiBpbiBpKXhbdl09dj09PSJhY2Nlc3MiP3t9Omlbdl07Zm9yKHZhciB2IGluIGkuYWNjZXNzKXguYWNjZXNzW3ZdPWkuYWNjZXNzW3ZdO3guYWRkSW5pdGlhbGl6ZXI9ZnVuY3Rpb24oeSl7aWYoaCl0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgYWRkIGluaXRpYWxpemVycyBhZnRlciBkZWNvcmF0aW9uIGhhcyBjb21wbGV0ZWQiKTtuLnB1c2gobyh5fHxudWxsKSl9O3ZhciBiPSgwLHJbZl0pKHM9PT0iYWNjZXNzb3IiP3tnZXQ6dS5nZXQsc2V0OnUuc2V0fTp1W2xdLHgpO2lmKHM9PT0iYWNjZXNzb3IiKXtpZihiPT09dm9pZCAwKWNvbnRpbnVlO2lmKGI9PT1udWxsfHx0eXBlb2YgYiE9Im9iamVjdCIpdGhyb3cgbmV3IFR5cGVFcnJvcigiT2JqZWN0IGV4cGVjdGVkIik7KGQ9byhiLmdldCkpJiYodS5nZXQ9ZCksKGQ9byhiLnNldCkpJiYodS5zZXQ9ZCksKGQ9byhiLmluaXQpKSYmYS51bnNoaWZ0KGQpfWVsc2UoZD1vKGIpKSYmKHM9PT0iZmllbGQiP2EudW5zaGlmdChkKTp1W2xdPWQpfWMmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShjLGkubmFtZSx1KSxoPSEwfSxUMj1mdW5jdGlvbihlLHQscil7Zm9yKHZhciBpPWFyZ3VtZW50cy5sZW5ndGg+MixhPTA7YTx0Lmxlbmd0aDthKyspcj1pP3RbYV0uY2FsbChlLHIpOnRbYV0uY2FsbChlKTtyZXR1cm4gaT9yOnZvaWQgMH0sa3NyPSgoKT0+e2xldCBlPVt5ZSgiZGVlcy13b3Jrc3BhY2UtbW9uYWNvIildLHQscj1bXSxpLGE9emUsbixvPVtdLHM9W10sbCxjPVtdLHU9W10sZCxoPVtdLGY9W10seCx2PVtdLGI9W10seSx3PVtdLGs9W107dmFyIE89Y2xhc3MgZXh0ZW5kcyBhe3N0YXRpY3tpPXRoaXN9c3RhdGlje2xldCB6PXR5cGVvZiBTeW1ib2w9PSJmdW5jdGlvbiImJlN5bWJvbC5tZXRhZGF0YT9PYmplY3QuY3JlYXRlKGFbU3ltYm9sLm1ldGFkYXRhXT8/bnVsbCk6dm9pZCAwO249W2ooe3R5cGU6U3RyaW5nfSldLGw9W2ooe3R5cGU6U3RyaW5nfSldLGQ9W2ooe3R5cGU6U3RyaW5nfSldLHg9W2ooe3R5cGU6T2JqZWN0fSldLHk9W2ooe3R5cGU6Qm9vbGVhbn0pXSx0aCh0aGlzLG51bGwsbix7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImNvbnRlbnQiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOk09PiJjb250ZW50ImluIE0sZ2V0Ok09Pk0uY29udGVudCxzZXQ6KE0sRik9PntNLmNvbnRlbnQ9Rn19LG1ldGFkYXRhOnp9LG8scyksdGgodGhpcyxudWxsLGwse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJsYW5ndWFnZSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6TT0+Imxhbmd1YWdlImluIE0sZ2V0Ok09Pk0ubGFuZ3VhZ2Usc2V0OihNLEYpPT57TS5sYW5ndWFnZT1GfX0sbWV0YWRhdGE6en0sYyx1KSx0aCh0aGlzLG51bGwsZCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImZpbGVQYXRoIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpNPT4iZmlsZVBhdGgiaW4gTSxnZXQ6TT0+TS5maWxlUGF0aCxzZXQ6KE0sRik9PntNLmZpbGVQYXRoPUZ9fSxtZXRhZGF0YTp6fSxoLGYpLHRoKHRoaXMsbnVsbCx4LHtraW5kOiJhY2Nlc3NvciIsbmFtZToiY29udGVudFN1YmplY3QiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOk09PiJjb250ZW50U3ViamVjdCJpbiBNLGdldDpNPT5NLmNvbnRlbnRTdWJqZWN0LHNldDooTSxGKT0+e00uY29udGVudFN1YmplY3Q9Rn19LG1ldGFkYXRhOnp9LHYsYiksdGgodGhpcyxudWxsLHkse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJ3b3JkV3JhcCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6TT0+IndvcmRXcmFwImluIE0sZ2V0Ok09Pk0ud29yZFdyYXAsc2V0OihNLEYpPT57TS53b3JkV3JhcD1GfX0sbWV0YWRhdGE6en0sdyxrKSx0aChudWxsLHQ9e3ZhbHVlOml9LGUse2tpbmQ6ImNsYXNzIixuYW1lOmkubmFtZSxtZXRhZGF0YTp6fSxudWxsLHIpLE89aT10LnZhbHVlLHomJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShpLFN5bWJvbC5tZXRhZGF0YSx7ZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITAsdmFsdWU6en0pfXN0YXRpYyBkZW1vPSgpPT5DYDxkZWVzLXdvcmtzcGFjZS1tb25hY28+PC9kZWVzLXdvcmtzcGFjZS1tb25hY28+YDtzdGF0aWMgZGVtb0dyb3Vwcz1bIldvcmtzcGFjZSJdO3N0YXRpYyBtb25hY29EZWZlcnJlZDtlZGl0b3JEZWZlcnJlZD1qdC5zbWFydHByb21pc2UuZGVmZXIoKTsjZT1UMih0aGlzLG8sYGZ1bmN0aW9uIGhlbGxvKCkgewoJYWxlcnQoJ0hlbGxvIHdvcmxkIScpOwp9YCk7Z2V0IGNvbnRlbnQoKXtyZXR1cm4gdGhpcy4jZX1zZXQgY29udGVudCh6KXt0aGlzLiNlPXp9I3Q9KFQyKHRoaXMscyksVDIodGhpcyxjLCJ0eXBlc2NyaXB0IikpO2dldCBsYW5ndWFnZSgpe3JldHVybiB0aGlzLiN0fXNldCBsYW5ndWFnZSh6KXt0aGlzLiN0PXp9I3I9KFQyKHRoaXMsdSksVDIodGhpcyxoLCIiKSk7Z2V0IGZpbGVQYXRoKCl7cmV0dXJuIHRoaXMuI3J9c2V0IGZpbGVQYXRoKHope3RoaXMuI3I9en0jaT0oVDIodGhpcyxmKSxUMih0aGlzLHYsbmV3IGp0LnNtYXJ0cngucnhqcy5TdWJqZWN0KSk7Z2V0IGNvbnRlbnRTdWJqZWN0KCl7cmV0dXJuIHRoaXMuI2l9c2V0IGNvbnRlbnRTdWJqZWN0KHope3RoaXMuI2k9en0jYT0oVDIodGhpcyxiKSxUMih0aGlzLHcsIm9mZiIpKTtnZXQgd29yZFdyYXAoKXtyZXR1cm4gdGhpcy4jYX1zZXQgd29yZFdyYXAoeil7dGhpcy4jYT16fW1vbmFjb1RoZW1lU3Vic2NyaXB0aW9uPShUMih0aGlzLGspLG51bGwpO2lzVXBkYXRpbmdGcm9tRXh0ZXJuYWw9ITE7Y29uc3RydWN0b3IoKXtzdXBlcigpLERhLnNldHVwRG9tVG9vbHMoKX1zdGF0aWMgc3R5bGVzPVtEZSxtLmRlZmF1bHRTdHlsZXMsb2VgCiAgICAgIC8qIFRPRE86IE1pZ3JhdGUgaGFyZGNvZGVkIHZhbHVlcyB0byAtLWRlZXMtKiBDU1MgdmFyaWFibGVzICovCiAgICAgIDpob3N0IHsKICAgICAgICBkaXNwbGF5OiBibG9jazsKICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgICAgaGVpZ2h0OiAxMDAlOwogICAgICAgIHdpZHRoOiAxMDAlOwogICAgICB9CgogICAgICAqIHsKICAgICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94OwogICAgICB9CgogICAgICAubWFpbmJveCB7CiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICAgIGhlaWdodDogMTAwJTsKICAgICAgICB3aWR0aDogMTAwJTsKICAgICAgfQoKICAgICAgI2NvbnRhaW5lciB7CiAgICAgICAgcG9zaXRpb246IGFic29sdXRlOwogICAgICAgIGhlaWdodDogMTAwJTsKICAgICAgICB3aWR0aDogMTAwJTsKICAgICAgfQogICAgYF07cmVuZGVyKCl7cmV0dXJuIENgCiAgICAgIDxkaXYgY2xhc3M9Im1haW5ib3giPgogICAgICAgIDxkaXYgaWQ9ImNvbnRhaW5lciI+PC9kaXY+CiAgICAgIDwvZGl2PgogICAgYH1hc3luYyBmaXJzdFVwZGF0ZWQoeil7c3VwZXIuZmlyc3RVcGRhdGVkKHopO2xldCBNPXRoaXMuc2hhZG93Um9vdC5nZXRFbGVtZW50QnlJZCgiY29udGFpbmVyIiksRj1gaHR0cHM6Ly9jZG4uanNkZWxpdnIubmV0L25wbS9tb25hY28tZWRpdG9yQCR7X059YDtpZighTy5tb25hY29EZWZlcnJlZCl7Ty5tb25hY29EZWZlcnJlZD1qdC5zbWFydHByb21pc2UuZGVmZXIoKTtsZXQgXz1gJHtGfS9taW4vdnMvbG9hZGVyLmpzYCxTPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInNjcmlwdCIpO1Muc3JjPV8sUy5vbmxvYWQ9KCk9PntPLm1vbmFjb0RlZmVycmVkLnJlc29sdmUoKX0sZG9jdW1lbnQuaGVhZC5hcHBlbmRDaGlsZChTKX1hd2FpdCBPLm1vbmFjb0RlZmVycmVkLnByb21pc2Usd2luZG93LnJlcXVpcmUuY29uZmlnKHtwYXRoczp7dnM6YCR7Rn0vbWluL3ZzYH19KSx3aW5kb3cucmVxdWlyZShbInZzL2VkaXRvci9lZGl0b3IubWFpbiJdLGFzeW5jKCk9PntsZXQgXz1hd2FpdCB0aGlzLmRvbXRvb2xzUHJvbWlzZSwkPV8udGhlbWVNYW5hZ2VyLmdvQnJpZ2h0Qm9vbGVhbj8idnMiOiJ2cy1kYXJrIixUPXdpbmRvdy5tb25hY28sRT1udWxsO2lmKHRoaXMuZmlsZVBhdGgpe2xldCBCPVQuVXJpLnBhcnNlKGBmaWxlOi8vJHt0aGlzLmZpbGVQYXRofWApO0U9VC5lZGl0b3IuZ2V0TW9kZWwoQiksRT9FLnNldFZhbHVlKHRoaXMuY29udGVudCk6RT1ULmVkaXRvci5jcmVhdGVNb2RlbCh0aGlzLmNvbnRlbnQsdGhpcy5sYW5ndWFnZSxCKX1sZXQgcT1ULmVkaXRvci5jcmVhdGUoTSx7bW9kZWw6RXx8dm9pZCAwLHZhbHVlOkU/dm9pZCAwOnRoaXMuY29udGVudCxsYW5ndWFnZTpFP3ZvaWQgMDp0aGlzLmxhbmd1YWdlLHRoZW1lOiQsdXNlU2hhZG93RE9NOiEwLGZvbnRTaXplOjE2LGF1dG9tYXRpY0xheW91dDohMCx3b3JkV3JhcDp0aGlzLndvcmRXcmFwLGhvdmVyOntlbmFibGVkOiEwLGRlbGF5OjMwMCxzdGlja3k6ITAsYWJvdmU6ITF9fSk7dGhpcy5tb25hY29UaGVtZVN1YnNjcmlwdGlvbj1fLnRoZW1lTWFuYWdlci50aGVtZU9ic2VydmFibGUuc3Vic2NyaWJlKEI9PntsZXQgRz1CPyJ2cyI6InZzLWRhcmsiO3EudXBkYXRlT3B0aW9ucyh7dGhlbWU6R30pfSksdGhpcy5lZGl0b3JEZWZlcnJlZC5yZXNvbHZlKHEpfSk7bGV0IEQ9YXdhaXQoYXdhaXQgZmV0Y2goYCR7Rn0vbWluL3ZzL2VkaXRvci9lZGl0b3IubWFpbi5jc3NgKSkudGV4dCgpLE49ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgic3R5bGUiKTtOLnRleHRDb250ZW50PUQsdGhpcy5zaGFkb3dSb290LmFwcGVuZChOKTtsZXQgUj1hd2FpdCB0aGlzLmVkaXRvckRlZmVycmVkLnByb21pc2U7Ui5vbkRpZENoYW5nZU1vZGVsQ29udGVudChhc3luYyBfPT57aWYodGhpcy5pc1VwZGF0aW5nRnJvbUV4dGVybmFsKXJldHVybjtsZXQgUz1SLmdldFZhbHVlKCk7dGhpcy5jb250ZW50U3ViamVjdC5uZXh0KFMpLHRoaXMuZGlzcGF0Y2hFdmVudChuZXcgQ3VzdG9tRXZlbnQoImNvbnRlbnQtY2hhbmdlIix7ZGV0YWlsOlMsYnViYmxlczohMCxjb21wb3NlZDohMH0pKX0pLHRoaXMuY29udGVudFN1YmplY3QubmV4dChSLmdldFZhbHVlKCkpfWFzeW5jIHVwZGF0ZWQoeil7c3VwZXIudXBkYXRlZCh6KTtsZXQgTT13aW5kb3cubW9uYWNvO2lmKE0pe2lmKHouaGFzKCJmaWxlUGF0aCIpJiZ0aGlzLmZpbGVQYXRoKXtsZXQgRj1hd2FpdCB0aGlzLmVkaXRvckRlZmVycmVkLnByb21pc2UsRD1NLlVyaS5wYXJzZShgZmlsZTovLyR7dGhpcy5maWxlUGF0aH1gKSxOPU0uZWRpdG9yLmdldE1vZGVsKEQpO04/Ti5nZXRWYWx1ZSgpIT09dGhpcy5jb250ZW50JiYodGhpcy5pc1VwZGF0aW5nRnJvbUV4dGVybmFsPSEwLE4uc2V0VmFsdWUodGhpcy5jb250ZW50KSx0aGlzLmlzVXBkYXRpbmdGcm9tRXh0ZXJuYWw9ITEpOk49TS5lZGl0b3IuY3JlYXRlTW9kZWwodGhpcy5jb250ZW50LHRoaXMubGFuZ3VhZ2UsRCksRi5nZXRNb2RlbCgpPy51cmkudG9TdHJpbmcoKSE9PUQudG9TdHJpbmcoKSYmRi5zZXRNb2RlbChOKTtyZXR1cm59aWYoei5oYXMoImNvbnRlbnQiKSl7bGV0IEY9YXdhaXQgdGhpcy5lZGl0b3JEZWZlcnJlZC5wcm9taXNlO0YuZ2V0VmFsdWUoKSE9PXRoaXMuY29udGVudCYmKHRoaXMuaXNVcGRhdGluZ0Zyb21FeHRlcm5hbD0hMCxGLnNldFZhbHVlKHRoaXMuY29udGVudCksdGhpcy5pc1VwZGF0aW5nRnJvbUV4dGVybmFsPSExKX1pZih6LmhhcygibGFuZ3VhZ2UiKSl7bGV0IEQ9KGF3YWl0IHRoaXMuZWRpdG9yRGVmZXJyZWQucHJvbWlzZSkuZ2V0TW9kZWwoKTtEJiZNLmVkaXRvci5zZXRNb2RlbExhbmd1YWdlKEQsdGhpcy5sYW5ndWFnZSl9fX1hc3luYyBkaXNjb25uZWN0ZWRDYWxsYmFjaygpe2F3YWl0IHN1cGVyLmRpc2Nvbm5lY3RlZENhbGxiYWNrKCksdGhpcy5tb25hY29UaGVtZVN1YnNjcmlwdGlvbiYmKHRoaXMubW9uYWNvVGhlbWVTdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKSx0aGlzLm1vbmFjb1RoZW1lU3Vic2NyaXB0aW9uPW51bGwpfWFzeW5jIHNldENvbnRlbnRFeHRlcm5hbCh6LE09ITApe2xldCBGPWF3YWl0IHRoaXMuZWRpdG9yRGVmZXJyZWQucHJvbWlzZTtpZihGLmdldFZhbHVlKCk9PT16KXJldHVybjtsZXQgTj1NP0YuZ2V0UG9zaXRpb24oKTpudWxsLFI9TT9GLmdldFNlbGVjdGlvbnMoKTpudWxsLF89TT9GLmdldFNjcm9sbFRvcCgpOjAsUz1NP0YuZ2V0U2Nyb2xsTGVmdCgpOjA7aWYodGhpcy5pc1VwZGF0aW5nRnJvbUV4dGVybmFsPSEwLEYuc2V0VmFsdWUoeiksdGhpcy5pc1VwZGF0aW5nRnJvbUV4dGVybmFsPSExLE0pe2lmKE4pe2xldCAkPUYuZ2V0TW9kZWwoKSxUPSQ/LmdldExpbmVDb3VudCgpfHwxLEU9TWF0aC5taW4oTi5saW5lTnVtYmVyLFQpLHE9JD8uZ2V0TGluZU1heENvbHVtbihFKXx8MSxCPU1hdGgubWluKE4uY29sdW1uLHEpO0Yuc2V0UG9zaXRpb24oe2xpbmVOdW1iZXI6RSxjb2x1bW46Qn0pfWlmKFImJlIubGVuZ3RoPjApdHJ5e0Yuc2V0U2VsZWN0aW9ucyhSKX1jYXRjaHt9Ri5zZXRTY3JvbGxQb3NpdGlvbih7c2Nyb2xsVG9wOl8sc2Nyb2xsTGVmdDpTfSl9fXN0YXRpY3tUMihpLHIpfX07cmV0dXJuIE89aX0pKCl9KTt2YXIgUDQsSmEsZGIsTE4sdTZlPXAoKCk9PntNMSgpO3hlKCk7SmUoKTtJZCgpO29yKCk7ZWgoKTtOZCgpO05kKCk7UDQ9ZnVuY3Rpb24oZSx0LHIsaSxhLG4pe2Z1bmN0aW9uIG8oeSl7aWYoeSE9PXZvaWQgMCYmdHlwZW9mIHkhPSJmdW5jdGlvbiIpdGhyb3cgbmV3IFR5cGVFcnJvcigiRnVuY3Rpb24gZXhwZWN0ZWQiKTtyZXR1cm4geX1mb3IodmFyIHM9aS5raW5kLGw9cz09PSJnZXR0ZXIiPyJnZXQiOnM9PT0ic2V0dGVyIj8ic2V0IjoidmFsdWUiLGM9IXQmJmU/aS5zdGF0aWM/ZTplLnByb3RvdHlwZTpudWxsLHU9dHx8KGM/T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihjLGkubmFtZSk6e30pLGQsaD0hMSxmPXIubGVuZ3RoLTE7Zj49MDtmLS0pe3ZhciB4PXt9O2Zvcih2YXIgdiBpbiBpKXhbdl09dj09PSJhY2Nlc3MiP3t9Omlbdl07Zm9yKHZhciB2IGluIGkuYWNjZXNzKXguYWNjZXNzW3ZdPWkuYWNjZXNzW3ZdO3guYWRkSW5pdGlhbGl6ZXI9ZnVuY3Rpb24oeSl7aWYoaCl0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgYWRkIGluaXRpYWxpemVycyBhZnRlciBkZWNvcmF0aW9uIGhhcyBjb21wbGV0ZWQiKTtuLnB1c2gobyh5fHxudWxsKSl9O3ZhciBiPSgwLHJbZl0pKHM9PT0iYWNjZXNzb3IiP3tnZXQ6dS5nZXQsc2V0OnUuc2V0fTp1W2xdLHgpO2lmKHM9PT0iYWNjZXNzb3IiKXtpZihiPT09dm9pZCAwKWNvbnRpbnVlO2lmKGI9PT1udWxsfHx0eXBlb2YgYiE9Im9iamVjdCIpdGhyb3cgbmV3IFR5cGVFcnJvcigiT2JqZWN0IGV4cGVjdGVkIik7KGQ9byhiLmdldCkpJiYodS5nZXQ9ZCksKGQ9byhiLnNldCkpJiYodS5zZXQ9ZCksKGQ9byhiLmluaXQpKSYmYS51bnNoaWZ0KGQpfWVsc2UoZD1vKGIpKSYmKHM9PT0iZmllbGQiP2EudW5zaGlmdChkKTp1W2xdPWQpfWMmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShjLGkubmFtZSx1KSxoPSEwfSxKYT1mdW5jdGlvbihlLHQscil7Zm9yKHZhciBpPWFyZ3VtZW50cy5sZW5ndGg+MixhPTA7YTx0Lmxlbmd0aDthKyspcj1pP3RbYV0uY2FsbChlLHIpOnRbYV0uY2FsbChlKTtyZXR1cm4gaT9yOnZvaWQgMH0sZGI9W3trZXk6InR5cGVzY3JpcHQiLGxhYmVsOiJUeXBlU2NyaXB0In0se2tleToiamF2YXNjcmlwdCIsbGFiZWw6IkphdmFTY3JpcHQifSx7a2V5OiJqc29uIixsYWJlbDoiSlNPTiJ9LHtrZXk6Imh0bWwiLGxhYmVsOiJIVE1MIn0se2tleToiY3NzIixsYWJlbDoiQ1NTIn0se2tleToic2NzcyIsbGFiZWw6IlNDU1MifSx7a2V5OiJtYXJrZG93biIsbGFiZWw6Ik1hcmtkb3duIn0se2tleToieWFtbCIsbGFiZWw6IllBTUwifSx7a2V5OiJ4bWwiLGxhYmVsOiJYTUwifSx7a2V5OiJzcWwiLGxhYmVsOiJTUUwifSx7a2V5OiJweXRob24iLGxhYmVsOiJQeXRob24ifSx7a2V5OiJqYXZhIixsYWJlbDoiSmF2YSJ9LHtrZXk6ImNzaGFycCIsbGFiZWw6IkMjIn0se2tleToiY3BwIixsYWJlbDoiQysrIn0se2tleToiZ28iLGxhYmVsOiJHbyJ9LHtrZXk6InJ1c3QiLGxhYmVsOiJSdXN0In0se2tleToic2hlbGwiLGxhYmVsOiJTaGVsbCJ9LHtrZXk6InBsYWludGV4dCIsbGFiZWw6IlBsYWluIFRleHQifV0sTE49KCgpPT57bGV0IGU9W3llKCJkZWVzLWlucHV0LWNvZGUiKV0sdCxyPVtdLGksYT1vdCxuLG89W10scz1bXSxsLGM9W10sdT1bXSxkLGg9W10sZj1bXSx4LHY9W10sYj1bXSx5LHc9W10saz1bXSxPLHo9W10sTT1bXSxGLEQ9W10sTj1bXTt2YXIgUj1jbGFzcyBleHRlbmRzIGF7c3RhdGlje2k9dGhpc31zdGF0aWN7bGV0IF89dHlwZW9mIFN5bWJvbD09ImZ1bmN0aW9uIiYmU3ltYm9sLm1ldGFkYXRhP09iamVjdC5jcmVhdGUoYVtTeW1ib2wubWV0YWRhdGFdPz9udWxsKTp2b2lkIDA7bj1baih7dHlwZTpTdHJpbmd9KV0sbD1baih7dHlwZTpTdHJpbmd9KV0sZD1baih7dHlwZTpTdHJpbmd9KV0seD1baih7dHlwZTpTdHJpbmd9KV0seT1baih7dHlwZTpCb29sZWFufSldLE89W2ZlKCldLEY9W2ZlKCldLFA0KHRoaXMsbnVsbCxuLHtraW5kOiJhY2Nlc3NvciIsbmFtZToidmFsdWUiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOlM9PiJ2YWx1ZSJpbiBTLGdldDpTPT5TLnZhbHVlLHNldDooUywkKT0+e1MudmFsdWU9JH19LG1ldGFkYXRhOl99LG8scyksUDQodGhpcyxudWxsLGwse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJsYW5ndWFnZSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6Uz0+Imxhbmd1YWdlImluIFMsZ2V0OlM9PlMubGFuZ3VhZ2Usc2V0OihTLCQpPT57Uy5sYW5ndWFnZT0kfX0sbWV0YWRhdGE6X30sYyx1KSxQNCh0aGlzLG51bGwsZCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImhlaWdodCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6Uz0+ImhlaWdodCJpbiBTLGdldDpTPT5TLmhlaWdodCxzZXQ6KFMsJCk9PntTLmhlaWdodD0kfX0sbWV0YWRhdGE6X30saCxmKSxQNCh0aGlzLG51bGwseCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6IndvcmRXcmFwIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpTPT4id29yZFdyYXAiaW4gUyxnZXQ6Uz0+Uy53b3JkV3JhcCxzZXQ6KFMsJCk9PntTLndvcmRXcmFwPSR9fSxtZXRhZGF0YTpffSx2LGIpLFA0KHRoaXMsbnVsbCx5LHtraW5kOiJhY2Nlc3NvciIsbmFtZToic2hvd0xpbmVOdW1iZXJzIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpTPT4ic2hvd0xpbmVOdW1iZXJzImluIFMsZ2V0OlM9PlMuc2hvd0xpbmVOdW1iZXJzLHNldDooUywkKT0+e1Muc2hvd0xpbmVOdW1iZXJzPSR9fSxtZXRhZGF0YTpffSx3LGspLFA0KHRoaXMsbnVsbCxPLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiaXNMYW5ndWFnZURyb3Bkb3duT3BlbiIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6Uz0+ImlzTGFuZ3VhZ2VEcm9wZG93bk9wZW4iaW4gUyxnZXQ6Uz0+Uy5pc0xhbmd1YWdlRHJvcGRvd25PcGVuLHNldDooUywkKT0+e1MuaXNMYW5ndWFnZURyb3Bkb3duT3Blbj0kfX0sbWV0YWRhdGE6X30seixNKSxQNCh0aGlzLG51bGwsRix7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImNvcHlTdWNjZXNzIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpTPT4iY29weVN1Y2Nlc3MiaW4gUyxnZXQ6Uz0+Uy5jb3B5U3VjY2VzcyxzZXQ6KFMsJCk9PntTLmNvcHlTdWNjZXNzPSR9fSxtZXRhZGF0YTpffSxELE4pLFA0KG51bGwsdD17dmFsdWU6aX0sZSx7a2luZDoiY2xhc3MiLG5hbWU6aS5uYW1lLG1ldGFkYXRhOl99LG51bGwsciksUj1pPXQudmFsdWUsXyYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGksU3ltYm9sLm1ldGFkYXRhLHtlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMCx2YWx1ZTpffSl9c3RhdGljIGRlbW89KCk9PkNgCiAgICA8ZGVlcy1pbnB1dC1jb2RlCiAgICAgIGxhYmVsPSJUeXBlU2NyaXB0IENvZGUiCiAgICAgIGtleT0iY29kZSIKICAgICAgbGFuZ3VhZ2U9InR5cGVzY3JpcHQiCiAgICAgIGhlaWdodD0iMzAwcHgiCiAgICAgIC52YWx1ZT0ke2Bjb25zdCBncmVldGluZzogc3RyaW5nID0gIkhlbGxvIFdvcmxkIjsKY29uc29sZS5sb2coZ3JlZXRpbmcpO2B9CiAgICA+PC9kZWVzLWlucHV0LWNvZGU+CiAgYDtzdGF0aWMgZGVtb0dyb3Vwcz1bIklucHV0IiwiV29ya3NwYWNlIl07I2U9SmEodGhpcyxvLCIiKTtnZXQgdmFsdWUoKXtyZXR1cm4gdGhpcy4jZX1zZXQgdmFsdWUoXyl7dGhpcy4jZT1ffSN0PShKYSh0aGlzLHMpLEphKHRoaXMsYywidHlwZXNjcmlwdCIpKTtnZXQgbGFuZ3VhZ2UoKXtyZXR1cm4gdGhpcy4jdH1zZXQgbGFuZ3VhZ2UoXyl7dGhpcy4jdD1ffSNyPShKYSh0aGlzLHUpLEphKHRoaXMsaCwiMjAwcHgiKSk7Z2V0IGhlaWdodCgpe3JldHVybiB0aGlzLiNyfXNldCBoZWlnaHQoXyl7dGhpcy4jcj1ffSNpPShKYSh0aGlzLGYpLEphKHRoaXMsdiwib2ZmIikpO2dldCB3b3JkV3JhcCgpe3JldHVybiB0aGlzLiNpfXNldCB3b3JkV3JhcChfKXt0aGlzLiNpPV99I2E9KEphKHRoaXMsYiksSmEodGhpcyx3LCEwKSk7Z2V0IHNob3dMaW5lTnVtYmVycygpe3JldHVybiB0aGlzLiNhfXNldCBzaG93TGluZU51bWJlcnMoXyl7dGhpcy4jYT1ffSNuPShKYSh0aGlzLGspLEphKHRoaXMseiwhMSkpO2dldCBpc0xhbmd1YWdlRHJvcGRvd25PcGVuKCl7cmV0dXJuIHRoaXMuI259c2V0IGlzTGFuZ3VhZ2VEcm9wZG93bk9wZW4oXyl7dGhpcy4jbj1ffSNvPShKYSh0aGlzLE0pLEphKHRoaXMsRCwhMSkpO2dldCBjb3B5U3VjY2Vzcygpe3JldHVybiB0aGlzLiNvfXNldCBjb3B5U3VjY2VzcyhfKXt0aGlzLiNvPV99ZWRpdG9yRWxlbWVudD0oSmEodGhpcyxOKSxudWxsKTtzdGF0aWMgc3R5bGVzPVtEZSwuLi5vdC5iYXNlU3R5bGVzLG0uZGVmYXVsdFN0eWxlcyxvZWAKICAgICAgKiB7CiAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDsKICAgICAgfQoKICAgICAgOmhvc3QgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgICBtaW4taGVpZ2h0OiAwOwogICAgICB9CgogICAgICAuaW5wdXQtd3JhcHBlciwKICAgICAgOmhvc3QoW2xhYmVsLXBvc2l0aW9uPSJ0b3AiXSkgLmlucHV0LXdyYXBwZXIsCiAgICAgIDpob3N0KFtsYWJlbC1wb3NpdGlvbj0ibGVmdCJdKSAuaW5wdXQtd3JhcHBlciwKICAgICAgOmhvc3QoW2xhYmVsLXBvc2l0aW9uPSJyaWdodCJdKSAuaW5wdXQtd3JhcHBlciB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICAgIGZsZXg6IDE7CiAgICAgICAgbWluLWhlaWdodDogMDsKICAgICAgfQoKICAgICAgLmNvZGUtY29udGFpbmVyIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgICAgZmxleDogMTsKICAgICAgICBtaW4taGVpZ2h0OiAwOwogICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICR7bS5iZFRoZW1lKCJoc2woMCAwJSA4OS44JSkiLCJoc2woMCAwJSAxNC45JSkiKX07CiAgICAgICAgYm9yZGVyLXJhZGl1czogNnB4OwogICAgICAgIG92ZXJmbG93OiBoaWRkZW47CiAgICAgICAgYmFja2dyb3VuZDogJHttLmJkVGhlbWUoImhzbCgwIDAlIDEwMCUpIiwiaHNsKDAgMCUgOSUpIil9OwogICAgICB9CgogICAgICAudG9vbGJhciB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjsKICAgICAgICBwYWRkaW5nOiA4cHggMTJweDsKICAgICAgICBiYWNrZ3JvdW5kOiAke20uYmRUaGVtZSgiaHNsKDAgMCUgOTclKSIsImhzbCgwIDAlIDclKSIpfTsKICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHttLmJkVGhlbWUoImhzbCgwIDAlIDg5LjglKSIsImhzbCgwIDAlIDE0LjklKSIpfTsKICAgICAgICBnYXA6IDhweDsKICAgICAgfQoKICAgICAgLnRvb2xiYXItbGVmdCB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGdhcDogOHB4OwogICAgICB9CgogICAgICAudG9vbGJhci1yaWdodCB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGdhcDogNHB4OwogICAgICB9CgogICAgICAubGFuZ3VhZ2Utc2VsZWN0b3IgewogICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgfQoKICAgICAgLmxhbmd1YWdlLWJ1dHRvbiB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGdhcDogNnB4OwogICAgICAgIHBhZGRpbmc6IDRweCAxMHB4OwogICAgICAgIGZvbnQtc2l6ZTogMTJweDsKICAgICAgICBmb250LXdlaWdodDogNTAwOwogICAgICAgIGJhY2tncm91bmQ6ICR7bS5iZFRoZW1lKCJoc2woMCAwJSAxMDAlKSIsImhzbCgwIDAlIDEyJSkiKX07CiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHttLmJkVGhlbWUoImhzbCgwIDAlIDg5LjglKSIsImhzbCgwIDAlIDIwJSkiKX07CiAgICAgICAgYm9yZGVyLXJhZGl1czogNHB4OwogICAgICAgIGN1cnNvcjogcG9pbnRlcjsKICAgICAgICBjb2xvcjogJHttLmJkVGhlbWUoImhzbCgwIDAlIDIwJSkiLCJoc2woMCAwJSA5MCUpIil9OwogICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjE1cyBlYXNlOwogICAgICB9CgogICAgICAubGFuZ3VhZ2UtYnV0dG9uOmhvdmVyIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke20uYmRUaGVtZSgiaHNsKDAgMCUgOTUlKSIsImhzbCgwIDAlIDE1JSkiKX07CiAgICAgIH0KCiAgICAgIC5sYW5ndWFnZS1kcm9wZG93biB7CiAgICAgICAgcG9zaXRpb246IGFic29sdXRlOwogICAgICAgIHRvcDogMTAwJTsKICAgICAgICBsZWZ0OiAwOwogICAgICAgIG1hcmdpbi10b3A6IDRweDsKICAgICAgICBiYWNrZ3JvdW5kOiAke20uYmRUaGVtZSgiaHNsKDAgMCUgMTAwJSkiLCJoc2woMCAwJSA5JSkiKX07CiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHttLmJkVGhlbWUoImhzbCgwIDAlIDg5LjglKSIsImhzbCgwIDAlIDIwJSkiKX07CiAgICAgICAgYm9yZGVyLXJhZGl1czogNnB4OwogICAgICAgIGJveC1zaGFkb3c6IDAgNHB4IDEycHggcmdiYSgwLCAwLCAwLCAwLjE1KTsKICAgICAgICB6LWluZGV4OiAxMDA7CiAgICAgICAgbWF4LWhlaWdodDogMjUwcHg7CiAgICAgICAgb3ZlcmZsb3cteTogYXV0bzsKICAgICAgICBtaW4td2lkdGg6IDE0MHB4OwogICAgICB9CgogICAgICAubGFuZ3VhZ2Utb3B0aW9uIHsKICAgICAgICBwYWRkaW5nOiA4cHggMTJweDsKICAgICAgICBmb250LXNpemU6IDEycHg7CiAgICAgICAgY3Vyc29yOiBwb2ludGVyOwogICAgICAgIGNvbG9yOiAke20uYmRUaGVtZSgiaHNsKDAgMCUgMjAlKSIsImhzbCgwIDAlIDkwJSkiKX07CiAgICAgICAgdHJhbnNpdGlvbjogYmFja2dyb3VuZCAwLjE1cyBlYXNlOwogICAgICB9CgogICAgICAubGFuZ3VhZ2Utb3B0aW9uOmhvdmVyIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke20uYmRUaGVtZSgiaHNsKDAgMCUgOTUlKSIsImhzbCgwIDAlIDE1JSkiKX07CiAgICAgIH0KCiAgICAgIC5sYW5ndWFnZS1vcHRpb24uc2VsZWN0ZWQgewogICAgICAgIGJhY2tncm91bmQ6ICR7bS5iZFRoZW1lKCJoc2woMCAwJSA5MCUpIiwiaHNsKDAgMCUgMjAlKSIpfTsKICAgICAgfQoKICAgICAgLnRvb2xiYXItYnV0dG9uIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7CiAgICAgICAgd2lkdGg6IDMycHg7CiAgICAgICAgaGVpZ2h0OiAzMnB4OwogICAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50OwogICAgICAgIGJvcmRlcjogbm9uZTsKICAgICAgICBib3JkZXItcmFkaXVzOiA0cHg7CiAgICAgICAgY3Vyc29yOiBwb2ludGVyOwogICAgICAgIGNvbG9yOiAke20uYmRUaGVtZSgiaHNsKDAgMCUgNDUlKSIsImhzbCgwIDAlIDYwJSkiKX07CiAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuMTVzIGVhc2U7CiAgICAgIH0KCiAgICAgIC50b29sYmFyLWJ1dHRvbjpob3ZlciB7CiAgICAgICAgYmFja2dyb3VuZDogJHttLmJkVGhlbWUoImhzbCgwIDAlIDkwJSkiLCJoc2woMCAwJSAxNSUpIil9OwogICAgICAgIGNvbG9yOiAke20uYmRUaGVtZSgiaHNsKDAgMCUgMjAlKSIsImhzbCgwIDAlIDkwJSkiKX07CiAgICAgIH0KCiAgICAgIC50b29sYmFyLWJ1dHRvbi5hY3RpdmUgewogICAgICAgIGJhY2tncm91bmQ6ICR7bS5iZFRoZW1lKCJoc2woMCAwJSA4NSUpIiwiaHNsKDAgMCUgMjAlKSIpfTsKICAgICAgICBjb2xvcjogJHttLmJkVGhlbWUoImhzbCgwIDAlIDIwJSkiLCJoc2woMCAwJSA5MCUpIil9OwogICAgICB9CgogICAgICAudG9vbGJhci1idXR0b24uc3VjY2VzcyB7CiAgICAgICAgY29sb3I6IGhzbCgxNDIuMSA3Ni4yJSAzNi4zJSk7CiAgICAgIH0KCiAgICAgIC5lZGl0b3Itd3JhcHBlciB7CiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICAgIGZsZXg6IDE7CiAgICAgICAgbWluLWhlaWdodDogMDsKICAgICAgfQoKICAgICAgZGVlcy13b3Jrc3BhY2UtbW9uYWNvIHsKICAgICAgICBkaXNwbGF5OiBibG9jazsKICAgICAgICBoZWlnaHQ6IDEwMCU7CiAgICAgIH0KCiAgICAgIC50b29sYmFyLWRpdmlkZXIgewogICAgICAgIHdpZHRoOiAxcHg7CiAgICAgICAgaGVpZ2h0OiAyMHB4OwogICAgICAgIGJhY2tncm91bmQ6ICR7bS5iZFRoZW1lKCJoc2woMCAwJSA4NSUpIiwiaHNsKDAgMCUgMjAlKSIpfTsKICAgICAgICBtYXJnaW46IDAgNHB4OwogICAgICB9CgogICAgICA6aG9zdChbZGlzYWJsZWRdKSAuY29kZS1jb250YWluZXIgewogICAgICAgIG9wYWNpdHk6IDAuNTsKICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTsKICAgICAgfQogICAgYF07cmVuZGVyKCl7bGV0IF89ZGIuZmluZChTPT5TLmtleT09PXRoaXMubGFuZ3VhZ2UpfHxkYlswXTtyZXR1cm4gQ2AKICAgICAgPHN0eWxlPgogICAgICAgIDpob3N0IHsKICAgICAgICAgIGhlaWdodDogJHt0aGlzLmhlaWdodH07CiAgICAgICAgfQogICAgICA8L3N0eWxlPgogICAgICA8ZGl2IGNsYXNzPSJpbnB1dC13cmFwcGVyIj4KICAgICAgICA8ZGVlcy1sYWJlbCAubGFiZWw9JHt0aGlzLmxhYmVsfSAuZGVzY3JpcHRpb249JHt0aGlzLmRlc2NyaXB0aW9ufSAucmVxdWlyZWQ9JHt0aGlzLnJlcXVpcmVkfT48L2RlZXMtbGFiZWw+CiAgICAgICAgPGRpdiBjbGFzcz0iY29kZS1jb250YWluZXIiPgogICAgICAgICAgPGRpdiBjbGFzcz0idG9vbGJhciI+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9InRvb2xiYXItbGVmdCI+CiAgICAgICAgICAgICAgPGRpdiBjbGFzcz0ibGFuZ3VhZ2Utc2VsZWN0b3IiPgogICAgICAgICAgICAgICAgPGJ1dHRvbgogICAgICAgICAgICAgICAgICBjbGFzcz0ibGFuZ3VhZ2UtYnV0dG9uIgogICAgICAgICAgICAgICAgICBAY2xpY2s9JHt0aGlzLnRvZ2dsZUxhbmd1YWdlRHJvcGRvd259CiAgICAgICAgICAgICAgICAgIEBibHVyPSR7dGhpcy5oYW5kbGVMYW5ndWFnZUJsdXJ9CiAgICAgICAgICAgICAgICA+CiAgICAgICAgICAgICAgICAgICR7Xy5sYWJlbH0KICAgICAgICAgICAgICAgICAgPGRlZXMtaWNvbiAuaWNvbj0keyJsdWNpZGU6Q2hldnJvbkRvd24ifSBpY29uU2l6ZT0iMTQiPjwvZGVlcy1pY29uPgogICAgICAgICAgICAgICAgPC9idXR0b24+CiAgICAgICAgICAgICAgICAke3RoaXMuaXNMYW5ndWFnZURyb3Bkb3duT3Blbj9DYAogICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJsYW5ndWFnZS1kcm9wZG93biI+CiAgICAgICAgICAgICAgICAgICAgJHtkYi5tYXAoUz0+Q2AKICAgICAgICAgICAgICAgICAgICAgIDxkaXYKICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9Imxhbmd1YWdlLW9wdGlvbiAke1Mua2V5PT09dGhpcy5sYW5ndWFnZT8ic2VsZWN0ZWQiOiIifSIKICAgICAgICAgICAgICAgICAgICAgICAgQG1vdXNlZG93bj0keyQ9PnRoaXMuc2VsZWN0TGFuZ3VhZ2UoJCxTLmtleSl9CiAgICAgICAgICAgICAgICAgICAgICA+CiAgICAgICAgICAgICAgICAgICAgICAgICR7Uy5sYWJlbH0KICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgIGApfQogICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgIGA6IiJ9CiAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJ0b29sYmFyLXJpZ2h0Ij4KICAgICAgICAgICAgICA8YnV0dG9uCiAgICAgICAgICAgICAgICBjbGFzcz0idG9vbGJhci1idXR0b24gJHt0aGlzLndvcmRXcmFwPT09Im9uIj8iYWN0aXZlIjoiIn0iCiAgICAgICAgICAgICAgICB0aXRsZT0iV29yZCBXcmFwIgogICAgICAgICAgICAgICAgQGNsaWNrPSR7dGhpcy50b2dnbGVXb3JkV3JhcH0KICAgICAgICAgICAgICA+CiAgICAgICAgICAgICAgICA8ZGVlcy1pY29uIC5pY29uPSR7Imx1Y2lkZTpXcmFwVGV4dCJ9IGljb25TaXplPSIxNiI+PC9kZWVzLWljb24+CiAgICAgICAgICAgICAgPC9idXR0b24+CiAgICAgICAgICAgICAgPGJ1dHRvbgogICAgICAgICAgICAgICAgY2xhc3M9InRvb2xiYXItYnV0dG9uICR7dGhpcy5zaG93TGluZU51bWJlcnM/ImFjdGl2ZSI6IiJ9IgogICAgICAgICAgICAgICAgdGl0bGU9IkxpbmUgTnVtYmVycyIKICAgICAgICAgICAgICAgIEBjbGljaz0ke3RoaXMudG9nZ2xlTGluZU51bWJlcnN9CiAgICAgICAgICAgICAgPgogICAgICAgICAgICAgICAgPGRlZXMtaWNvbiAuaWNvbj0keyJsdWNpZGU6SGFzaCJ9IGljb25TaXplPSIxNiI+PC9kZWVzLWljb24+CiAgICAgICAgICAgICAgPC9idXR0b24+CiAgICAgICAgICAgICAgPGRpdiBjbGFzcz0idG9vbGJhci1kaXZpZGVyIj48L2Rpdj4KICAgICAgICAgICAgICA8YnV0dG9uCiAgICAgICAgICAgICAgICBjbGFzcz0idG9vbGJhci1idXR0b24gJHt0aGlzLmNvcHlTdWNjZXNzPyJzdWNjZXNzIjoiIn0iCiAgICAgICAgICAgICAgICB0aXRsZT0iQ29weSBDb2RlIgogICAgICAgICAgICAgICAgQGNsaWNrPSR7dGhpcy5jb3B5Q29kZX0KICAgICAgICAgICAgICA+CiAgICAgICAgICAgICAgICA8ZGVlcy1pY29uIC5pY29uPSR7dGhpcy5jb3B5U3VjY2Vzcz8ibHVjaWRlOkNoZWNrIjoibHVjaWRlOkNvcHkifSBpY29uU2l6ZT0iMTYiPjwvZGVlcy1pY29uPgogICAgICAgICAgICAgIDwvYnV0dG9uPgogICAgICAgICAgICAgIDxidXR0b24KICAgICAgICAgICAgICAgIGNsYXNzPSJ0b29sYmFyLWJ1dHRvbiIKICAgICAgICAgICAgICAgIHRpdGxlPSJFeHBhbmQiCiAgICAgICAgICAgICAgICBAY2xpY2s9JHt0aGlzLm9wZW5GdWxsc2NyZWVufQogICAgICAgICAgICAgID4KICAgICAgICAgICAgICAgIDxkZWVzLWljb24gLmljb249JHsibHVjaWRlOk1heGltaXplMiJ9IGljb25TaXplPSIxNiI+PC9kZWVzLWljb24+CiAgICAgICAgICAgICAgPC9idXR0b24+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgPC9kaXY+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJlZGl0b3Itd3JhcHBlciI+CiAgICAgICAgICAgIDxkZWVzLXdvcmtzcGFjZS1tb25hY28KICAgICAgICAgICAgICAuY29udGVudD0ke3RoaXMudmFsdWV9CiAgICAgICAgICAgICAgLmxhbmd1YWdlPSR7dGhpcy5sYW5ndWFnZX0KICAgICAgICAgICAgICAud29yZFdyYXA9JHt0aGlzLndvcmRXcmFwfQogICAgICAgICAgICAgIEBjb250ZW50LWNoYW5nZT0ke3RoaXMuaGFuZGxlQ29udGVudENoYW5nZX0KICAgICAgICAgICAgPjwvZGVlcy13b3Jrc3BhY2UtbW9uYWNvPgogICAgICAgICAgPC9kaXY+CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGl2PgogICAgYH1hc3luYyBmaXJzdFVwZGF0ZWQoKXt0aGlzLmVkaXRvckVsZW1lbnQ9dGhpcy5zaGFkb3dSb290Py5xdWVyeVNlbGVjdG9yKCJkZWVzLXdvcmtzcGFjZS1tb25hY28iKSx0aGlzLmVkaXRvckVsZW1lbnQmJnRoaXMuZWRpdG9yRWxlbWVudC5jb250ZW50U3ViamVjdC5zdWJzY3JpYmUoXz0+e3RoaXMudmFsdWUhPT1fJiYodGhpcy52YWx1ZT1fLHRoaXMuY2hhbmdlU3ViamVjdC5uZXh0KHRoaXMpKX0pfXRvZ2dsZUxhbmd1YWdlRHJvcGRvd24oKXt0aGlzLmlzTGFuZ3VhZ2VEcm9wZG93bk9wZW49IXRoaXMuaXNMYW5ndWFnZURyb3Bkb3duT3Blbn1oYW5kbGVMYW5ndWFnZUJsdXIoKXtzZXRUaW1lb3V0KCgpPT57dGhpcy5pc0xhbmd1YWdlRHJvcGRvd25PcGVuPSExfSwxNTApfWFzeW5jIHNlbGVjdExhbmd1YWdlKF8sUyl7aWYoXy5wcmV2ZW50RGVmYXVsdCgpLHRoaXMubGFuZ3VhZ2U9Uyx0aGlzLmlzTGFuZ3VhZ2VEcm9wZG93bk9wZW49ITEsdGhpcy5lZGl0b3JFbGVtZW50KXt0aGlzLmVkaXRvckVsZW1lbnQubGFuZ3VhZ2U9UztsZXQgVD0oYXdhaXQgdGhpcy5lZGl0b3JFbGVtZW50LmVkaXRvckRlZmVycmVkLnByb21pc2UpLmdldE1vZGVsKCk7VCYmd2luZG93Lm1vbmFjby5lZGl0b3Iuc2V0TW9kZWxMYW5ndWFnZShULFMpfX10b2dnbGVXb3JkV3JhcCgpe3RoaXMud29yZFdyYXA9dGhpcy53b3JkV3JhcD09PSJvbiI/Im9mZiI6Im9uIix0aGlzLnVwZGF0ZUVkaXRvck9wdGlvbigid29yZFdyYXAiLHRoaXMud29yZFdyYXApfXRvZ2dsZUxpbmVOdW1iZXJzKCl7dGhpcy5zaG93TGluZU51bWJlcnM9IXRoaXMuc2hvd0xpbmVOdW1iZXJzLHRoaXMudXBkYXRlRWRpdG9yT3B0aW9uKCJsaW5lTnVtYmVycyIsdGhpcy5zaG93TGluZU51bWJlcnM/Im9uIjoib2ZmIil9YXN5bmMgdXBkYXRlRWRpdG9yT3B0aW9uKF8sUyl7dGhpcy5lZGl0b3JFbGVtZW50JiYoYXdhaXQgdGhpcy5lZGl0b3JFbGVtZW50LmVkaXRvckRlZmVycmVkLnByb21pc2UpLnVwZGF0ZU9wdGlvbnMoe1tfXTpTfSl9YXN5bmMgY29weUNvZGUoKXt0cnl7YXdhaXQgbmF2aWdhdG9yLmNsaXBib2FyZC53cml0ZVRleHQodGhpcy52YWx1ZSksdGhpcy5jb3B5U3VjY2Vzcz0hMCxzZXRUaW1lb3V0KCgpPT57dGhpcy5jb3B5U3VjY2Vzcz0hMX0sMmUzKX1jYXRjaChfKXtjb25zb2xlLmVycm9yKCJGYWlsZWQgdG8gY29weSBjb2RlOiIsXyl9fWhhbmRsZUNvbnRlbnRDaGFuZ2UoXyl7bGV0IFM9Xy5kZXRhaWw7dGhpcy52YWx1ZSE9PVMmJih0aGlzLnZhbHVlPVMsdGhpcy5jaGFuZ2VTdWJqZWN0Lm5leHQodGhpcykpfWFzeW5jIG9wZW5GdWxsc2NyZWVuKCl7bGV0IF89dGhpcy52YWx1ZSxTPW51bGwsJD10aGlzLmxhbmd1YWdlLFQ9dGhpcy53b3JkV3JhcCxFPXRoaXMuc2hvd0xpbmVOdW1iZXJzLHE9ITEsQj0hMSxHPSgpPT57bGV0IHdlPWRiLmZpbmQoST0+SS5rZXk9PT0kKTtyZXR1cm4gd2U/d2UubGFiZWw6IlR5cGVTY3JpcHQifSxlZT13ZT0+e2xldCBJPXdlLnNoYWRvd1Jvb3Q/LnF1ZXJ5U2VsZWN0b3IoIi5tb2RhbC10b29sYmFyIik7aWYoIUkpcmV0dXJuO2xldCBuZT1JLnF1ZXJ5U2VsZWN0b3IoIi5sYW5ndWFnZS1idXR0b24gc3BhbiIpO25lJiYobmUudGV4dENvbnRlbnQ9RygpKTtsZXQga2U9SS5xdWVyeVNlbGVjdG9yKCIud3JhcC1idG4iKTtrZSYma2UuY2xhc3NMaXN0LnRvZ2dsZSgiYWN0aXZlIixUPT09Im9uIik7bGV0IFk9SS5xdWVyeVNlbGVjdG9yKCIubGluZXMtYnRuIik7WSYmWS5jbGFzc0xpc3QudG9nZ2xlKCJhY3RpdmUiLEUpO2xldCBBPUkucXVlcnlTZWxlY3RvcigiLmNvcHktYnRuIiksTD1BPy5xdWVyeVNlbGVjdG9yKCJkZWVzLWljb24iKTtBJiZMJiYoQS5jbGFzc0xpc3QudG9nZ2xlKCJzdWNjZXNzIixCKSxMLmljb249Qj8ibHVjaWRlOkNoZWNrIjoibHVjaWRlOkNvcHkiKTtsZXQgVT1JLnF1ZXJ5U2VsZWN0b3IoIi5sYW5ndWFnZS1kcm9wZG93biIpO1UmJihVLnN0eWxlLmRpc3BsYXk9cT8iYmxvY2siOiJub25lIil9LFA9YXdhaXQgV3IuY3JlYXRlQW5kU2hvdyh7aGVhZGluZzp0aGlzLmxhYmVsfHwiQ29kZSBFZGl0b3IiLHdpZHRoOiJmdWxsc2NyZWVuIixjb250ZW50UGFkZGluZzowLGNvbnRlbnQ6Q2AKICAgICAgICA8c3R5bGU+CiAgICAgICAgICAubW9kYWwtdG9vbGJhciB7CiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjsKICAgICAgICAgICAgcGFkZGluZzogOHB4IDEycHg7CiAgICAgICAgICAgIGJhY2tncm91bmQ6ICR7bS5iZFRoZW1lKCJoc2woMCAwJSA5NyUpIiwiaHNsKDAgMCUgNyUpIil9OwogICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHttLmJkVGhlbWUoImhzbCgwIDAlIDg5LjglKSIsImhzbCgwIDAlIDE0LjklKSIpfTsKICAgICAgICAgICAgZ2FwOiA4cHg7CiAgICAgICAgICB9CiAgICAgICAgICAubW9kYWwtdG9vbGJhciAudG9vbGJhci1sZWZ0IHsKICAgICAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICAgICAgZ2FwOiA4cHg7CiAgICAgICAgICB9CiAgICAgICAgICAubW9kYWwtdG9vbGJhciAudG9vbGJhci1yaWdodCB7CiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgICAgIGdhcDogNHB4OwogICAgICAgICAgfQogICAgICAgICAgLm1vZGFsLXRvb2xiYXIgLmxhbmd1YWdlLXNlbGVjdG9yIHsKICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICAgICAgfQogICAgICAgICAgLm1vZGFsLXRvb2xiYXIgLmxhbmd1YWdlLWJ1dHRvbiB7CiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgICAgIGdhcDogNnB4OwogICAgICAgICAgICBwYWRkaW5nOiA0cHggMTBweDsKICAgICAgICAgICAgZm9udC1zaXplOiAxMnB4OwogICAgICAgICAgICBmb250LXdlaWdodDogNTAwOwogICAgICAgICAgICBiYWNrZ3JvdW5kOiAke20uYmRUaGVtZSgiaHNsKDAgMCUgMTAwJSkiLCJoc2woMCAwJSAxMiUpIil9OwogICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAke20uYmRUaGVtZSgiaHNsKDAgMCUgODkuOCUpIiwiaHNsKDAgMCUgMjAlKSIpfTsKICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogNHB4OwogICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICAgICAgICAgIGNvbG9yOiAke20uYmRUaGVtZSgiaHNsKDAgMCUgMjAlKSIsImhzbCgwIDAlIDkwJSkiKX07CiAgICAgICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjE1cyBlYXNlOwogICAgICAgICAgfQogICAgICAgICAgLm1vZGFsLXRvb2xiYXIgLmxhbmd1YWdlLWJ1dHRvbjpob3ZlciB7CiAgICAgICAgICAgIGJhY2tncm91bmQ6ICR7bS5iZFRoZW1lKCJoc2woMCAwJSA5NSUpIiwiaHNsKDAgMCUgMTUlKSIpfTsKICAgICAgICAgIH0KICAgICAgICAgIC5tb2RhbC10b29sYmFyIC5sYW5ndWFnZS1kcm9wZG93biB7CiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgICAgICAgdG9wOiAxMDAlOwogICAgICAgICAgICBsZWZ0OiAwOwogICAgICAgICAgICBtYXJnaW4tdG9wOiA0cHg7CiAgICAgICAgICAgIGJhY2tncm91bmQ6ICR7bS5iZFRoZW1lKCJoc2woMCAwJSAxMDAlKSIsImhzbCgwIDAlIDklKSIpfTsKICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHttLmJkVGhlbWUoImhzbCgwIDAlIDg5LjglKSIsImhzbCgwIDAlIDIwJSkiKX07CiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDZweDsKICAgICAgICAgICAgYm94LXNoYWRvdzogMCA0cHggMTJweCByZ2JhKDAsIDAsIDAsIDAuMTUpOwogICAgICAgICAgICB6LWluZGV4OiAxMDA7CiAgICAgICAgICAgIG1heC1oZWlnaHQ6IDI1MHB4OwogICAgICAgICAgICBvdmVyZmxvdy15OiBhdXRvOwogICAgICAgICAgICBtaW4td2lkdGg6IDE0MHB4OwogICAgICAgICAgICBkaXNwbGF5OiBub25lOwogICAgICAgICAgfQogICAgICAgICAgLm1vZGFsLXRvb2xiYXIgLmxhbmd1YWdlLW9wdGlvbiB7CiAgICAgICAgICAgIHBhZGRpbmc6IDhweCAxMnB4OwogICAgICAgICAgICBmb250LXNpemU6IDEycHg7CiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjsKICAgICAgICAgICAgY29sb3I6ICR7bS5iZFRoZW1lKCJoc2woMCAwJSAyMCUpIiwiaHNsKDAgMCUgOTAlKSIpfTsKICAgICAgICAgICAgdHJhbnNpdGlvbjogYmFja2dyb3VuZCAwLjE1cyBlYXNlOwogICAgICAgICAgfQogICAgICAgICAgLm1vZGFsLXRvb2xiYXIgLmxhbmd1YWdlLW9wdGlvbjpob3ZlciB7CiAgICAgICAgICAgIGJhY2tncm91bmQ6ICR7bS5iZFRoZW1lKCJoc2woMCAwJSA5NSUpIiwiaHNsKDAgMCUgMTUlKSIpfTsKICAgICAgICAgIH0KICAgICAgICAgIC5tb2RhbC10b29sYmFyIC5sYW5ndWFnZS1vcHRpb24uc2VsZWN0ZWQgewogICAgICAgICAgICBiYWNrZ3JvdW5kOiAke20uYmRUaGVtZSgiaHNsKDAgMCUgOTAlKSIsImhzbCgwIDAlIDIwJSkiKX07CiAgICAgICAgICB9CiAgICAgICAgICAubW9kYWwtdG9vbGJhciAudG9vbGJhci1idXR0b24gewogICAgICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKICAgICAgICAgICAgd2lkdGg6IDMycHg7CiAgICAgICAgICAgIGhlaWdodDogMzJweDsKICAgICAgICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7CiAgICAgICAgICAgIGJvcmRlcjogbm9uZTsKICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogNHB4OwogICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICAgICAgICAgIGNvbG9yOiAke20uYmRUaGVtZSgiaHNsKDAgMCUgNDUlKSIsImhzbCgwIDAlIDYwJSkiKX07CiAgICAgICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjE1cyBlYXNlOwogICAgICAgICAgfQogICAgICAgICAgLm1vZGFsLXRvb2xiYXIgLnRvb2xiYXItYnV0dG9uOmhvdmVyIHsKICAgICAgICAgICAgYmFja2dyb3VuZDogJHttLmJkVGhlbWUoImhzbCgwIDAlIDkwJSkiLCJoc2woMCAwJSAxNSUpIil9OwogICAgICAgICAgICBjb2xvcjogJHttLmJkVGhlbWUoImhzbCgwIDAlIDIwJSkiLCJoc2woMCAwJSA5MCUpIil9OwogICAgICAgICAgfQogICAgICAgICAgLm1vZGFsLXRvb2xiYXIgLnRvb2xiYXItYnV0dG9uLmFjdGl2ZSB7CiAgICAgICAgICAgIGJhY2tncm91bmQ6ICR7bS5iZFRoZW1lKCJoc2woMCAwJSA4NSUpIiwiaHNsKDAgMCUgMjAlKSIpfTsKICAgICAgICAgICAgY29sb3I6ICR7bS5iZFRoZW1lKCJoc2woMCAwJSAyMCUpIiwiaHNsKDAgMCUgOTAlKSIpfTsKICAgICAgICAgIH0KICAgICAgICAgIC5tb2RhbC10b29sYmFyIC50b29sYmFyLWJ1dHRvbi5zdWNjZXNzIHsKICAgICAgICAgICAgY29sb3I6IGhzbCgxNDIuMSA3Ni4yJSAzNi4zJSk7CiAgICAgICAgICB9CiAgICAgICAgICAubW9kYWwtdG9vbGJhciAudG9vbGJhci1kaXZpZGVyIHsKICAgICAgICAgICAgd2lkdGg6IDFweDsKICAgICAgICAgICAgaGVpZ2h0OiAyMHB4OwogICAgICAgICAgICBiYWNrZ3JvdW5kOiAke20uYmRUaGVtZSgiaHNsKDAgMCUgODUlKSIsImhzbCgwIDAlIDIwJSkiKX07CiAgICAgICAgICAgIG1hcmdpbjogMCA0cHg7CiAgICAgICAgICB9CiAgICAgICAgICAubW9kYWwtZWRpdG9yLXdyYXBwZXIgewogICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgICAgICAgIGhlaWdodDogY2FsYygxMDB2aCAtIDE3NXB4KTsKICAgICAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgICAgICB9CiAgICAgICAgPC9zdHlsZT4KICAgICAgICA8ZGl2IGNsYXNzPSJtb2RhbC10b29sYmFyIj4KICAgICAgICAgIDxkaXYgY2xhc3M9InRvb2xiYXItbGVmdCI+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9Imxhbmd1YWdlLXNlbGVjdG9yIj4KICAgICAgICAgICAgICA8YnV0dG9uIGNsYXNzPSJsYW5ndWFnZS1idXR0b24iPgogICAgICAgICAgICAgICAgPHNwYW4+JHtHKCl9PC9zcGFuPgogICAgICAgICAgICAgICAgPGRlZXMtaWNvbiAuaWNvbj0keyJsdWNpZGU6Q2hldnJvbkRvd24ifSBpY29uU2l6ZT0iMTQiPjwvZGVlcy1pY29uPgogICAgICAgICAgICAgIDwvYnV0dG9uPgogICAgICAgICAgICAgIDxkaXYgY2xhc3M9Imxhbmd1YWdlLWRyb3Bkb3duIj4KICAgICAgICAgICAgICAgICR7ZGIubWFwKHdlPT5DYAogICAgICAgICAgICAgICAgICA8ZGl2CiAgICAgICAgICAgICAgICAgICAgY2xhc3M9Imxhbmd1YWdlLW9wdGlvbiAke3dlLmtleT09PSQ/InNlbGVjdGVkIjoiIn0iCiAgICAgICAgICAgICAgICAgICAgZGF0YS1sYW5nPSIke3dlLmtleX0iCiAgICAgICAgICAgICAgICAgID4KICAgICAgICAgICAgICAgICAgICAke3dlLmxhYmVsfQogICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgIGApfQogICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIDwvZGl2PgogICAgICAgICAgPGRpdiBjbGFzcz0idG9vbGJhci1yaWdodCI+CiAgICAgICAgICAgIDxidXR0b24gY2xhc3M9InRvb2xiYXItYnV0dG9uIHdyYXAtYnRuICR7VD09PSJvbiI/ImFjdGl2ZSI6IiJ9IiB0aXRsZT0iV29yZCBXcmFwIj4KICAgICAgICAgICAgICA8ZGVlcy1pY29uIC5pY29uPSR7Imx1Y2lkZTpXcmFwVGV4dCJ9IGljb25TaXplPSIxNiI+PC9kZWVzLWljb24+CiAgICAgICAgICAgIDwvYnV0dG9uPgogICAgICAgICAgICA8YnV0dG9uIGNsYXNzPSJ0b29sYmFyLWJ1dHRvbiBsaW5lcy1idG4gJHtFPyJhY3RpdmUiOiIifSIgdGl0bGU9IkxpbmUgTnVtYmVycyI+CiAgICAgICAgICAgICAgPGRlZXMtaWNvbiAuaWNvbj0keyJsdWNpZGU6SGFzaCJ9IGljb25TaXplPSIxNiI+PC9kZWVzLWljb24+CiAgICAgICAgICAgIDwvYnV0dG9uPgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJ0b29sYmFyLWRpdmlkZXIiPjwvZGl2PgogICAgICAgICAgICA8YnV0dG9uIGNsYXNzPSJ0b29sYmFyLWJ1dHRvbiBjb3B5LWJ0biIgdGl0bGU9IkNvcHkgQ29kZSI+CiAgICAgICAgICAgICAgPGRlZXMtaWNvbiAuaWNvbj0keyJsdWNpZGU6Q29weSJ9IGljb25TaXplPSIxNiI+PC9kZWVzLWljb24+CiAgICAgICAgICAgIDwvYnV0dG9uPgogICAgICAgICAgPC9kaXY+CiAgICAgICAgPC9kaXY+CiAgICAgICAgPGRpdiBjbGFzcz0ibW9kYWwtZWRpdG9yLXdyYXBwZXIiPgogICAgICAgICAgPGRlZXMtd29ya3NwYWNlLW1vbmFjbwogICAgICAgICAgICAuY29udGVudD0ke199CiAgICAgICAgICAgIC5sYW5ndWFnZT0keyR9CiAgICAgICAgICAgIC53b3JkV3JhcD0ke1R9CiAgICAgICAgICA+PC9kZWVzLXdvcmtzcGFjZS1tb25hY28+CiAgICAgICAgPC9kaXY+CiAgICAgIGAsbWVudU9wdGlvbnM6W3tuYW1lOiJDYW5jZWwiLGFjdGlvbjphc3luYyB3ZT0+e2F3YWl0IHdlLmRlc3Ryb3koKX19LHtuYW1lOiJTYXZlICYgQ2xvc2UiLGFjdGlvbjphc3luYyB3ZT0+e2lmKFM9d2Uuc2hhZG93Um9vdD8ucXVlcnlTZWxlY3RvcigiZGVlcy13b3Jrc3BhY2UtbW9uYWNvIiksUyl7bGV0IG5lPShhd2FpdCBTLmVkaXRvckRlZmVycmVkLnByb21pc2UpLmdldFZhbHVlKCk7dGhpcy5zZXRWYWx1ZShuZSl9YXdhaXQgd2UuZGVzdHJveSgpfX1dfSk7YXdhaXQgbmV3IFByb21pc2Uod2U9PnNldFRpbWVvdXQod2UsMTAwKSksUz1QLnNoYWRvd1Jvb3Q/LnF1ZXJ5U2VsZWN0b3IoImRlZXMtd29ya3NwYWNlLW1vbmFjbyIpO2xldCBnZT1QLnNoYWRvd1Jvb3Q/LnF1ZXJ5U2VsZWN0b3IoIi5tb2RhbC10b29sYmFyIik7aWYoZ2Upe2xldCB3ZT1nZS5xdWVyeVNlbGVjdG9yKCIubGFuZ3VhZ2UtYnV0dG9uIik7d2U/LmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIiwoKT0+e3E9IXEsZWUoUCl9KTtsZXQgST1nZS5xdWVyeVNlbGVjdG9yQWxsKCIubGFuZ3VhZ2Utb3B0aW9uIik7SS5mb3JFYWNoKEE9PntBLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIixhc3luYygpPT57bGV0IEw9QS5kYXRhc2V0Lmxhbmc7aWYoTCYmUyl7JD1MLHE9ITE7bGV0IFY9KGF3YWl0IFMuZWRpdG9yRGVmZXJyZWQucHJvbWlzZSkuZ2V0TW9kZWwoKTtWJiZ3aW5kb3cubW9uYWNvLmVkaXRvci5zZXRNb2RlbExhbmd1YWdlKFYsTCksSS5mb3JFYWNoKFg9PlguY2xhc3NMaXN0LnJlbW92ZSgic2VsZWN0ZWQiKSksQS5jbGFzc0xpc3QuYWRkKCJzZWxlY3RlZCIpLGVlKFApfX0pfSksZ2UucXVlcnlTZWxlY3RvcigiLndyYXAtYnRuIik/LmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIixhc3luYygpPT57VD1UPT09Im9uIj8ib2ZmIjoib24iLFMmJihhd2FpdCBTLmVkaXRvckRlZmVycmVkLnByb21pc2UpLnVwZGF0ZU9wdGlvbnMoe3dvcmRXcmFwOlR9KSxlZShQKX0pLGdlLnF1ZXJ5U2VsZWN0b3IoIi5saW5lcy1idG4iKT8uYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLGFzeW5jKCk9PntFPSFFLFMmJihhd2FpdCBTLmVkaXRvckRlZmVycmVkLnByb21pc2UpLnVwZGF0ZU9wdGlvbnMoe2xpbmVOdW1iZXJzOkU/Im9uIjoib2ZmIn0pLGVlKFApfSksZ2UucXVlcnlTZWxlY3RvcigiLmNvcHktYnRuIik/LmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIixhc3luYygpPT57aWYoUyl7bGV0IEw9KGF3YWl0IFMuZWRpdG9yRGVmZXJyZWQucHJvbWlzZSkuZ2V0VmFsdWUoKTt0cnl7YXdhaXQgbmF2aWdhdG9yLmNsaXBib2FyZC53cml0ZVRleHQoTCksQj0hMCxlZShQKSxzZXRUaW1lb3V0KCgpPT57Qj0hMSxlZShQKX0sMmUzKX1jYXRjaChVKXtjb25zb2xlLmVycm9yKCJGYWlsZWQgdG8gY29weSBjb2RlOiIsVSl9fX0pLGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIixBPT57cSYmIXdlPy5jb250YWlucyhBLnRhcmdldCkmJihxPSExLGVlKFApKX0se29uY2U6ITB9KX19Z2V0VmFsdWUoKXtyZXR1cm4gdGhpcy52YWx1ZX1zZXRWYWx1ZShfKXt0aGlzLnZhbHVlPV8sdGhpcy5lZGl0b3JFbGVtZW50JiYodGhpcy5lZGl0b3JFbGVtZW50LmNvbnRlbnQ9Xyx0aGlzLmVkaXRvckVsZW1lbnQuZWRpdG9yRGVmZXJyZWQucHJvbWlzZS50aGVuKFM9PntTLmdldFZhbHVlKCkhPT1fJiZTLnNldFZhbHVlKF8pfSkpLHRoaXMuY2hhbmdlU3ViamVjdC5uZXh0KHRoaXMpfXN0YXRpY3tKYShpLHIpfX07cmV0dXJuIFI9aX0pKCl9KTt2YXIgU3NyLHpzcj1wKCgpPT57eGUoKTtwMSgpO09pKCk7cDZlKCk7U3NyPSgpPT5DYAogIDxzdHlsZT4KICAgICR7b2VgCiAgICAgIC5kZW1vLWNvbnRhaW5lciB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICAgIGdhcDogMjRweDsKICAgICAgICBwYWRkaW5nOiAyNHB4OwogICAgICAgIG1heC13aWR0aDogMTIwMHB4OwogICAgICAgIG1hcmdpbjogMCBhdXRvOwogICAgICB9CiAgICAgIAogICAgICBkZWVzLXBhbmVsIHsKICAgICAgICBtYXJnaW4tYm90dG9tOiAyNHB4OwogICAgICB9CiAgICAgIAogICAgICBkZWVzLXBhbmVsOmxhc3QtY2hpbGQgewogICAgICAgIG1hcmdpbi1ib3R0b206IDA7CiAgICAgIH0KICAgICAgCiAgICAgIC5kZW1vLW91dHB1dCB7CiAgICAgICAgbWFyZ2luLXRvcDogMTZweDsKICAgICAgICBwYWRkaW5nOiAxMnB4OwogICAgICAgIGJhY2tncm91bmQ6IHJnYmEoMCwgMTA1LCAyNDIsIDAuMSk7CiAgICAgICAgYm9yZGVyLXJhZGl1czogNHB4OwogICAgICAgIGZvbnQtc2l6ZTogMTRweDsKICAgICAgICBmb250LWZhbWlseTogbW9ub3NwYWNlOwogICAgICB9CiAgICAgIAogICAgICAuZGF0ZS1ncm91cCB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBnYXA6IDE2cHg7CiAgICAgICAgZmxleC13cmFwOiB3cmFwOwogICAgICB9CiAgICBgfQogIDwvc3R5bGU+CiAgCiAgPGRpdiBjbGFzcz0iZGVtby1jb250YWluZXIiPgogICAgPGRlZXMtZGVtb3dyYXBwZXIgLnJ1bkFmdGVyUmVuZGVyPSR7YXN5bmMgZT0+e2xldCB0PWUucXVlcnlTZWxlY3RvcigiZGVlcy1pbnB1dC1kYXRlcGlja2VyIik7dCYmdC5hZGRFdmVudExpc3RlbmVyKCJjaGFuZ2UiLHI9Pntjb25zb2xlLmxvZygiQmFzaWMgZGF0ZSBzZWxlY3RlZDoiLHIudGFyZ2V0LnZhbHVlKX0pfX0+CiAgICAgIDxkZWVzLXBhbmVsIC50aXRsZT0keyJCYXNpYyBEYXRlIFBpY2tlciJ9IC5zdWJ0aXRsZT0keyJTaW1wbGUgZGF0ZSBzZWxlY3Rpb24gd2l0aG91dCB0aW1lIn0+CiAgICAgICAgPGRlZXMtaW5wdXQtZGF0ZXBpY2tlcgogICAgICAgICAgbGFiZWw9IlNlbGVjdCBEYXRlIgogICAgICAgICAgZGVzY3JpcHRpb249IkNob29zZSBhIGRhdGUgZnJvbSB0aGUgY2FsZW5kYXIiCiAgICAgICAgPjwvZGVlcy1pbnB1dC1kYXRlcGlja2VyPgogICAgICA8L2RlZXMtcGFuZWw+CiAgICA8L2RlZXMtZGVtb3dyYXBwZXI+CgogICAgPGRlZXMtZGVtb3dyYXBwZXIgLnJ1bkFmdGVyUmVuZGVyPSR7YXN5bmMgZT0+e2xldCB0PWUucXVlcnlTZWxlY3RvcignZGVlcy1pbnB1dC1kYXRlcGlja2VyW2xhYmVsPSJFdmVudCBEYXRlICYgVGltZSJdJykscj1lLnF1ZXJ5U2VsZWN0b3IoJ2RlZXMtaW5wdXQtZGF0ZXBpY2tlcltsYWJlbD0iQXBwb2ludG1lbnQiXScpO3QmJnQuYWRkRXZlbnRMaXN0ZW5lcigiY2hhbmdlIixpPT57bGV0IGE9aS50YXJnZXQudmFsdWU7Y29uc29sZS5sb2coIjI0aCBmb3JtYXQgZGF0ZXRpbWU6IixhKX0pLHImJnIuYWRkRXZlbnRMaXN0ZW5lcigiY2hhbmdlIixpPT57bGV0IGE9aS50YXJnZXQudmFsdWU7Y29uc29sZS5sb2coIjEyaCBmb3JtYXQgZGF0ZXRpbWU6IixhKX0pfX0+CiAgICAgIDxkZWVzLXBhbmVsIC50aXRsZT0keyJEYXRlIGFuZCBUaW1lIFNlbGVjdGlvbiJ9IC5zdWJ0aXRsZT0keyJEYXRlIHBpY2tlcnMgd2l0aCB0aW1lIHNlbGVjdGlvbiBpbiBkaWZmZXJlbnQgZm9ybWF0cyJ9PgogICAgICAgIDxkZWVzLWlucHV0LWRhdGVwaWNrZXIKICAgICAgICAgIGxhYmVsPSJFdmVudCBEYXRlICYgVGltZSIKICAgICAgICAgIGRlc2NyaXB0aW9uPSJTZWxlY3QgYm90aCBkYXRlIGFuZCB0aW1lICgyNC1ob3VyIGZvcm1hdCkiCiAgICAgICAgICAuZW5hYmxlVGltZT0keyEwfQogICAgICAgICAgdGltZUZvcm1hdD0iMjRoIgogICAgICAgID48L2RlZXMtaW5wdXQtZGF0ZXBpY2tlcj4KICAgICAgICAKICAgICAgICA8ZGVlcy1pbnB1dC1kYXRlcGlja2VyCiAgICAgICAgICBsYWJlbD0iQXBwb2ludG1lbnQiCiAgICAgICAgICBkZXNjcmlwdGlvbj0iRGF0ZSBhbmQgdGltZSB3aXRoIEFNL1BNIHNlbGVjdG9yICgxNS1taW51dGUgaW5jcmVtZW50cykiCiAgICAgICAgICAuZW5hYmxlVGltZT0keyEwfQogICAgICAgICAgdGltZUZvcm1hdD0iMTJoIgogICAgICAgICAgLm1pbnV0ZUluY3JlbWVudD0kezE1fQogICAgICAgID48L2RlZXMtaW5wdXQtZGF0ZXBpY2tlcj4KICAgICAgPC9kZWVzLXBhbmVsPgogICAgPC9kZWVzLWRlbW93cmFwcGVyPgoKICAgIDxkZWVzLWRlbW93cmFwcGVyIC5ydW5BZnRlclJlbmRlcj0ke2FzeW5jIGU9PntlLnF1ZXJ5U2VsZWN0b3JBbGwoImRlZXMtaW5wdXQtZGF0ZXBpY2tlciIpLmZvckVhY2gocj0+e3IuYWRkRXZlbnRMaXN0ZW5lcigiY2hhbmdlIixpPT57bGV0IGE9aS50YXJnZXQ7Y29uc29sZS5sb2coYCR7YS5sYWJlbH0gdmFsdWU6YCxhLnZhbHVlKTtsZXQgbj1hLnNoYWRvd1Jvb3Q/LnF1ZXJ5U2VsZWN0b3IoIi5kYXRlLWlucHV0Iik7biYmY29uc29sZS5sb2coYCR7YS5sYWJlbH0gZm9ybWF0dGVkOmAsbi52YWx1ZSl9KX0pfX0+CiAgICAgIDxkZWVzLXBhbmVsIC50aXRsZT0keyJUaW1lem9uZSBTdXBwb3J0In0gLnN1YnRpdGxlPSR7IkRhdGUgYW5kIHRpbWUgc2VsZWN0aW9uIHdpdGggdGltZXpvbmUgYXdhcmVuZXNzIn0+CiAgICAgICAgPGRlZXMtaW5wdXQtZGF0ZXBpY2tlcgogICAgICAgICAgbGFiZWw9Ik1lZXRpbmcgVGltZSAod2l0aCBUaW1lem9uZSkiCiAgICAgICAgICBkZXNjcmlwdGlvbj0iU2VsZWN0IGEgZGF0ZS90aW1lIGFuZCB0aW1lem9uZSBmb3IgdGhlIG1lZXRpbmciCiAgICAgICAgICAuZW5hYmxlVGltZT0keyEwfQogICAgICAgICAgLmVuYWJsZVRpbWV6b25lPSR7ITB9CiAgICAgICAgICB0aW1lRm9ybWF0PSIyNGgiCiAgICAgICAgICB0aW1lem9uZT0iQW1lcmljYS9OZXdfWW9yayIKICAgICAgICA+PC9kZWVzLWlucHV0LWRhdGVwaWNrZXI+CiAgICAgICAgCiAgICAgICAgPGRlZXMtaW5wdXQtZGF0ZXBpY2tlcgogICAgICAgICAgbGFiZWw9Ikdsb2JhbCBFdmVudCBTY2hlZHVsZSIKICAgICAgICAgIGRlc2NyaXB0aW9uPSJTY2hlZHVsZSBhbiBldmVudCBhY3Jvc3MgZGlmZmVyZW50IHRpbWV6b25lcyIKICAgICAgICAgIC5lbmFibGVUaW1lPSR7ITB9CiAgICAgICAgICAuZW5hYmxlVGltZXpvbmU9JHshMH0KICAgICAgICAgIHRpbWVGb3JtYXQ9IjEyaCIKICAgICAgICAgIHRpbWV6b25lPSJFdXJvcGUvTG9uZG9uIgogICAgICAgICAgLm1pbnV0ZUluY3JlbWVudD0kezMwfQogICAgICAgID48L2RlZXMtaW5wdXQtZGF0ZXBpY2tlcj4KICAgICAgPC9kZWVzLXBhbmVsPgogICAgPC9kZWVzLWRlbW93cmFwcGVyPgoKICAgIDxkZWVzLWRlbW93cmFwcGVyIC5ydW5BZnRlclJlbmRlcj0ke2FzeW5jIGU9PntsZXQgdD1lLnF1ZXJ5U2VsZWN0b3IoImRlZXMtaW5wdXQtZGF0ZXBpY2tlciIpO3QmJnQuYWRkRXZlbnRMaXN0ZW5lcigiY2hhbmdlIixyPT57bGV0IGk9ci50YXJnZXQudmFsdWU7aWYoaSl7bGV0IGE9bmV3IERhdGUoaSksbj1uZXcgRGF0ZSxvPU1hdGguZmxvb3IoKGEuZ2V0VGltZSgpLW4uZ2V0VGltZSgpKS8oMWUzKjYwKjYwKjI0KSk7Y29uc29sZS5sb2coYFNlbGVjdGVkIGRhdGUgaXMgJHtvfSBkYXlzIGZyb20gdG9kYXlgKX19KX19PgogICAgICA8ZGVlcy1wYW5lbCAudGl0bGU9JHsiRGF0ZSBSYW5nZSBDb25zdHJhaW50cyJ9IC5zdWJ0aXRsZT0keyJMaW1pdCBzZWxlY3RhYmxlIGRhdGVzIHdpdGggbWluIGFuZCBtYXggdmFsdWVzIn0+CiAgICAgICAgPGRlZXMtaW5wdXQtZGF0ZXBpY2tlcgogICAgICAgICAgbGFiZWw9IkZ1dHVyZSBEYXRlIE9ubHkiCiAgICAgICAgICBkZXNjcmlwdGlvbj0iQ2FuIG9ubHkgc2VsZWN0IGRhdGVzIGZyb20gdG9kYXkgdG8gOTAgZGF5cyBpbiB0aGUgZnV0dXJlIgogICAgICAgICAgLm1pbkRhdGU9JHtuZXcgRGF0ZSgpLnRvSVNPU3RyaW5nKCl9CiAgICAgICAgICAubWF4RGF0ZT0ke25ldyBEYXRlKERhdGUubm93KCkrMjE2MCo2MCo2MCoxZTMpLnRvSVNPU3RyaW5nKCl9CiAgICAgICAgPjwvZGVlcy1pbnB1dC1kYXRlcGlja2VyPgogICAgICA8L2RlZXMtcGFuZWw+CiAgICA8L2RlZXMtZGVtb3dyYXBwZXI+CgogICAgPGRlZXMtZGVtb3dyYXBwZXIgLnJ1bkFmdGVyUmVuZGVyPSR7YXN5bmMgZT0+e2xldCB0PXsiREQvTU0vWVlZWSI6IkV1cm9wZWFuIiwiTU0vREQvWVlZWSI6IlVTIiwiWVlZWS1NTS1ERCI6IklTTyJ9O2UucXVlcnlTZWxlY3RvckFsbCgiZGVlcy1pbnB1dC1kYXRlcGlja2VyIikuZm9yRWFjaChpPT57aS5hZGRFdmVudExpc3RlbmVyKCJjaGFuZ2UiLGE9PntsZXQgbj1hLnRhcmdldCxvPW4uc2hhZG93Um9vdD8ucXVlcnlTZWxlY3RvcigiLmRhdGUtaW5wdXQiKTtvJiZjb25zb2xlLmxvZyhgJHtuLmxhYmVsfSBmb3JtYXQ6YCxvLnZhbHVlKX0pfSl9fT4KICAgICAgPGRlZXMtcGFuZWwgLnRpdGxlPSR7IkRhdGUgRm9ybWF0cyJ9IC5zdWJ0aXRsZT0keyJEaWZmZXJlbnQgZGF0ZSBkaXNwbGF5IGZvcm1hdHMgZm9yIHZhcmlvdXMgcmVnaW9ucyJ9PgogICAgICAgIDxkaXYgY2xhc3M9ImRhdGUtZ3JvdXAiPgogICAgICAgICAgPGRlZXMtaW5wdXQtZGF0ZXBpY2tlcgogICAgICAgICAgICBsYWJlbD0iRXVyb3BlYW4gRm9ybWF0IgogICAgICAgICAgICBkYXRlRm9ybWF0PSJERC9NTS9ZWVlZIgogICAgICAgICAgICAudmFsdWU9JHtuZXcgRGF0ZSgpLnRvSVNPU3RyaW5nKCl9CiAgICAgICAgICA+PC9kZWVzLWlucHV0LWRhdGVwaWNrZXI+CiAgICAgICAgICAKICAgICAgICAgIDxkZWVzLWlucHV0LWRhdGVwaWNrZXIKICAgICAgICAgICAgbGFiZWw9IlVTIEZvcm1hdCIKICAgICAgICAgICAgZGF0ZUZvcm1hdD0iTU0vREQvWVlZWSIKICAgICAgICAgICAgLnZhbHVlPSR7bmV3IERhdGUoKS50b0lTT1N0cmluZygpfQogICAgICAgICAgPjwvZGVlcy1pbnB1dC1kYXRlcGlja2VyPgogICAgICAgICAgCiAgICAgICAgICA8ZGVlcy1pbnB1dC1kYXRlcGlja2VyCiAgICAgICAgICAgIGxhYmVsPSJJU08gRm9ybWF0IgogICAgICAgICAgICBkYXRlRm9ybWF0PSJZWVlZLU1NLUREIgogICAgICAgICAgICAudmFsdWU9JHtuZXcgRGF0ZSgpLnRvSVNPU3RyaW5nKCl9CiAgICAgICAgICA+PC9kZWVzLWlucHV0LWRhdGVwaWNrZXI+CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGVlcy1wYW5lbD4KICAgIDwvZGVlcy1kZW1vd3JhcHBlcj4KCiAgICA8ZGVlcy1kZW1vd3JhcHBlciAucnVuQWZ0ZXJSZW5kZXI9JHthc3luYyBlPT57bGV0IHQ9ZS5xdWVyeVNlbGVjdG9yKCJkZWVzLWlucHV0LWRhdGVwaWNrZXJbcmVxdWlyZWRdIik7dCYmdC5hZGRFdmVudExpc3RlbmVyKCJibHVyIiwoKT0+e3QuZ2V0VmFsdWUoKXx8Y29uc29sZS5sb2coIlJlcXVpcmVkIGRhdGUgZmllbGQgaXMgZW1wdHkiKX0pfX0+CiAgICAgIDxkZWVzLXBhbmVsIC50aXRsZT0keyJGb3JtIFN0YXRlcyJ9IC5zdWJ0aXRsZT0keyJSZXF1aXJlZCBhbmQgZGlzYWJsZWQgc3RhdGVzIn0+CiAgICAgICAgPGRlZXMtaW5wdXQtZGF0ZXBpY2tlcgogICAgICAgICAgbGFiZWw9IkJpcnRoIERhdGUiCiAgICAgICAgICBkZXNjcmlwdGlvbj0iVGhpcyBmaWVsZCBpcyByZXF1aXJlZCIKICAgICAgICAgIC5yZXF1aXJlZD0keyEwfQogICAgICAgICAgcGxhY2Vob2xkZXI9IlNlbGVjdCB5b3VyIGJpcnRoIGRhdGUiCiAgICAgICAgPjwvZGVlcy1pbnB1dC1kYXRlcGlja2VyPgogICAgICAgIAogICAgICAgIDxkZWVzLWlucHV0LWRhdGVwaWNrZXIKICAgICAgICAgIGxhYmVsPSJEaXNhYmxlZCBEYXRlIgogICAgICAgICAgZGVzY3JpcHRpb249IlRoaXMgZmllbGQgY2Fubm90IGJlIGVkaXRlZCIKICAgICAgICAgIC5kaXNhYmxlZD0keyEwfQogICAgICAgICAgLnZhbHVlPSR7bmV3IERhdGUoKS50b0lTT1N0cmluZygpfQogICAgICAgID48L2RlZXMtaW5wdXQtZGF0ZXBpY2tlcj4KICAgICAgPC9kZWVzLXBhbmVsPgogICAgPC9kZWVzLWRlbW93cmFwcGVyPgoKICAgIDxkZWVzLWRlbW93cmFwcGVyIC5ydW5BZnRlclJlbmRlcj0ke2FzeW5jIGU9PntsZXQgdD1lLnF1ZXJ5U2VsZWN0b3IoJ2RlZXMtaW5wdXQtZGF0ZXBpY2tlcltsYWJlbD0iVVMgQ2FsZW5kYXIiXScpLHI9ZS5xdWVyeVNlbGVjdG9yKCdkZWVzLWlucHV0LWRhdGVwaWNrZXJbbGFiZWw9IkVVIENhbGVuZGFyIl0nKTt0JiZjb25zb2xlLmxvZygiVVMgQ2FsZW5kYXIgc3RhcnRzIG9uIFN1bmRheSAoMCkiKSxyJiZjb25zb2xlLmxvZygiRVUgQ2FsZW5kYXIgc3RhcnRzIG9uIE1vbmRheSAoMSkiKX19PgogICAgICA8ZGVlcy1wYW5lbCAudGl0bGU9JHsiQ2FsZW5kYXIgQ3VzdG9taXphdGlvbiJ9IC5zdWJ0aXRsZT0keyJEaWZmZXJlbnQgd2VlayBzdGFydCBkYXlzIGZvciB2YXJpb3VzIHJlZ2lvbnMifT4KICAgICAgICA8ZGl2IGNsYXNzPSJkYXRlLWdyb3VwIj4KICAgICAgICAgIDxkZWVzLWlucHV0LWRhdGVwaWNrZXIKICAgICAgICAgICAgbGFiZWw9IlVTIENhbGVuZGFyIgogICAgICAgICAgICBkZXNjcmlwdGlvbj0iV2VlayBzdGFydHMgb24gU3VuZGF5IgogICAgICAgICAgICAud2Vla1N0YXJ0c09uPSR7MH0KICAgICAgICAgID48L2RlZXMtaW5wdXQtZGF0ZXBpY2tlcj4KICAgICAgICAgIAogICAgICAgICAgPGRlZXMtaW5wdXQtZGF0ZXBpY2tlcgogICAgICAgICAgICBsYWJlbD0iRVUgQ2FsZW5kYXIiCiAgICAgICAgICAgIGRlc2NyaXB0aW9uPSJXZWVrIHN0YXJ0cyBvbiBNb25kYXkiCiAgICAgICAgICAgIC53ZWVrU3RhcnRzT249JHsxfQogICAgICAgICAgPjwvZGVlcy1pbnB1dC1kYXRlcGlja2VyPgogICAgICAgIDwvZGl2PgogICAgICA8L2RlZXMtcGFuZWw+CiAgICA8L2RlZXMtZGVtb3dyYXBwZXI+CgogICAgPGRlZXMtZGVtb3dyYXBwZXIgLnJ1bkFmdGVyUmVuZGVyPSR7YXN5bmMgZT0+e2xldCB0PSgpPT57bGV0IGk9W10sYT1uZXcgRGF0ZSxuPWEuZ2V0RnVsbFllYXIoKSxvPWEuZ2V0TW9udGgoKSxzPW5ldyBEYXRlKG4sbywxKTtmb3IoO3MuZ2V0TW9udGgoKT09PW87KShzLmdldERheSgpPT09MHx8cy5nZXREYXkoKT09PTYpJiZpLnB1c2gobmV3IERhdGUocykudG9JU09TdHJpbmcoKSkscy5zZXREYXRlKHMuZ2V0RGF0ZSgpKzEpO3JldHVybiBpfSxyPWUucXVlcnlTZWxlY3RvcigiZGVlcy1pbnB1dC1kYXRlcGlja2VyIik7ciYmKHIuZGlzYWJsZWREYXRlcz10KCksY29uc29sZS5sb2coIkRpc2FibGVkIHdlZWtlbmQgZGF0ZXMgZm9yIGN1cnJlbnQgbW9udGgiKSl9fT4KICAgICAgPGRlZXMtcGFuZWwgLnRpdGxlPSR7IkRpc2FibGVkIERhdGVzIn0gLnN1YnRpdGxlPSR7IkNhbGVuZGFyIHdpdGggc3BlY2lmaWMgZGF0ZXMgZGlzYWJsZWQgKHdlZWtlbmRzIGluIGN1cnJlbnQgbW9udGgpIn0+CiAgICAgICAgPGRlZXMtaW5wdXQtZGF0ZXBpY2tlcgogICAgICAgICAgbGFiZWw9IkF2YWlsYWJpbGl0eSBDYWxlbmRhciIKICAgICAgICAgIGRlc2NyaXB0aW9uPSJXZWVrZW5kcyBhcmUgZGlzYWJsZWQgZm9yIHRoZSBjdXJyZW50IG1vbnRoIgogICAgICAgID48L2RlZXMtaW5wdXQtZGF0ZXBpY2tlcj4KICAgICAgPC9kZWVzLXBhbmVsPgogICAgPC9kZWVzLWRlbW93cmFwcGVyPgoKICAgIDxkZWVzLWRlbW93cmFwcGVyIC5ydW5BZnRlclJlbmRlcj0ke2FzeW5jIGU9PntsZXQgdD1uZXcgRGF0ZSxyPXQuZ2V0TW9udGgoKSxpPXQuZ2V0RnVsbFllYXIoKSxhPVt7ZGF0ZTpgJHtpfS0keyhyKzEpLnRvU3RyaW5nKCkucGFkU3RhcnQoMiwiMCIpfS0ke3QuZ2V0RGF0ZSgpLnRvU3RyaW5nKCkucGFkU3RhcnQoMiwiMCIpfWAsdGl0bGU6IlRlYW0gTWVldGluZyIsdHlwZToiaW5mbyIsY291bnQ6Mn0se2RhdGU6YCR7aX0tJHsocisxKS50b1N0cmluZygpLnBhZFN0YXJ0KDIsIjAiKX0tJHsodC5nZXREYXRlKCkrMSkudG9TdHJpbmcoKS5wYWRTdGFydCgyLCIwIil9YCx0aXRsZToiUHJvamVjdCBEZWFkbGluZSIsdHlwZToid2FybmluZyJ9LHtkYXRlOmAke2l9LSR7KHIrMSkudG9TdHJpbmcoKS5wYWRTdGFydCgyLCIwIil9LSR7KHQuZ2V0RGF0ZSgpKzIpLnRvU3RyaW5nKCkucGFkU3RhcnQoMiwiMCIpfWAsdGl0bGU6IlJlbGVhc2UgRGF5Iix0eXBlOiJzdWNjZXNzIn0se2RhdGU6YCR7aX0tJHsocisxKS50b1N0cmluZygpLnBhZFN0YXJ0KDIsIjAiKX0tJHsodC5nZXREYXRlKCkrNSkudG9TdHJpbmcoKS5wYWRTdGFydCgyLCIwIil9YCx0aXRsZToiVXJnZW50IEZpeCBSZXF1aXJlZCIsdHlwZToiZXJyb3IifSx7ZGF0ZTpgJHtpfS0keyhyKzEpLnRvU3RyaW5nKCkucGFkU3RhcnQoMiwiMCIpfS0keyh0LmdldERhdGUoKSs3KS50b1N0cmluZygpLnBhZFN0YXJ0KDIsIjAiKX1gLHRpdGxlOiJNdWx0aXBsZSBFdmVudHMgVG9kYXkiLHR5cGU6ImluZm8iLGNvdW50OjV9LHtkYXRlOmAke2l9LSR7KHIrMikudG9TdHJpbmcoKS5wYWRTdGFydCgyLCIwIil9LTE1YCx0aXRsZToiRnV0dXJlIFBsYW5uaW5nIFNlc3Npb24iLHR5cGU6ImluZm8ifV0sbj1lLnF1ZXJ5U2VsZWN0b3IoImRlZXMtaW5wdXQtZGF0ZXBpY2tlciIpO24mJihuLmV2ZW50cz1hLGNvbnNvbGUubG9nKCJDYWxlbmRhciBldmVudHMgbG9hZGVkOiIsYSkpfX0+CiAgICAgIDxkZWVzLXBhbmVsIC50aXRsZT0keyJDYWxlbmRhciB3aXRoIEV2ZW50cyJ9IC5zdWJ0aXRsZT0keyJWaXN1YWwgZmVlZGJhY2sgZm9yIHNjaGVkdWxlZCBldmVudHMifT4KICAgICAgICA8ZGVlcy1pbnB1dC1kYXRlcGlja2VyCiAgICAgICAgICBsYWJlbD0iRXZlbnQgQ2FsZW5kYXIiCiAgICAgICAgICBkZXNjcmlwdGlvbj0iRGF5cyB3aXRoIGNvbG9yZWQgZG90cyBoYXZlIGV2ZW50cy4gSG92ZXIgdG8gc2VlIGRldGFpbHMuIgogICAgICAgID48L2RlZXMtaW5wdXQtZGF0ZXBpY2tlcj4KICAgICAgICAKICAgICAgICA8ZGl2IGNsYXNzPSJkZW1vLW91dHB1dCIgc3R5bGU9Im1hcmdpbi10b3A6IDE2cHg7Ij4KICAgICAgICAgIDxzdHJvbmc+RXZlbnQgTGVnZW5kOjwvc3Ryb25nPjxicj4KICAgICAgICAgIDxzcGFuIHN0eWxlPSJjb2xvcjogIzA5NjlkYTsiPuKXjyBJbmZvPC9zcGFuPiB8IAogICAgICAgICAgPHNwYW4gc3R5bGU9ImNvbG9yOiAjZDI5OTIyOyI+4pePIFdhcm5pbmc8L3NwYW4+IHwgCiAgICAgICAgICA8c3BhbiBzdHlsZT0iY29sb3I6ICMyZWEwNDM7Ij7il48gU3VjY2Vzczwvc3Bhbj4gfCAKICAgICAgICAgIDxzcGFuIHN0eWxlPSJjb2xvcjogI2NmMjIyZTsiPuKXjyBFcnJvcjwvc3Bhbj48YnI+CiAgICAgICAgICA8ZW0+RGF5cyB3aXRoIG1vcmUgdGhhbiAzIGV2ZW50cyBzaG93IGEgY291bnQgYmFkZ2U8L2VtPgogICAgICAgIDwvZGl2PgogICAgICA8L2RlZXMtcGFuZWw+CiAgICA8L2RlZXMtZGVtb3dyYXBwZXI+CgogICAgPGRlZXMtZGVtb3dyYXBwZXIgLnJ1bkFmdGVyUmVuZGVyPSR7YXN5bmMgZT0+e2xldCB0PWUucXVlcnlTZWxlY3RvcigiZGVlcy1pbnB1dC1kYXRlcGlja2VyIikscj1lLnF1ZXJ5U2VsZWN0b3IoIiNldmVudC1vdXRwdXQiKTt0JiZyJiYodC5hZGRFdmVudExpc3RlbmVyKCJjaGFuZ2UiLGk9PntsZXQgYT1pLnRhcmdldCxuPWEudmFsdWU7aWYobil7bGV0IG89bmV3IERhdGUobiksbD1hLnNoYWRvd1Jvb3Q/LnF1ZXJ5U2VsZWN0b3IoIi5kYXRlLWlucHV0Iik/LnZhbHVlfHwiTi9BIjtyLmlubmVySFRNTD1gCiAgICAgICAgICAgICAgPHN0cm9uZz5FdmVudCB0cmlnZ2VyZWQhPC9zdHJvbmc+PGJyPgogICAgICAgICAgICAgIElTTyBWYWx1ZTogJHtufTxicj4KICAgICAgICAgICAgICBGb3JtYXR0ZWQ6ICR7bH08YnI+CiAgICAgICAgICAgICAgRGF0ZSBvYmplY3Q6ICR7by50b0xvY2FsZVN0cmluZygpfQogICAgICAgICAgICBgfWVsc2Ugci5pbm5lckhUTUw9IjxlbT5EYXRlIGNsZWFyZWQ8L2VtPiJ9KSx0LmFkZEV2ZW50TGlzdGVuZXIoImJsdXIiLCgpPT57Y29uc29sZS5sb2coIkRhdGVwaWNrZXIgbG9zdCBmb2N1cyIpfSkpfX0+CiAgICAgIDxkZWVzLXBhbmVsIC50aXRsZT0keyJFdmVudCBIYW5kbGluZyJ9IC5zdWJ0aXRsZT0keyJJbnRlcmFjdGl2ZSBkZW1vbnN0cmF0aW9uIG9mIGNoYW5nZSBldmVudHMifT4KICAgICAgICA8ZGVlcy1pbnB1dC1kYXRlcGlja2VyCiAgICAgICAgICBsYWJlbD0iRXZlbnQgRGVtbyIKICAgICAgICAgIGRlc2NyaXB0aW9uPSJTZWxlY3QgYSBkYXRlIHRvIHNlZSB0aGUgZXZlbnQgZGV0YWlscyIKICAgICAgICA+PC9kZWVzLWlucHV0LWRhdGVwaWNrZXI+CiAgICAgICAgCiAgICAgICAgPGRpdiBpZD0iZXZlbnQtb3V0cHV0IiBjbGFzcz0iZGVtby1vdXRwdXQiPgogICAgICAgICAgPGVtPlNlbGVjdCBhIGRhdGUgdG8gc2VlIGV2ZW50IGRldGFpbHMuLi48L2VtPgogICAgICAgIDwvZGl2PgogICAgICA8L2RlZXMtcGFuZWw+CiAgICA8L2RlZXMtZGVtb3dyYXBwZXI+CiAgPC9kaXY+CmB9KTt2YXIgQ3NyLFRzcj1wKCgpPT57eGUoKTtNMSgpO0Nzcj1bLi4ub3QuYmFzZVN0eWxlcyxtLmRlZmF1bHRTdHlsZXMsb2VgCiAgICAgIDpob3N0IHsKICAgICAgICBkaXNwbGF5OiBibG9jazsKICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgIH0KCiAgICAgIC5pbnB1dC1jb250YWluZXIgewogICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgICB3aWR0aDogMTAwJTsKICAgICAgfQoKICAgICAgLmRhdGUtaW5wdXQgewogICAgICAgIHdpZHRoOiAxMDAlOwogICAgICAgIGhlaWdodDogNDBweDsKICAgICAgICBwYWRkaW5nOiAwIDEycHg7CiAgICAgICAgYmFja2dyb3VuZDogJHttLmJkVGhlbWUoImhzbCgwIDAlIDEwMCUpIiwiaHNsKDIyNCA3MS40JSA0LjElKSIpfTsKICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAke20uYmRUaGVtZSgiaHNsKDIxNC4zIDMxLjglIDkxLjQlKSIsImhzbCgyMTcuMiAzMi42JSAxNy41JSkiKX07CiAgICAgICAgYm9yZGVyLXJhZGl1czogNnB4OwogICAgICAgIGZvbnQtc2l6ZTogMTRweDsKICAgICAgICBsaW5lLWhlaWdodDogMS41OwogICAgICAgIGNvbG9yOiAke20uYmRUaGVtZSgiaHNsKDIyNCA3MS40JSA0LjElKSIsImhzbCgyMTAgMjAlIDk4JSkiKX07CiAgICAgICAgY3Vyc29yOiBwb2ludGVyOwogICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjJzIGVhc2U7CiAgICAgICAgb3V0bGluZTogbm9uZTsKICAgICAgICBmb250LWZhbWlseTogaW5oZXJpdDsKICAgICAgfQoKICAgICAgLmRhdGUtaW5wdXQ6OnBsYWNlaG9sZGVyIHsKICAgICAgICBjb2xvcjogJHttLmJkVGhlbWUoImhzbCgyMjAgOC45JSA0Ni4xJSkiLCJoc2woMjE1IDIwLjIlIDY1LjElKSIpfTsKICAgICAgfQoKICAgICAgLmRhdGUtaW5wdXQ6aG92ZXI6bm90KDpkaXNhYmxlZCkgewogICAgICAgIGJvcmRlci1jb2xvcjogJHttLmJkVGhlbWUoImhzbCgyMTQuMyAzMS44JSA5MS40JSkiLCJoc2woMjE3LjIgMzIuNiUgMTcuNSUpIil9OwogICAgICAgIGJhY2tncm91bmQ6ICR7bS5iZFRoZW1lKCJoc2woMjEwIDIwJSA5OCUpIiwiaHNsKDIxNSAyNy45JSAxNi45JSkiKX07CiAgICAgIH0KCiAgICAgIC5kYXRlLWlucHV0OmZvY3VzLAogICAgICAuZGF0ZS1pbnB1dC5vcGVuIHsKICAgICAgICBib3JkZXItY29sb3I6ICR7bS5iZFRoZW1lKCJoc2woMjIyLjIgNDcuNCUgMTEuMiUpIiwiaHNsKDIxMCAyMCUgOTglKSIpfTsKICAgICAgICBvdXRsaW5lOiAycHggc29saWQgdHJhbnNwYXJlbnQ7CiAgICAgICAgb3V0bGluZS1vZmZzZXQ6IDJweDsKICAgICAgICBib3gtc2hhZG93OiAwIDAgMCAycHggJHttLmJkVGhlbWUoImhzbCgwIDAlIDEwMCUpIiwiaHNsKDIyNCA3MS40JSA0LjElKSIpfSwKICAgICAgICAgICAgICAgICAgICAwIDAgMCA0cHggJHttLmJkVGhlbWUoImhzbCgyMjIuMiA0Ny40JSAxMS4yJSAvIDAuMSkiLCJoc2woMjEwIDIwJSA5OCUgLyAwLjEpIil9OwogICAgICB9CgogICAgICAuZGF0ZS1pbnB1dDpkaXNhYmxlZCB7CiAgICAgICAgYmFja2dyb3VuZDogJHttLmJkVGhlbWUoImhzbCgyMTAgMjAlIDk4JSkiLCJoc2woMjE1IDI3LjklIDE2LjklKSIpfTsKICAgICAgICBjb2xvcjogJHttLmJkVGhlbWUoImhzbCgyMjAgOC45JSA0Ni4xJSkiLCJoc2woMjE1IDIwLjIlIDY1LjElKSIpfTsKICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkOwogICAgICAgIG9wYWNpdHk6IDAuNTsKICAgICAgfQoKICAgICAgLyogSWNvbiBjb250YWluZXIgdXNpbmcgZmxleGJveCBmb3IgYmV0dGVyIHBvc2l0aW9uaW5nICovCiAgICAgIC5pY29uLWNvbnRhaW5lciB7CiAgICAgICAgcG9zaXRpb246IGFic29sdXRlOwogICAgICAgIHJpZ2h0OiAwOwogICAgICAgIHRvcDogMDsKICAgICAgICBib3R0b206IDA7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGdhcDogNHB4OwogICAgICAgIHBhZGRpbmc6IDAgMTJweDsKICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTsKICAgICAgfQoKICAgICAgLmljb24tY29udGFpbmVyID4gKiB7CiAgICAgICAgcG9pbnRlci1ldmVudHM6IGF1dG87CiAgICAgIH0KCiAgICAgIC5jYWxlbmRhci1pY29uIHsKICAgICAgICBjb2xvcjogJHttLmJkVGhlbWUoImhzbCgyMjAgOC45JSA0Ni4xJSkiLCJoc2woMjE1IDIwLjIlIDY1LjElKSIpfTsKICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7CiAgICAgIH0KCiAgICAgIC5jbGVhci1idXR0b24gewogICAgICAgIHdpZHRoOiAyMHB4OwogICAgICAgIGhlaWdodDogMjBweDsKICAgICAgICBib3JkZXI6IG5vbmU7CiAgICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7CiAgICAgICAgY3Vyc29yOiBwb2ludGVyOwogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKICAgICAgICBib3JkZXItcmFkaXVzOiA0cHg7CiAgICAgICAgY29sb3I6ICR7bS5iZFRoZW1lKCJoc2woMjIwIDguOSUgNDYuMSUpIiwiaHNsKDIxNSAyMC4yJSA2NS4xJSkiKX07CiAgICAgICAgdHJhbnNpdGlvbjogb3BhY2l0eSAwLjJzIGVhc2UsIGJhY2tncm91bmQtY29sb3IgMC4ycyBlYXNlOwogICAgICAgIHBhZGRpbmc6IDA7CiAgICAgICAgZmxleC1zaHJpbms6IDA7CiAgICAgIH0KCiAgICAgIC5jbGVhci1idXR0b246aG92ZXIgewogICAgICAgIGJhY2tncm91bmQ6ICR7bS5iZFRoZW1lKCJoc2woMjEwIDIwJSA5OCUpIiwiaHNsKDIxNSAyNy45JSAxNi45JSkiKX07CiAgICAgICAgY29sb3I6ICR7bS5iZFRoZW1lKCJoc2woMjI0IDcxLjQlIDQuMSUpIiwiaHNsKDIxMCAyMCUgOTglKSIpfTsKICAgICAgfQoKICAgICAgLmNsZWFyLWJ1dHRvbjpkaXNhYmxlZCB7CiAgICAgICAgZGlzcGxheTogbm9uZTsKICAgICAgfQoKICAgICAgLyogQ2FsZW5kYXIgUG9wdXAgU3R5bGVzICovCiAgICAgIC5jYWxlbmRhci1wb3B1cCB7CiAgICAgICAgd2lsbC1jaGFuZ2U6IHRyYW5zZm9ybSwgb3BhY2l0eTsKICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTsKICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC4ycyBlYXNlOwogICAgICAgIG9wYWNpdHk6IDA7CiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC00cHgpOwogICAgICAgIGJhY2tncm91bmQ6ICR7bS5iZFRoZW1lKCJoc2woMCAwJSAxMDAlKSIsImhzbCgyMjQgNzEuNCUgNC4xJSkiKX07CiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHttLmJkVGhlbWUoImhzbCgyMTQuMyAzMS44JSA5MS40JSkiLCJoc2woMjE3LjIgMzIuNiUgMTcuNSUpIil9OwogICAgICAgIGJveC1zaGFkb3c6ICR7bS5iZFRoZW1lKCIwIDEwcHggMTVweCAtM3B4IGhzbCgwIDAlIDAlIC8gMC4xKSwgMCA0cHggNnB4IC00cHggaHNsKDAgMCUgMCUgLyAwLjEpIiwiMCAxMHB4IDE1cHggLTNweCBoc2woMCAwJSAwJSAvIDAuMiksIDAgNHB4IDZweCAtNHB4IGhzbCgwIDAlIDAlIC8gMC4yKSIpfTsKICAgICAgICBib3JkZXItcmFkaXVzOiA2cHg7CiAgICAgICAgcGFkZGluZzogMTJweDsKICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgICAgdXNlci1zZWxlY3Q6IG5vbmU7CiAgICAgICAgbWFyZ2luLXRvcDogNHB4OwogICAgICAgIHotaW5kZXg6IDUwOwogICAgICAgIGxlZnQ6IDA7CiAgICAgICAgbWluLXdpZHRoOiAyODBweDsKICAgICAgfQoKICAgICAgLmNhbGVuZGFyLXBvcHVwLnRvcCB7CiAgICAgICAgYm90dG9tOiBjYWxjKDEwMCUgKyA0cHgpOwogICAgICAgIHRvcDogYXV0bzsKICAgICAgICBtYXJnaW4tdG9wOiAwOwogICAgICAgIG1hcmdpbi1ib3R0b206IDRweDsKICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoNHB4KTsKICAgICAgfQoKICAgICAgLmNhbGVuZGFyLXBvcHVwLmJvdHRvbSB7CiAgICAgICAgdG9wOiAxMDAlOwogICAgICB9CgogICAgICAuY2FsZW5kYXItcG9wdXAuc2hvdyB7CiAgICAgICAgcG9pbnRlci1ldmVudHM6IGFsbDsKICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMCk7CiAgICAgICAgb3BhY2l0eTogMTsKICAgICAgfQoKICAgICAgLyogQ2FsZW5kYXIgSGVhZGVyICovCiAgICAgIC5jYWxlbmRhci1oZWFkZXIgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47CiAgICAgICAgbWFyZ2luLWJvdHRvbTogMTZweDsKICAgICAgICBnYXA6IDhweDsKICAgICAgfQoKICAgICAgLm1vbnRoLXllYXItZGlzcGxheSB7CiAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDsKICAgICAgICBmb250LXNpemU6IDE0cHg7CiAgICAgICAgY29sb3I6ICR7bS5iZFRoZW1lKCJoc2woMjI0IDcxLjQlIDQuMSUpIiwiaHNsKDIxMCAyMCUgOTglKSIpfTsKICAgICAgICBmbGV4OiAxOwogICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjsKICAgICAgfQoKICAgICAgLm5hdi1idXR0b24gewogICAgICAgIHdpZHRoOiAyOHB4OwogICAgICAgIGhlaWdodDogMjhweDsKICAgICAgICBib3JkZXI6IG5vbmU7CiAgICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7CiAgICAgICAgY3Vyc29yOiBwb2ludGVyOwogICAgICAgIGJvcmRlci1yYWRpdXM6IDZweDsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7CiAgICAgICAgY29sb3I6ICR7bS5iZFRoZW1lKCJoc2woMjIwIDguOSUgNDYuMSUpIiwiaHNsKDIxNSAyMC4yJSA2NS4xJSkiKX07CiAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuMnMgZWFzZTsKICAgICAgfQoKICAgICAgLm5hdi1idXR0b246aG92ZXIgewogICAgICAgIGJhY2tncm91bmQ6ICR7bS5iZFRoZW1lKCJoc2woMjEwIDIwJSA5OCUpIiwiaHNsKDIxNSAyNy45JSAxNi45JSkiKX07CiAgICAgICAgY29sb3I6ICR7bS5iZFRoZW1lKCJoc2woMjI0IDcxLjQlIDQuMSUpIiwiaHNsKDIxMCAyMCUgOTglKSIpfTsKICAgICAgfQoKICAgICAgLm5hdi1idXR0b246YWN0aXZlIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke20uYmRUaGVtZSgiaHNsKDIxNC4zIDMxLjglIDkxLjQlKSIsImhzbCgyMTcuMiAzMi42JSAxNy41JSkiKX07CiAgICAgIH0KCiAgICAgIC8qIFdlZWtkYXkgaGVhZGVycyAqLwogICAgICAud2Vla2RheXMgewogICAgICAgIGRpc3BsYXk6IGdyaWQ7CiAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoNywgMWZyKTsKICAgICAgICBnYXA6IDA7CiAgICAgICAgbWFyZ2luLWJvdHRvbTogNHB4OwogICAgICB9CgogICAgICAud2Vla2RheSB7CiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyOwogICAgICAgIGZvbnQtc2l6ZTogMTJweDsKICAgICAgICBmb250LXdlaWdodDogNDAwOwogICAgICAgIGNvbG9yOiAke20uYmRUaGVtZSgiaHNsKDIyMCA4LjklIDQ2LjElKSIsImhzbCgyMTUgMjAuMiUgNjUuMSUpIil9OwogICAgICAgIHBhZGRpbmc6IDAgMCA4cHggMDsKICAgICAgfQoKICAgICAgLyogRGF5cyBncmlkICovCiAgICAgIC5kYXlzLWdyaWQgewogICAgICAgIGRpc3BsYXk6IGdyaWQ7CiAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoNywgMWZyKTsKICAgICAgICBnYXA6IDJweDsKICAgICAgfQoKICAgICAgLmRheSB7CiAgICAgICAgYXNwZWN0LXJhdGlvOiAxOwogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKICAgICAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICAgICAgYm9yZGVyLXJhZGl1czogNnB4OwogICAgICAgIGZvbnQtc2l6ZTogMTRweDsKICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC4ycyBlYXNlOwogICAgICAgIGNvbG9yOiAke20uYmRUaGVtZSgiaHNsKDIyNCA3MS40JSA0LjElKSIsImhzbCgyMTAgMjAlIDk4JSkiKX07CiAgICAgICAgYm9yZGVyOiBub25lOwogICAgICAgIHdpZHRoOiAzNnB4OwogICAgICAgIGhlaWdodDogMzZweDsKICAgICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDsKICAgICAgfQoKICAgICAgLmRheTpob3Zlcjpub3QoLmRpc2FibGVkKSB7CiAgICAgICAgYmFja2dyb3VuZDogJHttLmJkVGhlbWUoImhzbCgyMTAgMjAlIDk4JSkiLCJoc2woMjE1IDI3LjklIDE2LjklKSIpfTsKICAgICAgfQoKICAgICAgLmRheS5vdGhlci1tb250aCB7CiAgICAgICAgY29sb3I6ICR7bS5iZFRoZW1lKCJoc2woMjIwIDguOSUgNDYuMSUpIiwiaHNsKDIxNSAyMC4yJSA2NS4xJSkiKX07CiAgICAgICAgb3BhY2l0eTogMC41OwogICAgICB9CgogICAgICAuZGF5LnRvZGF5IHsKICAgICAgICBiYWNrZ3JvdW5kOiAke20uYmRUaGVtZSgiaHNsKDIxMCAyMCUgOTglKSIsImhzbCgyMTUgMjcuOSUgMTYuOSUpIil9OwogICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7CiAgICAgIH0KCiAgICAgIC5kYXkuc2VsZWN0ZWQgewogICAgICAgIGJhY2tncm91bmQ6ICR7bS5iZFRoZW1lKCJoc2woMjIyLjIgNDcuNCUgMTEuMiUpIiwiaHNsKDIxMCAyMCUgOTglKSIpfTsKICAgICAgICBjb2xvcjogJHttLmJkVGhlbWUoImhzbCgyMTAgMjAlIDk4JSkiLCJoc2woMjIyLjIgNDcuNCUgMTEuMiUpIil9OwogICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7CiAgICAgIH0KCiAgICAgIC5kYXkuZGlzYWJsZWQgewogICAgICAgIGNvbG9yOiAke20uYmRUaGVtZSgiaHNsKDIyMCA4LjklIDQ2LjElKSIsImhzbCgyMTUgMjAuMiUgNjUuMSUpIil9OwogICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7CiAgICAgICAgb3BhY2l0eTogMC4zOwogICAgICB9CgogICAgICAvKiBFdmVudCBpbmRpY2F0b3JzICovCiAgICAgIC5kYXkuaGFzLWV2ZW50IHsKICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgIH0KCiAgICAgIC5ldmVudC1pbmRpY2F0b3IgewogICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgICBib3R0b206IDRweDsKICAgICAgICBsZWZ0OiA1MCU7CiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC01MCUpOwogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgZ2FwOiAycHg7CiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7CiAgICAgIH0KCiAgICAgIC5ldmVudC1kb3QgewogICAgICAgIHdpZHRoOiA0cHg7CiAgICAgICAgaGVpZ2h0OiA0cHg7CiAgICAgICAgYm9yZGVyLXJhZGl1czogNTAlOwogICAgICAgIGJhY2tncm91bmQ6ICR7bS5iZFRoZW1lKCJoc2woMjIwIDguOSUgNDYuMSUpIiwiaHNsKDIxNSAyMC4yJSA2NS4xJSkiKX07CiAgICAgIH0KCiAgICAgIC5ldmVudC1kb3QuaW5mbyB7CiAgICAgICAgYmFja2dyb3VuZDogJHttLmJkVGhlbWUoImhzbCgyMTEgNzAlIDUyJSkiLCJoc2woMjExIDcwJSA2MiUpIil9OwogICAgICB9CgogICAgICAuZXZlbnQtZG90Lndhcm5pbmcgewogICAgICAgIGJhY2tncm91bmQ6ICR7bS5iZFRoZW1lKCJoc2woNDUgOTAlIDQ1JSkiLCJoc2woNDUgOTAlIDU1JSkiKX07CiAgICAgIH0KCiAgICAgIC5ldmVudC1kb3Quc3VjY2VzcyB7CiAgICAgICAgYmFja2dyb3VuZDogJHttLmJkVGhlbWUoImhzbCgxNDIgNjklIDQ1JSkiLCJoc2woMTQyIDY5JSA1NSUpIil9OwogICAgICB9CgogICAgICAuZXZlbnQtZG90LmVycm9yIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke20uYmRUaGVtZSgiaHNsKDAgNzIlIDUxJSkiLCJoc2woMCA3MiUgNjElKSIpfTsKICAgICAgfQoKICAgICAgLmV2ZW50LWNvdW50IHsKICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgICAgdG9wOiAycHg7CiAgICAgICAgcmlnaHQ6IDJweDsKICAgICAgICBtaW4td2lkdGg6IDE2cHg7CiAgICAgICAgaGVpZ2h0OiAxNnB4OwogICAgICAgIHBhZGRpbmc6IDAgNHB4OwogICAgICAgIGJhY2tncm91bmQ6ICR7bS5iZFRoZW1lKCJoc2woMCA3MiUgNTElKSIsImhzbCgwIDcyJSA2MSUpIil9OwogICAgICAgIGNvbG9yOiB3aGl0ZTsKICAgICAgICBib3JkZXItcmFkaXVzOiA4cHg7CiAgICAgICAgZm9udC1zaXplOiAxMHB4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOwogICAgICAgIGxpbmUtaGVpZ2h0OiAxOwogICAgICB9CgogICAgICAvKiBUb29sdGlwIGZvciBldmVudCBkZXRhaWxzICovCiAgICAgIC5ldmVudC10b29sdGlwIHsKICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgICAgYm90dG9tOiBjYWxjKDEwMCUgKyA4cHgpOwogICAgICAgIGxlZnQ6IDUwJTsKICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTUwJSk7CiAgICAgICAgYmFja2dyb3VuZDogJHttLmJkVGhlbWUoImhzbCgwIDAlIDIwJSkiLCJoc2woMCAwJSA5MCUpIil9OwogICAgICAgIGNvbG9yOiAke20uYmRUaGVtZSgiaHNsKDAgMCUgMTAwJSkiLCJoc2woMCAwJSAwJSkiKX07CiAgICAgICAgcGFkZGluZzogOHB4IDEycHg7CiAgICAgICAgYm9yZGVyLXJhZGl1czogNnB4OwogICAgICAgIGZvbnQtc2l6ZTogMTJweDsKICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwOwogICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lOwogICAgICAgIG9wYWNpdHk6IDA7CiAgICAgICAgdHJhbnNpdGlvbjogb3BhY2l0eSAwLjJzIGVhc2U7CiAgICAgICAgei1pbmRleDogMTA7CiAgICAgICAgYm94LXNoYWRvdzogMCAycHggOHB4IHJnYmEoMCwgMCwgMCwgMC4yKTsKICAgICAgfQoKICAgICAgLmV2ZW50LXRvb2x0aXA6OmFmdGVyIHsKICAgICAgICBjb250ZW50OiAnJzsKICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgICAgdG9wOiAxMDAlOwogICAgICAgIGxlZnQ6IDUwJTsKICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTUwJSk7CiAgICAgICAgYm9yZGVyOiA0cHggc29saWQgdHJhbnNwYXJlbnQ7CiAgICAgICAgYm9yZGVyLXRvcC1jb2xvcjogJHttLmJkVGhlbWUoImhzbCgwIDAlIDIwJSkiLCJoc2woMCAwJSA5MCUpIil9OwogICAgICB9CgogICAgICAuZGF5Lmhhcy1ldmVudDpob3ZlciAuZXZlbnQtdG9vbHRpcCB7CiAgICAgICAgb3BhY2l0eTogMTsKICAgICAgfQoKICAgICAgLyogVGltZSBzZWxlY3RvciAqLwogICAgICAudGltZS1zZWxlY3RvciB7CiAgICAgICAgbWFyZ2luLXRvcDogMTJweDsKICAgICAgICBwYWRkaW5nLXRvcDogMTJweDsKICAgICAgICBib3JkZXItdG9wOiAxcHggc29saWQgJHttLmJkVGhlbWUoImhzbCgyMTQuMyAzMS44JSA5MS40JSkiLCJoc2woMjE3LjIgMzIuNiUgMTcuNSUpIil9OwogICAgICB9CgogICAgICAudGltZS1zZWxlY3Rvci10aXRsZSB7CiAgICAgICAgZm9udC1zaXplOiAxMnB4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7CiAgICAgICAgbWFyZ2luLWJvdHRvbTogOHB4OwogICAgICAgIGNvbG9yOiAke20uYmRUaGVtZSgiaHNsKDIyMCA4LjklIDQ2LjElKSIsImhzbCgyMTUgMjAuMiUgNjUuMSUpIil9OwogICAgICB9CgogICAgICAudGltZS1pbnB1dHMgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgZ2FwOiA4cHg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgfQoKICAgICAgLnRpbWUtaW5wdXQgewogICAgICAgIHdpZHRoOiA2NXB4OwogICAgICAgIGhlaWdodDogMzZweDsKICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAke20uYmRUaGVtZSgiaHNsKDIxNC4zIDMxLjglIDkxLjQlKSIsImhzbCgyMTcuMiAzMi42JSAxNy41JSkiKX07CiAgICAgICAgYm9yZGVyLXJhZGl1czogNnB4OwogICAgICAgIHBhZGRpbmc6IDAgMTJweDsKICAgICAgICBmb250LXNpemU6IDE0cHg7CiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyOwogICAgICAgIGJhY2tncm91bmQ6ICR7bS5iZFRoZW1lKCJoc2woMCAwJSAxMDAlKSIsImhzbCgyMjQgNzEuNCUgNC4xJSkiKX07CiAgICAgICAgY29sb3I6ICR7bS5iZFRoZW1lKCJoc2woMjI0IDcxLjQlIDQuMSUpIiwiaHNsKDIxMCAyMCUgOTglKSIpfTsKICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC4ycyBlYXNlOwogICAgICB9CgogICAgICAudGltZS1pbnB1dDpob3ZlciB7CiAgICAgICAgYm9yZGVyLWNvbG9yOiAke20uYmRUaGVtZSgiaHNsKDIxNC4zIDMxLjglIDkxLjQlKSIsImhzbCgyMTcuMiAzMi42JSAxNy41JSkiKX07CiAgICAgICAgYmFja2dyb3VuZDogJHttLmJkVGhlbWUoImhzbCgyMTAgMjAlIDk4JSkiLCJoc2woMjE1IDI3LjklIDE2LjklKSIpfTsKICAgICAgfQoKICAgICAgLnRpbWUtaW5wdXQ6Zm9jdXMgewogICAgICAgIG91dGxpbmU6IG5vbmU7CiAgICAgICAgYm9yZGVyLWNvbG9yOiAke20uYmRUaGVtZSgiaHNsKDIyMi4yIDQ3LjQlIDExLjIlKSIsImhzbCgyMTAgMjAlIDk4JSkiKX07CiAgICAgICAgYm94LXNoYWRvdzogMCAwIDAgMnB4ICR7bS5iZFRoZW1lKCJoc2woMjIyLjIgNDcuNCUgMTEuMiUgLyAwLjEpIiwiaHNsKDIxMCAyMCUgOTglIC8gMC4xKSIpfTsKICAgICAgfQoKICAgICAgLnRpbWUtc2VwYXJhdG9yIHsKICAgICAgICBmb250LXNpemU6IDE0cHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDsKICAgICAgICBjb2xvcjogJHttLmJkVGhlbWUoImhzbCgyMjAgOC45JSA0Ni4xJSkiLCJoc2woMjE1IDIwLjIlIDY1LjElKSIpfTsKICAgICAgfQoKICAgICAgLmFtLXBtLXNlbGVjdG9yIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGdhcDogNHB4OwogICAgICAgIG1hcmdpbi1sZWZ0OiA4cHg7CiAgICAgIH0KCiAgICAgIC5hbS1wbS1idXR0b24gewogICAgICAgIHBhZGRpbmc6IDZweCAxMnB4OwogICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICR7bS5iZFRoZW1lKCJoc2woMjE0LjMgMzEuOCUgOTEuNCUpIiwiaHNsKDIxNy4yIDMyLjYlIDE3LjUlKSIpfTsKICAgICAgICBiYWNrZ3JvdW5kOiAke20uYmRUaGVtZSgiaHNsKDAgMCUgMTAwJSkiLCJoc2woMjI0IDcxLjQlIDQuMSUpIil9OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDZweDsKICAgICAgICBmb250LXNpemU6IDEycHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDsKICAgICAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuMnMgZWFzZTsKICAgICAgICBjb2xvcjogJHttLmJkVGhlbWUoImhzbCgyMjAgOC45JSA0Ni4xJSkiLCJoc2woMjE1IDIwLjIlIDY1LjElKSIpfTsKICAgICAgfQoKICAgICAgLmFtLXBtLWJ1dHRvbi5zZWxlY3RlZCB7CiAgICAgICAgYmFja2dyb3VuZDogJHttLmJkVGhlbWUoImhzbCgyMjIuMiA0Ny40JSAxMS4yJSkiLCJoc2woMjEwIDIwJSA5OCUpIil9OwogICAgICAgIGNvbG9yOiAke20uYmRUaGVtZSgiaHNsKDIxMCAyMCUgOTglKSIsImhzbCgyMjIuMiA0Ny40JSAxMS4yJSkiKX07CiAgICAgICAgYm9yZGVyLWNvbG9yOiAke20uYmRUaGVtZSgiaHNsKDIyMi4yIDQ3LjQlIDExLjIlKSIsImhzbCgyMTAgMjAlIDk4JSkiKX07CiAgICAgIH0KCiAgICAgIC5hbS1wbS1idXR0b246aG92ZXI6bm90KC5zZWxlY3RlZCkgewogICAgICAgIGJhY2tncm91bmQ6ICR7bS5iZFRoZW1lKCJoc2woMjEwIDIwJSA5OCUpIiwiaHNsKDIxNSAyNy45JSAxNi45JSkiKX07CiAgICAgICAgYm9yZGVyLWNvbG9yOiAke20uYmRUaGVtZSgiaHNsKDIxNC4zIDMxLjglIDkxLjQlKSIsImhzbCgyMTcuMiAzMi42JSAxNy41JSkiKX07CiAgICAgIH0KCiAgICAgIC8qIEFjdGlvbiBidXR0b25zICovCiAgICAgIC5jYWxlbmRhci1hY3Rpb25zIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGdhcDogOHB4OwogICAgICAgIG1hcmdpbi10b3A6IDEycHg7CiAgICAgICAgcGFkZGluZy10b3A6IDEycHg7CiAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICR7bS5iZFRoZW1lKCJoc2woMjE0LjMgMzEuOCUgOTEuNCUpIiwiaHNsKDIxNy4yIDMyLjYlIDE3LjUlKSIpfTsKICAgICAgfQoKICAgICAgLmFjdGlvbi1idXR0b24gewogICAgICAgIGZsZXg6IDE7CiAgICAgICAgaGVpZ2h0OiAzNnB4OwogICAgICAgIGJvcmRlcjogbm9uZTsKICAgICAgICBib3JkZXItcmFkaXVzOiA2cHg7CiAgICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7CiAgICAgICAgY3Vyc29yOiBwb2ludGVyOwogICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjJzIGVhc2U7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOwogICAgICB9CgogICAgICAudG9kYXktYnV0dG9uIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke20uYmRUaGVtZSgiaHNsKDAgMCUgMTAwJSkiLCJoc2woMjI0IDcxLjQlIDQuMSUpIil9OwogICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICR7bS5iZFRoZW1lKCJoc2woMjE0LjMgMzEuOCUgOTEuNCUpIiwiaHNsKDIxNy4yIDMyLjYlIDE3LjUlKSIpfTsKICAgICAgICBjb2xvcjogJHttLmJkVGhlbWUoImhzbCgyMjQgNzEuNCUgNC4xJSkiLCJoc2woMjEwIDIwJSA5OCUpIil9OwogICAgICB9CgogICAgICAudG9kYXktYnV0dG9uOmhvdmVyIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke20uYmRUaGVtZSgiaHNsKDIxMCAyMCUgOTglKSIsImhzbCgyMTUgMjcuOSUgMTYuOSUpIil9OwogICAgICAgIGJvcmRlci1jb2xvcjogJHttLmJkVGhlbWUoImhzbCgyMTQuMyAzMS44JSA5MS40JSkiLCJoc2woMjE3LjIgMzIuNiUgMTcuNSUpIil9OwogICAgICB9CgogICAgICAudG9kYXktYnV0dG9uOmFjdGl2ZSB7CiAgICAgICAgYmFja2dyb3VuZDogJHttLmJkVGhlbWUoImhzbCgyMTQuMyAzMS44JSA5MS40JSkiLCJoc2woMjE3LjIgMzIuNiUgMTcuNSUpIil9OwogICAgICB9CgogICAgICAuY2xlYXItYnV0dG9uIHsKICAgICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDsKICAgICAgICBib3JkZXI6IDFweCBzb2xpZCB0cmFuc3BhcmVudDsKICAgICAgICBjb2xvcjogJHttLmJkVGhlbWUoImhzbCgyMjAgOC45JSA0Ni4xJSkiLCJoc2woMjE1IDIwLjIlIDY1LjElKSIpfTsKICAgICAgfQoKICAgICAgLmNsZWFyLWJ1dHRvbjpob3ZlciB7CiAgICAgICAgYmFja2dyb3VuZDogJHttLmJkVGhlbWUoImhzbCgwIDcyLjIlIDUwLjYlIC8gMC4xKSIsImhzbCgwIDYyLjglIDMwLjYlIC8gMC4xKSIpfTsKICAgICAgICBjb2xvcjogJHttLmJkVGhlbWUoImhzbCgwIDcyLjIlIDUwLjYlKSIsImhzbCgwIDYyLjglIDMwLjYlKSIpfTsKICAgICAgfQoKICAgICAgLmNsZWFyLWJ1dHRvbjphY3RpdmUgewogICAgICAgIGJhY2tncm91bmQ6ICR7bS5iZFRoZW1lKCJoc2woMCA3Mi4yJSA1MC42JSAvIDAuMikiLCJoc2woMCA2Mi44JSAzMC42JSAvIDAuMikiKX07CiAgICAgIH0KCiAgICAgIC8qIFRpbWV6b25lIHNlbGVjdG9yICovCiAgICAgIC50aW1lem9uZS1zZWxlY3RvciB7CiAgICAgICAgbWFyZ2luLXRvcDogMTJweDsKICAgICAgICBwYWRkaW5nLXRvcDogMTJweDsKICAgICAgICBib3JkZXItdG9wOiAxcHggc29saWQgJHttLmJkVGhlbWUoImhzbCgyMTQuMyAzMS44JSA5MS40JSkiLCJoc2woMjE3LjIgMzIuNiUgMTcuNSUpIil9OwogICAgICB9CgogICAgICAudGltZXpvbmUtc2VsZWN0b3ItdGl0bGUgewogICAgICAgIGZvbnQtc2l6ZTogMTJweDsKICAgICAgICBmb250LXdlaWdodDogNTAwOwogICAgICAgIG1hcmdpbi1ib3R0b206IDhweDsKICAgICAgICBjb2xvcjogJHttLmJkVGhlbWUoImhzbCgyMjAgOC45JSA0Ni4xJSkiLCJoc2woMjE1IDIwLjIlIDY1LjElKSIpfTsKICAgICAgfQoKICAgICAgLnRpbWV6b25lLXNlbGVjdCB7CiAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgICAgaGVpZ2h0OiAzNnB4OwogICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICR7bS5iZFRoZW1lKCJoc2woMjE0LjMgMzEuOCUgOTEuNCUpIiwiaHNsKDIxNy4yIDMyLjYlIDE3LjUlKSIpfTsKICAgICAgICBib3JkZXItcmFkaXVzOiA2cHg7CiAgICAgICAgcGFkZGluZzogMCAxMnB4OwogICAgICAgIGZvbnQtc2l6ZTogMTRweDsKICAgICAgICBiYWNrZ3JvdW5kOiAke20uYmRUaGVtZSgiaHNsKDAgMCUgMTAwJSkiLCJoc2woMjI0IDcxLjQlIDQuMSUpIil9OwogICAgICAgIGNvbG9yOiAke20uYmRUaGVtZSgiaHNsKDIyNCA3MS40JSA0LjElKSIsImhzbCgyMTAgMjAlIDk4JSkiKX07CiAgICAgICAgY3Vyc29yOiBwb2ludGVyOwogICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjJzIGVhc2U7CiAgICAgIH0KCiAgICAgIC50aW1lem9uZS1zZWxlY3Q6aG92ZXIgewogICAgICAgIGJvcmRlci1jb2xvcjogJHttLmJkVGhlbWUoImhzbCgyMTQuMyAzMS44JSA5MS40JSkiLCJoc2woMjE3LjIgMzIuNiUgMTcuNSUpIil9OwogICAgICAgIGJhY2tncm91bmQ6ICR7bS5iZFRoZW1lKCJoc2woMjEwIDIwJSA5OCUpIiwiaHNsKDIxNSAyNy45JSAxNi45JSkiKX07CiAgICAgIH0KCiAgICAgIC50aW1lem9uZS1zZWxlY3Q6Zm9jdXMgewogICAgICAgIG91dGxpbmU6IG5vbmU7CiAgICAgICAgYm9yZGVyLWNvbG9yOiAke20uYmRUaGVtZSgiaHNsKDIyMi4yIDQ3LjQlIDExLjIlKSIsImhzbCgyMTAgMjAlIDk4JSkiKX07CiAgICAgICAgYm94LXNoYWRvdzogMCAwIDAgMnB4ICR7bS5iZFRoZW1lKCJoc2woMjIyLjIgNDcuNCUgMTEuMiUgLyAwLjEpIiwiaHNsKDIxMCAyMCUgOTglIC8gMC4xKSIpfTsKICAgICAgfQogICAgYF19KTt2YXIgX3NyLExzcj1wKCgpPT57eGUoKTtfc3I9ZT0+e2xldCB0PVsiSmFudWFyeSIsIkZlYnJ1YXJ5IiwiTWFyY2giLCJBcHJpbCIsIk1heSIsIkp1bmUiLCJKdWx5IiwiQXVndXN0IiwiU2VwdGVtYmVyIiwiT2N0b2JlciIsIk5vdmVtYmVyIiwiRGVjZW1iZXIiXSxyPWUud2Vla1N0YXJ0c09uPT09MT9bIk1vIiwiVHUiLCJXZSIsIlRoIiwiRnIiLCJTYSIsIlN1Il06WyJTdSIsIk1vIiwiVHUiLCJXZSIsIlRoIiwiRnIiLCJTYSJdLGk9ZS5nZXREYXlzSW5Nb250aCgpLGE9ZS5zZWxlY3RlZEhvdXI8MTIsbj1lLmdldFRpbWV6b25lcygpO3JldHVybiBDYAogICAgICAgIDxkaXYgY2xhc3M9ImlucHV0LXdyYXBwZXIiPgogICAgICAgICAgPGRlZXMtbGFiZWwgLmxhYmVsPSR7ZS5sYWJlbH0gLmRlc2NyaXB0aW9uPSR7ZS5kZXNjcmlwdGlvbn0gLnJlcXVpcmVkPSR7ZS5yZXF1aXJlZH0+PC9kZWVzLWxhYmVsPgogICAgICAgICAgPGRpdiBjbGFzcz0iaW5wdXQtY29udGFpbmVyIj4KICAgICAgICAgICAgPGlucHV0CiAgICAgICAgICAgICAgdHlwZT0idGV4dCIKICAgICAgICAgICAgICBjbGFzcz0iZGF0ZS1pbnB1dCAke2UuaXNPcGVuZWQ/Im9wZW4iOiIifSIKICAgICAgICAgICAgICAudmFsdWU9JHtlLmZvcm1hdERhdGUoZS52YWx1ZSl9CiAgICAgICAgICAgICAgLnBsYWNlaG9sZGVyPSR7ZS5wbGFjZWhvbGRlcn0KICAgICAgICAgICAgICA/ZGlzYWJsZWQ9JHtlLmRpc2FibGVkfQogICAgICAgICAgICAgIEBjbGljaz0ke2UudG9nZ2xlQ2FsZW5kYXJ9CiAgICAgICAgICAgICAgQGtleWRvd249JHtlLmhhbmRsZUtleWRvd259CiAgICAgICAgICAgICAgQGlucHV0PSR7ZS5oYW5kbGVNYW51YWxJbnB1dH0KICAgICAgICAgICAgICBAYmx1cj0ke2UuaGFuZGxlSW5wdXRCbHVyfQogICAgICAgICAgICAgIHN0eWxlPSJwYWRkaW5nLXJpZ2h0OiAke2UudmFsdWU/IjY0cHgiOiI0MHB4In0iCiAgICAgICAgICAgIC8+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9Imljb24tY29udGFpbmVyIj4KICAgICAgICAgICAgICAke2UudmFsdWUmJiFlLmRpc2FibGVkP0NgCiAgICAgICAgICAgICAgICA8YnV0dG9uIGNsYXNzPSJjbGVhci1idXR0b24iIEBjbGljaz0ke2UuY2xlYXJWYWx1ZX0gdGl0bGU9IkNsZWFyIj4KICAgICAgICAgICAgICAgICAgPGRlZXMtaWNvbiBpY29uPSJsdWNpZGU6eCIgaWNvblNpemU9IjE0Ij48L2RlZXMtaWNvbj4KICAgICAgICAgICAgICAgIDwvYnV0dG9uPgogICAgICAgICAgICAgIGA6IiJ9CiAgICAgICAgICAgICAgPGRlZXMtaWNvbiBjbGFzcz0iY2FsZW5kYXItaWNvbiIgaWNvbj0ibHVjaWRlOmNhbGVuZGFyIiBpY29uU2l6ZT0iMTYiPjwvZGVlcy1pY29uPgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIAogICAgICAgICAgICA8IS0tIENhbGVuZGFyIFBvcHVwIC0tPgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJjYWxlbmRhci1wb3B1cCAke2UuaXNPcGVuZWQ/InNob3ciOiIifSAke2Uub3BlbnNUb1RvcD8idG9wIjoiYm90dG9tIn0iPgogICAgICAgICAgICAgIDwhLS0gTW9udGgvWWVhciBOYXZpZ2F0aW9uIC0tPgogICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNhbGVuZGFyLWhlYWRlciI+CiAgICAgICAgICAgICAgICA8YnV0dG9uIGNsYXNzPSJuYXYtYnV0dG9uIiBAY2xpY2s9JHtlLnByZXZpb3VzTW9udGh9PgogICAgICAgICAgICAgICAgICA8ZGVlcy1pY29uIGljb249Imx1Y2lkZTpjaGV2cm9uTGVmdCIgaWNvblNpemU9IjE2Ij48L2RlZXMtaWNvbj4KICAgICAgICAgICAgICAgIDwvYnV0dG9uPgogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0ibW9udGgteWVhci1kaXNwbGF5Ij4KICAgICAgICAgICAgICAgICAgJHt0W2Uudmlld0RhdGUuZ2V0TW9udGgoKV19ICR7ZS52aWV3RGF0ZS5nZXRGdWxsWWVhcigpfQogICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICA8YnV0dG9uIGNsYXNzPSJuYXYtYnV0dG9uIiBAY2xpY2s9JHtlLm5leHRNb250aH0+CiAgICAgICAgICAgICAgICAgIDxkZWVzLWljb24gaWNvbj0ibHVjaWRlOmNoZXZyb25SaWdodCIgaWNvblNpemU9IjE2Ij48L2RlZXMtaWNvbj4KICAgICAgICAgICAgICAgIDwvYnV0dG9uPgogICAgICAgICAgICAgIDwvZGl2PgoKICAgICAgICAgICAgICA8IS0tIFdlZWtkYXkgSGVhZGVycyAtLT4KICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJ3ZWVrZGF5cyI+CiAgICAgICAgICAgICAgICAke3IubWFwKG89PkNgPGRpdiBjbGFzcz0id2Vla2RheSI+JHtvfTwvZGl2PmApfQogICAgICAgICAgICAgIDwvZGl2PgoKICAgICAgICAgICAgICA8IS0tIERheXMgR3JpZCAtLT4KICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJkYXlzLWdyaWQiPgogICAgICAgICAgICAgICAgJHtpLm1hcChvPT57bGV0IHM9ZS5pc1RvZGF5KG8pLGw9ZS5pc1NlbGVjdGVkKG8pLGM9by5nZXRNb250aCgpIT09ZS52aWV3RGF0ZS5nZXRNb250aCgpLHU9ZS5pc0Rpc2FibGVkKG8pLGQ9ZS5nZXRFdmVudHNGb3JEYXRlKG8pLGg9ZC5sZW5ndGg+MCxmPWQucmVkdWNlKCh4LHYpPT54Kyh2LmNvdW50fHwxKSwwKTtyZXR1cm4gQ2AKICAgICAgICAgICAgICAgICAgICA8ZGl2IAogICAgICAgICAgICAgICAgICAgICAgY2xhc3M9ImRheSAke2M/Im90aGVyLW1vbnRoIjoiIn0gJHtzPyJ0b2RheSI6IiJ9ICR7bD8ic2VsZWN0ZWQiOiIifSAke3U/ImRpc2FibGVkIjoiIn0gJHtoPyJoYXMtZXZlbnQiOiIifSIKICAgICAgICAgICAgICAgICAgICAgIEBjbGljaz0keygpPT4hdSYmZS5zZWxlY3REYXRlKG8pfQogICAgICAgICAgICAgICAgICAgID4KICAgICAgICAgICAgICAgICAgICAgICR7by5nZXREYXRlKCl9CiAgICAgICAgICAgICAgICAgICAgICAke2g/Q2AKICAgICAgICAgICAgICAgICAgICAgICAgJHtmPjM/Q2AKICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJldmVudC1jb3VudCI+JHtmfTwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICBgOkNgCiAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iZXZlbnQtaW5kaWNhdG9yIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICR7ZC5zbGljZSgwLDMpLm1hcCh4PT5DYAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJldmVudC1kb3QgJHt4LnR5cGV8fCJpbmZvIn0iPjwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgYCl9CiAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgIGB9CiAgICAgICAgICAgICAgICAgICAgICAgICR7ZFswXS50aXRsZT9DYAogICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImV2ZW50LXRvb2x0aXAiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgJHtkWzBdLnRpdGxlfQogICAgICAgICAgICAgICAgICAgICAgICAgICAgJHtmPjE/Q2AgKCske2YtMX0gbW9yZSlgOiIifQogICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICBgOiIifQogICAgICAgICAgICAgICAgICAgICAgYDoiIn0KICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgYH0pfQogICAgICAgICAgICAgIDwvZGl2PgoKICAgICAgICAgICAgICA8IS0tIFRpbWUgU2VsZWN0b3IgLS0+CiAgICAgICAgICAgICAgJHtlLmVuYWJsZVRpbWU/Q2AKICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InRpbWUtc2VsZWN0b3IiPgogICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJ0aW1lLXNlbGVjdG9yLXRpdGxlIj5UaW1lPC9kaXY+CiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InRpbWUtaW5wdXRzIj4KICAgICAgICAgICAgICAgICAgICA8aW5wdXQgCiAgICAgICAgICAgICAgICAgICAgICB0eXBlPSJudW1iZXIiIAogICAgICAgICAgICAgICAgICAgICAgY2xhc3M9InRpbWUtaW5wdXQiIAogICAgICAgICAgICAgICAgICAgICAgLnZhbHVlPSR7ZS50aW1lRm9ybWF0PT09IjEyaCI/KGUuc2VsZWN0ZWRIb3VyPT09MD8xMjplLnNlbGVjdGVkSG91cj4xMj9lLnNlbGVjdGVkSG91ci0xMjplLnNlbGVjdGVkSG91cikudG9TdHJpbmcoKS5wYWRTdGFydCgyLCIwIik6ZS5zZWxlY3RlZEhvdXIudG9TdHJpbmcoKS5wYWRTdGFydCgyLCIwIil9CiAgICAgICAgICAgICAgICAgICAgICBAaW5wdXQ9JHtvPT5lLmhhbmRsZUhvdXJJbnB1dChvKX0KICAgICAgICAgICAgICAgICAgICAgIG1pbj0iJHtlLnRpbWVGb3JtYXQ9PT0iMTJoIj8xOjB9IgogICAgICAgICAgICAgICAgICAgICAgbWF4PSIke2UudGltZUZvcm1hdD09PSIxMmgiPzEyOjIzfSIKICAgICAgICAgICAgICAgICAgICAvPgogICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJ0aW1lLXNlcGFyYXRvciI+Ojwvc3Bhbj4KICAgICAgICAgICAgICAgICAgICA8aW5wdXQgCiAgICAgICAgICAgICAgICAgICAgICB0eXBlPSJudW1iZXIiIAogICAgICAgICAgICAgICAgICAgICAgY2xhc3M9InRpbWUtaW5wdXQiIAogICAgICAgICAgICAgICAgICAgICAgLnZhbHVlPSR7ZS5zZWxlY3RlZE1pbnV0ZS50b1N0cmluZygpLnBhZFN0YXJ0KDIsIjAiKX0KICAgICAgICAgICAgICAgICAgICAgIEBpbnB1dD0ke289PmUuaGFuZGxlTWludXRlSW5wdXQobyl9CiAgICAgICAgICAgICAgICAgICAgICBtaW49IjAiCiAgICAgICAgICAgICAgICAgICAgICBtYXg9IjU5IgogICAgICAgICAgICAgICAgICAgICAgc3RlcD0iJHtlLm1pbnV0ZUluY3JlbWVudHx8MX0iCiAgICAgICAgICAgICAgICAgICAgLz4KICAgICAgICAgICAgICAgICAgICAke2UudGltZUZvcm1hdD09PSIxMmgiP0NgCiAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJhbS1wbS1zZWxlY3RvciI+CiAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b24gCiAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9ImFtLXBtLWJ1dHRvbiAke2E/InNlbGVjdGVkIjoiIn0iCiAgICAgICAgICAgICAgICAgICAgICAgICAgQGNsaWNrPSR7KCk9PmUuc2V0QU1QTSgiYW0iKX0KICAgICAgICAgICAgICAgICAgICAgICAgPgogICAgICAgICAgICAgICAgICAgICAgICAgIEFNCiAgICAgICAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPgogICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIAogICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPSJhbS1wbS1idXR0b24gJHthPyIiOiJzZWxlY3RlZCJ9IgogICAgICAgICAgICAgICAgICAgICAgICAgIEBjbGljaz0keygpPT5lLnNldEFNUE0oInBtIil9CiAgICAgICAgICAgICAgICAgICAgICAgID4KICAgICAgICAgICAgICAgICAgICAgICAgICBQTQogICAgICAgICAgICAgICAgICAgICAgICA8L2J1dHRvbj4KICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgIGA6IiJ9CiAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgYDoiIn0KCiAgICAgICAgICAgICAgPCEtLSBUaW1lem9uZSBTZWxlY3RvciAtLT4KICAgICAgICAgICAgICAke2UuZW5hYmxlVGltZXpvbmU/Q2AKICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InRpbWV6b25lLXNlbGVjdG9yIj4KICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0idGltZXpvbmUtc2VsZWN0b3ItdGl0bGUiPlRpbWV6b25lPC9kaXY+CiAgICAgICAgICAgICAgICAgIDxzZWxlY3QgCiAgICAgICAgICAgICAgICAgICAgY2xhc3M9InRpbWV6b25lLXNlbGVjdCIgCiAgICAgICAgICAgICAgICAgICAgLnZhbHVlPSR7ZS50aW1lem9uZX0KICAgICAgICAgICAgICAgICAgICBAY2hhbmdlPSR7bz0+ZS5oYW5kbGVUaW1lem9uZUNoYW5nZShvKX0KICAgICAgICAgICAgICAgICAgPgogICAgICAgICAgICAgICAgICAgICR7bi5tYXAobz0+Q2AKICAgICAgICAgICAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9IiR7by52YWx1ZX0iID9zZWxlY3RlZD0ke28udmFsdWU9PT1lLnRpbWV6b25lfT4KICAgICAgICAgICAgICAgICAgICAgICAgJHtvLmxhYmVsfQogICAgICAgICAgICAgICAgICAgICAgPC9vcHRpb24+CiAgICAgICAgICAgICAgICAgICAgYCl9CiAgICAgICAgICAgICAgICAgIDwvc2VsZWN0PgogICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgYDoiIn0KCiAgICAgICAgICAgICAgPCEtLSBBY3Rpb24gQnV0dG9ucyAtLT4KICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJjYWxlbmRhci1hY3Rpb25zIj4KICAgICAgICAgICAgICAgIDxidXR0b24gY2xhc3M9ImFjdGlvbi1idXR0b24gdG9kYXktYnV0dG9uIiBAY2xpY2s9JHtlLnNlbGVjdFRvZGF5fT4KICAgICAgICAgICAgICAgICAgVG9kYXkKICAgICAgICAgICAgICAgIDwvYnV0dG9uPgogICAgICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz0iYWN0aW9uLWJ1dHRvbiBjbGVhci1idXR0b24iIEBjbGljaz0ke2UuY2xlYXJ9PgogICAgICAgICAgICAgICAgICBDbGVhcgogICAgICAgICAgICAgICAgPC9idXR0b24+CiAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgPC9kaXY+CiAgICAgICAgPC9kaXY+CiAgICAgIGB9fSk7dmFyIG9pLFZ0LEFOLHA2ZT1wKCgpPT57eGUoKTtNMSgpO3pzcigpO1RzcigpO0xzcigpO29yKCk7ZWgoKTtvaT1mdW5jdGlvbihlLHQscixpLGEsbil7ZnVuY3Rpb24gbyh5KXtpZih5IT09dm9pZCAwJiZ0eXBlb2YgeSE9ImZ1bmN0aW9uIil0aHJvdyBuZXcgVHlwZUVycm9yKCJGdW5jdGlvbiBleHBlY3RlZCIpO3JldHVybiB5fWZvcih2YXIgcz1pLmtpbmQsbD1zPT09ImdldHRlciI/ImdldCI6cz09PSJzZXR0ZXIiPyJzZXQiOiJ2YWx1ZSIsYz0hdCYmZT9pLnN0YXRpYz9lOmUucHJvdG90eXBlOm51bGwsdT10fHwoYz9PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGMsaS5uYW1lKTp7fSksZCxoPSExLGY9ci5sZW5ndGgtMTtmPj0wO2YtLSl7dmFyIHg9e307Zm9yKHZhciB2IGluIGkpeFt2XT12PT09ImFjY2VzcyI/e306aVt2XTtmb3IodmFyIHYgaW4gaS5hY2Nlc3MpeC5hY2Nlc3Nbdl09aS5hY2Nlc3Nbdl07eC5hZGRJbml0aWFsaXplcj1mdW5jdGlvbih5KXtpZihoKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBhZGQgaW5pdGlhbGl6ZXJzIGFmdGVyIGRlY29yYXRpb24gaGFzIGNvbXBsZXRlZCIpO24ucHVzaChvKHl8fG51bGwpKX07dmFyIGI9KDAscltmXSkocz09PSJhY2Nlc3NvciI/e2dldDp1LmdldCxzZXQ6dS5zZXR9OnVbbF0seCk7aWYocz09PSJhY2Nlc3NvciIpe2lmKGI9PT12b2lkIDApY29udGludWU7aWYoYj09PW51bGx8fHR5cGVvZiBiIT0ib2JqZWN0Iil0aHJvdyBuZXcgVHlwZUVycm9yKCJPYmplY3QgZXhwZWN0ZWQiKTsoZD1vKGIuZ2V0KSkmJih1LmdldD1kKSwoZD1vKGIuc2V0KSkmJih1LnNldD1kKSwoZD1vKGIuaW5pdCkpJiZhLnVuc2hpZnQoZCl9ZWxzZShkPW8oYikpJiYocz09PSJmaWVsZCI/YS51bnNoaWZ0KGQpOnVbbF09ZCl9YyYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGMsaS5uYW1lLHUpLGg9ITB9LFZ0PWZ1bmN0aW9uKGUsdCxyKXtmb3IodmFyIGk9YXJndW1lbnRzLmxlbmd0aD4yLGE9MDthPHQubGVuZ3RoO2ErKylyPWk/dFthXS5jYWxsKGUscik6dFthXS5jYWxsKGUpO3JldHVybiBpP3I6dm9pZCAwfSxBTj0oKCk9PntsZXQgZT1beWUoImRlZXMtaW5wdXQtZGF0ZXBpY2tlciIpXSx0LHI9W10saSxhPW90LG4sbz1bXSxzPVtdLGwsYz1bXSx1PVtdLGQsaD1bXSxmPVtdLHgsdj1bXSxiPVtdLHksdz1bXSxrPVtdLE8sej1bXSxNPVtdLEYsRD1bXSxOPVtdLFIsXz1bXSxTPVtdLCQsVD1bXSxFPVtdLHEsQj1bXSxHPVtdLGVlLFA9W10sZ2U9W10sd2UsST1bXSxuZT1bXSxrZSxZPVtdLEE9W10sTCxVPVtdLFY9W10sWCxkZT1bXSx2ZT1bXSxMZSxXPVtdLEg9W10sdGUsYmU9W10sdWU9W10sQ2UsaGU9W10saWU9W10sU2UsSWU9W10sWmU9W107dmFyIEs9Y2xhc3MgZXh0ZW5kcyBhe3N0YXRpY3tpPXRoaXN9c3RhdGlje2xldCBaPXR5cGVvZiBTeW1ib2w9PSJmdW5jdGlvbiImJlN5bWJvbC5tZXRhZGF0YT9PYmplY3QuY3JlYXRlKGFbU3ltYm9sLm1ldGFkYXRhXT8/bnVsbCk6dm9pZCAwO249W2ooe3R5cGU6U3RyaW5nfSldLGw9W2ooe3R5cGU6Qm9vbGVhbn0pXSxkPVtqKHt0eXBlOlN0cmluZ30pXSx4PVtqKHt0eXBlOk51bWJlcn0pXSx5PVtqKHt0eXBlOlN0cmluZ30pXSxPPVtqKHt0eXBlOlN0cmluZ30pXSxGPVtqKHt0eXBlOlN0cmluZ30pXSxSPVtqKHt0eXBlOkFycmF5fSldLCQ9W2ooe3R5cGU6TnVtYmVyfSldLHE9W2ooe3R5cGU6U3RyaW5nfSldLGVlPVtqKHt0eXBlOkJvb2xlYW59KV0sd2U9W2ooe3R5cGU6U3RyaW5nfSldLGtlPVtqKHt0eXBlOkFycmF5fSldLEw9W2ZlKCldLFg9W2ZlKCldLExlPVtmZSgpXSx0ZT1bZmUoKV0sQ2U9W2ZlKCldLFNlPVtmZSgpXSxvaSh0aGlzLG51bGwsbix7a2luZDoiYWNjZXNzb3IiLG5hbWU6InZhbHVlIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpKPT4idmFsdWUiaW4gSixnZXQ6Sj0+Si52YWx1ZSxzZXQ6KEosbWUpPT57Si52YWx1ZT1tZX19LG1ldGFkYXRhOlp9LG8scyksb2kodGhpcyxudWxsLGwse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJlbmFibGVUaW1lIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpKPT4iZW5hYmxlVGltZSJpbiBKLGdldDpKPT5KLmVuYWJsZVRpbWUsc2V0OihKLG1lKT0+e0ouZW5hYmxlVGltZT1tZX19LG1ldGFkYXRhOlp9LGMsdSksb2kodGhpcyxudWxsLGQse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJ0aW1lRm9ybWF0IixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpKPT4idGltZUZvcm1hdCJpbiBKLGdldDpKPT5KLnRpbWVGb3JtYXQsc2V0OihKLG1lKT0+e0oudGltZUZvcm1hdD1tZX19LG1ldGFkYXRhOlp9LGgsZiksb2kodGhpcyxudWxsLHgse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJtaW51dGVJbmNyZW1lbnQiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOko9PiJtaW51dGVJbmNyZW1lbnQiaW4gSixnZXQ6Sj0+Si5taW51dGVJbmNyZW1lbnQsc2V0OihKLG1lKT0+e0oubWludXRlSW5jcmVtZW50PW1lfX0sbWV0YWRhdGE6Wn0sdixiKSxvaSh0aGlzLG51bGwseSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImRhdGVGb3JtYXQiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOko9PiJkYXRlRm9ybWF0ImluIEosZ2V0Oko9PkouZGF0ZUZvcm1hdCxzZXQ6KEosbWUpPT57Si5kYXRlRm9ybWF0PW1lfX0sbWV0YWRhdGE6Wn0sdyxrKSxvaSh0aGlzLG51bGwsTyx7a2luZDoiYWNjZXNzb3IiLG5hbWU6Im1pbkRhdGUiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOko9PiJtaW5EYXRlImluIEosZ2V0Oko9PkoubWluRGF0ZSxzZXQ6KEosbWUpPT57Si5taW5EYXRlPW1lfX0sbWV0YWRhdGE6Wn0seixNKSxvaSh0aGlzLG51bGwsRix7a2luZDoiYWNjZXNzb3IiLG5hbWU6Im1heERhdGUiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOko9PiJtYXhEYXRlImluIEosZ2V0Oko9PkoubWF4RGF0ZSxzZXQ6KEosbWUpPT57Si5tYXhEYXRlPW1lfX0sbWV0YWRhdGE6Wn0sRCxOKSxvaSh0aGlzLG51bGwsUix7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImRpc2FibGVkRGF0ZXMiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOko9PiJkaXNhYmxlZERhdGVzImluIEosZ2V0Oko9PkouZGlzYWJsZWREYXRlcyxzZXQ6KEosbWUpPT57Si5kaXNhYmxlZERhdGVzPW1lfX0sbWV0YWRhdGE6Wn0sXyxTKSxvaSh0aGlzLG51bGwsJCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6IndlZWtTdGFydHNPbiIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6Sj0+IndlZWtTdGFydHNPbiJpbiBKLGdldDpKPT5KLndlZWtTdGFydHNPbixzZXQ6KEosbWUpPT57Si53ZWVrU3RhcnRzT249bWV9fSxtZXRhZGF0YTpafSxULEUpLG9pKHRoaXMsbnVsbCxxLHtraW5kOiJhY2Nlc3NvciIsbmFtZToicGxhY2Vob2xkZXIiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOko9PiJwbGFjZWhvbGRlciJpbiBKLGdldDpKPT5KLnBsYWNlaG9sZGVyLHNldDooSixtZSk9PntKLnBsYWNlaG9sZGVyPW1lfX0sbWV0YWRhdGE6Wn0sQixHKSxvaSh0aGlzLG51bGwsZWUse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJlbmFibGVUaW1lem9uZSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6Sj0+ImVuYWJsZVRpbWV6b25lImluIEosZ2V0Oko9PkouZW5hYmxlVGltZXpvbmUsc2V0OihKLG1lKT0+e0ouZW5hYmxlVGltZXpvbmU9bWV9fSxtZXRhZGF0YTpafSxQLGdlKSxvaSh0aGlzLG51bGwsd2Use2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJ0aW1lem9uZSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6Sj0+InRpbWV6b25lImluIEosZ2V0Oko9PkoudGltZXpvbmUsc2V0OihKLG1lKT0+e0oudGltZXpvbmU9bWV9fSxtZXRhZGF0YTpafSxJLG5lKSxvaSh0aGlzLG51bGwsa2Use2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJldmVudHMiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOko9PiJldmVudHMiaW4gSixnZXQ6Sj0+Si5ldmVudHMsc2V0OihKLG1lKT0+e0ouZXZlbnRzPW1lfX0sbWV0YWRhdGE6Wn0sWSxBKSxvaSh0aGlzLG51bGwsTCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImlzT3BlbmVkIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpKPT4iaXNPcGVuZWQiaW4gSixnZXQ6Sj0+Si5pc09wZW5lZCxzZXQ6KEosbWUpPT57Si5pc09wZW5lZD1tZX19LG1ldGFkYXRhOlp9LFUsViksb2kodGhpcyxudWxsLFgse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJvcGVuc1RvVG9wIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpKPT4ib3BlbnNUb1RvcCJpbiBKLGdldDpKPT5KLm9wZW5zVG9Ub3Asc2V0OihKLG1lKT0+e0oub3BlbnNUb1RvcD1tZX19LG1ldGFkYXRhOlp9LGRlLHZlKSxvaSh0aGlzLG51bGwsTGUse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJzZWxlY3RlZERhdGUiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOko9PiJzZWxlY3RlZERhdGUiaW4gSixnZXQ6Sj0+Si5zZWxlY3RlZERhdGUsc2V0OihKLG1lKT0+e0ouc2VsZWN0ZWREYXRlPW1lfX0sbWV0YWRhdGE6Wn0sVyxIKSxvaSh0aGlzLG51bGwsdGUse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJ2aWV3RGF0ZSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6Sj0+InZpZXdEYXRlImluIEosZ2V0Oko9Pkoudmlld0RhdGUsc2V0OihKLG1lKT0+e0oudmlld0RhdGU9bWV9fSxtZXRhZGF0YTpafSxiZSx1ZSksb2kodGhpcyxudWxsLENlLHtraW5kOiJhY2Nlc3NvciIsbmFtZToic2VsZWN0ZWRIb3VyIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpKPT4ic2VsZWN0ZWRIb3VyImluIEosZ2V0Oko9Pkouc2VsZWN0ZWRIb3VyLHNldDooSixtZSk9PntKLnNlbGVjdGVkSG91cj1tZX19LG1ldGFkYXRhOlp9LGhlLGllKSxvaSh0aGlzLG51bGwsU2Use2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJzZWxlY3RlZE1pbnV0ZSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6Sj0+InNlbGVjdGVkTWludXRlImluIEosZ2V0Oko9Pkouc2VsZWN0ZWRNaW51dGUsc2V0OihKLG1lKT0+e0ouc2VsZWN0ZWRNaW51dGU9bWV9fSxtZXRhZGF0YTpafSxJZSxaZSksb2kobnVsbCx0PXt2YWx1ZTppfSxlLHtraW5kOiJjbGFzcyIsbmFtZTppLm5hbWUsbWV0YWRhdGE6Wn0sbnVsbCxyKSxLPWk9dC52YWx1ZSxaJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoaSxTeW1ib2wubWV0YWRhdGEse2VudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwLHZhbHVlOlp9KX1zdGF0aWMgZGVtbz1Tc3I7c3RhdGljIGRlbW9Hcm91cHM9WyJJbnB1dCJdOyNlPVZ0KHRoaXMsbywiIik7Z2V0IHZhbHVlKCl7cmV0dXJuIHRoaXMuI2V9c2V0IHZhbHVlKFope3RoaXMuI2U9Wn0jdD0oVnQodGhpcyxzKSxWdCh0aGlzLGMsITEpKTtnZXQgZW5hYmxlVGltZSgpe3JldHVybiB0aGlzLiN0fXNldCBlbmFibGVUaW1lKFope3RoaXMuI3Q9Wn0jcj0oVnQodGhpcyx1KSxWdCh0aGlzLGgsIjI0aCIpKTtnZXQgdGltZUZvcm1hdCgpe3JldHVybiB0aGlzLiNyfXNldCB0aW1lRm9ybWF0KFope3RoaXMuI3I9Wn0jaT0oVnQodGhpcyxmKSxWdCh0aGlzLHYsMSkpO2dldCBtaW51dGVJbmNyZW1lbnQoKXtyZXR1cm4gdGhpcy4jaX1zZXQgbWludXRlSW5jcmVtZW50KFope3RoaXMuI2k9Wn0jYT0oVnQodGhpcyxiKSxWdCh0aGlzLHcsIllZWVktTU0tREQiKSk7Z2V0IGRhdGVGb3JtYXQoKXtyZXR1cm4gdGhpcy4jYX1zZXQgZGF0ZUZvcm1hdChaKXt0aGlzLiNhPVp9I249KFZ0KHRoaXMsayksVnQodGhpcyx6LCIiKSk7Z2V0IG1pbkRhdGUoKXtyZXR1cm4gdGhpcy4jbn1zZXQgbWluRGF0ZShaKXt0aGlzLiNuPVp9I289KFZ0KHRoaXMsTSksVnQodGhpcyxELCIiKSk7Z2V0IG1heERhdGUoKXtyZXR1cm4gdGhpcy4jb31zZXQgbWF4RGF0ZShaKXt0aGlzLiNvPVp9I3M9KFZ0KHRoaXMsTiksVnQodGhpcyxfLFtdKSk7Z2V0IGRpc2FibGVkRGF0ZXMoKXtyZXR1cm4gdGhpcy4jc31zZXQgZGlzYWJsZWREYXRlcyhaKXt0aGlzLiNzPVp9I2w9KFZ0KHRoaXMsUyksVnQodGhpcyxULDEpKTtnZXQgd2Vla1N0YXJ0c09uKCl7cmV0dXJuIHRoaXMuI2x9c2V0IHdlZWtTdGFydHNPbihaKXt0aGlzLiNsPVp9I2M9KFZ0KHRoaXMsRSksVnQodGhpcyxCLCJZWVlZLU1NLUREIikpO2dldCBwbGFjZWhvbGRlcigpe3JldHVybiB0aGlzLiNjfXNldCBwbGFjZWhvbGRlcihaKXt0aGlzLiNjPVp9I2Q9KFZ0KHRoaXMsRyksVnQodGhpcyxQLCExKSk7Z2V0IGVuYWJsZVRpbWV6b25lKCl7cmV0dXJuIHRoaXMuI2R9c2V0IGVuYWJsZVRpbWV6b25lKFope3RoaXMuI2Q9Wn0jdT0oVnQodGhpcyxnZSksVnQodGhpcyxJLEludGwuRGF0ZVRpbWVGb3JtYXQoKS5yZXNvbHZlZE9wdGlvbnMoKS50aW1lWm9uZSkpO2dldCB0aW1lem9uZSgpe3JldHVybiB0aGlzLiN1fXNldCB0aW1lem9uZShaKXt0aGlzLiN1PVp9I3A9KFZ0KHRoaXMsbmUpLFZ0KHRoaXMsWSxbXSkpO2dldCBldmVudHMoKXtyZXR1cm4gdGhpcy4jcH1zZXQgZXZlbnRzKFope3RoaXMuI3A9Wn0jaD0oVnQodGhpcyxBKSxWdCh0aGlzLFUsITEpKTtnZXQgaXNPcGVuZWQoKXtyZXR1cm4gdGhpcy4jaH1zZXQgaXNPcGVuZWQoWil7dGhpcy4jaD1afSNmPShWdCh0aGlzLFYpLFZ0KHRoaXMsZGUsITEpKTtnZXQgb3BlbnNUb1RvcCgpe3JldHVybiB0aGlzLiNmfXNldCBvcGVuc1RvVG9wKFope3RoaXMuI2Y9Wn0jbT0oVnQodGhpcyx2ZSksVnQodGhpcyxXLG51bGwpKTtnZXQgc2VsZWN0ZWREYXRlKCl7cmV0dXJuIHRoaXMuI219c2V0IHNlbGVjdGVkRGF0ZShaKXt0aGlzLiNtPVp9I2c9KFZ0KHRoaXMsSCksVnQodGhpcyxiZSxuZXcgRGF0ZSkpO2dldCB2aWV3RGF0ZSgpe3JldHVybiB0aGlzLiNnfXNldCB2aWV3RGF0ZShaKXt0aGlzLiNnPVp9I2I9KFZ0KHRoaXMsdWUpLFZ0KHRoaXMsaGUsMCkpO2dldCBzZWxlY3RlZEhvdXIoKXtyZXR1cm4gdGhpcy4jYn1zZXQgc2VsZWN0ZWRIb3VyKFope3RoaXMuI2I9Wn0jdj0oVnQodGhpcyxpZSksVnQodGhpcyxJZSwwKSk7Z2V0IHNlbGVjdGVkTWludXRlKCl7cmV0dXJuIHRoaXMuI3Z9c2V0IHNlbGVjdGVkTWludXRlKFope3RoaXMuI3Y9Wn1zdGF0aWMgc3R5bGVzPUNzcjtnZXRUaW1lem9uZXMoKXtyZXR1cm5be3ZhbHVlOiJVVEMiLGxhYmVsOiJVVEMgKENvb3JkaW5hdGVkIFVuaXZlcnNhbCBUaW1lKSJ9LHt2YWx1ZToiQW1lcmljYS9OZXdfWW9yayIsbGFiZWw6IkVhc3Rlcm4gVGltZSAoVVMgJiBDYW5hZGEpIn0se3ZhbHVlOiJBbWVyaWNhL0NoaWNhZ28iLGxhYmVsOiJDZW50cmFsIFRpbWUgKFVTICYgQ2FuYWRhKSJ9LHt2YWx1ZToiQW1lcmljYS9EZW52ZXIiLGxhYmVsOiJNb3VudGFpbiBUaW1lIChVUyAmIENhbmFkYSkifSx7dmFsdWU6IkFtZXJpY2EvTG9zX0FuZ2VsZXMiLGxhYmVsOiJQYWNpZmljIFRpbWUgKFVTICYgQ2FuYWRhKSJ9LHt2YWx1ZToiQW1lcmljYS9QaG9lbml4IixsYWJlbDoiQXJpem9uYSJ9LHt2YWx1ZToiQW1lcmljYS9BbmNob3JhZ2UiLGxhYmVsOiJBbGFza2EifSx7dmFsdWU6IlBhY2lmaWMvSG9ub2x1bHUiLGxhYmVsOiJIYXdhaWkifSx7dmFsdWU6IkV1cm9wZS9Mb25kb24iLGxhYmVsOiJMb25kb24ifSx7dmFsdWU6IkV1cm9wZS9QYXJpcyIsbGFiZWw6IlBhcmlzIn0se3ZhbHVlOiJFdXJvcGUvQmVybGluIixsYWJlbDoiQmVybGluIn0se3ZhbHVlOiJFdXJvcGUvTW9zY293IixsYWJlbDoiTW9zY293In0se3ZhbHVlOiJBc2lhL0R1YmFpIixsYWJlbDoiRHViYWkifSx7dmFsdWU6IkFzaWEvS29sa2F0YSIsbGFiZWw6IkluZGlhIFN0YW5kYXJkIFRpbWUifSx7dmFsdWU6IkFzaWEvU2hhbmdoYWkiLGxhYmVsOiJDaGluYSBTdGFuZGFyZCBUaW1lIn0se3ZhbHVlOiJBc2lhL1Rva3lvIixsYWJlbDoiVG9reW8ifSx7dmFsdWU6IkF1c3RyYWxpYS9TeWRuZXkiLGxhYmVsOiJTeWRuZXkifSx7dmFsdWU6IlBhY2lmaWMvQXVja2xhbmQiLGxhYmVsOiJBdWNrbGFuZCJ9XX1yZW5kZXIoKXtyZXR1cm4gX3NyKHRoaXMpfWFzeW5jIGNvbm5lY3RlZENhbGxiYWNrKCl7c3VwZXIuY29ubmVjdGVkQ2FsbGJhY2soKSx0aGlzLmhhbmRsZUNsaWNrT3V0c2lkZT10aGlzLmhhbmRsZUNsaWNrT3V0c2lkZS5iaW5kKHRoaXMpfWFzeW5jIGRpc2Nvbm5lY3RlZENhbGxiYWNrKCl7YXdhaXQgc3VwZXIuZGlzY29ubmVjdGVkQ2FsbGJhY2soKSxkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCJjbGljayIsdGhpcy5oYW5kbGVDbGlja091dHNpZGUpfWFzeW5jIGZpcnN0VXBkYXRlZCgpe2lmKHRoaXMudmFsdWV8fCh0aGlzLnZhbHVlPSIiKSx0aGlzLnZhbHVlKXRyeXtsZXQgWj1uZXcgRGF0ZSh0aGlzLnZhbHVlKTtpc05hTihaLmdldFRpbWUoKSl8fCh0aGlzLnNlbGVjdGVkRGF0ZT1aLHRoaXMudmlld0RhdGU9bmV3IERhdGUoWiksdGhpcy5zZWxlY3RlZEhvdXI9Wi5nZXRIb3VycygpLHRoaXMuc2VsZWN0ZWRNaW51dGU9Wi5nZXRNaW51dGVzKCkpfWNhdGNoe31lbHNle2xldCBaPW5ldyBEYXRlO3RoaXMudmlld0RhdGU9bmV3IERhdGUoWiksdGhpcy5zZWxlY3RlZEhvdXI9Wi5nZXRIb3VycygpLHRoaXMuc2VsZWN0ZWRNaW51dGU9MH19Zm9ybWF0RGF0ZShaKXtpZighWilyZXR1cm4iIjt0cnl7bGV0IEo9bmV3IERhdGUoWik7aWYoaXNOYU4oSi5nZXRUaW1lKCkpKXJldHVybiIiO2xldCBtZT10aGlzLmRhdGVGb3JtYXQsRWU9Si5nZXREYXRlKCkudG9TdHJpbmcoKS5wYWRTdGFydCgyLCIwIiksVWU9KEouZ2V0TW9udGgoKSsxKS50b1N0cmluZygpLnBhZFN0YXJ0KDIsIjAiKSxNdD1KLmdldEZ1bGxZZWFyKCkudG9TdHJpbmcoKTtpZihtZT1tZS5yZXBsYWNlKCJZWVlZIixNdCksbWU9bWUucmVwbGFjZSgiWVkiLE10LnNsaWNlKC0yKSksbWU9bWUucmVwbGFjZSgiTU0iLFVlKSxtZT1tZS5yZXBsYWNlKCJERCIsRWUpLHRoaXMuZW5hYmxlVGltZSl7bGV0IGl0PUouZ2V0SG91cnMoKSxMdD1pdD09PTA/MTI6aXQ+MTI/aXQtMTI6aXQsV3Q9Si5nZXRNaW51dGVzKCkudG9TdHJpbmcoKS5wYWRTdGFydCgyLCIwIiksYWU9aXQ+PTEyPyJQTSI6IkFNIjt0aGlzLnRpbWVGb3JtYXQ9PT0iMTJoIj9tZSs9YCAke0x0fToke1d0fSAke2FlfWA6bWUrPWAgJHtpdC50b1N0cmluZygpLnBhZFN0YXJ0KDIsIjAiKX06JHtXdH1gfWlmKHRoaXMuZW5hYmxlVGltZXpvbmUpe2xldCBXdD1uZXcgSW50bC5EYXRlVGltZUZvcm1hdCgiZW4tVVMiLHt0aW1lWm9uZU5hbWU6InNob3J0Iix0aW1lWm9uZTp0aGlzLnRpbWV6b25lfSkuZm9ybWF0VG9QYXJ0cyhKKS5maW5kKGFlPT5hZS50eXBlPT09InRpbWVab25lTmFtZSIpO1d0JiYobWUrPWAgJHtXdC52YWx1ZX1gKX1yZXR1cm4gbWV9Y2F0Y2h7cmV0dXJuIiJ9fWhhbmRsZUNsaWNrT3V0c2lkZT0oVnQodGhpcyxaZSksWj0+e1ouY29tcG9zZWRQYXRoKCkuaW5jbHVkZXModGhpcyl8fCh0aGlzLmlzT3BlbmVkPSExLGRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoImNsaWNrIix0aGlzLmhhbmRsZUNsaWNrT3V0c2lkZSkpfSk7YXN5bmMgdG9nZ2xlQ2FsZW5kYXIoKXtpZighdGhpcy5kaXNhYmxlZClpZih0aGlzLmlzT3BlbmVkPSF0aGlzLmlzT3BlbmVkLHRoaXMuaXNPcGVuZWQpe2xldCBKPXRoaXMuc2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yKCIuaW5wdXQtY29udGFpbmVyIikuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCksbWU9d2luZG93LmlubmVySGVpZ2h0LUouYm90dG9tLEVlPUoudG9wO3RoaXMub3BlbnNUb1RvcD1tZTw0MDAmJkVlPm1lLHNldFRpbWVvdXQoKCk9Pntkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsdGhpcy5oYW5kbGVDbGlja091dHNpZGUpfSwwKX1lbHNlIGRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoImNsaWNrIix0aGlzLmhhbmRsZUNsaWNrT3V0c2lkZSl9Z2V0RGF5c0luTW9udGgoKXtsZXQgWj10aGlzLnZpZXdEYXRlLmdldEZ1bGxZZWFyKCksSj10aGlzLnZpZXdEYXRlLmdldE1vbnRoKCksbWU9bmV3IERhdGUoWixKLDEpLEVlPW5ldyBEYXRlKFosSisxLDApLFVlPVtdLE10PXRoaXMud2Vla1N0YXJ0c09uPT09MT9tZS5nZXREYXkoKT09PTA/NjptZS5nZXREYXkoKS0xOm1lLmdldERheSgpO2ZvcihsZXQgTHQ9TXQ7THQ+MDtMdC0tKVVlLnB1c2gobmV3IERhdGUoWixKLDEtTHQpKTtmb3IobGV0IEx0PTE7THQ8PUVlLmdldERhdGUoKTtMdCsrKVVlLnB1c2gobmV3IERhdGUoWixKLEx0KSk7bGV0IGl0PTQyLVVlLmxlbmd0aDtmb3IobGV0IEx0PTE7THQ8PWl0O0x0KyspVWUucHVzaChuZXcgRGF0ZShaLEorMSxMdCkpO3JldHVybiBVZX1pc1RvZGF5KFope2xldCBKPW5ldyBEYXRlO3JldHVybiBaLmdldERhdGUoKT09PUouZ2V0RGF0ZSgpJiZaLmdldE1vbnRoKCk9PT1KLmdldE1vbnRoKCkmJlouZ2V0RnVsbFllYXIoKT09PUouZ2V0RnVsbFllYXIoKX1pc1NlbGVjdGVkKFope3JldHVybiB0aGlzLnNlbGVjdGVkRGF0ZT9aLmdldERhdGUoKT09PXRoaXMuc2VsZWN0ZWREYXRlLmdldERhdGUoKSYmWi5nZXRNb250aCgpPT09dGhpcy5zZWxlY3RlZERhdGUuZ2V0TW9udGgoKSYmWi5nZXRGdWxsWWVhcigpPT09dGhpcy5zZWxlY3RlZERhdGUuZ2V0RnVsbFllYXIoKTohMX1pc0Rpc2FibGVkKFope2lmKHRoaXMubWluRGF0ZSl7bGV0IEo9bmV3IERhdGUodGhpcy5taW5EYXRlKTtpZihaPEopcmV0dXJuITB9aWYodGhpcy5tYXhEYXRlKXtsZXQgSj1uZXcgRGF0ZSh0aGlzLm1heERhdGUpO2lmKFo+SilyZXR1cm4hMH1yZXR1cm4gdGhpcy5kaXNhYmxlZERhdGVzJiZ0aGlzLmRpc2FibGVkRGF0ZXMubGVuZ3RoPjA/dGhpcy5kaXNhYmxlZERhdGVzLnNvbWUoSj0+e3RyeXtsZXQgbWU9bmV3IERhdGUoSik7cmV0dXJuIFouZ2V0RGF0ZSgpPT09bWUuZ2V0RGF0ZSgpJiZaLmdldE1vbnRoKCk9PT1tZS5nZXRNb250aCgpJiZaLmdldEZ1bGxZZWFyKCk9PT1tZS5nZXRGdWxsWWVhcigpfWNhdGNoe3JldHVybiExfX0pOiExfWdldEV2ZW50c0ZvckRhdGUoWil7aWYoIXRoaXMuZXZlbnRzfHx0aGlzLmV2ZW50cy5sZW5ndGg9PT0wKXJldHVybltdO2xldCBKPWAke1ouZ2V0RnVsbFllYXIoKX0tJHsoWi5nZXRNb250aCgpKzEpLnRvU3RyaW5nKCkucGFkU3RhcnQoMiwiMCIpfS0ke1ouZ2V0RGF0ZSgpLnRvU3RyaW5nKCkucGFkU3RhcnQoMiwiMCIpfWA7cmV0dXJuIHRoaXMuZXZlbnRzLmZpbHRlcihtZT0+bWUuZGF0ZT09PUopfXNlbGVjdERhdGUoWil7dGhpcy5zZWxlY3RlZERhdGU9bmV3IERhdGUoWi5nZXRGdWxsWWVhcigpLFouZ2V0TW9udGgoKSxaLmdldERhdGUoKSx0aGlzLnNlbGVjdGVkSG91cix0aGlzLnNlbGVjdGVkTWludXRlKSx0aGlzLnZhbHVlPXRoaXMuZm9ybWF0VmFsdWVXaXRoVGltZXpvbmUodGhpcy5zZWxlY3RlZERhdGUpLHRoaXMuY2hhbmdlU3ViamVjdC5uZXh0KHRoaXMpLHRoaXMuZW5hYmxlVGltZXx8KHRoaXMuaXNPcGVuZWQ9ITEpfXNlbGVjdFRvZGF5KCl7bGV0IFo9bmV3IERhdGU7dGhpcy5zZWxlY3RlZERhdGU9Wix0aGlzLnZpZXdEYXRlPW5ldyBEYXRlKFopLHRoaXMuc2VsZWN0ZWRIb3VyPVouZ2V0SG91cnMoKSx0aGlzLnNlbGVjdGVkTWludXRlPVouZ2V0TWludXRlcygpLHRoaXMudmFsdWU9dGhpcy5mb3JtYXRWYWx1ZVdpdGhUaW1lem9uZSh0aGlzLnNlbGVjdGVkRGF0ZSksdGhpcy5jaGFuZ2VTdWJqZWN0Lm5leHQodGhpcyksdGhpcy5lbmFibGVUaW1lfHwodGhpcy5pc09wZW5lZD0hMSl9Y2xlYXIoKXt0aGlzLnZhbHVlPSIiLHRoaXMuc2VsZWN0ZWREYXRlPW51bGwsdGhpcy5jaGFuZ2VTdWJqZWN0Lm5leHQodGhpcyksdGhpcy5pc09wZW5lZD0hMX1wcmV2aW91c01vbnRoKCl7dGhpcy52aWV3RGF0ZT1uZXcgRGF0ZSh0aGlzLnZpZXdEYXRlLmdldEZ1bGxZZWFyKCksdGhpcy52aWV3RGF0ZS5nZXRNb250aCgpLTEsMSl9bmV4dE1vbnRoKCl7dGhpcy52aWV3RGF0ZT1uZXcgRGF0ZSh0aGlzLnZpZXdEYXRlLmdldEZ1bGxZZWFyKCksdGhpcy52aWV3RGF0ZS5nZXRNb250aCgpKzEsMSl9aGFuZGxlSG91cklucHV0KFope2xldCBKPVoudGFyZ2V0LG1lPXBhcnNlSW50KEoudmFsdWUpfHwwO3RoaXMudGltZUZvcm1hdD09PSIxMmgiPyhtZT1NYXRoLm1heCgxLE1hdGgubWluKDEyLG1lKSksdGhpcy5zZWxlY3RlZEhvdXI+PTEyJiZtZSE9PTEyP3RoaXMuc2VsZWN0ZWRIb3VyPW1lKzEyOnRoaXMuc2VsZWN0ZWRIb3VyPDEyJiZtZT09PTEyP3RoaXMuc2VsZWN0ZWRIb3VyPTA6dGhpcy5zZWxlY3RlZEhvdXI9bWUpOnRoaXMuc2VsZWN0ZWRIb3VyPU1hdGgubWF4KDAsTWF0aC5taW4oMjMsbWUpKSx0aGlzLnVwZGF0ZVNlbGVjdGVkRGF0ZVRpbWUoKX1oYW5kbGVNaW51dGVJbnB1dChaKXtsZXQgSj1aLnRhcmdldCxtZT1wYXJzZUludChKLnZhbHVlKXx8MDttZT1NYXRoLm1heCgwLE1hdGgubWluKDU5LG1lKSksdGhpcy5taW51dGVJbmNyZW1lbnQmJnRoaXMubWludXRlSW5jcmVtZW50PjEmJihtZT1NYXRoLnJvdW5kKG1lL3RoaXMubWludXRlSW5jcmVtZW50KSp0aGlzLm1pbnV0ZUluY3JlbWVudCksdGhpcy5zZWxlY3RlZE1pbnV0ZT1tZSx0aGlzLnVwZGF0ZVNlbGVjdGVkRGF0ZVRpbWUoKX1zZXRBTVBNKFope1o9PT0iYW0iJiZ0aGlzLnNlbGVjdGVkSG91cj49MTI/dGhpcy5zZWxlY3RlZEhvdXItPTEyOlo9PT0icG0iJiZ0aGlzLnNlbGVjdGVkSG91cjwxMiYmKHRoaXMuc2VsZWN0ZWRIb3VyKz0xMiksdGhpcy51cGRhdGVTZWxlY3RlZERhdGVUaW1lKCl9dXBkYXRlU2VsZWN0ZWREYXRlVGltZSgpe3RoaXMuc2VsZWN0ZWREYXRlJiYodGhpcy5zZWxlY3RlZERhdGU9bmV3IERhdGUodGhpcy5zZWxlY3RlZERhdGUuZ2V0RnVsbFllYXIoKSx0aGlzLnNlbGVjdGVkRGF0ZS5nZXRNb250aCgpLHRoaXMuc2VsZWN0ZWREYXRlLmdldERhdGUoKSx0aGlzLnNlbGVjdGVkSG91cix0aGlzLnNlbGVjdGVkTWludXRlKSx0aGlzLnZhbHVlPXRoaXMuZm9ybWF0VmFsdWVXaXRoVGltZXpvbmUodGhpcy5zZWxlY3RlZERhdGUpLHRoaXMuY2hhbmdlU3ViamVjdC5uZXh0KHRoaXMpKX1oYW5kbGVUaW1lem9uZUNoYW5nZShaKXtsZXQgSj1aLnRhcmdldDt0aGlzLnRpbWV6b25lPUoudmFsdWUsdGhpcy51cGRhdGVTZWxlY3RlZERhdGVUaW1lKCl9Zm9ybWF0VmFsdWVXaXRoVGltZXpvbmUoWil7aWYoIXRoaXMuZW5hYmxlVGltZXpvbmUpcmV0dXJuIFoudG9JU09TdHJpbmcoKTtsZXQgbWU9bmV3IEludGwuRGF0ZVRpbWVGb3JtYXQoImVuLVVTIix7eWVhcjoibnVtZXJpYyIsbW9udGg6IjItZGlnaXQiLGRheToiMi1kaWdpdCIsaG91cjoiMi1kaWdpdCIsbWludXRlOiIyLWRpZ2l0IixzZWNvbmQ6IjItZGlnaXQiLGhvdXIxMjohMSx0aW1lWm9uZTp0aGlzLnRpbWV6b25lLHRpbWVab25lTmFtZToic2hvcnQifSkuZm9ybWF0VG9QYXJ0cyhaKSxFZT17fTttZS5mb3JFYWNoKGl0PT57RWVbaXQudHlwZV09aXQudmFsdWV9KTtsZXQgVWU9YCR7RWUueWVhcn0tJHtFZS5tb250aH0tJHtFZS5kYXl9VCR7RWUuaG91cn06JHtFZS5taW51dGV9OiR7RWUuc2Vjb25kfWAsTXQ9dGhpcy5nZXRUaW1lem9uZU9mZnNldChaLHRoaXMudGltZXpvbmUpO3JldHVybmAke1VlfSR7TXR9YH1nZXRUaW1lem9uZU9mZnNldChaLEope2xldCBtZT1uZXcgRGF0ZShaLnRvTG9jYWxlU3RyaW5nKCJlbi1VUyIse3RpbWVab25lOkp9KSksRWU9bmV3IERhdGUoWi50b0xvY2FsZVN0cmluZygiZW4tVVMiLHt0aW1lWm9uZToiVVRDIn0pKSxVZT0obWUuZ2V0VGltZSgpLUVlLmdldFRpbWUoKSkvKDFlMyo2MCksTXQ9TWF0aC5mbG9vcihNYXRoLmFicyhVZSkvNjApLGl0PU1hdGguYWJzKFVlKSU2MDtyZXR1cm5gJHtVZT49MD8iKyI6Ii0ifSR7TXQudG9TdHJpbmcoKS5wYWRTdGFydCgyLCIwIil9OiR7aXQudG9TdHJpbmcoKS5wYWRTdGFydCgyLCIwIil9YH1oYW5kbGVLZXlkb3duKFope1oua2V5PT09IkVudGVyInx8Wi5rZXk9PT0iICI/KFoucHJldmVudERlZmF1bHQoKSx0aGlzLnRvZ2dsZUNhbGVuZGFyKCkpOloua2V5PT09IkVzY2FwZSImJnRoaXMuaXNPcGVuZWQmJihaLnByZXZlbnREZWZhdWx0KCksdGhpcy5pc09wZW5lZD0hMSl9Y2xlYXJWYWx1ZShaKXtaLnN0b3BQcm9wYWdhdGlvbigpLHRoaXMudmFsdWU9IiIsdGhpcy5zZWxlY3RlZERhdGU9bnVsbCx0aGlzLmNoYW5nZVN1YmplY3QubmV4dCh0aGlzKX1oYW5kbGVNYW51YWxJbnB1dChaKXtsZXQgbWU9Wi50YXJnZXQudmFsdWUudHJpbSgpO2lmKCFtZSl7dGhpcy52YWx1ZT0iIix0aGlzLnNlbGVjdGVkRGF0ZT1udWxsO3JldHVybn1sZXQgRWU9dGhpcy5wYXJzZU1hbnVhbERhdGUobWUpO0VlJiYhaXNOYU4oRWUuZ2V0VGltZSgpKSYmKHRoaXMudmFsdWU9RWUudG9JU09TdHJpbmcoKSx0aGlzLnNlbGVjdGVkRGF0ZT1FZSx0aGlzLnZpZXdEYXRlPW5ldyBEYXRlKEVlKSx0aGlzLnNlbGVjdGVkSG91cj1FZS5nZXRIb3VycygpLHRoaXMuc2VsZWN0ZWRNaW51dGU9RWUuZ2V0TWludXRlcygpLHRoaXMuY2hhbmdlU3ViamVjdC5uZXh0KHRoaXMpKX1oYW5kbGVJbnB1dEJsdXIoWil7bGV0IEo9Wi50YXJnZXQsbWU9Si52YWx1ZS50cmltKCk7aWYoIW1lKXt0aGlzLnZhbHVlPSIiLHRoaXMuc2VsZWN0ZWREYXRlPW51bGwsdGhpcy5jaGFuZ2VTdWJqZWN0Lm5leHQodGhpcyk7cmV0dXJufWxldCBFZT10aGlzLnBhcnNlTWFudWFsRGF0ZShtZSk7RWUmJiFpc05hTihFZS5nZXRUaW1lKCkpPyh0aGlzLnZhbHVlPUVlLnRvSVNPU3RyaW5nKCksdGhpcy5zZWxlY3RlZERhdGU9RWUsdGhpcy52aWV3RGF0ZT1uZXcgRGF0ZShFZSksdGhpcy5zZWxlY3RlZEhvdXI9RWUuZ2V0SG91cnMoKSx0aGlzLnNlbGVjdGVkTWludXRlPUVlLmdldE1pbnV0ZXMoKSx0aGlzLmNoYW5nZVN1YmplY3QubmV4dCh0aGlzKSxKLnZhbHVlPXRoaXMuZm9ybWF0RGF0ZSh0aGlzLnZhbHVlKSk6Si52YWx1ZT10aGlzLmZvcm1hdERhdGUodGhpcy52YWx1ZSl9cGFyc2VNYW51YWxEYXRlKFope2lmKCFaKXJldHVybiBudWxsO2xldCBKPVouc3BsaXQoIiAiKSxtZT1KWzBdLEVlPUpbMV18fCIiLFVlPW51bGwsTXQ9bWUubWF0Y2goL14oXGR7NH0pLShcZHsxLDJ9KS0oXGR7MSwyfSkkLyk7aWYoTXQpe2xldFtpdCxMdCxXdCxhZV09TXQ7VWU9bmV3IERhdGUocGFyc2VJbnQoTHQpLHBhcnNlSW50KFd0KS0xLHBhcnNlSW50KGFlKSl9aWYoIVVlKXtsZXQgaXQ9bWUubWF0Y2goL14oXGR7MSwyfSlcLihcZHsxLDJ9KVwuKFxkezR9KSQvKTtpZihpdCl7bGV0W0x0LFd0LGFlLHNlXT1pdDtVZT1uZXcgRGF0ZShwYXJzZUludChzZSkscGFyc2VJbnQoYWUpLTEscGFyc2VJbnQoV3QpKX19aWYoIVVlKXtsZXQgaXQ9bWUubWF0Y2goL14oXGR7MSwyfSlcLyhcZHsxLDJ9KVwvKFxkezR9KSQvKTtpZihpdCl7bGV0W0x0LFd0LGFlLHNlXT1pdDtVZT1uZXcgRGF0ZShwYXJzZUludChzZSkscGFyc2VJbnQoV3QpLTEscGFyc2VJbnQoYWUpKX19aWYoIVVlfHxpc05hTihVZS5nZXRUaW1lKCkpKXJldHVybiBudWxsO2lmKEVlKXtsZXQgaXQ9RWUubWF0Y2goL14oXGR7MSwyfSk6KFxkezJ9KSQvKTtpZihpdCl7bGV0W0x0LFd0LGFlXT1pdDtVZS5zZXRIb3VycyhwYXJzZUludChXdCkpLFVlLnNldE1pbnV0ZXMocGFyc2VJbnQoYWUpKX19ZWxzZSBpZighdGhpcy5lbmFibGVUaW1lKXtsZXQgaXQ9bmV3IERhdGU7VWUuc2V0SG91cnMoaXQuZ2V0SG91cnMoKSksVWUuc2V0TWludXRlcyhpdC5nZXRNaW51dGVzKCkpLFVlLnNldFNlY29uZHMoMCksVWUuc2V0TWlsbGlzZWNvbmRzKDApfXJldHVybiBVZX1nZXRWYWx1ZSgpe3JldHVybiB0aGlzLnZhbHVlfXNldFZhbHVlKFope2lmKHRoaXMudmFsdWU9WixaKXRyeXtsZXQgSj1uZXcgRGF0ZShaKTtpc05hTihKLmdldFRpbWUoKSl8fCh0aGlzLnNlbGVjdGVkRGF0ZT1KLHRoaXMudmlld0RhdGU9bmV3IERhdGUoSiksdGhpcy5zZWxlY3RlZEhvdXI9Si5nZXRIb3VycygpLHRoaXMuc2VsZWN0ZWRNaW51dGU9Si5nZXRNaW51dGVzKCkpfWNhdGNoe319c3RhdGlje1Z0KGkscil9fTtyZXR1cm4gSz1pfSkoKX0pO3ZhciBoNmU9cCgoKT0+e3A2ZSgpfSk7dmFyIEFzcixEc3I9cCgoKT0+e3hlKCk7cDEoKTtPaSgpO0Fzcj0oKT0+Q2AKICA8c3R5bGU+CiAgICAke29lYAogICAgICAuZGVtby1jb250YWluZXIgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgICBnYXA6IDI0cHg7CiAgICAgICAgcGFkZGluZzogMjRweDsKICAgICAgICBtYXgtd2lkdGg6IDEyMDBweDsKICAgICAgICBtYXJnaW46IDAgYXV0bzsKICAgICAgfQogICAgICAKICAgICAgZGVlcy1wYW5lbCB7CiAgICAgICAgbWFyZ2luLWJvdHRvbTogMjRweDsKICAgICAgfQogICAgICAKICAgICAgZGVlcy1wYW5lbDpsYXN0LWNoaWxkIHsKICAgICAgICBtYXJnaW4tYm90dG9tOiAwOwogICAgICB9CiAgICAgIAogICAgICAuaG9yaXpvbnRhbC1ncm91cCB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGdhcDogMTZweDsKICAgICAgICBmbGV4LXdyYXA6IHdyYXA7CiAgICAgIH0KICAgICAgCiAgICAgIC5pbnB1dC1ncm91cCB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICAgIGdhcDogMTZweDsKICAgICAgfQoKICAgICAgLmdyaWQtbGF5b3V0IHsKICAgICAgICBkaXNwbGF5OiBncmlkOwogICAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogMWZyIDFmcjsKICAgICAgICBnYXA6IDE2cHg7CiAgICAgIH0KICAgICAgCiAgICAgIEBtZWRpYSAobWF4LXdpZHRoOiA3NjhweCkgewogICAgICAgIC5ncmlkLWxheW91dCB7CiAgICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDFmcjsKICAgICAgICB9CiAgICAgIH0KICAgICAgCiAgICAgIC5pbnRlcmFjdGl2ZS1zZWN0aW9uIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke20uYmRUaGVtZSgiaHNsKDIxMCA0MCUgOTYuMSUpIiwiaHNsKDIxNSAyMC4yJSAxNi44JSkiKX07CiAgICAgICAgYm9yZGVyLXJhZGl1czogOHB4OwogICAgICAgIHBhZGRpbmc6IDE2cHg7CiAgICAgICAgbWFyZ2luLXRvcDogMTZweDsKICAgICAgfQogICAgICAKICAgICAgLm91dHB1dC10ZXh0IHsKICAgICAgICBmb250LWZhbWlseTogbW9ub3NwYWNlOwogICAgICAgIGZvbnQtc2l6ZTogMTNweDsKICAgICAgICBjb2xvcjogJHttLmJkVGhlbWUoImhzbCgyMTUuMyAyNSUgMjYuNyUpIiwiaHNsKDIxMCA0MCUgODAlKSIpfTsKICAgICAgICBwYWRkaW5nOiA4cHg7CiAgICAgICAgYmFja2dyb3VuZDogJHttLmJkVGhlbWUoImhzbCgyMTAgNDAlIDk4JSkiLCJoc2woMjE1IDIwLjIlIDExLjglKSIpfTsKICAgICAgICBib3JkZXItcmFkaXVzOiA0cHg7CiAgICAgICAgbWluLWhlaWdodDogMjRweDsKICAgICAgfQogICAgYH0KICA8L3N0eWxlPgogIAogIDxkaXYgY2xhc3M9ImRlbW8tY29udGFpbmVyIj4KICAgIDxkZWVzLWRlbW93cmFwcGVyIC5ydW5BZnRlclJlbmRlcj0ke2FzeW5jIGU9PntlLnF1ZXJ5U2VsZWN0b3JBbGwoImRlZXMtaW5wdXQtdGV4dCIpLmZvckVhY2goaT0+e2kuYWRkRXZlbnRMaXN0ZW5lcigiY2hhbmdlU3ViamVjdCIsYT0+e2NvbnNvbGUubG9nKGBJbnB1dCAiJHtpLmxhYmVsfSIgY2hhbmdlZCB0bzpgLGkuZ2V0VmFsdWUoKSl9KSxpLmFkZEV2ZW50TGlzdGVuZXIoImJsdXIiLCgpPT57Y29uc29sZS5sb2coYElucHV0ICIke2kubGFiZWx9IiBsb3N0IGZvY3VzYCl9KX0pLGUucXVlcnlTZWxlY3RvcignZGVlcy1pbnB1dC10ZXh0W2tleT0icGFzc3dvcmQiXScpJiZjb25zb2xlLmxvZygiUGFzc3dvcmQgaW5wdXQgaW5jbHVkZXMgdmlzaWJpbGl0eSB0b2dnbGUiKX19PgogICAgICA8ZGVlcy1wYW5lbCAudGl0bGU9JHsiQmFzaWMgVGV4dCBJbnB1dHMifSAuc3VidGl0bGU9JHsiU3RhbmRhcmQgdGV4dCBpbnB1dHMgd2l0aCBsYWJlbHMgYW5kIGRlc2NyaXB0aW9ucyJ9PgogICAgICAgIDxkaXYgY2xhc3M9ImlucHV0LWdyb3VwIj4KICAgICAgICAgIDxkZWVzLWlucHV0LXRleHQKICAgICAgICAgICAgLmxhYmVsPSR7IlVzZXJuYW1lIn0KICAgICAgICAgICAgLnZhbHVlPSR7ImpvaG5kb2UifQogICAgICAgICAgICAua2V5PSR7InVzZXJuYW1lIn0KICAgICAgICAgID48L2RlZXMtaW5wdXQtdGV4dD4KCiAgICAgICAgICA8ZGVlcy1pbnB1dC10ZXh0CiAgICAgICAgICAgIC5sYWJlbD0keyJFbWFpbCBBZGRyZXNzIn0KICAgICAgICAgICAgLnZhbHVlPSR7ImpvaG5AZXhhbXBsZS5jb20ifQogICAgICAgICAgICAuZGVzY3JpcHRpb249JHsiV2Ugd2lsbCBuZXZlciBzaGFyZSB5b3VyIGVtYWlsIHdpdGggYW55b25lIn0KICAgICAgICAgICAgLmtleT0keyJlbWFpbCJ9CiAgICAgICAgICA+PC9kZWVzLWlucHV0LXRleHQ+CgogICAgICAgICAgPGRlZXMtaW5wdXQtdGV4dAogICAgICAgICAgICAubGFiZWw9JHsiUGFzc3dvcmQifQogICAgICAgICAgICAuaXNQYXNzd29yZEJvb2w9JHshMH0KICAgICAgICAgICAgLnZhbHVlPSR7InNlY3JldDEyMyJ9CiAgICAgICAgICAgIC5rZXk9JHsicGFzc3dvcmQifQogICAgICAgICAgPjwvZGVlcy1pbnB1dC10ZXh0PgogICAgICAgIDwvZGl2PgogICAgICA8L2RlZXMtcGFuZWw+CiAgICA8L2RlZXMtZGVtb3dyYXBwZXI+CiAgICAKICAgIDxkZWVzLWRlbW93cmFwcGVyIC5ydW5BZnRlclJlbmRlcj0ke2FzeW5jIGU9PntlLnF1ZXJ5U2VsZWN0b3JBbGwoImRlZXMtaW5wdXQtdGV4dCIpLmZvckVhY2goYT0+e2xldCBuPXdpbmRvdy5nZXRDb21wdXRlZFN0eWxlKGEpO2NvbnNvbGUubG9nKGBIb3Jpem9udGFsIGlucHV0ICIke2EubGFiZWx9IiBkaXNwbGF5OmAsbi5kaXNwbGF5KX0pO2xldCByPWUucXVlcnlTZWxlY3RvcignZGVlcy1pbnB1dC10ZXh0W2tleT0iZmlyc3ROYW1lIl0nKSxpPWUucXVlcnlTZWxlY3RvcignZGVlcy1pbnB1dC10ZXh0W2tleT0ibGFzdE5hbWUiXScpO2lmKHImJmkpe2xldCBhPSgpPT57bGV0IG49ci5nZXRWYWx1ZSgpLG89aS5nZXRWYWx1ZSgpO2NvbnNvbGUubG9nKGBGdWxsIG5hbWU6ICR7bn0gJHtvfWApfTtyLmFkZEV2ZW50TGlzdGVuZXIoImNoYW5nZVN1YmplY3QiLGEpLGkuYWRkRXZlbnRMaXN0ZW5lcigiY2hhbmdlU3ViamVjdCIsYSl9fX0+CiAgICAgIDxkZWVzLXBhbmVsIC50aXRsZT0keyJIb3Jpem9udGFsIExheW91dCJ9IC5zdWJ0aXRsZT0keyJNdWx0aXBsZSBpbnB1dHMgYXJyYW5nZWQgaG9yaXpvbnRhbGx5IGZvciBjb21wYWN0IGZvcm1zIn0+CiAgICAgICAgPGRpdiBjbGFzcz0iaG9yaXpvbnRhbC1ncm91cCI+CiAgICAgICAgICA8ZGVlcy1pbnB1dC10ZXh0IAogICAgICAgICAgICAubGFiZWw9JHsiRmlyc3QgTmFtZSJ9IAogICAgICAgICAgICAudmFsdWU9JHsiSm9obiJ9IAogICAgICAgICAgICAubGF5b3V0TW9kZT0keyJob3Jpem9udGFsIn0KICAgICAgICAgICAgLmtleT0keyJmaXJzdE5hbWUifQogICAgICAgICAgPjwvZGVlcy1pbnB1dC10ZXh0PgogICAgICAgICAgCiAgICAgICAgICA8ZGVlcy1pbnB1dC10ZXh0IAogICAgICAgICAgICAubGFiZWw9JHsiTGFzdCBOYW1lIn0gCiAgICAgICAgICAgIC52YWx1ZT0keyJEb2UifSAKICAgICAgICAgICAgLmxheW91dE1vZGU9JHsiaG9yaXpvbnRhbCJ9CiAgICAgICAgICAgIC5rZXk9JHsibGFzdE5hbWUifQogICAgICAgICAgPjwvZGVlcy1pbnB1dC10ZXh0PgogICAgICAgICAgCiAgICAgICAgICA8ZGVlcy1pbnB1dC10ZXh0IAogICAgICAgICAgICAubGFiZWw9JHsiQWdlIn0gCiAgICAgICAgICAgIC52YWx1ZT0keyIyOCJ9IAogICAgICAgICAgICAubGF5b3V0TW9kZT0keyJob3Jpem9udGFsIn0KICAgICAgICAgICAgLmtleT0keyJhZ2UifQogICAgICAgICAgPjwvZGVlcy1pbnB1dC10ZXh0PgogICAgICAgIDwvZGl2PgogICAgICA8L2RlZXMtcGFuZWw+CiAgICA8L2RlZXMtZGVtb3dyYXBwZXI+CiAgICAKICAgIDxkZWVzLWRlbW93cmFwcGVyIC5ydW5BZnRlclJlbmRlcj0ke2FzeW5jIGU9PntlLnF1ZXJ5U2VsZWN0b3JBbGwoImRlZXMtaW5wdXQtdGV4dCIpLmZvckVhY2goaT0+e2xldCBhPWkubGFiZWxQb3NpdGlvbjtjb25zb2xlLmxvZyhgSW5wdXQgIiR7aS5sYWJlbH0iIGhhcyBsYWJlbCBwb3NpdGlvbjogJHthfWApfSk7bGV0IHI9ZS5xdWVyeVNlbGVjdG9yQWxsKCdkZWVzLWlucHV0LXRleHRbbGFiZWxQb3NpdGlvbj0ibGVmdCJdJyk7ci5sZW5ndGg+MCYmY29uc29sZS5sb2coYCR7ci5sZW5ndGh9IGlucHV0cyBoYXZlIGxlZnQtYWxpZ25lZCBsYWJlbHMgZm9yIGlubGluZSBsYXlvdXRgKX19PgogICAgICA8ZGVlcy1wYW5lbCAudGl0bGU9JHsiTGFiZWwgUG9zaXRpb25zIn0gLnN1YnRpdGxlPSR7IkRpZmZlcmVudCBsYWJlbCBwb3NpdGlvbmluZyBvcHRpb25zIGZvciB2YXJpb3VzIGxheW91dHMifT4KICAgICAgICA8ZGl2IGNsYXNzPSJpbnB1dC1ncm91cCI+CiAgICAgICAgICA8ZGVlcy1pbnB1dC10ZXh0CiAgICAgICAgICAgIC5sYWJlbD0keyJMYWJlbCBvbiBUb3AgKERlZmF1bHQpIn0KICAgICAgICAgICAgLnZhbHVlPSR7IlN0YW5kYXJkIGxheW91dCJ9CiAgICAgICAgICAgIC5sYWJlbFBvc2l0aW9uPSR7InRvcCJ9CiAgICAgICAgICA+PC9kZWVzLWlucHV0LXRleHQ+CgogICAgICAgICAgPGRlZXMtaW5wdXQtdGV4dAogICAgICAgICAgICAubGFiZWw9JHsiTGFiZWwgb24gTGVmdCJ9CiAgICAgICAgICAgIC52YWx1ZT0keyJJbmxpbmUgbGFiZWwifQogICAgICAgICAgICAubGFiZWxQb3NpdGlvbj0keyJsZWZ0In0KICAgICAgICAgID48L2RlZXMtaW5wdXQtdGV4dD4KCiAgICAgICAgICA8ZGl2IGNsYXNzPSJncmlkLWxheW91dCI+CiAgICAgICAgICA8ZGVlcy1pbnB1dC10ZXh0IAogICAgICAgICAgICAubGFiZWw9JHsiQ2l0eSJ9IAogICAgICAgICAgICAudmFsdWU9JHsiTmV3IFlvcmsifSAKICAgICAgICAgICAgLmxhYmVsUG9zaXRpb249JHsibGVmdCJ9CiAgICAgICAgICA+PC9kZWVzLWlucHV0LXRleHQ+CiAgICAgICAgICAKICAgICAgICAgIDxkZWVzLWlucHV0LXRleHQKICAgICAgICAgICAgLmxhYmVsPSR7IlpJUCBDb2RlIn0KICAgICAgICAgICAgLnZhbHVlPSR7IjEwMDAxIn0KICAgICAgICAgICAgLmxhYmVsUG9zaXRpb249JHsibGVmdCJ9CiAgICAgICAgICA+PC9kZWVzLWlucHV0LXRleHQ+CiAgICAgICAgPC9kaXY+CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGVlcy1wYW5lbD4KICAgIDwvZGVlcy1kZW1vd3JhcHBlcj4KICAgIAogICAgPGRlZXMtZGVtb3dyYXBwZXIgLnJ1bkFmdGVyUmVuZGVyPSR7YXN5bmMgZT0+e2xldCB0PWUucXVlcnlTZWxlY3RvcigiZGVlcy1pbnB1dC10ZXh0W3JlcXVpcmVkXSIpLHI9ZS5xdWVyeVNlbGVjdG9yKCJkZWVzLWlucHV0LXRleHRbZGlzYWJsZWRdIiksaT1lLnF1ZXJ5U2VsZWN0b3IoJ2RlZXMtaW5wdXQtdGV4dFt2YWxpZGF0aW9uU3RhdGU9ImludmFsaWQiXScpO3QmJnQuYWRkRXZlbnRMaXN0ZW5lcigiYmx1ciIsKCk9Pnt0LmdldFZhbHVlKCl8fGNvbnNvbGUubG9nKCJSZXF1aXJlZCBmaWVsZCBpcyBlbXB0eSEiKX0pLHImJmNvbnNvbGUubG9nKCJEaXNhYmxlZCBpbnB1dCBjYW5ub3QgYmUgZWRpdGVkIiksaSYmKGNvbnNvbGUubG9nKCJFcnJvciBpbnB1dCBzaG93cyB2YWxpZGF0aW9uIG1lc3NhZ2U6IixpLnZhbGlkYXRpb25UZXh0KSxpLmFkZEV2ZW50TGlzdGVuZXIoImNoYW5nZVN1YmplY3QiLCgpPT57bGV0IGE9aS5nZXRWYWx1ZSgpO2EuaW5jbHVkZXMoIkAiKSYmYS5pbmNsdWRlcygiLiIpJiYoaS52YWxpZGF0aW9uU3RhdGU9InZhbGlkIixpLnZhbGlkYXRpb25UZXh0PSIiLGNvbnNvbGUubG9nKCJFbWFpbCB2YWxpZGF0aW9uIHBhc3NlZCEiKSl9KSl9fT4KICAgICAgPGRlZXMtcGFuZWwgLnRpdGxlPSR7IlZhbGlkYXRpb24gJiBTdGF0ZXMifSAuc3VidGl0bGU9JHsiRGlmZmVyZW50IHZhbGlkYXRpb24gc3RhdGVzIGFuZCBpbnB1dCBjb25maWd1cmF0aW9ucyJ9PgogICAgICAgIDxkaXYgY2xhc3M9ImlucHV0LWdyb3VwIj4KICAgICAgICAgIDxkZWVzLWlucHV0LXRleHQKICAgICAgICAgICAgLmxhYmVsPSR7IlJlcXVpcmVkIEZpZWxkIn0KICAgICAgICAgICAgLnJlcXVpcmVkPSR7ITB9CiAgICAgICAgICAgIC5rZXk9JHsicmVxdWlyZWRGaWVsZCJ9CiAgICAgICAgICA+PC9kZWVzLWlucHV0LXRleHQ+CgogICAgICAgICAgPGRlZXMtaW5wdXQtdGV4dAogICAgICAgICAgICAubGFiZWw9JHsiRGlzYWJsZWQgRmllbGQifQogICAgICAgICAgICAudmFsdWU9JHsiQ2Fubm90IGVkaXQgdGhpcyJ9CiAgICAgICAgICAgIC5kaXNhYmxlZD0keyEwfQogICAgICAgICAgPjwvZGVlcy1pbnB1dC10ZXh0PgoKICAgICAgICAgIDxkZWVzLWlucHV0LXRleHQKICAgICAgICAgICAgLmxhYmVsPSR7IkZpZWxkIHdpdGggRXJyb3IifQogICAgICAgICAgICAudmFsdWU9JHsiaW52YWxpZEAifQogICAgICAgICAgICAudmFsaWRhdGlvblRleHQ9JHsiUGxlYXNlIGVudGVyIGEgdmFsaWQgZW1haWwgYWRkcmVzcyJ9CiAgICAgICAgICAgIC52YWxpZGF0aW9uU3RhdGU9JHsiaW52YWxpZCJ9CiAgICAgICAgICA+PC9kZWVzLWlucHV0LXRleHQ+CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGVlcy1wYW5lbD4KICAgIDwvZGVlcy1kZW1vd3JhcHBlcj4KICAgIAogICAgPGRlZXMtZGVtb3dyYXBwZXIgLnJ1bkFmdGVyUmVuZGVyPSR7YXN5bmMgZT0+e2UucXVlcnlTZWxlY3RvckFsbCgiZGVlcy1pbnB1dC10ZXh0W2lzUGFzc3dvcmRCb29sXSIpLmZvckVhY2gocj0+e2xldCBpPSgpPT57bGV0IGE9ci5zaGFkb3dSb290Py5xdWVyeVNlbGVjdG9yKCJpbnB1dCIpO2EmJmNvbnNvbGUubG9nKGBQYXNzd29yZCBmaWVsZCAiJHtyLmxhYmVsfSIgdHlwZTpgLGEudHlwZSl9O2lmKHIuc2hhZG93Um9vdCl7bGV0IGE9bmV3IE11dGF0aW9uT2JzZXJ2ZXIoaSksbj1yLnNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvcigiaW5wdXQiKTtuJiZhLm9ic2VydmUobix7YXR0cmlidXRlczohMCxhdHRyaWJ1dGVGaWx0ZXI6WyJ0eXBlIl19KX19KX19PgogICAgICA8ZGVlcy1wYW5lbCAudGl0bGU9JHsiQWR2YW5jZWQgRmVhdHVyZXMifSAuc3VidGl0bGU9JHsiUGFzc3dvcmQgdmlzaWJpbGl0eSB0b2dnbGUgYW5kIG90aGVyIGFkdmFuY2VkIGZlYXR1cmVzIn0+CiAgICAgICAgPGRpdiBjbGFzcz0iaW5wdXQtZ3JvdXAiPgogICAgICAgICAgPGRlZXMtaW5wdXQtdGV4dAogICAgICAgICAgICAubGFiZWw9JHsiUGFzc3dvcmQgd2l0aCBUb2dnbGUifQogICAgICAgICAgICAuaXNQYXNzd29yZEJvb2w9JHshMH0KICAgICAgICAgICAgLnZhbHVlPSR7Im15U2VjdXJlUGFzc3dvcmQxMjMifQogICAgICAgICAgICAuZGVzY3JpcHRpb249JHsiQ2xpY2sgdGhlIGV5ZSBpY29uIHRvIHNob3cvaGlkZSBwYXNzd29yZCJ9CiAgICAgICAgICA+PC9kZWVzLWlucHV0LXRleHQ+CgogICAgICAgICAgPGRlZXMtaW5wdXQtdGV4dAogICAgICAgICAgICAubGFiZWw9JHsiQVBJIEtleSJ9CiAgICAgICAgICAgIC5pc1Bhc3N3b3JkQm9vbD0keyEwfQogICAgICAgICAgICAudmFsdWU9JHsic2stMTIzNDU2Nzg5MGFiY2RlZiJ9CiAgICAgICAgICAgIC5kZXNjcmlwdGlvbj0keyJLZWVwIHRoaXMga2V5IHNlY3VyZSBhbmQgbmV2ZXIgc2hhcmUgaXQifQogICAgICAgICAgPjwvZGVlcy1pbnB1dC10ZXh0PgogICAgICAgIDwvZGl2PgogICAgICA8L2RlZXMtcGFuZWw+CiAgICA8L2RlZXMtZGVtb3dyYXBwZXI+CiAgICAKICAgIDxkZWVzLWRlbW93cmFwcGVyIC5ydW5BZnRlclJlbmRlcj0ke2FzeW5jIGU9PntsZXQgdD1lLnF1ZXJ5U2VsZWN0b3IoImRlZXMtaW5wdXQtdGV4dCIpLHI9ZS5xdWVyeVNlbGVjdG9yKCIjdGV4dC1pbnB1dC1vdXRwdXQiKTtpZih0JiZyKXt0LmFkZEV2ZW50TGlzdGVuZXIoImNoYW5nZVN1YmplY3QiLGE9PntsZXQgbj1hLmRldGFpbC5nZXRWYWx1ZSgpO3IudGV4dENvbnRlbnQ9YEN1cnJlbnQgdmFsdWU6ICIke259ImB9KSx0LmFkZEV2ZW50TGlzdGVuZXIoImZvY3VzIiwoKT0+e2NvbnNvbGUubG9nKCJJbnB1dCBmb2N1c2VkIil9KSx0LmFkZEV2ZW50TGlzdGVuZXIoImJsdXIiLCgpPT57Y29uc29sZS5sb2coIklucHV0IGJsdXJyZWQiKX0pO2xldCBpPTA7dC5hZGRFdmVudExpc3RlbmVyKCJrZXlkb3duIiwoKT0+e2krKyxjb25zb2xlLmxvZyhgS2V5cHJlc3MgY291bnQ6ICR7aX1gKX0pfX19PgogICAgICA8ZGVlcy1wYW5lbCAudGl0bGU9JHsiSW50ZXJhY3RpdmUgRXhhbXBsZSJ9IC5zdWJ0aXRsZT0keyJUcnkgdHlwaW5nIGluIHRoZSBpbnB1dHMgdG8gc2VlIHJlYWwtdGltZSB2YWx1ZSBjaGFuZ2VzIn0+CiAgICAgICAgPGRlZXMtaW5wdXQtdGV4dCAKICAgICAgICAgIC5sYWJlbD0keyJEeW5hbWljIElucHV0In0gCiAgICAgICAgICAucGxhY2Vob2xkZXI9JHsiVHlwZSBzb21ldGhpbmcgaGVyZS4uLiJ9CiAgICAgICAgPjwvZGVlcy1pbnB1dC10ZXh0PgogICAgICAgIAogICAgICAgIDxkaXYgY2xhc3M9ImludGVyYWN0aXZlLXNlY3Rpb24iPgogICAgICAgICAgPGRpdiBpZD0idGV4dC1pbnB1dC1vdXRwdXQiIGNsYXNzPSJvdXRwdXQtdGV4dCI+Q3VycmVudCB2YWx1ZTogIiI8L2Rpdj4KICAgICAgICA8L2Rpdj4KICAgICAgPC9kZWVzLXBhbmVsPgogICAgPC9kZWVzLWRlbW93cmFwcGVyPgogIDwvZGl2PgpgfSk7dmFyIEZkLFpuLEROLE40PXAoKCk9PntQbygpO00xKCk7RHNyKCk7UWEoKTt4ZSgpO0plKCk7RmQ9ZnVuY3Rpb24oZSx0LHIsaSxhLG4pe2Z1bmN0aW9uIG8oeSl7aWYoeSE9PXZvaWQgMCYmdHlwZW9mIHkhPSJmdW5jdGlvbiIpdGhyb3cgbmV3IFR5cGVFcnJvcigiRnVuY3Rpb24gZXhwZWN0ZWQiKTtyZXR1cm4geX1mb3IodmFyIHM9aS5raW5kLGw9cz09PSJnZXR0ZXIiPyJnZXQiOnM9PT0ic2V0dGVyIj8ic2V0IjoidmFsdWUiLGM9IXQmJmU/aS5zdGF0aWM/ZTplLnByb3RvdHlwZTpudWxsLHU9dHx8KGM/T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihjLGkubmFtZSk6e30pLGQsaD0hMSxmPXIubGVuZ3RoLTE7Zj49MDtmLS0pe3ZhciB4PXt9O2Zvcih2YXIgdiBpbiBpKXhbdl09dj09PSJhY2Nlc3MiP3t9Omlbdl07Zm9yKHZhciB2IGluIGkuYWNjZXNzKXguYWNjZXNzW3ZdPWkuYWNjZXNzW3ZdO3guYWRkSW5pdGlhbGl6ZXI9ZnVuY3Rpb24oeSl7aWYoaCl0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgYWRkIGluaXRpYWxpemVycyBhZnRlciBkZWNvcmF0aW9uIGhhcyBjb21wbGV0ZWQiKTtuLnB1c2gobyh5fHxudWxsKSl9O3ZhciBiPSgwLHJbZl0pKHM9PT0iYWNjZXNzb3IiP3tnZXQ6dS5nZXQsc2V0OnUuc2V0fTp1W2xdLHgpO2lmKHM9PT0iYWNjZXNzb3IiKXtpZihiPT09dm9pZCAwKWNvbnRpbnVlO2lmKGI9PT1udWxsfHx0eXBlb2YgYiE9Im9iamVjdCIpdGhyb3cgbmV3IFR5cGVFcnJvcigiT2JqZWN0IGV4cGVjdGVkIik7KGQ9byhiLmdldCkpJiYodS5nZXQ9ZCksKGQ9byhiLnNldCkpJiYodS5zZXQ9ZCksKGQ9byhiLmluaXQpKSYmYS51bnNoaWZ0KGQpfWVsc2UoZD1vKGIpKSYmKHM9PT0iZmllbGQiP2EudW5zaGlmdChkKTp1W2xdPWQpfWMmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShjLGkubmFtZSx1KSxoPSEwfSxabj1mdW5jdGlvbihlLHQscil7Zm9yKHZhciBpPWFyZ3VtZW50cy5sZW5ndGg+MixhPTA7YTx0Lmxlbmd0aDthKyspcj1pP3RbYV0uY2FsbChlLHIpOnRbYV0uY2FsbChlKTtyZXR1cm4gaT9yOnZvaWQgMH0sRE49KCgpPT57bGV0IGU9W3llKCJkZWVzLWlucHV0LXRleHQiKV0sdCxyPVtdLGksYT1vdCxuLG89W10scz1bXSxsLGM9W10sdT1bXSxkLGg9W10sZj1bXSx4LHY9W10sYj1bXSx5LHc9W10saz1bXSxPLHo9W10sTT1bXTt2YXIgRj1jbGFzcyBleHRlbmRzIGF7c3RhdGlje2k9dGhpc31zdGF0aWN7bGV0IEQ9dHlwZW9mIFN5bWJvbD09ImZ1bmN0aW9uIiYmU3ltYm9sLm1ldGFkYXRhP09iamVjdC5jcmVhdGUoYVtTeW1ib2wubWV0YWRhdGFdPz9udWxsKTp2b2lkIDA7bj1baih7dHlwZTpTdHJpbmcscmVmbGVjdDohMH0pXSxsPVtqKHt0eXBlOkJvb2xlYW4scmVmbGVjdDohMH0pXSxkPVtqKHt0eXBlOkJvb2xlYW4scmVmbGVjdDohMH0pXSx4PVtqKHt0eXBlOkJvb2xlYW4scmVmbGVjdDohMH0pXSx5PVtqKHtyZWZsZWN0OiEwfSldLE89W2ooe30pXSxGZCh0aGlzLG51bGwsbix7a2luZDoiYWNjZXNzb3IiLG5hbWU6InZhbHVlIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpOPT4idmFsdWUiaW4gTixnZXQ6Tj0+Ti52YWx1ZSxzZXQ6KE4sUik9PntOLnZhbHVlPVJ9fSxtZXRhZGF0YTpEfSxvLHMpLEZkKHRoaXMsbnVsbCxsLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiaXNQYXNzd29yZEJvb2wiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOk49PiJpc1Bhc3N3b3JkQm9vbCJpbiBOLGdldDpOPT5OLmlzUGFzc3dvcmRCb29sLHNldDooTixSKT0+e04uaXNQYXNzd29yZEJvb2w9Un19LG1ldGFkYXRhOkR9LGMsdSksRmQodGhpcyxudWxsLGQse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJzaG93UGFzc3dvcmRCb29sIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpOPT4ic2hvd1Bhc3N3b3JkQm9vbCJpbiBOLGdldDpOPT5OLnNob3dQYXNzd29yZEJvb2wsc2V0OihOLFIpPT57Ti5zaG93UGFzc3dvcmRCb29sPVJ9fSxtZXRhZGF0YTpEfSxoLGYpLEZkKHRoaXMsbnVsbCx4LHtraW5kOiJhY2Nlc3NvciIsbmFtZToidmFsaWRhdGlvblN0YXRlIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpOPT4idmFsaWRhdGlvblN0YXRlImluIE4sZ2V0Ok49Pk4udmFsaWRhdGlvblN0YXRlLHNldDooTixSKT0+e04udmFsaWRhdGlvblN0YXRlPVJ9fSxtZXRhZGF0YTpEfSx2LGIpLEZkKHRoaXMsbnVsbCx5LHtraW5kOiJhY2Nlc3NvciIsbmFtZToidmFsaWRhdGlvblRleHQiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOk49PiJ2YWxpZGF0aW9uVGV4dCJpbiBOLGdldDpOPT5OLnZhbGlkYXRpb25UZXh0LHNldDooTixSKT0+e04udmFsaWRhdGlvblRleHQ9Un19LG1ldGFkYXRhOkR9LHcsayksRmQodGhpcyxudWxsLE8se2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJ2YWxpZGF0aW9uRnVuY3Rpb24iLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOk49PiJ2YWxpZGF0aW9uRnVuY3Rpb24iaW4gTixnZXQ6Tj0+Ti52YWxpZGF0aW9uRnVuY3Rpb24sc2V0OihOLFIpPT57Ti52YWxpZGF0aW9uRnVuY3Rpb249Un19LG1ldGFkYXRhOkR9LHosTSksRmQobnVsbCx0PXt2YWx1ZTppfSxlLHtraW5kOiJjbGFzcyIsbmFtZTppLm5hbWUsbWV0YWRhdGE6RH0sbnVsbCxyKSxGPWk9dC52YWx1ZSxEJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoaSxTeW1ib2wubWV0YWRhdGEse2VudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwLHZhbHVlOkR9KX1zdGF0aWMgZGVtbz1Bc3I7c3RhdGljIGRlbW9Hcm91cHM9WyJJbnB1dCJdOyNlPVpuKHRoaXMsbywiIik7Z2V0IHZhbHVlKCl7cmV0dXJuIHRoaXMuI2V9c2V0IHZhbHVlKEQpe3RoaXMuI2U9RH0jdD0oWm4odGhpcyxzKSxabih0aGlzLGMsITEpKTtnZXQgaXNQYXNzd29yZEJvb2woKXtyZXR1cm4gdGhpcy4jdH1zZXQgaXNQYXNzd29yZEJvb2woRCl7dGhpcy4jdD1EfSNyPShabih0aGlzLHUpLFpuKHRoaXMsaCwhMSkpO2dldCBzaG93UGFzc3dvcmRCb29sKCl7cmV0dXJuIHRoaXMuI3J9c2V0IHNob3dQYXNzd29yZEJvb2woRCl7dGhpcy4jcj1EfSNpPShabih0aGlzLGYpLFpuKHRoaXMsdix2b2lkIDApKTtnZXQgdmFsaWRhdGlvblN0YXRlKCl7cmV0dXJuIHRoaXMuI2l9c2V0IHZhbGlkYXRpb25TdGF0ZShEKXt0aGlzLiNpPUR9I2E9KFpuKHRoaXMsYiksWm4odGhpcyx3LCIiKSk7Z2V0IHZhbGlkYXRpb25UZXh0KCl7cmV0dXJuIHRoaXMuI2F9c2V0IHZhbGlkYXRpb25UZXh0KEQpe3RoaXMuI2E9RH0jbj0oWm4odGhpcyxrKSxabih0aGlzLHosdm9pZCAwKSk7Z2V0IHZhbGlkYXRpb25GdW5jdGlvbigpe3JldHVybiB0aGlzLiNufXNldCB2YWxpZGF0aW9uRnVuY3Rpb24oRCl7dGhpcy4jbj1EfXN0YXRpYyBzdHlsZXM9W0RlLC4uLm90LmJhc2VTdHlsZXMsbS5kZWZhdWx0U3R5bGVzLG9lYAogICAgICAvKiBUT0RPOiBNaWdyYXRlIGhhcmRjb2RlZCB2YWx1ZXMgdG8gLS1kZWVzLSogQ1NTIHZhcmlhYmxlcyAqLwogICAgICAqIHsKICAgICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94OwogICAgICB9CgogICAgICA6aG9zdCB7CiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICAgIHotaW5kZXg6IGF1dG87CiAgICAgICAgZm9udC1mYW1pbHk6ICR7SXJ9OwogICAgICB9CgogICAgICAubWFpbmNvbnRhaW5lciB7CiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICAgIGNvbG9yOiAke20uYmRUaGVtZSgiaHNsKDAgMCUgMTUlKSIsImhzbCgwIDAlIDkwJSkiKX07CiAgICAgIH0KCiAgICAgIGlucHV0IHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGhlaWdodDogNDBweDsKICAgICAgICB3aWR0aDogMTAwJTsKICAgICAgICBwYWRkaW5nOiAwIDEycHg7CiAgICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgICAgIGxpbmUtaGVpZ2h0OiA0MHB4OwogICAgICAgIGJhY2tncm91bmQ6ICR7bS5iZFRoZW1lKCJoc2woMCAwJSAxMDAlKSIsImhzbCgwIDAlIDklKSIpfTsKICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAke20uYmRUaGVtZSgiaHNsKDAgMCUgODkuOCUpIiwiaHNsKDAgMCUgMTQuOSUpIil9OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDZweDsKICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC4ycyBjdWJpYy1iZXppZXIoMC40LCAwLCAwLjIsIDEpOwogICAgICAgIG91dGxpbmU6IG5vbmU7CiAgICAgICAgY3Vyc29yOiB0ZXh0OwogICAgICAgIGZvbnQtZmFtaWx5OiBpbmhlcml0OwogICAgICAgIGNvbG9yOiAke20uYmRUaGVtZSgiaHNsKDAgMCUgMy45JSkiLCJoc2woMCAwJSA5OCUpIil9OwogICAgICB9CgogICAgICBpbnB1dDo6cGxhY2Vob2xkZXIgewogICAgICAgIGNvbG9yOiAke20uYmRUaGVtZSgiaHNsKDAgMCUgNDUuMSUpIiwiaHNsKDAgMCUgNjMuOSUpIil9OwogICAgICB9CgogICAgICBpbnB1dDpob3Zlcjpub3QoOmRpc2FibGVkKTpub3QoOmZvY3VzKSB7CiAgICAgICAgYm9yZGVyLWNvbG9yOiAke20uYmRUaGVtZSgiaHNsKDAgMCUgNzkuOCUpIiwiaHNsKDAgMCUgMjAuOSUpIil9OwogICAgICB9CgogICAgICBpbnB1dDpmb2N1cyB7CiAgICAgICAgb3V0bGluZTogbm9uZTsKICAgICAgICBib3JkZXItY29sb3I6ICR7bS5iZFRoZW1lKCJoc2woMCAwJSA5JSkiLCJoc2woMCAwJSA5OCUpIil9OwogICAgICAgIGJveC1zaGFkb3c6IDAgMCAwIDJweCAke20uYmRUaGVtZSgiaHNsKDAgMCUgOSUgLyAwLjA1KSIsImhzbCgwIDAlIDk4JSAvIDAuMDUpIil9OwogICAgICB9CgogICAgICBpbnB1dDpkaXNhYmxlZCB7CiAgICAgICAgYmFja2dyb3VuZDogJHttLmJkVGhlbWUoImhzbCgwIDAlIDk1LjElKSIsImhzbCgwIDAlIDE0LjklKSIpfTsKICAgICAgICBib3JkZXItY29sb3I6ICR7bS5iZFRoZW1lKCJoc2woMCAwJSA4OS44JSkiLCJoc2woMCAwJSAxNC45JSkiKX07CiAgICAgICAgY29sb3I6ICR7bS5iZFRoZW1lKCJoc2woMCAwJSA0NS4xJSkiLCJoc2woMCAwJSA2My45JSkiKX07CiAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDsKICAgICAgICBvcGFjaXR5OiAwLjU7CiAgICAgIH0KCiAgICAgIC8qIFBhc3N3b3JkIHRvZ2dsZSBidXR0b24gKi8KICAgICAgLnNob3dQYXNzd29yZCB7CiAgICAgICAgcG9zaXRpb246IGFic29sdXRlOwogICAgICAgIHJpZ2h0OiAxcHg7CiAgICAgICAgdG9wOiA1MCU7CiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpOwogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKICAgICAgICB3aWR0aDogMzhweDsKICAgICAgICBoZWlnaHQ6IDM4cHg7CiAgICAgICAgY3Vyc29yOiBwb2ludGVyOwogICAgICAgIGNvbG9yOiAke20uYmRUaGVtZSgiaHNsKDAgMCUgNDUuMSUpIiwiaHNsKDAgMCUgNjMuOSUpIil9OwogICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjE1cyBlYXNlOwogICAgICAgIGJvcmRlci1yYWRpdXM6IDAgNXB4IDVweCAwOwogICAgICB9CgogICAgICAuc2hvd1Bhc3N3b3JkOmhvdmVyIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke20uYmRUaGVtZSgiaHNsKDAgMCUgOTUuMSUpIiwiaHNsKDAgMCUgMTQuOSUpIil9OwogICAgICAgIGNvbG9yOiAke20uYmRUaGVtZSgiaHNsKDAgMCUgMTUlKSIsImhzbCgwIDAlIDkzLjklKSIpfTsKICAgICAgfQoKICAgICAgLyogVmFsaWRhdGlvbiBzdHlsZXMgKi8KICAgICAgLnZhbGlkYXRpb25Db250YWluZXIgewogICAgICAgIG1hcmdpbi10b3A6IDRweDsKICAgICAgICBwYWRkaW5nOiA0cHggOHB4OwogICAgICAgIGZvbnQtc2l6ZTogMTJweDsKICAgICAgICBmb250LXdlaWdodDogNTAwOwogICAgICAgIGJvcmRlci1yYWRpdXM6IDRweDsKICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC4ycyBlYXNlOwogICAgICAgIG92ZXJmbG93OiBoaWRkZW47CiAgICAgIH0KCiAgICAgIC52YWxpZGF0aW9uQ29udGFpbmVyLmVycm9yIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke20uYmRUaGVtZSgiaHNsKDAgODQuMiUgNjAuMiUgLyAwLjEpIiwiaHNsKDAgNzIuMiUgNTAuNiUgLyAwLjEpIil9OwogICAgICAgIGNvbG9yOiAke20uYmRUaGVtZSgiaHNsKDAgODQuMiUgNjAuMiUpIiwiaHNsKDAgNzIuMiUgNTAuNiUpIil9OwogICAgICB9CgogICAgICAudmFsaWRhdGlvbkNvbnRhaW5lci53YXJuIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke20uYmRUaGVtZSgiaHNsKDI1IDk1JSA1MyUgLyAwLjEpIiwiaHNsKDI1IDk1JSA2MyUgLyAwLjEpIil9OwogICAgICAgIGNvbG9yOiAke20uYmRUaGVtZSgiaHNsKDI1IDk1JSA1MyUpIiwiaHNsKDI1IDk1JSA2MyUpIil9OwogICAgICB9CgogICAgICAudmFsaWRhdGlvbkNvbnRhaW5lci52YWxpZCB7CiAgICAgICAgYmFja2dyb3VuZDogJHttLmJkVGhlbWUoImhzbCgxNDIuMSA3Ni4yJSAzNi4zJSAvIDAuMSkiLCJoc2woMTQyLjEgNzAuNiUgNDUuMyUgLyAwLjEpIil9OwogICAgICAgIGNvbG9yOiAke20uYmRUaGVtZSgiaHNsKDE0Mi4xIDc2LjIlIDM2LjMlKSIsImhzbCgxNDIuMSA3MC42JSA0NS4zJSkiKX07CiAgICAgIH0KCiAgICAgIC8qIEVycm9yIHN0YXRlIGZvciBpbnB1dCAqLwogICAgICA6aG9zdChbdmFsaWRhdGlvbi1zdGF0ZT0iaW52YWxpZCJdKSBpbnB1dCB7CiAgICAgICAgYm9yZGVyLWNvbG9yOiAke20uYmRUaGVtZSgiaHNsKDAgODQuMiUgNjAuMiUpIiwiaHNsKDAgNzIuMiUgNTAuNiUpIil9OwogICAgICB9CgogICAgICA6aG9zdChbdmFsaWRhdGlvbi1zdGF0ZT0iaW52YWxpZCJdKSBpbnB1dDpmb2N1cyB7CiAgICAgICAgYm9yZGVyLWNvbG9yOiAke20uYmRUaGVtZSgiaHNsKDAgODQuMiUgNjAuMiUpIiwiaHNsKDAgNzIuMiUgNTAuNiUpIil9OwogICAgICAgIGJveC1zaGFkb3c6IDAgMCAwIDJweCAke20uYmRUaGVtZSgiaHNsKDAgODQuMiUgNjAuMiUgLyAwLjA1KSIsImhzbCgwIDcyLjIlIDUwLjYlIC8gMC4wNSkiKX07CiAgICAgIH0KCiAgICAgIC8qIFdhcm5pbmcgc3RhdGUgZm9yIGlucHV0ICovCiAgICAgIDpob3N0KFt2YWxpZGF0aW9uLXN0YXRlPSJ3YXJuIl0pIGlucHV0IHsKICAgICAgICBib3JkZXItY29sb3I6ICR7bS5iZFRoZW1lKCJoc2woMjUgOTUlIDUzJSkiLCJoc2woMjUgOTUlIDYzJSkiKX07CiAgICAgIH0KCiAgICAgIDpob3N0KFt2YWxpZGF0aW9uLXN0YXRlPSJ3YXJuIl0pIGlucHV0OmZvY3VzIHsKICAgICAgICBib3JkZXItY29sb3I6ICR7bS5iZFRoZW1lKCJoc2woMjUgOTUlIDUzJSkiLCJoc2woMjUgOTUlIDYzJSkiKX07CiAgICAgICAgYm94LXNoYWRvdzogMCAwIDAgMnB4ICR7bS5iZFRoZW1lKCJoc2woMjUgOTUlIDUzJSAvIDAuMDUpIiwiaHNsKDI1IDk1JSA2MyUgLyAwLjA1KSIpfTsKICAgICAgfQoKICAgICAgLyogVmFsaWQgc3RhdGUgZm9yIGlucHV0ICovCiAgICAgIDpob3N0KFt2YWxpZGF0aW9uLXN0YXRlPSJ2YWxpZCJdKSBpbnB1dCB7CiAgICAgICAgYm9yZGVyLWNvbG9yOiAke20uYmRUaGVtZSgiaHNsKDE0Mi4xIDc2LjIlIDM2LjMlKSIsImhzbCgxNDIuMSA3MC42JSA0NS4zJSkiKX07CiAgICAgIH0KCiAgICAgIDpob3N0KFt2YWxpZGF0aW9uLXN0YXRlPSJ2YWxpZCJdKSBpbnB1dDpmb2N1cyB7CiAgICAgICAgYm9yZGVyLWNvbG9yOiAke20uYmRUaGVtZSgiaHNsKDE0Mi4xIDc2LjIlIDM2LjMlKSIsImhzbCgxNDIuMSA3MC42JSA0NS4zJSkiKX07CiAgICAgICAgYm94LXNoYWRvdzogMCAwIDAgMnB4ICR7bS5iZFRoZW1lKCJoc2woMTQyLjEgNzYuMiUgMzYuMyUgLyAwLjA1KSIsImhzbCgxNDIuMSA3MC42JSA0NS4zJSAvIDAuMDUpIil9OwogICAgICB9CiAgICBgXTtyZW5kZXIoKXtyZXR1cm4gQ2AKICAgICAgPHN0eWxlPgogICAgICAgIGlucHV0IHsKICAgICAgICAgIGZvbnQtZmFtaWx5OiAke3RoaXMuaXNQYXNzd29yZEJvb2w/QWQ6ImluaGVyaXQifTsKICAgICAgICAgIGxldHRlci1zcGFjaW5nOiAke3RoaXMuaXNQYXNzd29yZEJvb2w/IjAuNXB4Ijoibm9ybWFsIn07CiAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAke3RoaXMuaXNQYXNzd29yZEJvb2w/IjQ4cHgiOiIxMnB4In07CiAgICAgICAgfQogICAgICAgICR7dGhpcy52YWxpZGF0aW9uVGV4dD9vZWAKICAgICAgICAgICAgICAudmFsaWRhdGlvbkNvbnRhaW5lciB7CiAgICAgICAgICAgICAgICBoZWlnaHQ6IGF1dG87CiAgICAgICAgICAgICAgICBvcGFjaXR5OiAxOwogICAgICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDApOwogICAgICAgICAgICAgIH0KICAgICAgICAgICAgYDpvZWAKICAgICAgICAgICAgICAudmFsaWRhdGlvbkNvbnRhaW5lciB7CiAgICAgICAgICAgICAgICBoZWlnaHQ6IDA7CiAgICAgICAgICAgICAgICBwYWRkaW5nOiAwICFpbXBvcnRhbnQ7CiAgICAgICAgICAgICAgICBvcGFjaXR5OiAwOwogICAgICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC00cHgpOwogICAgICAgICAgICAgIH0KICAgICAgICAgICAgYH0KICAgICAgPC9zdHlsZT4KICAgICAgPGRpdiBjbGFzcz0iaW5wdXQtd3JhcHBlciI+CiAgICAgICAgPGRlZXMtbGFiZWwgLmxhYmVsPSR7dGhpcy5sYWJlbH0gLmRlc2NyaXB0aW9uPSR7dGhpcy5kZXNjcmlwdGlvbn0gLnJlcXVpcmVkPSR7dGhpcy5yZXF1aXJlZH0+PC9kZWVzLWxhYmVsPgogICAgICAgIDxkaXYgY2xhc3M9Im1haW5jb250YWluZXIiPgogICAgICAgICAgPGlucHV0CiAgICAgICAgICAgIHR5cGU9IiR7dGhpcy5pc1Bhc3N3b3JkQm9vbCYmIXRoaXMuc2hvd1Bhc3N3b3JkQm9vbD8icGFzc3dvcmQiOiJ0ZXh0In0iCiAgICAgICAgICAgIC52YWx1ZT0ke3RoaXMudmFsdWV9CiAgICAgICAgICAgIEBpbnB1dD0iJHt0aGlzLnVwZGF0ZVZhbHVlfSIKICAgICAgICAgICAgLmRpc2FibGVkPSR7dGhpcy5kaXNhYmxlZH0KICAgICAgICAgICAgcGxhY2Vob2xkZXI9IiR7dGhpcy5sYWJlbD8iIjoiRW50ZXIgdGV4dC4uLiJ9IgogICAgICAgICAgLz4KICAgICAgICAgICR7dGhpcy5pc1Bhc3N3b3JkQm9vbD9DYAogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0ic2hvd1Bhc3N3b3JkIiBAY2xpY2s9JHt0aGlzLnRvZ2dsZVBhc3N3b3JkVmlld30+CiAgICAgICAgICAgICAgICAgIDxkZWVzLWljb24gLmljb249JHt0aGlzLnNob3dQYXNzd29yZEJvb2w/Imx1Y2lkZTpFeWUiOiJsdWNpZGU6RXllT2ZmIn0+PC9kZWVzLWljb24+CiAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICBgOkNgYH0KICAgICAgICAgICR7dGhpcy52YWxpZGF0aW9uVGV4dD9DYAogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0idmFsaWRhdGlvbkNvbnRhaW5lciAke3RoaXMudmFsaWRhdGlvblN0YXRlfHwiZXJyb3IifSI+CiAgICAgICAgICAgICAgICAgICR7dGhpcy52YWxpZGF0aW9uVGV4dH0KICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgIGA6Q2A8ZGl2IGNsYXNzPSJ2YWxpZGF0aW9uQ29udGFpbmVyIj48L2Rpdj5gfQogICAgICAgIDwvZGl2PgogICAgICA8L2Rpdj4KICAgIGB9Zmlyc3RVcGRhdGVkKCl7fWFzeW5jIHVwZGF0ZVZhbHVlKEQpe2xldCBOPUQudGFyZ2V0O3RoaXMudmFsdWU9Ti52YWx1ZSx0aGlzLmNoYW5nZVN1YmplY3QubmV4dCh0aGlzKX1nZXRWYWx1ZSgpe3JldHVybiB0aGlzLnZhbHVlfXNldFZhbHVlKEQpe3RoaXMudmFsdWU9RH1hc3luYyB0b2dnbGVQYXNzd29yZFZpZXcoKXt0aGlzLnNob3dQYXNzd29yZEJvb2w9IXRoaXMuc2hvd1Bhc3N3b3JkQm9vbH1hc3luYyBmb2N1cygpe3RoaXMuc2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yKCJpbnB1dCIpLmZvY3VzKCl9YXN5bmMgYmx1cigpe3RoaXMuc2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yKCJpbnB1dCIpLmJsdXIoKX1jb25zdHJ1Y3Rvcigpe3N1cGVyKC4uLmFyZ3VtZW50cyksWm4odGhpcyxNKX1zdGF0aWN7Wm4oaSxyKX19O3JldHVybiBGPWl9KSgpfSk7dmFyIEVzciwkc3I9cCgoKT0+e3hlKCk7cDEoKTtPaSgpO0Vzcj0oKT0+Q2AKICA8ZGVlcy1kZW1vd3JhcHBlcj4KICAgIDxzdHlsZT4KICAgICAgJHtvZWAKICAgICAgICAuZGVtby1jb250YWluZXIgewogICAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgICAgICBnYXA6IDI0cHg7CiAgICAgICAgICBwYWRkaW5nOiAyNHB4OwogICAgICAgICAgbWF4LXdpZHRoOiAxMjAwcHg7CiAgICAgICAgICBtYXJnaW46IDAgYXV0bzsKICAgICAgICB9CiAgICAgICAgCiAgICAgICAgLnByb2R1Y3QtZ3JpZCB7CiAgICAgICAgICBkaXNwbGF5OiBncmlkOwogICAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoYXV0by1maWxsLCBtaW5tYXgoMjgwcHgsIDFmcikpOwogICAgICAgICAgZ2FwOiAyMHB4OwogICAgICAgIH0KCiAgICAgICAgLmNhcnQtc3VtbWFyeSB7CiAgICAgICAgICBtYXJnaW4tdG9wOiAyNHB4OwogICAgICAgICAgcGFkZGluZzogMjBweDsKICAgICAgICAgIGJhY2tncm91bmQ6ICR7bS5iZFRoZW1lKCJoc2woMjEwIDQwJSA5Ni4xJSkiLCJoc2woMjE1IDIwLjIlIDE2LjglKSIpfTsKICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICR7bS5iZFRoZW1lKCJoc2woMjE0LjMgMzEuOCUgOTEuNCUpIiwiaHNsKDIxNSAyMC4yJSAyMS44JSkiKX07CiAgICAgICAgICBib3JkZXItcmFkaXVzOiA4cHg7CiAgICAgICAgfQoKICAgICAgICAuY2FydC1zdW1tYXJ5LXRpdGxlIHsKICAgICAgICAgIGZvbnQtc2l6ZTogMThweDsKICAgICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7CiAgICAgICAgICBtYXJnaW4tYm90dG9tOiAxNnB4OwogICAgICAgICAgY29sb3I6ICR7bS5iZFRoZW1lKCJoc2woMCAwJSA5JSkiLCJoc2woMCAwJSA5NSUpIil9OwogICAgICAgIH0KCiAgICAgICAgLmNhcnQtaXRlbSB7CiAgICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuOwogICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICAgIHBhZGRpbmc6IDhweCAwOwogICAgICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgICAgICAgY29sb3I6ICR7bS5iZFRoZW1lKCJoc2woMjE1LjMgMjUlIDI2LjclKSIsImhzbCgyMTcuOSAxMC42JSA3NC45JSkiKX07CiAgICAgICAgfQoKICAgICAgICAuY2FydC10b3RhbCB7CiAgICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuOwogICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICAgIHBhZGRpbmctdG9wOiAxNnB4OwogICAgICAgICAgbWFyZ2luLXRvcDogMTZweDsKICAgICAgICAgIGJvcmRlci10b3A6IDJweCBzb2xpZCAke20uYmRUaGVtZSgiaHNsKDAgMCUgODkuOCUpIiwiaHNsKDAgMCUgMTQuOSUpIil9OwogICAgICAgICAgZm9udC1zaXplOiAxOHB4OwogICAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDsKICAgICAgICAgIGNvbG9yOiAke20uYmRUaGVtZSgiaHNsKDAgMCUgOSUpIiwiaHNsKDAgMCUgOTUlKSIpfTsKICAgICAgICB9CgogICAgICAgIC5zZWxlY3RlZC1wcm9kdWN0cyB7CiAgICAgICAgICBwYWRkaW5nOiAxNnB4OwogICAgICAgICAgYmFja2dyb3VuZDogJHttLmJkVGhlbWUoImhzbCgyMTAgNDAlIDk2LjElKSIsImhzbCgyMTUgMjAuMiUgMTYuOCUpIil9OwogICAgICAgICAgYm9yZGVyLXJhZGl1czogNnB4OwogICAgICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgICAgICAgY29sb3I6ICR7bS5iZFRoZW1lKCJoc2woMjE1LjMgMjUlIDI2LjclKSIsImhzbCgyMTcuOSAxMC42JSA3NC45JSkiKX07CiAgICAgICAgfQogICAgICBgfQogICAgPC9zdHlsZT4KICAgIAogICAgPGRpdiBjbGFzcz0iZGVtby1jb250YWluZXIiPgogICAgICA8ZGVlcy1wYW5lbCAudGl0bGU9JHsiQmFzaWMgUHJvZHVjdCBDYXJkcyJ9IC5zdWJ0aXRsZT0keyJTaW1wbGUgcHJvZHVjdCBkaXNwbGF5IHdpdGggdmFyaW91cyBjb25maWd1cmF0aW9ucyJ9PgogICAgICAgIDxkaXYgY2xhc3M9InByb2R1Y3QtZ3JpZCI+CiAgICAgICAgICA8ZGVlcy1zaG9wcGluZy1wcm9kdWN0Y2FyZAogICAgICAgICAgICAucHJvZHVjdERhdGE9JHt7bmFtZToiV2lyZWxlc3MgQmx1ZXRvb3RoIEhlYWRwaG9uZXMiLGNhdGVnb3J5OiJBdWRpbyIsZGVzY3JpcHRpb246IlByZW1pdW0gc291bmQgcXVhbGl0eSB3aXRoIGFjdGl2ZSBub2lzZSBjYW5jZWxsYXRpb24iLHByaWNlOjE0OS45OSxvcmlnaW5hbFByaWNlOjE5OS45OSxpY29uTmFtZToibHVjaWRlOmhlYWRwaG9uZXMifX0KICAgICAgICAgICAgLnF1YW50aXR5PSR7MX0KICAgICAgICAgID48L2RlZXMtc2hvcHBpbmctcHJvZHVjdGNhcmQ+CgogICAgICAgICAgPGRlZXMtc2hvcHBpbmctcHJvZHVjdGNhcmQKICAgICAgICAgICAgLnByb2R1Y3REYXRhPSR7e25hbWU6IlNtYXJ0IFdhdGNoIFNlcmllcyA3IixjYXRlZ29yeToiV2VhcmFibGVzIixkZXNjcmlwdGlvbjoiVHJhY2sgeW91ciBmaXRuZXNzIGFuZCBzdGF5IGNvbm5lY3RlZCBvbiB0aGUgZ28iLHByaWNlOjM5OSxpY29uTmFtZToibHVjaWRlOndhdGNoIn19CiAgICAgICAgICAgIC5xdWFudGl0eT0kezF9CiAgICAgICAgICA+PC9kZWVzLXNob3BwaW5nLXByb2R1Y3RjYXJkPgoKICAgICAgICAgIDxkZWVzLXNob3BwaW5nLXByb2R1Y3RjYXJkCiAgICAgICAgICAgIC5wcm9kdWN0RGF0YT0ke3tuYW1lOiJVU0ItQyBIdWIiLGNhdGVnb3J5OiJBY2Nlc3NvcmllcyIscHJpY2U6NDkuOTksaWNvbk5hbWU6Imx1Y2lkZTp1c2IiLGluU3RvY2s6ITF9fQogICAgICAgICAgICAucXVhbnRpdHk9JHswfQogICAgICAgICAgPjwvZGVlcy1zaG9wcGluZy1wcm9kdWN0Y2FyZD4KICAgICAgICA8L2Rpdj4KICAgICAgPC9kZWVzLXBhbmVsPgoKICAgICAgPGRlZXMtcGFuZWwgLnRpdGxlPSR7IkludGVyYWN0aXZlIFNob3BwaW5nIENhcnQifSAuc3VidGl0bGU9JHsiUHJvZHVjdCBjYXJkcyB3aXRoIGR5bmFtaWMgY2FydCBjYWxjdWxhdGlvbiJ9IC5ydW5BZnRlclJlbmRlcj0ke2FzeW5jIGU9PntsZXQgdD1be2lkOiJsYXB0b3AiLGVsZW1lbnQ6bnVsbCxkYXRhOntuYW1lOidNYWNCb29rIFBybyAxNCInLGNhdGVnb3J5OiJDb21wdXRlcnMiLGRlc2NyaXB0aW9uOiJNMyBQcm8gY2hpcCB3aXRoIDE4R0IgUkFNIixwcmljZToxOTk5LG9yaWdpbmFsUHJpY2U6MjE5OSxpY29uTmFtZToibHVjaWRlOmxhcHRvcCJ9fSx7aWQ6ImlwYWQiLGVsZW1lbnQ6bnVsbCxkYXRhOntuYW1lOiJpUGFkIEFpciIsY2F0ZWdvcnk6IlRhYmxldHMiLGRlc2NyaXB0aW9uOicxMC45IiBMaXF1aWQgUmV0aW5hIGRpc3BsYXknLHByaWNlOjU5OSxpY29uTmFtZToibHVjaWRlOnRhYmxldCJ9fSx7aWQ6ImtleWJvYXJkIixlbGVtZW50Om51bGwsZGF0YTp7bmFtZToiTWFnaWMgS2V5Ym9hcmQiLGNhdGVnb3J5OiJBY2Nlc3NvcmllcyIsZGVzY3JpcHRpb246IldpcmVsZXNzIGtleWJvYXJkIHdpdGggVG91Y2ggSUQiLHByaWNlOjE0OSxpY29uTmFtZToibHVjaWRlOmtleWJvYXJkIn19XSxyPSgpPT57bGV0IGk9MCxhPVtdO3QuZm9yRWFjaChvPT57bGV0IHM9ZS5xdWVyeVNlbGVjdG9yKGAjJHtvLmlkfWApO2lmKHMmJnMucXVhbnRpdHk+MCl7bGV0IGw9by5kYXRhLnByaWNlKnMucXVhbnRpdHk7aSs9bCxhLnB1c2goYAogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iY2FydC1pdGVtIj4KICAgICAgICAgICAgICAgICAgPHNwYW4+JHtvLmRhdGEubmFtZX0gKCR7cy5xdWFudGl0eX0pPC9zcGFuPgogICAgICAgICAgICAgICAgICA8c3Bhbj4kJHtsLnRvRml4ZWQoMil9PC9zcGFuPgogICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgYCl9fSk7bGV0IG49ZS5xdWVyeVNlbGVjdG9yKCIjaW50ZXJhY3RpdmUtY2FydC1zdW1tYXJ5Iik7biYmKG4uaW5uZXJIVE1MPWAKICAgICAgICAgICAgICAke2Euam9pbigiIil9CiAgICAgICAgICAgICAgJHthLmxlbmd0aD09PTA/JzxkaXYgY2xhc3M9ImNhcnQtaXRlbSIgc3R5bGU9InRleHQtYWxpZ246IGNlbnRlcjsgY29sb3I6ICM5OTk7Ij5Zb3VyIGNhcnQgaXMgZW1wdHk8L2Rpdj4nOiIifQogICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNhcnQtdG90YWwiPgogICAgICAgICAgICAgICAgPHNwYW4+VG90YWw8L3NwYW4+CiAgICAgICAgICAgICAgICA8c3Bhbj4kJHtpLnRvRml4ZWQoMil9PC9zcGFuPgogICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICBgKX07c2V0VGltZW91dChyLDEwMCksZS5xdWVyeVNlbGVjdG9yQWxsKCJkZWVzLXNob3BwaW5nLXByb2R1Y3RjYXJkIikuZm9yRWFjaChpPT57aS5hZGRFdmVudExpc3RlbmVyKCJxdWFudGl0eUNoYW5nZSIscil9KX19PgogICAgICAgIDxkaXYgY2xhc3M9InByb2R1Y3QtZ3JpZCI+CiAgICAgICAgICA8ZGVlcy1zaG9wcGluZy1wcm9kdWN0Y2FyZAogICAgICAgICAgICBpZD0ibGFwdG9wIgogICAgICAgICAgICAucHJvZHVjdERhdGE9JHt7bmFtZTonTWFjQm9vayBQcm8gMTQiJyxjYXRlZ29yeToiQ29tcHV0ZXJzIixkZXNjcmlwdGlvbjoiTTMgUHJvIGNoaXAgd2l0aCAxOEdCIFJBTSIscHJpY2U6MTk5OSxvcmlnaW5hbFByaWNlOjIxOTksaWNvbk5hbWU6Imx1Y2lkZTpsYXB0b3AifX0KICAgICAgICAgICAgLnF1YW50aXR5PSR7MX0KICAgICAgICAgID48L2RlZXMtc2hvcHBpbmctcHJvZHVjdGNhcmQ+CgogICAgICAgICAgPGRlZXMtc2hvcHBpbmctcHJvZHVjdGNhcmQKICAgICAgICAgICAgaWQ9ImlwYWQiCiAgICAgICAgICAgIC5wcm9kdWN0RGF0YT0ke3tuYW1lOiJpUGFkIEFpciIsY2F0ZWdvcnk6IlRhYmxldHMiLGRlc2NyaXB0aW9uOicxMC45IiBMaXF1aWQgUmV0aW5hIGRpc3BsYXknLHByaWNlOjU5OSxpY29uTmFtZToibHVjaWRlOnRhYmxldCJ9fQogICAgICAgICAgICAucXVhbnRpdHk9JHswfQogICAgICAgICAgPjwvZGVlcy1zaG9wcGluZy1wcm9kdWN0Y2FyZD4KCiAgICAgICAgICA8ZGVlcy1zaG9wcGluZy1wcm9kdWN0Y2FyZAogICAgICAgICAgICBpZD0ia2V5Ym9hcmQiCiAgICAgICAgICAgIC5wcm9kdWN0RGF0YT0ke3tuYW1lOiJNYWdpYyBLZXlib2FyZCIsY2F0ZWdvcnk6IkFjY2Vzc29yaWVzIixkZXNjcmlwdGlvbjoiV2lyZWxlc3Mga2V5Ym9hcmQgd2l0aCBUb3VjaCBJRCIscHJpY2U6MTQ5LGljb25OYW1lOiJsdWNpZGU6a2V5Ym9hcmQifX0KICAgICAgICAgICAgLnF1YW50aXR5PSR7Mn0KICAgICAgICAgID48L2RlZXMtc2hvcHBpbmctcHJvZHVjdGNhcmQ+CiAgICAgICAgPC9kaXY+CgogICAgICAgIDxkaXYgY2xhc3M9ImNhcnQtc3VtbWFyeSI+CiAgICAgICAgICA8aDMgY2xhc3M9ImNhcnQtc3VtbWFyeS10aXRsZSI+U2hvcHBpbmcgQ2FydDwvaDM+CiAgICAgICAgICA8ZGl2IGlkPSJpbnRlcmFjdGl2ZS1jYXJ0LXN1bW1hcnkiPgogICAgICAgICAgICA8IS0tIER5bmFtaWNhbGx5IHVwZGF0ZWQgLS0+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICA8L2Rpdj4KICAgICAgPC9kZWVzLXBhbmVsPgoKICAgICAgPGRlZXMtcGFuZWwgLnRpdGxlPSR7IlNlbGVjdGFibGUgUHJvZHVjdCBDYXJkcyJ9IC5zdWJ0aXRsZT0keyJDbGljayBjYXJkcyBvciBjaGVja2JveGVzIHRvIHNlbGVjdCBwcm9kdWN0cyJ9PgogICAgICAgIDxkaXYgY2xhc3M9InByb2R1Y3QtZ3JpZCI+CiAgICAgICAgICA8ZGVlcy1zaG9wcGluZy1wcm9kdWN0Y2FyZAogICAgICAgICAgICAucHJvZHVjdERhdGE9JHt7bmFtZToiU29ueSBBbHBoYSA3IElWIixjYXRlZ29yeToiQ2FtZXJhcyIsZGVzY3JpcHRpb246IkZ1bGwtZnJhbWUgbWlycm9ybGVzcyBjYW1lcmEiLHByaWNlOjI0OTgsaWNvbk5hbWU6Imx1Y2lkZTpjYW1lcmEifX0KICAgICAgICAgICAgLnNlbGVjdGFibGU9JHshMH0KICAgICAgICAgICAgLnNob3dRdWFudGl0eVNlbGVjdG9yPSR7ITF9CiAgICAgICAgICAgIEBzZWxlY3Rpb25DaGFuZ2U9JHtlPT57bGV0IHQ9ZG9jdW1lbnQucXVlcnlTZWxlY3RvcigiI3NlbGVjdGlvbi1vdXRwdXQiKTtpZih0KXtsZXQgcj1kb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCJkZWVzLXNob3BwaW5nLXByb2R1Y3RjYXJkW3NlbGVjdGFibGVdIiksaT1bXTtyLmZvckVhY2goYT0+e2Euc2VsZWN0ZWQmJmkucHVzaChhLnByb2R1Y3REYXRhLm5hbWUpfSksdC50ZXh0Q29udGVudD1pLmxlbmd0aD4wP2BTZWxlY3RlZDogJHtpLmpvaW4oIiwgIil9YDoiTm8gcHJvZHVjdHMgc2VsZWN0ZWQifX19CiAgICAgICAgICA+PC9kZWVzLXNob3BwaW5nLXByb2R1Y3RjYXJkPgoKICAgICAgICAgIDxkZWVzLXNob3BwaW5nLXByb2R1Y3RjYXJkCiAgICAgICAgICAgIC5wcm9kdWN0RGF0YT0ke3tuYW1lOiJESkkgTWluaSAzIFBybyIsY2F0ZWdvcnk6IkRyb25lcyIsZGVzY3JpcHRpb246IkxpZ2h0d2VpZ2h0IGRyb25lIHdpdGggNEsgY2FtZXJhIixwcmljZTo3NTksaWNvbk5hbWU6Imx1Y2lkZTpwbGFuZSJ9fQogICAgICAgICAgICAuc2VsZWN0YWJsZT0keyEwfQogICAgICAgICAgICAuc2hvd1F1YW50aXR5U2VsZWN0b3I9JHshMX0KICAgICAgICAgICAgQHNlbGVjdGlvbkNoYW5nZT0ke2U9PntsZXQgdD1kb2N1bWVudC5xdWVyeVNlbGVjdG9yKCIjc2VsZWN0aW9uLW91dHB1dCIpO2lmKHQpe2xldCByPWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoImRlZXMtc2hvcHBpbmctcHJvZHVjdGNhcmRbc2VsZWN0YWJsZV0iKSxpPVtdO3IuZm9yRWFjaChhPT57YS5zZWxlY3RlZCYmaS5wdXNoKGEucHJvZHVjdERhdGEubmFtZSl9KSx0LnRleHRDb250ZW50PWkubGVuZ3RoPjA/YFNlbGVjdGVkOiAke2kuam9pbigiLCAiKX1gOiJObyBwcm9kdWN0cyBzZWxlY3RlZCJ9fX0KICAgICAgICAgID48L2RlZXMtc2hvcHBpbmctcHJvZHVjdGNhcmQ+CgogICAgICAgICAgPGRlZXMtc2hvcHBpbmctcHJvZHVjdGNhcmQKICAgICAgICAgICAgLnByb2R1Y3REYXRhPSR7e25hbWU6IkdvUHJvIEhFUk8xMiIsY2F0ZWdvcnk6IkFjdGlvbiBDYW1lcmFzIixkZXNjcmlwdGlvbjoiNS4zSyB2aWRlbyB3aXRoIEh5cGVyU21vb3RoIDYuMCIscHJpY2U6Mzk5LG9yaWdpbmFsUHJpY2U6NDQ5LGljb25OYW1lOiJsdWNpZGU6dmlkZW8ifX0KICAgICAgICAgICAgLnNlbGVjdGFibGU9JHshMH0KICAgICAgICAgICAgLnNob3dRdWFudGl0eVNlbGVjdG9yPSR7ITF9CiAgICAgICAgICAgIEBzZWxlY3Rpb25DaGFuZ2U9JHtlPT57bGV0IHQ9ZG9jdW1lbnQucXVlcnlTZWxlY3RvcigiI3NlbGVjdGlvbi1vdXRwdXQiKTtpZih0KXtsZXQgcj1kb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCJkZWVzLXNob3BwaW5nLXByb2R1Y3RjYXJkW3NlbGVjdGFibGVdIiksaT1bXTtyLmZvckVhY2goYT0+e2Euc2VsZWN0ZWQmJmkucHVzaChhLnByb2R1Y3REYXRhLm5hbWUpfSksdC50ZXh0Q29udGVudD1pLmxlbmd0aD4wP2BTZWxlY3RlZDogJHtpLmpvaW4oIiwgIil9YDoiTm8gcHJvZHVjdHMgc2VsZWN0ZWQifX19CiAgICAgICAgICA+PC9kZWVzLXNob3BwaW5nLXByb2R1Y3RjYXJkPgogICAgICAgIDwvZGl2PgogICAgICAgIAogICAgICAgIDxkaXYgY2xhc3M9InNlbGVjdGVkLXByb2R1Y3RzIiBpZD0ic2VsZWN0aW9uLW91dHB1dCIgc3R5bGU9Im1hcmdpbi10b3A6IDE2cHg7Ij4KICAgICAgICAgIE5vIHByb2R1Y3RzIHNlbGVjdGVkCiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGVlcy1wYW5lbD4KCiAgICAgIDxkZWVzLXBhbmVsIC50aXRsZT0keyJQcm9kdWN0IFZhcmlhdGlvbnMifSAuc3VidGl0bGU9JHsiRGlmZmVyZW50IHN0YXRlcyBhbmQgY29uZmlndXJhdGlvbnMifT4KICAgICAgICA8ZGl2IGNsYXNzPSJwcm9kdWN0LWdyaWQiPgogICAgICAgICAgPGRlZXMtc2hvcHBpbmctcHJvZHVjdGNhcmQKICAgICAgICAgICAgLnByb2R1Y3REYXRhPSR7e25hbWU6IkxpbWl0ZWQgRWRpdGlvbiBTbmVha2VycyIsY2F0ZWdvcnk6IkZvb3R3ZWFyIixkZXNjcmlwdGlvbjoiRXhjbHVzaXZlIGNvbG9yd2F5IC0gT25seSA1MDAgcGFpcnMiLHByaWNlOjI5OSxpY29uTmFtZToibHVjaWRlOmZvb3RwcmludHMiLGluU3RvY2s6ITEsc3RvY2tUZXh0OiJTb2xkIE91dCJ9fQogICAgICAgICAgICAucXVhbnRpdHk9JHswfQogICAgICAgICAgPjwvZGVlcy1zaG9wcGluZy1wcm9kdWN0Y2FyZD4KCiAgICAgICAgICA8ZGVlcy1zaG9wcGluZy1wcm9kdWN0Y2FyZAogICAgICAgICAgICAucHJvZHVjdERhdGE9JHt7bmFtZToiTWluaW1hbGlzdCBXYWxsZXQiLHByaWNlOjM5Ljk5LGljb25OYW1lOiJsdWNpZGU6d2FsbGV0In19CiAgICAgICAgICAgIC5xdWFudGl0eT0kezF9CiAgICAgICAgICA+PC9kZWVzLXNob3BwaW5nLXByb2R1Y3RjYXJkPgoKICAgICAgICAgIDxkZWVzLXNob3BwaW5nLXByb2R1Y3RjYXJkCiAgICAgICAgICAgIC5wcm9kdWN0RGF0YT0ke3tuYW1lOiJQcmVtaXVtIENvZmZlZSBCZWFucyIsY2F0ZWdvcnk6IkZvb2QgJiBCZXZlcmFnZSIsZGVzY3JpcHRpb246IlNpbmdsZSBvcmlnaW4sIG1lZGl1bSByb2FzdCIscHJpY2U6MTguNSxpY29uTmFtZToibHVjaWRlOmNvZmZlZSIsY3VycmVuY3k6Ilx1MjBBQyJ9fQogICAgICAgICAgICAucXVhbnRpdHk9JHsyfQogICAgICAgICAgPjwvZGVlcy1zaG9wcGluZy1wcm9kdWN0Y2FyZD4KICAgICAgICA8L2Rpdj4KICAgICAgPC9kZWVzLXBhbmVsPgogICAgPC9kaXY+CiAgPC9kZWVzLWRlbW93cmFwcGVyPgpgfSk7dmFyIHJoLF8yLElzcixmNmU9cCgoKT0+e3hlKCk7JHNyKCk7SmUoKTtyaD1mdW5jdGlvbihlLHQscixpLGEsbil7ZnVuY3Rpb24gbyh5KXtpZih5IT09dm9pZCAwJiZ0eXBlb2YgeSE9ImZ1bmN0aW9uIil0aHJvdyBuZXcgVHlwZUVycm9yKCJGdW5jdGlvbiBleHBlY3RlZCIpO3JldHVybiB5fWZvcih2YXIgcz1pLmtpbmQsbD1zPT09ImdldHRlciI/ImdldCI6cz09PSJzZXR0ZXIiPyJzZXQiOiJ2YWx1ZSIsYz0hdCYmZT9pLnN0YXRpYz9lOmUucHJvdG90eXBlOm51bGwsdT10fHwoYz9PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGMsaS5uYW1lKTp7fSksZCxoPSExLGY9ci5sZW5ndGgtMTtmPj0wO2YtLSl7dmFyIHg9e307Zm9yKHZhciB2IGluIGkpeFt2XT12PT09ImFjY2VzcyI/e306aVt2XTtmb3IodmFyIHYgaW4gaS5hY2Nlc3MpeC5hY2Nlc3Nbdl09aS5hY2Nlc3Nbdl07eC5hZGRJbml0aWFsaXplcj1mdW5jdGlvbih5KXtpZihoKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBhZGQgaW5pdGlhbGl6ZXJzIGFmdGVyIGRlY29yYXRpb24gaGFzIGNvbXBsZXRlZCIpO24ucHVzaChvKHl8fG51bGwpKX07dmFyIGI9KDAscltmXSkocz09PSJhY2Nlc3NvciI/e2dldDp1LmdldCxzZXQ6dS5zZXR9OnVbbF0seCk7aWYocz09PSJhY2Nlc3NvciIpe2lmKGI9PT12b2lkIDApY29udGludWU7aWYoYj09PW51bGx8fHR5cGVvZiBiIT0ib2JqZWN0Iil0aHJvdyBuZXcgVHlwZUVycm9yKCJPYmplY3QgZXhwZWN0ZWQiKTsoZD1vKGIuZ2V0KSkmJih1LmdldD1kKSwoZD1vKGIuc2V0KSkmJih1LnNldD1kKSwoZD1vKGIuaW5pdCkpJiZhLnVuc2hpZnQoZCl9ZWxzZShkPW8oYikpJiYocz09PSJmaWVsZCI/YS51bnNoaWZ0KGQpOnVbbF09ZCl9YyYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGMsaS5uYW1lLHUpLGg9ITB9LF8yPWZ1bmN0aW9uKGUsdCxyKXtmb3IodmFyIGk9YXJndW1lbnRzLmxlbmd0aD4yLGE9MDthPHQubGVuZ3RoO2ErKylyPWk/dFthXS5jYWxsKGUscik6dFthXS5jYWxsKGUpO3JldHVybiBpP3I6dm9pZCAwfSxJc3I9KCgpPT57bGV0IGU9W3llKCJkZWVzLXNob3BwaW5nLXByb2R1Y3RjYXJkIildLHQscj1bXSxpLGE9emUsbixvPVtdLHM9W10sbCxjPVtdLHU9W10sZCxoPVtdLGY9W10seCx2PVtdLGI9W10seSx3PVtdLGs9W107dmFyIE89Y2xhc3MgZXh0ZW5kcyBhe3N0YXRpY3tpPXRoaXN9c3RhdGlje2xldCB6PXR5cGVvZiBTeW1ib2w9PSJmdW5jdGlvbiImJlN5bWJvbC5tZXRhZGF0YT9PYmplY3QuY3JlYXRlKGFbU3ltYm9sLm1ldGFkYXRhXT8/bnVsbCk6dm9pZCAwO249W2ooe3R5cGU6T2JqZWN0fSldLGw9W2ooe3R5cGU6TnVtYmVyfSldLGQ9W2ooe3R5cGU6Qm9vbGVhbn0pXSx4PVtqKHt0eXBlOkJvb2xlYW59KV0seT1baih7dHlwZTpCb29sZWFufSldLHJoKHRoaXMsbnVsbCxuLHtraW5kOiJhY2Nlc3NvciIsbmFtZToicHJvZHVjdERhdGEiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOk09PiJwcm9kdWN0RGF0YSJpbiBNLGdldDpNPT5NLnByb2R1Y3REYXRhLHNldDooTSxGKT0+e00ucHJvZHVjdERhdGE9Rn19LG1ldGFkYXRhOnp9LG8scykscmgodGhpcyxudWxsLGwse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJxdWFudGl0eSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6TT0+InF1YW50aXR5ImluIE0sZ2V0Ok09Pk0ucXVhbnRpdHksc2V0OihNLEYpPT57TS5xdWFudGl0eT1GfX0sbWV0YWRhdGE6en0sYyx1KSxyaCh0aGlzLG51bGwsZCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InNob3dRdWFudGl0eVNlbGVjdG9yIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpNPT4ic2hvd1F1YW50aXR5U2VsZWN0b3IiaW4gTSxnZXQ6TT0+TS5zaG93UXVhbnRpdHlTZWxlY3RvcixzZXQ6KE0sRik9PntNLnNob3dRdWFudGl0eVNlbGVjdG9yPUZ9fSxtZXRhZGF0YTp6fSxoLGYpLHJoKHRoaXMsbnVsbCx4LHtraW5kOiJhY2Nlc3NvciIsbmFtZToic2VsZWN0YWJsZSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6TT0+InNlbGVjdGFibGUiaW4gTSxnZXQ6TT0+TS5zZWxlY3RhYmxlLHNldDooTSxGKT0+e00uc2VsZWN0YWJsZT1GfX0sbWV0YWRhdGE6en0sdixiKSxyaCh0aGlzLG51bGwseSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InNlbGVjdGVkIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpNPT4ic2VsZWN0ZWQiaW4gTSxnZXQ6TT0+TS5zZWxlY3RlZCxzZXQ6KE0sRik9PntNLnNlbGVjdGVkPUZ9fSxtZXRhZGF0YTp6fSx3LGspLHJoKG51bGwsdD17dmFsdWU6aX0sZSx7a2luZDoiY2xhc3MiLG5hbWU6aS5uYW1lLG1ldGFkYXRhOnp9LG51bGwsciksTz1pPXQudmFsdWUseiYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGksU3ltYm9sLm1ldGFkYXRhLHtlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMCx2YWx1ZTp6fSl9c3RhdGljIGRlbW89RXNyO3N0YXRpYyBkZW1vR3JvdXBzPVsiU2ltcGxlIl07I2U9XzIodGhpcyxvLHtuYW1lOiJQcm9kdWN0IE5hbWUiLHByaWNlOjB9KTtnZXQgcHJvZHVjdERhdGEoKXtyZXR1cm4gdGhpcy4jZX1zZXQgcHJvZHVjdERhdGEoeil7dGhpcy4jZT16fSN0PShfMih0aGlzLHMpLF8yKHRoaXMsYywwKSk7Z2V0IHF1YW50aXR5KCl7cmV0dXJuIHRoaXMuI3R9c2V0IHF1YW50aXR5KHope3RoaXMuI3Q9en0jcj0oXzIodGhpcyx1KSxfMih0aGlzLGgsITApKTtnZXQgc2hvd1F1YW50aXR5U2VsZWN0b3IoKXtyZXR1cm4gdGhpcy4jcn1zZXQgc2hvd1F1YW50aXR5U2VsZWN0b3Ioeil7dGhpcy4jcj16fSNpPShfMih0aGlzLGYpLF8yKHRoaXMsdiwhMSkpO2dldCBzZWxlY3RhYmxlKCl7cmV0dXJuIHRoaXMuI2l9c2V0IHNlbGVjdGFibGUoeil7dGhpcy4jaT16fSNhPShfMih0aGlzLGIpLF8yKHRoaXMsdywhMSkpO2dldCBzZWxlY3RlZCgpe3JldHVybiB0aGlzLiNhfXNldCBzZWxlY3RlZCh6KXt0aGlzLiNhPXp9c3RhdGljIHN0eWxlcz1bRGUsbS5kZWZhdWx0U3R5bGVzLG9lYAogICAgICAvKiBUT0RPOiBNaWdyYXRlIGhhcmRjb2RlZCB2YWx1ZXMgdG8gLS1kZWVzLSogQ1NTIHZhcmlhYmxlcyAqLwogICAgICA6aG9zdCB7CiAgICAgICAgZGlzcGxheTogYmxvY2s7CiAgICAgIH0KCiAgICAgIC5wcm9kdWN0LWNhcmQgewogICAgICAgIGJhY2tncm91bmQ6ICR7bS5iZFRoZW1lKCJoc2woMCAwJSAxMDAlKSIsImhzbCgyMTUgMjAuMiUgMTEuOCUpIil9OwogICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICR7bS5iZFRoZW1lKCJoc2woMCAwJSA4OS44JSkiLCJoc2woMCAwJSAxNC45JSkiKX07CiAgICAgICAgYm9yZGVyLXJhZGl1czogOHB4OwogICAgICAgIG92ZXJmbG93OiBoaWRkZW47CiAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuMnMgZWFzZTsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgICAgaGVpZ2h0OiAxMDAlOwogICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgfQoKICAgICAgLnByb2R1Y3QtY2FyZDpob3ZlciB7CiAgICAgICAgYm9yZGVyLWNvbG9yOiAke20uYmRUaGVtZSgiaHNsKDAgMCUgNzkuOCUpIiwiaHNsKDAgMCUgMjAuOSUpIil9OwogICAgICAgIGJveC1zaGFkb3c6IDAgNHB4IDZweCAtMXB4IGhzbCgwIDAlIDAlIC8gMC4xKSwgMCAycHggNHB4IC0ycHggaHNsKDAgMCUgMCUgLyAwLjEpOwogICAgICB9CgogICAgICAucHJvZHVjdC1jYXJkLnNlbGVjdGFibGUgewogICAgICAgIGN1cnNvcjogcG9pbnRlcjsKICAgICAgfQoKICAgICAgLnByb2R1Y3QtY2FyZC5zZWxlY3RlZCB7CiAgICAgICAgYm9yZGVyLWNvbG9yOiAke20uYmRUaGVtZSgiaHNsKDIxNy4yIDkxLjIlIDU5LjglKSIsImhzbCgyMTMuMSA5My45JSA2Ny44JSkiKX07CiAgICAgICAgYm94LXNoYWRvdzogMCAwIDAgM3B4ICR7bS5iZFRoZW1lKCJoc2woMjE3LjIgOTEuMiUgNTkuOCUgLyAwLjEpIiwiaHNsKDIxMy4xIDkzLjklIDY3LjglIC8gMC4xKSIpfTsKICAgICAgfQoKICAgICAgLnByb2R1Y3QtaW1hZ2UgewogICAgICAgIHdpZHRoOiAxMDAlOwogICAgICAgIGhlaWdodDogMTgwcHg7CiAgICAgICAgYmFja2dyb3VuZDogJHttLmJkVGhlbWUoImhzbCgyMTAgNDAlIDk2LjElKSIsImhzbCgyMTUgMjAuMiUgMTYuOCUpIil9OwogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgICAgfQoKICAgICAgLnByb2R1Y3QtaW1hZ2UgaW1nIHsKICAgICAgICB3aWR0aDogMTAwJTsKICAgICAgICBoZWlnaHQ6IDEwMCU7CiAgICAgICAgb2JqZWN0LWZpdDogY292ZXI7CiAgICAgIH0KCiAgICAgIC5wcm9kdWN0LWltYWdlIGRlZXMtaWNvbiB7CiAgICAgICAgZm9udC1zaXplOiA0OHB4OwogICAgICAgIGNvbG9yOiAke20uYmRUaGVtZSgiaHNsKDIxNSAyMC4yJSA2NS4xJSkiLCJoc2woMjE1IDIwLjIlIDM1LjElKSIpfTsKICAgICAgfQoKICAgICAgLnNlbGVjdGlvbi1jaGVja2JveCB7CiAgICAgICAgcG9zaXRpb246IGFic29sdXRlOwogICAgICAgIHRvcDogMTJweDsKICAgICAgICByaWdodDogMTJweDsKICAgICAgICB3aWR0aDogMjBweDsKICAgICAgICBoZWlnaHQ6IDIwcHg7CiAgICAgICAgYmFja2dyb3VuZDogJHttLmJkVGhlbWUoImhzbCgwIDAlIDEwMCUpIiwiaHNsKDIxNSAzMCUgNi44JSkiKX07CiAgICAgICAgYm9yZGVyOiAycHggc29saWQgJHttLmJkVGhlbWUoImhzbCgyMTUgMjAuMiUgNjUuMSUpIiwiaHNsKDIxNSAyMC4yJSAzNS4xJSkiKX07CiAgICAgICAgYm9yZGVyLXJhZGl1czogNHB4OwogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC4ycyBlYXNlOwogICAgICAgIGN1cnNvcjogcG9pbnRlcjsKICAgICAgfQoKICAgICAgLnNlbGVjdGlvbi1jaGVja2JveC5jaGVja2VkIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke20uYmRUaGVtZSgiaHNsKDIxNy4yIDkxLjIlIDU5LjglKSIsImhzbCgyMTMuMSA5My45JSA2Ny44JSkiKX07CiAgICAgICAgYm9yZGVyLWNvbG9yOiAke20uYmRUaGVtZSgiaHNsKDIxNy4yIDkxLjIlIDU5LjglKSIsImhzbCgyMTMuMSA5My45JSA2Ny44JSkiKX07CiAgICAgIH0KCiAgICAgIC5zZWxlY3Rpb24tY2hlY2tib3ggZGVlcy1pY29uIHsKICAgICAgICBjb2xvcjogd2hpdGU7CiAgICAgICAgZm9udC1zaXplOiAxMnB4OwogICAgICAgIG9wYWNpdHk6IDA7CiAgICAgICAgdHJhbnNmb3JtOiBzY2FsZSgwKTsKICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC4ycyBlYXNlOwogICAgICB9CgogICAgICAuc2VsZWN0aW9uLWNoZWNrYm94LmNoZWNrZWQgZGVlcy1pY29uIHsKICAgICAgICBvcGFjaXR5OiAxOwogICAgICAgIHRyYW5zZm9ybTogc2NhbGUoMSk7CiAgICAgIH0KCiAgICAgIC5wcm9kdWN0LWNvbnRlbnQgewogICAgICAgIHBhZGRpbmc6IDE2cHg7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICAgIGdhcDogMTJweDsKICAgICAgICBmbGV4OiAxOwogICAgICB9CiAgICAgIAogICAgICAucHJvZHVjdC1oZWFkZXIgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgICBnYXA6IDRweDsKICAgICAgfQoKICAgICAgLnByb2R1Y3QtY2F0ZWdvcnkgewogICAgICAgIGZvbnQtc2l6ZTogMTJweDsKICAgICAgICBmb250LXdlaWdodDogNTAwOwogICAgICAgIGNvbG9yOiAke20uYmRUaGVtZSgiaHNsKDIxNS40IDE2LjMlIDU2LjklKSIsImhzbCgyMTUgMjAuMiUgNTUuMSUpIil9OwogICAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7CiAgICAgICAgbGV0dGVyLXNwYWNpbmc6IDAuMDVlbTsKICAgICAgICBsaW5lLWhlaWdodDogMS4zOwogICAgICB9CiAgICAgIAogICAgICAucHJvZHVjdC1uYW1lIHsKICAgICAgICBmb250LXNpemU6IDE2cHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDsKICAgICAgICBjb2xvcjogJHttLmJkVGhlbWUoImhzbCgwIDAlIDklKSIsImhzbCgwIDAlIDk1JSkiKX07CiAgICAgICAgbGluZS1oZWlnaHQ6IDEuNDsKICAgICAgfQoKICAgICAgLnByb2R1Y3QtZGVzY3JpcHRpb24gewogICAgICAgIGZvbnQtc2l6ZTogMTNweDsKICAgICAgICBjb2xvcjogJHttLmJkVGhlbWUoImhzbCgyMTUuNCAxNi4zJSA0Ni45JSkiLCJoc2woMjE1IDIwLjIlIDY1LjElKSIpfTsKICAgICAgICBsaW5lLWhlaWdodDogMS41OwogICAgICAgIGZsZXg6IDE7CiAgICAgIH0KICAgICAgCiAgICAgIC5wcm9kdWN0LWZvb3RlciB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjsKICAgICAgICBnYXA6IDE2cHg7CiAgICAgICAgcGFkZGluZy10b3A6IDEycHg7CiAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICR7bS5iZFRoZW1lKCJoc2woMCAwJSA4OS44JSkiLCJoc2woMCAwJSAxNC45JSkiKX07CiAgICAgIH0KCiAgICAgIC5wcm9kdWN0LXByaWNlIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgICAgZ2FwOiAycHg7CiAgICAgIH0KCiAgICAgIC5wcmljZS1jdXJyZW50IHsKICAgICAgICBmb250LXNpemU6IDIwcHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDsKICAgICAgICBjb2xvcjogJHttLmJkVGhlbWUoImhzbCgwIDAlIDklKSIsImhzbCgwIDAlIDk1JSkiKX07CiAgICAgIH0KCiAgICAgIC5wcmljZS1vcmlnaW5hbCB7CiAgICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgICAgIGNvbG9yOiAke20uYmRUaGVtZSgiaHNsKDIxNS40IDE2LjMlIDU2LjklKSIsImhzbCgyMTUgMjAuMiUgNTUuMSUpIil9OwogICAgICAgIHRleHQtZGVjb3JhdGlvbjogbGluZS10aHJvdWdoOwogICAgICB9CgogICAgICAuc3RvY2stc3RhdHVzIHsKICAgICAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGdhcDogNHB4OwogICAgICAgIGZvbnQtc2l6ZTogMTJweDsKICAgICAgICBtYXJnaW4tdG9wOiA4cHg7CiAgICAgIH0KCiAgICAgIC5zdG9jay1zdGF0dXMuaW4tc3RvY2sgewogICAgICAgIGNvbG9yOiAke20uYmRUaGVtZSgiaHNsKDE0Mi4xIDcwLjYlIDQ1LjMlKSIsImhzbCgxNDIuMSA3Ni4yJSAzNi4zJSkiKX07CiAgICAgIH0KCiAgICAgIC5zdG9jay1zdGF0dXMub3V0LW9mLXN0b2NrIHsKICAgICAgICBjb2xvcjogJHttLmJkVGhlbWUoImhzbCgwIDcyLjIlIDUwLjYlKSIsImhzbCgwIDYyLjglIDMwLjYlKSIpfTsKICAgICAgfQoKICAgICAgLnN0b2NrLXN0YXR1cyBkZWVzLWljb24gewogICAgICAgIGZvbnQtc2l6ZTogMTRweDsKICAgICAgfQogICAgYF07cmVuZGVyKCl7bGV0e25hbWU6eixjYXRlZ29yeTpNLGRlc2NyaXB0aW9uOkYscHJpY2U6RCxvcmlnaW5hbFByaWNlOk4sY3VycmVuY3k6Uj0iJCIsaW5TdG9jazpfPSEwLHN0b2NrVGV4dDpTPV8/IkluIFN0b2NrIjoiT3V0IG9mIFN0b2NrIixpbWFnZVVybDokLGljb25OYW1lOlQ9Imx1Y2lkZTpwYWNrYWdlIn09dGhpcy5wcm9kdWN0RGF0YSxFPXE9PmAke1J9JHtxLnRvRml4ZWQoMil9YDtyZXR1cm4gQ2AKICAgICAgPGRpdiAKICAgICAgICBjbGFzcz0icHJvZHVjdC1jYXJkICR7dGhpcy5zZWxlY3RhYmxlPyJzZWxlY3RhYmxlIjoiIn0gJHt0aGlzLnNlbGVjdGVkPyJzZWxlY3RlZCI6IiJ9IgogICAgICAgIEBjbGljaz0ke3RoaXMuaGFuZGxlQ2FyZENsaWNrfQogICAgICA+CiAgICAgICAgPGRpdiBjbGFzcz0icHJvZHVjdC1pbWFnZSI+CiAgICAgICAgICAkeyQ/Q2AKICAgICAgICAgICAgPGltZyBzcmM9IiR7JH0iIGFsdD0iJHt6fSI+CiAgICAgICAgICBgOkNgCiAgICAgICAgICAgIDxkZWVzLWljb24gLmljb249JHtUfT48L2RlZXMtaWNvbj4KICAgICAgICAgIGB9CiAgICAgICAgICAke3RoaXMuc2VsZWN0YWJsZT9DYAogICAgICAgICAgICA8ZGl2IAogICAgICAgICAgICAgIGNsYXNzPSJzZWxlY3Rpb24tY2hlY2tib3ggJHt0aGlzLnNlbGVjdGVkPyJjaGVja2VkIjoiIn0iCiAgICAgICAgICAgICAgQGNsaWNrPSR7cT0+e3Euc3RvcFByb3BhZ2F0aW9uKCksdGhpcy5oYW5kbGVTZWxlY3Rpb25Ub2dnbGUoKX19CiAgICAgICAgICAgID4KICAgICAgICAgICAgICA8ZGVlcy1pY29uIC5pY29uPSR7Imx1Y2lkZTpjaGVjayJ9PjwvZGVlcy1pY29uPgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIGA6IiJ9CiAgICAgICAgPC9kaXY+CiAgICAgICAgPGRpdiBjbGFzcz0icHJvZHVjdC1jb250ZW50Ij4KICAgICAgICAgIDxkaXYgY2xhc3M9InByb2R1Y3QtaGVhZGVyIj4KICAgICAgICAgICAgJHtNP0NgPGRpdiBjbGFzcz0icHJvZHVjdC1jYXRlZ29yeSI+JHtNfTwvZGl2PmA6IiJ9CiAgICAgICAgICAgIDxkaXYgY2xhc3M9InByb2R1Y3QtbmFtZSI+JHt6fTwvZGl2PgogICAgICAgICAgPC9kaXY+CiAgICAgICAgICAke0Y/Q2AKICAgICAgICAgICAgPGRpdiBjbGFzcz0icHJvZHVjdC1kZXNjcmlwdGlvbiI+JHtGfTwvZGl2PgogICAgICAgICAgYDoiIn0KICAgICAgICAgIDxkaXYgY2xhc3M9InN0b2NrLXN0YXR1cyAke18/ImluLXN0b2NrIjoib3V0LW9mLXN0b2NrIn0iPgogICAgICAgICAgICA8ZGVlcy1pY29uIC5pY29uPSR7Xz8ibHVjaWRlOmNoZWNrLWNpcmNsZSI6Imx1Y2lkZTp4LWNpcmNsZSJ9PjwvZGVlcy1pY29uPgogICAgICAgICAgICAke1N9CiAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIDxkaXYgY2xhc3M9InByb2R1Y3QtZm9vdGVyIj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0icHJvZHVjdC1wcmljZSI+CiAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9InByaWNlLWN1cnJlbnQiPiR7RShEKX08L3NwYW4+CiAgICAgICAgICAgICAgJHtOJiZOPkQ/Q2AKICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJwcmljZS1vcmlnaW5hbCI+JHtFKE4pfTwvc3Bhbj4KICAgICAgICAgICAgICBgOiIifQogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgJHt0aGlzLnNob3dRdWFudGl0eVNlbGVjdG9yP0NgCiAgICAgICAgICAgICAgPGRlZXMtaW5wdXQtcXVhbnRpdHlzZWxlY3RvcgogICAgICAgICAgICAgICAgLnZhbHVlPSR7dGhpcy5xdWFudGl0eX0KICAgICAgICAgICAgICAgIEBjaGFuZ2VTdWJqZWN0PSR7cT0+e3RoaXMucXVhbnRpdHk9cS5kZXRhaWwuZ2V0VmFsdWUoKSx0aGlzLmRpc3BhdGNoRXZlbnQobmV3IEN1c3RvbUV2ZW50KCJxdWFudGl0eUNoYW5nZSIse2RldGFpbDp7cXVhbnRpdHk6dGhpcy5xdWFudGl0eSxwcm9kdWN0RGF0YTp0aGlzLnByb2R1Y3REYXRhfSxidWJibGVzOiEwLGNvbXBvc2VkOiEwfSkpfX0KICAgICAgICAgICAgICA+PC9kZWVzLWlucHV0LXF1YW50aXR5c2VsZWN0b3I+CiAgICAgICAgICAgIGA6IiJ9CiAgICAgICAgICA8L2Rpdj4KICAgICAgICA8L2Rpdj4KICAgICAgPC9kaXY+CiAgICBgfWhhbmRsZUNhcmRDbGljaygpe3RoaXMuc2VsZWN0YWJsZSYmKHRoaXMuc2VsZWN0ZWQ9IXRoaXMuc2VsZWN0ZWQsdGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBDdXN0b21FdmVudCgic2VsZWN0aW9uQ2hhbmdlIix7ZGV0YWlsOntzZWxlY3RlZDp0aGlzLnNlbGVjdGVkLHByb2R1Y3REYXRhOnRoaXMucHJvZHVjdERhdGF9LGJ1YmJsZXM6ITAsY29tcG9zZWQ6ITB9KSkpfWhhbmRsZVNlbGVjdGlvblRvZ2dsZSgpe3RoaXMuc2VsZWN0ZWQ9IXRoaXMuc2VsZWN0ZWQsdGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBDdXN0b21FdmVudCgic2VsZWN0aW9uQ2hhbmdlIix7ZGV0YWlsOntzZWxlY3RlZDp0aGlzLnNlbGVjdGVkLHByb2R1Y3REYXRhOnRoaXMucHJvZHVjdERhdGF9LGJ1YmJsZXM6ITAsY29tcG9zZWQ6ITB9KSl9Y29uc3RydWN0b3IoKXtzdXBlciguLi5hcmd1bWVudHMpLF8yKHRoaXMsayl9c3RhdGlje18yKGkscil9fTtyZXR1cm4gTz1pfSkoKX0pO3ZhciBQc3IsTnNyPXAoKCk9Pnt4ZSgpO2Y2ZSgpO1Bzcj0oKT0+Q2AKICA8ZGVlcy1kZW1vd3JhcHBlcj4KICAgIDxzdHlsZT4KICAgICAgJHtvZWAKICAgICAgICAuZGVtby1jb250YWluZXIgewogICAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgICAgICBnYXA6IDI0cHg7CiAgICAgICAgICBwYWRkaW5nOiAyNHB4OwogICAgICAgICAgbWF4LXdpZHRoOiAxMjAwcHg7CiAgICAgICAgICBtYXJnaW46IDAgYXV0bzsKICAgICAgICB9CiAgICAgICAgCiAgICAgICAgLmlucHV0LWdyb3VwIHsKICAgICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICAgICAgZ2FwOiAxNnB4OwogICAgICAgIH0KCiAgICAgICAgLnNob3BwaW5nLWdyaWQgewogICAgICAgICAgZGlzcGxheTogZ3JpZDsKICAgICAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KGF1dG8tZmlsbCwgbWlubWF4KDI4MHB4LCAxZnIpKTsKICAgICAgICAgIGdhcDogMjBweDsKICAgICAgICB9CgogICAgICAgIC5jYXJ0LXN1bW1hcnkgewogICAgICAgICAgbWFyZ2luLXRvcDogMjRweDsKICAgICAgICAgIHBhZGRpbmc6IDIwcHg7CiAgICAgICAgICBiYWNrZ3JvdW5kOiAke20uYmRUaGVtZSgiaHNsKDIxMCA0MCUgOTYuMSUpIiwiaHNsKDIxNSAyMC4yJSAxNi44JSkiKX07CiAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAke20uYmRUaGVtZSgiaHNsKDIxNC4zIDMxLjglIDkxLjQlKSIsImhzbCgyMTUgMjAuMiUgMjEuOCUpIil9OwogICAgICAgICAgYm9yZGVyLXJhZGl1czogOHB4OwogICAgICAgIH0KCiAgICAgICAgLmNhcnQtc3VtbWFyeS10aXRsZSB7CiAgICAgICAgICBmb250LXNpemU6IDE4cHg7CiAgICAgICAgICBmb250LXdlaWdodDogNjAwOwogICAgICAgICAgbWFyZ2luLWJvdHRvbTogMTZweDsKICAgICAgICAgIGNvbG9yOiAke20uYmRUaGVtZSgiaHNsKDAgMCUgOSUpIiwiaHNsKDAgMCUgOTUlKSIpfTsKICAgICAgICB9CgogICAgICAgIC5jYXJ0LWl0ZW0gewogICAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjsKICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgICBwYWRkaW5nOiA4cHggMDsKICAgICAgICAgIGZvbnQtc2l6ZTogMTRweDsKICAgICAgICAgIGNvbG9yOiAke20uYmRUaGVtZSgiaHNsKDIxNS4zIDI1JSAyNi43JSkiLCJoc2woMjE3LjkgMTAuNiUgNzQuOSUpIil9OwogICAgICAgIH0KCiAgICAgICAgLmNhcnQtdG90YWwgewogICAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjsKICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgICBwYWRkaW5nLXRvcDogMTZweDsKICAgICAgICAgIG1hcmdpbi10b3A6IDE2cHg7CiAgICAgICAgICBib3JkZXItdG9wOiAycHggc29saWQgJHttLmJkVGhlbWUoImhzbCgwIDAlIDg5LjglKSIsImhzbCgwIDAlIDE0LjklKSIpfTsKICAgICAgICAgIGZvbnQtc2l6ZTogMThweDsKICAgICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7CiAgICAgICAgICBjb2xvcjogJHttLmJkVGhlbWUoImhzbCgwIDAlIDklKSIsImhzbCgwIDAlIDk1JSkiKX07CiAgICAgICAgfQogICAgICBgfQogICAgPC9zdHlsZT4KICAgIAogICAgPGRpdiBjbGFzcz0iZGVtby1jb250YWluZXIiPgogICAgICA8ZGVlcy1wYW5lbCAudGl0bGU9JHsiQmFzaWMgUXVhbnRpdHkgU2VsZWN0b3IifSAuc3VidGl0bGU9JHsiU2ltcGxlIHF1YW50aXR5IGlucHV0IHdpdGggaW5jcmVtZW50L2RlY3JlbWVudCBidXR0b25zIn0+CiAgICAgICAgPGRpdiBjbGFzcz0iaW5wdXQtZ3JvdXAiPgogICAgICAgICAgPGRlZXMtaW5wdXQtcXVhbnRpdHlzZWxlY3RvcgogICAgICAgICAgICAubGFiZWw9JHsiUXVhbnRpdHkifQogICAgICAgICAgICAuZGVzY3JpcHRpb249JHsiU2VsZWN0IHRoZSBkZXNpcmVkIHF1YW50aXR5In0KICAgICAgICAgICAgLnZhbHVlPSR7MX0KICAgICAgICAgID48L2RlZXMtaW5wdXQtcXVhbnRpdHlzZWxlY3Rvcj4KCiAgICAgICAgICA8ZGVlcy1pbnB1dC1xdWFudGl0eXNlbGVjdG9yCiAgICAgICAgICAgIC5sYWJlbD0keyJJdGVtcyBpbiBDYXJ0In0KICAgICAgICAgICAgLmRlc2NyaXB0aW9uPSR7IkFkanVzdCB0aGUgcXVhbnRpdHkgb2YgaXRlbXMifQogICAgICAgICAgICAudmFsdWU9JHszfQogICAgICAgICAgPjwvZGVlcy1pbnB1dC1xdWFudGl0eXNlbGVjdG9yPgogICAgICAgIDwvZGl2PgogICAgICA8L2RlZXMtcGFuZWw+CiAgICAgIAogICAgICA8ZGVlcy1wYW5lbCAudGl0bGU9JHsiU2hvcHBpbmcgQ2FydCJ9IC5zdWJ0aXRsZT0keyJNb2Rlcm4gZS1jb21tZXJjZSBwcm9kdWN0IGNhcmRzIHdpdGggaW50ZXJhY3RpdmUgcXVhbnRpdHkgc2VsZWN0b3JzIn0gLnJ1bkFmdGVyUmVuZGVyPSR7YXN5bmMgZT0+e2xldCB0PSgpPT57bGV0IHI9ZS5xdWVyeVNlbGVjdG9yKCIjaGVhZHBob25lcy1xdHkiKSxpPWUucXVlcnlTZWxlY3RvcigiI21vdXNlLXF0eSIpLGE9ZS5xdWVyeVNlbGVjdG9yKCIja2V5Ym9hcmQtcXR5Iiksbj1yPy5xdWFudGl0eXx8MCxvPWk/LnF1YW50aXR5fHwwLHM9YT8ucXVhbnRpdHl8fDAsbD0zNDkuOTkqbixjPTk5Ljk5Km8sdT03OS45OSpzLGQ9bCtjK3UsaD1lLnF1ZXJ5U2VsZWN0b3IoIiNjYXJ0LXN1bW1hcnktY29udGVudCIpO2gmJihoLmlubmVySFRNTD1gCiAgICAgICAgICAgICAgJHtuPjA/YDxkaXYgY2xhc3M9ImNhcnQtaXRlbSI+CiAgICAgICAgICAgICAgICA8c3Bhbj5Tb255IFdILTEwMDBYTTUgKCR7bn0pPC9zcGFuPgogICAgICAgICAgICAgICAgPHNwYW4+JCR7bC50b0ZpeGVkKDIpfTwvc3Bhbj4KICAgICAgICAgICAgICA8L2Rpdj5gOiIifQogICAgICAgICAgICAgICR7bz4wP2A8ZGl2IGNsYXNzPSJjYXJ0LWl0ZW0iPgogICAgICAgICAgICAgICAgPHNwYW4+TG9naXRlY2ggTVggTWFzdGVyIDNTICgke299KTwvc3Bhbj4KICAgICAgICAgICAgICAgIDxzcGFuPiQke2MudG9GaXhlZCgyKX08L3NwYW4+CiAgICAgICAgICAgICAgPC9kaXY+YDoiIn0KICAgICAgICAgICAgICAke3M+MD9gPGRpdiBjbGFzcz0iY2FydC1pdGVtIj4KICAgICAgICAgICAgICAgIDxzcGFuPktleWNocm9uIEsyICgke3N9KTwvc3Bhbj4KICAgICAgICAgICAgICAgIDxzcGFuPiQke3UudG9GaXhlZCgyKX08L3NwYW4+CiAgICAgICAgICAgICAgPC9kaXY+YDoiIn0KICAgICAgICAgICAgICAke2Q9PT0wPyc8ZGl2IGNsYXNzPSJjYXJ0LWl0ZW0iIHN0eWxlPSJ0ZXh0LWFsaWduOiBjZW50ZXI7IGNvbG9yOiAjOTk5OyI+WW91ciBjYXJ0IGlzIGVtcHR5PC9kaXY+JzoiIn0KICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJjYXJ0LXRvdGFsIj4KICAgICAgICAgICAgICAgIDxzcGFuPlRvdGFsPC9zcGFuPgogICAgICAgICAgICAgICAgPHNwYW4+JCR7ZC50b0ZpeGVkKDIpfTwvc3Bhbj4KICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgYCl9O3NldFRpbWVvdXQodCwxMDApLGUucXVlcnlTZWxlY3RvckFsbCgiZGVlcy1zaG9wcGluZy1wcm9kdWN0Y2FyZCIpLmZvckVhY2gocj0+e3IuYWRkRXZlbnRMaXN0ZW5lcigicXVhbnRpdHlDaGFuZ2UiLHQpfSl9fT4KICAgICAgICA8ZGl2IGNsYXNzPSJzaG9wcGluZy1ncmlkIj4KICAgICAgICAgIDxkZWVzLXNob3BwaW5nLXByb2R1Y3RjYXJkCiAgICAgICAgICAgIGlkPSJoZWFkcGhvbmVzLXF0eSIKICAgICAgICAgICAgLnByb2R1Y3REYXRhPSR7e25hbWU6IlNvbnkgV0gtMTAwMFhNNSBXaXJlbGVzcyBIZWFkcGhvbmVzIixjYXRlZ29yeToiQXVkaW8iLGRlc2NyaXB0aW9uOiJJbmR1c3RyeS1sZWFkaW5nIG5vaXNlIGNhbmNlbGluZyB3aXRoIEF1dG8gTkMgT3B0aW1pemVyIixwcmljZTozNDkuOTksb3JpZ2luYWxQcmljZTozOTkuOTksaWNvbk5hbWU6Imx1Y2lkZTpoZWFkcGhvbmVzIn19CiAgICAgICAgICAgIC5xdWFudGl0eT0kezF9CiAgICAgICAgICA+PC9kZWVzLXNob3BwaW5nLXByb2R1Y3RjYXJkPgogICAgICAgICAgCiAgICAgICAgICA8ZGVlcy1zaG9wcGluZy1wcm9kdWN0Y2FyZAogICAgICAgICAgICBpZD0ibW91c2UtcXR5IgogICAgICAgICAgICAucHJvZHVjdERhdGE9JHt7bmFtZToiTG9naXRlY2ggTVggTWFzdGVyIDNTIixjYXRlZ29yeToiQWNjZXNzb3JpZXMiLGRlc2NyaXB0aW9uOiJQZXJmb3JtYW5jZSB3aXJlbGVzcyBtb3VzZSB3aXRoIHVsdHJhLWZhc3Qgc2Nyb2xsaW5nIixwcmljZTo5OS45OSxpY29uTmFtZToibHVjaWRlOm1vdXNlLXBvaW50ZXIifX0KICAgICAgICAgICAgLnF1YW50aXR5PSR7Mn0KICAgICAgICAgID48L2RlZXMtc2hvcHBpbmctcHJvZHVjdGNhcmQ+CiAgICAgICAgICAKICAgICAgICAgIDxkZWVzLXNob3BwaW5nLXByb2R1Y3RjYXJkCiAgICAgICAgICAgIGlkPSJrZXlib2FyZC1xdHkiCiAgICAgICAgICAgIC5wcm9kdWN0RGF0YT0ke3tuYW1lOiJLZXljaHJvbiBLMiBXaXJlbGVzcyBNZWNoYW5pY2FsIEtleWJvYXJkIixjYXRlZ29yeToiS2V5Ym9hcmRzIixkZXNjcmlwdGlvbjoiQ29tcGFjdCA3NSUgbGF5b3V0IHdpdGggaG90LXN3YXBwYWJsZSBzd2l0Y2hlcyIscHJpY2U6NzkuOTksb3JpZ2luYWxQcmljZTo5NC45OSxpY29uTmFtZToibHVjaWRlOmtleWJvYXJkIn19CiAgICAgICAgICAgIC5xdWFudGl0eT0kezF9CiAgICAgICAgICA+PC9kZWVzLXNob3BwaW5nLXByb2R1Y3RjYXJkPgogICAgICAgIDwvZGl2PgoKICAgICAgICA8ZGl2IGNsYXNzPSJjYXJ0LXN1bW1hcnkiPgogICAgICAgICAgPGgzIGNsYXNzPSJjYXJ0LXN1bW1hcnktdGl0bGUiPk9yZGVyIFN1bW1hcnk8L2gzPgogICAgICAgICAgPGRpdiBpZD0iY2FydC1zdW1tYXJ5LWNvbnRlbnQiPgogICAgICAgICAgICA8IS0tIENvbnRlbnQgd2lsbCBiZSBkeW5hbWljYWxseSB1cGRhdGVkIC0tPgogICAgICAgICAgPC9kaXY+CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGVlcy1wYW5lbD4KICAgICAgCiAgICAgIDxkZWVzLXBhbmVsIC50aXRsZT0keyJSZXF1aXJlZCAmIERpc2FibGVkIFN0YXRlcyJ9IC5zdWJ0aXRsZT0keyJEaWZmZXJlbnQgc3RhdGVzIGZvciB2YWxpZGF0aW9uIGFuZCByZXN0cmljdGlvbnMifT4KICAgICAgICA8ZGl2IGNsYXNzPSJpbnB1dC1ncm91cCI+CiAgICAgICAgICA8ZGVlcy1pbnB1dC1xdWFudGl0eXNlbGVjdG9yCiAgICAgICAgICAgIC5sYWJlbD0keyJOdW1iZXIgb2YgTGljZW5zZXMifQogICAgICAgICAgICAuZGVzY3JpcHRpb249JHsiU2VsZWN0IGhvdyBtYW55IGxpY2Vuc2VzIHlvdSBuZWVkIn0KICAgICAgICAgICAgLnJlcXVpcmVkPSR7ITB9CiAgICAgICAgICAgIC52YWx1ZT0kezF9CiAgICAgICAgICA+PC9kZWVzLWlucHV0LXF1YW50aXR5c2VsZWN0b3I+CgogICAgICAgICAgPGRlZXMtaW5wdXQtcXVhbnRpdHlzZWxlY3RvcgogICAgICAgICAgICAubGFiZWw9JHsiRml4ZWQgUXVhbnRpdHkifQogICAgICAgICAgICAuZGVzY3JpcHRpb249JHsiVGhpcyBxdWFudGl0eSBjYW5ub3QgYmUgY2hhbmdlZCJ9CiAgICAgICAgICAgIC5kaXNhYmxlZD0keyEwfQogICAgICAgICAgICAudmFsdWU9JHs1fQogICAgICAgICAgPjwvZGVlcy1pbnB1dC1xdWFudGl0eXNlbGVjdG9yPgogICAgICAgIDwvZGl2PgogICAgICA8L2RlZXMtcGFuZWw+CiAgICAgIAogICAgICA8ZGVlcy1wYW5lbCAudGl0bGU9JHsiT3JkZXIgRm9ybSJ9IC5zdWJ0aXRsZT0keyJDb21wbGV0ZSBvcmRlciBmb3JtIHdpdGggcXVhbnRpdHkgc2VsZWN0aW9uIn0+CiAgICAgICAgPGRlZXMtZm9ybT4KICAgICAgICAgIDxkZWVzLWlucHV0LXRleHQgLmxhYmVsPSR7IkN1c3RvbWVyIE5hbWUifSAucmVxdWlyZWQ9JHshMH0+PC9kZWVzLWlucHV0LXRleHQ+CiAgICAgICAgICA8ZGVlcy1pbnB1dC1kcm9wZG93bgogICAgICAgICAgICAubGFiZWw9JHsiUHJvZHVjdCJ9CiAgICAgICAgICAgIC5vcHRpb25zPSR7WyJCYXNpYyBQbGFuIiwiUHJvIFBsYW4iLCJFbnRlcnByaXNlIFBsYW4iXX0KICAgICAgICAgICAgLnJlcXVpcmVkPSR7ITB9CiAgICAgICAgICA+PC9kZWVzLWlucHV0LWRyb3Bkb3duPgogICAgICAgICAgPGRlZXMtaW5wdXQtcXVhbnRpdHlzZWxlY3RvcgogICAgICAgICAgICAubGFiZWw9JHsiUXVhbnRpdHkifQogICAgICAgICAgICAuZGVzY3JpcHRpb249JHsiTnVtYmVyIG9mIGxpY2Vuc2VzIn0KICAgICAgICAgICAgLnZhbHVlPSR7MX0KICAgICAgICAgID48L2RlZXMtaW5wdXQtcXVhbnRpdHlzZWxlY3Rvcj4KICAgICAgICAgIDxkZWVzLWlucHV0LXRleHQKICAgICAgICAgICAgLmxhYmVsPSR7IlNwZWNpYWwgSW5zdHJ1Y3Rpb25zIn0KICAgICAgICAgICAgLmlucHV0VHlwZT0keyJ0ZXh0YXJlYSJ9CiAgICAgICAgICA+PC9kZWVzLWlucHV0LXRleHQ+CiAgICAgICAgPC9kZWVzLWZvcm0+CiAgICAgIDwvZGVlcy1wYW5lbD4KICAgIDwvZGl2PgogIDwvZGVlcy1kZW1vd3JhcHBlcj4KYH0pO3ZhciBGc3IsbTZlLEVOLGc2ZT1wKCgpPT57eGUoKTtLdCgpO00xKCk7TnNyKCk7SmUoKTtGc3I9ZnVuY3Rpb24oZSx0LHIsaSxhLG4pe2Z1bmN0aW9uIG8oeSl7aWYoeSE9PXZvaWQgMCYmdHlwZW9mIHkhPSJmdW5jdGlvbiIpdGhyb3cgbmV3IFR5cGVFcnJvcigiRnVuY3Rpb24gZXhwZWN0ZWQiKTtyZXR1cm4geX1mb3IodmFyIHM9aS5raW5kLGw9cz09PSJnZXR0ZXIiPyJnZXQiOnM9PT0ic2V0dGVyIj8ic2V0IjoidmFsdWUiLGM9IXQmJmU/aS5zdGF0aWM/ZTplLnByb3RvdHlwZTpudWxsLHU9dHx8KGM/T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihjLGkubmFtZSk6e30pLGQsaD0hMSxmPXIubGVuZ3RoLTE7Zj49MDtmLS0pe3ZhciB4PXt9O2Zvcih2YXIgdiBpbiBpKXhbdl09dj09PSJhY2Nlc3MiP3t9Omlbdl07Zm9yKHZhciB2IGluIGkuYWNjZXNzKXguYWNjZXNzW3ZdPWkuYWNjZXNzW3ZdO3guYWRkSW5pdGlhbGl6ZXI9ZnVuY3Rpb24oeSl7aWYoaCl0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgYWRkIGluaXRpYWxpemVycyBhZnRlciBkZWNvcmF0aW9uIGhhcyBjb21wbGV0ZWQiKTtuLnB1c2gobyh5fHxudWxsKSl9O3ZhciBiPSgwLHJbZl0pKHM9PT0iYWNjZXNzb3IiP3tnZXQ6dS5nZXQsc2V0OnUuc2V0fTp1W2xdLHgpO2lmKHM9PT0iYWNjZXNzb3IiKXtpZihiPT09dm9pZCAwKWNvbnRpbnVlO2lmKGI9PT1udWxsfHx0eXBlb2YgYiE9Im9iamVjdCIpdGhyb3cgbmV3IFR5cGVFcnJvcigiT2JqZWN0IGV4cGVjdGVkIik7KGQ9byhiLmdldCkpJiYodS5nZXQ9ZCksKGQ9byhiLnNldCkpJiYodS5zZXQ9ZCksKGQ9byhiLmluaXQpKSYmYS51bnNoaWZ0KGQpfWVsc2UoZD1vKGIpKSYmKHM9PT0iZmllbGQiP2EudW5zaGlmdChkKTp1W2xdPWQpfWMmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShjLGkubmFtZSx1KSxoPSEwfSxtNmU9ZnVuY3Rpb24oZSx0LHIpe2Zvcih2YXIgaT1hcmd1bWVudHMubGVuZ3RoPjIsYT0wO2E8dC5sZW5ndGg7YSsrKXI9aT90W2FdLmNhbGwoZSxyKTp0W2FdLmNhbGwoZSk7cmV0dXJuIGk/cjp2b2lkIDB9LEVOPSgoKT0+e2xldCBlPVt5ZSgiZGVlcy1pbnB1dC1xdWFudGl0eXNlbGVjdG9yIildLHQscj1bXSxpLGE9b3QsbixvPVtdLHM9W107dmFyIGw9Y2xhc3MgZXh0ZW5kcyBhe3N0YXRpY3tpPXRoaXN9c3RhdGlje2xldCBjPXR5cGVvZiBTeW1ib2w9PSJmdW5jdGlvbiImJlN5bWJvbC5tZXRhZGF0YT9PYmplY3QuY3JlYXRlKGFbU3ltYm9sLm1ldGFkYXRhXT8/bnVsbCk6dm9pZCAwO249W2ooe3R5cGU6TnVtYmVyfSldLEZzcih0aGlzLG51bGwsbix7a2luZDoiYWNjZXNzb3IiLG5hbWU6InZhbHVlIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczp1PT4idmFsdWUiaW4gdSxnZXQ6dT0+dS52YWx1ZSxzZXQ6KHUsZCk9Pnt1LnZhbHVlPWR9fSxtZXRhZGF0YTpjfSxvLHMpLEZzcihudWxsLHQ9e3ZhbHVlOml9LGUse2tpbmQ6ImNsYXNzIixuYW1lOmkubmFtZSxtZXRhZGF0YTpjfSxudWxsLHIpLGw9aT10LnZhbHVlLGMmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShpLFN5bWJvbC5tZXRhZGF0YSx7ZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITAsdmFsdWU6Y30pfXN0YXRpYyBkZW1vPVBzcjtzdGF0aWMgZGVtb0dyb3Vwcz1bIklucHV0Il07I2U9bTZlKHRoaXMsbywxKTtnZXQgdmFsdWUoKXtyZXR1cm4gdGhpcy4jZX1zZXQgdmFsdWUoYyl7dGhpcy4jZT1jfXN0YXRpYyBzdHlsZXM9W0RlLC4uLm90LmJhc2VTdHlsZXMsbS5kZWZhdWx0U3R5bGVzLG9lYAogICAgICAgIC8qIFRPRE86IE1pZ3JhdGUgaGFyZGNvZGVkIHZhbHVlcyB0byAtLWRlZXMtKiBDU1MgdmFyaWFibGVzICovCiAgICAgICAgOmhvc3QgewogICAgICAgICAgd2lkdGg6IGF1dG87CiAgICAgICAgICB1c2VyLXNlbGVjdDogbm9uZTsKICAgICAgICB9CgogICAgICAgIC5xdWFudGl0eS1jb250YWluZXIgewogICAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuMTVzIGVhc2U7CiAgICAgICAgICBmb250LXNpemU6IDE0cHg7CiAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDsKICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDsKICAgICAgICAgIGhlaWdodDogNDBweDsKICAgICAgICAgIHBhZGRpbmc6IDA7CiAgICAgICAgICBtaW4td2lkdGg6IDEyMHB4OwogICAgICAgICAgY29sb3I6ICR7bS5iZFRoZW1lKCJoc2woMCAwJSA5JSkiLCJoc2woMCAwJSA5NSUpIil9OwogICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHttLmJkVGhlbWUoImhzbCgwIDAlIDg5LjglKSIsImhzbCgwIDAlIDE0LjklKSIpfTsKICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDZweDsKICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47CiAgICAgICAgfQogICAgICAgIAogICAgICAgIC5xdWFudGl0eS1jb250YWluZXIuZGlzYWJsZWQgewogICAgICAgICAgYmFja2dyb3VuZDogJHttLmJkVGhlbWUoImhzbCgwIDAlIDk1LjElKSIsImhzbCgwIDAlIDE0LjklKSIpfTsKICAgICAgICAgIGJvcmRlci1jb2xvcjogJHttLmJkVGhlbWUoImhzbCgwIDAlIDg5LjglKSIsImhzbCgwIDAlIDE0LjklKSIpfTsKICAgICAgICAgIG9wYWNpdHk6IDAuNTsKICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lOwogICAgICAgIH0KCiAgICAgICAgLnF1YW50aXR5LWNvbnRhaW5lcjpob3Zlcjpub3QoLmRpc2FibGVkKSB7CiAgICAgICAgICBib3JkZXItY29sb3I6ICR7bS5iZFRoZW1lKCJoc2woMCAwJSA3OS44JSkiLCJoc2woMCAwJSAyMC45JSkiKX07CiAgICAgICAgfQoKICAgICAgICAucXVhbnRpdHktY29udGFpbmVyOmZvY3VzLXdpdGhpbiB7CiAgICAgICAgICBib3JkZXItY29sb3I6ICR7bS5iZFRoZW1lKCJoc2woMjIyLjIgNDcuNCUgNTEuMiUpIiwiaHNsKDIxNy4yIDkxLjIlIDU5LjglKSIpfTsKICAgICAgICAgIGJveC1zaGFkb3c6IDAgMCAwIDNweCAke20uYmRUaGVtZSgiaHNsKDIyMi4yIDQ3LjQlIDUxLjIlIC8gMC4xKSIsImhzbCgyMTcuMiA5MS4yJSA1OS44JSAvIDAuMSkiKX07CiAgICAgICAgfQoKICAgICAgICAuc2VsZWN0b3IgewogICAgICAgICAgZmxleDogMCAwIDQwcHg7CiAgICAgICAgICBoZWlnaHQ6IDEwMCU7CiAgICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOwogICAgICAgICAgZm9udC1zaXplOiAxNnB4OwogICAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDsKICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjsKICAgICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjE1cyBlYXNlOwogICAgICAgICAgY29sb3I6ICR7bS5iZFRoZW1lKCJoc2woMjE1LjQgMTYuMyUgNTYuOSUpIiwiaHNsKDIxNSAyMC4yJSA1NS4xJSkiKX07CiAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgICAgfQoKICAgICAgICAuc2VsZWN0b3I6aG92ZXIgewogICAgICAgICAgYmFja2dyb3VuZDogJHttLmJkVGhlbWUoImhzbCgwIDAlIDk1LjElKSIsImhzbCgwIDAlIDE0LjklKSIpfTsKICAgICAgICAgIGNvbG9yOiAke20uYmRUaGVtZSgiaHNsKDAgMCUgOSUpIiwiaHNsKDAgMCUgOTUlKSIpfTsKICAgICAgICB9CgogICAgICAgIC5zZWxlY3RvcjphY3RpdmUgewogICAgICAgICAgYmFja2dyb3VuZDogJHttLmJkVGhlbWUoImhzbCgwIDAlIDkxJSkiLCJoc2woMCAwJSAxMSUpIil9OwogICAgICAgIH0KCiAgICAgICAgLnNlbGVjdG9yLm1pbnVzIHsKICAgICAgICAgIGJvcmRlci1yaWdodDogMXB4IHNvbGlkICR7bS5iZFRoZW1lKCJoc2woMCAwJSA4OS44JSkiLCJoc2woMCAwJSAxNC45JSkiKX07CiAgICAgICAgfQoKICAgICAgICAuc2VsZWN0b3IucGx1cyB7CiAgICAgICAgICBib3JkZXItbGVmdDogMXB4IHNvbGlkICR7bS5iZFRoZW1lKCJoc2woMCAwJSA4OS44JSkiLCJoc2woMCAwJSAxNC45JSkiKX07CiAgICAgICAgfQoKICAgICAgICAucXVhbnRpdHkgewogICAgICAgICAgZmxleDogMTsKICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjsKICAgICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7CiAgICAgICAgICBmb250LXZhcmlhbnQtbnVtZXJpYzogdGFidWxhci1udW1zOwogICAgICAgICAgbGV0dGVyLXNwYWNpbmc6IC0wLjAwNmVtOwogICAgICAgIH0KCiAgICAgICAgLyogS2V5Ym9hcmQgbmF2aWdhdGlvbiBmb2N1cyBzdHlsZXMgKi8KICAgICAgICAuc2VsZWN0b3I6Zm9jdXMgewogICAgICAgICAgb3V0bGluZTogbm9uZTsKICAgICAgICAgIGJhY2tncm91bmQ6ICR7bS5iZFRoZW1lKCJoc2woMjEwIDQwJSA5Ni4xJSkiLCJoc2woMjE1IDIwLjIlIDE2LjglKSIpfTsKICAgICAgICAgIHotaW5kZXg6IDE7CiAgICAgICAgfQoKICAgICAgICAvKiBNaW4gdmFsdWUgc3RhdGUgKi8KICAgICAgICAucXVhbnRpdHktY29udGFpbmVyW2RhdGEtbWluPSJ0cnVlIl0gLnNlbGVjdG9yLm1pbnVzIHsKICAgICAgICAgIG9wYWNpdHk6IDAuMzsKICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7CiAgICAgICAgfQoKICAgICAgICAucXVhbnRpdHktY29udGFpbmVyW2RhdGEtbWluPSJ0cnVlIl0gLnNlbGVjdG9yLm1pbnVzOmhvdmVyIHsKICAgICAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50OwogICAgICAgICAgY29sb3I6ICR7bS5iZFRoZW1lKCJoc2woMjE1LjQgMTYuMyUgNTYuOSUpIiwiaHNsKDIxNSAyMC4yJSA1NS4xJSkiKX07CiAgICAgICAgfQoKICAgIGBdO3JlbmRlcigpe3JldHVybiBDYAogICAgICA8ZGl2IGNsYXNzPSJpbnB1dC13cmFwcGVyIj4KICAgICAgICAke3RoaXMubGFiZWw/Q2A8ZGVlcy1sYWJlbCAubGFiZWw9JHt0aGlzLmxhYmVsfSAuZGVzY3JpcHRpb249JHt0aGlzLmRlc2NyaXB0aW9ufSAucmVxdWlyZWQ9JHt0aGlzLnJlcXVpcmVkfT48L2RlZXMtbGFiZWw+YDoiIn0KICAgICAgICA8ZGl2IAogICAgICAgICAgY2xhc3M9InF1YW50aXR5LWNvbnRhaW5lciAke3RoaXMuZGlzYWJsZWQ/ImRpc2FibGVkIjoiIn0iCiAgICAgICAgICBkYXRhLW1pbj0iJHt0aGlzLnZhbHVlPD0wfSIKICAgICAgICA+CiAgICAgICAgICA8ZGl2IAogICAgICAgICAgICBjbGFzcz0ic2VsZWN0b3IgbWludXMiIAogICAgICAgICAgICBAY2xpY2s9IiR7KCk9Pnt0aGlzLmRlY3JlYXNlKCl9fSIKICAgICAgICAgICAgdGFiaW5kZXg9IiR7dGhpcy5kaXNhYmxlZD8iLTEiOiIwIn0iCiAgICAgICAgICAgIEBrZXlkb3duPSIke2M9PnsoYy5rZXk9PT0iRW50ZXIifHxjLmtleT09PSIgIikmJihjLnByZXZlbnREZWZhdWx0KCksdGhpcy5kZWNyZWFzZSgpKX19IgogICAgICAgICAgICByb2xlPSJidXR0b24iCiAgICAgICAgICAgIGFyaWEtbGFiZWw9IkRlY3JlYXNlIHF1YW50aXR5IgogICAgICAgICAgPuKIkjwvZGl2PgogICAgICAgICAgPGRpdiBjbGFzcz0icXVhbnRpdHkiIGFyaWEtbGl2ZT0icG9saXRlIiBhcmlhLWF0b21pYz0idHJ1ZSI+JHt0aGlzLnZhbHVlfTwvZGl2PgogICAgICAgICAgPGRpdiAKICAgICAgICAgICAgY2xhc3M9InNlbGVjdG9yIHBsdXMiIAogICAgICAgICAgICBAY2xpY2s9IiR7KCk9Pnt0aGlzLmluY3JlYXNlKCl9fSIKICAgICAgICAgICAgdGFiaW5kZXg9IiR7dGhpcy5kaXNhYmxlZD8iLTEiOiIwIn0iCiAgICAgICAgICAgIEBrZXlkb3duPSIke2M9PnsoYy5rZXk9PT0iRW50ZXIifHxjLmtleT09PSIgIikmJihjLnByZXZlbnREZWZhdWx0KCksdGhpcy5pbmNyZWFzZSgpKX19IgogICAgICAgICAgICByb2xlPSJidXR0b24iCiAgICAgICAgICAgIGFyaWEtbGFiZWw9IkluY3JlYXNlIHF1YW50aXR5IgogICAgICAgICAgPis8L2Rpdj4KICAgICAgICA8L2Rpdj4KICAgICAgPC9kaXY+CiAgICBgfWluY3JlYXNlKCl7dGhpcy5kaXNhYmxlZHx8KHRoaXMudmFsdWUrKyx0aGlzLmNoYW5nZVN1YmplY3QubmV4dCh0aGlzKSl9ZGVjcmVhc2UoKXshdGhpcy5kaXNhYmxlZCYmdGhpcy52YWx1ZT4wJiYodGhpcy52YWx1ZS0tLHRoaXMuY2hhbmdlU3ViamVjdC5uZXh0KHRoaXMpKX1nZXRWYWx1ZSgpe3JldHVybiB0aGlzLnZhbHVlfXNldFZhbHVlKGMpe3RoaXMudmFsdWU9Y31jb25zdHJ1Y3Rvcigpe3N1cGVyKC4uLmFyZ3VtZW50cyksbTZlKHRoaXMscyl9c3RhdGlje202ZShpLHIpfX07cmV0dXJuIGw9aX0pKCl9KTt2YXIgT3NyLFJzcj1wKCgpPT57eGUoKTtwMSgpO09pKCk7T3NyPSgpPT5DYAogIDxkZWVzLWRlbW93cmFwcGVyPgogICAgPHN0eWxlPgogICAgICAke29lYAogICAgICAgIC5kZW1vLWNvbnRhaW5lciB7CiAgICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgICAgIGdhcDogMjRweDsKICAgICAgICAgIHBhZGRpbmc6IDI0cHg7CiAgICAgICAgICBtYXgtd2lkdGg6IDEyMDBweDsKICAgICAgICAgIG1hcmdpbjogMCBhdXRvOwogICAgICAgIH0KICAgICAgICAKICAgICAgICBkZWVzLXBhbmVsIHsKICAgICAgICAgIG1hcmdpbi1ib3R0b206IDI0cHg7CiAgICAgICAgfQogICAgICAgIAogICAgICAgIGRlZXMtcGFuZWw6bGFzdC1jaGlsZCB7CiAgICAgICAgICBtYXJnaW4tYm90dG9tOiAwOwogICAgICAgIH0KICAgICAgICAKICAgICAgICAuaW5wdXQtZ3JvdXAgewogICAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgICAgICBnYXA6IDE2cHg7CiAgICAgICAgfQoKICAgICAgICAuZGVtby1ncmlkIHsKICAgICAgICAgIGRpc3BsYXk6IGdyaWQ7CiAgICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdChhdXRvLWZpdCwgbWlubWF4KDMwMHB4LCAxZnIpKTsKICAgICAgICAgIGdhcDogMjRweDsKICAgICAgICB9CiAgICAgICAgCiAgICAgICAgLnJlc3VsdC1kaXNwbGF5IHsKICAgICAgICAgIG1hcmdpbi10b3A6IDE2cHg7CiAgICAgICAgICBwYWRkaW5nOiAxMnB4OwogICAgICAgICAgYmFja2dyb3VuZDogcmdiYSgwLCAxMDUsIDI0MiwgMC4xKTsKICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDRweDsKICAgICAgICAgIGZvbnQtZmFtaWx5OiBtb25vc3BhY2U7CiAgICAgICAgICBmb250LXNpemU6IDE0cHg7CiAgICAgICAgfQogICAgICBgfQogICAgPC9zdHlsZT4KICAgIAogICAgPGRpdiBjbGFzcz0iZGVtby1jb250YWluZXIiPgogICAgICA8ZGVlcy1wYW5lbCAudGl0bGU9JHsiMS4gQmFzaWMgUmFkaW8gR3JvdXBzIn0gLnN1YnRpdGxlPSR7IlNpbXBsZSBzdHJpbmcgb3B0aW9ucyBmb3IgY29tbW9uIHVzZSBjYXNlcyJ9PgogICAgICAgIDxkaXYgY2xhc3M9ImRlbW8tZ3JpZCI+CiAgICAgICAgICA8ZGVlcy1pbnB1dC1yYWRpb2dyb3VwCiAgICAgICAgICAgIC5sYWJlbD0keyJTdWJzY3JpcHRpb24gUGxhbiJ9CiAgICAgICAgICAgIC5vcHRpb25zPSR7WyJCYXNpYyAtICQ5L21vbnRoIiwiUHJvIC0gJDI5L21vbnRoIiwiRW50ZXJwcmlzZSAtICQ5OS9tb250aCJdfQogICAgICAgICAgICAuc2VsZWN0ZWRPcHRpb249JHsiUHJvIC0gJDI5L21vbnRoIn0KICAgICAgICAgICAgLmRlc2NyaXB0aW9uPSR7IkNob29zZSB5b3VyIHN1YnNjcmlwdGlvbiB0aWVyIn0KICAgICAgICAgID48L2RlZXMtaW5wdXQtcmFkaW9ncm91cD4KICAgICAgICAgIAogICAgICAgICAgPGRlZXMtaW5wdXQtcmFkaW9ncm91cAogICAgICAgICAgICAubGFiZWw9JHsiUHJpb3JpdHkgTGV2ZWwifQogICAgICAgICAgICAub3B0aW9ucz0ke1siSGlnaCIsIk1lZGl1bSIsIkxvdyJdfQogICAgICAgICAgICAuc2VsZWN0ZWRPcHRpb249JHsiTWVkaXVtIn0KICAgICAgICAgICAgLnJlcXVpcmVkPSR7ITB9CiAgICAgICAgICA+PC9kZWVzLWlucHV0LXJhZGlvZ3JvdXA+CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGVlcy1wYW5lbD4KICAgICAgCiAgICAgIDxkZWVzLXBhbmVsIC50aXRsZT0keyIyLiBIb3Jpem9udGFsIExheW91dCJ9IC5zdWJ0aXRsZT0keyJSYWRpbyBncm91cHMgd2l0aCBob3Jpem9udGFsIGFycmFuZ2VtZW50In0+CiAgICAgICAgPGRpdiBjbGFzcz0iaW5wdXQtZ3JvdXAiPgogICAgICAgICAgPGRlZXMtaW5wdXQtcmFkaW9ncm91cAogICAgICAgICAgICAubGFiZWw9JHsiRG8geW91IGFncmVlIHdpdGggdGhlIHRlcm1zPyJ9CiAgICAgICAgICAgIC5vcHRpb25zPSR7WyJZZXMiLCJObyIsIk1heWJlIl19CiAgICAgICAgICAgIC5kaXJlY3Rpb249JHsiaG9yaXpvbnRhbCJ9CiAgICAgICAgICAgIC5zZWxlY3RlZE9wdGlvbj0keyJZZXMifQogICAgICAgICAgPjwvZGVlcy1pbnB1dC1yYWRpb2dyb3VwPgoKICAgICAgICAgIDxkZWVzLWlucHV0LXJhZGlvZ3JvdXAKICAgICAgICAgICAgLmxhYmVsPSR7IkV4cGVyaWVuY2UgTGV2ZWwifQogICAgICAgICAgICAub3B0aW9ucz0ke1siQmVnaW5uZXIiLCJJbnRlcm1lZGlhdGUiLCJFeHBlcnQiXX0KICAgICAgICAgICAgLmRpcmVjdGlvbj0keyJob3Jpem9udGFsIn0KICAgICAgICAgICAgLnNlbGVjdGVkT3B0aW9uPSR7IkludGVybWVkaWF0ZSJ9CiAgICAgICAgICAgIC5kZXNjcmlwdGlvbj0keyJTZWxlY3QgeW91ciBleHBlcmllbmNlIGxldmVsIHdpdGggd2ViIGRldmVsb3BtZW50In0KICAgICAgICAgID48L2RlZXMtaW5wdXQtcmFkaW9ncm91cD4KICAgICAgICA8L2Rpdj4KICAgICAgPC9kZWVzLXBhbmVsPgogICAgICAKICAgICAgPGRlZXMtcGFuZWwgLnRpdGxlPSR7IjMuIEFkdmFuY2VkIE9wdGlvbnMifSAuc3VidGl0bGU9JHsiVXNpbmcgb2JqZWN0IGZvcm1hdCB3aXRoIGtleXMgYW5kIHBheWxvYWRzIn0+CiAgICAgICAgPGRlZXMtaW5wdXQtcmFkaW9ncm91cAogICAgICAgICAgaWQ9ImFkdmFuY2VkLXJhZGlvIgogICAgICAgICAgLmxhYmVsPSR7IlNlbGVjdCBSZWdpb24ifQogICAgICAgICAgLm9wdGlvbnM9JHtbe29wdGlvbjoiVW5pdGVkIFN0YXRlcyAoVVMgRWFzdCkiLGtleToidXMtZWFzdCIscGF5bG9hZDp7cmVnaW9uOiJ1cy1lYXN0LTEiLGxhdGVuY3k6MjB9fSx7b3B0aW9uOiJFdXJvcGUgKEZyYW5rZnVydCkiLGtleToiZXUtY2VudHJhbCIscGF5bG9hZDp7cmVnaW9uOiJldS1jZW50cmFsLTEiLGxhdGVuY3k6NTB9fSx7b3B0aW9uOiJBc2lhIFBhY2lmaWMgKFNpbmdhcG9yZSkiLGtleToiYXAtc291dGhlYXN0IixwYXlsb2FkOntyZWdpb246ImFwLXNvdXRoZWFzdC0xIixsYXRlbmN5OjEyMH19XX0KICAgICAgICAgIC5zZWxlY3RlZE9wdGlvbj0keyJldS1jZW50cmFsIn0KICAgICAgICAgIC5kZXNjcmlwdGlvbj0keyJDaG9vc2UgdGhlIGNsb3Nlc3QgcmVnaW9uIGZvciBvcHRpbWFsIHBlcmZvcm1hbmNlIn0KICAgICAgICAgIEBjaGFuZ2U9JHtlPT57bGV0IHQ9ZG9jdW1lbnQucXVlcnlTZWxlY3RvcigiI3JlZ2lvbi1yZXN1bHQiKTt0JiYodC50ZXh0Q29udGVudD0iU2VsZWN0ZWQ6ICIrSlNPTi5zdHJpbmdpZnkoZS5kZXRhaWwudmFsdWUsbnVsbCwyKSl9fQogICAgICAgID48L2RlZXMtaW5wdXQtcmFkaW9ncm91cD4KICAgICAgICA8ZGl2IGlkPSJyZWdpb24tcmVzdWx0IiBjbGFzcz0icmVzdWx0LWRpc3BsYXkiPlNlbGVjdGVkOiB7ICJyZWdpb24iOiAiZXUtY2VudHJhbC0xIiwgImxhdGVuY3kiOiA1MCB9PC9kaXY+CiAgICAgIDwvZGVlcy1wYW5lbD4KICAgICAgCiAgICAgIDxkZWVzLXBhbmVsIC50aXRsZT0keyI0LiBTdXJ2ZXkgRXhhbXBsZSJ9IC5zdWJ0aXRsZT0keyJNdWx0aXBsZSByYWRpbyBncm91cHMgZm9yIHN1cnZleXMgYW5kIGZvcm1zIn0+CiAgICAgICAgPGRpdiBjbGFzcz0iZGVtby1ncmlkIj4KICAgICAgICAgIDxkZWVzLWlucHV0LXJhZGlvZ3JvdXAKICAgICAgICAgICAgLmxhYmVsPSR7IkhvdyBzYXRpc2ZpZWQgYXJlIHlvdT8ifQogICAgICAgICAgICAub3B0aW9ucz0ke1siVmVyeSBTYXRpc2ZpZWQiLCJTYXRpc2ZpZWQiLCJOZXV0cmFsIiwiRGlzc2F0aXNmaWVkIiwiVmVyeSBEaXNzYXRpc2ZpZWQiXX0KICAgICAgICAgICAgLnNlbGVjdGVkT3B0aW9uPSR7IlNhdGlzZmllZCJ9CiAgICAgICAgICA+PC9kZWVzLWlucHV0LXJhZGlvZ3JvdXA+CiAgICAgICAgICAKICAgICAgICAgIDxkZWVzLWlucHV0LXJhZGlvZ3JvdXAKICAgICAgICAgICAgLmxhYmVsPSR7IldvdWxkIHlvdSByZWNvbW1lbmQgdXM/In0KICAgICAgICAgICAgLm9wdGlvbnM9JHtbIkRlZmluaXRlbHkiLCJQcm9iYWJseSIsIk5vdCBTdXJlIiwiUHJvYmFibHkgTm90IiwiRGVmaW5pdGVseSBOb3QiXX0KICAgICAgICAgICAgLnNlbGVjdGVkT3B0aW9uPSR7IlByb2JhYmx5In0KICAgICAgICAgID48L2RlZXMtaW5wdXQtcmFkaW9ncm91cD4KICAgICAgICA8L2Rpdj4KICAgICAgPC9kZWVzLXBhbmVsPgogICAgICAKICAgICAgPGRlZXMtcGFuZWwgLnRpdGxlPSR7IjUuIFN0YXRlcyAmIFZhbGlkYXRpb24ifSAuc3VidGl0bGU9JHsiRGlmZmVyZW50IHN0YXRlcyBhbmQgdmFsaWRhdGlvbiBleGFtcGxlcyJ9PgogICAgICAgIDxkaXYgY2xhc3M9ImRlbW8tZ3JpZCI+CiAgICAgICAgICA8ZGVlcy1pbnB1dC1yYWRpb2dyb3VwCiAgICAgICAgICAgIC5sYWJlbD0keyJSZXF1aXJlZCBTZWxlY3Rpb24ifQogICAgICAgICAgICAub3B0aW9ucz0ke1siT3B0aW9uIEEiLCJPcHRpb24gQiIsIk9wdGlvbiBDIl19CiAgICAgICAgICAgIC5yZXF1aXJlZD0keyEwfQogICAgICAgICAgICAuZGVzY3JpcHRpb249JHsiVGhpcyBmaWVsZCBpcyByZXF1aXJlZCJ9CiAgICAgICAgICA+PC9kZWVzLWlucHV0LXJhZGlvZ3JvdXA+CiAgICAgICAgICAKICAgICAgICAgIDxkZWVzLWlucHV0LXJhZGlvZ3JvdXAKICAgICAgICAgICAgLmxhYmVsPSR7IkRpc2FibGVkIFN0YXRlIn0KICAgICAgICAgICAgLm9wdGlvbnM9JHtbIkRpc2FibGVkIE9wdGlvbiAxIiwiRGlzYWJsZWQgT3B0aW9uIDIiLCJEaXNhYmxlZCBPcHRpb24gMyJdfQogICAgICAgICAgICAuc2VsZWN0ZWRPcHRpb249JHsiRGlzYWJsZWQgT3B0aW9uIDIifQogICAgICAgICAgICAuZGlzYWJsZWQ9JHshMH0KICAgICAgICAgID48L2RlZXMtaW5wdXQtcmFkaW9ncm91cD4KICAgICAgICA8L2Rpdj4KICAgICAgPC9kZWVzLXBhbmVsPgogICAgICAKICAgICAgPGRlZXMtcGFuZWwgLnRpdGxlPSR7IjYuIFNldHRpbmdzIEV4YW1wbGUifSAuc3VidGl0bGU9JHsiQ29tbW9uIHBhdHRlcm5zIGluIGFwcGxpY2F0aW9uIHNldHRpbmdzIn0+CiAgICAgICAgPGRpdiBjbGFzcz0iaW5wdXQtZ3JvdXAiPgogICAgICAgICAgPGRlZXMtaW5wdXQtcmFkaW9ncm91cAogICAgICAgICAgICAubGFiZWw9JHsiVGhlbWUgUHJlZmVyZW5jZSJ9CiAgICAgICAgICAgIC5vcHRpb25zPSR7W3tvcHRpb246IkxpZ2h0IFRoZW1lIixrZXk6ImxpZ2h0IixwYXlsb2FkOiJsaWdodCJ9LHtvcHRpb246IkRhcmsgVGhlbWUiLGtleToiZGFyayIscGF5bG9hZDoiZGFyayJ9LHtvcHRpb246IlN5c3RlbSBEZWZhdWx0IixrZXk6InN5c3RlbSIscGF5bG9hZDoiYXV0byJ9XX0KICAgICAgICAgICAgLnNlbGVjdGVkT3B0aW9uPSR7ImRhcmsifQogICAgICAgICAgICAuZGVzY3JpcHRpb249JHsiQ2hvb3NlIGhvdyB0aGUgYXBwbGljYXRpb24gc2hvdWxkIGFwcGVhciJ9CiAgICAgICAgICA+PC9kZWVzLWlucHV0LXJhZGlvZ3JvdXA+CgogICAgICAgICAgPGRlZXMtaW5wdXQtcmFkaW9ncm91cAogICAgICAgICAgICAubGFiZWw9JHsiTm90aWZpY2F0aW9uIEZyZXF1ZW5jeSJ9CiAgICAgICAgICAgIC5vcHRpb25zPSR7WyJBbGwgTm90aWZpY2F0aW9ucyIsIkltcG9ydGFudCBPbmx5IiwiTm9uZSJdfQogICAgICAgICAgICAuc2VsZWN0ZWRPcHRpb249JHsiSW1wb3J0YW50IE9ubHkifQogICAgICAgICAgICAuZGVzY3JpcHRpb249JHsiQ29udHJvbCBob3cgb2Z0ZW4geW91IHJlY2VpdmUgbm90aWZpY2F0aW9ucyJ9CiAgICAgICAgICA+PC9kZWVzLWlucHV0LXJhZGlvZ3JvdXA+CgogICAgICAgICAgPGRlZXMtaW5wdXQtcmFkaW9ncm91cAogICAgICAgICAgICAubGFiZWw9JHsiTGFuZ3VhZ2UifQogICAgICAgICAgICAub3B0aW9ucz0ke1siRW5nbGlzaCIsIkdlcm1hbiIsIkZyZW5jaCIsIlNwYW5pc2giLCJKYXBhbmVzZSJdfQogICAgICAgICAgICAuc2VsZWN0ZWRPcHRpb249JHsiRW5nbGlzaCJ9CiAgICAgICAgICAgIC5kaXJlY3Rpb249JHsiaG9yaXpvbnRhbCJ9CiAgICAgICAgICA+PC9kZWVzLWlucHV0LXJhZGlvZ3JvdXA+CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGVlcy1wYW5lbD4KICAgICAgCiAgICAgIDxkZWVzLXBhbmVsIC50aXRsZT0keyI3LiBGb3JtIEludGVncmF0aW9uIn0gLnN1YnRpdGxlPSR7IldvcmtzIHNlYW1sZXNzbHkgd2l0aCBkZWVzLWZvcm0ifT4KICAgICAgICA8ZGVlcy1mb3JtPgogICAgICAgICAgPGRlZXMtaW5wdXQtdGV4dAogICAgICAgICAgICAubGFiZWw9JHsiUHJvZHVjdCBOYW1lIn0KICAgICAgICAgICAgLnJlcXVpcmVkPSR7ITB9CiAgICAgICAgICAgIC5rZXk9JHsicHJvZHVjdE5hbWUifQogICAgICAgICAgPjwvZGVlcy1pbnB1dC10ZXh0PgogICAgICAgICAgCiAgICAgICAgICA8ZGVlcy1pbnB1dC1yYWRpb2dyb3VwCiAgICAgICAgICAgIC5sYWJlbD0keyJQcm9kdWN0IENhdGVnb3J5In0KICAgICAgICAgICAgLm9wdGlvbnM9JHtbIkVsZWN0cm9uaWNzIiwiQ2xvdGhpbmciLCJCb29rcyIsIkhvbWUgJiBHYXJkZW4iLCJTcG9ydHMiXX0KICAgICAgICAgICAgLnJlcXVpcmVkPSR7ITB9CiAgICAgICAgICAgIC5rZXk9JHsiY2F0ZWdvcnkifQogICAgICAgICAgPjwvZGVlcy1pbnB1dC1yYWRpb2dyb3VwPgogICAgICAgICAgCiAgICAgICAgICA8ZGVlcy1pbnB1dC1yYWRpb2dyb3VwCiAgICAgICAgICAgIC5sYWJlbD0keyJDb25kaXRpb24ifQogICAgICAgICAgICAub3B0aW9ucz0ke1siTmV3IiwiTGlrZSBOZXciLCJHb29kIiwiRmFpciIsIlBvb3IiXX0KICAgICAgICAgICAgLmRpcmVjdGlvbj0keyJob3Jpem9udGFsIn0KICAgICAgICAgICAgLmtleT0keyJjb25kaXRpb24ifQogICAgICAgICAgICAuc2VsZWN0ZWRPcHRpb249JHsiTmV3In0KICAgICAgICAgID48L2RlZXMtaW5wdXQtcmFkaW9ncm91cD4KICAgICAgICAgIAogICAgICAgICAgPGRlZXMtaW5wdXQtcmFkaW9ncm91cAogICAgICAgICAgICAubGFiZWw9JHsiU2hpcHBpbmcgU3BlZWQifQogICAgICAgICAgICAub3B0aW9ucz0ke1t7b3B0aW9uOiJTdGFuZGFyZCAoNS03IGRheXMpIixrZXk6InN0YW5kYXJkIixwYXlsb2FkOntkYXlzOjcscHJpY2U6MH19LHtvcHRpb246IkV4cHJlc3MgKDItMyBkYXlzKSIsa2V5OiJleHByZXNzIixwYXlsb2FkOntkYXlzOjMscHJpY2U6MTB9fSx7b3B0aW9uOiJPdmVybmlnaHQiLGtleToib3Zlcm5pZ2h0IixwYXlsb2FkOntkYXlzOjEscHJpY2U6MjV9fV19CiAgICAgICAgICAgIC5zZWxlY3RlZE9wdGlvbj0keyJzdGFuZGFyZCJ9CiAgICAgICAgICAgIC5rZXk9JHsic2hpcHBpbmcifQogICAgICAgICAgPjwvZGVlcy1pbnB1dC1yYWRpb2dyb3VwPgogICAgICAgICAgCiAgICAgICAgICA8ZGVlcy1mb3JtLXN1Ym1pdCAudGV4dD0keyJTdWJtaXQgUHJvZHVjdCJ9PjwvZGVlcy1mb3JtLXN1Ym1pdD4KICAgICAgICA8L2RlZXMtZm9ybT4KICAgICAgPC9kZWVzLXBhbmVsPgogICAgPC9kaXY+CiAgPC9kZWVzLWRlbW93cmFwcGVyPgpgfSk7dmFyIHViLGJjLCROLElOPXAoKCk9Pnt4ZSgpO00xKCk7UnNyKCk7SmUoKTt1Yj1mdW5jdGlvbihlLHQscixpLGEsbil7ZnVuY3Rpb24gbyh5KXtpZih5IT09dm9pZCAwJiZ0eXBlb2YgeSE9ImZ1bmN0aW9uIil0aHJvdyBuZXcgVHlwZUVycm9yKCJGdW5jdGlvbiBleHBlY3RlZCIpO3JldHVybiB5fWZvcih2YXIgcz1pLmtpbmQsbD1zPT09ImdldHRlciI/ImdldCI6cz09PSJzZXR0ZXIiPyJzZXQiOiJ2YWx1ZSIsYz0hdCYmZT9pLnN0YXRpYz9lOmUucHJvdG90eXBlOm51bGwsdT10fHwoYz9PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGMsaS5uYW1lKTp7fSksZCxoPSExLGY9ci5sZW5ndGgtMTtmPj0wO2YtLSl7dmFyIHg9e307Zm9yKHZhciB2IGluIGkpeFt2XT12PT09ImFjY2VzcyI/e306aVt2XTtmb3IodmFyIHYgaW4gaS5hY2Nlc3MpeC5hY2Nlc3Nbdl09aS5hY2Nlc3Nbdl07eC5hZGRJbml0aWFsaXplcj1mdW5jdGlvbih5KXtpZihoKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBhZGQgaW5pdGlhbGl6ZXJzIGFmdGVyIGRlY29yYXRpb24gaGFzIGNvbXBsZXRlZCIpO24ucHVzaChvKHl8fG51bGwpKX07dmFyIGI9KDAscltmXSkocz09PSJhY2Nlc3NvciI/e2dldDp1LmdldCxzZXQ6dS5zZXR9OnVbbF0seCk7aWYocz09PSJhY2Nlc3NvciIpe2lmKGI9PT12b2lkIDApY29udGludWU7aWYoYj09PW51bGx8fHR5cGVvZiBiIT0ib2JqZWN0Iil0aHJvdyBuZXcgVHlwZUVycm9yKCJPYmplY3QgZXhwZWN0ZWQiKTsoZD1vKGIuZ2V0KSkmJih1LmdldD1kKSwoZD1vKGIuc2V0KSkmJih1LnNldD1kKSwoZD1vKGIuaW5pdCkpJiZhLnVuc2hpZnQoZCl9ZWxzZShkPW8oYikpJiYocz09PSJmaWVsZCI/YS51bnNoaWZ0KGQpOnVbbF09ZCl9YyYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGMsaS5uYW1lLHUpLGg9ITB9LGJjPWZ1bmN0aW9uKGUsdCxyKXtmb3IodmFyIGk9YXJndW1lbnRzLmxlbmd0aD4yLGE9MDthPHQubGVuZ3RoO2ErKylyPWk/dFthXS5jYWxsKGUscik6dFthXS5jYWxsKGUpO3JldHVybiBpP3I6dm9pZCAwfSwkTj0oKCk9PntsZXQgZT1beWUoImRlZXMtaW5wdXQtcmFkaW9ncm91cCIpXSx0LHI9W10saSxhPW90LG4sbz1bXSxzPVtdLGwsYz1bXSx1PVtdLGQsaD1bXSxmPVtdLHgsdj1bXSxiPVtdO3ZhciB5PWNsYXNzIGV4dGVuZHMgYXtzdGF0aWN7aT10aGlzfXN0YXRpY3tsZXQgdz10eXBlb2YgU3ltYm9sPT0iZnVuY3Rpb24iJiZTeW1ib2wubWV0YWRhdGE/T2JqZWN0LmNyZWF0ZShhW1N5bWJvbC5tZXRhZGF0YV0/P251bGwpOnZvaWQgMDtuPVtqKHt0eXBlOkFycmF5fSldLGw9W2ooKV0sZD1baih7dHlwZTpTdHJpbmd9KV0seD1baih7dHlwZTpTdHJpbmcscmVmbGVjdDohMH0pXSx1Yih0aGlzLG51bGwsbix7a2luZDoiYWNjZXNzb3IiLG5hbWU6Im9wdGlvbnMiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOms9PiJvcHRpb25zImluIGssZ2V0Oms9Pmsub3B0aW9ucyxzZXQ6KGssTyk9PntrLm9wdGlvbnM9T319LG1ldGFkYXRhOnd9LG8scyksdWIodGhpcyxudWxsLGwse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJzZWxlY3RlZE9wdGlvbiIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6az0+InNlbGVjdGVkT3B0aW9uImluIGssZ2V0Oms9Pmsuc2VsZWN0ZWRPcHRpb24sc2V0OihrLE8pPT57ay5zZWxlY3RlZE9wdGlvbj1PfX0sbWV0YWRhdGE6d30sYyx1KSx1Yih0aGlzLG51bGwsZCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImRpcmVjdGlvbiIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6az0+ImRpcmVjdGlvbiJpbiBrLGdldDprPT5rLmRpcmVjdGlvbixzZXQ6KGssTyk9PntrLmRpcmVjdGlvbj1PfX0sbWV0YWRhdGE6d30saCxmKSx1Yih0aGlzLG51bGwseCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InZhbGlkYXRpb25TdGF0ZSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6az0+InZhbGlkYXRpb25TdGF0ZSJpbiBrLGdldDprPT5rLnZhbGlkYXRpb25TdGF0ZSxzZXQ6KGssTyk9PntrLnZhbGlkYXRpb25TdGF0ZT1PfX0sbWV0YWRhdGE6d30sdixiKSx1YihudWxsLHQ9e3ZhbHVlOml9LGUse2tpbmQ6ImNsYXNzIixuYW1lOmkubmFtZSxtZXRhZGF0YTp3fSxudWxsLHIpLHk9aT10LnZhbHVlLHcmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShpLFN5bWJvbC5tZXRhZGF0YSx7ZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITAsdmFsdWU6d30pfXN0YXRpYyBkZW1vPU9zcjtzdGF0aWMgZGVtb0dyb3Vwcz1bIklucHV0Il07I2U9YmModGhpcyxvLFtdKTtnZXQgb3B0aW9ucygpe3JldHVybiB0aGlzLiNlfXNldCBvcHRpb25zKHcpe3RoaXMuI2U9d30jdD0oYmModGhpcyxzKSxiYyh0aGlzLGMsIiIpKTtnZXQgc2VsZWN0ZWRPcHRpb24oKXtyZXR1cm4gdGhpcy4jdH1zZXQgc2VsZWN0ZWRPcHRpb24odyl7dGhpcy4jdD13fSNyPShiYyh0aGlzLHUpLGJjKHRoaXMsaCwidmVydGljYWwiKSk7Z2V0IGRpcmVjdGlvbigpe3JldHVybiB0aGlzLiNyfXNldCBkaXJlY3Rpb24odyl7dGhpcy4jcj13fSNpPShiYyh0aGlzLGYpLGJjKHRoaXMsdixudWxsKSk7Z2V0IHZhbGlkYXRpb25TdGF0ZSgpe3JldHVybiB0aGlzLiNpfXNldCB2YWxpZGF0aW9uU3RhdGUodyl7dGhpcy4jaT13fWdldCB2YWx1ZSgpe2xldCB3PXRoaXMuZ2V0T3B0aW9uQnlLZXkodGhpcy5zZWxlY3RlZE9wdGlvbik7cmV0dXJuIHR5cGVvZiB3PT0ib2JqZWN0IiYmdy5wYXlsb2FkIT09dm9pZCAwP3cucGF5bG9hZDp0aGlzLnNlbGVjdGVkT3B0aW9ufXNldCB2YWx1ZSh3KXtpZih0eXBlb2Ygdz09InN0cmluZyIpdGhpcy5zZWxlY3RlZE9wdGlvbj13O2Vsc2V7bGV0IGs9dGhpcy5vcHRpb25zLmZpbmQoTz0+dHlwZW9mIE89PSJvYmplY3QiJiZPLnBheWxvYWQ9PT13KTtrJiZ0eXBlb2Ygaz09Im9iamVjdCImJih0aGlzLnNlbGVjdGVkT3B0aW9uPWsua2V5KX19c3RhdGljIHN0eWxlcz1bRGUsLi4ub3QuYmFzZVN0eWxlcyxtLmRlZmF1bHRTdHlsZXMsb2VgCiAgICAgIC8qIFRPRE86IE1pZ3JhdGUgaGFyZGNvZGVkIHZhbHVlcyB0byAtLWRlZXMtKiBDU1MgdmFyaWFibGVzICovCiAgICAgICogewogICAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7CiAgICAgIH0KCiAgICAgIDpob3N0IHsKICAgICAgICBkaXNwbGF5OiBibG9jazsKICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgICAgZm9udC1mYW1pbHk6IC1hcHBsZS1zeXN0ZW0sIEJsaW5rTWFjU3lzdGVtRm9udCwgJ1NlZ29lIFVJJywgJ1JvYm90bycsIHNhbnMtc2VyaWY7CiAgICAgIH0KCiAgICAgIC5tYWluY29udGFpbmVyIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgICAgZ2FwOiAxMHB4OwogICAgICB9CgogICAgICAubWFpbmNvbnRhaW5lci5ob3Jpem9udGFsIHsKICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93OwogICAgICAgIGZsZXgtd3JhcDogd3JhcDsKICAgICAgICBnYXA6IDIwcHg7CiAgICAgIH0KCiAgICAgIC5yYWRpby1vcHRpb24gewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBnYXA6IDEwcHg7CiAgICAgICAgcGFkZGluZzogNnB4IDA7CiAgICAgICAgY3Vyc29yOiBwb2ludGVyOwogICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjJzIGN1YmljLWJlemllcigwLjQsIDAsIDAuMiwgMSk7CiAgICAgICAgdXNlci1zZWxlY3Q6IG5vbmU7CiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICAgIGJvcmRlci1yYWRpdXM6IDRweDsKICAgICAgfQoKICAgICAgLm1haW5jb250YWluZXIuaG9yaXpvbnRhbCAucmFkaW8tb3B0aW9uIHsKICAgICAgICBwYWRkaW5nOiA2cHggMjBweCA2cHggMDsKICAgICAgfQoKICAgICAgLnJhZGlvLW9wdGlvbjpob3ZlciAucmFkaW8tY2lyY2xlIHsKICAgICAgICBib3JkZXItY29sb3I6ICR7bS5iZFRoZW1lKCJoc2woMjE1IDIwLjIlIDY1LjElKSIsImhzbCgyMTUgMjAuMiUgMzUuMSUpIil9OwogICAgICAgIGJhY2tncm91bmQ6ICR7bS5iZFRoZW1lKCJoc2woMjEwIDQwJSA5Ni4xJSkiLCJoc2woMjE1IDIwLjIlIDExLjglKSIpfTsKICAgICAgfQoKICAgICAgLnJhZGlvLW9wdGlvbjpob3ZlciAucmFkaW8tbGFiZWwgewogICAgICAgIGNvbG9yOiAke20uYmRUaGVtZSgiaHNsKDIxNS4zIDI1JSA4LjglKSIsImhzbCgyMTAgNDAlIDk4JSkiKX07CiAgICAgIH0KCiAgICAgIC5yYWRpby1jaXJjbGUgewogICAgICAgIHdpZHRoOiAyMHB4OwogICAgICAgIGhlaWdodDogMjBweDsKICAgICAgICBib3JkZXItcmFkaXVzOiA1MCU7CiAgICAgICAgYm9yZGVyOiAycHggc29saWQgJHttLmJkVGhlbWUoImhzbCgyMTUgMjAuMiUgNjUuMSUpIiwiaHNsKDIxNSAyMC4yJSAzNS4xJSkiKX07CiAgICAgICAgYmFja2dyb3VuZDogJHttLmJkVGhlbWUoImhzbCgwIDAlIDEwMCUpIiwiaHNsKDIxNSAzMCUgNi44JSkiKX07CiAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuMnMgY3ViaWMtYmV6aWVyKDAuNCwgMCwgMC4yLCAxKTsKICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgICAgZmxleC1zaHJpbms6IDA7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOwogICAgICB9CgogICAgICAucmFkaW8tb3B0aW9uLnNlbGVjdGVkIC5yYWRpby1jaXJjbGUgewogICAgICAgIGJvcmRlci1jb2xvcjogJHttLmJkVGhlbWUoImhzbCgyMTcuMiA5MS4yJSA1OS44JSkiLCJoc2woMjEzLjEgOTMuOSUgNjcuOCUpIil9OwogICAgICAgIGJhY2tncm91bmQ6ICR7bS5iZFRoZW1lKCJoc2woMjE3LjIgOTEuMiUgNTkuOCUpIiwiaHNsKDIxMy4xIDkzLjklIDY3LjglKSIpfTsKICAgICAgfQoKICAgICAgLnJhZGlvLW9wdGlvbi5zZWxlY3RlZCAucmFkaW8tY2lyY2xlOjphZnRlciB7CiAgICAgICAgY29udGVudDogJyc7CiAgICAgICAgcG9zaXRpb246IGFic29sdXRlOwogICAgICAgIHdpZHRoOiA4cHg7CiAgICAgICAgaGVpZ2h0OiA4cHg7CiAgICAgICAgYm9yZGVyLXJhZGl1czogNTAlOwogICAgICAgIGJhY2tncm91bmQ6ICR7bS5iZFRoZW1lKCJoc2woMCAwJSAxMDAlKSIsImhzbCgyMTUgMzAlIDYuOCUpIil9OwogICAgICAgIHRyYW5zZm9ybTogc2NhbGUoMCk7CiAgICAgICAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDAuMnMgY3ViaWMtYmV6aWVyKDAuNCwgMCwgMC4yLCAxKTsKICAgICAgfQoKICAgICAgLnJhZGlvLW9wdGlvbi5zZWxlY3RlZCAucmFkaW8tY2lyY2xlOjphZnRlciB7CiAgICAgICAgdHJhbnNmb3JtOiBzY2FsZSgxKTsKICAgICAgfQoKICAgICAgLnJhZGlvLWNpcmNsZTpmb2N1cy12aXNpYmxlIHsKICAgICAgICBvdXRsaW5lOiBub25lOwogICAgICAgIGJveC1zaGFkb3c6IDAgMCAwIDJweCAke20uYmRUaGVtZSgiaHNsKDAgMCUgMTAwJSkiLCJoc2woMjE1IDMwJSAzLjklKSIpfSwKICAgICAgICAgICAgICAgICAgICAwIDAgMCA0cHggJHttLmJkVGhlbWUoImhzbCgyMTcuMiA5MS4yJSA1OS44JSkiLCJoc2woMjEzLjEgOTMuOSUgNjcuOCUpIil9OwogICAgICB9CgogICAgICAucmFkaW8tbGFiZWwgewogICAgICAgIGZvbnQtc2l6ZTogMTRweDsKICAgICAgICBmb250LXdlaWdodDogNTAwOwogICAgICAgIGNvbG9yOiAke20uYmRUaGVtZSgiaHNsKDIxNS4zIDI1JSAyNi43JSkiLCJoc2woMjE3LjkgMTAuNiUgNzQuOSUpIil9OwogICAgICAgIHRyYW5zaXRpb246IGNvbG9yIDAuMnMgY3ViaWMtYmV6aWVyKDAuNCwgMCwgMC4yLCAxKTsKICAgICAgICBsZXR0ZXItc3BhY2luZzogLTAuMDA2ZW07CiAgICAgICAgbGluZS1oZWlnaHQ6IDIwcHg7CiAgICAgIH0KCiAgICAgIC5yYWRpby1vcHRpb24uc2VsZWN0ZWQgLnJhZGlvLWxhYmVsIHsKICAgICAgICBjb2xvcjogJHttLmJkVGhlbWUoImhzbCgyMTUuMyAyNSUgOC44JSkiLCJoc2woMjEwIDQwJSA5OCUpIil9OwogICAgICB9CgogICAgICA6aG9zdChbZGlzYWJsZWRdKSAucmFkaW8tb3B0aW9uIHsKICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkOwogICAgICAgIG9wYWNpdHk6IDAuNTsKICAgICAgfQoKICAgICAgOmhvc3QoW2Rpc2FibGVkXSkgLnJhZGlvLW9wdGlvbjpob3ZlciAucmFkaW8tY2lyY2xlIHsKICAgICAgICBib3JkZXItY29sb3I6ICR7bS5iZFRoZW1lKCJoc2woMjE1IDIwLjIlIDY1LjElKSIsImhzbCgyMTUgMjAuMiUgMzUuMSUpIil9OwogICAgICAgIGJhY2tncm91bmQ6ICR7bS5iZFRoZW1lKCJoc2woMCAwJSAxMDAlKSIsImhzbCgyMTUgMzAlIDYuOCUpIil9OwogICAgICB9CgogICAgICA6aG9zdChbZGlzYWJsZWRdKSAucmFkaW8tb3B0aW9uOmhvdmVyIC5yYWRpby1sYWJlbCB7CiAgICAgICAgY29sb3I6ICR7bS5iZFRoZW1lKCJoc2woMjE1LjMgMjUlIDI2LjclKSIsImhzbCgyMTcuOSAxMC42JSA3NC45JSkiKX07CiAgICAgIH0KCiAgICAgIC5sYWJlbC10ZXh0IHsKICAgICAgICBmb250LXNpemU6IDE0cHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDsKICAgICAgICBjb2xvcjogJHttLmJkVGhlbWUoImhzbCgyMTUuMyAyNSUgOC44JSkiLCJoc2woMjEwIDQwJSA5OCUpIil9OwogICAgICAgIG1hcmdpbi1ib3R0b206IDEwcHg7CiAgICAgICAgbGV0dGVyLXNwYWNpbmc6IC0wLjAwNmVtOwogICAgICAgIGxpbmUtaGVpZ2h0OiAyMHB4OwogICAgICB9CgogICAgICAuZGVzY3JpcHRpb24tdGV4dCB7CiAgICAgICAgZm9udC1zaXplOiAxM3B4OwogICAgICAgIGNvbG9yOiAke20uYmRUaGVtZSgiaHNsKDIxNS40IDE2LjMlIDU2LjklKSIsImhzbCgyMTUgMjAuMiUgNTUuMSUpIil9OwogICAgICAgIG1hcmdpbi10b3A6IDEwcHg7CiAgICAgICAgbGluZS1oZWlnaHQ6IDEuNTsKICAgICAgICBsZXR0ZXItc3BhY2luZzogLTAuMDAzZW07CiAgICAgIH0KCiAgICAgIC8qIFZhbGlkYXRpb24gc3R5bGVzICovCiAgICAgIDpob3N0KFt2YWxpZGF0aW9uU3RhdGU9ImludmFsaWQiXSkgLnJhZGlvLWNpcmNsZSB7CiAgICAgICAgYm9yZGVyLWNvbG9yOiAke20uYmRUaGVtZSgiaHNsKDAgNzIuMiUgNTAuNiUpIiwiaHNsKDAgNjIuOCUgMzAuNiUpIil9OwogICAgICB9CgogICAgICA6aG9zdChbdmFsaWRhdGlvblN0YXRlPSJpbnZhbGlkIl0pIC5yYWRpby1vcHRpb24uc2VsZWN0ZWQgLnJhZGlvLWNpcmNsZSB7CiAgICAgICAgYm9yZGVyLWNvbG9yOiAke20uYmRUaGVtZSgiaHNsKDAgNzIuMiUgNTAuNiUpIiwiaHNsKDAgNjIuOCUgMzAuNiUpIil9OwogICAgICAgIGJhY2tncm91bmQ6ICR7bS5iZFRoZW1lKCJoc2woMCA3Mi4yJSA1MC42JSkiLCJoc2woMCA2Mi44JSAzMC42JSkiKX07CiAgICAgIH0KCiAgICAgIDpob3N0KFt2YWxpZGF0aW9uU3RhdGU9InZhbGlkIl0pIC5yYWRpby1vcHRpb24uc2VsZWN0ZWQgLnJhZGlvLWNpcmNsZSB7CiAgICAgICAgYm9yZGVyLWNvbG9yOiAke20uYmRUaGVtZSgiaHNsKDE0Mi4xIDcwLjYlIDQ1LjMlKSIsImhzbCgxNDIuMSA3Ni4yJSAzNi4zJSkiKX07CiAgICAgICAgYmFja2dyb3VuZDogJHttLmJkVGhlbWUoImhzbCgxNDIuMSA3MC42JSA0NS4zJSkiLCJoc2woMTQyLjEgNzYuMiUgMzYuMyUpIil9OwogICAgICB9CgogICAgICA6aG9zdChbdmFsaWRhdGlvblN0YXRlPSJ3YXJuIl0pIC5yYWRpby1vcHRpb24uc2VsZWN0ZWQgLnJhZGlvLWNpcmNsZSB7CiAgICAgICAgYm9yZGVyLWNvbG9yOiAke20uYmRUaGVtZSgiaHNsKDQ1LjQgOTMuNCUgNDcuNSUpIiwiaHNsKDQ1LjQgOTMuNCUgNDcuNSUpIil9OwogICAgICAgIGJhY2tncm91bmQ6ICR7bS5iZFRoZW1lKCJoc2woNDUuNCA5My40JSA0Ny41JSkiLCJoc2woNDUuNCA5My40JSA0Ny41JSkiKX07CiAgICAgIH0KCiAgICAgIC8qIE92ZXJyaWRlIGJhc2UgZ3JpZCBsYXlvdXQgZm9yIHJhZGlvZ3JvdXAgdG8gcHJldmVudCBsYXJnZSBnYXBzICovCiAgICAgIDpob3N0KFtsYWJlbC1wb3NpdGlvbj0ibGVmdCJdKSAuaW5wdXQtd3JhcHBlciB7CiAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiBhdXRvIGF1dG87CiAgICAgIH0KCiAgICAgIDpob3N0KFtsYWJlbC1wb3NpdGlvbj0icmlnaHQiXSkgLmlucHV0LXdyYXBwZXIgewogICAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogYXV0byBhdXRvOwogICAgICB9CiAgICBgXTtyZW5kZXIoKXtyZXR1cm4gQ2AKICAgICAgPGRpdiBjbGFzcz0iaW5wdXQtd3JhcHBlciI+CiAgICAgICAgJHt0aGlzLmxhYmVsP0NgPGRpdiBjbGFzcz0ibGFiZWwtdGV4dCI+JHt0aGlzLmxhYmVsfTwvZGl2PmA6IiJ9CiAgICAgICAgPGRpdiBjbGFzcz0ibWFpbmNvbnRhaW5lciAke3RoaXMuZGlyZWN0aW9ufSI+CiAgICAgICAgICAke3RoaXMub3B0aW9ucy5tYXAodz0+e2xldCBrPXRoaXMuZ2V0T3B0aW9uS2V5KHcpLE89dGhpcy5nZXRPcHRpb25MYWJlbCh3KSx6PXRoaXMuc2VsZWN0ZWRPcHRpb249PT1rO3JldHVybiBDYAogICAgICAgICAgICAgIDxkaXYgCiAgICAgICAgICAgICAgICBjbGFzcz0icmFkaW8tb3B0aW9uICR7ej8ic2VsZWN0ZWQiOiIifSIKICAgICAgICAgICAgICAgIEBjbGljaz0iJHsoKT0+dGhpcy5zZWxlY3RPcHRpb24oayl9IgogICAgICAgICAgICAgICAgQGtleWRvd249IiR7TT0+dGhpcy5oYW5kbGVLZXlkb3duKE0sayl9IgogICAgICAgICAgICAgID4KICAgICAgICAgICAgICAgIDxkaXYgCiAgICAgICAgICAgICAgICAgIGNsYXNzPSJyYWRpby1jaXJjbGUiIAogICAgICAgICAgICAgICAgICB0YWJpbmRleD0iJHt0aGlzLmRpc2FibGVkPyItMSI6IjAifSIKICAgICAgICAgICAgICAgICAgcm9sZT0icmFkaW8iCiAgICAgICAgICAgICAgICAgIGFyaWEtY2hlY2tlZD0iJHt6fSIKICAgICAgICAgICAgICAgICAgYXJpYS1sYWJlbD0iJHtPfSIKICAgICAgICAgICAgICAgID48L2Rpdj4KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InJhZGlvLWxhYmVsIj4ke099PC9kaXY+CiAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIGB9KX0KICAgICAgICA8L2Rpdj4KICAgICAgICAke3RoaXMuZGVzY3JpcHRpb24/Q2A8ZGl2IGNsYXNzPSJkZXNjcmlwdGlvbi10ZXh0Ij4ke3RoaXMuZGVzY3JpcHRpb259PC9kaXY+YDoiIn0KICAgICAgPC9kaXY+CiAgICBgfWdldE9wdGlvbktleSh3KXtyZXR1cm4gdHlwZW9mIHc9PSJzdHJpbmciP3c6dy5rZXl9Z2V0T3B0aW9uTGFiZWwodyl7cmV0dXJuIHR5cGVvZiB3PT0ic3RyaW5nIj93Oncub3B0aW9ufWdldE9wdGlvbkJ5S2V5KHcpe3JldHVybiB0aGlzLm9wdGlvbnMuZmluZChrPT50aGlzLmdldE9wdGlvbktleShrKT09PXcpfXNlbGVjdE9wdGlvbih3KXtpZih0aGlzLmRpc2FibGVkKXJldHVybjtsZXQgaz10aGlzLnNlbGVjdGVkT3B0aW9uO3RoaXMuc2VsZWN0ZWRPcHRpb249dyxrIT09dyYmKHRoaXMuZGlzcGF0Y2hFdmVudChuZXcgQ3VzdG9tRXZlbnQoImNoYW5nZSIse2RldGFpbDp7dmFsdWU6dGhpcy52YWx1ZX0sYnViYmxlczohMCxjb21wb3NlZDohMH0pKSx0aGlzLmRpc3BhdGNoRXZlbnQobmV3IEN1c3RvbUV2ZW50KCJpbnB1dCIse2RldGFpbDp7dmFsdWU6dGhpcy52YWx1ZX0sYnViYmxlczohMCxjb21wb3NlZDohMH0pKSx0aGlzLmNoYW5nZVN1YmplY3QubmV4dCh0aGlzKSl9Z2V0VmFsdWUoKXtyZXR1cm4gdGhpcy52YWx1ZX1zZXRWYWx1ZSh3KXt0aGlzLnZhbHVlPXd9YXN5bmMgdmFsaWRhdGUoKXtyZXR1cm4gdGhpcy5yZXF1aXJlZCYmIXRoaXMuc2VsZWN0ZWRPcHRpb24/KHRoaXMudmFsaWRhdGlvblN0YXRlPSJpbnZhbGlkIiwhMSk6KHRoaXMudmFsaWRhdGlvblN0YXRlPSJ2YWxpZCIsITApfWFzeW5jIGZpcnN0VXBkYXRlZCgpe2lmKCF0aGlzLnNlbGVjdGVkT3B0aW9uJiZ0aGlzLm9wdGlvbnMubGVuZ3RoPjAmJiF0aGlzLnJlcXVpcmVkKXtsZXQgdz10aGlzLm9wdGlvbnNbMF07dGhpcy5zZWxlY3RlZE9wdGlvbj10aGlzLmdldE9wdGlvbktleSh3KX19aGFuZGxlS2V5ZG93bih3LGspe3RoaXMuZGlzYWJsZWR8fCh3LmtleT09PSIgInx8dy5rZXk9PT0iRW50ZXIiPyh3LnByZXZlbnREZWZhdWx0KCksdGhpcy5zZWxlY3RPcHRpb24oaykpOncua2V5PT09IkFycm93RG93biJ8fHcua2V5PT09IkFycm93UmlnaHQiPyh3LnByZXZlbnREZWZhdWx0KCksdGhpcy5mb2N1c05leHRPcHRpb24oKSk6KHcua2V5PT09IkFycm93VXAifHx3LmtleT09PSJBcnJvd0xlZnQiKSYmKHcucHJldmVudERlZmF1bHQoKSx0aGlzLmZvY3VzUHJldmlvdXNPcHRpb24oKSkpfWZvY3VzTmV4dE9wdGlvbigpe2xldCB3PUFycmF5LmZyb20odGhpcy5zaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3JBbGwoIi5yYWRpby1jaXJjbGUiKSksTz0ody5maW5kSW5kZXgoej0+ej09PXRoaXMuc2hhZG93Um9vdC5hY3RpdmVFbGVtZW50KSsxKSV3Lmxlbmd0aDt3W09dLmZvY3VzKCl9Zm9jdXNQcmV2aW91c09wdGlvbigpe2xldCB3PUFycmF5LmZyb20odGhpcy5zaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3JBbGwoIi5yYWRpby1jaXJjbGUiKSksaz13LmZpbmRJbmRleCh6PT56PT09dGhpcy5zaGFkb3dSb290LmFjdGl2ZUVsZW1lbnQpLE89azw9MD93Lmxlbmd0aC0xOmstMTt3W09dLmZvY3VzKCl9Y29uc3RydWN0b3IoKXtzdXBlciguLi5hcmd1bWVudHMpLGJjKHRoaXMsYil9c3RhdGlje2JjKGkscil9fTtyZXR1cm4geT1pfSkoKX0pO3ZhciBCc3IsSHNyPXAoKCk9Pnt4ZSgpO0Jzcj0oKT0+Q2AKICA8c3R5bGU+CiAgICAuZGVtby1jb250YWluZXIgewogICAgICBkaXNwbGF5OiBmbGV4OwogICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICBnYXA6IDI0cHg7CiAgICAgIHBhZGRpbmc6IDI0cHg7CiAgICB9CiAgICAuZGVtby1zZWN0aW9uIHsKICAgICAgZGlzcGxheTogZmxleDsKICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgZ2FwOiAxMnB4OwogICAgfQogICAgLmRlbW8tc2VjdGlvbiBoMyB7CiAgICAgIG1hcmdpbjogMCAwIDhweCAwOwogICAgICBmb250LXNpemU6IDE0cHg7CiAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7CiAgICAgIGNvbG9yOiAjODg4OwogICAgfQogICAgLmRlbW8tcm93IHsKICAgICAgZGlzcGxheTogZmxleDsKICAgICAgZ2FwOiAxMnB4OwogICAgICBmbGV4LXdyYXA6IHdyYXA7CiAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICB9CiAgPC9zdHlsZT4KICA8ZGl2IGNsYXNzPSJkZW1vLWNvbnRhaW5lciI+CiAgICA8ZGl2IGNsYXNzPSJkZW1vLXNlY3Rpb24iPgogICAgICA8aDM+QmFzaWMgVXNhZ2U8L2gzPgogICAgICA8ZGl2IGNsYXNzPSJkZW1vLXJvdyI+CiAgICAgICAgPGRlZXMtZm9ybS1zdWJtaXQ+U3VibWl0IEZvcm08L2RlZXMtZm9ybS1zdWJtaXQ+CiAgICAgICAgPGRlZXMtZm9ybS1zdWJtaXQgdGV4dD0iV2l0aCBUZXh0IFByb3BlcnR5Ij48L2RlZXMtZm9ybS1zdWJtaXQ+CiAgICAgIDwvZGl2PgogICAgPC9kaXY+CgogICAgPGRpdiBjbGFzcz0iZGVtby1zZWN0aW9uIj4KICAgICAgPGgzPldpdGggSWNvbnMgKGluaGVyaXRlZCBmcm9tIERlZXNCdXR0b24pPC9oMz4KICAgICAgPGRpdiBjbGFzcz0iZGVtby1yb3ciPgogICAgICAgIDxkZWVzLWZvcm0tc3VibWl0IGljb249Imx1Y2lkZTpzZW5kIj5TdWJtaXQ8L2RlZXMtZm9ybS1zdWJtaXQ+CiAgICAgICAgPGRlZXMtZm9ybS1zdWJtaXQgaWNvbj0ibHVjaWRlOnNhdmUiIGljb25Qb3NpdGlvbj0ibGVmdCI+U2F2ZSBGb3JtPC9kZWVzLWZvcm0tc3VibWl0PgogICAgICAgIDxkZWVzLWZvcm0tc3VibWl0IGljb249Imx1Y2lkZTphcnJvdy1yaWdodCIgaWNvblBvc2l0aW9uPSJyaWdodCI+Q29udGludWU8L2RlZXMtZm9ybS1zdWJtaXQ+CiAgICAgIDwvZGl2PgogICAgPC9kaXY+CgogICAgPGRpdiBjbGFzcz0iZGVtby1zZWN0aW9uIj4KICAgICAgPGgzPkJ1dHRvbiBUeXBlczwvaDM+CiAgICAgIDxkaXYgY2xhc3M9ImRlbW8tcm93Ij4KICAgICAgICA8ZGVlcy1mb3JtLXN1Ym1pdCB0eXBlPSJoaWdobGlnaHRlZCIgaWNvbj0ibHVjaWRlOnNlbmQiPkhpZ2hsaWdodGVkPC9kZWVzLWZvcm0tc3VibWl0PgogICAgICAgIDxkZWVzLWZvcm0tc3VibWl0IHR5cGU9Im5vcm1hbCIgaWNvbj0ibHVjaWRlOnNlbmQiPk5vcm1hbDwvZGVlcy1mb3JtLXN1Ym1pdD4KICAgICAgICA8ZGVlcy1mb3JtLXN1Ym1pdCB0eXBlPSJkaXNjcmVldCIgaWNvbj0ibHVjaWRlOnNlbmQiPkRpc2NyZWV0PC9kZWVzLWZvcm0tc3VibWl0PgogICAgICA8L2Rpdj4KICAgIDwvZGl2PgoKICAgIDxkaXYgY2xhc3M9ImRlbW8tc2VjdGlvbiI+CiAgICAgIDxoMz5TaXplczwvaDM+CiAgICAgIDxkaXYgY2xhc3M9ImRlbW8tcm93Ij4KICAgICAgICA8ZGVlcy1mb3JtLXN1Ym1pdCBzaXplPSJzbWFsbCIgaWNvbj0ibHVjaWRlOnNlbmQiPlNtYWxsPC9kZWVzLWZvcm0tc3VibWl0PgogICAgICAgIDxkZWVzLWZvcm0tc3VibWl0IHNpemU9Im5vcm1hbCIgaWNvbj0ibHVjaWRlOnNlbmQiPk5vcm1hbDwvZGVlcy1mb3JtLXN1Ym1pdD4KICAgICAgICA8ZGVlcy1mb3JtLXN1Ym1pdCBzaXplPSJsYXJnZSIgaWNvbj0ibHVjaWRlOnNlbmQiPkxhcmdlPC9kZWVzLWZvcm0tc3VibWl0PgogICAgICA8L2Rpdj4KICAgIDwvZGl2PgoKICAgIDxkaXYgY2xhc3M9ImRlbW8tc2VjdGlvbiI+CiAgICAgIDxoMz5TdGF0ZXM8L2gzPgogICAgICA8ZGl2IGNsYXNzPSJkZW1vLXJvdyI+CiAgICAgICAgPGRlZXMtZm9ybS1zdWJtaXQgc3RhdHVzPSJub3JtYWwiIGljb249Imx1Y2lkZTpzZW5kIj5Ob3JtYWw8L2RlZXMtZm9ybS1zdWJtaXQ+CiAgICAgICAgPGRlZXMtZm9ybS1zdWJtaXQgc3RhdHVzPSJwZW5kaW5nIiBpY29uPSJsdWNpZGU6c2VuZCI+UGVuZGluZzwvZGVlcy1mb3JtLXN1Ym1pdD4KICAgICAgICA8ZGVlcy1mb3JtLXN1Ym1pdCBzdGF0dXM9InN1Y2Nlc3MiIGljb249Imx1Y2lkZTpjaGVjayI+U3VjY2VzczwvZGVlcy1mb3JtLXN1Ym1pdD4KICAgICAgICA8ZGVlcy1mb3JtLXN1Ym1pdCBzdGF0dXM9ImVycm9yIiBpY29uPSJsdWNpZGU6eCI+RXJyb3I8L2RlZXMtZm9ybS1zdWJtaXQ+CiAgICAgICAgPGRlZXMtZm9ybS1zdWJtaXQgZGlzYWJsZWQgaWNvbj0ibHVjaWRlOnNlbmQiPkRpc2FibGVkPC9kZWVzLWZvcm0tc3VibWl0PgogICAgICA8L2Rpdj4KICAgIDwvZGl2PgoKICAgIDxkaXYgY2xhc3M9ImRlbW8tc2VjdGlvbiI+CiAgICAgIDxoMz5JbiBhIEZvcm0gQ29udGV4dDwvaDM+CiAgICAgIDxkZWVzLWZvcm0+CiAgICAgICAgPGRlZXMtaW5wdXQtdGV4dCBsYWJlbD0iTmFtZSIga2V5PSJuYW1lIj48L2RlZXMtaW5wdXQtdGV4dD4KICAgICAgICA8ZGVlcy1pbnB1dC10ZXh0IGxhYmVsPSJFbWFpbCIga2V5PSJlbWFpbCI+PC9kZWVzLWlucHV0LXRleHQ+CiAgICAgICAgPGRlZXMtZm9ybS1zdWJtaXQgaWNvbj0ibHVjaWRlOnNlbmQiIHR5cGU9ImhpZ2hsaWdodGVkIj5TdWJtaXQgRm9ybTwvZGVlcy1mb3JtLXN1Ym1pdD4KICAgICAgPC9kZWVzLWZvcm0+CiAgICA8L2Rpdj4KICA8L2Rpdj4KYH0pO3ZhciBGNCxLYSxQTixPZD1wKCgpPT57SHNyKCk7eGUoKTtKZSgpO0Y0PWZ1bmN0aW9uKGUsdCxyLGksYSxuKXtmdW5jdGlvbiBvKHkpe2lmKHkhPT12b2lkIDAmJnR5cGVvZiB5IT0iZnVuY3Rpb24iKXRocm93IG5ldyBUeXBlRXJyb3IoIkZ1bmN0aW9uIGV4cGVjdGVkIik7cmV0dXJuIHl9Zm9yKHZhciBzPWkua2luZCxsPXM9PT0iZ2V0dGVyIj8iZ2V0IjpzPT09InNldHRlciI/InNldCI6InZhbHVlIixjPSF0JiZlP2kuc3RhdGljP2U6ZS5wcm90b3R5cGU6bnVsbCx1PXR8fChjP09iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoYyxpLm5hbWUpOnt9KSxkLGg9ITEsZj1yLmxlbmd0aC0xO2Y+PTA7Zi0tKXt2YXIgeD17fTtmb3IodmFyIHYgaW4gaSl4W3ZdPXY9PT0iYWNjZXNzIj97fTppW3ZdO2Zvcih2YXIgdiBpbiBpLmFjY2Vzcyl4LmFjY2Vzc1t2XT1pLmFjY2Vzc1t2XTt4LmFkZEluaXRpYWxpemVyPWZ1bmN0aW9uKHkpe2lmKGgpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGFkZCBpbml0aWFsaXplcnMgYWZ0ZXIgZGVjb3JhdGlvbiBoYXMgY29tcGxldGVkIik7bi5wdXNoKG8oeXx8bnVsbCkpfTt2YXIgYj0oMCxyW2ZdKShzPT09ImFjY2Vzc29yIj97Z2V0OnUuZ2V0LHNldDp1LnNldH06dVtsXSx4KTtpZihzPT09ImFjY2Vzc29yIil7aWYoYj09PXZvaWQgMCljb250aW51ZTtpZihiPT09bnVsbHx8dHlwZW9mIGIhPSJvYmplY3QiKXRocm93IG5ldyBUeXBlRXJyb3IoIk9iamVjdCBleHBlY3RlZCIpOyhkPW8oYi5nZXQpKSYmKHUuZ2V0PWQpLChkPW8oYi5zZXQpKSYmKHUuc2V0PWQpLChkPW8oYi5pbml0KSkmJmEudW5zaGlmdChkKX1lbHNlKGQ9byhiKSkmJihzPT09ImZpZWxkIj9hLnVuc2hpZnQoZCk6dVtsXT1kKX1jJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoYyxpLm5hbWUsdSksaD0hMH0sS2E9ZnVuY3Rpb24oZSx0LHIpe2Zvcih2YXIgaT1hcmd1bWVudHMubGVuZ3RoPjIsYT0wO2E8dC5sZW5ndGg7YSsrKXI9aT90W2FdLmNhbGwoZSxyKTp0W2FdLmNhbGwoZSk7cmV0dXJuIGk/cjp2b2lkIDB9LFBOPSgoKT0+e2xldCBlPVt5ZSgiZGVlcy1mb3JtLXN1Ym1pdCIpXSx0LHI9W10saSxhPXplLG4sbz1bXSxzPVtdLGwsYz1bXSx1PVtdLGQsaD1bXSxmPVtdLHgsdj1bXSxiPVtdLHksdz1bXSxrPVtdLE8sej1bXSxNPVtdLEYsRD1bXSxOPVtdO3ZhciBSPWNsYXNzIGV4dGVuZHMgYXtzdGF0aWN7aT10aGlzfXN0YXRpY3tsZXQgXz10eXBlb2YgU3ltYm9sPT0iZnVuY3Rpb24iJiZTeW1ib2wubWV0YWRhdGE/T2JqZWN0LmNyZWF0ZShhW1N5bWJvbC5tZXRhZGF0YV0/P251bGwpOnZvaWQgMDtuPVtqKHt0eXBlOkJvb2xlYW4scmVmbGVjdDohMH0pXSxsPVtqKHt0eXBlOlN0cmluZ30pXSxkPVtqKHt0eXBlOlN0cmluZ30pXSx4PVtqKHt0eXBlOlN0cmluZyxyZWZsZWN0OiEwfSldLHk9W2ooe3R5cGU6U3RyaW5nLHJlZmxlY3Q6ITB9KV0sTz1baih7dHlwZTpTdHJpbmd9KV0sRj1baih7dHlwZTpTdHJpbmd9KV0sRjQodGhpcyxudWxsLG4se2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJkaXNhYmxlZCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6Uz0+ImRpc2FibGVkImluIFMsZ2V0OlM9PlMuZGlzYWJsZWQsc2V0OihTLCQpPT57Uy5kaXNhYmxlZD0kfX0sbWV0YWRhdGE6X30sbyxzKSxGNCh0aGlzLG51bGwsbCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InRleHQiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOlM9PiJ0ZXh0ImluIFMsZ2V0OlM9PlMudGV4dCxzZXQ6KFMsJCk9PntTLnRleHQ9JH19LG1ldGFkYXRhOl99LGMsdSksRjQodGhpcyxudWxsLGQse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJzdGF0dXMiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOlM9PiJzdGF0dXMiaW4gUyxnZXQ6Uz0+Uy5zdGF0dXMsc2V0OihTLCQpPT57Uy5zdGF0dXM9JH19LG1ldGFkYXRhOl99LGgsZiksRjQodGhpcyxudWxsLHgse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJ0eXBlIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpTPT4idHlwZSJpbiBTLGdldDpTPT5TLnR5cGUsc2V0OihTLCQpPT57Uy50eXBlPSR9fSxtZXRhZGF0YTpffSx2LGIpLEY0KHRoaXMsbnVsbCx5LHtraW5kOiJhY2Nlc3NvciIsbmFtZToic2l6ZSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6Uz0+InNpemUiaW4gUyxnZXQ6Uz0+Uy5zaXplLHNldDooUywkKT0+e1Muc2l6ZT0kfX0sbWV0YWRhdGE6X30sdyxrKSxGNCh0aGlzLG51bGwsTyx7a2luZDoiYWNjZXNzb3IiLG5hbWU6Imljb24iLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOlM9PiJpY29uImluIFMsZ2V0OlM9PlMuaWNvbixzZXQ6KFMsJCk9PntTLmljb249JH19LG1ldGFkYXRhOl99LHosTSksRjQodGhpcyxudWxsLEYse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJpY29uUG9zaXRpb24iLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOlM9PiJpY29uUG9zaXRpb24iaW4gUyxnZXQ6Uz0+Uy5pY29uUG9zaXRpb24sc2V0OihTLCQpPT57Uy5pY29uUG9zaXRpb249JH19LG1ldGFkYXRhOl99LEQsTiksRjQobnVsbCx0PXt2YWx1ZTppfSxlLHtraW5kOiJjbGFzcyIsbmFtZTppLm5hbWUsbWV0YWRhdGE6X30sbnVsbCxyKSxSPWk9dC52YWx1ZSxfJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoaSxTeW1ib2wubWV0YWRhdGEse2VudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwLHZhbHVlOl99KX1zdGF0aWMgZGVtbz1Cc3I7c3RhdGljIGRlbW9Hcm91cHM9WyJGb3JtIiwiQnV0dG9uIl07I2U9S2EodGhpcyxvLCExKTtnZXQgZGlzYWJsZWQoKXtyZXR1cm4gdGhpcy4jZX1zZXQgZGlzYWJsZWQoXyl7dGhpcy4jZT1ffSN0PShLYSh0aGlzLHMpLEthKHRoaXMsYyx2b2lkIDApKTtnZXQgdGV4dCgpe3JldHVybiB0aGlzLiN0fXNldCB0ZXh0KF8pe3RoaXMuI3Q9X30jcj0oS2EodGhpcyx1KSxLYSh0aGlzLGgsIm5vcm1hbCIpKTtnZXQgc3RhdHVzKCl7cmV0dXJuIHRoaXMuI3J9c2V0IHN0YXR1cyhfKXt0aGlzLiNyPV99I2k9KEthKHRoaXMsZiksS2EodGhpcyx2LCJkZWZhdWx0IikpO2dldCB0eXBlKCl7cmV0dXJuIHRoaXMuI2l9c2V0IHR5cGUoXyl7dGhpcy4jaT1ffSNhPShLYSh0aGlzLGIpLEthKHRoaXMsdywiZGVmYXVsdCIpKTtnZXQgc2l6ZSgpe3JldHVybiB0aGlzLiNhfXNldCBzaXplKF8pe3RoaXMuI2E9X30jbj0oS2EodGhpcyxrKSxLYSh0aGlzLHosdm9pZCAwKSk7Z2V0IGljb24oKXtyZXR1cm4gdGhpcy4jbn1zZXQgaWNvbihfKXt0aGlzLiNuPV99I289KEthKHRoaXMsTSksS2EodGhpcyxELCJsZWZ0IikpO2dldCBpY29uUG9zaXRpb24oKXtyZXR1cm4gdGhpcy4jb31zZXQgaWNvblBvc2l0aW9uKF8pe3RoaXMuI289X31jb25zdHJ1Y3Rvcigpe3N1cGVyKCksS2EodGhpcyxOKX1zdGF0aWMgc3R5bGVzPVtEZSxtLmRlZmF1bHRTdHlsZXMsb2VgCiAgICAgIDpob3N0IHsKICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7CiAgICAgIH0KICAgICAgZGVlcy1idXR0b24gewogICAgICAgIHdpZHRoOiAxMDAlOwogICAgICB9CiAgICBgXTtyZW5kZXIoKXtyZXR1cm4gQ2AKICAgICAgPGRlZXMtYnV0dG9uCiAgICAgICAgLnN0YXR1cz0ke3RoaXMuc3RhdHVzfQogICAgICAgIC50eXBlPSR7dGhpcy50eXBlfQogICAgICAgIC5zaXplPSR7dGhpcy5zaXplfQogICAgICAgIC5pY29uPSR7dGhpcy5pY29ufQogICAgICAgIC5pY29uUG9zaXRpb249JHt0aGlzLmljb25Qb3NpdGlvbn0KICAgICAgICAudGV4dD0ke3RoaXMudGV4dH0KICAgICAgICA/ZGlzYWJsZWQ9JHt0aGlzLmRpc2FibGVkfQogICAgICAgIEBjbGlja2VkPSR7dGhpcy5zdWJtaXR9CiAgICAgID4KICAgICAgICA8c2xvdD48L3Nsb3Q+CiAgICAgIDwvZGVlcy1idXR0b24+CiAgICBgfWFzeW5jIHN1Ym1pdCgpe2lmKHRoaXMuZGlzYWJsZWQpcmV0dXJuO2xldCBfPXRoaXMuY2xvc2VzdCgiZGVlcy1mb3JtIik7XyYmXy5nYXRoZXJBbmREaXNwYXRjaCYmXy5nYXRoZXJBbmREaXNwYXRjaCgpfWFzeW5jIGZvY3VzKCl7bGV0IF89YXdhaXQgdGhpcy5kb210b29sc1Byb21pc2U7dGhpcy5kaXNhYmxlZHx8KGF3YWl0IF8uY29udmVuaWVuY2Uuc21hcnRkZWxheS5kZWxheUZvcigwKSx0aGlzLnN1Ym1pdCgpKX1zdGF0aWN7S2EoaSxyKX19O3JldHVybiBSPWl9KSgpfSk7dmFyIHFzcixqc3I9cCgoKT0+e3hlKCk7cDEoKTtPaSgpO2loKCk7T2QoKTtxc3I9KCk9PkNgCiAgPHN0eWxlPgogICAgJHtvZWAKICAgICAgLmRlbW8tY29udGFpbmVyIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgICAgZ2FwOiAyNHB4OwogICAgICAgIHBhZGRpbmc6IDI0cHg7CiAgICAgICAgbWF4LXdpZHRoOiAxMjAwcHg7CiAgICAgICAgbWFyZ2luOiAwIGF1dG87CiAgICAgIH0KICAgICAgCiAgICAgIGRlZXMtcGFuZWwgewogICAgICAgIG1hcmdpbi1ib3R0b206IDI0cHg7CiAgICAgIH0KICAgICAgCiAgICAgIGRlZXMtcGFuZWw6bGFzdC1jaGlsZCB7CiAgICAgICAgbWFyZ2luLWJvdHRvbTogMDsKICAgICAgfQogICAgICAKICAgICAgLmhvcml6b250YWwtZ3JvdXAgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBnYXA6IDE2cHg7CiAgICAgICAgZmxleC13cmFwOiB3cmFwOwogICAgICB9CiAgICAgIAogICAgICAuaW5wdXQtZ3JvdXAgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgICBnYXA6IDE2cHg7CiAgICAgIH0KCiAgICAgIC5zcGFjZXIgewogICAgICAgIGhlaWdodDogMjAwcHg7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOwogICAgICAgIGNvbG9yOiAjOTk5OwogICAgICAgIGZvbnQtc2l6ZTogMTRweDsKICAgICAgfQogICAgYH0KICA8L3N0eWxlPgogIAogIDxkaXYgY2xhc3M9ImRlbW8tY29udGFpbmVyIj4KICAgIDxkZWVzLWRlbW93cmFwcGVyIC5ydW5BZnRlclJlbmRlcj0ke2FzeW5jIGU9PntsZXQgdD1lLnF1ZXJ5U2VsZWN0b3IoJ2RlZXMtaW5wdXQtZHJvcGRvd25bbGFiZWw9IlNlbGVjdCBDb3VudHJ5Il0nKSxyPWUucXVlcnlTZWxlY3RvcignZGVlcy1pbnB1dC1kcm9wZG93bltsYWJlbD0iU2VsZWN0IFJvbGUiXScpO3QmJnQuYWRkRXZlbnRMaXN0ZW5lcigic2VsZWN0ZWRPcHRpb24iLGk9Pntjb25zb2xlLmxvZygiQ291bnRyeSBzZWxlY3RlZDoiLGkuZGV0YWlsKX0pLHImJnIuYWRkRXZlbnRMaXN0ZW5lcigic2VsZWN0ZWRPcHRpb24iLGk9Pntjb25zb2xlLmxvZygiUm9sZSBzZWxlY3RlZDoiLGkuZGV0YWlsKX0pfX0+CiAgICAgIDxkZWVzLXBhbmVsIC50aXRsZT0keyIxLiBCYXNpYyBEcm9wZG93bnMifSAuc3VidGl0bGU9JHsiU3RhbmRhcmQgZHJvcGRvd24gd2l0aCBzZWFyY2ggZnVuY3Rpb25hbGl0eSBhbmQgdmFyaW91cyBvcHRpb25zIn0+CiAgICAgICAgPGRpdiBjbGFzcz0iaW5wdXQtZ3JvdXAiPgogICAgICAgICAgPGRlZXMtaW5wdXQtZHJvcGRvd24KICAgICAgICAgICAgLmxhYmVsPSR7IlNlbGVjdCBDb3VudHJ5In0KICAgICAgICAgICAgLm9wdGlvbnM9JHtbe29wdGlvbjoiVW5pdGVkIFN0YXRlcyIsa2V5OiJ1cyJ9LHtvcHRpb246IkNhbmFkYSIsa2V5OiJjYSJ9LHtvcHRpb246Ikdlcm1hbnkiLGtleToiZGUifSx7b3B0aW9uOiJGcmFuY2UiLGtleToiZnIifSx7b3B0aW9uOiJVbml0ZWQgS2luZ2RvbSIsa2V5OiJ1ayJ9LHtvcHRpb246IkF1c3RyYWxpYSIsa2V5OiJhdSJ9LHtvcHRpb246IkphcGFuIixrZXk6ImpwIn0se29wdGlvbjoiQnJhemlsIixrZXk6ImJyIn1dfQogICAgICAgICAgICAuc2VsZWN0ZWRPcHRpb249JHt7b3B0aW9uOiJVbml0ZWQgU3RhdGVzIixrZXk6InVzIn19CiAgICAgICAgICA+PC9kZWVzLWlucHV0LWRyb3Bkb3duPgoKICAgICAgICAgIDxkZWVzLWlucHV0LWRyb3Bkb3duCiAgICAgICAgICAgIC5sYWJlbD0keyJTZWxlY3QgUm9sZSJ9CiAgICAgICAgICAgIC5vcHRpb25zPSR7W3tvcHRpb246IkFkbWluaXN0cmF0b3IiLGtleToiYWRtaW4ifSx7b3B0aW9uOiJFZGl0b3IiLGtleToiZWRpdG9yIn0se29wdGlvbjoiVmlld2VyIixrZXk6InZpZXdlciJ9LHtvcHRpb246Ikd1ZXN0IixrZXk6Imd1ZXN0In1dfQogICAgICAgICAgPjwvZGVlcy1pbnB1dC1kcm9wZG93bj4KICAgICAgICA8L2Rpdj4KICAgICAgPC9kZWVzLXBhbmVsPgogICAgPC9kZWVzLWRlbW93cmFwcGVyPgogICAgCiAgICA8ZGVlcy1kZW1vd3JhcHBlciAucnVuQWZ0ZXJSZW5kZXI9JHthc3luYyBlPT57bGV0IHQ9ZS5xdWVyeVNlbGVjdG9yKCJkZWVzLWlucHV0LWRyb3Bkb3duIik7dCYmdC5hZGRFdmVudExpc3RlbmVyKCJzZWxlY3RlZE9wdGlvbiIscj0+e2NvbnNvbGUubG9nKGBQcmlvcml0eSBjaGFuZ2VkIHRvOiAke3IuZGV0YWlsLm9wdGlvbn1gKX0pfX0+CiAgICAgIDxkZWVzLXBhbmVsIC50aXRsZT0keyIyLiBXaXRob3V0IFNlYXJjaCJ9IC5zdWJ0aXRsZT0keyJEcm9wZG93biB3aXRoIHNlYXJjaCBmdW5jdGlvbmFsaXR5IGRpc2FibGVkIGZvciBzaW1wbGVyIHNlbGVjdGlvbiJ9PgogICAgICAgIDxkZWVzLWlucHV0LWRyb3Bkb3duCiAgICAgICAgICAubGFiZWw9JHsiUHJpb3JpdHkgTGV2ZWwifQogICAgICAgICAgLmVuYWJsZVNlYXJjaD0keyExfQogICAgICAgICAgLm9wdGlvbnM9JHtbe29wdGlvbjoiSGlnaCIsa2V5OiJoaWdoIn0se29wdGlvbjoiTWVkaXVtIixrZXk6Im1lZGl1bSJ9LHtvcHRpb246IkxvdyIsa2V5OiJsb3cifV19CiAgICAgICAgICAuc2VsZWN0ZWRPcHRpb249JHt7b3B0aW9uOiJNZWRpdW0iLGtleToibWVkaXVtIn19CiAgICAgICAgPjwvZGVlcy1pbnB1dC1kcm9wZG93bj4KICAgICAgPC9kZWVzLXBhbmVsPgogICAgPC9kZWVzLWRlbW93cmFwcGVyPgogICAgCiAgICA8ZGVlcy1kZW1vd3JhcHBlciAucnVuQWZ0ZXJSZW5kZXI9JHthc3luYyBlPT57ZS5xdWVyeVNlbGVjdG9yQWxsKCJkZWVzLWlucHV0LWRyb3Bkb3duIikuZm9yRWFjaChyPT57ci5hZGRFdmVudExpc3RlbmVyKCJzZWxlY3RlZE9wdGlvbiIsaT0+e2xldCBhPXIuZ2V0QXR0cmlidXRlKCJsYWJlbCIpO2NvbnNvbGUubG9nKGAke2F9OiAke2kuZGV0YWlsLm9wdGlvbn1gKX0pfSl9fT4KICAgICAgPGRlZXMtcGFuZWwgLnRpdGxlPSR7IjMuIEhvcml6b250YWwgTGF5b3V0In0gLnN1YnRpdGxlPSR7Ik11bHRpcGxlIGRyb3Bkb3ducyBpbiBhIGhvcml6b250YWwgbGF5b3V0IGZvciBjb21wYWN0IGZvcm1zIn0+CiAgICAgICAgPGRpdiBjbGFzcz0iaG9yaXpvbnRhbC1ncm91cCI+CiAgICAgICAgICA8ZGVlcy1pbnB1dC1kcm9wZG93bgogICAgICAgICAgICAubGFiZWw9JHsiRGVwYXJ0bWVudCJ9CiAgICAgICAgICAgIC5sYXlvdXRNb2RlPSR7Imhvcml6b250YWwifQogICAgICAgICAgICAub3B0aW9ucz0ke1t7b3B0aW9uOiJFbmdpbmVlcmluZyIsa2V5OiJlbmcifSx7b3B0aW9uOiJEZXNpZ24iLGtleToiZGVzaWduIn0se29wdGlvbjoiTWFya2V0aW5nIixrZXk6Im1hcmtldGluZyJ9LHtvcHRpb246IlNhbGVzIixrZXk6InNhbGVzIn1dfQogICAgICAgICAgPjwvZGVlcy1pbnB1dC1kcm9wZG93bj4KICAgICAgICAgIAogICAgICAgICAgPGRlZXMtaW5wdXQtZHJvcGRvd24KICAgICAgICAgICAgLmxhYmVsPSR7IlRlYW0gU2l6ZSJ9CiAgICAgICAgICAgIC5sYXlvdXRNb2RlPSR7Imhvcml6b250YWwifQogICAgICAgICAgICAuZW5hYmxlU2VhcmNoPSR7ITF9CiAgICAgICAgICAgIC5vcHRpb25zPSR7W3tvcHRpb246IjEtNSIsa2V5OiJzbWFsbCJ9LHtvcHRpb246IjYtMjAiLGtleToibWVkaXVtIn0se29wdGlvbjoiMjEtNTAiLGtleToibGFyZ2UifSx7b3B0aW9uOiI1MCsiLGtleToieGxhcmdlIn1dfQogICAgICAgICAgPjwvZGVlcy1pbnB1dC1kcm9wZG93bj4KICAgICAgICAgIAogICAgICAgICAgPGRlZXMtaW5wdXQtZHJvcGRvd24KICAgICAgICAgICAgLmxhYmVsPSR7IkxvY2F0aW9uIn0KICAgICAgICAgICAgLmxheW91dE1vZGU9JHsiaG9yaXpvbnRhbCJ9CiAgICAgICAgICAgIC5vcHRpb25zPSR7W3tvcHRpb246IlJlbW90ZSIsa2V5OiJyZW1vdGUifSx7b3B0aW9uOiJPbi1zaXRlIixrZXk6Im9uc2l0ZSJ9LHtvcHRpb246Ikh5YnJpZCIsa2V5OiJoeWJyaWQifV19CiAgICAgICAgICA+PC9kZWVzLWlucHV0LWRyb3Bkb3duPgogICAgICAgIDwvZGl2PgogICAgICA8L2RlZXMtcGFuZWw+CiAgICA8L2RlZXMtZGVtb3dyYXBwZXI+CiAgICAKICAgIDxkZWVzLWRlbW93cmFwcGVyIC5ydW5BZnRlclJlbmRlcj0ke2FzeW5jIGU9PntsZXQgdD1lLnF1ZXJ5U2VsZWN0b3IoImRlZXMtaW5wdXQtZHJvcGRvd25bcmVxdWlyZWRdIik7dCYmdC5hZGRFdmVudExpc3RlbmVyKCJibHVyIiwoKT0+e2NvbnNvbGUubG9nKCJSZXF1aXJlZCBkcm9wZG93biBsb3N0IGZvY3VzIil9KX19PgogICAgICA8ZGVlcy1wYW5lbCAudGl0bGU9JHsiNC4gU3RhdGVzIn0gLnN1YnRpdGxlPSR7IkRpZmZlcmVudCBzdGF0ZXMgYW5kIGNvbmZpZ3VyYXRpb25zIn0+CiAgICAgICAgPGRpdiBjbGFzcz0iaW5wdXQtZ3JvdXAiPgogICAgICAgICAgPGRlZXMtaW5wdXQtZHJvcGRvd24KICAgICAgICAgICAgLmxhYmVsPSR7IlJlcXVpcmVkIEZpZWxkIn0KICAgICAgICAgICAgLnJlcXVpcmVkPSR7ITB9CiAgICAgICAgICAgIC5vcHRpb25zPSR7W3tvcHRpb246Ik9wdGlvbiBBIixrZXk6ImEifSx7b3B0aW9uOiJPcHRpb24gQiIsa2V5OiJiIn0se29wdGlvbjoiT3B0aW9uIEMiLGtleToiYyJ9XX0KICAgICAgICAgID48L2RlZXMtaW5wdXQtZHJvcGRvd24+CgogICAgICAgICAgPGRlZXMtaW5wdXQtZHJvcGRvd24KICAgICAgICAgICAgLmxhYmVsPSR7IkRpc2FibGVkIERyb3Bkb3duIn0KICAgICAgICAgICAgLmRpc2FibGVkPSR7ITB9CiAgICAgICAgICAgIC5vcHRpb25zPSR7W3tvcHRpb246IkNhbm5vdCBTZWxlY3QiLGtleToiZGlzYWJsZWQifV19CiAgICAgICAgICAgIC5zZWxlY3RlZE9wdGlvbj0ke3tvcHRpb246IkNhbm5vdCBTZWxlY3QiLGtleToiZGlzYWJsZWQifX0KICAgICAgICAgID48L2RlZXMtaW5wdXQtZHJvcGRvd24+CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGVlcy1wYW5lbD4KICAgIDwvZGVlcy1kZW1vd3JhcHBlcj4KICAgIAogICAgPGRpdiBjbGFzcz0ic3BhY2VyIj4KICAgICAgKFNwYWNlciB0byB0ZXN0IGRyb3Bkb3duIHBvc2l0aW9uaW5nKQogICAgPC9kaXY+CiAgICAKICAgIDxkZWVzLWRlbW93cmFwcGVyIC5ydW5BZnRlclJlbmRlcj0ke2FzeW5jIGU9PntsZXQgdD1lLnF1ZXJ5U2VsZWN0b3IoImRlZXMtaW5wdXQtZHJvcGRvd24iKTt0JiZ0LmFkZEV2ZW50TGlzdGVuZXIoInNlbGVjdGVkT3B0aW9uIixyPT57Y29uc29sZS5sb2coIkJvdHRvbSBkcm9wZG93biBzZWxlY3RlZDoiLHIuZGV0YWlsKX0pfX0+CiAgICAgIDxkZWVzLXBhbmVsIC50aXRsZT0keyI1LiBCb3R0b20gUG9zaXRpb25pbmcifSAuc3VidGl0bGU9JHsiRHJvcGRvd24gdGhhdCBvcGVucyB1cHdhcmQgd2hlbiBuZWFyIGJvdHRvbSBvZiB2aWV3cG9ydCJ9PgogICAgICAgIDxkZWVzLWlucHV0LWRyb3Bkb3duCiAgICAgICAgICAubGFiZWw9JHsiT3BlbnMgVXB3YXJkIn0KICAgICAgICAgIC5vcHRpb25zPSR7W3tvcHRpb246IkZpcnN0IE9wdGlvbiIsa2V5OiJmaXJzdCJ9LHtvcHRpb246IlNlY29uZCBPcHRpb24iLGtleToic2Vjb25kIn0se29wdGlvbjoiVGhpcmQgT3B0aW9uIixrZXk6InRoaXJkIn0se29wdGlvbjoiRm91cnRoIE9wdGlvbiIsa2V5OiJmb3VydGgifSx7b3B0aW9uOiJGaWZ0aCBPcHRpb24iLGtleToiZmlmdGgifV19CiAgICAgICAgPjwvZGVlcy1pbnB1dC1kcm9wZG93bj4KICAgICAgPC9kZWVzLXBhbmVsPgogICAgPC9kZWVzLWRlbW93cmFwcGVyPgoKICAgIDxkZWVzLWRlbW93cmFwcGVyIC5ydW5BZnRlclJlbmRlcj0ke2FzeW5jIGU9PntsZXQgdD1lLnF1ZXJ5U2VsZWN0b3IoImRlZXMtaW5wdXQtZHJvcGRvd24iKSxyPWUucXVlcnlTZWxlY3RvcigiI3NlbGVjdGlvbi1vdXRwdXQiKTt0JiZyJiYoci5pbm5lckhUTUw9IjxlbT5TZWxlY3QgYSBwcm9kdWN0IHRvIHNlZSBkZXRhaWxzLi4uPC9lbT4iLHQuYWRkRXZlbnRMaXN0ZW5lcigiY2hhbmdlIixpPT57aS5kZXRhaWwudmFsdWUmJihyLmlubmVySFRNTD1gCiAgICAgICAgICAgICAgPHN0cm9uZz5TZWxlY3RlZDo8L3N0cm9uZz4gJHtpLmRldGFpbC52YWx1ZS5vcHRpb259PGJyPgogICAgICAgICAgICAgIDxzdHJvbmc+S2V5Ojwvc3Ryb25nPiAke2kuZGV0YWlsLnZhbHVlLmtleX08YnI+CiAgICAgICAgICAgICAgPHN0cm9uZz5QcmljZTo8L3N0cm9uZz4gJCR7aS5kZXRhaWwudmFsdWUucGF5bG9hZD8ucHJpY2V8fCJOL0EifTxicj4KICAgICAgICAgICAgICA8c3Ryb25nPkZlYXR1cmVzOjwvc3Ryb25nPiAke2kuZGV0YWlsLnZhbHVlLnBheWxvYWQ/LmZlYXR1cmVzPy5qb2luKCIsICIpfHwiTi9BIn0KICAgICAgICAgICAgYCl9KSl9fT4KICAgICAgPGRlZXMtcGFuZWwgLnRpdGxlPSR7IjYuIEV2ZW50IEhhbmRsaW5nICYgUGF5bG9hZCJ9IC5zdWJ0aXRsZT0keyJEcm9wZG93biB3aXRoIHBheWxvYWQgZGF0YSBhbmQgY2hhbmdlIGV2ZW50IGhhbmRsaW5nIn0+CiAgICAgICAgPGRlZXMtaW5wdXQtZHJvcGRvd24KICAgICAgICAgIC5sYWJlbD0keyJTZWxlY3QgUHJvZHVjdCJ9CiAgICAgICAgICAub3B0aW9ucz0ke1t7b3B0aW9uOiJCYXNpYyBQbGFuIixrZXk6ImJhc2ljIixwYXlsb2FkOntwcmljZTo5Ljk5LGZlYXR1cmVzOlsiRmVhdHVyZSBBIl19fSx7b3B0aW9uOiJQcm8gUGxhbiIsa2V5OiJwcm8iLHBheWxvYWQ6e3ByaWNlOjE5Ljk5LGZlYXR1cmVzOlsiRmVhdHVyZSBBIiwiRmVhdHVyZSBCIl19fSx7b3B0aW9uOiJFbnRlcnByaXNlIFBsYW4iLGtleToiZW50ZXJwcmlzZSIscGF5bG9hZDp7cHJpY2U6NDkuOTksZmVhdHVyZXM6WyJGZWF0dXJlIEEiLCJGZWF0dXJlIEIiLCJGZWF0dXJlIEMiXX19XX0KICAgICAgICA+PC9kZWVzLWlucHV0LWRyb3Bkb3duPgogICAgICAgIAogICAgICAgIDxkaXYgaWQ9InNlbGVjdGlvbi1vdXRwdXQiIHN0eWxlPSJtYXJnaW4tdG9wOiAxNnB4OyBwYWRkaW5nOiAxMnB4OyBiYWNrZ3JvdW5kOiByZ2JhKDAsIDEwNSwgMjQyLCAwLjEpOyBib3JkZXItcmFkaXVzOiA0cHg7IGZvbnQtc2l6ZTogMTRweDsiPjwvZGl2PgogICAgICA8L2RlZXMtcGFuZWw+CiAgICA8L2RlZXMtZGVtb3dyYXBwZXI+CgogICAgPGRlZXMtZGVtb3dyYXBwZXIgLnJ1bkFmdGVyUmVuZGVyPSR7YXN5bmMgZT0+e2xldCB0PWUucXVlcnlTZWxlY3RvcigiZGVlcy1mb3JtIikscj1lLnF1ZXJ5U2VsZWN0b3IoJ2RlZXMtaW5wdXQtZHJvcGRvd25ba2V5PSJwcm9qZWN0VHlwZSJdJyksaT1lLnF1ZXJ5U2VsZWN0b3IoJ2RlZXMtaW5wdXQtZHJvcGRvd25ba2V5PSJmcmFtZXdvcmsiXScpO3QmJnQuYWRkRXZlbnRMaXN0ZW5lcigiZm9ybURhdGEiLGE9Pntjb25zb2xlLmxvZygiRm9ybSBzdWJtaXR0ZWQgd2l0aCBkYXRhOiIsYS5kZXRhaWwuZGF0YSl9KSxyJiZpJiZyLmFkZEV2ZW50TGlzdGVuZXIoInNlbGVjdGVkT3B0aW9uIixhPT57bGV0IG49YS5kZXRhaWwua2V5O2NvbnNvbGUubG9nKGBQcm9qZWN0IHR5cGUgY2hhbmdlZCB0bzogJHtufWApfSl9fT4KICAgICAgPGRlZXMtcGFuZWwgLnRpdGxlPSR7IjcuIEZvcm0gSW50ZWdyYXRpb24ifSAuc3VidGl0bGU9JHsiRHJvcGRvd24gd29ya2luZyB3aXRoaW4gYSBmb3JtIHdpdGggdmFsaWRhdGlvbiJ9PgogICAgICAgIDxkZWVzLWZvcm0+CiAgICAgICAgICA8ZGVlcy1pbnB1dC1kcm9wZG93bgogICAgICAgICAgICAubGFiZWw9JHsiUHJvamVjdCBUeXBlIn0KICAgICAgICAgICAgLmtleT0keyJwcm9qZWN0VHlwZSJ9CiAgICAgICAgICAgIC5yZXF1aXJlZD0keyEwfQogICAgICAgICAgICAub3B0aW9ucz0ke1t7b3B0aW9uOiJXZWIgQXBwbGljYXRpb24iLGtleToid2ViIn0se29wdGlvbjoiTW9iaWxlIEFwcGxpY2F0aW9uIixrZXk6Im1vYmlsZSJ9LHtvcHRpb246IkRlc2t0b3AgQXBwbGljYXRpb24iLGtleToiZGVza3RvcCJ9LHtvcHRpb246IkFQSSBTZXJ2aWNlIixrZXk6ImFwaSJ9XX0KICAgICAgICAgID48L2RlZXMtaW5wdXQtZHJvcGRvd24+CiAgICAgICAgICAKICAgICAgICAgIDxkZWVzLWlucHV0LWRyb3Bkb3duCiAgICAgICAgICAgIC5sYWJlbD0keyJEZXZlbG9wbWVudCBGcmFtZXdvcmsifQogICAgICAgICAgICAua2V5PSR7ImZyYW1ld29yayJ9CiAgICAgICAgICAgIC5yZXF1aXJlZD0keyEwfQogICAgICAgICAgICAub3B0aW9ucz0ke1t7b3B0aW9uOiJSZWFjdCIsa2V5OiJyZWFjdCIscGF5bG9hZDp7dHlwZToid2ViIn19LHtvcHRpb246IlZ1ZS5qcyIsa2V5OiJ2dWUiLHBheWxvYWQ6e3R5cGU6IndlYiJ9fSx7b3B0aW9uOiJBbmd1bGFyIixrZXk6ImFuZ3VsYXIiLHBheWxvYWQ6e3R5cGU6IndlYiJ9fSx7b3B0aW9uOiJSZWFjdCBOYXRpdmUiLGtleToicmVhY3QtbmF0aXZlIixwYXlsb2FkOnt0eXBlOiJtb2JpbGUifX0se29wdGlvbjoiRmx1dHRlciIsa2V5OiJmbHV0dGVyIixwYXlsb2FkOnt0eXBlOiJtb2JpbGUifX0se29wdGlvbjoiRWxlY3Ryb24iLGtleToiZWxlY3Ryb24iLHBheWxvYWQ6e3R5cGU6ImRlc2t0b3AifX1dfQogICAgICAgICAgPjwvZGVlcy1pbnB1dC1kcm9wZG93bj4KICAgICAgICAgIAogICAgICAgICAgPGRlZXMtZm9ybS1zdWJtaXQgLnRleHQ9JHsiQ3JlYXRlIFByb2plY3QifT48L2RlZXMtZm9ybS1zdWJtaXQ+CiAgICAgICAgPC9kZWVzLWZvcm0+CiAgICAgIDwvZGVlcy1wYW5lbD4KICAgIDwvZGVlcy1kZW1vd3JhcHBlcj4KICA8L2Rpdj4KYH0pO3ZhciB2YyxLaSxOTixGTj1wKCgpPT57eGUoKTtLdCgpO2pzcigpO00xKCk7UWEoKTtKZSgpO3ZjPWZ1bmN0aW9uKGUsdCxyLGksYSxuKXtmdW5jdGlvbiBvKHkpe2lmKHkhPT12b2lkIDAmJnR5cGVvZiB5IT0iZnVuY3Rpb24iKXRocm93IG5ldyBUeXBlRXJyb3IoIkZ1bmN0aW9uIGV4cGVjdGVkIik7cmV0dXJuIHl9Zm9yKHZhciBzPWkua2luZCxsPXM9PT0iZ2V0dGVyIj8iZ2V0IjpzPT09InNldHRlciI/InNldCI6InZhbHVlIixjPSF0JiZlP2kuc3RhdGljP2U6ZS5wcm90b3R5cGU6bnVsbCx1PXR8fChjP09iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoYyxpLm5hbWUpOnt9KSxkLGg9ITEsZj1yLmxlbmd0aC0xO2Y+PTA7Zi0tKXt2YXIgeD17fTtmb3IodmFyIHYgaW4gaSl4W3ZdPXY9PT0iYWNjZXNzIj97fTppW3ZdO2Zvcih2YXIgdiBpbiBpLmFjY2Vzcyl4LmFjY2Vzc1t2XT1pLmFjY2Vzc1t2XTt4LmFkZEluaXRpYWxpemVyPWZ1bmN0aW9uKHkpe2lmKGgpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGFkZCBpbml0aWFsaXplcnMgYWZ0ZXIgZGVjb3JhdGlvbiBoYXMgY29tcGxldGVkIik7bi5wdXNoKG8oeXx8bnVsbCkpfTt2YXIgYj0oMCxyW2ZdKShzPT09ImFjY2Vzc29yIj97Z2V0OnUuZ2V0LHNldDp1LnNldH06dVtsXSx4KTtpZihzPT09ImFjY2Vzc29yIil7aWYoYj09PXZvaWQgMCljb250aW51ZTtpZihiPT09bnVsbHx8dHlwZW9mIGIhPSJvYmplY3QiKXRocm93IG5ldyBUeXBlRXJyb3IoIk9iamVjdCBleHBlY3RlZCIpOyhkPW8oYi5nZXQpKSYmKHUuZ2V0PWQpLChkPW8oYi5zZXQpKSYmKHUuc2V0PWQpLChkPW8oYi5pbml0KSkmJmEudW5zaGlmdChkKX1lbHNlKGQ9byhiKSkmJihzPT09ImZpZWxkIj9hLnVuc2hpZnQoZCk6dVtsXT1kKX1jJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoYyxpLm5hbWUsdSksaD0hMH0sS2k9ZnVuY3Rpb24oZSx0LHIpe2Zvcih2YXIgaT1hcmd1bWVudHMubGVuZ3RoPjIsYT0wO2E8dC5sZW5ndGg7YSsrKXI9aT90W2FdLmNhbGwoZSxyKTp0W2FdLmNhbGwoZSk7cmV0dXJuIGk/cjp2b2lkIDB9LE5OPSgoKT0+e2xldCBlPVt5ZSgiZGVlcy1pbnB1dC1kcm9wZG93biIpXSx0LHI9W10saSxhPW90LG4sbz1bXSxzPVtdLGwsYz1bXSx1PVtdLGQsaD1bXSxmPVtdLHgsdj1bXSxiPVtdLHksdz1bXSxrPVtdLE8sej1bXSxNPVtdLEYsRD1bXSxOPVtdLFIsXz1bXSxTPVtdO3ZhciAkPWNsYXNzIGV4dGVuZHMgYXtzdGF0aWN7aT10aGlzfXN0YXRpY3tsZXQgVD10eXBlb2YgU3ltYm9sPT0iZnVuY3Rpb24iJiZTeW1ib2wubWV0YWRhdGE/T2JqZWN0LmNyZWF0ZShhW1N5bWJvbC5tZXRhZGF0YV0/P251bGwpOnZvaWQgMDtuPVtqKCldLGw9W2ooKV0sZD1baih7dHlwZTpCb29sZWFufSldLHg9W2ZlKCldLHk9W2ZlKCldLE89W2ZlKCldLEY9W2ZlKCldLFI9W2ZlKCldLHZjKHRoaXMsbnVsbCxuLHtraW5kOiJhY2Nlc3NvciIsbmFtZToib3B0aW9ucyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6RT0+Im9wdGlvbnMiaW4gRSxnZXQ6RT0+RS5vcHRpb25zLHNldDooRSxxKT0+e0Uub3B0aW9ucz1xfX0sbWV0YWRhdGE6VH0sbyxzKSx2Yyh0aGlzLG51bGwsbCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InNlbGVjdGVkT3B0aW9uIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpFPT4ic2VsZWN0ZWRPcHRpb24iaW4gRSxnZXQ6RT0+RS5zZWxlY3RlZE9wdGlvbixzZXQ6KEUscSk9PntFLnNlbGVjdGVkT3B0aW9uPXF9fSxtZXRhZGF0YTpUfSxjLHUpLHZjKHRoaXMsbnVsbCxkLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiZW5hYmxlU2VhcmNoIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpFPT4iZW5hYmxlU2VhcmNoImluIEUsZ2V0OkU9PkUuZW5hYmxlU2VhcmNoLHNldDooRSxxKT0+e0UuZW5hYmxlU2VhcmNoPXF9fSxtZXRhZGF0YTpUfSxoLGYpLHZjKHRoaXMsbnVsbCx4LHtraW5kOiJhY2Nlc3NvciIsbmFtZToib3BlbnNUb1RvcCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6RT0+Im9wZW5zVG9Ub3AiaW4gRSxnZXQ6RT0+RS5vcGVuc1RvVG9wLHNldDooRSxxKT0+e0Uub3BlbnNUb1RvcD1xfX0sbWV0YWRhdGE6VH0sdixiKSx2Yyh0aGlzLG51bGwseSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImZpbHRlcmVkT3B0aW9ucyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6RT0+ImZpbHRlcmVkT3B0aW9ucyJpbiBFLGdldDpFPT5FLmZpbHRlcmVkT3B0aW9ucyxzZXQ6KEUscSk9PntFLmZpbHRlcmVkT3B0aW9ucz1xfX0sbWV0YWRhdGE6VH0sdyxrKSx2Yyh0aGlzLG51bGwsTyx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImhpZ2hsaWdodGVkSW5kZXgiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOkU9PiJoaWdobGlnaHRlZEluZGV4ImluIEUsZ2V0OkU9PkUuaGlnaGxpZ2h0ZWRJbmRleCxzZXQ6KEUscSk9PntFLmhpZ2hsaWdodGVkSW5kZXg9cX19LG1ldGFkYXRhOlR9LHosTSksdmModGhpcyxudWxsLEYse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJpc09wZW5lZCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6RT0+ImlzT3BlbmVkImluIEUsZ2V0OkU9PkUuaXNPcGVuZWQsc2V0OihFLHEpPT57RS5pc09wZW5lZD1xfX0sbWV0YWRhdGE6VH0sRCxOKSx2Yyh0aGlzLG51bGwsUix7a2luZDoiYWNjZXNzb3IiLG5hbWU6InNlYXJjaFZhbHVlIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpFPT4ic2VhcmNoVmFsdWUiaW4gRSxnZXQ6RT0+RS5zZWFyY2hWYWx1ZSxzZXQ6KEUscSk9PntFLnNlYXJjaFZhbHVlPXF9fSxtZXRhZGF0YTpUfSxfLFMpLHZjKG51bGwsdD17dmFsdWU6aX0sZSx7a2luZDoiY2xhc3MiLG5hbWU6aS5uYW1lLG1ldGFkYXRhOlR9LG51bGwsciksJD1pPXQudmFsdWUsVCYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGksU3ltYm9sLm1ldGFkYXRhLHtlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMCx2YWx1ZTpUfSl9c3RhdGljIGRlbW89cXNyO3N0YXRpYyBkZW1vR3JvdXBzPVsiSW5wdXQiXTsjZT1LaSh0aGlzLG8sW10pO2dldCBvcHRpb25zKCl7cmV0dXJuIHRoaXMuI2V9c2V0IG9wdGlvbnMoVCl7dGhpcy4jZT1UfSN0PShLaSh0aGlzLHMpLEtpKHRoaXMsYyxudWxsKSk7Z2V0IHNlbGVjdGVkT3B0aW9uKCl7cmV0dXJuIHRoaXMuI3R9c2V0IHNlbGVjdGVkT3B0aW9uKFQpe3RoaXMuI3Q9VH1nZXQgdmFsdWUoKXtyZXR1cm4gdGhpcy5zZWxlY3RlZE9wdGlvbn1zZXQgdmFsdWUoVCl7dGhpcy5zZWxlY3RlZE9wdGlvbj1UfSNyPShLaSh0aGlzLHUpLEtpKHRoaXMsaCwhMCkpO2dldCBlbmFibGVTZWFyY2goKXtyZXR1cm4gdGhpcy4jcn1zZXQgZW5hYmxlU2VhcmNoKFQpe3RoaXMuI3I9VH0jaT0oS2kodGhpcyxmKSxLaSh0aGlzLHYsITEpKTtnZXQgb3BlbnNUb1RvcCgpe3JldHVybiB0aGlzLiNpfXNldCBvcGVuc1RvVG9wKFQpe3RoaXMuI2k9VH0jYT0oS2kodGhpcyxiKSxLaSh0aGlzLHcsW10pKTtnZXQgZmlsdGVyZWRPcHRpb25zKCl7cmV0dXJuIHRoaXMuI2F9c2V0IGZpbHRlcmVkT3B0aW9ucyhUKXt0aGlzLiNhPVR9I249KEtpKHRoaXMsayksS2kodGhpcyx6LDApKTtnZXQgaGlnaGxpZ2h0ZWRJbmRleCgpe3JldHVybiB0aGlzLiNufXNldCBoaWdobGlnaHRlZEluZGV4KFQpe3RoaXMuI249VH0jbz0oS2kodGhpcyxNKSxLaSh0aGlzLEQsITEpKTtnZXQgaXNPcGVuZWQoKXtyZXR1cm4gdGhpcy4jb31zZXQgaXNPcGVuZWQoVCl7dGhpcy4jbz1UfSNzPShLaSh0aGlzLE4pLEtpKHRoaXMsXywiIikpO2dldCBzZWFyY2hWYWx1ZSgpe3JldHVybiB0aGlzLiNzfXNldCBzZWFyY2hWYWx1ZShUKXt0aGlzLiNzPVR9c3RhdGljIHN0eWxlcz1bRGUsLi4ub3QuYmFzZVN0eWxlcyxtLmRlZmF1bHRTdHlsZXMsb2VgCiAgICAgIC8qIFRPRE86IE1pZ3JhdGUgaGFyZGNvZGVkIHZhbHVlcyB0byAtLWRlZXMtKiBDU1MgdmFyaWFibGVzICovCiAgICAgICogewogICAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7CiAgICAgIH0KCiAgICAgIDpob3N0IHsKICAgICAgICBmb250LWZhbWlseTogJHtJcn07CiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICAgIGNvbG9yOiAke20uYmRUaGVtZSgiaHNsKDAgMCUgMTUlKSIsImhzbCgwIDAlIDkwJSkiKX07CiAgICAgIH0KCiAgICAgIC5tYWluY29udGFpbmVyIHsKICAgICAgICBkaXNwbGF5OiBibG9jazsKICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgIH0KCiAgICAgIC5zZWxlY3RlZEJveCB7CiAgICAgICAgdXNlci1zZWxlY3Q6IG5vbmU7CiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICAgIHdpZHRoOiAxMDAlOwogICAgICAgIGhlaWdodDogNDBweDsKICAgICAgICBsaW5lLWhlaWdodDogMzhweDsKICAgICAgICBwYWRkaW5nOiAwIDQwcHggMCAxMnB4OwogICAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50OwogICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICR7bS5iZFRoZW1lKCJoc2woMCAwJSA4OS44JSkiLCJoc2woMCAwJSAxNC45JSkiKX07CiAgICAgICAgYm9yZGVyLXJhZGl1czogNnB4OwogICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjE1cyBlYXNlOwogICAgICAgIGZvbnQtc2l6ZTogMTRweDsKICAgICAgICBjb2xvcjogJHttLmJkVGhlbWUoImhzbCgwIDAlIDklKSIsImhzbCgwIDAlIDk1JSkiKX07CiAgICAgICAgY3Vyc29yOiBwb2ludGVyOwogICAgICAgIG92ZXJmbG93OiBoaWRkZW47CiAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7CiAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDsKICAgICAgfQoKICAgICAgLnNlbGVjdGVkQm94OmhvdmVyOm5vdCguZGlzYWJsZWQpIHsKICAgICAgICBib3JkZXItY29sb3I6ICR7bS5iZFRoZW1lKCJoc2woMCAwJSA3OS44JSkiLCJoc2woMCAwJSAyMC45JSkiKX07CiAgICAgIH0KCiAgICAgIC5zZWxlY3RlZEJveDpmb2N1cy12aXNpYmxlIHsKICAgICAgICBvdXRsaW5lOiBub25lOwogICAgICAgIGJvcmRlci1jb2xvcjogJHttLmJkVGhlbWUoImhzbCgyMjIuMiA0Ny40JSA1MS4yJSkiLCJoc2woMjE3LjIgOTEuMiUgNTkuOCUpIil9OwogICAgICAgIGJveC1zaGFkb3c6IDAgMCAwIDNweCAke20uYmRUaGVtZSgiaHNsKDIyMi4yIDQ3LjQlIDUxLjIlIC8gMC4xKSIsImhzbCgyMTcuMiA5MS4yJSA1OS44JSAvIDAuMSkiKX07CiAgICAgIH0KCiAgICAgIC5zZWxlY3RlZEJveC5kaXNhYmxlZCB7CiAgICAgICAgYmFja2dyb3VuZDogJHttLmJkVGhlbWUoImhzbCgwIDAlIDk1LjElKSIsImhzbCgwIDAlIDE0LjklKSIpfTsKICAgICAgICBib3JkZXItY29sb3I6ICR7bS5iZFRoZW1lKCJoc2woMCAwJSA4OS44JSkiLCJoc2woMCAwJSAxNC45JSkiKX07CiAgICAgICAgY29sb3I6ICR7bS5iZFRoZW1lKCJoc2woMCAwJSA2My45JSkiLCJoc2woMCAwJSA0NS4xJSkiKX07CiAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDsKICAgICAgICBvcGFjaXR5OiAwLjU7CiAgICAgIH0KCiAgICAgIC8qIERyb3Bkb3duIGFycm93ICovCiAgICAgIC5zZWxlY3RlZEJveDo6YWZ0ZXIgewogICAgICAgIGNvbnRlbnQ6ICcnOwogICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgICByaWdodDogMTJweDsKICAgICAgICB0b3A6IDUwJTsKICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSk7CiAgICAgICAgd2lkdGg6IDA7CiAgICAgICAgaGVpZ2h0OiAwOwogICAgICAgIGJvcmRlci1sZWZ0OiA0cHggc29saWQgdHJhbnNwYXJlbnQ7CiAgICAgICAgYm9yZGVyLXJpZ2h0OiA0cHggc29saWQgdHJhbnNwYXJlbnQ7CiAgICAgICAgYm9yZGVyLXRvcDogNHB4IHNvbGlkICR7bS5iZFRoZW1lKCJoc2woMCAwJSA0NS4xJSkiLCJoc2woMCAwJSA2My45JSkiKX07CiAgICAgICAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDAuMTVzIGVhc2U7CiAgICAgIH0KCiAgICAgIC5zZWxlY3RlZEJveC5vcGVuOjphZnRlciB7CiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpIHJvdGF0ZSgxODBkZWcpOwogICAgICB9CgogICAgICAuc2VsZWN0aW9uQm94IHsKICAgICAgICB3aWxsLWNoYW5nZTogdHJhbnNmb3JtLCBvcGFjaXR5OwogICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lOwogICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjE1cyBlYXNlOwogICAgICAgIG9wYWNpdHk6IDA7CiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC04cHgpIHNjYWxlKDAuOTgpOwogICAgICAgIGJhY2tncm91bmQ6ICR7bS5iZFRoZW1lKCJoc2woMCAwJSAxMDAlKSIsImhzbCgwIDAlIDMuOSUpIil9OwogICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICR7bS5iZFRoZW1lKCJoc2woMCAwJSA4OS44JSkiLCJoc2woMCAwJSAxNC45JSkiKX07CiAgICAgICAgYm94LXNoYWRvdzogMCA0cHggNnB4IC0xcHggaHNsKDAgMCUgMCUgLyAwLjEpLCAwIDJweCA0cHggLTJweCBoc2woMCAwJSAwJSAvIDAuMSk7CiAgICAgICAgbWluLWhlaWdodDogNDBweDsKICAgICAgICBtYXgtaGVpZ2h0OiAzMDBweDsKICAgICAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgICAgIGJvcmRlci1yYWRpdXM6IDZweDsKICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgICAgdXNlci1zZWxlY3Q6IG5vbmU7CiAgICAgICAgbWFyZ2luLXRvcDogNHB4OwogICAgICAgIHotaW5kZXg6IDUwOwogICAgICAgIGxlZnQ6IDA7CiAgICAgICAgcmlnaHQ6IDA7CiAgICAgIH0KICAgICAgCiAgICAgIC5zZWxlY3Rpb25Cb3gudG9wIHsKICAgICAgICBib3R0b206IGNhbGMoMTAwJSArIDRweCk7CiAgICAgICAgdG9wOiBhdXRvOwogICAgICAgIG1hcmdpbi10b3A6IDA7CiAgICAgICAgbWFyZ2luLWJvdHRvbTogNHB4OwogICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSg4cHgpIHNjYWxlKDAuOTgpOwogICAgICB9CiAgICAgIAogICAgICAuc2VsZWN0aW9uQm94LmJvdHRvbSB7CiAgICAgICAgdG9wOiAxMDAlOwogICAgICB9CgogICAgICAuc2VsZWN0aW9uQm94LnNob3cgewogICAgICAgIHBvaW50ZXItZXZlbnRzOiBhbGw7CiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDApIHNjYWxlKDEpOwogICAgICAgIG9wYWNpdHk6IDE7CiAgICAgIH0KCiAgICAgIC8qIE9wdGlvbnMgY29udGFpbmVyICovCiAgICAgIC5vcHRpb25zLWNvbnRhaW5lciB7CiAgICAgICAgbWF4LWhlaWdodDogMjUwcHg7CiAgICAgICAgb3ZlcmZsb3cteTogYXV0bzsKICAgICAgICBwYWRkaW5nOiA0cHg7CiAgICAgIH0KCiAgICAgIC8qIE9wdGlvbnMgKi8KICAgICAgLm9wdGlvbiB7CiAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuMTVzIGVhc2U7CiAgICAgICAgbGluZS1oZWlnaHQ6IDMycHg7CiAgICAgICAgcGFkZGluZzogMCA4cHg7CiAgICAgICAgYm9yZGVyLXJhZGl1czogNHB4OwogICAgICAgIG1hcmdpbjogMnB4IDA7CiAgICAgICAgY3Vyc29yOiBwb2ludGVyOwogICAgICAgIGZvbnQtc2l6ZTogMTRweDsKICAgICAgICBjb2xvcjogJHttLmJkVGhlbWUoImhzbCgwIDAlIDE1JSkiLCJoc2woMCAwJSA5MCUpIil9OwogICAgICB9CgogICAgICAub3B0aW9uLmhpZ2hsaWdodGVkIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke20uYmRUaGVtZSgiaHNsKDAgMCUgOTUuMSUpIiwiaHNsKDAgMCUgMTQuOSUpIil9OwogICAgICB9CgogICAgICAub3B0aW9uOmhvdmVyIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke20uYmRUaGVtZSgiaHNsKDAgMCUgOTUuMSUpIiwiaHNsKDAgMCUgMTQuOSUpIil9OwogICAgICAgIGNvbG9yOiAke20uYmRUaGVtZSgiaHNsKDAgMCUgOSUpIiwiaHNsKDAgMCUgOTUlKSIpfTsKICAgICAgfQoKICAgICAgLyogTm8gb3B0aW9ucyBtZXNzYWdlICovCiAgICAgIC5uby1vcHRpb25zIHsKICAgICAgICBwYWRkaW5nOiA4cHg7CiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyOwogICAgICAgIGZvbnQtc2l6ZTogMTRweDsKICAgICAgICBjb2xvcjogJHttLmJkVGhlbWUoImhzbCgwIDAlIDQ1LjElKSIsImhzbCgwIDAlIDYzLjklKSIpfTsKICAgICAgICBmb250LXN0eWxlOiBpdGFsaWM7CiAgICAgIH0KCiAgICAgIC8qIFNlYXJjaCAqLwogICAgICAuc2VhcmNoIHsKICAgICAgICBwYWRkaW5nOiA0cHg7CiAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICR7bS5iZFRoZW1lKCJoc2woMCAwJSA4OS44JSkiLCJoc2woMCAwJSAxNC45JSkiKX07CiAgICAgICAgbWFyZ2luLWJvdHRvbTogNHB4OwogICAgICB9CiAgICAgIAogICAgICAuc2VhcmNoLmJvdHRvbSB7CiAgICAgICAgYm9yZGVyLWJvdHRvbTogbm9uZTsKICAgICAgICBib3JkZXItdG9wOiAxcHggc29saWQgJHttLmJkVGhlbWUoImhzbCgwIDAlIDg5LjglKSIsImhzbCgwIDAlIDE0LjklKSIpfTsKICAgICAgICBtYXJnaW4tYm90dG9tOiAwOwogICAgICAgIG1hcmdpbi10b3A6IDRweDsKICAgICAgfQogICAgICAKICAgICAgLnNlYXJjaCBpbnB1dCB7CiAgICAgICAgZGlzcGxheTogYmxvY2s7CiAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgICAgaGVpZ2h0OiAzMnB4OwogICAgICAgIHBhZGRpbmc6IDAgOHB4OwogICAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50OwogICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICR7bS5iZFRoZW1lKCJoc2woMCAwJSA4OS44JSkiLCJoc2woMCAwJSAxNC45JSkiKX07CiAgICAgICAgYm9yZGVyLXJhZGl1czogNHB4OwogICAgICAgIGNvbG9yOiBpbmhlcml0OwogICAgICAgIGZvbnQtc2l6ZTogMTRweDsKICAgICAgICBmb250LWZhbWlseTogaW5oZXJpdDsKICAgICAgICBvdXRsaW5lOiBub25lOwogICAgICAgIHRyYW5zaXRpb246IGJvcmRlci1jb2xvciAwLjE1cyBlYXNlOwogICAgICB9CgogICAgICAuc2VhcmNoIGlucHV0OjpwbGFjZWhvbGRlciB7CiAgICAgICAgY29sb3I6ICR7bS5iZFRoZW1lKCJoc2woMCAwJSA2My45JSkiLCJoc2woMCAwJSA0NS4xJSkiKX07CiAgICAgIH0KCiAgICAgIC5zZWFyY2ggaW5wdXQ6Zm9jdXMgewogICAgICAgIGJvcmRlci1jb2xvcjogJHttLmJkVGhlbWUoImhzbCgyMjIuMiA0Ny40JSA1MS4yJSkiLCJoc2woMjE3LjIgOTEuMiUgNTkuOCUpIil9OwogICAgICB9CgogICAgICAvKiBTY3JvbGxiYXIgc3R5bGluZyAqLwogICAgICAub3B0aW9ucy1jb250YWluZXI6Oi13ZWJraXQtc2Nyb2xsYmFyIHsKICAgICAgICB3aWR0aDogOHB4OwogICAgICB9CgogICAgICAub3B0aW9ucy1jb250YWluZXI6Oi13ZWJraXQtc2Nyb2xsYmFyLXRyYWNrIHsKICAgICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDsKICAgICAgfQoKICAgICAgLm9wdGlvbnMtY29udGFpbmVyOjotd2Via2l0LXNjcm9sbGJhci10aHVtYiB7CiAgICAgICAgYmFja2dyb3VuZDogJHttLmJkVGhlbWUoImhzbCgwIDAlIDg5LjglKSIsImhzbCgwIDAlIDE0LjklKSIpfTsKICAgICAgICBib3JkZXItcmFkaXVzOiA0cHg7CiAgICAgIH0KCiAgICAgIC5vcHRpb25zLWNvbnRhaW5lcjo6LXdlYmtpdC1zY3JvbGxiYXItdGh1bWI6aG92ZXIgewogICAgICAgIGJhY2tncm91bmQ6ICR7bS5iZFRoZW1lKCJoc2woMCAwJSA3OS44JSkiLCJoc2woMCAwJSAyMC45JSkiKX07CiAgICAgIH0KICAgIGBdO3JlbmRlcigpe3JldHVybiBDYAogICAgICA8ZGl2IGNsYXNzPSJpbnB1dC13cmFwcGVyIj4KICAgICAgICA8ZGVlcy1sYWJlbCAubGFiZWw9JHt0aGlzLmxhYmVsfSAuZGVzY3JpcHRpb249JHt0aGlzLmRlc2NyaXB0aW9ufSAucmVxdWlyZWQ9JHt0aGlzLnJlcXVpcmVkfT48L2RlZXMtbGFiZWw+CiAgICAgICAgPGRpdiBjbGFzcz0ibWFpbmNvbnRhaW5lciI+CiAgICAgICAgICA8ZGl2CiAgICAgICAgICAgIGNsYXNzPSJzZWxlY3RlZEJveCAke3RoaXMuaXNPcGVuZWQ/Im9wZW4iOiIifSAke3RoaXMuZGlzYWJsZWQ/ImRpc2FibGVkIjoiIn0iCiAgICAgICAgICAgIEBjbGljaz0iJHsoKT0+IXRoaXMuZGlzYWJsZWQmJnRoaXMudG9nZ2xlU2VsZWN0aW9uQm94KCl9IgogICAgICAgICAgICB0YWJpbmRleD0iJHt0aGlzLmRpc2FibGVkPyItMSI6IjAifSIKICAgICAgICAgICAgQGtleWRvd249IiR7dGhpcy5oYW5kbGVTZWxlY3RlZEJveEtleWRvd259IgogICAgICAgICAgPgogICAgICAgICAgICAke3RoaXMuc2VsZWN0ZWRPcHRpb24/Lm9wdGlvbnx8IlNlbGVjdCBhbiBvcHRpb24ifQogICAgICAgICAgPC9kaXY+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJzZWxlY3Rpb25Cb3ggJHt0aGlzLmlzT3BlbmVkPyJzaG93IjoiIn0gJHt0aGlzLm9wZW5zVG9Ub3A/InRvcCI6ImJvdHRvbSJ9Ij4KICAgICAgICAgICAgJHt0aGlzLmVuYWJsZVNlYXJjaD9DYAogICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJzZWFyY2giPgogICAgICAgICAgICAgICAgICAgIDxpbnB1dCAKICAgICAgICAgICAgICAgICAgICAgIHR5cGU9InRleHQiIAogICAgICAgICAgICAgICAgICAgICAgcGxhY2Vob2xkZXI9IlNlYXJjaCBvcHRpb25zLi4uIiAKICAgICAgICAgICAgICAgICAgICAgIC52YWx1ZT0iJHt0aGlzLnNlYXJjaFZhbHVlfSIKICAgICAgICAgICAgICAgICAgICAgIEBpbnB1dD0iJHt0aGlzLmhhbmRsZVNlYXJjaH0iCiAgICAgICAgICAgICAgICAgICAgICBAY2xpY2s9IiR7VD0+VC5zdG9wUHJvcGFnYXRpb24oKX0iCiAgICAgICAgICAgICAgICAgICAgICBAa2V5ZG93bj0iJHt0aGlzLmhhbmRsZVNlYXJjaEtleWRvd259IgogICAgICAgICAgICAgICAgICAgIC8+CiAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgYDpudWxsfQogICAgICAgICAgICA8ZGl2IGNsYXNzPSJvcHRpb25zLWNvbnRhaW5lciI+CiAgICAgICAgICAgICAgJHt0aGlzLmZpbHRlcmVkT3B0aW9ucy5sZW5ndGg9PT0wP0NgPGRpdiBjbGFzcz0ibm8tb3B0aW9ucyI+Tm8gb3B0aW9ucyBmb3VuZDwvZGl2PmA6dGhpcy5maWx0ZXJlZE9wdGlvbnMubWFwKChULEUpPT57bGV0IHE9dGhpcy5oaWdobGlnaHRlZEluZGV4PT09RTtyZXR1cm4gQ2AKICAgICAgICAgICAgICAgICAgICAgIDxkaXYKICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9Im9wdGlvbiAke3E/ImhpZ2hsaWdodGVkIjoiIn0iCiAgICAgICAgICAgICAgICAgICAgICAgIEBjbGljaz0iJHsoKT0+dGhpcy51cGRhdGVTZWxlY3Rpb24oVCl9IgogICAgICAgICAgICAgICAgICAgICAgICBAbW91c2VlbnRlcj0iJHsoKT0+dGhpcy5oaWdobGlnaHRlZEluZGV4PUV9IgogICAgICAgICAgICAgICAgICAgICAgPgogICAgICAgICAgICAgICAgICAgICAgICAke1Qub3B0aW9ufQogICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgYH0pfQogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIDwvZGl2PgogICAgICAgIDwvZGl2PgogICAgICA8L2Rpdj4KICAgIGB9YXN5bmMgY29ubmVjdGVkQ2FsbGJhY2soKXtzdXBlci5jb25uZWN0ZWRDYWxsYmFjaygpLHRoaXMuaGFuZGxlQ2xpY2tPdXRzaWRlPXRoaXMuaGFuZGxlQ2xpY2tPdXRzaWRlLmJpbmQodGhpcyl9Zmlyc3RVcGRhdGVkKCl7dGhpcy5zZWxlY3RlZE9wdGlvbj10aGlzLnNlbGVjdGVkT3B0aW9ufHxudWxsLHRoaXMuZmlsdGVyZWRPcHRpb25zPXRoaXMub3B0aW9uc311cGRhdGVkKFQpe3N1cGVyLnVwZGF0ZWQoVCksVC5oYXMoIm9wdGlvbnMiKSYmKHRoaXMuZmlsdGVyZWRPcHRpb25zPXRoaXMub3B0aW9ucyl9YXN5bmMgdXBkYXRlU2VsZWN0aW9uKFQpe3RoaXMuc2VsZWN0ZWRPcHRpb249VCx0aGlzLmlzT3BlbmVkPSExLHRoaXMuc2VhcmNoVmFsdWU9IiIsdGhpcy5maWx0ZXJlZE9wdGlvbnM9dGhpcy5vcHRpb25zLHRoaXMuaGlnaGxpZ2h0ZWRJbmRleD0wLHRoaXMuZGlzcGF0Y2hFdmVudChuZXcgQ3VzdG9tRXZlbnQoInNlbGVjdGVkT3B0aW9uIix7ZGV0YWlsOlQsYnViYmxlczohMH0pKSx0aGlzLmNoYW5nZVN1YmplY3QubmV4dCh0aGlzKX1oYW5kbGVDbGlja091dHNpZGU9KEtpKHRoaXMsUyksVD0+e1QuY29tcG9zZWRQYXRoKCkuaW5jbHVkZXModGhpcyl8fCh0aGlzLmlzT3BlbmVkPSExLHRoaXMuc2VhcmNoVmFsdWU9IiIsdGhpcy5maWx0ZXJlZE9wdGlvbnM9dGhpcy5vcHRpb25zLGRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoImNsaWNrIix0aGlzLmhhbmRsZUNsaWNrT3V0c2lkZSkpfSk7YXN5bmMgdG9nZ2xlU2VsZWN0aW9uQm94KCl7aWYodGhpcy5pc09wZW5lZD0hdGhpcy5pc09wZW5lZCx0aGlzLmlzT3BlbmVkKXtsZXQgRT10aGlzLnNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvcigiLnNlbGVjdGVkQm94IikuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkscT13aW5kb3cuaW5uZXJIZWlnaHQtRS5ib3R0b20sQj1FLnRvcDt0aGlzLm9wZW5zVG9Ub3A9cTwzMDAmJkI+cSxhd2FpdCB0aGlzLnVwZGF0ZUNvbXBsZXRlO2xldCBHPXRoaXMuc2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yKCIuc2VhcmNoIGlucHV0Iik7RyYmRy5mb2N1cygpLHNldFRpbWVvdXQoKCk9Pntkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsdGhpcy5oYW5kbGVDbGlja091dHNpZGUpfSwwKX1lbHNlIHRoaXMuc2VhcmNoVmFsdWU9IiIsdGhpcy5maWx0ZXJlZE9wdGlvbnM9dGhpcy5vcHRpb25zLGRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoImNsaWNrIix0aGlzLmhhbmRsZUNsaWNrT3V0c2lkZSl9aGFuZGxlU2VhcmNoKFQpe2xldCBFPVQudGFyZ2V0LnZhbHVlO3RoaXMuc2VhcmNoVmFsdWU9RTtsZXQgcT1FLnRvTG93ZXJDYXNlKCk7dGhpcy5maWx0ZXJlZE9wdGlvbnM9dGhpcy5vcHRpb25zLmZpbHRlcihCPT5CLm9wdGlvbi50b0xvd2VyQ2FzZSgpLmluY2x1ZGVzKHEpKSx0aGlzLmhpZ2hsaWdodGVkSW5kZXg9MH1oYW5kbGVLZXlEb3duKFQpe2xldCBFPVQua2V5LHE9dGhpcy5maWx0ZXJlZE9wdGlvbnMubGVuZ3RoLTE7RT09PSJBcnJvd0Rvd24iPyhULnByZXZlbnREZWZhdWx0KCksdGhpcy5oaWdobGlnaHRlZEluZGV4PXRoaXMuaGlnaGxpZ2h0ZWRJbmRleCsxPnE/MDp0aGlzLmhpZ2hsaWdodGVkSW5kZXgrMSk6RT09PSJBcnJvd1VwIj8oVC5wcmV2ZW50RGVmYXVsdCgpLHRoaXMuaGlnaGxpZ2h0ZWRJbmRleD10aGlzLmhpZ2hsaWdodGVkSW5kZXgtMTwwP3E6dGhpcy5oaWdobGlnaHRlZEluZGV4LTEpOkU9PT0iRW50ZXIiPyhULnByZXZlbnREZWZhdWx0KCksdGhpcy5maWx0ZXJlZE9wdGlvbnNbdGhpcy5oaWdobGlnaHRlZEluZGV4XSYmdGhpcy51cGRhdGVTZWxlY3Rpb24odGhpcy5maWx0ZXJlZE9wdGlvbnNbdGhpcy5oaWdobGlnaHRlZEluZGV4XSkpOkU9PT0iRXNjYXBlIiYmKFQucHJldmVudERlZmF1bHQoKSx0aGlzLmlzT3BlbmVkPSExKX1oYW5kbGVTZWFyY2hLZXlkb3duKFQpeyhULmtleT09PSJBcnJvd0Rvd24ifHxULmtleT09PSJBcnJvd1VwInx8VC5rZXk9PT0iRW50ZXIiKSYmdGhpcy5oYW5kbGVLZXlEb3duKFQpfWhhbmRsZVNlbGVjdGVkQm94S2V5ZG93bihUKXt0aGlzLmRpc2FibGVkfHwoVC5rZXk9PT0iRW50ZXIifHxULmtleT09PSIgIj8oVC5wcmV2ZW50RGVmYXVsdCgpLHRoaXMudG9nZ2xlU2VsZWN0aW9uQm94KCkpOlQua2V5PT09IkFycm93RG93biJ8fFQua2V5PT09IkFycm93VXAiPyhULnByZXZlbnREZWZhdWx0KCksdGhpcy5pc09wZW5lZHx8dGhpcy50b2dnbGVTZWxlY3Rpb25Cb3goKSk6VC5rZXk9PT0iRXNjYXBlIiYmKFQucHJldmVudERlZmF1bHQoKSx0aGlzLmlzT3BlbmVkJiYodGhpcy5pc09wZW5lZD0hMSkpKX1nZXRWYWx1ZSgpe3JldHVybiB0aGlzLnNlbGVjdGVkT3B0aW9ufXNldFZhbHVlKFQpe3RoaXMuc2VsZWN0ZWRPcHRpb249VH1hc3luYyBkaXNjb25uZWN0ZWRDYWxsYmFjaygpe2F3YWl0IHN1cGVyLmRpc2Nvbm5lY3RlZENhbGxiYWNrKCksZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcigiY2xpY2siLHRoaXMuaGFuZGxlQ2xpY2tPdXRzaWRlKX1zdGF0aWN7S2koaSxyKX19O3JldHVybiAkPWl9KSgpfSk7dmFyIFZzcixVc3I9cCgoKT0+e3hlKCk7YjZlKCk7T2koKTtWc3I9KCk9PkNgCiAgPGRlZXMtZGVtb3dyYXBwZXI+CiAgICA8c3R5bGU+CiAgICAgICR7b2VgCiAgICAgICAgLmRlbW8tc2hlbGwgewogICAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgICAgICBnYXA6IDMycHg7CiAgICAgICAgICBwYWRkaW5nOiAyNHB4OwogICAgICAgICAgbWF4LXdpZHRoOiAxMTYwcHg7CiAgICAgICAgICBtYXJnaW46IDAgYXV0bzsKICAgICAgICB9CgogICAgICAgIC5kZW1vLWdyaWQgewogICAgICAgICAgZGlzcGxheTogZ3JpZDsKICAgICAgICAgIGdhcDogMjRweDsKICAgICAgICB9CgogICAgICAgIEBtZWRpYSAobWluLXdpZHRoOiA5NjBweCkgewogICAgICAgICAgLmRlbW8tZ3JpZC0tdHdvIHsKICAgICAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoMiwgbWlubWF4KDAsIDFmcikpOwogICAgICAgICAgfQogICAgICAgIH0KCiAgICAgICAgLmRlbW8tc3RhY2sgewogICAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgICAgICBnYXA6IDE4cHg7CiAgICAgICAgfQoKICAgICAgICAuZGVtby1ub3RlIHsKICAgICAgICAgIG1hcmdpbi10b3A6IDE2cHg7CiAgICAgICAgICBwYWRkaW5nOiAxNnB4OwogICAgICAgICAgYm9yZGVyLXJhZGl1czogMTJweDsKICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICR7bS5iZFRoZW1lKCJoc2woMjE3IDkxJSA5MCUpIiwiaHNsKDIxNSAyMCUgMjYlKSIpfTsKICAgICAgICAgIGJhY2tncm91bmQ6ICR7bS5iZFRoZW1lKCJoc2woMjEzIDEwMCUgOTclKSIsImhzbCgyMTUgMjAlIDEyJSkiKX07CiAgICAgICAgICBjb2xvcjogJHttLmJkVGhlbWUoImhzbCgyMTUgMjUlIDMyJSkiLCJoc2woMjE1IDIwJSA4MiUpIil9OwogICAgICAgICAgZm9udC1zaXplOiAxM3B4OwogICAgICAgICAgbGluZS1oZWlnaHQ6IDEuNTU7CiAgICAgICAgfQoKICAgICAgICAuZGVtby1ub3RlIHN0cm9uZyB7CiAgICAgICAgICBjb2xvcjogJHttLmJkVGhlbWUoImhzbCgyMTcgOTElIDQ1JSkiLCJoc2woMjEzIDkzJSA2OCUpIil9OwogICAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDsKICAgICAgICB9CiAgICAgIGB9CiAgICA8L3N0eWxlPgoKICAgIDxkaXYgY2xhc3M9ImRlbW8tc2hlbGwiPgogICAgICA8ZGVlcy1wYW5lbAogICAgICAgIC50aXRsZT0keyJNb2Rlcm4gZmlsZSB1cGxvYWRlciJ9CiAgICAgICAgLnN1YnRpdGxlPSR7IlNoYWRjbi1pbnNwaXJlZCBsYXlvdXQgd2l0aCBkcmFnICYgZHJvcCwgcHJldmlld3MgYW5kIHZhbGlkYXRpb24ifQogICAgICA+CiAgICAgICAgPGRpdiBjbGFzcz0iZGVtby1ncmlkIGRlbW8tZ3JpZC0tdHdvIj4KICAgICAgICAgIDxkaXYgY2xhc3M9ImRlbW8tc3RhY2siPgogICAgICAgICAgICA8ZGVlcy1pbnB1dC1maWxldXBsb2FkCiAgICAgICAgICAgICAgLmxhYmVsPSR7IkF0dGFjaG1lbnRzIn0KICAgICAgICAgICAgICAuZGVzY3JpcHRpb249JHsiVXBsb2FkIHN1cHBvcnRpbmcgZG9jdW1lbnRzIGZvciB5b3VyIHJlcXVlc3QifQogICAgICAgICAgICAgIC5hY2NlcHQ9JHsiaW1hZ2UvKiwucGRmLC56aXAifQogICAgICAgICAgICAgIC5tYXhTaXplPSR7MTAqMTAyNCoxMDI0fQogICAgICAgICAgICA+PC9kZWVzLWlucHV0LWZpbGV1cGxvYWQ+CgogICAgICAgICAgICA8ZGVlcy1pbnB1dC1maWxldXBsb2FkCiAgICAgICAgICAgICAgLmxhYmVsPSR7IkJyYW5kIGFzc2V0cyJ9CiAgICAgICAgICAgICAgLmRlc2NyaXB0aW9uPSR7IlVwbG9hZCBoaWdoLXJlc29sdXRpb24gaW1hZ2VyeSAoSlBHL1BORykifQogICAgICAgICAgICAgIC5hY2NlcHQ9JHsiaW1hZ2UvanBlZyxpbWFnZS9wbmcifQogICAgICAgICAgICAgIC5tdWx0aXBsZT0keyExfQogICAgICAgICAgICAgIC5tYXhTaXplPSR7NSoxMDI0KjEwMjR9CiAgICAgICAgICAgICAgLmJ1dHRvblRleHQ9JHsiU2VsZWN0IGNvdmVyIGltYWdlIn0KICAgICAgICAgICAgPjwvZGVlcy1pbnB1dC1maWxldXBsb2FkPgogICAgICAgICAgPC9kaXY+CgogICAgICAgICAgPGRpdiBjbGFzcz0iZGVtby1zdGFjayI+CiAgICAgICAgICAgIDxkZWVzLWlucHV0LWZpbGV1cGxvYWQKICAgICAgICAgICAgICAubGFiZWw9JHsiQXVkaW8gdXBsb2FkcyJ9CiAgICAgICAgICAgICAgLmRlc2NyaXB0aW9uPSR7IlNoYXJlIHBvZGNhc3QgZHJhZnRzIChNUDMvV0FWLCBtYXggMjVNQiBlYWNoKSJ9CiAgICAgICAgICAgICAgLmFjY2VwdD0keyJhdWRpby8qIn0KICAgICAgICAgICAgICAubWF4U2l6ZT0kezI1KjEwMjQqMTAyNH0KICAgICAgICAgICAgPjwvZGVlcy1pbnB1dC1maWxldXBsb2FkPgoKICAgICAgICAgICAgPGRlZXMtaW5wdXQtZmlsZXVwbG9hZAogICAgICAgICAgICAgIC5sYWJlbD0keyJEaXNhYmxlZCBleGFtcGxlIn0KICAgICAgICAgICAgICAuZGVzY3JpcHRpb249JHsiVXBsb2FkZXIgaXMgZGlzYWJsZWQgd2hpbGUgbW9kZXJhdGlvbiBpcyBwZW5kaW5nIn0KICAgICAgICAgICAgICAuZGlzYWJsZWQ9JHshMH0KICAgICAgICAgICAgPjwvZGVlcy1pbnB1dC1maWxldXBsb2FkPgogICAgICAgICAgPC9kaXY+CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGVlcy1wYW5lbD4KCiAgICAgIDxkZWVzLXBhbmVsCiAgICAgICAgLnRpdGxlPSR7IkZvcm0gaW50ZWdyYXRpb24ifQogICAgICAgIC5zdWJ0aXRsZT0keyJDb21iaW5lIGZpbGUgdXBsb2FkcyB3aXRoIHRoZSByZXN0IG9mIHRoZSBERUVTIGZvcm0gZWNvc3lzdGVtIn0KICAgICAgPgogICAgICAgIDxkaXYgY2xhc3M9ImRlbW8tZ3JpZCI+CiAgICAgICAgICA8ZGVlcy1mb3JtPgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJkZW1vLXN0YWNrIj4KICAgICAgICAgICAgICA8ZGVlcy1pbnB1dC10ZXh0CiAgICAgICAgICAgICAgICAubGFiZWw9JHsiUHJvamVjdCBuYW1lIn0KICAgICAgICAgICAgICAgIC5kZXNjcmlwdGlvbj0keyJIb3cgc2hvdWxkIHdlIHJlZmVyIHRvIHRoaXMgcHJvamVjdCBpbnRlcm5hbGx5PyJ9CiAgICAgICAgICAgICAgICAucmVxdWlyZWQ9JHshMH0KICAgICAgICAgICAgICAgIC5rZXk9JHsicHJvamVjdE5hbWUifQogICAgICAgICAgICAgID48L2RlZXMtaW5wdXQtdGV4dD4KCiAgICAgICAgICAgICAgPGRlZXMtaW5wdXQtdGV4dAogICAgICAgICAgICAgICAgLmxhYmVsPSR7IkNvbnRhY3QgZW1haWwifQogICAgICAgICAgICAgICAgLmlucHV0VHlwZT0keyJlbWFpbCJ9CiAgICAgICAgICAgICAgICAucmVxdWlyZWQ9JHshMH0KICAgICAgICAgICAgICAgIC5rZXk9JHsiY29udGFjdEVtYWlsIn0KICAgICAgICAgICAgICA+PC9kZWVzLWlucHV0LXRleHQ+CgogICAgICAgICAgICAgIDxkZWVzLWlucHV0LWZpbGV1cGxvYWQKICAgICAgICAgICAgICAgIC5sYWJlbD0keyJTdGF0ZW1lbnQgb2Ygd29yayJ9CiAgICAgICAgICAgICAgICAuZGVzY3JpcHRpb249JHsiVXBsb2FkIGEgc2lnbmVkIHN0YXRlbWVudCBvZiB3b3JrIChQREYsIG1heCAxNU1CKSJ9CiAgICAgICAgICAgICAgICAucmVxdWlyZWQ9JHshMH0KICAgICAgICAgICAgICAgIC5hY2NlcHQ9JHsiYXBwbGljYXRpb24vcGRmIn0KICAgICAgICAgICAgICAgIC5tYXhTaXplPSR7MTUqMTAyNCoxMDI0fQogICAgICAgICAgICAgICAgLm11bHRpcGxlPSR7ITF9CiAgICAgICAgICAgICAgICAua2V5PSR7InNvdyJ9CiAgICAgICAgICAgICAgPjwvZGVlcy1pbnB1dC1maWxldXBsb2FkPgoKICAgICAgICAgICAgICA8ZGVlcy1pbnB1dC1maWxldXBsb2FkCiAgICAgICAgICAgICAgICAubGFiZWw9JHsiQ3JlYXRpdmUgcmVmZXJlbmNlcyJ9CiAgICAgICAgICAgICAgICAuZGVzY3JpcHRpb249JHsiT3B0aW9uYWwuIFVwbG9hZCB1cCB0byBmaXZlIHZpc3VhbCByZWZlcmVuY2VzIn0KICAgICAgICAgICAgICAgIC5hY2NlcHQ9JHsiaW1hZ2UvKiJ9CiAgICAgICAgICAgICAgICAubWF4RmlsZXM9JHs1fQogICAgICAgICAgICAgICAgLm1heFNpemU9JHs4KjEwMjQqMTAyNH0KICAgICAgICAgICAgICAgIC5rZXk9JHsicmVmZXJlbmNlcyJ9CiAgICAgICAgICAgICAgPjwvZGVlcy1pbnB1dC1maWxldXBsb2FkPgoKICAgICAgICAgICAgICA8ZGVlcy1pbnB1dC10ZXh0CiAgICAgICAgICAgICAgICAubGFiZWw9JHsiTm90ZXMifQogICAgICAgICAgICAgICAgLmRlc2NyaXB0aW9uPSR7IkFkZCBvcHRpb25hbCBjb250ZXh0IGZvciByZXZpZXdlcnMifQogICAgICAgICAgICAgICAgLmlucHV0VHlwZT0keyJ0ZXh0YXJlYSJ9CiAgICAgICAgICAgICAgICAua2V5PSR7Im5vdGVzIn0KICAgICAgICAgICAgICA+PC9kZWVzLWlucHV0LXRleHQ+CgogICAgICAgICAgICAgIDxkZWVzLWZvcm0tc3VibWl0IC50ZXh0PSR7IlN1Ym1pdCBicmllZmluZyJ9PjwvZGVlcy1mb3JtLXN1Ym1pdD4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICA8L2RlZXMtZm9ybT4KCiAgICAgICAgICA8ZGl2IGNsYXNzPSJkZW1vLW5vdGUiPgogICAgICAgICAgICA8c3Ryb25nPkdvb2QgdG8ga25vdzo8L3N0cm9uZz4KICAgICAgICAgICAgPHVsPgogICAgICAgICAgICAgIDxsaT5EcmFnICYgZHJvcCBoaWdobGlnaHRzIHRoZSBkcm9wem9uZSBhbmQgc3VwcG9ydHMga2V5Ym9hcmQgYWN0aXZhdGlvbi48L2xpPgogICAgICAgICAgICAgIDxsaT5BY2NlcHRlZCBmaWxlIHR5cGVzIGFyZSBzdW1tYXJpc2VkIGF1dG9tYXRpY2FsbHkgZnJvbSB0aGUgPGNvZGU+YWNjZXB0PC9jb2RlPiBhdHRyaWJ1dGUuPC9saT4KICAgICAgICAgICAgICA8bGk+SW1hZ2UgdXBsb2FkcyBzaG93IGxpdmUgcHJldmlld3MgZ2VuZXJhdGVkIHZpYSA8Y29kZT5VUkwuY3JlYXRlT2JqZWN0VVJMPC9jb2RlPi48L2xpPgogICAgICAgICAgICAgIDxsaT5GaWxlIHNpemUgYW5kIGZpbGUtY291bnQgbGltaXRzIHN1cmZhY2UgaW5saW5lIHZhbGlkYXRpb24gbWVzc2FnZXMuPC9saT4KICAgICAgICAgICAgICA8bGk+VGhlIGNvbXBvbmVudCBzdGF5cyBjb21wYXRpYmxlIHdpdGggPGNvZGU+ZGVlcy1mb3JtPC9jb2RlPiB2YWx1ZSBhY2Nlc3NvcnMuPC9saT4KICAgICAgICAgICAgPC91bD4KICAgICAgICAgIDwvZGl2PgogICAgICAgIDwvZGl2PgogICAgICA8L2RlZXMtcGFuZWw+CiAgICA8L2Rpdj4KICA8L2RlZXMtZGVtb3dyYXBwZXI+CmB9KTt2YXIgV3NyLEdzcj1wKCgpPT57eGUoKTtNMSgpO1dzcj1bbS5kZWZhdWx0U3R5bGVzLC4uLm90LmJhc2VTdHlsZXMsb2VgCiAgICA6aG9zdCB7CiAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgZGlzcGxheTogYmxvY2s7CiAgICB9CgoKICAgIC5pbnB1dC13cmFwcGVyIHsKICAgICAgZGlzcGxheTogZmxleDsKICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgZ2FwOiAxMnB4OwogICAgfQoKICAgIC5kcm9wem9uZSB7CiAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgcGFkZGluZzogMjBweDsKICAgICAgYm9yZGVyLXJhZGl1czogMTJweDsKICAgICAgYm9yZGVyOiAxLjVweCBkYXNoZWQgJHttLmJkVGhlbWUoImhzbCgyMTUgMTYlIDgwJSkiLCJoc2woMjE3IDIwJSAyNSUpIil9OwogICAgICBiYWNrZ3JvdW5kOiAke20uYmRUaGVtZSgiaHNsKDAgMCUgMTAwJSkiLCJoc2woMjE1IDIwJSAxMiUpIil9OwogICAgICB0cmFuc2l0aW9uOiBib3JkZXItY29sb3IgMC4ycyBlYXNlLCBib3gtc2hhZG93IDAuMnMgZWFzZSwgYmFja2dyb3VuZCAwLjJzIGVhc2U7CiAgICAgIGN1cnNvcjogcG9pbnRlcjsKICAgICAgb3V0bGluZTogbm9uZTsKICAgIH0KCiAgICAuZHJvcHpvbmU6Zm9jdXMtdmlzaWJsZSB7CiAgICAgIGJveC1zaGFkb3c6IDAgMCAwIDJweCAke20uYmRUaGVtZSgiaHNsKDAgMCUgMTAwJSkiLCJoc2woMjE1IDIwJSAxMiUpIil9LAogICAgICAgIDAgMCAwIDRweCAke20uYmRUaGVtZSgiaHNsKDIxNyA5MSUgNjAlIC8gMC41KSIsImhzbCgyMTMgOTMlIDY4JSAvIDAuNCkiKX07CiAgICAgIGJvcmRlci1jb2xvcjogJHttLmJkVGhlbWUoImhzbCgyMTcgOTElIDYwJSkiLCJoc2woMjEzIDkzJSA2OCUpIil9OwogICAgfQoKICAgIC5kcm9wem9uZS0tYWN0aXZlIHsKICAgICAgYm9yZGVyLWNvbG9yOiAke20uYmRUaGVtZSgiaHNsKDIxNyA5MSUgNjAlKSIsImhzbCgyMTMgOTMlIDY4JSkiKX07CiAgICAgIGJveC1zaGFkb3c6IDAgMTJweCAzMnB4ICR7bS5iZFRoZW1lKCJyZ2JhKDE1LCAyMywgNDIsIDAuMTIpIiwicmdiYSgwLCAwLCAwLCAwLjM1KSIpfTsKICAgICAgYmFja2dyb3VuZDogJHttLmJkVGhlbWUoImhzbCgyMTcgOTElIDYwJSAvIDAuMDYpIiwiaHNsKDIxMyA5MyUgNjglIC8gMC4xMikiKX07CiAgICB9CgogICAgLmRyb3B6b25lLS1oYXMtZmlsZXMgewogICAgICBiYWNrZ3JvdW5kOiAke20uYmRUaGVtZSgiaHNsKDAgMCUgOTklKSIsImhzbCgyMTUgMjAlIDExJSkiKX07CiAgICB9CgogICAgLmRyb3B6b25lLS1kaXNhYmxlZCB7CiAgICAgIG9wYWNpdHk6IDAuNjsKICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7CiAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7CiAgICB9CgogICAgLmRyb3B6b25lX19ib2R5IHsKICAgICAgZGlzcGxheTogZmxleDsKICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgZ2FwOiAxNnB4OwogICAgfQoKICAgIC5kcm9wem9uZV9faWNvbiB7CiAgICAgIHdpZHRoOiA0OHB4OwogICAgICBoZWlnaHQ6IDQ4cHg7CiAgICAgIGJvcmRlci1yYWRpdXM6IDE2cHg7CiAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOwogICAgICBjb2xvcjogJHttLmJkVGhlbWUoImhzbCgyMTcgOTElIDYwJSkiLCJoc2woMjEzIDkzJSA2OCUpIil9OwogICAgICBiYWNrZ3JvdW5kOiAke20uYmRUaGVtZSgiaHNsKDIxNyA5MSUgNjAlIC8gMC4xMikiLCJoc2woMjEzIDkzJSA2OCUgLyAwLjEyKSIpfTsKICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICBmbGV4LXNocmluazogMDsKICAgIH0KCiAgICAuZHJvcHpvbmVfX2ljb24gZGVlcy1pY29uIHsKICAgICAgZm9udC1zaXplOiAyMnB4OwogICAgfQoKICAgIC5kcm9wem9uZV9fbG9hZGVyIHsKICAgICAgd2lkdGg6IDIwcHg7CiAgICAgIGhlaWdodDogMjBweDsKICAgICAgYm9yZGVyLXJhZGl1czogOTk5cHg7CiAgICAgIGJvcmRlcjogMnB4IHNvbGlkICR7bS5iZFRoZW1lKCJyZ2JhKDE1LCAyMywgNDIsIDAuMTUpIiwicmdiYSgyNTUsIDI1NSwgMjU1LCAwLjE1KSIpfTsKICAgICAgYm9yZGVyLXRvcC1jb2xvcjogJHttLmJkVGhlbWUoImhzbCgyMTcgOTElIDYwJSkiLCJoc2woMjEzIDkzJSA2OCUpIil9OwogICAgICBhbmltYXRpb246IGxvYWRlci1zcGluIDAuNnMgbGluZWFyIGluZmluaXRlOwogICAgfQoKICAgIC5kcm9wem9uZV9fY29udGVudCB7CiAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgIGdhcDogNHB4OwogICAgICBtaW4td2lkdGg6IDA7CiAgICB9CgogICAgLmRyb3B6b25lX19oZWFkbGluZSB7CiAgICAgIGZvbnQtc2l6ZTogMTVweDsKICAgICAgZm9udC13ZWlnaHQ6IDYwMDsKICAgICAgY29sb3I6ICR7bS5iZFRoZW1lKCJoc2woMjIyIDQ3JSAxMSUpIiwiaHNsKDIxMCAyMCUgOTYlKSIpfTsKICAgIH0KCiAgICAuZHJvcHpvbmVfX3N1YmxpbmUgewogICAgICBmb250LXNpemU6IDEzcHg7CiAgICAgIGNvbG9yOiAke20uYmRUaGVtZSgiaHNsKDIxNSAxNiUgNDYlKSIsImhzbCgyMTUgMTYlIDcwJSkiKX07CiAgICB9CgogICAgLmRyb3B6b25lX19icm93c2UgewogICAgICBhcHBlYXJhbmNlOiBub25lOwogICAgICBib3JkZXI6IG5vbmU7CiAgICAgIGJhY2tncm91bmQ6IG5vbmU7CiAgICAgIHBhZGRpbmc6IDA7CiAgICAgIG1hcmdpbi1sZWZ0OiA0cHg7CiAgICAgIGNvbG9yOiAke20uYmRUaGVtZSgiaHNsKDIxNyA5MSUgNjAlKSIsImhzbCgyMTMgOTMlIDY4JSkiKX07CiAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7CiAgICAgIGN1cnNvcjogcG9pbnRlcjsKICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lOwogICAgfQoKICAgIC5kcm9wem9uZV9fYnJvd3NlOmhvdmVyIHsKICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7CiAgICB9CgogICAgLmRyb3B6b25lX19icm93c2U6ZGlzYWJsZWQgewogICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkOwogICAgICBvcGFjaXR5OiAwLjY7CiAgICB9CgogICAgLmRyb3B6b25lX19tZXRhIHsKICAgICAgbWFyZ2luLXRvcDogMTRweDsKICAgICAgZGlzcGxheTogZmxleDsKICAgICAgZmxleC13cmFwOiB3cmFwOwogICAgICBnYXA6IDhweDsKICAgICAgZm9udC1zaXplOiAxMnB4OwogICAgICBjb2xvcjogJHttLmJkVGhlbWUoImhzbCgyMTUgMTYlIDUwJSkiLCJoc2woMjE1IDE2JSA3MiUpIil9OwogICAgfQoKICAgIC5kcm9wem9uZV9fbWV0YSBzcGFuIHsKICAgICAgcGFkZGluZzogNHB4IDEwcHg7CiAgICAgIGJvcmRlci1yYWRpdXM6IDk5OXB4OwogICAgICBiYWNrZ3JvdW5kOiAke20uYmRUaGVtZSgiaHNsKDIxNyA5MSUgOTUlKSIsImhzbCgyMTMgOTMlIDE4JSkiKX07CiAgICAgIGJvcmRlcjogMXB4IHNvbGlkICR7bS5iZFRoZW1lKCJoc2woMjE3IDkxJSA5MCUpIiwiaHNsKDIxMyA5MyUgMjQlKSIpfTsKICAgIH0KCiAgICAuZmlsZS1saXN0IHsKICAgICAgZGlzcGxheTogZmxleDsKICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgZ2FwOiAxMnB4OwogICAgICBtYXJnaW4tdG9wOiAyMHB4OwogICAgICBwYWRkaW5nLXRvcDogMjBweDsKICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICR7bS5iZFRoZW1lKCJoc2woMjE3IDkxJSA5MCUpIiwiaHNsKDIxMyA5MyUgMjQlKSIpfTsKICAgIH0KCiAgICAuZmlsZS1saXN0X19oZWFkZXIgewogICAgICBkaXNwbGF5OiBmbGV4OwogICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47CiAgICAgIGZvbnQtc2l6ZTogMTNweDsKICAgICAgZm9udC13ZWlnaHQ6IDUwMDsKICAgICAgY29sb3I6ICR7bS5iZFRoZW1lKCJoc2woMjE1IDE2JSA0NSUpIiwiaHNsKDIxNSAxNiUgNjglKSIpfTsKICAgIH0KCiAgICAuZmlsZS1saXN0X19jbGVhciB7CiAgICAgIGFwcGVhcmFuY2U6IG5vbmU7CiAgICAgIGJvcmRlcjogbm9uZTsKICAgICAgYmFja2dyb3VuZDogbm9uZTsKICAgICAgY29sb3I6ICR7bS5iZFRoZW1lKCJoc2woMjE3IDkxJSA2MCUpIiwiaHNsKDIxMyA5MyUgNjglKSIpfTsKICAgICAgY3Vyc29yOiBwb2ludGVyOwogICAgICBmb250LXdlaWdodDogNTAwOwogICAgICBmb250LXNpemU6IDEzcHg7CiAgICAgIHBhZGRpbmc6IDA7CiAgICB9CgogICAgLmZpbGUtbGlzdF9fY2xlYXI6aG92ZXIgewogICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTsKICAgIH0KCiAgICAuZmlsZS1saXN0X19pdGVtcyB7CiAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgIGdhcDogMTJweDsKICAgIH0KCiAgICAuZmlsZS1yb3cgewogICAgICBkaXNwbGF5OiBmbGV4OwogICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICBnYXA6IDEycHg7CiAgICAgIHBhZGRpbmc6IDEwcHggMTJweDsKICAgICAgYmFja2dyb3VuZDogJHttLmJkVGhlbWUoImhzbCgwIDAlIDEwMCUgLyAwLjUpIiwiaHNsKDIxNSAyMCUgMTYlIC8gMC41KSIpfTsKICAgICAgYm9yZGVyOiAxcHggc29saWQgJHttLmJkVGhlbWUoImhzbCgyMTMgMjclIDkyJSkiLCJoc2woMjE3IDI1JSAyNiUpIil9OwogICAgICBib3JkZXItcmFkaXVzOiA4cHg7CiAgICAgIHRyYW5zaXRpb246IGJhY2tncm91bmQgMC4xNXMgZWFzZTsKICAgIH0KCiAgICAuZmlsZS1yb3c6aG92ZXIgewogICAgICBiYWNrZ3JvdW5kOiAke20uYmRUaGVtZSgiaHNsKDAgMCUgMTAwJSAvIDAuOCkiLCJoc2woMjE1IDIwJSAxNiUgLyAwLjgpIil9OwogICAgfQoKICAgIC5maWxlLXRodW1iIHsKICAgICAgd2lkdGg6IDM2cHg7CiAgICAgIGhlaWdodDogMzZweDsKICAgICAgYm9yZGVyLXJhZGl1czogOHB4OwogICAgICBiYWNrZ3JvdW5kOiAke20uYmRUaGVtZSgiaHNsKDIxNCAzMSUgOTIlKSIsImhzbCgyMTcgMzIlIDE4JSkiKX07CiAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOwogICAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgICBmbGV4LXNocmluazogMDsKICAgIH0KCiAgICAuZmlsZS10aHVtYiBkZWVzLWljb24gewogICAgICBmb250LXNpemU6IDE4cHg7CiAgICAgIGNvbG9yOiAke20uYmRUaGVtZSgiaHNsKDIxNSAxNiUgNDUlKSIsImhzbCgyMTUgMTYlIDcwJSkiKX07CiAgICAgIGRpc3BsYXk6IGJsb2NrOwogICAgICB3aWR0aDogMThweDsKICAgICAgaGVpZ2h0OiAxOHB4OwogICAgICBsaW5lLWhlaWdodDogMTsKICAgICAgZmxleC1zaHJpbms6IDA7CiAgICB9CgoKICAgIC50aHVtYi1pbWFnZSB7CiAgICAgIHdpZHRoOiAxMDAlOwogICAgICBoZWlnaHQ6IDEwMCU7CiAgICAgIG9iamVjdC1maXQ6IGNvdmVyOwogICAgfQoKICAgIC5maWxlLW1ldGEgewogICAgICBkaXNwbGF5OiBmbGV4OwogICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICBnYXA6IDRweDsKICAgICAgbWluLXdpZHRoOiAwOwogICAgfQoKICAgIC5maWxlLW5hbWUgewogICAgICBmb250LXdlaWdodDogNjAwOwogICAgICBmb250LXNpemU6IDE0cHg7CiAgICAgIGNvbG9yOiAke20uYmRUaGVtZSgiaHNsKDIyMiA0NyUgMTElKSIsImhzbCgyMTAgMjAlIDk2JSkiKX07CiAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7CiAgICAgIG92ZXJmbG93OiBoaWRkZW47CiAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzOwogICAgfQoKICAgIC5maWxlLWRldGFpbHMgewogICAgICBkaXNwbGF5OiBmbGV4OwogICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICBnYXA6IDhweDsKICAgICAgZmxleC13cmFwOiB3cmFwOwogICAgICBmb250LXNpemU6IDEycHg7CiAgICAgIGNvbG9yOiAke20uYmRUaGVtZSgiaHNsKDIxNSAxNiUgNDYlKSIsImhzbCgyMTUgMTYlIDcwJSkiKX07CiAgICB9CgogICAgLmZpbGUtc2l6ZSB7CiAgICAgIGZvbnQtdmFyaWFudC1udW1lcmljOiB0YWJ1bGFyLW51bXM7CiAgICB9CgogICAgLmZpbGUtdHlwZSB7CiAgICAgIHBhZGRpbmc6IDJweCA4cHg7CiAgICAgIGJvcmRlci1yYWRpdXM6IDk5OXB4OwogICAgICBib3JkZXI6IDFweCBzb2xpZCAke20uYmRUaGVtZSgiaHNsKDIxNCAzMSUgODYlKSIsImhzbCgyMTcgMzIlIDI4JSkiKX07CiAgICAgIGNvbG9yOiAke20uYmRUaGVtZSgiaHNsKDIxNSAxNiUgNDYlKSIsImhzbCgyMTUgMTYlIDcwJSkiKX07CiAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7CiAgICAgIGxldHRlci1zcGFjaW5nOiAwLjA4ZW07CiAgICAgIGxpbmUtaGVpZ2h0OiAxOwogICAgfQoKICAgIC5maWxlLWFjdGlvbnMgewogICAgICBkaXNwbGF5OiBmbGV4OwogICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICBnYXA6IDhweDsKICAgICAgbWFyZ2luLWxlZnQ6IGF1dG87CiAgICB9CgogICAgLnJlbW92ZS1idXR0b24gewogICAgICB3aWR0aDogMjhweDsKICAgICAgaGVpZ2h0OiAyOHB4OwogICAgICBib3JkZXItcmFkaXVzOiA2cHg7CiAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50OwogICAgICBib3JkZXI6IG5vbmU7CiAgICAgIGN1cnNvcjogcG9pbnRlcjsKICAgICAgZGlzcGxheTogZmxleDsKICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7CiAgICAgIHRyYW5zaXRpb246IGJhY2tncm91bmQgMC4xNXMgZWFzZSwgdHJhbnNmb3JtIDAuMTVzIGVhc2UsIGNvbG9yIDAuMTVzIGVhc2U7CiAgICAgIGNvbG9yOiAke20uYmRUaGVtZSgiaHNsKDIxNSAxNiUgNTIlKSIsImhzbCgyMTUgMTYlIDY4JSkiKX07CiAgICB9CgogICAgLnJlbW92ZS1idXR0b246aG92ZXIgewogICAgICBiYWNrZ3JvdW5kOiAke20uYmRUaGVtZSgiaHNsKDAgNzIlIDUwJSAvIDAuMDgpIiwiaHNsKDAgNjIlIDMyJSAvIDAuMTUpIil9OwogICAgICBjb2xvcjogJHttLmJkVGhlbWUoImhzbCgwIDcyJSA0NiUpIiwiaHNsKDAgNzAlIDcwJSkiKX07CiAgICB9CgogICAgLnJlbW92ZS1idXR0b246YWN0aXZlIHsKICAgICAgdHJhbnNmb3JtOiBzY2FsZSgwLjk2KTsKICAgIH0KCiAgICAucmVtb3ZlLWJ1dHRvbiBkZWVzLWljb24gewogICAgICBkaXNwbGF5OiBibG9jazsKICAgICAgd2lkdGg6IDE0cHg7CiAgICAgIGhlaWdodDogMTRweDsKICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgICBsaW5lLWhlaWdodDogMTsKICAgICAgZmxleC1zaHJpbms6IDA7CiAgICB9CgogICAgLnZhbGlkYXRpb24tbWVzc2FnZSB7CiAgICAgIGZvbnQtc2l6ZTogMTNweDsKICAgICAgY29sb3I6ICR7bS5iZFRoZW1lKCJoc2woMCA3MiUgNDAlKSIsImhzbCgwIDcwJSA2OCUpIil9OwogICAgICBsaW5lLWhlaWdodDogMS41OwogICAgfQoKICAgIEBrZXlmcmFtZXMgbG9hZGVyLXNwaW4gewogICAgICB0byB7CiAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoMzYwZGVnKTsKICAgICAgfQogICAgfQogIGBdfSk7dmFyIHJsLGtpLE9OLGI2ZT1wKCgpPT57TTEoKTtVc3IoKTtHc3IoKTtvcigpO2VoKCk7eGUoKTtybD1mdW5jdGlvbihlLHQscixpLGEsbil7ZnVuY3Rpb24gbyh5KXtpZih5IT09dm9pZCAwJiZ0eXBlb2YgeSE9ImZ1bmN0aW9uIil0aHJvdyBuZXcgVHlwZUVycm9yKCJGdW5jdGlvbiBleHBlY3RlZCIpO3JldHVybiB5fWZvcih2YXIgcz1pLmtpbmQsbD1zPT09ImdldHRlciI/ImdldCI6cz09PSJzZXR0ZXIiPyJzZXQiOiJ2YWx1ZSIsYz0hdCYmZT9pLnN0YXRpYz9lOmUucHJvdG90eXBlOm51bGwsdT10fHwoYz9PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGMsaS5uYW1lKTp7fSksZCxoPSExLGY9ci5sZW5ndGgtMTtmPj0wO2YtLSl7dmFyIHg9e307Zm9yKHZhciB2IGluIGkpeFt2XT12PT09ImFjY2VzcyI/e306aVt2XTtmb3IodmFyIHYgaW4gaS5hY2Nlc3MpeC5hY2Nlc3Nbdl09aS5hY2Nlc3Nbdl07eC5hZGRJbml0aWFsaXplcj1mdW5jdGlvbih5KXtpZihoKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBhZGQgaW5pdGlhbGl6ZXJzIGFmdGVyIGRlY29yYXRpb24gaGFzIGNvbXBsZXRlZCIpO24ucHVzaChvKHl8fG51bGwpKX07dmFyIGI9KDAscltmXSkocz09PSJhY2Nlc3NvciI/e2dldDp1LmdldCxzZXQ6dS5zZXR9OnVbbF0seCk7aWYocz09PSJhY2Nlc3NvciIpe2lmKGI9PT12b2lkIDApY29udGludWU7aWYoYj09PW51bGx8fHR5cGVvZiBiIT0ib2JqZWN0Iil0aHJvdyBuZXcgVHlwZUVycm9yKCJPYmplY3QgZXhwZWN0ZWQiKTsoZD1vKGIuZ2V0KSkmJih1LmdldD1kKSwoZD1vKGIuc2V0KSkmJih1LnNldD1kKSwoZD1vKGIuaW5pdCkpJiZhLnVuc2hpZnQoZCl9ZWxzZShkPW8oYikpJiYocz09PSJmaWVsZCI/YS51bnNoaWZ0KGQpOnVbbF09ZCl9YyYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGMsaS5uYW1lLHUpLGg9ITB9LGtpPWZ1bmN0aW9uKGUsdCxyKXtmb3IodmFyIGk9YXJndW1lbnRzLmxlbmd0aD4yLGE9MDthPHQubGVuZ3RoO2ErKylyPWk/dFthXS5jYWxsKGUscik6dFthXS5jYWxsKGUpO3JldHVybiBpP3I6dm9pZCAwfSxPTj0oKCk9PntsZXQgZT1beWUoImRlZXMtaW5wdXQtZmlsZXVwbG9hZCIpXSx0LHI9W10saSxhPW90LG4sbz1bXSxzPVtdLGwsYz1bXSx1PVtdLGQsaD1bXSxmPVtdLHgsdj1bXSxiPVtdLHksdz1bXSxrPVtdLE8sej1bXSxNPVtdLEYsRD1bXSxOPVtdLFIsXz1bXSxTPVtdLCQsVD1bXSxFPVtdO3ZhciBxPWNsYXNzIGV4dGVuZHMgYXtzdGF0aWN7aT10aGlzfXN0YXRpY3tsZXQgQj10eXBlb2YgU3ltYm9sPT0iZnVuY3Rpb24iJiZTeW1ib2wubWV0YWRhdGE/T2JqZWN0LmNyZWF0ZShhW1N5bWJvbC5tZXRhZGF0YV0/P251bGwpOnZvaWQgMDtuPVtqKHthdHRyaWJ1dGU6ITF9KV0sbD1bZmUoKV0sZD1bZmUoKV0seD1baih7dHlwZTpTdHJpbmd9KV0seT1baih7dHlwZTpTdHJpbmd9KV0sTz1baih7dHlwZTpCb29sZWFufSldLEY9W2ooe3R5cGU6TnVtYmVyfSldLFI9W2ooe3R5cGU6TnVtYmVyfSldLCQ9W2ooe3R5cGU6U3RyaW5nLHJlZmxlY3Q6ITB9KV0scmwodGhpcyxudWxsLG4se2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJ2YWx1ZSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6Rz0+InZhbHVlImluIEcsZ2V0Okc9PkcudmFsdWUsc2V0OihHLGVlKT0+e0cudmFsdWU9ZWV9fSxtZXRhZGF0YTpCfSxvLHMpLHJsKHRoaXMsbnVsbCxsLHtraW5kOiJhY2Nlc3NvciIsbmFtZToic3RhdGUiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOkc9PiJzdGF0ZSJpbiBHLGdldDpHPT5HLnN0YXRlLHNldDooRyxlZSk9PntHLnN0YXRlPWVlfX0sbWV0YWRhdGE6Qn0sYyx1KSxybCh0aGlzLG51bGwsZCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImlzTG9hZGluZyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6Rz0+ImlzTG9hZGluZyJpbiBHLGdldDpHPT5HLmlzTG9hZGluZyxzZXQ6KEcsZWUpPT57Ry5pc0xvYWRpbmc9ZWV9fSxtZXRhZGF0YTpCfSxoLGYpLHJsKHRoaXMsbnVsbCx4LHtraW5kOiJhY2Nlc3NvciIsbmFtZToiYnV0dG9uVGV4dCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6Rz0+ImJ1dHRvblRleHQiaW4gRyxnZXQ6Rz0+Ry5idXR0b25UZXh0LHNldDooRyxlZSk9PntHLmJ1dHRvblRleHQ9ZWV9fSxtZXRhZGF0YTpCfSx2LGIpLHJsKHRoaXMsbnVsbCx5LHtraW5kOiJhY2Nlc3NvciIsbmFtZToiYWNjZXB0IixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpHPT4iYWNjZXB0ImluIEcsZ2V0Okc9PkcuYWNjZXB0LHNldDooRyxlZSk9PntHLmFjY2VwdD1lZX19LG1ldGFkYXRhOkJ9LHcsaykscmwodGhpcyxudWxsLE8se2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJtdWx0aXBsZSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6Rz0+Im11bHRpcGxlImluIEcsZ2V0Okc9PkcubXVsdGlwbGUsc2V0OihHLGVlKT0+e0cubXVsdGlwbGU9ZWV9fSxtZXRhZGF0YTpCfSx6LE0pLHJsKHRoaXMsbnVsbCxGLHtraW5kOiJhY2Nlc3NvciIsbmFtZToibWF4U2l6ZSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6Rz0+Im1heFNpemUiaW4gRyxnZXQ6Rz0+Ry5tYXhTaXplLHNldDooRyxlZSk9PntHLm1heFNpemU9ZWV9fSxtZXRhZGF0YTpCfSxELE4pLHJsKHRoaXMsbnVsbCxSLHtraW5kOiJhY2Nlc3NvciIsbmFtZToibWF4RmlsZXMiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOkc9PiJtYXhGaWxlcyJpbiBHLGdldDpHPT5HLm1heEZpbGVzLHNldDooRyxlZSk9PntHLm1heEZpbGVzPWVlfX0sbWV0YWRhdGE6Qn0sXyxTKSxybCh0aGlzLG51bGwsJCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InZhbGlkYXRpb25TdGF0ZSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6Rz0+InZhbGlkYXRpb25TdGF0ZSJpbiBHLGdldDpHPT5HLnZhbGlkYXRpb25TdGF0ZSxzZXQ6KEcsZWUpPT57Ry52YWxpZGF0aW9uU3RhdGU9ZWV9fSxtZXRhZGF0YTpCfSxULEUpLHJsKG51bGwsdD17dmFsdWU6aX0sZSx7a2luZDoiY2xhc3MiLG5hbWU6aS5uYW1lLG1ldGFkYXRhOkJ9LG51bGwscikscT1pPXQudmFsdWUsQiYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGksU3ltYm9sLm1ldGFkYXRhLHtlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMCx2YWx1ZTpCfSl9c3RhdGljIGRlbW89VnNyO3N0YXRpYyBkZW1vR3JvdXBzPVsiSW5wdXQiXTsjZT1raSh0aGlzLG8sW10pO2dldCB2YWx1ZSgpe3JldHVybiB0aGlzLiNlfXNldCB2YWx1ZShCKXt0aGlzLiNlPUJ9I3Q9KGtpKHRoaXMscyksa2kodGhpcyxjLCJpZGxlIikpO2dldCBzdGF0ZSgpe3JldHVybiB0aGlzLiN0fXNldCBzdGF0ZShCKXt0aGlzLiN0PUJ9I3I9KGtpKHRoaXMsdSksa2kodGhpcyxoLCExKSk7Z2V0IGlzTG9hZGluZygpe3JldHVybiB0aGlzLiNyfXNldCBpc0xvYWRpbmcoQil7dGhpcy4jcj1CfSNpPShraSh0aGlzLGYpLGtpKHRoaXMsdiwiU2VsZWN0IGZpbGVzIikpO2dldCBidXR0b25UZXh0KCl7cmV0dXJuIHRoaXMuI2l9c2V0IGJ1dHRvblRleHQoQil7dGhpcy4jaT1CfSNhPShraSh0aGlzLGIpLGtpKHRoaXMsdywiIikpO2dldCBhY2NlcHQoKXtyZXR1cm4gdGhpcy4jYX1zZXQgYWNjZXB0KEIpe3RoaXMuI2E9Qn0jbj0oa2kodGhpcyxrKSxraSh0aGlzLHosITApKTtnZXQgbXVsdGlwbGUoKXtyZXR1cm4gdGhpcy4jbn1zZXQgbXVsdGlwbGUoQil7dGhpcy4jbj1CfSNvPShraSh0aGlzLE0pLGtpKHRoaXMsRCwwKSk7Z2V0IG1heFNpemUoKXtyZXR1cm4gdGhpcy4jb31zZXQgbWF4U2l6ZShCKXt0aGlzLiNvPUJ9I3M9KGtpKHRoaXMsTiksa2kodGhpcyxfLDApKTtnZXQgbWF4RmlsZXMoKXtyZXR1cm4gdGhpcy4jc31zZXQgbWF4RmlsZXMoQil7dGhpcy4jcz1CfSNsPShraSh0aGlzLFMpLGtpKHRoaXMsVCxudWxsKSk7Z2V0IHZhbGlkYXRpb25TdGF0ZSgpe3JldHVybiB0aGlzLiNsfXNldCB2YWxpZGF0aW9uU3RhdGUoQil7dGhpcy4jbD1CfSNjPShraSh0aGlzLEUpLCIiKTtnZXQgdmFsaWRhdGlvbk1lc3NhZ2UoKXtyZXR1cm4gdGhpcy4jY31zZXQgdmFsaWRhdGlvbk1lc3NhZ2UoQil7dGhpcy4jYz1CfXByZXZpZXdVcmxNYXA9bmV3IFdlYWtNYXA7ZHJvcEFyZWE9bnVsbDtzdGF0aWMgc3R5bGVzPVdzcjtyZW5kZXIoKXtsZXQgQj10aGlzLmdldEFjY2VwdGVkU3VtbWFyeSgpLEc9W3RoaXMubXVsdGlwbGU/Ik11bHRpcGxlIGZpbGVzIHN1cHBvcnRlZCI6IlNpbmdsZSBmaWxlIG9ubHkiLHRoaXMubWF4U2l6ZT4wP2BNYXggJHt0aGlzLmZvcm1hdEZpbGVTaXplKHRoaXMubWF4U2l6ZSl9YDoiTm8gc2l6ZSBsaW1pdCJdO3JldHVybiBCJiZHLnB1c2goYEFjY2VwdHMgJHtCfWApLENgCiAgICAgIDxkaXYgY2xhc3M9ImlucHV0LXdyYXBwZXIiPgogICAgICAgIDxkZWVzLWxhYmVsCiAgICAgICAgICAubGFiZWw9JHt0aGlzLmxhYmVsfQogICAgICAgICAgLmRlc2NyaXB0aW9uPSR7dGhpcy5kZXNjcmlwdGlvbn0KICAgICAgICAgIC5yZXF1aXJlZD0ke3RoaXMucmVxdWlyZWR9CiAgICAgICAgPjwvZGVlcy1sYWJlbD4KICAgICAgICA8ZGl2CiAgICAgICAgICBjbGFzcz0iZHJvcHpvbmUgJHt0aGlzLnN0YXRlPT09ImRyYWdPdmVyIj8iZHJvcHpvbmUtLWFjdGl2ZSI6IiJ9ICR7dGhpcy5kaXNhYmxlZD8iZHJvcHpvbmUtLWRpc2FibGVkIjoiIn0gJHt0aGlzLnZhbHVlLmxlbmd0aD4wPyJkcm9wem9uZS0taGFzLWZpbGVzIjoiIn0iCiAgICAgICAgICByb2xlPSJidXR0b24iCiAgICAgICAgICB0YWJpbmRleD0ke3RoaXMuZGlzYWJsZWQ/LTE6MH0KICAgICAgICAgIGFyaWEtZGlzYWJsZWQ9JHt0aGlzLmRpc2FibGVkfQogICAgICAgICAgYXJpYS1sYWJlbD0ke2BTZWxlY3QgZmlsZXMke0I/YCAoJHtCfSlgOiIifWB9CiAgICAgICAgICBAY2xpY2s9JHt0aGlzLmhhbmRsZURyb3B6b25lQ2xpY2t9CiAgICAgICAgICBAa2V5ZG93bj0ke3RoaXMuaGFuZGxlRHJvcHpvbmVLZXlkb3dufQogICAgICAgID4KICAgICAgICAgIDxpbnB1dAogICAgICAgICAgICBjbGFzcz0iZmlsZS1pbnB1dCIKICAgICAgICAgICAgc3R5bGU9InBvc2l0aW9uOiBhYnNvbHV0ZTsgb3BhY2l0eTogMDsgcG9pbnRlci1ldmVudHM6IG5vbmU7IHdpZHRoOiAxcHg7IGhlaWdodDogMXB4OyB0b3A6IDA7IGxlZnQ6IDA7IG92ZXJmbG93OiBoaWRkZW47IgogICAgICAgICAgICB0eXBlPSJmaWxlIgogICAgICAgICAgICA/bXVsdGlwbGU9JHt0aGlzLm11bHRpcGxlfQogICAgICAgICAgICBhY2NlcHQ9JHt0aGlzLmFjY2VwdHx8IiJ9CiAgICAgICAgICAgID9kaXNhYmxlZD0ke3RoaXMuZGlzYWJsZWR9CiAgICAgICAgICAgIEBjaGFuZ2U9JHt0aGlzLmhhbmRsZUZpbGVJbnB1dENoYW5nZX0KICAgICAgICAgICAgdGFiaW5kZXg9Ii0xIgogICAgICAgICAgLz4KICAgICAgICAgIDxkaXYgY2xhc3M9ImRyb3B6b25lX19ib2R5Ij4KICAgICAgICAgICAgPGRpdiBjbGFzcz0iZHJvcHpvbmVfX2ljb24iPgogICAgICAgICAgICAgICR7dGhpcy5pc0xvYWRpbmc/Q2A8c3BhbiBjbGFzcz0iZHJvcHpvbmVfX2xvYWRlciIgYXJpYS1oaWRkZW49InRydWUiPjwvc3Bhbj5gOkNgPGRlZXMtaWNvbiBpY29uPSJsdWNpZGU6Rm9sZGVyT3BlbiI+PC9kZWVzLWljb24+YH0KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9ImRyb3B6b25lX19jb250ZW50Ij4KICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZHJvcHpvbmVfX2hlYWRsaW5lIj4ke3RoaXMuYnV0dG9uVGV4dHx8IlNlbGVjdCBmaWxlcyJ9PC9zcGFuPgogICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJkcm9wem9uZV9fc3VibGluZSI+CiAgICAgICAgICAgICAgICBEcmFnIGFuZCBkcm9wIGZpbGVzIGhlcmUgb3IKICAgICAgICAgICAgICAgIDxidXR0b24KICAgICAgICAgICAgICAgICAgdHlwZT0iYnV0dG9uIgogICAgICAgICAgICAgICAgICBjbGFzcz0iZHJvcHpvbmVfX2Jyb3dzZSIKICAgICAgICAgICAgICAgICAgQGNsaWNrPSR7dGhpcy5oYW5kbGVCcm93c2VDbGlja30KICAgICAgICAgICAgICAgICAgP2Rpc2FibGVkPSR7dGhpcy5kaXNhYmxlZH0KICAgICAgICAgICAgICAgID4KICAgICAgICAgICAgICAgICAgYnJvd3NlCiAgICAgICAgICAgICAgICA8L2J1dHRvbj4KICAgICAgICAgICAgICA8L3NwYW4+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgPC9kaXY+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJkcm9wem9uZV9fbWV0YSI+CiAgICAgICAgICAgICR7Ry5tYXAoZWU9PkNgPHNwYW4+JHtlZX08L3NwYW4+YCl9CiAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICR7dGhpcy5yZW5kZXJGaWxlTGlzdCgpfQogICAgICAgIDwvZGl2PgogICAgICAgICR7dGhpcy52YWxpZGF0aW9uTWVzc2FnZT9DYDxkaXYgY2xhc3M9InZhbGlkYXRpb24tbWVzc2FnZSIgYXJpYS1saXZlPSJwb2xpdGUiPiR7dGhpcy52YWxpZGF0aW9uTWVzc2FnZX08L2Rpdj5gOkNgYH0KICAgICAgPC9kaXY+CiAgICBgfXJlbmRlckZpbGVMaXN0KCl7cmV0dXJuIHRoaXMudmFsdWUubGVuZ3RoPT09MD9DYGA6Q2AKICAgICAgPGRpdiBjbGFzcz0iZmlsZS1saXN0Ij4KICAgICAgICA8ZGl2IGNsYXNzPSJmaWxlLWxpc3RfX2hlYWRlciI+CiAgICAgICAgICA8c3Bhbj4ke3RoaXMudmFsdWUubGVuZ3RofSBmaWxlJHt0aGlzLnZhbHVlLmxlbmd0aD09PTE/IiI6InMifSBzZWxlY3RlZDwvc3Bhbj4KICAgICAgICAgICR7dGhpcy52YWx1ZS5sZW5ndGg+MD9DYDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZmlsZS1saXN0X19jbGVhciIgQGNsaWNrPSR7dGhpcy5oYW5kbGVDbGVhckFsbH0+Q2xlYXIgJHt0aGlzLnZhbHVlLmxlbmd0aD4xPyJhbGwiOiIifTwvYnV0dG9uPmA6Q2BgfQogICAgICAgIDwvZGl2PgogICAgICAgIDxkaXYgY2xhc3M9ImZpbGUtbGlzdF9faXRlbXMiPgogICAgICAgICAgJHt0aGlzLnZhbHVlLm1hcChCPT50aGlzLnJlbmRlckZpbGVSb3coQikpfQogICAgICAgIDwvZGl2PgogICAgICA8L2Rpdj4KICAgIGB9cmVuZGVyRmlsZVJvdyhCKXtsZXQgRz10aGlzLmdldEZpbGVUeXBlKEIpLGVlPXRoaXMuY2FuU2hvd1ByZXZpZXcoQik/dGhpcy5nZXRQcmV2aWV3VXJsKEIpOm51bGw7cmV0dXJuIENgCiAgICAgIDxkaXYgY2xhc3M9ImZpbGUtcm93ICR7R30tZmlsZSI+CiAgICAgICAgPGRpdiBjbGFzcz0iZmlsZS10aHVtYiIgYXJpYS1oaWRkZW49InRydWUiPgogICAgICAgICAgJHtlZT9DYDxpbWcgY2xhc3M9InRodW1iLWltYWdlIiBzcmM9JHtlZX0gYWx0PSR7YFByZXZpZXcgb2YgJHtCLm5hbWV9YH0+YDpDYDxkZWVzLWljb24gaWNvbj0ke3RoaXMuZ2V0RmlsZUljb24oQil9PjwvZGVlcy1pY29uPmB9CiAgICAgICAgPC9kaXY+CiAgICAgICAgPGRpdiBjbGFzcz0iZmlsZS1tZXRhIj4KICAgICAgICAgIDxkaXYgY2xhc3M9ImZpbGUtbmFtZSIgdGl0bGU9JHtCLm5hbWV9PiR7Qi5uYW1lfTwvZGl2PgogICAgICAgICAgPGRpdiBjbGFzcz0iZmlsZS1kZXRhaWxzIj4KICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImZpbGUtc2l6ZSI+JHt0aGlzLmZvcm1hdEZpbGVTaXplKEIuc2l6ZSl9PC9zcGFuPgogICAgICAgICAgICAke0chPT0iZmlsZSI/Q2A8c3BhbiBjbGFzcz0iZmlsZS10eXBlIj4ke0d9PC9zcGFuPmA6Q2BgfQogICAgICAgICAgPC9kaXY+CiAgICAgICAgPC9kaXY+CiAgICAgICAgPGRpdiBjbGFzcz0iZmlsZS1hY3Rpb25zIj4KICAgICAgICAgIDxidXR0b24KICAgICAgICAgICAgdHlwZT0iYnV0dG9uIgogICAgICAgICAgICBjbGFzcz0icmVtb3ZlLWJ1dHRvbiIKICAgICAgICAgICAgQGNsaWNrPSR7KCk9PnRoaXMucmVtb3ZlRmlsZShCKX0KICAgICAgICAgICAgYXJpYS1sYWJlbD0ke2BSZW1vdmUgJHtCLm5hbWV9YH0KICAgICAgICAgID4KICAgICAgICAgICAgPGRlZXMtaWNvbiBpY29uPSJsdWNpZGU6WCI+PC9kZWVzLWljb24+CiAgICAgICAgICA8L2J1dHRvbj4KICAgICAgICA8L2Rpdj4KICAgICAgPC9kaXY+CiAgICBgfWhhbmRsZUZpbGVJbnB1dENoYW5nZT1hc3luYyBCPT57dGhpcy5pc0xvYWRpbmc9ITE7bGV0IEc9Qi50YXJnZXQsZWU9QXJyYXkuZnJvbShHLmZpbGVzPz9bXSk7ZWUubGVuZ3RoPjAmJmF3YWl0IHRoaXMuYWRkRmlsZXMoZWUpLEcudmFsdWU9IiJ9O2hhbmRsZURyb3B6b25lQ2xpY2s9Qj0+e3RoaXMuZGlzYWJsZWR8fEIudGFyZ2V0LmNsb3Nlc3QoIi5kcm9wem9uZV9fYnJvd3NlLCAuZmlsZS1saXN0Iil8fHRoaXMub3BlbkZpbGVTZWxlY3RvcigpfTtoYW5kbGVCcm93c2VDbGljaz1CPT57dGhpcy5kaXNhYmxlZHx8KEIuc3RvcFByb3BhZ2F0aW9uKCksdGhpcy5vcGVuRmlsZVNlbGVjdG9yKCkpfTtoYW5kbGVEcm9wem9uZUtleWRvd249Qj0+e3RoaXMuZGlzYWJsZWR8fChCLmtleT09PSJFbnRlciJ8fEIua2V5PT09IiAiKSYmKEIucHJldmVudERlZmF1bHQoKSx0aGlzLm9wZW5GaWxlU2VsZWN0b3IoKSl9O2hhbmRsZUNsZWFyQWxsPUI9PntCLnByZXZlbnREZWZhdWx0KCksdGhpcy5jbGVhckFsbCgpfTtoYW5kbGVEcmFnRXZlbnQ9YXN5bmMgQj0+e2lmKEIucHJldmVudERlZmF1bHQoKSxCLnN0b3BQcm9wYWdhdGlvbigpLCF0aGlzLmRpc2FibGVkKXtpZihCLnR5cGU9PT0iZHJhZ2VudGVyInx8Qi50eXBlPT09ImRyYWdvdmVyIil7Qi5kYXRhVHJhbnNmZXImJihCLmRhdGFUcmFuc2Zlci5kcm9wRWZmZWN0PSJjb3B5IiksdGhpcy5zdGF0ZT0iZHJhZ092ZXIiO3JldHVybn1pZihCLnR5cGU9PT0iZHJhZ2xlYXZlIil7aWYoIXRoaXMuZHJvcEFyZWEpe3RoaXMuc3RhdGU9ImlkbGUiO3JldHVybn1sZXQgRz10aGlzLmRyb3BBcmVhLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLHtjbGllbnRYOmVlPTAsY2xpZW50WTpQPTB9PUI7KGVlPD1HLmxlZnR8fGVlPj1HLnJpZ2h0fHxQPD1HLnRvcHx8UD49Ry5ib3R0b20pJiYodGhpcy5zdGF0ZT0iaWRsZSIpO3JldHVybn1pZihCLnR5cGU9PT0iZHJvcCIpe3RoaXMuc3RhdGU9ImlkbGUiO2xldCBHPUFycmF5LmZyb20oQi5kYXRhVHJhbnNmZXI/LmZpbGVzPz9bXSk7Ry5sZW5ndGg+MCYmYXdhaXQgdGhpcy5hZGRGaWxlcyhHKX19fTthdHRhY2hEcm9wTGlzdGVuZXJzKCl7dGhpcy5kcm9wQXJlYSYmWyJkcmFnZW50ZXIiLCJkcmFnb3ZlciIsImRyYWdsZWF2ZSIsImRyb3AiXS5mb3JFYWNoKEI9Pnt0aGlzLmRyb3BBcmVhLmFkZEV2ZW50TGlzdGVuZXIoQix0aGlzLmhhbmRsZURyYWdFdmVudCl9KX1kZXRhY2hEcm9wTGlzdGVuZXJzKCl7dGhpcy5kcm9wQXJlYSYmWyJkcmFnZW50ZXIiLCJkcmFnb3ZlciIsImRyYWdsZWF2ZSIsImRyb3AiXS5mb3JFYWNoKEI9Pnt0aGlzLmRyb3BBcmVhLnJlbW92ZUV2ZW50TGlzdGVuZXIoQix0aGlzLmhhbmRsZURyYWdFdmVudCl9KX1yZWJpbmRJbnRlcmFjdGl2ZUVsZW1lbnRzKCl7bGV0IEI9dGhpcy5zaGFkb3dSb290Py5xdWVyeVNlbGVjdG9yKCIuZHJvcHpvbmUiKTtCIT09dGhpcy5kcm9wQXJlYSYmKHRoaXMuZGV0YWNoRHJvcExpc3RlbmVycygpLHRoaXMuZHJvcEFyZWE9Qix0aGlzLmF0dGFjaERyb3BMaXN0ZW5lcnMoKSl9Zm9ybWF0RmlsZVNpemUoQil7bGV0IEc9WyJCeXRlcyIsIktCIiwiTUIiLCJHQiJdO2lmKEI9PT0wKXJldHVybiIwIEJ5dGVzIjtsZXQgZWU9TWF0aC5taW4oTWF0aC5mbG9vcihNYXRoLmxvZyhCKS9NYXRoLmxvZygxMDI0KSksRy5sZW5ndGgtMSksUD1CL01hdGgucG93KDEwMjQsZWUpO3JldHVybmAke01hdGgucm91bmQoUCoxMDApLzEwMH0gJHtHW2VlXX1gfWdldEZpbGVUeXBlKEIpe2xldCBHPUIudHlwZS50b0xvd2VyQ2FzZSgpO3JldHVybiBHLnN0YXJ0c1dpdGgoImltYWdlLyIpPyJpbWFnZSI6Rz09PSJhcHBsaWNhdGlvbi9wZGYiPyJwZGYiOkcuaW5jbHVkZXMoIndvcmQiKXx8Ry5pbmNsdWRlcygiZG9jdW1lbnQiKT8iZG9jIjpHLmluY2x1ZGVzKCJzaGVldCIpfHxHLmluY2x1ZGVzKCJleGNlbCIpPyJzcHJlYWRzaGVldCI6Ry5pbmNsdWRlcygicHJlc2VudGF0aW9uIil8fEcuaW5jbHVkZXMoInBvd2VycG9pbnQiKT8icHJlc2VudGF0aW9uIjpHLnN0YXJ0c1dpdGgoInZpZGVvLyIpPyJ2aWRlbyI6Ry5zdGFydHNXaXRoKCJhdWRpby8iKT8iYXVkaW8iOkcuaW5jbHVkZXMoInppcCIpfHxHLmluY2x1ZGVzKCJjb21wcmVzc2VkIik/ImFyY2hpdmUiOiJmaWxlIn1nZXRGaWxlSWNvbihCKXtsZXQgRz10aGlzLmdldEZpbGVUeXBlKEIpO3JldHVybntpbWFnZToibHVjaWRlOkZpbGVJbWFnZSIscGRmOiJsdWNpZGU6RmlsZVRleHQiLGRvYzoibHVjaWRlOkZpbGVUZXh0IixzcHJlYWRzaGVldDoibHVjaWRlOkZpbGVTcHJlYWRzaGVldCIscHJlc2VudGF0aW9uOiJsdWNpZGU6RmlsZUJhckNoYXJ0Iix2aWRlbzoibHVjaWRlOkZpbGVWaWRlbyIsYXVkaW86Imx1Y2lkZTpGaWxlQXVkaW8iLGFyY2hpdmU6Imx1Y2lkZTpGaWxlQXJjaGl2ZSIsZmlsZToibHVjaWRlOkZpbGUifVtHXT8/Imx1Y2lkZTpGaWxlIn1jYW5TaG93UHJldmlldyhCKXtyZXR1cm4gQi50eXBlLnN0YXJ0c1dpdGgoImltYWdlLyIpJiZCLnNpemU8NSoxMDI0KjEwMjR9dmFsaWRhdGVGaWxlKEIpe2lmKHRoaXMubWF4U2l6ZT4wJiZCLnNpemU+dGhpcy5tYXhTaXplKXJldHVybiB0aGlzLnZhbGlkYXRpb25NZXNzYWdlPWBGaWxlICIke0IubmFtZX0iIGV4Y2VlZHMgdGhlIG1heGltdW0gc2l6ZSBvZiAke3RoaXMuZm9ybWF0RmlsZVNpemUodGhpcy5tYXhTaXplKX1gLHRoaXMudmFsaWRhdGlvblN0YXRlPSJpbnZhbGlkIiwhMTtpZih0aGlzLmFjY2VwdCl7bGV0IEc9dGhpcy5hY2NlcHQuc3BsaXQoIiwiKS5tYXAoZWU9PmVlLnRyaW0oKSkuZmlsdGVyKGVlPT5lZS5sZW5ndGg+MCk7aWYoRy5sZW5ndGg+MCl7bGV0IGVlPSExO2ZvcihsZXQgUCBvZiBHKWlmKFAuc3RhcnRzV2l0aCgiLiIpKXtpZihCLm5hbWUudG9Mb3dlckNhc2UoKS5lbmRzV2l0aChQLnRvTG93ZXJDYXNlKCkpKXtlZT0hMDticmVha319ZWxzZSBpZihQLmVuZHNXaXRoKCIvKiIpKXtsZXQgZ2U9UC5zbGljZSgwLC0yKTtpZihCLnR5cGUuc3RhcnRzV2l0aChnZSkpe2VlPSEwO2JyZWFrfX1lbHNlIGlmKEIudHlwZT09PVApe2VlPSEwO2JyZWFrfWlmKCFlZSlyZXR1cm4gdGhpcy52YWxpZGF0aW9uTWVzc2FnZT1gRmlsZSB0eXBlIG5vdCBhY2NlcHRlZC4gQWxsb3dlZDogJHtHLmpvaW4oIiwgIil9YCx0aGlzLnZhbGlkYXRpb25TdGF0ZT0iaW52YWxpZCIsITF9fXJldHVybiEwfWdldFByZXZpZXdVcmwoQil7bGV0IEc9dGhpcy5wcmV2aWV3VXJsTWFwLmdldChCKTtyZXR1cm4gR3x8KEc9VVJMLmNyZWF0ZU9iamVjdFVSTChCKSx0aGlzLnByZXZpZXdVcmxNYXAuc2V0KEIsRykpLEd9cmVsZWFzZVByZXZpZXcoQil7bGV0IEc9dGhpcy5wcmV2aWV3VXJsTWFwLmdldChCKTtHJiYoVVJMLnJldm9rZU9iamVjdFVSTChHKSx0aGlzLnByZXZpZXdVcmxNYXAuZGVsZXRlKEIpKX1nZXRBY2NlcHRlZFN1bW1hcnkoKXtpZighdGhpcy5hY2NlcHQpcmV0dXJuIG51bGw7bGV0IEI9QXJyYXkuZnJvbShuZXcgU2V0KHRoaXMuYWNjZXB0LnNwbGl0KCIsIikubWFwKEc9PkcudHJpbSgpKS5maWx0ZXIoRz0+Ry5sZW5ndGg+MCkubWFwKEc9PnRoaXMuZm9ybWF0QWNjZXB0VG9rZW4oRykpKSkuZmlsdGVyKEJvb2xlYW4pO3JldHVybiBCLmxlbmd0aD09PTA/bnVsbDpCLmxlbmd0aD09PTE/QlswXTpCLmxlbmd0aD09PTI/YCR7QlswXX0sICR7QlsxXX1gOmAke0Iuc2xpY2UoMCwyKS5qb2luKCIsICIpfVx1MjAyNmB9Zm9ybWF0QWNjZXB0VG9rZW4oQil7aWYoQj09PSIqLyoiKXJldHVybiJBbGwgZmlsZXMiO2lmKEIuZW5kc1dpdGgoIi8qIikpe2xldCBQPUIuc3BsaXQoIi8iKVswXTtyZXR1cm4gUD9gJHtQLmNoYXJBdCgwKS50b1VwcGVyQ2FzZSgpfSR7UC5zbGljZSgxKX0gZmlsZXNgOiJBbGwgZmlsZXMifXJldHVybiBCLnN0YXJ0c1dpdGgoIi4iKT9CLnNsaWNlKDEpLnRvVXBwZXJDYXNlKCk6Qi5pbmNsdWRlcygicGRmIik/IlBERiI6Qi5pbmNsdWRlcygiemlwIik/IlpJUCI6Qi5pbmNsdWRlcygianNvbiIpPyJKU09OIjpCLmluY2x1ZGVzKCJtc3dvcmQiKT8iRE9DIjpCLmluY2x1ZGVzKCJ3b3JkcHJvY2Vzc2luZ21sIik/IkRPQ1giOkIuaW5jbHVkZXMoImV4Y2VsIik/IlhMUyI6Qi5pbmNsdWRlcygicHJlc2VudGF0aW9uIik/IlBQVCI6KEIuc3BsaXQoIi8iKS5wb3AoKT8/QikudG9VcHBlckNhc2UoKX1hdHRhY2hMaWZlY3ljbGVMaXN0ZW5lcnMoKXt0aGlzLnJlYmluZEludGVyYWN0aXZlRWxlbWVudHMoKX1maXJzdFVwZGF0ZWQoQil7c3VwZXIuZmlyc3RVcGRhdGVkKEIpLHRoaXMuYXR0YWNoTGlmZWN5Y2xlTGlzdGVuZXJzKCl9dXBkYXRlZChCKXtzdXBlci51cGRhdGVkKEIpLEIuaGFzKCJ2YWx1ZSIpJiZ0aGlzLnZhbGlkYXRlKCksdGhpcy5yZWJpbmRJbnRlcmFjdGl2ZUVsZW1lbnRzKCl9YXN5bmMgZGlzY29ubmVjdGVkQ2FsbGJhY2soKXt0aGlzLmRldGFjaERyb3BMaXN0ZW5lcnMoKSx0aGlzLnZhbHVlLmZvckVhY2goQj0+dGhpcy5yZWxlYXNlUHJldmlldyhCKSksdGhpcy5wcmV2aWV3VXJsTWFwPW5ldyBXZWFrTWFwLGF3YWl0IHN1cGVyLmRpc2Nvbm5lY3RlZENhbGxiYWNrKCl9YXN5bmMgb3BlbkZpbGVTZWxlY3Rvcigpe2lmKHRoaXMuZGlzYWJsZWR8fHRoaXMuaXNMb2FkaW5nKXJldHVybjt0aGlzLmlzTG9hZGluZz0hMDtsZXQgQj10aGlzLnNoYWRvd1Jvb3Q/LnF1ZXJ5U2VsZWN0b3IoIi5maWxlLWlucHV0Iik7aWYoIUIpe3RoaXMuaXNMb2FkaW5nPSExO3JldHVybn1sZXQgRz0oKT0+e3NldFRpbWVvdXQoKCk9PnsoIUIuZmlsZXN8fEIuZmlsZXMubGVuZ3RoPT09MCkmJih0aGlzLmlzTG9hZGluZz0hMSksd2luZG93LnJlbW92ZUV2ZW50TGlzdGVuZXIoImZvY3VzIixHKX0sMzAwKX07d2luZG93LmFkZEV2ZW50TGlzdGVuZXIoImZvY3VzIixHKSxCLmNsaWNrKCl9cmVtb3ZlRmlsZShCKXtsZXQgRz10aGlzLnZhbHVlLmluZGV4T2YoQik7Rz4tMSYmKHRoaXMucmVsZWFzZVByZXZpZXcoQiksdGhpcy52YWx1ZS5zcGxpY2UoRywxKSx0aGlzLnJlcXVlc3RVcGRhdGUoInZhbHVlIiksdGhpcy52YWxpZGF0ZSgpLHRoaXMuY2hhbmdlU3ViamVjdC5uZXh0KHRoaXMpKX1jbGVhckFsbCgpe2xldCBCPVsuLi50aGlzLnZhbHVlXTt0aGlzLnZhbHVlPVtdLEIuZm9yRWFjaChHPT50aGlzLnJlbGVhc2VQcmV2aWV3KEcpKSx0aGlzLnJlcXVlc3RVcGRhdGUoInZhbHVlIiksdGhpcy52YWxpZGF0ZSgpLHRoaXMuY2hhbmdlU3ViamVjdC5uZXh0KHRoaXMpLHRoaXMuYnV0dG9uVGV4dD0iU2VsZWN0IGZpbGVzIn1hc3luYyB1cGRhdGVWYWx1ZShCKXtsZXQgRz1CLnRhcmdldDt0aGlzLnZhbHVlPUFycmF5LmZyb20oRy5maWxlcz8/W10pLHRoaXMuY2hhbmdlU3ViamVjdC5uZXh0KHRoaXMpfXNldFZhbHVlKEIpe3RoaXMudmFsdWUuZm9yRWFjaChHPT50aGlzLnJlbGVhc2VQcmV2aWV3KEcpKSx0aGlzLnZhbHVlPUIsQi5sZW5ndGg+MD90aGlzLmJ1dHRvblRleHQ9dGhpcy5tdWx0aXBsZT8iQWRkIG1vcmUgZmlsZXMiOiJSZXBsYWNlIGZpbGUiOnRoaXMuYnV0dG9uVGV4dD0iU2VsZWN0IGZpbGVzIix0aGlzLnJlcXVlc3RVcGRhdGUoInZhbHVlIiksdGhpcy52YWxpZGF0ZSgpfWdldFZhbHVlKCl7cmV0dXJuIHRoaXMudmFsdWV9YXN5bmMgYWRkRmlsZXMoQil7bGV0IEc9W107Zm9yKGxldCBlZSBvZiBCKXRoaXMudmFsaWRhdGVGaWxlKGVlKSYmRy5wdXNoKGVlKTtpZihHLmxlbmd0aD09PTApe3RoaXMuaXNMb2FkaW5nPSExO3JldHVybn1pZih0aGlzLm1heEZpbGVzPjAmJnRoaXMudmFsdWUubGVuZ3RoK0cubGVuZ3RoPnRoaXMubWF4RmlsZXMpe2xldCBQPXRoaXMubWF4RmlsZXMtdGhpcy52YWx1ZS5sZW5ndGg7aWYoUDw9MCl7dGhpcy52YWxpZGF0aW9uTWVzc2FnZT1gTWF4aW11bSAke3RoaXMubWF4RmlsZXN9IGZpbGVzIGFsbG93ZWRgLHRoaXMudmFsaWRhdGlvblN0YXRlPSJpbnZhbGlkIix0aGlzLmlzTG9hZGluZz0hMTtyZXR1cm59Ry5zcGxpY2UoUCksdGhpcy52YWxpZGF0aW9uTWVzc2FnZT1gT25seSAke1B9IG1vcmUgZmlsZShzKSBjYW4gYmUgYWRkZWRgLHRoaXMudmFsaWRhdGlvblN0YXRlPSJ3YXJuIn0hdGhpcy5tdWx0aXBsZSYmRy5sZW5ndGg+MD8odGhpcy52YWx1ZS5mb3JFYWNoKGVlPT50aGlzLnJlbGVhc2VQcmV2aWV3KGVlKSksdGhpcy52YWx1ZT1bR1swXV0pOnRoaXMudmFsdWUucHVzaCguLi5HKSx0aGlzLnZhbGlkYXRpb25NZXNzYWdlPSIiLHRoaXMudmFsaWRhdGlvblN0YXRlPW51bGwsdGhpcy5yZXF1ZXN0VXBkYXRlKCJ2YWx1ZSIpLGF3YWl0IHRoaXMudmFsaWRhdGUoKSx0aGlzLmNoYW5nZVN1YmplY3QubmV4dCh0aGlzKSx0aGlzLmlzTG9hZGluZz0hMSx0aGlzLnZhbHVlLmxlbmd0aD4wP3RoaXMuYnV0dG9uVGV4dD10aGlzLm11bHRpcGxlPyJBZGQgbW9yZSBmaWxlcyI6IlJlcGxhY2UgZmlsZSI6dGhpcy5idXR0b25UZXh0PSJTZWxlY3QgZmlsZXMifWFzeW5jIHZhbGlkYXRlKCl7aWYodGhpcy52YWxpZGF0aW9uTWVzc2FnZT0iIix0aGlzLnJlcXVpcmVkJiZ0aGlzLnZhbHVlLmxlbmd0aD09PTApcmV0dXJuIHRoaXMudmFsaWRhdGlvblN0YXRlPSJpbnZhbGlkIix0aGlzLnZhbGlkYXRpb25NZXNzYWdlPSJQbGVhc2Ugc2VsZWN0IGF0IGxlYXN0IG9uZSBmaWxlIiwhMTtmb3IobGV0IEIgb2YgdGhpcy52YWx1ZSlpZighdGhpcy52YWxpZGF0ZUZpbGUoQikpcmV0dXJuITE7cmV0dXJuIHRoaXMudmFsaWRhdGlvblN0YXRlPXRoaXMudmFsdWUubGVuZ3RoPjA/InZhbGlkIjpudWxsLCEwfXN0YXRpY3traShpLHIpfX07cmV0dXJuIHE9aX0pKCl9KTt2YXIgdjZlPXAoKCk9PntiNmUoKX0pO2Z1bmN0aW9uIHc2ZShlLHQpe2lmKHQ9PT12b2lkIDAmJih0PXthbGxvd1FSSUJBTjohMH0pLGU9PW51bGwpcmV0dXJuITE7dmFyIHI9bmV3IFJlZ0V4cCgiXlswLTldezJ9JCIsIiIpLGk9ZS5zbGljZSgwLDIpLGE9Tm9baV07cmV0dXJuIGE9PT12b2lkIDB8fGEuYmJhbl9yZWdleHA9PT12b2lkIDB8fGEuYmJhbl9yZWdleHA9PT1udWxsfHxhLmNoYXJzPT09dm9pZCAwPyExOmEuY2hhcnM9PT1lLmxlbmd0aCYmci50ZXN0KGUuc2xpY2UoMiw0KSkmJmpacihlLnNsaWNlKDQpLGkpJiZac3IoZSkmJih0LmFsbG93UVJJQkFOfHwhWXNyKGUpKX1mdW5jdGlvbiBvbmEoZSx0KXt0PT09dm9pZCAwJiYodD17YWxsb3dRUklCQU46ITB9KTt2YXIgcj17ZXJyb3JDb2RlczpbXSx2YWxpZDohMH07aWYoZSE9bnVsbCYmZSE9PSIiKXt2YXIgaT1Ob1tlLnNsaWNlKDAsMildO2lmKCFpfHwhKGkuYmJhbl9yZWdleHB8fGkuY2hhcnMpKXJldHVybiByLnZhbGlkPSExLHIuZXJyb3JDb2Rlcy5wdXNoKEwyLk5vSUJBTkNvdW50cnkpLHI7aSYmaS5jaGFycyYmaS5jaGFycyE9PWUubGVuZ3RoJiYoci52YWxpZD0hMSxyLmVycm9yQ29kZXMucHVzaChMMi5Xcm9uZ0JCQU5MZW5ndGgpKSxpJiZpLmJiYW5fcmVnZXhwJiYheDZlKGUuc2xpY2UoNCksaS5iYmFuX3JlZ2V4cCkmJihyLnZhbGlkPSExLHIuZXJyb3JDb2Rlcy5wdXNoKEwyLldyb25nQkJBTkZvcm1hdCkpLGkmJmkuYmJhbl92YWxpZGF0aW9uX2Z1bmMmJiFpLmJiYW5fdmFsaWRhdGlvbl9mdW5jKGUuc2xpY2UoNCkpJiYoci52YWxpZD0hMSxyLmVycm9yQ29kZXMucHVzaChMMi5Xcm9uZ0FjY291bnRCYW5rQnJhbmNoQ2hlY2tzdW0pKTt2YXIgYT1uZXcgUmVnRXhwKCJeWzAtOV17Mn0kIiwiIik7YS50ZXN0KGUuc2xpY2UoMiw0KSl8fChyLnZhbGlkPSExLHIuZXJyb3JDb2Rlcy5wdXNoKEwyLkNoZWNrc3VtTm90TnVtYmVyKSksKHIuZXJyb3JDb2Rlcy5pbmRleE9mKEwyLldyb25nQkJBTkZvcm1hdCkhPT0tMXx8IVpzcihlKSkmJihyLnZhbGlkPSExLHIuZXJyb3JDb2Rlcy5wdXNoKEwyLldyb25nSUJBTkNoZWNrc3VtKSksIXQuYWxsb3dRUklCQU4mJllzcihlKSYmKHIudmFsaWQ9ITEsci5lcnJvckNvZGVzLnB1c2goTDIuUVJJQkFOTm90QWxsb3dlZCkpfWVsc2Ugci52YWxpZD0hMSxyLmVycm9yQ29kZXMucHVzaChMMi5Ob0lCQU5Qcm92aWRlZCk7cmV0dXJuIHJ9ZnVuY3Rpb24galpyKGUsdCl7aWYoZT09bnVsbHx8dD09PXZvaWQgMHx8dD09PW51bGwpcmV0dXJuITE7dmFyIHI9Tm9bdF07cmV0dXJuIHI9PW51bGx8fHIuYmJhbl9yZWdleHA9PT12b2lkIDB8fHIuYmJhbl9yZWdleHA9PT1udWxsfHxyLmNoYXJzPT09dm9pZCAwfHxyLmNoYXJzPT09bnVsbD8hMTpyLmNoYXJzLTQ9PT1lLmxlbmd0aCYmeDZlKGUsci5iYmFuX3JlZ2V4cCk/ci5iYmFuX3ZhbGlkYXRpb25fZnVuYz9yLmJiYW5fdmFsaWRhdGlvbl9mdW5jKGUucmVwbGFjZSgvW1xzLl0rL2csIiIpKTohMDohMX1mdW5jdGlvbiBzbmEoZSl7aWYoZSE9bnVsbCl7dmFyIHQ9Tm9bZV07aWYodCE9PXZvaWQgMClyZXR1cm4gdC5TRVBBP3QuU0VQQTohMX1yZXR1cm4hMX1mdW5jdGlvbiBZc3IoZSl7aWYoZT09bnVsbClyZXR1cm4hMTt2YXIgdD1lLnNsaWNlKDAsMikscj1bIkxJIiwiQ0giXTtpZighci5pbmNsdWRlcyh0KSlyZXR1cm4hMTt2YXIgaT1uZXcgUmVnRXhwKCJeM1swLTFdezF9WzAtOV17M30kIiwiIik7cmV0dXJuIGkudGVzdChlLnNsaWNlKDQsOSkpfWZ1bmN0aW9uIGxuYShlKXt2YXIgdD15NmUoZS5iYmFuKXx8IiI7aWYoZS5jb3VudHJ5Q29kZT09PW51bGx8fGUuY291bnRyeUNvZGU9PT12b2lkIDApcmV0dXJuIG51bGw7dmFyIHI9Tm9bZS5jb3VudHJ5Q29kZV07aWYodCE9PSIiJiZyIT09dm9pZCAwJiZyLmNoYXJzJiZyLmNoYXJzIT09bnVsbCYmci5jaGFycz09PXQubGVuZ3RoKzQmJnIuYmJhbl9yZWdleHAmJnIuYmJhbl9yZWdleHAhPT1udWxsJiZ4NmUodCxyLmJiYW5fcmVnZXhwKSl7dmFyIGk9VlpyKGUuY291bnRyeUNvZGUrIjAwIit0KTtyZXR1cm4gZS5jb3VudHJ5Q29kZSsoIjAiKyg5OC1pKSkuc2xpY2UoLTIpK3R9cmV0dXJuIG51bGx9ZnVuY3Rpb24gY25hKGUpe3ZhciB0PXt9LHI9eTZlKGUpO2lmKHQuaWJhbj1yfHxlLHImJnc2ZShyKSl7dC5iYmFuPXIuc2xpY2UoNCksdC5jb3VudHJ5Q29kZT1yLnNsaWNlKDAsMiksdC52YWxpZD0hMDt2YXIgaT1Ob1t0LmNvdW50cnlDb2RlXTtpZihpLmFjY291bnRfaW5kZW50aWZpZXIpe3ZhciBhPWkuYWNjb3VudF9pbmRlbnRpZmllci5zcGxpdCgiLSIpLG49cGFyc2VJbnQoYVswXSksbz1wYXJzZUludChhWzFdKTt0LmFjY291bnROdW1iZXI9dC5pYmFuLnNsaWNlKG4sbysxKX1pZihpLmJhbmtfaWRlbnRpZmllcil7dmFyIGE9aS5iYW5rX2lkZW50aWZpZXIuc3BsaXQoIi0iKSxuPXBhcnNlSW50KGFbMF0pLG89cGFyc2VJbnQoYVsxXSk7dC5iYW5rSWRlbnRpZmllcj10LmJiYW4uc2xpY2UobixvKzEpfWlmKGkuYnJhbmNoX2luZGVudGlmaWVyKXt2YXIgYT1pLmJyYW5jaF9pbmRlbnRpZmllci5zcGxpdCgiLSIpLG49cGFyc2VJbnQoYVswXSksbz1wYXJzZUludChhWzFdKTt0LmJyYW5jaElkZW50aWZpZXI9dC5iYmFuLnNsaWNlKG4sbysxKX19ZWxzZSB0LnZhbGlkPSExO3JldHVybiB0fWZ1bmN0aW9uIHg2ZShlLHQpe3ZhciByPW5ldyBSZWdFeHAodCwiIik7cmV0dXJuIHIudGVzdChlKX1mdW5jdGlvbiB5NmUoZSl7cmV0dXJuIHR5cGVvZiBlIT0ic3RyaW5nIj9udWxsOmUucmVwbGFjZSgvWy1cIF0vZywiIikudG9VcHBlckNhc2UoKX1mdW5jdGlvbiBNNmUoZSx0KXtpZih0eXBlb2YgZSE9InN0cmluZyIpcmV0dXJuIG51bGw7dD09bnVsbCYmKHQ9IiAiKTt2YXIgcj15NmUoZSk7cmV0dXJuIHI9PT1udWxsP251bGw6ci5yZXBsYWNlKC8oLns0fSkoPyEkKS9nLCIkMSIrdCl9ZnVuY3Rpb24gWnNyKGUpe3ZhciB0PWUuc2xpY2UoMCwyKSxyPXBhcnNlSW50KGUuc2xpY2UoMiw0KSwxMCksaT1lLnNsaWNlKDQpLGE9WHNyKCIiLmNvbmNhdChpKS5jb25jYXQodCwiMDAiKSksbj1STihhKTtyZXR1cm4gOTgtbj09PXJ9ZnVuY3Rpb24gWHNyKGUpe3JldHVybiBlLnNwbGl0KCIiKS5tYXAoZnVuY3Rpb24odCl7dmFyIHI9dC5jaGFyQ29kZUF0KDApO3JldHVybiByPj02NT8oci01NSkudG9TdHJpbmcoKTp0fSkuam9pbigiIil9ZnVuY3Rpb24gVlpyKGUpe3JldHVybiBSTihYc3IoZS5zbGljZSg0KStlLnNsaWNlKDAsNCkpKX1mdW5jdGlvbiBkbmEoKXt2YXIgZT17fTtmb3IodmFyIHQgaW4gTm8pe3ZhciByPU5vW3RdO2VbdF09e2NoYXJzOnIuY2hhcnN8fG51bGwsYmJhbl9yZWdleHA6ci5iYmFuX3JlZ2V4cHx8bnVsbCxJQkFOUmVnaXN0cnk6ci5JQkFOUmVnaXN0cnl8fCExLFNFUEE6ci5TRVBBfHwhMX19cmV0dXJuIGV9ZnVuY3Rpb24gVVpyKGUpe2lmKCFlKXJldHVybiExO3ZhciB0PW5ldyBSZWdFeHAoIl5bYS16QS1aXXs2fVthLXpBLVowLTldezJ9KFthLXpBLVowLTldezN9KT8kIiwiIikscj1Ob1tlLnRvVXBwZXJDYXNlKCkuc2xpY2UoNCw2KV07cmV0dXJuIHQudGVzdChlKSYmciE9PXZvaWQgMH1mdW5jdGlvbiB1bmEoZSl7dmFyIHQ9e2Vycm9yQ29kZXM6W10sdmFsaWQ6ITB9O2lmKGUhPW51bGwmJmUhPT0iIil7dmFyIHI9Tm9bZS50b1VwcGVyQ2FzZSgpLnNsaWNlKDQsNildO2lmKHI9PT12b2lkIDApdC52YWxpZD0hMSx0LmVycm9yQ29kZXMucHVzaChwYi5Ob0JJQ0NvdW50cnkpO2Vsc2V7dmFyIGk9bmV3IFJlZ0V4cCgiXlthLXpBLVpdezZ9W2EtekEtWjAtOV17Mn0oW2EtekEtWjAtOV17M30pPyQiLCIiKTtpLnRlc3QoZSl8fCh0LnZhbGlkPSExLHQuZXJyb3JDb2Rlcy5wdXNoKHBiLldyb25nQklDRm9ybWF0KSl9fWVsc2UgdC52YWxpZD0hMSx0LmVycm9yQ29kZXMucHVzaChwYi5Ob0JJQ1Byb3ZpZGVkKTtyZXR1cm4gdH1mdW5jdGlvbiBwbmEoZSl7dmFyIHQ9e30scj1lLnRvVXBwZXJDYXNlKCk7cmV0dXJuIFVacihyKT8odC5iYW5rQ29kZT1yLnNsaWNlKDAsNCksdC5jb3VudHJ5Q29kZT1yLnNsaWNlKDQsNiksdC5sb2NhdGlvbkNvZGU9ci5zbGljZSg2LDgpLHQudGVzdEJJQz10LmxvY2F0aW9uQ29kZVsxXT09PSIwIix0LmJyYW5jaENvZGU9ci5sZW5ndGg+OD9yLnNsaWNlKDgpOm51bGwsdC52YWxpZD0hMCk6dC52YWxpZD0hMSx0fXZhciBMMixwYixXWnIsR1pyLFJOLGFoLFlacixaWnIsUXNyLFhacixKc3IsUVpyLEtzcixKWnIsaG5hLE5vLGVscj1wKCgpPT57InVzZSBzdHJpY3QiOyhmdW5jdGlvbihlKXtlW2UuTm9JQkFOUHJvdmlkZWQ9MF09Ik5vSUJBTlByb3ZpZGVkIixlW2UuTm9JQkFOQ291bnRyeT0xXT0iTm9JQkFOQ291bnRyeSIsZVtlLldyb25nQkJBTkxlbmd0aD0yXT0iV3JvbmdCQkFOTGVuZ3RoIixlW2UuV3JvbmdCQkFORm9ybWF0PTNdPSJXcm9uZ0JCQU5Gb3JtYXQiLGVbZS5DaGVja3N1bU5vdE51bWJlcj00XT0iQ2hlY2tzdW1Ob3ROdW1iZXIiLGVbZS5Xcm9uZ0lCQU5DaGVja3N1bT01XT0iV3JvbmdJQkFOQ2hlY2tzdW0iLGVbZS5Xcm9uZ0FjY291bnRCYW5rQnJhbmNoQ2hlY2tzdW09Nl09Ildyb25nQWNjb3VudEJhbmtCcmFuY2hDaGVja3N1bSIsZVtlLlFSSUJBTk5vdEFsbG93ZWQ9N109IlFSSUJBTk5vdEFsbG93ZWQifSkoTDJ8fChMMj17fSkpOyhmdW5jdGlvbihlKXtlW2UuTm9CSUNQcm92aWRlZD0wXT0iTm9CSUNQcm92aWRlZCIsZVtlLk5vQklDQ291bnRyeT0xXT0iTm9CSUNDb3VudHJ5IixlW2UuV3JvbmdCSUNGb3JtYXQ9Ml09Ildyb25nQklDRm9ybWF0In0pKHBifHwocGI9e30pKTtXWnI9ZnVuY3Rpb24oZSl7Zm9yKHZhciB0PVs1LDQsMywyLDcsNiw1LDQsMywyXSxyPWUucmVwbGFjZSgvW1xzLl0rL2csIiIpLGk9cGFyc2VJbnQoci5jaGFyQXQoMTApLDEwKSxhPXIuc3Vic3RyaW5nKDAsMTApLG49MCxvPTA7bzwxMDtvKyspbis9cGFyc2VJbnQoYS5jaGFyQXQobyksMTApKnRbb107dmFyIHM9biUxMTtyZXR1cm4gaT09PShzPT09MD8wOjExLXMpfSxHWnI9ZnVuY3Rpb24oZSl7dmFyIHQ9ZS5yZXBsYWNlKC9bXHMuXSsvZywiIikscj1wYXJzZUludCh0LnN1YnN0cmluZygwLHQubGVuZ3RoLTIpLDEwKSxpPXBhcnNlSW50KHQuc3Vic3RyaW5nKHQubGVuZ3RoLTIsdC5sZW5ndGgpLDEwKSxhPXIlOTc9PT0wPzk3OnIlOTc7cmV0dXJuIGE9PT1pfSxSTj1mdW5jdGlvbihlKXtmb3IoO2UubGVuZ3RoPjI7KXt2YXIgdD1lLnNsaWNlKDAsNikscj1wYXJzZUludCh0LDEwKTtpZihpc05hTihyKSlyZXR1cm4gTmFOO2U9ciU5NytlLnNsaWNlKHQubGVuZ3RoKX1yZXR1cm4gcGFyc2VJbnQoZSwxMCklOTd9LGFoPWZ1bmN0aW9uKGUpe3ZhciB0PWUucmVwbGFjZSgvW1xzLl0rL2csIiIpLHI9Uk4odCk7cmV0dXJuIHI9PT0xfSxZWnI9ZnVuY3Rpb24oZSl7Zm9yKHZhciB0PVszLDksNywxLDMsOSw3XSxyPXBhcnNlSW50KGUuY2hhckF0KDcpLDEwKSxpPWUuc3Vic3RyaW5nKDAsNyksYT0wLG49MDtuPDc7bisrKWErPXBhcnNlSW50KGkuY2hhckF0KG4pLDEwKSp0W25dO3ZhciBvPWElMTA7cmV0dXJuIHI9PT0obz09PTA/MDoxMC1vKX0sWlpyPWZ1bmN0aW9uKGUpe2Zvcih2YXIgdD1bNCw4LDUsMTAsOSw3LDMsNl0scj1bMSwyLDQsOCw1LDEwLDksNywzLDZdLGk9cGFyc2VJbnQoZS5jaGFyQXQoOCksMTApLGE9cGFyc2VJbnQoZS5jaGFyQXQoOSksMTApLG49ZS5zdWJzdHJpbmcoMCw4KSxvPWUuc3Vic3RyaW5nKDEwLDIwKSxzPTAsbD0wO2w8ODtsKyspcys9cGFyc2VJbnQobi5jaGFyQXQobCksMTApKnRbbF07dmFyIGM9cyUxMTtpZihpIT09KGM9PT0wPzA6Yz09PTE/MToxMS1jKSlyZXR1cm4hMTtzPTA7Zm9yKHZhciBsPTA7bDwxMDtsKyspcys9cGFyc2VJbnQoby5jaGFyQXQobCksMTApKnJbbF07cmV0dXJuIGM9cyUxMSxhPT09KGM9PT0wPzA6Yz09PTE/MToxMS1jKX0sUXNyPWZ1bmN0aW9uKGUsdCl7Zm9yKHZhciByPTEwLGk9MDtpPGUubGVuZ3RoO2krKylyKz1wYXJzZUludChlLmNoYXJBdChpKSwxMCksciUxMCE9PTAmJihyPXIlMTApLHI9cioyLHI9ciUxMTtyZXR1cm4gdD09PSgxMS1yPT09MTA/MDoxMS1yKX0sWFpyPWZ1bmN0aW9uKGUpe3ZhciB0PXBhcnNlSW50KGUuY2hhckF0KDYpLDEwKSxyPXBhcnNlSW50KGUuY2hhckF0KDE2KSwxMCksaT1lLnN1YnN0cmluZygwLDYpLGE9ZS5zdWJzdHJpbmcoNywxNik7cmV0dXJuIFFzcihpLHQpJiZRc3IoYSxyKX0sSnNyPWZ1bmN0aW9uKGUpe2Zvcih2YXIgdD1bMTAsNSw4LDQsMiwxXSxyPVs2LDMsNyw5LDEwLDUsOCw0LDIsMV0saT1wYXJzZUludChlLmNoYXJBdCg5KSwxMCksYT1wYXJzZUludChlLmNoYXJBdCgxOSksMTApLG49ZS5zdWJzdHJpbmcoNCw5KSxvPWUuc3Vic3RyaW5nKDEwLDE5KSxzPTAsbD0wO2w8bi5sZW5ndGg7bCsrKXMrPXBhcnNlSW50KG4uY2hhckF0KGwpLDEwKSp0W2xdO3ZhciBjPXMlMTE7aWYoaSE9PShjPT09MD8wOmM9PT0xPzE6MTEtYykpcmV0dXJuITE7cz0wO2Zvcih2YXIgbD0wO2w8by5sZW5ndGg7bCsrKXMrPXBhcnNlSW50KG8uY2hhckF0KGwpLDEwKSpyW2xdO3JldHVybiBjPXMlMTEsYT09PShjPT09MD8wOmM9PT0xPzE6MTEtYyl9LFFacj1mdW5jdGlvbihlKXtmb3IodmFyIHQ9WzcsMSwzLDcsMSwzLDcsMSwzLDcsMSwzLDddLHI9cGFyc2VJbnQoZS5jaGFyQXQoMTUpLDEwKSxpPWUuc3Vic3RyaW5nKDIsMTUpLGE9MCxuPTA7bjxpLmxlbmd0aDtuKyspYSs9cGFyc2VJbnQoaS5jaGFyQXQobiksMTApKnRbbl07dmFyIG89YSUxMDtyZXR1cm4gcj09PShvPT09MD8wOjEwLW8pfSxLc3I9ZnVuY3Rpb24oZSl7Zm9yKHZhciB0PWUucmVwbGFjZSgvW1xzLl0rL2csIiIpLHI9QXJyYXkuZnJvbSh0KSxpPTA7aTx0Lmxlbmd0aDtpKyspe3ZhciBhPXJbaV0uY2hhckNvZGVBdCgwKTtpZihhPj02NSlzd2l0Y2goYSl7Y2FzZSA2NTpjYXNlIDc0OnJbaV09IjEiO2JyZWFrO2Nhc2UgNjY6Y2FzZSA3NTpjYXNlIDgzOnJbaV09IjIiO2JyZWFrO2Nhc2UgNjc6Y2FzZSA3NjpjYXNlIDg0OnJbaV09IjMiO2JyZWFrO2Nhc2UgNjg6Y2FzZSA3NzpjYXNlIDg1OnJbaV09IjQiO2JyZWFrO2Nhc2UgNjk6Y2FzZSA3ODpjYXNlIDg2OnJbaV09IjUiO2JyZWFrO2Nhc2UgNzA6Y2FzZSA3OTpjYXNlIDg3OnJbaV09IjYiO2JyZWFrO2Nhc2UgNzE6Y2FzZSA4MDpjYXNlIDg4OnJbaV09IjciO2JyZWFrO2Nhc2UgNzI6Y2FzZSA4MTpjYXNlIDg5OnJbaV09IjgiO2JyZWFrO2Nhc2UgNzM6Y2FzZSA4MjpjYXNlIDkwOnJbaV09IjkiO2JyZWFrfX12YXIgbj1STihyLmpvaW4oIiIpKTtyZXR1cm4gbj09PTB9LEpacj1mdW5jdGlvbihlKXtmb3IodmFyIHQ9WzksNywzLDEsOSw3LDMsMSw5LDcsMywxLDksNywzXSxyPXBhcnNlSW50KGUuY2hhckF0KDcpLDEwKSxpPWUuc3Vic3RyaW5nKDAsNyksYT0wLG49MDtuPGkubGVuZ3RoO24rKylhKz1wYXJzZUludChpLmNoYXJBdChuKSwxMCkqdFtuXTt2YXIgbz1hJTEwO2lmKHIhPT0obz09PTA/MDoxMC1vKSlyZXR1cm4hMTtpZihhPTAsZS5lbmRzV2l0aCgiMDAwMDAwMDAiKSl7Zm9yKHZhciBzPWUuc3Vic3RyaW5nKDgsMTUpLGw9cGFyc2VJbnQoZS5jaGFyQXQoMTUpLDEwKSxuPTA7bjxzLmxlbmd0aDtuKyspYSs9cGFyc2VJbnQocy5jaGFyQXQobiksMTApKnRbbl07dmFyIGM9YSUxMDtyZXR1cm4gbD09PShjPT09MD8wOjEwLWMpfWVsc2V7Zm9yKHZhciBzPWUuc3Vic3RyaW5nKDgsMjMpLGw9cGFyc2VJbnQoZS5jaGFyQXQoMjMpLDEwKSxuPTA7bjxzLmxlbmd0aDtuKyspYSs9cGFyc2VJbnQocy5jaGFyQXQobiksMTApKnRbbl07dmFyIHU9YSUxMDtyZXR1cm4gbD09PSh1PT09MD8wOjEwLXUpfX0saG5hPWZ1bmN0aW9uKGUsdCl7cmV0dXJuIHR5cGVvZiBOb1tlXT4idSI/ITE6KE5vW2VdLmJiYW5fdmFsaWRhdGlvbl9mdW5jPXQsITApfSxObz17QUQ6e2NoYXJzOjI0LGJiYW5fcmVnZXhwOiJeWzAtOV17OH1bQS1aMC05XXsxMn0kIixJQkFOUmVnaXN0cnk6ITAsU0VQQTohMCxicmFuY2hfaW5kZW50aWZpZXI6IjQtNyIsYmFua19pZGVudGlmaWVyOiIwLTMiLGFjY291bnRfaW5kZW50aWZpZXI6IjgtMjQifSxBRTp7Y2hhcnM6MjMsYmJhbl9yZWdleHA6Il5bMC05XXszfVswLTldezE2fSQiLElCQU5SZWdpc3RyeTohMCxiYW5rX2lkZW50aWZpZXI6IjAtMiIsYWNjb3VudF9pbmRlbnRpZmllcjoiNy0yMyJ9LEFGOnt9LEFHOnt9LEFJOnt9LEFMOntjaGFyczoyOCxiYmFuX3JlZ2V4cDoiXlswLTldezh9W0EtWjAtOV17MTZ9JCIsSUJBTlJlZ2lzdHJ5OiEwLGJyYW5jaF9pbmRlbnRpZmllcjoiMy03IixiYW5rX2lkZW50aWZpZXI6IjAtMiIsYWNjb3VudF9pbmRlbnRpZmllcjoiMTItMjgifSxBTTp7fSxBTzp7Y2hhcnM6MjUsYmJhbl9yZWdleHA6Il5bMC05XXsyMX0kIn0sQVE6e30sQVI6e30sQVM6e30sQVQ6e2NoYXJzOjIwLGJiYW5fcmVnZXhwOiJeWzAtOV17MTZ9JCIsSUJBTlJlZ2lzdHJ5OiEwLFNFUEE6ITAsYmFua19pZGVudGlmaWVyOiIwLTQifSxBVTp7fSxBVzp7fSxBWDp7Y2hhcnM6MTgsYmJhbl9yZWdleHA6Il5bMC05XXsxNH0kIixJQkFOUmVnaXN0cnk6ITB9LEFaOntjaGFyczoyOCxiYmFuX3JlZ2V4cDoiXltBLVpdezR9W0EtWjAtOV17MjB9JCIsSUJBTlJlZ2lzdHJ5OiEwLGJhbmtfaWRlbnRpZmllcjoiMC0zIixhY2NvdW50X2luZGVudGlmaWVyOiI0LTI4In0sQkE6e2NoYXJzOjIwLGJiYW5fcmVnZXhwOiJeWzAtOV17MTZ9JCIsYmJhbl92YWxpZGF0aW9uX2Z1bmM6YWgsSUJBTlJlZ2lzdHJ5OiEwLGJyYW5jaF9pbmRlbnRpZmllcjoiMy01IixiYW5rX2lkZW50aWZpZXI6IjAtMiJ9LEJCOnt9LEJEOnt9LEJFOntjaGFyczoxNixiYmFuX3JlZ2V4cDoiXlswLTldezEyfSQiLGJiYW5fdmFsaWRhdGlvbl9mdW5jOkdacixJQkFOUmVnaXN0cnk6ITAsU0VQQTohMCxiYW5rX2lkZW50aWZpZXI6IjAtMiIsYWNjb3VudF9pbmRlbnRpZmllcjoiMC0xNiJ9LEJGOntjaGFyczoyOCxiYmFuX3JlZ2V4cDoiXltBLVowLTldezJ9WzAtOV17MjJ9JCJ9LEJHOntjaGFyczoyMixiYmFuX3JlZ2V4cDoiXltBLVpdezR9WzAtOV17Nn1bQS1aMC05XXs4fSQiLElCQU5SZWdpc3RyeTohMCxTRVBBOiEwLGJyYW5jaF9pbmRlbnRpZmllcjoiNC03IixiYW5rX2lkZW50aWZpZXI6IjAtMyJ9LEJIOntjaGFyczoyMixiYmFuX3JlZ2V4cDoiXltBLVpdezR9W0EtWjAtOV17MTR9JCIsSUJBTlJlZ2lzdHJ5OiEwLGJhbmtfaWRlbnRpZmllcjoiMC0zIixhY2NvdW50X2luZGVudGlmaWVyOiI4LTIyIn0sQkk6e2NoYXJzOjI3LGJiYW5fcmVnZXhwOiJeWzAtOV17MjN9JCIsYnJhbmNoX2luZGVudGlmaWVyOiI1LTkiLGJhbmtfaWRlbnRpZmllcjoiMC00IixhY2NvdW50X2luZGVudGlmaWVyOiIxNC0yNyJ9LEJKOntjaGFyczoyOCxiYmFuX3JlZ2V4cDoiXltBLVowLTldezJ9WzAtOV17MjJ9JCJ9LEJMOntjaGFyczoyNyxiYmFuX3JlZ2V4cDoiXlswLTldezEwfVtBLVowLTldezExfVswLTldezJ9JCJ9LEJNOnt9LEJOOnt9LEJPOnt9LEJROnt9LEJSOntjaGFyczoyOSxiYmFuX3JlZ2V4cDoiXlswLTldezIzfVtBLVpdezF9W0EtWjAtOV17MX0kIixJQkFOUmVnaXN0cnk6ITAsYnJhbmNoX2luZGVudGlmaWVyOiI4LTEyIixiYW5rX2lkZW50aWZpZXI6IjAtNyIsYWNjb3VudF9pbmRlbnRpZmllcjoiMTctMjkifSxCUzp7fSxCVDp7fSxCVjp7fSxCVzp7fSxCWTp7Y2hhcnM6MjgsYmJhbl9yZWdleHA6Il5bQS1aXXs0fVswLTldezR9W0EtWjAtOV17MTZ9JCIsSUJBTlJlZ2lzdHJ5OiEwLGJhbmtfaWRlbnRpZmllcjoiMC0zIn0sQlo6e30sQ0E6e30sQ0M6e30sQ0Q6e30sQ0Y6e2NoYXJzOjI3LGJiYW5fcmVnZXhwOiJeWzAtOV17MjN9JCJ9LENHOntjaGFyczoyNyxiYmFuX3JlZ2V4cDoiXlswLTldezIzfSQifSxDSDp7Y2hhcnM6MjEsYmJhbl9yZWdleHA6Il5bMC05XXs1fVtBLVowLTldezEyfSQiLElCQU5SZWdpc3RyeTohMCxTRVBBOiEwLGJhbmtfaWRlbnRpZmllcjoiMC00In0sQ0k6e2NoYXJzOjI4LGJiYW5fcmVnZXhwOiJeW0EtWl17MX1bMC05XXsyM30kIn0sQ0s6e30sQ0w6e30sQ006e2NoYXJzOjI3LGJiYW5fcmVnZXhwOiJeWzAtOV17MjN9JCJ9LENOOnt9LENPOnt9LENSOntjaGFyczoyMixiYmFuX3JlZ2V4cDoiXlswLTldezE4fSQiLElCQU5SZWdpc3RyeTohMCxiYW5rX2lkZW50aWZpZXI6IjAtMyIsYWNjb3VudF9pbmRlbnRpZmllcjoiOC0yMiJ9LENVOnt9LENWOntjaGFyczoyNSxiYmFuX3JlZ2V4cDoiXlswLTldezIxfSQifSxDVzp7fSxDWDp7fSxDWTp7Y2hhcnM6MjgsYmJhbl9yZWdleHA6Il5bMC05XXs4fVtBLVowLTldezE2fSQiLElCQU5SZWdpc3RyeTohMCxTRVBBOiEwLGJyYW5jaF9pbmRlbnRpZmllcjoiMy03IixiYW5rX2lkZW50aWZpZXI6IjAtMiIsYWNjb3VudF9pbmRlbnRpZmllcjoiMTItMjgifSxDWjp7Y2hhcnM6MjQsYmJhbl9yZWdleHA6Il5bMC05XXsyMH0kIixiYmFuX3ZhbGlkYXRpb25fZnVuYzpKc3IsSUJBTlJlZ2lzdHJ5OiEwLFNFUEE6ITAsYmFua19pZGVudGlmaWVyOiIwLTMifSxERTp7Y2hhcnM6MjIsYmJhbl9yZWdleHA6Il5bMC05XXsxOH0kIixJQkFOUmVnaXN0cnk6ITAsU0VQQTohMCxiYW5rX2lkZW50aWZpZXI6IjAtNyIsYWNjb3VudF9pbmRlbnRpZmllcjoiMTMtMjIifSxESjp7Y2hhcnM6MjcsYmJhbl9yZWdleHA6Il5bMC05XXsyM30kIixicmFuY2hfaW5kZW50aWZpZXI6IjUtOSIsYmFua19pZGVudGlmaWVyOiIwLTQiLGFjY291bnRfaW5kZW50aWZpZXI6IjE0LTI3In0sREs6e2NoYXJzOjE4LGJiYW5fcmVnZXhwOiJeWzAtOV17MTR9JCIsSUJBTlJlZ2lzdHJ5OiEwLFNFUEE6ITAsYmFua19pZGVudGlmaWVyOiIwLTMiLGFjY291bnRfaW5kZW50aWZpZXI6IjQtMTgifSxETTp7fSxETzp7Y2hhcnM6MjgsYmJhbl9yZWdleHA6Il5bQS1aXXs0fVswLTldezIwfSQiLElCQU5SZWdpc3RyeTohMCxiYW5rX2lkZW50aWZpZXI6IjAtMyIsYWNjb3VudF9pbmRlbnRpZmllcjoiOC0yOCJ9LERaOntjaGFyczoyNixiYmFuX3JlZ2V4cDoiXlswLTldezIyfSQifSxFQzp7fSxFRTp7Y2hhcnM6MjAsYmJhbl9yZWdleHA6Il5bMC05XXsxNn0kIixiYmFuX3ZhbGlkYXRpb25fZnVuYzpRWnIsSUJBTlJlZ2lzdHJ5OiEwLFNFUEE6ITAsYmFua19pZGVudGlmaWVyOiIwLTEiLGFjY291bnRfaW5kZW50aWZpZXI6IjgtMjAifSxFRzp7Y2hhcnM6MjksYmJhbl9yZWdleHA6Il5bMC05XXsyNX0iLElCQU5SZWdpc3RyeTohMCxicmFuY2hfaW5kZW50aWZpZXI6IjQtNyIsYmFua19pZGVudGlmaWVyOiIwLTMiLGFjY291bnRfaW5kZW50aWZpZXI6IjE3LTI5In0sRUg6e30sRVI6e30sRVM6e2NoYXJzOjI0LGJiYW5fdmFsaWRhdGlvbl9mdW5jOlpacixiYmFuX3JlZ2V4cDoiXlswLTldezIwfSQiLElCQU5SZWdpc3RyeTohMCxTRVBBOiEwLGJyYW5jaF9pbmRlbnRpZmllcjoiNC03IixiYW5rX2lkZW50aWZpZXI6IjAtMyIsYWNjb3VudF9pbmRlbnRpZmllcjoiMTQtMjQifSxFVDp7fSxGSTp7Y2hhcnM6MTgsYmJhbl9yZWdleHA6Il5bMC05XXsxNH0kIixJQkFOUmVnaXN0cnk6ITAsU0VQQTohMCxiYW5rX2lkZW50aWZpZXI6IjAtMiIsYWNjb3VudF9pbmRlbnRpZmllcjoiMC0wIn0sRko6e30sRks6e2NoYXJzOjE4LGJiYW5fcmVnZXhwOiJeW0EtWl17Mn1bMC05XXsxMn0kIixiYW5rX2lkZW50aWZpZXI6IjAtMSIsYWNjb3VudF9pbmRlbnRpZmllcjoiNi0xOCJ9LEZNOnt9LEZPOntjaGFyczoxOCxiYmFuX3JlZ2V4cDoiXlswLTldezE0fSQiLElCQU5SZWdpc3RyeTohMCxiYW5rX2lkZW50aWZpZXI6IjAtMyIsYWNjb3VudF9pbmRlbnRpZmllcjoiNC0xOCJ9LEZSOntjaGFyczoyNyxiYmFuX3JlZ2V4cDoiXlswLTldezEwfVtBLVowLTldezExfVswLTldezJ9JCIsYmJhbl92YWxpZGF0aW9uX2Z1bmM6S3NyLElCQU5SZWdpc3RyeTohMCxTRVBBOiEwLGJhbmtfaWRlbnRpZmllcjoiMC00IixicmFuY2hfaW5kZW50aWZpZXI6IjUtOSIsYWNjb3VudF9pbmRlbnRpZmllcjoiMTQtMjQifSxHQTp7Y2hhcnM6MjcsYmJhbl9yZWdleHA6Il5bMC05XXsyM30kIn0sR0I6e2NoYXJzOjIyLGJiYW5fcmVnZXhwOiJeW0EtWl17NH1bMC05XXsxNH0kIixJQkFOUmVnaXN0cnk6ITAsU0VQQTohMCxicmFuY2hfaW5kZW50aWZpZXI6IjQtOSIsYmFua19pZGVudGlmaWVyOiIwLTMifSxHRDp7fSxHRTp7Y2hhcnM6MjIsYmJhbl9yZWdleHA6Il5bQS1aMC05XXsyfVswLTldezE2fSQiLElCQU5SZWdpc3RyeTohMCxiYW5rX2lkZW50aWZpZXI6IjAtMSIsYWNjb3VudF9pbmRlbnRpZmllcjoiNi0yMiJ9LEdGOntjaGFyczoyNyxiYmFuX3JlZ2V4cDoiXlswLTldezEwfVtBLVowLTldezExfVswLTldezJ9JCIsSUJBTlJlZ2lzdHJ5OiEwfSxHRzp7fSxHSDp7fSxHSTp7Y2hhcnM6MjMsYmJhbl9yZWdleHA6Il5bQS1aXXs0fVtBLVowLTldezE1fSQiLElCQU5SZWdpc3RyeTohMCxTRVBBOiEwLGJhbmtfaWRlbnRpZmllcjoiMC0zIixhY2NvdW50X2luZGVudGlmaWVyOiI4LTIzIn0sR0w6e2NoYXJzOjE4LGJiYW5fcmVnZXhwOiJeWzAtOV17MTR9JCIsSUJBTlJlZ2lzdHJ5OiEwLGJhbmtfaWRlbnRpZmllcjoiMC0zIixhY2NvdW50X2luZGVudGlmaWVyOiI0LTE4In0sR006e30sR046e30sR1A6e2NoYXJzOjI3LGJiYW5fcmVnZXhwOiJeWzAtOV17MTB9W0EtWjAtOV17MTF9WzAtOV17Mn0kIixJQkFOUmVnaXN0cnk6ITB9LEdROntjaGFyczoyNyxiYmFuX3JlZ2V4cDoiXlswLTldezIzfSQifSxHUjp7Y2hhcnM6MjcsYmJhbl9yZWdleHA6Il5bMC05XXs3fVtBLVowLTldezE2fSQiLElCQU5SZWdpc3RyeTohMCxTRVBBOiEwLGJyYW5jaF9pbmRlbnRpZmllcjoiMy02IixiYW5rX2lkZW50aWZpZXI6IjAtMiIsYWNjb3VudF9pbmRlbnRpZmllcjoiNy0yNyJ9LEdTOnt9LEdUOntjaGFyczoyOCxiYmFuX3JlZ2V4cDoiXltBLVowLTldezI0fSQiLElCQU5SZWdpc3RyeTohMCxiYW5rX2lkZW50aWZpZXI6IjAtMyIsYWNjb3VudF9pbmRlbnRpZmllcjoiOC0yOCJ9LEdVOnt9LEdXOntjaGFyczoyNSxiYmFuX3JlZ2V4cDoiXltBLVpdezJ9WzAtOV17MTl9JCJ9LEdZOnt9LEhLOnt9LEhNOnt9LEhOOntjaGFyczoyOCxiYmFuX3JlZ2V4cDoiXltBLVpdezR9WzAtOV17MjB9JCJ9LEhSOntjaGFyczoyMSxiYmFuX3JlZ2V4cDoiXlswLTldezE3fSQiLGJiYW5fdmFsaWRhdGlvbl9mdW5jOlhacixJQkFOUmVnaXN0cnk6ITAsU0VQQTohMCxiYW5rX2lkZW50aWZpZXI6IjAtNiJ9LEhUOnt9LEhVOntjaGFyczoyOCxiYmFuX3JlZ2V4cDoiXlswLTldezI0fSQiLGJiYW5fdmFsaWRhdGlvbl9mdW5jOkpacixJQkFOUmVnaXN0cnk6ITAsU0VQQTohMCxicmFuY2hfaW5kZW50aWZpZXI6IjMtNiIsYmFua19pZGVudGlmaWVyOiIwLTIifSxJRDp7fSxJRTp7Y2hhcnM6MjIsYmJhbl9yZWdleHA6Il5bQS1aMC05XXs0fVswLTldezE0fSQiLElCQU5SZWdpc3RyeTohMCxTRVBBOiEwLGJyYW5jaF9pbmRlbnRpZmllcjoiNC05IixiYW5rX2lkZW50aWZpZXI6IjAtMyJ9LElMOntjaGFyczoyMyxiYmFuX3JlZ2V4cDoiXlswLTldezE5fSQiLElCQU5SZWdpc3RyeTohMCxicmFuY2hfaW5kZW50aWZpZXI6IjMtNSIsYmFua19pZGVudGlmaWVyOiIwLTIifSxJTTp7fSxJTjp7fSxJTzp7fSxJUTp7Y2hhcnM6MjMsYmJhbl9yZWdleHA6Il5bQS1aXXs0fVswLTldezE1fSQiLElCQU5SZWdpc3RyeTohMCxicmFuY2hfaW5kZW50aWZpZXI6IjQtNiIsYmFua19pZGVudGlmaWVyOiIwLTMiLGFjY291bnRfaW5kZW50aWZpZXI6IjExLTIzIn0sSVI6e2NoYXJzOjI2LGJiYW5fcmVnZXhwOiJeWzAtOV17MjJ9JCJ9LElTOntjaGFyczoyNixiYmFuX3JlZ2V4cDoiXlswLTldezIyfSQiLElCQU5SZWdpc3RyeTohMCxTRVBBOiEwLGJyYW5jaF9pbmRlbnRpZmllcjoiMi0zIixiYW5rX2lkZW50aWZpZXI6IjAtMSJ9LElUOntjaGFyczoyNyxiYmFuX3JlZ2V4cDoiXltBLVpdezF9WzAtOV17MTB9W0EtWjAtOV17MTJ9JCIsSUJBTlJlZ2lzdHJ5OiEwLFNFUEE6ITAsYnJhbmNoX2luZGVudGlmaWVyOiI2LTEwIixiYW5rX2lkZW50aWZpZXI6IjEtNSIsYWNjb3VudF9pbmRlbnRpZmllcjoiNC0yNyJ9LEpFOnt9LEpNOnt9LEpPOntjaGFyczozMCxiYmFuX3JlZ2V4cDoiXltBLVpdezR9WzAtOV17NH1bQS1aMC05XXsxOH0kIixJQkFOUmVnaXN0cnk6ITAsYnJhbmNoX2luZGVudGlmaWVyOiI0LTciLGJhbmtfaWRlbnRpZmllcjoiNC03In0sSlA6e30sS0U6e30sS0c6e30sS0g6e30sS0k6e30sS006e2NoYXJzOjI3LGJiYW5fcmVnZXhwOiJeWzAtOV17MjN9JCJ9LEtOOnt9LEtQOnt9LEtSOnt9LEtXOntjaGFyczozMCxiYmFuX3JlZ2V4cDoiXltBLVpdezR9W0EtWjAtOV17MjJ9JCIsSUJBTlJlZ2lzdHJ5OiEwLGJhbmtfaWRlbnRpZmllcjoiMC0zIixhY2NvdW50X2luZGVudGlmaWVyOiIyMC0zMCJ9LEtZOnt9LEtaOntjaGFyczoyMCxiYmFuX3JlZ2V4cDoiXlswLTldezN9W0EtWjAtOV17MTN9JCIsSUJBTlJlZ2lzdHJ5OiEwLGJhbmtfaWRlbnRpZmllcjoiMC0yIixhY2NvdW50X2luZGVudGlmaWVyOiIwLTIwIn0sTEE6e30sTEI6e2NoYXJzOjI4LGJiYW5fcmVnZXhwOiJeWzAtOV17NH1bQS1aMC05XXsyMH0kIixJQkFOUmVnaXN0cnk6ITAsYmFua19pZGVudGlmaWVyOiIwLTMiLGFjY291bnRfaW5kZW50aWZpZXI6IjE0LTI4In0sTEM6e2NoYXJzOjMyLGJiYW5fcmVnZXhwOiJeW0EtWl17NH1bQS1aMC05XXsyNH0kIixJQkFOUmVnaXN0cnk6ITAsYmFua19pZGVudGlmaWVyOiIwLTMiLGFjY291bnRfaW5kZW50aWZpZXI6IjgtMzIifSxMSTp7Y2hhcnM6MjEsYmJhbl9yZWdleHA6Il5bMC05XXs1fVtBLVowLTldezEyfSQiLElCQU5SZWdpc3RyeTohMCxTRVBBOiEwLGJhbmtfaWRlbnRpZmllcjoiMC00In0sTEs6e30sTFI6e30sTFM6e30sTFQ6e2NoYXJzOjIwLGJiYW5fcmVnZXhwOiJeWzAtOV17MTZ9JCIsSUJBTlJlZ2lzdHJ5OiEwLFNFUEE6ITAsYmFua19pZGVudGlmaWVyOiIwLTQifSxMVTp7Y2hhcnM6MjAsYmJhbl9yZWdleHA6Il5bMC05XXszfVtBLVowLTldezEzfSQiLElCQU5SZWdpc3RyeTohMCxTRVBBOiEwLGJhbmtfaWRlbnRpZmllcjoiMC0yIn0sTFY6e2NoYXJzOjIxLGJiYW5fcmVnZXhwOiJeW0EtWl17NH1bQS1aMC05XXsxM30kIixJQkFOUmVnaXN0cnk6ITAsU0VQQTohMCxiYW5rX2lkZW50aWZpZXI6IjAtMyIsYWNjb3VudF9pbmRlbnRpZmllcjoiMC0yMSJ9LExZOntjaGFyczoyNSxiYmFuX3JlZ2V4cDoiXlswLTldezIxfSQiLElCQU5SZWdpc3RyeTohMCxicmFuY2hfaW5kZW50aWZpZXI6IjMtNSIsYmFua19pZGVudGlmaWVyOiIwLTIiLGFjY291bnRfaW5kZW50aWZpZXI6IjEwLTI1In0sTUE6e2NoYXJzOjI4LGJiYW5fcmVnZXhwOiJeWzAtOV17MjR9JCJ9LE1DOntjaGFyczoyNyxiYmFuX3JlZ2V4cDoiXlswLTldezEwfVtBLVowLTldezExfVswLTldezJ9JCIsYmJhbl92YWxpZGF0aW9uX2Z1bmM6S3NyLElCQU5SZWdpc3RyeTohMCxTRVBBOiEwLGJyYW5jaF9pbmRlbnRpZmllcjoiNS05IixiYW5rX2lkZW50aWZpZXI6IjAtNCJ9LE1EOntjaGFyczoyNCxiYmFuX3JlZ2V4cDoiXltBLVowLTldezJ9W0EtWjAtOV17MTh9JCIsSUJBTlJlZ2lzdHJ5OiEwLGJhbmtfaWRlbnRpZmllcjoiMC0xIixhY2NvdW50X2luZGVudGlmaWVyOiI2LTI0In0sTUU6e2NoYXJzOjIyLGJiYW5fcmVnZXhwOiJeWzAtOV17MTh9JCIsYmJhbl92YWxpZGF0aW9uX2Z1bmM6YWgsSUJBTlJlZ2lzdHJ5OiEwLGJhbmtfaWRlbnRpZmllcjoiMC0yIixhY2NvdW50X2luZGVudGlmaWVyOiI0LTIyIn0sTUY6e2NoYXJzOjI3LGJiYW5fcmVnZXhwOiJeWzAtOV17MTB9W0EtWjAtOV17MTF9WzAtOV17Mn0kIixJQkFOUmVnaXN0cnk6ITB9LE1HOntjaGFyczoyNyxiYmFuX3JlZ2V4cDoiXlswLTldezIzfSQifSxNSDp7fSxNSzp7Y2hhcnM6MTksYmJhbl9yZWdleHA6Il5bMC05XXszfVtBLVowLTldezEwfVswLTldezJ9JCIsYmJhbl92YWxpZGF0aW9uX2Z1bmM6YWgsSUJBTlJlZ2lzdHJ5OiEwLGJhbmtfaWRlbnRpZmllcjoiMC0yIn0sTUw6e2NoYXJzOjI4LGJiYW5fcmVnZXhwOiJeW0EtWjAtOV17Mn1bMC05XXsyMn0kIn0sTU06e30sTU46e2NoYXJzOjIwLGJiYW5fcmVnZXhwOiJeWzAtOV17MTZ9JCIsSUJBTlJlZ2lzdHJ5OiEwLGJhbmtfaWRlbnRpZmllcjoiMC0zIixhY2NvdW50X2luZGVudGlmaWVyOiI4LTIwIn0sTU86e30sTVA6e30sTVE6e2NoYXJzOjI3LGJiYW5fcmVnZXhwOiJeWzAtOV17MTB9W0EtWjAtOV17MTF9WzAtOV17Mn0kIixJQkFOUmVnaXN0cnk6ITB9LE1SOntjaGFyczoyNyxiYmFuX3JlZ2V4cDoiXlswLTldezIzfSQiLElCQU5SZWdpc3RyeTohMCxicmFuY2hfaW5kZW50aWZpZXI6IjUtOSIsYmFua19pZGVudGlmaWVyOiIwLTQiLGFjY291bnRfaW5kZW50aWZpZXI6IjQtMjcifSxNUzp7fSxNVDp7Y2hhcnM6MzEsYmJhbl9yZWdleHA6Il5bQS1aXXs0fVswLTldezV9W0EtWjAtOV17MTh9JCIsSUJBTlJlZ2lzdHJ5OiEwLFNFUEE6ITAsYnJhbmNoX2luZGVudGlmaWVyOiI0LTgiLGJhbmtfaWRlbnRpZmllcjoiMC0zIixhY2NvdW50X2luZGVudGlmaWVyOiIxNS0zMSJ9LE1VOntjaGFyczozMCxiYmFuX3JlZ2V4cDoiXltBLVpdezR9WzAtOV17MTl9W0EtWl17M30kIixJQkFOUmVnaXN0cnk6ITAsYnJhbmNoX2luZGVudGlmaWVyOiI2LTciLGJhbmtfaWRlbnRpZmllcjoiMC01IixhY2NvdW50X2luZGVudGlmaWVyOiIwLTMwIn0sTVY6e30sTVc6e30sTVg6e30sTVk6e30sTVo6e2NoYXJzOjI1LGJiYW5fcmVnZXhwOiJeWzAtOV17MjF9JCJ9LE5BOnt9LE5DOntjaGFyczoyNyxiYmFuX3JlZ2V4cDoiXlswLTldezEwfVtBLVowLTldezExfVswLTldezJ9JCIsSUJBTlJlZ2lzdHJ5OiEwfSxORTp7Y2hhcnM6MjgsYmJhbl9yZWdleHA6Il5bQS1aXXsyfVswLTldezIyfSQifSxORjp7fSxORzp7fSxOSTp7Y2hhcnM6MjgsYmJhbl9yZWdleHA6Il5bQS1aXXs0fVswLTldezIwfSQiLGJhbmtfaWRlbnRpZmllcjoiMC0zIixJQkFOUmVnaXN0cnk6ITAsYWNjb3VudF9pbmRlbnRpZmllcjoiOC0yOCJ9LE5MOntjaGFyczoxOCxiYmFuX3JlZ2V4cDoiXltBLVpdezR9WzAtOV17MTB9JCIsSUJBTlJlZ2lzdHJ5OiEwLFNFUEE6ITAsYmFua19pZGVudGlmaWVyOiIwLTMiLGFjY291bnRfaW5kZW50aWZpZXI6IjgtMTgifSxOTzp7Y2hhcnM6MTUsYmJhbl9yZWdleHA6Il5bMC05XXsxMX0kIixiYmFuX3ZhbGlkYXRpb25fZnVuYzpXWnIsSUJBTlJlZ2lzdHJ5OiEwLFNFUEE6ITAsYmFua19pZGVudGlmaWVyOiIwLTMiLGFjY291bnRfaW5kZW50aWZpZXI6IjQtMTUifSxOUDp7fSxOUjp7fSxOVTp7fSxOWjp7fSxPTTp7Y2hhcnM6MjMsYmJhbl9yZWdleHA6Il5bMC05XXszfVtBLVowLTldezE2fSQiLElCQU5SZWdpc3RyeTohMCxTRVBBOiExLGJhbmtfaWRlbnRpZmllcjoiMC0yIn0sUEE6e30sUEU6e30sUEY6e2NoYXJzOjI3LGJiYW5fcmVnZXhwOiJeWzAtOV17MTB9W0EtWjAtOV17MTF9WzAtOV17Mn0kIixJQkFOUmVnaXN0cnk6ITB9LFBHOnt9LFBIOnt9LFBLOntjaGFyczoyNCxiYmFuX3JlZ2V4cDoiXltBLVowLTldezR9WzAtOV17MTZ9JCIsSUJBTlJlZ2lzdHJ5OiEwLGJhbmtfaWRlbnRpZmllcjoiMC0zIn0sUEw6e2NoYXJzOjI4LGJiYW5fdmFsaWRhdGlvbl9mdW5jOllacixiYmFuX3JlZ2V4cDoiXlswLTldezI0fSQiLElCQU5SZWdpc3RyeTohMCxTRVBBOiEwLGJyYW5jaF9pbmRlbnRpZmllcjoiMC03IixhY2NvdW50X2luZGVudGlmaWVyOiIyLTI4In0sUE06e2NoYXJzOjI3LGJiYW5fcmVnZXhwOiJeWzAtOV17MTB9W0EtWjAtOV17MTF9WzAtOV17Mn0kIixJQkFOUmVnaXN0cnk6ITB9LFBOOnt9LFBSOnt9LFBTOntjaGFyczoyOSxiYmFuX3JlZ2V4cDoiXltBLVowLTldezR9WzAtOV17MjF9JCIsSUJBTlJlZ2lzdHJ5OiEwLGJhbmtfaWRlbnRpZmllcjoiMC0zIixhY2NvdW50X2luZGVudGlmaWVyOiIxNy0yOSJ9LFBUOntjaGFyczoyNSxiYmFuX3JlZ2V4cDoiXlswLTldezIxfSQiLGJiYW5fdmFsaWRhdGlvbl9mdW5jOmFoLElCQU5SZWdpc3RyeTohMCxTRVBBOiEwLGJhbmtfaWRlbnRpZmllcjoiMC0zIn0sUFc6e30sUFk6e30sUUE6e2NoYXJzOjI5LGJiYW5fcmVnZXhwOiJeW0EtWl17NH1bQS1aMC05XXsyMX0kIixJQkFOUmVnaXN0cnk6ITAsYmFua19pZGVudGlmaWVyOiIwLTMiLGFjY291bnRfaW5kZW50aWZpZXI6IjgtMjkifSxSRTp7Y2hhcnM6MjcsYmJhbl9yZWdleHA6Il5bMC05XXsxMH1bQS1aMC05XXsxMX1bMC05XXsyfSQiLElCQU5SZWdpc3RyeTohMH0sUk86e2NoYXJzOjI0LGJiYW5fcmVnZXhwOiJeW0EtWl17NH1bQS1aMC05XXsxNn0kIixJQkFOUmVnaXN0cnk6ITAsU0VQQTohMCxiYW5rX2lkZW50aWZpZXI6IjAtMyIsYWNjb3VudF9pbmRlbnRpZmllcjoiMC0yNCJ9LFJTOntjaGFyczoyMixiYmFuX3JlZ2V4cDoiXlswLTldezE4fSQiLGJiYW5fdmFsaWRhdGlvbl9mdW5jOmFoLElCQU5SZWdpc3RyeTohMCxiYW5rX2lkZW50aWZpZXI6IjAtMiJ9LFJVOntjaGFyczozMyxiYmFuX3JlZ2V4cDoiXlswLTldezE0fVtBLVowLTldezE1fSQiLElCQU5SZWdpc3RyeTohMCxicmFuY2hfaW5kZW50aWZpZXI6IjktMTMiLGJhbmtfaWRlbnRpZmllcjoiMC04IixhY2NvdW50X2luZGVudGlmaWVyOiIxMy0zMyJ9LFJXOnt9LFNBOntjaGFyczoyNCxiYmFuX3JlZ2V4cDoiXlswLTldezJ9W0EtWjAtOV17MTh9JCIsSUJBTlJlZ2lzdHJ5OiEwLGJhbmtfaWRlbnRpZmllcjoiMC0xIixhY2NvdW50X2luZGVudGlmaWVyOiIxMi0yNCJ9LFNCOnt9LFNDOntjaGFyczozMSxiYmFuX3JlZ2V4cDoiXltBLVpdezR9WzAtOV17MjB9W0EtWl17M30kIixJQkFOUmVnaXN0cnk6ITAsYnJhbmNoX2luZGVudGlmaWVyOiI2LTciLGJhbmtfaWRlbnRpZmllcjoiMC01IixhY2NvdW50X2luZGVudGlmaWVyOiIxMi0yOCJ9LFNEOntjaGFyczoxOCxiYmFuX3JlZ2V4cDoiXlswLTldezE0fSQiLElCQU5SZWdpc3RyeTohMCxiYW5rX2lkZW50aWZpZXI6IjAtMSIsYWNjb3VudF9pbmRlbnRpZmllcjoiNi0xOCJ9LFNFOntjaGFyczoyNCxiYmFuX3JlZ2V4cDoiXlswLTldezIwfSQiLElCQU5SZWdpc3RyeTohMCxTRVBBOiEwLGJhbmtfaWRlbnRpZmllcjoiMC0yIn0sU0c6e30sU0g6e30sU0k6e2NoYXJzOjE5LGJiYW5fcmVnZXhwOiJeWzAtOV17MTV9JCIsYmJhbl92YWxpZGF0aW9uX2Z1bmM6YWgsSUJBTlJlZ2lzdHJ5OiEwLFNFUEE6ITAsYnJhbmNoX2luZGVudGlmaWVyOiIyLTQiLGJhbmtfaWRlbnRpZmllcjoiMC0xIixhY2NvdW50X2luZGVudGlmaWVyOiI5LTE2In0sU0o6e30sU0s6e2NoYXJzOjI0LGJiYW5fcmVnZXhwOiJeWzAtOV17MjB9JCIsYmJhbl92YWxpZGF0aW9uX2Z1bmM6SnNyLElCQU5SZWdpc3RyeTohMCxTRVBBOiEwfSxTTDp7fSxTTTp7Y2hhcnM6MjcsYmJhbl9yZWdleHA6Il5bQS1aXXsxfVswLTldezEwfVtBLVowLTldezEyfSQiLElCQU5SZWdpc3RyeTohMCxTRVBBOiEwLGJyYW5jaF9pbmRlbnRpZmllcjoiNi0xMCJ9LFNOOntjaGFyczoyOCxiYmFuX3JlZ2V4cDoiXltBLVpdezJ9WzAtOV17MjJ9JCJ9LFNPOntjaGFyczoyMyxiYmFuX3JlZ2V4cDoiXlswLTldezE5fSQiLElCQU5SZWdpc3RyeTohMCxicmFuY2hfaW5kZW50aWZpZXI6IjQtNiIsYWNjb3VudF9pbmRlbnRpZmllcjoiMTEtMjMifSxTUjp7fSxTUzp7fSxTVDp7Y2hhcnM6MjUsYmJhbl9yZWdleHA6Il5bMC05XXsyMX0kIixJQkFOUmVnaXN0cnk6ITAsYnJhbmNoX2luZGVudGlmaWVyOiI0LTcifSxTVjp7Y2hhcnM6MjgsYmJhbl9yZWdleHA6Il5bQS1aXXs0fVswLTldezIwfSQiLElCQU5SZWdpc3RyeTohMCxhY2NvdW50X2luZGVudGlmaWVyOiI4LTI4In0sU1g6e30sU1k6e30sU1o6e30sVEM6e30sVEQ6e2NoYXJzOjI3LGJiYW5fcmVnZXhwOiJeWzAtOV17MjN9JCJ9LFRGOntjaGFyczoyNyxiYmFuX3JlZ2V4cDoiXlswLTldezEwfVtBLVowLTldezExfVswLTldezJ9JCIsSUJBTlJlZ2lzdHJ5OiEwfSxURzp7Y2hhcnM6MjgsYmJhbl9yZWdleHA6Il5bQS1aXXsyfVswLTldezIyfSQifSxUSDp7fSxUSjp7fSxUSzp7fSxUTDp7Y2hhcnM6MjMsYmJhbl9yZWdleHA6Il5bMC05XXsxOX0kIixJQkFOUmVnaXN0cnk6ITAsYWNjb3VudF9pbmRlbnRpZmllcjoiNC0yMyJ9LFRNOnt9LFROOntjaGFyczoyNCxiYmFuX3JlZ2V4cDoiXlswLTldezIwfSQiLElCQU5SZWdpc3RyeTohMCxicmFuY2hfaW5kZW50aWZpZXI6IjItNCIsYWNjb3VudF9pbmRlbnRpZmllcjoiNC0yNCJ9LFRPOnt9LFRSOntjaGFyczoyNixiYmFuX3JlZ2V4cDoiXlswLTldezV9W0EtWjAtOV17MTd9JCIsSUJBTlJlZ2lzdHJ5OiEwfSxUVDp7fSxUVjp7fSxUVzp7fSxUWjp7fSxVQTp7Y2hhcnM6MjksYmJhbl9yZWdleHA6Il5bMC05XXs2fVtBLVowLTldezE5fSQiLElCQU5SZWdpc3RyeTohMCxhY2NvdW50X2luZGVudGlmaWVyOiIxNS0yOSJ9LFVHOnt9LFVNOnt9LFVTOnt9LFVZOnt9LFVaOnt9LFZBOntjaGFyczoyMixiYmFuX3JlZ2V4cDoiXlswLTldezE4fSIsSUJBTlJlZ2lzdHJ5OiEwLFNFUEE6ITAsYWNjb3VudF9pbmRlbnRpZmllcjoiNy0yMiJ9LFZDOnt9LFZFOnt9LFZHOntjaGFyczoyNCxiYmFuX3JlZ2V4cDoiXltBLVowLTldezR9WzAtOV17MTZ9JCIsSUJBTlJlZ2lzdHJ5OiEwLGFjY291bnRfaW5kZW50aWZpZXI6IjgtMjQifSxWSTp7fSxWTjp7fSxWVTp7fSxXRjp7Y2hhcnM6MjcsYmJhbl9yZWdleHA6Il5bMC05XXsxMH1bQS1aMC05XXsxMX1bMC05XXsyfSQiLElCQU5SZWdpc3RyeTohMH0sV1M6e30sWEs6e2NoYXJzOjIwLGJiYW5fcmVnZXhwOiJeWzAtOV17MTZ9JCIsSUJBTlJlZ2lzdHJ5OiEwLGJyYW5jaF9pbmRlbnRpZmllcjoiMi0zIixhY2NvdW50X2luZGVudGlmaWVyOiI0LTIwIn0sWUU6e30sWVQ6e2NoYXJzOjI3LGJiYW5fcmVnZXhwOiJeWzAtOV17MTB9W0EtWjAtOV17MTF9WzAtOV17Mn0kIixJQkFOUmVnaXN0cnk6ITB9LFpBOnt9LFpNOnt9LFpXOnt9fX0pO3ZhciB0bHIscmxyPXAoKCk9Pnt4ZSgpO3Rscj0oKT0+Q2AKICA8ZGVlcy1kZW1vd3JhcHBlcj4KICAgIDxzdHlsZT4KICAgICAgJHtvZWAKICAgICAgICAuZGVtby1jb250YWluZXIgewogICAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgICAgICBnYXA6IDI0cHg7CiAgICAgICAgICBwYWRkaW5nOiAyNHB4OwogICAgICAgICAgbWF4LXdpZHRoOiAxMjAwcHg7CiAgICAgICAgICBtYXJnaW46IDAgYXV0bzsKICAgICAgICB9CiAgICAgICAgCiAgICAgICAgLmlucHV0LWdyb3VwIHsKICAgICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICAgICAgZ2FwOiAxNnB4OwogICAgICAgIH0KCiAgICAgICAgLnBheW1lbnQtZ3JvdXAgewogICAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgICBnYXA6IDE2cHg7CiAgICAgICAgICBmbGV4LXdyYXA6IHdyYXA7CiAgICAgICAgfQogICAgICBgfQogICAgPC9zdHlsZT4KICAgIAogICAgPGRpdiBjbGFzcz0iZGVtby1jb250YWluZXIiPgogICAgICA8ZGVlcy1wYW5lbCAudGl0bGU9JHsiQmFzaWMgSUJBTiBJbnB1dCJ9IC5zdWJ0aXRsZT0keyJJbnRlcm5hdGlvbmFsIEJhbmsgQWNjb3VudCBOdW1iZXIgd2l0aCBhdXRvbWF0aWMgZm9ybWF0dGluZyJ9PgogICAgICAgIDxkaXYgY2xhc3M9ImlucHV0LWdyb3VwIj4KICAgICAgICAgIDxkZWVzLWlucHV0LWliYW4KICAgICAgICAgICAgLmxhYmVsPSR7IkJhbmsgQWNjb3VudCBJQkFOIn0KICAgICAgICAgICAgLmRlc2NyaXB0aW9uPSR7IkVudGVyIHlvdXIgSW50ZXJuYXRpb25hbCBCYW5rIEFjY291bnQgTnVtYmVyIn0KICAgICAgICAgID48L2RlZXMtaW5wdXQtaWJhbj4KCiAgICAgICAgICA8ZGVlcy1pbnB1dC1pYmFuCiAgICAgICAgICAgIC5sYWJlbD0keyJWZXJpZmllZCBJQkFOIn0KICAgICAgICAgICAgLmRlc2NyaXB0aW9uPSR7IlRoaXMgSUJBTiBoYXMgYmVlbiB2ZXJpZmllZCJ9CiAgICAgICAgICAgIC52YWx1ZT0keyJERTg5MzcwNDAwNDQwNTMyMDEzMDAwIn0KICAgICAgICAgID48L2RlZXMtaW5wdXQtaWJhbj4KICAgICAgICA8L2Rpdj4KICAgICAgPC9kZWVzLXBhbmVsPgogICAgICAKICAgICAgPGRlZXMtcGFuZWwgLnRpdGxlPSR7IlBheW1lbnQgSW5mb3JtYXRpb24ifSAuc3VidGl0bGU9JHsiSUJBTiBpbnB1dCB3aXRoIGhvcml6b250YWwgbGF5b3V0IGZvciBwYXltZW50IGZvcm1zIn0+CiAgICAgICAgPGRpdiBjbGFzcz0icGF5bWVudC1ncm91cCI+CiAgICAgICAgICA8ZGVlcy1pbnB1dC10ZXh0IAogICAgICAgICAgICAubGFiZWw9JHsiQWNjb3VudCBIb2xkZXIifSAKICAgICAgICAgICAgLmxheW91dE1vZGU9JHsiaG9yaXpvbnRhbCJ9CiAgICAgICAgICAgIC52YWx1ZT0keyJKb2huIERvZSJ9CiAgICAgICAgICA+PC9kZWVzLWlucHV0LXRleHQ+CiAgICAgICAgICAKICAgICAgICAgIDxkZWVzLWlucHV0LWliYW4gCiAgICAgICAgICAgIC5sYWJlbD0keyJJQkFOIn0gCiAgICAgICAgICAgIC5sYXlvdXRNb2RlPSR7Imhvcml6b250YWwifQogICAgICAgICAgICAudmFsdWU9JHsiR0I4MldFU1QxMjM0NTY5ODc2NTQzMiJ9CiAgICAgICAgICA+PC9kZWVzLWlucHV0LWliYW4+CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGVlcy1wYW5lbD4KICAgICAgCiAgICAgIDxkZWVzLXBhbmVsIC50aXRsZT0keyJWYWxpZGF0aW9uICYgU3RhdGVzIn0gLnN1YnRpdGxlPSR7IlJlcXVpcmVkIGZpZWxkcyBhbmQgZGlzYWJsZWQgc3RhdGVzIn0+CiAgICAgICAgPGRpdiBjbGFzcz0iaW5wdXQtZ3JvdXAiPgogICAgICAgICAgPGRlZXMtaW5wdXQtaWJhbgogICAgICAgICAgICAubGFiZWw9JHsiUGF5bWVudCBBY2NvdW50In0KICAgICAgICAgICAgLmRlc2NyaXB0aW9uPSR7IlJlcXVpcmVkIGZvciBwcm9jZXNzaW5nIHBheW1lbnRzIn0KICAgICAgICAgICAgLnJlcXVpcmVkPSR7ITB9CiAgICAgICAgICA+PC9kZWVzLWlucHV0LWliYW4+CgogICAgICAgICAgPGRlZXMtaW5wdXQtaWJhbgogICAgICAgICAgICAubGFiZWw9JHsiTG9ja2VkIElCQU4ifQogICAgICAgICAgICAuZGVzY3JpcHRpb249JHsiVGhpcyBJQkFOIGNhbm5vdCBiZSBjaGFuZ2VkIn0KICAgICAgICAgICAgLnZhbHVlPSR7IkZSMTQyMDA0MTAxMDA1MDUwMDAxM00wMjYwNiJ9CiAgICAgICAgICAgIC5kaXNhYmxlZD0keyEwfQogICAgICAgICAgPjwvZGVlcy1pbnB1dC1pYmFuPgogICAgICAgIDwvZGl2PgogICAgICA8L2RlZXMtcGFuZWw+CiAgICAgIAogICAgICA8ZGVlcy1wYW5lbCAudGl0bGU9JHsiQmFuayBUcmFuc2ZlciBGb3JtIn0gLnN1YnRpdGxlPSR7IkNvbXBsZXRlIGZvcm0gZXhhbXBsZSB3aXRoIElCQU4gdmFsaWRhdGlvbiJ9PgogICAgICAgIDxkZWVzLWZvcm0+CiAgICAgICAgICA8ZGVlcy1pbnB1dC10ZXh0IC5sYWJlbD0keyJSZWNpcGllbnQgTmFtZSJ9IC5yZXF1aXJlZD0keyEwfT48L2RlZXMtaW5wdXQtdGV4dD4KICAgICAgICAgIDxkZWVzLWlucHV0LWliYW4gLmxhYmVsPSR7IlJlY2lwaWVudCBJQkFOIn0gLnJlcXVpcmVkPSR7ITB9PjwvZGVlcy1pbnB1dC1pYmFuPgogICAgICAgICAgPGRlZXMtaW5wdXQtdGV4dCAubGFiZWw9JHsiVHJhbnNmZXIgUmVmZXJlbmNlIn0gLmRlc2NyaXB0aW9uPSR7Ik9wdGlvbmFsIHJlZmVyZW5jZSBmb3IgdGhlIHRyYW5zZmVyIn0+PC9kZWVzLWlucHV0LXRleHQ+CiAgICAgICAgICA8ZGVlcy1pbnB1dC10ZXh0IC5sYWJlbD0keyJBbW91bnQifSAuaW5wdXRUeXBlPSR7Im51bWJlciJ9IC5yZXF1aXJlZD0keyEwfT48L2RlZXMtaW5wdXQtdGV4dD4KICAgICAgICA8L2RlZXMtZm9ybT4KICAgICAgPC9kZWVzLXBhbmVsPgogICAgPC9kaXY+CiAgPC9kZWVzLWRlbW93cmFwcGVyPgpgfSk7dmFyIEJOLFJkLEhOLGs2ZT1wKCgpPT57eGUoKTtLdCgpO00xKCk7ZWxyKCk7cmxyKCk7SmUoKTtCTj1mdW5jdGlvbihlLHQscixpLGEsbil7ZnVuY3Rpb24gbyh5KXtpZih5IT09dm9pZCAwJiZ0eXBlb2YgeSE9ImZ1bmN0aW9uIil0aHJvdyBuZXcgVHlwZUVycm9yKCJGdW5jdGlvbiBleHBlY3RlZCIpO3JldHVybiB5fWZvcih2YXIgcz1pLmtpbmQsbD1zPT09ImdldHRlciI/ImdldCI6cz09PSJzZXR0ZXIiPyJzZXQiOiJ2YWx1ZSIsYz0hdCYmZT9pLnN0YXRpYz9lOmUucHJvdG90eXBlOm51bGwsdT10fHwoYz9PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGMsaS5uYW1lKTp7fSksZCxoPSExLGY9ci5sZW5ndGgtMTtmPj0wO2YtLSl7dmFyIHg9e307Zm9yKHZhciB2IGluIGkpeFt2XT12PT09ImFjY2VzcyI/e306aVt2XTtmb3IodmFyIHYgaW4gaS5hY2Nlc3MpeC5hY2Nlc3Nbdl09aS5hY2Nlc3Nbdl07eC5hZGRJbml0aWFsaXplcj1mdW5jdGlvbih5KXtpZihoKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBhZGQgaW5pdGlhbGl6ZXJzIGFmdGVyIGRlY29yYXRpb24gaGFzIGNvbXBsZXRlZCIpO24ucHVzaChvKHl8fG51bGwpKX07dmFyIGI9KDAscltmXSkocz09PSJhY2Nlc3NvciI/e2dldDp1LmdldCxzZXQ6dS5zZXR9OnVbbF0seCk7aWYocz09PSJhY2Nlc3NvciIpe2lmKGI9PT12b2lkIDApY29udGludWU7aWYoYj09PW51bGx8fHR5cGVvZiBiIT0ib2JqZWN0Iil0aHJvdyBuZXcgVHlwZUVycm9yKCJPYmplY3QgZXhwZWN0ZWQiKTsoZD1vKGIuZ2V0KSkmJih1LmdldD1kKSwoZD1vKGIuc2V0KSkmJih1LnNldD1kKSwoZD1vKGIuaW5pdCkpJiZhLnVuc2hpZnQoZCl9ZWxzZShkPW8oYikpJiYocz09PSJmaWVsZCI/YS51bnNoaWZ0KGQpOnVbbF09ZCl9YyYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGMsaS5uYW1lLHUpLGg9ITB9LFJkPWZ1bmN0aW9uKGUsdCxyKXtmb3IodmFyIGk9YXJndW1lbnRzLmxlbmd0aD4yLGE9MDthPHQubGVuZ3RoO2ErKylyPWk/dFthXS5jYWxsKGUscik6dFthXS5jYWxsKGUpO3JldHVybiBpP3I6dm9pZCAwfSxITj0oKCk9PntsZXQgZT1beWUoImRlZXMtaW5wdXQtaWJhbiIpXSx0LHI9W10saSxhPW90LG4sbz1bXSxzPVtdLGwsYz1bXSx1PVtdLGQsaD1bXSxmPVtdO3ZhciB4PWNsYXNzIGV4dGVuZHMgYXtzdGF0aWN7aT10aGlzfXN0YXRpY3tsZXQgdj10eXBlb2YgU3ltYm9sPT0iZnVuY3Rpb24iJiZTeW1ib2wubWV0YWRhdGE/T2JqZWN0LmNyZWF0ZShhW1N5bWJvbC5tZXRhZGF0YV0/P251bGwpOnZvaWQgMDtuPVtmZSgpXSxsPVtmZSgpXSxkPVtqKHt0eXBlOlN0cmluZ30pXSxCTih0aGlzLG51bGwsbix7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImVudGVyZWRTdHJpbmciLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmI9PiJlbnRlcmVkU3RyaW5nImluIGIsZ2V0OmI9PmIuZW50ZXJlZFN0cmluZyxzZXQ6KGIseSk9PntiLmVudGVyZWRTdHJpbmc9eX19LG1ldGFkYXRhOnZ9LG8scyksQk4odGhpcyxudWxsLGwse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJlbnRlcmVkSWJhbklzVmFsaWQiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmI9PiJlbnRlcmVkSWJhbklzVmFsaWQiaW4gYixnZXQ6Yj0+Yi5lbnRlcmVkSWJhbklzVmFsaWQsc2V0OihiLHkpPT57Yi5lbnRlcmVkSWJhbklzVmFsaWQ9eX19LG1ldGFkYXRhOnZ9LGMsdSksQk4odGhpcyxudWxsLGQse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJ2YWx1ZSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6Yj0+InZhbHVlImluIGIsZ2V0OmI9PmIudmFsdWUsc2V0OihiLHkpPT57Yi52YWx1ZT15fX0sbWV0YWRhdGE6dn0saCxmKSxCTihudWxsLHQ9e3ZhbHVlOml9LGUse2tpbmQ6ImNsYXNzIixuYW1lOmkubmFtZSxtZXRhZGF0YTp2fSxudWxsLHIpLHg9aT10LnZhbHVlLHYmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShpLFN5bWJvbC5tZXRhZGF0YSx7ZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITAsdmFsdWU6dn0pfXN0YXRpYyBkZW1vPXRscjtzdGF0aWMgZGVtb0dyb3Vwcz1bIklucHV0Il07I2U9UmQodGhpcyxvLCIiKTtnZXQgZW50ZXJlZFN0cmluZygpe3JldHVybiB0aGlzLiNlfXNldCBlbnRlcmVkU3RyaW5nKHYpe3RoaXMuI2U9dn0jdD0oUmQodGhpcyxzKSxSZCh0aGlzLGMsITEpKTtnZXQgZW50ZXJlZEliYW5Jc1ZhbGlkKCl7cmV0dXJuIHRoaXMuI3R9c2V0IGVudGVyZWRJYmFuSXNWYWxpZCh2KXt0aGlzLiN0PXZ9I3I9KFJkKHRoaXMsdSksUmQodGhpcyxoLCIiKSk7Z2V0IHZhbHVlKCl7cmV0dXJuIHRoaXMuI3J9c2V0IHZhbHVlKHYpe3RoaXMuI3I9dn1zdGF0aWMgc3R5bGVzPVtEZSwuLi5vdC5iYXNlU3R5bGVzLG0uZGVmYXVsdFN0eWxlcyxvZWAKICAgICAgLyogVE9ETzogTWlncmF0ZSBoYXJkY29kZWQgdmFsdWVzIHRvIC0tZGVlcy0qIENTUyB2YXJpYWJsZXMgKi8KICAgICAgLyogSUJBTiBpbnB1dCBzcGVjaWZpYyBzdHlsZXMgY2FuIGdvIGhlcmUgKi8KICAgIGBdO3JlbmRlcigpe3JldHVybiBDYAogICAgICA8ZGl2IGNsYXNzPSJpbnB1dC13cmFwcGVyIj4KICAgICAgICA8ZGVlcy1sYWJlbCAubGFiZWw9JHt0aGlzLmxhYmVsfHwiSUJBTiJ9IC5kZXNjcmlwdGlvbj0ke3RoaXMuZGVzY3JpcHRpb259PjwvZGVlcy1sYWJlbD4KICAgICAgICA8ZGVlcy1pbnB1dC10ZXh0CiAgICAgICAgICAudmFsdWU9JHt0aGlzLnZhbHVlfQogICAgICAgICAgLmRpc2FibGVkPSR7dGhpcy5kaXNhYmxlZH0KICAgICAgICAgIC5yZXF1aXJlZD0ke3RoaXMucmVxdWlyZWR9CiAgICAgICAgICAucGxhY2Vob2xkZXI9JHsiREU4OSAzNzA0IDAwNDQgMDUzMiAwMTMwIDAwIn0KICAgICAgICAgIEBpbnB1dD0ke3Y9Pnt0aGlzLnZhbGlkYXRlSWJhbih2KX19CiAgICAgICAgPjwvZGVlcy1pbnB1dC10ZXh0PgogICAgICA8L2Rpdj4KICAgIGB9Zmlyc3RVcGRhdGVkKHYpe3N1cGVyLmZpcnN0VXBkYXRlZCh2KTtsZXQgYj10aGlzLnNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvcigiZGVlcy1pbnB1dC10ZXh0Iik7YiYmYi5jaGFuZ2VTdWJqZWN0JiZiLmNoYW5nZVN1YmplY3Quc3Vic2NyaWJlKCgpPT57dGhpcy5jaGFuZ2VTdWJqZWN0Lm5leHQodGhpcyl9KX1hc3luYyB2YWxpZGF0ZUliYW4odil7bGV0IGI9di50YXJnZXQseT1iPy52YWx1ZTt5PXl8fCIiLHRoaXMuZW50ZXJlZFN0cmluZyE9PXkmJih0aGlzLmVudGVyZWRTdHJpbmc9TTZlKHkpfHwiIixiJiYoYi52YWx1ZT10aGlzLmVudGVyZWRTdHJpbmcsdGhpcy52YWx1ZT10aGlzLmVudGVyZWRTdHJpbmcsdGhpcy5jaGFuZ2VTdWJqZWN0Lm5leHQodGhpcykpKSx0aGlzLmVudGVyZWRJYmFuSXNWYWxpZD13NmUodGhpcy5lbnRlcmVkU3RyaW5nLnJlcGxhY2UoLyAvZywiIikpO2xldCB3PXRoaXMuc2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yKCJkZWVzLWlucHV0LXRleHQiKTt3LnZhbGlkYXRpb25UZXh0PWBJQkFOIGlzIHZhbGlkOiAke3RoaXMuZW50ZXJlZEliYW5Jc1ZhbGlkfWB9Z2V0VmFsdWUoKXtyZXR1cm4gdGhpcy52YWx1ZX1zZXRWYWx1ZSh2KXt0aGlzLnZhbHVlPXYsdGhpcy5lbnRlcmVkU3RyaW5nPU02ZSh2KXx8IiJ9Y29uc3RydWN0b3IoKXtzdXBlciguLi5hcmd1bWVudHMpLFJkKHRoaXMsZil9c3RhdGlje1JkKGkscil9fTtyZXR1cm4geD1pfSkoKX0pO3ZhciBpbHIsYWxyPXAoKCk9Pnt4ZSgpO2lscj0oKT0+Q2AKICA8ZGVlcy1kZW1vd3JhcHBlcj4KICAgIDxzdHlsZT4KICAgICAgJHtvZWAKICAgICAgICAuZGVtby1jb250YWluZXIgewogICAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgICAgICBnYXA6IDMycHg7CiAgICAgICAgICBwYWRkaW5nOiA0OHB4OwogICAgICAgICAgYmFja2dyb3VuZDogJHttLmJkVGhlbWUoIiNmOGY5ZmEiLCIjMGEwYTBhIil9OwogICAgICAgICAgbWluLWhlaWdodDogMTAwdmg7CiAgICAgICAgfQogICAgICAgIAogICAgICAgIC5zZWN0aW9uIHsKICAgICAgICAgIGJhY2tncm91bmQ6ICR7bS5iZFRoZW1lKCIjZmZmZmZmIiwiIzE4MTgxYiIpfTsKICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICR7bS5iZFRoZW1lKCIjZTVlN2ViIiwiIzI3MjcyYSIpfTsKICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDhweDsKICAgICAgICAgIHBhZGRpbmc6IDI0cHg7CiAgICAgICAgICBib3gtc2hhZG93OiAwIDFweCAzcHggcmdiYSgwLCAwLCAwLCAwLjEpOwogICAgICAgIH0KICAgICAgICAKICAgICAgICAuc2VjdGlvbi10aXRsZSB7CiAgICAgICAgICBmb250LXNpemU6IDE4cHg7CiAgICAgICAgICBmb250LXdlaWdodDogNjAwOwogICAgICAgICAgbWFyZ2luLWJvdHRvbTogOHB4OwogICAgICAgICAgY29sb3I6ICR7bS5iZFRoZW1lKCIjMDkwOTBiIiwiI2ZhZmFmYSIpfTsKICAgICAgICB9CiAgICAgICAgCiAgICAgICAgLnNlY3Rpb24tZGVzY3JpcHRpb24gewogICAgICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgICAgICAgY29sb3I6ICR7bS5iZFRoZW1lKCIjNzE3MTdhIiwiI2ExYTFhYSIpfTsKICAgICAgICAgIG1hcmdpbi1ib3R0b206IDI0cHg7CiAgICAgICAgfQogICAgICAgIAogICAgICAgIC5zZXR0aW5ncy1ncmlkIHsKICAgICAgICAgIGRpc3BsYXk6IGdyaWQ7CiAgICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDFmciAxZnI7CiAgICAgICAgICBnYXA6IDI0cHg7CiAgICAgICAgfQogICAgICAgIAogICAgICAgIEBtZWRpYSAobWF4LXdpZHRoOiA3NjhweCkgewogICAgICAgICAgLnNldHRpbmdzLWdyaWQgewogICAgICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDFmcjsKICAgICAgICAgIH0KICAgICAgICB9CiAgICAgIGB9CiAgICA8L3N0eWxlPgogICAgCiAgICA8ZGl2IGNsYXNzPSJkZW1vLWNvbnRhaW5lciI+CiAgICAgIDxkaXYgY2xhc3M9InNlY3Rpb24iPgogICAgICAgIDxkaXYgY2xhc3M9InNlY3Rpb24tdGl0bGUiPk11bHRpLU9wdGlvbiBUb2dnbGU8L2Rpdj4KICAgICAgICA8ZGl2IGNsYXNzPSJzZWN0aW9uLWRlc2NyaXB0aW9uIj5TZWxlY3QgZnJvbSBtdWx0aXBsZSBvcHRpb25zIHdpdGggYSBzbW9vdGggc2xpZGluZyBpbmRpY2F0b3IgYW5pbWF0aW9uLjwvZGl2PgogICAgICAgIAogICAgICAgIDxkZWVzLWlucHV0LW11bHRpdG9nZ2xlCiAgICAgICAgICAubGFiZWw9JHsiRGlzcGxheSBNb2RlIn0KICAgICAgICAgIC5kZXNjcmlwdGlvbj0keyJDaG9vc2UgaG93IGNvbnRlbnQgaXMgZGlzcGxheWVkIn0KICAgICAgICAgIC5vcHRpb25zPSR7WyJMaXN0IFZpZXciLCJHcmlkIFZpZXciLCJDb21wYWN0Il19CiAgICAgICAgICAuc2VsZWN0ZWRPcHRpb249JHsiR3JpZCBWaWV3In0KICAgICAgICA+PC9kZWVzLWlucHV0LW11bHRpdG9nZ2xlPgogICAgICAgIAogICAgICAgIDxicj48YnI+CiAgICAgICAgCiAgICAgICAgPGRlZXMtaW5wdXQtbXVsdGl0b2dnbGUKICAgICAgICAgIC5sYWJlbD0keyJULVNoaXJ0IFNpemUifQogICAgICAgICAgLmRlc2NyaXB0aW9uPSR7IlNlbGVjdCB5b3VyIHByZWZlcnJlZCBzaXplIn0KICAgICAgICAgIC5vcHRpb25zPSR7WyJYUyIsIlMiLCJNIiwiTCIsIlhMIiwiWFhMIl19CiAgICAgICAgICAuc2VsZWN0ZWRPcHRpb249JHsiTSJ9CiAgICAgICAgPjwvZGVlcy1pbnB1dC1tdWx0aXRvZ2dsZT4KICAgICAgPC9kaXY+CiAgICAgIAogICAgICA8ZGl2IGNsYXNzPSJzZWN0aW9uIj4KICAgICAgICA8ZGl2IGNsYXNzPSJzZWN0aW9uLXRpdGxlIj5Cb29sZWFuIFRvZ2dsZTwvZGl2PgogICAgICAgIDxkaXYgY2xhc3M9InNlY3Rpb24tZGVzY3JpcHRpb24iPlNpbXBsZSBvbi9vZmYgc3dpdGNoZXMgd2l0aCBjdXN0b21pemFibGUgbGFiZWxzIGZvciBjbGVhcmVyIGNvbnRleHQuPC9kaXY+CiAgICAgICAgCiAgICAgICAgPGRlZXMtaW5wdXQtbXVsdGl0b2dnbGUKICAgICAgICAgIC5sYWJlbD0keyJOb3RpZmljYXRpb25zIn0KICAgICAgICAgIC5kZXNjcmlwdGlvbj0keyJFbmFibGUgb3IgZGlzYWJsZSBwdXNoIG5vdGlmaWNhdGlvbnMifQogICAgICAgICAgLnR5cGU9JHsiYm9vbGVhbiJ9CiAgICAgICAgICAuc2VsZWN0ZWRPcHRpb249JHsidHJ1ZSJ9CiAgICAgICAgPjwvZGVlcy1pbnB1dC1tdWx0aXRvZ2dsZT4KICAgICAgICAKICAgICAgICA8YnI+PGJyPgogICAgICAgIAogICAgICAgIDxkZWVzLWlucHV0LW11bHRpdG9nZ2xlCiAgICAgICAgICAubGFiZWw9JHsiVGhlbWUgTW9kZSJ9CiAgICAgICAgICAuZGVzY3JpcHRpb249JHsiU3dpdGNoIGJldHdlZW4gbGlnaHQgYW5kIGRhcmsgdGhlbWUifQogICAgICAgICAgLnR5cGU9JHsiYm9vbGVhbiJ9CiAgICAgICAgICAuYm9vbGVhblRydWVOYW1lPSR7IkRhcmsifQogICAgICAgICAgLmJvb2xlYW5GYWxzZU5hbWU9JHsiTGlnaHQifQogICAgICAgICAgLnNlbGVjdGVkT3B0aW9uPSR7IkRhcmsifQogICAgICAgID48L2RlZXMtaW5wdXQtbXVsdGl0b2dnbGU+CiAgICAgIDwvZGl2PgogICAgICAKICAgICAgPGRpdiBjbGFzcz0ic2VjdGlvbiI+CiAgICAgICAgPGRpdiBjbGFzcz0ic2VjdGlvbi10aXRsZSI+U2V0dGluZ3MgR3JpZDwvZGl2PgogICAgICAgIDxkaXYgY2xhc3M9InNlY3Rpb24tZGVzY3JpcHRpb24iPkNvbmZpZ3VyYXRpb24gb3B0aW9ucyBhcnJhbmdlZCBpbiBhIHJlc3BvbnNpdmUgZ3JpZCBsYXlvdXQuPC9kaXY+CiAgICAgICAgCiAgICAgICAgPGRpdiBjbGFzcz0ic2V0dGluZ3MtZ3JpZCI+CiAgICAgICAgICA8ZGVlcy1pbnB1dC1tdWx0aXRvZ2dsZQogICAgICAgICAgICAubGFiZWw9JHsiQXV0by1TYXZlIn0KICAgICAgICAgICAgLnR5cGU9JHsiYm9vbGVhbiJ9CiAgICAgICAgICAgIC5ib29sZWFuVHJ1ZU5hbWU9JHsiRW5hYmxlZCJ9CiAgICAgICAgICAgIC5ib29sZWFuRmFsc2VOYW1lPSR7IkRpc2FibGVkIn0KICAgICAgICAgICAgLnNlbGVjdGVkT3B0aW9uPSR7IkVuYWJsZWQifQogICAgICAgICAgPjwvZGVlcy1pbnB1dC1tdWx0aXRvZ2dsZT4KICAgICAgICAgIAogICAgICAgICAgPGRlZXMtaW5wdXQtbXVsdGl0b2dnbGUKICAgICAgICAgICAgLmxhYmVsPSR7Ikxhbmd1YWdlIn0KICAgICAgICAgICAgLm9wdGlvbnM9JHtbIkVuZ2xpc2giLCJHZXJtYW4iLCJGcmVuY2giLCJTcGFuaXNoIl19CiAgICAgICAgICAgIC5zZWxlY3RlZE9wdGlvbj0keyJFbmdsaXNoIn0KICAgICAgICAgID48L2RlZXMtaW5wdXQtbXVsdGl0b2dnbGU+CiAgICAgICAgICAKICAgICAgICAgIDxkZWVzLWlucHV0LW11bHRpdG9nZ2xlCiAgICAgICAgICAgIC5sYWJlbD0keyJRdWFsaXR5In0KICAgICAgICAgICAgLm9wdGlvbnM9JHtbIkxvdyIsIk1lZGl1bSIsIkhpZ2giLCJVbHRyYSJdfQogICAgICAgICAgICAuc2VsZWN0ZWRPcHRpb249JHsiSGlnaCJ9CiAgICAgICAgICA+PC9kZWVzLWlucHV0LW11bHRpdG9nZ2xlPgogICAgICAgICAgCiAgICAgICAgICA8ZGVlcy1pbnB1dC1tdWx0aXRvZ2dsZQogICAgICAgICAgICAubGFiZWw9JHsiUHJpdmFjeSJ9CiAgICAgICAgICAgIC50eXBlPSR7ImJvb2xlYW4ifQogICAgICAgICAgICAuYm9vbGVhblRydWVOYW1lPSR7IlByaXZhdGUifQogICAgICAgICAgICAuYm9vbGVhbkZhbHNlTmFtZT0keyJQdWJsaWMifQogICAgICAgICAgICAuc2VsZWN0ZWRPcHRpb249JHsiUHJpdmF0ZSJ9CiAgICAgICAgICA+PC9kZWVzLWlucHV0LW11bHRpdG9nZ2xlPgogICAgICAgIDwvZGl2PgogICAgICA8L2Rpdj4KICAgICAgCiAgICAgIDxkaXYgY2xhc3M9InNlY3Rpb24iPgogICAgICAgIDxkaXYgY2xhc3M9InNlY3Rpb24tdGl0bGUiPlN0YXRlcyAmIEZvcm0gSW50ZWdyYXRpb248L2Rpdj4KICAgICAgICA8ZGl2IGNsYXNzPSJzZWN0aW9uLWRlc2NyaXB0aW9uIj5FeGFtcGxlcyBvZiBkaXNhYmxlZCBzdGF0ZXMgYW5kIGludGVncmF0aW9uIHdpdGhpbiBmb3Jtcy48L2Rpdj4KICAgICAgICAKICAgICAgICA8ZGVlcy1pbnB1dC1tdWx0aXRvZ2dsZQogICAgICAgICAgLmxhYmVsPSR7IkFjY291bnQgVHlwZSJ9CiAgICAgICAgICAuZGVzY3JpcHRpb249JHsiVGhpcyBzZXR0aW5nIGlzIGxvY2tlZCJ9CiAgICAgICAgICAub3B0aW9ucz0ke1siRnJlZSIsIlBybyIsIkVudGVycHJpc2UiXX0KICAgICAgICAgIC5zZWxlY3RlZE9wdGlvbj0keyJFbnRlcnByaXNlIn0KICAgICAgICAgIC5kaXNhYmxlZD0keyEwfQogICAgICAgID48L2RlZXMtaW5wdXQtbXVsdGl0b2dnbGU+CiAgICAgICAgCiAgICAgICAgPGJyPjxicj4KICAgICAgICAKICAgICAgICA8ZGVlcy1mb3JtPgogICAgICAgICAgPGRlZXMtaW5wdXQtdGV4dCAubGFiZWw9JHsiUHJvamVjdCBOYW1lIn0gLnJlcXVpcmVkPSR7ITB9PjwvZGVlcy1pbnB1dC10ZXh0PgogICAgICAgICAgPGRlZXMtaW5wdXQtbXVsdGl0b2dnbGUKICAgICAgICAgICAgLmxhYmVsPSR7IlZpc2liaWxpdHkifQogICAgICAgICAgICAudHlwZT0keyJib29sZWFuIn0KICAgICAgICAgICAgLmJvb2xlYW5UcnVlTmFtZT0keyJQdWJsaWMifQogICAgICAgICAgICAuYm9vbGVhbkZhbHNlTmFtZT0keyJQcml2YXRlIn0KICAgICAgICAgICAgLnNlbGVjdGVkT3B0aW9uPSR7IlByaXZhdGUifQogICAgICAgICAgPjwvZGVlcy1pbnB1dC1tdWx0aXRvZ2dsZT4KICAgICAgICAgIDxkZWVzLWlucHV0LW11bHRpdG9nZ2xlCiAgICAgICAgICAgIC5sYWJlbD0keyJMaWNlbnNlIn0KICAgICAgICAgICAgLm9wdGlvbnM9JHtbIk1JVCIsIkFwYWNoZSAyLjAiLCJHUEwgdjMiLCJQcm9wcmlldGFyeSJdfQogICAgICAgICAgICAuc2VsZWN0ZWRPcHRpb249JHsiTUlUIn0KICAgICAgICAgID48L2RlZXMtaW5wdXQtbXVsdGl0b2dnbGU+CiAgICAgICAgPC9kZWVzLWZvcm0+CiAgICAgIDwvZGl2PgogICAgPC9kaXY+CiAgPC9kZWVzLWRlbW93cmFwcGVyPgpgfSk7dmFyIEJkLFhuLHFOLFM2ZT1wKCgpPT57eGUoKTtNMSgpO1BvKCk7YWxyKCk7SmUoKTtCZD1mdW5jdGlvbihlLHQscixpLGEsbil7ZnVuY3Rpb24gbyh5KXtpZih5IT09dm9pZCAwJiZ0eXBlb2YgeSE9ImZ1bmN0aW9uIil0aHJvdyBuZXcgVHlwZUVycm9yKCJGdW5jdGlvbiBleHBlY3RlZCIpO3JldHVybiB5fWZvcih2YXIgcz1pLmtpbmQsbD1zPT09ImdldHRlciI/ImdldCI6cz09PSJzZXR0ZXIiPyJzZXQiOiJ2YWx1ZSIsYz0hdCYmZT9pLnN0YXRpYz9lOmUucHJvdG90eXBlOm51bGwsdT10fHwoYz9PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGMsaS5uYW1lKTp7fSksZCxoPSExLGY9ci5sZW5ndGgtMTtmPj0wO2YtLSl7dmFyIHg9e307Zm9yKHZhciB2IGluIGkpeFt2XT12PT09ImFjY2VzcyI/e306aVt2XTtmb3IodmFyIHYgaW4gaS5hY2Nlc3MpeC5hY2Nlc3Nbdl09aS5hY2Nlc3Nbdl07eC5hZGRJbml0aWFsaXplcj1mdW5jdGlvbih5KXtpZihoKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBhZGQgaW5pdGlhbGl6ZXJzIGFmdGVyIGRlY29yYXRpb24gaGFzIGNvbXBsZXRlZCIpO24ucHVzaChvKHl8fG51bGwpKX07dmFyIGI9KDAscltmXSkocz09PSJhY2Nlc3NvciI/e2dldDp1LmdldCxzZXQ6dS5zZXR9OnVbbF0seCk7aWYocz09PSJhY2Nlc3NvciIpe2lmKGI9PT12b2lkIDApY29udGludWU7aWYoYj09PW51bGx8fHR5cGVvZiBiIT0ib2JqZWN0Iil0aHJvdyBuZXcgVHlwZUVycm9yKCJPYmplY3QgZXhwZWN0ZWQiKTsoZD1vKGIuZ2V0KSkmJih1LmdldD1kKSwoZD1vKGIuc2V0KSkmJih1LnNldD1kKSwoZD1vKGIuaW5pdCkpJiZhLnVuc2hpZnQoZCl9ZWxzZShkPW8oYikpJiYocz09PSJmaWVsZCI/YS51bnNoaWZ0KGQpOnVbbF09ZCl9YyYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGMsaS5uYW1lLHUpLGg9ITB9LFhuPWZ1bmN0aW9uKGUsdCxyKXtmb3IodmFyIGk9YXJndW1lbnRzLmxlbmd0aD4yLGE9MDthPHQubGVuZ3RoO2ErKylyPWk/dFthXS5jYWxsKGUscik6dFthXS5jYWxsKGUpO3JldHVybiBpP3I6dm9pZCAwfSxxTj0oKCk9PntsZXQgZT1beWUoImRlZXMtaW5wdXQtbXVsdGl0b2dnbGUiKV0sdCxyPVtdLGksYT1vdCxuLG89W10scz1bXSxsLGM9W10sdT1bXSxkLGg9W10sZj1bXSx4LHY9W10sYj1bXSx5LHc9W10saz1bXSxPLHo9W10sTT1bXTt2YXIgRj1jbGFzcyBleHRlbmRzIGF7c3RhdGlje2k9dGhpc31zdGF0aWN7bGV0IEQ9dHlwZW9mIFN5bWJvbD09ImZ1bmN0aW9uIiYmU3ltYm9sLm1ldGFkYXRhP09iamVjdC5jcmVhdGUoYVtTeW1ib2wubWV0YWRhdGFdPz9udWxsKTp2b2lkIDA7bj1baigpXSxsPVtqKCldLGQ9W2ooKV0seD1baih7dHlwZTpBcnJheX0pXSx5PVtqKCldLE89W2ooe3R5cGU6Qm9vbGVhbn0pXSxCZCh0aGlzLG51bGwsbix7a2luZDoiYWNjZXNzb3IiLG5hbWU6InR5cGUiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOk49PiJ0eXBlImluIE4sZ2V0Ok49Pk4udHlwZSxzZXQ6KE4sUik9PntOLnR5cGU9Un19LG1ldGFkYXRhOkR9LG8scyksQmQodGhpcyxudWxsLGwse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJib29sZWFuVHJ1ZU5hbWUiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOk49PiJib29sZWFuVHJ1ZU5hbWUiaW4gTixnZXQ6Tj0+Ti5ib29sZWFuVHJ1ZU5hbWUsc2V0OihOLFIpPT57Ti5ib29sZWFuVHJ1ZU5hbWU9Un19LG1ldGFkYXRhOkR9LGMsdSksQmQodGhpcyxudWxsLGQse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJib29sZWFuRmFsc2VOYW1lIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpOPT4iYm9vbGVhbkZhbHNlTmFtZSJpbiBOLGdldDpOPT5OLmJvb2xlYW5GYWxzZU5hbWUsc2V0OihOLFIpPT57Ti5ib29sZWFuRmFsc2VOYW1lPVJ9fSxtZXRhZGF0YTpEfSxoLGYpLEJkKHRoaXMsbnVsbCx4LHtraW5kOiJhY2Nlc3NvciIsbmFtZToib3B0aW9ucyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6Tj0+Im9wdGlvbnMiaW4gTixnZXQ6Tj0+Ti5vcHRpb25zLHNldDooTixSKT0+e04ub3B0aW9ucz1SfX0sbWV0YWRhdGE6RH0sdixiKSxCZCh0aGlzLG51bGwseSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InNlbGVjdGVkT3B0aW9uIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpOPT4ic2VsZWN0ZWRPcHRpb24iaW4gTixnZXQ6Tj0+Ti5zZWxlY3RlZE9wdGlvbixzZXQ6KE4sUik9PntOLnNlbGVjdGVkT3B0aW9uPVJ9fSxtZXRhZGF0YTpEfSx3LGspLEJkKHRoaXMsbnVsbCxPLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiYm9vbFZhbHVlIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpOPT4iYm9vbFZhbHVlImluIE4sZ2V0Ok49Pk4uYm9vbFZhbHVlLHNldDooTixSKT0+e04uYm9vbFZhbHVlPVJ9fSxtZXRhZGF0YTpEfSx6LE0pLEJkKG51bGwsdD17dmFsdWU6aX0sZSx7a2luZDoiY2xhc3MiLG5hbWU6aS5uYW1lLG1ldGFkYXRhOkR9LG51bGwsciksRj1pPXQudmFsdWUsRCYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGksU3ltYm9sLm1ldGFkYXRhLHtlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMCx2YWx1ZTpEfSl9c3RhdGljIGRlbW89aWxyO3N0YXRpYyBkZW1vR3JvdXBzPVsiSW5wdXQiXTsjZT1Ybih0aGlzLG8sIm11bHRpIik7Z2V0IHR5cGUoKXtyZXR1cm4gdGhpcy4jZX1zZXQgdHlwZShEKXt0aGlzLiNlPUR9I3Q9KFhuKHRoaXMscyksWG4odGhpcyxjLCJ0cnVlIikpO2dldCBib29sZWFuVHJ1ZU5hbWUoKXtyZXR1cm4gdGhpcy4jdH1zZXQgYm9vbGVhblRydWVOYW1lKEQpe3RoaXMuI3Q9RH0jcj0oWG4odGhpcyx1KSxYbih0aGlzLGgsImZhbHNlIikpO2dldCBib29sZWFuRmFsc2VOYW1lKCl7cmV0dXJuIHRoaXMuI3J9c2V0IGJvb2xlYW5GYWxzZU5hbWUoRCl7dGhpcy4jcj1EfSNpPShYbih0aGlzLGYpLFhuKHRoaXMsdixbXSkpO2dldCBvcHRpb25zKCl7cmV0dXJuIHRoaXMuI2l9c2V0IG9wdGlvbnMoRCl7dGhpcy4jaT1EfSNhPShYbih0aGlzLGIpLFhuKHRoaXMsdywiIikpO2dldCBzZWxlY3RlZE9wdGlvbigpe3JldHVybiB0aGlzLiNhfXNldCBzZWxlY3RlZE9wdGlvbihEKXt0aGlzLiNhPUR9I249KFhuKHRoaXMsayksWG4odGhpcyx6LCExKSk7Z2V0IGJvb2xWYWx1ZSgpe3JldHVybiB0aGlzLiNufXNldCBib29sVmFsdWUoRCl7dGhpcy4jbj1EfWdldCB2YWx1ZSgpe3JldHVybiB0aGlzLnR5cGU9PT0iYm9vbGVhbiI/dGhpcy5zZWxlY3RlZE9wdGlvbj09PXRoaXMuYm9vbGVhblRydWVOYW1lOnRoaXMuc2VsZWN0ZWRPcHRpb259c2V0IHZhbHVlKEQpe3RoaXMudHlwZT09PSJib29sZWFuIiYmdHlwZW9mIEQ9PSJib29sZWFuIj90aGlzLnNlbGVjdGVkT3B0aW9uPUQ/dGhpcy5ib29sZWFuVHJ1ZU5hbWU6dGhpcy5ib29sZWFuRmFsc2VOYW1lOnRoaXMuc2VsZWN0ZWRPcHRpb249RCx0aGlzLnJlcXVlc3RVcGRhdGUoKSx0aGlzLmhhc1VwZGF0ZWQmJnJlcXVlc3RBbmltYXRpb25GcmFtZSgoKT0+e3RoaXMuc2V0SW5kaWNhdG9yKCl9KX1zdGF0aWMgc3R5bGVzPVtEZSwuLi5vdC5iYXNlU3R5bGVzLG0uZGVmYXVsdFN0eWxlcyxvZWAKICAgICAgLyogVE9ETzogTWlncmF0ZSBoYXJkY29kZWQgdmFsdWVzIHRvIC0tZGVlcy0qIENTUyB2YXJpYWJsZXMgKi8KICAgICAgOmhvc3QgewogICAgICAgIGNvbG9yOiAke20uYmRUaGVtZSgiIzA5MDkwYiIsIiNmYWZhZmEiKX07CiAgICAgICAgdXNlci1zZWxlY3Q6IG5vbmU7CiAgICAgIH0KCiAgICAgIC5zZWxlY3Rpb25zIHsKICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgICAgZGlzcGxheTogaW5saW5lLWZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBiYWNrZ3JvdW5kOiAke20uYmRUaGVtZSgiI2ZmZmZmZiIsIiMxODE4MWIiKX07CiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHttLmJkVGhlbWUoIiNlNWU3ZWIiLCIjMjcyNzJhIil9OwogICAgICAgIHBhZGRpbmc6IDRweDsKICAgICAgICBib3JkZXItcmFkaXVzOiA4cHg7CiAgICAgICAgYm94LXNoYWRvdzogMCAxcHggMnB4IDAgcmdiYSgwLCAwLCAwLCAwLjA1KTsKICAgICAgfQoKICAgICAgLm9wdGlvbiB7CiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICAgIHBhZGRpbmc6IDhweCAyMHB4OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDZweDsKICAgICAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDsKICAgICAgICB0cmFuc2l0aW9uOiBjb2xvciAwLjJzIGVhc2U7CiAgICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7CiAgICAgICAgY29sb3I6ICR7bS5iZFRoZW1lKCIjNzE3MTdhIiwiIzcxNzE3YSIpfTsKICAgICAgICBsaW5lLWhlaWdodDogMTsKICAgICAgICB6LWluZGV4OiAyOwogICAgICB9CgogICAgICAub3B0aW9uOmhvdmVyIHsKICAgICAgICBjb2xvcjogJHttLmJkVGhlbWUoIiMxODE4MWIiLCIjZTRlNGU3Iil9OwogICAgICB9CgogICAgICAub3B0aW9uLnNlbGVjdGVkIHsKICAgICAgICBjb2xvcjogJHttLmJkVGhlbWUoIiMzYjgyZjYiLCIjNjBhNWZhIil9OwogICAgICB9CgogICAgICAuaW5kaWNhdG9yIHsKICAgICAgICBvcGFjaXR5OiAwOwogICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgICBoZWlnaHQ6IGNhbGMoMTAwJSAtIDhweCk7CiAgICAgICAgdG9wOiA0cHg7CiAgICAgICAgYm9yZGVyLXJhZGl1czogNnB4OwogICAgICAgIGJhY2tncm91bmQ6ICR7bS5iZFRoZW1lKCJyZ2JhKDU5LCAxMzAsIDI0NiwgMC4xNSkiLCJyZ2JhKDU5LCAxMzAsIDI0NiwgMC4xNSkiKX07CiAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuMnMgY3ViaWMtYmV6aWVyKDAuNCwgMCwgMC4yLCAxKTsKICAgICAgICB6LWluZGV4OiAxOwogICAgICB9CiAgICAgIAogICAgICAuaW5kaWNhdG9yLm5vLXRyYW5zaXRpb24gewogICAgICAgIHRyYW5zaXRpb246IG5vbmU7CiAgICAgIH0KICAgICAgCiAgICAgIDpob3N0KFtkaXNhYmxlZF0pIC5zZWxlY3Rpb25zIHsKICAgICAgICBvcGFjaXR5OiAwLjU7CiAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDsKICAgICAgfQoKICAgICAgOmhvc3QoW2Rpc2FibGVkXSkgLm9wdGlvbiB7CiAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDsKICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTsKICAgICAgfQoKICAgICAgOmhvc3QoW2Rpc2FibGVkXSkgLmluZGljYXRvciB7CiAgICAgICAgYmFja2dyb3VuZDogJHttLmJkVGhlbWUoInJnYmEoMTEzLCAxMTMsIDEyMiwgMC4xNSkiLCJyZ2JhKDExMywgMTEzLCAxMjIsIDAuMTUpIil9OwogICAgICB9CiAgICBgXTtyZW5kZXIoKXtyZXR1cm4gQ2AKICAgICAgPGRpdiBjbGFzcz0iaW5wdXQtd3JhcHBlciI+CiAgICAgICAgPGRlZXMtbGFiZWwgLmxhYmVsPSR7dGhpcy5sYWJlbH0gLmRlc2NyaXB0aW9uPSR7dGhpcy5kZXNjcmlwdGlvbn0+PC9kZWVzLWxhYmVsPgogICAgICAgIDxkaXYgY2xhc3M9Im1haW5ib3giPgogICAgICAgICAgPGRpdiBjbGFzcz0ic2VsZWN0aW9ucyI+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJpbmRpY2F0b3IiPjwvZGl2PgogICAgICAgICAgJHt0aGlzLm9wdGlvbnMubWFwKEQ9PkNgPGRpdiBjbGFzcz0ib3B0aW9uICR7RD09PXRoaXMuc2VsZWN0ZWRPcHRpb24/InNlbGVjdGVkIjoiIn0iIEBjbGljaz0keygpPT50aGlzLmhhbmRsZVNlbGVjdGlvbihEKX0+CiAgICAgICAgICAgICAgICAke0R9CiAgICAgICAgICAgICAgPC9kaXY+IGApfQogICAgICAgICAgPC9kaXY+CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGl2PgogICAgYH1hc3luYyBjb25uZWN0ZWRDYWxsYmFjaygpe2F3YWl0IHN1cGVyLmNvbm5lY3RlZENhbGxiYWNrKCksdGhpcy50eXBlPT09ImJvb2xlYW4iJiZ0aGlzLm9wdGlvbnMubGVuZ3RoPT09MCYmKHRoaXMub3B0aW9ucz1bdGhpcy5ib29sZWFuVHJ1ZU5hbWV8fCJ0cnVlIix0aGlzLmJvb2xlYW5GYWxzZU5hbWV8fCJmYWxzZSJdLHRoaXMuc2VsZWN0ZWRPcHRpb258fCh0aGlzLnNlbGVjdGVkT3B0aW9uPXRoaXMuYm9vbGVhbkZhbHNlTmFtZXx8ImZhbHNlIikpLCF0aGlzLnNlbGVjdGVkT3B0aW9uJiZ0aGlzLm9wdGlvbnMubGVuZ3RoPjAmJih0aGlzLnNlbGVjdGVkT3B0aW9uPXRoaXMub3B0aW9uc1swXSl9YXN5bmMgZmlyc3RVcGRhdGVkKEQpe3N1cGVyLmZpcnN0VXBkYXRlZChEKSx0aGlzLnR5cGU9PT0iYm9vbGVhbiImJih0aGlzLm9wdGlvbnM9W3RoaXMuYm9vbGVhblRydWVOYW1lfHwidHJ1ZSIsdGhpcy5ib29sZWFuRmFsc2VOYW1lfHwiZmFsc2UiXSksYXdhaXQgdGhpcy51cGRhdGVDb21wbGV0ZSxkb2N1bWVudC5mb250cyYmYXdhaXQgZG9jdW1lbnQuZm9udHMucmVhZHksYXdhaXQgbmV3IFByb21pc2UoTj0+cmVxdWVzdEFuaW1hdGlvbkZyYW1lKE4pKSx0aGlzLnNldEluZGljYXRvcigpfWFzeW5jIGhhbmRsZVNlbGVjdGlvbihEKXt0aGlzLmRpc2FibGVkfHwodGhpcy5zZWxlY3RlZE9wdGlvbj1ELHRoaXMucmVxdWVzdFVwZGF0ZSgpLHRoaXMuY2hhbmdlU3ViamVjdC5uZXh0KHRoaXMpLGF3YWl0IHRoaXMudXBkYXRlQ29tcGxldGUsdGhpcy5zZXRJbmRpY2F0b3IoKSl9aW5kaWNhdG9ySW5pdGlhbGl6ZWQ9KFhuKHRoaXMsTSksITEpO2FzeW5jIHNldEluZGljYXRvcigpe2xldCBEPXRoaXMuc2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yKCIuaW5kaWNhdG9yIiksTj10aGlzLm9wdGlvbnMuaW5kZXhPZih0aGlzLnNlbGVjdGVkT3B0aW9uKTtpZihOPT09LTF8fCFEKXtEJiYoRC5zdHlsZS5vcGFjaXR5PSIwIik7cmV0dXJufWxldCBSPXRoaXMuc2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yKGAub3B0aW9uOm50aC1jaGlsZCgke04rMn0pYCk7RCYmUiYmKHRoaXMuaW5kaWNhdG9ySW5pdGlhbGl6ZWR8fChELmNsYXNzTGlzdC5hZGQoIm5vLXRyYW5zaXRpb24iKSx0aGlzLmluZGljYXRvckluaXRpYWxpemVkPSEwLHNldFRpbWVvdXQoKCk9PntELmNsYXNzTGlzdC5yZW1vdmUoIm5vLXRyYW5zaXRpb24iKX0sNTApKSxELnN0eWxlLndpZHRoPWAke1IuY2xpZW50V2lkdGh9cHhgLEQuc3R5bGUubGVmdD1gJHtSLm9mZnNldExlZnR9cHhgLEQuc3R5bGUub3BhY2l0eT0iMSIpfWdldFZhbHVlKCl7cmV0dXJuIHRoaXMudHlwZT09PSJib29sZWFuIj90aGlzLnNlbGVjdGVkT3B0aW9uPT09dGhpcy5ib29sZWFuVHJ1ZU5hbWU6dGhpcy5zZWxlY3RlZE9wdGlvbn1zZXRWYWx1ZShEKXt0aGlzLnR5cGU9PT0iYm9vbGVhbiImJnR5cGVvZiBEPT0iYm9vbGVhbiI/dGhpcy5zZWxlY3RlZE9wdGlvbj1EP3RoaXMuYm9vbGVhblRydWVOYW1lfHwidHJ1ZSI6dGhpcy5ib29sZWFuRmFsc2VOYW1lfHwiZmFsc2UiOnRoaXMuc2VsZWN0ZWRPcHRpb249RCx0aGlzLnJlcXVlc3RVcGRhdGUoKSx0aGlzLmhhc1VwZGF0ZWQmJnJlcXVlc3RBbmltYXRpb25GcmFtZSgoKT0+e3RoaXMuc2V0SW5kaWNhdG9yKCl9KX1zdGF0aWN7WG4oaSxyKX19O3JldHVybiBGPWl9KSgpfSk7dmFyIG5scixvbHI9cCgoKT0+e3hlKCk7bmxyPSgpPT5DYAogIDxkZWVzLWRlbW93cmFwcGVyPgogICAgPHN0eWxlPgogICAgICAke29lYAogICAgICAgIC5kZW1vLWNvbnRhaW5lciB7CiAgICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgICAgIGdhcDogMjRweDsKICAgICAgICAgIHBhZGRpbmc6IDI0cHg7CiAgICAgICAgICBtYXgtd2lkdGg6IDEyMDBweDsKICAgICAgICAgIG1hcmdpbjogMCBhdXRvOwogICAgICAgIH0KICAgICAgICAKICAgICAgICAuaW5wdXQtZ3JvdXAgewogICAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgICAgICBnYXA6IDE2cHg7CiAgICAgICAgfQoKICAgICAgICAuaG9yaXpvbnRhbC1ncm91cCB7CiAgICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICAgIGdhcDogMTZweDsKICAgICAgICAgIGZsZXgtd3JhcDogd3JhcDsKICAgICAgICB9CiAgICAgIGB9CiAgICA8L3N0eWxlPgogICAgCiAgICA8ZGl2IGNsYXNzPSJkZW1vLWNvbnRhaW5lciI+CiAgICAgIDxkZWVzLXBhbmVsIC50aXRsZT0keyJCYXNpYyBQaG9uZSBJbnB1dCJ9IC5zdWJ0aXRsZT0keyJBdXRvbWF0aWMgZm9ybWF0dGluZyBmb3IgcGhvbmUgbnVtYmVycyJ9PgogICAgICAgIDxkaXYgY2xhc3M9ImlucHV0LWdyb3VwIj4KICAgICAgICAgIDxkZWVzLWlucHV0LXBob25lCiAgICAgICAgICAgIC5sYWJlbD0keyJQaG9uZSBOdW1iZXIifQogICAgICAgICAgICAuZGVzY3JpcHRpb249JHsiRW50ZXIgeW91ciBwaG9uZSBudW1iZXIgd2l0aCBjb3VudHJ5IGNvZGUifQogICAgICAgICAgICAudmFsdWU9JHsiNTU1MTIzNDU2NyJ9CiAgICAgICAgICA+PC9kZWVzLWlucHV0LXBob25lPgoKICAgICAgICAgIDxkZWVzLWlucHV0LXBob25lCiAgICAgICAgICAgIC5sYWJlbD0keyJDb250YWN0IFBob25lIn0KICAgICAgICAgICAgLmRlc2NyaXB0aW9uPSR7IlJlcXVpcmVkIGZvciBhY2NvdW50IHZlcmlmaWNhdGlvbiJ9CiAgICAgICAgICAgIC5yZXF1aXJlZD0keyEwfQogICAgICAgICAgICAucGxhY2Vob2xkZXI9JHsiKzEgKDU1NSkgMDAwLTAwMDAifQogICAgICAgICAgPjwvZGVlcy1pbnB1dC1waG9uZT4KICAgICAgICA8L2Rpdj4KICAgICAgPC9kZWVzLXBhbmVsPgogICAgICAKICAgICAgPGRlZXMtcGFuZWwgLnRpdGxlPSR7Ikhvcml6b250YWwgTGF5b3V0In0gLnN1YnRpdGxlPSR7IlBob25lIGlucHV0cyBhcnJhbmdlZCBob3Jpem9udGFsbHkifT4KICAgICAgICA8ZGl2IGNsYXNzPSJob3Jpem9udGFsLWdyb3VwIj4KICAgICAgICAgIDxkZWVzLWlucHV0LXBob25lIAogICAgICAgICAgICAubGFiZWw9JHsiTW9iaWxlIn0gCiAgICAgICAgICAgIC5sYXlvdXRNb2RlPSR7Imhvcml6b250YWwifQogICAgICAgICAgICAudmFsdWU9JHsiNDE1NTU1MTIzNCJ9CiAgICAgICAgICA+PC9kZWVzLWlucHV0LXBob25lPgogICAgICAgICAgCiAgICAgICAgICA8ZGVlcy1pbnB1dC1waG9uZSAKICAgICAgICAgICAgLmxhYmVsPSR7Ik9mZmljZSJ9IAogICAgICAgICAgICAubGF5b3V0TW9kZT0keyJob3Jpem9udGFsIn0KICAgICAgICAgICAgLnBsYWNlaG9sZGVyPSR7IisxICg4MDApIDU1NS0wMDAwIn0KICAgICAgICAgID48L2RlZXMtaW5wdXQtcGhvbmU+CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGVlcy1wYW5lbD4KICAgICAgCiAgICAgIDxkZWVzLXBhbmVsIC50aXRsZT0keyJJbnRlcm5hdGlvbmFsIE51bWJlcnMifSAuc3VidGl0bGU9JHsiU3VwcG9ydHMgZm9ybWF0dGluZyBmb3IgbnVtYmVycyB3aXRoIGNvdW50cnkgY29kZXMifT4KICAgICAgICA8ZGl2IGNsYXNzPSJpbnB1dC1ncm91cCI+CiAgICAgICAgICA8ZGVlcy1pbnB1dC1waG9uZQogICAgICAgICAgICAubGFiZWw9JHsiSW50ZXJuYXRpb25hbCBDb250YWN0In0KICAgICAgICAgICAgLmRlc2NyaXB0aW9uPSR7IkF1dG9tYXRpY2FsbHkgZm9ybWF0cyBpbnRlcm5hdGlvbmFsIG51bWJlcnMifQogICAgICAgICAgICAudmFsdWU9JHsiNDQxMjM0NTY3ODkwIn0KICAgICAgICAgID48L2RlZXMtaW5wdXQtcGhvbmU+CgogICAgICAgICAgPGRlZXMtaW5wdXQtcGhvbmUKICAgICAgICAgICAgLmxhYmVsPSR7IkVtZXJnZW5jeSBDb250YWN0In0KICAgICAgICAgICAgLnZhbHVlPSR7IjkxMSJ9CiAgICAgICAgICAgIC5kaXNhYmxlZD0keyEwfQogICAgICAgICAgPjwvZGVlcy1pbnB1dC1waG9uZT4KICAgICAgICA8L2Rpdj4KICAgICAgPC9kZWVzLXBhbmVsPgogICAgICAKICAgICAgPGRlZXMtcGFuZWwgLnRpdGxlPSR7IkZvcm0gSW50ZWdyYXRpb24ifSAuc3VidGl0bGU9JHsiUGhvbmUgaW5wdXQgYXMgcGFydCBvZiBhIGNvbnRhY3QgZm9ybSJ9PgogICAgICAgIDxkZWVzLWZvcm0+CiAgICAgICAgICA8ZGVlcy1pbnB1dC10ZXh0IC5sYWJlbD0keyJGdWxsIE5hbWUifSAucmVxdWlyZWQ9JHshMH0+PC9kZWVzLWlucHV0LXRleHQ+CiAgICAgICAgICA8ZGVlcy1pbnB1dC1waG9uZSAubGFiZWw9JHsiUGhvbmUgTnVtYmVyIn0gLnJlcXVpcmVkPSR7ITB9PjwvZGVlcy1pbnB1dC1waG9uZT4KICAgICAgICAgIDxkZWVzLWlucHV0LXRleHQgLmxhYmVsPSR7IkVtYWlsIn0gLmlucHV0VHlwZT0keyJlbWFpbCJ9PjwvZGVlcy1pbnB1dC10ZXh0PgogICAgICAgIDwvZGVlcy1mb3JtPgogICAgICA8L2RlZXMtcGFuZWw+CiAgICA8L2Rpdj4KICA8L2RlZXMtZGVtb3dyYXBwZXI+CmB9KTt2YXIgak4sSGQsVk4sejZlPXAoKCk9Pnt4ZSgpO0t0KCk7TTEoKTtvbHIoKTtKZSgpO2pOPWZ1bmN0aW9uKGUsdCxyLGksYSxuKXtmdW5jdGlvbiBvKHkpe2lmKHkhPT12b2lkIDAmJnR5cGVvZiB5IT0iZnVuY3Rpb24iKXRocm93IG5ldyBUeXBlRXJyb3IoIkZ1bmN0aW9uIGV4cGVjdGVkIik7cmV0dXJuIHl9Zm9yKHZhciBzPWkua2luZCxsPXM9PT0iZ2V0dGVyIj8iZ2V0IjpzPT09InNldHRlciI/InNldCI6InZhbHVlIixjPSF0JiZlP2kuc3RhdGljP2U6ZS5wcm90b3R5cGU6bnVsbCx1PXR8fChjP09iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoYyxpLm5hbWUpOnt9KSxkLGg9ITEsZj1yLmxlbmd0aC0xO2Y+PTA7Zi0tKXt2YXIgeD17fTtmb3IodmFyIHYgaW4gaSl4W3ZdPXY9PT0iYWNjZXNzIj97fTppW3ZdO2Zvcih2YXIgdiBpbiBpLmFjY2Vzcyl4LmFjY2Vzc1t2XT1pLmFjY2Vzc1t2XTt4LmFkZEluaXRpYWxpemVyPWZ1bmN0aW9uKHkpe2lmKGgpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGFkZCBpbml0aWFsaXplcnMgYWZ0ZXIgZGVjb3JhdGlvbiBoYXMgY29tcGxldGVkIik7bi5wdXNoKG8oeXx8bnVsbCkpfTt2YXIgYj0oMCxyW2ZdKShzPT09ImFjY2Vzc29yIj97Z2V0OnUuZ2V0LHNldDp1LnNldH06dVtsXSx4KTtpZihzPT09ImFjY2Vzc29yIil7aWYoYj09PXZvaWQgMCljb250aW51ZTtpZihiPT09bnVsbHx8dHlwZW9mIGIhPSJvYmplY3QiKXRocm93IG5ldyBUeXBlRXJyb3IoIk9iamVjdCBleHBlY3RlZCIpOyhkPW8oYi5nZXQpKSYmKHUuZ2V0PWQpLChkPW8oYi5zZXQpKSYmKHUuc2V0PWQpLChkPW8oYi5pbml0KSkmJmEudW5zaGlmdChkKX1lbHNlKGQ9byhiKSkmJihzPT09ImZpZWxkIj9hLnVuc2hpZnQoZCk6dVtsXT1kKX1jJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoYyxpLm5hbWUsdSksaD0hMH0sSGQ9ZnVuY3Rpb24oZSx0LHIpe2Zvcih2YXIgaT1hcmd1bWVudHMubGVuZ3RoPjIsYT0wO2E8dC5sZW5ndGg7YSsrKXI9aT90W2FdLmNhbGwoZSxyKTp0W2FdLmNhbGwoZSk7cmV0dXJuIGk/cjp2b2lkIDB9LFZOPSgoKT0+e2xldCBlPVt5ZSgiZGVlcy1pbnB1dC1waG9uZSIpXSx0LHI9W10saSxhPW90LG4sbz1bXSxzPVtdLGwsYz1bXSx1PVtdLGQsaD1bXSxmPVtdO3ZhciB4PWNsYXNzIGV4dGVuZHMgYXtzdGF0aWN7aT10aGlzfXN0YXRpY3tsZXQgdj10eXBlb2YgU3ltYm9sPT0iZnVuY3Rpb24iJiZTeW1ib2wubWV0YWRhdGE/T2JqZWN0LmNyZWF0ZShhW1N5bWJvbC5tZXRhZGF0YV0/P251bGwpOnZvaWQgMDtuPVtmZSgpXSxsPVtqKHt0eXBlOlN0cmluZ30pXSxkPVtqKHt0eXBlOlN0cmluZ30pXSxqTih0aGlzLG51bGwsbix7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImZvcm1hdHRlZFBob25lIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpiPT4iZm9ybWF0dGVkUGhvbmUiaW4gYixnZXQ6Yj0+Yi5mb3JtYXR0ZWRQaG9uZSxzZXQ6KGIseSk9PntiLmZvcm1hdHRlZFBob25lPXl9fSxtZXRhZGF0YTp2fSxvLHMpLGpOKHRoaXMsbnVsbCxsLHtraW5kOiJhY2Nlc3NvciIsbmFtZToidmFsdWUiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmI9PiJ2YWx1ZSJpbiBiLGdldDpiPT5iLnZhbHVlLHNldDooYix5KT0+e2IudmFsdWU9eX19LG1ldGFkYXRhOnZ9LGMsdSksak4odGhpcyxudWxsLGQse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJwbGFjZWhvbGRlciIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6Yj0+InBsYWNlaG9sZGVyImluIGIsZ2V0OmI9PmIucGxhY2Vob2xkZXIsc2V0OihiLHkpPT57Yi5wbGFjZWhvbGRlcj15fX0sbWV0YWRhdGE6dn0saCxmKSxqTihudWxsLHQ9e3ZhbHVlOml9LGUse2tpbmQ6ImNsYXNzIixuYW1lOmkubmFtZSxtZXRhZGF0YTp2fSxudWxsLHIpLHg9aT10LnZhbHVlLHYmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShpLFN5bWJvbC5tZXRhZGF0YSx7ZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITAsdmFsdWU6dn0pfXN0YXRpYyBkZW1vPW5scjtzdGF0aWMgZGVtb0dyb3Vwcz1bIklucHV0Il07I2U9SGQodGhpcyxvLCIiKTtnZXQgZm9ybWF0dGVkUGhvbmUoKXtyZXR1cm4gdGhpcy4jZX1zZXQgZm9ybWF0dGVkUGhvbmUodil7dGhpcy4jZT12fSN0PShIZCh0aGlzLHMpLEhkKHRoaXMsYywiIikpO2dldCB2YWx1ZSgpe3JldHVybiB0aGlzLiN0fXNldCB2YWx1ZSh2KXt0aGlzLiN0PXZ9I3I9KEhkKHRoaXMsdSksSGQodGhpcyxoLCIrMSAoNTU1KSAxMjMtNDU2NyIpKTtnZXQgcGxhY2Vob2xkZXIoKXtyZXR1cm4gdGhpcy4jcn1zZXQgcGxhY2Vob2xkZXIodil7dGhpcy4jcj12fXN0YXRpYyBzdHlsZXM9W0RlLC4uLm90LmJhc2VTdHlsZXMsbS5kZWZhdWx0U3R5bGVzLG9lYAogICAgICAvKiBUT0RPOiBNaWdyYXRlIGhhcmRjb2RlZCB2YWx1ZXMgdG8gLS1kZWVzLSogQ1NTIHZhcmlhYmxlcyAqLwogICAgICAvKiBQaG9uZSBpbnB1dCBzcGVjaWZpYyBzdHlsZXMgY2FuIGdvIGhlcmUgKi8KICAgIGBdO3JlbmRlcigpe3JldHVybiBDYAogICAgICA8ZGl2IGNsYXNzPSJpbnB1dC13cmFwcGVyIj4KICAgICAgICA8ZGVlcy1sYWJlbCAubGFiZWw9JHt0aGlzLmxhYmVsfSAuZGVzY3JpcHRpb249JHt0aGlzLmRlc2NyaXB0aW9ufT48L2RlZXMtbGFiZWw+CiAgICAgICAgPGRlZXMtaW5wdXQtdGV4dAogICAgICAgICAgLnZhbHVlPSR7dGhpcy5mb3JtYXR0ZWRQaG9uZX0KICAgICAgICAgIC5kaXNhYmxlZD0ke3RoaXMuZGlzYWJsZWR9CiAgICAgICAgICAucmVxdWlyZWQ9JHt0aGlzLnJlcXVpcmVkfQogICAgICAgICAgLnBsYWNlaG9sZGVyPSR7dGhpcy5wbGFjZWhvbGRlcn0KICAgICAgICAgIEBpbnB1dD0ke3Y9PnRoaXMuaGFuZGxlUGhvbmVJbnB1dCh2KX0KICAgICAgICA+PC9kZWVzLWlucHV0LXRleHQ+CiAgICAgIDwvZGl2PgogICAgYH1maXJzdFVwZGF0ZWQodil7c3VwZXIuZmlyc3RVcGRhdGVkKHYpLHRoaXMudmFsdWUmJih0aGlzLmZvcm1hdHRlZFBob25lPXRoaXMuZm9ybWF0UGhvbmVOdW1iZXIodGhpcy52YWx1ZSkpO2xldCBiPXRoaXMuc2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yKCJkZWVzLWlucHV0LXRleHQiKTtiJiZiLmNoYW5nZVN1YmplY3QmJmIuY2hhbmdlU3ViamVjdC5zdWJzY3JpYmUoKCk9Pnt0aGlzLmNoYW5nZVN1YmplY3QubmV4dCh0aGlzKX0pfWhhbmRsZVBob25lSW5wdXQodil7bGV0IGI9di50YXJnZXQseT10aGlzLmNsZWFuUGhvbmVOdW1iZXIoYi52YWx1ZSksdz10aGlzLmZvcm1hdFBob25lTnVtYmVyKHkpO2lmKGIudmFsdWUhPT13KXtsZXQgaz1iLnNlbGVjdGlvblN0YXJ0fHwwO2IudmFsdWU9dztsZXQgTz10aGlzLmNhbGN1bGF0ZUN1cnNvclBvc2l0aW9uKHksdyxrKTtiLnNldFNlbGVjdGlvblJhbmdlKE8sTyl9dGhpcy5mb3JtYXR0ZWRQaG9uZT13LHRoaXMudmFsdWU9eSx0aGlzLmNoYW5nZVN1YmplY3QubmV4dCh0aGlzKX1jbGVhblBob25lTnVtYmVyKHYpe3JldHVybiB2LnJlcGxhY2UoL1xEL2csIiIpfWZvcm1hdFBob25lTnVtYmVyKHYpe2xldCBiPXRoaXMuY2xlYW5QaG9uZU51bWJlcih2KTtyZXR1cm4gYi5sZW5ndGg9PT0wPyIiOmIubGVuZ3RoPD0zP2I6Yi5sZW5ndGg8PTY/YCgke2Iuc2xpY2UoMCwzKX0pICR7Yi5zbGljZSgzKX1gOmIubGVuZ3RoPD0xMD9gKCR7Yi5zbGljZSgwLDMpfSkgJHtiLnNsaWNlKDMsNil9LSR7Yi5zbGljZSg2KX1gOmArJHtiLnNsaWNlKDAsYi5sZW5ndGgtMTApfSAoJHtiLnNsaWNlKC0xMCwtNyl9KSAke2Iuc2xpY2UoLTcsLTQpfS0ke2Iuc2xpY2UoLTQpfWB9Y2FsY3VsYXRlQ3Vyc29yUG9zaXRpb24odixiLHkpe2xldCB3PTA7Zm9yKGxldCBrPTA7azx5JiZrPGIubGVuZ3RoO2srKykvXGQvLnRlc3QoYltrXSl8fHcrKztyZXR1cm4gTWF0aC5taW4oeSt3LGIubGVuZ3RoKX1nZXRWYWx1ZSgpe3JldHVybiB0aGlzLnZhbHVlfXNldFZhbHVlKHYpe3RoaXMudmFsdWU9dix0aGlzLmZvcm1hdHRlZFBob25lPXRoaXMuZm9ybWF0UGhvbmVOdW1iZXIodil9Y29uc3RydWN0b3IoKXtzdXBlciguLi5hcmd1bWVudHMpLEhkKHRoaXMsZil9c3RhdGlje0hkKGkscil9fTtyZXR1cm4geD1pfSkoKX0pO3ZhciBzbHIsbGxyPXAoKCk9Pnt4ZSgpO3AxKCk7T2koKTtzbHI9KCk9PkNgCiAgPGRlZXMtZGVtb3dyYXBwZXIgLnJ1bkFmdGVyUmVuZGVyPSR7YXN5bmMgZT0+e2xldCB0PWUucXVlcnlTZWxlY3RvcigiI3RvZ2dsZS1hbGwtb24iKSxyPWUucXVlcnlTZWxlY3RvcigiI3RvZ2dsZS1hbGwtb2ZmIiksaT1lLnF1ZXJ5U2VsZWN0b3JBbGwoIi5mZWF0dXJlLXRvZ2dsZXMgZGVlcy1pbnB1dC10b2dnbGUiKTt0JiZyJiYodC5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsKCk9PntpLmZvckVhY2goYT0+eyFhLmRpc2FibGVkJiYhYS5yZXF1aXJlZCYmKGEudmFsdWU9ITApfSl9KSxyLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIiwoKT0+e2kuZm9yRWFjaChhPT57IWEuZGlzYWJsZWQmJiFhLnJlcXVpcmVkJiYoYS52YWx1ZT0hMSl9KX0pKX19PgogICAgPHN0eWxlPgogICAgICAke29lYAogICAgICAgIC5kZW1vLWNvbnRhaW5lciB7CiAgICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgICAgIGdhcDogMjRweDsKICAgICAgICAgIHBhZGRpbmc6IDI0cHg7CiAgICAgICAgICBtYXgtd2lkdGg6IDEyMDBweDsKICAgICAgICAgIG1hcmdpbjogMCBhdXRvOwogICAgICAgIH0KCiAgICAgICAgZGVlcy1wYW5lbCB7CiAgICAgICAgICBtYXJnaW4tYm90dG9tOiAyNHB4OwogICAgICAgIH0KCiAgICAgICAgZGVlcy1wYW5lbDpsYXN0LWNoaWxkIHsKICAgICAgICAgIG1hcmdpbi1ib3R0b206IDA7CiAgICAgICAgfQoKICAgICAgICAudG9nZ2xlLWdyb3VwIHsKICAgICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICAgICAgZ2FwOiAxNnB4OwogICAgICAgIH0KCiAgICAgICAgLmhvcml6b250YWwtdG9nZ2xlcyB7CiAgICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgICAgZ2FwOiAzMnB4OwogICAgICAgICAgZmxleC13cmFwOiB3cmFwOwogICAgICAgIH0KCiAgICAgICAgLmludGVyYWN0aXZlLXNlY3Rpb24gewogICAgICAgICAgYmFja2dyb3VuZDogJHttLmJkVGhlbWUoImhzbCgyMTAgNDAlIDk2LjElKSIsImhzbCgyMTUgMjAuMiUgMTYuOCUpIil9OwogICAgICAgICAgYm9yZGVyLXJhZGl1czogOHB4OwogICAgICAgICAgcGFkZGluZzogMTZweDsKICAgICAgICAgIG1hcmdpbi10b3A6IDE2cHg7CiAgICAgICAgfQoKICAgICAgICAub3V0cHV0LXRleHQgewogICAgICAgICAgZm9udC1mYW1pbHk6IG1vbm9zcGFjZTsKICAgICAgICAgIGZvbnQtc2l6ZTogMTNweDsKICAgICAgICAgIGNvbG9yOiAke20uYmRUaGVtZSgiaHNsKDIxNS4zIDI1JSAyNi43JSkiLCJoc2woMjEwIDQwJSA4MCUpIil9OwogICAgICAgICAgcGFkZGluZzogOHB4OwogICAgICAgICAgYmFja2dyb3VuZDogJHttLmJkVGhlbWUoImhzbCgyMTAgNDAlIDk4JSkiLCJoc2woMjE1IDIwLjIlIDExLjglKSIpfTsKICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDRweDsKICAgICAgICAgIG1pbi1oZWlnaHQ6IDI0cHg7CiAgICAgICAgfQoKICAgICAgICAuc2V0dGluZ3Mtc2VjdGlvbiB7CiAgICAgICAgICBiYWNrZ3JvdW5kOiAke20uYmRUaGVtZSgiaHNsKDAgMCUgOTclKSIsImhzbCgwIDAlIDclKSIpfTsKICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICR7bS5iZFRoZW1lKCJoc2woMCAwJSA4OS44JSkiLCJoc2woMCAwJSAxNC45JSkiKX07CiAgICAgICAgICBib3JkZXItcmFkaXVzOiA4cHg7CiAgICAgICAgICBwYWRkaW5nOiAyMHB4OwogICAgICAgIH0KCiAgICAgICAgLmJ1dHRvbi1ncm91cCB7CiAgICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgICAgZ2FwOiA4cHg7CiAgICAgICAgICBtYXJnaW4tYm90dG9tOiAxNnB4OwogICAgICAgIH0KCiAgICAgICAgLmZlYXR1cmUtdG9nZ2xlcyB7CiAgICAgICAgICBiYWNrZ3JvdW5kOiAke20uYmRUaGVtZSgiaHNsKDIxMCA0MCUgOTYuMSUpIiwiaHNsKDIxNSAyMC4yJSAxMS44JSkiKX07CiAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAke20uYmRUaGVtZSgiaHNsKDIxNC4zIDMxLjglIDkxLjQlKSIsImhzbCgyMTUgMjAuMiUgMTYuOCUpIil9OwogICAgICAgICAgYm9yZGVyLXJhZGl1czogNnB4OwogICAgICAgICAgcGFkZGluZzogMTZweDsKICAgICAgICB9CgogICAgICAgIC5zZWN0aW9uLXRpdGxlIHsKICAgICAgICAgIGZvbnQtc2l6ZTogMTZweDsKICAgICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7CiAgICAgICAgICBtYXJnaW4tYm90dG9tOiAxNnB4OwogICAgICAgICAgY29sb3I6ICR7bS5iZFRoZW1lKCJoc2woMjE1LjMgMjUlIDguOCUpIiwiaHNsKDIxMCA0MCUgOTglKSIpfTsKICAgICAgICB9CgogICAgICAgIC5kcmFnLWhpbnQgewogICAgICAgICAgZm9udC1zaXplOiAxMnB4OwogICAgICAgICAgY29sb3I6ICR7bS5iZFRoZW1lKCJoc2woMCAwJSA0NS4xJSkiLCJoc2woMCAwJSA2My45JSkiKX07CiAgICAgICAgICBtYXJnaW4tdG9wOiA4cHg7CiAgICAgICAgICBmb250LXN0eWxlOiBpdGFsaWM7CiAgICAgICAgfQogICAgICBgfQogICAgPC9zdHlsZT4KCiAgICA8ZGl2IGNsYXNzPSJkZW1vLWNvbnRhaW5lciI+CiAgICAgIDxkZWVzLXBhbmVsIC50aXRsZT0keyJCYXNpYyBUb2dnbGUifSAuc3VidGl0bGU9JHsiU2ltcGxlIG9uL29mZiB0b2dnbGUgc3dpdGNoIHdpdGggZHJhZyBzdXBwb3J0In0+CiAgICAgICAgPGRpdiBjbGFzcz0idG9nZ2xlLWdyb3VwIj4KICAgICAgICAgIDxkZWVzLWlucHV0LXRvZ2dsZQogICAgICAgICAgICAubGFiZWw9JHsiRW5hYmxlIGZlYXR1cmUifQogICAgICAgICAgICAudmFsdWU9JHshMX0KICAgICAgICAgICAgLmtleT0keyJiYXNpYyJ9CiAgICAgICAgICA+PC9kZWVzLWlucHV0LXRvZ2dsZT4KCiAgICAgICAgICA8ZGVlcy1pbnB1dC10b2dnbGUKICAgICAgICAgICAgLmxhYmVsPSR7IkFjdGl2ZSB0b2dnbGUifQogICAgICAgICAgICAudmFsdWU9JHshMH0KICAgICAgICAgICAgLmtleT0keyJhY3RpdmUifQogICAgICAgICAgPjwvZGVlcy1pbnB1dC10b2dnbGU+CgogICAgICAgICAgPGRlZXMtaW5wdXQtdG9nZ2xlCiAgICAgICAgICAgIC5sYWJlbD0keyJXaXRoIGRlc2NyaXB0aW9uIn0KICAgICAgICAgICAgLnZhbHVlPSR7ITF9CiAgICAgICAgICAgIC5kZXNjcmlwdGlvbj0keyJUaGlzIHRvZ2dsZSBoYXMgYWRkaXRpb25hbCBoZWxwZXIgdGV4dCBleHBsYWluaW5nIGl0cyBwdXJwb3NlIn0KICAgICAgICAgICAgLmtleT0keyJ3aXRoRGVzYyJ9CiAgICAgICAgICA+PC9kZWVzLWlucHV0LXRvZ2dsZT4KICAgICAgICA8L2Rpdj4KICAgICAgICA8cCBjbGFzcz0iZHJhZy1oaW50Ij5UaXA6IFlvdSBjYW4gZHJhZyB0aGUgdG9nZ2xlIGtub2IgdG8gc3dpdGNoIHN0YXRlczwvcD4KICAgICAgPC9kZWVzLXBhbmVsPgoKICAgICAgPGRlZXMtcGFuZWwgLnRpdGxlPSR7IlRvZ2dsZSBTdGF0ZXMifSAuc3VidGl0bGU9JHsiRGlmZmVyZW50IHRvZ2dsZSBzdGF0ZXMgYW5kIGNvbmZpZ3VyYXRpb25zIn0+CiAgICAgICAgPGRpdiBjbGFzcz0idG9nZ2xlLWdyb3VwIj4KICAgICAgICAgIDxkZWVzLWlucHV0LXRvZ2dsZQogICAgICAgICAgICAubGFiZWw9JHsiRGVmYXVsdCAob2ZmKSJ9CiAgICAgICAgICAgIC52YWx1ZT0keyExfQogICAgICAgICAgPjwvZGVlcy1pbnB1dC10b2dnbGU+CgogICAgICAgICAgPGRlZXMtaW5wdXQtdG9nZ2xlCiAgICAgICAgICAgIC5sYWJlbD0keyJFbmFibGVkIChvbikifQogICAgICAgICAgICAudmFsdWU9JHshMH0KICAgICAgICAgID48L2RlZXMtaW5wdXQtdG9nZ2xlPgoKICAgICAgICAgIDxkZWVzLWlucHV0LXRvZ2dsZQogICAgICAgICAgICAubGFiZWw9JHsiRGlzYWJsZWQgKG9mZikifQogICAgICAgICAgICAudmFsdWU9JHshMX0KICAgICAgICAgICAgLmRpc2FibGVkPSR7ITB9CiAgICAgICAgICA+PC9kZWVzLWlucHV0LXRvZ2dsZT4KCiAgICAgICAgICA8ZGVlcy1pbnB1dC10b2dnbGUKICAgICAgICAgICAgLmxhYmVsPSR7IkRpc2FibGVkIChvbikifQogICAgICAgICAgICAudmFsdWU9JHshMH0KICAgICAgICAgICAgLmRpc2FibGVkPSR7ITB9CiAgICAgICAgICA+PC9kZWVzLWlucHV0LXRvZ2dsZT4KCiAgICAgICAgICA8ZGVlcy1pbnB1dC10b2dnbGUKICAgICAgICAgICAgLmxhYmVsPSR7IlJlcXVpcmVkIChhbHdheXMgb24pIn0KICAgICAgICAgICAgLnZhbHVlPSR7ITB9CiAgICAgICAgICAgIC5yZXF1aXJlZD0keyEwfQogICAgICAgICAgICAuZGVzY3JpcHRpb249JHsiVGhpcyB0b2dnbGUgY2Fubm90IGJlIHR1cm5lZCBvZmYifQogICAgICAgICAgPjwvZGVlcy1pbnB1dC10b2dnbGU+CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGVlcy1wYW5lbD4KCiAgICAgIDxkZWVzLXBhbmVsIC50aXRsZT0keyJIb3Jpem9udGFsIExheW91dCJ9IC5zdWJ0aXRsZT0keyJUb2dnbGVzIGFycmFuZ2VkIGhvcml6b250YWxseSBmb3IgY29tcGFjdCBpbnRlcmZhY2VzIn0+CiAgICAgICAgPGRpdiBjbGFzcz0iaG9yaXpvbnRhbC10b2dnbGVzIj4KICAgICAgICAgIDxkZWVzLWlucHV0LXRvZ2dsZQogICAgICAgICAgICAubGFiZWw9JHsiV2lGaSJ9CiAgICAgICAgICAgIC52YWx1ZT0keyEwfQogICAgICAgICAgICAubGF5b3V0TW9kZT0keyJob3Jpem9udGFsIn0KICAgICAgICAgID48L2RlZXMtaW5wdXQtdG9nZ2xlPgoKICAgICAgICAgIDxkZWVzLWlucHV0LXRvZ2dsZQogICAgICAgICAgICAubGFiZWw9JHsiQmx1ZXRvb3RoIn0KICAgICAgICAgICAgLnZhbHVlPSR7ITF9CiAgICAgICAgICAgIC5sYXlvdXRNb2RlPSR7Imhvcml6b250YWwifQogICAgICAgICAgPjwvZGVlcy1pbnB1dC10b2dnbGU+CgogICAgICAgICAgPGRlZXMtaW5wdXQtdG9nZ2xlCiAgICAgICAgICAgIC5sYWJlbD0keyJHUFMifQogICAgICAgICAgICAudmFsdWU9JHshMH0KICAgICAgICAgICAgLmxheW91dE1vZGU9JHsiaG9yaXpvbnRhbCJ9CiAgICAgICAgICA+PC9kZWVzLWlucHV0LXRvZ2dsZT4KCiAgICAgICAgICA8ZGVlcy1pbnB1dC10b2dnbGUKICAgICAgICAgICAgLmxhYmVsPSR7Ik5GQyJ9CiAgICAgICAgICAgIC52YWx1ZT0keyExfQogICAgICAgICAgICAubGF5b3V0TW9kZT0keyJob3Jpem9udGFsIn0KICAgICAgICAgID48L2RlZXMtaW5wdXQtdG9nZ2xlPgogICAgICAgIDwvZGl2PgogICAgICA8L2RlZXMtcGFuZWw+CgogICAgICA8ZGVlcy1wYW5lbCAudGl0bGU9JHsiU2V0dGluZ3MgRXhhbXBsZSJ9IC5zdWJ0aXRsZT0keyJUb2dnbGVzIGluIGEgdHlwaWNhbCBzZXR0aW5ncyBjb250ZXh0In0+CiAgICAgICAgPGRpdiBjbGFzcz0ic2V0dGluZ3Mtc2VjdGlvbiI+CiAgICAgICAgICA8aDQgY2xhc3M9InNlY3Rpb24tdGl0bGUiPk5vdGlmaWNhdGlvbiBTZXR0aW5nczwvaDQ+CgogICAgICAgICAgPGRpdiBjbGFzcz0idG9nZ2xlLWdyb3VwIj4KICAgICAgICAgICAgPGRlZXMtaW5wdXQtdG9nZ2xlCiAgICAgICAgICAgICAgLmxhYmVsPSR7IlB1c2ggbm90aWZpY2F0aW9ucyJ9CiAgICAgICAgICAgICAgLnZhbHVlPSR7ITB9CiAgICAgICAgICAgICAgLmRlc2NyaXB0aW9uPSR7IlJlY2VpdmUgcHVzaCBub3RpZmljYXRpb25zIG9uIHlvdXIgZGV2aWNlIn0KICAgICAgICAgICAgICAua2V5PSR7InB1c2gifQogICAgICAgICAgICA+PC9kZWVzLWlucHV0LXRvZ2dsZT4KCiAgICAgICAgICAgIDxkZWVzLWlucHV0LXRvZ2dsZQogICAgICAgICAgICAgIC5sYWJlbD0keyJFbWFpbCBub3RpZmljYXRpb25zIn0KICAgICAgICAgICAgICAudmFsdWU9JHshMH0KICAgICAgICAgICAgICAuZGVzY3JpcHRpb249JHsiR2V0IGltcG9ydGFudCB1cGRhdGVzIHZpYSBlbWFpbCJ9CiAgICAgICAgICAgICAgLmtleT0keyJlbWFpbCJ9CiAgICAgICAgICAgID48L2RlZXMtaW5wdXQtdG9nZ2xlPgoKICAgICAgICAgICAgPGRlZXMtaW5wdXQtdG9nZ2xlCiAgICAgICAgICAgICAgLmxhYmVsPSR7IlNvdW5kIn0KICAgICAgICAgICAgICAudmFsdWU9JHshMX0KICAgICAgICAgICAgICAuZGVzY3JpcHRpb249JHsiUGxheSBhIHNvdW5kIGZvciBub3RpZmljYXRpb25zIn0KICAgICAgICAgICAgICAua2V5PSR7InNvdW5kIn0KICAgICAgICAgICAgPjwvZGVlcy1pbnB1dC10b2dnbGU+CgogICAgICAgICAgICA8ZGVlcy1pbnB1dC10b2dnbGUKICAgICAgICAgICAgICAubGFiZWw9JHsiVmlicmF0aW9uIn0KICAgICAgICAgICAgICAudmFsdWU9JHshMH0KICAgICAgICAgICAgICAuZGVzY3JpcHRpb249JHsiVmlicmF0ZSBmb3Igbm90aWZpY2F0aW9ucyJ9CiAgICAgICAgICAgICAgLmtleT0keyJ2aWJyYXRpb24ifQogICAgICAgICAgICA+PC9kZWVzLWlucHV0LXRvZ2dsZT4KICAgICAgICAgIDwvZGl2PgogICAgICAgIDwvZGl2PgogICAgICA8L2RlZXMtcGFuZWw+CgogICAgICA8ZGVlcy1wYW5lbCAudGl0bGU9JHsiRmVhdHVyZSBUb2dnbGVzIn0gLnN1YnRpdGxlPSR7IkJhdGNoIG9wZXJhdGlvbnMgb24gbXVsdGlwbGUgdG9nZ2xlcyJ9PgogICAgICAgIDxkaXYgY2xhc3M9ImJ1dHRvbi1ncm91cCI+CiAgICAgICAgICA8ZGVlcy1idXR0b24gaWQ9InRvZ2dsZS1hbGwtb24iIHR5cGU9InNlY29uZGFyeSI+RW5hYmxlIEFsbDwvZGVlcy1idXR0b24+CiAgICAgICAgICA8ZGVlcy1idXR0b24gaWQ9InRvZ2dsZS1hbGwtb2ZmIiB0eXBlPSJzZWNvbmRhcnkiPkRpc2FibGUgQWxsPC9kZWVzLWJ1dHRvbj4KICAgICAgICA8L2Rpdj4KCiAgICAgICAgPGRpdiBjbGFzcz0iZmVhdHVyZS10b2dnbGVzIj4KICAgICAgICAgIDxkaXYgY2xhc3M9InRvZ2dsZS1ncm91cCI+CiAgICAgICAgICAgIDxkZWVzLWlucHV0LXRvZ2dsZQogICAgICAgICAgICAgIC5sYWJlbD0keyJEYXJrIE1vZGUifQogICAgICAgICAgICAgIC52YWx1ZT0keyEwfQogICAgICAgICAgICAgIC5rZXk9JHsiZGFya01vZGUifQogICAgICAgICAgICA+PC9kZWVzLWlucHV0LXRvZ2dsZT4KCiAgICAgICAgICAgIDxkZWVzLWlucHV0LXRvZ2dsZQogICAgICAgICAgICAgIC5sYWJlbD0keyJBdXRvLXNhdmUifQogICAgICAgICAgICAgIC52YWx1ZT0keyEwfQogICAgICAgICAgICAgIC5rZXk9JHsiYXV0b1NhdmUifQogICAgICAgICAgICA+PC9kZWVzLWlucHV0LXRvZ2dsZT4KCiAgICAgICAgICAgIDxkZWVzLWlucHV0LXRvZ2dsZQogICAgICAgICAgICAgIC5sYWJlbD0keyJTcGVsbCBjaGVjayJ9CiAgICAgICAgICAgICAgLnZhbHVlPSR7ITF9CiAgICAgICAgICAgICAgLmtleT0keyJzcGVsbENoZWNrIn0KICAgICAgICAgICAgPjwvZGVlcy1pbnB1dC10b2dnbGU+CgogICAgICAgICAgICA8ZGVlcy1pbnB1dC10b2dnbGUKICAgICAgICAgICAgICAubGFiZWw9JHsiRGV2ZWxvcGVyIG1vZGUifQogICAgICAgICAgICAgIC52YWx1ZT0keyExfQogICAgICAgICAgICAgIC5rZXk9JHsiZGV2TW9kZSJ9CiAgICAgICAgICAgID48L2RlZXMtaW5wdXQtdG9nZ2xlPgoKICAgICAgICAgICAgPGRlZXMtaW5wdXQtdG9nZ2xlCiAgICAgICAgICAgICAgLmxhYmVsPSR7IkJldGEgZmVhdHVyZXMifQogICAgICAgICAgICAgIC52YWx1ZT0keyExfQogICAgICAgICAgICAgIC5rZXk9JHsiYmV0YSJ9CiAgICAgICAgICAgID48L2RlZXMtaW5wdXQtdG9nZ2xlPgogICAgICAgICAgPC9kaXY+CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGVlcy1wYW5lbD4KCiAgICAgIDxkZWVzLXBhbmVsIC50aXRsZT0keyJJbnRlcmFjdGl2ZSBFeGFtcGxlIn0gLnN1YnRpdGxlPSR7IlRvZ2dsZSB0byBzZWUgdmFsdWUgY2hhbmdlcyBpbiByZWFsLXRpbWUifT4KICAgICAgICA8ZGl2IGNsYXNzPSJ0b2dnbGUtZ3JvdXAiPgogICAgICAgICAgPGRlZXMtaW5wdXQtdG9nZ2xlCiAgICAgICAgICAgIC5sYWJlbD0keyJBaXJwbGFuZSBtb2RlIn0KICAgICAgICAgICAgLnZhbHVlPSR7ITF9CiAgICAgICAgICAgIEBuZXdWYWx1ZT0ke2U9PntsZXQgdD1kb2N1bWVudC5xdWVyeVNlbGVjdG9yKCIjYWlycGxhbmUtb3V0cHV0Iik7dCYmKHQudGV4dENvbnRlbnQ9YEFpcnBsYW5lIG1vZGU6ICR7ZS5kZXRhaWw/Ik9OIjoiT0ZGIn1gKX19CiAgICAgICAgICA+PC9kZWVzLWlucHV0LXRvZ2dsZT4KCiAgICAgICAgICA8ZGVlcy1pbnB1dC10b2dnbGUKICAgICAgICAgICAgLmxhYmVsPSR7IkRvIG5vdCBkaXN0dXJiIn0KICAgICAgICAgICAgLnZhbHVlPSR7ITF9CiAgICAgICAgICAgIEBuZXdWYWx1ZT0ke2U9PntsZXQgdD1kb2N1bWVudC5xdWVyeVNlbGVjdG9yKCIjZG5kLW91dHB1dCIpO3QmJih0LnRleHRDb250ZW50PWBEbyBub3QgZGlzdHVyYjogJHtlLmRldGFpbD8iRU5BQkxFRCI6IkRJU0FCTEVEIn1gKX19CiAgICAgICAgICA+PC9kZWVzLWlucHV0LXRvZ2dsZT4KICAgICAgICA8L2Rpdj4KCiAgICAgICAgPGRpdiBjbGFzcz0iaW50ZXJhY3RpdmUtc2VjdGlvbiI+CiAgICAgICAgICA8ZGl2IGlkPSJhaXJwbGFuZS1vdXRwdXQiIGNsYXNzPSJvdXRwdXQtdGV4dCI+QWlycGxhbmUgbW9kZTogT0ZGPC9kaXY+CiAgICAgICAgICA8ZGl2IGlkPSJkbmQtb3V0cHV0IiBjbGFzcz0ib3V0cHV0LXRleHQiIHN0eWxlPSJtYXJnaW4tdG9wOiA4cHg7Ij5EbyBub3QgZGlzdHVyYjogRElTQUJMRUQ8L2Rpdj4KICAgICAgICA8L2Rpdj4KICAgICAgPC9kZWVzLXBhbmVsPgogICAgPC9kaXY+CiAgPC9kZWVzLWRlbW93cmFwcGVyPgpgfSk7dmFyIGNscixDNmUsVU4sVDZlPXAoKCk9Pnt4ZSgpO0t0KCk7TTEoKTtsbHIoKTtRYSgpO0plKCk7Y2xyPWZ1bmN0aW9uKGUsdCxyLGksYSxuKXtmdW5jdGlvbiBvKHkpe2lmKHkhPT12b2lkIDAmJnR5cGVvZiB5IT0iZnVuY3Rpb24iKXRocm93IG5ldyBUeXBlRXJyb3IoIkZ1bmN0aW9uIGV4cGVjdGVkIik7cmV0dXJuIHl9Zm9yKHZhciBzPWkua2luZCxsPXM9PT0iZ2V0dGVyIj8iZ2V0IjpzPT09InNldHRlciI/InNldCI6InZhbHVlIixjPSF0JiZlP2kuc3RhdGljP2U6ZS5wcm90b3R5cGU6bnVsbCx1PXR8fChjP09iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoYyxpLm5hbWUpOnt9KSxkLGg9ITEsZj1yLmxlbmd0aC0xO2Y+PTA7Zi0tKXt2YXIgeD17fTtmb3IodmFyIHYgaW4gaSl4W3ZdPXY9PT0iYWNjZXNzIj97fTppW3ZdO2Zvcih2YXIgdiBpbiBpLmFjY2Vzcyl4LmFjY2Vzc1t2XT1pLmFjY2Vzc1t2XTt4LmFkZEluaXRpYWxpemVyPWZ1bmN0aW9uKHkpe2lmKGgpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGFkZCBpbml0aWFsaXplcnMgYWZ0ZXIgZGVjb3JhdGlvbiBoYXMgY29tcGxldGVkIik7bi5wdXNoKG8oeXx8bnVsbCkpfTt2YXIgYj0oMCxyW2ZdKShzPT09ImFjY2Vzc29yIj97Z2V0OnUuZ2V0LHNldDp1LnNldH06dVtsXSx4KTtpZihzPT09ImFjY2Vzc29yIil7aWYoYj09PXZvaWQgMCljb250aW51ZTtpZihiPT09bnVsbHx8dHlwZW9mIGIhPSJvYmplY3QiKXRocm93IG5ldyBUeXBlRXJyb3IoIk9iamVjdCBleHBlY3RlZCIpOyhkPW8oYi5nZXQpKSYmKHUuZ2V0PWQpLChkPW8oYi5zZXQpKSYmKHUuc2V0PWQpLChkPW8oYi5pbml0KSkmJmEudW5zaGlmdChkKX1lbHNlKGQ9byhiKSkmJihzPT09ImZpZWxkIj9hLnVuc2hpZnQoZCk6dVtsXT1kKX1jJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoYyxpLm5hbWUsdSksaD0hMH0sQzZlPWZ1bmN0aW9uKGUsdCxyKXtmb3IodmFyIGk9YXJndW1lbnRzLmxlbmd0aD4yLGE9MDthPHQubGVuZ3RoO2ErKylyPWk/dFthXS5jYWxsKGUscik6dFthXS5jYWxsKGUpO3JldHVybiBpP3I6dm9pZCAwfSxVTj0oKCk9PntsZXQgZT1beWUoImRlZXMtaW5wdXQtdG9nZ2xlIildLHQscj1bXSxpLGE9b3QsbixvPVtdLHM9W107dmFyIGw9Y2xhc3MgZXh0ZW5kcyBhe3N0YXRpY3tpPXRoaXN9c3RhdGlje2xldCBjPXR5cGVvZiBTeW1ib2w9PSJmdW5jdGlvbiImJlN5bWJvbC5tZXRhZGF0YT9PYmplY3QuY3JlYXRlKGFbU3ltYm9sLm1ldGFkYXRhXT8/bnVsbCk6dm9pZCAwO249W2ooe3R5cGU6Qm9vbGVhbixyZWZsZWN0OiEwfSldLGNscih0aGlzLG51bGwsbix7a2luZDoiYWNjZXNzb3IiLG5hbWU6InZhbHVlIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczp1PT4idmFsdWUiaW4gdSxnZXQ6dT0+dS52YWx1ZSxzZXQ6KHUsZCk9Pnt1LnZhbHVlPWR9fSxtZXRhZGF0YTpjfSxvLHMpLGNscihudWxsLHQ9e3ZhbHVlOml9LGUse2tpbmQ6ImNsYXNzIixuYW1lOmkubmFtZSxtZXRhZGF0YTpjfSxudWxsLHIpLGw9aT10LnZhbHVlLGMmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShpLFN5bWJvbC5tZXRhZGF0YSx7ZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITAsdmFsdWU6Y30pfXN0YXRpYyBkZW1vPXNscjtzdGF0aWMgZGVtb0dyb3Vwcz1bIklucHV0Il07I2U9QzZlKHRoaXMsbywhMSk7Z2V0IHZhbHVlKCl7cmV0dXJuIHRoaXMuI2V9c2V0IHZhbHVlKGMpe3RoaXMuI2U9Y31jdXJyZW50WD0oQzZlKHRoaXMscyksMCk7aXNEcmFnZ2luZz0hMTtoYXNEcmFnZ2VkPSExO3N0YXJ0WD0wO3RyYWNrV2lkdGg9MzY7dHJhY2tIZWlnaHQ9MjA7a25vYlNpemU9MTQ7cGFkZGluZz0yO21heFRyYXZlbD0xNjtjb25zdHJ1Y3Rvcigpe3N1cGVyKCksdGhpcy5sYWJlbFBvc2l0aW9uPSJyaWdodCJ9c3RhdGljIHN0eWxlcz1bRGUsLi4ub3QuYmFzZVN0eWxlcyxtLmRlZmF1bHRTdHlsZXMsb2VgCiAgICAgICogewogICAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7CiAgICAgIH0KCiAgICAgIDpob3N0IHsKICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgICAgY3Vyc29yOiBkZWZhdWx0OwogICAgICAgIGZvbnQtZmFtaWx5OiAke0lyfTsKICAgICAgfQoKICAgICAgLm1haW5jb250YWluZXIgewogICAgICAgIGRpc3BsYXk6IGlubGluZS1mbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0OwogICAgICAgIGdhcDogOHB4OwogICAgICAgIGN1cnNvcjogcG9pbnRlcjsKICAgICAgICB1c2VyLXNlbGVjdDogbm9uZTsKICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC4xNXMgZWFzZTsKICAgICAgfQoKICAgICAgLnRvZ2dsZS10cmFjayB7CiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICAgIGZsZXgtc2hyaW5rOiAwOwogICAgICAgIGhlaWdodDogMjBweDsKICAgICAgICB3aWR0aDogMzZweDsKICAgICAgICBib3JkZXItcmFkaXVzOiAxMHB4OwogICAgICAgIGJhY2tncm91bmQ6ICR7bS5iZFRoZW1lKCJoc2woMCAwJSAxMDAlKSIsImhzbCgwIDAlIDMuOSUpIil9OwogICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICR7bS5iZFRoZW1lKCJoc2woMCAwJSA4OS44JSkiLCJoc2woMCAwJSAxNC45JSkiKX07CiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC4xNXMgZWFzZTsKICAgICAgICBtYXJnaW4tdG9wOiAxcHg7CiAgICAgIH0KCiAgICAgIC5tYWluY29udGFpbmVyOmhvdmVyIC50b2dnbGUtdHJhY2sgewogICAgICAgIGJvcmRlci1jb2xvcjogJHttLmJkVGhlbWUoImhzbCgwIDAlIDc5LjglKSIsImhzbCgwIDAlIDIwLjklKSIpfTsKICAgICAgfQoKICAgICAgOmhvc3QoW3ZhbHVlXSkgLnRvZ2dsZS10cmFjayB7CiAgICAgICAgYmFja2dyb3VuZDogJHttLmJkVGhlbWUoImhzbCgyMjIuMiA0Ny40JSA1MS4yJSkiLCJoc2woMjE3LjIgOTEuMiUgNTkuOCUpIil9OwogICAgICAgIGJvcmRlci1jb2xvcjogJHttLmJkVGhlbWUoImhzbCgyMjIuMiA0Ny40JSA1MS4yJSkiLCJoc2woMjE3LjIgOTEuMiUgNTkuOCUpIil9OwogICAgICB9CgogICAgICAudG9nZ2xlLXRyYWNrOmZvY3VzLXZpc2libGUgewogICAgICAgIG91dGxpbmU6IG5vbmU7CiAgICAgICAgYm94LXNoYWRvdzogMCAwIDAgM3B4ICR7bS5iZFRoZW1lKCJoc2woMjIyLjIgNDcuNCUgNTEuMiUgLyAwLjEpIiwiaHNsKDIxNy4yIDkxLjIlIDU5LjglIC8gMC4xKSIpfTsKICAgICAgfQoKICAgICAgLnRvZ2dsZS1rbm9iIHsKICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgICAgdG9wOiAycHg7CiAgICAgICAgd2lkdGg6IDE0cHg7CiAgICAgICAgaGVpZ2h0OiAxNHB4OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDdweDsKICAgICAgICBiYWNrZ3JvdW5kOiAke20uYmRUaGVtZSgiaHNsKDAgMCUgNjMuOSUpIiwiaHNsKDAgMCUgNDUuMSUpIil9OwogICAgICAgIHRyYW5zaXRpb246IGxlZnQgMC4xNXMgZWFzZSwgYmFja2dyb3VuZCAwLjE1cyBlYXNlOwogICAgICAgIHRvdWNoLWFjdGlvbjogbm9uZTsKICAgICAgfQoKICAgICAgLnRvZ2dsZS1rbm9iLmRyYWdnaW5nIHsKICAgICAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kIDAuMTVzIGVhc2U7CiAgICAgIH0KCiAgICAgIDpob3N0KFt2YWx1ZV0pIC50b2dnbGUta25vYiB7CiAgICAgICAgYmFja2dyb3VuZDogd2hpdGU7CiAgICAgIH0KCiAgICAgIC8qIERpc2FibGVkIHN0YXRlICovCiAgICAgIC5tYWluY29udGFpbmVyLmRpc2FibGVkIHsKICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkOwogICAgICAgIG9wYWNpdHk6IDAuNTsKICAgICAgfQoKICAgICAgLnRvZ2dsZS10cmFjay5kaXNhYmxlZCB7CiAgICAgICAgYmFja2dyb3VuZDogJHttLmJkVGhlbWUoImhzbCgwIDAlIDk1LjElKSIsImhzbCgwIDAlIDE0LjklKSIpfTsKICAgICAgICBib3JkZXItY29sb3I6ICR7bS5iZFRoZW1lKCJoc2woMCAwJSA4OS44JSkiLCJoc2woMCAwJSAxNC45JSkiKX07CiAgICAgIH0KCiAgICAgIC8qIFJlcXVpcmVkIHN0YXRlIChsb2NrZWQgb24pICovCiAgICAgIDpob3N0KFtyZXF1aXJlZF1bdmFsdWVdKSAudG9nZ2xlLXRyYWNrIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke20uYmRUaGVtZSgiaHNsKDIyMi4yIDQ3LjQlIDYxLjIlKSIsImhzbCgyMTcuMiA5MS4yJSA0OS44JSkiKX07CiAgICAgICAgYm9yZGVyLWNvbG9yOiAke20uYmRUaGVtZSgiaHNsKDIyMi4yIDQ3LjQlIDYxLjIlKSIsImhzbCgyMTcuMiA5MS4yJSA0OS44JSkiKX07CiAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDsKICAgICAgfQoKICAgICAgOmhvc3QoW3JlcXVpcmVkXVt2YWx1ZV0pIC50b2dnbGUta25vYiB7CiAgICAgICAgYmFja2dyb3VuZDogJHttLmJkVGhlbWUoImhzbCgwIDAlIDg1JSkiLCJoc2woMCAwJSA3MCUpIil9OwogICAgICB9CgogICAgICAvKiBMYWJlbCAqLwogICAgICAubGFiZWwtY29udGFpbmVyIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgICAgZ2FwOiAycHg7CiAgICAgICAgZmxleDogMTsKICAgICAgfQoKICAgICAgLnRvZ2dsZS1sYWJlbCB7CiAgICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7CiAgICAgICAgbGluZS1oZWlnaHQ6IDIwcHg7CiAgICAgICAgY29sb3I6ICR7bS5iZFRoZW1lKCJoc2woMCAwJSAxNSUpIiwiaHNsKDAgMCUgOTAlKSIpfTsKICAgICAgICB0cmFuc2l0aW9uOiBjb2xvciAwLjE1cyBlYXNlOwogICAgICAgIGxldHRlci1zcGFjaW5nOiAtMC4wMWVtOwogICAgICB9CgogICAgICAubWFpbmNvbnRhaW5lcjpob3ZlciAudG9nZ2xlLWxhYmVsIHsKICAgICAgICBjb2xvcjogJHttLmJkVGhlbWUoImhzbCgwIDAlIDklKSIsImhzbCgwIDAlIDk1JSkiKX07CiAgICAgIH0KCiAgICAgIC5tYWluY29udGFpbmVyLmRpc2FibGVkOmhvdmVyIC50b2dnbGUtbGFiZWwgewogICAgICAgIGNvbG9yOiAke20uYmRUaGVtZSgiaHNsKDAgMCUgMTUlKSIsImhzbCgwIDAlIDkwJSkiKX07CiAgICAgIH0KCiAgICAgIC8qIERlc2NyaXB0aW9uICovCiAgICAgIC5kZXNjcmlwdGlvbi10ZXh0IHsKICAgICAgICBmb250LXNpemU6IDEycHg7CiAgICAgICAgY29sb3I6ICR7bS5iZFRoZW1lKCJoc2woMCAwJSA0NS4xJSkiLCJoc2woMCAwJSA2My45JSkiKX07CiAgICAgICAgbGluZS1oZWlnaHQ6IDEuNTsKICAgICAgfQogICAgYF07cmVuZGVyKCl7cmV0dXJuIENgCiAgICAgIDxkaXYgY2xhc3M9ImlucHV0LXdyYXBwZXIiPgogICAgICAgIDxkaXYgY2xhc3M9Im1haW5jb250YWluZXIgJHt0aGlzLmRpc2FibGVkPyJkaXNhYmxlZCI6IiJ9IiBAY2xpY2s9IiR7dGhpcy5oYW5kbGVDbGlja30iPgogICAgICAgICAgPGRpdgogICAgICAgICAgICBjbGFzcz0idG9nZ2xlLXRyYWNrICR7dGhpcy5kaXNhYmxlZD8iZGlzYWJsZWQiOiIifSIKICAgICAgICAgICAgdGFiaW5kZXg9IiR7dGhpcy5kaXNhYmxlZD8iLTEiOiIwIn0iCiAgICAgICAgICAgIEBrZXlkb3duPSIke3RoaXMuaGFuZGxlS2V5ZG93bn0iCiAgICAgICAgICA+CiAgICAgICAgICAgIDxkaXYKICAgICAgICAgICAgICBjbGFzcz0idG9nZ2xlLWtub2IiCiAgICAgICAgICAgICAgc3R5bGU9ImxlZnQ6ICR7dGhpcy5wYWRkaW5nK3RoaXMuY3VycmVudFh9cHg7IgogICAgICAgICAgICAgIEBwb2ludGVyZG93bj0iJHt0aGlzLm9uUG9pbnRlckRvd259IgogICAgICAgICAgICAgIEBwb2ludGVybW92ZT0iJHt0aGlzLm9uUG9pbnRlck1vdmV9IgogICAgICAgICAgICAgIEBwb2ludGVydXA9IiR7dGhpcy5vblBvaW50ZXJVcH0iCiAgICAgICAgICAgICAgQHBvaW50ZXJjYW5jZWw9IiR7dGhpcy5vblBvaW50ZXJVcH0iCiAgICAgICAgICAgID48L2Rpdj4KICAgICAgICAgIDwvZGl2PgogICAgICAgICAgPGRpdiBjbGFzcz0ibGFiZWwtY29udGFpbmVyIj4KICAgICAgICAgICAgJHt0aGlzLmxhYmVsP0NgPGRpdiBjbGFzcz0idG9nZ2xlLWxhYmVsIj4ke3RoaXMubGFiZWx9PC9kaXY+YDoiIn0KICAgICAgICAgICAgJHt0aGlzLmRlc2NyaXB0aW9uP0NgPGRpdiBjbGFzcz0iZGVzY3JpcHRpb24tdGV4dCI+JHt0aGlzLmRlc2NyaXB0aW9ufTwvZGl2PmA6IiJ9CiAgICAgICAgICA8L2Rpdj4KICAgICAgICA8L2Rpdj4KICAgICAgPC9kaXY+CiAgICBgfWFzeW5jIGZpcnN0VXBkYXRlZChjKXthd2FpdCBzdXBlci5maXJzdFVwZGF0ZWQoYyksdGhpcy5yZXF1aXJlZCYmIXRoaXMudmFsdWUmJih0aGlzLnZhbHVlPSEwKSx0aGlzLmN1cnJlbnRYPXRoaXMudmFsdWU/dGhpcy5tYXhUcmF2ZWw6MCx0aGlzLnJlcXVlc3RVcGRhdGUoKX1hc3luYyBoYW5kbGVDbGljayhjKXtpZih0aGlzLmlzRHJhZ2dpbmd8fHRoaXMuaGFzRHJhZ2dlZCl7Yy5zdG9wUHJvcGFnYXRpb24oKSxjLnByZXZlbnREZWZhdWx0KCk7cmV0dXJufWlmKCF0aGlzLmRpc2FibGVkKXtpZih0aGlzLnJlcXVpcmVkKXt0aGlzLmN1cnJlbnRYPXRoaXMubWF4VHJhdmVsLHRoaXMucmVxdWVzdFVwZGF0ZSgpLGF3YWl0IG5ldyBQcm9taXNlKHU9PnNldFRpbWVvdXQodSwxMCkpLHRoaXMuY3VycmVudFg9dGhpcy5tYXhUcmF2ZWwtMyx0aGlzLnJlcXVlc3RVcGRhdGUoKSxhd2FpdCBqdC5zbWFydGRlbGF5LmRlbGF5Rm9yKDE1MCksdGhpcy5jdXJyZW50WD10aGlzLm1heFRyYXZlbCx0aGlzLnJlcXVlc3RVcGRhdGUoKTtyZXR1cm59Yy5zdG9wUHJvcGFnYXRpb24oKSxjLnByZXZlbnREZWZhdWx0KCksdGhpcy52YWx1ZT0hdGhpcy52YWx1ZSx0aGlzLmN1cnJlbnRYPXRoaXMudmFsdWU/dGhpcy5tYXhUcmF2ZWw6MCx0aGlzLnJlcXVlc3RVcGRhdGUoKSx0aGlzLmRpc3BhdGNoRXZlbnQobmV3IEN1c3RvbUV2ZW50KCJuZXdWYWx1ZSIse2RldGFpbDp0aGlzLnZhbHVlLGJ1YmJsZXM6ITB9KSksdGhpcy5jaGFuZ2VTdWJqZWN0Lm5leHQodGhpcyksanQuc21hcnRkZWxheS5kZWxheUZvcigwKS50aGVuKCgpPT57dGhpcy5oYXNEcmFnZ2VkPSExfSl9fW9uUG9pbnRlckRvd24oYyl7dGhpcy5yZXF1aXJlZHx8dGhpcy5kaXNhYmxlZHx8KHRoaXMuaXNEcmFnZ2luZz0hMCx0aGlzLnN0YXJ0WD1jLmNsaWVudFgtdGhpcy5jdXJyZW50WCxjLnRhcmdldC5zZXRQb2ludGVyQ2FwdHVyZShjLnBvaW50ZXJJZCkpfW9uUG9pbnRlck1vdmUoYyl7aWYoIXRoaXMuaXNEcmFnZ2luZylyZXR1cm47bGV0IHU9Yy5jbGllbnRYLXRoaXMuc3RhcnRYO3RoaXMuaGFzRHJhZ2dlZD0hMDtsZXQgZD10aGlzLnNoYWRvd1Jvb3Q/LnF1ZXJ5U2VsZWN0b3IoIi50b2dnbGUta25vYiIpO2QmJmQuY2xhc3NMaXN0LmFkZCgiZHJhZ2dpbmciKSx0aGlzLmN1cnJlbnRYPU1hdGgubWF4KDAsTWF0aC5taW4odSx0aGlzLm1heFRyYXZlbCkpLHRoaXMucmVxdWVzdFVwZGF0ZSgpfW9uUG9pbnRlclVwKGMpe2lmKCF0aGlzLmlzRHJhZ2dpbmd8fChjLnRhcmdldC5yZWxlYXNlUG9pbnRlckNhcHR1cmUoYy5wb2ludGVySWQpLHRoaXMuaXNEcmFnZ2luZz0hMSwhdGhpcy5oYXNEcmFnZ2VkKSlyZXR1cm47bGV0IHU9dGhpcy5zaGFkb3dSb290Py5xdWVyeVNlbGVjdG9yKCIudG9nZ2xlLWtub2IiKTt1JiZ1LmNsYXNzTGlzdC5yZW1vdmUoImRyYWdnaW5nIik7bGV0IGQ9dGhpcy5tYXhUcmF2ZWwvMjt0aGlzLnZhbHVlPXRoaXMuY3VycmVudFg+ZCx0aGlzLmN1cnJlbnRYPXRoaXMudmFsdWU/dGhpcy5tYXhUcmF2ZWw6MCx0aGlzLnJlcXVlc3RVcGRhdGUoKSx0aGlzLmRpc3BhdGNoRXZlbnQobmV3IEN1c3RvbUV2ZW50KCJuZXdWYWx1ZSIse2RldGFpbDp0aGlzLnZhbHVlLGJ1YmJsZXM6ITB9KSksdGhpcy5jaGFuZ2VTdWJqZWN0Lm5leHQodGhpcyksanQuc21hcnRkZWxheS5kZWxheUZvcigwKS50aGVuKCgpPT57dGhpcy5oYXNEcmFnZ2VkPSExfSl9dXBkYXRlZChjKXtzdXBlci51cGRhdGVkKGMpLGMuaGFzKCJ2YWx1ZSIpJiYhdGhpcy5pc0RyYWdnaW5nJiYhdGhpcy5oYXNEcmFnZ2VkJiYodGhpcy5jdXJyZW50WD10aGlzLnZhbHVlP3RoaXMubWF4VHJhdmVsOjAsdGhpcy5yZXF1ZXN0VXBkYXRlKCkpfWhhbmRsZUtleWRvd24oYyl7KGMua2V5PT09IiAifHxjLmtleT09PSJFbnRlciIpJiYoYy5wcmV2ZW50RGVmYXVsdCgpLHRoaXMuaGFuZGxlQ2xpY2soYykpfWdldFZhbHVlKCl7cmV0dXJuIHRoaXMudmFsdWV9c2V0VmFsdWUoYyl7dGhpcy52YWx1ZT1jfWZvY3VzKCl7bGV0IGM9dGhpcy5zaGFkb3dSb290Py5xdWVyeVNlbGVjdG9yKCIudG9nZ2xlLXRyYWNrIik7YyYmYy5mb2N1cygpfXN0YXRpY3tDNmUoaSxyKX19O3JldHVybiBsPWl9KSgpfSk7dmFyIGRscix1bHI9cCgoKT0+e3hlKCk7ZGxyPSgpPT5DYAogIDxkZWVzLWRlbW93cmFwcGVyPgogICAgPHN0eWxlPgogICAgICAke29lYAogICAgICAgIC5kZW1vLWNvbnRhaW5lciB7CiAgICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgICAgIGdhcDogMjRweDsKICAgICAgICAgIHBhZGRpbmc6IDI0cHg7CiAgICAgICAgICBtYXgtd2lkdGg6IDEyMDBweDsKICAgICAgICAgIG1hcmdpbjogMCBhdXRvOwogICAgICAgIH0KICAgICAgICAKICAgICAgICAuaW5wdXQtZ3JvdXAgewogICAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgICAgICBnYXA6IDE2cHg7CiAgICAgICAgfQoKICAgICAgICAuaG9yaXpvbnRhbC1ncm91cCB7CiAgICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgICAgZ2FwOiAyNHB4OwogICAgICAgICAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7CiAgICAgICAgfQogICAgICAgIAogICAgICAgIC5pbmZvLWJveCB7CiAgICAgICAgICBtYXJnaW4tdG9wOiAxNnB4OwogICAgICAgICAgcGFkZGluZzogMTJweDsKICAgICAgICAgIGJhY2tncm91bmQ6ICNlM2YyZmQ7CiAgICAgICAgICBib3JkZXItcmFkaXVzOiA0cHg7CiAgICAgICAgICBmb250LXNpemU6IDE0cHg7CiAgICAgICAgICBjb2xvcjogIzE5NzZkMjsKICAgICAgICB9CiAgICAgICAgCiAgICAgICAgQG1lZGlhIChwcmVmZXJzLWNvbG9yLXNjaGVtZTogZGFyaykgewogICAgICAgICAgLmluZm8tYm94IHsKICAgICAgICAgICAgYmFja2dyb3VuZDogIzFlM2E1ZjsKICAgICAgICAgICAgY29sb3I6ICM5MGNhZjk7CiAgICAgICAgICB9CiAgICAgICAgfQogICAgICBgfQogICAgPC9zdHlsZT4KICAgIAogICAgPGRpdiBjbGFzcz0iZGVtby1jb250YWluZXIiPgogICAgICA8ZGVlcy1wYW5lbCAudGl0bGU9JHsiQmFzaWMgVHlwZSBMaXN0In0gLnN1YnRpdGxlPSR7IkFkZCBhbmQgcmVtb3ZlIGl0ZW1zIGZyb20gYSBsaXN0In0+CiAgICAgICAgPGRpdiBjbGFzcz0iaW5wdXQtZ3JvdXAiPgogICAgICAgICAgPGRlZXMtaW5wdXQtdHlwZWxpc3QKICAgICAgICAgICAgLmxhYmVsPSR7IlRhZ3MifQogICAgICAgICAgICAuZGVzY3JpcHRpb249JHsiQWRkIHRhZ3MgYnkgdHlwaW5nIGFuZCBwcmVzc2luZyBFbnRlciJ9CiAgICAgICAgICAgIC52YWx1ZT0ke1siamF2YXNjcmlwdCIsInR5cGVzY3JpcHQiLCJ3ZWItY29tcG9uZW50cyJdfQogICAgICAgICAgPjwvZGVlcy1pbnB1dC10eXBlbGlzdD4KCiAgICAgICAgICA8ZGVlcy1pbnB1dC10eXBlbGlzdAogICAgICAgICAgICAubGFiZWw9JHsiVGVhbSBNZW1iZXJzIn0KICAgICAgICAgICAgLmRlc2NyaXB0aW9uPSR7IkFkZCBlbWFpbCBhZGRyZXNzZXMgb2YgdGVhbSBtZW1iZXJzIn0KICAgICAgICAgICAgLnZhbHVlPSR7WyJhbGljZUBleGFtcGxlLmNvbSIsImJvYkBleGFtcGxlLmNvbSJdfQogICAgICAgICAgPjwvZGVlcy1pbnB1dC10eXBlbGlzdD4KICAgICAgICA8L2Rpdj4KICAgICAgPC9kZWVzLXBhbmVsPgogICAgICAKICAgICAgPGRlZXMtcGFuZWwgLnRpdGxlPSR7IlNraWxscyAmIEtleXdvcmRzIn0gLnN1YnRpdGxlPSR7Ik1hbmFnZSBsaXN0cyBvZiBza2lsbHMgYW5kIGtleXdvcmRzIn0+CiAgICAgICAgPGRpdiBjbGFzcz0iaW5wdXQtZ3JvdXAiPgogICAgICAgICAgPGRlZXMtaW5wdXQtdHlwZWxpc3QKICAgICAgICAgICAgLmxhYmVsPSR7IllvdXIgU2tpbGxzIn0KICAgICAgICAgICAgLmRlc2NyaXB0aW9uPSR7Ikxpc3QgeW91ciBwcm9mZXNzaW9uYWwgc2tpbGxzIn0KICAgICAgICAgICAgLnZhbHVlPSR7WyJIVE1MIiwiQ1NTIiwiSmF2YVNjcmlwdCIsIk5vZGUuanMiLCJSZWFjdCJdfQogICAgICAgICAgPjwvZGVlcy1pbnB1dC10eXBlbGlzdD4KCiAgICAgICAgICA8ZGl2IGNsYXNzPSJob3Jpem9udGFsLWdyb3VwIj4KICAgICAgICAgIDxkZWVzLWlucHV0LXR5cGVsaXN0CiAgICAgICAgICAgIC5sYWJlbD0keyJDYXRlZ29yaWVzIn0KICAgICAgICAgICAgLmxheW91dE1vZGU9JHsiaG9yaXpvbnRhbCJ9CiAgICAgICAgICAgIC52YWx1ZT0ke1siVGVjaG5vbG9neSIsIkRlc2lnbiIsIkJ1c2luZXNzIl19CiAgICAgICAgICA+PC9kZWVzLWlucHV0LXR5cGVsaXN0PgogICAgICAgICAgCiAgICAgICAgICA8ZGVlcy1pbnB1dC10eXBlbGlzdAogICAgICAgICAgICAubGFiZWw9JHsiS2V5d29yZHMifQogICAgICAgICAgICAubGF5b3V0TW9kZT0keyJob3Jpem9udGFsIn0KICAgICAgICAgICAgLnZhbHVlPSR7WyJpbm5vdmF0aW9uIiwic3RhcnR1cCIsImdyb3d0aCJdfQogICAgICAgICAgPjwvZGVlcy1pbnB1dC10eXBlbGlzdD4KICAgICAgICA8L2Rpdj4KICAgICAgICA8L2Rpdj4KICAgICAgPC9kZWVzLXBhbmVsPgogICAgICAKICAgICAgPGRlZXMtcGFuZWwgLnRpdGxlPSR7IlJlcXVpcmVkICYgRGlzYWJsZWQgU3RhdGVzIn0gLnN1YnRpdGxlPSR7IkRpZmZlcmVudCBpbnB1dCBzdGF0ZXMgZm9yIHZhbGlkYXRpb24ifT4KICAgICAgICA8ZGl2IGNsYXNzPSJpbnB1dC1ncm91cCI+CiAgICAgICAgICA8ZGVlcy1pbnB1dC10eXBlbGlzdAogICAgICAgICAgICAubGFiZWw9JHsiUHJvamVjdCBEZXBlbmRlbmNpZXMifQogICAgICAgICAgICAuZGVzY3JpcHRpb249JHsiTGlzdCBhbGwgcmVxdWlyZWQgbnBtIHBhY2thZ2VzIn0KICAgICAgICAgICAgLnJlcXVpcmVkPSR7ITB9CiAgICAgICAgICAgIC52YWx1ZT0ke1siQGRlc2lnbi5lc3RhdGUvZGVlcy1lbGVtZW50IiwiQGRlc2lnbi5lc3RhdGUvZGVlcy1kb210b29scyJdfQogICAgICAgICAgPjwvZGVlcy1pbnB1dC10eXBlbGlzdD4KCiAgICAgICAgICA8ZGVlcy1pbnB1dC10eXBlbGlzdAogICAgICAgICAgICAubGFiZWw9JHsiU3lzdGVtIFRhZ3MifQogICAgICAgICAgICAuZGVzY3JpcHRpb249JHsiVGhlc2UgdGFncyBhcmUgbWFuYWdlZCBieSB0aGUgc3lzdGVtIn0KICAgICAgICAgICAgLmRpc2FibGVkPSR7ITB9CiAgICAgICAgICAgIC52YWx1ZT0ke1sic3lzdGVtIiwicHJvdGVjdGVkIiwicmVhZG9ubHkiXX0KICAgICAgICAgID48L2RlZXMtaW5wdXQtdHlwZWxpc3Q+CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGVlcy1wYW5lbD4KICAgICAgCiAgICAgIDxkZWVzLXBhbmVsIC50aXRsZT0keyJBcnRpY2xlIFB1Ymxpc2hpbmcgRm9ybSJ9IC5zdWJ0aXRsZT0keyJDb21wbGV0ZSBmb3JtIHdpdGggdGFnIG1hbmFnZW1lbnQifT4KICAgICAgICA8ZGVlcy1mb3JtPgogICAgICAgICAgPGRlZXMtaW5wdXQtdGV4dCAubGFiZWw9JHsiQXJ0aWNsZSBUaXRsZSJ9IC5yZXF1aXJlZD0keyEwfT48L2RlZXMtaW5wdXQtdGV4dD4KICAgICAgICAgIDxkZWVzLWlucHV0LXRleHQgCiAgICAgICAgICAgIC5sYWJlbD0keyJTdW1tYXJ5In0gCiAgICAgICAgICAgIC5pbnB1dFR5cGU9JHsidGV4dGFyZWEifQogICAgICAgICAgICAuZGVzY3JpcHRpb249JHsiQnJpZWYgZGVzY3JpcHRpb24gb2YgdGhlIGFydGljbGUifQogICAgICAgICAgPjwvZGVlcy1pbnB1dC10ZXh0PgogICAgICAgICAgPGRlZXMtaW5wdXQtdHlwZWxpc3QKICAgICAgICAgICAgLmxhYmVsPSR7IlRhZ3MifQogICAgICAgICAgICAuZGVzY3JpcHRpb249JHsiQWRkIHJlbGV2YW50IHRhZ3MgZm9yIGJldHRlciBkaXNjb3ZlcmFiaWxpdHkifQogICAgICAgICAgICAudmFsdWU9JHtbInR1dG9yaWFsIiwid2ViLWRldmVsb3BtZW50Il19CiAgICAgICAgICA+PC9kZWVzLWlucHV0LXR5cGVsaXN0PgogICAgICAgICAgPGRlZXMtaW5wdXQtdHlwZWxpc3QKICAgICAgICAgICAgLmxhYmVsPSR7IkNvLUF1dGhvcnMifQogICAgICAgICAgICAuZGVzY3JpcHRpb249JHsiQWRkIGVtYWlsIGFkZHJlc3NlcyBvZiBjby1hdXRob3JzIn0KICAgICAgICAgID48L2RlZXMtaW5wdXQtdHlwZWxpc3Q+CiAgICAgICAgPC9kZWVzLWZvcm0+CiAgICAgICAgCiAgICAgICAgPGRpdiBjbGFzcz0iaW5mby1ib3giPgogICAgICAgICAgPHN0cm9uZz5UaXA6PC9zdHJvbmc+IFR5cGUgYSB2YWx1ZSBhbmQgcHJlc3MgRW50ZXIgdG8gYWRkIGl0IHRvIHRoZSBsaXN0LiBDbGljayBvbiBhbnkgaXRlbSB0byByZW1vdmUgaXQuCiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGVlcy1wYW5lbD4KICAgIDwvZGl2PgogIDwvZGVlcy1kZW1vd3JhcHBlcj4KYH0pO3ZhciBfNmUsaGIsV04sTDZlPXAoKCk9Pnt4ZSgpO0t0KCk7TTEoKTt1bHIoKTtKZSgpO182ZT1mdW5jdGlvbihlLHQscixpLGEsbil7ZnVuY3Rpb24gbyh5KXtpZih5IT09dm9pZCAwJiZ0eXBlb2YgeSE9ImZ1bmN0aW9uIil0aHJvdyBuZXcgVHlwZUVycm9yKCJGdW5jdGlvbiBleHBlY3RlZCIpO3JldHVybiB5fWZvcih2YXIgcz1pLmtpbmQsbD1zPT09ImdldHRlciI/ImdldCI6cz09PSJzZXR0ZXIiPyJzZXQiOiJ2YWx1ZSIsYz0hdCYmZT9pLnN0YXRpYz9lOmUucHJvdG90eXBlOm51bGwsdT10fHwoYz9PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGMsaS5uYW1lKTp7fSksZCxoPSExLGY9ci5sZW5ndGgtMTtmPj0wO2YtLSl7dmFyIHg9e307Zm9yKHZhciB2IGluIGkpeFt2XT12PT09ImFjY2VzcyI/e306aVt2XTtmb3IodmFyIHYgaW4gaS5hY2Nlc3MpeC5hY2Nlc3Nbdl09aS5hY2Nlc3Nbdl07eC5hZGRJbml0aWFsaXplcj1mdW5jdGlvbih5KXtpZihoKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBhZGQgaW5pdGlhbGl6ZXJzIGFmdGVyIGRlY29yYXRpb24gaGFzIGNvbXBsZXRlZCIpO24ucHVzaChvKHl8fG51bGwpKX07dmFyIGI9KDAscltmXSkocz09PSJhY2Nlc3NvciI/e2dldDp1LmdldCxzZXQ6dS5zZXR9OnVbbF0seCk7aWYocz09PSJhY2Nlc3NvciIpe2lmKGI9PT12b2lkIDApY29udGludWU7aWYoYj09PW51bGx8fHR5cGVvZiBiIT0ib2JqZWN0Iil0aHJvdyBuZXcgVHlwZUVycm9yKCJPYmplY3QgZXhwZWN0ZWQiKTsoZD1vKGIuZ2V0KSkmJih1LmdldD1kKSwoZD1vKGIuc2V0KSkmJih1LnNldD1kKSwoZD1vKGIuaW5pdCkpJiZhLnVuc2hpZnQoZCl9ZWxzZShkPW8oYikpJiYocz09PSJmaWVsZCI/YS51bnNoaWZ0KGQpOnVbbF09ZCl9YyYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGMsaS5uYW1lLHUpLGg9ITB9LGhiPWZ1bmN0aW9uKGUsdCxyKXtmb3IodmFyIGk9YXJndW1lbnRzLmxlbmd0aD4yLGE9MDthPHQubGVuZ3RoO2ErKylyPWk/dFthXS5jYWxsKGUscik6dFthXS5jYWxsKGUpO3JldHVybiBpP3I6dm9pZCAwfSxXTj0oKCk9PntsZXQgZT1beWUoImRlZXMtaW5wdXQtdHlwZWxpc3QiKV0sdCxyPVtdLGksYT1vdCxuLG89W10scz1bXSxsLGM9W10sdT1bXTt2YXIgZD1jbGFzcyBleHRlbmRzIGF7c3RhdGlje2k9dGhpc31zdGF0aWN7bGV0IGg9dHlwZW9mIFN5bWJvbD09ImZ1bmN0aW9uIiYmU3ltYm9sLm1ldGFkYXRhP09iamVjdC5jcmVhdGUoYVtTeW1ib2wubWV0YWRhdGFdPz9udWxsKTp2b2lkIDA7bj1baih7dHlwZTpBcnJheX0pXSxsPVtmZSgpXSxfNmUodGhpcyxudWxsLG4se2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJ2YWx1ZSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6Zj0+InZhbHVlImluIGYsZ2V0OmY9PmYudmFsdWUsc2V0OihmLHgpPT57Zi52YWx1ZT14fX0sbWV0YWRhdGE6aH0sbyxzKSxfNmUodGhpcyxudWxsLGwse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJpbnB1dFZhbHVlIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpmPT4iaW5wdXRWYWx1ZSJpbiBmLGdldDpmPT5mLmlucHV0VmFsdWUsc2V0OihmLHgpPT57Zi5pbnB1dFZhbHVlPXh9fSxtZXRhZGF0YTpofSxjLHUpLF82ZShudWxsLHQ9e3ZhbHVlOml9LGUse2tpbmQ6ImNsYXNzIixuYW1lOmkubmFtZSxtZXRhZGF0YTpofSxudWxsLHIpLGQ9aT10LnZhbHVlLGgmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShpLFN5bWJvbC5tZXRhZGF0YSx7ZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITAsdmFsdWU6aH0pfXN0YXRpYyBkZW1vPWRscjtzdGF0aWMgZGVtb0dyb3Vwcz1bIklucHV0Il07I2U9aGIodGhpcyxvLFtdKTtnZXQgdmFsdWUoKXtyZXR1cm4gdGhpcy4jZX1zZXQgdmFsdWUoaCl7dGhpcy4jZT1ofSN0PShoYih0aGlzLHMpLGhiKHRoaXMsYywiIikpO2dldCBpbnB1dFZhbHVlKCl7cmV0dXJuIHRoaXMuI3R9c2V0IGlucHV0VmFsdWUoaCl7dGhpcy4jdD1ofXN0YXRpYyBzdHlsZXM9W0RlLC4uLm90LmJhc2VTdHlsZXMsbS5kZWZhdWx0U3R5bGVzLG9lYAogICAgICAvKiBUT0RPOiBNaWdyYXRlIGhhcmRjb2RlZCB2YWx1ZXMgdG8gLS1kZWVzLSogQ1NTIHZhcmlhYmxlcyAqLwogICAgICA6aG9zdCB7CiAgICAgICAgY29sb3I6ICR7bS5iZFRoZW1lKCIjMzMzIiwiI2ZmZiIpfTsKICAgICAgfQogICAgICAubWFpbmJveCB7CiAgICAgICAgYm9yZGVyLXJhZGl1czogM3B4OwogICAgICAgIGJhY2tncm91bmQ6ICR7bS5iZFRoZW1lKCIjZmFmYWZhIiwiIzIyMjIyMiIpfTsKICAgICAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgICAgIGJvcmRlci10b3A6ICR7bS5iZFRoZW1lKCIxcHggc29saWQgI0NDQyIsIjFweCBzb2xpZCAjZmZmZmZmMTAiKX07CiAgICAgICAgYm9yZGVyLWJvdHRvbTogJHttLmJkVGhlbWUoIjFweCBzb2xpZCAjQ0NDIiwiMXB4IHNvbGlkICMyMjIiKX07CiAgICAgICAgYm9yZGVyLXJpZ2h0OiAke20uYmRUaGVtZSgiMXB4IHNvbGlkICNDQ0MiLCIxcHggc29saWQgI2ZmZmZmZjEwIil9OwogICAgICAgIGJvcmRlci1sZWZ0OiAke20uYmRUaGVtZSgiMXB4IHNvbGlkICNDQ0MiLCIxcHggc29saWQgI2ZmZmZmZjEwIil9OwogICAgICAgIGJveC1zaGFkb3c6ICR7bS5iZFRoZW1lKCIwcHggMXB4IDRweCByZ2JhKDAsMCwwLDAuMykiLCJub25lIil9OwogICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjJzOwogICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgfQogICAgICAKICAgICAgLm1haW5ib3g6aG92ZXIgewogICAgICAgIGZpbHRlcjogJHttLmJkVGhlbWUoImJyaWdodG5lc3MoMC45OCkiLCJicmlnaHRuZXNzKDEuMDUpIil9OwogICAgICB9CiAgICAgIAogICAgICAubWFpbmJveDpmb2N1cy13aXRoaW4gewogICAgICAgIG91dGxpbmU6IDJweCBzb2xpZCAke20uYmRUaGVtZSgiIzAwNjlmMiIsIiMwMDg0ZmYiKX07CiAgICAgICAgb3V0bGluZS1vZmZzZXQ6IC0ycHg7CiAgICAgIH0KCiAgICAgIC50YWdzIHsKICAgICAgICBwYWRkaW5nOiAxNnB4OwogICAgICAgIGN1cnNvcjogZGVmYXVsdDsKICAgICAgfQoKICAgICAgLm5vdGFncyB7CiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyOwogICAgICAgIGNvbG9yOiAke20uYmRUaGVtZSgiIzk5OSIsIiM2NjYiKX07CiAgICAgICAgZm9udC1zaXplOiAxM3B4OwogICAgICAgIGZvbnQtc3R5bGU6IGl0YWxpYzsKICAgICAgfQoKICAgICAgaW5wdXQgewogICAgICAgIGRpc3BsYXk6IGJsb2NrOwogICAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7CiAgICAgICAgYmFja2dyb3VuZDogJHttLmJkVGhlbWUoIiNmNWY1ZjUiLCIjMTgxODE4Iil9OwogICAgICAgIHdpZHRoOiAxMDAlOwogICAgICAgIG91dGxpbmU6IG5vbmU7CiAgICAgICAgYm9yZGVyOiBub25lOwogICAgICAgIGNvbG9yOiBpbmhlcml0OwogICAgICAgIHBhZGRpbmc6IDBweCAxNnB4OwogICAgICAgIG92ZXJmbG93OiBoaWRkZW47CiAgICAgICAgbGluZS1oZWlnaHQ6IDMycHg7CiAgICAgICAgaGVpZ2h0OiAwcHg7CiAgICAgICAgdHJhbnNpdGlvbjogaGVpZ2h0IDAuMnM7CiAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICR7bS5iZFRoZW1lKCIjZTBlMGUwIiwiIzMzMyIpfTsKICAgICAgfQoKICAgICAgaW5wdXQ6Zm9jdXMgewogICAgICAgIGhlaWdodDogMzJweDsKICAgICAgICBiYWNrZ3JvdW5kOiAke20uYmRUaGVtZSgiI2ZhZmFmYSIsIiMxYTFhMWEiKX07CiAgICAgIH0KICAgICAgCiAgICAgIGlucHV0OjpwbGFjZWhvbGRlciB7CiAgICAgICAgY29sb3I6ICR7bS5iZFRoZW1lKCIjOTk5IiwiIzY2NiIpfTsKICAgICAgfQoKICAgICAgLnRhZyB7CiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrOwogICAgICAgIGJhY2tncm91bmQ6ICR7bS5iZFRoZW1lKCIjZThmNWU5IiwiIzJkM2EyZCIpfTsKICAgICAgICBjb2xvcjogJHttLmJkVGhlbWUoIiMyZTdkMzIiLCIjODFjNzg0Iil9OwogICAgICAgIHBhZGRpbmc6IDRweCAxMHB4OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDRweDsKICAgICAgICBtYXJnaW46IDNweDsKICAgICAgICBmb250LXNpemU6IDEzcHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDsKICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC4yczsKICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAke20uYmRUaGVtZSgiI2M4ZTZjOSIsIiMxYjVlMjAiKX07CiAgICAgIH0KICAgICAgCiAgICAgIC50YWc6aG92ZXIgewogICAgICAgIGJhY2tncm91bmQ6ICR7bS5iZFRoZW1lKCIjYzhlNmM5IiwiIzNkNGYzZCIpfTsKICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTFweCk7CiAgICAgIH0KCiAgICAgIC50YWcgLnJlbW92ZSB7CiAgICAgICAgbWFyZ2luLWxlZnQ6IDhweDsKICAgICAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICAgICAgb3BhY2l0eTogMC43OwogICAgICAgIGZvbnQtd2VpZ2h0OiA3MDA7CiAgICAgICAgZm9udC1zaXplOiAxNnB4OwogICAgICAgIGxpbmUtaGVpZ2h0OiAxOwogICAgICAgIHRyYW5zaXRpb246IG9wYWNpdHkgMC4yczsKICAgICAgfQoKICAgICAgLnRhZyAucmVtb3ZlOmhvdmVyIHsKICAgICAgICBvcGFjaXR5OiAxOwogICAgICAgIGNvbG9yOiAke20uYmRUaGVtZSgiI2M2MjgyOCIsIiNlZjUzNTAiKX07CiAgICAgIH0KICAgICAgCiAgICAgIC8qIERpc2FibGVkIHN0YXRlICovCiAgICAgIDpob3N0KFtkaXNhYmxlZF0pIC5tYWluYm94IHsKICAgICAgICBvcGFjaXR5OiAwLjY7CiAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDsKICAgICAgfQogICAgICAKICAgICAgOmhvc3QoW2Rpc2FibGVkXSkgLnRhZ3MgewogICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7CiAgICAgIH0KICAgICAgCiAgICAgIDpob3N0KFtkaXNhYmxlZF0pIC50YWcgewogICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lOwogICAgICB9CiAgICAgIAogICAgICA6aG9zdChbZGlzYWJsZWRdKSBpbnB1dCB7CiAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDsKICAgICAgICBiYWNrZ3JvdW5kOiAke20uYmRUaGVtZSgiI2YwZjBmMCIsIiMxYTFhMWEiKX07CiAgICAgIH0KICAgIGBdO3JlbmRlcigpe3JldHVybiBDYAogICAgICA8ZGl2IGNsYXNzPSJpbnB1dC13cmFwcGVyIj4KICAgICAgICA8ZGVlcy1sYWJlbCAubGFiZWw9JHt0aGlzLmxhYmVsfSAuZGVzY3JpcHRpb249JHt0aGlzLmRlc2NyaXB0aW9ufT48L2RlZXMtbGFiZWw+CiAgICAgICAgPGRpdiBjbGFzcz0ibWFpbmJveCI+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJ0YWdzIiBAY2xpY2s9JHsoKT0+e3RoaXMuc2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yKCJpbnB1dCIpLmZvY3VzKCl9fT4KICAgICAgICAgICAgJHt0aGlzLnZhbHVlLmxlbmd0aD09PTA/Q2A8ZGl2IGNsYXNzPSJub3RhZ3MiPk5vIHRhZ3MgeWV0PC9kaXY+YDp0aGlzLnZhbHVlLm1hcChoPT5DYAogICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJ0YWciPgogICAgICAgICAgICAgICAgICAgICAgJHtofQogICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9InJlbW92ZSIgQGNsaWNrPSR7Zj0+e2Yuc3RvcFByb3BhZ2F0aW9uKCksdGhpcy5yZW1vdmVUYWcoaCl9fT7Dlzwvc3Bhbj4KICAgICAgICAgICAgICAgICAgICA8L3NwYW4+CiAgICAgICAgICAgICAgICAgIGApfQogICAgICAgICAgPC9kaXY+CiAgICAgICAgICA8aW5wdXQKICAgICAgICAgICAgdHlwZT0idGV4dCIKICAgICAgICAgICAgcGxhY2Vob2xkZXI9IlR5cGUsIHByZXNzIEVudGVyIHRvIGFkZCBpdC4uLiIKICAgICAgICAgICAgLnZhbHVlPSR7dGhpcy5pbnB1dFZhbHVlfQogICAgICAgICAgICBAaW5wdXQ9JHtoPT57dGhpcy5pbnB1dFZhbHVlPWgudGFyZ2V0LnZhbHVlfX0KICAgICAgICAgICAgQGtleWRvd249JHtoPT57aC5rZXk9PT0iRW50ZXIiJiZ0aGlzLmlucHV0VmFsdWUudHJpbSgpJiYoaC5wcmV2ZW50RGVmYXVsdCgpLHRoaXMuYWRkVGFnKHRoaXMuaW5wdXRWYWx1ZS50cmltKCkpKX19CiAgICAgICAgICAgIC5kaXNhYmxlZD0ke3RoaXMuZGlzYWJsZWR9CiAgICAgICAgICAvPgogICAgICAgIDwvZGl2PgogICAgICA8L2Rpdj4KICAgIGB9YWRkVGFnKGgpe3RoaXMudmFsdWUuaW5jbHVkZXMoaCl8fCh0aGlzLnZhbHVlPVsuLi50aGlzLnZhbHVlLGhdLHRoaXMuaW5wdXRWYWx1ZT0iIix0aGlzLmNoYW5nZVN1YmplY3QubmV4dCh0aGlzKSl9cmVtb3ZlVGFnKGgpe3RoaXMudmFsdWU9dGhpcy52YWx1ZS5maWx0ZXIoZj0+ZiE9PWgpLHRoaXMuY2hhbmdlU3ViamVjdC5uZXh0KHRoaXMpfWdldFZhbHVlKCl7cmV0dXJuIHRoaXMudmFsdWV9c2V0VmFsdWUoaCl7dGhpcy52YWx1ZT1ofWNvbnN0cnVjdG9yKCl7c3VwZXIoLi4uYXJndW1lbnRzKSxoYih0aGlzLHUpfXN0YXRpY3toYihpLHIpfX07cmV0dXJuIGQ9aX0pKCl9KTt2YXIgcGxyLGhscj1wKCgpPT57QTZlKCk7d2koKTt4ZSgpO3Bscj0oKT0+Q2AKICA8c3R5bGU+CiAgICAke29lYAogICAgICAuZGVtb1dyYXBwZXIgewogICAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7CiAgICAgICAgcG9zaXRpb246IGFic29sdXRlOwogICAgICAgIHdpZHRoOiAxMDAlOwogICAgICAgIGhlaWdodDogMTAwJTsKICAgICAgICBwYWRkaW5nOiAzMnB4OwogICAgICAgIGJhY2tncm91bmQ6ICR7bS5iZFRoZW1lKCJoc2woMCAwJSA5NSUpIiwiaHNsKDAgMCUgNSUpIil9OwogICAgICAgIG92ZXJmbG93LXk6IGF1dG87CiAgICAgIH0KICAgICAgLmRlbW8tY29udGFpbmVyIHsKICAgICAgICBtYXgtd2lkdGg6IDEyMDBweDsKICAgICAgICBtYXJnaW46IDAgYXV0bzsKICAgICAgfQogICAgICAuZGVtby1zZWN0aW9uIHsKICAgICAgICBtYXJnaW4tYm90dG9tOiA0OHB4OwogICAgICB9CiAgICAgIC5kZW1vLXRpdGxlIHsKICAgICAgICBmb250LXNpemU6IDI0cHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDsKICAgICAgICBtYXJnaW4tYm90dG9tOiA4cHg7CiAgICAgICAgY29sb3I6ICR7bS5iZFRoZW1lKCJoc2woMCAwJSA5JSkiLCJoc2woMCAwJSA5NSUpIil9OwogICAgICB9CiAgICAgIC5kZW1vLWRlc2NyaXB0aW9uIHsKICAgICAgICBmb250LXNpemU6IDE0cHg7CiAgICAgICAgY29sb3I6ICR7bS5iZFRoZW1lKCJoc2woMjE1LjQgMTYuMyUgNDYuOSUpIiwiaHNsKDIxNSAyMC4yJSA2NS4xJSkiKX07CiAgICAgICAgbWFyZ2luLWJvdHRvbTogMjRweDsKICAgICAgfQogICAgICAudGhlbWUtdG9nZ2xlIHsKICAgICAgICBwb3NpdGlvbjogZml4ZWQ7CiAgICAgICAgdG9wOiAxNnB4OwogICAgICAgIHJpZ2h0OiAxNnB4OwogICAgICAgIHotaW5kZXg6IDEwMDA7CiAgICAgIH0KICAgIGB9CiAgPC9zdHlsZT4KICA8ZGl2IGNsYXNzPSJkZW1vV3JhcHBlciI+CiAgICA8ZGVlcy1idXR0b24gY2xhc3M9InRoZW1lLXRvZ2dsZSIgQGNsaWNrPSR7KCk9Pntkb2N1bWVudC5ib2R5LmNsYXNzTGlzdC50b2dnbGUoImJyaWdodCIpLGRvY3VtZW50LmJvZHkuY2xhc3NMaXN0LnRvZ2dsZSgiZGFyayIpfX0+VG9nZ2xlIFRoZW1lPC9kZWVzLWJ1dHRvbj4KICAgIAogICAgPGRpdiBjbGFzcz0iZGVtby1jb250YWluZXIiPgogICAgICA8ZGl2IGNsYXNzPSJkZW1vLXNlY3Rpb24iPgogICAgICAgIDxoMiBjbGFzcz0iZGVtby10aXRsZSI+QmFzaWMgVGFibGUgd2l0aCBBY3Rpb25zPC9oMj4KICAgICAgICA8cCBjbGFzcz0iZGVtby1kZXNjcmlwdGlvbiI+QSBzdGFuZGFyZCB0YWJsZSB3aXRoIHJvdyBhY3Rpb25zLCBlZGl0YWJsZSBmaWVsZHMsIGFuZCBjb250ZXh0IG1lbnUgc3VwcG9ydC4gRG91YmxlLWNsaWNrIG9uIGRlc2NyaXB0aW9ucyB0byBlZGl0LiBHcmlkIGxpbmVzIGFyZSBlbmFibGVkIGJ5IGRlZmF1bHQuPC9wPgogICAgICAgIDxkZWVzLXRhYmxlCiAgICAgICAgICBoZWFkaW5nMT0iQ3VycmVudCBBY2NvdW50IFN0YXRlbWVudCIKICAgICAgICAgIGhlYWRpbmcyPSJCdW5xIC0gUGF5bWVudCBBY2NvdW50IDIgLSBBcHJpbCAyMDIxIgogICAgICAgICAgLmVkaXRhYmxlRmllbGRzPSIke1siZGVzY3JpcHRpb24iXX0iCiAgICAgICAgICAuZGF0YT0ke1t7ZGF0ZToiMjAyMS0wNC0wMSIsYW1vdW50OiIyNDY0LjY1IFx1MjBBQyIsZGVzY3JpcHRpb246IlByaW50aW5nIFBhcGVyIChPZmZpY2UgU3VwcGxpZXMpIC0gU1RBUExFUyBCUkVNRU4ifSx7ZGF0ZToiMjAyMS0wNC0wMiIsYW1vdW50OiIxNjUuNjUgXHUyMEFDIixkZXNjcmlwdGlvbjoiTG9naXRlY2ggTW91c2UgKEhhcmR3YXJlKSAtIGxvZ2kuY29tIE9ubGluZVNob3AifSx7ZGF0ZToiMjAyMS0wNC0wMyIsYW1vdW50OiIyOTk5LDAwIFx1MjBBQyIsZGVzY3JpcHRpb246Ik1hY2Jvb2sgUHJvIDE2aW5jaCAoSGFyZHdhcmUpIC0gQXBwbGUuZGUgT25saW5lU2hvcCJ9LHtkYXRlOiIyMDIxLTA0LTAxIixhbW91bnQ6IjI0NjQuNjUgXHUyMEFDIixkZXNjcmlwdGlvbjoiT2ZmaWNlLVN1cHBsaWVzIC0gU1RBUExFUyBCUkVNRU4ifSx7ZGF0ZToiMjAyMS0wNC0wMSIsYW1vdW50OiIyNDY0LjY1IFx1MjBBQyIsZGVzY3JpcHRpb246Ik9mZmljZS1TdXBwbGllcyAtIFNUQVBMRVMgQlJFTUVOIn1dfQogICAgICAgICAgZGF0YU5hbWU9InRyYW5zYWN0aW9ucyIKICAgICAgICAgIC5kYXRhQWN0aW9ucz0iJHtbe25hbWU6InVwbG9hZCIsaWNvbk5hbWU6ImJlbGwiLHVzZVRhYmxlQmVoYXZpb3VyOiJ1cGxvYWQiLHR5cGU6WyJpblJvdyJdLGFjdGlvbkZ1bmM6YXN5bmMgZT0+e2FsZXJ0KGUuaXRlbS5hbW91bnQpfX0se25hbWU6InZpc2liaWxpdHkiLGljb25OYW1lOiJjb3B5Iix0eXBlOlsiaW5Sb3ciXSx1c2VUYWJsZUJlaGF2aW91cjoicHJldmlldyIsYWN0aW9uRnVuYzphc3luYyBlPT57fX0se25hbWU6ImNyZWF0ZSBuZXciLGljb25OYW1lOiJpbnN0YWdyYW0iLHR5cGU6WyJoZWFkZXIiXSx1c2VUYWJsZUJlaGF2aW91cjoicHJldmlldyIsYWN0aW9uRnVuYzphc3luYyBlPT57fX0se25hbWU6InRvIGdhbGxlcnkiLGljb25OYW1lOiJtZXNzYWdlIix0eXBlOlsiZm9vdGVyIl0sdXNlVGFibGVCZWhhdmlvdXI6InByZXZpZXciLGFjdGlvbkZ1bmM6YXN5bmMgZT0+e319LHtuYW1lOiJjb3B5IixpY29uTmFtZToiY29weVNvbGlkIix0eXBlOlsiY29udGV4dG1lbnUiLCJpblJvdyJdLGFjdGlvbjphc3luYygpPT5udWxsfSx7bmFtZToiZWRpdCAoZnJvbSBkZW1vKSIsaWNvbk5hbWU6InBlblRvU3F1YXJlIix0eXBlOlsiY29udGV4dG1lbnUiXSxhY3Rpb246YXN5bmMoKT0+bnVsbH0se25hbWU6InBhc3RlIixpY29uTmFtZToicGFzdGVTb2xpZCIsdHlwZTpbImNvbnRleHRtZW51Il0sYWN0aW9uOmFzeW5jKCk9Pm51bGx9LHtuYW1lOiJwcmV2aWV3Iix0eXBlOlsiZG91YmxlQ2xpY2siLCJjb250ZXh0bWVudSJdLGljb25OYW1lOiJleWUiLGFjdGlvbkZ1bmM6YXN5bmMgZT0+KGFsZXJ0KGUuaXRlbS5hbW91bnQpLG51bGwpfV19IgogICAgICAgID48L2RlZXMtdGFibGU+CiAgICAgIDwvZGl2PgogICAgICAKICAgICAgPGRpdiBjbGFzcz0iZGVtby1zZWN0aW9uIj4KICAgICAgICA8aDIgY2xhc3M9ImRlbW8tdGl0bGUiPlRhYmxlIHdpdGggVmVydGljYWwgTGluZXM8L2gyPgogICAgICAgIDxwIGNsYXNzPSJkZW1vLWRlc2NyaXB0aW9uIj5FbmhhbmNlZCBjb2x1bW4gc2VwYXJhdGlvbiBmb3IgYmV0dGVyIGRhdGEgdHJhY2tpbmcuPC9wPgogICAgICAgIDxkZWVzLXRhYmxlCiAgICAgICAgICBoZWFkaW5nMT0iUHJvZHVjdCBJbnZlbnRvcnkiCiAgICAgICAgICBoZWFkaW5nMj0iQ3VycmVudCBzdG9jayBsZXZlbHMgYWNyb3NzIHdhcmVob3VzZXMiCiAgICAgICAgICAuc2hvd1ZlcnRpY2FsTGluZXM9JHshMH0KICAgICAgICAgIC5kYXRhPSR7W3twcm9kdWN0OidNYWNCb29rIFBybyAxNiInLHdhcmVob3VzZV9hOiI0NSIsd2FyZWhvdXNlX2I6IjMyIix3YXJlaG91c2VfYzoiMjgiLHRvdGFsOiIxMDUiLHN0YXR1czoiXHUyNzEzIEluIFN0b2NrIn0se3Byb2R1Y3Q6ImlQaG9uZSAxNSBQcm8iLHdhcmVob3VzZV9hOiIxMjAiLHdhcmVob3VzZV9iOiI4OSIsd2FyZWhvdXNlX2M6IjE1NiIsdG90YWw6IjM2NSIsc3RhdHVzOiJcdTI3MTMgSW4gU3RvY2sifSx7cHJvZHVjdDoiQWlyUG9kcyBQcm8iLHdhcmVob3VzZV9hOiIwIix3YXJlaG91c2VfYjoiMTIiLHdhcmVob3VzZV9jOiI1Iix0b3RhbDoiMTciLHN0YXR1czoiXHUyNkEwIExvdyBTdG9jayJ9LHtwcm9kdWN0OiJpUGFkIEFpciIsd2FyZWhvdXNlX2E6IjIzIix3YXJlaG91c2VfYjoiNDUiLHdhcmVob3VzZV9jOiI2NyIsdG90YWw6IjEzNSIsc3RhdHVzOiJcdTI3MTMgSW4gU3RvY2sifV19CiAgICAgICAgICBkYXRhTmFtZT0icHJvZHVjdHMiCiAgICAgICAgPjwvZGVlcy10YWJsZT4KICAgICAgPC9kaXY+CiAgICAgIAogICAgICA8ZGl2IGNsYXNzPSJkZW1vLXNlY3Rpb24iPgogICAgICAgIDxoMiBjbGFzcz0iZGVtby10aXRsZSI+VGFibGUgd2l0aCBGdWxsIEdyaWQ8L2gyPgogICAgICAgIDxwIGNsYXNzPSJkZW1vLWRlc2NyaXB0aW9uIj5Db21wbGV0ZSBncmlkIGxpbmVzIGZvciBtYXhpbXVtIHJlYWRhYmlsaXR5IGFuZCBzdHJ1Y3R1cmUuPC9wPgogICAgICAgIDxkZWVzLXRhYmxlCiAgICAgICAgICBoZWFkaW5nMT0iU2VydmVyIE1vbml0b3JpbmcgRGFzaGJvYXJkIgogICAgICAgICAgaGVhZGluZzI9IlJlYWwtdGltZSBtZXRyaWNzIGFjcm9zcyByZWdpb25zIgogICAgICAgICAgLnNob3dHcmlkPSR7ITB9CiAgICAgICAgICAuZGF0YT0ke1t7c2VydmVyOiJBUEktMSIscmVnaW9uOiJVUy1FYXN0IixjcHU6IjQ1JSIsbWVtb3J5OiI2MiUiLGRpc2s6Ijc4JSIsbGF0ZW5jeToiMTJtcyIsdXB0aW1lOiI5OS45JSIsc3RhdHVzOiJcdXsxRjdFMn0gSGVhbHRoeSJ9LHtzZXJ2ZXI6IkFQSS0yIixyZWdpb246IkVVLVdlc3QiLGNwdToiMzglIixtZW1vcnk6IjU1JSIsZGlzazoiNDUlIixsYXRlbmN5OiIyNW1zIix1cHRpbWU6Ijk5LjglIixzdGF0dXM6Ilx1ezFGN0UyfSBIZWFsdGh5In0se3NlcnZlcjoiREItTWFzdGVyIixyZWdpb246IlVTLUVhc3QiLGNwdToiNzIlIixtZW1vcnk6IjgxJSIsZGlzazoiOTIlIixsYXRlbmN5OiI4bXMiLHVwdGltZToiMTAwJSIsc3RhdHVzOiJcdXsxRjdFMX0gV2FybmluZyJ9LHtzZXJ2ZXI6IkRCLVJlcGxpY2EiLHJlZ2lvbjoiRVUtV2VzdCIsY3B1OiIyMyUiLG1lbW9yeToiMzQlIixkaXNrOiI0NSUiLGxhdGVuY3k6IjE1bXMiLHVwdGltZToiOTkuNyUiLHN0YXR1czoiXHV7MUY3RTJ9IEhlYWx0aHkifSx7c2VydmVyOiJDYWNoZS0xIixyZWdpb246IkFQLVNvdXRoIixjcHU6Ijg5JSIsbWVtb3J5OiI5MiUiLGRpc2s6IjEyJSIsbGF0ZW5jeToiMTIwbXMiLHVwdGltZToiOTguNSUiLHN0YXR1czoiXHV7MUY1MzR9IENyaXRpY2FsIn1dfQogICAgICAgICAgZGF0YU5hbWU9InNlcnZlcnMiCiAgICAgICAgICAuZGF0YUFjdGlvbnM9IiR7W3tuYW1lOiJTU0ggQ29ubmVjdCIsaWNvbk5hbWU6Imx1Y2lkZTp0ZXJtaW5hbCIsdHlwZTpbImluUm93Il0sYWN0aW9uRnVuYzphc3luYyBlPT57Y29uc29sZS5sb2coIkNvbm5lY3RpbmcgdG86IixlLml0ZW0uc2VydmVyKX19LHtuYW1lOiJWaWV3IExvZ3MiLGljb25OYW1lOiJsdWNpZGU6ZmlsZS10ZXh0Iix0eXBlOlsiaW5Sb3ciLCJjb250ZXh0bWVudSJdLGFjdGlvbkZ1bmM6YXN5bmMgZT0+e2NvbnNvbGUubG9nKCJWaWV3aW5nIGxvZ3MgZm9yOiIsZS5pdGVtLnNlcnZlcil9fSx7bmFtZToiUmVzdGFydCBTZXJ2ZXIiLGljb25OYW1lOiJsdWNpZGU6cmVmcmVzaC1jdyIsdHlwZTpbImNvbnRleHRtZW51Il0sYWN0aW9uRnVuYzphc3luYyBlPT57Y29uc29sZS5sb2coIlJlc3RhcnRpbmc6IixlLml0ZW0uc2VydmVyKX19XX0iCiAgICAgICAgPjwvZGVlcy10YWJsZT4KICAgICAgPC9kaXY+CiAgICAgIAogICAgICA8ZGl2IGNsYXNzPSJkZW1vLXNlY3Rpb24iPgogICAgICAgIDxoMiBjbGFzcz0iZGVtby10aXRsZSI+VGFibGUgd2l0aCBIb3Jpem9udGFsIExpbmVzIE9ubHk8L2gyPgogICAgICAgIDxwIGNsYXNzPSJkZW1vLWRlc2NyaXB0aW9uIj5FbXBoYXNpcyBvbiByb3cgc2VwYXJhdGlvbiB3aXRob3V0IGNvbHVtbiBkaXZpZGVycy48L3A+CiAgICAgICAgPGRlZXMtdGFibGUKICAgICAgICAgIGhlYWRpbmcxPSJTYWxlcyBQZXJmb3JtYW5jZSIKICAgICAgICAgIGhlYWRpbmcyPSJUb3AgcGVyZm9ybWVycyB0aGlzIHF1YXJ0ZXIiCiAgICAgICAgICAuc2hvd0hvcml6b250YWxMaW5lcz0keyEwfQogICAgICAgICAgLnNob3dWZXJ0aWNhbExpbmVzPSR7ITF9CiAgICAgICAgICAuZGF0YT0ke1t7c2FsZXNwZXJzb246IkVtaWx5IEpvaG5zb24iLHJlZ2lvbjoiTm9ydGggQW1lcmljYSIsZGVhbHNfY2xvc2VkOiI0MiIscmV2ZW51ZToiJDEuMk0iLHF1b3RhX2FjaGlldmVtZW50OiIxMjglIixyYXRpbmc6Ilx1MkI1MFx1MkI1MFx1MkI1MFx1MkI1MFx1MkI1MCJ9LHtzYWxlc3BlcnNvbjoiTWljaGFlbCBDaGVuIixyZWdpb246IkFzaWEgUGFjaWZpYyIsZGVhbHNfY2xvc2VkOiIzOCIscmV2ZW51ZToiJDk4MEsiLHF1b3RhX2FjaGlldmVtZW50OiIxMTUlIixyYXRpbmc6Ilx1MkI1MFx1MkI1MFx1MkI1MFx1MkI1MFx1MkI1MCJ9LHtzYWxlc3BlcnNvbjoiU2FyYWggV2lsbGlhbXMiLHJlZ2lvbjoiRXVyb3BlIixkZWFsc19jbG9zZWQ6IjM1IixyZXZlbnVlOiIkODc1SyIscXVvdGFfYWNoaWV2ZW1lbnQ6IjEwOCUiLHJhdGluZzoiXHUyQjUwXHUyQjUwXHUyQjUwXHUyQjUwIn0se3NhbGVzcGVyc29uOiJEYXZpZCBHYXJjaWEiLHJlZ2lvbjoiTGF0aW4gQW1lcmljYSIsZGVhbHNfY2xvc2VkOiIzMSIscmV2ZW51ZToiJDc1MEsiLHF1b3RhX2FjaGlldmVtZW50OiI5NSUiLHJhdGluZzoiXHUyQjUwXHUyQjUwXHUyQjUwXHUyQjUwIn1dfQogICAgICAgICAgZGF0YU5hbWU9InNhbGVzIHJlcHMiCiAgICAgICAgPjwvZGVlcy10YWJsZT4KICAgICAgPC9kaXY+CiAgICAgIAogICAgICA8ZGl2IGNsYXNzPSJkZW1vLXNlY3Rpb24iPgogICAgICAgIDxoMiBjbGFzcz0iZGVtby10aXRsZSI+U2ltcGxlIFRhYmxlIChObyBHcmlkKTwvaDI+CiAgICAgICAgPHAgY2xhc3M9ImRlbW8tZGVzY3JpcHRpb24iPkNsZWFuLCBtaW5pbWFsIGRlc2lnbiB3aXRob3V0IGdyaWQgbGluZXMuIFNldCBzaG93R3JpZCB0byBmYWxzZSB0byBkaXNhYmxlIHRoZSBkZWZhdWx0IGdyaWQuPC9wPgogICAgICAgIDxkZWVzLXRhYmxlCiAgICAgICAgICBoZWFkaW5nMT0iVGVhbSBNZW1iZXJzIgogICAgICAgICAgaGVhZGluZzI9IkVuZ2luZWVyaW5nIERlcGFydG1lbnQiCiAgICAgICAgICAuc2hvd0dyaWQ9JHshMX0KICAgICAgICAgIC5kYXRhPSR7W3tuYW1lOiJBbGljZSBKb2huc29uIixyb2xlOiJMZWFkIEVuZ2luZWVyIixlbWFpbDoiYWxpY2VAY29tcGFueS5jb20iLGxvY2F0aW9uOiJTYW4gRnJhbmNpc2NvIixqb2luZWQ6IjIwMjAtMDMtMTUifSx7bmFtZToiQm9iIFNtaXRoIixyb2xlOiJTZW5pb3IgRGV2ZWxvcGVyIixlbWFpbDoiYm9iQGNvbXBhbnkuY29tIixsb2NhdGlvbjoiTmV3IFlvcmsiLGpvaW5lZDoiMjAxOS0wNy0yMiJ9LHtuYW1lOiJDaGFybGllIERhdmlzIixyb2xlOiJEZXZPcHMgRW5naW5lZXIiLGVtYWlsOiJjaGFybGllQGNvbXBhbnkuY29tIixsb2NhdGlvbjoiTG9uZG9uIixqb2luZWQ6IjIwMjEtMDEtMTAifSx7bmFtZToiRGlhbmEgTWFydGluZXoiLHJvbGU6IkZyb250ZW5kIERldmVsb3BlciIsZW1haWw6ImRpYW5hQGNvbXBhbnkuY29tIixsb2NhdGlvbjoiQmFyY2Vsb25hIixqb2luZWQ6IjIwMjItMDUtMTgifV19CiAgICAgICAgICBkYXRhTmFtZT0idGVhbSBtZW1iZXJzIgogICAgICAgID48L2RlZXMtdGFibGU+CiAgICAgIDwvZGl2PgogICAgICAKICAgICAgPGRpdiBjbGFzcz0iZGVtby1zZWN0aW9uIj4KICAgICAgICA8aDIgY2xhc3M9ImRlbW8tdGl0bGUiPlRhYmxlIHdpdGggQ3VzdG9tIERpc3BsYXkgRnVuY3Rpb248L2gyPgogICAgICAgIDxwIGNsYXNzPSJkZW1vLWRlc2NyaXB0aW9uIj5UcmFuc2Zvcm0gZGF0YSBmb3IgZGlzcGxheSB1c2luZyBjdXN0b20gZm9ybWF0dGluZy48L3A+CiAgICAgICAgPGRlZXMtdGFibGUKICAgICAgICAgIGhlYWRpbmcxPSJTYWxlcyBSZXBvcnQiCiAgICAgICAgICBoZWFkaW5nMj0iUTQgMjAyMyBQZXJmb3JtYW5jZSIKICAgICAgICAgIC5kYXRhPSR7W3twcm9kdWN0OiJFbnRlcnByaXNlIExpY2Vuc2UiLHVuaXRzOjQ1LHJldmVudWU6MjI1ZTMsZ3Jvd3RoOi4yMyxmb3JlY2FzdDoyOGU0fSx7cHJvZHVjdDoiUHJvZmVzc2lvbmFsIExpY2Vuc2UiLHVuaXRzOjEyOCxyZXZlbnVlOjEyOGUzLGdyb3d0aDouMTUsZm9yZWNhc3Q6MTQ3ZTN9LHtwcm9kdWN0OiJTdGFydGVyIExpY2Vuc2UiLHVuaXRzOjM0MixyZXZlbnVlOjY4NDAwLGdyb3d0aDouNDIsZm9yZWNhc3Q6OTdlM31dfQogICAgICAgICAgLmRpc3BsYXlGdW5jdGlvbj0ke2U9Pih7UHJvZHVjdDplLnByb2R1Y3QsIlVuaXRzIFNvbGQiOmUudW5pdHMudG9Mb2NhbGVTdHJpbmcoKSxSZXZlbnVlOiIkIitlLnJldmVudWUudG9Mb2NhbGVTdHJpbmcoKSxHcm93dGg6KGUuZ3Jvd3RoKjEwMCkudG9GaXhlZCgxKSsiJSIsIlExIDIwMjQgRm9yZWNhc3QiOiIkIitlLmZvcmVjYXN0LnRvTG9jYWxlU3RyaW5nKCl9KX0KICAgICAgICAgIGRhdGFOYW1lPSJwcm9kdWN0cyIKICAgICAgICA+PC9kZWVzLXRhYmxlPgogICAgICA8L2Rpdj4KICAgICAgCiAgICAgIDxkaXYgY2xhc3M9ImRlbW8tc2VjdGlvbiI+CiAgICAgICAgPGgyIGNsYXNzPSJkZW1vLXRpdGxlIj5FbXB0eSBUYWJsZSBTdGF0ZTwvaDI+CiAgICAgICAgPHAgY2xhc3M9ImRlbW8tZGVzY3JpcHRpb24iPkhvdyB0aGUgdGFibGUgbG9va3Mgd2hlbiBubyBkYXRhIGlzIGF2YWlsYWJsZS48L3A+CiAgICAgICAgPGRlZXMtdGFibGUKICAgICAgICAgIGhlYWRpbmcxPSJObyBEYXRhIEF2YWlsYWJsZSIKICAgICAgICAgIGhlYWRpbmcyPSJUaGlzIHRhYmxlIGlzIGN1cnJlbnRseSBlbXB0eSIKICAgICAgICAgIC5kYXRhPSR7W119CiAgICAgICAgICBkYXRhTmFtZT0iaXRlbXMiCiAgICAgICAgPjwvZGVlcy10YWJsZT4KICAgICAgPC9kaXY+CgogICAgICA8ZGl2IGNsYXNzPSJkZW1vLXNlY3Rpb24iPgogICAgICAgIDxoMiBjbGFzcz0iZGVtby10aXRsZSI+U2NoZW1hLUZpcnN0IENvbHVtbnMgKE5ldyk8L2gyPgogICAgICAgIDxwIGNsYXNzPSJkZW1vLWRlc2NyaXB0aW9uIj5EZWZpbmVzIGNvbHVtbnMgZXhwbGljaXRseSBhbmQgcmVuZGVycyB2aWEgc2NoZW1hLiBObyBkaXNwbGF5RnVuY3Rpb24gbmVlZGVkLjwvcD4KICAgICAgICA8ZGVlcy10YWJsZQogICAgICAgICAgaGVhZGluZzE9IlVzZXJzIChTY2hlbWEtRmlyc3QpIgogICAgICAgICAgaGVhZGluZzI9IkNvbHVtbnMgZGVmaW5lIHJlbmRlcmluZyBhbmQgb3JkZXIiCiAgICAgICAgICAuY29sdW1ucz0ke1t7a2V5OiJuYW1lIixoZWFkZXI6Ik5hbWUiLHNvcnRhYmxlOiEwfSx7a2V5OiJlbWFpbCIsaGVhZGVyOiJFbWFpbCIscmVuZGVyZXI6ZT0+Q2A8ZGVlcy1iYWRnZT4ke2V9PC9kZWVzLWJhZGdlPmB9LHtrZXk6ImpvaW5lZEF0IixoZWFkZXI6IkpvaW5lZCIscmVuZGVyZXI6ZT0+bmV3IERhdGUoZSkudG9Mb2NhbGVEYXRlU3RyaW5nKCl9XX0KICAgICAgICAgIC5kYXRhPSR7W3tuYW1lOiJBbGljZSIsZW1haWw6ImFsaWNlQGV4YW1wbGUuY29tIixqb2luZWRBdDoiMjAyMi0wOC0wMSJ9LHtuYW1lOiJCb2IiLGVtYWlsOiJib2JAZXhhbXBsZS5jb20iLGpvaW5lZEF0OiIyMDIxLTEyLTExIn0se25hbWU6IkNhcm9sIixlbWFpbDoiY2Fyb2xAZXhhbXBsZS5jb20iLGpvaW5lZEF0OiIyMDIzLTAzLTIyIn1dfQogICAgICAgICAgZGF0YU5hbWU9InVzZXJzIgogICAgICAgID48L2RlZXMtdGFibGU+CiAgICAgIDwvZGl2PgoKICAgICAgPGRpdiBjbGFzcz0iZGVtby1zZWN0aW9uIj4KICAgICAgICA8aDIgY2xhc3M9ImRlbW8tdGl0bGUiPlBhcnRpYWwgU2NoZW1hICsgQXVnbWVudCAoTmV3KTwvaDI+CiAgICAgICAgPHAgY2xhc3M9ImRlbW8tZGVzY3JpcHRpb24iPlByb3ZpZGVzIG9ubHkgdGhlIGltcG9ydGFudCBjb2x1bW5zOyB0aGUgcmVzdCBhcmUgbWVyZ2VkIGluIGZyb20gZGlzcGxheUZ1bmN0aW9uLjwvcD4KICAgICAgICA8ZGVlcy10YWJsZQogICAgICAgICAgaGVhZGluZzE9IlVzZXJzIChQYXJ0aWFsICsgQXVnbWVudCkiCiAgICAgICAgICBoZWFkaW5nMj0iTWlzc2luZyBjb2x1bW5zIGFyZSBkZXJpdmVkIgogICAgICAgICAgLmNvbHVtbnM9JHtbe2tleToibmFtZSIsaGVhZGVyOiJOYW1lIixzb3J0YWJsZTohMH1dfQogICAgICAgICAgLmRpc3BsYXlGdW5jdGlvbj0ke2U9Pih7bmFtZTplLm5hbWUsZW1haWw6ZS5lbWFpbCxyb2xlOmUucm9sZX0pfQogICAgICAgICAgLmF1Z21lbnRGcm9tRGlzcGxheUZ1bmN0aW9uPSR7ITB9CiAgICAgICAgICAuZGF0YT0ke1t7bmFtZToiRXJpbiIsZW1haWw6ImVyaW5AZXhhbXBsZS5jb20iLHJvbGU6IkFkbWluIn0se25hbWU6IkZpbm4iLGVtYWlsOiJmaW5uQGV4YW1wbGUuY29tIixyb2xlOiJVc2VyIn0se25hbWU6IkdpbmEiLGVtYWlsOiJnaW5hQGV4YW1wbGUuY29tIixyb2xlOiJVc2VyIn1dfQogICAgICAgICAgZGF0YU5hbWU9InVzZXJzIgogICAgICAgID48L2RlZXMtdGFibGU+CiAgICAgIDwvZGl2PgoKICAgICAgPGRpdiBjbGFzcz0iZGVtby1zZWN0aW9uIiAKICAgICAgICAgICBAc2VsZWN0aW9uQ2hhbmdlPSR7ZT0+e2NvbnNvbGUubG9nKCJTZWxlY3Rpb24gY2hhbmdlZCIsZS5kZXRhaWwpfX0KICAgICAgICAgICBAc2VhcmNoLWNoYW5nZWQ9JHtlPT57bGV0IHQ9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInRhYmxlRmlsdGVyU2VsZWN0RGVtbyIpO3QmJnQuc2V0RmlsdGVyVGV4dChlLmRldGFpbC52YWx1ZSl9fQogICAgICAgICAgIEBzZWFyY2gtc3VibWl0PSR7ZT0+e2xldCB0PWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ0YWJsZUZpbHRlclNlbGVjdERlbW8iKTt0JiZ0LnNldEZpbHRlclRleHQoZS5kZXRhaWwudmFsdWUpfX0KICAgICAgPgogICAgICAgIDxoMiBjbGFzcz0iZGVtby10aXRsZSI+RmlsdGVyaW5nICsgTXVsdGktU2VsZWN0aW9uIChOZXcpPC9oMj4KICAgICAgICA8cCBjbGFzcz0iZGVtby1kZXNjcmlwdGlvbiI+VXNlIHRoZSBzZWFyY2ggYmFyIHRvIGZpbHRlciByb3dzOyB0b2dnbGUgc2VsZWN0aW9uIHZpYSBjaGVja2JveGVzLiBDbGljayBoZWFkZXJzIHRvIHNvcnQuPC9wPgogICAgICAgIDxkZWVzLXNlYXJjaGJhcj48L2RlZXMtc2VhcmNoYmFyPgogICAgICAgIDxkaXYgc3R5bGU9ImhlaWdodDogMTJweCI+PC9kaXY+CiAgICAgICAgPGRlZXMtdGFibGUKICAgICAgICAgIGlkPSJ0YWJsZUZpbHRlclNlbGVjdERlbW8iCiAgICAgICAgICBoZWFkaW5nMT0iSW52ZW50b3J5IChGaWx0ZXIgKyBTZWxlY3QpIgogICAgICAgICAgaGVhZGluZzI9IlRyeSB0eXBpbmcgdG8gZmlsdGVyIGFuZCBzZWxlY3RpbmcgbXVsdGlwbGUgcm93cyIKICAgICAgICAgIC5zZWxlY3Rpb25Nb2RlPSR7Im11bHRpIn0KICAgICAgICAgIC5yb3dLZXk9JHsic2t1In0KICAgICAgICAgIC5jb2x1bW5zPSR7W3trZXk6InNrdSIsaGVhZGVyOiJTS1UiLHNvcnRhYmxlOiEwfSx7a2V5OiJuYW1lIixoZWFkZXI6Ik5hbWUiLHNvcnRhYmxlOiEwfSx7a2V5OiJzdG9jayIsaGVhZGVyOiJTdG9jayIsc29ydGFibGU6ITB9XX0KICAgICAgICAgIC5kYXRhPSR7W3tza3U6IkEtMTAwIixuYW1lOiJVU0ItQyBDYWJsZSIsc3RvY2s6MTIwfSx7c2t1OiJBLTEwMSIsbmFtZToiV2lyZWxlc3MgTW91c2UiLHN0b2NrOjU1fSx7c2t1OiJBLTEwMiIsbmFtZToiTGFwdG9wIFN0YW5kIixzdG9jazoxOH0se3NrdToiQi0yMDAiLG5hbWU6IktleWJvYXJkIChJU08pIixzdG9jazo4OX0se3NrdToiQi0yMDEiLG5hbWU6IkhETUkgQWRhcHRlciIsc3RvY2s6MH0se3NrdToiQy0zMDAiLG5hbWU6IldlYmNhbSAxMDgwcCIsc3RvY2s6NDJ9XX0KICAgICAgICAgIGRhdGFOYW1lPSJpdGVtcyIKICAgICAgICA+PC9kZWVzLXRhYmxlPgogICAgICA8L2Rpdj4KCiAgICAgIDxkaXYgY2xhc3M9ImRlbW8tc2VjdGlvbiI+CiAgICAgICAgPGgyIGNsYXNzPSJkZW1vLXRpdGxlIj5Db2x1bW4gRmlsdGVycyArIFN0aWNreSBIZWFkZXIgKE5ldyk8L2gyPgogICAgICAgIDxwIGNsYXNzPSJkZW1vLWRlc2NyaXB0aW9uIj5QZXItY29sdW1uIHF1aWNrIGZpbHRlcnMgYW5kIHN0aWNreSBoZWFkZXIgd2l0aCBpbnRlcm5hbCBzY3JvbGwuIFRyeSBmaWx0ZXJpbmcgdGhlIE5hbWUgY29sdW1uLiBVc2VzIC0tdGFibGUtbWF4LWhlaWdodCB2YXIuPC9wPgogICAgICAgIDxzdHlsZT4KICAgICAgICAgIGRlZXMtdGFibGVbc3RpY2t5LWhlYWRlcl0geyAtLXRhYmxlLW1heC1oZWlnaHQ6IDIyMHB4OyB9CiAgICAgICAgPC9zdHlsZT4KICAgICAgICA8ZGVlcy10YWJsZQogICAgICAgICAgaGVhZGluZzE9IkVtcGxveWVlcyIKICAgICAgICAgIGhlYWRpbmcyPSJRdWljayBmaWx0ZXIgcGVyIGNvbHVtbiArIHN0aWNreSBoZWFkZXIiCiAgICAgICAgICAuc2hvd0NvbHVtbkZpbHRlcnM9JHshMH0KICAgICAgICAgIC5zdGlja3lIZWFkZXI9JHshMH0KICAgICAgICAgIC5jb2x1bW5zPSR7W3trZXk6Im5hbWUiLGhlYWRlcjoiTmFtZSIsc29ydGFibGU6ITB9LHtrZXk6ImVtYWlsIixoZWFkZXI6IkVtYWlsIixzb3J0YWJsZTohMH0se2tleToiZGVwYXJ0bWVudCIsaGVhZGVyOiJEZXBhcnRtZW50Iixzb3J0YWJsZTohMH1dfQogICAgICAgICAgLmRhdGE9JHtbe25hbWU6IkFsaWNlIEpvaG5zb24iLGVtYWlsOiJhbGljZUBjb3JwLmNvbSIsZGVwYXJ0bWVudDoiRW5naW5lZXJpbmcifSx7bmFtZToiQm9iIFNtaXRoIixlbWFpbDoiYm9iQGNvcnAuY29tIixkZXBhcnRtZW50OiJTYWxlcyJ9LHtuYW1lOiJDaGFybGllIERhdmlzIixlbWFpbDoiY2hhcmxpZUBjb3JwLmNvbSIsZGVwYXJ0bWVudDoiSFIifSx7bmFtZToiRGlhbmEgTWFydGluZXoiLGVtYWlsOiJkaWFuYUBjb3JwLmNvbSIsZGVwYXJ0bWVudDoiRW5naW5lZXJpbmcifSx7bmFtZToiRXRoYW4gQnJvd24iLGVtYWlsOiJldGhhbkBjb3JwLmNvbSIsZGVwYXJ0bWVudDoiRmluYW5jZSJ9LHtuYW1lOiJGaW9uYSBDbGFyayIsZW1haWw6ImZpb25hQGNvcnAuY29tIixkZXBhcnRtZW50OiJTYWxlcyJ9LHtuYW1lOiJHcmFjZSBMZWUiLGVtYWlsOiJncmFjZUBjb3JwLmNvbSIsZGVwYXJ0bWVudDoiRW5naW5lZXJpbmcifSx7bmFtZToiSGVucnkgV2lsc29uIixlbWFpbDoiaGVucnlAY29ycC5jb20iLGRlcGFydG1lbnQ6Ik1hcmtldGluZyJ9LHtuYW1lOiJJcmVuZSBXYWxrZXIiLGVtYWlsOiJpcmVuZUBjb3JwLmNvbSIsZGVwYXJ0bWVudDoiRmluYW5jZSJ9LHtuYW1lOiJKYWNrIFR1cm5lciIsZW1haWw6ImphY2tAY29ycC5jb20iLGRlcGFydG1lbnQ6IlN1cHBvcnQifV19CiAgICAgICAgICBkYXRhTmFtZT0iZW1wbG95ZWVzIgogICAgICAgID48L2RlZXMtdGFibGU+CiAgICAgIDwvZGl2PgoKICAgICAgPGRpdiBjbGFzcz0iZGVtby1zZWN0aW9uIgogICAgICAgIEBzZWFyY2hSZXF1ZXN0PSR7YXN5bmMgZT0+e2xldHtxdWVyeTp0fT1lLmRldGFpbHx8e3F1ZXJ5OiIifSxyPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJzZXJ2ZXJTZWFyY2hEZW1vIiksaT1be2lkOjEsbmFtZToiQWxpY2UiLGNpdHk6IkJlcmxpbiIsdGl0bGU6IkVuZ2luZWVyIn0se2lkOjIsbmFtZToiQm9iIixjaXR5OiJQYXJpcyIsdGl0bGU6IkRlc2lnbmVyIn0se2lkOjMsbmFtZToiQ2hhcmxpZSIsY2l0eToiTG9uZG9uIix0aXRsZToiTWFuYWdlciJ9LHtpZDo0LG5hbWU6IkRpYW5hIixjaXR5OiJNYWRyaWQiLHRpdGxlOiJFbmdpbmVlciJ9LHtpZDo1LG5hbWU6IkV0aGFuIixjaXR5OiJSb21lIix0aXRsZToiU3VwcG9ydCJ9XTthd2FpdCBuZXcgUHJvbWlzZShvPT5zZXRUaW1lb3V0KG8sMzAwKSk7bGV0IGE9U3RyaW5nKHR8fCIiKS50b0xvd2VyQ2FzZSgpLG49YT9pLmZpbHRlcihvPT5PYmplY3QudmFsdWVzKG8pLnNvbWUocz0+U3RyaW5nKHMpLnRvTG93ZXJDYXNlKCkuaW5jbHVkZXMoYSkpKTppO3IuZGF0YT1ufX0KICAgICAgPgogICAgICAgIDxoMiBjbGFzcz0iZGVtby10aXRsZSI+U2VydmVyIFNlYXJjaCAoTmV3KTwvaDI+CiAgICAgICAgPHAgY2xhc3M9ImRlbW8tZGVzY3JpcHRpb24iPlNlbGVjdCBTZXJ2ZXIgbW9kZSwgdHlwZSBhIHF1ZXJ5LCBhbmQgd2F0Y2ggdGhlIHRhYmxlIGZldGNoIHNpbXVsYXRlZCByZXN1bHRzLjwvcD4KICAgICAgICA8ZGVlcy10YWJsZQogICAgICAgICAgaWQ9InNlcnZlclNlYXJjaERlbW8iCiAgICAgICAgICBoZWFkaW5nMT0iUGVvcGxlIChTZXJ2ZXIgU2VhcmNoKSIKICAgICAgICAgIGhlYWRpbmcyPSJDbGljayBTZWFyY2gsIGNob29zZSBTZXJ2ZXIgbW9kZSwgYW5kIHR5cGUiCiAgICAgICAgICAuY29sdW1ucz0ke1t7a2V5OiJuYW1lIixoZWFkZXI6Ik5hbWUifSx7a2V5OiJjaXR5IixoZWFkZXI6IkNpdHkifSx7a2V5OiJ0aXRsZSIsaGVhZGVyOiJUaXRsZSJ9XX0KICAgICAgICAgIC5kYXRhPSR7W3tpZDoxLG5hbWU6IkFsaWNlIixjaXR5OiJCZXJsaW4iLHRpdGxlOiJFbmdpbmVlciJ9LHtpZDoyLG5hbWU6IkJvYiIsY2l0eToiUGFyaXMiLHRpdGxlOiJEZXNpZ25lciJ9LHtpZDozLG5hbWU6IkNoYXJsaWUiLGNpdHk6IkxvbmRvbiIsdGl0bGU6Ik1hbmFnZXIifSx7aWQ6NCxuYW1lOiJEaWFuYSIsY2l0eToiTWFkcmlkIix0aXRsZToiRW5naW5lZXIifSx7aWQ6NSxuYW1lOiJFdGhhbiIsY2l0eToiUm9tZSIsdGl0bGU6IlN1cHBvcnQifV19CiAgICAgICAgICBkYXRhTmFtZT0icGVvcGxlIgogICAgICAgID48L2RlZXMtdGFibGU+CiAgICAgIDwvZGl2PgoKICAgICAgPGRpdiBjbGFzcz0iZGVtby1zZWN0aW9uIj4KICAgICAgICA8aDIgY2xhc3M9ImRlbW8tdGl0bGUiPldpZGUgUHJvcGVydGllcyArIE1hbnkgQWN0aW9uczwvaDI+CiAgICAgICAgPHAgY2xhc3M9ImRlbW8tZGVzY3JpcHRpb24iPkEgdGFibGUgd2l0aCBtYW55IGNvbHVtbnMgYW5kIHJpY2ggYWN0aW9ucyB0byBzdHJlc3MgdGVzdCBsYXlvdXQgYW5kIHN0aWNreSBBY3Rpb25zLjwvcD4KICAgICAgICA8ZGVlcy10YWJsZQogICAgICAgICAgaGVhZGluZzE9IlBlb3BsZSBEaXJlY3RvcnkiCiAgICAgICAgICBoZWFkaW5nMj0iTWFueSBwcm9wZXJ0aWVzIGFuZCBhY3Rpb25zIgogICAgICAgICAgLmNvbHVtbnM9JHtbe2tleToiaWQiLGhlYWRlcjoiSUQiLHNvcnRhYmxlOiEwfSx7a2V5OiJuYW1lIixoZWFkZXI6Ik5hbWUiLHNvcnRhYmxlOiEwfSx7a2V5OiJyb2xlIixoZWFkZXI6IlJvbGUiLHNvcnRhYmxlOiEwfSx7a2V5OiJkZXBhcnRtZW50IixoZWFkZXI6IkRlcGFydG1lbnQiLHNvcnRhYmxlOiEwfSx7a2V5OiJlbWFpbCIsaGVhZGVyOiJFbWFpbCJ9LHtrZXk6InBob25lIixoZWFkZXI6IlBob25lIn0se2tleToibG9jYXRpb24iLGhlYWRlcjoiTG9jYXRpb24iLHNvcnRhYmxlOiEwfSx7a2V5OiJzdGF0dXMiLGhlYWRlcjoiU3RhdHVzIixzb3J0YWJsZTohMH0se2tleToiY3JlYXRlZEF0IixoZWFkZXI6IkNyZWF0ZWQiLHNvcnRhYmxlOiEwfSx7a2V5OiJ1cGRhdGVkQXQiLGhlYWRlcjoiVXBkYXRlZCIsc29ydGFibGU6ITB9LHtrZXk6Imxhc3RMb2dpbiIsaGVhZGVyOiJMYXN0IExvZ2luIixzb3J0YWJsZTohMH0se2tleToicHJvamVjdHMiLGhlYWRlcjoiUHJvamVjdHMifSx7a2V5OiJ0YWdzIixoZWFkZXI6IlRhZ3MifSx7a2V5OiJub3RlcyIsaGVhZGVyOiJOb3RlcyJ9XX0KICAgICAgICAgIC5kYXRhPSR7W3tpZDoxLG5hbWU6IkFsaWNlIEpvaG5zb24iLHJvbGU6IkVuZ2luZWVyIixkZXBhcnRtZW50OiJSJkQiLGVtYWlsOiJhbGljZUBjb3JwLmNvbSIscGhvbmU6IisxIDIwMiA1NTUgMDExMSIsbG9jYXRpb246IkJlcmxpbiIsc3RhdHVzOiJBY3RpdmUiLGNyZWF0ZWRBdDoiMjAyMy0wMS0xMiIsdXBkYXRlZEF0OiIyMDI0LTA1LTAzIixsYXN0TG9naW46IjIwMjQtMTAtMDEiLHByb2plY3RzOjUsdGFnczoidHlwZXNjcmlwdCwgdWkiLG5vdGVzOiJNZW50b3IifSx7aWQ6MixuYW1lOiJCb2IgU21pdGgiLHJvbGU6IkRlc2lnbmVyIixkZXBhcnRtZW50OiJEZXNpZ24iLGVtYWlsOiJib2JAY29ycC5jb20iLHBob25lOiIrMSAyMDIgNTU1IDAxMTIiLGxvY2F0aW9uOiJQYXJpcyIsc3RhdHVzOiJBY3RpdmUiLGNyZWF0ZWRBdDoiMjAyMi0xMS0wNSIsdXBkYXRlZEF0OiIyMDI0LTA0LTEwIixsYXN0TG9naW46IjIwMjQtMDktMjgiLHByb2plY3RzOjgsdGFnczoiZmlnbWEsIGJyYW5kIixub3RlczoiUGFydC10aW1lIn0se2lkOjMsbmFtZToiQ2hhcmxpZSBEYXZpcyIscm9sZToiTWFuYWdlciIsZGVwYXJ0bWVudDoiT3BzIixlbWFpbDoiY2hhcmxpZUBjb3JwLmNvbSIscGhvbmU6IisxIDIwMiA1NTUgMDExMyIsbG9jYXRpb246IkxvbmRvbiIsc3RhdHVzOiJPbiBMZWF2ZSIsY3JlYXRlZEF0OiIyMDIxLTA0LTIxIix1cGRhdGVkQXQ6IjIwMjQtMDItMTUiLGxhc3RMb2dpbjoiMjAyNC0wOC0xMiIscHJvamVjdHM6Myx0YWdzOiJzcmUsIGxlYWRlcnNoaXAiLG5vdGVzOiIifSx7aWQ6NCxuYW1lOiJEaWFuYSBNYXJ0aW5leiIscm9sZToiRW5naW5lZXIiLGRlcGFydG1lbnQ6IlBsYXRmb3JtIixlbWFpbDoiZGlhbmFAY29ycC5jb20iLHBob25lOiIrMSAyMDIgNTU1IDAxMTQiLGxvY2F0aW9uOiJNYWRyaWQiLHN0YXR1czoiQWN0aXZlIixjcmVhdGVkQXQ6IjIwMjAtMDYtMzAiLHVwZGF0ZWRBdDoiMjAyNC0wNi0yNSIsbGFzdExvZ2luOiIyMDI0LTEwLTAyIixwcm9qZWN0czo2LHRhZ3M6Im5vZGUsIGFwaSIsbm90ZXM6Ik9uLWNhbGwifSx7aWQ6NSxuYW1lOiJFdGhhbiBCcm93biIscm9sZToiU3VwcG9ydCIsZGVwYXJ0bWVudDoiQ1MiLGVtYWlsOiJldGhhbkBjb3JwLmNvbSIscGhvbmU6IisxIDIwMiA1NTUgMDExNSIsbG9jYXRpb246IlJvbWUiLHN0YXR1czoiSW5hY3RpdmUiLGNyZWF0ZWRBdDoiMjAxOS0wOS0xOCIsdXBkYXRlZEF0OiIyMDI0LTAzLTA5IixsYXN0TG9naW46IjIwMjQtMDYtMTkiLHByb2plY3RzOjIsdGFnczoiemVuZGVzayIsbm90ZXM6IlJlaGlyZSJ9LHtpZDo2LG5hbWU6IkZpb25hIENsYXJrIixyb2xlOiJRQSIsZGVwYXJ0bWVudDoiUUEiLGVtYWlsOiJmaW9uYUBjb3JwLmNvbSIscGhvbmU6IisxIDIwMiA1NTUgMDExNiIsbG9jYXRpb246IlZpZW5uYSIsc3RhdHVzOiJBY3RpdmUiLGNyZWF0ZWRBdDoiMjAyMi0wMy0xNCIsdXBkYXRlZEF0OiIyMDI0LTAzLTAxIixsYXN0TG9naW46IjIwMjQtMDktMDciLHByb2plY3RzOjcsdGFnczoicGxheXdyaWdodCIsbm90ZXM6IiJ9XX0KICAgICAgICAgIC5kYXRhQWN0aW9ucz0ke1t7bmFtZToiVmlldyIsaWNvbk5hbWU6Imx1Y2lkZTpleWUiLHR5cGU6WyJpblJvdyIsImNvbnRleHRtZW51Il0sYWN0aW9uRnVuYzphc3luYyh7aXRlbTplfSk9Pntjb25zb2xlLmxvZygidmlldyIsZSl9fSx7bmFtZToiRWRpdCIsaWNvbk5hbWU6Imx1Y2lkZTplZGl0Iix0eXBlOlsiaW5Sb3ciLCJjb250ZXh0bWVudSJdLGFjdGlvbkZ1bmM6YXN5bmMoe2l0ZW06ZX0pPT57Y29uc29sZS5sb2coImVkaXQiLGUpfX0se25hbWU6IkRlbGV0ZSIsaWNvbk5hbWU6Imx1Y2lkZTp0cmFzaCIsdHlwZTpbImluUm93IiwiY29udGV4dG1lbnUiXSxhY3Rpb25GdW5jOmFzeW5jKHtpdGVtOmV9KT0+e2NvbnNvbGUubG9nKCJkZWxldGUiLGUpfX0se25hbWU6Ik1lc3NhZ2UiLGljb25OYW1lOiJsdWNpZGU6bWVzc2FnZS1zcXVhcmUiLHR5cGU6WyJpblJvdyJdLGFjdGlvbkZ1bmM6YXN5bmMoe2l0ZW06ZX0pPT57Y29uc29sZS5sb2coIm1lc3NhZ2UiLGUpfX0se25hbWU6Ikhpc3RvcnkiLGljb25OYW1lOiJsdWNpZGU6Y2xvY2siLHR5cGU6WyJpblJvdyJdLGFjdGlvbkZ1bmM6YXN5bmMoe2l0ZW06ZX0pPT57Y29uc29sZS5sb2coImhpc3RvcnkiLGUpfX0se25hbWU6IkFkZCBOZXciLGljb25OYW1lOiJsdWNpZGU6cGx1cyIsdHlwZTpbImhlYWRlciJdLGFjdGlvbkZ1bmM6YXN5bmMoe3RhYmxlOmV9KT0+e2NvbnNvbGUubG9nKCJhZGQiKX19LHtuYW1lOiJFeHBvcnQgQ1NWIixpY29uTmFtZToibHVjaWRlOmRvd25sb2FkIix0eXBlOlsiaGVhZGVyIl0sYWN0aW9uRnVuYzphc3luYyh7dGFibGU6ZX0pPT57Y29uc29sZS5sb2coImV4cG9ydCIpfX0se25hbWU6IkJ1bGsgRGVsZXRlIixpY29uTmFtZToibHVjaWRlOnRyYXNoLTIiLHR5cGU6WyJmb290ZXIiXSxhY3Rpb25GdW5jOmFzeW5jKHt0YWJsZTplfSk9Pntjb25zb2xlLmxvZygiYnVsayBkZWxldGUiKX19XX0KICAgICAgICA+PC9kZWVzLXRhYmxlPgogICAgICA8L2Rpdj4KCiAgICAgIDxkaXYgY2xhc3M9ImRlbW8tc2VjdGlvbiI+CiAgICAgICAgPGgyIGNsYXNzPSJkZW1vLXRpdGxlIj5TY3JvbGxhYmxlIFNtYWxsIEhlaWdodDwvaDI+CiAgICAgICAgPHAgY2xhc3M9ImRlbW8tZGVzY3JpcHRpb24iPlNhbWUgYXMgYWJvdmUsIGJ1dCB3aXRoIG1hbnkgaXRlbXMgYW5kIGEgc21hbGwgZml4ZWQgaGVpZ2h0IHRvIGZvcmNlIHZlcnRpY2FsIHNjcm9sbGluZyBpbnNpZGUgdGhlIHRhYmxlLiBBY3Rpb25zIHJlbWFpbiB2aXNpYmxlIG9uIHRoZSByaWdodDsgaG9yaXpvbnRhbCBzY3JvbGwgYXBwZWFycyBpZiBuZWVkZWQuPC9wPgogICAgICAgIDxzdHlsZT4KICAgICAgICAgICNzY3JvbGxTbWFsbEhlaWdodCB7IC0tdGFibGUtbWF4LWhlaWdodDogMjQwcHg7IH0KICAgICAgICA8L3N0eWxlPgogICAgICAgIDxkZWVzLXRhYmxlCiAgICAgICAgICBpZD0ic2Nyb2xsU21hbGxIZWlnaHQiCiAgICAgICAgICAuc3RpY2t5SGVhZGVyPSR7ITB9CiAgICAgICAgICBoZWFkaW5nMT0iUGVvcGxlIERpcmVjdG9yeSAoU2Nyb2xsYWJsZSkiCiAgICAgICAgICBoZWFkaW5nMj0iRm9yY2VkIHNjcm9sbGluZyB3aXRoIG1hbnkgaXRlbXMiCiAgICAgICAgICAuY29sdW1ucz0ke1t7a2V5OiJpZCIsaGVhZGVyOiJJRCIsc29ydGFibGU6ITB9LHtrZXk6Im5hbWUiLGhlYWRlcjoiTmFtZSIsc29ydGFibGU6ITB9LHtrZXk6InJvbGUiLGhlYWRlcjoiUm9sZSIsc29ydGFibGU6ITB9LHtrZXk6ImRlcGFydG1lbnQiLGhlYWRlcjoiRGVwYXJ0bWVudCIsc29ydGFibGU6ITB9LHtrZXk6ImVtYWlsIixoZWFkZXI6IkVtYWlsIn0se2tleToicGhvbmUiLGhlYWRlcjoiUGhvbmUifSx7a2V5OiJsb2NhdGlvbiIsaGVhZGVyOiJMb2NhdGlvbiIsc29ydGFibGU6ITB9LHtrZXk6InN0YXR1cyIsaGVhZGVyOiJTdGF0dXMiLHNvcnRhYmxlOiEwfSx7a2V5OiJjcmVhdGVkQXQiLGhlYWRlcjoiQ3JlYXRlZCIsc29ydGFibGU6ITB9LHtrZXk6InVwZGF0ZWRBdCIsaGVhZGVyOiJVcGRhdGVkIixzb3J0YWJsZTohMH0se2tleToibGFzdExvZ2luIixoZWFkZXI6Ikxhc3QgTG9naW4iLHNvcnRhYmxlOiEwfSx7a2V5OiJwcm9qZWN0cyIsaGVhZGVyOiJQcm9qZWN0cyJ9LHtrZXk6InRhZ3MiLGhlYWRlcjoiVGFncyJ9LHtrZXk6Im5vdGVzIixoZWFkZXI6Ik5vdGVzIn1dfQogICAgICAgICAgLmRhdGE9JHtBcnJheS5mcm9tKHtsZW5ndGg6MTAwfSwoZSx0KT0+KHtpZDp0KzEsbmFtZTpgVXNlciAke3QrMX1gLHJvbGU6WyJFbmdpbmVlciIsIkRlc2lnbmVyIiwiTWFuYWdlciIsIlFBIiwiU3VwcG9ydCJdW3QlNV0sZGVwYXJ0bWVudDpbIlImRCIsIkRlc2lnbiIsIk9wcyIsIlFBIiwiQ1MiXVt0JTVdLGVtYWlsOmB1c2VyJHt0KzF9QGNvcnAuY29tYCxwaG9uZTpgKzEgMjAyIDU1NSAke1N0cmluZygxZTMrdCkuc2xpY2UoLTQpfWAsbG9jYXRpb246WyJCZXJsaW4iLCJQYXJpcyIsIkxvbmRvbiIsIk1hZHJpZCIsIlJvbWUiXVt0JTVdLHN0YXR1czpbIkFjdGl2ZSIsIkluYWN0aXZlIiwiT24gTGVhdmUiXVt0JTNdLGNyZWF0ZWRBdDpgMjAyMy0ke1N0cmluZyh0JTEyKzEpLnBhZFN0YXJ0KDIsIjAiKX0tJHtTdHJpbmcodCUyOCsxKS5wYWRTdGFydCgyLCIwIil9YCx1cGRhdGVkQXQ6YDIwMjQtJHtTdHJpbmcoKHQrMyklMTIrMSkucGFkU3RhcnQoMiwiMCIpfS0ke1N0cmluZygodCs3KSUyOCsxKS5wYWRTdGFydCgyLCIwIil9YCxsYXN0TG9naW46YDIwMjQtJHtTdHJpbmcoKHQrNiklMTIrMSkucGFkU3RhcnQoMiwiMCIpfS0ke1N0cmluZygodCsxMCklMjgrMSkucGFkU3RhcnQoMiwiMCIpfWAscHJvamVjdHM6dCUxMix0YWdzOnQlMj8idHlwZXNjcmlwdCI6ImRlc2lnbiIsbm90ZXM6dCUzPyIiOiJOb3RlIn0pKX0KICAgICAgICAgIC5kYXRhQWN0aW9ucz0ke1t7bmFtZToiVmlldyIsaWNvbk5hbWU6Imx1Y2lkZTpleWUiLHR5cGU6WyJpblJvdyJdLGFjdGlvbkZ1bmM6YXN5bmMoe2l0ZW06ZX0pPT57fX0se25hbWU6IkVkaXQiLGljb25OYW1lOiJsdWNpZGU6ZWRpdCIsdHlwZTpbImluUm93Il0sYWN0aW9uRnVuYzphc3luYyh7aXRlbTplfSk9Pnt9fSx7bmFtZToiRGVsZXRlIixpY29uTmFtZToibHVjaWRlOnRyYXNoIix0eXBlOlsiaW5Sb3ciXSxhY3Rpb25GdW5jOmFzeW5jKHtpdGVtOmV9KT0+e319XX0KICAgICAgICA+PC9kZWVzLXRhYmxlPgogICAgICA8L2Rpdj4KICAgIDwvZGl2PgogIDwvZGl2PgpgfSk7dmFyIGZscixtbHI9cCgoKT0+e3hlKCk7UWEoKTtKZSgpO2Zscj1bRGUsbS5kZWZhdWx0U3R5bGVzLG9lYAogICAgICAvKiBUT0RPOiBNaWdyYXRlIGhhcmRjb2RlZCB2YWx1ZXMgdG8gLS1kZWVzLSogQ1NTIHZhcmlhYmxlcyAqLwogICAgICA6aG9zdCB7CiAgICAgICAgZGlzcGxheTogYmxvY2s7CiAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgIH0KCiAgICAgIC5tYWluYm94IHsKICAgICAgICBjb2xvcjogJHttLmJkVGhlbWUoImhzbCgwIDAlIDMuOSUpIiwiaHNsKDAgMCUgOTglKSIpfTsKICAgICAgICBmb250LWZhbWlseTogJHtJcn07CiAgICAgICAgZm9udC13ZWlnaHQ6IDQwMDsKICAgICAgICBmb250LXNpemU6IDE0cHg7CiAgICAgICAgZGlzcGxheTogYmxvY2s7CiAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgICAgYmFja2dyb3VuZDogJHttLmJkVGhlbWUoImhzbCgwIDAlIDEwMCUpIiwiaHNsKDAgMCUgMy45JSkiKX07CiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHttLmJkVGhlbWUoImhzbCgwIDAlIDg5LjglKSIsImhzbCgwIDAlIDE0LjklKSIpfTsKICAgICAgICBib3JkZXItcmFkaXVzOiA4cHg7CiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgICAgICBjdXJzb3I6IGRlZmF1bHQ7CiAgICAgIH0KCiAgICAgIC5oZWFkZXIgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuOwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgcGFkZGluZzogMTZweCAyNHB4OwogICAgICAgIG1pbi1oZWlnaHQ6IDY0cHg7CiAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICR7bS5iZFRoZW1lKCJoc2woMCAwJSA4OS44JSkiLCJoc2woMCAwJSAxNC45JSkiKX07CiAgICAgIH0KCiAgICAgIC5oZWFkaW5nQ29udGFpbmVyIHsKICAgICAgICBmbGV4OiAxOwogICAgICB9CgogICAgICAuaGVhZGluZyB7CiAgICAgICAgbGluZS1oZWlnaHQ6IDEuNTsKICAgICAgfQoKICAgICAgLmhlYWRpbmcxIHsKICAgICAgICBmb250LXNpemU6IDE4cHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDsKICAgICAgICBjb2xvcjogJHttLmJkVGhlbWUoImhzbCgwIDAlIDklKSIsImhzbCgwIDAlIDk1JSkiKX07CiAgICAgICAgbGV0dGVyLXNwYWNpbmc6IC0wLjAyNWVtOwogICAgICB9CiAgICAgIAogICAgICAuaGVhZGluZzIgewogICAgICAgIGZvbnQtc2l6ZTogMTRweDsKICAgICAgICBjb2xvcjogJHttLmJkVGhlbWUoImhzbCgyMTUuNCAxNi4zJSA1Ni45JSkiLCJoc2woMjE1IDIwLjIlIDU1LjElKSIpfTsKICAgICAgICBtYXJnaW4tdG9wOiAycHg7CiAgICAgIH0KCiAgICAgIC5oZWFkaW5nU2VwYXJhdGlvbiB7CiAgICAgICAgZGlzcGxheTogbm9uZTsKICAgICAgfQoKICAgICAgLmhlYWRlckFjdGlvbnMgewogICAgICAgIHVzZXItc2VsZWN0OiBub25lOwogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdzsKICAgICAgICBnYXA6IDhweDsKICAgICAgfQogICAgICAKICAgICAgLmhlYWRlckFjdGlvbiB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGdhcDogNnB4OwogICAgICAgIHBhZGRpbmc6IDZweCAxMnB4OwogICAgICAgIGZvbnQtc2l6ZTogMTRweDsKICAgICAgICBmb250LXdlaWdodDogNTAwOwogICAgICAgIGNvbG9yOiAke20uYmRUaGVtZSgiaHNsKDAgMCUgNDUuMSUpIiwiaHNsKDAgMCUgNjMuOSUpIil9OwogICAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50OwogICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICR7bS5iZFRoZW1lKCJoc2woMCAwJSA4OS44JSkiLCJoc2woMCAwJSAxNC45JSkiKX07CiAgICAgICAgYm9yZGVyLXJhZGl1czogNnB4OwogICAgICAgIGN1cnNvcjogcG9pbnRlcjsKICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC4xNXMgZWFzZTsKICAgICAgfQoKICAgICAgLmhlYWRlckFjdGlvbjpob3ZlciB7CiAgICAgICAgY29sb3I6ICR7bS5iZFRoZW1lKCJoc2woMCAwJSA5JSkiLCJoc2woMCAwJSA5NSUpIil9OwogICAgICAgIGJhY2tncm91bmQ6ICR7bS5iZFRoZW1lKCJoc2woMCAwJSA5NS4xJSkiLCJoc2woMCAwJSAxNC45JSkiKX07CiAgICAgICAgYm9yZGVyLWNvbG9yOiAke20uYmRUaGVtZSgiaHNsKDAgMCUgNzkuOCUpIiwiaHNsKDAgMCUgMjAuOSUpIil9OwogICAgICB9CgogICAgICAuaGVhZGVyQWN0aW9uIGRlZXMtaWNvbiB7CiAgICAgICAgd2lkdGg6IDE0cHg7CiAgICAgICAgaGVpZ2h0OiAxNHB4OwogICAgICB9CgogICAgICAuc2VhcmNoR3JpZCB7CiAgICAgICAgZGlzcGxheTogZ3JpZDsKICAgICAgICBncmlkLWdhcDogMTZweDsKICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDFmciBtYXgtY29udGVudDsKICAgICAgICBwYWRkaW5nOiAxNnB4IDI0cHg7CiAgICAgICAgYmFja2dyb3VuZDogJHttLmJkVGhlbWUoImhzbCgyMTAgNDAlIDk4JSkiLCJoc2woMCAwJSAzLjklKSIpfTsKICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHttLmJkVGhlbWUoImhzbCgwIDAlIDg5LjglKSIsImhzbCgwIDAlIDE0LjklKSIpfTsKICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC4ycyBlYXNlOwogICAgICB9CgogICAgICBAbWVkaWEgKG1heC13aWR0aDogOTAwcHgpIHsKICAgICAgICAuc2VhcmNoR3JpZCB7CiAgICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDFmcjsKICAgICAgICB9CiAgICAgIH0KCiAgICAgIC8qIGxldCBzZWFyY2ggbW9kZSBzaXplIHRvIGNvbnRlbnQgKG5vIGZvcmNlZCB3aWR0aCkgKi8KCiAgICAgIC5zZWFyY2hHcmlkLmhpZGRlbiB7CiAgICAgICAgaGVpZ2h0OiAwcHg7CiAgICAgICAgb3BhY2l0eTogMDsKICAgICAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgICAgIHBhZGRpbmc6IDBweCAyNHB4OwogICAgICAgIGJvcmRlci1ib3R0b20td2lkdGg6IDBweDsKICAgICAgfQoKICAgICAgLnRhYmxlU2Nyb2xsIHsKICAgICAgICAvKiBlbmFibGUgaG9yaXpvbnRhbCBzY3JvbGwgb25seSB3aGVuIGNvbnRlbnQgZXhjZWVkcyB3aWR0aCAqLwogICAgICAgIG92ZXJmbG93LXg6IGF1dG87CiAgICAgICAgLyogcHJldmVudCB2ZXJ0aWNhbCBzY3JvbGwgaW5zaWRlIHRoZSB0YWJsZSBjb250YWluZXIgKi8KICAgICAgICBvdmVyZmxvdy15OiBoaWRkZW47CiAgICAgICAgLyogYXZvaWQgcmVzZXJ2aW5nIGV4dHJhIHNwYWNlIGZvciBjbGFzc2ljIHNjcm9sbGJhcnMgd2hlcmUgcG9zc2libGUgKi8KICAgICAgICBzY3JvbGxiYXItZ3V0dGVyOiBzdGFibGUgYm90aC1lZGdlczsKICAgICAgfQogICAgICAvKiBIaWRlIGhvcml6b250YWwgc2Nyb2xsYmFyIGVudGlyZWx5IHdoZW4gbm90IHVzaW5nIHN0aWNreSBoZWFkZXIgKi8KICAgICAgOmhvc3QoOm5vdChbc3RpY2t5LWhlYWRlcl0pKSAudGFibGVTY3JvbGwgewogICAgICAgIC1tcy1vdmVyZmxvdy1zdHlsZTogbm9uZTsgLyogSUUvRWRnZSAqLwogICAgICAgIHNjcm9sbGJhci13aWR0aDogbm9uZTsgICAvKiBGaXJlZm94IChoaWRlcyBib3RoIGF4ZXMpICovCiAgICAgIH0KICAgICAgOmhvc3QoOm5vdChbc3RpY2t5LWhlYWRlcl0pKSAudGFibGVTY3JvbGw6Oi13ZWJraXQtc2Nyb2xsYmFyIHsKICAgICAgICBkaXNwbGF5OiBub25lOyAvKiBDaHJvbWUvU2FmYXJpICovCiAgICAgIH0KICAgICAgLyogSW4gc3RpY2t5LWhlYWRlciBtb2RlLCBoaWRlIG9ubHkgdGhlIGhvcml6b250YWwgc2Nyb2xsYmFyIGluIFdlYktpdC9CbGluayAqLwogICAgICA6aG9zdChbc3RpY2t5LWhlYWRlcl0pIC50YWJsZVNjcm9sbDo6LXdlYmtpdC1zY3JvbGxiYXI6aG9yaXpvbnRhbCB7CiAgICAgICAgaGVpZ2h0OiAwcHg7CiAgICAgIH0KICAgICAgOmhvc3QoW3N0aWNreS1oZWFkZXJdKSAudGFibGVTY3JvbGwgewogICAgICAgIG1heC1oZWlnaHQ6IHZhcigtLXRhYmxlLW1heC1oZWlnaHQsIDM2MHB4KTsKICAgICAgICBvdmVyZmxvdzogYXV0bzsKICAgICAgfQoKICAgICAgdGFibGUgewogICAgICAgIC8qIGFsbG93IHRhYmxlIHRvIGdyb3cgd2lkZXIgdGhhbiBjb250YWluZXIgc28gYWN0aW9ucyBjb2x1bW4gY2FuIHN0aWNrICovCiAgICAgICAgd2lkdGg6IG1heC1jb250ZW50OwogICAgICAgIG1pbi13aWR0aDogMTAwJTsKICAgICAgICBjYXB0aW9uLXNpZGU6IGJvdHRvbTsKICAgICAgICBmb250LXNpemU6IDE0cHg7CiAgICAgICAgYm9yZGVyLWNvbGxhcHNlOiBzZXBhcmF0ZTsKICAgICAgICBib3JkZXItc3BhY2luZzogMDsKICAgICAgfQogICAgICAKICAgICAgLm5vRGF0YVNldCB7CiAgICAgICAgcGFkZGluZzogNDhweCAyNHB4OwogICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjsKICAgICAgICBjb2xvcjogJHttLmJkVGhlbWUoImhzbCgyMTUuNCAxNi4zJSA1Ni45JSkiLCJoc2woMjE1IDIwLjIlIDU1LjElKSIpfTsKICAgICAgfQogICAgICAKICAgICAgdGhlYWQgewogICAgICAgIGJhY2tncm91bmQ6ICR7bS5iZFRoZW1lKCJoc2woMjEwIDQwJSA5Ni4xJSkiLCJoc2woMCAwJSA5JSkiKX07CiAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICR7bS5iZFRoZW1lKCJoc2woMCAwJSA3OS44JSkiLCJoc2woMCAwJSAyMC45JSkiKX07CiAgICAgIH0KICAgICAgOmhvc3QoW3N0aWNreS1oZWFkZXJdKSB0aGVhZCB0aCB7CiAgICAgICAgcG9zaXRpb246IHN0aWNreTsKICAgICAgICB0b3A6IDA7CiAgICAgICAgei1pbmRleDogMjsKICAgICAgfQogICAgICAKICAgICAgdGJvZHkgdHIgewogICAgICAgIHRyYW5zaXRpb246IGJhY2tncm91bmQtY29sb3IgMC4xNXMgZWFzZTsKICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgIH0KICAgICAgCiAgICAgIC8qIERlZmF1bHQgaG9yaXpvbnRhbCBsaW5lcyAoYm90dG9tIGJvcmRlciBvbmx5KSAqLwogICAgICB0Ym9keSB0ciB7CiAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICR7bS5iZFRoZW1lKCJoc2woMCAwJSA4OS44JSkiLCJoc2woMCAwJSAxNC45JSkiKX07CiAgICAgIH0KICAgICAgCiAgICAgIHRib2R5IHRyOmxhc3QtY2hpbGQgewogICAgICAgIGJvcmRlci1ib3R0b206IG5vbmU7CiAgICAgIH0KICAgICAgCiAgICAgIC8qIEZ1bGwgaG9yaXpvbnRhbCBsaW5lcyB3aGVuIGVuYWJsZWQgKi8KICAgICAgOmhvc3QoW3Nob3ctaG9yaXpvbnRhbC1saW5lc10pIHRib2R5IHRyIHsKICAgICAgICBib3JkZXItdG9wOiAxcHggc29saWQgJHttLmJkVGhlbWUoImhzbCgwIDAlIDg5LjglKSIsImhzbCgwIDAlIDE0LjklKSIpfTsKICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHttLmJkVGhlbWUoImhzbCgwIDAlIDg5LjglKSIsImhzbCgwIDAlIDE0LjklKSIpfTsKICAgICAgfQogICAgICAKICAgICAgOmhvc3QoW3Nob3ctaG9yaXpvbnRhbC1saW5lc10pIHRib2R5IHRyOmZpcnN0LWNoaWxkIHsKICAgICAgICBib3JkZXItdG9wOiBub25lOwogICAgICB9CiAgICAgIAogICAgICA6aG9zdChbc2hvdy1ob3Jpem9udGFsLWxpbmVzXSkgdGJvZHkgdHI6bGFzdC1jaGlsZCB7CiAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICR7bS5iZFRoZW1lKCJoc2woMCAwJSA4OS44JSkiLCJoc2woMCAwJSAxNC45JSkiKX07CiAgICAgIH0KICAgICAgCiAgICAgIHRib2R5IHRyOmhvdmVyIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke20uYmRUaGVtZSgiaHNsKDIxMCA0MCUgOTYuMSUgLyAwLjUpIiwiaHNsKDAgMCUgMTQuOSUgLyAwLjUpIil9OwogICAgICB9CiAgICAgIAogICAgICAvKiBDb2x1bW4gaG92ZXIgZWZmZWN0IGZvciBiZXR0ZXIgdHJhY2VhYmlsaXR5ICovCiAgICAgIHRkIHsKICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgIH0KICAgICAgCiAgICAgIHRkOjphZnRlciB7CiAgICAgICAgY29udGVudDogJyc7CiAgICAgICAgcG9zaXRpb246IGFic29sdXRlOwogICAgICAgIHRvcDogMDsKICAgICAgICBib3R0b206IDA7CiAgICAgICAgbGVmdDogMDsKICAgICAgICByaWdodDogMDsKICAgICAgICBiYWNrZ3JvdW5kOiAke20uYmRUaGVtZSgiaHNsKDIxMCA0MCUgOTYuMSUgLyAwLjMpIiwiaHNsKDAgMCUgMTQuOSUgLyAwLjMpIil9OwogICAgICAgIG9wYWNpdHk6IDA7CiAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7CiAgICAgICAgdHJhbnNpdGlvbjogb3BhY2l0eSAwLjE1cyBlYXNlOwogICAgICAgIHotaW5kZXg6IC0xOwogICAgICB9CiAgICAgIAogICAgICB0ZDpob3Zlcjo6YWZ0ZXIgewogICAgICAgIG9wYWNpdHk6IDE7CiAgICAgIH0KICAgICAgCiAgICAgIC8qIEdyaWQgbW9kZSAtIHNob3dzIGJvdGggdmVydGljYWwgYW5kIGhvcml6b250YWwgbGluZXMgKi8KICAgICAgOmhvc3QoW3Nob3ctZ3JpZF0pIHRoIHsKICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAke20uYmRUaGVtZSgiaHNsKDAgMCUgODkuOCUpIiwiaHNsKDAgMCUgMTQuOSUpIil9OwogICAgICAgIGJvcmRlci1sZWZ0OiBub25lOwogICAgICAgIGJvcmRlci10b3A6IG5vbmU7CiAgICAgIH0KICAgICAgCiAgICAgIDpob3N0KFtzaG93LWdyaWRdKSB0ZCB7CiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHttLmJkVGhlbWUoImhzbCgwIDAlIDg5LjglKSIsImhzbCgwIDAlIDE0LjklKSIpfTsKICAgICAgICBib3JkZXItbGVmdDogbm9uZTsKICAgICAgICBib3JkZXItdG9wOiBub25lOwogICAgICB9CiAgICAgIAogICAgICA6aG9zdChbc2hvdy1ncmlkXSkgdGg6Zmlyc3QtY2hpbGQsCiAgICAgIDpob3N0KFtzaG93LWdyaWRdKSB0ZDpmaXJzdC1jaGlsZCB7CiAgICAgICAgYm9yZGVyLWxlZnQ6IDFweCBzb2xpZCAke20uYmRUaGVtZSgiaHNsKDAgMCUgODkuOCUpIiwiaHNsKDAgMCUgMTQuOSUpIil9OwogICAgICB9CiAgICAgIAogICAgICA6aG9zdChbc2hvdy1ncmlkXSkgdGJvZHkgdHI6Zmlyc3QtY2hpbGQgdGQgewogICAgICAgIGJvcmRlci10b3A6IG5vbmU7CiAgICAgIH0KCiAgICAgIC8qIFN0aWNreSBBY3Rpb25zIGNvbHVtbiAocmlnaHQgcGlubmVkKSAqLwogICAgICB0aGVhZCB0aC5hY3Rpb25zQ29sLAogICAgICB0Ym9keSB0ZC5hY3Rpb25zQ29sIHsKICAgICAgICBwb3NpdGlvbjogc3RpY2t5OwogICAgICAgIHJpZ2h0OiAwOwogICAgICAgIGJhY2tncm91bmQ6ICR7bS5iZFRoZW1lKCJoc2woMCAwJSAxMDAlKSIsImhzbCgwIDAlIDMuOSUpIil9OwogICAgICB9CiAgICAgIHRoZWFkIHRoLmFjdGlvbnNDb2wgeyB6LWluZGV4OiAzOyB9CiAgICAgIHRib2R5IHRkLmFjdGlvbnNDb2wgewogICAgICAgIHotaW5kZXg6IDE7CiAgICAgICAgYm94LXNoYWRvdzogLTFweCAwIDAgMCAke20uYmRUaGVtZSgiaHNsKDAgMCUgODkuOCUpIiwiaHNsKDAgMCUgMTQuOSUpIil9OwogICAgICB9CiAgICAgIAogICAgICB0Ym9keSB0ci5zZWxlY3RlZCB7CiAgICAgICAgYmFja2dyb3VuZDogJHttLmJkVGhlbWUoImhzbCgyMTAgNDAlIDk2LjElKSIsImhzbCgwIDAlIDE0LjklKSIpfTsKICAgICAgfQoKICAgICAgdGJvZHkgdHIuaGFzQXR0YWNobWVudCB7CiAgICAgICAgYmFja2dyb3VuZDogJHttLmJkVGhlbWUoImhzbCgxNDIuMSA3Ni4yJSAzNi4zJSAvIDAuMSkiLCJoc2woMTQyLjEgNzYuMiUgMzYuMyUgLyAwLjEpIil9OwogICAgICB9CgogICAgICB0aCB7CiAgICAgICAgaGVpZ2h0OiA0OHB4OwogICAgICAgIHBhZGRpbmc6IDEycHggMjRweDsKICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0OwogICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7CiAgICAgICAgY29sb3I6ICR7bS5iZFRoZW1lKCJoc2woMjE1LjQgMTYuMyUgNDYuOSUpIiwiaHNsKDIxNSAyMC4yJSA2NS4xJSkiKX07CiAgICAgICAgbGV0dGVyLXNwYWNpbmc6IC0wLjAxZW07CiAgICAgIH0KICAgICAgCiAgICAgIDpob3N0KFtzaG93LXZlcnRpY2FsLWxpbmVzXSkgdGggewogICAgICAgIGJvcmRlci1yaWdodDogMXB4IHNvbGlkICR7bS5iZFRoZW1lKCJoc2woMCAwJSA4OS44JSkiLCJoc2woMCAwJSAxNC45JSkiKX07CiAgICAgIH0KICAgICAgCiAgICAgIHRkIHsKICAgICAgICBwYWRkaW5nOiAxMnB4IDI0cHg7CiAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTsKICAgICAgICBjb2xvcjogJHttLmJkVGhlbWUoImhzbCgwIDAlIDMuOSUpIiwiaHNsKDAgMCUgOTglKSIpfTsKICAgICAgfQogICAgICAKICAgICAgOmhvc3QoW3Nob3ctdmVydGljYWwtbGluZXNdKSB0ZCB7CiAgICAgICAgYm9yZGVyLXJpZ2h0OiAxcHggc29saWQgJHttLmJkVGhlbWUoImhzbCgwIDAlIDg5LjglKSIsImhzbCgwIDAlIDE0LjklKSIpfTsKICAgICAgfQogICAgICAKICAgICAgdGg6Zmlyc3QtY2hpbGQsCiAgICAgIHRkOmZpcnN0LWNoaWxkIHsKICAgICAgICBwYWRkaW5nLWxlZnQ6IDI0cHg7CiAgICAgIH0KICAgICAgCiAgICAgIHRoOmxhc3QtY2hpbGQsCiAgICAgIHRkOmxhc3QtY2hpbGQgewogICAgICAgIHBhZGRpbmctcmlnaHQ6IDI0cHg7CiAgICAgIH0KICAgICAgCiAgICAgIDpob3N0KFtzaG93LXZlcnRpY2FsLWxpbmVzXSkgdGg6bGFzdC1jaGlsZCwKICAgICAgOmhvc3QoW3Nob3ctdmVydGljYWwtbGluZXNdKSB0ZDpsYXN0LWNoaWxkIHsKICAgICAgICBib3JkZXItcmlnaHQ6IG5vbmU7CiAgICAgIH0KICAgICAgCiAgICAgIC5pbm5lckNlbGxDb250YWluZXIgewogICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgICBtaW4taGVpZ2h0OiAyNHB4OwogICAgICAgIGxpbmUtaGVpZ2h0OiAyNHB4OwogICAgICB9CiAgICAgIHRkIGlucHV0IHsKICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgICAgdG9wOiA0cHg7CiAgICAgICAgYm90dG9tOiA0cHg7CiAgICAgICAgbGVmdDogMjBweDsKICAgICAgICByaWdodDogMjBweDsKICAgICAgICB3aWR0aDogY2FsYygxMDAlIC0gNDBweCk7CiAgICAgICAgaGVpZ2h0OiBjYWxjKDEwMCUgLSA4cHgpOwogICAgICAgIHBhZGRpbmc6IDAgMTJweDsKICAgICAgICBvdXRsaW5lOiBub25lOwogICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICR7bS5iZFRoZW1lKCJoc2woMCAwJSA4OS44JSkiLCJoc2woMCAwJSAxNC45JSkiKX07CiAgICAgICAgYm9yZGVyLXJhZGl1czogNnB4OwogICAgICAgIGJhY2tncm91bmQ6ICR7bS5iZFRoZW1lKCJoc2woMCAwJSAxMDAlKSIsImhzbCgwIDAlIDklKSIpfTsKICAgICAgICBjb2xvcjogJHttLmJkVGhlbWUoImhzbCgwIDAlIDMuOSUpIiwiaHNsKDAgMCUgOTglKSIpfTsKICAgICAgICBmb250LWZhbWlseTogaW5oZXJpdDsKICAgICAgICBmb250LXNpemU6IGluaGVyaXQ7CiAgICAgICAgZm9udC13ZWlnaHQ6IGluaGVyaXQ7CiAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuMTVzIGVhc2U7CiAgICAgICAgYm94LXNoYWRvdzogMCAxcHggMnB4IDAgcmdiKDAgMCAwIC8gMC4wNSk7CiAgICAgIH0KICAgICAgCiAgICAgIHRkIGlucHV0OmZvY3VzIHsKICAgICAgICBib3JkZXItY29sb3I6ICR7bS5iZFRoZW1lKCJoc2woMjIyLjIgNDcuNCUgNTEuMiUpIiwiaHNsKDIxNy4yIDkxLjIlIDU5LjglKSIpfTsKICAgICAgICBvdXRsaW5lOiAycHggc29saWQgdHJhbnNwYXJlbnQ7CiAgICAgICAgb3V0bGluZS1vZmZzZXQ6IDJweDsKICAgICAgICBib3gtc2hhZG93OiAwIDAgMCAycHggJHttLmJkVGhlbWUoImhzbCgyMjIuMiA0Ny40JSA1MS4yJSAvIDAuMikiLCJoc2woMjE3LjIgOTEuMiUgNTkuOCUgLyAwLjIpIil9OwogICAgICB9CgogICAgICAvKiBmaWx0ZXIgcm93ICovCiAgICAgIHRoZWFkIHRyLmZpbHRlcnNSb3cgdGggewogICAgICAgIHBhZGRpbmc6IDhweCAxMnB4IDEycHggMTJweDsKICAgICAgfQogICAgICB0aGVhZCB0ci5maWx0ZXJzUm93IHRoIGlucHV0W3R5cGU9J3RleHQnXSB7CiAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDsKICAgICAgICBwYWRkaW5nOiA2cHggOHB4OwogICAgICAgIGZvbnQtc2l6ZTogMTNweDsKICAgICAgICBib3JkZXItcmFkaXVzOiA2cHg7CiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHttLmJkVGhlbWUoImhzbCgwIDAlIDg5LjglKSIsImhzbCgwIDAlIDE0LjklKSIpfTsKICAgICAgICBiYWNrZ3JvdW5kOiAke20uYmRUaGVtZSgiaHNsKDAgMCUgMTAwJSkiLCJoc2woMCAwJSA5JSkiKX07CiAgICAgICAgY29sb3I6ICR7bS5iZFRoZW1lKCJoc2woMCAwJSAzLjklKSIsImhzbCgwIDAlIDk4JSkiKX07CiAgICAgIH0KICAgICAgLmFjdGlvbnNDb250YWluZXIgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdzsKICAgICAgICBnYXA6IDRweDsKICAgICAgfQogICAgICAKICAgICAgLmFjdGlvbiB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOwogICAgICAgIHdpZHRoOiAzMnB4OwogICAgICAgIGhlaWdodDogMzJweDsKICAgICAgICBib3JkZXItcmFkaXVzOiA2cHg7CiAgICAgICAgY29sb3I6ICR7bS5iZFRoZW1lKCJoc2woMjE1LjQgMTYuMyUgNDYuOSUpIiwiaHNsKDIxNSAyMC4yJSA2NS4xJSkiKX07CiAgICAgICAgY3Vyc29yOiBwb2ludGVyOwogICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjE1cyBlYXNlOwogICAgICB9CgogICAgICAuYWN0aW9uOmhvdmVyIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke20uYmRUaGVtZSgiaHNsKDIxMCA0MCUgOTYuMSUpIiwiaHNsKDAgMCUgMTQuOSUpIil9OwogICAgICAgIGNvbG9yOiAke20uYmRUaGVtZSgiaHNsKDAgMCUgOSUpIiwiaHNsKDAgMCUgOTUlKSIpfTsKICAgICAgfQoKICAgICAgLmFjdGlvbjphY3RpdmUgewogICAgICAgIGJhY2tncm91bmQ6ICR7bS5iZFRoZW1lKCJoc2woMjEwIDQwJSA5Ni4xJSkiLCJoc2woMCAwJSAxMS44JSkiKX07CiAgICAgIH0KICAgICAgCiAgICAgIC5hY3Rpb24gZGVlcy1pY29uIHsKICAgICAgICB3aWR0aDogMTZweDsKICAgICAgICBoZWlnaHQ6IDE2cHg7CiAgICAgIH0KCiAgICAgIC5mb290ZXIgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47CiAgICAgICAgaGVpZ2h0OiA1MnB4OwogICAgICAgIHBhZGRpbmc6IDAgMjRweDsKICAgICAgICBmb250LXNpemU6IDE0cHg7CiAgICAgICAgY29sb3I6ICR7bS5iZFRoZW1lKCJoc2woMjE1LjQgMTYuMyUgNDYuOSUpIiwiaHNsKDIxNSAyMC4yJSA2NS4xJSkiKX07CiAgICAgICAgYmFja2dyb3VuZDogJHttLmJkVGhlbWUoImhzbCgyMTAgNDAlIDk2LjElKSIsImhzbCgwIDAlIDklKSIpfTsKICAgICAgICBib3JkZXItdG9wOiAxcHggc29saWQgJHttLmJkVGhlbWUoImhzbCgwIDAlIDg5LjglKSIsImhzbCgwIDAlIDE0LjklKSIpfTsKICAgICAgfQoKICAgICAgLnRhYmxlU3RhdGlzdGljcyB7CiAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDsKICAgICAgfQoKICAgICAgLmZvb3RlckFjdGlvbnMgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgZ2FwOiA4cHg7CiAgICAgIH0KCiAgICAgIC5mb290ZXJBY3Rpb25zIC5mb290ZXJBY3Rpb24gewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBnYXA6IDZweDsKICAgICAgICBwYWRkaW5nOiA2cHggMTJweDsKICAgICAgICBmb250LXdlaWdodDogNTAwOwogICAgICAgIGNvbG9yOiAke20uYmRUaGVtZSgiaHNsKDIxNS40IDE2LjMlIDQ2LjklKSIsImhzbCgyMTUgMjAuMiUgNjUuMSUpIil9OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDZweDsKICAgICAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICAgICAgdXNlci1zZWxlY3Q6IG5vbmU7CiAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuMTVzIGVhc2U7CiAgICAgIH0KCiAgICAgIC5mb290ZXJBY3Rpb25zIC5mb290ZXJBY3Rpb246aG92ZXIgewogICAgICAgIGJhY2tncm91bmQ6ICR7bS5iZFRoZW1lKCJoc2woMCAwJSA5NS4xJSkiLCJoc2woMCAwJSAxNC45JSkiKX07CiAgICAgICAgY29sb3I6ICR7bS5iZFRoZW1lKCJoc2woMCAwJSA5JSkiLCJoc2woMCAwJSA5NSUpIil9OwogICAgICB9CgogICAgICAuZm9vdGVyQWN0aW9ucyAuZm9vdGVyQWN0aW9uIGRlZXMtaWNvbiB7CiAgICAgICAgd2lkdGg6IDE0cHg7CiAgICAgICAgaGVpZ2h0OiAxNHB4OwogICAgICB9CiAgYF19KTtmdW5jdGlvbiBENmUoZSx0KXtpZighdHx8dC5sZW5ndGg9PT0wKXJldHVybltdO2xldCByPWUodFswXSk7cmV0dXJuIE9iamVjdC5rZXlzKHIpLm1hcChhPT4oe2tleTphLGhlYWRlcjphLHZhbHVlOm49PmUobilbYV19KSl9ZnVuY3Rpb24gZ2xyKGUsdCxyLGkpe2xldCBhPShlfHxbXSkuc2xpY2UoKTtpZighdClyZXR1cm4gYTtsZXQgbj1ENmUocixpKSxvPW5ldyBTZXQoYS5tYXAocz0+U3RyaW5nKHMua2V5KSkpO2ZvcihsZXQgcyBvZiBuKW8uaGFzKFN0cmluZyhzLmtleSkpfHxhLnB1c2gocyk7cmV0dXJuIGF9ZnVuY3Rpb24gbmgoZSx0LHIpe3JldHVybiB0LnZhbHVlP3QudmFsdWUoZSk6ZVt0LmtleV19ZnVuY3Rpb24gYmxyKGUsdCxyLGksYSxuLG89InRhYmxlIixzKXtsZXQgbD1lLnNsaWNlKCksYz0oYXx8IiIpLnRyaW0oKS50b0xvd2VyQ2FzZSgpLHU9bnx8e30sZD1PYmplY3Qua2V5cyh1KS5maWx0ZXIoeD0+KHVbeF0/PyIiKS50cmltKCkubGVuZ3RoPjApO2lmKChjfHxkLmxlbmd0aD4wKSYmKGw9bC5maWx0ZXIoeD0+e2ZvcihsZXQgdiBvZiBkKWlmKG89PT0iZGF0YSIpe2xldCBiPXhbdl0seT1TdHJpbmcoYj8/IiIpLnRvTG93ZXJDYXNlKCksdz1TdHJpbmcodVt2XSkudG9Mb3dlckNhc2UoKTtpZigheS5pbmNsdWRlcyh3KSlyZXR1cm4hMX1lbHNle2xldCBiPXQuZmluZChPPT5TdHJpbmcoTy5rZXkpPT09dik7aWYoIWJ8fGIuaGlkZGVufHxiLmZpbHRlcmFibGU9PT0hMSljb250aW51ZTtsZXQgeT1uaCh4LGIpLHc9U3RyaW5nKHk/PyIiKS50b0xvd2VyQ2FzZSgpLGs9U3RyaW5nKHVbdl0pLnRvTG93ZXJDYXNlKCk7aWYoIXcuaW5jbHVkZXMoaykpcmV0dXJuITF9aWYoYyl7aWYocylyZXR1cm4hIXMoeCk7bGV0IHY9ITE7aWYobz09PSJkYXRhIil7Zm9yKGxldCBiIG9mIE9iamVjdC52YWx1ZXMoeCkpaWYoU3RyaW5nKGI/PyIiKS50b0xvd2VyQ2FzZSgpLmluY2x1ZGVzKGMpKXt2PSEwO2JyZWFrfX1lbHNlIGZvcihsZXQgYiBvZiB0KXtpZihiLmhpZGRlbiljb250aW51ZTtsZXQgeT1uaCh4LGIpO2lmKFN0cmluZyh5Pz8iIikudG9Mb3dlckNhc2UoKS5pbmNsdWRlcyhjKSl7dj0hMDticmVha319aWYoIXYpcmV0dXJuITF9cmV0dXJuITB9KSksIXJ8fCFpKXJldHVybiBsO2xldCBoPXQuZmluZCh4PT5TdHJpbmcoeC5rZXkpPT09cik7aWYoIWgpcmV0dXJuIGw7bGV0IGY9aT09PSJhc2MiPzE6LTE7cmV0dXJuIGwuc29ydCgoeCx2KT0+e2xldCBiPW5oKHgsaCkseT1uaCh2LGgpO2lmKGI9PW51bGwmJnk9PW51bGwpcmV0dXJuIDA7aWYoYj09bnVsbClyZXR1cm4tMSpmO2lmKHk9PW51bGwpcmV0dXJuIDEqZjtpZih0eXBlb2YgYj09Im51bWJlciImJnR5cGVvZiB5PT0ibnVtYmVyIilyZXR1cm4oYi15KSpmO2xldCB3PVN0cmluZyhiKS50b0xvd2VyQ2FzZSgpLGs9U3RyaW5nKHkpLnRvTG93ZXJDYXNlKCk7cmV0dXJuIHc8az8tMSpmOnc+az8xKmY6MH0pLGx9dmFyIHZscj1wKCgpPT57fSk7ZnVuY3Rpb24gR04oZSl7cmV0dXJuIGUuc3RhcnRzV2l0aCgnIicpJiZlLmVuZHNXaXRoKCciJyl8fGUuc3RhcnRzV2l0aCgiJyIpJiZlLmVuZHNXaXRoKCInIik/ZS5zbGljZSgxLC0xKTplfWZ1bmN0aW9uIGVYcihlKXtyZXR1cm4gZS5zcGxpdCgvXHMrT1JccysvaSkubWFwKHQ9PnQudHJpbSgpKS5maWx0ZXIoQm9vbGVhbil9ZnVuY3Rpb24gdFhyKGUpe3JldHVybiBlLnNwbGl0KC9ccytBTkRccysvaSkubWFwKHQ9PnQudHJpbSgpKS5maWx0ZXIoQm9vbGVhbil9ZnVuY3Rpb24gclhyKGUpe2lmKCFlKXJldHVybiBudWxsO2xldCB0PSExLHI9ZS5tYXRjaCgvXlxzKihOT1Rccyt8LSlccyooLiopJC9pKTtyJiYodD0hMCxlPXJbMl0pO2xldCBpPWUubWF0Y2goL14oW146XHNdKylccyo6XHMqXFsoLio/KVxzK1RPXHMrKC4qPylcXSQvaSk7aWYoaSlyZXR1cm57ZmllbGQ6aVsxXSxuZWdhdGU6dCxyYW5nZTp7bG93ZXI6R04oaVsyXSkudG9Mb3dlckNhc2UoKSx1cHBlcjpHTihpWzNdKS50b0xvd2VyQ2FzZSgpLGluY2x1c2l2ZTohMH19O2xldCBhPWUubWF0Y2goL14oW146XHNdKylccyo6XHMqKCJbXiJdKiJ8J1teJ10qJ3xbXiInXHNdKykkLyk7cmV0dXJuIGE/e2ZpZWxkOmFbMV0sdmFsdWU6R04oYVsyXSkudG9Mb3dlckNhc2UoKSxuZWdhdGU6dH06ZS5sZW5ndGg+MD97dmFsdWU6R04oZSkudG9Mb3dlckNhc2UoKSxuZWdhdGU6dH06bnVsbH1mdW5jdGlvbiBpWHIoZSl7aWYoIWUpcmV0dXJuIG51bGw7bGV0IHQ9ZVhyKGUpLm1hcChyPT4oe3Rlcm1zOnRYcihyKS5tYXAoclhyKS5maWx0ZXIoYT0+ISFhJiYhIWEudmFsdWUpfSkpLmZpbHRlcihyPT5yLnRlcm1zLmxlbmd0aD4wKTtyZXR1cm4gdC5sZW5ndGg9PT0wP251bGw6e2NsYXVzZXM6dH19ZnVuY3Rpb24geGxyKGUsdCxyKXtsZXQgaT1pWHIoZSk7aWYoIWkpcmV0dXJuIG51bGw7bGV0IGE9bmV3IE1hcChyLm1hcChsPT5bU3RyaW5nKGwua2V5KSxsXSkpLG49KGwsYyk9Pmw8Yz8tMTpsPmM/MTowLG89bD0+e2xldCBjPVN0cmluZyhsPz8iIikudG9Mb3dlckNhc2UoKSx1PU51bWJlcihjKSxkPURhdGUucGFyc2UoYyk7cmV0dXJuIU51bWJlci5pc05hTih1KSYmYy50cmltKCkhPT0iIj97dDoibiIsdjp1fTpOdW1iZXIuaXNOYU4oZCk/e3Q6InMiLHY6Y306e3Q6ImQiLHY6ZH19LHM9KGwsYyx1KT0+e2xldCBkPW8obCksaD1vKGMpLGY9byh1KTtpZihkLnQ9PT0icyImJmgudD09PSJzIiYmZi50PT09InMiKXtsZXQgdj1kLnY7cmV0dXJuIG4odixoLnYpPj0wJiZuKHYsZi52KTw9MH1pZihkLnQ9PT0ibiImJmgudD09PSJuIiYmZi50PT09Im4iKXtsZXQgdj1kLnY7cmV0dXJuIHY+PWgudiYmdjw9Zi52fWlmKGQudD09PSJkIiYmaC50PT09ImQiJiZmLnQ9PT0iZCIpe2xldCB2PWQudjtyZXR1cm4gdj49aC52JiZ2PD1mLnZ9bGV0IHg9U3RyaW5nKGw/PyIiKS50b0xvd2VyQ2FzZSgpO3JldHVybiBuKHgsYyk+PTAmJm4oeCx1KTw9MH07cmV0dXJuIGw9Pntmb3IobGV0IGMgb2YgaS5jbGF1c2VzKXtsZXQgdT0hMDtmb3IobGV0IGQgb2YgYy50ZXJtcyl7bGV0IGg9ITE7aWYoZC5yYW5nZSYmZC5maWVsZClpZih0PT09ImRhdGEiKWg9cyhsW2QuZmllbGRdLGQucmFuZ2UubG93ZXIsZC5yYW5nZS51cHBlcik7ZWxzZXtsZXQgZj1hLmdldChkLmZpZWxkKTtpZighZnx8Zi5oaWRkZW4paD0hMTtlbHNle2xldCB4PWYudmFsdWU/Zi52YWx1ZShsKTpsW2Yua2V5XTtoPXMoeCxkLnJhbmdlLmxvd2VyLGQucmFuZ2UudXBwZXIpfX1lbHNlIGlmKGQuZmllbGQmJmQudmFsdWUhPW51bGwpaWYodD09PSJkYXRhIiloPVN0cmluZyhsW2QuZmllbGRdPz8iIikudG9Mb3dlckNhc2UoKS5pbmNsdWRlcyhkLnZhbHVlKTtlbHNle2xldCBmPWEuZ2V0KGQuZmllbGQpO2lmKCFmfHxmLmhpZGRlbj09PSEwKWg9ITE7ZWxzZXtsZXQgeD1mLnZhbHVlP2YudmFsdWUobCk6bFtmLmtleV07aD1TdHJpbmcoeD8/IiIpLnRvTG93ZXJDYXNlKCkuaW5jbHVkZXMoZC52YWx1ZSl9fWVsc2UgZC52YWx1ZSE9bnVsbCYmKHQ9PT0iZGF0YSI/aD1PYmplY3QudmFsdWVzKGwpLnNvbWUoZj0+U3RyaW5nKGY/PyIiKS50b0xvd2VyQ2FzZSgpLmluY2x1ZGVzKGQudmFsdWUpKTpoPXIuc29tZShmPT57aWYoZi5oaWRkZW4pcmV0dXJuITE7bGV0IHg9Zi52YWx1ZT9mLnZhbHVlKGwpOmxbZi5rZXldO3JldHVybiBTdHJpbmcoeD8/IiIpLnRvTG93ZXJDYXNlKCkuaW5jbHVkZXMoZC52YWx1ZSl9KSk7aWYoZC5uZWdhdGUmJihoPSFoKSwhaCl7dT0hMTticmVha319aWYodSlyZXR1cm4hMH1yZXR1cm4hMX19dmFyIHlscj1wKCgpPT57fSk7dmFyIFByLHN0LFlOLEE2ZT1wKCgpPT57d2koKTtobHIoKTt4ZSgpO01pKCk7S3QoKTtvcigpO21scigpO3ZscigpO3lscigpO0plKCk7UHI9ZnVuY3Rpb24oZSx0LHIsaSxhLG4pe2Z1bmN0aW9uIG8oeSl7aWYoeSE9PXZvaWQgMCYmdHlwZW9mIHkhPSJmdW5jdGlvbiIpdGhyb3cgbmV3IFR5cGVFcnJvcigiRnVuY3Rpb24gZXhwZWN0ZWQiKTtyZXR1cm4geX1mb3IodmFyIHM9aS5raW5kLGw9cz09PSJnZXR0ZXIiPyJnZXQiOnM9PT0ic2V0dGVyIj8ic2V0IjoidmFsdWUiLGM9IXQmJmU/aS5zdGF0aWM/ZTplLnByb3RvdHlwZTpudWxsLHU9dHx8KGM/T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihjLGkubmFtZSk6e30pLGQsaD0hMSxmPXIubGVuZ3RoLTE7Zj49MDtmLS0pe3ZhciB4PXt9O2Zvcih2YXIgdiBpbiBpKXhbdl09dj09PSJhY2Nlc3MiP3t9Omlbdl07Zm9yKHZhciB2IGluIGkuYWNjZXNzKXguYWNjZXNzW3ZdPWkuYWNjZXNzW3ZdO3guYWRkSW5pdGlhbGl6ZXI9ZnVuY3Rpb24oeSl7aWYoaCl0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgYWRkIGluaXRpYWxpemVycyBhZnRlciBkZWNvcmF0aW9uIGhhcyBjb21wbGV0ZWQiKTtuLnB1c2gobyh5fHxudWxsKSl9O3ZhciBiPSgwLHJbZl0pKHM9PT0iYWNjZXNzb3IiP3tnZXQ6dS5nZXQsc2V0OnUuc2V0fTp1W2xdLHgpO2lmKHM9PT0iYWNjZXNzb3IiKXtpZihiPT09dm9pZCAwKWNvbnRpbnVlO2lmKGI9PT1udWxsfHx0eXBlb2YgYiE9Im9iamVjdCIpdGhyb3cgbmV3IFR5cGVFcnJvcigiT2JqZWN0IGV4cGVjdGVkIik7KGQ9byhiLmdldCkpJiYodS5nZXQ9ZCksKGQ9byhiLnNldCkpJiYodS5zZXQ9ZCksKGQ9byhiLmluaXQpKSYmYS51bnNoaWZ0KGQpfWVsc2UoZD1vKGIpKSYmKHM9PT0iZmllbGQiP2EudW5zaGlmdChkKTp1W2xdPWQpfWMmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShjLGkubmFtZSx1KSxoPSEwfSxzdD1mdW5jdGlvbihlLHQscil7Zm9yKHZhciBpPWFyZ3VtZW50cy5sZW5ndGg+MixhPTA7YTx0Lmxlbmd0aDthKyspcj1pP3RbYV0uY2FsbChlLHIpOnRbYV0uY2FsbChlKTtyZXR1cm4gaT9yOnZvaWQgMH0sWU49KCgpPT57bGV0IGU9W3llKCJkZWVzLXRhYmxlIildLHQscj1bXSxpLGE9emUsbixvPVtdLHM9W10sbCxjPVtdLHU9W10sZCxoPVtdLGY9W10seCx2PVtdLGI9W10seSx3PVtdLGs9W10sTyx6PVtdLE09W10sRixEPVtdLE49W10sUixfPVtdLFM9W10sJCxUPVtdLEU9W10scSxCPVtdLEc9W10sZWUsUD1bXSxnZT1bXSx3ZSxJPVtdLG5lPVtdLGtlLFk9W10sQT1bXSxMLFU9W10sVj1bXSxYLGRlPVtdLHZlPVtdLExlLFc9W10sSD1bXSx0ZSxiZT1bXSx1ZT1bXSxDZSxoZT1bXSxpZT1bXSxTZSxJZT1bXSxaZT1bXSxLLFo9W10sSj1bXSxtZSxFZT1bXSxVZT1bXSxNdCxpdD1bXSxMdD1bXSxXdCxhZT1bXSxzZT1bXSxfZSx2dD1bXSxTdD1bXSxZcixkbj1bXSxVbz1bXSxXbyxNZT1bXSwkZT1bXSxCdCxGcj1bXSxacj1bXSxuMSxYcj1bXSxHbz1bXSxZbyxabz1bXSx3aD1bXTt2YXIgTWg9Y2xhc3MgZXh0ZW5kcyBhe3N0YXRpY3tpPXRoaXN9c3RhdGlje2xldCBUZT10eXBlb2YgU3ltYm9sPT0iZnVuY3Rpb24iJiZTeW1ib2wubWV0YWRhdGE/T2JqZWN0LmNyZWF0ZShhW1N5bWJvbC5tZXRhZGF0YV0/P251bGwpOnZvaWQgMDtuPVtqKHt0eXBlOlN0cmluZ30pXSxsPVtqKHt0eXBlOlN0cmluZ30pXSxkPVtqKHt0eXBlOkFycmF5fSldLHg9W2ooe3R5cGU6U3RyaW5nfSldLHk9W2ooe3R5cGU6U3RyaW5nfSldLE89W2ooe3R5cGU6Qm9vbGVhbn0pXSxGPVtqKHt0eXBlOkJvb2xlYW59KV0sUj1baih7dHlwZTpTdHJpbmcscmVmbGVjdDohMH0pXSwkPVtqKHt0eXBlOkJvb2xlYW59KV0scT1baih7dHlwZTpBcnJheX0pXSxlZT1baih7YXR0cmlidXRlOiExfSldLHdlPVtqKHthdHRyaWJ1dGU6ITF9KV0sa2U9W2ooe3R5cGU6Qm9vbGVhbn0pXSxMPVtqKHthdHRyaWJ1dGU6ITF9KV0sWD1baih7YXR0cmlidXRlOiExfSldLExlPVtqKHt0eXBlOk9iamVjdH0pXSx0ZT1baih7dHlwZTpBcnJheX0pXSxDZT1baih7dHlwZTpCb29sZWFuLHJlZmxlY3Q6ITAsYXR0cmlidXRlOiJzaG93LXZlcnRpY2FsLWxpbmVzIn0pXSxTZT1baih7dHlwZTpCb29sZWFuLHJlZmxlY3Q6ITAsYXR0cmlidXRlOiJzaG93LWhvcml6b250YWwtbGluZXMifSldLEs9W2ooe3R5cGU6Qm9vbGVhbixyZWZsZWN0OiEwLGF0dHJpYnV0ZToic2hvdy1ncmlkIn0pXSxtZT1baih7YXR0cmlidXRlOiExfSldLE10PVtqKHthdHRyaWJ1dGU6ITF9KV0sV3Q9W2ooe3R5cGU6U3RyaW5nfSldLF9lPVtqKHthdHRyaWJ1dGU6ITF9KV0sWXI9W2ooe3R5cGU6Qm9vbGVhbixhdHRyaWJ1dGU6InNob3ctY29sdW1uLWZpbHRlcnMifSldLFdvPVtqKHt0eXBlOkJvb2xlYW4scmVmbGVjdDohMCxhdHRyaWJ1dGU6InN0aWNreS1oZWFkZXIifSldLEJ0PVtqKHt0eXBlOlN0cmluZ30pXSxuMT1baih7dHlwZTpTdHJpbmd9KV0sWW89W2ooe2F0dHJpYnV0ZTohMX0pXSxQcih0aGlzLG51bGwsbix7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImhlYWRpbmcxIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpwZT0+ImhlYWRpbmcxImluIHBlLGdldDpwZT0+cGUuaGVhZGluZzEsc2V0OihwZSxCZSk9PntwZS5oZWFkaW5nMT1CZX19LG1ldGFkYXRhOlRlfSxvLHMpLFByKHRoaXMsbnVsbCxsLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiaGVhZGluZzIiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOnBlPT4iaGVhZGluZzIiaW4gcGUsZ2V0OnBlPT5wZS5oZWFkaW5nMixzZXQ6KHBlLEJlKT0+e3BlLmhlYWRpbmcyPUJlfX0sbWV0YWRhdGE6VGV9LGMsdSksUHIodGhpcyxudWxsLGQse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJkYXRhIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpwZT0+ImRhdGEiaW4gcGUsZ2V0OnBlPT5wZS5kYXRhLHNldDoocGUsQmUpPT57cGUuZGF0YT1CZX19LG1ldGFkYXRhOlRlfSxoLGYpLFByKHRoaXMsbnVsbCx4LHtraW5kOiJhY2Nlc3NvciIsbmFtZToia2V5IixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpwZT0+ImtleSJpbiBwZSxnZXQ6cGU9PnBlLmtleSxzZXQ6KHBlLEJlKT0+e3BlLmtleT1CZX19LG1ldGFkYXRhOlRlfSx2LGIpLFByKHRoaXMsbnVsbCx5LHtraW5kOiJhY2Nlc3NvciIsbmFtZToibGFiZWwiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOnBlPT4ibGFiZWwiaW4gcGUsZ2V0OnBlPT5wZS5sYWJlbCxzZXQ6KHBlLEJlKT0+e3BlLmxhYmVsPUJlfX0sbWV0YWRhdGE6VGV9LHcsayksUHIodGhpcyxudWxsLE8se2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJkaXNhYmxlZCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6cGU9PiJkaXNhYmxlZCJpbiBwZSxnZXQ6cGU9PnBlLmRpc2FibGVkLHNldDoocGUsQmUpPT57cGUuZGlzYWJsZWQ9QmV9fSxtZXRhZGF0YTpUZX0seixNKSxQcih0aGlzLG51bGwsRix7a2luZDoiYWNjZXNzb3IiLG5hbWU6InJlcXVpcmVkIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpwZT0+InJlcXVpcmVkImluIHBlLGdldDpwZT0+cGUucmVxdWlyZWQsc2V0OihwZSxCZSk9PntwZS5yZXF1aXJlZD1CZX19LG1ldGFkYXRhOlRlfSxELE4pLFByKHRoaXMsbnVsbCxSLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiZGF0YU5hbWUiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOnBlPT4iZGF0YU5hbWUiaW4gcGUsZ2V0OnBlPT5wZS5kYXRhTmFtZSxzZXQ6KHBlLEJlKT0+e3BlLmRhdGFOYW1lPUJlfX0sbWV0YWRhdGE6VGV9LF8sUyksUHIodGhpcyxudWxsLCQse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJzZWFyY2hhYmxlIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpwZT0+InNlYXJjaGFibGUiaW4gcGUsZ2V0OnBlPT5wZS5zZWFyY2hhYmxlLHNldDoocGUsQmUpPT57cGUuc2VhcmNoYWJsZT1CZX19LG1ldGFkYXRhOlRlfSxULEUpLFByKHRoaXMsbnVsbCxxLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiZGF0YUFjdGlvbnMiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOnBlPT4iZGF0YUFjdGlvbnMiaW4gcGUsZ2V0OnBlPT5wZS5kYXRhQWN0aW9ucyxzZXQ6KHBlLEJlKT0+e3BlLmRhdGFBY3Rpb25zPUJlfX0sbWV0YWRhdGE6VGV9LEIsRyksUHIodGhpcyxudWxsLGVlLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiY29sdW1ucyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6cGU9PiJjb2x1bW5zImluIHBlLGdldDpwZT0+cGUuY29sdW1ucyxzZXQ6KHBlLEJlKT0+e3BlLmNvbHVtbnM9QmV9fSxtZXRhZGF0YTpUZX0sUCxnZSksUHIodGhpcyxudWxsLHdlLHtraW5kOiJhY2Nlc3NvciIsbmFtZToicm93S2V5IixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpwZT0+InJvd0tleSJpbiBwZSxnZXQ6cGU9PnBlLnJvd0tleSxzZXQ6KHBlLEJlKT0+e3BlLnJvd0tleT1CZX19LG1ldGFkYXRhOlRlfSxJLG5lKSxQcih0aGlzLG51bGwsa2Use2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJhdWdtZW50RnJvbURpc3BsYXlGdW5jdGlvbiIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6cGU9PiJhdWdtZW50RnJvbURpc3BsYXlGdW5jdGlvbiJpbiBwZSxnZXQ6cGU9PnBlLmF1Z21lbnRGcm9tRGlzcGxheUZ1bmN0aW9uLHNldDoocGUsQmUpPT57cGUuYXVnbWVudEZyb21EaXNwbGF5RnVuY3Rpb249QmV9fSxtZXRhZGF0YTpUZX0sWSxBKSxQcih0aGlzLG51bGwsTCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImRpc3BsYXlGdW5jdGlvbiIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6cGU9PiJkaXNwbGF5RnVuY3Rpb24iaW4gcGUsZ2V0OnBlPT5wZS5kaXNwbGF5RnVuY3Rpb24sc2V0OihwZSxCZSk9PntwZS5kaXNwbGF5RnVuY3Rpb249QmV9fSxtZXRhZGF0YTpUZX0sVSxWKSxQcih0aGlzLG51bGwsWCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InJldmVyc2VEaXNwbGF5RnVuY3Rpb24iLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOnBlPT4icmV2ZXJzZURpc3BsYXlGdW5jdGlvbiJpbiBwZSxnZXQ6cGU9PnBlLnJldmVyc2VEaXNwbGF5RnVuY3Rpb24sc2V0OihwZSxCZSk9PntwZS5yZXZlcnNlRGlzcGxheUZ1bmN0aW9uPUJlfX0sbWV0YWRhdGE6VGV9LGRlLHZlKSxQcih0aGlzLG51bGwsTGUse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJzZWxlY3RlZERhdGFSb3ciLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOnBlPT4ic2VsZWN0ZWREYXRhUm93ImluIHBlLGdldDpwZT0+cGUuc2VsZWN0ZWREYXRhUm93LHNldDoocGUsQmUpPT57cGUuc2VsZWN0ZWREYXRhUm93PUJlfX0sbWV0YWRhdGE6VGV9LFcsSCksUHIodGhpcyxudWxsLHRlLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiZWRpdGFibGVGaWVsZHMiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOnBlPT4iZWRpdGFibGVGaWVsZHMiaW4gcGUsZ2V0OnBlPT5wZS5lZGl0YWJsZUZpZWxkcyxzZXQ6KHBlLEJlKT0+e3BlLmVkaXRhYmxlRmllbGRzPUJlfX0sbWV0YWRhdGE6VGV9LGJlLHVlKSxQcih0aGlzLG51bGwsQ2Use2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJzaG93VmVydGljYWxMaW5lcyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6cGU9PiJzaG93VmVydGljYWxMaW5lcyJpbiBwZSxnZXQ6cGU9PnBlLnNob3dWZXJ0aWNhbExpbmVzLHNldDoocGUsQmUpPT57cGUuc2hvd1ZlcnRpY2FsTGluZXM9QmV9fSxtZXRhZGF0YTpUZX0saGUsaWUpLFByKHRoaXMsbnVsbCxTZSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InNob3dIb3Jpem9udGFsTGluZXMiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOnBlPT4ic2hvd0hvcml6b250YWxMaW5lcyJpbiBwZSxnZXQ6cGU9PnBlLnNob3dIb3Jpem9udGFsTGluZXMsc2V0OihwZSxCZSk9PntwZS5zaG93SG9yaXpvbnRhbExpbmVzPUJlfX0sbWV0YWRhdGE6VGV9LEllLFplKSxQcih0aGlzLG51bGwsSyx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InNob3dHcmlkIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpwZT0+InNob3dHcmlkImluIHBlLGdldDpwZT0+cGUuc2hvd0dyaWQsc2V0OihwZSxCZSk9PntwZS5zaG93R3JpZD1CZX19LG1ldGFkYXRhOlRlfSxaLEopLFByKHRoaXMsbnVsbCxtZSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InNvcnRLZXkiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOnBlPT4ic29ydEtleSJpbiBwZSxnZXQ6cGU9PnBlLnNvcnRLZXksc2V0OihwZSxCZSk9PntwZS5zb3J0S2V5PUJlfX0sbWV0YWRhdGE6VGV9LEVlLFVlKSxQcih0aGlzLG51bGwsTXQse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJzb3J0RGlyIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpwZT0+InNvcnREaXIiaW4gcGUsZ2V0OnBlPT5wZS5zb3J0RGlyLHNldDoocGUsQmUpPT57cGUuc29ydERpcj1CZX19LG1ldGFkYXRhOlRlfSxpdCxMdCksUHIodGhpcyxudWxsLFd0LHtraW5kOiJhY2Nlc3NvciIsbmFtZToiZmlsdGVyVGV4dCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6cGU9PiJmaWx0ZXJUZXh0ImluIHBlLGdldDpwZT0+cGUuZmlsdGVyVGV4dCxzZXQ6KHBlLEJlKT0+e3BlLmZpbHRlclRleHQ9QmV9fSxtZXRhZGF0YTpUZX0sYWUsc2UpLFByKHRoaXMsbnVsbCxfZSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImNvbHVtbkZpbHRlcnMiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOnBlPT4iY29sdW1uRmlsdGVycyJpbiBwZSxnZXQ6cGU9PnBlLmNvbHVtbkZpbHRlcnMsc2V0OihwZSxCZSk9PntwZS5jb2x1bW5GaWx0ZXJzPUJlfX0sbWV0YWRhdGE6VGV9LHZ0LFN0KSxQcih0aGlzLG51bGwsWXIse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJzaG93Q29sdW1uRmlsdGVycyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6cGU9PiJzaG93Q29sdW1uRmlsdGVycyJpbiBwZSxnZXQ6cGU9PnBlLnNob3dDb2x1bW5GaWx0ZXJzLHNldDoocGUsQmUpPT57cGUuc2hvd0NvbHVtbkZpbHRlcnM9QmV9fSxtZXRhZGF0YTpUZX0sZG4sVW8pLFByKHRoaXMsbnVsbCxXbyx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InN0aWNreUhlYWRlciIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6cGU9PiJzdGlja3lIZWFkZXIiaW4gcGUsZ2V0OnBlPT5wZS5zdGlja3lIZWFkZXIsc2V0OihwZSxCZSk9PntwZS5zdGlja3lIZWFkZXI9QmV9fSxtZXRhZGF0YTpUZX0sTWUsJGUpLFByKHRoaXMsbnVsbCxCdCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InNlYXJjaE1vZGUiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOnBlPT4ic2VhcmNoTW9kZSJpbiBwZSxnZXQ6cGU9PnBlLnNlYXJjaE1vZGUsc2V0OihwZSxCZSk9PntwZS5zZWFyY2hNb2RlPUJlfX0sbWV0YWRhdGE6VGV9LEZyLFpyKSxQcih0aGlzLG51bGwsbjEse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJzZWxlY3Rpb25Nb2RlIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpwZT0+InNlbGVjdGlvbk1vZGUiaW4gcGUsZ2V0OnBlPT5wZS5zZWxlY3Rpb25Nb2RlLHNldDoocGUsQmUpPT57cGUuc2VsZWN0aW9uTW9kZT1CZX19LG1ldGFkYXRhOlRlfSxYcixHbyksUHIodGhpcyxudWxsLFlvLHtraW5kOiJhY2Nlc3NvciIsbmFtZToic2VsZWN0ZWRJZHMiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOnBlPT4ic2VsZWN0ZWRJZHMiaW4gcGUsZ2V0OnBlPT5wZS5zZWxlY3RlZElkcyxzZXQ6KHBlLEJlKT0+e3BlLnNlbGVjdGVkSWRzPUJlfX0sbWV0YWRhdGE6VGV9LFpvLHdoKSxQcihudWxsLHQ9e3ZhbHVlOml9LGUse2tpbmQ6ImNsYXNzIixuYW1lOmkubmFtZSxtZXRhZGF0YTpUZX0sbnVsbCxyKSxNaD1pPXQudmFsdWUsVGUmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShpLFN5bWJvbC5tZXRhZGF0YSx7ZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITAsdmFsdWU6VGV9KX1zdGF0aWMgZGVtbz1wbHI7c3RhdGljIGRlbW9Hcm91cHM9WyJEYXRhIFZpZXciXTsjZT1zdCh0aGlzLG8sImhlYWRpbmcgMSIpO2dldCBoZWFkaW5nMSgpe3JldHVybiB0aGlzLiNlfXNldCBoZWFkaW5nMShUZSl7dGhpcy4jZT1UZX0jdD0oc3QodGhpcyxzKSxzdCh0aGlzLGMsImhlYWRpbmcgMiIpKTtnZXQgaGVhZGluZzIoKXtyZXR1cm4gdGhpcy4jdH1zZXQgaGVhZGluZzIoVGUpe3RoaXMuI3Q9VGV9I3I9KHN0KHRoaXMsdSksc3QodGhpcyxoLFtdKSk7Z2V0IGRhdGEoKXtyZXR1cm4gdGhpcy4jcn1zZXQgZGF0YShUZSl7dGhpcy4jcj1UZX0jaT0oc3QodGhpcyxmKSxzdCh0aGlzLHYsdm9pZCAwKSk7Z2V0IGtleSgpe3JldHVybiB0aGlzLiNpfXNldCBrZXkoVGUpe3RoaXMuI2k9VGV9I2E9KHN0KHRoaXMsYiksc3QodGhpcyx3LHZvaWQgMCkpO2dldCBsYWJlbCgpe3JldHVybiB0aGlzLiNhfXNldCBsYWJlbChUZSl7dGhpcy4jYT1UZX0jbj0oc3QodGhpcyxrKSxzdCh0aGlzLHosITEpKTtnZXQgZGlzYWJsZWQoKXtyZXR1cm4gdGhpcy4jbn1zZXQgZGlzYWJsZWQoVGUpe3RoaXMuI249VGV9I289KHN0KHRoaXMsTSksc3QodGhpcyxELCExKSk7Z2V0IHJlcXVpcmVkKCl7cmV0dXJuIHRoaXMuI299c2V0IHJlcXVpcmVkKFRlKXt0aGlzLiNvPVRlfWdldCB2YWx1ZSgpe3JldHVybiB0aGlzLmRhdGF9c2V0IHZhbHVlKFRlKXt9Y2hhbmdlU3ViamVjdD0oc3QodGhpcyxOKSxuZXcganQuc21hcnRyeC5yeGpzLlN1YmplY3QpOyNzPXN0KHRoaXMsXyx2b2lkIDApO2dldCBkYXRhTmFtZSgpe3JldHVybiB0aGlzLiNzfXNldCBkYXRhTmFtZShUZSl7dGhpcy4jcz1UZX0jbD0oc3QodGhpcyxTKSxzdCh0aGlzLFQsITApKTtnZXQgc2VhcmNoYWJsZSgpe3JldHVybiB0aGlzLiNsfXNldCBzZWFyY2hhYmxlKFRlKXt0aGlzLiNsPVRlfSNjPShzdCh0aGlzLEUpLHN0KHRoaXMsQixbXSkpO2dldCBkYXRhQWN0aW9ucygpe3JldHVybiB0aGlzLiNjfXNldCBkYXRhQWN0aW9ucyhUZSl7dGhpcy4jYz1UZX0jZD0oc3QodGhpcyxHKSxzdCh0aGlzLFAsW10pKTtnZXQgY29sdW1ucygpe3JldHVybiB0aGlzLiNkfXNldCBjb2x1bW5zKFRlKXt0aGlzLiNkPVRlfSN1PShzdCh0aGlzLGdlKSxzdCh0aGlzLEksdm9pZCAwKSk7Z2V0IHJvd0tleSgpe3JldHVybiB0aGlzLiN1fXNldCByb3dLZXkoVGUpe3RoaXMuI3U9VGV9I3A9KHN0KHRoaXMsbmUpLHN0KHRoaXMsWSwhMSkpO2dldCBhdWdtZW50RnJvbURpc3BsYXlGdW5jdGlvbigpe3JldHVybiB0aGlzLiNwfXNldCBhdWdtZW50RnJvbURpc3BsYXlGdW5jdGlvbihUZSl7dGhpcy4jcD1UZX0jaD0oc3QodGhpcyxBKSxzdCh0aGlzLFUsVGU9PlRlKSk7Z2V0IGRpc3BsYXlGdW5jdGlvbigpe3JldHVybiB0aGlzLiNofXNldCBkaXNwbGF5RnVuY3Rpb24oVGUpe3RoaXMuI2g9VGV9I2Y9KHN0KHRoaXMsViksc3QodGhpcyxkZSxUZT0+VGUpKTtnZXQgcmV2ZXJzZURpc3BsYXlGdW5jdGlvbigpe3JldHVybiB0aGlzLiNmfXNldCByZXZlcnNlRGlzcGxheUZ1bmN0aW9uKFRlKXt0aGlzLiNmPVRlfSNtPShzdCh0aGlzLHZlKSxzdCh0aGlzLFcsdm9pZCAwKSk7Z2V0IHNlbGVjdGVkRGF0YVJvdygpe3JldHVybiB0aGlzLiNtfXNldCBzZWxlY3RlZERhdGFSb3coVGUpe3RoaXMuI209VGV9I2c9KHN0KHRoaXMsSCksc3QodGhpcyxiZSxbXSkpO2dldCBlZGl0YWJsZUZpZWxkcygpe3JldHVybiB0aGlzLiNnfXNldCBlZGl0YWJsZUZpZWxkcyhUZSl7dGhpcy4jZz1UZX0jYj0oc3QodGhpcyx1ZSksc3QodGhpcyxoZSwhMSkpO2dldCBzaG93VmVydGljYWxMaW5lcygpe3JldHVybiB0aGlzLiNifXNldCBzaG93VmVydGljYWxMaW5lcyhUZSl7dGhpcy4jYj1UZX0jdj0oc3QodGhpcyxpZSksc3QodGhpcyxJZSwhMSkpO2dldCBzaG93SG9yaXpvbnRhbExpbmVzKCl7cmV0dXJuIHRoaXMuI3Z9c2V0IHNob3dIb3Jpem9udGFsTGluZXMoVGUpe3RoaXMuI3Y9VGV9I3g9KHN0KHRoaXMsWmUpLHN0KHRoaXMsWiwhMCkpO2dldCBzaG93R3JpZCgpe3JldHVybiB0aGlzLiN4fXNldCBzaG93R3JpZChUZSl7dGhpcy4jeD1UZX1maWxlcz0oc3QodGhpcyxKKSxbXSk7ZmlsZVdlYWtNYXA9bmV3IFdlYWtNYXA7ZGF0YUNoYW5nZVN1YmplY3Q9bmV3IGp0LnNtYXJ0cngucnhqcy5TdWJqZWN0OyN5PXN0KHRoaXMsRWUsdm9pZCAwKTtnZXQgc29ydEtleSgpe3JldHVybiB0aGlzLiN5fXNldCBzb3J0S2V5KFRlKXt0aGlzLiN5PVRlfSN3PShzdCh0aGlzLFVlKSxzdCh0aGlzLGl0LG51bGwpKTtnZXQgc29ydERpcigpe3JldHVybiB0aGlzLiN3fXNldCBzb3J0RGlyKFRlKXt0aGlzLiN3PVRlfSNNPShzdCh0aGlzLEx0KSxzdCh0aGlzLGFlLCIiKSk7Z2V0IGZpbHRlclRleHQoKXtyZXR1cm4gdGhpcy4jTX1zZXQgZmlsdGVyVGV4dChUZSl7dGhpcy4jTT1UZX0jaz0oc3QodGhpcyxzZSksc3QodGhpcyx2dCx7fSkpO2dldCBjb2x1bW5GaWx0ZXJzKCl7cmV0dXJuIHRoaXMuI2t9c2V0IGNvbHVtbkZpbHRlcnMoVGUpe3RoaXMuI2s9VGV9I1M9KHN0KHRoaXMsU3QpLHN0KHRoaXMsZG4sITEpKTtnZXQgc2hvd0NvbHVtbkZpbHRlcnMoKXtyZXR1cm4gdGhpcy4jU31zZXQgc2hvd0NvbHVtbkZpbHRlcnMoVGUpe3RoaXMuI1M9VGV9I3o9KHN0KHRoaXMsVW8pLHN0KHRoaXMsTWUsITEpKTtnZXQgc3RpY2t5SGVhZGVyKCl7cmV0dXJuIHRoaXMuI3p9c2V0IHN0aWNreUhlYWRlcihUZSl7dGhpcy4jej1UZX0jQz0oc3QodGhpcywkZSksc3QodGhpcyxGciwidGFibGUiKSk7Z2V0IHNlYXJjaE1vZGUoKXtyZXR1cm4gdGhpcy4jQ31zZXQgc2VhcmNoTW9kZShUZSl7dGhpcy4jQz1UZX1fX3NlYXJjaFRleHRTdWI9c3QodGhpcyxacik7X19zZWFyY2hNb2RlU3ViOyNUPXN0KHRoaXMsWHIsIm5vbmUiKTtnZXQgc2VsZWN0aW9uTW9kZSgpe3JldHVybiB0aGlzLiNUfXNldCBzZWxlY3Rpb25Nb2RlKFRlKXt0aGlzLiNUPVRlfSNfPShzdCh0aGlzLEdvKSxzdCh0aGlzLFpvLG5ldyBTZXQpKTtnZXQgc2VsZWN0ZWRJZHMoKXtyZXR1cm4gdGhpcy4jX31zZXQgc2VsZWN0ZWRJZHMoVGUpe3RoaXMuI189VGV9X3Jvd0lkTWFwPShzdCh0aGlzLHdoKSxuZXcgV2Vha01hcCk7X3Jvd0lkQ291bnRlcj0wO2NvbnN0cnVjdG9yKCl7c3VwZXIoKX1zdGF0aWMgc3R5bGVzPWZscjtyZW5kZXIoKXtsZXQgcGU9QXJyYXkuaXNBcnJheSh0aGlzLmNvbHVtbnMpJiZ0aGlzLmNvbHVtbnMubGVuZ3RoPjA/Z2xyKHRoaXMuY29sdW1ucyx0aGlzLmF1Z21lbnRGcm9tRGlzcGxheUZ1bmN0aW9uLHRoaXMuZGlzcGxheUZ1bmN0aW9uLHRoaXMuZGF0YSk6RDZlKHRoaXMuZGlzcGxheUZ1bmN0aW9uLHRoaXMuZGF0YSksQmU9eGxyKHRoaXMuZmlsdGVyVGV4dCx0aGlzLnNlYXJjaE1vZGU9PT0iZGF0YSI/ImRhdGEiOiJ0YWJsZSIscGUpLEYxPWJscih0aGlzLmRhdGEscGUsdGhpcy5zb3J0S2V5LHRoaXMuc29ydERpcix0aGlzLmZpbHRlclRleHQsdGhpcy5jb2x1bW5GaWx0ZXJzLHRoaXMuc2VhcmNoTW9kZT09PSJkYXRhIj8iZGF0YSI6InRhYmxlIixCZXx8dm9pZCAwKTtyZXR1cm4gdGhpcy5fbGFzdFZpZXdEYXRhPUYxLENgCiAgICAgIDxkaXYgY2xhc3M9Im1haW5ib3giPgogICAgICAgIDwhLS0gdGhlIGhlYWRpbmcgcGFydCAtLT4KICAgICAgICA8ZGl2IGNsYXNzPSJoZWFkZXIiPgogICAgICAgICAgPGRpdiBjbGFzcz0iaGVhZGluZ0NvbnRhaW5lciI+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9ImhlYWRpbmcgaGVhZGluZzEiPiR7dGhpcy5sYWJlbHx8dGhpcy5oZWFkaW5nMX08L2Rpdj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0iaGVhZGluZyBoZWFkaW5nMiI+JHt0aGlzLmhlYWRpbmcyfTwvZGl2PgogICAgICAgICAgPC9kaXY+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJoZWFkZXJBY3Rpb25zIj4KICAgICAgICAgICAgJHtFby5yZXNvbHZlRXhlYyhhc3luYygpPT57bGV0IHh0PVtdO2ZvcihsZXQgUXIgb2YgdGhpcy5kYXRhQWN0aW9ucylRci50eXBlPy5pbmNsdWRlcygiaGVhZGVyIikmJnh0LnB1c2goQ2A8ZGl2CiAgICAgICAgICAgICAgICAgICAgY2xhc3M9ImhlYWRlckFjdGlvbiIKICAgICAgICAgICAgICAgICAgICBAY2xpY2s9JHsoKT0+e1FyLmFjdGlvbkZ1bmMoe2l0ZW06dGhpcy5zZWxlY3RlZERhdGFSb3csdGFibGU6dGhpc30pfX0KICAgICAgICAgICAgICAgICAgPgogICAgICAgICAgICAgICAgICAgICR7UXIuaWNvbk5hbWU/Q2A8ZGVlcy1pY29uIC5pY29uU2l6ZT0kezE0fSAuaWNvbj0ke1FyLmljb25OYW1lfT48L2RlZXMtaWNvbj4KICAgICAgICAgICAgICAgICAgICAgICAgICAke1FyLm5hbWV9YDpRci5uYW1lfQogICAgICAgICAgICAgICAgICA8L2Rpdj5gKTtyZXR1cm4geHR9KX0KICAgICAgICAgIDwvZGl2PgogICAgICAgIDwvZGl2PgogICAgICAgIDxkaXYgY2xhc3M9ImhlYWRpbmdTZXBhcmF0aW9uIj48L2Rpdj4KICAgICAgICA8ZGl2IGNsYXNzPSJzZWFyY2hHcmlkIGhpZGRlbiI+CiAgICAgICAgICA8ZGVlcy1pbnB1dC10ZXh0CiAgICAgICAgICAgIC5sYWJlbD0keyJsdWNlbmUgc3ludGF4IHNlYXJjaCJ9CiAgICAgICAgICAgIC5kZXNjcmlwdGlvbj0ke2AKICAgICAgICAgICAgICBZb3UgY2FuIHVzZSB0aGUgbHVjZW5lIHN5bnRheCB0byBzZWFyY2ggZm9yIGRhdGEsIGUuZy46CiAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgXGBcYFxgCiAgICAgICAgICAgICAgbmFtZTogImpvaG4iIEFORCBhZ2U6IDE4CiAgICAgICAgICAgICAgXGBcYFxgCiAgICAgICAgICAgICAgCiAgICAgICAgICAgIGB9CiAgICAgICAgICA+PC9kZWVzLWlucHV0LXRleHQ+CiAgICAgICAgICA8ZGVlcy1pbnB1dC1tdWx0aXRvZ2dsZQogICAgICAgICAgICAubGFiZWw9JHsic2VhcmNoIG1vZGUifQogICAgICAgICAgICAub3B0aW9ucz0ke1sidGFibGUiLCJkYXRhIiwic2VydmVyIl19CiAgICAgICAgICAgIC5zZWxlY3RlZE9wdGlvbj0keyJ0YWJsZSJ9CiAgICAgICAgICAgIC5kZXNjcmlwdGlvbj0ke2AKICAgICAgICAgICAgICBUaGVyZSBhcmUgdGhyZWUgYmFzaWMgbW9kZXM6CiAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgKiB0YWJsZTogb25seSBzZWFyY2hlcyBkYXRhIGFscmVhZHkgaW4gdGhlIHRhYmxlCiAgICAgICAgICAgICAgKiBkYXRhOiBzZWFyY2hlcyBvcmlnaW5hbCBkYXRhLCBpZ25vcmluZyB0YWJsZSB0cmFuc2Zvcm1zCiAgICAgICAgICAgICAgKiBzZXJ2ZXI6IHNlYXJjaGVzIGRhdGEgb24gdGhlIHNlcnZlcgogICAgICAgICAgICAgIAogICAgICAgICAgICBgfQogICAgICAgICAgPjwvZGVlcy1pbnB1dC1tdWx0aXRvZ2dsZT4KICAgICAgICA8L2Rpdj4KCiAgICAgICAgPCEtLSB0aGUgYWN0dWFsIHRhYmxlIC0tPgogICAgICAgIDxzdHlsZT48L3N0eWxlPgogICAgICAgICR7dGhpcy5kYXRhLmxlbmd0aD4wP0NgCiAgICAgICAgICAgICAgPGRpdiBjbGFzcz0idGFibGVTY3JvbGwiPgogICAgICAgICAgICAgIDx0YWJsZT4KICAgICAgICAgICAgICAgIDx0aGVhZD4KICAgICAgICAgICAgICAgICAgPHRyPgogICAgICAgICAgICAgICAgICAgICR7dGhpcy5zZWxlY3Rpb25Nb2RlIT09Im5vbmUiP0NgCiAgICAgICAgICAgICAgICAgICAgICAgICAgPHRoIHN0eWxlPSJ3aWR0aDo0MnB4OyB0ZXh0LWFsaWduOmNlbnRlcjsiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgJHt0aGlzLnNlbGVjdGlvbk1vZGU9PT0ibXVsdGkiP0NgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGVlcy1pbnB1dC1jaGVja2JveAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAudmFsdWU9JHt0aGlzLmFyZUFsbFZpc2libGVTZWxlY3RlZCgpfQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuaW5kZXRlcm1pbmF0ZT0ke3RoaXMuaXNWaXNpYmxlU2VsZWN0aW9uSW5kZXRlcm1pbmF0ZSgpfQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBAbmV3VmFsdWU9JHt4dD0+e3h0LnN0b3BQcm9wYWdhdGlvbigpLHRoaXMuc2V0U2VsZWN0VmlzaWJsZSh4dC5kZXRhaWw9PT0hMCl9fQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPjwvZGVlcy1pbnB1dC1jaGVja2JveD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBgOkNgYH0KICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RoPgogICAgICAgICAgICAgICAgICAgICAgICBgOkNgYH0KICAgICAgICAgICAgICAgICAgICAke3BlLmZpbHRlcih4dD0+IXh0LmhpZGRlbikubWFwKHh0PT57bGV0IFFyPSEheHQuc29ydGFibGUsUmE9dGhpcy5nZXRBcmlhU29ydCh4dCk7cmV0dXJuIENgCiAgICAgICAgICAgICAgICAgICAgICAgICAgPHRoCiAgICAgICAgICAgICAgICAgICAgICAgICAgICByb2xlPSJjb2x1bW5oZWFkZXIiCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcmlhLXNvcnQ9JHtSYX0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0eWxlPSIke1FyPyJjdXJzb3I6IHBvaW50ZXI7IjoiIn0iCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBAY2xpY2s9JHsoKT0+UXI/dGhpcy50b2dnbGVTb3J0KHh0KTpudWxsfQogICAgICAgICAgICAgICAgICAgICAgICAgID4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICR7eHQuaGVhZGVyPz94dC5rZXl9CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAke3RoaXMucmVuZGVyU29ydEluZGljYXRvcih4dCl9CiAgICAgICAgICAgICAgICAgICAgICAgICAgPC90aD5gfSl9CiAgICAgICAgICAgICAgICAgICAgJHsoKCk9PntpZih0aGlzLmRhdGFBY3Rpb25zJiZ0aGlzLmRhdGFBY3Rpb25zLmxlbmd0aD4wKXJldHVybiBDYCA8dGggY2xhc3M9ImFjdGlvbnNDb2wiPkFjdGlvbnM8L3RoPiBgfSkoKX0KICAgICAgICAgICAgICAgICAgPC90cj4KICAgICAgICAgICAgICAgICAgJHt0aGlzLnNob3dDb2x1bW5GaWx0ZXJzP0NgPHRyIGNsYXNzPSJmaWx0ZXJzUm93Ij4KICAgICAgICAgICAgICAgICAgICAgICAgJHt0aGlzLnNlbGVjdGlvbk1vZGUhPT0ibm9uZSI/Q2A8dGggc3R5bGU9IndpZHRoOjQycHg7Ij48L3RoPmA6Q2BgfQogICAgICAgICAgICAgICAgICAgICAgICAke3BlLmZpbHRlcih4dD0+IXh0LmhpZGRlbikubWFwKHh0PT57bGV0IFFyPVN0cmluZyh4dC5rZXkpO3JldHVybiB4dC5maWx0ZXJhYmxlPT09ITE/Q2A8dGg+PC90aD5gOkNgPHRoPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT0idGV4dCIgcGxhY2Vob2xkZXI9IkZpbHRlci4uLiIgLnZhbHVlPSR7dGhpcy5jb2x1bW5GaWx0ZXJzW1FyXXx8IiJ9CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQGlucHV0PSR7UmE9PnRoaXMuc2V0Q29sdW1uRmlsdGVyKFFyLFJhLnRhcmdldC52YWx1ZSl9IC8+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RoPmB9KX0KICAgICAgICAgICAgICAgICAgICAgICAgJHsoKCk9PntpZih0aGlzLmRhdGFBY3Rpb25zJiZ0aGlzLmRhdGFBY3Rpb25zLmxlbmd0aD4wKXJldHVybiBDYCA8dGg+PC90aD4gYH0pKCl9CiAgICAgICAgICAgICAgICAgICAgICA8L3RyPmA6Q2BgfQogICAgICAgICAgICAgICAgPC90aGVhZD4KICAgICAgICAgICAgICAgIDx0Ym9keT4KICAgICAgICAgICAgICAgICAgJHtGMS5tYXAoKHh0LFFyKT0+e2xldCBSYT1odD0+aHQudGFnTmFtZT09PSJUUiI/aHQ6UmEoaHQucGFyZW50RWxlbWVudCk7cmV0dXJuIENgCiAgICAgICAgICAgICAgICAgICAgICA8dHIKICAgICAgICAgICAgICAgICAgICAgICAgQGNsaWNrPSR7KCk9PntpZih0aGlzLnNlbGVjdGVkRGF0YVJvdz14dCx0aGlzLnNlbGVjdGlvbk1vZGU9PT0ic2luZ2xlIil7bGV0IGh0PXRoaXMuZ2V0Um93SWQoeHQpO3RoaXMuc2VsZWN0ZWRJZHMuY2xlYXIoKSx0aGlzLnNlbGVjdGVkSWRzLmFkZChodCksdGhpcy5lbWl0U2VsZWN0aW9uQ2hhbmdlKCksdGhpcy5yZXF1ZXN0VXBkYXRlKCl9fX0KICAgICAgICAgICAgICAgICAgICAgICAgQGRyYWdlbnRlcj0ke2FzeW5jIGh0PT57aHQucHJldmVudERlZmF1bHQoKSxodC5zdG9wUHJvcGFnYXRpb24oKTtsZXQgWTE9UmEoaHQudGFyZ2V0KTtzZXRUaW1lb3V0KCgpPT57WTEuY2xhc3NMaXN0LmFkZCgiaGFzQXR0YWNobWVudCIpfSwwKX19CiAgICAgICAgICAgICAgICAgICAgICAgIEBkcmFnbGVhdmU9JHthc3luYyBodD0+e2h0LnByZXZlbnREZWZhdWx0KCksaHQuc3RvcFByb3BhZ2F0aW9uKCksUmEoaHQudGFyZ2V0KS5jbGFzc0xpc3QucmVtb3ZlKCJoYXNBdHRhY2htZW50Iil9fQogICAgICAgICAgICAgICAgICAgICAgICBAZHJhZ292ZXI9JHthc3luYyBodD0+e2h0LnByZXZlbnREZWZhdWx0KCl9fQogICAgICAgICAgICAgICAgICAgICAgICBAZHJvcD0ke2FzeW5jIGh0PT57aHQucHJldmVudERlZmF1bHQoKTtsZXQgWTE9W107Zm9yKGxldCBYbyBvZiBBcnJheS5mcm9tKGh0LmRhdGFUcmFuc2Zlci5maWxlcykpdGhpcy5maWxlcy5wdXNoKFhvKSxZMS5wdXNoKFhvKSx0aGlzLnJlcXVlc3RVcGRhdGUoKTtsZXQgQmE9dGhpcy5maWxlV2Vha01hcC5nZXQoeHQpO0JhP0JhLnB1c2goLi4uWTEpOnRoaXMuZmlsZVdlYWtNYXAuc2V0KHh0LFkxKX19CiAgICAgICAgICAgICAgICAgICAgICAgIEBjb250ZXh0bWVudT0ke2FzeW5jIGh0PT57U3Iub3BlbkNvbnRleHRNZW51V2l0aE9wdGlvbnMoaHQsdGhpcy5nZXRBY3Rpb25zRm9yVHlwZSgiY29udGV4dG1lbnUiKS5tYXAoWTE9Pih7bmFtZTpZMS5uYW1lLGljb25OYW1lOlkxLmljb25OYW1lLGFjdGlvbjphc3luYygpPT4oYXdhaXQgWTEuYWN0aW9uRnVuYyh7aXRlbTp4dCx0YWJsZTp0aGlzfSksbnVsbCl9KSkpfX0KICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9IiR7eHQ9PT10aGlzLnNlbGVjdGVkRGF0YVJvdz8ic2VsZWN0ZWQiOiIifSIKICAgICAgICAgICAgICAgICAgICAgID4KICAgICAgICAgICAgICAgICAgICAgICAgJHt0aGlzLnNlbGVjdGlvbk1vZGUhPT0ibm9uZSI/Q2A8dGQgc3R5bGU9IndpZHRoOjQycHg7IHRleHQtYWxpZ246Y2VudGVyOyI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkZWVzLWlucHV0LWNoZWNrYm94CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLnZhbHVlPSR7dGhpcy5pc1Jvd1NlbGVjdGVkKHh0KX0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBAbmV3VmFsdWU9JHtodD0+e2h0LnN0b3BQcm9wYWdhdGlvbigpLHRoaXMuc2V0Um93U2VsZWN0ZWQoeHQsaHQuZGV0YWlsPT09ITApfX0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPjwvZGVlcy1pbnB1dC1jaGVja2JveD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdGQ+YDpDYGB9CiAgICAgICAgICAgICAgICAgICAgICAgICR7cGUuZmlsdGVyKGh0PT4haHQuaGlkZGVuKS5tYXAoKGh0LFkxKT0+e2xldCBCYT1uaCh4dCxodCx0aGlzLmRpc3BsYXlGdW5jdGlvbiksWG89aHQucmVuZGVyZXI/aHQucmVuZGVyZXIoQmEseHQse3Jvd0luZGV4OlFyLGNvbEluZGV4OlkxLGNvbHVtbjpodH0pOkJhLGtoPVN0cmluZyhodC5rZXkpO3JldHVybiBDYAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBAZGJsY2xpY2s9JHtLYj0+e2xldCBTaD10aGlzLmRhdGFBY3Rpb25zLmZpbmQoZXY9PmV2LnR5cGU/LmluY2x1ZGVzKCJkb3VibGVDbGljayIpKTt0aGlzLmVkaXRhYmxlRmllbGRzLmluY2x1ZGVzKGtoKT90aGlzLmhhbmRsZUNlbGxFZGl0aW5nKEtiLHh0LGtoKTpTaCYmU2guYWN0aW9uRnVuYyh7aXRlbTp4dCx0YWJsZTp0aGlzfSl9fQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICA+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iaW5uZXJDZWxsQ29udGFpbmVyIj4ke1hvfTwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RkPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgYH0pfQogICAgICAgICAgICAgICAgICAgICAgICAkeygoKT0+e2lmKHRoaXMuZGF0YUFjdGlvbnMmJnRoaXMuZGF0YUFjdGlvbnMubGVuZ3RoPjApcmV0dXJuIENgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZCBjbGFzcz0iYWN0aW9uc0NvbCI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iYWN0aW9uc0NvbnRhaW5lciI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAke3RoaXMuZ2V0QWN0aW9uc0ZvclR5cGUoImluUm93IikubWFwKGh0PT5DYAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPSJhY3Rpb24iCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBAY2xpY2s9JHsoKT0+aHQuYWN0aW9uRnVuYyh7aXRlbTp4dCx0YWJsZTp0aGlzfSl9CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJHtodC5pY29uTmFtZT9DYCA8ZGVlcy1pY29uIC5pY29uPSR7aHQuaWNvbk5hbWV9PjwvZGVlcy1pY29uPiBgOmh0Lm5hbWV9CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGApfQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RkPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgYH0pKCl9CiAgICAgICAgICAgICAgICAgICAgICA8L3RyPmB9KX0KICAgICAgICAgICAgICAgIDwvdGJvZHk+CiAgICAgICAgICAgICAgPC90YWJsZT4KICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgYDpDYCA8ZGl2IGNsYXNzPSJub0RhdGFTZXQiPk5vIGRhdGEgc2V0ITwvZGl2PiBgfQogICAgICAgIDxkaXYgY2xhc3M9ImZvb3RlciI+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJ0YWJsZVN0YXRpc3RpY3MiPgogICAgICAgICAgICAke3RoaXMuZGF0YS5sZW5ndGh9ICR7dGhpcy5kYXRhTmFtZXx8ImRhdGEgcm93cyJ9ICh0b3RhbCkgfAogICAgICAgICAgICAke3RoaXMuc2VsZWN0ZWREYXRhUm93P2AjICR7dGhpcy5kYXRhLmluZGV4T2YodGhpcy5zZWxlY3RlZERhdGFSb3cpKzF9YDoiTm8ifQogICAgICAgICAgICBzZWxlY3RlZAogICAgICAgICAgPC9kaXY+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJmb290ZXJBY3Rpb25zIj4KICAgICAgICAgICAgJHtFby5yZXNvbHZlRXhlYyhhc3luYygpPT57bGV0IHh0PVtdO2ZvcihsZXQgUXIgb2YgdGhpcy5kYXRhQWN0aW9ucylRci50eXBlPy5pbmNsdWRlcygiZm9vdGVyIikmJnh0LnB1c2goQ2A8ZGl2CiAgICAgICAgICAgICAgICAgICAgY2xhc3M9ImZvb3RlckFjdGlvbiIKICAgICAgICAgICAgICAgICAgICBAY2xpY2s9JHsoKT0+e1FyLmFjdGlvbkZ1bmMoe2l0ZW06dGhpcy5zZWxlY3RlZERhdGFSb3csdGFibGU6dGhpc30pfX0KICAgICAgICAgICAgICAgICAgPgogICAgICAgICAgICAgICAgICAgICR7UXIuaWNvbk5hbWU/Q2A8ZGVlcy1pY29uIC5pY29uU2l6ZT0kezE0fSAuaWNvbj0ke1FyLmljb25OYW1lfT48L2RlZXMtaWNvbj4KICAgICAgICAgICAgICAgICAgICAgICAgICAke1FyLm5hbWV9YDpRci5uYW1lfQogICAgICAgICAgICAgICAgICA8L2Rpdj5gKTtyZXR1cm4geHR9KX0KICAgICAgICAgIDwvZGl2PgogICAgICAgIDwvZGl2PgogICAgICA8L2Rpdj4KICAgIGB9YXN5bmMgZmlyc3RVcGRhdGVkKCl7fWFzeW5jIHVwZGF0ZWQoVGUpe3N1cGVyLnVwZGF0ZWQoVGUpLHRoaXMuZGV0ZXJtaW5lQ29sdW1uV2lkdGhzKCksdGhpcy5zZWFyY2hhYmxlJiYodGhpcy5kYXRhQWN0aW9ucy5maW5kKEJlPT5CZS50eXBlPy5pbmNsdWRlcygiaGVhZGVyIikmJkJlLm5hbWU9PT0iU2VhcmNoIil8fCh0aGlzLmRhdGFBY3Rpb25zLnVuc2hpZnQoe25hbWU6IlNlYXJjaCIsaWNvbk5hbWU6Imx1Y2lkZTpTZWFyY2giLHR5cGU6WyJoZWFkZXIiXSxhY3Rpb25GdW5jOmFzeW5jKCk9Pntjb25zb2xlLmxvZygib3BlbiBzZWFyY2giKSx0aGlzLnNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvcigiLnNlYXJjaEdyaWQiKS5jbGFzc0xpc3QudG9nZ2xlKCJoaWRkZW4iKX19KSxjb25zb2xlLmxvZyh0aGlzLmRhdGFBY3Rpb25zKSx0aGlzLnJlcXVlc3RVcGRhdGUoKSksdGhpcy53aXJlU2VhcmNoSW5wdXRzKCkpfV9fZGVib3VuY2VUaW1lcjtkZWJvdW5jZVJ1bihUZSxwZT0yMDApe3RoaXMuX19kZWJvdW5jZVRpbWVyJiZjbGVhclRpbWVvdXQodGhpcy5fX2RlYm91bmNlVGltZXIpLHRoaXMuX19kZWJvdW5jZVRpbWVyPXNldFRpbWVvdXQoVGUscGUpfXdpcmVTZWFyY2hJbnB1dHMoKXtsZXQgVGU9dGhpcy5zaGFkb3dSb290Py5xdWVyeVNlbGVjdG9yKCIuc2VhcmNoR3JpZCBkZWVzLWlucHV0LXRleHQiKSxwZT10aGlzLnNoYWRvd1Jvb3Q/LnF1ZXJ5U2VsZWN0b3IoIi5zZWFyY2hHcmlkIGRlZXMtaW5wdXQtbXVsdGl0b2dnbGUiKTtUZSYmIXRoaXMuX19zZWFyY2hUZXh0U3ViJiYodGhpcy5fX3NlYXJjaFRleHRTdWI9VGUuY2hhbmdlU3ViamVjdC5zdWJzY3JpYmUoQmU9PntsZXQgRjE9QmU/LnZhbHVlPz8iIjt0aGlzLmRlYm91bmNlUnVuKCgpPT57dGhpcy5zZWFyY2hNb2RlPT09InNlcnZlciI/dGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBDdXN0b21FdmVudCgic2VhcmNoUmVxdWVzdCIse2RldGFpbDp7cXVlcnk6RjEsbW9kZToic2VydmVyIn0sYnViYmxlczohMH0pKTp0aGlzLnNldEZpbHRlclRleHQoRjEpfSl9KSkscGUmJiF0aGlzLl9fc2VhcmNoTW9kZVN1YiYmKHRoaXMuX19zZWFyY2hNb2RlU3ViPXBlLmNoYW5nZVN1YmplY3Quc3Vic2NyaWJlKEJlPT57bGV0IEYxPUJlPy5zZWxlY3RlZE9wdGlvbnx8QmU/LnZhbHVlfHwidGFibGUiO2lmKEYxPT09InRhYmxlInx8RjE9PT0iZGF0YSJ8fEYxPT09InNlcnZlciIpe3RoaXMuc2VhcmNoTW9kZT1GMTtsZXQgeHQ9VGU/LnZhbHVlPz8iIjt0aGlzLmRlYm91bmNlUnVuKCgpPT57dGhpcy5zZWFyY2hNb2RlPT09InNlcnZlciI/dGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBDdXN0b21FdmVudCgic2VhcmNoUmVxdWVzdCIse2RldGFpbDp7cXVlcnk6eHQsbW9kZToic2VydmVyIn0sYnViYmxlczohMH0pKTp0aGlzLnNldEZpbHRlclRleHQoeHQpfSl9fSkpfWFzeW5jIGRldGVybWluZUNvbHVtbldpZHRocygpe2F3YWl0KGF3YWl0IHRoaXMuZG9tdG9vbHNQcm9taXNlKS5jb252ZW5pZW5jZS5zbWFydGRlbGF5LmRlbGF5Rm9yKDApO2xldCBwZT10aGlzLnNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvcigidGFibGUiKTtpZighcGUpcmV0dXJuO2xldCBCZT1wZS5yb3dzWzBdLmNlbGxzLEYxPWFzeW5jKHh0LFFyPSExKT0+e2xldCBSYT1YZS5kZWZlcigpLGh0PUJlW3h0XSxZMT13aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZShodCkud2lkdGg7aWYoaHQudGV4dENvbnRlbnQuaW5jbHVkZXMoIkFjdGlvbnMiKSl7bGV0IEJhPXRoaXMuZGF0YUFjdGlvbnMuZmlsdGVyKFhvPT5Yby50eXBlPy5pbmNsdWRlcygiaW5Sb3ciKSkubGVuZ3RoKjM2O2h0LnN0eWxlLndpZHRoPWAke01hdGgubWF4KEJhLDY4KX1weGB9ZWxzZSBodC5zdHlsZS53aWR0aD1ZMTtRciYmKHJlcXVlc3RBbmltYXRpb25GcmFtZSgoKT0+e1JhLnJlc29sdmUoKX0pLGF3YWl0IFJhLnByb21pc2UpfTtCZVtCZS5sZW5ndGgtMV0udGV4dENvbnRlbnQuaW5jbHVkZXMoIkFjdGlvbnMiKSYmYXdhaXQgRjEoQmUubGVuZ3RoLTEsITApO2ZvcihsZXQgeHQ9MDt4dDxCZS5sZW5ndGg7eHQrKylCZVt4dF0udGV4dENvbnRlbnQuaW5jbHVkZXMoIkFjdGlvbnMiKXx8YXdhaXQgRjEoeHQpO3BlLnN0eWxlLnRhYmxlTGF5b3V0PSJmaXhlZCJ9dG9nZ2xlU29ydChUZSl7bGV0IHBlPVN0cmluZyhUZS5rZXkpO3RoaXMuc29ydEtleSE9PXBlPyh0aGlzLnNvcnRLZXk9cGUsdGhpcy5zb3J0RGlyPSJhc2MiKTp0aGlzLnNvcnREaXI9PT0iYXNjIj90aGlzLnNvcnREaXI9ImRlc2MiOnRoaXMuc29ydERpcj09PSJkZXNjIj8odGhpcy5zb3J0RGlyPW51bGwsdGhpcy5zb3J0S2V5PXZvaWQgMCk6dGhpcy5zb3J0RGlyPSJhc2MiLHRoaXMuZGlzcGF0Y2hFdmVudChuZXcgQ3VzdG9tRXZlbnQoInNvcnRDaGFuZ2UiLHtkZXRhaWw6e2tleTp0aGlzLnNvcnRLZXksZGlyOnRoaXMuc29ydERpcn0sYnViYmxlczohMH0pKSx0aGlzLnJlcXVlc3RVcGRhdGUoKX1nZXRBcmlhU29ydChUZSl7cmV0dXJuIFN0cmluZyhUZS5rZXkpIT09dGhpcy5zb3J0S2V5fHwhdGhpcy5zb3J0RGlyPyJub25lIjp0aGlzLnNvcnREaXI9PT0iYXNjIj8iYXNjZW5kaW5nIjoiZGVzY2VuZGluZyJ9cmVuZGVyU29ydEluZGljYXRvcihUZSl7cmV0dXJuIFN0cmluZyhUZS5rZXkpIT09dGhpcy5zb3J0S2V5fHwhdGhpcy5zb3J0RGlyP0NgYDpDYDxzcGFuIHN0eWxlPSJtYXJnaW4tbGVmdDo2cHg7IG9wYWNpdHk6MC43OyI+JHt0aGlzLnNvcnREaXI9PT0iYXNjIj8iXHUyNUIyIjoiXHUyNUJDIn08L3NwYW4+YH1zZXRGaWx0ZXJUZXh0KFRlKXtsZXQgcGU9dGhpcy5maWx0ZXJUZXh0O3RoaXMuZmlsdGVyVGV4dD1UZT8/IiIscGUhPT10aGlzLmZpbHRlclRleHQmJih0aGlzLmRpc3BhdGNoRXZlbnQobmV3IEN1c3RvbUV2ZW50KCJmaWx0ZXJDaGFuZ2UiLHtkZXRhaWw6e3RleHQ6dGhpcy5maWx0ZXJUZXh0LGNvbHVtbnM6ey4uLnRoaXMuY29sdW1uRmlsdGVyc319LGJ1YmJsZXM6ITB9KSksdGhpcy5yZXF1ZXN0VXBkYXRlKCkpfXNldENvbHVtbkZpbHRlcihUZSxwZSl7dGhpcy5jb2x1bW5GaWx0ZXJzPXsuLi50aGlzLmNvbHVtbkZpbHRlcnMsW1RlXTpwZX0sdGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBDdXN0b21FdmVudCgiZmlsdGVyQ2hhbmdlIix7ZGV0YWlsOnt0ZXh0OnRoaXMuZmlsdGVyVGV4dCxjb2x1bW5zOnsuLi50aGlzLmNvbHVtbkZpbHRlcnN9fSxidWJibGVzOiEwfSkpLHRoaXMucmVxdWVzdFVwZGF0ZSgpfWdldFJvd0lkKFRlKXtpZih0aGlzLnJvd0tleSlyZXR1cm4gdHlwZW9mIHRoaXMucm93S2V5PT0iZnVuY3Rpb24iP3RoaXMucm93S2V5KFRlKTpTdHJpbmcoVGVbdGhpcy5yb3dLZXldKTtsZXQgcGU9VGU7cmV0dXJuIHRoaXMuX3Jvd0lkTWFwLmhhcyhwZSl8fHRoaXMuX3Jvd0lkTWFwLnNldChwZSxTdHJpbmcoKyt0aGlzLl9yb3dJZENvdW50ZXIpKSx0aGlzLl9yb3dJZE1hcC5nZXQocGUpfWlzUm93U2VsZWN0ZWQoVGUpe3JldHVybiB0aGlzLnNlbGVjdGVkSWRzLmhhcyh0aGlzLmdldFJvd0lkKFRlKSl9dG9nZ2xlUm93U2VsZWN0ZWQoVGUpe2xldCBwZT10aGlzLmdldFJvd0lkKFRlKTt0aGlzLnNlbGVjdGlvbk1vZGU9PT0ic2luZ2xlIj8odGhpcy5zZWxlY3RlZElkcy5jbGVhcigpLHRoaXMuc2VsZWN0ZWRJZHMuYWRkKHBlKSk6dGhpcy5zZWxlY3Rpb25Nb2RlPT09Im11bHRpIiYmKHRoaXMuc2VsZWN0ZWRJZHMuaGFzKHBlKT90aGlzLnNlbGVjdGVkSWRzLmRlbGV0ZShwZSk6dGhpcy5zZWxlY3RlZElkcy5hZGQocGUpKSx0aGlzLmVtaXRTZWxlY3Rpb25DaGFuZ2UoKSx0aGlzLnJlcXVlc3RVcGRhdGUoKX1zZXRSb3dTZWxlY3RlZChUZSxwZSl7bGV0IEJlPXRoaXMuZ2V0Um93SWQoVGUpO3RoaXMuc2VsZWN0aW9uTW9kZT09PSJzaW5nbGUiPyh0aGlzLnNlbGVjdGVkSWRzLmNsZWFyKCkscGUmJnRoaXMuc2VsZWN0ZWRJZHMuYWRkKEJlKSk6dGhpcy5zZWxlY3Rpb25Nb2RlPT09Im11bHRpIiYmKHBlP3RoaXMuc2VsZWN0ZWRJZHMuYWRkKEJlKTp0aGlzLnNlbGVjdGVkSWRzLmRlbGV0ZShCZSkpLHRoaXMuZW1pdFNlbGVjdGlvbkNoYW5nZSgpLHRoaXMucmVxdWVzdFVwZGF0ZSgpfWFyZUFsbFZpc2libGVTZWxlY3RlZCgpe2xldCBUZT10aGlzLl9sYXN0Vmlld0RhdGF8fFtdO2lmKFRlLmxlbmd0aD09PTApcmV0dXJuITE7Zm9yKGxldCBwZSBvZiBUZSlpZighdGhpcy5zZWxlY3RlZElkcy5oYXModGhpcy5nZXRSb3dJZChwZSkpKXJldHVybiExO3JldHVybiEwfWlzVmlzaWJsZVNlbGVjdGlvbkluZGV0ZXJtaW5hdGUoKXtsZXQgVGU9dGhpcy5fbGFzdFZpZXdEYXRhfHxbXTtpZihUZS5sZW5ndGg9PT0wKXJldHVybiExO2xldCBwZT0wO2ZvcihsZXQgQmUgb2YgVGUpdGhpcy5zZWxlY3RlZElkcy5oYXModGhpcy5nZXRSb3dJZChCZSkpJiZwZSsrO3JldHVybiBwZT4wJiZwZTxUZS5sZW5ndGh9c2V0U2VsZWN0VmlzaWJsZShUZSl7bGV0IHBlPXRoaXMuX2xhc3RWaWV3RGF0YXx8W107aWYoVGUpZm9yKGxldCBCZSBvZiBwZSl0aGlzLnNlbGVjdGVkSWRzLmFkZCh0aGlzLmdldFJvd0lkKEJlKSk7ZWxzZSBmb3IobGV0IEJlIG9mIHBlKXRoaXMuc2VsZWN0ZWRJZHMuZGVsZXRlKHRoaXMuZ2V0Um93SWQoQmUpKTt0aGlzLmVtaXRTZWxlY3Rpb25DaGFuZ2UoKSx0aGlzLnJlcXVlc3RVcGRhdGUoKX1lbWl0U2VsZWN0aW9uQ2hhbmdlKCl7bGV0IFRlPUFycmF5LmZyb20odGhpcy5zZWxlY3RlZElkcykscGU9dGhpcy5kYXRhLmZpbHRlcihCZT0+dGhpcy5zZWxlY3RlZElkcy5oYXModGhpcy5nZXRSb3dJZChCZSkpKTt0aGlzLmRpc3BhdGNoRXZlbnQobmV3IEN1c3RvbUV2ZW50KCJzZWxlY3Rpb25DaGFuZ2UiLHtkZXRhaWw6e3NlbGVjdGVkSWRzOlRlLHNlbGVjdGVkUm93czpwZX0sYnViYmxlczohMH0pKX1nZXRBY3Rpb25zRm9yVHlwZShUZSl7bGV0IHBlPVtdO2ZvcihsZXQgQmUgb2YgdGhpcy5kYXRhQWN0aW9ucylCZS50eXBlPy5pbmNsdWRlcyhUZSkmJnBlLnB1c2goQmUpO3JldHVybiBwZX1hc3luYyBoYW5kbGVDZWxsRWRpdGluZyhUZSxwZSxCZSl7YXdhaXQgdGhpcy5kb210b29sc1Byb21pc2U7bGV0IEYxPVRlLnRhcmdldCx4dD1GMS5zdHlsZS5jb2xvcjtGMS5zdHlsZS5jb2xvcj0idHJhbnNwYXJlbnQiO2xldCBSYT10aGlzLmRpc3BsYXlGdW5jdGlvbihwZSlbQmVdPz9wZVtCZV0/PyIiLGh0PWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImlucHV0Iik7aHQudHlwZT0idGV4dCIsaHQudmFsdWU9UmE7bGV0IFkxPWFzeW5jKEJhPSEwLFhvPSExKT0+e0JhJiZodC5ibHVyKCksWG8mJihwZVtCZV09aHQudmFsdWUsdGhpcy5jaGFuZ2VTdWJqZWN0Lm5leHQodGhpcykpLGh0LnJlbW92ZSgpLEYxLnN0eWxlLmNvbG9yPXh0LHRoaXMucmVxdWVzdFVwZGF0ZSgpfTtodC5hZGRFdmVudExpc3RlbmVyKCJibHVyIiwoKT0+e1kxKCExLCExKX0pLGh0LmFkZEV2ZW50TGlzdGVuZXIoImtleWRvd24iLEJhPT57QmEua2V5PT09IkVudGVyIiYmWTEoITAsITApfSksRjEuYXBwZW5kQ2hpbGQoaHQpLGh0LmZvY3VzKCl9c3RhdGlje3N0KGkscil9fTtyZXR1cm4gTWg9aX0pKCl9KTt2YXIgRTZlPXAoKCk9PntBNmUoKX0pO3ZhciB3bHIsTWxyPXAoKCk9Pnt4ZSgpO3AxKCk7d2xyPSgpPT5DYAogIDxzdHlsZT4KICAgICR7b2VgCiAgICAgIC5kZW1vLWNvbnRhaW5lciB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICAgIGdhcDogMjRweDsKICAgICAgICBwYWRkaW5nOiAyNHB4OwogICAgICAgIG1heC13aWR0aDogMTIwMHB4OwogICAgICAgIG1hcmdpbjogMCBhdXRvOwogICAgICB9CiAgICAgIAogICAgICBkZWVzLXBhbmVsIHsKICAgICAgICBtYXJnaW4tYm90dG9tOiAyNHB4OwogICAgICB9CiAgICAgIAogICAgICBkZWVzLXBhbmVsOmxhc3QtY2hpbGQgewogICAgICAgIG1hcmdpbi1ib3R0b206IDA7CiAgICAgIH0KICAgICAgCiAgICAgIC5mb3JtLW91dHB1dCB7CiAgICAgICAgbWFyZ2luLXRvcDogMTZweDsKICAgICAgICBwYWRkaW5nOiAxMnB4OwogICAgICAgIGJhY2tncm91bmQ6ICR7bS5iZFRoZW1lKCJoc2woMjEwIDQwJSA5Ni4xJSkiLCJoc2woMjE1IDIwLjIlIDE2LjglKSIpfTsKICAgICAgICBib3JkZXItcmFkaXVzOiA2cHg7CiAgICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgICAgIGZvbnQtZmFtaWx5OiBtb25vc3BhY2U7CiAgICAgICAgd2hpdGUtc3BhY2U6IHByZS13cmFwOwogICAgICB9CiAgICAgIAogICAgICAuc3RhdHVzLW1lc3NhZ2UgewogICAgICAgIG1hcmdpbi10b3A6IDE2cHg7CiAgICAgICAgcGFkZGluZzogMTJweDsKICAgICAgICBib3JkZXItcmFkaXVzOiA2cHg7CiAgICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgICB9CiAgICAgIAogICAgICAuc3RhdHVzLW1lc3NhZ2Uuc3VjY2VzcyB7CiAgICAgICAgYmFja2dyb3VuZDogJHttLmJkVGhlbWUoImhzbCgxNDIuMSA3MC42JSA0NS4zJSAvIDAuMSkiLCJoc2woMTQyLjEgNzAuNiUgNDUuMyUgLyAwLjIpIil9OwogICAgICAgIGNvbG9yOiAke20uYmRUaGVtZSgiaHNsKDE0Mi4xIDcwLjYlIDM1LjMlKSIsImhzbCgxNDIuMSA3MC42JSA2NS4zJSkiKX07CiAgICAgIH0KICAgICAgCiAgICAgIC5zdGF0dXMtbWVzc2FnZS5lcnJvciB7CiAgICAgICAgYmFja2dyb3VuZDogJHttLmJkVGhlbWUoImhzbCgwIDcyLjIlIDUwLjYlIC8gMC4xKSIsImhzbCgwIDcyLjIlIDUwLjYlIC8gMC4yKSIpfTsKICAgICAgICBjb2xvcjogJHttLmJkVGhlbWUoImhzbCgwIDcyLjIlIDQwLjYlKSIsImhzbCgwIDcyLjIlIDYwLjYlKSIpfTsKICAgICAgfQogICAgYH0KICA8L3N0eWxlPgogIAogIDxkaXYgY2xhc3M9ImRlbW8tY29udGFpbmVyIj4KICAgIDxkZWVzLWRlbW93cmFwcGVyIC5ydW5BZnRlclJlbmRlcj0ke2FzeW5jIGU9PntsZXQgdD1lLnF1ZXJ5U2VsZWN0b3IoImRlZXMtZm9ybSIpLHI9ZS5xdWVyeVNlbGVjdG9yKCIuZm9ybS1vdXRwdXQiKTt0JiZyJiYodC5hZGRFdmVudExpc3RlbmVyKCJmb3JtRGF0YSIsYXN5bmMgYT0+e2xldCBuPWEuZGV0YWlsLmRhdGE7Y29uc29sZS5sb2coIkZvcm0gc3VibWl0dGVkIHdpdGggZGF0YToiLG4pLHQuc2V0U3RhdHVzKCJwZW5kaW5nIiwiUHJvY2Vzc2luZyB5b3VyIHJlZ2lzdHJhdGlvbi4uLiIpLHIuaW5uZXJIVE1MPWA8c3Ryb25nPlN1Ym1pdHRlZCBEYXRhOjwvc3Ryb25nPgoke0pTT04uc3RyaW5naWZ5KG4sbnVsbCwyKX1gLGF3YWl0IGt0LnBsdWdpbnMuc21hcnRkZWxheS5kZWxheUZvcigyZTMpLHQuc2V0U3RhdHVzKCJzdWNjZXNzIiwiUmVnaXN0cmF0aW9uIGNvbXBsZXRlZCBzdWNjZXNzZnVsbHkhIiksYXdhaXQga3QucGx1Z2lucy5zbWFydGRlbGF5LmRlbGF5Rm9yKDJlMyksdC5yZXNldCgpLHIuaW5uZXJIVE1MPSI8ZW0+Rm9ybSBoYXMgYmVlbiByZXNldDwvZW0+In0pLHQucXVlcnlTZWxlY3RvckFsbCgiZGVlcy1pbnB1dC10ZXh0LCBkZWVzLWlucHV0LWRyb3Bkb3duLCBkZWVzLWlucHV0LWNoZWNrYm94IikuZm9yRWFjaChhPT57YS5hZGRFdmVudExpc3RlbmVyKCJjaGFuZ2VTdWJqZWN0IiwoKT0+e2NvbnNvbGUubG9nKCJGaWVsZCBjaGFuZ2VkOiIsYS5nZXRBdHRyaWJ1dGUoImtleSIpKX0pfSkpfX0+CiAgICAgIDxkZWVzLXBhbmVsIC5oZWFkaW5nPSJDb21wbGV0ZSBGb3JtIEV4YW1wbGUiIC5kZXNjcmlwdGlvbj0iQSBjb21wcmVoZW5zaXZlIGZvcm0gd2l0aCB2YXJpb3VzIGlucHV0IHR5cGVzLCB2YWxpZGF0aW9uLCBhbmQgZm9ybSBzdWJtaXNzaW9uIGhhbmRsaW5nIj4KICAgICAgICA8ZGVlcy1mb3JtPgogICAgICAgICAgPGRlZXMtaW5wdXQtdGV4dCAKICAgICAgICAgICAgLnJlcXVpcmVkPSR7ITB9IAogICAgICAgICAgICBrZXk9ImZpcnN0TmFtZSIgCiAgICAgICAgICAgIGxhYmVsPSJGaXJzdCBOYW1lIgogICAgICAgICAgICAuZGVzY3JpcHRpb249JHsiWW91ciBnaXZlbiBuYW1lIn0KICAgICAgICAgID48L2RlZXMtaW5wdXQtdGV4dD4KICAgICAgICAgIAogICAgICAgICAgPGRlZXMtaW5wdXQtdGV4dCAKICAgICAgICAgICAgLnJlcXVpcmVkPSR7ITB9IAogICAgICAgICAgICBrZXk9Imxhc3ROYW1lIiAKICAgICAgICAgICAgbGFiZWw9Ikxhc3QgTmFtZSIKICAgICAgICAgID48L2RlZXMtaW5wdXQtdGV4dD4KICAgICAgICAgIAogICAgICAgICAgPGRlZXMtaW5wdXQtdGV4dCAKICAgICAgICAgICAgLnJlcXVpcmVkPSR7ITB9IAogICAgICAgICAgICBrZXk9ImVtYWlsIiAKICAgICAgICAgICAgbGFiZWw9IkVtYWlsIEFkZHJlc3MiCiAgICAgICAgICAgIC5kZXNjcmlwdGlvbj0keyJXZSB3aWxsIHVzZSB0aGlzIHRvIGNvbnRhY3QgeW91In0KICAgICAgICAgID48L2RlZXMtaW5wdXQtdGV4dD4KICAgICAgICAgIAogICAgICAgICAgPGRlZXMtaW5wdXQtZHJvcGRvd24KICAgICAgICAgICAgLnJlcXVpcmVkPSR7ITB9CiAgICAgICAgICAgIGtleT0iY291bnRyeSIKICAgICAgICAgICAgLmxhYmVsPSR7IkNvdW50cnkifQogICAgICAgICAgICAub3B0aW9ucz0ke1t7b3B0aW9uOiJVbml0ZWQgU3RhdGVzIixrZXk6InVzIn0se29wdGlvbjoiQ2FuYWRhIixrZXk6ImNhIn0se29wdGlvbjoiR2VybWFueSIsa2V5OiJkZSJ9LHtvcHRpb246IkZyYW5jZSIsa2V5OiJmciJ9LHtvcHRpb246IlVuaXRlZCBLaW5nZG9tIixrZXk6InVrIn1dfQogICAgICAgICAgPjwvZGVlcy1pbnB1dC1kcm9wZG93bj4KICAgICAgICAgIAogICAgICAgICAgPGRlZXMtaW5wdXQtdGV4dAogICAgICAgICAgICAucmVxdWlyZWQ9JHshMH0KICAgICAgICAgICAga2V5PSJwYXNzd29yZCIKICAgICAgICAgICAgbGFiZWw9IlBhc3N3b3JkIgogICAgICAgICAgICBpc1Bhc3N3b3JkQm9vbAogICAgICAgICAgICAuZGVzY3JpcHRpb249JHsiTWluaW11bSA4IGNoYXJhY3RlcnMifQogICAgICAgICAgPjwvZGVlcy1pbnB1dC10ZXh0PgogICAgICAgICAgCiAgICAgICAgICA8ZGVlcy1pbnB1dC1jaGVja2JveAogICAgICAgICAgICAucmVxdWlyZWQ9JHshMH0KICAgICAgICAgICAga2V5PSJ0ZXJtcyIKICAgICAgICAgICAgbGFiZWw9IkkgYWdyZWUgdG8gdGhlIFRlcm1zIGFuZCBDb25kaXRpb25zIgogICAgICAgICAgPjwvZGVlcy1pbnB1dC1jaGVja2JveD4KICAgICAgICAgIAogICAgICAgICAgPGRlZXMtaW5wdXQtY2hlY2tib3gKICAgICAgICAgICAga2V5PSJuZXdzbGV0dGVyIgogICAgICAgICAgICBsYWJlbD0iU2VuZCBtZSBwcm9tb3Rpb25hbCBlbWFpbHMiCiAgICAgICAgICAgIC52YWx1ZT0keyEwfQogICAgICAgICAgPjwvZGVlcy1pbnB1dC1jaGVja2JveD4KICAgICAgICAgIAogICAgICAgICAgPGRlZXMtZm9ybS1zdWJtaXQ+Q3JlYXRlIEFjY291bnQ8L2RlZXMtZm9ybS1zdWJtaXQ+CiAgICAgICAgPC9kZWVzLWZvcm0+CiAgICAgICAgCiAgICAgICAgPGRpdiBjbGFzcz0iZm9ybS1vdXRwdXQiPgogICAgICAgICAgPGVtPlN1Ym1pdCB0aGUgZm9ybSB0byBzZWUgdGhlIGNvbGxlY3RlZCBkYXRhLi4uPC9lbT4KICAgICAgICA8L2Rpdj4KICAgICAgPC9kZWVzLXBhbmVsPgogICAgPC9kZWVzLWRlbW93cmFwcGVyPgogICAgCiAgICA8ZGVlcy1kZW1vd3JhcHBlciAucnVuQWZ0ZXJSZW5kZXI9JHthc3luYyBlPT57bGV0IHQ9ZS5xdWVyeVNlbGVjdG9yKCJkZWVzLWZvcm0iKTt0JiYoY29uc29sZS5sb2coIkhvcml6b250YWwgZm9ybSBsYXlvdXQgYWN0aXZlIiksdC5hZGRFdmVudExpc3RlbmVyKCJmb3JtRGF0YSIsaT0+e2xldCBhPWkuZGV0YWlsLmRhdGE7Y29uc29sZS5sb2coIkZpbHRlciBhcHBsaWVkOiIsYSk7bGV0IG49TWF0aC5mbG9vcihNYXRoLnJhbmRvbSgpKjEwMCkrMTtjb25zb2xlLmxvZyhgRm91bmQgJHtufSByZXN1bHRzIHdpdGggZmlsdGVyczpgLGEpfSksdC5xdWVyeVNlbGVjdG9yQWxsKCJba2V5XSIpLmZvckVhY2goaT0+e2kuYWRkRXZlbnRMaXN0ZW5lcigiY2hhbmdlU3ViamVjdCIsYXN5bmMoKT0+e2xldCBhPWF3YWl0IHQuY29sbGVjdEZvcm1EYXRhKCk7Y29uc29sZS5sb2coIkxpdmUgZmlsdGVyIHVwZGF0ZToiLGEpfSl9KSl9fT4KICAgICAgPGRlZXMtcGFuZWwgLmhlYWRpbmc9Ikhvcml6b250YWwgRm9ybSBMYXlvdXQiIC5kZXNjcmlwdGlvbj0iQ29tcGFjdCBmb3JtIHdpdGggaW5wdXRzIGFycmFuZ2VkIGhvcml6b250YWxseSAtIHBlcmZlY3QgZm9yIGZpbHRlcnMgYW5kIHF1aWNrIGZvcm1zIj4KICAgICAgICA8ZGVlcy1mb3JtIGhvcml6b250YWwtbGF5b3V0PgogICAgICAgICAgPGRlZXMtaW5wdXQtdGV4dCAKICAgICAgICAgICAga2V5PSJzZWFyY2giIAogICAgICAgICAgICBsYWJlbD0iU2VhcmNoIgogICAgICAgICAgICBwbGFjZWhvbGRlcj0iRW50ZXIga2V5d29yZHMuLi4iCiAgICAgICAgICA+PC9kZWVzLWlucHV0LXRleHQ+CiAgICAgICAgICAKICAgICAgICAgIDxkZWVzLWlucHV0LWRyb3Bkb3duCiAgICAgICAgICAgIGtleT0iY2F0ZWdvcnkiCiAgICAgICAgICAgIC5sYWJlbD0keyJDYXRlZ29yeSJ9CiAgICAgICAgICAgIC5lbmFibGVTZWFyY2g9JHshMX0KICAgICAgICAgICAgLm9wdGlvbnM9JHtbe29wdGlvbjoiQWxsIixrZXk6ImFsbCJ9LHtvcHRpb246IlByb2R1Y3RzIixrZXk6InByb2R1Y3RzIn0se29wdGlvbjoiU2VydmljZXMiLGtleToic2VydmljZXMifSx7b3B0aW9uOiJTdXBwb3J0IixrZXk6InN1cHBvcnQifV19CiAgICAgICAgICA+PC9kZWVzLWlucHV0LWRyb3Bkb3duPgogICAgICAgICAgCiAgICAgICAgICA8ZGVlcy1pbnB1dC1kcm9wZG93bgogICAgICAgICAgICBrZXk9InNvcnQiCiAgICAgICAgICAgIC5sYWJlbD0keyJTb3J0IEJ5In0KICAgICAgICAgICAgLmVuYWJsZVNlYXJjaD0keyExfQogICAgICAgICAgICAub3B0aW9ucz0ke1t7b3B0aW9uOiJOZXdlc3QiLGtleToibmV3ZXN0In0se29wdGlvbjoiUG9wdWxhciIsa2V5OiJwb3B1bGFyIn0se29wdGlvbjoiUHJpY2U6IExvdyB0byBIaWdoIixrZXk6InByaWNlX2FzYyJ9LHtvcHRpb246IlByaWNlOiBIaWdoIHRvIExvdyIsa2V5OiJwcmljZV9kZXNjIn1dfQogICAgICAgICAgPjwvZGVlcy1pbnB1dC1kcm9wZG93bj4KICAgICAgICAgIAogICAgICAgICAgPGRlZXMtaW5wdXQtY2hlY2tib3gKICAgICAgICAgICAga2V5PSJpblN0b2NrIgogICAgICAgICAgICBsYWJlbD0iSW4gU3RvY2sgT25seSIKICAgICAgICAgICAgLnZhbHVlPSR7ITB9CiAgICAgICAgICA+PC9kZWVzLWlucHV0LWNoZWNrYm94PgogICAgICAgIDwvZGVlcy1mb3JtPgogICAgICA8L2RlZXMtcGFuZWw+CiAgICA8L2RlZXMtZGVtb3dyYXBwZXI+CiAgICAKICAgIDxkZWVzLWRlbW93cmFwcGVyIC5ydW5BZnRlclJlbmRlcj0ke2FzeW5jIGU9PntsZXQgdD1lLnF1ZXJ5U2VsZWN0b3IoImRlZXMtZm9ybSIpLHI9ZS5xdWVyeVNlbGVjdG9yKCIjc3RhdHVzLWRpc3BsYXkiKTtpZih0KXt0LmFkZEV2ZW50TGlzdGVuZXIoImZvcm1EYXRhIixhc3luYyBhPT57bGV0IG49YS5kZXRhaWwuZGF0YTtjb25zb2xlLmxvZygiQWR2YW5jZWQgZm9ybSBkYXRhOiIsbiksdC5zZXRTdGF0dXMoInBlbmRpbmciLCJWYWxpZGF0aW5nIHlvdXIgaW5mb3JtYXRpb24uLi4iKSxhd2FpdCBrdC5wbHVnaW5zLnNtYXJ0ZGVsYXkuZGVsYXlGb3IoMTUwMCksbi5pYmFuJiZuLmliYW4ubGVuZ3RoPjE1Pyh0LnNldFN0YXR1cygic3VjY2VzcyIsIkFwcGxpY2F0aW9uIHN1Ym1pdHRlZCBzdWNjZXNzZnVsbHkhIiksciYmKHIuY2xhc3NOYW1lPSJzdGF0dXMtbWVzc2FnZSBzdWNjZXNzIixyLnRleHRDb250ZW50PSJcdTI3MTMgWW91ciBhcHBsaWNhdGlvbiBoYXMgYmVlbiBzdWJtaXR0ZWQuIFdlIHdpbGwgY29udGFjdCB5b3Ugc29vbi4iKSk6KHQuc2V0U3RhdHVzKCJlcnJvciIsIlBsZWFzZSBjaGVjayB5b3VyIElCQU4iKSxyJiYoci5jbGFzc05hbWU9InN0YXR1cy1tZXNzYWdlIGVycm9yIixyLnRleHRDb250ZW50PSJcdTI3MTcgSW52YWxpZCBJQkFOIGZvcm1hdC4gUGxlYXNlIGNoZWNrIGFuZCB0cnkgYWdhaW4uIikpLGNvbnNvbGUubG9nKCJGb3JtIGRhdGEgbG9nZ2VkOiIsbil9KTtsZXQgaT10LnF1ZXJ5U2VsZWN0b3IoImRlZXMtaW5wdXQtZmlsZXVwbG9hZCIpO2kmJmkuYWRkRXZlbnRMaXN0ZW5lcigiY2hhbmdlIixhPT57bGV0IG49YS5kZXRhaWw/LmZpbGVzfHxbXTtjb25zb2xlLmxvZyhgJHtuLmxlbmd0aH0gZmlsZShzKSBzZWxlY3RlZCBmb3IgdXBsb2FkYCl9KX19fT4KICAgICAgPGRlZXMtcGFuZWwgLmhlYWRpbmc9IkFkdmFuY2VkIEZvcm0gRmVhdHVyZXMiIC5kZXNjcmlwdGlvbj0iRm9ybSB3aXRoIHNwZWNpYWxpemVkIGlucHV0IHR5cGVzIGFuZCBjb21wbGV4IHZhbGlkYXRpb24iPgogICAgICAgIDxkZWVzLWZvcm0+CiAgICAgICAgICA8ZGVlcy1pbnB1dC1pYmFuIAogICAgICAgICAgICBrZXk9ImliYW4iCiAgICAgICAgICAgIGxhYmVsPSJJQkFOIgogICAgICAgICAgICAucmVxdWlyZWQ9JHshMH0KICAgICAgICAgID48L2RlZXMtaW5wdXQtaWJhbj4KICAgICAgICAgIAogICAgICAgICAgPGRlZXMtaW5wdXQtcGhvbmUKICAgICAgICAgICAga2V5PSJwaG9uZSIKICAgICAgICAgICAgbGFiZWw9IlBob25lIE51bWJlciIKICAgICAgICAgICAgLnJlcXVpcmVkPSR7ITB9CiAgICAgICAgICA+PC9kZWVzLWlucHV0LXBob25lPgogICAgICAgICAgCiAgICAgICAgICA8ZGVlcy1pbnB1dC1tdWx0aXRvZ2dsZQogICAgICAgICAgICBrZXk9InByZWZlcmVuY2VzIgogICAgICAgICAgICAubGFiZWw9JHsiTm90aWZpY2F0aW9uIFByZWZlcmVuY2VzIn0KICAgICAgICAgICAgLm9wdGlvbnM9JHtbIkVtYWlsIiwiU01TIiwiUHVzaCIsIkluLUFwcCJdfQogICAgICAgICAgICAuc2VsZWN0ZWRPcHRpb249JHsiRW1haWwifQogICAgICAgICAgPjwvZGVlcy1pbnB1dC1tdWx0aXRvZ2dsZT4KICAgICAgICAgIAogICAgICAgICAgPGRlZXMtaW5wdXQtbXVsdGlzZWxlY3QKICAgICAgICAgICAga2V5PSJpbnRlcmVzdHMiCiAgICAgICAgICAgIC5sYWJlbD0keyJBcmVhcyBvZiBJbnRlcmVzdCJ9CiAgICAgICAgICAgIC5vcHRpb25zPSR7W3tvcHRpb246IlRlY2hub2xvZ3kiLGtleToidGVjaCJ9LHtvcHRpb246IkRlc2lnbiIsa2V5OiJkZXNpZ24ifSx7b3B0aW9uOiJCdXNpbmVzcyIsa2V5OiJidXNpbmVzcyJ9LHtvcHRpb246Ik1hcmtldGluZyIsa2V5OiJtYXJrZXRpbmcifSx7b3B0aW9uOiJTYWxlcyIsa2V5OiJzYWxlcyJ9XX0KICAgICAgICAgID48L2RlZXMtaW5wdXQtbXVsdGlzZWxlY3Q+CiAgICAgICAgICAKICAgICAgICAgIDxkZWVzLWlucHV0LWZpbGV1cGxvYWQKICAgICAgICAgICAga2V5PSJkb2N1bWVudHMiCiAgICAgICAgICAgIC5sYWJlbD0keyJVcGxvYWQgRG9jdW1lbnRzIn0KICAgICAgICAgICAgLmRlc2NyaXB0aW9uPSR7IlBERiwgRE9DLCBvciBET0NYIGZpbGVzIHVwIHRvIDEwTUIifQogICAgICAgICAgPjwvZGVlcy1pbnB1dC1maWxldXBsb2FkPgogICAgICAgICAgCiAgICAgICAgICA8ZGVlcy1mb3JtLXN1Ym1pdD5TdWJtaXQgQXBwbGljYXRpb248L2RlZXMtZm9ybS1zdWJtaXQ+CiAgICAgICAgPC9kZWVzLWZvcm0+CiAgICAgICAgCiAgICAgICAgPGRpdiBpZD0ic3RhdHVzLWRpc3BsYXkiPjwvZGl2PgogICAgICA8L2RlZXMtcGFuZWw+CiAgICA8L2RlZXMtZGVtb3dyYXBwZXI+CiAgPC9kaXY+CmB9KTt2YXIga2xyLCQ2ZSxTbHIsemxyLGloPXAoKCk9Pnt4ZSgpO0t0KCk7Q04oKTt1NmUoKTtoNmUoKTtONCgpO2c2ZSgpO0lOKCk7Rk4oKTt2NmUoKTtrNmUoKTtTNmUoKTt6NmUoKTtUNmUoKTtMNmUoKTtPZCgpO0U2ZSgpO01scigpO2tscj1mdW5jdGlvbihlLHQscixpLGEsbil7ZnVuY3Rpb24gbyh5KXtpZih5IT09dm9pZCAwJiZ0eXBlb2YgeSE9ImZ1bmN0aW9uIil0aHJvdyBuZXcgVHlwZUVycm9yKCJGdW5jdGlvbiBleHBlY3RlZCIpO3JldHVybiB5fWZvcih2YXIgcz1pLmtpbmQsbD1zPT09ImdldHRlciI/ImdldCI6cz09PSJzZXR0ZXIiPyJzZXQiOiJ2YWx1ZSIsYz0hdCYmZT9pLnN0YXRpYz9lOmUucHJvdG90eXBlOm51bGwsdT10fHwoYz9PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGMsaS5uYW1lKTp7fSksZCxoPSExLGY9ci5sZW5ndGgtMTtmPj0wO2YtLSl7dmFyIHg9e307Zm9yKHZhciB2IGluIGkpeFt2XT12PT09ImFjY2VzcyI/e306aVt2XTtmb3IodmFyIHYgaW4gaS5hY2Nlc3MpeC5hY2Nlc3Nbdl09aS5hY2Nlc3Nbdl07eC5hZGRJbml0aWFsaXplcj1mdW5jdGlvbih5KXtpZihoKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBhZGQgaW5pdGlhbGl6ZXJzIGFmdGVyIGRlY29yYXRpb24gaGFzIGNvbXBsZXRlZCIpO24ucHVzaChvKHl8fG51bGwpKX07dmFyIGI9KDAscltmXSkocz09PSJhY2Nlc3NvciI/e2dldDp1LmdldCxzZXQ6dS5zZXR9OnVbbF0seCk7aWYocz09PSJhY2Nlc3NvciIpe2lmKGI9PT12b2lkIDApY29udGludWU7aWYoYj09PW51bGx8fHR5cGVvZiBiIT0ib2JqZWN0Iil0aHJvdyBuZXcgVHlwZUVycm9yKCJPYmplY3QgZXhwZWN0ZWQiKTsoZD1vKGIuZ2V0KSkmJih1LmdldD1kKSwoZD1vKGIuc2V0KSkmJih1LnNldD1kKSwoZD1vKGIuaW5pdCkpJiZhLnVuc2hpZnQoZCl9ZWxzZShkPW8oYikpJiYocz09PSJmaWVsZCI/YS51bnNoaWZ0KGQpOnVbbF09ZCl9YyYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGMsaS5uYW1lLHUpLGg9ITB9LCQ2ZT1mdW5jdGlvbihlLHQscil7Zm9yKHZhciBpPWFyZ3VtZW50cy5sZW5ndGg+MixhPTA7YTx0Lmxlbmd0aDthKyspcj1pP3RbYV0uY2FsbChlLHIpOnRbYV0uY2FsbChlKTtyZXR1cm4gaT9yOnZvaWQgMH0sU2xyPVt6TixMTixBTixOTixPTixITixxTixWTixFTiwkTixETixVTixXTixZTl0semxyPSgoKT0+e2xldCBlPVt5ZSgiZGVlcy1mb3JtIildLHQscj1bXSxpLGE9emUsbixvPVtdLHM9W107dmFyIGw9Y2xhc3MgZXh0ZW5kcyBhe3N0YXRpY3tpPXRoaXN9c3RhdGlje2xldCBjPXR5cGVvZiBTeW1ib2w9PSJmdW5jdGlvbiImJlN5bWJvbC5tZXRhZGF0YT9PYmplY3QuY3JlYXRlKGFbU3ltYm9sLm1ldGFkYXRhXT8/bnVsbCk6dm9pZCAwO249W2ooe3R5cGU6Qm9vbGVhbixyZWZsZWN0OiEwLGF0dHJpYnV0ZToiaG9yaXpvbnRhbC1sYXlvdXQifSldLGtscih0aGlzLG51bGwsbix7a2luZDoiYWNjZXNzb3IiLG5hbWU6Imhvcml6b250YWxMYXlvdXQiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOnU9PiJob3Jpem9udGFsTGF5b3V0ImluIHUsZ2V0OnU9PnUuaG9yaXpvbnRhbExheW91dCxzZXQ6KHUsZCk9Pnt1Lmhvcml6b250YWxMYXlvdXQ9ZH19LG1ldGFkYXRhOmN9LG8scyksa2xyKG51bGwsdD17dmFsdWU6aX0sZSx7a2luZDoiY2xhc3MiLG5hbWU6aS5uYW1lLG1ldGFkYXRhOmN9LG51bGwsciksbD1pPXQudmFsdWUsYyYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGksU3ltYm9sLm1ldGFkYXRhLHtlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMCx2YWx1ZTpjfSl9c3RhdGljIGRlbW89d2xyO3N0YXRpYyBkZW1vR3JvdXBzPVsiRm9ybSJdO25hbWU9Im15Zm9ybSI7Y2hhbmdlU3ViamVjdD1uZXcganQuc21hcnRyeC5yeGpzLlN1YmplY3Q7cmVhZHlEZWZlcnJlZD1qdC5zbWFydHByb21pc2UuZGVmZXIoKTsjZT0kNmUodGhpcyxvLCExKTtnZXQgaG9yaXpvbnRhbExheW91dCgpe3JldHVybiB0aGlzLiNlfXNldCBob3Jpem9udGFsTGF5b3V0KGMpe3RoaXMuI2U9Y31zdGF0aWMgc3R5bGVzPVtvZWAKICAgICAgOmhvc3QgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgICBnYXA6IDE2cHg7CiAgICAgIH0KCiAgICAgIDpob3N0KFtob3Jpem9udGFsLWxheW91dF0pIHsKICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93OwogICAgICAgIGZsZXgtd3JhcDogd3JhcDsKICAgICAgICBhbGlnbi1pdGVtczogZmxleC1zdGFydDsKICAgICAgICBnYXA6IDE2cHg7CiAgICAgIH0KICAgIGBdO3JlbmRlcigpe3JldHVybiBDYAogICAgICA8c2xvdD48L3Nsb3Q+CiAgICBgfWFzeW5jIGZpcnN0VXBkYXRlZCgpe2xldCBjPXRoaXMuZ2V0Rm9ybUVsZW1lbnRzKCk7dGhpcy51cGRhdGVSZXF1aXJlZFN0YXR1cygpLHRoaXMudXBkYXRlQ2hpbGRyZW5MYXlvdXRNb2RlKCk7Zm9yKGxldCB1IG9mIGMpdS5jaGFuZ2VTdWJqZWN0LnN1YnNjcmliZShhc3luYygpPT57bGV0IGQ9YXdhaXQgdGhpcy5jb2xsZWN0Rm9ybURhdGEoKTt0aGlzLmNoYW5nZVN1YmplY3QubmV4dChkKSxjb25zb2xlLmxvZyhkKSx0aGlzLnVwZGF0ZVJlcXVpcmVkU3RhdHVzKCl9KTthd2FpdCB0aGlzLmFkZEJlaGF2aW91cnMoKSx0aGlzLnJlYWR5RGVmZXJyZWQucmVzb2x2ZSgpfWdldEZvcm1FbGVtZW50cygpe3JldHVybiBBcnJheS5mcm9tKHRoaXMuY2hpbGRyZW4pLmZpbHRlcihjPT5TbHIuaW5jbHVkZXMoYy5jb25zdHJ1Y3RvcikpfWdldFN1Ym1pdEJ1dHRvbigpe3JldHVybiBBcnJheS5mcm9tKHRoaXMuY2hpbGRyZW4pLmZpbmQoYz0+YyBpbnN0YW5jZW9mIFBOKX1hc3luYyB1cGRhdGVSZXF1aXJlZFN0YXR1cygpe2NvbnNvbGUubG9nKCJjaGVja2luZyB0aGUgcmVxdWlyZWQgc3RhdHVzLiIpO2xldCBjPSEwO2ZvcihsZXQgdSBvZiB0aGlzLmdldEZvcm1FbGVtZW50cygpKXUucmVxdWlyZWQmJiF1LnZhbHVlJiYoYz0hMSk7dGhpcy5nZXRTdWJtaXRCdXR0b24oKSYmKHRoaXMuZ2V0U3VibWl0QnV0dG9uKCkuZGlzYWJsZWQ9IWMpfWFzeW5jIGNvbGxlY3RGb3JtRGF0YSgpe2xldCBjPXRoaXMuZ2V0Rm9ybUVsZW1lbnRzKCksdT17fTtmb3IobGV0IGQgb2YgYyl7aWYoIWQua2V5KXtjb25zb2xlLmxvZyhgZm9ybSBlbGVtZW50IHdpdGggbGFiZWwgIiR7ZC5sYWJlbH0iIGhhcyBubyBrZXkuIHNraXBwaW5nLmApO2NvbnRpbnVlfXVbZC5rZXldPWQudmFsdWV9cmV0dXJuIHV9YXN5bmMgZ2F0aGVyQW5kRGlzcGF0Y2goKXtsZXQgYz1hd2FpdCB0aGlzLmNvbGxlY3RGb3JtRGF0YSgpLHU9bmV3IEN1c3RvbUV2ZW50KCJmb3JtRGF0YSIse2RldGFpbDp7ZGF0YTpjfSxidWJibGVzOiEwfSk7dGhpcy5kaXNwYXRjaEV2ZW50KHUpLGNvbnNvbGUubG9nKCJkaXNwYXRjaGVkIGRhdGE6IiksY29uc29sZS5sb2coYyl9c2V0U3RhdHVzKGMsdSl7bGV0IGQ9dGhpcy5nZXRGb3JtRWxlbWVudHMoKSxoPXRoaXMuZ2V0U3VibWl0QnV0dG9uKCk7c3dpdGNoKGMpe2Nhc2Uibm9ybWFsIjpoLmRpc2FibGVkPSExLGguc3RhdHVzPSJub3JtYWwiO2ZvcihsZXQgZiBvZiBkKWYuZGlzYWJsZWQ9ITE7YnJlYWs7Y2FzZSJwZW5kaW5nIjpoLmRpc2FibGVkPSEwLGguc3RhdHVzPSJwZW5kaW5nIjtmb3IobGV0IGYgb2YgZClmLmRpc2FibGVkPSEwO2JyZWFrO2Nhc2Uic3VjY2VzcyI6aC5kaXNhYmxlZD0hMCxoLnN0YXR1cz0ic3VjY2VzcyI7Zm9yKGxldCBmIG9mIGQpZi5kaXNhYmxlZD0hMDticmVhaztjYXNlImVycm9yIjpoLmRpc2FibGVkPSEwLGguc3RhdHVzPSJlcnJvciI7Zm9yKGxldCBmIG9mIGQpZi5kaXNhYmxlZD0hMDticmVha31oLnRleHQ9dX1yZXNldCgpe2xldCBjPXRoaXMuZ2V0Rm9ybUVsZW1lbnRzKCksdT10aGlzLmdldFN1Ym1pdEJ1dHRvbigpO2ZvcihsZXQgZCBvZiBjKWQudmFsdWU9bnVsbDt0aGlzLnNldFN0YXR1cygibm9ybWFsIiwiU3VibWl0Iil9YXN5bmMgYWRkQmVoYXZpb3Vycygpe3RoaXMuYWRkRXZlbnRMaXN0ZW5lcigia2V5ZG93biIsYz0+e2xldCB1PWMudGFyZ2V0O2lmKFNsci5pbmNsdWRlcyh1LmNvbnN0cnVjdG9yKSYmYy5rZXk9PT0iRW50ZXIiKXtsZXQgZD10aGlzLmdldEZvcm1FbGVtZW50cygpLGg9ZC5pbmRleE9mKHUpO2g8ZC5sZW5ndGgtMT9kW2grMV0uZm9jdXMoKToodS5ibHVyKCksdGhpcy5nZXRTdWJtaXRCdXR0b24oKT8uZm9jdXMoKSl9fSl9dXBkYXRlQ2hpbGRyZW5MYXlvdXRNb2RlKCl7bGV0IGM9dGhpcy5nZXRGb3JtRWxlbWVudHMoKTtmb3IobGV0IHUgb2YgYykibGF5b3V0TW9kZSJpbiB1JiYodS5sYXlvdXRNb2RlPSJhdXRvIil9dXBkYXRlZChjKXtzdXBlci51cGRhdGVkKGMpLGMuaGFzKCJob3Jpem9udGFsTGF5b3V0IikmJnRoaXMudXBkYXRlQ2hpbGRyZW5MYXlvdXRNb2RlKCl9Y29uc3RydWN0b3IoKXtzdXBlciguLi5hcmd1bWVudHMpLCQ2ZSh0aGlzLHMpfXN0YXRpY3skNmUoaSxyKX19O3JldHVybiBsPWl9KSgpfSk7dmFyIENscixUbHI9cCgoKT0+e3hlKCk7cDEoKTtPaSgpO2loKCk7T2QoKTtONCgpO29yKCk7Q2xyPSgpPT5DYAogIDxzdHlsZT4KICAgICR7b2VgCiAgICAgIC5kZW1vLWNvbnRhaW5lciB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICAgIGdhcDogMjRweDsKICAgICAgICBwYWRkaW5nOiAyNHB4OwogICAgICAgIG1heC13aWR0aDogMTIwMHB4OwogICAgICAgIG1hcmdpbjogMCBhdXRvOwogICAgICB9CiAgICAgIAogICAgICBkZWVzLXBhbmVsIHsKICAgICAgICBtYXJnaW4tYm90dG9tOiAyNHB4OwogICAgICB9CiAgICAgIAogICAgICBkZWVzLXBhbmVsOmxhc3QtY2hpbGQgewogICAgICAgIG1hcmdpbi1ib3R0b206IDA7CiAgICAgIH0KICAgICAgCiAgICAgIC5idXR0b24tZ3JvdXAgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBnYXA6IDEycHg7CiAgICAgICAgZmxleC13cmFwOiB3cmFwOwogICAgICB9CiAgICAgIAogICAgICAudmVydGljYWwtZ3JvdXAgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgICBnYXA6IDhweDsKICAgICAgICBtYXgtd2lkdGg6IDMwMHB4OwogICAgICB9CiAgICAgIAogICAgICAuaG9yaXpvbnRhbC1ncm91cCB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGdhcDogMTZweDsKICAgICAgICBmbGV4LXdyYXA6IHdyYXA7CiAgICAgIH0KICAgICAgCiAgICAgIC5kZW1vLW91dHB1dCB7CiAgICAgICAgbWFyZ2luLXRvcDogMTZweDsKICAgICAgICBwYWRkaW5nOiAxMnB4OwogICAgICAgIGJhY2tncm91bmQ6ICR7bS5iZFRoZW1lKCJoc2woMjEwIDQwJSA5Ni4xJSkiLCJoc2woMjE1IDIwLjIlIDE2LjglKSIpfTsKICAgICAgICBib3JkZXItcmFkaXVzOiA2cHg7CiAgICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgICAgIGZvbnQtZmFtaWx5OiBtb25vc3BhY2U7CiAgICAgICAgY29sb3I6ICR7bS5iZFRoZW1lKCJoc2woMjE1LjMgMjUlIDguOCUpIiwiaHNsKDIxMCA0MCUgOTglKSIpfTsKICAgICAgfQogICAgICAKICAgICAgLmljb24tcm93IHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgZ2FwOiAxMnB4OwogICAgICAgIG1hcmdpbjogOHB4IDA7CiAgICAgIH0KICAgICAgCiAgICAgIC5jb2RlLXNuaXBwZXQgewogICAgICAgIGJhY2tncm91bmQ6ICR7bS5iZFRoZW1lKCJoc2woMjEwIDQwJSA5Ni4xJSkiLCJoc2woMjE1IDIwLjIlIDExLjglKSIpfTsKICAgICAgICBwYWRkaW5nOiA4cHggMTJweDsKICAgICAgICBib3JkZXItcmFkaXVzOiA0cHg7CiAgICAgICAgZm9udC1mYW1pbHk6IG1vbm9zcGFjZTsKICAgICAgICBmb250LXNpemU6IDEzcHg7CiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrOwogICAgICAgIG1hcmdpbjogNHB4IDA7CiAgICAgIH0KICAgIGB9CiAgPC9zdHlsZT4KICAKICA8ZGl2IGNsYXNzPSJkZW1vLWNvbnRhaW5lciI+CiAgICA8ZGVlcy1kZW1vd3JhcHBlciAucnVuQWZ0ZXJSZW5kZXI9JHthc3luYyBlPT57ZS5xdWVyeVNlbGVjdG9yQWxsKCJkZWVzLWJ1dHRvbiIpLmZvckVhY2gocj0+e3IuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2tlZCIsKCk9PntsZXQgaT1yLmdldEF0dHJpYnV0ZSgidHlwZSIpfHwiZGVmYXVsdCI7Y29uc29sZS5sb2coYEJ1dHRvbiB2YXJpYW50IGNsaWNrZWQ6ICR7aX1gKX0pfSl9fT4KICAgICAgPGRlZXMtcGFuZWwgLnRpdGxlPSR7IjEuIEJ1dHRvbiBWYXJpYW50cyJ9IC5zdWJ0aXRsZT0keyJEaWZmZXJlbnQgdmlzdWFsIHN0eWxlcyBmb3IgdmFyaW91cyB1c2UgY2FzZXMifT4KICAgICAgICA8ZGl2IGNsYXNzPSJidXR0b24tZ3JvdXAiPgogICAgICAgICAgPGRlZXMtYnV0dG9uIHR5cGU9ImRlZmF1bHQiPkRlZmF1bHQ8L2RlZXMtYnV0dG9uPgogICAgICAgICAgPGRlZXMtYnV0dG9uIHR5cGU9InNlY29uZGFyeSI+U2Vjb25kYXJ5PC9kZWVzLWJ1dHRvbj4KICAgICAgICAgIDxkZWVzLWJ1dHRvbiB0eXBlPSJkZXN0cnVjdGl2ZSI+RGVzdHJ1Y3RpdmU8L2RlZXMtYnV0dG9uPgogICAgICAgICAgPGRlZXMtYnV0dG9uIHR5cGU9Im91dGxpbmUiPk91dGxpbmU8L2RlZXMtYnV0dG9uPgogICAgICAgICAgPGRlZXMtYnV0dG9uIHR5cGU9Imdob3N0Ij5HaG9zdDwvZGVlcy1idXR0b24+CiAgICAgICAgICA8ZGVlcy1idXR0b24gdHlwZT0ibGluayI+TGluayBCdXR0b248L2RlZXMtYnV0dG9uPgogICAgICAgIDwvZGl2PgogICAgICA8L2RlZXMtcGFuZWw+CiAgICA8L2RlZXMtZGVtb3dyYXBwZXI+CiAgICAKICAgIDxkZWVzLWRlbW93cmFwcGVyIC5ydW5BZnRlclJlbmRlcj0ke2FzeW5jIGU9PntlLnF1ZXJ5U2VsZWN0b3JBbGwoImRlZXMtYnV0dG9uIikuZm9yRWFjaChyPT57ci5hZGRFdmVudExpc3RlbmVyKCJjbGlja2VkIiwoKT0+e2xldCBpPXIuZ2V0QXR0cmlidXRlKCJzaXplIil8fCJkZWZhdWx0Ijtjb25zb2xlLmxvZyhgQnV0dG9uIHNpemU6ICR7aX1gKX0pfSl9fT4KICAgICAgPGRlZXMtcGFuZWwgLnRpdGxlPSR7IjIuIEJ1dHRvbiBTaXplcyJ9IC5zdWJ0aXRsZT0keyJNdWx0aXBsZSBzaXplcyBmb3IgZGlmZmVyZW50IGNvbnRleHRzIGFuZCB1c2UgY2FzZXMifT4KICAgICAgICA8ZGl2IGNsYXNzPSJidXR0b24tZ3JvdXAiPgogICAgICAgICAgPGRlZXMtYnV0dG9uIHNpemU9InNtIj5TbWFsbCBCdXR0b248L2RlZXMtYnV0dG9uPgogICAgICAgICAgPGRlZXMtYnV0dG9uIHNpemU9ImRlZmF1bHQiPkRlZmF1bHQgU2l6ZTwvZGVlcy1idXR0b24+CiAgICAgICAgICA8ZGVlcy1idXR0b24gc2l6ZT0ibGciPkxhcmdlIEJ1dHRvbjwvZGVlcy1idXR0b24+CiAgICAgICAgICA8ZGVlcy1idXR0b24gc2l6ZT0iaWNvbiIgdHlwZT0ib3V0bGluZSIgLnRleHQ9JHsiXHV7MUY2ODB9In0+PC9kZWVzLWJ1dHRvbj4KICAgICAgICA8L2Rpdj4KICAgICAgICAKICAgICAgICA8ZGl2IGNsYXNzPSJidXR0b24tZ3JvdXAiIHN0eWxlPSJtYXJnaW4tdG9wOiAxNnB4OyI+CiAgICAgICAgICA8ZGVlcy1idXR0b24gc2l6ZT0ic20iIHR5cGU9InNlY29uZGFyeSI+U21hbGwgU2Vjb25kYXJ5PC9kZWVzLWJ1dHRvbj4KICAgICAgICAgIDxkZWVzLWJ1dHRvbiBzaXplPSJkZWZhdWx0IiB0eXBlPSJkZXN0cnVjdGl2ZSI+RGVmYXVsdCBEZXN0cnVjdGl2ZTwvZGVlcy1idXR0b24+CiAgICAgICAgICA8ZGVlcy1idXR0b24gc2l6ZT0ibGciIHR5cGU9Im91dGxpbmUiPkxhcmdlIE91dGxpbmU8L2RlZXMtYnV0dG9uPgogICAgICAgIDwvZGl2PgogICAgICA8L2RlZXMtcGFuZWw+CiAgICA8L2RlZXMtZGVtb3dyYXBwZXI+CiAgICAKICAgIDxkZWVzLWRlbW93cmFwcGVyIC5ydW5BZnRlclJlbmRlcj0ke2FzeW5jIGU9PntlLnF1ZXJ5U2VsZWN0b3JBbGwoImRlZXMtYnV0dG9uIikuZm9yRWFjaChyPT57ci5hZGRFdmVudExpc3RlbmVyKCJjbGlja2VkIiwoKT0+e2xldCBpPXIucXVlcnlTZWxlY3RvcigiZGVlcy1pY29uIik7aWYoaSl7bGV0IGE9aS5nZXRBdHRyaWJ1dGUoImljb25GQSIpfHwidW5rbm93biI7Y29uc29sZS5sb2coYEljb24gYnV0dG9uIGNsaWNrZWQ6ICR7YX1gKX19KX0pfX0+CiAgICAgIDxkZWVzLXBhbmVsIC50aXRsZT0keyIzLiBCdXR0b25zIHdpdGggSWNvbnMifSAuc3VidGl0bGU9JHsiQ29tYmluaW5nIGljb25zIHdpdGggdGV4dCBmb3IgZW5oYW5jZWQgdmlzdWFsIGNvbW11bmljYXRpb24ifT4KICAgICAgICA8ZGl2IGNsYXNzPSJpY29uLXJvdyI+CiAgICAgICAgICA8ZGVlcy1idXR0b24+CiAgICAgICAgICAgIDxkZWVzLWljb24gaWNvbj0iZmE6cGx1cyI+PC9kZWVzLWljb24+CiAgICAgICAgICAgIEFkZCBJdGVtCiAgICAgICAgICA8L2RlZXMtYnV0dG9uPgogICAgICAgICAgPGRlZXMtYnV0dG9uIHR5cGU9ImRlc3RydWN0aXZlIj4KICAgICAgICAgICAgPGRlZXMtaWNvbiBpY29uPSJmYTp0cmFzaCI+PC9kZWVzLWljb24+CiAgICAgICAgICAgIERlbGV0ZQogICAgICAgICAgPC9kZWVzLWJ1dHRvbj4KICAgICAgICAgIDxkZWVzLWJ1dHRvbiB0eXBlPSJvdXRsaW5lIj4KICAgICAgICAgICAgPGRlZXMtaWNvbiBpY29uPSJsdWNpZGU6RG93bmxvYWQiPjwvZGVlcy1pY29uPgogICAgICAgICAgICBEb3dubG9hZAogICAgICAgICAgPC9kZWVzLWJ1dHRvbj4KICAgICAgICA8L2Rpdj4KCiAgICAgICAgPGRpdiBjbGFzcz0iaWNvbi1yb3ciPgogICAgICAgICAgPGRlZXMtYnV0dG9uIHR5cGU9InNlY29uZGFyeSIgc2l6ZT0ic20iPgogICAgICAgICAgICA8ZGVlcy1pY29uIGljb249ImZhOmdlYXIiPjwvZGVlcy1pY29uPgogICAgICAgICAgICBTZXR0aW5ncwogICAgICAgICAgPC9kZWVzLWJ1dHRvbj4KICAgICAgICAgIDxkZWVzLWJ1dHRvbiB0eXBlPSJnaG9zdCI+CiAgICAgICAgICAgIDxkZWVzLWljb24gaWNvbj0iZmE6Y2FyZXRMZWZ0Ij48L2RlZXMtaWNvbj4KICAgICAgICAgICAgQmFjawogICAgICAgICAgPC9kZWVzLWJ1dHRvbj4KICAgICAgICAgIDxkZWVzLWJ1dHRvbiB0eXBlPSJnaG9zdCI+CiAgICAgICAgICAgIE5leHQKICAgICAgICAgICAgPGRlZXMtaWNvbiBpY29uPSJmYTpjYXJldFJpZ2h0Ij48L2RlZXMtaWNvbj4KICAgICAgICAgIDwvZGVlcy1idXR0b24+CiAgICAgICAgPC9kaXY+CgogICAgICAgIDxkaXYgY2xhc3M9Imljb24tcm93Ij4KICAgICAgICAgIDxkZWVzLWJ1dHRvbiBzaXplPSJpY29uIiB0eXBlPSJkZWZhdWx0Ij4KICAgICAgICAgICAgPGRlZXMtaWNvbiBpY29uPSJmYTpwbHVzIj48L2RlZXMtaWNvbj4KICAgICAgICAgIDwvZGVlcy1idXR0b24+CiAgICAgICAgICA8ZGVlcy1idXR0b24gc2l6ZT0iaWNvbiIgdHlwZT0ic2Vjb25kYXJ5Ij4KICAgICAgICAgICAgPGRlZXMtaWNvbiBpY29uPSJmYTpnZWFyIj48L2RlZXMtaWNvbj4KICAgICAgICAgIDwvZGVlcy1idXR0b24+CiAgICAgICAgICA8ZGVlcy1idXR0b24gc2l6ZT0iaWNvbiIgdHlwZT0ib3V0bGluZSI+CiAgICAgICAgICAgIDxkZWVzLWljb24gaWNvbj0ibHVjaWRlOlNlYXJjaCI+PC9kZWVzLWljb24+CiAgICAgICAgICA8L2RlZXMtYnV0dG9uPgogICAgICAgICAgPGRlZXMtYnV0dG9uIHNpemU9Imljb24iIHR5cGU9Imdob3N0Ij4KICAgICAgICAgICAgPGRlZXMtaWNvbiBpY29uPSJsdWNpZGU6TW9yZVZlcnRpY2FsIj48L2RlZXMtaWNvbj4KICAgICAgICAgIDwvZGVlcy1idXR0b24+CiAgICAgICAgICA8ZGVlcy1idXR0b24gc2l6ZT0iaWNvbiIgdHlwZT0iZGVzdHJ1Y3RpdmUiPgogICAgICAgICAgICA8ZGVlcy1pY29uIGljb249ImZhOnRyYXNoIj48L2RlZXMtaWNvbj4KICAgICAgICAgIDwvZGVlcy1idXR0b24+CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGVlcy1wYW5lbD4KICAgIDwvZGVlcy1kZW1vd3JhcHBlcj4KCiAgICA8ZGVlcy1kZW1vd3JhcHBlciAucnVuQWZ0ZXJSZW5kZXI9JHthc3luYyBlPT57ZS5xdWVyeVNlbGVjdG9yQWxsKCJkZWVzLWJ1dHRvbiIpLmZvckVhY2gocj0+e3IuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2tlZCIsKCk9PntsZXQgaT1yLmdldEF0dHJpYnV0ZSgiaWNvbiIpfHwibm9uZSIsYT1yLmdldEF0dHJpYnV0ZSgiaWNvblBvc2l0aW9uIil8fCJsZWZ0Ijtjb25zb2xlLmxvZyhgSWNvbiBwcm9wZXJ0eSBidXR0b246IGljb249JHtpfSwgcG9zaXRpb249JHthfWApfSl9KX19PgogICAgICA8ZGVlcy1wYW5lbCAudGl0bGU9JHsiNC4gSWNvbnMgdmlhIFByb3BlcnR5In0gLnN1YnRpdGxlPSR7IlNpbXBsaWZpZWQgaWNvbiBzeW50YXggdXNpbmcgdGhlIGljb24gcHJvcGVydHkifT4KICAgICAgICA8ZGl2IGNsYXNzPSJpY29uLXJvdyI+CiAgICAgICAgICA8ZGVlcy1idXR0b24gaWNvbj0iZmE6cGx1cyI+QWRkIEl0ZW08L2RlZXMtYnV0dG9uPgogICAgICAgICAgPGRlZXMtYnV0dG9uIHR5cGU9ImRlc3RydWN0aXZlIiBpY29uPSJmYTp0cmFzaCI+RGVsZXRlPC9kZWVzLWJ1dHRvbj4KICAgICAgICAgIDxkZWVzLWJ1dHRvbiB0eXBlPSJvdXRsaW5lIiBpY29uPSJsdWNpZGU6RG93bmxvYWQiPkRvd25sb2FkPC9kZWVzLWJ1dHRvbj4KICAgICAgICA8L2Rpdj4KCiAgICAgICAgPGRpdiBjbGFzcz0iaWNvbi1yb3ciPgogICAgICAgICAgPGRlZXMtYnV0dG9uIHR5cGU9InNlY29uZGFyeSIgc2l6ZT0ic20iIGljb249ImZhOmdlYXIiPlNldHRpbmdzPC9kZWVzLWJ1dHRvbj4KICAgICAgICAgIDxkZWVzLWJ1dHRvbiB0eXBlPSJnaG9zdCIgaWNvbj0iZmE6Y2FyZXRMZWZ0Ij5CYWNrPC9kZWVzLWJ1dHRvbj4KICAgICAgICAgIDxkZWVzLWJ1dHRvbiB0eXBlPSJnaG9zdCIgaWNvbj0iZmE6Y2FyZXRSaWdodCIgaWNvblBvc2l0aW9uPSJyaWdodCI+TmV4dDwvZGVlcy1idXR0b24+CiAgICAgICAgPC9kaXY+CgogICAgICAgIDxkaXYgY2xhc3M9Imljb24tcm93Ij4KICAgICAgICAgIDxkZWVzLWJ1dHRvbiBzaXplPSJpY29uIiB0eXBlPSJkZWZhdWx0IiBpY29uPSJmYTpwbHVzIj48L2RlZXMtYnV0dG9uPgogICAgICAgICAgPGRlZXMtYnV0dG9uIHNpemU9Imljb24iIHR5cGU9InNlY29uZGFyeSIgaWNvbj0ibHVjaWRlOlNldHRpbmdzIj48L2RlZXMtYnV0dG9uPgogICAgICAgICAgPGRlZXMtYnV0dG9uIHNpemU9Imljb24iIHR5cGU9Im91dGxpbmUiIGljb249Imx1Y2lkZTpTZWFyY2giPjwvZGVlcy1idXR0b24+CiAgICAgICAgICA8ZGVlcy1idXR0b24gc2l6ZT0iaWNvbiIgdHlwZT0iZ2hvc3QiIGljb249Imx1Y2lkZTpNb3JlVmVydGljYWwiPjwvZGVlcy1idXR0b24+CiAgICAgICAgICA8ZGVlcy1idXR0b24gc2l6ZT0iaWNvbiIgdHlwZT0iZGVzdHJ1Y3RpdmUiIGljb249ImZhOnRyYXNoIj48L2RlZXMtYnV0dG9uPgogICAgICAgIDwvZGl2PgoKICAgICAgICA8ZGl2IHN0eWxlPSJtYXJnaW4tdG9wOiAxNnB4OyI+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJjb2RlLXNuaXBwZXQiPgogICAgICAgICAgICAmbHQ7ZGVlcy1idXR0b24gaWNvbj0iZmE6cGx1cyImZ3Q7QWRkIEl0ZW0mbHQ7L2RlZXMtYnV0dG9uJmd0Ozxicj4KICAgICAgICAgICAgJmx0O2RlZXMtYnV0dG9uIGljb249ImZhOmNhcmV0UmlnaHQiIGljb25Qb3NpdGlvbj0icmlnaHQiJmd0O05leHQmbHQ7L2RlZXMtYnV0dG9uJmd0OwogICAgICAgICAgPC9kaXY+CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGVlcy1wYW5lbD4KICAgIDwvZGVlcy1kZW1vd3JhcHBlcj4KCiAgICA8ZGVlcy1kZW1vd3JhcHBlciAucnVuQWZ0ZXJSZW5kZXI9JHthc3luYyBlPT57bGV0IHQ9ZS5xdWVyeVNlbGVjdG9yKCdkZWVzLWJ1dHRvbltzdGF0dXM9InBlbmRpbmciXScpLHI9ZS5xdWVyeVNlbGVjdG9yKCdkZWVzLWJ1dHRvbltzdGF0dXM9InN1Y2Nlc3MiXScpLGk9ZS5xdWVyeVNlbGVjdG9yKCdkZWVzLWJ1dHRvbltzdGF0dXM9ImVycm9yIl0nKTt0JiZzZXRUaW1lb3V0KCgpPT57Y29uc29sZS5sb2coIlBlbmRpbmcgYnV0dG9uIGlzIHNob3dpbmcgbG9hZGluZyBzdGF0ZSIpfSwxZTMpLHImJnIuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2tlZCIsKCk9Pntjb25zb2xlLmxvZygiU3VjY2VzcyBzdGF0ZSBidXR0b24gY2xpY2tlZCIpfSksaSYmaS5hZGRFdmVudExpc3RlbmVyKCJjbGlja2VkIiwoKT0+e2NvbnNvbGUubG9nKCJFcnJvciBzdGF0ZSBidXR0b24gY2xpY2tlZCIpfSl9fT4KICAgICAgPGRlZXMtcGFuZWwgLnRpdGxlPSR7IjUuIEJ1dHRvbiBTdGF0ZXMifSAuc3VidGl0bGU9JHsiRGlmZmVyZW50IHN0YXRlcyB0byBpbmRpY2F0ZSBidXR0b24gc3RhdHVzIGFuZCBsb2FkaW5nIGNvbmRpdGlvbnMifT4KICAgICAgICA8ZGl2IGNsYXNzPSJidXR0b24tZ3JvdXAiPgogICAgICAgICAgPGRlZXMtYnV0dG9uIHN0YXR1cz0ibm9ybWFsIj5Ob3JtYWw8L2RlZXMtYnV0dG9uPgogICAgICAgICAgPGRlZXMtYnV0dG9uIHN0YXR1cz0icGVuZGluZyI+UHJvY2Vzc2luZy4uLjwvZGVlcy1idXR0b24+CiAgICAgICAgICA8ZGVlcy1idXR0b24gc3RhdHVzPSJzdWNjZXNzIj5TdWNjZXNzITwvZGVlcy1idXR0b24+CiAgICAgICAgICA8ZGVlcy1idXR0b24gc3RhdHVzPSJlcnJvciI+RXJyb3IhPC9kZWVzLWJ1dHRvbj4KICAgICAgICAgIDxkZWVzLWJ1dHRvbiBkaXNhYmxlZD5EaXNhYmxlZDwvZGVlcy1idXR0b24+CiAgICAgICAgPC9kaXY+CiAgICAgICAgCiAgICAgICAgPGRpdiBjbGFzcz0iYnV0dG9uLWdyb3VwIiBzdHlsZT0ibWFyZ2luLXRvcDogMTZweDsiPgogICAgICAgICAgPGRlZXMtYnV0dG9uIHR5cGU9InNlY29uZGFyeSIgc3RhdHVzPSJwZW5kaW5nIiBzaXplPSJzbSI+U21hbGwgTG9hZGluZzwvZGVlcy1idXR0b24+CiAgICAgICAgICA8ZGVlcy1idXR0b24gdHlwZT0ib3V0bGluZSIgc3RhdHVzPSJwZW5kaW5nIj5EZWZhdWx0IExvYWRpbmc8L2RlZXMtYnV0dG9uPgogICAgICAgICAgPGRlZXMtYnV0dG9uIHR5cGU9ImRlc3RydWN0aXZlIiBzdGF0dXM9InBlbmRpbmciIHNpemU9ImxnIj5MYXJnZSBMb2FkaW5nPC9kZWVzLWJ1dHRvbj4KICAgICAgICA8L2Rpdj4KICAgICAgPC9kZWVzLXBhbmVsPgogICAgPC9kZWVzLWRlbW93cmFwcGVyPgogICAgCiAgICA8ZGVlcy1kZW1vd3JhcHBlciAucnVuQWZ0ZXJSZW5kZXI9JHthc3luYyBlPT57bGV0IHQ9ZS5xdWVyeVNlbGVjdG9yKCIjY2xpY2stb3V0cHV0Iikscj1lLnF1ZXJ5U2VsZWN0b3IoImRlZXMtYnV0dG9uOmZpcnN0LW9mLXR5cGUiKSxpPWUucXVlcnlTZWxlY3RvcignZGVlcy1idXR0b25bdHlwZT0ic2Vjb25kYXJ5Il0nKSxhPWUucXVlcnlTZWxlY3RvcignZGVlcy1idXR0b25bdHlwZT0iZGVzdHJ1Y3RpdmUiXScpO3ImJnQmJnIuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2tlZCIsKCk9Pnt0LnRleHRDb250ZW50PWBDbGlja2VkOiBEZWZhdWx0IGJ1dHRvbiBhdCAke25ldyBEYXRlKCkudG9Mb2NhbGVUaW1lU3RyaW5nKCl9YH0pLGkmJnQmJmkuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2tlZCIsbj0+e3QudGV4dENvbnRlbnQ9YENsaWNrZWQ6IFNlY29uZGFyeSBidXR0b24gd2l0aCBkYXRhOiAke24uZGV0YWlsLmRhdGF9YH0pLGEmJnQmJmEuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2tlZCIsYXN5bmMoKT0+e3QudGV4dENvbnRlbnQ9IlByb2Nlc3NpbmcuLi4iLGF3YWl0IGt0LnBsdWdpbnMuc21hcnRkZWxheS5kZWxheUZvcigyZTMpLHQudGV4dENvbnRlbnQ9IkFjdGlvbiBjb21wbGV0ZWQhIn0pfX0+CiAgICAgIDxkZWVzLXBhbmVsIC50aXRsZT0keyI2LiBFdmVudCBIYW5kbGluZyJ9IC5zdWJ0aXRsZT0keyJJbnRlcmFjdGl2ZSBleGFtcGxlcyB3aXRoIGNsaWNrIGV2ZW50IGhhbmRsaW5nIn0+CiAgICAgICAgPGRpdiBjbGFzcz0iYnV0dG9uLWdyb3VwIj4KICAgICAgICAgIDxkZWVzLWJ1dHRvbj5DbGljayBNZTwvZGVlcy1idXR0b24+CiAgICAgICAgICA8ZGVlcy1idXR0b24gdHlwZT0ic2Vjb25kYXJ5IiAuZXZlbnREZXRhaWxEYXRhPSR7ImN1c3RvbS1kYXRhLTEyMyJ9PgogICAgICAgICAgICBDbGljayB3aXRoIERhdGEKICAgICAgICAgIDwvZGVlcy1idXR0b24+CiAgICAgICAgICA8ZGVlcy1idXR0b24gdHlwZT0iZGVzdHJ1Y3RpdmUiPkFzeW5jIEFjdGlvbjwvZGVlcy1idXR0b24+CiAgICAgICAgPC9kaXY+CiAgICAgICAgCiAgICAgICAgPGRpdiBpZD0iY2xpY2stb3V0cHV0IiBjbGFzcz0iZGVtby1vdXRwdXQiPgogICAgICAgICAgPGVtPkNsaWNrIGEgYnV0dG9uIHRvIHNlZSB0aGUgcmVzdWx0Li4uPC9lbT4KICAgICAgICA8L2Rpdj4KICAgICAgPC9kZWVzLXBhbmVsPgogICAgPC9kZWVzLWRlbW93cmFwcGVyPgogICAgCiAgICA8ZGVlcy1kZW1vd3JhcHBlciAucnVuQWZ0ZXJSZW5kZXI9JHthc3luYyBlPT57bGV0IHQ9ZS5xdWVyeVNlbGVjdG9yKCJkZWVzLWZvcm0iKSxyPWUucXVlcnlTZWxlY3RvcigiI2Zvcm0tb3V0cHV0Iik7dCYmciYmdC5hZGRFdmVudExpc3RlbmVyKCJmb3JtRGF0YSIsbj0+e3IuaW5uZXJIVE1MPSI8c3Ryb25nPkZvcm0gc3VibWl0dGVkIHdpdGggZGF0YTo8L3N0cm9uZz48YnI+IitKU09OLnN0cmluZ2lmeShuLmRldGFpbC5kYXRhLG51bGwsMil9KTtsZXQgaT1lLnF1ZXJ5U2VsZWN0b3IoJ2RlZXMtYnV0dG9uW3R5cGU9InNlY29uZGFyeSJdJyksYT1lLnF1ZXJ5U2VsZWN0b3IoJ2RlZXMtYnV0dG9uW3R5cGU9Imdob3N0Il0nKTtpJiZpLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrZWQiLCgpPT57Y29uc29sZS5sb2coIlNhdmUgRHJhZnQgY2xpY2tlZCIpfSksYSYmYS5hZGRFdmVudExpc3RlbmVyKCJjbGlja2VkIiwoKT0+e2NvbnNvbGUubG9nKCJDYW5jZWwgY2xpY2tlZCIpfSl9fT4KICAgICAgPGRlZXMtcGFuZWwgLnRpdGxlPSR7IjcuIEZvcm0gSW50ZWdyYXRpb24ifSAuc3VidGl0bGU9JHsiQnV0dG9ucyB3b3JraW5nIHdpdGhpbiBmb3JtcyB3aXRoIGF1dG9tYXRpYyBzcGFjaW5nIn0+CiAgICAgICAgPGRlZXMtZm9ybT4KICAgICAgICAgIDxkZWVzLWlucHV0LXRleHQgbGFiZWw9Ik5hbWUiIGtleT0ibmFtZSIgcmVxdWlyZWQ+PC9kZWVzLWlucHV0LXRleHQ+CiAgICAgICAgICA8ZGVlcy1pbnB1dC10ZXh0IGxhYmVsPSJFbWFpbCIga2V5PSJlbWFpbCIgdHlwZT0iZW1haWwiIHJlcXVpcmVkPjwvZGVlcy1pbnB1dC10ZXh0PgogICAgICAgICAgPGRlZXMtaW5wdXQtdGV4dCBsYWJlbD0iTWVzc2FnZSIga2V5PSJtZXNzYWdlIiBpc011bHRpbGluZT48L2RlZXMtaW5wdXQtdGV4dD4KICAgICAgICAgIAogICAgICAgICAgPGRlZXMtYnV0dG9uIHR5cGU9InNlY29uZGFyeSI+U2F2ZSBEcmFmdDwvZGVlcy1idXR0b24+CiAgICAgICAgICA8ZGVlcy1idXR0b24gdHlwZT0iZ2hvc3QiPkNhbmNlbDwvZGVlcy1idXR0b24+CiAgICAgICAgICA8ZGVlcy1mb3JtLXN1Ym1pdD5TdWJtaXQgRm9ybTwvZGVlcy1mb3JtLXN1Ym1pdD4KICAgICAgICA8L2RlZXMtZm9ybT4KICAgICAgICAKICAgICAgICA8ZGl2IGlkPSJmb3JtLW91dHB1dCIgY2xhc3M9ImRlbW8tb3V0cHV0IiBzdHlsZT0id2hpdGUtc3BhY2U6IHByZS13cmFwOyI+CiAgICAgICAgICA8ZW0+U3VibWl0IHRoZSBmb3JtIHRvIHNlZSB0aGUgZGF0YS4uLjwvZW0+CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGVlcy1wYW5lbD4KICAgIDwvZGVlcy1kZW1vd3JhcHBlcj4KICAgIAogICAgPGRlZXMtZGVtb3dyYXBwZXIgLnJ1bkFmdGVyUmVuZGVyPSR7YXN5bmMgZT0+e2UucXVlcnlTZWxlY3RvckFsbCgiZGVlcy1idXR0b24iKS5mb3JFYWNoKHI9PntsZXQgaT1yLmdldEF0dHJpYnV0ZSgidHlwZSIpO2kmJmNvbnNvbGUubG9nKGBMZWdhY3kgdHlwZSAiJHtpfSIgaXMgc3VwcG9ydGVkIGZvciBiYWNrd2FyZCBjb21wYXRpYmlsaXR5YCl9KX19PgogICAgICA8ZGVlcy1wYW5lbCAudGl0bGU9JHsiOC4gQmFja3dhcmQgQ29tcGF0aWJpbGl0eSJ9IC5zdWJ0aXRsZT0keyJPbGQgYnV0dG9uIHR5cGVzIGFyZSBhdXRvbWF0aWNhbGx5IG1hcHBlZCB0byBuZXcgdmFyaWFudHMifT4KICAgICAgICA8ZGl2IGNsYXNzPSJidXR0b24tZ3JvdXAiPgogICAgICAgICAgPGRlZXMtYnV0dG9uIHR5cGU9Im5vcm1hbCI+Tm9ybWFsIOKGkiBEZWZhdWx0PC9kZWVzLWJ1dHRvbj4KICAgICAgICAgIDxkZWVzLWJ1dHRvbiB0eXBlPSJoaWdobGlnaHRlZCI+SGlnaGxpZ2h0ZWQg4oaSIERlc3RydWN0aXZlPC9kZWVzLWJ1dHRvbj4KICAgICAgICAgIDxkZWVzLWJ1dHRvbiB0eXBlPSJkaXNjcmVldCI+RGlzY3JlZXQg4oaSIE91dGxpbmU8L2RlZXMtYnV0dG9uPgogICAgICAgICAgPGRlZXMtYnV0dG9uIHR5cGU9ImJpZyI+QmlnIOKGkiBMYXJnZSBTaXplPC9kZWVzLWJ1dHRvbj4KICAgICAgICA8L2Rpdj4KICAgICAgICAKICAgICAgICA8cCBzdHlsZT0ibWFyZ2luLXRvcDogMTZweDsgZm9udC1zaXplOiAxNHB4OyBjb2xvcjogJHttLmJkVGhlbWUoImhzbCgyMTUuNCAxNi4zJSA1Ni45JSkiLCJoc2woMjE1IDIwLjIlIDU1LjElKSIpfTsiPgogICAgICAgICAgVGhlc2UgbGVnYWN5IHR5cGUgdmFsdWVzIGFyZSBtYWludGFpbmVkIGZvciBiYWNrd2FyZCBjb21wYXRpYmlsaXR5IGJ1dCB3ZSByZWNvbW1lbmQgdXNpbmcgdGhlIG5ldyB2YXJpYW50IHN5c3RlbS4KICAgICAgICA8L3A+CiAgICAgIDwvZGVlcy1wYW5lbD4KICAgIDwvZGVlcy1kZW1vd3JhcHBlcj4KICAgIAogICAgPGRlZXMtZGVtb3dyYXBwZXIgLnJ1bkFmdGVyUmVuZGVyPSR7YXN5bmMgZT0+e2xldCB0PWUucXVlcnlTZWxlY3RvckFsbCgiLnZlcnRpY2FsLWdyb3VwIilbMF0scj1lLnF1ZXJ5U2VsZWN0b3JBbGwoIi52ZXJ0aWNhbC1ncm91cCIpWzFdO3QmJnQucXVlcnlTZWxlY3RvckFsbCgiZGVlcy1idXR0b24iKS5mb3JFYWNoKChhLG4pPT57YS5hZGRFdmVudExpc3RlbmVyKCJjbGlja2VkIiwoKT0+e2xldCBvPVsiU2F2ZSBDaGFuZ2VzIiwiRGlzY2FyZCIsIkhlbHAiXVtuXTtjb25zb2xlLmxvZyhgQWN0aW9uIGdyb3VwOiAke299IGNsaWNrZWRgKX0pfSksciYmci5xdWVyeVNlbGVjdG9yQWxsKCJkZWVzLWJ1dHRvbiIpLmZvckVhY2goKGEsbik9PnthLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrZWQiLCgpPT57bGV0IG89WyJEZWxldGUgQWNjb3VudCIsIkFyY2hpdmUgRGF0YSIsIk5vdCBBdmFpbGFibGUiXVtuXTtuIT09MiYmY29uc29sZS5sb2coYERhbmdlciB6b25lOiAke299IGNsaWNrZWRgKX0pfSl9fT4KICAgICAgPGRlZXMtcGFuZWwgLnRpdGxlPSR7IjkuIEFkdmFuY2VkIEV4YW1wbGVzIn0gLnN1YnRpdGxlPSR7IkNvbXBsZXggYnV0dG9uIGNvbmZpZ3VyYXRpb25zIGFuZCByZWFsLXdvcmxkIHVzZSBjYXNlcyJ9PgogICAgICAgIDxkaXYgY2xhc3M9Imhvcml6b250YWwtZ3JvdXAiPgogICAgICAgICAgPGRpdiBjbGFzcz0idmVydGljYWwtZ3JvdXAiPgogICAgICAgICAgICA8aDQgc3R5bGU9Im1hcmdpbjogMCAwIDhweCAwOyBmb250LXNpemU6IDE0cHg7IGZvbnQtd2VpZ2h0OiA1MDA7Ij5BY3Rpb24gR3JvdXA8L2g0PgogICAgICAgICAgICA8ZGVlcy1idXR0b24gdHlwZT0iZGVmYXVsdCIgc2l6ZT0ic20iPgogICAgICAgICAgICAgIDxkZWVzLWljb24gaWNvbj0ibHVjaWRlOlNhdmUiPjwvZGVlcy1pY29uPgogICAgICAgICAgICAgIFNhdmUgQ2hhbmdlcwogICAgICAgICAgICA8L2RlZXMtYnV0dG9uPgogICAgICAgICAgICA8ZGVlcy1idXR0b24gdHlwZT0ic2Vjb25kYXJ5IiBzaXplPSJzbSI+CiAgICAgICAgICAgICAgPGRlZXMtaWNvbiBpY29uPSJsdWNpZGU6VW5kbzIiPjwvZGVlcy1pY29uPgogICAgICAgICAgICAgIERpc2NhcmQKICAgICAgICAgICAgPC9kZWVzLWJ1dHRvbj4KICAgICAgICAgICAgPGRlZXMtYnV0dG9uIHR5cGU9Imdob3N0IiBzaXplPSJzbSI+CiAgICAgICAgICAgICAgPGRlZXMtaWNvbiBpY29uPSJsdWNpZGU6SGVscENpcmNsZSI+PC9kZWVzLWljb24+CiAgICAgICAgICAgICAgSGVscAogICAgICAgICAgICA8L2RlZXMtYnV0dG9uPgogICAgICAgICAgPC9kaXY+CgogICAgICAgICAgPGRpdiBjbGFzcz0idmVydGljYWwtZ3JvdXAiPgogICAgICAgICAgICA8aDQgc3R5bGU9Im1hcmdpbjogMCAwIDhweCAwOyBmb250LXNpemU6IDE0cHg7IGZvbnQtd2VpZ2h0OiA1MDA7Ij5EYW5nZXIgWm9uZTwvaDQ+CiAgICAgICAgICAgIDxkZWVzLWJ1dHRvbiB0eXBlPSJkZXN0cnVjdGl2ZSIgc2l6ZT0ic20iPgogICAgICAgICAgICAgIDxkZWVzLWljb24gaWNvbj0iZmE6dHJhc2giPjwvZGVlcy1pY29uPgogICAgICAgICAgICAgIERlbGV0ZSBBY2NvdW50CiAgICAgICAgICAgIDwvZGVlcy1idXR0b24+CiAgICAgICAgICAgIDxkZWVzLWJ1dHRvbiB0eXBlPSJvdXRsaW5lIiBzaXplPSJzbSI+CiAgICAgICAgICAgICAgPGRlZXMtaWNvbiBpY29uPSJsdWNpZGU6QXJjaGl2ZSI+PC9kZWVzLWljb24+CiAgICAgICAgICAgICAgQXJjaGl2ZSBEYXRhCiAgICAgICAgICAgIDwvZGVlcy1idXR0b24+CiAgICAgICAgICAgIDxkZWVzLWJ1dHRvbiB0eXBlPSJnaG9zdCIgc2l6ZT0ic20iIGRpc2FibGVkPgogICAgICAgICAgICAgIDxkZWVzLWljb24gaWNvbj0ibHVjaWRlOkJhbiI+PC9kZWVzLWljb24+CiAgICAgICAgICAgICAgTm90IEF2YWlsYWJsZQogICAgICAgICAgICA8L2RlZXMtYnV0dG9uPgogICAgICAgICAgPC9kaXY+CiAgICAgICAgPC9kaXY+CiAgICAgICAgCiAgICAgICAgPGRpdiBzdHlsZT0ibWFyZ2luLXRvcDogMjRweDsiPgogICAgICAgICAgPGg0IHN0eWxlPSJtYXJnaW46IDAgMCA4cHggMDsgZm9udC1zaXplOiAxNHB4OyBmb250LXdlaWdodDogNTAwOyI+Q29kZSBFeGFtcGxlOjwvaDQ+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJjb2RlLXNuaXBwZXQiPgogICAgICAgICAgICAmbHQ7ZGVlcy1idXR0b24gdHlwZT0iZGVmYXVsdCIgc2l6ZT0ic20iIGljb249Imx1Y2lkZTpTYXZlIiBAY2xpY2tlZD0iXCR7aGFuZGxlQ2xpY2t9IiZndDs8YnI+CiAgICAgICAgICAgICZuYnNwOyZuYnNwO1NhdmUgQ2hhbmdlczxicj4KICAgICAgICAgICAgJmx0Oy9kZWVzLWJ1dHRvbiZndDsKICAgICAgICAgIDwvZGl2PgogICAgICAgIDwvZGl2PgogICAgICA8L2RlZXMtcGFuZWw+CiAgICA8L2RlZXMtZGVtb3dyYXBwZXI+CiAgPC9kaXY+CmB9KTt2YXIgQTIsVzEsX2xyLEk0PXAoKCk9Pnt4ZSgpO0t0KCk7VGxyKCk7SmUoKTtBMj1mdW5jdGlvbihlLHQscixpLGEsbil7ZnVuY3Rpb24gbyh5KXtpZih5IT09dm9pZCAwJiZ0eXBlb2YgeSE9ImZ1bmN0aW9uIil0aHJvdyBuZXcgVHlwZUVycm9yKCJGdW5jdGlvbiBleHBlY3RlZCIpO3JldHVybiB5fWZvcih2YXIgcz1pLmtpbmQsbD1zPT09ImdldHRlciI/ImdldCI6cz09PSJzZXR0ZXIiPyJzZXQiOiJ2YWx1ZSIsYz0hdCYmZT9pLnN0YXRpYz9lOmUucHJvdG90eXBlOm51bGwsdT10fHwoYz9PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGMsaS5uYW1lKTp7fSksZCxoPSExLGY9ci5sZW5ndGgtMTtmPj0wO2YtLSl7dmFyIHg9e307Zm9yKHZhciB2IGluIGkpeFt2XT12PT09ImFjY2VzcyI/e306aVt2XTtmb3IodmFyIHYgaW4gaS5hY2Nlc3MpeC5hY2Nlc3Nbdl09aS5hY2Nlc3Nbdl07eC5hZGRJbml0aWFsaXplcj1mdW5jdGlvbih5KXtpZihoKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBhZGQgaW5pdGlhbGl6ZXJzIGFmdGVyIGRlY29yYXRpb24gaGFzIGNvbXBsZXRlZCIpO24ucHVzaChvKHl8fG51bGwpKX07dmFyIGI9KDAscltmXSkocz09PSJhY2Nlc3NvciI/e2dldDp1LmdldCxzZXQ6dS5zZXR9OnVbbF0seCk7aWYocz09PSJhY2Nlc3NvciIpe2lmKGI9PT12b2lkIDApY29udGludWU7aWYoYj09PW51bGx8fHR5cGVvZiBiIT0ib2JqZWN0Iil0aHJvdyBuZXcgVHlwZUVycm9yKCJPYmplY3QgZXhwZWN0ZWQiKTsoZD1vKGIuZ2V0KSkmJih1LmdldD1kKSwoZD1vKGIuc2V0KSkmJih1LnNldD1kKSwoZD1vKGIuaW5pdCkpJiZhLnVuc2hpZnQoZCl9ZWxzZShkPW8oYikpJiYocz09PSJmaWVsZCI/YS51bnNoaWZ0KGQpOnVbbF09ZCl9YyYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGMsaS5uYW1lLHUpLGg9ITB9LFcxPWZ1bmN0aW9uKGUsdCxyKXtmb3IodmFyIGk9YXJndW1lbnRzLmxlbmd0aD4yLGE9MDthPHQubGVuZ3RoO2ErKylyPWk/dFthXS5jYWxsKGUscik6dFthXS5jYWxsKGUpO3JldHVybiBpP3I6dm9pZCAwfSxfbHI9KCgpPT57bGV0IGU9W3llKCJkZWVzLWJ1dHRvbiIpXSx0LHI9W10saSxhPXplLG4sbz1bXSxzPVtdLGwsYz1bXSx1PVtdLGQsaD1bXSxmPVtdLHgsdj1bXSxiPVtdLHksdz1bXSxrPVtdLE8sej1bXSxNPVtdLEYsRD1bXSxOPVtdLFIsXz1bXSxTPVtdLCQsVD1bXSxFPVtdLHEsQj1bXSxHPVtdO3ZhciBlZT1jbGFzcyBleHRlbmRzIGF7c3RhdGlje2k9dGhpc31zdGF0aWN7bGV0IFA9dHlwZW9mIFN5bWJvbD09ImZ1bmN0aW9uIiYmU3ltYm9sLm1ldGFkYXRhP09iamVjdC5jcmVhdGUoYVtTeW1ib2wubWV0YWRhdGFdPz9udWxsKTp2b2lkIDA7bj1baih7cmVmbGVjdDohMCxoYXNDaGFuZ2VkKCl7cmV0dXJuITB9fSldLGw9W2ooKV0sZD1baih7dHlwZTpCb29sZWFuLHJlZmxlY3Q6ITB9KV0seD1baih7dHlwZTpCb29sZWFufSldLHk9W2ooe3R5cGU6U3RyaW5nfSldLE89W2ooe3R5cGU6U3RyaW5nfSldLEY9W2ooe3R5cGU6U3RyaW5nfSldLFI9W2ooe3R5cGU6Qm9vbGVhbixyZWZsZWN0OiEwfSldLCQ9W2ooe3R5cGU6U3RyaW5nLHJlZmxlY3Q6ITB9KV0scT1baih7dHlwZTpTdHJpbmcscmVmbGVjdDohMH0pXSxBMih0aGlzLG51bGwsbix7a2luZDoiYWNjZXNzb3IiLG5hbWU6InRleHQiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmdlPT4idGV4dCJpbiBnZSxnZXQ6Z2U9PmdlLnRleHQsc2V0OihnZSx3ZSk9PntnZS50ZXh0PXdlfX0sbWV0YWRhdGE6UH0sbyxzKSxBMih0aGlzLG51bGwsbCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImV2ZW50RGV0YWlsRGF0YSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6Z2U9PiJldmVudERldGFpbERhdGEiaW4gZ2UsZ2V0OmdlPT5nZS5ldmVudERldGFpbERhdGEsc2V0OihnZSx3ZSk9PntnZS5ldmVudERldGFpbERhdGE9d2V9fSxtZXRhZGF0YTpQfSxjLHUpLEEyKHRoaXMsbnVsbCxkLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiZGlzYWJsZWQiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmdlPT4iZGlzYWJsZWQiaW4gZ2UsZ2V0OmdlPT5nZS5kaXNhYmxlZCxzZXQ6KGdlLHdlKT0+e2dlLmRpc2FibGVkPXdlfX0sbWV0YWRhdGE6UH0saCxmKSxBMih0aGlzLG51bGwseCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImlzSGlkZGVuIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpnZT0+ImlzSGlkZGVuImluIGdlLGdldDpnZT0+Z2UuaXNIaWRkZW4sc2V0OihnZSx3ZSk9PntnZS5pc0hpZGRlbj13ZX19LG1ldGFkYXRhOlB9LHYsYiksQTIodGhpcyxudWxsLHkse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJ0eXBlIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpnZT0+InR5cGUiaW4gZ2UsZ2V0OmdlPT5nZS50eXBlLHNldDooZ2Usd2UpPT57Z2UudHlwZT13ZX19LG1ldGFkYXRhOlB9LHcsayksQTIodGhpcyxudWxsLE8se2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJzaXplIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpnZT0+InNpemUiaW4gZ2UsZ2V0OmdlPT5nZS5zaXplLHNldDooZ2Usd2UpPT57Z2Uuc2l6ZT13ZX19LG1ldGFkYXRhOlB9LHosTSksQTIodGhpcyxudWxsLEYse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJzdGF0dXMiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmdlPT4ic3RhdHVzImluIGdlLGdldDpnZT0+Z2Uuc3RhdHVzLHNldDooZ2Usd2UpPT57Z2Uuc3RhdHVzPXdlfX0sbWV0YWRhdGE6UH0sRCxOKSxBMih0aGlzLG51bGwsUix7a2luZDoiYWNjZXNzb3IiLG5hbWU6Imluc2lkZUZvcm0iLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmdlPT4iaW5zaWRlRm9ybSJpbiBnZSxnZXQ6Z2U9PmdlLmluc2lkZUZvcm0sc2V0OihnZSx3ZSk9PntnZS5pbnNpZGVGb3JtPXdlfX0sbWV0YWRhdGE6UH0sXyxTKSxBMih0aGlzLG51bGwsJCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6Imljb24iLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmdlPT4iaWNvbiJpbiBnZSxnZXQ6Z2U9PmdlLmljb24sc2V0OihnZSx3ZSk9PntnZS5pY29uPXdlfX0sbWV0YWRhdGE6UH0sVCxFKSxBMih0aGlzLG51bGwscSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6Imljb25Qb3NpdGlvbiIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6Z2U9PiJpY29uUG9zaXRpb24iaW4gZ2UsZ2V0OmdlPT5nZS5pY29uUG9zaXRpb24sc2V0OihnZSx3ZSk9PntnZS5pY29uUG9zaXRpb249d2V9fSxtZXRhZGF0YTpQfSxCLEcpLEEyKG51bGwsdD17dmFsdWU6aX0sZSx7a2luZDoiY2xhc3MiLG5hbWU6aS5uYW1lLG1ldGFkYXRhOlB9LG51bGwsciksZWU9aT10LnZhbHVlLFAmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShpLFN5bWJvbC5tZXRhZGF0YSx7ZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITAsdmFsdWU6UH0pfXN0YXRpYyBkZW1vPUNscjtzdGF0aWMgZGVtb0dyb3Vwcz1bIkJ1dHRvbiJdOyNlPVcxKHRoaXMsbyx2b2lkIDApO2dldCB0ZXh0KCl7cmV0dXJuIHRoaXMuI2V9c2V0IHRleHQoUCl7dGhpcy4jZT1QfSN0PShXMSh0aGlzLHMpLFcxKHRoaXMsYyx2b2lkIDApKTtnZXQgZXZlbnREZXRhaWxEYXRhKCl7cmV0dXJuIHRoaXMuI3R9c2V0IGV2ZW50RGV0YWlsRGF0YShQKXt0aGlzLiN0PVB9I3I9KFcxKHRoaXMsdSksVzEodGhpcyxoLCExKSk7Z2V0IGRpc2FibGVkKCl7cmV0dXJuIHRoaXMuI3J9c2V0IGRpc2FibGVkKFApe3RoaXMuI3I9UH0jaT0oVzEodGhpcyxmKSxXMSh0aGlzLHYsITEpKTtnZXQgaXNIaWRkZW4oKXtyZXR1cm4gdGhpcy4jaX1zZXQgaXNIaWRkZW4oUCl7dGhpcy4jaT1QfSNhPShXMSh0aGlzLGIpLFcxKHRoaXMsdywiZGVmYXVsdCIpKTtnZXQgdHlwZSgpe3JldHVybiB0aGlzLiNhfXNldCB0eXBlKFApe3RoaXMuI2E9UH0jbj0oVzEodGhpcyxrKSxXMSh0aGlzLHosImRlZmF1bHQiKSk7Z2V0IHNpemUoKXtyZXR1cm4gdGhpcy4jbn1zZXQgc2l6ZShQKXt0aGlzLiNuPVB9I289KFcxKHRoaXMsTSksVzEodGhpcyxELCJub3JtYWwiKSk7Z2V0IHN0YXR1cygpe3JldHVybiB0aGlzLiNvfXNldCBzdGF0dXMoUCl7dGhpcy4jbz1QfSNzPShXMSh0aGlzLE4pLFcxKHRoaXMsXywhMSkpO2dldCBpbnNpZGVGb3JtKCl7cmV0dXJuIHRoaXMuI3N9c2V0IGluc2lkZUZvcm0oUCl7dGhpcy4jcz1QfSNsPShXMSh0aGlzLFMpLFcxKHRoaXMsVCx2b2lkIDApKTtnZXQgaWNvbigpe3JldHVybiB0aGlzLiNsfXNldCBpY29uKFApe3RoaXMuI2w9UH0jYz0oVzEodGhpcyxFKSxXMSh0aGlzLEIsImxlZnQiKSk7Z2V0IGljb25Qb3NpdGlvbigpe3JldHVybiB0aGlzLiNjfXNldCBpY29uUG9zaXRpb24oUCl7dGhpcy4jYz1QfWNvbnN0cnVjdG9yKCl7c3VwZXIoKSxXMSh0aGlzLEcpfWFzeW5jIGNvbm5lY3RlZENhbGxiYWNrKCl7YXdhaXQgc3VwZXIuY29ubmVjdGVkQ2FsbGJhY2soKSwhdGhpcy5pbnNpZGVGb3JtJiZ0aGlzLmNsb3Nlc3QoImRlZXMtZm9ybSIpJiYodGhpcy5pbnNpZGVGb3JtPSEwKX1zdGF0aWMgc3R5bGVzPVtEZSxtLmRlZmF1bHRTdHlsZXMsb2VgCiAgICAgIC8qIFRPRE86IE1pZ3JhdGUgaGFyZGNvZGVkIHZhbHVlcyB0byAtLWRlZXMtKiBDU1MgdmFyaWFibGVzICovCiAgICAgIDpob3N0IHsKICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7CiAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDsKICAgICAgICBmb250LWZhbWlseTogaW5oZXJpdDsKICAgICAgfQogICAgICA6aG9zdChbaGlkZGVuXSkgewogICAgICAgIGRpc3BsYXk6IG5vbmU7CiAgICAgIH0KCiAgICAgIC8qIEZvcm0gc3BhY2luZyBzdHlsZXMgKi8KICAgICAgOmhvc3QoW2luc2lkZS1mb3JtXSkgewogICAgICAgIG1hcmdpbi1ib3R0b206IDE2cHg7CiAgICAgIH0KICAgICAgCiAgICAgIDpob3N0KFtpbnNpZGUtZm9ybV06bGFzdC1jaGlsZCkgewogICAgICAgIG1hcmdpbi1ib3R0b206IDA7CiAgICAgIH0KICAgICAgCiAgICAgIGRlZXMtZm9ybVtob3Jpem9udGFsLWxheW91dF0gOmhvc3QoW2luc2lkZS1mb3JtXSkgewogICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jazsKICAgICAgICBtYXJnaW4tcmlnaHQ6IDE2cHg7CiAgICAgICAgbWFyZ2luLWJvdHRvbTogMDsKICAgICAgfQogICAgICAKICAgICAgZGVlcy1mb3JtW2hvcml6b250YWwtbGF5b3V0XSA6aG9zdChbaW5zaWRlLWZvcm1dOmxhc3QtY2hpbGQpIHsKICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7CiAgICAgIH0KCiAgICAgIC5idXR0b24gewogICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOwogICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7CiAgICAgICAgYm9yZGVyLXJhZGl1czogNnB4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7CiAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuMTVzIGVhc2U7CiAgICAgICAgY3Vyc29yOiBwb2ludGVyOwogICAgICAgIHVzZXItc2VsZWN0OiBub25lOwogICAgICAgIG91dGxpbmU6IG5vbmU7CiAgICAgICAgbGV0dGVyLXNwYWNpbmc6IC0wLjAxZW07CiAgICAgICAgZ2FwOiA4cHg7CiAgICAgIH0KCiAgICAgIC8qIFNpemUgdmFyaWFudHMgKi8KICAgICAgLmJ1dHRvbi5zaXplLWRlZmF1bHQgewogICAgICAgIGhlaWdodDogMzZweDsKICAgICAgICBwYWRkaW5nOiAwIDE2cHg7CiAgICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgICB9CgogICAgICAuYnV0dG9uLnNpemUtc20gewogICAgICAgIGhlaWdodDogMzJweDsKICAgICAgICBwYWRkaW5nOiAwIDEycHg7CiAgICAgICAgZm9udC1zaXplOiAxM3B4OwogICAgICB9CgogICAgICAuYnV0dG9uLnNpemUtbGcgewogICAgICAgIGhlaWdodDogNDRweDsKICAgICAgICBwYWRkaW5nOiAwIDI0cHg7CiAgICAgICAgZm9udC1zaXplOiAxNnB4OwogICAgICB9CgogICAgICAuYnV0dG9uLnNpemUtaWNvbiB7CiAgICAgICAgaGVpZ2h0OiAzNnB4OwogICAgICAgIHdpZHRoOiAzNnB4OwogICAgICAgIHBhZGRpbmc6IDA7CiAgICAgIH0KCiAgICAgIC8qIERlZmF1bHQgdmFyaWFudCAqLwogICAgICAuYnV0dG9uLmRlZmF1bHQgewogICAgICAgIGJhY2tncm91bmQ6ICR7bS5iZFRoZW1lKCJoc2woMCAwJSAxMDAlKSIsImhzbCgyMTUgMjAuMiUgMTEuOCUpIil9OwogICAgICAgIGNvbG9yOiAke20uYmRUaGVtZSgiaHNsKDIxNS4zIDI1JSA4LjglKSIsImhzbCgyMTAgNDAlIDk4JSkiKX07CiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHttLmJkVGhlbWUoImhzbCgyMTQuMyAzMS44JSA5MS40JSkiLCJoc2woMjE1IDIwLjIlIDE2LjglKSIpfTsKICAgICAgICBib3gtc2hhZG93OiAwIDFweCAycHggMCByZ2IoMCAwIDAgLyAwLjA1KTsKICAgICAgfQoKICAgICAgLmJ1dHRvbi5kZWZhdWx0OmhvdmVyOm5vdCguZGlzYWJsZWQpIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke20uYmRUaGVtZSgiaHNsKDIxMCA0MCUgOTYuMSUpIiwiaHNsKDIxNSAyMC4yJSAxMC4yJSkiKX07CiAgICAgICAgYm9yZGVyLWNvbG9yOiAke20uYmRUaGVtZSgiaHNsKDIxNC4zIDMxLjglIDg1JSkiLCJoc2woMjE1IDIwLjIlIDIwJSkiKX07CiAgICAgIH0KCiAgICAgIC5idXR0b24uZGVmYXVsdDphY3RpdmU6bm90KC5kaXNhYmxlZCkgewogICAgICAgIGJhY2tncm91bmQ6ICR7bS5iZFRoZW1lKCJoc2woMjE0LjMgMzEuOCUgOTEuNCUpIiwiaHNsKDIxNSAyMC4yJSA5JSkiKX07CiAgICAgIH0KCiAgICAgIC8qIERlc3RydWN0aXZlIHZhcmlhbnQgKi8KICAgICAgLmJ1dHRvbi5kZXN0cnVjdGl2ZSB7CiAgICAgICAgYmFja2dyb3VuZDogaHNsKDAgODQuMiUgNjAuMiUpOwogICAgICAgIGNvbG9yOiBoc2woMCAwJSA5OCUpOwogICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIHRyYW5zcGFyZW50OwogICAgICB9CgogICAgICAuYnV0dG9uLmRlc3RydWN0aXZlOmhvdmVyOm5vdCguZGlzYWJsZWQpIHsKICAgICAgICBiYWNrZ3JvdW5kOiBoc2woMCA4NC4yJSA1Ni4yJSk7CiAgICAgIH0KCiAgICAgIC5idXR0b24uZGVzdHJ1Y3RpdmU6YWN0aXZlOm5vdCguZGlzYWJsZWQpIHsKICAgICAgICBiYWNrZ3JvdW5kOiBoc2woMCA4NC4yJSA1Mi4yJSk7CiAgICAgIH0KCiAgICAgIC8qIE91dGxpbmUgdmFyaWFudCAqLwogICAgICAuYnV0dG9uLm91dGxpbmUgewogICAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50OwogICAgICAgIGNvbG9yOiAke20uYmRUaGVtZSgiaHNsKDIxNS4zIDI1JSA4LjglKSIsImhzbCgyMTAgNDAlIDk4JSkiKX07CiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHttLmJkVGhlbWUoImhzbCgyMTQuMyAzMS44JSA5MS40JSkiLCJoc2woMjE1IDIwLjIlIDIxLjglKSIpfTsKICAgICAgfQoKICAgICAgLmJ1dHRvbi5vdXRsaW5lOmhvdmVyOm5vdCguZGlzYWJsZWQpIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke20uYmRUaGVtZSgiaHNsKDIxMCA0MCUgOTYuMSUpIiwiaHNsKDIxNSAyMC4yJSAxNi44JSkiKX07CiAgICAgICAgYm9yZGVyLWNvbG9yOiAke20uYmRUaGVtZSgiaHNsKDIxNC4zIDMxLjglIDg1JSkiLCJoc2woMjE1IDIwLjIlIDI2LjglKSIpfTsKICAgICAgfQoKICAgICAgLmJ1dHRvbi5vdXRsaW5lOmFjdGl2ZTpub3QoLmRpc2FibGVkKSB7CiAgICAgICAgYmFja2dyb3VuZDogJHttLmJkVGhlbWUoImhzbCgyMTQuMyAzMS44JSA5MS40JSkiLCJoc2woMjE1IDIwLjIlIDEzLjglKSIpfTsKICAgICAgfQoKICAgICAgLyogU2Vjb25kYXJ5IHZhcmlhbnQgKi8KICAgICAgLmJ1dHRvbi5zZWNvbmRhcnkgewogICAgICAgIGJhY2tncm91bmQ6ICR7bS5iZFRoZW1lKCJoc2woMjEwIDQwJSA5Ni4xJSkiLCJoc2woMjE1IDIwLjIlIDE2LjglKSIpfTsKICAgICAgICBjb2xvcjogJHttLmJkVGhlbWUoImhzbCgyMTUuMyAyNSUgOC44JSkiLCJoc2woMjEwIDQwJSA5OCUpIil9OwogICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIHRyYW5zcGFyZW50OwogICAgICB9CgogICAgICAuYnV0dG9uLnNlY29uZGFyeTpob3Zlcjpub3QoLmRpc2FibGVkKSB7CiAgICAgICAgYmFja2dyb3VuZDogJHttLmJkVGhlbWUoImhzbCgyMTQuMyAzMS44JSA5MS40JSkiLCJoc2woMjE1IDIwLjIlIDEzLjglKSIpfTsKICAgICAgfQoKICAgICAgLmJ1dHRvbi5zZWNvbmRhcnk6YWN0aXZlOm5vdCguZGlzYWJsZWQpIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke20uYmRUaGVtZSgiaHNsKDIxNC4zIDMxLjglIDg1JSkiLCJoc2woMjE1IDIwLjIlIDExLjglKSIpfTsKICAgICAgfQoKICAgICAgLyogR2hvc3QgdmFyaWFudCAqLwogICAgICAuYnV0dG9uLmdob3N0IHsKICAgICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDsKICAgICAgICBjb2xvcjogJHttLmJkVGhlbWUoImhzbCgyMTUuMyAyNSUgOC44JSkiLCJoc2woMjEwIDQwJSA5OCUpIil9OwogICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIHRyYW5zcGFyZW50OwogICAgICB9CgogICAgICAuYnV0dG9uLmdob3N0OmhvdmVyOm5vdCguZGlzYWJsZWQpIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke20uYmRUaGVtZSgiaHNsKDIxMCA0MCUgOTYuMSUpIiwiaHNsKDIxNSAyMC4yJSAxNi44JSkiKX07CiAgICAgIH0KCiAgICAgIC5idXR0b24uZ2hvc3Q6YWN0aXZlOm5vdCguZGlzYWJsZWQpIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke20uYmRUaGVtZSgiaHNsKDIxNC4zIDMxLjglIDkxLjQlKSIsImhzbCgyMTUgMjAuMiUgMTMuOCUpIil9OwogICAgICB9CgogICAgICAvKiBMaW5rIHZhcmlhbnQgKi8KICAgICAgLmJ1dHRvbi5saW5rIHsKICAgICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDsKICAgICAgICBjb2xvcjogJHttLmJkVGhlbWUoImhzbCgyMjIuMiA0Ny40JSA1MS4yJSkiLCJoc2woMjEzLjEgOTMuOSUgNjcuOCUpIil9OwogICAgICAgIGJvcmRlcjogbm9uZTsKICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTsKICAgICAgICB0ZXh0LWRlY29yYXRpb24tY29sb3I6IHRyYW5zcGFyZW50OwogICAgICAgIGhlaWdodDogYXV0bzsKICAgICAgICBwYWRkaW5nOiAwOwogICAgICB9CgogICAgICAuYnV0dG9uLmxpbms6aG92ZXI6bm90KC5kaXNhYmxlZCkgewogICAgICAgIHRleHQtZGVjb3JhdGlvbi1jb2xvcjogY3VycmVudENvbG9yOwogICAgICB9CgogICAgICAvKiBTdGF0dXMgc3RhdGVzICovCiAgICAgIC5idXR0b24ucGVuZGluZywKICAgICAgLmJ1dHRvbi5zdWNjZXNzLAogICAgICAuYnV0dG9uLmVycm9yIHsKICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTsKICAgICAgICBwYWRkaW5nLWxlZnQ6IDM2cHg7IC8qIFNwYWNlIGZvciBzcGlubmVyICovCiAgICAgIH0KICAgICAgCiAgICAgIC5idXR0b24uc2l6ZS1zbS5wZW5kaW5nLAogICAgICAuYnV0dG9uLnNpemUtc20uc3VjY2VzcywKICAgICAgLmJ1dHRvbi5zaXplLXNtLmVycm9yIHsKICAgICAgICBwYWRkaW5nLWxlZnQ6IDMycHg7CiAgICAgIH0KICAgICAgCiAgICAgIC5idXR0b24uc2l6ZS1sZy5wZW5kaW5nLAogICAgICAuYnV0dG9uLnNpemUtbGcuc3VjY2VzcywKICAgICAgLmJ1dHRvbi5zaXplLWxnLmVycm9yIHsKICAgICAgICBwYWRkaW5nLWxlZnQ6IDQ0cHg7CiAgICAgIH0KCiAgICAgIC5idXR0b24ucGVuZGluZyB7CiAgICAgICAgYmFja2dyb3VuZDogJHttLmJkVGhlbWUoImhzbCgyMjIuMiA0Ny40JSA1MS4yJSkiLCJoc2woMjEzLjEgOTMuOSUgNjcuOCUgLyAwLjIpIil9OwogICAgICAgIGNvbG9yOiAke20uYmRUaGVtZSgiaHNsKDAgMCUgMTAwJSkiLCJoc2woMjEzLjEgOTMuOSUgNjcuOCUpIil9OwogICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIHRyYW5zcGFyZW50OwogICAgICB9CgogICAgICAuYnV0dG9uLnN1Y2Nlc3MgewogICAgICAgIGJhY2tncm91bmQ6ICR7bS5iZFRoZW1lKCJoc2woMTQyLjEgNzYuMiUgMzYuMyUpIiwiaHNsKDE0Mi4xIDcwLjYlIDQ1LjMlIC8gMC4yKSIpfTsKICAgICAgICBjb2xvcjogJHttLmJkVGhlbWUoImhzbCgwIDAlIDEwMCUpIiwiaHNsKDE0Mi4xIDcwLjYlIDQ1LjMlKSIpfTsKICAgICAgICBib3JkZXI6IDFweCBzb2xpZCB0cmFuc3BhcmVudDsKICAgICAgfQoKICAgICAgLmJ1dHRvbi5lcnJvciB7CiAgICAgICAgYmFja2dyb3VuZDogJHttLmJkVGhlbWUoImhzbCgwIDg0LjIlIDYwLjIlKSIsImhzbCgwIDYyLjglIDcwLjYlIC8gMC4yKSIpfTsKICAgICAgICBjb2xvcjogJHttLmJkVGhlbWUoImhzbCgwIDAlIDEwMCUpIiwiaHNsKDAgNjIuOCUgNzAuNiUpIil9OwogICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIHRyYW5zcGFyZW50OwogICAgICB9CgogICAgICAvKiBEaXNhYmxlZCBzdGF0ZSAqLwogICAgICAuYnV0dG9uLmRpc2FibGVkIHsKICAgICAgICBvcGFjaXR5OiAwLjU7CiAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDsKICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTsKICAgICAgfQoKICAgICAgLyogSGlkZGVuIHN0YXRlICovCiAgICAgIC5idXR0b24uaGlkZGVuIHsKICAgICAgICBkaXNwbGF5OiBub25lOwogICAgICB9CgogICAgICAvKiBGb2N1cyBzdGF0ZSAqLwogICAgICAuYnV0dG9uOmZvY3VzLXZpc2libGUgewogICAgICAgIG91dGxpbmU6IDJweCBzb2xpZCAke20uYmRUaGVtZSgiaHNsKDIyMi4yIDQ3LjQlIDUxLjIlKSIsImhzbCgyMTMuMSA5My45JSA2Ny44JSkiKX07CiAgICAgICAgb3V0bGluZS1vZmZzZXQ6IDJweDsKICAgICAgfQoKICAgICAgLyogTG9hZGluZyBzcGlubmVyICovCiAgICAgIGRlZXMtc3Bpbm5lciB7CiAgICAgICAgcG9zaXRpb246IGFic29sdXRlOwogICAgICAgIGxlZnQ6IDEwcHg7CiAgICAgICAgd2lkdGg6IDE2cHg7CiAgICAgICAgaGVpZ2h0OiAxNnB4OwogICAgICB9CiAgICAgIAogICAgICAuYnV0dG9uLnNpemUtc20gZGVlcy1zcGlubmVyIHsKICAgICAgICBsZWZ0OiA4cHg7CiAgICAgICAgd2lkdGg6IDE0cHg7CiAgICAgICAgaGVpZ2h0OiAxNHB4OwogICAgICB9CiAgICAgIAogICAgICAuYnV0dG9uLnNpemUtbGcgZGVlcy1zcGlubmVyIHsKICAgICAgICBsZWZ0OiAxNHB4OwogICAgICAgIHdpZHRoOiAxOHB4OwogICAgICAgIGhlaWdodDogMThweDsKICAgICAgfQogICAgICAKICAgICAgLyogSWNvbiBzaXppbmcgd2l0aGluIGJ1dHRvbnMgKi8KICAgICAgLmJ1dHRvbiBkZWVzLWljb24gewogICAgICAgIHdpZHRoOiAxNnB4OwogICAgICAgIGhlaWdodDogMTZweDsKICAgICAgICBmbGV4LXNocmluazogMDsKICAgICAgfQogICAgICAKICAgICAgLmJ1dHRvbi5zaXplLXNtIGRlZXMtaWNvbiB7CiAgICAgICAgd2lkdGg6IDE0cHg7CiAgICAgICAgaGVpZ2h0OiAxNHB4OwogICAgICB9CiAgICAgIAogICAgICAuYnV0dG9uLnNpemUtbGcgZGVlcy1pY29uIHsKICAgICAgICB3aWR0aDogMThweDsKICAgICAgICBoZWlnaHQ6IDE4cHg7CiAgICAgIH0KCiAgICAgIC8qIFRleHQgYWxpZ25tZW50ICovCiAgICAgIC50ZXh0Ym94IHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgIH0KCiAgICBgXTtleHRyYWN0TGlnaHREb20oKXtsZXQgUD10aGlzLnF1ZXJ5U2VsZWN0b3IoImRlZXMtaWNvbiIpLGdlPUFycmF5LmZyb20odGhpcy5jaGlsZE5vZGVzKS5maWx0ZXIod2U9PndlLm5vZGVUeXBlPT09Tm9kZS5URVhUX05PREUpLm1hcCh3ZT0+d2UudGV4dENvbnRlbnQ/LnRyaW0oKSkuZmlsdGVyKEJvb2xlYW4pLmpvaW4oIiAiKTtpZihnZSYmIXRoaXMudGV4dCYmKHRoaXMudGV4dD1nZSksUCl7bGV0IHdlPVAuaWNvbnx8UC5nZXRBdHRyaWJ1dGUoImljb24iKXx8KFAuaWNvbkZBP2BmYToke1AuaWNvbkZBfWA6bnVsbCk7aWYod2Upe2xldCBJPUFycmF5LmZyb20odGhpcy5jaGlsZE5vZGVzKSxuZT1JLmluZGV4T2YoUCksa2U9SS5maWx0ZXIoWT0+WS5ub2RlVHlwZT09PU5vZGUuVEVYVF9OT0RFJiZZLnRleHRDb250ZW50Py50cmltKCkpO2lmKGtlLmxlbmd0aD4wKXtsZXQgWT1JLmluZGV4T2Yoa2VbMF0pO3RoaXMuaWNvblBvc2l0aW9uPW5lPFk/ImxlZnQiOiJyaWdodCJ9dGhpcy5pY29uPXdlfVAucmVtb3ZlKCl9dGhpcy5pbm5lckhUTUw9IiJ9cmVuZGVyKCl7bGV0IGdlPXtub3JtYWw6ImRlZmF1bHQiLGhpZ2hsaWdodGVkOiJkZXN0cnVjdGl2ZSIsZGlzY3JlZXQ6Im91dGxpbmUiLGJpZzoiZGVmYXVsdCJ9W3RoaXMudHlwZV18fHRoaXMudHlwZSx3ZT10aGlzLnR5cGU9PT0iYmlnIj8ibGciOnRoaXMuc2l6ZSxJPXRoaXMuaWNvblBvc2l0aW9uPT09ImxlZnQiJiZ0aGlzLmljb24/Q2A8ZGVlcy1pY29uIC5pY29uPSR7dGhpcy5pY29ufT48L2RlZXMtaWNvbj5gOiIiLG5lPXRoaXMuaWNvblBvc2l0aW9uPT09InJpZ2h0IiYmdGhpcy5pY29uP0NgPGRlZXMtaWNvbiAuaWNvbj0ke3RoaXMuaWNvbn0+PC9kZWVzLWljb24+YDoiIixrZT13ZT09PSJpY29uIiYmdGhpcy5pY29uO3JldHVybiBDYAogICAgICA8ZGl2CiAgICAgICAgY2xhc3M9ImJ1dHRvbiAke3RoaXMuaXNIaWRkZW4/ImhpZGRlbiI6IiJ9ICR7Z2V9IHNpemUtJHt3ZX0gJHt0aGlzLnN0YXR1c30gJHt0aGlzLmRpc2FibGVkPyJkaXNhYmxlZCI6IiJ9IgogICAgICAgIEBjbGljaz0iJHt0aGlzLmRpc3BhdGNoQ2xpY2t9IgogICAgICA+CiAgICAgICAgJHt0aGlzLnN0YXR1cz09PSJub3JtYWwiP0NgYDpDYAogICAgICAgICAgPGRlZXMtc3Bpbm5lcgogICAgICAgICAgICAuYm53PSR7ITB9CiAgICAgICAgICAgIHN0YXR1cz0iJHt0aGlzLnN0YXR1c30iCiAgICAgICAgICAgIHNpemU9IiR7d2U9PT0ic20iPzE0OndlPT09ImxnIj8xODoxNn0iCiAgICAgICAgICA+PC9kZWVzLXNwaW5uZXI+CiAgICAgICAgYH0KICAgICAgICAke0l9CiAgICAgICAgJHtrZT8iIjpDYDxkaXYgY2xhc3M9InRleHRib3giPiR7dGhpcy50ZXh0fHwiQnV0dG9uIn08L2Rpdj5gfQogICAgICAgICR7bmV9CiAgICAgIDwvZGl2PgogICAgYH1hc3luYyBkaXNwYXRjaENsaWNrKCl7dGhpcy5kaXNhYmxlZHx8dGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBDdXN0b21FdmVudCgiY2xpY2tlZCIse2RldGFpbDp7ZGF0YTp0aGlzLmV2ZW50RGV0YWlsRGF0YX0sYnViYmxlczohMH0pKX1hc3luYyBmaXJzdFVwZGF0ZWQoKXt0aGlzLmV4dHJhY3RMaWdodERvbSgpfXN0YXRpY3tXMShpLHIpfX07cmV0dXJuIGVlPWl9KSgpfSk7dmFyIE80LGVuLExscixaTj1wKCgpPT57bXNyKCk7d2koKTtRYSgpO3hlKCk7b3IoKTtNaSgpO0k0KCk7SmUoKTtPND1mdW5jdGlvbihlLHQscixpLGEsbil7ZnVuY3Rpb24gbyh5KXtpZih5IT09dm9pZCAwJiZ0eXBlb2YgeSE9ImZ1bmN0aW9uIil0aHJvdyBuZXcgVHlwZUVycm9yKCJGdW5jdGlvbiBleHBlY3RlZCIpO3JldHVybiB5fWZvcih2YXIgcz1pLmtpbmQsbD1zPT09ImdldHRlciI/ImdldCI6cz09PSJzZXR0ZXIiPyJzZXQiOiJ2YWx1ZSIsYz0hdCYmZT9pLnN0YXRpYz9lOmUucHJvdG90eXBlOm51bGwsdT10fHwoYz9PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGMsaS5uYW1lKTp7fSksZCxoPSExLGY9ci5sZW5ndGgtMTtmPj0wO2YtLSl7dmFyIHg9e307Zm9yKHZhciB2IGluIGkpeFt2XT12PT09ImFjY2VzcyI/e306aVt2XTtmb3IodmFyIHYgaW4gaS5hY2Nlc3MpeC5hY2Nlc3Nbdl09aS5hY2Nlc3Nbdl07eC5hZGRJbml0aWFsaXplcj1mdW5jdGlvbih5KXtpZihoKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBhZGQgaW5pdGlhbGl6ZXJzIGFmdGVyIGRlY29yYXRpb24gaGFzIGNvbXBsZXRlZCIpO24ucHVzaChvKHl8fG51bGwpKX07dmFyIGI9KDAscltmXSkocz09PSJhY2Nlc3NvciI/e2dldDp1LmdldCxzZXQ6dS5zZXR9OnVbbF0seCk7aWYocz09PSJhY2Nlc3NvciIpe2lmKGI9PT12b2lkIDApY29udGludWU7aWYoYj09PW51bGx8fHR5cGVvZiBiIT0ib2JqZWN0Iil0aHJvdyBuZXcgVHlwZUVycm9yKCJPYmplY3QgZXhwZWN0ZWQiKTsoZD1vKGIuZ2V0KSkmJih1LmdldD1kKSwoZD1vKGIuc2V0KSkmJih1LnNldD1kKSwoZD1vKGIuaW5pdCkpJiZhLnVuc2hpZnQoZCl9ZWxzZShkPW8oYikpJiYocz09PSJmaWVsZCI/YS51bnNoaWZ0KGQpOnVbbF09ZCl9YyYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGMsaS5uYW1lLHUpLGg9ITB9LGVuPWZ1bmN0aW9uKGUsdCxyKXtmb3IodmFyIGk9YXJndW1lbnRzLmxlbmd0aD4yLGE9MDthPHQubGVuZ3RoO2ErKylyPWk/dFthXS5jYWxsKGUscik6dFthXS5jYWxsKGUpO3JldHVybiBpP3I6dm9pZCAwfSxMbHI9KCgpPT57bGV0IGU9W3llKCJkZWVzLXN0YXRzZ3JpZCIpXSx0LHI9W10saSxhPXplLG4sbz1bXSxzPVtdLGwsYz1bXSx1PVtdLGQsaD1bXSxmPVtdLHgsdj1bXSxiPVtdLHksdz1bXSxrPVtdLE8sej1bXSxNPVtdLEYsRD1bXSxOPVtdO3ZhciBSPWNsYXNzIGV4dGVuZHMgYXtzdGF0aWN7aT10aGlzfXN0YXRpY3tsZXQgXz10eXBlb2YgU3ltYm9sPT0iZnVuY3Rpb24iJiZTeW1ib2wubWV0YWRhdGE/T2JqZWN0LmNyZWF0ZShhW1N5bWJvbC5tZXRhZGF0YV0/P251bGwpOnZvaWQgMDtuPVtqKHt0eXBlOkFycmF5fSldLGw9W2ooe3R5cGU6TnVtYmVyfSldLGQ9W2ooe3R5cGU6TnVtYmVyfSldLHg9W2ooe3R5cGU6QXJyYXl9KV0seT1bZmUoKV0sTz1bZmUoKV0sRj1bZmUoKV0sTzQodGhpcyxudWxsLG4se2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJ0aWxlcyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6Uz0+InRpbGVzImluIFMsZ2V0OlM9PlMudGlsZXMsc2V0OihTLCQpPT57Uy50aWxlcz0kfX0sbWV0YWRhdGE6X30sbyxzKSxPNCh0aGlzLG51bGwsbCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6Im1pblRpbGVXaWR0aCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6Uz0+Im1pblRpbGVXaWR0aCJpbiBTLGdldDpTPT5TLm1pblRpbGVXaWR0aCxzZXQ6KFMsJCk9PntTLm1pblRpbGVXaWR0aD0kfX0sbWV0YWRhdGE6X30sYyx1KSxPNCh0aGlzLG51bGwsZCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImdhcCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6Uz0+ImdhcCJpbiBTLGdldDpTPT5TLmdhcCxzZXQ6KFMsJCk9PntTLmdhcD0kfX0sbWV0YWRhdGE6X30saCxmKSxPNCh0aGlzLG51bGwseCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImdyaWRBY3Rpb25zIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpTPT4iZ3JpZEFjdGlvbnMiaW4gUyxnZXQ6Uz0+Uy5ncmlkQWN0aW9ucyxzZXQ6KFMsJCk9PntTLmdyaWRBY3Rpb25zPSR9fSxtZXRhZGF0YTpffSx2LGIpLE80KHRoaXMsbnVsbCx5LHtraW5kOiJhY2Nlc3NvciIsbmFtZToiY29udGV4dE1lbnVWaXNpYmxlIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpTPT4iY29udGV4dE1lbnVWaXNpYmxlImluIFMsZ2V0OlM9PlMuY29udGV4dE1lbnVWaXNpYmxlLHNldDooUywkKT0+e1MuY29udGV4dE1lbnVWaXNpYmxlPSR9fSxtZXRhZGF0YTpffSx3LGspLE80KHRoaXMsbnVsbCxPLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiY29udGV4dE1lbnVQb3NpdGlvbiIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6Uz0+ImNvbnRleHRNZW51UG9zaXRpb24iaW4gUyxnZXQ6Uz0+Uy5jb250ZXh0TWVudVBvc2l0aW9uLHNldDooUywkKT0+e1MuY29udGV4dE1lbnVQb3NpdGlvbj0kfX0sbWV0YWRhdGE6X30seixNKSxPNCh0aGlzLG51bGwsRix7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImNvbnRleHRNZW51QWN0aW9ucyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6Uz0+ImNvbnRleHRNZW51QWN0aW9ucyJpbiBTLGdldDpTPT5TLmNvbnRleHRNZW51QWN0aW9ucyxzZXQ6KFMsJCk9PntTLmNvbnRleHRNZW51QWN0aW9ucz0kfX0sbWV0YWRhdGE6X30sRCxOKSxPNChudWxsLHQ9e3ZhbHVlOml9LGUse2tpbmQ6ImNsYXNzIixuYW1lOmkubmFtZSxtZXRhZGF0YTpffSxudWxsLHIpLFI9aT10LnZhbHVlLF8mJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShpLFN5bWJvbC5tZXRhZGF0YSx7ZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITAsdmFsdWU6X30pfXN0YXRpYyBkZW1vPWZzcjtzdGF0aWMgZGVtb0dyb3Vwcz1bIkRhdGEgVmlldyJdOyNlPWVuKHRoaXMsbyxbXSk7Z2V0IHRpbGVzKCl7cmV0dXJuIHRoaXMuI2V9c2V0IHRpbGVzKF8pe3RoaXMuI2U9X30jdD0oZW4odGhpcyxzKSxlbih0aGlzLGMsMjUwKSk7Z2V0IG1pblRpbGVXaWR0aCgpe3JldHVybiB0aGlzLiN0fXNldCBtaW5UaWxlV2lkdGgoXyl7dGhpcy4jdD1ffSNyPShlbih0aGlzLHUpLGVuKHRoaXMsaCwxNikpO2dldCBnYXAoKXtyZXR1cm4gdGhpcy4jcn1zZXQgZ2FwKF8pe3RoaXMuI3I9X30jaT0oZW4odGhpcyxmKSxlbih0aGlzLHYsW10pKTtnZXQgZ3JpZEFjdGlvbnMoKXtyZXR1cm4gdGhpcy4jaX1zZXQgZ3JpZEFjdGlvbnMoXyl7dGhpcy4jaT1ffSNhPShlbih0aGlzLGIpLGVuKHRoaXMsdywhMSkpO2dldCBjb250ZXh0TWVudVZpc2libGUoKXtyZXR1cm4gdGhpcy4jYX1zZXQgY29udGV4dE1lbnVWaXNpYmxlKF8pe3RoaXMuI2E9X30jbj0oZW4odGhpcyxrKSxlbih0aGlzLHose3g6MCx5OjB9KSk7Z2V0IGNvbnRleHRNZW51UG9zaXRpb24oKXtyZXR1cm4gdGhpcy4jbn1zZXQgY29udGV4dE1lbnVQb3NpdGlvbihfKXt0aGlzLiNuPV99I289KGVuKHRoaXMsTSksZW4odGhpcyxELFtdKSk7Z2V0IGNvbnRleHRNZW51QWN0aW9ucygpe3JldHVybiB0aGlzLiNvfXNldCBjb250ZXh0TWVudUFjdGlvbnMoXyl7dGhpcy4jbz1ffXN0YXRpYyBzdHlsZXM9W0RlLG0uZGVmYXVsdFN0eWxlcyxvZWAKICAgICAgLyogVE9ETzogTWlncmF0ZSBoYXJkY29kZWQgdmFsdWVzIHRvIC0tZGVlcy0qIENTUyB2YXJpYWJsZXMgKi8KICAgICAgOmhvc3QgewogICAgICAgIGRpc3BsYXk6IGJsb2NrOwogICAgICAgIHdpZHRoOiAxMDAlOwogICAgICAgIGZvbnQtZmFtaWx5OiAke0lyfTsKICAgICAgfQoKICAgICAgLyogQ1NTIFZhcmlhYmxlcyBmb3IgY29uc2lzdGVudCBzcGFjaW5nIGFuZCBzaXppbmcgKi8KICAgICAgOmhvc3QgewogICAgICAgIC0tZ3JpZC1nYXA6IDEycHg7CiAgICAgICAgLS10aWxlLXBhZGRpbmc6IDE2cHg7CiAgICAgICAgLS1oZWFkZXItc3BhY2luZzogMTJweDsKICAgICAgICAtLWNvbnRlbnQtbWluLWhlaWdodDogNDBweDsKICAgICAgICAtLXZhbHVlLWZvbnQtc2l6ZTogMjZweDsKICAgICAgICAtLXVuaXQtZm9udC1zaXplOiAxNHB4OwogICAgICAgIC0tbGFiZWwtZm9udC1zaXplOiAxMnB4OwogICAgICAgIC0tdGl0bGUtZm9udC1zaXplOiAxM3B4OwogICAgICAgIC0tZGVzY3JpcHRpb24tc3BhY2luZzogOHB4OwogICAgICAgIC0tYm9yZGVyLXJhZGl1czogNnB4OwogICAgICAgIC0tdHJhbnNpdGlvbi1kdXJhdGlvbjogMC4xNXM7CiAgICAgIH0KCiAgICAgIC8qIEdyaWQgTGF5b3V0ICovCiAgICAgIC5ncmlkLWhlYWRlciB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBtYXJnaW4tYm90dG9tOiBjYWxjKHZhcigtLWdyaWQtZ2FwKSAqIDEuNSk7CiAgICAgICAgbWluLWhlaWdodDogNDBweDsKICAgICAgfQoKICAgICAgLmdyaWQtdGl0bGUgewogICAgICAgIGZvbnQtc2l6ZTogMTZweDsKICAgICAgICBmb250LXdlaWdodDogNTAwOwogICAgICAgIGNvbG9yOiAke20uYmRUaGVtZSgiIzA5MDkwYiIsIiNmYWZhZmEiKX07CiAgICAgICAgbGV0dGVyLXNwYWNpbmc6IC0wLjAxZW07CiAgICAgIH0KCiAgICAgIC5ncmlkLWFjdGlvbnMgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgZ2FwOiA2cHg7CiAgICAgIH0KCiAgICAgIC5ncmlkLWFjdGlvbnMgZGVlcy1idXR0b24gewogICAgICAgIGZvbnQtc2l6ZTogdmFyKC0tbGFiZWwtZm9udC1zaXplKTsKICAgICAgfQoKICAgICAgLnN0YXRzLWdyaWQgewogICAgICAgIGRpc3BsYXk6IGdyaWQ7CiAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoYXV0by1maXQsIG1pbm1heCgke2tyKDI1MCl9cHgsIDFmcikpOwogICAgICAgIGdhcDogJHtrcigxNil9cHg7CiAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgIH0KCiAgICAgIC8qIFRpbGUgQmFzZSBTdHlsZXMgKi8KICAgICAgLnN0YXRzLXRpbGUgewogICAgICAgIGJhY2tncm91bmQ6ICR7bS5iZFRoZW1lKCIjZmZmZmZmIiwiIzA5MDkwYiIpfTsKICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAke20uYmRUaGVtZSgiI2UwZTBlMCIsIiMyMDIwMjAiKX07CiAgICAgICAgYm9yZGVyLXJhZGl1czogdmFyKC0tYm9yZGVyLXJhZGl1cyk7CiAgICAgICAgcGFkZGluZzogdmFyKC0tdGlsZS1wYWRkaW5nKTsKICAgICAgICB0cmFuc2l0aW9uOiBhbGwgdmFyKC0tdHJhbnNpdGlvbi1kdXJhdGlvbikgZWFzZTsKICAgICAgICBjdXJzb3I6IGRlZmF1bHQ7CiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICAgIG92ZXJmbG93OiBoaWRkZW47CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICB9CgogICAgICAuc3RhdHMtdGlsZTpob3ZlciB7CiAgICAgICAgYmFja2dyb3VuZDogJHttLmJkVGhlbWUoIiNmYWZhZmEiLCIjMGQwZDBkIil9OwogICAgICAgIGJvcmRlci1jb2xvcjogJHttLmJkVGhlbWUoIiNkMGQwZDAiLCIjMmEyYTJhIil9OwogICAgICB9CgogICAgICAuc3RhdHMtdGlsZS5jbGlja2FibGUgewogICAgICAgIGN1cnNvcjogcG9pbnRlcjsKICAgICAgfQoKICAgICAgLnN0YXRzLXRpbGUuY2xpY2thYmxlOmhvdmVyIHsKICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTFweCk7CiAgICAgICAgYm94LXNoYWRvdzogMCAycHggNnB4ICR7bS5iZFRoZW1lKCJyZ2JhKDAsMCwwLDAuMDMpIiwicmdiYSgwLDAsMCwwLjE1KSIpfTsKICAgICAgfQoKICAgICAgLyogVGlsZSBIZWFkZXIgKi8KICAgICAgLnRpbGUtaGVhZGVyIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjsKICAgICAgICBhbGlnbi1pdGVtczogZmxleC1zdGFydDsKICAgICAgICBtYXJnaW4tYm90dG9tOiB2YXIoLS1oZWFkZXItc3BhY2luZyk7CiAgICAgICAgZmxleC1zaHJpbms6IDA7CiAgICAgIH0KCiAgICAgIC50aWxlLXRpdGxlIHsKICAgICAgICBmb250LXNpemU6IHZhcigtLXRpdGxlLWZvbnQtc2l6ZSk7CiAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDsKICAgICAgICBjb2xvcjogJHttLmJkVGhlbWUoImhzbCgyMTUuNCAxNi4zJSA0Ni45JSkiLCJoc2woMjE1IDIwLjIlIDY1LjElKSIpfTsKICAgICAgICBtYXJnaW46IDA7CiAgICAgICAgbGV0dGVyLXNwYWNpbmc6IC0wLjAxZW07CiAgICAgICAgbGluZS1oZWlnaHQ6IDEuMjsKICAgICAgfQoKICAgICAgLnRpbGUtaWNvbiB7CiAgICAgICAgb3BhY2l0eTogMC43OwogICAgICAgIGNvbG9yOiAke20uYmRUaGVtZSgiaHNsKDIxNS40IDE2LjMlIDQ2LjklKSIsImhzbCgyMTUgMjAuMiUgNjUuMSUpIil9OwogICAgICAgIGZvbnQtc2l6ZTogMTZweDsKICAgICAgICBmbGV4LXNocmluazogMDsKICAgICAgfQoKICAgICAgLyogVGlsZSBDb250ZW50ICovCiAgICAgIC50aWxlLWNvbnRlbnQgewogICAgICAgIG1pbi1oZWlnaHQ6IHZhcigtLWNvbnRlbnQtbWluLWhlaWdodCk7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICAgIGZsZXg6IDE7CiAgICAgIH0KCiAgICAgIC50aWxlLXZhbHVlIHsKICAgICAgICBmb250LXNpemU6IHZhcigtLXZhbHVlLWZvbnQtc2l6ZSk7CiAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDsKICAgICAgICBjb2xvcjogJHttLmJkVGhlbWUoImhzbCgyMTUuMyAyNSUgOC44JSkiLCJoc2woMjEwIDQwJSA5OCUpIil9OwogICAgICAgIGxpbmUtaGVpZ2h0OiAxLjE7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogYmFzZWxpbmU7CiAgICAgICAgZ2FwOiA0cHg7CiAgICAgICAgbGV0dGVyLXNwYWNpbmc6IC0wLjAyNWVtOwogICAgICB9CgogICAgICAudGlsZS11bml0IHsKICAgICAgICBmb250LXNpemU6IHZhcigtLXVuaXQtZm9udC1zaXplKTsKICAgICAgICBmb250LXdlaWdodDogNDAwOwogICAgICAgIGNvbG9yOiAke20uYmRUaGVtZSgiaHNsKDIxNS40IDE2LjMlIDQ2LjklKSIsImhzbCgyMTUgMjAuMiUgNjUuMSUpIil9OwogICAgICAgIGxldHRlci1zcGFjaW5nOiAtMC4wMWVtOwogICAgICB9CgogICAgICAudGlsZS1kZXNjcmlwdGlvbiB7CiAgICAgICAgZm9udC1zaXplOiB2YXIoLS1sYWJlbC1mb250LXNpemUpOwogICAgICAgIGNvbG9yOiAke20uYmRUaGVtZSgiaHNsKDIxNS40IDE2LjMlIDU2LjklKSIsImhzbCgyMTUgMjAuMiUgNTUuMSUpIil9OwogICAgICAgIG1hcmdpbi10b3A6IHZhcigtLWRlc2NyaXB0aW9uLXNwYWNpbmcpOwogICAgICAgIGxldHRlci1zcGFjaW5nOiAtMC4wMWVtOwogICAgICAgIGZsZXgtc2hyaW5rOiAwOwogICAgICB9CgogICAgICAvKiBHYXVnZSBTdHlsZXMgKi8KICAgICAgLmdhdWdlLXdyYXBwZXIgewogICAgICAgIHdpZHRoOiAxMDAlOwogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgfQoKICAgICAgLmdhdWdlLWNvbnRhaW5lciB7CiAgICAgICAgd2lkdGg6IDEyMHB4OwogICAgICAgIGhlaWdodDogNzBweDsKICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgICAgbWFyZ2luLXRvcDogLThweDsKICAgICAgfQoKICAgICAgLmdhdWdlLXN2ZyB7CiAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgICAgaGVpZ2h0OiAxMDAlOwogICAgICB9CgogICAgICAuZ2F1Z2UtYmFja2dyb3VuZCB7CiAgICAgICAgZmlsbDogbm9uZTsKICAgICAgICBzdHJva2U6ICR7bS5iZFRoZW1lKCIjZThlOGU4IiwiIzFhMWExYSIpfTsKICAgICAgICBzdHJva2Utd2lkdGg6IDY7CiAgICAgIH0KCiAgICAgIC5nYXVnZS1maWxsIHsKICAgICAgICBmaWxsOiBub25lOwogICAgICAgIHN0cm9rZS13aWR0aDogNjsKICAgICAgICBzdHJva2UtbGluZWNhcDogcm91bmQ7CiAgICAgICAgdHJhbnNpdGlvbjogc3Ryb2tlLWRhc2hvZmZzZXQgMC42cyBjdWJpYy1iZXppZXIoMC40LCAwLCAwLjIsIDEpOwogICAgICB9CgogICAgICAuZ2F1Z2UtdGV4dCB7CiAgICAgICAgZmlsbDogJHttLmJkVGhlbWUoImhzbCgyMTUuMyAyNSUgOC44JSkiLCJoc2woMjEwIDQwJSA5OCUpIil9OwogICAgICAgIGZvbnQtZmFtaWx5OiAke0lyfTsKICAgICAgICBmb250LXNpemU6IHZhcigtLXZhbHVlLWZvbnQtc2l6ZSk7CiAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDsKICAgICAgICB0ZXh0LWFuY2hvcjogbWlkZGxlOwogICAgICAgIGxldHRlci1zcGFjaW5nOiAtMC4wMjVlbTsKICAgICAgfQogICAgICAKICAgICAgLmdhdWdlLXVuaXQgewogICAgICAgIGZvbnQtc2l6ZTogdmFyKC0tdW5pdC1mb250LXNpemUpOwogICAgICAgIGZpbGw6ICR7bS5iZFRoZW1lKCJoc2woMjE1LjQgMTYuMyUgNDYuOSUpIiwiaHNsKDIxNSAyMC4yJSA2NS4xJSkiKX07CiAgICAgICAgZm9udC13ZWlnaHQ6IDQwMDsKICAgICAgICBmb250LWZhbWlseTogJHtJcn07CiAgICAgIH0KCiAgICAgIC8qIFBlcmNlbnRhZ2UgU3R5bGVzICovCiAgICAgIC5wZXJjZW50YWdlLXdyYXBwZXIgewogICAgICAgIHdpZHRoOiAxMDAlOwogICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgICAgZmxleDogMTsKICAgICAgfQoKICAgICAgLnBlcmNlbnRhZ2UtdmFsdWUgewogICAgICAgIGZvbnQtc2l6ZTogdmFyKC0tdmFsdWUtZm9udC1zaXplKTsKICAgICAgICBmb250LXdlaWdodDogNjAwOwogICAgICAgIGNvbG9yOiAke20uYmRUaGVtZSgiaHNsKDIxNS4zIDI1JSA4LjglKSIsImhzbCgyMTAgNDAlIDk4JSkiKX07CiAgICAgICAgbGluZS1oZWlnaHQ6IDEuMTsKICAgICAgICBsZXR0ZXItc3BhY2luZzogLTAuMDI1ZW07CiAgICAgICAgbWFyZ2luLWJvdHRvbTogOHB4OwogICAgICB9CgogICAgICAucGVyY2VudGFnZS1iYXIgewogICAgICAgIHdpZHRoOiAxMDAlOwogICAgICAgIGhlaWdodDogNnB4OwogICAgICAgIGJhY2tncm91bmQ6ICR7bS5iZFRoZW1lKCIjZThlOGU4IiwiIzFhMWExYSIpfTsKICAgICAgICBib3JkZXItcmFkaXVzOiAzcHg7CiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgICAgICBtYXJnaW4tdG9wOiBhdXRvOwogICAgICB9CgogICAgICAucGVyY2VudGFnZS1maWxsIHsKICAgICAgICBoZWlnaHQ6IDEwMCU7CiAgICAgICAgYmFja2dyb3VuZDogJHttLmJkVGhlbWUoIiMzMzMzMzMiLCIjZTBlMGUwIil9OwogICAgICAgIHRyYW5zaXRpb246IHdpZHRoIDAuNnMgY3ViaWMtYmV6aWVyKDAuNCwgMCwgMC4yLCAxKTsKICAgICAgICBib3JkZXItcmFkaXVzOiAzcHg7CiAgICAgIH0KCiAgICAgIC8qIE11bHRpIFBlcmNlbnRhZ2UgU3R5bGVzICovCiAgICAgIC5tdWx0aS1wZXJjZW50YWdlLXdyYXBwZXIgewogICAgICAgIHdpZHRoOiAxMDAlOwogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgICBmbGV4OiAxOwogICAgICB9CgogICAgICAubXVsdGktcGVyY2VudGFnZS1pdGVtcyB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICAgIGdhcDogMTJweDsKICAgICAgICBtYXJnaW4tdG9wOiBhdXRvOwogICAgICB9CgogICAgICAubXVsdGktcGVyY2VudGFnZS1pdGVtIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgICAgZ2FwOiA0cHg7CiAgICAgIH0KCiAgICAgIC5tdWx0aS1wZXJjZW50YWdlLWhlYWRlciB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47CiAgICAgICAgYWxpZ24taXRlbXM6IGJhc2VsaW5lOwogICAgICB9CgogICAgICAubXVsdGktcGVyY2VudGFnZS1sYWJlbCB7CiAgICAgICAgZm9udC1zaXplOiAxMXB4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7CiAgICAgICAgY29sb3I6ICR7bS5iZFRoZW1lKCJoc2woMjE1LjQgMTYuMyUgNDYuOSUpIiwiaHNsKDIxNSAyMC4yJSA2NS4xJSkiKX07CiAgICAgICAgbGV0dGVyLXNwYWNpbmc6IC0wLjAxZW07CiAgICAgIH0KCiAgICAgIC5tdWx0aS1wZXJjZW50YWdlLXZhbHVlIHsKICAgICAgICBmb250LXNpemU6IDEzcHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDsKICAgICAgICBjb2xvcjogJHttLmJkVGhlbWUoImhzbCgyMTUuMyAyNSUgOC44JSkiLCJoc2woMjEwIDQwJSA5OCUpIil9OwogICAgICAgIGxldHRlci1zcGFjaW5nOiAtMC4wMWVtOwogICAgICB9CgogICAgICAubXVsdGktcGVyY2VudGFnZS1iYXIgewogICAgICAgIHdpZHRoOiAxMDAlOwogICAgICAgIGhlaWdodDogNHB4OwogICAgICAgIGJhY2tncm91bmQ6ICR7bS5iZFRoZW1lKCIjZThlOGU4IiwiIzFhMWExYSIpfTsKICAgICAgICBib3JkZXItcmFkaXVzOiAycHg7CiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgICAgfQoKICAgICAgLm11bHRpLXBlcmNlbnRhZ2UtZmlsbCB7CiAgICAgICAgaGVpZ2h0OiAxMDAlOwogICAgICAgIGJhY2tncm91bmQ6ICR7bS5iZFRoZW1lKCIjMzMzMzMzIiwiI2UwZTBlMCIpfTsKICAgICAgICB0cmFuc2l0aW9uOiB3aWR0aCAwLjZzIGN1YmljLWJlemllcigwLjQsIDAsIDAuMiwgMSk7CiAgICAgICAgYm9yZGVyLXJhZGl1czogMnB4OwogICAgICB9CgogICAgICAvKiBDUFUgQ29yZXMgU3R5bGVzICovCiAgICAgIC5jcHUtY29yZXMtd3JhcHBlciB7CiAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICAgIGZsZXg6IDE7CiAgICAgICAgbWluLWhlaWdodDogODBweDsKICAgICAgfQoKICAgICAgLmNwdS1jb3Jlcy1oZWFkZXIgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGJhc2VsaW5lOwogICAgICAgIGdhcDogOHB4OwogICAgICAgIG1hcmdpbi1ib3R0b206IDEycHg7CiAgICAgIH0KCiAgICAgIC5jcHUtY29yZXMtdmFsdWUgewogICAgICAgIGZvbnQtc2l6ZTogdmFyKC0tdmFsdWUtZm9udC1zaXplKTsKICAgICAgICBmb250LXdlaWdodDogNjAwOwogICAgICAgIGNvbG9yOiAke20uYmRUaGVtZSgiaHNsKDIxNS4zIDI1JSA4LjglKSIsImhzbCgyMTAgNDAlIDk4JSkiKX07CiAgICAgICAgbGluZS1oZWlnaHQ6IDEuMTsKICAgICAgICBsZXR0ZXItc3BhY2luZzogLTAuMDI1ZW07CiAgICAgIH0KCiAgICAgIC5jcHUtY29yZXMtdW5pdCB7CiAgICAgICAgZm9udC1zaXplOiB2YXIoLS11bml0LWZvbnQtc2l6ZSk7CiAgICAgICAgZm9udC13ZWlnaHQ6IDQwMDsKICAgICAgICBjb2xvcjogJHttLmJkVGhlbWUoImhzbCgyMTUuNCAxNi4zJSA0Ni45JSkiLCJoc2woMjE1IDIwLjIlIDY1LjElKSIpfTsKICAgICAgICBsZXR0ZXItc3BhY2luZzogLTAuMDFlbTsKICAgICAgfQoKICAgICAgLmNwdS1jb3Jlcy1sYWJlbCB7CiAgICAgICAgZm9udC1zaXplOiB2YXIoLS1sYWJlbC1mb250LXNpemUpOwogICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7CiAgICAgICAgY29sb3I6ICR7bS5iZFRoZW1lKCJoc2woMjE1LjQgMTYuMyUgNTYuOSUpIiwiaHNsKDIxNSAyMC4yJSA1NS4xJSkiKX07CiAgICAgICAgbGV0dGVyLXNwYWNpbmc6IC0wLjAxZW07CiAgICAgICAgbWFyZ2luLWxlZnQ6IGF1dG87CiAgICAgIH0KCiAgICAgIC5jcHUtY29yZXMtYmFycyB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogZmxleC1lbmQ7CiAgICAgICAgZ2FwOiAzcHg7CiAgICAgICAgZmxleDogMTsKICAgICAgICBtaW4taGVpZ2h0OiA2MHB4OwogICAgICAgIHBhZGRpbmc6IDRweCAwOwogICAgICB9CgogICAgICAuY3B1LWNvcmVzLWJhcnMuY2VudGVyZWQgewogICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOwogICAgICB9CgogICAgICAuY3B1LWNvcmUtYmFyLWNvbnRhaW5lciB7CiAgICAgICAgZmxleDogMTsKICAgICAgICBtaW4td2lkdGg6IDZweDsKICAgICAgICBtYXgtd2lkdGg6IDI0cHg7CiAgICAgICAgaGVpZ2h0OiAxMDAlOwogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGdhcDogNHB4OwogICAgICB9CgogICAgICAuY3B1LWNvcmUtYmFyLXdyYXBwZXIgewogICAgICAgIGZsZXg6IDE7CiAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgICAgYmFja2dyb3VuZDogJHttLmJkVGhlbWUoIiNlOGU4ZTgiLCIjMWExYTFhIil9OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDJweDsKICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgICAgICBtaW4taGVpZ2h0OiA0MHB4OwogICAgICB9CgogICAgICAuY3B1LWNvcmUtYmFyLWZpbGwgewogICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgICBib3R0b206IDA7CiAgICAgICAgbGVmdDogMDsKICAgICAgICByaWdodDogMDsKICAgICAgICB3aWR0aDogMTAwJTsKICAgICAgICBiYWNrZ3JvdW5kOiAke20uYmRUaGVtZSgiIzY2NjY2NiIsIiM4ODg4ODgiKX07CiAgICAgICAgdHJhbnNpdGlvbjogaGVpZ2h0IDAuM3MgY3ViaWMtYmV6aWVyKDAuNCwgMCwgMC4yLCAxKSwgYmFja2dyb3VuZC1jb2xvciAwLjNzIGVhc2U7CiAgICAgICAgYm9yZGVyLXJhZGl1czogMnB4IDJweCAwIDA7CiAgICAgIH0KCiAgICAgIC5jcHUtY29yZS1iYXItZmlsbC5sb3cgewogICAgICAgIGJhY2tncm91bmQ6ICR7bS5iZFRoZW1lKCJoc2woMTQyLjEgNzYuMiUgMzYuMyUpIiwiaHNsKDE0Mi4xIDcwLjYlIDQ1LjMlKSIpfTsKICAgICAgfQoKICAgICAgLmNwdS1jb3JlLWJhci1maWxsLm1lZGl1bSB7CiAgICAgICAgYmFja2dyb3VuZDogJHttLmJkVGhlbWUoImhzbCg0NS40IDkzLjQlIDQ3LjUlKSIsImhzbCg0NS40IDkzLjQlIDQ3LjUlKSIpfTsKICAgICAgfQoKICAgICAgLmNwdS1jb3JlLWJhci1maWxsLmhpZ2ggewogICAgICAgIGJhY2tncm91bmQ6ICR7bS5iZFRoZW1lKCJoc2woMCA4NC4yJSA2MC4yJSkiLCJoc2woMCA4NC4yJSA2MC4yJSkiKX07CiAgICAgIH0KCiAgICAgIC5jcHUtY29yZS1sYWJlbCB7CiAgICAgICAgZm9udC1zaXplOiA5cHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDsKICAgICAgICBjb2xvcjogJHttLmJkVGhlbWUoImhzbCgyMTUuNCAxNi4zJSA1Ni45JSkiLCJoc2woMjE1IDIwLjIlIDU1LjElKSIpfTsKICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7CiAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDsKICAgICAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzOwogICAgICAgIG1heC13aWR0aDogMTAwJTsKICAgICAgfQoKICAgICAgLyogUGFydGl0aW9uIFN0eWxlcyAqLwogICAgICAucGFydGl0aW9uLXdyYXBwZXIgewogICAgICAgIHdpZHRoOiAxMDAlOwogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgICBmbGV4OiAxOwogICAgICAgIGdhcDogOHB4OwogICAgICB9CgogICAgICAucGFydGl0aW9uLWhlYWRlciB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogYmFzZWxpbmU7CiAgICAgICAgZ2FwOiA4cHg7CiAgICAgIH0KCiAgICAgIC5wYXJ0aXRpb24tcGVyY2VudGFnZSB7CiAgICAgICAgZm9udC1zaXplOiB2YXIoLS12YWx1ZS1mb250LXNpemUpOwogICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7CiAgICAgICAgY29sb3I6ICR7bS5iZFRoZW1lKCJoc2woMjE1LjMgMjUlIDguOCUpIiwiaHNsKDIxMCA0MCUgOTglKSIpfTsKICAgICAgICBsaW5lLWhlaWdodDogMS4xOwogICAgICAgIGxldHRlci1zcGFjaW5nOiAtMC4wMjVlbTsKICAgICAgfQoKICAgICAgLnBhcnRpdGlvbi1iYXIgewogICAgICAgIHdpZHRoOiAxMDAlOwogICAgICAgIGhlaWdodDogNnB4OwogICAgICAgIGJhY2tncm91bmQ6ICR7bS5iZFRoZW1lKCIjZThlOGU4IiwiIzFhMWExYSIpfTsKICAgICAgICBib3JkZXItcmFkaXVzOiAzcHg7CiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgICAgfQoKICAgICAgLnBhcnRpdGlvbi1iYXItZmlsbCB7CiAgICAgICAgaGVpZ2h0OiAxMDAlOwogICAgICAgIGJhY2tncm91bmQ6ICR7bS5iZFRoZW1lKCIjMzMzMzMzIiwiI2UwZTBlMCIpfTsKICAgICAgICB0cmFuc2l0aW9uOiB3aWR0aCAwLjZzIGN1YmljLWJlemllcigwLjQsIDAsIDAuMiwgMSk7CiAgICAgICAgYm9yZGVyLXJhZGl1czogM3B4OwogICAgICB9CgogICAgICAucGFydGl0aW9uLWJhci1maWxsLndhcm5pbmcgewogICAgICAgIGJhY2tncm91bmQ6ICR7bS5iZFRoZW1lKCJoc2woNDUuNCA5My40JSA0Ny41JSkiLCJoc2woNDUuNCA5My40JSA0Ny41JSkiKX07CiAgICAgIH0KCiAgICAgIC5wYXJ0aXRpb24tYmFyLWZpbGwuY3JpdGljYWwgewogICAgICAgIGJhY2tncm91bmQ6ICR7bS5iZFRoZW1lKCJoc2woMCA4NC4yJSA2MC4yJSkiLCJoc2woMCA4NC4yJSA2MC4yJSkiKX07CiAgICAgIH0KCiAgICAgIC5wYXJ0aXRpb24tc3RhdHMgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuOwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgbWFyZ2luLXRvcDogYXV0bzsKICAgICAgfQoKICAgICAgLnBhcnRpdGlvbi1zdGF0IHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgICAgZ2FwOiAycHg7CiAgICAgIH0KCiAgICAgIC5wYXJ0aXRpb24tc3RhdC1sYWJlbCB7CiAgICAgICAgZm9udC1zaXplOiAxMHB4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7CiAgICAgICAgY29sb3I6ICR7bS5iZFRoZW1lKCJoc2woMjE1LjQgMTYuMyUgNTYuOSUpIiwiaHNsKDIxNSAyMC4yJSA1NS4xJSkiKX07CiAgICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTsKICAgICAgICBsZXR0ZXItc3BhY2luZzogMC4wMmVtOwogICAgICB9CgogICAgICAucGFydGl0aW9uLXN0YXQtdmFsdWUgewogICAgICAgIGZvbnQtc2l6ZTogMTNweDsKICAgICAgICBmb250LXdlaWdodDogNjAwOwogICAgICAgIGNvbG9yOiAke20uYmRUaGVtZSgiaHNsKDIxNS4zIDI1JSA4LjglKSIsImhzbCgyMTAgNDAlIDk4JSkiKX07CiAgICAgICAgbGV0dGVyLXNwYWNpbmc6IC0wLjAxZW07CiAgICAgIH0KCiAgICAgIC5wYXJ0aXRpb24tbWV0YSB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGdhcDogNnB4OwogICAgICAgIG1hcmdpbi10b3A6IDRweDsKICAgICAgfQoKICAgICAgLnBhcnRpdGlvbi1maWxlc3lzdGVtIHsKICAgICAgICBmb250LXNpemU6IDExcHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDsKICAgICAgICBjb2xvcjogJHttLmJkVGhlbWUoImhzbCgyMTUuNCAxNi4zJSA0Ni45JSkiLCJoc2woMjE1IDIwLjIlIDY1LjElKSIpfTsKICAgICAgICBiYWNrZ3JvdW5kOiAke20uYmRUaGVtZSgiaHNsKDIxMCA0MCUgOTYuMSUpIiwiaHNsKDIxNSAyMC4yJSAxNi44JSkiKX07CiAgICAgICAgcGFkZGluZzogMnB4IDZweDsKICAgICAgICBib3JkZXItcmFkaXVzOiAzcHg7CiAgICAgIH0KCiAgICAgIC5wYXJ0aXRpb24tbW91bnRwb2ludCB7CiAgICAgICAgZm9udC1zaXplOiAxMXB4OwogICAgICAgIGNvbG9yOiAke20uYmRUaGVtZSgiaHNsKDIxNS40IDE2LjMlIDU2LjklKSIsImhzbCgyMTUgMjAuMiUgNTUuMSUpIil9OwogICAgICB9CgogICAgICAvKiBEaXNrIFN0eWxlcyAqLwogICAgICAuZGlzay13cmFwcGVyIHsKICAgICAgICB3aWR0aDogMTAwJTsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgICAgZmxleDogMTsKICAgICAgICBnYXA6IDhweDsKICAgICAgfQoKICAgICAgLmRpc2stY2FwYWNpdHkgewogICAgICAgIGZvbnQtc2l6ZTogdmFyKC0tdmFsdWUtZm9udC1zaXplKTsKICAgICAgICBmb250LXdlaWdodDogNjAwOwogICAgICAgIGNvbG9yOiAke20uYmRUaGVtZSgiaHNsKDIxNS4zIDI1JSA4LjglKSIsImhzbCgyMTAgNDAlIDk4JSkiKX07CiAgICAgICAgbGluZS1oZWlnaHQ6IDEuMTsKICAgICAgICBsZXR0ZXItc3BhY2luZzogLTAuMDI1ZW07CiAgICAgIH0KCiAgICAgIC5kaXNrLW1vZGVsIHsKICAgICAgICBmb250LXNpemU6IDEycHg7CiAgICAgICAgY29sb3I6ICR7bS5iZFRoZW1lKCJoc2woMjE1LjQgMTYuMyUgNDYuOSUpIiwiaHNsKDIxNSAyMC4yJSA2NS4xJSkiKX07CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGdhcDogNnB4OwogICAgICB9CgogICAgICAuZGlzay10eXBlLWJhZGdlIHsKICAgICAgICBmb250LXNpemU6IDEwcHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDsKICAgICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlOwogICAgICAgIGNvbG9yOiAke20uYmRUaGVtZSgiaHNsKDIxNS40IDE2LjMlIDQ2LjklKSIsImhzbCgyMTUgMjAuMiUgNjUuMSUpIil9OwogICAgICAgIGJhY2tncm91bmQ6ICR7bS5iZFRoZW1lKCJoc2woMjEwIDQwJSA5Ni4xJSkiLCJoc2woMjE1IDIwLjIlIDE2LjglKSIpfTsKICAgICAgICBwYWRkaW5nOiAycHggNnB4OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDNweDsKICAgICAgfQoKICAgICAgLmRpc2stbWV0cmljcyB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICAgIGdhcDogOHB4OwogICAgICAgIG1hcmdpbi10b3A6IGF1dG87CiAgICAgIH0KCiAgICAgIC5kaXNrLWlvcHMgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBnYXA6IDEycHg7CiAgICAgIH0KCiAgICAgIC5kaXNrLWlvcHMtaXRlbSB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogYmFzZWxpbmU7CiAgICAgICAgZ2FwOiA0cHg7CiAgICAgIH0KCiAgICAgIC5kaXNrLWlvcHMtbGFiZWwgewogICAgICAgIGZvbnQtc2l6ZTogMTBweDsKICAgICAgICBmb250LXdlaWdodDogNTAwOwogICAgICAgIGNvbG9yOiAke20uYmRUaGVtZSgiaHNsKDIxNS40IDE2LjMlIDU2LjklKSIsImhzbCgyMTUgMjAuMiUgNTUuMSUpIil9OwogICAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7CiAgICAgIH0KCiAgICAgIC5kaXNrLWlvcHMtdmFsdWUgewogICAgICAgIGZvbnQtc2l6ZTogMTNweDsKICAgICAgICBmb250LXdlaWdodDogNjAwOwogICAgICAgIGNvbG9yOiAke20uYmRUaGVtZSgiaHNsKDIxNS4zIDI1JSA4LjglKSIsImhzbCgyMTAgNDAlIDk4JSkiKX07CiAgICAgIH0KCiAgICAgIC5kaXNrLWhlYWx0aCB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICAgIGdhcDogNHB4OwogICAgICB9CgogICAgICAuZGlzay1oZWFsdGgtaGVhZGVyIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjsKICAgICAgICBhbGlnbi1pdGVtczogYmFzZWxpbmU7CiAgICAgIH0KCiAgICAgIC5kaXNrLWhlYWx0aC1sYWJlbCB7CiAgICAgICAgZm9udC1zaXplOiAxMHB4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7CiAgICAgICAgY29sb3I6ICR7bS5iZFRoZW1lKCJoc2woMjE1LjQgMTYuMyUgNTYuOSUpIiwiaHNsKDIxNSAyMC4yJSA1NS4xJSkiKX07CiAgICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTsKICAgICAgfQoKICAgICAgLmRpc2staGVhbHRoLXZhbHVlIHsKICAgICAgICBmb250LXNpemU6IDEycHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDsKICAgICAgICBjb2xvcjogJHttLmJkVGhlbWUoImhzbCgyMTUuMyAyNSUgOC44JSkiLCJoc2woMjEwIDQwJSA5OCUpIil9OwogICAgICB9CgogICAgICAuZGlzay1oZWFsdGgtYmFyIHsKICAgICAgICB3aWR0aDogMTAwJTsKICAgICAgICBoZWlnaHQ6IDRweDsKICAgICAgICBiYWNrZ3JvdW5kOiAke20uYmRUaGVtZSgiI2U4ZThlOCIsIiMxYTFhMWEiKX07CiAgICAgICAgYm9yZGVyLXJhZGl1czogMnB4OwogICAgICAgIG92ZXJmbG93OiBoaWRkZW47CiAgICAgIH0KCiAgICAgIC5kaXNrLWhlYWx0aC1maWxsIHsKICAgICAgICBoZWlnaHQ6IDEwMCU7CiAgICAgICAgdHJhbnNpdGlvbjogd2lkdGggMC42cyBjdWJpYy1iZXppZXIoMC40LCAwLCAwLjIsIDEpOwogICAgICAgIGJvcmRlci1yYWRpdXM6IDJweDsKICAgICAgfQoKICAgICAgLmRpc2staGVhbHRoLWZpbGwuZ29vZCB7CiAgICAgICAgYmFja2dyb3VuZDogJHttLmJkVGhlbWUoImhzbCgxNDIuMSA3Ni4yJSAzNi4zJSkiLCJoc2woMTQyLjEgNzAuNiUgNDUuMyUpIil9OwogICAgICB9CgogICAgICAuZGlzay1oZWFsdGgtZmlsbC53YXJuaW5nIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke20uYmRUaGVtZSgiaHNsKDQ1LjQgOTMuNCUgNDcuNSUpIiwiaHNsKDQ1LjQgOTMuNCUgNDcuNSUpIil9OwogICAgICB9CgogICAgICAuZGlzay1oZWFsdGgtZmlsbC5jcml0aWNhbCB7CiAgICAgICAgYmFja2dyb3VuZDogJHttLmJkVGhlbWUoImhzbCgwIDg0LjIlIDYwLjIlKSIsImhzbCgwIDg0LjIlIDYwLjIlKSIpfTsKICAgICAgfQoKICAgICAgLyogVHJlbmQgU3R5bGVzICovCiAgICAgIC50cmVuZC1jb250YWluZXIgewogICAgICAgIHdpZHRoOiAxMDAlOwogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgICBnYXA6IDhweDsKICAgICAgICBmbGV4OiAxOwogICAgICB9CgogICAgICAudHJlbmQtaGVhZGVyIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBiYXNlbGluZTsKICAgICAgICBnYXA6IDhweDsKICAgICAgfQoKICAgICAgLnRyZW5kLXZhbHVlIHsKICAgICAgICBmb250LXNpemU6IHZhcigtLXZhbHVlLWZvbnQtc2l6ZSk7CiAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDsKICAgICAgICBjb2xvcjogJHttLmJkVGhlbWUoImhzbCgyMTUuMyAyNSUgOC44JSkiLCJoc2woMjEwIDQwJSA5OCUpIil9OwogICAgICAgIGxpbmUtaGVpZ2h0OiAxLjE7CiAgICAgICAgbGV0dGVyLXNwYWNpbmc6IC0wLjAyNWVtOwogICAgICB9CgogICAgICAudHJlbmQtdW5pdCB7CiAgICAgICAgZm9udC1zaXplOiB2YXIoLS11bml0LWZvbnQtc2l6ZSk7CiAgICAgICAgZm9udC13ZWlnaHQ6IDQwMDsKICAgICAgICBjb2xvcjogJHttLmJkVGhlbWUoImhzbCgyMTUuNCAxNi4zJSA0Ni45JSkiLCJoc2woMjE1IDIwLjIlIDY1LjElKSIpfTsKICAgICAgICBsZXR0ZXItc3BhY2luZzogLTAuMDFlbTsKICAgICAgfQoKICAgICAgLnRyZW5kLWxhYmVsIHsKICAgICAgICBmb250LXNpemU6IHZhcigtLWxhYmVsLWZvbnQtc2l6ZSk7CiAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDsKICAgICAgICBjb2xvcjogJHttLmJkVGhlbWUoImhzbCgyMTUuNCAxNi4zJSA1Ni45JSkiLCJoc2woMjE1IDIwLjIlIDU1LjElKSIpfTsKICAgICAgICBsZXR0ZXItc3BhY2luZzogLTAuMDFlbTsKICAgICAgICBtYXJnaW4tbGVmdDogYXV0bzsKICAgICAgfQoKICAgICAgLnRyZW5kLWdyYXBoIHsKICAgICAgICB3aWR0aDogMTAwJTsKICAgICAgICBoZWlnaHQ6IDI4cHg7CiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICAgIG1hcmdpbi10b3A6IGF1dG87CiAgICAgIH0KCiAgICAgIC50cmVuZC1zdmcgewogICAgICAgIHdpZHRoOiAxMDAlOwogICAgICAgIGhlaWdodDogMTAwJTsKICAgICAgICBkaXNwbGF5OiBibG9jazsKICAgICAgfQoKICAgICAgLnRyZW5kLWxpbmUgewogICAgICAgIGZpbGw6IG5vbmU7CiAgICAgICAgc3Ryb2tlOiAke20uYmRUaGVtZSgiIzk5OTk5OSIsIiM2NjY2NjYiKX07CiAgICAgICAgc3Ryb2tlLXdpZHRoOiAxLjU7CiAgICAgICAgc3Ryb2tlLWxpbmVqb2luOiByb3VuZDsKICAgICAgICBzdHJva2UtbGluZWNhcDogcm91bmQ7CiAgICAgIH0KCiAgICAgIC50cmVuZC1hcmVhIHsKICAgICAgICBmaWxsOiAke20uYmRUaGVtZSgicmdiYSgxNTAsIDE1MCwgMTUwLCAwLjA4KSIsInJnYmEoMTAwLCAxMDAsIDEwMCwgMC4wOCkiKX07CiAgICAgIH0KCiAgICAgIC8qIFRleHQgVmFsdWUgU3R5bGVzICovCiAgICAgIC50ZXh0LXZhbHVlIHsKICAgICAgICBmb250LXNpemU6IHZhcigtLXZhbHVlLWZvbnQtc2l6ZSk7CiAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDsKICAgICAgICBjb2xvcjogJHttLmJkVGhlbWUoImhzbCgyMTUuMyAyNSUgOC44JSkiLCJoc2woMjEwIDQwJSA5OCUpIil9OwogICAgICAgIGxpbmUtaGVpZ2h0OiAxLjE7CiAgICAgICAgbGV0dGVyLXNwYWNpbmc6IC0wLjAyNWVtOwogICAgICB9CgogICAgICAvKiBDb250ZXh0IE1lbnUgKi8KICAgICAgZGVlcy1jb250ZXh0bWVudSB7CiAgICAgICAgcG9zaXRpb246IGZpeGVkOwogICAgICAgIHotaW5kZXg6IDEwMDA7CiAgICAgIH0KICAgIGBdO2NvbnN0cnVjdG9yKCl7c3VwZXIoKSxlbih0aGlzLE4pfXJlbmRlcigpe3JldHVybiBDYAogICAgICAke3RoaXMuZ3JpZEFjdGlvbnMubGVuZ3RoPjA/Q2AKICAgICAgICA8ZGl2IGNsYXNzPSJncmlkLWhlYWRlciI+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJncmlkLXRpdGxlIj48L2Rpdj4KICAgICAgICAgIDxkaXYgY2xhc3M9ImdyaWQtYWN0aW9ucyI+CiAgICAgICAgICAgICR7dGhpcy5ncmlkQWN0aW9ucy5tYXAoXz0+Q2AKICAgICAgICAgICAgICA8ZGVlcy1idXR0b24gCiAgICAgICAgICAgICAgICBAY2xpY2tlZD0keygpPT50aGlzLmhhbmRsZUdyaWRBY3Rpb24oXyl9CiAgICAgICAgICAgICAgICB0eXBlPSJvdXRsaW5lIgogICAgICAgICAgICAgICAgc2l6ZT0ic20iCiAgICAgICAgICAgICAgPgogICAgICAgICAgICAgICAgJHtfLmljb25OYW1lP0NgPGRlZXMtaWNvbiAuaWNvbj0ke18uaWNvbk5hbWV9IHNpemU9InNtYWxsIj48L2RlZXMtaWNvbj5gOiIifQogICAgICAgICAgICAgICAgJHtfLm5hbWV9CiAgICAgICAgICAgICAgPC9kZWVzLWJ1dHRvbj4KICAgICAgICAgICAgYCl9CiAgICAgICAgICA8L2Rpdj4KICAgICAgICA8L2Rpdj4KICAgICAgYDoiIn0KICAgICAgCiAgICAgIDxkaXYgY2xhc3M9InN0YXRzLWdyaWQiIHN0eWxlPSJncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdChhdXRvLWZpdCwgbWlubWF4KCR7dGhpcy5taW5UaWxlV2lkdGh9cHgsIDFmcikpOyBnYXA6ICR7dGhpcy5nYXB9cHg7Ij4KICAgICAgICAke3RoaXMudGlsZXMubWFwKF89PnRoaXMucmVuZGVyVGlsZShfKSl9CiAgICAgIDwvZGl2PgoKICAgICAgJHt0aGlzLmNvbnRleHRNZW51VmlzaWJsZT9DYAogICAgICAgIDxkZWVzLWNvbnRleHRtZW51CiAgICAgICAgICAueD0ke3RoaXMuY29udGV4dE1lbnVQb3NpdGlvbi54fQogICAgICAgICAgLnk9JHt0aGlzLmNvbnRleHRNZW51UG9zaXRpb24ueX0KICAgICAgICAgIC5tZW51SXRlbXM9JHt0aGlzLmNvbnRleHRNZW51QWN0aW9uc30KICAgICAgICAgIEBjbGlja2VkPSR7KCk9PnRoaXMuY29udGV4dE1lbnVWaXNpYmxlPSExfQogICAgICAgID48L2RlZXMtY29udGV4dG1lbnU+CiAgICAgIGA6IiJ9CiAgICBgfXJlbmRlclRpbGUoXyl7bGV0IFM9Xy5hY3Rpb25zJiZfLmFjdGlvbnMubGVuZ3RoPjAsJD1TJiZfLmFjdGlvbnMubGVuZ3RoPT09MSxUPV8uY29sdW1uU3BhbiYmXy5jb2x1bW5TcGFuPjE/Xy5jb2x1bW5TcGFuOnZvaWQgMDtyZXR1cm4gQ2AKICAgICAgPGRpdgogICAgICAgIGNsYXNzPSJzdGF0cy10aWxlICR7JD8iY2xpY2thYmxlIjoiIn0iCiAgICAgICAgc3R5bGU9IiR7VD9gZ3JpZC1jb2x1bW46IHNwYW4gJHtUfWA6IiJ9IgogICAgICAgIEBjbGljaz0keyQ/KCk9PnRoaXMuaGFuZGxlVGlsZUFjdGlvbihfLmFjdGlvbnNbMF0sXyk6dm9pZCAwfQogICAgICAgIEBjb250ZXh0bWVudT0ke1M/RT0+dGhpcy5zaG93Q29udGV4dE1lbnUoRSxfKTp2b2lkIDB9CiAgICAgID4KICAgICAgICA8ZGl2IGNsYXNzPSJ0aWxlLWhlYWRlciI+CiAgICAgICAgICA8aDMgY2xhc3M9InRpbGUtdGl0bGUiPiR7Xy50aXRsZX08L2gzPgogICAgICAgICAgJHtfLmljb24/Q2AKICAgICAgICAgICAgPGRlZXMtaWNvbiBjbGFzcz0idGlsZS1pY29uIiAuaWNvbj0ke18uaWNvbn0gc2l6ZT0ic21hbGwiPjwvZGVlcy1pY29uPgogICAgICAgICAgYDoiIn0KICAgICAgICA8L2Rpdj4KICAgICAgICAKICAgICAgICA8ZGl2IGNsYXNzPSJ0aWxlLWNvbnRlbnQiPgogICAgICAgICAgJHt0aGlzLnJlbmRlclRpbGVDb250ZW50KF8pfQogICAgICAgIDwvZGl2PgogICAgICAgIAogICAgICAgICR7Xy5kZXNjcmlwdGlvbiYmXy50eXBlIT09InRyZW5kIj9DYAogICAgICAgICAgPGRpdiBjbGFzcz0idGlsZS1kZXNjcmlwdGlvbiI+JHtfLmRlc2NyaXB0aW9ufTwvZGl2PgogICAgICAgIGA6IiJ9CiAgICAgIDwvZGl2PgogICAgYH1yZW5kZXJUaWxlQ29udGVudChfKXtzd2l0Y2goXy50eXBlKXtjYXNlIm51bWJlciI6cmV0dXJuIENgCiAgICAgICAgICA8ZGl2IGNsYXNzPSJ0aWxlLXZhbHVlIiBzdHlsZT0iJHtfLmNvbG9yP2Bjb2xvcjogJHtfLmNvbG9yfWA6IiJ9Ij4KICAgICAgICAgICAgPHNwYW4+JHtfLnZhbHVlfTwvc3Bhbj4KICAgICAgICAgICAgJHtfLnVuaXQ/Q2A8c3BhbiBjbGFzcz0idGlsZS11bml0Ij4ke18udW5pdH08L3NwYW4+YDoiIn0KICAgICAgICAgIDwvZGl2PgogICAgICAgIGA7Y2FzZSJnYXVnZSI6cmV0dXJuIHRoaXMucmVuZGVyR2F1Z2UoXyk7Y2FzZSJwZXJjZW50YWdlIjpyZXR1cm4gdGhpcy5yZW5kZXJQZXJjZW50YWdlKF8pO2Nhc2UidHJlbmQiOnJldHVybiB0aGlzLnJlbmRlclRyZW5kKF8pO2Nhc2UibXVsdGlQZXJjZW50YWdlIjpyZXR1cm4gdGhpcy5yZW5kZXJNdWx0aVBlcmNlbnRhZ2UoXyk7Y2FzZSJjcHVDb3JlcyI6cmV0dXJuIHRoaXMucmVuZGVyQ3B1Q29yZXMoXyk7Y2FzZSJwYXJ0aXRpb24iOnJldHVybiB0aGlzLnJlbmRlclBhcnRpdGlvbihfKTtjYXNlImRpc2siOnJldHVybiB0aGlzLnJlbmRlckRpc2soXyk7Y2FzZSJ0ZXh0IjpyZXR1cm4gQ2AKICAgICAgICAgIDxkaXYgY2xhc3M9InRleHQtdmFsdWUiIHN0eWxlPSIke18uY29sb3I/YGNvbG9yOiAke18uY29sb3J9YDoiIn0iPgogICAgICAgICAgICAke18udmFsdWV9CiAgICAgICAgICA8L2Rpdj4KICAgICAgICBgO2RlZmF1bHQ6cmV0dXJuIENgPGRpdiBjbGFzcz0idGlsZS12YWx1ZSI+JHtfLnZhbHVlfTwvZGl2PmB9fXJlbmRlckdhdWdlKF8pe2xldCBTPXR5cGVvZiBfLnZhbHVlPT0ibnVtYmVyIj9fLnZhbHVlOnBhcnNlRmxvYXQoXy52YWx1ZSksJD1fLmdhdWdlT3B0aW9uc3x8e21pbjowLG1heDoxMDB9LFQ9KFMtJC5taW4pLygkLm1heC0kLm1pbikqMTAwLEU9MTIwLHE9NzAsRz02LzIrMixlZT00MCxQPUUvMixnZT1xLUcsd2U9UC1lZSxJPWdlLG5lPVArZWUsWT1gTSAke3dlfSAke0l9IEEgJHtlZX0gJHtlZX0gMCAwIDEgJHtuZX0gJHtnZX1gLEE9TWF0aC5QSSplZSxMPUEtQSpULzEwMCxVPV8uY29sb3J8fG0uYmRUaGVtZSgiaHNsKDIxNS4zIDI1JSAyOC44JSkiLCJoc2woMjEwIDQwJSA3OCUpIik7aWYoJC50aHJlc2hvbGRzKXtsZXQgVj1bLi4uJC50aHJlc2hvbGRzXS5zb3J0KChYLGRlKT0+ZGUudmFsdWUtWC52YWx1ZSk7Zm9yKGxldCBYIG9mIFYpaWYoUz49WC52YWx1ZSl7VT1YLmNvbG9yO2JyZWFrfX1yZXR1cm4gQ2AKICAgICAgPGRpdiBjbGFzcz0iZ2F1Z2Utd3JhcHBlciI+CiAgICAgICAgPGRpdiBjbGFzcz0iZ2F1Z2UtY29udGFpbmVyIj4KICAgICAgICAgIDxzdmcgY2xhc3M9ImdhdWdlLXN2ZyIgdmlld0JveD0iMCAwICR7RX0gJHtxfSIgcHJlc2VydmVBc3BlY3RSYXRpbz0ieE1pZFlNaWQgbWVldCI+CiAgICAgICAgICAgIDwhLS0gQmFja2dyb3VuZCBhcmMgLS0+CiAgICAgICAgICAgIDxwYXRoCiAgICAgICAgICAgICAgY2xhc3M9ImdhdWdlLWJhY2tncm91bmQiCiAgICAgICAgICAgICAgZD0iJHtZfSIKICAgICAgICAgICAgLz4KICAgICAgICAgICAgPCEtLSBGaWxsZWQgYXJjIC0tPgogICAgICAgICAgICA8cGF0aAogICAgICAgICAgICAgIGNsYXNzPSJnYXVnZS1maWxsIgogICAgICAgICAgICAgIGQ9IiR7WX0iCiAgICAgICAgICAgICAgc3Ryb2tlPSIke1V9IgogICAgICAgICAgICAgIHN0cm9rZS1kYXNoYXJyYXk9IiR7QX0iCiAgICAgICAgICAgICAgc3Ryb2tlLWRhc2hvZmZzZXQ9IiR7TH0iCiAgICAgICAgICAgIC8+CiAgICAgICAgICAgIDwhLS0gVmFsdWUgdGV4dCAtLT4KICAgICAgICAgICAgPHRleHQgY2xhc3M9ImdhdWdlLXRleHQiIHg9IiR7UH0iIHk9IiR7Z2UtOH0iIGRvbWluYW50LWJhc2VsaW5lPSJtaWRkbGUiPgogICAgICAgICAgICAgIDx0c3Bhbj4ke1N9PC90c3Bhbj4ke18udW5pdD9DYDx0c3BhbiBjbGFzcz0iZ2F1Z2UtdW5pdCIgZHg9IjIiIGR5PSIwIj4ke18udW5pdH08L3RzcGFuPmA6IiJ9CiAgICAgICAgICAgIDwvdGV4dD4KICAgICAgICAgIDwvc3ZnPgogICAgICAgIDwvZGl2PgogICAgICA8L2Rpdj4KICAgIGB9cmVuZGVyUGVyY2VudGFnZShfKXtsZXQgUz10eXBlb2YgXy52YWx1ZT09Im51bWJlciI/Xy52YWx1ZTpwYXJzZUZsb2F0KF8udmFsdWUpLCQ9TWF0aC5taW4oMTAwLE1hdGgubWF4KDAsUykpO3JldHVybiBDYAogICAgICA8ZGl2IGNsYXNzPSJwZXJjZW50YWdlLXdyYXBwZXIiPgogICAgICAgIDxkaXYgY2xhc3M9InBlcmNlbnRhZ2UtdmFsdWUiPiR7JH0lPC9kaXY+CiAgICAgICAgPGRpdiBjbGFzcz0icGVyY2VudGFnZS1iYXIiPgogICAgICAgICAgPGRpdiAKICAgICAgICAgICAgY2xhc3M9InBlcmNlbnRhZ2UtZmlsbCIgCiAgICAgICAgICAgIHN0eWxlPSJ3aWR0aDogJHskfSU7ICR7Xy5jb2xvcj9gYmFja2dyb3VuZDogJHtfLmNvbG9yfWA6IiJ9IgogICAgICAgICAgPjwvZGl2PgogICAgICAgIDwvZGl2PgogICAgICA8L2Rpdj4KICAgIGB9cmVuZGVyVHJlbmQoXyl7aWYoIV8udHJlbmREYXRhfHxfLnRyZW5kRGF0YS5sZW5ndGg8MilyZXR1cm4gQ2A8ZGl2IGNsYXNzPSJ0aWxlLXZhbHVlIj4ke18udmFsdWV9PC9kaXY+YDtsZXQgUz1fLnRyZW5kRGF0YSwkPU1hdGgubWF4KC4uLlMpLFQ9TWF0aC5taW4oLi4uUyksRT0kLVR8fDEscT0zMDAsQj0zMixHPTIsZWU9Uy5tYXAoKGdlLHdlKT0+e2xldCBJPXdlLyhTLmxlbmd0aC0xKSpxLG5lPUcrKEItMipHKS0oZ2UtVCkvRSooQi0yKkcpO3JldHVybmAke0l9LCR7bmV9YH0pLmpvaW4oIiAiKSxQPWAwLCR7Qn0gJHtlZX0gJHtxfSwke0J9YDtyZXR1cm4gQ2AKICAgICAgPGRpdiBjbGFzcz0idHJlbmQtY29udGFpbmVyIj4KICAgICAgICA8ZGl2IGNsYXNzPSJ0cmVuZC1oZWFkZXIiPgogICAgICAgICAgPHNwYW4gY2xhc3M9InRyZW5kLXZhbHVlIj4ke18udmFsdWV9PC9zcGFuPgogICAgICAgICAgJHtfLnVuaXQ/Q2A8c3BhbiBjbGFzcz0idHJlbmQtdW5pdCI+JHtfLnVuaXR9PC9zcGFuPmA6IiJ9CiAgICAgICAgICAke18uZGVzY3JpcHRpb24/Q2A8c3BhbiBjbGFzcz0idHJlbmQtbGFiZWwiPiR7Xy5kZXNjcmlwdGlvbn08L3NwYW4+YDoiIn0KICAgICAgICA8L2Rpdj4KICAgICAgICA8ZGl2IGNsYXNzPSJ0cmVuZC1ncmFwaCI+CiAgICAgICAgICA8c3ZnIGNsYXNzPSJ0cmVuZC1zdmciIHZpZXdCb3g9IjAgMCAke3F9ICR7Qn0iIHByZXNlcnZlQXNwZWN0UmF0aW89Im5vbmUiPgogICAgICAgICAgICA8cG9seWdvbiBjbGFzcz0idHJlbmQtYXJlYSIgcG9pbnRzPSIke1B9IiAvPgogICAgICAgICAgICA8cG9seWxpbmUgY2xhc3M9InRyZW5kLWxpbmUiIHBvaW50cz0iJHtlZX0iIC8+CiAgICAgICAgICA8L3N2Zz4KICAgICAgICA8L2Rpdj4KICAgICAgPC9kaXY+CiAgICBgfXJlbmRlck11bHRpUGVyY2VudGFnZShfKXtpZighXy5wZXJjZW50YWdlc3x8Xy5wZXJjZW50YWdlcy5sZW5ndGg9PT0wKXJldHVybiBDYDxkaXYgY2xhc3M9InRpbGUtdmFsdWUiPiR7Xy52YWx1ZX08L2Rpdj5gO2xldCBTPV8ucGVyY2VudGFnZXMuc2xpY2UoMCwzKTtyZXR1cm4gQ2AKICAgICAgPGRpdiBjbGFzcz0ibXVsdGktcGVyY2VudGFnZS13cmFwcGVyIj4KICAgICAgICA8ZGl2IGNsYXNzPSJtdWx0aS1wZXJjZW50YWdlLWl0ZW1zIj4KICAgICAgICAgICR7Uy5tYXAoJD0+e2xldCBUPU1hdGgubWluKDEwMCxNYXRoLm1heCgwLCQudmFsdWUpKTtyZXR1cm4gQ2AKICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJtdWx0aS1wZXJjZW50YWdlLWl0ZW0iPgogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0ibXVsdGktcGVyY2VudGFnZS1oZWFkZXIiPgogICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0ibXVsdGktcGVyY2VudGFnZS1sYWJlbCI+JHskLmxhYmVsfTwvc3Bhbj4KICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9Im11bHRpLXBlcmNlbnRhZ2UtdmFsdWUiPiR7VH0lPC9zcGFuPgogICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJtdWx0aS1wZXJjZW50YWdlLWJhciI+CiAgICAgICAgICAgICAgICAgIDxkaXYKICAgICAgICAgICAgICAgICAgICBjbGFzcz0ibXVsdGktcGVyY2VudGFnZS1maWxsIgogICAgICAgICAgICAgICAgICAgIHN0eWxlPSJ3aWR0aDogJHtUfSU7ICR7JC5jb2xvcj9gYmFja2dyb3VuZDogJHskLmNvbG9yfWA6IiJ9IgogICAgICAgICAgICAgICAgICA+PC9kaXY+CiAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgYH0pfQogICAgICAgIDwvZGl2PgogICAgICA8L2Rpdj4KICAgIGB9cmVuZGVyQ3B1Q29yZXMoXyl7aWYoIV8uY29yZXNEYXRhfHxfLmNvcmVzRGF0YS5sZW5ndGg9PT0wKXJldHVybiBDYDxkaXYgY2xhc3M9InRpbGUtdmFsdWUiPiR7Xy52YWx1ZX08L2Rpdj5gO2xldCBTPV8uY29yZXNEYXRhLCQ9TWF0aC5yb3VuZChTLnJlZHVjZSgoZWUsUCk9PmVlK1AudXNhZ2UsMCkvUy5sZW5ndGgpLFQ9ZWU9PmVlPDUwPyJsb3ciOmVlPDgwPyJtZWRpdW0iOiJoaWdoIixFPVMubGVuZ3RoKjI0KyhTLmxlbmd0aC0xKSozLHE9Xy5jb2x1bW5TcGFufHwxLEI9dGhpcy5taW5UaWxlV2lkdGgqcSsocS0xKSp0aGlzLmdhcC0zMixHPUU8QiouNjY2O3JldHVybiBDYAogICAgICA8ZGl2IGNsYXNzPSJjcHUtY29yZXMtd3JhcHBlciI+CiAgICAgICAgPGRpdiBjbGFzcz0iY3B1LWNvcmVzLWhlYWRlciI+CiAgICAgICAgICA8c3BhbiBjbGFzcz0iY3B1LWNvcmVzLXZhbHVlIj4keyR9PC9zcGFuPgogICAgICAgICAgPHNwYW4gY2xhc3M9ImNwdS1jb3Jlcy11bml0Ij4lPC9zcGFuPgogICAgICAgICAgPHNwYW4gY2xhc3M9ImNwdS1jb3Jlcy1sYWJlbCI+JHtTLmxlbmd0aH0gY29yZXM8L3NwYW4+CiAgICAgICAgPC9kaXY+CiAgICAgICAgPGRpdiBjbGFzcz0iY3B1LWNvcmVzLWJhcnMgJHtHPyJjZW50ZXJlZCI6IiJ9Ij4KICAgICAgICAgICR7Uy5tYXAoZWU9PntsZXQgUD1NYXRoLm1pbigxMDAsTWF0aC5tYXgoMCxlZS51c2FnZSkpLGdlPVQoUCk7cmV0dXJuIENgCiAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iY3B1LWNvcmUtYmFyLWNvbnRhaW5lciIgdGl0bGU9IkNvcmUgJHtlZS5sYWJlbHx8ZWUuaWR9OiAke1B9JSI+CiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJjcHUtY29yZS1iYXItd3JhcHBlciI+CiAgICAgICAgICAgICAgICAgIDxkaXYKICAgICAgICAgICAgICAgICAgICBjbGFzcz0iY3B1LWNvcmUtYmFyLWZpbGwgJHtnZX0iCiAgICAgICAgICAgICAgICAgICAgc3R5bGU9ImhlaWdodDogJHtQfSUiCiAgICAgICAgICAgICAgICAgID48L2Rpdj4KICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgJHtTLmxlbmd0aDw9MTY/Q2AKICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImNwdS1jb3JlLWxhYmVsIj4ke2VlLmxhYmVsfHxlZS5pZH08L3NwYW4+CiAgICAgICAgICAgICAgICBgOiIifQogICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICBgfSl9CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGl2PgogICAgYH1mb3JtYXRCeXRlcyhfKXtpZihfPT09MClyZXR1cm4iMCBCIjtsZXQgUz0xMDI0LCQ9WyJCIiwiS0IiLCJNQiIsIkdCIiwiVEIiLCJQQiJdLFQ9TWF0aC5mbG9vcihNYXRoLmxvZyhfKS9NYXRoLmxvZyhTKSk7cmV0dXJuIHBhcnNlRmxvYXQoKF8vTWF0aC5wb3coUyxUKSkudG9GaXhlZCgxKSkrIiAiKyRbVF19cmVuZGVyUGFydGl0aW9uKF8pe2lmKCFfLnBhcnRpdGlvbkRhdGEpcmV0dXJuIENgPGRpdiBjbGFzcz0idGlsZS12YWx1ZSI+JHtfLnZhbHVlfTwvZGl2PmA7bGV0e3VzZWQ6Uyx0b3RhbDokLGZpbGVzeXN0ZW06VCxtb3VudFBvaW50OkV9PV8ucGFydGl0aW9uRGF0YSxxPU1hdGgubWluKDEwMCxNYXRoLm1heCgwLFMvJCoxMDApKSxCPSQtUyxHPSgpPT5xPj05MD8iY3JpdGljYWwiOnE+PTc1PyJ3YXJuaW5nIjoiIjtyZXR1cm4gQ2AKICAgICAgPGRpdiBjbGFzcz0icGFydGl0aW9uLXdyYXBwZXIiPgogICAgICAgIDxkaXYgY2xhc3M9InBhcnRpdGlvbi1oZWFkZXIiPgogICAgICAgICAgPHNwYW4gY2xhc3M9InBhcnRpdGlvbi1wZXJjZW50YWdlIj4ke01hdGgucm91bmQocSl9JTwvc3Bhbj4KICAgICAgICA8L2Rpdj4KICAgICAgICA8ZGl2IGNsYXNzPSJwYXJ0aXRpb24tYmFyIj4KICAgICAgICAgIDxkaXYKICAgICAgICAgICAgY2xhc3M9InBhcnRpdGlvbi1iYXItZmlsbCAke0coKX0iCiAgICAgICAgICAgIHN0eWxlPSJ3aWR0aDogJHtxfSUiCiAgICAgICAgICA+PC9kaXY+CiAgICAgICAgPC9kaXY+CiAgICAgICAgPGRpdiBjbGFzcz0icGFydGl0aW9uLXN0YXRzIj4KICAgICAgICAgIDxkaXYgY2xhc3M9InBhcnRpdGlvbi1zdGF0Ij4KICAgICAgICAgICAgPHNwYW4gY2xhc3M9InBhcnRpdGlvbi1zdGF0LWxhYmVsIj5Vc2VkPC9zcGFuPgogICAgICAgICAgICA8c3BhbiBjbGFzcz0icGFydGl0aW9uLXN0YXQtdmFsdWUiPiR7dGhpcy5mb3JtYXRCeXRlcyhTKX08L3NwYW4+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIDxkaXYgY2xhc3M9InBhcnRpdGlvbi1zdGF0Ij4KICAgICAgICAgICAgPHNwYW4gY2xhc3M9InBhcnRpdGlvbi1zdGF0LWxhYmVsIj5GcmVlPC9zcGFuPgogICAgICAgICAgICA8c3BhbiBjbGFzcz0icGFydGl0aW9uLXN0YXQtdmFsdWUiPiR7dGhpcy5mb3JtYXRCeXRlcyhCKX08L3NwYW4+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICA8L2Rpdj4KICAgICAgICA8ZGl2IGNsYXNzPSJwYXJ0aXRpb24tbWV0YSI+CiAgICAgICAgICA8c3BhbiBjbGFzcz0icGFydGl0aW9uLWZpbGVzeXN0ZW0iPiR7VH08L3NwYW4+CiAgICAgICAgICAke0U/Q2A8c3BhbiBjbGFzcz0icGFydGl0aW9uLW1vdW50cG9pbnQiPiR7RX08L3NwYW4+YDoiIn0KICAgICAgICA8L2Rpdj4KICAgICAgPC9kaXY+CiAgICBgfXJlbmRlckRpc2soXyl7aWYoIV8uZGlza0RhdGEpcmV0dXJuIENgPGRpdiBjbGFzcz0idGlsZS12YWx1ZSI+JHtfLnZhbHVlfTwvZGl2PmA7bGV0e2NhcGFjaXR5OlMsbW9kZWw6JCx0eXBlOlQsaW9wczpFLGhlYWx0aDpxfT1fLmRpc2tEYXRhLEI9Rz0+Rz49NzA/Imdvb2QiOkc+PTMwPyJ3YXJuaW5nIjoiY3JpdGljYWwiO3JldHVybiBDYAogICAgICA8ZGl2IGNsYXNzPSJkaXNrLXdyYXBwZXIiPgogICAgICAgIDxkaXYgY2xhc3M9ImRpc2stY2FwYWNpdHkiPiR7dGhpcy5mb3JtYXRCeXRlcyhTKX08L2Rpdj4KICAgICAgICAkeyR8fFQ/Q2AKICAgICAgICAgIDxkaXYgY2xhc3M9ImRpc2stbW9kZWwiPgogICAgICAgICAgICAkeyQ/Q2A8c3Bhbj4keyR9PC9zcGFuPmA6IiJ9CiAgICAgICAgICAgICR7VD9DYDxzcGFuIGNsYXNzPSJkaXNrLXR5cGUtYmFkZ2UiPiR7VH08L3NwYW4+YDoiIn0KICAgICAgICAgIDwvZGl2PgogICAgICAgIGA6IiJ9CiAgICAgICAgPGRpdiBjbGFzcz0iZGlzay1tZXRyaWNzIj4KICAgICAgICAgICR7RT9DYAogICAgICAgICAgICA8ZGl2IGNsYXNzPSJkaXNrLWlvcHMiPgogICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImRpc2staW9wcy1pdGVtIj4KICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJkaXNrLWlvcHMtbGFiZWwiPlJlYWQ8L3NwYW4+CiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZGlzay1pb3BzLXZhbHVlIj4ke0UucmVhZC50b0xvY2FsZVN0cmluZygpfTwvc3Bhbj4KICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJkaXNrLWlvcHMtaXRlbSI+CiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZGlzay1pb3BzLWxhYmVsIj5Xcml0ZTwvc3Bhbj4KICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJkaXNrLWlvcHMtdmFsdWUiPiR7RS53cml0ZS50b0xvY2FsZVN0cmluZygpfTwvc3Bhbj4KICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICBgOiIifQogICAgICAgICAgJHtxIT09dm9pZCAwP0NgCiAgICAgICAgICAgIDxkaXYgY2xhc3M9ImRpc2staGVhbHRoIj4KICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJkaXNrLWhlYWx0aC1oZWFkZXIiPgogICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImRpc2staGVhbHRoLWxhYmVsIj5IZWFsdGg8L3NwYW4+CiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZGlzay1oZWFsdGgtdmFsdWUiPiR7cX0lPC9zcGFuPgogICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImRpc2staGVhbHRoLWJhciI+CiAgICAgICAgICAgICAgICA8ZGl2CiAgICAgICAgICAgICAgICAgIGNsYXNzPSJkaXNrLWhlYWx0aC1maWxsICR7QihxKX0iCiAgICAgICAgICAgICAgICAgIHN0eWxlPSJ3aWR0aDogJHtxfSUiCiAgICAgICAgICAgICAgICA+PC9kaXY+CiAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgYDoiIn0KICAgICAgICA8L2Rpdj4KICAgICAgPC9kaXY+CiAgICBgfWFzeW5jIGhhbmRsZUdyaWRBY3Rpb24oXyl7Xy5hY3Rpb24mJmF3YWl0IF8uYWN0aW9uKCl9YXN5bmMgaGFuZGxlVGlsZUFjdGlvbihfLFMpe18uYWN0aW9uJiZhd2FpdCBfLmFjdGlvbigpfXNob3dDb250ZXh0TWVudShfLFMpe2lmKCFTLmFjdGlvbnN8fFMuYWN0aW9ucy5sZW5ndGg9PT0wKXJldHVybjtfLnByZXZlbnREZWZhdWx0KCksdGhpcy5jb250ZXh0TWVudVBvc2l0aW9uPXt4Ol8uY2xpZW50WCx5Ol8uY2xpZW50WX0sdGhpcy5jb250ZXh0TWVudUFjdGlvbnM9Uy5hY3Rpb25zLHRoaXMuY29udGV4dE1lbnVWaXNpYmxlPSEwO2xldCAkPSgpPT57dGhpcy5jb250ZXh0TWVudVZpc2libGU9ITEsZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcigiY2xpY2siLCQpfTtzZXRUaW1lb3V0KCgpPT57ZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLCQpfSwxMDApfXN0YXRpY3tlbihpLHIpfX07cmV0dXJuIFI9aX0pKCl9KTt2YXIgcWQsaWwsVDJhLF8yYSxMMmEsQTJhLEFscixEbHI9cCgoKT0+e3hlKCk7cDEoKTtaTigpO3FkPWZ1bmN0aW9uKGUsdCxyLGksYSxuKXtmdW5jdGlvbiBvKHkpe2lmKHkhPT12b2lkIDAmJnR5cGVvZiB5IT0iZnVuY3Rpb24iKXRocm93IG5ldyBUeXBlRXJyb3IoIkZ1bmN0aW9uIGV4cGVjdGVkIik7cmV0dXJuIHl9Zm9yKHZhciBzPWkua2luZCxsPXM9PT0iZ2V0dGVyIj8iZ2V0IjpzPT09InNldHRlciI/InNldCI6InZhbHVlIixjPSF0JiZlP2kuc3RhdGljP2U6ZS5wcm90b3R5cGU6bnVsbCx1PXR8fChjP09iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoYyxpLm5hbWUpOnt9KSxkLGg9ITEsZj1yLmxlbmd0aC0xO2Y+PTA7Zi0tKXt2YXIgeD17fTtmb3IodmFyIHYgaW4gaSl4W3ZdPXY9PT0iYWNjZXNzIj97fTppW3ZdO2Zvcih2YXIgdiBpbiBpLmFjY2Vzcyl4LmFjY2Vzc1t2XT1pLmFjY2Vzc1t2XTt4LmFkZEluaXRpYWxpemVyPWZ1bmN0aW9uKHkpe2lmKGgpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGFkZCBpbml0aWFsaXplcnMgYWZ0ZXIgZGVjb3JhdGlvbiBoYXMgY29tcGxldGVkIik7bi5wdXNoKG8oeXx8bnVsbCkpfTt2YXIgYj0oMCxyW2ZdKShzPT09ImFjY2Vzc29yIj97Z2V0OnUuZ2V0LHNldDp1LnNldH06dVtsXSx4KTtpZihzPT09ImFjY2Vzc29yIil7aWYoYj09PXZvaWQgMCljb250aW51ZTtpZihiPT09bnVsbHx8dHlwZW9mIGIhPSJvYmplY3QiKXRocm93IG5ldyBUeXBlRXJyb3IoIk9iamVjdCBleHBlY3RlZCIpOyhkPW8oYi5nZXQpKSYmKHUuZ2V0PWQpLChkPW8oYi5zZXQpKSYmKHUuc2V0PWQpLChkPW8oYi5pbml0KSkmJmEudW5zaGlmdChkKX1lbHNlKGQ9byhiKSkmJihzPT09ImZpZWxkIj9hLnVuc2hpZnQoZCk6dVtsXT1kKX1jJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoYyxpLm5hbWUsdSksaD0hMH0saWw9ZnVuY3Rpb24oZSx0LHIpe2Zvcih2YXIgaT1hcmd1bWVudHMubGVuZ3RoPjIsYT0wO2E8dC5sZW5ndGg7YSsrKXI9aT90W2FdLmNhbGwoZSxyKTp0W2FdLmNhbGwoZSk7cmV0dXJuIGk/cjp2b2lkIDB9LFQyYT0oKCk9PntsZXQgZT1beWUoImRlbW8tZGFzaGJvYXJkLXZpZXciKV0sdCxyPVtdLGksYT16ZSxuLG89W10scz1bXTt2YXIgbD1jbGFzcyBleHRlbmRzIGF7c3RhdGlje2k9dGhpc31zdGF0aWN7bGV0IGM9dHlwZW9mIFN5bWJvbD09ImZ1bmN0aW9uIiYmU3ltYm9sLm1ldGFkYXRhP09iamVjdC5jcmVhdGUoYVtTeW1ib2wubWV0YWRhdGFdPz9udWxsKTp2b2lkIDA7bj1bZmUoKV0scWQodGhpcyxudWxsLG4se2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJhY3RpdmF0ZWQiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOnU9PiJhY3RpdmF0ZWQiaW4gdSxnZXQ6dT0+dS5hY3RpdmF0ZWQsc2V0Oih1LGQpPT57dS5hY3RpdmF0ZWQ9ZH19LG1ldGFkYXRhOmN9LG8scykscWQobnVsbCx0PXt2YWx1ZTppfSxlLHtraW5kOiJjbGFzcyIsbmFtZTppLm5hbWUsbWV0YWRhdGE6Y30sbnVsbCxyKSxsPWk9dC52YWx1ZSxjJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoaSxTeW1ib2wubWV0YWRhdGEse2VudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwLHZhbHVlOmN9KSxpbChpLHIpfSNlPWlsKHRoaXMsbywhMSk7Z2V0IGFjdGl2YXRlZCgpe3JldHVybiB0aGlzLiNlfXNldCBhY3RpdmF0ZWQoYyl7dGhpcy4jZT1jfWN0eD1pbCh0aGlzLHMpO3N0YXRzVGlsZXM9W3tpZDoidXNlcnMiLHRpdGxlOiJBY3RpdmUgVXNlcnMiLHZhbHVlOjEyMzQsdHlwZToibnVtYmVyIixpY29uOiJsdWNpZGU6dXNlcnMiLGRlc2NyaXB0aW9uOiJPbmxpbmUgbm93Iixjb2xvcjoiIzIyYzU1ZSJ9LHtpZDoiYXBpLWNhbGxzIix0aXRsZToiQVBJIENhbGxzIix2YWx1ZTo0NTIwMCx0eXBlOiJ0cmVuZCIsaWNvbjoibHVjaWRlOmFjdGl2aXR5IixkZXNjcmlwdGlvbjoiKzEyJSBmcm9tIGxhc3QgaG91ciIsY29sb3I6IiMzYjgyZjYiLHRyZW5kRGF0YTpbMzJlMywzNWUzLDM4ZTMsNDFlMywzOWUzLDQyZTMsNDUyMDBdfSx7aWQ6ImhlYWx0aCIsdGl0bGU6IlN5c3RlbSBIZWFsdGgiLHZhbHVlOjk5LjksdW5pdDoiJSIsdHlwZToiZ2F1Z2UiLGljb246Imx1Y2lkZTpoZWFydC1wdWxzZSIsZGVzY3JpcHRpb246IkFsbCBzeXN0ZW1zIG9wZXJhdGlvbmFsIixjb2xvcjoiIzEwYjk4MSIsZ2F1Z2VPcHRpb25zOnttaW46MCxtYXg6MTAwLHRocmVzaG9sZHM6W3t2YWx1ZTo4MCxjb2xvcjoiI2VmNDQ0NCJ9LHt2YWx1ZTo5NSxjb2xvcjoiI2Y1OWUwYiJ9LHt2YWx1ZToxMDAsY29sb3I6IiMxMGI5ODEifV19fSx7aWQ6InJlc3BvbnNlIix0aXRsZToiQXZnIFJlc3BvbnNlIix2YWx1ZToxMjcsdW5pdDoibXMiLHR5cGU6Im51bWJlciIsaWNvbjoibHVjaWRlOnRpbWVyIixkZXNjcmlwdGlvbjoiLTE1bXMgZnJvbSB5ZXN0ZXJkYXkiLGNvbG9yOiIjOGI1Y2Y2In0se2lkOiJyZXNvdXJjZXMiLHRpdGxlOiJSZXNvdXJjZSBVc2FnZSIsdmFsdWU6IiIsdHlwZToibXVsdGlQZXJjZW50YWdlIixpY29uOiJsdWNpZGU6c2VydmVyIixwZXJjZW50YWdlczpbe2xhYmVsOiJDUFUiLHZhbHVlOjY3LGNvbG9yOiIjM2I4MmY2In0se2xhYmVsOiJNZW1vcnkiLHZhbHVlOjg0LGNvbG9yOiIjOGI1Y2Y2In0se2xhYmVsOiJEaXNrIix2YWx1ZTo0NSxjb2xvcjoiIzEwYjk4MSJ9XX0se2lkOiJyZXF1ZXN0cyIsdGl0bGU6IlJlcXVlc3RzL3NlYyIsdmFsdWU6MTg1MCx0eXBlOiJ0cmVuZCIsaWNvbjoibHVjaWRlOnphcCIsZGVzY3JpcHRpb246IkN1cnJlbnQgdGhyb3VnaHB1dCIsY29sb3I6IiMwNmI2ZDQiLHRyZW5kRGF0YTpbMTIwMCwxNDAwLDEzNTAsMTYwMCwxNzUwLDE2ODAsMTg1MF19XTtvbkFjdGl2YXRlKGMpe3RoaXMuY3R4PWMsdGhpcy5hY3RpdmF0ZWQ9ITAsY29uc29sZS5sb2coIkRhc2hib2FyZCBhY3RpdmF0ZWQgd2l0aCBjb250ZXh0OiIsYyksYy5hcHB1aS5zZXRTZWNvbmRhcnlNZW51KHtoZWFkaW5nOiJEYXNoYm9hcmQiLGdyb3Vwczpbe25hbWU6IlF1aWNrIEFjY2VzcyIsaWNvbk5hbWU6Imx1Y2lkZTp6YXAiLGl0ZW1zOlt7a2V5OiJPdmVydmlldyIsaWNvbk5hbWU6ImxheW91dERhc2hib2FyZCIsYWN0aW9uOigpPT5jb25zb2xlLmxvZygiT3ZlcnZpZXciKX0se2tleToiUmVjZW50IixpY29uTmFtZToiY2xvY2siLGJhZGdlOjUsYWN0aW9uOigpPT5jb25zb2xlLmxvZygiUmVjZW50Iil9LHt0eXBlOiJkaXZpZGVyIn0se3R5cGU6ImFjdGlvbiIsa2V5OiJSZWZyZXNoIERhdGEiLGljb25OYW1lOiJsdWNpZGU6cmVmcmVzaEN3IixhY3Rpb246KCk9PmFsZXJ0KCJSZWZyZXNoaW5nIGRhc2hib2FyZCBkYXRhLi4uIil9XX0se25hbWU6IkZpbHRlcnMiLGljb25OYW1lOiJsdWNpZGU6ZmlsdGVyIixpdGVtczpbe3R5cGU6ImhlYWRlciIsbGFiZWw6IlRpbWUgUmFuZ2UifSx7dHlwZToiZmlsdGVyIixrZXk6IkxpdmUgVXBkYXRlcyIsaWNvbk5hbWU6Imx1Y2lkZTpyYWRpbyIsYWN0aXZlOiEwLG9uVG9nZ2xlOnU9PmNvbnNvbGUubG9nKCJMaXZlIHVwZGF0ZXM6Iix1KX0se3R5cGU6ImZpbHRlciIsa2V5OiJTaG93IEFyY2hpdmVkIixpY29uTmFtZToibHVjaWRlOmFyY2hpdmUiLGFjdGl2ZTohMSxvblRvZ2dsZTp1PT5jb25zb2xlLmxvZygiU2hvdyBhcmNoaXZlZDoiLHUpfSx7dHlwZToiZGl2aWRlciJ9LHt0eXBlOiJtdWx0aUZpbHRlciIsa2V5OiJEYXRhIFNvdXJjZXMiLGljb25OYW1lOiJsdWNpZGU6ZGF0YWJhc2UiLG9wdGlvbnM6W3trZXk6ImFwaSIsbGFiZWw6IkFQSSBTZXJ2ZXIiLGNoZWNrZWQ6ITAsaWNvbk5hbWU6Imx1Y2lkZTpzZXJ2ZXIifSx7a2V5OiJ3ZWIiLGxhYmVsOiJXZWIgVHJhZmZpYyIsY2hlY2tlZDohMCxpY29uTmFtZToibHVjaWRlOmdsb2JlIn0se2tleToibW9iaWxlIixsYWJlbDoiTW9iaWxlIEFwcCIsY2hlY2tlZDohMSxpY29uTmFtZToibHVjaWRlOnNtYXJ0cGhvbmUifV0sb25DaGFuZ2U6dT0+Y29uc29sZS5sb2coIkRhdGEgc291cmNlczoiLHUpfV19LHtuYW1lOiJBbmFseXRpY3MiLGljb25OYW1lOiJsdWNpZGU6YmFyQ2hhcnQzIixpdGVtczpbe2tleToiTWV0cmljcyIsaWNvbk5hbWU6ImFjdGl2aXR5IixhY3Rpb246KCk9PmNvbnNvbGUubG9nKCJNZXRyaWNzIil9LHtrZXk6IlJlcG9ydHMiLGljb25OYW1lOiJmaWxlVGV4dCIsYmFkZ2U6Im5ldyIsYmFkZ2VWYXJpYW50OiJzdWNjZXNzIixhY3Rpb246KCk9PmNvbnNvbGUubG9nKCJSZXBvcnRzIil9LHt0eXBlOiJkaXZpZGVyIn0se3R5cGU6ImxpbmsiLGtleToiQW5hbHl0aWNzIERvY3MiLGljb25OYW1lOiJsdWNpZGU6ZXh0ZXJuYWxMaW5rIixocmVmOiJodHRwczovL2RvY3MuZXhhbXBsZS5jb20vYW5hbHl0aWNzIn1dfV19KSxjLmFwcHVpLnNldENvbnRlbnRUYWJzKFt7a2V5OiJPdmVydmlldyIsaWNvbk5hbWU6Imx1Y2lkZTpsYXlvdXREYXNoYm9hcmQiLGFjdGlvbjooKT0+Y29uc29sZS5sb2coIk92ZXJ2aWV3IHRhYiIpfSx7a2V5OiJBbmFseXRpY3MiLGljb25OYW1lOiJsdWNpZGU6YmFyQ2hhcnQiLGFjdGlvbjooKT0+Y29uc29sZS5sb2coIkFuYWx5dGljcyB0YWIiKX0se2tleToiUmVwb3J0cyIsaWNvbk5hbWU6Imx1Y2lkZTpmaWxlVGV4dCIsYWN0aW9uOigpPT5jb25zb2xlLmxvZygiUmVwb3J0cyB0YWIiKX1dKX1vbkRlYWN0aXZhdGUoKXt0aGlzLmFjdGl2YXRlZD0hMSxjb25zb2xlLmxvZygiRGFzaGJvYXJkIGRlYWN0aXZhdGVkIil9cmVuZGVyKCl7cmV0dXJuIENgCiAgICAgIDxzdHlsZT4KICAgICAgICA6aG9zdCB7CiAgICAgICAgICBkaXNwbGF5OiBibG9jazsKICAgICAgICAgIHBhZGRpbmc6IDQwcHg7CiAgICAgICAgICBjb2xvcjogI2EzYTNhMzsKICAgICAgICAgIGZvbnQtZmFtaWx5OiAnR2Vpc3QgU2FucycsICdJbnRlcicsIC1hcHBsZS1zeXN0ZW0sIHNhbnMtc2VyaWY7CiAgICAgICAgfQogICAgICAgIGgxIHsgY29sb3I6ICNmYWZhZmE7IGZvbnQtd2VpZ2h0OiA2MDA7IGZvbnQtc2l6ZTogMjRweDsgbWFyZ2luLWJvdHRvbTogOHB4OyB9CiAgICAgICAgcCB7IGNvbG9yOiAjNzM3MzczOyBtYXJnaW4tYm90dG9tOiAzMnB4OyB9CiAgICAgICAgZGVlcy1zdGF0c2dyaWQgewogICAgICAgICAgbWFyZ2luLWJvdHRvbTogMzJweDsKICAgICAgICB9CgogICAgICAgIC5jdHgtYWN0aW9ucyB7CiAgICAgICAgICBtYXJnaW4tdG9wOiAzMnB4OwogICAgICAgICAgcGFkZGluZzogMjRweDsKICAgICAgICAgIGJhY2tncm91bmQ6IHJnYmEoMjU1LDI1NSwyNTUsMC4wMik7CiAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCByZ2JhKDI1NSwyNTUsMjU1LDAuMDgpOwogICAgICAgICAgYm9yZGVyLXJhZGl1czogOHB4OwogICAgICAgIH0KICAgICAgICAuY3R4LWFjdGlvbnMgaDIgeyBjb2xvcjogI2ZhZmFmYTsgZm9udC1zaXplOiAxNnB4OyBmb250LXdlaWdodDogNjAwOyBtYXJnaW4tYm90dG9tOiAxNnB4OyB9CiAgICAgICAgLmJ1dHRvbi1ncmlkIHsKICAgICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgICBmbGV4LXdyYXA6IHdyYXA7CiAgICAgICAgICBnYXA6IDhweDsKICAgICAgICB9CiAgICAgICAgLmN0eC1idG4gewogICAgICAgICAgYmFja2dyb3VuZDogcmdiYSg1OSwgMTMwLCAyNDYsIDAuMSk7CiAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCByZ2JhKDU5LCAxMzAsIDI0NiwgMC4zKTsKICAgICAgICAgIGNvbG9yOiAjNjBhNWZhOwogICAgICAgICAgcGFkZGluZzogOHB4IDE2cHg7CiAgICAgICAgICBib3JkZXItcmFkaXVzOiA2cHg7CiAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICAgICAgICBmb250LXNpemU6IDEzcHg7CiAgICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC4xNXMgZWFzZTsKICAgICAgICB9CiAgICAgICAgLmN0eC1idG46aG92ZXIgewogICAgICAgICAgYmFja2dyb3VuZDogcmdiYSg1OSwgMTMwLCAyNDYsIDAuMik7CiAgICAgICAgICBib3JkZXItY29sb3I6IHJnYmEoNTksIDEzMCwgMjQ2LCAwLjUpOwogICAgICAgIH0KICAgICAgICAuY3R4LWJ0bi5kYW5nZXIgewogICAgICAgICAgYmFja2dyb3VuZDogcmdiYSgyMzksIDY4LCA2OCwgMC4xKTsKICAgICAgICAgIGJvcmRlci1jb2xvcjogcmdiYSgyMzksIDY4LCA2OCwgMC4zKTsKICAgICAgICAgIGNvbG9yOiAjZjg3MTcxOwogICAgICAgIH0KICAgICAgICAuY3R4LWJ0bi5kYW5nZXI6aG92ZXIgewogICAgICAgICAgYmFja2dyb3VuZDogcmdiYSgyMzksIDY4LCA2OCwgMC4yKTsKICAgICAgICAgIGJvcmRlci1jb2xvcjogcmdiYSgyMzksIDY4LCA2OCwgMC41KTsKICAgICAgICB9CiAgICAgICAgLmN0eC1idG4uc3VjY2VzcyB7CiAgICAgICAgICBiYWNrZ3JvdW5kOiByZ2JhKDM0LCAxOTcsIDk0LCAwLjEpOwogICAgICAgICAgYm9yZGVyLWNvbG9yOiByZ2JhKDM0LCAxOTcsIDk0LCAwLjMpOwogICAgICAgICAgY29sb3I6ICM0YWRlODA7CiAgICAgICAgfQogICAgICAgIC5jdHgtYnRuLnN1Y2Nlc3M6aG92ZXIgewogICAgICAgICAgYmFja2dyb3VuZDogcmdiYSgzNCwgMTk3LCA5NCwgMC4yKTsKICAgICAgICAgIGJvcmRlci1jb2xvcjogcmdiYSgzNCwgMTk3LCA5NCwgMC41KTsKICAgICAgICB9CiAgICAgIDwvc3R5bGU+CiAgICAgIDxoMT5EYXNoYm9hcmQ8L2gxPgogICAgICA8cD5XZWxjb21lIGJhY2shIEhlcmUncyBhbiBvdmVydmlldyBvZiB5b3VyIHN5c3RlbS48L3A+CiAgICAgIDxkZWVzLXN0YXRzZ3JpZAogICAgICAgIC50aWxlcz0ke3RoaXMuc3RhdHNUaWxlc30KICAgICAgICBAdGlsZS1hY3Rpb249JHtjPT5jb25zb2xlLmxvZygiVGlsZSBhY3Rpb246IixjLmRldGFpbCl9CiAgICAgID48L2RlZXMtc3RhdHNncmlkPgoKICAgICAgPGRpdiBjbGFzcz0iY3R4LWFjdGlvbnMiPgogICAgICAgIDxoMj5Db250ZXh0IEFjdGlvbnMgKGN0eC5hcHB1aSk8L2gyPgogICAgICAgIDxkaXYgY2xhc3M9ImJ1dHRvbi1ncmlkIj4KICAgICAgICAgIDxidXR0b24gY2xhc3M9ImN0eC1idG4iIEBjbGljaz0keygpPT50aGlzLmN0eD8uYXBwdWkuc2V0TWFpbk1lbnVWaXNpYmxlKCExKX0+SGlkZSBNYWluIE1lbnU8L2J1dHRvbj4KICAgICAgICAgIDxidXR0b24gY2xhc3M9ImN0eC1idG4gc3VjY2VzcyIgQGNsaWNrPSR7KCk9PnRoaXMuY3R4Py5hcHB1aS5zZXRNYWluTWVudVZpc2libGUoITApfT5TaG93IE1haW4gTWVudTwvYnV0dG9uPgogICAgICAgICAgPGJ1dHRvbiBjbGFzcz0iY3R4LWJ0biIgQGNsaWNrPSR7KCk9PnRoaXMuY3R4Py5hcHB1aS5zZXRTZWNvbmRhcnlNZW51VmlzaWJsZSghMSl9PkhpZGUgU2Vjb25kYXJ5IE1lbnU8L2J1dHRvbj4KICAgICAgICAgIDxidXR0b24gY2xhc3M9ImN0eC1idG4gc3VjY2VzcyIgQGNsaWNrPSR7KCk9PnRoaXMuY3R4Py5hcHB1aS5zZXRTZWNvbmRhcnlNZW51VmlzaWJsZSghMCl9PlNob3cgU2Vjb25kYXJ5IE1lbnU8L2J1dHRvbj4KICAgICAgICAgIDxidXR0b24gY2xhc3M9ImN0eC1idG4iIEBjbGljaz0keygpPT50aGlzLmN0eD8uYXBwdWkuc2V0Q29udGVudFRhYnNWaXNpYmxlKCExKX0+SGlkZSBDb250ZW50IFRhYnM8L2J1dHRvbj4KICAgICAgICAgIDxidXR0b24gY2xhc3M9ImN0eC1idG4gc3VjY2VzcyIgQGNsaWNrPSR7KCk9PnRoaXMuY3R4Py5hcHB1aS5zZXRDb250ZW50VGFic1Zpc2libGUoITApfT5TaG93IENvbnRlbnQgVGFiczwvYnV0dG9uPgogICAgICAgICAgPGJ1dHRvbiBjbGFzcz0iY3R4LWJ0biIgQGNsaWNrPSR7KCk9PnRoaXMuY3R4Py5hcHB1aS5zZXRNYWluTWVudUNvbGxhcHNlZCghMCl9PkNvbGxhcHNlIE1haW4gTWVudTwvYnV0dG9uPgogICAgICAgICAgPGJ1dHRvbiBjbGFzcz0iY3R4LWJ0biBzdWNjZXNzIiBAY2xpY2s9JHsoKT0+dGhpcy5jdHg/LmFwcHVpLnNldE1haW5NZW51Q29sbGFwc2VkKCExKX0+RXhwYW5kIE1haW4gTWVudTwvYnV0dG9uPgogICAgICAgICAgPGJ1dHRvbiBjbGFzcz0iY3R4LWJ0biIgQGNsaWNrPSR7KCk9PnRoaXMuY3R4Py5hcHB1aS5zZXRCcmVhZGNydW1icyhbIkRhc2hib2FyZCIsIk92ZXJ2aWV3IiwiU3RhdHMiXSl9PlNldCBCcmVhZGNydW1iczwvYnV0dG9uPgogICAgICAgICAgPGJ1dHRvbiBjbGFzcz0iY3R4LWJ0biIgQGNsaWNrPSR7KCk9PnRoaXMuY3R4Py5hcHB1aS5uYXZpZ2F0ZVRvVmlldygicHJvamVjdHMiKX0+R28gdG8gUHJvamVjdHM8L2J1dHRvbj4KICAgICAgICAgIDxidXR0b24gY2xhc3M9ImN0eC1idG4iIEBjbGljaz0keygpPT50aGlzLmN0eD8uYXBwdWkubmF2aWdhdGVUb1ZpZXcoInNldHRpbmdzIix7c2VjdGlvbjoic2VjdXJpdHkifSl9PkdvIHRvIFNldHRpbmdzL1NlY3VyaXR5PC9idXR0b24+CiAgICAgICAgICA8YnV0dG9uIGNsYXNzPSJjdHgtYnRuIiBAY2xpY2s9JHsoKT0+dGhpcy5jdHg/LmFwcHVpLmFjdGl2aXR5TG9nLmFkZCh7dHlwZToiY3VzdG9tIix1c2VyOiJEZW1vIFVzZXIiLG1lc3NhZ2U6IkJ1dHRvbiBjbGlja2VkIGZyb20gY3R4ISIsaWNvbk5hbWU6Imx1Y2lkZTptb3VzZS1wb2ludGVyLWNsaWNrIn0pfT5BZGQgQWN0aXZpdHkgRW50cnk8L2J1dHRvbj4KICAgICAgICAgIDxidXR0b24gY2xhc3M9ImN0eC1idG4iIEBjbGljaz0keygpPT50aGlzLmN0eD8uYXBwdWkuc2V0TWFpbk1lbnVCYWRnZSgidGFza3MiLDk5KX0+U2V0IFRhc2tzIEJhZGdlIHRvIDk5PC9idXR0b24+CiAgICAgICAgICA8YnV0dG9uIGNsYXNzPSJjdHgtYnRuIGRhbmdlciIgQGNsaWNrPSR7KCk9PnRoaXMuY3R4Py5hcHB1aS5jbGVhck1haW5NZW51QmFkZ2UoInRhc2tzIil9PkNsZWFyIFRhc2tzIEJhZGdlPC9idXR0b24+CiAgICAgICAgICA8YnV0dG9uIGNsYXNzPSJjdHgtYnRuIiBAY2xpY2s9JHsoKT0+dGhpcy5jdHg/LmFwcHVpLnNldENvbnRlbnRUYWJzQXV0b0hpZGUoITAsMSl9PkF1dG8taGlkZSBUYWJzICjiiaQxKTwvYnV0dG9uPgogICAgICAgICAgPGJ1dHRvbiBjbGFzcz0iY3R4LWJ0biBkYW5nZXIiIEBjbGljaz0keygpPT50aGlzLmN0eD8uYXBwdWkuc2V0Q29udGVudFRhYnNBdXRvSGlkZSghMSl9PkRpc2FibGUgQXV0by1oaWRlPC9idXR0b24+CiAgICAgICAgICA8YnV0dG9uIGNsYXNzPSJjdHgtYnRuIHN1Y2Nlc3MiIEBjbGljaz0keygpPT50aGlzLmFkZENsb3NlYWJsZVRhYigpfT5BZGQgQ2xvc2VhYmxlIFRhYjwvYnV0dG9uPgogICAgICAgIDwvZGl2PgogICAgICA8L2Rpdj4KICAgIGB9dGFiQ291bnRlcj0wO2FkZENsb3NlYWJsZVRhYigpe2lmKCF0aGlzLmN0eClyZXR1cm47dGhpcy50YWJDb3VudGVyKys7bGV0IGM9YFRhYiAke3RoaXMudGFiQ291bnRlcn1gO3RoaXMuY3R4LmFwcHVpLmFkZENvbnRlbnRUYWIoe2tleTpjLGljb25OYW1lOiJsdWNpZGU6ZmlsZSIsYWN0aW9uOigpPT5jb25zb2xlLmxvZyhgU2VsZWN0ZWQgJHtjfWApLGNsb3NlYWJsZTohMCxvbkNsb3NlOigpPT57dGhpcy5jdHg/LmFwcHVpLnJlbW92ZUNvbnRlbnRUYWIoYyl9fSl9fTtyZXR1cm4gbD1pfSkoKSxfMmE9KCgpPT57bGV0IGU9W3llKCJkZW1vLXNldHRpbmdzLXZpZXciKV0sdCxyPVtdLGksYT16ZSxuLG89W10scz1bXSxsLGM9W10sdT1bXTt2YXIgZD1jbGFzcyBleHRlbmRzIGF7c3RhdGlje2k9dGhpc31zdGF0aWN7bGV0IGg9dHlwZW9mIFN5bWJvbD09ImZ1bmN0aW9uIiYmU3ltYm9sLm1ldGFkYXRhP09iamVjdC5jcmVhdGUoYVtTeW1ib2wubWV0YWRhdGFdPz9udWxsKTp2b2lkIDA7bj1bZmUoKV0sbD1bZmUoKV0scWQodGhpcyxudWxsLG4se2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJzZWN0aW9uIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpmPT4ic2VjdGlvbiJpbiBmLGdldDpmPT5mLnNlY3Rpb24sc2V0OihmLHgpPT57Zi5zZWN0aW9uPXh9fSxtZXRhZGF0YTpofSxvLHMpLHFkKHRoaXMsbnVsbCxsLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiaGFzQ2hhbmdlcyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6Zj0+Imhhc0NoYW5nZXMiaW4gZixnZXQ6Zj0+Zi5oYXNDaGFuZ2VzLHNldDooZix4KT0+e2YuaGFzQ2hhbmdlcz14fX0sbWV0YWRhdGE6aH0sYyx1KSxxZChudWxsLHQ9e3ZhbHVlOml9LGUse2tpbmQ6ImNsYXNzIixuYW1lOmkubmFtZSxtZXRhZGF0YTpofSxudWxsLHIpLGQ9aT10LnZhbHVlLGgmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShpLFN5bWJvbC5tZXRhZGF0YSx7ZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITAsdmFsdWU6aH0pLGlsKGkscil9I2U9aWwodGhpcyxvLCJnZW5lcmFsIik7Z2V0IHNlY3Rpb24oKXtyZXR1cm4gdGhpcy4jZX1zZXQgc2VjdGlvbihoKXt0aGlzLiNlPWh9I3Q9KGlsKHRoaXMscyksaWwodGhpcyxjLCExKSk7Z2V0IGhhc0NoYW5nZXMoKXtyZXR1cm4gdGhpcy4jdH1zZXQgaGFzQ2hhbmdlcyhoKXt0aGlzLiN0PWh9YXBwdWk9aWwodGhpcyx1KTtvbkFjdGl2YXRlKGgpe3RoaXMuYXBwdWk9aC5hcHB1aSxjb25zb2xlLmxvZygiU2V0dGluZ3MgYWN0aXZhdGVkIHdpdGggcGFyYW1zOiIsaC5wYXJhbXMpLGgucGFyYW1zPy5zZWN0aW9uJiYodGhpcy5zZWN0aW9uPWgucGFyYW1zLnNlY3Rpb24pLGguYXBwdWkuc2V0U2Vjb25kYXJ5TWVudSh7aGVhZGluZzoiU2V0dGluZ3MiLGdyb3Vwczpbe25hbWU6IkFjY291bnQiLGljb25OYW1lOiJsdWNpZGU6dXNlciIsaXRlbXM6W3trZXk6ImdlbmVyYWwiLGljb25OYW1lOiJzZXR0aW5ncyIsYWN0aW9uOigpPT50aGlzLnNob3dTZWN0aW9uKCJnZW5lcmFsIil9LHtrZXk6InByb2ZpbGUiLGljb25OYW1lOiJ1c2VyIixhY3Rpb246KCk9PnRoaXMuc2hvd1NlY3Rpb24oInByb2ZpbGUiKX0se2tleToic2VjdXJpdHkiLGljb25OYW1lOiJzaGllbGQiLGFjdGlvbjooKT0+dGhpcy5zaG93U2VjdGlvbigic2VjdXJpdHkiKX1dfSx7bmFtZToiUHJlZmVyZW5jZXMiLGljb25OYW1lOiJsdWNpZGU6c2xpZGVycyIsaXRlbXM6W3trZXk6Im5vdGlmaWNhdGlvbnMiLGljb25OYW1lOiJiZWxsIixiYWRnZTozLGFjdGlvbjooKT0+dGhpcy5zaG93U2VjdGlvbigibm90aWZpY2F0aW9ucyIpfSx7a2V5OiJhcHBlYXJhbmNlIixpY29uTmFtZToicGFsZXR0ZSIsYWN0aW9uOigpPT50aGlzLnNob3dTZWN0aW9uKCJhcHBlYXJhbmNlIil9XX1dfSksaC5hcHB1aS5zZXRTZWNvbmRhcnlNZW51U2VsZWN0aW9uKHRoaXMuc2VjdGlvbiksaC5hcHB1aS5zZXRDb250ZW50VGFicyhbXSl9b25EZWFjdGl2YXRlKCl7Y29uc29sZS5sb2coIlNldHRpbmdzIGRlYWN0aXZhdGVkIiksdGhpcy5oYXNDaGFuZ2VzPSExfWNhbkRlYWN0aXZhdGUoKXtyZXR1cm4gdGhpcy5oYXNDaGFuZ2VzPyJZb3UgaGF2ZSB1bnNhdmVkIGNoYW5nZXMuIExlYXZlIGFueXdheT8iOiEwfXNob3dTZWN0aW9uKGgpe3RoaXMuc2VjdGlvbj1oLHRoaXMuYXBwdWk/LnNldFNlY29uZGFyeU1lbnVTZWxlY3Rpb24oaCl9c2ltdWxhdGVDaGFuZ2UoKXt0aGlzLmhhc0NoYW5nZXM9ITB9cmVuZGVyKCl7cmV0dXJuIENgCiAgICAgIDxzdHlsZT4KICAgICAgICA6aG9zdCB7CiAgICAgICAgICBkaXNwbGF5OiBibG9jazsKICAgICAgICAgIHBhZGRpbmc6IDQwcHg7CiAgICAgICAgICBjb2xvcjogI2EzYTNhMzsKICAgICAgICAgIGZvbnQtZmFtaWx5OiAnR2Vpc3QgU2FucycsICdJbnRlcicsIC1hcHBsZS1zeXN0ZW0sIHNhbnMtc2VyaWY7CiAgICAgICAgfQogICAgICAgIGgxIHsgY29sb3I6ICNmYWZhZmE7IGZvbnQtd2VpZ2h0OiA2MDA7IGZvbnQtc2l6ZTogMjRweDsgbWFyZ2luLWJvdHRvbTogOHB4OyB9CiAgICAgICAgcCB7IGNvbG9yOiAjNzM3MzczOyBtYXJnaW4tYm90dG9tOiAyNHB4OyB9CiAgICAgICAgLnNlY3Rpb24tbmFtZSB7CiAgICAgICAgICBiYWNrZ3JvdW5kOiByZ2JhKDI1NSwyNTUsMjU1LDAuMDUpOwogICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgcmdiYSgyNTUsMjU1LDI1NSwwLjEpOwogICAgICAgICAgYm9yZGVyLXJhZGl1czogOHB4OwogICAgICAgICAgcGFkZGluZzogMjRweDsKICAgICAgICAgIGZvbnQtc2l6ZTogMThweDsKICAgICAgICAgIGNvbG9yOiAjZmFmYWZhOwogICAgICAgICAgbWFyZ2luLWJvdHRvbTogMTZweDsKICAgICAgICB9CiAgICAgICAgLmFjdGlvbnMgewogICAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICAgIGdhcDogMTJweDsKICAgICAgICB9CiAgICAgICAgYnV0dG9uIHsKICAgICAgICAgIGJhY2tncm91bmQ6ICMzYjgyZjY7CiAgICAgICAgICBjb2xvcjogd2hpdGU7CiAgICAgICAgICBib3JkZXI6IG5vbmU7CiAgICAgICAgICBwYWRkaW5nOiA4cHggMTZweDsKICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDZweDsKICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjsKICAgICAgICAgIGZvbnQtc2l6ZTogMTRweDsKICAgICAgICB9CiAgICAgICAgYnV0dG9uOmhvdmVyIHsKICAgICAgICAgIGJhY2tncm91bmQ6ICMyNTYzZWI7CiAgICAgICAgfQogICAgICAgIC53YXJuaW5nIHsKICAgICAgICAgIGNvbG9yOiAjZmJiZjI0OwogICAgICAgICAgZm9udC1zaXplOiAxM3B4OwogICAgICAgICAgbWFyZ2luLXRvcDogMTZweDsKICAgICAgICB9CiAgICAgIDwvc3R5bGU+CiAgICAgIDxoMT5TZXR0aW5nczwvaDE+CiAgICAgIDxwPk1hbmFnZSB5b3VyIGFjY291bnQgYW5kIGFwcGxpY2F0aW9uIHByZWZlcmVuY2VzLjwvcD4KICAgICAgPGRpdiBjbGFzcz0ic2VjdGlvbi1uYW1lIj4KICAgICAgICBDdXJyZW50IHNlY3Rpb246IDxzdHJvbmc+JHt0aGlzLnNlY3Rpb259PC9zdHJvbmc+CiAgICAgIDwvZGl2PgogICAgICA8ZGl2IGNsYXNzPSJhY3Rpb25zIj4KICAgICAgICA8YnV0dG9uIEBjbGljaz0keygpPT50aGlzLnNpbXVsYXRlQ2hhbmdlKCl9Pk1ha2UgQ2hhbmdlczwvYnV0dG9uPgogICAgICA8L2Rpdj4KICAgICAgJHt0aGlzLmhhc0NoYW5nZXM/Q2A8cCBjbGFzcz0id2FybmluZyI+WW91IGhhdmUgdW5zYXZlZCBjaGFuZ2VzLiBOYXZpZ2F0aW9uIHdpbGwgcHJvbXB0IGZvciBjb25maXJtYXRpb24uPC9wPmA6IiJ9CiAgICBgfX07cmV0dXJuIGQ9aX0pKCksTDJhPSgoKT0+e2xldCBlPVt5ZSgiZGVtby1wcm9qZWN0cy12aWV3IildLHQscj1bXSxpLGE9emU7dmFyIG49Y2xhc3MgZXh0ZW5kcyBhe3N0YXRpY3tpPXRoaXN9c3RhdGlje2xldCBvPXR5cGVvZiBTeW1ib2w9PSJmdW5jdGlvbiImJlN5bWJvbC5tZXRhZGF0YT9PYmplY3QuY3JlYXRlKGFbU3ltYm9sLm1ldGFkYXRhXT8/bnVsbCk6dm9pZCAwO3FkKG51bGwsdD17dmFsdWU6aX0sZSx7a2luZDoiY2xhc3MiLG5hbWU6aS5uYW1lLG1ldGFkYXRhOm99LG51bGwsciksbj1pPXQudmFsdWUsbyYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGksU3ltYm9sLm1ldGFkYXRhLHtlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMCx2YWx1ZTpvfSksaWwoaSxyKX1vbkFjdGl2YXRlKG8pe28uYXBwdWkuc2V0U2Vjb25kYXJ5TWVudSh7aGVhZGluZzoiUHJvamVjdHMiLGdyb3Vwczpbe25hbWU6Ik15IFByb2plY3RzIixpY29uTmFtZToibHVjaWRlOmZvbGRlciIsaXRlbXM6W3trZXk6IkFjdGl2ZSIsaWNvbk5hbWU6ImZvbGRlciIsYmFkZ2U6MyxhY3Rpb246KCk9PmNvbnNvbGUubG9nKCJBY3RpdmUiKX0se2tleToiQXJjaGl2ZWQiLGljb25OYW1lOiJhcmNoaXZlIixhY3Rpb246KCk9PmNvbnNvbGUubG9nKCJBcmNoaXZlZCIpfSx7a2V5OiJTaGFyZWQiLGljb25OYW1lOiJ1c2VycyIsYmFkZ2U6MixiYWRnZVZhcmlhbnQ6Indhcm5pbmciLGFjdGlvbjooKT0+Y29uc29sZS5sb2coIlNoYXJlZCIpfV19LHtuYW1lOiJRdWljayBBY3Rpb25zIixpY29uTmFtZToibHVjaWRlOnphcCIsaXRlbXM6W3t0eXBlOiJhY3Rpb24iLGtleToiTmV3IFByb2plY3QiLGljb25OYW1lOiJsdWNpZGU6Zm9sZGVyUGx1cyIsYWN0aW9uOigpPT5hbGVydCgiQ3JlYXRlIG5ldyBwcm9qZWN0Iil9LHt0eXBlOiJhY3Rpb24iLGtleToiSW1wb3J0IixpY29uTmFtZToibHVjaWRlOmRvd25sb2FkIixhY3Rpb246KCk9PmFsZXJ0KCJJbXBvcnQgcHJvamVjdCIpfSx7dHlwZToiZGl2aWRlciJ9LHt0eXBlOiJsaW5rIixrZXk6IlRlbXBsYXRlcyIsaWNvbk5hbWU6Imx1Y2lkZTpsYXlvdXRUZW1wbGF0ZSIsaHJlZjoiaHR0cHM6Ly90ZW1wbGF0ZXMuZXhhbXBsZS5jb20ifV19XX0pLG8uYXBwdWkuc2V0Q29udGVudFRhYnMoW3trZXk6IkdyaWQiLGljb25OYW1lOiJsdWNpZGU6Z3JpZCIsYWN0aW9uOigpPT5jb25zb2xlLmxvZygiR3JpZCB2aWV3Iil9LHtrZXk6Ikxpc3QiLGljb25OYW1lOiJsdWNpZGU6bGlzdCIsYWN0aW9uOigpPT5jb25zb2xlLmxvZygiTGlzdCB2aWV3Iil9LHtrZXk6IkJvYXJkIixpY29uTmFtZToibHVjaWRlOmthbmJhbiIsYWN0aW9uOigpPT5jb25zb2xlLmxvZygiQm9hcmQgdmlldyIpfV0pfXJlbmRlcigpe3JldHVybiBDYAogICAgICA8c3R5bGU+CiAgICAgICAgOmhvc3QgewogICAgICAgICAgZGlzcGxheTogYmxvY2s7CiAgICAgICAgICBwYWRkaW5nOiA0MHB4OwogICAgICAgICAgY29sb3I6ICNhM2EzYTM7CiAgICAgICAgICBmb250LWZhbWlseTogJ0dlaXN0IFNhbnMnLCAnSW50ZXInLCAtYXBwbGUtc3lzdGVtLCBzYW5zLXNlcmlmOwogICAgICAgIH0KICAgICAgICBoMSB7IGNvbG9yOiAjZmFmYWZhOyBmb250LXdlaWdodDogNjAwOyBmb250LXNpemU6IDI0cHg7IG1hcmdpbi1ib3R0b206IDI0cHg7IH0KICAgICAgICAucHJvamVjdHMgewogICAgICAgICAgZGlzcGxheTogZ3JpZDsKICAgICAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KDIsIDFmcik7CiAgICAgICAgICBnYXA6IDE2cHg7CiAgICAgICAgfQogICAgICAgIC5wcm9qZWN0IHsKICAgICAgICAgIGJhY2tncm91bmQ6IHJnYmEoMjU1LDI1NSwyNTUsMC4wMyk7CiAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCByZ2JhKDI1NSwyNTUsMjU1LDAuMDgpOwogICAgICAgICAgYm9yZGVyLXJhZGl1czogOHB4OwogICAgICAgICAgcGFkZGluZzogMjBweDsKICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjsKICAgICAgICAgIHRyYW5zaXRpb246IGJvcmRlci1jb2xvciAwLjJzOwogICAgICAgIH0KICAgICAgICAucHJvamVjdDpob3ZlciB7CiAgICAgICAgICBib3JkZXItY29sb3I6IHJnYmEoMjU1LDI1NSwyNTUsMC4yKTsKICAgICAgICB9CiAgICAgICAgLnByb2plY3QgaDMgeyBjb2xvcjogI2ZhZmFmYTsgbWFyZ2luOiAwIDAgOHB4IDA7IGZvbnQtc2l6ZTogMTZweDsgfQogICAgICAgIC5wcm9qZWN0IHAgeyBjb2xvcjogIzczNzM3MzsgbWFyZ2luOiAwOyBmb250LXNpemU6IDEzcHg7IH0KICAgICAgICAuYmFkZ2UgewogICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrOwogICAgICAgICAgYmFja2dyb3VuZDogIzE0NTMyZDsKICAgICAgICAgIGNvbG9yOiAjNGFkZTgwOwogICAgICAgICAgcGFkZGluZzogMnB4IDhweDsKICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDlweDsKICAgICAgICAgIGZvbnQtc2l6ZTogMTFweDsKICAgICAgICAgIG1hcmdpbi1sZWZ0OiA4cHg7CiAgICAgICAgfQogICAgICA8L3N0eWxlPgogICAgICA8aDE+UHJvamVjdHM8L2gxPgogICAgICA8ZGl2IGNsYXNzPSJwcm9qZWN0cyI+CiAgICAgICAgPGRpdiBjbGFzcz0icHJvamVjdCI+CiAgICAgICAgICA8aDM+RnJvbnRlbmQgQXBwIDxzcGFuIGNsYXNzPSJiYWRnZSI+QWN0aXZlPC9zcGFuPjwvaDM+CiAgICAgICAgICA8cD5SZWFjdC1iYXNlZCBkYXNoYm9hcmQgYXBwbGljYXRpb248L3A+CiAgICAgICAgPC9kaXY+CiAgICAgICAgPGRpdiBjbGFzcz0icHJvamVjdCI+CiAgICAgICAgICA8aDM+QVBJIFNlcnZlciA8c3BhbiBjbGFzcz0iYmFkZ2UiPkFjdGl2ZTwvc3Bhbj48L2gzPgogICAgICAgICAgPHA+Tm9kZS5qcyBSRVNUIEFQSSBiYWNrZW5kPC9wPgogICAgICAgIDwvZGl2PgogICAgICAgIDxkaXYgY2xhc3M9InByb2plY3QiPgogICAgICAgICAgPGgzPk1vYmlsZSBBcHAgPHNwYW4gY2xhc3M9ImJhZGdlIj5BY3RpdmU8L3NwYW4+PC9oMz4KICAgICAgICAgIDxwPlJlYWN0IE5hdGl2ZSBpT1MvQW5kcm9pZCBhcHA8L3A+CiAgICAgICAgPC9kaXY+CiAgICAgICAgPGRpdiBjbGFzcz0icHJvamVjdCI+CiAgICAgICAgICA8aDM+RG9jdW1lbnRhdGlvbjwvaDM+CiAgICAgICAgICA8cD5UZWNobmljYWwgZG9jdW1lbnRhdGlvbiBzaXRlPC9wPgogICAgICAgIDwvZGl2PgogICAgICA8L2Rpdj4KICAgIGB9fTtyZXR1cm4gbj1pfSkoKSxBMmE9KCgpPT57bGV0IGU9W3llKCJkZW1vLXRhc2tzLXZpZXciKV0sdCxyPVtdLGksYT16ZTt2YXIgbj1jbGFzcyBleHRlbmRzIGF7c3RhdGlje2k9dGhpc31zdGF0aWN7bGV0IG89dHlwZW9mIFN5bWJvbD09ImZ1bmN0aW9uIiYmU3ltYm9sLm1ldGFkYXRhP09iamVjdC5jcmVhdGUoYVtTeW1ib2wubWV0YWRhdGFdPz9udWxsKTp2b2lkIDA7cWQobnVsbCx0PXt2YWx1ZTppfSxlLHtraW5kOiJjbGFzcyIsbmFtZTppLm5hbWUsbWV0YWRhdGE6b30sbnVsbCxyKSxuPWk9dC52YWx1ZSxvJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoaSxTeW1ib2wubWV0YWRhdGEse2VudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwLHZhbHVlOm99KSxpbChpLHIpfW9uQWN0aXZhdGUobyl7by5hcHB1aS5zZXRTZWNvbmRhcnlNZW51KHtoZWFkaW5nOiJUYXNrcyIsZ3JvdXBzOlt7bmFtZToiVmlld3MiLGljb25OYW1lOiJsdWNpZGU6ZXllIixpdGVtczpbe2tleToiQWxsIFRhc2tzIixpY29uTmFtZToibGlzdCIsYmFkZ2U6MTIsYWN0aW9uOigpPT5jb25zb2xlLmxvZygiQWxsIil9LHtrZXk6IlRvZGF5IixpY29uTmFtZToiY2FsZW5kYXIiLGJhZGdlOjMsYWN0aW9uOigpPT5jb25zb2xlLmxvZygiVG9kYXkiKX0se2tleToiVXBjb21pbmciLGljb25OYW1lOiJjbG9jayIsYWN0aW9uOigpPT5jb25zb2xlLmxvZygiVXBjb21pbmciKX0se2tleToiQ29tcGxldGVkIixpY29uTmFtZToiY2hlY2tDaXJjbGUiLGFjdGlvbjooKT0+Y29uc29sZS5sb2coIkNvbXBsZXRlZCIpfV19LHtuYW1lOiJGaWx0ZXJzIixpY29uTmFtZToibHVjaWRlOmZpbHRlciIsaXRlbXM6W3t0eXBlOiJoZWFkZXIiLGxhYmVsOiJQcmlvcml0eSJ9LHt0eXBlOiJtdWx0aUZpbHRlciIsa2V5OiJQcmlvcml0eSIsaWNvbk5hbWU6Imx1Y2lkZTpmbGFnIixvcHRpb25zOlt7a2V5OiJoaWdoIixsYWJlbDoiSGlnaCIsY2hlY2tlZDohMCxpY29uTmFtZToibHVjaWRlOmFsZXJ0Q2lyY2xlIn0se2tleToibWVkaXVtIixsYWJlbDoiTWVkaXVtIixjaGVja2VkOiEwLGljb25OYW1lOiJsdWNpZGU6bWludXNDaXJjbGUifSx7a2V5OiJsb3ciLGxhYmVsOiJMb3ciLGNoZWNrZWQ6ITEsaWNvbk5hbWU6Imx1Y2lkZTpjaXJjbGUifV0sb25DaGFuZ2U6cz0+Y29uc29sZS5sb2coIlByaW9yaXR5IGZpbHRlcjoiLHMpfSx7dHlwZToiZGl2aWRlciJ9LHt0eXBlOiJoZWFkZXIiLGxhYmVsOiJPcHRpb25zIn0se3R5cGU6ImZpbHRlciIsa2V5OiJTaG93IFN1YnRhc2tzIixpY29uTmFtZToibHVjaWRlOmxpc3RUcmVlIixhY3RpdmU6ITAsb25Ub2dnbGU6cz0+Y29uc29sZS5sb2coIlNob3cgc3VidGFza3M6IixzKX0se3R5cGU6ImZpbHRlciIsa2V5OiJTaG93IENvbXBsZXRlZCIsaWNvbk5hbWU6Imx1Y2lkZTpjaGVja1NxdWFyZSIsYWN0aXZlOiExLG9uVG9nZ2xlOnM9PmNvbnNvbGUubG9nKCJTaG93IGNvbXBsZXRlZDoiLHMpfV19LHtuYW1lOiJBY3Rpb25zIixpY29uTmFtZToibHVjaWRlOnphcCIsaXRlbXM6W3t0eXBlOiJhY3Rpb24iLGtleToiQWRkIFRhc2siLGljb25OYW1lOiJsdWNpZGU6cGx1cyIsYWN0aW9uOigpPT5hbGVydCgiQWRkIG5ldyB0YXNrIil9LHt0eXBlOiJhY3Rpb24iLGtleToiSW1wb3J0IFRhc2tzIixpY29uTmFtZToibHVjaWRlOnVwbG9hZCIsYWN0aW9uOigpPT5hbGVydCgiSW1wb3J0IHRhc2tzIil9LHt0eXBlOiJkaXZpZGVyIn0se3R5cGU6ImFjdGlvbiIsa2V5OiJDbGVhciBDb21wbGV0ZWQiLGljb25OYW1lOiJsdWNpZGU6dHJhc2gyIix2YXJpYW50OiJkYW5nZXIiLGNvbmZpcm1NZXNzYWdlOiJEZWxldGUgYWxsIGNvbXBsZXRlZCB0YXNrcz8iLGFjdGlvbjooKT0+YWxlcnQoIkNsZWFyZWQgY29tcGxldGVkIHRhc2tzIil9XX1dfSksby5hcHB1aS5zZXRDb250ZW50VGFicyhbe2tleToiTGlzdCIsaWNvbk5hbWU6Imx1Y2lkZTpsaXN0IixhY3Rpb246KCk9PmNvbnNvbGUubG9nKCJMaXN0Iil9LHtrZXk6IkNhbGVuZGFyIixpY29uTmFtZToibHVjaWRlOmNhbGVuZGFyIixhY3Rpb246KCk9PmNvbnNvbGUubG9nKCJDYWxlbmRhciIpfV0pfXJlbmRlcigpe3JldHVybiBDYAogICAgICA8c3R5bGU+CiAgICAgICAgOmhvc3QgewogICAgICAgICAgZGlzcGxheTogYmxvY2s7CiAgICAgICAgICBwYWRkaW5nOiA0MHB4OwogICAgICAgICAgY29sb3I6ICNhM2EzYTM7CiAgICAgICAgICBmb250LWZhbWlseTogJ0dlaXN0IFNhbnMnLCAnSW50ZXInLCAtYXBwbGUtc3lzdGVtLCBzYW5zLXNlcmlmOwogICAgICAgIH0KICAgICAgICBoMSB7IGNvbG9yOiAjZmFmYWZhOyBmb250LXdlaWdodDogNjAwOyBmb250LXNpemU6IDI0cHg7IG1hcmdpbi1ib3R0b206IDI0cHg7IH0KICAgICAgICAudGFzay1saXN0IHsKICAgICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICAgICAgZ2FwOiA4cHg7CiAgICAgICAgfQogICAgICAgIC50YXNrIHsKICAgICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgICAgZ2FwOiAxMnB4OwogICAgICAgICAgYmFja2dyb3VuZDogcmdiYSgyNTUsMjU1LDI1NSwwLjAzKTsKICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIHJnYmEoMjU1LDI1NSwyNTUsMC4wOCk7CiAgICAgICAgICBib3JkZXItcmFkaXVzOiA4cHg7CiAgICAgICAgICBwYWRkaW5nOiAxMnB4IDE2cHg7CiAgICAgICAgfQogICAgICAgIC5jaGVja2JveCB7CiAgICAgICAgICB3aWR0aDogMThweDsKICAgICAgICAgIGhlaWdodDogMThweDsKICAgICAgICAgIGJvcmRlcjogMnB4IHNvbGlkICM1MjUyNTI7CiAgICAgICAgICBib3JkZXItcmFkaXVzOiA0cHg7CiAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICAgICAgfQogICAgICAgIC50YXNrLXRleHQgeyBjb2xvcjogI2ZhZmFmYTsgZmxleDogMTsgfQogICAgICAgIC5kdWUtZGF0ZSB7IGNvbG9yOiAjNzM3MzczOyBmb250LXNpemU6IDEycHg7IH0KICAgICAgICAucHJpb3JpdHkgewogICAgICAgICAgcGFkZGluZzogMnB4IDhweDsKICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDRweDsKICAgICAgICAgIGZvbnQtc2l6ZTogMTFweDsKICAgICAgICB9CiAgICAgICAgLnByaW9yaXR5LmhpZ2ggeyBiYWNrZ3JvdW5kOiAjNDUwYTBhOyBjb2xvcjogI2Y4NzE3MTsgfQogICAgICAgIC5wcmlvcml0eS5tZWRpdW0geyBiYWNrZ3JvdW5kOiAjNDUxYTAzOyBjb2xvcjogI2ZiYmYyNDsgfQogICAgICA8L3N0eWxlPgogICAgICA8aDE+VGFza3M8L2gxPgogICAgICA8ZGl2IGNsYXNzPSJ0YXNrLWxpc3QiPgogICAgICAgIDxkaXYgY2xhc3M9InRhc2siPgogICAgICAgICAgPGRpdiBjbGFzcz0iY2hlY2tib3giPjwvZGl2PgogICAgICAgICAgPHNwYW4gY2xhc3M9InRhc2stdGV4dCI+UmV2aWV3IHB1bGwgcmVxdWVzdCAjNDI8L3NwYW4+CiAgICAgICAgICA8c3BhbiBjbGFzcz0iZHVlLWRhdGUiPlRvZGF5PC9zcGFuPgogICAgICAgICAgPHNwYW4gY2xhc3M9InByaW9yaXR5IGhpZ2giPkhpZ2g8L3NwYW4+CiAgICAgICAgPC9kaXY+CiAgICAgICAgPGRpdiBjbGFzcz0idGFzayI+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJjaGVja2JveCI+PC9kaXY+CiAgICAgICAgICA8c3BhbiBjbGFzcz0idGFzay10ZXh0Ij5VcGRhdGUgZG9jdW1lbnRhdGlvbjwvc3Bhbj4KICAgICAgICAgIDxzcGFuIGNsYXNzPSJkdWUtZGF0ZSI+VG9tb3Jyb3c8L3NwYW4+CiAgICAgICAgICA8c3BhbiBjbGFzcz0icHJpb3JpdHkgbWVkaXVtIj5NZWRpdW08L3NwYW4+CiAgICAgICAgPC9kaXY+CiAgICAgICAgPGRpdiBjbGFzcz0idGFzayI+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJjaGVja2JveCI+PC9kaXY+CiAgICAgICAgICA8c3BhbiBjbGFzcz0idGFzay10ZXh0Ij5Xcml0ZSB1bml0IHRlc3RzPC9zcGFuPgogICAgICAgICAgPHNwYW4gY2xhc3M9ImR1ZS1kYXRlIj5EZWMgMjA8L3NwYW4+CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGl2PgogICAgYH19O3JldHVybiBuPWl9KSgpLEFscj0oKT0+e2xldCBlPXticmFuZGluZzp7bG9nb0ljb246Imx1Y2lkZTpib3giLGxvZ29UZXh0OiJBY21lIEFwcCJ9LGFwcEJhcjp7bWVudUl0ZW1zOlt7bmFtZToiRmlsZSIsYWN0aW9uOmFzeW5jKCk9Pnt9LHN1Ym1lbnU6W3tuYW1lOiJOZXcgUHJvamVjdCIsc2hvcnRjdXQ6IkNtZCtOIixpY29uTmFtZToiZmlsZVBsdXMiLGFjdGlvbjphc3luYygpPT5jb25zb2xlLmxvZygiTmV3Iil9LHtuYW1lOiJPcGVuLi4uIixzaG9ydGN1dDoiQ21kK08iLGljb25OYW1lOiJmb2xkZXJPcGVuIixhY3Rpb246YXN5bmMoKT0+Y29uc29sZS5sb2coIk9wZW4iKX0se25hbWU6IlJlY2VudCBQcm9qZWN0cyIsYWN0aW9uOmFzeW5jKCk9Pnt9LHN1Ym1lbnU6W3tuYW1lOiJteS1hcHAiLGFjdGlvbjphc3luYygpPT5jb25zb2xlLmxvZygiT3BlbiBteS1hcHAiKX0se25hbWU6ImNvbXBvbmVudC1saWIiLGFjdGlvbjphc3luYygpPT5jb25zb2xlLmxvZygiT3BlbiBjb21wb25lbnQtbGliIil9XX0se2RpdmlkZXI6ITB9LHtuYW1lOiJTYXZlIEFsbCIsc2hvcnRjdXQ6IkNtZCtTIixpY29uTmFtZToic2F2ZSIsYWN0aW9uOmFzeW5jKCk9PmNvbnNvbGUubG9nKCJTYXZlIil9XX0se25hbWU6IkVkaXQiLGFjdGlvbjphc3luYygpPT57fSxzdWJtZW51Olt7bmFtZToiVW5kbyIsc2hvcnRjdXQ6IkNtZCtaIixpY29uTmFtZToidW5kbyIsYWN0aW9uOmFzeW5jKCk9PmNvbnNvbGUubG9nKCJVbmRvIil9LHtuYW1lOiJSZWRvIixzaG9ydGN1dDoiQ21kK1NoaWZ0K1oiLGljb25OYW1lOiJyZWRvIixhY3Rpb246YXN5bmMoKT0+Y29uc29sZS5sb2coIlJlZG8iKX0se2RpdmlkZXI6ITB9LHtuYW1lOiJDdXQiLHNob3J0Y3V0OiJDbWQrWCIsaWNvbk5hbWU6InNjaXNzb3JzIixhY3Rpb246YXN5bmMoKT0+Y29uc29sZS5sb2coIkN1dCIpfSx7bmFtZToiQ29weSIsc2hvcnRjdXQ6IkNtZCtDIixpY29uTmFtZToiY29weSIsYWN0aW9uOmFzeW5jKCk9PmNvbnNvbGUubG9nKCJDb3B5Iil9LHtuYW1lOiJQYXN0ZSIsc2hvcnRjdXQ6IkNtZCtWIixpY29uTmFtZToiY2xpcGJvYXJkIixhY3Rpb246YXN5bmMoKT0+Y29uc29sZS5sb2coIlBhc3RlIil9XX0se25hbWU6IlZpZXciLGFjdGlvbjphc3luYygpPT57fSxzdWJtZW51Olt7bmFtZToiVG9nZ2xlIFNpZGViYXIiLHNob3J0Y3V0OiJDbWQrQiIsYWN0aW9uOmFzeW5jKCk9PmNvbnNvbGUubG9nKCJUb2dnbGUgc2lkZWJhciIpfSx7bmFtZToiVG9nZ2xlIEFjdGl2aXR5IExvZyIsc2hvcnRjdXQ6IkNtZCtTaGlmdCtBIixhY3Rpb246YXN5bmMoKT0+Y29uc29sZS5sb2coIlRvZ2dsZSBhY3Rpdml0eSIpfV19LHtuYW1lOiJIZWxwIixhY3Rpb246YXN5bmMoKT0+e30sc3VibWVudTpbe25hbWU6IkRvY3VtZW50YXRpb24iLGljb25OYW1lOiJib29rIixhY3Rpb246YXN5bmMoKT0+Y29uc29sZS5sb2coIkRvY3MiKX0se25hbWU6IktleWJvYXJkIFNob3J0Y3V0cyIsaWNvbk5hbWU6ImtleWJvYXJkIixzaG9ydGN1dDoiQ21kKy8iLGFjdGlvbjphc3luYygpPT5jb25zb2xlLmxvZygiU2hvcnRjdXRzIil9LHtkaXZpZGVyOiEwfSx7bmFtZToiQWJvdXQiLGljb25OYW1lOiJpbmZvIixhY3Rpb246YXN5bmMoKT0+Y29uc29sZS5sb2coIkFib3V0Iil9XX1dLGJyZWFkY3J1bWJzOiJEYXNoYm9hcmQiLHNob3dXaW5kb3dDb250cm9sczohMCxzaG93U2VhcmNoOiEwLHVzZXI6e25hbWU6IkphbmUgU21pdGgiLGVtYWlsOiJqYW5lLnNtaXRoQGV4YW1wbGUuY29tIixzdGF0dXM6Im9ubGluZSJ9LHByb2ZpbGVNZW51SXRlbXM6W3tuYW1lOiJQcm9maWxlIixpY29uTmFtZToidXNlciIsYWN0aW9uOmFzeW5jKCk9PmNvbnNvbGUubG9nKCJQcm9maWxlIil9LHtuYW1lOiJBY2NvdW50IFNldHRpbmdzIixpY29uTmFtZToic2V0dGluZ3MiLGFjdGlvbjphc3luYygpPT5jb25zb2xlLmxvZygiU2V0dGluZ3MiKX0se2RpdmlkZXI6ITB9LHtuYW1lOiJIZWxwICYgU3VwcG9ydCIsaWNvbk5hbWU6ImhlbHBDaXJjbGUiLGFjdGlvbjphc3luYygpPT5jb25zb2xlLmxvZygiSGVscCIpfSx7ZGl2aWRlcjohMH0se25hbWU6IlNpZ24gT3V0IixpY29uTmFtZToibG9nT3V0IixhY3Rpb246YXN5bmMoKT0+Y29uc29sZS5sb2coIlNpZ24gb3V0Iil9XX0sdmlld3M6W3tpZDoiZGFzaGJvYXJkIixuYW1lOiJEYXNoYm9hcmQiLGljb25OYW1lOiJsdWNpZGU6aG9tZSIsY29udGVudDoiZGVtby1kYXNoYm9hcmQtdmlldyIscm91dGU6ImRhc2hib2FyZCJ9LHtpZDoicHJvamVjdHMiLG5hbWU6IlByb2plY3RzIixpY29uTmFtZToibHVjaWRlOmZvbGRlciIsY29udGVudDoiZGVtby1wcm9qZWN0cy12aWV3Iixyb3V0ZToicHJvamVjdHMiLGJhZGdlOjN9LHtpZDoidGFza3MiLG5hbWU6IlRhc2tzIixpY29uTmFtZToibHVjaWRlOmNoZWNrU3F1YXJlIixjb250ZW50OiJkZW1vLXRhc2tzLXZpZXciLHJvdXRlOiJ0YXNrcyIsYmFkZ2U6MTJ9LHtpZDoic2V0dGluZ3MiLG5hbWU6IlNldHRpbmdzIixpY29uTmFtZToibHVjaWRlOnNldHRpbmdzIixjb250ZW50OiJkZW1vLXNldHRpbmdzLXZpZXciLHJvdXRlOiJzZXR0aW5ncy86c2VjdGlvbj8ifV0sbWFpbk1lbnU6e3NlY3Rpb25zOlt7bmFtZToiTWFpbiIsdmlld3M6WyJkYXNoYm9hcmQiXX0se25hbWU6IldvcmtzcGFjZSIsdmlld3M6WyJwcm9qZWN0cyIsInRhc2tzIl19XSxib3R0b21JdGVtczpbInNldHRpbmdzIl19LGRlZmF1bHRWaWV3OiJkYXNoYm9hcmQiLGJvdHRvbUJhcjp7dmlzaWJsZTohMCx3aWRnZXRzOlt7aWQ6InN0YXR1cyIsaWNvbk5hbWU6Imx1Y2lkZTphY3Rpdml0eSIsbGFiZWw6IlN5c3RlbSBPbmxpbmUiLHN0YXR1czoic3VjY2VzcyIsdG9vbHRpcDoiQWxsIHN5c3RlbXMgb3BlcmF0aW9uYWwiLG9uQ2xpY2s6KCk9PmNvbnNvbGUubG9nKCJTdGF0dXMgY2xpY2tlZCIpfSx7aWQ6Im5vdGlmaWNhdGlvbnMiLGljb25OYW1lOiJsdWNpZGU6YmVsbCIsbGFiZWw6IjMgbm90aWZpY2F0aW9ucyIsc3RhdHVzOiJ3YXJuaW5nIix0b29sdGlwOiJZb3UgaGF2ZSB1bnJlYWQgbm90aWZpY2F0aW9ucyIsb25DbGljazooKT0+Y29uc29sZS5sb2coIk5vdGlmaWNhdGlvbnMgY2xpY2tlZCIpfSx7aWQ6InZlcnNpb24iLGljb25OYW1lOiJsdWNpZGU6Z2l0QnJhbmNoIixsYWJlbDoidjEuMi4zIixwb3NpdGlvbjoicmlnaHQiLHRvb2x0aXA6IkN1cnJlbnQgdmVyc2lvbiJ9XSxhY3Rpb25zOlt7aWQ6InRlcm1pbmFsIixpY29uTmFtZToibHVjaWRlOnRlcm1pbmFsIix0b29sdGlwOiJPcGVuIFRlcm1pbmFsIixwb3NpdGlvbjoicmlnaHQiLG9uQ2xpY2s6KCk9PmNvbnNvbGUubG9nKCJUZXJtaW5hbCBjbGlja2VkIil9XX0sb25WaWV3Q2hhbmdlOihpLGEpPT57Y29uc29sZS5sb2coYFZpZXcgY2hhbmdlZCB0bzogJHtpfSAoJHthLm5hbWV9KWApfSxvblNlYXJjaDppPT57Y29uc29sZS5sb2coIlNlYXJjaCBxdWVyeToiLGkpfX0sdD1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTt0LmNsYXNzTmFtZT0iZGVtby1jb250YWluZXIiLHQuc3R5bGUuY3NzVGV4dD0icG9zaXRpb246IGFic29sdXRlOyB0b3A6IDA7IGxlZnQ6IDA7IGhlaWdodDogMTAwJTsgd2lkdGg6IDEwMCU7IG92ZXJmbG93OiBoaWRkZW47IjtsZXQgcj1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkZWVzLWFwcHVpIik7cmV0dXJuIHQuYXBwZW5kQ2hpbGQociksc2V0VGltZW91dChhc3luYygpPT57YXdhaXQgci51cGRhdGVDb21wbGV0ZSxyLmNvbmZpZ3VyZShlKSxzZXRUaW1lb3V0KCgpPT57ci5hY3Rpdml0eUxvZy5hZGRNYW55KFt7dHlwZToibG9naW4iLHVzZXI6IkphbmUgU21pdGgiLG1lc3NhZ2U6ImxvZ2dlZCBpbiBmcm9tIENocm9tZSBvbiBtYWNPUyJ9LHt0eXBlOiJjcmVhdGUiLHVzZXI6IkphbmUgU21pdGgiLG1lc3NhZ2U6J2NyZWF0ZWQgcHJvamVjdCAiRnJvbnRlbmQgQXBwIid9LHt0eXBlOiJ1cGRhdGUiLHVzZXI6IkpvaG4gRG9lIixtZXNzYWdlOiJ1cGRhdGVkIEFQSSBkb2N1bWVudGF0aW9uIn0se3R5cGU6InZpZXciLHVzZXI6IkphbmUgU21pdGgiLG1lc3NhZ2U6InZpZXdlZCBkYXNoYm9hcmQgYW5hbHl0aWNzIn0se3R5cGU6ImRlbGV0ZSIsdXNlcjoiQWRtaW4iLG1lc3NhZ2U6InJlbW92ZWQgZGVwcmVjYXRlZCBlbmRwb2ludCJ9LHt0eXBlOiJjdXN0b20iLHVzZXI6IlN5c3RlbSIsbWVzc2FnZToic2NoZWR1bGVkIGJhY2t1cCBjb21wbGV0ZWQiLGljb25OYW1lOiJsdWNpZGU6ZGF0YWJhc2UifV0pfSw1MDApLHIudmlld0NoYW5nZWQkLnN1YnNjcmliZShpPT57Y29uc29sZS5sb2coIlZpZXcgY2hhbmdlZCBldmVudDoiLGkpLHIuc2V0QnJlYWRjcnVtYnMoaS52aWV3Lm5hbWUpfSksci52aWV3TGlmZWN5Y2xlJC5zdWJzY3JpYmUoaT0+e2NvbnNvbGUubG9nKCJMaWZlY3ljbGUgZXZlbnQ6IixpLnR5cGUsaS52aWV3SWQpfSksc2V0VGltZW91dCgoKT0+e3Iuc2V0TWFpbk1lbnVCYWRnZSgidGFza3MiLDE1KSxyLmFjdGl2aXR5TG9nLmFkZCh7dHlwZToidXBkYXRlIix1c2VyOiJTeXN0ZW0iLG1lc3NhZ2U6Im5ldyB0YXNrcyBhZGRlZCJ9KX0sNWUzKX0sMCksQ2AKICAgIDxkZWVzLWRlbW93cmFwcGVyPgogICAgICAke3R9CiAgICA8L2RlZXMtZGVtb3dyYXBwZXI+CiAgYH19KTt2YXIgZmIsSTZlPXAoKCk9Pnt4ZSgpO2ZiPWNsYXNze3ZpZXdzPW5ldyBNYXA7aW5zdGFuY2VzPW5ldyBNYXA7Y3VycmVudFZpZXdJZD1udWxsO2FwcHVpPW51bGw7c2V0QXBwdWlSZWYodCl7dGhpcy5hcHB1aT10fXJlZ2lzdGVyKHQpe3RoaXMudmlld3MuaGFzKHQuaWQpJiZjb25zb2xlLndhcm4oYFZpZXcgd2l0aCBpZCAiJHt0LmlkfSIgYWxyZWFkeSByZWdpc3RlcmVkLiBPdmVyd3JpdGluZy5gKSx0aGlzLnZpZXdzLnNldCh0LmlkLHQpfXJlZ2lzdGVyQWxsKHQpe3QuZm9yRWFjaChyPT50aGlzLnJlZ2lzdGVyKHIpKX1nZXQodCl7cmV0dXJuIHRoaXMudmlld3MuZ2V0KHQpfWdldFZpZXdJZHMoKXtyZXR1cm4gQXJyYXkuZnJvbSh0aGlzLnZpZXdzLmtleXMoKSl9Z2V0QWxsKCl7cmV0dXJuIEFycmF5LmZyb20odGhpcy52aWV3cy52YWx1ZXMoKSl9Z2V0Um91dGUodCl7bGV0IHI9dGhpcy52aWV3cy5nZXQodCk7cmV0dXJuIHI/LnJvdXRlfHxyPy5pZHx8IiJ9ZmluZEJ5Um91dGUodCl7Zm9yKGxldCByIG9mIHRoaXMudmlld3MudmFsdWVzKCkpe2xldCBpPXIucm91dGV8fHIuaWQsYT10aGlzLm1hdGNoUm91dGUoaSx0KTtpZihhIT09bnVsbClyZXR1cm57dmlldzpyLHBhcmFtczphfX19bWF0Y2hSb3V0ZSh0LHIpe2xldCBpPXQuc3BsaXQoIi8iKSxhPXIuc3BsaXQoIi8iKTtpZihpLmxlbmd0aD4wJiZpW2kubGVuZ3RoLTFdLmVuZHNXaXRoKCI/Iikpe2lmKGEubGVuZ3RoPGkubGVuZ3RoLTF8fGEubGVuZ3RoPmkubGVuZ3RoKXJldHVybiBudWxsfWVsc2UgaWYoaS5sZW5ndGghPT1hLmxlbmd0aClyZXR1cm4gbnVsbDtsZXQgbz17fTtmb3IobGV0IHM9MDtzPGkubGVuZ3RoO3MrKyl7bGV0IGw9aVtzXSxjPWwuZW5kc1dpdGgoIj8iKTtpZihjJiYobD1sLnNsaWNlKDAsLTEpKSxsLnN0YXJ0c1dpdGgoIjoiKSl7bGV0IHU9bC5zbGljZSgxKTtpZihhW3NdIT09dm9pZCAwKW9bdV09YVtzXTtlbHNlIGlmKCFjKXJldHVybiBudWxsfWVsc2UgaWYoYVtzXSE9PWwpcmV0dXJuIG51bGx9cmV0dXJuIG99YXN5bmMgY2FuTGVhdmVDdXJyZW50Vmlldygpe2lmKCF0aGlzLmN1cnJlbnRWaWV3SWQpcmV0dXJuITA7bGV0IHQ9dGhpcy5pbnN0YW5jZXMuZ2V0KHRoaXMuY3VycmVudFZpZXdJZCk7aWYoIXQpcmV0dXJuITA7bGV0IHI9dDtyZXR1cm4gdHlwZW9mIHIuY2FuRGVhY3RpdmF0ZT09ImZ1bmN0aW9uIj9hd2FpdCByLmNhbkRlYWN0aXZhdGUoKTohMH1hc3luYyBhY3RpdmF0ZVZpZXcodCxyLGkpe2xldCBhPXRoaXMudmlld3MuZ2V0KHQpO2lmKCFhKXJldHVybiBjb25zb2xlLmVycm9yKGBWaWV3ICIke3R9IiBub3QgZm91bmQgaW4gcmVnaXN0cnlgKSxudWxsO2xldCBuPWEuY2FjaGUhPT0hMTt0aGlzLmN1cnJlbnRWaWV3SWQmJnRoaXMuY3VycmVudFZpZXdJZCE9PXQmJmF3YWl0IHRoaXMuZGVhY3RpdmF0ZVZpZXcodGhpcy5jdXJyZW50Vmlld0lkKTtsZXQgbz1uP3RoaXMuaW5zdGFuY2VzLmdldCh0KTp2b2lkIDA7aWYobylvLnN0eWxlLmRpc3BsYXk9IiI7ZWxzZXtpZihvPWF3YWl0IHRoaXMuY3JlYXRlVmlld0VsZW1lbnQoYSksIW8pcmV0dXJuIGNvbnNvbGUuZXJyb3IoYEZhaWxlZCB0byBjcmVhdGUgZWxlbWVudCBmb3IgdmlldyAiJHt0fSJgKSxudWxsO3IuYXBwZW5kQ2hpbGQobyksbiYmdGhpcy5pbnN0YW5jZXMuc2V0KHQsbyl9cmV0dXJuIHRoaXMuY3VycmVudFZpZXdJZD10LGF3YWl0IHRoaXMuY2FsbE9uQWN0aXZhdGUobyx0LGkpLG99YXN5bmMgZGVhY3RpdmF0ZVZpZXcodCl7bGV0IHI9dGhpcy5pbnN0YW5jZXMuZ2V0KHQpO2lmKCFyKXJldHVybjtsZXQgaT1yO3R5cGVvZiBpLm9uRGVhY3RpdmF0ZT09ImZ1bmN0aW9uIiYmYXdhaXQgaS5vbkRlYWN0aXZhdGUoKSxyLnN0eWxlLmRpc3BsYXk9Im5vbmUifWFzeW5jIGNyZWF0ZVZpZXdFbGVtZW50KHQpe2xldCByPXQuY29udGVudDtpZih0eXBlb2Ygcj09ImZ1bmN0aW9uIiYmIShyLnByb3RvdHlwZSBpbnN0YW5jZW9mIEhUTUxFbGVtZW50KSYmci5jb25zdHJ1Y3Rvci5uYW1lPT09IkFzeW5jRnVuY3Rpb24iKXRyeXtyPWF3YWl0IHIoKX1jYXRjaChhKXtyZXR1cm4gY29uc29sZS5lcnJvcihgRmFpbGVkIHRvIGxvYWQgYXN5bmMgY29udGVudCBmb3IgdmlldyAiJHt0LmlkfSI6YCxhKSxudWxsfWxldCBpO2lmKHR5cGVvZiByPT0ic3RyaW5nIilpPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQocik7ZWxzZSBpZih0eXBlb2Ygcj09ImZ1bmN0aW9uIilpZihyLnByb3RvdHlwZSBpbnN0YW5jZW9mIEhUTUxFbGVtZW50KWk9bmV3IHI7ZWxzZXtsZXQgYT1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTthLmNsYXNzTmFtZT0idmlldy1jb250ZW50LXdyYXBwZXIiLGEuc3R5bGUuY3NzVGV4dD0iZGlzcGxheTogY29udGVudHM7IjtsZXQgbj1yKCk7YjYobixhKSxpPWF9ZWxzZSByZXR1cm4gY29uc29sZS5lcnJvcihgSW52YWxpZCBjb250ZW50IHR5cGUgZm9yIHZpZXcgIiR7dC5pZH0iYCksbnVsbDtyZXR1cm4gaS5kYXRhc2V0LnZpZXdJZD10LmlkLGl9YXN5bmMgY2FsbE9uQWN0aXZhdGUodCxyLGkpe2xldCBhPXQ7aWYodHlwZW9mIGEub25BY3RpdmF0ZT09ImZ1bmN0aW9uIil7bGV0IG49e2FwcHVpOnRoaXMuYXBwdWksdmlld0lkOnIscGFyYW1zOml9O2F3YWl0IGEub25BY3RpdmF0ZShuKX19cmVuZGVyVmlldyh0LHIpe2xldCBpPXRoaXMudmlld3MuZ2V0KHQpO2lmKCFpKXJldHVybiBjb25zb2xlLmVycm9yKGBWaWV3ICIke3R9IiBub3QgZm91bmQgaW4gcmVnaXN0cnlgKSxudWxsO3IuaW5uZXJIVE1MPSIiO2xldCBhLG49aS5jb250ZW50O2lmKHR5cGVvZiBuPT0ic3RyaW5nIilhPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQobik7ZWxzZSBpZih0eXBlb2Ygbj09ImZ1bmN0aW9uIilpZihuLnByb3RvdHlwZSBpbnN0YW5jZW9mIEhUTUxFbGVtZW50KWE9bmV3IG47ZWxzZXtsZXQgbz1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTtvLmNsYXNzTmFtZT0idmlldy1jb250ZW50LXdyYXBwZXIiLG8uc3R5bGUuY3NzVGV4dD0iZGlzcGxheTogY29udGVudHM7IjtsZXQgcz1uKCk7YjYocyxvKSxhPW99ZWxzZSByZXR1cm4gY29uc29sZS5lcnJvcihgSW52YWxpZCBjb250ZW50IHR5cGUgZm9yIHZpZXcgIiR7dH0iYCksbnVsbDtyZXR1cm4gci5hcHBlbmRDaGlsZChhKSx0aGlzLmluc3RhbmNlcy5zZXQodCxhKSx0aGlzLmN1cnJlbnRWaWV3SWQ9dCxhfWdldEN1cnJlbnRWaWV3SWQoKXtyZXR1cm4gdGhpcy5jdXJyZW50Vmlld0lkfWdldEluc3RhbmNlKHQpe3JldHVybiB0aGlzLmluc3RhbmNlcy5nZXQodCl9Y2xlYXJJbnN0YW5jZSh0KXtsZXQgcj10aGlzLmluc3RhbmNlcy5nZXQodCk7ciYmci5wYXJlbnROb2RlJiZyLnBhcmVudE5vZGUucmVtb3ZlQ2hpbGQociksdGhpcy5pbnN0YW5jZXMuZGVsZXRlKHQpLHRoaXMuY3VycmVudFZpZXdJZD09PXQmJih0aGlzLmN1cnJlbnRWaWV3SWQ9bnVsbCl9Y2xlYXJJbnN0YW5jZXMoKXtmb3IobGV0W3Qscl1vZiB0aGlzLmluc3RhbmNlcylyLnBhcmVudE5vZGUmJnIucGFyZW50Tm9kZS5yZW1vdmVDaGlsZChyKTt0aGlzLmluc3RhbmNlcy5jbGVhcigpLHRoaXMuY3VycmVudFZpZXdJZD1udWxsfXVucmVnaXN0ZXIodCl7cmV0dXJuIHRoaXMuY2xlYXJJbnN0YW5jZSh0KSx0aGlzLnZpZXdzLmRlbGV0ZSh0KX1jbGVhcigpe3RoaXMudmlld3MuY2xlYXIoKSx0aGlzLmNsZWFySW5zdGFuY2VzKCl9aGFzKHQpe3JldHVybiB0aGlzLnZpZXdzLmhhcyh0KX1nZXQgc2l6ZSgpe3JldHVybiB0aGlzLnZpZXdzLnNpemV9fX0pO3ZhciBFbHIsJGxyPXAoKCk9Pnt4ZSgpO0Vscj0oKT0+Q2AKICA8c3R5bGU+CiAgICAuZGVtby1tYWlubWVudS1jb250YWluZXIgewogICAgICBkaXNwbGF5OiBmbGV4OwogICAgICBoZWlnaHQ6IDEwMCU7CiAgICAgIGJhY2tncm91bmQ6ICMxYTFhMWE7CiAgICAgIGJvcmRlci1yYWRpdXM6IDhweDsKICAgIH0KICAgIC5kZW1vLW1haW5tZW51LWNvbnRhaW5lciAuc3BhY2VyIHsKICAgICAgZmxleDogMTsKICAgICAgYmFja2dyb3VuZDogIzBmMGYwZjsKICAgIH0KICA8L3N0eWxlPgogIDxkaXYgY2xhc3M9ImRlbW8tbWFpbm1lbnUtY29udGFpbmVyIj4KICAgIDxkZWVzLWFwcHVpLW1haW5tZW51CiAgICAgIC5sb2dvSWNvbj0keyJsdWNpZGU6Ym94In0KICAgICAgLmxvZ29UZXh0PSR7IkFjbWUgQXBwIn0KICAgICAgLm1lbnVHcm91cHM9JHtbe3RhYnM6W3trZXk6IkRhc2hib2FyZCIsaWNvbk5hbWU6Imx1Y2lkZTpob21lIixhY3Rpb246KCk9PmNvbnNvbGUubG9nKCJEYXNoYm9hcmQiKX0se2tleToiSW5ib3giLGljb25OYW1lOiJsdWNpZGU6aW5ib3giLGFjdGlvbjooKT0+Y29uc29sZS5sb2coIkluYm94Iil9XX0se25hbWU6IldvcmtzcGFjZSIsdGFiczpbe2tleToiUHJvamVjdHMiLGljb25OYW1lOiJsdWNpZGU6Zm9sZGVyIixhY3Rpb246KCk9PmNvbnNvbGUubG9nKCJQcm9qZWN0cyIpfSx7a2V5OiJUYXNrcyIsaWNvbk5hbWU6Imx1Y2lkZTpjaGVja1NxdWFyZSIsYWN0aW9uOigpPT5jb25zb2xlLmxvZygiVGFza3MiKX0se2tleToiRG9jdW1lbnRzIixpY29uTmFtZToibHVjaWRlOmZpbGVUZXh0IixhY3Rpb246KCk9PmNvbnNvbGUubG9nKCJEb2N1bWVudHMiKX1dfSx7bmFtZToiQW5hbHl0aWNzIix0YWJzOlt7a2V5OiJSZXBvcnRzIixpY29uTmFtZToibHVjaWRlOmJhckNoYXJ0MyIsYWN0aW9uOigpPT5jb25zb2xlLmxvZygiUmVwb3J0cyIpfSx7a2V5OiJJbnNpZ2h0cyIsaWNvbk5hbWU6Imx1Y2lkZTpsaWdodGJ1bGIiLGFjdGlvbjooKT0+Y29uc29sZS5sb2coIkluc2lnaHRzIil9XX1dfQogICAgICAuYm90dG9tVGFicz0ke1t7a2V5OiJTZXR0aW5ncyIsaWNvbk5hbWU6Imx1Y2lkZTpzZXR0aW5ncyIsYWN0aW9uOigpPT5jb25zb2xlLmxvZygiU2V0dGluZ3MiKX0se2tleToiSGVscCIsaWNvbk5hbWU6Imx1Y2lkZTpoZWxwQ2lyY2xlIixhY3Rpb246KCk9PmNvbnNvbGUubG9nKCJIZWxwIil9XX0KICAgID48L2RlZXMtYXBwdWktbWFpbm1lbnU+CiAgICA8ZGl2IGNsYXNzPSJzcGFjZXIiPjwvZGl2PgogIDwvZGl2PgpgfSk7dmFyIFI0LHRuLElscixQNmU9cCgoKT0+e3dpKCk7JDQoKTt4bygpO3hlKCk7TWkoKTskbHIoKTtKZSgpO1I0PWZ1bmN0aW9uKGUsdCxyLGksYSxuKXtmdW5jdGlvbiBvKHkpe2lmKHkhPT12b2lkIDAmJnR5cGVvZiB5IT0iZnVuY3Rpb24iKXRocm93IG5ldyBUeXBlRXJyb3IoIkZ1bmN0aW9uIGV4cGVjdGVkIik7cmV0dXJuIHl9Zm9yKHZhciBzPWkua2luZCxsPXM9PT0iZ2V0dGVyIj8iZ2V0IjpzPT09InNldHRlciI/InNldCI6InZhbHVlIixjPSF0JiZlP2kuc3RhdGljP2U6ZS5wcm90b3R5cGU6bnVsbCx1PXR8fChjP09iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoYyxpLm5hbWUpOnt9KSxkLGg9ITEsZj1yLmxlbmd0aC0xO2Y+PTA7Zi0tKXt2YXIgeD17fTtmb3IodmFyIHYgaW4gaSl4W3ZdPXY9PT0iYWNjZXNzIj97fTppW3ZdO2Zvcih2YXIgdiBpbiBpLmFjY2Vzcyl4LmFjY2Vzc1t2XT1pLmFjY2Vzc1t2XTt4LmFkZEluaXRpYWxpemVyPWZ1bmN0aW9uKHkpe2lmKGgpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGFkZCBpbml0aWFsaXplcnMgYWZ0ZXIgZGVjb3JhdGlvbiBoYXMgY29tcGxldGVkIik7bi5wdXNoKG8oeXx8bnVsbCkpfTt2YXIgYj0oMCxyW2ZdKShzPT09ImFjY2Vzc29yIj97Z2V0OnUuZ2V0LHNldDp1LnNldH06dVtsXSx4KTtpZihzPT09ImFjY2Vzc29yIil7aWYoYj09PXZvaWQgMCljb250aW51ZTtpZihiPT09bnVsbHx8dHlwZW9mIGIhPSJvYmplY3QiKXRocm93IG5ldyBUeXBlRXJyb3IoIk9iamVjdCBleHBlY3RlZCIpOyhkPW8oYi5nZXQpKSYmKHUuZ2V0PWQpLChkPW8oYi5zZXQpKSYmKHUuc2V0PWQpLChkPW8oYi5pbml0KSkmJmEudW5zaGlmdChkKX1lbHNlKGQ9byhiKSkmJihzPT09ImZpZWxkIj9hLnVuc2hpZnQoZCk6dVtsXT1kKX1jJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoYyxpLm5hbWUsdSksaD0hMH0sdG49ZnVuY3Rpb24oZSx0LHIpe2Zvcih2YXIgaT1hcmd1bWVudHMubGVuZ3RoPjIsYT0wO2E8dC5sZW5ndGg7YSsrKXI9aT90W2FdLmNhbGwoZSxyKTp0W2FdLmNhbGwoZSk7cmV0dXJuIGk/cjp2b2lkIDB9LElscj0oKCk9PntsZXQgZT1beWUoImRlZXMtYXBwdWktbWFpbm1lbnUiKV0sdCxyPVtdLGksYT16ZSxuLG89W10scz1bXSxsLGM9W10sdT1bXSxkLGg9W10sZj1bXSx4LHY9W10sYj1bXSx5LHc9W10saz1bXSxPLHo9W10sTT1bXSxGLEQ9W10sTj1bXTt2YXIgUj1jbGFzcyBleHRlbmRzIGF7c3RhdGlje2k9dGhpc31zdGF0aWN7bGV0IF89dHlwZW9mIFN5bWJvbD09ImZ1bmN0aW9uIiYmU3ltYm9sLm1ldGFkYXRhP09iamVjdC5jcmVhdGUoYVtTeW1ib2wubWV0YWRhdGFdPz9udWxsKTp2b2lkIDA7bj1baih7dHlwZTpTdHJpbmd9KV0sbD1baih7dHlwZTpTdHJpbmd9KV0sZD1baih7dHlwZTpBcnJheX0pXSx4PVtqKHt0eXBlOkFycmF5fSldLHk9W2ooe3R5cGU6QXJyYXl9KV0sTz1baigpXSxGPVtqKHt0eXBlOkJvb2xlYW4scmVmbGVjdDohMH0pXSxSNCh0aGlzLG51bGwsbix7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImxvZ29JY29uIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpTPT4ibG9nb0ljb24iaW4gUyxnZXQ6Uz0+Uy5sb2dvSWNvbixzZXQ6KFMsJCk9PntTLmxvZ29JY29uPSR9fSxtZXRhZGF0YTpffSxvLHMpLFI0KHRoaXMsbnVsbCxsLHtraW5kOiJhY2Nlc3NvciIsbmFtZToibG9nb1RleHQiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOlM9PiJsb2dvVGV4dCJpbiBTLGdldDpTPT5TLmxvZ29UZXh0LHNldDooUywkKT0+e1MubG9nb1RleHQ9JH19LG1ldGFkYXRhOl99LGMsdSksUjQodGhpcyxudWxsLGQse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJtZW51R3JvdXBzIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpTPT4ibWVudUdyb3VwcyJpbiBTLGdldDpTPT5TLm1lbnVHcm91cHMsc2V0OihTLCQpPT57Uy5tZW51R3JvdXBzPSR9fSxtZXRhZGF0YTpffSxoLGYpLFI0KHRoaXMsbnVsbCx4LHtraW5kOiJhY2Nlc3NvciIsbmFtZToiYm90dG9tVGFicyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6Uz0+ImJvdHRvbVRhYnMiaW4gUyxnZXQ6Uz0+Uy5ib3R0b21UYWJzLHNldDooUywkKT0+e1MuYm90dG9tVGFicz0kfX0sbWV0YWRhdGE6X30sdixiKSxSNCh0aGlzLG51bGwseSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InRhYnMiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOlM9PiJ0YWJzImluIFMsZ2V0OlM9PlMudGFicyxzZXQ6KFMsJCk9PntTLnRhYnM9JH19LG1ldGFkYXRhOl99LHcsayksUjQodGhpcyxudWxsLE8se2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJzZWxlY3RlZFRhYiIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6Uz0+InNlbGVjdGVkVGFiImluIFMsZ2V0OlM9PlMuc2VsZWN0ZWRUYWIsc2V0OihTLCQpPT57Uy5zZWxlY3RlZFRhYj0kfX0sbWV0YWRhdGE6X30seixNKSxSNCh0aGlzLG51bGwsRix7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImNvbGxhcHNlZCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6Uz0+ImNvbGxhcHNlZCJpbiBTLGdldDpTPT5TLmNvbGxhcHNlZCxzZXQ6KFMsJCk9PntTLmNvbGxhcHNlZD0kfX0sbWV0YWRhdGE6X30sRCxOKSxSNChudWxsLHQ9e3ZhbHVlOml9LGUse2tpbmQ6ImNsYXNzIixuYW1lOmkubmFtZSxtZXRhZGF0YTpffSxudWxsLHIpLFI9aT10LnZhbHVlLF8mJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShpLFN5bWJvbC5tZXRhZGF0YSx7ZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITAsdmFsdWU6X30pfXN0YXRpYyBkZW1vPUVscjtzdGF0aWMgZGVtb0dyb3Vwcz1bIkFwcCBVSSJdOyNlPXRuKHRoaXMsbywiIik7Z2V0IGxvZ29JY29uKCl7cmV0dXJuIHRoaXMuI2V9c2V0IGxvZ29JY29uKF8pe3RoaXMuI2U9X30jdD0odG4odGhpcyxzKSx0bih0aGlzLGMsIiIpKTtnZXQgbG9nb1RleHQoKXtyZXR1cm4gdGhpcy4jdH1zZXQgbG9nb1RleHQoXyl7dGhpcy4jdD1ffSNyPSh0bih0aGlzLHUpLHRuKHRoaXMsaCxbXSkpO2dldCBtZW51R3JvdXBzKCl7cmV0dXJuIHRoaXMuI3J9c2V0IG1lbnVHcm91cHMoXyl7dGhpcy4jcj1ffSNpPSh0bih0aGlzLGYpLHRuKHRoaXMsdixbXSkpO2dldCBib3R0b21UYWJzKCl7cmV0dXJuIHRoaXMuI2l9c2V0IGJvdHRvbVRhYnMoXyl7dGhpcy4jaT1ffSNhPSh0bih0aGlzLGIpLHRuKHRoaXMsdyxbXSkpO2dldCB0YWJzKCl7cmV0dXJuIHRoaXMuI2F9c2V0IHRhYnMoXyl7dGhpcy4jYT1ffSNuPSh0bih0aGlzLGspLHRuKHRoaXMseix2b2lkIDApKTtnZXQgc2VsZWN0ZWRUYWIoKXtyZXR1cm4gdGhpcy4jbn1zZXQgc2VsZWN0ZWRUYWIoXyl7dGhpcy4jbj1ffSNvPSh0bih0aGlzLE0pLHRuKHRoaXMsRCwhMSkpO2dldCBjb2xsYXBzZWQoKXtyZXR1cm4gdGhpcy4jb31zZXQgY29sbGFwc2VkKF8pe3RoaXMuI289X31zdGF0aWMgc3R5bGVzPVtEZSxtLmRlZmF1bHRTdHlsZXMsb2VgCiAgICAgIC8qIFRPRE86IE1pZ3JhdGUgaGFyZGNvZGVkIHZhbHVlcyB0byAtLWRlZXMtKiBDU1MgdmFyaWFibGVzICovCiAgICAgIDpob3N0IHsKICAgICAgICAtLW1lbnUtd2lkdGgtZXhwYW5kZWQ6IDIwMHB4OwogICAgICAgIC0tbWVudS13aWR0aC1jb2xsYXBzZWQ6IDU2cHg7CiAgICAgICAgLS10b29sdGlwLWJnOiAke20uYmRUaGVtZSgiIzE4MTgxYiIsIiNmYWZhZmEiKX07CiAgICAgICAgLS10b29sdGlwLWZnOiAke20uYmRUaGVtZSgiI2ZhZmFmYSIsIiMxODE4MWIiKX07CiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICAgIGRpc3BsYXk6IGJsb2NrOwogICAgICAgIGhlaWdodDogMTAwJTsKICAgICAgfQoKICAgICAgLm1haW5Db250YWluZXIgewogICAgICAgIGNvbG9yOiAke20uYmRUaGVtZSgiIzY2NiIsIiNjY2MiKX07CiAgICAgICAgei1pbmRleDogJHtmaS5maXhlZC5hcHBCYXJ9OwogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgICAgd2lkdGg6IHZhcigtLW1lbnUtd2lkdGgtZXhwYW5kZWQpOwogICAgICAgIGhlaWdodDogMTAwJTsKICAgICAgICBiYWNrZ3JvdW5kOiAke20uYmRUaGVtZSgiI2ZhZmFmYSIsIiMwYTBhMGEiKX07CiAgICAgICAgdXNlci1zZWxlY3Q6IG5vbmU7CiAgICAgICAgYm9yZGVyLXJpZ2h0OiAxcHggc29saWQgJHttLmJkVGhlbWUoIiNlNWU1ZTUiLCIjMWExYTFhIil9OwogICAgICAgIGZvbnQtZmFtaWx5OiAnR2Vpc3QgU2FucycsICdJbnRlcicsIC1hcHBsZS1zeXN0ZW0sIEJsaW5rTWFjU3lzdGVtRm9udCwgc2Fucy1zZXJpZjsKICAgICAgICB0cmFuc2l0aW9uOiB3aWR0aCAwLjI1cyBlYXNlOwogICAgICB9CgogICAgICA6aG9zdChbY29sbGFwc2VkXSkgLm1haW5Db250YWluZXIgewogICAgICAgIHdpZHRoOiB2YXIoLS1tZW51LXdpZHRoLWNvbGxhcHNlZCk7CiAgICAgIH0KCiAgICAgIC8qIEZsb2F0aW5nIGNvbGxhcHNlIHRvZ2dsZSBidXR0b24gKi8KICAgICAgLmNvbGxhcHNlLXRvZ2dsZSB7CiAgICAgICAgcG9zaXRpb246IGFic29sdXRlOwogICAgICAgIHJpZ2h0OiAtMTJweDsKICAgICAgICB0b3A6IDI0cHg7CiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpOwogICAgICAgIHdpZHRoOiAyNHB4OwogICAgICAgIGhlaWdodDogMjRweDsKICAgICAgICBib3JkZXItcmFkaXVzOiA1MCU7CiAgICAgICAgYmFja2dyb3VuZDogJHttLmJkVGhlbWUoIiNmZmZmZmYiLCIjMjcyNzJhIil9OwogICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICR7bS5iZFRoZW1lKCIjZTVlNWU1IiwiIzNmM2Y0NiIpfTsKICAgICAgICBib3gtc2hhZG93OiAwIDJweCA0cHggcmdiYSgwLCAwLCAwLCAwLjEpOwogICAgICAgIGN1cnNvcjogcG9pbnRlcjsKICAgICAgICB6LWluZGV4OiAxMDsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7CiAgICAgICAgY29sb3I6ICR7bS5iZFRoZW1lKCIjNzM3MzczIiwiI2ExYTFhYSIpfTsKICAgICAgICBvcGFjaXR5OiAwOwogICAgICAgIHRyYW5zaXRpb246IG9wYWNpdHkgMC4ycyBlYXNlLCBiYWNrZ3JvdW5kIDAuMTVzIGVhc2U7CiAgICAgICAgcGFkZGluZzogMDsKICAgICAgfQoKICAgICAgLmNvbGxhcHNlLXRvZ2dsZTpob3ZlciB7CiAgICAgICAgYmFja2dyb3VuZDogJHttLmJkVGhlbWUoIiNmNGY0ZjUiLCIjM2YzZjQ2Iil9OwogICAgICAgIGNvbG9yOiAke20uYmRUaGVtZSgiIzBhMGEwYSIsIiNmYWZhZmEiKX07CiAgICAgIH0KCiAgICAgIDpob3N0KDpob3ZlcikgLmNvbGxhcHNlLXRvZ2dsZSB7CiAgICAgICAgb3BhY2l0eTogMTsKICAgICAgfQoKICAgICAgLmNvbGxhcHNlLXRvZ2dsZSBkZWVzLWljb24gewogICAgICAgIGZvbnQtc2l6ZTogMTRweDsKICAgICAgfQoKICAgICAgLyogTG9nbyBTZWN0aW9uICovCiAgICAgIC5sb2dvU2VjdGlvbiB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGdhcDogMTBweDsKICAgICAgICBoZWlnaHQ6IDQ4cHg7CiAgICAgICAgcGFkZGluZzogMCAxNHB4OwogICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAke20uYmRUaGVtZSgiI2U1ZTVlNSIsIiMxYTFhMWEiKX07CiAgICAgICAgZmxleC1zaHJpbms6IDA7CiAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDsKICAgICAgfQoKICAgICAgLmxvZ29TZWN0aW9uIC5sb2dvSWNvbiB7CiAgICAgICAgZm9udC1zaXplOiAyMnB4OwogICAgICAgIGNvbG9yOiAke20uYmRUaGVtZSgiIzBhMGEwYSIsIiNmYWZhZmEiKX07CiAgICAgICAgZmxleC1zaHJpbms6IDA7CiAgICAgIH0KCiAgICAgIC5sb2dvU2VjdGlvbiAubG9nb1RleHQgewogICAgICAgIGZsZXg6IDE7CiAgICAgICAgZm9udC1zaXplOiAxNXB4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7CiAgICAgICAgY29sb3I6ICR7bS5iZFRoZW1lKCIjMGEwYTBhIiwiI2ZhZmFmYSIpfTsKICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwOwogICAgICAgIG92ZXJmbG93OiBoaWRkZW47CiAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7CiAgICAgICAgdHJhbnNpdGlvbjogb3BhY2l0eSAwLjJzIGVhc2UsIHdpZHRoIDAuMjVzIGVhc2U7CiAgICAgIH0KCiAgICAgIDpob3N0KFtjb2xsYXBzZWRdKSAubG9nb1NlY3Rpb24gewogICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOwogICAgICAgIHBhZGRpbmc6IDA7CiAgICAgICAgZ2FwOiAwOwogICAgICB9CgogICAgICA6aG9zdChbY29sbGFwc2VkXSkgLmxvZ29TZWN0aW9uIC5sb2dvVGV4dCB7CiAgICAgICAgZGlzcGxheTogbm9uZTsKICAgICAgfQoKICAgICAgLyogTWlkZGxlIFNlY3Rpb24gKHNjcm9sbGFibGUpICovCiAgICAgIC5tZW51U2VjdGlvbiB7CiAgICAgICAgZmxleDogMTsKICAgICAgICBvdmVyZmxvdy15OiBhdXRvOwogICAgICAgIG92ZXJmbG93LXg6IGhpZGRlbjsKICAgICAgICBvdmVyc2Nyb2xsLWJlaGF2aW9yOiBjb250YWluOwogICAgICAgIHBhZGRpbmc6IDhweCAwOwogICAgICB9CgogICAgICAubWVudVNlY3Rpb246Oi13ZWJraXQtc2Nyb2xsYmFyIHsKICAgICAgICB3aWR0aDogNnB4OwogICAgICB9CgogICAgICAubWVudVNlY3Rpb246Oi13ZWJraXQtc2Nyb2xsYmFyLXRyYWNrIHsKICAgICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDsKICAgICAgfQoKICAgICAgLm1lbnVTZWN0aW9uOjotd2Via2l0LXNjcm9sbGJhci10aHVtYiB7CiAgICAgICAgYmFja2dyb3VuZDogJHttLmJkVGhlbWUoInJnYmEoMCwgMCwgMCwgMC4xNSkiLCJyZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMTUpIil9OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDNweDsKICAgICAgfQoKICAgICAgLm1lbnVTZWN0aW9uOjotd2Via2l0LXNjcm9sbGJhci10aHVtYjpob3ZlciB7CiAgICAgICAgYmFja2dyb3VuZDogJHttLmJkVGhlbWUoInJnYmEoMCwgMCwgMCwgMC4yNSkiLCJyZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMjUpIil9OwogICAgICB9CgogICAgICAvKiBNZW51IEdyb3VwICovCiAgICAgIC5tZW51R3JvdXAgewogICAgICAgIHBhZGRpbmc6IDAgOHB4OwogICAgICAgIG1hcmdpbi1ib3R0b206IDhweDsKICAgICAgfQoKICAgICAgLm1lbnVHcm91cDpsYXN0LWNoaWxkIHsKICAgICAgICBtYXJnaW4tYm90dG9tOiAwOwogICAgICB9CgogICAgICAuZ3JvdXBIZWFkZXIgewogICAgICAgIHBhZGRpbmc6IDhweCAxMnB4IDZweDsKICAgICAgICBmb250LXNpemU6IDExcHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDsKICAgICAgICBjb2xvcjogJHttLmJkVGhlbWUoIiM3MzczNzMiLCIjNzM3MzczIil9OwogICAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7CiAgICAgICAgbGV0dGVyLXNwYWNpbmc6IDAuNXB4OwogICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7CiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgICAgICB0cmFuc2l0aW9uOiBvcGFjaXR5IDAuMnMgZWFzZSwgbWF4LWhlaWdodCAwLjI1cyBlYXNlOwogICAgICAgIG1heC1oZWlnaHQ6IDMwcHg7CiAgICAgIH0KCiAgICAgIDpob3N0KFtjb2xsYXBzZWRdKSAuZ3JvdXBIZWFkZXIgewogICAgICAgIG9wYWNpdHk6IDA7CiAgICAgICAgbWF4LWhlaWdodDogMDsKICAgICAgICBwYWRkaW5nOiAwOwogICAgICAgIG1hcmdpbjogMDsKICAgICAgfQoKICAgICAgLmdyb3VwVGFicyB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICAgIGdhcDogMnB4OwogICAgICB9CgogICAgICA6aG9zdChbY29sbGFwc2VkXSkgLm1lbnVHcm91cCB7CiAgICAgICAgcGFkZGluZzogMCA0cHg7CiAgICAgIH0KCiAgICAgIC8qIFRhYiBJdGVtICovCiAgICAgIC50YWIgewogICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgZ2FwOiAxMnB4OwogICAgICAgIHBhZGRpbmc6IDEwcHggMTJweDsKICAgICAgICBmb250LXNpemU6IDEzcHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDsKICAgICAgICBib3JkZXItcmFkaXVzOiA2cHg7CiAgICAgICAgY3Vyc29yOiBwb2ludGVyOwogICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjE1cyBlYXNlOwogICAgICAgIGNvbG9yOiAke20uYmRUaGVtZSgiIzUyNTI1MiIsIiNhM2EzYTMiKX07CiAgICAgIH0KCiAgICAgIC50YWI6aG92ZXIgewogICAgICAgIGJhY2tncm91bmQ6ICR7bS5iZFRoZW1lKCJyZ2JhKDAsIDAsIDAsIDAuMDQpIiwicmdiYSgyNTUsIDI1NSwgMjU1LCAwLjA2KSIpfTsKICAgICAgICBjb2xvcjogJHttLmJkVGhlbWUoIiMyNjI2MjYiLCIjZTVlNWU1Iil9OwogICAgICB9CgogICAgICAudGFiOmFjdGl2ZSB7CiAgICAgICAgYmFja2dyb3VuZDogJHttLmJkVGhlbWUoInJnYmEoMCwgMCwgMCwgMC4wNikiLCJyZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMDgpIil9OwogICAgICB9CgogICAgICAudGFiLnNlbGVjdGVkVGFiIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke20uYmRUaGVtZSgicmdiYSgwLCAwLCAwLCAwLjA2KSIsInJnYmEoMjU1LCAyNTUsIDI1NSwgMC4wOCkiKX07CiAgICAgICAgY29sb3I6ICR7bS5iZFRoZW1lKCIjMGEwYTBhIiwiI2ZhZmFmYSIpfTsKICAgICAgfQoKICAgICAgLnRhYi5zZWxlY3RlZFRhYjo6YmVmb3JlIHsKICAgICAgICBjb250ZW50OiAnJzsKICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgICAgbGVmdDogMDsKICAgICAgICB0b3A6IDUwJTsKICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSk7CiAgICAgICAgd2lkdGg6IDNweDsKICAgICAgICBoZWlnaHQ6IDE2cHg7CiAgICAgICAgYmFja2dyb3VuZDogJHttLmJkVGhlbWUoIiMwYTBhMGEiLCIjZmFmYWZhIil9OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDAgMnB4IDJweCAwOwogICAgICB9CgogICAgICAudGFiIGRlZXMtaWNvbiB7CiAgICAgICAgZm9udC1zaXplOiAxOHB4OwogICAgICAgIG9wYWNpdHk6IDAuODU7CiAgICAgICAgZmxleC1zaHJpbms6IDA7CiAgICAgIH0KCiAgICAgIC50YWIuc2VsZWN0ZWRUYWIgZGVlcy1pY29uIHsKICAgICAgICBvcGFjaXR5OiAxOwogICAgICB9CgogICAgICAudGFiIC50YWJMYWJlbCB7CiAgICAgICAgZmxleDogMTsKICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwOwogICAgICAgIG92ZXJmbG93OiBoaWRkZW47CiAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7CiAgICAgICAgdHJhbnNpdGlvbjogb3BhY2l0eSAwLjJzIGVhc2UsIHdpZHRoIDAuMjVzIGVhc2U7CiAgICAgIH0KCiAgICAgIC8qIENvbGxhcHNlZCB0YWIgc3R5bGVzICovCiAgICAgIDpob3N0KFtjb2xsYXBzZWRdKSAudGFiIHsKICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKICAgICAgICBwYWRkaW5nOiAxMHB4OwogICAgICAgIGdhcDogMDsKICAgICAgfQoKICAgICAgOmhvc3QoW2NvbGxhcHNlZF0pIC50YWIgLnRhYkxhYmVsIHsKICAgICAgICBvcGFjaXR5OiAwOwogICAgICAgIHdpZHRoOiAwOwogICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgfQoKICAgICAgOmhvc3QoW2NvbGxhcHNlZF0pIC50YWIuc2VsZWN0ZWRUYWI6OmJlZm9yZSB7CiAgICAgICAgbGVmdDogLTRweDsKICAgICAgfQoKICAgICAgLyogVG9vbHRpcCBmb3IgY29sbGFwc2VkIHN0YXRlICovCiAgICAgIC50YWItdG9vbHRpcCB7CiAgICAgICAgcG9zaXRpb246IGFic29sdXRlOwogICAgICAgIGxlZnQ6IDEwMCU7CiAgICAgICAgdG9wOiA1MCU7CiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpOwogICAgICAgIG1hcmdpbi1sZWZ0OiAxMnB4OwogICAgICAgIHBhZGRpbmc6IDZweCAxMnB4OwogICAgICAgIGJhY2tncm91bmQ6IHZhcigtLXRvb2x0aXAtYmcpOwogICAgICAgIGNvbG9yOiB2YXIoLS10b29sdGlwLWZnKTsKICAgICAgICBib3JkZXItcmFkaXVzOiA2cHg7CiAgICAgICAgZm9udC1zaXplOiAxM3B4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7CiAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDsKICAgICAgICBvcGFjaXR5OiAwOwogICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lOwogICAgICAgIHRyYW5zaXRpb246IG9wYWNpdHkgMC4xNXMgZWFzZTsKICAgICAgICB6LWluZGV4OiAxMDAwOwogICAgICAgIGJveC1zaGFkb3c6IDAgMnB4IDhweCByZ2JhKDAsIDAsIDAsIDAuMTUpOwogICAgICB9CgogICAgICAudGFiLXRvb2x0aXA6OmJlZm9yZSB7CiAgICAgICAgY29udGVudDogJyc7CiAgICAgICAgcG9zaXRpb246IGFic29sdXRlOwogICAgICAgIGxlZnQ6IC00cHg7CiAgICAgICAgdG9wOiA1MCU7CiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpOwogICAgICAgIGJvcmRlcjogNHB4IHNvbGlkIHRyYW5zcGFyZW50OwogICAgICAgIGJvcmRlci1yaWdodC1jb2xvcjogdmFyKC0tdG9vbHRpcC1iZyk7CiAgICAgIH0KCiAgICAgIDpob3N0KFtjb2xsYXBzZWRdKSAudGFiOmhvdmVyIC50YWItdG9vbHRpcCB7CiAgICAgICAgb3BhY2l0eTogMTsKICAgICAgICB0cmFuc2l0aW9uLWRlbGF5OiAxczsKICAgICAgfQoKICAgICAgLyogQmFkZ2Ugc3R5bGVzICovCiAgICAgIC5iYWRnZSB7CiAgICAgICAgZGlzcGxheTogaW5saW5lLWZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKICAgICAgICBtaW4td2lkdGg6IDE4cHg7CiAgICAgICAgaGVpZ2h0OiAxOHB4OwogICAgICAgIHBhZGRpbmc6IDAgNnB4OwogICAgICAgIGZvbnQtc2l6ZTogMTFweDsKICAgICAgICBmb250LXdlaWdodDogNjAwOwogICAgICAgIGJvcmRlci1yYWRpdXM6IDlweDsKICAgICAgICBtYXJnaW4tbGVmdDogYXV0bzsKICAgICAgfQoKICAgICAgLmJhZGdlLmRlZmF1bHQgewogICAgICAgIGJhY2tncm91bmQ6ICR7bS5iZFRoZW1lKCIjZjRmNGY1IiwiIzI3MjcyYSIpfTsKICAgICAgICBjb2xvcjogJHttLmJkVGhlbWUoIiMzZjNmNDYiLCIjYTFhMWFhIil9OwogICAgICB9CgogICAgICAuYmFkZ2Uuc3VjY2VzcyB7CiAgICAgICAgYmFja2dyb3VuZDogJHttLmJkVGhlbWUoIiNkY2ZjZTciLCIjMTQ1MzJkIil9OwogICAgICAgIGNvbG9yOiAke20uYmRUaGVtZSgiIzE2NjUzNCIsIiM0YWRlODAiKX07CiAgICAgIH0KCiAgICAgIC5iYWRnZS53YXJuaW5nIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke20uYmRUaGVtZSgiI2ZlZjNjNyIsIiM0NTFhMDMiKX07CiAgICAgICAgY29sb3I6ICR7bS5iZFRoZW1lKCIjOTI0MDBlIiwiI2ZiYmYyNCIpfTsKICAgICAgfQoKICAgICAgLmJhZGdlLmVycm9yIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke20uYmRUaGVtZSgiI2ZlZTJlMiIsIiM0NTBhMGEiKX07CiAgICAgICAgY29sb3I6ICR7bS5iZFRoZW1lKCIjOTkxYjFiIiwiI2Y4NzE3MSIpfTsKICAgICAgfQoKICAgICAgOmhvc3QoW2NvbGxhcHNlZF0pIC5iYWRnZSB7CiAgICAgICAgZGlzcGxheTogbm9uZTsKICAgICAgfQoKICAgICAgLyogQm90dG9tIFNlY3Rpb24gKi8KICAgICAgLmJvdHRvbVNlY3Rpb24gewogICAgICAgIGZsZXgtc2hyaW5rOiAwOwogICAgICAgIHBhZGRpbmc6IDhweDsKICAgICAgICBib3JkZXItdG9wOiAxcHggc29saWQgJHttLmJkVGhlbWUoIiNlNWU1ZTUiLCIjMWExYTFhIil9OwogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgICBnYXA6IDJweDsKICAgICAgfQoKICAgICAgOmhvc3QoW2NvbGxhcHNlZF0pIC5ib3R0b21TZWN0aW9uIHsKICAgICAgICBwYWRkaW5nOiA4cHggNHB4OwogICAgICB9CiAgICBgXTtyZW5kZXIoKXtsZXQgXz10aGlzLmdldEFsbFRhYnMoKTtyZXR1cm4gQ2AKICAgICAgPGRpdiBjbGFzcz0ibWFpbkNvbnRhaW5lciIgQGNvbnRleHRtZW51PSR7Uz0+e1NyLm9wZW5Db250ZXh0TWVudVdpdGhPcHRpb25zKFMsW3tuYW1lOiJhcHAgc2V0dGluZ3MiLGFjdGlvbjphc3luYygpPT57fSxpY29uTmFtZToiZ2VhciJ9XSl9fT4KICAgICAgICAke3RoaXMubG9nb0ljb258fHRoaXMubG9nb1RleHQ/Q2AKICAgICAgICAgIDxkaXYgY2xhc3M9ImxvZ29TZWN0aW9uIj4KICAgICAgICAgICAgJHt0aGlzLmxvZ29JY29uP0NgPGRlZXMtaWNvbiBjbGFzcz0ibG9nb0ljb24iIC5pY29uPSIke3RoaXMubG9nb0ljb259Ij48L2RlZXMtaWNvbj5gOiIifQogICAgICAgICAgICAke3RoaXMubG9nb1RleHQ/Q2A8c3BhbiBjbGFzcz0ibG9nb1RleHQiPiR7dGhpcy5sb2dvVGV4dH08L3NwYW4+YDoiIn0KICAgICAgICAgIDwvZGl2PgogICAgICAgIGA6IiJ9CgogICAgICAgIDxkaXYgY2xhc3M9Im1lbnVTZWN0aW9uIj4KICAgICAgICAgICR7dGhpcy5tZW51R3JvdXBzLmxlbmd0aD4wP3RoaXMucmVuZGVyTWVudUdyb3VwcygpOnRoaXMucmVuZGVyTGVnYWN5VGFicygpfQogICAgICAgIDwvZGl2PgoKICAgICAgICAke3RoaXMuYm90dG9tVGFicy5sZW5ndGg+MD9DYAogICAgICAgICAgPGRpdiBjbGFzcz0iYm90dG9tU2VjdGlvbiI+CiAgICAgICAgICAgICR7dGhpcy5ib3R0b21UYWJzLm1hcChTPT50aGlzLnJlbmRlclRhYihTKSl9CiAgICAgICAgICA8L2Rpdj4KICAgICAgICBgOiIifQogICAgICA8L2Rpdj4KICAgICAgPGJ1dHRvbiBjbGFzcz0iY29sbGFwc2UtdG9nZ2xlIiBAY2xpY2s9IiR7KCk9PnRoaXMudG9nZ2xlQ29sbGFwc2UoKX0iPgogICAgICAgIDxkZWVzLWljb24gLmljb249IiR7dGhpcy5jb2xsYXBzZWQ/Imx1Y2lkZTpjaGV2cm9uUmlnaHQiOiJsdWNpZGU6Y2hldnJvbkxlZnQifSI+PC9kZWVzLWljb24+CiAgICAgIDwvYnV0dG9uPgogICAgYH1yZW5kZXJNZW51R3JvdXBzKCl7cmV0dXJuIENgCiAgICAgICR7dGhpcy5tZW51R3JvdXBzLm1hcChfPT5DYAogICAgICAgIDxkaXYgY2xhc3M9Im1lbnVHcm91cCI+CiAgICAgICAgICAke18ubmFtZT9DYDxkaXYgY2xhc3M9Imdyb3VwSGVhZGVyIj4ke18ubmFtZX08L2Rpdj5gOiIifQogICAgICAgICAgPGRpdiBjbGFzcz0iZ3JvdXBUYWJzIj4KICAgICAgICAgICAgJHtfLml0ZW1zLm1hcChTPT50aGlzLnJlbmRlclRhYihTKSl9CiAgICAgICAgICA8L2Rpdj4KICAgICAgICA8L2Rpdj4KICAgICAgYCl9CiAgICBgfXJlbmRlckxlZ2FjeVRhYnMoKXtyZXR1cm4gQ2AKICAgICAgPGRpdiBjbGFzcz0ibWVudUdyb3VwIj4KICAgICAgICA8ZGl2IGNsYXNzPSJncm91cFRhYnMiPgogICAgICAgICAgJHt0aGlzLnRhYnMubWFwKF89PnRoaXMucmVuZGVyVGFiKF8pKX0KICAgICAgICA8L2Rpdj4KICAgICAgPC9kaXY+CiAgICBgfXJlbmRlclRhYihfKXtyZXR1cm4gQ2AKICAgICAgPGRpdgogICAgICAgIGNsYXNzPSJ0YWIgJHtfPT09dGhpcy5zZWxlY3RlZFRhYj8ic2VsZWN0ZWRUYWIiOiIifSIKICAgICAgICBAY2xpY2s9IiR7KCk9Pnt0aGlzLnVwZGF0ZVRhYihfKX19IgogICAgICA+CiAgICAgICAgPGRlZXMtaWNvbiAuaWNvbj0iJHtfLmljb25OYW1lfHwiIn0iPjwvZGVlcy1pY29uPgogICAgICAgIDxzcGFuIGNsYXNzPSJ0YWJMYWJlbCI+JHtfLmtleX08L3NwYW4+CiAgICAgICAgJHtfLmJhZGdlIT09dm9pZCAwP0NgCiAgICAgICAgICA8c3BhbiBjbGFzcz0iYmFkZ2UgJHtfLmJhZGdlVmFyaWFudHx8ImRlZmF1bHQifSI+JHtfLmJhZGdlfTwvc3Bhbj4KICAgICAgICBgOiIifQogICAgICAgIDxzcGFuIGNsYXNzPSJ0YWItdG9vbHRpcCI+JHtfLmtleX08L3NwYW4+CiAgICAgIDwvZGl2PgogICAgYH1nZXRBbGxUYWJzKCl7cmV0dXJuIHRoaXMubWVudUdyb3Vwcy5sZW5ndGg+MD9bLi4udGhpcy5tZW51R3JvdXBzLmZsYXRNYXAoUz0+Uy5pdGVtcyksLi4udGhpcy5ib3R0b21UYWJzXTpbLi4udGhpcy50YWJzLC4uLnRoaXMuYm90dG9tVGFic119dXBkYXRlVGFiKF8pe3RoaXMuc2VsZWN0ZWRUYWI9Xyx0aGlzLnNlbGVjdGVkVGFiLmFjdGlvbigpLHRoaXMuZGlzcGF0Y2hFdmVudChuZXcgQ3VzdG9tRXZlbnQoInRhYi1zZWxlY3QiLHtkZXRhaWw6e3RhYjpffSxidWJibGVzOiEwLGNvbXBvc2VkOiEwfSkpfWZpcnN0VXBkYXRlZCgpe2xldCBfPXRoaXMuZ2V0QWxsVGFicygpO18ubGVuZ3RoPjAmJnRoaXMudXBkYXRlVGFiKF9bMF0pfXRvZ2dsZUNvbGxhcHNlKCl7dGhpcy5jb2xsYXBzZWQ9IXRoaXMuY29sbGFwc2VkLHRoaXMuZGlzcGF0Y2hFdmVudChuZXcgQ3VzdG9tRXZlbnQoImNvbGxhcHNlLWNoYW5nZSIse2RldGFpbDp7Y29sbGFwc2VkOnRoaXMuY29sbGFwc2VkfSxidWJibGVzOiEwLGNvbXBvc2VkOiEwfSkpfWNvbnN0cnVjdG9yKCl7c3VwZXIoLi4uYXJndW1lbnRzKSx0bih0aGlzLE4pfXN0YXRpY3t0bihpLHIpfX07cmV0dXJuIFI9aX0pKCl9KTt2YXIgUGxyLE5scj1wKCgpPT57eGUoKTtQbHI9KCk9PkNgCiAgPHN0eWxlPgogICAgLmRlbW8tc2Vjb25kYXJ5bWVudS1jb250YWluZXIgewogICAgICBkaXNwbGF5OiBmbGV4OwogICAgICBoZWlnaHQ6IDEwMCU7CiAgICAgIGJhY2tncm91bmQ6ICMxYTFhMWE7CiAgICAgIGJvcmRlci1yYWRpdXM6IDhweDsKICAgIH0KICAgIC5kZW1vLXNlY29uZGFyeW1lbnUtY29udGFpbmVyIC5zcGFjZXIgewogICAgICBmbGV4OiAxOwogICAgICBiYWNrZ3JvdW5kOiAjMGYwZjBmOwogICAgICBwYWRkaW5nOiAyMHB4OwogICAgICBjb2xvcjogI2EzYTNhMzsKICAgICAgZm9udC1mYW1pbHk6ICdHZWlzdCBTYW5zJywgc2Fucy1zZXJpZjsKICAgIH0KICAgIC5kZW1vLXNlY29uZGFyeW1lbnUtY29udGFpbmVyIC5zcGFjZXIgaDMgewogICAgICBjb2xvcjogI2ZhZmFmYTsKICAgICAgbWFyZ2luLXRvcDogMDsKICAgIH0KICAgIC5kZW1vLXNlY29uZGFyeW1lbnUtY29udGFpbmVyIC5zcGFjZXIgY29kZSB7CiAgICAgIGJhY2tncm91bmQ6ICMyNzI3MmE7CiAgICAgIHBhZGRpbmc6IDJweCA2cHg7CiAgICAgIGJvcmRlci1yYWRpdXM6IDRweDsKICAgICAgZm9udC1zaXplOiAxMnB4OwogICAgfQogICAgLmRlbW8tc2Vjb25kYXJ5bWVudS1jb250YWluZXIgLnNwYWNlciB1bCB7CiAgICAgIGxpbmUtaGVpZ2h0OiAxLjg7CiAgICB9CiAgPC9zdHlsZT4KICA8ZGl2IGNsYXNzPSJkZW1vLXNlY29uZGFyeW1lbnUtY29udGFpbmVyIj4KICAgIDxkZWVzLWFwcHVpLXNlY29uZGFyeW1lbnUKICAgICAgLmhlYWRpbmc9JHsiUHJvamVjdHMifQogICAgICAuZ3JvdXBzPSR7W3tuYW1lOiJOYXZpZ2F0aW9uIixpY29uTmFtZToibHVjaWRlOmNvbXBhc3MiLGl0ZW1zOlt7a2V5OiJEYXNoYm9hcmQiLGljb25OYW1lOiJsdWNpZGU6bGF5b3V0RGFzaGJvYXJkIixhY3Rpb246KCk9PmNvbnNvbGUubG9nKCJEYXNoYm9hcmQgY2xpY2tlZCIpLGJhZGdlOjMsYmFkZ2VWYXJpYW50OiJ3YXJuaW5nIn0se2tleToiUHJvamVjdHMiLGljb25OYW1lOiJsdWNpZGU6Zm9sZGVyIixhY3Rpb246KCk9PmNvbnNvbGUubG9nKCJQcm9qZWN0cyBjbGlja2VkIiksYmFkZ2U6Im5ldyIsYmFkZ2VWYXJpYW50OiJzdWNjZXNzIn0se2tleToiQW5hbHl0aWNzIixpY29uTmFtZToibHVjaWRlOmJhckNoYXJ0MiIsYWN0aW9uOigpPT5jb25zb2xlLmxvZygiQW5hbHl0aWNzIGNsaWNrZWQiKX1dfSx7bmFtZToiQWN0aW9ucyIsaWNvbk5hbWU6Imx1Y2lkZTp6YXAiLGl0ZW1zOlt7dHlwZToiYWN0aW9uIixrZXk6IkNyZWF0ZSBOZXciLGljb25OYW1lOiJsdWNpZGU6cGx1cyIsYWN0aW9uOigpPT5hbGVydCgiQ3JlYXRlIE5ldyBjbGlja2VkISIpfSx7dHlwZToiYWN0aW9uIixrZXk6IkltcG9ydCBEYXRhIixpY29uTmFtZToibHVjaWRlOnVwbG9hZCIsYWN0aW9uOigpPT5hbGVydCgiSW1wb3J0IERhdGEgY2xpY2tlZCEiKX0se3R5cGU6ImRpdmlkZXIifSx7dHlwZToiYWN0aW9uIixrZXk6IkRlbGV0ZSBBbGwiLGljb25OYW1lOiJsdWNpZGU6dHJhc2gyIix2YXJpYW50OiJkYW5nZXIiLGNvbmZpcm1NZXNzYWdlOiJBcmUgeW91IHN1cmUgeW91IHdhbnQgdG8gZGVsZXRlIGFsbCBpdGVtcz8iLGFjdGlvbjooKT0+YWxlcnQoIkRlbGV0ZWQhIil9XX0se25hbWU6IkZpbHRlcnMiLGljb25OYW1lOiJsdWNpZGU6ZmlsdGVyIixpdGVtczpbe3R5cGU6ImhlYWRlciIsbGFiZWw6IlN0YXR1cyJ9LHt0eXBlOiJmaWx0ZXIiLGtleToiU2hvdyBBY3RpdmUiLGljb25OYW1lOiJsdWNpZGU6Y2hlY2tDaXJjbGUiLGFjdGl2ZTohMCxvblRvZ2dsZTplPT5jb25zb2xlLmxvZygiU2hvdyBBY3RpdmU6IixlKX0se3R5cGU6ImZpbHRlciIsa2V5OiJTaG93IEFyY2hpdmVkIixpY29uTmFtZToibHVjaWRlOmFyY2hpdmUiLGFjdGl2ZTohMSxvblRvZ2dsZTplPT5jb25zb2xlLmxvZygiU2hvdyBBcmNoaXZlZDoiLGUpfSx7dHlwZToiZGl2aWRlciJ9LHt0eXBlOiJtdWx0aUZpbHRlciIsa2V5OiJDYXRlZ29yaWVzIixpY29uTmFtZToibHVjaWRlOnRhZyIsY29sbGFwc2VkOiExLG9wdGlvbnM6W3trZXk6ImZyb250ZW5kIixsYWJlbDoiRnJvbnRlbmQiLGNoZWNrZWQ6ITAsaWNvbk5hbWU6Imx1Y2lkZTptb25pdG9yIn0se2tleToiYmFja2VuZCIsbGFiZWw6IkJhY2tlbmQiLGNoZWNrZWQ6ITAsaWNvbk5hbWU6Imx1Y2lkZTpzZXJ2ZXIifSx7a2V5OiJkZXZvcHMiLGxhYmVsOiJEZXZPcHMiLGNoZWNrZWQ6ITEsaWNvbk5hbWU6Imx1Y2lkZTpjbG91ZCJ9LHtrZXk6ImRlc2lnbiIsbGFiZWw6IkRlc2lnbiIsY2hlY2tlZDohMSxpY29uTmFtZToibHVjaWRlOnBhbGV0dGUifV0sb25DaGFuZ2U6ZT0+Y29uc29sZS5sb2coIlNlbGVjdGVkIGNhdGVnb3JpZXM6IixlKX1dfSx7bmFtZToiUmVzb3VyY2VzIixpY29uTmFtZToibHVjaWRlOmJvb2tPcGVuIixjb2xsYXBzZWQ6ITAsaXRlbXM6W3t0eXBlOiJoZWFkZXIiLGxhYmVsOiJEb2N1bWVudGF0aW9uIn0se3R5cGU6ImxpbmsiLGtleToiQVBJIFJlZmVyZW5jZSIsaWNvbk5hbWU6Imx1Y2lkZTpmaWxlVGV4dCIsaHJlZjoiaHR0cHM6Ly9hcGkuZXhhbXBsZS5jb20vZG9jcyJ9LHt0eXBlOiJsaW5rIixrZXk6IlVzZXIgR3VpZGUiLGljb25OYW1lOiJsdWNpZGU6Ym9vayIsaHJlZjoiaHR0cHM6Ly9kb2NzLmV4YW1wbGUuY29tL2d1aWRlIn0se3R5cGU6ImRpdmlkZXIifSx7dHlwZToiaGVhZGVyIixsYWJlbDoiU3VwcG9ydCJ9LHt0eXBlOiJsaW5rIixrZXk6IkhlbHAgQ2VudGVyIixpY29uTmFtZToibHVjaWRlOmhlbHBDaXJjbGUiLGhyZWY6Ii9oZWxwIixleHRlcm5hbDohMX0se3R5cGU6ImxpbmsiLGtleToiR2l0SHViIElzc3VlcyIsaWNvbk5hbWU6Imx1Y2lkZTpnaXRodWIiLGhyZWY6Imh0dHBzOi8vZ2l0aHViLmNvbS9leGFtcGxlL2lzc3VlcyJ9XX1dfQogICAgICBAaXRlbS1zZWxlY3Q9JHtlPT5jb25zb2xlLmxvZygiVGFiIHNlbGVjdGVkOiIsZS5kZXRhaWwpfQogICAgICBAYWN0aW9uLWNsaWNrPSR7ZT0+Y29uc29sZS5sb2coIkFjdGlvbiBjbGlja2VkOiIsZS5kZXRhaWwpfQogICAgICBAZmlsdGVyLXRvZ2dsZT0ke2U9PmNvbnNvbGUubG9nKCJGaWx0ZXIgdG9nZ2xlZDoiLGUuZGV0YWlsKX0KICAgICAgQG11bHRpZmlsdGVyLWNoYW5nZT0ke2U9PmNvbnNvbGUubG9nKCJNdWx0aS1maWx0ZXIgY2hhbmdlZDoiLGUuZGV0YWlsKX0KICAgICAgQGxpbmstY2xpY2s9JHtlPT5jb25zb2xlLmxvZygiTGluayBjbGlja2VkOiIsZS5kZXRhaWwpfQogICAgPjwvZGVlcy1hcHB1aS1zZWNvbmRhcnltZW51PgogICAgPGRpdiBjbGFzcz0ic3BhY2VyIj4KICAgICAgPGgzPlNlY29uZGFyeSBNZW51IERlbW88L2gzPgogICAgICA8cD5UaGlzIGRlbW8gc2hvd2Nhc2VzIGFsbCA4IGl0ZW0gdHlwZXM6PC9wPgogICAgICA8dWw+CiAgICAgICAgPGxpPjxjb2RlPnRhYjwvY29kZT4gLSBTZWxlY3RhYmxlIGl0ZW1zIChOYXZpZ2F0aW9uIGdyb3VwKTwvbGk+CiAgICAgICAgPGxpPjxjb2RlPmFjdGlvbjwvY29kZT4gLSBCbHVlIGFjdGlvbnMgKEFjdGlvbnMgZ3JvdXApPC9saT4KICAgICAgICA8bGk+PGNvZGU+YWN0aW9uPC9jb2RlPiB3aXRoIDxjb2RlPnZhcmlhbnQ6ICdkYW5nZXInPC9jb2RlPiAtIFJlZCBkYW5nZXIgYWN0aW9uPC9saT4KICAgICAgICA8bGk+PGNvZGU+ZmlsdGVyPC9jb2RlPiAtIENoZWNrYm94IHRvZ2dsZXMgKEZpbHRlcnMgZ3JvdXApPC9saT4KICAgICAgICA8bGk+PGNvZGU+bXVsdGlGaWx0ZXI8L2NvZGU+IC0gQ29sbGFwc2libGUgbXVsdGktc2VsZWN0IChDYXRlZ29yaWVzKTwvbGk+CiAgICAgICAgPGxpPjxjb2RlPmRpdmlkZXI8L2NvZGU+IC0gVmlzdWFsIHNlcGFyYXRvcnM8L2xpPgogICAgICAgIDxsaT48Y29kZT5oZWFkZXI8L2NvZGU+IC0gU2VjdGlvbiBsYWJlbHM8L2xpPgogICAgICAgIDxsaT48Y29kZT5saW5rPC9jb2RlPiAtIEV4dGVybmFsL2ludGVybmFsIGxpbmtzIChSZXNvdXJjZXMgZ3JvdXApPC9saT4KICAgICAgPC91bD4KICAgICAgPHA+VHJ5IHRoZSBjb2xsYXBzZSB0b2dnbGUgb24gdGhlIGxlZnQgZWRnZSE8L3A+CiAgICA8L2Rpdj4KICA8L2Rpdj4KYH0pO3ZhciB4YyxlYSxGbHIsTjZlPXAoKCk9Pnt3aSgpOyQ0KCk7TWkoKTtvcigpO3hlKCk7TmxyKCk7SmUoKTt4Yz1mdW5jdGlvbihlLHQscixpLGEsbil7ZnVuY3Rpb24gbyh5KXtpZih5IT09dm9pZCAwJiZ0eXBlb2YgeSE9ImZ1bmN0aW9uIil0aHJvdyBuZXcgVHlwZUVycm9yKCJGdW5jdGlvbiBleHBlY3RlZCIpO3JldHVybiB5fWZvcih2YXIgcz1pLmtpbmQsbD1zPT09ImdldHRlciI/ImdldCI6cz09PSJzZXR0ZXIiPyJzZXQiOiJ2YWx1ZSIsYz0hdCYmZT9pLnN0YXRpYz9lOmUucHJvdG90eXBlOm51bGwsdT10fHwoYz9PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGMsaS5uYW1lKTp7fSksZCxoPSExLGY9ci5sZW5ndGgtMTtmPj0wO2YtLSl7dmFyIHg9e307Zm9yKHZhciB2IGluIGkpeFt2XT12PT09ImFjY2VzcyI/e306aVt2XTtmb3IodmFyIHYgaW4gaS5hY2Nlc3MpeC5hY2Nlc3Nbdl09aS5hY2Nlc3Nbdl07eC5hZGRJbml0aWFsaXplcj1mdW5jdGlvbih5KXtpZihoKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBhZGQgaW5pdGlhbGl6ZXJzIGFmdGVyIGRlY29yYXRpb24gaGFzIGNvbXBsZXRlZCIpO24ucHVzaChvKHl8fG51bGwpKX07dmFyIGI9KDAscltmXSkocz09PSJhY2Nlc3NvciI/e2dldDp1LmdldCxzZXQ6dS5zZXR9OnVbbF0seCk7aWYocz09PSJhY2Nlc3NvciIpe2lmKGI9PT12b2lkIDApY29udGludWU7aWYoYj09PW51bGx8fHR5cGVvZiBiIT0ib2JqZWN0Iil0aHJvdyBuZXcgVHlwZUVycm9yKCJPYmplY3QgZXhwZWN0ZWQiKTsoZD1vKGIuZ2V0KSkmJih1LmdldD1kKSwoZD1vKGIuc2V0KSkmJih1LnNldD1kKSwoZD1vKGIuaW5pdCkpJiZhLnVuc2hpZnQoZCl9ZWxzZShkPW8oYikpJiYocz09PSJmaWVsZCI/YS51bnNoaWZ0KGQpOnVbbF09ZCl9YyYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGMsaS5uYW1lLHUpLGg9ITB9LGVhPWZ1bmN0aW9uKGUsdCxyKXtmb3IodmFyIGk9YXJndW1lbnRzLmxlbmd0aD4yLGE9MDthPHQubGVuZ3RoO2ErKylyPWk/dFthXS5jYWxsKGUscik6dFthXS5jYWxsKGUpO3JldHVybiBpP3I6dm9pZCAwfSxGbHI9KCgpPT57bGV0IGU9W3llKCJkZWVzLWFwcHVpLXNlY29uZGFyeW1lbnUiKV0sdCxyPVtdLGksYT16ZSxuLG89W10scz1bXSxsLGM9W10sdT1bXSxkLGg9W10sZj1bXSx4LHY9W10sYj1bXSx5LHc9W10saz1bXSxPLHo9W10sTT1bXSxGLEQ9W10sTj1bXSxSLF89W10sUz1bXTt2YXIgJD1jbGFzcyBleHRlbmRzIGF7c3RhdGlje2k9dGhpc31zdGF0aWN7bGV0IFQ9dHlwZW9mIFN5bWJvbD09ImZ1bmN0aW9uIiYmU3ltYm9sLm1ldGFkYXRhP09iamVjdC5jcmVhdGUoYVtTeW1ib2wubWV0YWRhdGFdPz9udWxsKTp2b2lkIDA7bj1baih7dHlwZTpTdHJpbmd9KV0sbD1baih7dHlwZTpBcnJheX0pXSxkPVtqKHt0eXBlOkFycmF5fSldLHg9W2ooe3R5cGU6T2JqZWN0fSldLHk9W2ZlKCldLE89W2ZlKCldLEY9W2ZlKCldLFI9W2ooe3R5cGU6Qm9vbGVhbixyZWZsZWN0OiEwfSldLHhjKHRoaXMsbnVsbCxuLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiaGVhZGluZyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6RT0+ImhlYWRpbmciaW4gRSxnZXQ6RT0+RS5oZWFkaW5nLHNldDooRSxxKT0+e0UuaGVhZGluZz1xfX0sbWV0YWRhdGE6VH0sbyxzKSx4Yyh0aGlzLG51bGwsbCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6Imdyb3VwcyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6RT0+Imdyb3VwcyJpbiBFLGdldDpFPT5FLmdyb3VwcyxzZXQ6KEUscSk9PntFLmdyb3Vwcz1xfX0sbWV0YWRhdGE6VH0sYyx1KSx4Yyh0aGlzLG51bGwsZCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InNlbGVjdGlvbk9wdGlvbnMiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOkU9PiJzZWxlY3Rpb25PcHRpb25zImluIEUsZ2V0OkU9PkUuc2VsZWN0aW9uT3B0aW9ucyxzZXQ6KEUscSk9PntFLnNlbGVjdGlvbk9wdGlvbnM9cX19LG1ldGFkYXRhOlR9LGgsZikseGModGhpcyxudWxsLHgse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJzZWxlY3RlZEl0ZW0iLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOkU9PiJzZWxlY3RlZEl0ZW0iaW4gRSxnZXQ6RT0+RS5zZWxlY3RlZEl0ZW0sc2V0OihFLHEpPT57RS5zZWxlY3RlZEl0ZW09cX19LG1ldGFkYXRhOlR9LHYsYikseGModGhpcyxudWxsLHkse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJjb2xsYXBzZWRHcm91cHMiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOkU9PiJjb2xsYXBzZWRHcm91cHMiaW4gRSxnZXQ6RT0+RS5jb2xsYXBzZWRHcm91cHMsc2V0OihFLHEpPT57RS5jb2xsYXBzZWRHcm91cHM9cX19LG1ldGFkYXRhOlR9LHcsaykseGModGhpcyxudWxsLE8se2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJjb2xsYXBzZWRNdWx0aUZpbHRlcnMiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOkU9PiJjb2xsYXBzZWRNdWx0aUZpbHRlcnMiaW4gRSxnZXQ6RT0+RS5jb2xsYXBzZWRNdWx0aUZpbHRlcnMsc2V0OihFLHEpPT57RS5jb2xsYXBzZWRNdWx0aUZpbHRlcnM9cX19LG1ldGFkYXRhOlR9LHosTSkseGModGhpcyxudWxsLEYse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJyZW5kZXJDb3VudGVyIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpFPT4icmVuZGVyQ291bnRlciJpbiBFLGdldDpFPT5FLnJlbmRlckNvdW50ZXIsc2V0OihFLHEpPT57RS5yZW5kZXJDb3VudGVyPXF9fSxtZXRhZGF0YTpUfSxELE4pLHhjKHRoaXMsbnVsbCxSLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiY29sbGFwc2VkIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpFPT4iY29sbGFwc2VkImluIEUsZ2V0OkU9PkUuY29sbGFwc2VkLHNldDooRSxxKT0+e0UuY29sbGFwc2VkPXF9fSxtZXRhZGF0YTpUfSxfLFMpLHhjKG51bGwsdD17dmFsdWU6aX0sZSx7a2luZDoiY2xhc3MiLG5hbWU6aS5uYW1lLG1ldGFkYXRhOlR9LG51bGwsciksJD1pPXQudmFsdWUsVCYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGksU3ltYm9sLm1ldGFkYXRhLHtlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMCx2YWx1ZTpUfSl9c3RhdGljIGRlbW89UGxyO3N0YXRpYyBkZW1vR3JvdXBzPVsiQXBwIFVJIl07I2U9ZWEodGhpcyxvLCJNZW51Iik7Z2V0IGhlYWRpbmcoKXtyZXR1cm4gdGhpcy4jZX1zZXQgaGVhZGluZyhUKXt0aGlzLiNlPVR9I3Q9KGVhKHRoaXMscyksZWEodGhpcyxjLFtdKSk7Z2V0IGdyb3Vwcygpe3JldHVybiB0aGlzLiN0fXNldCBncm91cHMoVCl7dGhpcy4jdD1UfSNyPShlYSh0aGlzLHUpLGVhKHRoaXMsaCxbXSkpO2dldCBzZWxlY3Rpb25PcHRpb25zKCl7cmV0dXJuIHRoaXMuI3J9c2V0IHNlbGVjdGlvbk9wdGlvbnMoVCl7dGhpcy4jcj1UfSNpPShlYSh0aGlzLGYpLGVhKHRoaXMsdixudWxsKSk7Z2V0IHNlbGVjdGVkSXRlbSgpe3JldHVybiB0aGlzLiNpfXNldCBzZWxlY3RlZEl0ZW0oVCl7dGhpcy4jaT1UfSNhPShlYSh0aGlzLGIpLGVhKHRoaXMsdyxuZXcgU2V0KSk7Z2V0IGNvbGxhcHNlZEdyb3Vwcygpe3JldHVybiB0aGlzLiNhfXNldCBjb2xsYXBzZWRHcm91cHMoVCl7dGhpcy4jYT1UfSNuPShlYSh0aGlzLGspLGVhKHRoaXMseixuZXcgU2V0KSk7Z2V0IGNvbGxhcHNlZE11bHRpRmlsdGVycygpe3JldHVybiB0aGlzLiNufXNldCBjb2xsYXBzZWRNdWx0aUZpbHRlcnMoVCl7dGhpcy4jbj1UfSNvPShlYSh0aGlzLE0pLGVhKHRoaXMsRCwwKSk7Z2V0IHJlbmRlckNvdW50ZXIoKXtyZXR1cm4gdGhpcy4jb31zZXQgcmVuZGVyQ291bnRlcihUKXt0aGlzLiNvPVR9I3M9KGVhKHRoaXMsTiksZWEodGhpcyxfLCExKSk7Z2V0IGNvbGxhcHNlZCgpe3JldHVybiB0aGlzLiNzfXNldCBjb2xsYXBzZWQoVCl7dGhpcy4jcz1UfXN0YXRpYyBzdHlsZXM9W0RlLG0uZGVmYXVsdFN0eWxlcyxvZWAKICAgICAgLyogVE9ETzogTWlncmF0ZSBoYXJkY29kZWQgdmFsdWVzIHRvIC0tZGVlcy0qIENTUyB2YXJpYWJsZXMgKi8KICAgICAgOmhvc3QgewogICAgICAgIC0tc2lkZWJhci13aWR0aC1leHBhbmRlZDogMjQwcHg7CiAgICAgICAgLS1zaWRlYmFyLXdpZHRoLWNvbGxhcHNlZDogNTZweDsKICAgICAgICAtLXNpZGViYXItYmc6ICR7bS5iZFRoZW1lKCIjZmFmYWZhIiwiIzBhMGEwYSIpfTsKICAgICAgICAtLXNpZGViYXItZmc6ICR7bS5iZFRoZW1lKCIjNTI1MjUyIiwiI2EzYTNhMyIpfTsKICAgICAgICAtLXNpZGViYXItZmctbXV0ZWQ6ICR7bS5iZFRoZW1lKCIjNzM3MzczIiwiIzczNzM3MyIpfTsKICAgICAgICAtLXNpZGViYXItZmctYWN0aXZlOiAke20uYmRUaGVtZSgiIzBhMGEwYSIsIiNmYWZhZmEiKX07CiAgICAgICAgLS1zaWRlYmFyLWJvcmRlcjogJHttLmJkVGhlbWUoIiNlNWU1ZTUiLCIjMWExYTFhIil9OwogICAgICAgIC0tc2lkZWJhci1ob3ZlcjogJHttLmJkVGhlbWUoInJnYmEoMCwgMCwgMCwgMC4wNCkiLCJyZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMDYpIil9OwogICAgICAgIC0tc2lkZWJhci1hY3RpdmU6ICR7bS5iZFRoZW1lKCJyZ2JhKDAsIDAsIDAsIDAuMDYpIiwicmdiYSgyNTUsIDI1NSwgMjU1LCAwLjA4KSIpfTsKICAgICAgICAtLXNpZGViYXItYWNjZW50OiAke20uYmRUaGVtZSgiIzBhMGEwYSIsIiNmYWZhZmEiKX07CiAgICAgICAgLS10b29sdGlwLWJnOiAke20uYmRUaGVtZSgiIzE4MTgxYiIsIiNmYWZhZmEiKX07CiAgICAgICAgLS10b29sdGlwLWZnOiAke20uYmRUaGVtZSgiI2ZhZmFmYSIsIiMxODE4MWIiKX07CgogICAgICAgIC8qIEJhZGdlIGNvbG9ycyAqLwogICAgICAgIC0tYmFkZ2UtZGVmYXVsdC1iZzogJHttLmJkVGhlbWUoIiNmNGY0ZjUiLCIjMjcyNzJhIil9OwogICAgICAgIC0tYmFkZ2UtZGVmYXVsdC1mZzogJHttLmJkVGhlbWUoIiMzZjNmNDYiLCIjYTFhMWFhIil9OwogICAgICAgIC0tYmFkZ2Utc3VjY2Vzcy1iZzogJHttLmJkVGhlbWUoIiNkY2ZjZTciLCIjMTQ1MzJkIil9OwogICAgICAgIC0tYmFkZ2Utc3VjY2Vzcy1mZzogJHttLmJkVGhlbWUoIiMxNjY1MzQiLCIjNGFkZTgwIil9OwogICAgICAgIC0tYmFkZ2Utd2FybmluZy1iZzogJHttLmJkVGhlbWUoIiNmZWYzYzciLCIjNDUxYTAzIil9OwogICAgICAgIC0tYmFkZ2Utd2FybmluZy1mZzogJHttLmJkVGhlbWUoIiM5MjQwMGUiLCIjZmJiZjI0Iil9OwogICAgICAgIC0tYmFkZ2UtZXJyb3ItYmc6ICR7bS5iZFRoZW1lKCIjZmVlMmUyIiwiIzQ1MGEwYSIpfTsKICAgICAgICAtLWJhZGdlLWVycm9yLWZnOiAke20uYmRUaGVtZSgiIzk5MWIxYiIsIiNmODcxNzEiKX07CgogICAgICAgIC8qIEFjdGlvbiBjb2xvcnMgKi8KICAgICAgICAtLWFjdGlvbi1wcmltYXJ5OiAke20uYmRUaGVtZSgiIzI1NjNlYiIsIiMzYjgyZjYiKX07CiAgICAgICAgLS1hY3Rpb24tcHJpbWFyeS1ob3ZlcjogJHttLmJkVGhlbWUoIiMxZDRlZDgiLCIjNjBhNWZhIil9OwogICAgICAgIC0tYWN0aW9uLWRhbmdlcjogJHttLmJkVGhlbWUoIiNkYzI2MjYiLCIjZWY0NDQ0Iil9OwogICAgICAgIC0tYWN0aW9uLWRhbmdlci1ob3ZlcjogJHttLmJkVGhlbWUoIiNiOTFjMWMiLCIjZjg3MTcxIil9OwoKICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgICAgZGlzcGxheTogYmxvY2s7CiAgICAgICAgaGVpZ2h0OiAxMDAlOwogICAgICAgIHdpZHRoOiB2YXIoLS1zaWRlYmFyLXdpZHRoLWV4cGFuZGVkKTsKICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1zaWRlYmFyLWJnKTsKICAgICAgICBib3JkZXItcmlnaHQ6IDFweCBzb2xpZCB2YXIoLS1zaWRlYmFyLWJvcmRlcik7CiAgICAgICAgZm9udC1mYW1pbHk6ICdHZWlzdCBTYW5zJywgJ0ludGVyJywgLWFwcGxlLXN5c3RlbSwgQmxpbmtNYWNTeXN0ZW1Gb250LCBzYW5zLXNlcmlmOwogICAgICAgIHVzZXItc2VsZWN0OiBub25lOwogICAgICAgIHRyYW5zaXRpb246IHdpZHRoIDAuMjVzIGVhc2U7CiAgICAgIH0KCiAgICAgIDpob3N0KFtjb2xsYXBzZWRdKSB7CiAgICAgICAgd2lkdGg6IHZhcigtLXNpZGViYXItd2lkdGgtY29sbGFwc2VkKTsKICAgICAgfQoKICAgICAgLm1haW5jb250YWluZXIgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgICBoZWlnaHQ6IDEwMCU7CiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgIH0KCiAgICAgIC8qIEZsb2F0aW5nIGNvbGxhcHNlIHRvZ2dsZSBidXR0b24gKi8KICAgICAgLmNvbGxhcHNlLXRvZ2dsZSB7CiAgICAgICAgcG9zaXRpb246IGFic29sdXRlOwogICAgICAgIHJpZ2h0OiAtMTJweDsKICAgICAgICB0b3A6IDI0cHg7CiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpOwogICAgICAgIHdpZHRoOiAyNHB4OwogICAgICAgIGhlaWdodDogMjRweDsKICAgICAgICBib3JkZXItcmFkaXVzOiA1MCU7CiAgICAgICAgYmFja2dyb3VuZDogJHttLmJkVGhlbWUoIiNmZmZmZmYiLCIjMjcyNzJhIil9OwogICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICR7bS5iZFRoZW1lKCIjZTVlNWU1IiwiIzNmM2Y0NiIpfTsKICAgICAgICBib3gtc2hhZG93OiAwIDJweCA0cHggcmdiYSgwLCAwLCAwLCAwLjEpOwogICAgICAgIGN1cnNvcjogcG9pbnRlcjsKICAgICAgICB6LWluZGV4OiAxMDsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7CiAgICAgICAgY29sb3I6ICR7bS5iZFRoZW1lKCIjNzM3MzczIiwiI2ExYTFhYSIpfTsKICAgICAgICBvcGFjaXR5OiAwOwogICAgICAgIHRyYW5zaXRpb246IG9wYWNpdHkgMC4ycyBlYXNlLCBiYWNrZ3JvdW5kIDAuMTVzIGVhc2U7CiAgICAgICAgcGFkZGluZzogMDsKICAgICAgfQoKICAgICAgLmNvbGxhcHNlLXRvZ2dsZTpob3ZlciB7CiAgICAgICAgYmFja2dyb3VuZDogJHttLmJkVGhlbWUoIiNmNGY0ZjUiLCIjM2YzZjQ2Iil9OwogICAgICAgIGNvbG9yOiAke20uYmRUaGVtZSgiIzBhMGEwYSIsIiNmYWZhZmEiKX07CiAgICAgIH0KCiAgICAgIDpob3N0KDpob3ZlcikgLmNvbGxhcHNlLXRvZ2dsZSB7CiAgICAgICAgb3BhY2l0eTogMTsKICAgICAgfQoKICAgICAgLmNvbGxhcHNlLXRvZ2dsZSBkZWVzLWljb24gewogICAgICAgIGZvbnQtc2l6ZTogMTRweDsKICAgICAgfQoKICAgICAgLyogSGVhZGVyIFNlY3Rpb24gKi8KICAgICAgLmhlYWRlciB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjsKICAgICAgICBoZWlnaHQ6IDQ4cHg7CiAgICAgICAgcGFkZGluZzogMCAxNnB4OwogICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCB2YXIoLS1zaWRlYmFyLWJvcmRlcik7CiAgICAgICAgZmxleC1zaHJpbms6IDA7CiAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDsKICAgICAgfQoKICAgICAgLmhlYWRlciAuaGVhZGluZyB7CiAgICAgICAgZmxleDogMTsKICAgICAgICBmb250LXNpemU6IDE0cHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDsKICAgICAgICBjb2xvcjogdmFyKC0tc2lkZWJhci1mZy1hY3RpdmUpOwogICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7CiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpczsKICAgICAgICB0cmFuc2l0aW9uOiBvcGFjaXR5IDAuMnMgZWFzZSwgd2lkdGggMC4yNXMgZWFzZTsKICAgICAgfQoKICAgICAgOmhvc3QoW2NvbGxhcHNlZF0pIC5oZWFkZXIgewogICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOwogICAgICAgIHBhZGRpbmc6IDAgOHB4OwogICAgICB9CgogICAgICA6aG9zdChbY29sbGFwc2VkXSkgLmhlYWRlciAuaGVhZGluZyB7CiAgICAgICAgb3BhY2l0eTogMDsKICAgICAgICB3aWR0aDogMDsKICAgICAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgICB9CgogICAgICAvKiBTY3JvbGxhYmxlIE1lbnUgU2VjdGlvbiAqLwogICAgICAubWVudVNlY3Rpb24gewogICAgICAgIGZsZXg6IDE7CiAgICAgICAgb3ZlcmZsb3cteTogYXV0bzsKICAgICAgICBvdmVyZmxvdy14OiBoaWRkZW47CiAgICAgICAgb3ZlcnNjcm9sbC1iZWhhdmlvcjogY29udGFpbjsKICAgICAgICBwYWRkaW5nOiA4cHggMDsKICAgICAgfQoKICAgICAgLm1lbnVTZWN0aW9uOjotd2Via2l0LXNjcm9sbGJhciB7CiAgICAgICAgd2lkdGg6IDZweDsKICAgICAgfQoKICAgICAgLm1lbnVTZWN0aW9uOjotd2Via2l0LXNjcm9sbGJhci10cmFjayB7CiAgICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7CiAgICAgIH0KCiAgICAgIC5tZW51U2VjdGlvbjo6LXdlYmtpdC1zY3JvbGxiYXItdGh1bWIgewogICAgICAgIGJhY2tncm91bmQ6ICR7bS5iZFRoZW1lKCJyZ2JhKDAsIDAsIDAsIDAuMTUpIiwicmdiYSgyNTUsIDI1NSwgMjU1LCAwLjE1KSIpfTsKICAgICAgICBib3JkZXItcmFkaXVzOiAzcHg7CiAgICAgIH0KCiAgICAgIC5tZW51U2VjdGlvbjo6LXdlYmtpdC1zY3JvbGxiYXItdGh1bWI6aG92ZXIgewogICAgICAgIGJhY2tncm91bmQ6ICR7bS5iZFRoZW1lKCJyZ2JhKDAsIDAsIDAsIDAuMjUpIiwicmdiYSgyNTUsIDI1NSwgMjU1LCAwLjI1KSIpfTsKICAgICAgfQoKICAgICAgLyogTWVudSBHcm91cCAqLwogICAgICAubWVudUdyb3VwIHsKICAgICAgICBwYWRkaW5nOiAwIDhweDsKICAgICAgICBtYXJnaW4tYm90dG9tOiA0cHg7CiAgICAgIH0KCiAgICAgIDpob3N0KFtjb2xsYXBzZWRdKSAubWVudUdyb3VwIHsKICAgICAgICBwYWRkaW5nOiAwIDRweDsKICAgICAgfQoKICAgICAgLmdyb3VwSGVhZGVyIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuOwogICAgICAgIHBhZGRpbmc6IDhweCAxMnB4OwogICAgICAgIGN1cnNvcjogcG9pbnRlcjsKICAgICAgICBib3JkZXItcmFkaXVzOiA2cHg7CiAgICAgICAgdHJhbnNpdGlvbjogYmFja2dyb3VuZCAwLjE1cyBlYXNlLCBvcGFjaXR5IDAuMnMgZWFzZSwgbWF4LWhlaWdodCAwLjI1cyBlYXNlOwogICAgICAgIG1heC1oZWlnaHQ6IDQwcHg7CiAgICAgIH0KCiAgICAgIC5ncm91cEhlYWRlcjpob3ZlciB7CiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHttLmJkVGhlbWUoInJnYmEoMTQwLCAxMjAsIDEwMCwgMC4wNikiLCJyZ2JhKDE4MCwgMTYwLCAxNDAsIDAuMDgpIil9OwogICAgICAgIHBhZGRpbmc6IDdweCAxMXB4OwogICAgICB9CgogICAgICAuZ3JvdXBIZWFkZXI6bm90KC5jb2xsYXBzZWQpIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke20uYmRUaGVtZSgicmdiYSgxNDAsIDEyMCwgMTAwLCAwLjA2KSIsInJnYmEoMTgwLCAxNjAsIDE0MCwgMC4wOCkiKX07CiAgICAgICAgYm9yZGVyOiBub25lOwogICAgICAgIHBhZGRpbmc6IDhweCAxMnB4OwogICAgICB9CgogICAgICAuZ3JvdXBIZWFkZXIgLmdyb3VwVGl0bGUgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBnYXA6IDhweDsKICAgICAgICBmb250LXNpemU6IDExcHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDsKICAgICAgICBjb2xvcjogJHttLmJkVGhlbWUoIiM3ODcxNmMiLCIjYjVhOTlhIil9OwogICAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7CiAgICAgICAgbGV0dGVyLXNwYWNpbmc6IDAuNXB4OwogICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7CiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgICAgfQoKICAgICAgLmdyb3VwSGVhZGVyIC5ncm91cFRpdGxlIGRlZXMtaWNvbiB7CiAgICAgICAgZm9udC1zaXplOiAxNnB4OwogICAgICAgIGNvbG9yOiAke20uYmRUaGVtZSgiIzc4NzE2YyIsIiNiNWE5OWEiKX07CiAgICAgIH0KCiAgICAgIC5ncm91cEhlYWRlciAuY2hldnJvbiB7CiAgICAgICAgZm9udC1zaXplOiAxMnB4OwogICAgICAgIHRyYW5zaXRpb246IHRyYW5zZm9ybSAwLjJzIGVhc2U7CiAgICAgICAgY29sb3I6ICR7bS5iZFRoZW1lKCIjNzg3MTZjIiwiI2I1YTk5YSIpfTsKICAgICAgfQoKICAgICAgLmdyb3VwSGVhZGVyLmNvbGxhcHNlZCAuY2hldnJvbiB7CiAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoLTkwZGVnKTsKICAgICAgfQoKICAgICAgLyogSGlkZSBncm91cCBoZWFkZXJzIHdoZW4gaG9yaXpvbnRhbGx5IGNvbGxhcHNlZCAqLwogICAgICA6aG9zdChbY29sbGFwc2VkXSkgLmdyb3VwSGVhZGVyIHsKICAgICAgICBvcGFjaXR5OiAwOwogICAgICAgIG1heC1oZWlnaHQ6IDA7CiAgICAgICAgcGFkZGluZzogMDsKICAgICAgICBtYXJnaW46IDA7CiAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7CiAgICAgIH0KCiAgICAgIC8qIEdyb3VwIEl0ZW1zIENvbnRhaW5lciAqLwogICAgICAuZ3JvdXBJdGVtcyB7CiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgICAgICB0cmFuc2l0aW9uOiBtYXgtaGVpZ2h0IDAuMjVzIGVhc2UsIG9wYWNpdHkgMC4ycyBlYXNlLCBtYXJnaW4gMC4yNXMgZWFzZTsKICAgICAgICBtYXgtaGVpZ2h0OiAxMDAwcHg7CiAgICAgICAgb3BhY2l0eTogMTsKICAgICAgICBtYXJnaW4tYm90dG9tOiAxMnB4OwogICAgICB9CgogICAgICAuZ3JvdXBJdGVtcy5jb2xsYXBzZWQgewogICAgICAgIG1heC1oZWlnaHQ6IDA7CiAgICAgICAgb3BhY2l0eTogMDsKICAgICAgICBtYXJnaW4tYm90dG9tOiAwOwogICAgICB9CgogICAgICAvKiBBbHdheXMgc2hvdyBpdGVtcyB3aGVuIGhvcml6b250YWxseSBjb2xsYXBzZWQgKHJlZ2FyZGxlc3Mgb2YgZ3JvdXAgY29sbGFwc2Ugc3RhdGUpICovCiAgICAgIDpob3N0KFtjb2xsYXBzZWRdKSAuZ3JvdXBJdGVtcyB7CiAgICAgICAgbWF4LWhlaWdodDogbm9uZTsKICAgICAgICBvcGFjaXR5OiAxOwogICAgICB9CgogICAgICAvKiBNZW51IEl0ZW0gQmFzZSAqLwogICAgICAubWVudUl0ZW0gewogICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgZ2FwOiAxMHB4OwogICAgICAgIHBhZGRpbmc6IDhweCAxMnB4OwogICAgICAgIG1hcmdpbjogMnB4IDA7CiAgICAgICAgZm9udC1zaXplOiAxM3B4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA0NTA7CiAgICAgICAgYm9yZGVyLXJhZGl1czogNnB4OwogICAgICAgIGN1cnNvcjogcG9pbnRlcjsKICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC4xNXMgZWFzZTsKICAgICAgICBjb2xvcjogdmFyKC0tc2lkZWJhci1mZyk7CiAgICAgIH0KCiAgICAgIC5tZW51SXRlbTpob3ZlciB7CiAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tc2lkZWJhci1ob3Zlcik7CiAgICAgICAgY29sb3I6IHZhcigtLXNpZGViYXItZmctYWN0aXZlKTsKICAgICAgfQoKICAgICAgLm1lbnVJdGVtOmFjdGl2ZSB7CiAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tc2lkZWJhci1hY3RpdmUpOwogICAgICB9CgogICAgICAubWVudUl0ZW0uZGlzYWJsZWQgewogICAgICAgIG9wYWNpdHk6IDAuNTsKICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkOwogICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lOwogICAgICB9CgogICAgICAubWVudUl0ZW0uc2VsZWN0ZWQgewogICAgICAgIGJhY2tncm91bmQ6IHZhcigtLXNpZGViYXItYWN0aXZlKTsKICAgICAgICBjb2xvcjogdmFyKC0tc2lkZWJhci1mZy1hY3RpdmUpOwogICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7CiAgICAgIH0KCiAgICAgIC5tZW51SXRlbS5zZWxlY3RlZDo6YmVmb3JlIHsKICAgICAgICBjb250ZW50OiAnJzsKICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgICAgbGVmdDogMDsKICAgICAgICB0b3A6IDUwJTsKICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSk7CiAgICAgICAgd2lkdGg6IDNweDsKICAgICAgICBoZWlnaHQ6IDE2cHg7CiAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tc2lkZWJhci1hY2NlbnQpOwogICAgICAgIGJvcmRlci1yYWRpdXM6IDAgMnB4IDJweCAwOwogICAgICB9CgogICAgICAubWVudUl0ZW0gZGVlcy1pY29uIHsKICAgICAgICBmb250LXNpemU6IDE2cHg7CiAgICAgICAgb3BhY2l0eTogMC43OwogICAgICAgIGZsZXgtc2hyaW5rOiAwOwogICAgICB9CgogICAgICAubWVudUl0ZW0uc2VsZWN0ZWQgZGVlcy1pY29uIHsKICAgICAgICBvcGFjaXR5OiAxOwogICAgICB9CgogICAgICAubWVudUl0ZW0gLml0ZW1MYWJlbCB7CiAgICAgICAgZmxleDogMTsKICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwOwogICAgICAgIG92ZXJmbG93OiBoaWRkZW47CiAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7CiAgICAgICAgdHJhbnNpdGlvbjogb3BhY2l0eSAwLjJzIGVhc2UsIHdpZHRoIDAuMjVzIGVhc2U7CiAgICAgIH0KCiAgICAgIC8qIEFjdGlvbiBJdGVtIFN0eWxlcyAqLwogICAgICAubWVudUl0ZW0uYWN0aW9uLXByaW1hcnkgewogICAgICAgIGNvbG9yOiB2YXIoLS1hY3Rpb24tcHJpbWFyeSk7CiAgICAgIH0KCiAgICAgIC5tZW51SXRlbS5hY3Rpb24tcHJpbWFyeTpob3ZlciB7CiAgICAgICAgY29sb3I6IHZhcigtLWFjdGlvbi1wcmltYXJ5LWhvdmVyKTsKICAgICAgICBiYWNrZ3JvdW5kOiAke20uYmRUaGVtZSgicmdiYSgzNywgOTksIDIzNSwgMC4wOCkiLCJyZ2JhKDU5LCAxMzAsIDI0NiwgMC4xMikiKX07CiAgICAgIH0KCiAgICAgIC5tZW51SXRlbS5hY3Rpb24tcHJpbWFyeSBkZWVzLWljb24gewogICAgICAgIG9wYWNpdHk6IDE7CiAgICAgIH0KCiAgICAgIC5tZW51SXRlbS5hY3Rpb24tZGFuZ2VyIHsKICAgICAgICBjb2xvcjogdmFyKC0tYWN0aW9uLWRhbmdlcik7CiAgICAgIH0KCiAgICAgIC5tZW51SXRlbS5hY3Rpb24tZGFuZ2VyOmhvdmVyIHsKICAgICAgICBjb2xvcjogdmFyKC0tYWN0aW9uLWRhbmdlci1ob3Zlcik7CiAgICAgICAgYmFja2dyb3VuZDogJHttLmJkVGhlbWUoInJnYmEoMjIwLCAzOCwgMzgsIDAuMDgpIiwicmdiYSgyMzksIDY4LCA2OCwgMC4xMikiKX07CiAgICAgIH0KCiAgICAgIC5tZW51SXRlbS5hY3Rpb24tZGFuZ2VyIGRlZXMtaWNvbiB7CiAgICAgICAgb3BhY2l0eTogMTsKICAgICAgfQoKICAgICAgLyogRmlsdGVyIEl0ZW0gU3R5bGVzICovCiAgICAgIC5tZW51SXRlbS5maWx0ZXIgewogICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjsKICAgICAgfQoKICAgICAgLm1lbnVJdGVtLmZpbHRlciAuZmlsdGVyLWNoZWNrYm94IHsKICAgICAgICB3aWR0aDogMTZweDsKICAgICAgICBoZWlnaHQ6IDE2cHg7CiAgICAgICAgYm9yZGVyOiAycHggc29saWQgJHttLmJkVGhlbWUoIiNkNGQ0ZDQiLCIjNTI1MjUyIil9OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDRweDsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7CiAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuMTVzIGVhc2U7CiAgICAgICAgZmxleC1zaHJpbms6IDA7CiAgICAgIH0KCiAgICAgIC5tZW51SXRlbS5maWx0ZXIgLmZpbHRlci1jaGVja2JveC5jaGVja2VkIHsKICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1zaWRlYmFyLWFjY2VudCk7CiAgICAgICAgYm9yZGVyLWNvbG9yOiB2YXIoLS1zaWRlYmFyLWFjY2VudCk7CiAgICAgIH0KCiAgICAgIC5tZW51SXRlbS5maWx0ZXIgLmZpbHRlci1jaGVja2JveCBkZWVzLWljb24gewogICAgICAgIGZvbnQtc2l6ZTogMTJweDsKICAgICAgICBjb2xvcjogJHttLmJkVGhlbWUoIiNmYWZhZmEiLCIjMGEwYTBhIil9OwogICAgICAgIG9wYWNpdHk6IDE7CiAgICAgIH0KCiAgICAgIC5tZW51SXRlbS5maWx0ZXIuYWN0aXZlIHsKICAgICAgICBjb2xvcjogdmFyKC0tc2lkZWJhci1mZy1hY3RpdmUpOwogICAgICB9CgogICAgICAvKiBNdWx0aS1GaWx0ZXIgQ29udGFpbmVyICovCiAgICAgIC5tdWx0aUZpbHRlciB7CiAgICAgICAgbWFyZ2luOiA0cHggMDsKICAgICAgICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1zaWRlYmFyLWJvcmRlcik7CiAgICAgICAgYm9yZGVyLXJhZGl1czogOHB4OwogICAgICAgIG92ZXJmbG93OiBoaWRkZW47CiAgICAgICAgYmFja2dyb3VuZDogJHttLmJkVGhlbWUoInJnYmEoMCwgMCwgMCwgMC4wMikiLCJyZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMDIpIil9OwogICAgICB9CgogICAgICAubXVsdGlGaWx0ZXItaGVhZGVyIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuOwogICAgICAgIHBhZGRpbmc6IDEwcHggMTJweDsKICAgICAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICAgICAgdHJhbnNpdGlvbjogYmFja2dyb3VuZCAwLjE1cyBlYXNlOwogICAgICB9CgogICAgICAubXVsdGlGaWx0ZXItaGVhZGVyOmhvdmVyIHsKICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1zaWRlYmFyLWhvdmVyKTsKICAgICAgfQoKICAgICAgLm11bHRpRmlsdGVyLWhlYWRlciAubXVsdGlGaWx0ZXItdGl0bGUgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBnYXA6IDhweDsKICAgICAgICBmb250LXNpemU6IDEzcHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDsKICAgICAgICBjb2xvcjogdmFyKC0tc2lkZWJhci1mZy1hY3RpdmUpOwogICAgICB9CgogICAgICAubXVsdGlGaWx0ZXItaGVhZGVyIC5tdWx0aUZpbHRlci10aXRsZSBkZWVzLWljb24gewogICAgICAgIGZvbnQtc2l6ZTogMTZweDsKICAgICAgICBvcGFjaXR5OiAwLjc7CiAgICAgIH0KCiAgICAgIC5tdWx0aUZpbHRlci1oZWFkZXIgLm11bHRpRmlsdGVyLWNvdW50IHsKICAgICAgICBmb250LXNpemU6IDExcHg7CiAgICAgICAgY29sb3I6IHZhcigtLXNpZGViYXItZmctbXV0ZWQpOwogICAgICAgIGJhY2tncm91bmQ6IHZhcigtLWJhZGdlLWRlZmF1bHQtYmcpOwogICAgICAgIHBhZGRpbmc6IDJweCA2cHg7CiAgICAgICAgYm9yZGVyLXJhZGl1czogNHB4OwogICAgICB9CgogICAgICAubXVsdGlGaWx0ZXItaGVhZGVyIC5jaGV2cm9uIHsKICAgICAgICBmb250LXNpemU6IDEycHg7CiAgICAgICAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDAuMnMgZWFzZTsKICAgICAgICBjb2xvcjogdmFyKC0tc2lkZWJhci1mZy1tdXRlZCk7CiAgICAgIH0KCiAgICAgIC5tdWx0aUZpbHRlci1oZWFkZXIuY29sbGFwc2VkIC5jaGV2cm9uIHsKICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgtOTBkZWcpOwogICAgICB9CgogICAgICAubXVsdGlGaWx0ZXItb3B0aW9ucyB7CiAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkIHZhcigtLXNpZGViYXItYm9yZGVyKTsKICAgICAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgICAgIHRyYW5zaXRpb246IG1heC1oZWlnaHQgMC4yNXMgZWFzZSwgb3BhY2l0eSAwLjJzIGVhc2U7CiAgICAgICAgbWF4LWhlaWdodDogNTAwcHg7CiAgICAgICAgb3BhY2l0eTogMTsKICAgICAgfQoKICAgICAgLm11bHRpRmlsdGVyLW9wdGlvbnMuY29sbGFwc2VkIHsKICAgICAgICBtYXgtaGVpZ2h0OiAwOwogICAgICAgIG9wYWNpdHk6IDA7CiAgICAgICAgYm9yZGVyLXRvcDogbm9uZTsKICAgICAgfQoKICAgICAgLm11bHRpRmlsdGVyLW9wdGlvbiB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGdhcDogMTBweDsKICAgICAgICBwYWRkaW5nOiA4cHggMTJweDsKICAgICAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICAgICAgdHJhbnNpdGlvbjogYmFja2dyb3VuZCAwLjE1cyBlYXNlOwogICAgICAgIGZvbnQtc2l6ZTogMTNweDsKICAgICAgICBjb2xvcjogdmFyKC0tc2lkZWJhci1mZyk7CiAgICAgIH0KCiAgICAgIC5tdWx0aUZpbHRlci1vcHRpb246aG92ZXIgewogICAgICAgIGJhY2tncm91bmQ6IHZhcigtLXNpZGViYXItaG92ZXIpOwogICAgICAgIGNvbG9yOiB2YXIoLS1zaWRlYmFyLWZnLWFjdGl2ZSk7CiAgICAgIH0KCiAgICAgIC5tdWx0aUZpbHRlci1vcHRpb24gLm9wdGlvbi1jaGVja2JveCB7CiAgICAgICAgd2lkdGg6IDE2cHg7CiAgICAgICAgaGVpZ2h0OiAxNnB4OwogICAgICAgIGJvcmRlcjogMnB4IHNvbGlkICR7bS5iZFRoZW1lKCIjZDRkNGQ0IiwiIzUyNTI1MiIpfTsKICAgICAgICBib3JkZXItcmFkaXVzOiA0cHg7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOwogICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjE1cyBlYXNlOwogICAgICAgIGZsZXgtc2hyaW5rOiAwOwogICAgICB9CgogICAgICAubXVsdGlGaWx0ZXItb3B0aW9uIC5vcHRpb24tY2hlY2tib3guY2hlY2tlZCB7CiAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tc2lkZWJhci1hY2NlbnQpOwogICAgICAgIGJvcmRlci1jb2xvcjogdmFyKC0tc2lkZWJhci1hY2NlbnQpOwogICAgICB9CgogICAgICAubXVsdGlGaWx0ZXItb3B0aW9uIC5vcHRpb24tY2hlY2tib3ggZGVlcy1pY29uIHsKICAgICAgICBmb250LXNpemU6IDEycHg7CiAgICAgICAgY29sb3I6ICR7bS5iZFRoZW1lKCIjZmFmYWZhIiwiIzBhMGEwYSIpfTsKICAgICAgfQoKICAgICAgLm11bHRpRmlsdGVyLW9wdGlvbiBkZWVzLWljb24ub3B0aW9uLWljb24gewogICAgICAgIGZvbnQtc2l6ZTogMTRweDsKICAgICAgICBvcGFjaXR5OiAwLjc7CiAgICAgIH0KCiAgICAgIC8qIERpdmlkZXIgKi8KICAgICAgLm1lbnVEaXZpZGVyIHsKICAgICAgICBoZWlnaHQ6IDFweDsKICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1zaWRlYmFyLWJvcmRlcik7CiAgICAgICAgbWFyZ2luOiA4cHggMTJweDsKICAgICAgfQoKICAgICAgOmhvc3QoW2NvbGxhcHNlZF0pIC5tZW51RGl2aWRlciB7CiAgICAgICAgbWFyZ2luOiA4cHggNHB4OwogICAgICB9CgogICAgICAvKiBIZWFkZXIvTGFiZWwgKi8KICAgICAgLm1lbnVIZWFkZXIgewogICAgICAgIHBhZGRpbmc6IDEycHggMTJweCA0cHggMTJweDsKICAgICAgICBmb250LXNpemU6IDEwcHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDsKICAgICAgICBjb2xvcjogdmFyKC0tc2lkZWJhci1mZy1tdXRlZCk7CiAgICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTsKICAgICAgICBsZXR0ZXItc3BhY2luZzogMC41cHg7CiAgICAgIH0KCiAgICAgIDpob3N0KFtjb2xsYXBzZWRdKSAubWVudUhlYWRlciB7CiAgICAgICAgZGlzcGxheTogbm9uZTsKICAgICAgfQoKICAgICAgLyogTGluayBJdGVtICovCiAgICAgIC5tZW51SXRlbS5saW5rIC5leHRlcm5hbC1pY29uIHsKICAgICAgICBmb250LXNpemU6IDEycHg7CiAgICAgICAgb3BhY2l0eTogMC41OwogICAgICAgIG1hcmdpbi1sZWZ0OiBhdXRvOwogICAgICB9CgogICAgICAvKiBDb2xsYXBzZWQgbWVudSBpdGVtIHN0eWxlcyAqLwogICAgICA6aG9zdChbY29sbGFwc2VkXSkgLm1lbnVJdGVtIHsKICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKICAgICAgICBwYWRkaW5nOiA4cHg7CiAgICAgICAgZ2FwOiAwOwogICAgICB9CgogICAgICA6aG9zdChbY29sbGFwc2VkXSkgLm1lbnVJdGVtIC5pdGVtTGFiZWwgewogICAgICAgIG9wYWNpdHk6IDA7CiAgICAgICAgd2lkdGg6IDA7CiAgICAgICAgcG9zaXRpb246IGFic29sdXRlOwogICAgICB9CgogICAgICA6aG9zdChbY29sbGFwc2VkXSkgLm1lbnVJdGVtLnNlbGVjdGVkOjpiZWZvcmUgewogICAgICAgIGxlZnQ6IC00cHg7CiAgICAgIH0KCiAgICAgIDpob3N0KFtjb2xsYXBzZWRdKSAubWVudUl0ZW0gLmZpbHRlci1jaGVja2JveCwKICAgICAgOmhvc3QoW2NvbGxhcHNlZF0pIC5tZW51SXRlbSAuZXh0ZXJuYWwtaWNvbiB7CiAgICAgICAgZGlzcGxheTogbm9uZTsKICAgICAgfQoKICAgICAgOmhvc3QoW2NvbGxhcHNlZF0pIC5tdWx0aUZpbHRlciB7CiAgICAgICAgZGlzcGxheTogbm9uZTsKICAgICAgfQoKICAgICAgLyogVG9vbHRpcCBmb3IgY29sbGFwc2VkIHN0YXRlICovCiAgICAgIC5pdGVtLXRvb2x0aXAgewogICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgICBsZWZ0OiAxMDAlOwogICAgICAgIHRvcDogNTAlOwogICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTsKICAgICAgICBtYXJnaW4tbGVmdDogMTJweDsKICAgICAgICBwYWRkaW5nOiA2cHggMTJweDsKICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS10b29sdGlwLWJnKTsKICAgICAgICBjb2xvcjogdmFyKC0tdG9vbHRpcC1mZyk7CiAgICAgICAgYm9yZGVyLXJhZGl1czogNnB4OwogICAgICAgIGZvbnQtc2l6ZTogMTNweDsKICAgICAgICBmb250LXdlaWdodDogNTAwOwogICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7CiAgICAgICAgb3BhY2l0eTogMDsKICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTsKICAgICAgICB0cmFuc2l0aW9uOiBvcGFjaXR5IDAuMTVzIGVhc2U7CiAgICAgICAgei1pbmRleDogMTAwMDsKICAgICAgICBib3gtc2hhZG93OiAwIDJweCA4cHggcmdiYSgwLCAwLCAwLCAwLjE1KTsKICAgICAgfQoKICAgICAgLml0ZW0tdG9vbHRpcDo6YmVmb3JlIHsKICAgICAgICBjb250ZW50OiAnJzsKICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgICAgbGVmdDogLTRweDsKICAgICAgICB0b3A6IDUwJTsKICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSk7CiAgICAgICAgYm9yZGVyOiA0cHggc29saWQgdHJhbnNwYXJlbnQ7CiAgICAgICAgYm9yZGVyLXJpZ2h0LWNvbG9yOiB2YXIoLS10b29sdGlwLWJnKTsKICAgICAgfQoKICAgICAgOmhvc3QoW2NvbGxhcHNlZF0pIC5tZW51SXRlbTpob3ZlciAuaXRlbS10b29sdGlwIHsKICAgICAgICBvcGFjaXR5OiAxOwogICAgICAgIHRyYW5zaXRpb24tZGVsYXk6IDFzOwogICAgICB9CgogICAgICAvKiBCYWRnZSBTdHlsZXMgKi8KICAgICAgLmJhZGdlIHsKICAgICAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOwogICAgICAgIG1pbi13aWR0aDogMThweDsKICAgICAgICBoZWlnaHQ6IDE4cHg7CiAgICAgICAgcGFkZGluZzogMCA2cHg7CiAgICAgICAgZm9udC1zaXplOiAxMHB4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7CiAgICAgICAgYm9yZGVyLXJhZGl1czogOXB4OwogICAgICAgIGZsZXgtc2hyaW5rOiAwOwogICAgICB9CgogICAgICAuYmFkZ2UuZGVmYXVsdCB7CiAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tYmFkZ2UtZGVmYXVsdC1iZyk7CiAgICAgICAgY29sb3I6IHZhcigtLWJhZGdlLWRlZmF1bHQtZmcpOwogICAgICB9CgogICAgICAuYmFkZ2Uuc3VjY2VzcyB7CiAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tYmFkZ2Utc3VjY2Vzcy1iZyk7CiAgICAgICAgY29sb3I6IHZhcigtLWJhZGdlLXN1Y2Nlc3MtZmcpOwogICAgICB9CgogICAgICAuYmFkZ2Uud2FybmluZyB7CiAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tYmFkZ2Utd2FybmluZy1iZyk7CiAgICAgICAgY29sb3I6IHZhcigtLWJhZGdlLXdhcm5pbmctZmcpOwogICAgICB9CgogICAgICAuYmFkZ2UuZXJyb3IgewogICAgICAgIGJhY2tncm91bmQ6IHZhcigtLWJhZGdlLWVycm9yLWJnKTsKICAgICAgICBjb2xvcjogdmFyKC0tYmFkZ2UtZXJyb3ItZmcpOwogICAgICB9CgogICAgICA6aG9zdChbY29sbGFwc2VkXSkgLmJhZGdlIHsKICAgICAgICBkaXNwbGF5OiBub25lOwogICAgICB9CgogICAgICAvKiBMZWdhY3kgb3B0aW9ucyBjb250YWluZXIgKi8KICAgICAgLmxlZ2FjeU9wdGlvbnMgewogICAgICAgIHBhZGRpbmc6IDAgOHB4OwogICAgICB9CgogICAgICAvKiBEaXZpZGVyIChsZWdhY3kpICovCiAgICAgIC5kaXZpZGVyIHsKICAgICAgICBoZWlnaHQ6IDFweDsKICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1zaWRlYmFyLWJvcmRlcik7CiAgICAgICAgbWFyZ2luOiA4cHggMTJweDsKICAgICAgfQogICAgYF07cmVuZGVyKCl7cmV0dXJuIENgCiAgICAgIDxkaXYgY2xhc3M9Im1haW5jb250YWluZXIiPgogICAgICAgIDxkaXYgY2xhc3M9ImhlYWRlciI+CiAgICAgICAgICA8c3BhbiBjbGFzcz0iaGVhZGluZyI+JHt0aGlzLmhlYWRpbmd9PC9zcGFuPgogICAgICAgIDwvZGl2PgogICAgICAgIDxkaXYgY2xhc3M9Im1lbnVTZWN0aW9uIj4KICAgICAgICAgICR7dGhpcy5ncm91cHMubGVuZ3RoPjA/dGhpcy5yZW5kZXJHcm91cHMoKTp0aGlzLnJlbmRlckxlZ2FjeU9wdGlvbnMoKX0KICAgICAgICA8L2Rpdj4KICAgICAgPC9kaXY+CiAgICAgIDxidXR0b24gY2xhc3M9ImNvbGxhcHNlLXRvZ2dsZSIgQGNsaWNrPSIkeygpPT50aGlzLnRvZ2dsZUNvbGxhcHNlKCl9Ij4KICAgICAgICA8ZGVlcy1pY29uIC5pY29uPSIke3RoaXMuY29sbGFwc2VkPyJsdWNpZGU6Y2hldnJvblJpZ2h0IjoibHVjaWRlOmNoZXZyb25MZWZ0In0iPjwvZGVlcy1pY29uPgogICAgICA8L2J1dHRvbj4KICAgIGB9cmVuZGVyR3JvdXBzKCl7cmV0dXJuIENgCiAgICAgICR7dGhpcy5ncm91cHMubWFwKFQ9PkNgCiAgICAgICAgPGRpdiBjbGFzcz0ibWVudUdyb3VwIj4KICAgICAgICAgIDxkaXYKICAgICAgICAgICAgY2xhc3M9Imdyb3VwSGVhZGVyICR7dGhpcy5jb2xsYXBzZWRHcm91cHMuaGFzKFQubmFtZSk/ImNvbGxhcHNlZCI6IiJ9IgogICAgICAgICAgICBAY2xpY2s9IiR7KCk9PnRoaXMudG9nZ2xlR3JvdXAoVC5uYW1lKX0iCiAgICAgICAgICA+CiAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJncm91cFRpdGxlIj4KICAgICAgICAgICAgICAke1QuaWNvbk5hbWU/Q2A8ZGVlcy1pY29uIC5pY29uPSIke3RoaXMubm9ybWFsaXplSWNvbihULmljb25OYW1lKX0iPjwvZGVlcy1pY29uPmA6IiJ9CiAgICAgICAgICAgICAgJHtULm5hbWV9CiAgICAgICAgICAgIDwvc3Bhbj4KICAgICAgICAgICAgPGRlZXMtaWNvbiBjbGFzcz0iY2hldnJvbiIgLmljb249IiR7Imx1Y2lkZTpjaGV2cm9uRG93biJ9Ij48L2RlZXMtaWNvbj4KICAgICAgICAgIDwvZGl2PgogICAgICAgICAgPGRpdiBjbGFzcz0iZ3JvdXBJdGVtcyAke3RoaXMuY29sbGFwc2VkR3JvdXBzLmhhcyhULm5hbWUpPyJjb2xsYXBzZWQiOiIifSI+CiAgICAgICAgICAgICR7VC5pdGVtcy5tYXAoRT0+dGhpcy5yZW5kZXJJdGVtKEUsVCkpfQogICAgICAgICAgPC9kaXY+CiAgICAgICAgPC9kaXY+CiAgICAgIGApfQogICAgYH1yZW5kZXJJdGVtKFQsRSl7aWYoImhpZGRlbiJpbiBUJiZULmhpZGRlbilyZXR1cm4gQ2BgO3N3aXRjaCgidHlwZSJpbiBUP1QudHlwZToidGFiIil7Y2FzZSJhY3Rpb24iOnJldHVybiB0aGlzLnJlbmRlckFjdGlvbkl0ZW0oVCk7Y2FzZSJmaWx0ZXIiOnJldHVybiB0aGlzLnJlbmRlckZpbHRlckl0ZW0oVCk7Y2FzZSJtdWx0aUZpbHRlciI6cmV0dXJuIHRoaXMucmVuZGVyTXVsdGlGaWx0ZXJJdGVtKFQpO2Nhc2UiZGl2aWRlciI6cmV0dXJuIHRoaXMucmVuZGVyRGl2aWRlcigpO2Nhc2UiaGVhZGVyIjpyZXR1cm4gdGhpcy5yZW5kZXJIZWFkZXIoVCk7Y2FzZSJsaW5rIjpyZXR1cm4gdGhpcy5yZW5kZXJMaW5rSXRlbShUKTtkZWZhdWx0OnJldHVybiB0aGlzLnJlbmRlclRhYkl0ZW0oVCxFKX19cmVuZGVyVGFiSXRlbShULEUpe2xldCBxPXRoaXMuc2VsZWN0ZWRJdGVtPy5rZXk9PT1ULmtleSxCPVQuZGlzYWJsZWQ9PT0hMDtyZXR1cm4gQ2AKICAgICAgPGRpdgogICAgICAgIGNsYXNzPSJtZW51SXRlbSAke3E/InNlbGVjdGVkIjoiIn0gJHtCPyJkaXNhYmxlZCI6IiJ9IgogICAgICAgIEBjbGljaz0iJHsoKT0+IUImJnRoaXMuc2VsZWN0VGFiSXRlbShULEUpfSIKICAgICAgICBAY29udGV4dG1lbnU9IiR7Rz0+dGhpcy5oYW5kbGVDb250ZXh0TWVudShHLFQpfSIKICAgICAgPgogICAgICAgICR7VC5pY29uTmFtZT9DYDxkZWVzLWljb24gLmljb249IiR7dGhpcy5ub3JtYWxpemVJY29uKFQuaWNvbk5hbWUpfSI+PC9kZWVzLWljb24+YDoiIn0KICAgICAgICA8c3BhbiBjbGFzcz0iaXRlbUxhYmVsIj4ke1Qua2V5fTwvc3Bhbj4KICAgICAgICAke1QuYmFkZ2UhPT12b2lkIDA/Q2AKICAgICAgICAgIDxzcGFuIGNsYXNzPSJiYWRnZSAke1QuYmFkZ2VWYXJpYW50fHwiZGVmYXVsdCJ9Ij4ke1QuYmFkZ2V9PC9zcGFuPgogICAgICAgIGA6IiJ9CiAgICAgICAgPHNwYW4gY2xhc3M9Iml0ZW0tdG9vbHRpcCI+JHtULmtleX08L3NwYW4+CiAgICAgIDwvZGl2PgogICAgYH1yZW5kZXJBY3Rpb25JdGVtKFQpe2xldCBFPVQudmFyaWFudHx8InByaW1hcnkiLHE9VC5kaXNhYmxlZD09PSEwO3JldHVybiBDYAogICAgICA8ZGl2CiAgICAgICAgY2xhc3M9Im1lbnVJdGVtIGFjdGlvbi0ke0V9ICR7cT8iZGlzYWJsZWQiOiIifSIKICAgICAgICBAY2xpY2s9IiR7KCk9PiFxJiZ0aGlzLmhhbmRsZUFjdGlvbkNsaWNrKFQpfSIKICAgICAgPgogICAgICAgICR7VC5pY29uTmFtZT9DYDxkZWVzLWljb24gLmljb249IiR7dGhpcy5ub3JtYWxpemVJY29uKFQuaWNvbk5hbWUpfSI+PC9kZWVzLWljb24+YDoiIn0KICAgICAgICA8c3BhbiBjbGFzcz0iaXRlbUxhYmVsIj4ke1Qua2V5fTwvc3Bhbj4KICAgICAgICA8c3BhbiBjbGFzcz0iaXRlbS10b29sdGlwIj4ke1Qua2V5fTwvc3Bhbj4KICAgICAgPC9kaXY+CiAgICBgfXJlbmRlckZpbHRlckl0ZW0oVCl7bGV0IEU9VC5kaXNhYmxlZD09PSEwO3JldHVybiBDYAogICAgICA8ZGl2CiAgICAgICAgY2xhc3M9Im1lbnVJdGVtIGZpbHRlciAke1QuYWN0aXZlPyJhY3RpdmUiOiIifSAke0U/ImRpc2FibGVkIjoiIn0iCiAgICAgICAgQGNsaWNrPSIkeygpPT4hRSYmdGhpcy5oYW5kbGVGaWx0ZXJUb2dnbGUoVCl9IgogICAgICA+CiAgICAgICAgJHtULmljb25OYW1lP0NgPGRlZXMtaWNvbiAuaWNvbj0iJHt0aGlzLm5vcm1hbGl6ZUljb24oVC5pY29uTmFtZSl9Ij48L2RlZXMtaWNvbj5gOiIifQogICAgICAgIDxzcGFuIGNsYXNzPSJpdGVtTGFiZWwiPiR7VC5rZXl9PC9zcGFuPgogICAgICAgIDxkaXYgY2xhc3M9ImZpbHRlci1jaGVja2JveCAke1QuYWN0aXZlPyJjaGVja2VkIjoiIn0iPgogICAgICAgICAgJHtULmFjdGl2ZT9DYDxkZWVzLWljb24gLmljb249IiR7Imx1Y2lkZTpjaGVjayJ9Ij48L2RlZXMtaWNvbj5gOiIifQogICAgICAgIDwvZGl2PgogICAgICAgIDxzcGFuIGNsYXNzPSJpdGVtLXRvb2x0aXAiPiR7VC5rZXl9PC9zcGFuPgogICAgICA8L2Rpdj4KICAgIGB9cmVuZGVyTXVsdGlGaWx0ZXJJdGVtKFQpe2xldCBFPXRoaXMuY29sbGFwc2VkTXVsdGlGaWx0ZXJzLmhhcyhULmtleSkscT1ULm9wdGlvbnMuZmlsdGVyKEI9PkIuY2hlY2tlZCkubGVuZ3RoO3JldHVybiBDYAogICAgICA8ZGl2IGNsYXNzPSJtdWx0aUZpbHRlciI+CiAgICAgICAgPGRpdgogICAgICAgICAgY2xhc3M9Im11bHRpRmlsdGVyLWhlYWRlciAke0U/ImNvbGxhcHNlZCI6IiJ9IgogICAgICAgICAgQGNsaWNrPSIkeygpPT50aGlzLnRvZ2dsZU11bHRpRmlsdGVyKFQua2V5KX0iCiAgICAgICAgPgogICAgICAgICAgPHNwYW4gY2xhc3M9Im11bHRpRmlsdGVyLXRpdGxlIj4KICAgICAgICAgICAgJHtULmljb25OYW1lP0NgPGRlZXMtaWNvbiAuaWNvbj0iJHt0aGlzLm5vcm1hbGl6ZUljb24oVC5pY29uTmFtZSl9Ij48L2RlZXMtaWNvbj5gOiIifQogICAgICAgICAgICAke1Qua2V5fQogICAgICAgICAgPC9zcGFuPgogICAgICAgICAgJHtxPjA/Q2A8c3BhbiBjbGFzcz0ibXVsdGlGaWx0ZXItY291bnQiPiR7cX08L3NwYW4+YDoiIn0KICAgICAgICAgIDxkZWVzLWljb24gY2xhc3M9ImNoZXZyb24iIC5pY29uPSIkeyJsdWNpZGU6Y2hldnJvbkRvd24ifSI+PC9kZWVzLWljb24+CiAgICAgICAgPC9kaXY+CiAgICAgICAgPGRpdiBjbGFzcz0ibXVsdGlGaWx0ZXItb3B0aW9ucyAke0U/ImNvbGxhcHNlZCI6IiJ9Ij4KICAgICAgICAgICR7VC5vcHRpb25zLm1hcChCPT5DYAogICAgICAgICAgICA8ZGl2CiAgICAgICAgICAgICAgY2xhc3M9Im11bHRpRmlsdGVyLW9wdGlvbiIKICAgICAgICAgICAgICBAY2xpY2s9IiR7KCk9PnRoaXMuaGFuZGxlTXVsdGlGaWx0ZXJPcHRpb25Ub2dnbGUoVCxCLmtleSl9IgogICAgICAgICAgICA+CiAgICAgICAgICAgICAgPGRpdiBjbGFzcz0ib3B0aW9uLWNoZWNrYm94ICR7Qi5jaGVja2VkPyJjaGVja2VkIjoiIn0iPgogICAgICAgICAgICAgICAgJHtCLmNoZWNrZWQ/Q2A8ZGVlcy1pY29uIC5pY29uPSIkeyJsdWNpZGU6Y2hlY2sifSI+PC9kZWVzLWljb24+YDoiIn0KICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAke0IuaWNvbk5hbWU/Q2A8ZGVlcy1pY29uIGNsYXNzPSJvcHRpb24taWNvbiIgLmljb249IiR7dGhpcy5ub3JtYWxpemVJY29uKEIuaWNvbk5hbWUpfSI+PC9kZWVzLWljb24+YDoiIn0KICAgICAgICAgICAgICA8c3Bhbj4ke0IubGFiZWx9PC9zcGFuPgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIGApfQogICAgICAgIDwvZGl2PgogICAgICA8L2Rpdj4KICAgIGB9cmVuZGVyRGl2aWRlcigpe3JldHVybiBDYDxkaXYgY2xhc3M9Im1lbnVEaXZpZGVyIj48L2Rpdj5gfXJlbmRlckhlYWRlcihUKXtyZXR1cm4gQ2A8ZGl2IGNsYXNzPSJtZW51SGVhZGVyIj4ke1QubGFiZWx9PC9kaXY+YH1yZW5kZXJMaW5rSXRlbShUKXtsZXQgRT1ULmV4dGVybmFsPz9ULmhyZWYuc3RhcnRzV2l0aCgiaHR0cCIpLHE9VC5kaXNhYmxlZD09PSEwO3JldHVybiBDYAogICAgICA8ZGl2CiAgICAgICAgY2xhc3M9Im1lbnVJdGVtIGxpbmsgJHtxPyJkaXNhYmxlZCI6IiJ9IgogICAgICAgIEBjbGljaz0iJHsoKT0+IXEmJnRoaXMuaGFuZGxlTGlua0NsaWNrKFQpfSIKICAgICAgPgogICAgICAgICR7VC5pY29uTmFtZT9DYDxkZWVzLWljb24gLmljb249IiR7dGhpcy5ub3JtYWxpemVJY29uKFQuaWNvbk5hbWUpfSI+PC9kZWVzLWljb24+YDoiIn0KICAgICAgICA8c3BhbiBjbGFzcz0iaXRlbUxhYmVsIj4ke1Qua2V5fTwvc3Bhbj4KICAgICAgICAke0U/Q2A8ZGVlcy1pY29uIGNsYXNzPSJleHRlcm5hbC1pY29uIiAuaWNvbj0iJHsibHVjaWRlOmV4dGVybmFsTGluayJ9Ij48L2RlZXMtaWNvbj5gOiIifQogICAgICAgIDxzcGFuIGNsYXNzPSJpdGVtLXRvb2x0aXAiPiR7VC5rZXl9PC9zcGFuPgogICAgICA8L2Rpdj4KICAgIGB9cmVuZGVyTGVnYWN5T3B0aW9ucygpe3JldHVybiBDYAogICAgICA8ZGl2IGNsYXNzPSJsZWdhY3lPcHRpb25zIj4KICAgICAgICAke3RoaXMuc2VsZWN0aW9uT3B0aW9ucy5tYXAoVD0+e2lmKCJkaXZpZGVyImluIFQmJlQuZGl2aWRlcilyZXR1cm4gQ2A8ZGl2IGNsYXNzPSJkaXZpZGVyIj48L2Rpdj5gO2xldCBFPVQscT17a2V5OkUua2V5LGljb25OYW1lOkUuaWNvbk5hbWUsYWN0aW9uOkUuYWN0aW9uLGJhZGdlOkUuYmFkZ2UsYmFkZ2VWYXJpYW50OkUuYmFkZ2VWYXJpYW50fTtyZXR1cm4gdGhpcy5yZW5kZXJUYWJJdGVtKHEpfSl9CiAgICAgIDwvZGl2PgogICAgYH1ub3JtYWxpemVJY29uKFQpe3JldHVybiBULnN0YXJ0c1dpdGgoImx1Y2lkZToiKT9UOmBsdWNpZGU6JHtUfWB9dG9nZ2xlR3JvdXAoVCl7bGV0IEU9bmV3IFNldCh0aGlzLmNvbGxhcHNlZEdyb3Vwcyk7RS5oYXMoVCk/RS5kZWxldGUoVCk6RS5hZGQoVCksdGhpcy5jb2xsYXBzZWRHcm91cHM9RX10b2dnbGVNdWx0aUZpbHRlcihUKXtsZXQgRT1uZXcgU2V0KHRoaXMuY29sbGFwc2VkTXVsdGlGaWx0ZXJzKTtFLmhhcyhUKT9FLmRlbGV0ZShUKTpFLmFkZChUKSx0aGlzLmNvbGxhcHNlZE11bHRpRmlsdGVycz1FfXRvZ2dsZUNvbGxhcHNlKCl7dGhpcy5jb2xsYXBzZWQ9IXRoaXMuY29sbGFwc2VkLHRoaXMuZGlzcGF0Y2hFdmVudChuZXcgQ3VzdG9tRXZlbnQoImNvbGxhcHNlLWNoYW5nZSIse2RldGFpbDp7Y29sbGFwc2VkOnRoaXMuY29sbGFwc2VkfSxidWJibGVzOiEwLGNvbXBvc2VkOiEwfSkpfXNlbGVjdFRhYkl0ZW0oVCxFKXt0aGlzLnNlbGVjdGVkSXRlbT1ULFQuYWN0aW9uKCksdGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBDdXN0b21FdmVudCgiaXRlbS1zZWxlY3QiLHtkZXRhaWw6e2l0ZW06VCxncm91cDpFfSxidWJibGVzOiEwLGNvbXBvc2VkOiEwfSkpfWFzeW5jIGhhbmRsZUFjdGlvbkNsaWNrKFQpe1QuY29uZmlybU1lc3NhZ2UmJiF3aW5kb3cuY29uZmlybShULmNvbmZpcm1NZXNzYWdlKXx8KGF3YWl0IFQuYWN0aW9uKCksdGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBDdXN0b21FdmVudCgiYWN0aW9uLWNsaWNrIix7ZGV0YWlsOntpdGVtOlR9LGJ1YmJsZXM6ITAsY29tcG9zZWQ6ITB9KSkpfWhhbmRsZUZpbHRlclRvZ2dsZShUKXtsZXQgRT0hVC5hY3RpdmU7VC5hY3RpdmU9RSxULm9uVG9nZ2xlKEUpLHRoaXMucmVuZGVyQ291bnRlcisrLHRoaXMuZGlzcGF0Y2hFdmVudChuZXcgQ3VzdG9tRXZlbnQoImZpbHRlci10b2dnbGUiLHtkZXRhaWw6e2l0ZW06VCxhY3RpdmU6RX0sYnViYmxlczohMCxjb21wb3NlZDohMH0pKX1oYW5kbGVNdWx0aUZpbHRlck9wdGlvblRvZ2dsZShULEUpe2xldCBxPVQub3B0aW9ucy5maW5kKEc9Pkcua2V5PT09RSk7cSYmKHEuY2hlY2tlZD0hcS5jaGVja2VkKTtsZXQgQj1ULm9wdGlvbnMuZmlsdGVyKEc9PkcuY2hlY2tlZCkubWFwKEc9Pkcua2V5KTtULm9uQ2hhbmdlKEIpLHRoaXMucmVuZGVyQ291bnRlcisrLHRoaXMuZGlzcGF0Y2hFdmVudChuZXcgQ3VzdG9tRXZlbnQoIm11bHRpZmlsdGVyLWNoYW5nZSIse2RldGFpbDp7aXRlbTpULHNlbGVjdGVkS2V5czpCfSxidWJibGVzOiEwLGNvbXBvc2VkOiEwfSkpfWhhbmRsZUxpbmtDbGljayhUKXtULmV4dGVybmFsPz9ULmhyZWYuc3RhcnRzV2l0aCgiaHR0cCIpP3dpbmRvdy5vcGVuKFQuaHJlZiwiX2JsYW5rIiwibm9vcGVuZXIsbm9yZWZlcnJlciIpOndpbmRvdy5sb2NhdGlvbi5ocmVmPVQuaHJlZix0aGlzLmRpc3BhdGNoRXZlbnQobmV3IEN1c3RvbUV2ZW50KCJsaW5rLWNsaWNrIix7ZGV0YWlsOntpdGVtOlR9LGJ1YmJsZXM6ITAsY29tcG9zZWQ6ITB9KSl9aGFuZGxlQ29udGV4dE1lbnUoVCxFKXtTci5vcGVuQ29udGV4dE1lbnVXaXRoT3B0aW9ucyhULFt7bmFtZToiVmlldyBkZXRhaWxzIixhY3Rpb246YXN5bmMoKT0+e30saWNvbk5hbWU6Imx1Y2lkZTpleWUifSx7bmFtZToiRWRpdCIsYWN0aW9uOmFzeW5jKCk9Pnt9LGljb25OYW1lOiJsdWNpZGU6cGVuY2lsIn1dKX1hc3luYyBmaXJzdFVwZGF0ZWQoVCl7aWYoYXdhaXQgc3VwZXIuZmlyc3RVcGRhdGVkKFQpLHRoaXMuZ3JvdXBzLmxlbmd0aD4wKXtsZXQgRT1uZXcgU2V0LHE9bmV3IFNldDtpZih0aGlzLmdyb3Vwcy5mb3JFYWNoKEI9PntCLmNvbGxhcHNlZCYmRS5hZGQoQi5uYW1lKSxCLml0ZW1zLmZvckVhY2goRz0+e2lmKCJ0eXBlImluIEcmJkcudHlwZT09PSJtdWx0aUZpbHRlciIpe2xldCBlZT1HO2VlLmNvbGxhcHNlZCYmcS5hZGQoZWUua2V5KX19KX0pLHRoaXMuY29sbGFwc2VkR3JvdXBzPUUsdGhpcy5jb2xsYXBzZWRNdWx0aUZpbHRlcnM9cSwhdGhpcy5zZWxlY3RlZEl0ZW0pZm9yKGxldCBCIG9mIHRoaXMuZ3JvdXBzKWZvcihsZXQgRyBvZiBCLml0ZW1zKXtsZXQgZWU9InR5cGUiaW4gRz9HLnR5cGU6InRhYiI7aWYoZWU9PT0idGFiInx8ZWU9PT12b2lkIDApe2xldCBQPUc7aWYoIVAuZGlzYWJsZWQpe3RoaXMuc2VsZWN0VGFiSXRlbShQLEIpO3JldHVybn19fX1lbHNlIGlmKHRoaXMuc2VsZWN0aW9uT3B0aW9ucy5sZW5ndGg+MCl7bGV0IEU9dGhpcy5zZWxlY3Rpb25PcHRpb25zLmZpbmQocT0+ISgiZGl2aWRlciJpbiBxKSk7aWYoRSYmIXRoaXMuc2VsZWN0ZWRJdGVtKXtsZXQgcT17a2V5OkUua2V5LGljb25OYW1lOkUuaWNvbk5hbWUsYWN0aW9uOkUuYWN0aW9ufTt0aGlzLnNlbGVjdFRhYkl0ZW0ocSl9fX1jb25zdHJ1Y3Rvcigpe3N1cGVyKC4uLmFyZ3VtZW50cyksZWEodGhpcyxTKX1zdGF0aWN7ZWEoaSxyKX19O3JldHVybiAkPWl9KSgpfSk7dmFyIGpkLEZvLGNzYSxkc2EsT2xyLFJscj1wKCgpPT57eGUoKTskNCgpO2pkPWZ1bmN0aW9uKGUsdCxyLGksYSxuKXtmdW5jdGlvbiBvKHkpe2lmKHkhPT12b2lkIDAmJnR5cGVvZiB5IT0iZnVuY3Rpb24iKXRocm93IG5ldyBUeXBlRXJyb3IoIkZ1bmN0aW9uIGV4cGVjdGVkIik7cmV0dXJuIHl9Zm9yKHZhciBzPWkua2luZCxsPXM9PT0iZ2V0dGVyIj8iZ2V0IjpzPT09InNldHRlciI/InNldCI6InZhbHVlIixjPSF0JiZlP2kuc3RhdGljP2U6ZS5wcm90b3R5cGU6bnVsbCx1PXR8fChjP09iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoYyxpLm5hbWUpOnt9KSxkLGg9ITEsZj1yLmxlbmd0aC0xO2Y+PTA7Zi0tKXt2YXIgeD17fTtmb3IodmFyIHYgaW4gaSl4W3ZdPXY9PT0iYWNjZXNzIj97fTppW3ZdO2Zvcih2YXIgdiBpbiBpLmFjY2Vzcyl4LmFjY2Vzc1t2XT1pLmFjY2Vzc1t2XTt4LmFkZEluaXRpYWxpemVyPWZ1bmN0aW9uKHkpe2lmKGgpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGFkZCBpbml0aWFsaXplcnMgYWZ0ZXIgZGVjb3JhdGlvbiBoYXMgY29tcGxldGVkIik7bi5wdXNoKG8oeXx8bnVsbCkpfTt2YXIgYj0oMCxyW2ZdKShzPT09ImFjY2Vzc29yIj97Z2V0OnUuZ2V0LHNldDp1LnNldH06dVtsXSx4KTtpZihzPT09ImFjY2Vzc29yIil7aWYoYj09PXZvaWQgMCljb250aW51ZTtpZihiPT09bnVsbHx8dHlwZW9mIGIhPSJvYmplY3QiKXRocm93IG5ldyBUeXBlRXJyb3IoIk9iamVjdCBleHBlY3RlZCIpOyhkPW8oYi5nZXQpKSYmKHUuZ2V0PWQpLChkPW8oYi5zZXQpKSYmKHUuc2V0PWQpLChkPW8oYi5pbml0KSkmJmEudW5zaGlmdChkKX1lbHNlKGQ9byhiKSkmJihzPT09ImZpZWxkIj9hLnVuc2hpZnQoZCk6dVtsXT1kKX1jJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoYyxpLm5hbWUsdSksaD0hMH0sRm89ZnVuY3Rpb24oZSx0LHIpe2Zvcih2YXIgaT1hcmd1bWVudHMubGVuZ3RoPjIsYT0wO2E8dC5sZW5ndGg7YSsrKXI9aT90W2FdLmNhbGwoZSxyKTp0W2FdLmNhbGwoZSk7cmV0dXJuIGk/cjp2b2lkIDB9LGNzYT0oKCk9PntsZXQgZT1beWUoImRlbW8tY2xvc2VhYmxlLXRhYnMiKV0sdCxyPVtdLGksYT16ZSxuLG89W10scz1bXSxsLGM9W10sdT1bXTt2YXIgZD1jbGFzcyBleHRlbmRzIGF7c3RhdGlje2k9dGhpc31zdGF0aWN7bGV0IGg9dHlwZW9mIFN5bWJvbD09ImZ1bmN0aW9uIiYmU3ltYm9sLm1ldGFkYXRhP09iamVjdC5jcmVhdGUoYVtTeW1ib2wubWV0YWRhdGFdPz9udWxsKTp2b2lkIDA7bj1bZmUoKV0sbD1bZmUoKV0samQodGhpcyxudWxsLG4se2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJ0YWJzIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpmPT4idGFicyJpbiBmLGdldDpmPT5mLnRhYnMsc2V0OihmLHgpPT57Zi50YWJzPXh9fSxtZXRhZGF0YTpofSxvLHMpLGpkKHRoaXMsbnVsbCxsLHtraW5kOiJhY2Nlc3NvciIsbmFtZToidGFiQ291bnRlciIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6Zj0+InRhYkNvdW50ZXIiaW4gZixnZXQ6Zj0+Zi50YWJDb3VudGVyLHNldDooZix4KT0+e2YudGFiQ291bnRlcj14fX0sbWV0YWRhdGE6aH0sYyx1KSxqZChudWxsLHQ9e3ZhbHVlOml9LGUse2tpbmQ6ImNsYXNzIixuYW1lOmkubmFtZSxtZXRhZGF0YTpofSxudWxsLHIpLGQ9aT10LnZhbHVlLGgmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShpLFN5bWJvbC5tZXRhZGF0YSx7ZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITAsdmFsdWU6aH0pfSNlPUZvKHRoaXMsbyxbe2tleToiTWFpbiIsaWNvbk5hbWU6Imx1Y2lkZTpob21lIixhY3Rpb246KCk9PmNvbnNvbGUubG9nKCJNYWluIGNsaWNrZWQiKX1dKTtnZXQgdGFicygpe3JldHVybiB0aGlzLiNlfXNldCB0YWJzKGgpe3RoaXMuI2U9aH0jdD0oRm8odGhpcyxzKSxGbyh0aGlzLGMsMCkpO2dldCB0YWJDb3VudGVyKCl7cmV0dXJuIHRoaXMuI3R9c2V0IHRhYkNvdW50ZXIoaCl7dGhpcy4jdD1ofXN0YXRpYyBzdHlsZXM9W29lYAogICAgICA6aG9zdCB7CiAgICAgICAgZGlzcGxheTogYmxvY2s7CiAgICAgIH0KICAgICAgLmNvbnRyb2xzIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGdhcDogOHB4OwogICAgICAgIG1hcmdpbi10b3A6IDE2cHg7CiAgICAgIH0KICAgICAgYnV0dG9uIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke20uYmRUaGVtZSgicmdiYSg1OSwgMTMwLCAyNDYsIDAuMSkiLCJyZ2JhKDU5LCAxMzAsIDI0NiwgMC4xKSIpfTsKICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAke20uYmRUaGVtZSgicmdiYSg1OSwgMTMwLCAyNDYsIDAuMykiLCJyZ2JhKDU5LCAxMzAsIDI0NiwgMC4zKSIpfTsKICAgICAgICBjb2xvcjogJHttLmJkVGhlbWUoIiMzYjgyZjYiLCIjNjBhNWZhIil9OwogICAgICAgIHBhZGRpbmc6IDhweCAxNnB4OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDZweDsKICAgICAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICAgICAgZm9udC1zaXplOiAxM3B4OwogICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjE1cyBlYXNlOwogICAgICB9CiAgICAgIGJ1dHRvbjpob3ZlciB7CiAgICAgICAgYmFja2dyb3VuZDogJHttLmJkVGhlbWUoInJnYmEoNTksIDEzMCwgMjQ2LCAwLjIpIiwicmdiYSg1OSwgMTMwLCAyNDYsIDAuMikiKX07CiAgICAgIH0KICAgICAgLmluZm8gewogICAgICAgIG1hcmdpbi10b3A6IDE2cHg7CiAgICAgICAgcGFkZGluZzogMTJweCAxNnB4OwogICAgICAgIGJhY2tncm91bmQ6ICR7bS5iZFRoZW1lKCJyZ2JhKDAsMCwwLDAuMDIpIiwicmdiYSgyNTUsMjU1LDI1NSwwLjAyKSIpfTsKICAgICAgICBib3JkZXItcmFkaXVzOiA2cHg7CiAgICAgICAgZm9udC1zaXplOiAxM3B4OwogICAgICAgIGNvbG9yOiAke20uYmRUaGVtZSgiIzcxNzE3YSIsIiNhMWExYWEiKX07CiAgICAgIH0KICAgIGBdO2FkZFRhYigpe3RoaXMudGFiQ291bnRlcisrO2xldCBoPWBEb2N1bWVudCAke3RoaXMudGFiQ291bnRlcn1gO3RoaXMudGFicz1bLi4udGhpcy50YWJzLHtrZXk6aCxpY29uTmFtZToibHVjaWRlOmZpbGUiLGFjdGlvbjooKT0+Y29uc29sZS5sb2coYCR7aH0gY2xpY2tlZGApLGNsb3NlYWJsZTohMCxvbkNsb3NlOigpPT50aGlzLnJlbW92ZVRhYihoKX1dfXJlbW92ZVRhYihoKXt0aGlzLnRhYnM9dGhpcy50YWJzLmZpbHRlcihmPT5mLmtleSE9PWgpfXJlbmRlcigpe3JldHVybiBDYAogICAgICA8ZGVlcy1hcHB1aS10YWJzCiAgICAgICAgLnRhYnM9JHt0aGlzLnRhYnN9CiAgICAgICAgQHRhYi1jbG9zZT0ke2g9PnRoaXMucmVtb3ZlVGFiKGguZGV0YWlsLnRhYi5rZXkpfQogICAgICA+PC9kZWVzLWFwcHVpLXRhYnM+CiAgICAgIDxkaXYgY2xhc3M9ImNvbnRyb2xzIj4KICAgICAgICA8YnV0dG9uIEBjbGljaz0keygpPT50aGlzLmFkZFRhYigpfT4rIEFkZCBOZXcgVGFiPC9idXR0b24+CiAgICAgIDwvZGl2PgogICAgICA8ZGl2IGNsYXNzPSJpbmZvIj4KICAgICAgICBDbGljayB0aGUgWCBidXR0b24gb24gdGFicyB0byBjbG9zZSB0aGVtLiBUaGUgIk1haW4iIHRhYiBpcyBub3QgY2xvc2VhYmxlLgogICAgICAgIDxicj5DdXJyZW50IHRhYnM6ICR7dGhpcy50YWJzLmxlbmd0aH0KICAgICAgPC9kaXY+CiAgICBgfWNvbnN0cnVjdG9yKCl7c3VwZXIoLi4uYXJndW1lbnRzKSxGbyh0aGlzLHUpfXN0YXRpY3tGbyhpLHIpfX07cmV0dXJuIGQ9aX0pKCksZHNhPSgoKT0+e2xldCBlPVt5ZSgiZGVtby1hdXRvaGlkZS10YWJzIildLHQscj1bXSxpLGE9emUsbixvPVtdLHM9W10sbCxjPVtdLHU9W10sZCxoPVtdLGY9W107dmFyIHg9Y2xhc3MgZXh0ZW5kcyBhe3N0YXRpY3tpPXRoaXN9c3RhdGlje2xldCB2PXR5cGVvZiBTeW1ib2w9PSJmdW5jdGlvbiImJlN5bWJvbC5tZXRhZGF0YT9PYmplY3QuY3JlYXRlKGFbU3ltYm9sLm1ldGFkYXRhXT8/bnVsbCk6dm9pZCAwO249W2ZlKCldLGw9W2ZlKCldLGQ9W2ZlKCldLGpkKHRoaXMsbnVsbCxuLHtraW5kOiJhY2Nlc3NvciIsbmFtZToidGFicyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6Yj0+InRhYnMiaW4gYixnZXQ6Yj0+Yi50YWJzLHNldDooYix5KT0+e2IudGFicz15fX0sbWV0YWRhdGE6dn0sbyxzKSxqZCh0aGlzLG51bGwsbCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImF1dG9IaWRlIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpiPT4iYXV0b0hpZGUiaW4gYixnZXQ6Yj0+Yi5hdXRvSGlkZSxzZXQ6KGIseSk9PntiLmF1dG9IaWRlPXl9fSxtZXRhZGF0YTp2fSxjLHUpLGpkKHRoaXMsbnVsbCxkLHtraW5kOiJhY2Nlc3NvciIsbmFtZToidGhyZXNob2xkIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpiPT4idGhyZXNob2xkImluIGIsZ2V0OmI9PmIudGhyZXNob2xkLHNldDooYix5KT0+e2IudGhyZXNob2xkPXl9fSxtZXRhZGF0YTp2fSxoLGYpLGpkKG51bGwsdD17dmFsdWU6aX0sZSx7a2luZDoiY2xhc3MiLG5hbWU6aS5uYW1lLG1ldGFkYXRhOnZ9LG51bGwscikseD1pPXQudmFsdWUsdiYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGksU3ltYm9sLm1ldGFkYXRhLHtlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMCx2YWx1ZTp2fSl9I2U9Rm8odGhpcyxvLFt7a2V5OiJUYWIgMSIsaWNvbk5hbWU6Imx1Y2lkZTpmaWxlIixhY3Rpb246KCk9PmNvbnNvbGUubG9nKCJUYWIgMSIpfSx7a2V5OiJUYWIgMiIsaWNvbk5hbWU6Imx1Y2lkZTpmaWxlIixhY3Rpb246KCk9PmNvbnNvbGUubG9nKCJUYWIgMiIpfV0pO2dldCB0YWJzKCl7cmV0dXJuIHRoaXMuI2V9c2V0IHRhYnModil7dGhpcy4jZT12fSN0PShGbyh0aGlzLHMpLEZvKHRoaXMsYywhMCkpO2dldCBhdXRvSGlkZSgpe3JldHVybiB0aGlzLiN0fXNldCBhdXRvSGlkZSh2KXt0aGlzLiN0PXZ9I3I9KEZvKHRoaXMsdSksRm8odGhpcyxoLDEpKTtnZXQgdGhyZXNob2xkKCl7cmV0dXJuIHRoaXMuI3J9c2V0IHRocmVzaG9sZCh2KXt0aGlzLiNyPXZ9c3RhdGljIHN0eWxlcz1bb2VgCiAgICAgIDpob3N0IHsKICAgICAgICBkaXNwbGF5OiBibG9jazsKICAgICAgfQogICAgICAudGFicy1jb250YWluZXIgewogICAgICAgIG1pbi1oZWlnaHQ6IDYwcHg7CiAgICAgICAgYm9yZGVyOiAxcHggZGFzaGVkICR7bS5iZFRoZW1lKCIjZTVlN2ViIiwiIzI3MjcyYSIpfTsKICAgICAgICBib3JkZXItcmFkaXVzOiA2cHg7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOwogICAgICB9CiAgICAgIC50YWJzLWNvbnRhaW5lciBkZWVzLWFwcHVpLXRhYnMgewogICAgICAgIHdpZHRoOiAxMDAlOwogICAgICB9CiAgICAgIC5wbGFjZWhvbGRlciB7CiAgICAgICAgY29sb3I6ICR7bS5iZFRoZW1lKCIjYTFhMWFhIiwiIzcxNzE3YSIpfTsKICAgICAgICBmb250LXNpemU6IDEzcHg7CiAgICAgICAgZm9udC1zdHlsZTogaXRhbGljOwogICAgICB9CiAgICAgIC5jb250cm9scyB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBnYXA6IDhweDsKICAgICAgICBtYXJnaW4tdG9wOiAxNnB4OwogICAgICAgIGZsZXgtd3JhcDogd3JhcDsKICAgICAgfQogICAgICBidXR0b24gewogICAgICAgIGJhY2tncm91bmQ6ICR7bS5iZFRoZW1lKCJyZ2JhKDU5LCAxMzAsIDI0NiwgMC4xKSIsInJnYmEoNTksIDEzMCwgMjQ2LCAwLjEpIil9OwogICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICR7bS5iZFRoZW1lKCJyZ2JhKDU5LCAxMzAsIDI0NiwgMC4zKSIsInJnYmEoNTksIDEzMCwgMjQ2LCAwLjMpIil9OwogICAgICAgIGNvbG9yOiAke20uYmRUaGVtZSgiIzNiODJmNiIsIiM2MGE1ZmEiKX07CiAgICAgICAgcGFkZGluZzogOHB4IDE2cHg7CiAgICAgICAgYm9yZGVyLXJhZGl1czogNnB4OwogICAgICAgIGN1cnNvcjogcG9pbnRlcjsKICAgICAgICBmb250LXNpemU6IDEzcHg7CiAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuMTVzIGVhc2U7CiAgICAgIH0KICAgICAgYnV0dG9uOmhvdmVyIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke20uYmRUaGVtZSgicmdiYSg1OSwgMTMwLCAyNDYsIDAuMikiLCJyZ2JhKDU5LCAxMzAsIDI0NiwgMC4yKSIpfTsKICAgICAgfQogICAgICBidXR0b24uZGFuZ2VyIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke20uYmRUaGVtZSgicmdiYSgyMzksIDY4LCA2OCwgMC4xKSIsInJnYmEoMjM5LCA2OCwgNjgsIDAuMSkiKX07CiAgICAgICAgYm9yZGVyLWNvbG9yOiAke20uYmRUaGVtZSgicmdiYSgyMzksIDY4LCA2OCwgMC4zKSIsInJnYmEoMjM5LCA2OCwgNjgsIDAuMykiKX07CiAgICAgICAgY29sb3I6ICR7bS5iZFRoZW1lKCIjZWY0NDQ0IiwiI2Y4NzE3MSIpfTsKICAgICAgfQogICAgICBidXR0b24uZGFuZ2VyOmhvdmVyIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke20uYmRUaGVtZSgicmdiYSgyMzksIDY4LCA2OCwgMC4yKSIsInJnYmEoMjM5LCA2OCwgNjgsIDAuMikiKX07CiAgICAgIH0KICAgICAgLmluZm8gewogICAgICAgIG1hcmdpbi10b3A6IDE2cHg7CiAgICAgICAgcGFkZGluZzogMTJweCAxNnB4OwogICAgICAgIGJhY2tncm91bmQ6ICR7bS5iZFRoZW1lKCJyZ2JhKDAsMCwwLDAuMDIpIiwicmdiYSgyNTUsMjU1LDI1NSwwLjAyKSIpfTsKICAgICAgICBib3JkZXItcmFkaXVzOiA2cHg7CiAgICAgICAgZm9udC1zaXplOiAxM3B4OwogICAgICAgIGNvbG9yOiAke20uYmRUaGVtZSgiIzcxNzE3YSIsIiNhMWExYWEiKX07CiAgICAgIH0KICAgIGBdO3RhYkNvdW50ZXI9KEZvKHRoaXMsZiksMik7YWRkVGFiKCl7dGhpcy50YWJDb3VudGVyKyssdGhpcy50YWJzPVsuLi50aGlzLnRhYnMse2tleTpgVGFiICR7dGhpcy50YWJDb3VudGVyfWAsaWNvbk5hbWU6Imx1Y2lkZTpmaWxlIixhY3Rpb246KCk9PmNvbnNvbGUubG9nKGBUYWIgJHt0aGlzLnRhYkNvdW50ZXJ9YCl9XX1yZW1vdmVMYXN0VGFiKCl7dGhpcy50YWJzLmxlbmd0aD4wJiYodGhpcy50YWJzPXRoaXMudGFicy5zbGljZSgwLC0xKSl9Y2xlYXJUYWJzKCl7dGhpcy50YWJzPVtdfXJlbmRlcigpe2xldCB2PXRoaXMuYXV0b0hpZGUmJnRoaXMudGFicy5sZW5ndGg8PXRoaXMudGhyZXNob2xkO3JldHVybiBDYAogICAgICA8ZGl2IGNsYXNzPSJ0YWJzLWNvbnRhaW5lciI+CiAgICAgICAgJHt2P0NgPHNwYW4gY2xhc3M9InBsYWNlaG9sZGVyIj5UYWJzIGhpZGRlbiAoJHt0aGlzLnRhYnMubGVuZ3RofSB0YWJzIOKJpCB0aHJlc2hvbGQgJHt0aGlzLnRocmVzaG9sZH0pPC9zcGFuPmA6Q2A8ZGVlcy1hcHB1aS10YWJzCiAgICAgICAgICAgICAgLnRhYnM9JHt0aGlzLnRhYnN9CiAgICAgICAgICAgICAgLmF1dG9IaWRlPSR7dGhpcy5hdXRvSGlkZX0KICAgICAgICAgICAgICAuYXV0b0hpZGVUaHJlc2hvbGQ9JHt0aGlzLnRocmVzaG9sZH0KICAgICAgICAgICAgPjwvZGVlcy1hcHB1aS10YWJzPmB9CiAgICAgIDwvZGl2PgogICAgICA8ZGl2IGNsYXNzPSJjb250cm9scyI+CiAgICAgICAgPGJ1dHRvbiBAY2xpY2s9JHsoKT0+dGhpcy5hZGRUYWIoKX0+KyBBZGQgVGFiPC9idXR0b24+CiAgICAgICAgPGJ1dHRvbiBjbGFzcz0iZGFuZ2VyIiBAY2xpY2s9JHsoKT0+dGhpcy5yZW1vdmVMYXN0VGFiKCl9Pi0gUmVtb3ZlIFRhYjwvYnV0dG9uPgogICAgICAgIDxidXR0b24gY2xhc3M9ImRhbmdlciIgQGNsaWNrPSR7KCk9PnRoaXMuY2xlYXJUYWJzKCl9PkNsZWFyIEFsbDwvYnV0dG9uPgogICAgICAgIDxidXR0b24gQGNsaWNrPSR7KCk9Pnt0aGlzLnRocmVzaG9sZD0wfX0+VGhyZXNob2xkOiAwPC9idXR0b24+CiAgICAgICAgPGJ1dHRvbiBAY2xpY2s9JHsoKT0+e3RoaXMudGhyZXNob2xkPTF9fT5UaHJlc2hvbGQ6IDE8L2J1dHRvbj4KICAgICAgICA8YnV0dG9uIEBjbGljaz0keygpPT57dGhpcy50aHJlc2hvbGQ9Mn19PlRocmVzaG9sZDogMjwvYnV0dG9uPgogICAgICA8L2Rpdj4KICAgICAgPGRpdiBjbGFzcz0iaW5mbyI+CiAgICAgICAgQXV0by1oaWRlOiAke3RoaXMuYXV0b0hpZGU/Ik9OIjoiT0ZGIn0gfCBUaHJlc2hvbGQ6ICR7dGhpcy50aHJlc2hvbGR9IHwgVGFiczogJHt0aGlzLnRhYnMubGVuZ3RofQogICAgICAgIDxicj5UYWJzIHdpbGwgaGlkZSB3aGVuIGNvdW50IOKJpCB0aHJlc2hvbGQuCiAgICAgIDwvZGl2PgogICAgYH1zdGF0aWN7Rm8oaSxyKX19O3JldHVybiB4PWl9KSgpLE9scj0oKT0+e2xldCBlPVt7a2V5OiJIb21lIixpY29uTmFtZToibHVjaWRlOmhvbWUiLGFjdGlvbjooKT0+Y29uc29sZS5sb2coIkhvbWUgY2xpY2tlZCIpfSx7a2V5OiJBbmFseXRpY3MgRGFzaGJvYXJkIixpY29uTmFtZToibHVjaWRlOmxpbmVDaGFydCIsYWN0aW9uOigpPT5jb25zb2xlLmxvZygiQW5hbHl0aWNzIGNsaWNrZWQiKX0se2tleToiUmVwb3J0cyIsaWNvbk5hbWU6Imx1Y2lkZTpmaWxlVGV4dCIsYWN0aW9uOigpPT5jb25zb2xlLmxvZygiUmVwb3J0cyBjbGlja2VkIil9LHtrZXk6IlVzZXIgU2V0dGluZ3MiLGljb25OYW1lOiJsdWNpZGU6c2V0dGluZ3MiLGFjdGlvbjooKT0+Y29uc29sZS5sb2coIlNldHRpbmdzIGNsaWNrZWQiKX0se2tleToiSGVscCIsaWNvbk5hbWU6Imx1Y2lkZTpoZWxwQ2lyY2xlIixhY3Rpb246KCk9PmNvbnNvbGUubG9nKCJIZWxwIGNsaWNrZWQiKX1dLHQ9W3trZXk6IlByb2ZpbGUiLGljb25OYW1lOiJsdWNpZGU6dXNlciIsYWN0aW9uOigpPT5jb25zb2xlLmxvZygiUHJvZmlsZSBjbGlja2VkIil9LHtrZXk6IlNlY3VyaXR5IixpY29uTmFtZToibHVjaWRlOnNoaWVsZCIsYWN0aW9uOigpPT5jb25zb2xlLmxvZygiU2VjdXJpdHkgY2xpY2tlZCIpfSx7a2V5OiJOb3RpZmljYXRpb25zIixpY29uTmFtZToibHVjaWRlOmJlbGwiLGFjdGlvbjooKT0+Y29uc29sZS5sb2coIk5vdGlmaWNhdGlvbnMgY2xpY2tlZCIpfSx7a2V5OiJJbnRlZ3JhdGlvbnMiLGljb25OYW1lOiJsdWNpZGU6bGluayIsYWN0aW9uOigpPT5jb25zb2xlLmxvZygiSW50ZWdyYXRpb25zIGNsaWNrZWQiKX0se2tleToiQWR2YW5jZWQiLGljb25OYW1lOiJsdWNpZGU6Y29kZSIsYWN0aW9uOigpPT5jb25zb2xlLmxvZygiQWR2YW5jZWQgY2xpY2tlZCIpfV0scj1be2tleToiQWxsIixhY3Rpb246KCk9PmNvbnNvbGUubG9nKCJBbGwgY2xpY2tlZCIpfSx7a2V5OiJBY3RpdmUiLGFjdGlvbjooKT0+Y29uc29sZS5sb2coIkFjdGl2ZSBjbGlja2VkIil9LHtrZXk6IkNvbXBsZXRlZCIsYWN0aW9uOigpPT5jb25zb2xlLmxvZygiQ29tcGxldGVkIGNsaWNrZWQiKX0se2tleToiQXJjaGl2ZWQiLGFjdGlvbjooKT0+Y29uc29sZS5sb2coIkFyY2hpdmVkIGNsaWNrZWQiKX1dLGk9YT0+Q2AKICAgIDxkaXYgc3R5bGU9InBhZGRpbmc6IDI0cHg7IGNvbG9yOiAke20uYmRUaGVtZSgiIzcxNzE3YSIsIiNhMWExYWEiKX07Ij4KICAgICAgJHthfQogICAgPC9kaXY+CiAgYDtyZXR1cm4gQ2AKICAgIDxzdHlsZT4KICAgICAgLmRlbW8tY29udGFpbmVyIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgICAgZ2FwOiAzMnB4OwogICAgICAgIHBhZGRpbmc6IDQ4cHg7CiAgICAgICAgYmFja2dyb3VuZDogJHttLmJkVGhlbWUoIiNmOGY5ZmEiLCIjMGEwYTBhIil9OwogICAgICAgIG1pbi1oZWlnaHQ6IDEwMHZoOwogICAgICB9CgogICAgICAuc2VjdGlvbiB7CiAgICAgICAgYmFja2dyb3VuZDogJHttLmJkVGhlbWUoIiNmZmZmZmYiLCIjMTgxODFiIil9OwogICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICR7bS5iZFRoZW1lKCIjZTVlN2ViIiwiIzI3MjcyYSIpfTsKICAgICAgICBib3JkZXItcmFkaXVzOiA4cHg7CiAgICAgICAgcGFkZGluZzogMjRweDsKICAgICAgICBib3gtc2hhZG93OiAwIDFweCAzcHggcmdiYSgwLCAwLCAwLCAwLjEpOwogICAgICB9CgogICAgICAuc2VjdGlvbi10aXRsZSB7CiAgICAgICAgZm9udC1zaXplOiAxOHB4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7CiAgICAgICAgbWFyZ2luLWJvdHRvbTogMTZweDsKICAgICAgICBjb2xvcjogJHttLmJkVGhlbWUoIiMwOTA5MGIiLCIjZmFmYWZhIil9OwogICAgICB9CgogICAgICAudHdvLWNvbHVtbiB7CiAgICAgICAgZGlzcGxheTogZ3JpZDsKICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDIwMHB4IDFmcjsKICAgICAgICBnYXA6IDI0cHg7CiAgICAgICAgYWxpZ24taXRlbXM6IHN0YXJ0OwogICAgICB9CiAgICA8L3N0eWxlPgogICAgPGRpdiBjbGFzcz0iZGVtby1jb250YWluZXIiPgogICAgICA8ZGl2IGNsYXNzPSJzZWN0aW9uIj4KICAgICAgICA8ZGl2IGNsYXNzPSJzZWN0aW9uLXRpdGxlIj5Ib3Jpem9udGFsIFRhYnMgd2l0aCBBbmltYXRlZCBJbmRpY2F0b3I8L2Rpdj4KICAgICAgICA8ZGVlcy1hcHB1aS10YWJzIC50YWJzPSR7ZX0+PC9kZWVzLWFwcHVpLXRhYnM+CiAgICAgICAgJHtpKCJTZWxlY3QgYSB0YWIgdG8gc2VlIHRoZSBzbW9vdGggc2xpZGluZyBhbmltYXRpb24gb2YgdGhlIGluZGljYXRvci4gVGhlIGluZGljYXRvciBhdXRvbWF0aWNhbGx5IGFkanVzdHMgaXRzIHdpZHRoIHRvIG1hdGNoIHRoZSB0YWIgY29udGVudCB3aXRoIG1pbmltYWwgcGFkZGluZy4iKX0KICAgICAgPC9kaXY+CgogICAgICA8ZGl2IGNsYXNzPSJzZWN0aW9uIj4KICAgICAgICA8ZGl2IGNsYXNzPSJzZWN0aW9uLXRpdGxlIj5DbG9zZWFibGUgVGFicyAoQnJvd3Nlci1zdHlsZSk8L2Rpdj4KICAgICAgICA8ZGVtby1jbG9zZWFibGUtdGFicz48L2RlbW8tY2xvc2VhYmxlLXRhYnM+CiAgICAgIDwvZGl2PgoKICAgICAgPGRpdiBjbGFzcz0ic2VjdGlvbiI+CiAgICAgICAgPGRpdiBjbGFzcz0ic2VjdGlvbi10aXRsZSI+QXV0by1oaWRlIFRhYnM8L2Rpdj4KICAgICAgICA8ZGVtby1hdXRvaGlkZS10YWJzPjwvZGVtby1hdXRvaGlkZS10YWJzPgogICAgICA8L2Rpdj4KCiAgICAgIDxkaXYgY2xhc3M9InNlY3Rpb24iPgogICAgICAgIDxkaXYgY2xhc3M9InNlY3Rpb24tdGl0bGUiPlZlcnRpY2FsIFRhYnMgTGF5b3V0PC9kaXY+CiAgICAgICAgPGRpdiBjbGFzcz0idHdvLWNvbHVtbiI+CiAgICAgICAgICA8ZGVlcy1hcHB1aS10YWJzIC50YWJTdHlsZT0keyJ2ZXJ0aWNhbCJ9IC50YWJzPSR7dH0+PC9kZWVzLWFwcHVpLXRhYnM+CiAgICAgICAgICAke2koIlZlcnRpY2FsIHRhYnMgd29yayBncmVhdCBmb3Igc2V0dGluZ3MgcGFnZXMgYW5kIG5hdmlnYXRpb24gbWVudXMuIFRoZSBhbmltYXRlZCBpbmRpY2F0b3Igc21vb3RobHkgdHJhbnNpdGlvbnMgYmV0d2VlbiBzZWxlY3Rpb25zLiIpfQogICAgICAgIDwvZGl2PgogICAgICA8L2Rpdj4KCiAgICAgIDxkaXYgY2xhc3M9InNlY3Rpb24iPgogICAgICAgIDxkaXYgY2xhc3M9InNlY3Rpb24tdGl0bGUiPldpdGhvdXQgSW5kaWNhdG9yPC9kaXY+CiAgICAgICAgPGRlZXMtYXBwdWktdGFicyAuc2hvd1RhYkluZGljYXRvcj0keyExfSAudGFicz0ke3J9PjwvZGVlcy1hcHB1aS10YWJzPgogICAgICAgICR7aSgiVGFicyBjYW4gYWxzbyBiZSB1c2VkIHdpdGhvdXQgdGhlIGFuaW1hdGVkIGluZGljYXRvciBieSBzZXR0aW5nIHNob3dUYWJJbmRpY2F0b3IgdG8gZmFsc2UuIil9CiAgICAgIDwvZGl2PgogICAgPC9kaXY+CiAgYH19KTt2YXIgeWMsdGEsQmxyLEY2ZT1wKCgpPT57JDQoKTt4ZSgpO0t0KCk7UmxyKCk7SmUoKTt5Yz1mdW5jdGlvbihlLHQscixpLGEsbil7ZnVuY3Rpb24gbyh5KXtpZih5IT09dm9pZCAwJiZ0eXBlb2YgeSE9ImZ1bmN0aW9uIil0aHJvdyBuZXcgVHlwZUVycm9yKCJGdW5jdGlvbiBleHBlY3RlZCIpO3JldHVybiB5fWZvcih2YXIgcz1pLmtpbmQsbD1zPT09ImdldHRlciI/ImdldCI6cz09PSJzZXR0ZXIiPyJzZXQiOiJ2YWx1ZSIsYz0hdCYmZT9pLnN0YXRpYz9lOmUucHJvdG90eXBlOm51bGwsdT10fHwoYz9PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGMsaS5uYW1lKTp7fSksZCxoPSExLGY9ci5sZW5ndGgtMTtmPj0wO2YtLSl7dmFyIHg9e307Zm9yKHZhciB2IGluIGkpeFt2XT12PT09ImFjY2VzcyI/e306aVt2XTtmb3IodmFyIHYgaW4gaS5hY2Nlc3MpeC5hY2Nlc3Nbdl09aS5hY2Nlc3Nbdl07eC5hZGRJbml0aWFsaXplcj1mdW5jdGlvbih5KXtpZihoKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBhZGQgaW5pdGlhbGl6ZXJzIGFmdGVyIGRlY29yYXRpb24gaGFzIGNvbXBsZXRlZCIpO24ucHVzaChvKHl8fG51bGwpKX07dmFyIGI9KDAscltmXSkocz09PSJhY2Nlc3NvciI/e2dldDp1LmdldCxzZXQ6dS5zZXR9OnVbbF0seCk7aWYocz09PSJhY2Nlc3NvciIpe2lmKGI9PT12b2lkIDApY29udGludWU7aWYoYj09PW51bGx8fHR5cGVvZiBiIT0ib2JqZWN0Iil0aHJvdyBuZXcgVHlwZUVycm9yKCJPYmplY3QgZXhwZWN0ZWQiKTsoZD1vKGIuZ2V0KSkmJih1LmdldD1kKSwoZD1vKGIuc2V0KSkmJih1LnNldD1kKSwoZD1vKGIuaW5pdCkpJiZhLnVuc2hpZnQoZCl9ZWxzZShkPW8oYikpJiYocz09PSJmaWVsZCI/YS51bnNoaWZ0KGQpOnVbbF09ZCl9YyYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGMsaS5uYW1lLHUpLGg9ITB9LHRhPWZ1bmN0aW9uKGUsdCxyKXtmb3IodmFyIGk9YXJndW1lbnRzLmxlbmd0aD4yLGE9MDthPHQubGVuZ3RoO2ErKylyPWk/dFthXS5jYWxsKGUscik6dFthXS5jYWxsKGUpO3JldHVybiBpP3I6dm9pZCAwfSxCbHI9KCgpPT57bGV0IGU9W3llKCJkZWVzLWFwcHVpLXRhYnMiKV0sdCxyPVtdLGksYT16ZSxuLG89W10scz1bXSxsLGM9W10sdT1bXSxkLGg9W10sZj1bXSx4LHY9W10sYj1bXSx5LHc9W10saz1bXSxPLHo9W10sTT1bXSxGLEQ9W10sTj1bXSxSLF89W10sUz1bXTt2YXIgJD1jbGFzcyBleHRlbmRzIGF7c3RhdGlje2k9dGhpc31zdGF0aWN7bGV0IFQ9dHlwZW9mIFN5bWJvbD09ImZ1bmN0aW9uIiYmU3ltYm9sLm1ldGFkYXRhP09iamVjdC5jcmVhdGUoYVtTeW1ib2wubWV0YWRhdGFdPz9udWxsKTp2b2lkIDA7bj1baih7dHlwZTpBcnJheX0pXSxsPVtqKHt0eXBlOk9iamVjdH0pXSxkPVtqKHt0eXBlOkJvb2xlYW59KV0seD1baih7dHlwZTpTdHJpbmd9KV0seT1baih7dHlwZTpCb29sZWFufSldLE89W2ooe3R5cGU6TnVtYmVyfSldLEY9W2ZlKCldLFI9W2ZlKCldLHljKHRoaXMsbnVsbCxuLHtraW5kOiJhY2Nlc3NvciIsbmFtZToidGFicyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6RT0+InRhYnMiaW4gRSxnZXQ6RT0+RS50YWJzLHNldDooRSxxKT0+e0UudGFicz1xfX0sbWV0YWRhdGE6VH0sbyxzKSx5Yyh0aGlzLG51bGwsbCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InNlbGVjdGVkVGFiIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpFPT4ic2VsZWN0ZWRUYWIiaW4gRSxnZXQ6RT0+RS5zZWxlY3RlZFRhYixzZXQ6KEUscSk9PntFLnNlbGVjdGVkVGFiPXF9fSxtZXRhZGF0YTpUfSxjLHUpLHljKHRoaXMsbnVsbCxkLHtraW5kOiJhY2Nlc3NvciIsbmFtZToic2hvd1RhYkluZGljYXRvciIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6RT0+InNob3dUYWJJbmRpY2F0b3IiaW4gRSxnZXQ6RT0+RS5zaG93VGFiSW5kaWNhdG9yLHNldDooRSxxKT0+e0Uuc2hvd1RhYkluZGljYXRvcj1xfX0sbWV0YWRhdGE6VH0saCxmKSx5Yyh0aGlzLG51bGwseCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InRhYlN0eWxlIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpFPT4idGFiU3R5bGUiaW4gRSxnZXQ6RT0+RS50YWJTdHlsZSxzZXQ6KEUscSk9PntFLnRhYlN0eWxlPXF9fSxtZXRhZGF0YTpUfSx2LGIpLHljKHRoaXMsbnVsbCx5LHtraW5kOiJhY2Nlc3NvciIsbmFtZToiYXV0b0hpZGUiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOkU9PiJhdXRvSGlkZSJpbiBFLGdldDpFPT5FLmF1dG9IaWRlLHNldDooRSxxKT0+e0UuYXV0b0hpZGU9cX19LG1ldGFkYXRhOlR9LHcsaykseWModGhpcyxudWxsLE8se2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJhdXRvSGlkZVRocmVzaG9sZCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6RT0+ImF1dG9IaWRlVGhyZXNob2xkImluIEUsZ2V0OkU9PkUuYXV0b0hpZGVUaHJlc2hvbGQsc2V0OihFLHEpPT57RS5hdXRvSGlkZVRocmVzaG9sZD1xfX0sbWV0YWRhdGE6VH0seixNKSx5Yyh0aGlzLG51bGwsRix7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImNhblNjcm9sbExlZnQiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOkU9PiJjYW5TY3JvbGxMZWZ0ImluIEUsZ2V0OkU9PkUuY2FuU2Nyb2xsTGVmdCxzZXQ6KEUscSk9PntFLmNhblNjcm9sbExlZnQ9cX19LG1ldGFkYXRhOlR9LEQsTikseWModGhpcyxudWxsLFIse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJjYW5TY3JvbGxSaWdodCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6RT0+ImNhblNjcm9sbFJpZ2h0ImluIEUsZ2V0OkU9PkUuY2FuU2Nyb2xsUmlnaHQsc2V0OihFLHEpPT57RS5jYW5TY3JvbGxSaWdodD1xfX0sbWV0YWRhdGE6VH0sXyxTKSx5YyhudWxsLHQ9e3ZhbHVlOml9LGUse2tpbmQ6ImNsYXNzIixuYW1lOmkubmFtZSxtZXRhZGF0YTpUfSxudWxsLHIpLCQ9aT10LnZhbHVlLFQmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShpLFN5bWJvbC5tZXRhZGF0YSx7ZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITAsdmFsdWU6VH0pfXN0YXRpYyBkZW1vPU9scjtzdGF0aWMgZGVtb0dyb3Vwcz1bIkFwcCBVSSJdOyNlPXRhKHRoaXMsbyxbXSk7Z2V0IHRhYnMoKXtyZXR1cm4gdGhpcy4jZX1zZXQgdGFicyhUKXt0aGlzLiNlPVR9I3Q9KHRhKHRoaXMscyksdGEodGhpcyxjLG51bGwpKTtnZXQgc2VsZWN0ZWRUYWIoKXtyZXR1cm4gdGhpcy4jdH1zZXQgc2VsZWN0ZWRUYWIoVCl7dGhpcy4jdD1UfSNyPSh0YSh0aGlzLHUpLHRhKHRoaXMsaCwhMCkpO2dldCBzaG93VGFiSW5kaWNhdG9yKCl7cmV0dXJuIHRoaXMuI3J9c2V0IHNob3dUYWJJbmRpY2F0b3IoVCl7dGhpcy4jcj1UfSNpPSh0YSh0aGlzLGYpLHRhKHRoaXMsdiwiaG9yaXpvbnRhbCIpKTtnZXQgdGFiU3R5bGUoKXtyZXR1cm4gdGhpcy4jaX1zZXQgdGFiU3R5bGUoVCl7dGhpcy4jaT1UfSNhPSh0YSh0aGlzLGIpLHRhKHRoaXMsdywhMSkpO2dldCBhdXRvSGlkZSgpe3JldHVybiB0aGlzLiNhfXNldCBhdXRvSGlkZShUKXt0aGlzLiNhPVR9I249KHRhKHRoaXMsayksdGEodGhpcyx6LDApKTtnZXQgYXV0b0hpZGVUaHJlc2hvbGQoKXtyZXR1cm4gdGhpcy4jbn1zZXQgYXV0b0hpZGVUaHJlc2hvbGQoVCl7dGhpcy4jbj1UfSNvPSh0YSh0aGlzLE0pLHRhKHRoaXMsRCwhMSkpO2dldCBjYW5TY3JvbGxMZWZ0KCl7cmV0dXJuIHRoaXMuI299c2V0IGNhblNjcm9sbExlZnQoVCl7dGhpcy4jbz1UfSNzPSh0YSh0aGlzLE4pLHRhKHRoaXMsXywhMSkpO2dldCBjYW5TY3JvbGxSaWdodCgpe3JldHVybiB0aGlzLiNzfXNldCBjYW5TY3JvbGxSaWdodChUKXt0aGlzLiNzPVR9cmVzaXplT2JzZXJ2ZXI9KHRhKHRoaXMsUyksbnVsbCk7c3RhdGljIHN0eWxlcz1bRGUsbS5kZWZhdWx0U3R5bGVzLG9lYAogICAgICAvKiBUT0RPOiBNaWdyYXRlIGhhcmRjb2RlZCB2YWx1ZXMgdG8gLS1kZWVzLSogQ1NTIHZhcmlhYmxlcyAqLwogICAgICA6aG9zdCB7CiAgICAgICAgZGlzcGxheTogYmxvY2s7CiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICAgIHdpZHRoOiAxMDAlOwogICAgICAgIG1pbi13aWR0aDogMDsKICAgICAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgICB9CgogICAgICAudGFicy13cmFwcGVyIHsKICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgICAgbWluLXdpZHRoOiAwOwogICAgICB9CgogICAgICAudGFicy13cmFwcGVyLmhvcml6b250YWwtd3JhcHBlciB7CiAgICAgICAgaGVpZ2h0OiA0OHB4OwogICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAke20uYmRUaGVtZSgiI2U1ZTdlYiIsIiMyNzI3MmEiKX07CiAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDsKICAgICAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgICB9CgogICAgICAvKiBTY3JvbGwgZmFkZSBpbmRpY2F0b3JzICovCiAgICAgIC5zY3JvbGwtZmFkZSB7CiAgICAgICAgcG9zaXRpb246IGFic29sdXRlOwogICAgICAgIHRvcDogMDsKICAgICAgICBib3R0b206IDFweDsKICAgICAgICB3aWR0aDogNDhweDsKICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTsKICAgICAgICBvcGFjaXR5OiAwOwogICAgICAgIHRyYW5zaXRpb246IG9wYWNpdHkgMC4ycyBlYXNlOwogICAgICAgIHotaW5kZXg6IDEwOwogICAgICB9CgogICAgICAuc2Nyb2xsLWZhZGUtbGVmdCB7CiAgICAgICAgbGVmdDogMDsKICAgICAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQodG8gcmlnaHQsCiAgICAgICAgICAke20uYmRUaGVtZSgiI2ZmZmZmZiIsIiMxNjE2MTYiKX0gMCUsCiAgICAgICAgICAke20uYmRUaGVtZSgicmdiYSgyNTUsMjU1LDI1NSwwKSIsInJnYmEoMjIsMjIsMjIsMCkiKX0gMTAwJSk7CiAgICAgIH0KCiAgICAgIC5zY3JvbGwtZmFkZS1yaWdodCB7CiAgICAgICAgcmlnaHQ6IDA7CiAgICAgICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KHRvIGxlZnQsCiAgICAgICAgICAke20uYmRUaGVtZSgiI2ZmZmZmZiIsIiMxNjE2MTYiKX0gMCUsCiAgICAgICAgICAke20uYmRUaGVtZSgicmdiYSgyNTUsMjU1LDI1NSwwKSIsInJnYmEoMjIsMjIsMjIsMCkiKX0gMTAwJSk7CiAgICAgIH0KCiAgICAgIC5zY3JvbGwtZmFkZS52aXNpYmxlIHsKICAgICAgICBvcGFjaXR5OiAxOwogICAgICB9CgogICAgICAudGFic0NvbnRhaW5lciB7CiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICAgIHVzZXItc2VsZWN0OiBub25lOwogICAgICAgIG1pbi13aWR0aDogMDsKICAgICAgfQoKICAgICAgLnRhYnNDb250YWluZXIuaG9yaXpvbnRhbCB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGZvbnQtc2l6ZTogMTRweDsKICAgICAgICBvdmVyZmxvdy14OiBhdXRvOwogICAgICAgIG92ZXJmbG93LXk6IGhpZGRlbjsKICAgICAgICBvdmVyc2Nyb2xsLWJlaGF2aW9yOiBjb250YWluOwogICAgICAgIHNjcm9sbGJhci13aWR0aDogdGhpbjsKICAgICAgICBzY3JvbGxiYXItY29sb3I6IHRyYW5zcGFyZW50IHRyYW5zcGFyZW50OwogICAgICAgIGhlaWdodDogMTAwJTsKICAgICAgICBwYWRkaW5nOiAwIDE2cHg7CiAgICAgICAgZ2FwOiA0cHg7CiAgICAgIH0KCiAgICAgIC8qIFNob3cgc2Nyb2xsYmFyIG9uIGhvdmVyICovCiAgICAgIC50YWJzLXdyYXBwZXI6aG92ZXIgLnRhYnNDb250YWluZXIuaG9yaXpvbnRhbCB7CiAgICAgICAgc2Nyb2xsYmFyLWNvbG9yOiAke20uYmRUaGVtZSgicmdiYSgwLDAsMCwwLjIpIiwicmdiYSgyNTUsMjU1LDI1NSwwLjIpIil9IHRyYW5zcGFyZW50OwogICAgICB9CgogICAgICAudGFic0NvbnRhaW5lci5ob3Jpem9udGFsOjotd2Via2l0LXNjcm9sbGJhciB7CiAgICAgICAgaGVpZ2h0OiA0cHg7CiAgICAgIH0KCiAgICAgIC50YWJzQ29udGFpbmVyLmhvcml6b250YWw6Oi13ZWJraXQtc2Nyb2xsYmFyLXRyYWNrIHsKICAgICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDsKICAgICAgfQoKICAgICAgLnRhYnNDb250YWluZXIuaG9yaXpvbnRhbDo6LXdlYmtpdC1zY3JvbGxiYXItdGh1bWIgewogICAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDJweDsKICAgICAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kIDAuMnMgZWFzZTsKICAgICAgfQoKICAgICAgLnRhYnMtd3JhcHBlcjpob3ZlciAudGFic0NvbnRhaW5lci5ob3Jpem9udGFsOjotd2Via2l0LXNjcm9sbGJhci10aHVtYiB7CiAgICAgICAgYmFja2dyb3VuZDogJHttLmJkVGhlbWUoInJnYmEoMCwwLDAsMC4yKSIsInJnYmEoMjU1LDI1NSwyNTUsMC4yKSIpfTsKICAgICAgfQoKICAgICAgLnRhYnMtd3JhcHBlcjpob3ZlciAudGFic0NvbnRhaW5lci5ob3Jpem9udGFsOjotd2Via2l0LXNjcm9sbGJhci10aHVtYjpob3ZlciB7CiAgICAgICAgYmFja2dyb3VuZDogJHttLmJkVGhlbWUoInJnYmEoMCwwLDAsMC4zNSkiLCJyZ2JhKDI1NSwyNTUsMjU1LDAuMzUpIil9OwogICAgICB9CgogICAgICAudGFic0NvbnRhaW5lci52ZXJ0aWNhbCB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICAgIHBhZGRpbmc6IDhweDsKICAgICAgICBmb250LXNpemU6IDE0cHg7CiAgICAgICAgZ2FwOiAycHg7CiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICAgIGJhY2tncm91bmQ6ICR7bS5iZFRoZW1lKCIjZjlmYWZiIiwiIzE4MTgxYiIpfTsKICAgICAgICBib3JkZXItcmFkaXVzOiA4cHg7CiAgICAgIH0KCiAgICAgIC50YWIgewogICAgICAgIGNvbG9yOiAke20uYmRUaGVtZSgiIzcxNzE3YSIsIiM3MTcxN2EiKX07CiAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDsKICAgICAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICAgICAgdHJhbnNpdGlvbjogY29sb3IgMC4xNXMgZWFzZTsKICAgICAgICBmb250LXdlaWdodDogNTAwOwogICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgICB6LWluZGV4OiAyOwogICAgICB9CgogICAgICAuaG9yaXpvbnRhbCAudGFiIHsKICAgICAgICBwYWRkaW5nOiAwIDE2cHg7CiAgICAgICAgaGVpZ2h0OiAxMDAlOwogICAgICAgIGRpc3BsYXk6IGlubGluZS1mbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgZ2FwOiA4cHg7CiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICAgIGJvcmRlci1yYWRpdXM6IDZweCA2cHggMCAwOwogICAgICAgIHRyYW5zaXRpb246IGJhY2tncm91bmQtY29sb3IgMC4xNXMgZWFzZTsKICAgICAgfQogICAgICAKICAgICAgLmhvcml6b250YWwgLnRhYjpub3QoOmxhc3QtY2hpbGQpOjphZnRlciB7CiAgICAgICAgY29udGVudDogJyc7CiAgICAgICAgcG9zaXRpb246IGFic29sdXRlOwogICAgICAgIHJpZ2h0OiAtMnB4OwogICAgICAgIHRvcDogNTAlOwogICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTsKICAgICAgICBoZWlnaHQ6IDIwcHg7CiAgICAgICAgd2lkdGg6IDFweDsKICAgICAgICBiYWNrZ3JvdW5kOiAke20uYmRUaGVtZSgiI2U1ZTdlYiIsIiMyNzI3MmEiKX07CiAgICAgICAgb3BhY2l0eTogMC41OwogICAgICB9CiAgICAgIAogICAgICAuaG9yaXpvbnRhbCAudGFiIC50YWItY29udGVudCB7CiAgICAgICAgZGlzcGxheTogaW5saW5lLWZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBnYXA6IDhweDsKICAgICAgfQoKICAgICAgLnZlcnRpY2FsIC50YWIgewogICAgICAgIHBhZGRpbmc6IDEwcHggMTZweDsKICAgICAgICBib3JkZXItcmFkaXVzOiA2cHg7CiAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGdhcDogOHB4OwogICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjE1cyBlYXNlOwogICAgICB9CgogICAgICAudGFiOmhvdmVyIHsKICAgICAgICBjb2xvcjogJHttLmJkVGhlbWUoIiMwOTA5MGIiLCIjZmFmYWZhIil9OwogICAgICB9CiAgICAgIAogICAgICAuaG9yaXpvbnRhbCAudGFiOmhvdmVyIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke20uYmRUaGVtZSgicmdiYSgwLCAwLCAwLCAwLjAzKSIsInJnYmEoMjU1LCAyNTUsIDI1NSwgMC4wMykiKX07CiAgICAgIH0KICAgICAgCiAgICAgIC5ob3Jpem9udGFsIC50YWI6aG92ZXI6OmFmdGVyLAogICAgICAuaG9yaXpvbnRhbCAudGFiOmhvdmVyICsgLnRhYjo6YWZ0ZXIgewogICAgICAgIG9wYWNpdHk6IDA7CiAgICAgIH0KCiAgICAgIC52ZXJ0aWNhbCAudGFiOmhvdmVyIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke20uYmRUaGVtZSgicmdiYSgyNDQsIDI0NCwgMjQ1LCAwLjUpIiwicmdiYSgzOSwgMzksIDQyLCAwLjUpIil9OwogICAgICB9CgogICAgICAuaG9yaXpvbnRhbCAudGFiLnNlbGVjdGVkVGFiIHsKICAgICAgICBjb2xvcjogJHttLmJkVGhlbWUoIiMwOTA5MGIiLCIjZmFmYWZhIil9OwogICAgICB9CiAgICAgIAogICAgICAuaG9yaXpvbnRhbCAudGFiLnNlbGVjdGVkVGFiOjphZnRlciwKICAgICAgLmhvcml6b250YWwgLnRhYi5zZWxlY3RlZFRhYiArIC50YWI6OmFmdGVyIHsKICAgICAgICBvcGFjaXR5OiAwOwogICAgICB9CgogICAgICAudmVydGljYWwgLnRhYi5zZWxlY3RlZFRhYiB7CiAgICAgICAgY29sb3I6ICR7bS5iZFRoZW1lKCIjMDkwOTBiIiwiI2ZhZmFmYSIpfTsKICAgICAgfQoKICAgICAgLnRhYiBkZWVzLWljb24gewogICAgICAgIGZvbnQtc2l6ZTogMTZweDsKICAgICAgfQoKICAgICAgLnRhYkluZGljYXRvciB7CiAgICAgICAgcG9zaXRpb246IGFic29sdXRlOwogICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjNzIGN1YmljLWJlemllcigwLjQsIDAsIDAuMiwgMSk7CiAgICAgICAgb3BhY2l0eTogMDsKICAgICAgfQogICAgICAKICAgICAgLnRhYkluZGljYXRvci5uby10cmFuc2l0aW9uIHsKICAgICAgICB0cmFuc2l0aW9uOiBub25lOwogICAgICB9CgogICAgICAudGFicy13cmFwcGVyIC50YWJJbmRpY2F0b3IgewogICAgICAgIGhlaWdodDogM3B4OwogICAgICAgIGJvdHRvbTogMDsKICAgICAgICBiYWNrZ3JvdW5kOiAke20uYmRUaGVtZSgiIzNiODJmNiIsIiMzYjgyZjYiKX07CiAgICAgICAgYm9yZGVyLXJhZGl1czogM3B4IDNweCAwIDA7CiAgICAgICAgei1pbmRleDogMzsKICAgICAgfQoKICAgICAgLnZlcnRpY2FsLXdyYXBwZXIgewogICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgfQoKICAgICAgLnZlcnRpY2FsLXdyYXBwZXIgLnRhYkluZGljYXRvciB7CiAgICAgICAgbGVmdDogOHB4OwogICAgICAgIHJpZ2h0OiA4cHg7CiAgICAgICAgYm9yZGVyLXJhZGl1czogNnB4OwogICAgICAgIGJhY2tncm91bmQ6ICR7bS5iZFRoZW1lKCIjZmZmZmZmIiwiIzI3MjcyYSIpfTsKICAgICAgICB6LWluZGV4OiAxOwogICAgICAgIGJveC1zaGFkb3c6IDAgMXB4IDNweCByZ2JhKDAsIDAsIDAsIDAuMDgpOwogICAgICB9CgogICAgICAvKiBDbG9zZSBidXR0b24gKi8KICAgICAgLnRhYi1jbG9zZSB7CiAgICAgICAgZGlzcGxheTogaW5saW5lLWZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKICAgICAgICB3aWR0aDogMTZweDsKICAgICAgICBoZWlnaHQ6IDE2cHg7CiAgICAgICAgYm9yZGVyLXJhZGl1czogNHB4OwogICAgICAgIG1hcmdpbi1sZWZ0OiA4cHg7CiAgICAgICAgb3BhY2l0eTogMC40OwogICAgICAgIHRyYW5zaXRpb246IG9wYWNpdHkgMC4xNXMsIGJhY2tncm91bmQgMC4xNXM7CiAgICAgICAgY29sb3I6ICR7bS5iZFRoZW1lKCIjNzE3MTdhIiwiIzcxNzE3YSIpfTsKICAgICAgfQoKICAgICAgLnRhYjpob3ZlciAudGFiLWNsb3NlIHsKICAgICAgICBvcGFjaXR5OiAwLjc7CiAgICAgIH0KCiAgICAgIC50YWItY2xvc2U6aG92ZXIgewogICAgICAgIG9wYWNpdHk6IDE7CiAgICAgICAgYmFja2dyb3VuZDogJHttLmJkVGhlbWUoInJnYmEoMCwwLDAsMC4xKSIsInJnYmEoMjU1LDI1NSwyNTUsMC4xKSIpfTsKICAgICAgICBjb2xvcjogJHttLmJkVGhlbWUoIiNlZjQ0NDQiLCIjZjg3MTcxIil9OwogICAgICB9CgogICAgICAudGFiLnNlbGVjdGVkVGFiIC50YWItY2xvc2UgewogICAgICAgIG9wYWNpdHk6IDAuNTsKICAgICAgfQoKICAgICAgLnRhYi5zZWxlY3RlZFRhYjpob3ZlciAudGFiLWNsb3NlIHsKICAgICAgICBvcGFjaXR5OiAwLjg7CiAgICAgIH0KCiAgICAgIC50YWIuc2VsZWN0ZWRUYWIgLnRhYi1jbG9zZTpob3ZlciB7CiAgICAgICAgb3BhY2l0eTogMTsKICAgICAgfQogICAgYF07cmVuZGVyKCl7cmV0dXJuIHRoaXMuYXV0b0hpZGUmJnRoaXMudGFicy5sZW5ndGg8PXRoaXMuYXV0b0hpZGVUaHJlc2hvbGQ/Q2BgOkNgCiAgICAgICR7dGhpcy5yZW5kZXJUYWJzV3JhcHBlcigpfQogICAgYH1yZW5kZXJUYWJzV3JhcHBlcigpe2xldCBUPXRoaXMudGFiU3R5bGU9PT0iaG9yaXpvbnRhbCIsRT1UPyJ0YWJzLXdyYXBwZXIgaG9yaXpvbnRhbC13cmFwcGVyIjoidmVydGljYWwtd3JhcHBlciIscT1gdGFic0NvbnRhaW5lciAke3RoaXMudGFiU3R5bGV9YDtyZXR1cm4gVD9DYAogICAgICAgIDxkaXYgY2xhc3M9IiR7RX0iPgogICAgICAgICAgPGRpdiBjbGFzcz0ic2Nyb2xsLWZhZGUgc2Nyb2xsLWZhZGUtbGVmdCAke3RoaXMuY2FuU2Nyb2xsTGVmdD8idmlzaWJsZSI6IiJ9Ij48L2Rpdj4KICAgICAgICAgIDxkaXYgY2xhc3M9IiR7cX0iIEBzY3JvbGw9JHt0aGlzLmhhbmRsZVNjcm9sbH0+CiAgICAgICAgICAgICR7dGhpcy50YWJzLm1hcChCPT50aGlzLnJlbmRlclRhYihCLFQpKX0KICAgICAgICAgIDwvZGl2PgogICAgICAgICAgPGRpdiBjbGFzcz0ic2Nyb2xsLWZhZGUgc2Nyb2xsLWZhZGUtcmlnaHQgJHt0aGlzLmNhblNjcm9sbFJpZ2h0PyJ2aXNpYmxlIjoiIn0iPjwvZGl2PgogICAgICAgICAgJHt0aGlzLnNob3dUYWJJbmRpY2F0b3I/Q2A8ZGl2IGNsYXNzPSJ0YWJJbmRpY2F0b3IiPjwvZGl2PmA6IiJ9CiAgICAgICAgPC9kaXY+CiAgICAgIGA6Q2AKICAgICAgPGRpdiBjbGFzcz0iJHtFfSI+CiAgICAgICAgPGRpdiBjbGFzcz0iJHtxfSI+CiAgICAgICAgICAke3RoaXMudGFicy5tYXAoQj0+dGhpcy5yZW5kZXJUYWIoQixUKSl9CiAgICAgICAgPC9kaXY+CiAgICAgICAgJHt0aGlzLnNob3dUYWJJbmRpY2F0b3I/Q2A8ZGl2IGNsYXNzPSJ0YWJJbmRpY2F0b3IiPjwvZGl2PmA6IiJ9CiAgICAgIDwvZGl2PgogICAgYH1yZW5kZXJUYWIoVCxFKXtsZXQgQj1gdGFiICR7VD09PXRoaXMuc2VsZWN0ZWRUYWI/InNlbGVjdGVkVGFiIjoiIn1gLEc9VC5jbG9zZWFibGU/Q2AKICAgICAgPHNwYW4gY2xhc3M9InRhYi1jbG9zZSIgQGNsaWNrPSIke1A9PnRoaXMuY2xvc2VUYWIoUCxUKX0iPgogICAgICAgIDxkZWVzLWljb24gLmljb249JHsibHVjaWRlOngifSBzdHlsZT0iZm9udC1zaXplOiAxMnB4OyI+PC9kZWVzLWljb24+CiAgICAgIDwvc3Bhbj4KICAgIGA6IiIsZWU9RT9DYAogICAgICA8c3BhbiBjbGFzcz0idGFiLWNvbnRlbnQiPgogICAgICAgICR7dGhpcy5yZW5kZXJUYWJJY29uKFQpfQogICAgICAgICR7VC5rZXl9CiAgICAgIDwvc3Bhbj4KICAgICAgJHtHfQogICAgYDpDYAogICAgICAke3RoaXMucmVuZGVyVGFiSWNvbihUKX0KICAgICAgJHtULmtleX0KICAgICAgJHtHfQogICAgYDtyZXR1cm4gQ2AKICAgICAgPGRpdgogICAgICAgIGNsYXNzPSIke0J9IgogICAgICAgIEBjbGljaz0iJHsoKT0+dGhpcy5zZWxlY3RUYWIoVCl9IgogICAgICA+CiAgICAgICAgJHtlZX0KICAgICAgPC9kaXY+CiAgICBgfXJlbmRlclRhYkljb24oVCl7cmV0dXJuIFQuaWNvbk5hbWU/Q2A8ZGVlcy1pY29uIC5pY29uPSR7VC5pY29uTmFtZX0+PC9kZWVzLWljb24+YDoiIn1zZWxlY3RUYWIoVCl7dGhpcy5zZWxlY3RlZFRhYj1ULFQuYWN0aW9uKCkscmVxdWVzdEFuaW1hdGlvbkZyYW1lKCgpPT57dGhpcy5zY3JvbGxUYWJJbnRvVmlldyhUKX0pLHRoaXMuZGlzcGF0Y2hFdmVudChuZXcgQ3VzdG9tRXZlbnQoInRhYi1zZWxlY3QiLHtkZXRhaWw6e3RhYjpUfSxidWJibGVzOiEwLGNvbXBvc2VkOiEwfSkpfWNsb3NlVGFiKFQsRSl7VC5zdG9wUHJvcGFnYXRpb24oKSxFLm9uQ2xvc2UmJkUub25DbG9zZSgpLHRoaXMuZGlzcGF0Y2hFdmVudChuZXcgQ3VzdG9tRXZlbnQoInRhYi1jbG9zZSIse2RldGFpbDp7dGFiOkV9LGJ1YmJsZXM6ITAsY29tcG9zZWQ6ITB9KSl9Zmlyc3RVcGRhdGVkKCl7dGhpcy50YWJzJiZ0aGlzLnRhYnMubGVuZ3RoPjAmJnRoaXMuc2VsZWN0VGFiKHRoaXMudGFic1swXSksdGhpcy5zZXR1cFJlc2l6ZU9ic2VydmVyKCkscmVxdWVzdEFuaW1hdGlvbkZyYW1lKCgpPT57dGhpcy51cGRhdGVTY3JvbGxTdGF0ZSgpfSl9YXN5bmMgZGlzY29ubmVjdGVkQ2FsbGJhY2soKXthd2FpdCBzdXBlci5kaXNjb25uZWN0ZWRDYWxsYmFjaygpLHRoaXMucmVzaXplT2JzZXJ2ZXImJih0aGlzLnJlc2l6ZU9ic2VydmVyLmRpc2Nvbm5lY3QoKSx0aGlzLnJlc2l6ZU9ic2VydmVyPW51bGwpfXNldHVwUmVzaXplT2JzZXJ2ZXIoKXtpZih0aGlzLnRhYlN0eWxlIT09Imhvcml6b250YWwiKXJldHVybjt0aGlzLnJlc2l6ZU9ic2VydmVyPW5ldyBSZXNpemVPYnNlcnZlcigoKT0+e3RoaXMudXBkYXRlU2Nyb2xsU3RhdGUoKX0pO2xldCBUPXRoaXMuc2hhZG93Um9vdD8ucXVlcnlTZWxlY3RvcigiLnRhYnNDb250YWluZXIuaG9yaXpvbnRhbCIpO1QmJnRoaXMucmVzaXplT2JzZXJ2ZXIub2JzZXJ2ZShUKX1oYW5kbGVTY3JvbGw9KCk9Pnt0aGlzLnVwZGF0ZVNjcm9sbFN0YXRlKCl9O3VwZGF0ZVNjcm9sbFN0YXRlKCl7bGV0IFQ9dGhpcy5zaGFkb3dSb290Py5xdWVyeVNlbGVjdG9yKCIudGFic0NvbnRhaW5lci5ob3Jpem9udGFsIik7aWYoIVQpcmV0dXJuO2xldCBFPVQuc2Nyb2xsTGVmdCxxPVQuc2Nyb2xsV2lkdGgsQj1ULmNsaWVudFdpZHRoLEc9Mjt0aGlzLmNhblNjcm9sbExlZnQ9RT5HLHRoaXMuY2FuU2Nyb2xsUmlnaHQ9RTxxLUItR31zY3JvbGxUYWJJbnRvVmlldyhUKXtpZih0aGlzLnRhYlN0eWxlIT09Imhvcml6b250YWwiKXJldHVybjtsZXQgRT10aGlzLnRhYnMuaW5kZXhPZihUKTtpZihFPT09LTEpcmV0dXJuO2xldCBxPXRoaXMuc2hhZG93Um9vdD8ucXVlcnlTZWxlY3RvcigiLnRhYnNDb250YWluZXIuaG9yaXpvbnRhbCIpLEI9cT8ucXVlcnlTZWxlY3RvcihgLnRhYjpudGgtY2hpbGQoJHtFKzF9KWApO2lmKEImJnEpe2xldCBHPXEuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCksZWU9Qi5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtlZS5sZWZ0Pj1HLmxlZnQmJmVlLnJpZ2h0PD1HLnJpZ2h0fHxCLnNjcm9sbEludG9WaWV3KHtiZWhhdmlvcjoic21vb3RoIixibG9jazoibmVhcmVzdCIsaW5saW5lOiJuZWFyZXN0In0pfX1hc3luYyB1cGRhdGVkKFQpe3N1cGVyLnVwZGF0ZWQoVCksVC5oYXMoInRhYnMiKSYmdGhpcy50YWJzJiZ0aGlzLnRhYnMubGVuZ3RoPjAmJiF0aGlzLnNlbGVjdGVkVGFiJiZ0aGlzLnNlbGVjdFRhYih0aGlzLnRhYnNbMF0pLChULmhhcygic2VsZWN0ZWRUYWIiKXx8VC5oYXMoInRhYnMiKSkmJihhd2FpdCB0aGlzLnVwZGF0ZUNvbXBsZXRlLCF0aGlzLmluZGljYXRvckluaXRpYWxpemVkJiZkb2N1bWVudC5mb250cyYmYXdhaXQgZG9jdW1lbnQuZm9udHMucmVhZHkscmVxdWVzdEFuaW1hdGlvbkZyYW1lKCgpPT57dGhpcy51cGRhdGVUYWJJbmRpY2F0b3IoKSx0aGlzLnVwZGF0ZVNjcm9sbFN0YXRlKCl9KSl9aW5kaWNhdG9ySW5pdGlhbGl6ZWQ9ITE7dXBkYXRlVGFiSW5kaWNhdG9yKCl7aWYoIXRoaXMuc2hvdWxkU2hvd0luZGljYXRvcigpKXJldHVybjtsZXQgVD10aGlzLmdldFNlbGVjdGVkVGFiRWxlbWVudCgpO2lmKCFUKXJldHVybjtsZXQgRT10aGlzLmdldEluZGljYXRvckVsZW1lbnQoKTtFJiYodGhpcy5oYW5kbGVJbml0aWFsVHJhbnNpdGlvbihFKSx0aGlzLnRhYlN0eWxlPT09Imhvcml6b250YWwiP3RoaXMudXBkYXRlSG9yaXpvbnRhbEluZGljYXRvcihFLFQpOnRoaXMudXBkYXRlVmVydGljYWxJbmRpY2F0b3IoRSxUKSxFLnN0eWxlLm9wYWNpdHk9IjEiKX1zaG91bGRTaG93SW5kaWNhdG9yKCl7cmV0dXJuIHRoaXMuc2VsZWN0ZWRUYWImJnRoaXMuc2hvd1RhYkluZGljYXRvciYmdGhpcy50YWJzLmluY2x1ZGVzKHRoaXMuc2VsZWN0ZWRUYWIpfWdldFNlbGVjdGVkVGFiRWxlbWVudCgpe2xldCBUPXRoaXMudGFicy5pbmRleE9mKHRoaXMuc2VsZWN0ZWRUYWIpLHE9dGhpcy50YWJTdHlsZT09PSJob3Jpem9udGFsIj9gLnRhYnMtd3JhcHBlciAudGFic0NvbnRhaW5lciAudGFiOm50aC1jaGlsZCgke1QrMX0pYDpgLnZlcnRpY2FsLXdyYXBwZXIgLnRhYnNDb250YWluZXIgLnRhYjpudGgtY2hpbGQoJHtUKzF9KWA7cmV0dXJuIHRoaXMuc2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yKHEpfWdldEluZGljYXRvckVsZW1lbnQoKXtyZXR1cm4gdGhpcy5zaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3IoIi50YWJJbmRpY2F0b3IiKX1oYW5kbGVJbml0aWFsVHJhbnNpdGlvbihUKXt0aGlzLmluZGljYXRvckluaXRpYWxpemVkfHwoVC5jbGFzc0xpc3QuYWRkKCJuby10cmFuc2l0aW9uIiksdGhpcy5pbmRpY2F0b3JJbml0aWFsaXplZD0hMCxzZXRUaW1lb3V0KCgpPT57VC5jbGFzc0xpc3QucmVtb3ZlKCJuby10cmFuc2l0aW9uIil9LDUwKSl9dXBkYXRlSG9yaXpvbnRhbEluZGljYXRvcihULEUpe2xldCBxPUUucXVlcnlTZWxlY3RvcigiLnRhYi1jb250ZW50Iik7aWYoIXEpcmV0dXJuO2xldCBCPVQucGFyZW50RWxlbWVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKSxHPXEuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCksZWU9Ry5sZWZ0LUIubGVmdCxQPUcud2lkdGgrOCxnZT1lZS00O1Quc3R5bGUud2lkdGg9YCR7UH1weGAsVC5zdHlsZS5sZWZ0PWAke2dlfXB4YH11cGRhdGVWZXJ0aWNhbEluZGljYXRvcihULEUpe2xldCBxPXRoaXMuc2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yKCIudmVydGljYWwtd3JhcHBlciAudGFic0NvbnRhaW5lciIpO3EmJihULnN0eWxlLnRvcD1gJHtFLm9mZnNldFRvcCtxLm9mZnNldFRvcH1weGAsVC5zdHlsZS5oZWlnaHQ9YCR7RS5jbGllbnRIZWlnaHR9cHhgKX1zdGF0aWN7dGEoaSxyKX19O3JldHVybiAkPWl9KSgpfSk7dmFyIG9oLEQyLEhscixPNmU9cCgoKT0+eyQ0KCk7eGUoKTtLdCgpO0Y2ZSgpO0plKCk7b2g9ZnVuY3Rpb24oZSx0LHIsaSxhLG4pe2Z1bmN0aW9uIG8oeSl7aWYoeSE9PXZvaWQgMCYmdHlwZW9mIHkhPSJmdW5jdGlvbiIpdGhyb3cgbmV3IFR5cGVFcnJvcigiRnVuY3Rpb24gZXhwZWN0ZWQiKTtyZXR1cm4geX1mb3IodmFyIHM9aS5raW5kLGw9cz09PSJnZXR0ZXIiPyJnZXQiOnM9PT0ic2V0dGVyIj8ic2V0IjoidmFsdWUiLGM9IXQmJmU/aS5zdGF0aWM/ZTplLnByb3RvdHlwZTpudWxsLHU9dHx8KGM/T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihjLGkubmFtZSk6e30pLGQsaD0hMSxmPXIubGVuZ3RoLTE7Zj49MDtmLS0pe3ZhciB4PXt9O2Zvcih2YXIgdiBpbiBpKXhbdl09dj09PSJhY2Nlc3MiP3t9Omlbdl07Zm9yKHZhciB2IGluIGkuYWNjZXNzKXguYWNjZXNzW3ZdPWkuYWNjZXNzW3ZdO3guYWRkSW5pdGlhbGl6ZXI9ZnVuY3Rpb24oeSl7aWYoaCl0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgYWRkIGluaXRpYWxpemVycyBhZnRlciBkZWNvcmF0aW9uIGhhcyBjb21wbGV0ZWQiKTtuLnB1c2gobyh5fHxudWxsKSl9O3ZhciBiPSgwLHJbZl0pKHM9PT0iYWNjZXNzb3IiP3tnZXQ6dS5nZXQsc2V0OnUuc2V0fTp1W2xdLHgpO2lmKHM9PT0iYWNjZXNzb3IiKXtpZihiPT09dm9pZCAwKWNvbnRpbnVlO2lmKGI9PT1udWxsfHx0eXBlb2YgYiE9Im9iamVjdCIpdGhyb3cgbmV3IFR5cGVFcnJvcigiT2JqZWN0IGV4cGVjdGVkIik7KGQ9byhiLmdldCkpJiYodS5nZXQ9ZCksKGQ9byhiLnNldCkpJiYodS5zZXQ9ZCksKGQ9byhiLmluaXQpKSYmYS51bnNoaWZ0KGQpfWVsc2UoZD1vKGIpKSYmKHM9PT0iZmllbGQiP2EudW5zaGlmdChkKTp1W2xdPWQpfWMmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShjLGkubmFtZSx1KSxoPSEwfSxEMj1mdW5jdGlvbihlLHQscil7Zm9yKHZhciBpPWFyZ3VtZW50cy5sZW5ndGg+MixhPTA7YTx0Lmxlbmd0aDthKyspcj1pP3RbYV0uY2FsbChlLHIpOnRbYV0uY2FsbChlKTtyZXR1cm4gaT9yOnZvaWQgMH0sSGxyPSgoKT0+e2xldCBlPVt5ZSgiZGVlcy1hcHB1aS1tYWluY29udGVudCIpXSx0LHI9W10saSxhPXplLG4sbz1bXSxzPVtdLGwsYz1bXSx1PVtdLGQsaD1bXSxmPVtdLHgsdj1bXSxiPVtdLHksdz1bXSxrPVtdO3ZhciBPPWNsYXNzIGV4dGVuZHMgYXtzdGF0aWN7aT10aGlzfXN0YXRpY3tsZXQgej10eXBlb2YgU3ltYm9sPT0iZnVuY3Rpb24iJiZTeW1ib2wubWV0YWRhdGE/T2JqZWN0LmNyZWF0ZShhW1N5bWJvbC5tZXRhZGF0YV0/P251bGwpOnZvaWQgMDtuPVtqKHt0eXBlOkFycmF5fSldLGw9W2ooe3R5cGU6T2JqZWN0fSldLGQ9W2ooe3R5cGU6Qm9vbGVhbn0pXSx4PVtqKHt0eXBlOkJvb2xlYW59KV0seT1baih7dHlwZTpOdW1iZXJ9KV0sb2godGhpcyxudWxsLG4se2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJ0YWJzIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpNPT4idGFicyJpbiBNLGdldDpNPT5NLnRhYnMsc2V0OihNLEYpPT57TS50YWJzPUZ9fSxtZXRhZGF0YTp6fSxvLHMpLG9oKHRoaXMsbnVsbCxsLHtraW5kOiJhY2Nlc3NvciIsbmFtZToic2VsZWN0ZWRUYWIiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOk09PiJzZWxlY3RlZFRhYiJpbiBNLGdldDpNPT5NLnNlbGVjdGVkVGFiLHNldDooTSxGKT0+e00uc2VsZWN0ZWRUYWI9Rn19LG1ldGFkYXRhOnp9LGMsdSksb2godGhpcyxudWxsLGQse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJzaG93VGFicyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6TT0+InNob3dUYWJzImluIE0sZ2V0Ok09Pk0uc2hvd1RhYnMsc2V0OihNLEYpPT57TS5zaG93VGFicz1GfX0sbWV0YWRhdGE6en0saCxmKSxvaCh0aGlzLG51bGwseCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InRhYnNBdXRvSGlkZSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6TT0+InRhYnNBdXRvSGlkZSJpbiBNLGdldDpNPT5NLnRhYnNBdXRvSGlkZSxzZXQ6KE0sRik9PntNLnRhYnNBdXRvSGlkZT1GfX0sbWV0YWRhdGE6en0sdixiKSxvaCh0aGlzLG51bGwseSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InRhYnNBdXRvSGlkZVRocmVzaG9sZCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6TT0+InRhYnNBdXRvSGlkZVRocmVzaG9sZCJpbiBNLGdldDpNPT5NLnRhYnNBdXRvSGlkZVRocmVzaG9sZCxzZXQ6KE0sRik9PntNLnRhYnNBdXRvSGlkZVRocmVzaG9sZD1GfX0sbWV0YWRhdGE6en0sdyxrKSxvaChudWxsLHQ9e3ZhbHVlOml9LGUse2tpbmQ6ImNsYXNzIixuYW1lOmkubmFtZSxtZXRhZGF0YTp6fSxudWxsLHIpLE89aT10LnZhbHVlLHomJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShpLFN5bWJvbC5tZXRhZGF0YSx7ZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITAsdmFsdWU6en0pfXN0YXRpYyBkZW1vPSgpPT5DYAogICAgPGRlZXMtYXBwdWktbWFpbmNvbnRlbnQKICAgICAgLnRhYnM9JHtbe2tleToiT3ZlcnZpZXciLGljb25OYW1lOiJsdWNpZGU6aG9tZSIsYWN0aW9uOigpPT5jb25zb2xlLmxvZygiT3ZlcnZpZXciKX0se2tleToiRGV0YWlscyIsaWNvbk5hbWU6Imx1Y2lkZTpmaWxlIixhY3Rpb246KCk9PmNvbnNvbGUubG9nKCJEZXRhaWxzIil9LHtrZXk6IlNldHRpbmdzIixpY29uTmFtZToibHVjaWRlOnNldHRpbmdzIixhY3Rpb246KCk9PmNvbnNvbGUubG9nKCJTZXR0aW5ncyIpfV19CiAgICA+CiAgICAgIDxkaXYgc2xvdD0iY29udGVudCIgc3R5bGU9InBhZGRpbmc6IDQwcHg7IGNvbG9yOiAjY2NjOyI+CiAgICAgICAgPGgxPk1haW4gQ29udGVudCBBcmVhPC9oMT4KICAgICAgICA8cD5UaGlzIGlzIHdoZXJlIHlvdXIgYXBwbGljYXRpb24gY29udGVudCBnb2VzLjwvcD4KICAgICAgPC9kaXY+CiAgICA8L2RlZXMtYXBwdWktbWFpbmNvbnRlbnQ+CiAgYDtzdGF0aWMgZGVtb0dyb3Vwcz1bIkFwcCBVSSJdOyNlPUQyKHRoaXMsbyxbe2tleToiXHUyNkEwXHVGRTBGIFBsZWFzZSBzZXQgdGFicyIsYWN0aW9uOigpPT5jb25zb2xlLndhcm4oIk5vIHRhYnMgY29uZmlndXJlZCBmb3IgbWFpbmNvbnRlbnQiKX1dKTtnZXQgdGFicygpe3JldHVybiB0aGlzLiNlfXNldCB0YWJzKHope3RoaXMuI2U9en0jdD0oRDIodGhpcyxzKSxEMih0aGlzLGMsbnVsbCkpO2dldCBzZWxlY3RlZFRhYigpe3JldHVybiB0aGlzLiN0fXNldCBzZWxlY3RlZFRhYih6KXt0aGlzLiN0PXp9I3I9KEQyKHRoaXMsdSksRDIodGhpcyxoLCEwKSk7Z2V0IHNob3dUYWJzKCl7cmV0dXJuIHRoaXMuI3J9c2V0IHNob3dUYWJzKHope3RoaXMuI3I9en0jaT0oRDIodGhpcyxmKSxEMih0aGlzLHYsITEpKTtnZXQgdGFic0F1dG9IaWRlKCl7cmV0dXJuIHRoaXMuI2l9c2V0IHRhYnNBdXRvSGlkZSh6KXt0aGlzLiNpPXp9I2E9KEQyKHRoaXMsYiksRDIodGhpcyx3LDApKTtnZXQgdGFic0F1dG9IaWRlVGhyZXNob2xkKCl7cmV0dXJuIHRoaXMuI2F9c2V0IHRhYnNBdXRvSGlkZVRocmVzaG9sZCh6KXt0aGlzLiNhPXp9c3RhdGljIHN0eWxlcz1bRGUsbS5kZWZhdWx0U3R5bGVzLG9lYAogICAgICAvKiBUT0RPOiBNaWdyYXRlIGhhcmRjb2RlZCB2YWx1ZXMgdG8gLS1kZWVzLSogQ1NTIHZhcmlhYmxlcyAqLwogICAgICA6aG9zdCB7CiAgICAgICAgY29sb3I6ICR7bS5iZFRoZW1lKCIjMzMzIiwiI2ZmZiIpfTsKICAgICAgICBkaXNwbGF5OiBncmlkOwogICAgICAgIGdyaWQtdGVtcGxhdGUtcm93czogYXV0byAxZnI7CiAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgICAgaGVpZ2h0OiAxMDAlOwogICAgICAgIGJhY2tncm91bmQ6ICR7bS5iZFRoZW1lKCIjZmZmZmZmIiwiIzE2MTYxNiIpfTsKICAgICAgfQoKICAgICAgLm1haW5jb250YWluZXIgewogICAgICAgIGRpc3BsYXk6IGNvbnRlbnRzOwogICAgICB9CgogICAgICAudG9wYmFyIHsKICAgICAgICBkaXNwbGF5OiBncmlkOwogICAgICAgIGdyaWQtdGVtcGxhdGUtcm93czogMWZyOwogICAgICAgIG92ZXJmbG93OiBoaWRkZW47CiAgICAgICAgdXNlci1zZWxlY3Q6IG5vbmU7CiAgICAgICAgdHJhbnNpdGlvbjogZ3JpZC10ZW1wbGF0ZS1yb3dzIDAuM3MgZWFzZTsKICAgICAgfQoKICAgICAgLnRvcGJhciA+ICogewogICAgICAgIG1pbi1oZWlnaHQ6IDA7CiAgICAgIH0KCiAgICAgIC5jb250ZW50LWFyZWEgewogICAgICAgIG92ZXJmbG93OiBhdXRvOwogICAgICAgIG1pbi1oZWlnaHQ6IDA7CiAgICAgICAgb3ZlcnNjcm9sbC1iZWhhdmlvcjogY29udGFpbjsKICAgICAgfQoKICAgICAgOmhvc3QoW25vdGFic10pIC50b3BiYXIgewogICAgICAgIGdyaWQtdGVtcGxhdGUtcm93czogMGZyOwogICAgICB9CiAgICBgXTtyZW5kZXIoKXtyZXR1cm4gQ2AKICAgICAgPGRpdiBjbGFzcz0ibWFpbmNvbnRhaW5lciI+CiAgICAgICAgPGRpdiBjbGFzcz0idG9wYmFyIj4KICAgICAgICAgIDxkZWVzLWFwcHVpLXRhYnMKICAgICAgICAgICAgLnRhYnM9JHt0aGlzLnRhYnN9CiAgICAgICAgICAgIC5zZWxlY3RlZFRhYj0ke3RoaXMuc2VsZWN0ZWRUYWJ9CiAgICAgICAgICAgIC5zaG93VGFiSW5kaWNhdG9yPSR7ITB9CiAgICAgICAgICAgIC50YWJTdHlsZT0keyJob3Jpem9udGFsIn0KICAgICAgICAgICAgLmF1dG9IaWRlPSR7dGhpcy50YWJzQXV0b0hpZGV9CiAgICAgICAgICAgIC5hdXRvSGlkZVRocmVzaG9sZD0ke3RoaXMudGFic0F1dG9IaWRlVGhyZXNob2xkfQogICAgICAgICAgICBAdGFiLXNlbGVjdD0ke3o9PnRoaXMuaGFuZGxlVGFiU2VsZWN0KHopfQogICAgICAgICAgICBAdGFiLWNsb3NlPSR7ej0+dGhpcy5oYW5kbGVUYWJDbG9zZSh6KX0KICAgICAgICAgID48L2RlZXMtYXBwdWktdGFicz4KICAgICAgICA8L2Rpdj4KICAgICAgICA8ZGl2IGNsYXNzPSJjb250ZW50LWFyZWEiPgogICAgICAgICAgPHNsb3Q+PC9zbG90PgogICAgICAgICAgPHNsb3QgbmFtZT0iY29udGVudCI+PC9zbG90PgogICAgICAgIDwvZGl2PgogICAgICA8L2Rpdj4KICAgIGB9aGFuZGxlVGFiU2VsZWN0KHope3RoaXMuc2VsZWN0ZWRUYWI9ei5kZXRhaWwudGFiLHRoaXMuZGlzcGF0Y2hFdmVudChuZXcgQ3VzdG9tRXZlbnQoInRhYi1zZWxlY3QiLHtkZXRhaWw6ei5kZXRhaWwsYnViYmxlczohMCxjb21wb3NlZDohMH0pKX1oYW5kbGVUYWJDbG9zZSh6KXt0aGlzLmRpc3BhdGNoRXZlbnQobmV3IEN1c3RvbUV2ZW50KCJ0YWItY2xvc2UiLHtkZXRhaWw6ei5kZXRhaWwsYnViYmxlczohMCxjb21wb3NlZDohMH0pKX11cGRhdGVkKHope3N1cGVyLnVwZGF0ZWQoeiksei5oYXMoInNob3dUYWJzIikmJih0aGlzLnNob3dUYWJzP3RoaXMucmVtb3ZlQXR0cmlidXRlKCJub3RhYnMiKTp0aGlzLnNldEF0dHJpYnV0ZSgibm90YWJzIiwiIikpfWFzeW5jIGZpcnN0VXBkYXRlZCh6KXthd2FpdCBzdXBlci5maXJzdFVwZGF0ZWQoeiksdGhpcy5zaG93VGFic3x8dGhpcy5zZXRBdHRyaWJ1dGUoIm5vdGFicyIsIiIpO2xldCBNPXRoaXMuc2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yKCJkZWVzLWFwcHVpLXRhYnMiKTtNJiZhd2FpdCBNLnVwZGF0ZUNvbXBsZXRlfWNvbnN0cnVjdG9yKCl7c3VwZXIoLi4uYXJndW1lbnRzKSxEMih0aGlzLGspfXN0YXRpY3tEMihpLHIpfX07cmV0dXJuIE89aX0pKCl9KTt2YXIgc3IsUWUscWxyLGpscj1wKCgpPT57eGUoKTtLdCgpOyQ0KCk7RGxyKCk7SmUoKTtJNmUoKTthNmUoKTtvNmUoKTtQNmUoKTtONmUoKTtPNmUoKTtLM2UoKTtzcj1mdW5jdGlvbihlLHQscixpLGEsbil7ZnVuY3Rpb24gbyh5KXtpZih5IT09dm9pZCAwJiZ0eXBlb2YgeSE9ImZ1bmN0aW9uIil0aHJvdyBuZXcgVHlwZUVycm9yKCJGdW5jdGlvbiBleHBlY3RlZCIpO3JldHVybiB5fWZvcih2YXIgcz1pLmtpbmQsbD1zPT09ImdldHRlciI/ImdldCI6cz09PSJzZXR0ZXIiPyJzZXQiOiJ2YWx1ZSIsYz0hdCYmZT9pLnN0YXRpYz9lOmUucHJvdG90eXBlOm51bGwsdT10fHwoYz9PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGMsaS5uYW1lKTp7fSksZCxoPSExLGY9ci5sZW5ndGgtMTtmPj0wO2YtLSl7dmFyIHg9e307Zm9yKHZhciB2IGluIGkpeFt2XT12PT09ImFjY2VzcyI/e306aVt2XTtmb3IodmFyIHYgaW4gaS5hY2Nlc3MpeC5hY2Nlc3Nbdl09aS5hY2Nlc3Nbdl07eC5hZGRJbml0aWFsaXplcj1mdW5jdGlvbih5KXtpZihoKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBhZGQgaW5pdGlhbGl6ZXJzIGFmdGVyIGRlY29yYXRpb24gaGFzIGNvbXBsZXRlZCIpO24ucHVzaChvKHl8fG51bGwpKX07dmFyIGI9KDAscltmXSkocz09PSJhY2Nlc3NvciI/e2dldDp1LmdldCxzZXQ6dS5zZXR9OnVbbF0seCk7aWYocz09PSJhY2Nlc3NvciIpe2lmKGI9PT12b2lkIDApY29udGludWU7aWYoYj09PW51bGx8fHR5cGVvZiBiIT0ib2JqZWN0Iil0aHJvdyBuZXcgVHlwZUVycm9yKCJPYmplY3QgZXhwZWN0ZWQiKTsoZD1vKGIuZ2V0KSkmJih1LmdldD1kKSwoZD1vKGIuc2V0KSkmJih1LnNldD1kKSwoZD1vKGIuaW5pdCkpJiZhLnVuc2hpZnQoZCl9ZWxzZShkPW8oYikpJiYocz09PSJmaWVsZCI/YS51bnNoaWZ0KGQpOnVbbF09ZCl9YyYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGMsaS5uYW1lLHUpLGg9ITB9LFFlPWZ1bmN0aW9uKGUsdCxyKXtmb3IodmFyIGk9YXJndW1lbnRzLmxlbmd0aD4yLGE9MDthPHQubGVuZ3RoO2ErKylyPWk/dFthXS5jYWxsKGUscik6dFthXS5jYWxsKGUpO3JldHVybiBpP3I6dm9pZCAwfSxxbHI9KCgpPT57bGV0IGU9W3llKCJkZWVzLWFwcHVpIildLHQscj1bXSxpLGE9emUsbixvPVtdLHM9W10sbCxjPVtdLHU9W10sZCxoPVtdLGY9W10seCx2PVtdLGI9W10seSx3PVtdLGs9W10sTyx6PVtdLE09W10sRixEPVtdLE49W10sUixfPVtdLFM9W10sJCxUPVtdLEU9W10scSxCPVtdLEc9W10sZWUsUD1bXSxnZT1bXSx3ZSxJPVtdLG5lPVtdLGtlLFk9W10sQT1bXSxMLFU9W10sVj1bXSxYLGRlPVtdLHZlPVtdLExlLFc9W10sSD1bXSx0ZSxiZT1bXSx1ZT1bXSxDZSxoZT1bXSxpZT1bXSxTZSxJZT1bXSxaZT1bXSxLLFo9W10sSj1bXSxtZSxFZT1bXSxVZT1bXSxNdCxpdD1bXSxMdD1bXSxXdCxhZT1bXSxzZT1bXSxfZSx2dD1bXSxTdD1bXSxZcixkbj1bXSxVbz1bXSxXbyxNZT1bXSwkZT1bXSxCdCxGcj1bXSxacj1bXSxuMSxYcj1bXSxHbz1bXSxZbyxabz1bXSx3aD1bXSxNaCxUZT1bXSxwZT1bXSxCZSxGMT1bXSx4dD1bXSxRcixSYT1bXSxodD1bXSxZMSxCYT1bXSxYbz1bXSxraCxLYj1bXSxTaD1bXSxldixINWU9W10scTVlPVtdO3ZhciBqNWU9Y2xhc3MgZXh0ZW5kcyBhe3N0YXRpY3tpPXRoaXN9c3RhdGlje2xldCBRPXR5cGVvZiBTeW1ib2w9PSJmdW5jdGlvbiImJlN5bWJvbC5tZXRhZGF0YT9PYmplY3QuY3JlYXRlKGFbU3ltYm9sLm1ldGFkYXRhXT8/bnVsbCk6dm9pZCAwO249W2ooe3R5cGU6QXJyYXl9KV0sbD1baih7dHlwZTpTdHJpbmd9KV0sZD1baih7dHlwZTpTdHJpbmd9KV0seD1baih7dHlwZTpCb29sZWFufSldLHk9W2ooe3R5cGU6T2JqZWN0fSldLE89W2ooe3R5cGU6QXJyYXl9KV0sRj1baih7dHlwZTpCb29sZWFufSldLFI9W2ooe3R5cGU6U3RyaW5nfSldLCQ9W2ooe3R5cGU6U3RyaW5nfSldLHE9W2ooe3R5cGU6QXJyYXl9KV0sZWU9W2ooe3R5cGU6QXJyYXl9KV0sd2U9W2ooe3R5cGU6QXJyYXl9KV0sa2U9W2ooe3R5cGU6T2JqZWN0fSldLEw9W2ooe3R5cGU6U3RyaW5nfSldLFg9W2ooe3R5cGU6QXJyYXl9KV0sTGU9W2ooe3R5cGU6T2JqZWN0fSldLHRlPVtqKHt0eXBlOkJvb2xlYW59KV0sQ2U9W2ooe3R5cGU6Qm9vbGVhbn0pXSxTZT1baih7dHlwZTpCb29sZWFufSldLEs9W2ooe3R5cGU6Qm9vbGVhbn0pXSxtZT1baih7dHlwZTpCb29sZWFufSldLE10PVtqKHt0eXBlOkJvb2xlYW59KV0sV3Q9W2ooe3R5cGU6TnVtYmVyfSldLF9lPVtmZSgpXSxZcj1bZmUoKV0sV289W2ooe3R5cGU6QXJyYXl9KV0sQnQ9W2ooe3R5cGU6T2JqZWN0fSldLG4xPVtmZSgpXSxZbz1bZmUoKV0sTWg9W2ZlKCldLEJlPVtmZSgpXSxRcj1bZmUoKV0sWTE9W2ZlKCldLGtoPVtmZSgpXSxldj1bZmUoKV0sc3IodGhpcyxudWxsLG4se2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJhcHBiYXJNZW51SXRlbXMiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOnJlPT4iYXBwYmFyTWVudUl0ZW1zImluIHJlLGdldDpyZT0+cmUuYXBwYmFyTWVudUl0ZW1zLHNldDoocmUsQWUpPT57cmUuYXBwYmFyTWVudUl0ZW1zPUFlfX0sbWV0YWRhdGE6UX0sbyxzKSxzcih0aGlzLG51bGwsbCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImFwcGJhckJyZWFkY3J1bWJzIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpyZT0+ImFwcGJhckJyZWFkY3J1bWJzImluIHJlLGdldDpyZT0+cmUuYXBwYmFyQnJlYWRjcnVtYnMsc2V0OihyZSxBZSk9PntyZS5hcHBiYXJCcmVhZGNydW1icz1BZX19LG1ldGFkYXRhOlF9LGMsdSksc3IodGhpcyxudWxsLGQse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJhcHBiYXJCcmVhZGNydW1iU2VwYXJhdG9yIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpyZT0+ImFwcGJhckJyZWFkY3J1bWJTZXBhcmF0b3IiaW4gcmUsZ2V0OnJlPT5yZS5hcHBiYXJCcmVhZGNydW1iU2VwYXJhdG9yLHNldDoocmUsQWUpPT57cmUuYXBwYmFyQnJlYWRjcnVtYlNlcGFyYXRvcj1BZX19LG1ldGFkYXRhOlF9LGgsZiksc3IodGhpcyxudWxsLHgse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJhcHBiYXJTaG93V2luZG93Q29udHJvbHMiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOnJlPT4iYXBwYmFyU2hvd1dpbmRvd0NvbnRyb2xzImluIHJlLGdldDpyZT0+cmUuYXBwYmFyU2hvd1dpbmRvd0NvbnRyb2xzLHNldDoocmUsQWUpPT57cmUuYXBwYmFyU2hvd1dpbmRvd0NvbnRyb2xzPUFlfX0sbWV0YWRhdGE6UX0sdixiKSxzcih0aGlzLG51bGwseSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImFwcGJhclVzZXIiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOnJlPT4iYXBwYmFyVXNlciJpbiByZSxnZXQ6cmU9PnJlLmFwcGJhclVzZXIsc2V0OihyZSxBZSk9PntyZS5hcHBiYXJVc2VyPUFlfX0sbWV0YWRhdGE6UX0sdyxrKSxzcih0aGlzLG51bGwsTyx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImFwcGJhclByb2ZpbGVNZW51SXRlbXMiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOnJlPT4iYXBwYmFyUHJvZmlsZU1lbnVJdGVtcyJpbiByZSxnZXQ6cmU9PnJlLmFwcGJhclByb2ZpbGVNZW51SXRlbXMsc2V0OihyZSxBZSk9PntyZS5hcHBiYXJQcm9maWxlTWVudUl0ZW1zPUFlfX0sbWV0YWRhdGE6UX0seixNKSxzcih0aGlzLG51bGwsRix7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImFwcGJhclNob3dTZWFyY2giLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOnJlPT4iYXBwYmFyU2hvd1NlYXJjaCJpbiByZSxnZXQ6cmU9PnJlLmFwcGJhclNob3dTZWFyY2gsc2V0OihyZSxBZSk9PntyZS5hcHBiYXJTaG93U2VhcmNoPUFlfX0sbWV0YWRhdGE6UX0sRCxOKSxzcih0aGlzLG51bGwsUix7a2luZDoiYWNjZXNzb3IiLG5hbWU6Im1haW5tZW51TG9nb0ljb24iLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOnJlPT4ibWFpbm1lbnVMb2dvSWNvbiJpbiByZSxnZXQ6cmU9PnJlLm1haW5tZW51TG9nb0ljb24sc2V0OihyZSxBZSk9PntyZS5tYWlubWVudUxvZ29JY29uPUFlfX0sbWV0YWRhdGE6UX0sXyxTKSxzcih0aGlzLG51bGwsJCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6Im1haW5tZW51TG9nb1RleHQiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOnJlPT4ibWFpbm1lbnVMb2dvVGV4dCJpbiByZSxnZXQ6cmU9PnJlLm1haW5tZW51TG9nb1RleHQsc2V0OihyZSxBZSk9PntyZS5tYWlubWVudUxvZ29UZXh0PUFlfX0sbWV0YWRhdGE6UX0sVCxFKSxzcih0aGlzLG51bGwscSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6Im1haW5tZW51R3JvdXBzIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpyZT0+Im1haW5tZW51R3JvdXBzImluIHJlLGdldDpyZT0+cmUubWFpbm1lbnVHcm91cHMsc2V0OihyZSxBZSk9PntyZS5tYWlubWVudUdyb3Vwcz1BZX19LG1ldGFkYXRhOlF9LEIsRyksc3IodGhpcyxudWxsLGVlLHtraW5kOiJhY2Nlc3NvciIsbmFtZToibWFpbm1lbnVCb3R0b21UYWJzIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpyZT0+Im1haW5tZW51Qm90dG9tVGFicyJpbiByZSxnZXQ6cmU9PnJlLm1haW5tZW51Qm90dG9tVGFicyxzZXQ6KHJlLEFlKT0+e3JlLm1haW5tZW51Qm90dG9tVGFicz1BZX19LG1ldGFkYXRhOlF9LFAsZ2UpLHNyKHRoaXMsbnVsbCx3ZSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6Im1haW5tZW51VGFicyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6cmU9PiJtYWlubWVudVRhYnMiaW4gcmUsZ2V0OnJlPT5yZS5tYWlubWVudVRhYnMsc2V0OihyZSxBZSk9PntyZS5tYWlubWVudVRhYnM9QWV9fSxtZXRhZGF0YTpRfSxJLG5lKSxzcih0aGlzLG51bGwsa2Use2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJtYWlubWVudVNlbGVjdGVkVGFiIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpyZT0+Im1haW5tZW51U2VsZWN0ZWRUYWIiaW4gcmUsZ2V0OnJlPT5yZS5tYWlubWVudVNlbGVjdGVkVGFiLHNldDoocmUsQWUpPT57cmUubWFpbm1lbnVTZWxlY3RlZFRhYj1BZX19LG1ldGFkYXRhOlF9LFksQSksc3IodGhpcyxudWxsLEwse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJzZWNvbmRhcnltZW51SGVhZGluZyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6cmU9PiJzZWNvbmRhcnltZW51SGVhZGluZyJpbiByZSxnZXQ6cmU9PnJlLnNlY29uZGFyeW1lbnVIZWFkaW5nLHNldDoocmUsQWUpPT57cmUuc2Vjb25kYXJ5bWVudUhlYWRpbmc9QWV9fSxtZXRhZGF0YTpRfSxVLFYpLHNyKHRoaXMsbnVsbCxYLHtraW5kOiJhY2Nlc3NvciIsbmFtZToic2Vjb25kYXJ5bWVudUdyb3VwcyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6cmU9PiJzZWNvbmRhcnltZW51R3JvdXBzImluIHJlLGdldDpyZT0+cmUuc2Vjb25kYXJ5bWVudUdyb3VwcyxzZXQ6KHJlLEFlKT0+e3JlLnNlY29uZGFyeW1lbnVHcm91cHM9QWV9fSxtZXRhZGF0YTpRfSxkZSx2ZSksc3IodGhpcyxudWxsLExlLHtraW5kOiJhY2Nlc3NvciIsbmFtZToic2Vjb25kYXJ5bWVudVNlbGVjdGVkSXRlbSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6cmU9PiJzZWNvbmRhcnltZW51U2VsZWN0ZWRJdGVtImluIHJlLGdldDpyZT0+cmUuc2Vjb25kYXJ5bWVudVNlbGVjdGVkSXRlbSxzZXQ6KHJlLEFlKT0+e3JlLnNlY29uZGFyeW1lbnVTZWxlY3RlZEl0ZW09QWV9fSxtZXRhZGF0YTpRfSxXLEgpLHNyKHRoaXMsbnVsbCx0ZSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6Im1haW5tZW51Q29sbGFwc2VkIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpyZT0+Im1haW5tZW51Q29sbGFwc2VkImluIHJlLGdldDpyZT0+cmUubWFpbm1lbnVDb2xsYXBzZWQsc2V0OihyZSxBZSk9PntyZS5tYWlubWVudUNvbGxhcHNlZD1BZX19LG1ldGFkYXRhOlF9LGJlLHVlKSxzcih0aGlzLG51bGwsQ2Use2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJzZWNvbmRhcnltZW51Q29sbGFwc2VkIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpyZT0+InNlY29uZGFyeW1lbnVDb2xsYXBzZWQiaW4gcmUsZ2V0OnJlPT5yZS5zZWNvbmRhcnltZW51Q29sbGFwc2VkLHNldDoocmUsQWUpPT57cmUuc2Vjb25kYXJ5bWVudUNvbGxhcHNlZD1BZX19LG1ldGFkYXRhOlF9LGhlLGllKSxzcih0aGlzLG51bGwsU2Use2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJtYWlubWVudVZpc2libGUiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOnJlPT4ibWFpbm1lbnVWaXNpYmxlImluIHJlLGdldDpyZT0+cmUubWFpbm1lbnVWaXNpYmxlLHNldDoocmUsQWUpPT57cmUubWFpbm1lbnVWaXNpYmxlPUFlfX0sbWV0YWRhdGE6UX0sSWUsWmUpLHNyKHRoaXMsbnVsbCxLLHtraW5kOiJhY2Nlc3NvciIsbmFtZToic2Vjb25kYXJ5bWVudVZpc2libGUiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOnJlPT4ic2Vjb25kYXJ5bWVudVZpc2libGUiaW4gcmUsZ2V0OnJlPT5yZS5zZWNvbmRhcnltZW51VmlzaWJsZSxzZXQ6KHJlLEFlKT0+e3JlLnNlY29uZGFyeW1lbnVWaXNpYmxlPUFlfX0sbWV0YWRhdGE6UX0sWixKKSxzcih0aGlzLG51bGwsbWUse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJtYWluY29udGVudFRhYnNWaXNpYmxlIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpyZT0+Im1haW5jb250ZW50VGFic1Zpc2libGUiaW4gcmUsZ2V0OnJlPT5yZS5tYWluY29udGVudFRhYnNWaXNpYmxlLHNldDoocmUsQWUpPT57cmUubWFpbmNvbnRlbnRUYWJzVmlzaWJsZT1BZX19LG1ldGFkYXRhOlF9LEVlLFVlKSxzcih0aGlzLG51bGwsTXQse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJjb250ZW50VGFic0F1dG9IaWRlIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpyZT0+ImNvbnRlbnRUYWJzQXV0b0hpZGUiaW4gcmUsZ2V0OnJlPT5yZS5jb250ZW50VGFic0F1dG9IaWRlLHNldDoocmUsQWUpPT57cmUuY29udGVudFRhYnNBdXRvSGlkZT1BZX19LG1ldGFkYXRhOlF9LGl0LEx0KSxzcih0aGlzLG51bGwsV3Qse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJjb250ZW50VGFic0F1dG9IaWRlVGhyZXNob2xkIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpyZT0+ImNvbnRlbnRUYWJzQXV0b0hpZGVUaHJlc2hvbGQiaW4gcmUsZ2V0OnJlPT5yZS5jb250ZW50VGFic0F1dG9IaWRlVGhyZXNob2xkLHNldDoocmUsQWUpPT57cmUuY29udGVudFRhYnNBdXRvSGlkZVRocmVzaG9sZD1BZX19LG1ldGFkYXRhOlF9LGFlLHNlKSxzcih0aGlzLG51bGwsX2Use2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJhY3Rpdml0eUxvZ1Zpc2libGUiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOnJlPT4iYWN0aXZpdHlMb2dWaXNpYmxlImluIHJlLGdldDpyZT0+cmUuYWN0aXZpdHlMb2dWaXNpYmxlLHNldDoocmUsQWUpPT57cmUuYWN0aXZpdHlMb2dWaXNpYmxlPUFlfX0sbWV0YWRhdGE6UX0sdnQsU3QpLHNyKHRoaXMsbnVsbCxZcix7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImFjdGl2aXR5TG9nQ291bnQiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOnJlPT4iYWN0aXZpdHlMb2dDb3VudCJpbiByZSxnZXQ6cmU9PnJlLmFjdGl2aXR5TG9nQ291bnQsc2V0OihyZSxBZSk9PntyZS5hY3Rpdml0eUxvZ0NvdW50PUFlfX0sbWV0YWRhdGE6UX0sZG4sVW8pLHNyKHRoaXMsbnVsbCxXbyx7a2luZDoiYWNjZXNzb3IiLG5hbWU6Im1haW5jb250ZW50VGFicyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6cmU9PiJtYWluY29udGVudFRhYnMiaW4gcmUsZ2V0OnJlPT5yZS5tYWluY29udGVudFRhYnMsc2V0OihyZSxBZSk9PntyZS5tYWluY29udGVudFRhYnM9QWV9fSxtZXRhZGF0YTpRfSxNZSwkZSksc3IodGhpcyxudWxsLEJ0LHtraW5kOiJhY2Nlc3NvciIsbmFtZToibWFpbmNvbnRlbnRTZWxlY3RlZFRhYiIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6cmU9PiJtYWluY29udGVudFNlbGVjdGVkVGFiImluIHJlLGdldDpyZT0+cmUubWFpbmNvbnRlbnRTZWxlY3RlZFRhYixzZXQ6KHJlLEFlKT0+e3JlLm1haW5jb250ZW50U2VsZWN0ZWRUYWI9QWV9fSxtZXRhZGF0YTpRfSxGcixaciksc3IodGhpcyxudWxsLG4xLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiYXBwYmFyIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpyZT0+ImFwcGJhciJpbiByZSxnZXQ6cmU9PnJlLmFwcGJhcixzZXQ6KHJlLEFlKT0+e3JlLmFwcGJhcj1BZX19LG1ldGFkYXRhOlF9LFhyLEdvKSxzcih0aGlzLG51bGwsWW8se2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJtYWlubWVudSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6cmU9PiJtYWlubWVudSJpbiByZSxnZXQ6cmU9PnJlLm1haW5tZW51LHNldDoocmUsQWUpPT57cmUubWFpbm1lbnU9QWV9fSxtZXRhZGF0YTpRfSxabyx3aCksc3IodGhpcyxudWxsLE1oLHtraW5kOiJhY2Nlc3NvciIsbmFtZToic2Vjb25kYXJ5bWVudSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6cmU9PiJzZWNvbmRhcnltZW51ImluIHJlLGdldDpyZT0+cmUuc2Vjb25kYXJ5bWVudSxzZXQ6KHJlLEFlKT0+e3JlLnNlY29uZGFyeW1lbnU9QWV9fSxtZXRhZGF0YTpRfSxUZSxwZSksc3IodGhpcyxudWxsLEJlLHtraW5kOiJhY2Nlc3NvciIsbmFtZToibWFpbmNvbnRlbnQiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOnJlPT4ibWFpbmNvbnRlbnQiaW4gcmUsZ2V0OnJlPT5yZS5tYWluY29udGVudCxzZXQ6KHJlLEFlKT0+e3JlLm1haW5jb250ZW50PUFlfX0sbWV0YWRhdGE6UX0sRjEseHQpLHNyKHRoaXMsbnVsbCxRcix7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImFjdGl2aXR5bG9nRWxlbWVudCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6cmU9PiJhY3Rpdml0eWxvZ0VsZW1lbnQiaW4gcmUsZ2V0OnJlPT5yZS5hY3Rpdml0eWxvZ0VsZW1lbnQsc2V0OihyZSxBZSk9PntyZS5hY3Rpdml0eWxvZ0VsZW1lbnQ9QWV9fSxtZXRhZGF0YTpRfSxSYSxodCksc3IodGhpcyxudWxsLFkxLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiYm90dG9tYmFyRWxlbWVudCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6cmU9PiJib3R0b21iYXJFbGVtZW50ImluIHJlLGdldDpyZT0+cmUuYm90dG9tYmFyRWxlbWVudCxzZXQ6KHJlLEFlKT0+e3JlLmJvdHRvbWJhckVsZW1lbnQ9QWV9fSxtZXRhZGF0YTpRfSxCYSxYbyksc3IodGhpcyxudWxsLGtoLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiYm90dG9tYmFyVmlzaWJsZSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6cmU9PiJib3R0b21iYXJWaXNpYmxlImluIHJlLGdldDpyZT0+cmUuYm90dG9tYmFyVmlzaWJsZSxzZXQ6KHJlLEFlKT0+e3JlLmJvdHRvbWJhclZpc2libGU9QWV9fSxtZXRhZGF0YTpRfSxLYixTaCksc3IodGhpcyxudWxsLGV2LHtraW5kOiJhY2Nlc3NvciIsbmFtZToiY3VycmVudFZpZXciLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOnJlPT4iY3VycmVudFZpZXciaW4gcmUsZ2V0OnJlPT5yZS5jdXJyZW50VmlldyxzZXQ6KHJlLEFlKT0+e3JlLmN1cnJlbnRWaWV3PUFlfX0sbWV0YWRhdGE6UX0sSDVlLHE1ZSksc3IobnVsbCx0PXt2YWx1ZTppfSxlLHtraW5kOiJjbGFzcyIsbmFtZTppLm5hbWUsbWV0YWRhdGE6UX0sbnVsbCxyKSxqNWU9aT10LnZhbHVlLFEmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShpLFN5bWJvbC5tZXRhZGF0YSx7ZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITAsdmFsdWU6UX0pfXN0YXRpYyBkZW1vPUFscjtzdGF0aWMgZGVtb0dyb3Vwcz1bIkFwcCBVSSJdO3ZpZXdMaWZlY3ljbGUkPW5ldyBqdC5zbWFydHJ4LnJ4anMuU3ViamVjdDt2aWV3Q2hhbmdlZCQ9bmV3IGp0LnNtYXJ0cngucnhqcy5TdWJqZWN0OyNlPVFlKHRoaXMsbyxbXSk7Z2V0IGFwcGJhck1lbnVJdGVtcygpe3JldHVybiB0aGlzLiNlfXNldCBhcHBiYXJNZW51SXRlbXMoUSl7dGhpcy4jZT1RfSN0PShRZSh0aGlzLHMpLFFlKHRoaXMsYywiIikpO2dldCBhcHBiYXJCcmVhZGNydW1icygpe3JldHVybiB0aGlzLiN0fXNldCBhcHBiYXJCcmVhZGNydW1icyhRKXt0aGlzLiN0PVF9I3I9KFFlKHRoaXMsdSksUWUodGhpcyxoLCIgPiAiKSk7Z2V0IGFwcGJhckJyZWFkY3J1bWJTZXBhcmF0b3IoKXtyZXR1cm4gdGhpcy4jcn1zZXQgYXBwYmFyQnJlYWRjcnVtYlNlcGFyYXRvcihRKXt0aGlzLiNyPVF9I2k9KFFlKHRoaXMsZiksUWUodGhpcyx2LCEwKSk7Z2V0IGFwcGJhclNob3dXaW5kb3dDb250cm9scygpe3JldHVybiB0aGlzLiNpfXNldCBhcHBiYXJTaG93V2luZG93Q29udHJvbHMoUSl7dGhpcy4jaT1RfSNhPShRZSh0aGlzLGIpLFFlKHRoaXMsdyx2b2lkIDApKTtnZXQgYXBwYmFyVXNlcigpe3JldHVybiB0aGlzLiNhfXNldCBhcHBiYXJVc2VyKFEpe3RoaXMuI2E9UX0jbj0oUWUodGhpcyxrKSxRZSh0aGlzLHosW10pKTtnZXQgYXBwYmFyUHJvZmlsZU1lbnVJdGVtcygpe3JldHVybiB0aGlzLiNufXNldCBhcHBiYXJQcm9maWxlTWVudUl0ZW1zKFEpe3RoaXMuI249UX0jbz0oUWUodGhpcyxNKSxRZSh0aGlzLEQsITEpKTtnZXQgYXBwYmFyU2hvd1NlYXJjaCgpe3JldHVybiB0aGlzLiNvfXNldCBhcHBiYXJTaG93U2VhcmNoKFEpe3RoaXMuI289UX0jcz0oUWUodGhpcyxOKSxRZSh0aGlzLF8sIiIpKTtnZXQgbWFpbm1lbnVMb2dvSWNvbigpe3JldHVybiB0aGlzLiNzfXNldCBtYWlubWVudUxvZ29JY29uKFEpe3RoaXMuI3M9UX0jbD0oUWUodGhpcyxTKSxRZSh0aGlzLFQsIiIpKTtnZXQgbWFpbm1lbnVMb2dvVGV4dCgpe3JldHVybiB0aGlzLiNsfXNldCBtYWlubWVudUxvZ29UZXh0KFEpe3RoaXMuI2w9UX0jYz0oUWUodGhpcyxFKSxRZSh0aGlzLEIsW10pKTtnZXQgbWFpbm1lbnVHcm91cHMoKXtyZXR1cm4gdGhpcy4jY31zZXQgbWFpbm1lbnVHcm91cHMoUSl7dGhpcy4jYz1RfSNkPShRZSh0aGlzLEcpLFFlKHRoaXMsUCxbXSkpO2dldCBtYWlubWVudUJvdHRvbVRhYnMoKXtyZXR1cm4gdGhpcy4jZH1zZXQgbWFpbm1lbnVCb3R0b21UYWJzKFEpe3RoaXMuI2Q9UX0jdT0oUWUodGhpcyxnZSksUWUodGhpcyxJLFtdKSk7Z2V0IG1haW5tZW51VGFicygpe3JldHVybiB0aGlzLiN1fXNldCBtYWlubWVudVRhYnMoUSl7dGhpcy4jdT1RfSNwPShRZSh0aGlzLG5lKSxRZSh0aGlzLFksdm9pZCAwKSk7Z2V0IG1haW5tZW51U2VsZWN0ZWRUYWIoKXtyZXR1cm4gdGhpcy4jcH1zZXQgbWFpbm1lbnVTZWxlY3RlZFRhYihRKXt0aGlzLiNwPVF9I2g9KFFlKHRoaXMsQSksUWUodGhpcyxVLCIiKSk7Z2V0IHNlY29uZGFyeW1lbnVIZWFkaW5nKCl7cmV0dXJuIHRoaXMuI2h9c2V0IHNlY29uZGFyeW1lbnVIZWFkaW5nKFEpe3RoaXMuI2g9UX0jZj0oUWUodGhpcyxWKSxRZSh0aGlzLGRlLFtdKSk7Z2V0IHNlY29uZGFyeW1lbnVHcm91cHMoKXtyZXR1cm4gdGhpcy4jZn1zZXQgc2Vjb25kYXJ5bWVudUdyb3VwcyhRKXt0aGlzLiNmPVF9I209KFFlKHRoaXMsdmUpLFFlKHRoaXMsVyx2b2lkIDApKTtnZXQgc2Vjb25kYXJ5bWVudVNlbGVjdGVkSXRlbSgpe3JldHVybiB0aGlzLiNtfXNldCBzZWNvbmRhcnltZW51U2VsZWN0ZWRJdGVtKFEpe3RoaXMuI209UX0jZz0oUWUodGhpcyxIKSxRZSh0aGlzLGJlLCExKSk7Z2V0IG1haW5tZW51Q29sbGFwc2VkKCl7cmV0dXJuIHRoaXMuI2d9c2V0IG1haW5tZW51Q29sbGFwc2VkKFEpe3RoaXMuI2c9UX0jYj0oUWUodGhpcyx1ZSksUWUodGhpcyxoZSwhMSkpO2dldCBzZWNvbmRhcnltZW51Q29sbGFwc2VkKCl7cmV0dXJuIHRoaXMuI2J9c2V0IHNlY29uZGFyeW1lbnVDb2xsYXBzZWQoUSl7dGhpcy4jYj1RfSN2PShRZSh0aGlzLGllKSxRZSh0aGlzLEllLCEwKSk7Z2V0IG1haW5tZW51VmlzaWJsZSgpe3JldHVybiB0aGlzLiN2fXNldCBtYWlubWVudVZpc2libGUoUSl7dGhpcy4jdj1RfSN4PShRZSh0aGlzLFplKSxRZSh0aGlzLFosITApKTtnZXQgc2Vjb25kYXJ5bWVudVZpc2libGUoKXtyZXR1cm4gdGhpcy4jeH1zZXQgc2Vjb25kYXJ5bWVudVZpc2libGUoUSl7dGhpcy4jeD1RfSN5PShRZSh0aGlzLEopLFFlKHRoaXMsRWUsITApKTtnZXQgbWFpbmNvbnRlbnRUYWJzVmlzaWJsZSgpe3JldHVybiB0aGlzLiN5fXNldCBtYWluY29udGVudFRhYnNWaXNpYmxlKFEpe3RoaXMuI3k9UX0jdz0oUWUodGhpcyxVZSksUWUodGhpcyxpdCwhMSkpO2dldCBjb250ZW50VGFic0F1dG9IaWRlKCl7cmV0dXJuIHRoaXMuI3d9c2V0IGNvbnRlbnRUYWJzQXV0b0hpZGUoUSl7dGhpcy4jdz1RfSNNPShRZSh0aGlzLEx0KSxRZSh0aGlzLGFlLDApKTtnZXQgY29udGVudFRhYnNBdXRvSGlkZVRocmVzaG9sZCgpe3JldHVybiB0aGlzLiNNfXNldCBjb250ZW50VGFic0F1dG9IaWRlVGhyZXNob2xkKFEpe3RoaXMuI009UX0jaz0oUWUodGhpcyxzZSksUWUodGhpcyx2dCwhMSkpO2dldCBhY3Rpdml0eUxvZ1Zpc2libGUoKXtyZXR1cm4gdGhpcy4ja31zZXQgYWN0aXZpdHlMb2dWaXNpYmxlKFEpe3RoaXMuI2s9UX0jUz0oUWUodGhpcyxTdCksUWUodGhpcyxkbiwwKSk7Z2V0IGFjdGl2aXR5TG9nQ291bnQoKXtyZXR1cm4gdGhpcy4jU31zZXQgYWN0aXZpdHlMb2dDb3VudChRKXt0aGlzLiNTPVF9I3o9KFFlKHRoaXMsVW8pLFFlKHRoaXMsTWUsW10pKTtnZXQgbWFpbmNvbnRlbnRUYWJzKCl7cmV0dXJuIHRoaXMuI3p9c2V0IG1haW5jb250ZW50VGFicyhRKXt0aGlzLiN6PVF9I0M9KFFlKHRoaXMsJGUpLFFlKHRoaXMsRnIsdm9pZCAwKSk7Z2V0IG1haW5jb250ZW50U2VsZWN0ZWRUYWIoKXtyZXR1cm4gdGhpcy4jQ31zZXQgbWFpbmNvbnRlbnRTZWxlY3RlZFRhYihRKXt0aGlzLiNDPVF9I1Q9KFFlKHRoaXMsWnIpLFFlKHRoaXMsWHIsdm9pZCAwKSk7Z2V0IGFwcGJhcigpe3JldHVybiB0aGlzLiNUfXNldCBhcHBiYXIoUSl7dGhpcy4jVD1RfSNfPShRZSh0aGlzLEdvKSxRZSh0aGlzLFpvLHZvaWQgMCkpO2dldCBtYWlubWVudSgpe3JldHVybiB0aGlzLiNffXNldCBtYWlubWVudShRKXt0aGlzLiNfPVF9I0w9KFFlKHRoaXMsd2gpLFFlKHRoaXMsVGUsdm9pZCAwKSk7Z2V0IHNlY29uZGFyeW1lbnUoKXtyZXR1cm4gdGhpcy4jTH1zZXQgc2Vjb25kYXJ5bWVudShRKXt0aGlzLiNMPVF9I0E9KFFlKHRoaXMscGUpLFFlKHRoaXMsRjEsdm9pZCAwKSk7Z2V0IG1haW5jb250ZW50KCl7cmV0dXJuIHRoaXMuI0F9c2V0IG1haW5jb250ZW50KFEpe3RoaXMuI0E9UX0jRD0oUWUodGhpcyx4dCksUWUodGhpcyxSYSx2b2lkIDApKTtnZXQgYWN0aXZpdHlsb2dFbGVtZW50KCl7cmV0dXJuIHRoaXMuI0R9c2V0IGFjdGl2aXR5bG9nRWxlbWVudChRKXt0aGlzLiNEPVF9I0U9KFFlKHRoaXMsaHQpLFFlKHRoaXMsQmEsdm9pZCAwKSk7Z2V0IGJvdHRvbWJhckVsZW1lbnQoKXtyZXR1cm4gdGhpcy4jRX1zZXQgYm90dG9tYmFyRWxlbWVudChRKXt0aGlzLiNFPVF9IyQ9KFFlKHRoaXMsWG8pLFFlKHRoaXMsS2IsITApKTtnZXQgYm90dG9tYmFyVmlzaWJsZSgpe3JldHVybiB0aGlzLiMkfXNldCBib3R0b21iYXJWaXNpYmxlKFEpe3RoaXMuIyQ9UX0jST0oUWUodGhpcyxTaCksUWUodGhpcyxINWUsdm9pZCAwKSk7Z2V0IGN1cnJlbnRWaWV3KCl7cmV0dXJuIHRoaXMuI0l9c2V0IGN1cnJlbnRWaWV3KFEpe3RoaXMuI0k9UX12aWV3UmVnaXN0cnk9KFFlKHRoaXMscTVlKSxuZXcgZmIpO3JvdXRlckNsZWFudXA9bnVsbDtzZWFyY2hDYWxsYmFjaz1udWxsO3N0YXRpYyBzdHlsZXM9W0RlLG0uZGVmYXVsdFN0eWxlcyxvZWAKICAgICAgLyogVE9ETzogTWlncmF0ZSBoYXJkY29kZWQgdmFsdWVzIHRvIC0tZGVlcy0qIENTUyB2YXJpYWJsZXMgKi8KICAgICAgOmhvc3QgewogICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgICBoZWlnaHQ6IDEwMCU7CiAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgICAgYmFja2dyb3VuZDogJHttLmJkVGhlbWUoIiNmMGYwZjAiLCIjMWExYTFhIil9OwogICAgICB9CiAgICAgIC5tYWluZ3JpZCB7CiAgICAgICAgcG9zaXRpb246IGFic29sdXRlOwogICAgICAgIHRvcDogNDBweDsKICAgICAgICBoZWlnaHQ6IGNhbGMoMTAwJSAtIDQwcHggLSAyNHB4KTsKICAgICAgICB3aWR0aDogMTAwJTsKICAgICAgICBkaXNwbGF5OiBncmlkOwogICAgICAgIC8qIGdyaWQtdGVtcGxhdGUtY29sdW1ucyBzZXQgZHluYW1pY2FsbHkgaW4gdGVtcGxhdGUgKi8KICAgICAgICBncmlkLXRlbXBsYXRlLXJvd3M6IDFmcjsKICAgICAgICB0cmFuc2l0aW9uOiBncmlkLXRlbXBsYXRlLWNvbHVtbnMgMC4zcyBlYXNlLCBoZWlnaHQgMC4zcyBlYXNlOwogICAgICAgIG92ZXJmbG93OiBoaWRkZW47CiAgICAgIH0KCiAgICAgIDpob3N0KFtib3R0b21iYXItaGlkZGVuXSkgLm1haW5ncmlkIHsKICAgICAgICBoZWlnaHQ6IGNhbGMoMTAwJSAtIDQwcHgpOwogICAgICB9CgogICAgICBkZWVzLWFwcHVpLWJvdHRvbWJhciB7CiAgICAgICAgcG9zaXRpb246IGFic29sdXRlOwogICAgICAgIGJvdHRvbTogMDsKICAgICAgICBsZWZ0OiAwOwogICAgICAgIHJpZ2h0OiAwOwogICAgICAgIHotaW5kZXg6IDQ7CiAgICAgIH0KCiAgICAgIC8qIFotaW5kZXggbGF5ZXJpbmcgZm9yIHByb3BlciBzdGFja2luZyAqLwogICAgICAubWFpbmdyaWQgPiBkZWVzLWFwcHVpLW1haW5tZW51IHsKICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgICAgei1pbmRleDogMzsKICAgICAgfQoKICAgICAgLm1haW5ncmlkID4gZGVlcy1hcHB1aS1zZWNvbmRhcnltZW51IHsKICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgICAgei1pbmRleDogMjsKICAgICAgfQoKICAgICAgLm1haW5ncmlkID4gZGVlcy1hcHB1aS1tYWluY29udGVudCB7CiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICAgIHotaW5kZXg6IDE7CiAgICAgICAgbWluLWhlaWdodDogMDsKICAgICAgfQoKICAgICAgLm1haW5ncmlkID4gZGVlcy1hcHB1aS1hY3Rpdml0eWxvZyB7CiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICAgIHotaW5kZXg6IDE7CiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgICAgICB0cmFuc2l0aW9uOiBvcGFjaXR5IDAuM3MgZWFzZSwgdHJhbnNmb3JtIDAuM3MgZWFzZTsKICAgICAgfQoKICAgICAgLm1haW5ncmlkID4gZGVlcy1hcHB1aS1hY3Rpdml0eWxvZy5oaWRkZW4gewogICAgICAgIG9wYWNpdHk6IDA7CiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDIwcHgpOwogICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lOwogICAgICB9CgogICAgICAubWFpbmdyaWQgPiBkZWVzLWFwcHVpLWFjdGl2aXR5bG9nLnZpc2libGUgewogICAgICAgIG9wYWNpdHk6IDE7CiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDApOwogICAgICB9CgogICAgICAvKiBWaWV3IGNvbnRhaW5lciBmb3IgZHluYW1pY2FsbHkgbG9hZGVkIHZpZXdzICovCiAgICAgIC52aWV3LWNvbnRhaW5lciB7CiAgICAgICAgZGlzcGxheTogY29udGVudHM7CiAgICAgIH0KCiAgICAgIC52aWV3LWNvbnRhaW5lcjplbXB0eSB7CiAgICAgICAgZGlzcGxheTogbm9uZTsKICAgICAgfQogICAgYF07cmVuZGVyKCl7cmV0dXJuIENgCiAgICAgIDxkZWVzLWFwcHVpLWFwcGJhcgogICAgICAgIC5tZW51SXRlbXM9JHt0aGlzLmFwcGJhck1lbnVJdGVtc30KICAgICAgICAuYnJlYWRjcnVtYnM9JHt0aGlzLmFwcGJhckJyZWFkY3J1bWJzfQogICAgICAgIC5icmVhZGNydW1iU2VwYXJhdG9yPSR7dGhpcy5hcHBiYXJCcmVhZGNydW1iU2VwYXJhdG9yfQogICAgICAgIC5zaG93V2luZG93Q29udHJvbHM9JHt0aGlzLmFwcGJhclNob3dXaW5kb3dDb250cm9sc30KICAgICAgICAudXNlcj0ke3RoaXMuYXBwYmFyVXNlcn0KICAgICAgICAucHJvZmlsZU1lbnVJdGVtcz0ke3RoaXMuYXBwYmFyUHJvZmlsZU1lbnVJdGVtc30KICAgICAgICAuc2hvd1NlYXJjaD0ke3RoaXMuYXBwYmFyU2hvd1NlYXJjaH0KICAgICAgICAuc2hvd0FjdGl2aXR5TG9nVG9nZ2xlPSR7ITB9CiAgICAgICAgLmFjdGl2aXR5TG9nQ291bnQ9JHt0aGlzLmFjdGl2aXR5TG9nQ291bnR9CiAgICAgICAgLmFjdGl2aXR5TG9nQWN0aXZlPSR7dGhpcy5hY3Rpdml0eUxvZ1Zpc2libGV9CiAgICAgICAgQG1lbnUtc2VsZWN0PSR7UT0+dGhpcy5oYW5kbGVBcHBiYXJNZW51U2VsZWN0KFEpfQogICAgICAgIEBicmVhZGNydW1iLW5hdmlnYXRlPSR7UT0+dGhpcy5oYW5kbGVBcHBiYXJCcmVhZGNydW1iTmF2aWdhdGUoUSl9CiAgICAgICAgQHNlYXJjaC1jbGljaz0keygpPT50aGlzLmhhbmRsZUFwcGJhclNlYXJjaENsaWNrKCl9CiAgICAgICAgQHNlYXJjaC1xdWVyeT0ke1E9PnRoaXMuaGFuZGxlQXBwYmFyU2VhcmNoUXVlcnkoUSl9CiAgICAgICAgQHVzZXItbWVudS1vcGVuPSR7KCk9PnRoaXMuaGFuZGxlQXBwYmFyVXNlck1lbnVPcGVuKCl9CiAgICAgICAgQHByb2ZpbGUtbWVudS1zZWxlY3Q9JHtRPT50aGlzLmhhbmRsZUFwcGJhclByb2ZpbGVNZW51U2VsZWN0KFEpfQogICAgICAgIEBhY3Rpdml0eS10b2dnbGU9JHsoKT0+dGhpcy50b2dnbGVBY3Rpdml0eUxvZygpfQogICAgICA+PC9kZWVzLWFwcHVpLWFwcGJhcj4KICAgICAgPGRpdiBjbGFzcz0ibWFpbmdyaWQiIHN0eWxlPSJncmlkLXRlbXBsYXRlLWNvbHVtbnM6IGF1dG8gYXV0byAxZnIgJHt0aGlzLmFjdGl2aXR5TG9nVmlzaWJsZT8iMjgwcHgiOiIwcHgifTsiPgogICAgICAgICR7dGhpcy5tYWlubWVudVZpc2libGU/Q2AKICAgICAgICAgIDxkZWVzLWFwcHVpLW1haW5tZW51CiAgICAgICAgICAgIC5sb2dvSWNvbj0ke3RoaXMubWFpbm1lbnVMb2dvSWNvbn0KICAgICAgICAgICAgLmxvZ29UZXh0PSR7dGhpcy5tYWlubWVudUxvZ29UZXh0fQogICAgICAgICAgICAubWVudUdyb3Vwcz0ke3RoaXMubWFpbm1lbnVHcm91cHN9CiAgICAgICAgICAgIC5ib3R0b21UYWJzPSR7dGhpcy5tYWlubWVudUJvdHRvbVRhYnN9CiAgICAgICAgICAgIC50YWJzPSR7dGhpcy5tYWlubWVudVRhYnN9CiAgICAgICAgICAgIC5zZWxlY3RlZFRhYj0ke3RoaXMubWFpbm1lbnVTZWxlY3RlZFRhYn0KICAgICAgICAgICAgLmNvbGxhcHNlZD0ke3RoaXMubWFpbm1lbnVDb2xsYXBzZWR9CiAgICAgICAgICAgIEB0YWItc2VsZWN0PSR7UT0+dGhpcy5oYW5kbGVNYWlubWVudVRhYlNlbGVjdChRKX0KICAgICAgICAgICAgQGNvbGxhcHNlLWNoYW5nZT0ke1E9PnRoaXMuaGFuZGxlTWFpbm1lbnVDb2xsYXBzZUNoYW5nZShRKX0KICAgICAgICAgID48L2RlZXMtYXBwdWktbWFpbm1lbnU+CiAgICAgICAgYDoiIn0KICAgICAgICAke3RoaXMuc2Vjb25kYXJ5bWVudVZpc2libGU/Q2AKICAgICAgICAgIDxkZWVzLWFwcHVpLXNlY29uZGFyeW1lbnUKICAgICAgICAgICAgLmhlYWRpbmc9JHt0aGlzLnNlY29uZGFyeW1lbnVIZWFkaW5nfQogICAgICAgICAgICAuZ3JvdXBzPSR7dGhpcy5zZWNvbmRhcnltZW51R3JvdXBzfQogICAgICAgICAgICAuc2VsZWN0ZWRJdGVtPSR7dGhpcy5zZWNvbmRhcnltZW51U2VsZWN0ZWRJdGVtfQogICAgICAgICAgICAuY29sbGFwc2VkPSR7dGhpcy5zZWNvbmRhcnltZW51Q29sbGFwc2VkfQogICAgICAgICAgICBAaXRlbS1zZWxlY3Q9JHtRPT50aGlzLmhhbmRsZVNlY29uZGFyeW1lbnVJdGVtU2VsZWN0KFEpfQogICAgICAgICAgICBAY29sbGFwc2UtY2hhbmdlPSR7UT0+dGhpcy5oYW5kbGVTZWNvbmRhcnltZW51Q29sbGFwc2VDaGFuZ2UoUSl9CiAgICAgICAgICA+PC9kZWVzLWFwcHVpLXNlY29uZGFyeW1lbnU+CiAgICAgICAgYDoiIn0KICAgICAgICA8ZGVlcy1hcHB1aS1tYWluY29udGVudAogICAgICAgICAgLnRhYnM9JHt0aGlzLm1haW5jb250ZW50VGFic30KICAgICAgICAgIC5zZWxlY3RlZFRhYj0ke3RoaXMubWFpbmNvbnRlbnRTZWxlY3RlZFRhYn0KICAgICAgICAgIC5zaG93VGFicz0ke3RoaXMubWFpbmNvbnRlbnRUYWJzVmlzaWJsZX0KICAgICAgICAgIC50YWJzQXV0b0hpZGU9JHt0aGlzLmNvbnRlbnRUYWJzQXV0b0hpZGV9CiAgICAgICAgICAudGFic0F1dG9IaWRlVGhyZXNob2xkPSR7dGhpcy5jb250ZW50VGFic0F1dG9IaWRlVGhyZXNob2xkfQogICAgICAgICAgQHRhYi1zZWxlY3Q9JHtRPT50aGlzLmhhbmRsZUNvbnRlbnRUYWJTZWxlY3QoUSl9CiAgICAgICAgICBAdGFiLWNsb3NlPSR7UT0+dGhpcy5oYW5kbGVDb250ZW50VGFiQ2xvc2UoUSl9CiAgICAgICAgPgogICAgICAgICAgPGRpdiBjbGFzcz0idmlldy1jb250YWluZXIiPjwvZGl2PgogICAgICAgICAgPHNsb3QgbmFtZT0ibWFpbmNvbnRlbnQiPjwvc2xvdD4KICAgICAgICA8L2RlZXMtYXBwdWktbWFpbmNvbnRlbnQ+CiAgICAgICAgPGRlZXMtYXBwdWktYWN0aXZpdHlsb2cKICAgICAgICAgIGNsYXNzPSIke3RoaXMuYWN0aXZpdHlMb2dWaXNpYmxlPyJ2aXNpYmxlIjoiaGlkZGVuIn0iCiAgICAgICAgPjwvZGVlcy1hcHB1aS1hY3Rpdml0eWxvZz4KICAgICAgPC9kaXY+CiAgICAgICR7dGhpcy5ib3R0b21iYXJWaXNpYmxlP0NgCiAgICAgICAgPGRlZXMtYXBwdWktYm90dG9tYmFyPjwvZGVlcy1hcHB1aS1ib3R0b21iYXI+CiAgICAgIGA6IiJ9CiAgICBgfWFzeW5jIGZpcnN0VXBkYXRlZCgpe3RoaXMuYXBwYmFyPXRoaXMuc2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yKCJkZWVzLWFwcHVpLWFwcGJhciIpLHRoaXMubWFpbm1lbnU9dGhpcy5zaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3IoImRlZXMtYXBwdWktbWFpbm1lbnUiKSx0aGlzLnNlY29uZGFyeW1lbnU9dGhpcy5zaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3IoImRlZXMtYXBwdWktc2Vjb25kYXJ5bWVudSIpLHRoaXMubWFpbmNvbnRlbnQ9dGhpcy5zaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3IoImRlZXMtYXBwdWktbWFpbmNvbnRlbnQiKSx0aGlzLmFjdGl2aXR5bG9nRWxlbWVudD10aGlzLnNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvcigiZGVlcy1hcHB1aS1hY3Rpdml0eWxvZyIpLHRoaXMuYm90dG9tYmFyRWxlbWVudD10aGlzLnNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvcigiZGVlcy1hcHB1aS1ib3R0b21iYXIiKSx0aGlzLmFjdGl2aXR5bG9nRWxlbWVudCYmdGhpcy5hY3Rpdml0eWxvZ0VsZW1lbnQuZW50cmllcyQuc3Vic2NyaWJlKFE9Pnt0aGlzLmFjdGl2aXR5TG9nQ291bnQ9US5sZW5ndGh9KSx0aGlzLnZpZXdSZWdpc3RyeS5zZXRBcHB1aVJlZih0aGlzKX1hc3luYyBkaXNjb25uZWN0ZWRDYWxsYmFjaygpe2F3YWl0IHN1cGVyLmRpc2Nvbm5lY3RlZENhbGxiYWNrKCksdGhpcy5yb3V0ZXJDbGVhbnVwJiYodGhpcy5yb3V0ZXJDbGVhbnVwKCksdGhpcy5yb3V0ZXJDbGVhbnVwPW51bGwpLHRoaXMudmlld0xpZmVjeWNsZSQuY29tcGxldGUoKSx0aGlzLnZpZXdDaGFuZ2VkJC5jb21wbGV0ZSgpfXNldEFwcEJhck1lbnVzKFEpe3RoaXMuYXBwYmFyTWVudUl0ZW1zPVsuLi5RXX11cGRhdGVBcHBCYXJNZW51KFEscmUpe3RoaXMuYXBwYmFyTWVudUl0ZW1zPXRoaXMuYXBwYmFyTWVudUl0ZW1zLm1hcChBZT0+Im5hbWUiaW4gQWUmJkFlLm5hbWU9PT1RP3suLi5BZSwuLi5yZX06QWUpfXNldEJyZWFkY3J1bWJzKFEpe0FycmF5LmlzQXJyYXkoUSk/dGhpcy5hcHBiYXJCcmVhZGNydW1icz1RLmpvaW4odGhpcy5hcHBiYXJCcmVhZGNydW1iU2VwYXJhdG9yKTp0aGlzLmFwcGJhckJyZWFkY3J1bWJzPVF9c2V0VXNlcihRKXt0aGlzLmFwcGJhclVzZXI9UX1zZXRQcm9maWxlTWVudUl0ZW1zKFEpe3RoaXMuYXBwYmFyUHJvZmlsZU1lbnVJdGVtcz1bLi4uUV19c2V0U2VhcmNoVmlzaWJsZShRKXt0aGlzLmFwcGJhclNob3dTZWFyY2g9UX1zZXRXaW5kb3dDb250cm9sc1Zpc2libGUoUSl7dGhpcy5hcHBiYXJTaG93V2luZG93Q29udHJvbHM9UX1vblNlYXJjaChRKXt0aGlzLnNlYXJjaENhbGxiYWNrPVF9c2V0TWFpbk1lbnUoUSl7US5sb2dvSWNvbiE9PXZvaWQgMCYmKHRoaXMubWFpbm1lbnVMb2dvSWNvbj1RLmxvZ29JY29uKSxRLmxvZ29UZXh0IT09dm9pZCAwJiYodGhpcy5tYWlubWVudUxvZ29UZXh0PVEubG9nb1RleHQpLFEuZ3JvdXBzIT09dm9pZCAwJiYodGhpcy5tYWlubWVudUdyb3Vwcz1bLi4uUS5ncm91cHNdKSxRLmJvdHRvbVRhYnMhPT12b2lkIDAmJih0aGlzLm1haW5tZW51Qm90dG9tVGFicz1bLi4uUS5ib3R0b21UYWJzXSl9dXBkYXRlTWFpbk1lbnVHcm91cChRLHJlKXt0aGlzLm1haW5tZW51R3JvdXBzPXRoaXMubWFpbm1lbnVHcm91cHMubWFwKEFlPT5BZS5uYW1lPT09UT97Li4uQWUsLi4ucmV9OkFlKX1hZGRNYWluTWVudUl0ZW0oUSxyZSl7dGhpcy5tYWlubWVudUdyb3Vwcz10aGlzLm1haW5tZW51R3JvdXBzLm1hcChBZT0+QWUubmFtZT09PVE/ey4uLkFlLGl0ZW1zOlsuLi5BZS5pdGVtc3x8W10scmVdfTpBZSl9cmVtb3ZlTWFpbk1lbnVJdGVtKFEscmUpe3RoaXMubWFpbm1lbnVHcm91cHM9dGhpcy5tYWlubWVudUdyb3Vwcy5tYXAoQWU9PkFlLm5hbWU9PT1RP3suLi5BZSxpdGVtczooQWUuaXRlbXN8fFtdKS5maWx0ZXIobXI9Pm1yLmtleSE9PXJlKX06QWUpfXNldE1haW5NZW51U2VsZWN0aW9uKFEpe2ZvcihsZXQgQWUgb2YgdGhpcy5tYWlubWVudUdyb3Vwcyl7bGV0IG1yPUFlLml0ZW1zPy5maW5kKHVuPT51bi5rZXk9PT1RKTtpZihtcil7dGhpcy5tYWlubWVudVNlbGVjdGVkVGFiPW1yO3JldHVybn19bGV0IHJlPXRoaXMubWFpbm1lbnVCb3R0b21UYWJzLmZpbmQoQWU9PkFlLmtleT09PVEpO3JlJiYodGhpcy5tYWlubWVudVNlbGVjdGVkVGFiPXJlKX1zZXRNYWluTWVudUNvbGxhcHNlZChRKXt0aGlzLm1haW5tZW51Q29sbGFwc2VkPVF9c2V0TWFpbk1lbnVWaXNpYmxlKFEpe3RoaXMubWFpbm1lbnVWaXNpYmxlPVF9c2V0U2Vjb25kYXJ5TWVudUNvbGxhcHNlZChRKXt0aGlzLnNlY29uZGFyeW1lbnVDb2xsYXBzZWQ9UX1zZXRTZWNvbmRhcnlNZW51VmlzaWJsZShRKXt0aGlzLnNlY29uZGFyeW1lbnVWaXNpYmxlPVF9c2V0Q29udGVudFRhYnNWaXNpYmxlKFEpe3RoaXMubWFpbmNvbnRlbnRUYWJzVmlzaWJsZT1RfXNldENvbnRlbnRUYWJzQXV0b0hpZGUoUSxyZT0wKXt0aGlzLmNvbnRlbnRUYWJzQXV0b0hpZGU9USx0aGlzLmNvbnRlbnRUYWJzQXV0b0hpZGVUaHJlc2hvbGQ9cmV9c2V0TWFpbk1lbnVCYWRnZShRLHJlKXt0aGlzLm1haW5tZW51R3JvdXBzPXRoaXMubWFpbm1lbnVHcm91cHMubWFwKEFlPT4oey4uLkFlLGl0ZW1zOihBZS5pdGVtc3x8W10pLm1hcChtcj0+bXIua2V5PT09UT97Li4ubXIsYmFkZ2U6cmV9Om1yKX0pKSx0aGlzLm1haW5tZW51Qm90dG9tVGFicz10aGlzLm1haW5tZW51Qm90dG9tVGFicy5tYXAoQWU9PkFlLmtleT09PVE/ey4uLkFlLGJhZGdlOnJlfTpBZSl9Y2xlYXJNYWluTWVudUJhZGdlKFEpe3RoaXMubWFpbm1lbnVHcm91cHM9dGhpcy5tYWlubWVudUdyb3Vwcy5tYXAocmU9Pih7Li4ucmUsaXRlbXM6KHJlLml0ZW1zfHxbXSkubWFwKEFlPT57aWYoQWUua2V5PT09USl7bGV0e2JhZGdlOm1yLC4uLnVufT1BZTtyZXR1cm4gdW59cmV0dXJuIEFlfSl9KSksdGhpcy5tYWlubWVudUJvdHRvbVRhYnM9dGhpcy5tYWlubWVudUJvdHRvbVRhYnMubWFwKHJlPT57aWYocmUua2V5PT09USl7bGV0e2JhZGdlOkFlLC4uLm1yfT1yZTtyZXR1cm4gbXJ9cmV0dXJuIHJlfSl9c2V0U2Vjb25kYXJ5TWVudShRKXtRLmhlYWRpbmchPT12b2lkIDAmJih0aGlzLnNlY29uZGFyeW1lbnVIZWFkaW5nPVEuaGVhZGluZyksdGhpcy5zZWNvbmRhcnltZW51R3JvdXBzPVsuLi5RLmdyb3Vwc119dXBkYXRlU2Vjb25kYXJ5TWVudUdyb3VwKFEscmUpe3RoaXMuc2Vjb25kYXJ5bWVudUdyb3Vwcz10aGlzLnNlY29uZGFyeW1lbnVHcm91cHMubWFwKEFlPT5BZS5uYW1lPT09UT97Li4uQWUsLi4ucmV9OkFlKX1hZGRTZWNvbmRhcnlNZW51SXRlbShRLHJlKXt0aGlzLnNlY29uZGFyeW1lbnVHcm91cHM9dGhpcy5zZWNvbmRhcnltZW51R3JvdXBzLm1hcChBZT0+QWUubmFtZT09PVE/ey4uLkFlLGl0ZW1zOlsuLi5BZS5pdGVtcyxyZV19OkFlKX1zZXRTZWNvbmRhcnlNZW51U2VsZWN0aW9uKFEpe2ZvcihsZXQgcmUgb2YgdGhpcy5zZWNvbmRhcnltZW51R3JvdXBzKXtsZXQgQWU9cmUuaXRlbXMuZmluZChtcj0+ImtleSJpbiBtciYmbXIua2V5PT09USk7aWYoQWUmJighKCJ0eXBlImluIEFlKXx8QWUudHlwZT09PSJ0YWIifHxBZS50eXBlPT09dm9pZCAwKSl7dGhpcy5zZWNvbmRhcnltZW51U2VsZWN0ZWRJdGVtPUFlO3JldHVybn19fWNsZWFyU2Vjb25kYXJ5TWVudSgpe3RoaXMuc2Vjb25kYXJ5bWVudUhlYWRpbmc9IiIsdGhpcy5zZWNvbmRhcnltZW51R3JvdXBzPVtdLHRoaXMuc2Vjb25kYXJ5bWVudVNlbGVjdGVkSXRlbT12b2lkIDB9c2V0Q29udGVudFRhYnMoUSl7dGhpcy5tYWluY29udGVudFRhYnM9Wy4uLlFdLFEubGVuZ3RoPjAmJiF0aGlzLm1haW5jb250ZW50U2VsZWN0ZWRUYWImJih0aGlzLm1haW5jb250ZW50U2VsZWN0ZWRUYWI9UVswXSl9YWRkQ29udGVudFRhYihRKXt0aGlzLm1haW5jb250ZW50VGFicz1bLi4udGhpcy5tYWluY29udGVudFRhYnMsUV19cmVtb3ZlQ29udGVudFRhYihRKXt0aGlzLm1haW5jb250ZW50VGFicz10aGlzLm1haW5jb250ZW50VGFicy5maWx0ZXIocmU9PnJlLmtleSE9PVEpLHRoaXMubWFpbmNvbnRlbnRTZWxlY3RlZFRhYj8ua2V5PT09USYmKHRoaXMubWFpbmNvbnRlbnRTZWxlY3RlZFRhYj10aGlzLm1haW5jb250ZW50VGFic1swXSl9c2VsZWN0Q29udGVudFRhYihRKXtsZXQgcmU9dGhpcy5tYWluY29udGVudFRhYnMuZmluZChBZT0+QWUua2V5PT09USk7cmUmJih0aGlzLm1haW5jb250ZW50U2VsZWN0ZWRUYWI9cmUpfWdldFNlbGVjdGVkQ29udGVudFRhYigpe3JldHVybiB0aGlzLm1haW5jb250ZW50U2VsZWN0ZWRUYWJ9Z2V0IGFjdGl2aXR5TG9nKCl7cmV0dXJuIHRoaXMuYWN0aXZpdHlsb2dFbGVtZW50P3thZGQ6UT0+dGhpcy5hY3Rpdml0eWxvZ0VsZW1lbnQuYWRkKFEpLGFkZE1hbnk6UT0+dGhpcy5hY3Rpdml0eWxvZ0VsZW1lbnQuYWRkTWFueShRKSxjbGVhcjooKT0+dGhpcy5hY3Rpdml0eWxvZ0VsZW1lbnQuY2xlYXIoKSxnZXRFbnRyaWVzOigpPT50aGlzLmFjdGl2aXR5bG9nRWxlbWVudC5nZXRFbnRyaWVzKCksZmlsdGVyOlE9PnRoaXMuYWN0aXZpdHlsb2dFbGVtZW50LmZpbHRlcihRKSxzZWFyY2g6UT0+dGhpcy5hY3Rpdml0eWxvZ0VsZW1lbnQuc2VhcmNoKFEpfTp7YWRkOlE9Pnt0aGlzLnVwZGF0ZUNvbXBsZXRlLnRoZW4oKCk9PnRoaXMuYWN0aXZpdHlsb2dFbGVtZW50Py5hZGQoUSkpfSxhZGRNYW55OlE9Pnt0aGlzLnVwZGF0ZUNvbXBsZXRlLnRoZW4oKCk9PnRoaXMuYWN0aXZpdHlsb2dFbGVtZW50Py5hZGRNYW55KFEpKX0sY2xlYXI6KCk9Pnt0aGlzLnVwZGF0ZUNvbXBsZXRlLnRoZW4oKCk9PnRoaXMuYWN0aXZpdHlsb2dFbGVtZW50Py5jbGVhcigpKX0sZ2V0RW50cmllczooKT0+dGhpcy5hY3Rpdml0eWxvZ0VsZW1lbnQ/LmdldEVudHJpZXMoKXx8W10sZmlsdGVyOlE9PnRoaXMuYWN0aXZpdHlsb2dFbGVtZW50Py5maWx0ZXIoUSl8fFtdLHNlYXJjaDpRPT50aGlzLmFjdGl2aXR5bG9nRWxlbWVudD8uc2VhcmNoKFEpfHxbXX19c2V0QWN0aXZpdHlMb2dWaXNpYmxlKFEpe3RoaXMuYWN0aXZpdHlMb2dWaXNpYmxlPVF9dG9nZ2xlQWN0aXZpdHlMb2coKXt0aGlzLmFjdGl2aXR5TG9nVmlzaWJsZT0hdGhpcy5hY3Rpdml0eUxvZ1Zpc2libGV9Z2V0QWN0aXZpdHlMb2dWaXNpYmxlKCl7cmV0dXJuIHRoaXMuYWN0aXZpdHlMb2dWaXNpYmxlfWdldCBib3R0b21CYXIoKXtyZXR1cm4gdGhpcy5ib3R0b21iYXJFbGVtZW50P3thZGRXaWRnZXQ6UT0+dGhpcy5ib3R0b21iYXJFbGVtZW50LmFkZFdpZGdldChRKSx1cGRhdGVXaWRnZXQ6KFEscmUpPT50aGlzLmJvdHRvbWJhckVsZW1lbnQudXBkYXRlV2lkZ2V0KFEscmUpLHJlbW92ZVdpZGdldDpRPT50aGlzLmJvdHRvbWJhckVsZW1lbnQucmVtb3ZlV2lkZ2V0KFEpLGdldFdpZGdldDpRPT50aGlzLmJvdHRvbWJhckVsZW1lbnQuZ2V0V2lkZ2V0KFEpLGNsZWFyV2lkZ2V0czooKT0+dGhpcy5ib3R0b21iYXJFbGVtZW50LmNsZWFyV2lkZ2V0cygpLGFkZEFjdGlvbjpRPT50aGlzLmJvdHRvbWJhckVsZW1lbnQuYWRkQWN0aW9uKFEpLHJlbW92ZUFjdGlvbjpRPT50aGlzLmJvdHRvbWJhckVsZW1lbnQucmVtb3ZlQWN0aW9uKFEpLGNsZWFyQWN0aW9uczooKT0+dGhpcy5ib3R0b21iYXJFbGVtZW50LmNsZWFyQWN0aW9ucygpfTp7YWRkV2lkZ2V0OlE9Pnt0aGlzLnVwZGF0ZUNvbXBsZXRlLnRoZW4oKCk9PnRoaXMuYm90dG9tYmFyRWxlbWVudD8uYWRkV2lkZ2V0KFEpKX0sdXBkYXRlV2lkZ2V0OihRLHJlKT0+e3RoaXMudXBkYXRlQ29tcGxldGUudGhlbigoKT0+dGhpcy5ib3R0b21iYXJFbGVtZW50Py51cGRhdGVXaWRnZXQoUSxyZSkpfSxyZW1vdmVXaWRnZXQ6UT0+e3RoaXMudXBkYXRlQ29tcGxldGUudGhlbigoKT0+dGhpcy5ib3R0b21iYXJFbGVtZW50Py5yZW1vdmVXaWRnZXQoUSkpfSxnZXRXaWRnZXQ6UT0+dGhpcy5ib3R0b21iYXJFbGVtZW50Py5nZXRXaWRnZXQoUSksY2xlYXJXaWRnZXRzOigpPT57dGhpcy51cGRhdGVDb21wbGV0ZS50aGVuKCgpPT50aGlzLmJvdHRvbWJhckVsZW1lbnQ/LmNsZWFyV2lkZ2V0cygpKX0sYWRkQWN0aW9uOlE9Pnt0aGlzLnVwZGF0ZUNvbXBsZXRlLnRoZW4oKCk9PnRoaXMuYm90dG9tYmFyRWxlbWVudD8uYWRkQWN0aW9uKFEpKX0scmVtb3ZlQWN0aW9uOlE9Pnt0aGlzLnVwZGF0ZUNvbXBsZXRlLnRoZW4oKCk9PnRoaXMuYm90dG9tYmFyRWxlbWVudD8ucmVtb3ZlQWN0aW9uKFEpKX0sY2xlYXJBY3Rpb25zOigpPT57dGhpcy51cGRhdGVDb21wbGV0ZS50aGVuKCgpPT50aGlzLmJvdHRvbWJhckVsZW1lbnQ/LmNsZWFyQWN0aW9ucygpKX19fXNldEJvdHRvbUJhclZpc2libGUoUSl7dGhpcy5ib3R0b21iYXJWaXNpYmxlPVEsUT90aGlzLnJlbW92ZUF0dHJpYnV0ZSgiYm90dG9tYmFyLWhpZGRlbiIpOnRoaXMuc2V0QXR0cmlidXRlKCJib3R0b21iYXItaGlkZGVuIiwiIil9Z2V0Qm90dG9tQmFyVmlzaWJsZSgpe3JldHVybiB0aGlzLmJvdHRvbWJhclZpc2libGV9YXN5bmMgbmF2aWdhdGVUb1ZpZXcoUSxyZSl7bGV0IEFlPXRoaXMudmlld1JlZ2lzdHJ5LmdldChRKTtpZighQWUpcmV0dXJuIGNvbnNvbGUud2FybihgQ2Fubm90IG5hdmlnYXRlIHRvIHVua25vd24gdmlldzogJHtRfWApLCExO2xldCBtcj1hd2FpdCB0aGlzLnZpZXdSZWdpc3RyeS5jYW5MZWF2ZUN1cnJlbnRWaWV3KCk7aWYobXIhPT0hMClpZih0eXBlb2YgbXI9PSJzdHJpbmciKXtpZighd2luZG93LmNvbmZpcm0obXIpKXJldHVybiExfWVsc2UgcmV0dXJuITE7dGhpcy52aWV3TGlmZWN5Y2xlJC5uZXh0KHt0eXBlOiJsb2FkaW5nIix2aWV3SWQ6UX0pO3RyeXthd2FpdCB0aGlzLmxvYWRWaWV3KEFlLHJlKTtsZXQgemg9YCMke0FlLnJvdXRlfHxRfWA7cmV0dXJuIHdpbmRvdy5sb2NhdGlvbi5oYXNoIT09emgmJndpbmRvdy5oaXN0b3J5LnB1c2hTdGF0ZSh7dmlld0lkOlF9LCIiLHpoKSwhMH1jYXRjaCh1bil7cmV0dXJuIHRoaXMudmlld0xpZmVjeWNsZSQubmV4dCh7dHlwZToibG9hZEVycm9yIix2aWV3SWQ6USxlcnJvcjp1bn0pLCExfX1nZXRDdXJyZW50Vmlldygpe3JldHVybiB0aGlzLmN1cnJlbnRWaWV3fWdldFZpZXdSZWdpc3RyeSgpe3JldHVybiB0aGlzLnZpZXdSZWdpc3RyeX1jb25maWd1cmUoUSl7US52aWV3cyYmKHRoaXMudmlld1JlZ2lzdHJ5LmNsZWFyKCksdGhpcy52aWV3UmVnaXN0cnkucmVnaXN0ZXJBbGwoUS52aWV3cykpLFEuYnJhbmRpbmcmJih0aGlzLm1haW5tZW51TG9nb0ljb249US5icmFuZGluZy5sb2dvSWNvbnx8IiIsdGhpcy5tYWlubWVudUxvZ29UZXh0PVEuYnJhbmRpbmcubG9nb1RleHR8fCIiKSxRLmFwcEJhciYmKHRoaXMuYXBwYmFyTWVudUl0ZW1zPVEuYXBwQmFyLm1lbnVJdGVtc3x8W10sdGhpcy5hcHBiYXJCcmVhZGNydW1icz1RLmFwcEJhci5icmVhZGNydW1ic3x8IiIsdGhpcy5hcHBiYXJCcmVhZGNydW1iU2VwYXJhdG9yPVEuYXBwQmFyLmJyZWFkY3J1bWJTZXBhcmF0b3J8fCIgPiAiLHRoaXMuYXBwYmFyU2hvd1dpbmRvd0NvbnRyb2xzPVEuYXBwQmFyLnNob3dXaW5kb3dDb250cm9scz8/ITAsdGhpcy5hcHBiYXJTaG93U2VhcmNoPVEuYXBwQmFyLnNob3dTZWFyY2g/PyExLHRoaXMuYXBwYmFyVXNlcj1RLmFwcEJhci51c2VyLHRoaXMuYXBwYmFyUHJvZmlsZU1lbnVJdGVtcz1RLmFwcEJhci5wcm9maWxlTWVudUl0ZW1zfHxbXSksUS5tYWluTWVudSYmKFEubWFpbk1lbnUuc2VjdGlvbnM/dGhpcy5tYWlubWVudUdyb3Vwcz10aGlzLmJ1aWxkTWFpbk1lbnVGcm9tU2VjdGlvbnMoUSk6US5tYWluTWVudS5ncm91cHMmJih0aGlzLm1haW5tZW51R3JvdXBzPVEubWFpbk1lbnUuZ3JvdXBzKSxRLm1haW5NZW51LmxvZ29JY29uJiYodGhpcy5tYWlubWVudUxvZ29JY29uPVEubWFpbk1lbnUubG9nb0ljb24pLFEubWFpbk1lbnUubG9nb1RleHQmJih0aGlzLm1haW5tZW51TG9nb1RleHQ9US5tYWluTWVudS5sb2dvVGV4dCksUS5tYWluTWVudS5ib3R0b21UYWJzP3RoaXMubWFpbm1lbnVCb3R0b21UYWJzPVEubWFpbk1lbnUuYm90dG9tVGFiczpRLm1haW5NZW51LmJvdHRvbUl0ZW1zJiYodGhpcy5tYWlubWVudUJvdHRvbVRhYnM9dGhpcy5idWlsZEJvdHRvbVRhYnNGcm9tSXRlbXMoUS5tYWluTWVudS5ib3R0b21JdGVtcykpKSxRLmJvdHRvbUJhciYmKHRoaXMuc2V0Qm90dG9tQmFyVmlzaWJsZShRLmJvdHRvbUJhci52aXNpYmxlPz8hMCksUS5ib3R0b21CYXIud2lkZ2V0cyYmUS5ib3R0b21CYXIud2lkZ2V0cy5mb3JFYWNoKHJlPT57dGhpcy5ib3R0b21CYXIuYWRkV2lkZ2V0KHJlKX0pLFEuYm90dG9tQmFyLmFjdGlvbnMmJlEuYm90dG9tQmFyLmFjdGlvbnMuZm9yRWFjaChyZT0+e3RoaXMuYm90dG9tQmFyLmFkZEFjdGlvbihyZSl9KSksdGhpcy5zZXR1cFJvdXRlckludGVncmF0aW9uKFEpLFEub25WaWV3Q2hhbmdlJiZ0aGlzLnZpZXdDaGFuZ2VkJC5zdWJzY3JpYmUocmU9PntRLm9uVmlld0NoYW5nZShyZS52aWV3SWQscmUudmlldyl9KSxRLm9uU2VhcmNoJiYodGhpcy5zZWFyY2hDYWxsYmFjaz1RLm9uU2VhcmNoKSxRLmRlZmF1bHRWaWV3JiZ0aGlzLm5hdmlnYXRlVG9WaWV3KFEuZGVmYXVsdFZpZXcpfXNldHVwUm91dGVySW50ZWdyYXRpb24oUSl7bGV0IHJlPSgpPT57bGV0IG1yPXdpbmRvdy5sb2NhdGlvbi5oYXNoLnNsaWNlKDEpO2lmKCFtcilyZXR1cm47bGV0IHVuPXRoaXMudmlld1JlZ2lzdHJ5LmZpbmRCeVJvdXRlKG1yKTt1biYmdGhpcy5uYXZpZ2F0ZVRvVmlldyh1bi52aWV3LmlkLHVuLnBhcmFtcyl9O3dpbmRvdy5hZGRFdmVudExpc3RlbmVyKCJoYXNoY2hhbmdlIixyZSksdGhpcy5yb3V0ZXJDbGVhbnVwPSgpPT57d2luZG93LnJlbW92ZUV2ZW50TGlzdGVuZXIoImhhc2hjaGFuZ2UiLHJlKX07bGV0IEFlPXdpbmRvdy5sb2NhdGlvbi5oYXNoLnNsaWNlKDEpO2lmKEFlKXtsZXQgbXI9dGhpcy52aWV3UmVnaXN0cnkuZmluZEJ5Um91dGUoQWUpO21yJiZzZXRUaW1lb3V0KCgpPT50aGlzLm5hdmlnYXRlVG9WaWV3KG1yLnZpZXcuaWQsbXIucGFyYW1zKSwwKX19YnVpbGRNYWluTWVudUZyb21TZWN0aW9ucyhRKXtyZXR1cm4gUS5tYWluTWVudT8uc2VjdGlvbnM/US5tYWluTWVudS5zZWN0aW9ucy5tYXAocmU9Pih7bmFtZTpyZS5uYW1lLGl0ZW1zOnJlLnZpZXdzLm1hcChBZT0+e2xldCBtcj10aGlzLnZpZXdSZWdpc3RyeS5nZXQoQWUpO3JldHVybiBtcj97a2V5Om1yLmlkLGljb25OYW1lOm1yLmljb25OYW1lLGFjdGlvbjooKT0+dGhpcy5uYXZpZ2F0ZVRvVmlldyhBZSksYmFkZ2U6bXIuYmFkZ2V9Oihjb25zb2xlLndhcm4oYFZpZXcgIiR7QWV9IiBub3QgZm91bmQgaW4gcmVnaXN0cnlgKSxudWxsKX0pLmZpbHRlcihCb29sZWFuKX0pKTpbXX1idWlsZEJvdHRvbVRhYnNGcm9tSXRlbXMoUSl7cmV0dXJuIFEubWFwKHJlPT57bGV0IEFlPXRoaXMudmlld1JlZ2lzdHJ5LmdldChyZSk7cmV0dXJuIEFlP3trZXk6QWUuaWQsaWNvbk5hbWU6QWUuaWNvbk5hbWUsYWN0aW9uOigpPT50aGlzLm5hdmlnYXRlVG9WaWV3KHJlKX06KGNvbnNvbGUud2FybihgVmlldyAiJHtyZX0iIG5vdCBmb3VuZCBpbiByZWdpc3RyeWApLG51bGwpfSkuZmlsdGVyKEJvb2xlYW4pfWFzeW5jIGxvYWRWaWV3KFEscmUpe2xldCBBZT10aGlzLmN1cnJlbnRWaWV3O3RoaXMuY3VycmVudFZpZXc9UTtsZXQgbXI9dGhpcy5tYWluY29udGVudD8ucXVlcnlTZWxlY3RvcigiLnZpZXctY29udGFpbmVyIil8fHRoaXMuc2hhZG93Um9vdD8ucXVlcnlTZWxlY3RvcigiLnZpZXctY29udGFpbmVyIik7aWYobXIpe2xldCB6aD1hd2FpdCB0aGlzLnZpZXdSZWdpc3RyeS5hY3RpdmF0ZVZpZXcoUS5pZCxtcixyZSk7emgmJnRoaXMudmlld0xpZmVjeWNsZSQubmV4dCh7dHlwZToiYWN0aXZhdGVkIix2aWV3SWQ6US5pZCxlbGVtZW50OnpoLHBhcmFtczpyZX0pfVEuc2Vjb25kYXJ5TWVudSYmKHRoaXMuc2Vjb25kYXJ5bWVudUdyb3Vwcz1RLnNlY29uZGFyeU1lbnUsdGhpcy5zZWNvbmRhcnltZW51SGVhZGluZz1RLm5hbWUpLFEuY29udGVudFRhYnMmJih0aGlzLm1haW5jb250ZW50VGFicz1RLmNvbnRlbnRUYWJzKSx0aGlzLnNldE1haW5NZW51U2VsZWN0aW9uKFEuaWQpO2xldCB1bj17dmlld0lkOlEuaWQsdmlldzpRLHByZXZpb3VzVmlldzpBZSxwYXJhbXM6cmV9O3RoaXMudmlld0NoYW5nZWQkLm5leHQodW4pLHRoaXMuZGlzcGF0Y2hFdmVudChuZXcgQ3VzdG9tRXZlbnQoInZpZXctY2hhbmdlIix7ZGV0YWlsOnVuLGJ1YmJsZXM6ITAsY29tcG9zZWQ6ITB9KSl9aGFuZGxlQXBwYmFyTWVudVNlbGVjdChRKXt0aGlzLmRpc3BhdGNoRXZlbnQobmV3IEN1c3RvbUV2ZW50KCJhcHBiYXItbWVudS1zZWxlY3QiLHtkZXRhaWw6US5kZXRhaWwsYnViYmxlczohMCxjb21wb3NlZDohMH0pKX1oYW5kbGVBcHBiYXJCcmVhZGNydW1iTmF2aWdhdGUoUSl7dGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBDdXN0b21FdmVudCgiYXBwYmFyLWJyZWFkY3J1bWItbmF2aWdhdGUiLHtkZXRhaWw6US5kZXRhaWwsYnViYmxlczohMCxjb21wb3NlZDohMH0pKX1oYW5kbGVBcHBiYXJTZWFyY2hDbGljaygpe3RoaXMuZGlzcGF0Y2hFdmVudChuZXcgQ3VzdG9tRXZlbnQoImFwcGJhci1zZWFyY2gtY2xpY2siLHtidWJibGVzOiEwLGNvbXBvc2VkOiEwfSkpfWhhbmRsZUFwcGJhclNlYXJjaFF1ZXJ5KFEpe3RoaXMuc2VhcmNoQ2FsbGJhY2smJnRoaXMuc2VhcmNoQ2FsbGJhY2soUS5kZXRhaWwucXVlcnkpLHRoaXMuZGlzcGF0Y2hFdmVudChuZXcgQ3VzdG9tRXZlbnQoInNlYXJjaC1xdWVyeSIse2RldGFpbDpRLmRldGFpbCxidWJibGVzOiEwLGNvbXBvc2VkOiEwfSkpfWhhbmRsZUFwcGJhclVzZXJNZW51T3Blbigpe3RoaXMuZGlzcGF0Y2hFdmVudChuZXcgQ3VzdG9tRXZlbnQoImFwcGJhci11c2VyLW1lbnUtb3BlbiIse2J1YmJsZXM6ITAsY29tcG9zZWQ6ITB9KSl9aGFuZGxlQXBwYmFyUHJvZmlsZU1lbnVTZWxlY3QoUSl7dGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBDdXN0b21FdmVudCgiYXBwYmFyLXByb2ZpbGUtbWVudS1zZWxlY3QiLHtkZXRhaWw6US5kZXRhaWwsYnViYmxlczohMCxjb21wb3NlZDohMH0pKX1oYW5kbGVNYWlubWVudVRhYlNlbGVjdChRKXt0aGlzLm1haW5tZW51U2VsZWN0ZWRUYWI9US5kZXRhaWwudGFiLHRoaXMuZGlzcGF0Y2hFdmVudChuZXcgQ3VzdG9tRXZlbnQoIm1haW5tZW51LXRhYi1zZWxlY3QiLHtkZXRhaWw6US5kZXRhaWwsYnViYmxlczohMCxjb21wb3NlZDohMH0pKX1oYW5kbGVTZWNvbmRhcnltZW51SXRlbVNlbGVjdChRKXt0aGlzLnNlY29uZGFyeW1lbnVTZWxlY3RlZEl0ZW09US5kZXRhaWwuaXRlbSx0aGlzLmRpc3BhdGNoRXZlbnQobmV3IEN1c3RvbUV2ZW50KCJzZWNvbmRhcnltZW51LWl0ZW0tc2VsZWN0Iix7ZGV0YWlsOlEuZGV0YWlsLGJ1YmJsZXM6ITAsY29tcG9zZWQ6ITB9KSl9aGFuZGxlTWFpbm1lbnVDb2xsYXBzZUNoYW5nZShRKXt0aGlzLm1haW5tZW51Q29sbGFwc2VkPVEuZGV0YWlsLmNvbGxhcHNlZCx0aGlzLmRpc3BhdGNoRXZlbnQobmV3IEN1c3RvbUV2ZW50KCJtYWlubWVudS1jb2xsYXBzZS1jaGFuZ2UiLHtkZXRhaWw6US5kZXRhaWwsYnViYmxlczohMCxjb21wb3NlZDohMH0pKX1oYW5kbGVTZWNvbmRhcnltZW51Q29sbGFwc2VDaGFuZ2UoUSl7dGhpcy5zZWNvbmRhcnltZW51Q29sbGFwc2VkPVEuZGV0YWlsLmNvbGxhcHNlZCx0aGlzLmRpc3BhdGNoRXZlbnQobmV3IEN1c3RvbUV2ZW50KCJzZWNvbmRhcnltZW51LWNvbGxhcHNlLWNoYW5nZSIse2RldGFpbDpRLmRldGFpbCxidWJibGVzOiEwLGNvbXBvc2VkOiEwfSkpfWhhbmRsZUNvbnRlbnRUYWJTZWxlY3QoUSl7dGhpcy5tYWluY29udGVudFNlbGVjdGVkVGFiPVEuZGV0YWlsLnRhYix0aGlzLmRpc3BhdGNoRXZlbnQobmV3IEN1c3RvbUV2ZW50KCJjb250ZW50LXRhYi1zZWxlY3QiLHtkZXRhaWw6US5kZXRhaWwsYnViYmxlczohMCxjb21wb3NlZDohMH0pKX1oYW5kbGVDb250ZW50VGFiQ2xvc2UoUSl7dGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBDdXN0b21FdmVudCgiY29udGVudC10YWItY2xvc2UiLHtkZXRhaWw6US5kZXRhaWwsYnViYmxlczohMCxjb21wb3NlZDohMH0pKX1zdGF0aWN7UWUoaSxyKX19O3JldHVybiBqNWU9aX0pKCl9KTt2YXIgVmxyPXAoKCk9PntqbHIoKTtJNmUoKX0pO3ZhciBVbHI9cCgoKT0+e082ZSgpfSk7dmFyIFdscj1wKCgpPT57UDZlKCl9KTt2YXIgR2xyPXAoKCk9PntONmUoKX0pO3ZhciBZbHI9cCgoKT0+e2k2ZSgpfSk7dmFyIFpscj1wKCgpPT57RjZlKCl9KTt2YXIgWE4sVmQsWGxyLFFscj1wKCgpPT57d2koKTt4bygpO1FhKCk7eGUoKTtwYygpO29yKCk7SmUoKTtYTj1mdW5jdGlvbihlLHQscixpLGEsbil7ZnVuY3Rpb24gbyh5KXtpZih5IT09dm9pZCAwJiZ0eXBlb2YgeSE9ImZ1bmN0aW9uIil0aHJvdyBuZXcgVHlwZUVycm9yKCJGdW5jdGlvbiBleHBlY3RlZCIpO3JldHVybiB5fWZvcih2YXIgcz1pLmtpbmQsbD1zPT09ImdldHRlciI/ImdldCI6cz09PSJzZXR0ZXIiPyJzZXQiOiJ2YWx1ZSIsYz0hdCYmZT9pLnN0YXRpYz9lOmUucHJvdG90eXBlOm51bGwsdT10fHwoYz9PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGMsaS5uYW1lKTp7fSksZCxoPSExLGY9ci5sZW5ndGgtMTtmPj0wO2YtLSl7dmFyIHg9e307Zm9yKHZhciB2IGluIGkpeFt2XT12PT09ImFjY2VzcyI/e306aVt2XTtmb3IodmFyIHYgaW4gaS5hY2Nlc3MpeC5hY2Nlc3Nbdl09aS5hY2Nlc3Nbdl07eC5hZGRJbml0aWFsaXplcj1mdW5jdGlvbih5KXtpZihoKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBhZGQgaW5pdGlhbGl6ZXJzIGFmdGVyIGRlY29yYXRpb24gaGFzIGNvbXBsZXRlZCIpO24ucHVzaChvKHl8fG51bGwpKX07dmFyIGI9KDAscltmXSkocz09PSJhY2Nlc3NvciI/e2dldDp1LmdldCxzZXQ6dS5zZXR9OnVbbF0seCk7aWYocz09PSJhY2Nlc3NvciIpe2lmKGI9PT12b2lkIDApY29udGludWU7aWYoYj09PW51bGx8fHR5cGVvZiBiIT0ib2JqZWN0Iil0aHJvdyBuZXcgVHlwZUVycm9yKCJPYmplY3QgZXhwZWN0ZWQiKTsoZD1vKGIuZ2V0KSkmJih1LmdldD1kKSwoZD1vKGIuc2V0KSkmJih1LnNldD1kKSwoZD1vKGIuaW5pdCkpJiZhLnVuc2hpZnQoZCl9ZWxzZShkPW8oYikpJiYocz09PSJmaWVsZCI/YS51bnNoaWZ0KGQpOnVbbF09ZCl9YyYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGMsaS5uYW1lLHUpLGg9ITB9LFZkPWZ1bmN0aW9uKGUsdCxyKXtmb3IodmFyIGk9YXJndW1lbnRzLmxlbmd0aD4yLGE9MDthPHQubGVuZ3RoO2ErKylyPWk/dFthXS5jYWxsKGUscik6dFthXS5jYWxsKGUpO3JldHVybiBpP3I6dm9pZCAwfSxYbHI9KCgpPT57bGV0IGU9W3llKCJkZWVzLW1vYmlsZW5hdmlnYXRpb24iKV0sdCxyPVtdLGksYT16ZSxuLG89W10scz1bXSxsLGM9W10sdT1bXSxkLGg9W10sZj1bXTt2YXIgeD1jbGFzcyBleHRlbmRzIGF7c3RhdGlje2k9dGhpc31zdGF0aWN7bGV0IHY9dHlwZW9mIFN5bWJvbD09ImZ1bmN0aW9uIiYmU3ltYm9sLm1ldGFkYXRhP09iamVjdC5jcmVhdGUoYVtTeW1ib2wubWV0YWRhdGFdPz9udWxsKTp2b2lkIDA7bj1baih7dHlwZTpTdHJpbmd9KV0sbD1baih7dHlwZTpBcnJheX0pXSxkPVtmZSgpXSxYTih0aGlzLG51bGwsbix7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImhlYWRpbmciLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmI9PiJoZWFkaW5nImluIGIsZ2V0OmI9PmIuaGVhZGluZyxzZXQ6KGIseSk9PntiLmhlYWRpbmc9eX19LG1ldGFkYXRhOnZ9LG8scyksWE4odGhpcyxudWxsLGwse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJtZW51SXRlbXMiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmI9PiJtZW51SXRlbXMiaW4gYixnZXQ6Yj0+Yi5tZW51SXRlbXMsc2V0OihiLHkpPT57Yi5tZW51SXRlbXM9eX19LG1ldGFkYXRhOnZ9LGMsdSksWE4odGhpcyxudWxsLGQse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJtb2JpbGVOYXZaSW5kZXgiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmI9PiJtb2JpbGVOYXZaSW5kZXgiaW4gYixnZXQ6Yj0+Yi5tb2JpbGVOYXZaSW5kZXgsc2V0OihiLHkpPT57Yi5tb2JpbGVOYXZaSW5kZXg9eX19LG1ldGFkYXRhOnZ9LGgsZiksWE4obnVsbCx0PXt2YWx1ZTppfSxlLHtraW5kOiJjbGFzcyIsbmFtZTppLm5hbWUsbWV0YWRhdGE6dn0sbnVsbCxyKSx4PWk9dC52YWx1ZSx2JiZPYmplY3QuZGVmaW5lUHJvcGVydHkoaSxTeW1ib2wubWV0YWRhdGEse2VudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwLHZhbHVlOnZ9KX1zdGF0aWMgZGVtb0dyb3Vwcz1bIkFwcCBVSSJdO3N0YXRpYyBkZW1vPSgpPT5DYAogICAgPGRlZXMtYnV0dG9uIEBjbGljaz0keygpPT57eC5jcmVhdGVBbmRTaG93KFt7bmFtZToiRGFzaGJvYXJkIixpY29uTmFtZToibHVjaWRlOmxheW91dC1kYXNoYm9hcmQiLGFjdGlvbjphc3luYyB2PT4oY29uc29sZS5sb2coIk5hdmlnYXRlIHRvIGRhc2hib2FyZCIpLG51bGwpfSx7bmFtZToiUHJvZmlsZSIsaWNvbk5hbWU6Imx1Y2lkZTp1c2VyIixhY3Rpb246YXN5bmMgdj0+KGNvbnNvbGUubG9nKCJOYXZpZ2F0ZSB0byBwcm9maWxlIiksbnVsbCl9LHtuYW1lOiJTZXR0aW5ncyIsaWNvbk5hbWU6Imx1Y2lkZTpzZXR0aW5ncyIsYWN0aW9uOmFzeW5jIHY9Pihjb25zb2xlLmxvZygiTmF2aWdhdGUgdG8gc2V0dGluZ3MiKSxudWxsKX0se2RpdmlkZXI6ITB9LHtuYW1lOiJIZWxwIixpY29uTmFtZToibHVjaWRlOmhlbHAtY2lyY2xlIixhY3Rpb246YXN5bmMgdj0+KGNvbnNvbGUubG9nKCJTaG93IGhlbHAiKSxudWxsKX0se25hbWU6IlNpZ24gT3V0IixpY29uTmFtZToibHVjaWRlOmxvZy1vdXQiLGFjdGlvbjphc3luYyB2PT4oY29uc29sZS5sb2coIlNpZ24gb3V0IiksbnVsbCl9XSl9fT5PcGVuIE1vYmlsZSBOYXZpZ2F0aW9uPC9kZWVzLWJ1dHRvbj4KICBgO3N0YXRpYyBzaW5nbGV0b25SZWY7c3RhdGljIGFzeW5jIGNyZWF0ZUFuZFNob3codil7cmV0dXJuIHRoaXMuc2luZ2xldG9uUmVmfHwodGhpcy5zaW5nbGV0b25SZWY9bmV3IHgsZG9jdW1lbnQuYm9keS5hcHBlbmQodGhpcy5zaW5nbGV0b25SZWYpLGF3YWl0IHRoaXMuc2luZ2xldG9uUmVmLmluaXQoKSksdGhpcy5zaW5nbGV0b25SZWYubWVudUl0ZW1zPXYsYXdhaXQgdGhpcy5zaW5nbGV0b25SZWYucmVhZHlEZWZlcnJlZC5wcm9taXNlLHRoaXMuc2luZ2xldG9uUmVmLnNob3coKSx0aGlzLnNpbmdsZXRvblJlZn0jZT1WZCh0aGlzLG8sIk1lbnUiKTtnZXQgaGVhZGluZygpe3JldHVybiB0aGlzLiNlfXNldCBoZWFkaW5nKHYpe3RoaXMuI2U9dn0jdD0oVmQodGhpcyxzKSxWZCh0aGlzLGMsW10pKTtnZXQgbWVudUl0ZW1zKCl7cmV0dXJuIHRoaXMuI3R9c2V0IG1lbnVJdGVtcyh2KXt0aGlzLiN0PXZ9I3I9KFZkKHRoaXMsdSksVmQodGhpcyxoLDFlMykpO2dldCBtb2JpbGVOYXZaSW5kZXgoKXtyZXR1cm4gdGhpcy4jcn1zZXQgbW9iaWxlTmF2WkluZGV4KHYpe3RoaXMuI3I9dn1yZWFkeURlZmVycmVkPShWZCh0aGlzLGYpLGt0LnBsdWdpbnMuc21hcnRwcm9taXNlLmRlZmVyKCkpO2NvbnN0cnVjdG9yKCl7c3VwZXIoKX1hc3luYyBpbml0KCl7YXdhaXQgdGhpcy51cGRhdGVDb21wbGV0ZSx0aGlzLnJlYWR5RGVmZXJyZWQucmVzb2x2ZSgpfXN0YXRpYyBzdHlsZXM9W0RlLG0uZGVmYXVsdFN0eWxlcyxvZWAKICAgICAgLyogVE9ETzogTWlncmF0ZSBoYXJkY29kZWQgdmFsdWVzIHRvIC0tZGVlcy0qIENTUyB2YXJpYWJsZXMgKi8KICAgICAgOmhvc3QgewogICAgICAgIGZvbnQtZmFtaWx5OiAke0lyfTsKICAgICAgfQoKICAgICAgLm1haW4gewogICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjNzIGN1YmljLWJlemllcigwLjQsIDAsIDAuMiwgMSk7CiAgICAgICAgd2lsbC1jaGFuZ2U6IHRyYW5zZm9ybTsKICAgICAgICBwb3NpdGlvbjogZml4ZWQ7CiAgICAgICAgaGVpZ2h0OiAxMDB2aDsKICAgICAgICB3aWR0aDogMTAwJTsKICAgICAgICBtYXgtd2lkdGg6IDMyMHB4OwogICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgxMDAlKTsKICAgICAgICBjb2xvcjogJHttLmJkVGhlbWUoIiMwOTA5MGIiLCIjZmFmYWZhIil9OwogICAgICAgIHotaW5kZXg6IHZhcigtLXotaW5kZXgpOwogICAgICAgIG9wYWNpdHk6IDA7CiAgICAgICAgcmlnaHQ6IDBweDsKICAgICAgICB0b3A6IDBweDsKICAgICAgICBib3R0b206IDBweDsKICAgICAgICBiYWNrZ3JvdW5kOiAke20uYmRUaGVtZSgiI2ZmZmZmZiIsIiMwOTA5MGIiKX07CiAgICAgICAgYm9yZGVyLWxlZnQ6IDFweCBzb2xpZCAke20uYmRUaGVtZSgiI2U1ZTdlYiIsIiMyNzI3MmEiKX07CiAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7CiAgICAgICAgYm94LXNoYWRvdzogJHttLmJkVGhlbWUoIi0yMHB4IDAgMjVweCAtNXB4IHJnYmEoMCwgMCwgMCwgMC4xKSwgLTEwcHggMCAxMHB4IC01cHggcmdiYSgwLCAwLCAwLCAwLjA0KSIsIi0yMHB4IDAgMjVweCAtNXB4IHJnYmEoMCwgMCwgMCwgMC4zKSwgLTEwcHggMCAxMHB4IC01cHggcmdiYSgwLCAwLCAwLCAwLjIpIil9OwogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgfQoKICAgICAgLm1haW4uc2hvdyB7CiAgICAgICAgcG9pbnRlci1ldmVudHM6IGFsbDsKICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMHB4KTsKICAgICAgICBvcGFjaXR5OiAxOwogICAgICB9CgogICAgICAuaGVhZGVyIHsKICAgICAgICBwYWRkaW5nOiAyNHB4OwogICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAke20uYmRUaGVtZSgiI2U1ZTdlYiIsIiMyNzI3MmEiKX07CiAgICAgIH0KCiAgICAgIC5oZWFkaW5nIHsKICAgICAgICBmb250LXNpemU6IDE4cHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDsKICAgICAgICBsZXR0ZXItc3BhY2luZzogLTAuMDJlbTsKICAgICAgICBjb2xvcjogJHttLmJkVGhlbWUoIiMwOTA5MGIiLCIjZmFmYWZhIil9OwogICAgICAgIG1hcmdpbjogMDsKICAgICAgfQoKICAgICAgLm1lbnUtY29udGFpbmVyIHsKICAgICAgICBmbGV4OiAxOwogICAgICAgIG92ZXJmbG93LXk6IGF1dG87CiAgICAgICAgcGFkZGluZzogOHB4OwogICAgICB9CgogICAgICAubWVudUl0ZW0gewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBnYXA6IDEycHg7CiAgICAgICAgcGFkZGluZzogMTJweCAxNnB4OwogICAgICAgIG1hcmdpbi1ib3R0b206IDJweDsKICAgICAgICBib3JkZXItcmFkaXVzOiA2cHg7CiAgICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7CiAgICAgICAgY3Vyc29yOiBwb2ludGVyOwogICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjE1cyBlYXNlOwogICAgICAgIGNvbG9yOiAke20uYmRUaGVtZSgiIzcxNzE3YSIsIiNhMWExYWEiKX07CiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICAgIHVzZXItc2VsZWN0OiBub25lOwogICAgICB9CgogICAgICAubWVudUl0ZW06aG92ZXIgewogICAgICAgIGJhY2tncm91bmQ6ICR7bS5iZFRoZW1lKCIjZjRmNGY1IiwiIzI3MjcyYSIpfTsKICAgICAgICBjb2xvcjogJHttLmJkVGhlbWUoIiMwOTA5MGIiLCIjZmFmYWZhIil9OwogICAgICB9CgogICAgICAubWVudUl0ZW06YWN0aXZlIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke20uYmRUaGVtZSgiI2U1ZTdlYiIsIiMzZjNmNDYiKX07CiAgICAgICAgdHJhbnNmb3JtOiBzY2FsZSgwLjk4KTsKICAgICAgfQoKICAgICAgLm1lbnVJdGVtIGRlZXMtaWNvbiB7CiAgICAgICAgZmxleC1zaHJpbms6IDA7CiAgICAgICAgY29sb3I6ICR7bS5iZFRoZW1lKCIjNzE3MTdhIiwiIzcxNzE3YSIpfTsKICAgICAgICB0cmFuc2l0aW9uOiBjb2xvciAwLjE1cyBlYXNlOwogICAgICB9CgogICAgICAubWVudUl0ZW06aG92ZXIgZGVlcy1pY29uIHsKICAgICAgICBjb2xvcjogJHttLmJkVGhlbWUoIiMwOTA5MGIiLCIjZmFmYWZhIil9OwogICAgICB9CgogICAgICAubWVudUl0ZW0tdGV4dCB7CiAgICAgICAgZmxleDogMTsKICAgICAgICBsZXR0ZXItc3BhY2luZzogLTAuMDFlbTsKICAgICAgfQoKICAgICAgLm1lbnVJdGVtLWRpdmlkZXIgewogICAgICAgIGhlaWdodDogMXB4OwogICAgICAgIGJhY2tncm91bmQ6ICR7bS5iZFRoZW1lKCIjZTVlN2ViIiwiIzI3MjcyYSIpfTsKICAgICAgICBtYXJnaW46IDhweCAxNnB4OwogICAgICB9CgogICAgICAvKiBNb2JpbGUgcmVzcG9uc2l2ZW5lc3MgKi8KICAgICAgQG1lZGlhIChtYXgtd2lkdGg6IDQwMHB4KSB7CiAgICAgICAgLm1haW4gewogICAgICAgICAgbWF4LXdpZHRoOiAxMDB2dzsKICAgICAgICAgIHdpZHRoOiA4NXZ3OwogICAgICAgIH0KICAgICAgfQoKICAgICAgLyogQW5pbWF0aW9uIGZvciBtZW51IGl0ZW1zICovCiAgICAgIEBrZXlmcmFtZXMgc2xpZGVJblJpZ2h0IHsKICAgICAgICBmcm9tIHsKICAgICAgICAgIG9wYWNpdHk6IDA7CiAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMjBweCk7CiAgICAgICAgfQogICAgICAgIHRvIHsKICAgICAgICAgIG9wYWNpdHk6IDE7CiAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMCk7CiAgICAgICAgfQogICAgICB9CgogICAgICAubWFpbi5zaG93IC5tZW51SXRlbSB7CiAgICAgICAgYW5pbWF0aW9uOiBzbGlkZUluUmlnaHQgMC4zcyBlYXNlLW91dCBmb3J3YXJkczsKICAgICAgICBhbmltYXRpb24tZGVsYXk6IGNhbGModmFyKC0taXRlbS1pbmRleCwgMCkgKiAwLjA1cyk7CiAgICAgICAgb3BhY2l0eTogMDsKICAgICAgfQoKICAgICAgLyogU2Nyb2xsYmFyIHN0eWxpbmcgKi8KICAgICAgLm1lbnUtY29udGFpbmVyOjotd2Via2l0LXNjcm9sbGJhciB7CiAgICAgICAgd2lkdGg6IDZweDsKICAgICAgfQoKICAgICAgLm1lbnUtY29udGFpbmVyOjotd2Via2l0LXNjcm9sbGJhci10cmFjayB7CiAgICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7CiAgICAgIH0KCiAgICAgIC5tZW51LWNvbnRhaW5lcjo6LXdlYmtpdC1zY3JvbGxiYXItdGh1bWIgewogICAgICAgIGJhY2tncm91bmQ6ICR7bS5iZFRoZW1lKCIjZTVlN2ViIiwiIzNmM2Y0NiIpfTsKICAgICAgICBib3JkZXItcmFkaXVzOiAzcHg7CiAgICAgIH0KCiAgICAgIC5tZW51LWNvbnRhaW5lcjo6LXdlYmtpdC1zY3JvbGxiYXItdGh1bWI6aG92ZXIgewogICAgICAgIGJhY2tncm91bmQ6ICR7bS5iZFRoZW1lKCIjZDFkNWRiIiwiIzUyNTI1YiIpfTsKICAgICAgfQogICAgYF07cmVuZGVyKCl7cmV0dXJuIENgCiAgICAgIDxzdHlsZT4KICAgICAgICAubWFpbiB7CiAgICAgICAgICAtLXotaW5kZXg6ICR7dGhpcy5tb2JpbGVOYXZaSW5kZXh9OwogICAgICAgIH0KICAgICAgPC9zdHlsZT4KICAgICAgPGRpdiBjbGFzcz0ibWFpbiI+CiAgICAgICAgPGRpdiBjbGFzcz0iaGVhZGVyIj4KICAgICAgICAgIDxoMiBjbGFzcz0iaGVhZGluZyI+JHt0aGlzLmhlYWRpbmd9PC9oMj4KICAgICAgICA8L2Rpdj4KICAgICAgICA8ZGl2IGNsYXNzPSJtZW51LWNvbnRhaW5lciI+CiAgICAgICAgICAke3RoaXMubWVudUl0ZW1zLm1hcCgodixiKT0+ImRpdmlkZXIiaW4gdiYmdi5kaXZpZGVyP0NgPGRpdiBjbGFzcz0ibWVudUl0ZW0tZGl2aWRlciI+PC9kaXY+YDpDYAogICAgICAgICAgICAgIDxkaXYKICAgICAgICAgICAgICAgIGNsYXNzPSJtZW51SXRlbSIKICAgICAgICAgICAgICAgIHN0eWxlPSItLWl0ZW0taW5kZXg6ICR7Yn0iCiAgICAgICAgICAgICAgICBAY2xpY2s9IiR7KCk9Pnt0aGlzLmhpZGUoKSx2LmFjdGlvbih0aGlzKX19IgogICAgICAgICAgICAgID4KICAgICAgICAgICAgICAgICR7di5pY29uTmFtZT9DYAogICAgICAgICAgICAgICAgICA8ZGVlcy1pY29uIC5pY29uPSR7di5pY29uTmFtZX0gc2l6ZT0iMjAiPjwvZGVlcy1pY29uPgogICAgICAgICAgICAgICAgYDoiIn0KICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJtZW51SXRlbS10ZXh0Ij4ke3YubmFtZX08L3NwYW4+CiAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIGApfQogICAgICAgIDwvZGl2PgogICAgICA8L2Rpdj4KICAgIGB9d2luZG93TGF5ZXI7YXN5bmMgc2hvdygpe2xldCB2PWF3YWl0IHRoaXMuZG9tdG9vbHNQcm9taXNlLGI9dGhpcy5zaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3IoIi5tYWluIik7dGhpcy53aW5kb3dMYXllcj8oZG9jdW1lbnQuYm9keS5hcHBlbmQodGhpcy53aW5kb3dMYXllciksYXdhaXQgdGhpcy53aW5kb3dMYXllci5zaG93KCkpOih0aGlzLndpbmRvd0xheWVyPWF3YWl0ICRvLmNyZWF0ZUFuZFNob3coe2JsdXI6ITB9KSx0aGlzLndpbmRvd0xheWVyLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIiwoKT0+e3RoaXMuaGlkZSgpfSkpLHRoaXMubW9iaWxlTmF2WkluZGV4PUtyLmdldE5leHRaSW5kZXgoKSxLci5yZWdpc3Rlcih0aGlzLHRoaXMubW9iaWxlTmF2WkluZGV4KSxhd2FpdCB2LmNvbnZlbmllbmNlLnNtYXJ0ZGVsYXkuZGVsYXlGb3IoMTApLGIuY2xhc3NMaXN0LmFkZCgic2hvdyIpfWFzeW5jIGhpZGUoKXtsZXQgdj1hd2FpdCB0aGlzLmRvbXRvb2xzUHJvbWlzZTt0aGlzLnNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvcigiLm1haW4iKS5jbGFzc0xpc3QucmVtb3ZlKCJzaG93IiksS3IudW5yZWdpc3Rlcih0aGlzKSx0aGlzLndpbmRvd0xheWVyJiZhd2FpdCB0aGlzLndpbmRvd0xheWVyLmRlc3Ryb3koKX1hc3luYyBkaXNjb25uZWN0ZWRDYWxsYmFjaygpe3N1cGVyLmRpc2Nvbm5lY3RlZENhbGxiYWNrKCksS3IudW5yZWdpc3Rlcih0aGlzKSx0aGlzLndpbmRvd0xheWVyJiZhd2FpdCB0aGlzLndpbmRvd0xheWVyLmRlc3Ryb3koKX1zdGF0aWN7VmQoaSxyKX19O3JldHVybiB4PWl9KSgpfSk7dmFyIEpscj1wKCgpPT57UWxyKCl9KTt2YXIgS2xyPXAoKCk9PntqMnIoKTthNmUoKTtsc3IoKTtWbHIoKTtVbHIoKTtXbHIoKTtHbHIoKTtZbHIoKTtabHIoKTtKbHIoKX0pO3ZhciBlY3I9cCgoKT0+e0k0KCl9KTt2YXIgdGNyLFI2ZSxyY3IsaWNyPXAoKCk9Pnt4ZSgpO3Rjcj1mdW5jdGlvbihlLHQscixpLGEsbil7ZnVuY3Rpb24gbyh5KXtpZih5IT09dm9pZCAwJiZ0eXBlb2YgeSE9ImZ1bmN0aW9uIil0aHJvdyBuZXcgVHlwZUVycm9yKCJGdW5jdGlvbiBleHBlY3RlZCIpO3JldHVybiB5fWZvcih2YXIgcz1pLmtpbmQsbD1zPT09ImdldHRlciI/ImdldCI6cz09PSJzZXR0ZXIiPyJzZXQiOiJ2YWx1ZSIsYz0hdCYmZT9pLnN0YXRpYz9lOmUucHJvdG90eXBlOm51bGwsdT10fHwoYz9PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGMsaS5uYW1lKTp7fSksZCxoPSExLGY9ci5sZW5ndGgtMTtmPj0wO2YtLSl7dmFyIHg9e307Zm9yKHZhciB2IGluIGkpeFt2XT12PT09ImFjY2VzcyI/e306aVt2XTtmb3IodmFyIHYgaW4gaS5hY2Nlc3MpeC5hY2Nlc3Nbdl09aS5hY2Nlc3Nbdl07eC5hZGRJbml0aWFsaXplcj1mdW5jdGlvbih5KXtpZihoKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBhZGQgaW5pdGlhbGl6ZXJzIGFmdGVyIGRlY29yYXRpb24gaGFzIGNvbXBsZXRlZCIpO24ucHVzaChvKHl8fG51bGwpKX07dmFyIGI9KDAscltmXSkocz09PSJhY2Nlc3NvciI/e2dldDp1LmdldCxzZXQ6dS5zZXR9OnVbbF0seCk7aWYocz09PSJhY2Nlc3NvciIpe2lmKGI9PT12b2lkIDApY29udGludWU7aWYoYj09PW51bGx8fHR5cGVvZiBiIT0ib2JqZWN0Iil0aHJvdyBuZXcgVHlwZUVycm9yKCJPYmplY3QgZXhwZWN0ZWQiKTsoZD1vKGIuZ2V0KSkmJih1LmdldD1kKSwoZD1vKGIuc2V0KSkmJih1LnNldD1kKSwoZD1vKGIuaW5pdCkpJiZhLnVuc2hpZnQoZCl9ZWxzZShkPW8oYikpJiYocz09PSJmaWVsZCI/YS51bnNoaWZ0KGQpOnVbbF09ZCl9YyYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGMsaS5uYW1lLHUpLGg9ITB9LFI2ZT1mdW5jdGlvbihlLHQscil7Zm9yKHZhciBpPWFyZ3VtZW50cy5sZW5ndGg+MixhPTA7YTx0Lmxlbmd0aDthKyspcj1pP3RbYV0uY2FsbChlLHIpOnRbYV0uY2FsbChlKTtyZXR1cm4gaT9yOnZvaWQgMH0scmNyPSgoKT0+e2xldCBlPVt5ZSgiZGVlcy1idXR0b24tZXhpdCIpXSx0LHI9W10saSxhPXplLG4sbz1bXSxzPVtdO3ZhciBsPWNsYXNzIGV4dGVuZHMgYXtzdGF0aWN7aT10aGlzfXN0YXRpY3tsZXQgYz10eXBlb2YgU3ltYm9sPT0iZnVuY3Rpb24iJiZTeW1ib2wubWV0YWRhdGE/T2JqZWN0LmNyZWF0ZShhW1N5bWJvbC5tZXRhZGF0YV0/P251bGwpOnZvaWQgMDtuPVtqKHt0eXBlOk51bWJlcn0pXSx0Y3IodGhpcyxudWxsLG4se2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJzaXplIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczp1PT4ic2l6ZSJpbiB1LGdldDp1PT51LnNpemUsc2V0Oih1LGQpPT57dS5zaXplPWR9fSxtZXRhZGF0YTpjfSxvLHMpLHRjcihudWxsLHQ9e3ZhbHVlOml9LGUse2tpbmQ6ImNsYXNzIixuYW1lOmkubmFtZSxtZXRhZGF0YTpjfSxudWxsLHIpLGw9aT10LnZhbHVlLGMmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShpLFN5bWJvbC5tZXRhZGF0YSx7ZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITAsdmFsdWU6Y30pfXN0YXRpYyBkZW1vPSgpPT5DYAogICAgPGRlZXMtYnV0dG9uLWV4aXQ+PC9kZWVzLWJ1dHRvbi1leGl0PgogIGA7c3RhdGljIGRlbW9Hcm91cHM9WyJCdXR0b24iXTsjZT1SNmUodGhpcyxvLDI0KTtnZXQgc2l6ZSgpe3JldHVybiB0aGlzLiNlfXNldCBzaXplKGMpe3RoaXMuI2U9Y31zdHlsZXM9KFI2ZSh0aGlzLHMpLFttLmRlZmF1bHRTdHlsZXMsb2VgCgogICAgYF0pO3JlbmRlcigpe3JldHVybiBDYAogICAgICA8c3R5bGU+CiAgICAgICAgLm1haW5jb250YWluZXIgewogICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICAgICAgd2lkdGg6ICR7dGhpcy5zaXplfXB4OwogICAgICAgICAgaGVpZ2h0OiAke3RoaXMuc2l6ZX1weDsKICAgICAgICB9CiAgICAgIDwvc3R5bGU+CiAgICAgIDxkaXYgY2xhc3M9Im1haW5jb250YWluZXIiPgogICAgICAgIDxkaXYgY2xhc3M9ImZpcnN0TGluZSI+PC9kaXY+CiAgICAgICAgPGRpdiBjbGFzcz0ic2Vjb25kTGluZSI+PC9kaXY+CiAgICAgIDwvZGl2PgogICAgYH1zdGF0aWN7UjZlKGkscil9fTtyZXR1cm4gbD1pfSkoKX0pO3ZhciBhY3I9cCgoKT0+e2ljcigpfSk7dmFyIG5jcixvY3I9cCgoKT0+e3hlKCk7bmNyPSgpPT5DYAogICAgPHN0eWxlPgogICAgICAke29lYAogICAgICAgIC5kZW1vQm94IHsKICAgICAgICAgIGJhY2tncm91bmQ6ICMwMDAwMDA7CiAgICAgICAgICBwYWRkaW5nOiA0MHB4OwogICAgICAgICAgbWluLWhlaWdodDogMTAwdmg7CiAgICAgICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94OwogICAgICAgIH0KCiAgICAgICAgLmRlbW8tc2VjdGlvbiB7CiAgICAgICAgICBtYXJnaW4tYm90dG9tOiAzMnB4OwogICAgICAgIH0KCiAgICAgICAgLmRlbW8tdGl0bGUgewogICAgICAgICAgY29sb3I6ICNmZmY7CiAgICAgICAgICBmb250LXNpemU6IDIwcHg7CiAgICAgICAgICBmb250LXdlaWdodDogNjAwOwogICAgICAgICAgbWFyZ2luLWJvdHRvbTogMTZweDsKICAgICAgICAgIGZvbnQtZmFtaWx5OiAnR2Vpc3QgU2FucycsIHNhbnMtc2VyaWY7CiAgICAgICAgfQoKICAgICAgICAuZGVtby1kZXNjcmlwdGlvbiB7CiAgICAgICAgICBjb2xvcjogIzk5OTsKICAgICAgICAgIGZvbnQtc2l6ZTogMTRweDsKICAgICAgICAgIG1hcmdpbi1ib3R0b206IDI0cHg7CiAgICAgICAgICBmb250LWZhbWlseTogJ0dlaXN0IFNhbnMnLCBzYW5zLXNlcmlmOwogICAgICAgIH0KICAgICAgYH0KICAgIDwvc3R5bGU+CiAgICA8ZGl2IGNsYXNzPSJkZW1vQm94Ij4KICAgICAgPGRpdiBjbGFzcz0iZGVtby1zZWN0aW9uIj4KICAgICAgICA8aDIgY2xhc3M9ImRlbW8tdGl0bGUiPkJhc2ljIEJ1dHRvbiBHcm91cHM8L2gyPgogICAgICAgIDxwIGNsYXNzPSJkZW1vLWRlc2NyaXB0aW9uIj5CdXR0b24gZ3JvdXBzIHdpdGhvdXQgbGFiZWxzIGZvciBzaW1wbGUgZ3JvdXBpbmc8L3A+CiAgICAgICAgCiAgICAgICAgPGRlZXMtYnV0dG9uLWdyb3VwPgogICAgICAgICAgPGRlZXMtYnV0dG9uPk9wdGlvbiAxPC9kZWVzLWJ1dHRvbj4KICAgICAgICAgIDxkZWVzLWJ1dHRvbj5PcHRpb24gMjwvZGVlcy1idXR0b24+CiAgICAgICAgICA8ZGVlcy1idXR0b24+T3B0aW9uIDM8L2RlZXMtYnV0dG9uPgogICAgICAgIDwvZGVlcy1idXR0b24tZ3JvdXA+CiAgICAgIDwvZGl2PgoKICAgICAgPGRpdiBjbGFzcz0iZGVtby1zZWN0aW9uIj4KICAgICAgICA8aDIgY2xhc3M9ImRlbW8tdGl0bGUiPkxhYmVsZWQgQnV0dG9uIEdyb3VwczwvaDI+CiAgICAgICAgPHAgY2xhc3M9ImRlbW8tZGVzY3JpcHRpb24iPkJ1dHRvbiBncm91cHMgd2l0aCBkZXNjcmlwdGl2ZSBsYWJlbHM8L3A+CiAgICAgICAgCiAgICAgICAgPGRlZXMtYnV0dG9uLWdyb3VwIGxhYmVsPSJWaWV3IE1vZGU6Ij4KICAgICAgICAgIDxkZWVzLWJ1dHRvbiB0eXBlPSJoaWdobGlnaHRlZCI+R3JpZDwvZGVlcy1idXR0b24+CiAgICAgICAgICA8ZGVlcy1idXR0b24+TGlzdDwvZGVlcy1idXR0b24+CiAgICAgICAgICA8ZGVlcy1idXR0b24+Q2FyZHM8L2RlZXMtYnV0dG9uPgogICAgICAgIDwvZGVlcy1idXR0b24tZ3JvdXA+CiAgICAgIDwvZGl2PgoKICAgICAgPGRpdiBjbGFzcz0iZGVtby1zZWN0aW9uIj4KICAgICAgICA8aDIgY2xhc3M9ImRlbW8tdGl0bGUiPk11bHRpcGxlIEdyb3VwczwvaDI+CiAgICAgICAgPHAgY2xhc3M9ImRlbW8tZGVzY3JpcHRpb24iPk11bHRpcGxlIGJ1dHRvbiBncm91cHMgdXNlZCB0b2dldGhlcjwvcD4KICAgICAgICAKICAgICAgICA8ZGl2IHN0eWxlPSJkaXNwbGF5OiBmbGV4OyBnYXA6IDE2cHg7IGZsZXgtd3JhcDogd3JhcDsiPgogICAgICAgICAgPGRlZXMtYnV0dG9uLWdyb3VwIGxhYmVsPSJEYXRhc2V0OiI+CiAgICAgICAgICAgIDxkZWVzLWJ1dHRvbiB0eXBlPSJoaWdobGlnaHRlZCI+U3lzdGVtPC9kZWVzLWJ1dHRvbj4KICAgICAgICAgICAgPGRlZXMtYnV0dG9uPk5ldHdvcms8L2RlZXMtYnV0dG9uPgogICAgICAgICAgICA8ZGVlcy1idXR0b24+U2FsZXM8L2RlZXMtYnV0dG9uPgogICAgICAgICAgPC9kZWVzLWJ1dHRvbi1ncm91cD4KICAgICAgICAgIAogICAgICAgICAgPGRlZXMtYnV0dG9uLWdyb3VwIGxhYmVsPSJUaW1lIFJhbmdlOiI+CiAgICAgICAgICAgIDxkZWVzLWJ1dHRvbj4xSDwvZGVlcy1idXR0b24+CiAgICAgICAgICAgIDxkZWVzLWJ1dHRvbiB0eXBlPSJoaWdobGlnaHRlZCI+MjRIPC9kZWVzLWJ1dHRvbj4KICAgICAgICAgICAgPGRlZXMtYnV0dG9uPjdEPC9kZWVzLWJ1dHRvbj4KICAgICAgICAgICAgPGRlZXMtYnV0dG9uPjMwRDwvZGVlcy1idXR0b24+CiAgICAgICAgICA8L2RlZXMtYnV0dG9uLWdyb3VwPgogICAgICAgICAgCiAgICAgICAgICA8ZGVlcy1idXR0b24tZ3JvdXAgbGFiZWw9IkFjdGlvbnM6Ij4KICAgICAgICAgICAgPGRlZXMtYnV0dG9uPlJlZnJlc2g8L2RlZXMtYnV0dG9uPgogICAgICAgICAgICA8ZGVlcy1idXR0b24+RXhwb3J0PC9kZWVzLWJ1dHRvbj4KICAgICAgICAgIDwvZGVlcy1idXR0b24tZ3JvdXA+CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGl2PgoKICAgICAgPGRpdiBjbGFzcz0iZGVtby1zZWN0aW9uIj4KICAgICAgICA8aDIgY2xhc3M9ImRlbW8tdGl0bGUiPlZlcnRpY2FsIEJ1dHRvbiBHcm91cHM8L2gyPgogICAgICAgIDxwIGNsYXNzPSJkZW1vLWRlc2NyaXB0aW9uIj5CdXR0b24gZ3JvdXBzIHdpdGggdmVydGljYWwgbGF5b3V0PC9wPgogICAgICAgIAogICAgICAgIDxkaXYgc3R5bGU9ImRpc3BsYXk6IGZsZXg7IGdhcDogMjRweDsiPgogICAgICAgICAgPGRlZXMtYnV0dG9uLWdyb3VwIGRpcmVjdGlvbj0idmVydGljYWwiIGxhYmVsPSJOYXZpZ2F0aW9uOiI+CiAgICAgICAgICAgIDxkZWVzLWJ1dHRvbj5EYXNoYm9hcmQ8L2RlZXMtYnV0dG9uPgogICAgICAgICAgICA8ZGVlcy1idXR0b24gdHlwZT0iaGlnaGxpZ2h0ZWQiPkFuYWx5dGljczwvZGVlcy1idXR0b24+CiAgICAgICAgICAgIDxkZWVzLWJ1dHRvbj5SZXBvcnRzPC9kZWVzLWJ1dHRvbj4KICAgICAgICAgICAgPGRlZXMtYnV0dG9uPlNldHRpbmdzPC9kZWVzLWJ1dHRvbj4KICAgICAgICAgIDwvZGVlcy1idXR0b24tZ3JvdXA+CiAgICAgICAgICAKICAgICAgICAgIDxkZWVzLWJ1dHRvbi1ncm91cCBkaXJlY3Rpb249InZlcnRpY2FsIj4KICAgICAgICAgICAgPGRlZXMtYnV0dG9uPkFkZCBJdGVtPC9kZWVzLWJ1dHRvbj4KICAgICAgICAgICAgPGRlZXMtYnV0dG9uPkVkaXQgSXRlbTwvZGVlcy1idXR0b24+CiAgICAgICAgICAgIDxkZWVzLWJ1dHRvbj5EZWxldGUgSXRlbTwvZGVlcy1idXR0b24+CiAgICAgICAgICA8L2RlZXMtYnV0dG9uLWdyb3VwPgogICAgICAgIDwvZGl2PgogICAgICA8L2Rpdj4KCiAgICAgIDxkaXYgY2xhc3M9ImRlbW8tc2VjdGlvbiI+CiAgICAgICAgPGgyIGNsYXNzPSJkZW1vLXRpdGxlIj5NaXhlZCBCdXR0b24gVHlwZXM8L2gyPgogICAgICAgIDxwIGNsYXNzPSJkZW1vLWRlc2NyaXB0aW9uIj5EaWZmZXJlbnQgYnV0dG9uIHR5cGVzIHdpdGhpbiBncm91cHM8L3A+CiAgICAgICAgCiAgICAgICAgPGRlZXMtYnV0dG9uLWdyb3VwIGxhYmVsPSJTdGF0dXM6Ij4KICAgICAgICAgIDxkZWVzLWJ1dHRvbiB0eXBlPSJzdWNjZXNzIj5BY3RpdmU8L2RlZXMtYnV0dG9uPgogICAgICAgICAgPGRlZXMtYnV0dG9uPlBlbmRpbmc8L2RlZXMtYnV0dG9uPgogICAgICAgICAgPGRlZXMtYnV0dG9uIHR5cGU9ImRhbmdlciI+SW5hY3RpdmU8L2RlZXMtYnV0dG9uPgogICAgICAgIDwvZGVlcy1idXR0b24tZ3JvdXA+CiAgICAgIDwvZGl2PgogICAgPC9kaXY+CiAgYH0pO3ZhciBCNmUsbWIsc2NyLGxjcj1wKCgpPT57eGUoKTtLdCgpO29jcigpO0plKCk7QjZlPWZ1bmN0aW9uKGUsdCxyLGksYSxuKXtmdW5jdGlvbiBvKHkpe2lmKHkhPT12b2lkIDAmJnR5cGVvZiB5IT0iZnVuY3Rpb24iKXRocm93IG5ldyBUeXBlRXJyb3IoIkZ1bmN0aW9uIGV4cGVjdGVkIik7cmV0dXJuIHl9Zm9yKHZhciBzPWkua2luZCxsPXM9PT0iZ2V0dGVyIj8iZ2V0IjpzPT09InNldHRlciI/InNldCI6InZhbHVlIixjPSF0JiZlP2kuc3RhdGljP2U6ZS5wcm90b3R5cGU6bnVsbCx1PXR8fChjP09iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoYyxpLm5hbWUpOnt9KSxkLGg9ITEsZj1yLmxlbmd0aC0xO2Y+PTA7Zi0tKXt2YXIgeD17fTtmb3IodmFyIHYgaW4gaSl4W3ZdPXY9PT0iYWNjZXNzIj97fTppW3ZdO2Zvcih2YXIgdiBpbiBpLmFjY2Vzcyl4LmFjY2Vzc1t2XT1pLmFjY2Vzc1t2XTt4LmFkZEluaXRpYWxpemVyPWZ1bmN0aW9uKHkpe2lmKGgpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGFkZCBpbml0aWFsaXplcnMgYWZ0ZXIgZGVjb3JhdGlvbiBoYXMgY29tcGxldGVkIik7bi5wdXNoKG8oeXx8bnVsbCkpfTt2YXIgYj0oMCxyW2ZdKShzPT09ImFjY2Vzc29yIj97Z2V0OnUuZ2V0LHNldDp1LnNldH06dVtsXSx4KTtpZihzPT09ImFjY2Vzc29yIil7aWYoYj09PXZvaWQgMCljb250aW51ZTtpZihiPT09bnVsbHx8dHlwZW9mIGIhPSJvYmplY3QiKXRocm93IG5ldyBUeXBlRXJyb3IoIk9iamVjdCBleHBlY3RlZCIpOyhkPW8oYi5nZXQpKSYmKHUuZ2V0PWQpLChkPW8oYi5zZXQpKSYmKHUuc2V0PWQpLChkPW8oYi5pbml0KSkmJmEudW5zaGlmdChkKX1lbHNlKGQ9byhiKSkmJihzPT09ImZpZWxkIj9hLnVuc2hpZnQoZCk6dVtsXT1kKX1jJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoYyxpLm5hbWUsdSksaD0hMH0sbWI9ZnVuY3Rpb24oZSx0LHIpe2Zvcih2YXIgaT1hcmd1bWVudHMubGVuZ3RoPjIsYT0wO2E8dC5sZW5ndGg7YSsrKXI9aT90W2FdLmNhbGwoZSxyKTp0W2FdLmNhbGwoZSk7cmV0dXJuIGk/cjp2b2lkIDB9LHNjcj0oKCk9PntsZXQgZT1beWUoImRlZXMtYnV0dG9uLWdyb3VwIildLHQscj1bXSxpLGE9emUsbixvPVtdLHM9W10sbCxjPVtdLHU9W107dmFyIGQ9Y2xhc3MgZXh0ZW5kcyBhe3N0YXRpY3tpPXRoaXN9c3RhdGlje2xldCBoPXR5cGVvZiBTeW1ib2w9PSJmdW5jdGlvbiImJlN5bWJvbC5tZXRhZGF0YT9PYmplY3QuY3JlYXRlKGFbU3ltYm9sLm1ldGFkYXRhXT8/bnVsbCk6dm9pZCAwO249W2ooKV0sbD1baigpXSxCNmUodGhpcyxudWxsLG4se2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJsYWJlbCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6Zj0+ImxhYmVsImluIGYsZ2V0OmY9PmYubGFiZWwsc2V0OihmLHgpPT57Zi5sYWJlbD14fX0sbWV0YWRhdGE6aH0sbyxzKSxCNmUodGhpcyxudWxsLGwse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJkaXJlY3Rpb24iLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmY9PiJkaXJlY3Rpb24iaW4gZixnZXQ6Zj0+Zi5kaXJlY3Rpb24sc2V0OihmLHgpPT57Zi5kaXJlY3Rpb249eH19LG1ldGFkYXRhOmh9LGMsdSksQjZlKG51bGwsdD17dmFsdWU6aX0sZSx7a2luZDoiY2xhc3MiLG5hbWU6aS5uYW1lLG1ldGFkYXRhOmh9LG51bGwsciksZD1pPXQudmFsdWUsaCYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGksU3ltYm9sLm1ldGFkYXRhLHtlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMCx2YWx1ZTpofSl9c3RhdGljIGRlbW89bmNyO3N0YXRpYyBkZW1vR3JvdXBzPVsiQnV0dG9uIl07I2U9bWIodGhpcyxvLCIiKTtnZXQgbGFiZWwoKXtyZXR1cm4gdGhpcy4jZX1zZXQgbGFiZWwoaCl7dGhpcy4jZT1ofSN0PShtYih0aGlzLHMpLG1iKHRoaXMsYywiaG9yaXpvbnRhbCIpKTtnZXQgZGlyZWN0aW9uKCl7cmV0dXJuIHRoaXMuI3R9c2V0IGRpcmVjdGlvbihoKXt0aGlzLiN0PWh9Y29uc3RydWN0b3IoKXtzdXBlcigpLG1iKHRoaXMsdSksZDEuc2V0dXAoKX1zdGF0aWMgc3R5bGVzPVtEZSxtLmRlZmF1bHRTdHlsZXMsb2VgCiAgICAgIC8qIFRPRE86IE1pZ3JhdGUgaGFyZGNvZGVkIHZhbHVlcyB0byAtLWRlZXMtKiBDU1MgdmFyaWFibGVzICovCiAgICAgIDpob3N0IHsKICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7CiAgICAgIH0KCiAgICAgIC5idXR0b24tZ3JvdXAgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgZ2FwOiA4cHg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBwYWRkaW5nOiA4cHg7CiAgICAgICAgYmFja2dyb3VuZDogJHttLmJkVGhlbWUoInJnYmEoMCwgMCwgMCwgMC4wNSkiLCJyZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMDUpIil9OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDZweDsKICAgICAgfQoKICAgICAgLmJ1dHRvbi1ncm91cC52ZXJ0aWNhbCB7CiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgICBhbGlnbi1pdGVtczogc3RyZXRjaDsKICAgICAgfQoKICAgICAgLmxhYmVsIHsKICAgICAgICBjb2xvcjogJHttLmJkVGhlbWUoIiM2NjYiLCIjOTk5Iil9OwogICAgICAgIGZvbnQtc2l6ZTogMTJweDsKICAgICAgICBmb250LWZhbWlseTogJ0dlaXN0IFNhbnMnLCBzYW5zLXNlcmlmOwogICAgICAgIG1hcmdpbi1yaWdodDogOHB4OwogICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7CiAgICAgIH0KCiAgICAgIC5idXR0b24tZ3JvdXAudmVydGljYWwgLmxhYmVsIHsKICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7CiAgICAgICAgbWFyZ2luLWJvdHRvbTogOHB4OwogICAgICB9CgogICAgICA6OnNsb3R0ZWQoKikgewogICAgICAgIG1hcmdpbjogMCAhaW1wb3J0YW50OwogICAgICB9CiAgICBgXTtyZW5kZXIoKXtyZXR1cm4gQ2AKICAgICAgPGRpdiBjbGFzcz0iYnV0dG9uLWdyb3VwICR7dGhpcy5kaXJlY3Rpb259Ij4KICAgICAgICAke3RoaXMubGFiZWw/Q2A8c3BhbiBjbGFzcz0ibGFiZWwiPiR7dGhpcy5sYWJlbH08L3NwYW4+YDoiIn0KICAgICAgICA8c2xvdD48L3Nsb3Q+CiAgICAgIDwvZGl2PgogICAgYH1zdGF0aWN7bWIoaSxyKX19O3JldHVybiBkPWl9KSgpfSk7dmFyIGNjcj1wKCgpPT57bGNyKCl9KTt2YXIgZGNyPXAoKCk9PntlY3IoKTthY3IoKTtjY3IoKX0pO3ZhciB1Y3IscGNyPXAoKCk9Pnt4ZSgpO3AxKCk7SDZlKCk7dWNyPSgpPT57bGV0IGU9e3N5c3RlbTp7bGFiZWw6IlN5c3RlbSBVc2FnZSAoJSkiLHNlcmllczpbe25hbWU6IkNQVSIsZGF0YTpbe3g6bmV3IERhdGUoRGF0ZS5ub3coKS0zZTUpLnRvSVNPU3RyaW5nKCkseToyNX0se3g6bmV3IERhdGUoRGF0ZS5ub3coKS0yNGU0KS50b0lTT1N0cmluZygpLHk6MzB9LHt4Om5ldyBEYXRlKERhdGUubm93KCktMThlNCkudG9JU09TdHJpbmcoKSx5OjI4fSx7eDpuZXcgRGF0ZShEYXRlLm5vdygpLTEyZTQpLnRvSVNPU3RyaW5nKCkseTozNX0se3g6bmV3IERhdGUoRGF0ZS5ub3coKS02ZTQpLnRvSVNPU3RyaW5nKCkseTozMn0se3g6bmV3IERhdGUoKS50b0lTT1N0cmluZygpLHk6Mzh9XX0se25hbWU6Ik1lbW9yeSIsZGF0YTpbe3g6bmV3IERhdGUoRGF0ZS5ub3coKS0zZTUpLnRvSVNPU3RyaW5nKCkseTo0NX0se3g6bmV3IERhdGUoRGF0ZS5ub3coKS0yNGU0KS50b0lTT1N0cmluZygpLHk6NDh9LHt4Om5ldyBEYXRlKERhdGUubm93KCktMThlNCkudG9JU09TdHJpbmcoKSx5OjQ2fSx7eDpuZXcgRGF0ZShEYXRlLm5vdygpLTEyZTQpLnRvSVNPU3RyaW5nKCkseTo1Mn0se3g6bmV3IERhdGUoRGF0ZS5ub3coKS02ZTQpLnRvSVNPU3RyaW5nKCkseTo1MH0se3g6bmV3IERhdGUoKS50b0lTT1N0cmluZygpLHk6NTV9XX1dfX0sdD17c3lzdGVtOnI9PmAke3J9JWB9O3JldHVybiBDYAogICAgPGRlZXMtZGVtb3dyYXBwZXIgLnJ1bkFmdGVyUmVuZGVyPSR7YXN5bmMgcj0+e2xldCBpPXIucXVlcnlTZWxlY3RvcigiI21haW4tY2hhcnQiKSxhPXIucXVlcnlTZWxlY3RvcigiI2Nvbm5lY3Rpb25zLWNoYXJ0IiksbixvLHM9InN5c3RlbSIsbD17c3lzdGVtOlM9PmAke1N9JWAsbmV0d29yazpTPT5gJHtTfSBNYnBzYCxzYWxlczpTPT5gJCR7Uy50b0xvY2FsZVN0cmluZygpfWB9LGM9MTIwKjFlMyx1PTFlMyxkPTVlMyxoPXtjcHU6MzAsbWVtb3J5OjUwLGRvd25sb2FkOjE1MCx1cGxvYWQ6MzAsY29ubmVjdGlvbnM6MTUwfSxmPShTLCQsVD1kKT0+e2xldCBFPVtdLHE9RGF0ZS5ub3coKSxCPU1hdGguZmxvb3IoYy9UKTtmb3IobGV0IEc9QjtHPj0wO0ctLSl7bGV0IGVlPW5ldyBEYXRlKHEtRypUKS50b0lTT1N0cmluZygpLFA9UysoTWF0aC5yYW5kb20oKS0uNSkqJDtFLnB1c2goe3g6ZWUseTpNYXRoLnJvdW5kKFApfSl9cmV0dXJuIEV9LHg9e3N5c3RlbTp7bGFiZWw6IlN5c3RlbSBVc2FnZSAoJSkiLHNlcmllczpbe25hbWU6IkNQVSIsZGF0YTpmKGguY3B1LDEwKX0se25hbWU6Ik1lbW9yeSIsZGF0YTpmKGgubWVtb3J5LDgpfV19LG5ldHdvcms6e2xhYmVsOiJOZXR3b3JrIFRyYWZmaWMgKE1icHMpIixzZXJpZXM6W3tuYW1lOiJEb3dubG9hZCIsZGF0YTpmKGguZG93bmxvYWQsMzApfSx7bmFtZToiVXBsb2FkIixkYXRhOmYoaC51cGxvYWQsMTApfV19LHNhbGVzOntsYWJlbDoiU2FsZXMgQW5hbHl0aWNzIixzZXJpZXM6W3tuYW1lOiJSZXZlbnVlIixkYXRhOlt7eDoiMjAyNS0wMS0wMSIseTo0NWUzfSx7eDoiMjAyNS0wMS0wMiIseTo1MmUzfSx7eDoiMjAyNS0wMS0wMyIseTo0OGUzfSx7eDoiMjAyNS0wMS0wNCIseTo2MWUzfSx7eDoiMjAyNS0wMS0wNSIseTo1OGUzfSx7eDoiMjAyNS0wMS0wNiIseTo2NWUzfV19LHtuYW1lOiJQcm9maXQiLGRhdGE6W3t4OiIyMDI1LTAxLTAxIix5OjEyZTN9LHt4OiIyMDI1LTAxLTAyIix5OjE0ZTN9LHt4OiIyMDI1LTAxLTAzIix5OjExZTN9LHt4OiIyMDI1LTAxLTA0Iix5OjE4ZTN9LHt4OiIyMDI1LTAxLTA1Iix5OjE2ZTN9LHt4OiIyMDI1LTAxLTA2Iix5OjJlNH1dfV19fSx2PShTLCQsVCxFPTUpPT57bGV0IHE9KE1hdGgucmFuZG9tKCktLjUpKkUqMixCPVMrcSxlZT0oKCQrVCkvMi1CKSouMTtyZXR1cm4gQis9ZWUsQj1NYXRoLm1heCgkLE1hdGgubWluKFQsQikpLE1hdGgucm91bmQoQil9LGI9RGF0ZS5ub3coKSx5PURhdGUubm93KCksdz0oKT0+e2lmKCFpKXJldHVybjtsZXQgUz1EYXRlLm5vdygpO2lmKFMtYj49ZCl7Yj1TO2xldCBUPW5ldyBEYXRlKFMpLnRvSVNPU3RyaW5nKCk7aWYocz09PSJzeXN0ZW0iKXtoLmNwdT12KGguY3B1LDIwLDUwLDMpLGgubWVtb3J5PXYoaC5tZW1vcnksNDAsNzAsMik7bGV0IEU9aS5jaGFydFNlcmllcy5tYXAoKHEsQik9Pih7bmFtZTpxLm5hbWUsZGF0YTpbLi4ucS5kYXRhLEI9PT0wP3t4OlQseTpoLmNwdX06e3g6VCx5OmgubWVtb3J5fV19KSk7aS51cGRhdGVTZXJpZXMoRSwhMSl9ZWxzZSBpZihzPT09Im5ldHdvcmsiKXtoLmRvd25sb2FkPXYoaC5kb3dubG9hZCwxMDAsMjAwLDEwKSxoLnVwbG9hZD12KGgudXBsb2FkLDIwLDUwLDUpO2xldCBFPWkuY2hhcnRTZXJpZXMubWFwKChxLEIpPT4oe25hbWU6cS5uYW1lLGRhdGE6Wy4uLnEuZGF0YSxCPT09MD97eDpULHk6aC5kb3dubG9hZH06e3g6VCx5OmgudXBsb2FkfV19KSk7aS51cGRhdGVTZXJpZXMoRSwhMSl9fX0saz0oKT0+e2lmKCFhKXJldHVybjtsZXQgUz1EYXRlLm5vdygpLCQ9bmV3IERhdGUoUykudG9JU09TdHJpbmcoKSxUPU1hdGguZmxvb3IoTWF0aC5yYW5kb20oKSoyMSktMTA7aC5jb25uZWN0aW9ucz1NYXRoLm1heCg1MCxNYXRoLm1pbigzMDAsaC5jb25uZWN0aW9ucytUKSk7bGV0IEU9YS5jaGFydFNlcmllcyxxPVt7bmFtZTpFWzBdPy5uYW1lfHwiQ29ubmVjdGlvbnMiLGRhdGE6Wy4uLkVbMF0/LmRhdGF8fFtdLHt4OiQseTpoLmNvbm5lY3Rpb25zfV19XTthLnVwZGF0ZVNlcmllcyhxLCExKX0sTz1TPT57cz1TO2xldCAkPXhbU107aS5sYWJlbD0kLmxhYmVsLGkuc2VyaWVzPSQuc2VyaWVzLGkueUF4aXNGb3JtYXR0ZXI9bFtTXSxTPT09InN5c3RlbSI/KGkueUF4aXNTY2FsaW5nPSJwZXJjZW50YWdlIixpLnlBeGlzTWF4PTEwMCk6aS55QXhpc1NjYWxpbmc9ImR5bmFtaWMiLGI9RGF0ZS5ub3coKS1kfSx6PSgpPT57IW4mJihzPT09InN5c3RlbSJ8fHM9PT0ibmV0d29yayIpJiYoaS5yZWFsdGltZU1vZGU9ITAsbj13aW5kb3cuc2V0SW50ZXJ2YWwoKCk9PncoKSxkKSksb3x8KGEucmVhbHRpbWVNb2RlPSEwLG89d2luZG93LnNldEludGVydmFsKCgpPT5rKCksdSkpfSxNPSgpPT57biYmKHdpbmRvdy5jbGVhckludGVydmFsKG4pLG49bnVsbCxpLnJlYWx0aW1lTW9kZT0hMSksbyYmKHdpbmRvdy5jbGVhckludGVydmFsKG8pLG89bnVsbCxhLnJlYWx0aW1lTW9kZT0hMSl9LEY9KCk9PntzPT09InN5c3RlbSI/KGguY3B1PU1hdGgucmFuZG9tKCk+LjU/ODU6MjUsaC5tZW1vcnk9TWF0aC5yYW5kb20oKT4uNT84MDo0NSk6cz09PSJuZXR3b3JrIiYmKGguZG93bmxvYWQ9TWF0aC5yYW5kb20oKT4uNT8yNTA6MTAwLGgudXBsb2FkPU1hdGgucmFuZG9tKCk+LjU/ODA6MjApLGguY29ubmVjdGlvbnM9TWF0aC5yYW5kb20oKT4uNT8yODA6ODAsYj0wLHk9MH0sRD1yLnF1ZXJ5U2VsZWN0b3JBbGwoImRlZXMtYnV0dG9uIik7RC5mb3JFYWNoKFM9PntsZXQgJD1TLnRleHRDb250ZW50Py50cmltKCk7JD09PSJTeXN0ZW0gVXNhZ2UiP1MuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLCgpPT5PKCJzeXN0ZW0iKSk6JD09PSJOZXR3b3JrIFRyYWZmaWMiP1MuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLCgpPT5PKCJuZXR3b3JrIikpOiQ9PT0iU2FsZXMgRGF0YSI/Uy5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsKCk9Pk8oInNhbGVzIikpOiQ9PT0iU3RhcnQgTGl2ZSI/Uy5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsKCk9PnooKSk6JD09PSJTdG9wIExpdmUiP1MuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLCgpPT5NKCkpOiQ9PT0iU3Bpa2UgVmFsdWVzIiYmUy5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsKCk9PkYoKSl9KTtsZXQgTj0oKT0+e3IucXVlcnlTZWxlY3RvckFsbCgiZGVlcy1idXR0b24iKS5mb3JFYWNoKCQ9PntsZXQgVD0kLnRleHRDb250ZW50Py50cmltKCk7VD09PSJTeXN0ZW0gVXNhZ2UiPyQudHlwZT1zPT09InN5c3RlbSI/ImhpZ2hsaWdodGVkIjoibm9ybWFsIjpUPT09Ik5ldHdvcmsgVHJhZmZpYyI/JC50eXBlPXM9PT0ibmV0d29yayI/ImhpZ2hsaWdodGVkIjoibm9ybWFsIjpUPT09IlNhbGVzIERhdGEiJiYoJC50eXBlPXM9PT0ic2FsZXMiPyJoaWdobGlnaHRlZCI6Im5vcm1hbCIpfSl9O2kucm9sbGluZ1dpbmRvdz1jLGkucmVhbHRpbWVNb2RlPSExLGkueUF4aXNTY2FsaW5nPSJwZXJjZW50YWdlIixpLnlBeGlzTWF4PTEwMCxpLmF1dG9TY3JvbGxJbnRlcnZhbD0xZTMsc2V0VGltZW91dCgoKT0+e2kudXBkYXRlVGltZVdpbmRvdygpfSwxMDApO2xldCBSPU8sXz1TPT57UihTKSxOKCl9O2lmKEQuZm9yRWFjaChTPT57bGV0ICQ9Uy50ZXh0Q29udGVudD8udHJpbSgpOyQ9PT0iU3lzdGVtIFVzYWdlIj8oUy5yZW1vdmVFdmVudExpc3RlbmVyKCJjbGljayIsKCk9Pk8oInN5c3RlbSIpKSxTLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIiwoKT0+Xygic3lzdGVtIikpKTokPT09Ik5ldHdvcmsgVHJhZmZpYyI/KFMucmVtb3ZlRXZlbnRMaXN0ZW5lcigiY2xpY2siLCgpPT5PKCJuZXR3b3JrIikpLFMuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLCgpPT5fKCJuZXR3b3JrIikpKTokPT09IlNhbGVzIERhdGEiJiYoUy5yZW1vdmVFdmVudExpc3RlbmVyKCJjbGljayIsKCk9Pk8oInNhbGVzIikpLFMuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLCgpPT5fKCJzYWxlcyIpKSl9KSxhKXtsZXQgUz1mKGguY29ubmVjdGlvbnMsMzAsdSk7YS5zZXJpZXM9W3tuYW1lOiJDb25uZWN0aW9ucyIsZGF0YTpTfV0sYS5yb2xsaW5nV2luZG93PWMsYS5yZWFsdGltZU1vZGU9ITEsYS55QXhpc1NjYWxpbmc9ImZpeGVkIixhLnlBeGlzTWF4PTM1MCxhLmF1dG9TY3JvbGxJbnRlcnZhbD0xZTMsc2V0VGltZW91dCgoKT0+e2EudXBkYXRlVGltZVdpbmRvdygpfSwxMDApfX19PgogICAgICA8c3R5bGU+CiAgICAgICAgJHtvZWAKICAgICAgICAuZGVtb0JveCB7CiAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgICAgICBiYWNrZ3JvdW5kOiAke20uYmRUaGVtZSgiaHNsKDAgMCUgOTUlKSIsImhzbCgwIDAlIDklKSIpfTsKICAgICAgICAgIGhlaWdodDogMTAwJTsKICAgICAgICAgIHdpZHRoOiAxMDAlOwogICAgICAgICAgcGFkZGluZzogNDBweDsKICAgICAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7CiAgICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgICAgIGdhcDogMjRweDsKICAgICAgICB9CiAgICAgICAgCiAgICAgICAgLmNvbnRyb2xzIHsKICAgICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgICBmbGV4LXdyYXA6IHdyYXA7CiAgICAgICAgICBnYXA6IDEycHg7CiAgICAgICAgICBtYXJnaW4tYm90dG9tOiA4cHg7CiAgICAgICAgfQogICAgICAgIAogICAgICAgIC5jaGFydC1jb250YWluZXIgewogICAgICAgICAgZmxleDogMTsKICAgICAgICAgIG1pbi1oZWlnaHQ6IDQwMHB4OwogICAgICAgIH0KICAgICAgICAKICAgICAgICAuaW5mbyB7CiAgICAgICAgICBjb2xvcjogJHttLmJkVGhlbWUoImhzbCgyMTUuNCAxNi4zJSA1Ni45JSkiLCJoc2woMjE1IDIwLjIlIDU1LjElKSIpfTsKICAgICAgICAgIGZvbnQtc2l6ZTogMTJweDsKICAgICAgICAgIGZvbnQtZmFtaWx5OiAtYXBwbGUtc3lzdGVtLCBCbGlua01hY1N5c3RlbUZvbnQsICdTZWdvZSBVSScsICdHZWlzdCBTYW5zJywgc2Fucy1zZXJpZjsKICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjsKICAgICAgICAgIG1hcmdpbi10b3A6IDhweDsKICAgICAgICB9CiAgICAgIGB9CiAgICA8L3N0eWxlPgogICAgPGRpdiBjbGFzcz0iZGVtb0JveCI+CiAgICAgIDxkaXYgY2xhc3M9ImNvbnRyb2xzIj4KICAgICAgICA8ZGVlcy1idXR0b24tZ3JvdXAgbGFiZWw9IkRhdGFzZXQ6Ij4KICAgICAgICAgIDxkZWVzLWJ1dHRvbiB0eXBlPSJoaWdobGlnaHRlZCI+U3lzdGVtIFVzYWdlPC9kZWVzLWJ1dHRvbj4KICAgICAgICAgIDxkZWVzLWJ1dHRvbj5OZXR3b3JrIFRyYWZmaWM8L2RlZXMtYnV0dG9uPgogICAgICAgICAgPGRlZXMtYnV0dG9uPlNhbGVzIERhdGE8L2RlZXMtYnV0dG9uPgogICAgICAgIDwvZGVlcy1idXR0b24tZ3JvdXA+CiAgICAgICAgCiAgICAgICAgPGRlZXMtYnV0dG9uLWdyb3VwIGxhYmVsPSJSZWFsLXRpbWU6Ij4KICAgICAgICAgIDxkZWVzLWJ1dHRvbj5TdGFydCBMaXZlPC9kZWVzLWJ1dHRvbj4KICAgICAgICAgIDxkZWVzLWJ1dHRvbj5TdG9wIExpdmU8L2RlZXMtYnV0dG9uPgogICAgICAgIDwvZGVlcy1idXR0b24tZ3JvdXA+CiAgICAgICAgCiAgICAgICAgPGRlZXMtYnV0dG9uLWdyb3VwIGxhYmVsPSJBY3Rpb25zOiI+CiAgICAgICAgICA8ZGVlcy1idXR0b24+U3Bpa2UgVmFsdWVzPC9kZWVzLWJ1dHRvbj4KICAgICAgICA8L2RlZXMtYnV0dG9uLWdyb3VwPgogICAgICA8L2Rpdj4KICAgICAgCiAgICAgIDxkaXYgY2xhc3M9ImNoYXJ0LWNvbnRhaW5lciI+CiAgICAgICAgPGRlZXMtY2hhcnQtYXJlYQogICAgICAgICAgaWQ9Im1haW4tY2hhcnQiCiAgICAgICAgICAubGFiZWw9JHtlLnN5c3RlbS5sYWJlbH0KICAgICAgICAgIC5zZXJpZXM9JHtlLnN5c3RlbS5zZXJpZXN9CiAgICAgICAgICAueUF4aXNGb3JtYXR0ZXI9JHt0LnN5c3RlbX0KICAgICAgICA+PC9kZWVzLWNoYXJ0LWFyZWE+CiAgICAgIDwvZGl2PgogICAgICAKICAgICAgPGRpdiBjbGFzcz0iY2hhcnQtY29udGFpbmVyIiBzdHlsZT0ibWFyZ2luLXRvcDogMjBweDsiPgogICAgICAgIDxkZWVzLWNoYXJ0LWFyZWEKICAgICAgICAgIGlkPSJjb25uZWN0aW9ucy1jaGFydCIKICAgICAgICAgIC5sYWJlbD0keyJBY3RpdmUgQ29ubmVjdGlvbnMifQogICAgICAgICAgLnNlcmllcz0ke1t7bmFtZToiQ29ubmVjdGlvbnMiLGRhdGE6W119XX0KICAgICAgICAgIC55QXhpc0Zvcm1hdHRlcj0ke3I9PmAke3J9YH0KICAgICAgICA+PC9kZWVzLWNoYXJ0LWFyZWE+CiAgICAgIDwvZGl2PgogICAgICAKICAgICAgPGRpdiBjbGFzcz0iaW5mbyI+CiAgICAgICAgUmVhbC10aW1lIG1vbml0b3Jpbmcgd2l0aCAyLW1pbnV0ZSByb2xsaW5nIHdpbmRvdyDigKIgCiAgICAgICAgVXBkYXRlcyBldmVyeSBzZWNvbmQgd2l0aCBzbW9vdGggdmFsdWUgdHJhbnNpdGlvbnMg4oCiIAogICAgICAgIENsaWNrICdTcGlrZSBWYWx1ZXMnIHRvIHNpbXVsYXRlIGxvYWQgc3Bpa2VzCiAgICAgIDwvZGl2PgogICAgPC9kaXY+CiAgICA8L2RlZXMtZGVtb3dyYXBwZXI+CiAgYH19KTt2YXIgaGNyLGZjcj1wKCgpPT57eGUoKTtoY3I9W20uZGVmYXVsdFN0eWxlcyxvZWAKICAgICAgOmhvc3QgewogICAgICAgIGZvbnQtZmFtaWx5OiAtYXBwbGUtc3lzdGVtLCBCbGlua01hY1N5c3RlbUZvbnQsICdTZWdvZSBVSScsICdSb2JvdG8nLCBzYW5zLXNlcmlmOwogICAgICAgIGNvbG9yOiAke20uYmRUaGVtZSgiaHNsKDAgMCUgMy45JSkiLCJoc2woMCAwJSA5OCUpIil9OwogICAgICAgIGZvbnQtd2VpZ2h0OiA0MDA7CiAgICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgICB9CiAgICAgIC5tYWluYm94IHsKICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgICAgaGVpZ2h0OiA0MDBweDsKICAgICAgICBiYWNrZ3JvdW5kOiAke20uYmRUaGVtZSgiaHNsKDAgMCUgMTAwJSkiLCJoc2woMCAwJSAzLjklKSIpfTsKICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAke20uYmRUaGVtZSgiaHNsKDAgMCUgODkuOCUpIiwiaHNsKDAgMCUgMTQuOSUpIil9OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDhweDsKICAgICAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgICB9CgogICAgICAuY2hhcnRUaXRsZSB7CiAgICAgICAgcG9zaXRpb246IGFic29sdXRlOwogICAgICAgIHRvcDogMDsKICAgICAgICBsZWZ0OiAwOwogICAgICAgIHdpZHRoOiAxMDAlOwogICAgICAgIHRleHQtYWxpZ246IGxlZnQ7CiAgICAgICAgcGFkZGluZzogMTZweCAyNHB4OwogICAgICAgIHotaW5kZXg6IDEwOwogICAgICAgIGZvbnQtc2l6ZTogMTRweDsKICAgICAgICBmb250LXdlaWdodDogNTAwOwogICAgICAgIGxldHRlci1zcGFjaW5nOiAtMC4wMWVtOwogICAgICAgIGNvbG9yOiAke20uYmRUaGVtZSgiaHNsKDAgMCUgMjAlKSIsImhzbCgwIDAlIDYzLjklKSIpfTsKICAgICAgfQogICAgICAuY2hhcnRDb250YWluZXIgewogICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgICB0b3A6IDBweDsKICAgICAgICBsZWZ0OiAwcHg7CiAgICAgICAgYm90dG9tOiAwcHg7CiAgICAgICAgcmlnaHQ6IDBweDsKICAgICAgICBwYWRkaW5nOiA0NHB4IDE2cHggMTZweCAwcHg7CiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDsgLyogRW5zdXJlIGNvbnRhaW5lciBkb2Vzbid0IG92ZXJyaWRlIGNoYXJ0IGJhY2tncm91bmQgKi8KICAgICAgfQogICAgICAKICAgICAgLyogQXBleENoYXJ0cyB0aGVtZSBvdmVycmlkZXMgKi8KICAgICAgLmFwZXhjaGFydHMtY2FudmFzIHsKICAgICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudCAhaW1wb3J0YW50OwogICAgICB9CiAgICAgIAogICAgICAuYXBleGNoYXJ0cy1pbm5lciB7CiAgICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQgIWltcG9ydGFudDsKICAgICAgfQogICAgICAKICAgICAgLmFwZXhjaGFydHMtZ3JhcGhpY2FsIHsKICAgICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudCAhaW1wb3J0YW50OwogICAgICB9CiAgICBgXX0pO3ZhciBtY3IsZ2NyPXAoKCk9Pnt4ZSgpO21jcj1lPT5DYAogICAgICAgIDxkaXYgY2xhc3M9Im1haW5ib3giPgogICAgICAgICAgPGRpdiBjbGFzcz0iY2hhcnRUaXRsZSI+JHtlLmxhYmVsfTwvZGl2PgogICAgICAgICAgPGRpdiBjbGFzcz0iY2hhcnRDb250YWluZXIiPjwvZGl2PgogICAgICAgIDwvZGl2PgogICAgICBgfSk7dmFyIEUyLElhLHE2ZT1wKCgpPT57RTI9e3h0ZXJtOiI1LjMuMCIseHRlcm1BZGRvbkZpdDoiMC44LjAiLHh0ZXJtQWRkb25TZWFyY2g6IjAuMTMuMCIsaGlnaGxpZ2h0SnM6IjExLjExLjEiLGFwZXhjaGFydHM6IjUuMy42Iix0aXB0YXA6IjIuMjMuMCIsZm9udGF3ZXNvbWU6IjcuMS4wIn0sSWE9Imh0dHBzOi8vY2RuLmpzZGVsaXZyLm5ldC9ucG0ifSk7dmFyIHJhLGJjcj1wKCgpPT57cTZlKCk7cmE9Y2xhc3MgZXtzdGF0aWMgaW5zdGFuY2U7eHRlcm1MaWI9bnVsbDt4dGVybUZpdEFkZG9uTGliPW51bGw7eHRlcm1TZWFyY2hBZGRvbkxpYj1udWxsO2hpZ2hsaWdodEpzTGliPW51bGw7YXBleENoYXJ0c0xpYj1udWxsO3RpcHRhcExpYj1udWxsO3h0ZXJtTG9hZGluZ1Byb21pc2U9bnVsbDt4dGVybUZpdEFkZG9uTG9hZGluZ1Byb21pc2U9bnVsbDt4dGVybVNlYXJjaEFkZG9uTG9hZGluZ1Byb21pc2U9bnVsbDtoaWdobGlnaHRKc0xvYWRpbmdQcm9taXNlPW51bGw7YXBleENoYXJ0c0xvYWRpbmdQcm9taXNlPW51bGw7dGlwdGFwTG9hZGluZ1Byb21pc2U9bnVsbDtjb25zdHJ1Y3Rvcigpe31zdGF0aWMgZ2V0SW5zdGFuY2UoKXtyZXR1cm4gZS5pbnN0YW5jZXx8KGUuaW5zdGFuY2U9bmV3IGUpLGUuaW5zdGFuY2V9YXN5bmMgbG9hZFh0ZXJtKCl7cmV0dXJuIHRoaXMueHRlcm1MaWI/dGhpcy54dGVybUxpYjp0aGlzLnh0ZXJtTG9hZGluZ1Byb21pc2U/dGhpcy54dGVybUxvYWRpbmdQcm9taXNlOih0aGlzLnh0ZXJtTG9hZGluZ1Byb21pc2U9KGFzeW5jKCk9PntsZXQgcj1hd2FpdCBpbXBvcnQoYCR7SWF9L3h0ZXJtQCR7RTIueHRlcm19Lytlc21gKTtyZXR1cm4gYXdhaXQgdGhpcy5pbmplY3RYdGVybVN0eWxlcygpLHRoaXMueHRlcm1MaWI9e1Rlcm1pbmFsOnIuVGVybWluYWx9LHRoaXMueHRlcm1MaWJ9KSgpLHRoaXMueHRlcm1Mb2FkaW5nUHJvbWlzZSl9YXN5bmMgbG9hZFh0ZXJtRml0QWRkb24oKXtyZXR1cm4gdGhpcy54dGVybUZpdEFkZG9uTGliP3RoaXMueHRlcm1GaXRBZGRvbkxpYjp0aGlzLnh0ZXJtRml0QWRkb25Mb2FkaW5nUHJvbWlzZT90aGlzLnh0ZXJtRml0QWRkb25Mb2FkaW5nUHJvbWlzZToodGhpcy54dGVybUZpdEFkZG9uTG9hZGluZ1Byb21pc2U9KGFzeW5jKCk9PntsZXQgcj1hd2FpdCBpbXBvcnQoYCR7SWF9L3h0ZXJtLWFkZG9uLWZpdEAke0UyLnh0ZXJtQWRkb25GaXR9Lytlc21gKTtyZXR1cm4gdGhpcy54dGVybUZpdEFkZG9uTGliPXtGaXRBZGRvbjpyLkZpdEFkZG9ufSx0aGlzLnh0ZXJtRml0QWRkb25MaWJ9KSgpLHRoaXMueHRlcm1GaXRBZGRvbkxvYWRpbmdQcm9taXNlKX1hc3luYyBsb2FkWHRlcm1TZWFyY2hBZGRvbigpe3JldHVybiB0aGlzLnh0ZXJtU2VhcmNoQWRkb25MaWI/dGhpcy54dGVybVNlYXJjaEFkZG9uTGliOnRoaXMueHRlcm1TZWFyY2hBZGRvbkxvYWRpbmdQcm9taXNlP3RoaXMueHRlcm1TZWFyY2hBZGRvbkxvYWRpbmdQcm9taXNlOih0aGlzLnh0ZXJtU2VhcmNoQWRkb25Mb2FkaW5nUHJvbWlzZT0oYXN5bmMoKT0+e2xldCByPWF3YWl0IGltcG9ydChgJHtJYX0veHRlcm0tYWRkb24tc2VhcmNoQCR7RTIueHRlcm1BZGRvblNlYXJjaH0vK2VzbWApO3JldHVybiB0aGlzLnh0ZXJtU2VhcmNoQWRkb25MaWI9e1NlYXJjaEFkZG9uOnIuU2VhcmNoQWRkb259LHRoaXMueHRlcm1TZWFyY2hBZGRvbkxpYn0pKCksdGhpcy54dGVybVNlYXJjaEFkZG9uTG9hZGluZ1Byb21pc2UpfWFzeW5jIGluamVjdFh0ZXJtU3R5bGVzKCl7bGV0IHQ9Inh0ZXJtLWNkbi1zdHlsZXMiO2lmKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKHQpKXJldHVybjtsZXQgcj1gJHtJYX0veHRlcm1AJHtFMi54dGVybX0vY3NzL3h0ZXJtLmNzc2AsYT1hd2FpdChhd2FpdCBmZXRjaChyKSkudGV4dCgpLG49YAovKiBGaXggeHRlcm0uanMgV2lkdGhDYWNoZSBtZWFzdXJlbWVudCBjb250YWluZXIgY2F1c2luZyBob3Jpem9udGFsIHNjcm9sbGJhciAqLwovKiB4dGVybSBjcmVhdGVzIHRoaXMgb24gZG9jdW1lbnQuYm9keSAtIG1vdmUgaXQgb2ZmLXNjcmVlbiBob3Jpem9udGFsbHkgdG9vICovCmJvZHkgPiBkaXZbc3R5bGUqPSJ0b3A6IC01MDAwMHB4Il1bc3R5bGUqPSJ3aWR0aDogNTAwMDBweCJdIHsKICBsZWZ0OiAtNTAwMDBweCAhaW1wb3J0YW50Owp9CmAsbz1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJzdHlsZSIpO28uaWQ9dCxvLnRleHRDb250ZW50PWErbixkb2N1bWVudC5oZWFkLmFwcGVuZENoaWxkKG8pfWFzeW5jIGxvYWRIaWdobGlnaHRKcygpe3JldHVybiB0aGlzLmhpZ2hsaWdodEpzTGliP3RoaXMuaGlnaGxpZ2h0SnNMaWI6dGhpcy5oaWdobGlnaHRKc0xvYWRpbmdQcm9taXNlP3RoaXMuaGlnaGxpZ2h0SnNMb2FkaW5nUHJvbWlzZToodGhpcy5oaWdobGlnaHRKc0xvYWRpbmdQcm9taXNlPShhc3luYygpPT57bGV0IHI9YXdhaXQgaW1wb3J0KGAke0lhfS9oaWdobGlnaHQuanNAJHtFMi5oaWdobGlnaHRKc30vK2VzbWApO3JldHVybiB0aGlzLmhpZ2hsaWdodEpzTGliPXIuZGVmYXVsdCx0aGlzLmhpZ2hsaWdodEpzTGlifSkoKSx0aGlzLmhpZ2hsaWdodEpzTG9hZGluZ1Byb21pc2UpfWFzeW5jIGxvYWRBcGV4Q2hhcnRzKCl7cmV0dXJuIHRoaXMuYXBleENoYXJ0c0xpYj90aGlzLmFwZXhDaGFydHNMaWI6dGhpcy5hcGV4Q2hhcnRzTG9hZGluZ1Byb21pc2U/dGhpcy5hcGV4Q2hhcnRzTG9hZGluZ1Byb21pc2U6KHRoaXMuYXBleENoYXJ0c0xvYWRpbmdQcm9taXNlPShhc3luYygpPT57bGV0IHI9YXdhaXQgaW1wb3J0KGAke0lhfS9hcGV4Y2hhcnRzQCR7RTIuYXBleGNoYXJ0c30vK2VzbWApO3JldHVybiB0aGlzLmFwZXhDaGFydHNMaWI9ci5kZWZhdWx0LHRoaXMuYXBleENoYXJ0c0xpYn0pKCksdGhpcy5hcGV4Q2hhcnRzTG9hZGluZ1Byb21pc2UpfWFzeW5jIGxvYWRUaXB0YXAoKXtyZXR1cm4gdGhpcy50aXB0YXBMaWI/dGhpcy50aXB0YXBMaWI6dGhpcy50aXB0YXBMb2FkaW5nUHJvbWlzZT90aGlzLnRpcHRhcExvYWRpbmdQcm9taXNlOih0aGlzLnRpcHRhcExvYWRpbmdQcm9taXNlPShhc3luYygpPT57bGV0IHQ9RTIudGlwdGFwLFtyLGksYSxuLG8sc109YXdhaXQgUHJvbWlzZS5hbGwoW2ltcG9ydChgJHtJYX0vQHRpcHRhcC9jb3JlQCR7dH0vK2VzbWApLGltcG9ydChgJHtJYX0vQHRpcHRhcC9zdGFydGVyLWtpdEAke3R9Lytlc21gKSxpbXBvcnQoYCR7SWF9L0B0aXB0YXAvZXh0ZW5zaW9uLXVuZGVybGluZUAke3R9Lytlc21gKSxpbXBvcnQoYCR7SWF9L0B0aXB0YXAvZXh0ZW5zaW9uLXRleHQtYWxpZ25AJHt0fS8rZXNtYCksaW1wb3J0KGAke0lhfS9AdGlwdGFwL2V4dGVuc2lvbi1saW5rQCR7dH0vK2VzbWApLGltcG9ydChgJHtJYX0vQHRpcHRhcC9leHRlbnNpb24tdHlwb2dyYXBoeUAke3R9Lytlc21gKV0pO3JldHVybiB0aGlzLnRpcHRhcExpYj17RWRpdG9yOnIuRWRpdG9yLFN0YXJ0ZXJLaXQ6aS5kZWZhdWx0fHxpLlN0YXJ0ZXJLaXQsVW5kZXJsaW5lOmEuZGVmYXVsdHx8YS5VbmRlcmxpbmUsVGV4dEFsaWduOm4uZGVmYXVsdHx8bi5UZXh0QWxpZ24sTGluazpvLmRlZmF1bHR8fG8uTGluayxUeXBvZ3JhcGh5OnMuZGVmYXVsdHx8cy5UeXBvZ3JhcGh5fSx0aGlzLnRpcHRhcExpYn0pKCksdGhpcy50aXB0YXBMb2FkaW5nUHJvbWlzZSl9YXN5bmMgcHJlbG9hZEFsbCgpe2F3YWl0IFByb21pc2UuYWxsKFt0aGlzLmxvYWRYdGVybSgpLHRoaXMubG9hZFh0ZXJtRml0QWRkb24oKSx0aGlzLmxvYWRYdGVybVNlYXJjaEFkZG9uKCksdGhpcy5sb2FkSGlnaGxpZ2h0SnMoKSx0aGlzLmxvYWRBcGV4Q2hhcnRzKCksdGhpcy5sb2FkVGlwdGFwKCldKX1pc0xvYWRlZCh0KXtzd2l0Y2godCl7Y2FzZSJ4dGVybSI6cmV0dXJuIHRoaXMueHRlcm1MaWIhPT1udWxsO2Nhc2UieHRlcm1GaXRBZGRvbiI6cmV0dXJuIHRoaXMueHRlcm1GaXRBZGRvbkxpYiE9PW51bGw7Y2FzZSJ4dGVybVNlYXJjaEFkZG9uIjpyZXR1cm4gdGhpcy54dGVybVNlYXJjaEFkZG9uTGliIT09bnVsbDtjYXNlImhpZ2hsaWdodEpzIjpyZXR1cm4gdGhpcy5oaWdobGlnaHRKc0xpYiE9PW51bGw7Y2FzZSJhcGV4Q2hhcnRzIjpyZXR1cm4gdGhpcy5hcGV4Q2hhcnRzTGliIT09bnVsbDtjYXNlInRpcHRhcCI6cmV0dXJuIHRoaXMudGlwdGFwTGliIT09bnVsbDtkZWZhdWx0OnJldHVybiExfX19fSk7dmFyIEI0PXAoKCk9PntiY3IoKTtxNmUoKX0pO3ZhciBhbCxTaSx2Y3IsSDZlPXAoKCk9Pnt4ZSgpO0t0KCk7cGNyKCk7ZmNyKCk7Z2NyKCk7QjQoKTthbD1mdW5jdGlvbihlLHQscixpLGEsbil7ZnVuY3Rpb24gbyh5KXtpZih5IT09dm9pZCAwJiZ0eXBlb2YgeSE9ImZ1bmN0aW9uIil0aHJvdyBuZXcgVHlwZUVycm9yKCJGdW5jdGlvbiBleHBlY3RlZCIpO3JldHVybiB5fWZvcih2YXIgcz1pLmtpbmQsbD1zPT09ImdldHRlciI/ImdldCI6cz09PSJzZXR0ZXIiPyJzZXQiOiJ2YWx1ZSIsYz0hdCYmZT9pLnN0YXRpYz9lOmUucHJvdG90eXBlOm51bGwsdT10fHwoYz9PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGMsaS5uYW1lKTp7fSksZCxoPSExLGY9ci5sZW5ndGgtMTtmPj0wO2YtLSl7dmFyIHg9e307Zm9yKHZhciB2IGluIGkpeFt2XT12PT09ImFjY2VzcyI/e306aVt2XTtmb3IodmFyIHYgaW4gaS5hY2Nlc3MpeC5hY2Nlc3Nbdl09aS5hY2Nlc3Nbdl07eC5hZGRJbml0aWFsaXplcj1mdW5jdGlvbih5KXtpZihoKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBhZGQgaW5pdGlhbGl6ZXJzIGFmdGVyIGRlY29yYXRpb24gaGFzIGNvbXBsZXRlZCIpO24ucHVzaChvKHl8fG51bGwpKX07dmFyIGI9KDAscltmXSkocz09PSJhY2Nlc3NvciI/e2dldDp1LmdldCxzZXQ6dS5zZXR9OnVbbF0seCk7aWYocz09PSJhY2Nlc3NvciIpe2lmKGI9PT12b2lkIDApY29udGludWU7aWYoYj09PW51bGx8fHR5cGVvZiBiIT0ib2JqZWN0Iil0aHJvdyBuZXcgVHlwZUVycm9yKCJPYmplY3QgZXhwZWN0ZWQiKTsoZD1vKGIuZ2V0KSkmJih1LmdldD1kKSwoZD1vKGIuc2V0KSkmJih1LnNldD1kKSwoZD1vKGIuaW5pdCkpJiZhLnVuc2hpZnQoZCl9ZWxzZShkPW8oYikpJiYocz09PSJmaWVsZCI/YS51bnNoaWZ0KGQpOnVbbF09ZCl9YyYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGMsaS5uYW1lLHUpLGg9ITB9LFNpPWZ1bmN0aW9uKGUsdCxyKXtmb3IodmFyIGk9YXJndW1lbnRzLmxlbmd0aD4yLGE9MDthPHQubGVuZ3RoO2ErKylyPWk/dFthXS5jYWxsKGUscik6dFthXS5jYWxsKGUpO3JldHVybiBpP3I6dm9pZCAwfSx2Y3I9KCgpPT57bGV0IGU9W3llKCJkZWVzLWNoYXJ0LWFyZWEiKV0sdCxyPVtdLGksYT16ZSxuLG89W10scz1bXSxsLGM9W10sdT1bXSxkLGg9W10sZj1bXSx4LHY9W10sYj1bXSx5LHc9W10saz1bXSxPLHo9W10sTT1bXSxGLEQ9W10sTj1bXSxSLF89W10sUz1bXSwkLFQ9W10sRT1bXTt2YXIgcT1jbGFzcyBleHRlbmRzIGF7c3RhdGlje2k9dGhpc31zdGF0aWN7bGV0IEI9dHlwZW9mIFN5bWJvbD09ImZ1bmN0aW9uIiYmU3ltYm9sLm1ldGFkYXRhP09iamVjdC5jcmVhdGUoYVtTeW1ib2wubWV0YWRhdGFdPz9udWxsKTp2b2lkIDA7bj1bZmUoKV0sbD1baigpXSxkPVtqKHt0eXBlOkFycmF5fSldLHg9W2ooe2F0dHJpYnV0ZTohMX0pXSx5PVtqKHt0eXBlOk51bWJlcn0pXSxPPVtqKHt0eXBlOkJvb2xlYW59KV0sRj1baih7dHlwZTpTdHJpbmd9KV0sUj1baih7dHlwZTpOdW1iZXJ9KV0sJD1baih7dHlwZTpOdW1iZXJ9KV0sYWwodGhpcyxudWxsLG4se2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJjaGFydCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6Rz0+ImNoYXJ0ImluIEcsZ2V0Okc9PkcuY2hhcnQsc2V0OihHLGVlKT0+e0cuY2hhcnQ9ZWV9fSxtZXRhZGF0YTpCfSxvLHMpLGFsKHRoaXMsbnVsbCxsLHtraW5kOiJhY2Nlc3NvciIsbmFtZToibGFiZWwiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOkc9PiJsYWJlbCJpbiBHLGdldDpHPT5HLmxhYmVsLHNldDooRyxlZSk9PntHLmxhYmVsPWVlfX0sbWV0YWRhdGE6Qn0sYyx1KSxhbCh0aGlzLG51bGwsZCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InNlcmllcyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6Rz0+InNlcmllcyJpbiBHLGdldDpHPT5HLnNlcmllcyxzZXQ6KEcsZWUpPT57Ry5zZXJpZXM9ZWV9fSxtZXRhZGF0YTpCfSxoLGYpLGFsKHRoaXMsbnVsbCx4LHtraW5kOiJhY2Nlc3NvciIsbmFtZToieUF4aXNGb3JtYXR0ZXIiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOkc9PiJ5QXhpc0Zvcm1hdHRlciJpbiBHLGdldDpHPT5HLnlBeGlzRm9ybWF0dGVyLHNldDooRyxlZSk9PntHLnlBeGlzRm9ybWF0dGVyPWVlfX0sbWV0YWRhdGE6Qn0sdixiKSxhbCh0aGlzLG51bGwseSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InJvbGxpbmdXaW5kb3ciLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOkc9PiJyb2xsaW5nV2luZG93ImluIEcsZ2V0Okc9Pkcucm9sbGluZ1dpbmRvdyxzZXQ6KEcsZWUpPT57Ry5yb2xsaW5nV2luZG93PWVlfX0sbWV0YWRhdGE6Qn0sdyxrKSxhbCh0aGlzLG51bGwsTyx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InJlYWx0aW1lTW9kZSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6Rz0+InJlYWx0aW1lTW9kZSJpbiBHLGdldDpHPT5HLnJlYWx0aW1lTW9kZSxzZXQ6KEcsZWUpPT57Ry5yZWFsdGltZU1vZGU9ZWV9fSxtZXRhZGF0YTpCfSx6LE0pLGFsKHRoaXMsbnVsbCxGLHtraW5kOiJhY2Nlc3NvciIsbmFtZToieUF4aXNTY2FsaW5nIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpHPT4ieUF4aXNTY2FsaW5nImluIEcsZ2V0Okc9PkcueUF4aXNTY2FsaW5nLHNldDooRyxlZSk9PntHLnlBeGlzU2NhbGluZz1lZX19LG1ldGFkYXRhOkJ9LEQsTiksYWwodGhpcyxudWxsLFIse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJ5QXhpc01heCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6Rz0+InlBeGlzTWF4ImluIEcsZ2V0Okc9PkcueUF4aXNNYXgsc2V0OihHLGVlKT0+e0cueUF4aXNNYXg9ZWV9fSxtZXRhZGF0YTpCfSxfLFMpLGFsKHRoaXMsbnVsbCwkLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiYXV0b1Njcm9sbEludGVydmFsIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpHPT4iYXV0b1Njcm9sbEludGVydmFsImluIEcsZ2V0Okc9PkcuYXV0b1Njcm9sbEludGVydmFsLHNldDooRyxlZSk9PntHLmF1dG9TY3JvbGxJbnRlcnZhbD1lZX19LG1ldGFkYXRhOkJ9LFQsRSksYWwobnVsbCx0PXt2YWx1ZTppfSxlLHtraW5kOiJjbGFzcyIsbmFtZTppLm5hbWUsbWV0YWRhdGE6Qn0sbnVsbCxyKSxxPWk9dC52YWx1ZSxCJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoaSxTeW1ib2wubWV0YWRhdGEse2VudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwLHZhbHVlOkJ9KX1zdGF0aWMgZGVtbz11Y3I7c3RhdGljIGRlbW9Hcm91cHM9WyJDaGFydCJdOyNlPVNpKHRoaXMsbyx2b2lkIDApO2dldCBjaGFydCgpe3JldHVybiB0aGlzLiNlfXNldCBjaGFydChCKXt0aGlzLiNlPUJ9I3Q9KFNpKHRoaXMscyksU2kodGhpcyxjLCJVbnRpdGxlZCBDaGFydCIpKTtnZXQgbGFiZWwoKXtyZXR1cm4gdGhpcy4jdH1zZXQgbGFiZWwoQil7dGhpcy4jdD1CfSNyPShTaSh0aGlzLHUpLFNpKHRoaXMsaCxbXSkpO2dldCBzZXJpZXMoKXtyZXR1cm4gdGhpcy4jcn1zZXQgc2VyaWVzKEIpe3RoaXMuI3I9Qn1nZXQgY2hhcnRTZXJpZXMoKXtyZXR1cm4gdGhpcy5pbnRlcm5hbENoYXJ0RGF0YS5sZW5ndGg+MD90aGlzLmludGVybmFsQ2hhcnREYXRhOnRoaXMuc2VyaWVzfSNpPShTaSh0aGlzLGYpLFNpKHRoaXMsdixCPT5gJHtCfSBNYnBzYCkpO2dldCB5QXhpc0Zvcm1hdHRlcigpe3JldHVybiB0aGlzLiNpfXNldCB5QXhpc0Zvcm1hdHRlcihCKXt0aGlzLiNpPUJ9I2E9KFNpKHRoaXMsYiksU2kodGhpcyx3LDApKTtnZXQgcm9sbGluZ1dpbmRvdygpe3JldHVybiB0aGlzLiNhfXNldCByb2xsaW5nV2luZG93KEIpe3RoaXMuI2E9Qn0jbj0oU2kodGhpcyxrKSxTaSh0aGlzLHosITEpKTtnZXQgcmVhbHRpbWVNb2RlKCl7cmV0dXJuIHRoaXMuI259c2V0IHJlYWx0aW1lTW9kZShCKXt0aGlzLiNuPUJ9I289KFNpKHRoaXMsTSksU2kodGhpcyxELCJkeW5hbWljIikpO2dldCB5QXhpc1NjYWxpbmcoKXtyZXR1cm4gdGhpcy4jb31zZXQgeUF4aXNTY2FsaW5nKEIpe3RoaXMuI289Qn0jcz0oU2kodGhpcyxOKSxTaSh0aGlzLF8sMTAwKSk7Z2V0IHlBeGlzTWF4KCl7cmV0dXJuIHRoaXMuI3N9c2V0IHlBeGlzTWF4KEIpe3RoaXMuI3M9Qn0jbD0oU2kodGhpcyxTKSxTaSh0aGlzLFQsMWUzKSk7Z2V0IGF1dG9TY3JvbGxJbnRlcnZhbCgpe3JldHVybiB0aGlzLiNsfXNldCBhdXRvU2Nyb2xsSW50ZXJ2YWwoQil7dGhpcy4jbD1CfXJlc2l6ZU9ic2VydmVyPVNpKHRoaXMsRSk7cmVzaXplVGltZW91dDtpbnRlcm5hbENoYXJ0RGF0YT1bXTthdXRvU2Nyb2xsVGltZXI9bnVsbDtERUJVR19SRVNJWkU9ITE7Q0hBUlRfQ09MT1JTPXtkYXJrOlsiaHNsKDIxNy4yIDkxLjIlIDU5LjglKSIsImhzbCgxNzMuNCA4MC40JSA0MCUpIiwiaHNsKDI4MC4zIDg3LjQlIDY2LjclKSIsImhzbCgyNC42IDk1JSA1My4xJSkiXSxsaWdodDpbImhzbCgyMjIuMiA0Ny40JSA1MS4yJSkiLCJoc2woMTQyLjEgNzYuMiUgMzYuMyUpIiwiaHNsKDI4MC4zIDQ3LjclIDUwLjIlKSIsImhzbCgyMC41IDkwLjIlIDQ4LjIlKSJdfTtjb25zdHJ1Y3Rvcigpe3N1cGVyKCksZDEuc2V0dXAoKSx0aGlzLnJlc2l6ZU9ic2VydmVyPW5ldyBSZXNpemVPYnNlcnZlcihCPT57dGhpcy5yZXNpemVUaW1lb3V0JiZjbGVhclRpbWVvdXQodGhpcy5yZXNpemVUaW1lb3V0KSx0aGlzLnJlc2l6ZVRpbWVvdXQ9d2luZG93LnNldFRpbWVvdXQoKCk9PntpZih0aGlzLmNoYXJ0KXtpZih0aGlzLkRFQlVHX1JFU0laRSYmQi5sZW5ndGg+MCl7bGV0IEc9QlswXTtjb25zb2xlLmxvZygiRGVlc0NoYXJ0QXJlYSAtIFJlc2l6ZSBkZXRlY3RlZDoiLHt3aWR0aDpHLmNvbnRlbnRSZWN0LndpZHRoLGhlaWdodDpHLmNvbnRlbnRSZWN0LmhlaWdodH0pfXRoaXMucmVzaXplQ2hhcnQoKX19LDEwMCl9KSx0aGlzLnJlZ2lzdGVyR2FyYmFnZUZ1bmN0aW9uKGFzeW5jKCk9PntpZih0aGlzLnJlc2l6ZVRpbWVvdXQmJmNsZWFyVGltZW91dCh0aGlzLnJlc2l6ZVRpbWVvdXQpLHRoaXMucmVzaXplT2JzZXJ2ZXImJnRoaXMucmVzaXplT2JzZXJ2ZXIuZGlzY29ubmVjdCgpLHRoaXMuc3RvcEF1dG9TY3JvbGwoKSx0aGlzLmNoYXJ0KXRyeXt0aGlzLmNoYXJ0LmRlc3Ryb3koKSx0aGlzLmNoYXJ0PW51bGx9Y2F0Y2goQil7Y29uc29sZS5lcnJvcigiRXJyb3IgZGVzdHJveWluZyBjaGFydDoiLEIpfX0pfWFzeW5jIGNvbm5lY3RlZENhbGxiYWNrKCl7c3VwZXIuY29ubmVjdGVkQ2FsbGJhY2soKSx0aGlzLmNoYXJ0JiYoYXdhaXQgbmV3IFByb21pc2UoQj0+cmVxdWVzdEFuaW1hdGlvbkZyYW1lKEIpKSxhd2FpdCB0aGlzLnJlc2l6ZUNoYXJ0KCkpfXN0YXRpYyBzdHlsZXM9aGNyO3JlbmRlcigpe3JldHVybiBtY3IodGhpcyl9YXN5bmMgZmlyc3RVcGRhdGVkKCl7YXdhaXQgdGhpcy5kb210b29sc1Byb21pc2U7bGV0IEI9YXdhaXQgcmEuZ2V0SW5zdGFuY2UoKS5sb2FkQXBleENoYXJ0cygpO2F3YWl0IG5ldyBQcm9taXNlKFg9PnJlcXVlc3RBbmltYXRpb25GcmFtZShYKSk7bGV0IEc9dGhpcy5zaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3IoIi5tYWluYm94IiksZWU9dGhpcy5zaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3IoIi5jaGFydENvbnRhaW5lciIpO2lmKCFHfHwhZWUpe2NvbnNvbGUuZXJyb3IoIkNoYXJ0IGNvbnRhaW5lcnMgbm90IGZvdW5kIik7cmV0dXJufWxldCBQPXdpbmRvdy5nZXRDb21wdXRlZFN0eWxlKGVlKSxnZT1wYXJzZUludChQLnBhZGRpbmdUb3AsMTApLHdlPXBhcnNlSW50KFAucGFkZGluZ0JvdHRvbSwxMCksST1wYXJzZUludChQLnBhZGRpbmdMZWZ0LDEwKSxuZT1wYXJzZUludChQLnBhZGRpbmdSaWdodCwxMCksa2U9Ry5jbGllbnRXaWR0aC1JLW5lLFk9Ry5vZmZzZXRIZWlnaHQtZ2Utd2UsQT10aGlzLnNlcmllcy5sZW5ndGg+MD90aGlzLnNlcmllczpbe25hbWU6ImNwdSIsZGF0YTpbe3g6IjIwMjUtMDEtMTVUMDM6MDA6MDAiLHk6MjV9LHt4OiIyMDI1LTAxLTE1VDA3OjAwOjAwIix5OjMwfSx7eDoiMjAyNS0wMS0xNVQxMTowMDowMCIseToyMH0se3g6IjIwMjUtMDEtMTVUMTU6MDA6MDAiLHk6MzV9LHt4OiIyMDI1LTAxLTE1VDE5OjAwOjAwIix5OjI1fV19LHtuYW1lOiJtZW1vcnkiLGRhdGE6W3t4OiIyMDI1LTAxLTE1VDAzOjAwOjAwIix5OjEwfSx7eDoiMjAyNS0wMS0xNVQwNzowMDowMCIseToxMn0se3g6IjIwMjUtMDEtMTVUMTE6MDA6MDAiLHk6MTB9LHt4OiIyMDI1LTAxLTE1VDE1OjAwOjAwIix5OjMwfSx7eDoiMjAyNS0wMS0xNVQxOTowMDowMCIseTo0MH1dfV07dGhpcy5pbnRlcm5hbENoYXJ0RGF0YT1BO2xldCBMPSF0aGlzLmdvQnJpZ2h0LFU9TD8iZGFyayI6ImxpZ2h0Ijt2YXIgVj17c2VyaWVzOkEsY2hhcnQ6e3dpZHRoOmtlfHwxMDAsaGVpZ2h0Oll8fDEwMCx0eXBlOiJhcmVhIixiYWNrZ3JvdW5kOiJ0cmFuc3BhcmVudCIsdG9vbGJhcjp7c2hvdzohMX0sYW5pbWF0aW9uczp7ZW5hYmxlZDohdGhpcy5yZWFsdGltZU1vZGUsc3BlZWQ6NDAwLGFuaW1hdGVHcmFkdWFsbHk6e2VuYWJsZWQ6ITEsZGVsYXk6MH0sZHluYW1pY0FuaW1hdGlvbjp7ZW5hYmxlZDohdGhpcy5yZWFsdGltZU1vZGUsc3BlZWQ6MzUwfX0sem9vbTp7ZW5hYmxlZDohMX0sc2VsZWN0aW9uOntlbmFibGVkOiExfX0sZGF0YUxhYmVsczp7ZW5hYmxlZDohMX0sc3Ryb2tlOnt3aWR0aDoyLGN1cnZlOiJzbW9vdGgifSx4YXhpczp7dHlwZToiZGF0ZXRpbWUiLGxhYmVsczp7Zm9ybWF0OiJISDptbTpzcyIsZGF0ZXRpbWVVVEM6ITEsc3R5bGU6e2NvbG9yczpbTD8iaHNsKDAgMCUgNjMuOSUpIjoiaHNsKDAgMCUgMjAlKSJdLGZvbnRTaXplOiIxMnB4Iixmb250RmFtaWx5OictYXBwbGUtc3lzdGVtLCBCbGlua01hY1N5c3RlbUZvbnQsICJTZWdvZSBVSSIsIHNhbnMtc2VyaWYnLGZvbnRXZWlnaHQ6IjQwMCJ9fSxheGlzQm9yZGVyOntzaG93OiExfSxheGlzVGlja3M6e3Nob3c6ITF9fSx5YXhpczp7bWluOjAsbWF4OnRoaXMueUF4aXNTY2FsaW5nPT09ImR5bmFtaWMiP3ZvaWQgMDp0aGlzLnlBeGlzTWF4LGxhYmVsczp7Zm9ybWF0dGVyOnRoaXMueUF4aXNGb3JtYXR0ZXIsc3R5bGU6e2NvbG9yczpbTD8iaHNsKDAgMCUgNjMuOSUpIjoiaHNsKDAgMCUgMjAlKSJdLGZvbnRTaXplOiIxMnB4Iixmb250RmFtaWx5OictYXBwbGUtc3lzdGVtLCBCbGlua01hY1N5c3RlbUZvbnQsICJTZWdvZSBVSSIsIHNhbnMtc2VyaWYnLGZvbnRXZWlnaHQ6IjQwMCJ9fSxheGlzQm9yZGVyOntzaG93OiExfSxheGlzVGlja3M6e3Nob3c6ITF9fSx0b29sdGlwOntzaGFyZWQ6ITAsaW50ZXJzZWN0OiExLGZvbGxvd0N1cnNvcjohMCx4Ontmb3JtYXQ6ImRkL01NL3l5IEhIOm1tIn0sY3VzdG9tOih7c2VyaWVzOlgsZGF0YVBvaW50SW5kZXg6ZGUsdzp2ZX0pPT57bGV0IFc9dmUuY29uZmlnLnRoZW1lLm1vZGU9PT0iZGFyayIsSD1XPyJoc2woMCAwJSA5JSkiOiJoc2woMCAwJSAxMDAlKSIsdGU9Vz8iaHNsKDAgMCUgOTUlKSI6ImhzbCgwIDAlIDklKSIsYmU9Vz8iaHNsKDAgMCUgMTQuOSUpIjoiaHNsKDAgMCUgODkuOCUpIix1ZT12ZS5jb25maWcueWF4aXNbMF0/LmxhYmVscz8uZm9ybWF0dGVyfHwoaGU9PmhlLnRvU3RyaW5nKCkpLENlPWA8ZGl2IHN0eWxlPSJwYWRkaW5nOiAxMnB4OyBiYWNrZ3JvdW5kOiAke0h9OyBjb2xvcjogJHt0ZX07IGJvcmRlci1yYWRpdXM6IDZweDsgYm94LXNoYWRvdzogMCAycHggOHB4IDAgaHNsKDAgMCUgMCUgLyAke1c/IjAuMiI6IjAuMSJ9KTsgYm9yZGVyOiAxcHggc29saWQgJHtiZX07Zm9udC1mYW1pbHk6IC1hcHBsZS1zeXN0ZW0sIEJsaW5rTWFjU3lzdGVtRm9udCwgJ1NlZ29lIFVJJywgc2Fucy1zZXJpZjsgZm9udC1zaXplOiAxMnB4OyI+YDtyZXR1cm4gWC5mb3JFYWNoKChoZSxpZSk9PntsZXQgU2U9dmUuZ2xvYmFscy5zZXJpZXNOYW1lc1tpZV0sSWU9aGVbZGVdLFplPXZlLmdsb2JhbHMuY29sb3JzW2llXSxLPXVlKEllKTtDZSs9YDxkaXYgc3R5bGU9ImRpc3BsYXk6IGZsZXg7IGFsaWduLWl0ZW1zOiBjZW50ZXI7IGdhcDogOHB4OyBtYXJnaW46ICR7aWU+MD8iNnB4IjoiMCJ9IDA7Ij4KICAgICAgICAgICAgICA8c3BhbiBzdHlsZT0iZGlzcGxheTogaW5saW5lLWJsb2NrOyB3aWR0aDogMTBweDsgaGVpZ2h0OiAxMHB4OyBiYWNrZ3JvdW5kOiAke1plfTsgYm9yZGVyLXJhZGl1czogMnB4OyI+PC9zcGFuPgogICAgICAgICAgICAgIDxzcGFuIHN0eWxlPSJmb250LXdlaWdodDogNTAwOyI+JHtTZX06PC9zcGFuPgogICAgICAgICAgICAgIDxzcGFuIHN0eWxlPSJtYXJnaW4tbGVmdDogYXV0bzsgZm9udC13ZWlnaHQ6IDYwMDsiPiR7S308L3NwYW4+CiAgICAgICAgICAgIDwvZGl2PmB9KSxDZSs9IjwvZGl2PiIsQ2V9fSxncmlkOnt4YXhpczp7bGluZXM6e3Nob3c6ITF9fSx5YXhpczp7bGluZXM6e3Nob3c6ITB9fSxib3JkZXJDb2xvcjpMPyJoc2woMCAwJSAxNC45JSkiOiJoc2woMCAwJSA5NCUpIixzdHJva2VEYXNoQXJyYXk6MCxwYWRkaW5nOnt0b3A6MTAscmlnaHQ6MjAsYm90dG9tOjEwLGxlZnQ6MjB9fSxmaWxsOnt0eXBlOiJncmFkaWVudCIsZ3JhZGllbnQ6e3NoYWRlOkw/ImRhcmsiOiJsaWdodCIsdHlwZToidmVydGljYWwiLHNoYWRlSW50ZW5zaXR5Oi4xLG9wYWNpdHlGcm9tOkw/LjI6LjMsb3BhY2l0eVRvOjAsc3RvcHM6WzAsMTAwXX19LGNvbG9yczpMP3RoaXMuQ0hBUlRfQ09MT1JTLmRhcms6dGhpcy5DSEFSVF9DT0xPUlMubGlnaHQsdGhlbWU6e21vZGU6VX19O3RyeXt0aGlzLmNoYXJ0PW5ldyBCKHRoaXMuc2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yKCIuY2hhcnRDb250YWluZXIiKSxWKSxhd2FpdCB0aGlzLmNoYXJ0LnJlbmRlcigpLGF3YWl0IG5ldyBQcm9taXNlKGRlPT5zZXRUaW1lb3V0KGRlLDEwMCkpLGF3YWl0IHRoaXMucmVzaXplQ2hhcnQoKTtsZXQgWD10aGlzLnNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvcigiLm1haW5ib3giKTtYJiZ0aGlzLnJlc2l6ZU9ic2VydmVyJiYodGhpcy5yZXNpemVPYnNlcnZlci5kaXNjb25uZWN0KCksdGhpcy5yZXNpemVPYnNlcnZlci5vYnNlcnZlKFgpLHRoaXMuREVCVUdfUkVTSVpFJiZjb25zb2xlLmxvZygiRGVlc0NoYXJ0QXJlYSAtIFJlc2l6ZU9ic2VydmVyIGF0dGFjaGVkIHRvIG1haW5ib3giKSl9Y2F0Y2goWCl7Y29uc29sZS5lcnJvcigiRmFpbGVkIHRvIGluaXRpYWxpemUgY2hhcnQ6IixYKX19YXN5bmMgdXBkYXRlZChCKXtzdXBlci51cGRhdGVkKEIpLEIuaGFzKCJnb0JyaWdodCIpJiZ0aGlzLmNoYXJ0JiZhd2FpdCB0aGlzLnVwZGF0ZUNoYXJ0VGhlbWUoKSxCLmhhcygic2VyaWVzIikmJnRoaXMuY2hhcnQmJnRoaXMuc2VyaWVzLmxlbmd0aD4wJiZhd2FpdCB0aGlzLnVwZGF0ZVNlcmllcyh0aGlzLnNlcmllcyksQi5oYXMoInlBeGlzRm9ybWF0dGVyIikmJnRoaXMuY2hhcnQmJmF3YWl0IHRoaXMuY2hhcnQudXBkYXRlT3B0aW9ucyh7eWF4aXM6e2xhYmVsczp7Zm9ybWF0dGVyOnRoaXMueUF4aXNGb3JtYXR0ZXJ9fX0pLEIuaGFzKCJyZWFsdGltZU1vZGUiKSYmdGhpcy5jaGFydCYmKGF3YWl0IHRoaXMuY2hhcnQudXBkYXRlT3B0aW9ucyh7Y2hhcnQ6e2FuaW1hdGlvbnM6e2VuYWJsZWQ6IXRoaXMucmVhbHRpbWVNb2RlLHNwZWVkOjQwMCxhbmltYXRlR3JhZHVhbGx5OntlbmFibGVkOiExLGRlbGF5OjB9LGR5bmFtaWNBbmltYXRpb246e2VuYWJsZWQ6IXRoaXMucmVhbHRpbWVNb2RlLHNwZWVkOjM1MH19fX0pLHRoaXMucmVhbHRpbWVNb2RlJiZ0aGlzLnJvbGxpbmdXaW5kb3c+MCYmdGhpcy5hdXRvU2Nyb2xsSW50ZXJ2YWw+MD90aGlzLnN0YXJ0QXV0b1Njcm9sbCgpOnRoaXMuc3RvcEF1dG9TY3JvbGwoKSksQi5oYXMoImF1dG9TY3JvbGxJbnRlcnZhbCIpJiZ0aGlzLmNoYXJ0JiYodGhpcy5zdG9wQXV0b1Njcm9sbCgpLHRoaXMucmVhbHRpbWVNb2RlJiZ0aGlzLnJvbGxpbmdXaW5kb3c+MCYmdGhpcy5hdXRvU2Nyb2xsSW50ZXJ2YWw+MCYmdGhpcy5zdGFydEF1dG9TY3JvbGwoKSksKEIuaGFzKCJ5QXhpc1NjYWxpbmciKXx8Qi5oYXMoInlBeGlzTWF4IikpJiZ0aGlzLmNoYXJ0JiZhd2FpdCB0aGlzLmNoYXJ0LnVwZGF0ZU9wdGlvbnMoe3lheGlzOnttaW46MCxtYXg6dGhpcy55QXhpc1NjYWxpbmc9PT0iZHluYW1pYyI/dm9pZCAwOnRoaXMueUF4aXNNYXh9fSl9YXN5bmMgdXBkYXRlU2VyaWVzKEIsRz0hMCl7aWYodGhpcy5jaGFydCl0cnl7aWYodGhpcy5pbnRlcm5hbENoYXJ0RGF0YT1CLHRoaXMucm9sbGluZ1dpbmRvdz4wJiZ0aGlzLnJlYWx0aW1lTW9kZSl7bGV0IFA9RGF0ZS5ub3coKS10aGlzLnJvbGxpbmdXaW5kb3csZ2U9Qi5tYXAod2U9Pih7bmFtZTp3ZS5uYW1lLGRhdGE6d2UuZGF0YS5maWx0ZXIoST0+dHlwZW9mIEk9PSJvYmplY3QiJiZJIT09bnVsbCYmIngiaW4gST9uZXcgRGF0ZShJLngpLmdldFRpbWUoKT5QOiExKX0pKTtpZihnZS5zb21lKHdlPT53ZS5kYXRhLmxlbmd0aD4wKSl7aWYodGhpcy55QXhpc1NjYWxpbmc9PT0iZHluYW1pYyIpe2xldCB3ZT1nZS5mbGF0TWFwKEk9PkkuZGF0YS5tYXAobmU9Pm5lLnkpKTtpZih3ZS5sZW5ndGg+MCl7bGV0IEk9TWF0aC5tYXgoLi4ud2UpLG5lPU1hdGguY2VpbChJKjEuMSk7YXdhaXQgdGhpcy5jaGFydC51cGRhdGVPcHRpb25zKHt5YXhpczp7bWluOjAsbWF4Om5lfX0sITEsITEpfX1hd2FpdCB0aGlzLmNoYXJ0LnVwZGF0ZVNlcmllcyhnZSwhMSl9fWVsc2UgYXdhaXQgdGhpcy5jaGFydC51cGRhdGVTZXJpZXMoQixHKX1jYXRjaChlZSl7Y29uc29sZS5lcnJvcigiRmFpbGVkIHRvIHVwZGF0ZSBjaGFydCBzZXJpZXM6IixlZSl9fWFzeW5jIHVwZGF0ZVRpbWVXaW5kb3coKXtpZighdGhpcy5jaGFydHx8dGhpcy5yb2xsaW5nV2luZG93PD0wKXJldHVybjtsZXQgQj1EYXRlLm5vdygpLEc9Qi10aGlzLnJvbGxpbmdXaW5kb3c7YXdhaXQgdGhpcy5jaGFydC51cGRhdGVPcHRpb25zKHt4YXhpczp7bWluOkcsbWF4OkIsbGFiZWxzOntmb3JtYXQ6IkhIOm1tOnNzIixkYXRldGltZVVUQzohMSxzdHlsZTp7Y29sb3JzOlt0aGlzLmdvQnJpZ2h0PyJoc2woMCAwJSAyMCUpIjoiaHNsKDAgMCUgNjMuOSUpIl0sZm9udFNpemU6IjEycHgiLGZvbnRGYW1pbHk6Jy1hcHBsZS1zeXN0ZW0sIEJsaW5rTWFjU3lzdGVtRm9udCwgIlNlZ29lIFVJIiwgc2Fucy1zZXJpZicsZm9udFdlaWdodDoiNDAwIn19LHRpY2tBbW91bnQ6Nn19LCExLCExKX1hc3luYyBhcHBlbmREYXRhKEIpe3RoaXMuY2hhcnQmJnRoaXMuY2hhcnQuYXBwZW5kRGF0YShCKX1hc3luYyB1cGRhdGVPcHRpb25zKEIsRyxlZSl7aWYodGhpcy5jaGFydClyZXR1cm4gdGhpcy5jaGFydC51cGRhdGVPcHRpb25zKEIsRyxlZSl9YXN5bmMgcmVzaXplQ2hhcnQoKXtpZih0aGlzLmNoYXJ0KXt0aGlzLkRFQlVHX1JFU0laRSYmY29uc29sZS5sb2coIkRlZXNDaGFydEFyZWEgLSByZXNpemVDaGFydCBjYWxsZWQiKTt0cnl7bGV0IEI9dGhpcy5zaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3IoIi5tYWluYm94IiksRz10aGlzLnNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvcigiLmNoYXJ0Q29udGFpbmVyIik7aWYoIUJ8fCFHKXJldHVybjtCLm9mZnNldEhlaWdodDtsZXQgZWU9d2luZG93LmdldENvbXB1dGVkU3R5bGUoRyksUD1wYXJzZUludChlZS5wYWRkaW5nVG9wLDEwKSxnZT1wYXJzZUludChlZS5wYWRkaW5nQm90dG9tLDEwKSx3ZT1wYXJzZUludChlZS5wYWRkaW5nTGVmdCwxMCksST1wYXJzZUludChlZS5wYWRkaW5nUmlnaHQsMTApLG5lPUIuY2xpZW50V2lkdGgtd2UtSSxrZT1CLm9mZnNldEhlaWdodC1QLWdlO25lPjAmJmtlPjAmJih0aGlzLkRFQlVHX1JFU0laRSYmY29uc29sZS5sb2coIkRlZXNDaGFydEFyZWEgLSBVcGRhdGluZyBjaGFydCBkaW1lbnNpb25zOiIse3dpZHRoOm5lLGhlaWdodDprZX0pLGF3YWl0IHRoaXMuY2hhcnQudXBkYXRlT3B0aW9ucyh7Y2hhcnQ6e3dpZHRoOm5lLGhlaWdodDprZX19LCEwLCExKSl9Y2F0Y2goQil7Y29uc29sZS5lcnJvcigiRmFpbGVkIHRvIHJlc2l6ZSBjaGFydDoiLEIpfX19YXN5bmMgZm9yY2VSZXNpemUoKXthd2FpdCB0aGlzLnJlc2l6ZUNoYXJ0KCl9c3RhcnRBdXRvU2Nyb2xsKCl7dGhpcy5hdXRvU2Nyb2xsVGltZXJ8fCh0aGlzLmF1dG9TY3JvbGxUaW1lcj13aW5kb3cuc2V0SW50ZXJ2YWwoKCk9Pnt0aGlzLnVwZGF0ZVRpbWVXaW5kb3coKX0sdGhpcy5hdXRvU2Nyb2xsSW50ZXJ2YWwpKX1zdG9wQXV0b1Njcm9sbCgpe3RoaXMuYXV0b1Njcm9sbFRpbWVyJiYod2luZG93LmNsZWFySW50ZXJ2YWwodGhpcy5hdXRvU2Nyb2xsVGltZXIpLHRoaXMuYXV0b1Njcm9sbFRpbWVyPW51bGwpfWFzeW5jIHVwZGF0ZUNoYXJ0VGhlbWUoKXtpZighdGhpcy5jaGFydClyZXR1cm47bGV0IEI9IXRoaXMuZ29CcmlnaHQsRz1CPyJkYXJrIjoibGlnaHQiO2F3YWl0IHRoaXMuY2hhcnQudXBkYXRlT3B0aW9ucyh7dGhlbWU6e21vZGU6R30sY29sb3JzOkI/dGhpcy5DSEFSVF9DT0xPUlMuZGFyazp0aGlzLkNIQVJUX0NPTE9SUy5saWdodCx4YXhpczp7bGFiZWxzOntzdHlsZTp7Y29sb3JzOltCPyJoc2woMCAwJSA2My45JSkiOiJoc2woMCAwJSAyMCUpIl19fX0seWF4aXM6e2xhYmVsczp7c3R5bGU6e2NvbG9yczpbQj8iaHNsKDAgMCUgNjMuOSUpIjoiaHNsKDAgMCUgMjAlKSJdfX19LGdyaWQ6e2JvcmRlckNvbG9yOkI/ImhzbCgwIDAlIDE0LjklKSI6ImhzbCgwIDAlIDk0JSkifSxmaWxsOntncmFkaWVudDp7c2hhZGU6Qj8iZGFyayI6ImxpZ2h0IixvcGFjaXR5RnJvbTpCPy4yOi4zfX19KX1zdGF0aWN7U2koaSxyKX19O3JldHVybiBxPWl9KSgpfSk7dmFyIHhjcj1wKCgpPT57SDZlKCl9KTt2YXIgeWNyLHdjcj1wKCgpPT57eGUoKTtwMSgpO3ljcj0oKT0+Q2AKICAgIDxkZWVzLWRlbW93cmFwcGVyIC5ydW5BZnRlclJlbmRlcj0ke2FzeW5jIGU9PntsZXQgdD1lLnF1ZXJ5U2VsZWN0b3IoIiNzdHJ1Y3R1cmVkLWxvZyIpLHI9ZS5xdWVyeVNlbGVjdG9yKCIjcmF3LWxvZyIpLGksYSxuPVsiU2VydmVyIiwiRGF0YWJhc2UiLCJBUEkiLCJBdXRoIiwiQ2FjaGUiLCJRdWV1ZSIsIldlYlNvY2tldCIsIlNjaGVkdWxlciJdLG89e2RlYnVnOlsiTG9hZGluZyBtb2R1bGU6IHt7bW9kdWxlfX0iLCJDYWNoZSBoaXQgZm9yIGtleToge3trZXl9fSIsIlNRTCBxdWVyeSBleGVjdXRlZCBpbiB7e3RpbWV9fW1zIiwiUmVxdWVzdCBoZWFkZXJzOiB7e2hlYWRlcnN9fSIsIkVudmlyb25tZW50IHZhcmlhYmxlIGxvYWRlZDoge3t2YXJ9fSJdLGluZm86WyJSZXF1ZXN0IHJlY2VpdmVkOiB7e21ldGhvZH19IHt7cGF0aH19IiwiVXNlciB7e3VzZXJJZH19IGF1dGhlbnRpY2F0ZWQgc3VjY2Vzc2Z1bGx5IiwiUHJvY2Vzc2luZyBqb2Ige3tqb2JJZH19IGZyb20gcXVldWUiLCdTY2hlZHVsZWQgdGFzayAie3t0YXNrfX0iIHN0YXJ0ZWQnLCJXZWJTb2NrZXQgY29ubmVjdGlvbiBlc3RhYmxpc2hlZCBmcm9tIHt7aXB9fSJdLHdhcm46WyJTbG93IHF1ZXJ5IGRldGVjdGVkOiB7e3F1ZXJ5fX0gKHt7dGltZX19bXMpIiwiTWVtb3J5IHVzYWdlIGF0IHt7cGVyY2VudH19JSIsIlJhdGUgbGltaXQgYXBwcm9hY2hpbmcgZm9yIElQIHt7aXB9fSIsIkRlcHJlY2F0ZWQgQVBJIGVuZHBvaW50IGNhbGxlZDoge3tlbmRwb2ludH19IiwiQ2VydGlmaWNhdGUgZXhwaXJlcyBpbiB7e2RheXN9fSBkYXlzIl0sZXJyb3I6WyJEYXRhYmFzZSBjb25uZWN0aW9uIGxvc3Q6IHt7ZXJyb3J9fSIsIkZhaWxlZCB0byBwcm9jZXNzIHJlcXVlc3Q6IHt7ZXJyb3J9fSIsIkF1dGhlbnRpY2F0aW9uIGZhaWxlZCBmb3IgdXNlciB7e3VzZXJ9fSIsIkZpbGUgbm90IGZvdW5kOiB7e3BhdGh9fSIsIlNlcnZpY2UgdW5hdmFpbGFibGU6IHt7c2VydmljZX19Il0sc3VjY2VzczpbIlNlcnZlciBzdGFydGVkIHN1Y2Nlc3NmdWxseSBvbiBwb3J0IHt7cG9ydH19IiwiRGF0YWJhc2UgbWlncmF0aW9uIGNvbXBsZXRlZCIsIkJhY2t1cCBjb21wbGV0ZWQ6IHt7c2l6ZX19IE1CIiwiU1NMIGNlcnRpZmljYXRlIHJlbmV3ZWQiLCJIZWFsdGggY2hlY2sgcGFzc2VkOiBhbGwgc3lzdGVtcyBvcGVyYXRpb25hbCJdfSxzPVsiXHgxQls5MG0yMDI0LTAxLTE1VDEwOjIzOjQ1LjEyM1pceDFCWzBtIFx4MUJbMzZtSU5GT1x4MUJbMG0gIFtuZ2lueF0gR0VUIC9hcGkvaGVhbHRoIDIwMCAtIDJtcyIsIlx4MUJbOTBtMjAyNC0wMS0xNVQxMDoyMzo0NS40NTZaXHgxQlswbSBceDFCWzMzbVdBUk5ceDFCWzBtICBbcmVkaXNdIENvbm5lY3Rpb24gcG9vbCBydW5uaW5nIGxvdzogMy8xMCIsIlx4MUJbOTBtMjAyNC0wMS0xNVQxMDoyMzo0NS43ODlaXHgxQlswbSBceDFCWzMxbUVSUk9SXHgxQlswbSBbbW9uZ29kYl0gUXVlcnkgdGltZW91dCBhZnRlciAzMDAwMG1zIiwiXHgxQls5MG0yMDI0LTAxLTE1VDEwOjIzOjQ2LjAxMlpceDFCWzBtIFx4MUJbMzZtSU5GT1x4MUJbMG0gIFthcHBdIFByb2Nlc3NpbmcgYmF0Y2ggam9iICN7e2pvYklkfX0iLCJceDFCWzkwbTIwMjQtMDEtMTVUMTA6MjM6NDYuMzQ1Wlx4MUJbMG0gXHgxQlszMm1PS1x4MUJbMG0gICAgW2hlYWx0aF0gQWxsIHNlcnZpY2VzIGhlYWx0aHkiLCJceDFCWzkwbTIwMjQtMDEtMTVUMTA6MjM6NDYuNjc4Wlx4MUJbMG0gXHgxQlszNm1JTkZPXHgxQlswbSAgW2thZmthXSBNZXNzYWdlIGNvbnN1bWVkIGZyb20gdG9waWM6IGV2ZW50cyIsIlx4MUJbOTBtMjAyNC0wMS0xNVQxMDoyMzo0Ny4wMDFaXHgxQlswbSBceDFCWzM1bURFQlVHXHgxQlswbSBbZ3JwY10gUmVxdWVzdCByZWNlaXZlZDogR2V0VXNlcihpZD17e3VzZXJJZH19KSIsIlx4MUJbOTBtMjAyNC0wMS0xNVQxMDoyMzo0Ny4yMzRaXHgxQlswbSBceDFCWzMxbUVSUk9SXHgxQlswbSBbYXV0aF0gVG9rZW4gdmFsaWRhdGlvbiBmYWlsZWQ6IGV4cGlyZWQiLCJceDFCWzkwbTIwMjQtMDEtMTVUMTA6MjM6NDcuNTY3Wlx4MUJbMG0gXHgxQlszM21XQVJOXHgxQlswbSAgW3JhdGUtbGltaXRdIElQIHt7aXB9fSBhcHByb2FjaGluZyByYXRlIGxpbWl0IiwiXHgxQls5MG0yMDI0LTAxLTE1VDEwOjIzOjQ3Ljg5MFpceDFCWzBtIFx4MUJbMzZtSU5GT1x4MUJbMG0gIFt3ZWJzb2NrZXRdIENsaWVudCBjb25uZWN0ZWQ6IHNlc3Npb249e3tzZXNzaW9ufX0iLGBceDFCWzMxbUVycm9yOiBDb25uZWN0aW9uIHJlZnVzZWRceDFCWzBtCiAgICBhdCBUY3BDb25uZWN0aW9uLmNvbm5lY3QgKC9hcHAvbm9kZV9tb2R1bGVzL3BnL2xpYi9jb25uZWN0aW9uLmpzOjEyOjE1KQogICAgYXQgUG9vbC5jb25uZWN0ICgvYXBwL25vZGVfbW9kdWxlcy9wZy9saWIvcG9vbC5qczo0NToyMykKICAgIGF0IGFzeW5jIERhdGFiYXNlU2VydmljZS5xdWVyeSAoL2FwcC9zcmMvZGIvc2VydmljZS50czo4OToxMilgXSxsPSgpPT57bGV0IHY9WyJkZWJ1ZyIsImluZm8iLCJ3YXJuIiwiZXJyb3IiLCJzdWNjZXNzIl0sYj1bLjIsLjUsLjE1LC4xLC4wNV0seT1NYXRoLnJhbmRvbSgpLHc9MCxrPSJpbmZvIjtmb3IobGV0IEQ9MDtEPGIubGVuZ3RoO0QrKylpZih3Kz1iW0RdLHk8dyl7az12W0RdO2JyZWFrfWxldCBPPW5bTWF0aC5mbG9vcihNYXRoLnJhbmRvbSgpKm4ubGVuZ3RoKV0sej1vW2tdLEY9eltNYXRoLmZsb29yKE1hdGgucmFuZG9tKCkqei5sZW5ndGgpXS5yZXBsYWNlKCJ7e21vZHVsZX19IixbImV4cHJlc3MiLCJtb25nb29zZSIsInJlZGlzIiwic29ja2V0LmlvIl1bTWF0aC5mbG9vcihNYXRoLnJhbmRvbSgpKjQpXSkucmVwbGFjZSgie3trZXl9fSIsInVzZXI6IitNYXRoLmZsb29yKE1hdGgucmFuZG9tKCkqMWUzKSkucmVwbGFjZSgie3t0aW1lfX0iLFN0cmluZyhNYXRoLmZsb29yKE1hdGgucmFuZG9tKCkqNTAwKSs1MCkpLnJlcGxhY2UoInt7aGVhZGVyc319IiwiQ29udGVudC1UeXBlOiBhcHBsaWNhdGlvbi9qc29uLCBBdXRob3JpemF0aW9uOiBCZWFyZXIgLi4uIikucmVwbGFjZSgie3t2YXJ9fSIsWyJOT0RFX0VOViIsIkRBVEFCQVNFX1VSTCIsIkFQSV9LRVkiLCJQT1JUIl1bTWF0aC5mbG9vcihNYXRoLnJhbmRvbSgpKjQpXSkucmVwbGFjZSgie3ttZXRob2R9fSIsWyJHRVQiLCJQT1NUIiwiUFVUIiwiREVMRVRFIl1bTWF0aC5mbG9vcihNYXRoLnJhbmRvbSgpKjQpXSkucmVwbGFjZSgie3twYXRofX0iLFsiL2FwaS91c2VycyIsIi9hcGkvYXV0aC9sb2dpbiIsIi9hcGkvcHJvZHVjdHMiLCIvaGVhbHRoIl1bTWF0aC5mbG9vcihNYXRoLnJhbmRvbSgpKjQpXSkucmVwbGFjZSgie3t1c2VySWR9fSIsU3RyaW5nKE1hdGguZmxvb3IoTWF0aC5yYW5kb20oKSoxZTQpKSkucmVwbGFjZSgie3tqb2JJZH19Iiwiam9iXyIrTWF0aC5yYW5kb20oKS50b1N0cmluZygzNikuc3Vic3RyaW5nKDIsMTEpKS5yZXBsYWNlKCJ7e3Rhc2t9fSIsWyJjbGVhbnVwIiwiYmFja3VwIiwicmVwb3J0LWdlbmVyYXRpb24iLCJjYWNoZS1yZWZyZXNoIl1bTWF0aC5mbG9vcihNYXRoLnJhbmRvbSgpKjQpXSkucmVwbGFjZSgie3tpcH19IixgMTkyLjE2OC4xLiR7TWF0aC5mbG9vcihNYXRoLnJhbmRvbSgpKjI1NSl9YCkucmVwbGFjZSgie3txdWVyeX19IiwiU0VMRUNUICogRlJPTSB1c2VycyBXSEVSRSAuLi4iKS5yZXBsYWNlKCJ7e3BlcmNlbnR9fSIsU3RyaW5nKE1hdGguZmxvb3IoTWF0aC5yYW5kb20oKSozMCkrNzApKS5yZXBsYWNlKCJ7e2VuZHBvaW50fX0iLCIvYXBpL3YxL2xlZ2FjeSIpLnJlcGxhY2UoInt7ZGF5c319IixTdHJpbmcoTWF0aC5mbG9vcihNYXRoLnJhbmRvbSgpKjMwKSsxKSkucmVwbGFjZSgie3tlcnJvcn19IixbIkVDT05OUkVGVVNFRCIsIkVUSU1FRE9VVCIsIkVOT1RGT1VORCJdW01hdGguZmxvb3IoTWF0aC5yYW5kb20oKSozKV0pLnJlcGxhY2UoInt7dXNlcn19IiwidXNlcl8iK01hdGguZmxvb3IoTWF0aC5yYW5kb20oKSoxZTMpKS5yZXBsYWNlKCJ7e3NlcnZpY2V9fSIsWyJSZWRpcyIsIk1vbmdvREIiLCJFbGFzdGljU2VhcmNoIl1bTWF0aC5mbG9vcihNYXRoLnJhbmRvbSgpKjMpXSkucmVwbGFjZSgie3twb3J0fX0iLFN0cmluZygzZTMrTWF0aC5mbG9vcihNYXRoLnJhbmRvbSgpKjEwKSkpLnJlcGxhY2UoInt7c2l6ZX19IixTdHJpbmcoTWF0aC5mbG9vcihNYXRoLnJhbmRvbSgpKjUwMCkrMTAwKSk7dC5hZGRMb2coayxGLE8pfSxjPSgpPT57bGV0IHY9c1tNYXRoLmZsb29yKE1hdGgucmFuZG9tKCkqcy5sZW5ndGgpXSxiPW5ldyBEYXRlKCkudG9JU09TdHJpbmcoKSx5PXYucmVwbGFjZSgvMjAyNC0wMS0xNVQxMDoyMzpcZHsyfVwuXGR7M31aL2csYikucmVwbGFjZSgie3tqb2JJZH19IixTdHJpbmcoTWF0aC5mbG9vcihNYXRoLnJhbmRvbSgpKjFlNCkpKS5yZXBsYWNlKCJ7e3VzZXJJZH19IixTdHJpbmcoTWF0aC5mbG9vcihNYXRoLnJhbmRvbSgpKjFlNCkpKS5yZXBsYWNlKCJ7e2lwfX0iLGAxOTIuMTY4LjEuJHtNYXRoLmZsb29yKE1hdGgucmFuZG9tKCkqMjU1KX1gKS5yZXBsYWNlKCJ7e3Nlc3Npb259fSIsTWF0aC5yYW5kb20oKS50b1N0cmluZygzNikuc3Vic3RyaW5nKDIsMTEpKTtyLndyaXRlbG5SYXcoeSl9LHU9KCk9PntpZighaSl7bGV0IHY9KCk9PntsKCk7bGV0IGI9TWF0aC5yYW5kb20oKSoyZTMrNTAwO2k9d2luZG93LnNldFRpbWVvdXQoKCk9PntpJiZ2KCl9LGIpfTt2KCl9fSxkPSgpPT57aSYmKHdpbmRvdy5jbGVhclRpbWVvdXQoaSksaT1udWxsKX0saD0oKT0+e2lmKCFhKXtsZXQgdj0oKT0+e2MoKTtsZXQgYj1NYXRoLnJhbmRvbSgpKjFlMysyMDA7YT13aW5kb3cuc2V0VGltZW91dCgoKT0+e2EmJnYoKX0sYil9O3YoKX19LGY9KCk9PnthJiYod2luZG93LmNsZWFyVGltZW91dChhKSxhPW51bGwpfTtlLnF1ZXJ5U2VsZWN0b3JBbGwoImRlZXMtYnV0dG9uIikuZm9yRWFjaCh2PT57c3dpdGNoKHYudGV4dENvbnRlbnQ/LnRyaW0oKSl7Y2FzZSJBZGQgU3RydWN0dXJlZCBMb2ciOnYuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLCgpPT5sKCkpO2JyZWFrO2Nhc2UiU3RhcnQgU3RydWN0dXJlZCI6di5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsKCk9PnUoKSk7YnJlYWs7Y2FzZSJTdG9wIFN0cnVjdHVyZWQiOnYuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLCgpPT5kKCkpO2JyZWFrO2Nhc2UiQWRkIERvY2tlciBMb2ciOnYuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLCgpPT5jKCkpO2JyZWFrO2Nhc2UiU3RhcnQgRG9ja2VyIjp2LmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIiwoKT0+aCgpKTticmVhaztjYXNlIlN0b3AgRG9ja2VyIjp2LmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIiwoKT0+ZigpKTticmVha319KX19PgogICAgICA8c3R5bGU+CiAgICAgICAgJHtvZWAKICAgICAgICAgIC5kZW1vQm94IHsKICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICAgICAgICBiYWNrZ3JvdW5kOiAke20uYmRUaGVtZSgiaHNsKDAgMCUgOTUlKSIsImhzbCgwIDAlIDUlKSIpfTsKICAgICAgICAgICAgaGVpZ2h0OiAxMDAlOwogICAgICAgICAgICB3aWR0aDogMTAwJTsKICAgICAgICAgICAgcGFkZGluZzogNDBweDsKICAgICAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDsKICAgICAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgICAgICAgZ2FwOiAyNHB4OwogICAgICAgICAgfQogICAgICAgICAgLnNlY3Rpb24gewogICAgICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICAgICAgICBnYXA6IDEycHg7CiAgICAgICAgICB9CiAgICAgICAgICAuc2VjdGlvbi10aXRsZSB7CiAgICAgICAgICAgIGNvbG9yOiAke20uYmRUaGVtZSgiaHNsKDAgMCUgOSUpIiwiaHNsKDAgMCUgOTUlKSIpfTsKICAgICAgICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgICAgICAgICBmb250LXdlaWdodDogNjAwOwogICAgICAgICAgICBmb250LWZhbWlseTogJ0dlaXN0IFNhbnMnLCBzYW5zLXNlcmlmOwogICAgICAgICAgfQogICAgICAgICAgLnNlY3Rpb24tZGVzY3JpcHRpb24gewogICAgICAgICAgICBjb2xvcjogJHttLmJkVGhlbWUoImhzbCgyMTUuNCAxNi4zJSA0Ni45JSkiLCJoc2woMjE1IDIwLjIlIDY1LjElKSIpfTsKICAgICAgICAgICAgZm9udC1zaXplOiAxMnB4OwogICAgICAgICAgICBmb250LWZhbWlseTogJ0dlaXN0IFNhbnMnLCBzYW5zLXNlcmlmOwogICAgICAgICAgfQogICAgICAgICAgLmNvbnRyb2xzIHsKICAgICAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICAgICAgZ2FwOiAxMHB4OwogICAgICAgICAgICBmbGV4LXdyYXA6IHdyYXA7CiAgICAgICAgICB9CiAgICAgICAgYH0KICAgICAgPC9zdHlsZT4KICAgIDxkaXYgY2xhc3M9ImRlbW9Cb3giPgogICAgICA8IS0tIFN0cnVjdHVyZWQgTG9ncyBTZWN0aW9uIC0tPgogICAgICA8ZGl2IGNsYXNzPSJzZWN0aW9uIj4KICAgICAgICA8ZGl2IGNsYXNzPSJzZWN0aW9uLXRpdGxlIj5TdHJ1Y3R1cmVkIExvZ3MgKElMb2dFbnRyeSk8L2Rpdj4KICAgICAgICA8ZGl2IGNsYXNzPSJzZWN0aW9uLWRlc2NyaXB0aW9uIj4KICAgICAgICAgIFN0cnVjdHVyZWQgbG9nIGVudHJpZXMgd2l0aCBsZXZlbCwgbWVzc2FnZSwgYW5kIHNvdXJjZS4gU3VwcG9ydHMgc2VhcmNoIGFuZCBrZXl3b3JkIGhpZ2hsaWdodGluZy4KICAgICAgICA8L2Rpdj4KICAgICAgICA8ZGl2IGNsYXNzPSJjb250cm9scyI+CiAgICAgICAgICA8ZGVlcy1idXR0b24+QWRkIFN0cnVjdHVyZWQgTG9nPC9kZWVzLWJ1dHRvbj4KICAgICAgICAgIDxkZWVzLWJ1dHRvbj5TdGFydCBTdHJ1Y3R1cmVkPC9kZWVzLWJ1dHRvbj4KICAgICAgICAgIDxkZWVzLWJ1dHRvbj5TdG9wIFN0cnVjdHVyZWQ8L2RlZXMtYnV0dG9uPgogICAgICAgIDwvZGl2PgogICAgICAgIDxkZWVzLWNoYXJ0LWxvZwogICAgICAgICAgaWQ9InN0cnVjdHVyZWQtbG9nIgogICAgICAgICAgLmxhYmVsPSR7IlByb2R1Y3Rpb24gU2VydmVyIExvZ3MifQogICAgICAgICAgLmhpZ2hsaWdodEtleXdvcmRzPSR7WyJlcnJvciIsImZhaWxlZCIsInRpbWVvdXQiXX0KICAgICAgICAgIC5zaG93TWV0cmljcz0keyEwfQogICAgICAgID48L2RlZXMtY2hhcnQtbG9nPgogICAgICA8L2Rpdj4KCiAgICAgIDwhLS0gUmF3IExvZ3MgU2VjdGlvbiAtLT4KICAgICAgPGRpdiBjbGFzcz0ic2VjdGlvbiI+CiAgICAgICAgPGRpdiBjbGFzcz0ic2VjdGlvbi10aXRsZSI+UmF3IExvZ3MgKERvY2tlci9Db250YWluZXIgU3R5bGUpPC9kaXY+CiAgICAgICAgPGRpdiBjbGFzcz0ic2VjdGlvbi1kZXNjcmlwdGlvbiI+CiAgICAgICAgICBSYXcgbG9nIG91dHB1dCB3aXRoIEFOU0kgZXNjYXBlIHNlcXVlbmNlcyBmb3IgcmVhbCBEb2NrZXIvY29udGFpbmVyIGxvZ3MuCiAgICAgICAgPC9kaXY+CiAgICAgICAgPGRpdiBjbGFzcz0iY29udHJvbHMiPgogICAgICAgICAgPGRlZXMtYnV0dG9uPkFkZCBEb2NrZXIgTG9nPC9kZWVzLWJ1dHRvbj4KICAgICAgICAgIDxkZWVzLWJ1dHRvbj5TdGFydCBEb2NrZXI8L2RlZXMtYnV0dG9uPgogICAgICAgICAgPGRlZXMtYnV0dG9uPlN0b3AgRG9ja2VyPC9kZWVzLWJ1dHRvbj4KICAgICAgICA8L2Rpdj4KICAgICAgICA8ZGVlcy1jaGFydC1sb2cKICAgICAgICAgIGlkPSJyYXctbG9nIgogICAgICAgICAgLmxhYmVsPSR7IkRvY2tlciBDb250YWluZXIgTG9ncyJ9CiAgICAgICAgICAubW9kZT0keyJyYXcifQogICAgICAgICAgLnNob3dNZXRyaWNzPSR7ITF9CiAgICAgICAgPjwvZGVlcy1jaGFydC1sb2c+CiAgICAgIDwvZGl2PgogICAgPC9kaXY+CiAgICA8L2RlZXMtZGVtb3dyYXBwZXI+CiAgYH0pO3ZhciBPbyxrMSxNY3Isa2NyPXAoKCk9Pnt4ZSgpO0t0KCk7d2NyKCk7SmUoKTtCNCgpO09vPWZ1bmN0aW9uKGUsdCxyLGksYSxuKXtmdW5jdGlvbiBvKHkpe2lmKHkhPT12b2lkIDAmJnR5cGVvZiB5IT0iZnVuY3Rpb24iKXRocm93IG5ldyBUeXBlRXJyb3IoIkZ1bmN0aW9uIGV4cGVjdGVkIik7cmV0dXJuIHl9Zm9yKHZhciBzPWkua2luZCxsPXM9PT0iZ2V0dGVyIj8iZ2V0IjpzPT09InNldHRlciI/InNldCI6InZhbHVlIixjPSF0JiZlP2kuc3RhdGljP2U6ZS5wcm90b3R5cGU6bnVsbCx1PXR8fChjP09iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoYyxpLm5hbWUpOnt9KSxkLGg9ITEsZj1yLmxlbmd0aC0xO2Y+PTA7Zi0tKXt2YXIgeD17fTtmb3IodmFyIHYgaW4gaSl4W3ZdPXY9PT0iYWNjZXNzIj97fTppW3ZdO2Zvcih2YXIgdiBpbiBpLmFjY2Vzcyl4LmFjY2Vzc1t2XT1pLmFjY2Vzc1t2XTt4LmFkZEluaXRpYWxpemVyPWZ1bmN0aW9uKHkpe2lmKGgpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGFkZCBpbml0aWFsaXplcnMgYWZ0ZXIgZGVjb3JhdGlvbiBoYXMgY29tcGxldGVkIik7bi5wdXNoKG8oeXx8bnVsbCkpfTt2YXIgYj0oMCxyW2ZdKShzPT09ImFjY2Vzc29yIj97Z2V0OnUuZ2V0LHNldDp1LnNldH06dVtsXSx4KTtpZihzPT09ImFjY2Vzc29yIil7aWYoYj09PXZvaWQgMCljb250aW51ZTtpZihiPT09bnVsbHx8dHlwZW9mIGIhPSJvYmplY3QiKXRocm93IG5ldyBUeXBlRXJyb3IoIk9iamVjdCBleHBlY3RlZCIpOyhkPW8oYi5nZXQpKSYmKHUuZ2V0PWQpLChkPW8oYi5zZXQpKSYmKHUuc2V0PWQpLChkPW8oYi5pbml0KSkmJmEudW5zaGlmdChkKX1lbHNlKGQ9byhiKSkmJihzPT09ImZpZWxkIj9hLnVuc2hpZnQoZCk6dVtsXT1kKX1jJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoYyxpLm5hbWUsdSksaD0hMH0sazE9ZnVuY3Rpb24oZSx0LHIpe2Zvcih2YXIgaT1hcmd1bWVudHMubGVuZ3RoPjIsYT0wO2E8dC5sZW5ndGg7YSsrKXI9aT90W2FdLmNhbGwoZSxyKTp0W2FdLmNhbGwoZSk7cmV0dXJuIGk/cjp2b2lkIDB9LE1jcj0oKCk9PntsZXQgZT1beWUoImRlZXMtY2hhcnQtbG9nIildLHQscj1bXSxpLGE9emUsbixvPVtdLHM9W10sbCxjPVtdLHU9W10sZCxoPVtdLGY9W10seCx2PVtdLGI9W10seSx3PVtdLGs9W10sTyx6PVtdLE09W10sRixEPVtdLE49W10sUixfPVtdLFM9W10sJCxUPVtdLEU9W10scSxCPVtdLEc9W10sZWUsUD1bXSxnZT1bXTt2YXIgd2U9Y2xhc3MgZXh0ZW5kcyBhe3N0YXRpY3tpPXRoaXN9c3RhdGlje2xldCBJPXR5cGVvZiBTeW1ib2w9PSJmdW5jdGlvbiImJlN5bWJvbC5tZXRhZGF0YT9PYmplY3QuY3JlYXRlKGFbU3ltYm9sLm1ldGFkYXRhXT8/bnVsbCk6dm9pZCAwO249W2ooKV0sbD1baih7dHlwZTpTdHJpbmd9KV0sZD1baih7dHlwZTpBcnJheX0pXSx4PVtqKHt0eXBlOkJvb2xlYW59KV0seT1baih7dHlwZTpOdW1iZXJ9KV0sTz1baih7dHlwZTpBcnJheX0pXSxGPVtqKHt0eXBlOkJvb2xlYW59KV0sUj1bZmUoKV0sJD1bZmUoKV0scT1bZmUoKV0sZWU9W2ZlKCldLE9vKHRoaXMsbnVsbCxuLHtraW5kOiJhY2Nlc3NvciIsbmFtZToibGFiZWwiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOm5lPT4ibGFiZWwiaW4gbmUsZ2V0Om5lPT5uZS5sYWJlbCxzZXQ6KG5lLGtlKT0+e25lLmxhYmVsPWtlfX0sbWV0YWRhdGE6SX0sbyxzKSxPbyh0aGlzLG51bGwsbCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6Im1vZGUiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOm5lPT4ibW9kZSJpbiBuZSxnZXQ6bmU9Pm5lLm1vZGUsc2V0OihuZSxrZSk9PntuZS5tb2RlPWtlfX0sbWV0YWRhdGE6SX0sYyx1KSxPbyh0aGlzLG51bGwsZCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImxvZ0VudHJpZXMiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOm5lPT4ibG9nRW50cmllcyJpbiBuZSxnZXQ6bmU9Pm5lLmxvZ0VudHJpZXMsc2V0OihuZSxrZSk9PntuZS5sb2dFbnRyaWVzPWtlfX0sbWV0YWRhdGE6SX0saCxmKSxPbyh0aGlzLG51bGwseCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImF1dG9TY3JvbGwiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOm5lPT4iYXV0b1Njcm9sbCJpbiBuZSxnZXQ6bmU9Pm5lLmF1dG9TY3JvbGwsc2V0OihuZSxrZSk9PntuZS5hdXRvU2Nyb2xsPWtlfX0sbWV0YWRhdGE6SX0sdixiKSxPbyh0aGlzLG51bGwseSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6Im1heEVudHJpZXMiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOm5lPT4ibWF4RW50cmllcyJpbiBuZSxnZXQ6bmU9Pm5lLm1heEVudHJpZXMsc2V0OihuZSxrZSk9PntuZS5tYXhFbnRyaWVzPWtlfX0sbWV0YWRhdGE6SX0sdyxrKSxPbyh0aGlzLG51bGwsTyx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImhpZ2hsaWdodEtleXdvcmRzIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpuZT0+ImhpZ2hsaWdodEtleXdvcmRzImluIG5lLGdldDpuZT0+bmUuaGlnaGxpZ2h0S2V5d29yZHMsc2V0OihuZSxrZSk9PntuZS5oaWdobGlnaHRLZXl3b3Jkcz1rZX19LG1ldGFkYXRhOkl9LHosTSksT28odGhpcyxudWxsLEYse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJzaG93TWV0cmljcyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6bmU9PiJzaG93TWV0cmljcyJpbiBuZSxnZXQ6bmU9Pm5lLnNob3dNZXRyaWNzLHNldDoobmUsa2UpPT57bmUuc2hvd01ldHJpY3M9a2V9fSxtZXRhZGF0YTpJfSxELE4pLE9vKHRoaXMsbnVsbCxSLHtraW5kOiJhY2Nlc3NvciIsbmFtZToic2VhcmNoUXVlcnkiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOm5lPT4ic2VhcmNoUXVlcnkiaW4gbmUsZ2V0Om5lPT5uZS5zZWFyY2hRdWVyeSxzZXQ6KG5lLGtlKT0+e25lLnNlYXJjaFF1ZXJ5PWtlfX0sbWV0YWRhdGE6SX0sXyxTKSxPbyh0aGlzLG51bGwsJCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImZpbHRlck1vZGUiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOm5lPT4iZmlsdGVyTW9kZSJpbiBuZSxnZXQ6bmU9Pm5lLmZpbHRlck1vZGUsc2V0OihuZSxrZSk9PntuZS5maWx0ZXJNb2RlPWtlfX0sbWV0YWRhdGE6SX0sVCxFKSxPbyh0aGlzLG51bGwscSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6Im1ldHJpY3MiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOm5lPT4ibWV0cmljcyJpbiBuZSxnZXQ6bmU9Pm5lLm1ldHJpY3Msc2V0OihuZSxrZSk9PntuZS5tZXRyaWNzPWtlfX0sbWV0YWRhdGE6SX0sQixHKSxPbyh0aGlzLG51bGwsZWUse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJ0ZXJtaW5hbFJlYWR5IixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpuZT0+InRlcm1pbmFsUmVhZHkiaW4gbmUsZ2V0Om5lPT5uZS50ZXJtaW5hbFJlYWR5LHNldDoobmUsa2UpPT57bmUudGVybWluYWxSZWFkeT1rZX19LG1ldGFkYXRhOkl9LFAsZ2UpLE9vKG51bGwsdD17dmFsdWU6aX0sZSx7a2luZDoiY2xhc3MiLG5hbWU6aS5uYW1lLG1ldGFkYXRhOkl9LG51bGwsciksd2U9aT10LnZhbHVlLEkmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShpLFN5bWJvbC5tZXRhZGF0YSx7ZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITAsdmFsdWU6SX0pfXN0YXRpYyBkZW1vPXljcjtzdGF0aWMgZGVtb0dyb3Vwcz1bIkNoYXJ0IiwiV29ya3NwYWNlIl07I2U9azEodGhpcyxvLCJTZXJ2ZXIgTG9ncyIpO2dldCBsYWJlbCgpe3JldHVybiB0aGlzLiNlfXNldCBsYWJlbChJKXt0aGlzLiNlPUl9I3Q9KGsxKHRoaXMscyksazEodGhpcyxjLCJzdHJ1Y3R1cmVkIikpO2dldCBtb2RlKCl7cmV0dXJuIHRoaXMuI3R9c2V0IG1vZGUoSSl7dGhpcy4jdD1JfSNyPShrMSh0aGlzLHUpLGsxKHRoaXMsaCxbXSkpO2dldCBsb2dFbnRyaWVzKCl7cmV0dXJuIHRoaXMuI3J9c2V0IGxvZ0VudHJpZXMoSSl7dGhpcy4jcj1JfSNpPShrMSh0aGlzLGYpLGsxKHRoaXMsdiwhMCkpO2dldCBhdXRvU2Nyb2xsKCl7cmV0dXJuIHRoaXMuI2l9c2V0IGF1dG9TY3JvbGwoSSl7dGhpcy4jaT1JfSNhPShrMSh0aGlzLGIpLGsxKHRoaXMsdywxZTQpKTtnZXQgbWF4RW50cmllcygpe3JldHVybiB0aGlzLiNhfXNldCBtYXhFbnRyaWVzKEkpe3RoaXMuI2E9SX0jbj0oazEodGhpcyxrKSxrMSh0aGlzLHosW10pKTtnZXQgaGlnaGxpZ2h0S2V5d29yZHMoKXtyZXR1cm4gdGhpcy4jbn1zZXQgaGlnaGxpZ2h0S2V5d29yZHMoSSl7dGhpcy4jbj1JfSNvPShrMSh0aGlzLE0pLGsxKHRoaXMsRCwhMCkpO2dldCBzaG93TWV0cmljcygpe3JldHVybiB0aGlzLiNvfXNldCBzaG93TWV0cmljcyhJKXt0aGlzLiNvPUl9I3M9KGsxKHRoaXMsTiksazEodGhpcyxfLCIiKSk7Z2V0IHNlYXJjaFF1ZXJ5KCl7cmV0dXJuIHRoaXMuI3N9c2V0IHNlYXJjaFF1ZXJ5KEkpe3RoaXMuI3M9SX0jbD0oazEodGhpcyxTKSxrMSh0aGlzLFQsITEpKTtnZXQgZmlsdGVyTW9kZSgpe3JldHVybiB0aGlzLiNsfXNldCBmaWx0ZXJNb2RlKEkpe3RoaXMuI2w9SX0jYz0oazEodGhpcyxFKSxrMSh0aGlzLEIse2RlYnVnOjAsaW5mbzowLHdhcm46MCxlcnJvcjowLHN1Y2Nlc3M6MCx0b3RhbDowLHJhdGU6MH0pKTtnZXQgbWV0cmljcygpe3JldHVybiB0aGlzLiNjfXNldCBtZXRyaWNzKEkpe3RoaXMuI2M9SX0jZD0oazEodGhpcyxHKSxrMSh0aGlzLFAsITEpKTtnZXQgdGVybWluYWxSZWFkeSgpe3JldHVybiB0aGlzLiNkfXNldCB0ZXJtaW5hbFJlYWR5KEkpe3RoaXMuI2Q9SX1sb2dCdWZmZXI9KGsxKHRoaXMsZ2UpLFtdKTt0cmFpbGluZ0hpZGRlbkNvdW50PTA7dGVybWluYWw9bnVsbDtmaXRBZGRvbj1udWxsO3NlYXJjaEFkZG9uPW51bGw7cmVzaXplT2JzZXJ2ZXI9bnVsbDt0ZXJtaW5hbFRoZW1lU3Vic2NyaXB0aW9uPW51bGw7ZG9tdG9vbHNJbnN0YW5jZT1udWxsO3JhdGVCdWZmZXI9W107cmF0ZUludGVydmFsPW51bGw7c3RhdGljIHN0eWxlcz1bRGUsbS5kZWZhdWx0U3R5bGVzLG9lYAogICAgICA6aG9zdCB7CiAgICAgICAgZGlzcGxheTogYmxvY2s7CiAgICAgICAgZm9udC1mYW1pbHk6IC1hcHBsZS1zeXN0ZW0sIEJsaW5rTWFjU3lzdGVtRm9udCwgJ1NlZ29lIFVJJywgc2Fucy1zZXJpZjsKICAgICAgICBjb2xvcjogJHttLmJkVGhlbWUoImhzbCgwIDAlIDMuOSUpIiwiaHNsKDAgMCUgOTglKSIpfTsKICAgICAgfQoKICAgICAgLm1haW5ib3ggewogICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgICB3aWR0aDogMTAwJTsKICAgICAgICBoZWlnaHQ6IDQwMHB4OwogICAgICAgIGJhY2tncm91bmQ6ICR7bS5iZFRoZW1lKCJoc2woMCAwJSAxMDAlKSIsImhzbCgwIDAlIDMuOSUpIil9OwogICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICR7bS5iZFRoZW1lKCJoc2woMCAwJSA4OS44JSkiLCJoc2woMCAwJSAxNC45JSkiKX07CiAgICAgICAgYm9yZGVyLXJhZGl1czogOHB4OwogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgICB9CgogICAgICAuaGVhZGVyIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke20uYmRUaGVtZSgiaHNsKDAgMCUgOTclKSIsImhzbCgwIDAlIDclKSIpfTsKICAgICAgICBwYWRkaW5nOiA4cHggMTJweDsKICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHttLmJkVGhlbWUoImhzbCgwIDAlIDg5LjglKSIsImhzbCgwIDAlIDE0LjklKSIpfTsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgZ2FwOiAxMnB4OwogICAgICAgIGZsZXgtc2hyaW5rOiAwOwogICAgICAgIGZsZXgtd3JhcDogd3JhcDsKICAgICAgfQoKICAgICAgLnRpdGxlIHsKICAgICAgICBmb250LXdlaWdodDogNTAwOwogICAgICAgIGZvbnQtc2l6ZTogMTRweDsKICAgICAgICBjb2xvcjogJHttLmJkVGhlbWUoImhzbCgwIDAlIDklKSIsImhzbCgwIDAlIDk1JSkiKX07CiAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDsKICAgICAgfQoKICAgICAgLnNlYXJjaC1ib3ggewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBnYXA6IDRweDsKICAgICAgICBmbGV4OiAxOwogICAgICAgIG1pbi13aWR0aDogMTUwcHg7CiAgICAgICAgbWF4LXdpZHRoOiAzMDBweDsKICAgICAgfQoKICAgICAgLnNlYXJjaC1ib3ggaW5wdXQgewogICAgICAgIGZsZXg6IDE7CiAgICAgICAgcGFkZGluZzogNHB4IDhweDsKICAgICAgICBmb250LXNpemU6IDEycHg7CiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHttLmJkVGhlbWUoImhzbCgwIDAlIDg5LjglKSIsImhzbCgwIDAlIDE0LjklKSIpfTsKICAgICAgICBib3JkZXItcmFkaXVzOiA0cHg7CiAgICAgICAgYmFja2dyb3VuZDogJHttLmJkVGhlbWUoImhzbCgwIDAlIDEwMCUpIiwiaHNsKDAgMCUgOSUpIil9OwogICAgICAgIGNvbG9yOiAke20uYmRUaGVtZSgiaHNsKDAgMCUgOSUpIiwiaHNsKDAgMCUgOTUlKSIpfTsKICAgICAgICBvdXRsaW5lOiBub25lOwogICAgICB9CgogICAgICAuc2VhcmNoLWJveCBpbnB1dDpmb2N1cyB7CiAgICAgICAgYm9yZGVyLWNvbG9yOiAke20uYmRUaGVtZSgiaHNsKDIyMi4yIDQ3LjQlIDUxLjIlKSIsImhzbCgyMTcuMiA5MS4yJSA1OS44JSkiKX07CiAgICAgIH0KCiAgICAgIC5zZWFyY2gtYm94IGlucHV0OjpwbGFjZWhvbGRlciB7CiAgICAgICAgY29sb3I6ICR7bS5iZFRoZW1lKCJoc2woMCAwJSA2My45JSkiLCJoc2woMCAwJSA0NS4xJSkiKX07CiAgICAgIH0KCiAgICAgIC5zZWFyY2gtbmF2IHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGdhcDogMnB4OwogICAgICB9CgogICAgICAuc2VhcmNoLW5hdiBidXR0b24gewogICAgICAgIHBhZGRpbmc6IDRweCA2cHg7CiAgICAgICAgZm9udC1zaXplOiAxMXB4OwogICAgICAgIGJhY2tncm91bmQ6ICR7bS5iZFRoZW1lKCJoc2woMCAwJSAxMDAlKSIsImhzbCgwIDAlIDE0LjklKSIpfTsKICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAke20uYmRUaGVtZSgiaHNsKDAgMCUgODkuOCUpIiwiaHNsKDAgMCUgMTQuOSUpIil9OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDNweDsKICAgICAgICBjb2xvcjogJHttLmJkVGhlbWUoImhzbCgwIDAlIDQ1LjElKSIsImhzbCgwIDAlIDYzLjklKSIpfTsKICAgICAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICAgICAgbGluZS1oZWlnaHQ6IDE7CiAgICAgIH0KCiAgICAgIC5zZWFyY2gtbmF2IGJ1dHRvbjpob3ZlciB7CiAgICAgICAgYmFja2dyb3VuZDogJHttLmJkVGhlbWUoImhzbCgwIDAlIDk1LjElKSIsImhzbCgwIDAlIDIwJSkiKX07CiAgICAgICAgY29sb3I6ICR7bS5iZFRoZW1lKCJoc2woMCAwJSAxNSUpIiwiaHNsKDAgMCUgOTMuOSUpIil9OwogICAgICB9CgogICAgICAuZmlsdGVyLXRvZ2dsZSB7CiAgICAgICAgcGFkZGluZzogNHB4IDhweDsKICAgICAgICBmb250LXNpemU6IDExcHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDsKICAgICAgICBiYWNrZ3JvdW5kOiAke20uYmRUaGVtZSgiaHNsKDAgMCUgMTAwJSkiLCJoc2woMCAwJSAxNC45JSkiKX07CiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHttLmJkVGhlbWUoImhzbCgwIDAlIDg5LjglKSIsImhzbCgwIDAlIDE0LjklKSIpfTsKICAgICAgICBib3JkZXItcmFkaXVzOiA0cHg7CiAgICAgICAgY29sb3I6ICR7bS5iZFRoZW1lKCJoc2woMCAwJSA0NS4xJSkiLCJoc2woMCAwJSA2My45JSkiKX07CiAgICAgICAgY3Vyc29yOiBwb2ludGVyOwogICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjE1czsKICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwOwogICAgICB9CgogICAgICAuZmlsdGVyLXRvZ2dsZTpob3ZlciB7CiAgICAgICAgYmFja2dyb3VuZDogJHttLmJkVGhlbWUoImhzbCgwIDAlIDk1LjElKSIsImhzbCgwIDAlIDIwJSkiKX07CiAgICAgICAgY29sb3I6ICR7bS5iZFRoZW1lKCJoc2woMCAwJSAxNSUpIiwiaHNsKDAgMCUgOTMuOSUpIil9OwogICAgICB9CgogICAgICAuZmlsdGVyLXRvZ2dsZS5hY3RpdmUgewogICAgICAgIGJhY2tncm91bmQ6ICR7bS5iZFRoZW1lKCJoc2woNDUgOTMlIDQ3JSkiLCJoc2woNDUgOTMlIDQ3JSkiKX07CiAgICAgICAgYm9yZGVyLWNvbG9yOiAke20uYmRUaGVtZSgiaHNsKDQ1IDkzJSA0NyUpIiwiaHNsKDQ1IDkzJSA0NyUpIil9OwogICAgICAgIGNvbG9yOiBoc2woMCAwJSA5JSk7CiAgICAgIH0KCiAgICAgIC5jb250cm9scyB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBnYXA6IDZweDsKICAgICAgICBtYXJnaW4tbGVmdDogYXV0bzsKICAgICAgfQoKICAgICAgLmNvbnRyb2wtYnV0dG9uIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke20uYmRUaGVtZSgiaHNsKDAgMCUgMTAwJSkiLCJoc2woMCAwJSAxNC45JSkiKX07CiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHttLmJkVGhlbWUoImhzbCgwIDAlIDg5LjglKSIsImhzbCgwIDAlIDE0LjklKSIpfTsKICAgICAgICBib3JkZXItcmFkaXVzOiA0cHg7CiAgICAgICAgcGFkZGluZzogNHB4IDEwcHg7CiAgICAgICAgY29sb3I6ICR7bS5iZFRoZW1lKCJoc2woMCAwJSA0NS4xJSkiLCJoc2woMCAwJSA2My45JSkiKX07CiAgICAgICAgY3Vyc29yOiBwb2ludGVyOwogICAgICAgIGZvbnQtc2l6ZTogMTJweDsKICAgICAgICBmb250LXdlaWdodDogNTAwOwogICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjE1czsKICAgICAgfQoKICAgICAgLmNvbnRyb2wtYnV0dG9uOmhvdmVyIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke20uYmRUaGVtZSgiaHNsKDAgMCUgOTUuMSUpIiwiaHNsKDAgMCUgMjAlKSIpfTsKICAgICAgICBib3JkZXItY29sb3I6ICR7bS5iZFRoZW1lKCJoc2woMCAwJSA3OS44JSkiLCJoc2woMCAwJSAyNSUpIil9OwogICAgICAgIGNvbG9yOiAke20uYmRUaGVtZSgiaHNsKDAgMCUgMTUlKSIsImhzbCgwIDAlIDkzLjklKSIpfTsKICAgICAgfQoKICAgICAgLmNvbnRyb2wtYnV0dG9uLmFjdGl2ZSB7CiAgICAgICAgYmFja2dyb3VuZDogJHttLmJkVGhlbWUoImhzbCgyMjIuMiA0Ny40JSA1MS4yJSkiLCJoc2woMjE3LjIgOTEuMiUgNTkuOCUpIil9OwogICAgICAgIGJvcmRlci1jb2xvcjogJHttLmJkVGhlbWUoImhzbCgyMjIuMiA0Ny40JSA1MS4yJSkiLCJoc2woMjE3LjIgOTEuMiUgNTkuOCUpIil9OwogICAgICAgIGNvbG9yOiB3aGl0ZTsKICAgICAgfQoKICAgICAgLnRlcm1pbmFsLWNvbnRhaW5lciB7CiAgICAgICAgZmxleDogMTsKICAgICAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgICAgIHBhZGRpbmc6IDhweDsKICAgICAgICBiYWNrZ3JvdW5kOiAke20uYmRUaGVtZSgiaHNsKDAgMCUgMTAwJSkiLCJoc2woMCAwJSAzLjklKSIpfTsKICAgICAgfQoKICAgICAgLnRlcm1pbmFsLWNvbnRhaW5lciAueHRlcm0gewogICAgICAgIGhlaWdodDogMTAwJTsKICAgICAgfQoKICAgICAgLmxvYWRpbmctc3RhdGUgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKICAgICAgICBoZWlnaHQ6IDEwMCU7CiAgICAgICAgY29sb3I6ICR7bS5iZFRoZW1lKCJoc2woMCAwJSA0NS4xJSkiLCJoc2woMCAwJSA2My45JSkiKX07CiAgICAgICAgZm9udC1zdHlsZTogaXRhbGljOwogICAgICAgIGZvbnQtc2l6ZTogMTNweDsKICAgICAgfQoKICAgICAgLm1ldHJpY3MtYmFyIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke20uYmRUaGVtZSgiaHNsKDAgMCUgOTclKSIsImhzbCgwIDAlIDclKSIpfTsKICAgICAgICBib3JkZXItdG9wOiAxcHggc29saWQgJHttLmJkVGhlbWUoImhzbCgwIDAlIDg5LjglKSIsImhzbCgwIDAlIDE0LjklKSIpfTsKICAgICAgICBwYWRkaW5nOiA2cHggMTJweDsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGdhcDogMTZweDsKICAgICAgICBmb250LXNpemU6IDExcHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDsKICAgICAgICBmbGV4LXNocmluazogMDsKICAgICAgfQoKICAgICAgLm1ldHJpYyB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGdhcDogNHB4OwogICAgICB9CgogICAgICAubWV0cmljOjpiZWZvcmUgewogICAgICAgIGNvbnRlbnQ6ICcnOwogICAgICAgIHdpZHRoOiA4cHg7CiAgICAgICAgaGVpZ2h0OiA4cHg7CiAgICAgICAgYm9yZGVyLXJhZGl1czogNTAlOwogICAgICB9CgogICAgICAubWV0cmljLmVycm9yOjpiZWZvcmUgewogICAgICAgIGJhY2tncm91bmQ6IGhzbCgwIDg0LjIlIDYwLjIlKTsKICAgICAgfQoKICAgICAgLm1ldHJpYy53YXJuOjpiZWZvcmUgewogICAgICAgIGJhY2tncm91bmQ6IGhzbCgyNSA5NSUgNTMlKTsKICAgICAgfQoKICAgICAgLm1ldHJpYy5pbmZvOjpiZWZvcmUgewogICAgICAgIGJhY2tncm91bmQ6IGhzbCgyMjIuMiA0Ny40JSA1MS4yJSk7CiAgICAgIH0KCiAgICAgIC5tZXRyaWMuc3VjY2Vzczo6YmVmb3JlIHsKICAgICAgICBiYWNrZ3JvdW5kOiBoc2woMTQyLjEgNzYuMiUgMzYuMyUpOwogICAgICB9CgogICAgICAubWV0cmljLmRlYnVnOjpiZWZvcmUgewogICAgICAgIGJhY2tncm91bmQ6IGhzbCgwIDAlIDYzLjklKTsKICAgICAgfQoKICAgICAgLm1ldHJpYy5yYXRlIHsKICAgICAgICBtYXJnaW4tbGVmdDogYXV0bzsKICAgICAgICBjb2xvcjogJHttLmJkVGhlbWUoImhzbCgwIDAlIDQ1LjElKSIsImhzbCgwIDAlIDYzLjklKSIpfTsKICAgICAgfQoKICAgICAgLm1ldHJpYy5yYXRlOjpiZWZvcmUgewogICAgICAgIGRpc3BsYXk6IG5vbmU7CiAgICAgIH0KICAgIGBdO2NvbnN0cnVjdG9yKCl7c3VwZXIoKSxkMS5zZXR1cCgpfXJlbmRlcigpe3JldHVybiBDYAogICAgICA8ZGl2IGNsYXNzPSJtYWluYm94Ij4KICAgICAgICA8ZGl2IGNsYXNzPSJoZWFkZXIiPgogICAgICAgICAgPGRpdiBjbGFzcz0idGl0bGUiPiR7dGhpcy5sYWJlbH08L2Rpdj4KICAgICAgICAgIDxkaXYgY2xhc3M9InNlYXJjaC1ib3giPgogICAgICAgICAgICA8aW5wdXQKICAgICAgICAgICAgICB0eXBlPSJ0ZXh0IgogICAgICAgICAgICAgIHBsYWNlaG9sZGVyPSJTZWFyY2ggbG9ncy4uLiIKICAgICAgICAgICAgICAudmFsdWU9JHt0aGlzLnNlYXJjaFF1ZXJ5fQogICAgICAgICAgICAgIEBpbnB1dD0ke0k9PnRoaXMuaGFuZGxlU2VhcmNoSW5wdXQoSSl9CiAgICAgICAgICAgICAgQGtleWRvd249JHtJPT50aGlzLmhhbmRsZVNlYXJjaEtleWRvd24oSSl9CiAgICAgICAgICAgIC8+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9InNlYXJjaC1uYXYiPgogICAgICAgICAgICAgIDxidXR0b24gQGNsaWNrPSR7KCk9PnRoaXMuc2VhcmNoUHJldmlvdXMoKX0gdGl0bGU9IlByZXZpb3VzIG1hdGNoIj7ihpE8L2J1dHRvbj4KICAgICAgICAgICAgICA8YnV0dG9uIEBjbGljaz0keygpPT50aGlzLnNlYXJjaE5leHQoKX0gdGl0bGU9Ik5leHQgbWF0Y2giPuKGkzwvYnV0dG9uPgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPGJ1dHRvbgogICAgICAgICAgICAgIGNsYXNzPSJmaWx0ZXItdG9nZ2xlICR7dGhpcy5maWx0ZXJNb2RlPyJhY3RpdmUiOiIifSIKICAgICAgICAgICAgICBAY2xpY2s9JHsoKT0+dGhpcy50b2dnbGVGaWx0ZXJNb2RlKCl9CiAgICAgICAgICAgICAgdGl0bGU9IiR7dGhpcy5maWx0ZXJNb2RlPyJTd2l0Y2ggdG8gaGlnaGxpZ2h0IG1vZGUiOiJTd2l0Y2ggdG8gZmlsdGVyIG1vZGUifSIKICAgICAgICAgICAgPgogICAgICAgICAgICAgICR7dGhpcy5maWx0ZXJNb2RlPyJGaWx0ZXIiOiJIaWdobGlnaHQifQogICAgICAgICAgICA8L2J1dHRvbj4KICAgICAgICAgIDwvZGl2PgogICAgICAgICAgPGRpdiBjbGFzcz0iY29udHJvbHMiPgogICAgICAgICAgICA8YnV0dG9uCiAgICAgICAgICAgICAgY2xhc3M9ImNvbnRyb2wtYnV0dG9uICR7dGhpcy5hdXRvU2Nyb2xsPyJhY3RpdmUiOiIifSIKICAgICAgICAgICAgICBAY2xpY2s9JHsoKT0+dGhpcy50b2dnbGVBdXRvU2Nyb2xsKCl9CiAgICAgICAgICAgID4KICAgICAgICAgICAgICBBdXRvIFNjcm9sbAogICAgICAgICAgICA8L2J1dHRvbj4KICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz0iY29udHJvbC1idXR0b24iIEBjbGljaz0keygpPT50aGlzLmNsZWFyTG9ncygpfT4KICAgICAgICAgICAgICBDbGVhcgogICAgICAgICAgICA8L2J1dHRvbj4KICAgICAgICAgIDwvZGl2PgogICAgICAgIDwvZGl2PgoKICAgICAgICA8ZGl2IGNsYXNzPSJ0ZXJtaW5hbC1jb250YWluZXIiPgogICAgICAgICAgJHt0aGlzLnRlcm1pbmFsUmVhZHk/IiI6Q2A8ZGl2IGNsYXNzPSJsb2FkaW5nLXN0YXRlIj5Mb2FkaW5nIHRlcm1pbmFsLi4uPC9kaXY+YH0KICAgICAgICA8L2Rpdj4KCiAgICAgICAgJHt0aGlzLnNob3dNZXRyaWNzP0NgCiAgICAgICAgICAgICAgPGRpdiBjbGFzcz0ibWV0cmljcy1iYXIiPgogICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9Im1ldHJpYyBlcnJvciI+ZXJyb3JzOiAke3RoaXMubWV0cmljcy5lcnJvcn08L3NwYW4+CiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0ibWV0cmljIHdhcm4iPndhcm5zOiAke3RoaXMubWV0cmljcy53YXJufTwvc3Bhbj4KICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJtZXRyaWMgaW5mbyI+aW5mbzogJHt0aGlzLm1ldHJpY3MuaW5mb308L3NwYW4+CiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0ibWV0cmljIHN1Y2Nlc3MiPnN1Y2Nlc3M6ICR7dGhpcy5tZXRyaWNzLnN1Y2Nlc3N9PC9zcGFuPgogICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9Im1ldHJpYyBkZWJ1ZyI+ZGVidWc6ICR7dGhpcy5tZXRyaWNzLmRlYnVnfTwvc3Bhbj4KICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJtZXRyaWMgcmF0ZSI+JHt0aGlzLm1ldHJpY3MucmF0ZS50b0ZpeGVkKDEpfSBsb2dzL3NlYzwvc3Bhbj4KICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgYDoiIn0KICAgICAgPC9kaXY+CiAgICBgfWFzeW5jIGZpcnN0VXBkYXRlZCgpe2lmKHRoaXMuZG9tdG9vbHNJbnN0YW5jZT1hd2FpdCB0aGlzLmRvbXRvb2xzUHJvbWlzZSxhd2FpdCB0aGlzLmluaXRpYWxpemVUZXJtaW5hbCgpLHRoaXMubG9nRW50cmllcy5sZW5ndGg+MCYmdGhpcy5sb2dCdWZmZXIubGVuZ3RoPT09MCl7dGhpcy5sb2dCdWZmZXI9Wy4uLnRoaXMubG9nRW50cmllc107Zm9yKGxldCBJIG9mIHRoaXMubG9nRW50cmllcyl0aGlzLnVwZGF0ZU1ldHJpY3MoSS5sZXZlbCksdGhpcy53cml0ZUxvZ0VudHJ5KEkpfWVsc2UgaWYodGhpcy5sb2dFbnRyaWVzLmxlbmd0aD4wJiZ0aGlzLmxvZ0J1ZmZlci5sZW5ndGg+MCl7bGV0IEk9bmV3IFNldCh0aGlzLmxvZ0J1ZmZlci5tYXAobmU9PmAke25lLnRpbWVzdGFtcH18JHtuZS5tZXNzYWdlfWApKTtmb3IobGV0IG5lIG9mIHRoaXMubG9nRW50cmllcylJLmhhcyhgJHtuZS50aW1lc3RhbXB9fCR7bmUubWVzc2FnZX1gKXx8KHRoaXMubG9nQnVmZmVyLnB1c2gobmUpLHRoaXMudXBkYXRlTWV0cmljcyhuZS5sZXZlbCksdGhpcy53cml0ZUxvZ0VudHJ5KG5lKSl9fWFzeW5jIGluaXRpYWxpemVUZXJtaW5hbCgpe2xldCBJPXJhLmdldEluc3RhbmNlKCksW25lLGtlLFldPWF3YWl0IFByb21pc2UuYWxsKFtJLmxvYWRYdGVybSgpLEkubG9hZFh0ZXJtRml0QWRkb24oKSxJLmxvYWRYdGVybVNlYXJjaEFkZG9uKCldKTthd2FpdCB0aGlzLmluamVjdFh0ZXJtU3R5bGVzSW50b1NoYWRvdygpLHRoaXMudGVybWluYWw9bmV3IG5lLlRlcm1pbmFsKHtjdXJzb3JCbGluazohMSxkaXNhYmxlU3RkaW46ITAsZm9udFNpemU6MTIsZm9udEZhbWlseToiJ1NGIE1vbm8nLCAnTW9uYWNvJywgJ0NvbnNvbGFzJywgJ0xpYmVyYXRpb24gTW9ubycsICdDb3VyaWVyIE5ldycsIG1vbm9zcGFjZSIsdGhlbWU6dGhpcy5nZXRUZXJtaW5hbFRoZW1lKCksc2Nyb2xsYmFjazp0aGlzLm1heEVudHJpZXMsY29udmVydEVvbDohMH0pLHRoaXMuZml0QWRkb249bmV3IGtlLkZpdEFkZG9uLHRoaXMuc2VhcmNoQWRkb249bmV3IFkuU2VhcmNoQWRkb24sdGhpcy50ZXJtaW5hbC5sb2FkQWRkb24odGhpcy5maXRBZGRvbiksdGhpcy50ZXJtaW5hbC5sb2FkQWRkb24odGhpcy5zZWFyY2hBZGRvbik7bGV0IEE9dGhpcy5zaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3IoIi50ZXJtaW5hbC1jb250YWluZXIiKTt0aGlzLnRlcm1pbmFsLm9wZW4oQSksYXdhaXQgbmV3IFByb21pc2UoTD0+cmVxdWVzdEFuaW1hdGlvbkZyYW1lKEwpKSx0aGlzLmZpdEFkZG9uLmZpdCgpLHRoaXMucmVzaXplT2JzZXJ2ZXI9bmV3IFJlc2l6ZU9ic2VydmVyKCgpPT57dGhpcy5maXRBZGRvbj8uZml0KCl9KSx0aGlzLnJlc2l6ZU9ic2VydmVyLm9ic2VydmUoQSksdGhpcy50ZXJtaW5hbFRoZW1lU3Vic2NyaXB0aW9uPXRoaXMuZG9tdG9vbHNJbnN0YW5jZS50aGVtZU1hbmFnZXIudGhlbWVPYnNlcnZhYmxlLnN1YnNjcmliZSgoKT0+e3RoaXMudGVybWluYWwmJih0aGlzLnRlcm1pbmFsLm9wdGlvbnMudGhlbWU9dGhpcy5nZXRUZXJtaW5hbFRoZW1lKCkpfSksdGhpcy5yYXRlSW50ZXJ2YWw9c2V0SW50ZXJ2YWwoKCk9PnRoaXMuY2FsY3VsYXRlUmF0ZSgpLDFlMyksdGhpcy50ZXJtaW5hbFJlYWR5PSEwO2ZvcihsZXQgTCBvZiB0aGlzLmxvZ0J1ZmZlcil0aGlzLndyaXRlTG9nRW50cnkoTCl9dXBkYXRlZChJKXtpZihzdXBlci51cGRhdGVkKEkpLEkuaGFzKCJsb2dFbnRyaWVzIikmJnRoaXMudGVybWluYWxSZWFkeSYmdGhpcy5sb2dFbnRyaWVzLmxlbmd0aD4wKXtsZXQgbmU9SS5nZXQoImxvZ0VudHJpZXMiKXx8W10sa2U9dGhpcy5sb2dFbnRyaWVzO2lmKG5lLmxlbmd0aD09PWtlLmxlbmd0aCYmbmUubGVuZ3RoPjAmJm5lW25lLmxlbmd0aC0xXS50aW1lc3RhbXA9PT1rZVtrZS5sZW5ndGgtMV0udGltZXN0YW1wJiZuZVtuZS5sZW5ndGgtMV0ubWVzc2FnZT09PWtlW2tlLmxlbmd0aC0xXS5tZXNzYWdlKXJldHVybjtpZihrZS5sZW5ndGg+bmUubGVuZ3RoJiZuZS5sZW5ndGg+MCYmbmVbbmUubGVuZ3RoLTFdLnRpbWVzdGFtcD09PWtlW25lLmxlbmd0aC0xXS50aW1lc3RhbXAmJm5lW25lLmxlbmd0aC0xXS5tZXNzYWdlPT09a2VbbmUubGVuZ3RoLTFdLm1lc3NhZ2Upe2xldCBZPWtlLnNsaWNlKG5lLmxlbmd0aCk7Zm9yKGxldCBBIG9mIFkpdGhpcy5sb2dCdWZmZXIucHVzaChBKSx0aGlzLnVwZGF0ZU1ldHJpY3MoQS5sZXZlbCksdGhpcy5sb2dCdWZmZXIubGVuZ3RoPnRoaXMubWF4RW50cmllcyYmdGhpcy5sb2dCdWZmZXIuc2hpZnQoKSwoIXRoaXMuZmlsdGVyTW9kZXx8IXRoaXMuc2VhcmNoUXVlcnl8fHRoaXMuZW50cnlNYXRjaGVzRmlsdGVyKEEpKSYmdGhpcy53cml0ZUxvZ0VudHJ5KEEpO3JldHVybn10aGlzLmxvZ0J1ZmZlcj1bLi4ua2VdLHRoaXMucmVSZW5kZXJGaWx0ZXJlZExvZ3MoKX19Z2V0VGVybWluYWxUaGVtZSgpe3JldHVybiB0aGlzLmRvbXRvb2xzSW5zdGFuY2U/LnRoZW1lTWFuYWdlcj8uaXNEYXJrTW9kZT8/ITA/e2JhY2tncm91bmQ6IiMwYTBhMGEiLGZvcmVncm91bmQ6IiNlMGUwZTAiLGN1cnNvcjoiI2UwZTBlMCIsc2VsZWN0aW9uQmFja2dyb3VuZDoiIzQwNDA0MCIsYmxhY2s6IiMwMDAwMDAiLHJlZDoiI2ZmNTU1NSIsZ3JlZW46IiM1MGZhN2IiLHllbGxvdzoiI2YxZmE4YyIsYmx1ZToiIzYyNzJhNCIsbWFnZW50YToiI2ZmNzljNiIsY3lhbjoiIzhiZTlmZCIsd2hpdGU6IiNmOGY4ZjIiLGJyaWdodEJsYWNrOiIjNjI3MmE0IixicmlnaHRSZWQ6IiNmZjZlNmUiLGJyaWdodEdyZWVuOiIjNjlmZjk0IixicmlnaHRZZWxsb3c6IiNmZmZmYTUiLGJyaWdodEJsdWU6IiNkNmFjZmYiLGJyaWdodE1hZ2VudGE6IiNmZjkyZGYiLGJyaWdodEN5YW46IiNhNGZmZmYiLGJyaWdodFdoaXRlOiIjZmZmZmZmIn06e2JhY2tncm91bmQ6IiNmZmZmZmYiLGZvcmVncm91bmQ6IiMzMzMzMzMiLGN1cnNvcjoiIzMzMzMzMyIsc2VsZWN0aW9uQmFja2dyb3VuZDoiI2FkZDZmZiIsYmxhY2s6IiMwMDAwMDAiLHJlZDoiI2NkMzEzMSIsZ3JlZW46IiMwMGJjMDAiLHllbGxvdzoiIzk0OTgwMCIsYmx1ZToiIzA0NTFhNSIsbWFnZW50YToiI2JjMDViYyIsY3lhbjoiIzA1OThiYyIsd2hpdGU6IiM1NTU1NTUiLGJyaWdodEJsYWNrOiIjNjY2NjY2IixicmlnaHRSZWQ6IiNjZDMxMzEiLGJyaWdodEdyZWVuOiIjMTRjZTE0IixicmlnaHRZZWxsb3c6IiNiNWJhMDAiLGJyaWdodEJsdWU6IiMwNDUxYTUiLGJyaWdodE1hZ2VudGE6IiNiYzA1YmMiLGJyaWdodEN5YW46IiMwNTk4YmMiLGJyaWdodFdoaXRlOiIjYTVhNWE1In19YXN5bmMgaW5qZWN0WHRlcm1TdHlsZXNJbnRvU2hhZG93KCl7bGV0IEk9Inh0ZXJtLXNoYWRvdy1zdHlsZXMiO2lmKHRoaXMuc2hhZG93Um9vdC5nZXRFbGVtZW50QnlJZChJKSlyZXR1cm47bGV0IG5lPWAke0lhfS94dGVybUAke0UyLnh0ZXJtfS9jc3MveHRlcm0uY3NzYCxZPWF3YWl0KGF3YWl0IGZldGNoKG5lKSkudGV4dCgpLEE9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgic3R5bGUiKTtBLmlkPUksQS50ZXh0Q29udGVudD1ZLHRoaXMuc2hhZG93Um9vdC5hcHBlbmRDaGlsZChBKX1hZGRMb2coSSxuZSxrZSl7bGV0IFk9e3RpbWVzdGFtcDpuZXcgRGF0ZSgpLnRvSVNPU3RyaW5nKCksbGV2ZWw6SSxtZXNzYWdlOm5lLHNvdXJjZTprZX07dGhpcy5sb2dCdWZmZXIucHVzaChZKSx0aGlzLmxvZ0J1ZmZlci5sZW5ndGg+dGhpcy5tYXhFbnRyaWVzJiZ0aGlzLmxvZ0J1ZmZlci5zaGlmdCgpLCF0aGlzLmZpbHRlck1vZGV8fCF0aGlzLnNlYXJjaFF1ZXJ5P3RoaXMud3JpdGVMb2dFbnRyeShZKTp0aGlzLmVudHJ5TWF0Y2hlc0ZpbHRlcihZKT8odGhpcy50cmFpbGluZ0hpZGRlbkNvdW50PTAsdGhpcy53cml0ZUxvZ0VudHJ5KFkpKTp0aGlzLnVwZGF0ZVRyYWlsaW5nUGxhY2Vob2xkZXIoKSx0aGlzLnVwZGF0ZU1ldHJpY3MoWS5sZXZlbCl9dXBkYXRlTG9nKEkpe2lmKEkpZm9yKGxldCBuZSBvZiBJKXRoaXMubG9nQnVmZmVyLnB1c2gobmUpLHRoaXMubG9nQnVmZmVyLmxlbmd0aD50aGlzLm1heEVudHJpZXMmJnRoaXMubG9nQnVmZmVyLnNoaWZ0KCksIXRoaXMuZmlsdGVyTW9kZXx8IXRoaXMuc2VhcmNoUXVlcnk/dGhpcy53cml0ZUxvZ0VudHJ5KG5lKTp0aGlzLmVudHJ5TWF0Y2hlc0ZpbHRlcihuZSk/KHRoaXMudHJhaWxpbmdIaWRkZW5Db3VudD0wLHRoaXMud3JpdGVMb2dFbnRyeShuZSkpOnRoaXMudXBkYXRlVHJhaWxpbmdQbGFjZWhvbGRlcigpLHRoaXMudXBkYXRlTWV0cmljcyhuZS5sZXZlbCl9dXBkYXRlVHJhaWxpbmdQbGFjZWhvbGRlcigpe3RoaXMudGVybWluYWwmJih0aGlzLnRyYWlsaW5nSGlkZGVuQ291bnQ+MCYmdGhpcy50ZXJtaW5hbC53cml0ZSgiXHgxQlsxQVx4MUJbMktcciIpLHRoaXMudHJhaWxpbmdIaWRkZW5Db3VudCsrLHRoaXMud3JpdGVIaWRkZW5QbGFjZWhvbGRlcih0aGlzLnRyYWlsaW5nSGlkZGVuQ291bnQpLHRoaXMuYXV0b1Njcm9sbCYmdGhpcy50ZXJtaW5hbC5zY3JvbGxUb0JvdHRvbSgpKX1lbnRyeU1hdGNoZXNGaWx0ZXIoSSl7aWYoIXRoaXMuc2VhcmNoUXVlcnkpcmV0dXJuITA7bGV0IG5lPXRoaXMuc2VhcmNoUXVlcnkudG9Mb3dlckNhc2UoKTtyZXR1cm4gSS5tZXNzYWdlLnRvTG93ZXJDYXNlKCkuaW5jbHVkZXMobmUpfHxJLmxldmVsLnRvTG93ZXJDYXNlKCkuaW5jbHVkZXMobmUpfHwoSS5zb3VyY2U/LnRvTG93ZXJDYXNlKCkuaW5jbHVkZXMobmUpPz8hMSl9d3JpdGVMb2dFbnRyeShJKXtpZighdGhpcy50ZXJtaW5hbClyZXR1cm47bGV0IG5lPXRoaXMuZm9ybWF0TG9nRW50cnkoSSk7dGhpcy50ZXJtaW5hbC53cml0ZWxuKG5lKSx0aGlzLmF1dG9TY3JvbGwmJnRoaXMudGVybWluYWwuc2Nyb2xsVG9Cb3R0b20oKX1mb3JtYXRMb2dFbnRyeShJKXtsZXQgbmU9dGhpcy5mb3JtYXRUaW1lc3RhbXAoSS50aW1lc3RhbXApLGtlPXtkZWJ1ZzoiXHgxQls5MG0iLGluZm86Ilx4MUJbMzZtIix3YXJuOiJceDFCWzMzbSIsZXJyb3I6Ilx4MUJbMzFtIixzdWNjZXNzOiJceDFCWzMybSJ9LFk9Ilx4MUJbMG0iLEE9Ilx4MUJbMm0iLEw9YCR7a2VbSS5sZXZlbF19WyR7SS5sZXZlbC50b1VwcGVyQ2FzZSgpLnBhZEVuZCg3KX1dJHtZfWAsVT1JLnNvdXJjZT9gJHtBfVske0kuc291cmNlfV0ke1l9IGA6IiIsVj10aGlzLmFwcGx5SGlnaGxpZ2h0cyhJLm1lc3NhZ2UpO3JldHVybmAke0F9JHtuZX0ke1l9ICR7TH0gJHtVfSR7Vn1gfWZvcm1hdFRpbWVzdGFtcChJKXtyZXR1cm4gbmV3IERhdGUoSSkudG9Mb2NhbGVUaW1lU3RyaW5nKCJlbi1VUyIse2hvdXIxMjohMSxob3VyOiIyLWRpZ2l0IixtaW51dGU6IjItZGlnaXQiLHNlY29uZDoiMi1kaWdpdCIsZnJhY3Rpb25hbFNlY29uZERpZ2l0czozfSl9YXBwbHlIaWdobGlnaHRzKEkpe2xldCBuZT1bLi4udGhpcy5oaWdobGlnaHRLZXl3b3Jkc107aWYodGhpcy5maWx0ZXJNb2RlJiZ0aGlzLnNlYXJjaFF1ZXJ5JiZuZS5wdXNoKHRoaXMuc2VhcmNoUXVlcnkpLG5lLmxlbmd0aD09PTApcmV0dXJuIEk7bGV0IGtlPUk7Zm9yKGxldCBZIG9mIG5lKXtsZXQgQT1ZLnJlcGxhY2UoL1suKis/XiR7fSgpfFtcXVxcXS9nLCJcXCQmIiksTD1uZXcgUmVnRXhwKGAoJHtBfSlgLCJnaSIpO2tlPWtlLnJlcGxhY2UoTCwiXHgxQls0M21ceDFCWzMwbSQxXHgxQlswbSIpfXJldHVybiBrZX13cml0ZVJhdyhJKXt0aGlzLnRlcm1pbmFsJiYodGhpcy50ZXJtaW5hbC53cml0ZShJKSx0aGlzLnJlY29yZExvZ0V2ZW50KCksdGhpcy5hdXRvU2Nyb2xsJiZ0aGlzLnRlcm1pbmFsLnNjcm9sbFRvQm90dG9tKCkpfXdyaXRlbG5SYXcoSSl7dGhpcy50ZXJtaW5hbCYmKHRoaXMudGVybWluYWwud3JpdGVsbihJKSx0aGlzLnJlY29yZExvZ0V2ZW50KCksdGhpcy5hdXRvU2Nyb2xsJiZ0aGlzLnRlcm1pbmFsLnNjcm9sbFRvQm90dG9tKCkpfWhhbmRsZVNlYXJjaElucHV0KEkpe2xldCBrZT1JLnRhcmdldC52YWx1ZSxZPXRoaXMuc2VhcmNoUXVlcnkhPT1rZTt0aGlzLnNlYXJjaFF1ZXJ5PWtlLHRoaXMuZmlsdGVyTW9kZSYmWT90aGlzLnJlUmVuZGVyRmlsdGVyZWRMb2dzKCk6dGhpcy5zZWFyY2hRdWVyeSYmdGhpcy5zZWFyY2hBZGRvbj8uZmluZE5leHQodGhpcy5zZWFyY2hRdWVyeSl9aGFuZGxlU2VhcmNoS2V5ZG93bihJKXtJLmtleT09PSJFbnRlciI/SS5zaGlmdEtleT90aGlzLnNlYXJjaFByZXZpb3VzKCk6dGhpcy5zZWFyY2hOZXh0KCk6SS5rZXk9PT0iRXNjYXBlIiYmKHRoaXMuc2VhcmNoUXVlcnk9IiIsSS50YXJnZXQudmFsdWU9IiIpfXNlYXJjaChJKXt0aGlzLnNlYXJjaFF1ZXJ5PUksdGhpcy5zZWFyY2hBZGRvbj8uZmluZE5leHQoSSl9c2VhcmNoTmV4dCgpe3RoaXMuc2VhcmNoUXVlcnkmJnRoaXMuc2VhcmNoQWRkb24/LmZpbmROZXh0KHRoaXMuc2VhcmNoUXVlcnkpfXNlYXJjaFByZXZpb3VzKCl7dGhpcy5zZWFyY2hRdWVyeSYmdGhpcy5zZWFyY2hBZGRvbj8uZmluZFByZXZpb3VzKHRoaXMuc2VhcmNoUXVlcnkpfXRvZ2dsZUF1dG9TY3JvbGwoKXt0aGlzLmF1dG9TY3JvbGw9IXRoaXMuYXV0b1Njcm9sbCx0aGlzLmF1dG9TY3JvbGwmJnRoaXMudGVybWluYWwmJnRoaXMudGVybWluYWwuc2Nyb2xsVG9Cb3R0b20oKX10b2dnbGVGaWx0ZXJNb2RlKCl7dGhpcy5maWx0ZXJNb2RlPSF0aGlzLmZpbHRlck1vZGUsdGhpcy5yZVJlbmRlckZpbHRlcmVkTG9ncygpfXJlUmVuZGVyRmlsdGVyZWRMb2dzKCl7aWYodGhpcy50ZXJtaW5hbCl7aWYodGhpcy50ZXJtaW5hbC5jbGVhcigpLHRoaXMudHJhaWxpbmdIaWRkZW5Db3VudD0wLCF0aGlzLmZpbHRlck1vZGV8fCF0aGlzLnNlYXJjaFF1ZXJ5KWZvcihsZXQgSSBvZiB0aGlzLmxvZ0J1ZmZlcil7bGV0IG5lPXRoaXMuZm9ybWF0TG9nRW50cnkoSSk7dGhpcy50ZXJtaW5hbC53cml0ZWxuKG5lKX1lbHNle2xldCBJPTA7Zm9yKGxldCBuZSBvZiB0aGlzLmxvZ0J1ZmZlcilpZih0aGlzLmVudHJ5TWF0Y2hlc0ZpbHRlcihuZSkpe0k+MCYmKHRoaXMud3JpdGVIaWRkZW5QbGFjZWhvbGRlcihJKSxJPTApO2xldCBrZT10aGlzLmZvcm1hdExvZ0VudHJ5KG5lKTt0aGlzLnRlcm1pbmFsLndyaXRlbG4oa2UpfWVsc2UgSSsrO0k+MCYmKHRoaXMud3JpdGVIaWRkZW5QbGFjZWhvbGRlcihJKSx0aGlzLnRyYWlsaW5nSGlkZGVuQ291bnQ9SSl9dGhpcy5hdXRvU2Nyb2xsJiZ0aGlzLnRlcm1pbmFsLnNjcm9sbFRvQm90dG9tKCl9fXdyaXRlSGlkZGVuUGxhY2Vob2xkZXIoSSl7bGV0IG5lPSJceDFCWzJtIixrZT0iXHgxQlswbSIsWT1JPT09MT8iWzEgbG9nIGxpbmUgaGlkZGVuIGJ5IGZpbHRlciAuLi5dIjpgWyR7SX0gbG9nIGxpbmVzIGhpZGRlbiBieSBmaWx0ZXIgLi4uXWA7dGhpcy50ZXJtaW5hbD8ud3JpdGVsbihgJHtuZX0ke1l9JHtrZX1gKX1jbGVhckxvZ3MoKXt0aGlzLnRlcm1pbmFsPy5jbGVhcigpLHRoaXMubG9nQnVmZmVyPVtdLHRoaXMudHJhaWxpbmdIaWRkZW5Db3VudD0wLHRoaXMucmVzZXRNZXRyaWNzKCl9c2Nyb2xsVG9Cb3R0b20oKXt0aGlzLnRlcm1pbmFsPy5zY3JvbGxUb0JvdHRvbSgpfXVwZGF0ZU1ldHJpY3MoSSl7dGhpcy5tZXRyaWNzPXsuLi50aGlzLm1ldHJpY3MsW0ldOnRoaXMubWV0cmljc1tJXSsxLHRvdGFsOnRoaXMubWV0cmljcy50b3RhbCsxfSx0aGlzLnJlY29yZExvZ0V2ZW50KCl9cmVjb3JkTG9nRXZlbnQoKXt0aGlzLnJhdGVCdWZmZXIucHVzaChEYXRlLm5vdygpKX1jYWxjdWxhdGVSYXRlKCl7bGV0IEk9RGF0ZS5ub3coKTt0aGlzLnJhdGVCdWZmZXI9dGhpcy5yYXRlQnVmZmVyLmZpbHRlcihrZT0+SS1rZTwxZTQpO2xldCBuZT10aGlzLnJhdGVCdWZmZXIubGVuZ3RoLzEwO25lIT09dGhpcy5tZXRyaWNzLnJhdGUmJih0aGlzLm1ldHJpY3M9ey4uLnRoaXMubWV0cmljcyxyYXRlOm5lfSl9cmVzZXRNZXRyaWNzKCl7dGhpcy5tZXRyaWNzPXtkZWJ1ZzowLGluZm86MCx3YXJuOjAsZXJyb3I6MCxzdWNjZXNzOjAsdG90YWw6MCxyYXRlOjB9LHRoaXMucmF0ZUJ1ZmZlcj1bXX1hc3luYyBkaXNjb25uZWN0ZWRDYWxsYmFjaygpe2F3YWl0IHN1cGVyLmRpc2Nvbm5lY3RlZENhbGxiYWNrKCksdGhpcy5yZXNpemVPYnNlcnZlciYmdGhpcy5yZXNpemVPYnNlcnZlci5kaXNjb25uZWN0KCksdGhpcy50ZXJtaW5hbFRoZW1lU3Vic2NyaXB0aW9uJiZ0aGlzLnRlcm1pbmFsVGhlbWVTdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKSx0aGlzLnJhdGVJbnRlcnZhbCYmY2xlYXJJbnRlcnZhbCh0aGlzLnJhdGVJbnRlcnZhbCksdGhpcy50ZXJtaW5hbCYmdGhpcy50ZXJtaW5hbC5kaXNwb3NlKCl9c3RhdGlje2sxKGkscil9fTtyZXR1cm4gd2U9aX0pKCl9KTt2YXIgU2NyPXAoKCk9PntrY3IoKX0pO3ZhciB6Y3I9cCgoKT0+e3hjcigpO1NjcigpfSk7dmFyIENjcixUY3I9cCgoKT0+e3hlKCk7Q2NyPSgpPT5DYAogIDxzdHlsZT4KICAgIC5kZW1vV3JhcHBlciB7CiAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7CiAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgd2lkdGg6IDEwMCU7CiAgICAgIG1pbi1oZWlnaHQ6IDEwMHZoOwogICAgICBwYWRkaW5nOiA0OHB4OwogICAgICBiYWNrZ3JvdW5kOiAke20uYmRUaGVtZSgiI2Y4ZjlmYSIsIiMwYTBhMGEiKX07CiAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgIGdhcDogMzJweDsKICAgIH0KICAgIAogICAgLnNlY3Rpb24gewogICAgICBtYXgtd2lkdGg6IDkwMHB4OwogICAgICB3aWR0aDogMTAwJTsKICAgICAgbWFyZ2luOiAwIGF1dG87CiAgICB9CiAgICAKICAgIC5zZWN0aW9uLXRpdGxlIHsKICAgICAgZm9udC1zaXplOiAxOHB4OwogICAgICBmb250LXdlaWdodDogNjAwOwogICAgICBtYXJnaW4tYm90dG9tOiAxNnB4OwogICAgICBjb2xvcjogJHttLmJkVGhlbWUoIiMwOTA5MGIiLCIjZmFmYWZhIil9OwogICAgfQogICAgCiAgICAuc2VjdGlvbi1kZXNjcmlwdGlvbiB7CiAgICAgIGZvbnQtc2l6ZTogMTRweDsKICAgICAgY29sb3I6ICR7bS5iZFRoZW1lKCIjNzE3MTdhIiwiI2ExYTFhYSIpfTsKICAgICAgbWFyZ2luLWJvdHRvbTogMTZweDsKICAgIH0KICA8L3N0eWxlPgogIDxkaXYgY2xhc3M9ImRlbW9XcmFwcGVyIj4KICAgIDxkaXYgY2xhc3M9InNlY3Rpb24iPgogICAgICA8ZGl2IGNsYXNzPSJzZWN0aW9uLXRpdGxlIj5UeXBlU2NyaXB0IENvZGUgRXhhbXBsZTwvZGl2PgogICAgICA8ZGl2IGNsYXNzPSJzZWN0aW9uLWRlc2NyaXB0aW9uIj5BIGNvbXByZWhlbnNpdmUgVHlwZVNjcmlwdCBjb2RlIGV4YW1wbGUgd2l0aCB2YXJpb3VzIHN5bnRheCBoaWdobGlnaHRpbmcuPC9kaXY+CiAgICAgIDxkZWVzLWRhdGF2aWV3LWNvZGVib3ggcHJvZ2xhbmc9InR5cGVzY3JpcHQiPgppbnRlcmZhY2UgVXNlciB7CiAgaWQ6IG51bWJlcjsKICBuYW1lOiBzdHJpbmc7CiAgZW1haWw6IHN0cmluZzsKICBpc0FjdGl2ZTogYm9vbGVhbjsKfQoKY2xhc3MgVXNlclNlcnZpY2UgewogIHByaXZhdGUgdXNlcnM6IFVzZXJbXSA9IFtdOwogIAogIGNvbnN0cnVjdG9yKHByaXZhdGUgYXBpVXJsOiBzdHJpbmcpIHsKICAgIGNvbnNvbGUubG9nKCdVc2VyU2VydmljZSBpbml0aWFsaXplZCcpOwogIH0KICAKICBhc3luYyBnZXRVc2VycygpOiBQcm9taXNlPFVzZXJbXT4gewogICAgdHJ5IHsKICAgICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCBmZXRjaCh0aGlzLmFwaVVybCk7CiAgICAgIGNvbnN0IGRhdGEgPSBhd2FpdCByZXNwb25zZS5qc29uKCk7CiAgICAgIHJldHVybiBkYXRhLnVzZXJzOwogICAgfSBjYXRjaCAoZXJyb3IpIHsKICAgICAgY29uc29sZS5lcnJvcignRmFpbGVkIHRvIGZldGNoIHVzZXJzOicsIGVycm9yKTsKICAgICAgcmV0dXJuIFtdOwogICAgfQogIH0KICAKICBhZGRVc2VyKHVzZXI6IFVzZXIpOiB2b2lkIHsKICAgIHRoaXMudXNlcnMucHVzaCh1c2VyKTsKICB9Cn0KCi8vIFVzYWdlIGV4YW1wbGUKY29uc3Qgc2VydmljZSA9IG5ldyBVc2VyU2VydmljZSgnaHR0cHM6Ly9hcGkuZXhhbXBsZS5jb20vdXNlcnMnKTsKY29uc3QgdXNlcnMgPSBhd2FpdCBzZXJ2aWNlLmdldFVzZXJzKCk7CmNvbnNvbGUubG9nKCdGb3VuZCB1c2VyczonLCB1c2Vycy5sZW5ndGgpOwogICAgICA8L2RlZXMtZGF0YXZpZXctY29kZWJveD4KICAgIDwvZGl2PgogICAgCiAgICA8ZGl2IGNsYXNzPSJzZWN0aW9uIj4KICAgICAgPGRpdiBjbGFzcz0ic2VjdGlvbi10aXRsZSI+SmF2YVNjcmlwdCBFeGFtcGxlPC9kaXY+CiAgICAgIDxkaXYgY2xhc3M9InNlY3Rpb24tZGVzY3JpcHRpb24iPk1vZGVybiBKYXZhU2NyaXB0IHdpdGggRVM2KyBmZWF0dXJlcy48L2Rpdj4KICAgICAgPGRlZXMtZGF0YXZpZXctY29kZWJveCBwcm9nbGFuZz0iamF2YXNjcmlwdCI+Ci8vIEFycmF5IG1hbmlwdWxhdGlvbiBleGFtcGxlcwpjb25zdCBudW1iZXJzID0gWzEsIDIsIDMsIDQsIDVdOwpjb25zdCBkb3VibGVkID0gbnVtYmVycy5tYXAobiA9PiBuICogMik7CmNvbnN0IGZpbHRlcmVkID0gbnVtYmVycy5maWx0ZXIobiA9PiBuID4gMyk7CgovLyBPYmplY3QgZGVzdHJ1Y3R1cmluZwpjb25zdCB1c2VyID0geyBuYW1lOiAnSm9obicsIGFnZTogMzAsIGNpdHk6ICdOZXcgWW9yaycgfTsKY29uc3QgeyBuYW1lLCBhZ2UgfSA9IHVzZXI7CgovLyBQcm9taXNlIGhhbmRsaW5nCmNvbnN0IGZldGNoRGF0YSA9IGFzeW5jICh1cmwpID0+IHsKICBjb25zdCByZXNwb25zZSA9IGF3YWl0IGZldGNoKHVybCk7CiAgcmV0dXJuIHJlc3BvbnNlLmpzb24oKTsKfTsKCi8vIE1vZGVybiBzeW50YXgKY29uc3QgZ3JlZXQgPSAobmFtZSA9ICdXb3JsZCcpID0+IFxgSGVsbG8sIFwke25hbWV9IVxgOwpjb25zb2xlLmxvZyhncmVldCgnU2hhZENOJykpOwogICAgICA8L2RlZXMtZGF0YXZpZXctY29kZWJveD4KICAgIDwvZGl2PgogICAgCiAgICA8ZGl2IGNsYXNzPSJzZWN0aW9uIj4KICAgICAgPGRpdiBjbGFzcz0ic2VjdGlvbi10aXRsZSI+UHl0aG9uIEV4YW1wbGU8L2Rpdj4KICAgICAgPGRpdiBjbGFzcz0ic2VjdGlvbi1kZXNjcmlwdGlvbiI+UHl0aG9uIGNvZGUgd2l0aCBjbGFzc2VzIGFuZCB0eXBlIGhpbnRzLjwvZGl2PgogICAgICA8ZGVlcy1kYXRhdmlldy1jb2RlYm94IHByb2dsYW5nPSJweXRob24iPgpmcm9tIHR5cGluZyBpbXBvcnQgTGlzdCwgT3B0aW9uYWwKaW1wb3J0IGFzeW5jaW8KCmNsYXNzIERhdGFQcm9jZXNzb3I6CiAgICAiIiJBIHNpbXBsZSBkYXRhIHByb2Nlc3NvciBjbGFzcyIiIgogICAgCiAgICBkZWYgX19pbml0X18oc2VsZiwgbmFtZTogc3RyKToKICAgICAgICBzZWxmLm5hbWUgPSBuYW1lCiAgICAgICAgc2VsZi5kYXRhOiBMaXN0W2RpY3RdID0gW10KICAgIAogICAgYXN5bmMgZGVmIHByb2Nlc3NfZGF0YShzZWxmLCBpdGVtczogTGlzdFtkaWN0XSkgLT4gTGlzdFtkaWN0XToKICAgICAgICAiIiJQcm9jZXNzIGRhdGEgaXRlbXMgYXN5bmNocm9ub3VzbHkiIiIKICAgICAgICByZXN1bHRzID0gW10KICAgICAgICBmb3IgaXRlbSBpbiBpdGVtczoKICAgICAgICAgICAgIyBTaW11bGF0ZSBhc3luYyBwcm9jZXNzaW5nCiAgICAgICAgICAgIGF3YWl0IGFzeW5jaW8uc2xlZXAoMC4xKQogICAgICAgICAgICByZXN1bHRzLmFwcGVuZCh7CiAgICAgICAgICAgICAgICAnaWQnOiBpdGVtLmdldCgnaWQnKSwKICAgICAgICAgICAgICAgICdwcm9jZXNzZWQnOiBUcnVlLAogICAgICAgICAgICAgICAgJ3Byb2Nlc3Nvcic6IHNlbGYubmFtZQogICAgICAgICAgICB9KQogICAgICAgIHJldHVybiByZXN1bHRzCiAgICAKICAgIGRlZiBnZXRfc3VtbWFyeShzZWxmKSAtPiBkaWN0OgogICAgICAgIHJldHVybiB7CiAgICAgICAgICAgICdwcm9jZXNzb3InOiBzZWxmLm5hbWUsCiAgICAgICAgICAgICdpdGVtc19wcm9jZXNzZWQnOiBsZW4oc2VsZi5kYXRhKQogICAgICAgIH0KCiMgVXNhZ2UKcHJvY2Vzc29yID0gRGF0YVByb2Nlc3NvcigiTWFpbiIpCmRhdGEgPSBhd2FpdCBwcm9jZXNzb3IucHJvY2Vzc19kYXRhKFt7J2lkJzogMX0sIHsnaWQnOiAyfV0pCiAgICAgIDwvZGVlcy1kYXRhdmlldy1jb2RlYm94PgogICAgPC9kaXY+CiAgICAKICAgIDxkaXYgY2xhc3M9InNlY3Rpb24iPgogICAgICA8ZGl2IGNsYXNzPSJzZWN0aW9uLXRpdGxlIj5DU1MgRXhhbXBsZTwvZGl2PgogICAgICA8ZGl2IGNsYXNzPSJzZWN0aW9uLWRlc2NyaXB0aW9uIj5Nb2Rlcm4gQ1NTIHdpdGggY3VzdG9tIHByb3BlcnRpZXMgYW5kIGFuaW1hdGlvbnMuIE5vdGUgdGhlIHNob3J0ZXIgbGFuZ3VhZ2UgbGFiZWwuPC9kaXY+CiAgICAgIDxkZWVzLWRhdGF2aWV3LWNvZGVib3ggcHJvZ2xhbmc9ImNzcyI+Ci8qIE1vZGVybiBDU1Mgd2l0aCBjdXN0b20gcHJvcGVydGllcyAqLwo6cm9vdCB7CiAgLS1wcmltYXJ5LWNvbG9yOiAjM2I4MmY2OwogIC0tc2Vjb25kYXJ5LWNvbG9yOiAjMTBiOTgxOwogIC0tYmFja2dyb3VuZDogI2ZmZmZmZjsKICAtLXRleHQtY29sb3I6ICMwOTA5MGI7CiAgLS1ib3JkZXItcmFkaXVzOiA2cHg7Cn0KCi5jYXJkIHsKICBiYWNrZ3JvdW5kOiB2YXIoLS1iYWNrZ3JvdW5kKTsKICBib3JkZXI6IDFweCBzb2xpZCAjZTVlN2ViOwogIGJvcmRlci1yYWRpdXM6IHZhcigtLWJvcmRlci1yYWRpdXMpOwogIHBhZGRpbmc6IDI0cHg7CiAgYm94LXNoYWRvdzogMCAxcHggM3B4IHJnYmEoMCwgMCwgMCwgMC4xKTsKICB0cmFuc2l0aW9uOiBhbGwgMC4ycyBlYXNlOwp9CgouY2FyZDpob3ZlciB7CiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0ycHgpOwogIGJveC1zaGFkb3c6IDAgNHB4IDZweCByZ2JhKDAsIDAsIDAsIDAuMSk7Cn0KCkBrZXlmcmFtZXMgZmFkZUluIHsKICBmcm9tIHsgb3BhY2l0eTogMDsgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDEwcHgpOyB9CiAgdG8geyBvcGFjaXR5OiAxOyB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMCk7IH0KfQogICAgICA8L2RlZXMtZGF0YXZpZXctY29kZWJveD4KICAgIDwvZGl2PgogICAgCiAgICA8ZGl2IGNsYXNzPSJzZWN0aW9uIj4KICAgICAgPGRpdiBjbGFzcz0ic2VjdGlvbi10aXRsZSI+SlNPTiBFeGFtcGxlPC9kaXY+CiAgICAgIDxkaXYgY2xhc3M9InNlY3Rpb24tZGVzY3JpcHRpb24iPkpTT04gY29uZmlndXJhdGlvbiB3aXRoIHByb3BlciBmb3JtYXR0aW5nLjwvZGl2PgogICAgICA8ZGVlcy1kYXRhdmlldy1jb2RlYm94IHByb2dsYW5nPSJqc29uIj4KewogICJuYW1lIjogIkBkZXNpZ24uZXN0YXRlL2RlZXMtY2F0YWxvZyIsCiAgInZlcnNpb24iOiAiMS4xMC43IiwKICAiZGVzY3JpcHRpb24iOiAiQSBjb21wcmVoZW5zaXZlIGNhdGFsb2cgb2Ygd2ViIGNvbXBvbmVudHMiLAogICJtYWluIjogImRpc3RfdHNfd2ViL2luZGV4LmpzIiwKICAidHlwZSI6ICJtb2R1bGUiLAogICJzY3JpcHRzIjogewogICAgImJ1aWxkIjogInRzYnVpbGQgdHNmb2xkZXJzIC0tYWxsb3dpbXBsaWNpdGFueSAmJiB0c2J1bmRsZSBlbGVtZW50IC0tcHJvZHVjdGlvbiIsCiAgICAid2F0Y2giOiAidHN3YXRjaCBlbGVtZW50IiwKICAgICJ0ZXN0IjogInRzdGVzdCB0ZXN0LyAtLXdlYiAtLXZlcmJvc2UiCiAgfSwKICAiZGVwZW5kZW5jaWVzIjogewogICAgIkBkZXNpZ24uZXN0YXRlL2RlZXMtZWxlbWVudCI6ICJeMi4wLjQ1IiwKICAgICJoaWdobGlnaHQuanMiOiAiXjExLjkuMCIKICB9Cn0KICAgICAgPC9kZWVzLWRhdGF2aWV3LWNvZGVib3g+CiAgICA8L2Rpdj4KICA8L2Rpdj4KYH0pO3ZhciBqNmUsZ2IsX2NyLFY2ZT1wKCgpPT57VGNyKCk7eGUoKTtRYSgpO1I4KCk7S3QoKTtNaSgpO0I0KCk7ajZlPWZ1bmN0aW9uKGUsdCxyLGksYSxuKXtmdW5jdGlvbiBvKHkpe2lmKHkhPT12b2lkIDAmJnR5cGVvZiB5IT0iZnVuY3Rpb24iKXRocm93IG5ldyBUeXBlRXJyb3IoIkZ1bmN0aW9uIGV4cGVjdGVkIik7cmV0dXJuIHl9Zm9yKHZhciBzPWkua2luZCxsPXM9PT0iZ2V0dGVyIj8iZ2V0IjpzPT09InNldHRlciI/InNldCI6InZhbHVlIixjPSF0JiZlP2kuc3RhdGljP2U6ZS5wcm90b3R5cGU6bnVsbCx1PXR8fChjP09iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoYyxpLm5hbWUpOnt9KSxkLGg9ITEsZj1yLmxlbmd0aC0xO2Y+PTA7Zi0tKXt2YXIgeD17fTtmb3IodmFyIHYgaW4gaSl4W3ZdPXY9PT0iYWNjZXNzIj97fTppW3ZdO2Zvcih2YXIgdiBpbiBpLmFjY2Vzcyl4LmFjY2Vzc1t2XT1pLmFjY2Vzc1t2XTt4LmFkZEluaXRpYWxpemVyPWZ1bmN0aW9uKHkpe2lmKGgpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGFkZCBpbml0aWFsaXplcnMgYWZ0ZXIgZGVjb3JhdGlvbiBoYXMgY29tcGxldGVkIik7bi5wdXNoKG8oeXx8bnVsbCkpfTt2YXIgYj0oMCxyW2ZdKShzPT09ImFjY2Vzc29yIj97Z2V0OnUuZ2V0LHNldDp1LnNldH06dVtsXSx4KTtpZihzPT09ImFjY2Vzc29yIil7aWYoYj09PXZvaWQgMCljb250aW51ZTtpZihiPT09bnVsbHx8dHlwZW9mIGIhPSJvYmplY3QiKXRocm93IG5ldyBUeXBlRXJyb3IoIk9iamVjdCBleHBlY3RlZCIpOyhkPW8oYi5nZXQpKSYmKHUuZ2V0PWQpLChkPW8oYi5zZXQpKSYmKHUuc2V0PWQpLChkPW8oYi5pbml0KSkmJmEudW5zaGlmdChkKX1lbHNlKGQ9byhiKSkmJihzPT09ImZpZWxkIj9hLnVuc2hpZnQoZCk6dVtsXT1kKX1jJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoYyxpLm5hbWUsdSksaD0hMH0sZ2I9ZnVuY3Rpb24oZSx0LHIpe2Zvcih2YXIgaT1hcmd1bWVudHMubGVuZ3RoPjIsYT0wO2E8dC5sZW5ndGg7YSsrKXI9aT90W2FdLmNhbGwoZSxyKTp0W2FdLmNhbGwoZSk7cmV0dXJuIGk/cjp2b2lkIDB9LF9jcj0oKCk9PntsZXQgZT1beWUoImRlZXMtZGF0YXZpZXctY29kZWJveCIpXSx0LHI9W10saSxhPXplLG4sbz1bXSxzPVtdLGwsYz1bXSx1PVtdO3ZhciBkPWNsYXNzIGV4dGVuZHMgYXtzdGF0aWN7aT10aGlzfXN0YXRpY3tsZXQgaD10eXBlb2YgU3ltYm9sPT0iZnVuY3Rpb24iJiZTeW1ib2wubWV0YWRhdGE/T2JqZWN0LmNyZWF0ZShhW1N5bWJvbC5tZXRhZGF0YV0/P251bGwpOnZvaWQgMDtuPVtqKCldLGw9W2ooe3R5cGU6U3RyaW5nLHJlZmxlY3Q6ITB9KV0sajZlKHRoaXMsbnVsbCxuLHtraW5kOiJhY2Nlc3NvciIsbmFtZToicHJvZ0xhbmciLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmY9PiJwcm9nTGFuZyJpbiBmLGdldDpmPT5mLnByb2dMYW5nLHNldDooZix4KT0+e2YucHJvZ0xhbmc9eH19LG1ldGFkYXRhOmh9LG8scyksajZlKHRoaXMsbnVsbCxsLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiY29kZVRvRGlzcGxheSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6Zj0+ImNvZGVUb0Rpc3BsYXkiaW4gZixnZXQ6Zj0+Zi5jb2RlVG9EaXNwbGF5LHNldDooZix4KT0+e2YuY29kZVRvRGlzcGxheT14fX0sbWV0YWRhdGE6aH0sYyx1KSxqNmUobnVsbCx0PXt2YWx1ZTppfSxlLHtraW5kOiJjbGFzcyIsbmFtZTppLm5hbWUsbWV0YWRhdGE6aH0sbnVsbCxyKSxkPWk9dC52YWx1ZSxoJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoaSxTeW1ib2wubWV0YWRhdGEse2VudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwLHZhbHVlOmh9KX1zdGF0aWMgZGVtbz1DY3I7c3RhdGljIGRlbW9Hcm91cHM9WyJEYXRhIFZpZXciLCJXb3Jrc3BhY2UiXTsjZT1nYih0aGlzLG8sInR5cGVzY3JpcHQiKTtnZXQgcHJvZ0xhbmcoKXtyZXR1cm4gdGhpcy4jZX1zZXQgcHJvZ0xhbmcoaCl7dGhpcy4jZT1ofSN0PShnYih0aGlzLHMpLGdiKHRoaXMsYywiIikpO2dldCBjb2RlVG9EaXNwbGF5KCl7cmV0dXJuIHRoaXMuI3R9c2V0IGNvZGVUb0Rpc3BsYXkoaCl7dGhpcy4jdD1ofWNvbnN0cnVjdG9yKCl7c3VwZXIoKX1yZW5kZXIoKXtyZXR1cm4gQ2AKICAgICAgJHtkMS5zdHlsZXN9CiAgICAgIDxzdHlsZT4KICAgICAgICA6aG9zdCB7CiAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgICAgICBkaXNwbGF5OiBibG9jazsKICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7CiAgICAgICAgICBmb250LXNpemU6IDE2cHg7CiAgICAgICAgICBmb250LWZhbWlseTogJHtJcn07CiAgICAgICAgICBoZWlnaHQ6IDEwMCU7CiAgICAgICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94OwogICAgICAgIH0KICAgICAgICAubWFpbmJveCB7CiAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgICAgICBjb2xvcjogJHttLmJkVGhlbWUoIiMwOTA5MGIiLCIjZmFmYWZhIil9OwogICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHttLmJkVGhlbWUoIiNlNWU3ZWIiLCIjMjcyNzJhIil9OwogICAgICAgICAgYm94LXNoYWRvdzogMCAxcHggM3B4IHJnYmEoMCwgMCwgMCwgMC4xKSwgMCAxcHggMnB4IHJnYmEoMCwgMCwgMCwgMC4wNik7CiAgICAgICAgICBiYWNrZ3JvdW5kOiAke20uYmRUaGVtZSgiI2ZmZmZmZiIsIiMwOTA5MGIiKX07CiAgICAgICAgICBib3JkZXItcmFkaXVzOiA2cHg7CiAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgICAgICBoZWlnaHQ6IDEwMCU7CiAgICAgICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94OwogICAgICAgIH0KCiAgICAgICAgLmFwcGJhciB7CiAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgICAgICBjb2xvcjogJHttLmJkVGhlbWUoIiM3MTcxN2EiLCIjYTFhMWFhIil9OwogICAgICAgICAgYmFja2dyb3VuZDogJHttLmJkVGhlbWUoIiNmOWZhZmIiLCIjMTgxODFiIil9OwogICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICR7bS5iZFRoZW1lKCIjZTVlN2ViIiwiIzI3MjcyYSIpfTsKICAgICAgICAgIGhlaWdodDogMzJweDsKICAgICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgICBmb250LXNpemU6IDEzcHg7CiAgICAgICAgICBsaW5lLWhlaWdodDogMzJweDsKICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOwogICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICAgIGZsZXgtc2hyaW5rOiAwOwogICAgICAgIH0KCiAgICAgICAgLmFwcGJhciAuZmlsZU5hbWUgewogICAgICAgICAgbGluZS1oZWlnaHQ6IGluaGVyaXQ7CiAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgICAgICBmbGV4OiAxOwogICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyOwogICAgICAgIH0KCiAgICAgICAgLmJvdHRvbUJhciB7CiAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgICAgICBjb2xvcjogJHttLmJkVGhlbWUoIiM3MTcxN2EiLCIjYTFhMWFhIil9OwogICAgICAgICAgYmFja2dyb3VuZDogJHttLmJkVGhlbWUoIiNmOWZhZmIiLCIjMTgxODFiIil9OwogICAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICR7bS5iZFRoZW1lKCIjZTVlN2ViIiwiIzI3MjcyYSIpfTsKICAgICAgICAgIGhlaWdodDogMjhweDsKICAgICAgICAgIGZvbnQtc2l6ZTogMTJweDsKICAgICAgICAgIGxpbmUtaGVpZ2h0OiAyOHB4OwogICAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICAgIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7CiAgICAgICAgICBhbGlnbi1pdGVtczogc3RyZXRjaDsKICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47CiAgICAgICAgICBmbGV4LXNocmluazogMDsKICAgICAgICB9CgogICAgICAgIC5zcGFjZXNMYWJlbCB7CiAgICAgICAgICBwYWRkaW5nOiAwIDE2cHg7CiAgICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICB9CgogICAgICAgIC5sYW5ndWFnZUxhYmVsIHsKICAgICAgICAgIGNvbG9yOiAke20uYmRUaGVtZSgiIzNiODJmNiIsIiMzYjgyZjYiKX07CiAgICAgICAgICBmb250LXNpemU6IDEycHg7CiAgICAgICAgICBsaW5lLWhlaWdodDogMjhweDsKICAgICAgICAgIGJhY2tncm91bmQ6ICR7bS5iZFRoZW1lKCJyZ2JhKDU5LCAxMzAsIDI0NiwgMC4xKSIsInJnYmEoNTksIDEzMCwgMjQ2LCAwLjEpIil9OwogICAgICAgICAgcGFkZGluZzogMHB4IDE2cHg7CiAgICAgICAgICBmb250LXdlaWdodDogNTAwOwogICAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgfQoKICAgICAgICAuaGxqcy1rZXl3b3JkIHsKICAgICAgICAgIGNvbG9yOiAke20uYmRUaGVtZSgiI2RjMjYyNiIsIiNmODcxNzEiKX07CiAgICAgICAgfQoKICAgICAgICAuY29kZWdyaWQgewogICAgICAgICAgZGlzcGxheTogZ3JpZDsKICAgICAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogNTBweCBhdXRvOwogICAgICAgICAgb3ZlcmZsb3c6IGF1dG87CiAgICAgICAgICBmbGV4OiAxOwogICAgICAgICAgbWluLWhlaWdodDogMDsKICAgICAgICB9CgogICAgICAgIC5saW5lTnVtYmVycyB7CiAgICAgICAgICBjb2xvcjogJHttLmJkVGhlbWUoIiM3MTcxN2EiLCIjNTI1MjViIil9OwogICAgICAgICAgcGFkZGluZzogMjRweCAxNnB4IDBweCAwcHg7CiAgICAgICAgICB0ZXh0LWFsaWduOiByaWdodDsKICAgICAgICAgIGJvcmRlci1yaWdodDogMXB4IHNvbGlkICR7bS5iZFRoZW1lKCIjZTVlN2ViIiwiIzI3MjcyYSIpfTsKICAgICAgICB9CgogICAgICAgIC5saW5lQ291bnRlcjpsYXN0LWNoaWxkIHsKICAgICAgICAgIG9wYWNpdHk6IDUwJTsKICAgICAgICB9CgogICAgICAgIHByZSB7CiAgICAgICAgICBvdmVyZmxvdy14OiBhdXRvOwogICAgICAgICAgbWFyZ2luOiAwcHg7CiAgICAgICAgICBwYWRkaW5nOiAyNHB4IDI0cHg7CiAgICAgICAgfQoKICAgICAgICBjb2RlIHsKICAgICAgICAgIGZvbnQtd2VpZ2h0OiA0MDA7CiAgICAgICAgICBwYWRkaW5nOiAwcHg7CiAgICAgICAgICBtYXJnaW46IDBweDsKICAgICAgICB9CgogICAgICAgIGNvZGUsCiAgICAgICAgY29kZSAqLAogICAgICAgIC5saW5lTnVtYmVycyB7CiAgICAgICAgICBsaW5lLWhlaWdodDogMS40ZW07CiAgICAgICAgICBmb250LXdlaWdodDogMjAwOwogICAgICAgICAgZm9udC1mYW1pbHk6ICR7QWR9OwogICAgICAgIH0KCiAgICAgICAgLmhsanMtc3RyaW5nIHsKICAgICAgICAgIGNvbG9yOiAke20uYmRUaGVtZSgiIzA1OTY2OSIsIiMxMGI5ODEiKX07CiAgICAgICAgfQoKICAgICAgICAuaGxqcy1idWlsdF9pbiB7CiAgICAgICAgICBjb2xvcjogJHttLmJkVGhlbWUoIiM4YjVjZjYiLCIjYTc4YmZhIil9OwogICAgICAgIH0KCiAgICAgICAgLmhsanMtZnVuY3Rpb24gewogICAgICAgICAgY29sb3I6ICR7bS5iZFRoZW1lKCIjM2I4MmY2IiwiIzYwYTVmYSIpfTsKICAgICAgICB9CgogICAgICAgIC5obGpzLXBhcmFtcyB7CiAgICAgICAgICBjb2xvcjogJHttLmJkVGhlbWUoIiMwODkxYjIiLCIjMDZiNmQ0Iil9OwogICAgICAgIH0KCiAgICAgICAgLmhsanMtY29tbWVudCB7CiAgICAgICAgICBjb2xvcjogJHttLmJkVGhlbWUoIiM3MTcxN2EiLCIjNzE3MTdhIil9OwogICAgICAgIH0KCiAgICAgICAgLmhsanMtbnVtYmVyIHsKICAgICAgICAgIGNvbG9yOiAke20uYmRUaGVtZSgiI2VhNTgwYyIsIiNmYjkyM2MiKX07CiAgICAgICAgfQoKICAgICAgICAuaGxqcy1saXRlcmFsIHsKICAgICAgICAgIGNvbG9yOiAke20uYmRUaGVtZSgiI2RjMjYyNiIsIiNmODcxNzEiKX07CiAgICAgICAgfQoKICAgICAgICAuaGxqcy1hdHRyIHsKICAgICAgICAgIGNvbG9yOiAke20uYmRUaGVtZSgiIzhiNWNmNiIsIiNhNzhiZmEiKX07CiAgICAgICAgfQoKICAgICAgICAuaGxqcy12YXJpYWJsZSB7CiAgICAgICAgICBjb2xvcjogJHttLmJkVGhlbWUoIiMwOTA5MGIiLCIjZmFmYWZhIil9OwogICAgICAgIH0KICAgICAgPC9zdHlsZT4KICAgICAgPGRpdgogICAgICAgIGNsYXNzPSJtYWluYm94IgogICAgICAgIEBjb250ZXh0bWVudT0iJHtoPT57U3Iub3BlbkNvbnRleHRNZW51V2l0aE9wdGlvbnMoaCxbe25hbWU6IkFib3V0IixpY29uTmFtZToiY2lyY2xlSW5mbyIsYWN0aW9uOmFzeW5jKCk9Pm51bGx9XSl9fSIKICAgICAgPgogICAgICAgIDxkaXYgY2xhc3M9ImFwcGJhciI+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJmaWxlTmFtZSI+aW5kZXgudHM8L2Rpdj4KICAgICAgICA8L2Rpdj4KICAgICAgICA8ZGl2IGNsYXNzPSJjb2RlZ3JpZCI+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJsaW5lTnVtYmVycyI+CiAgICAgICAgICAgICR7KCgpPT57bGV0IGg9MDtyZXR1cm4gdGhpcy5jb2RlVG9EaXNwbGF5LnNwbGl0KGAKYCkubWFwKGY9PihoKyssQ2A8ZGl2IGNsYXNzPSJsaW5lQ291bnRlciI+JHtofTwvZGl2PmApKX0pKCl9CiAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIDxwcmU+PGNvZGU+PC9jb2RlPjwvcHJlPgogICAgICAgIDwvZGl2PgogICAgICAgIDxkaXYgY2xhc3M9ImJvdHRvbUJhciI+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJzcGFjZXNMYWJlbCI+U3BhY2VzOiAyPC9kaXY+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJsYW5ndWFnZUxhYmVsIj4ke3RoaXMucHJvZ0xhbmd9PC9kaXY+CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGl2PgogICAgYH1jb2RlVG9EaXNwbGF5U3RvcmU9KGdiKHRoaXMsdSksIiIpO2hpZ2hsaWdodEpzPW51bGw7YXN5bmMgdXBkYXRlZChoKXtzdXBlci51cGRhdGVkKGgpLGNvbnNvbGUubG9nKCJoaWdobGlnaHRpbmcgbm93IiksY29uc29sZS5sb2codGhpcy5jaGlsZE5vZGVzKTtsZXQgZj1bXTt0aGlzLmNoaWxkTm9kZXMuZm9yRWFjaChiPT57Yi5ub2RlTmFtZT09PSIjdGV4dCImJmYucHVzaChiKX0pLHRoaXMuY29kZVRvRGlzcGxheSYmdGhpcy5jb2RlVG9EaXNwbGF5IT09dGhpcy5jb2RlVG9EaXNwbGF5U3RvcmUmJih0aGlzLmNvZGVUb0Rpc3BsYXlTdG9yZT1CNi5ub3JtYWxpemUodGhpcy5jb2RlVG9EaXNwbGF5KS50cmltU3RhcnQoKSksZlswXSYmZlswXS53aG9sZVRleHQmJiF0aGlzLmNvZGVUb0Rpc3BsYXkmJih0aGlzLmNvZGVUb0Rpc3BsYXlTdG9yZT1CNi5ub3JtYWxpemUoZlswXS53aG9sZVRleHQpLnRyaW1TdGFydCgpLHRoaXMuY29kZVRvRGlzcGxheT10aGlzLmNvZGVUb0Rpc3BsYXlTdG9yZSksYXdhaXQganQuc21hcnRkZWxheS5kZWxheUZvcigwKSx0aGlzLmhpZ2hsaWdodEpzfHwodGhpcy5oaWdobGlnaHRKcz1hd2FpdCByYS5nZXRJbnN0YW5jZSgpLmxvYWRIaWdobGlnaHRKcygpKTtsZXQgeD10aGlzLnNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvcigiY29kZSIpLHY9dGhpcy5oaWdobGlnaHRKcy5oaWdobGlnaHQodGhpcy5jb2RlVG9EaXNwbGF5U3RvcmUse2xhbmd1YWdlOnRoaXMucHJvZ0xhbmcsaWdub3JlSWxsZWdhbHM6ITB9KTt4LmlubmVySFRNTD12LnZhbHVlfXN0YXRpY3tnYihpLHIpfX07cmV0dXJuIGQ9aX0pKCl9KTt2YXIgTGNyPXAoKCk9PntWNmUoKX0pO3ZhciBBY3IsRGNyPXAoKCk9Pnt4ZSgpO3cyKCk7QWNyPSgpPT5DYCA8c3R5bGU+CiAgICAuZGVtbyB7CiAgICAgIGJhY2tncm91bmQ6ICR7bS5iZFRoZW1lKCIjZjVmNWY1IiwiIzBhMGEwYSIpfTsKICAgICAgZGlzcGxheTogYmxvY2s7CiAgICAgIGNvbnRlbnQ6ICcnOwogICAgICBwYWRkaW5nOiA0MHB4OwogICAgfQogICAgCiAgICAuZGVtby1ncmlkIHsKICAgICAgZGlzcGxheTogZ3JpZDsKICAgICAgZ2FwOiAyNHB4OwogICAgICBtYXgtd2lkdGg6IDgwMHB4OwogICAgICBtYXJnaW46IDAgYXV0bzsKICAgIH0KICAgIAogICAgLmRlbW8tc2VjdGlvbiB7CiAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgIGdhcDogMTZweDsKICAgIH0KICAgIAogICAgLmRlbW8tdGl0bGUgewogICAgICBmb250LXNpemU6IDE0cHg7CiAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7CiAgICAgIGNvbG9yOiAke20uYmRUaGVtZSgiaHNsKDAgMCUgNDUuMSUpIiwiaHNsKDAgMCUgNjMuOSUpIil9OwogICAgICBtYXJnaW4tYm90dG9tOiA4cHg7CiAgICAgIGZvbnQtZmFtaWx5OiAtYXBwbGUtc3lzdGVtLCBCbGlua01hY1N5c3RlbUZvbnQsICdTZWdvZSBVSScsIHNhbnMtc2VyaWY7CiAgICB9CiAgICAKICAgIC5kZW1vLW5vdGUgewogICAgICBmb250LXNpemU6IDEycHg7CiAgICAgIGNvbG9yOiAke20uYmRUaGVtZSgiaHNsKDAgMCUgNDUuMSUpIiwiaHNsKDAgMCUgNjMuOSUpIil9OwogICAgICBtYXJnaW4tYm90dG9tOiAyNHB4OwogICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7CiAgICAgIGZvbnQtc3R5bGU6IGl0YWxpYzsKICAgICAgZm9udC1mYW1pbHk6IC1hcHBsZS1zeXN0ZW0sIEJsaW5rTWFjU3lzdGVtRm9udCwgJ1NlZ29lIFVJJywgc2Fucy1zZXJpZjsKICAgIH0KICA8L3N0eWxlPgogIDxkaXYgY2xhc3M9ImRlbW8iPgogICAgPGRpdiBjbGFzcz0iZGVtby1ub3RlIj4KICAgICAgUmlnaHQtY2xpY2sgb24gYW55IGRldGFpbCByb3cgdG8gY29weSB0aGUgdmFsdWUsIGtleSwgb3Iga2V5OnZhbHVlIGNvbWJpbmF0aW9uCiAgICA8L2Rpdj4KICAgIDxkaXYgY2xhc3M9ImRlbW8tZ3JpZCI+CiAgICAgIDxkaXYgY2xhc3M9ImRlbW8tc2VjdGlvbiI+CiAgICAgICAgPGRpdiBjbGFzcz0iZGVtby10aXRsZSI+U2VydmljZSBIZWFsdGggU3RhdHVzPC9kaXY+CiAgICAgICAgPGRlZXMtZGF0YXZpZXctc3RhdHVzb2JqZWN0CiAgICAgICAgICAuc3RhdHVzT2JqZWN0PSR7e2lkOiIxIixuYW1lOiJBUEkgR2F0ZXdheSBTZXJ2aWNlIixjb21iaW5lZFN0YXR1czoib2siLGNvbWJpbmVkU3RhdHVzVGV4dDoiQWxsIHN5c3RlbXMgb3BlcmF0aW9uYWwiLGRldGFpbHM6W3tuYW1lOiJSZXNwb25zZSBUaW1lIix2YWx1ZToiNDVtcyAoYXZnKSIsc3RhdHVzOiJvayIsc3RhdHVzVGV4dDoiV2l0aGluIG5vcm1hbCByYW5nZSJ9LHtuYW1lOiJVcHRpbWUiLHZhbHVlOiI5OS45OSUgKDMwIGRheXMpIixzdGF0dXM6Im9rIixzdGF0dXNUZXh0OiJFeGNlbGxlbnQgdXB0aW1lIn0se25hbWU6IkFjdGl2ZSBDb25uZWN0aW9ucyIsdmFsdWU6IjEsMjM0IC8gMTAsMDAwIixzdGF0dXM6Im9rIixzdGF0dXNUZXh0OiJOb3JtYWwgbG9hZCJ9LHtuYW1lOiJTU0wgQ2VydGlmaWNhdGUiLHZhbHVlOiJWYWxpZCB1bnRpbCAyMDI0LTEyLTMxIixzdGF0dXM6Im9rIixzdGF0dXNUZXh0OiJDZXJ0aWZpY2F0ZSB2YWxpZCJ9XX19CiAgICAgICAgPgogICAgICAgIDwvZGVlcy1kYXRhdmlldy1zdGF0dXNvYmplY3Q+CiAgICAgIDwvZGl2PgogICAgICAKICAgICAgPGRpdiBjbGFzcz0iZGVtby1zZWN0aW9uIj4KICAgICAgICA8ZGl2IGNsYXNzPSJkZW1vLXRpdGxlIj5EYXRhYmFzZSBDbHVzdGVyIFN0YXR1czwvZGl2PgogICAgICAgIDxkZWVzLWRhdGF2aWV3LXN0YXR1c29iamVjdAogICAgICAgICAgLnN0YXR1c09iamVjdD0ke3tpZDoiMiIsbmFtZToiUG9zdGdyZVNRTCBDbHVzdGVyIixjb21iaW5lZFN0YXR1czoicGFydGx5X29rIixjb21iaW5lZFN0YXR1c1RleHQ6Ik1pbm9yIGlzc3VlcyBkZXRlY3RlZCIsZGV0YWlsczpbe25hbWU6IlByaW1hcnkgTm9kZSIsdmFsdWU6ImRiLXByaW1hcnktMDEgKGhlYWx0aHkpIixzdGF0dXM6Im9rIixzdGF0dXNUZXh0OiJPcGVyYXRpbmcgbm9ybWFsbHkifSx7bmFtZToiUmVwbGljYSBMYWciLHZhbHVlOiIyLjUgc2Vjb25kcyIsc3RhdHVzOiJwYXJ0bHlfb2siLHN0YXR1c1RleHQ6IlNsaWdodGx5IGVsZXZhdGVkIn0se25hbWU6IkRpc2sgVXNhZ2UiLHZhbHVlOiI3OCUgKDMxMkdCIC8gNDAwR0IpIixzdGF0dXM6InBhcnRseV9vayIsc3RhdHVzVGV4dDoiQXBwcm9hY2hpbmcgdGhyZXNob2xkIn0se25hbWU6IkNvbm5lY3Rpb24gUG9vbCIsdmFsdWU6Ijg5IC8gMTAwIGNvbm5lY3Rpb25zIixzdGF0dXM6Im9rIixzdGF0dXNUZXh0OiJXaXRoaW4gbGltaXRzIn1dfX0KICAgICAgICA+CiAgICAgICAgPC9kZWVzLWRhdGF2aWV3LXN0YXR1c29iamVjdD4KICAgICAgPC9kaXY+CiAgICAgIAogICAgICA8ZGl2IGNsYXNzPSJkZW1vLXNlY3Rpb24iPgogICAgICAgIDxkaXYgY2xhc3M9ImRlbW8tdGl0bGUiPkJ1aWxkIFBpcGVsaW5lIFN0YXR1czwvZGl2PgogICAgICAgIDxkZWVzLWRhdGF2aWV3LXN0YXR1c29iamVjdAogICAgICAgICAgLnN0YXR1c09iamVjdD0ke3tpZDoiMyIsbmFtZToiQ0kvQ0QgUGlwZWxpbmUiLGNvbWJpbmVkU3RhdHVzOiJub3Rfb2siLGNvbWJpbmVkU3RhdHVzVGV4dDoiQnVpbGQgZmFpbHVyZSIsZGV0YWlsczpbe25hbWU6Ikxhc3QgQnVpbGQiLHZhbHVlOiJCdWlsZCAjMTIzNCAtIEZhaWxlZCIsc3RhdHVzOiJub3Rfb2siLHN0YXR1c1RleHQ6IlRlc3QgZmFpbHVyZXMifSx7bmFtZToiRmFpbGVkIFRlc3RzIix2YWx1ZToiMyB0ZXN0cyBmYWlsZWQ6IGF1dGguc3BlYy50cywgdXNlci5zcGVjLnRzLCBhcGkuc3BlYy50cyIsc3RhdHVzOiJub3Rfb2siLHN0YXR1c1RleHQ6IlVuaXQgdGVzdCBmYWlsdXJlcyJ9LHtuYW1lOiJDb2RlIENvdmVyYWdlIix2YWx1ZToiODIuNSUgKHRhcmdldDogODUlKSIsc3RhdHVzOiJwYXJ0bHlfb2siLHN0YXR1c1RleHQ6IkJlbG93IHRhcmdldCJ9LHtuYW1lOiJCdWlsZCBEdXJhdGlvbiIsdmFsdWU6IjEybSAzNHMiLHN0YXR1czoib2siLHN0YXR1c1RleHQ6Ik5vcm1hbCBkdXJhdGlvbiJ9XX19CiAgICAgICAgPgogICAgICAgIDwvZGVlcy1kYXRhdmlldy1zdGF0dXNvYmplY3Q+CiAgICAgIDwvZGl2PgogICAgPC9kaXY+CiAgPC9kaXY+YH0pO3ZhciBFY3IsVTZlLCRjcixJY3I9cCgoKT0+e1BvKCk7d2koKTtEY3IoKTt4ZSgpO3cyKCk7TWkoKTtKZSgpO0Vjcj1mdW5jdGlvbihlLHQscixpLGEsbil7ZnVuY3Rpb24gbyh5KXtpZih5IT09dm9pZCAwJiZ0eXBlb2YgeSE9ImZ1bmN0aW9uIil0aHJvdyBuZXcgVHlwZUVycm9yKCJGdW5jdGlvbiBleHBlY3RlZCIpO3JldHVybiB5fWZvcih2YXIgcz1pLmtpbmQsbD1zPT09ImdldHRlciI/ImdldCI6cz09PSJzZXR0ZXIiPyJzZXQiOiJ2YWx1ZSIsYz0hdCYmZT9pLnN0YXRpYz9lOmUucHJvdG90eXBlOm51bGwsdT10fHwoYz9PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGMsaS5uYW1lKTp7fSksZCxoPSExLGY9ci5sZW5ndGgtMTtmPj0wO2YtLSl7dmFyIHg9e307Zm9yKHZhciB2IGluIGkpeFt2XT12PT09ImFjY2VzcyI/e306aVt2XTtmb3IodmFyIHYgaW4gaS5hY2Nlc3MpeC5hY2Nlc3Nbdl09aS5hY2Nlc3Nbdl07eC5hZGRJbml0aWFsaXplcj1mdW5jdGlvbih5KXtpZihoKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBhZGQgaW5pdGlhbGl6ZXJzIGFmdGVyIGRlY29yYXRpb24gaGFzIGNvbXBsZXRlZCIpO24ucHVzaChvKHl8fG51bGwpKX07dmFyIGI9KDAscltmXSkocz09PSJhY2Nlc3NvciI/e2dldDp1LmdldCxzZXQ6dS5zZXR9OnVbbF0seCk7aWYocz09PSJhY2Nlc3NvciIpe2lmKGI9PT12b2lkIDApY29udGludWU7aWYoYj09PW51bGx8fHR5cGVvZiBiIT0ib2JqZWN0Iil0aHJvdyBuZXcgVHlwZUVycm9yKCJPYmplY3QgZXhwZWN0ZWQiKTsoZD1vKGIuZ2V0KSkmJih1LmdldD1kKSwoZD1vKGIuc2V0KSkmJih1LnNldD1kKSwoZD1vKGIuaW5pdCkpJiZhLnVuc2hpZnQoZCl9ZWxzZShkPW8oYikpJiYocz09PSJmaWVsZCI/YS51bnNoaWZ0KGQpOnVbbF09ZCl9YyYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGMsaS5uYW1lLHUpLGg9ITB9LFU2ZT1mdW5jdGlvbihlLHQscil7Zm9yKHZhciBpPWFyZ3VtZW50cy5sZW5ndGg+MixhPTA7YTx0Lmxlbmd0aDthKyspcj1pP3RbYV0uY2FsbChlLHIpOnRbYV0uY2FsbChlKTtyZXR1cm4gaT9yOnZvaWQgMH0sJGNyPSgoKT0+e2xldCBlPVt5ZSgiZGVlcy1kYXRhdmlldy1zdGF0dXNvYmplY3QiKV0sdCxyPVtdLGksYT16ZSxuLG89W10scz1bXTt2YXIgbD1jbGFzcyBleHRlbmRzIGF7c3RhdGlje2k9dGhpc31zdGF0aWN7bGV0IGM9dHlwZW9mIFN5bWJvbD09ImZ1bmN0aW9uIiYmU3ltYm9sLm1ldGFkYXRhP09iamVjdC5jcmVhdGUoYVtTeW1ib2wubWV0YWRhdGFdPz9udWxsKTp2b2lkIDA7bj1baih7dHlwZTpPYmplY3R9KV0sRWNyKHRoaXMsbnVsbCxuLHtraW5kOiJhY2Nlc3NvciIsbmFtZToic3RhdHVzT2JqZWN0IixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczp1PT4ic3RhdHVzT2JqZWN0ImluIHUsZ2V0OnU9PnUuc3RhdHVzT2JqZWN0LHNldDoodSxkKT0+e3Uuc3RhdHVzT2JqZWN0PWR9fSxtZXRhZGF0YTpjfSxvLHMpLEVjcihudWxsLHQ9e3ZhbHVlOml9LGUse2tpbmQ6ImNsYXNzIixuYW1lOmkubmFtZSxtZXRhZGF0YTpjfSxudWxsLHIpLGw9aT10LnZhbHVlLGMmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShpLFN5bWJvbC5tZXRhZGF0YSx7ZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITAsdmFsdWU6Y30pfXN0YXRpYyBkZW1vPUFjcjtzdGF0aWMgZGVtb0dyb3Vwcz1bIkRhdGEgVmlldyJdOyNlPVU2ZSh0aGlzLG8sdm9pZCAwKTtnZXQgc3RhdHVzT2JqZWN0KCl7cmV0dXJuIHRoaXMuI2V9c2V0IHN0YXR1c09iamVjdChjKXt0aGlzLiNlPWN9c3RhdGljIHN0eWxlcz1bRGUsbS5kZWZhdWx0U3R5bGVzLG9lYAogICAgICAvKiBUT0RPOiBNaWdyYXRlIGhhcmRjb2RlZCB2YWx1ZXMgdG8gLS1kZWVzLSogQ1NTIHZhcmlhYmxlcyAqLwogICAgICA6aG9zdCB7CiAgICAgICAgZm9udC1mYW1pbHk6IC1hcHBsZS1zeXN0ZW0sIEJsaW5rTWFjU3lzdGVtRm9udCwgJ1NlZ29lIFVJJywgJ1JvYm90bycsIHNhbnMtc2VyaWY7CiAgICAgIH0KCiAgICAgIC5tYWluYm94IHsKICAgICAgICBib3JkZXItcmFkaXVzOiA4cHg7CiAgICAgICAgYmFja2dyb3VuZDogJHttLmJkVGhlbWUoImhzbCgwIDAlIDEwMCUpIiwiaHNsKDAgMCUgMy45JSkiKX07CiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHttLmJkVGhlbWUoImhzbCgwIDAlIDg5LjglKSIsImhzbCgwIDAlIDE0LjklKSIpfTsKICAgICAgICBib3gtc2hhZG93OiAwIDFweCAzcHggMCBoc2woMCAwJSAwJSAvIDAuMSksIDAgMXB4IDJweCAtMXB4IGhzbCgwIDAlIDAlIC8gMC4xKTsKICAgICAgICBtaW4taGVpZ2h0OiA0OHB4OwogICAgICAgIGNvbG9yOiAke20uYmRUaGVtZSgiaHNsKDAgMCUgOSUpIiwiaHNsKDAgMCUgOTglKSIpfTsKICAgICAgICBjdXJzb3I6IGRlZmF1bHQ7CiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgICAgfQoKICAgICAgLmhlYWRpbmcgewogICAgICAgIGRpc3BsYXk6IGdyaWQ7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDQ4cHggYXV0byAxMDBweDsKICAgICAgICBoZWlnaHQ6IDU2cHg7CiAgICAgICAgcGFkZGluZzogMCAxNnB4OwogICAgICAgIGJhY2tncm91bmQ6ICR7bS5iZFRoZW1lKCJoc2woMCAwJSA5NyUpIiwiaHNsKDAgMCUgNyUpIil9OwogICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAke20uYmRUaGVtZSgiaHNsKDAgMCUgODkuOCUpIiwiaHNsKDAgMCUgMTQuOSUpIil9OwogICAgICB9CgogICAgICBoMSB7CiAgICAgICAgZGlzcGxheTogYmxvY2s7CiAgICAgICAgbWFyZ2luOiAwcHg7CiAgICAgICAgcGFkZGluZzogMHB4IDEycHg7CiAgICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7CiAgICAgICAgbGV0dGVyLXNwYWNpbmc6IC0wLjAxZW07CiAgICAgICAgY29sb3I6ICR7bS5iZFRoZW1lKCJoc2woMCAwJSAxNSUpIiwiaHNsKDAgMCUgOTMuOSUpIil9OwogICAgICB9CgogICAgICAuc3RhdHVzZG90IHsKICAgICAgICBoZWlnaHQ6IDEwcHg7CiAgICAgICAgd2lkdGg6IDEwcHg7CiAgICAgICAgYm9yZGVyLXJhZGl1czogNTAlOwogICAgICAgIGJhY2tncm91bmQ6ICR7bS5iZFRoZW1lKCJoc2woMCAwJSA2My45JSkiLCJoc2woMCAwJSA0NS4xJSkiKX07CiAgICAgICAgbWFyZ2luOiBhdXRvOwogICAgICAgIGJveC1zaGFkb3c6IDAgMCAwIDNweCAke20uYmRUaGVtZSgiaHNsKDAgMCUgNjMuOSUgLyAwLjIpIiwiaHNsKDAgMCUgNDUuMSUgLyAwLjIpIil9OwogICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjJzIGVhc2U7CiAgICAgIH0KCiAgICAgIC5jb3B5TWFpbiB7CiAgICAgICAgZm9udC1zaXplOiAxMnB4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7CiAgICAgICAgYmFja2dyb3VuZDogJHttLmJkVGhlbWUoImhzbCgwIDAlIDEwMCUpIiwiaHNsKDAgMCUgMTQuOSUpIil9OwogICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICR7bS5iZFRoZW1lKCJoc2woMCAwJSA4OS44JSkiLCJoc2woMCAwJSAxNC45JSkiKX07CiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyOwogICAgICAgIHBhZGRpbmc6IDZweCAxMnB4OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDZweDsKICAgICAgICBjb2xvcjogJHttLmJkVGhlbWUoImhzbCgwIDAlIDQ1LjElKSIsImhzbCgwIDAlIDYzLjklKSIpfTsKICAgICAgICB1c2VyLXNlbGVjdDogbm9uZTsKICAgICAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuMTVzIGVhc2U7CiAgICAgIH0KCiAgICAgIC5jb3B5TWFpbjpob3ZlciB7CiAgICAgICAgYmFja2dyb3VuZDogJHttLmJkVGhlbWUoImhzbCgwIDAlIDk1LjElKSIsImhzbCgwIDAlIDE0LjklKSIpfTsKICAgICAgICBib3JkZXItY29sb3I6ICR7bS5iZFRoZW1lKCJoc2woMCAwJSA3OS44JSkiLCJoc2woMCAwJSAyMC45JSkiKX07CiAgICAgICAgY29sb3I6ICR7bS5iZFRoZW1lKCJoc2woMCAwJSAxNSUpIiwiaHNsKDAgMCUgOTMuOSUpIil9OwogICAgICB9CgogICAgICAuY29weU1haW46YWN0aXZlIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke20uYmRUaGVtZSgiaHNsKDAgMCUgOTElKSIsImhzbCgwIDAlIDE0LjklKSIpfTsKICAgICAgICB0cmFuc2Zvcm06IHNjYWxlKDAuOTgpOwogICAgICB9CgogICAgICAuc3RhdHVzZG90Lm9rIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke20uYmRUaGVtZSgiaHNsKDE0Mi4xIDc2LjIlIDM2LjMlKSIsImhzbCgxNDIuMSA3MC42JSA0NS4zJSkiKX07CiAgICAgICAgYm94LXNoYWRvdzogMCAwIDAgM3B4ICR7bS5iZFRoZW1lKCJoc2woMTQyLjEgNzYuMiUgMzYuMyUgLyAwLjIpIiwiaHNsKDE0Mi4xIDcwLjYlIDQ1LjMlIC8gMC4yKSIpfTsKICAgICAgfQoKICAgICAgLnN0YXR1c2RvdC5ub3Rfb2sgewogICAgICAgIGJhY2tncm91bmQ6ICR7bS5iZFRoZW1lKCJoc2woMCA4NC4yJSA2MC4yJSkiLCJoc2woMCA3Mi4yJSA1MC42JSkiKX07CiAgICAgICAgYm94LXNoYWRvdzogMCAwIDAgM3B4ICR7bS5iZFRoZW1lKCJoc2woMCA4NC4yJSA2MC4yJSAvIDAuMikiLCJoc2woMCA3Mi4yJSA1MC42JSAvIDAuMikiKX07CiAgICAgIH0KCiAgICAgIC5zdGF0dXNkb3QucGFydGx5X29rIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke20uYmRUaGVtZSgiaHNsKDI1IDk1JSA1MyUpIiwiaHNsKDI1IDk1JSA2MyUpIil9OwogICAgICAgIGJveC1zaGFkb3c6IDAgMCAwIDNweCAke20uYmRUaGVtZSgiaHNsKDI1IDk1JSA1MyUgLyAwLjIpIiwiaHNsKDI1IDk1JSA2MyUgLyAwLjIpIil9OwogICAgICB9CgogICAgICAuZGV0YWlsIHsKICAgICAgICBtaW4taGVpZ2h0OiA2MHB4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgZGlzcGxheTogZ3JpZDsKICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDQ4cHggYXV0bzsKICAgICAgICBib3JkZXItdG9wOiAxcHggc29saWQgJHttLmJkVGhlbWUoImhzbCgwIDAlIDk0JSkiLCJoc2woMCAwJSAxNC45JSkiKX07CiAgICAgICAgdHJhbnNpdGlvbjogYmFja2dyb3VuZC1jb2xvciAwLjE1cyBlYXNlOwogICAgICAgIHBhZGRpbmctcmlnaHQ6IDE2cHg7CiAgICAgICAgY3Vyc29yOiBjb250ZXh0LW1lbnU7CiAgICAgIH0KCiAgICAgIC5kZXRhaWw6aG92ZXIgewogICAgICAgIGJhY2tncm91bmQ6ICR7bS5iZFRoZW1lKCJoc2woMCAwJSA5NyUpIiwiaHNsKDAgMCUgNyUpIil9OwogICAgICB9CgogICAgICAuZGV0YWlsOmFjdGl2ZSB7CiAgICAgICAgYmFja2dyb3VuZDogJHttLmJkVGhlbWUoImhzbCgwIDAlIDk1JSkiLCJoc2woMCAwJSA5JSkiKX07CiAgICAgIH0KCiAgICAgIC5kZXRhaWwgLmRldGFpbHNUZXh0IHsKICAgICAgICBwYWRkaW5nOiAxMnB4OwogICAgICAgIHdvcmQtYnJlYWs6IGJyZWFrLWFsbDsKICAgICAgfQoKICAgICAgLmRldGFpbCAuZGV0YWlsc1RleHQgLmxhYmVsIHsKICAgICAgICBmb250LXNpemU6IDEycHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDsKICAgICAgICBjb2xvcjogJHttLmJkVGhlbWUoImhzbCgwIDAlIDQ1LjElKSIsImhzbCgwIDAlIDYzLjklKSIpfQogICAgICAgIG1hcmdpbi1ib3R0b206IDJweDsKICAgICAgICBsZXR0ZXItc3BhY2luZzogLTAuMDFlbTsKICAgICAgfQoKICAgICAgLmRldGFpbCAuZGV0YWlsc1RleHQgLnZhbHVlIHsKICAgICAgICBmb250LXNpemU6IDE0cHg7CiAgICAgICAgZm9udC1mYW1pbHk6ICdJbnRlbCBPbmUgTW9ubycsICdHZWlzdCBNb25vJywgbW9ub3NwYWNlOwogICAgICAgIGNvbG9yOiAke20uYmRUaGVtZSgiaHNsKDAgMCUgMTUlKSIsImhzbCgwIDAlIDkwJSkiKX07CiAgICAgICAgbGluZS1oZWlnaHQ6IDEuNTsKICAgICAgfQogICAgYF07cmVuZGVyKCl7cmV0dXJuIENgCiAgICAgIDxkaXYgY2xhc3M9Im1haW5ib3giPgogICAgICAgIDxkaXYgY2xhc3M9ImhlYWRpbmciPgogICAgICAgICAgPGRpdiBjbGFzcz0ic3RhdHVzZG90ICR7dGhpcy5zdGF0dXNPYmplY3Q/LmNvbWJpbmVkU3RhdHVzfSI+PC9kaXY+CiAgICAgICAgICA8aDE+JHt0aGlzLnN0YXR1c09iamVjdD8ubmFtZXx8Ik5vIHN0YXR1cyBvYmplY3QgYXNzaWduZWQifTwvaDE+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJjb3B5TWFpbiIgQGNsaWNrPSR7dGhpcy5oYW5kbGVDb3B5QXNKc29ufT5Db3B5IEpTT048L2Rpdj4KICAgICAgICA8L2Rpdj4KICAgICAgICAke3RoaXMuc3RhdHVzT2JqZWN0Py5kZXRhaWxzPy5tYXAoYz0+Q2AKICAgICAgICAgICAgPGRpdiAKICAgICAgICAgICAgICBjbGFzcz0iZGV0YWlsIgogICAgICAgICAgICAgIEBjb250ZXh0bWVudT0ke3U9Pnt1LnByZXZlbnREZWZhdWx0KCksU3Iub3BlbkNvbnRleHRNZW51V2l0aE9wdGlvbnModSxbe25hbWU6IkNvcHkgVmFsdWUiLGljb25OYW1lOiJsdWNpZGU6Y29weSIsYWN0aW9uOmFzeW5jKCk9Pnthd2FpdCB0aGlzLmNvcHlUb0NsaXBib2FyZChjLnZhbHVlLCJWYWx1ZSIpfX0se25hbWU6IkNvcHkgS2V5IixpY29uTmFtZToibHVjaWRlOmtleSIsYWN0aW9uOmFzeW5jKCk9Pnthd2FpdCB0aGlzLmNvcHlUb0NsaXBib2FyZChjLm5hbWUsIktleSIpfX0se25hbWU6IkNvcHkgS2V5OlZhbHVlIixpY29uTmFtZToibHVjaWRlOmNvcHktcGx1cyIsYWN0aW9uOmFzeW5jKCk9Pnthd2FpdCB0aGlzLmNvcHlUb0NsaXBib2FyZChgJHtjLm5hbWV9OiAke2MudmFsdWV9YCwiS2V5OlZhbHVlIil9fV0pfX0KICAgICAgICAgICAgPgogICAgICAgICAgICAgIDxkaXYgY2xhc3M9InN0YXR1c2RvdCAke2Muc3RhdHVzfSI+PC9kaXY+CiAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iZGV0YWlsc1RleHQiPgogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0ibGFiZWwiPiR7Yy5uYW1lfTwvZGl2PgogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0idmFsdWUiPiR7Yy52YWx1ZX08L2Rpdj4KICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICBgKX0KICAgICAgPC9kaXY+CiAgICBgfWFzeW5jIGZpcnN0VXBkYXRlZCgpe31hc3luYyBjb3B5VG9DbGlwYm9hcmQoYyx1PSJUZXh0Iil7dHJ5e2F3YWl0IG5hdmlnYXRvci5jbGlwYm9hcmQud3JpdGVUZXh0KGMpLGNvbnNvbGUubG9nKGAke3V9IGNvcGllZCB0byBjbGlwYm9hcmRgKX1jYXRjaChkKXtjb25zb2xlLmVycm9yKGBGYWlsZWQgdG8gY29weSAke3V9OmAsZCl9fWFzeW5jIGhhbmRsZUNvcHlBc0pzb24oKXtpZih0aGlzLnN0YXR1c09iamVjdCl0cnl7YXdhaXQgbmF2aWdhdG9yLmNsaXBib2FyZC53cml0ZVRleHQoSlNPTi5zdHJpbmdpZnkodGhpcy5zdGF0dXNPYmplY3QsbnVsbCwyKSk7bGV0IGM9dGhpcy5zaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3IoIi5jb3B5TWFpbiIpLHU9Yy50ZXh0Q29udGVudDtjLnRleHRDb250ZW50PSJDb3BpZWQhIjtsZXQgZD0hdGhpcy5nb0JyaWdodDtjLnN0eWxlLmJhY2tncm91bmQ9ZD8iaHNsKDE0Mi4xIDcwLjYlIDQ1LjMlIC8gMC4xKSI6ImhzbCgxNDIuMSA3Ni4yJSAzNi4zJSAvIDAuMSkiLGMuc3R5bGUuYm9yZGVyQ29sb3I9ZD8iaHNsKDE0Mi4xIDcwLjYlIDQ1LjMlKSI6ImhzbCgxNDIuMSA3Ni4yJSAzNi4zJSkiLGMuc3R5bGUuY29sb3I9ZD8iaHNsKDE0Mi4xIDcwLjYlIDQ1LjMlKSI6ImhzbCgxNDIuMSA3Ni4yJSAzNi4zJSkiLHNldFRpbWVvdXQoKCk9PntjLnRleHRDb250ZW50PXUsYy5zdHlsZS5iYWNrZ3JvdW5kPSIiLGMuc3R5bGUuYm9yZGVyQ29sb3I9IiIsYy5zdHlsZS5jb2xvcj0iIn0sMTUwMCl9Y2F0Y2goYyl7Y29uc29sZS5lcnJvcigiRmFpbGVkIHRvIGNvcHk6IixjKX19Y29uc3RydWN0b3IoKXtzdXBlciguLi5hcmd1bWVudHMpLFU2ZSh0aGlzLHMpfXN0YXRpY3tVNmUoaSxyKX19O3JldHVybiBsPWl9KSgpfSk7dmFyIFBjcj1wKCgpPT57SWNyKCl9KTt2YXIgTmNyPXAoKCk9PntaTigpfSk7dmFyIEZjcj1wKCgpPT57TGNyKCk7UGNyKCk7RTZlKCk7TmNyKCl9KTt2YXIgYmIsd2MsT2NyLFFOPXAoKCk9Pnt4ZSgpO0plKCk7b3IoKTtiYj1mdW5jdGlvbihlLHQscixpLGEsbil7ZnVuY3Rpb24gbyh5KXtpZih5IT09dm9pZCAwJiZ0eXBlb2YgeSE9ImZ1bmN0aW9uIil0aHJvdyBuZXcgVHlwZUVycm9yKCJGdW5jdGlvbiBleHBlY3RlZCIpO3JldHVybiB5fWZvcih2YXIgcz1pLmtpbmQsbD1zPT09ImdldHRlciI/ImdldCI6cz09PSJzZXR0ZXIiPyJzZXQiOiJ2YWx1ZSIsYz0hdCYmZT9pLnN0YXRpYz9lOmUucHJvdG90eXBlOm51bGwsdT10fHwoYz9PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGMsaS5uYW1lKTp7fSksZCxoPSExLGY9ci5sZW5ndGgtMTtmPj0wO2YtLSl7dmFyIHg9e307Zm9yKHZhciB2IGluIGkpeFt2XT12PT09ImFjY2VzcyI/e306aVt2XTtmb3IodmFyIHYgaW4gaS5hY2Nlc3MpeC5hY2Nlc3Nbdl09aS5hY2Nlc3Nbdl07eC5hZGRJbml0aWFsaXplcj1mdW5jdGlvbih5KXtpZihoKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBhZGQgaW5pdGlhbGl6ZXJzIGFmdGVyIGRlY29yYXRpb24gaGFzIGNvbXBsZXRlZCIpO24ucHVzaChvKHl8fG51bGwpKX07dmFyIGI9KDAscltmXSkocz09PSJhY2Nlc3NvciI/e2dldDp1LmdldCxzZXQ6dS5zZXR9OnVbbF0seCk7aWYocz09PSJhY2Nlc3NvciIpe2lmKGI9PT12b2lkIDApY29udGludWU7aWYoYj09PW51bGx8fHR5cGVvZiBiIT0ib2JqZWN0Iil0aHJvdyBuZXcgVHlwZUVycm9yKCJPYmplY3QgZXhwZWN0ZWQiKTsoZD1vKGIuZ2V0KSkmJih1LmdldD1kKSwoZD1vKGIuc2V0KSkmJih1LnNldD1kKSwoZD1vKGIuaW5pdCkpJiZhLnVuc2hpZnQoZCl9ZWxzZShkPW8oYikpJiYocz09PSJmaWVsZCI/YS51bnNoaWZ0KGQpOnVbbF09ZCl9YyYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGMsaS5uYW1lLHUpLGg9ITB9LHdjPWZ1bmN0aW9uKGUsdCxyKXtmb3IodmFyIGk9YXJndW1lbnRzLmxlbmd0aD4yLGE9MDthPHQubGVuZ3RoO2ErKylyPWk/dFthXS5jYWxsKGUscik6dFthXS5jYWxsKGUpO3JldHVybiBpP3I6dm9pZCAwfSxPY3I9KCgpPT57bGV0IGU9W3llKCJkZWVzLWFjdGlvbmJhciIpXSx0LHI9W10saSxhPXplLG4sbz1bXSxzPVtdLGwsYz1bXSx1PVtdLGQsaD1bXSxmPVtdLHgsdj1bXSxiPVtdO3ZhciB5PWNsYXNzIGV4dGVuZHMgYXtzdGF0aWN7aT10aGlzfXN0YXRpY3tsZXQgdz10eXBlb2YgU3ltYm9sPT0iZnVuY3Rpb24iJiZTeW1ib2wubWV0YWRhdGE/T2JqZWN0LmNyZWF0ZShhW1N5bWJvbC5tZXRhZGF0YV0/P251bGwpOnZvaWQgMDtuPVtmZSgpXSxsPVtmZSgpXSxkPVtmZSgpXSx4PVtmZSgpXSxiYih0aGlzLG51bGwsbix7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImN1cnJlbnRCYXIiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOms9PiJjdXJyZW50QmFyImluIGssZ2V0Oms9PmsuY3VycmVudEJhcixzZXQ6KGssTyk9PntrLmN1cnJlbnRCYXI9T319LG1ldGFkYXRhOnd9LG8scyksYmIodGhpcyxudWxsLGwse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJ0aW1lUmVtYWluaW5nIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczprPT4idGltZVJlbWFpbmluZyJpbiBrLGdldDprPT5rLnRpbWVSZW1haW5pbmcsc2V0OihrLE8pPT57ay50aW1lUmVtYWluaW5nPU99fSxtZXRhZGF0YTp3fSxjLHUpLGJiKHRoaXMsbnVsbCxkLHtraW5kOiJhY2Nlc3NvciIsbmFtZToicHJvZ3Jlc3NQZXJjZW50IixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczprPT4icHJvZ3Jlc3NQZXJjZW50ImluIGssZ2V0Oms9PmsucHJvZ3Jlc3NQZXJjZW50LHNldDooayxPKT0+e2sucHJvZ3Jlc3NQZXJjZW50PU99fSxtZXRhZGF0YTp3fSxoLGYpLGJiKHRoaXMsbnVsbCx4LHtraW5kOiJhY2Nlc3NvciIsbmFtZToiaXNWaXNpYmxlIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczprPT4iaXNWaXNpYmxlImluIGssZ2V0Oms9PmsuaXNWaXNpYmxlLHNldDooayxPKT0+e2suaXNWaXNpYmxlPU99fSxtZXRhZGF0YTp3fSx2LGIpLGJiKG51bGwsdD17dmFsdWU6aX0sZSx7a2luZDoiY2xhc3MiLG5hbWU6aS5uYW1lLG1ldGFkYXRhOnd9LG51bGwscikseT1pPXQudmFsdWUsdyYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGksU3ltYm9sLm1ldGFkYXRhLHtlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMCx2YWx1ZTp3fSl9c3RhdGljIGRlbW9Hcm91cHM9WyJGZWVkYmFjayIsIk92ZXJsYXkiXTtzdGF0aWMgZGVtbz0oKT0+e2xldCB3PU09Pk0uY3VycmVudFRhcmdldC5jbG9zZXN0KCIuZGVtby1jb250YWluZXIiKT8ucXVlcnlTZWxlY3RvcigiZGVlcy1hY3Rpb25iYXIiKTtyZXR1cm4gQ2AKICAgICAgPHN0eWxlPgogICAgICAgIC5kZW1vLWNvbnRhaW5lciB7CiAgICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgICAgIGhlaWdodDogMzAwcHg7CiAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAjMzMzOwogICAgICAgICAgYm9yZGVyLXJhZGl1czogOHB4OwogICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgICAgICB9CiAgICAgICAgLmRlbW8tY29udGVudCB7CiAgICAgICAgICBmbGV4OiAxOwogICAgICAgICAgcGFkZGluZzogMTZweDsKICAgICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgICBnYXA6IDhweDsKICAgICAgICAgIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0OwogICAgICAgIH0KICAgICAgPC9zdHlsZT4KICAgICAgPGRpdiBjbGFzcz0iZGVtby1jb250YWluZXIiPgogICAgICAgIDxkaXYgY2xhc3M9ImRlbW8tY29udGVudCI+CiAgICAgICAgICA8ZGVlcy1idXR0b24gQGNsaWNrPSR7YXN5bmMgTT0+e2xldCBGPXcoTSk7aWYoIUYpcmV0dXJuO2xldCBEPWF3YWl0IEYuc2hvdyh7bWVzc2FnZToiRmlsZSBjaGFuZ2VkIGV4dGVybmFsbHkuIFJlbG9hZD8iLHR5cGU6Indhcm5pbmciLGljb246Imx1Y2lkZTphbGVydFRyaWFuZ2xlIixhY3Rpb25zOlt7aWQ6InJlbG9hZCIsbGFiZWw6IlJlbG9hZCIscHJpbWFyeTohMH0se2lkOiJpZ25vcmUiLGxhYmVsOiJJZ25vcmUifV0sdGltZW91dDp7ZHVyYXRpb246NWUzLGRlZmF1bHRBY3Rpb25JZDoicmVsb2FkIn0sZGlzbWlzc2libGU6ITB9KTtjb25zb2xlLmxvZygiQWN0aW9uIGJhciByZXN1bHQ6IixEKX19Pldhcm5pbmc8L2RlZXMtYnV0dG9uPgogICAgICAgICAgPGRlZXMtYnV0dG9uIEBjbGljaz0ke2FzeW5jIE09PntsZXQgRj13KE0pO2lmKCFGKXJldHVybjtsZXQgRD1hd2FpdCBGLnNob3coe21lc3NhZ2U6IlByb2Nlc3MgZmFpbGVkIHdpdGggZXhpdCBjb2RlIDEiLHR5cGU6ImVycm9yIixpY29uOiJsdWNpZGU6eENpcmNsZSIsYWN0aW9uczpbe2lkOiJyZXRyeSIsbGFiZWw6IlJldHJ5IixwcmltYXJ5OiEwfSx7aWQ6ImRpc21pc3MiLGxhYmVsOiJEaXNtaXNzIn1dLHRpbWVvdXQ6e2R1cmF0aW9uOjFlNCxkZWZhdWx0QWN0aW9uSWQ6ImRpc21pc3MifX0pO2NvbnNvbGUubG9nKCJFcnJvciBiYXIgcmVzdWx0OiIsRCl9fT5FcnJvcjwvZGVlcy1idXR0b24+CiAgICAgICAgICA8ZGVlcy1idXR0b24gQGNsaWNrPSR7YXN5bmMgTT0+e2xldCBGPXcoTSk7aWYoIUYpcmV0dXJuO2xldCBEPWF3YWl0IEYuc2hvdyh7bWVzc2FnZToiU2F2ZSBjaGFuZ2VzIGJlZm9yZSBjbG9zaW5nPyIsdHlwZToicXVlc3Rpb24iLGljb246Imx1Y2lkZTpoZWxwQ2lyY2xlIixhY3Rpb25zOlt7aWQ6InNhdmUiLGxhYmVsOiJTYXZlIixwcmltYXJ5OiEwfSx7aWQ6ImRpc2NhcmQiLGxhYmVsOiJEaXNjYXJkIn0se2lkOiJjYW5jZWwiLGxhYmVsOiJDYW5jZWwifV19KTtjb25zb2xlLmxvZygiUXVlc3Rpb24gYmFyIHJlc3VsdDoiLEQpfX0+UXVlc3Rpb248L2RlZXMtYnV0dG9uPgogICAgICAgIDwvZGl2PgogICAgICAgIDxkZWVzLWFjdGlvbmJhcj48L2RlZXMtYWN0aW9uYmFyPgogICAgICA8L2Rpdj4KICAgIGB9O3F1ZXVlPVtdOyNlPXdjKHRoaXMsbyxudWxsKTtnZXQgY3VycmVudEJhcigpe3JldHVybiB0aGlzLiNlfXNldCBjdXJyZW50QmFyKHcpe3RoaXMuI2U9d30jdD0od2ModGhpcyxzKSx3Yyh0aGlzLGMsMCkpO2dldCB0aW1lUmVtYWluaW5nKCl7cmV0dXJuIHRoaXMuI3R9c2V0IHRpbWVSZW1haW5pbmcodyl7dGhpcy4jdD13fSNyPSh3Yyh0aGlzLHUpLHdjKHRoaXMsaCwxMDApKTtnZXQgcHJvZ3Jlc3NQZXJjZW50KCl7cmV0dXJuIHRoaXMuI3J9c2V0IHByb2dyZXNzUGVyY2VudCh3KXt0aGlzLiNyPXd9I2k9KHdjKHRoaXMsZiksd2ModGhpcyx2LCExKSk7Z2V0IGlzVmlzaWJsZSgpe3JldHVybiB0aGlzLiNpfXNldCBpc1Zpc2libGUodyl7dGhpcy4jaT13fXRpbWVvdXRJbnRlcnZhbD0od2ModGhpcyxiKSxudWxsKTtjdXJyZW50UmVzb2x2ZT1udWxsO3N0YXRpYyBzdHlsZXM9W0RlLG0uZGVmYXVsdFN0eWxlcyxvZWAKICAgICAgOmhvc3QgewogICAgICAgIGRpc3BsYXk6IGJsb2NrOwogICAgICB9CgogICAgICAuYWN0aW9uYmFyLWl0ZW0gewogICAgICAgIGRpc3BsYXk6IGdyaWQ7CiAgICAgICAgZ3JpZC10ZW1wbGF0ZS1yb3dzOiAwZnI7CiAgICAgICAgdHJhbnNpdGlvbjogZ3JpZC10ZW1wbGF0ZS1yb3dzIDAuMnMgZWFzZS1vdXQ7CiAgICAgICAgYmFja2dyb3VuZDogJHttLmJkVGhlbWUoImhzbCgwIDAlIDk2JSkiLCJoc2woMCAwJSAxMiUpIil9OwogICAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAke20uYmRUaGVtZSgiaHNsKDAgMCUgODglKSIsImhzbCgwIDAlIDIwJSkiKX07CiAgICAgIH0KCiAgICAgIDpob3N0KC52aXNpYmxlKSAuYWN0aW9uYmFyLWl0ZW0gewogICAgICAgIGdyaWQtdGVtcGxhdGUtcm93czogMWZyOwogICAgICB9CgogICAgICAuYWN0aW9uYmFyLWNvbnRlbnQgewogICAgICAgIG92ZXJmbG93OiBoaWRkZW47CiAgICAgICAgbWluLWhlaWdodDogMDsKICAgICAgICBvcGFjaXR5OiAwOwogICAgICAgIHRyYW5zaXRpb246IG9wYWNpdHkgMC4ycyBlYXNlLW91dDsKICAgICAgfQoKICAgICAgOmhvc3QoLnZpc2libGUpIC5hY3Rpb25iYXItY29udGVudCB7CiAgICAgICAgb3BhY2l0eTogMTsKICAgICAgfQoKICAgICAgLnByb2dyZXNzLWJhciB7CiAgICAgICAgaGVpZ2h0OiAzcHg7CiAgICAgICAgYmFja2dyb3VuZDogJHttLmJkVGhlbWUoImhzbCgwIDAlIDkwJSkiLCJoc2woMCAwJSAxOCUpIil9OwogICAgICAgIG92ZXJmbG93OiBoaWRkZW47CiAgICAgIH0KCiAgICAgIC5wcm9ncmVzcy1iYXItZmlsbCB7CiAgICAgICAgaGVpZ2h0OiAxMDAlOwogICAgICAgIGJhY2tncm91bmQ6ICR7bS5iZFRoZW1lKCJoc2woMjEwIDEwMCUgNTAlKSIsImhzbCgyMTAgMTAwJSA2MCUpIil9OwogICAgICAgIHRyYW5zaXRpb246IHdpZHRoIDAuMXMgbGluZWFyOwogICAgICB9CgogICAgICAucHJvZ3Jlc3MtYmFyLWZpbGwud2FybmluZyB7CiAgICAgICAgYmFja2dyb3VuZDogJHttLmJkVGhlbWUoImhzbCgzOCA5MiUgNTAlKSIsImhzbCgzOCA5MiUgNTUlKSIpfTsKICAgICAgfQoKICAgICAgLnByb2dyZXNzLWJhci1maWxsLmVycm9yIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke20uYmRUaGVtZSgiaHNsKDAgNzAlIDUwJSkiLCJoc2woMCA3MCUgNTUlKSIpfTsKICAgICAgfQoKICAgICAgLnByb2dyZXNzLWJhci1maWxsLnF1ZXN0aW9uIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke20uYmRUaGVtZSgiaHNsKDI3MCA3MCUgNTAlKSIsImhzbCgyNzAgNzAlIDYwJSkiKX07CiAgICAgIH0KCiAgICAgIC5jb250ZW50IHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgcGFkZGluZzogOHB4IDEycHg7CiAgICAgICAgZ2FwOiAxMnB4OwogICAgICAgIG1pbi1oZWlnaHQ6IDMycHg7CiAgICAgIH0KCiAgICAgIC5tZXNzYWdlLXNlY3Rpb24gewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBnYXA6IDhweDsKICAgICAgICBmbGV4OiAxOwogICAgICAgIG1pbi13aWR0aDogMDsKICAgICAgfQoKICAgICAgLm1lc3NhZ2UtaWNvbiB7CiAgICAgICAgZmxleC1zaHJpbms6IDA7CiAgICAgICAgY29sb3I6ICR7bS5iZFRoZW1lKCJoc2woMCAwJSA0MCUpIiwiaHNsKDAgMCUgNjAlKSIpfTsKICAgICAgfQoKICAgICAgLm1lc3NhZ2UtaWNvbi5pbmZvIHsKICAgICAgICBjb2xvcjogJHttLmJkVGhlbWUoImhzbCgyMTAgMTAwJSA0NSUpIiwiaHNsKDIxMCAxMDAlIDYwJSkiKX07CiAgICAgIH0KCiAgICAgIC5tZXNzYWdlLWljb24ud2FybmluZyB7CiAgICAgICAgY29sb3I6ICR7bS5iZFRoZW1lKCJoc2woMzggOTIlIDQ1JSkiLCJoc2woMzggOTIlIDU1JSkiKX07CiAgICAgIH0KCiAgICAgIC5tZXNzYWdlLWljb24uZXJyb3IgewogICAgICAgIGNvbG9yOiAke20uYmRUaGVtZSgiaHNsKDAgNzAlIDUwJSkiLCJoc2woMCA3MCUgNTUlKSIpfTsKICAgICAgfQoKICAgICAgLm1lc3NhZ2UtaWNvbi5xdWVzdGlvbiB7CiAgICAgICAgY29sb3I6ICR7bS5iZFRoZW1lKCJoc2woMjcwIDcwJSA1MCUpIiwiaHNsKDI3MCA3MCUgNjAlKSIpfTsKICAgICAgfQoKICAgICAgLm1lc3NhZ2UtdGV4dCB7CiAgICAgICAgZm9udC1zaXplOiAxM3B4OwogICAgICAgIGNvbG9yOiAke20uYmRUaGVtZSgiaHNsKDAgMCUgMjAlKSIsImhzbCgwIDAlIDg1JSkiKX07CiAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDsKICAgICAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzOwogICAgICB9CgogICAgICAuYWN0aW9ucy1zZWN0aW9uIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgZ2FwOiA4cHg7CiAgICAgICAgZmxleC1zaHJpbms6IDA7CiAgICAgIH0KCiAgICAgIC5hY3Rpb24tYnV0dG9uIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgZ2FwOiA0cHg7CiAgICAgICAgcGFkZGluZzogNHB4IDEwcHg7CiAgICAgICAgYm9yZGVyLXJhZGl1czogNHB4OwogICAgICAgIGZvbnQtc2l6ZTogMTJweDsKICAgICAgICBmb250LXdlaWdodDogNTAwOwogICAgICAgIGN1cnNvcjogcG9pbnRlcjsKICAgICAgICBib3JkZXI6IDFweCBzb2xpZCB0cmFuc3BhcmVudDsKICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC4xNXMgZWFzZTsKICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwOwogICAgICB9CgogICAgICAuYWN0aW9uLWJ1dHRvbi5zZWNvbmRhcnkgewogICAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50OwogICAgICAgIGNvbG9yOiAke20uYmRUaGVtZSgiaHNsKDAgMCUgMzAlKSIsImhzbCgwIDAlIDcwJSkiKX07CiAgICAgICAgYm9yZGVyLWNvbG9yOiAke20uYmRUaGVtZSgiaHNsKDAgMCUgODAlKSIsImhzbCgwIDAlIDMwJSkiKX07CiAgICAgIH0KCiAgICAgIC5hY3Rpb24tYnV0dG9uLnNlY29uZGFyeTpob3ZlciB7CiAgICAgICAgYmFja2dyb3VuZDogJHttLmJkVGhlbWUoImhzbCgwIDAlIDkyJSkiLCJoc2woMCAwJSAxOCUpIil9OwogICAgICB9CgogICAgICAuYWN0aW9uLWJ1dHRvbi5wcmltYXJ5IHsKICAgICAgICBiYWNrZ3JvdW5kOiAke20uYmRUaGVtZSgiaHNsKDIxMCAxMDAlIDUwJSkiLCJoc2woMjEwIDEwMCUgNTUlKSIpfTsKICAgICAgICBjb2xvcjogd2hpdGU7CiAgICAgIH0KCiAgICAgIC5hY3Rpb24tYnV0dG9uLnByaW1hcnk6aG92ZXIgewogICAgICAgIGJhY2tncm91bmQ6ICR7bS5iZFRoZW1lKCJoc2woMjEwIDEwMCUgNDUlKSIsImhzbCgyMTAgMTAwJSA1MCUpIil9OwogICAgICB9CgogICAgICAuYWN0aW9uLWJ1dHRvbi5wcmltYXJ5Lndhcm5pbmcgewogICAgICAgIGJhY2tncm91bmQ6ICR7bS5iZFRoZW1lKCJoc2woMzggOTIlIDQ1JSkiLCJoc2woMzggOTIlIDUwJSkiKX07CiAgICAgIH0KCiAgICAgIC5hY3Rpb24tYnV0dG9uLnByaW1hcnkud2FybmluZzpob3ZlciB7CiAgICAgICAgYmFja2dyb3VuZDogJHttLmJkVGhlbWUoImhzbCgzOCA5MiUgNDAlKSIsImhzbCgzOCA5MiUgNDUlKSIpfTsKICAgICAgfQoKICAgICAgLmFjdGlvbi1idXR0b24ucHJpbWFyeS5lcnJvciB7CiAgICAgICAgYmFja2dyb3VuZDogJHttLmJkVGhlbWUoImhzbCgwIDcwJSA1MCUpIiwiaHNsKDAgNzAlIDU1JSkiKX07CiAgICAgIH0KCiAgICAgIC5hY3Rpb24tYnV0dG9uLnByaW1hcnkuZXJyb3I6aG92ZXIgewogICAgICAgIGJhY2tncm91bmQ6ICR7bS5iZFRoZW1lKCJoc2woMCA3MCUgNDUlKSIsImhzbCgwIDcwJSA1MCUpIil9OwogICAgICB9CgogICAgICAuYWN0aW9uLWJ1dHRvbi5wcmltYXJ5LnF1ZXN0aW9uIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke20uYmRUaGVtZSgiaHNsKDI3MCA3MCUgNTAlKSIsImhzbCgyNzAgNzAlIDU1JSkiKX07CiAgICAgIH0KCiAgICAgIC5hY3Rpb24tYnV0dG9uLnByaW1hcnkucXVlc3Rpb246aG92ZXIgewogICAgICAgIGJhY2tncm91bmQ6ICR7bS5iZFRoZW1lKCJoc2woMjcwIDcwJSA0NSUpIiwiaHNsKDI3MCA3MCUgNTAlKSIpfTsKICAgICAgfQoKICAgICAgLmNvdW50ZG93biB7CiAgICAgICAgZm9udC1zaXplOiAxMXB4OwogICAgICAgIG9wYWNpdHk6IDAuODsKICAgICAgICBtYXJnaW4tbGVmdDogMnB4OwogICAgICB9CgogICAgICAuZGlzbWlzcy1idXR0b24gewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKICAgICAgICB3aWR0aDogMjBweDsKICAgICAgICBoZWlnaHQ6IDIwcHg7CiAgICAgICAgYm9yZGVyLXJhZGl1czogNHB4OwogICAgICAgIGN1cnNvcjogcG9pbnRlcjsKICAgICAgICBjb2xvcjogJHttLmJkVGhlbWUoImhzbCgwIDAlIDUwJSkiLCJoc2woMCAwJSA1MCUpIil9OwogICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjE1cyBlYXNlOwogICAgICB9CgogICAgICAuZGlzbWlzcy1idXR0b246aG92ZXIgewogICAgICAgIGJhY2tncm91bmQ6ICR7bS5iZFRoZW1lKCJoc2woMCAwJSA4OCUpIiwiaHNsKDAgMCUgMjIlKSIpfTsKICAgICAgICBjb2xvcjogJHttLmJkVGhlbWUoImhzbCgwIDAlIDMwJSkiLCJoc2woMCAwJSA3MCUpIil9OwogICAgICB9CiAgICBgXTtyZW5kZXIoKXtsZXQgdz10aGlzLmN1cnJlbnRCYXIsaz13Py50eXBlfHwiaW5mbyIsTz13Py50aW1lb3V0JiZ0aGlzLnRpbWVSZW1haW5pbmc+MDtyZXR1cm4gQ2AKICAgICAgPGRpdiBjbGFzcz0iYWN0aW9uYmFyLWl0ZW0iPgogICAgICAgIDxkaXYgY2xhc3M9ImFjdGlvbmJhci1jb250ZW50Ij4KICAgICAgICAgICR7dz9DYAogICAgICAgICAgICAke08/Q2AKICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJwcm9ncmVzcy1iYXIiPgogICAgICAgICAgICAgICAgPGRpdgogICAgICAgICAgICAgICAgICBjbGFzcz0icHJvZ3Jlc3MtYmFyLWZpbGwgJHtrfSIKICAgICAgICAgICAgICAgICAgc3R5bGU9IndpZHRoOiAke3RoaXMucHJvZ3Jlc3NQZXJjZW50fSUiCiAgICAgICAgICAgICAgICA+PC9kaXY+CiAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIGA6IiJ9CiAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNvbnRlbnQiPgogICAgICAgICAgICAgIDxkaXYgY2xhc3M9Im1lc3NhZ2Utc2VjdGlvbiI+CiAgICAgICAgICAgICAgICAke3cuaWNvbj9DYAogICAgICAgICAgICAgICAgICA8ZGVlcy1pY29uCiAgICAgICAgICAgICAgICAgICAgY2xhc3M9Im1lc3NhZ2UtaWNvbiAke2t9IgogICAgICAgICAgICAgICAgICAgIC5pY29uPSR7dy5pY29ufQogICAgICAgICAgICAgICAgICAgIGljb25TaXplPSIxNiIKICAgICAgICAgICAgICAgICAgPjwvZGVlcy1pY29uPgogICAgICAgICAgICAgICAgYDoiIn0KICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJtZXNzYWdlLXRleHQiPiR7dy5tZXNzYWdlfTwvc3Bhbj4KICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJhY3Rpb25zLXNlY3Rpb24iPgogICAgICAgICAgICAgICAgJHt3LmFjdGlvbnMubWFwKHo9PnRoaXMucmVuZGVyQWN0aW9uQnV0dG9uKHosdyxPKSl9CiAgICAgICAgICAgICAgICAke3cuZGlzbWlzc2libGU/Q2AKICAgICAgICAgICAgICAgICAgPGRpdgogICAgICAgICAgICAgICAgICAgIGNsYXNzPSJkaXNtaXNzLWJ1dHRvbiIKICAgICAgICAgICAgICAgICAgICBAY2xpY2s9JHsoKT0+dGhpcy5oYW5kbGVEaXNtaXNzKCl9CiAgICAgICAgICAgICAgICAgICAgdGl0bGU9IkRpc21pc3MiCiAgICAgICAgICAgICAgICAgID4KICAgICAgICAgICAgICAgICAgICA8ZGVlcy1pY29uIC5pY29uPSR7Imx1Y2lkZTp4In0gaWNvblNpemU9IjE0Ij48L2RlZXMtaWNvbj4KICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICBgOiIifQogICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIGA6IiJ9CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGl2PgogICAgYH1yZW5kZXJBY3Rpb25CdXR0b24odyxrLE8pe2xldCB6PXcucHJpbWFyeSxNPWsudHlwZXx8ImluZm8iLEY9ay50aW1lb3V0Py5kZWZhdWx0QWN0aW9uSWQ9PT13LmlkLEQ9TyYmRixOPU1hdGguY2VpbCh0aGlzLnRpbWVSZW1haW5pbmcvMWUzKTtyZXR1cm4gQ2AKICAgICAgPGJ1dHRvbgogICAgICAgIGNsYXNzPSJhY3Rpb24tYnV0dG9uICR7ej9gcHJpbWFyeSAke019YDoic2Vjb25kYXJ5In0iCiAgICAgICAgQGNsaWNrPSR7KCk9PnRoaXMuaGFuZGxlQWN0aW9uKHcuaWQsITEpfQogICAgICA+CiAgICAgICAgJHt3Lmljb24/Q2AKICAgICAgICAgIDxkZWVzLWljb24gLmljb249JHt3Lmljb259IGljb25TaXplPSIxMiI+PC9kZWVzLWljb24+CiAgICAgICAgYDoiIn0KICAgICAgICA8c3Bhbj4ke3cubGFiZWx9PC9zcGFuPgogICAgICAgICR7RD9DYAogICAgICAgICAgPHNwYW4gY2xhc3M9ImNvdW50ZG93biI+KCR7Tn1zKTwvc3Bhbj4KICAgICAgICBgOiIifQogICAgICA8L2J1dHRvbj4KICAgIGB9YXN5bmMgc2hvdyh3KXtyZXR1cm4gbmV3IFByb21pc2Uoaz0+e3RoaXMucXVldWUucHVzaCh7b3B0aW9uczp3LHJlc29sdmU6a30pLHRoaXMuY3VycmVudEJhcnx8dGhpcy5wcm9jZXNzUXVldWUoKX0pfWRpc21pc3MoKXt0aGlzLmhhbmRsZURpc21pc3MoKX1jbGVhclF1ZXVlKCl7Zm9yKGxldCB3IG9mIHRoaXMucXVldWUpdy5yZXNvbHZlKHthY3Rpb25JZDoiZGlzbWlzc2VkIix0aW1lZE91dDohMX0pO3RoaXMucXVldWU9W119YXN5bmMgaGlkZUN1cnJlbnRCYXIoKXt0aGlzLmNsYXNzTGlzdC5yZW1vdmUoInZpc2libGUiKSx0aGlzLmlzVmlzaWJsZT0hMSxhd2FpdCBuZXcgUHJvbWlzZSh3PT5zZXRUaW1lb3V0KHcsMjIwKSksdGhpcy5jdXJyZW50QmFyPW51bGwsdGhpcy5jdXJyZW50UmVzb2x2ZT1udWxsfWFzeW5jIHByb2Nlc3NRdWV1ZSgpe2lmKHRoaXMucXVldWUubGVuZ3RoPT09MCl7dGhpcy5oaWRlQ3VycmVudEJhcigpO3JldHVybn1sZXQgdz10aGlzLnF1ZXVlLnNoaWZ0KCk7dGhpcy5jdXJyZW50QmFyPXcub3B0aW9ucyx0aGlzLmN1cnJlbnRSZXNvbHZlPXcucmVzb2x2ZSx0aGlzLmlzVmlzaWJsZT0hMCxhd2FpdCB0aGlzLnVwZGF0ZUNvbXBsZXRlLHJlcXVlc3RBbmltYXRpb25GcmFtZSgoKT0+e3RoaXMuY2xhc3NMaXN0LmFkZCgidmlzaWJsZSIpfSksdy5vcHRpb25zLnRpbWVvdXQmJnRoaXMuc3RhcnRUaW1lb3V0KHcub3B0aW9ucy50aW1lb3V0LmR1cmF0aW9uLHcub3B0aW9ucy50aW1lb3V0LmRlZmF1bHRBY3Rpb25JZCl9c3RhcnRUaW1lb3V0KHcsayl7dGhpcy50aW1lUmVtYWluaW5nPXcsdGhpcy5wcm9ncmVzc1BlcmNlbnQ9MTAwO2xldCBPPURhdGUubm93KCksej01MDt0aGlzLnRpbWVvdXRJbnRlcnZhbD1zZXRJbnRlcnZhbCgoKT0+e2xldCBNPURhdGUubm93KCktTzt0aGlzLnRpbWVSZW1haW5pbmc9TWF0aC5tYXgoMCx3LU0pLHRoaXMucHJvZ3Jlc3NQZXJjZW50PXRoaXMudGltZVJlbWFpbmluZy93KjEwMCx0aGlzLnRpbWVSZW1haW5pbmc8PTAmJih0aGlzLmNsZWFyVGltZW91dEludGVydmFsKCksdGhpcy5oYW5kbGVBY3Rpb24oaywhMCkpfSx6KX1jbGVhclRpbWVvdXRJbnRlcnZhbCgpe3RoaXMudGltZW91dEludGVydmFsJiYoY2xlYXJJbnRlcnZhbCh0aGlzLnRpbWVvdXRJbnRlcnZhbCksdGhpcy50aW1lb3V0SW50ZXJ2YWw9bnVsbCl9aGFuZGxlQWN0aW9uKHcsayl7dGhpcy5jbGVhclRpbWVvdXRJbnRlcnZhbCgpLHRoaXMuY3VycmVudFJlc29sdmUmJnRoaXMuY3VycmVudFJlc29sdmUoe2FjdGlvbklkOncsdGltZWRPdXQ6a30pLHRoaXMucHJvY2Vzc1F1ZXVlKCl9aGFuZGxlRGlzbWlzcygpe3RoaXMuaGFuZGxlQWN0aW9uKCJkaXNtaXNzZWQiLCExKX1hc3luYyBkaXNjb25uZWN0ZWRDYWxsYmFjaygpe2F3YWl0IHN1cGVyLmRpc2Nvbm5lY3RlZENhbGxiYWNrKCksdGhpcy5jbGVhclRpbWVvdXRJbnRlcnZhbCgpfXN0YXRpY3t3YyhpLHIpfX07cmV0dXJuIHk9aX0pKCl9KTt2YXIgUmNyPXAoKCk9Pnt9KTt2YXIgQmNyPXAoKCk9PntRTigpO1JjcigpfSk7dmFyIEhjcixxY3I9cCgoKT0+e3hlKCk7SGNyPSgpPT5DYAogIDxkaXYgc3R5bGU9ImRpc3BsYXk6IGZsZXg7IGdhcDogOHB4OyBhbGlnbi1pdGVtczogY2VudGVyOyI+CiAgICA8ZGVlcy1iYWRnZSAudGV4dD0keyJEZWZhdWx0In0+PC9kZWVzLWJhZGdlPgogICAgPGRlZXMtYmFkZ2UgLnR5cGU9JHsicHJpbWFyeSJ9IC50ZXh0PSR7IlByaW1hcnkifT48L2RlZXMtYmFkZ2U+CiAgICA8ZGVlcy1iYWRnZSAudHlwZT0keyJzdWNjZXNzIn0gLnRleHQ9JHsiU3VjY2VzcyJ9PjwvZGVlcy1iYWRnZT4KICAgIDxkZWVzLWJhZGdlIC50eXBlPSR7Indhcm5pbmcifSAudGV4dD0keyJXYXJuaW5nIn0+PC9kZWVzLWJhZGdlPgogICAgPGRlZXMtYmFkZ2UgLnR5cGU9JHsiZXJyb3IifSAudGV4dD0keyJFcnJvciJ9PjwvZGVlcy1iYWRnZT4KICAgIDxkZWVzLWJhZGdlIC50eXBlPSR7InByaW1hcnkifSAucm91bmRlZD0keyEwfSAudGV4dD0keyJSb3VuZGVkIn0+PC9kZWVzLWJhZGdlPgogIDwvZGl2PgpgfSk7dmFyIEpOLFVkLGpjcixWY3I9cCgoKT0+e3hlKCk7S3QoKTtxY3IoKTtKZSgpO0pOPWZ1bmN0aW9uKGUsdCxyLGksYSxuKXtmdW5jdGlvbiBvKHkpe2lmKHkhPT12b2lkIDAmJnR5cGVvZiB5IT0iZnVuY3Rpb24iKXRocm93IG5ldyBUeXBlRXJyb3IoIkZ1bmN0aW9uIGV4cGVjdGVkIik7cmV0dXJuIHl9Zm9yKHZhciBzPWkua2luZCxsPXM9PT0iZ2V0dGVyIj8iZ2V0IjpzPT09InNldHRlciI/InNldCI6InZhbHVlIixjPSF0JiZlP2kuc3RhdGljP2U6ZS5wcm90b3R5cGU6bnVsbCx1PXR8fChjP09iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoYyxpLm5hbWUpOnt9KSxkLGg9ITEsZj1yLmxlbmd0aC0xO2Y+PTA7Zi0tKXt2YXIgeD17fTtmb3IodmFyIHYgaW4gaSl4W3ZdPXY9PT0iYWNjZXNzIj97fTppW3ZdO2Zvcih2YXIgdiBpbiBpLmFjY2Vzcyl4LmFjY2Vzc1t2XT1pLmFjY2Vzc1t2XTt4LmFkZEluaXRpYWxpemVyPWZ1bmN0aW9uKHkpe2lmKGgpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGFkZCBpbml0aWFsaXplcnMgYWZ0ZXIgZGVjb3JhdGlvbiBoYXMgY29tcGxldGVkIik7bi5wdXNoKG8oeXx8bnVsbCkpfTt2YXIgYj0oMCxyW2ZdKShzPT09ImFjY2Vzc29yIj97Z2V0OnUuZ2V0LHNldDp1LnNldH06dVtsXSx4KTtpZihzPT09ImFjY2Vzc29yIil7aWYoYj09PXZvaWQgMCljb250aW51ZTtpZihiPT09bnVsbHx8dHlwZW9mIGIhPSJvYmplY3QiKXRocm93IG5ldyBUeXBlRXJyb3IoIk9iamVjdCBleHBlY3RlZCIpOyhkPW8oYi5nZXQpKSYmKHUuZ2V0PWQpLChkPW8oYi5zZXQpKSYmKHUuc2V0PWQpLChkPW8oYi5pbml0KSkmJmEudW5zaGlmdChkKX1lbHNlKGQ9byhiKSkmJihzPT09ImZpZWxkIj9hLnVuc2hpZnQoZCk6dVtsXT1kKX1jJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoYyxpLm5hbWUsdSksaD0hMH0sVWQ9ZnVuY3Rpb24oZSx0LHIpe2Zvcih2YXIgaT1hcmd1bWVudHMubGVuZ3RoPjIsYT0wO2E8dC5sZW5ndGg7YSsrKXI9aT90W2FdLmNhbGwoZSxyKTp0W2FdLmNhbGwoZSk7cmV0dXJuIGk/cjp2b2lkIDB9LGpjcj0oKCk9PntsZXQgZT1beWUoImRlZXMtYmFkZ2UiKV0sdCxyPVtdLGksYT16ZSxuLG89W10scz1bXSxsLGM9W10sdT1bXSxkLGg9W10sZj1bXTt2YXIgeD1jbGFzcyBleHRlbmRzIGF7c3RhdGlje2k9dGhpc31zdGF0aWN7bGV0IHY9dHlwZW9mIFN5bWJvbD09ImZ1bmN0aW9uIiYmU3ltYm9sLm1ldGFkYXRhP09iamVjdC5jcmVhdGUoYVtTeW1ib2wubWV0YWRhdGFdPz9udWxsKTp2b2lkIDA7bj1baih7dHlwZTpTdHJpbmd9KV0sbD1baih7dHlwZTpTdHJpbmd9KV0sZD1baih7dHlwZTpCb29sZWFufSldLEpOKHRoaXMsbnVsbCxuLHtraW5kOiJhY2Nlc3NvciIsbmFtZToidHlwZSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6Yj0+InR5cGUiaW4gYixnZXQ6Yj0+Yi50eXBlLHNldDooYix5KT0+e2IudHlwZT15fX0sbWV0YWRhdGE6dn0sbyxzKSxKTih0aGlzLG51bGwsbCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InRleHQiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmI9PiJ0ZXh0ImluIGIsZ2V0OmI9PmIudGV4dCxzZXQ6KGIseSk9PntiLnRleHQ9eX19LG1ldGFkYXRhOnZ9LGMsdSksSk4odGhpcyxudWxsLGQse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJyb3VuZGVkIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpiPT4icm91bmRlZCJpbiBiLGdldDpiPT5iLnJvdW5kZWQsc2V0OihiLHkpPT57Yi5yb3VuZGVkPXl9fSxtZXRhZGF0YTp2fSxoLGYpLEpOKG51bGwsdD17dmFsdWU6aX0sZSx7a2luZDoiY2xhc3MiLG5hbWU6aS5uYW1lLG1ldGFkYXRhOnZ9LG51bGwscikseD1pPXQudmFsdWUsdiYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGksU3ltYm9sLm1ldGFkYXRhLHtlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMCx2YWx1ZTp2fSl9c3RhdGljIGRlbW89SGNyO3N0YXRpYyBkZW1vR3JvdXBzPVsiRmVlZGJhY2siXTsjZT1VZCh0aGlzLG8sImRlZmF1bHQiKTtnZXQgdHlwZSgpe3JldHVybiB0aGlzLiNlfXNldCB0eXBlKHYpe3RoaXMuI2U9dn0jdD0oVWQodGhpcyxzKSxVZCh0aGlzLGMsIiIpKTtnZXQgdGV4dCgpe3JldHVybiB0aGlzLiN0fXNldCB0ZXh0KHYpe3RoaXMuI3Q9dn0jcj0oVWQodGhpcyx1KSxVZCh0aGlzLGgsITEpKTtnZXQgcm91bmRlZCgpe3JldHVybiB0aGlzLiNyfXNldCByb3VuZGVkKHYpe3RoaXMuI3I9dn1jb25zdHJ1Y3Rvcigpe3N1cGVyKCksVWQodGhpcyxmKSxkMS5zZXR1cCgpfXN0YXRpYyBzdHlsZXM9W0RlLG0uZGVmYXVsdFN0eWxlcyxvZWAKICAgICAgLyogVE9ETzogTWlncmF0ZSBoYXJkY29kZWQgdmFsdWVzIHRvIC0tZGVlcy0qIENTUyB2YXJpYWJsZXMgKi8KICAgICAgOmhvc3QgewogICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jazsKICAgICAgfQoKICAgICAgLmJhZGdlIHsKICAgICAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOwogICAgICAgIHBhZGRpbmc6IDJweCA4cHg7CiAgICAgICAgZm9udC1zaXplOiAxMnB4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7CiAgICAgICAgbGluZS1oZWlnaHQ6IDEuNTsKICAgICAgICBib3JkZXItcmFkaXVzOiA0cHg7CiAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDsKICAgICAgfQoKICAgICAgLmJhZGdlLnJvdW5kZWQgewogICAgICAgIGJvcmRlci1yYWRpdXM6IDEycHg7CiAgICAgIH0KCiAgICAgIC5iYWRnZS5kZWZhdWx0IHsKICAgICAgICBiYWNrZ3JvdW5kOiAke20uYmRUaGVtZSgiI2Y1ZjVmNSIsIiMzMzMiKX07CiAgICAgICAgY29sb3I6ICR7bS5iZFRoZW1lKCIjNjY2IiwiI2NjYyIpfTsKICAgICAgfQoKICAgICAgLmJhZGdlLnByaW1hcnkgewogICAgICAgIGJhY2tncm91bmQ6ICMwMDUwYjk7CiAgICAgICAgY29sb3I6ICNmZmZmZmY7CiAgICAgIH0KCiAgICAgIC5iYWRnZS5zdWNjZXNzIHsKICAgICAgICBiYWNrZ3JvdW5kOiAjMmU3ZDMyOwogICAgICAgIGNvbG9yOiAjZmZmZmZmOwogICAgICB9CgogICAgICAuYmFkZ2Uud2FybmluZyB7CiAgICAgICAgYmFja2dyb3VuZDogI2VkNmMwMjsKICAgICAgICBjb2xvcjogI2ZmZmZmZjsKICAgICAgfQoKICAgICAgLmJhZGdlLmVycm9yIHsKICAgICAgICBiYWNrZ3JvdW5kOiAjZTQwMDJiOwogICAgICAgIGNvbG9yOiAjZmZmZmZmOwogICAgICB9CiAgICBgXTtyZW5kZXIoKXtyZXR1cm4gQ2AKICAgICAgPGRpdiBjbGFzcz0iYmFkZ2UgJHt0aGlzLnR5cGV9ICR7dGhpcy5yb3VuZGVkPyJyb3VuZGVkIjoiIn0iPgogICAgICAgICR7dGhpcy50ZXh0fQogICAgICA8L2Rpdj4KICAgIGB9c3RhdGlje1VkKGkscil9fTtyZXR1cm4geD1pfSkoKX0pO3ZhciBVY3I9cCgoKT0+e1ZjcigpfSk7dmFyIFdjcixHY3I9cCgoKT0+e3hlKCk7V2NyPSgpPT5DYAogIDxkZWVzLWhpbnQ+PC9kZWVzLWhpbnQ+CmB9KTt2YXIgWWNyLFc2ZSxaY3IsWGNyPXAoKCk9Pnt4ZSgpO0t0KCk7R2NyKCk7SmUoKTtZY3I9ZnVuY3Rpb24oZSx0LHIsaSxhLG4pe2Z1bmN0aW9uIG8oeSl7aWYoeSE9PXZvaWQgMCYmdHlwZW9mIHkhPSJmdW5jdGlvbiIpdGhyb3cgbmV3IFR5cGVFcnJvcigiRnVuY3Rpb24gZXhwZWN0ZWQiKTtyZXR1cm4geX1mb3IodmFyIHM9aS5raW5kLGw9cz09PSJnZXR0ZXIiPyJnZXQiOnM9PT0ic2V0dGVyIj8ic2V0IjoidmFsdWUiLGM9IXQmJmU/aS5zdGF0aWM/ZTplLnByb3RvdHlwZTpudWxsLHU9dHx8KGM/T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihjLGkubmFtZSk6e30pLGQsaD0hMSxmPXIubGVuZ3RoLTE7Zj49MDtmLS0pe3ZhciB4PXt9O2Zvcih2YXIgdiBpbiBpKXhbdl09dj09PSJhY2Nlc3MiP3t9Omlbdl07Zm9yKHZhciB2IGluIGkuYWNjZXNzKXguYWNjZXNzW3ZdPWkuYWNjZXNzW3ZdO3guYWRkSW5pdGlhbGl6ZXI9ZnVuY3Rpb24oeSl7aWYoaCl0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgYWRkIGluaXRpYWxpemVycyBhZnRlciBkZWNvcmF0aW9uIGhhcyBjb21wbGV0ZWQiKTtuLnB1c2gobyh5fHxudWxsKSl9O3ZhciBiPSgwLHJbZl0pKHM9PT0iYWNjZXNzb3IiP3tnZXQ6dS5nZXQsc2V0OnUuc2V0fTp1W2xdLHgpO2lmKHM9PT0iYWNjZXNzb3IiKXtpZihiPT09dm9pZCAwKWNvbnRpbnVlO2lmKGI9PT1udWxsfHx0eXBlb2YgYiE9Im9iamVjdCIpdGhyb3cgbmV3IFR5cGVFcnJvcigiT2JqZWN0IGV4cGVjdGVkIik7KGQ9byhiLmdldCkpJiYodS5nZXQ9ZCksKGQ9byhiLnNldCkpJiYodS5zZXQ9ZCksKGQ9byhiLmluaXQpKSYmYS51bnNoaWZ0KGQpfWVsc2UoZD1vKGIpKSYmKHM9PT0iZmllbGQiP2EudW5zaGlmdChkKTp1W2xdPWQpfWMmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShjLGkubmFtZSx1KSxoPSEwfSxXNmU9ZnVuY3Rpb24oZSx0LHIpe2Zvcih2YXIgaT1hcmd1bWVudHMubGVuZ3RoPjIsYT0wO2E8dC5sZW5ndGg7YSsrKXI9aT90W2FdLmNhbGwoZSxyKTp0W2FdLmNhbGwoZSk7cmV0dXJuIGk/cjp2b2lkIDB9LFpjcj0oKCk9PntsZXQgZT1beWUoImRlZXMtaGludCIpXSx0LHI9W10saSxhPXplLG4sbz1bXSxzPVtdO3ZhciBsPWNsYXNzIGV4dGVuZHMgYXtzdGF0aWN7aT10aGlzfXN0YXRpY3tsZXQgYz10eXBlb2YgU3ltYm9sPT0iZnVuY3Rpb24iJiZTeW1ib2wubWV0YWRhdGE/T2JqZWN0LmNyZWF0ZShhW1N5bWJvbC5tZXRhZGF0YV0/P251bGwpOnZvaWQgMDtuPVtqKHt0eXBlOlN0cmluZ30pXSxZY3IodGhpcyxudWxsLG4se2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJ0eXBlIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczp1PT4idHlwZSJpbiB1LGdldDp1PT51LnR5cGUsc2V0Oih1LGQpPT57dS50eXBlPWR9fSxtZXRhZGF0YTpjfSxvLHMpLFljcihudWxsLHQ9e3ZhbHVlOml9LGUse2tpbmQ6ImNsYXNzIixuYW1lOmkubmFtZSxtZXRhZGF0YTpjfSxudWxsLHIpLGw9aT10LnZhbHVlLGMmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShpLFN5bWJvbC5tZXRhZGF0YSx7ZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITAsdmFsdWU6Y30pfXN0YXRpYyBkZW1vPVdjcjtzdGF0aWMgZGVtb0dyb3Vwcz1bIkZlZWRiYWNrIl07I2U9VzZlKHRoaXMsbywiaW5mbyIpO2dldCB0eXBlKCl7cmV0dXJuIHRoaXMuI2V9c2V0IHR5cGUoYyl7dGhpcy4jZT1jfWNvbnN0cnVjdG9yKCl7c3VwZXIoKSxXNmUodGhpcyxzKSxkMS5zZXR1cCgpfXN0YXRpYyBzdHlsZXM9W0RlLG0uZGVmYXVsdFN0eWxlcyxvZWAKICAgICAgLyogVE9ETzogTWlncmF0ZSBoYXJkY29kZWQgdmFsdWVzIHRvIC0tZGVlcy0qIENTUyB2YXJpYWJsZXMgKi8KICAgIGBdO3JlbmRlcigpe3JldHVybiBDYCA8ZGl2IGNsYXNzPSJtYWluYm94Ij48L2Rpdj4gYH1zdGF0aWN7VzZlKGkscil9fTtyZXR1cm4gbD1pfSkoKX0pO3ZhciBRY3I9cCgoKT0+e1hjcigpfSk7dmFyIEpjcixLY3I9cCgoKT0+e3hlKCk7RzZlKCk7SmNyPSgpPT5DYAogICAgPGRlZXMtcHJvZ3Jlc3NiYXIKICAgICAgLnBlcmNlbnRhZ2U9JHs1MH0KICAgID48L2RlZXMtcHJvZ3Jlc3NiYXI+CiAgYH0pO3ZhciBlMHIsWTZlLHQwcixHNmU9cCgoKT0+e3dpKCk7UG8oKTtLY3IoKTt4ZSgpO0t0KCk7SmUoKTtlMHI9ZnVuY3Rpb24oZSx0LHIsaSxhLG4pe2Z1bmN0aW9uIG8oeSl7aWYoeSE9PXZvaWQgMCYmdHlwZW9mIHkhPSJmdW5jdGlvbiIpdGhyb3cgbmV3IFR5cGVFcnJvcigiRnVuY3Rpb24gZXhwZWN0ZWQiKTtyZXR1cm4geX1mb3IodmFyIHM9aS5raW5kLGw9cz09PSJnZXR0ZXIiPyJnZXQiOnM9PT0ic2V0dGVyIj8ic2V0IjoidmFsdWUiLGM9IXQmJmU/aS5zdGF0aWM/ZTplLnByb3RvdHlwZTpudWxsLHU9dHx8KGM/T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihjLGkubmFtZSk6e30pLGQsaD0hMSxmPXIubGVuZ3RoLTE7Zj49MDtmLS0pe3ZhciB4PXt9O2Zvcih2YXIgdiBpbiBpKXhbdl09dj09PSJhY2Nlc3MiP3t9Omlbdl07Zm9yKHZhciB2IGluIGkuYWNjZXNzKXguYWNjZXNzW3ZdPWkuYWNjZXNzW3ZdO3guYWRkSW5pdGlhbGl6ZXI9ZnVuY3Rpb24oeSl7aWYoaCl0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgYWRkIGluaXRpYWxpemVycyBhZnRlciBkZWNvcmF0aW9uIGhhcyBjb21wbGV0ZWQiKTtuLnB1c2gobyh5fHxudWxsKSl9O3ZhciBiPSgwLHJbZl0pKHM9PT0iYWNjZXNzb3IiP3tnZXQ6dS5nZXQsc2V0OnUuc2V0fTp1W2xdLHgpO2lmKHM9PT0iYWNjZXNzb3IiKXtpZihiPT09dm9pZCAwKWNvbnRpbnVlO2lmKGI9PT1udWxsfHx0eXBlb2YgYiE9Im9iamVjdCIpdGhyb3cgbmV3IFR5cGVFcnJvcigiT2JqZWN0IGV4cGVjdGVkIik7KGQ9byhiLmdldCkpJiYodS5nZXQ9ZCksKGQ9byhiLnNldCkpJiYodS5zZXQ9ZCksKGQ9byhiLmluaXQpKSYmYS51bnNoaWZ0KGQpfWVsc2UoZD1vKGIpKSYmKHM9PT0iZmllbGQiP2EudW5zaGlmdChkKTp1W2xdPWQpfWMmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShjLGkubmFtZSx1KSxoPSEwfSxZNmU9ZnVuY3Rpb24oZSx0LHIpe2Zvcih2YXIgaT1hcmd1bWVudHMubGVuZ3RoPjIsYT0wO2E8dC5sZW5ndGg7YSsrKXI9aT90W2FdLmNhbGwoZSxyKTp0W2FdLmNhbGwoZSk7cmV0dXJuIGk/cjp2b2lkIDB9LHQwcj0oKCk9PntsZXQgZT1beWUoImRlZXMtcHJvZ3Jlc3NiYXIiKV0sdCxyPVtdLGksYT16ZSxuLG89W10scz1bXTt2YXIgbD1jbGFzcyBleHRlbmRzIGF7c3RhdGlje2k9dGhpc31zdGF0aWN7bGV0IGM9dHlwZW9mIFN5bWJvbD09ImZ1bmN0aW9uIiYmU3ltYm9sLm1ldGFkYXRhP09iamVjdC5jcmVhdGUoYVtTeW1ib2wubWV0YWRhdGFdPz9udWxsKTp2b2lkIDA7bj1baih7dHlwZTpOdW1iZXJ9KV0sZTByKHRoaXMsbnVsbCxuLHtraW5kOiJhY2Nlc3NvciIsbmFtZToicGVyY2VudGFnZSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6dT0+InBlcmNlbnRhZ2UiaW4gdSxnZXQ6dT0+dS5wZXJjZW50YWdlLHNldDoodSxkKT0+e3UucGVyY2VudGFnZT1kfX0sbWV0YWRhdGE6Y30sbyxzKSxlMHIobnVsbCx0PXt2YWx1ZTppfSxlLHtraW5kOiJjbGFzcyIsbmFtZTppLm5hbWUsbWV0YWRhdGE6Y30sbnVsbCxyKSxsPWk9dC52YWx1ZSxjJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoaSxTeW1ib2wubWV0YWRhdGEse2VudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwLHZhbHVlOmN9KX1zdGF0aWMgZGVtbz1KY3I7c3RhdGljIGRlbW9Hcm91cHM9WyJGZWVkYmFjayJdOyNlPVk2ZSh0aGlzLG8sMCk7Z2V0IHBlcmNlbnRhZ2UoKXtyZXR1cm4gdGhpcy4jZX1zZXQgcGVyY2VudGFnZShjKXt0aGlzLiNlPWN9c3RhdGljIHN0eWxlcz1bRGUsbS5kZWZhdWx0U3R5bGVzLG9lYAogICAgICAvKiBUT0RPOiBNaWdyYXRlIGhhcmRjb2RlZCB2YWx1ZXMgdG8gLS1kZWVzLSogQ1NTIHZhcmlhYmxlcyAqLwogICAgICA6aG9zdCB7CiAgICAgICAgY29sb3I6ICR7bS5iZFRoZW1lKEVkLnRleHQsSW8udGV4dCl9OwogICAgICB9CiAgICAgIC5wcm9ncmVzc0JhckNvbnRhaW5lciB7CiAgICAgICAgcGFkZGluZzogOHB4OwogICAgICAgIG1pbi13aWR0aDogMjAwcHg7CiAgICAgIH0KCiAgICAgIC5wcm9ncmVzc0JhciB7CiAgICAgICAgYmFja2dyb3VuZDogJHttLmJkVGhlbWUoIiNlZWVlZWIiLCIjNDQ0Iil9OwogICAgICAgIGhlaWdodDogOHB4OwogICAgICAgIHdpZHRoOiAxMDAlOwogICAgICAgIGJvcmRlci1yYWRpdXM6IDRweDsKICAgICAgICBib3JkZXItdG9wOiAwLjVweCBzb2xpZCAke20uYmRUaGVtZSgibm9uZSIsIiM1NTUiKX07CiAgICAgIH0KCiAgICAgIC5wcm9ncmVzc0JhckZpbGwgewogICAgICAgIGJhY2tncm91bmQ6ICR7bS5iZFRoZW1lKElvLmJsdWVBY3RpdmUsRWQuYmx1ZUFjdGl2ZSl9OwogICAgICAgIGhlaWdodDogOHB4OwogICAgICAgIG1hcmdpbi10b3A6IC0wLjVweDsKICAgICAgICB0cmFuc2l0aW9uOiAwLjJzIHdpZHRoOwogICAgICAgIGJvcmRlci1yYWRpdXM6IDRweDsKICAgICAgICB3aWR0aDogMHB4OwogICAgICAgIGJvcmRlci10b3A6IDAuNSBzb2xpZCAke20uYmRUaGVtZSgibm9uZSIsIiMzOThmZmYiKX07CiAgICAgIH0KCiAgICAgIC5wcm9ncmVzc1RleHQgewogICAgICAgIHBhZGRpbmc6IDhweDsKICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7CiAgICAgIH0KICAgIGBdO3JlbmRlcigpe3JldHVybiBDYAogICAgICA8ZGl2IGNsYXNzPSJwcm9ncmVzc0JhckNvbnRhaW5lciI+CiAgICAgICAgPGRpdiBjbGFzcz0icHJvZ3Jlc3NCYXIiPgogICAgICAgICAgPGRpdiBjbGFzcz0icHJvZ3Jlc3NCYXJGaWxsIj48L2Rpdj4KICAgICAgICAgIDxkaXYgY2xhc3M9InByb2dyZXNzVGV4dCI+CiAgICAgICAgICAgICR7dGhpcy5wZXJjZW50YWdlfSUKICAgICAgICAgIDxkaXY+CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGl2PgogICAgYH1maXJzdFVwZGF0ZWQoYyl7c3VwZXIuZmlyc3RVcGRhdGVkKGMpLHRoaXMudXBkYXRlQ29tcGxldGUudGhlbigoKT0+e3RoaXMudXBkYXRlUGVyY2VudGFnZSgpfSl9YXN5bmMgdXBkYXRlUGVyY2VudGFnZSgpe2xldCBjPXRoaXMuc2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yKCIucHJvZ3Jlc3NCYXJGaWxsIik7Yy5zdHlsZS53aWR0aD1gJHt0aGlzLnBlcmNlbnRhZ2V9JWB9dXBkYXRlZCgpe3RoaXMudXBkYXRlUGVyY2VudGFnZSgpfWNvbnN0cnVjdG9yKCl7c3VwZXIoLi4uYXJndW1lbnRzKSxZNmUodGhpcyxzKX1zdGF0aWN7WTZlKGkscil9fTtyZXR1cm4gbD1pfSkoKX0pO3ZhciByMHI9cCgoKT0+e0c2ZSgpfSk7dmFyIEtOLFdkLGkwcixhMHI9cCgoKT0+e3hlKCk7S3QoKTtKZSgpO0tOPWZ1bmN0aW9uKGUsdCxyLGksYSxuKXtmdW5jdGlvbiBvKHkpe2lmKHkhPT12b2lkIDAmJnR5cGVvZiB5IT0iZnVuY3Rpb24iKXRocm93IG5ldyBUeXBlRXJyb3IoIkZ1bmN0aW9uIGV4cGVjdGVkIik7cmV0dXJuIHl9Zm9yKHZhciBzPWkua2luZCxsPXM9PT0iZ2V0dGVyIj8iZ2V0IjpzPT09InNldHRlciI/InNldCI6InZhbHVlIixjPSF0JiZlP2kuc3RhdGljP2U6ZS5wcm90b3R5cGU6bnVsbCx1PXR8fChjP09iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoYyxpLm5hbWUpOnt9KSxkLGg9ITEsZj1yLmxlbmd0aC0xO2Y+PTA7Zi0tKXt2YXIgeD17fTtmb3IodmFyIHYgaW4gaSl4W3ZdPXY9PT0iYWNjZXNzIj97fTppW3ZdO2Zvcih2YXIgdiBpbiBpLmFjY2Vzcyl4LmFjY2Vzc1t2XT1pLmFjY2Vzc1t2XTt4LmFkZEluaXRpYWxpemVyPWZ1bmN0aW9uKHkpe2lmKGgpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGFkZCBpbml0aWFsaXplcnMgYWZ0ZXIgZGVjb3JhdGlvbiBoYXMgY29tcGxldGVkIik7bi5wdXNoKG8oeXx8bnVsbCkpfTt2YXIgYj0oMCxyW2ZdKShzPT09ImFjY2Vzc29yIj97Z2V0OnUuZ2V0LHNldDp1LnNldH06dVtsXSx4KTtpZihzPT09ImFjY2Vzc29yIil7aWYoYj09PXZvaWQgMCljb250aW51ZTtpZihiPT09bnVsbHx8dHlwZW9mIGIhPSJvYmplY3QiKXRocm93IG5ldyBUeXBlRXJyb3IoIk9iamVjdCBleHBlY3RlZCIpOyhkPW8oYi5nZXQpKSYmKHUuZ2V0PWQpLChkPW8oYi5zZXQpKSYmKHUuc2V0PWQpLChkPW8oYi5pbml0KSkmJmEudW5zaGlmdChkKX1lbHNlKGQ9byhiKSkmJihzPT09ImZpZWxkIj9hLnVuc2hpZnQoZCk6dVtsXT1kKX1jJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoYyxpLm5hbWUsdSksaD0hMH0sV2Q9ZnVuY3Rpb24oZSx0LHIpe2Zvcih2YXIgaT1hcmd1bWVudHMubGVuZ3RoPjIsYT0wO2E8dC5sZW5ndGg7YSsrKXI9aT90W2FdLmNhbGwoZSxyKTp0W2FdLmNhbGwoZSk7cmV0dXJuIGk/cjp2b2lkIDB9LGkwcj0oKCk9PntsZXQgZT1beWUoImRlZXMtc3Bpbm5lciIpXSx0LHI9W10saSxhPXplLG4sbz1bXSxzPVtdLGwsYz1bXSx1PVtdLGQsaD1bXSxmPVtdO3ZhciB4PWNsYXNzIGV4dGVuZHMgYXtzdGF0aWN7aT10aGlzfXN0YXRpY3tsZXQgdj10eXBlb2YgU3ltYm9sPT0iZnVuY3Rpb24iJiZTeW1ib2wubWV0YWRhdGE/T2JqZWN0LmNyZWF0ZShhW1N5bWJvbC5tZXRhZGF0YV0/P251bGwpOnZvaWQgMDtuPVtqKHt0eXBlOk51bWJlcn0pXSxsPVtqKHt0eXBlOlN0cmluZ30pXSxkPVtqKCldLEtOKHRoaXMsbnVsbCxuLHtraW5kOiJhY2Nlc3NvciIsbmFtZToic2l6ZSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6Yj0+InNpemUiaW4gYixnZXQ6Yj0+Yi5zaXplLHNldDooYix5KT0+e2Iuc2l6ZT15fX0sbWV0YWRhdGE6dn0sbyxzKSxLTih0aGlzLG51bGwsbCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImJudyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6Yj0+ImJudyJpbiBiLGdldDpiPT5iLmJudyxzZXQ6KGIseSk9PntiLmJudz15fX0sbWV0YWRhdGE6dn0sYyx1KSxLTih0aGlzLG51bGwsZCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InN0YXR1cyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6Yj0+InN0YXR1cyJpbiBiLGdldDpiPT5iLnN0YXR1cyxzZXQ6KGIseSk9PntiLnN0YXR1cz15fX0sbWV0YWRhdGE6dn0saCxmKSxLTihudWxsLHQ9e3ZhbHVlOml9LGUse2tpbmQ6ImNsYXNzIixuYW1lOmkubmFtZSxtZXRhZGF0YTp2fSxudWxsLHIpLHg9aT10LnZhbHVlLHYmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShpLFN5bWJvbC5tZXRhZGF0YSx7ZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITAsdmFsdWU6dn0pfXN0YXRpYyBkZW1vR3JvdXBzPVsiRmVlZGJhY2siXTtzdGF0aWMgZGVtbz0oKT0+Q2AKICAgIDxkZWVzLXNwaW5uZXI+PC9kZWVzLXNwaW5uZXI+CiAgICA8ZGVlcy1zcGlubmVyIHN0YXR1cz0ic3VjY2VzcyI+PC9kZWVzLXNwaW5uZXI+CiAgICA8ZGVlcy1zcGlubmVyIHN0YXR1cz0iZXJyb3IiPjwvZGVlcy1zcGlubmVyPgogICAgPGRlZXMtc3Bpbm5lciBzaXplPSR7NjR9IHN0YXR1cz0ic3VjY2VzcyI+PC9kZWVzLXNwaW5uZXI+CiAgICA8ZGVlcy1zcGlubmVyIC5zaXplPSR7NjR9IHN0YXR1cz0iZXJyb3IiPjwvZGVlcy1zcGlubmVyPgogIGA7I2U9V2QodGhpcyxvLDIwKTtnZXQgc2l6ZSgpe3JldHVybiB0aGlzLiNlfXNldCBzaXplKHYpe3RoaXMuI2U9dn0jdD0oV2QodGhpcyxzKSxXZCh0aGlzLGMsITEpKTtnZXQgYm53KCl7cmV0dXJuIHRoaXMuI3R9c2V0IGJudyh2KXt0aGlzLiN0PXZ9I3I9KFdkKHRoaXMsdSksV2QodGhpcyxoLCJub3JtYWwiKSk7Z2V0IHN0YXR1cygpe3JldHVybiB0aGlzLiNyfXNldCBzdGF0dXModil7dGhpcy4jcj12fWNvbnN0cnVjdG9yKCl7c3VwZXIoKSxXZCh0aGlzLGYpfXN0YXRpYyBzdHlsZXM9W0RlLG0uZGVmYXVsdFN0eWxlcyxvZWAKICAgICAgLyogVE9ETzogTWlncmF0ZSBoYXJkY29kZWQgdmFsdWVzIHRvIC0tZGVlcy0qIENTUyB2YXJpYWJsZXMgKi8KICAgICAgOmhvc3QgewogICAgICAgIGRpc3BsYXk6IGJsb2NrOwogICAgICB9CgogICAgICAjbG9hZGluZyB7CiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICAgIHRyYW5zaXRpb246IG5vbmU7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKICAgICAgICBhbGlnbi1jb250ZW50OiBjZW50ZXI7CiAgICAgICAgYmFja2dyb3VuZDogIzhiYzM0YTAwOwogICAgICAgIGJvcmRlcjogM3B4IHNvbGlkICR7bS5iZFRoZW1lKCJyZ2JhKDAsIDAsIDAsIDAuMSkiLCJyZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMykiKX07CiAgICAgICAgYm9yZGVyLXJhZGl1czogNTAlOwogICAgICAgIGJvcmRlci10b3AtY29sb3I6ICR7bS5iZFRoZW1lKCIjMzMzIiwiI2ZmZiIpfTsKICAgICAgICBhbmltYXRpb246IHNwaW4gMXMgZWFzZS1pbi1vdXQgaW5maW5pdGU7CiAgICAgICAgLXdlYmtpdC1hbmltYXRpb246IHNwaW4gMXMgZWFzZS1pbi1vdXQgaW5maW5pdGU7CiAgICAgIH0KCiAgICAgICNsb2FkaW5nLnN1Y2Nlc3MgewogICAgICAgIGJvcmRlcjogbm9uZTsKICAgICAgICBib3JkZXItcmFkaXVzOiA1MCU7CiAgICAgICAgYW5pbWF0aW9uOiBub25lOwogICAgICAgIC13ZWJraXQtYW5pbWF0aW9uOiBub25lOwogICAgICB9CgogICAgICAjbG9hZGluZy5lcnJvciB7CiAgICAgICAgYm9yZGVyOiBub25lOwogICAgICAgIGJvcmRlci1yYWRpdXM6IDUwJTsKICAgICAgICBhbmltYXRpb246IG5vbmU7CiAgICAgICAgLXdlYmtpdC1hbmltYXRpb246IG5vbmU7CiAgICAgIH0KCiAgICAgIEBrZXlmcmFtZXMgc3BpbiB7CiAgICAgICAgdG8gewogICAgICAgICAgLXdlYmtpdC10cmFuc2Zvcm06IHJvdGF0ZSgzNjBkZWcpOwogICAgICAgIH0KICAgICAgfQogICAgICBALXdlYmtpdC1rZXlmcmFtZXMgc3BpbiB7CiAgICAgICAgdG8gewogICAgICAgICAgLXdlYmtpdC10cmFuc2Zvcm06IHJvdGF0ZSgzNjBkZWcpOwogICAgICAgIH0KICAgICAgfQoKICAgICAgZGVlcy1pY29uIHsKICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgICAgaGVpZ2h0OiAxMDAlOwogICAgICAgIHdpZHRoOiAxMDAlOwogICAgICB9CiAgICBgXTtyZW5kZXIoKXtyZXR1cm4gQ2AKICAgICAgPHN0eWxlPgogICAgICAgICNsb2FkaW5nIHsKICAgICAgICAgIHdpZHRoOiAke3RoaXMuc2l6ZX1weDsKICAgICAgICAgIGhlaWdodDogJHt0aGlzLnNpemV9cHg7CiAgICAgICAgfQogICAgICAgICNsb2FkaW5nLnN1Y2Nlc3MgewogICAgICAgICAgY29sb3I6ICR7bS5iZFRoZW1lKHRoaXMuYm53PyIjMzMzIjoiIzhiYzM0YSIsdGhpcy5ibnc/IiNmZmYiOiIjOGJjMzRhIil9OwogICAgICAgICAgCiAgICAgICAgfQogICAgICAgICNsb2FkaW5nLmVycm9yIHsKICAgICAgICAgIGNvbG9yOiAke20uYmRUaGVtZSh0aGlzLmJudz8iIzMzMyI6IiNlNjRhMTkiLHRoaXMuYm53PyIjZmZmIjoiI2U2NGExOSIpfTsKICAgICAgICB9CiAgICAgICAgZGVlcy1pY29uIHsKICAgICAgICAgIGZvbnQtc2l6ZTogJHt0aGlzLnNpemV9cHg7CiAgICAgICAgfQogICAgICA8L3N0eWxlPgogICAgICA8ZGl2IGNsYXNzPSIke3RoaXMuc3RhdHVzfSIgaWQ9ImxvYWRpbmciPgogICAgICAgICR7KCgpPT57aWYodGhpcy5zdGF0dXM9PT0ic3VjY2VzcyIpcmV0dXJuIENgPGRlZXMtaWNvbiBzdHlsZT0idHJhbnNmb3JtOiB0cmFuc2xhdGVYKDElKSB0cmFuc2xhdGVZKDMlKTsiIC5pY29uPSR7ImZhOmNpcmNsZS1jaGVjayJ9PjwvZGVlcy1pY29uPmA7aWYodGhpcy5zdGF0dXM9PT0iZXJyb3IiKXJldHVybiBDYDxkZWVzLWljb24gLmljb249JHsiZmE6Y2lyY2xlLXhtYXJrIn0+PC9kZWVzLWljb24+YH0pKCl9CiAgICAgIDwvZGl2PgogICAgYH1zdGF0aWN7V2QoaSxyKX19O3JldHVybiB4PWl9KSgpfSk7dmFyIG4wcj1wKCgpPT57YTByKCl9KTt2YXIgbzByLHMwcj1wKCgpPT57eGUoKTtaNmUoKTtJNCgpO28wcj0oKT0+Q2AKICAgIDxzdHlsZT4KICAgICAgLmRlbW8tY29udGFpbmVyIHsKICAgICAgICBwYWRkaW5nOiAzMnB4OwogICAgICAgIG1pbi1oZWlnaHQ6IDEwMHZoOwogICAgICAgIGJhY2tncm91bmQ6ICR7bS5iZFRoZW1lKCIjZjhmOWZhIiwiIzBhMGEwYSIpfTsKICAgICAgfQoKICAgICAgLmRlbW8tc2VjdGlvbiB7CiAgICAgICAgbWFyZ2luLWJvdHRvbTogNDhweDsKICAgICAgfQoKICAgICAgLmRlbW8tdGl0bGUgewogICAgICAgIGZvbnQtc2l6ZTogMjRweDsKICAgICAgICBmb250LXdlaWdodDogNjAwOwogICAgICAgIG1hcmdpbi1ib3R0b206IDE2cHg7CiAgICAgICAgY29sb3I6ICR7bS5iZFRoZW1lKCIjMzMzIiwiI2ZmZiIpfTsKICAgICAgfQoKICAgICAgLmRlbW8tZGVzY3JpcHRpb24gewogICAgICAgIGZvbnQtc2l6ZTogMTRweDsKICAgICAgICBjb2xvcjogJHttLmJkVGhlbWUoIiM2NjYiLCIjYWFhIil9OwogICAgICAgIG1hcmdpbi1ib3R0b206IDI0cHg7CiAgICAgIH0KCiAgICAgIC5idXR0b24tZ3JpZCB7CiAgICAgICAgZGlzcGxheTogZ3JpZDsKICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdChhdXRvLWZpdCwgbWlubWF4KDIwMHB4LCAxZnIpKTsKICAgICAgICBnYXA6IDE2cHg7CiAgICAgICAgbWFyZ2luLWJvdHRvbTogMzJweDsKICAgICAgfQoKICAgICAgLnRoZW1lLXRvZ2dsZSB7CiAgICAgICAgcG9zaXRpb246IGZpeGVkOwogICAgICAgIHRvcDogMTZweDsKICAgICAgICByaWdodDogMTZweDsKICAgICAgICB6LWluZGV4OiAxMDA7CiAgICAgIH0KICAgIDwvc3R5bGU+CgogICAgPGRpdiBjbGFzcz0iZGVtby1jb250YWluZXIiPgogICAgICA8ZGVlcy1idXR0b24gY2xhc3M9InRoZW1lLXRvZ2dsZSIgQGNsaWNrZWQ9JHsoKT0+e2RvY3VtZW50LmJvZHkuY2xhc3NMaXN0LnRvZ2dsZSgiYnJpZ2h0Iil9fT5Ub2dnbGUgVGhlbWU8L2RlZXMtYnV0dG9uPgoKICAgICAgPGRpdiBjbGFzcz0iZGVtby1zZWN0aW9uIj4KICAgICAgICA8aDIgY2xhc3M9ImRlbW8tdGl0bGUiPlRvYXN0IFR5cGVzPC9oMj4KICAgICAgICA8cCBjbGFzcz0iZGVtby1kZXNjcmlwdGlvbiI+CiAgICAgICAgICBEaWZmZXJlbnQgdG9hc3QgdHlwZXMgZm9yIHZhcmlvdXMgbm90aWZpY2F0aW9uIHNjZW5hcmlvcy4gQ2xpY2sgYW55IGJ1dHRvbiB0byBzaG93IGEgdG9hc3QuCiAgICAgICAgPC9wPgogICAgICAgIDxkaXYgY2xhc3M9ImJ1dHRvbi1ncmlkIj4KICAgICAgICAgIDxkZWVzLWJ1dHRvbiBAY2xpY2tlZD0keygpPT57YnIuaW5mbygiVGhpcyBpcyBhbiBpbmZvcm1hdGlvbmFsIG1lc3NhZ2UiKX19PkluZm8gVG9hc3Q8L2RlZXMtYnV0dG9uPgogICAgICAgICAgCiAgICAgICAgICA8ZGVlcy1idXR0b24gdHlwZT0iaGlnaGxpZ2h0ZWQiIEBjbGlja2VkPSR7KCk9Pntici5zdWNjZXNzKCJPcGVyYXRpb24gY29tcGxldGVkIHN1Y2Nlc3NmdWxseSEiKX19PlN1Y2Nlc3MgVG9hc3Q8L2RlZXMtYnV0dG9uPgogICAgICAgICAgCiAgICAgICAgICA8ZGVlcy1idXR0b24gQGNsaWNrZWQ9JHsoKT0+e2JyLndhcm5pbmcoIlBsZWFzZSByZXZpZXcgYmVmb3JlIHByb2NlZWRpbmciKX19Pldhcm5pbmcgVG9hc3Q8L2RlZXMtYnV0dG9uPgogICAgICAgICAgCiAgICAgICAgICA8ZGVlcy1idXR0b24gQGNsaWNrZWQ9JHsoKT0+e2JyLmVycm9yKCJBbiBlcnJvciBvY2N1cnJlZCB3aGlsZSBwcm9jZXNzaW5nIil9fT5FcnJvciBUb2FzdDwvZGVlcy1idXR0b24+CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGl2PgoKICAgICAgPGRpdiBjbGFzcz0iZGVtby1zZWN0aW9uIj4KICAgICAgICA8aDIgY2xhc3M9ImRlbW8tdGl0bGUiPlRvYXN0IFBvc2l0aW9uczwvaDI+CiAgICAgICAgPHAgY2xhc3M9ImRlbW8tZGVzY3JpcHRpb24iPgogICAgICAgICAgVG9hc3RzIGNhbiBhcHBlYXIgaW4gZGlmZmVyZW50IHBvc2l0aW9ucyBvbiB0aGUgc2NyZWVuLgogICAgICAgIDwvcD4KICAgICAgICA8ZGl2IGNsYXNzPSJidXR0b24tZ3JpZCI+CiAgICAgICAgICA8ZGVlcy1idXR0b24gQGNsaWNrZWQ9JHsoKT0+e2JyLnNob3coe21lc3NhZ2U6IlRvcCBSaWdodCBQb3NpdGlvbiIsdHlwZToiaW5mbyIscG9zaXRpb246InRvcC1yaWdodCJ9KX19PlRvcCBSaWdodDwvZGVlcy1idXR0b24+CiAgICAgICAgICAKICAgICAgICAgIDxkZWVzLWJ1dHRvbiBAY2xpY2tlZD0keygpPT57YnIuc2hvdyh7bWVzc2FnZToiVG9wIExlZnQgUG9zaXRpb24iLHR5cGU6ImluZm8iLHBvc2l0aW9uOiJ0b3AtbGVmdCJ9KX19PlRvcCBMZWZ0PC9kZWVzLWJ1dHRvbj4KICAgICAgICAgIAogICAgICAgICAgPGRlZXMtYnV0dG9uIEBjbGlja2VkPSR7KCk9Pntici5zaG93KHttZXNzYWdlOiJCb3R0b20gUmlnaHQgUG9zaXRpb24iLHR5cGU6ImluZm8iLHBvc2l0aW9uOiJib3R0b20tcmlnaHQifSl9fT5Cb3R0b20gUmlnaHQ8L2RlZXMtYnV0dG9uPgogICAgICAgICAgCiAgICAgICAgICA8ZGVlcy1idXR0b24gQGNsaWNrZWQ9JHsoKT0+e2JyLnNob3coe21lc3NhZ2U6IkJvdHRvbSBMZWZ0IFBvc2l0aW9uIix0eXBlOiJpbmZvIixwb3NpdGlvbjoiYm90dG9tLWxlZnQifSl9fT5Cb3R0b20gTGVmdDwvZGVlcy1idXR0b24+CiAgICAgICAgICAKICAgICAgICAgIDxkZWVzLWJ1dHRvbiBAY2xpY2tlZD0keygpPT57YnIuc2hvdyh7bWVzc2FnZToiVG9wIENlbnRlciBQb3NpdGlvbiIsdHlwZToiaW5mbyIscG9zaXRpb246InRvcC1jZW50ZXIifSl9fT5Ub3AgQ2VudGVyPC9kZWVzLWJ1dHRvbj4KICAgICAgICAgIAogICAgICAgICAgPGRlZXMtYnV0dG9uIEBjbGlja2VkPSR7KCk9Pntici5zaG93KHttZXNzYWdlOiJCb3R0b20gQ2VudGVyIFBvc2l0aW9uIix0eXBlOiJpbmZvIixwb3NpdGlvbjoiYm90dG9tLWNlbnRlciJ9KX19PkJvdHRvbSBDZW50ZXI8L2RlZXMtYnV0dG9uPgogICAgICAgIDwvZGl2PgogICAgICA8L2Rpdj4KCiAgICAgIDxkaXYgY2xhc3M9ImRlbW8tc2VjdGlvbiI+CiAgICAgICAgPGgyIGNsYXNzPSJkZW1vLXRpdGxlIj5EdXJhdGlvbiBPcHRpb25zPC9oMj4KICAgICAgICA8cCBjbGFzcz0iZGVtby1kZXNjcmlwdGlvbiI+CiAgICAgICAgICBDb250cm9sIGhvdyBsb25nIHRvYXN0cyBzdGF5IHZpc2libGUuIER1cmF0aW9uIGluIG1pbGxpc2Vjb25kcy4KICAgICAgICA8L3A+CiAgICAgICAgPGRpdiBjbGFzcz0iYnV0dG9uLWdyaWQiPgogICAgICAgICAgPGRlZXMtYnV0dG9uIEBjbGlja2VkPSR7KCk9Pntici5zaG93KHttZXNzYWdlOiJRdWljayB0b2FzdCAoMSBzZWNvbmQpIix0eXBlOiJpbmZvIixkdXJhdGlvbjoxZTN9KX19PjEgU2Vjb25kPC9kZWVzLWJ1dHRvbj4KICAgICAgICAgIAogICAgICAgICAgPGRlZXMtYnV0dG9uIEBjbGlja2VkPSR7KCk9Pntici5zaG93KHttZXNzYWdlOiJTdGFuZGFyZCB0b2FzdCAoMyBzZWNvbmRzKSIsdHlwZToiaW5mbyIsZHVyYXRpb246M2UzfSl9fT4zIFNlY29uZHMgKERlZmF1bHQpPC9kZWVzLWJ1dHRvbj4KICAgICAgICAgIAogICAgICAgICAgPGRlZXMtYnV0dG9uIEBjbGlja2VkPSR7KCk9Pntici5zaG93KHttZXNzYWdlOiJMb25nIHRvYXN0ICg1IHNlY29uZHMpIix0eXBlOiJpbmZvIixkdXJhdGlvbjo1ZTN9KX19PjUgU2Vjb25kczwvZGVlcy1idXR0b24+CiAgICAgICAgICAKICAgICAgICAgIDxkZWVzLWJ1dHRvbiBAY2xpY2tlZD0keygpPT57YnIuc2hvdyh7bWVzc2FnZToiTWFudWFsIGRpc21pc3Mgb25seSAoY2xpY2sgdG8gY2xvc2UpIix0eXBlOiJ3YXJuaW5nIixkdXJhdGlvbjowfSl9fT5ObyBBdXRvLURpc21pc3M8L2RlZXMtYnV0dG9uPgogICAgICAgIDwvZGl2PgogICAgICA8L2Rpdj4KCiAgICAgIDxkaXYgY2xhc3M9ImRlbW8tc2VjdGlvbiI+CiAgICAgICAgPGgyIGNsYXNzPSJkZW1vLXRpdGxlIj5NdWx0aXBsZSBUb2FzdHM8L2gyPgogICAgICAgIDxwIGNsYXNzPSJkZW1vLWRlc2NyaXB0aW9uIj4KICAgICAgICAgIE11bHRpcGxlIHRvYXN0cyBzdGFjayBhdXRvbWF0aWNhbGx5LiBUaGV5IG1haW50YWluIHRoZWlyIG9yZGVyIGFuZCBhbmltYXRlIHNtb290aGx5LgogICAgICAgIDwvcD4KICAgICAgICA8ZGl2IGNsYXNzPSJidXR0b24tZ3JpZCI+CiAgICAgICAgICA8ZGVlcy1idXR0b24gQGNsaWNrZWQ9JHsoKT0+e2JyLmluZm8oIkZpcnN0IG5vdGlmaWNhdGlvbiIpLHNldFRpbWVvdXQoKCk9PmJyLnN1Y2Nlc3MoIlNlY29uZCBub3RpZmljYXRpb24iKSwyMDApLHNldFRpbWVvdXQoKCk9PmJyLndhcm5pbmcoIlRoaXJkIG5vdGlmaWNhdGlvbiIpLDQwMCksc2V0VGltZW91dCgoKT0+YnIuZXJyb3IoIkZvdXJ0aCBub3RpZmljYXRpb24iKSw2MDApfX0+U2hvdyBNdWx0aXBsZTwvZGVlcy1idXR0b24+CiAgICAgICAgICAKICAgICAgICAgIDxkZWVzLWJ1dHRvbiBAY2xpY2tlZD0keygpPT57Zm9yKGxldCBlPTE7ZTw9NTtlKyspc2V0VGltZW91dCgoKT0+e2JyLnNob3coe21lc3NhZ2U6YE5vdGlmaWNhdGlvbiAjJHtlfWAsdHlwZTplJTI9PT0wPyJzdWNjZXNzIjoiaW5mbyIsZHVyYXRpb246MmUzK2UqNTAwfSl9LGUqMTAwKX19PlJhcGlkIEZpcmU8L2RlZXMtYnV0dG9uPgogICAgICAgIDwvZGl2PgogICAgICA8L2Rpdj4KCiAgICAgIDxkaXYgY2xhc3M9ImRlbW8tc2VjdGlvbiI+CiAgICAgICAgPGgyIGNsYXNzPSJkZW1vLXRpdGxlIj5SZWFsLVdvcmxkIEV4YW1wbGVzPC9oMj4KICAgICAgICA8cCBjbGFzcz0iZGVtby1kZXNjcmlwdGlvbiI+CiAgICAgICAgICBDb21tb24gdXNlIGNhc2VzIGZvciB0b2FzdCBub3RpZmljYXRpb25zIGluIGFwcGxpY2F0aW9ucy4KICAgICAgICA8L3A+CiAgICAgICAgPGRpdiBjbGFzcz0iYnV0dG9uLWdyaWQiPgogICAgICAgICAgPGRlZXMtYnV0dG9uIEBjbGlja2VkPSR7YXN5bmMoKT0+e2xldCBlPWF3YWl0IGJyLnNob3coe21lc3NhZ2U6IlNhdmluZyBjaGFuZ2VzLi4uIix0eXBlOiJpbmZvIixkdXJhdGlvbjowfSk7c2V0VGltZW91dCgoKT0+e2UuZGlzbWlzcygpLGJyLnN1Y2Nlc3MoIkNoYW5nZXMgc2F2ZWQgc3VjY2Vzc2Z1bGx5ISIpfSwyZTMpfX0+U2F2ZSBPcGVyYXRpb248L2RlZXMtYnV0dG9uPgogICAgICAgICAgCiAgICAgICAgICA8ZGVlcy1idXR0b24gQGNsaWNrZWQ9JHsoKT0+e2JyLmVycm9yKCJGYWlsZWQgdG8gY29ubmVjdCB0byBzZXJ2ZXIuIFBsZWFzZSBjaGVjayB5b3VyIGludGVybmV0IGNvbm5lY3Rpb24uIil9fT5OZXR3b3JrIEVycm9yPC9kZWVzLWJ1dHRvbj4KICAgICAgICAgIAogICAgICAgICAgPGRlZXMtYnV0dG9uIEBjbGlja2VkPSR7KCk9Pntici53YXJuaW5nKCJZb3VyIHNlc3Npb24gd2lsbCBleHBpcmUgaW4gNSBtaW51dGVzIil9fT5TZXNzaW9uIFdhcm5pbmc8L2RlZXMtYnV0dG9uPgogICAgICAgICAgCiAgICAgICAgICA8ZGVlcy1idXR0b24gQGNsaWNrZWQ9JHsoKT0+e2JyLnN1Y2Nlc3MoIkZpbGUgdXBsb2FkZWQgc3VjY2Vzc2Z1bGx5ISIpfX0+VXBsb2FkIENvbXBsZXRlPC9kZWVzLWJ1dHRvbj4KICAgICAgICA8L2Rpdj4KICAgICAgPC9kaXY+CgogICAgICA8ZGl2IGNsYXNzPSJkZW1vLXNlY3Rpb24iPgogICAgICAgIDxoMiBjbGFzcz0iZGVtby10aXRsZSI+UHJvZ3JhbW1hdGljIENvbnRyb2w8L2gyPgogICAgICAgIDxwIGNsYXNzPSJkZW1vLWRlc2NyaXB0aW9uIj4KICAgICAgICAgIEFkdmFuY2VkIGNvbnRyb2wgb3ZlciB0b2FzdCBiZWhhdmlvci4KICAgICAgICA8L3A+CiAgICAgICAgPGRpdiBjbGFzcz0iYnV0dG9uLWdyaWQiPgogICAgICAgICAgPGRlZXMtYnV0dG9uIEBjbGlja2VkPSR7YXN5bmMoKT0+e2xldCBlPWF3YWl0IGJyLnNob3coe21lc3NhZ2U6IlRoaXMgdG9hc3QgY2FuIGJlIGRpc21pc3NlZCBwcm9ncmFtbWF0aWNhbGx5Iix0eXBlOiJpbmZvIixkdXJhdGlvbjowfSk7c2V0VGltZW91dCgoKT0+e2UuZGlzbWlzcygpLGJyLnN1Y2Nlc3MoIlRvYXN0IGRpc21pc3NlZCBhZnRlciAyIHNlY29uZHMiKX0sMmUzKX19PlByb2dyYW1tYXRpYyBEaXNtaXNzPC9kZWVzLWJ1dHRvbj4KICAgICAgICAgIAogICAgICAgICAgPGRlZXMtYnV0dG9uIEBjbGlja2VkPSR7KCk9Pntici5pbmZvKCJJbmZvIG1lc3NhZ2UiLDJlMyksc2V0VGltZW91dCgoKT0+YnIuc3VjY2VzcygiU3VjY2VzcyBtZXNzYWdlIiwyZTMpLDUwMCksc2V0VGltZW91dCgoKT0+YnIud2FybmluZygiV2FybmluZyBtZXNzYWdlIiwyZTMpLDFlMyksc2V0VGltZW91dCgoKT0+YnIuZXJyb3IoIkVycm9yIG1lc3NhZ2UiLDJlMyksMTUwMCl9fT5Db252ZW5pZW5jZSBNZXRob2RzPC9kZWVzLWJ1dHRvbj4KICAgICAgICA8L2Rpdj4KICAgICAgPC9kaXY+CiAgICA8L2Rpdj4KICBgfSk7dmFyIHZiLE1jLGJyLFo2ZT1wKCgpPT57eGUoKTtLdCgpO3hvKCk7czByKCk7UWEoKTtKZSgpO3ZiPWZ1bmN0aW9uKGUsdCxyLGksYSxuKXtmdW5jdGlvbiBvKHkpe2lmKHkhPT12b2lkIDAmJnR5cGVvZiB5IT0iZnVuY3Rpb24iKXRocm93IG5ldyBUeXBlRXJyb3IoIkZ1bmN0aW9uIGV4cGVjdGVkIik7cmV0dXJuIHl9Zm9yKHZhciBzPWkua2luZCxsPXM9PT0iZ2V0dGVyIj8iZ2V0IjpzPT09InNldHRlciI/InNldCI6InZhbHVlIixjPSF0JiZlP2kuc3RhdGljP2U6ZS5wcm90b3R5cGU6bnVsbCx1PXR8fChjP09iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoYyxpLm5hbWUpOnt9KSxkLGg9ITEsZj1yLmxlbmd0aC0xO2Y+PTA7Zi0tKXt2YXIgeD17fTtmb3IodmFyIHYgaW4gaSl4W3ZdPXY9PT0iYWNjZXNzIj97fTppW3ZdO2Zvcih2YXIgdiBpbiBpLmFjY2Vzcyl4LmFjY2Vzc1t2XT1pLmFjY2Vzc1t2XTt4LmFkZEluaXRpYWxpemVyPWZ1bmN0aW9uKHkpe2lmKGgpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGFkZCBpbml0aWFsaXplcnMgYWZ0ZXIgZGVjb3JhdGlvbiBoYXMgY29tcGxldGVkIik7bi5wdXNoKG8oeXx8bnVsbCkpfTt2YXIgYj0oMCxyW2ZdKShzPT09ImFjY2Vzc29yIj97Z2V0OnUuZ2V0LHNldDp1LnNldH06dVtsXSx4KTtpZihzPT09ImFjY2Vzc29yIil7aWYoYj09PXZvaWQgMCljb250aW51ZTtpZihiPT09bnVsbHx8dHlwZW9mIGIhPSJvYmplY3QiKXRocm93IG5ldyBUeXBlRXJyb3IoIk9iamVjdCBleHBlY3RlZCIpOyhkPW8oYi5nZXQpKSYmKHUuZ2V0PWQpLChkPW8oYi5zZXQpKSYmKHUuc2V0PWQpLChkPW8oYi5pbml0KSkmJmEudW5zaGlmdChkKX1lbHNlKGQ9byhiKSkmJihzPT09ImZpZWxkIj9hLnVuc2hpZnQoZCk6dVtsXT1kKX1jJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoYyxpLm5hbWUsdSksaD0hMH0sTWM9ZnVuY3Rpb24oZSx0LHIpe2Zvcih2YXIgaT1hcmd1bWVudHMubGVuZ3RoPjIsYT0wO2E8dC5sZW5ndGg7YSsrKXI9aT90W2FdLmNhbGwoZSxyKTp0W2FdLmNhbGwoZSk7cmV0dXJuIGk/cjp2b2lkIDB9LGJyPSgoKT0+e2xldCBlPVt5ZSgiZGVlcy10b2FzdCIpXSx0LHI9W10saSxhPXplLG4sbz1bXSxzPVtdLGwsYz1bXSx1PVtdLGQsaD1bXSxmPVtdLHgsdj1bXSxiPVtdO3ZhciB5PWNsYXNzIGV4dGVuZHMgYXtzdGF0aWN7aT10aGlzfXN0YXRpY3tsZXQgdz10eXBlb2YgU3ltYm9sPT0iZnVuY3Rpb24iJiZTeW1ib2wubWV0YWRhdGE/T2JqZWN0LmNyZWF0ZShhW1N5bWJvbC5tZXRhZGF0YV0/P251bGwpOnZvaWQgMDtuPVtqKHt0eXBlOlN0cmluZ30pXSxsPVtqKHt0eXBlOlN0cmluZ30pXSxkPVtqKHt0eXBlOk51bWJlcn0pXSx4PVtqKHt0eXBlOkJvb2xlYW4scmVmbGVjdDohMH0pXSx2Yih0aGlzLG51bGwsbix7a2luZDoiYWNjZXNzb3IiLG5hbWU6Im1lc3NhZ2UiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOms9PiJtZXNzYWdlImluIGssZ2V0Oms9PmsubWVzc2FnZSxzZXQ6KGssTyk9PntrLm1lc3NhZ2U9T319LG1ldGFkYXRhOnd9LG8scyksdmIodGhpcyxudWxsLGwse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJ0eXBlIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczprPT4idHlwZSJpbiBrLGdldDprPT5rLnR5cGUsc2V0OihrLE8pPT57ay50eXBlPU99fSxtZXRhZGF0YTp3fSxjLHUpLHZiKHRoaXMsbnVsbCxkLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiZHVyYXRpb24iLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOms9PiJkdXJhdGlvbiJpbiBrLGdldDprPT5rLmR1cmF0aW9uLHNldDooayxPKT0+e2suZHVyYXRpb249T319LG1ldGFkYXRhOnd9LGgsZiksdmIodGhpcyxudWxsLHgse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJpc1Zpc2libGUiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOms9PiJpc1Zpc2libGUiaW4gayxnZXQ6az0+ay5pc1Zpc2libGUsc2V0OihrLE8pPT57ay5pc1Zpc2libGU9T319LG1ldGFkYXRhOnd9LHYsYiksdmIobnVsbCx0PXt2YWx1ZTppfSxlLHtraW5kOiJjbGFzcyIsbmFtZTppLm5hbWUsbWV0YWRhdGE6d30sbnVsbCxyKSx5PWk9dC52YWx1ZSx3JiZPYmplY3QuZGVmaW5lUHJvcGVydHkoaSxTeW1ib2wubWV0YWRhdGEse2VudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwLHZhbHVlOnd9KX1zdGF0aWMgZGVtbz1vMHI7c3RhdGljIGRlbW9Hcm91cHM9WyJGZWVkYmFjayIsIk92ZXJsYXkiXTtzdGF0aWMgdG9hc3RDb250YWluZXJzPW5ldyBNYXA7c3RhdGljIGdldE9yQ3JlYXRlQ29udGFpbmVyKHcpe2lmKCF0aGlzLnRvYXN0Q29udGFpbmVycy5oYXModykpe2xldCBrPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpO3N3aXRjaChrLmNsYXNzTmFtZT1gdG9hc3QtY29udGFpbmVyIHRvYXN0LWNvbnRhaW5lci0ke3d9YCxrLnN0eWxlLmNzc1RleHQ9YAogICAgICAgIHBvc2l0aW9uOiBmaXhlZDsKICAgICAgICB6LWluZGV4OiAke2ZpLm92ZXJsYXkudG9hc3R9OwogICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lOwogICAgICAgIHBhZGRpbmc6IDE2cHg7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICAgIGdhcDogOHB4OwogICAgICBgLHcpe2Nhc2UidG9wLXJpZ2h0IjprLnN0eWxlLnRvcD0iMCIsay5zdHlsZS5yaWdodD0iMCI7YnJlYWs7Y2FzZSJ0b3AtbGVmdCI6ay5zdHlsZS50b3A9IjAiLGsuc3R5bGUubGVmdD0iMCI7YnJlYWs7Y2FzZSJib3R0b20tcmlnaHQiOmsuc3R5bGUuYm90dG9tPSIwIixrLnN0eWxlLnJpZ2h0PSIwIjticmVhaztjYXNlImJvdHRvbS1sZWZ0IjprLnN0eWxlLmJvdHRvbT0iMCIsay5zdHlsZS5sZWZ0PSIwIjticmVhaztjYXNlInRvcC1jZW50ZXIiOmsuc3R5bGUudG9wPSIwIixrLnN0eWxlLmxlZnQ9IjUwJSIsay5zdHlsZS50cmFuc2Zvcm09InRyYW5zbGF0ZVgoLTUwJSkiO2JyZWFrO2Nhc2UiYm90dG9tLWNlbnRlciI6ay5zdHlsZS5ib3R0b209IjAiLGsuc3R5bGUubGVmdD0iNTAlIixrLnN0eWxlLnRyYW5zZm9ybT0idHJhbnNsYXRlWCgtNTAlKSI7YnJlYWt9ZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChrKSx0aGlzLnRvYXN0Q29udGFpbmVycy5zZXQodyxrKX1yZXR1cm4gdGhpcy50b2FzdENvbnRhaW5lcnMuZ2V0KHcpfXN0YXRpYyBhc3luYyBzaG93KHcpe2xldCBrPXR5cGVvZiB3PT0ic3RyaW5nIj97bWVzc2FnZTp3fTp3LE89bmV3IHk7cmV0dXJuIE8ubWVzc2FnZT1rLm1lc3NhZ2UsTy50eXBlPWsudHlwZXx8ImluZm8iLE8uZHVyYXRpb249ay5kdXJhdGlvbnx8M2UzLHRoaXMuZ2V0T3JDcmVhdGVDb250YWluZXIoay5wb3NpdGlvbnx8InRvcC1yaWdodCIpLmFwcGVuZENoaWxkKE8pLGF3YWl0IE8udXBkYXRlQ29tcGxldGUscmVxdWVzdEFuaW1hdGlvbkZyYW1lKCgpPT57Ty5pc1Zpc2libGU9ITB9KSxPLmR1cmF0aW9uPjAmJnNldFRpbWVvdXQoKCk9PntPLmRpc21pc3MoKX0sTy5kdXJhdGlvbiksT31zdGF0aWMgYXN5bmMgY3JlYXRlQW5kU2hvdyh3KXtyZXR1cm4gdGhpcy5zaG93KHcpfXN0YXRpYyBpbmZvKHcsayl7cmV0dXJuIHRoaXMuc2hvdyh7bWVzc2FnZTp3LHR5cGU6ImluZm8iLGR1cmF0aW9uOmt9KX1zdGF0aWMgc3VjY2Vzcyh3LGspe3JldHVybiB0aGlzLnNob3coe21lc3NhZ2U6dyx0eXBlOiJzdWNjZXNzIixkdXJhdGlvbjprfSl9c3RhdGljIHdhcm5pbmcodyxrKXtyZXR1cm4gdGhpcy5zaG93KHttZXNzYWdlOncsdHlwZToid2FybmluZyIsZHVyYXRpb246a30pfXN0YXRpYyBlcnJvcih3LGspe3JldHVybiB0aGlzLnNob3coe21lc3NhZ2U6dyx0eXBlOiJlcnJvciIsZHVyYXRpb246a30pfSNlPU1jKHRoaXMsbywiIik7Z2V0IG1lc3NhZ2UoKXtyZXR1cm4gdGhpcy4jZX1zZXQgbWVzc2FnZSh3KXt0aGlzLiNlPXd9I3Q9KE1jKHRoaXMscyksTWModGhpcyxjLCJpbmZvIikpO2dldCB0eXBlKCl7cmV0dXJuIHRoaXMuI3R9c2V0IHR5cGUodyl7dGhpcy4jdD13fSNyPShNYyh0aGlzLHUpLE1jKHRoaXMsaCwzZTMpKTtnZXQgZHVyYXRpb24oKXtyZXR1cm4gdGhpcy4jcn1zZXQgZHVyYXRpb24odyl7dGhpcy4jcj13fSNpPShNYyh0aGlzLGYpLE1jKHRoaXMsdiwhMSkpO2dldCBpc1Zpc2libGUoKXtyZXR1cm4gdGhpcy4jaX1zZXQgaXNWaXNpYmxlKHcpe3RoaXMuI2k9d31jb25zdHJ1Y3Rvcigpe3N1cGVyKCksTWModGhpcyxiKSxkMS5zZXR1cCgpfXN0YXRpYyBzdHlsZXM9W0RlLG0uZGVmYXVsdFN0eWxlcyxvZWAKICAgICAgLyogVE9ETzogTWlncmF0ZSBoYXJkY29kZWQgdmFsdWVzIHRvIC0tZGVlcy0qIENTUyB2YXJpYWJsZXMgKi8KICAgICAgOmhvc3QgewogICAgICAgIGRpc3BsYXk6IGJsb2NrOwogICAgICAgIHBvaW50ZXItZXZlbnRzOiBhdXRvOwogICAgICAgIGZvbnQtZmFtaWx5OiAke0lyfTsKICAgICAgICBvcGFjaXR5OiAwOwogICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtMTBweCk7CiAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuM3MgY3ViaWMtYmV6aWVyKDAuNCwgMCwgMC4yLCAxKTsKICAgICAgfQoKICAgICAgOmhvc3QoW2lzdmlzaWJsZV0pIHsKICAgICAgICBvcGFjaXR5OiAxOwogICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgwKTsKICAgICAgfQoKICAgICAgLnRvYXN0IHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgZ2FwOiAxMnB4OwogICAgICAgIHBhZGRpbmc6IDE2cHggMjBweDsKICAgICAgICBib3JkZXItcmFkaXVzOiA4cHg7CiAgICAgICAgYmFja2dyb3VuZDogJHttLmJkVGhlbWUoIiNmZmYiLCIjMjIyIil9OwogICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICR7bS5iZFRoZW1lKCIjZTBlMGUwIiwiIzMzMyIpfTsKICAgICAgICBib3gtc2hhZG93OiAwIDRweCAxMnB4ICR7bS5iZFRoZW1lKCJyZ2JhKDAsMCwwLDAuMSkiLCJyZ2JhKDAsMCwwLDAuMykiKX07CiAgICAgICAgbWluLXdpZHRoOiAzMDBweDsKICAgICAgICBtYXgtd2lkdGg6IDUwMHB4OwogICAgICAgIGN1cnNvcjogcG9pbnRlcjsKICAgICAgfQoKICAgICAgLnRvYXN0OmhvdmVyIHsKICAgICAgICB0cmFuc2Zvcm06IHNjYWxlKDEuMDIpOwogICAgICB9CgogICAgICAuaWNvbiB7CiAgICAgICAgZmxleC1zaHJpbms6IDA7CiAgICAgICAgd2lkdGg6IDIwcHg7CiAgICAgICAgaGVpZ2h0OiAyMHB4OwogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKICAgICAgfQoKICAgICAgLmljb24gc3ZnIHsKICAgICAgICB3aWR0aDogMTAwJTsKICAgICAgICBoZWlnaHQ6IDEwMCU7CiAgICAgIH0KCiAgICAgIC5tZXNzYWdlIHsKICAgICAgICBmbGV4OiAxOwogICAgICAgIGZvbnQtc2l6ZTogMTRweDsKICAgICAgICBsaW5lLWhlaWdodDogMS41OwogICAgICAgIGNvbG9yOiAke20uYmRUaGVtZSgiIzMzMyIsIiNmZmYiKX07CiAgICAgIH0KCiAgICAgIC5jbG9zZSB7CiAgICAgICAgZmxleC1zaHJpbms6IDA7CiAgICAgICAgd2lkdGg6IDE2cHg7CiAgICAgICAgaGVpZ2h0OiAxNnB4OwogICAgICAgIG9wYWNpdHk6IDAuNTsKICAgICAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICAgICAgdHJhbnNpdGlvbjogb3BhY2l0eSAwLjJzOwogICAgICB9CgogICAgICAuY2xvc2U6aG92ZXIgewogICAgICAgIG9wYWNpdHk6IDE7CiAgICAgIH0KCiAgICAgIC5jbG9zZSBzdmcgewogICAgICAgIHdpZHRoOiAxMDAlOwogICAgICAgIGhlaWdodDogMTAwJTsKICAgICAgICBmaWxsOiBjdXJyZW50Q29sb3I7CiAgICAgIH0KCiAgICAgIC8qIFR5cGUtc3BlY2lmaWMgc3R5bGVzICovCiAgICAgIDpob3N0KFt0eXBlPSJpbmZvIl0pIC5pY29uIHsKICAgICAgICBjb2xvcjogIzAwODRmZjsKICAgICAgfQoKICAgICAgOmhvc3QoW3R5cGU9InN1Y2Nlc3MiXSkgLmljb24gewogICAgICAgIGNvbG9yOiAjMjJjNTVlOwogICAgICB9CgogICAgICA6aG9zdChbdHlwZT0id2FybmluZyJdKSAuaWNvbiB7CiAgICAgICAgY29sb3I6ICNmNTllMGI7CiAgICAgIH0KCiAgICAgIDpob3N0KFt0eXBlPSJlcnJvciJdKSAuaWNvbiB7CiAgICAgICAgY29sb3I6ICNlZjQ0NDQ7CiAgICAgIH0KCiAgICAgIC8qIFByb2dyZXNzIGJhciAqLwogICAgICAucHJvZ3Jlc3MgewogICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgICBib3R0b206IDA7CiAgICAgICAgbGVmdDogMDsKICAgICAgICByaWdodDogMDsKICAgICAgICBoZWlnaHQ6IDNweDsKICAgICAgICBiYWNrZ3JvdW5kOiBjdXJyZW50Q29sb3I7CiAgICAgICAgb3BhY2l0eTogMC4yOwogICAgICAgIGJvcmRlci1yYWRpdXM6IDAgMCA4cHggOHB4OwogICAgICAgIG92ZXJmbG93OiBoaWRkZW47CiAgICAgIH0KCiAgICAgIC5wcm9ncmVzcy1iYXIgewogICAgICAgIGhlaWdodDogMTAwJTsKICAgICAgICBiYWNrZ3JvdW5kOiBjdXJyZW50Q29sb3I7CiAgICAgICAgb3BhY2l0eTogMC44OwogICAgICAgIHRyYW5zZm9ybS1vcmlnaW46IGxlZnQ7CiAgICAgICAgYW5pbWF0aW9uOiBwcm9ncmVzcyBsaW5lYXIgZm9yd2FyZHM7CiAgICAgIH0KCiAgICAgIEBrZXlmcmFtZXMgcHJvZ3Jlc3MgewogICAgICAgIGZyb20gewogICAgICAgICAgdHJhbnNmb3JtOiBzY2FsZVgoMSk7CiAgICAgICAgfQogICAgICAgIHRvIHsKICAgICAgICAgIHRyYW5zZm9ybTogc2NhbGVYKDApOwogICAgICAgIH0KICAgICAgfQogICAgYF07cmVuZGVyKCl7bGV0IHc9e2luZm86Q2A8c3ZnIHZpZXdCb3g9IjAgMCAyMCAyMCIgZmlsbD0iY3VycmVudENvbG9yIj4KICAgICAgICA8cGF0aCBmaWxsLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik0xMCAxOGE4IDggMCAxMDAtMTYgOCA4IDAgMDAwIDE2em0xLTExYTEgMSAwIDEwLTIgMHYySDdhMSAxIDAgMTAwIDJoMnYyYTEgMSAwIDEwMiAwdi0yaDJhMSAxIDAgMTAwLTJoLTJWN3oiIGNsaXAtcnVsZT0iZXZlbm9kZCIvPgogICAgICA8L3N2Zz5gLHN1Y2Nlc3M6Q2A8c3ZnIHZpZXdCb3g9IjAgMCAyMCAyMCIgZmlsbD0iY3VycmVudENvbG9yIj4KICAgICAgICA8cGF0aCBmaWxsLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik0xMCAxOGE4IDggMCAxMDAtMTYgOCA4IDAgMDAwIDE2em0zLjcwNy05LjI5M2ExIDEgMCAwMC0xLjQxNC0xLjQxNEw5IDEwLjU4NiA3LjcwNyA5LjI5M2ExIDEgMCAwMC0xLjQxNCAxLjQxNGwyIDJhMSAxIDAgMDAxLjQxNCAwbDQtNHoiIGNsaXAtcnVsZT0iZXZlbm9kZCIvPgogICAgICA8L3N2Zz5gLHdhcm5pbmc6Q2A8c3ZnIHZpZXdCb3g9IjAgMCAyMCAyMCIgZmlsbD0iY3VycmVudENvbG9yIj4KICAgICAgICA8cGF0aCBmaWxsLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik04LjI1NyAzLjA5OWMuNzY1LTEuMzYgMi43MjItMS4zNiAzLjQ4NiAwbDUuNTggOS45MmMuNzUgMS4zMzQtLjIxMyAyLjk4LTEuNzQyIDIuOThINC40MmMtMS41MyAwLTIuNDkzLTEuNjQ2LTEuNzQzLTIuOThsNS41OC05Ljkyek0xMSAxM2ExIDEgMCAxMS0yIDAgMSAxIDAgMDEyIDB6bS0xLThhMSAxIDAgMDAtMSAxdjNhMSAxIDAgMDAyIDBWNmExIDEgMCAwMC0xLTF6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiLz4KICAgICAgPC9zdmc+YCxlcnJvcjpDYDxzdmcgdmlld0JveD0iMCAwIDIwIDIwIiBmaWxsPSJjdXJyZW50Q29sb3IiPgogICAgICAgIDxwYXRoIGZpbGwtcnVsZT0iZXZlbm9kZCIgZD0iTTEwIDE4YTggOCAwIDEwMC0xNiA4IDggMCAwMDAgMTZ6TTguNzA3IDcuMjkzYTEgMSAwIDAwLTEuNDE0IDEuNDE0TDguNTg2IDEwbC0xLjI5MyAxLjI5M2ExIDEgMCAxMDEuNDE0IDEuNDE0TDEwIDExLjQxNGwxLjI5MyAxLjI5M2ExIDEgMCAwMDEuNDE0LTEuNDE0TDExLjQxNCAxMGwxLjI5My0xLjI5M2ExIDEgMCAwMC0xLjQxNC0xLjQxNEwxMCA4LjU4NiA4LjcwNyA3LjI5M3oiIGNsaXAtcnVsZT0iZXZlbm9kZCIvPgogICAgICA8L3N2Zz5gfTtyZXR1cm4gQ2AKICAgICAgPGRpdiBjbGFzcz0idG9hc3QiIEBjbGljaz0ke3RoaXMuZGlzbWlzc30+CiAgICAgICAgPGRpdiBjbGFzcz0iaWNvbiI+CiAgICAgICAgICAke3dbdGhpcy50eXBlXX0KICAgICAgICA8L2Rpdj4KICAgICAgICA8ZGl2IGNsYXNzPSJtZXNzYWdlIj4ke3RoaXMubWVzc2FnZX08L2Rpdj4KICAgICAgICA8ZGl2IGNsYXNzPSJjbG9zZSI+CiAgICAgICAgICA8c3ZnIHZpZXdCb3g9IjAgMCAxNiAxNiIgZmlsbD0iY3VycmVudENvbG9yIj4KICAgICAgICAgICAgPHBhdGggZD0iTTQuNjQ2IDQuNjQ2YS41LjUgMCAwIDEgLjcwOCAwTDggNy4yOTNsMi42NDYtMi42NDdhLjUuNSAwIDAgMSAuNzA4LjcwOEw4LjcwNyA4bDIuNjQ3IDIuNjQ2YS41LjUgMCAwIDEtLjcwOC43MDhMOCA4LjcwN2wtMi42NDYgMi42NDdhLjUuNSAwIDAgMS0uNzA4LS43MDhMNy4yOTMgOCA0LjY0NiA1LjM1NGEuNS41IDAgMCAxIDAtLjcwOHoiLz4KICAgICAgICAgIDwvc3ZnPgogICAgICAgIDwvZGl2PgogICAgICAgICR7dGhpcy5kdXJhdGlvbj4wP0NgCiAgICAgICAgICA8ZGl2IGNsYXNzPSJwcm9ncmVzcyI+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9InByb2dyZXNzLWJhciIgc3R5bGU9ImFuaW1hdGlvbi1kdXJhdGlvbjogJHt0aGlzLmR1cmF0aW9ufW1zIj48L2Rpdj4KICAgICAgICAgIDwvZGl2PgogICAgICAgIGA6IiJ9CiAgICAgIDwvZGl2PgogICAgYH1hc3luYyBkaXNtaXNzKCl7dGhpcy5pc1Zpc2libGU9ITEsYXdhaXQgbmV3IFByb21pc2Uoaz0+c2V0VGltZW91dChrLDMwMCkpLHRoaXMucmVtb3ZlKCk7bGV0IHc9dGhpcy5wYXJlbnRFbGVtZW50O2lmKHcmJncuY2hpbGRyZW4ubGVuZ3RoPT09MCl7dy5yZW1vdmUoKTtmb3IobGV0W2ssT11vZiB5LnRvYXN0Q29udGFpbmVycy5lbnRyaWVzKCkpaWYoTz09PXcpe3kudG9hc3RDb250YWluZXJzLmRlbGV0ZShrKTticmVha319fWZpcnN0VXBkYXRlZCgpe3RoaXMuc2V0QXR0cmlidXRlKCJ0eXBlIix0aGlzLnR5cGUpfXN0YXRpY3tNYyhpLHIpfX07cmV0dXJuIHk9aX0pKCl9KTt2YXIgbDByPXAoKCk9PntaNmUoKX0pO3ZhciBjMHI9cCgoKT0+e0JjcigpO1VjcigpO1FjcigpO3IwcigpO24wcigpO2wwcigpfSk7dmFyIGQwcj1wKCgpPT57aWgoKX0pO3ZhciB1MHI9cCgoKT0+e09kKCl9KTt2YXIgcDByPXAoKCk9PntkMHIoKTt1MHIoKX0pO3ZhciBoMHI9cCgoKT0+e00xKCl9KTt2YXIgZjByPXAoKCk9PntDTigpfSk7dmFyIG0wcj1wKCgpPT57dTZlKCl9KTt2YXIgZzByPXAoKCk9PntGTigpfSk7dmFyIGIwcj1wKCgpPT57azZlKCl9KTt2YXIgdjByLHgwcj1wKCgpPT57eGUoKTtwMSgpO09pKCk7aWgoKTtONCgpO09kKCk7djByPSgpPT5DYAogIDxkZWVzLWRlbW93cmFwcGVyPgogICAgPHN0eWxlPgogICAgICAke29lYAogICAgICAgIC5kZW1vLWNvbnRhaW5lciB7CiAgICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgICAgIGdhcDogMjRweDsKICAgICAgICAgIHBhZGRpbmc6IDI0cHg7CiAgICAgICAgICBtYXgtd2lkdGg6IDEyMDBweDsKICAgICAgICAgIG1hcmdpbjogMCBhdXRvOwogICAgICAgIH0KICAgICAgICAKICAgICAgICBkZWVzLXBhbmVsIHsKICAgICAgICAgIG1hcmdpbi1ib3R0b206IDI0cHg7CiAgICAgICAgfQogICAgICAgIAogICAgICAgIGRlZXMtcGFuZWw6bGFzdC1jaGlsZCB7CiAgICAgICAgICBtYXJnaW4tYm90dG9tOiAwOwogICAgICAgIH0KICAgICAgICAKICAgICAgICAuZ3JpZC1sYXlvdXQgewogICAgICAgICAgZGlzcGxheTogZ3JpZDsKICAgICAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogMWZyIDFmcjsKICAgICAgICAgIGdhcDogMTZweDsKICAgICAgICB9CiAgICAgICAgCiAgICAgICAgQG1lZGlhIChtYXgtd2lkdGg6IDc2OHB4KSB7CiAgICAgICAgICAuZ3JpZC1sYXlvdXQgewogICAgICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDFmcjsKICAgICAgICAgIH0KICAgICAgICB9CiAgICAgICAgCiAgICAgICAgLm91dHB1dC1wcmV2aWV3IHsKICAgICAgICAgIG1hcmdpbi10b3A6IDE2cHg7CiAgICAgICAgICBwYWRkaW5nOiAxNnB4OwogICAgICAgICAgYmFja2dyb3VuZDogI2YzZjRmNjsKICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDRweDsKICAgICAgICAgIGZvbnQtc2l6ZTogMTJweDsKICAgICAgICAgIGNvbG9yOiAjMzc0MTUxOwogICAgICAgICAgd29yZC1icmVhazogYnJlYWstYWxsOwogICAgICAgICAgbWF4LWhlaWdodDogMjAwcHg7CiAgICAgICAgICBvdmVyZmxvdy15OiBhdXRvOwogICAgICAgIH0KICAgICAgICAKICAgICAgICBAbWVkaWEgKHByZWZlcnMtY29sb3Itc2NoZW1lOiBkYXJrKSB7CiAgICAgICAgICAub3V0cHV0LXByZXZpZXcgewogICAgICAgICAgICBiYWNrZ3JvdW5kOiAjMmMyYzJjOwogICAgICAgICAgICBjb2xvcjogI2U0ZTRlNzsKICAgICAgICAgIH0KICAgICAgICB9CiAgICAgICAgCiAgICAgICAgLmZlYXR1cmUtbm90ZSB7CiAgICAgICAgICBtYXJnaW4tdG9wOiAxMnB4OwogICAgICAgICAgcGFkZGluZzogMTJweDsKICAgICAgICAgIGJhY2tncm91bmQ6ICNlZmY2ZmY7CiAgICAgICAgICBib3JkZXItbGVmdDogM3B4IHNvbGlkICMzYjgyZjY7CiAgICAgICAgICBib3JkZXItcmFkaXVzOiA0cHg7CiAgICAgICAgICBmb250LXNpemU6IDEzcHg7CiAgICAgICAgICBjb2xvcjogIzFlNDBhZjsKICAgICAgICB9CiAgICAgICAgCiAgICAgICAgQG1lZGlhIChwcmVmZXJzLWNvbG9yLXNjaGVtZTogZGFyaykgewogICAgICAgICAgLmZlYXR1cmUtbm90ZSB7CiAgICAgICAgICAgIGJhY2tncm91bmQ6ICMxZTNhNWY7CiAgICAgICAgICAgIGNvbG9yOiAjOTNjNWZkOwogICAgICAgICAgfQogICAgICAgIH0KICAgICAgYH0KICAgIDwvc3R5bGU+CiAgICAKICAgIDxkaXYgY2xhc3M9ImRlbW8tY29udGFpbmVyIj4KICAgICAgPGRlZXMtcGFuZWwgLnRpdGxlPSR7IjEuIEJhc2ljIExpc3QgSW5wdXQifSAuc3VidGl0bGU9JHsiU2ltcGxlIGxpc3QgbWFuYWdlbWVudCB3aXRoIGFkZCwgZWRpdCwgYW5kIGRlbGV0ZSJ9PgogICAgICAgIDxkZWVzLWlucHV0LWxpc3QKICAgICAgICAgIC5sYWJlbD0keyJTaG9wcGluZyBMaXN0In0KICAgICAgICAgIC5wbGFjZWhvbGRlcj0keyJBZGQgaXRlbSB0byB5b3VyIGxpc3QuLi4ifQogICAgICAgICAgLnZhbHVlPSR7WyJNaWxrIiwiQnJlYWQiLCJFZ2dzIiwiQ2hlZXNlIl19CiAgICAgICAgICAuZGVzY3JpcHRpb249JHsiRG91YmxlLWNsaWNrIHRvIGVkaXQgaXRlbXMsIG9yIHVzZSB0aGUgZWRpdCBidXR0b24ifQogICAgICAgID48L2RlZXMtaW5wdXQtbGlzdD4KICAgICAgICA8ZGl2IGNsYXNzPSJmZWF0dXJlLW5vdGUiPgogICAgICAgICAg8J+SoSBEb3VibGUtY2xpY2sgYW55IGl0ZW0gdG8gcXVpY2tseSBlZGl0IGl0IGlubGluZQogICAgICAgIDwvZGl2PgogICAgICA8L2RlZXMtcGFuZWw+CgogICAgICA8ZGVlcy1wYW5lbCAudGl0bGU9JHsiMi4gU29ydGFibGUgTGlzdCJ9IC5zdWJ0aXRsZT0keyJEcmFnIGFuZCBkcm9wIHRvIHJlb3JkZXIgaXRlbXMifT4KICAgICAgICA8ZGVlcy1pbnB1dC1saXN0CiAgICAgICAgICAubGFiZWw9JHsiVGFzayBQcmlvcml0eSJ9CiAgICAgICAgICAucGxhY2Vob2xkZXI9JHsiQWRkIGEgdGFzay4uLiJ9CiAgICAgICAgICAuc29ydGFibGU9JHshMH0KICAgICAgICAgIC52YWx1ZT0ke1siUmV2aWV3IHB1bGwgcmVxdWVzdHMiLCJGaXggY3JpdGljYWwgYnVnIiwiVXBkYXRlIGRvY3VtZW50YXRpb24iLCJEZXBsb3kgdG8gcHJvZHVjdGlvbiIsIlRlYW0gc3RhbmR1cCBtZWV0aW5nIl19CiAgICAgICAgICAuZGVzY3JpcHRpb249JHsiRHJhZyBpdGVtcyB1c2luZyB0aGUgaGFuZGxlIHRvIHJlb3JkZXIgdGhlbSJ9CiAgICAgICAgPjwvZGVlcy1pbnB1dC1saXN0PgogICAgICAgIDxkaXYgY2xhc3M9ImZlYXR1cmUtbm90ZSI+CiAgICAgICAgICDwn5SEIERyYWcgdGhlIGdyaXAgaGFuZGxlIHRvIHJlb3JkZXIgdGFza3MgYnkgcHJpb3JpdHkKICAgICAgICA8L2Rpdj4KICAgICAgPC9kZWVzLXBhbmVsPgoKICAgICAgPGRlZXMtcGFuZWwgLnRpdGxlPSR7IjMuIFZhbGlkYXRpb24gJiBDb25zdHJhaW50cyJ9IC5zdWJ0aXRsZT0keyJMaXN0cyB3aXRoIG1pbmltdW0vbWF4aW11bSBpdGVtcyBhbmQgZHVwbGljYXRlIHByZXZlbnRpb24ifT4KICAgICAgICA8ZGl2IGNsYXNzPSJncmlkLWxheW91dCI+CiAgICAgICAgICA8ZGVlcy1pbnB1dC1saXN0CiAgICAgICAgICAgIC5sYWJlbD0keyJUZWFtIE1lbWJlcnMgKE1pbiAyLCBNYXggNSkifQogICAgICAgICAgICAucGxhY2Vob2xkZXI9JHsiQWRkIHRlYW0gbWVtYmVyLi4uIn0KICAgICAgICAgICAgLm1pbkl0ZW1zPSR7Mn0KICAgICAgICAgICAgLm1heEl0ZW1zPSR7NX0KICAgICAgICAgICAgLnZhbHVlPSR7WyJBbGljZSIsIkJvYiJdfQogICAgICAgICAgICAucmVxdWlyZWQ9JHshMH0KICAgICAgICAgICAgLmRlc2NyaXB0aW9uPSR7IkFkZCAyLTUgdGVhbSBtZW1iZXJzIn0KICAgICAgICAgID48L2RlZXMtaW5wdXQtbGlzdD4KICAgICAgICAgIAogICAgICAgICAgPGRlZXMtaW5wdXQtbGlzdAogICAgICAgICAgICAubGFiZWw9JHsiVW5pcXVlIFRhZ3MgKE5vIER1cGxpY2F0ZXMpIn0KICAgICAgICAgICAgLnBsYWNlaG9sZGVyPSR7IkFkZCB1bmlxdWUgdGFnLi4uIn0KICAgICAgICAgICAgLmFsbG93RHVwbGljYXRlcz0keyExfQogICAgICAgICAgICAudmFsdWU9JHtbImZyb250ZW5kIiwiYmFja2VuZCIsImRhdGFiYXNlIl19CiAgICAgICAgICAgIC5kZXNjcmlwdGlvbj0keyJEdXBsaWNhdGUgaXRlbXMgYXJlIG5vdCBhbGxvd2VkIn0KICAgICAgICAgID48L2RlZXMtaW5wdXQtbGlzdD4KICAgICAgICA8L2Rpdj4KICAgICAgPC9kZWVzLXBhbmVsPgoKICAgICAgPGRlZXMtcGFuZWwgLnRpdGxlPSR7IjQuIERlbGV0ZSBDb25maXJtYXRpb24ifSAuc3VidGl0bGU9JHsiUmVxdWlyZSBjb25maXJtYXRpb24gYmVmb3JlIGRlbGV0aW5nIGl0ZW1zIn0+CiAgICAgICAgPGRlZXMtaW5wdXQtbGlzdAogICAgICAgICAgLmxhYmVsPSR7IkltcG9ydGFudCBEb2N1bWVudHMifQogICAgICAgICAgLnBsYWNlaG9sZGVyPSR7IkFkZCBkb2N1bWVudCBuYW1lLi4uIn0KICAgICAgICAgIC5jb25maXJtRGVsZXRlPSR7ITB9CiAgICAgICAgICAudmFsdWU9JHtbIkNvbnRyYWN0XzIwMjQucGRmIiwiRmluYW5jaWFsX1JlcG9ydF9RMy54bHN4IiwiUHJvamVjdF9Qcm9wb3NhbC5kb2N4IiwiTWVldGluZ19Ob3Rlcy50eHQiXX0KICAgICAgICAgIC5kZXNjcmlwdGlvbj0keyJEZWxldGlvbiByZXF1aXJlcyBjb25maXJtYXRpb24gZm9yIHNhZmV0eSJ9CiAgICAgICAgPjwvZGVlcy1pbnB1dC1saXN0PgogICAgICA8L2RlZXMtcGFuZWw+CgogICAgICA8ZGVlcy1wYW5lbCAudGl0bGU9JHsiNS4gRGlzYWJsZWQgU3RhdGUifSAuc3VidGl0bGU9JHsiUmVhZC1vbmx5IGxpc3QgZGlzcGxheSJ9PgogICAgICAgIDxkZWVzLWlucHV0LWxpc3QKICAgICAgICAgIC5sYWJlbD0keyJTeXN0ZW0gRGVmYXVsdHMifQogICAgICAgICAgLnZhbHVlPSR7WyJEZWZhdWx0IFNldHRpbmcgMSIsIkRlZmF1bHQgU2V0dGluZyAyIiwiRGVmYXVsdCBTZXR0aW5nIDMiXX0KICAgICAgICAgIC5kaXNhYmxlZD0keyEwfQogICAgICAgICAgLmRlc2NyaXB0aW9uPSR7IlRoZXNlIGl0ZW1zIGNhbm5vdCBiZSBtb2RpZmllZCJ9CiAgICAgICAgPjwvZGVlcy1pbnB1dC1saXN0PgogICAgICA8L2RlZXMtcGFuZWw+CgogICAgICA8ZGVlcy1wYW5lbCAudGl0bGU9JHsiNi4gRm9ybSBJbnRlZ3JhdGlvbiJ9IC5zdWJ0aXRsZT0keyJMaXN0IGlucHV0IHdvcmtpbmcgd2l0aGluIGEgZm9ybSBjb250ZXh0In0+CiAgICAgICAgPGRlZXMtZm9ybT4KICAgICAgICAgIDxkZWVzLWlucHV0LXRleHQKICAgICAgICAgICAgLmxhYmVsPSR7IlJlY2lwZSBOYW1lIn0KICAgICAgICAgICAgLnBsYWNlaG9sZGVyPSR7Ik15IEFtYXppbmcgUmVjaXBlIn0KICAgICAgICAgICAgLnJlcXVpcmVkPSR7ITB9CiAgICAgICAgICAgIC5rZXk9JHsibmFtZSJ9CiAgICAgICAgICA+PC9kZWVzLWlucHV0LXRleHQ+CiAgICAgICAgICAKICAgICAgICAgIDxkaXYgY2xhc3M9ImdyaWQtbGF5b3V0Ij4KICAgICAgICAgICAgPGRlZXMtaW5wdXQtbGlzdAogICAgICAgICAgICAgIC5sYWJlbD0keyJJbmdyZWRpZW50cyJ9CiAgICAgICAgICAgICAgLnBsYWNlaG9sZGVyPSR7IkFkZCBpbmdyZWRpZW50Li4uIn0KICAgICAgICAgICAgICAucmVxdWlyZWQ9JHshMH0KICAgICAgICAgICAgICAubWluSXRlbXM9JHszfQogICAgICAgICAgICAgIC5rZXk9JHsiaW5ncmVkaWVudHMifQogICAgICAgICAgICAgIC5zb3J0YWJsZT0keyEwfQogICAgICAgICAgICAgIC52YWx1ZT0ke1siMiBjdXBzIGZsb3VyIiwiMSBjdXAgc3VnYXIiLCIzIGVnZ3MiXX0KICAgICAgICAgICAgICAuZGVzY3JpcHRpb249JHsiQWRkIGF0IGxlYXN0IDMgaW5ncmVkaWVudHMifQogICAgICAgICAgICA+PC9kZWVzLWlucHV0LWxpc3Q+CiAgICAgICAgICAgIAogICAgICAgICAgICA8ZGVlcy1pbnB1dC1saXN0CiAgICAgICAgICAgICAgLmxhYmVsPSR7Ikluc3RydWN0aW9ucyJ9CiAgICAgICAgICAgICAgLnBsYWNlaG9sZGVyPSR7IkFkZCBpbnN0cnVjdGlvbiBzdGVwLi4uIn0KICAgICAgICAgICAgICAucmVxdWlyZWQ9JHshMH0KICAgICAgICAgICAgICAubWluSXRlbXM9JHsyfQogICAgICAgICAgICAgIC5rZXk9JHsiaW5zdHJ1Y3Rpb25zIn0KICAgICAgICAgICAgICAuc29ydGFibGU9JHshMH0KICAgICAgICAgICAgICAudmFsdWU9JHtbIlByZWhlYXQgb3ZlbiB0byAzNTBceEIwRiIsIk1peCBkcnkgaW5ncmVkaWVudHMiXX0KICAgICAgICAgICAgICAuZGVzY3JpcHRpb249JHsiQWRkIGNvb2tpbmcgaW5zdHJ1Y3Rpb25zIGluIG9yZGVyIn0KICAgICAgICAgICAgPjwvZGVlcy1pbnB1dC1saXN0PgogICAgICAgICAgPC9kaXY+CiAgICAgICAgICAKICAgICAgICAgIDxkZWVzLWlucHV0LXRleHQKICAgICAgICAgICAgLmxhYmVsPSR7Ik5vdGVzIn0KICAgICAgICAgICAgLmlucHV0VHlwZT0keyJ0ZXh0YXJlYSJ9CiAgICAgICAgICAgIC5wbGFjZWhvbGRlcj0keyJBbnkgc3BlY2lhbCBub3RlcyBvciB0aXBzLi4uIn0KICAgICAgICAgICAgLmtleT0keyJub3RlcyJ9CiAgICAgICAgICA+PC9kZWVzLWlucHV0LXRleHQ+CiAgICAgICAgICAKICAgICAgICAgIDxkZWVzLWZvcm0tc3VibWl0IC50ZXh0PSR7IlNhdmUgUmVjaXBlIn0+PC9kZWVzLWZvcm0tc3VibWl0PgogICAgICAgIDwvZGVlcy1mb3JtPgogICAgICA8L2RlZXMtcGFuZWw+CgogICAgICA8ZGVlcy1wYW5lbCAudGl0bGU9JHsiNy4gSW50ZXJhY3RpdmUgRGVtbyJ9IC5zdWJ0aXRsZT0keyJCdWlsZCB5b3VyIG93biBmZWF0dXJlIGxpc3QgYW5kIHNlZSB0aGUgZGF0YSJ9PgogICAgICAgIDxkZWVzLWlucHV0LWxpc3QKICAgICAgICAgIGlkPSJpbnRlcmFjdGl2ZS1saXN0IgogICAgICAgICAgLmxhYmVsPSR7IlByb2R1Y3QgRmVhdHVyZXMifQogICAgICAgICAgLnBsYWNlaG9sZGVyPSR7IkFkZCBhIGZlYXR1cmUuLi4ifQogICAgICAgICAgLnNvcnRhYmxlPSR7ITB9CiAgICAgICAgICAuY29uZmlybURlbGV0ZT0keyExfQogICAgICAgICAgLmFsbG93RHVwbGljYXRlcz0keyExfQogICAgICAgICAgLm1heEl0ZW1zPSR7MTB9CiAgICAgICAgICBAY2hhbmdlPSR7ZT0+e2xldCB0PWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoIiNsaXN0LWpzb24iKTtpZih0KXtsZXQgcj17aXRlbXM6ZS5kZXRhaWwudmFsdWUsY291bnQ6ZS5kZXRhaWwudmFsdWUubGVuZ3RoLHRpbWVzdGFtcDpuZXcgRGF0ZSgpLnRvSVNPU3RyaW5nKCl9O3QudGV4dENvbnRlbnQ9SlNPTi5zdHJpbmdpZnkocixudWxsLDIpfX19CiAgICAgICAgPjwvZGVlcy1pbnB1dC1saXN0PgogICAgICAgIAogICAgICAgIDxkaXYgY2xhc3M9Im91dHB1dC1wcmV2aWV3IiBpZD0ibGlzdC1qc29uIj4KICAgICAgICAgIHsKICAgICAgICAgICAgIml0ZW1zIjogW10sCiAgICAgICAgICAgICJjb3VudCI6IDAsCiAgICAgICAgICAgICJ0aW1lc3RhbXAiOiAiJHtuZXcgRGF0ZSgpLnRvSVNPU3RyaW5nKCl9IgogICAgICAgICAgfQogICAgICAgIDwvZGl2PgogICAgICAgIAogICAgICAgIDxkaXYgY2xhc3M9ImZlYXR1cmUtbm90ZSI+CiAgICAgICAgICDinKggQWRkLCBlZGl0LCByZW1vdmUsIGFuZCByZW9yZGVyIGl0ZW1zIHRvIHNlZSB0aGUgSlNPTiBvdXRwdXQgdXBkYXRlIGluIHJlYWwtdGltZQogICAgICAgIDwvZGl2PgogICAgICA8L2RlZXMtcGFuZWw+CgogICAgICA8ZGVlcy1wYW5lbCAudGl0bGU9JHsiOC4gQWR2YW5jZWQgQ29uZmlndXJhdGlvbiJ9IC5zdWJ0aXRsZT0keyJDb21iaW5lIGFsbCBmZWF0dXJlcyBmb3IgY29tcGxleCB1c2UgY2FzZXMifT4KICAgICAgICA8ZGVlcy1pbnB1dC1saXN0CiAgICAgICAgICAubGFiZWw9JHsiUHJvamVjdCBNaWxlc3RvbmVzIn0KICAgICAgICAgIC5wbGFjZWhvbGRlcj0keyJBZGQgbWlsZXN0b25lLi4uIn0KICAgICAgICAgIC52YWx1ZT0ke1siUHJvamVjdCBLaWNrb2ZmIC0gV2VlayAxIiwiUmVxdWlyZW1lbnRzIEdhdGhlcmluZyAtIFdlZWsgMi0zIiwiRGVzaWduIFBoYXNlIC0gV2VlayA0LTYiLCJEZXZlbG9wbWVudCBTcHJpbnQgMSAtIFdlZWsgNy05IiwiVGVzdGluZyAmIFFBIC0gV2VlayAxMC0xMSIsIkRlcGxveW1lbnQgLSBXZWVrIDEyIl19CiAgICAgICAgICAuc29ydGFibGU9JHshMH0KICAgICAgICAgIC5jb25maXJtRGVsZXRlPSR7ITB9CiAgICAgICAgICAuYWxsb3dEdXBsaWNhdGVzPSR7ITF9CiAgICAgICAgICAubWluSXRlbXM9JHszfQogICAgICAgICAgLm1heEl0ZW1zPSR7MTJ9CiAgICAgICAgICAucmVxdWlyZWQ9JHshMH0KICAgICAgICAgIC5kZXNjcmlwdGlvbj0keyJNYW5hZ2UgcHJvamVjdCBtaWxlc3RvbmVzICgzLTEyIGl0ZW1zLCBzb3J0YWJsZSwgbm8gZHVwbGljYXRlcykifQogICAgICAgID48L2RlZXMtaW5wdXQtbGlzdD4KICAgICAgPC9kZWVzLXBhbmVsPgoKICAgICAgPGRlZXMtcGFuZWwgLnRpdGxlPSR7IjkuIEVtcHR5IFN0YXRlIn0gLnN1YnRpdGxlPSR7IkhvdyB0aGUgY29tcG9uZW50IGxvb2tzIHdpdGggbm8gaXRlbXMifT4KICAgICAgICA8ZGVlcy1pbnB1dC1saXN0CiAgICAgICAgICAubGFiZWw9JHsiWW91ciBJZGVhcyJ9CiAgICAgICAgICAucGxhY2Vob2xkZXI9JHsiU2hhcmUgeW91ciBpZGVhcy4uLiJ9CiAgICAgICAgICAudmFsdWU9JHtbXX0KICAgICAgICAgIC5kZXNjcmlwdGlvbj0keyJTdGFydCBhZGRpbmcgaXRlbXMgdG8gYnVpbGQgeW91ciBsaXN0In0KICAgICAgICA+PC9kZWVzLWlucHV0LWxpc3Q+CiAgICAgIDwvZGVlcy1wYW5lbD4KICAgIDwvZGl2PgogIDwvZGVlcy1kZW1vd3JhcHBlcj4KYH0pO3ZhciBSaSxkcix5MHIsdzByPXAoKCk9Pnt4ZSgpO00xKCk7b3IoKTtJNCgpO3gwcigpO0plKCk7Umk9ZnVuY3Rpb24oZSx0LHIsaSxhLG4pe2Z1bmN0aW9uIG8oeSl7aWYoeSE9PXZvaWQgMCYmdHlwZW9mIHkhPSJmdW5jdGlvbiIpdGhyb3cgbmV3IFR5cGVFcnJvcigiRnVuY3Rpb24gZXhwZWN0ZWQiKTtyZXR1cm4geX1mb3IodmFyIHM9aS5raW5kLGw9cz09PSJnZXR0ZXIiPyJnZXQiOnM9PT0ic2V0dGVyIj8ic2V0IjoidmFsdWUiLGM9IXQmJmU/aS5zdGF0aWM/ZTplLnByb3RvdHlwZTpudWxsLHU9dHx8KGM/T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihjLGkubmFtZSk6e30pLGQsaD0hMSxmPXIubGVuZ3RoLTE7Zj49MDtmLS0pe3ZhciB4PXt9O2Zvcih2YXIgdiBpbiBpKXhbdl09dj09PSJhY2Nlc3MiP3t9Omlbdl07Zm9yKHZhciB2IGluIGkuYWNjZXNzKXguYWNjZXNzW3ZdPWkuYWNjZXNzW3ZdO3guYWRkSW5pdGlhbGl6ZXI9ZnVuY3Rpb24oeSl7aWYoaCl0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgYWRkIGluaXRpYWxpemVycyBhZnRlciBkZWNvcmF0aW9uIGhhcyBjb21wbGV0ZWQiKTtuLnB1c2gobyh5fHxudWxsKSl9O3ZhciBiPSgwLHJbZl0pKHM9PT0iYWNjZXNzb3IiP3tnZXQ6dS5nZXQsc2V0OnUuc2V0fTp1W2xdLHgpO2lmKHM9PT0iYWNjZXNzb3IiKXtpZihiPT09dm9pZCAwKWNvbnRpbnVlO2lmKGI9PT1udWxsfHx0eXBlb2YgYiE9Im9iamVjdCIpdGhyb3cgbmV3IFR5cGVFcnJvcigiT2JqZWN0IGV4cGVjdGVkIik7KGQ9byhiLmdldCkpJiYodS5nZXQ9ZCksKGQ9byhiLnNldCkpJiYodS5zZXQ9ZCksKGQ9byhiLmluaXQpKSYmYS51bnNoaWZ0KGQpfWVsc2UoZD1vKGIpKSYmKHM9PT0iZmllbGQiP2EudW5zaGlmdChkKTp1W2xdPWQpfWMmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShjLGkubmFtZSx1KSxoPSEwfSxkcj1mdW5jdGlvbihlLHQscil7Zm9yKHZhciBpPWFyZ3VtZW50cy5sZW5ndGg+MixhPTA7YTx0Lmxlbmd0aDthKyspcj1pP3RbYV0uY2FsbChlLHIpOnRbYV0uY2FsbChlKTtyZXR1cm4gaT9yOnZvaWQgMH0seTByPSgoKT0+e2xldCBlPVt5ZSgiZGVlcy1pbnB1dC1saXN0IildLHQscj1bXSxpLGE9b3QsbixvPVtdLHM9W10sbCxjPVtdLHU9W10sZCxoPVtdLGY9W10seCx2PVtdLGI9W10seSx3PVtdLGs9W10sTyx6PVtdLE09W10sRixEPVtdLE49W10sUixfPVtdLFM9W10sJCxUPVtdLEU9W10scSxCPVtdLEc9W10sZWUsUD1bXSxnZT1bXSx3ZSxJPVtdLG5lPVtdLGtlLFk9W10sQT1bXSxMLFU9W10sVj1bXSxYLGRlPVtdLHZlPVtdLExlLFc9W10sSD1bXSx0ZSxiZT1bXSx1ZT1bXTt2YXIgQ2U9Y2xhc3MgZXh0ZW5kcyBhe3N0YXRpY3tpPXRoaXN9c3RhdGlje2xldCBoZT10eXBlb2YgU3ltYm9sPT0iZnVuY3Rpb24iJiZTeW1ib2wubWV0YWRhdGE/T2JqZWN0LmNyZWF0ZShhW1N5bWJvbC5tZXRhZGF0YV0/P251bGwpOnZvaWQgMDtuPVtqKHt0eXBlOkFycmF5fSldLGw9W2ooe3R5cGU6U3RyaW5nfSldLGQ9W2ooe3R5cGU6TnVtYmVyfSldLHg9W2ooe3R5cGU6TnVtYmVyfSldLHk9W2ooe3R5cGU6Qm9vbGVhbn0pXSxPPVtqKHt0eXBlOkJvb2xlYW59KV0sRj1baih7dHlwZTpCb29sZWFufSldLFI9W2ooe3R5cGU6U3RyaW5nfSldLCQ9W2ZlKCldLHE9W2ZlKCldLGVlPVtmZSgpXSx3ZT1bZmUoKV0sa2U9W2ZlKCldLEw9W2ZlKCldLFg9W2ZlKCldLExlPVtmZSgpXSx0ZT1bZmUoKV0sUmkodGhpcyxudWxsLG4se2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJ2YWx1ZSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aWU9PiJ2YWx1ZSJpbiBpZSxnZXQ6aWU9PmllLnZhbHVlLHNldDooaWUsU2UpPT57aWUudmFsdWU9U2V9fSxtZXRhZGF0YTpoZX0sbyxzKSxSaSh0aGlzLG51bGwsbCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InBsYWNlaG9sZGVyIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppZT0+InBsYWNlaG9sZGVyImluIGllLGdldDppZT0+aWUucGxhY2Vob2xkZXIsc2V0OihpZSxTZSk9PntpZS5wbGFjZWhvbGRlcj1TZX19LG1ldGFkYXRhOmhlfSxjLHUpLFJpKHRoaXMsbnVsbCxkLHtraW5kOiJhY2Nlc3NvciIsbmFtZToibWF4SXRlbXMiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmllPT4ibWF4SXRlbXMiaW4gaWUsZ2V0OmllPT5pZS5tYXhJdGVtcyxzZXQ6KGllLFNlKT0+e2llLm1heEl0ZW1zPVNlfX0sbWV0YWRhdGE6aGV9LGgsZiksUmkodGhpcyxudWxsLHgse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJtaW5JdGVtcyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aWU9PiJtaW5JdGVtcyJpbiBpZSxnZXQ6aWU9PmllLm1pbkl0ZW1zLHNldDooaWUsU2UpPT57aWUubWluSXRlbXM9U2V9fSxtZXRhZGF0YTpoZX0sdixiKSxSaSh0aGlzLG51bGwseSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImFsbG93RHVwbGljYXRlcyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aWU9PiJhbGxvd0R1cGxpY2F0ZXMiaW4gaWUsZ2V0OmllPT5pZS5hbGxvd0R1cGxpY2F0ZXMsc2V0OihpZSxTZSk9PntpZS5hbGxvd0R1cGxpY2F0ZXM9U2V9fSxtZXRhZGF0YTpoZX0sdyxrKSxSaSh0aGlzLG51bGwsTyx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InNvcnRhYmxlIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppZT0+InNvcnRhYmxlImluIGllLGdldDppZT0+aWUuc29ydGFibGUsc2V0OihpZSxTZSk9PntpZS5zb3J0YWJsZT1TZX19LG1ldGFkYXRhOmhlfSx6LE0pLFJpKHRoaXMsbnVsbCxGLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiY29uZmlybURlbGV0ZSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aWU9PiJjb25maXJtRGVsZXRlImluIGllLGdldDppZT0+aWUuY29uZmlybURlbGV0ZSxzZXQ6KGllLFNlKT0+e2llLmNvbmZpcm1EZWxldGU9U2V9fSxtZXRhZGF0YTpoZX0sRCxOKSxSaSh0aGlzLG51bGwsUix7a2luZDoiYWNjZXNzb3IiLG5hbWU6InZhbGlkYXRpb25UZXh0IixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppZT0+InZhbGlkYXRpb25UZXh0ImluIGllLGdldDppZT0+aWUudmFsaWRhdGlvblRleHQsc2V0OihpZSxTZSk9PntpZS52YWxpZGF0aW9uVGV4dD1TZX19LG1ldGFkYXRhOmhlfSxfLFMpLFJpKHRoaXMsbnVsbCwkLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiaW5wdXRWYWx1ZSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aWU9PiJpbnB1dFZhbHVlImluIGllLGdldDppZT0+aWUuaW5wdXRWYWx1ZSxzZXQ6KGllLFNlKT0+e2llLmlucHV0VmFsdWU9U2V9fSxtZXRhZGF0YTpoZX0sVCxFKSxSaSh0aGlzLG51bGwscSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImVkaXRpbmdJbmRleCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aWU9PiJlZGl0aW5nSW5kZXgiaW4gaWUsZ2V0OmllPT5pZS5lZGl0aW5nSW5kZXgsc2V0OihpZSxTZSk9PntpZS5lZGl0aW5nSW5kZXg9U2V9fSxtZXRhZGF0YTpoZX0sQixHKSxSaSh0aGlzLG51bGwsZWUse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJlZGl0aW5nVmFsdWUiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmllPT4iZWRpdGluZ1ZhbHVlImluIGllLGdldDppZT0+aWUuZWRpdGluZ1ZhbHVlLHNldDooaWUsU2UpPT57aWUuZWRpdGluZ1ZhbHVlPVNlfX0sbWV0YWRhdGE6aGV9LFAsZ2UpLFJpKHRoaXMsbnVsbCx3ZSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImRyYWdnZWRJbmRleCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aWU9PiJkcmFnZ2VkSW5kZXgiaW4gaWUsZ2V0OmllPT5pZS5kcmFnZ2VkSW5kZXgsc2V0OihpZSxTZSk9PntpZS5kcmFnZ2VkSW5kZXg9U2V9fSxtZXRhZGF0YTpoZX0sSSxuZSksUmkodGhpcyxudWxsLGtlLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiZHJhZ092ZXJJbmRleCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aWU9PiJkcmFnT3ZlckluZGV4ImluIGllLGdldDppZT0+aWUuZHJhZ092ZXJJbmRleCxzZXQ6KGllLFNlKT0+e2llLmRyYWdPdmVySW5kZXg9U2V9fSxtZXRhZGF0YTpoZX0sWSxBKSxSaSh0aGlzLG51bGwsTCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImRyYWdTdGFydFkiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmllPT4iZHJhZ1N0YXJ0WSJpbiBpZSxnZXQ6aWU9PmllLmRyYWdTdGFydFksc2V0OihpZSxTZSk9PntpZS5kcmFnU3RhcnRZPVNlfX0sbWV0YWRhdGE6aGV9LFUsViksUmkodGhpcyxudWxsLFgse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJkcmFnQ3VycmVudFkiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmllPT4iZHJhZ0N1cnJlbnRZImluIGllLGdldDppZT0+aWUuZHJhZ0N1cnJlbnRZLHNldDooaWUsU2UpPT57aWUuZHJhZ0N1cnJlbnRZPVNlfX0sbWV0YWRhdGE6aGV9LGRlLHZlKSxSaSh0aGlzLG51bGwsTGUse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJ0YXJnZXRJbmRleCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aWU9PiJ0YXJnZXRJbmRleCJpbiBpZSxnZXQ6aWU9PmllLnRhcmdldEluZGV4LHNldDooaWUsU2UpPT57aWUudGFyZ2V0SW5kZXg9U2V9fSxtZXRhZGF0YTpoZX0sVyxIKSxSaSh0aGlzLG51bGwsdGUse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJpdGVtSGVpZ2h0IixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppZT0+Iml0ZW1IZWlnaHQiaW4gaWUsZ2V0OmllPT5pZS5pdGVtSGVpZ2h0LHNldDooaWUsU2UpPT57aWUuaXRlbUhlaWdodD1TZX19LG1ldGFkYXRhOmhlfSxiZSx1ZSksUmkobnVsbCx0PXt2YWx1ZTppfSxlLHtraW5kOiJjbGFzcyIsbmFtZTppLm5hbWUsbWV0YWRhdGE6aGV9LG51bGwsciksQ2U9aT10LnZhbHVlLGhlJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoaSxTeW1ib2wubWV0YWRhdGEse2VudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwLHZhbHVlOmhlfSl9c3RhdGljIGRlbW89djByO3N0YXRpYyBkZW1vR3JvdXBzPVsiSW5wdXQiXTsjZT1kcih0aGlzLG8sW10pO2dldCB2YWx1ZSgpe3JldHVybiB0aGlzLiNlfXNldCB2YWx1ZShoZSl7dGhpcy4jZT1oZX0jdD0oZHIodGhpcyxzKSxkcih0aGlzLGMsIkFkZCBuZXcgaXRlbS4uLiIpKTtnZXQgcGxhY2Vob2xkZXIoKXtyZXR1cm4gdGhpcy4jdH1zZXQgcGxhY2Vob2xkZXIoaGUpe3RoaXMuI3Q9aGV9I3I9KGRyKHRoaXMsdSksZHIodGhpcyxoLDApKTtnZXQgbWF4SXRlbXMoKXtyZXR1cm4gdGhpcy4jcn1zZXQgbWF4SXRlbXMoaGUpe3RoaXMuI3I9aGV9I2k9KGRyKHRoaXMsZiksZHIodGhpcyx2LDApKTtnZXQgbWluSXRlbXMoKXtyZXR1cm4gdGhpcy4jaX1zZXQgbWluSXRlbXMoaGUpe3RoaXMuI2k9aGV9I2E9KGRyKHRoaXMsYiksZHIodGhpcyx3LCExKSk7Z2V0IGFsbG93RHVwbGljYXRlcygpe3JldHVybiB0aGlzLiNhfXNldCBhbGxvd0R1cGxpY2F0ZXMoaGUpe3RoaXMuI2E9aGV9I249KGRyKHRoaXMsayksZHIodGhpcyx6LCExKSk7Z2V0IHNvcnRhYmxlKCl7cmV0dXJuIHRoaXMuI259c2V0IHNvcnRhYmxlKGhlKXt0aGlzLiNuPWhlfSNvPShkcih0aGlzLE0pLGRyKHRoaXMsRCwhMSkpO2dldCBjb25maXJtRGVsZXRlKCl7cmV0dXJuIHRoaXMuI299c2V0IGNvbmZpcm1EZWxldGUoaGUpe3RoaXMuI289aGV9I3M9KGRyKHRoaXMsTiksZHIodGhpcyxfLCIiKSk7Z2V0IHZhbGlkYXRpb25UZXh0KCl7cmV0dXJuIHRoaXMuI3N9c2V0IHZhbGlkYXRpb25UZXh0KGhlKXt0aGlzLiNzPWhlfSNsPShkcih0aGlzLFMpLGRyKHRoaXMsVCwiIikpO2dldCBpbnB1dFZhbHVlKCl7cmV0dXJuIHRoaXMuI2x9c2V0IGlucHV0VmFsdWUoaGUpe3RoaXMuI2w9aGV9I2M9KGRyKHRoaXMsRSksZHIodGhpcyxCLC0xKSk7Z2V0IGVkaXRpbmdJbmRleCgpe3JldHVybiB0aGlzLiNjfXNldCBlZGl0aW5nSW5kZXgoaGUpe3RoaXMuI2M9aGV9I2Q9KGRyKHRoaXMsRyksZHIodGhpcyxQLCIiKSk7Z2V0IGVkaXRpbmdWYWx1ZSgpe3JldHVybiB0aGlzLiNkfXNldCBlZGl0aW5nVmFsdWUoaGUpe3RoaXMuI2Q9aGV9I3U9KGRyKHRoaXMsZ2UpLGRyKHRoaXMsSSwtMSkpO2dldCBkcmFnZ2VkSW5kZXgoKXtyZXR1cm4gdGhpcy4jdX1zZXQgZHJhZ2dlZEluZGV4KGhlKXt0aGlzLiN1PWhlfSNwPShkcih0aGlzLG5lKSxkcih0aGlzLFksLTEpKTtnZXQgZHJhZ092ZXJJbmRleCgpe3JldHVybiB0aGlzLiNwfXNldCBkcmFnT3ZlckluZGV4KGhlKXt0aGlzLiNwPWhlfSNoPShkcih0aGlzLEEpLGRyKHRoaXMsVSwwKSk7Z2V0IGRyYWdTdGFydFkoKXtyZXR1cm4gdGhpcy4jaH1zZXQgZHJhZ1N0YXJ0WShoZSl7dGhpcy4jaD1oZX0jZj0oZHIodGhpcyxWKSxkcih0aGlzLGRlLDApKTtnZXQgZHJhZ0N1cnJlbnRZKCl7cmV0dXJuIHRoaXMuI2Z9c2V0IGRyYWdDdXJyZW50WShoZSl7dGhpcy4jZj1oZX0jbT0oZHIodGhpcyx2ZSksZHIodGhpcyxXLC0xKSk7Z2V0IHRhcmdldEluZGV4KCl7cmV0dXJuIHRoaXMuI219c2V0IHRhcmdldEluZGV4KGhlKXt0aGlzLiNtPWhlfSNnPShkcih0aGlzLEgpLGRyKHRoaXMsYmUsMCkpO2dldCBpdGVtSGVpZ2h0KCl7cmV0dXJuIHRoaXMuI2d9c2V0IGl0ZW1IZWlnaHQoaGUpe3RoaXMuI2c9aGV9Ym91bmRIYW5kbGVHbG9iYWxEcmFnT3Zlcj0oZHIodGhpcyx1ZSksbnVsbCk7Ym91bmRIYW5kbGVHbG9iYWxEcmFnRW5kPW51bGw7b3JpZ2luYWxJdGVtUmVjdHM9W107c3RhdGljIHN0eWxlcz1bRGUsLi4ub3QuYmFzZVN0eWxlcyxtLmRlZmF1bHRTdHlsZXMsb2VgCiAgICAgIC8qIFRPRE86IE1pZ3JhdGUgaGFyZGNvZGVkIHZhbHVlcyB0byAtLWRlZXMtKiBDU1MgdmFyaWFibGVzICovCiAgICAgIDpob3N0IHsKICAgICAgICBkaXNwbGF5OiBibG9jazsKICAgICAgICBmb250LWZhbWlseTogLWFwcGxlLXN5c3RlbSwgQmxpbmtNYWNTeXN0ZW1Gb250LCAnU2Vnb2UgVUknLCAnUm9ib3RvJywgc2Fucy1zZXJpZjsKICAgICAgfQoKICAgICAgLmlucHV0LXdyYXBwZXIgewogICAgICAgIHdpZHRoOiAxMDAlOwogICAgICB9CgogICAgICAubGlzdC1jb250YWluZXIgewogICAgICAgIGJhY2tncm91bmQ6ICR7bS5iZFRoZW1lKCJoc2woMCAwJSAxMDAlKSIsImhzbCgwIDAlIDMuOSUpIil9OwogICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICR7bS5iZFRoZW1lKCJoc2woMCAwJSA4OS44JSkiLCJoc2woMCAwJSAxNC45JSkiKX07CiAgICAgICAgYm9yZGVyLXJhZGl1czogNnB4OwogICAgICAgIG92ZXJmbG93OiBoaWRkZW47CiAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuMTVzIGVhc2U7CiAgICAgIH0KCiAgICAgIC5saXN0LWNvbnRhaW5lcjpob3Zlcjpub3QoLmRpc2FibGVkKSB7CiAgICAgICAgYm9yZGVyLWNvbG9yOiAke20uYmRUaGVtZSgiaHNsKDAgMCUgNzkuOCUpIiwiaHNsKDAgMCUgMjAuOSUpIil9OwogICAgICB9CgogICAgICAubGlzdC1jb250YWluZXI6Zm9jdXMtd2l0aGluIHsKICAgICAgICBib3JkZXItY29sb3I6ICR7bS5iZFRoZW1lKCJoc2woMjIyLjIgNDcuNCUgNTEuMiUpIiwiaHNsKDIxNy4yIDkxLjIlIDU5LjglKSIpfTsKICAgICAgICBib3gtc2hhZG93OiAwIDAgMCAzcHggJHttLmJkVGhlbWUoImhzbCgyMjIuMiA0Ny40JSA1MS4yJSAvIDAuMSkiLCJoc2woMjE3LjIgOTEuMiUgNTkuOCUgLyAwLjEpIil9OwogICAgICB9CgogICAgICAubGlzdC1jb250YWluZXIuZGlzYWJsZWQgewogICAgICAgIG9wYWNpdHk6IDAuNjsKICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkOwogICAgICB9CgogICAgICAubGlzdC1pdGVtcyB7CiAgICAgICAgbWF4LWhlaWdodDogNDAwcHg7CiAgICAgICAgb3ZlcmZsb3cteTogYXV0bzsKICAgICAgfQoKICAgICAgLmxpc3QtaXRlbSB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGdhcDogOHB4OwogICAgICAgIHBhZGRpbmc6IDEycHggMTZweDsKICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHttLmJkVGhlbWUoImhzbCgwIDAlIDg5LjglKSIsImhzbCgwIDAlIDE0LjklKSIpfTsKICAgICAgICBiYWNrZ3JvdW5kOiAke20uYmRUaGVtZSgiaHNsKDAgMCUgMTAwJSkiLCJoc2woMCAwJSAzLjklKSIpfTsKICAgICAgICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMC4ycyBlYXNlLCBiYWNrZ3JvdW5kIDAuMTVzIGVhc2UsIGJveC1zaGFkb3cgMC4xNXMgZWFzZTsKICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsgLyogUHJldmVudCBhbmltYXRpb24gZnJvbSBhZmZlY3Rpbmcgc2Nyb2xsIGJvdW5kcyAqLwogICAgICB9CgogICAgICAubGlzdC1pdGVtOmxhc3Qtb2YtdHlwZSB7CiAgICAgICAgYm9yZGVyLWJvdHRvbTogbm9uZTsKICAgICAgfQoKICAgICAgLmxpc3QtaXRlbXM6bm90KC5pcy1kcmFnZ2luZykgLmxpc3QtaXRlbTpob3Zlcjpub3QoLmRpc2FibGVkKSB7CiAgICAgICAgYmFja2dyb3VuZDogJHttLmJkVGhlbWUoImhzbCgwIDAlIDk3LjUlKSIsImhzbCgwIDAlIDYuOSUpIil9OwogICAgICB9CgogICAgICAvKiBEcmFnZ2luZyBpdGVtIC0gZm9sbG93cyBjdXJzb3IgKi8KICAgICAgLmxpc3QtaXRlbS5kcmFnZ2luZyB7CiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICAgIHotaW5kZXg6IDEwMDsKICAgICAgICBiYWNrZ3JvdW5kOiAke20uYmRUaGVtZSgiaHNsKDIxMCA0MCUgOTglKSIsImhzbCgyMTUgMjAuMiUgMTIlKSIpfTsKICAgICAgICBib3gtc2hhZG93OiAwIDRweCAxMnB4ICR7bS5iZFRoZW1lKCJyZ2JhKDAsIDAsIDAsIDAuMTUpIiwicmdiYSgwLCAwLCAwLCAwLjQpIil9OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDZweDsKICAgICAgICB0cmFuc2l0aW9uOiBib3gtc2hhZG93IDAuMTVzIGVhc2UsIGJhY2tncm91bmQgMC4xNXMgZWFzZTsKICAgICAgfQoKICAgICAgLyogSXRlbXMgdGhhdCBuZWVkIHRvIG1vdmUgdXAgdG8gbWFrZSBzcGFjZSAqLwogICAgICAubGlzdC1pdGVtLm1vdmUtdXAgewogICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWShjYWxjKC0xICogdmFyKC0taXRlbS1oZWlnaHQsIDQ4cHgpKSk7CiAgICAgIH0KCiAgICAgIC8qIEl0ZW1zIHRoYXQgbmVlZCB0byBtb3ZlIGRvd24gdG8gbWFrZSBzcGFjZSAqLwogICAgICAubGlzdC1pdGVtLm1vdmUtZG93biB7CiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKHZhcigtLWl0ZW0taGVpZ2h0LCA0OHB4KSk7CiAgICAgIH0KCgogICAgICAuZHJhZy1oYW5kbGUgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBjdXJzb3I6IG1vdmU7CiAgICAgICAgY29sb3I6ICR7bS5iZFRoZW1lKCJoc2woMCAwJSA2My45JSkiLCJoc2woMCAwJSA0NS4xJSkiKX07CiAgICAgICAgdHJhbnNpdGlvbjogY29sb3IgMC4xNXMgZWFzZTsKICAgICAgfQoKICAgICAgLmRyYWctaGFuZGxlOmhvdmVyIHsKICAgICAgICBjb2xvcjogJHttLmJkVGhlbWUoImhzbCgwIDAlIDQ1LjElKSIsImhzbCgwIDAlIDYzLjklKSIpfTsKICAgICAgfQoKICAgICAgLmRyYWctaGFuZGxlIGRlZXMtaWNvbiB7CiAgICAgICAgd2lkdGg6IDE2cHg7CiAgICAgICAgaGVpZ2h0OiAxNnB4OwogICAgICB9CgogICAgICAuaXRlbS1jb250ZW50IHsKICAgICAgICBmbGV4OiAxOwogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBtaW4td2lkdGg6IDA7CiAgICAgIH0KCiAgICAgIC5pdGVtLXRleHQgewogICAgICAgIGZsZXg6IDE7CiAgICAgICAgY29sb3I6ICR7bS5iZFRoZW1lKCJoc2woMCAwJSA5JSkiLCJoc2woMCAwJSA5NSUpIil9OwogICAgICAgIGZvbnQtc2l6ZTogMTRweDsKICAgICAgICBsaW5lLWhlaWdodDogMjBweDsKICAgICAgICB3b3JkLWJyZWFrOiBicmVhay13b3JkOwogICAgICB9CgogICAgICAuaXRlbS1lZGl0LWlucHV0IHsKICAgICAgICBmbGV4OiAxOwogICAgICAgIHBhZGRpbmc6IDRweCA4cHg7CiAgICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgICAgIGZvbnQtZmFtaWx5OiBpbmhlcml0OwogICAgICAgIGJhY2tncm91bmQ6ICR7bS5iZFRoZW1lKCJoc2woMCAwJSAxMDAlKSIsImhzbCgwIDAlIDklKSIpfTsKICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAke20uYmRUaGVtZSgiaHNsKDIyMi4yIDQ3LjQlIDUxLjIlKSIsImhzbCgyMTcuMiA5MS4yJSA1OS44JSkiKX07CiAgICAgICAgYm9yZGVyLXJhZGl1czogNHB4OwogICAgICAgIG91dGxpbmU6IG5vbmU7CiAgICAgICAgY29sb3I6ICR7bS5iZFRoZW1lKCJoc2woMCAwJSA5JSkiLCJoc2woMCAwJSA5NSUpIil9OwogICAgICB9CgogICAgICAuaXRlbS1hY3Rpb25zIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGdhcDogNHB4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgIH0KCiAgICAgIC5hY3Rpb24tYnV0dG9uIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7CiAgICAgICAgd2lkdGg6IDI4cHg7CiAgICAgICAgaGVpZ2h0OiAyOHB4OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDRweDsKICAgICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDsKICAgICAgICBib3JkZXI6IG5vbmU7CiAgICAgICAgY3Vyc29yOiBwb2ludGVyOwogICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjE1cyBlYXNlOwogICAgICAgIGNvbG9yOiAke20uYmRUaGVtZSgiaHNsKDAgMCUgNDUuMSUpIiwiaHNsKDAgMCUgNjMuOSUpIil9OwogICAgICB9CgogICAgICAuYWN0aW9uLWJ1dHRvbjpob3ZlciB7CiAgICAgICAgYmFja2dyb3VuZDogJHttLmJkVGhlbWUoImhzbCgwIDAlIDk1LjElKSIsImhzbCgwIDAlIDE0LjklKSIpfTsKICAgICAgICBjb2xvcjogJHttLmJkVGhlbWUoImhzbCgwIDAlIDklKSIsImhzbCgwIDAlIDk1JSkiKX07CiAgICAgIH0KCiAgICAgIC5hY3Rpb24tYnV0dG9uLnNhdmUgewogICAgICAgIGNvbG9yOiAke20uYmRUaGVtZSgiaHNsKDE0Mi4xIDc2LjIlIDM2LjMlKSIsImhzbCgxNDIuMSA3MC42JSA0NS4zJSkiKX07CiAgICAgIH0KCiAgICAgIC5hY3Rpb24tYnV0dG9uLnNhdmU6aG92ZXIgewogICAgICAgIGJhY2tncm91bmQ6ICR7bS5iZFRoZW1lKCJoc2woMTQyLjEgNzYuMiUgMzYuMyUgLyAwLjEpIiwiaHNsKDE0Mi4xIDcwLjYlIDQ1LjMlIC8gMC4xKSIpfTsKICAgICAgfQoKICAgICAgLmFjdGlvbi1idXR0b24uY2FuY2VsIHsKICAgICAgICBjb2xvcjogJHttLmJkVGhlbWUoImhzbCgwIDcyLjIlIDUwLjYlKSIsImhzbCgwIDYyLjglIDUwLjYlKSIpfTsKICAgICAgfQoKICAgICAgLmFjdGlvbi1idXR0b24uY2FuY2VsOmhvdmVyIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke20uYmRUaGVtZSgiaHNsKDAgNzIuMiUgNTAuNiUgLyAwLjEpIiwiaHNsKDAgNjIuOCUgNTAuNiUgLyAwLjEpIil9OwogICAgICB9CgogICAgICAuYWN0aW9uLWJ1dHRvbi5kZWxldGUgewogICAgICAgIGNvbG9yOiAke20uYmRUaGVtZSgiaHNsKDAgNzIuMiUgNTAuNiUpIiwiaHNsKDAgNjIuOCUgNTAuNiUpIil9OwogICAgICB9CgogICAgICAuYWN0aW9uLWJ1dHRvbi5kZWxldGU6aG92ZXIgewogICAgICAgIGJhY2tncm91bmQ6ICR7bS5iZFRoZW1lKCJoc2woMCA3Mi4yJSA1MC42JSAvIDAuMSkiLCJoc2woMCA2Mi44JSA1MC42JSAvIDAuMSkiKX07CiAgICAgIH0KCiAgICAgIC5hY3Rpb24tYnV0dG9uIGRlZXMtaWNvbiB7CiAgICAgICAgd2lkdGg6IDE0cHg7CiAgICAgICAgaGVpZ2h0OiAxNHB4OwogICAgICB9CgogICAgICAuYWRkLWl0ZW0tY29udGFpbmVyIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGdhcDogOHB4OwogICAgICAgIHBhZGRpbmc6IDEycHggMTZweDsKICAgICAgICBiYWNrZ3JvdW5kOiAke20uYmRUaGVtZSgiaHNsKDAgMCUgOTcuNSUpIiwiaHNsKDAgMCUgNi45JSkiKX07CiAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICR7bS5iZFRoZW1lKCJoc2woMCAwJSA4OS44JSkiLCJoc2woMCAwJSAxNC45JSkiKX07CiAgICAgIH0KCiAgICAgIC5hZGQtaW5wdXQgewogICAgICAgIGZsZXg6IDE7CiAgICAgICAgcGFkZGluZzogOHB4IDEycHg7CiAgICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgICAgIGZvbnQtZmFtaWx5OiBpbmhlcml0OwogICAgICAgIGJhY2tncm91bmQ6ICR7bS5iZFRoZW1lKCJoc2woMCAwJSAxMDAlKSIsImhzbCgwIDAlIDklKSIpfTsKICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAke20uYmRUaGVtZSgiaHNsKDAgMCUgODkuOCUpIiwiaHNsKDAgMCUgMTQuOSUpIil9OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDRweDsKICAgICAgICBvdXRsaW5lOiBub25lOwogICAgICAgIGNvbG9yOiAke20uYmRUaGVtZSgiaHNsKDAgMCUgOSUpIiwiaHNsKDAgMCUgOTUlKSIpfTsKICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC4xNXMgZWFzZTsKICAgICAgfQoKICAgICAgLmFkZC1pbnB1dDpmb2N1cyB7CiAgICAgICAgYm9yZGVyLWNvbG9yOiAke20uYmRUaGVtZSgiaHNsKDIyMi4yIDQ3LjQlIDUxLjIlKSIsImhzbCgyMTcuMiA5MS4yJSA1OS44JSkiKX07CiAgICAgICAgYm94LXNoYWRvdzogMCAwIDAgM3B4ICR7bS5iZFRoZW1lKCJoc2woMjIyLjIgNDcuNCUgNTEuMiUgLyAwLjEpIiwiaHNsKDIxNy4yIDkxLjIlIDU5LjglIC8gMC4xKSIpfTsKICAgICAgfQoKICAgICAgLmFkZC1pbnB1dDo6cGxhY2Vob2xkZXIgewogICAgICAgIGNvbG9yOiAke20uYmRUaGVtZSgiaHNsKDAgMCUgNjMuOSUpIiwiaHNsKDAgMCUgNDUuMSUpIil9OwogICAgICB9CgogICAgICAuYWRkLWlucHV0OmRpc2FibGVkIHsKICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkOwogICAgICAgIG9wYWNpdHk6IDAuNTsKICAgICAgfQoKICAgICAgLmFkZC1idXR0b24gewogICAgICAgIHBhZGRpbmc6IDhweCAxNnB4OwogICAgICB9CgogICAgICAuZW1wdHktc3RhdGUgewogICAgICAgIHBhZGRpbmc6IDMycHggMTZweDsKICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7CiAgICAgICAgY29sb3I6ICR7bS5iZFRoZW1lKCJoc2woMCAwJSA2My45JSkiLCJoc2woMCAwJSA0NS4xJSkiKX07CiAgICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgICAgIGZvbnQtc3R5bGU6IGl0YWxpYzsKICAgICAgfQoKICAgICAgLnZhbGlkYXRpb24tbWVzc2FnZSB7CiAgICAgICAgY29sb3I6ICR7bS5iZFRoZW1lKCJoc2woMCA3Mi4yJSA1MC42JSkiLCJoc2woMCA2Mi44JSAzMC42JSkiKX07CiAgICAgICAgZm9udC1zaXplOiAxM3B4OwogICAgICAgIG1hcmdpbi10b3A6IDZweDsKICAgICAgICBsaW5lLWhlaWdodDogMS41OwogICAgICB9CgogICAgICAuZGVzY3JpcHRpb24gewogICAgICAgIGNvbG9yOiAke20uYmRUaGVtZSgiaHNsKDIxNS40IDE2LjMlIDU2LjklKSIsImhzbCgyMTUgMjAuMiUgNTUuMSUpIil9OwogICAgICAgIGZvbnQtc2l6ZTogMTNweDsKICAgICAgICBtYXJnaW4tdG9wOiA2cHg7CiAgICAgICAgbGluZS1oZWlnaHQ6IDEuNTsKICAgICAgfQoKICAgICAgLyogU2Nyb2xsYmFyIHN0eWxpbmcgKi8KICAgICAgLmxpc3QtaXRlbXM6Oi13ZWJraXQtc2Nyb2xsYmFyIHsKICAgICAgICB3aWR0aDogOHB4OwogICAgICB9CgogICAgICAubGlzdC1pdGVtczo6LXdlYmtpdC1zY3JvbGxiYXItdHJhY2sgewogICAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50OwogICAgICB9CgogICAgICAubGlzdC1pdGVtczo6LXdlYmtpdC1zY3JvbGxiYXItdGh1bWIgewogICAgICAgIGJhY2tncm91bmQ6ICR7bS5iZFRoZW1lKCJoc2woMCAwJSA4OS44JSkiLCJoc2woMCAwJSAyNC45JSkiKX07CiAgICAgICAgYm9yZGVyLXJhZGl1czogNHB4OwogICAgICB9CgogICAgICAubGlzdC1pdGVtczo6LXdlYmtpdC1zY3JvbGxiYXItdGh1bWI6aG92ZXIgewogICAgICAgIGJhY2tncm91bmQ6ICR7bS5iZFRoZW1lKCJoc2woMCAwJSA3OS44JSkiLCJoc2woMCAwJSAzNC45JSkiKX07CiAgICAgIH0KCiAgICAgIC8qIERpc2FibGUgdHJhbnNpdGlvbnMgZHVyaW5nIGRyb3AgdG8gcHJldmVudCBmbGFzaCAqLwogICAgICAubGlzdC1pdGVtcy5kcm9wcGluZyAubGlzdC1pdGVtIHsKICAgICAgICB0cmFuc2l0aW9uOiBub25lICFpbXBvcnRhbnQ7CiAgICAgIH0KICAgIGBdO3JlbmRlcigpe3JldHVybiBDYAogICAgICA8ZGl2IGNsYXNzPSJpbnB1dC13cmFwcGVyIj4KICAgICAgICAke3RoaXMubGFiZWw/Q2A8ZGVlcy1sYWJlbCAubGFiZWw9JHt0aGlzLmxhYmVsfSAucmVxdWlyZWQ9JHt0aGlzLnJlcXVpcmVkfT48L2RlZXMtbGFiZWw+YDoiIn0KICAgICAgICAKICAgICAgICA8ZGl2IGNsYXNzPSJsaXN0LWNvbnRhaW5lciAke3RoaXMuZGlzYWJsZWQ/ImRpc2FibGVkIjoiIn0iPgogICAgICAgICAgPGRpdiBjbGFzcz0ibGlzdC1pdGVtcyI+CiAgICAgICAgICAgICR7dGhpcy52YWx1ZS5sZW5ndGg+MD90aGlzLnZhbHVlLm1hcCgoaGUsaWUpPT5DYAogICAgICAgICAgICAgIDxkaXYKICAgICAgICAgICAgICAgIGNsYXNzPSJsaXN0LWl0ZW0gJHt0aGlzLmRyYWdnZWRJbmRleD09PWllPyJkcmFnZ2luZyI6IiJ9IgogICAgICAgICAgICAgICAgZHJhZ2dhYmxlPSIke3RoaXMuc29ydGFibGUmJiF0aGlzLmRpc2FibGVkfSIKICAgICAgICAgICAgICAgIEBkcmFnc3RhcnQ9JHtTZT0+dGhpcy5oYW5kbGVEcmFnU3RhcnQoU2UsaWUpfQogICAgICAgICAgICAgICAgQGRyYWdlbmQ9JHt0aGlzLmhhbmRsZURyYWdFbmR9CiAgICAgICAgICAgICAgICBAZHJhZ292ZXI9JHtTZT0+dGhpcy5oYW5kbGVEcmFnT3ZlcihTZSxpZSl9CiAgICAgICAgICAgICAgICBAZHJvcD0ke1NlPT50aGlzLmhhbmRsZURyb3AoU2UsaWUpfQogICAgICAgICAgICAgID4KICAgICAgICAgICAgICAgICR7dGhpcy5zb3J0YWJsZSYmIXRoaXMuZGlzYWJsZWQ/Q2AKICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iZHJhZy1oYW5kbGUiPgogICAgICAgICAgICAgICAgICAgIDxkZWVzLWljb24gLmljb249JHsibHVjaWRlOmdyaXBWZXJ0aWNhbCJ9PjwvZGVlcy1pY29uPgogICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgIGA6IiJ9CiAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9Iml0ZW0tY29udGVudCI+CiAgICAgICAgICAgICAgICAgICR7dGhpcy5lZGl0aW5nSW5kZXg9PT1pZT9DYAogICAgICAgICAgICAgICAgICAgIDxpbnB1dAogICAgICAgICAgICAgICAgICAgICAgdHlwZT0idGV4dCIKICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPSJpdGVtLWVkaXQtaW5wdXQiCiAgICAgICAgICAgICAgICAgICAgICAudmFsdWU9JHt0aGlzLmVkaXRpbmdWYWx1ZX0KICAgICAgICAgICAgICAgICAgICAgIEBpbnB1dD0ke1NlPT50aGlzLmVkaXRpbmdWYWx1ZT1TZS50YXJnZXQudmFsdWV9CiAgICAgICAgICAgICAgICAgICAgICBAa2V5ZG93bj0ke1NlPT50aGlzLmhhbmRsZUVkaXRLZXlEb3duKFNlLGllKX0KICAgICAgICAgICAgICAgICAgICAgIEBibHVyPSR7KCk9PnRoaXMuc2F2ZUVkaXQoaWUpfQogICAgICAgICAgICAgICAgICAgIC8+CiAgICAgICAgICAgICAgICAgIGA6Q2AKICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJpdGVtLXRleHQiIEBkYmxjbGljaz0keygpPT4hdGhpcy5kaXNhYmxlZCYmdGhpcy5zdGFydEVkaXQoaWUpfT4KICAgICAgICAgICAgICAgICAgICAgICR7aGV9CiAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgIGB9CiAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iaXRlbS1hY3Rpb25zIj4KICAgICAgICAgICAgICAgICAgJHt0aGlzLmVkaXRpbmdJbmRleD09PWllP0NgCiAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz0iYWN0aW9uLWJ1dHRvbiBzYXZlIiBAY2xpY2s9JHsoKT0+dGhpcy5zYXZlRWRpdChpZSl9PgogICAgICAgICAgICAgICAgICAgICAgPGRlZXMtaWNvbiAuaWNvbj0keyJsdWNpZGU6Y2hlY2sifT48L2RlZXMtaWNvbj4KICAgICAgICAgICAgICAgICAgICA8L2J1dHRvbj4KICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIGNsYXNzPSJhY3Rpb24tYnV0dG9uIGNhbmNlbCIgQGNsaWNrPSR7KCk9PnRoaXMuY2FuY2VsRWRpdCgpfT4KICAgICAgICAgICAgICAgICAgICAgIDxkZWVzLWljb24gLmljb249JHsibHVjaWRlOngifT48L2RlZXMtaWNvbj4KICAgICAgICAgICAgICAgICAgICA8L2J1dHRvbj4KICAgICAgICAgICAgICAgICAgYDpDYAogICAgICAgICAgICAgICAgICAgICR7dGhpcy5kaXNhYmxlZD8iIjpDYAogICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz0iYWN0aW9uLWJ1dHRvbiIgQGNsaWNrPSR7KCk9PnRoaXMuc3RhcnRFZGl0KGllKX0+CiAgICAgICAgICAgICAgICAgICAgICAgIDxkZWVzLWljb24gLmljb249JHsibHVjaWRlOnBlbmNpbCJ9PjwvZGVlcy1pY29uPgogICAgICAgICAgICAgICAgICAgICAgPC9idXR0b24+CiAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIGNsYXNzPSJhY3Rpb24tYnV0dG9uIGRlbGV0ZSIgQGNsaWNrPSR7KCk9PnRoaXMucmVtb3ZlSXRlbShpZSl9PgogICAgICAgICAgICAgICAgICAgICAgICA8ZGVlcy1pY29uIC5pY29uPSR7Imx1Y2lkZTp0cmFzaDIifT48L2RlZXMtaWNvbj4KICAgICAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPgogICAgICAgICAgICAgICAgICAgIGB9CiAgICAgICAgICAgICAgICAgIGB9CiAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgYCk6Q2AKICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJlbXB0eS1zdGF0ZSI+CiAgICAgICAgICAgICAgICBObyBpdGVtcyBhZGRlZCB5ZXQKICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgYH0KICAgICAgICAgIDwvZGl2PgogICAgICAgICAgCiAgICAgICAgICAkeyF0aGlzLmRpc2FibGVkJiYoIXRoaXMubWF4SXRlbXN8fHRoaXMudmFsdWUubGVuZ3RoPHRoaXMubWF4SXRlbXMpP0NgCiAgICAgICAgICAgIDxkaXYgY2xhc3M9ImFkZC1pdGVtLWNvbnRhaW5lciI+CiAgICAgICAgICAgICAgPGlucHV0CiAgICAgICAgICAgICAgICB0eXBlPSJ0ZXh0IgogICAgICAgICAgICAgICAgY2xhc3M9ImFkZC1pbnB1dCIKICAgICAgICAgICAgICAgIC5wbGFjZWhvbGRlcj0ke3RoaXMucGxhY2Vob2xkZXJ9CiAgICAgICAgICAgICAgICAudmFsdWU9JHt0aGlzLmlucHV0VmFsdWV9CiAgICAgICAgICAgICAgICBAaW5wdXQ9JHt0aGlzLmhhbmRsZUlucHV0fQogICAgICAgICAgICAgICAgQGtleWRvd249JHt0aGlzLmhhbmRsZUFkZEtleURvd259CiAgICAgICAgICAgICAgICA/ZGlzYWJsZWQ9JHt0aGlzLmRpc2FibGVkfQogICAgICAgICAgICAgIC8+CiAgICAgICAgICAgICAgPGRlZXMtYnV0dG9uCiAgICAgICAgICAgICAgICBjbGFzcz0iYWRkLWJ1dHRvbiIKICAgICAgICAgICAgICAgIEBjbGljaz0ke3RoaXMuYWRkSXRlbX0KICAgICAgICAgICAgICAgID9kaXNhYmxlZD0keyF0aGlzLmlucHV0VmFsdWUudHJpbSgpfQogICAgICAgICAgICAgID4KICAgICAgICAgICAgICAgIDxkZWVzLWljb24gLmljb249JHsibHVjaWRlOnBsdXMifT48L2RlZXMtaWNvbj4gQWRkCiAgICAgICAgICAgICAgPC9kZWVzLWJ1dHRvbj4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICBgOiIifQogICAgICAgIDwvZGl2PgoKICAgICAgICAke3RoaXMudmFsaWRhdGlvblRleHQ/Q2AKICAgICAgICAgIDxkaXYgY2xhc3M9InZhbGlkYXRpb24tbWVzc2FnZSI+JHt0aGlzLnZhbGlkYXRpb25UZXh0fTwvZGl2PgogICAgICAgIGA6IiJ9CiAgICAgICAgCiAgICAgICAgJHt0aGlzLmRlc2NyaXB0aW9uP0NgCiAgICAgICAgICA8ZGl2IGNsYXNzPSJkZXNjcmlwdGlvbiI+JHt0aGlzLmRlc2NyaXB0aW9ufTwvZGl2PgogICAgICAgIGA6IiJ9CiAgICAgIDwvZGl2PgogICAgYH1oYW5kbGVJbnB1dChoZSl7dGhpcy5pbnB1dFZhbHVlPWhlLnRhcmdldC52YWx1ZX1oYW5kbGVBZGRLZXlEb3duKGhlKXtoZS5rZXk9PT0iRW50ZXIiJiZ0aGlzLmlucHV0VmFsdWUudHJpbSgpJiYoaGUucHJldmVudERlZmF1bHQoKSx0aGlzLmFkZEl0ZW0oKSl9aGFuZGxlRWRpdEtleURvd24oaGUsaWUpe2hlLmtleT09PSJFbnRlciI/KGhlLnByZXZlbnREZWZhdWx0KCksdGhpcy5zYXZlRWRpdChpZSkpOmhlLmtleT09PSJFc2NhcGUiJiYoaGUucHJldmVudERlZmF1bHQoKSx0aGlzLmNhbmNlbEVkaXQoKSl9YWRkSXRlbSgpe2xldCBoZT10aGlzLmlucHV0VmFsdWUudHJpbSgpO2lmKCFoZSlyZXR1cm47aWYoIXRoaXMuYWxsb3dEdXBsaWNhdGVzJiZ0aGlzLnZhbHVlLmluY2x1ZGVzKGhlKSl7dGhpcy52YWxpZGF0aW9uVGV4dD0iVGhpcyBpdGVtIGFscmVhZHkgZXhpc3RzIGluIHRoZSBsaXN0IixzZXRUaW1lb3V0KCgpPT50aGlzLnZhbGlkYXRpb25UZXh0PSIiLDNlMyk7cmV0dXJufWlmKHRoaXMubWF4SXRlbXMmJnRoaXMudmFsdWUubGVuZ3RoPj10aGlzLm1heEl0ZW1zKXt0aGlzLnZhbGlkYXRpb25UZXh0PWBNYXhpbXVtICR7dGhpcy5tYXhJdGVtc30gaXRlbXMgYWxsb3dlZGAsc2V0VGltZW91dCgoKT0+dGhpcy52YWxpZGF0aW9uVGV4dD0iIiwzZTMpO3JldHVybn10aGlzLnZhbHVlPVsuLi50aGlzLnZhbHVlLGhlXSx0aGlzLmlucHV0VmFsdWU9IiIsdGhpcy52YWxpZGF0aW9uVGV4dD0iIjtsZXQgaWU9dGhpcy5zaGFkb3dSb290Py5xdWVyeVNlbGVjdG9yKCIuYWRkLWlucHV0Iik7aWUmJihpZS52YWx1ZT0iIixpZS5mb2N1cygpKSx0aGlzLmVtaXRDaGFuZ2UoKX1zdGFydEVkaXQoaGUpe3RoaXMuZWRpdGluZ0luZGV4PWhlLHRoaXMuZWRpdGluZ1ZhbHVlPXRoaXMudmFsdWVbaGVdLHRoaXMudXBkYXRlQ29tcGxldGUudGhlbigoKT0+e2xldCBpZT10aGlzLnNoYWRvd1Jvb3Q/LnF1ZXJ5U2VsZWN0b3IoIi5pdGVtLWVkaXQtaW5wdXQiKTtpZSYmKGllLmZvY3VzKCksaWUuc2VsZWN0KCkpfSl9c2F2ZUVkaXQoaGUpe2xldCBpZT10aGlzLmVkaXRpbmdWYWx1ZS50cmltKCk7aWYoIWllKXt0aGlzLmNhbmNlbEVkaXQoKTtyZXR1cm59aWYoIXRoaXMuYWxsb3dEdXBsaWNhdGVzJiZpZSE9PXRoaXMudmFsdWVbaGVdJiZ0aGlzLnZhbHVlLmluY2x1ZGVzKGllKSl7dGhpcy52YWxpZGF0aW9uVGV4dD0iVGhpcyBpdGVtIGFscmVhZHkgZXhpc3RzIGluIHRoZSBsaXN0IixzZXRUaW1lb3V0KCgpPT50aGlzLnZhbGlkYXRpb25UZXh0PSIiLDNlMyk7cmV0dXJufWxldCBTZT1bLi4udGhpcy52YWx1ZV07U2VbaGVdPWllLHRoaXMudmFsdWU9U2UsdGhpcy5lZGl0aW5nSW5kZXg9LTEsdGhpcy5lZGl0aW5nVmFsdWU9IiIsdGhpcy52YWxpZGF0aW9uVGV4dD0iIix0aGlzLmVtaXRDaGFuZ2UoKX1jYW5jZWxFZGl0KCl7dGhpcy5lZGl0aW5nSW5kZXg9LTEsdGhpcy5lZGl0aW5nVmFsdWU9IiJ9YXN5bmMgcmVtb3ZlSXRlbShoZSl7dGhpcy5jb25maXJtRGVsZXRlJiYhYXdhaXQgdGhpcy5zaG93Q29uZmlybURpYWxvZyhgRGVsZXRlICIke3RoaXMudmFsdWVbaGVdfSI/YCl8fCh0aGlzLnZhbHVlPXRoaXMudmFsdWUuZmlsdGVyKChpZSxTZSk9PlNlIT09aGUpLHRoaXMuZW1pdENoYW5nZSgpKX1hc3luYyBzaG93Q29uZmlybURpYWxvZyhoZSl7cmV0dXJuIGNvbmZpcm0oaGUpfWhhbmRsZURyYWdTdGFydChoZSxpZSl7aWYoIXRoaXMuc29ydGFibGV8fHRoaXMuZGlzYWJsZWQpcmV0dXJuO3RoaXMuZHJhZ2dlZEluZGV4PWllLHRoaXMudGFyZ2V0SW5kZXg9aWUsaGUuZGF0YVRyYW5zZmVyLmVmZmVjdEFsbG93ZWQ9Im1vdmUiLGhlLmRhdGFUcmFuc2Zlci5zZXREYXRhKCJ0ZXh0L3BsYWluIixpZS50b1N0cmluZygpKTtsZXQgU2U9bmV3IEltYWdlO1NlLnNyYz0iZGF0YTppbWFnZS9naWY7YmFzZTY0LFIwbEdPRGxoQVFBQkFJQUFBQVVFQkFBQUFDd0FBQUFBQVFBQkFBQUNBa1FCQURzPSIsaGUuZGF0YVRyYW5zZmVyLnNldERyYWdJbWFnZShTZSwwLDApLHRoaXMuZHJhZ1N0YXJ0WT1oZS5jbGllbnRZLHRoaXMuZHJhZ0N1cnJlbnRZPWhlLmNsaWVudFk7bGV0IEllPXRoaXMuc2hhZG93Um9vdD8ucXVlcnlTZWxlY3RvcigiLmxpc3QtaXRlbXMiKSxaZT1BcnJheS5mcm9tKEllPy5xdWVyeVNlbGVjdG9yQWxsKCIubGlzdC1pdGVtIil8fFtdKTtaZVtpZV0mJih0aGlzLml0ZW1IZWlnaHQ9WmVbaWVdLm9mZnNldEhlaWdodCksdGhpcy5vcmlnaW5hbEl0ZW1SZWN0cz1aZS5tYXAoSz0+Sy5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKSksSWU/LmNsYXNzTGlzdC5hZGQoImlzLWRyYWdnaW5nIiksdGhpcy5ib3VuZEhhbmRsZUdsb2JhbERyYWdPdmVyPXRoaXMuaGFuZGxlR2xvYmFsRHJhZ092ZXIuYmluZCh0aGlzKSx0aGlzLmJvdW5kSGFuZGxlR2xvYmFsRHJhZ0VuZD10aGlzLmhhbmRsZUdsb2JhbERyYWdFbmQuYmluZCh0aGlzKSxkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCJkcmFnb3ZlciIsdGhpcy5ib3VuZEhhbmRsZUdsb2JhbERyYWdPdmVyKSxkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCJkcmFnZW5kIix0aGlzLmJvdW5kSGFuZGxlR2xvYmFsRHJhZ0VuZCl9aGFuZGxlR2xvYmFsRHJhZ092ZXIoaGUpe2lmKGhlLnByZXZlbnREZWZhdWx0KCksdGhpcy5kcmFnZ2VkSW5kZXg9PT0tMSlyZXR1cm47dGhpcy5kcmFnQ3VycmVudFk9aGUuY2xpZW50WTtsZXQgaWU9dGhpcy5zaGFkb3dSb290Py5xdWVyeVNlbGVjdG9yKCIubGlzdC1pdGVtcyIpO2lmKCFpZSlyZXR1cm47bGV0IFNlPUFycmF5LmZyb20oaWUucXVlcnlTZWxlY3RvckFsbCgiLmxpc3QtaXRlbSIpKSxJZT1TZVt0aGlzLmRyYWdnZWRJbmRleF07aWYoIUllKXJldHVybjtsZXQgWmU9dGhpcy5kcmFnQ3VycmVudFktdGhpcy5kcmFnU3RhcnRZO0llLnN0eWxlLnRyYW5zZm9ybT1gdHJhbnNsYXRlWSgke1plfXB4KWA7bGV0IEs9dGhpcy5vcmlnaW5hbEl0ZW1SZWN0c1t0aGlzLmRyYWdnZWRJbmRleF07aWYoIUspcmV0dXJuO2xldCBaPUsudG9wK0suaGVpZ2h0LzIrWmUsSj10aGlzLmRyYWdnZWRJbmRleDtmb3IobGV0IG1lPTA7bWU8U2UubGVuZ3RoO21lKyspe2lmKG1lPT09dGhpcy5kcmFnZ2VkSW5kZXgpY29udGludWU7bGV0IEVlPXRoaXMub3JpZ2luYWxJdGVtUmVjdHNbbWVdO2lmKCFFZSljb250aW51ZTtsZXQgVWU9RWUudG9wK0VlLmhlaWdodC8yO2lmKFNlW21lXS5jbGFzc0xpc3QuY29udGFpbnMoIm1vdmUtdXAiKT9VZS09dGhpcy5pdGVtSGVpZ2h0OlNlW21lXS5jbGFzc0xpc3QuY29udGFpbnMoIm1vdmUtZG93biIpJiYoVWUrPXRoaXMuaXRlbUhlaWdodCksWjxVZSYmbWU8dGhpcy5kcmFnZ2VkSW5kZXgpe0o9bWU7YnJlYWt9ZWxzZSBaPlVlJiZtZT50aGlzLmRyYWdnZWRJbmRleCYmKEo9bWUpfUohPT10aGlzLnRhcmdldEluZGV4JiYodGhpcy50YXJnZXRJbmRleD1KLHRoaXMudXBkYXRlSXRlbVBvc2l0aW9ucyhTZSkpfXVwZGF0ZUl0ZW1Qb3NpdGlvbnMoaGUpe2xldCBpZT10aGlzLmRyYWdnZWRJbmRleCxTZT10aGlzLnRhcmdldEluZGV4LEllPXRoaXMuc2hhZG93Um9vdD8ucXVlcnlTZWxlY3RvcigiLmxpc3QtaXRlbXMiKTtJZSYmSWUuc3R5bGUuc2V0UHJvcGVydHkoIi0taXRlbS1oZWlnaHQiLGAke3RoaXMuaXRlbUhlaWdodH1weGApLGhlLmZvckVhY2goKFplLEspPT57SyE9PWllJiYoWmUuY2xhc3NMaXN0LnJlbW92ZSgibW92ZS11cCIsIm1vdmUtZG93biIpLFplLnN0eWxlLnNldFByb3BlcnR5KCItLWl0ZW0taGVpZ2h0IixgJHt0aGlzLml0ZW1IZWlnaHR9cHhgKSxpZTxTZT9LPmllJiZLPD1TZSYmWmUuY2xhc3NMaXN0LmFkZCgibW92ZS11cCIpOmllPlNlJiZLPj1TZSYmSzxpZSYmWmUuY2xhc3NMaXN0LmFkZCgibW92ZS1kb3duIikpfSl9aGFuZGxlR2xvYmFsRHJhZ0VuZCgpe3RoaXMuYm91bmRIYW5kbGVHbG9iYWxEcmFnT3ZlciYmKGRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoImRyYWdvdmVyIix0aGlzLmJvdW5kSGFuZGxlR2xvYmFsRHJhZ092ZXIpLHRoaXMuYm91bmRIYW5kbGVHbG9iYWxEcmFnT3Zlcj1udWxsKSx0aGlzLmJvdW5kSGFuZGxlR2xvYmFsRHJhZ0VuZCYmKGRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoImRyYWdlbmQiLHRoaXMuYm91bmRIYW5kbGVHbG9iYWxEcmFnRW5kKSx0aGlzLmJvdW5kSGFuZGxlR2xvYmFsRHJhZ0VuZD1udWxsKTtsZXQgaGU9dGhpcy5zaGFkb3dSb290Py5xdWVyeVNlbGVjdG9yKCIubGlzdC1pdGVtcyIpLGllPWhlPy5xdWVyeVNlbGVjdG9yQWxsKCIubGlzdC1pdGVtIiksU2U9aWU/Llt0aGlzLmRyYWdnZWRJbmRleF07aWYodGhpcy5kcmFnZ2VkSW5kZXg9PT0tMXx8dGhpcy50YXJnZXRJbmRleD09PS0xfHx0aGlzLmRyYWdnZWRJbmRleD09PXRoaXMudGFyZ2V0SW5kZXgpe2lmKFNlJiZ0aGlzLmRyYWdnZWRJbmRleCE9PS0xKXtTZS5zdHlsZS50cmFuc2l0aW9uPSJ0cmFuc2Zvcm0gMC4xNXMgZWFzZSIsU2Uuc3R5bGUudHJhbnNmb3JtPSJ0cmFuc2xhdGVZKDApIjtsZXQgbWU9ITEsRWU9KCk9PnttZXx8KG1lPSEwLFNlLnJlbW92ZUV2ZW50TGlzdGVuZXIoInRyYW5zaXRpb25lbmQiLEVlKSx0aGlzLmNsZWFudXBEcmFnU3RhdGUoaGUsaWUpKX07U2UuYWRkRXZlbnRMaXN0ZW5lcigidHJhbnNpdGlvbmVuZCIsRWUse29uY2U6ITB9KSxzZXRUaW1lb3V0KEVlLDIwMCl9ZWxzZSB0aGlzLmNsZWFudXBEcmFnU3RhdGUoaGUsaWUpO3JldHVybn1sZXQgSWU9dGhpcy5vcmlnaW5hbEl0ZW1SZWN0c1t0aGlzLmRyYWdnZWRJbmRleF0sWmU9dGhpcy5vcmlnaW5hbEl0ZW1SZWN0c1t0aGlzLnRhcmdldEluZGV4XTtpZighSWV8fCFaZXx8IVNlKXt0aGlzLmNsZWFudXBEcmFnU3RhdGUoaGUsaWUpO3JldHVybn1sZXQgSzt0aGlzLnRhcmdldEluZGV4PnRoaXMuZHJhZ2dlZEluZGV4P0s9WmUuYm90dG9tLUllLmJvdHRvbTpLPVplLnRvcC1JZS50b3AsU2Uuc3R5bGUudHJhbnNpdGlvbj0idHJhbnNmb3JtIDAuMTVzIGVhc2UiLFNlLnN0eWxlLnRyYW5zZm9ybT1gdHJhbnNsYXRlWSgke0t9cHgpYDtsZXQgWj0hMSxKPSgpPT57aWYoWilyZXR1cm47Wj0hMCxTZS5yZW1vdmVFdmVudExpc3RlbmVyKCJ0cmFuc2l0aW9uZW5kIixKKSxoZT8uY2xhc3NMaXN0LmFkZCgiZHJvcHBpbmciKSxoZT8ub2Zmc2V0SGVpZ2h0LGllPy5mb3JFYWNoKFVlPT57VWUuY2xhc3NMaXN0LnJlbW92ZSgibW92ZS11cCIsIm1vdmUtZG93biIsImRyYWdnaW5nIiksVWUuc3R5bGUucmVtb3ZlUHJvcGVydHkoInRyYW5zZm9ybSIpLFVlLnN0eWxlLnJlbW92ZVByb3BlcnR5KCJ0cmFuc2l0aW9uIil9KTtsZXQgbWU9Wy4uLnRoaXMudmFsdWVdLFtFZV09bWUuc3BsaWNlKHRoaXMuZHJhZ2dlZEluZGV4LDEpO21lLnNwbGljZSh0aGlzLnRhcmdldEluZGV4LDAsRWUpLHRoaXMudmFsdWU9bWUsdGhpcy5lbWl0Q2hhbmdlKCksdGhpcy5kcmFnZ2VkSW5kZXg9LTEsdGhpcy5kcmFnT3ZlckluZGV4PS0xLHRoaXMudGFyZ2V0SW5kZXg9LTEsdGhpcy5kcmFnU3RhcnRZPTAsdGhpcy5kcmFnQ3VycmVudFk9MCx0aGlzLm9yaWdpbmFsSXRlbVJlY3RzPVtdLHRoaXMudXBkYXRlQ29tcGxldGUudGhlbigoKT0+e2xldCBVZT10aGlzLnNoYWRvd1Jvb3Q/LnF1ZXJ5U2VsZWN0b3JBbGwoIi5saXN0LWl0ZW0iKTtVZT8uZm9yRWFjaChNdD0+e010LnN0eWxlLnRyYW5zaXRpb249Im5vbmUifSksdGhpcy5zaGFkb3dSb290Py5xdWVyeVNlbGVjdG9yKCIubGlzdC1pdGVtcyIpPy5vZmZzZXRIZWlnaHQscmVxdWVzdEFuaW1hdGlvbkZyYW1lKCgpPT57VWU/LmZvckVhY2goTXQ9PntNdC5zdHlsZS5yZW1vdmVQcm9wZXJ0eSgidHJhbnNpdGlvbiIpfSksaGU/LmNsYXNzTGlzdC5yZW1vdmUoImRyb3BwaW5nIiwiaXMtZHJhZ2dpbmciKX0pfSl9O1NlLmFkZEV2ZW50TGlzdGVuZXIoInRyYW5zaXRpb25lbmQiLEose29uY2U6ITB9KSxzZXRUaW1lb3V0KEosMjAwKX1jbGVhbnVwRHJhZ1N0YXRlKGhlLGllKXtoZT8uY2xhc3NMaXN0LmFkZCgiZHJvcHBpbmciKSxoZT8ub2Zmc2V0SGVpZ2h0LGllPy5mb3JFYWNoKFNlPT57U2UuY2xhc3NMaXN0LnJlbW92ZSgibW92ZS11cCIsIm1vdmUtZG93biIsImRyYWdnaW5nIiksU2Uuc3R5bGUucmVtb3ZlUHJvcGVydHkoInRyYW5zZm9ybSIpLFNlLnN0eWxlLnJlbW92ZVByb3BlcnR5KCJ0cmFuc2l0aW9uIil9KSx0aGlzLmRyYWdnZWRJbmRleD0tMSx0aGlzLmRyYWdPdmVySW5kZXg9LTEsdGhpcy50YXJnZXRJbmRleD0tMSx0aGlzLmRyYWdTdGFydFk9MCx0aGlzLmRyYWdDdXJyZW50WT0wLHRoaXMub3JpZ2luYWxJdGVtUmVjdHM9W10sdGhpcy51cGRhdGVDb21wbGV0ZS50aGVuKCgpPT57bGV0IFNlPXRoaXMuc2hhZG93Um9vdD8ucXVlcnlTZWxlY3RvckFsbCgiLmxpc3QtaXRlbSIpO1NlPy5mb3JFYWNoKEllPT57SWUuc3R5bGUudHJhbnNpdGlvbj0ibm9uZSJ9KSx0aGlzLnNoYWRvd1Jvb3Q/LnF1ZXJ5U2VsZWN0b3IoIi5saXN0LWl0ZW1zIik/Lm9mZnNldEhlaWdodCxyZXF1ZXN0QW5pbWF0aW9uRnJhbWUoKCk9PntTZT8uZm9yRWFjaChJZT0+e0llLnN0eWxlLnJlbW92ZVByb3BlcnR5KCJ0cmFuc2l0aW9uIil9KSxoZT8uY2xhc3NMaXN0LnJlbW92ZSgiZHJvcHBpbmciLCJpcy1kcmFnZ2luZyIpfSl9KX1oYW5kbGVEcmFnRW5kKCl7dGhpcy5oYW5kbGVHbG9iYWxEcmFnRW5kKCl9aGFuZGxlRHJhZ092ZXIoaGUsaWUpeyF0aGlzLnNvcnRhYmxlfHx0aGlzLmRpc2FibGVkfHwoaGUucHJldmVudERlZmF1bHQoKSxoZS5kYXRhVHJhbnNmZXIuZHJvcEVmZmVjdD0ibW92ZSIpfWhhbmRsZURyYWdMZWF2ZSgpe31oYW5kbGVEcm9wKGhlLGllKXshdGhpcy5zb3J0YWJsZXx8dGhpcy5kaXNhYmxlZHx8aGUucHJldmVudERlZmF1bHQoKX1lbWl0Q2hhbmdlKCl7dGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBDdXN0b21FdmVudCgiY2hhbmdlIix7ZGV0YWlsOnt2YWx1ZTp0aGlzLnZhbHVlfSxidWJibGVzOiEwLGNvbXBvc2VkOiEwfSkpLHRoaXMuY2hhbmdlU3ViamVjdC5uZXh0KHRoaXMpfWdldFZhbHVlKCl7cmV0dXJuIHRoaXMudmFsdWV9c2V0VmFsdWUoaGUpe3RoaXMudmFsdWU9aGV8fFtdfWFzeW5jIHZhbGlkYXRlKCl7cmV0dXJuIHRoaXMucmVxdWlyZWQmJighdGhpcy52YWx1ZXx8dGhpcy52YWx1ZS5sZW5ndGg9PT0wKT8odGhpcy52YWxpZGF0aW9uVGV4dD0iQXQgbGVhc3Qgb25lIGl0ZW0gaXMgcmVxdWlyZWQiLCExKTp0aGlzLm1pbkl0ZW1zJiZ0aGlzLnZhbHVlLmxlbmd0aDx0aGlzLm1pbkl0ZW1zPyh0aGlzLnZhbGlkYXRpb25UZXh0PWBBdCBsZWFzdCAke3RoaXMubWluSXRlbXN9IGl0ZW1zIHJlcXVpcmVkYCwhMSk6KHRoaXMudmFsaWRhdGlvblRleHQ9IiIsITApfXN0YXRpY3tkcihpLHIpfX07cmV0dXJuIENlPWl9KSgpfSk7dmFyIE0wcj1wKCgpPT57dzByKCl9KTt2YXIgazByPXAoKCk9PntTNmUoKX0pO3ZhciBTMHI9cCgoKT0+e3o2ZSgpfSk7dmFyIHowcj1wKCgpPT57ZzZlKCl9KTt2YXIgQzByPXAoKCk9PntJTigpfSk7dmFyIFQwcixfMHI9cCgoKT0+e3hlKCk7cDEoKTtYNmUoKTtPaSgpO1Qwcj0oKT0+Q2AKICA8ZGVlcy1kZW1vd3JhcHBlcj4KICAgIDxzdHlsZT4KICAgICAgJHtvZWAKICAgICAgICAuZGVtby1jb250YWluZXIgewogICAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgICAgICBnYXA6IDI0cHg7CiAgICAgICAgICBwYWRkaW5nOiAyNHB4OwogICAgICAgICAgbWF4LXdpZHRoOiAxMjAwcHg7CiAgICAgICAgICBtYXJnaW46IDAgYXV0bzsKICAgICAgICB9CiAgICAgICAgCiAgICAgICAgZGVlcy1wYW5lbCB7CiAgICAgICAgICBtYXJnaW4tYm90dG9tOiAyNHB4OwogICAgICAgIH0KICAgICAgICAKICAgICAgICBkZWVzLXBhbmVsOmxhc3QtY2hpbGQgewogICAgICAgICAgbWFyZ2luLWJvdHRvbTogMDsKICAgICAgICB9CiAgICAgICAgCiAgICAgICAgLmdyaWQtbGF5b3V0IHsKICAgICAgICAgIGRpc3BsYXk6IGdyaWQ7CiAgICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDFmciAxZnI7CiAgICAgICAgICBnYXA6IDE2cHg7CiAgICAgICAgfQogICAgICAgIAogICAgICAgIEBtZWRpYSAobWF4LXdpZHRoOiA3NjhweCkgewogICAgICAgICAgLmdyaWQtbGF5b3V0IHsKICAgICAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAxZnI7CiAgICAgICAgICB9CiAgICAgICAgfQogICAgICAgIAogICAgICAgIC5vdXRwdXQtcHJldmlldyB7CiAgICAgICAgICBtYXJnaW4tdG9wOiAxNnB4OwogICAgICAgICAgcGFkZGluZzogMTZweDsKICAgICAgICAgIGJhY2tncm91bmQ6ICNmM2Y0ZjY7CiAgICAgICAgICBib3JkZXItcmFkaXVzOiA0cHg7CiAgICAgICAgICBmb250LXNpemU6IDEycHg7CiAgICAgICAgICBjb2xvcjogIzM3NDE1MTsKICAgICAgICAgIHdvcmQtYnJlYWs6IGJyZWFrLWFsbDsKICAgICAgICAgIG1heC1oZWlnaHQ6IDIwMHB4OwogICAgICAgICAgb3ZlcmZsb3cteTogYXV0bzsKICAgICAgICB9CiAgICAgICAgCiAgICAgICAgQG1lZGlhIChwcmVmZXJzLWNvbG9yLXNjaGVtZTogZGFyaykgewogICAgICAgICAgLm91dHB1dC1wcmV2aWV3IHsKICAgICAgICAgICAgYmFja2dyb3VuZDogIzJjMmMyYzsKICAgICAgICAgICAgY29sb3I6ICNlNGU0ZTc7CiAgICAgICAgICB9CiAgICAgICAgfQogICAgICBgfQogICAgPC9zdHlsZT4KICAgIAogICAgPGRpdiBjbGFzcz0iZGVtby1jb250YWluZXIiPgogICAgICA8ZGVlcy1wYW5lbCAudGl0bGU9JHsiMS4gQmFzaWMgUmljaCBUZXh0IEVkaXRvciJ9IC5zdWJ0aXRsZT0keyJBIGZ1bGwtZmVhdHVyZWQgcmljaCB0ZXh0IGVkaXRvciB3aXRoIGZvcm1hdHRpbmcgdG9vbGJhciJ9PgogICAgICAgIDxkZWVzLWlucHV0LXJpY2h0ZXh0IAogICAgICAgICAgLmxhYmVsPSR7IkFydGljbGUgQ29udGVudCJ9IAogICAgICAgICAgLnZhbHVlPSR7JzxoMT5XZWxjb21lIHRvIHRoZSBSaWNoIFRleHQgRWRpdG9yITwvaDE+PHA+VGhpcyBpcyBhIGZlYXR1cmUtcmljaCBlZGl0b3IgYnVpbHQgd2l0aCBUaXBUYXAuIFlvdSBjYW46PC9wPjx1bD48bGk+PHN0cm9uZz5Gb3JtYXQgdGV4dDwvc3Ryb25nPiB3aXRoIDxlbT52YXJpb3VzPC9lbT4gPHU+c3R5bGVzPC91PjwvbGk+PGxpPkNyZWF0ZSBkaWZmZXJlbnQgaGVhZGluZyBsZXZlbHM8L2xpPjxsaT5BZGQgPGEgaHJlZj0iaHR0cHM6Ly9leGFtcGxlLmNvbSI+bGlua3M8L2E+IHRvIGV4dGVybmFsIHJlc291cmNlczwvbGk+PGxpPldyaXRlIDxjb2RlPmlubGluZSBjb2RlPC9jb2RlPiBvciBjb2RlIGJsb2NrczwvbGk+PC91bD48YmxvY2txdW90ZT48cD5Vc2UgdGhlIHRvb2xiYXIgYWJvdmUgdG8gZXhwbG9yZSBhbGwgdGhlIGZvcm1hdHRpbmcgb3B0aW9ucyBhdmFpbGFibGUhPC9wPjwvYmxvY2txdW90ZT48cD5TdGFydCB0eXBpbmcgdG8gc2VlIHRoZSBtYWdpYyBoYXBwZW4uLi48L3A+J30KICAgICAgICAgIC5kZXNjcmlwdGlvbj0keyJVc2UgdGhlIHRvb2xiYXIgdG8gZm9ybWF0IHlvdXIgY29udGVudCB3aXRoIGhlYWRpbmdzLCBsaXN0cywgbGlua3MsIGFuZCBtb3JlIn0KICAgICAgICAgIC5zaG93V29yZENvdW50PSR7ITB9CiAgICAgICAgPjwvZGVlcy1pbnB1dC1yaWNodGV4dD4KICAgICAgPC9kZWVzLXBhbmVsPgogICAgICAKICAgICAgPGRlZXMtcGFuZWwgLnRpdGxlPSR7IjIuIFdpdGggUGxhY2Vob2xkZXIifSAuc3VidGl0bGU9JHsiRW1wdHkgZWRpdG9yIHdpdGggcGxhY2Vob2xkZXIgdGV4dCJ9PgogICAgICAgIDxkZWVzLWlucHV0LXJpY2h0ZXh0IAogICAgICAgICAgLmxhYmVsPSR7IkJsb2cgUG9zdCJ9IAogICAgICAgICAgLnBsYWNlaG9sZGVyPSR7IlN0YXJ0IHdyaXRpbmcgeW91ciBibG9nIHBvc3QgaGVyZS4uLiJ9CiAgICAgICAgICAuc2hvd1dvcmRDb3VudD0keyEwfQogICAgICAgID48L2RlZXMtaW5wdXQtcmljaHRleHQ+CiAgICAgIDwvZGVlcy1wYW5lbD4KICAgICAgCiAgICAgIDxkZWVzLXBhbmVsIC50aXRsZT0keyIzLiBEaWZmZXJlbnQgSGVpZ2h0cyJ9IC5zdWJ0aXRsZT0keyJFZGl0b3JzIHdpdGggZGlmZmVyZW50IG1pbmltdW0gaGVpZ2h0cyBmb3IgdmFyaW91cyB1c2UgY2FzZXMifT4KICAgICAgICA8ZGl2IGNsYXNzPSJncmlkLWxheW91dCI+CiAgICAgICAgICA8ZGVlcy1pbnB1dC1yaWNodGV4dCAKICAgICAgICAgICAgLmxhYmVsPSR7IlNob3J0IE5vdGUifSAKICAgICAgICAgICAgLm1pbkhlaWdodD0kezE1MH0KICAgICAgICAgICAgLnBsYWNlaG9sZGVyPSR7IlF1aWNrIG5vdGUuLi4ifQogICAgICAgICAgICAuc2hvd1dvcmRDb3VudD0keyExfQogICAgICAgICAgPjwvZGVlcy1pbnB1dC1yaWNodGV4dD4KICAgICAgICAgIAogICAgICAgICAgPGRlZXMtaW5wdXQtcmljaHRleHQgCiAgICAgICAgICAgIC5sYWJlbD0keyJFeHRlbmRlZCBDb250ZW50In0gCiAgICAgICAgICAgIC5taW5IZWlnaHQ9JHszMDB9CiAgICAgICAgICAgIC5wbGFjZWhvbGRlcj0keyJXcml0ZSB5b3VyIGV4dGVuZGVkIGNvbnRlbnQgaGVyZS4uLiJ9CiAgICAgICAgICAgIC5zaG93V29yZENvdW50PSR7ITB9CiAgICAgICAgICA+PC9kZWVzLWlucHV0LXJpY2h0ZXh0PgogICAgICAgIDwvZGl2PgogICAgICA8L2RlZXMtcGFuZWw+CiAgICAgIAogICAgICA8ZGVlcy1wYW5lbCAudGl0bGU9JHsiNC4gQ29kZSBFeGFtcGxlcyJ9IC5zdWJ0aXRsZT0keyJFZGl0b3IgcHJlLWZpbGxlZCB3aXRoIGNvZGUgZXhhbXBsZXMifT4KICAgICAgICA8ZGVlcy1pbnB1dC1yaWNodGV4dCAKICAgICAgICAgIC5sYWJlbD0keyJUZWNobmljYWwgRG9jdW1lbnRhdGlvbiJ9IAogICAgICAgICAgLnZhbHVlPSR7JzxoMj5JbnN0YWxsYXRpb24gR3VpZGU8L2gyPjxwPlRvIGluc3RhbGwgdGhlIHBhY2thZ2UsIHJ1biB0aGUgZm9sbG93aW5nIGNvbW1hbmQ6PC9wPjxwcmU+PGNvZGU+bnBtIGluc3RhbGwgQGRlc2lnbi5lc3RhdGUvZGVlcy1jYXRhbG9nPC9jb2RlPjwvcHJlPjxwPlRoZW4gaW1wb3J0IHRoZSBjb21wb25lbnQgaW4geW91ciBUeXBlU2NyaXB0IGZpbGU6PC9wPjxwcmU+PGNvZGU+aW1wb3J0IHsgRGVlc0lucHV0UmljaHRleHQgfSBmcm9tICJAZGVzaWduLmVzdGF0ZS9kZWVzLWNhdGFsb2ciOzwvY29kZT48L3ByZT48cD5Zb3UgY2FuIG5vdyB1c2UgdGhlIDxjb2RlPiZsdDtkZWVzLWlucHV0LXJpY2h0ZXh0Jmd0OzwvY29kZT4gZWxlbWVudCBpbiB5b3VyIHRlbXBsYXRlcy48L3A+J30KICAgICAgICAgIC5taW5IZWlnaHQ9JHsyNTB9CiAgICAgICAgICAuc2hvd1dvcmRDb3VudD0keyEwfQogICAgICAgID48L2RlZXMtaW5wdXQtcmljaHRleHQ+CiAgICAgIDwvZGVlcy1wYW5lbD4KICAgICAgCiAgICAgIDxkZWVzLXBhbmVsIC50aXRsZT0keyI1LiBEaXNhYmxlZCBTdGF0ZSJ9IC5zdWJ0aXRsZT0keyJSZWFkLW9ubHkgcmljaCB0ZXh0IGNvbnRlbnQifT4KICAgICAgICA8ZGVlcy1pbnB1dC1yaWNodGV4dCAKICAgICAgICAgIC5sYWJlbD0keyJQdWJsaXNoZWQgQXJ0aWNsZSAoUmVhZCBPbmx5KSJ9IAogICAgICAgICAgLnZhbHVlPSR7JzxoMj5UaGUgRnV0dXJlIG9mIFdlYiBDb21wb25lbnRzPC9oMj48cD5XZWIgQ29tcG9uZW50cyBoYXZlIHJldm9sdXRpb25pemVkIGhvdyB3ZSBidWlsZCBtb2Rlcm4gd2ViIGFwcGxpY2F0aW9ucy4uLjwvcD48YmxvY2txdW90ZT48cD4iVGhlIGZ1dHVyZSBvZiB3ZWIgZGV2ZWxvcG1lbnQgbGllcyBpbiByZXVzYWJsZSwgZW5jYXBzdWxhdGVkIGNvbXBvbmVudHMuIjwvcD48L2Jsb2NrcXVvdGU+J30KICAgICAgICAgIC5kaXNhYmxlZD0keyEwfQogICAgICAgICAgLnNob3dXb3JkQ291bnQ9JHshMH0KICAgICAgICA+PC9kZWVzLWlucHV0LXJpY2h0ZXh0PgogICAgICA8L2RlZXMtcGFuZWw+CiAgICAgIAogICAgICA8ZGVlcy1wYW5lbCAudGl0bGU9JHsiNi4gSW50ZXJhY3RpdmUgRGVtbyJ9IC5zdWJ0aXRsZT0keyJUeXBlIGluIHRoZSBlZGl0b3IgYmVsb3cgYW5kIHNlZSB0aGUgSFRNTCBvdXRwdXQifT4KICAgICAgICA8ZGVlcy1pbnB1dC1yaWNodGV4dCAKICAgICAgICAgIGlkPSJpbnRlcmFjdGl2ZS1lZGl0b3IiCiAgICAgICAgICAubGFiZWw9JHsiVHJ5IGl0IHlvdXJzZWxmIn0gCiAgICAgICAgICAucGxhY2Vob2xkZXI9JHsiVHlwZSBzb21ldGhpbmcgaGVyZS4uLiJ9CiAgICAgICAgICAuc2hvd1dvcmRDb3VudD0keyEwfQogICAgICAgICAgQGNoYW5nZT0ke2U9PntsZXQgdD1kb2N1bWVudC5xdWVyeVNlbGVjdG9yKCIjb3V0cHV0LXByZXZpZXciKTt0JiYodC50ZXh0Q29udGVudD1lLmRldGFpbC52YWx1ZSl9fQogICAgICAgID48L2RlZXMtaW5wdXQtcmljaHRleHQ+CiAgICAgICAgCiAgICAgICAgPGRpdiBjbGFzcz0ib3V0cHV0LXByZXZpZXciIGlkPSJvdXRwdXQtcHJldmlldyI+CiAgICAgICAgICA8ZW0+SFRNTCBvdXRwdXQgd2lsbCBhcHBlYXIgaGVyZS4uLjwvZW0+CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGVlcy1wYW5lbD4KICAgIDwvZGl2PgogIDwvZGVlcy1kZW1vd3JhcHBlcj4KYH0pO3ZhciBMMHIsQTByPXAoKCk9Pnt4ZSgpO00xKCk7TDByPVsuLi5vdC5iYXNlU3R5bGVzLG0uZGVmYXVsdFN0eWxlcyxvZWAKICAgICAgOmhvc3QgewogICAgICAgIGRpc3BsYXk6IGJsb2NrOwogICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgICBmb250LWZhbWlseTogSW50ZXIsIC1hcHBsZS1zeXN0ZW0sIEJsaW5rTWFjU3lzdGVtRm9udCwgJ1NlZ29lIFVJJywgUm9ib3RvLCBzYW5zLXNlcmlmOwogICAgICB9CgogICAgICAuaW5wdXQtd3JhcHBlciB7CiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICB9CgogICAgICAubGFiZWwgewogICAgICAgIGRpc3BsYXk6IGJsb2NrOwogICAgICAgIG1hcmdpbi1ib3R0b206IDhweDsKICAgICAgICBmb250LXNpemU6IDE0cHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDsKICAgICAgICBjb2xvcjogJHttLmJkVGhlbWUoImhzbCgwIDAlIDE1JSkiLCJoc2woMCAwJSA5My45JSkiKX07CiAgICAgIH0KCiAgICAgIC5lZGl0b3ItY29udGFpbmVyIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgICAgbWluLWhlaWdodDogJHttLmJkVGhlbWUoIjIwMHB4IiwiMjAwcHgiKX07CiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHttLmJkVGhlbWUoImhzbCgwIDAlIDg5LjglKSIsImhzbCgwIDAlIDE0LjklKSIpfTsKICAgICAgICBib3JkZXItcmFkaXVzOiA2cHg7CiAgICAgICAgYmFja2dyb3VuZDogJHttLmJkVGhlbWUoImhzbCgwIDAlIDEwMCUpIiwiaHNsKDAgMCUgOSUpIil9OwogICAgICAgIG92ZXJmbG93OiBoaWRkZW47CiAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuMnMgY3ViaWMtYmV6aWVyKDAuNCwgMCwgMC4yLCAxKTsKICAgICAgfQoKICAgICAgLmVkaXRvci1jb250YWluZXI6aG92ZXIgewogICAgICAgIGJvcmRlci1jb2xvcjogJHttLmJkVGhlbWUoImhzbCgwIDAlIDc5LjglKSIsImhzbCgwIDAlIDIwLjklKSIpfTsKICAgICAgfQoKICAgICAgLmVkaXRvci1jb250YWluZXIuZm9jdXNlZCB7CiAgICAgICAgYm9yZGVyLWNvbG9yOiAke20uYmRUaGVtZSgiaHNsKDAgMCUgOSUpIiwiaHNsKDAgMCUgOTglKSIpfTsKICAgICAgICBib3gtc2hhZG93OiAwIDAgMCAycHggJHttLmJkVGhlbWUoImhzbCgwIDAlIDklIC8gMC4wNSkiLCJoc2woMCAwJSA5OCUgLyAwLjA1KSIpfTsKICAgICAgfQoKICAgICAgLmVkaXRvci10b29sYmFyIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGZsZXgtd3JhcDogd3JhcDsKICAgICAgICBnYXA6IDRweDsKICAgICAgICBwYWRkaW5nOiA4cHggMTJweDsKICAgICAgICBiYWNrZ3JvdW5kOiAke20uYmRUaGVtZSgiaHNsKDIxMCA0MCUgOTYuMSUpIiwiaHNsKDAgMCUgMTQuOSUpIil9OwogICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAke20uYmRUaGVtZSgiaHNsKDAgMCUgODkuOCUpIiwiaHNsKDAgMCUgMTQuOSUpIil9OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICB9CgogICAgICAudG9vbGJhci1idXR0b24gewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKICAgICAgICB3aWR0aDogMzJweDsKICAgICAgICBoZWlnaHQ6IDMycHg7CiAgICAgICAgYm9yZGVyOiBub25lOwogICAgICAgIGJvcmRlci1yYWRpdXM6IDRweDsKICAgICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDsKICAgICAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7CiAgICAgICAgY29sb3I6ICR7bS5iZFRoZW1lKCJoc2woMjE1LjQgMTYuMyUgNDYuOSUpIiwiaHNsKDIxNSAyMC4yJSA2NS4xJSkiKX07CiAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuMTVzIGVhc2U7CiAgICAgICAgdXNlci1zZWxlY3Q6IG5vbmU7CiAgICAgIH0KCiAgICAgIC50b29sYmFyLWJ1dHRvbiBkZWVzLWljb24gewogICAgICAgIHdpZHRoOiAxNnB4OwogICAgICAgIGhlaWdodDogMTZweDsKICAgICAgfQoKICAgICAgLnRvb2xiYXItYnV0dG9uOmhvdmVyIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke20uYmRUaGVtZSgiaHNsKDAgMCUgOTUuMSUpIiwiaHNsKDAgMCUgMTQuOSUpIil9OwogICAgICAgIGNvbG9yOiAke20uYmRUaGVtZSgiaHNsKDAgMCUgOSUpIiwiaHNsKDAgMCUgOTUlKSIpfTsKICAgICAgfQoKICAgICAgLnRvb2xiYXItYnV0dG9uLmFjdGl2ZSB7CiAgICAgICAgYmFja2dyb3VuZDogJHttLmJkVGhlbWUoImhzbCgwIDAlIDklKSIsImhzbCgwIDAlIDk4JSkiKX07CiAgICAgICAgY29sb3I6ICR7bS5iZFRoZW1lKCJoc2woMCAwJSAxMDAlKSIsImhzbCgwIDAlIDMuOSUpIil9OwogICAgICB9CgogICAgICAudG9vbGJhci1idXR0b246ZGlzYWJsZWQgewogICAgICAgIG9wYWNpdHk6IDAuNTsKICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkOwogICAgICB9CgogICAgICAudG9vbGJhci1kaXZpZGVyIHsKICAgICAgICB3aWR0aDogMXB4OwogICAgICAgIGhlaWdodDogMjRweDsKICAgICAgICBiYWNrZ3JvdW5kOiAke20uYmRUaGVtZSgiaHNsKDAgMCUgODkuOCUpIiwiaHNsKDAgMCUgMTQuOSUpIil9OwogICAgICAgIG1hcmdpbjogMCA0cHg7CiAgICAgIH0KCiAgICAgIC5lZGl0b3ItY29udGVudCB7CiAgICAgICAgZmxleDogMTsKICAgICAgICBwYWRkaW5nOiAxNnB4OwogICAgICAgIG92ZXJmbG93LXk6IGF1dG87CiAgICAgICAgbWluLWhlaWdodDogdmFyKC0tbWluLWhlaWdodCwgMjAwcHgpOwogICAgICB9CgogICAgICAuZWRpdG9yLWNvbnRlbnQgLlByb3NlTWlycm9yIHsKICAgICAgICBvdXRsaW5lOiBub25lOwogICAgICAgIGxpbmUtaGVpZ2h0OiAxLjY7CiAgICAgICAgY29sb3I6ICR7bS5iZFRoZW1lKCJoc2woMCAwJSAzLjklKSIsImhzbCgwIDAlIDk4JSkiKX07CiAgICAgICAgbWluLWhlaWdodDogMTAwJTsKICAgICAgfQoKICAgICAgLmVkaXRvci1jb250ZW50IC5Qcm9zZU1pcnJvciBwIHsKICAgICAgICBtYXJnaW46IDAuNWVtIDA7CiAgICAgIH0KCiAgICAgIC5lZGl0b3ItY29udGVudCAuUHJvc2VNaXJyb3IgcDpmaXJzdC1jaGlsZCB7CiAgICAgICAgbWFyZ2luLXRvcDogMDsKICAgICAgfQoKICAgICAgLmVkaXRvci1jb250ZW50IC5Qcm9zZU1pcnJvciBwOmxhc3QtY2hpbGQgewogICAgICAgIG1hcmdpbi1ib3R0b206IDA7CiAgICAgIH0KCiAgICAgIC5lZGl0b3ItY29udGVudCAuUHJvc2VNaXJyb3IgaDEgewogICAgICAgIGZvbnQtc2l6ZTogMmVtOwogICAgICAgIGZvbnQtd2VpZ2h0OiBib2xkOwogICAgICAgIG1hcmdpbjogMWVtIDAgMC41ZW0gMDsKICAgICAgICBsaW5lLWhlaWdodDogMS4yOwogICAgICB9CgogICAgICAuZWRpdG9yLWNvbnRlbnQgLlByb3NlTWlycm9yIGgyIHsKICAgICAgICBmb250LXNpemU6IDEuNWVtOwogICAgICAgIGZvbnQtd2VpZ2h0OiBib2xkOwogICAgICAgIG1hcmdpbjogMWVtIDAgMC41ZW0gMDsKICAgICAgICBsaW5lLWhlaWdodDogMS4zOwogICAgICB9CgogICAgICAuZWRpdG9yLWNvbnRlbnQgLlByb3NlTWlycm9yIGgzIHsKICAgICAgICBmb250LXNpemU6IDEuMjVlbTsKICAgICAgICBmb250LXdlaWdodDogYm9sZDsKICAgICAgICBtYXJnaW46IDFlbSAwIDAuNWVtIDA7CiAgICAgICAgbGluZS1oZWlnaHQ6IDEuNDsKICAgICAgfQoKICAgICAgLmVkaXRvci1jb250ZW50IC5Qcm9zZU1pcnJvciB1bCwKICAgICAgLmVkaXRvci1jb250ZW50IC5Qcm9zZU1pcnJvciBvbCB7CiAgICAgICAgcGFkZGluZy1sZWZ0OiAxLjVlbTsKICAgICAgICBtYXJnaW46IDAuNWVtIDA7CiAgICAgIH0KCiAgICAgIC5lZGl0b3ItY29udGVudCAuUHJvc2VNaXJyb3IgbGkgewogICAgICAgIG1hcmdpbjogMC4yNWVtIDA7CiAgICAgIH0KCiAgICAgIC5lZGl0b3ItY29udGVudCAuUHJvc2VNaXJyb3IgYmxvY2txdW90ZSB7CiAgICAgICAgYm9yZGVyLWxlZnQ6IDRweCBzb2xpZCAke20uYmRUaGVtZSgiaHNsKDAgMCUgODkuOCUpIiwiaHNsKDAgMCUgMTQuOSUpIil9OwogICAgICAgIG1hcmdpbjogMWVtIDA7CiAgICAgICAgcGFkZGluZy1sZWZ0OiAxZW07CiAgICAgICAgY29sb3I6ICR7bS5iZFRoZW1lKCJoc2woMjE1LjQgMTYuMyUgNDYuOSUpIiwiaHNsKDIxNSAyMC4yJSA2NS4xJSkiKX07CiAgICAgICAgZm9udC1zdHlsZTogaXRhbGljOwogICAgICB9CgogICAgICAuZWRpdG9yLWNvbnRlbnQgLlByb3NlTWlycm9yIGNvZGUgewogICAgICAgIGJhY2tncm91bmQ6ICR7bS5iZFRoZW1lKCJoc2woMCAwJSA5NS4xJSkiLCJoc2woMCAwJSAxNC45JSkiKX07CiAgICAgICAgYm9yZGVyLXJhZGl1czogM3B4OwogICAgICAgIHBhZGRpbmc6IDAuMmVtIDAuNGVtOwogICAgICAgIGZvbnQtZmFtaWx5OiAnSW50ZWwgT25lIE1vbm8nLCAnRmlyYSBDb2RlJywgJ1NGIE1vbm8nLCBNb25hY28sICdDYXNjYWRpYSBDb2RlJywgJ1JvYm90byBNb25vJywgQ29uc29sYXMsICdDb3VyaWVyIE5ldycsIG1vbm9zcGFjZTsKICAgICAgICBmb250LXNpemU6IDAuOWVtOwogICAgICAgIGNvbG9yOiAke20uYmRUaGVtZSgiaHNsKDAgMCUgMTUlKSIsImhzbCgwIDAlIDkzLjklKSIpfTsKICAgICAgfQoKICAgICAgLmVkaXRvci1jb250ZW50IC5Qcm9zZU1pcnJvciBwcmUgewogICAgICAgIGJhY2tncm91bmQ6ICR7bS5iZFRoZW1lKCJoc2woMCAwJSAzLjklKSIsImhzbCgwIDAlIDk4JSkiKX07CiAgICAgICAgY29sb3I6ICR7bS5iZFRoZW1lKCJoc2woMCAwJSA5OCUpIiwiaHNsKDAgMCUgMy45JSkiKX07CiAgICAgICAgYm9yZGVyLXJhZGl1czogNnB4OwogICAgICAgIHBhZGRpbmc6IDFlbTsKICAgICAgICBtYXJnaW46IDFlbSAwOwogICAgICAgIG92ZXJmbG93LXg6IGF1dG87CiAgICAgIH0KCiAgICAgIC5lZGl0b3ItY29udGVudCAuUHJvc2VNaXJyb3IgcHJlIGNvZGUgewogICAgICAgIGJhY2tncm91bmQ6IG5vbmU7CiAgICAgICAgY29sb3I6IGluaGVyaXQ7CiAgICAgICAgcGFkZGluZzogMDsKICAgICAgICBib3JkZXItcmFkaXVzOiAwOwogICAgICB9CgogICAgICAuZWRpdG9yLWNvbnRlbnQgLlByb3NlTWlycm9yIGEgewogICAgICAgIGNvbG9yOiAke20uYmRUaGVtZSgiaHNsKDIyMi4yIDQ3LjQlIDUxLjIlKSIsImhzbCgyMTcuMiA5MS4yJSA1OS44JSkiKX07CiAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7CiAgICAgICAgY3Vyc29yOiBwb2ludGVyOwogICAgICB9CgogICAgICAuZWRpdG9yLWNvbnRlbnQgLlByb3NlTWlycm9yIGE6aG92ZXIgewogICAgICAgIGNvbG9yOiAke20uYmRUaGVtZSgiaHNsKDIyMi4yIDQ3LjQlIDQxLjIlKSIsImhzbCgyMTcuMiA5MS4yJSA2OS44JSkiKX07CiAgICAgIH0KCiAgICAgIC5lZGl0b3ItZm9vdGVyIHsKICAgICAgICBwYWRkaW5nOiA4cHggMTJweDsKICAgICAgICBiYWNrZ3JvdW5kOiAke20uYmRUaGVtZSgiaHNsKDIxMCA0MCUgOTYuMSUpIiwiaHNsKDAgMCUgMTQuOSUpIil9OwogICAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAke20uYmRUaGVtZSgiaHNsKDAgMCUgODkuOCUpIiwiaHNsKDAgMCUgMTQuOSUpIil9OwogICAgICAgIGZvbnQtc2l6ZTogMTJweDsKICAgICAgICBjb2xvcjogJHttLmJkVGhlbWUoImhzbCgyMTUuNCAxNi4zJSA0Ni45JSkiLCJoc2woMjE1IDIwLjIlIDY1LjElKSIpfTsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICB9CgogICAgICAud29yZC1jb3VudCB7CiAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDsKICAgICAgfQoKICAgICAgLmxpbmstaW5wdXQgewogICAgICAgIGRpc3BsYXk6IG5vbmU7CiAgICAgICAgcG9zaXRpb246IGFic29sdXRlOwogICAgICAgIHRvcDogMTAwJTsKICAgICAgICBsZWZ0OiAwOwogICAgICAgIHJpZ2h0OiAwOwogICAgICAgIGJhY2tncm91bmQ6ICR7bS5iZFRoZW1lKCJoc2woMCAwJSAxMDAlKSIsImhzbCgwIDAlIDklKSIpfTsKICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAke20uYmRUaGVtZSgiaHNsKDAgMCUgODkuOCUpIiwiaHNsKDAgMCUgMTQuOSUpIil9OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDZweDsKICAgICAgICBib3gtc2hhZG93OiAwIDRweCA2cHggLTFweCByZ2JhKDAsIDAsIDAsIDAuMSk7CiAgICAgICAgcGFkZGluZzogMTJweDsKICAgICAgICB6LWluZGV4OiAxMDAwOwogICAgICB9CgogICAgICAubGluay1pbnB1dC5zaG93IHsKICAgICAgICBkaXNwbGF5OiBibG9jazsKICAgICAgfQoKICAgICAgLmxpbmstaW5wdXQgaW5wdXQgewogICAgICAgIHdpZHRoOiAxMDAlOwogICAgICAgIHBhZGRpbmc6IDhweCAxMnB4OwogICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICR7bS5iZFRoZW1lKCJoc2woMCAwJSA4OS44JSkiLCJoc2woMCAwJSAxNC45JSkiKX07CiAgICAgICAgYm9yZGVyLXJhZGl1czogNnB4OwogICAgICAgIG91dGxpbmU6IG5vbmU7CiAgICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgICAgIGJhY2tncm91bmQ6ICR7bS5iZFRoZW1lKCJoc2woMCAwJSAxMDAlKSIsImhzbCgwIDAlIDklKSIpfTsKICAgICAgICBjb2xvcjogJHttLmJkVGhlbWUoImhzbCgwIDAlIDMuOSUpIiwiaHNsKDAgMCUgOTglKSIpfTsKICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC4ycyBjdWJpYy1iZXppZXIoMC40LCAwLCAwLjIsIDEpOwogICAgICB9CgogICAgICAubGluay1pbnB1dCBpbnB1dDpmb2N1cyB7CiAgICAgICAgYm9yZGVyLWNvbG9yOiAke20uYmRUaGVtZSgiaHNsKDAgMCUgOSUpIiwiaHNsKDAgMCUgOTglKSIpfTsKICAgICAgICBib3gtc2hhZG93OiAwIDAgMCAycHggJHttLmJkVGhlbWUoImhzbCgwIDAlIDklIC8gMC4wNSkiLCJoc2woMCAwJSA5OCUgLyAwLjA1KSIpfTsKICAgICAgfQoKICAgICAgLmxpbmstaW5wdXQtYnV0dG9ucyB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBnYXA6IDhweDsKICAgICAgICBtYXJnaW4tdG9wOiA4cHg7CiAgICAgIH0KCiAgICAgIC5saW5rLWlucHV0LWJ1dHRvbnMgYnV0dG9uIHsKICAgICAgICBwYWRkaW5nOiA2cHggMTJweDsKICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAke20uYmRUaGVtZSgiaHNsKDAgMCUgODkuOCUpIiwiaHNsKDAgMCUgMTQuOSUpIil9OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDRweDsKICAgICAgICBiYWNrZ3JvdW5kOiAke20uYmRUaGVtZSgiaHNsKDAgMCUgMTAwJSkiLCJoc2woMCAwJSA5JSkiKX07CiAgICAgICAgY3Vyc29yOiBwb2ludGVyOwogICAgICAgIGZvbnQtc2l6ZTogMTJweDsKICAgICAgICBjb2xvcjogJHttLmJkVGhlbWUoImhzbCgwIDAlIDQ1LjElKSIsImhzbCgwIDAlIDYzLjklKSIpfTsKICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC4xNXMgZWFzZTsKICAgICAgICBmb250LXdlaWdodDogNTAwOwogICAgICB9CgogICAgICAubGluay1pbnB1dC1idXR0b25zIGJ1dHRvbjpob3ZlciB7CiAgICAgICAgYmFja2dyb3VuZDogJHttLmJkVGhlbWUoImhzbCgwIDAlIDk1LjElKSIsImhzbCgwIDAlIDE0LjklKSIpfTsKICAgICAgICBjb2xvcjogJHttLmJkVGhlbWUoImhzbCgwIDAlIDklKSIsImhzbCgwIDAlIDk1JSkiKX07CiAgICAgIH0KCiAgICAgIC5saW5rLWlucHV0LWJ1dHRvbnMgYnV0dG9uLnByaW1hcnkgewogICAgICAgIGJhY2tncm91bmQ6ICR7bS5iZFRoZW1lKCJoc2woMCAwJSA5JSkiLCJoc2woMCAwJSA5OCUpIil9OwogICAgICAgIGNvbG9yOiAke20uYmRUaGVtZSgiaHNsKDAgMCUgMTAwJSkiLCJoc2woMCAwJSAzLjklKSIpfTsKICAgICAgICBib3JkZXItY29sb3I6ICR7bS5iZFRoZW1lKCJoc2woMCAwJSA5JSkiLCJoc2woMCAwJSA5OCUpIil9OwogICAgICB9CgogICAgICAubGluay1pbnB1dC1idXR0b25zIGJ1dHRvbi5wcmltYXJ5OmhvdmVyIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke20uYmRUaGVtZSgiaHNsKDAgMCUgMTUlKSIsImhzbCgwIDAlIDkzLjklKSIpfTsKICAgICAgICBib3JkZXItY29sb3I6ICR7bS5iZFRoZW1lKCJoc2woMCAwJSAxNSUpIiwiaHNsKDAgMCUgOTMuOSUpIil9OwogICAgICB9CgogICAgICAuZGVzY3JpcHRpb24gewogICAgICAgIG1hcmdpbi10b3A6IDhweDsKICAgICAgICBmb250LXNpemU6IDEycHg7CiAgICAgICAgY29sb3I6ICR7bS5iZFRoZW1lKCJoc2woMjE1LjQgMTYuMyUgNDYuOSUpIiwiaHNsKDIxNSAyMC4yJSA2NS4xJSkiKX07CiAgICAgICAgbGluZS1oZWlnaHQ6IDEuNDsKICAgICAgfQoKICAgICAgOmhvc3QoW2Rpc2FibGVkXSkgLmVkaXRvci1jb250YWluZXIgewogICAgICAgIG9wYWNpdHk6IDAuNjsKICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkOwogICAgICB9CgogICAgICA6aG9zdChbZGlzYWJsZWRdKSAudG9vbGJhci1idXR0b24sCiAgICAgIDpob3N0KFtkaXNhYmxlZF0pIC5lZGl0b3ItY29udGVudCB7CiAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7CiAgICAgIH0KICAgIGBdfSk7dmFyIEQwcixFMHI9cCgoKT0+e3hlKCk7RDByPWU9PkNgCiAgICAgICAgPGRpdiBjbGFzcz0iaW5wdXQtd3JhcHBlciI+CiAgICAgICAgICAke2UubGFiZWw/Q2A8bGFiZWwgY2xhc3M9ImxhYmVsIj4ke2UubGFiZWx9PC9sYWJlbD5gOiIifQogICAgICAgICAgPGRpdiBjbGFzcz0iZWRpdG9yLWNvbnRhaW5lciAke2UuZWRpdG9yPy5pc0ZvY3VzZWQ/ImZvY3VzZWQiOiIifSIgc3R5bGU9Ii0tbWluLWhlaWdodDogJHtlLm1pbkhlaWdodH1weCI+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9ImVkaXRvci10b29sYmFyIj4KICAgICAgICAgICAgICAke2UucmVuZGVyVG9vbGJhcigpfQogICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImxpbmstaW5wdXQgJHtlLnNob3dMaW5rSW5wdXQ/InNob3ciOiIifSI+CiAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT0idXJsIiBwbGFjZWhvbGRlcj0iRW50ZXIgVVJMLi4uIiBAa2V5ZG93bj0ke2UuaGFuZGxlTGlua0lucHV0S2V5ZG93bn0gLz4KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImxpbmstaW5wdXQtYnV0dG9ucyI+CiAgICAgICAgICAgICAgICAgIDxidXR0b24gY2xhc3M9InByaW1hcnkiIEBjbGljaz0ke2Uuc2F2ZUxpbmt9PlNhdmU8L2J1dHRvbj4KICAgICAgICAgICAgICAgICAgPGJ1dHRvbiBAY2xpY2s9JHtlLnJlbW92ZUxpbmt9PlJlbW92ZTwvYnV0dG9uPgogICAgICAgICAgICAgICAgICA8YnV0dG9uIEBjbGljaz0ke2UuaGlkZUxpbmtJbnB1dH0+Q2FuY2VsPC9idXR0b24+CiAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9ImVkaXRvci1jb250ZW50Ij48L2Rpdj4KICAgICAgICAgICAgJHtlLnNob3dXb3JkQ291bnQ/Q2AKICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iZWRpdG9yLWZvb3RlciI+CiAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9IndvcmQtY291bnQiPiR7ZS53b3JkQ291bnR9IHdvcmQke2Uud29yZENvdW50IT09MT8icyI6IiJ9PC9zcGFuPgogICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgIGA6IiJ9CiAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICR7ZS5kZXNjcmlwdGlvbj9DYDxkaXYgY2xhc3M9ImRlc2NyaXB0aW9uIj4ke2UuZGVzY3JpcHRpb259PC9kaXY+YDoiIn0KICAgICAgICA8L2Rpdj4KICAgICAgYH0pO3ZhciBHZCxRbiwkMHIsWDZlPXAoKCk9PntNMSgpO18wcigpO0EwcigpO0UwcigpO29yKCk7eGUoKTtCNCgpO0dkPWZ1bmN0aW9uKGUsdCxyLGksYSxuKXtmdW5jdGlvbiBvKHkpe2lmKHkhPT12b2lkIDAmJnR5cGVvZiB5IT0iZnVuY3Rpb24iKXRocm93IG5ldyBUeXBlRXJyb3IoIkZ1bmN0aW9uIGV4cGVjdGVkIik7cmV0dXJuIHl9Zm9yKHZhciBzPWkua2luZCxsPXM9PT0iZ2V0dGVyIj8iZ2V0IjpzPT09InNldHRlciI/InNldCI6InZhbHVlIixjPSF0JiZlP2kuc3RhdGljP2U6ZS5wcm90b3R5cGU6bnVsbCx1PXR8fChjP09iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoYyxpLm5hbWUpOnt9KSxkLGg9ITEsZj1yLmxlbmd0aC0xO2Y+PTA7Zi0tKXt2YXIgeD17fTtmb3IodmFyIHYgaW4gaSl4W3ZdPXY9PT0iYWNjZXNzIj97fTppW3ZdO2Zvcih2YXIgdiBpbiBpLmFjY2Vzcyl4LmFjY2Vzc1t2XT1pLmFjY2Vzc1t2XTt4LmFkZEluaXRpYWxpemVyPWZ1bmN0aW9uKHkpe2lmKGgpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGFkZCBpbml0aWFsaXplcnMgYWZ0ZXIgZGVjb3JhdGlvbiBoYXMgY29tcGxldGVkIik7bi5wdXNoKG8oeXx8bnVsbCkpfTt2YXIgYj0oMCxyW2ZdKShzPT09ImFjY2Vzc29yIj97Z2V0OnUuZ2V0LHNldDp1LnNldH06dVtsXSx4KTtpZihzPT09ImFjY2Vzc29yIil7aWYoYj09PXZvaWQgMCljb250aW51ZTtpZihiPT09bnVsbHx8dHlwZW9mIGIhPSJvYmplY3QiKXRocm93IG5ldyBUeXBlRXJyb3IoIk9iamVjdCBleHBlY3RlZCIpOyhkPW8oYi5nZXQpKSYmKHUuZ2V0PWQpLChkPW8oYi5zZXQpKSYmKHUuc2V0PWQpLChkPW8oYi5pbml0KSkmJmEudW5zaGlmdChkKX1lbHNlKGQ9byhiKSkmJihzPT09ImZpZWxkIj9hLnVuc2hpZnQoZCk6dVtsXT1kKX1jJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoYyxpLm5hbWUsdSksaD0hMH0sUW49ZnVuY3Rpb24oZSx0LHIpe2Zvcih2YXIgaT1hcmd1bWVudHMubGVuZ3RoPjIsYT0wO2E8dC5sZW5ndGg7YSsrKXI9aT90W2FdLmNhbGwoZSxyKTp0W2FdLmNhbGwoZSk7cmV0dXJuIGk/cjp2b2lkIDB9LCQwcj0oKCk9PntsZXQgZT1beWUoImRlZXMtaW5wdXQtcmljaHRleHQiKV0sdCxyPVtdLGksYT1vdCxuLG89W10scz1bXSxsLGM9W10sdT1bXSxkLGg9W10sZj1bXSx4LHY9W10sYj1bXSx5LHc9W10saz1bXSxPLHo9W10sTT1bXTt2YXIgRj1jbGFzcyBleHRlbmRzIGF7c3RhdGlje2k9dGhpc31zdGF0aWN7bGV0IEQ9dHlwZW9mIFN5bWJvbD09ImZ1bmN0aW9uIiYmU3ltYm9sLm1ldGFkYXRhP09iamVjdC5jcmVhdGUoYVtTeW1ib2wubWV0YWRhdGFdPz9udWxsKTp2b2lkIDA7bj1baih7dHlwZTpTdHJpbmcscmVmbGVjdDohMH0pXSxsPVtqKHt0eXBlOlN0cmluZ30pXSxkPVtqKHt0eXBlOkJvb2xlYW59KV0seD1baih7dHlwZTpOdW1iZXJ9KV0seT1bZmUoKV0sTz1bZmUoKV0sR2QodGhpcyxudWxsLG4se2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJ2YWx1ZSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6Tj0+InZhbHVlImluIE4sZ2V0Ok49Pk4udmFsdWUsc2V0OihOLFIpPT57Ti52YWx1ZT1SfX0sbWV0YWRhdGE6RH0sbyxzKSxHZCh0aGlzLG51bGwsbCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InBsYWNlaG9sZGVyIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpOPT4icGxhY2Vob2xkZXIiaW4gTixnZXQ6Tj0+Ti5wbGFjZWhvbGRlcixzZXQ6KE4sUik9PntOLnBsYWNlaG9sZGVyPVJ9fSxtZXRhZGF0YTpEfSxjLHUpLEdkKHRoaXMsbnVsbCxkLHtraW5kOiJhY2Nlc3NvciIsbmFtZToic2hvd1dvcmRDb3VudCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6Tj0+InNob3dXb3JkQ291bnQiaW4gTixnZXQ6Tj0+Ti5zaG93V29yZENvdW50LHNldDooTixSKT0+e04uc2hvd1dvcmRDb3VudD1SfX0sbWV0YWRhdGE6RH0saCxmKSxHZCh0aGlzLG51bGwseCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6Im1pbkhlaWdodCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6Tj0+Im1pbkhlaWdodCJpbiBOLGdldDpOPT5OLm1pbkhlaWdodCxzZXQ6KE4sUik9PntOLm1pbkhlaWdodD1SfX0sbWV0YWRhdGE6RH0sdixiKSxHZCh0aGlzLG51bGwseSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InNob3dMaW5rSW5wdXQiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOk49PiJzaG93TGlua0lucHV0ImluIE4sZ2V0Ok49Pk4uc2hvd0xpbmtJbnB1dCxzZXQ6KE4sUik9PntOLnNob3dMaW5rSW5wdXQ9Un19LG1ldGFkYXRhOkR9LHcsayksR2QodGhpcyxudWxsLE8se2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJ3b3JkQ291bnQiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOk49PiJ3b3JkQ291bnQiaW4gTixnZXQ6Tj0+Ti53b3JkQ291bnQsc2V0OihOLFIpPT57Ti53b3JkQ291bnQ9Un19LG1ldGFkYXRhOkR9LHosTSksR2QobnVsbCx0PXt2YWx1ZTppfSxlLHtraW5kOiJjbGFzcyIsbmFtZTppLm5hbWUsbWV0YWRhdGE6RH0sbnVsbCxyKSxGPWk9dC52YWx1ZSxEJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoaSxTeW1ib2wubWV0YWRhdGEse2VudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwLHZhbHVlOkR9KX1zdGF0aWMgZGVtbz1UMHI7c3RhdGljIGRlbW9Hcm91cHM9WyJJbnB1dCJdOyNlPVFuKHRoaXMsbywiIik7Z2V0IHZhbHVlKCl7cmV0dXJuIHRoaXMuI2V9c2V0IHZhbHVlKEQpe3RoaXMuI2U9RH0jdD0oUW4odGhpcyxzKSxRbih0aGlzLGMsIiIpKTtnZXQgcGxhY2Vob2xkZXIoKXtyZXR1cm4gdGhpcy4jdH1zZXQgcGxhY2Vob2xkZXIoRCl7dGhpcy4jdD1EfSNyPShRbih0aGlzLHUpLFFuKHRoaXMsaCwhMCkpO2dldCBzaG93V29yZENvdW50KCl7cmV0dXJuIHRoaXMuI3J9c2V0IHNob3dXb3JkQ291bnQoRCl7dGhpcy4jcj1EfSNpPShRbih0aGlzLGYpLFFuKHRoaXMsdiwyMDApKTtnZXQgbWluSGVpZ2h0KCl7cmV0dXJuIHRoaXMuI2l9c2V0IG1pbkhlaWdodChEKXt0aGlzLiNpPUR9I2E9KFFuKHRoaXMsYiksUW4odGhpcyx3LCExKSk7Z2V0IHNob3dMaW5rSW5wdXQoKXtyZXR1cm4gdGhpcy4jYX1zZXQgc2hvd0xpbmtJbnB1dChEKXt0aGlzLiNhPUR9I249KFFuKHRoaXMsayksUW4odGhpcyx6LDApKTtnZXQgd29yZENvdW50KCl7cmV0dXJuIHRoaXMuI259c2V0IHdvcmRDb3VudChEKXt0aGlzLiNuPUR9ZWRpdG9yRWxlbWVudD1Rbih0aGlzLE0pO2xpbmtJbnB1dEVsZW1lbnQ7dGlwdGFwQnVuZGxlPW51bGw7ZWRpdG9yO3N0YXRpYyBzdHlsZXM9TDByO3JlbmRlcigpe3JldHVybiBEMHIodGhpcyl9cmVuZGVyVG9vbGJhcigpe2xldCBEPXRoaXMuZ2V0VG9vbGJhckJ1dHRvbnMoKTtyZXR1cm4gQ2AKICAgICAgJHtELm1hcChOPT5OLmlzRGl2aWRlcj9DYDxkaXYgY2xhc3M9InRvb2xiYXItZGl2aWRlciI+PC9kaXY+YDpDYAogICAgICAgICAgPGJ1dHRvbgogICAgICAgICAgICBjbGFzcz0idG9vbGJhci1idXR0b24gJHtOLmlzQWN0aXZlPy4oKT8iYWN0aXZlIjoiIn0iCiAgICAgICAgICAgIEBjbGljaz0ke04uYWN0aW9ufQogICAgICAgICAgICB0aXRsZT0ke04udGl0bGV9CiAgICAgICAgICAgID9kaXNhYmxlZD0ke3RoaXMuZGlzYWJsZWR8fCF0aGlzLmVkaXRvcn0KICAgICAgICAgID4KICAgICAgICAgICAgPGRlZXMtaWNvbiAuaWNvbj0ke04uaWNvbn0+PC9kZWVzLWljb24+CiAgICAgICAgICA8L2J1dHRvbj4KICAgICAgICBgKX0KICAgIGB9Z2V0VG9vbGJhckJ1dHRvbnMoKXtyZXR1cm4gdGhpcy5lZGl0b3I/W3tuYW1lOiJib2xkIixpY29uOiJsdWNpZGU6Ym9sZCIsdGl0bGU6IkJvbGQgKEN0cmwrQikiLGFjdGlvbjooKT0+dGhpcy5lZGl0b3IuY2hhaW4oKS5mb2N1cygpLnRvZ2dsZUJvbGQoKS5ydW4oKSxpc0FjdGl2ZTooKT0+dGhpcy5lZGl0b3IuaXNBY3RpdmUoImJvbGQiKX0se25hbWU6Iml0YWxpYyIsaWNvbjoibHVjaWRlOml0YWxpYyIsdGl0bGU6Ikl0YWxpYyAoQ3RybCtJKSIsYWN0aW9uOigpPT50aGlzLmVkaXRvci5jaGFpbigpLmZvY3VzKCkudG9nZ2xlSXRhbGljKCkucnVuKCksaXNBY3RpdmU6KCk9PnRoaXMuZWRpdG9yLmlzQWN0aXZlKCJpdGFsaWMiKX0se25hbWU6InVuZGVybGluZSIsaWNvbjoibHVjaWRlOnVuZGVybGluZSIsdGl0bGU6IlVuZGVybGluZSAoQ3RybCtVKSIsYWN0aW9uOigpPT50aGlzLmVkaXRvci5jaGFpbigpLmZvY3VzKCkudG9nZ2xlVW5kZXJsaW5lKCkucnVuKCksaXNBY3RpdmU6KCk9PnRoaXMuZWRpdG9yLmlzQWN0aXZlKCJ1bmRlcmxpbmUiKX0se25hbWU6InN0cmlrZSIsaWNvbjoibHVjaWRlOnN0cmlrZXRocm91Z2giLHRpdGxlOiJTdHJpa2V0aHJvdWdoIixhY3Rpb246KCk9PnRoaXMuZWRpdG9yLmNoYWluKCkuZm9jdXMoKS50b2dnbGVTdHJpa2UoKS5ydW4oKSxpc0FjdGl2ZTooKT0+dGhpcy5lZGl0b3IuaXNBY3RpdmUoInN0cmlrZSIpfSx7bmFtZToiZGl2aWRlcjEiLHRpdGxlOiIiLGlzRGl2aWRlcjohMH0se25hbWU6ImgxIixpY29uOiJsdWNpZGU6aGVhZGluZzEiLHRpdGxlOiJIZWFkaW5nIDEiLGFjdGlvbjooKT0+dGhpcy5lZGl0b3IuY2hhaW4oKS5mb2N1cygpLnRvZ2dsZUhlYWRpbmcoe2xldmVsOjF9KS5ydW4oKSxpc0FjdGl2ZTooKT0+dGhpcy5lZGl0b3IuaXNBY3RpdmUoImhlYWRpbmciLHtsZXZlbDoxfSl9LHtuYW1lOiJoMiIsaWNvbjoibHVjaWRlOmhlYWRpbmcyIix0aXRsZToiSGVhZGluZyAyIixhY3Rpb246KCk9PnRoaXMuZWRpdG9yLmNoYWluKCkuZm9jdXMoKS50b2dnbGVIZWFkaW5nKHtsZXZlbDoyfSkucnVuKCksaXNBY3RpdmU6KCk9PnRoaXMuZWRpdG9yLmlzQWN0aXZlKCJoZWFkaW5nIix7bGV2ZWw6Mn0pfSx7bmFtZToiaDMiLGljb246Imx1Y2lkZTpoZWFkaW5nMyIsdGl0bGU6IkhlYWRpbmcgMyIsYWN0aW9uOigpPT50aGlzLmVkaXRvci5jaGFpbigpLmZvY3VzKCkudG9nZ2xlSGVhZGluZyh7bGV2ZWw6M30pLnJ1bigpLGlzQWN0aXZlOigpPT50aGlzLmVkaXRvci5pc0FjdGl2ZSgiaGVhZGluZyIse2xldmVsOjN9KX0se25hbWU6ImRpdmlkZXIyIix0aXRsZToiIixpc0RpdmlkZXI6ITB9LHtuYW1lOiJidWxsZXRMaXN0IixpY29uOiJsdWNpZGU6bGlzdCIsdGl0bGU6IkJ1bGxldCBMaXN0IixhY3Rpb246KCk9PnRoaXMuZWRpdG9yLmNoYWluKCkuZm9jdXMoKS50b2dnbGVCdWxsZXRMaXN0KCkucnVuKCksaXNBY3RpdmU6KCk9PnRoaXMuZWRpdG9yLmlzQWN0aXZlKCJidWxsZXRMaXN0Iil9LHtuYW1lOiJvcmRlcmVkTGlzdCIsaWNvbjoibHVjaWRlOmxpc3RPcmRlcmVkIix0aXRsZToiTnVtYmVyZWQgTGlzdCIsYWN0aW9uOigpPT50aGlzLmVkaXRvci5jaGFpbigpLmZvY3VzKCkudG9nZ2xlT3JkZXJlZExpc3QoKS5ydW4oKSxpc0FjdGl2ZTooKT0+dGhpcy5lZGl0b3IuaXNBY3RpdmUoIm9yZGVyZWRMaXN0Iil9LHtuYW1lOiJibG9ja3F1b3RlIixpY29uOiJsdWNpZGU6cXVvdGUiLHRpdGxlOiJRdW90ZSIsYWN0aW9uOigpPT50aGlzLmVkaXRvci5jaGFpbigpLmZvY3VzKCkudG9nZ2xlQmxvY2txdW90ZSgpLnJ1bigpLGlzQWN0aXZlOigpPT50aGlzLmVkaXRvci5pc0FjdGl2ZSgiYmxvY2txdW90ZSIpfSx7bmFtZToiY29kZSIsaWNvbjoibHVjaWRlOmNvZGUiLHRpdGxlOiJDb2RlIixhY3Rpb246KCk9PnRoaXMuZWRpdG9yLmNoYWluKCkuZm9jdXMoKS50b2dnbGVDb2RlKCkucnVuKCksaXNBY3RpdmU6KCk9PnRoaXMuZWRpdG9yLmlzQWN0aXZlKCJjb2RlIil9LHtuYW1lOiJjb2RlQmxvY2siLGljb246Imx1Y2lkZTpmaWxlQ29kZSIsdGl0bGU6IkNvZGUgQmxvY2siLGFjdGlvbjooKT0+dGhpcy5lZGl0b3IuY2hhaW4oKS5mb2N1cygpLnRvZ2dsZUNvZGVCbG9jaygpLnJ1bigpLGlzQWN0aXZlOigpPT50aGlzLmVkaXRvci5pc0FjdGl2ZSgiY29kZUJsb2NrIil9LHtuYW1lOiJkaXZpZGVyMyIsdGl0bGU6IiIsaXNEaXZpZGVyOiEwfSx7bmFtZToibGluayIsaWNvbjoibHVjaWRlOmxpbmsiLHRpdGxlOiJBZGQgTGluayIsYWN0aW9uOigpPT50aGlzLnRvZ2dsZUxpbmsoKSxpc0FjdGl2ZTooKT0+dGhpcy5lZGl0b3IuaXNBY3RpdmUoImxpbmsiKX0se25hbWU6ImFsaWduTGVmdCIsaWNvbjoibHVjaWRlOmFsaWduTGVmdCIsdGl0bGU6IkFsaWduIExlZnQiLGFjdGlvbjooKT0+dGhpcy5lZGl0b3IuY2hhaW4oKS5mb2N1cygpLnNldFRleHRBbGlnbigibGVmdCIpLnJ1bigpLGlzQWN0aXZlOigpPT50aGlzLmVkaXRvci5pc0FjdGl2ZSh7dGV4dEFsaWduOiJsZWZ0In0pfSx7bmFtZToiYWxpZ25DZW50ZXIiLGljb246Imx1Y2lkZTphbGlnbkNlbnRlciIsdGl0bGU6IkFsaWduIENlbnRlciIsYWN0aW9uOigpPT50aGlzLmVkaXRvci5jaGFpbigpLmZvY3VzKCkuc2V0VGV4dEFsaWduKCJjZW50ZXIiKS5ydW4oKSxpc0FjdGl2ZTooKT0+dGhpcy5lZGl0b3IuaXNBY3RpdmUoe3RleHRBbGlnbjoiY2VudGVyIn0pfSx7bmFtZToiYWxpZ25SaWdodCIsaWNvbjoibHVjaWRlOmFsaWduUmlnaHQiLHRpdGxlOiJBbGlnbiBSaWdodCIsYWN0aW9uOigpPT50aGlzLmVkaXRvci5jaGFpbigpLmZvY3VzKCkuc2V0VGV4dEFsaWduKCJyaWdodCIpLnJ1bigpLGlzQWN0aXZlOigpPT50aGlzLmVkaXRvci5pc0FjdGl2ZSh7dGV4dEFsaWduOiJyaWdodCJ9KX0se25hbWU6ImRpdmlkZXI0Iix0aXRsZToiIixpc0RpdmlkZXI6ITB9LHtuYW1lOiJ1bmRvIixpY29uOiJsdWNpZGU6dW5kbyIsdGl0bGU6IlVuZG8gKEN0cmwrWikiLGFjdGlvbjooKT0+dGhpcy5lZGl0b3IuY2hhaW4oKS5mb2N1cygpLnVuZG8oKS5ydW4oKX0se25hbWU6InJlZG8iLGljb246Imx1Y2lkZTpyZWRvIix0aXRsZToiUmVkbyAoQ3RybCtZKSIsYWN0aW9uOigpPT50aGlzLmVkaXRvci5jaGFpbigpLmZvY3VzKCkucmVkbygpLnJ1bigpfV06W119YXN5bmMgZmlyc3RVcGRhdGVkKCl7YXdhaXQgdGhpcy51cGRhdGVDb21wbGV0ZSx0aGlzLnRpcHRhcEJ1bmRsZT1hd2FpdCByYS5nZXRJbnN0YW5jZSgpLmxvYWRUaXB0YXAoKSx0aGlzLmVkaXRvckVsZW1lbnQ9dGhpcy5zaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3IoIi5lZGl0b3ItY29udGVudCIpLHRoaXMubGlua0lucHV0RWxlbWVudD10aGlzLnNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvcigiLmxpbmstaW5wdXQgaW5wdXQiKSx0aGlzLmluaXRpYWxpemVFZGl0b3IoKX1pbml0aWFsaXplRWRpdG9yKCl7aWYodGhpcy5kaXNhYmxlZHx8IXRoaXMudGlwdGFwQnVuZGxlKXJldHVybjtsZXR7RWRpdG9yOkQsU3RhcnRlcktpdDpOLFVuZGVybGluZTpSLFRleHRBbGlnbjpfLExpbms6UyxUeXBvZ3JhcGh5OiR9PXRoaXMudGlwdGFwQnVuZGxlO3RoaXMuZWRpdG9yPW5ldyBEKHtlbGVtZW50OnRoaXMuZWRpdG9yRWxlbWVudCxleHRlbnNpb25zOltOLmNvbmZpZ3VyZSh7aGVhZGluZzp7bGV2ZWxzOlsxLDIsM119fSksUi5jb25maWd1cmUoe30pLF8uY29uZmlndXJlKHt0eXBlczpbImhlYWRpbmciLCJwYXJhZ3JhcGgiXX0pLFMuY29uZmlndXJlKHtvcGVuT25DbGljazohMSxIVE1MQXR0cmlidXRlczp7Y2xhc3M6ImVkaXRvci1saW5rIn19KSwkLmNvbmZpZ3VyZSh7fSldLGNvbnRlbnQ6dGhpcy52YWx1ZXx8KHRoaXMucGxhY2Vob2xkZXI/YDxwPiR7dGhpcy5wbGFjZWhvbGRlcn08L3A+YDoiIiksb25VcGRhdGU6KHtlZGl0b3I6VH0pPT57dGhpcy52YWx1ZT1ULmdldEhUTUwoKSx0aGlzLnVwZGF0ZVdvcmRDb3VudCgpLHRoaXMuZGlzcGF0Y2hFdmVudChuZXcgQ3VzdG9tRXZlbnQoImlucHV0Iix7ZGV0YWlsOnt2YWx1ZTp0aGlzLnZhbHVlfSxidWJibGVzOiEwLGNvbXBvc2VkOiEwfSkpLHRoaXMuZGlzcGF0Y2hFdmVudChuZXcgQ3VzdG9tRXZlbnQoImNoYW5nZSIse2RldGFpbDp7dmFsdWU6dGhpcy52YWx1ZX0sYnViYmxlczohMCxjb21wb3NlZDohMH0pKX0sb25TZWxlY3Rpb25VcGRhdGU6KCk9Pnt0aGlzLnJlcXVlc3RVcGRhdGUoKX0sb25Gb2N1czooKT0+e3RoaXMucmVxdWVzdFVwZGF0ZSgpfSxvbkJsdXI6KCk9Pnt0aGlzLnJlcXVlc3RVcGRhdGUoKX19KSx0aGlzLnVwZGF0ZVdvcmRDb3VudCgpfXVwZGF0ZVdvcmRDb3VudCgpe2lmKCF0aGlzLmVkaXRvcilyZXR1cm47bGV0IEQ9dGhpcy5lZGl0b3IuZ2V0VGV4dCgpO3RoaXMud29yZENvdW50PUQudHJpbSgpP0QudHJpbSgpLnNwbGl0KC9ccysvKS5sZW5ndGg6MH10b2dnbGVMaW5rKCl7aWYodGhpcy5lZGl0b3IpaWYodGhpcy5lZGl0b3IuaXNBY3RpdmUoImxpbmsiKSl7bGV0IEQ9dGhpcy5lZGl0b3IuZ2V0QXR0cmlidXRlcygibGluayIpLmhyZWY7dGhpcy5zaG93TGlua0lucHV0PSEwLHJlcXVlc3RBbmltYXRpb25GcmFtZSgoKT0+e3RoaXMubGlua0lucHV0RWxlbWVudCYmKHRoaXMubGlua0lucHV0RWxlbWVudC52YWx1ZT1EfHwiIix0aGlzLmxpbmtJbnB1dEVsZW1lbnQuZm9jdXMoKSx0aGlzLmxpbmtJbnB1dEVsZW1lbnQuc2VsZWN0KCkpfSl9ZWxzZSB0aGlzLnNob3dMaW5rSW5wdXQ9ITAscmVxdWVzdEFuaW1hdGlvbkZyYW1lKCgpPT57dGhpcy5saW5rSW5wdXRFbGVtZW50JiYodGhpcy5saW5rSW5wdXRFbGVtZW50LnZhbHVlPSIiLHRoaXMubGlua0lucHV0RWxlbWVudC5mb2N1cygpKX0pfXNhdmVMaW5rKCl7aWYoIXRoaXMuZWRpdG9yfHwhdGhpcy5saW5rSW5wdXRFbGVtZW50KXJldHVybjtsZXQgRD10aGlzLmxpbmtJbnB1dEVsZW1lbnQudmFsdWU7RCYmdGhpcy5lZGl0b3IuY2hhaW4oKS5mb2N1cygpLnNldExpbmsoe2hyZWY6RH0pLnJ1bigpLHRoaXMuaGlkZUxpbmtJbnB1dCgpfXJlbW92ZUxpbmsoKXt0aGlzLmVkaXRvciYmKHRoaXMuZWRpdG9yLmNoYWluKCkuZm9jdXMoKS51bnNldExpbmsoKS5ydW4oKSx0aGlzLmhpZGVMaW5rSW5wdXQoKSl9aGlkZUxpbmtJbnB1dCgpe3RoaXMuc2hvd0xpbmtJbnB1dD0hMSx0aGlzLmVkaXRvcj8uY29tbWFuZHMuZm9jdXMoKX1oYW5kbGVMaW5rSW5wdXRLZXlkb3duKEQpe0Qua2V5PT09IkVudGVyIj8oRC5wcmV2ZW50RGVmYXVsdCgpLHRoaXMuc2F2ZUxpbmsoKSk6RC5rZXk9PT0iRXNjYXBlIiYmKEQucHJldmVudERlZmF1bHQoKSx0aGlzLmhpZGVMaW5rSW5wdXQoKSl9c2V0VmFsdWUoRCl7dGhpcy52YWx1ZT1ELHRoaXMuZWRpdG9yJiZEIT09dGhpcy5lZGl0b3IuZ2V0SFRNTCgpJiZ0aGlzLmVkaXRvci5jb21tYW5kcy5zZXRDb250ZW50KEQpfWdldFZhbHVlKCl7cmV0dXJuIHRoaXMudmFsdWV9Y2xlYXIoKXt0aGlzLnNldFZhbHVlKCIiKX1mb2N1cygpe3RoaXMuZWRpdG9yPy5jb21tYW5kcy5mb2N1cygpfWFzeW5jIGRpc2Nvbm5lY3RlZENhbGxiYWNrKCl7YXdhaXQgc3VwZXIuZGlzY29ubmVjdGVkQ2FsbGJhY2soKSx0aGlzLmVkaXRvciYmdGhpcy5lZGl0b3IuZGVzdHJveSgpfXN0YXRpY3tRbihpLHIpfX07cmV0dXJuIEY9aX0pKCl9KTt2YXIgSTByPXAoKCk9PntYNmUoKX0pO3ZhciBQMHI9cCgoKT0+e30pO3ZhciBOMHI9cCgoKT0+e1AwcigpfSk7dmFyIEYwcixPMHIsUjByPXAoKCk9Pnt4ZSgpO3AxKCk7T2koKTtPMHI9KCk9PkMoRjByfHwoRjByPXM1KFtgCiAgPGRlZXMtZGVtb3dyYXBwZXI+CiAgICA8c3R5bGU+CiAgICAgIGAsYAogICAgPC9zdHlsZT4KICAgIAogICAgPGRpdiBjbGFzcz0iZGVtby1jb250YWluZXIiPgogICAgICA8ZGVlcy1wYW5lbCAudGl0bGU9YCwiIC5zdWJ0aXRsZT0iLGA+CiAgICAgICAgPGRlZXMtaW5wdXQtdGFncwogICAgICAgICAgLmxhYmVsPWAsYAogICAgICAgICAgLnBsYWNlaG9sZGVyPWAsYAogICAgICAgICAgLnZhbHVlPWAsYAogICAgICAgICAgLmRlc2NyaXB0aW9uPWAsYAogICAgICAgID48L2RlZXMtaW5wdXQtdGFncz4KICAgICAgPC9kZWVzLXBhbmVsPgoKICAgICAgPGRlZXMtcGFuZWwgLnRpdGxlPWAsIiAuc3VidGl0bGU9IixgPgogICAgICAgIDxkZWVzLWlucHV0LXRhZ3MKICAgICAgICAgIC5sYWJlbD1gLGAKICAgICAgICAgIC5wbGFjZWhvbGRlcj1gLGAKICAgICAgICAgIC5zdWdnZXN0aW9ucz1gLGAKICAgICAgICAgIC52YWx1ZT1gLGAKICAgICAgICAgIC5kZXNjcmlwdGlvbj1gLGAKICAgICAgICA+PC9kZWVzLWlucHV0LXRhZ3M+CiAgICAgIDwvZGVlcy1wYW5lbD4KCiAgICAgIDxkZWVzLXBhbmVsIC50aXRsZT1gLCIgLnN1YnRpdGxlPSIsYD4KICAgICAgICA8ZGl2IGNsYXNzPSJncmlkLWxheW91dCI+CiAgICAgICAgICA8ZGVlcy1pbnB1dC10YWdzCiAgICAgICAgICAgIC5sYWJlbD1gLGAKICAgICAgICAgICAgLnBsYWNlaG9sZGVyPWAsYAogICAgICAgICAgICAubWF4VGFncz1gLGAKICAgICAgICAgICAgLnZhbHVlPWAsYAogICAgICAgICAgICAuZGVzY3JpcHRpb249YCxgCiAgICAgICAgICA+PC9kZWVzLWlucHV0LXRhZ3M+CiAgICAgICAgICAKICAgICAgICAgIDxkZWVzLWlucHV0LXRhZ3MKICAgICAgICAgICAgLmxhYmVsPWAsYAogICAgICAgICAgICAucGxhY2Vob2xkZXI9YCxgCiAgICAgICAgICAgIC5tYXhUYWdzPWAsYAogICAgICAgICAgICAuc3VnZ2VzdGlvbnM9YCxgCiAgICAgICAgICAgIC52YWx1ZT1gLGAKICAgICAgICAgICAgLmRlc2NyaXB0aW9uPWAsYAogICAgICAgICAgPjwvZGVlcy1pbnB1dC10YWdzPgogICAgICAgIDwvZGl2PgogICAgICA8L2RlZXMtcGFuZWw+CgogICAgICA8ZGVlcy1wYW5lbCAudGl0bGU9YCwiIC5zdWJ0aXRsZT0iLGA+CiAgICAgICAgPGRlZXMtaW5wdXQtdGFncwogICAgICAgICAgLmxhYmVsPWAsYAogICAgICAgICAgLnBsYWNlaG9sZGVyPWAsYAogICAgICAgICAgLnJlcXVpcmVkPWAsYAogICAgICAgICAgLmRlc2NyaXB0aW9uPWAsYAogICAgICAgID48L2RlZXMtaW5wdXQtdGFncz4KICAgICAgPC9kZWVzLXBhbmVsPgoKICAgICAgPGRlZXMtcGFuZWwgLnRpdGxlPWAsIiAuc3VidGl0bGU9IixgPgogICAgICAgIDxkZWVzLWlucHV0LXRhZ3MKICAgICAgICAgIC5sYWJlbD1gLGAKICAgICAgICAgIC52YWx1ZT1gLGAKICAgICAgICAgIC5kaXNhYmxlZD1gLGAKICAgICAgICAgIC5kZXNjcmlwdGlvbj1gLGAKICAgICAgICA+PC9kZWVzLWlucHV0LXRhZ3M+CiAgICAgIDwvZGVlcy1wYW5lbD4KCiAgICAgIDxkZWVzLXBhbmVsIC50aXRsZT1gLCIgLnN1YnRpdGxlPSIsYD4KICAgICAgICA8ZGVlcy1mb3JtPgogICAgICAgICAgPGRlZXMtaW5wdXQtdGV4dAogICAgICAgICAgICAubGFiZWw9YCxgCiAgICAgICAgICAgIC5wbGFjZWhvbGRlcj1gLGAKICAgICAgICAgICAgLnJlcXVpcmVkPWAsYAogICAgICAgICAgICAua2V5PWAsYAogICAgICAgICAgPjwvZGVlcy1pbnB1dC10ZXh0PgogICAgICAgICAgCiAgICAgICAgICA8ZGl2IGNsYXNzPSJncmlkLWxheW91dCI+CiAgICAgICAgICAgIDxkZWVzLWlucHV0LXRhZ3MKICAgICAgICAgICAgICAubGFiZWw9YCxgCiAgICAgICAgICAgICAgLnBsYWNlaG9sZGVyPWAsYAogICAgICAgICAgICAgIC5yZXF1aXJlZD1gLGAKICAgICAgICAgICAgICAua2V5PWAsYAogICAgICAgICAgICAgIC5zdWdnZXN0aW9ucz1gLGAKICAgICAgICAgICAgPjwvZGVlcy1pbnB1dC10YWdzPgogICAgICAgICAgICAKICAgICAgICAgICAgPGRlZXMtaW5wdXQtdGFncwogICAgICAgICAgICAgIC5sYWJlbD1gLGAKICAgICAgICAgICAgICAucGxhY2Vob2xkZXI9YCxgCiAgICAgICAgICAgICAgLmtleT1gLGAKICAgICAgICAgICAgICAubWF4VGFncz1gLGAKICAgICAgICAgICAgICAuc3VnZ2VzdGlvbnM9YCxgCiAgICAgICAgICAgID48L2RlZXMtaW5wdXQtdGFncz4KICAgICAgICAgIDwvZGl2PgogICAgICAgICAgCiAgICAgICAgICA8ZGVlcy1pbnB1dC10ZXh0CiAgICAgICAgICAgIC5sYWJlbD1gLGAKICAgICAgICAgICAgLmlucHV0VHlwZT1gLGAKICAgICAgICAgICAgLnBsYWNlaG9sZGVyPWAsYAogICAgICAgICAgICAua2V5PWAsYAogICAgICAgICAgPjwvZGVlcy1pbnB1dC10ZXh0PgogICAgICAgICAgCiAgICAgICAgICA8ZGVlcy1mb3JtLXN1Ym1pdCAudGV4dD1gLGA+PC9kZWVzLWZvcm0tc3VibWl0PgogICAgICAgIDwvZGVlcy1mb3JtPgogICAgICA8L2RlZXMtcGFuZWw+CgogICAgICA8ZGVlcy1wYW5lbCAudGl0bGU9YCwiIC5zdWJ0aXRsZT0iLGA+CiAgICAgICAgPGRlZXMtaW5wdXQtdGFncwogICAgICAgICAgaWQ9ImludGVyYWN0aXZlLXRhZ3MiCiAgICAgICAgICAubGFiZWw9YCxgCiAgICAgICAgICAucGxhY2Vob2xkZXI9YCxgCiAgICAgICAgICAuc3VnZ2VzdGlvbnM9YCxgCiAgICAgICAgICBAY2hhbmdlPWAsYAogICAgICAgID48L2RlZXMtaW5wdXQtdGFncz4KICAgICAgICAKICAgICAgICA8ZGl2IGNsYXNzPSJ0YWctcHJldmlldyIgaWQ9InRhZ3MtcHJldmlldyI+CiAgICAgICAgICA8ZW0gc3R5bGU9ImNvbG9yOiAjOTk5OyI+Tm8gdGFncyBhZGRlZCB5ZXQuLi48L2VtPgogICAgICAgIDwvZGl2PgogICAgICAgIAogICAgICAgIDxkaXYgY2xhc3M9Im91dHB1dC1wcmV2aWV3IiBpZD0idGFncy1qc29uIj4KICAgICAgICAgIDxlbT5KU09OIG91dHB1dCB3aWxsIGFwcGVhciBoZXJlLi4uPC9lbT4KICAgICAgICA8L2Rpdj4KICAgICAgICAKICAgICAgICA8c2NyaXB0PgogICAgICAgICAgLy8gVXBkYXRlIEpTT04gcHJldmlldwogICAgICAgICAgY29uc3QgdGFnc0lucHV0ID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcignI2ludGVyYWN0aXZlLXRhZ3MnKTsKICAgICAgICAgIHRhZ3NJbnB1dD8uYWRkRXZlbnRMaXN0ZW5lcignY2hhbmdlJywgKGUpID0+IHsKICAgICAgICAgICAgY29uc3QganNvblByZXZpZXcgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCcjdGFncy1qc29uJyk7CiAgICAgICAgICAgIGlmIChqc29uUHJldmlldykgewogICAgICAgICAgICAgIGpzb25QcmV2aWV3LnRleHRDb250ZW50ID0gSlNPTi5zdHJpbmdpZnkoZS5kZXRhaWwudmFsdWUsIG51bGwsIDIpOwogICAgICAgICAgICB9CiAgICAgICAgICB9KTsKICAgICAgICA8XC9zY3JpcHQ+CiAgICAgIDwvZGVlcy1wYW5lbD4KICAgIDwvZGl2PgogIDwvZGVlcy1kZW1vd3JhcHBlcj4KYF0pKSxvZWAKICAgICAgICAuZGVtby1jb250YWluZXIgewogICAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgICAgICBnYXA6IDI0cHg7CiAgICAgICAgICBwYWRkaW5nOiAyNHB4OwogICAgICAgICAgbWF4LXdpZHRoOiAxMjAwcHg7CiAgICAgICAgICBtYXJnaW46IDAgYXV0bzsKICAgICAgICB9CiAgICAgICAgCiAgICAgICAgZGVlcy1wYW5lbCB7CiAgICAgICAgICBtYXJnaW4tYm90dG9tOiAyNHB4OwogICAgICAgIH0KICAgICAgICAKICAgICAgICBkZWVzLXBhbmVsOmxhc3QtY2hpbGQgewogICAgICAgICAgbWFyZ2luLWJvdHRvbTogMDsKICAgICAgICB9CiAgICAgICAgCiAgICAgICAgLmdyaWQtbGF5b3V0IHsKICAgICAgICAgIGRpc3BsYXk6IGdyaWQ7CiAgICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDFmciAxZnI7CiAgICAgICAgICBnYXA6IDE2cHg7CiAgICAgICAgfQogICAgICAgIAogICAgICAgIEBtZWRpYSAobWF4LXdpZHRoOiA3NjhweCkgewogICAgICAgICAgLmdyaWQtbGF5b3V0IHsKICAgICAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAxZnI7CiAgICAgICAgICB9CiAgICAgICAgfQogICAgICAgIAogICAgICAgIC5vdXRwdXQtcHJldmlldyB7CiAgICAgICAgICBtYXJnaW4tdG9wOiAxNnB4OwogICAgICAgICAgcGFkZGluZzogMTZweDsKICAgICAgICAgIGJhY2tncm91bmQ6ICNmM2Y0ZjY7CiAgICAgICAgICBib3JkZXItcmFkaXVzOiA0cHg7CiAgICAgICAgICBmb250LXNpemU6IDEycHg7CiAgICAgICAgICBjb2xvcjogIzM3NDE1MTsKICAgICAgICAgIHdvcmQtYnJlYWs6IGJyZWFrLWFsbDsKICAgICAgICAgIG1heC1oZWlnaHQ6IDIwMHB4OwogICAgICAgICAgb3ZlcmZsb3cteTogYXV0bzsKICAgICAgICB9CiAgICAgICAgCiAgICAgICAgQG1lZGlhIChwcmVmZXJzLWNvbG9yLXNjaGVtZTogZGFyaykgewogICAgICAgICAgLm91dHB1dC1wcmV2aWV3IHsKICAgICAgICAgICAgYmFja2dyb3VuZDogIzJjMmMyYzsKICAgICAgICAgICAgY29sb3I6ICNlNGU0ZTc7CiAgICAgICAgICB9CiAgICAgICAgfQogICAgICAgIAogICAgICAgIC50YWctcHJldmlldyB7CiAgICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgICAgZmxleC13cmFwOiB3cmFwOwogICAgICAgICAgZ2FwOiA4cHg7CiAgICAgICAgICBwYWRkaW5nOiAxMnB4OwogICAgICAgICAgYmFja2dyb3VuZDogI2Y5ZmFmYjsKICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDRweDsKICAgICAgICAgIG1pbi1oZWlnaHQ6IDQwcHg7CiAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIH0KICAgICAgICAKICAgICAgICBAbWVkaWEgKHByZWZlcnMtY29sb3Itc2NoZW1lOiBkYXJrKSB7CiAgICAgICAgICAudGFnLXByZXZpZXcgewogICAgICAgICAgICBiYWNrZ3JvdW5kOiAjMWYyOTM3OwogICAgICAgICAgfQogICAgICAgIH0KICAgICAgICAKICAgICAgICAudGFnLXByZXZpZXctaXRlbSB7CiAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7CiAgICAgICAgICBwYWRkaW5nOiA0cHggMTJweDsKICAgICAgICAgIGJhY2tncm91bmQ6ICNlMGU3ZmY7CiAgICAgICAgICBjb2xvcjogIzQzMzhjYTsKICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDEycHg7CiAgICAgICAgICBmb250LXNpemU6IDE0cHg7CiAgICAgICAgfQogICAgICAgIAogICAgICAgIEBtZWRpYSAocHJlZmVycy1jb2xvci1zY2hlbWU6IGRhcmspIHsKICAgICAgICAgIC50YWctcHJldmlldy1pdGVtIHsKICAgICAgICAgICAgYmFja2dyb3VuZDogIzMxMmU4MTsKICAgICAgICAgICAgY29sb3I6ICNjN2QyZmU7CiAgICAgICAgICB9CiAgICAgICAgfQogICAgICBgLCIxLiBCYXNpYyBUYWdzIElucHV0IiwiU2ltcGxlIHRhZyBpbnB1dCB3aXRoIGNvbW1vbiBwcm9ncmFtbWluZyBsYW5ndWFnZXMiLCJQcm9ncmFtbWluZyBMYW5ndWFnZXMiLCJBZGQgYSBsYW5ndWFnZS4uLiIsWyJKYXZhU2NyaXB0IiwiVHlwZVNjcmlwdCIsIlB5dGhvbiIsIkdvIl0sIlByZXNzIEVudGVyIG9yIGNvbW1hIHRvIGFkZCB0YWdzIiwiMi4gVGFncyB3aXRoIFN1Z2dlc3Rpb25zIiwiQXV0by1jb21wbGV0ZSBzdWdnZXN0aW9ucyBmb3IgZmFzdGVyIGlucHV0IiwiVGVjaCBTdGFjayIsIlR5cGUgdG8gc2VlIHN1Z2dlc3Rpb25zLi4uIixbIlJlYWN0IiwiVnVlIiwiQW5ndWxhciIsIlN2ZWx0ZSIsIkxpdCIsIk5leHQuanMiLCJOdXh0IiwiU3ZlbHRlS2l0IiwiTm9kZS5qcyIsIkRlbm8iLCJCdW4iLCJFeHByZXNzIiwiRmFzdGlmeSIsIk5lc3QuanMiLCJLb2EiLCJNb25nb0RCIiwiUG9zdGdyZVNRTCIsIlJlZGlzIiwiTXlTUUwiLCJTUUxpdGUiLCJDYXNzYW5kcmEiLCJEb2NrZXIiLCJLdWJlcm5ldGVzIiwiQVdTIiwiQXp1cmUiLCJHQ1AiLCJWZXJjZWwiLCJOZXRsaWZ5Il0sWyJSZWFjdCIsIk5vZGUuanMiLCJQb3N0Z3JlU1FMIiwiRG9ja2VyIl0sIlN0YXJ0IHR5cGluZyB0byBzZWUgc3VnZ2VzdGlvbnMgZnJvbSBwb3B1bGFyIHRlY2hub2xvZ2llcyIsIjMuIExpbWl0ZWQgVGFncyIsIlJlc3RyaWN0IHRoZSBudW1iZXIgb2YgdGFncyB1c2VycyBjYW4gYWRkIiwiVG9wIDMgU2tpbGxzIiwiQWRkIHVwIHRvIDMgc2tpbGxzLi4uIiwzLFsiRGVzaWduIiwiRGV2ZWxvcG1lbnQiXSwiTWF4aW11bSAzIHRhZ3MgYWxsb3dlZCIsIkNhdGVnb3JpZXMgKE1heCA1KSIsIlNlbGVjdCBjYXRlZ29yaWVzLi4uIiw1LFsiQmxvZyIsIlR1dG9yaWFsIiwiTmV3cyIsIlJldmlldyIsIkd1aWRlIiwiQ2FzZSBTdHVkeSIsIkludGVydmlldyJdLFsiVHV0b3JpYWwiLCJHdWlkZSJdLCJDaG9vc2UgdXAgdG8gNSBjYXRlZ29yaWVzIiwiNC4gUmVxdWlyZWQgJiBWYWxpZGF0aW9uIiwiVGFncyBpbnB1dCB3aXRoIHZhbGlkYXRpb24gcmVxdWlyZW1lbnRzIiwiUHJvamVjdCBUYWdzIiwiQWRkIGF0IGxlYXN0IG9uZSB0YWcuLi4iLCEwLCJUaGlzIGZpZWxkIGlzIHJlcXVpcmVkIC0gYWRkIGF0IGxlYXN0IG9uZSB0YWciLCI1LiBEaXNhYmxlZCBTdGF0ZSIsIlJlYWQtb25seSB0YWdzIGRpc3BsYXkiLCJTeXN0ZW0gVGFncyIsWyJTeXN0ZW0iLCJQcm90ZWN0ZWQiLCJSZWFkLU9ubHkiLCJBcmNoaXZlIl0sITAsIlRoZXNlIHRhZ3MgY2Fubm90IGJlIG1vZGlmaWVkIiwiNi4gRm9ybSBJbnRlZ3JhdGlvbiIsIlRhZ3MgaW5wdXQgd29ya2luZyB3aXRoaW4gYSBmb3JtIGNvbnRleHQiLCJQcm9qZWN0IE5hbWUiLCJNeSBBd2Vzb21lIFByb2plY3QiLCEwLCJuYW1lIiwiVGVjaG5vbG9naWVzIFVzZWQiLCJBZGQgdGVjaG5vbG9naWVzLi4uIiwhMCwidGVjaG5vbG9naWVzIixbIlR5cGVTY3JpcHQiLCJKYXZhU2NyaXB0IiwiUHl0aG9uIiwiR28iLCJSdXN0IiwiUmVhY3QiLCJWdWUiLCJBbmd1bGFyIiwiU3ZlbHRlIiwiTm9kZS5qcyIsIkRlbm8iLCJFeHByZXNzIiwiRmFzdEFQSSJdLCJQcm9qZWN0IFRhZ3MiLCJBZGQgZGVzY3JpcHRpdmUgdGFncy4uLiIsInRhZ3MiLDEwLFsiZnJvbnRlbmQiLCJiYWNrZW5kIiwiZnVsbHN0YWNrIiwibW9iaWxlIiwiZGVza3RvcCIsIndlYiIsImFwaSIsImRhdGFiYXNlIiwiZGV2b3BzIiwidWkvdXgiLCJvcGVuc291cmNlIiwic2FhcyIsImVudGVycHJpc2UiLCJzdGFydHVwIl0sIkRlc2NyaXB0aW9uIiwidGV4dGFyZWEiLCJEZXNjcmliZSB5b3VyIHByb2plY3QuLi4iLCJkZXNjcmlwdGlvbiIsIkNyZWF0ZSBQcm9qZWN0IiwiNy4gSW50ZXJhY3RpdmUgRGVtbyIsIkFkZCB0YWdzIGFuZCBzZWUgdGhlbSBjb2xsZWN0ZWQgaW4gcmVhbC10aW1lIiwiWW91ciBJbnRlcmVzdHMiLCJUeXBlIHlvdXIgaW50ZXJlc3RzLi4uIixbIk11c2ljIiwiTW92aWVzIiwiQm9va3MiLCJUcmF2ZWwiLCJQaG90b2dyYXBoeSIsIkNvb2tpbmciLCJHYW1pbmciLCJTcG9ydHMiLCJBcnQiLCJUZWNobm9sb2d5IiwiRmFzaGlvbiIsIkZpdG5lc3MiLCJOYXR1cmUiLCJTY2llbmNlIiwiSGlzdG9yeSJdLGU9PntsZXQgdD1kb2N1bWVudC5xdWVyeVNlbGVjdG9yKCIjdGFncy1wcmV2aWV3Iikscj1lLmRldGFpbC52YWx1ZTt0JiYoci5sZW5ndGg9PT0wP3QuaW5uZXJIVE1MPSc8ZW0gc3R5bGU9ImNvbG9yOiAjOTk5OyI+Tm8gdGFncyBhZGRlZCB5ZXQuLi48L2VtPic6dC5pbm5lckhUTUw9ci5tYXAoaT0+YDxzcGFuIGNsYXNzPSJ0YWctcHJldmlldy1pdGVtIj4ke2l9PC9zcGFuPmApLmpvaW4oIiIpKX0pfSk7dmFyIGtjLGlhLEIwcixIMHI9cCgoKT0+e3hlKCk7TTEoKTtvcigpO1IwcigpO0plKCk7a2M9ZnVuY3Rpb24oZSx0LHIsaSxhLG4pe2Z1bmN0aW9uIG8oeSl7aWYoeSE9PXZvaWQgMCYmdHlwZW9mIHkhPSJmdW5jdGlvbiIpdGhyb3cgbmV3IFR5cGVFcnJvcigiRnVuY3Rpb24gZXhwZWN0ZWQiKTtyZXR1cm4geX1mb3IodmFyIHM9aS5raW5kLGw9cz09PSJnZXR0ZXIiPyJnZXQiOnM9PT0ic2V0dGVyIj8ic2V0IjoidmFsdWUiLGM9IXQmJmU/aS5zdGF0aWM/ZTplLnByb3RvdHlwZTpudWxsLHU9dHx8KGM/T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihjLGkubmFtZSk6e30pLGQsaD0hMSxmPXIubGVuZ3RoLTE7Zj49MDtmLS0pe3ZhciB4PXt9O2Zvcih2YXIgdiBpbiBpKXhbdl09dj09PSJhY2Nlc3MiP3t9Omlbdl07Zm9yKHZhciB2IGluIGkuYWNjZXNzKXguYWNjZXNzW3ZdPWkuYWNjZXNzW3ZdO3guYWRkSW5pdGlhbGl6ZXI9ZnVuY3Rpb24oeSl7aWYoaCl0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgYWRkIGluaXRpYWxpemVycyBhZnRlciBkZWNvcmF0aW9uIGhhcyBjb21wbGV0ZWQiKTtuLnB1c2gobyh5fHxudWxsKSl9O3ZhciBiPSgwLHJbZl0pKHM9PT0iYWNjZXNzb3IiP3tnZXQ6dS5nZXQsc2V0OnUuc2V0fTp1W2xdLHgpO2lmKHM9PT0iYWNjZXNzb3IiKXtpZihiPT09dm9pZCAwKWNvbnRpbnVlO2lmKGI9PT1udWxsfHx0eXBlb2YgYiE9Im9iamVjdCIpdGhyb3cgbmV3IFR5cGVFcnJvcigiT2JqZWN0IGV4cGVjdGVkIik7KGQ9byhiLmdldCkpJiYodS5nZXQ9ZCksKGQ9byhiLnNldCkpJiYodS5zZXQ9ZCksKGQ9byhiLmluaXQpKSYmYS51bnNoaWZ0KGQpfWVsc2UoZD1vKGIpKSYmKHM9PT0iZmllbGQiP2EudW5zaGlmdChkKTp1W2xdPWQpfWMmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShjLGkubmFtZSx1KSxoPSEwfSxpYT1mdW5jdGlvbihlLHQscil7Zm9yKHZhciBpPWFyZ3VtZW50cy5sZW5ndGg+MixhPTA7YTx0Lmxlbmd0aDthKyspcj1pP3RbYV0uY2FsbChlLHIpOnRbYV0uY2FsbChlKTtyZXR1cm4gaT9yOnZvaWQgMH0sQjByPSgoKT0+e2xldCBlPVt5ZSgiZGVlcy1pbnB1dC10YWdzIildLHQscj1bXSxpLGE9b3QsbixvPVtdLHM9W10sbCxjPVtdLHU9W10sZCxoPVtdLGY9W10seCx2PVtdLGI9W10seSx3PVtdLGs9W10sTyx6PVtdLE09W10sRixEPVtdLE49W10sUixfPVtdLFM9W107dmFyICQ9Y2xhc3MgZXh0ZW5kcyBhe3N0YXRpY3tpPXRoaXN9c3RhdGlje2xldCBUPXR5cGVvZiBTeW1ib2w9PSJmdW5jdGlvbiImJlN5bWJvbC5tZXRhZGF0YT9PYmplY3QuY3JlYXRlKGFbU3ltYm9sLm1ldGFkYXRhXT8/bnVsbCk6dm9pZCAwO249W2ooe3R5cGU6QXJyYXl9KV0sbD1baih7dHlwZTpTdHJpbmd9KV0sZD1baih7dHlwZTpOdW1iZXJ9KV0seD1baih7dHlwZTpBcnJheX0pXSx5PVtmZSgpXSxPPVtmZSgpXSxGPVtmZSgpXSxSPVtqKHt0eXBlOlN0cmluZ30pXSxrYyh0aGlzLG51bGwsbix7a2luZDoiYWNjZXNzb3IiLG5hbWU6InZhbHVlIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpFPT4idmFsdWUiaW4gRSxnZXQ6RT0+RS52YWx1ZSxzZXQ6KEUscSk9PntFLnZhbHVlPXF9fSxtZXRhZGF0YTpUfSxvLHMpLGtjKHRoaXMsbnVsbCxsLHtraW5kOiJhY2Nlc3NvciIsbmFtZToicGxhY2Vob2xkZXIiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOkU9PiJwbGFjZWhvbGRlciJpbiBFLGdldDpFPT5FLnBsYWNlaG9sZGVyLHNldDooRSxxKT0+e0UucGxhY2Vob2xkZXI9cX19LG1ldGFkYXRhOlR9LGMsdSksa2ModGhpcyxudWxsLGQse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJtYXhUYWdzIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpFPT4ibWF4VGFncyJpbiBFLGdldDpFPT5FLm1heFRhZ3Msc2V0OihFLHEpPT57RS5tYXhUYWdzPXF9fSxtZXRhZGF0YTpUfSxoLGYpLGtjKHRoaXMsbnVsbCx4LHtraW5kOiJhY2Nlc3NvciIsbmFtZToic3VnZ2VzdGlvbnMiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOkU9PiJzdWdnZXN0aW9ucyJpbiBFLGdldDpFPT5FLnN1Z2dlc3Rpb25zLHNldDooRSxxKT0+e0Uuc3VnZ2VzdGlvbnM9cX19LG1ldGFkYXRhOlR9LHYsYiksa2ModGhpcyxudWxsLHkse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJpbnB1dFZhbHVlIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpFPT4iaW5wdXRWYWx1ZSJpbiBFLGdldDpFPT5FLmlucHV0VmFsdWUsc2V0OihFLHEpPT57RS5pbnB1dFZhbHVlPXF9fSxtZXRhZGF0YTpUfSx3LGspLGtjKHRoaXMsbnVsbCxPLHtraW5kOiJhY2Nlc3NvciIsbmFtZToic2hvd1N1Z2dlc3Rpb25zIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpFPT4ic2hvd1N1Z2dlc3Rpb25zImluIEUsZ2V0OkU9PkUuc2hvd1N1Z2dlc3Rpb25zLHNldDooRSxxKT0+e0Uuc2hvd1N1Z2dlc3Rpb25zPXF9fSxtZXRhZGF0YTpUfSx6LE0pLGtjKHRoaXMsbnVsbCxGLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiaGlnaGxpZ2h0ZWRTdWdnZXN0aW9uSW5kZXgiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOkU9PiJoaWdobGlnaHRlZFN1Z2dlc3Rpb25JbmRleCJpbiBFLGdldDpFPT5FLmhpZ2hsaWdodGVkU3VnZ2VzdGlvbkluZGV4LHNldDooRSxxKT0+e0UuaGlnaGxpZ2h0ZWRTdWdnZXN0aW9uSW5kZXg9cX19LG1ldGFkYXRhOlR9LEQsTiksa2ModGhpcyxudWxsLFIse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJ2YWxpZGF0aW9uVGV4dCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6RT0+InZhbGlkYXRpb25UZXh0ImluIEUsZ2V0OkU9PkUudmFsaWRhdGlvblRleHQsc2V0OihFLHEpPT57RS52YWxpZGF0aW9uVGV4dD1xfX0sbWV0YWRhdGE6VH0sXyxTKSxrYyhudWxsLHQ9e3ZhbHVlOml9LGUse2tpbmQ6ImNsYXNzIixuYW1lOmkubmFtZSxtZXRhZGF0YTpUfSxudWxsLHIpLCQ9aT10LnZhbHVlLFQmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShpLFN5bWJvbC5tZXRhZGF0YSx7ZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITAsdmFsdWU6VH0pfXN0YXRpYyBkZW1vPU8wcjtzdGF0aWMgZGVtb0dyb3Vwcz1bIklucHV0Il07I2U9aWEodGhpcyxvLFtdKTtnZXQgdmFsdWUoKXtyZXR1cm4gdGhpcy4jZX1zZXQgdmFsdWUoVCl7dGhpcy4jZT1UfSN0PShpYSh0aGlzLHMpLGlhKHRoaXMsYywiQWRkIHRhZ3MuLi4iKSk7Z2V0IHBsYWNlaG9sZGVyKCl7cmV0dXJuIHRoaXMuI3R9c2V0IHBsYWNlaG9sZGVyKFQpe3RoaXMuI3Q9VH0jcj0oaWEodGhpcyx1KSxpYSh0aGlzLGgsMCkpO2dldCBtYXhUYWdzKCl7cmV0dXJuIHRoaXMuI3J9c2V0IG1heFRhZ3MoVCl7dGhpcy4jcj1UfSNpPShpYSh0aGlzLGYpLGlhKHRoaXMsdixbXSkpO2dldCBzdWdnZXN0aW9ucygpe3JldHVybiB0aGlzLiNpfXNldCBzdWdnZXN0aW9ucyhUKXt0aGlzLiNpPVR9I2E9KGlhKHRoaXMsYiksaWEodGhpcyx3LCIiKSk7Z2V0IGlucHV0VmFsdWUoKXtyZXR1cm4gdGhpcy4jYX1zZXQgaW5wdXRWYWx1ZShUKXt0aGlzLiNhPVR9I249KGlhKHRoaXMsayksaWEodGhpcyx6LCExKSk7Z2V0IHNob3dTdWdnZXN0aW9ucygpe3JldHVybiB0aGlzLiNufXNldCBzaG93U3VnZ2VzdGlvbnMoVCl7dGhpcy4jbj1UfSNvPShpYSh0aGlzLE0pLGlhKHRoaXMsRCwtMSkpO2dldCBoaWdobGlnaHRlZFN1Z2dlc3Rpb25JbmRleCgpe3JldHVybiB0aGlzLiNvfXNldCBoaWdobGlnaHRlZFN1Z2dlc3Rpb25JbmRleChUKXt0aGlzLiNvPVR9I3M9KGlhKHRoaXMsTiksaWEodGhpcyxfLCIiKSk7Z2V0IHZhbGlkYXRpb25UZXh0KCl7cmV0dXJuIHRoaXMuI3N9c2V0IHZhbGlkYXRpb25UZXh0KFQpe3RoaXMuI3M9VH1zdGF0aWMgc3R5bGVzPVtEZSwuLi5vdC5iYXNlU3R5bGVzLG0uZGVmYXVsdFN0eWxlcyxvZWAKICAgICAgLyogVE9ETzogTWlncmF0ZSBoYXJkY29kZWQgdmFsdWVzIHRvIC0tZGVlcy0qIENTUyB2YXJpYWJsZXMgKi8KICAgICAgOmhvc3QgewogICAgICAgIGRpc3BsYXk6IGJsb2NrOwogICAgICAgIGZvbnQtZmFtaWx5OiAtYXBwbGUtc3lzdGVtLCBCbGlua01hY1N5c3RlbUZvbnQsICdTZWdvZSBVSScsICdSb2JvdG8nLCBzYW5zLXNlcmlmOwogICAgICB9CgogICAgICAuaW5wdXQtd3JhcHBlciB7CiAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgIH0KCiAgICAgIC50YWdzLWNvbnRhaW5lciB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBmbGV4LXdyYXA6IHdyYXA7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBnYXA6IDZweDsKICAgICAgICBwYWRkaW5nOiA2cHggMTBweDsKICAgICAgICBtaW4taGVpZ2h0OiA0MHB4OwogICAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50OwogICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICR7bS5iZFRoZW1lKCJoc2woMCAwJSA4OS44JSkiLCJoc2woMCAwJSAxNC45JSkiKX07CiAgICAgICAgYm9yZGVyLXJhZGl1czogNnB4OwogICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjE1cyBlYXNlOwogICAgICAgIGN1cnNvcjogdGV4dDsKICAgICAgfQoKICAgICAgLnRhZ3MtY29udGFpbmVyOmhvdmVyOm5vdCguZGlzYWJsZWQpIHsKICAgICAgICBib3JkZXItY29sb3I6ICR7bS5iZFRoZW1lKCJoc2woMCAwJSA3OS44JSkiLCJoc2woMCAwJSAyMC45JSkiKX07CiAgICAgIH0KCiAgICAgIC50YWdzLWNvbnRhaW5lcjpmb2N1cy13aXRoaW4gewogICAgICAgIGJvcmRlci1jb2xvcjogJHttLmJkVGhlbWUoImhzbCgyMjIuMiA0Ny40JSA1MS4yJSkiLCJoc2woMjE3LjIgOTEuMiUgNTkuOCUpIil9OwogICAgICAgIGJveC1zaGFkb3c6IDAgMCAwIDNweCAke20uYmRUaGVtZSgiaHNsKDIyMi4yIDQ3LjQlIDUxLjIlIC8gMC4xKSIsImhzbCgyMTcuMiA5MS4yJSA1OS44JSAvIDAuMSkiKX07CiAgICAgIH0KCiAgICAgIC50YWdzLWNvbnRhaW5lci5kaXNhYmxlZCB7CiAgICAgICAgYmFja2dyb3VuZDogJHttLmJkVGhlbWUoImhzbCgwIDAlIDk1LjElKSIsImhzbCgwIDAlIDE0LjklKSIpfTsKICAgICAgICBib3JkZXItY29sb3I6ICR7bS5iZFRoZW1lKCJoc2woMCAwJSA4OS44JSkiLCJoc2woMCAwJSAxNC45JSkiKX07CiAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDsKICAgICAgICBvcGFjaXR5OiAwLjU7CiAgICAgIH0KCiAgICAgIC50YWcgewogICAgICAgIGRpc3BsYXk6IGlubGluZS1mbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgZ2FwOiA0cHg7CiAgICAgICAgcGFkZGluZzogMnB4IDhweDsKICAgICAgICBiYWNrZ3JvdW5kOiAke20uYmRUaGVtZSgiaHNsKDIxNSAyMC4yJSA2NS4xJSAvIDAuMikiLCJoc2woMjE1IDIwLjIlIDM1LjElIC8gMC4yKSIpfTsKICAgICAgICBjb2xvcjogJHttLmJkVGhlbWUoImhzbCgyMTUuMyAyNSUgMjYuNyUpIiwiaHNsKDIxNy45IDEwLjYlIDc0LjklKSIpfTsKICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAke20uYmRUaGVtZSgiaHNsKDIxNSAyMC4yJSA2NS4xJSAvIDAuMykiLCJoc2woMjE1IDIwLjIlIDM1LjElIC8gMC4zKSIpfTsKICAgICAgICBib3JkZXItcmFkaXVzOiA0cHg7CiAgICAgICAgZm9udC1zaXplOiAxM3B4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7CiAgICAgICAgbGluZS1oZWlnaHQ6IDE4cHg7CiAgICAgICAgdXNlci1zZWxlY3Q6IG5vbmU7CiAgICAgICAgYW5pbWF0aW9uOiB0YWdBcHBlYXIgMC4xNXMgY3ViaWMtYmV6aWVyKDAuNCwgMCwgMC4yLCAxKTsKICAgICAgfQoKICAgICAgQGtleWZyYW1lcyB0YWdBcHBlYXIgewogICAgICAgIGZyb20gewogICAgICAgICAgdHJhbnNmb3JtOiBzY2FsZSgwLjk1KTsKICAgICAgICAgIG9wYWNpdHk6IDA7CiAgICAgICAgfQogICAgICAgIHRvIHsKICAgICAgICAgIHRyYW5zZm9ybTogc2NhbGUoMSk7CiAgICAgICAgICBvcGFjaXR5OiAxOwogICAgICAgIH0KICAgICAgfQoKICAgICAgLnRhZy1yZW1vdmUgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKICAgICAgICB3aWR0aDogMTRweDsKICAgICAgICBoZWlnaHQ6IDE0cHg7CiAgICAgICAgbWFyZ2luLWxlZnQ6IDJweDsKICAgICAgICBib3JkZXItcmFkaXVzOiAzcHg7CiAgICAgICAgY3Vyc29yOiBwb2ludGVyOwogICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjE1cyBlYXNlOwogICAgICAgIGNvbG9yOiAke20uYmRUaGVtZSgiaHNsKDIxNS4zIDI1JSA0Ni43JSkiLCJoc2woMjE3LjkgMTAuNiUgNTQuOSUpIil9OwogICAgICB9CgogICAgICAudGFnLXJlbW92ZTpob3ZlciB7CiAgICAgICAgYmFja2dyb3VuZDogJHttLmJkVGhlbWUoImhzbCgwIDAlIDAlIC8gMC4wOCkiLCJoc2woMCAwJSAxMDAlIC8gMC4wOCkiKX07CiAgICAgICAgY29sb3I6ICR7bS5iZFRoZW1lKCJoc2woMjE1LjMgMjUlIDI2LjclKSIsImhzbCgyMTcuOSAxMC42JSA3NC45JSkiKX07CiAgICAgIH0KCiAgICAgIC50YWctcmVtb3ZlIGRlZXMtaWNvbiB7CiAgICAgICAgd2lkdGg6IDEwcHg7CiAgICAgICAgaGVpZ2h0OiAxMHB4OwogICAgICB9CgogICAgICAudGFnLWlucHV0IHsKICAgICAgICBmbGV4OiAxOwogICAgICAgIG1pbi13aWR0aDogMTIwcHg7CiAgICAgICAgYm9yZGVyOiBub25lOwogICAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50OwogICAgICAgIG91dGxpbmU6IG5vbmU7CiAgICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgICAgIGZvbnQtZmFtaWx5OiBpbmhlcml0OwogICAgICAgIGNvbG9yOiAke20uYmRUaGVtZSgiaHNsKDAgMCUgOSUpIiwiaHNsKDAgMCUgOTUlKSIpfTsKICAgICAgICBwYWRkaW5nOiAycHggNHB4OwogICAgICAgIGxpbmUtaGVpZ2h0OiAyMHB4OwogICAgICB9CgogICAgICAudGFnLWlucHV0OjpwbGFjZWhvbGRlciB7CiAgICAgICAgY29sb3I6ICR7bS5iZFRoZW1lKCJoc2woMCAwJSA2My45JSkiLCJoc2woMCAwJSA0NS4xJSkiKX07CiAgICAgIH0KCiAgICAgIC50YWctaW5wdXQ6ZGlzYWJsZWQgewogICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7CiAgICAgIH0KCiAgICAgIC8qIFN1Z2dlc3Rpb25zIGRyb3Bkb3duICovCiAgICAgIC5zdWdnZXN0aW9ucy1jb250YWluZXIgewogICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgfQoKICAgICAgLnN1Z2dlc3Rpb25zLWRyb3Bkb3duIHsKICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgICAgdG9wOiAxMDAlOwogICAgICAgIGxlZnQ6IDA7CiAgICAgICAgcmlnaHQ6IDA7CiAgICAgICAgbWFyZ2luLXRvcDogNHB4OwogICAgICAgIGJhY2tncm91bmQ6ICR7bS5iZFRoZW1lKCJoc2woMCAwJSAxMDAlKSIsImhzbCgwIDAlIDMuOSUpIil9OwogICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICR7bS5iZFRoZW1lKCJoc2woMCAwJSA4OS44JSkiLCJoc2woMCAwJSAxNC45JSkiKX07CiAgICAgICAgYm9yZGVyLXJhZGl1czogNnB4OwogICAgICAgIGJveC1zaGFkb3c6IDAgNHB4IDZweCAtMXB4IGhzbCgwIDAlIDAlIC8gMC4xKSwgMCAycHggNHB4IC0ycHggaHNsKDAgMCUgMCUgLyAwLjEpOwogICAgICAgIG1heC1oZWlnaHQ6IDIwMHB4OwogICAgICAgIG92ZXJmbG93LXk6IGF1dG87CiAgICAgICAgei1pbmRleDogMTAwMDsKICAgICAgfQoKICAgICAgLnN1Z2dlc3Rpb24gewogICAgICAgIHBhZGRpbmc6IDZweCAxMHB4OwogICAgICAgIGN1cnNvcjogcG9pbnRlcjsKICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC4xNXMgZWFzZTsKICAgICAgICBmb250LXNpemU6IDE0cHg7CiAgICAgICAgY29sb3I6ICR7bS5iZFRoZW1lKCJoc2woMCAwJSAxNSUpIiwiaHNsKDAgMCUgOTAlKSIpfTsKICAgICAgfQoKICAgICAgLnN1Z2dlc3Rpb246aG92ZXIgewogICAgICAgIGJhY2tncm91bmQ6ICR7bS5iZFRoZW1lKCJoc2woMCAwJSA5NS4xJSkiLCJoc2woMCAwJSAxNC45JSkiKX07CiAgICAgIH0KCiAgICAgIC5zdWdnZXN0aW9uLmhpZ2hsaWdodGVkIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke20uYmRUaGVtZSgiaHNsKDIxMCA0MCUgOTYuMSUpIiwiaHNsKDIxNSAyMC4yJSAxNi44JSkiKX07CiAgICAgICAgY29sb3I6ICR7bS5iZFRoZW1lKCJoc2woMCAwJSA5JSkiLCJoc2woMCAwJSA5NSUpIil9OwogICAgICB9CgogICAgICAvKiBWYWxpZGF0aW9uIHN0eWxlcyAqLwogICAgICAudmFsaWRhdGlvbi1tZXNzYWdlIHsKICAgICAgICBjb2xvcjogJHttLmJkVGhlbWUoImhzbCgwIDcyLjIlIDUwLjYlKSIsImhzbCgwIDYyLjglIDMwLjYlKSIpfTsKICAgICAgICBmb250LXNpemU6IDEzcHg7CiAgICAgICAgbWFyZ2luLXRvcDogNnB4OwogICAgICAgIGxpbmUtaGVpZ2h0OiAxLjU7CiAgICAgIH0KCiAgICAgIC8qIERlc2NyaXB0aW9uIHN0eWxlcyAqLwogICAgICAuZGVzY3JpcHRpb24gewogICAgICAgIGNvbG9yOiAke20uYmRUaGVtZSgiaHNsKDIxNS40IDE2LjMlIDU2LjklKSIsImhzbCgyMTUgMjAuMiUgNTUuMSUpIil9OwogICAgICAgIGZvbnQtc2l6ZTogMTNweDsKICAgICAgICBtYXJnaW4tdG9wOiA2cHg7CiAgICAgICAgbGluZS1oZWlnaHQ6IDEuNTsKICAgICAgfQoKICAgICAgLyogU2Nyb2xsYmFyIHN0eWxpbmcgKi8KICAgICAgLnN1Z2dlc3Rpb25zLWRyb3Bkb3duOjotd2Via2l0LXNjcm9sbGJhciB7CiAgICAgICAgd2lkdGg6IDhweDsKICAgICAgfQoKICAgICAgLnN1Z2dlc3Rpb25zLWRyb3Bkb3duOjotd2Via2l0LXNjcm9sbGJhci10cmFjayB7CiAgICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7CiAgICAgIH0KCiAgICAgIC5zdWdnZXN0aW9ucy1kcm9wZG93bjo6LXdlYmtpdC1zY3JvbGxiYXItdGh1bWIgewogICAgICAgIGJhY2tncm91bmQ6ICR7bS5iZFRoZW1lKCJoc2woMCAwJSA4OS44JSkiLCJoc2woMCAwJSAxNC45JSkiKX07CiAgICAgICAgYm9yZGVyLXJhZGl1czogNHB4OwogICAgICB9CgogICAgICAuc3VnZ2VzdGlvbnMtZHJvcGRvd246Oi13ZWJraXQtc2Nyb2xsYmFyLXRodW1iOmhvdmVyIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke20uYmRUaGVtZSgiaHNsKDAgMCUgNzkuOCUpIiwiaHNsKDAgMCUgMjAuOSUpIil9OwogICAgICB9CiAgICBgXTtyZW5kZXIoKXtsZXQgVD10aGlzLnN1Z2dlc3Rpb25zLmZpbHRlcihFPT4hdGhpcy52YWx1ZS5pbmNsdWRlcyhFKSYmRS50b0xvd2VyQ2FzZSgpLmluY2x1ZGVzKHRoaXMuaW5wdXRWYWx1ZS50b0xvd2VyQ2FzZSgpKSk7cmV0dXJuIENgCiAgICAgIDxkaXYgY2xhc3M9ImlucHV0LXdyYXBwZXIiPgogICAgICAgICR7dGhpcy5sYWJlbD9DYDxkZWVzLWxhYmVsIC5sYWJlbD0ke3RoaXMubGFiZWx9IC5yZXF1aXJlZD0ke3RoaXMucmVxdWlyZWR9PjwvZGVlcy1sYWJlbD5gOiIifQogICAgICAgIAogICAgICAgIDxkaXYgY2xhc3M9InN1Z2dlc3Rpb25zLWNvbnRhaW5lciI+CiAgICAgICAgICA8ZGl2CiAgICAgICAgICAgIGNsYXNzPSJ0YWdzLWNvbnRhaW5lciAke3RoaXMuZGlzYWJsZWQ/ImRpc2FibGVkIjoiIn0iCiAgICAgICAgICAgIEBjbGljaz0ke3RoaXMuaGFuZGxlQ29udGFpbmVyQ2xpY2t9CiAgICAgICAgICA+CiAgICAgICAgICAgICR7dGhpcy52YWx1ZS5tYXAoRT0+Q2AKICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJ0YWciPgogICAgICAgICAgICAgICAgPHNwYW4+JHtFfTwvc3Bhbj4KICAgICAgICAgICAgICAgICR7dGhpcy5kaXNhYmxlZD8iIjpDYAogICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJ0YWctcmVtb3ZlIiBAY2xpY2s9JHtxPT50aGlzLnJlbW92ZVRhZyhxLEUpfT4KICAgICAgICAgICAgICAgICAgICA8ZGVlcy1pY29uIC5pY29uPSR7Imx1Y2lkZTp4In0+PC9kZWVzLWljb24+CiAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgYH0KICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgYCl9CiAgICAgICAgICAgIAogICAgICAgICAgICAkeyF0aGlzLmRpc2FibGVkJiYoIXRoaXMubWF4VGFnc3x8dGhpcy52YWx1ZS5sZW5ndGg8dGhpcy5tYXhUYWdzKT9DYAogICAgICAgICAgICAgIDxpbnB1dAogICAgICAgICAgICAgICAgdHlwZT0idGV4dCIKICAgICAgICAgICAgICAgIGNsYXNzPSJ0YWctaW5wdXQiCiAgICAgICAgICAgICAgICAucGxhY2Vob2xkZXI9JHt0aGlzLnBsYWNlaG9sZGVyfQogICAgICAgICAgICAgICAgLnZhbHVlPSR7dGhpcy5pbnB1dFZhbHVlfQogICAgICAgICAgICAgICAgQGlucHV0PSR7dGhpcy5oYW5kbGVJbnB1dH0KICAgICAgICAgICAgICAgIEBrZXlkb3duPSR7dGhpcy5oYW5kbGVLZXlEb3dufQogICAgICAgICAgICAgICAgQGZvY3VzPSR7dGhpcy5oYW5kbGVGb2N1c30KICAgICAgICAgICAgICAgIEBibHVyPSR7dGhpcy5oYW5kbGVCbHVyfQogICAgICAgICAgICAgICAgP2Rpc2FibGVkPSR7dGhpcy5kaXNhYmxlZH0KICAgICAgICAgICAgICAvPgogICAgICAgICAgICBgOiIifQogICAgICAgICAgPC9kaXY+CgogICAgICAgICAgJHt0aGlzLnNob3dTdWdnZXN0aW9ucyYmVC5sZW5ndGg+MD9DYAogICAgICAgICAgICA8ZGl2IGNsYXNzPSJzdWdnZXN0aW9ucy1kcm9wZG93biI+CiAgICAgICAgICAgICAgJHtULm1hcCgoRSxxKT0+Q2AKICAgICAgICAgICAgICAgIDxkaXYKICAgICAgICAgICAgICAgICAgY2xhc3M9InN1Z2dlc3Rpb24gJHtxPT09dGhpcy5oaWdobGlnaHRlZFN1Z2dlc3Rpb25JbmRleD8iaGlnaGxpZ2h0ZWQiOiIifSIKICAgICAgICAgICAgICAgICAgQG1vdXNlZG93bj0ke0I9PntCLnByZXZlbnREZWZhdWx0KCksdGhpcy5hZGRUYWcoRSl9fQogICAgICAgICAgICAgICAgICBAbW91c2VlbnRlcj0keygpPT50aGlzLmhpZ2hsaWdodGVkU3VnZ2VzdGlvbkluZGV4PXF9CiAgICAgICAgICAgICAgICA+CiAgICAgICAgICAgICAgICAgICR7RX0KICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgIGApfQogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIGA6IiJ9CiAgICAgICAgPC9kaXY+CgogICAgICAgICR7dGhpcy52YWxpZGF0aW9uVGV4dD9DYAogICAgICAgICAgPGRpdiBjbGFzcz0idmFsaWRhdGlvbi1tZXNzYWdlIj4ke3RoaXMudmFsaWRhdGlvblRleHR9PC9kaXY+CiAgICAgICAgYDoiIn0KICAgICAgICAKICAgICAgICAke3RoaXMuZGVzY3JpcHRpb24/Q2AKICAgICAgICAgIDxkaXYgY2xhc3M9ImRlc2NyaXB0aW9uIj4ke3RoaXMuZGVzY3JpcHRpb259PC9kaXY+CiAgICAgICAgYDoiIn0KICAgICAgPC9kaXY+CiAgICBgfWhhbmRsZUNvbnRhaW5lckNsaWNrKFQpe2lmKHRoaXMuZGlzYWJsZWQpcmV0dXJuO2xldCBFPXRoaXMuc2hhZG93Um9vdD8ucXVlcnlTZWxlY3RvcigiLnRhZy1pbnB1dCIpO0UmJlQudGFyZ2V0IT09RSYmRS5mb2N1cygpfWhhbmRsZUlucHV0KFQpe2xldCBFPVQudGFyZ2V0O2lmKHRoaXMuaW5wdXRWYWx1ZT1FLnZhbHVlLHRoaXMuaW5wdXRWYWx1ZS5pbmNsdWRlcygiLCIpfHx0aGlzLmlucHV0VmFsdWUuaW5jbHVkZXMoIjsiKSl7bGV0IHE9dGhpcy5pbnB1dFZhbHVlLnJlcGxhY2UoL1ssO10vZywiIikudHJpbSgpO3EmJnRoaXMuYWRkVGFnKHEpfX1oYW5kbGVLZXlEb3duKFQpe2xldCBFPVQudGFyZ2V0O2lmKFQua2V5PT09IkVudGVyIilpZihULnByZXZlbnREZWZhdWx0KCksdGhpcy5oaWdobGlnaHRlZFN1Z2dlc3Rpb25JbmRleD49MCYmdGhpcy5zaG93U3VnZ2VzdGlvbnMpe2xldCBxPXRoaXMuc3VnZ2VzdGlvbnMuZmlsdGVyKEI9PiF0aGlzLnZhbHVlLmluY2x1ZGVzKEIpJiZCLnRvTG93ZXJDYXNlKCkuaW5jbHVkZXModGhpcy5pbnB1dFZhbHVlLnRvTG93ZXJDYXNlKCkpKTtxW3RoaXMuaGlnaGxpZ2h0ZWRTdWdnZXN0aW9uSW5kZXhdJiZ0aGlzLmFkZFRhZyhxW3RoaXMuaGlnaGxpZ2h0ZWRTdWdnZXN0aW9uSW5kZXhdKX1lbHNlIHRoaXMuaW5wdXRWYWx1ZS50cmltKCkmJnRoaXMuYWRkVGFnKHRoaXMuaW5wdXRWYWx1ZS50cmltKCkpO2Vsc2UgaWYoVC5rZXk9PT0iQmFja3NwYWNlIiYmIXRoaXMuaW5wdXRWYWx1ZSYmdGhpcy52YWx1ZS5sZW5ndGg+MCl0aGlzLnJlbW92ZVRhZyhULHRoaXMudmFsdWVbdGhpcy52YWx1ZS5sZW5ndGgtMV0pO2Vsc2UgaWYoVC5rZXk9PT0iQXJyb3dEb3duIiYmdGhpcy5zaG93U3VnZ2VzdGlvbnMpe1QucHJldmVudERlZmF1bHQoKTtsZXQgcT10aGlzLnN1Z2dlc3Rpb25zLmZpbHRlcihCPT4hdGhpcy52YWx1ZS5pbmNsdWRlcyhCKSYmQi50b0xvd2VyQ2FzZSgpLmluY2x1ZGVzKHRoaXMuaW5wdXRWYWx1ZS50b0xvd2VyQ2FzZSgpKSkubGVuZ3RoO3RoaXMuaGlnaGxpZ2h0ZWRTdWdnZXN0aW9uSW5kZXg9TWF0aC5taW4odGhpcy5oaWdobGlnaHRlZFN1Z2dlc3Rpb25JbmRleCsxLHEtMSl9ZWxzZSBULmtleT09PSJBcnJvd1VwIiYmdGhpcy5zaG93U3VnZ2VzdGlvbnM/KFQucHJldmVudERlZmF1bHQoKSx0aGlzLmhpZ2hsaWdodGVkU3VnZ2VzdGlvbkluZGV4PU1hdGgubWF4KHRoaXMuaGlnaGxpZ2h0ZWRTdWdnZXN0aW9uSW5kZXgtMSwwKSk6VC5rZXk9PT0iRXNjYXBlIiYmKHRoaXMuc2hvd1N1Z2dlc3Rpb25zPSExLHRoaXMuaGlnaGxpZ2h0ZWRTdWdnZXN0aW9uSW5kZXg9LTEpfWhhbmRsZUZvY3VzKCl7dGhpcy5zdWdnZXN0aW9ucy5sZW5ndGg+MCYmKHRoaXMuc2hvd1N1Z2dlc3Rpb25zPSEwKX1oYW5kbGVCbHVyKCl7c2V0VGltZW91dCgoKT0+e3RoaXMuc2hvd1N1Z2dlc3Rpb25zPSExLHRoaXMuaGlnaGxpZ2h0ZWRTdWdnZXN0aW9uSW5kZXg9LTF9LDIwMCl9YWRkVGFnKFQpe2lmKCFUfHx0aGlzLnZhbHVlLmluY2x1ZGVzKFQpfHx0aGlzLm1heFRhZ3MmJnRoaXMudmFsdWUubGVuZ3RoPj10aGlzLm1heFRhZ3MpcmV0dXJuO3RoaXMudmFsdWU9Wy4uLnRoaXMudmFsdWUsVF0sdGhpcy5pbnB1dFZhbHVlPSIiLHRoaXMuc2hvd1N1Z2dlc3Rpb25zPSExLHRoaXMuaGlnaGxpZ2h0ZWRTdWdnZXN0aW9uSW5kZXg9LTE7bGV0IEU9dGhpcy5zaGFkb3dSb290Py5xdWVyeVNlbGVjdG9yKCIudGFnLWlucHV0Iik7RSYmKEUudmFsdWU9IiIpLHRoaXMuZW1pdENoYW5nZSgpfXJlbW92ZVRhZyhULEUpe1Quc3RvcFByb3BhZ2F0aW9uKCksdGhpcy52YWx1ZT10aGlzLnZhbHVlLmZpbHRlcihxPT5xIT09RSksdGhpcy5lbWl0Q2hhbmdlKCl9ZW1pdENoYW5nZSgpe3RoaXMuZGlzcGF0Y2hFdmVudChuZXcgQ3VzdG9tRXZlbnQoImNoYW5nZSIse2RldGFpbDp7dmFsdWU6dGhpcy52YWx1ZX0sYnViYmxlczohMCxjb21wb3NlZDohMH0pKSx0aGlzLmNoYW5nZVN1YmplY3QubmV4dCh0aGlzKX1nZXRWYWx1ZSgpe3JldHVybiB0aGlzLnZhbHVlfXNldFZhbHVlKFQpe3RoaXMudmFsdWU9VHx8W119YXN5bmMgdmFsaWRhdGUoKXtyZXR1cm4gdGhpcy5yZXF1aXJlZCYmKCF0aGlzLnZhbHVlfHx0aGlzLnZhbHVlLmxlbmd0aD09PTApPyh0aGlzLnZhbGlkYXRpb25UZXh0PSJBdCBsZWFzdCBvbmUgdGFnIGlzIHJlcXVpcmVkIiwhMSk6KHRoaXMudmFsaWRhdGlvblRleHQ9IiIsITApfWNvbnN0cnVjdG9yKCl7c3VwZXIoLi4uYXJndW1lbnRzKSxpYSh0aGlzLFMpfXN0YXRpY3tpYShpLHIpfX07cmV0dXJuICQ9aX0pKCl9KTt2YXIgcTByPXAoKCk9PntIMHIoKX0pO3ZhciBqMHI9cCgoKT0+e040KCl9KTt2YXIgVjByPXAoKCk9PntUNmUoKX0pO3ZhciBVMHI9cCgoKT0+e0w2ZSgpfSk7dmFyIGFYcixuWHIsb1hyLHNYcixsWHIsY1hyLGRYcixXMHIsRzByPXAoKCk9Pnt4ZSgpO3AxKCk7T2koKTthWHI9KCk9PntsZXQgZT1EYXRlLm5vdygpO3JldHVyblt7aWQ6YHRpdGxlLSR7ZX1gLHR5cGU6ImhlYWRpbmctMSIsY29udGVudDoiU3lzdGVtIFBlcmZvcm1hbmNlIFJlcG9ydCJ9LHtpZDpgZGF0ZS0ke2UrMX1gLHR5cGU6InBhcmFncmFwaCIsY29udGVudDpgR2VuZXJhdGVkIG9uOiAke25ldyBEYXRlKCkudG9Mb2NhbGVTdHJpbmcoKX1gfSx7aWQ6YHN1bW1hcnktaGVhZGluZy0ke2UrMn1gLHR5cGU6ImhlYWRpbmctMiIsY29udGVudDoiRXhlY3V0aXZlIFN1bW1hcnkifSx7aWQ6YHN1bW1hcnktJHtlKzN9YCx0eXBlOiJwYXJhZ3JhcGgiLGNvbnRlbnQ6IlRoaXMgcmVwb3J0IHByb3ZpZGVzIGFuIGFuYWx5c2lzIG9mIHN5c3RlbSBwZXJmb3JtYW5jZSBtZXRyaWNzIG92ZXIgdGhlIGxhc3QgMzAgZGF5cy4ifSx7aWQ6YG1ldHJpY3MtaGVhZGluZy0ke2UrNH1gLHR5cGU6ImhlYWRpbmctMiIsY29udGVudDoiS2V5IE1ldHJpY3MifSx7aWQ6YG1ldHJpY3MtbGlzdC0ke2UrNX1gLHR5cGU6Imxpc3QiLGNvbnRlbnQ6YEF2ZXJhZ2UgcmVzcG9uc2UgdGltZTogMTI0bXMKVXB0aW1lOiA5OS45NyUKQ1BVIHV0aWxpemF0aW9uOiA0NSUKTWVtb3J5IHVzYWdlOiAyLjNHQiAvIDhHQmAsbWV0YWRhdGE6e2xpc3RUeXBlOiJidWxsZXQifX0se2lkOmBhbmFseXNpcy1oZWFkaW5nLSR7ZSs2fWAsdHlwZToiaGVhZGluZy0yIixjb250ZW50OiJQZXJmb3JtYW5jZSBBbmFseXNpcyJ9LHtpZDpgYW5hbHlzaXMtcXVvdGUtJHtlKzd9YCx0eXBlOiJxdW90ZSIsY29udGVudDoiU3lzdGVtIHBlcmZvcm1hbmNlIHJlbWFpbnMgd2l0aGluIGFjY2VwdGFibGUgcGFyYW1ldGVycyB3aXRoIHJvb20gZm9yIG9wdGltaXphdGlvbiBpbiBtZW1vcnkgbWFuYWdlbWVudC4ifSx7aWQ6YGNvZGUtaGVhZGluZy0ke2UrOH1gLHR5cGU6ImhlYWRpbmctMyIsY29udGVudDoiU2FtcGxlIFF1ZXJ5IFBlcmZvcm1hbmNlIn0se2lkOmBjb2RlLWJsb2NrLSR7ZSs5fWAsdHlwZToiY29kZSIsY29udGVudDpgU0VMRUNUIEFWRyhyZXNwb25zZV90aW1lKSBhcyBhdmdfdGltZSwKICAgICAgIENPVU5UKCopIGFzIHRvdGFsX3JlcXVlc3RzLAogICAgICAgREFURShjcmVhdGVkX2F0KSBhcyBkYXRlCkZST00gcGVyZm9ybWFuY2VfbG9ncwpXSEVSRSBjcmVhdGVkX2F0ID49IE5PVygpIC0gSU5URVJWQUwgMzAgREFZCkdST1VQIEJZIERBVEUoY3JlYXRlZF9hdCkKT1JERVIgQlkgZGF0ZSBERVNDO2AsbWV0YWRhdGE6e2xhbmd1YWdlOiJzcWwifX0se2lkOmBkaXZpZGVyLSR7ZSsxMH1gLHR5cGU6ImRpdmlkZXIiLGNvbnRlbnQ6IiJ9LHtpZDpgZm9vdGVyLSR7ZSsxMX1gLHR5cGU6InBhcmFncmFwaCIsY29udGVudDoiUmVwb3J0IGdlbmVyYXRlZCBhdXRvbWF0aWNhbGx5IGJ5IFN5c3RlbSBNb25pdG9yIHYyLjUuMCJ9XX0sblhyPSgpPT57bGV0IGU9RGF0ZS5ub3coKTtyZXR1cm5be2lkOmByZWNpcGUtdGl0bGUtJHtlfWAsdHlwZToiaGVhZGluZy0xIixjb250ZW50OiJDbGFzc2ljIE1hcmdoZXJpdGEgUGl6emEifSx7aWQ6YHJlY2lwZS1pbnRyby0ke2UrMX1gLHR5cGU6InBhcmFncmFwaCIsY29udGVudDoiQSB0cmFkaXRpb25hbCBJdGFsaWFuIHBpenphIHdpdGggZnJlc2ggYmFzaWwsIG1venphcmVsbGEsIGFuZCB0b21hdG8gc2F1Y2UuIn0se2lkOmBpbmdyZWRpZW50cy1oZWFkaW5nLSR7ZSsyfWAsdHlwZToiaGVhZGluZy0yIixjb250ZW50OiJcdXsxRjM1NX0gSW5ncmVkaWVudHMifSx7aWQ6YGRvdWdoLWhlYWRpbmctJHtlKzN9YCx0eXBlOiJoZWFkaW5nLTMiLGNvbnRlbnQ6IkZvciB0aGUgRG91Z2g6In0se2lkOmBkb3VnaC1saXN0LSR7ZSs0fWAsdHlwZToibGlzdCIsY29udGVudDpgNTAwZyB0aXBvICIwMCIgZmxvdXIKMzI1bWwgd2FybSB3YXRlcgoxMGcgc2FsdAo3ZyBhY3RpdmUgZHJ5IHllYXN0CjIgdGJzcCBvbGl2ZSBvaWxgLG1ldGFkYXRhOntsaXN0VHlwZToiYnVsbGV0In19LHtpZDpgdG9wcGluZ3MtaGVhZGluZy0ke2UrNX1gLHR5cGU6ImhlYWRpbmctMyIsY29udGVudDoiRm9yIHRoZSBUb3BwaW5nczoifSx7aWQ6YHRvcHBpbmdzLWxpc3QtJHtlKzZ9YCx0eXBlOiJsaXN0Iixjb250ZW50OmA0MDBnIGNhbm5lZCBTYW4gTWFyemFubyB0b21hdG9lcwoyNTBnIGZyZXNoIG1venphcmVsbGEKRnJlc2ggYmFzaWwgbGVhdmVzCkV4dHJhIHZpcmdpbiBvbGl2ZSBvaWwKU2FsdCBhbmQgcGVwcGVyIHRvIHRhc3RlYCxtZXRhZGF0YTp7bGlzdFR5cGU6ImJ1bGxldCJ9fSx7aWQ6YGluc3RydWN0aW9ucy1oZWFkaW5nLSR7ZSs3fWAsdHlwZToiaGVhZGluZy0yIixjb250ZW50OiJcdXsxRjQ2OH1cdTIwMERcdXsxRjM3M30gSW5zdHJ1Y3Rpb25zIn0se2lkOmBzdGVwcy1saXN0LSR7ZSs4fWAsdHlwZToibGlzdCIsY29udGVudDpgRGlzc29sdmUgeWVhc3QgaW4gd2FybSB3YXRlciBhbmQgbGV0IHN0YW5kIGZvciA1IG1pbnV0ZXMKTWl4IGZsb3VyIGFuZCBzYWx0LCBjcmVhdGUgYSB3ZWxsIGluIGNlbnRlcgpBZGQgeWVhc3QgbWl4dHVyZSBhbmQgb2xpdmUgb2lsCktuZWFkIGZvciAxMCBtaW51dGVzIHVudGlsIHNtb290aApMZXQgcmlzZSBmb3IgMS0yIGhvdXJzIHVudGlsIGRvdWJsZWQKUHVuY2ggZG93biBhbmQgZGl2aWRlIGludG8gcG9ydGlvbnMKUm9sbCBvdXQgZWFjaCBwb3J0aW9uIHRvIDEyLWluY2ggY2lyY2xlcwpUb3Agd2l0aCBjcnVzaGVkIHRvbWF0b2VzLCBtb3p6YXJlbGxhLCBhbmQgYmFzaWwKQmFrZSBhdCA0NzVceEIwRiAoMjQ1XHhCMEMpIGZvciAxMC0xMiBtaW51dGVzYCxtZXRhZGF0YTp7bGlzdFR5cGU6Im9yZGVyZWQifX0se2lkOmB0aXAtJHtlKzl9YCx0eXBlOiJxdW90ZSIsY29udGVudDoiUHJvIHRpcDogRm9yIGFuIGF1dGhlbnRpYyB0YXN0ZSwgdXNlIGEgcGl6emEgc3RvbmUgYW5kIHByZWhlYXQgaXQgaW4gdGhlIG92ZW4gZm9yIGF0IGxlYXN0IDMwIG1pbnV0ZXMgYmVmb3JlIGJha2luZy4ifSx7aWQ6YGRpdmlkZXItJHtlKzEwfWAsdHlwZToiZGl2aWRlciIsY29udGVudDoiIn0se2lkOmBzZXJ2aW5ncy0ke2UrMTF9YCx0eXBlOiJwYXJhZ3JhcGgiLGNvbnRlbnQ6IlNlcnZpbmdzOiA0IHBpenphcyB8IFByZXAgdGltZTogMiBob3VycyB8IENvb2sgdGltZTogMTIgbWludXRlcyJ9XX0sb1hyPWU9PntsZXQgdD17fTtyZXR1cm4gdC5iYXNpYz1lLnF1ZXJ5U2VsZWN0b3IoIiNlZGl0b3ItYmFzaWMiKSx0LmFydGljbGU9ZS5xdWVyeVNlbGVjdG9yKCIjZWRpdG9yLWFydGljbGUiKSx0LmRyYWdEcm9wPWUucXVlcnlTZWxlY3RvcigiI2VkaXRvci1kcmFnZHJvcCIpLHQudHV0b3JpYWw9ZS5xdWVyeVNlbGVjdG9yKCIjZWRpdG9yLXR1dG9yaWFsIiksdC5tZWV0aW5nPWUucXVlcnlTZWxlY3RvcigiI2VkaXRvci1tZWV0aW5nIiksdC5yZWNpcGU9ZS5xdWVyeVNlbGVjdG9yKCIjZWRpdG9yLXJlY2lwZSIpLHQudGVjaG5pY2FsPWUucXVlcnlTZWxlY3RvcigiI2VkaXRvci10ZWNobmljYWwiKSx0LmZvcm1JbnRlZ3JhdGlvbj1lLnF1ZXJ5U2VsZWN0b3IoIiNlZGl0b3ItZm9ybS1pbnRlZ3JhdGlvbiIpLHQucHJvZ3JhbW1hdGljPWUucXVlcnlTZWxlY3RvcigiI2VkaXRvci1wcm9ncmFtbWF0aWMiKSx0LmV4cG9ydERlbW89ZS5xdWVyeVNlbGVjdG9yKCIjZWRpdG9yLWV4cG9ydCIpLHR9LHNYcj0oZSx0KT0+e2xldCByPWUucXVlcnlTZWxlY3RvcigiI2J0bi1nZW5lcmF0ZS1yZXBvcnQiKSxpPWUucXVlcnlTZWxlY3RvcigiI2J0bi1nZW5lcmF0ZS1yZWNpcGUiKSxhPWUucXVlcnlTZWxlY3RvcigiI2J0bi1jbGVhci1lZGl0b3IiKTtyJiZyLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIiwoKT0+e3QuaW1wb3J0QmxvY2tzKGFYcigpKX0pLGkmJmkuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLCgpPT57dC5pbXBvcnRCbG9ja3MoblhyKCkpfSksYSYmYS5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsKCk9Pnt0LmltcG9ydEJsb2NrcyhbXSl9KX0sbFhyPShlLHQpPT57bGV0IHI9ZS5xdWVyeVNlbGVjdG9yKCIjYnRuLWV4cG9ydC1ibG9ja3MiKSxpPWUucXVlcnlTZWxlY3RvcigiI2J0bi1leHBvcnQtaHRtbCIpLGE9ZS5xdWVyeVNlbGVjdG9yKCIjYnRuLWV4cG9ydC1tYXJrZG93biIpLG49ZS5xdWVyeVNlbGVjdG9yKCIjYnRuLXNhdmUtc3RhdGUiKSxvPWUucXVlcnlTZWxlY3RvcigiI2J0bi1yZXN0b3JlLXN0YXRlIikscz1udWxsO3ImJnIuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLCgpPT57bGV0IGw9dC5leHBvcnRCbG9ja3MoKTtjb25zb2xlLmxvZygiRXhwb3J0ZWQgYmxvY2tzOiIsbCksYWxlcnQoYEV4cG9ydGVkICR7bC5sZW5ndGh9IGJsb2NrcyB0byBjb25zb2xlLiBDaGVjayBkZXZlbG9wZXIgdG9vbHMuYCl9KSxpJiZpLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIiwoKT0+e2xldCBsPXQuZXhwb3J0QXNIdG1sKCk7Y29uc29sZS5sb2coIkhUTUwgRXhwb3J0OiIsbCksYWxlcnQoIkhUTUwgZXhwb3J0ZWQgdG8gY29uc29sZS4gQ2hlY2sgZGV2ZWxvcGVyIHRvb2xzLiIpfSksYSYmYS5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsKCk9PntsZXQgbD10LmV4cG9ydEFzTWFya2Rvd24oKTtjb25zb2xlLmxvZygiTWFya2Rvd24gRXhwb3J0OiIsbCksYWxlcnQoIk1hcmtkb3duIGV4cG9ydGVkIHRvIGNvbnNvbGUuIENoZWNrIGRldmVsb3BlciB0b29scy4iKX0pLG4mJm4uYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLCgpPT57cz10LmV4cG9ydFN0YXRlKCksY29uc29sZS5sb2coIlNhdmVkIHN0YXRlOiIscyksYWxlcnQoIkVkaXRvciBzdGF0ZSBzYXZlZCEiKX0pLG8mJm8uYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLCgpPT57cz8odC5pbXBvcnRTdGF0ZShzKSxhbGVydCgiRWRpdG9yIHN0YXRlIHJlc3RvcmVkISIpKTphbGVydCgiTm8gc2F2ZWQgc3RhdGUgZm91bmQuIFNhdmUgc3RhdGUgZmlyc3QhIil9KX0sY1hyPShlLHQscik9PntsZXQgaT1lLnF1ZXJ5U2VsZWN0b3IoIiNidG4tc2hvdy1odG1sLW91dHB1dCIpLGE9ZS5xdWVyeVNlbGVjdG9yKCIjb3V0cHV0LXByZXZpZXctaHRtbCIpO2kmJmEmJnQmJmkuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLCgpPT57YS50ZXh0Q29udGVudD10LmdldFZhbHVlKCksYS5jbGFzc0xpc3QuYWRkKCJ2aXNpYmxlIil9KTtsZXQgbj1lLnF1ZXJ5U2VsZWN0b3IoIiNidG4tc2hvdy1tYXJrZG93bi1vdXRwdXQiKSxvPWUucXVlcnlTZWxlY3RvcigiI291dHB1dC1wcmV2aWV3LW1hcmtkb3duIik7biYmbyYmciYmbi5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsKCk9PntvLnRleHRDb250ZW50PXIuZ2V0VmFsdWUoKSxvLmNsYXNzTGlzdC5hZGQoInZpc2libGUiKX0pfSxkWHI9ZT0+e2UuYXJ0aWNsZSYmc2V0VGltZW91dCgoKT0+e2xldCB0PVt7aWQ6ImludHJvLWhlYWRpbmctIitEYXRlLm5vdygpLHR5cGU6ImhlYWRpbmctMiIsY29udGVudDoiSW50cm9kdWN0aW9uIHRvIE1vZGVybiBXZWIgRGV2ZWxvcG1lbnQifSx7aWQ6ImludHJvLXBhcmEtIitEYXRlLm5vdygpLHR5cGU6InBhcmFncmFwaCIsY29udGVudDoiTW9kZXJuIHdlYiBkZXZlbG9wbWVudCBoYXMgZXZvbHZlZCBzaWduaWZpY2FudGx5IG92ZXIgdGhlIHBhc3QgZGVjYWRlLiBJbiB0aGlzIGFydGljbGUsIHdlJ2xsIGV4cGxvcmUgdGhlIGtleSB0ZWNobm9sb2dpZXMgYW5kIGJlc3QgcHJhY3RpY2VzIHRoYXQgZGVmaW5lIHdlYiBkZXZlbG9wbWVudCBpbiAyMDI0LiJ9LHtpZDoidGVjaC1oZWFkaW5nLSIrRGF0ZS5ub3coKSx0eXBlOiJoZWFkaW5nLTMiLGNvbnRlbnQ6IktleSBUZWNobm9sb2dpZXMifSx7aWQ6InRlY2gtbGlzdC0iK0RhdGUubm93KCksdHlwZToibGlzdCIsY29udGVudDpgVHlwZVNjcmlwdCAtIFR5cGUtc2FmZSBKYXZhU2NyaXB0IGRldmVsb3BtZW50CldlYiBDb21wb25lbnRzIC0gTmF0aXZlIGNvbXBvbmVudCBtb2RlbApFUyBNb2R1bGVzIC0gTW9kZXJuIG1vZHVsZSBzeXN0ZW0KV2ViQXNzZW1ibHkgLSBIaWdoLXBlcmZvcm1hbmNlIGNvbXB1dGluZ2AsbWV0YWRhdGE6e2xpc3RUeXBlOiJvcmRlcmVkIn19LHtpZDoicXVvdGUtIitEYXRlLm5vdygpLHR5cGU6InF1b3RlIixjb250ZW50OiJUaGUgYmVzdCB3YXkgdG8gcHJlZGljdCB0aGUgZnV0dXJlIGlzIHRvIGludmVudCBpdC4gLSBBbGFuIEtheSJ9LHtpZDoiZXhhbXBsZS1oZWFkaW5nLSIrRGF0ZS5ub3coKSx0eXBlOiJoZWFkaW5nLTMiLGNvbnRlbnQ6IkNvZGUgRXhhbXBsZSJ9LHtpZDoiY29kZS1leGFtcGxlLSIrRGF0ZS5ub3coKSx0eXBlOiJjb2RlIixjb250ZW50OmBjbGFzcyBNb2Rlcm5XZWJBcHAgZXh0ZW5kcyBIVE1MRWxlbWVudCB7CiAgY29uc3RydWN0b3IoKSB7CiAgICBzdXBlcigpOwogICAgdGhpcy5hdHRhY2hTaGFkb3coeyBtb2RlOiAnb3BlbicgfSk7CiAgfQogIAogIGNvbm5lY3RlZENhbGxiYWNrKCkgewogICAgdGhpcy5yZW5kZXIoKTsKICB9Cn1gLG1ldGFkYXRhOntsYW5ndWFnZToiamF2YXNjcmlwdCJ9fV07ZS5hcnRpY2xlLmltcG9ydEJsb2Nrcyh0KX0sNTAwKSxlLmRyYWdEcm9wJiZzZXRUaW1lb3V0KCgpPT57bGV0IHQ9W3tpZDoiZHJhZy10aXRsZS0iK0RhdGUubm93KCksdHlwZToiaGVhZGluZy0xIixjb250ZW50OiJEcmFnICYgRHJvcCBEZW1vIn0se2lkOiJkcmFnLWludHJvLSIrRGF0ZS5ub3coKSx0eXBlOiJwYXJhZ3JhcGgiLGNvbnRlbnQ6IlRoaXMgZWRpdG9yIGRlbW9uc3RyYXRlcyBkcmFnIGFuZCBkcm9wIGZ1bmN0aW9uYWxpdHkuIFRyeSBkcmFnZ2luZyB0aGVzZSBibG9ja3MgYXJvdW5kISJ9LHtpZDoiZHJhZy1oZWFkaW5nLSIrRGF0ZS5ub3coKSx0eXBlOiJoZWFkaW5nLTIiLGNvbnRlbnQ6IkhvdyBJdCBXb3JrcyJ9LHtpZDoiZHJhZy1saXN0LSIrRGF0ZS5ub3coKSx0eXBlOiJsaXN0Iixjb250ZW50OmBIb3ZlciBvdmVyIGFueSBibG9jayB0byBzZWUgdGhlIGRyYWcgaGFuZGxlCkNsaWNrIGFuZCBob2xkIHRoZSBoYW5kbGUgdG8gc3RhcnQgZHJhZ2dpbmcKRHJhZyB0byByZW9yZGVyIGJsb2NrcwpSZWxlYXNlIHRvIGRyb3AgaW4gdGhlIG5ldyBwb3NpdGlvbmAsbWV0YWRhdGE6e2xpc3RUeXBlOiJvcmRlcmVkIn19LHtpZDoiZHJhZy1xdW90ZS0iK0RhdGUubm93KCksdHlwZToicXVvdGUiLGNvbnRlbnQ6IlRoZSBkcmFnIGFuZCBkcm9wIGZlYXR1cmUgbWFrZXMgaXQgZWFzeSB0byByZW9yZ2FuaXplIHlvdXIgY29udGVudCB3aXRob3V0IGN1dHRpbmcgYW5kIHBhc3RpbmcuIn0se2lkOiJkcmFnLWRpdmlkZXItIitEYXRlLm5vdygpLHR5cGU6ImRpdmlkZXIiLGNvbnRlbnQ6IiJ9LHtpZDoiZHJhZy1mb290ZXItIitEYXRlLm5vdygpLHR5cGU6InBhcmFncmFwaCIsY29udGVudDoiTm90ZTogRGl2aWRlciBibG9ja3MgY2Fubm90IGJlIGRyYWdnZWQsIGJ1dCBvdGhlciBibG9ja3MgY2FuIGJlIG1vdmVkIGFyb3VuZCB0aGVtLiJ9XTtlLmRyYWdEcm9wLmltcG9ydEJsb2Nrcyh0KX0sNjAwKX0sVzByPSgpPT5DYAogIDxkZWVzLWRlbW93cmFwcGVyIC5ydW5BZnRlclJlbmRlcj0ke2FzeW5jIGU9Pnthd2FpdCBuZXcgUHJvbWlzZShyPT5zZXRUaW1lb3V0KHIsNTAwKSk7bGV0IHQ9b1hyKGUpO3QucHJvZ3JhbW1hdGljJiZzWHIoZSx0LnByb2dyYW1tYXRpYyksdC5leHBvcnREZW1vJiZsWHIoZSx0LmV4cG9ydERlbW8pLGNYcihlLHQubWVldGluZyx0LnJlY2lwZSksZFhyKHQpLGNvbnNvbGUubG9nKCJXWVNJV1lHIERlbW8gaW5pdGlhbGl6ZWQgd2l0aCBlZGl0b3JzOiIsT2JqZWN0LmtleXModCkpfX0+CiAgPHN0eWxlPgogICAgJHtvZWAKICAgICAgLmRlbW8tY29udGFpbmVyIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgICAgZ2FwOiAzMnB4OwogICAgICAgIHBhZGRpbmc6IDI0cHg7CiAgICAgICAgbWF4LXdpZHRoOiAxMjAwcHg7CiAgICAgICAgbWFyZ2luOiAwIGF1dG87CiAgICAgIH0KICAgICAgCiAgICAgIGRlZXMtcGFuZWwgewogICAgICAgIG1hcmdpbi1ib3R0b206IDMycHg7CiAgICAgIH0KICAgICAgCiAgICAgIC5wYW5lbC1kZXNjcmlwdGlvbiB7CiAgICAgICAgbWFyZ2luLXRvcDogMDsKICAgICAgICBtYXJnaW4tYm90dG9tOiAyNHB4OwogICAgICAgIGNvbG9yOiAjNjY2OwogICAgICAgIGZvbnQtc2l6ZTogMTVweDsKICAgICAgICBsaW5lLWhlaWdodDogMS42OwogICAgICB9CiAgICAgIAogICAgICBAbWVkaWEgKHByZWZlcnMtY29sb3Itc2NoZW1lOiBkYXJrKSB7CiAgICAgICAgLnBhbmVsLWRlc2NyaXB0aW9uIHsKICAgICAgICAgIGNvbG9yOiAjOTk5OwogICAgICAgIH0KICAgICAgfQoKICAgICAgLmZlYXR1cmUtZ3JpZCB7CiAgICAgICAgZGlzcGxheTogZ3JpZDsKICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdChhdXRvLWZpdCwgbWlubWF4KDIwMHB4LCAxZnIpKTsKICAgICAgICBnYXA6IDE2cHg7CiAgICAgICAgbWFyZ2luLWJvdHRvbTogMjRweDsKICAgICAgfQoKICAgICAgLmZlYXR1cmUtaXRlbSB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGdhcDogOHB4OwogICAgICAgIGNvbG9yOiAjNTU1OwogICAgICAgIGZvbnQtc2l6ZTogMTRweDsKICAgICAgfQoKICAgICAgLmZlYXR1cmUtaWNvbiB7CiAgICAgICAgY29sb3I6ICMwMDY2Y2M7CiAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDsKICAgICAgfQoKICAgICAgQG1lZGlhIChwcmVmZXJzLWNvbG9yLXNjaGVtZTogZGFyaykgewogICAgICAgIC5mZWF0dXJlLWl0ZW0gewogICAgICAgICAgY29sb3I6ICNhYWE7CiAgICAgICAgfQogICAgICAgIC5mZWF0dXJlLWljb24gewogICAgICAgICAgY29sb3I6ICM0ZDk0ZmY7CiAgICAgICAgfQogICAgICB9CgogICAgICAuc2hvcnRjdXRzLWJveCB7CiAgICAgICAgYmFja2dyb3VuZDogcmdiYSgwLCAxMDIsIDIwNCwgMC4wNSk7CiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgcmdiYSgwLCAxMDIsIDIwNCwgMC4yKTsKICAgICAgICBib3JkZXItcmFkaXVzOiA4cHg7CiAgICAgICAgcGFkZGluZzogMTZweDsKICAgICAgICBtYXJnaW4tdG9wOiAxNnB4OwogICAgICB9CgogICAgICBAbWVkaWEgKHByZWZlcnMtY29sb3Itc2NoZW1lOiBkYXJrKSB7CiAgICAgICAgLnNob3J0Y3V0cy1ib3ggewogICAgICAgICAgYmFja2dyb3VuZDogcmdiYSg3NywgMTQ4LCAyNTUsIDAuMSk7CiAgICAgICAgICBib3JkZXItY29sb3I6IHJnYmEoNzcsIDE0OCwgMjU1LCAwLjMpOwogICAgICAgIH0KICAgICAgfQoKICAgICAgLnNob3J0Y3V0cy10aXRsZSB7CiAgICAgICAgbWFyZ2luOiAwIDAgMTJweCAwOwogICAgICAgIGZvbnQtc2l6ZTogMTRweDsKICAgICAgICBmb250LXdlaWdodDogNjAwOwogICAgICAgIGNvbG9yOiAjMDA2NmNjOwogICAgICB9CgogICAgICBAbWVkaWEgKHByZWZlcnMtY29sb3Itc2NoZW1lOiBkYXJrKSB7CiAgICAgICAgLnNob3J0Y3V0cy10aXRsZSB7CiAgICAgICAgICBjb2xvcjogIzRkOTRmZjsKICAgICAgICB9CiAgICAgIH0KCiAgICAgIC5zaG9ydGN1dHMtZ3JpZCB7CiAgICAgICAgZGlzcGxheTogZ3JpZDsKICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdChhdXRvLWZpbGwsIG1pbm1heCgxODBweCwgMWZyKSk7CiAgICAgICAgZ2FwOiA4cHg7CiAgICAgIH0KCiAgICAgIC5zaG9ydGN1dC1pdGVtIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgZ2FwOiA4cHg7CiAgICAgICAgZm9udC1zaXplOiAxM3B4OwogICAgICAgIGNvbG9yOiAjNTU1OwogICAgICB9CgogICAgICAuc2hvcnRjdXQta2V5IHsKICAgICAgICBiYWNrZ3JvdW5kOiAjZjBmMGYwOwogICAgICAgIHBhZGRpbmc6IDJweCA2cHg7CiAgICAgICAgYm9yZGVyLXJhZGl1czogNHB4OwogICAgICAgIGZvbnQtZmFtaWx5OiBtb25vc3BhY2U7CiAgICAgICAgZm9udC1zaXplOiAxMnB4OwogICAgICAgIGNvbG9yOiAjMzMzOwogICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7CiAgICAgIH0KCiAgICAgIEBtZWRpYSAocHJlZmVycy1jb2xvci1zY2hlbWU6IGRhcmspIHsKICAgICAgICAuc2hvcnRjdXQtaXRlbSB7CiAgICAgICAgICBjb2xvcjogI2JiYjsKICAgICAgICB9CiAgICAgICAgLnNob3J0Y3V0LWtleSB7CiAgICAgICAgICBiYWNrZ3JvdW5kOiAjMzMzOwogICAgICAgICAgY29sb3I6ICNkZGQ7CiAgICAgICAgfQogICAgICB9CgogICAgICAub3V0cHV0LWdyaWQgewogICAgICAgIGRpc3BsYXk6IGdyaWQ7CiAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoYXV0by1maXQsIG1pbm1heCgzMjBweCwgMWZyKSk7CiAgICAgICAgZ2FwOiAyNHB4OwogICAgICAgIG1hcmdpbi10b3A6IDI0cHg7CiAgICAgIH0KCiAgICAgIC5vdXRwdXQtY2FyZCB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICAgIGdhcDogMTJweDsKICAgICAgfQoKICAgICAgLm91dHB1dC1hY3Rpb25zIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7CiAgICAgIH0KCiAgICAgIC5vdXRwdXQtcHJldmlldyB7CiAgICAgICAgZGlzcGxheTogbm9uZTsKICAgICAgICBiYWNrZ3JvdW5kOiByZ2JhKDE1LCAyMywgNDIsIDAuMDQpOwogICAgICAgIGNvbG9yOiB2YXIoLS1kZWVzLWNvbG9yLXRleHQsICMwZjE3MmEpOwogICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIHJnYmEoMTUsIDIzLCA0MiwgMC4xKTsKICAgICAgICBib3JkZXItcmFkaXVzOiA4cHg7CiAgICAgICAgcGFkZGluZzogMTZweDsKICAgICAgICB3aGl0ZS1zcGFjZTogcHJlLXdyYXA7CiAgICAgICAgZm9udC1mYW1pbHk6ICdHZWlzdCBNb25vJywgJ0ZpcmEgQ29kZScsIG1vbm9zcGFjZTsKICAgICAgICBmb250LXNpemU6IDEzcHg7CiAgICAgICAgbWF4LWhlaWdodDogMjgwcHg7CiAgICAgICAgb3ZlcmZsb3c6IGF1dG87CiAgICAgIH0KCiAgICAgIDpob3N0KFt0aGVtZT0nZGFyayddKSAub3V0cHV0LXByZXZpZXcgewogICAgICAgIGJhY2tncm91bmQ6IHJnYmEoMjUwLCAyNTAsIDI1MCwgMC4wNik7CiAgICAgICAgYm9yZGVyLWNvbG9yOiByZ2JhKDI1MCwgMjUwLCAyNTAsIDAuMTUpOwogICAgICAgIGNvbG9yOiB2YXIoLS1kZWVzLWNvbG9yLXRleHQsICNmNGY0ZjUpOwogICAgICB9CgogICAgICAub3V0cHV0LXByZXZpZXcudmlzaWJsZSB7CiAgICAgICAgZGlzcGxheTogYmxvY2s7CiAgICAgIH0KCiAgICAgIEBtZWRpYSAobWF4LXdpZHRoOiA3NjhweCkgewogICAgICAgIC5vdXRwdXQtZ3JpZCB7CiAgICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDFmcjsKICAgICAgICB9CiAgICAgIH0KICAgICAgCiAgICAgIC50aXBzLWJveCB7CiAgICAgICAgbWFyZ2luLXRvcDogMTZweDsKICAgICAgICBwYWRkaW5nOiAxMnB4OwogICAgICAgIGJhY2tncm91bmQ6ICNmMGY4ZmY7CiAgICAgICAgYm9yZGVyLXJhZGl1czogOHB4OwogICAgICAgIGZvbnQtc2l6ZTogMTRweDsKICAgICAgICBsaW5lLWhlaWdodDogMS42OwogICAgICB9CiAgICAgIAogICAgICBAbWVkaWEgKHByZWZlcnMtY29sb3Itc2NoZW1lOiBkYXJrKSB7CiAgICAgICAgLnRpcHMtYm94IHsKICAgICAgICAgIGJhY2tncm91bmQ6IHJnYmEoNzcsIDE0OCwgMjU1LCAwLjEpOwogICAgICAgIH0KICAgICAgfQogICAgICAKICAgICAgLnRpcHMtYm94IHN0cm9uZyB7CiAgICAgICAgY29sb3I6ICMwMDY2Y2M7CiAgICAgIH0KICAgICAgCiAgICAgIEBtZWRpYSAocHJlZmVycy1jb2xvci1zY2hlbWU6IGRhcmspIHsKICAgICAgICAudGlwcy1ib3ggc3Ryb25nIHsKICAgICAgICAgIGNvbG9yOiAjNGQ5NGZmOwogICAgICAgIH0KICAgICAgfQogICAgICAKICAgICAgLnRpcHMtbGlzdCB7CiAgICAgICAgbWFyZ2luOiA4cHggMCAwIDA7CiAgICAgICAgcGFkZGluZy1sZWZ0OiAyNHB4OwogICAgICB9CiAgICAgIAogICAgICAudGlwcy1saXN0IGxpIHsKICAgICAgICBtYXJnaW46IDRweCAwOwogICAgICB9CiAgICAgIAogICAgICAuYnV0dG9uLWdyb3VwIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGdhcDogOHB4OwogICAgICAgIGZsZXgtd3JhcDogd3JhcDsKICAgICAgICBtYXJnaW4tdG9wOiAxNnB4OwogICAgICB9CiAgICAgIAogICAgICAuZGVtby1idXR0b24gewogICAgICAgIHBhZGRpbmc6IDhweCAxNnB4OwogICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICNkZGQ7CiAgICAgICAgYm9yZGVyLXJhZGl1czogNHB4OwogICAgICAgIGJhY2tncm91bmQ6ICNmOGY4Zjg7CiAgICAgICAgY3Vyc29yOiBwb2ludGVyOwogICAgICAgIGZvbnQtc2l6ZTogMTRweDsKICAgICAgICBmb250LWZhbWlseTogaW5oZXJpdDsKICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC4ycyBlYXNlOwogICAgICB9CiAgICAgIAogICAgICAuZGVtby1idXR0b246aG92ZXIgewogICAgICAgIGJhY2tncm91bmQ6ICNlOGU4ZTg7CiAgICAgICAgYm9yZGVyLWNvbG9yOiAjY2NjOwogICAgICB9CiAgICAgIAogICAgICAuZGVtby1idXR0b246YWN0aXZlIHsKICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMXB4KTsKICAgICAgfQogICAgICAKICAgICAgQG1lZGlhIChwcmVmZXJzLWNvbG9yLXNjaGVtZTogZGFyaykgewogICAgICAgIC5kZW1vLWJ1dHRvbiB7CiAgICAgICAgICBiYWNrZ3JvdW5kOiAjMzMzOwogICAgICAgICAgYm9yZGVyLWNvbG9yOiAjNTU1OwogICAgICAgICAgY29sb3I6ICNkZGQ7CiAgICAgICAgfQogICAgICAgIAogICAgICAgIC5kZW1vLWJ1dHRvbjpob3ZlciB7CiAgICAgICAgICBiYWNrZ3JvdW5kOiAjNDQ0OwogICAgICAgICAgYm9yZGVyLWNvbG9yOiAjNjY2OwogICAgICAgIH0KICAgICAgfQogICAgICAKICAgICAgLmV4cG9ydC1pbmZvLWdyaWQgewogICAgICAgIGRpc3BsYXk6IGdyaWQ7CiAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoYXV0by1maXQsIG1pbm1heCgyNTBweCwgMWZyKSk7CiAgICAgICAgZ2FwOiAxNnB4OwogICAgICAgIG1hcmdpbi1ib3R0b206IDI0cHg7CiAgICAgIH0KICAgICAgCiAgICAgIC5leHBvcnQtaW5mby1jYXJkIHsKICAgICAgICBwYWRkaW5nOiAxNnB4OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDhweDsKICAgICAgfQogICAgICAKICAgICAgLmV4cG9ydC1pbmZvLWNhcmQuYmxvY2tzIHsKICAgICAgICBiYWNrZ3JvdW5kOiByZ2JhKDAsIDEwMiwgMjA0LCAwLjEpOwogICAgICB9CiAgICAgIAogICAgICAuZXhwb3J0LWluZm8tY2FyZC5odG1sIHsKICAgICAgICBiYWNrZ3JvdW5kOiByZ2JhKDc2LCAxNzUsIDgwLCAwLjEpOwogICAgICB9CiAgICAgIAogICAgICAuZXhwb3J0LWluZm8tY2FyZC5tYXJrZG93biB7CiAgICAgICAgYmFja2dyb3VuZDogcmdiYSgyNTUsIDE1MiwgMCwgMC4xKTsKICAgICAgfQogICAgICAKICAgICAgLmV4cG9ydC1pbmZvLWNhcmQuc3RhdGUgewogICAgICAgIGJhY2tncm91bmQ6IHJnYmEoMTU2LCAzOSwgMTc2LCAwLjEpOwogICAgICB9CiAgICAgIAogICAgICAuZXhwb3J0LWluZm8tY2FyZCBzdHJvbmcgewogICAgICAgIGRpc3BsYXk6IGJsb2NrOwogICAgICAgIG1hcmdpbi1ib3R0b206IDhweDsKICAgICAgfQogICAgICAKICAgICAgLmV4cG9ydC1pbmZvLWNhcmQuYmxvY2tzIHN0cm9uZyB7CiAgICAgICAgY29sb3I6ICMwMDY2Y2M7CiAgICAgIH0KICAgICAgCiAgICAgIC5leHBvcnQtaW5mby1jYXJkLmh0bWwgc3Ryb25nIHsKICAgICAgICBjb2xvcjogIzRDQUY1MDsKICAgICAgfQogICAgICAKICAgICAgLmV4cG9ydC1pbmZvLWNhcmQubWFya2Rvd24gc3Ryb25nIHsKICAgICAgICBjb2xvcjogI0ZGOTgwMDsKICAgICAgfQogICAgICAKICAgICAgLmV4cG9ydC1pbmZvLWNhcmQuc3RhdGUgc3Ryb25nIHsKICAgICAgICBjb2xvcjogIzlDMjdCMDsKICAgICAgfQogICAgICAKICAgICAgLmV4cG9ydC1pbmZvLWNhcmQgcCB7CiAgICAgICAgbWFyZ2luOiAwOwogICAgICAgIGZvbnQtc2l6ZTogMTRweDsKICAgICAgICBsaW5lLWhlaWdodDogMS41OwogICAgICB9CiAgICBgfQogIDwvc3R5bGU+CiAgCiAgICA8ZGl2IGNsYXNzPSJkZW1vLWNvbnRhaW5lciI+CiAgICAgIDxkZWVzLXBhbmVsIC50aXRsZT0keyIxLiBcdXsxRjY4MH0gTW9kZXJuIFdZU0lXWUcgRWRpdG9yIn0+CiAgICAgICAgPHAgY2xhc3M9InBhbmVsLWRlc2NyaXB0aW9uIj4KICAgICAgICAgIEEgcG93ZXJmdWwgYmxvY2stYmFzZWQgZWRpdG9yIHdpdGggc2xhc2ggY29tbWFuZHMsIGtleWJvYXJkIHNob3J0Y3V0cywgYW5kIG11bHRpcGxlIG91dHB1dCBmb3JtYXRzLiAKICAgICAgICAgIFBlcmZlY3QgZm9yIGNvbnRlbnQgY3JlYXRpb24sIGJsb2cgcG9zdHMsIGRvY3VtZW50YXRpb24sIGFuZCBtb3JlLgogICAgICAgIDwvcD4KICAgICAgICAKICAgICAgICA8ZGl2IGNsYXNzPSJmZWF0dXJlLWdyaWQiPgogICAgICAgICAgPGRpdiBjbGFzcz0iZmVhdHVyZS1pdGVtIj4KICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImZlYXR1cmUtaWNvbiI+4pyTPC9zcGFuPgogICAgICAgICAgICA8c3Bhbj5TbGFzaCBjb21tYW5kcyAoLyk8L3NwYW4+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIDxkaXYgY2xhc3M9ImZlYXR1cmUtaXRlbSI+CiAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJmZWF0dXJlLWljb24iPuKckzwvc3Bhbj4KICAgICAgICAgICAgPHNwYW4+S2V5Ym9hcmQgc2hvcnRjdXRzPC9zcGFuPgogICAgICAgICAgPC9kaXY+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJmZWF0dXJlLWl0ZW0iPgogICAgICAgICAgICA8c3BhbiBjbGFzcz0iZmVhdHVyZS1pY29uIj7inJM8L3NwYW4+CiAgICAgICAgICAgIDxzcGFuPkJsb2NrLWJhc2VkIGVkaXRpbmc8L3NwYW4+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIDxkaXYgY2xhc3M9ImZlYXR1cmUtaXRlbSI+CiAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJmZWF0dXJlLWljb24iPuKckzwvc3Bhbj4KICAgICAgICAgICAgPHNwYW4+RHJhZyAmIGRyb3AgcmVvcmRlcmluZzwvc3Bhbj4KICAgICAgICAgIDwvZGl2PgogICAgICAgICAgPGRpdiBjbGFzcz0iZmVhdHVyZS1pdGVtIj4KICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImZlYXR1cmUtaWNvbiI+4pyTPC9zcGFuPgogICAgICAgICAgICA8c3Bhbj5IVE1MICYgTWFya2Rvd24gb3V0cHV0PC9zcGFuPgogICAgICAgICAgPC9kaXY+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJmZWF0dXJlLWl0ZW0iPgogICAgICAgICAgICA8c3BhbiBjbGFzcz0iZmVhdHVyZS1pY29uIj7inJM8L3NwYW4+CiAgICAgICAgICAgIDxzcGFuPkRhcmsgbW9kZSBzdXBwb3J0PC9zcGFuPgogICAgICAgICAgPC9kaXY+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJmZWF0dXJlLWl0ZW0iPgogICAgICAgICAgICA8c3BhbiBjbGFzcz0iZmVhdHVyZS1pY29uIj7inJM8L3NwYW4+CiAgICAgICAgICAgIDxzcGFuPk1vYmlsZSByZXNwb25zaXZlPC9zcGFuPgogICAgICAgICAgPC9kaXY+CiAgICAgICAgPC9kaXY+CiAgICAgICAgCiAgICAgICAgPGRlZXMtaW5wdXQtd3lzaXd5ZyAKICAgICAgICAgIGlkPSJlZGl0b3ItYmFzaWMiCiAgICAgICAgICBsYWJlbD0iUmljaCBUZXh0IEVkaXRvciIgCiAgICAgICAgICBkZXNjcmlwdGlvbj0iU3RhcnQgdHlwaW5nIG9yIHVzZSAnLycgdG8gaW5zZXJ0IGRpZmZlcmVudCBibG9jayB0eXBlcyIKICAgICAgICAgIG91dHB1dEZvcm1hdD0iaHRtbCIKICAgICAgICA+PC9kZWVzLWlucHV0LXd5c2l3eWc+CgogICAgICAgIDxkaXYgY2xhc3M9InNob3J0Y3V0cy1ib3giPgogICAgICAgICAgPGg0IGNsYXNzPSJzaG9ydGN1dHMtdGl0bGUiPuKMqO+4jyBLZXlib2FyZCBTaG9ydGN1dHM8L2g0PgogICAgICAgICAgPGRpdiBjbGFzcz0ic2hvcnRjdXRzLWdyaWQiPgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJzaG9ydGN1dC1pdGVtIj4KICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0ic2hvcnRjdXQta2V5Ij4vPC9zcGFuPiBTbGFzaCBjb21tYW5kcwogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0ic2hvcnRjdXQtaXRlbSI+CiAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9InNob3J0Y3V0LWtleSI+Izwvc3Bhbj4gSGVhZGluZyAxCiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJzaG9ydGN1dC1pdGVtIj4KICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0ic2hvcnRjdXQta2V5Ij4jIzwvc3Bhbj4gSGVhZGluZyAyCiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJzaG9ydGN1dC1pdGVtIj4KICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0ic2hvcnRjdXQta2V5Ij4jIyM8L3NwYW4+IEhlYWRpbmcgMwogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0ic2hvcnRjdXQtaXRlbSI+CiAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9InNob3J0Y3V0LWtleSI+Pjwvc3Bhbj4gUXVvdGUKICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9InNob3J0Y3V0LWl0ZW0iPgogICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJzaG9ydGN1dC1rZXkiPlxgXGBcYDwvc3Bhbj4gQ29kZSBibG9jawogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0ic2hvcnRjdXQtaXRlbSI+CiAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9InNob3J0Y3V0LWtleSI+Kjwvc3Bhbj4gb3IgPHNwYW4gY2xhc3M9InNob3J0Y3V0LWtleSI+LTwvc3Bhbj4gQnVsbGV0IGxpc3QKICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9InNob3J0Y3V0LWl0ZW0iPgogICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJzaG9ydGN1dC1rZXkiPjEuPC9zcGFuPiBOdW1iZXJlZCBsaXN0CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJzaG9ydGN1dC1pdGVtIj4KICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0ic2hvcnRjdXQta2V5Ij4tLS08L3NwYW4+IERpdmlkZXIKICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICA8L2Rpdj4KICAgICAgPC9kZWVzLXBhbmVsPgogICAgICAKICAgICAgPGRlZXMtcGFuZWwgLnRpdGxlPSR7IjIuIFx1ezFGNEREfSBCbG9nIFBvc3QgRXhhbXBsZSJ9PgogICAgICAgIDxwIGNsYXNzPSJwYW5lbC1kZXNjcmlwdGlvbiI+CiAgICAgICAgICBQZXJmZWN0IGZvciBjcmVhdGluZyByaWNoIGNvbnRlbnQgd2l0aCBtdWx0aXBsZSBibG9jayB0eXBlcy4gCiAgICAgICAgICBUaGUgZWRpdG9yIHByZXNlcnZlcyBmb3JtYXR0aW5nIGFuZCBwcm92aWRlcyBhIGNsZWFuIGVkaXRpbmcgZXhwZXJpZW5jZS4KICAgICAgICA8L3A+CiAgICAgICAgCiAgICAgICAgPGRlZXMtaW5wdXQtd3lzaXd5ZyAKICAgICAgICAgIGlkPSJlZGl0b3ItYXJ0aWNsZSIKICAgICAgICAgIGxhYmVsPSJCbG9nIFBvc3QgQ29udGVudCIgCiAgICAgICAgICBkZXNjcmlwdGlvbj0iV3JpdGUgeW91ciBhcnRpY2xlIHVzaW5nIHZhcmlvdXMgZm9ybWF0dGluZyBvcHRpb25zIgogICAgICAgICAgb3V0cHV0Rm9ybWF0PSJodG1sIgogICAgICAgID48L2RlZXMtaW5wdXQtd3lzaXd5Zz4KICAgICAgPC9kZWVzLXBhbmVsPgoKICAgICAgPGRlZXMtcGFuZWwgLnRpdGxlPSR7IjMuIFx1ezFGNTAwfSBEcmFnICYgRHJvcCBSZW9yZGVyaW5nIn0+CiAgICAgICAgPHAgY2xhc3M9InBhbmVsLWRlc2NyaXB0aW9uIj4KICAgICAgICAgIEVhc2lseSByZWFycmFuZ2UgeW91ciBjb250ZW50IGJsb2NrcyBieSBkcmFnZ2luZyB0aGVtLiAKICAgICAgICAgIEhvdmVyIG92ZXIgYW55IGJsb2NrIHRvIHJldmVhbCB0aGUgZHJhZyBoYW5kbGUgb24gdGhlIGxlZnQgc2lkZS4KICAgICAgICA8L3A+CiAgICAgICAgCiAgICAgICAgPGRlZXMtaW5wdXQtd3lzaXd5ZyAKICAgICAgICAgIGlkPSJlZGl0b3ItZHJhZ2Ryb3AiCiAgICAgICAgICBsYWJlbD0iRHJhZyAmIERyb3AgRGVtbyIgCiAgICAgICAgICBkZXNjcmlwdGlvbj0iVHJ5IGRyYWdnaW5nIGJsb2NrcyB0byByZW9yZGVyIHRoZW0gLSBob3ZlciB0byBzZWUgZHJhZyBoYW5kbGVzIgogICAgICAgID48L2RlZXMtaW5wdXQtd3lzaXd5Zz4KICAgICAgICAKICAgICAgICA8ZGl2IGNsYXNzPSJ0aXBzLWJveCI+CiAgICAgICAgICA8c3Ryb25nPvCfkqEgVGlwczo8L3N0cm9uZz4KICAgICAgICAgIDx1bCBjbGFzcz0idGlwcy1saXN0Ij4KICAgICAgICAgICAgPGxpPkhvdmVyIG92ZXIgYW55IGJsb2NrIHRvIHNlZSB0aGUgZHJhZyBoYW5kbGUgKOKLruKLrikgb24gdGhlIGxlZnQ8L2xpPgogICAgICAgICAgICA8bGk+Q2xpY2sgYW5kIGhvbGQgdGhlIGRyYWcgaGFuZGxlIHRvIHN0YXJ0IGRyYWdnaW5nPC9saT4KICAgICAgICAgICAgPGxpPkJsdWUgaW5kaWNhdG9ycyBzaG93IHdoZXJlIHRoZSBibG9jayB3aWxsIGJlIGRyb3BwZWQ8L2xpPgogICAgICAgICAgICA8bGk+RGl2aWRlciBibG9ja3MgY2Fubm90IGJlIGRyYWdnZWQ8L2xpPgogICAgICAgICAgICA8bGk+VGhlIGVkaXRvciBtYWludGFpbnMgZm9jdXMgb24gdGhlIG1vdmVkIGJsb2NrIGFmdGVyIGRyb3BwaW5nPC9saT4KICAgICAgICAgIDwvdWw+CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGVlcy1wYW5lbD4KCiAgICAgIDxkZWVzLXBhbmVsIC50aXRsZT0keyI0LiBcdXsxRjREQX0gVHV0b3JpYWwgJiBEb2N1bWVudGF0aW9uIn0+CiAgICAgICAgPHAgY2xhc3M9InBhbmVsLWRlc2NyaXB0aW9uIj4KICAgICAgICAgIENyZWF0ZSBjb21wcmVoZW5zaXZlIHR1dG9yaWFscyBhbmQgZG9jdW1lbnRhdGlvbiB3aXRoIGNvZGUgZXhhbXBsZXMsIGxpc3RzLCBhbmQgc3RydWN0dXJlZCBjb250ZW50LgogICAgICAgIDwvcD4KICAgICAgICAKICAgICAgICA8ZGVlcy1pbnB1dC13eXNpd3lnIAogICAgICAgICAgaWQ9ImVkaXRvci10dXRvcmlhbCIKICAgICAgICAgIGxhYmVsPSJHaXQgVHV0b3JpYWwiIAogICAgICAgICAgZGVzY3JpcHRpb249IlN0ZXAtYnktc3RlcCBndWlkZSB3aXRoIGNvbW1hbmRzIGFuZCBleHBsYW5hdGlvbnMiCiAgICAgICAgICBvdXRwdXRGb3JtYXQ9Im1hcmtkb3duIgogICAgICAgICAgdmFsdWU9IiMgR2l0IFR1dG9yaWFsIGZvciBCZWdpbm5lcnMKCkdpdCBpcyBhIGRpc3RyaWJ1dGVkIHZlcnNpb24gY29udHJvbCBzeXN0ZW0gdGhhdCBoZWxwcyB5b3UgdHJhY2sgY2hhbmdlcyBpbiB5b3VyIGNvZGUgb3ZlciB0aW1lLiBUaGlzIHR1dG9yaWFsIHdpbGwgZ3VpZGUgeW91IHRocm91Z2ggdGhlIGJhc2ljcy4KCiMjIFByZXJlcXVpc2l0ZXMKCkJlZm9yZSBzdGFydGluZywgZW5zdXJlIHlvdSBoYXZlOgoKLSBHaXQgaW5zdGFsbGVkIG9uIHlvdXIgc3lzdGVtCi0gQSB0ZXh0IGVkaXRvciBvciBJREUKLSBCYXNpYyBjb21tYW5kIGxpbmUga25vd2xlZGdlCgojIyBHZXR0aW5nIFN0YXJ0ZWQKCiMjIyAxLiBDb25maWd1cmUgR2l0CgpGaXJzdCwgc2V0IHVwIHlvdXIgaWRlbnRpdHk6CgpcYFxgXGBiYXNoCmdpdCBjb25maWcgLS1nbG9iYWwgdXNlci5uYW1lICZxdW90O1lvdXIgTmFtZSZxdW90OwpnaXQgY29uZmlnIC0tZ2xvYmFsIHVzZXIuZW1haWwgJnF1b3Q7eW91ci5lbWFpbEBleGFtcGxlLmNvbSZxdW90OwpcYFxgXGAKCiMjIyAyLiBJbml0aWFsaXplIGEgUmVwb3NpdG9yeQoKQ3JlYXRlIGEgbmV3IEdpdCByZXBvc2l0b3J5OgoKXGBcYFxgYmFzaApta2RpciBteS1wcm9qZWN0CmNkIG15LXByb2plY3QKZ2l0IGluaXQKXGBcYFxgCgojIyMgMy4gQmFzaWMgR2l0IFdvcmtmbG93CgojIyMjIEFkZGluZyBGaWxlcwoKQ3JlYXRlIGEgZmlsZSBhbmQgYWRkIGl0IHRvIHN0YWdpbmc6CgpcYFxgXGBiYXNoCmVjaG8gJnF1b3Q7IyBNeSBQcm9qZWN0JnF1b3Q7ID4gUkVBRE1FLm1kCmdpdCBhZGQgUkVBRE1FLm1kClxgXGBcYAoKIyMjIyBDb21taXR0aW5nIENoYW5nZXMKClxgXGBcYGJhc2gKZ2l0IGNvbW1pdCAtbSAmcXVvdDtJbml0aWFsIGNvbW1pdCZxdW90OwpcYFxgXGAKCj4gKipCZXN0IFByYWN0aWNlOioqIFdyaXRlIGNsZWFyLCBkZXNjcmlwdGl2ZSBjb21taXQgbWVzc2FnZXMgdGhhdCBleHBsYWluIHdoYXQgY2hhbmdlcyB3ZXJlIG1hZGUgYW5kIHdoeS4KCiMjIyA0LiBXb3JraW5nIHdpdGggQnJhbmNoZXMKCkJyYW5jaGVzIGFsbG93IHlvdSB0byB3b3JrIG9uIGZlYXR1cmVzIGluZGVwZW5kZW50bHk6CgpcYFxgXGBiYXNoCiMgQ3JlYXRlIGFuZCBzd2l0Y2ggdG8gYSBuZXcgYnJhbmNoCmdpdCBjaGVja291dCAtYiBmZWF0dXJlLWJyYW5jaAoKIyBNYWtlIGNoYW5nZXMgYW5kIGNvbW1pdApnaXQgYWRkIC4KZ2l0IGNvbW1pdCAtbSAmcXVvdDtBZGQgbmV3IGZlYXR1cmUmcXVvdDsKCiMgU3dpdGNoIGJhY2sgdG8gbWFpbgpnaXQgY2hlY2tvdXQgbWFpbgoKIyBNZXJnZSB0aGUgZmVhdHVyZQpnaXQgbWVyZ2UgZmVhdHVyZS1icmFuY2gKXGBcYFxgCgotLS0KCiMjIENvbW1vbiBDb21tYW5kcyBSZWZlcmVuY2UKCnwgQ29tbWFuZCB8IERlc2NyaXB0aW9uIHwKfC0tLS0tLS0tLXwtLS0tLS0tLS0tLS0tfAp8IFxgZ2l0IHN0YXR1c1xgIHwgQ2hlY2sgcmVwb3NpdG9yeSBzdGF0dXMgfAp8IFxgZ2l0IGxvZ1xgIHwgVmlldyBjb21taXQgaGlzdG9yeSB8CnwgXGBnaXQgZGlmZlxgIHwgU2hvdyBjaGFuZ2VzIHwKfCBcYGdpdCBwdWxsXGAgfCBGZXRjaCBhbmQgbWVyZ2UgY2hhbmdlcyB8CnwgXGBnaXQgcHVzaFxgIHwgVXBsb2FkIGNoYW5nZXMgdG8gcmVtb3RlIHwKCiMjIE5leHQgU3RlcHMKCjEuIExlYXJuIGFib3V0IHJlbW90ZSByZXBvc2l0b3JpZXMKMi4gRXhwbG9yZSBhZHZhbmNlZCBHaXQgZmVhdHVyZXMKMy4gUHJhY3RpY2Ugd2l0aCByZWFsIHByb2plY3RzCjQuIENvbnRyaWJ1dGUgdG8gb3BlbiBzb3VyY2UKCioqSGFwcHkgY29kaW5nISoqIPCfmoAiCiAgICAgICAgPjwvZGVlcy1pbnB1dC13eXNpd3lnPgogICAgICA8L2RlZXMtcGFuZWw+CgogICAgICA8ZGVlcy1wYW5lbCAudGl0bGU9JHsiNS4gXHV7MUY1MDR9IE91dHB1dCBGb3JtYXRzIn0+CiAgICAgICAgPHAgY2xhc3M9InBhbmVsLWRlc2NyaXB0aW9uIj4KICAgICAgICAgIENob29zZSBiZXR3ZWVuIEhUTUwgYW5kIE1hcmtkb3duIG91dHB1dCBmb3JtYXRzIGRlcGVuZGluZyBvbiB5b3VyIG5lZWRzLiAKICAgICAgICAgIFBlcmZlY3QgZm9yIHN0YXRpYyBzaXRlIGdlbmVyYXRvcnMsIGRvY3VtZW50YXRpb24gc3lzdGVtcywgb3IgYW55IGNvbnRlbnQgbWFuYWdlbWVudCB3b3JrZmxvdy4KICAgICAgICA8L3A+CiAgICAgICAgCiAgICAgICAgPGRpdiBjbGFzcz0ib3V0cHV0LWdyaWQiPgogICAgICAgICAgPGRpdiBjbGFzcz0ib3V0cHV0LWNhcmQiPgogICAgICAgICAgICA8ZGVlcy1pbnB1dC13eXNpd3lnIAogICAgICAgICAgICAgIGlkPSJlZGl0b3ItbWVldGluZyIKICAgICAgICAgICAgICBsYWJlbD0iTWVldGluZyBOb3RlcyIgCiAgICAgICAgICAgICAgZGVzY3JpcHRpb249IlN0cnVjdHVyZWQgbWVldGluZyBkb2N1bWVudGF0aW9uIgogICAgICAgICAgICAgIG91dHB1dEZvcm1hdD0iaHRtbCIKICAgICAgICAgICAgICB2YWx1ZT0iPGgyPlE0IFBsYW5uaW5nIE1lZXRpbmc8L2gyPjxwPjxzdHJvbmc+RGF0ZTo8L3N0cm9uZz4gRGVjZW1iZXIgMTUsIDIwMjQ8YnI+PHN0cm9uZz5BdHRlbmRlZXM6PC9zdHJvbmc+IFByb2R1Y3QgVGVhbSwgRW5naW5lZXJpbmcsIERlc2lnbjwvcD48aDM+QWdlbmRhIEl0ZW1zPC9oMz48b2w+PGxpPlJldmlldyBRMyBhY2hpZXZlbWVudHM8L2xpPjxsaT5TZXQgUTQgb2JqZWN0aXZlczwvbGk+PGxpPlJlc291cmNlIGFsbG9jYXRpb248L2xpPjxsaT5UaW1lbGluZSBkaXNjdXNzaW9uPC9saT48L29sPjxoMz5LZXkgRGVjaXNpb25zPC9oMz48dWw+PGxpPkxhdW5jaCBuZXcgZGFzaGJvYXJkIGZlYXR1cmUgYnkgZW5kIG9mIEphbnVhcnk8L2xpPjxsaT5JbmNyZWFzZSBlbmdpbmVlcmluZyB0ZWFtIGJ5IDIgZGV2ZWxvcGVyczwvbGk+PGxpPkltcGxlbWVudCB3ZWVrbHkgZGVzaWduIHJldmlld3M8L2xpPjwvdWw+PGJsb2NrcXVvdGU+JnF1b3Q7Rm9jdXMgb24gdXNlciBleHBlcmllbmNlIGltcHJvdmVtZW50cyBiYXNlZCBvbiBRMyBmZWVkYmFjayZxdW90OyAtIFByb2R1Y3QgTWFuYWdlcjwvYmxvY2txdW90ZT48aDM+QWN0aW9uIEl0ZW1zPC9oMz48dWw+PGxpPlNhcmFoOiBDcmVhdGUgZGV0YWlsZWQgcHJvamVjdCB0aW1lbGluZTwvbGk+PGxpPk1pa2U6IERyYWZ0IHRlY2huaWNhbCByZXF1aXJlbWVudHM8L2xpPjxsaT5MaXNhOiBTY2hlZHVsZSB1c2VyIHJlc2VhcmNoIHNlc3Npb25zPC9saT48L3VsPjxocj48cD5OZXh0IG1lZXRpbmc6IEphbnVhcnkgNSwgMjAyNTwvcD4iCiAgICAgICAgICAgID48L2RlZXMtaW5wdXQtd3lzaXd5Zz4KICAgICAgICAgICAgPGRpdiBjbGFzcz0ib3V0cHV0LWFjdGlvbnMiPgogICAgICAgICAgICAgIDxidXR0b24gaWQ9ImJ0bi1zaG93LWh0bWwtb3V0cHV0IiBjbGFzcz0iZGVtby1idXR0b24iPlNob3cgSFRNTCBPdXRwdXQ8L2J1dHRvbj4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDxwcmUgaWQ9Im91dHB1dC1wcmV2aWV3LWh0bWwiIGNsYXNzPSJvdXRwdXQtcHJldmlldyIgYXJpYS1saXZlPSJwb2xpdGUiPjwvcHJlPgogICAgICAgICAgPC9kaXY+CiAgICAgICAgICAKICAgICAgICAgIDxkaXYgY2xhc3M9Im91dHB1dC1jYXJkIj4KICAgICAgICAgICAgPGRlZXMtaW5wdXQtd3lzaXd5ZyAKICAgICAgICAgICAgICBpZD0iZWRpdG9yLXJlY2lwZSIKICAgICAgICAgICAgICBsYWJlbD0iUmVjaXBlIEJsb2cgUG9zdCIgCiAgICAgICAgICAgICAgZGVzY3JpcHRpb249IkZvb2QgYmxvZyB3aXRoIG1peGVkIGNvbnRlbnQiCiAgICAgICAgICAgICAgb3V0cHV0Rm9ybWF0PSJtYXJrZG93biIKICAgICAgICAgICAgICB2YWx1ZT0iIyBVbHRpbWF0ZSBDaG9jb2xhdGUgQ2hpcCBDb29raWVzCgpUaGVyZSdzIG5vdGhpbmcgcXVpdGUgbGlrZSB0aGUgc21lbGwgb2YgZnJlc2hseSBiYWtlZCBjaG9jb2xhdGUgY2hpcCBjb29raWVzLiBUaGlzIHJlY2lwZSBoYXMgYmVlbiBwZXJmZWN0ZWQgb3ZlciB5ZWFycyBvZiB0ZXN0aW5nIQoKIyMgSW5ncmVkaWVudHMKCi0gMsK8IGN1cHMgYWxsLXB1cnBvc2UgZmxvdXIKLSAxIHRzcCBiYWtpbmcgc29kYQotIDEgdHNwIHNhbHQKLSAxIGN1cCBidXR0ZXIsIHNvZnRlbmVkCi0gwr4gY3VwIGdyYW51bGF0ZWQgc3VnYXIKLSDCviBjdXAgcGFja2VkIGJyb3duIHN1Z2FyCi0gMiBsYXJnZSBlZ2dzCi0gMiB0c3AgdmFuaWxsYSBleHRyYWN0Ci0gMiBjdXBzIGNob2NvbGF0ZSBjaGlwcwoKIyMgSW5zdHJ1Y3Rpb25zCgojIyMgU3RlcCAxOiBQcmVwYXJhdGlvbgoKUHJlaGVhdCB5b3VyIG92ZW4gdG8gKiozNzXCsEYgKDE5MMKwQykqKi4gVGhpcyB0ZW1wZXJhdHVyZSBpcyBjcnVjaWFsIGZvciBhY2hpZXZpbmcgdGhlIHBlcmZlY3QgdGV4dHVyZS4KCiMjIyBTdGVwIDI6IE1peCBEcnkgSW5ncmVkaWVudHMKCkluIGEgbWVkaXVtIGJvd2wsIHdoaXNrIHRvZ2V0aGVyOgoKMS4gRmxvdXIKMi4gQmFraW5nIHNvZGEKMy4gU2FsdAoKIyMjIFN0ZXAgMzogQ3JlYW0gQnV0dGVyIGFuZCBTdWdhcnMKClxgXGBcYApDcmVhbSBidXR0ZXIgYW5kIHN1Z2FycyBmb3IgMy00IG1pbnV0ZXMKdW50aWwgbGlnaHQgYW5kIGZsdWZmeQpcYFxgXGAKCj4gKipQcm8gdGlwOioqIFJvb20gdGVtcGVyYXR1cmUgaW5ncmVkaWVudHMgbWl4IGJldHRlciBhbmQgY3JlYXRlIGEgbW9yZSB1bmlmb3JtIGRvdWdoLgoKIyMjIFN0ZXAgNDogQWRkIFdldCBJbmdyZWRpZW50cwoKQmVhdCBpbiBlZ2dzIG9uZSBhdCBhIHRpbWUsIHRoZW4gYWRkIHZhbmlsbGEgZXh0cmFjdC4KCiMjIyBTdGVwIDU6IENvbWJpbmUgYW5kIEJha2UKCkdyYWR1YWxseSBibGVuZCBpbiBmbG91ciBtaXh0dXJlLCB0aGVuIHN0aXIgaW4gY2hvY29sYXRlIGNoaXBzLiBEcm9wIHJvdW5kZWQgdGFibGVzcG9vbnMgb250byB1bmdyZWFzZWQgY29va2llIHNoZWV0cy4KCi0tLQoKKipCYWtpbmcgdGltZToqKiA5LTExIG1pbnV0ZXMgb3IgdW50aWwgZ29sZGVuIGJyb3duCgoqKllpZWxkOioqIEFib3V0IDUgZG96ZW4gY29va2llcyIKICAgICAgICAgICAgPjwvZGVlcy1pbnB1dC13eXNpd3lnPgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJvdXRwdXQtYWN0aW9ucyI+CiAgICAgICAgICAgICAgPGJ1dHRvbiBpZD0iYnRuLXNob3ctbWFya2Rvd24tb3V0cHV0IiBjbGFzcz0iZGVtby1idXR0b24iPlNob3cgTWFya2Rvd24gT3V0cHV0PC9idXR0b24+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8cHJlIGlkPSJvdXRwdXQtcHJldmlldy1tYXJrZG93biIgY2xhc3M9Im91dHB1dC1wcmV2aWV3IiBhcmlhLWxpdmU9InBvbGl0ZSI+PC9wcmU+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICA8L2Rpdj4KICAgICAgPC9kZWVzLXBhbmVsPgoKICAgICAgPGRlZXMtcGFuZWwgLnRpdGxlPSR7IjYuIFx1ezFGM0E4fSBBZHZhbmNlZCBFZGl0aW5nIn0+CiAgICAgICAgPHAgY2xhc3M9InBhbmVsLWRlc2NyaXB0aW9uIj4KICAgICAgICAgIENyZWF0ZSBjb21wbGV4IGRvY3VtZW50cyB3aXRoIG1peGVkIGNvbnRlbnQgdHlwZXMuIFRoZSBlZGl0b3IgaGFuZGxlcyBhbGwgZm9ybWF0dGluZyBzZWFtbGVzc2x5LgogICAgICAgIDwvcD4KICAgICAgICAKICAgICAgICA8ZGVlcy1pbnB1dC13eXNpd3lnIAogICAgICAgICAgaWQ9ImVkaXRvci10ZWNobmljYWwiCiAgICAgICAgICBsYWJlbD0iVGVjaG5pY2FsIERvY3VtZW50YXRpb24iIAogICAgICAgICAgZGVzY3JpcHRpb249IkNyZWF0ZSB0ZWNobmljYWwgZG9jcyB3aXRoIGNvZGUgZXhhbXBsZXMgYW5kIHN0cnVjdHVyZWQgY29udGVudCIKICAgICAgICAgIHZhbHVlPSI8aDE+QVBJIERvY3VtZW50YXRpb248L2gxPjxwPldlbGNvbWUgdG8gb3VyIEFQSSBkb2N1bWVudGF0aW9uLiBCZWxvdyB5b3UnbGwgZmluZCBleGFtcGxlcyBvZiBob3cgdG8gdXNlIG91ciBlbmRwb2ludHMuPC9wPjxoMj5BdXRoZW50aWNhdGlvbjwvaDI+PHA+QWxsIEFQSSByZXF1ZXN0cyByZXF1aXJlIGF1dGhlbnRpY2F0aW9uIHVzaW5nIGFuIEFQSSBrZXk6PC9wPjxwcmU+PGNvZGU+QXV0aG9yaXphdGlvbjogQmVhcmVyIFlPVVJfQVBJX0tFWTwvY29kZT48L3ByZT48aDI+RW5kcG9pbnRzPC9oMj48aDM+R0VUIC91c2VyczwvaDM+PHA+UmV0cmlldmUgYSBsaXN0IG9mIHVzZXJzIGZyb20gdGhlIHN5c3RlbS48L3A+PHByZT48Y29kZT5jdXJsIC1YIEdFVCBodHRwczovL2FwaS5leGFtcGxlLmNvbS91c2VycyBcXAogIC1IICZxdW90O0F1dGhvcml6YXRpb246IEJlYXJlciBZT1VSX0FQSV9LRVkmcXVvdDs8L2NvZGU+PC9wcmU+PGJsb2NrcXVvdGU+Tm90ZTogUmF0ZSBsaW1pdGluZyBhcHBsaWVzIHRvIGFsbCBlbmRwb2ludHMuIFlvdSBjYW4gbWFrZSB1cCB0byAxMDAgcmVxdWVzdHMgcGVyIG1pbnV0ZS48L2Jsb2NrcXVvdGU+PGgzPlBPU1QgL3VzZXJzPC9oMz48cD5DcmVhdGUgYSBuZXcgdXNlciBpbiB0aGUgc3lzdGVtLjwvcD48cHJlPjxjb2RlPnsKICAmcXVvdDtuYW1lJnF1b3Q7OiAmcXVvdDtKb2huIERvZSZxdW90OywKICAmcXVvdDtlbWFpbCZxdW90OzogJnF1b3Q7am9obkBleGFtcGxlLmNvbSZxdW90OywKICAmcXVvdDtyb2xlJnF1b3Q7OiAmcXVvdDt1c2VyJnF1b3Q7Cn08L2NvZGU+PC9wcmU+PGhyPjxwPkZvciBtb3JlIGluZm9ybWF0aW9uLCBwbGVhc2UgcmVmZXIgdG8gb3VyIGNvbXBsZXRlIGRvY3VtZW50YXRpb24uPC9wPiIKICAgICAgICAgIG91dHB1dEZvcm1hdD0iaHRtbCIKICAgICAgICA+PC9kZWVzLWlucHV0LXd5c2l3eWc+CiAgICAgIDwvZGVlcy1wYW5lbD4KCiAgICAgIDxkZWVzLXBhbmVsIC50aXRsZT0keyI3LiBcdTI2OTlcdUZFMEYgRm9ybSBJbnRlZ3JhdGlvbiJ9PgogICAgICAgIDxwIGNsYXNzPSJwYW5lbC1kZXNjcmlwdGlvbiI+CiAgICAgICAgICBTZWFtbGVzc2x5IGludGVncmF0ZXMgd2l0aCBkZWVzLWZvcm0gZm9yIGNvbXBsZXRlIGZvcm0gc29sdXRpb25zLiAKICAgICAgICAgIEFsbCBzdGFuZGFyZCBmb3JtIGZlYXR1cmVzIGxpa2UgdmFsaWRhdGlvbiwgcmVxdWlyZWQgZmllbGRzLCBhbmQgZGF0YSBiaW5kaW5nIHdvcmsgb3V0IG9mIHRoZSBib3guCiAgICAgICAgPC9wPgogICAgICAgIAogICAgICAgIDxkZWVzLWZvcm0+CiAgICAgICAgICA8ZGVlcy1pbnB1dC10ZXh0IAogICAgICAgICAgICBsYWJlbD0iQXJ0aWNsZSBUaXRsZSIgCiAgICAgICAgICAgIHJlcXVpcmVkPSJ0cnVlIgogICAgICAgICAgICB2YWx1ZT0iSG93IHRvIEJ1aWxkIE1vZGVybiBXZWIgQXBwbGljYXRpb25zIgogICAgICAgICAgPjwvZGVlcy1pbnB1dC10ZXh0PgogICAgICAgICAgCiAgICAgICAgICA8ZGVlcy1pbnB1dC13eXNpd3lnIAogICAgICAgICAgICBpZD0iZWRpdG9yLWZvcm0taW50ZWdyYXRpb24iCiAgICAgICAgICAgIGxhYmVsPSJBcnRpY2xlIENvbnRlbnQiIAogICAgICAgICAgICBkZXNjcmlwdGlvbj0iV3JpdGUgeW91ciBhcnRpY2xlIGNvbnRlbnQgaGVyZSIKICAgICAgICAgICAgcmVxdWlyZWQ9InRydWUiCiAgICAgICAgICAgIG91dHB1dEZvcm1hdD0ibWFya2Rvd24iCiAgICAgICAgICA+PC9kZWVzLWlucHV0LXd5c2l3eWc+CiAgICAgICAgICAKICAgICAgICAgIDxkZWVzLWlucHV0LXRhZ3MKICAgICAgICAgICAgbGFiZWw9IlRhZ3MiCiAgICAgICAgICAgIGRlc2NyaXB0aW9uPSJBZGQgcmVsZXZhbnQgdGFncyBmb3IgeW91ciBhcnRpY2xlIgogICAgICAgICAgPjwvZGVlcy1pbnB1dC10YWdzPgogICAgICAgIDwvZGVlcy1mb3JtPgogICAgICA8L2RlZXMtcGFuZWw+CgogICAgICA8ZGVlcy1wYW5lbCAudGl0bGU9JHsiOC4gXHV7MUY5RTl9IFByb2dyYW1tYXRpYyBCbG9jayBDcmVhdGlvbiJ9PgogICAgICAgIDxwIGNsYXNzPSJwYW5lbC1kZXNjcmlwdGlvbiI+CiAgICAgICAgICBDcmVhdGUgY29udGVudCBwcm9ncmFtbWF0aWNhbGx5IHVzaW5nIHRoZSBibG9jayBBUEkgZm9yIGR5bmFtaWMgZG9jdW1lbnQgZ2VuZXJhdGlvbi4KICAgICAgICA8L3A+CiAgICAgICAgCiAgICAgICAgPGRlZXMtaW5wdXQtd3lzaXd5ZwogICAgICAgICAgaWQ9ImVkaXRvci1wcm9ncmFtbWF0aWMiCiAgICAgICAgICBsYWJlbD0iUHJvZ3JhbW1hdGljYWxseSBHZW5lcmF0ZWQgQ29udGVudCIKICAgICAgICAgIGRlc2NyaXB0aW9uPSJUaGlzIGNvbnRlbnQgd2FzIGNyZWF0ZWQgdXNpbmcgdGhlIGltcG9ydEJsb2NrcyBBUEkiCiAgICAgICAgPjwvZGVlcy1pbnB1dC13eXNpd3lnPgogICAgICAgIAogICAgICAgIDxkaXYgY2xhc3M9ImJ1dHRvbi1ncm91cCI+CiAgICAgICAgICA8YnV0dG9uIGlkPSJidG4tZ2VuZXJhdGUtcmVwb3J0IiBjbGFzcz0iZGVtby1idXR0b24iPgogICAgICAgICAgICBHZW5lcmF0ZSBSZXBvcnQKICAgICAgICAgIDwvYnV0dG9uPgogICAgICAgICAgCiAgICAgICAgICA8YnV0dG9uIGlkPSJidG4tZ2VuZXJhdGUtcmVjaXBlIiBjbGFzcz0iZGVtby1idXR0b24iPgogICAgICAgICAgICBHZW5lcmF0ZSBSZWNpcGUKICAgICAgICAgIDwvYnV0dG9uPgogICAgICAgICAgCiAgICAgICAgICA8YnV0dG9uIGlkPSJidG4tY2xlYXItZWRpdG9yIiBjbGFzcz0iZGVtby1idXR0b24iPgogICAgICAgICAgICBDbGVhciBFZGl0b3IKICAgICAgICAgIDwvYnV0dG9uPgogICAgICAgIDwvZGl2PgogICAgICA8L2RlZXMtcGFuZWw+CgogICAgICA8ZGVlcy1wYW5lbCAudGl0bGU9JHsiOS4gXHV7MUY0RTR9IEV4cG9ydC9JbXBvcnQgRmVhdHVyZXMifT4KICAgICAgICA8cCBjbGFzcz0icGFuZWwtZGVzY3JpcHRpb24iPgogICAgICAgICAgVGhlIFdZU0lXWUcgZWRpdG9yIHByb3ZpZGVzIG11bHRpcGxlIGV4cG9ydCBmb3JtYXRzIGFuZCBsb3NzbGVzcyBzYXZlL3Jlc3RvcmUgY2FwYWJpbGl0aWVzIGZvciBtYXhpbXVtIGZsZXhpYmlsaXR5LgogICAgICAgIDwvcD4KICAgICAgICAKICAgICAgICA8ZGl2IGNsYXNzPSJleHBvcnQtaW5mby1ncmlkIj4KICAgICAgICAgIDxkaXYgY2xhc3M9ImV4cG9ydC1pbmZvLWNhcmQgYmxvY2tzIj4KICAgICAgICAgICAgPHN0cm9uZz5Mb3NzbGVzcyBCbG9ja3M8L3N0cm9uZz4KICAgICAgICAgICAgPHA+RXhwb3J0IGFuZCBpbXBvcnQgcmF3IGJsb2NrIHN0cnVjdHVyZSBmb3IgcGVyZmVjdCByb3VuZC10cmlwIGVkaXRpbmc8L3A+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIDxkaXYgY2xhc3M9ImV4cG9ydC1pbmZvLWNhcmQgaHRtbCI+CiAgICAgICAgICAgIDxzdHJvbmc+SFRNTCBFeHBvcnQ8L3N0cm9uZz4KICAgICAgICAgICAgPHA+R2V0IGNsZWFuLCBzZW1hbnRpYyBIVE1MIHJlZ2FyZGxlc3Mgb2Ygb3V0cHV0IGZvcm1hdCBzZXR0aW5nPC9wPgogICAgICAgICAgPC9kaXY+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJleHBvcnQtaW5mby1jYXJkIG1hcmtkb3duIj4KICAgICAgICAgICAgPHN0cm9uZz5NYXJrZG93biBFeHBvcnQ8L3N0cm9uZz4KICAgICAgICAgICAgPHA+RXhwb3J0IGFzIE1hcmtkb3duIGZvciBkb2NzLCBSRUFETUVzLCBhbmQgc3RhdGljIHNpdGVzPC9wPgogICAgICAgICAgPC9kaXY+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJleHBvcnQtaW5mby1jYXJkIHN0YXRlIj4KICAgICAgICAgICAgPHN0cm9uZz5TdGF0ZSBNYW5hZ2VtZW50PC9zdHJvbmc+CiAgICAgICAgICAgIDxwPlNhdmUgYW5kIHJlc3RvcmUgY29tcGxldGUgZWRpdG9yIHN0YXRlIGluY2x1ZGluZyBzZXR0aW5nczwvcD4KICAgICAgICAgIDwvZGl2PgogICAgICAgIDwvZGl2PgogICAgICAgIAogICAgICAgIDxkZWVzLWlucHV0LXd5c2l3eWcKICAgICAgICAgIGlkPSJlZGl0b3ItZXhwb3J0IgogICAgICAgICAgbGFiZWw9IkV4cG9ydCBEZW1vIEVkaXRvciIKICAgICAgICAgIGRlc2NyaXB0aW9uPSJUcnkgdGhlIGV4cG9ydCBidXR0b25zIGJlbG93IHRvIHNlZSBkaWZmZXJlbnQgb3V0cHV0IGZvcm1hdHMiCiAgICAgICAgICB2YWx1ZT0iPGgxPlNvZnR3YXJlIFJlbGVhc2UgTm90ZXM8L2gxPjxwPjxzdHJvbmc+VmVyc2lvbiAyLjUuMDwvc3Ryb25nPiAtIFJlbGVhc2VkIERlY2VtYmVyIDE1LCAyMDI0PC9wPjxoMj7wn46JIE5ldyBGZWF0dXJlczwvaDI+PHVsPjxsaT5BZGRlZCBkYXJrIG1vZGUgc3VwcG9ydCBhY3Jvc3MgYWxsIGNvbXBvbmVudHM8L2xpPjxsaT5JbXBsZW1lbnRlZCByZWFsLXRpbWUgY29sbGFib3JhdGlvbiBmZWF0dXJlczwvbGk+PGxpPk5ldyBkYXNoYm9hcmQgYW5hbHl0aWNzIHdpZGdldHM8L2xpPjxsaT5FeHBvcnQgZnVuY3Rpb25hbGl0eSBmb3IgYWxsIHJlcG9ydCB0eXBlczwvbGk+PC91bD48aDI+8J+QmyBCdWcgRml4ZXM8L2gyPjx1bD48bGk+Rml4ZWQgbWVtb3J5IGxlYWsgaW4gZGF0YSBwcm9jZXNzaW5nIG1vZHVsZTwvbGk+PGxpPlJlc29sdmVkIGF1dGhlbnRpY2F0aW9uIHRpbWVvdXQgaXNzdWVzPC9saT48bGk+Q29ycmVjdGVkIHRpbWV6b25lIGhhbmRsaW5nIGluIHNjaGVkdWxlZCB0YXNrczwvbGk+PC91bD48aDI+4pqhIFBlcmZvcm1hbmNlIEltcHJvdmVtZW50czwvaDI+PGJsb2NrcXVvdGU+UGFnZSBsb2FkIHRpbWVzIHJlZHVjZWQgYnkgNDAlIHRocm91Z2ggbGF6eSBsb2FkaW5nIGFuZCBjb2RlIHNwbGl0dGluZzwvYmxvY2txdW90ZT48aDI+8J+UpyBUZWNobmljYWwgRGV0YWlsczwvaDI+PHByZT48Y29kZT4vLyBOZXcgQVBJIGVuZHBvaW50IGZvciBiYXRjaCBvcGVyYXRpb25zClBPU1QgL2FwaS92Mi9iYXRjaAp7CiAgJnF1b3Q7b3BlcmF0aW9ucyZxdW90OzogWwogICAgeyAmcXVvdDttZXRob2QmcXVvdDs6ICZxdW90O0dFVCZxdW90OywgJnF1b3Q7cGF0aCZxdW90OzogJnF1b3Q7L3VzZXJzLzEyMyZxdW90OyB9LAogICAgeyAmcXVvdDttZXRob2QmcXVvdDs6ICZxdW90O1BVVCZxdW90OywgJnF1b3Q7cGF0aCZxdW90OzogJnF1b3Q7L3NldHRpbmdzJnF1b3Q7LCAmcXVvdDtib2R5JnF1b3Q7OiB7Li4ufSB9CiAgXQp9PC9jb2RlPjwvcHJlPjxoMj7wn5KhIE1pZ3JhdGlvbiBHdWlkZTwvaDI+PG9sPjxsaT5VcGRhdGUgeW91ciBkZXBlbmRlbmNpZXMgdG8gdGhlIGxhdGVzdCB2ZXJzaW9uczwvbGk+PGxpPlJ1biBkYXRhYmFzZSBtaWdyYXRpb25zOiA8Y29kZT5ucG0gcnVuIG1pZ3JhdGU8L2NvZGU+PC9saT48bGk+Q2xlYXIgY2FjaGU6IDxjb2RlPm5wbSBydW4gY2FjaGU6Y2xlYXI8L2NvZGU+PC9saT48bGk+UmVzdGFydCBhbGwgc2VydmljZXM8L2xpPjwvb2w+PGhyPjxwPkZvciBxdWVzdGlvbnMgb3IgaXNzdWVzLCBwbGVhc2UgY29udGFjdCB0aGUgZGV2ZWxvcG1lbnQgdGVhbSBvciBmaWxlIGEgdGlja2V0IGluIG91ciBpc3N1ZSB0cmFja2VyLjwvcD4iCiAgICAgICAgPjwvZGVlcy1pbnB1dC13eXNpd3lnPgogICAgICAgIAogICAgICAgIDxkaXYgY2xhc3M9ImJ1dHRvbi1ncm91cCI+CiAgICAgICAgICA8YnV0dG9uIGlkPSJidG4tZXhwb3J0LWJsb2NrcyIgY2xhc3M9ImRlbW8tYnV0dG9uIj4KICAgICAgICAgICAgRXhwb3J0IEJsb2NrcwogICAgICAgICAgPC9idXR0b24+CiAgICAgICAgICAKICAgICAgICAgIDxidXR0b24gaWQ9ImJ0bi1leHBvcnQtaHRtbCIgY2xhc3M9ImRlbW8tYnV0dG9uIj4KICAgICAgICAgICAgRXhwb3J0IGFzIEhUTUwKICAgICAgICAgIDwvYnV0dG9uPgogICAgICAgICAgCiAgICAgICAgICA8YnV0dG9uIGlkPSJidG4tZXhwb3J0LW1hcmtkb3duIiBjbGFzcz0iZGVtby1idXR0b24iPgogICAgICAgICAgICBFeHBvcnQgYXMgTWFya2Rvd24KICAgICAgICAgIDwvYnV0dG9uPgogICAgICAgICAgCiAgICAgICAgICA8YnV0dG9uIGlkPSJidG4tc2F2ZS1zdGF0ZSIgY2xhc3M9ImRlbW8tYnV0dG9uIj4KICAgICAgICAgICAgU2F2ZSBTdGF0ZQogICAgICAgICAgPC9idXR0b24+CiAgICAgICAgICAKICAgICAgICAgIDxidXR0b24gaWQ9ImJ0bi1yZXN0b3JlLXN0YXRlIiBjbGFzcz0iZGVtby1idXR0b24iPgogICAgICAgICAgICBSZXN0b3JlIFN0YXRlCiAgICAgICAgICA8L2J1dHRvbj4KICAgICAgICA8L2Rpdj4KICAgICAgPC9kZWVzLXBhbmVsPgogICAgPC9kaXY+CiAgPC9kZWVzLWRlbW93cmFwcGVyPgpgfSk7dmFyIENuPXAoKCk9Pnt9KTt2YXIgRzEsWWQ9cCgoKT0+e0NuKCk7RzE9Y2xhc3N7c3RhdGljIEhFQURJTkdfUEFUVEVSTlM9W3twYXR0ZXJuOi9eI1tcc1x1MDBBMF0kLyx0eXBlOiJoZWFkaW5nLTEifSx7cGF0dGVybjovXiMjW1xzXHUwMEEwXSQvLHR5cGU6ImhlYWRpbmctMiJ9LHtwYXR0ZXJuOi9eIyMjW1xzXHUwMEEwXSQvLHR5cGU6ImhlYWRpbmctMyJ9XTtzdGF0aWMgTElTVF9QQVRURVJOUz1be3BhdHRlcm46L15bKi1dW1xzXHUwMEEwXSQvLHR5cGU6ImJ1bGxldCJ9LHtwYXR0ZXJuOi9eKFxkKylcLltcc1x1MDBBMF0kLyx0eXBlOiJvcmRlcmVkIn0se3BhdHRlcm46L14oXGQrKVwpW1xzXHUwMEEwXSQvLHR5cGU6Im9yZGVyZWQifV07c3RhdGljIFFVT1RFX1BBVFRFUk49L14+W1xzXHUwMEEwXSQvO3N0YXRpYyBDT0RFX1BBVFRFUk49L15gYGAkLztzdGF0aWMgRElWSURFUl9QQVRURVJOUz1bIi0tLSIsIioqKiIsIl9fXyJdO3N0YXRpYyBjaGVja0hlYWRpbmdTaG9ydGN1dCh0KXtmb3IobGV0e3BhdHRlcm46cix0eXBlOml9b2YgdGhpcy5IRUFESU5HX1BBVFRFUk5TKWlmKHIudGVzdCh0KSlyZXR1cm57dHlwZTppfTtyZXR1cm4gbnVsbH1zdGF0aWMgY2hlY2tMaXN0U2hvcnRjdXQodCl7Zm9yKGxldHtwYXR0ZXJuOnIsdHlwZTppfW9mIHRoaXMuTElTVF9QQVRURVJOUylpZihyLnRlc3QodCkpcmV0dXJue3R5cGU6Imxpc3QiLGxpc3RUeXBlOml9O3JldHVybiBudWxsfXN0YXRpYyBjaGVja1F1b3RlU2hvcnRjdXQodCl7cmV0dXJuIHRoaXMuUVVPVEVfUEFUVEVSTi50ZXN0KHQpfXN0YXRpYyBjaGVja0NvZGVTaG9ydGN1dCh0KXtyZXR1cm4gdGhpcy5DT0RFX1BBVFRFUk4udGVzdCh0KX1zdGF0aWMgY2hlY2tEaXZpZGVyU2hvcnRjdXQodCl7cmV0dXJuIHRoaXMuRElWSURFUl9QQVRURVJOUy5pbmNsdWRlcyh0KX1zdGF0aWMgZ2V0U2xhc2hNZW51SXRlbXMoKXtyZXR1cm5be3R5cGU6InBhcmFncmFwaCIsbGFiZWw6IlBhcmFncmFwaCIsaWNvbjoibHVjaWRlOnBpbGNyb3cifSx7dHlwZToiaGVhZGluZy0xIixsYWJlbDoiSGVhZGluZyAxIixpY29uOiJsdWNpZGU6aGVhZGluZzEifSx7dHlwZToiaGVhZGluZy0yIixsYWJlbDoiSGVhZGluZyAyIixpY29uOiJsdWNpZGU6aGVhZGluZzIifSx7dHlwZToiaGVhZGluZy0zIixsYWJlbDoiSGVhZGluZyAzIixpY29uOiJsdWNpZGU6aGVhZGluZzMifSx7dHlwZToicXVvdGUiLGxhYmVsOiJRdW90ZSIsaWNvbjoibHVjaWRlOnF1b3RlIn0se3R5cGU6ImNvZGUiLGxhYmVsOiJDb2RlIEJsb2NrIixpY29uOiJsdWNpZGU6ZmlsZUNvZGUifSx7dHlwZToibGlzdCIsbGFiZWw6IkJ1bGxldCBMaXN0IixpY29uOiJsdWNpZGU6bGlzdCJ9LHt0eXBlOiJpbWFnZSIsbGFiZWw6IkltYWdlIixpY29uOiJsdWNpZGU6aW1hZ2UifSx7dHlwZToiZGl2aWRlciIsbGFiZWw6IkRpdmlkZXIiLGljb246Imx1Y2lkZTptaW51cyJ9LHt0eXBlOiJ5b3V0dWJlIixsYWJlbDoiWW91VHViZSIsaWNvbjoibHVjaWRlOnlvdXR1YmUifSx7dHlwZToibWFya2Rvd24iLGxhYmVsOiJNYXJrZG93biIsaWNvbjoibHVjaWRlOmZpbGVUZXh0In0se3R5cGU6Imh0bWwiLGxhYmVsOiJIVE1MIixpY29uOiJsdWNpZGU6Y29kZSJ9LHt0eXBlOiJhdHRhY2htZW50IixsYWJlbDoiRmlsZSBBdHRhY2htZW50IixpY29uOiJsdWNpZGU6cGFwZXJjbGlwIn1dfXN0YXRpYyBnZW5lcmF0ZUJsb2NrSWQoKXtyZXR1cm5gYmxvY2stJHtEYXRlLm5vdygpfS0ke01hdGgucmFuZG9tKCkudG9TdHJpbmcoMzYpLnN1YnN0cmluZygyLDkpfWB9fX0pO3ZhciBzaCwkMixlRixRNmU9cCgoKT0+e3hlKCk7eG8oKTtvcigpO0NuKCk7WWQoKTtKZSgpO3NoPWZ1bmN0aW9uKGUsdCxyLGksYSxuKXtmdW5jdGlvbiBvKHkpe2lmKHkhPT12b2lkIDAmJnR5cGVvZiB5IT0iZnVuY3Rpb24iKXRocm93IG5ldyBUeXBlRXJyb3IoIkZ1bmN0aW9uIGV4cGVjdGVkIik7cmV0dXJuIHl9Zm9yKHZhciBzPWkua2luZCxsPXM9PT0iZ2V0dGVyIj8iZ2V0IjpzPT09InNldHRlciI/InNldCI6InZhbHVlIixjPSF0JiZlP2kuc3RhdGljP2U6ZS5wcm90b3R5cGU6bnVsbCx1PXR8fChjP09iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoYyxpLm5hbWUpOnt9KSxkLGg9ITEsZj1yLmxlbmd0aC0xO2Y+PTA7Zi0tKXt2YXIgeD17fTtmb3IodmFyIHYgaW4gaSl4W3ZdPXY9PT0iYWNjZXNzIj97fTppW3ZdO2Zvcih2YXIgdiBpbiBpLmFjY2Vzcyl4LmFjY2Vzc1t2XT1pLmFjY2Vzc1t2XTt4LmFkZEluaXRpYWxpemVyPWZ1bmN0aW9uKHkpe2lmKGgpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGFkZCBpbml0aWFsaXplcnMgYWZ0ZXIgZGVjb3JhdGlvbiBoYXMgY29tcGxldGVkIik7bi5wdXNoKG8oeXx8bnVsbCkpfTt2YXIgYj0oMCxyW2ZdKShzPT09ImFjY2Vzc29yIj97Z2V0OnUuZ2V0LHNldDp1LnNldH06dVtsXSx4KTtpZihzPT09ImFjY2Vzc29yIil7aWYoYj09PXZvaWQgMCljb250aW51ZTtpZihiPT09bnVsbHx8dHlwZW9mIGIhPSJvYmplY3QiKXRocm93IG5ldyBUeXBlRXJyb3IoIk9iamVjdCBleHBlY3RlZCIpOyhkPW8oYi5nZXQpKSYmKHUuZ2V0PWQpLChkPW8oYi5zZXQpKSYmKHUuc2V0PWQpLChkPW8oYi5pbml0KSkmJmEudW5zaGlmdChkKX1lbHNlKGQ9byhiKSkmJihzPT09ImZpZWxkIj9hLnVuc2hpZnQoZCk6dVtsXT1kKX1jJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoYyxpLm5hbWUsdSksaD0hMH0sJDI9ZnVuY3Rpb24oZSx0LHIpe2Zvcih2YXIgaT1hcmd1bWVudHMubGVuZ3RoPjIsYT0wO2E8dC5sZW5ndGg7YSsrKXI9aT90W2FdLmNhbGwoZSxyKTp0W2FdLmNhbGwoZSk7cmV0dXJuIGk/cjp2b2lkIDB9LGVGPSgoKT0+e2xldCBlPVt5ZSgiZGVlcy1zbGFzaC1tZW51IildLHQscj1bXSxpLGE9emUsbixvPVtdLHM9W10sbCxjPVtdLHU9W10sZCxoPVtdLGY9W10seCx2PVtdLGI9W10seSx3PVtdLGs9W107dmFyIE89Y2xhc3MgZXh0ZW5kcyBhe3N0YXRpY3tpPXRoaXN9c3RhdGlje2xldCB6PXR5cGVvZiBTeW1ib2w9PSJmdW5jdGlvbiImJlN5bWJvbC5tZXRhZGF0YT9PYmplY3QuY3JlYXRlKGFbU3ltYm9sLm1ldGFkYXRhXT8/bnVsbCk6dm9pZCAwO249W2ZlKCldLGw9W2ZlKCldLGQ9W2ZlKCldLHg9W2ZlKCldLHk9W2ZlKCldLHNoKHRoaXMsbnVsbCxuLHtraW5kOiJhY2Nlc3NvciIsbmFtZToidmlzaWJsZSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6TT0+InZpc2libGUiaW4gTSxnZXQ6TT0+TS52aXNpYmxlLHNldDooTSxGKT0+e00udmlzaWJsZT1GfX0sbWV0YWRhdGE6en0sbyxzKSxzaCh0aGlzLG51bGwsbCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InBvc2l0aW9uIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpNPT4icG9zaXRpb24iaW4gTSxnZXQ6TT0+TS5wb3NpdGlvbixzZXQ6KE0sRik9PntNLnBvc2l0aW9uPUZ9fSxtZXRhZGF0YTp6fSxjLHUpLHNoKHRoaXMsbnVsbCxkLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiZmlsdGVyIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpNPT4iZmlsdGVyImluIE0sZ2V0Ok09Pk0uZmlsdGVyLHNldDooTSxGKT0+e00uZmlsdGVyPUZ9fSxtZXRhZGF0YTp6fSxoLGYpLHNoKHRoaXMsbnVsbCx4LHtraW5kOiJhY2Nlc3NvciIsbmFtZToic2VsZWN0ZWRJbmRleCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6TT0+InNlbGVjdGVkSW5kZXgiaW4gTSxnZXQ6TT0+TS5zZWxlY3RlZEluZGV4LHNldDooTSxGKT0+e00uc2VsZWN0ZWRJbmRleD1GfX0sbWV0YWRhdGE6en0sdixiKSxzaCh0aGlzLG51bGwseSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6Im1lbnVaSW5kZXgiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOk09PiJtZW51WkluZGV4ImluIE0sZ2V0Ok09Pk0ubWVudVpJbmRleCxzZXQ6KE0sRik9PntNLm1lbnVaSW5kZXg9Rn19LG1ldGFkYXRhOnp9LHcsayksc2gobnVsbCx0PXt2YWx1ZTppfSxlLHtraW5kOiJjbGFzcyIsbmFtZTppLm5hbWUsbWV0YWRhdGE6en0sbnVsbCxyKSxPPWk9dC52YWx1ZSx6JiZPYmplY3QuZGVmaW5lUHJvcGVydHkoaSxTeW1ib2wubWV0YWRhdGEse2VudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwLHZhbHVlOnp9KX1zdGF0aWMgaW5zdGFuY2U7c3RhdGljIGdldEluc3RhbmNlKCl7cmV0dXJuIE8uaW5zdGFuY2V8fChPLmluc3RhbmNlPW5ldyBPLGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoTy5pbnN0YW5jZSkpLE8uaW5zdGFuY2V9I2U9JDIodGhpcyxvLCExKTtnZXQgdmlzaWJsZSgpe3JldHVybiB0aGlzLiNlfXNldCB2aXNpYmxlKHope3RoaXMuI2U9en0jdD0oJDIodGhpcyxzKSwkMih0aGlzLGMse3g6MCx5OjB9KSk7Z2V0IHBvc2l0aW9uKCl7cmV0dXJuIHRoaXMuI3R9c2V0IHBvc2l0aW9uKHope3RoaXMuI3Q9en0jcj0oJDIodGhpcyx1KSwkMih0aGlzLGgsIiIpKTtnZXQgZmlsdGVyKCl7cmV0dXJuIHRoaXMuI3J9c2V0IGZpbHRlcih6KXt0aGlzLiNyPXp9I2k9KCQyKHRoaXMsZiksJDIodGhpcyx2LDApKTtnZXQgc2VsZWN0ZWRJbmRleCgpe3JldHVybiB0aGlzLiNpfXNldCBzZWxlY3RlZEluZGV4KHope3RoaXMuI2k9en0jYT0oJDIodGhpcyxiKSwkMih0aGlzLHcsMWUzKSk7Z2V0IG1lbnVaSW5kZXgoKXtyZXR1cm4gdGhpcy4jYX1zZXQgbWVudVpJbmRleCh6KXt0aGlzLiNhPXp9Y2FsbGJhY2s9KCQyKHRoaXMsayksbnVsbCk7c3RhdGljIHN0eWxlcz1bRGUsbS5kZWZhdWx0U3R5bGVzLG9lYAogICAgICAvKiBUT0RPOiBNaWdyYXRlIGhhcmRjb2RlZCB2YWx1ZXMgdG8gLS1kZWVzLSogQ1NTIHZhcmlhYmxlcyAqLwogICAgICA6aG9zdCB7CiAgICAgICAgcG9zaXRpb246IGZpeGVkOwogICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lOwogICAgICAgIHRvcDogMDsKICAgICAgICBsZWZ0OiAwOwogICAgICAgIHdpZHRoOiAwOwogICAgICAgIGhlaWdodDogMDsKICAgICAgfQoKICAgICAgLnNsYXNoLW1lbnUgewogICAgICAgIHBvc2l0aW9uOiBmaXhlZDsKICAgICAgICBiYWNrZ3JvdW5kOiAke20uYmRUaGVtZSgiI2ZmZmZmZiIsIiMwOTA5MGIiKX07CiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHttLmJkVGhlbWUoIiNlNWU3ZWIiLCIjMjcyNzJhIil9OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDRweDsKICAgICAgICBib3gtc2hhZG93OiAwIDFweCAzcHggcmdiYSgwLCAwLCAwLCAwLjEpLCAwIDFweCAycHggcmdiYSgwLCAwLCAwLCAwLjA2KTsKICAgICAgICBwYWRkaW5nOiA0cHg7CiAgICAgICAgbWluLXdpZHRoOiAyMjBweDsKICAgICAgICBtYXgtaGVpZ2h0OiAzMDBweDsKICAgICAgICBvdmVyZmxvdy15OiBhdXRvOwogICAgICAgIHBvaW50ZXItZXZlbnRzOiBhdXRvOwogICAgICAgIHVzZXItc2VsZWN0OiBub25lOwogICAgICAgIGFuaW1hdGlvbjogZmFkZUluU2NhbGUgMC4xNXMgZWFzZS1vdXQ7CiAgICAgIH0KCiAgICAgIEBrZXlmcmFtZXMgZmFkZUluU2NhbGUgewogICAgICAgIGZyb20gewogICAgICAgICAgb3BhY2l0eTogMDsKICAgICAgICAgIHRyYW5zZm9ybTogc2NhbGUoMC45OCkgdHJhbnNsYXRlWSgtMnB4KTsKICAgICAgICB9CiAgICAgICAgdG8gewogICAgICAgICAgb3BhY2l0eTogMTsKICAgICAgICAgIHRyYW5zZm9ybTogc2NhbGUoMSkgdHJhbnNsYXRlWSgwKTsKICAgICAgICB9CiAgICAgIH0KCiAgICAgIC5zbGFzaC1tZW51LWl0ZW0gewogICAgICAgIHBhZGRpbmc6IDhweCAxMHB4OwogICAgICAgIGN1cnNvcjogcG9pbnRlcjsKICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC4xNXMgZWFzZTsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgZ2FwOiAxMnB4OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDNweDsKICAgICAgICBjb2xvcjogJHttLmJkVGhlbWUoIiMwOTA5MGIiLCIjZmFmYWZhIil9OwogICAgICAgIGZvbnQtc2l6ZTogMTRweDsKICAgICAgfQoKICAgICAgLnNsYXNoLW1lbnUtaXRlbTpob3ZlciwKICAgICAgLnNsYXNoLW1lbnUtaXRlbS5zZWxlY3RlZCB7CiAgICAgICAgYmFja2dyb3VuZDogJHttLmJkVGhlbWUoIiNmNGY0ZjUiLCIjMjcyNzJhIil9OwogICAgICAgIGNvbG9yOiAke20uYmRUaGVtZSgiIzA5MDkwYiIsIiNmYWZhZmEiKX07CiAgICAgIH0KCiAgICAgIC5zbGFzaC1tZW51LWl0ZW0gLmljb24gewogICAgICAgIHdpZHRoOiAyMHB4OwogICAgICAgIGhlaWdodDogMjBweDsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7CiAgICAgICAgY29sb3I6ICR7bS5iZFRoZW1lKCIjNzE3MTdhIiwiI2ExYTFhYSIpfTsKICAgICAgfQoKICAgICAgLnNsYXNoLW1lbnUtaXRlbTpob3ZlciAuaWNvbiwKICAgICAgLnNsYXNoLW1lbnUtaXRlbS5zZWxlY3RlZCAuaWNvbiB7CiAgICAgICAgY29sb3I6ICR7bS5iZFRoZW1lKCIjM2I4MmY2IiwiIzNiODJmNiIpfTsKICAgICAgfQogICAgYF07cmVuZGVyKCl7aWYoIXRoaXMudmlzaWJsZSlyZXR1cm4gQ2BgO3RoaXMuc3R5bGUuekluZGV4PXRoaXMubWVudVpJbmRleC50b1N0cmluZygpO2xldCB6PXRoaXMuZ2V0RmlsdGVyZWRNZW51SXRlbXMoKTtyZXR1cm4gQ2AKICAgICAgPGRpdiAKICAgICAgICBjbGFzcz0ic2xhc2gtbWVudSIgCiAgICAgICAgc3R5bGU9ImxlZnQ6ICR7dGhpcy5wb3NpdGlvbi54fXB4OyB0b3A6ICR7dGhpcy5wb3NpdGlvbi55fXB4OyIKICAgICAgICB0YWJpbmRleD0iLTEiCiAgICAgICAgZGF0YS1tZW51LXR5cGU9InNsYXNoIgogICAgICA+CiAgICAgICAgJHt6Lm1hcCgoTSxGKT0+Q2AKICAgICAgICAgIDxkaXYgCiAgICAgICAgICAgIGNsYXNzPSJzbGFzaC1tZW51LWl0ZW0gJHtGPT09dGhpcy5zZWxlY3RlZEluZGV4PyJzZWxlY3RlZCI6IiJ9IgogICAgICAgICAgICBkYXRhLWl0ZW0tdHlwZT0iJHtNLnR5cGV9IgogICAgICAgICAgICBkYXRhLWl0ZW0taW5kZXg9IiR7Rn0iCiAgICAgICAgICA+CiAgICAgICAgICAgIDxkZWVzLWljb24gY2xhc3M9Imljb24iIC5pY29uPSIke00uaWNvbn0iIGljb25TaXplPSIxNiI+PC9kZWVzLWljb24+CiAgICAgICAgICAgIDxzcGFuPiR7TS5sYWJlbH08L3NwYW4+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICBgKX0KICAgICAgPC9kaXY+CiAgICBgfWdldEZpbHRlcmVkTWVudUl0ZW1zKCl7cmV0dXJuIEcxLmdldFNsYXNoTWVudUl0ZW1zKCkuZmlsdGVyKE09PnRoaXMuZmlsdGVyPT09IiJ8fE0ubGFiZWwudG9Mb3dlckNhc2UoKS5pbmNsdWRlcyh0aGlzLmZpbHRlci50b0xvd2VyQ2FzZSgpKSl9c2VsZWN0SXRlbSh6KXt0aGlzLmNhbGxiYWNrJiZ0aGlzLmNhbGxiYWNrKHopLHRoaXMuaGlkZSgpfXNob3coeixNKXt0aGlzLnBvc2l0aW9uPXosdGhpcy5jYWxsYmFjaz1NLHRoaXMuZmlsdGVyPSIiLHRoaXMuc2VsZWN0ZWRJbmRleD0wLHRoaXMubWVudVpJbmRleD1Lci5nZXROZXh0WkluZGV4KCksS3IucmVnaXN0ZXIodGhpcyx0aGlzLm1lbnVaSW5kZXgpLHRoaXMuc3R5bGUuekluZGV4PXRoaXMubWVudVpJbmRleC50b1N0cmluZygpLHRoaXMudmlzaWJsZT0hMH1oaWRlKCl7dGhpcy52aXNpYmxlPSExLHRoaXMuY2FsbGJhY2s9bnVsbCx0aGlzLmZpbHRlcj0iIix0aGlzLnNlbGVjdGVkSW5kZXg9MCxLci51bnJlZ2lzdGVyKHRoaXMpfXVwZGF0ZUZpbHRlcih6KXt0aGlzLmZpbHRlcj16LHRoaXMuc2VsZWN0ZWRJbmRleD0wfW5hdmlnYXRlKHope2xldCBNPXRoaXMuZ2V0RmlsdGVyZWRNZW51SXRlbXMoKTt6PT09ImRvd24iP3RoaXMuc2VsZWN0ZWRJbmRleD0odGhpcy5zZWxlY3RlZEluZGV4KzEpJU0ubGVuZ3RoOnRoaXMuc2VsZWN0ZWRJbmRleD10aGlzLnNlbGVjdGVkSW5kZXg9PT0wP00ubGVuZ3RoLTE6dGhpcy5zZWxlY3RlZEluZGV4LTF9c2VsZWN0Q3VycmVudCgpe2xldCB6PXRoaXMuZ2V0RmlsdGVyZWRNZW51SXRlbXMoKTt6W3RoaXMuc2VsZWN0ZWRJbmRleF0mJnRoaXMuc2VsZWN0SXRlbSh6W3RoaXMuc2VsZWN0ZWRJbmRleF0udHlwZSl9Zmlyc3RVcGRhdGVkKCl7dGhpcy5zaGFkb3dSb290Py5hZGRFdmVudExpc3RlbmVyKCJtb3VzZWRvd24iLHo9PntsZXQgTT10aGlzLnNoYWRvd1Jvb3Q/LnF1ZXJ5U2VsZWN0b3IoIi5zbGFzaC1tZW51Iik7TSYmTS5jb250YWlucyh6LnRhcmdldCkmJih6LnByZXZlbnREZWZhdWx0KCksei5zdG9wUHJvcGFnYXRpb24oKSl9KSx0aGlzLnNoYWRvd1Jvb3Q/LmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIix6PT57bGV0IEY9ei50YXJnZXQuY2xvc2VzdCgiLnNsYXNoLW1lbnUtaXRlbSIpO2lmKEYpe3oucHJldmVudERlZmF1bHQoKSx6LnN0b3BQcm9wYWdhdGlvbigpO2xldCBEPUYuZ2V0QXR0cmlidXRlKCJkYXRhLWl0ZW0tdHlwZSIpO0QmJnRoaXMuc2VsZWN0SXRlbShEKX19KSx0aGlzLnNoYWRvd1Jvb3Q/LmFkZEV2ZW50TGlzdGVuZXIoIm1vdXNlZW50ZXIiLHo9PntsZXQgRj16LnRhcmdldC5jbG9zZXN0KCIuc2xhc2gtbWVudS1pdGVtIik7aWYoRil7bGV0IEQ9cGFyc2VJbnQoRi5nZXRBdHRyaWJ1dGUoImRhdGEtaXRlbS1pbmRleCIpfHwiMCIsMTApO3RoaXMuc2VsZWN0ZWRJbmRleD1EfX0sITApLHRoaXMuc2hhZG93Um9vdD8uYWRkRXZlbnRMaXN0ZW5lcigiZm9jdXMiLHo9PntsZXQgTT10aGlzLnNoYWRvd1Jvb3Q/LnF1ZXJ5U2VsZWN0b3IoIi5zbGFzaC1tZW51Iik7TSYmTS5jb250YWlucyh6LnRhcmdldCkmJih6LnByZXZlbnREZWZhdWx0KCksei5zdG9wUHJvcGFnYXRpb24oKSl9LCEwKX1zdGF0aWN7JDIoaSxyKX19O3JldHVybiBPPWl9KSgpfSk7dmFyIFllLG5sPXAoKCk9PntZZT1jbGFzc3tzdGF0aWMgZ2V0U2VsZWN0aW9uSW5mbyguLi50KXtsZXQgcj13aW5kb3cuZ2V0U2VsZWN0aW9uKCk7aWYoY29uc29sZS5sb2coIld5c2l3eWdTZWxlY3Rpb24uZ2V0U2VsZWN0aW9uSW5mbyAtIHNlbGVjdGlvbjoiLHIsInJhbmdlQ291bnQ6IixyPy5yYW5nZUNvdW50KSwhcilyZXR1cm4gbnVsbDtpZigiZ2V0Q29tcG9zZWRSYW5nZXMiaW4gciYmdHlwZW9mIHIuZ2V0Q29tcG9zZWRSYW5nZXM9PSJmdW5jdGlvbiIpe2NvbnNvbGUubG9nKCJVc2luZyBnZXRDb21wb3NlZFJhbmdlcyB3aXRoIix0Lmxlbmd0aCwic2hhZG93IHJvb3RzIik7dHJ5e2xldCBpPXIuZ2V0Q29tcG9zZWRSYW5nZXMoe3NoYWRvd1Jvb3RzOnR9KTtpZihjb25zb2xlLmxvZygiZ2V0Q29tcG9zZWRSYW5nZXMgcmV0dXJuZWQiLGkubGVuZ3RoLCJyYW5nZXMiKSxpLmxlbmd0aD4wKXtsZXQgYT1pWzBdO3JldHVybntzdGFydENvbnRhaW5lcjphLnN0YXJ0Q29udGFpbmVyLHN0YXJ0T2Zmc2V0OmEuc3RhcnRPZmZzZXQsZW5kQ29udGFpbmVyOmEuZW5kQ29udGFpbmVyLGVuZE9mZnNldDphLmVuZE9mZnNldCxjb2xsYXBzZWQ6YS5jb2xsYXBzZWR9fX1jYXRjaChpKXtjb25zb2xlLndhcm4oImdldENvbXBvc2VkUmFuZ2VzIGZhaWxlZCwgZmFsbGluZyBiYWNrIHRvIGdldFJhbmdlQXQ6IixpKX19ZWxzZSBjb25zb2xlLmxvZygiZ2V0Q29tcG9zZWRSYW5nZXMgbm90IGF2YWlsYWJsZSwgdXNpbmcgZmFsbGJhY2siKTtpZihyLnJhbmdlQ291bnQ+MCl7bGV0IGk9ci5nZXRSYW5nZUF0KDApO3JldHVybntzdGFydENvbnRhaW5lcjppLnN0YXJ0Q29udGFpbmVyLHN0YXJ0T2Zmc2V0Omkuc3RhcnRPZmZzZXQsZW5kQ29udGFpbmVyOmkuZW5kQ29udGFpbmVyLGVuZE9mZnNldDppLmVuZE9mZnNldCxjb2xsYXBzZWQ6aS5jb2xsYXBzZWR9fXJldHVybiBudWxsfXN0YXRpYyBpc1NlbGVjdGlvbkluRWxlbWVudCh0LHIpe2xldCBpPXI/dGhpcy5nZXRTZWxlY3Rpb25JbmZvKHIpOnRoaXMuZ2V0U2VsZWN0aW9uSW5mbygpO3JldHVybiBpP3QuY29udGFpbnMoaS5zdGFydENvbnRhaW5lcil8fHQuY29udGFpbnMoaS5lbmRDb250YWluZXIpOiExfXN0YXRpYyBnZXRTZWxlY3RlZFRleHQoKXtsZXQgdD13aW5kb3cuZ2V0U2VsZWN0aW9uKCk7cmV0dXJuIHQ/dC50b1N0cmluZygpOiIifXN0YXRpYyBjcmVhdGVSYW5nZUZyb21JbmZvKHQpe2xldCByPWRvY3VtZW50LmNyZWF0ZVJhbmdlKCk7cmV0dXJuIHIuc2V0U3RhcnQodC5zdGFydENvbnRhaW5lcix0LnN0YXJ0T2Zmc2V0KSxyLnNldEVuZCh0LmVuZENvbnRhaW5lcix0LmVuZE9mZnNldCkscn1zdGF0aWMgc2V0U2VsZWN0aW9uRnJvbVJhbmdlKHQpe2xldCByPXdpbmRvdy5nZXRTZWxlY3Rpb24oKTtyJiYoci5yZW1vdmVBbGxSYW5nZXMoKSxyLmFkZFJhbmdlKHQpKX1zdGF0aWMgZ2V0Q3Vyc29yUG9zaXRpb25JbkVsZW1lbnQodCwuLi5yKXtsZXQgaT1yLmxlbmd0aD4wP3RoaXMuZ2V0U2VsZWN0aW9uSW5mbyguLi5yKTp0aGlzLmdldFNlbGVjdGlvbkluZm8oKTtpZighaXx8IWkuY29sbGFwc2VkKXJldHVybiBudWxsO3RyeXtsZXQgYT1kb2N1bWVudC5jcmVhdGVSYW5nZSgpO2lmKGEuc2VsZWN0Tm9kZUNvbnRlbnRzKHQpLHRoaXMuY29udGFpbnNBY3Jvc3NTaGFkb3dET00odCxpLnN0YXJ0Q29udGFpbmVyKSlyZXR1cm4gYS5zZXRFbmQoaS5zdGFydENvbnRhaW5lcixpLnN0YXJ0T2Zmc2V0KSxhLnRvU3RyaW5nKCkubGVuZ3RoO3tsZXQgbz10LnRleHRDb250ZW50fHwiIixzPWkuc3RhcnRDb250YWluZXIudGV4dENvbnRlbnR8fCIiO3JldHVybiBpLnN0YXJ0T2Zmc2V0PT09MD8wOmkuc3RhcnRPZmZzZXQ9PT1zLmxlbmd0aD9vLmxlbmd0aDooY29uc29sZS53YXJuKCJTZWxlY3Rpb24gY29udGFpbmVyIG5vdCB3aXRoaW4gZWxlbWVudCwgdXNpbmcgdGV4dCBtYXRjaGluZyBmYWxsYmFjayIpLGkuc3RhcnRPZmZzZXQpfX1jYXRjaChhKXtyZXR1cm4gY29uc29sZS53YXJuKCJGYWlsZWQgdG8gZ2V0IGN1cnNvciBwb3NpdGlvbjoiLGEpLG51bGx9fXN0YXRpYyBnZXRDdXJzb3JQb3NpdGlvbkZyb21Qb2ludCh0LHIsaSwuLi5hKXtpZigiY2FyZXRQb3NpdGlvbkZyb21Qb2ludCJpbiBkb2N1bWVudCYmZG9jdW1lbnQuY2FyZXRQb3NpdGlvbkZyb21Qb2ludCl7bGV0IG49bnVsbDt0cnl7bj1kb2N1bWVudC5jYXJldFBvc2l0aW9uRnJvbVBvaW50KHQsciwuLi5hKX1jYXRjaHtuPWRvY3VtZW50LmNhcmV0UG9zaXRpb25Gcm9tUG9pbnQodCxyKX1pZihuJiZpLmNvbnRhaW5zKG4ub2Zmc2V0Tm9kZSkpcmV0dXJuIHRoaXMuZ2V0T2Zmc2V0SW5FbGVtZW50KG4ub2Zmc2V0Tm9kZSxuLm9mZnNldCxpKX1pZigiY2FyZXRSYW5nZUZyb21Qb2ludCJpbiBkb2N1bWVudCl7bGV0IG49ZG9jdW1lbnQuY2FyZXRSYW5nZUZyb21Qb2ludCh0LHIpO2lmKG4mJmkuY29udGFpbnMobi5zdGFydENvbnRhaW5lcikpcmV0dXJuIHRoaXMuZ2V0T2Zmc2V0SW5FbGVtZW50KG4uc3RhcnRDb250YWluZXIsbi5zdGFydE9mZnNldCxpKX1yZXR1cm4gbnVsbH1zdGF0aWMgZ2V0T2Zmc2V0SW5FbGVtZW50KHQscixpKXtsZXQgYT0wLG49ITEsbz1kb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGksTm9kZUZpbHRlci5TSE9XX1RFWFQsbnVsbCkscztmb3IoO3M9by5uZXh0Tm9kZSgpOylpZihzPT09dCl7YSs9cixuPSEwO2JyZWFrfWVsc2UgYSs9cy50ZXh0Q29udGVudD8ubGVuZ3RofHwwO3JldHVybiBuP2E6MH1zdGF0aWMgc2V0Q3Vyc29yUG9zaXRpb24odCxyKXtsZXQgaT1kb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHQsTm9kZUZpbHRlci5TSE9XX1RFWFQsbnVsbCksYT0wLG49bnVsbCxvPTA7Zm9yKDtpLm5leHROb2RlKCk7KXtsZXQgcz1pLmN1cnJlbnROb2RlLGw9cy50ZXh0Q29udGVudD8ubGVuZ3RofHwwO2lmKGErbD49cil7bj1zLG89ci1hO2JyZWFrfWErPWx9aWYobil7bGV0IHM9ZG9jdW1lbnQuY3JlYXRlUmFuZ2UoKTtzLnNldFN0YXJ0KG4sbykscy5jb2xsYXBzZSghMCksdGhpcy5zZXRTZWxlY3Rpb25Gcm9tUmFuZ2Uocyl9fXN0YXRpYyBjb250YWluc0Fjcm9zc1NoYWRvd0RPTSh0LHIpe2lmKCF0fHwhcilyZXR1cm4hMTtsZXQgaT1yO2Zvcig7aTspe2lmKGk9PT10KXJldHVybiEwO2lmKGkubm9kZVR5cGU9PT1Ob2RlLkRPQ1VNRU5UX0ZSQUdNRU5UX05PREUmJmkuaG9zdCl7bGV0IGE9aTtpZihhLmNvbnRhaW5zKHQpKXJldHVybiExO2k9YS5ob3N0fWVsc2UgaT1pLnBhcmVudE5vZGV9cmV0dXJuITF9fX0pO3ZhciBTYyxKNmU9cCgoKT0+e3hlKCk7bmwoKTtTYz1jbGFzc3tzdGF0aWMgZm9ybWF0QnV0dG9ucz1be2NvbW1hbmQ6ImJvbGQiLGljb246IkIiLGxhYmVsOiJCb2xkIixzaG9ydGN1dDoiXHUyMzE4QiJ9LHtjb21tYW5kOiJpdGFsaWMiLGljb246IkkiLGxhYmVsOiJJdGFsaWMiLHNob3J0Y3V0OiJcdTIzMThJIn0se2NvbW1hbmQ6InVuZGVybGluZSIsaWNvbjoiVSIsbGFiZWw6IlVuZGVybGluZSIsc2hvcnRjdXQ6Ilx1MjMxOFUifSx7Y29tbWFuZDoic3RyaWtlVGhyb3VnaCIsaWNvbjoiU1x1MDMzNiIsbGFiZWw6IlN0cmlrZXRocm91Z2gifSx7Y29tbWFuZDoiY29kZSIsaWNvbjoieyB9IixsYWJlbDoiSW5saW5lIENvZGUifSx7Y29tbWFuZDoibGluayIsaWNvbjoiXHV7MUY1MTd9IixsYWJlbDoiTGluayIsc2hvcnRjdXQ6Ilx1MjMxOEsifV07c3RhdGljIHJlbmRlckZvcm1hdHRpbmdNZW51KHQscil7cmV0dXJuIENgCiAgICAgIDxkaXYgCiAgICAgICAgY2xhc3M9ImZvcm1hdHRpbmctbWVudSIgCiAgICAgICAgc3R5bGU9InRvcDogJHt0Lnl9cHg7IGxlZnQ6ICR7dC54fXB4OyIKICAgICAgICBAbW91c2Vkb3duPSIke2k9PntpLnByZXZlbnREZWZhdWx0KCksaS5zdG9wUHJvcGFnYXRpb24oKX19IgogICAgICAgIEBjbGljaz0iJHtpPT5pLnN0b3BQcm9wYWdhdGlvbigpfSIKICAgICAgPgogICAgICAgICR7dGhpcy5mb3JtYXRCdXR0b25zLm1hcChpPT5DYAogICAgICAgICAgPGJ1dHRvbiAKICAgICAgICAgICAgY2xhc3M9ImZvcm1hdC1idXR0b24gJHtpLmNvbW1hbmR9IgogICAgICAgICAgICBAY2xpY2s9IiR7KCk9PnIoaS5jb21tYW5kKX0iCiAgICAgICAgICAgIHRpdGxlPSIke2kubGFiZWx9JHtpLnNob3J0Y3V0P2AgKCR7aS5zaG9ydGN1dH0pYDoiIn0iCiAgICAgICAgICA+CiAgICAgICAgICAgIDxzcGFuIGNsYXNzPSIke2kuY29tbWFuZD09PSJjb2RlIj8iY29kZS1pY29uIjoiIn0iPiR7aS5pY29ufTwvc3Bhbj4KICAgICAgICAgIDwvYnV0dG9uPgogICAgICAgIGApfQogICAgICA8L2Rpdj4KICAgIGB9c3RhdGljIGFwcGx5Rm9ybWF0KHQscixpLGEpe2xldCBuO2lmKGkpbj1pO2Vsc2V7bGV0IG89d2luZG93LmdldFNlbGVjdGlvbigpO2lmKCFvfHxvLnJhbmdlQ291bnQ9PT0wKXJldHVybiExO249by5nZXRSYW5nZUF0KDApfXN3aXRjaCh0KXtjYXNlImJvbGQiOnRoaXMud3JhcFNlbGVjdGlvbihuLCJzdHJvbmciKTticmVhaztjYXNlIml0YWxpYyI6dGhpcy53cmFwU2VsZWN0aW9uKG4sImVtIik7YnJlYWs7Y2FzZSJ1bmRlcmxpbmUiOnRoaXMud3JhcFNlbGVjdGlvbihuLCJ1Iik7YnJlYWs7Y2FzZSJzdHJpa2VUaHJvdWdoIjp0aGlzLndyYXBTZWxlY3Rpb24obiwicyIpO2JyZWFrO2Nhc2UiY29kZSI6dGhpcy53cmFwU2VsZWN0aW9uKG4sImNvZGUiKTticmVhaztjYXNlImxpbmsiOmlmKCFyKXJldHVybiExO3RoaXMud3JhcFNlbGVjdGlvbldpdGhMaW5rKG4scik7YnJlYWt9aWYoYSYmYS5sZW5ndGg+MClZZS5zZXRTZWxlY3Rpb25Gcm9tUmFuZ2Uobik7ZWxzZXtsZXQgbz13aW5kb3cuZ2V0U2VsZWN0aW9uKCk7byYmKG8ucmVtb3ZlQWxsUmFuZ2VzKCksby5hZGRSYW5nZShuKSl9cmV0dXJuITB9c3RhdGljIHdyYXBTZWxlY3Rpb24odCxyKXtsZXQgaT13aW5kb3cuZ2V0U2VsZWN0aW9uKCk7aWYoIWkpcmV0dXJuO2lmKHRoaXMuc2VsZWN0aW9uQ29udGFpbnNUYWcodCxyKSl0aGlzLnJlbW92ZVRhZ0Zyb21TZWxlY3Rpb24odCxyKTtlbHNle2xldCBuPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQocik7dHJ5e2xldCBvPXQuZXh0cmFjdENvbnRlbnRzKCk7bi5hcHBlbmRDaGlsZChvKSx0Lmluc2VydE5vZGUobiksdC5zZWxlY3ROb2RlQ29udGVudHMobiksaS5yZW1vdmVBbGxSYW5nZXMoKSxpLmFkZFJhbmdlKHQpfWNhdGNoKG8pe2NvbnNvbGUuZXJyb3IoIkZhaWxlZCB0byB3cmFwIHNlbGVjdGlvbjoiLG8pfX19c3RhdGljIHNlbGVjdGlvbkNvbnRhaW5zVGFnKHQscil7bGV0IGk9dC5zdGFydENvbnRhaW5lcjtmb3IoO2kmJmkhPT10LmNvbW1vbkFuY2VzdG9yQ29udGFpbmVyLm93bmVyRG9jdW1lbnQ7KXtpZihpLm5vZGVUeXBlPT09Tm9kZS5FTEVNRU5UX05PREUmJmkudGFnTmFtZS50b0xvd2VyQ2FzZSgpPT09cilyZXR1cm4hMDtpPWkucGFyZW50Tm9kZX1mb3IoaT10LmVuZENvbnRhaW5lcjtpJiZpIT09dC5jb21tb25BbmNlc3RvckNvbnRhaW5lci5vd25lckRvY3VtZW50Oyl7aWYoaS5ub2RlVHlwZT09PU5vZGUuRUxFTUVOVF9OT0RFJiZpLnRhZ05hbWUudG9Mb3dlckNhc2UoKT09PXIpcmV0dXJuITA7aT1pLnBhcmVudE5vZGV9bGV0IGE9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iiksbj10LmNsb25lQ29udGVudHMoKTtyZXR1cm4gYS5hcHBlbmRDaGlsZChuKSxhLmdldEVsZW1lbnRzQnlUYWdOYW1lKHIpLmxlbmd0aD4wfXN0YXRpYyByZW1vdmVUYWdGcm9tU2VsZWN0aW9uKHQscil7bGV0IGk9d2luZG93LmdldFNlbGVjdGlvbigpO2lmKCFpKXJldHVybjtsZXQgYT10LmNsb25lUmFuZ2UoKSxuPXQuc3RhcnRDb250YWluZXIsbz1udWxsO2Zvcig7biYmbiE9PXQuY29tbW9uQW5jZXN0b3JDb250YWluZXIub3duZXJEb2N1bWVudDspe2lmKG4ubm9kZVR5cGU9PT1Ob2RlLkVMRU1FTlRfTk9ERSYmbi50YWdOYW1lLnRvTG93ZXJDYXNlKCk9PT1yKXtvPW47YnJlYWt9bj1uLnBhcmVudE5vZGV9bGV0IHM9dC5lbmRDb250YWluZXIsbD1udWxsO2Zvcig7cyYmcyE9PXQuY29tbW9uQW5jZXN0b3JDb250YWluZXIub3duZXJEb2N1bWVudDspe2lmKHMubm9kZVR5cGU9PT1Ob2RlLkVMRU1FTlRfTk9ERSYmcy50YWdOYW1lLnRvTG93ZXJDYXNlKCk9PT1yKXtsPXM7YnJlYWt9cz1zLnBhcmVudE5vZGV9byYmYS5zZXRTdGFydEJlZm9yZShvKSxsJiZhLnNldEVuZEFmdGVyKGwpO2xldCBjPWEuZXh0cmFjdENvbnRlbnRzKCksdT10aGlzLnJlbW92ZVRhZ3NGcm9tRnJhZ21lbnQoYyxyKTthLmluc2VydE5vZGUodSk7bGV0IGQ9W10saD1kb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHUsTm9kZUZpbHRlci5TSE9XX1RFWFQsbnVsbCksZjtmb3IoO2Y9aC5uZXh0Tm9kZSgpOylkLnB1c2goZik7aWYoZC5sZW5ndGg+MCl7bGV0IHg9ZG9jdW1lbnQuY3JlYXRlUmFuZ2UoKTt4LnNldFN0YXJ0KGRbMF0sMCkseC5zZXRFbmQoZFtkLmxlbmd0aC0xXSxkW2QubGVuZ3RoLTFdLnRleHRDb250ZW50Py5sZW5ndGh8fDApLGkucmVtb3ZlQWxsUmFuZ2VzKCksaS5hZGRSYW5nZSh4KX19c3RhdGljIHJlbW92ZVRhZ3NGcm9tRnJhZ21lbnQodCxyKXtsZXQgaT1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTtpLmFwcGVuZENoaWxkKHQpO2xldCBhPWkuZ2V0RWxlbWVudHNCeVRhZ05hbWUocik7QXJyYXkuZnJvbShhKS5mb3JFYWNoKHM9PntsZXQgbD1zLnBhcmVudE5vZGU7aWYobCl7Zm9yKDtzLmZpcnN0Q2hpbGQ7KWwuaW5zZXJ0QmVmb3JlKHMuZmlyc3RDaGlsZCxzKTtsLnJlbW92ZUNoaWxkKHMpfX0pO2xldCBvPWRvY3VtZW50LmNyZWF0ZURvY3VtZW50RnJhZ21lbnQoKTtmb3IoO2kuZmlyc3RDaGlsZDspby5hcHBlbmRDaGlsZChpLmZpcnN0Q2hpbGQpO3JldHVybiBvfXN0YXRpYyB3cmFwU2VsZWN0aW9uV2l0aExpbmsodCxyKXtsZXQgaT13aW5kb3cuZ2V0U2VsZWN0aW9uKCk7aWYoIWkpcmV0dXJuO3RoaXMuc2VsZWN0aW9uQ29udGFpbnNUYWcodCwiYSIpJiYodGhpcy5yZW1vdmVUYWdGcm9tU2VsZWN0aW9uKHQsImEiKSxpLnJhbmdlQ291bnQ+MCYmKHQ9aS5nZXRSYW5nZUF0KDApKSk7bGV0IGE9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiYSIpO2EuaHJlZj1yLGEudGFyZ2V0PSJfYmxhbmsiLGEucmVsPSJub29wZW5lciBub3JlZmVycmVyIjt0cnl7bGV0IG49dC5leHRyYWN0Q29udGVudHMoKTthLmFwcGVuZENoaWxkKG4pLHQuaW5zZXJ0Tm9kZShhKSx0LnNlbGVjdE5vZGVDb250ZW50cyhhKSxpLnJlbW92ZUFsbFJhbmdlcygpLGkuYWRkUmFuZ2UodCl9Y2F0Y2gobil7Y29uc29sZS5lcnJvcigiRmFpbGVkIHRvIGNyZWF0ZSBsaW5rOiIsbil9fXN0YXRpYyBnZXRTZWxlY3Rpb25Db29yZGluYXRlcyguLi50KXtsZXQgcj1ZZS5nZXRTZWxlY3Rpb25JbmZvKC4uLnQpO2lmKGNvbnNvbGUubG9nKCJnZXRTZWxlY3Rpb25Db29yZGluYXRlcyAtIHNlbGVjdGlvbkluZm86IixyKSwhcilyZXR1cm4gY29uc29sZS5sb2coIk5vIHNlbGVjdGlvbiBpbmZvIGF2YWlsYWJsZSIpLG51bGw7bGV0IGE9WWUuY3JlYXRlUmFuZ2VGcm9tSW5mbyhyKS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtpZihjb25zb2xlLmxvZygiUmFuZ2UgcmVjdDoiLGEpLGEud2lkdGg9PT0wJiZhLmhlaWdodD09PTApe2lmKGNvbnNvbGUubG9nKCJSZWN0IHdpZHRoIGFuZCBoZWlnaHQgYXJlIDAsIHRyeWluZyBkaWZmZXJlbnQgYXBwcm9hY2giKSwiY2FyZXRQb3NpdGlvbkZyb21Qb2ludCJpbiBkb2N1bWVudCl7bGV0IG89d2luZG93LmdldFNlbGVjdGlvbigpO2lmKG8mJm8ucmFuZ2VDb3VudD4wKXtsZXQgcz1vLmdldFJhbmdlQXQoMCksbD1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJzcGFuIik7bC50ZXh0Q29udGVudD0iXHUyMDBCIixzLmluc2VydE5vZGUobCk7bGV0IGM9bC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtpZihsLnJlbW92ZSgpLGMud2lkdGg+MHx8Yy5oZWlnaHQ+MCl7bGV0IHU9e3g6Yy5sZWZ0LHk6TWF0aC5tYXgoNDUsYy50b3AtNDUpfTtyZXR1cm4gY29uc29sZS5sb2coIlVzZWQgc3BhbiB0cmljayBmb3IgY29vcmRzOiIsdSksdX19fXJldHVybiBudWxsfWxldCBuPXt4OmEubGVmdCthLndpZHRoLzIseTpNYXRoLm1heCg0NSxhLnRvcC00NSl9O3JldHVybiBjb25zb2xlLmxvZygiUmV0dXJuaW5nIGNvb3JkczoiLG4pLG59fX0pO3ZhciB0RixaZCxyRixLNmU9cCgoKT0+e3hlKCk7eG8oKTtKNmUoKTtKZSgpO3RGPWZ1bmN0aW9uKGUsdCxyLGksYSxuKXtmdW5jdGlvbiBvKHkpe2lmKHkhPT12b2lkIDAmJnR5cGVvZiB5IT0iZnVuY3Rpb24iKXRocm93IG5ldyBUeXBlRXJyb3IoIkZ1bmN0aW9uIGV4cGVjdGVkIik7cmV0dXJuIHl9Zm9yKHZhciBzPWkua2luZCxsPXM9PT0iZ2V0dGVyIj8iZ2V0IjpzPT09InNldHRlciI/InNldCI6InZhbHVlIixjPSF0JiZlP2kuc3RhdGljP2U6ZS5wcm90b3R5cGU6bnVsbCx1PXR8fChjP09iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoYyxpLm5hbWUpOnt9KSxkLGg9ITEsZj1yLmxlbmd0aC0xO2Y+PTA7Zi0tKXt2YXIgeD17fTtmb3IodmFyIHYgaW4gaSl4W3ZdPXY9PT0iYWNjZXNzIj97fTppW3ZdO2Zvcih2YXIgdiBpbiBpLmFjY2Vzcyl4LmFjY2Vzc1t2XT1pLmFjY2Vzc1t2XTt4LmFkZEluaXRpYWxpemVyPWZ1bmN0aW9uKHkpe2lmKGgpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGFkZCBpbml0aWFsaXplcnMgYWZ0ZXIgZGVjb3JhdGlvbiBoYXMgY29tcGxldGVkIik7bi5wdXNoKG8oeXx8bnVsbCkpfTt2YXIgYj0oMCxyW2ZdKShzPT09ImFjY2Vzc29yIj97Z2V0OnUuZ2V0LHNldDp1LnNldH06dVtsXSx4KTtpZihzPT09ImFjY2Vzc29yIil7aWYoYj09PXZvaWQgMCljb250aW51ZTtpZihiPT09bnVsbHx8dHlwZW9mIGIhPSJvYmplY3QiKXRocm93IG5ldyBUeXBlRXJyb3IoIk9iamVjdCBleHBlY3RlZCIpOyhkPW8oYi5nZXQpKSYmKHUuZ2V0PWQpLChkPW8oYi5zZXQpKSYmKHUuc2V0PWQpLChkPW8oYi5pbml0KSkmJmEudW5zaGlmdChkKX1lbHNlKGQ9byhiKSkmJihzPT09ImZpZWxkIj9hLnVuc2hpZnQoZCk6dVtsXT1kKX1jJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoYyxpLm5hbWUsdSksaD0hMH0sWmQ9ZnVuY3Rpb24oZSx0LHIpe2Zvcih2YXIgaT1hcmd1bWVudHMubGVuZ3RoPjIsYT0wO2E8dC5sZW5ndGg7YSsrKXI9aT90W2FdLmNhbGwoZSxyKTp0W2FdLmNhbGwoZSk7cmV0dXJuIGk/cjp2b2lkIDB9LHJGPSgoKT0+e2xldCBlPVt5ZSgiZGVlcy1mb3JtYXR0aW5nLW1lbnUiKV0sdCxyPVtdLGksYT16ZSxuLG89W10scz1bXSxsLGM9W10sdT1bXSxkLGg9W10sZj1bXTt2YXIgeD1jbGFzcyBleHRlbmRzIGF7c3RhdGlje2k9dGhpc31zdGF0aWN7bGV0IHY9dHlwZW9mIFN5bWJvbD09ImZ1bmN0aW9uIiYmU3ltYm9sLm1ldGFkYXRhP09iamVjdC5jcmVhdGUoYVtTeW1ib2wubWV0YWRhdGFdPz9udWxsKTp2b2lkIDA7bj1bZmUoKV0sbD1bZmUoKV0sZD1bZmUoKV0sdEYodGhpcyxudWxsLG4se2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJ2aXNpYmxlIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpiPT4idmlzaWJsZSJpbiBiLGdldDpiPT5iLnZpc2libGUsc2V0OihiLHkpPT57Yi52aXNpYmxlPXl9fSxtZXRhZGF0YTp2fSxvLHMpLHRGKHRoaXMsbnVsbCxsLHtraW5kOiJhY2Nlc3NvciIsbmFtZToicG9zaXRpb24iLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmI9PiJwb3NpdGlvbiJpbiBiLGdldDpiPT5iLnBvc2l0aW9uLHNldDooYix5KT0+e2IucG9zaXRpb249eX19LG1ldGFkYXRhOnZ9LGMsdSksdEYodGhpcyxudWxsLGQse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJtZW51WkluZGV4IixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpiPT4ibWVudVpJbmRleCJpbiBiLGdldDpiPT5iLm1lbnVaSW5kZXgsc2V0OihiLHkpPT57Yi5tZW51WkluZGV4PXl9fSxtZXRhZGF0YTp2fSxoLGYpLHRGKG51bGwsdD17dmFsdWU6aX0sZSx7a2luZDoiY2xhc3MiLG5hbWU6aS5uYW1lLG1ldGFkYXRhOnZ9LG51bGwscikseD1pPXQudmFsdWUsdiYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGksU3ltYm9sLm1ldGFkYXRhLHtlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMCx2YWx1ZTp2fSl9c3RhdGljIGluc3RhbmNlO3N0YXRpYyBnZXRJbnN0YW5jZSgpe3JldHVybiB4Lmluc3RhbmNlfHwoeC5pbnN0YW5jZT1uZXcgeCxkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKHguaW5zdGFuY2UpKSx4Lmluc3RhbmNlfSNlPVpkKHRoaXMsbywhMSk7Z2V0IHZpc2libGUoKXtyZXR1cm4gdGhpcy4jZX1zZXQgdmlzaWJsZSh2KXt0aGlzLiNlPXZ9I3Q9KFpkKHRoaXMscyksWmQodGhpcyxjLHt4OjAseTowfSkpO2dldCBwb3NpdGlvbigpe3JldHVybiB0aGlzLiN0fXNldCBwb3NpdGlvbih2KXt0aGlzLiN0PXZ9I3I9KFpkKHRoaXMsdSksWmQodGhpcyxoLDFlMykpO2dldCBtZW51WkluZGV4KCl7cmV0dXJuIHRoaXMuI3J9c2V0IG1lbnVaSW5kZXgodil7dGhpcy4jcj12fWNhbGxiYWNrPShaZCh0aGlzLGYpLG51bGwpO3N0YXRpYyBzdHlsZXM9W0RlLG0uZGVmYXVsdFN0eWxlcyxvZWAKICAgICAgLyogVE9ETzogTWlncmF0ZSBoYXJkY29kZWQgdmFsdWVzIHRvIC0tZGVlcy0qIENTUyB2YXJpYWJsZXMgKi8KICAgICAgOmhvc3QgewogICAgICAgIHBvc2l0aW9uOiBmaXhlZDsKICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTsKICAgICAgICB0b3A6IDA7CiAgICAgICAgbGVmdDogMDsKICAgICAgICB3aWR0aDogMDsKICAgICAgICBoZWlnaHQ6IDA7CiAgICAgIH0KCiAgICAgIC5mb3JtYXR0aW5nLW1lbnUgewogICAgICAgIHBvc2l0aW9uOiBmaXhlZDsKICAgICAgICBiYWNrZ3JvdW5kOiAke20uYmRUaGVtZSgiI2ZmZmZmZiIsIiMyNjI2MjYiKX07CiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHttLmJkVGhlbWUoIiNlMGUwZTAiLCIjNDA0MDQwIil9OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDZweDsKICAgICAgICBib3gtc2hhZG93OiAwIDJweCAxNnB4IHJnYmEoMCwgMCwgMCwgMC4xNSk7CiAgICAgICAgcGFkZGluZzogNHB4OwogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgZ2FwOiAycHg7CiAgICAgICAgcG9pbnRlci1ldmVudHM6IGF1dG87CiAgICAgICAgdXNlci1zZWxlY3Q6IG5vbmU7CiAgICAgICAgYW5pbWF0aW9uOiBmYWRlSW5TY2FsZSAwLjE1cyBlYXNlLW91dDsKICAgICAgfQoKICAgICAgQGtleWZyYW1lcyBmYWRlSW5TY2FsZSB7CiAgICAgICAgZnJvbSB7CiAgICAgICAgICBvcGFjaXR5OiAwOwogICAgICAgICAgdHJhbnNmb3JtOiBzY2FsZSgwLjk1KSB0cmFuc2xhdGVZKDVweCk7CiAgICAgICAgfQogICAgICAgIHRvIHsKICAgICAgICAgIG9wYWNpdHk6IDE7CiAgICAgICAgICB0cmFuc2Zvcm06IHNjYWxlKDEpIHRyYW5zbGF0ZVkoMCk7CiAgICAgICAgfQogICAgICB9CgogICAgICAuZm9ybWF0LWJ1dHRvbiB7CiAgICAgICAgd2lkdGg6IDMycHg7CiAgICAgICAgaGVpZ2h0OiAzMnB4OwogICAgICAgIGJvcmRlcjogbm9uZTsKICAgICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDsKICAgICAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICAgICAgYm9yZGVyLXJhZGl1czogNHB4OwogICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjE1cyBlYXNlOwogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKICAgICAgICBjb2xvcjogJHttLmJkVGhlbWUoIiMwMDAwMDAiLCIjZTBlMGUwIil9OwogICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7CiAgICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgfQoKICAgICAgLmZvcm1hdC1idXR0b246aG92ZXIgewogICAgICAgIGJhY2tncm91bmQ6ICR7bS5iZFRoZW1lKCIjZjBmMGYwIiwiIzMzMzMzMyIpfTsKICAgICAgICBjb2xvcjogJHttLmJkVGhlbWUoIiMwMDY2Y2MiLCIjNGQ5NGZmIil9OwogICAgICB9CgogICAgICAuZm9ybWF0LWJ1dHRvbjphY3RpdmUgewogICAgICAgIHRyYW5zZm9ybTogc2NhbGUoMC45NSk7CiAgICAgIH0KCiAgICAgIC5mb3JtYXQtYnV0dG9uLmJvbGQgewogICAgICAgIGZvbnQtd2VpZ2h0OiA3MDA7CiAgICAgIH0KCiAgICAgIC5mb3JtYXQtYnV0dG9uLml0YWxpYyB7CiAgICAgICAgZm9udC1zdHlsZTogaXRhbGljOwogICAgICB9CgogICAgICAuZm9ybWF0LWJ1dHRvbi51bmRlcmxpbmUgewogICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lOwogICAgICB9CgogICAgICAuZm9ybWF0LWJ1dHRvbiAuY29kZS1pY29uIHsKICAgICAgICBmb250LWZhbWlseTogJ1NGIE1vbm8nLCAnTW9uYWNvJywgJ0luY29uc29sYXRhJywgJ0ZpcmEgQ29kZScsIG1vbm9zcGFjZTsKICAgICAgICBmb250LXNpemU6IDEycHg7CiAgICAgIH0KICAgIGBdO3JlbmRlcigpe3JldHVybiB0aGlzLnZpc2libGU/KHRoaXMuc3R5bGUuekluZGV4PXRoaXMubWVudVpJbmRleC50b1N0cmluZygpLENgCiAgICAgIDxkaXYgCiAgICAgICAgY2xhc3M9ImZvcm1hdHRpbmctbWVudSIgCiAgICAgICAgc3R5bGU9ImxlZnQ6ICR7dGhpcy5wb3NpdGlvbi54fXB4OyB0b3A6ICR7dGhpcy5wb3NpdGlvbi55fXB4OyIKICAgICAgICB0YWJpbmRleD0iLTEiCiAgICAgICAgZGF0YS1tZW51LXR5cGU9ImZvcm1hdHRpbmciCiAgICAgID4KICAgICAgICAke1NjLmZvcm1hdEJ1dHRvbnMubWFwKHY9PkNgCiAgICAgICAgICA8YnV0dG9uIAogICAgICAgICAgICBjbGFzcz0iZm9ybWF0LWJ1dHRvbiAke3YuY29tbWFuZH0iCiAgICAgICAgICAgIGRhdGEtY29tbWFuZD0iJHt2LmNvbW1hbmR9IgogICAgICAgICAgICB0aXRsZT0iJHt2LmxhYmVsfSR7di5zaG9ydGN1dD9gICgke3Yuc2hvcnRjdXR9KWA6IiJ9IgogICAgICAgICAgPgogICAgICAgICAgICA8c3BhbiBjbGFzcz0iJHt2LmNvbW1hbmQ9PT0iY29kZSI/ImNvZGUtaWNvbiI6IiJ9Ij4ke3YuaWNvbn08L3NwYW4+CiAgICAgICAgICA8L2J1dHRvbj4KICAgICAgICBgKX0KICAgICAgPC9kaXY+CiAgICBgKTpDYGB9YXBwbHlGb3JtYXQodil7dGhpcy5jYWxsYmFjayYmdGhpcy5jYWxsYmFjayh2KSx2PT09ImxpbmsiJiZ0aGlzLmhpZGUoKX1zaG93KHYsYil7Y29uc29sZS5sb2coIkZvcm1hdHRpbmdNZW51LnNob3cgY2FsbGVkOiIse3Bvc2l0aW9uOnYsdmlzaWJsZTp0aGlzLnZpc2libGV9KSx0aGlzLnBvc2l0aW9uPXYsdGhpcy5jYWxsYmFjaz1iLHRoaXMubWVudVpJbmRleD1Lci5nZXROZXh0WkluZGV4KCksS3IucmVnaXN0ZXIodGhpcyx0aGlzLm1lbnVaSW5kZXgpLHRoaXMuc3R5bGUuekluZGV4PXRoaXMubWVudVpJbmRleC50b1N0cmluZygpLHRoaXMudmlzaWJsZT0hMH1oaWRlKCl7dGhpcy52aXNpYmxlPSExLHRoaXMuY2FsbGJhY2s9bnVsbCxLci51bnJlZ2lzdGVyKHRoaXMpfXVwZGF0ZVBvc2l0aW9uKHYpe3RoaXMucG9zaXRpb249dn1maXJzdFVwZGF0ZWQoKXt0aGlzLnNoYWRvd1Jvb3Q/LmFkZEV2ZW50TGlzdGVuZXIoIm1vdXNlZG93biIsdj0+e2xldCBiPXRoaXMuc2hhZG93Um9vdD8ucXVlcnlTZWxlY3RvcigiLmZvcm1hdHRpbmctbWVudSIpO2ImJmIuY29udGFpbnModi50YXJnZXQpJiYodi5wcmV2ZW50RGVmYXVsdCgpLHYuc3RvcFByb3BhZ2F0aW9uKCkpfSksdGhpcy5zaGFkb3dSb290Py5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsdj0+e2xldCB5PXYudGFyZ2V0LmNsb3Nlc3QoIi5mb3JtYXQtYnV0dG9uIik7aWYoeSl7di5wcmV2ZW50RGVmYXVsdCgpLHYuc3RvcFByb3BhZ2F0aW9uKCk7bGV0IHc9eS5nZXRBdHRyaWJ1dGUoImRhdGEtY29tbWFuZCIpO3cmJnRoaXMuYXBwbHlGb3JtYXQodyl9fSksdGhpcy5zaGFkb3dSb290Py5hZGRFdmVudExpc3RlbmVyKCJmb2N1cyIsdj0+e2xldCBiPXRoaXMuc2hhZG93Um9vdD8ucXVlcnlTZWxlY3RvcigiLmZvcm1hdHRpbmctbWVudSIpO2ImJmIuY29udGFpbnModi50YXJnZXQpJiYodi5wcmV2ZW50RGVmYXVsdCgpLHYuc3RvcFByb3BhZ2F0aW9uKCkpfSwhMCl9c3RhdGlje1pkKGkscil9fTtyZXR1cm4geD1pfSkoKX0pO3ZhciBsaD1wKCgpPT57eGUoKTtDbigpO1E2ZSgpO0s2ZSgpfSk7dmFyIHhiLGlGPXAoKCk9Pnt4Yj1bIkphdmFTY3JpcHQiLCJUeXBlU2NyaXB0IiwiUHl0aG9uIiwiSmF2YSIsIkMrKyIsIkMjIiwiR28iLCJSdXN0IiwiSFRNTCIsIkNTUyIsIlNRTCIsIlNoZWxsIiwiSlNPTiIsIllBTUwiLCJNYXJrZG93biIsIlBsYWluIFRleHQiXX0pO3ZhciBlZGUsWTByPXAoKCk9Pnt4ZSgpO2VkZT1vZWAKICA6aG9zdCB7CiAgICBkaXNwbGF5OiBibG9jazsKICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICB9CgogIC53eXNpd3lnLWNvbnRhaW5lciB7CiAgICBiYWNrZ3JvdW5kOiAke20uYmRUaGVtZSgiI2ZmZmZmZiIsIiMwOTA5MGIiKX07CiAgICBib3JkZXI6IDFweCBzb2xpZCAke20uYmRUaGVtZSgiI2U1ZTdlYiIsIiMyNzI3MmEiKX07CiAgICBib3JkZXItcmFkaXVzOiA2cHg7CiAgICBtaW4taGVpZ2h0OiAyMDBweDsKICAgIHBhZGRpbmc6IDI0cHg7CiAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICB0cmFuc2l0aW9uOiBhbGwgMC4ycyBlYXNlOwogICAgY29sb3I6ICR7bS5iZFRoZW1lKCIjMDkwOTBiIiwiI2ZhZmFmYSIpfTsKICB9CgogIC53eXNpd3lnLWNvbnRhaW5lcjpob3ZlciB7CiAgICBib3JkZXItY29sb3I6ICR7bS5iZFRoZW1lKCIjZDFkNWRiIiwiIzNmM2Y0NiIpfTsKICB9CgogIC53eXNpd3lnLWNvbnRhaW5lcjpmb2N1cy13aXRoaW4gewogICAgb3V0bGluZTogMnB4IHNvbGlkIHRyYW5zcGFyZW50OwogICAgb3V0bGluZS1vZmZzZXQ6IDJweDsKICAgIGJveC1zaGFkb3c6IDAgMCAwIDJweCAke20uYmRUaGVtZSgiI2Y0ZjRmNSIsIiMxODE4MWIiKX0sIDAgMCAwIDRweCAke20uYmRUaGVtZSgicmdiYSg1OSwgMTMwLCAyNDYsIDAuNSkiLCJyZ2JhKDU5LCAxMzAsIDI0NiwgMC41KSIpfTsKICAgIGJvcmRlci1jb2xvcjogJHttLmJkVGhlbWUoIiMzYjgyZjYiLCIjM2I4MmY2Iil9OwogIH0KCiAgLyogVmlzdWFsIGhpbnQgZm9yIHRleHQgc2VsZWN0aW9uICovCiAgLmVkaXRvci1jb250ZW50OmhvdmVyIHsKICAgIGN1cnNvcjogdGV4dDsKICB9CgogIC5lZGl0b3ItY29udGVudCB7CiAgICBvdXRsaW5lOiBub25lOwogICAgbWluLWhlaWdodDogMTYwcHg7CiAgICBtYXJnaW46IDAgLThweDsKICAgIHBhZGRpbmc6IDAgOHB4OwogIH0KCiAgLmJsb2NrIHsKICAgIG1hcmdpbjogMDsKICAgIHBhZGRpbmc6IDRweCAwOwogICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgdHJhbnNpdGlvbjogYWxsIDAuMTVzIGVhc2U7CiAgICBtaW4taGVpZ2h0OiAxLjZlbTsKICAgIGNvbG9yOiAke20uYmRUaGVtZSgiIzA5MDkwYiIsIiNmYWZhZmEiKX07CiAgfQoKICAvKiBGaXJzdCBhbmQgbGFzdCBibG9ja3MgZG9uJ3QgbmVlZCBleHRyYSBzcGFjaW5nICovCiAgLmJsb2NrLXdyYXBwZXI6Zmlyc3QtY2hpbGQgLmJsb2NrIHsKICAgIG1hcmdpbi10b3A6IDAgIWltcG9ydGFudDsKICB9CgogIC5ibG9jay13cmFwcGVyOmxhc3QtY2hpbGQgLmJsb2NrIHsKICAgIG1hcmdpbi1ib3R0b206IDA7CiAgfQoKICAuYmxvY2suc2VsZWN0ZWQgewogICAgYmFja2dyb3VuZDogJHttLmJkVGhlbWUoInJnYmEoNTksIDEzMCwgMjQ2LCAwLjA1KSIsInJnYmEoNTksIDEzMCwgMjQ2LCAwLjA1KSIpfTsKICAgIG91dGxpbmU6IDJweCBzb2xpZCAke20uYmRUaGVtZSgicmdiYSg1OSwgMTMwLCAyNDYsIDAuMikiLCJyZ2JhKDU5LCAxMzAsIDI0NiwgMC4yKSIpfTsKICAgIG91dGxpbmUtb2Zmc2V0OiAtMnB4OwogICAgYm9yZGVyLXJhZGl1czogNHB4OwogICAgbWFyZ2luLWxlZnQ6IC04cHg7CiAgICBtYXJnaW4tcmlnaHQ6IC04cHg7CiAgICBwYWRkaW5nLWxlZnQ6IDhweDsKICAgIHBhZGRpbmctcmlnaHQ6IDhweDsKICB9CgogIC5ibG9ja1tjb250ZW50ZWRpdGFibGVdIHsKICAgIG91dGxpbmU6IG5vbmU7CiAgfQoKICAuYmxvY2sucGFyYWdyYXBoIHsKICAgIGZvbnQtc2l6ZTogMTZweDsKICAgIGxpbmUtaGVpZ2h0OiAxLjY7CiAgICBmb250LXdlaWdodDogNDAwOwogIH0KCiAgLmJsb2NrLnBhcmFncmFwaDplbXB0eTo6YmVmb3JlIHsKICAgIGNvbnRlbnQ6ICJUeXBlICcvJyBmb3IgY29tbWFuZHMuLi4iOwogICAgY29sb3I6ICR7bS5iZFRoZW1lKCIjNzE3MTdhIiwiIzcxNzE3YSIpfTsKICAgIHBvaW50ZXItZXZlbnRzOiBub25lOwogICAgZm9udC1zaXplOiAxNnB4OwogICAgbGluZS1oZWlnaHQ6IDEuNjsKICAgIGZvbnQtd2VpZ2h0OiA0MDA7CiAgfQoKICAuYmxvY2suaGVhZGluZy0xIHsKICAgIGZvbnQtc2l6ZTogMzJweDsKICAgIGZvbnQtd2VpZ2h0OiA3MDA7CiAgICBsaW5lLWhlaWdodDogMS4yOwogICAgY29sb3I6ICR7bS5iZFRoZW1lKCIjMDkwOTBiIiwiI2ZhZmFmYSIpfTsKICB9CgogIC5ibG9jay5oZWFkaW5nLTE6ZW1wdHk6OmJlZm9yZSB7CiAgICBjb250ZW50OiAiSGVhZGluZyAxIjsKICAgIGNvbG9yOiAke20uYmRUaGVtZSgiIzcxNzE3YSIsIiM3MTcxN2EiKX07CiAgICBwb2ludGVyLWV2ZW50czogbm9uZTsKICAgIGZvbnQtc2l6ZTogMzJweDsKICAgIGxpbmUtaGVpZ2h0OiAxLjI7CiAgICBmb250LXdlaWdodDogNzAwOwogIH0KCiAgLmJsb2NrLmhlYWRpbmctMiB7CiAgICBmb250LXNpemU6IDI0cHg7CiAgICBmb250LXdlaWdodDogNjAwOwogICAgbGluZS1oZWlnaHQ6IDEuMzsKICAgIGNvbG9yOiAke20uYmRUaGVtZSgiIzA5MDkwYiIsIiNmYWZhZmEiKX07CiAgfQoKICAuYmxvY2suaGVhZGluZy0yOmVtcHR5OjpiZWZvcmUgewogICAgY29udGVudDogIkhlYWRpbmcgMiI7CiAgICBjb2xvcjogJHttLmJkVGhlbWUoIiM3MTcxN2EiLCIjNzE3MTdhIil9OwogICAgcG9pbnRlci1ldmVudHM6IG5vbmU7CiAgICBmb250LXNpemU6IDI0cHg7CiAgICBsaW5lLWhlaWdodDogMS4zOwogICAgZm9udC13ZWlnaHQ6IDYwMDsKICB9CgogIC5ibG9jay5oZWFkaW5nLTMgewogICAgZm9udC1zaXplOiAyMHB4OwogICAgZm9udC13ZWlnaHQ6IDYwMDsKICAgIGxpbmUtaGVpZ2h0OiAxLjQ7CiAgICBjb2xvcjogJHttLmJkVGhlbWUoIiMwOTA5MGIiLCIjZmFmYWZhIil9OwogIH0KCiAgLmJsb2NrLmhlYWRpbmctMzplbXB0eTo6YmVmb3JlIHsKICAgIGNvbnRlbnQ6ICJIZWFkaW5nIDMiOwogICAgY29sb3I6ICR7bS5iZFRoZW1lKCIjNzE3MTdhIiwiIzcxNzE3YSIpfTsKICAgIHBvaW50ZXItZXZlbnRzOiBub25lOwogICAgZm9udC1zaXplOiAyMHB4OwogICAgbGluZS1oZWlnaHQ6IDEuNDsKICAgIGZvbnQtd2VpZ2h0OiA2MDA7CiAgfQoKICAuYmxvY2sucXVvdGUgewogICAgYm9yZGVyLWxlZnQ6IDJweCBzb2xpZCAke20uYmRUaGVtZSgiI2U1ZTdlYiIsIiMyNzI3MmEiKX07CiAgICBwYWRkaW5nLWxlZnQ6IDIwcHg7CiAgICBmb250LXN0eWxlOiBpdGFsaWM7CiAgICBjb2xvcjogJHttLmJkVGhlbWUoIiM3MTcxN2EiLCIjYTFhMWFhIil9OwogICAgbWFyZ2luLWxlZnQ6IDA7CiAgICBtYXJnaW4tcmlnaHQ6IDA7CiAgICBsaW5lLWhlaWdodDogMS42OwogIH0KCiAgLmJsb2NrLnF1b3RlOmVtcHR5OjpiZWZvcmUgewogICAgY29udGVudDogIlF1b3RlIjsKICAgIGNvbG9yOiAke20uYmRUaGVtZSgiIzcxNzE3YSIsIiM3MTcxN2EiKX07CiAgICBwb2ludGVyLWV2ZW50czogbm9uZTsKICAgIGZvbnQtc2l6ZTogMTZweDsKICAgIGxpbmUtaGVpZ2h0OiAxLjY7CiAgICBmb250LXdlaWdodDogNDAwOwogICAgZm9udC1zdHlsZTogaXRhbGljOwogIH0KCiAgLmNvZGUtYmxvY2stY29udGFpbmVyIHsKICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgIG1hcmdpbjogMjBweCAwOwogIH0KCiAgLmNvZGUtbGFuZ3VhZ2UgewogICAgcG9zaXRpb246IGFic29sdXRlOwogICAgdG9wOiAwOwogICAgcmlnaHQ6IDA7CiAgICBiYWNrZ3JvdW5kOiAke20uYmRUaGVtZSgiI2Y0ZjRmNSIsIiMyNzI3MmEiKX07CiAgICBjb2xvcjogJHttLmJkVGhlbWUoIiM3MTcxN2EiLCIjYTFhMWFhIil9OwogICAgcGFkZGluZzogNHB4IDEycHg7CiAgICBmb250LXNpemU6IDEycHg7CiAgICBib3JkZXItcmFkaXVzOiAwIDRweCAwIDRweDsKICAgIGZvbnQtZmFtaWx5OiAtYXBwbGUtc3lzdGVtLCBCbGlua01hY1N5c3RlbUZvbnQsICdTZWdvZSBVSScsIFJvYm90bywgc2Fucy1zZXJpZjsKICAgIHRleHQtdHJhbnNmb3JtOiBsb3dlcmNhc2U7CiAgICB6LWluZGV4OiAxOwogIH0KCiAgLmJsb2NrLmNvZGUgewogICAgYmFja2dyb3VuZDogJHttLmJkVGhlbWUoIiNmNGY0ZjUiLCIjMTgxODFiIil9OwogICAgYm9yZGVyOiAxcHggc29saWQgJHttLmJkVGhlbWUoIiNlNWU3ZWIiLCIjMjcyNzJhIil9OwogICAgYm9yZGVyLXJhZGl1czogNHB4OwogICAgcGFkZGluZzogMTZweDsKICAgIHBhZGRpbmctdG9wOiAzMnB4OyAvKiBNYWtlIHJvb20gZm9yIGxhbmd1YWdlIGluZGljYXRvciAqLwogICAgZm9udC1mYW1pbHk6ICdTRiBNb25vJywgJ01vbmFjbycsICdJbmNvbnNvbGF0YScsICdGaXJhIENvZGUnLCBtb25vc3BhY2U7CiAgICBmb250LXNpemU6IDE0cHg7CiAgICBsaW5lLWhlaWdodDogMS41OwogICAgd2hpdGUtc3BhY2U6IHByZS13cmFwOwogICAgY29sb3I6ICR7bS5iZFRoZW1lKCIjMDkwOTBiIiwiI2ZhZmFmYSIpfTsKICAgIG92ZXJmbG93LXg6IGF1dG87CiAgfQoKICAuYmxvY2suY29kZTplbXB0eTo6YmVmb3JlIHsKICAgIGNvbnRlbnQ6ICIvLyBDb2RlIGJsb2NrIjsKICAgIGNvbG9yOiAke20uYmRUaGVtZSgiIzcxNzE3YSIsIiM3MTcxN2EiKX07CiAgICBwb2ludGVyLWV2ZW50czogbm9uZTsKICAgIGZvbnQtZmFtaWx5OiAnU0YgTW9ubycsICdNb25hY28nLCAnSW5jb25zb2xhdGEnLCAnRmlyYSBDb2RlJywgbW9ub3NwYWNlOwogICAgZm9udC1zaXplOiAxNHB4OwogICAgbGluZS1oZWlnaHQ6IDEuNjsKICAgIGZvbnQtd2VpZ2h0OiA0MDA7CiAgfQoKICAuYmxvY2subGlzdCB7CiAgICBwYWRkaW5nLWxlZnQ6IDA7CiAgfQoKICAuYmxvY2subGlzdCB1bCwKICAuYmxvY2subGlzdCBvbCB7CiAgICBtYXJnaW46IDA7CiAgICBwYWRkaW5nOiAwIDAgMCAyNHB4OwogICAgbGlzdC1zdHlsZS1wb3NpdGlvbjogb3V0c2lkZTsKICB9CgogIC5ibG9jay5saXN0IHVsIHsKICAgIGxpc3Qtc3R5bGU6IGRpc2M7CiAgfQoKICAuYmxvY2subGlzdCBvbCB7CiAgICBsaXN0LXN0eWxlOiBkZWNpbWFsOwogIH0KCiAgLmJsb2NrLmxpc3QgbGkgewogICAgbWFyZ2luLWJvdHRvbTogOHB4OwogICAgbGluZS1oZWlnaHQ6IDEuNjsKICB9CgogIC5ibG9jay5saXN0IGxpOmxhc3QtY2hpbGQgewogICAgbWFyZ2luLWJvdHRvbTogMDsKICB9CgogIC5ibG9jay5kaXZpZGVyIHsKICAgIHRleHQtYWxpZ246IGNlbnRlcjsKICAgIHBhZGRpbmc6IDIwcHggMDsKICAgIGN1cnNvcjogZGVmYXVsdDsKICAgIHBvaW50ZXItZXZlbnRzOiBub25lOwogIH0KCiAgLmJsb2NrLmRpdmlkZXIgaHIgewogICAgYm9yZGVyOiBub25lOwogICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICR7bS5iZFRoZW1lKCIjZTVlN2ViIiwiIzI3MjcyYSIpfTsKICAgIG1hcmdpbjogMDsKICB9CgogIC5zbGFzaC1tZW51IHsKICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgIGJhY2tncm91bmQ6ICR7bS5iZFRoZW1lKCIjZmZmZmZmIiwiIzA5MDkwYiIpfTsKICAgIGJvcmRlcjogMXB4IHNvbGlkICR7bS5iZFRoZW1lKCIjZTVlN2ViIiwiIzI3MjcyYSIpfTsKICAgIGJvcmRlci1yYWRpdXM6IDRweDsKICAgIGJveC1zaGFkb3c6IDAgMXB4IDNweCByZ2JhKDAsIDAsIDAsIDAuMSksIDAgMXB4IDJweCByZ2JhKDAsIDAsIDAsIDAuMDYpOwogICAgcGFkZGluZzogNHB4OwogICAgei1pbmRleDogMTAwMDsKICAgIG1pbi13aWR0aDogMjIwcHg7CiAgICBtYXgtaGVpZ2h0OiAzMDBweDsKICAgIG92ZXJmbG93LXk6IGF1dG87CiAgICBwb2ludGVyLWV2ZW50czogYXV0bzsKICAgIHVzZXItc2VsZWN0OiBub25lOwogIH0KCiAgLnNsYXNoLW1lbnUtaXRlbSB7CiAgICBwYWRkaW5nOiA4cHggMTBweDsKICAgIGN1cnNvcjogcG9pbnRlcjsKICAgIHRyYW5zaXRpb246IGFsbCAwLjE1cyBlYXNlOwogICAgZGlzcGxheTogZmxleDsKICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICBnYXA6IDEycHg7CiAgICBib3JkZXItcmFkaXVzOiAzcHg7CiAgICBjb2xvcjogJHttLmJkVGhlbWUoIiMwOTA5MGIiLCIjZmFmYWZhIil9OwogICAgZm9udC1zaXplOiAxNHB4OwogIH0KCiAgLnNsYXNoLW1lbnUtaXRlbTpob3ZlciwKICAuc2xhc2gtbWVudS1pdGVtLnNlbGVjdGVkIHsKICAgIGJhY2tncm91bmQ6ICR7bS5iZFRoZW1lKCIjZjRmNGY1IiwiIzI3MjcyYSIpfTsKICAgIGNvbG9yOiAke20uYmRUaGVtZSgiIzA5MDkwYiIsIiNmYWZhZmEiKX07CiAgfQoKICAuc2xhc2gtbWVudS1pdGVtIC5pY29uIHsKICAgIHdpZHRoOiAyNHB4OwogICAgaGVpZ2h0OiAyNHB4OwogICAgZGlzcGxheTogZmxleDsKICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKICAgIGZvbnQtc2l6ZTogMTZweDsKICAgIGNvbG9yOiAke20uYmRUaGVtZSgiIzcxNzE3YSIsIiNhMWExYWEiKX07CiAgICBmb250LXdlaWdodDogNjAwOwogIH0KCiAgLnNsYXNoLW1lbnUtaXRlbTpob3ZlciAuaWNvbiwKICAuc2xhc2gtbWVudS1pdGVtLnNlbGVjdGVkIC5pY29uIHsKICAgIGNvbG9yOiAke20uYmRUaGVtZSgiIzNiODJmNiIsIiMzYjgyZjYiKX07CiAgfQoKICAudG9vbGJhciB7CiAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICB0b3A6IC00MHB4OwogICAgbGVmdDogMDsKICAgIGJhY2tncm91bmQ6ICR7bS5iZFRoZW1lKCIjZmZmZmZmIiwiIzA5MDkwYiIpfTsKICAgIGJvcmRlcjogMXB4IHNvbGlkICR7bS5iZFRoZW1lKCIjZTVlN2ViIiwiIzI3MjcyYSIpfTsKICAgIGJvcmRlci1yYWRpdXM6IDRweDsKICAgIGJveC1zaGFkb3c6IDAgMXB4IDNweCByZ2JhKDAsIDAsIDAsIDAuMSksIDAgMXB4IDJweCByZ2JhKDAsIDAsIDAsIDAuMDYpOwogICAgcGFkZGluZzogNHB4OwogICAgZGlzcGxheTogbm9uZTsKICAgIGdhcDogNHB4OwogICAgei1pbmRleDogMTAwMDsKICB9CgogIC50b29sYmFyLnZpc2libGUgewogICAgZGlzcGxheTogZmxleDsKICB9CgogIC50b29sYmFyLWJ1dHRvbiB7CiAgICB3aWR0aDogMzJweDsKICAgIGhlaWdodDogMzJweDsKICAgIGJvcmRlcjogbm9uZTsKICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50OwogICAgY3Vyc29yOiBwb2ludGVyOwogICAgYm9yZGVyLXJhZGl1czogM3B4OwogICAgdHJhbnNpdGlvbjogYWxsIDAuMTVzIGVhc2U7CiAgICBkaXNwbGF5OiBmbGV4OwogICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOwogICAgY29sb3I6ICR7bS5iZFRoZW1lKCIjMDkwOTBiIiwiI2ZhZmFmYSIpfTsKICB9CgogIC50b29sYmFyLWJ1dHRvbjpob3ZlciB7CiAgICBiYWNrZ3JvdW5kOiAke20uYmRUaGVtZSgiI2Y0ZjRmNSIsIiMyNzI3MmEiKX07CiAgICBjb2xvcjogJHttLmJkVGhlbWUoIiMzYjgyZjYiLCIjM2I4MmY2Iil9OwogIH0KCiAgLyogRHJhZyBhbmQgRHJvcCBTdHlsZXMgKi8KICAuYmxvY2std3JhcHBlciB7CiAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMC4zcyBlYXNlLCBvcGFjaXR5IDAuMnMgZWFzZTsKICB9CgogIC8qIEVuc3VyZSBwcm9wZXIgc3BhY2luZyBjb250ZXh0IGZvciBibG9ja3MgKi8KICAuYmxvY2std3JhcHBlciArIC5ibG9jay13cmFwcGVyIC5ibG9jayB7CiAgICBtYXJnaW4tdG9wOiAxNnB4OwogIH0KCiAgLyogT3ZlcnJpZGUgZm9yIGhlYWRpbmdzIGZvbGxvd2luZyBvdGhlciBibG9ja3MgKi8KICAuYmxvY2std3JhcHBlciArIC5ibG9jay13cmFwcGVyIC5ibG9jay5oZWFkaW5nLTEsCiAgLmJsb2NrLXdyYXBwZXIgKyAuYmxvY2std3JhcHBlciAuYmxvY2suaGVhZGluZy0yLAogIC5ibG9jay13cmFwcGVyICsgLmJsb2NrLXdyYXBwZXIgLmJsb2NrLmhlYWRpbmctMyB7CiAgICBtYXJnaW4tdG9wOiAyNHB4OwogIH0KCiAgLyogQ29kZSBhbmQgcXVvdGUgYmxvY2tzIG5lZWQgY29uc2lzdGVudCBzcGFjaW5nICovCiAgLmJsb2NrLXdyYXBwZXIgKyAuYmxvY2std3JhcHBlciAuYmxvY2suY29kZSwKICAuYmxvY2std3JhcHBlciArIC5ibG9jay13cmFwcGVyIC5ibG9jay5xdW90ZSB7CiAgICBtYXJnaW4tdG9wOiAyMHB4OwogIH0KCiAgLmRyYWctaGFuZGxlIHsKICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgIGxlZnQ6IC0yOHB4OwogICAgdG9wOiA1MCU7CiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSk7CiAgICB3aWR0aDogMjRweDsKICAgIGhlaWdodDogMjRweDsKICAgIGN1cnNvcjogZ3JhYjsKICAgIG9wYWNpdHk6IDA7CiAgICB0cmFuc2l0aW9uOiBvcGFjaXR5IDAuMnMgZWFzZTsKICAgIGRpc3BsYXk6IGZsZXg7CiAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7CiAgICBjb2xvcjogJHttLmJkVGhlbWUoIiM3MTcxN2EiLCIjNzE3MTdhIil9OwogICAgYm9yZGVyLXJhZGl1czogNHB4OwogIH0KCiAgLmRyYWctaGFuZGxlOjpiZWZvcmUgewogICAgY29udGVudDogIuKLruKLriI7CiAgICBmb250LXNpemU6IDEycHg7CiAgICBsZXR0ZXItc3BhY2luZzogLTJweDsKICB9CgogIC5ibG9jay13cmFwcGVyOmhvdmVyIC5kcmFnLWhhbmRsZSB7CiAgICBvcGFjaXR5OiAxOwogIH0KCiAgLmRyYWctaGFuZGxlOmhvdmVyIHsKICAgIGNvbG9yOiAke20uYmRUaGVtZSgiIzcxNzE3YSIsIiNhMWExYWEiKX07CiAgICBiYWNrZ3JvdW5kOiAke20uYmRUaGVtZSgiI2Y0ZjRmNSIsIiMyNzI3MmEiKX07CiAgfQoKICAuZHJhZy1oYW5kbGU6YWN0aXZlIHsKICAgIGN1cnNvcjogZ3JhYmJpbmc7CiAgICBiYWNrZ3JvdW5kOiAke20uYmRUaGVtZSgiI2U1ZTdlYiIsIiMzZjNmNDYiKX07CiAgfQoKICAuYmxvY2std3JhcHBlci5kcmFnZ2luZyB7CiAgICBvcGFjaXR5OiAwLjg7CiAgICBwb2ludGVyLWV2ZW50czogbm9uZTsKICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgIHotaW5kZXg6IDIwMDE7CiAgICB0cmFuc2l0aW9uOiBub25lICFpbXBvcnRhbnQ7CiAgfQoKCiAgLyogQmxvY2tzIHRoYXQgc2hvdWxkIG1vdmUgb3V0IG9mIHRoZSB3YXkgKi8KICAuYmxvY2std3JhcHBlci5tb3ZlLWRvd24gewogICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKHZhcigtLWRyYWctb2Zmc2V0LCAwcHgpKTsKICB9CgogIC5ibG9jay13cmFwcGVyLm1vdmUtdXAgewogICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKGNhbGMoLTEgKiB2YXIoLS1kcmFnLW9mZnNldCwgMHB4KSkpOwogIH0KCiAgLyogRHJvcCBpbmRpY2F0b3IgKi8KICAuZHJvcC1pbmRpY2F0b3IgewogICAgcG9zaXRpb246IGFic29sdXRlOwogICAgbGVmdDogMDsKICAgIHJpZ2h0OiAwOwogICAgYmFja2dyb3VuZDogJHttLmJkVGhlbWUoInJnYmEoNTksIDEzMCwgMjQ2LCAwLjA1KSIsInJnYmEoNTksIDEzMCwgMjQ2LCAwLjA1KSIpfTsKICAgIGJvcmRlcjogMnB4IGRhc2hlZCAke20uYmRUaGVtZSgiIzNiODJmNiIsIiMzYjgyZjYiKX07CiAgICBib3JkZXItcmFkaXVzOiA0cHg7CiAgICB0cmFuc2l0aW9uOiB0b3AgMC4ycyBlYXNlLCBoZWlnaHQgMC4ycyBlYXNlOwogICAgcG9pbnRlci1ldmVudHM6IG5vbmU7CiAgICB6LWluZGV4OiAxOTk5OwogICAgYm94LXNpemluZzogYm9yZGVyLWJveDsKICB9CgogIC8qIFJlbW92ZSBvbGQgZHJhZy1vdmVyIHN0eWxlcyAqLwogIC5ibG9jay13cmFwcGVyLmRyYWctb3Zlci1iZWZvcmUsCiAgLmJsb2NrLXdyYXBwZXIuZHJhZy1vdmVyLWFmdGVyIHsKICAgIC8qIE5vIGxvbmdlciBuZWVkZWQsIHVzaW5nIGRyb3AgaW5kaWNhdG9yIGluc3RlYWQgKi8KICB9CgogIC5lZGl0b3ItY29udGVudC5kcmFnZ2luZyAqIHsKICAgIHVzZXItc2VsZWN0OiBub25lOwogIH0KCiAgLyogQmxvY2sgU2V0dGluZ3MgQnV0dG9uIC0gUmVtb3ZlZCBpbiBmYXZvciBvZiBjb250ZXh0IG1lbnUgKi8KCiAgLyogVGV4dCBTZWxlY3Rpb24gU3R5bGVzICovCiAgLmJsb2NrIDo6c2VsZWN0aW9uIHsKICAgIGJhY2tncm91bmQ6ICR7bS5iZFRoZW1lKCJyZ2JhKDU5LCAxMzAsIDI0NiwgMC4yKSIsInJnYmEoNTksIDEzMCwgMjQ2LCAwLjIpIil9OwogICAgY29sb3I6IGluaGVyaXQ7CiAgfQoKICAvKiBGb3JtYXR0aW5nIE1lbnUgKi8KICAuZm9ybWF0dGluZy1tZW51IHsKICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgIGJhY2tncm91bmQ6ICR7bS5iZFRoZW1lKCIjZmZmZmZmIiwiIzA5MDkwYiIpfTsKICAgIGJvcmRlcjogMXB4IHNvbGlkICR7bS5iZFRoZW1lKCIjZTVlN2ViIiwiIzI3MjcyYSIpfTsKICAgIGJvcmRlci1yYWRpdXM6IDRweDsKICAgIGJveC1zaGFkb3c6IDAgMXB4IDNweCByZ2JhKDAsIDAsIDAsIDAuMSksIDAgMXB4IDJweCByZ2JhKDAsIDAsIDAsIDAuMDYpOwogICAgcGFkZGluZzogNHB4OwogICAgZGlzcGxheTogZmxleDsKICAgIGdhcDogMnB4OwogICAgei1pbmRleDogMTAwMTsKICAgIGFuaW1hdGlvbjogZmFkZUluU2NhbGUgMC4xNXMgZWFzZS1vdXQ7CiAgfQoKICBAa2V5ZnJhbWVzIGZhZGVJblNjYWxlIHsKICAgIGZyb20gewogICAgICBvcGFjaXR5OiAwOwogICAgICB0cmFuc2Zvcm06IHNjYWxlKDAuOTgpIHRyYW5zbGF0ZVkoMnB4KTsKICAgIH0KICAgIHRvIHsKICAgICAgb3BhY2l0eTogMTsKICAgICAgdHJhbnNmb3JtOiBzY2FsZSgxKSB0cmFuc2xhdGVZKDApOwogICAgfQogIH0KCiAgLmZvcm1hdC1idXR0b24gewogICAgd2lkdGg6IDMycHg7CiAgICBoZWlnaHQ6IDMycHg7CiAgICBib3JkZXI6IG5vbmU7CiAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDsKICAgIGN1cnNvcjogcG9pbnRlcjsKICAgIGJvcmRlci1yYWRpdXM6IDNweDsKICAgIHRyYW5zaXRpb246IGFsbCAwLjE1cyBlYXNlOwogICAgZGlzcGxheTogZmxleDsKICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKICAgIGNvbG9yOiAke20uYmRUaGVtZSgiIzA5MDkwYiIsIiNmYWZhZmEiKX07CiAgICBmb250LXdlaWdodDogNjAwOwogICAgZm9udC1zaXplOiAxNHB4OwogICAgcG9zaXRpb246IHJlbGF0aXZlOwogIH0KCiAgLmZvcm1hdC1idXR0b246aG92ZXIgewogICAgYmFja2dyb3VuZDogJHttLmJkVGhlbWUoIiNmNGY0ZjUiLCIjMjcyNzJhIil9OwogICAgY29sb3I6ICR7bS5iZFRoZW1lKCIjM2I4MmY2IiwiIzNiODJmNiIpfTsKICB9CgogIC5mb3JtYXQtYnV0dG9uOmFjdGl2ZSB7CiAgICB0cmFuc2Zvcm06IHNjYWxlKDAuOTUpOwogIH0KCiAgLmZvcm1hdC1idXR0b24uYm9sZCB7CiAgICBmb250LXdlaWdodDogNzAwOwogIH0KCiAgLmZvcm1hdC1idXR0b24uaXRhbGljIHsKICAgIGZvbnQtc3R5bGU6IGl0YWxpYzsKICB9CgogIC5mb3JtYXQtYnV0dG9uLnVuZGVybGluZSB7CiAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTsKICB9CgogIC5mb3JtYXQtYnV0dG9uIC5jb2RlLWljb24gewogICAgZm9udC1mYW1pbHk6ICdTRiBNb25vJywgJ01vbmFjbycsICdJbmNvbnNvbGF0YScsICdGaXJhIENvZGUnLCBtb25vc3BhY2U7CiAgICBmb250LXNpemU6IDEycHg7CiAgfQoKICAvKiBBcHBsaWVkIGZvcm1hdCBzdHlsZXMgaW4gY29udGVudCAqLwogIC5ibG9jayBzdHJvbmcsCiAgLmJsb2NrIGIgewogICAgZm9udC13ZWlnaHQ6IDYwMDsKICAgIGNvbG9yOiAke20uYmRUaGVtZSgiIzA5MDkwYiIsIiNmYWZhZmEiKX07CiAgfQoKICAuYmxvY2sgZW0sCiAgLmJsb2NrIGkgewogICAgZm9udC1zdHlsZTogaXRhbGljOwogIH0KCiAgLmJsb2NrIHUgewogICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7CiAgfQoKICAuYmxvY2sgc3RyaWtlLAogIC5ibG9jayBzIHsKICAgIHRleHQtZGVjb3JhdGlvbjogbGluZS10aHJvdWdoOwogICAgb3BhY2l0eTogMC43OwogIH0KCiAgLmJsb2NrIGNvZGUgewogICAgYmFja2dyb3VuZDogJHttLmJkVGhlbWUoIiNmNGY0ZjUiLCIjMjcyNzJhIil9OwogICAgcGFkZGluZzogMnB4IDZweDsKICAgIGJvcmRlci1yYWRpdXM6IDNweDsKICAgIGZvbnQtZmFtaWx5OiAnU0YgTW9ubycsICdNb25hY28nLCAnSW5jb25zb2xhdGEnLCAnRmlyYSBDb2RlJywgbW9ub3NwYWNlOwogICAgZm9udC1zaXplOiAwLjllbTsKICAgIGNvbG9yOiAke20uYmRUaGVtZSgiIzA5MDkwYiIsIiNmYWZhZmEiKX07CiAgfQoKICAuYmxvY2sgYSB7CiAgICBjb2xvcjogJHttLmJkVGhlbWUoIiMzYjgyZjYiLCIjM2I4MmY2Iil9OwogICAgdGV4dC1kZWNvcmF0aW9uOiBub25lOwogICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIHRyYW5zcGFyZW50OwogICAgdHJhbnNpdGlvbjogYm9yZGVyLWNvbG9yIDAuMTVzIGVhc2U7CiAgfQoKICAuYmxvY2sgYTpob3ZlciB7CiAgICBib3JkZXItYm90dG9tLWNvbG9yOiAke20uYmRUaGVtZSgiIzNiODJmNiIsIiMzYjgyZjYiKX07CiAgfQpgfSk7dmFyIFJvLHRkZT1wKCgpPT57Q24oKTtSbz1jbGFzc3tzdGF0aWMgZXNjYXBlSHRtbCh0KXtsZXQgcj1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTtyZXR1cm4gci50ZXh0Q29udGVudD10LHIuaW5uZXJIVE1MfXN0YXRpYyBmb3JtYXRGaWxlU2l6ZSh0KXtpZih0PT09MClyZXR1cm4iMCBCeXRlcyI7bGV0IHI9MTAyNCxpPVsiQnl0ZXMiLCJLQiIsIk1CIiwiR0IiXSxhPU1hdGguZmxvb3IoTWF0aC5sb2codCkvTWF0aC5sb2cocikpO3JldHVybiBwYXJzZUZsb2F0KCh0L01hdGgucG93KHIsYSkpLnRvRml4ZWQoMikpKyIgIitpW2FdfXN0YXRpYyBnZXRIdG1sT3V0cHV0KHQpe3JldHVybiB0Lm1hcChyPT57bGV0IGk9ci5jb250ZW50LmluY2x1ZGVzKCI8IikmJnIuY29udGVudC5pbmNsdWRlcygiPiIpP3IuY29udGVudDp0aGlzLmVzY2FwZUh0bWwoci5jb250ZW50KTtzd2l0Y2goci50eXBlKXtjYXNlInBhcmFncmFwaCI6cmV0dXJuIHIuY29udGVudD9gPHA+JHtpfTwvcD5gOiIiO2Nhc2UiaGVhZGluZy0xIjpyZXR1cm5gPGgxPiR7aX08L2gxPmA7Y2FzZSJoZWFkaW5nLTIiOnJldHVybmA8aDI+JHtpfTwvaDI+YDtjYXNlImhlYWRpbmctMyI6cmV0dXJuYDxoMz4ke2l9PC9oMz5gO2Nhc2UicXVvdGUiOnJldHVybmA8YmxvY2txdW90ZT4ke2l9PC9ibG9ja3F1b3RlPmA7Y2FzZSJjb2RlIjpyZXR1cm5gPHByZT48Y29kZT4ke3RoaXMuZXNjYXBlSHRtbChyLmNvbnRlbnQpfTwvY29kZT48L3ByZT5gO2Nhc2UibGlzdCI6bGV0IGE9ci5jb250ZW50LnNwbGl0KGAKYCkuZmlsdGVyKGw9PmwudHJpbSgpKTtpZihhLmxlbmd0aD4wKXtsZXQgbD1yLm1ldGFkYXRhPy5saXN0VHlwZT09PSJvcmRlcmVkIj8ib2wiOiJ1bCI7cmV0dXJuYDwke2x9PiR7YS5tYXAoYz0+YDxsaT4ke2N9PC9saT5gKS5qb2luKCIiKX08LyR7bH0+YH1yZXR1cm4iIjtjYXNlImRpdmlkZXIiOnJldHVybiI8aHI+IjtjYXNlImltYWdlIjpsZXQgbj1yLm1ldGFkYXRhPy51cmw7aWYobil7bGV0IGw9dGhpcy5lc2NhcGVIdG1sKHIuY29udGVudHx8IkltYWdlIik7cmV0dXJuYDxpbWcgc3JjPSIke259IiBhbHQ9IiR7bH0iIC8+YH1yZXR1cm4iIjtjYXNlInlvdXR1YmUiOmxldCBvPXIubWV0YWRhdGE/LnZpZGVvSWQ7cmV0dXJuIG8/YDxpZnJhbWUgd2lkdGg9IjU2MCIgaGVpZ2h0PSIzMTUiIHNyYz0iaHR0cHM6Ly93d3cueW91dHViZS5jb20vZW1iZWQvJHtvfSIgZnJhbWVib3JkZXI9IjAiIGFsbG93PSJhY2NlbGVyb21ldGVyOyBhdXRvcGxheTsgY2xpcGJvYXJkLXdyaXRlOyBlbmNyeXB0ZWQtbWVkaWE7IGd5cm9zY29wZTsgcGljdHVyZS1pbi1waWN0dXJlIiBhbGxvd2Z1bGxzY3JlZW4+PC9pZnJhbWU+YDoiIjtjYXNlIm1hcmtkb3duIjpyZXR1cm5gPGRpdiBjbGFzcz0ibWFya2Rvd24tY29udGVudCI+JHt0aGlzLmVzY2FwZUh0bWwoci5jb250ZW50KX08L2Rpdj5gO2Nhc2UiaHRtbCI6cmV0dXJuIHIuY29udGVudDtjYXNlImF0dGFjaG1lbnQiOmxldCBzPXIubWV0YWRhdGE/LmZpbGVzfHxbXTtyZXR1cm4gcy5sZW5ndGg+MD9gPGRpdiBjbGFzcz0iYXR0YWNobWVudHMiPiR7cy5tYXAobD0+YDxkaXYgY2xhc3M9ImF0dGFjaG1lbnQtaXRlbSIgZGF0YS1maWxlLWlkPSIke2wuaWR9Ij4KICAgICAgICAgICAgICAgIDxhIGhyZWY9IiR7bC5kYXRhfSIgZG93bmxvYWQ9IiR7bC5uYW1lfSI+JHt0aGlzLmVzY2FwZUh0bWwobC5uYW1lKX08L2E+CiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZmlsZS1zaXplIj4oJHt0aGlzLmZvcm1hdEZpbGVTaXplKGwuc2l6ZSl9KTwvc3Bhbj4KICAgICAgICAgICAgICA8L2Rpdj5gKS5qb2luKCIiKX08L2Rpdj5gOiIiO2RlZmF1bHQ6cmV0dXJuYDxwPiR7aX08L3A+YH19KS5maWx0ZXIocj0+ciE9PSIiKS5qb2luKGAKYCl9c3RhdGljIGdldE1hcmtkb3duT3V0cHV0KHQpe3JldHVybiB0Lm1hcChyPT57c3dpdGNoKHIudHlwZSl7Y2FzZSJwYXJhZ3JhcGgiOnJldHVybiByLmNvbnRlbnQ7Y2FzZSJoZWFkaW5nLTEiOnJldHVybmAjICR7ci5jb250ZW50fWA7Y2FzZSJoZWFkaW5nLTIiOnJldHVybmAjIyAke3IuY29udGVudH1gO2Nhc2UiaGVhZGluZy0zIjpyZXR1cm5gIyMjICR7ci5jb250ZW50fWA7Y2FzZSJxdW90ZSI6cmV0dXJuYD4gJHtyLmNvbnRlbnR9YDtjYXNlImNvZGUiOnJldHVybmBcYFxgXGAKJHtyLmNvbnRlbnR9ClxgXGBcYGA7Y2FzZSJsaXN0IjpsZXQgaT1yLmNvbnRlbnQuc3BsaXQoYApgKS5maWx0ZXIoYz0+Yy50cmltKCkpO3JldHVybiByLm1ldGFkYXRhPy5saXN0VHlwZT09PSJvcmRlcmVkIj9pLm1hcCgoYyx1KT0+YCR7dSsxfS4gJHtjfWApLmpvaW4oYApgKTppLm1hcChjPT5gLSAke2N9YCkuam9pbihgCmApO2Nhc2UiZGl2aWRlciI6cmV0dXJuIi0tLSI7Y2FzZSJpbWFnZSI6bGV0IGE9ci5tZXRhZGF0YT8udXJsLG49ci5jb250ZW50fHwiSW1hZ2UiO3JldHVybiBhP2AhWyR7bn1dKCR7YX0pYDoiIjtjYXNlInlvdXR1YmUiOmxldCBvPXIubWV0YWRhdGE/LnZpZGVvSWQscz1yLm1ldGFkYXRhPy51cmx8fChvP2BodHRwczovL3lvdXR1YmUuY29tL3dhdGNoP3Y9JHtvfWA6IiIpO3JldHVybiBzP2BbWW91VHViZSBWaWRlb10oJHtzfSlgOiIiO2Nhc2UibWFya2Rvd24iOnJldHVybiByLmNvbnRlbnQ7Y2FzZSJodG1sIjpyZXR1cm5gPCEtLSBIVE1MIEJsb2NrCiR7ci5jb250ZW50fQotLT5gO2Nhc2UiYXR0YWNobWVudCI6bGV0IGw9ci5tZXRhZGF0YT8uZmlsZXN8fFtdO3JldHVybiBsLmxlbmd0aD4wP2wubWFwKGM9PmAtIFske2MubmFtZX1dKCR7Yy5kYXRhfSlgKS5qb2luKGAKYCk6IiI7ZGVmYXVsdDpyZXR1cm4gci5jb250ZW50fX0pLmZpbHRlcihyPT5yIT09IiIpLmpvaW4oYAoKYCl9c3RhdGljIHBhcnNlSHRtbFRvQmxvY2tzKHQpe2xldCBpPW5ldyBET01QYXJzZXIoKS5wYXJzZUZyb21TdHJpbmcodCwidGV4dC9odG1sIiksYT1bXSxuPW89PntpZihvLm5vZGVUeXBlPT09Tm9kZS5URVhUX05PREUmJm8udGV4dENvbnRlbnQ/LnRyaW0oKSlhLnB1c2goe2lkOmBibG9jay0ke0RhdGUubm93KCl9LSR7TWF0aC5yYW5kb20oKS50b1N0cmluZygzNikuc3Vic3RyaW5nKDIsOSl9YCx0eXBlOiJwYXJhZ3JhcGgiLGNvbnRlbnQ6by50ZXh0Q29udGVudC50cmltKCl9KTtlbHNlIGlmKG8ubm9kZVR5cGU9PT1Ob2RlLkVMRU1FTlRfTk9ERSl7bGV0IHM9byxsPXMudGFnTmFtZS50b0xvd2VyQ2FzZSgpO3N3aXRjaChsKXtjYXNlInAiOmEucHVzaCh7aWQ6YGJsb2NrLSR7RGF0ZS5ub3coKX0tJHtNYXRoLnJhbmRvbSgpLnRvU3RyaW5nKDM2KS5zdWJzdHJpbmcoMiw5KX1gLHR5cGU6InBhcmFncmFwaCIsY29udGVudDpzLmlubmVySFRNTHx8IiJ9KTticmVhaztjYXNlImgxIjphLnB1c2goe2lkOmBibG9jay0ke0RhdGUubm93KCl9LSR7TWF0aC5yYW5kb20oKS50b1N0cmluZygzNikuc3Vic3RyaW5nKDIsOSl9YCx0eXBlOiJoZWFkaW5nLTEiLGNvbnRlbnQ6cy5pbm5lckhUTUx8fCIifSk7YnJlYWs7Y2FzZSJoMiI6YS5wdXNoKHtpZDpgYmxvY2stJHtEYXRlLm5vdygpfS0ke01hdGgucmFuZG9tKCkudG9TdHJpbmcoMzYpLnN1YnN0cmluZygyLDkpfWAsdHlwZToiaGVhZGluZy0yIixjb250ZW50OnMuaW5uZXJIVE1MfHwiIn0pO2JyZWFrO2Nhc2UiaDMiOmEucHVzaCh7aWQ6YGJsb2NrLSR7RGF0ZS5ub3coKX0tJHtNYXRoLnJhbmRvbSgpLnRvU3RyaW5nKDM2KS5zdWJzdHJpbmcoMiw5KX1gLHR5cGU6ImhlYWRpbmctMyIsY29udGVudDpzLmlubmVySFRNTHx8IiJ9KTticmVhaztjYXNlImJsb2NrcXVvdGUiOmEucHVzaCh7aWQ6YGJsb2NrLSR7RGF0ZS5ub3coKX0tJHtNYXRoLnJhbmRvbSgpLnRvU3RyaW5nKDM2KS5zdWJzdHJpbmcoMiw5KX1gLHR5cGU6InF1b3RlIixjb250ZW50OnMuaW5uZXJIVE1MfHwiIn0pO2JyZWFrO2Nhc2UicHJlIjpjYXNlImNvZGUiOmEucHVzaCh7aWQ6YGJsb2NrLSR7RGF0ZS5ub3coKX0tJHtNYXRoLnJhbmRvbSgpLnRvU3RyaW5nKDM2KS5zdWJzdHJpbmcoMiw5KX1gLHR5cGU6ImNvZGUiLGNvbnRlbnQ6cy50ZXh0Q29udGVudHx8IiJ9KTticmVhaztjYXNlInVsIjpjYXNlIm9sIjpsZXQgdT1BcnJheS5mcm9tKHMucXVlcnlTZWxlY3RvckFsbCgibGkiKSkubWFwKGg9PmguaW5uZXJIVE1MfHwiIikuam9pbihgCmApO2EucHVzaCh7aWQ6YGJsb2NrLSR7RGF0ZS5ub3coKX0tJHtNYXRoLnJhbmRvbSgpLnRvU3RyaW5nKDM2KS5zdWJzdHJpbmcoMiw5KX1gLHR5cGU6Imxpc3QiLGNvbnRlbnQ6dSxtZXRhZGF0YTp7bGlzdFR5cGU6bD09PSJvbCI/Im9yZGVyZWQiOiJidWxsZXQifX0pO2JyZWFrO2Nhc2UiaHIiOmEucHVzaCh7aWQ6YGJsb2NrLSR7RGF0ZS5ub3coKX0tJHtNYXRoLnJhbmRvbSgpLnRvU3RyaW5nKDM2KS5zdWJzdHJpbmcoMiw5KX1gLHR5cGU6ImRpdmlkZXIiLGNvbnRlbnQ6IiAifSk7YnJlYWs7Y2FzZSJpbWciOmxldCBkPXM7YS5wdXNoKHtpZDpgYmxvY2stJHtEYXRlLm5vdygpfS0ke01hdGgucmFuZG9tKCkudG9TdHJpbmcoMzYpLnN1YnN0cmluZygyLDkpfWAsdHlwZToiaW1hZ2UiLGNvbnRlbnQ6ZC5hbHR8fCIiLG1ldGFkYXRhOnt1cmw6ZC5zcmN9fSk7YnJlYWs7ZGVmYXVsdDpzLmNoaWxkTm9kZXMuZm9yRWFjaChoPT5uKGgpKX19fTtyZXR1cm4gaS5ib2R5LmNoaWxkTm9kZXMuZm9yRWFjaChvPT5uKG8pKSxhfXN0YXRpYyBwYXJzZU1hcmtkb3duVG9CbG9ja3ModCl7bGV0IHI9dC5zcGxpdChgCmApLGk9W10sYT1bXTtmb3IobGV0IG49MDtuPHIubGVuZ3RoO24rKyl7bGV0IG89cltuXTtpZihvLnN0YXJ0c1dpdGgoIiMgIikpaS5wdXNoKHtpZDpgYmxvY2stJHtEYXRlLm5vdygpfS0ke01hdGgucmFuZG9tKCkudG9TdHJpbmcoMzYpLnN1YnN0cmluZygyLDkpfWAsdHlwZToiaGVhZGluZy0xIixjb250ZW50Om8uc3Vic3RyaW5nKDIpfSk7ZWxzZSBpZihvLnN0YXJ0c1dpdGgoIiMjICIpKWkucHVzaCh7aWQ6YGJsb2NrLSR7RGF0ZS5ub3coKX0tJHtNYXRoLnJhbmRvbSgpLnRvU3RyaW5nKDM2KS5zdWJzdHJpbmcoMiw5KX1gLHR5cGU6ImhlYWRpbmctMiIsY29udGVudDpvLnN1YnN0cmluZygzKX0pO2Vsc2UgaWYoby5zdGFydHNXaXRoKCIjIyMgIikpaS5wdXNoKHtpZDpgYmxvY2stJHtEYXRlLm5vdygpfS0ke01hdGgucmFuZG9tKCkudG9TdHJpbmcoMzYpLnN1YnN0cmluZygyLDkpfWAsdHlwZToiaGVhZGluZy0zIixjb250ZW50Om8uc3Vic3RyaW5nKDQpfSk7ZWxzZSBpZihvLnN0YXJ0c1dpdGgoIj4gIikpaS5wdXNoKHtpZDpgYmxvY2stJHtEYXRlLm5vdygpfS0ke01hdGgucmFuZG9tKCkudG9TdHJpbmcoMzYpLnN1YnN0cmluZygyLDkpfWAsdHlwZToicXVvdGUiLGNvbnRlbnQ6by5zdWJzdHJpbmcoMil9KTtlbHNlIGlmKG8uc3RhcnRzV2l0aCgiYGBgIikpe2xldCBzPVtdO2ZvcihuKys7bjxyLmxlbmd0aCYmIXJbbl0uc3RhcnRzV2l0aCgiYGBgIik7KXMucHVzaChyW25dKSxuKys7aS5wdXNoKHtpZDpgYmxvY2stJHtEYXRlLm5vdygpfS0ke01hdGgucmFuZG9tKCkudG9TdHJpbmcoMzYpLnN1YnN0cmluZygyLDkpfWAsdHlwZToiY29kZSIsY29udGVudDpzLmpvaW4oYApgKX0pfWVsc2UgaWYoby5tYXRjaCgvXihcKnwtKSAvKSlhLnB1c2goby5zdWJzdHJpbmcoMikpLChuPT09ci5sZW5ndGgtMXx8IXJbbisxXS5tYXRjaCgvXihcKnwtKSAvKSkmJihpLnB1c2goe2lkOmBibG9jay0ke0RhdGUubm93KCl9LSR7TWF0aC5yYW5kb20oKS50b1N0cmluZygzNikuc3Vic3RyaW5nKDIsOSl9YCx0eXBlOiJsaXN0Iixjb250ZW50OmEuam9pbihgCmApLG1ldGFkYXRhOntsaXN0VHlwZToiYnVsbGV0In19KSxhPVtdKTtlbHNlIGlmKG8ubWF0Y2goL15cZCtcLiAvKSlhLnB1c2goby5yZXBsYWNlKC9eXGQrXC4gLywiIikpLChuPT09ci5sZW5ndGgtMXx8IXJbbisxXS5tYXRjaCgvXlxkK1wuIC8pKSYmKGkucHVzaCh7aWQ6YGJsb2NrLSR7RGF0ZS5ub3coKX0tJHtNYXRoLnJhbmRvbSgpLnRvU3RyaW5nKDM2KS5zdWJzdHJpbmcoMiw5KX1gLHR5cGU6Imxpc3QiLGNvbnRlbnQ6YS5qb2luKGAKYCksbWV0YWRhdGE6e2xpc3RUeXBlOiJvcmRlcmVkIn19KSxhPVtdKTtlbHNlIGlmKG89PT0iLS0tInx8bz09PSIqKioifHxvPT09Il9fXyIpaS5wdXNoKHtpZDpgYmxvY2stJHtEYXRlLm5vdygpfS0ke01hdGgucmFuZG9tKCkudG9TdHJpbmcoMzYpLnN1YnN0cmluZygyLDkpfWAsdHlwZToiZGl2aWRlciIsY29udGVudDoiICJ9KTtlbHNlIGlmKG8ubWF0Y2goL14hXFsoW15cXV0qKVxdXCgoW15cKV0rKVwpJC8pKXtsZXQgcz1vLm1hdGNoKC9eIVxbKFteXF1dKilcXVwoKFteXCldKylcKSQvKTtzJiZpLnB1c2goe2lkOmBibG9jay0ke0RhdGUubm93KCl9LSR7TWF0aC5yYW5kb20oKS50b1N0cmluZygzNikuc3Vic3RyaW5nKDIsOSl9YCx0eXBlOiJpbWFnZSIsY29udGVudDpzWzFdfHwiIixtZXRhZGF0YTp7dXJsOnNbMl19fSl9ZWxzZSBvLnRyaW0oKSYmaS5wdXNoKHtpZDpgYmxvY2stJHtEYXRlLm5vdygpfS0ke01hdGgucmFuZG9tKCkudG9TdHJpbmcoMzYpLnN1YnN0cmluZygyLDkpfWAsdHlwZToicGFyYWdyYXBoIixjb250ZW50Om99KX1yZXR1cm4gaX19fSk7dmFyIGFhLHpjPXAoKCk9Pnt4ZSgpO0NuKCk7dGRlKCk7YWE9Y2xhc3N7c3RhdGljIHJlbmRlckxpc3RDb250ZW50KHQscil7bGV0IGk9dC5zcGxpdChgCmApLmZpbHRlcihuPT5uLnRyaW0oKSk7aWYoaS5sZW5ndGg9PT0wKXJldHVybiIiO2xldCBhPXI/Lmxpc3RUeXBlPT09Im9yZGVyZWQiPyJvbCI6InVsIjtyZXR1cm5gPCR7YX0+JHtpLm1hcChuPT5gPGxpPiR7bn08L2xpPmApLmpvaW4oIiIpfTwvJHthfT5gfXN0YXRpYyByZW5kZXJCbG9jayh0LHIsaSl7aWYodC50eXBlPT09ImRpdmlkZXIiKXJldHVybiBDYAogICAgICAgIDxkaXYKICAgICAgICAgIGNsYXNzPSJibG9jayBkaXZpZGVyIgogICAgICAgICAgZGF0YS1ibG9jay1pZD0iJHt0LmlkfSIKICAgICAgICA+CiAgICAgICAgICA8aHI+CiAgICAgICAgPC9kaXY+CiAgICAgIGA7aWYodC50eXBlPT09Imxpc3QiKXJldHVybiBDYAogICAgICAgIDxkaXYKICAgICAgICAgIGNsYXNzPSJibG9jayBsaXN0ICR7cj8ic2VsZWN0ZWQiOiIifSIKICAgICAgICAgIGRhdGEtYmxvY2staWQ9IiR7dC5pZH0iCiAgICAgICAgICBjb250ZW50ZWRpdGFibGU9InRydWUiCiAgICAgICAgICBAaW5wdXQ9IiR7aS5vbklucHV0fSIKICAgICAgICAgIEBrZXlkb3duPSIke2kub25LZXlEb3dufSIKICAgICAgICAgIEBmb2N1cz0iJHtpLm9uRm9jdXN9IgogICAgICAgICAgQGJsdXI9IiR7aS5vbkJsdXJ9IgogICAgICAgICAgQGNvbXBvc2l0aW9uc3RhcnQ9IiR7aS5vbkNvbXBvc2l0aW9uU3RhcnR9IgogICAgICAgICAgQGNvbXBvc2l0aW9uZW5kPSIke2kub25Db21wb3NpdGlvbkVuZH0iCiAgICAgICAgICBAbW91c2V1cD0iJHtuPT57Y29uc29sZS5sb2coIkJsb2NrIG1vdXNldXAgZXZlbnQgZmlyZWQiKSxpLm9uTW91c2VVcCYmaS5vbk1vdXNlVXAobil9fSIKICAgICAgICAgIC5pbm5lckhUTUw9IiR7dGhpcy5yZW5kZXJMaXN0Q29udGVudCh0LmNvbnRlbnQsdC5tZXRhZGF0YSl9IgogICAgICAgID48L2Rpdj4KICAgICAgYDtpZih0LnR5cGU9PT0iY29kZSIpe2xldCBuPXQubWV0YWRhdGE/Lmxhbmd1YWdlfHwicGxhaW4gdGV4dCI7cmV0dXJuIENgCiAgICAgICAgPGRpdiBjbGFzcz0iY29kZS1ibG9jay1jb250YWluZXIiPgogICAgICAgICAgPGRpdiBjbGFzcz0iY29kZS1sYW5ndWFnZSI+JHtufTwvZGl2PgogICAgICAgICAgPGRpdgogICAgICAgICAgICBjbGFzcz0iYmxvY2sgJHt0LnR5cGV9ICR7cj8ic2VsZWN0ZWQiOiIifSIKICAgICAgICAgICAgY29udGVudGVkaXRhYmxlPSJ0cnVlIgogICAgICAgICAgICBAaW5wdXQ9IiR7aS5vbklucHV0fSIKICAgICAgICAgICAgQGtleWRvd249IiR7aS5vbktleURvd259IgogICAgICAgICAgICBAZm9jdXM9IiR7aS5vbkZvY3VzfSIKICAgICAgICAgICAgQGJsdXI9IiR7aS5vbkJsdXJ9IgogICAgICAgICAgICBAY29tcG9zaXRpb25zdGFydD0iJHtpLm9uQ29tcG9zaXRpb25TdGFydH0iCiAgICAgICAgICAgIEBjb21wb3NpdGlvbmVuZD0iJHtpLm9uQ29tcG9zaXRpb25FbmR9IgogICAgICAgICAgICBAbW91c2V1cD0iJHtvPT57Y29uc29sZS5sb2coIkJsb2NrIG1vdXNldXAgZXZlbnQgZmlyZWQiKSxpLm9uTW91c2VVcCYmaS5vbk1vdXNlVXAobyl9fSIKICAgICAgICAgICAgLnRleHRDb250ZW50PSIke3QuY29udGVudHx8IiJ9IgogICAgICAgICAgPjwvZGl2PgogICAgICAgIDwvZGl2PgogICAgICBgfXJldHVybiBDYAogICAgICA8ZGl2CiAgICAgICAgY2xhc3M9ImJsb2NrICR7dC50eXBlfSAke3I/InNlbGVjdGVkIjoiIn0iCiAgICAgICAgY29udGVudGVkaXRhYmxlPSJ0cnVlIgogICAgICAgIEBpbnB1dD0iJHtpLm9uSW5wdXR9IgogICAgICAgIEBrZXlkb3duPSIke2kub25LZXlEb3dufSIKICAgICAgICBAZm9jdXM9IiR7aS5vbkZvY3VzfSIKICAgICAgICBAYmx1cj0iJHtpLm9uQmx1cn0iCiAgICAgICAgQGNvbXBvc2l0aW9uc3RhcnQ9IiR7aS5vbkNvbXBvc2l0aW9uU3RhcnR9IgogICAgICAgIEBjb21wb3NpdGlvbmVuZD0iJHtpLm9uQ29tcG9zaXRpb25FbmR9IgogICAgICAgIEBtb3VzZXVwPSIke249Pntjb25zb2xlLmxvZygiQmxvY2sgbW91c2V1cCBldmVudCBmaXJlZCIpLGkub25Nb3VzZVVwJiZpLm9uTW91c2VVcChuKX19IgogICAgICAgIC5pbm5lckhUTUw9IiR7dC5jb250ZW50fHwiIn0iCiAgICAgID48L2Rpdj4KICAgIGB9c3RhdGljIHNldEN1cnNvclRvRW5kKHQpe2xldCByPXdpbmRvdy5nZXRTZWxlY3Rpb24oKTtpZighcilyZXR1cm47bGV0IGk9ZG9jdW1lbnQuY3JlYXRlUmFuZ2UoKTtpZih0LmNoaWxkTm9kZXMubGVuZ3RoPT09MCl7bGV0IGE9ZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUoIlx1MjAwQiIpO3QuYXBwZW5kQ2hpbGQoYSksaS5zZXRTdGFydChhLDEpLGkuY29sbGFwc2UoITApfWVsc2V7bGV0IGE9dGhpcy5nZXRMYXN0Tm9kZSh0KTthLm5vZGVUeXBlPT09Tm9kZS5URVhUX05PREU/aS5zZXRTdGFydChhLGEudGV4dENvbnRlbnQ/Lmxlbmd0aHx8MCk6aS5zZXRTdGFydEFmdGVyKGEpLGkuY29sbGFwc2UoITApfXIucmVtb3ZlQWxsUmFuZ2VzKCksci5hZGRSYW5nZShpKSx0LnRleHRDb250ZW50PT09Ilx1MjAwQiImJih0LnRleHRDb250ZW50PSIiKX1zdGF0aWMgc2V0Q3Vyc29yVG9TdGFydCh0KXtsZXQgcj13aW5kb3cuZ2V0U2VsZWN0aW9uKCk7aWYoIXIpcmV0dXJuO2xldCBpPWRvY3VtZW50LmNyZWF0ZVJhbmdlKCk7aWYodC5jaGlsZE5vZGVzLmxlbmd0aD09PTApaS5zZXRTdGFydCh0LDApLGkuY29sbGFwc2UoITApO2Vsc2V7bGV0IGE9dGhpcy5nZXRGaXJzdE5vZGUodCk7YS5ub2RlVHlwZT09PU5vZGUuVEVYVF9OT0RFP2kuc2V0U3RhcnQoYSwwKTppLnNldFN0YXJ0QmVmb3JlKGEpLGkuY29sbGFwc2UoITApfXIucmVtb3ZlQWxsUmFuZ2VzKCksci5hZGRSYW5nZShpKX1zdGF0aWMgZ2V0TGFzdE5vZGUodCl7aWYodC5jaGlsZE5vZGVzLmxlbmd0aD09PTApcmV0dXJuIHQ7bGV0IHI9dC5jaGlsZE5vZGVzW3QuY2hpbGROb2Rlcy5sZW5ndGgtMV07cmV0dXJuIHIubm9kZVR5cGU9PT1Ob2RlLlRFWFRfTk9ERXx8ci5jaGlsZE5vZGVzLmxlbmd0aD09PTA/cjp0aGlzLmdldExhc3ROb2RlKHIpfXN0YXRpYyBnZXRGaXJzdE5vZGUodCl7aWYodC5jaGlsZE5vZGVzLmxlbmd0aD09PTApcmV0dXJuIHQ7bGV0IHI9dC5jaGlsZE5vZGVzWzBdO3JldHVybiByLm5vZGVUeXBlPT09Tm9kZS5URVhUX05PREV8fHIuY2hpbGROb2Rlcy5sZW5ndGg9PT0wP3I6dGhpcy5nZXRGaXJzdE5vZGUocil9c3RhdGljIGZvY3VzTGlzdEl0ZW0odCl7bGV0IHI9dC5xdWVyeVNlbGVjdG9yKCJsaSIpO2lmKHIpe3IuZm9jdXMoKTtsZXQgaT1kb2N1bWVudC5jcmVhdGVSYW5nZSgpLGE9d2luZG93LmdldFNlbGVjdGlvbigpO2kuc2VsZWN0Tm9kZUNvbnRlbnRzKHIpLGkuY29sbGFwc2UoITApLGEucmVtb3ZlQWxsUmFuZ2VzKCksYS5hZGRSYW5nZShpKX19fX0pO3ZhciB5YixyZGU9cCgoKT0+e0NuKCk7bGgoKTtZZCgpO3pjKCk7eWI9Y2xhc3N7Y29tcG9uZW50O2NvbnN0cnVjdG9yKHQpe3RoaXMuY29tcG9uZW50PXR9Y3JlYXRlQmxvY2sodD0icGFyYWdyYXBoIixyPSIiLGkpe3JldHVybntpZDpHMS5nZW5lcmF0ZUJsb2NrSWQoKSx0eXBlOnQsY29udGVudDpyLC4uLmkmJnttZXRhZGF0YTppfX19YXN5bmMgaW5zZXJ0QmxvY2tBZnRlcih0LHIsaT0hMCl7bGV0IGE9dGhpcy5jb21wb25lbnQuYmxvY2tzLG49YS5maW5kSW5kZXgobz0+by5pZD09PXQuaWQpO2lmKHRoaXMuY29tcG9uZW50LmJsb2Nrcz1bLi4uYS5zbGljZSgwLG4rMSksciwuLi5hLnNsaWNlKG4rMSldLHRoaXMuY29tcG9uZW50LmVkaXRvckNvbnRlbnRSZWYpe2xldCBvPXRoaXMuY29tcG9uZW50LmVkaXRvckNvbnRlbnRSZWYucXVlcnlTZWxlY3RvcihgW2RhdGEtYmxvY2staWQ9IiR7dC5pZH0iXWApO2lmKG8pe2xldCBzPXRoaXMuY29tcG9uZW50LmNyZWF0ZUJsb2NrRWxlbWVudChyKTtvLmluc2VydEFkamFjZW50RWxlbWVudCgiYWZ0ZXJlbmQiLHMpfX10aGlzLmNvbXBvbmVudC51cGRhdGVWYWx1ZSgpLGkmJnIudHlwZSE9PSJkaXZpZGVyIiYmKGF3YWl0IG5ldyBQcm9taXNlKG89PnNldFRpbWVvdXQobywwKSksYXdhaXQgdGhpcy5mb2N1c0Jsb2NrKHIuaWQsInN0YXJ0IikpfXJlbW92ZUJsb2NrKHQpe2lmKHRoaXMuY29tcG9uZW50LnNhdmVUb0hpc3RvcnkoITEpLHRoaXMuY29tcG9uZW50LmJsb2Nrcz10aGlzLmNvbXBvbmVudC5ibG9ja3MuZmlsdGVyKHI9PnIuaWQhPT10KSx0aGlzLmNvbXBvbmVudC5lZGl0b3JDb250ZW50UmVmKXtsZXQgcj10aGlzLmNvbXBvbmVudC5lZGl0b3JDb250ZW50UmVmLnF1ZXJ5U2VsZWN0b3IoYFtkYXRhLWJsb2NrLWlkPSIke3R9Il1gKTtyJiZyLnJlbW92ZSgpfXRoaXMuY29tcG9uZW50LnVwZGF0ZVZhbHVlKCl9ZmluZEJsb2NrKHQpe3JldHVybiB0aGlzLmNvbXBvbmVudC5ibG9ja3MuZmluZChyPT5yLmlkPT09dCl9Z2V0QmxvY2tJbmRleCh0KXtyZXR1cm4gdGhpcy5jb21wb25lbnQuYmxvY2tzLmZpbmRJbmRleChyPT5yLmlkPT09dCl9YXN5bmMgZm9jdXNCbG9jayh0LHI9InN0YXJ0Iil7bGV0IGk9dGhpcy5jb21wb25lbnQuc2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yKGBbZGF0YS1ibG9jay1pZD0iJHt0fSJdYCk7aWYoaSl7bGV0IGE9aS5xdWVyeVNlbGVjdG9yKCJkZWVzLXd5c2l3eWctYmxvY2siKTthJiYoYXdhaXQgbmV3IFByb21pc2Uobj0+cmVxdWVzdEFuaW1hdGlvbkZyYW1lKG4pKSxhLmZvY3VzV2l0aEN1cnNvcihyKSl9fXVwZGF0ZUJsb2NrQ29udGVudCh0LHIpe2xldCBpPXRoaXMuZmluZEJsb2NrKHQpO2kmJihpLmNvbnRlbnQ9cix0aGlzLmNvbXBvbmVudC51cGRhdGVWYWx1ZSgpKX10cmFuc2Zvcm1CbG9jayh0LHIsaSl7bGV0IGE9dGhpcy5maW5kQmxvY2sodCk7YSYmKHRoaXMuY29tcG9uZW50LnNhdmVUb0hpc3RvcnkoITEpLGEudHlwZT1yLGEuY29udGVudD0iIixpJiYoYS5tZXRhZGF0YT1pKSx0aGlzLmNvbXBvbmVudC5lZGl0b3JDb250ZW50UmVmJiZ0aGlzLmNvbXBvbmVudC51cGRhdGVCbG9ja0VsZW1lbnQodCksdGhpcy5jb21wb25lbnQudXBkYXRlVmFsdWUoKSl9bW92ZUJsb2NrKHQscil7bGV0IGk9Wy4uLnRoaXMuY29tcG9uZW50LmJsb2Nrc10sYT10aGlzLmdldEJsb2NrSW5kZXgodCk7aWYoYT09PS0xfHxyPDB8fHI+PWkubGVuZ3RoKXJldHVybjtsZXRbbl09aS5zcGxpY2UoYSwxKTtpLnNwbGljZShyLDAsbiksdGhpcy5jb21wb25lbnQuYmxvY2tzPWksdGhpcy5jb21wb25lbnQudXBkYXRlVmFsdWUoKX1nZXRQcmV2aW91c0Jsb2NrKHQpe2xldCByPXRoaXMuZ2V0QmxvY2tJbmRleCh0KTtyZXR1cm4gcj4wP3RoaXMuY29tcG9uZW50LmJsb2Nrc1tyLTFdOm51bGx9Z2V0TmV4dEJsb2NrKHQpe2xldCByPXRoaXMuZ2V0QmxvY2tJbmRleCh0KTtyZXR1cm4gcjx0aGlzLmNvbXBvbmVudC5ibG9ja3MubGVuZ3RoLTE/dGhpcy5jb21wb25lbnQuYmxvY2tzW3IrMV06bnVsbH19fSk7dmFyIGYxLEpuPXAoKCk9PntmMT1jbGFzc3tzZXR1cCh0LHIsaSl7fWdldFN0eWxlcygpe3JldHVybiIifX19KTt2YXIgTnIsWjByPXAoKCk9PntOcj1jbGFzc3tzdGF0aWMgaGFuZGxlcnM9bmV3IE1hcDtzdGF0aWMgcmVnaXN0ZXIodCxyKXt0aGlzLmhhbmRsZXJzLnNldCh0LHIpfXN0YXRpYyBnZXRIYW5kbGVyKHQpe3JldHVybiB0aGlzLmhhbmRsZXJzLmdldCh0KX1zdGF0aWMgZ2V0QWxsVHlwZXMoKXtyZXR1cm4gQXJyYXkuZnJvbSh0aGlzLmhhbmRsZXJzLmtleXMoKSl9fX0pO3ZhciBYMHI9cCgoKT0+e30pO3ZhciB3YixRMHI9cCgoKT0+e0puKCk7eGUoKTt6YygpO25sKCk7d2I9Y2xhc3MgZXh0ZW5kcyBmMXt0eXBlPSJwYXJhZ3JhcGgiO2xhc3RLbm93bkN1cnNvclBvc2l0aW9uPTA7bGFzdFNlbGVjdGVkVGV4dD0iIjtzZWxlY3Rpb25IYW5kbGVyPW51bGw7cmVuZGVyKHQscil7bGV0IGk9cj8iIHNlbGVjdGVkIjoiIixhPXRoaXMuZ2V0UGxhY2Vob2xkZXIoKTtyZXR1cm5gCiAgICAgIDxkaXYKICAgICAgICBjbGFzcz0iYmxvY2sgcGFyYWdyYXBoJHtpfSIKICAgICAgICBjb250ZW50ZWRpdGFibGU9InRydWUiCiAgICAgICAgZGF0YS1wbGFjZWhvbGRlcj0iJHthfSIKICAgICAgICBkYXRhLWJsb2NrLWlkPSIke3QuaWR9IgogICAgICAgIGRhdGEtYmxvY2stdHlwZT0iJHt0LnR5cGV9IgogICAgICA+PC9kaXY+CiAgICBgfXNldHVwKHQscixpKXtsZXQgYT10LnF1ZXJ5U2VsZWN0b3IoIi5ibG9jay5wYXJhZ3JhcGgiKTtpZighYSl7Y29uc29sZS5lcnJvcigiUGFyYWdyYXBoQmxvY2tIYW5kbGVyLnNldHVwOiBObyBwYXJhZ3JhcGggYmxvY2sgZWxlbWVudCBmb3VuZCIpO3JldHVybn1yLmNvbnRlbnQmJiFhLmlubmVySFRNTCYmKGEuaW5uZXJIVE1MPXIuY29udGVudCksYS5hZGRFdmVudExpc3RlbmVyKCJpbnB1dCIsbj0+e2kub25JbnB1dChuKTtsZXQgbz10aGlzLmdldEN1cnNvclBvc2l0aW9uKHQpO28hPT1udWxsJiYodGhpcy5sYXN0S25vd25DdXJzb3JQb3NpdGlvbj1vKX0pLGEuYWRkRXZlbnRMaXN0ZW5lcigia2V5ZG93biIsbj0+e2xldCBvPXRoaXMuZ2V0Q3Vyc29yUG9zaXRpb24odCk7byE9PW51bGwmJih0aGlzLmxhc3RLbm93bkN1cnNvclBvc2l0aW9uPW8pLGkub25LZXlEb3duKG4pfSksYS5hZGRFdmVudExpc3RlbmVyKCJmb2N1cyIsKCk9PntpLm9uRm9jdXMoKX0pLGEuYWRkRXZlbnRMaXN0ZW5lcigiYmx1ciIsKCk9PntpLm9uQmx1cigpfSksYS5hZGRFdmVudExpc3RlbmVyKCJjb21wb3NpdGlvbnN0YXJ0IiwoKT0+e2kub25Db21wb3NpdGlvblN0YXJ0KCl9KSxhLmFkZEV2ZW50TGlzdGVuZXIoImNvbXBvc2l0aW9uZW5kIiwoKT0+e2kub25Db21wb3NpdGlvbkVuZCgpfSksYS5hZGRFdmVudExpc3RlbmVyKCJtb3VzZXVwIixuPT57bGV0IG89dGhpcy5nZXRDdXJzb3JQb3NpdGlvbih0KTtvIT09bnVsbCYmKHRoaXMubGFzdEtub3duQ3Vyc29yUG9zaXRpb249byksaS5vbk1vdXNlVXA/LihuKX0pLGEuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLG49PntzZXRUaW1lb3V0KCgpPT57bGV0IG89dGhpcy5nZXRDdXJzb3JQb3NpdGlvbih0KTtvIT09bnVsbCYmKHRoaXMubGFzdEtub3duQ3Vyc29yUG9zaXRpb249byl9LDApfSksYS5hZGRFdmVudExpc3RlbmVyKCJrZXl1cCIsbj0+e2xldCBvPXRoaXMuZ2V0Q3Vyc29yUG9zaXRpb24odCk7byE9PW51bGwmJih0aGlzLmxhc3RLbm93bkN1cnNvclBvc2l0aW9uPW8pfSksdGhpcy5zZXR1cFNlbGVjdGlvbkhhbmRsZXIodCxhLHIpfXNldHVwU2VsZWN0aW9uSGFuZGxlcih0LHIsaSl7bGV0IGE9KCk9PntsZXQgbz13aW5kb3cuZ2V0U2VsZWN0aW9uKCk7aWYoIW98fG8ucmFuZ2VDb3VudD09PTApcmV0dXJuO2xldCBzPW8udG9TdHJpbmcoKTtpZihzLmxlbmd0aD09PTApe3RoaXMubGFzdFNlbGVjdGVkVGV4dCYmKHRoaXMubGFzdFNlbGVjdGVkVGV4dD0iIix0aGlzLmRpc3BhdGNoU2VsZWN0aW9uRXZlbnQodCx7dGV4dDoiIixibG9ja0lkOmkuaWQsaGFzU2VsZWN0aW9uOiExfSkpO3JldHVybn1sZXQgbD1yLmdldFJvb3ROb2RlKCkuaG9zdCx1PWw/LmNsb3Nlc3QoImRlZXMtaW5wdXQtd3lzaXd5ZyIpPy5zaGFkb3dSb290LGQ9bD8uc2hhZG93Um9vdCxoPVtdO3UmJmgucHVzaCh1KSxkJiZoLnB1c2goZCk7bGV0IGY9WWUuZ2V0U2VsZWN0aW9uSW5mbyguLi5oKTtpZighZilyZXR1cm47bGV0IHg9WWUuY29udGFpbnNBY3Jvc3NTaGFkb3dET00ocixmLnN0YXJ0Q29udGFpbmVyKSx2PVllLmNvbnRhaW5zQWNyb3NzU2hhZG93RE9NKHIsZi5lbmRDb250YWluZXIpO2lmKHh8fHYpe2lmKHMhPT10aGlzLmxhc3RTZWxlY3RlZFRleHQpe3RoaXMubGFzdFNlbGVjdGVkVGV4dD1zO2xldCBiPVllLmNyZWF0ZVJhbmdlRnJvbUluZm8oZikseT1iLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO3RoaXMuZGlzcGF0Y2hTZWxlY3Rpb25FdmVudCh0LHt0ZXh0OnMudHJpbSgpLGJsb2NrSWQ6aS5pZCxyYW5nZTpiLHJlY3Q6eSxoYXNTZWxlY3Rpb246ITB9KX19ZWxzZSB0aGlzLmxhc3RTZWxlY3RlZFRleHQmJih0aGlzLmxhc3RTZWxlY3RlZFRleHQ9IiIsdGhpcy5kaXNwYXRjaFNlbGVjdGlvbkV2ZW50KHQse3RleHQ6IiIsYmxvY2tJZDppLmlkLGhhc1NlbGVjdGlvbjohMX0pKX07ZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigic2VsZWN0aW9uY2hhbmdlIixhKSx0aGlzLnNlbGVjdGlvbkhhbmRsZXI9YTtsZXQgbj10LmNsb3Nlc3QoImRlZXMtd3lzaXd5Zy1ibG9jayIpO2lmKG4pe2xldCBvPW4uZGlzY29ubmVjdGVkQ2FsbGJhY2s7bi5kaXNjb25uZWN0ZWRDYWxsYmFjaz1hc3luYyBmdW5jdGlvbigpe3RoaXMuc2VsZWN0aW9uSGFuZGxlciYmKGRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoInNlbGVjdGlvbmNoYW5nZSIsdGhpcy5zZWxlY3Rpb25IYW5kbGVyKSx0aGlzLnNlbGVjdGlvbkhhbmRsZXI9bnVsbCksbyYmYXdhaXQgby5jYWxsKG4pfS5iaW5kKHRoaXMpfX1kaXNwYXRjaFNlbGVjdGlvbkV2ZW50KHQscil7bGV0IGk9bmV3IEN1c3RvbUV2ZW50KCJibG9jay10ZXh0LXNlbGVjdGVkIix7ZGV0YWlsOnIsYnViYmxlczohMCxjb21wb3NlZDohMH0pO3QuZGlzcGF0Y2hFdmVudChpKX1nZXRTdHlsZXMoKXtyZXR1cm5gCiAgICAgIC8qIFBhcmFncmFwaCBzcGVjaWZpYyBzdHlsZXMgKi8KICAgICAgLmJsb2NrLnBhcmFncmFwaCB7CiAgICAgICAgZm9udC1zaXplOiAxNnB4OwogICAgICAgIGxpbmUtaGVpZ2h0OiAxLjY7CiAgICAgICAgZm9udC13ZWlnaHQ6IDQwMDsKICAgICAgfQogICAgYH1nZXRQbGFjZWhvbGRlcigpe3JldHVybiJUeXBlICcvJyBmb3IgY29tbWFuZHMuLi4ifWdldExhc3RUZXh0Tm9kZSh0KXtpZih0Lm5vZGVUeXBlPT09Tm9kZS5URVhUX05PREUpcmV0dXJuIHQ7Zm9yKGxldCByPXQuY2hpbGROb2Rlcy5sZW5ndGgtMTtyPj0wO3ItLSl7bGV0IGk9dGhpcy5nZXRMYXN0VGV4dE5vZGUodC5jaGlsZE5vZGVzW3JdKTtpZihpKXJldHVybiBpfXJldHVybiBudWxsfWdldEN1cnNvclBvc2l0aW9uKHQscil7bGV0IGk9dC5xdWVyeVNlbGVjdG9yKCIuYmxvY2sucGFyYWdyYXBoIik7aWYoIWkpcmV0dXJuIG51bGw7bGV0IG89cj8uY29tcG9uZW50Py5jbG9zZXN0KCJkZWVzLWlucHV0LXd5c2l3eWciKT8uc2hhZG93Um9vdCxzPXI/LnNoYWRvd1Jvb3QsbD1bXTtvJiZsLnB1c2gobykscyYmbC5wdXNoKHMpO2xldCBjPVllLmdldFNlbGVjdGlvbkluZm8oLi4ubCk7aWYoIWN8fCFZZS5jb250YWluc0Fjcm9zc1NoYWRvd0RPTShpLGMuc3RhcnRDb250YWluZXIpKXJldHVybiBudWxsO2xldCB1PWRvY3VtZW50LmNyZWF0ZVJhbmdlKCk7cmV0dXJuIHUuc2VsZWN0Tm9kZUNvbnRlbnRzKGkpLHUuc2V0RW5kKGMuc3RhcnRDb250YWluZXIsYy5zdGFydE9mZnNldCksdS50b1N0cmluZygpLmxlbmd0aH1nZXRDb250ZW50KHQscil7bGV0IGk9dC5xdWVyeVNlbGVjdG9yKCIuYmxvY2sucGFyYWdyYXBoIik7cmV0dXJuIGkmJmkuaW5uZXJIVE1MfHwiIn1zZXRDb250ZW50KHQscixpKXtsZXQgYT10LnF1ZXJ5U2VsZWN0b3IoIi5ibG9jay5wYXJhZ3JhcGgiKTtpZighYSlyZXR1cm47bGV0IG49ZG9jdW1lbnQuYWN0aXZlRWxlbWVudD09PWF8fHQuc2hhZG93Um9vdD8uYWN0aXZlRWxlbWVudD09PWE7YS5pbm5lckhUTUw9cixuJiZhLmZvY3VzKCl9c2V0Q3Vyc29yVG9TdGFydCh0LHIpe2xldCBpPXQucXVlcnlTZWxlY3RvcigiLmJsb2NrLnBhcmFncmFwaCIpO2kmJmFhLnNldEN1cnNvclRvU3RhcnQoaSl9c2V0Q3Vyc29yVG9FbmQodCxyKXtsZXQgaT10LnF1ZXJ5U2VsZWN0b3IoIi5ibG9jay5wYXJhZ3JhcGgiKTtpJiZhYS5zZXRDdXJzb3JUb0VuZChpKX1mb2N1cyh0LHIpe2xldCBpPXQucXVlcnlTZWxlY3RvcigiLmJsb2NrLnBhcmFncmFwaCIpO2kmJihpLmhhc0F0dHJpYnV0ZSgiY29udGVudGVkaXRhYmxlIil8fGkuc2V0QXR0cmlidXRlKCJjb250ZW50ZWRpdGFibGUiLCJ0cnVlIiksaS5mb2N1cygpLGRvY3VtZW50LmFjdGl2ZUVsZW1lbnQhPT1pJiZ0LnNoYWRvd1Jvb3Q/LmFjdGl2ZUVsZW1lbnQhPT1pJiZQcm9taXNlLnJlc29sdmUoKS50aGVuKCgpPT57aS5mb2N1cygpfSkpfWZvY3VzV2l0aEN1cnNvcih0LHI9ImVuZCIsaSl7bGV0IGE9dC5xdWVyeVNlbGVjdG9yKCIuYmxvY2sucGFyYWdyYXBoIik7aWYoIWEpcmV0dXJuO2lmKGEuaGFzQXR0cmlidXRlKCJjb250ZW50ZWRpdGFibGUiKXx8YS5zZXRBdHRyaWJ1dGUoImNvbnRlbnRlZGl0YWJsZSIsInRydWUiKSxyPT09ImVuZCImJmEudGV4dENvbnRlbnQmJmEudGV4dENvbnRlbnQubGVuZ3RoPjApe2xldCBvPXdpbmRvdy5nZXRTZWxlY3Rpb24oKTtpZihvKXtsZXQgcz1kb2N1bWVudC5jcmVhdGVSYW5nZSgpLGw9dGhpcy5nZXRMYXN0VGV4dE5vZGUoYSl8fGE7bC5ub2RlVHlwZT09PU5vZGUuVEVYVF9OT0RFPyhzLnNldFN0YXJ0KGwsbC50ZXh0Q29udGVudD8ubGVuZ3RofHwwKSxzLnNldEVuZChsLGwudGV4dENvbnRlbnQ/Lmxlbmd0aHx8MCkpOihzLnNlbGVjdE5vZGVDb250ZW50cyhsKSxzLmNvbGxhcHNlKCExKSksby5yZW1vdmVBbGxSYW5nZXMoKSxvLmFkZFJhbmdlKHMpfX1hLmZvY3VzKCk7bGV0IG49KCk9PntyPT09InN0YXJ0Ij90aGlzLnNldEN1cnNvclRvU3RhcnQodCxpKTpyPT09ImVuZCImJighYS50ZXh0Q29udGVudHx8YS50ZXh0Q29udGVudC5sZW5ndGg9PT0wKT90aGlzLnNldEN1cnNvclRvRW5kKHQsaSk6dHlwZW9mIHI9PSJudW1iZXIiJiZZZS5zZXRDdXJzb3JQb3NpdGlvbihhLHIpfTtkb2N1bWVudC5hY3RpdmVFbGVtZW50PT09YXx8dC5zaGFkb3dSb290Py5hY3RpdmVFbGVtZW50PT09YT9uKCk6UHJvbWlzZS5yZXNvbHZlKCkudGhlbigoKT0+e2RvY3VtZW50LmFjdGl2ZUVsZW1lbnQ9PT1hfHx0LnNoYWRvd1Jvb3Q/LmFjdGl2ZUVsZW1lbnQ9PT1hP24oKTpzZXRUaW1lb3V0KCgpPT57KGRvY3VtZW50LmFjdGl2ZUVsZW1lbnQ9PT1hfHx0LnNoYWRvd1Jvb3Q/LmFjdGl2ZUVsZW1lbnQ9PT1hKSYmbigpfSwxMCl9KX1nZXRTcGxpdENvbnRlbnQodCxyKXtsZXQgaT10LnF1ZXJ5U2VsZWN0b3IoIi5ibG9jay5wYXJhZ3JhcGgiKTtpZighaSlyZXR1cm4gbnVsbDtsZXQgbz1yPy5jb21wb25lbnQ/LmNsb3Nlc3QoImRlZXMtaW5wdXQtd3lzaXd5ZyIpPy5zaGFkb3dSb290LHM9cj8uc2hhZG93Um9vdCxsPVtdO28mJmwucHVzaChvKSxzJiZsLnB1c2gocyk7bGV0IGM9WWUuZ2V0U2VsZWN0aW9uSW5mbyguLi5sKTtpZighYyl7aWYodGhpcy5sYXN0S25vd25DdXJzb3JQb3NpdGlvbiE9PW51bGwpe2xldCB3PWkudGV4dENvbnRlbnR8fCIiLGs9TWF0aC5taW4odGhpcy5sYXN0S25vd25DdXJzb3JQb3NpdGlvbix3Lmxlbmd0aCk7cmV0dXJue2JlZm9yZTp3LnN1YnN0cmluZygwLGspLGFmdGVyOncuc3Vic3RyaW5nKGspfX1yZXR1cm4gbnVsbH1pZighWWUuY29udGFpbnNBY3Jvc3NTaGFkb3dET00oaSxjLnN0YXJ0Q29udGFpbmVyKSl7aWYodGhpcy5sYXN0S25vd25DdXJzb3JQb3NpdGlvbiE9PW51bGwpe2xldCB3PWkudGV4dENvbnRlbnR8fCIiLGs9TWF0aC5taW4odGhpcy5sYXN0S25vd25DdXJzb3JQb3NpdGlvbix3Lmxlbmd0aCk7cmV0dXJue2JlZm9yZTp3LnN1YnN0cmluZygwLGspLGFmdGVyOncuc3Vic3RyaW5nKGspfX1yZXR1cm4gbnVsbH1sZXQgdT10aGlzLmdldEN1cnNvclBvc2l0aW9uKHQscik7aWYodT09PW51bGx8fHU9PT0wKXJldHVybntiZWZvcmU6IiIsYWZ0ZXI6aS5pbm5lckhUTUx9O2xldCBkPWRvY3VtZW50LmNyZWF0ZVJhbmdlKCksaD1kb2N1bWVudC5jcmVhdGVSYW5nZSgpO2Quc2V0U3RhcnQoaSwwKSxkLnNldEVuZChjLnN0YXJ0Q29udGFpbmVyLGMuc3RhcnRPZmZzZXQpLGguc2V0U3RhcnQoYy5zdGFydENvbnRhaW5lcixjLnN0YXJ0T2Zmc2V0KSxoLnNldEVuZChpLGkuY2hpbGROb2Rlcy5sZW5ndGgpO2xldCBmPWQuY2xvbmVDb250ZW50cygpLHg9aC5jbG9uZUNvbnRlbnRzKCksdj1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTt2LmFwcGVuZENoaWxkKGYpO2xldCBiPXYuaW5uZXJIVE1MO3YuaW5uZXJIVE1MPSIiLHYuYXBwZW5kQ2hpbGQoeCk7bGV0IHk9di5pbm5lckhUTUw7cmV0dXJue2JlZm9yZTpiLGFmdGVyOnl9fX19KTt2YXIgWGQsSjByPXAoKCk9PntKbigpO3hlKCk7emMoKTtubCgpO1hkPWNsYXNzIGV4dGVuZHMgZjF7dHlwZTtsZXZlbDtsYXN0S25vd25DdXJzb3JQb3NpdGlvbj0wO2xhc3RTZWxlY3RlZFRleHQ9IiI7c2VsZWN0aW9uSGFuZGxlcj1udWxsO2NvbnN0cnVjdG9yKHQpe3N1cGVyKCksdGhpcy50eXBlPXQsdGhpcy5sZXZlbD1wYXJzZUludCh0LnNwbGl0KCItIilbMV0pfXJlbmRlcih0LHIpe2xldCBpPXI/IiBzZWxlY3RlZCI6IiIsYT10aGlzLmdldFBsYWNlaG9sZGVyKCk7cmV0dXJuYAogICAgICA8ZGl2CiAgICAgICAgY2xhc3M9ImJsb2NrIGhlYWRpbmctJHt0aGlzLmxldmVsfSR7aX0iCiAgICAgICAgY29udGVudGVkaXRhYmxlPSJ0cnVlIgogICAgICAgIGRhdGEtcGxhY2Vob2xkZXI9IiR7YX0iCiAgICAgICAgZGF0YS1ibG9jay1pZD0iJHt0LmlkfSIKICAgICAgICBkYXRhLWJsb2NrLXR5cGU9IiR7dC50eXBlfSIKICAgICAgPjwvZGl2PgogICAgYH1zZXR1cCh0LHIsaSl7bGV0IGE9dC5xdWVyeVNlbGVjdG9yKGAuYmxvY2suaGVhZGluZy0ke3RoaXMubGV2ZWx9YCk7aWYoIWEpe2NvbnNvbGUuZXJyb3IoIkhlYWRpbmdCbG9ja0hhbmRsZXIuc2V0dXA6IE5vIGhlYWRpbmcgYmxvY2sgZWxlbWVudCBmb3VuZCIpO3JldHVybn1yLmNvbnRlbnQmJiFhLmlubmVySFRNTCYmKGEuaW5uZXJIVE1MPXIuY29udGVudCksYS5hZGRFdmVudExpc3RlbmVyKCJpbnB1dCIsbj0+e2kub25JbnB1dChuKTtsZXQgbz10aGlzLmdldEN1cnNvclBvc2l0aW9uKHQpO28hPT1udWxsJiYodGhpcy5sYXN0S25vd25DdXJzb3JQb3NpdGlvbj1vKX0pLGEuYWRkRXZlbnRMaXN0ZW5lcigia2V5ZG93biIsbj0+e2xldCBvPXRoaXMuZ2V0Q3Vyc29yUG9zaXRpb24odCk7byE9PW51bGwmJih0aGlzLmxhc3RLbm93bkN1cnNvclBvc2l0aW9uPW8pLGkub25LZXlEb3duKG4pfSksYS5hZGRFdmVudExpc3RlbmVyKCJmb2N1cyIsKCk9PntpLm9uRm9jdXMoKX0pLGEuYWRkRXZlbnRMaXN0ZW5lcigiYmx1ciIsKCk9PntpLm9uQmx1cigpfSksYS5hZGRFdmVudExpc3RlbmVyKCJjb21wb3NpdGlvbnN0YXJ0IiwoKT0+e2kub25Db21wb3NpdGlvblN0YXJ0KCl9KSxhLmFkZEV2ZW50TGlzdGVuZXIoImNvbXBvc2l0aW9uZW5kIiwoKT0+e2kub25Db21wb3NpdGlvbkVuZCgpfSksYS5hZGRFdmVudExpc3RlbmVyKCJtb3VzZXVwIixuPT57bGV0IG89dGhpcy5nZXRDdXJzb3JQb3NpdGlvbih0KTtvIT09bnVsbCYmKHRoaXMubGFzdEtub3duQ3Vyc29yUG9zaXRpb249byksaS5vbk1vdXNlVXA/LihuKX0pLGEuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLG49PntzZXRUaW1lb3V0KCgpPT57bGV0IG89dGhpcy5nZXRDdXJzb3JQb3NpdGlvbih0KTtvIT09bnVsbCYmKHRoaXMubGFzdEtub3duQ3Vyc29yUG9zaXRpb249byl9LDApfSksYS5hZGRFdmVudExpc3RlbmVyKCJrZXl1cCIsbj0+e2xldCBvPXRoaXMuZ2V0Q3Vyc29yUG9zaXRpb24odCk7byE9PW51bGwmJih0aGlzLmxhc3RLbm93bkN1cnNvclBvc2l0aW9uPW8pfSksdGhpcy5zZXR1cFNlbGVjdGlvbkhhbmRsZXIodCxhLHIpfXNldHVwU2VsZWN0aW9uSGFuZGxlcih0LHIsaSl7bGV0IGE9KCk9PntsZXQgbz13aW5kb3cuZ2V0U2VsZWN0aW9uKCk7aWYoIW98fG8ucmFuZ2VDb3VudD09PTApcmV0dXJuO2xldCBzPW8udG9TdHJpbmcoKTtpZihzLmxlbmd0aD09PTApe3RoaXMubGFzdFNlbGVjdGVkVGV4dCYmKHRoaXMubGFzdFNlbGVjdGVkVGV4dD0iIix0aGlzLmRpc3BhdGNoU2VsZWN0aW9uRXZlbnQodCx7dGV4dDoiIixibG9ja0lkOmkuaWQsaGFzU2VsZWN0aW9uOiExfSkpO3JldHVybn1sZXQgbD1yLmdldFJvb3ROb2RlKCkuaG9zdCx1PWw/LmNsb3Nlc3QoImRlZXMtaW5wdXQtd3lzaXd5ZyIpPy5zaGFkb3dSb290LGQ9bD8uc2hhZG93Um9vdCxoPVtdO3UmJmgucHVzaCh1KSxkJiZoLnB1c2goZCk7bGV0IGY9WWUuZ2V0U2VsZWN0aW9uSW5mbyguLi5oKTtpZighZilyZXR1cm47bGV0IHg9WWUuY29udGFpbnNBY3Jvc3NTaGFkb3dET00ocixmLnN0YXJ0Q29udGFpbmVyKSx2PVllLmNvbnRhaW5zQWNyb3NzU2hhZG93RE9NKHIsZi5lbmRDb250YWluZXIpO2lmKHh8fHYpe2lmKHMhPT10aGlzLmxhc3RTZWxlY3RlZFRleHQpe3RoaXMubGFzdFNlbGVjdGVkVGV4dD1zO2xldCBiPVllLmNyZWF0ZVJhbmdlRnJvbUluZm8oZikseT1iLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO3RoaXMuZGlzcGF0Y2hTZWxlY3Rpb25FdmVudCh0LHt0ZXh0OnMudHJpbSgpLGJsb2NrSWQ6aS5pZCxyYW5nZTpiLHJlY3Q6eSxoYXNTZWxlY3Rpb246ITB9KX19ZWxzZSB0aGlzLmxhc3RTZWxlY3RlZFRleHQmJih0aGlzLmxhc3RTZWxlY3RlZFRleHQ9IiIsdGhpcy5kaXNwYXRjaFNlbGVjdGlvbkV2ZW50KHQse3RleHQ6IiIsYmxvY2tJZDppLmlkLGhhc1NlbGVjdGlvbjohMX0pKX07ZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigic2VsZWN0aW9uY2hhbmdlIixhKSx0aGlzLnNlbGVjdGlvbkhhbmRsZXI9YTtsZXQgbj1yLmdldFJvb3ROb2RlKCkuaG9zdDtpZihuKXtsZXQgbz1uLmRpc2Nvbm5lY3RlZENhbGxiYWNrO24uZGlzY29ubmVjdGVkQ2FsbGJhY2s9YXN5bmMgZnVuY3Rpb24oKXt0aGlzLnNlbGVjdGlvbkhhbmRsZXImJihkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCJzZWxlY3Rpb25jaGFuZ2UiLHRoaXMuc2VsZWN0aW9uSGFuZGxlciksdGhpcy5zZWxlY3Rpb25IYW5kbGVyPW51bGwpLG8mJmF3YWl0IG8uY2FsbChuKX0uYmluZCh0aGlzKX19ZGlzcGF0Y2hTZWxlY3Rpb25FdmVudCh0LHIpe2xldCBpPW5ldyBDdXN0b21FdmVudCgiYmxvY2stdGV4dC1zZWxlY3RlZCIse2RldGFpbDpyLGJ1YmJsZXM6ITAsY29tcG9zZWQ6ITB9KTt0LmRpc3BhdGNoRXZlbnQoaSl9Z2V0U3R5bGVzKCl7cmV0dXJuYAogICAgICAuYmxvY2suaGVhZGluZy0xIHsKICAgICAgICBmb250LXNpemU6IDMycHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDcwMDsKICAgICAgICBsaW5lLWhlaWdodDogMS4yOwogICAgICAgIG1hcmdpbjogMjRweCAwIDhweCAwOwogICAgICAgIGNvbG9yOiAke20uYmRUaGVtZSgiIzAwMDAwMCIsIiNmZmZmZmYiKX07CiAgICAgIH0KCiAgICAgIC5ibG9jay5oZWFkaW5nLTIgewogICAgICAgIGZvbnQtc2l6ZTogMjRweDsKICAgICAgICBmb250LXdlaWdodDogNjAwOwogICAgICAgIGxpbmUtaGVpZ2h0OiAxLjM7CiAgICAgICAgbWFyZ2luOiAyMHB4IDAgNnB4IDA7CiAgICAgICAgY29sb3I6ICR7bS5iZFRoZW1lKCIjMDAwMDAwIiwiI2ZmZmZmZiIpfTsKICAgICAgfQoKICAgICAgLmJsb2NrLmhlYWRpbmctMyB7CiAgICAgICAgZm9udC1zaXplOiAyMHB4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7CiAgICAgICAgbGluZS1oZWlnaHQ6IDEuNDsKICAgICAgICBtYXJnaW46IDE2cHggMCA0cHggMDsKICAgICAgICBjb2xvcjogJHttLmJkVGhlbWUoIiMwMDAwMDAiLCIjZmZmZmZmIil9OwogICAgICB9CiAgICBgfWdldFBsYWNlaG9sZGVyKCl7c3dpdGNoKHRoaXMubGV2ZWwpe2Nhc2UgMTpyZXR1cm4iSGVhZGluZyAxIjtjYXNlIDI6cmV0dXJuIkhlYWRpbmcgMiI7Y2FzZSAzOnJldHVybiJIZWFkaW5nIDMiO2RlZmF1bHQ6cmV0dXJuIkhlYWRpbmcifX1nZXRMYXN0VGV4dE5vZGUodCl7aWYodC5ub2RlVHlwZT09PU5vZGUuVEVYVF9OT0RFKXJldHVybiB0O2ZvcihsZXQgcj10LmNoaWxkTm9kZXMubGVuZ3RoLTE7cj49MDtyLS0pe2xldCBpPXRoaXMuZ2V0TGFzdFRleHROb2RlKHQuY2hpbGROb2Rlc1tyXSk7aWYoaSlyZXR1cm4gaX1yZXR1cm4gbnVsbH1nZXRDdXJzb3JQb3NpdGlvbih0LHIpe2xldCBpPXQucXVlcnlTZWxlY3RvcihgLmJsb2NrLmhlYWRpbmctJHt0aGlzLmxldmVsfWApO2lmKCFpKXJldHVybiBudWxsO2xldCBvPXI/LmNvbXBvbmVudD8uY2xvc2VzdCgiZGVlcy1pbnB1dC13eXNpd3lnIik/LnNoYWRvd1Jvb3Qscz1yPy5zaGFkb3dSb290LGw9W107byYmbC5wdXNoKG8pLHMmJmwucHVzaChzKTtsZXQgYz1ZZS5nZXRTZWxlY3Rpb25JbmZvKC4uLmwpO2lmKCFjfHwhWWUuY29udGFpbnNBY3Jvc3NTaGFkb3dET00oaSxjLnN0YXJ0Q29udGFpbmVyKSlyZXR1cm4gbnVsbDtsZXQgdT1kb2N1bWVudC5jcmVhdGVSYW5nZSgpO3JldHVybiB1LnNlbGVjdE5vZGVDb250ZW50cyhpKSx1LnNldEVuZChjLnN0YXJ0Q29udGFpbmVyLGMuc3RhcnRPZmZzZXQpLHUudG9TdHJpbmcoKS5sZW5ndGh9Z2V0Q29udGVudCh0LHIpe2xldCBpPXQucXVlcnlTZWxlY3RvcihgLmJsb2NrLmhlYWRpbmctJHt0aGlzLmxldmVsfWApO3JldHVybiBpJiZpLmlubmVySFRNTHx8IiJ9c2V0Q29udGVudCh0LHIsaSl7bGV0IGE9dC5xdWVyeVNlbGVjdG9yKGAuYmxvY2suaGVhZGluZy0ke3RoaXMubGV2ZWx9YCk7aWYoIWEpcmV0dXJuO2xldCBuPWRvY3VtZW50LmFjdGl2ZUVsZW1lbnQ9PT1hfHx0LnNoYWRvd1Jvb3Q/LmFjdGl2ZUVsZW1lbnQ9PT1hO2EuaW5uZXJIVE1MPXIsbiYmYS5mb2N1cygpfXNldEN1cnNvclRvU3RhcnQodCxyKXtsZXQgaT10LnF1ZXJ5U2VsZWN0b3IoYC5ibG9jay5oZWFkaW5nLSR7dGhpcy5sZXZlbH1gKTtpJiZhYS5zZXRDdXJzb3JUb1N0YXJ0KGkpfXNldEN1cnNvclRvRW5kKHQscil7bGV0IGk9dC5xdWVyeVNlbGVjdG9yKGAuYmxvY2suaGVhZGluZy0ke3RoaXMubGV2ZWx9YCk7aSYmYWEuc2V0Q3Vyc29yVG9FbmQoaSl9Zm9jdXModCxyKXtsZXQgaT10LnF1ZXJ5U2VsZWN0b3IoYC5ibG9jay5oZWFkaW5nLSR7dGhpcy5sZXZlbH1gKTtpJiYoaS5oYXNBdHRyaWJ1dGUoImNvbnRlbnRlZGl0YWJsZSIpfHxpLnNldEF0dHJpYnV0ZSgiY29udGVudGVkaXRhYmxlIiwidHJ1ZSIpLGkuZm9jdXMoKSxkb2N1bWVudC5hY3RpdmVFbGVtZW50IT09aSYmdC5zaGFkb3dSb290Py5hY3RpdmVFbGVtZW50IT09aSYmUHJvbWlzZS5yZXNvbHZlKCkudGhlbigoKT0+e2kuZm9jdXMoKX0pKX1mb2N1c1dpdGhDdXJzb3IodCxyPSJlbmQiLGkpe2xldCBhPXQucXVlcnlTZWxlY3RvcihgLmJsb2NrLmhlYWRpbmctJHt0aGlzLmxldmVsfWApO2lmKCFhKXJldHVybjtpZihhLmhhc0F0dHJpYnV0ZSgiY29udGVudGVkaXRhYmxlIil8fGEuc2V0QXR0cmlidXRlKCJjb250ZW50ZWRpdGFibGUiLCJ0cnVlIikscj09PSJlbmQiJiZhLnRleHRDb250ZW50JiZhLnRleHRDb250ZW50Lmxlbmd0aD4wKXtsZXQgbz13aW5kb3cuZ2V0U2VsZWN0aW9uKCk7aWYobyl7bGV0IHM9ZG9jdW1lbnQuY3JlYXRlUmFuZ2UoKSxsPXRoaXMuZ2V0TGFzdFRleHROb2RlKGEpfHxhO2wubm9kZVR5cGU9PT1Ob2RlLlRFWFRfTk9ERT8ocy5zZXRTdGFydChsLGwudGV4dENvbnRlbnQ/Lmxlbmd0aHx8MCkscy5zZXRFbmQobCxsLnRleHRDb250ZW50Py5sZW5ndGh8fDApKToocy5zZWxlY3ROb2RlQ29udGVudHMobCkscy5jb2xsYXBzZSghMSkpLG8ucmVtb3ZlQWxsUmFuZ2VzKCksby5hZGRSYW5nZShzKX19YS5mb2N1cygpO2xldCBuPSgpPT57cj09PSJzdGFydCI/dGhpcy5zZXRDdXJzb3JUb1N0YXJ0KHQsaSk6cj09PSJlbmQiJiYoIWEudGV4dENvbnRlbnR8fGEudGV4dENvbnRlbnQubGVuZ3RoPT09MCk/dGhpcy5zZXRDdXJzb3JUb0VuZCh0LGkpOnR5cGVvZiByPT0ibnVtYmVyIiYmWWUuc2V0Q3Vyc29yUG9zaXRpb24oYSxyKX07ZG9jdW1lbnQuYWN0aXZlRWxlbWVudD09PWF8fHQuc2hhZG93Um9vdD8uYWN0aXZlRWxlbWVudD09PWE/bigpOlByb21pc2UucmVzb2x2ZSgpLnRoZW4oKCk9Pntkb2N1bWVudC5hY3RpdmVFbGVtZW50PT09YXx8dC5zaGFkb3dSb290Py5hY3RpdmVFbGVtZW50PT09YT9uKCk6c2V0VGltZW91dCgoKT0+eyhkb2N1bWVudC5hY3RpdmVFbGVtZW50PT09YXx8dC5zaGFkb3dSb290Py5hY3RpdmVFbGVtZW50PT09YSkmJm4oKX0sMTApfSl9Z2V0U3BsaXRDb250ZW50KHQscil7bGV0IGk9dC5xdWVyeVNlbGVjdG9yKGAuYmxvY2suaGVhZGluZy0ke3RoaXMubGV2ZWx9YCk7aWYoIWkpcmV0dXJuIG51bGw7bGV0IG89cj8uY29tcG9uZW50Py5jbG9zZXN0KCJkZWVzLWlucHV0LXd5c2l3eWciKT8uc2hhZG93Um9vdCxzPXI/LnNoYWRvd1Jvb3QsbD1bXTtvJiZsLnB1c2gobykscyYmbC5wdXNoKHMpO2xldCBjPVllLmdldFNlbGVjdGlvbkluZm8oLi4ubCk7aWYoIWMpe2lmKHRoaXMubGFzdEtub3duQ3Vyc29yUG9zaXRpb24hPT1udWxsKXtsZXQgdz1pLnRleHRDb250ZW50fHwiIixrPU1hdGgubWluKHRoaXMubGFzdEtub3duQ3Vyc29yUG9zaXRpb24sdy5sZW5ndGgpO3JldHVybntiZWZvcmU6dy5zdWJzdHJpbmcoMCxrKSxhZnRlcjp3LnN1YnN0cmluZyhrKX19cmV0dXJuIG51bGx9aWYoIVllLmNvbnRhaW5zQWNyb3NzU2hhZG93RE9NKGksYy5zdGFydENvbnRhaW5lcikpe2lmKHRoaXMubGFzdEtub3duQ3Vyc29yUG9zaXRpb24hPT1udWxsKXtsZXQgdz1pLnRleHRDb250ZW50fHwiIixrPU1hdGgubWluKHRoaXMubGFzdEtub3duQ3Vyc29yUG9zaXRpb24sdy5sZW5ndGgpO3JldHVybntiZWZvcmU6dy5zdWJzdHJpbmcoMCxrKSxhZnRlcjp3LnN1YnN0cmluZyhrKX19cmV0dXJuIG51bGx9bGV0IHU9dGhpcy5nZXRDdXJzb3JQb3NpdGlvbih0LHIpO2lmKHU9PT1udWxsfHx1PT09MClyZXR1cm57YmVmb3JlOiIiLGFmdGVyOmkuaW5uZXJIVE1MfTtsZXQgZD1kb2N1bWVudC5jcmVhdGVSYW5nZSgpLGg9ZG9jdW1lbnQuY3JlYXRlUmFuZ2UoKTtkLnNldFN0YXJ0KGksMCksZC5zZXRFbmQoYy5zdGFydENvbnRhaW5lcixjLnN0YXJ0T2Zmc2V0KSxoLnNldFN0YXJ0KGMuc3RhcnRDb250YWluZXIsYy5zdGFydE9mZnNldCksaC5zZXRFbmQoaSxpLmNoaWxkTm9kZXMubGVuZ3RoKTtsZXQgZj1kLmNsb25lQ29udGVudHMoKSx4PWguY2xvbmVDb250ZW50cygpLHY9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7di5hcHBlbmRDaGlsZChmKTtsZXQgYj12LmlubmVySFRNTDt2LmlubmVySFRNTD0iIix2LmFwcGVuZENoaWxkKHgpO2xldCB5PXYuaW5uZXJIVE1MO3JldHVybntiZWZvcmU6YixhZnRlcjp5fX19fSk7dmFyIE1iLEswcj1wKCgpPT57Sm4oKTt4ZSgpO3pjKCk7bmwoKTtNYj1jbGFzcyBleHRlbmRzIGYxe3R5cGU9InF1b3RlIjtsYXN0S25vd25DdXJzb3JQb3NpdGlvbj0wO2xhc3RTZWxlY3RlZFRleHQ9IiI7c2VsZWN0aW9uSGFuZGxlcj1udWxsO3JlbmRlcih0LHIpe2xldCBpPXI/IiBzZWxlY3RlZCI6IiIsYT10aGlzLmdldFBsYWNlaG9sZGVyKCk7cmV0dXJuYAogICAgICA8ZGl2CiAgICAgICAgY2xhc3M9ImJsb2NrIHF1b3RlJHtpfSIKICAgICAgICBjb250ZW50ZWRpdGFibGU9InRydWUiCiAgICAgICAgZGF0YS1wbGFjZWhvbGRlcj0iJHthfSIKICAgICAgICBkYXRhLWJsb2NrLWlkPSIke3QuaWR9IgogICAgICAgIGRhdGEtYmxvY2stdHlwZT0iJHt0LnR5cGV9IgogICAgICA+PC9kaXY+CiAgICBgfXNldHVwKHQscixpKXtsZXQgYT10LnF1ZXJ5U2VsZWN0b3IoIi5ibG9jay5xdW90ZSIpO2lmKCFhKXtjb25zb2xlLmVycm9yKCJRdW90ZUJsb2NrSGFuZGxlci5zZXR1cDogTm8gcXVvdGUgYmxvY2sgZWxlbWVudCBmb3VuZCIpO3JldHVybn1yLmNvbnRlbnQmJiFhLmlubmVySFRNTCYmKGEuaW5uZXJIVE1MPXIuY29udGVudCksYS5hZGRFdmVudExpc3RlbmVyKCJpbnB1dCIsbj0+e2kub25JbnB1dChuKTtsZXQgbz10aGlzLmdldEN1cnNvclBvc2l0aW9uKHQpO28hPT1udWxsJiYodGhpcy5sYXN0S25vd25DdXJzb3JQb3NpdGlvbj1vKX0pLGEuYWRkRXZlbnRMaXN0ZW5lcigia2V5ZG93biIsbj0+e2xldCBvPXRoaXMuZ2V0Q3Vyc29yUG9zaXRpb24odCk7byE9PW51bGwmJih0aGlzLmxhc3RLbm93bkN1cnNvclBvc2l0aW9uPW8pLGkub25LZXlEb3duKG4pfSksYS5hZGRFdmVudExpc3RlbmVyKCJmb2N1cyIsKCk9PntpLm9uRm9jdXMoKX0pLGEuYWRkRXZlbnRMaXN0ZW5lcigiYmx1ciIsKCk9PntpLm9uQmx1cigpfSksYS5hZGRFdmVudExpc3RlbmVyKCJjb21wb3NpdGlvbnN0YXJ0IiwoKT0+e2kub25Db21wb3NpdGlvblN0YXJ0KCl9KSxhLmFkZEV2ZW50TGlzdGVuZXIoImNvbXBvc2l0aW9uZW5kIiwoKT0+e2kub25Db21wb3NpdGlvbkVuZCgpfSksYS5hZGRFdmVudExpc3RlbmVyKCJtb3VzZXVwIixuPT57bGV0IG89dGhpcy5nZXRDdXJzb3JQb3NpdGlvbih0KTtvIT09bnVsbCYmKHRoaXMubGFzdEtub3duQ3Vyc29yUG9zaXRpb249byksaS5vbk1vdXNlVXA/LihuKX0pLGEuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLG49PntzZXRUaW1lb3V0KCgpPT57bGV0IG89dGhpcy5nZXRDdXJzb3JQb3NpdGlvbih0KTtvIT09bnVsbCYmKHRoaXMubGFzdEtub3duQ3Vyc29yUG9zaXRpb249byl9LDApfSksYS5hZGRFdmVudExpc3RlbmVyKCJrZXl1cCIsbj0+e2xldCBvPXRoaXMuZ2V0Q3Vyc29yUG9zaXRpb24odCk7byE9PW51bGwmJih0aGlzLmxhc3RLbm93bkN1cnNvclBvc2l0aW9uPW8pfSksdGhpcy5zZXR1cFNlbGVjdGlvbkhhbmRsZXIodCxhLHIpfXNldHVwU2VsZWN0aW9uSGFuZGxlcih0LHIsaSl7bGV0IGE9KCk9PntsZXQgbz13aW5kb3cuZ2V0U2VsZWN0aW9uKCk7aWYoIW98fG8ucmFuZ2VDb3VudD09PTApcmV0dXJuO2xldCBzPW8udG9TdHJpbmcoKTtpZihzLmxlbmd0aD09PTApe3RoaXMubGFzdFNlbGVjdGVkVGV4dCYmKHRoaXMubGFzdFNlbGVjdGVkVGV4dD0iIix0aGlzLmRpc3BhdGNoU2VsZWN0aW9uRXZlbnQodCx7dGV4dDoiIixibG9ja0lkOmkuaWQsaGFzU2VsZWN0aW9uOiExfSkpO3JldHVybn1sZXQgbD1yLmdldFJvb3ROb2RlKCkuaG9zdCx1PWw/LmNsb3Nlc3QoImRlZXMtaW5wdXQtd3lzaXd5ZyIpPy5zaGFkb3dSb290LGQ9bD8uc2hhZG93Um9vdCxoPVtdO3UmJmgucHVzaCh1KSxkJiZoLnB1c2goZCk7bGV0IGY9WWUuZ2V0U2VsZWN0aW9uSW5mbyguLi5oKTtpZighZilyZXR1cm47bGV0IHg9WWUuY29udGFpbnNBY3Jvc3NTaGFkb3dET00ocixmLnN0YXJ0Q29udGFpbmVyKSx2PVllLmNvbnRhaW5zQWNyb3NzU2hhZG93RE9NKHIsZi5lbmRDb250YWluZXIpO2lmKHh8fHYpe2lmKHMhPT10aGlzLmxhc3RTZWxlY3RlZFRleHQpe3RoaXMubGFzdFNlbGVjdGVkVGV4dD1zO2xldCBiPVllLmNyZWF0ZVJhbmdlRnJvbUluZm8oZikseT1iLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO3RoaXMuZGlzcGF0Y2hTZWxlY3Rpb25FdmVudCh0LHt0ZXh0OnMudHJpbSgpLGJsb2NrSWQ6aS5pZCxyYW5nZTpiLHJlY3Q6eSxoYXNTZWxlY3Rpb246ITB9KX19ZWxzZSB0aGlzLmxhc3RTZWxlY3RlZFRleHQmJih0aGlzLmxhc3RTZWxlY3RlZFRleHQ9IiIsdGhpcy5kaXNwYXRjaFNlbGVjdGlvbkV2ZW50KHQse3RleHQ6IiIsYmxvY2tJZDppLmlkLGhhc1NlbGVjdGlvbjohMX0pKX07ZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigic2VsZWN0aW9uY2hhbmdlIixhKSx0aGlzLnNlbGVjdGlvbkhhbmRsZXI9YTtsZXQgbj1yLmdldFJvb3ROb2RlKCkuaG9zdDtpZihuKXtsZXQgbz1uLmRpc2Nvbm5lY3RlZENhbGxiYWNrO24uZGlzY29ubmVjdGVkQ2FsbGJhY2s9YXN5bmMgZnVuY3Rpb24oKXt0aGlzLnNlbGVjdGlvbkhhbmRsZXImJihkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCJzZWxlY3Rpb25jaGFuZ2UiLHRoaXMuc2VsZWN0aW9uSGFuZGxlciksdGhpcy5zZWxlY3Rpb25IYW5kbGVyPW51bGwpLG8mJmF3YWl0IG8uY2FsbChuKX0uYmluZCh0aGlzKX19ZGlzcGF0Y2hTZWxlY3Rpb25FdmVudCh0LHIpe2xldCBpPW5ldyBDdXN0b21FdmVudCgiYmxvY2stdGV4dC1zZWxlY3RlZCIse2RldGFpbDpyLGJ1YmJsZXM6ITAsY29tcG9zZWQ6ITB9KTt0LmRpc3BhdGNoRXZlbnQoaSl9Z2V0U3R5bGVzKCl7cmV0dXJuYAogICAgICAvKiBRdW90ZSBzcGVjaWZpYyBzdHlsZXMgKi8KICAgICAgLmJsb2NrLnF1b3RlIHsKICAgICAgICBib3JkZXItbGVmdDogM3B4IHNvbGlkICR7bS5iZFRoZW1lKCIjMDA2NmNjIiwiIzRkOTRmZiIpfTsKICAgICAgICBwYWRkaW5nLWxlZnQ6IDIwcHg7CiAgICAgICAgY29sb3I6ICR7bS5iZFRoZW1lKCIjNTU1IiwiI2IwYjBiMCIpfTsKICAgICAgICBmb250LXN0eWxlOiBpdGFsaWM7CiAgICAgICAgbGluZS1oZWlnaHQ6IDEuNjsKICAgICAgICBtYXJnaW46IDE2cHggMDsKICAgICAgfQogICAgYH1nZXRQbGFjZWhvbGRlcigpe3JldHVybiJBZGQgYSBxdW90ZS4uLiJ9Z2V0Q3Vyc29yUG9zaXRpb24odCxyKXtsZXQgaT10LnF1ZXJ5U2VsZWN0b3IoIi5ibG9jay5xdW90ZSIpO2lmKCFpKXJldHVybiBudWxsO2xldCBvPXI/LmNvbXBvbmVudD8uY2xvc2VzdCgiZGVlcy1pbnB1dC13eXNpd3lnIik/LnNoYWRvd1Jvb3Qscz1yPy5zaGFkb3dSb290LGw9W107byYmbC5wdXNoKG8pLHMmJmwucHVzaChzKTtsZXQgYz1ZZS5nZXRTZWxlY3Rpb25JbmZvKC4uLmwpO2lmKCFjfHwhWWUuY29udGFpbnNBY3Jvc3NTaGFkb3dET00oaSxjLnN0YXJ0Q29udGFpbmVyKSlyZXR1cm4gbnVsbDtsZXQgdT1kb2N1bWVudC5jcmVhdGVSYW5nZSgpO3JldHVybiB1LnNlbGVjdE5vZGVDb250ZW50cyhpKSx1LnNldEVuZChjLnN0YXJ0Q29udGFpbmVyLGMuc3RhcnRPZmZzZXQpLHUudG9TdHJpbmcoKS5sZW5ndGh9Z2V0Q29udGVudCh0LHIpe2xldCBpPXQucXVlcnlTZWxlY3RvcigiLmJsb2NrLnF1b3RlIik7cmV0dXJuIGkmJmkuaW5uZXJIVE1MfHwiIn1zZXRDb250ZW50KHQscixpKXtsZXQgYT10LnF1ZXJ5U2VsZWN0b3IoIi5ibG9jay5xdW90ZSIpO2lmKCFhKXJldHVybjtsZXQgbj1kb2N1bWVudC5hY3RpdmVFbGVtZW50PT09YXx8dC5zaGFkb3dSb290Py5hY3RpdmVFbGVtZW50PT09YTthLmlubmVySFRNTD1yLG4mJmEuZm9jdXMoKX1zZXRDdXJzb3JUb1N0YXJ0KHQscil7bGV0IGk9dC5xdWVyeVNlbGVjdG9yKCIuYmxvY2sucXVvdGUiKTtpJiZhYS5zZXRDdXJzb3JUb1N0YXJ0KGkpfXNldEN1cnNvclRvRW5kKHQscil7bGV0IGk9dC5xdWVyeVNlbGVjdG9yKCIuYmxvY2sucXVvdGUiKTtpJiZhYS5zZXRDdXJzb3JUb0VuZChpKX1mb2N1cyh0LHIpe2xldCBpPXQucXVlcnlTZWxlY3RvcigiLmJsb2NrLnF1b3RlIik7aSYmKGkuaGFzQXR0cmlidXRlKCJjb250ZW50ZWRpdGFibGUiKXx8aS5zZXRBdHRyaWJ1dGUoImNvbnRlbnRlZGl0YWJsZSIsInRydWUiKSxpLmZvY3VzKCksZG9jdW1lbnQuYWN0aXZlRWxlbWVudCE9PWkmJnQuc2hhZG93Um9vdD8uYWN0aXZlRWxlbWVudCE9PWkmJlByb21pc2UucmVzb2x2ZSgpLnRoZW4oKCk9PntpLmZvY3VzKCl9KSl9Zm9jdXNXaXRoQ3Vyc29yKHQscj0iZW5kIixpKXtsZXQgYT10LnF1ZXJ5U2VsZWN0b3IoIi5ibG9jay5xdW90ZSIpO2lmKCFhKXJldHVybjthLmhhc0F0dHJpYnV0ZSgiY29udGVudGVkaXRhYmxlIil8fGEuc2V0QXR0cmlidXRlKCJjb250ZW50ZWRpdGFibGUiLCJ0cnVlIiksYS5mb2N1cygpO2xldCBuPSgpPT57cj09PSJzdGFydCI/dGhpcy5zZXRDdXJzb3JUb1N0YXJ0KHQsaSk6cj09PSJlbmQiP3RoaXMuc2V0Q3Vyc29yVG9FbmQodCxpKTp0eXBlb2Ygcj09Im51bWJlciImJlllLnNldEN1cnNvclBvc2l0aW9uKGEscil9O2RvY3VtZW50LmFjdGl2ZUVsZW1lbnQ9PT1hfHx0LnNoYWRvd1Jvb3Q/LmFjdGl2ZUVsZW1lbnQ9PT1hP24oKTpQcm9taXNlLnJlc29sdmUoKS50aGVuKCgpPT57KGRvY3VtZW50LmFjdGl2ZUVsZW1lbnQ9PT1hfHx0LnNoYWRvd1Jvb3Q/LmFjdGl2ZUVsZW1lbnQ9PT1hKSYmbigpfSl9Z2V0U3BsaXRDb250ZW50KHQscil7bGV0IGk9dC5xdWVyeVNlbGVjdG9yKCIuYmxvY2sucXVvdGUiKTtpZighaSlyZXR1cm4gbnVsbDtsZXQgbz1yPy5jb21wb25lbnQ/LmNsb3Nlc3QoImRlZXMtaW5wdXQtd3lzaXd5ZyIpPy5zaGFkb3dSb290LHM9cj8uc2hhZG93Um9vdCxsPVtdO28mJmwucHVzaChvKSxzJiZsLnB1c2gocyk7bGV0IGM9WWUuZ2V0U2VsZWN0aW9uSW5mbyguLi5sKTtpZighYyl7aWYodGhpcy5sYXN0S25vd25DdXJzb3JQb3NpdGlvbiE9PW51bGwpe2xldCB3PWkudGV4dENvbnRlbnR8fCIiLGs9TWF0aC5taW4odGhpcy5sYXN0S25vd25DdXJzb3JQb3NpdGlvbix3Lmxlbmd0aCk7cmV0dXJue2JlZm9yZTp3LnN1YnN0cmluZygwLGspLGFmdGVyOncuc3Vic3RyaW5nKGspfX1yZXR1cm4gbnVsbH1pZighWWUuY29udGFpbnNBY3Jvc3NTaGFkb3dET00oaSxjLnN0YXJ0Q29udGFpbmVyKSl7aWYodGhpcy5sYXN0S25vd25DdXJzb3JQb3NpdGlvbiE9PW51bGwpe2xldCB3PWkudGV4dENvbnRlbnR8fCIiLGs9TWF0aC5taW4odGhpcy5sYXN0S25vd25DdXJzb3JQb3NpdGlvbix3Lmxlbmd0aCk7cmV0dXJue2JlZm9yZTp3LnN1YnN0cmluZygwLGspLGFmdGVyOncuc3Vic3RyaW5nKGspfX1yZXR1cm4gbnVsbH1sZXQgdT10aGlzLmdldEN1cnNvclBvc2l0aW9uKHQscik7aWYodT09PW51bGx8fHU9PT0wKXJldHVybntiZWZvcmU6IiIsYWZ0ZXI6aS5pbm5lckhUTUx9O2xldCBkPWRvY3VtZW50LmNyZWF0ZVJhbmdlKCksaD1kb2N1bWVudC5jcmVhdGVSYW5nZSgpO2Quc2V0U3RhcnQoaSwwKSxkLnNldEVuZChjLnN0YXJ0Q29udGFpbmVyLGMuc3RhcnRPZmZzZXQpLGguc2V0U3RhcnQoYy5zdGFydENvbnRhaW5lcixjLnN0YXJ0T2Zmc2V0KSxoLnNldEVuZChpLGkuY2hpbGROb2Rlcy5sZW5ndGgpO2xldCBmPWQuY2xvbmVDb250ZW50cygpLHg9aC5jbG9uZUNvbnRlbnRzKCksdj1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTt2LmFwcGVuZENoaWxkKGYpO2xldCBiPXYuaW5uZXJIVE1MO3YuaW5uZXJIVE1MPSIiLHYuYXBwZW5kQ2hpbGQoeCk7bGV0IHk9di5pbm5lckhUTUw7cmV0dXJue2JlZm9yZTpiLGFmdGVyOnl9fX19KTt2YXIga2IsZTRyPXAoKCk9PntKbigpO3hlKCk7bmwoKTtRYSgpO2lGKCk7QjQoKTtrYj1jbGFzcyBleHRlbmRzIGYxe3R5cGU9ImNvZGUiO2hpZ2hsaWdodFRpbWVyPW51bGw7aGlnaGxpZ2h0SnM9bnVsbDtyZW5kZXIodCxyKXtsZXQgaT10Lm1ldGFkYXRhPy5sYW5ndWFnZXx8InR5cGVzY3JpcHQiLGE9dC5jb250ZW50fHwiIixuPWEuc3BsaXQoYApgKS5sZW5ndGgsbz0iIjtmb3IobGV0IGw9MTtsPD1uO2wrKylvKz1gPGRpdiBjbGFzcz0ibGluZS1udW1iZXIiPiR7bH08L2Rpdj5gO2xldCBzPXhiLm1hcChsPT57bGV0IGM9bC50b0xvd2VyQ2FzZSgpO3JldHVybmA8b3B0aW9uIHZhbHVlPSIke2N9IiAke2M9PT1pPyJzZWxlY3RlZCI6IiJ9PiR7bH08L29wdGlvbj5gfSkuam9pbigiIik7cmV0dXJuYAogICAgICA8ZGl2IGNsYXNzPSJjb2RlLWJsb2NrLWNvbnRhaW5lciR7cj8iIHNlbGVjdGVkIjoiIn0iIGRhdGEtbGFuZ3VhZ2U9IiR7aX0iPgogICAgICAgIDxkaXYgY2xhc3M9ImNvZGUtaGVhZGVyIj4KICAgICAgICAgIDxzZWxlY3QgY2xhc3M9Imxhbmd1YWdlLXNlbGVjdG9yIiBkYXRhLWJsb2NrLWlkPSIke3QuaWR9Ij4KICAgICAgICAgICAgJHtzfQogICAgICAgICAgPC9zZWxlY3Q+CiAgICAgICAgICA8YnV0dG9uIGNsYXNzPSJjb3B5LWJ1dHRvbiIgdGl0bGU9IkNvcHkgY29kZSI+CiAgICAgICAgICAgIDxzdmcgY2xhc3M9ImNvcHktaWNvbiIgd2lkdGg9IjE2IiBoZWlnaHQ9IjE2IiB2aWV3Qm94PSIwIDAgMTYgMTYiIGZpbGw9ImN1cnJlbnRDb2xvciI+CiAgICAgICAgICAgICAgPHBhdGggZD0iTTAgNi43NUMwIDUuNzg0Ljc4NCA1IDEuNzUgNWgxLjVhLjc1Ljc1IDAgMDEwIDEuNWgtMS41YS4yNS4yNSAwIDAwLS4yNS4yNXY3LjVjMCAuMTM4LjExMi4yNS4yNS4yNWg3LjVhLjI1LjI1IDAgMDAuMjUtLjI1di0xLjVhLjc1Ljc1IDAgMDExLjUgMHYxLjVBMS43NSAxLjc1IDAgMDE5LjI1IDE2aC03LjVBMS43NSAxLjc1IDAgMDEwIDE0LjI1di03LjV6Ij48L3BhdGg+CiAgICAgICAgICAgICAgPHBhdGggZD0iTTUgMS43NUM1IC43ODQgNS43ODQgMCA2Ljc1IDBoNy41QzE1LjIxNiAwIDE2IC43ODQgMTYgMS43NXY3LjVBMS43NSAxLjc1IDAgMDExNC4yNSAxMWgtNy41QTEuNzUgMS43NSAwIDAxNSA5LjI1di03LjV6bTEuNzUtLjI1YS4yNS4yNSAwIDAwLS4yNS4yNXY3LjVjMCAuMTM4LjExMi4yNS4yNS4yNWg3LjVhLjI1LjI1IDAgMDAuMjUtLjI1di03LjVhLjI1LjI1IDAgMDAtLjI1LS4yNWgtNy41eiI+PC9wYXRoPgogICAgICAgICAgICA8L3N2Zz4KICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImNvcHktdGV4dCI+Q29weTwvc3Bhbj4KICAgICAgICAgIDwvYnV0dG9uPgogICAgICAgIDwvZGl2PgogICAgICAgIDxkaXYgY2xhc3M9ImNvZGUtYm9keSI+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJsaW5lLW51bWJlcnMiPiR7b308L2Rpdj4KICAgICAgICAgIDxkaXYgY2xhc3M9ImNvZGUtY29udGVudCI+CiAgICAgICAgICAgIDxwcmUgY2xhc3M9ImNvZGUtcHJlIj48Y29kZSBjbGFzcz0iY29kZS1lZGl0b3IiIAogICAgICAgICAgICAgICAgIGNvbnRlbnRlZGl0YWJsZT0idHJ1ZSIKICAgICAgICAgICAgICAgICBkYXRhLWJsb2NrLWlkPSIke3QuaWR9IgogICAgICAgICAgICAgICAgIGRhdGEtYmxvY2stdHlwZT0iJHt0LnR5cGV9IgogICAgICAgICAgICAgICAgIHNwZWxsY2hlY2s9ImZhbHNlIj4ke3RoaXMuZXNjYXBlSHRtbChhKX08L2NvZGU+PC9wcmU+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICA8L2Rpdj4KICAgICAgPC9kaXY+CiAgICBgfXNldHVwKHQscixpKXtsZXQgYT10LnF1ZXJ5U2VsZWN0b3IoIi5jb2RlLWVkaXRvciIpLG49dC5xdWVyeVNlbGVjdG9yKCIuY29kZS1ibG9jay1jb250YWluZXIiKSxvPXQucXVlcnlTZWxlY3RvcigiLmNvcHktYnV0dG9uIikscz10LnF1ZXJ5U2VsZWN0b3IoIi5sYW5ndWFnZS1zZWxlY3RvciIpO2lmKCFhfHwhbilyZXR1cm47cyYmcy5hZGRFdmVudExpc3RlbmVyKCJjaGFuZ2UiLGM9PntsZXQgdT1jLnRhcmdldC52YWx1ZTtyLm1ldGFkYXRhPXsuLi5yLm1ldGFkYXRhLGxhbmd1YWdlOnV9LG4uc2V0QXR0cmlidXRlKCJkYXRhLWxhbmd1YWdlIix1KSxyLmNvbnRlbnQmJmRvY3VtZW50LmFjdGl2ZUVsZW1lbnQhPT1hJiZ0aGlzLmFwcGx5SGlnaGxpZ2h0aW5nKHQsciksaS5vbklucHV0JiZpLm9uSW5wdXQobmV3IElucHV0RXZlbnQoImlucHV0IikpfSksbyYmby5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsYXN5bmMoKT0+e2xldCBjPWEudGV4dENvbnRlbnR8fCIiO3RyeXthd2FpdCBuYXZpZ2F0b3IuY2xpcGJvYXJkLndyaXRlVGV4dChjKTtsZXQgdT1vLnF1ZXJ5U2VsZWN0b3IoIi5jb3B5LXRleHQiKSxkPXUudGV4dENvbnRlbnQ7dS50ZXh0Q29udGVudD0iQ29waWVkISIsby5jbGFzc0xpc3QuYWRkKCJjb3BpZWQiKSxzZXRUaW1lb3V0KCgpPT57dS50ZXh0Q29udGVudD1kLG8uY2xhc3NMaXN0LnJlbW92ZSgiY29waWVkIil9LDJlMyl9Y2F0Y2godSl7Y29uc29sZS5lcnJvcigiRmFpbGVkIHRvIGNvcHk6Iix1KTtsZXQgZD1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJ0ZXh0YXJlYSIpO2QudmFsdWU9YyxkLnN0eWxlLnBvc2l0aW9uPSJmaXhlZCIsZC5zdHlsZS5vcGFjaXR5PSIwIixkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGQpLGQuc2VsZWN0KCk7dHJ5e2RvY3VtZW50LmV4ZWNDb21tYW5kKCJjb3B5Iik7bGV0IGg9by5xdWVyeVNlbGVjdG9yKCIuY29weS10ZXh0IiksZj1oLnRleHRDb250ZW50O2gudGV4dENvbnRlbnQ9IkNvcGllZCEiLG8uY2xhc3NMaXN0LmFkZCgiY29waWVkIiksc2V0VGltZW91dCgoKT0+e2gudGV4dENvbnRlbnQ9ZixvLmNsYXNzTGlzdC5yZW1vdmUoImNvcGllZCIpfSwyZTMpfWNhdGNoKGgpe2NvbnNvbGUuZXJyb3IoIkZhbGxiYWNrIGNvcHkgZmFpbGVkOiIsaCl9ZG9jdW1lbnQuYm9keS5yZW1vdmVDaGlsZChkKX19KTtsZXQgbD0hMTthLmFkZEV2ZW50TGlzdGVuZXIoImZvY3VzIiwoKT0+e2w9ITAsbi5jbGFzc0xpc3QuYWRkKCJlZGl0aW5nIik7bGV0IGM9YS50ZXh0Q29udGVudHx8IiI7YS50ZXh0Q29udGVudD1jLHJlcXVlc3RBbmltYXRpb25GcmFtZSgoKT0+e2xldCB1PWRvY3VtZW50LmNyZWF0ZVJhbmdlKCksZD13aW5kb3cuZ2V0U2VsZWN0aW9uKCk7YS5maXJzdENoaWxkJiYodS5zZXRTdGFydChhLmZpcnN0Q2hpbGQsMCksdS5jb2xsYXBzZSghMCksZD8ucmVtb3ZlQWxsUmFuZ2VzKCksZD8uYWRkUmFuZ2UodSkpfSksaS5vbkZvY3VzKCl9KSxhLmFkZEV2ZW50TGlzdGVuZXIoImJsdXIiLCgpPT57bD0hMSxuLmNsYXNzTGlzdC5yZW1vdmUoImVkaXRpbmciKSx0aGlzLmFwcGx5SGlnaGxpZ2h0aW5nKHQsciksaS5vbkJsdXIoKX0pLGEuYWRkRXZlbnRMaXN0ZW5lcigiaW5wdXQiLGM9PntpLm9uSW5wdXQoYyksdGhpcy51cGRhdGVMaW5lTnVtYmVycyh0KSxjbGVhclRpbWVvdXQodGhpcy5oaWdobGlnaHRUaW1lcil9KSxhLmFkZEV2ZW50TGlzdGVuZXIoImtleWRvd24iLGM9PntpZihjLmtleT09PSJUYWIiKXtjLnByZXZlbnREZWZhdWx0KCk7bGV0IHU9d2luZG93LmdldFNlbGVjdGlvbigpO2lmKHUmJnUucmFuZ2VDb3VudD4wKXtsZXQgZD11LmdldFJhbmdlQXQoMCksaD1kb2N1bWVudC5jcmVhdGVUZXh0Tm9kZSgiICAiKTtkLmluc2VydE5vZGUoaCksZC5zZXRTdGFydEFmdGVyKGgpLGQuc2V0RW5kQWZ0ZXIoaCksdS5yZW1vdmVBbGxSYW5nZXMoKSx1LmFkZFJhbmdlKGQpLGkub25JbnB1dChuZXcgSW5wdXRFdmVudCgiaW5wdXQiKSksdGhpcy51cGRhdGVMaW5lTnVtYmVycyh0KX1yZXR1cm59aWYoWyJBcnJvd0xlZnQiLCJBcnJvd1JpZ2h0IiwiQXJyb3dVcCIsIkFycm93RG93biJdLmluY2x1ZGVzKGMua2V5KSl7bGV0IHU9dGhpcy5nZXRDdXJzb3JQb3NpdGlvbih0KSxkPWEudGV4dENvbnRlbnQ/Lmxlbmd0aHx8MDtpZihjLmtleT09PSJBcnJvd0xlZnQiJiZ1PT09MHx8Yy5rZXk9PT0iQXJyb3dSaWdodCImJnU9PT1kKXtpLm9uS2V5RG93bihjKTtyZXR1cm59aWYoYy5rZXk9PT0iQXJyb3dVcCJ8fGMua2V5PT09IkFycm93RG93biIpe2xldCBoPShhLnRleHRDb250ZW50fHwiIikuc3BsaXQoYApgKSxmPXRoaXMuZ2V0Q3VycmVudExpbmVJbmRleChhKTtpZihjLmtleT09PSJBcnJvd1VwIiYmZj09PTB8fGMua2V5PT09IkFycm93RG93biImJmY9PT1oLmxlbmd0aC0xKXtpLm9uS2V5RG93bihjKTtyZXR1cm59fX1pLm9uS2V5RG93bihjKX0pLGEuYWRkRXZlbnRMaXN0ZW5lcigicGFzdGUiLGM9PntjLnByZXZlbnREZWZhdWx0KCk7bGV0IHU9Yy5jbGlwYm9hcmREYXRhPy5nZXREYXRhKCJ0ZXh0L3BsYWluIik7aWYodSl7bGV0IGQ9d2luZG93LmdldFNlbGVjdGlvbigpO2lmKGQmJmQucmFuZ2VDb3VudD4wKXtsZXQgaD1kLmdldFJhbmdlQXQoMCk7aC5kZWxldGVDb250ZW50cygpO2xldCBmPWRvY3VtZW50LmNyZWF0ZVRleHROb2RlKHUpO2guaW5zZXJ0Tm9kZShmKSxoLnNldFN0YXJ0QWZ0ZXIoZiksaC5zZXRFbmRBZnRlcihmKSxkLnJlbW92ZUFsbFJhbmdlcygpLGQuYWRkUmFuZ2UoaCksaS5vbklucHV0KG5ldyBJbnB1dEV2ZW50KCJpbnB1dCIpKSx0aGlzLnVwZGF0ZUxpbmVOdW1iZXJzKHQpfX19KSxhLmFkZEV2ZW50TGlzdGVuZXIoImNvbXBvc2l0aW9uc3RhcnQiLCgpPT5pLm9uQ29tcG9zaXRpb25TdGFydCgpKSxhLmFkZEV2ZW50TGlzdGVuZXIoImNvbXBvc2l0aW9uZW5kIiwoKT0+aS5vbkNvbXBvc2l0aW9uRW5kKCkpLHIuY29udGVudCYmZG9jdW1lbnQuYWN0aXZlRWxlbWVudCE9PWEmJnJlcXVlc3RBbmltYXRpb25GcmFtZSgoKT0+e3RoaXMuYXBwbHlIaWdobGlnaHRpbmcodCxyKX0pfXVwZGF0ZUxpbmVOdW1iZXJzKHQpe2xldCByPXQucXVlcnlTZWxlY3RvcigiLmNvZGUtZWRpdG9yIiksaT10LnF1ZXJ5U2VsZWN0b3IoIi5saW5lLW51bWJlcnMiKTtpZighcnx8IWkpcmV0dXJuO2xldCBvPShyLnRleHRDb250ZW50fHwiIikuc3BsaXQoYApgKS5sZW5ndGh8fDEscz0iIjtmb3IobGV0IGw9MTtsPD1vO2wrKylzKz1gPGRpdiBjbGFzcz0ibGluZS1udW1iZXIiPiR7bH08L2Rpdj5gO2kuaW5uZXJIVE1MPXN9Z2V0Q3VycmVudExpbmVJbmRleCh0KXtsZXQgcj13aW5kb3cuZ2V0U2VsZWN0aW9uKCk7aWYoIXJ8fHIucmFuZ2VDb3VudD09PTApcmV0dXJuIDA7bGV0IGk9ci5nZXRSYW5nZUF0KDApLGE9aS5jbG9uZVJhbmdlKCk7cmV0dXJuIGEuc2VsZWN0Tm9kZUNvbnRlbnRzKHQpLGEuc2V0RW5kKGkuc3RhcnRDb250YWluZXIsaS5zdGFydE9mZnNldCksYS50b1N0cmluZygpLnNwbGl0KGAKYCkubGVuZ3RoLTF9YXN5bmMgYXBwbHlIaWdobGlnaHRpbmcodCxyKXtsZXQgaT10LnF1ZXJ5U2VsZWN0b3IoIi5jb2RlLWVkaXRvciIpO2lmKCFpKXJldHVybjt0aGlzLmhpZ2hsaWdodEpzfHwodGhpcy5oaWdobGlnaHRKcz1hd2FpdCByYS5nZXRJbnN0YW5jZSgpLmxvYWRIaWdobGlnaHRKcygpKTtsZXQgYT10aGlzLmdldEN1cnNvclBvc2l0aW9uKHQpLG49aS50ZXh0Q29udGVudHx8IiIsbz1yLm1ldGFkYXRhPy5sYW5ndWFnZXx8InR5cGVzY3JpcHQiO3RyeXtsZXQgcz10aGlzLmhpZ2hsaWdodEpzLmhpZ2hsaWdodChuLHtsYW5ndWFnZTpvLGlnbm9yZUlsbGVnYWxzOiEwfSk7cy52YWx1ZSYmKGkuaW5uZXJIVE1MPXMudmFsdWUsZG9jdW1lbnQuYWN0aXZlRWxlbWVudD09PWkmJmEhPT1udWxsJiZyZXF1ZXN0QW5pbWF0aW9uRnJhbWUoKCk9PntZZS5zZXRDdXJzb3JQb3NpdGlvbihpLGEpfSkpfWNhdGNoKHMpe2NvbnNvbGUud2FybigiU3ludGF4IGhpZ2hsaWdodGluZyBmYWlsZWQ6IixzKX19ZXNjYXBlSHRtbCh0KXtsZXQgcj1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTtyZXR1cm4gci50ZXh0Q29udGVudD10LHIuaW5uZXJIVE1MfWdldENvbnRlbnQodCl7cmV0dXJuIHQucXVlcnlTZWxlY3RvcigiLmNvZGUtZWRpdG9yIik/LnRleHRDb250ZW50fHwiIn1zZXRDb250ZW50KHQscil7bGV0IGk9dC5xdWVyeVNlbGVjdG9yKCIuY29kZS1lZGl0b3IiKTtpZihpJiYoaS50ZXh0Q29udGVudD1yLHRoaXMudXBkYXRlTGluZU51bWJlcnModCksZG9jdW1lbnQuYWN0aXZlRWxlbWVudCE9PWkpKXtsZXQgYT17aWQ6aS5kYXRhc2V0LmJsb2NrSWR8fCIiLHR5cGU6ImNvZGUiLGNvbnRlbnQ6cixtZXRhZGF0YTp7bGFuZ3VhZ2U6dC5xdWVyeVNlbGVjdG9yKCIuY29kZS1ibG9jay1jb250YWluZXIiKT8uZ2V0QXR0cmlidXRlKCJkYXRhLWxhbmd1YWdlIil8fCJ0eXBlc2NyaXB0In19O3RoaXMuYXBwbHlIaWdobGlnaHRpbmcodCxhKX19Z2V0Q3Vyc29yUG9zaXRpb24odCl7bGV0IHI9dC5xdWVyeVNlbGVjdG9yKCIuY29kZS1lZGl0b3IiKTtpZighcilyZXR1cm4gbnVsbDtsZXQgaT13aW5kb3cuZ2V0U2VsZWN0aW9uKCk7aWYoIWl8fGkucmFuZ2VDb3VudD09PTApcmV0dXJuIG51bGw7bGV0IGE9aS5nZXRSYW5nZUF0KDApO2lmKCFyLmNvbnRhaW5zKGEuc3RhcnRDb250YWluZXIpKXJldHVybiBudWxsO2xldCBuPWRvY3VtZW50LmNyZWF0ZVJhbmdlKCk7cmV0dXJuIG4uc2VsZWN0Tm9kZUNvbnRlbnRzKHIpLG4uc2V0RW5kKGEuc3RhcnRDb250YWluZXIsYS5zdGFydE9mZnNldCksbi50b1N0cmluZygpLmxlbmd0aH1zZXRDdXJzb3JUb1N0YXJ0KHQpe2xldCByPXQucXVlcnlTZWxlY3RvcigiLmNvZGUtZWRpdG9yIik7ciYmWWUuc2V0Q3Vyc29yUG9zaXRpb24ociwwKX1zZXRDdXJzb3JUb0VuZCh0KXtsZXQgcj10LnF1ZXJ5U2VsZWN0b3IoIi5jb2RlLWVkaXRvciIpO2lmKHIpe2xldCBpPXIudGV4dENvbnRlbnQ/Lmxlbmd0aHx8MDtZZS5zZXRDdXJzb3JQb3NpdGlvbihyLGkpfX1mb2N1cyh0KXt0LnF1ZXJ5U2VsZWN0b3IoIi5jb2RlLWVkaXRvciIpPy5mb2N1cygpfWZvY3VzV2l0aEN1cnNvcih0LHI9ImVuZCIpe2xldCBpPXQucXVlcnlTZWxlY3RvcigiLmNvZGUtZWRpdG9yIik7aSYmKGkuZm9jdXMoKSxyZXF1ZXN0QW5pbWF0aW9uRnJhbWUoKCk9PntyPT09InN0YXJ0Ij90aGlzLnNldEN1cnNvclRvU3RhcnQodCk6cj09PSJlbmQiP3RoaXMuc2V0Q3Vyc29yVG9FbmQodCk6dHlwZW9mIHI9PSJudW1iZXIiJiZZZS5zZXRDdXJzb3JQb3NpdGlvbihpLHIpfSkpfWdldFNwbGl0Q29udGVudCh0KXtsZXQgcj10aGlzLmdldEN1cnNvclBvc2l0aW9uKHQpO2lmKHI9PT1udWxsKXJldHVybiBudWxsO2xldCBpPXRoaXMuZ2V0Q29udGVudCh0KTtyZXR1cm57YmVmb3JlOmkuc3Vic3RyaW5nKDAsciksYWZ0ZXI6aS5zdWJzdHJpbmcocil9fWdldFN0eWxlcygpe3JldHVybmAKICAgICAgLyogQ29kZSBCbG9jayBDb250YWluZXIgLSBNaW5pbWFsaXN0IHNoYWRjbiBzdHlsZSAqLwogICAgICAuY29kZS1ibG9jay1jb250YWluZXIgewogICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgICBtYXJnaW46IDEycHggMDsKICAgICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDsKICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAke20uYmRUaGVtZSgiI2U1ZTdlYiIsIiMzNzQxNTEiKX07CiAgICAgICAgYm9yZGVyLXJhZGl1czogNnB4OwogICAgICAgIG92ZXJmbG93OiBoaWRkZW47CiAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuMTVzIGVhc2U7CiAgICAgIH0KICAgICAgCiAgICAgIC5jb2RlLWJsb2NrLWNvbnRhaW5lci5zZWxlY3RlZCB7CiAgICAgICAgYm9yZGVyLWNvbG9yOiAke20uYmRUaGVtZSgiIzljYTNhZiIsIiM2YjcyODAiKX07CiAgICAgIH0KICAgICAgCiAgICAgIC5jb2RlLWJsb2NrLWNvbnRhaW5lci5lZGl0aW5nIHsKICAgICAgICBib3JkZXItY29sb3I6ICR7bS5iZFRoZW1lKCIjNmI3MjgwIiwiIzljYTNhZiIpfTsKICAgICAgICBiYWNrZ3JvdW5kOiAke20uYmRUaGVtZSgiI2ZhZmFmYSIsIiMwYTBhMGEiKX07CiAgICAgIH0KICAgICAgCiAgICAgIC8qIEhlYWRlciAtIFNpbXBsaWZpZWQgKi8KICAgICAgLmNvZGUtaGVhZGVyIHsKICAgICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDsKICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHttLmJkVGhlbWUoIiNlNWU3ZWIiLCIjMzc0MTUxIil9OwogICAgICAgIHBhZGRpbmc6IDhweCAxMnB4OwogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuOwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgIH0KICAgICAgCiAgICAgIC5sYW5ndWFnZS1zZWxlY3RvciB7CiAgICAgICAgZm9udC1zaXplOiAxMnB4OwogICAgICAgIGNvbG9yOiAke20uYmRUaGVtZSgiIzZiNzI4MCIsIiM5Y2EzYWYiKX07CiAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDsKICAgICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlOwogICAgICAgIGxldHRlci1zcGFjaW5nOiAwLjA1ZW07CiAgICAgICAgZm9udC1mYW1pbHk6ICR7SXJ9OwogICAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50OwogICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIHRyYW5zcGFyZW50OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDRweDsKICAgICAgICBwYWRkaW5nOiA0cHggOHB4OwogICAgICAgIGN1cnNvcjogcG9pbnRlcjsKICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC4xNXMgZWFzZTsKICAgICAgICBvdXRsaW5lOiBub25lOwogICAgICB9CiAgICAgIAogICAgICAubGFuZ3VhZ2Utc2VsZWN0b3I6aG92ZXIgewogICAgICAgIGJhY2tncm91bmQ6ICR7bS5iZFRoZW1lKCIjZjlmYWZiIiwiIzFmMjkzNyIpfTsKICAgICAgICBib3JkZXItY29sb3I6ICR7bS5iZFRoZW1lKCIjZTVlN2ViIiwiIzM3NDE1MSIpfTsKICAgICAgICBjb2xvcjogJHttLmJkVGhlbWUoIiMzNzQxNTEiLCIjZTVlN2ViIil9OwogICAgICB9CiAgICAgIAogICAgICAubGFuZ3VhZ2Utc2VsZWN0b3I6Zm9jdXMgewogICAgICAgIGJvcmRlci1jb2xvcjogJHttLmJkVGhlbWUoIiM5Y2EzYWYiLCIjNmI3MjgwIil9OwogICAgICB9CiAgICAgIAogICAgICAvKiBDb3B5IEJ1dHRvbiAtIE1pbmltYWwgKi8KICAgICAgLmNvcHktYnV0dG9uIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgZ2FwOiA0cHg7CiAgICAgICAgcGFkZGluZzogNHB4IDhweDsKICAgICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDsKICAgICAgICBib3JkZXI6IDFweCBzb2xpZCB0cmFuc3BhcmVudDsKICAgICAgICBib3JkZXItcmFkaXVzOiA0cHg7CiAgICAgICAgY29sb3I6ICR7bS5iZFRoZW1lKCIjNmI3MjgwIiwiIzljYTNhZiIpfTsKICAgICAgICBmb250LXNpemU6IDEycHg7CiAgICAgICAgZm9udC1mYW1pbHk6ICR7SXJ9OwogICAgICAgIGN1cnNvcjogcG9pbnRlcjsKICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC4xNXMgZWFzZTsKICAgICAgICBvdXRsaW5lOiBub25lOwogICAgICB9CiAgICAgIAogICAgICAuY29weS1idXR0b246aG92ZXIgewogICAgICAgIGJhY2tncm91bmQ6ICR7bS5iZFRoZW1lKCIjZjlmYWZiIiwiIzFmMjkzNyIpfTsKICAgICAgICBib3JkZXItY29sb3I6ICR7bS5iZFRoZW1lKCIjZTVlN2ViIiwiIzM3NDE1MSIpfTsKICAgICAgICBjb2xvcjogJHttLmJkVGhlbWUoIiMzNzQxNTEiLCIjZTVlN2ViIil9OwogICAgICB9CiAgICAgIAogICAgICAuY29weS1idXR0b246YWN0aXZlIHsKICAgICAgICB0cmFuc2Zvcm06IHNjYWxlKDAuOTgpOwogICAgICB9CiAgICAgIAogICAgICAuY29weS1idXR0b24uY29waWVkIHsKICAgICAgICBjb2xvcjogJHttLmJkVGhlbWUoIiMwNTk2NjkiLCIjMTBiOTgxIil9OwogICAgICB9CiAgICAgIAogICAgICAuY29weS1pY29uIHsKICAgICAgICBmbGV4LXNocmluazogMDsKICAgICAgICBvcGFjaXR5OiAwLjc7CiAgICAgIH0KICAgICAgCiAgICAgIC5jb3B5LWJ1dHRvbjpob3ZlciAuY29weS1pY29uIHsKICAgICAgICBvcGFjaXR5OiAxOwogICAgICB9CiAgICAgIAogICAgICAuY29weS10ZXh0IHsKICAgICAgICBtaW4td2lkdGg6IDQwcHg7CiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyOwogICAgICB9CiAgICAgIAogICAgICAvKiBDb2RlIEJvZHkgKi8KICAgICAgLmNvZGUtYm9keSB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgICAgYmFja2dyb3VuZDogJHttLmJkVGhlbWUoIiNmYWZhZmEiLCIjMGEwYTBhIil9OwogICAgICB9CiAgICAgIAogICAgICAvKiBMaW5lIE51bWJlcnMgLSBTdWJ0bGUgKi8KICAgICAgLmxpbmUtbnVtYmVycyB7CiAgICAgICAgZmxleC1zaHJpbms6IDA7CiAgICAgICAgcGFkZGluZzogMTJweCAwOwogICAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50OwogICAgICAgIHRleHQtYWxpZ246IHJpZ2h0OwogICAgICAgIHVzZXItc2VsZWN0OiBub25lOwogICAgICAgIG1pbi13aWR0aDogNDBweDsKICAgICAgICBib3JkZXItcmlnaHQ6IDFweCBzb2xpZCAke20uYmRUaGVtZSgiI2U1ZTdlYiIsIiMzNzQxNTEiKX07CiAgICAgIH0KICAgICAgCiAgICAgIC5saW5lLW51bWJlciB7CiAgICAgICAgcGFkZGluZzogMCAxMnB4IDAgOHB4OwogICAgICAgIGNvbG9yOiAke20uYmRUaGVtZSgiIzljYTNhZiIsIiM0YjU1NjMiKX07CiAgICAgICAgZm9udC1mYW1pbHk6ICR7QWR9OwogICAgICAgIGZvbnQtc2l6ZTogMTNweDsKICAgICAgICBsaW5lLWhlaWdodDogMjBweDsKICAgICAgICBoZWlnaHQ6IDIwcHg7CiAgICAgIH0KICAgICAgCiAgICAgIC8qIENvZGUgQ29udGVudCAqLwogICAgICAuY29kZS1jb250ZW50IHsKICAgICAgICBmbGV4OiAxOwogICAgICAgIG92ZXJmbG93LXg6IGF1dG87CiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICB9CiAgICAgIAogICAgICAuY29kZS1wcmUgewogICAgICAgIG1hcmdpbjogMDsKICAgICAgICBwYWRkaW5nOiAwOwogICAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50OwogICAgICB9CiAgICAgIAogICAgICAuY29kZS1lZGl0b3IgewogICAgICAgIGRpc3BsYXk6IGJsb2NrOwogICAgICAgIHBhZGRpbmc6IDEycHggMTZweDsKICAgICAgICBtYXJnaW46IDA7CiAgICAgICAgZm9udC1mYW1pbHk6ICR7QWR9OwogICAgICAgIGZvbnQtc2l6ZTogMTNweDsKICAgICAgICBsaW5lLWhlaWdodDogMjBweDsKICAgICAgICBjb2xvcjogJHttLmJkVGhlbWUoIiMxMTE4MjciLCIjZjlmYWZiIil9OwogICAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50OwogICAgICAgIGJvcmRlcjogbm9uZTsKICAgICAgICBvdXRsaW5lOiBub25lOwogICAgICAgIHdoaXRlLXNwYWNlOiBwcmUtd3JhcDsKICAgICAgICB3b3JkLXdyYXA6IGJyZWFrLXdvcmQ7CiAgICAgICAgbWluLWhlaWdodDogNjBweDsKICAgICAgICBvdmVyZmxvdzogdmlzaWJsZTsKICAgICAgfQogICAgICAKICAgICAgLyogUGxhY2Vob2xkZXIgKi8KICAgICAgLmNvZGUtZWRpdG9yOmVtcHR5OjpiZWZvcmUgewogICAgICAgIGNvbnRlbnQ6ICIvLyBUeXBlIG9yIHBhc3RlIGNvZGUgaGVyZS4uLiI7CiAgICAgICAgY29sb3I6ICR7bS5iZFRoZW1lKCIjOWNhM2FmIiwiIzRiNTU2MyIpfTsKICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTsKICAgICAgfQogICAgICAKICAgICAgLyogV2hlbiBlZGl0aW5nIChmb2N1c2VkKSwgc2hvdyBncmV5IHRleHQgd2l0aG91dCBoaWdobGlnaHRpbmcgKi8KICAgICAgLmNvZGUtYmxvY2stY29udGFpbmVyLmVkaXRpbmcgLmNvZGUtZWRpdG9yIHsKICAgICAgICBjb2xvcjogJHttLmJkVGhlbWUoIiM2YjcyODAiLCIjOWNhM2FmIil9ICFpbXBvcnRhbnQ7CiAgICAgIH0KICAgICAgCiAgICAgIC5jb2RlLWJsb2NrLWNvbnRhaW5lci5lZGl0aW5nIC5jb2RlLWVkaXRvciAqIHsKICAgICAgICBjb2xvcjogaW5oZXJpdCAhaW1wb3J0YW50OwogICAgICB9CiAgICAgIAogICAgICAvKiBTeW50YXggSGlnaGxpZ2h0aW5nIC0gTXV0ZWQgY29sb3JzICovCiAgICAgIC5jb2RlLWVkaXRvciAuaGxqcy1rZXl3b3JkIHsKICAgICAgICBjb2xvcjogJHttLmJkVGhlbWUoIiNkYzI2MjYiLCIjZjg3MTcxIil9OwogICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7CiAgICAgIH0KICAgICAgCiAgICAgIC5jb2RlLWVkaXRvciAuaGxqcy1zdHJpbmcgewogICAgICAgIGNvbG9yOiAke20uYmRUaGVtZSgiIzA1OTY2OSIsIiMxMGI5ODEiKX07CiAgICAgIH0KICAgICAgCiAgICAgIC5jb2RlLWVkaXRvciAuaGxqcy1udW1iZXIgewogICAgICAgIGNvbG9yOiAke20uYmRUaGVtZSgiIzdjM2FlZCIsIiNhNzhiZmEiKX07CiAgICAgIH0KICAgICAgCiAgICAgIC5jb2RlLWVkaXRvciAuaGxqcy1mdW5jdGlvbiB7CiAgICAgICAgY29sb3I6ICR7bS5iZFRoZW1lKCIjMjU2M2ViIiwiIzYwYTVmYSIpfTsKICAgICAgfQogICAgICAKICAgICAgLmNvZGUtZWRpdG9yIC5obGpzLWNvbW1lbnQgewogICAgICAgIGNvbG9yOiAke20uYmRUaGVtZSgiIzZiNzI4MCIsIiM2YjcyODAiKX07CiAgICAgICAgZm9udC1zdHlsZTogaXRhbGljOwogICAgICB9CiAgICAgIAogICAgICAuY29kZS1lZGl0b3IgLmhsanMtdmFyaWFibGUsCiAgICAgIC5jb2RlLWVkaXRvciAuaGxqcy1hdHRyIHsKICAgICAgICBjb2xvcjogJHttLmJkVGhlbWUoIiNlYTU4MGMiLCIjZmI5MjNjIil9OwogICAgICB9CiAgICAgIAogICAgICAuY29kZS1lZGl0b3IgLmhsanMtY2xhc3MsCiAgICAgIC5jb2RlLWVkaXRvciAuaGxqcy10aXRsZSB7CiAgICAgICAgY29sb3I6ICR7bS5iZFRoZW1lKCIjMjU2M2ViIiwiIzYwYTVmYSIpfTsKICAgICAgICBmb250LXdlaWdodDogNTAwOwogICAgICB9CiAgICAgIAogICAgICAuY29kZS1lZGl0b3IgLmhsanMtcGFyYW1zIHsKICAgICAgICBjb2xvcjogJHttLmJkVGhlbWUoIiMzNzQxNTEiLCIjZTVlN2ViIil9OwogICAgICB9CiAgICAgIAogICAgICAuY29kZS1lZGl0b3IgLmhsanMtYnVpbHRfaW4gewogICAgICAgIGNvbG9yOiAke20uYmRUaGVtZSgiIzdjM2FlZCIsIiNhNzhiZmEiKX07CiAgICAgIH0KICAgICAgCiAgICAgIC5jb2RlLWVkaXRvciAuaGxqcy1saXRlcmFsIHsKICAgICAgICBjb2xvcjogJHttLmJkVGhlbWUoIiM3YzNhZWQiLCIjYTc4YmZhIil9OwogICAgICB9CiAgICAgIAogICAgICAuY29kZS1lZGl0b3IgLmhsanMtbWV0YSB7CiAgICAgICAgY29sb3I6ICR7bS5iZFRoZW1lKCIjNmI3MjgwIiwiIzljYTNhZiIpfTsKICAgICAgfQogICAgICAKICAgICAgLmNvZGUtZWRpdG9yIC5obGpzLXB1bmN0dWF0aW9uIHsKICAgICAgICBjb2xvcjogJHttLmJkVGhlbWUoIiMzNzQxNTEiLCIjZDFkNWRiIil9OwogICAgICB9CiAgICAgIAogICAgICAuY29kZS1lZGl0b3IgLmhsanMtdGFnIHsKICAgICAgICBjb2xvcjogJHttLmJkVGhlbWUoIiNkYzI2MjYiLCIjZjg3MTcxIil9OwogICAgICB9CiAgICAgIAogICAgICAuY29kZS1lZGl0b3IgLmhsanMtYXR0cmlidXRlIHsKICAgICAgICBjb2xvcjogJHttLmJkVGhlbWUoIiMyNTYzZWIiLCIjNjBhNWZhIil9OwogICAgICB9CiAgICAgIAogICAgICAuY29kZS1lZGl0b3IgLmhsanMtc2VsZWN0b3ItdGFnIHsKICAgICAgICBjb2xvcjogJHttLmJkVGhlbWUoIiNkYzI2MjYiLCIjZjg3MTcxIil9OwogICAgICB9CiAgICAgIAogICAgICAuY29kZS1lZGl0b3IgLmhsanMtc2VsZWN0b3ItY2xhc3MgewogICAgICAgIGNvbG9yOiAke20uYmRUaGVtZSgiIzI1NjNlYiIsIiM2MGE1ZmEiKX07CiAgICAgIH0KICAgICAgCiAgICAgIC5jb2RlLWVkaXRvciAuaGxqcy1zZWxlY3Rvci1pZCB7CiAgICAgICAgY29sb3I6ICR7bS5iZFRoZW1lKCIjN2MzYWVkIiwiI2E3OGJmYSIpfTsKICAgICAgfQogICAgICAKICAgICAgLyogU2VsZWN0aW9uICovCiAgICAgIC5jb2RlLWVkaXRvcjo6c2VsZWN0aW9uLAogICAgICAuY29kZS1lZGl0b3IgKjo6c2VsZWN0aW9uIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke20uYmRUaGVtZSgicmdiYSg5OSwgMTAyLCAyNDEsIDAuMikiLCJyZ2JhKDk5LCAxMDIsIDI0MSwgMC4zKSIpfTsKICAgICAgfQogICAgICAKICAgICAgLyogU2Nyb2xsYmFyIHN0eWxpbmcgLSBNaW5pbWFsICovCiAgICAgIC5jb2RlLWNvbnRlbnQ6Oi13ZWJraXQtc2Nyb2xsYmFyIHsKICAgICAgICBoZWlnaHQ6IDZweDsKICAgICAgfQogICAgICAKICAgICAgLmNvZGUtY29udGVudDo6LXdlYmtpdC1zY3JvbGxiYXItdHJhY2sgewogICAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50OwogICAgICB9CiAgICAgIAogICAgICAuY29kZS1jb250ZW50Ojotd2Via2l0LXNjcm9sbGJhci10aHVtYiB7CiAgICAgICAgYmFja2dyb3VuZDogJHttLmJkVGhlbWUoIiNkMWQ1ZGIiLCIjNGI1NTYzIil9OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDNweDsKICAgICAgfQogICAgICAKICAgICAgLmNvZGUtY29udGVudDo6LXdlYmtpdC1zY3JvbGxiYXItdGh1bWI6aG92ZXIgewogICAgICAgIGJhY2tncm91bmQ6ICR7bS5iZFRoZW1lKCIjOWNhM2FmIiwiIzZiNzI4MCIpfTsKICAgICAgfQogICAgYH19fSk7dmFyIFNiLHQ0cj1wKCgpPT57Sm4oKTt4ZSgpO3pjKCk7bmwoKTtTYj1jbGFzcyBleHRlbmRzIGYxe3R5cGU9Imxpc3QiO2xhc3RLbm93bkN1cnNvclBvc2l0aW9uPTA7bGFzdFNlbGVjdGVkVGV4dD0iIjtzZWxlY3Rpb25IYW5kbGVyPW51bGw7cmVuZGVyKHQscil7bGV0IGk9cj8iIHNlbGVjdGVkIjoiIixuPSh0Lm1ldGFkYXRhPy5saXN0VHlwZXx8InVub3JkZXJlZCIpPT09Im9yZGVyZWQiPyJvbCI6InVsIixvPXRoaXMucmVuZGVyTGlzdENvbnRlbnQodC5jb250ZW50LHQubWV0YWRhdGEpO3JldHVybmAKICAgICAgPGRpdgogICAgICAgIGNsYXNzPSJibG9jayBsaXN0JHtpfSIKICAgICAgICBjb250ZW50ZWRpdGFibGU9InRydWUiCiAgICAgICAgZGF0YS1ibG9jay1pZD0iJHt0LmlkfSIKICAgICAgICBkYXRhLWJsb2NrLXR5cGU9IiR7dC50eXBlfSIKICAgICAgPiR7b308L2Rpdj4KICAgIGB9cmVuZGVyTGlzdENvbnRlbnQodCxyKXtpZighdClyZXR1cm4iPHVsPjxsaT48L2xpPjwvdWw+IjtsZXQgYT0ocj8ubGlzdFR5cGV8fCJ1bm9yZGVyZWQiKT09PSJvcmRlcmVkIj8ib2wiOiJ1bCIsbj10LnNwbGl0KGAKYCkuZmlsdGVyKHM9PnMudHJpbSgpKTtpZihuLmxlbmd0aD09PTApcmV0dXJuYDwke2F9PjxsaT48L2xpPjwvJHthfT5gO2xldCBvPW4ubWFwKHM9PmA8bGk+JHtzfTwvbGk+YCkuam9pbigiIik7cmV0dXJuYDwke2F9PiR7b308LyR7YX0+YH1zZXR1cCh0LHIsaSl7bGV0IGE9dC5xdWVyeVNlbGVjdG9yKCIuYmxvY2subGlzdCIpO2lmKCFhKXtjb25zb2xlLmVycm9yKCJMaXN0QmxvY2tIYW5kbGVyLnNldHVwOiBObyBsaXN0IGJsb2NrIGVsZW1lbnQgZm91bmQiKTtyZXR1cm59ci5jb250ZW50JiYhYS5pbm5lckhUTUwmJihhLmlubmVySFRNTD10aGlzLnJlbmRlckxpc3RDb250ZW50KHIuY29udGVudCxyLm1ldGFkYXRhKSksYS5hZGRFdmVudExpc3RlbmVyKCJpbnB1dCIsbj0+e2kub25JbnB1dChuKTtsZXQgbz10aGlzLmdldEN1cnNvclBvc2l0aW9uKHQpO28hPT1udWxsJiYodGhpcy5sYXN0S25vd25DdXJzb3JQb3NpdGlvbj1vKX0pLGEuYWRkRXZlbnRMaXN0ZW5lcigia2V5ZG93biIsbj0+e2xldCBvPXRoaXMuZ2V0Q3Vyc29yUG9zaXRpb24odCk7aWYobyE9PW51bGwmJih0aGlzLmxhc3RLbm93bkN1cnNvclBvc2l0aW9uPW8pLG4ua2V5PT09IkVudGVyIiYmIW4uc2hpZnRLZXkpe2xldCBzPXdpbmRvdy5nZXRTZWxlY3Rpb24oKTtpZihzJiZzLnJhbmdlQ291bnQ+MCl7bGV0IGM9cy5nZXRSYW5nZUF0KDApLnN0YXJ0Q29udGFpbmVyLnBhcmVudEVsZW1lbnQ/LmNsb3Nlc3QoImxpIik7aWYoYyYmYy50ZXh0Q29udGVudD09PSIiKXtuLnByZXZlbnREZWZhdWx0KCksaS5vbktleURvd24obik7cmV0dXJufX19aS5vbktleURvd24obil9KSxhLmFkZEV2ZW50TGlzdGVuZXIoImZvY3VzIiwoKT0+e2kub25Gb2N1cygpfSksYS5hZGRFdmVudExpc3RlbmVyKCJibHVyIiwoKT0+e2kub25CbHVyKCl9KSxhLmFkZEV2ZW50TGlzdGVuZXIoImNvbXBvc2l0aW9uc3RhcnQiLCgpPT57aS5vbkNvbXBvc2l0aW9uU3RhcnQoKX0pLGEuYWRkRXZlbnRMaXN0ZW5lcigiY29tcG9zaXRpb25lbmQiLCgpPT57aS5vbkNvbXBvc2l0aW9uRW5kKCl9KSxhLmFkZEV2ZW50TGlzdGVuZXIoIm1vdXNldXAiLG49PntsZXQgbz10aGlzLmdldEN1cnNvclBvc2l0aW9uKHQpO28hPT1udWxsJiYodGhpcy5sYXN0S25vd25DdXJzb3JQb3NpdGlvbj1vKSxpLm9uTW91c2VVcD8uKG4pfSksYS5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsbj0+e3NldFRpbWVvdXQoKCk9PntsZXQgbz10aGlzLmdldEN1cnNvclBvc2l0aW9uKHQpO28hPT1udWxsJiYodGhpcy5sYXN0S25vd25DdXJzb3JQb3NpdGlvbj1vKX0sMCl9KSxhLmFkZEV2ZW50TGlzdGVuZXIoImtleXVwIixuPT57bGV0IG89dGhpcy5nZXRDdXJzb3JQb3NpdGlvbih0KTtvIT09bnVsbCYmKHRoaXMubGFzdEtub3duQ3Vyc29yUG9zaXRpb249byl9KSx0aGlzLnNldHVwU2VsZWN0aW9uSGFuZGxlcih0LGEscil9c2V0dXBTZWxlY3Rpb25IYW5kbGVyKHQscixpKXtsZXQgYT0oKT0+e2xldCBvPXdpbmRvdy5nZXRTZWxlY3Rpb24oKTtpZighb3x8by5yYW5nZUNvdW50PT09MClyZXR1cm47bGV0IHM9by50b1N0cmluZygpO2lmKHMubGVuZ3RoPT09MCl7dGhpcy5sYXN0U2VsZWN0ZWRUZXh0JiYodGhpcy5sYXN0U2VsZWN0ZWRUZXh0PSIiLHRoaXMuZGlzcGF0Y2hTZWxlY3Rpb25FdmVudCh0LHt0ZXh0OiIiLGJsb2NrSWQ6aS5pZCxoYXNTZWxlY3Rpb246ITF9KSk7cmV0dXJufWxldCBsPXIuZ2V0Um9vdE5vZGUoKS5ob3N0LHU9bD8uY2xvc2VzdCgiZGVlcy1pbnB1dC13eXNpd3lnIik/LnNoYWRvd1Jvb3QsZD1sPy5zaGFkb3dSb290LGg9W107dSYmaC5wdXNoKHUpLGQmJmgucHVzaChkKTtsZXQgZj1ZZS5nZXRTZWxlY3Rpb25JbmZvKC4uLmgpO2lmKCFmKXJldHVybjtsZXQgeD1ZZS5jb250YWluc0Fjcm9zc1NoYWRvd0RPTShyLGYuc3RhcnRDb250YWluZXIpLHY9WWUuY29udGFpbnNBY3Jvc3NTaGFkb3dET00ocixmLmVuZENvbnRhaW5lcik7aWYoeHx8dil7aWYocyE9PXRoaXMubGFzdFNlbGVjdGVkVGV4dCl7dGhpcy5sYXN0U2VsZWN0ZWRUZXh0PXM7bGV0IGI9WWUuY3JlYXRlUmFuZ2VGcm9tSW5mbyhmKSx5PWIuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7dGhpcy5kaXNwYXRjaFNlbGVjdGlvbkV2ZW50KHQse3RleHQ6cy50cmltKCksYmxvY2tJZDppLmlkLHJhbmdlOmIscmVjdDp5LGhhc1NlbGVjdGlvbjohMH0pfX1lbHNlIHRoaXMubGFzdFNlbGVjdGVkVGV4dCYmKHRoaXMubGFzdFNlbGVjdGVkVGV4dD0iIix0aGlzLmRpc3BhdGNoU2VsZWN0aW9uRXZlbnQodCx7dGV4dDoiIixibG9ja0lkOmkuaWQsaGFzU2VsZWN0aW9uOiExfSkpfTtkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCJzZWxlY3Rpb25jaGFuZ2UiLGEpLHRoaXMuc2VsZWN0aW9uSGFuZGxlcj1hO2xldCBuPXIuZ2V0Um9vdE5vZGUoKS5ob3N0O2lmKG4pe2xldCBvPW4uZGlzY29ubmVjdGVkQ2FsbGJhY2s7bi5kaXNjb25uZWN0ZWRDYWxsYmFjaz1hc3luYyBmdW5jdGlvbigpe3RoaXMuc2VsZWN0aW9uSGFuZGxlciYmKGRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoInNlbGVjdGlvbmNoYW5nZSIsdGhpcy5zZWxlY3Rpb25IYW5kbGVyKSx0aGlzLnNlbGVjdGlvbkhhbmRsZXI9bnVsbCksbyYmYXdhaXQgby5jYWxsKG4pfS5iaW5kKHRoaXMpfX1kaXNwYXRjaFNlbGVjdGlvbkV2ZW50KHQscil7bGV0IGk9bmV3IEN1c3RvbUV2ZW50KCJibG9jay10ZXh0LXNlbGVjdGVkIix7ZGV0YWlsOnIsYnViYmxlczohMCxjb21wb3NlZDohMH0pO3QuZGlzcGF0Y2hFdmVudChpKX1nZXRTdHlsZXMoKXtyZXR1cm5gCiAgICAgIC8qIExpc3Qgc3BlY2lmaWMgc3R5bGVzICovCiAgICAgIC5ibG9jay5saXN0IHsKICAgICAgICBwYWRkaW5nOiAwOwogICAgICB9CiAgICAgIAogICAgICAuYmxvY2subGlzdCB1bCwKICAgICAgLmJsb2NrLmxpc3Qgb2wgewogICAgICAgIG1hcmdpbjogMDsKICAgICAgICBwYWRkaW5nLWxlZnQ6IDI0cHg7CiAgICAgIH0KICAgICAgCiAgICAgIC5ibG9jay5saXN0IGxpIHsKICAgICAgICBtYXJnaW46IDRweCAwOwogICAgICAgIGxpbmUtaGVpZ2h0OiAxLjY7CiAgICAgIH0KICAgICAgCiAgICAgIC5ibG9jay5saXN0IGxpOmxhc3QtY2hpbGQgewogICAgICAgIG1hcmdpbi1ib3R0b206IDA7CiAgICAgIH0KICAgIGB9Z2V0UGxhY2Vob2xkZXIoKXtyZXR1cm4iIn1nZXRDdXJzb3JQb3NpdGlvbih0LHIpe2xldCBpPXQucXVlcnlTZWxlY3RvcigiLmJsb2NrLmxpc3QiKTtpZighaSlyZXR1cm4gbnVsbDtsZXQgbz1yPy5jb21wb25lbnQ/LmNsb3Nlc3QoImRlZXMtaW5wdXQtd3lzaXd5ZyIpPy5zaGFkb3dSb290LHM9cj8uc2hhZG93Um9vdCxsPVtdO28mJmwucHVzaChvKSxzJiZsLnB1c2gocyk7bGV0IGM9WWUuZ2V0U2VsZWN0aW9uSW5mbyguLi5sKTtpZighY3x8IVllLmNvbnRhaW5zQWNyb3NzU2hhZG93RE9NKGksYy5zdGFydENvbnRhaW5lcikpcmV0dXJuIG51bGw7bGV0IHU9ZG9jdW1lbnQuY3JlYXRlUmFuZ2UoKTtyZXR1cm4gdS5zZWxlY3ROb2RlQ29udGVudHMoaSksdS5zZXRFbmQoYy5zdGFydENvbnRhaW5lcixjLnN0YXJ0T2Zmc2V0KSx1LnRvU3RyaW5nKCkubGVuZ3RofWdldENvbnRlbnQodCxyKXtsZXQgaT10LnF1ZXJ5U2VsZWN0b3IoIi5ibG9jay5saXN0Iik7aWYoIWkpcmV0dXJuIiI7bGV0IGE9aS5xdWVyeVNlbGVjdG9yQWxsKCJsaSIpO3JldHVybiBBcnJheS5mcm9tKGEpLm1hcChvPT5vLnRleHRDb250ZW50fHwiIikuam9pbihgCmApfXNldENvbnRlbnQodCxyLGkpe2xldCBhPXQucXVlcnlTZWxlY3RvcigiLmJsb2NrLmxpc3QiKTtpZighYSlyZXR1cm47bGV0IG49ZG9jdW1lbnQuYWN0aXZlRWxlbWVudD09PWF8fHQuc2hhZG93Um9vdD8uYWN0aXZlRWxlbWVudD09PWEscz1hLnF1ZXJ5U2VsZWN0b3IoInVsLCBvbCIpPy50YWdOYW1lPT09Ik9MIjthLmlubmVySFRNTD10aGlzLnJlbmRlckxpc3RDb250ZW50KHIse2xpc3RUeXBlOnM/Im9yZGVyZWQiOiJ1bm9yZGVyZWQifSksbiYmYS5mb2N1cygpfXNldEN1cnNvclRvU3RhcnQodCxyKXtsZXQgaT10LnF1ZXJ5U2VsZWN0b3IoIi5ibG9jay5saXN0Iik7aWYoIWkpcmV0dXJuO2xldCBhPWkucXVlcnlTZWxlY3RvcigibGkiKTtpZihhKXtsZXQgbj10aGlzLmdldEZpcnN0VGV4dE5vZGUoYSk7aWYobil7bGV0IG89ZG9jdW1lbnQuY3JlYXRlUmFuZ2UoKSxzPXdpbmRvdy5nZXRTZWxlY3Rpb24oKTtvLnNldFN0YXJ0KG4sMCksby5zZXRFbmQobiwwKSxzPy5yZW1vdmVBbGxSYW5nZXMoKSxzPy5hZGRSYW5nZShvKX19fXNldEN1cnNvclRvRW5kKHQscil7bGV0IGk9dC5xdWVyeVNlbGVjdG9yKCIuYmxvY2subGlzdCIpO2lmKCFpKXJldHVybjtsZXQgYT1pLnF1ZXJ5U2VsZWN0b3IoImxpOmxhc3QtY2hpbGQiKTtpZihhKXtsZXQgbj10aGlzLmdldExhc3RUZXh0Tm9kZShhKTtpZihuKXtsZXQgbz1kb2N1bWVudC5jcmVhdGVSYW5nZSgpLHM9d2luZG93LmdldFNlbGVjdGlvbigpLGw9bi50ZXh0Q29udGVudD8ubGVuZ3RofHwwO28uc2V0U3RhcnQobixsKSxvLnNldEVuZChuLGwpLHM/LnJlbW92ZUFsbFJhbmdlcygpLHM/LmFkZFJhbmdlKG8pfX19Z2V0Rmlyc3RUZXh0Tm9kZSh0KXtpZih0Lm5vZGVUeXBlPT09Tm9kZS5URVhUX05PREUpcmV0dXJuIHQ7Zm9yKGxldCByPTA7cjx0LmNoaWxkTm9kZXMubGVuZ3RoO3IrKyl7bGV0IGk9dGhpcy5nZXRGaXJzdFRleHROb2RlKHQuY2hpbGROb2Rlc1tyXSk7aWYoaSlyZXR1cm4gaX1yZXR1cm4gbnVsbH1nZXRMYXN0VGV4dE5vZGUodCl7aWYodC5ub2RlVHlwZT09PU5vZGUuVEVYVF9OT0RFKXJldHVybiB0O2ZvcihsZXQgcj10LmNoaWxkTm9kZXMubGVuZ3RoLTE7cj49MDtyLS0pe2xldCBpPXRoaXMuZ2V0TGFzdFRleHROb2RlKHQuY2hpbGROb2Rlc1tyXSk7aWYoaSlyZXR1cm4gaX1yZXR1cm4gbnVsbH1mb2N1cyh0LHIpe2xldCBpPXQucXVlcnlTZWxlY3RvcigiLmJsb2NrLmxpc3QiKTtpJiYoaS5oYXNBdHRyaWJ1dGUoImNvbnRlbnRlZGl0YWJsZSIpfHxpLnNldEF0dHJpYnV0ZSgiY29udGVudGVkaXRhYmxlIiwidHJ1ZSIpLGkuZm9jdXMoKSxkb2N1bWVudC5hY3RpdmVFbGVtZW50IT09aSYmdC5zaGFkb3dSb290Py5hY3RpdmVFbGVtZW50IT09aSYmUHJvbWlzZS5yZXNvbHZlKCkudGhlbigoKT0+e2kuZm9jdXMoKX0pKX1mb2N1c1dpdGhDdXJzb3IodCxyPSJlbmQiLGkpe2xldCBhPXQucXVlcnlTZWxlY3RvcigiLmJsb2NrLmxpc3QiKTtpZighYSlyZXR1cm47YS5oYXNBdHRyaWJ1dGUoImNvbnRlbnRlZGl0YWJsZSIpfHxhLnNldEF0dHJpYnV0ZSgiY29udGVudGVkaXRhYmxlIiwidHJ1ZSIpLGEuZm9jdXMoKTtsZXQgbj0oKT0+e3I9PT0ic3RhcnQiP3RoaXMuc2V0Q3Vyc29yVG9TdGFydCh0LGkpOnI9PT0iZW5kIj90aGlzLnNldEN1cnNvclRvRW5kKHQsaSk6dHlwZW9mIHI9PSJudW1iZXIiJiZ0aGlzLnNldEN1cnNvclRvRW5kKHQsaSl9O2RvY3VtZW50LmFjdGl2ZUVsZW1lbnQ9PT1hfHx0LnNoYWRvd1Jvb3Q/LmFjdGl2ZUVsZW1lbnQ9PT1hP24oKTpQcm9taXNlLnJlc29sdmUoKS50aGVuKCgpPT57KGRvY3VtZW50LmFjdGl2ZUVsZW1lbnQ9PT1hfHx0LnNoYWRvd1Jvb3Q/LmFjdGl2ZUVsZW1lbnQ9PT1hKSYmbigpfSl9Z2V0U3BsaXRDb250ZW50KHQscil7cmV0dXJuIHQucXVlcnlTZWxlY3RvcigiLmJsb2NrLmxpc3QiKSxudWxsfX19KTt2YXIgemIscjRyPXAoKCk9PntKbigpO3hlKCk7emI9Y2xhc3MgZXh0ZW5kcyBmMXt0eXBlPSJpbWFnZSI7cmVuZGVyKHQscil7bGV0IGk9dC5tZXRhZGF0YT8udXJsLGE9dC5jb250ZW50fHwiSW1hZ2UiLG49dC5tZXRhZGF0YT8ubG9hZGluZztyZXR1cm5gCiAgICAgIDxkaXYgY2xhc3M9ImltYWdlLWJsb2NrLWNvbnRhaW5lciR7cj8iIHNlbGVjdGVkIjoiIn0iIAogICAgICAgICAgIGRhdGEtYmxvY2staWQ9IiR7dC5pZH0iCiAgICAgICAgICAgZGF0YS1oYXMtaW1hZ2U9IiR7ISFpfSIKICAgICAgICAgICB0YWJpbmRleD0iMCI+CiAgICAgICAgJHtuP3RoaXMucmVuZGVyTG9hZGluZygpOmk/dGhpcy5yZW5kZXJJbWFnZShpLGEpOnRoaXMucmVuZGVyUGxhY2Vob2xkZXIoKX0KICAgICAgICA8aW5wdXQgdHlwZT0iZmlsZSIgCiAgICAgICAgICAgICAgIGNsYXNzPSJpbWFnZS1maWxlLWlucHV0IiAKICAgICAgICAgICAgICAgYWNjZXB0PSJpbWFnZS8qIiAKICAgICAgICAgICAgICAgc3R5bGU9ImRpc3BsYXk6IG5vbmU7IiAvPgogICAgICA8L2Rpdj4KICAgIGB9cmVuZGVyUGxhY2Vob2xkZXIoKXtyZXR1cm5gCiAgICAgIDxkaXYgY2xhc3M9ImltYWdlLXVwbG9hZC1wbGFjZWhvbGRlciIgc3R5bGU9ImN1cnNvcjogcG9pbnRlcjsiPgogICAgICAgIDxkaXYgY2xhc3M9InVwbG9hZC1pY29uIiBzdHlsZT0icG9pbnRlci1ldmVudHM6IG5vbmU7Ij4KICAgICAgICAgIDxzdmcgd2lkdGg9IjQ4IiBoZWlnaHQ9IjQ4IiB2aWV3Qm94PSIwIDAgMjQgMjQiIGZpbGw9Im5vbmUiIHN0cm9rZT0iY3VycmVudENvbG9yIiBzdHJva2Utd2lkdGg9IjEuNSI+CiAgICAgICAgICAgIDxyZWN0IHg9IjMiIHk9IjMiIHdpZHRoPSIxOCIgaGVpZ2h0PSIxOCIgcng9IjIiIHJ5PSIyIi8+CiAgICAgICAgICAgIDxjaXJjbGUgY3g9IjguNSIgY3k9IjguNSIgcj0iMS41Ii8+CiAgICAgICAgICAgIDxwb2x5bGluZSBwb2ludHM9IjIxIDE1IDE2IDEwIDUgMjEiLz4KICAgICAgICAgIDwvc3ZnPgogICAgICAgIDwvZGl2PgogICAgICAgIDxkaXYgY2xhc3M9InVwbG9hZC10ZXh0IiBzdHlsZT0icG9pbnRlci1ldmVudHM6IG5vbmU7Ij5DbGljayB0byB1cGxvYWQgYW4gaW1hZ2U8L2Rpdj4KICAgICAgICA8ZGl2IGNsYXNzPSJ1cGxvYWQtaGludCIgc3R5bGU9InBvaW50ZXItZXZlbnRzOiBub25lOyI+b3IgZHJhZyBhbmQgZHJvcDwvZGl2PgogICAgICA8L2Rpdj4KICAgIGB9cmVuZGVySW1hZ2UodCxyKXtyZXR1cm5gCiAgICAgIDxkaXYgY2xhc3M9ImltYWdlLWNvbnRhaW5lciI+CiAgICAgICAgPGltZyBzcmM9IiR7dH0iIGFsdD0iJHt0aGlzLmVzY2FwZUh0bWwocil9IiAvPgogICAgICA8L2Rpdj4KICAgIGB9cmVuZGVyTG9hZGluZygpe3JldHVybmAKICAgICAgPGRpdiBjbGFzcz0iaW1hZ2UtbG9hZGluZyI+CiAgICAgICAgPGRpdiBjbGFzcz0ibG9hZGluZy1zcGlubmVyIj48L2Rpdj4KICAgICAgICA8ZGl2IGNsYXNzPSJsb2FkaW5nLXRleHQiPlVwbG9hZGluZyBpbWFnZS4uLjwvZGl2PgogICAgICA8L2Rpdj4KICAgIGB9c2V0dXAodCxyLGkpe2xldCBhPXQucXVlcnlTZWxlY3RvcigiLmltYWdlLWJsb2NrLWNvbnRhaW5lciIpLG49dC5xdWVyeVNlbGVjdG9yKCIuaW1hZ2UtZmlsZS1pbnB1dCIpO2lmKCFhKXtjb25zb2xlLmVycm9yKCJJbWFnZUJsb2NrSGFuZGxlcjogQ291bGQgbm90IGZpbmQgY29udGFpbmVyIik7cmV0dXJufWlmKCFuKXtjb25zb2xlLmVycm9yKCJJbWFnZUJsb2NrSGFuZGxlcjogQ291bGQgbm90IGZpbmQgZmlsZSBpbnB1dCIpO3JldHVybn1sZXQgbz1hLnF1ZXJ5U2VsZWN0b3IoIi5pbWFnZS11cGxvYWQtcGxhY2Vob2xkZXIiKTtvJiZvLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIixzPT57cy5wcmV2ZW50RGVmYXVsdCgpLHMuc3RvcFByb3BhZ2F0aW9uKCksY29uc29sZS5sb2coIkltYWdlQmxvY2tIYW5kbGVyOiBQbGFjZWhvbGRlciBjbGlja2VkLCBvcGVuaW5nIGZpbGUgc2VsZWN0b3IiKSxuLmNsaWNrKCl9KSxhLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIiwoKT0+e2kub25Gb2N1cygpfSksbi5hZGRFdmVudExpc3RlbmVyKCJjaGFuZ2UiLGFzeW5jIHM9PntsZXQgYz1zLnRhcmdldC5maWxlcz8uWzBdO2MmJihjb25zb2xlLmxvZygiSW1hZ2VCbG9ja0hhbmRsZXI6IEZpbGUgc2VsZWN0ZWQ6IixjLm5hbWUpLGF3YWl0IHRoaXMuaGFuZGxlRmlsZVVwbG9hZChjLHIsaSkpfSksYS5hZGRFdmVudExpc3RlbmVyKCJkcmFnb3ZlciIscz0+e3MucHJldmVudERlZmF1bHQoKSxzLnN0b3BQcm9wYWdhdGlvbigpLHIubWV0YWRhdGE/LnVybHx8YS5jbGFzc0xpc3QuYWRkKCJkcmFnLW92ZXIiKX0pLGEuYWRkRXZlbnRMaXN0ZW5lcigiZHJhZ2xlYXZlIixzPT57cy5wcmV2ZW50RGVmYXVsdCgpLHMuc3RvcFByb3BhZ2F0aW9uKCksYS5jbGFzc0xpc3QucmVtb3ZlKCJkcmFnLW92ZXIiKX0pLGEuYWRkRXZlbnRMaXN0ZW5lcigiZHJvcCIsYXN5bmMgcz0+e3MucHJldmVudERlZmF1bHQoKSxzLnN0b3BQcm9wYWdhdGlvbigpLGEuY2xhc3NMaXN0LnJlbW92ZSgiZHJhZy1vdmVyIik7bGV0IGw9cy5kYXRhVHJhbnNmZXI/LmZpbGVzWzBdO2wmJmwudHlwZS5zdGFydHNXaXRoKCJpbWFnZS8iKSYmIXIubWV0YWRhdGE/LnVybCYmYXdhaXQgdGhpcy5oYW5kbGVGaWxlVXBsb2FkKGwscixpKX0pLGEuYWRkRXZlbnRMaXN0ZW5lcigiZm9jdXMiLCgpPT5pLm9uRm9jdXMoKSksYS5hZGRFdmVudExpc3RlbmVyKCJibHVyIiwoKT0+aS5vbkJsdXIoKSksYS5hZGRFdmVudExpc3RlbmVyKCJrZXlkb3duIixzPT57aWYoKHMua2V5PT09IkRlbGV0ZSJ8fHMua2V5PT09IkJhY2tzcGFjZSIpJiZyLm1ldGFkYXRhPy51cmwpe3IubWV0YWRhdGEudXJsPXZvaWQgMCxyLm1ldGFkYXRhLmxvYWRpbmc9ITEsci5jb250ZW50PSIiLGkub25JbnB1dChuZXcgSW5wdXRFdmVudCgiaW5wdXQiKSk7cmV0dXJufWkub25LZXlEb3duKHMpfSl9YXN5bmMgaGFuZGxlRmlsZVVwbG9hZCh0LHIsaSl7aWYoY29uc29sZS5sb2coIkltYWdlQmxvY2tIYW5kbGVyOiBTdGFydGluZyBmaWxlIHVwbG9hZCIse2ZpbGVOYW1lOnQubmFtZSxmaWxlU2l6ZTp0LnNpemUsYmxvY2tJZDpyLmlkfSksIXQudHlwZS5zdGFydHNXaXRoKCJpbWFnZS8iKSl7Y29uc29sZS5lcnJvcigiSW52YWxpZCBmaWxlIHR5cGU6Iix0LnR5cGUpO3JldHVybn1sZXQgYT0xMCoxMDI0KjEwMjQ7aWYodC5zaXplPmEpe2NvbnNvbGUuZXJyb3IoIkZpbGUgdG9vIGxhcmdlLiBNYXhpbXVtIHNpemUgaXMgMTBNQiIpO3JldHVybn1yLm1ldGFkYXRhfHwoci5tZXRhZGF0YT17fSksci5tZXRhZGF0YS5sb2FkaW5nPSEwLHIubWV0YWRhdGEuZmlsZU5hbWU9dC5uYW1lLHIubWV0YWRhdGEuZmlsZVNpemU9dC5zaXplLHIubWV0YWRhdGEubWltZVR5cGU9dC50eXBlLGNvbnNvbGUubG9nKCJJbWFnZUJsb2NrSGFuZGxlcjogU2V0IGxvYWRpbmcgc3RhdGUsIHJlcXVlc3RpbmcgdXBkYXRlIiksaS5vblJlcXVlc3RVcGRhdGU/LigpO3RyeXtsZXQgbj1hd2FpdCB0aGlzLmZpbGVUb0RhdGFVcmwodCk7ci5tZXRhZGF0YS51cmw9bixyLm1ldGFkYXRhLmxvYWRpbmc9ITE7bGV0IG89dC5uYW1lLnJlcGxhY2UoL1wuW14vLl0rJC8sIiIpO3IuY29udGVudD1vLGNvbnNvbGUubG9nKCJJbWFnZUJsb2NrSGFuZGxlcjogVXBsb2FkIGNvbXBsZXRlLCByZXF1ZXN0aW5nIHVwZGF0ZSIse2hhc1VybDohIXIubWV0YWRhdGEudXJsLHVybExlbmd0aDpuLmxlbmd0aCxhbHRUZXh0OnIuY29udGVudH0pLGkub25SZXF1ZXN0VXBkYXRlPy4oKX1jYXRjaChuKXtjb25zb2xlLmVycm9yKCJGYWlsZWQgdG8gdXBsb2FkIGltYWdlOiIsbiksci5tZXRhZGF0YS5sb2FkaW5nPSExLGkub25SZXF1ZXN0VXBkYXRlPy4oKX19ZmlsZVRvRGF0YVVybCh0KXtyZXR1cm4gbmV3IFByb21pc2UoKHIsaSk9PntsZXQgYT1uZXcgRmlsZVJlYWRlcjthLm9ubG9hZD1uPT57bGV0IG89bi50YXJnZXQ/LnJlc3VsdDt0eXBlb2Ygbz09InN0cmluZyI/cihvKTppKG5ldyBFcnJvcigiRmFpbGVkIHRvIHJlYWQgZmlsZSIpKX0sYS5vbmVycm9yPWksYS5yZWFkQXNEYXRhVVJMKHQpfSl9ZXNjYXBlSHRtbCh0KXtsZXQgcj1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTtyZXR1cm4gci50ZXh0Q29udGVudD10LHIuaW5uZXJIVE1MfWdldENvbnRlbnQodCl7cmV0dXJuIHRoaXMuZ2V0QmxvY2tGcm9tRWxlbWVudCh0KT8uY29udGVudHx8IiJ9c2V0Q29udGVudCh0LHIpe2xldCBpPXRoaXMuZ2V0QmxvY2tGcm9tRWxlbWVudCh0KTtpJiYoaS5jb250ZW50PXIpfWdldEJsb2NrRnJvbUVsZW1lbnQodCl7bGV0IGk9dC5xdWVyeVNlbGVjdG9yKCIuaW1hZ2UtYmxvY2stY29udGFpbmVyIik/LmdldEF0dHJpYnV0ZSgiZGF0YS1ibG9jay1pZCIpO3JldHVybiBpP3tpZDppLHR5cGU6ImltYWdlIixjb250ZW50OiIiLG1ldGFkYXRhOnt9fTpudWxsfWdldEN1cnNvclBvc2l0aW9uKHQpe3JldHVybiBudWxsfXNldEN1cnNvclRvU3RhcnQodCl7dGhpcy5mb2N1cyh0KX1zZXRDdXJzb3JUb0VuZCh0KXt0aGlzLmZvY3VzKHQpfWZvY3VzKHQpe3QucXVlcnlTZWxlY3RvcigiLmltYWdlLWJsb2NrLWNvbnRhaW5lciIpPy5mb2N1cygpfWZvY3VzV2l0aEN1cnNvcih0LHI9ImVuZCIpe3RoaXMuZm9jdXModCl9Z2V0U3BsaXRDb250ZW50KHQpe3JldHVybiBudWxsfWdldFN0eWxlcygpe3JldHVybmAKICAgICAgLyogSW1hZ2UgQmxvY2sgQ29udGFpbmVyICovCiAgICAgIC5pbWFnZS1ibG9jay1jb250YWluZXIgewogICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgICBtYXJnaW46IDEycHggMDsKICAgICAgICBib3JkZXItcmFkaXVzOiA2cHg7CiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC4xNXMgZWFzZTsKICAgICAgICBvdXRsaW5lOiBub25lOwogICAgICAgIGN1cnNvcjogcG9pbnRlcjsKICAgICAgfQogICAgICAKICAgICAgLmltYWdlLWJsb2NrLWNvbnRhaW5lci5zZWxlY3RlZCB7CiAgICAgICAgYm94LXNoYWRvdzogMCAwIDAgMnB4ICR7bS5iZFRoZW1lKCIjNjM2NmYxIiwiIzgxOGNmOCIpfTsKICAgICAgfQogICAgICAKICAgICAgLyogVXBsb2FkIFBsYWNlaG9sZGVyICovCiAgICAgIC5pbWFnZS11cGxvYWQtcGxhY2Vob2xkZXIgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOwogICAgICAgIHBhZGRpbmc6IDQ4cHggMjRweDsKICAgICAgICBib3JkZXI6IDJweCBkYXNoZWQgJHttLmJkVGhlbWUoIiNlNWU3ZWIiLCIjMzc0MTUxIil9OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDZweDsKICAgICAgICBiYWNrZ3JvdW5kOiAke20uYmRUaGVtZSgiI2ZhZmFmYSIsIiMwYTBhMGEiKX07CiAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuMTVzIGVhc2U7CiAgICAgIH0KICAgICAgCiAgICAgIC5pbWFnZS1ibG9jay1jb250YWluZXI6aG92ZXIgLmltYWdlLXVwbG9hZC1wbGFjZWhvbGRlciB7CiAgICAgICAgYm9yZGVyLWNvbG9yOiAke20uYmRUaGVtZSgiIzljYTNhZiIsIiM2YjcyODAiKX07CiAgICAgICAgYmFja2dyb3VuZDogJHttLmJkVGhlbWUoIiNmOWZhZmIiLCIjMTExODI3Iil9OwogICAgICB9CiAgICAgIAogICAgICAuaW1hZ2UtYmxvY2stY29udGFpbmVyLmRyYWctb3ZlciAuaW1hZ2UtdXBsb2FkLXBsYWNlaG9sZGVyIHsKICAgICAgICBib3JkZXItY29sb3I6ICR7bS5iZFRoZW1lKCIjNjM2NmYxIiwiIzgxOGNmOCIpfTsKICAgICAgICBiYWNrZ3JvdW5kOiAke20uYmRUaGVtZSgiI2VmZjZmZiIsIiMxZTFiNGIiKX07CiAgICAgIH0KICAgICAgCiAgICAgIC51cGxvYWQtaWNvbiB7CiAgICAgICAgbWFyZ2luLWJvdHRvbTogMTJweDsKICAgICAgICBjb2xvcjogJHttLmJkVGhlbWUoIiM5Y2EzYWYiLCIjNGI1NTYzIil9OwogICAgICB9CiAgICAgIAogICAgICAudXBsb2FkLXRleHQgewogICAgICAgIGZvbnQtc2l6ZTogMTRweDsKICAgICAgICBmb250LXdlaWdodDogNTAwOwogICAgICAgIGNvbG9yOiAke20uYmRUaGVtZSgiIzM3NDE1MSIsIiNlNWU3ZWIiKX07CiAgICAgICAgbWFyZ2luLWJvdHRvbTogNHB4OwogICAgICB9CiAgICAgIAogICAgICAudXBsb2FkLWhpbnQgewogICAgICAgIGZvbnQtc2l6ZTogMTJweDsKICAgICAgICBjb2xvcjogJHttLmJkVGhlbWUoIiM5Y2EzYWYiLCIjNmI3MjgwIil9OwogICAgICB9CiAgICAgIAogICAgICAvKiBJbWFnZSBDb250YWluZXIgKi8KICAgICAgLmltYWdlLWNvbnRhaW5lciB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIG1pbi1oZWlnaHQ6IDIwMHB4OwogICAgICAgIGJhY2tncm91bmQ6ICR7bS5iZFRoZW1lKCIjZjlmYWZiIiwiIzExMTgyNyIpfTsKICAgICAgfQogICAgICAKICAgICAgLmltYWdlLWNvbnRhaW5lciBpbWcgewogICAgICAgIG1heC13aWR0aDogMTAwJTsKICAgICAgICBoZWlnaHQ6IGF1dG87CiAgICAgICAgZGlzcGxheTogYmxvY2s7CiAgICAgICAgYm9yZGVyLXJhZGl1czogNHB4OwogICAgICB9CiAgICAgIAogICAgICAvKiBMb2FkaW5nIFN0YXRlICovCiAgICAgIC5pbWFnZS1sb2FkaW5nIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKICAgICAgICBwYWRkaW5nOiA0OHB4IDI0cHg7CiAgICAgICAgYmFja2dyb3VuZDogJHttLmJkVGhlbWUoIiNmYWZhZmEiLCIjMGEwYTBhIil9OwogICAgICB9CiAgICAgIAogICAgICAubG9hZGluZy1zcGlubmVyIHsKICAgICAgICB3aWR0aDogMzJweDsKICAgICAgICBoZWlnaHQ6IDMycHg7CiAgICAgICAgYm9yZGVyOiAzcHggc29saWQgJHttLmJkVGhlbWUoIiNlNWU3ZWIiLCIjMzc0MTUxIil9OwogICAgICAgIGJvcmRlci10b3AtY29sb3I6ICR7bS5iZFRoZW1lKCIjNjM2NmYxIiwiIzgxOGNmOCIpfTsKICAgICAgICBib3JkZXItcmFkaXVzOiA1MCU7CiAgICAgICAgYW5pbWF0aW9uOiBzcGluIDAuOHMgbGluZWFyIGluZmluaXRlOwogICAgICAgIG1hcmdpbi1ib3R0b206IDEycHg7CiAgICAgIH0KICAgICAgCiAgICAgIEBrZXlmcmFtZXMgc3BpbiB7CiAgICAgICAgdG8geyB0cmFuc2Zvcm06IHJvdGF0ZSgzNjBkZWcpOyB9CiAgICAgIH0KICAgICAgCiAgICAgIC5sb2FkaW5nLXRleHQgewogICAgICAgIGZvbnQtc2l6ZTogMTRweDsKICAgICAgICBjb2xvcjogJHttLmJkVGhlbWUoIiM2YjcyODAiLCIjOWNhM2FmIil9OwogICAgICB9CiAgICAgIAogICAgICAvKiBGaWxlIGlucHV0IGhpZGRlbiAqLwogICAgICAuaW1hZ2UtZmlsZS1pbnB1dCB7CiAgICAgICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50OwogICAgICB9CiAgICBgfX19KTt2YXIgQ2IsaTRyPXAoKCk9PntKbigpO3hlKCk7Q2I9Y2xhc3MgZXh0ZW5kcyBmMXt0eXBlPSJ5b3V0dWJlIjtyZW5kZXIodCxyKXtsZXQgaT10Lm1ldGFkYXRhPy52aWRlb0lkLGE9dC5tZXRhZGF0YT8udXJsfHwiIjtyZXR1cm5gCiAgICAgIDxkaXYgY2xhc3M9InlvdXR1YmUtYmxvY2stY29udGFpbmVyJHtyPyIgc2VsZWN0ZWQiOiIifSIgCiAgICAgICAgICAgZGF0YS1ibG9jay1pZD0iJHt0LmlkfSIKICAgICAgICAgICBkYXRhLWhhcy12aWRlbz0iJHshIWl9Ij4KICAgICAgICAke2k/dGhpcy5yZW5kZXJWaWRlbyhpKTp0aGlzLnJlbmRlclBsYWNlaG9sZGVyKGEpfQogICAgICA8L2Rpdj4KICAgIGB9cmVuZGVyUGxhY2Vob2xkZXIodCl7cmV0dXJuYAogICAgICA8ZGl2IGNsYXNzPSJ5b3V0dWJlLXBsYWNlaG9sZGVyIj4KICAgICAgICA8ZGl2IGNsYXNzPSJwbGFjZWhvbGRlci1pY29uIj4KICAgICAgICAgIDxzdmcgd2lkdGg9IjQ4IiBoZWlnaHQ9IjQ4IiB2aWV3Qm94PSIwIDAgMjQgMjQiIGZpbGw9ImN1cnJlbnRDb2xvciI+CiAgICAgICAgICAgIDxwYXRoIGQ9Ik0xOS42MTUgMy4xODRjLTMuNjA0LS4yNDYtMTEuNjMxLS4yNDUtMTUuMjMgMC0zLjg5Ny4yNjYtNC4zNTYgMi42Mi00LjM4NSA4LjgxNi4wMjkgNi4xODUuNDg0IDguNTQ5IDQuMzg1IDguODE2IDMuNi4yNDUgMTEuNjI2LjI0NiAxNS4yMyAwIDMuODk3LS4yNjYgNC4zNTYtMi42MiA0LjM4NS04LjgxNi0uMDI5LTYuMTg1LS40ODQtOC41NDktNC4zODUtOC44MTZ6bS0xMC42MTUgMTIuODE2di04bDggMy45OTMtOCA0LjAwN3oiLz4KICAgICAgICAgIDwvc3ZnPgogICAgICAgIDwvZGl2PgogICAgICAgIDxkaXYgY2xhc3M9InBsYWNlaG9sZGVyLXRleHQiPkVudGVyIFlvdVR1YmUgVVJMPC9kaXY+CiAgICAgICAgPGlucHV0IHR5cGU9InVybCIgCiAgICAgICAgICAgICAgIGNsYXNzPSJ5b3V0dWJlLXVybC1pbnB1dCIgCiAgICAgICAgICAgICAgIHBsYWNlaG9sZGVyPSJodHRwczovL3lvdXR1YmUuY29tL3dhdGNoP3Y9Li4uIiAKICAgICAgICAgICAgICAgdmFsdWU9IiR7dGhpcy5lc2NhcGVIdG1sKHQpfSIgLz4KICAgICAgICA8YnV0dG9uIGNsYXNzPSJ5b3V0dWJlLWVtYmVkLWJ0biI+RW1iZWQgVmlkZW88L2J1dHRvbj4KICAgICAgPC9kaXY+CiAgICBgfXJlbmRlclZpZGVvKHQpe3JldHVybmAKICAgICAgPGRpdiBjbGFzcz0ieW91dHViZS1jb250YWluZXIiPgogICAgICAgIDxpZnJhbWUgCiAgICAgICAgICBzcmM9Imh0dHBzOi8vd3d3LnlvdXR1YmUuY29tL2VtYmVkLyR7dH0iCiAgICAgICAgICBmcmFtZWJvcmRlcj0iMCIKICAgICAgICAgIGFsbG93PSJhY2NlbGVyb21ldGVyOyBhdXRvcGxheTsgY2xpcGJvYXJkLXdyaXRlOyBlbmNyeXB0ZWQtbWVkaWE7IGd5cm9zY29wZTsgcGljdHVyZS1pbi1waWN0dXJlIgogICAgICAgICAgYWxsb3dmdWxsc2NyZWVuCiAgICAgICAgPjwvaWZyYW1lPgogICAgICA8L2Rpdj4KICAgIGB9c2V0dXAodCxyLGkpe2xldCBhPXQucXVlcnlTZWxlY3RvcigiLnlvdXR1YmUtYmxvY2stY29udGFpbmVyIik7aWYoIWEpcmV0dXJuO2lmKHIubWV0YWRhdGE/LnZpZGVvSWQpe2Euc2V0QXR0cmlidXRlKCJ0YWJpbmRleCIsIjAiKSxhLmFkZEV2ZW50TGlzdGVuZXIoImZvY3VzIiwoKT0+aS5vbkZvY3VzKCkpLGEuYWRkRXZlbnRMaXN0ZW5lcigiYmx1ciIsKCk9Pmkub25CbHVyKCkpLGEuYWRkRXZlbnRMaXN0ZW5lcigia2V5ZG93biIscz0+eyhzLmtleT09PSJEZWxldGUifHxzLmtleT09PSJCYWNrc3BhY2UiKSYmcy5wcmV2ZW50RGVmYXVsdCgpLGkub25LZXlEb3duKHMpfSk7cmV0dXJufWxldCBuPXQucXVlcnlTZWxlY3RvcigiLnlvdXR1YmUtdXJsLWlucHV0Iiksbz10LnF1ZXJ5U2VsZWN0b3IoIi55b3V0dWJlLWVtYmVkLWJ0biIpOyFufHwhb3x8KG4uYWRkRXZlbnRMaXN0ZW5lcigiZm9jdXMiLCgpPT5pLm9uRm9jdXMoKSksbi5hZGRFdmVudExpc3RlbmVyKCJibHVyIiwoKT0+aS5vbkJsdXIoKSksby5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsKCk9Pnt0aGlzLmVtYmVkVmlkZW8obi52YWx1ZSxyLGkpfSksbi5hZGRFdmVudExpc3RlbmVyKCJrZXlkb3duIixzPT57cy5rZXk9PT0iRW50ZXIiPyhzLnByZXZlbnREZWZhdWx0KCksdGhpcy5lbWJlZFZpZGVvKG4udmFsdWUscixpKSk6cy5rZXk9PT0iRXNjYXBlIiYmKHMucHJldmVudERlZmF1bHQoKSxuLmJsdXIoKSl9KSxuLmFkZEV2ZW50TGlzdGVuZXIoInBhc3RlIixzPT57c2V0VGltZW91dCgoKT0+e2xldCBsPW4udmFsdWU7dGhpcy5leHRyYWN0WW91VHViZVZpZGVvSWQobCkmJnRoaXMuZW1iZWRWaWRlbyhsLHIsaSl9LDApfSksbi5hZGRFdmVudExpc3RlbmVyKCJpbnB1dCIsKCk9PntyLm1ldGFkYXRhfHwoci5tZXRhZGF0YT17fSksci5tZXRhZGF0YS51cmw9bi52YWx1ZX0pKX1lbWJlZFZpZGVvKHQscixpKXtsZXQgYT10aGlzLmV4dHJhY3RZb3VUdWJlVmlkZW9JZCh0KTtpZighYSl7Y29uc29sZS5lcnJvcigiSW52YWxpZCBZb3VUdWJlIFVSTCIpO3JldHVybn1yLm1ldGFkYXRhfHwoci5tZXRhZGF0YT17fSksci5tZXRhZGF0YS52aWRlb0lkPWEsci5tZXRhZGF0YS51cmw9dCxyLmNvbnRlbnQ9YFlvdVR1YmUgVmlkZW86ICR7YX1gLGkub25SZXF1ZXN0VXBkYXRlPy4oKX1leHRyYWN0WW91VHViZVZpZGVvSWQodCl7bGV0IHI9Wy8oPzp5b3V0dWJlXC5jb21cLyg/OlteXC9dK1wvLitcL3woPzp2fGUoPzptYmVkKT8pXC98LipbPyZddj0pfHlvdXR1XC5iZVwvKShbXiImP1wvIF17MTF9KS8sL3lvdXR1YmVcLmNvbVwvZW1iZWRcLyhbXiImP1wvIF17MTF9KS8sL3lvdXR1YmVcLmNvbVwvd2F0Y2hcP3Y9KFteIiY/XC8gXXsxMX0pLywveW91dHVcLmJlXC8oW14iJj9cLyBdezExfSkvXTtmb3IobGV0IGkgb2Ygcil7bGV0IGE9dC5tYXRjaChpKTtpZihhKXJldHVybiBhWzFdfXJldHVybiBudWxsfWVzY2FwZUh0bWwodCl7bGV0IHI9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7cmV0dXJuIHIudGV4dENvbnRlbnQ9dCxyLmlubmVySFRNTH1nZXRDb250ZW50KHQpe3JldHVybiB0aGlzLmdldEJsb2NrRnJvbUVsZW1lbnQodCk/LmNvbnRlbnR8fCIifXNldENvbnRlbnQodCxyKXtsZXQgaT10aGlzLmdldEJsb2NrRnJvbUVsZW1lbnQodCk7aSYmKGkuY29udGVudD1yKX1nZXRCbG9ja0Zyb21FbGVtZW50KHQpe2xldCBpPXQucXVlcnlTZWxlY3RvcigiLnlvdXR1YmUtYmxvY2stY29udGFpbmVyIik/LmdldEF0dHJpYnV0ZSgiZGF0YS1ibG9jay1pZCIpO3JldHVybiBpP3tpZDppLHR5cGU6InlvdXR1YmUiLGNvbnRlbnQ6IiIsbWV0YWRhdGE6e319Om51bGx9Z2V0Q3Vyc29yUG9zaXRpb24odCl7cmV0dXJuIG51bGx9c2V0Q3Vyc29yVG9TdGFydCh0KXt0aGlzLmZvY3VzKHQpfXNldEN1cnNvclRvRW5kKHQpe3RoaXMuZm9jdXModCl9Zm9jdXModCl7bGV0IHI9dC5xdWVyeVNlbGVjdG9yKCIueW91dHViZS1ibG9jay1jb250YWluZXIiKSxpPXQucXVlcnlTZWxlY3RvcigiLnlvdXR1YmUtdXJsLWlucHV0Iik7aT9pLmZvY3VzKCk6ciYmci5mb2N1cygpfWZvY3VzV2l0aEN1cnNvcih0LHI9ImVuZCIpe3RoaXMuZm9jdXModCl9Z2V0U3BsaXRDb250ZW50KHQpe3JldHVybiBudWxsfWdldFN0eWxlcygpe3JldHVybmAKICAgICAgLyogWW91VHViZSBCbG9jayBDb250YWluZXIgKi8KICAgICAgLnlvdXR1YmUtYmxvY2stY29udGFpbmVyIHsKICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgICAgbWFyZ2luOiAxMnB4IDA7CiAgICAgICAgYm9yZGVyLXJhZGl1czogNnB4OwogICAgICAgIG92ZXJmbG93OiBoaWRkZW47CiAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuMTVzIGVhc2U7CiAgICAgICAgb3V0bGluZTogbm9uZTsKICAgICAgfQogICAgICAKICAgICAgLnlvdXR1YmUtYmxvY2stY29udGFpbmVyLnNlbGVjdGVkIHsKICAgICAgICBib3gtc2hhZG93OiAwIDAgMCAycHggJHttLmJkVGhlbWUoIiM2MzY2ZjEiLCIjODE4Y2Y4Iil9OwogICAgICB9CiAgICAgIAogICAgICAvKiBZb3VUdWJlIFBsYWNlaG9sZGVyICovCiAgICAgIC55b3V0dWJlLXBsYWNlaG9sZGVyIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKICAgICAgICBwYWRkaW5nOiAzMnB4IDI0cHg7CiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHttLmJkVGhlbWUoIiNlNWU3ZWIiLCIjMzc0MTUxIil9OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDZweDsKICAgICAgICBiYWNrZ3JvdW5kOiAke20uYmRUaGVtZSgiI2ZhZmFmYSIsIiMwYTBhMGEiKX07CiAgICAgICAgZ2FwOiAxMnB4OwogICAgICB9CiAgICAgIAogICAgICAucGxhY2Vob2xkZXItaWNvbiB7CiAgICAgICAgY29sb3I6ICR7bS5iZFRoZW1lKCIjZGMyNjI2IiwiI2VmNDQ0NCIpfTsKICAgICAgICBvcGFjaXR5OiAwLjg7CiAgICAgIH0KICAgICAgCiAgICAgIC5wbGFjZWhvbGRlci10ZXh0IHsKICAgICAgICBmb250LXNpemU6IDE0cHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDsKICAgICAgICBjb2xvcjogJHttLmJkVGhlbWUoIiMzNzQxNTEiLCIjZTVlN2ViIil9OwogICAgICB9CiAgICAgIAogICAgICAueW91dHViZS11cmwtaW5wdXQgewogICAgICAgIHdpZHRoOiAxMDAlOwogICAgICAgIG1heC13aWR0aDogNDAwcHg7CiAgICAgICAgcGFkZGluZzogOHB4IDEycHg7CiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHttLmJkVGhlbWUoIiNlNWU3ZWIiLCIjMzc0MTUxIil9OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDRweDsKICAgICAgICBiYWNrZ3JvdW5kOiAke20uYmRUaGVtZSgiI2ZmZmZmZiIsIiMxMTE4MjciKX07CiAgICAgICAgY29sb3I6ICR7bS5iZFRoZW1lKCIjMTExODI3IiwiI2Y5ZmFmYiIpfTsKICAgICAgICBmb250LXNpemU6IDEzcHg7CiAgICAgICAgZm9udC1mYW1pbHk6IC1hcHBsZS1zeXN0ZW0sIEJsaW5rTWFjU3lzdGVtRm9udCwgJ1NlZ29lIFVJJywgc2Fucy1zZXJpZjsKICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC4xNXMgZWFzZTsKICAgICAgICBvdXRsaW5lOiBub25lOwogICAgICB9CiAgICAgIAogICAgICAueW91dHViZS11cmwtaW5wdXQ6Zm9jdXMgewogICAgICAgIGJvcmRlci1jb2xvcjogJHttLmJkVGhlbWUoIiM2YjcyODAiLCIjOWNhM2FmIil9OwogICAgICAgIGJhY2tncm91bmQ6ICR7bS5iZFRoZW1lKCIjZmZmZmZmIiwiIzFmMjkzNyIpfTsKICAgICAgfQogICAgICAKICAgICAgLnlvdXR1YmUtdXJsLWlucHV0OjpwbGFjZWhvbGRlciB7CiAgICAgICAgY29sb3I6ICR7bS5iZFRoZW1lKCIjOWNhM2FmIiwiIzRiNTU2MyIpfTsKICAgICAgfQogICAgICAKICAgICAgLnlvdXR1YmUtZW1iZWQtYnRuIHsKICAgICAgICBwYWRkaW5nOiA2cHggMTZweDsKICAgICAgICBiYWNrZ3JvdW5kOiAke20uYmRUaGVtZSgiIzExMTgyNyIsIiNmOWZhZmIiKX07CiAgICAgICAgY29sb3I6ICR7bS5iZFRoZW1lKCIjZjlmYWZiIiwiIzExMTgyNyIpfTsKICAgICAgICBib3JkZXI6IDFweCBzb2xpZCB0cmFuc3BhcmVudDsKICAgICAgICBib3JkZXItcmFkaXVzOiA0cHg7CiAgICAgICAgZm9udC1zaXplOiAxM3B4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7CiAgICAgICAgZm9udC1mYW1pbHk6IC1hcHBsZS1zeXN0ZW0sIEJsaW5rTWFjU3lzdGVtRm9udCwgJ1NlZ29lIFVJJywgc2Fucy1zZXJpZjsKICAgICAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuMTVzIGVhc2U7CiAgICAgICAgb3V0bGluZTogbm9uZTsKICAgICAgfQogICAgICAKICAgICAgLnlvdXR1YmUtZW1iZWQtYnRuOmhvdmVyIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke20uYmRUaGVtZSgiIzM3NDE1MSIsIiNlNWU3ZWIiKX07CiAgICAgIH0KICAgICAgCiAgICAgIC55b3V0dWJlLWVtYmVkLWJ0bjphY3RpdmUgewogICAgICAgIHRyYW5zZm9ybTogc2NhbGUoMC45OCk7CiAgICAgIH0KICAgICAgCiAgICAgIC8qIFlvdVR1YmUgQ29udGFpbmVyICovCiAgICAgIC55b3V0dWJlLWNvbnRhaW5lciB7CiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICAgIHdpZHRoOiAxMDAlOwogICAgICAgIHBhZGRpbmctYm90dG9tOiA1Ni4yNSU7IC8qIDE2OjkgYXNwZWN0IHJhdGlvICovCiAgICAgICAgYmFja2dyb3VuZDogJHttLmJkVGhlbWUoIiMwMDAwMDAiLCIjMDAwMDAwIil9OwogICAgICB9CiAgICAgIAogICAgICAueW91dHViZS1jb250YWluZXIgaWZyYW1lIHsKICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgICAgdG9wOiAwOwogICAgICAgIGxlZnQ6IDA7CiAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgICAgaGVpZ2h0OiAxMDAlOwogICAgICAgIGJvcmRlcjogMDsKICAgICAgICBib3JkZXItcmFkaXVzOiA2cHg7CiAgICAgIH0KICAgIGB9fX0pO3ZhciBUYixhNHI9cCgoKT0+e0puKCk7eGUoKTtUYj1jbGFzcyBleHRlbmRzIGYxe3R5cGU9ImF0dGFjaG1lbnQiO3JlbmRlcih0LHIpe2xldCBpPXQubWV0YWRhdGE/LmZpbGVzfHxbXTtyZXR1cm5gCiAgICAgIDxkaXYgY2xhc3M9ImF0dGFjaG1lbnQtYmxvY2stY29udGFpbmVyJHtyPyIgc2VsZWN0ZWQiOiIifSIgCiAgICAgICAgICAgZGF0YS1ibG9jay1pZD0iJHt0LmlkfSIKICAgICAgICAgICB0YWJpbmRleD0iMCI+CiAgICAgICAgPGRpdiBjbGFzcz0iYXR0YWNobWVudC1oZWFkZXIiPgogICAgICAgICAgPGRpdiBjbGFzcz0iYXR0YWNobWVudC1pY29uIj5cdXsxRjRDRX08L2Rpdj4KICAgICAgICAgIDxkaXYgY2xhc3M9ImF0dGFjaG1lbnQtdGl0bGUiPkZpbGUgQXR0YWNobWVudHM8L2Rpdj4KICAgICAgICA8L2Rpdj4KICAgICAgICA8ZGl2IGNsYXNzPSJhdHRhY2htZW50LWxpc3QiPgogICAgICAgICAgJHtpLmxlbmd0aD4wP3RoaXMucmVuZGVyRmlsZXMoaSk6dGhpcy5yZW5kZXJQbGFjZWhvbGRlcigpfQogICAgICAgIDwvZGl2PgogICAgICAgIDxpbnB1dCB0eXBlPSJmaWxlIiAKICAgICAgICAgICAgICAgY2xhc3M9ImF0dGFjaG1lbnQtZmlsZS1pbnB1dCIgCiAgICAgICAgICAgICAgIG11bHRpcGxlIAogICAgICAgICAgICAgICBzdHlsZT0iZGlzcGxheTogbm9uZTsiIC8+CiAgICAgICAgJHtpLmxlbmd0aD4wPyc8YnV0dG9uIGNsYXNzPSJhZGQtbW9yZS1maWxlcyI+QWRkIE1vcmUgRmlsZXM8L2J1dHRvbj4nOiIifQogICAgICA8L2Rpdj4KICAgIGB9cmVuZGVyUGxhY2Vob2xkZXIoKXtyZXR1cm5gCiAgICAgIDxkaXYgY2xhc3M9ImF0dGFjaG1lbnQtcGxhY2Vob2xkZXIiPgogICAgICAgIDxkaXYgY2xhc3M9InBsYWNlaG9sZGVyLXRleHQiPkNsaWNrIHRvIGFkZCBmaWxlczwvZGl2PgogICAgICAgIDxkaXYgY2xhc3M9InBsYWNlaG9sZGVyLWhpbnQiPm9yIGRyYWcgYW5kIGRyb3A8L2Rpdj4KICAgICAgPC9kaXY+CiAgICBgfXJlbmRlckZpbGVzKHQpe3JldHVybiB0Lm1hcChyPT5gCiAgICAgIDxkaXYgY2xhc3M9ImF0dGFjaG1lbnQtaXRlbSIgZGF0YS1maWxlLWlkPSIke3IuaWR9Ij4KICAgICAgICA8ZGl2IGNsYXNzPSJmaWxlLWljb24iPiR7dGhpcy5nZXRGaWxlSWNvbihyLnR5cGUpfTwvZGl2PgogICAgICAgIDxkaXYgY2xhc3M9ImZpbGUtaW5mbyI+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJmaWxlLW5hbWUiPiR7dGhpcy5lc2NhcGVIdG1sKHIubmFtZSl9PC9kaXY+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJmaWxlLXNpemUiPiR7dGhpcy5mb3JtYXRGaWxlU2l6ZShyLnNpemUpfTwvZGl2PgogICAgICAgIDwvZGl2PgogICAgICAgIDxidXR0b24gY2xhc3M9InJlbW92ZS1maWxlIiBkYXRhLWZpbGUtaWQ9IiR7ci5pZH0iPlx4RDc8L2J1dHRvbj4KICAgICAgPC9kaXY+CiAgICBgKS5qb2luKCIiKX1zZXR1cCh0LHIsaSl7bGV0IGE9dC5xdWVyeVNlbGVjdG9yKCIuYXR0YWNobWVudC1ibG9jay1jb250YWluZXIiKSxuPXQucXVlcnlTZWxlY3RvcigiLmF0dGFjaG1lbnQtZmlsZS1pbnB1dCIpO2lmKCFhfHwhbil7Y29uc29sZS5lcnJvcigiQXR0YWNobWVudEJsb2NrSGFuZGxlcjogQ291bGQgbm90IGZpbmQgcmVxdWlyZWQgZWxlbWVudHMiKTtyZXR1cm59ci5tZXRhZGF0YXx8KHIubWV0YWRhdGE9e30pLHIubWV0YWRhdGEuZmlsZXN8fChyLm1ldGFkYXRhLmZpbGVzPVtdKTtsZXQgbz1hLnF1ZXJ5U2VsZWN0b3IoIi5hdHRhY2htZW50LXBsYWNlaG9sZGVyIik7byYmby5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsbD0+e2wucHJldmVudERlZmF1bHQoKSxsLnN0b3BQcm9wYWdhdGlvbigpLG4uY2xpY2soKX0pO2xldCBzPWEucXVlcnlTZWxlY3RvcigiLmFkZC1tb3JlLWZpbGVzIik7cyYmcy5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsbD0+e2wucHJldmVudERlZmF1bHQoKSxsLnN0b3BQcm9wYWdhdGlvbigpLG4uY2xpY2soKX0pLG4uYWRkRXZlbnRMaXN0ZW5lcigiY2hhbmdlIixhc3luYyBsPT57bGV0IGM9bC50YXJnZXQsdT1jLmZpbGVzO3UmJnUubGVuZ3RoPjAmJihhd2FpdCB0aGlzLmhhbmRsZUZpbGVBdHRhY2htZW50cyh1LHIsaSksYy52YWx1ZT0iIil9KSxhLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIixsPT57bGV0IGM9bC50YXJnZXQ7aWYoYy5jbGFzc0xpc3QuY29udGFpbnMoInJlbW92ZS1maWxlIikpe2wucHJldmVudERlZmF1bHQoKSxsLnN0b3BQcm9wYWdhdGlvbigpO2xldCB1PWMuZ2V0QXR0cmlidXRlKCJkYXRhLWZpbGUtaWQiKTt1JiZ0aGlzLnJlbW92ZUZpbGUodSxyLGkpfX0pLGEuYWRkRXZlbnRMaXN0ZW5lcigiZHJhZ292ZXIiLGw9PntsLnByZXZlbnREZWZhdWx0KCksbC5zdG9wUHJvcGFnYXRpb24oKSxhLmNsYXNzTGlzdC5hZGQoImRyYWctb3ZlciIpfSksYS5hZGRFdmVudExpc3RlbmVyKCJkcmFnbGVhdmUiLGw9PntsLnByZXZlbnREZWZhdWx0KCksbC5zdG9wUHJvcGFnYXRpb24oKSxhLmNsYXNzTGlzdC5yZW1vdmUoImRyYWctb3ZlciIpfSksYS5hZGRFdmVudExpc3RlbmVyKCJkcm9wIixhc3luYyBsPT57bC5wcmV2ZW50RGVmYXVsdCgpLGwuc3RvcFByb3BhZ2F0aW9uKCksYS5jbGFzc0xpc3QucmVtb3ZlKCJkcmFnLW92ZXIiKTtsZXQgYz1sLmRhdGFUcmFuc2Zlcj8uZmlsZXM7YyYmYy5sZW5ndGg+MCYmYXdhaXQgdGhpcy5oYW5kbGVGaWxlQXR0YWNobWVudHMoYyxyLGkpfSksYS5hZGRFdmVudExpc3RlbmVyKCJmb2N1cyIsKCk9Pmkub25Gb2N1cygpKSxhLmFkZEV2ZW50TGlzdGVuZXIoImJsdXIiLCgpPT5pLm9uQmx1cigpKSxhLmFkZEV2ZW50TGlzdGVuZXIoImtleWRvd24iLGw9PntpZigobC5rZXk9PT0iRGVsZXRlInx8bC5rZXk9PT0iQmFja3NwYWNlIikmJmRvY3VtZW50LmFjdGl2ZUVsZW1lbnQ9PT1hJiZyLm1ldGFkYXRhPy5maWxlcz8ubGVuZ3RoPjApe2wucHJldmVudERlZmF1bHQoKSxyLm1ldGFkYXRhLmZpbGVzPVtdLGkub25SZXF1ZXN0VXBkYXRlPy4oKTtyZXR1cm59aS5vbktleURvd24obCl9KX1hc3luYyBoYW5kbGVGaWxlQXR0YWNobWVudHModCxyLGkpe3IubWV0YWRhdGF8fChyLm1ldGFkYXRhPXt9KSxyLm1ldGFkYXRhLmZpbGVzfHwoci5tZXRhZGF0YS5maWxlcz1bXSk7Zm9yKGxldCBhIG9mIEFycmF5LmZyb20odCkpdHJ5e2xldCBuPWF3YWl0IHRoaXMuZmlsZVRvRGF0YVVybChhKSxvPXtpZDp0aGlzLmdlbmVyYXRlSWQoKSxuYW1lOmEubmFtZSxzaXplOmEuc2l6ZSx0eXBlOmEudHlwZSxkYXRhOm59O3IubWV0YWRhdGEuZmlsZXMucHVzaChvKX1jYXRjaChuKXtjb25zb2xlLmVycm9yKCJGYWlsZWQgdG8gYXR0YWNoIGZpbGU6IixhLm5hbWUsbil9ci5jb250ZW50PWAke3IubWV0YWRhdGEuZmlsZXMubGVuZ3RofSBmaWxlJHtyLm1ldGFkYXRhLmZpbGVzLmxlbmd0aCE9PTE/InMiOiIifSBhdHRhY2hlZGAsaS5vblJlcXVlc3RVcGRhdGU/LigpfXJlbW92ZUZpbGUodCxyLGkpe3IubWV0YWRhdGE/LmZpbGVzJiYoci5tZXRhZGF0YS5maWxlcz1yLm1ldGFkYXRhLmZpbGVzLmZpbHRlcihhPT5hLmlkIT09dCksci5jb250ZW50PXIubWV0YWRhdGEuZmlsZXMubGVuZ3RoPjA/YCR7ci5tZXRhZGF0YS5maWxlcy5sZW5ndGh9IGZpbGUke3IubWV0YWRhdGEuZmlsZXMubGVuZ3RoIT09MT8icyI6IiJ9IGF0dGFjaGVkYDoiIixpLm9uUmVxdWVzdFVwZGF0ZT8uKCkpfWZpbGVUb0RhdGFVcmwodCl7cmV0dXJuIG5ldyBQcm9taXNlKChyLGkpPT57bGV0IGE9bmV3IEZpbGVSZWFkZXI7YS5vbmxvYWQ9bj0+e2xldCBvPW4udGFyZ2V0Py5yZXN1bHQ7dHlwZW9mIG89PSJzdHJpbmciP3Iobyk6aShuZXcgRXJyb3IoIkZhaWxlZCB0byByZWFkIGZpbGUiKSl9LGEub25lcnJvcj1pLGEucmVhZEFzRGF0YVVSTCh0KX0pfWdldEZpbGVJY29uKHQpe3JldHVybiB0LnN0YXJ0c1dpdGgoImltYWdlLyIpPyJcdXsxRjVCQ31cdUZFMEYiOnQuc3RhcnRzV2l0aCgidmlkZW8vIik/Ilx1ezFGM0E1fSI6dC5zdGFydHNXaXRoKCJhdWRpby8iKT8iXHV7MUYzQjV9Ijp0LmluY2x1ZGVzKCJwZGYiKT8iXHV7MUY0QzR9Ijp0LmluY2x1ZGVzKCJ6aXAiKXx8dC5pbmNsdWRlcygicmFyIil8fHQuaW5jbHVkZXMoInRhciIpPyJcdXsxRjVDNH1cdUZFMEYiOnQuaW5jbHVkZXMoInNoZWV0Iik/Ilx1ezFGNENBfSI6dC5pbmNsdWRlcygiZG9jdW1lbnQiKXx8dC5pbmNsdWRlcygibXN3b3JkIik/Ilx1ezFGNEREfSI6dC5pbmNsdWRlcygicHJlc2VudGF0aW9uIik/Ilx1ezFGNENCfSI6dC5pbmNsdWRlcygidGV4dCIpPyJcdXsxRjRDM30iOiJcdXsxRjRDMX0ifWZvcm1hdEZpbGVTaXplKHQpe2lmKHQ9PT0wKXJldHVybiIwIEJ5dGVzIjtsZXQgcj0xMDI0LGk9WyJCeXRlcyIsIktCIiwiTUIiLCJHQiJdLGE9TWF0aC5mbG9vcihNYXRoLmxvZyh0KS9NYXRoLmxvZyhyKSk7cmV0dXJuIHBhcnNlRmxvYXQoKHQvTWF0aC5wb3cocixhKSkudG9GaXhlZCgyKSkrIiAiK2lbYV19Z2VuZXJhdGVJZCgpe3JldHVybmBmaWxlLSR7RGF0ZS5ub3coKX0tJHtNYXRoLnJhbmRvbSgpLnRvU3RyaW5nKDM2KS5zdWJzdHIoMiw5KX1gfWVzY2FwZUh0bWwodCl7bGV0IHI9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7cmV0dXJuIHIudGV4dENvbnRlbnQ9dCxyLmlubmVySFRNTH1nZXRDb250ZW50KHQpe3JldHVybiB0aGlzLmdldEJsb2NrRnJvbUVsZW1lbnQodCk/LmNvbnRlbnR8fCIifXNldENvbnRlbnQodCxyKXtsZXQgaT10aGlzLmdldEJsb2NrRnJvbUVsZW1lbnQodCk7aSYmKGkuY29udGVudD1yKX1nZXRCbG9ja0Zyb21FbGVtZW50KHQpe2xldCBpPXQucXVlcnlTZWxlY3RvcigiLmF0dGFjaG1lbnQtYmxvY2stY29udGFpbmVyIik/LmdldEF0dHJpYnV0ZSgiZGF0YS1ibG9jay1pZCIpO3JldHVybiBpP3tpZDppLHR5cGU6ImF0dGFjaG1lbnQiLGNvbnRlbnQ6IiIsbWV0YWRhdGE6e319Om51bGx9Z2V0Q3Vyc29yUG9zaXRpb24odCl7cmV0dXJuIG51bGx9c2V0Q3Vyc29yVG9TdGFydCh0KXt0aGlzLmZvY3VzKHQpfXNldEN1cnNvclRvRW5kKHQpe3RoaXMuZm9jdXModCl9Zm9jdXModCl7dC5xdWVyeVNlbGVjdG9yKCIuYXR0YWNobWVudC1ibG9jay1jb250YWluZXIiKT8uZm9jdXMoKX1mb2N1c1dpdGhDdXJzb3IodCxyPSJlbmQiKXt0aGlzLmZvY3VzKHQpfWdldFNwbGl0Q29udGVudCh0KXtyZXR1cm4gbnVsbH1nZXRTdHlsZXMoKXtyZXR1cm5gCiAgICAgIC8qIEF0dGFjaG1lbnQgQmxvY2sgQ29udGFpbmVyICovCiAgICAgIC5hdHRhY2htZW50LWJsb2NrLWNvbnRhaW5lciB7CiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICAgIG1hcmdpbjogMTJweCAwOwogICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICR7bS5iZFRoZW1lKCIjZTVlN2ViIiwiIzM3NDE1MSIpfTsKICAgICAgICBib3JkZXItcmFkaXVzOiA2cHg7CiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC4xNXMgZWFzZTsKICAgICAgICBvdXRsaW5lOiBub25lOwogICAgICAgIGJhY2tncm91bmQ6ICR7bS5iZFRoZW1lKCIjZmZmZmZmIiwiIzExMTgyNyIpfTsKICAgICAgfQogICAgICAKICAgICAgLmF0dGFjaG1lbnQtYmxvY2stY29udGFpbmVyLnNlbGVjdGVkIHsKICAgICAgICBib3JkZXItY29sb3I6ICR7bS5iZFRoZW1lKCIjOWNhM2FmIiwiIzZiNzI4MCIpfTsKICAgICAgfQogICAgICAKICAgICAgLmF0dGFjaG1lbnQtYmxvY2stY29udGFpbmVyLmRyYWctb3ZlciB7CiAgICAgICAgYmFja2dyb3VuZDogJHttLmJkVGhlbWUoIiNmOWZhZmIiLCIjMWYyOTM3Iil9OwogICAgICAgIGJvcmRlci1jb2xvcjogJHttLmJkVGhlbWUoIiM2MzY2ZjEiLCIjODE4Y2Y4Iil9OwogICAgICB9CiAgICAgIAogICAgICAvKiBIZWFkZXIgKi8KICAgICAgLmF0dGFjaG1lbnQtaGVhZGVyIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgZ2FwOiA4cHg7CiAgICAgICAgcGFkZGluZzogMTJweCAxNnB4OwogICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAke20uYmRUaGVtZSgiI2U1ZTdlYiIsIiMzNzQxNTEiKX07CiAgICAgICAgYmFja2dyb3VuZDogJHttLmJkVGhlbWUoIiNmOWZhZmIiLCIjMGEwYTBhIil9OwogICAgICB9CiAgICAgIAogICAgICAuYXR0YWNobWVudC1pY29uIHsKICAgICAgICBmb250LXNpemU6IDE4cHg7CiAgICAgICAgb3BhY2l0eTogMC44OwogICAgICB9CiAgICAgIAogICAgICAuYXR0YWNobWVudC10aXRsZSB7CiAgICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7CiAgICAgICAgY29sb3I6ICR7bS5iZFRoZW1lKCIjMzc0MTUxIiwiI2U1ZTdlYiIpfTsKICAgICAgfQogICAgICAKICAgICAgLyogRmlsZSBMaXN0ICovCiAgICAgIC5hdHRhY2htZW50LWxpc3QgewogICAgICAgIHBhZGRpbmc6IDhweDsKICAgICAgICBtaW4taGVpZ2h0OiA4MHB4OwogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgICBnYXA6IDRweDsKICAgICAgfQogICAgICAKICAgICAgLyogUGxhY2Vob2xkZXIgKi8KICAgICAgLmF0dGFjaG1lbnQtcGxhY2Vob2xkZXIgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOwogICAgICAgIHBhZGRpbmc6IDI0cHg7CiAgICAgICAgY3Vyc29yOiBwb2ludGVyOwogICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjE1cyBlYXNlOwogICAgICB9CiAgICAgIAogICAgICAuYXR0YWNobWVudC1wbGFjZWhvbGRlcjpob3ZlciB7CiAgICAgICAgYmFja2dyb3VuZDogJHttLmJkVGhlbWUoIiNmOWZhZmIiLCIjMWYyOTM3Iil9OwogICAgICB9CiAgICAgIAogICAgICAucGxhY2Vob2xkZXItdGV4dCB7CiAgICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgICAgIGNvbG9yOiAke20uYmRUaGVtZSgiIzZiNzI4MCIsIiM5Y2EzYWYiKX07CiAgICAgICAgbWFyZ2luLWJvdHRvbTogNHB4OwogICAgICB9CiAgICAgIAogICAgICAucGxhY2Vob2xkZXItaGludCB7CiAgICAgICAgZm9udC1zaXplOiAxMnB4OwogICAgICAgIGNvbG9yOiAke20uYmRUaGVtZSgiIzljYTNhZiIsIiM2YjcyODAiKX07CiAgICAgIH0KICAgICAgCiAgICAgIC8qIEZpbGUgSXRlbXMgKi8KICAgICAgLmF0dGFjaG1lbnQtaXRlbSB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGdhcDogMTJweDsKICAgICAgICBwYWRkaW5nOiA4cHggMTJweDsKICAgICAgICBiYWNrZ3JvdW5kOiAke20uYmRUaGVtZSgiI2Y5ZmFmYiIsIiMxZjI5MzciKX07CiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHttLmJkVGhlbWUoIiNlNWU3ZWIiLCIjMzc0MTUxIil9OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDRweDsKICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC4xNXMgZWFzZTsKICAgICAgfQogICAgICAKICAgICAgLmF0dGFjaG1lbnQtaXRlbTpob3ZlciB7CiAgICAgICAgYmFja2dyb3VuZDogJHttLmJkVGhlbWUoIiNmM2Y0ZjYiLCIjMzc0MTUxIil9OwogICAgICB9CiAgICAgIAogICAgICAuZmlsZS1pY29uIHsKICAgICAgICBmb250LXNpemU6IDIwcHg7CiAgICAgICAgZmxleC1zaHJpbms6IDA7CiAgICAgIH0KICAgICAgCiAgICAgIC5maWxlLWluZm8gewogICAgICAgIGZsZXg6IDE7CiAgICAgICAgbWluLXdpZHRoOiAwOwogICAgICB9CiAgICAgIAogICAgICAuZmlsZS1uYW1lIHsKICAgICAgICBmb250LXNpemU6IDEzcHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDsKICAgICAgICBjb2xvcjogJHttLmJkVGhlbWUoIiMxMTE4MjciLCIjZjlmYWZiIil9OwogICAgICAgIG92ZXJmbG93OiBoaWRkZW47CiAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7CiAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDsKICAgICAgfQogICAgICAKICAgICAgLmZpbGUtc2l6ZSB7CiAgICAgICAgZm9udC1zaXplOiAxMXB4OwogICAgICAgIGNvbG9yOiAke20uYmRUaGVtZSgiIzZiNzI4MCIsIiM5Y2EzYWYiKX07CiAgICAgICAgbWFyZ2luLXRvcDogMnB4OwogICAgICB9CiAgICAgIAogICAgICAucmVtb3ZlLWZpbGUgewogICAgICAgIGZsZXgtc2hyaW5rOiAwOwogICAgICAgIHdpZHRoOiAyNHB4OwogICAgICAgIGhlaWdodDogMjRweDsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7CiAgICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7CiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgdHJhbnNwYXJlbnQ7CiAgICAgICAgYm9yZGVyLXJhZGl1czogNHB4OwogICAgICAgIGNvbG9yOiAke20uYmRUaGVtZSgiIzZiNzI4MCIsIiM5Y2EzYWYiKX07CiAgICAgICAgZm9udC1zaXplOiAxOHB4OwogICAgICAgIGxpbmUtaGVpZ2h0OiAxOwogICAgICAgIGN1cnNvcjogcG9pbnRlcjsKICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC4xNXMgZWFzZTsKICAgICAgICBwYWRkaW5nOiAwOwogICAgICB9CiAgICAgIAogICAgICAucmVtb3ZlLWZpbGU6aG92ZXIgewogICAgICAgIGJhY2tncm91bmQ6ICR7bS5iZFRoZW1lKCIjZmVlMmUyIiwiIzk5MWIxYiIpfTsKICAgICAgICBib3JkZXItY29sb3I6ICR7bS5iZFRoZW1lKCIjZmNhNWE1IiwiI2RjMjYyNiIpfTsKICAgICAgICBjb2xvcjogJHttLmJkVGhlbWUoIiNkYzI2MjYiLCIjZmNhNWE1Iil9OwogICAgICB9CiAgICAgIAogICAgICAvKiBBZGQgTW9yZSBGaWxlcyBCdXR0b24gKi8KICAgICAgLmFkZC1tb3JlLWZpbGVzIHsKICAgICAgICBtYXJnaW46IDhweDsKICAgICAgICBwYWRkaW5nOiA2cHggMTJweDsKICAgICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDsKICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAke20uYmRUaGVtZSgiI2U1ZTdlYiIsIiMzNzQxNTEiKX07CiAgICAgICAgYm9yZGVyLXJhZGl1czogNHB4OwogICAgICAgIGZvbnQtc2l6ZTogMTNweDsKICAgICAgICBjb2xvcjogJHttLmJkVGhlbWUoIiMzNzQxNTEiLCIjZTVlN2ViIil9OwogICAgICAgIGN1cnNvcjogcG9pbnRlcjsKICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC4xNXMgZWFzZTsKICAgICAgICBmb250LWZhbWlseTogLWFwcGxlLXN5c3RlbSwgQmxpbmtNYWNTeXN0ZW1Gb250LCAnU2Vnb2UgVUknLCBzYW5zLXNlcmlmOwogICAgICB9CiAgICAgIAogICAgICAuYWRkLW1vcmUtZmlsZXM6aG92ZXIgewogICAgICAgIGJhY2tncm91bmQ6ICR7bS5iZFRoZW1lKCIjZjlmYWZiIiwiIzFmMjkzNyIpfTsKICAgICAgICBib3JkZXItY29sb3I6ICR7bS5iZFRoZW1lKCIjZDFkNWRiIiwiIzRiNTU2MyIpfTsKICAgICAgfQogICAgICAKICAgICAgLyogSGlkZGVuIGZpbGUgaW5wdXQgKi8KICAgICAgLmF0dGFjaG1lbnQtZmlsZS1pbnB1dCB7CiAgICAgICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50OwogICAgICB9CiAgICBgfX19KTt2YXIgX2IsbjRyPXAoKCk9PntKbigpO3hlKCk7X2I9Y2xhc3MgZXh0ZW5kcyBmMXt0eXBlPSJkaXZpZGVyIjtyZW5kZXIodCxyKXtyZXR1cm5gCiAgICAgIDxkaXYgY2xhc3M9ImJsb2NrIGRpdmlkZXIke3I/IiBzZWxlY3RlZCI6IiJ9IiBkYXRhLWJsb2NrLWlkPSIke3QuaWR9IiBkYXRhLWJsb2NrLXR5cGU9IiR7dC50eXBlfSIgdGFiaW5kZXg9IjAiPgogICAgICAgIDxocj4KICAgICAgPC9kaXY+CiAgICBgfXNldHVwKHQscixpKXtsZXQgYT10LnF1ZXJ5U2VsZWN0b3IoIi5ibG9jay5kaXZpZGVyIik7YSYmKGEuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLG49PntuLnN0b3BQcm9wYWdhdGlvbigpLGEuZm9jdXMoKSxpLm9uRm9jdXM/LigpfSksYS5hZGRFdmVudExpc3RlbmVyKCJmb2N1cyIsKCk9PntpLm9uRm9jdXM/LigpfSksYS5hZGRFdmVudExpc3RlbmVyKCJibHVyIiwoKT0+e2kub25CbHVyPy4oKX0pLGEuYWRkRXZlbnRMaXN0ZW5lcigia2V5ZG93biIsbj0+eyhuLmtleT09PSJCYWNrc3BhY2UifHxuLmtleT09PSJEZWxldGUiKSYmbi5wcmV2ZW50RGVmYXVsdCgpLGkub25LZXlEb3duPy4obil9KSl9Z2V0U3R5bGVzKCl7cmV0dXJuYAogICAgICAuYmxvY2suZGl2aWRlciB7CiAgICAgICAgcGFkZGluZzogOHB4IDA7CiAgICAgICAgbWFyZ2luOiAxNnB4IDA7CiAgICAgICAgY3Vyc29yOiBwb2ludGVyOwogICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgICBib3JkZXItcmFkaXVzOiA0cHg7CiAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuMTVzIGVhc2U7CiAgICAgIH0KCiAgICAgIC5ibG9jay5kaXZpZGVyOmZvY3VzIHsKICAgICAgICBvdXRsaW5lOiBub25lOwogICAgICB9CgogICAgICAuYmxvY2suZGl2aWRlci5zZWxlY3RlZCB7CiAgICAgICAgYmFja2dyb3VuZDogJHttLmJkVGhlbWUoInJnYmEoMCwgMTAyLCAyMDQsIDAuMDUpIiwicmdiYSg3NywgMTQ4LCAyNTUsIDAuMDgpIil9OwogICAgICAgIGJveC1zaGFkb3c6IGluc2V0IDAgMCAwIDJweCAke20uYmRUaGVtZSgicmdiYSgwLCAxMDIsIDIwNCwgMC4yKSIsInJnYmEoNzcsIDE0OCwgMjU1LCAwLjIpIil9OwogICAgICB9CgogICAgICAuYmxvY2suZGl2aWRlciBociB7CiAgICAgICAgYm9yZGVyOiBub25lOwogICAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAke20uYmRUaGVtZSgiI2UwZTBlMCIsIiMzMzMiKX07CiAgICAgICAgbWFyZ2luOiAwOwogICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lOwogICAgICB9CiAgICBgfX19KTt2YXIgTGIsbzRyPXAoKCk9PntKbigpO3hlKCk7TGI9Y2xhc3MgZXh0ZW5kcyBmMXt0eXBlPSJtYXJrZG93biI7cmVuZGVyKHQscil7bGV0IGk9dC5tZXRhZGF0YT8uaXNFZGl0TW9kZT8/ITAsYT10LmNvbnRlbnR8fCIiO3JldHVybmAKICAgICAgPGRpdiBjbGFzcz0ibWFya2Rvd24tYmxvY2stY29udGFpbmVyJHtyPyIgc2VsZWN0ZWQiOiIifSIgCiAgICAgICAgICAgZGF0YS1ibG9jay1pZD0iJHt0LmlkfSIKICAgICAgICAgICBkYXRhLWVkaXQtbW9kZT0iJHtpfSI+CiAgICAgICAgPGRpdiBjbGFzcz0ibWFya2Rvd24taGVhZGVyIj4KICAgICAgICAgIDxkaXYgY2xhc3M9Im1hcmtkb3duLWljb24iPk1cdTIxOTM8L2Rpdj4KICAgICAgICAgIDxkaXYgY2xhc3M9Im1hcmtkb3duLXRpdGxlIj5NYXJrZG93bjwvZGl2PgogICAgICAgICAgPGJ1dHRvbiBjbGFzcz0ibWFya2Rvd24tdG9nZ2xlLW1vZGUiIHRpdGxlPSIke2k/IlByZXZpZXciOiJFZGl0In0iPgogICAgICAgICAgICAke2k/Ilx1ezFGNDQxfVx1RkUwRiI6Ilx1MjcwRlx1RkUwRiJ9CiAgICAgICAgICA8L2J1dHRvbj4KICAgICAgICA8L2Rpdj4KICAgICAgICA8ZGl2IGNsYXNzPSJtYXJrZG93bi1jb250ZW50Ij4KICAgICAgICAgICR7aT90aGlzLnJlbmRlckVkaXRvcihhKTp0aGlzLnJlbmRlclByZXZpZXcoYSl9CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGl2PgogICAgYH1yZW5kZXJFZGl0b3IodCl7cmV0dXJuYAogICAgICA8dGV4dGFyZWEgY2xhc3M9Im1hcmtkb3duLWVkaXRvciIgCiAgICAgICAgICAgICAgICBwbGFjZWhvbGRlcj0iRW50ZXIgbWFya2Rvd24gY29udGVudC4uLiIKICAgICAgICAgICAgICAgIHNwZWxsY2hlY2s9ImZhbHNlIj4ke3RoaXMuZXNjYXBlSHRtbCh0KX08L3RleHRhcmVhPgogICAgYH1yZW5kZXJQcmV2aWV3KHQpe3JldHVybmAKICAgICAgPGRpdiBjbGFzcz0ibWFya2Rvd24tcHJldmlldyI+CiAgICAgICAgJHt0aGlzLnBhcnNlTWFya2Rvd24odCl8fCc8ZGl2IGNsYXNzPSJwcmV2aWV3LWVtcHR5Ij5ObyBjb250ZW50IHRvIHByZXZpZXc8L2Rpdj4nfQogICAgICA8L2Rpdj4KICAgIGB9c2V0dXAodCxyLGkpe2xldCBhPXQucXVlcnlTZWxlY3RvcigiLm1hcmtkb3duLWJsb2NrLWNvbnRhaW5lciIpLG49dC5xdWVyeVNlbGVjdG9yKCIubWFya2Rvd24tdG9nZ2xlLW1vZGUiKTtpZighYXx8IW4pe2NvbnNvbGUuZXJyb3IoIk1hcmtkb3duQmxvY2tIYW5kbGVyOiBDb3VsZCBub3QgZmluZCByZXF1aXJlZCBlbGVtZW50cyIpO3JldHVybn1yLm1ldGFkYXRhfHwoci5tZXRhZGF0YT17fSksci5tZXRhZGF0YS5pc0VkaXRNb2RlPT09dm9pZCAwJiYoci5tZXRhZGF0YS5pc0VkaXRNb2RlPSEwKSxuLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIixvPT57aWYoby5wcmV2ZW50RGVmYXVsdCgpLG8uc3RvcFByb3BhZ2F0aW9uKCksci5tZXRhZGF0YS5pc0VkaXRNb2RlKXtsZXQgcz1hLnF1ZXJ5U2VsZWN0b3IoIi5tYXJrZG93bi1lZGl0b3IiKTtzJiYoci5jb250ZW50PXMudmFsdWUpfXIubWV0YWRhdGEuaXNFZGl0TW9kZT0hci5tZXRhZGF0YS5pc0VkaXRNb2RlLGkub25SZXF1ZXN0VXBkYXRlPy4oKX0pLHIubWV0YWRhdGEuaXNFZGl0TW9kZT90aGlzLnNldHVwRWRpdG9yKHQscixpKTp0aGlzLnNldHVwUHJldmlldyh0LHIsaSl9c2V0dXBFZGl0b3IodCxyLGkpe2xldCBhPXQucXVlcnlTZWxlY3RvcigiLm1hcmtkb3duLWVkaXRvciIpO2EmJihhLmFkZEV2ZW50TGlzdGVuZXIoImZvY3VzIiwoKT0+aS5vbkZvY3VzKCkpLGEuYWRkRXZlbnRMaXN0ZW5lcigiYmx1ciIsKCk9Pmkub25CbHVyKCkpLGEuYWRkRXZlbnRMaXN0ZW5lcigiaW5wdXQiLCgpPT57ci5jb250ZW50PWEudmFsdWV9KSxhLmFkZEV2ZW50TGlzdGVuZXIoImtleWRvd24iLG49PntpZihuLmtleT09PSJUYWIiKXtuLnByZXZlbnREZWZhdWx0KCk7bGV0IG89YS5zZWxlY3Rpb25TdGFydCxzPWEuc2VsZWN0aW9uRW5kLGw9YS52YWx1ZTtpZihuLnNoaWZ0S2V5KXtsZXQgZD1sLnN1YnN0cmluZygwLG8pLmxhc3RJbmRleE9mKGAKYCkrMSxoPWwuc3Vic3RyaW5nKGQsbyk7aC5zdGFydHNXaXRoKCIgICIpJiYoYS52YWx1ZT1sLnN1YnN0cmluZygwLGQpK2guc3Vic3RyaW5nKDIpK2wuc3Vic3RyaW5nKG8pLGEuc2VsZWN0aW9uU3RhcnQ9YS5zZWxlY3Rpb25FbmQ9by0yKX1lbHNlIGEudmFsdWU9bC5zdWJzdHJpbmcoMCxvKSsiICAiK2wuc3Vic3RyaW5nKHMpLGEuc2VsZWN0aW9uU3RhcnQ9YS5zZWxlY3Rpb25FbmQ9bysyO3IuY29udGVudD1hLnZhbHVlO3JldHVybn1pZigobi5jdHJsS2V5fHxuLm1ldGFLZXkpJiZuLmtleT09PSJiIil7bi5wcmV2ZW50RGVmYXVsdCgpLHRoaXMud3JhcFNlbGVjdGlvbihhLCIqKiIsIioqIiksci5jb250ZW50PWEudmFsdWU7cmV0dXJufWlmKChuLmN0cmxLZXl8fG4ubWV0YUtleSkmJm4ua2V5PT09ImkiKXtuLnByZXZlbnREZWZhdWx0KCksdGhpcy53cmFwU2VsZWN0aW9uKGEsIl8iLCJfIiksci5jb250ZW50PWEudmFsdWU7cmV0dXJufWlmKChuLmN0cmxLZXl8fG4ubWV0YUtleSkmJm4ua2V5PT09ImsiKXtuLnByZXZlbnREZWZhdWx0KCksdGhpcy5pbnNlcnRMaW5rKGEpLHIuY29udGVudD1hLnZhbHVlO3JldHVybn1pLm9uS2V5RG93bihuKX0pLHRoaXMuYXV0b1Jlc2l6ZShhKSxhLmFkZEV2ZW50TGlzdGVuZXIoImlucHV0IiwoKT0+dGhpcy5hdXRvUmVzaXplKGEpKSl9c2V0dXBQcmV2aWV3KHQscixpKXtsZXQgYT10LnF1ZXJ5U2VsZWN0b3IoIi5tYXJrZG93bi1ibG9jay1jb250YWluZXIiKSxuPXQucXVlcnlTZWxlY3RvcigiLm1hcmtkb3duLXByZXZpZXciKTshYXx8IW58fChuLnNldEF0dHJpYnV0ZSgidGFiaW5kZXgiLCIwIiksbi5hZGRFdmVudExpc3RlbmVyKCJmb2N1cyIsKCk9Pmkub25Gb2N1cygpKSxuLmFkZEV2ZW50TGlzdGVuZXIoImJsdXIiLCgpPT5pLm9uQmx1cigpKSxuLmFkZEV2ZW50TGlzdGVuZXIoImtleWRvd24iLG89PntpZihvLmtleT09PSJFbnRlciImJiFvLnNoaWZ0S2V5KXtvLnByZXZlbnREZWZhdWx0KCksci5tZXRhZGF0YS5pc0VkaXRNb2RlPSEwLGkub25SZXF1ZXN0VXBkYXRlPy4oKTtyZXR1cm59aS5vbktleURvd24obyl9KSl9d3JhcFNlbGVjdGlvbih0LHIsaSl7bGV0IGE9dC5zZWxlY3Rpb25TdGFydCxuPXQuc2VsZWN0aW9uRW5kLG89dC52YWx1ZS5zdWJzdHJpbmcoYSxuKSxzPXIrKG98fCJ0ZXh0IikraTt0LnZhbHVlPXQudmFsdWUuc3Vic3RyaW5nKDAsYSkrcyt0LnZhbHVlLnN1YnN0cmluZyhuKSxvPyh0LnNlbGVjdGlvblN0YXJ0PWEsdC5zZWxlY3Rpb25FbmQ9YStzLmxlbmd0aCk6KHQuc2VsZWN0aW9uU3RhcnQ9YStyLmxlbmd0aCx0LnNlbGVjdGlvbkVuZD1hK3IubGVuZ3RoKzQpLHQuZm9jdXMoKX1pbnNlcnRMaW5rKHQpe2xldCByPXQuc2VsZWN0aW9uU3RhcnQsaT10LnNlbGVjdGlvbkVuZCxuPXQudmFsdWUuc3Vic3RyaW5nKHIsaSl8fCJsaW5rIHRleHQiLG89YFske259XSh1cmwpYDt0LnZhbHVlPXQudmFsdWUuc3Vic3RyaW5nKDAscikrbyt0LnZhbHVlLnN1YnN0cmluZyhpKSx0LnNlbGVjdGlvblN0YXJ0PXIrbi5sZW5ndGgrMyx0LnNlbGVjdGlvbkVuZD1yK24ubGVuZ3RoKzYsdC5mb2N1cygpfWF1dG9SZXNpemUodCl7dC5zdHlsZS5oZWlnaHQ9ImF1dG8iLHQuc3R5bGUuaGVpZ2h0PXQuc2Nyb2xsSGVpZ2h0KyJweCJ9cGFyc2VNYXJrZG93bih0KXtsZXQgcj10aGlzLmVzY2FwZUh0bWwodCk7cmV0dXJuIHI9ci5yZXBsYWNlKC9eIyMjICguKykkL2dtLCI8aDM+JDE8L2gzPiIpLHI9ci5yZXBsYWNlKC9eIyMgKC4rKSQvZ20sIjxoMj4kMTwvaDI+Iikscj1yLnJlcGxhY2UoL14jICguKykkL2dtLCI8aDE+JDE8L2gxPiIpLHI9ci5yZXBsYWNlKC9cKlwqKC4rPylcKlwqL2csIjxzdHJvbmc+JDE8L3N0cm9uZz4iKSxyPXIucmVwbGFjZSgvX18oLis/KV9fL2csIjxzdHJvbmc+JDE8L3N0cm9uZz4iKSxyPXIucmVwbGFjZSgvXCooLis/KVwqL2csIjxlbT4kMTwvZW0+Iikscj1yLnJlcGxhY2UoL18oLis/KV8vZywiPGVtPiQxPC9lbT4iKSxyPXIucmVwbGFjZSgvYGBgKFtcc1xTXSo/KWBgYC9nLCI8cHJlPjxjb2RlPiQxPC9jb2RlPjwvcHJlPiIpLHI9ci5yZXBsYWNlKC9gKC4rPylgL2csIjxjb2RlPiQxPC9jb2RlPiIpLHI9ci5yZXBsYWNlKC9cWyhbXlxdXSspXF1cKChbXildKylcKS9nLCc8YSBocmVmPSIkMiI+JDE8L2E+Jykscj1yLnJlcGxhY2UoL15cKiAoLispJC9nbSwiPGxpPiQxPC9saT4iKSxyPXIucmVwbGFjZSgvXi0gKC4rKSQvZ20sIjxsaT4kMTwvbGk+Iikscj1yLnJlcGxhY2UoL15cZCtcLiAoLispJC9nbSwiPGxpPiQxPC9saT4iKSxyPXIucmVwbGFjZSgvKDxsaT4uKjxcL2xpPlxuPykrL2csaT0+Ijx1bD4iK2krIjwvdWw+Iikscj1yLnJlcGxhY2UoL1xuXG4vZywiPC9wPjxwPiIpLHI9IjxwPiIrcisiPC9wPiIscj1yLnJlcGxhY2UoLzxwPjxcL3A+L2csIiIpLHI9ci5yZXBsYWNlKC88cD4oPGhbMS0zXT4pL2csIiQxIikscj1yLnJlcGxhY2UoLyg8XC9oWzEtM10+KTxcL3A+L2csIiQxIikscj1yLnJlcGxhY2UoLzxwPig8dWw+KS9nLCIkMSIpLHI9ci5yZXBsYWNlKC8oPFwvdWw+KTxcL3A+L2csIiQxIikscj1yLnJlcGxhY2UoLzxwPig8cHJlPikvZywiJDEiKSxyPXIucmVwbGFjZSgvKDxcL3ByZT4pPFwvcD4vZywiJDEiKSxyfWVzY2FwZUh0bWwodCl7bGV0IHI9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7cmV0dXJuIHIudGV4dENvbnRlbnQ9dCxyLmlubmVySFRNTH1nZXRDb250ZW50KHQpe2xldCByPXQucXVlcnlTZWxlY3RvcigiLm1hcmtkb3duLWVkaXRvciIpO2lmKHIpcmV0dXJuIHIudmFsdWU7bGV0IGE9dC5xdWVyeVNlbGVjdG9yKCIubWFya2Rvd24tYmxvY2stY29udGFpbmVyIik/LmdldEF0dHJpYnV0ZSgiZGF0YS1ibG9jay1pZCIpO3JldHVybiIifXNldENvbnRlbnQodCxyKXtsZXQgaT10LnF1ZXJ5U2VsZWN0b3IoIi5tYXJrZG93bi1lZGl0b3IiKTtpJiYoaS52YWx1ZT1yLHRoaXMuYXV0b1Jlc2l6ZShpKSl9Z2V0Q3Vyc29yUG9zaXRpb24odCl7bGV0IHI9dC5xdWVyeVNlbGVjdG9yKCIubWFya2Rvd24tZWRpdG9yIik7cmV0dXJuIHI/ci5zZWxlY3Rpb25TdGFydDpudWxsfXNldEN1cnNvclRvU3RhcnQodCl7bGV0IHI9dC5xdWVyeVNlbGVjdG9yKCIubWFya2Rvd24tZWRpdG9yIik7cj8oci5zZWxlY3Rpb25TdGFydD1yLnNlbGVjdGlvbkVuZD0wLHIuZm9jdXMoKSk6dGhpcy5mb2N1cyh0KX1zZXRDdXJzb3JUb0VuZCh0KXtsZXQgcj10LnF1ZXJ5U2VsZWN0b3IoIi5tYXJrZG93bi1lZGl0b3IiKTtpZihyKXtsZXQgaT1yLnZhbHVlLmxlbmd0aDtyLnNlbGVjdGlvblN0YXJ0PXIuc2VsZWN0aW9uRW5kPWksci5mb2N1cygpfWVsc2UgdGhpcy5mb2N1cyh0KX1mb2N1cyh0KXtsZXQgcj10LnF1ZXJ5U2VsZWN0b3IoIi5tYXJrZG93bi1lZGl0b3IiKTtyP3IuZm9jdXMoKTp0LnF1ZXJ5U2VsZWN0b3IoIi5tYXJrZG93bi1wcmV2aWV3Iik/LmZvY3VzKCl9Zm9jdXNXaXRoQ3Vyc29yKHQscj0iZW5kIil7bGV0IGk9dC5xdWVyeVNlbGVjdG9yKCIubWFya2Rvd24tZWRpdG9yIik7aT9yPT09InN0YXJ0Ij90aGlzLnNldEN1cnNvclRvU3RhcnQodCk6cj09PSJlbmQiP3RoaXMuc2V0Q3Vyc29yVG9FbmQodCk6dHlwZW9mIHI9PSJudW1iZXIiJiYoaS5zZWxlY3Rpb25TdGFydD1pLnNlbGVjdGlvbkVuZD1yLGkuZm9jdXMoKSk6dGhpcy5mb2N1cyh0KX1nZXRTcGxpdENvbnRlbnQodCl7bGV0IHI9dC5xdWVyeVNlbGVjdG9yKCIubWFya2Rvd24tZWRpdG9yIik7aWYoIXIpcmV0dXJuIG51bGw7bGV0IGk9ci5zZWxlY3Rpb25TdGFydDtyZXR1cm57YmVmb3JlOnIudmFsdWUuc3Vic3RyaW5nKDAsaSksYWZ0ZXI6ci52YWx1ZS5zdWJzdHJpbmcoaSl9fWdldFN0eWxlcygpe3JldHVybmAKICAgICAgLyogTWFya2Rvd24gQmxvY2sgQ29udGFpbmVyICovCiAgICAgIC5tYXJrZG93bi1ibG9jay1jb250YWluZXIgewogICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgICBtYXJnaW46IDEycHggMDsKICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAke20uYmRUaGVtZSgiI2U1ZTdlYiIsIiMzNzQxNTEiKX07CiAgICAgICAgYm9yZGVyLXJhZGl1czogNnB4OwogICAgICAgIG92ZXJmbG93OiBoaWRkZW47CiAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuMTVzIGVhc2U7CiAgICAgICAgYmFja2dyb3VuZDogJHttLmJkVGhlbWUoIiNmZmZmZmYiLCIjMTExODI3Iil9OwogICAgICB9CiAgICAgIAogICAgICAubWFya2Rvd24tYmxvY2stY29udGFpbmVyLnNlbGVjdGVkIHsKICAgICAgICBib3JkZXItY29sb3I6ICR7bS5iZFRoZW1lKCIjOWNhM2FmIiwiIzZiNzI4MCIpfTsKICAgICAgfQogICAgICAKICAgICAgLyogSGVhZGVyICovCiAgICAgIC5tYXJrZG93bi1oZWFkZXIgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBnYXA6IDhweDsKICAgICAgICBwYWRkaW5nOiA4cHggMTJweDsKICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHttLmJkVGhlbWUoIiNlNWU3ZWIiLCIjMzc0MTUxIil9OwogICAgICAgIGJhY2tncm91bmQ6ICR7bS5iZFRoZW1lKCIjZjlmYWZiIiwiIzBhMGEwYSIpfTsKICAgICAgfQogICAgICAKICAgICAgLm1hcmtkb3duLWljb24gewogICAgICAgIGZvbnQtc2l6ZTogMTRweDsKICAgICAgICBmb250LXdlaWdodDogNjAwOwogICAgICAgIG9wYWNpdHk6IDAuODsKICAgICAgfQogICAgICAKICAgICAgLm1hcmtkb3duLXRpdGxlIHsKICAgICAgICBmbGV4OiAxOwogICAgICAgIGZvbnQtc2l6ZTogMTNweDsKICAgICAgICBmb250LXdlaWdodDogNTAwOwogICAgICAgIGNvbG9yOiAke20uYmRUaGVtZSgiIzM3NDE1MSIsIiNlNWU3ZWIiKX07CiAgICAgIH0KICAgICAgCiAgICAgIC5tYXJrZG93bi10b2dnbGUtbW9kZSB7CiAgICAgICAgcGFkZGluZzogNHB4IDhweDsKICAgICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDsKICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAke20uYmRUaGVtZSgiI2U1ZTdlYiIsIiMzNzQxNTEiKX07CiAgICAgICAgYm9yZGVyLXJhZGl1czogNHB4OwogICAgICAgIGZvbnQtc2l6ZTogMTRweDsKICAgICAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuMTVzIGVhc2U7CiAgICAgIH0KICAgICAgCiAgICAgIC5tYXJrZG93bi10b2dnbGUtbW9kZTpob3ZlciB7CiAgICAgICAgYmFja2dyb3VuZDogJHttLmJkVGhlbWUoIiNmM2Y0ZjYiLCIjMWYyOTM3Iil9OwogICAgICAgIGJvcmRlci1jb2xvcjogJHttLmJkVGhlbWUoIiNkMWQ1ZGIiLCIjNGI1NTYzIil9OwogICAgICB9CiAgICAgIAogICAgICAvKiBDb250ZW50ICovCiAgICAgIC5tYXJrZG93bi1jb250ZW50IHsKICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgICAgbWluLWhlaWdodDogMTIwcHg7CiAgICAgIH0KICAgICAgCiAgICAgIC8qIEVkaXRvciAqLwogICAgICAubWFya2Rvd24tZWRpdG9yIHsKICAgICAgICB3aWR0aDogMTAwJTsKICAgICAgICBtaW4taGVpZ2h0OiAxMjBweDsKICAgICAgICBwYWRkaW5nOiAxMnB4OwogICAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50OwogICAgICAgIGJvcmRlcjogbm9uZTsKICAgICAgICBvdXRsaW5lOiBub25lOwogICAgICAgIHJlc2l6ZTogbm9uZTsKICAgICAgICBmb250LWZhbWlseTogJ01vbmFjbycsICdDb25zb2xhcycsICdDb3VyaWVyIE5ldycsIG1vbm9zcGFjZTsKICAgICAgICBmb250LXNpemU6IDEzcHg7CiAgICAgICAgbGluZS1oZWlnaHQ6IDEuNjsKICAgICAgICBjb2xvcjogJHttLmJkVGhlbWUoIiMxZjI5MzciLCIjZjNmNGY2Iil9OwogICAgICAgIG92ZXJmbG93OiBoaWRkZW47CiAgICAgIH0KICAgICAgCiAgICAgIC5tYXJrZG93bi1lZGl0b3I6OnBsYWNlaG9sZGVyIHsKICAgICAgICBjb2xvcjogJHttLmJkVGhlbWUoIiM5Y2EzYWYiLCIjNmI3MjgwIil9OwogICAgICB9CiAgICAgIAogICAgICAvKiBQcmV2aWV3ICovCiAgICAgIC5tYXJrZG93bi1wcmV2aWV3IHsKICAgICAgICBwYWRkaW5nOiAxMnB4OwogICAgICAgIG1pbi1oZWlnaHQ6IDk2cHg7CiAgICAgICAgb3V0bGluZTogbm9uZTsKICAgICAgICBmb250LXNpemU6IDE0cHg7CiAgICAgICAgbGluZS1oZWlnaHQ6IDEuNjsKICAgICAgICBjb2xvcjogJHttLmJkVGhlbWUoIiMxZjI5MzciLCIjZjNmNGY2Iil9OwogICAgICB9CiAgICAgIAogICAgICAucHJldmlldy1lbXB0eSB7CiAgICAgICAgY29sb3I6ICR7bS5iZFRoZW1lKCIjOWNhM2FmIiwiIzZiNzI4MCIpfTsKICAgICAgICBmb250LXN0eWxlOiBpdGFsaWM7CiAgICAgIH0KICAgICAgCiAgICAgIC8qIE1hcmtkb3duIHByZXZpZXcgc3R5bGVzICovCiAgICAgIC5tYXJrZG93bi1wcmV2aWV3IGgxIHsKICAgICAgICBmb250LXNpemU6IDI0cHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDsKICAgICAgICBtYXJnaW46IDE2cHggMCA4cHggMDsKICAgICAgICBjb2xvcjogJHttLmJkVGhlbWUoIiMxMTE4MjciLCIjZjlmYWZiIil9OwogICAgICB9CiAgICAgIAogICAgICAubWFya2Rvd24tcHJldmlldyBoMiB7CiAgICAgICAgZm9udC1zaXplOiAyMHB4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7CiAgICAgICAgbWFyZ2luOiAxNHB4IDAgNnB4IDA7CiAgICAgICAgY29sb3I6ICR7bS5iZFRoZW1lKCIjMTExODI3IiwiI2Y5ZmFmYiIpfTsKICAgICAgfQogICAgICAKICAgICAgLm1hcmtkb3duLXByZXZpZXcgaDMgewogICAgICAgIGZvbnQtc2l6ZTogMThweDsKICAgICAgICBmb250LXdlaWdodDogNjAwOwogICAgICAgIG1hcmdpbjogMTJweCAwIDRweCAwOwogICAgICAgIGNvbG9yOiAke20uYmRUaGVtZSgiIzExMTgyNyIsIiNmOWZhZmIiKX07CiAgICAgIH0KICAgICAgCiAgICAgIC5tYXJrZG93bi1wcmV2aWV3IHAgewogICAgICAgIG1hcmdpbjogOHB4IDA7CiAgICAgIH0KICAgICAgCiAgICAgIC5tYXJrZG93bi1wcmV2aWV3IHVsLAogICAgICAubWFya2Rvd24tcHJldmlldyBvbCB7CiAgICAgICAgbWFyZ2luOiA4cHggMDsKICAgICAgICBwYWRkaW5nLWxlZnQ6IDI0cHg7CiAgICAgIH0KICAgICAgCiAgICAgIC5tYXJrZG93bi1wcmV2aWV3IGxpIHsKICAgICAgICBtYXJnaW46IDRweCAwOwogICAgICB9CiAgICAgIAogICAgICAubWFya2Rvd24tcHJldmlldyBjb2RlIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke20uYmRUaGVtZSgiI2YzZjRmNiIsIiMxZjI5MzciKX07CiAgICAgICAgcGFkZGluZzogMnB4IDRweDsKICAgICAgICBib3JkZXItcmFkaXVzOiAzcHg7CiAgICAgICAgZm9udC1mYW1pbHk6ICdNb25hY28nLCAnQ29uc29sYXMnLCAnQ291cmllciBOZXcnLCBtb25vc3BhY2U7CiAgICAgICAgZm9udC1zaXplOiAwLjllbTsKICAgICAgfQogICAgICAKICAgICAgLm1hcmtkb3duLXByZXZpZXcgcHJlIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke20uYmRUaGVtZSgiI2YzZjRmNiIsIiMxZjI5MzciKX07CiAgICAgICAgcGFkZGluZzogMTJweDsKICAgICAgICBib3JkZXItcmFkaXVzOiA0cHg7CiAgICAgICAgb3ZlcmZsb3cteDogYXV0bzsKICAgICAgICBtYXJnaW46IDhweCAwOwogICAgICB9CiAgICAgIAogICAgICAubWFya2Rvd24tcHJldmlldyBwcmUgY29kZSB7CiAgICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7CiAgICAgICAgcGFkZGluZzogMDsKICAgICAgfQogICAgICAKICAgICAgLm1hcmtkb3duLXByZXZpZXcgc3Ryb25nIHsKICAgICAgICBmb250LXdlaWdodDogNjAwOwogICAgICAgIGNvbG9yOiAke20uYmRUaGVtZSgiIzExMTgyNyIsIiNmOWZhZmIiKX07CiAgICAgIH0KICAgICAgCiAgICAgIC5tYXJrZG93bi1wcmV2aWV3IGVtIHsKICAgICAgICBmb250LXN0eWxlOiBpdGFsaWM7CiAgICAgIH0KICAgICAgCiAgICAgIC5tYXJrZG93bi1wcmV2aWV3IGEgewogICAgICAgIGNvbG9yOiAke20uYmRUaGVtZSgiIzNiODJmNiIsIiM2MGE1ZmEiKX07CiAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lOwogICAgICB9CiAgICAgIAogICAgICAubWFya2Rvd24tcHJldmlldyBhOmhvdmVyIHsKICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTsKICAgICAgfQogICAgICAKICAgICAgLm1hcmtkb3duLXByZXZpZXcgYmxvY2txdW90ZSB7CiAgICAgICAgYm9yZGVyLWxlZnQ6IDNweCBzb2xpZCAke20uYmRUaGVtZSgiI2U1ZTdlYiIsIiMzNzQxNTEiKX07CiAgICAgICAgcGFkZGluZy1sZWZ0OiAxMnB4OwogICAgICAgIG1hcmdpbjogOHB4IDA7CiAgICAgICAgY29sb3I6ICR7bS5iZFRoZW1lKCIjNmI3MjgwIiwiIzljYTNhZiIpfTsKICAgICAgfQogICAgYH19fSk7dmFyIEFiLHM0cj1wKCgpPT57Sm4oKTt4ZSgpO0FiPWNsYXNzIGV4dGVuZHMgZjF7dHlwZT0iaHRtbCI7cmVuZGVyKHQscil7bGV0IGk9dC5tZXRhZGF0YT8uaXNFZGl0TW9kZT8/ITAsYT10LmNvbnRlbnR8fCIiO3JldHVybmAKICAgICAgPGRpdiBjbGFzcz0iaHRtbC1ibG9jay1jb250YWluZXIke3I/IiBzZWxlY3RlZCI6IiJ9IiAKICAgICAgICAgICBkYXRhLWJsb2NrLWlkPSIke3QuaWR9IgogICAgICAgICAgIGRhdGEtZWRpdC1tb2RlPSIke2l9Ij4KICAgICAgICA8ZGl2IGNsYXNzPSJodG1sLWhlYWRlciI+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJodG1sLWljb24iPiZsdDsvJmd0OzwvZGl2PgogICAgICAgICAgPGRpdiBjbGFzcz0iaHRtbC10aXRsZSI+SFRNTDwvZGl2PgogICAgICAgICAgPGJ1dHRvbiBjbGFzcz0iaHRtbC10b2dnbGUtbW9kZSIgdGl0bGU9IiR7aT8iUHJldmlldyI6IkVkaXQifSI+CiAgICAgICAgICAgICR7aT8iXHV7MUY0NDF9XHVGRTBGIjoiXHUyNzBGXHVGRTBGIn0KICAgICAgICAgIDwvYnV0dG9uPgogICAgICAgIDwvZGl2PgogICAgICAgIDxkaXYgY2xhc3M9Imh0bWwtY29udGVudCI+CiAgICAgICAgICAke2k/dGhpcy5yZW5kZXJFZGl0b3IoYSk6dGhpcy5yZW5kZXJQcmV2aWV3KGEpfQogICAgICAgIDwvZGl2PgogICAgICA8L2Rpdj4KICAgIGB9cmVuZGVyRWRpdG9yKHQpe3JldHVybmAKICAgICAgPHRleHRhcmVhIGNsYXNzPSJodG1sLWVkaXRvciIgCiAgICAgICAgICAgICAgICBwbGFjZWhvbGRlcj0iRW50ZXIgSFRNTCBjb250ZW50Li4uIgogICAgICAgICAgICAgICAgc3BlbGxjaGVjaz0iZmFsc2UiPiR7dGhpcy5lc2NhcGVIdG1sKHQpfTwvdGV4dGFyZWE+CiAgICBgfXJlbmRlclByZXZpZXcodCl7cmV0dXJuYAogICAgICA8ZGl2IGNsYXNzPSJodG1sLXByZXZpZXciPgogICAgICAgICR7dHx8JzxkaXYgY2xhc3M9InByZXZpZXctZW1wdHkiPk5vIGNvbnRlbnQgdG8gcHJldmlldzwvZGl2Pid9CiAgICAgIDwvZGl2PgogICAgYH1zZXR1cCh0LHIsaSl7bGV0IGE9dC5xdWVyeVNlbGVjdG9yKCIuaHRtbC1ibG9jay1jb250YWluZXIiKSxuPXQucXVlcnlTZWxlY3RvcigiLmh0bWwtdG9nZ2xlLW1vZGUiKTtpZighYXx8IW4pe2NvbnNvbGUuZXJyb3IoIkh0bWxCbG9ja0hhbmRsZXI6IENvdWxkIG5vdCBmaW5kIHJlcXVpcmVkIGVsZW1lbnRzIik7cmV0dXJufXIubWV0YWRhdGF8fChyLm1ldGFkYXRhPXt9KSxyLm1ldGFkYXRhLmlzRWRpdE1vZGU9PT12b2lkIDAmJihyLm1ldGFkYXRhLmlzRWRpdE1vZGU9ITApLG4uYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLG89PntpZihvLnByZXZlbnREZWZhdWx0KCksby5zdG9wUHJvcGFnYXRpb24oKSxyLm1ldGFkYXRhLmlzRWRpdE1vZGUpe2xldCBzPWEucXVlcnlTZWxlY3RvcigiLmh0bWwtZWRpdG9yIik7cyYmKHIuY29udGVudD1zLnZhbHVlKX1yLm1ldGFkYXRhLmlzRWRpdE1vZGU9IXIubWV0YWRhdGEuaXNFZGl0TW9kZSxpLm9uUmVxdWVzdFVwZGF0ZT8uKCl9KSxyLm1ldGFkYXRhLmlzRWRpdE1vZGU/dGhpcy5zZXR1cEVkaXRvcih0LHIsaSk6dGhpcy5zZXR1cFByZXZpZXcodCxyLGkpfXNldHVwRWRpdG9yKHQscixpKXtsZXQgYT10LnF1ZXJ5U2VsZWN0b3IoIi5odG1sLWVkaXRvciIpO2EmJihhLmFkZEV2ZW50TGlzdGVuZXIoImZvY3VzIiwoKT0+aS5vbkZvY3VzKCkpLGEuYWRkRXZlbnRMaXN0ZW5lcigiYmx1ciIsKCk9Pmkub25CbHVyKCkpLGEuYWRkRXZlbnRMaXN0ZW5lcigiaW5wdXQiLCgpPT57ci5jb250ZW50PWEudmFsdWUsdGhpcy52YWxpZGF0ZUh0bWwoYS52YWx1ZSl9KSxhLmFkZEV2ZW50TGlzdGVuZXIoImtleWRvd24iLG49PntpZihuLmtleT09PSJUYWIiKXtuLnByZXZlbnREZWZhdWx0KCk7bGV0IG89YS5zZWxlY3Rpb25TdGFydCxzPWEuc2VsZWN0aW9uRW5kLGw9YS52YWx1ZTtpZihuLnNoaWZ0S2V5KXtsZXQgZD1sLnN1YnN0cmluZygwLG8pLmxhc3RJbmRleE9mKGAKYCkrMSxoPWwuc3Vic3RyaW5nKGQsbyk7aC5zdGFydHNXaXRoKCIgICIpJiYoYS52YWx1ZT1sLnN1YnN0cmluZygwLGQpK2guc3Vic3RyaW5nKDIpK2wuc3Vic3RyaW5nKG8pLGEuc2VsZWN0aW9uU3RhcnQ9YS5zZWxlY3Rpb25FbmQ9by0yKX1lbHNlIGEudmFsdWU9bC5zdWJzdHJpbmcoMCxvKSsiICAiK2wuc3Vic3RyaW5nKHMpLGEuc2VsZWN0aW9uU3RhcnQ9YS5zZWxlY3Rpb25FbmQ9bysyO3IuY29udGVudD1hLnZhbHVlO3JldHVybn1pZigobi5jdHJsS2V5fHxuLm1ldGFLZXkpJiZuLmtleT09PSIvIil7bi5wcmV2ZW50RGVmYXVsdCgpLHRoaXMuYXV0b0Nsb3NlVGFnKGEpLHIuY29udGVudD1hLnZhbHVlO3JldHVybn1pLm9uS2V5RG93bihuKX0pLHRoaXMuYXV0b1Jlc2l6ZShhKSxhLmFkZEV2ZW50TGlzdGVuZXIoImlucHV0IiwoKT0+dGhpcy5hdXRvUmVzaXplKGEpKSl9c2V0dXBQcmV2aWV3KHQscixpKXtsZXQgYT10LnF1ZXJ5U2VsZWN0b3IoIi5odG1sLWJsb2NrLWNvbnRhaW5lciIpLG49dC5xdWVyeVNlbGVjdG9yKCIuaHRtbC1wcmV2aWV3Iik7IWF8fCFufHwobi5zZXRBdHRyaWJ1dGUoInRhYmluZGV4IiwiMCIpLG4uYWRkRXZlbnRMaXN0ZW5lcigiZm9jdXMiLCgpPT5pLm9uRm9jdXMoKSksbi5hZGRFdmVudExpc3RlbmVyKCJibHVyIiwoKT0+aS5vbkJsdXIoKSksbi5hZGRFdmVudExpc3RlbmVyKCJrZXlkb3duIixvPT57aWYoby5rZXk9PT0iRW50ZXIiJiYhby5zaGlmdEtleSl7by5wcmV2ZW50RGVmYXVsdCgpLHIubWV0YWRhdGEuaXNFZGl0TW9kZT0hMCxpLm9uUmVxdWVzdFVwZGF0ZT8uKCk7cmV0dXJufWkub25LZXlEb3duKG8pfSksdGhpcy5zYW5kYm94Q29udGVudChuKSl9YXV0b0Nsb3NlVGFnKHQpe2xldCByPXQuc2VsZWN0aW9uU3RhcnQsaT10LnZhbHVlLGE9cjtmb3IoO2E+MCYmaVthLTFdIT09IjwiOylhLS07aWYoYT4wKXtsZXQgbz1pLnN1YnN0cmluZyhhLHIpLm1hdGNoKC9eKFx3KykvKTtpZihvKXtsZXQgbD1gPC8ke29bMV19PmA7dC52YWx1ZT1pLnN1YnN0cmluZygwLHIpKyI+IitsK2kuc3Vic3RyaW5nKHIpLHQuc2VsZWN0aW9uU3RhcnQ9dC5zZWxlY3Rpb25FbmQ9cisxfX19YXV0b1Jlc2l6ZSh0KXt0LnN0eWxlLmhlaWdodD0iYXV0byIsdC5zdHlsZS5oZWlnaHQ9dC5zY3JvbGxIZWlnaHQrInB4In12YWxpZGF0ZUh0bWwodCl7bGV0IHI9W10saT0vPFwvPyhbYS16QS1aXVthLXpBLVowLTldKilcYltePl0qPi9nLGE7Zm9yKDsoYT1pLmV4ZWModCkpIT09bnVsbDspe2xldCBuPWFbMF0uc3RhcnRzV2l0aCgiPC8iKSxvPWFbMV0udG9Mb3dlckNhc2UoKTtpZihuKXtpZihyLmxlbmd0aD09PTB8fHJbci5sZW5ndGgtMV0hPT1vKXJldHVybiBjb25zb2xlLndhcm4oYE1pc21hdGNoZWQgY2xvc2luZyB0YWc6ICR7b31gKSwhMTtyLnBvcCgpfWVsc2UgYVswXS5lbmRzV2l0aCgiLz4iKXx8ci5wdXNoKG8pfXJldHVybiByLmxlbmd0aD4wPyhjb25zb2xlLndhcm4oYFVuY2xvc2VkIHRhZ3M6ICR7ci5qb2luKCIsICIpfWApLCExKTohMH1zYW5kYm94Q29udGVudCh0KXt0LnF1ZXJ5U2VsZWN0b3JBbGwoInNjcmlwdCIpLmZvckVhY2gobj0+bi5yZW1vdmUoKSksdC5xdWVyeVNlbGVjdG9yQWxsKCIqIikuZm9yRWFjaChuPT57QXJyYXkuZnJvbShuLmF0dHJpYnV0ZXMpLmZvckVhY2gobz0+e28ubmFtZS5zdGFydHNXaXRoKCJvbiIpJiZuLnJlbW92ZUF0dHJpYnV0ZShvLm5hbWUpfSl9KSx0LnF1ZXJ5U2VsZWN0b3JBbGwoImZvcm0iKS5mb3JFYWNoKG49PntuLmFkZEV2ZW50TGlzdGVuZXIoInN1Ym1pdCIsbz0+e28ucHJldmVudERlZmF1bHQoKSxvLnN0b3BQcm9wYWdhdGlvbigpfSl9KX1lc2NhcGVIdG1sKHQpe2xldCByPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpO3JldHVybiByLnRleHRDb250ZW50PXQsci5pbm5lckhUTUx9Z2V0Q29udGVudCh0KXtsZXQgcj10LnF1ZXJ5U2VsZWN0b3IoIi5odG1sLWVkaXRvciIpO2lmKHIpcmV0dXJuIHIudmFsdWU7bGV0IGE9dC5xdWVyeVNlbGVjdG9yKCIuaHRtbC1ibG9jay1jb250YWluZXIiKT8uZ2V0QXR0cmlidXRlKCJkYXRhLWJsb2NrLWlkIik7cmV0dXJuIiJ9c2V0Q29udGVudCh0LHIpe2xldCBpPXQucXVlcnlTZWxlY3RvcigiLmh0bWwtZWRpdG9yIik7aSYmKGkudmFsdWU9cix0aGlzLmF1dG9SZXNpemUoaSkpfWdldEN1cnNvclBvc2l0aW9uKHQpe2xldCByPXQucXVlcnlTZWxlY3RvcigiLmh0bWwtZWRpdG9yIik7cmV0dXJuIHI/ci5zZWxlY3Rpb25TdGFydDpudWxsfXNldEN1cnNvclRvU3RhcnQodCl7bGV0IHI9dC5xdWVyeVNlbGVjdG9yKCIuaHRtbC1lZGl0b3IiKTtyPyhyLnNlbGVjdGlvblN0YXJ0PXIuc2VsZWN0aW9uRW5kPTAsci5mb2N1cygpKTp0aGlzLmZvY3VzKHQpfXNldEN1cnNvclRvRW5kKHQpe2xldCByPXQucXVlcnlTZWxlY3RvcigiLmh0bWwtZWRpdG9yIik7aWYocil7bGV0IGk9ci52YWx1ZS5sZW5ndGg7ci5zZWxlY3Rpb25TdGFydD1yLnNlbGVjdGlvbkVuZD1pLHIuZm9jdXMoKX1lbHNlIHRoaXMuZm9jdXModCl9Zm9jdXModCl7bGV0IHI9dC5xdWVyeVNlbGVjdG9yKCIuaHRtbC1lZGl0b3IiKTtyP3IuZm9jdXMoKTp0LnF1ZXJ5U2VsZWN0b3IoIi5odG1sLXByZXZpZXciKT8uZm9jdXMoKX1mb2N1c1dpdGhDdXJzb3IodCxyPSJlbmQiKXtsZXQgaT10LnF1ZXJ5U2VsZWN0b3IoIi5odG1sLWVkaXRvciIpO2k/cj09PSJzdGFydCI/dGhpcy5zZXRDdXJzb3JUb1N0YXJ0KHQpOnI9PT0iZW5kIj90aGlzLnNldEN1cnNvclRvRW5kKHQpOnR5cGVvZiByPT0ibnVtYmVyIiYmKGkuc2VsZWN0aW9uU3RhcnQ9aS5zZWxlY3Rpb25FbmQ9cixpLmZvY3VzKCkpOnRoaXMuZm9jdXModCl9Z2V0U3BsaXRDb250ZW50KHQpe2xldCByPXQucXVlcnlTZWxlY3RvcigiLmh0bWwtZWRpdG9yIik7aWYoIXIpcmV0dXJuIG51bGw7bGV0IGk9ci5zZWxlY3Rpb25TdGFydDtyZXR1cm57YmVmb3JlOnIudmFsdWUuc3Vic3RyaW5nKDAsaSksYWZ0ZXI6ci52YWx1ZS5zdWJzdHJpbmcoaSl9fWdldFN0eWxlcygpe3JldHVybmAKICAgICAgLyogSFRNTCBCbG9jayBDb250YWluZXIgKi8KICAgICAgLmh0bWwtYmxvY2stY29udGFpbmVyIHsKICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgICAgbWFyZ2luOiAxMnB4IDA7CiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHttLmJkVGhlbWUoIiNlNWU3ZWIiLCIjMzc0MTUxIil9OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDZweDsKICAgICAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjE1cyBlYXNlOwogICAgICAgIGJhY2tncm91bmQ6ICR7bS5iZFRoZW1lKCIjZmZmZmZmIiwiIzExMTgyNyIpfTsKICAgICAgfQogICAgICAKICAgICAgLmh0bWwtYmxvY2stY29udGFpbmVyLnNlbGVjdGVkIHsKICAgICAgICBib3JkZXItY29sb3I6ICR7bS5iZFRoZW1lKCIjOWNhM2FmIiwiIzZiNzI4MCIpfTsKICAgICAgfQogICAgICAKICAgICAgLyogSGVhZGVyICovCiAgICAgIC5odG1sLWhlYWRlciB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGdhcDogOHB4OwogICAgICAgIHBhZGRpbmc6IDhweCAxMnB4OwogICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAke20uYmRUaGVtZSgiI2U1ZTdlYiIsIiMzNzQxNTEiKX07CiAgICAgICAgYmFja2dyb3VuZDogJHttLmJkVGhlbWUoIiNmOWZhZmIiLCIjMGEwYTBhIil9OwogICAgICB9CiAgICAgIAogICAgICAuaHRtbC1pY29uIHsKICAgICAgICBmb250LXNpemU6IDE0cHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDsKICAgICAgICBvcGFjaXR5OiAwLjg7CiAgICAgICAgZm9udC1mYW1pbHk6ICdNb25hY28nLCAnQ29uc29sYXMnLCAnQ291cmllciBOZXcnLCBtb25vc3BhY2U7CiAgICAgIH0KICAgICAgCiAgICAgIC5odG1sLXRpdGxlIHsKICAgICAgICBmbGV4OiAxOwogICAgICAgIGZvbnQtc2l6ZTogMTNweDsKICAgICAgICBmb250LXdlaWdodDogNTAwOwogICAgICAgIGNvbG9yOiAke20uYmRUaGVtZSgiIzM3NDE1MSIsIiNlNWU3ZWIiKX07CiAgICAgIH0KICAgICAgCiAgICAgIC5odG1sLXRvZ2dsZS1tb2RlIHsKICAgICAgICBwYWRkaW5nOiA0cHggOHB4OwogICAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50OwogICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICR7bS5iZFRoZW1lKCIjZTVlN2ViIiwiIzM3NDE1MSIpfTsKICAgICAgICBib3JkZXItcmFkaXVzOiA0cHg7CiAgICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgICAgIGN1cnNvcjogcG9pbnRlcjsKICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC4xNXMgZWFzZTsKICAgICAgfQogICAgICAKICAgICAgLmh0bWwtdG9nZ2xlLW1vZGU6aG92ZXIgewogICAgICAgIGJhY2tncm91bmQ6ICR7bS5iZFRoZW1lKCIjZjNmNGY2IiwiIzFmMjkzNyIpfTsKICAgICAgICBib3JkZXItY29sb3I6ICR7bS5iZFRoZW1lKCIjZDFkNWRiIiwiIzRiNTU2MyIpfTsKICAgICAgfQogICAgICAKICAgICAgLyogQ29udGVudCAqLwogICAgICAuaHRtbC1jb250ZW50IHsKICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgICAgbWluLWhlaWdodDogMTIwcHg7CiAgICAgIH0KICAgICAgCiAgICAgIC8qIEVkaXRvciAqLwogICAgICAuaHRtbC1lZGl0b3IgewogICAgICAgIHdpZHRoOiAxMDAlOwogICAgICAgIG1pbi1oZWlnaHQ6IDEyMHB4OwogICAgICAgIHBhZGRpbmc6IDEycHg7CiAgICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7CiAgICAgICAgYm9yZGVyOiBub25lOwogICAgICAgIG91dGxpbmU6IG5vbmU7CiAgICAgICAgcmVzaXplOiBub25lOwogICAgICAgIGZvbnQtZmFtaWx5OiAnTW9uYWNvJywgJ0NvbnNvbGFzJywgJ0NvdXJpZXIgTmV3JywgbW9ub3NwYWNlOwogICAgICAgIGZvbnQtc2l6ZTogMTNweDsKICAgICAgICBsaW5lLWhlaWdodDogMS42OwogICAgICAgIGNvbG9yOiAke20uYmRUaGVtZSgiIzFmMjkzNyIsIiNmM2Y0ZjYiKX07CiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgICAgfQogICAgICAKICAgICAgLmh0bWwtZWRpdG9yOjpwbGFjZWhvbGRlciB7CiAgICAgICAgY29sb3I6ICR7bS5iZFRoZW1lKCIjOWNhM2FmIiwiIzZiNzI4MCIpfTsKICAgICAgfQogICAgICAKICAgICAgLyogUHJldmlldyAqLwogICAgICAuaHRtbC1wcmV2aWV3IHsKICAgICAgICBwYWRkaW5nOiAxMnB4OwogICAgICAgIG1pbi1oZWlnaHQ6IDk2cHg7CiAgICAgICAgb3V0bGluZTogbm9uZTsKICAgICAgICBmb250LXNpemU6IDE0cHg7CiAgICAgICAgbGluZS1oZWlnaHQ6IDEuNjsKICAgICAgICBjb2xvcjogJHttLmJkVGhlbWUoIiMxZjI5MzciLCIjZjNmNGY2Iil9OwogICAgICB9CiAgICAgIAogICAgICAucHJldmlldy1lbXB0eSB7CiAgICAgICAgY29sb3I6ICR7bS5iZFRoZW1lKCIjOWNhM2FmIiwiIzZiNzI4MCIpfTsKICAgICAgICBmb250LXN0eWxlOiBpdGFsaWM7CiAgICAgIH0KICAgICAgCiAgICAgIC8qIFNhbmRib3hlZCBIVE1MIHByZXZpZXcgc3R5bGVzICovCiAgICAgIC5odG1sLXByZXZpZXcgKiB7CiAgICAgICAgbWF4LXdpZHRoOiAxMDAlOwogICAgICB9CiAgICAgIAogICAgICAuaHRtbC1wcmV2aWV3IGltZyB7CiAgICAgICAgaGVpZ2h0OiBhdXRvOwogICAgICB9CiAgICAgIAogICAgICAuaHRtbC1wcmV2aWV3IGEgewogICAgICAgIGNvbG9yOiAke20uYmRUaGVtZSgiIzNiODJmNiIsIiM2MGE1ZmEiKX07CiAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lOwogICAgICB9CiAgICAgIAogICAgICAuaHRtbC1wcmV2aWV3IGE6aG92ZXIgewogICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lOwogICAgICB9CiAgICAgIAogICAgICAuaHRtbC1wcmV2aWV3IHRhYmxlIHsKICAgICAgICBib3JkZXItY29sbGFwc2U6IGNvbGxhcHNlOwogICAgICAgIHdpZHRoOiAxMDAlOwogICAgICAgIG1hcmdpbjogOHB4IDA7CiAgICAgIH0KICAgICAgCiAgICAgIC5odG1sLXByZXZpZXcgdGgsCiAgICAgIC5odG1sLXByZXZpZXcgdGQgewogICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICR7bS5iZFRoZW1lKCIjZTVlN2ViIiwiIzM3NDE1MSIpfTsKICAgICAgICBwYWRkaW5nOiA4cHg7CiAgICAgICAgdGV4dC1hbGlnbjogbGVmdDsKICAgICAgfQogICAgICAKICAgICAgLmh0bWwtcHJldmlldyB0aCB7CiAgICAgICAgYmFja2dyb3VuZDogJHttLmJkVGhlbWUoIiNmOWZhZmIiLCIjMWYyOTM3Iil9OwogICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7CiAgICAgIH0KICAgICAgCiAgICAgIC5odG1sLXByZXZpZXcgcHJlIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke20uYmRUaGVtZSgiI2YzZjRmNiIsIiMxZjI5MzciKX07CiAgICAgICAgcGFkZGluZzogMTJweDsKICAgICAgICBib3JkZXItcmFkaXVzOiA0cHg7CiAgICAgICAgb3ZlcmZsb3cteDogYXV0bzsKICAgICAgICBtYXJnaW46IDhweCAwOwogICAgICB9CiAgICAgIAogICAgICAuaHRtbC1wcmV2aWV3IGNvZGUgewogICAgICAgIGJhY2tncm91bmQ6ICR7bS5iZFRoZW1lKCIjZjNmNGY2IiwiIzFmMjkzNyIpfTsKICAgICAgICBwYWRkaW5nOiAycHggNHB4OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDNweDsKICAgICAgICBmb250LWZhbWlseTogJ01vbmFjbycsICdDb25zb2xhcycsICdDb3VyaWVyIE5ldycsIG1vbm9zcGFjZTsKICAgICAgICBmb250LXNpemU6IDAuOWVtOwogICAgICB9CiAgICAgIAogICAgICAuaHRtbC1wcmV2aWV3IHByZSBjb2RlIHsKICAgICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDsKICAgICAgICBwYWRkaW5nOiAwOwogICAgICB9CiAgICBgfX19KTt2YXIgaWRlPXAoKCk9PntKbigpO1owcigpO1gwcigpO1EwcigpO0owcigpO0swcigpO2U0cigpO3Q0cigpO3I0cigpO2k0cigpO2E0cigpO240cigpO280cigpO3M0cigpfSk7ZnVuY3Rpb24gbDRyKCl7TnIucmVnaXN0ZXIoImRpdmlkZXIiLG5ldyBfYiksTnIucmVnaXN0ZXIoInBhcmFncmFwaCIsbmV3IHdiKSxOci5yZWdpc3RlcigiaGVhZGluZy0xIixuZXcgWGQoImhlYWRpbmctMSIpKSxOci5yZWdpc3RlcigiaGVhZGluZy0yIixuZXcgWGQoImhlYWRpbmctMiIpKSxOci5yZWdpc3RlcigiaGVhZGluZy0zIixuZXcgWGQoImhlYWRpbmctMyIpKSxOci5yZWdpc3RlcigicXVvdGUiLG5ldyBNYiksTnIucmVnaXN0ZXIoImNvZGUiLG5ldyBrYiksTnIucmVnaXN0ZXIoImxpc3QiLG5ldyBTYiksTnIucmVnaXN0ZXIoImltYWdlIixuZXcgemIpLE5yLnJlZ2lzdGVyKCJ5b3V0dWJlIixuZXcgQ2IpLE5yLnJlZ2lzdGVyKCJhdHRhY2htZW50IixuZXcgVGIpLE5yLnJlZ2lzdGVyKCJtYXJrZG93biIsbmV3IExiKSxOci5yZWdpc3RlcigiaHRtbCIsbmV3IEFiKX12YXIgYWRlPXAoKCk9PntpZGUoKTtsNHIoKX0pO3ZhciBEYixuZGU9cCgoKT0+e3hlKCk7SWQoKTtDbigpO1lkKCk7aUYoKTtEYj1jbGFzc3tzdGF0aWMgYXN5bmMgc2hvd0xhbmd1YWdlU2VsZWN0aW9uTW9kYWwoKXtyZXR1cm4gbmV3IFByb21pc2UodD0+e2xldCByPW51bGw7V3IuY3JlYXRlQW5kU2hvdyh7aGVhZGluZzoiU2VsZWN0IFByb2dyYW1taW5nIExhbmd1YWdlIixjb250ZW50OkNgCiAgICAgICAgICA8c3R5bGU+CiAgICAgICAgICAgIC5sYW5ndWFnZS1jb250YWluZXIgewogICAgICAgICAgICAgIHBhZGRpbmc6IDE2cHg7CiAgICAgICAgICAgICAgbWF4LWhlaWdodDogNDAwcHg7CiAgICAgICAgICAgICAgb3ZlcmZsb3cteTogYXV0bzsKICAgICAgICAgICAgfQogICAgICAgICAgICAubGFuZ3VhZ2UtZ3JpZCB7CiAgICAgICAgICAgICAgZGlzcGxheTogZ3JpZDsKICAgICAgICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdChhdXRvLWZpbGwsIG1pbm1heCgxMjBweCwgMWZyKSk7CiAgICAgICAgICAgICAgZ2FwOiA4cHg7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgLmxhbmd1YWdlLWJ1dHRvbiB7CiAgICAgICAgICAgICAgcGFkZGluZzogMTJweCA4cHg7CiAgICAgICAgICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7CiAgICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHttLmJkVGhlbWUoIiNlNWU3ZWIiLCIjMzc0MTUxIil9OwogICAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDZweDsKICAgICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyOwogICAgICAgICAgICAgIGZvbnQtc2l6ZTogMTNweDsKICAgICAgICAgICAgICBmb250LXdlaWdodDogNTAwOwogICAgICAgICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjE1cyBlYXNlOwogICAgICAgICAgICAgIGNvbG9yOiAke20uYmRUaGVtZSgiIzM3NDE1MSIsIiNlNWU3ZWIiKX07CiAgICAgICAgICAgIH0KICAgICAgICAgICAgLmxhbmd1YWdlLWJ1dHRvbjpob3ZlciB7CiAgICAgICAgICAgICAgYmFja2dyb3VuZDogJHttLmJkVGhlbWUoIiNmOWZhZmIiLCIjMWYyOTM3Iil9OwogICAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHttLmJkVGhlbWUoIiNkMWQ1ZGIiLCIjNGI1NTYzIil9OwogICAgICAgICAgICB9CiAgICAgICAgICAgIC5sYW5ndWFnZS1idXR0b24uc2VsZWN0ZWQgewogICAgICAgICAgICAgIGJhY2tncm91bmQ6ICR7bS5iZFRoZW1lKCIjZjNmNGY2IiwiIzM3NDE1MSIpfTsKICAgICAgICAgICAgICBib3JkZXItY29sb3I6ICR7bS5iZFRoZW1lKCIjOWNhM2FmIiwiIzZiNzI4MCIpfTsKICAgICAgICAgICAgICBjb2xvcjogJHttLmJkVGhlbWUoIiMxMTE4MjciLCIjZjlmYWZiIil9OwogICAgICAgICAgICB9CiAgICAgICAgICA8L3N0eWxlPgogICAgICAgICAgPGRpdiBjbGFzcz0ibGFuZ3VhZ2UtY29udGFpbmVyIj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0ibGFuZ3VhZ2UtZ3JpZCI+CiAgICAgICAgICAgICAgJHt0aGlzLmdldExhbmd1YWdlcygpLm1hcChpPT5DYAogICAgICAgICAgICAgICAgPGRpdiAKICAgICAgICAgICAgICAgICAgY2xhc3M9Imxhbmd1YWdlLWJ1dHRvbiAke3I9PT1pLnRvTG93ZXJDYXNlKCk/InNlbGVjdGVkIjoiIn0iIAogICAgICAgICAgICAgICAgICBAY2xpY2s9IiR7KCk9PntyPWkudG9Mb3dlckNhc2UoKTtsZXQgYT1kb2N1bWVudC5xdWVyeVNlbGVjdG9yKCJkZWVzLW1vZGFsIik7YSYmdHlwZW9mIGEuZGVzdHJveT09ImZ1bmN0aW9uIiYmYS5kZXN0cm95KCksdChyKX19Ij4KICAgICAgICAgICAgICAgICAgJHtpfQogICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgYCl9CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgPC9kaXY+CiAgICAgICAgYCxtZW51T3B0aW9uczpbe25hbWU6IkNhbmNlbCIsYWN0aW9uOmFzeW5jIGk9PntpLmRlc3Ryb3koKSx0KG51bGwpfX1dfSl9KX1zdGF0aWMgYXN5bmMgc2hvd0Jsb2NrU2V0dGluZ3NNb2RhbCh0LHIpe2xldCBpPUNgCiAgICAgIDxzdHlsZT4KICAgICAgICAuc2V0dGluZ3MtY29udGFpbmVyIHsKICAgICAgICAgIHBhZGRpbmc6IDE2cHg7CiAgICAgICAgfQogICAgICAgIC5zZXR0aW5ncy1zZWN0aW9uIHsKICAgICAgICAgIG1hcmdpbi1ib3R0b206IDI0cHg7CiAgICAgICAgfQogICAgICAgIC5zZXR0aW5ncy1zZWN0aW9uOmxhc3QtY2hpbGQgewogICAgICAgICAgbWFyZ2luLWJvdHRvbTogMDsKICAgICAgICB9CiAgICAgICAgLnNldHRpbmdzLWxhYmVsIHsKICAgICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7CiAgICAgICAgICBtYXJnaW4tYm90dG9tOiA4cHg7CiAgICAgICAgICBjb2xvcjogJHttLmJkVGhlbWUoIiM2YjcyODAiLCIjOWNhM2FmIil9OwogICAgICAgICAgZm9udC1zaXplOiAxMnB4OwogICAgICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTsKICAgICAgICAgIGxldHRlci1zcGFjaW5nOiAwLjA1ZW07CiAgICAgICAgfQogICAgICAgIC5ibG9jay10eXBlLWdyaWQgewogICAgICAgICAgZGlzcGxheTogZ3JpZDsKICAgICAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KGF1dG8tZmlsbCwgbWlubWF4KDE2MHB4LCAxZnIpKTsKICAgICAgICAgIGdhcDogOHB4OwogICAgICAgIH0KICAgICAgICAuYmxvY2stdHlwZS1idXR0b24gewogICAgICAgICAgcGFkZGluZzogMTJweDsKICAgICAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50OwogICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHttLmJkVGhlbWUoIiNlNWU3ZWIiLCIjMzc0MTUxIil9OwogICAgICAgICAgYm9yZGVyLXJhZGl1czogNnB4OwogICAgICAgICAgY3Vyc29yOiBwb2ludGVyOwogICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDsKICAgICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjE1cyBlYXNlOwogICAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgICBnYXA6IDhweDsKICAgICAgICAgIGZvbnQtc2l6ZTogMTNweDsKICAgICAgICAgIGNvbG9yOiAke20uYmRUaGVtZSgiIzM3NDE1MSIsIiNlNWU3ZWIiKX07CiAgICAgICAgfQogICAgICAgIC5ibG9jay10eXBlLWJ1dHRvbjpob3ZlciB7CiAgICAgICAgICBiYWNrZ3JvdW5kOiAke20uYmRUaGVtZSgiI2Y5ZmFmYiIsIiMxZjI5MzciKX07CiAgICAgICAgICBib3JkZXItY29sb3I6ICR7bS5iZFRoZW1lKCIjZDFkNWRiIiwiIzRiNTU2MyIpfTsKICAgICAgICB9CiAgICAgICAgLmJsb2NrLXR5cGUtYnV0dG9uLnNlbGVjdGVkIHsKICAgICAgICAgIGJhY2tncm91bmQ6ICR7bS5iZFRoZW1lKCIjZjNmNGY2IiwiIzM3NDE1MSIpfTsKICAgICAgICAgIGJvcmRlci1jb2xvcjogJHttLmJkVGhlbWUoIiM5Y2EzYWYiLCIjNmI3MjgwIil9OwogICAgICAgICAgY29sb3I6ICR7bS5iZFRoZW1lKCIjMTExODI3IiwiI2Y5ZmFmYiIpfTsKICAgICAgICB9CiAgICAgICAgLmJsb2NrLXR5cGUtaWNvbiB7CiAgICAgICAgICBmb250LXdlaWdodDogNTAwOwogICAgICAgICAgZm9udC1zaXplOiAxNnB4OwogICAgICAgICAgd2lkdGg6IDIwcHg7CiAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7CiAgICAgICAgICBmbGV4LXNocmluazogMDsKICAgICAgICAgIG9wYWNpdHk6IDAuNzsKICAgICAgICB9CiAgICAgIDwvc3R5bGU+CiAgICAgIDxkaXYgY2xhc3M9InNldHRpbmdzLWNvbnRhaW5lciI+CiAgICAgICAgJHt0aGlzLmdldEJsb2NrVHlwZVNlbGVjdG9yKHQscil9CiAgICAgICAgJHt0LnR5cGU9PT0iY29kZSI/dGhpcy5nZXRDb2RlQmxvY2tTZXR0aW5ncyh0LHIpOiIifQogICAgICA8L2Rpdj4KICAgIGA7V3IuY3JlYXRlQW5kU2hvdyh7aGVhZGluZzoiQmxvY2sgU2V0dGluZ3MiLGNvbnRlbnQ6aSxtZW51T3B0aW9uczpbe25hbWU6IkRvbmUiLGFjdGlvbjphc3luYyBhPT57YS5kZXN0cm95KCl9fV19KX1zdGF0aWMgZ2V0Q29kZUJsb2NrU2V0dGluZ3ModCxyKXtsZXQgaT10Lm1ldGFkYXRhPy5sYW5ndWFnZXx8ImphdmFzY3JpcHQiO3JldHVybiBDYAogICAgICA8c3R5bGU+CiAgICAgICAgLmxhbmd1YWdlLWdyaWQgewogICAgICAgICAgZGlzcGxheTogZ3JpZDsKICAgICAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KGF1dG8tZmlsbCwgbWlubWF4KDEwMHB4LCAxZnIpKTsKICAgICAgICAgIGdhcDogNnB4OwogICAgICAgIH0KICAgICAgICAubGFuZ3VhZ2UtYnV0dG9uIHsKICAgICAgICAgIHBhZGRpbmc6IDhweCA0cHg7CiAgICAgICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDsKICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICR7bS5iZFRoZW1lKCIjZTVlN2ViIiwiIzM3NDE1MSIpfTsKICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDRweDsKICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjsKICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjsKICAgICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjE1cyBlYXNlOwogICAgICAgICAgZm9udC1zaXplOiAxMnB4OwogICAgICAgICAgY29sb3I6ICR7bS5iZFRoZW1lKCIjMzc0MTUxIiwiI2U1ZTdlYiIpfTsKICAgICAgICB9CiAgICAgICAgLmxhbmd1YWdlLWJ1dHRvbjpob3ZlciB7CiAgICAgICAgICBiYWNrZ3JvdW5kOiAke20uYmRUaGVtZSgiI2Y5ZmFmYiIsIiMxZjI5MzciKX07CiAgICAgICAgICBib3JkZXItY29sb3I6ICR7bS5iZFRoZW1lKCIjZDFkNWRiIiwiIzRiNTU2MyIpfTsKICAgICAgICB9CiAgICAgICAgLmxhbmd1YWdlLWJ1dHRvbi5zZWxlY3RlZCB7CiAgICAgICAgICBiYWNrZ3JvdW5kOiAke20uYmRUaGVtZSgiI2YzZjRmNiIsIiMzNzQxNTEiKX07CiAgICAgICAgICBib3JkZXItY29sb3I6ICR7bS5iZFRoZW1lKCIjOWNhM2FmIiwiIzZiNzI4MCIpfTsKICAgICAgICAgIGNvbG9yOiAke20uYmRUaGVtZSgiIzExMTgyNyIsIiNmOWZhZmIiKX07CiAgICAgICAgfQogICAgICA8L3N0eWxlPgogICAgICA8ZGl2IGNsYXNzPSJzZXR0aW5ncy1zZWN0aW9uIj4KICAgICAgICA8ZGl2IGNsYXNzPSJzZXR0aW5ncy1sYWJlbCI+UHJvZ3JhbW1pbmcgTGFuZ3VhZ2U8L2Rpdj4KICAgICAgICA8ZGl2IGNsYXNzPSJsYW5ndWFnZS1ncmlkIj4KICAgICAgICAgICR7dGhpcy5nZXRMYW5ndWFnZXMoKS5tYXAoYT0+Q2AKICAgICAgICAgICAgPGRpdiAKICAgICAgICAgICAgICBjbGFzcz0ibGFuZ3VhZ2UtYnV0dG9uICR7aT09PWEudG9Mb3dlckNhc2UoKT8ic2VsZWN0ZWQiOiIifSIgCiAgICAgICAgICAgICAgQGNsaWNrPSIkeygpPT57dC5tZXRhZGF0YXx8KHQubWV0YWRhdGE9e30pLHQubWV0YWRhdGEubGFuZ3VhZ2U9YS50b0xvd2VyQ2FzZSgpLHIodCk7bGV0IG49ZG9jdW1lbnQucXVlcnlTZWxlY3RvcigiZGVlcy1tb2RhbCIpO24mJnR5cGVvZiBuLmRlc3Ryb3k9PSJmdW5jdGlvbiImJm4uZGVzdHJveSgpfX0iCiAgICAgICAgICAgICAgZGF0YS1sYW5nPSIke2F9IgogICAgICAgICAgICA+JHthfTwvZGl2PgogICAgICAgICAgYCl9CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGl2PgogICAgYH1zdGF0aWMgZ2V0TGFuZ3VhZ2VzKCl7cmV0dXJuWy4uLnhiXX1zdGF0aWMgZ2V0QmxvY2tUeXBlU2VsZWN0b3IodCxyKXtsZXQgaT1HMS5nZXRTbGFzaE1lbnVJdGVtcygpLmZpbHRlcihhPT5hLnR5cGUhPT0iZGl2aWRlciIpO3JldHVybiBDYAogICAgICA8ZGl2IGNsYXNzPSJzZXR0aW5ncy1zZWN0aW9uIj4KICAgICAgICA8ZGl2IGNsYXNzPSJzZXR0aW5ncy1sYWJlbCI+QmxvY2sgVHlwZTwvZGl2PgogICAgICAgIDxkaXYgY2xhc3M9ImJsb2NrLXR5cGUtZ3JpZCI+CiAgICAgICAgICAke2kubWFwKGE9PkNgCiAgICAgICAgICAgIDxkaXYgCiAgICAgICAgICAgICAgY2xhc3M9ImJsb2NrLXR5cGUtYnV0dG9uICR7dC50eXBlPT09YS50eXBlPyJzZWxlY3RlZCI6IiJ9IgogICAgICAgICAgICAgIEBjbGljaz0iJHthc3luYyBuPT57bGV0IG89bi5jdXJyZW50VGFyZ2V0LHM9dC50eXBlO2lmKHQudHlwZT1hLnR5cGUscz09PSJjb2RlIiYmdC50eXBlIT09ImNvZGUiKWRlbGV0ZSB0Lm1ldGFkYXRhPy5sYW5ndWFnZTtlbHNlIGlmKHM9PT0ibGlzdCImJnQudHlwZSE9PSJsaXN0IilkZWxldGUgdC5tZXRhZGF0YT8ubGlzdFR5cGU7ZWxzZSBpZih0LnR5cGU9PT0ibGlzdCImJiF0Lm1ldGFkYXRhPy5saXN0VHlwZSl0Lm1ldGFkYXRhPXtsaXN0VHlwZToiYnVsbGV0In07ZWxzZSBpZih0LnR5cGU9PT0iY29kZSImJiF0Lm1ldGFkYXRhPy5sYW5ndWFnZSl7bGV0IGM9YXdhaXQgdGhpcy5zaG93TGFuZ3VhZ2VTZWxlY3Rpb25Nb2RhbCgpO2lmKGMpdC5tZXRhZGF0YT17bGFuZ3VhZ2U6Y307ZWxzZXt0LnR5cGU9cztyZXR1cm59fXIodCk7bGV0IGw9ZG9jdW1lbnQucXVlcnlTZWxlY3RvcigiZGVlcy1tb2RhbCIpO2wmJnR5cGVvZiBsLmRlc3Ryb3k9PSJmdW5jdGlvbiImJmwuZGVzdHJveSgpfX0iCiAgICAgICAgICAgID4KICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iYmxvY2stdHlwZS1pY29uIj4ke2EuaWNvbn08L3NwYW4+CiAgICAgICAgICAgICAgPHNwYW4+JHthLmxhYmVsfTwvc3Bhbj4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICBgKX0KICAgICAgICA8L2Rpdj4KICAgICAgPC9kaXY+CiAgICBgfX19KTt2YXIgRWIsYzRyPXAoKCk9PntDbigpO2xoKCk7WWQoKTt6YygpO3JkZSgpO25kZSgpO0ViPWNsYXNze2NvbXBvbmVudDtzYXZlVGltZW91dD1udWxsO2NvbnN0cnVjdG9yKHQpe3RoaXMuY29tcG9uZW50PXR9aGFuZGxlQmxvY2tJbnB1dCh0LHIpe2lmKHRoaXMuY29tcG9uZW50LmlzQ29tcG9zaW5nKXJldHVybjtsZXQgaT10LnRhcmdldCxhPWkudGV4dENvbnRlbnR8fCIiLG49dGhpcy5kZXRlY3RCbG9ja1R5cGVJbnRlbnQoYSk7aWYobiYmbi50eXBlIT09ci50eXBlKXt0LnByZXZlbnREZWZhdWx0KCksdGhpcy5oYW5kbGVCbG9ja1RyYW5zZm9ybWF0aW9uKHIsbixpKTtyZXR1cm59dGhpcy5oYW5kbGVTbGFzaENvbW1hbmQoYSxpKSx0aGlzLnNjaGVkdWxlQXV0b1NhdmUoKX11cGRhdGVCbG9ja0NvbnRlbnQodCxyKXtsZXQgYT1yLmNsb3Nlc3QoIi5ibG9jay13cmFwcGVyIik/LnF1ZXJ5U2VsZWN0b3IoImRlZXMtd3lzaXd5Zy1ibG9jayIpO2lmKGEpe2xldCBuPWEuZ2V0Q29udGVudCgpO2lmKHQuY29udGVudCE9PW4mJih0LmNvbnRlbnQ9biksdC50eXBlPT09Imxpc3QiKXtsZXQgbz1yLnF1ZXJ5U2VsZWN0b3IoIm9sLCB1bCIpO28mJih0Lm1ldGFkYXRhPXtsaXN0VHlwZTpvLnRhZ05hbWUudG9Mb3dlckNhc2UoKT09PSJvbCI/Im9yZGVyZWQiOiJidWxsZXQifSl9fWVsc2UgaWYodC50eXBlPT09Imxpc3QiKXtsZXQgbj1yLnF1ZXJ5U2VsZWN0b3JBbGwoImxpIik7dC5jb250ZW50PUFycmF5LmZyb20obikubWFwKHM9PnMuaW5uZXJIVE1MfHwiIikuam9pbihgCmApO2xldCBvPXIucXVlcnlTZWxlY3Rvcigib2wsIHVsIik7byYmKHQubWV0YWRhdGE9e2xpc3RUeXBlOm8udGFnTmFtZS50b0xvd2VyQ2FzZSgpPT09Im9sIj8ib3JkZXJlZCI6ImJ1bGxldCJ9KX1lbHNlIHQudHlwZT09PSJjb2RlIj90LmNvbnRlbnQ9ci50ZXh0Q29udGVudHx8IiI6dC5jb250ZW50PXIuaW5uZXJIVE1MfHwiIn1kZXRlY3RCbG9ja1R5cGVJbnRlbnQodCl7bGV0IHI9RzEuY2hlY2tIZWFkaW5nU2hvcnRjdXQodCk7aWYocilyZXR1cm4gcjtsZXQgaT1HMS5jaGVja0xpc3RTaG9ydGN1dCh0KTtyZXR1cm4gaXx8KEcxLmNoZWNrUXVvdGVTaG9ydGN1dCh0KT97dHlwZToicXVvdGUifTpHMS5jaGVja0NvZGVTaG9ydGN1dCh0KT97dHlwZToiY29kZSJ9OkcxLmNoZWNrRGl2aWRlclNob3J0Y3V0KHQpP3t0eXBlOiJkaXZpZGVyIn06bnVsbCl9YXN5bmMgaGFuZGxlQmxvY2tUcmFuc2Zvcm1hdGlvbih0LHIsaSl7bGV0IGE9dGhpcy5jb21wb25lbnQuYmxvY2tPcGVyYXRpb25zO2lmKHIudHlwZT09PSJsaXN0Iil7dC50eXBlPSJsaXN0Iix0LmNvbnRlbnQ9IiIsdC5tZXRhZGF0YT17bGlzdFR5cGU6ci5saXN0VHlwZX07bGV0IG49ci5saXN0VHlwZT09PSJvcmRlcmVkIj8ib2wiOiJ1bCI7aS5pbm5lckhUTUw9YDwke259PjxsaT48L2xpPjwvJHtufT5gLHRoaXMuY29tcG9uZW50LnVwZGF0ZVZhbHVlKCksdGhpcy5jb21wb25lbnQuZWRpdG9yQ29udGVudFJlZiYmdGhpcy5jb21wb25lbnQudXBkYXRlQmxvY2tFbGVtZW50KHQuaWQpLHNldFRpbWVvdXQoKCk9PnthYS5mb2N1c0xpc3RJdGVtKGkpfSwwKX1lbHNlIGlmKHIudHlwZT09PSJkaXZpZGVyIil7dC50eXBlPSJkaXZpZGVyIix0LmNvbnRlbnQ9IiAiLHRoaXMuY29tcG9uZW50LmVkaXRvckNvbnRlbnRSZWYmJnRoaXMuY29tcG9uZW50LnVwZGF0ZUJsb2NrRWxlbWVudCh0LmlkKTtsZXQgbj1hLmNyZWF0ZUJsb2NrKCk7YS5pbnNlcnRCbG9ja0FmdGVyKHQsbiksdGhpcy5jb21wb25lbnQudXBkYXRlVmFsdWUoKX1lbHNlIGlmKHIudHlwZT09PSJjb2RlIil7bGV0IG49YXdhaXQgRGIuc2hvd0xhbmd1YWdlU2VsZWN0aW9uTW9kYWwoKTtuJiYodC50eXBlPSJjb2RlIix0LmNvbnRlbnQ9IiIsdC5tZXRhZGF0YT17bGFuZ3VhZ2U6bn0saS50ZXh0Q29udGVudD0iIix0aGlzLmNvbXBvbmVudC51cGRhdGVWYWx1ZSgpLHRoaXMuY29tcG9uZW50LmVkaXRvckNvbnRlbnRSZWYmJnRoaXMuY29tcG9uZW50LnVwZGF0ZUJsb2NrRWxlbWVudCh0LmlkKSxzZXRUaW1lb3V0KGFzeW5jKCk9Pnthd2FpdCBhLmZvY3VzQmxvY2sodC5pZCwic3RhcnQiKX0sNTApKX1lbHNlIHQudHlwZT1yLnR5cGUsdC5jb250ZW50PSIiLGkudGV4dENvbnRlbnQ9IiIsdGhpcy5jb21wb25lbnQudXBkYXRlVmFsdWUoKSx0aGlzLmNvbXBvbmVudC5lZGl0b3JDb250ZW50UmVmJiZ0aGlzLmNvbXBvbmVudC51cGRhdGVCbG9ja0VsZW1lbnQodC5pZCksc2V0VGltZW91dChhc3luYygpPT57YXdhaXQgYS5mb2N1c0Jsb2NrKHQuaWQsInN0YXJ0Iil9LDUwKX1oYW5kbGVTbGFzaENvbW1hbmQodCxyKXtsZXQgaT10aGlzLmNvbXBvbmVudC5zbGFzaE1lbnUsYT1pJiZpLnZpc2libGU7aWYodD09PSIvInx8dC5zdGFydHNXaXRoKCIvIikmJmEpe2lmKCFhJiZ0PT09Ii8iKXtsZXQgbj10aGlzLmdldENhcmV0Q29vcmRpbmF0ZXMocik7aS5zaG93KHt4Om4ubGVmdCx5Om4uYm90dG9tKzR9LG89Pnt0aGlzLmNvbXBvbmVudC5pbnNlcnRCbG9jayhvKX0pLHJlcXVlc3RBbmltYXRpb25GcmFtZSgoKT0+e2RvY3VtZW50LmFjdGl2ZUVsZW1lbnQhPT1yJiZyLmZvY3VzKCl9KX1pJiZpLnVwZGF0ZUZpbHRlcih0LnNsaWNlKDEpKX1lbHNlIHQuc3RhcnRzV2l0aCgiLyIpfHx0aGlzLmNvbXBvbmVudC5jbG9zZVNsYXNoTWVudSgpfWdldENhcmV0Q29vcmRpbmF0ZXModCl7bGV0IHI9d2luZG93LmdldFNlbGVjdGlvbigpO2lmKHImJnIucmFuZ2VDb3VudD4wKXtsZXQgYT1yLmdldFJhbmdlQXQoMCkuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7aWYoYS53aWR0aD4wfHxhLmhlaWdodD4wKXJldHVybiBhfXJldHVybiB0LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpfXNjaGVkdWxlQXV0b1NhdmUoKXt0aGlzLnNhdmVUaW1lb3V0JiZjbGVhclRpbWVvdXQodGhpcy5zYXZlVGltZW91dCksISh0aGlzLmNvbXBvbmVudC5zbGFzaE1lbnUmJnRoaXMuY29tcG9uZW50LnNsYXNoTWVudS52aXNpYmxlKSYmKHRoaXMuc2F2ZVRpbWVvdXQ9c2V0VGltZW91dCgoKT0+e3RoaXMuc3luY0FsbEJsb2NrQ29udGVudCgpLHRoaXMuY29tcG9uZW50LnVwZGF0ZVZhbHVlKCl9LDJlMykpfXN5bmNBbGxCbG9ja0NvbnRlbnQoKXt0aGlzLmNvbXBvbmVudC5ibG9ja3MuZm9yRWFjaCh0PT57bGV0IGk9dGhpcy5jb21wb25lbnQuc2hhZG93Um9vdD8ucXVlcnlTZWxlY3RvcihgW2RhdGEtYmxvY2staWQ9IiR7dC5pZH0iXWApPy5xdWVyeVNlbGVjdG9yKCJkZWVzLXd5c2l3eWctYmxvY2siKTtpZihpJiZpLmdldENvbnRlbnQpe2xldCBhPWkuZ2V0Q29udGVudCgpO3QuY29udGVudCE9PWEmJih0LmNvbnRlbnQ9YSl9fSl9ZGVzdHJveSgpe3RoaXMuc2F2ZVRpbWVvdXQmJmNsZWFyVGltZW91dCh0aGlzLnNhdmVUaW1lb3V0KX19fSk7dmFyICRiLGQ0cj1wKCgpPT57Q24oKTtsaCgpO25sKCk7JGI9Y2xhc3N7Y29tcG9uZW50O2NvbnN0cnVjdG9yKHQpe3RoaXMuY29tcG9uZW50PXR9YXN5bmMgaGFuZGxlQmxvY2tLZXlEb3duKHQscil7aWYodGhpcy5jb21wb25lbnQuc2xhc2hNZW51LnZpc2libGUmJnRoaXMuaXNTbGFzaE1lbnVLZXkodC5rZXkpKXt0aGlzLmNvbXBvbmVudC5oYW5kbGVTbGFzaE1lbnVLZXlib2FyZCh0KTtyZXR1cm59aWYoIXRoaXMuaGFuZGxlRm9ybWF0dGluZ1Nob3J0Y3V0cyh0KSlzd2l0Y2godC5rZXkpe2Nhc2UiVGFiIjp0aGlzLmhhbmRsZVRhYih0LHIpO2JyZWFrO2Nhc2UiRW50ZXIiOmF3YWl0IHRoaXMuaGFuZGxlRW50ZXIodCxyKTticmVhaztjYXNlIkJhY2tzcGFjZSI6YXdhaXQgdGhpcy5oYW5kbGVCYWNrc3BhY2UodCxyKTticmVhaztjYXNlIkRlbGV0ZSI6YXdhaXQgdGhpcy5oYW5kbGVEZWxldGUodCxyKTticmVhaztjYXNlIkFycm93VXAiOmF3YWl0IHRoaXMuaGFuZGxlQXJyb3dVcCh0LHIpO2JyZWFrO2Nhc2UiQXJyb3dEb3duIjphd2FpdCB0aGlzLmhhbmRsZUFycm93RG93bih0LHIpO2JyZWFrO2Nhc2UiQXJyb3dMZWZ0Ijphd2FpdCB0aGlzLmhhbmRsZUFycm93TGVmdCh0LHIpO2JyZWFrO2Nhc2UiQXJyb3dSaWdodCI6YXdhaXQgdGhpcy5oYW5kbGVBcnJvd1JpZ2h0KHQscik7YnJlYWt9fWlzU2xhc2hNZW51S2V5KHQpe3JldHVyblsiQXJyb3dEb3duIiwiQXJyb3dVcCIsIkVudGVyIiwiRXNjYXBlIl0uaW5jbHVkZXModCl9aGFuZGxlRm9ybWF0dGluZ1Nob3J0Y3V0cyh0KXtpZighKHQubWV0YUtleXx8dC5jdHJsS2V5KSlyZXR1cm4hMTtzd2l0Y2godC5rZXkudG9Mb3dlckNhc2UoKSl7Y2FzZSJiIjpyZXR1cm4gdC5wcmV2ZW50RGVmYXVsdCgpLFByb21pc2UucmVzb2x2ZSgpLnRoZW4oKCk9PnRoaXMuY29tcG9uZW50LmFwcGx5Rm9ybWF0KCJib2xkIikpLCEwO2Nhc2UiaSI6cmV0dXJuIHQucHJldmVudERlZmF1bHQoKSxQcm9taXNlLnJlc29sdmUoKS50aGVuKCgpPT50aGlzLmNvbXBvbmVudC5hcHBseUZvcm1hdCgiaXRhbGljIikpLCEwO2Nhc2UidSI6cmV0dXJuIHQucHJldmVudERlZmF1bHQoKSxQcm9taXNlLnJlc29sdmUoKS50aGVuKCgpPT50aGlzLmNvbXBvbmVudC5hcHBseUZvcm1hdCgidW5kZXJsaW5lIikpLCEwO2Nhc2UiayI6cmV0dXJuIHQucHJldmVudERlZmF1bHQoKSxQcm9taXNlLnJlc29sdmUoKS50aGVuKCgpPT50aGlzLmNvbXBvbmVudC5hcHBseUZvcm1hdCgibGluayIpKSwhMH1yZXR1cm4hMX1oYW5kbGVUYWIodCxyKXtyLnR5cGUhPT0iY29kZSImJnIudHlwZT09PSJsaXN0IiYmdC5wcmV2ZW50RGVmYXVsdCgpfWFzeW5jIGhhbmRsZUVudGVyKHQscil7bGV0IGk9dGhpcy5jb21wb25lbnQuYmxvY2tPcGVyYXRpb25zO2lmKFsiZGl2aWRlciIsImltYWdlIiwieW91dHViZSIsImF0dGFjaG1lbnQiXS5pbmNsdWRlcyhyLnR5cGUpKXt0LnByZXZlbnREZWZhdWx0KCk7bGV0IG49aS5jcmVhdGVCbG9jaygpO2F3YWl0IGkuaW5zZXJ0QmxvY2tBZnRlcihyLG4pO3JldHVybn1pZihyLnR5cGU9PT0iY29kZSIpe2lmKHQuc2hpZnRLZXkpe3QucHJldmVudERlZmF1bHQoKTtsZXQgbj1pLmNyZWF0ZUJsb2NrKCk7YXdhaXQgaS5pbnNlcnRCbG9ja0FmdGVyKHIsbil9cmV0dXJufWlmKCF0LnNoaWZ0S2V5KWlmKHIudHlwZT09PSJsaXN0Iilhd2FpdCB0aGlzLmhhbmRsZUVudGVySW5MaXN0KHQscik7ZWxzZXt0LnByZXZlbnREZWZhdWx0KCk7bGV0IG89dGhpcy5jb21wb25lbnQuc2hhZG93Um9vdD8ucXVlcnlTZWxlY3RvcihgW2RhdGEtYmxvY2staWQ9IiR7ci5pZH0iXWApPy5xdWVyeVNlbGVjdG9yKCJkZWVzLXd5c2l3eWctYmxvY2siKTtpZihvJiZvLmdldFNwbGl0Q29udGVudCl7bGV0IHM9by5nZXRTcGxpdENvbnRlbnQoKTtpZihzKXtvLnNldENvbnRlbnQocy5iZWZvcmUpLHIuY29udGVudD1zLmJlZm9yZTtsZXQgbD1pLmNyZWF0ZUJsb2NrKCJwYXJhZ3JhcGgiLHMuYWZ0ZXIpO2F3YWl0IGkuaW5zZXJ0QmxvY2tBZnRlcihyLGwpLHRoaXMuY29tcG9uZW50LnVwZGF0ZVZhbHVlKCl9ZWxzZXtsZXQgbD1pLmNyZWF0ZUJsb2NrKCk7YXdhaXQgaS5pbnNlcnRCbG9ja0FmdGVyKHIsbCl9fWVsc2V7bGV0IHM9aS5jcmVhdGVCbG9jaygpO2F3YWl0IGkuaW5zZXJ0QmxvY2tBZnRlcihyLHMpfX19YXN5bmMgaGFuZGxlRW50ZXJJbkxpc3QodCxyKXtsZXQgaT13aW5kb3cuZ2V0U2VsZWN0aW9uKCk7aWYoaSYmaS5yYW5nZUNvdW50PjApe2xldCBuPWkuZ2V0UmFuZ2VBdCgwKS5zdGFydENvbnRhaW5lci5wYXJlbnRFbGVtZW50Py5jbG9zZXN0KCJsaSIpO2lmKG4mJm4udGV4dENvbnRlbnQ9PT0iIil7dC5wcmV2ZW50RGVmYXVsdCgpO2xldCBvPXRoaXMuY29tcG9uZW50LmJsb2NrT3BlcmF0aW9ucyxzPW8uY3JlYXRlQmxvY2soKTthd2FpdCBvLmluc2VydEJsb2NrQWZ0ZXIocixzKX19fWFzeW5jIGhhbmRsZUJhY2tzcGFjZSh0LHIpe2xldCBpPXRoaXMuY29tcG9uZW50LmJsb2NrT3BlcmF0aW9ucztpZihbImRpdmlkZXIiLCJpbWFnZSIsInlvdXR1YmUiLCJhdHRhY2htZW50Il0uaW5jbHVkZXMoci50eXBlKSl7aWYodC5wcmV2ZW50RGVmYXVsdCgpLHRoaXMuY29tcG9uZW50LmJsb2Nrcy5sZW5ndGg9PT0xKXt0aGlzLmNvbXBvbmVudC5zYXZlVG9IaXN0b3J5KCExKSxpLnJlbW92ZUJsb2NrKHIuaWQpO2xldCB4PWkuY3JlYXRlQmxvY2soInBhcmFncmFwaCIsIiIpO3RoaXMuY29tcG9uZW50LmJsb2Nrcz1beF0sdGhpcy5jb21wb25lbnQucmVuZGVyQmxvY2tzUHJvZ3JhbW1hdGljYWxseSgpLGF3YWl0IGkuZm9jdXNCbG9jayh4LmlkLCJzdGFydCIpLHRoaXMuY29tcG9uZW50LnVwZGF0ZVZhbHVlKCk7cmV0dXJufXRoaXMuY29tcG9uZW50LnNhdmVUb0hpc3RvcnkoITEpO2xldCBoPWkuZ2V0UHJldmlvdXNCbG9jayhyLmlkKSxmPWkuZ2V0TmV4dEJsb2NrKHIuaWQpO2kucmVtb3ZlQmxvY2soci5pZCksaCYmaC50eXBlIT09ImRpdmlkZXIiJiZoLnR5cGUhPT0iaW1hZ2UiP2F3YWl0IGkuZm9jdXNCbG9jayhoLmlkLCJlbmQiKTpmJiZmLnR5cGUhPT0iZGl2aWRlciImJmYudHlwZSE9PSJpbWFnZSI/YXdhaXQgaS5mb2N1c0Jsb2NrKGYuaWQsInN0YXJ0Iik6aD9hd2FpdCBpLmZvY3VzQmxvY2soaC5pZCk6ZiYmYXdhaXQgaS5mb2N1c0Jsb2NrKGYuaWQpO3JldHVybn1sZXQgbz10aGlzLmNvbXBvbmVudC5zaGFkb3dSb290Py5xdWVyeVNlbGVjdG9yKGBbZGF0YS1ibG9jay1pZD0iJHtyLmlkfSJdYCk/LnF1ZXJ5U2VsZWN0b3IoImRlZXMtd3lzaXd5Zy1ibG9jayIpO2lmKCFvfHwhby5zaGFkb3dSb290KXJldHVybjtsZXQgcz1yLnR5cGU9PT0iY29kZSI/by5zaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3IoIi5jb2RlLWVkaXRvciIpOm8uc2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yKCIuYmxvY2siKTtpZighcylyZXR1cm47bGV0IGw9by5jbG9zZXN0KCJkZWVzLWlucHV0LXd5c2l3eWciKSxjPVtdO2w/LnNoYWRvd1Jvb3QmJmMucHVzaChsLnNoYWRvd1Jvb3QpLGMucHVzaChvLnNoYWRvd1Jvb3QpO2xldCB1PVllLmdldEN1cnNvclBvc2l0aW9uSW5FbGVtZW50KHMsLi4uYyksZD1vLmdldENvbnRlbnQ/by5nZXRDb250ZW50KCk6cy50ZXh0Q29udGVudDtpZih1PT09MCl7dC5wcmV2ZW50RGVmYXVsdCgpO2xldCBoPWkuZ2V0UHJldmlvdXNCbG9jayhyLmlkKTtpZihoKXtpZihbImRpdmlkZXIiLCJpbWFnZSIsInlvdXR1YmUiLCJhdHRhY2htZW50Il0uaW5jbHVkZXMoaC50eXBlKSl7YXdhaXQgaS5mb2N1c0Jsb2NrKGguaWQpO3JldHVybn1pZih0aGlzLmNvbXBvbmVudC5zYXZlVG9IaXN0b3J5KCExKSxoLnR5cGU9PT0iY29kZSImJnIudHlwZSE9PSJjb2RlIil7ci5jb250ZW50PT09IiImJihpLnJlbW92ZUJsb2NrKHIuaWQpLGF3YWl0IGkuZm9jdXNCbG9jayhoLmlkLCJlbmQiKSk7cmV0dXJufWlmKHIudHlwZT09PSJjb2RlIiYmaC50eXBlIT09ImNvZGUiKXtsZXQgTz1vLmdldENvbnRlbnQ/by5nZXRDb250ZW50KCk6ci5jb250ZW50OyhPPT09IiJ8fE8udHJpbSgpPT09IiIpJiYoaS5yZW1vdmVCbG9jayhyLmlkKSxhd2FpdCBpLmZvY3VzQmxvY2soaC5pZCwiZW5kIikpO3JldHVybn1sZXQgdj10aGlzLmNvbXBvbmVudC5zaGFkb3dSb290Py5xdWVyeVNlbGVjdG9yKGBbZGF0YS1ibG9jay1pZD0iJHtoLmlkfSJdYCk/LnF1ZXJ5U2VsZWN0b3IoImRlZXMtd3lzaXd5Zy1ibG9jayIpLGI9dj8uZ2V0Q29udGVudCgpfHxoLmNvbnRlbnR8fCIiLHk9by5nZXRDb250ZW50KCl8fHIuY29udGVudHx8IiIsdz0iIjtoLnR5cGU9PT0iY29kZSImJnIudHlwZT09PSJjb2RlInx8aC50eXBlPT09Imxpc3QiJiZyLnR5cGU9PT0ibGlzdCI/dz1iKyhiJiZ5P2AKYDoiIikreTp3PWIrKGImJnk/IiAiOiIiKSt5O2xldCBrPWIubGVuZ3RoO2kudXBkYXRlQmxvY2tDb250ZW50KGguaWQsdyksdiYmdi5zZXRDb250ZW50KHcpLGkucmVtb3ZlQmxvY2soci5pZCksYXdhaXQgaS5mb2N1c0Jsb2NrKGguaWQsayl9fWVsc2UgaWYodGhpcy5jb21wb25lbnQuYmxvY2tzLmxlbmd0aD4xKXtsZXQgaD1vLmdldENvbnRlbnQ/by5nZXRDb250ZW50KCk6ci5jb250ZW50O2lmKGg9PT0iInx8aC50cmltKCk9PT0iIil7dC5wcmV2ZW50RGVmYXVsdCgpO2xldCBmPWkuZ2V0UHJldmlvdXNCbG9jayhyLmlkKTtmJiYoaS5yZW1vdmVCbG9jayhyLmlkKSxmLnR5cGUhPT0iZGl2aWRlciImJmF3YWl0IGkuZm9jdXNCbG9jayhmLmlkLCJlbmQiKSl9fX1hc3luYyBoYW5kbGVEZWxldGUodCxyKXtsZXQgaT10aGlzLmNvbXBvbmVudC5ibG9ja09wZXJhdGlvbnM7aWYoWyJkaXZpZGVyIiwiaW1hZ2UiLCJ5b3V0dWJlIiwiYXR0YWNobWVudCJdLmluY2x1ZGVzKHIudHlwZSkpe2lmKHQucHJldmVudERlZmF1bHQoKSx0aGlzLmNvbXBvbmVudC5ibG9ja3MubGVuZ3RoPT09MSl7dGhpcy5jb21wb25lbnQuc2F2ZVRvSGlzdG9yeSghMSksaS5yZW1vdmVCbG9jayhyLmlkKTtsZXQgdj1pLmNyZWF0ZUJsb2NrKCJwYXJhZ3JhcGgiLCIiKTt0aGlzLmNvbXBvbmVudC5ibG9ja3M9W3ZdLHRoaXMuY29tcG9uZW50LnJlbmRlckJsb2Nrc1Byb2dyYW1tYXRpY2FsbHkoKSxhd2FpdCBpLmZvY3VzQmxvY2sodi5pZCwic3RhcnQiKSx0aGlzLmNvbXBvbmVudC51cGRhdGVWYWx1ZSgpO3JldHVybn10aGlzLmNvbXBvbmVudC5zYXZlVG9IaXN0b3J5KCExKTtsZXQgaD1pLmdldFByZXZpb3VzQmxvY2soci5pZCksZj1pLmdldE5leHRCbG9jayhyLmlkKTtpLnJlbW92ZUJsb2NrKHIuaWQpO2xldCB4PVsiZGl2aWRlciIsImltYWdlIiwieW91dHViZSIsImF0dGFjaG1lbnQiXTtmJiYheC5pbmNsdWRlcyhmLnR5cGUpP2F3YWl0IGkuZm9jdXNCbG9jayhmLmlkLCJzdGFydCIpOmgmJiF4LmluY2x1ZGVzKGgudHlwZSk/YXdhaXQgaS5mb2N1c0Jsb2NrKGguaWQsImVuZCIpOmY/YXdhaXQgaS5mb2N1c0Jsb2NrKGYuaWQpOmgmJmF3YWl0IGkuZm9jdXNCbG9jayhoLmlkKTtyZXR1cm59bGV0IG89dGhpcy5jb21wb25lbnQuc2hhZG93Um9vdD8ucXVlcnlTZWxlY3RvcihgW2RhdGEtYmxvY2staWQ9IiR7ci5pZH0iXWApPy5xdWVyeVNlbGVjdG9yKCJkZWVzLXd5c2l3eWctYmxvY2siKTtpZighb3x8IW8uc2hhZG93Um9vdClyZXR1cm47bGV0IHM9ci50eXBlPT09ImNvZGUiP28uc2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yKCIuY29kZS1lZGl0b3IiKTpvLnNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvcigiLmJsb2NrIik7aWYoIXMpcmV0dXJuO2xldCBsPW8uY2xvc2VzdCgiZGVlcy1pbnB1dC13eXNpd3lnIiksYz1bXTtsPy5zaGFkb3dSb290JiZjLnB1c2gobC5zaGFkb3dSb290KSxjLnB1c2goby5zaGFkb3dSb290KTtsZXQgdT1ZZS5nZXRDdXJzb3JQb3NpdGlvbkluRWxlbWVudChzLC4uLmMpLGQ9cy50ZXh0Q29udGVudD8ubGVuZ3RofHwwO2lmKHU9PT1kKXtsZXQgaD1pLmdldE5leHRCbG9jayhyLmlkKTtpZihoJiZbImRpdmlkZXIiLCJpbWFnZSIsInlvdXR1YmUiLCJhdHRhY2htZW50Il0uaW5jbHVkZXMoaC50eXBlKSl7dC5wcmV2ZW50RGVmYXVsdCgpLGF3YWl0IGkuZm9jdXNCbG9jayhoLmlkKTtyZXR1cm59fX1hc3luYyBoYW5kbGVBcnJvd1VwKHQscil7bGV0IGk9WyJkaXZpZGVyIiwiaW1hZ2UiLCJ5b3V0dWJlIiwiYXR0YWNobWVudCJdO2lmKGkuaW5jbHVkZXMoci50eXBlKSl7dC5wcmV2ZW50RGVmYXVsdCgpO2xldCB1PXRoaXMuY29tcG9uZW50LmJsb2NrT3BlcmF0aW9ucyxkPXUuZ2V0UHJldmlvdXNCbG9jayhyLmlkKTtkJiZhd2FpdCB1LmZvY3VzQmxvY2soZC5pZCxpLmluY2x1ZGVzKGQudHlwZSk/dm9pZCAwOiJlbmQiKTtyZXR1cm59bGV0IG49dGhpcy5jb21wb25lbnQuc2hhZG93Um9vdD8ucXVlcnlTZWxlY3RvcihgW2RhdGEtYmxvY2staWQ9IiR7ci5pZH0iXWApPy5xdWVyeVNlbGVjdG9yKCJkZWVzLXd5c2l3eWctYmxvY2siKTtpZighbnx8IW4uc2hhZG93Um9vdClyZXR1cm47bGV0IG89ci50eXBlPT09ImNvZGUiP24uc2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yKCIuY29kZS1lZGl0b3IiKTpuLnNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvcigiLmJsb2NrIik7aWYoIW8pcmV0dXJuO2xldCBzPW4uY2xvc2VzdCgiZGVlcy1pbnB1dC13eXNpd3lnIiksbD1bXTtzPy5zaGFkb3dSb290JiZsLnB1c2gocy5zaGFkb3dSb290KSxsLnB1c2gobi5zaGFkb3dSb290KTtsZXQgYz1ZZS5nZXRTZWxlY3Rpb25JbmZvKC4uLmwpO2lmKCEoIWN8fCFjLmNvbGxhcHNlZCkmJnRoaXMuaXNPbkZpcnN0TGluZShjLG8sLi4ubCkpe3QucHJldmVudERlZmF1bHQoKTtsZXQgdT10aGlzLmNvbXBvbmVudC5ibG9ja09wZXJhdGlvbnMsZD11LmdldFByZXZpb3VzQmxvY2soci5pZCk7aWYoZCl7bGV0IGg9WyJkaXZpZGVyIiwiaW1hZ2UiLCJ5b3V0dWJlIiwiYXR0YWNobWVudCJdO2F3YWl0IHUuZm9jdXNCbG9jayhkLmlkLGguaW5jbHVkZXMoZC50eXBlKT92b2lkIDA6ImVuZCIpfX19YXN5bmMgaGFuZGxlQXJyb3dEb3duKHQscil7aWYoWyJkaXZpZGVyIiwiaW1hZ2UiLCJ5b3V0dWJlIiwiYXR0YWNobWVudCJdLmluY2x1ZGVzKHIudHlwZSkpe3QucHJldmVudERlZmF1bHQoKTtsZXQgdT10aGlzLmNvbXBvbmVudC5ibG9ja09wZXJhdGlvbnMsZD11LmdldE5leHRCbG9jayhyLmlkKTtpZihkKXtsZXQgaD1bImRpdmlkZXIiLCJpbWFnZSIsInlvdXR1YmUiLCJhdHRhY2htZW50Il07YXdhaXQgdS5mb2N1c0Jsb2NrKGQuaWQsaC5pbmNsdWRlcyhkLnR5cGUpP3ZvaWQgMDoic3RhcnQiKX1yZXR1cm59bGV0IG49dGhpcy5jb21wb25lbnQuc2hhZG93Um9vdD8ucXVlcnlTZWxlY3RvcihgW2RhdGEtYmxvY2staWQ9IiR7ci5pZH0iXWApPy5xdWVyeVNlbGVjdG9yKCJkZWVzLXd5c2l3eWctYmxvY2siKTtpZighbnx8IW4uc2hhZG93Um9vdClyZXR1cm47bGV0IG89ci50eXBlPT09ImNvZGUiP24uc2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yKCIuY29kZS1lZGl0b3IiKTpuLnNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvcigiLmJsb2NrIik7aWYoIW8pcmV0dXJuO2xldCBzPW4uY2xvc2VzdCgiZGVlcy1pbnB1dC13eXNpd3lnIiksbD1bXTtzPy5zaGFkb3dSb290JiZsLnB1c2gocy5zaGFkb3dSb290KSxsLnB1c2gobi5zaGFkb3dSb290KTtsZXQgYz1ZZS5nZXRTZWxlY3Rpb25JbmZvKC4uLmwpO2lmKCEoIWN8fCFjLmNvbGxhcHNlZCkmJnRoaXMuaXNPbkxhc3RMaW5lKGMsbywuLi5sKSl7dC5wcmV2ZW50RGVmYXVsdCgpO2xldCB1PXRoaXMuY29tcG9uZW50LmJsb2NrT3BlcmF0aW9ucyxkPXUuZ2V0TmV4dEJsb2NrKHIuaWQpO2lmKGQpe2xldCBoPVsiZGl2aWRlciIsImltYWdlIiwieW91dHViZSIsImF0dGFjaG1lbnQiXTthd2FpdCB1LmZvY3VzQmxvY2soZC5pZCxoLmluY2x1ZGVzKGQudHlwZSk/dm9pZCAwOiJzdGFydCIpfX19Z2V0TGFzdFRleHROb2RlKHQpe2lmKHQubm9kZVR5cGU9PT1Ob2RlLlRFWFRfTk9ERSlyZXR1cm4gdDtmb3IobGV0IHI9dC5jaGlsZE5vZGVzLmxlbmd0aC0xO3I+PTA7ci0tKXtsZXQgaT10aGlzLmdldExhc3RUZXh0Tm9kZSh0LmNoaWxkTm9kZXNbcl0pO2lmKGkpcmV0dXJuIGl9cmV0dXJuIG51bGx9YXN5bmMgaGFuZGxlQXJyb3dMZWZ0KHQscil7aWYoWyJkaXZpZGVyIiwiaW1hZ2UiLCJ5b3V0dWJlIiwiYXR0YWNobWVudCJdLmluY2x1ZGVzKHIudHlwZSkpe3QucHJldmVudERlZmF1bHQoKTtsZXQgZD10aGlzLmNvbXBvbmVudC5ibG9ja09wZXJhdGlvbnMsaD1kLmdldFByZXZpb3VzQmxvY2soci5pZCk7aWYoaCl7bGV0IGY9WyJkaXZpZGVyIiwiaW1hZ2UiLCJ5b3V0dWJlIiwiYXR0YWNobWVudCJdO2F3YWl0IGQuZm9jdXNCbG9jayhoLmlkLGYuaW5jbHVkZXMoaC50eXBlKT92b2lkIDA6ImVuZCIpfXJldHVybn1sZXQgbj10aGlzLmNvbXBvbmVudC5zaGFkb3dSb290Py5xdWVyeVNlbGVjdG9yKGBbZGF0YS1ibG9jay1pZD0iJHtyLmlkfSJdYCk/LnF1ZXJ5U2VsZWN0b3IoImRlZXMtd3lzaXd5Zy1ibG9jayIpO2lmKCFufHwhbi5zaGFkb3dSb290KXJldHVybjtsZXQgbz1yLnR5cGU9PT0iY29kZSI/bi5zaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3IoIi5jb2RlLWVkaXRvciIpOm4uc2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yKCIuYmxvY2siKTtpZighbylyZXR1cm47bGV0IHM9bi5jbG9zZXN0KCJkZWVzLWlucHV0LXd5c2l3eWciKSxsPVtdO3M/LnNoYWRvd1Jvb3QmJmwucHVzaChzLnNoYWRvd1Jvb3QpLGwucHVzaChuLnNoYWRvd1Jvb3QpO2xldCBjPVllLmdldFNlbGVjdGlvbkluZm8oLi4ubCk7aWYoIWN8fCFjLmNvbGxhcHNlZClyZXR1cm47aWYoWWUuZ2V0Q3Vyc29yUG9zaXRpb25JbkVsZW1lbnQobywuLi5sKT09PTApe2xldCBkPXRoaXMuY29tcG9uZW50LmJsb2NrT3BlcmF0aW9ucyxoPWQuZ2V0UHJldmlvdXNCbG9jayhyLmlkKTtpZihoKXt0LnByZXZlbnREZWZhdWx0KCk7bGV0IHg9WyJkaXZpZGVyIiwiaW1hZ2UiLCJ5b3V0dWJlIiwiYXR0YWNobWVudCJdLmluY2x1ZGVzKGgudHlwZSk/dm9pZCAwOiJlbmQiO2F3YWl0IGQuZm9jdXNCbG9jayhoLmlkLHgpfX19YXN5bmMgaGFuZGxlQXJyb3dSaWdodCh0LHIpe2lmKFsiZGl2aWRlciIsImltYWdlIiwieW91dHViZSIsImF0dGFjaG1lbnQiXS5pbmNsdWRlcyhyLnR5cGUpKXt0LnByZXZlbnREZWZhdWx0KCk7bGV0IGg9dGhpcy5jb21wb25lbnQuYmxvY2tPcGVyYXRpb25zLGY9aC5nZXROZXh0QmxvY2soci5pZCk7aWYoZil7bGV0IHg9WyJkaXZpZGVyIiwiaW1hZ2UiLCJ5b3V0dWJlIiwiYXR0YWNobWVudCJdO2F3YWl0IGguZm9jdXNCbG9jayhmLmlkLHguaW5jbHVkZXMoZi50eXBlKT92b2lkIDA6InN0YXJ0Iil9cmV0dXJufWxldCBuPXRoaXMuY29tcG9uZW50LnNoYWRvd1Jvb3Q/LnF1ZXJ5U2VsZWN0b3IoYFtkYXRhLWJsb2NrLWlkPSIke3IuaWR9Il1gKT8ucXVlcnlTZWxlY3RvcigiZGVlcy13eXNpd3lnLWJsb2NrIik7aWYoIW58fCFuLnNoYWRvd1Jvb3QpcmV0dXJuO2xldCBvPXIudHlwZT09PSJjb2RlIj9uLnNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvcigiLmNvZGUtZWRpdG9yIik6bi5zaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3IoIi5ibG9jayIpO2lmKCFvKXJldHVybjtsZXQgcz1uLmNsb3Nlc3QoImRlZXMtaW5wdXQtd3lzaXd5ZyIpLGw9W107cz8uc2hhZG93Um9vdCYmbC5wdXNoKHMuc2hhZG93Um9vdCksbC5wdXNoKG4uc2hhZG93Um9vdCk7bGV0IGM9WWUuZ2V0U2VsZWN0aW9uSW5mbyguLi5sKTtpZighY3x8IWMuY29sbGFwc2VkKXJldHVybjtsZXQgdT1ZZS5nZXRDdXJzb3JQb3NpdGlvbkluRWxlbWVudChvLC4uLmwpLGQ9by50ZXh0Q29udGVudD8ubGVuZ3RofHwwO2lmKHU9PT1kKXtsZXQgaD10aGlzLmNvbXBvbmVudC5ibG9ja09wZXJhdGlvbnMsZj1oLmdldE5leHRCbG9jayhyLmlkKTtpZihmKXt0LnByZXZlbnREZWZhdWx0KCk7bGV0IHg9WyJkaXZpZGVyIiwiaW1hZ2UiLCJ5b3V0dWJlIiwiYXR0YWNobWVudCJdO2F3YWl0IGguZm9jdXNCbG9jayhmLmlkLHguaW5jbHVkZXMoZi50eXBlKT92b2lkIDA6InN0YXJ0Iil9fX1pc09uRmlyc3RMaW5lKHQsciwuLi5pKXt0cnl7bGV0IGE9WWUuY3JlYXRlUmFuZ2VGcm9tSW5mbyh0KSxuPWEuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCksbz1hLmNvbW1vbkFuY2VzdG9yQ29udGFpbmVyO28ubm9kZVR5cGU9PT1Ob2RlLlRFWFRfTk9ERSYmKG89by5wYXJlbnRFbGVtZW50KTtsZXQgcz1vLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLGw9bi50b3Atcy50b3A8NTtyZXR1cm4gby50ZXh0Q29udGVudCYmIW8udGV4dENvbnRlbnQuaW5jbHVkZXMoYApgKT9ZZS5nZXRDdXJzb3JQb3NpdGlvbkluRWxlbWVudChvLC4uLmkpPT09MDpsfWNhdGNoKGEpe3JldHVybiBjb25zb2xlLndhcm4oIkVycm9yIGNoZWNraW5nIGZpcnN0IGxpbmU6IixhKSx0LnN0YXJ0T2Zmc2V0PT09MH19aXNPbkxhc3RMaW5lKHQsciwuLi5pKXt0cnl7bGV0IGE9WWUuY3JlYXRlUmFuZ2VGcm9tSW5mbyh0KSxuPWEuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCksbz1hLmNvbW1vbkFuY2VzdG9yQ29udGFpbmVyO28ubm9kZVR5cGU9PT1Ob2RlLlRFWFRfTk9ERSYmKG89by5wYXJlbnRFbGVtZW50KTtsZXQgbD1vLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLmJvdHRvbS1uLmJvdHRvbTw1O2lmKG8udGV4dENvbnRlbnQmJiFvLnRleHRDb250ZW50LmluY2x1ZGVzKGAKYCkpe2xldCBjPXIudGV4dENvbnRlbnQ/Lmxlbmd0aHx8MDtyZXR1cm4gWWUuZ2V0Q3Vyc29yUG9zaXRpb25JbkVsZW1lbnQociwuLi5pKT09PWN9cmV0dXJuIGx9Y2F0Y2goYSl7Y29uc29sZS53YXJuKCJFcnJvciBjaGVja2luZyBsYXN0IGxpbmU6IixhKTtsZXQgbj1yLnRleHRDb250ZW50Py5sZW5ndGh8fDA7cmV0dXJuIFllLmdldEN1cnNvclBvc2l0aW9uSW5FbGVtZW50KHIsLi4uaSk9PT1ufX19fSk7dmFyIEliLHU0cj1wKCgpPT57Q24oKTtsaCgpO0liPWNsYXNze2NvbXBvbmVudDtkcmFnZ2VkQmxvY2tJZD1udWxsO2RyYWdPdmVyQmxvY2tJZD1udWxsO2RyYWdPdmVyUG9zaXRpb249bnVsbDtkcm9wSW5kaWNhdG9yPW51bGw7aW5pdGlhbE1vdXNlWT0wO2luaXRpYWxCbG9ja1k9MDtkcmFnZ2VkQmxvY2tFbGVtZW50PW51bGw7ZHJhZ2dlZEJsb2NrSGVpZ2h0PTA7ZHJhZ2dlZEJsb2NrQ29udGVudEhlaWdodD0wO2RyYWdnZWRCbG9ja01hcmdpblRvcD0wO2xhc3RVcGRhdGVUaW1lPTA7dXBkYXRlVGhyb3R0bGU9ODA7Y29uc3RydWN0b3IodCl7dGhpcy5jb21wb25lbnQ9dH1nZXQgZHJhZ1N0YXRlKCl7cmV0dXJue2RyYWdnZWRCbG9ja0lkOnRoaXMuZHJhZ2dlZEJsb2NrSWQsZHJhZ092ZXJCbG9ja0lkOnRoaXMuZHJhZ092ZXJCbG9ja0lkLGRyYWdPdmVyUG9zaXRpb246dGhpcy5kcmFnT3ZlclBvc2l0aW9ufX1oYW5kbGVEcmFnU3RhcnQodCxyKXtpZighdC5kYXRhVHJhbnNmZXIpcmV0dXJuO3RoaXMuZHJhZ2dlZEJsb2NrSWQ9ci5pZCx0LmRhdGFUcmFuc2Zlci5lZmZlY3RBbGxvd2VkPSJtb3ZlIix0LmRhdGFUcmFuc2Zlci5zZXREYXRhKCJ0ZXh0L3BsYWluIixyLmlkKTtsZXQgaT1uZXcgSW1hZ2U7aWYoaS5zcmM9ImRhdGE6aW1hZ2UvZ2lmO2Jhc2U2NCxSMGxHT0RsaEFRQUJBSUFBQUFVRUJBQUFBQ3dBQUFBQUFRQUJBQUFDQWtRQkFEcz0iLHQuZGF0YVRyYW5zZmVyLnNldERyYWdJbWFnZShpLDAsMCksdGhpcy5pbml0aWFsTW91c2VZPXQuY2xpZW50WSx0aGlzLmRyYWdnZWRCbG9ja0VsZW1lbnQ9dGhpcy5jb21wb25lbnQuZWRpdG9yQ29udGVudFJlZi5xdWVyeVNlbGVjdG9yKGBbZGF0YS1ibG9jay1pZD0iJHtyLmlkfSJdYCksdGhpcy5kcmFnZ2VkQmxvY2tFbGVtZW50KXtsZXQgYT10aGlzLmRyYWdnZWRCbG9ja0VsZW1lbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7dGhpcy5pbml0aWFsQmxvY2tZPWEudG9wO2xldCBuPXRoaXMuZHJhZ2dlZEJsb2NrRWxlbWVudC5xdWVyeVNlbGVjdG9yKCIuYmxvY2siKTtpZihuKXtsZXQgbz1uLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLHM9d2luZG93LmdldENvbXB1dGVkU3R5bGUobik7dGhpcy5kcmFnZ2VkQmxvY2tNYXJnaW5Ub3A9cGFyc2VJbnQocy5tYXJnaW5Ub3ApfHwwLHRoaXMuZHJhZ2dlZEJsb2NrQ29udGVudEhlaWdodD1vLmhlaWdodH10aGlzLmRyYWdnZWRCbG9ja0hlaWdodD1hLmhlaWdodCxjb25zb2xlLmxvZygiRHJhZyBtZWFzdXJlbWVudHM6Iix7d3JhcHBlckhlaWdodDphLmhlaWdodCxtYXJnaW5Ub3A6dGhpcy5kcmFnZ2VkQmxvY2tNYXJnaW5Ub3AsZHJvcEluZGljYXRvckhlaWdodDp0aGlzLmRyYWdnZWRCbG9ja0hlaWdodCxjb250ZW50SGVpZ2h0OnRoaXMuZHJhZ2dlZEJsb2NrQ29udGVudEhlaWdodCxibG9ja0lkOnIuaWR9KSx0aGlzLmNyZWF0ZURyb3BJbmRpY2F0b3IoKSxkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCJkcmFnb3ZlciIsdGhpcy5oYW5kbGVHbG9iYWxEcmFnT3ZlciksZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigiZHJhZ2VuZCIsdGhpcy5oYW5kbGVHbG9iYWxEcmFnRW5kKX10aGlzLmNvbXBvbmVudC5kcmFnZ2VkQmxvY2tJZD10aGlzLmRyYWdnZWRCbG9ja0lkLHNldFRpbWVvdXQoKCk9Pnt0aGlzLmRyYWdnZWRCbG9ja0VsZW1lbnQmJnRoaXMuZHJhZ2dlZEJsb2NrRWxlbWVudC5jbGFzc0xpc3QuYWRkKCJkcmFnZ2luZyIpLHRoaXMuY29tcG9uZW50LmVkaXRvckNvbnRlbnRSZWYmJnRoaXMuY29tcG9uZW50LmVkaXRvckNvbnRlbnRSZWYuY2xhc3NMaXN0LmFkZCgiZHJhZ2dpbmciKX0sMTApfWhhbmRsZURyYWdFbmQoKXt0aGlzLmNvbXBvbmVudC5lZGl0b3JDb250ZW50UmVmLnF1ZXJ5U2VsZWN0b3JBbGwoIi5ibG9jay13cmFwcGVyIikuZm9yRWFjaChyPT57ci5jbGFzc0xpc3QucmVtb3ZlKCJkcmFnZ2luZyIsIm1vdmUtdXAiLCJtb3ZlLWRvd24iKSxyLnN0eWxlLnJlbW92ZVByb3BlcnR5KCItLWRyYWctb2Zmc2V0Iiksci5zdHlsZS5yZW1vdmVQcm9wZXJ0eSgidHJhbnNmb3JtIil9KSx0aGlzLmNvbXBvbmVudC5lZGl0b3JDb250ZW50UmVmJiZ0aGlzLmNvbXBvbmVudC5lZGl0b3JDb250ZW50UmVmLmNsYXNzTGlzdC5yZW1vdmUoImRyYWdnaW5nIiksdGhpcy5kcmFnZ2VkQmxvY2tJZD1udWxsLHRoaXMuZHJhZ092ZXJCbG9ja0lkPW51bGwsdGhpcy5kcmFnT3ZlclBvc2l0aW9uPW51bGwsdGhpcy5kcmFnZ2VkQmxvY2tFbGVtZW50PW51bGwsdGhpcy5kcmFnZ2VkQmxvY2tIZWlnaHQ9MCx0aGlzLmRyYWdnZWRCbG9ja0NvbnRlbnRIZWlnaHQ9MCx0aGlzLmRyYWdnZWRCbG9ja01hcmdpblRvcD0wLHRoaXMuaW5pdGlhbEJsb2NrWT0wLHRoaXMuY29tcG9uZW50LmRyYWdnZWRCbG9ja0lkPW51bGwsdGhpcy5jb21wb25lbnQuZHJhZ092ZXJCbG9ja0lkPW51bGwsdGhpcy5jb21wb25lbnQuZHJhZ092ZXJQb3NpdGlvbj1udWxsfWhhbmRsZURyYWdPdmVyKHQscil7aWYodC5wcmV2ZW50RGVmYXVsdCgpLCF0LmRhdGFUcmFuc2Zlcnx8IXRoaXMuZHJhZ2dlZEJsb2NrSWR8fHRoaXMuZHJhZ2dlZEJsb2NrSWQ9PT1yLmlkKXJldHVybjt0LmRhdGFUcmFuc2Zlci5kcm9wRWZmZWN0PSJtb3ZlIjtsZXQgaT10LmN1cnJlbnRUYXJnZXQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCksYT1pLnRvcCtpLmhlaWdodC8yO3RoaXMuZHJhZ092ZXJCbG9ja0lkPXIuaWQsdGhpcy5kcmFnT3ZlclBvc2l0aW9uPXQuY2xpZW50WTxhPyJiZWZvcmUiOiJhZnRlciIsdGhpcy5jb21wb25lbnQuZHJhZ092ZXJCbG9ja0lkPXRoaXMuZHJhZ092ZXJCbG9ja0lkLHRoaXMuY29tcG9uZW50LmRyYWdPdmVyUG9zaXRpb249dGhpcy5kcmFnT3ZlclBvc2l0aW9ufWhhbmRsZURyYWdMZWF2ZSh0KXt0aGlzLmRyYWdPdmVyQmxvY2tJZD09PXQuaWQmJih0aGlzLmRyYWdPdmVyQmxvY2tJZD1udWxsLHRoaXMuZHJhZ092ZXJQb3NpdGlvbj1udWxsLHRoaXMuY29tcG9uZW50LmRyYWdPdmVyQmxvY2tJZD1udWxsLHRoaXMuY29tcG9uZW50LmRyYWdPdmVyUG9zaXRpb249bnVsbCl9aGFuZGxlRHJvcCh0LHIpe3QucHJldmVudERlZmF1bHQoKSwhKCF0aGlzLmRyYWdnZWRCbG9ja0lkfHx0aGlzLmRyYWdnZWRCbG9ja0lkPT09ci5pZCkmJnRoaXMuY29tcG9uZW50LmhhbmRsZURyb3AodCxyKX1pc0RyYWdnaW5nKHQpe3JldHVybiB0aGlzLmRyYWdnZWRCbG9ja0lkPT09dH1pc0RyYWdPdmVyKHQpe3JldHVybiB0aGlzLmRyYWdPdmVyQmxvY2tJZD09PXR9Z2V0RHJhZ092ZXJDbGFzc2VzKHQpe3JldHVybiB0aGlzLmlzRHJhZ092ZXIodCk/dGhpcy5kcmFnT3ZlclBvc2l0aW9uPT09ImJlZm9yZSI/ImRyYWctb3Zlci1iZWZvcmUiOiJkcmFnLW92ZXItYWZ0ZXIiOiIifWNyZWF0ZURyb3BJbmRpY2F0b3IoKXt0aGlzLmRyb3BJbmRpY2F0b3I9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2IiksdGhpcy5kcm9wSW5kaWNhdG9yLmNsYXNzTmFtZT0iZHJvcC1pbmRpY2F0b3IiLHRoaXMuZHJvcEluZGljYXRvci5zdHlsZS5kaXNwbGF5PSJub25lIix0aGlzLmNvbXBvbmVudC5lZGl0b3JDb250ZW50UmVmLmFwcGVuZENoaWxkKHRoaXMuZHJvcEluZGljYXRvcil9aGFuZGxlR2xvYmFsRHJhZ092ZXI9dD0+e2lmKHQucHJldmVudERlZmF1bHQoKSwhdGhpcy5kcmFnZ2VkQmxvY2tFbGVtZW50KXJldHVybjtsZXQgcj10LmNsaWVudFktdGhpcy5pbml0aWFsTW91c2VZO3RoaXMuZHJhZ2dlZEJsb2NrRWxlbWVudC5zdHlsZS50cmFuc2Zvcm09YHRyYW5zbGF0ZVkoJHtyfXB4KWA7bGV0IGk9RGF0ZS5ub3coKTtpLXRoaXMubGFzdFVwZGF0ZVRpbWU8dGhpcy51cGRhdGVUaHJvdHRsZXx8KHRoaXMubGFzdFVwZGF0ZVRpbWU9aSx0aGlzLnVwZGF0ZUJsb2NrUG9zaXRpb25zKHQuY2xpZW50WSkpfTt1cGRhdGVCbG9ja1Bvc2l0aW9ucyh0KXtsZXQgcj1BcnJheS5mcm9tKHRoaXMuY29tcG9uZW50LmVkaXRvckNvbnRlbnRSZWYucXVlcnlTZWxlY3RvckFsbCgiLmJsb2NrLXdyYXBwZXIiKSksaT1yLmZpbmRJbmRleChuPT5uLmdldEF0dHJpYnV0ZSgiZGF0YS1ibG9jay1pZCIpPT09dGhpcy5kcmFnZ2VkQmxvY2tJZCk7aWYoaT09PS0xKXJldHVybjtyLmZvckVhY2gobj0+e24uZ2V0QXR0cmlidXRlKCJkYXRhLWJsb2NrLWlkIikhPT10aGlzLmRyYWdnZWRCbG9ja0lkJiYobi5jbGFzc0xpc3QucmVtb3ZlKCJtb3ZlLXVwIiwibW92ZS1kb3duIiksbi5zdHlsZS5yZW1vdmVQcm9wZXJ0eSgiLS1kcmFnLW9mZnNldCIpKX0pO2xldCBhPXIubGVuZ3RoO2ZvcihsZXQgbj0wO248ci5sZW5ndGg7bisrKXtpZihuPT09aSljb250aW51ZTtsZXQgcz1yW25dLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLGw9cy50b3A7aWYodDxsK3MuaGVpZ2h0Ki41KXthPW47YnJlYWt9fWZvcihsZXQgbj0wO248ci5sZW5ndGg7bisrKXtpZihuPT09aSljb250aW51ZTtsZXQgbz1yW25dO2k8YT9uPmkmJm48YSYmKG8uY2xhc3NMaXN0LmFkZCgibW92ZS11cCIpLG8uc3R5bGUuc2V0UHJvcGVydHkoIi0tZHJhZy1vZmZzZXQiLGAke3RoaXMuZHJhZ2dlZEJsb2NrSGVpZ2h0fXB4YCkpOmk+YSYmbj49YSYmbjxpJiYoby5jbGFzc0xpc3QuYWRkKCJtb3ZlLWRvd24iKSxvLnN0eWxlLnNldFByb3BlcnR5KCItLWRyYWctb2Zmc2V0IixgJHt0aGlzLmRyYWdnZWRCbG9ja0hlaWdodH1weGApKX10aGlzLnVwZGF0ZURyb3BJbmRpY2F0b3IocixhLGkpfXVwZGF0ZURyb3BJbmRpY2F0b3IodCxyLGkpe2lmKCF0aGlzLmRyb3BJbmRpY2F0b3J8fCF0aGlzLmRyYWdnZWRCbG9ja0VsZW1lbnQpcmV0dXJuO3RoaXMuZHJvcEluZGljYXRvci5zdHlsZS5kaXNwbGF5PSJibG9jayI7bGV0IGE9dGhpcy5jb21wb25lbnQuZWRpdG9yQ29udGVudFJlZi5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKSxuPTAsbz1bXTtmb3IobGV0IGM9MDtjPHQubGVuZ3RoO2MrKyl7aWYoYz09PWkpY29udGludWU7bGV0IHU9dFtjXSxkPXUuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCksaD1kLnRvcC1hLnRvcCxmPWQuYm90dG9tLWEudG9wLHg9d2luZG93LmdldENvbXB1dGVkU3R5bGUodSkudHJhbnNmb3JtO2lmKHgmJnghPT0ibm9uZSIpe2xldCBiPW5ldyBET01NYXRyaXgoeCkubTQyO2grPWIsZis9Yn1vLnB1c2goe2luZGV4OmMsdG9wOmgsYm90dG9tOmZ9KX1vLnNvcnQoKGMsdSk9PmMudG9wLXUudG9wKTtsZXQgcz1yO3I+aSYmcy0tO2xldCBsPTE2O2lmKHRoaXMuZHJhZ2dlZEJsb2NrRWxlbWVudCl7bGV0IGM9dGhpcy5jb21wb25lbnQuYmxvY2tzLmZpbmQodT0+dS5pZD09PXRoaXMuZHJhZ2dlZEJsb2NrSWQpO2lmKGMpe2xldCB1PWMudHlwZTt1PT09ImhlYWRpbmctMSJ8fHU9PT0iaGVhZGluZy0yInx8dT09PSJoZWFkaW5nLTMiP2w9MjQ6KHU9PT0iY29kZSJ8fHU9PT0icXVvdGUiKSYmKGw9MjApfX1pZihzPT09MCluPTA7ZWxzZSBpZihzPj1vLmxlbmd0aCl7bGV0IGM9b1tvLmxlbmd0aC0xXTtjJiYobj1jLmJvdHRvbSxuKz1sKX1lbHNle2xldCBjPW9bcy0xXTtjJiYobj1jLmJvdHRvbSxuKz1sKX10aGlzLmRyb3BJbmRpY2F0b3Iuc3R5bGUuaGVpZ2h0PWAke3RoaXMuZHJhZ2dlZEJsb2NrSGVpZ2h0fXB4YCx0aGlzLmRyb3BJbmRpY2F0b3Iuc3R5bGUudG9wPWAke01hdGgubWF4KDAsbil9cHhgLGNvbnNvbGUubG9nKCJEcm9wIGluZGljYXRvciB1cGRhdGU6Iix7dGFyZ2V0SW5kZXg6cixhZGp1c3RlZFRhcmdldEluZGV4OnMsZHJhZ2dlZEluZGV4OmksdG9wUG9zaXRpb246bixoZWlnaHQ6dGhpcy5kcmFnZ2VkQmxvY2tIZWlnaHQsYmxvY2tNYXJnaW46bCx2aXN1YWxCbG9ja3M6by5tYXAoYz0+KHtpbmRleDpjLmluZGV4LHRvcDpjLnRvcCxib3R0b206Yy5ib3R0b219KSl9KX1oYW5kbGVHbG9iYWxEcmFnRW5kPSgpPT57ZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcigiZHJhZ292ZXIiLHRoaXMuaGFuZGxlR2xvYmFsRHJhZ092ZXIpLGRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoImRyYWdlbmQiLHRoaXMuaGFuZGxlR2xvYmFsRHJhZ0VuZCksdGhpcy5kcm9wSW5kaWNhdG9yJiYodGhpcy5kcm9wSW5kaWNhdG9yLnJlbW92ZSgpLHRoaXMuZHJvcEluZGljYXRvcj1udWxsKSx0aGlzLmRyYWdnZWRCbG9ja0lkP3JlcXVlc3RBbmltYXRpb25GcmFtZSgoKT0+e3RoaXMucGVyZm9ybURyb3AoKSx0aGlzLmhhbmRsZURyYWdFbmQoKX0pOnRoaXMuaGFuZGxlRHJhZ0VuZCgpfTtwZXJmb3JtRHJvcCgpe2lmKCF0aGlzLmRyYWdnZWRCbG9ja0lkKXJldHVybjtsZXQgdD1BcnJheS5mcm9tKHRoaXMuY29tcG9uZW50LmVkaXRvckNvbnRlbnRSZWYucXVlcnlTZWxlY3RvckFsbCgiLmJsb2NrLXdyYXBwZXIiKSk7aWYoIXQuZmluZCh1PT51LmdldEF0dHJpYnV0ZSgiZGF0YS1ibG9jay1pZCIpPT09dGhpcy5kcmFnZ2VkQmxvY2tJZCkpcmV0dXJuO2xldCBpPXQubWFwKHU9PntsZXQgZD11LmdldEF0dHJpYnV0ZSgiZGF0YS1ibG9jay1pZCIpLGg9dS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKSxmPWgudG9wK2guaGVpZ2h0LzI7cmV0dXJue2lkOmQsY2VudGVyWTpmLGVsZW1lbnQ6dX19KTtpLnNvcnQoKHUsZCk9PnUuY2VudGVyWS1kLmNlbnRlclkpO2xldCBhPWkubWFwKHU9PnUuaWQpLmZpbHRlcih1PT51IT09bnVsbCksbj1bLi4udGhpcy5jb21wb25lbnQuYmxvY2tzXSxvPW4uZmluZCh1PT51LmlkPT09dGhpcy5kcmFnZ2VkQmxvY2tJZCk7aWYoIW8pcmV0dXJuO2xldCBzPW4ubWFwKHU9PnUuaWQpO2lmKCEhYS5ldmVyeSgodSxkKT0+dT09PXNbZF0pKXJldHVybjtsZXQgYz1hLm1hcCh1PT5uLmZpbmQoZD0+ZC5pZD09PXUpKS5maWx0ZXIoQm9vbGVhbik7dGhpcy5jb21wb25lbnQuYmxvY2tzPWMsdGhpcy5jb21wb25lbnQucmVuZGVyQmxvY2tzUHJvZ3JhbW1hdGljYWxseSgpLHRoaXMuY29tcG9uZW50LnVwZGF0ZVZhbHVlKCksc2V0VGltZW91dCgoKT0+e28udHlwZSE9PSJkaXZpZGVyIiYmdGhpcy5jb21wb25lbnQuYmxvY2tPcGVyYXRpb25zLmZvY3VzQmxvY2soby5pZCl9LDEwMCl9fX0pO3ZhciBQYixwNHI9cCgoKT0+e0NuKCk7UGI9Y2xhc3N7aGlzdG9yeT1bXTtjdXJyZW50SW5kZXg9LTE7bWF4SGlzdG9yeVNpemU9NTA7bGFzdFNhdmVUaW1lPTA7c2F2ZURlYm91bmNlTXM9NTAwO2NvbnN0cnVjdG9yKCl7dGhpcy5oaXN0b3J5PVtdLHRoaXMuY3VycmVudEluZGV4PS0xfXNhdmVTdGF0ZSh0LHIsaSl7bGV0IGE9RGF0ZS5ub3coKTtpZihhLXRoaXMubGFzdFNhdmVUaW1lPHRoaXMuc2F2ZURlYm91bmNlTXMmJnRoaXMuY3VycmVudEluZGV4Pj0wKXt0aGlzLmhpc3RvcnlbdGhpcy5jdXJyZW50SW5kZXhdPXtibG9ja3M6dGhpcy5jbG9uZUJsb2Nrcyh0KSxzZWxlY3RlZEJsb2NrSWQ6cixjdXJzb3JQb3NpdGlvbjppP3suLi5pfTp2b2lkIDAsdGltZXN0YW1wOmF9O3JldHVybn10aGlzLmN1cnJlbnRJbmRleDx0aGlzLmhpc3RvcnkubGVuZ3RoLTEmJih0aGlzLmhpc3Rvcnk9dGhpcy5oaXN0b3J5LnNsaWNlKDAsdGhpcy5jdXJyZW50SW5kZXgrMSkpO2xldCBuPXtibG9ja3M6dGhpcy5jbG9uZUJsb2Nrcyh0KSxzZWxlY3RlZEJsb2NrSWQ6cixjdXJzb3JQb3NpdGlvbjppP3suLi5pfTp2b2lkIDAsdGltZXN0YW1wOmF9O3RoaXMuaGlzdG9yeS5wdXNoKG4pLHRoaXMuY3VycmVudEluZGV4KyssdGhpcy5oaXN0b3J5Lmxlbmd0aD50aGlzLm1heEhpc3RvcnlTaXplJiYodGhpcy5oaXN0b3J5LnNoaWZ0KCksdGhpcy5jdXJyZW50SW5kZXgtLSksdGhpcy5sYXN0U2F2ZVRpbWU9YX1zYXZlQ2hlY2twb2ludCh0LHIsaSl7dGhpcy5sYXN0U2F2ZVRpbWU9MCx0aGlzLnNhdmVTdGF0ZSh0LHIsaSl9dW5kbygpe3JldHVybiB0aGlzLmNhblVuZG8oKT8odGhpcy5jdXJyZW50SW5kZXgtLSx0aGlzLmNsb25lU3RhdGUodGhpcy5oaXN0b3J5W3RoaXMuY3VycmVudEluZGV4XSkpOm51bGx9cmVkbygpe3JldHVybiB0aGlzLmNhblJlZG8oKT8odGhpcy5jdXJyZW50SW5kZXgrKyx0aGlzLmNsb25lU3RhdGUodGhpcy5oaXN0b3J5W3RoaXMuY3VycmVudEluZGV4XSkpOm51bGx9Y2FuVW5kbygpe3JldHVybiB0aGlzLmN1cnJlbnRJbmRleD4wfWNhblJlZG8oKXtyZXR1cm4gdGhpcy5jdXJyZW50SW5kZXg8dGhpcy5oaXN0b3J5Lmxlbmd0aC0xfWdldEN1cnJlbnRTdGF0ZSgpe3JldHVybiB0aGlzLmN1cnJlbnRJbmRleD49MCYmdGhpcy5jdXJyZW50SW5kZXg8dGhpcy5oaXN0b3J5Lmxlbmd0aD90aGlzLmNsb25lU3RhdGUodGhpcy5oaXN0b3J5W3RoaXMuY3VycmVudEluZGV4XSk6bnVsbH1jbGVhcigpe3RoaXMuaGlzdG9yeT1bXSx0aGlzLmN1cnJlbnRJbmRleD0tMSx0aGlzLmxhc3RTYXZlVGltZT0wfWNsb25lQmxvY2tzKHQpe3JldHVybiB0Lm1hcChyPT4oey4uLnIsbWV0YWRhdGE6ci5tZXRhZGF0YT97Li4uci5tZXRhZGF0YX06dm9pZCAwfSkpfWNsb25lU3RhdGUodCl7cmV0dXJue2Jsb2Nrczp0aGlzLmNsb25lQmxvY2tzKHQuYmxvY2tzKSxzZWxlY3RlZEJsb2NrSWQ6dC5zZWxlY3RlZEJsb2NrSWQsY3Vyc29yUG9zaXRpb246dC5jdXJzb3JQb3NpdGlvbj97Li4udC5jdXJzb3JQb3NpdGlvbn06dm9pZCAwLHRpbWVzdGFtcDp0LnRpbWVzdGFtcH19Z2V0SGlzdG9yeUluZm8oKXtyZXR1cm57c2l6ZTp0aGlzLmhpc3RvcnkubGVuZ3RoLGN1cnJlbnRJbmRleDp0aGlzLmN1cnJlbnRJbmRleCxjYW5VbmRvOnRoaXMuY2FuVW5kbygpLGNhblJlZG86dGhpcy5jYW5SZWRvKCl9fX19KTt2YXIgTmIsQ2MsaDRyLGY0cj1wKCgpPT57eGUoKTtDbigpO3pjKCk7bmwoKTtpZGUoKTthZGUoKTtZZCgpO01pKCk7SmUoKTtOYj1mdW5jdGlvbihlLHQscixpLGEsbil7ZnVuY3Rpb24gbyh5KXtpZih5IT09dm9pZCAwJiZ0eXBlb2YgeSE9ImZ1bmN0aW9uIil0aHJvdyBuZXcgVHlwZUVycm9yKCJGdW5jdGlvbiBleHBlY3RlZCIpO3JldHVybiB5fWZvcih2YXIgcz1pLmtpbmQsbD1zPT09ImdldHRlciI/ImdldCI6cz09PSJzZXR0ZXIiPyJzZXQiOiJ2YWx1ZSIsYz0hdCYmZT9pLnN0YXRpYz9lOmUucHJvdG90eXBlOm51bGwsdT10fHwoYz9PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGMsaS5uYW1lKTp7fSksZCxoPSExLGY9ci5sZW5ndGgtMTtmPj0wO2YtLSl7dmFyIHg9e307Zm9yKHZhciB2IGluIGkpeFt2XT12PT09ImFjY2VzcyI/e306aVt2XTtmb3IodmFyIHYgaW4gaS5hY2Nlc3MpeC5hY2Nlc3Nbdl09aS5hY2Nlc3Nbdl07eC5hZGRJbml0aWFsaXplcj1mdW5jdGlvbih5KXtpZihoKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBhZGQgaW5pdGlhbGl6ZXJzIGFmdGVyIGRlY29yYXRpb24gaGFzIGNvbXBsZXRlZCIpO24ucHVzaChvKHl8fG51bGwpKX07dmFyIGI9KDAscltmXSkocz09PSJhY2Nlc3NvciI/e2dldDp1LmdldCxzZXQ6dS5zZXR9OnVbbF0seCk7aWYocz09PSJhY2Nlc3NvciIpe2lmKGI9PT12b2lkIDApY29udGludWU7aWYoYj09PW51bGx8fHR5cGVvZiBiIT0ib2JqZWN0Iil0aHJvdyBuZXcgVHlwZUVycm9yKCJPYmplY3QgZXhwZWN0ZWQiKTsoZD1vKGIuZ2V0KSkmJih1LmdldD1kKSwoZD1vKGIuc2V0KSkmJih1LnNldD1kKSwoZD1vKGIuaW5pdCkpJiZhLnVuc2hpZnQoZCl9ZWxzZShkPW8oYikpJiYocz09PSJmaWVsZCI/YS51bnNoaWZ0KGQpOnVbbF09ZCl9YyYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGMsaS5uYW1lLHUpLGg9ITB9LENjPWZ1bmN0aW9uKGUsdCxyKXtmb3IodmFyIGk9YXJndW1lbnRzLmxlbmd0aD4yLGE9MDthPHQubGVuZ3RoO2ErKylyPWk/dFthXS5jYWxsKGUscik6dFthXS5jYWxsKGUpO3JldHVybiBpP3I6dm9pZCAwfSxoNHI9KCgpPT57bGV0IGU9W3llKCJkZWVzLXd5c2l3eWctYmxvY2siKV0sdCxyPVtdLGksYT16ZSxuLG89W10scz1bXSxsLGM9W10sdT1bXSxkLGg9W10sZj1bXSx4LHY9W10sYj1bXTt2YXIgeT1jbGFzcyBleHRlbmRzIGF7c3RhdGlje2k9dGhpc31zdGF0aWN7bGV0IHc9dHlwZW9mIFN5bWJvbD09ImZ1bmN0aW9uIiYmU3ltYm9sLm1ldGFkYXRhP09iamVjdC5jcmVhdGUoYVtTeW1ib2wubWV0YWRhdGFdPz9udWxsKTp2b2lkIDA7bj1baih7dHlwZTpPYmplY3R9KV0sbD1baih7dHlwZTpCb29sZWFufSldLGQ9W2ooe3R5cGU6T2JqZWN0fSldLHg9W2ooe3R5cGU6T2JqZWN0fSldLE5iKHRoaXMsbnVsbCxuLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiYmxvY2siLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOms9PiJibG9jayJpbiBrLGdldDprPT5rLmJsb2NrLHNldDooayxPKT0+e2suYmxvY2s9T319LG1ldGFkYXRhOnd9LG8scyksTmIodGhpcyxudWxsLGwse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJpc1NlbGVjdGVkIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczprPT4iaXNTZWxlY3RlZCJpbiBrLGdldDprPT5rLmlzU2VsZWN0ZWQsc2V0OihrLE8pPT57ay5pc1NlbGVjdGVkPU99fSxtZXRhZGF0YTp3fSxjLHUpLE5iKHRoaXMsbnVsbCxkLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiaGFuZGxlcnMiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOms9PiJoYW5kbGVycyJpbiBrLGdldDprPT5rLmhhbmRsZXJzLHNldDooayxPKT0+e2suaGFuZGxlcnM9T319LG1ldGFkYXRhOnd9LGgsZiksTmIodGhpcyxudWxsLHgse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJ3eXNpd3lnQ29tcG9uZW50IixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczprPT4id3lzaXd5Z0NvbXBvbmVudCJpbiBrLGdldDprPT5rLnd5c2l3eWdDb21wb25lbnQsc2V0OihrLE8pPT57ay53eXNpd3lnQ29tcG9uZW50PU99fSxtZXRhZGF0YTp3fSx2LGIpLE5iKG51bGwsdD17dmFsdWU6aX0sZSx7a2luZDoiY2xhc3MiLG5hbWU6aS5uYW1lLG1ldGFkYXRhOnd9LG51bGwscikseT1pPXQudmFsdWUsdyYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGksU3ltYm9sLm1ldGFkYXRhLHtlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMCx2YWx1ZTp3fSl9YXN5bmMgZGlzY29ubmVjdGVkQ2FsbGJhY2soKXthd2FpdCBzdXBlci5kaXNjb25uZWN0ZWRDYWxsYmFjaygpLHRoaXMuX3NlbGVjdGlvbkhhbmRsZXImJmRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoInNlbGVjdGlvbmNoYW5nZSIsdGhpcy5fc2VsZWN0aW9uSGFuZGxlcil9I2U9Q2ModGhpcyxvLHZvaWQgMCk7Z2V0IGJsb2NrKCl7cmV0dXJuIHRoaXMuI2V9c2V0IGJsb2NrKHcpe3RoaXMuI2U9d30jdD0oQ2ModGhpcyxzKSxDYyh0aGlzLGMsITEpKTtnZXQgaXNTZWxlY3RlZCgpe3JldHVybiB0aGlzLiN0fXNldCBpc1NlbGVjdGVkKHcpe3RoaXMuI3Q9d30jcj0oQ2ModGhpcyx1KSxDYyh0aGlzLGgsdm9pZCAwKSk7Z2V0IGhhbmRsZXJzKCl7cmV0dXJuIHRoaXMuI3J9c2V0IGhhbmRsZXJzKHcpe3RoaXMuI3I9d30jaT0oQ2ModGhpcyxmKSxDYyh0aGlzLHYsdm9pZCAwKSk7Z2V0IHd5c2l3eWdDb21wb25lbnQoKXtyZXR1cm4gdGhpcy4jaX1zZXQgd3lzaXd5Z0NvbXBvbmVudCh3KXt0aGlzLiNpPXd9YmxvY2tFbGVtZW50PShDYyh0aGlzLGIpLG51bGwpO2NvbnRlbnRJbml0aWFsaXplZD0hMTtsYXN0S25vd25DdXJzb3JQb3NpdGlvbj0wO2xhc3RTZWxlY3RlZFRleHQ9IiI7aGFuZGxlclN0eWxlc0luamVjdGVkPSExO3N0YXRpYyBOT05fRURJVEFCTEVfVFlQRVM9WyJpbWFnZSIsImRpdmlkZXIiLCJ5b3V0dWJlIl07aW5qZWN0SGFuZGxlclN0eWxlcygpe2lmKHRoaXMuaGFuZGxlclN0eWxlc0luamVjdGVkKXJldHVybjt0aGlzLmhhbmRsZXJTdHlsZXNJbmplY3RlZD0hMDtsZXQgdz0iIixrPU5yLmdldEFsbFR5cGVzKCk7Zm9yKGxldCBPIG9mIGspe2xldCB6PU5yLmdldEhhbmRsZXIoTyk7eiYmKHcrPXouZ2V0U3R5bGVzKCkpfWlmKHcpe2xldCBPPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInN0eWxlIik7Ty50ZXh0Q29udGVudD13LHRoaXMuc2hhZG93Um9vdD8uYXBwZW5kQ2hpbGQoTyl9fXN0YXRpYyBzdHlsZXM9W0RlLG0uZGVmYXVsdFN0eWxlcyxvZWAKICAgICAgLyogVE9ETzogTWlncmF0ZSBoYXJkY29kZWQgdmFsdWVzIHRvIC0tZGVlcy0qIENTUyB2YXJpYWJsZXMgKi8KICAgICAgOmhvc3QgewogICAgICAgIGRpc3BsYXk6IGJsb2NrOwogICAgICB9CgogICAgICAuYmxvY2sgewogICAgICAgIHBhZGRpbmc6IDRweCAwOwogICAgICAgIG1pbi1oZWlnaHQ6IDEuNmVtOwogICAgICAgIG91dGxpbmU6IG5vbmU7CiAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgICAgd29yZC13cmFwOiBicmVhay13b3JkOwogICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC4xNXMgZWFzZTsKICAgICAgICBjb2xvcjogJHttLmJkVGhlbWUoIiMwMDAwMDAiLCIjZTBlMGUwIil9OwogICAgICB9CgogICAgICAuYmxvY2s6ZW1wdHk6bm90KDpmb2N1cyk6OmJlZm9yZSB7CiAgICAgICAgY29udGVudDogYXR0cihkYXRhLXBsYWNlaG9sZGVyKTsKICAgICAgICBjb2xvcjogJHttLmJkVGhlbWUoIiM5OTkiLCIjNjY2Iil9OwogICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTsKICAgICAgfQoKICAgICAgLyogQmxvY2stc3BlY2lmaWMgc3R5bGVzIG1vdmVkIHRvIGhhbmRsZXJzICovCgoKICAgICAgLyogRm9ybWF0dGluZyBzdHlsZXMgKi8KICAgICAgLmJsb2NrIDppcyhiLCBzdHJvbmcpIHsKICAgICAgICBmb250LXdlaWdodDogNjAwOwogICAgICAgIGNvbG9yOiAke20uYmRUaGVtZSgiIzAwMDAwMCIsIiNmZmZmZmYiKX07CiAgICAgIH0KCiAgICAgIC5ibG9jayA6aXMoaSwgZW0pIHsKICAgICAgICBmb250LXN0eWxlOiBpdGFsaWM7CiAgICAgIH0KCiAgICAgIC5ibG9jayB1IHsKICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTsKICAgICAgfQoKICAgICAgLmJsb2NrIHMgewogICAgICAgIHRleHQtZGVjb3JhdGlvbjogbGluZS10aHJvdWdoOwogICAgICB9CgogICAgICAuYmxvY2sgY29kZSB7CiAgICAgICAgZm9udC1mYW1pbHk6ICdTRiBNb25vJywgJ01vbmFjbycsICdJbmNvbnNvbGF0YScsICdGaXJhIENvZGUnLCBtb25vc3BhY2U7CiAgICAgICAgZm9udC1zaXplOiAwLjllbTsKICAgICAgICBiYWNrZ3JvdW5kOiAke20uYmRUaGVtZSgicmdiYSgwLCAwLCAwLCAwLjA2KSIsInJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xKSIpfTsKICAgICAgICBwYWRkaW5nOiAycHggNnB4OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDNweDsKICAgICAgICBjb2xvcjogJHttLmJkVGhlbWUoIiNkMTQiLCIjZmY2YjZiIil9OwogICAgICB9CgogICAgICAuYmxvY2sgYSB7CiAgICAgICAgY29sb3I6ICR7bS5iZFRoZW1lKCIjMDA2NmNjIiwiIzRkOTRmZiIpfTsKICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7CiAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIHRyYW5zcGFyZW50OwogICAgICAgIHRyYW5zaXRpb246IGJvcmRlci1jb2xvciAwLjE1cyBlYXNlOwogICAgICAgIGN1cnNvcjogcG9pbnRlcjsKICAgICAgfQoKICAgICAgLmJsb2NrIGE6aG92ZXIgewogICAgICAgIGJvcmRlci1ib3R0b20tY29sb3I6ICR7bS5iZFRoZW1lKCIjMDA2NmNjIiwiIzRkOTRmZiIpfTsKICAgICAgfQoKICAgICAgLyogQ29kZSBibG9jayBjb250YWluZXIgYW5kIGxhbmd1YWdlIHN0eWxlcyBtb3ZlZCB0byBoYW5kbGVyICovCgogICAgICAvKiBTZWxlY3Rpb24gc3R5bGVzICovCiAgICAgIC5ibG9jayA6OnNlbGVjdGlvbiB7CiAgICAgICAgYmFja2dyb3VuZDogJHttLmJkVGhlbWUoInJnYmEoMCwgMTAyLCAyMDQsIDAuMykiLCJyZ2JhKDc3LCAxNDgsIDI1NSwgMC4zKSIpfTsKICAgICAgICBjb2xvcjogaW5oZXJpdDsKICAgICAgfQoKCiAgICAgIC8qIFN0cmlrZSB0aHJvdWdoICovCiAgICAgIC5ibG9jayA6aXMocywgc3RyaWtlKSB7CiAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBsaW5lLXRocm91Z2g7CiAgICAgICAgb3BhY2l0eTogMC43OwogICAgICB9CgoKICAgICAgLyogQmxvY2sgbWFyZ2luIGFkanVzdG1lbnRzIGJhc2VkIG9uIHR5cGUgKi8KICAgICAgOmhvc3QtY29udGV4dCguYmxvY2std3JhcHBlcjpmaXJzdC1jaGlsZCkgLmJsb2NrIHsKICAgICAgICBtYXJnaW4tdG9wOiAwICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIDpob3N0LWNvbnRleHQoLmJsb2NrLXdyYXBwZXI6bGFzdC1jaGlsZCkgLmJsb2NrIHsKICAgICAgICBtYXJnaW4tYm90dG9tOiAwOwogICAgICB9CgogICAgICAvKiBTZWxlY3RlZCBzdGF0ZSAqLwogICAgICAuYmxvY2suc2VsZWN0ZWQgewogICAgICAgIGJhY2tncm91bmQ6ICR7bS5iZFRoZW1lKCJyZ2JhKDAsIDEwMiwgMjA0LCAwLjA1KSIsInJnYmEoNzcsIDE0OCwgMjU1LCAwLjA4KSIpfTsKICAgICAgICBib3gtc2hhZG93OiBpbnNldCAwIDAgMCAycHggJHttLmJkVGhlbWUoInJnYmEoMCwgMTAyLCAyMDQsIDAuMikiLCJyZ2JhKDc3LCAxNDgsIDI1NSwgMC4yKSIpfTsKICAgICAgICBib3JkZXItcmFkaXVzOiA0cHg7CiAgICAgICAgbWFyZ2luLWxlZnQ6IC04cHg7CiAgICAgICAgbWFyZ2luLXJpZ2h0OiAtOHB4OwogICAgICAgIHBhZGRpbmctbGVmdDogOHB4OwogICAgICAgIHBhZGRpbmctcmlnaHQ6IDhweDsKICAgICAgfQoKCgoKICAgIGBdO3Nob3VsZFVwZGF0ZSh3KXtpZih3LmhhcygiaXNTZWxlY3RlZCIpJiZ0aGlzLmJsb2NrKXtsZXQgaz1udWxsLHo9YC5ibG9jay4ke3RoaXMuYmxvY2sudHlwZX1gO3JldHVybiBrPXRoaXMuc2hhZG93Um9vdD8ucXVlcnlTZWxlY3Rvcih6KSxrJiYodGhpcy5pc1NlbGVjdGVkP2suY2xhc3NMaXN0LmFkZCgic2VsZWN0ZWQiKTprLmNsYXNzTGlzdC5yZW1vdmUoInNlbGVjdGVkIikpLCExfWlmKHcuaGFzKCJibG9jayIpJiZ0aGlzLmJsb2NrKXtsZXQgaz13LmdldCgiYmxvY2siKTtpZihrJiZrLmlkJiZrLnR5cGUmJmsuaWQ9PT10aGlzLmJsb2NrLmlkJiZrLnR5cGU9PT10aGlzLmJsb2NrLnR5cGUpcmV0dXJuITF9cmV0dXJuIXRoaXMuYmxvY2tFbGVtZW50fHx0aGlzLmJsb2NrPy50eXBlIT09dGhpcy5ibG9ja0VsZW1lbnQuZGF0YXNldC5ibG9ja1R5cGV9Zmlyc3RVcGRhdGVkKCl7dGhpcy5jb250ZW50SW5pdGlhbGl6ZWQ9ITAsdGhpcy5pbmplY3RIYW5kbGVyU3R5bGVzKCk7bGV0IHc9dGhpcy5zaGFkb3dSb290Py5xdWVyeVNlbGVjdG9yKCIud3lzaXd5Zy1ibG9jay1jb250YWluZXIiKTtpZih3JiZ0aGlzLmJsb2NrJiYody5pbm5lckhUTUw9dGhpcy5yZW5kZXJCbG9ja0NvbnRlbnQoKSksdGhpcy5ibG9jayl7bGV0IE89TnIuZ2V0SGFuZGxlcih0aGlzLmJsb2NrLnR5cGUpO2lmKE8pe2xldCB6PXRoaXMuc2hhZG93Um9vdD8ucXVlcnlTZWxlY3RvcigiLnd5c2l3eWctYmxvY2stY29udGFpbmVyIik7eiYmTy5zZXR1cCh6LHRoaXMuYmxvY2ssdGhpcy5oYW5kbGVycyk7cmV0dXJufX1sZXQgaz10aGlzLnNoYWRvd1Jvb3Q/LnF1ZXJ5U2VsZWN0b3IoIi5ibG9jayIpO2lmKGspe2suc2V0QXR0cmlidXRlKCJkYXRhLWJsb2NrLWlkIix0aGlzLmJsb2NrLmlkKSxrLnNldEF0dHJpYnV0ZSgiZGF0YS1ibG9jay10eXBlIix0aGlzLmJsb2NrLnR5cGUpLGsuYWRkRXZlbnRMaXN0ZW5lcigiaW5wdXQiLHo9Pnt0aGlzLmhhbmRsZXJzPy5vbklucHV0Py4oeik7bGV0IE09dGhpcy5nZXRDdXJzb3JQb3NpdGlvbihrKTtNIT09bnVsbCYmKHRoaXMubGFzdEtub3duQ3Vyc29yUG9zaXRpb249TSl9KSxrLmFkZEV2ZW50TGlzdGVuZXIoImtleWRvd24iLHo9PntsZXQgTT10aGlzLmdldEN1cnNvclBvc2l0aW9uKGspO00hPT1udWxsJiYodGhpcy5sYXN0S25vd25DdXJzb3JQb3NpdGlvbj1NKSx0aGlzLmhhbmRsZXJzPy5vbktleURvd24/Lih6KX0pLGsuYWRkRXZlbnRMaXN0ZW5lcigiZm9jdXMiLCgpPT57dGhpcy5oYW5kbGVycz8ub25Gb2N1cz8uKCl9KSxrLmFkZEV2ZW50TGlzdGVuZXIoImJsdXIiLCgpPT57dGhpcy5oYW5kbGVycz8ub25CbHVyPy4oKX0pLGsuYWRkRXZlbnRMaXN0ZW5lcigiY29tcG9zaXRpb25zdGFydCIsKCk9Pnt0aGlzLmhhbmRsZXJzPy5vbkNvbXBvc2l0aW9uU3RhcnQ/LigpfSksay5hZGRFdmVudExpc3RlbmVyKCJjb21wb3NpdGlvbmVuZCIsKCk9Pnt0aGlzLmhhbmRsZXJzPy5vbkNvbXBvc2l0aW9uRW5kPy4oKX0pLGsuYWRkRXZlbnRMaXN0ZW5lcigibW91c2V1cCIsej0+e2xldCBNPXRoaXMuZ2V0Q3Vyc29yUG9zaXRpb24oayk7TSE9PW51bGwmJih0aGlzLmxhc3RLbm93bkN1cnNvclBvc2l0aW9uPU0pLHRoaXMuaGFuZGxlcnM/Lm9uTW91c2VVcD8uKHopfSksay5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsKCk9PntzZXRUaW1lb3V0KCgpPT57bGV0IHo9dGhpcy5nZXRDdXJzb3JQb3NpdGlvbihrKTt6IT09bnVsbCYmKHRoaXMubGFzdEtub3duQ3Vyc29yUG9zaXRpb249eil9LDApfSk7bGV0IE89KCk9PntsZXQgej13aW5kb3cuZ2V0U2VsZWN0aW9uKCk7aWYoIXp8fHoucmFuZ2VDb3VudD09PTApcmV0dXJuO2xldCBNPXoudG9TdHJpbmcoKTtpZihNLmxlbmd0aD09PTApe3RoaXMubGFzdFNlbGVjdGVkVGV4dCYmKHRoaXMubGFzdFNlbGVjdGVkVGV4dD0iIix0aGlzLmRpc3BhdGNoRXZlbnQobmV3IEN1c3RvbUV2ZW50KCJibG9jay10ZXh0LXNlbGVjdGVkIix7ZGV0YWlsOnt0ZXh0OiIiLGJsb2NrSWQ6dGhpcy5ibG9jay5pZCxoYXNTZWxlY3Rpb246ITF9LGJ1YmJsZXM6ITAsY29tcG9zZWQ6ITB9KSkpO3JldHVybn1sZXQgRj10aGlzLnNoYWRvd1Jvb3Q/LnF1ZXJ5U2VsZWN0b3IoIi5ibG9jayIpO2lmKCFGKXJldHVybjtsZXQgTj10aGlzLmNsb3Nlc3QoImRlZXMtaW5wdXQtd3lzaXd5ZyIpPy5zaGFkb3dSb290LFI9W107TiYmUi5wdXNoKE4pLHRoaXMuc2hhZG93Um9vdCYmUi5wdXNoKHRoaXMuc2hhZG93Um9vdCk7bGV0IF89WWUuZ2V0U2VsZWN0aW9uSW5mbyguLi5SKTtpZighXylyZXR1cm47bGV0IFM9WWUuY29udGFpbnNBY3Jvc3NTaGFkb3dET00oRixfLnN0YXJ0Q29udGFpbmVyKSwkPVllLmNvbnRhaW5zQWNyb3NzU2hhZG93RE9NKEYsXy5lbmRDb250YWluZXIpO2lmKFN8fCQpe2lmKE0hPT10aGlzLmxhc3RTZWxlY3RlZFRleHQpe3RoaXMubGFzdFNlbGVjdGVkVGV4dD1NO2xldCBUPVllLmNyZWF0ZVJhbmdlRnJvbUluZm8oXyksRT1ULmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO3RoaXMuZGlzcGF0Y2hFdmVudChuZXcgQ3VzdG9tRXZlbnQoImJsb2NrLXRleHQtc2VsZWN0ZWQiLHtkZXRhaWw6e3RleHQ6TS50cmltKCksYmxvY2tJZDp0aGlzLmJsb2NrLmlkLHJhbmdlOlQscmVjdDpFLGhhc1NlbGVjdGlvbjohMH0sYnViYmxlczohMCxjb21wb3NlZDohMH0pKX19ZWxzZSB0aGlzLmxhc3RTZWxlY3RlZFRleHQmJih0aGlzLmxhc3RTZWxlY3RlZFRleHQ9IiIsdGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBDdXN0b21FdmVudCgiYmxvY2stdGV4dC1zZWxlY3RlZCIse2RldGFpbDp7dGV4dDoiIixibG9ja0lkOnRoaXMuYmxvY2suaWQsaGFzU2VsZWN0aW9uOiExfSxidWJibGVzOiEwLGNvbXBvc2VkOiEwfSkpKX07ZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigic2VsZWN0aW9uY2hhbmdlIixPKSx0aGlzLl9zZWxlY3Rpb25IYW5kbGVyPU8say5hZGRFdmVudExpc3RlbmVyKCJrZXl1cCIsKCk9PntsZXQgej10aGlzLmdldEN1cnNvclBvc2l0aW9uKGspO3ohPT1udWxsJiYodGhpcy5sYXN0S25vd25DdXJzb3JQb3NpdGlvbj16KX0pLHRoaXMuYmxvY2suY29udGVudCYmKGsuaW5uZXJIVE1MPXRoaXMuYmxvY2suY29udGVudCl9dGhpcy5ibG9ja0VsZW1lbnQ9a31yZW5kZXIoKXtyZXR1cm4gdGhpcy5ibG9jaz96NGA8ZGl2IGNsYXNzPSJ3eXNpd3lnLWJsb2NrLWNvbnRhaW5lciI+PC9kaXY+YDp6NGBgfXJlbmRlckJsb2NrQ29udGVudCgpe2lmKCF0aGlzLmJsb2NrKXJldHVybiIiO2xldCB3PU5yLmdldEhhbmRsZXIodGhpcy5ibG9jay50eXBlKTtpZih3KXJldHVybiB3LnJlbmRlcih0aGlzLmJsb2NrLHRoaXMuaXNTZWxlY3RlZCk7bGV0IGs9dGhpcy5pc1NlbGVjdGVkPyIgc2VsZWN0ZWQiOiIiO3JldHVybmAKICAgICAgPGRpdgogICAgICAgIGNsYXNzPSJibG9jayAke3RoaXMuYmxvY2sudHlwZX0ke2t9IgogICAgICAgIGNvbnRlbnRlZGl0YWJsZT0idHJ1ZSIKICAgICAgPjwvZGl2PgogICAgYH1mb2N1cygpe2xldCB3PU5yLmdldEhhbmRsZXIodGhpcy5ibG9jay50eXBlKTtpZih3JiZ3LmZvY3VzKXtsZXQgTz10aGlzLnNoYWRvd1Jvb3Q/LnF1ZXJ5U2VsZWN0b3IoIi53eXNpd3lnLWJsb2NrLWNvbnRhaW5lciIpLHo9e3NoYWRvd1Jvb3Q6dGhpcy5zaGFkb3dSb290LGNvbXBvbmVudDp0aGlzfTtyZXR1cm4gdy5mb2N1cyhPLHopfWlmKHRoaXMuYmxvY2smJnkuTk9OX0VESVRBQkxFX1RZUEVTLmluY2x1ZGVzKHRoaXMuYmxvY2sudHlwZSkpe2xldCBPPXRoaXMuc2hhZG93Um9vdD8ucXVlcnlTZWxlY3RvcihgLmJsb2NrLiR7dGhpcy5ibG9jay50eXBlfWApO08mJk8uZm9jdXMoKTtyZXR1cm59bGV0IGs9dGhpcy5zaGFkb3dSb290Py5xdWVyeVNlbGVjdG9yKCIuYmxvY2siKTtrJiYoay5oYXNBdHRyaWJ1dGUoImNvbnRlbnRlZGl0YWJsZSIpfHxrLnNldEF0dHJpYnV0ZSgiY29udGVudGVkaXRhYmxlIiwidHJ1ZSIpLGsuZm9jdXMoKSxkb2N1bWVudC5hY3RpdmVFbGVtZW50IT09ayYmdGhpcy5zaGFkb3dSb290Py5hY3RpdmVFbGVtZW50IT09ayYmUHJvbWlzZS5yZXNvbHZlKCkudGhlbigoKT0+e2suZm9jdXMoKX0pKX1mb2N1c1dpdGhDdXJzb3Iodz0iZW5kIil7bGV0IGs9TnIuZ2V0SGFuZGxlcih0aGlzLmJsb2NrLnR5cGUpO2lmKGsmJmsuZm9jdXNXaXRoQ3Vyc29yKXtsZXQgTT10aGlzLnNoYWRvd1Jvb3Q/LnF1ZXJ5U2VsZWN0b3IoIi53eXNpd3lnLWJsb2NrLWNvbnRhaW5lciIpLEY9e3NoYWRvd1Jvb3Q6dGhpcy5zaGFkb3dSb290LGNvbXBvbmVudDp0aGlzfTtyZXR1cm4gay5mb2N1c1dpdGhDdXJzb3IoTSx3LEYpfWlmKHRoaXMuYmxvY2smJnkuTk9OX0VESVRBQkxFX1RZUEVTLmluY2x1ZGVzKHRoaXMuYmxvY2sudHlwZSkpe3RoaXMuZm9jdXMoKTtyZXR1cm59bGV0IE89dGhpcy5zaGFkb3dSb290Py5xdWVyeVNlbGVjdG9yKCIuYmxvY2siKTtpZighTylyZXR1cm47Ty5oYXNBdHRyaWJ1dGUoImNvbnRlbnRlZGl0YWJsZSIpfHxPLnNldEF0dHJpYnV0ZSgiY29udGVudGVkaXRhYmxlIiwidHJ1ZSIpLE8uZm9jdXMoKTtsZXQgej0oKT0+e3c9PT0ic3RhcnQiP3RoaXMuc2V0Q3Vyc29yVG9TdGFydCgpOnc9PT0iZW5kIj90aGlzLnNldEN1cnNvclRvRW5kKCk6dHlwZW9mIHc9PSJudW1iZXIiJiZZZS5zZXRDdXJzb3JQb3NpdGlvbihPLHcpfTtkb2N1bWVudC5hY3RpdmVFbGVtZW50PT09T3x8dGhpcy5zaGFkb3dSb290Py5hY3RpdmVFbGVtZW50PT09Tz96KCk6UHJvbWlzZS5yZXNvbHZlKCkudGhlbigoKT0+eyhkb2N1bWVudC5hY3RpdmVFbGVtZW50PT09T3x8dGhpcy5zaGFkb3dSb290Py5hY3RpdmVFbGVtZW50PT09TykmJnooKX0pfWdldEN1cnNvclBvc2l0aW9uKHcpe2xldCBrPU5yLmdldEhhbmRsZXIodGhpcy5ibG9jay50eXBlKTtpZihrJiZrLmdldEN1cnNvclBvc2l0aW9uKXtsZXQgUj17c2hhZG93Um9vdDp0aGlzLnNoYWRvd1Jvb3QsY29tcG9uZW50OnRoaXN9O3JldHVybiBrLmdldEN1cnNvclBvc2l0aW9uKHcsUil9bGV0IHo9dGhpcy5jbG9zZXN0KCJkZWVzLWlucHV0LXd5c2l3eWciKT8uc2hhZG93Um9vdCxNPVtdO3omJk0ucHVzaCh6KSx0aGlzLnNoYWRvd1Jvb3QmJk0ucHVzaCh0aGlzLnNoYWRvd1Jvb3QpO2xldCBGPVllLmdldFNlbGVjdGlvbkluZm8oLi4uTSk7aWYoY29uc29sZS5sb2coImdldEN1cnNvclBvc2l0aW9uOiBTZWxlY3Rpb24gaW5mbyBmcm9tIHNoYWRvdyBET01zOiIse3NlbGVjdGlvbkluZm86RixzaGFkb3dSb290c0NvdW50Ok0ubGVuZ3RofSksIUYpcmV0dXJuIGNvbnNvbGUubG9nKCJnZXRDdXJzb3JQb3NpdGlvbjogTm8gc2VsZWN0aW9uIGZvdW5kIiksbnVsbDtpZihjb25zb2xlLmxvZygiZ2V0Q3Vyc29yUG9zaXRpb246IFJhbmdlIGluZm86Iix7c3RhcnRDb250YWluZXI6Ri5zdGFydENvbnRhaW5lcixzdGFydE9mZnNldDpGLnN0YXJ0T2Zmc2V0LGNvbGxhcHNlZDpGLmNvbGxhcHNlZCxzdGFydENvbnRhaW5lclRleHQ6Ri5zdGFydENvbnRhaW5lci50ZXh0Q29udGVudH0pLCF3LmNvbnRhaW5zKEYuc3RhcnRDb250YWluZXIpKXJldHVybiBjb25zb2xlLmxvZygiZ2V0Q3Vyc29yUG9zaXRpb246IFJhbmdlIG5vdCBpbiBlbGVtZW50IiksbnVsbDtsZXQgRD1kb2N1bWVudC5jcmVhdGVSYW5nZSgpO0Quc2VsZWN0Tm9kZUNvbnRlbnRzKHcpLEQuc2V0RW5kKEYuc3RhcnRDb250YWluZXIsRi5zdGFydE9mZnNldCk7bGV0IE49RC50b1N0cmluZygpLmxlbmd0aDtyZXR1cm4gY29uc29sZS5sb2coImdldEN1cnNvclBvc2l0aW9uOiBDYWxjdWxhdGVkIHBvc2l0aW9uOiIse3Bvc2l0aW9uOk4scHJlQ2FyZXRUZXh0OkQudG9TdHJpbmcoKSxlbGVtZW50VGV4dDp3LnRleHRDb250ZW50LGVsZW1lbnRUZXh0TGVuZ3RoOncudGV4dENvbnRlbnQ/Lmxlbmd0aH0pLE59Z2V0Q29udGVudCgpe2xldCB3PU5yLmdldEhhbmRsZXIodGhpcy5ibG9jay50eXBlKTtpZih3JiZ3LmdldENvbnRlbnQpe2xldCB6PXRoaXMuc2hhZG93Um9vdD8ucXVlcnlTZWxlY3RvcigiLnd5c2l3eWctYmxvY2stY29udGFpbmVyIiksTT17c2hhZG93Um9vdDp0aGlzLnNoYWRvd1Jvb3QsY29tcG9uZW50OnRoaXN9O3JldHVybiB3LmdldENvbnRlbnQoeixNKX1sZXQgaz10aGlzLnNoYWRvd1Jvb3Q/LnF1ZXJ5U2VsZWN0b3IoIi5ibG9jayIpO2lmKCFrKXJldHVybiIiO2xldCBPPWsuaW5uZXJIVE1MfHwiIjtyZXR1cm4gY29uc29sZS5sb2coIkdldHRpbmcgY29udGVudCBmcm9tIGJsb2NrOiIsTyksT31zZXRDb250ZW50KHcpe2xldCBrPU5yLmdldEhhbmRsZXIodGhpcy5ibG9jay50eXBlKTtpZihrJiZrLnNldENvbnRlbnQpe2xldCBNPXRoaXMuc2hhZG93Um9vdD8ucXVlcnlTZWxlY3RvcigiLnd5c2l3eWctYmxvY2stY29udGFpbmVyIiksRj17c2hhZG93Um9vdDp0aGlzLnNoYWRvd1Jvb3QsY29tcG9uZW50OnRoaXN9O3JldHVybiBrLnNldENvbnRlbnQoTSx3LEYpfWxldCBPPXRoaXMuc2hhZG93Um9vdD8ucXVlcnlTZWxlY3RvcigiLmJsb2NrIik7aWYoIU8pcmV0dXJuO2xldCB6PWRvY3VtZW50LmFjdGl2ZUVsZW1lbnQ9PT1PfHx0aGlzLnNoYWRvd1Jvb3Q/LmFjdGl2ZUVsZW1lbnQ9PT1PO08uaW5uZXJIVE1MPXcseiYmTy5mb2N1cygpfXNldEN1cnNvclRvU3RhcnQoKXtsZXQgdz1Oci5nZXRIYW5kbGVyKHRoaXMuYmxvY2sudHlwZSk7aWYodyYmdy5zZXRDdXJzb3JUb1N0YXJ0KXtsZXQgTz10aGlzLnNoYWRvd1Jvb3Q/LnF1ZXJ5U2VsZWN0b3IoIi53eXNpd3lnLWJsb2NrLWNvbnRhaW5lciIpLHo9e3NoYWRvd1Jvb3Q6dGhpcy5zaGFkb3dSb290LGNvbXBvbmVudDp0aGlzfTtyZXR1cm4gdy5zZXRDdXJzb3JUb1N0YXJ0KE8seil9bGV0IGs9dGhpcy5zaGFkb3dSb290Py5xdWVyeVNlbGVjdG9yKCIuYmxvY2siKTtrJiZhYS5zZXRDdXJzb3JUb1N0YXJ0KGspfXNldEN1cnNvclRvRW5kKCl7bGV0IHc9TnIuZ2V0SGFuZGxlcih0aGlzLmJsb2NrLnR5cGUpO2lmKHcmJncuc2V0Q3Vyc29yVG9FbmQpe2xldCBPPXRoaXMuc2hhZG93Um9vdD8ucXVlcnlTZWxlY3RvcigiLnd5c2l3eWctYmxvY2stY29udGFpbmVyIiksej17c2hhZG93Um9vdDp0aGlzLnNoYWRvd1Jvb3QsY29tcG9uZW50OnRoaXN9O3JldHVybiB3LnNldEN1cnNvclRvRW5kKE8seil9bGV0IGs9dGhpcy5zaGFkb3dSb290Py5xdWVyeVNlbGVjdG9yKCIuYmxvY2siKTtrJiZhYS5zZXRDdXJzb3JUb0VuZChrKX1nZXRDb250ZXh0TWVudUl0ZW1zKCl7aWYoIXRoaXMuYmxvY2t8fHRoaXMuYmxvY2sudHlwZT09PSJkaXZpZGVyIilyZXR1cm5bXTtsZXQgdz1HMS5nZXRTbGFzaE1lbnVJdGVtcygpLGs9dGhpcy5ibG9jay50eXBlLE89dGhpcy53eXNpd3lnQ29tcG9uZW50LHo9dGhpcy5ibG9jay5pZCxGPVt7bmFtZToiQ2hhbmdlIFR5cGUiLGljb25OYW1lOiJ0eXBlIixzdWJtZW51OncuZmlsdGVyKEQ9PkQudHlwZSE9PWsmJkQudHlwZSE9PSJkaXZpZGVyIikubWFwKEQ9Pih7bmFtZTpELmxhYmVsLGljb25OYW1lOkQuaWNvbi5yZXBsYWNlKCJsdWNpZGU6IiwiIiksYWN0aW9uOmFzeW5jKCk9PntpZihPJiZPLmJsb2NrT3BlcmF0aW9ucyl7bGV0IE49Ty5ibG9ja3MuZmluZChSPT5SLmlkPT09eik7TiYmKE4udHlwZT1ELnR5cGUsTi5jb250ZW50PU4uY29udGVudHx8IiIsRC50eXBlPT09ImNvZGUiP04ubWV0YWRhdGE9e2xhbmd1YWdlOiJ0eXBlc2NyaXB0In06RC50eXBlPT09Imxpc3QiP04ubWV0YWRhdGE9e2xpc3RUeXBlOiJidWxsZXQifTpELnR5cGU9PT0iaW1hZ2UiPyhOLmNvbnRlbnQ9IiIsTi5tZXRhZGF0YT17dXJsOiIiLGxvYWRpbmc6ITF9KTpELnR5cGU9PT0ieW91dHViZSI/KE4uY29udGVudD0iIixOLm1ldGFkYXRhPXt2aWRlb0lkOiIiLHVybDoiIn0pOkQudHlwZT09PSJtYXJrZG93biI/Ti5tZXRhZGF0YT17c2hvd1ByZXZpZXc6ITF9OkQudHlwZT09PSJodG1sIj9OLm1ldGFkYXRhPXtzaG93UHJldmlldzohMX06RC50eXBlPT09ImF0dGFjaG1lbnQiJiYoTi5jb250ZW50PSIiLE4ubWV0YWRhdGE9e2ZpbGVzOltdfSksTy51cGRhdGVCbG9ja0VsZW1lbnQoeiksTy51cGRhdGVWYWx1ZSgpLHJlcXVlc3RBbmltYXRpb25GcmFtZSgoKT0+e08uYmxvY2tPcGVyYXRpb25zLmZvY3VzQmxvY2soeil9KSl9fX0pKX1dO3JldHVyblsiaW1hZ2UiLCJkaXZpZGVyIiwieW91dHViZSIsImF0dGFjaG1lbnQiXS5pbmNsdWRlcyh0aGlzLmJsb2NrLnR5cGUpfHxGLnB1c2goe2RpdmlkZXI6ITB9LHtuYW1lOiJDdXQiLGljb25OYW1lOiJzY2lzc29ycyIsc2hvcnRjdXQ6IkNtZCtYIixhY3Rpb246YXN5bmMoKT0+e2RvY3VtZW50LmV4ZWNDb21tYW5kKCJjdXQiKX19LHtuYW1lOiJDb3B5IixpY29uTmFtZToiY29weSIsc2hvcnRjdXQ6IkNtZCtDIixhY3Rpb246YXN5bmMoKT0+e2RvY3VtZW50LmV4ZWNDb21tYW5kKCJjb3B5Iil9fSx7bmFtZToiUGFzdGUiLGljb25OYW1lOiJjbGlwYm9hcmQiLHNob3J0Y3V0OiJDbWQrViIsYWN0aW9uOmFzeW5jKCk9Pntkb2N1bWVudC5leGVjQ29tbWFuZCgicGFzdGUiKX19KSxGLnB1c2goe2RpdmlkZXI6ITB9LHtuYW1lOiJEZWxldGUgQmxvY2siLGljb25OYW1lOiJ0cmFzaDIiLGFjdGlvbjphc3luYygpPT57TyYmTy5ibG9ja09wZXJhdGlvbnMmJk8uYmxvY2tPcGVyYXRpb25zLmRlbGV0ZUJsb2NrKHopfX0pLEZ9Z2V0U3BsaXRDb250ZW50KCl7Y29uc29sZS5sb2coImdldFNwbGl0Q29udGVudDogU3RhcnRpbmcuLi4iKTtsZXQgdz1Oci5nZXRIYW5kbGVyKHRoaXMuYmxvY2sudHlwZSk7aWYoY29uc29sZS5sb2coImdldFNwbGl0Q29udGVudDogQ2hlY2tpbmcgZm9yIGhhbmRsZXIiLHtibG9ja1R5cGU6dGhpcy5ibG9jay50eXBlLGhhc0hhbmRsZXI6ISF3LGhhc1NwbGl0TWV0aG9kOiEhKHcmJncuZ2V0U3BsaXRDb250ZW50KX0pLHcmJncuZ2V0U3BsaXRDb250ZW50KXtsZXQgcT10aGlzLnNoYWRvd1Jvb3Q/LnF1ZXJ5U2VsZWN0b3IoIi53eXNpd3lnLWJsb2NrLWNvbnRhaW5lciIpO2NvbnNvbGUubG9nKCJnZXRTcGxpdENvbnRlbnQ6IEZvdW5kIGNvbnRhaW5lciIse2NvbnRhaW5lcjohIXEsY29udGFpbmVySFRNTDpxPy5pbm5lckhUTUw/LnN1YnN0cmluZygwLDEwMCl9KTtsZXQgQj17c2hhZG93Um9vdDp0aGlzLnNoYWRvd1Jvb3QsY29tcG9uZW50OnRoaXN9O3JldHVybiB3LmdldFNwbGl0Q29udGVudChxLEIpfWxldCBrPXRoaXMuc2hhZG93Um9vdD8ucXVlcnlTZWxlY3RvcigiLmJsb2NrIik7aWYoIWspcmV0dXJuIGNvbnNvbGUubG9nKCJnZXRTcGxpdENvbnRlbnQ6IE5vIGVkaXRhYmxlIGVsZW1lbnQgZm91bmQiKSxudWxsO2NvbnNvbGUubG9nKCJnZXRTcGxpdENvbnRlbnQ6IEVsZW1lbnQgaW5mbzoiLHtibG9ja1R5cGU6dGhpcy5ibG9jay50eXBlLGlubmVySFRNTDprLmlubmVySFRNTCx0ZXh0Q29udGVudDprLnRleHRDb250ZW50LHRleHRMZW5ndGg6ay50ZXh0Q29udGVudD8ubGVuZ3RofSk7bGV0IHo9dGhpcy5jbG9zZXN0KCJkZWVzLWlucHV0LXd5c2l3eWciKT8uc2hhZG93Um9vdCxNPVtdO3omJk0ucHVzaCh6KSx0aGlzLnNoYWRvd1Jvb3QmJk0ucHVzaCh0aGlzLnNoYWRvd1Jvb3QpO2xldCBGPVllLmdldFNlbGVjdGlvbkluZm8oLi4uTSk7aWYoY29uc29sZS5sb2coImdldFNwbGl0Q29udGVudDogU2VsZWN0aW9uIGluZm8gZnJvbSBzaGFkb3cgRE9NczoiLHtzZWxlY3Rpb25JbmZvOkYsc2hhZG93Um9vdHNDb3VudDpNLmxlbmd0aH0pLCFGKXtpZihjb25zb2xlLmxvZygiZ2V0U3BsaXRDb250ZW50OiBObyBzZWxlY3Rpb24sIHVzaW5nIGxhc3Qga25vd24gcG9zaXRpb246Iix0aGlzLmxhc3RLbm93bkN1cnNvclBvc2l0aW9uKSx0aGlzLmxhc3RLbm93bkN1cnNvclBvc2l0aW9uIT09bnVsbCl7bGV0IHE9ay50ZXh0Q29udGVudHx8IiIsQj1NYXRoLm1pbih0aGlzLmxhc3RLbm93bkN1cnNvclBvc2l0aW9uLHEubGVuZ3RoKTtyZXR1cm4gY29uc29sZS5sb2coImdldFNwbGl0Q29udGVudDogU3BsaXR0aW5nIHdpdGggbGFzdCBrbm93biBwb3NpdGlvbjoiLHtwb3M6QixmdWxsVGV4dExlbmd0aDpxLmxlbmd0aCxiZWZvcmU6cS5zdWJzdHJpbmcoMCxCKSxhZnRlcjpxLnN1YnN0cmluZyhCKX0pLHtiZWZvcmU6cS5zdWJzdHJpbmcoMCxCKSxhZnRlcjpxLnN1YnN0cmluZyhCKX19cmV0dXJuIG51bGx9aWYoY29uc29sZS5sb2coImdldFNwbGl0Q29udGVudDogU2VsZWN0aW9uIHJhbmdlOiIse3N0YXJ0Q29udGFpbmVyOkYuc3RhcnRDb250YWluZXIsc3RhcnRPZmZzZXQ6Ri5zdGFydE9mZnNldCxzdGFydENvbnRhaW5lckluRWxlbWVudDprLmNvbnRhaW5zKEYuc3RhcnRDb250YWluZXIpfSksIVllLmNvbnRhaW5zQWNyb3NzU2hhZG93RE9NKGssRi5zdGFydENvbnRhaW5lcikpe2lmKGNvbnNvbGUubG9nKCJnZXRTcGxpdENvbnRlbnQ6IFNlbGVjdGlvbiBub3QgaW4gdGhpcyBibG9jaywgdXNpbmcgbGFzdCBrbm93biBwb3NpdGlvbjoiLHRoaXMubGFzdEtub3duQ3Vyc29yUG9zaXRpb24pLHRoaXMubGFzdEtub3duQ3Vyc29yUG9zaXRpb24hPT1udWxsKXtsZXQgcT1rLnRleHRDb250ZW50fHwiIixCPU1hdGgubWluKHRoaXMubGFzdEtub3duQ3Vyc29yUG9zaXRpb24scS5sZW5ndGgpO3JldHVybntiZWZvcmU6cS5zdWJzdHJpbmcoMCxCKSxhZnRlcjpxLnN1YnN0cmluZyhCKX19cmV0dXJuIG51bGx9bGV0IEQ9dGhpcy5nZXRDdXJzb3JQb3NpdGlvbihrKTtpZihjb25zb2xlLmxvZygiZ2V0U3BsaXRDb250ZW50OiBDdXJzb3IgcG9zaXRpb24gZm9yIEhUTUwgc3BsaXQ6IixEKSxEPT09bnVsbHx8RD09PTApcmV0dXJuIGNvbnNvbGUubG9nKCJnZXRTcGxpdENvbnRlbnQ6IEN1cnNvciBhdCBzdGFydCBvciBudWxsLCBtb3ZpbmcgYWxsIGNvbnRlbnQiKSx7YmVmb3JlOiIiLGFmdGVyOmsuaW5uZXJIVE1MfTtsZXQgTj1kb2N1bWVudC5jcmVhdGVSYW5nZSgpLFI9ZG9jdW1lbnQuY3JlYXRlUmFuZ2UoKTtOLnNldFN0YXJ0KGssMCksTi5zZXRFbmQoRi5zdGFydENvbnRhaW5lcixGLnN0YXJ0T2Zmc2V0KSxSLnNldFN0YXJ0KEYuc3RhcnRDb250YWluZXIsRi5zdGFydE9mZnNldCksUi5zZXRFbmQoayxrLmNoaWxkTm9kZXMubGVuZ3RoKTtsZXQgXz1OLmNsb25lQ29udGVudHMoKSxTPVIuY2xvbmVDb250ZW50cygpLCQ9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7JC5hcHBlbmRDaGlsZChfKTtsZXQgVD0kLmlubmVySFRNTDskLmlubmVySFRNTD0iIiwkLmFwcGVuZENoaWxkKFMpO2xldCBFPSQuaW5uZXJIVE1MO3JldHVybiBjb25zb2xlLmxvZygiZ2V0U3BsaXRDb250ZW50OiBGaW5hbCBzcGxpdCByZXN1bHQ6Iix7Y3Vyc29yUG9zOkQsYmVmb3JlSHRtbDpULGJlZm9yZUxlbmd0aDpULmxlbmd0aCxiZWZvcmVIdG1sUHJldmlldzpULnN1YnN0cmluZygwLDEwMCkrKFQubGVuZ3RoPjEwMD8iLi4uIjoiIiksYWZ0ZXJIdG1sOkUsYWZ0ZXJMZW5ndGg6RS5sZW5ndGgsYWZ0ZXJIdG1sUHJldmlldzpFLnN1YnN0cmluZygwLDEwMCkrKEUubGVuZ3RoPjEwMD8iLi4uIjoiIil9KSx7YmVmb3JlOlQsYWZ0ZXI6RX19c3RhdGlje0NjKGkscil9fTtyZXR1cm4geT1pfSkoKX0pO3ZhciBvZGU9cCgoKT0+e3NkZSgpO0NuKCk7bGgoKTtpRigpO1kwcigpO3RkZSgpO1lkKCk7SjZlKCk7bmwoKTt6YygpO3JkZSgpO2FkZSgpO2M0cigpO2Q0cigpO3U0cigpO25kZSgpO3A0cigpO1E2ZSgpO0s2ZSgpO2Y0cigpfSk7dmFyIEg0LHJuLGxkZSxzZGU9cCgoKT0+e00xKCk7RzByKCk7SWQoKTt4ZSgpO29kZSgpO0plKCk7SDQ9ZnVuY3Rpb24oZSx0LHIsaSxhLG4pe2Z1bmN0aW9uIG8oeSl7aWYoeSE9PXZvaWQgMCYmdHlwZW9mIHkhPSJmdW5jdGlvbiIpdGhyb3cgbmV3IFR5cGVFcnJvcigiRnVuY3Rpb24gZXhwZWN0ZWQiKTtyZXR1cm4geX1mb3IodmFyIHM9aS5raW5kLGw9cz09PSJnZXR0ZXIiPyJnZXQiOnM9PT0ic2V0dGVyIj8ic2V0IjoidmFsdWUiLGM9IXQmJmU/aS5zdGF0aWM/ZTplLnByb3RvdHlwZTpudWxsLHU9dHx8KGM/T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihjLGkubmFtZSk6e30pLGQsaD0hMSxmPXIubGVuZ3RoLTE7Zj49MDtmLS0pe3ZhciB4PXt9O2Zvcih2YXIgdiBpbiBpKXhbdl09dj09PSJhY2Nlc3MiP3t9Omlbdl07Zm9yKHZhciB2IGluIGkuYWNjZXNzKXguYWNjZXNzW3ZdPWkuYWNjZXNzW3ZdO3guYWRkSW5pdGlhbGl6ZXI9ZnVuY3Rpb24oeSl7aWYoaCl0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgYWRkIGluaXRpYWxpemVycyBhZnRlciBkZWNvcmF0aW9uIGhhcyBjb21wbGV0ZWQiKTtuLnB1c2gobyh5fHxudWxsKSl9O3ZhciBiPSgwLHJbZl0pKHM9PT0iYWNjZXNzb3IiP3tnZXQ6dS5nZXQsc2V0OnUuc2V0fTp1W2xdLHgpO2lmKHM9PT0iYWNjZXNzb3IiKXtpZihiPT09dm9pZCAwKWNvbnRpbnVlO2lmKGI9PT1udWxsfHx0eXBlb2YgYiE9Im9iamVjdCIpdGhyb3cgbmV3IFR5cGVFcnJvcigiT2JqZWN0IGV4cGVjdGVkIik7KGQ9byhiLmdldCkpJiYodS5nZXQ9ZCksKGQ9byhiLnNldCkpJiYodS5zZXQ9ZCksKGQ9byhiLmluaXQpKSYmYS51bnNoaWZ0KGQpfWVsc2UoZD1vKGIpKSYmKHM9PT0iZmllbGQiP2EudW5zaGlmdChkKTp1W2xdPWQpfWMmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShjLGkubmFtZSx1KSxoPSEwfSxybj1mdW5jdGlvbihlLHQscil7Zm9yKHZhciBpPWFyZ3VtZW50cy5sZW5ndGg+MixhPTA7YTx0Lmxlbmd0aDthKyspcj1pP3RbYV0uY2FsbChlLHIpOnRbYV0uY2FsbChlKTtyZXR1cm4gaT9yOnZvaWQgMH0sbGRlPSgoKT0+e2xldCBlPVt5ZSgiZGVlcy1pbnB1dC13eXNpd3lnIildLHQscj1bXSxpLGE9b3QsbixvPVtdLHM9W10sbCxjPVtdLHU9W10sZCxoPVtdLGY9W10seCx2PVtdLGI9W10seSx3PVtdLGs9W10sTyx6PVtdLE09W10sRixEPVtdLE49W107dmFyIFI9Y2xhc3MgZXh0ZW5kcyBhe3N0YXRpY3tpPXRoaXN9c3RhdGlje2xldCBfPXR5cGVvZiBTeW1ib2w9PSJmdW5jdGlvbiImJlN5bWJvbC5tZXRhZGF0YT9PYmplY3QuY3JlYXRlKGFbU3ltYm9sLm1ldGFkYXRhXT8/bnVsbCk6dm9pZCAwO249W2ooe3R5cGU6U3RyaW5nfSldLGw9W2ooe3R5cGU6U3RyaW5nfSldLGQ9W2ZlKCldLHg9W2ZlKCldLHk9W2ZlKCldLE89W2ZlKCldLEY9W2ZlKCldLEg0KHRoaXMsbnVsbCxuLHtraW5kOiJhY2Nlc3NvciIsbmFtZToidmFsdWUiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOlM9PiJ2YWx1ZSJpbiBTLGdldDpTPT5TLnZhbHVlLHNldDooUywkKT0+e1MudmFsdWU9JH19LG1ldGFkYXRhOl99LG8scyksSDQodGhpcyxudWxsLGwse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJvdXRwdXRGb3JtYXQiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOlM9PiJvdXRwdXRGb3JtYXQiaW4gUyxnZXQ6Uz0+Uy5vdXRwdXRGb3JtYXQsc2V0OihTLCQpPT57Uy5vdXRwdXRGb3JtYXQ9JH19LG1ldGFkYXRhOl99LGMsdSksSDQodGhpcyxudWxsLGQse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJibG9ja3MiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOlM9PiJibG9ja3MiaW4gUyxnZXQ6Uz0+Uy5ibG9ja3Msc2V0OihTLCQpPT57Uy5ibG9ja3M9JH19LG1ldGFkYXRhOl99LGgsZiksSDQodGhpcyxudWxsLHgse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJkcmFnZ2VkQmxvY2tJZCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6Uz0+ImRyYWdnZWRCbG9ja0lkImluIFMsZ2V0OlM9PlMuZHJhZ2dlZEJsb2NrSWQsc2V0OihTLCQpPT57Uy5kcmFnZ2VkQmxvY2tJZD0kfX0sbWV0YWRhdGE6X30sdixiKSxINCh0aGlzLG51bGwseSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImRyYWdPdmVyQmxvY2tJZCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6Uz0+ImRyYWdPdmVyQmxvY2tJZCJpbiBTLGdldDpTPT5TLmRyYWdPdmVyQmxvY2tJZCxzZXQ6KFMsJCk9PntTLmRyYWdPdmVyQmxvY2tJZD0kfX0sbWV0YWRhdGE6X30sdyxrKSxINCh0aGlzLG51bGwsTyx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImRyYWdPdmVyUG9zaXRpb24iLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOlM9PiJkcmFnT3ZlclBvc2l0aW9uImluIFMsZ2V0OlM9PlMuZHJhZ092ZXJQb3NpdGlvbixzZXQ6KFMsJCk9PntTLmRyYWdPdmVyUG9zaXRpb249JH19LG1ldGFkYXRhOl99LHosTSksSDQodGhpcyxudWxsLEYse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJzZWxlY3RlZFRleHQiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOlM9PiJzZWxlY3RlZFRleHQiaW4gUyxnZXQ6Uz0+Uy5zZWxlY3RlZFRleHQsc2V0OihTLCQpPT57Uy5zZWxlY3RlZFRleHQ9JH19LG1ldGFkYXRhOl99LEQsTiksSDQobnVsbCx0PXt2YWx1ZTppfSxlLHtraW5kOiJjbGFzcyIsbmFtZTppLm5hbWUsbWV0YWRhdGE6X30sbnVsbCxyKSxSPWk9dC52YWx1ZSxfJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoaSxTeW1ib2wubWV0YWRhdGEse2VudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwLHZhbHVlOl99KX1zdGF0aWMgZGVtbz1XMHI7c3RhdGljIGRlbW9Hcm91cHM9WyJJbnB1dCIsIldvcmtzcGFjZSJdOyNlPXJuKHRoaXMsbywiIik7Z2V0IHZhbHVlKCl7cmV0dXJuIHRoaXMuI2V9c2V0IHZhbHVlKF8pe3RoaXMuI2U9X30jdD0ocm4odGhpcyxzKSxybih0aGlzLGMsImh0bWwiKSk7Z2V0IG91dHB1dEZvcm1hdCgpe3JldHVybiB0aGlzLiN0fXNldCBvdXRwdXRGb3JtYXQoXyl7dGhpcy4jdD1ffSNyPShybih0aGlzLHUpLHJuKHRoaXMsaCxbe2lkOkcxLmdlbmVyYXRlQmxvY2tJZCgpLHR5cGU6InBhcmFncmFwaCIsY29udGVudDoiIn1dKSk7Z2V0IGJsb2Nrcygpe3JldHVybiB0aGlzLiNyfXNldCBibG9ja3MoXyl7dGhpcy4jcj1ffXNlbGVjdGVkQmxvY2tJZD0ocm4odGhpcyxmKSxudWxsKTtzbGFzaE1lbnU9ZUYuZ2V0SW5zdGFuY2UoKTsjaT1ybih0aGlzLHYsbnVsbCk7Z2V0IGRyYWdnZWRCbG9ja0lkKCl7cmV0dXJuIHRoaXMuI2l9c2V0IGRyYWdnZWRCbG9ja0lkKF8pe3RoaXMuI2k9X30jYT0ocm4odGhpcyxiKSxybih0aGlzLHcsbnVsbCkpO2dldCBkcmFnT3ZlckJsb2NrSWQoKXtyZXR1cm4gdGhpcy4jYX1zZXQgZHJhZ092ZXJCbG9ja0lkKF8pe3RoaXMuI2E9X30jbj0ocm4odGhpcyxrKSxybih0aGlzLHosbnVsbCkpO2dldCBkcmFnT3ZlclBvc2l0aW9uKCl7cmV0dXJuIHRoaXMuI259c2V0IGRyYWdPdmVyUG9zaXRpb24oXyl7dGhpcy4jbj1ffWZvcm1hdHRpbmdNZW51PShybih0aGlzLE0pLHJGLmdldEluc3RhbmNlKCkpOyNvPXJuKHRoaXMsRCwiIik7Z2V0IHNlbGVjdGVkVGV4dCgpe3JldHVybiB0aGlzLiNvfXNldCBzZWxlY3RlZFRleHQoXyl7dGhpcy4jbz1ffWVkaXRvckNvbnRlbnRSZWY9cm4odGhpcyxOKTtpc0NvbXBvc2luZz0hMTtibG9ja09wZXJhdGlvbnM7aW5wdXRIYW5kbGVyO2tleWJvYXJkSGFuZGxlcjtkcmFnRHJvcEhhbmRsZXI7aGlzdG9yeTtzdGF0aWMgc3R5bGVzPVtEZSwuLi5vdC5iYXNlU3R5bGVzLG0uZGVmYXVsdFN0eWxlcyxlZGVdO2NvbnN0cnVjdG9yKCl7c3VwZXIoKSx0aGlzLmJsb2NrT3BlcmF0aW9ucz1uZXcgeWIodGhpcyksdGhpcy5pbnB1dEhhbmRsZXI9bmV3IEViKHRoaXMpLHRoaXMua2V5Ym9hcmRIYW5kbGVyPW5ldyAkYih0aGlzKSx0aGlzLmRyYWdEcm9wSGFuZGxlcj1uZXcgSWIodGhpcyksdGhpcy5oaXN0b3J5PW5ldyBQYn1hc3luYyBjb25uZWN0ZWRDYWxsYmFjaygpe2F3YWl0IHN1cGVyLmNvbm5lY3RlZENhbGxiYWNrKCl9YXN5bmMgZGlzY29ubmVjdGVkQ2FsbGJhY2soKXthd2FpdCBzdXBlci5kaXNjb25uZWN0ZWRDYWxsYmFjaygpLHRoaXMuaW5wdXRIYW5kbGVyPy5kZXN0cm95KCksdGhpcy5ibHVyVGltZW91dCYmKGNsZWFyVGltZW91dCh0aGlzLmJsdXJUaW1lb3V0KSx0aGlzLmJsdXJUaW1lb3V0PW51bGwpfWFzeW5jIGZpcnN0VXBkYXRlZCgpe2lmKHRoaXMudmFsdWUmJnRoaXMudmFsdWUudHJpbSgpLmxlbmd0aD4wKXtsZXQgXz10aGlzLm91dHB1dEZvcm1hdD09PSJodG1sIj9Sby5wYXJzZUh0bWxUb0Jsb2Nrcyh0aGlzLnZhbHVlKTpSby5wYXJzZU1hcmtkb3duVG9CbG9ja3ModGhpcy52YWx1ZSk7Xy5sZW5ndGg+MCYmKHRoaXMuYmxvY2tzPV8pfXRoaXMudXBkYXRlVmFsdWUoKSx0aGlzLmVkaXRvckNvbnRlbnRSZWY9dGhpcy5zaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3IoIi5lZGl0b3ItY29udGVudCIpLHRoaXMuZWRpdG9yQ29udGVudFJlZiYmdGhpcy5lZGl0b3JDb250ZW50UmVmLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIixfPT50aGlzLmhhbmRsZUVkaXRvckNsaWNrKF8pKSx0aGlzLmFkZEV2ZW50TGlzdGVuZXIoImJsb2NrLXRleHQtc2VsZWN0ZWQiLF89PntpZighdGhpcy5zbGFzaE1lbnUudmlzaWJsZSYmXy5kZXRhaWwuaGFzU2VsZWN0aW9uJiZfLmRldGFpbC50ZXh0Lmxlbmd0aD4wJiYodGhpcy5zZWxlY3RlZFRleHQ9Xy5kZXRhaWwudGV4dCxfLmRldGFpbC5yZWN0KSl7bGV0IFM9e3g6Xy5kZXRhaWwucmVjdC5sZWZ0K18uZGV0YWlsLnJlY3Qud2lkdGgvMix5Ok1hdGgubWF4KDQ1LF8uZGV0YWlsLnJlY3QudG9wLTQ1KX07dGhpcy5mb3JtYXR0aW5nTWVudS5zaG93KFMsYXN5bmMgJD0+YXdhaXQgdGhpcy5hcHBseUZvcm1hdCgkKSl9fSksZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigibW91c2Vkb3duIixfPT57bGV0IFM9dGhpcy5mb3JtYXR0aW5nTWVudS5zaGFkb3dSb290Py5xdWVyeVNlbGVjdG9yKCIuZm9ybWF0dGluZy1tZW51Iik7aWYoUyYmUy5jb250YWlucyhfLnRhcmdldCkpcmV0dXJuO2xldCAkPXdpbmRvdy5nZXRTZWxlY3Rpb24oKTskJiYkLnRvU3RyaW5nKCkudHJpbSgpLmxlbmd0aD4wfHx0aGlzLmZvcm1hdHRpbmdNZW51LnZpc2libGUmJnRoaXMuaGlkZUZvcm1hdHRpbmdNZW51KCl9KSx0aGlzLmFkZEV2ZW50TGlzdGVuZXIoImtleWRvd24iLF89PntsZXQgUz1fLnRhcmdldDshdGhpcy5jb250YWlucyhTKSYmIXRoaXMuc2hhZG93Um9vdD8uY29udGFpbnMoUyl8fCgoXy5tZXRhS2V5fHxfLmN0cmxLZXkpJiYhXy5zaGlmdEtleSYmXy5rZXk9PT0ieiI/KF8ucHJldmVudERlZmF1bHQoKSx0aGlzLnVuZG8oKSk6KF8ubWV0YUtleXx8Xy5jdHJsS2V5KSYmXy5zaGlmdEtleSYmXy5rZXk9PT0ieiImJihfLnByZXZlbnREZWZhdWx0KCksdGhpcy5yZWRvKCkpKX0pLHRoaXMuaGlzdG9yeS5zYXZlU3RhdGUodGhpcy5ibG9ja3MsdGhpcy5zZWxlY3RlZEJsb2NrSWQpLHRoaXMucmVuZGVyQmxvY2tzUHJvZ3JhbW1hdGljYWxseSgpfXJlbmRlckJsb2Nrc1Byb2dyYW1tYXRpY2FsbHkoKXt0aGlzLmVkaXRvckNvbnRlbnRSZWYmJih0aGlzLmVkaXRvckNvbnRlbnRSZWYuaW5uZXJIVE1MPSIiLHRoaXMuYmxvY2tzLmZvckVhY2goXz0+e2xldCBTPXRoaXMuY3JlYXRlQmxvY2tFbGVtZW50KF8pO3RoaXMuZWRpdG9yQ29udGVudFJlZi5hcHBlbmRDaGlsZChTKX0pKX1jcmVhdGVCbG9ja0VsZW1lbnQoXyl7bGV0IFM9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7aWYoUy5jbGFzc05hbWU9ImJsb2NrLXdyYXBwZXIiLFMuc2V0QXR0cmlidXRlKCJkYXRhLWJsb2NrLWlkIixfLmlkKSxfLnR5cGUhPT0iZGl2aWRlciIpe2xldCBUPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpO1QuY2xhc3NOYW1lPSJkcmFnLWhhbmRsZSIsVC5kcmFnZ2FibGU9ITAsVC5hZGRFdmVudExpc3RlbmVyKCJkcmFnc3RhcnQiLEU9PnRoaXMuZHJhZ0Ryb3BIYW5kbGVyLmhhbmRsZURyYWdTdGFydChFLF8pKSxTLmFwcGVuZENoaWxkKFQpfWxldCAkPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRlZXMtd3lzaXd5Zy1ibG9jayIpO3JldHVybiAkLmJsb2NrPV8sJC5pc1NlbGVjdGVkPXRoaXMuc2VsZWN0ZWRCbG9ja0lkPT09Xy5pZCwkLnd5c2l3eWdDb21wb25lbnQ9dGhpcywkLmhhbmRsZXJzPXtvbklucHV0OlQ9PnRoaXMuaW5wdXRIYW5kbGVyLmhhbmRsZUJsb2NrSW5wdXQoVCxfKSxvbktleURvd246VD0+dGhpcy5rZXlib2FyZEhhbmRsZXIuaGFuZGxlQmxvY2tLZXlEb3duKFQsXyksb25Gb2N1czooKT0+dGhpcy5oYW5kbGVCbG9ja0ZvY3VzKF8pLG9uQmx1cjooKT0+dGhpcy5oYW5kbGVCbG9ja0JsdXIoXyksb25Db21wb3NpdGlvblN0YXJ0OigpPT50aGlzLmlzQ29tcG9zaW5nPSEwLG9uQ29tcG9zaXRpb25FbmQ6KCk9PnRoaXMuaXNDb21wb3Npbmc9ITEsb25Nb3VzZVVwOlQ9PnRoaXMuaGFuZGxlVGV4dFNlbGVjdGlvbihUKSxvblJlcXVlc3RVcGRhdGU6KCk9PnRoaXMudXBkYXRlQmxvY2tFbGVtZW50KF8uaWQpfSxTLmFwcGVuZENoaWxkKCQpLFMuYWRkRXZlbnRMaXN0ZW5lcigiZHJhZ292ZXIiLFQ9PnRoaXMuZHJhZ0Ryb3BIYW5kbGVyLmhhbmRsZURyYWdPdmVyKFQsXykpLFMuYWRkRXZlbnRMaXN0ZW5lcigiZHJvcCIsVD0+dGhpcy5kcmFnRHJvcEhhbmRsZXIuaGFuZGxlRHJvcChULF8pKSxTLmFkZEV2ZW50TGlzdGVuZXIoImRyYWdsZWF2ZSIsKCk9PnRoaXMuZHJhZ0Ryb3BIYW5kbGVyLmhhbmRsZURyYWdMZWF2ZShfKSksU311cGRhdGVCbG9ja0VsZW1lbnQoXyl7bGV0IFM9dGhpcy5ibG9ja3MuZmluZChFPT5FLmlkPT09Xyk7aWYoIVMpcmV0dXJuO2xldCAkPXRoaXMuZWRpdG9yQ29udGVudFJlZi5xdWVyeVNlbGVjdG9yKGBbZGF0YS1ibG9jay1pZD0iJHtffSJdYCk7aWYoISQpcmV0dXJuO2xldCBUPXRoaXMuY3JlYXRlQmxvY2tFbGVtZW50KFMpOyQucmVwbGFjZVdpdGgoVCl9cmVuZGVyKCl7cmV0dXJuIHo0YAogICAgICA8ZGVlcy1sYWJlbAogICAgICAgIC5sYWJlbD0iJHt0aGlzLmxhYmVsfSIKICAgICAgICAuZGVzY3JpcHRpb249IiR7dGhpcy5kZXNjcmlwdGlvbn0iCiAgICAgICAgLnJlcXVpcmVkPSIke3RoaXMucmVxdWlyZWR9IgogICAgICA+PC9kZWVzLWxhYmVsPgogICAgICA8ZGl2IGNsYXNzPSJ3eXNpd3lnLWNvbnRhaW5lciI+CiAgICAgICAgPGRpdiAKICAgICAgICAgIGNsYXNzPSJlZGl0b3ItY29udGVudCAke3RoaXMuZHJhZ2dlZEJsb2NrSWQ/ImRyYWdnaW5nIjoiIn0iCiAgICAgICAgICBpZD0iZWRpdG9yLWNvbnRlbnQiCiAgICAgICAgPgogICAgICAgICAgPCEtLSBCbG9ja3Mgd2lsbCBiZSByZW5kZXJlZCBwcm9ncmFtbWF0aWNhbGx5IC0tPgogICAgICAgIDwvZGl2PgogICAgICA8L2Rpdj4KICAgIGB9aGFuZGxlU2xhc2hNZW51S2V5Ym9hcmQoXyl7c3dpdGNoKF8ua2V5KXtjYXNlIkFycm93RG93biI6Xy5wcmV2ZW50RGVmYXVsdCgpLHRoaXMuc2xhc2hNZW51Lm5hdmlnYXRlKCJkb3duIik7YnJlYWs7Y2FzZSJBcnJvd1VwIjpfLnByZXZlbnREZWZhdWx0KCksdGhpcy5zbGFzaE1lbnUubmF2aWdhdGUoInVwIik7YnJlYWs7Y2FzZSJFbnRlciI6Xy5wcmV2ZW50RGVmYXVsdCgpLHRoaXMuc2xhc2hNZW51LnNlbGVjdEN1cnJlbnQoKTticmVhaztjYXNlIkVzY2FwZSI6Xy5wcmV2ZW50RGVmYXVsdCgpLHRoaXMuY2xvc2VTbGFzaE1lbnUoITApO2JyZWFrfX1jbG9zZVNsYXNoTWVudShfPSExKXtpZihfJiZ0aGlzLnNlbGVjdGVkQmxvY2tJZCl7bGV0IFM9dGhpcy5ibG9ja3MuZmluZCgkPT4kLmlkPT09dGhpcy5zZWxlY3RlZEJsb2NrSWQpO2lmKFMpe2xldCBUPXRoaXMuc2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yKGBbZGF0YS1ibG9jay1pZD0iJHtTLmlkfSJdYCk/LnF1ZXJ5U2VsZWN0b3IoImRlZXMtd3lzaXd5Zy1ibG9jayIpO2lmKFQpe2xldCBFPVQuZ2V0Q29udGVudCgpO2lmKEUuc3RhcnRzV2l0aCgiLyIpKXtsZXQgcT1FLnJlcGxhY2UoL15cL1teXHNdKlxzKi8sIiIpLnRyaW0oKTtULnNldENvbnRlbnQocSksUy5jb250ZW50PXEscmVxdWVzdEFuaW1hdGlvbkZyYW1lKCgpPT57VC5mb2N1c1dpdGhDdXJzb3IoMCl9KX19fX10aGlzLnNsYXNoTWVudS5oaWRlKCl9aGFuZGxlQmxvY2tGb2N1cyhfKXt0aGlzLmJsdXJUaW1lb3V0JiYoY2xlYXJUaW1lb3V0KHRoaXMuYmx1clRpbWVvdXQpLHRoaXMuYmx1clRpbWVvdXQ9bnVsbCk7bGV0IFM9dGhpcy5zZWxlY3RlZEJsb2NrSWQ7aWYodGhpcy5zZWxlY3RlZEJsb2NrSWQ9Xy5pZCxTIT09Xy5pZCl7aWYoUyl7bGV0IHE9dGhpcy5zaGFkb3dSb290Py5xdWVyeVNlbGVjdG9yKGBbZGF0YS1ibG9jay1pZD0iJHtTfSJdYCk/LnF1ZXJ5U2VsZWN0b3IoImRlZXMtd3lzaXd5Zy1ibG9jayIpO3EmJihxLmlzU2VsZWN0ZWQ9ITEpfWxldCBUPXRoaXMuc2hhZG93Um9vdD8ucXVlcnlTZWxlY3RvcihgW2RhdGEtYmxvY2staWQ9IiR7Xy5pZH0iXWApPy5xdWVyeVNlbGVjdG9yKCJkZWVzLXd5c2l3eWctYmxvY2siKTtUJiYoVC5pc1NlbGVjdGVkPSEwKX19Ymx1clRpbWVvdXQ9bnVsbDtoYW5kbGVCbG9ja0JsdXIoXyl7aWYodGhpcy5ibHVyVGltZW91dCYmY2xlYXJUaW1lb3V0KHRoaXMuYmx1clRpbWVvdXQpLHRoaXMuc2xhc2hNZW51LnZpc2libGUpcmV0dXJuO2xldCAkPXRoaXMuc2hhZG93Um9vdD8ucXVlcnlTZWxlY3RvcihgW2RhdGEtYmxvY2staWQ9IiR7Xy5pZH0iXWApPy5xdWVyeVNlbGVjdG9yKCJkZWVzLXd5c2l3eWctYmxvY2siKTtpZigkJiYkLmdldENvbnRlbnQpe2xldCBUPSQuZ2V0Q29udGVudCgpO18uY29udGVudCE9PVQmJihfLmNvbnRlbnQ9VCl9dGhpcy5ibHVyVGltZW91dD1zZXRUaW1lb3V0KCgpPT57dGhpcy5zaGFkb3dSb290Py5hY3RpdmVFbGVtZW50Py5jbGFzc0xpc3QuY29udGFpbnMoImJsb2NrIil8fHRoaXMudXBkYXRlVmFsdWUoKX0sMTAwKX1oYW5kbGVFZGl0b3JDbGljayhfKXtsZXQgUz1fLnRhcmdldDtpZih0aGlzLnNsYXNoTWVudS52aXNpYmxlJiZ0aGlzLmNsb3NlU2xhc2hNZW51KCEwKSxTLmNsYXNzTGlzdC5jb250YWlucygiZWRpdG9yLWNvbnRlbnQiKSl7bGV0ICQ9dGhpcy5ibG9ja3NbdGhpcy5ibG9ja3MubGVuZ3RoLTFdO3RoaXMuYmxvY2tPcGVyYXRpb25zLmZvY3VzQmxvY2soJC5pZCwkLnR5cGU9PT0iZGl2aWRlciJ8fCQudHlwZT09PSJpbWFnZSI/dm9pZCAwOiJlbmQiKX19Y3JlYXRlTmV3QmxvY2soXz0icGFyYWdyYXBoIixTPSIiLCQpe3JldHVybntpZDpHMS5nZW5lcmF0ZUJsb2NrSWQoKSx0eXBlOl8sY29udGVudDpTLC4uLiQmJnttZXRhZGF0YTokfX19YXN5bmMgaW5zZXJ0QmxvY2tBZnRlcihfLFMsJD0hMCl7bGV0IFQ9dGhpcy5ibG9ja3MuZmluZEluZGV4KHE9PnEuaWQ9PT1fLmlkKTt0aGlzLmJsb2Nrcz1bLi4udGhpcy5ibG9ja3Muc2xpY2UoMCxUKzEpLFMsLi4udGhpcy5ibG9ja3Muc2xpY2UoVCsxKV07bGV0IEU9dGhpcy5lZGl0b3JDb250ZW50UmVmLnF1ZXJ5U2VsZWN0b3IoYFtkYXRhLWJsb2NrLWlkPSIke18uaWR9Il1gKTtpZihFKXtsZXQgcT10aGlzLmNyZWF0ZUJsb2NrRWxlbWVudChTKTtFLmluc2VydEFkamFjZW50RWxlbWVudCgiYWZ0ZXJlbmQiLHEpfXRoaXMudXBkYXRlVmFsdWUoKSwkJiZTLnR5cGUhPT0iZGl2aWRlciImJihhd2FpdCBuZXcgUHJvbWlzZShxPT5zZXRUaW1lb3V0KHEsMCkpLGF3YWl0IHRoaXMuYmxvY2tPcGVyYXRpb25zLmZvY3VzQmxvY2soUy5pZCwic3RhcnQiKSl9YXN5bmMgaW5zZXJ0QmxvY2soXyl7bGV0IFM9dGhpcy5ibG9ja3MuZmluZChFPT5FLmlkPT09dGhpcy5zZWxlY3RlZEJsb2NrSWQpO2lmKCFTKXt0aGlzLmNsb3NlU2xhc2hNZW51KCk7cmV0dXJufWxldCBUPXRoaXMuc2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yKGBbZGF0YS1ibG9jay1pZD0iJHtTLmlkfSJdYCk/LnF1ZXJ5U2VsZWN0b3IoImRlZXMtd3lzaXd5Zy1ibG9jayIpO2lmKFQpe2xldCBFPVQuZ2V0Q29udGVudCgpO2lmKEUuc3RhcnRzV2l0aCgiLyIpKXtsZXQgcT1FLnJlcGxhY2UoL15cL1teXHNdKlxzKi8sIiIpLnRyaW0oKTtULnNldENvbnRlbnQocSksUy5jb250ZW50PXF9fWlmKHRoaXMuY2xvc2VTbGFzaE1lbnUoITEpLF89PT0iY29kZSImJihTLm1ldGFkYXRhPXtsYW5ndWFnZToidHlwZXNjcmlwdCJ9KSxTLnR5cGU9XyxTLmNvbnRlbnQ9Uy5jb250ZW50fHwiIixfPT09ImRpdmlkZXIiKXtTLmNvbnRlbnQ9IiAiO2xldCBFPXRoaXMuY3JlYXRlTmV3QmxvY2soKTt0aGlzLmluc2VydEJsb2NrQWZ0ZXIoUyxFKX1lbHNlIF89PT0ibGlzdCI/KFMubWV0YWRhdGE9e2xpc3RUeXBlOiJidWxsZXQifSxTLmNvbnRlbnQ9IiIpOl89PT0iaW1hZ2UiPyhTLmNvbnRlbnQ9IiIsUy5tZXRhZGF0YT17dXJsOiIiLGxvYWRpbmc6ITF9KTpfPT09InlvdXR1YmUiPyhTLmNvbnRlbnQ9IiIsUy5tZXRhZGF0YT17dmlkZW9JZDoiIix1cmw6IiJ9KTpfPT09Im1hcmtkb3duIj9TLm1ldGFkYXRhPXtzaG93UHJldmlldzohMX06Xz09PSJodG1sIj9TLm1ldGFkYXRhPXtzaG93UHJldmlldzohMX06Xz09PSJhdHRhY2htZW50Ij8oUy5jb250ZW50PSIiLFMubWV0YWRhdGE9e2ZpbGVzOltdfSk6Uy5jb250ZW50PVMuY29udGVudHx8IiI7dGhpcy51cGRhdGVCbG9ja0VsZW1lbnQoUy5pZCksdGhpcy51cGRhdGVWYWx1ZSgpLGF3YWl0IG5ldyBQcm9taXNlKEU9PnNldFRpbWVvdXQoRSwwKSksXz09PSJsaXN0Ij8odGhpcy5ibG9ja09wZXJhdGlvbnMuZm9jdXNCbG9jayhTLmlkLCJzdGFydCIpLHJlcXVlc3RBbmltYXRpb25GcmFtZSgoKT0+e2xldCBxPXRoaXMuc2hhZG93Um9vdD8ucXVlcnlTZWxlY3RvcihgW2RhdGEtYmxvY2staWQ9IiR7Uy5pZH0iXWApPy5xdWVyeVNlbGVjdG9yKCJkZWVzLXd5c2l3eWctYmxvY2siKTtxJiZxLmZvY3VzTGlzdEl0ZW0oKX0pKTpfIT09ImRpdmlkZXIiJiZfIT09ImltYWdlIiYmXyE9PSJ5b3V0dWJlIiYmXyE9PSJtYXJrZG93biImJl8hPT0iaHRtbCImJl8hPT0iYXR0YWNobWVudCI/dGhpcy5ibG9ja09wZXJhdGlvbnMuZm9jdXNCbG9jayhTLmlkLCJzdGFydCIpOihfPT09ImltYWdlInx8Xz09PSJ5b3V0dWJlInx8Xz09PSJtYXJrZG93biJ8fF89PT0iaHRtbCJ8fF89PT0iYXR0YWNobWVudCIpJiZ0aGlzLmJsb2NrT3BlcmF0aW9ucy5mb2N1c0Jsb2NrKFMuaWQpfXVwZGF0ZVZhbHVlKCl7dGhpcy5vdXRwdXRGb3JtYXQ9PT0iaHRtbCI/dGhpcy52YWx1ZT1Sby5nZXRIdG1sT3V0cHV0KHRoaXMuYmxvY2tzKTp0aGlzLnZhbHVlPVJvLmdldE1hcmtkb3duT3V0cHV0KHRoaXMuYmxvY2tzKSx0aGlzLmNoYW5nZVN1YmplY3QubmV4dCh0aGlzLnZhbHVlKSx0aGlzLnNhdmVUb0hpc3RvcnkoITApfWdldFZhbHVlKCl7cmV0dXJuIHRoaXMudmFsdWV9c2V0VmFsdWUoXyl7dGhpcy52YWx1ZT1fLHRoaXMub3V0cHV0Rm9ybWF0PT09Imh0bWwiP3RoaXMuYmxvY2tzPVJvLnBhcnNlSHRtbFRvQmxvY2tzKF8pOnRoaXMuYmxvY2tzPVJvLnBhcnNlTWFya2Rvd25Ub0Jsb2NrcyhfKSx0aGlzLmJsb2Nrcy5sZW5ndGg9PT0wJiYodGhpcy5ibG9ja3M9W3tpZDpHMS5nZW5lcmF0ZUJsb2NrSWQoKSx0eXBlOiJwYXJhZ3JhcGgiLGNvbnRlbnQ6IiJ9XSksdGhpcy5jaGFuZ2VTdWJqZWN0Lm5leHQodGhpcy52YWx1ZSksdGhpcy5lZGl0b3JDb250ZW50UmVmJiZ0aGlzLnJlbmRlckJsb2Nrc1Byb2dyYW1tYXRpY2FsbHkoKX1leHBvcnRCbG9ja3MoKXtyZXR1cm4gSlNPTi5wYXJzZShKU09OLnN0cmluZ2lmeSh0aGlzLmJsb2NrcykpfWltcG9ydEJsb2NrcyhfKXt0aGlzLmJsb2Nrcz1KU09OLnBhcnNlKEpTT04uc3RyaW5naWZ5KF8pKSx0aGlzLnVwZGF0ZVZhbHVlKCksdGhpcy5lZGl0b3JDb250ZW50UmVmJiZ0aGlzLnJlbmRlckJsb2Nrc1Byb2dyYW1tYXRpY2FsbHkoKX1leHBvcnRBc0h0bWwoKXtyZXR1cm4gUm8uZ2V0SHRtbE91dHB1dCh0aGlzLmJsb2Nrcyl9ZXhwb3J0QXNNYXJrZG93bigpe3JldHVybiBSby5nZXRNYXJrZG93bk91dHB1dCh0aGlzLmJsb2Nrcyl9ZXhwb3J0U3RhdGUoKXtyZXR1cm57YmxvY2tzOnRoaXMuZXhwb3J0QmxvY2tzKCksb3V0cHV0Rm9ybWF0OnRoaXMub3V0cHV0Rm9ybWF0fX1pbXBvcnRTdGF0ZShfKXtfLm91dHB1dEZvcm1hdCYmKHRoaXMub3V0cHV0Rm9ybWF0PV8ub3V0cHV0Rm9ybWF0KSx0aGlzLmltcG9ydEJsb2NrcyhfLmJsb2Nrcyl9aGFuZGxlRHJhZ0VuZCgpe2lmKHRoaXMuZHJhZ2dlZEJsb2NrSWQpe2xldCBTPXRoaXMuZWRpdG9yQ29udGVudFJlZi5xdWVyeVNlbGVjdG9yKGBbZGF0YS1ibG9jay1pZD0iJHt0aGlzLmRyYWdnZWRCbG9ja0lkfSJdYCk7UyYmUy5jbGFzc0xpc3QucmVtb3ZlKCJkcmFnZ2luZyIpfXRoaXMuZWRpdG9yQ29udGVudFJlZi5xdWVyeVNlbGVjdG9yQWxsKCIuYmxvY2std3JhcHBlciIpLmZvckVhY2goUz0+e1MuY2xhc3NMaXN0LnJlbW92ZSgiZHJhZy1vdmVyLWJlZm9yZSIsImRyYWctb3Zlci1hZnRlciIpfSksdGhpcy5lZGl0b3JDb250ZW50UmVmLmNsYXNzTGlzdC5yZW1vdmUoImRyYWdnaW5nIiksdGhpcy5kcmFnZ2VkQmxvY2tJZD1udWxsLHRoaXMuZHJhZ092ZXJCbG9ja0lkPW51bGwsdGhpcy5kcmFnT3ZlclBvc2l0aW9uPW51bGx9aGFuZGxlRHJvcChfLFMpe2lmKF8ucHJldmVudERlZmF1bHQoKSwhdGhpcy5kcmFnZ2VkQmxvY2tJZHx8dGhpcy5kcmFnZ2VkQmxvY2tJZD09PVMuaWQpcmV0dXJuO2xldCAkPXRoaXMuYmxvY2tzLmZpbmRJbmRleChCPT5CLmlkPT09dGhpcy5kcmFnZ2VkQmxvY2tJZCksVD10aGlzLmJsb2Nrcy5maW5kSW5kZXgoQj0+Qi5pZD09PVMuaWQpO2lmKCQ9PT0tMXx8VD09PS0xKXJldHVybjtsZXRbRV09dGhpcy5ibG9ja3Muc3BsaWNlKCQsMSkscT1UO3RoaXMuZHJhZ092ZXJQb3NpdGlvbj09PSJhZnRlciI/cT0kPFQ/VDpUKzE6cT0kPFQ/VC0xOlQsdGhpcy5ibG9ja3Muc3BsaWNlKHEsMCxFKSx0aGlzLnJlbmRlckJsb2Nrc1Byb2dyYW1tYXRpY2FsbHkoKSx0aGlzLnVwZGF0ZVZhbHVlKCksdGhpcy5oYW5kbGVEcmFnRW5kKCksc2V0VGltZW91dCgoKT0+e2xldCBCPXRoaXMuc2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yKGBbZGF0YS1ibG9jay1pZD0iJHtFLmlkfSJdIC5ibG9ja2ApO0ImJkUudHlwZSE9PSJkaXZpZGVyIiYmQi5mb2N1cygpfSwxMDApfWhhbmRsZVRleHRTZWxlY3Rpb24oXyl7dGhpcy5zbGFzaE1lbnUudmlzaWJsZX11cGRhdGVGb3JtYXR0aW5nTWVudVBvc2l0aW9uKCl7bGV0IF89W107dGhpcy5zaGFkb3dSb290JiZfLnB1c2godGhpcy5zaGFkb3dSb290KSx0aGlzLnNoYWRvd1Jvb3Q/LnF1ZXJ5U2VsZWN0b3JBbGwoIi5ibG9jay13cmFwcGVyIik/LmZvckVhY2goVD0+e2xldCBFPVQucXVlcnlTZWxlY3RvcigiZGVlcy13eXNpd3lnLWJsb2NrIik7RT8uc2hhZG93Um9vdCYmXy5wdXNoKEUuc2hhZG93Um9vdCl9KTtsZXQgJD1TYy5nZXRTZWxlY3Rpb25Db29yZGluYXRlcyguLi5fKTskJiZ0aGlzLmZvcm1hdHRpbmdNZW51LnNob3coe3g6JC54LHk6JC55fSxhc3luYyBUPT5hd2FpdCB0aGlzLmFwcGx5Rm9ybWF0KFQpKX1oaWRlRm9ybWF0dGluZ01lbnUoKXt0aGlzLmZvcm1hdHRpbmdNZW51LmhpZGUoKSx0aGlzLnNlbGVjdGVkVGV4dD0iIn1hc3luYyBhcHBseUZvcm1hdChfKXtsZXQgUz1bXTt0aGlzLnNoYWRvd1Jvb3QmJlMucHVzaCh0aGlzLnNoYWRvd1Jvb3QpLHRoaXMuc2hhZG93Um9vdD8ucXVlcnlTZWxlY3RvckFsbCgiLmJsb2NrLXdyYXBwZXIiKT8uZm9yRWFjaChlZT0+e2xldCBQPWVlLnF1ZXJ5U2VsZWN0b3IoImRlZXMtd3lzaXd5Zy1ibG9jayIpO1A/LnNoYWRvd1Jvb3QmJlMucHVzaChQLnNoYWRvd1Jvb3QpfSk7bGV0IFQ9WWUuZ2V0U2VsZWN0aW9uSW5mbyguLi5TKTtpZighVClyZXR1cm47bGV0IEUscSxCPXRoaXMuc2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yQWxsKCIuYmxvY2std3JhcHBlciIpO2ZvcihsZXQgZWU9MDtlZTxCLmxlbmd0aDtlZSsrKXtsZXQgUD1CW2VlXSxnZT1QLnF1ZXJ5U2VsZWN0b3IoImRlZXMtd3lzaXd5Zy1ibG9jayIpO2lmKGdlPy5zaGFkb3dSb290KXtsZXQgd2U9Z2Uuc2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yKCIuYmxvY2siKTtpZih3ZSYmKHdlLmNvbnRhaW5zKFQuc3RhcnRDb250YWluZXIpfHx3ZS5jb250YWlucyhULmVuZENvbnRhaW5lcikpKXtsZXQgST1QLmdldEF0dHJpYnV0ZSgiZGF0YS1ibG9jay1pZCIpO0U9dGhpcy5ibG9ja3MuZmluZChuZT0+bmUuaWQ9PT1JKSxxPWdlO2JyZWFrfX19aWYoIUV8fCFxKXJldHVybjtsZXQgRz1ZZS5jcmVhdGVSYW5nZUZyb21JbmZvKFQpO2lmKF89PT0ibGluayIpe2xldCBlZT1hd2FpdCB0aGlzLnNob3dMaW5rRGlhbG9nKCk7aWYoIWVlKXtxLmZvY3VzKCk7cmV0dXJufVNjLmFwcGx5Rm9ybWF0KF8sZWUsRyxTKX1lbHNlIFNjLmFwcGx5Rm9ybWF0KF8sdm9pZCAwLEcsUyk7YXdhaXQgbmV3IFByb21pc2UoZWU9PnNldFRpbWVvdXQoZWUsMTApKSxFLmNvbnRlbnQ9cS5nZXRDb250ZW50KCksdGhpcy51cGRhdGVWYWx1ZSgpLHEuZm9jdXMoKSxfPT09ImxpbmsiP3RoaXMuaGlkZUZvcm1hdHRpbmdNZW51KCk6dGhpcy5zZWxlY3RlZFRleHQ9IiJ9YXN5bmMgc2hvd0xpbmtEaWFsb2coKXtyZXR1cm4gbmV3IFByb21pc2UoXz0+e2xldCBTPW51bGw7V3IuY3JlYXRlQW5kU2hvdyh7aGVhZGluZzoiQWRkIExpbmsiLGNvbnRlbnQ6ejRgCiAgICAgICAgICA8c3R5bGU+CiAgICAgICAgICAgIC5saW5rLWlucHV0IHsKICAgICAgICAgICAgICB3aWR0aDogMTAwJTsKICAgICAgICAgICAgICBwYWRkaW5nOiAxMnB4OwogICAgICAgICAgICAgIGZvbnQtc2l6ZTogMTZweDsKICAgICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1kZWVzLWNvbG9yLWxpbmUtYnJpZ2h0KTsKICAgICAgICAgICAgICBib3JkZXItcmFkaXVzOiA0cHg7CiAgICAgICAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tZGVlcy1jb2xvci1pbnB1dCk7CiAgICAgICAgICAgICAgY29sb3I6IHZhcigtLWRlZXMtY29sb3ItdGV4dCk7CiAgICAgICAgICAgICAgbWFyZ2luOiAxNnB4IDA7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgLmxpbmstaW5wdXQ6Zm9jdXMgewogICAgICAgICAgICAgIG91dGxpbmU6IG5vbmU7CiAgICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiB2YXIoLS1kZWVzLWNvbG9yLXByaW1hcnkpOwogICAgICAgICAgICB9CiAgICAgICAgICA8L3N0eWxlPgogICAgICAgICAgPGlucHV0IAogICAgICAgICAgICBjbGFzcz0ibGluay1pbnB1dCIgCiAgICAgICAgICAgIHR5cGU9InVybCIgCiAgICAgICAgICAgIHBsYWNlaG9sZGVyPSJodHRwczovL2V4YW1wbGUuY29tIiAKICAgICAgICAgICAgQGtleWRvd249IiR7JD0+e2lmKCQua2V5PT09IkVudGVyIil7bGV0IFQ9JC50YXJnZXQ7Uz1ULnZhbHVlO2xldCBFPVQuY2xvc2VzdCgiZGVlcy1tb2RhbCIpO2lmKEUpe2xldCBxPUUuc2hhZG93Um9vdD8ucXVlcnlTZWxlY3RvcigiLmJvdHRvbUJ1dHRvbjpsYXN0LWNoaWxkIik7cSYmcS5jbGljaygpfX19fSIKICAgICAgICAgICAgQGlucHV0PSIkeyQ9PntTPSQudGFyZ2V0LnZhbHVlfX0iCiAgICAgICAgICAvPgogICAgICAgIGAsbWVudU9wdGlvbnM6W3tuYW1lOiJDYW5jZWwiLGFjdGlvbjphc3luYyAkPT57JC5kZXN0cm95KCksXyhudWxsKX19LHtuYW1lOiJBZGQgTGluayIsYWN0aW9uOmFzeW5jICQ9PnskLmRlc3Ryb3koKSxfKFMpfX1dfSksc2V0VGltZW91dCgoKT0+e2xldCAkPWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoImRlZXMtbW9kYWwgLmxpbmstaW5wdXQiKTskJiYkLmZvY3VzKCl9LDEwMCl9KX11bmRvKCl7bGV0IF89dGhpcy5oaXN0b3J5LnVuZG8oKTtfJiZ0aGlzLnJlc3RvcmVTdGF0ZShfKX1yZWRvKCl7bGV0IF89dGhpcy5oaXN0b3J5LnJlZG8oKTtfJiZ0aGlzLnJlc3RvcmVTdGF0ZShfKX1yZXN0b3JlU3RhdGUoXyl7dGhpcy5ibG9ja3M9Xy5ibG9ja3MsdGhpcy5zZWxlY3RlZEJsb2NrSWQ9Xy5zZWxlY3RlZEJsb2NrSWQsdGhpcy5yZW5kZXJCbG9ja3NQcm9ncmFtbWF0aWNhbGx5KCksXy5jdXJzb3JQb3NpdGlvbj9zZXRUaW1lb3V0KCgpPT57bGV0ICQ9dGhpcy5zaGFkb3dSb290Py5xdWVyeVNlbGVjdG9yKGBbZGF0YS1ibG9jay1pZD0iJHtfLmN1cnNvclBvc2l0aW9uLmJsb2NrSWR9Il1gKT8ucXVlcnlTZWxlY3RvcigiZGVlcy13eXNpd3lnLWJsb2NrIik7JCYmJC5mb2N1c1dpdGhDdXJzb3IoXy5jdXJzb3JQb3NpdGlvbi5vZmZzZXQpfSw1MCk6Xy5zZWxlY3RlZEJsb2NrSWQmJnNldFRpbWVvdXQoKCk9Pnt0aGlzLmJsb2NrT3BlcmF0aW9ucy5mb2N1c0Jsb2NrKF8uc2VsZWN0ZWRCbG9ja0lkKX0sNTApLHRoaXMudXBkYXRlVmFsdWUoKX1zYXZlVG9IaXN0b3J5KF89ITApe2xldCBTO2lmKHRoaXMuc2VsZWN0ZWRCbG9ja0lkKXtsZXQgVD10aGlzLnNoYWRvd1Jvb3Q/LnF1ZXJ5U2VsZWN0b3IoYFtkYXRhLWJsb2NrLWlkPSIke3RoaXMuc2VsZWN0ZWRCbG9ja0lkfSJdYCk/LnF1ZXJ5U2VsZWN0b3IoImRlZXMtd3lzaXd5Zy1ibG9jayIpO2lmKFQmJnR5cGVvZiBULmdldEN1cnNvclBvc2l0aW9uPT0iZnVuY3Rpb24iKXtsZXQgRT1ULnNoYWRvd1Jvb3Q/LnF1ZXJ5U2VsZWN0b3IoIi5ibG9jayIpO2lmKEUpe2xldCBxPVQuZ2V0Q3Vyc29yUG9zaXRpb24oRSk7cSE9PW51bGwmJihTPXtibG9ja0lkOnRoaXMuc2VsZWN0ZWRCbG9ja0lkLG9mZnNldDpxfSl9fX1fP3RoaXMuaGlzdG9yeS5zYXZlU3RhdGUodGhpcy5ibG9ja3MsdGhpcy5zZWxlY3RlZEJsb2NrSWQsUyk6dGhpcy5oaXN0b3J5LnNhdmVDaGVja3BvaW50KHRoaXMuYmxvY2tzLHRoaXMuc2VsZWN0ZWRCbG9ja0lkLFMpfXN0YXRpY3tybihpLHIpfX07cmV0dXJuIFI9aX0pKCl9KTt2YXIgbTRyPXAoKCk9PntzZGUoKTtvZGUoKX0pO3ZhciBhRixnNHI9cCgoKT0+e2FGPWNsYXNze29wdGlvbnM7Y2FudmFzO2N0eDtpbWc7b3ZlcmxheUNhbnZhcztvdmVybGF5Q3R4O2Nyb3BYPTA7Y3JvcFk9MDtjcm9wU2l6ZT0yMDA7bWluQ3JvcFNpemU9NTA7aXNEcmFnZ2luZz0hMTtpc1Jlc2l6aW5nPSExO2RyYWdTdGFydFg9MDtkcmFnU3RhcnRZPTA7cmVzaXplSGFuZGxlPSIiO2ltYWdlU2NhbGU9MTtpbWFnZU9mZnNldFg9MDtpbWFnZU9mZnNldFk9MDtjb25zdHJ1Y3Rvcih0KXt0aGlzLm9wdGlvbnM9e21pblNpemU6NTAsb3V0cHV0U2l6ZTo4MDAsb3V0cHV0UXVhbGl0eTouOTUsLi4udH0sdGhpcy5jYW52YXM9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiY2FudmFzIiksdGhpcy5jdHg9dGhpcy5jYW52YXMuZ2V0Q29udGV4dCgiMmQiKSx0aGlzLm92ZXJsYXlDYW52YXM9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiY2FudmFzIiksdGhpcy5vdmVybGF5Q3R4PXRoaXMub3ZlcmxheUNhbnZhcy5nZXRDb250ZXh0KCIyZCIpLHRoaXMuaW1nPW5ldyBJbWFnZX1hc3luYyBpbml0aWFsaXplKCl7YXdhaXQgdGhpcy5sb2FkSW1hZ2UoKSx0aGlzLnNldHVwQ2FudmFzZXMoKSx0aGlzLnNldHVwRXZlbnRMaXN0ZW5lcnMoKSx0aGlzLnJlbmRlcigpfWFzeW5jIGxvYWRJbWFnZSgpe3JldHVybiBuZXcgUHJvbWlzZSgodCxyKT0+e3RoaXMuaW1nLm9ubG9hZD0oKT0+dCgpLHRoaXMuaW1nLm9uZXJyb3I9cix0aGlzLmltZy5zcmM9dGhpcy5vcHRpb25zLmltYWdlfSl9c2V0dXBDYW52YXNlcygpe2xldCB0PXRoaXMub3B0aW9ucy5jb250YWluZXIscj1NYXRoLm1pbih0LmNsaWVudFdpZHRoLHQuY2xpZW50SGVpZ2h0KTt0aGlzLmNhbnZhcy53aWR0aD1yLHRoaXMuY2FudmFzLmhlaWdodD1yLHRoaXMuY2FudmFzLnN0eWxlLndpZHRoPSIxMDAlIix0aGlzLmNhbnZhcy5zdHlsZS5oZWlnaHQ9IjEwMCUiLHRoaXMuY2FudmFzLnN0eWxlLnBvc2l0aW9uPSJhYnNvbHV0ZSIsdGhpcy5jYW52YXMuc3R5bGUudG9wPSIwIix0aGlzLmNhbnZhcy5zdHlsZS5sZWZ0PSIwIix0aGlzLm92ZXJsYXlDYW52YXMud2lkdGg9cix0aGlzLm92ZXJsYXlDYW52YXMuaGVpZ2h0PXIsdGhpcy5vdmVybGF5Q2FudmFzLnN0eWxlLndpZHRoPSIxMDAlIix0aGlzLm92ZXJsYXlDYW52YXMuc3R5bGUuaGVpZ2h0PSIxMDAlIix0aGlzLm92ZXJsYXlDYW52YXMuc3R5bGUucG9zaXRpb249ImFic29sdXRlIix0aGlzLm92ZXJsYXlDYW52YXMuc3R5bGUudG9wPSIwIix0aGlzLm92ZXJsYXlDYW52YXMuc3R5bGUubGVmdD0iMCIsdGhpcy5vdmVybGF5Q2FudmFzLnN0eWxlLmN1cnNvcj0ibW92ZSIsdC5hcHBlbmRDaGlsZCh0aGlzLmNhbnZhcyksdC5hcHBlbmRDaGlsZCh0aGlzLm92ZXJsYXlDYW52YXMpO2xldCBpPU1hdGgubWluKHIvdGhpcy5pbWcud2lkdGgsci90aGlzLmltZy5oZWlnaHQpO3RoaXMuaW1hZ2VTY2FsZT1pLHRoaXMuaW1hZ2VPZmZzZXRYPShyLXRoaXMuaW1nLndpZHRoKmkpLzIsdGhpcy5pbWFnZU9mZnNldFk9KHItdGhpcy5pbWcuaGVpZ2h0KmkpLzI7bGV0IGE9dGhpcy5pbWcud2lkdGgqaSxuPXRoaXMuaW1nLmhlaWdodCppLG89TWF0aC5taW4oYSxuLHIqLjgpO3RoaXMuY3JvcFNpemU9byouOCx0aGlzLmNyb3BYPShyLXRoaXMuY3JvcFNpemUpLzIsdGhpcy5jcm9wWT0oci10aGlzLmNyb3BTaXplKS8yfXNldHVwRXZlbnRMaXN0ZW5lcnMoKXt0aGlzLm92ZXJsYXlDYW52YXMuYWRkRXZlbnRMaXN0ZW5lcigibW91c2Vkb3duIix0aGlzLmhhbmRsZU1vdXNlRG93bi5iaW5kKHRoaXMpKSx0aGlzLm92ZXJsYXlDYW52YXMuYWRkRXZlbnRMaXN0ZW5lcigibW91c2Vtb3ZlIix0aGlzLmhhbmRsZU1vdXNlTW92ZS5iaW5kKHRoaXMpKSx0aGlzLm92ZXJsYXlDYW52YXMuYWRkRXZlbnRMaXN0ZW5lcigibW91c2V1cCIsdGhpcy5oYW5kbGVNb3VzZVVwLmJpbmQodGhpcykpLHRoaXMub3ZlcmxheUNhbnZhcy5hZGRFdmVudExpc3RlbmVyKCJtb3VzZWxlYXZlIix0aGlzLmhhbmRsZU1vdXNlVXAuYmluZCh0aGlzKSksdGhpcy5vdmVybGF5Q2FudmFzLmFkZEV2ZW50TGlzdGVuZXIoInRvdWNoc3RhcnQiLHRoaXMuaGFuZGxlVG91Y2hTdGFydC5iaW5kKHRoaXMpKSx0aGlzLm92ZXJsYXlDYW52YXMuYWRkRXZlbnRMaXN0ZW5lcigidG91Y2htb3ZlIix0aGlzLmhhbmRsZVRvdWNoTW92ZS5iaW5kKHRoaXMpKSx0aGlzLm92ZXJsYXlDYW52YXMuYWRkRXZlbnRMaXN0ZW5lcigidG91Y2hlbmQiLHRoaXMuaGFuZGxlVG91Y2hFbmQuYmluZCh0aGlzKSl9aGFuZGxlTW91c2VEb3duKHQpe2xldCByPXRoaXMub3ZlcmxheUNhbnZhcy5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKSxpPSh0LmNsaWVudFgtci5sZWZ0KSoodGhpcy5vdmVybGF5Q2FudmFzLndpZHRoL3Iud2lkdGgpLGE9KHQuY2xpZW50WS1yLnRvcCkqKHRoaXMub3ZlcmxheUNhbnZhcy5oZWlnaHQvci5oZWlnaHQpLG49dGhpcy5nZXRSZXNpemVIYW5kbGUoaSxhKTtuPyh0aGlzLmlzUmVzaXppbmc9ITAsdGhpcy5yZXNpemVIYW5kbGU9bik6dGhpcy5pc0luc2lkZUNyb3BBcmVhKGksYSkmJih0aGlzLmlzRHJhZ2dpbmc9ITApLHRoaXMuZHJhZ1N0YXJ0WD1pLHRoaXMuZHJhZ1N0YXJ0WT1hfWhhbmRsZU1vdXNlTW92ZSh0KXtsZXQgcj10aGlzLm92ZXJsYXlDYW52YXMuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCksaT0odC5jbGllbnRYLXIubGVmdCkqKHRoaXMub3ZlcmxheUNhbnZhcy53aWR0aC9yLndpZHRoKSxhPSh0LmNsaWVudFktci50b3ApKih0aGlzLm92ZXJsYXlDYW52YXMuaGVpZ2h0L3IuaGVpZ2h0KSxuPXRoaXMuZ2V0UmVzaXplSGFuZGxlKGksYSk7aWYobj90aGlzLm92ZXJsYXlDYW52YXMuc3R5bGUuY3Vyc29yPXRoaXMuZ2V0UmVzaXplQ3Vyc29yKG4pOnRoaXMuaXNJbnNpZGVDcm9wQXJlYShpLGEpP3RoaXMub3ZlcmxheUNhbnZhcy5zdHlsZS5jdXJzb3I9Im1vdmUiOnRoaXMub3ZlcmxheUNhbnZhcy5zdHlsZS5jdXJzb3I9ImRlZmF1bHQiLHRoaXMuaXNEcmFnZ2luZyl7bGV0IG89aS10aGlzLmRyYWdTdGFydFgscz1hLXRoaXMuZHJhZ1N0YXJ0WSxsPXRoaXMuaW1hZ2VPZmZzZXRYLGM9dGhpcy5pbWFnZU9mZnNldFgrdGhpcy5pbWcud2lkdGgqdGhpcy5pbWFnZVNjYWxlLXRoaXMuY3JvcFNpemUsdT10aGlzLmltYWdlT2Zmc2V0WSxkPXRoaXMuaW1hZ2VPZmZzZXRZK3RoaXMuaW1nLmhlaWdodCp0aGlzLmltYWdlU2NhbGUtdGhpcy5jcm9wU2l6ZTt0aGlzLmNyb3BYPU1hdGgubWF4KGwsTWF0aC5taW4oYyx0aGlzLmNyb3BYK28pKSx0aGlzLmNyb3BZPU1hdGgubWF4KHUsTWF0aC5taW4oZCx0aGlzLmNyb3BZK3MpKSx0aGlzLmRyYWdTdGFydFg9aSx0aGlzLmRyYWdTdGFydFk9YSx0aGlzLnJlbmRlcigpfXRoaXMuaXNSZXNpemluZyYmKHRoaXMuaGFuZGxlUmVzaXplKGksYSksdGhpcy5kcmFnU3RhcnRYPWksdGhpcy5kcmFnU3RhcnRZPWEsdGhpcy5yZW5kZXIoKSl9aGFuZGxlTW91c2VVcCgpe3RoaXMuaXNEcmFnZ2luZz0hMSx0aGlzLmlzUmVzaXppbmc9ITEsdGhpcy5yZXNpemVIYW5kbGU9IiJ9aGFuZGxlVG91Y2hTdGFydCh0KXt0LnByZXZlbnREZWZhdWx0KCk7bGV0IHI9dC50b3VjaGVzWzBdLGk9bmV3IE1vdXNlRXZlbnQoIm1vdXNlZG93biIse2NsaWVudFg6ci5jbGllbnRYLGNsaWVudFk6ci5jbGllbnRZfSk7dGhpcy5oYW5kbGVNb3VzZURvd24oaSl9aGFuZGxlVG91Y2hNb3ZlKHQpe3QucHJldmVudERlZmF1bHQoKTtsZXQgcj10LnRvdWNoZXNbMF0saT1uZXcgTW91c2VFdmVudCgibW91c2Vtb3ZlIix7Y2xpZW50WDpyLmNsaWVudFgsY2xpZW50WTpyLmNsaWVudFl9KTt0aGlzLmhhbmRsZU1vdXNlTW92ZShpKX1oYW5kbGVUb3VjaEVuZCh0KXt0LnByZXZlbnREZWZhdWx0KCksdGhpcy5oYW5kbGVNb3VzZVVwKCl9Z2V0UmVzaXplSGFuZGxlKHQscil7bGV0IGE9e253Ont4OnRoaXMuY3JvcFgseTp0aGlzLmNyb3BZfSxuZTp7eDp0aGlzLmNyb3BYK3RoaXMuY3JvcFNpemUseTp0aGlzLmNyb3BZfSxzdzp7eDp0aGlzLmNyb3BYLHk6dGhpcy5jcm9wWSt0aGlzLmNyb3BTaXplfSxzZTp7eDp0aGlzLmNyb3BYK3RoaXMuY3JvcFNpemUseTp0aGlzLmNyb3BZK3RoaXMuY3JvcFNpemV9fTtmb3IobGV0W24sb11vZiBPYmplY3QuZW50cmllcyhhKSlpZihNYXRoLmFicyh0LW8ueCk8MjAmJk1hdGguYWJzKHItby55KTwyMClyZXR1cm4gbjtyZXR1cm4iIn1nZXRSZXNpemVDdXJzb3IodCl7cmV0dXJue253OiJudy1yZXNpemUiLG5lOiJuZS1yZXNpemUiLHN3OiJzdy1yZXNpemUiLHNlOiJzZS1yZXNpemUifVt0XXx8ImRlZmF1bHQifWlzSW5zaWRlQ3JvcEFyZWEodCxyKXtyZXR1cm4gdD49dGhpcy5jcm9wWCYmdDw9dGhpcy5jcm9wWCt0aGlzLmNyb3BTaXplJiZyPj10aGlzLmNyb3BZJiZyPD10aGlzLmNyb3BZK3RoaXMuY3JvcFNpemV9aGFuZGxlUmVzaXplKHQscil7bGV0IGk9dC10aGlzLmRyYWdTdGFydFgsYT1yLXRoaXMuZHJhZ1N0YXJ0WSxuPXRoaXMuaW1hZ2VPZmZzZXRYLG89dGhpcy5pbWFnZU9mZnNldFkscz10aGlzLmltYWdlT2Zmc2V0WCt0aGlzLmltZy53aWR0aCp0aGlzLmltYWdlU2NhbGUsbD10aGlzLmltYWdlT2Zmc2V0WSt0aGlzLmltZy5oZWlnaHQqdGhpcy5pbWFnZVNjYWxlO3N3aXRjaCh0aGlzLnJlc2l6ZUhhbmRsZSl7Y2FzZSJzZSI6dGhpcy5jcm9wU2l6ZT1NYXRoLm1heCh0aGlzLm1pbkNyb3BTaXplLE1hdGgubWluKHRoaXMuY3JvcFNpemUrTWF0aC5tYXgoaSxhKSxNYXRoLm1pbihzLXRoaXMuY3JvcFgsbC10aGlzLmNyb3BZKSkpO2JyZWFrO2Nhc2UibnciOmxldCBjPU1hdGgubWF4KHRoaXMubWluQ3JvcFNpemUsdGhpcy5jcm9wU2l6ZS1NYXRoLm1heChpLGEpKSx1PXRoaXMuY3JvcFNpemUtYyxkPXRoaXMuY3JvcFgrdSxoPXRoaXMuY3JvcFkrdTtkPj1uJiZoPj1vJiYodGhpcy5jcm9wWD1kLHRoaXMuY3JvcFk9aCx0aGlzLmNyb3BTaXplPWMpO2JyZWFrO2Nhc2UibmUiOmxldCBmPU1hdGgubWF4KGksLWEpLHg9TWF0aC5tYXgodGhpcy5taW5Dcm9wU2l6ZSx0aGlzLmNyb3BTaXplK2YpLHY9eC10aGlzLmNyb3BTaXplLGI9dGhpcy5jcm9wWS12O2I+PW8mJnRoaXMuY3JvcFgreDw9cyYmKHRoaXMuY3JvcFk9Yix0aGlzLmNyb3BTaXplPXgpO2JyZWFrO2Nhc2Uic3ciOmxldCB5PU1hdGgubWF4KC1pLGEpLHc9TWF0aC5tYXgodGhpcy5taW5Dcm9wU2l6ZSx0aGlzLmNyb3BTaXplK3kpLGs9dy10aGlzLmNyb3BTaXplLE89dGhpcy5jcm9wWC1rO08+PW4mJnRoaXMuY3JvcFkrdzw9bCYmKHRoaXMuY3JvcFg9Tyx0aGlzLmNyb3BTaXplPXcpO2JyZWFrfX1yZW5kZXIoKXt0aGlzLmN0eC5jbGVhclJlY3QoMCwwLHRoaXMuY2FudmFzLndpZHRoLHRoaXMuY2FudmFzLmhlaWdodCksdGhpcy5vdmVybGF5Q3R4LmNsZWFyUmVjdCgwLDAsdGhpcy5vdmVybGF5Q2FudmFzLndpZHRoLHRoaXMub3ZlcmxheUNhbnZhcy5oZWlnaHQpLHRoaXMuY3R4LmZpbGxTdHlsZT0iIzAwMDAwMCIsdGhpcy5jdHguZmlsbFJlY3QoMCwwLHRoaXMuY2FudmFzLndpZHRoLHRoaXMuY2FudmFzLmhlaWdodCksdGhpcy5jdHguZHJhd0ltYWdlKHRoaXMuaW1nLHRoaXMuaW1hZ2VPZmZzZXRYLHRoaXMuaW1hZ2VPZmZzZXRZLHRoaXMuaW1nLndpZHRoKnRoaXMuaW1hZ2VTY2FsZSx0aGlzLmltZy5oZWlnaHQqdGhpcy5pbWFnZVNjYWxlKSx0aGlzLm92ZXJsYXlDdHguZmlsbFN0eWxlPSJyZ2JhKDAsIDAsIDAsIDAuNSkiLHRoaXMub3ZlcmxheUN0eC5maWxsUmVjdCh0aGlzLmltYWdlT2Zmc2V0WCx0aGlzLmltYWdlT2Zmc2V0WSx0aGlzLmltZy53aWR0aCp0aGlzLmltYWdlU2NhbGUsdGhpcy5pbWcuaGVpZ2h0KnRoaXMuaW1hZ2VTY2FsZSksdGhpcy5vdmVybGF5Q3R4LnNhdmUoKSx0aGlzLm9wdGlvbnMuc2hhcGU9PT0icm91bmQiPyh0aGlzLm92ZXJsYXlDdHguYmVnaW5QYXRoKCksdGhpcy5vdmVybGF5Q3R4LmFyYyh0aGlzLmNyb3BYK3RoaXMuY3JvcFNpemUvMix0aGlzLmNyb3BZK3RoaXMuY3JvcFNpemUvMix0aGlzLmNyb3BTaXplLzIsMCxNYXRoLlBJKjIpLHRoaXMub3ZlcmxheUN0eC5jbGlwKCkpOih0aGlzLm92ZXJsYXlDdHguYmVnaW5QYXRoKCksdGhpcy5vdmVybGF5Q3R4LnJlY3QodGhpcy5jcm9wWCx0aGlzLmNyb3BZLHRoaXMuY3JvcFNpemUsdGhpcy5jcm9wU2l6ZSksdGhpcy5vdmVybGF5Q3R4LmNsaXAoKSksdGhpcy5vdmVybGF5Q3R4LmNsZWFyUmVjdCgwLDAsdGhpcy5vdmVybGF5Q2FudmFzLndpZHRoLHRoaXMub3ZlcmxheUNhbnZhcy5oZWlnaHQpLHRoaXMub3ZlcmxheUN0eC5yZXN0b3JlKCksdGhpcy5vdmVybGF5Q3R4LnN0cm9rZVN0eWxlPSJ3aGl0ZSIsdGhpcy5vdmVybGF5Q3R4LmxpbmVXaWR0aD0yLHRoaXMub3B0aW9ucy5zaGFwZT09PSJyb3VuZCI/KHRoaXMub3ZlcmxheUN0eC5iZWdpblBhdGgoKSx0aGlzLm92ZXJsYXlDdHguYXJjKHRoaXMuY3JvcFgrdGhpcy5jcm9wU2l6ZS8yLHRoaXMuY3JvcFkrdGhpcy5jcm9wU2l6ZS8yLHRoaXMuY3JvcFNpemUvMiwwLE1hdGguUEkqMiksdGhpcy5vdmVybGF5Q3R4LnN0cm9rZSgpKTp0aGlzLm92ZXJsYXlDdHguc3Ryb2tlUmVjdCh0aGlzLmNyb3BYLHRoaXMuY3JvcFksdGhpcy5jcm9wU2l6ZSx0aGlzLmNyb3BTaXplKSx0aGlzLmRyYXdSZXNpemVIYW5kbGVzKCl9ZHJhd1Jlc2l6ZUhhbmRsZXMoKXtsZXQgcj1be3g6dGhpcy5jcm9wWCx5OnRoaXMuY3JvcFl9LHt4OnRoaXMuY3JvcFgrdGhpcy5jcm9wU2l6ZSx5OnRoaXMuY3JvcFl9LHt4OnRoaXMuY3JvcFgseTp0aGlzLmNyb3BZK3RoaXMuY3JvcFNpemV9LHt4OnRoaXMuY3JvcFgrdGhpcy5jcm9wU2l6ZSx5OnRoaXMuY3JvcFkrdGhpcy5jcm9wU2l6ZX1dO3RoaXMub3ZlcmxheUN0eC5maWxsU3R5bGU9IndoaXRlIixyLmZvckVhY2goaT0+e3RoaXMub3ZlcmxheUN0eC5iZWdpblBhdGgoKSx0aGlzLm92ZXJsYXlDdHguYXJjKGkueCxpLnksOCwwLE1hdGguUEkqMiksdGhpcy5vdmVybGF5Q3R4LmZpbGwoKX0pfWFzeW5jIGdldENyb3BwZWRJbWFnZSgpe2xldCB0PWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImNhbnZhcyIpLHI9dC5nZXRDb250ZXh0KCIyZCIpLGk9MS90aGlzLmltYWdlU2NhbGUsYT10aGlzLmNyb3BTaXplKmksbj10aGlzLm9wdGlvbnMub3V0cHV0U2l6ZTtuPmEmJmNvbnNvbGUuaW5mbyhgUHJvZmlsZSBwaWN0dXJlOiBVcHNjYWxpbmcgZnJvbSAke01hdGgucm91bmQoYSl9cHggdG8gJHtufXB4YCksdC53aWR0aD1uLHQuaGVpZ2h0PW47bGV0IG89KHRoaXMuY3JvcFgtdGhpcy5pbWFnZU9mZnNldFgpKmkscz0odGhpcy5jcm9wWS10aGlzLmltYWdlT2Zmc2V0WSkqaSxsPXRoaXMuY3JvcFNpemUqaTt0aGlzLm9wdGlvbnMuc2hhcGU9PT0icm91bmQiJiYoci5iZWdpblBhdGgoKSxyLmFyYyhuLzIsbi8yLG4vMiwwLE1hdGguUEkqMiksci5jbGlwKCkpLHIuaW1hZ2VTbW9vdGhpbmdFbmFibGVkPSEwLHIuaW1hZ2VTbW9vdGhpbmdRdWFsaXR5PSJoaWdoIixyLmRyYXdJbWFnZSh0aGlzLmltZyxvLHMsbCxsLDAsMCxuLG4pO2xldCB1PXRoaXMub3B0aW9ucy5pbWFnZS5pbmNsdWRlcygiaW1hZ2UvcG5nIik/ImltYWdlL3BuZyI6ImltYWdlL2pwZWciO3JldHVybiB0LnRvRGF0YVVSTCh1LHRoaXMub3B0aW9ucy5vdXRwdXRRdWFsaXR5KX1kZXN0cm95KCl7dGhpcy5jYW52YXMucmVtb3ZlKCksdGhpcy5vdmVybGF5Q2FudmFzLnJlbW92ZSgpfX19KTt2YXIgcTQsYW4sY2RlLGI0cj1wKCgpPT57eGUoKTtQbygpO1FhKCk7eG8oKTtvcigpO0k0KCk7cGMoKTtwYygpO2c0cigpO0plKCk7cTQ9ZnVuY3Rpb24oZSx0LHIsaSxhLG4pe2Z1bmN0aW9uIG8oeSl7aWYoeSE9PXZvaWQgMCYmdHlwZW9mIHkhPSJmdW5jdGlvbiIpdGhyb3cgbmV3IFR5cGVFcnJvcigiRnVuY3Rpb24gZXhwZWN0ZWQiKTtyZXR1cm4geX1mb3IodmFyIHM9aS5raW5kLGw9cz09PSJnZXR0ZXIiPyJnZXQiOnM9PT0ic2V0dGVyIj8ic2V0IjoidmFsdWUiLGM9IXQmJmU/aS5zdGF0aWM/ZTplLnByb3RvdHlwZTpudWxsLHU9dHx8KGM/T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihjLGkubmFtZSk6e30pLGQsaD0hMSxmPXIubGVuZ3RoLTE7Zj49MDtmLS0pe3ZhciB4PXt9O2Zvcih2YXIgdiBpbiBpKXhbdl09dj09PSJhY2Nlc3MiP3t9Omlbdl07Zm9yKHZhciB2IGluIGkuYWNjZXNzKXguYWNjZXNzW3ZdPWkuYWNjZXNzW3ZdO3guYWRkSW5pdGlhbGl6ZXI9ZnVuY3Rpb24oeSl7aWYoaCl0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgYWRkIGluaXRpYWxpemVycyBhZnRlciBkZWNvcmF0aW9uIGhhcyBjb21wbGV0ZWQiKTtuLnB1c2gobyh5fHxudWxsKSl9O3ZhciBiPSgwLHJbZl0pKHM9PT0iYWNjZXNzb3IiP3tnZXQ6dS5nZXQsc2V0OnUuc2V0fTp1W2xdLHgpO2lmKHM9PT0iYWNjZXNzb3IiKXtpZihiPT09dm9pZCAwKWNvbnRpbnVlO2lmKGI9PT1udWxsfHx0eXBlb2YgYiE9Im9iamVjdCIpdGhyb3cgbmV3IFR5cGVFcnJvcigiT2JqZWN0IGV4cGVjdGVkIik7KGQ9byhiLmdldCkpJiYodS5nZXQ9ZCksKGQ9byhiLnNldCkpJiYodS5zZXQ9ZCksKGQ9byhiLmluaXQpKSYmYS51bnNoaWZ0KGQpfWVsc2UoZD1vKGIpKSYmKHM9PT0iZmllbGQiP2EudW5zaGlmdChkKTp1W2xdPWQpfWMmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShjLGkubmFtZSx1KSxoPSEwfSxhbj1mdW5jdGlvbihlLHQscil7Zm9yKHZhciBpPWFyZ3VtZW50cy5sZW5ndGg+MixhPTA7YTx0Lmxlbmd0aDthKyspcj1pP3RbYV0uY2FsbChlLHIpOnRbYV0uY2FsbChlKTtyZXR1cm4gaT9yOnZvaWQgMH0sY2RlPSgoKT0+e2xldCBlPVt5ZSgiZGVlcy1wcm9maWxlcGljdHVyZS1tb2RhbCIpXSx0LHI9W10saSxhPXplLG4sbz1bXSxzPVtdLGwsYz1bXSx1PVtdLGQsaD1bXSxmPVtdLHgsdj1bXSxiPVtdLHksdz1bXSxrPVtdLE8sej1bXSxNPVtdLEYsRD1bXSxOPVtdO3ZhciBSPWNsYXNzIGV4dGVuZHMgYXtzdGF0aWN7aT10aGlzfXN0YXRpY3tsZXQgXz10eXBlb2YgU3ltYm9sPT0iZnVuY3Rpb24iJiZTeW1ib2wubWV0YWRhdGE/T2JqZWN0LmNyZWF0ZShhW1N5bWJvbC5tZXRhZGF0YV0/P251bGwpOnZvaWQgMDtuPVtqKHt0eXBlOlN0cmluZ30pXSxsPVtqKHt0eXBlOlN0cmluZ30pXSxkPVtqKHt0eXBlOk51bWJlcn0pXSx4PVtqKHt0eXBlOk51bWJlcn0pXSx5PVtmZSgpXSxPPVtmZSgpXSxGPVtmZSgpXSxxNCh0aGlzLG51bGwsbix7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImluaXRpYWxJbWFnZSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6Uz0+ImluaXRpYWxJbWFnZSJpbiBTLGdldDpTPT5TLmluaXRpYWxJbWFnZSxzZXQ6KFMsJCk9PntTLmluaXRpYWxJbWFnZT0kfX0sbWV0YWRhdGE6X30sbyxzKSxxNCh0aGlzLG51bGwsbCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InNoYXBlIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpTPT4ic2hhcGUiaW4gUyxnZXQ6Uz0+Uy5zaGFwZSxzZXQ6KFMsJCk9PntTLnNoYXBlPSR9fSxtZXRhZGF0YTpffSxjLHUpLHE0KHRoaXMsbnVsbCxkLHtraW5kOiJhY2Nlc3NvciIsbmFtZToib3V0cHV0U2l6ZSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6Uz0+Im91dHB1dFNpemUiaW4gUyxnZXQ6Uz0+Uy5vdXRwdXRTaXplLHNldDooUywkKT0+e1Mub3V0cHV0U2l6ZT0kfX0sbWV0YWRhdGE6X30saCxmKSxxNCh0aGlzLG51bGwseCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6Im91dHB1dFF1YWxpdHkiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOlM9PiJvdXRwdXRRdWFsaXR5ImluIFMsZ2V0OlM9PlMub3V0cHV0UXVhbGl0eSxzZXQ6KFMsJCk9PntTLm91dHB1dFF1YWxpdHk9JH19LG1ldGFkYXRhOl99LHYsYikscTQodGhpcyxudWxsLHkse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJjdXJyZW50U3RlcCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6Uz0+ImN1cnJlbnRTdGVwImluIFMsZ2V0OlM9PlMuY3VycmVudFN0ZXAsc2V0OihTLCQpPT57Uy5jdXJyZW50U3RlcD0kfX0sbWV0YWRhdGE6X30sdyxrKSxxNCh0aGlzLG51bGwsTyx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImNyb3BwZWRJbWFnZSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6Uz0+ImNyb3BwZWRJbWFnZSJpbiBTLGdldDpTPT5TLmNyb3BwZWRJbWFnZSxzZXQ6KFMsJCk9PntTLmNyb3BwZWRJbWFnZT0kfX0sbWV0YWRhdGE6X30seixNKSxxNCh0aGlzLG51bGwsRix7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImlzUHJvY2Vzc2luZyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6Uz0+ImlzUHJvY2Vzc2luZyJpbiBTLGdldDpTPT5TLmlzUHJvY2Vzc2luZyxzZXQ6KFMsJCk9PntTLmlzUHJvY2Vzc2luZz0kfX0sbWV0YWRhdGE6X30sRCxOKSxxNChudWxsLHQ9e3ZhbHVlOml9LGUse2tpbmQ6ImNsYXNzIixuYW1lOmkubmFtZSxtZXRhZGF0YTpffSxudWxsLHIpLFI9aT10LnZhbHVlLF8mJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShpLFN5bWJvbC5tZXRhZGF0YSx7ZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITAsdmFsdWU6X30pfSNlPWFuKHRoaXMsbywiIik7Z2V0IGluaXRpYWxJbWFnZSgpe3JldHVybiB0aGlzLiNlfXNldCBpbml0aWFsSW1hZ2UoXyl7dGhpcy4jZT1ffSN0PShhbih0aGlzLHMpLGFuKHRoaXMsYywicm91bmQiKSk7Z2V0IHNoYXBlKCl7cmV0dXJuIHRoaXMuI3R9c2V0IHNoYXBlKF8pe3RoaXMuI3Q9X30jcj0oYW4odGhpcyx1KSxhbih0aGlzLGgsODAwKSk7Z2V0IG91dHB1dFNpemUoKXtyZXR1cm4gdGhpcy4jcn1zZXQgb3V0cHV0U2l6ZShfKXt0aGlzLiNyPV99I2k9KGFuKHRoaXMsZiksYW4odGhpcyx2LC45NSkpO2dldCBvdXRwdXRRdWFsaXR5KCl7cmV0dXJuIHRoaXMuI2l9c2V0IG91dHB1dFF1YWxpdHkoXyl7dGhpcy4jaT1ffSNhPShhbih0aGlzLGIpLGFuKHRoaXMsdywiY3JvcCIpKTtnZXQgY3VycmVudFN0ZXAoKXtyZXR1cm4gdGhpcy4jYX1zZXQgY3VycmVudFN0ZXAoXyl7dGhpcy4jYT1ffSNuPShhbih0aGlzLGspLGFuKHRoaXMseiwiIikpO2dldCBjcm9wcGVkSW1hZ2UoKXtyZXR1cm4gdGhpcy4jbn1zZXQgY3JvcHBlZEltYWdlKF8pe3RoaXMuI249X30jbz0oYW4odGhpcyxNKSxhbih0aGlzLEQsITEpKTtnZXQgaXNQcm9jZXNzaW5nKCl7cmV0dXJuIHRoaXMuI299c2V0IGlzUHJvY2Vzc2luZyhfKXt0aGlzLiNvPV99Y3JvcHBlcj0oYW4odGhpcyxOKSxudWxsKTt3aW5kb3dMYXllcjt6SW5kZXg9MDtzdGF0aWMgc3R5bGVzPVtEZSxtLmRlZmF1bHRTdHlsZXMsb2VgCiAgICAgIC8qIFRPRE86IE1pZ3JhdGUgaGFyZGNvZGVkIHZhbHVlcyB0byAtLWRlZXMtKiBDU1MgdmFyaWFibGVzICovCiAgICAgIDpob3N0IHsKICAgICAgICBmb250LWZhbWlseTogJHtJcn07CiAgICAgICAgY29sb3I6ICR7bS5iZFRoZW1lKCIjMzMzIiwiI2ZmZiIpfTsKICAgICAgICBwb3NpdGlvbjogZml4ZWQ7CiAgICAgICAgdG9wOiAwOwogICAgICAgIGxlZnQ6IDA7CiAgICAgICAgcmlnaHQ6IDA7CiAgICAgICAgYm90dG9tOiAwOwogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKICAgICAgICB6LWluZGV4OiB2YXIoLS16LWluZGV4KTsKICAgICAgfQoKICAgICAgLm1vZGFsLWNvbnRhaW5lciB7CiAgICAgICAgYmFja2dyb3VuZDogJHttLmJkVGhlbWUoIiNmZmZmZmYiLCIjMGEwYTBhIil9OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDEycHg7CiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHttLmJkVGhlbWUoInJnYmEoMCwgMCwgMCwgMC4wOCkiLCJyZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMDgpIil9OwogICAgICAgIGJveC1zaGFkb3c6ICR7bS5iZFRoZW1lKCIwIDIwcHggMjVweCAtNXB4IHJnYmEoMCwgMCwgMCwgMC4xKSwgMCAxMHB4IDEwcHggLTVweCByZ2JhKDAsIDAsIDAsIDAuMDQpIiwiMCAyMHB4IDI1cHggLTVweCByZ2JhKDAsIDAsIDAsIDAuMyksIDAgMTBweCAxMHB4IC01cHggcmdiYSgwLCAwLCAwLCAwLjIpIil9OwogICAgICAgIHdpZHRoOiA0ODBweDsKICAgICAgICBtYXgtd2lkdGg6IGNhbGMoMTAwdncgLSAzMnB4KTsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMTBweCkgc2NhbGUoMC45OCk7CiAgICAgICAgb3BhY2l0eTogMDsKICAgICAgICBhbmltYXRpb246IG1vZGFsU2hvdyAwLjI1cyBjdWJpYy1iZXppZXIoMC40LCAwLCAwLjIsIDEpIGZvcndhcmRzOwogICAgICB9CgogICAgICBAa2V5ZnJhbWVzIG1vZGFsU2hvdyB7CiAgICAgICAgdG8gewogICAgICAgICAgb3BhY2l0eTogMTsKICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgwcHgpIHNjYWxlKDEpOwogICAgICAgIH0KICAgICAgfQoKICAgICAgLm1vZGFsLWhlYWRlciB7CiAgICAgICAgaGVpZ2h0OiA1MnB4OwogICAgICAgIHBhZGRpbmc6IDAgMjBweDsKICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHttLmJkVGhlbWUoInJnYmEoMCwgMCwgMCwgMC4wNikiLCJyZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMDYpIil9OwogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgICAgZmxleC1zaHJpbms6IDA7CiAgICAgIH0KCiAgICAgIC5tb2RhbC10aXRsZSB7CiAgICAgICAgZm9udC1zaXplOiAxNXB4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7CiAgICAgICAgY29sb3I6ICR7bS5iZFRoZW1lKCIjMDkwOTBiIiwiI2ZhZmFmYSIpfTsKICAgICAgICBsZXR0ZXItc3BhY2luZzogLTAuMDFlbTsKICAgICAgfQoKICAgICAgLmNsb3NlLWJ1dHRvbiB7CiAgICAgICAgcG9zaXRpb246IGFic29sdXRlOwogICAgICAgIHJpZ2h0OiAxMHB4OwogICAgICAgIHRvcDogNTAlOwogICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTsKICAgICAgICB3aWR0aDogMzJweDsKICAgICAgICBoZWlnaHQ6IDMycHg7CiAgICAgICAgYm9yZGVyOiBub25lOwogICAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50OwogICAgICAgIGN1cnNvcjogcG9pbnRlcjsKICAgICAgICBib3JkZXItcmFkaXVzOiA4cHg7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOwogICAgICAgIGNvbG9yOiAke20uYmRUaGVtZSgiIzcxNzE3YSIsIiM3MTcxN2EiKX07CiAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuMTVzIGVhc2U7CiAgICAgIH0KCiAgICAgIC5jbG9zZS1idXR0b246aG92ZXIgewogICAgICAgIGJhY2tncm91bmQ6ICR7bS5iZFRoZW1lKCJyZ2JhKDAsIDAsIDAsIDAuMDUpIiwicmdiYSgyNTUsIDI1NSwgMjU1LCAwLjA1KSIpfTsKICAgICAgICBjb2xvcjogJHttLmJkVGhlbWUoIiMwOTA5MGIiLCIjZmFmYWZhIil9OwogICAgICB9CgogICAgICAuY2xvc2UtYnV0dG9uOmFjdGl2ZSB7CiAgICAgICAgYmFja2dyb3VuZDogJHttLmJkVGhlbWUoInJnYmEoMCwgMCwgMCwgMC4wOCkiLCJyZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMDgpIil9OwogICAgICB9CgogICAgICAubW9kYWwtYm9keSB7CiAgICAgICAgZmxleDogMTsKICAgICAgICBwYWRkaW5nOiAyNHB4OwogICAgICAgIG92ZXJmbG93LXk6IGF1dG87CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgZ2FwOiAyMHB4OwogICAgICB9CgogICAgICAuY3JvcHBlci1jb250YWluZXIgewogICAgICAgIHdpZHRoOiAxMDAlOwogICAgICAgIG1heC13aWR0aDogMzYwcHg7CiAgICAgICAgYXNwZWN0LXJhdGlvOiAxOwogICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgICBiYWNrZ3JvdW5kOiAke20uYmRUaGVtZSgiIzAwMDAwMCIsIiMwMDAwMDAiKX07CiAgICAgICAgYm9yZGVyLXJhZGl1czogMTJweDsKICAgICAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgICAgIGJveC1zaGFkb3c6ICR7bS5iZFRoZW1lKCJpbnNldCAwIDJweCA0cHggcmdiYSgwLCAwLCAwLCAwLjA2KSIsImluc2V0IDAgMnB4IDRweCByZ2JhKDAsIDAsIDAsIDAuMikiKX07CiAgICAgIH0KCiAgICAgIC5wcmV2aWV3LWNvbnRhaW5lciB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgZ2FwOiAyMHB4OwogICAgICB9CgogICAgICAucHJldmlldy1pbWFnZSB7CiAgICAgICAgd2lkdGg6IDE4MHB4OwogICAgICAgIGhlaWdodDogMTgwcHg7CiAgICAgICAgb2JqZWN0LWZpdDogY292ZXI7CiAgICAgICAgYm9yZGVyOiA0cHggc29saWQgJHttLmJkVGhlbWUoIiNmZmZmZmYiLCIjMTgxODFiIil9OwogICAgICAgIGJveC1zaGFkb3c6ICR7bS5iZFRoZW1lKCIwIDEwcHggMTVweCAtM3B4IHJnYmEoMCwgMCwgMCwgMC4xKSwgMCA0cHggNnB4IC0ycHggcmdiYSgwLCAwLCAwLCAwLjA1KSIsIjAgMTBweCAxNXB4IC0zcHggcmdiYSgwLCAwLCAwLCAwLjMpLCAwIDRweCA2cHggLTJweCByZ2JhKDAsIDAsIDAsIDAuMikiKX07CiAgICAgIH0KCiAgICAgIC5wcmV2aWV3LWltYWdlLnJvdW5kIHsKICAgICAgICBib3JkZXItcmFkaXVzOiA1MCU7CiAgICAgIH0KCiAgICAgIC5wcmV2aWV3LWltYWdlLnNxdWFyZSB7CiAgICAgICAgYm9yZGVyLXJhZGl1czogMTZweDsKICAgICAgfQoKICAgICAgLnN1Y2Nlc3MtbWVzc2FnZSB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGdhcDogMTBweDsKICAgICAgICBwYWRkaW5nOiAxMHB4IDIwcHg7CiAgICAgICAgYmFja2dyb3VuZDogJHttLmJkVGhlbWUoIiMxMGI5ODEiLCIjMTBiOTgxIil9OwogICAgICAgIGNvbG9yOiB3aGl0ZTsKICAgICAgICBib3JkZXItcmFkaXVzOiAxMDBweDsKICAgICAgICBmb250LXdlaWdodDogNTAwOwogICAgICAgIGZvbnQtc2l6ZTogMTRweDsKICAgICAgICBhbmltYXRpb246IHN1Y2Nlc3NQdWxzZSAwLjRzIGVhc2Utb3V0OwogICAgICB9CgogICAgICBAa2V5ZnJhbWVzIHN1Y2Nlc3NQdWxzZSB7CiAgICAgICAgMCUgeyB0cmFuc2Zvcm06IHNjYWxlKDAuOSk7IG9wYWNpdHk6IDA7IH0KICAgICAgICA1MCUgeyB0cmFuc2Zvcm06IHNjYWxlKDEuMDIpOyB9CiAgICAgICAgMTAwJSB7IHRyYW5zZm9ybTogc2NhbGUoMSk7IG9wYWNpdHk6IDE7IH0KICAgICAgfQoKICAgICAgLm1vZGFsLWZvb3RlciB7CiAgICAgICAgcGFkZGluZzogMjBweCAyNHB4OwogICAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAke20uYmRUaGVtZSgicmdiYSgwLCAwLCAwLCAwLjA2KSIsInJnYmEoMjU1LCAyNTUsIDI1NSwgMC4wNikiKX07CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBnYXA6IDEwcHg7CiAgICAgICAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDsKICAgICAgfQoKICAgICAgLmluc3RydWN0aW9ucyB7CiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyOwogICAgICAgIGNvbG9yOiAke20uYmRUaGVtZSgiIzcxNzE3YSIsIiNhMWExYWEiKX07CiAgICAgICAgZm9udC1zaXplOiAxM3B4OwogICAgICAgIGxpbmUtaGVpZ2h0OiAxLjU7CiAgICAgICAgbWF4LXdpZHRoOiAzMjBweDsKICAgICAgfQoKICAgICAgLmxvYWRpbmctc3Bpbm5lciB7CiAgICAgICAgd2lkdGg6IDQwcHg7CiAgICAgICAgaGVpZ2h0OiA0MHB4OwogICAgICAgIGJvcmRlcjogM3B4IHNvbGlkICR7bS5iZFRoZW1lKCJyZ2JhKDAsIDAsIDAsIDAuMSkiLCJyZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMSkiKX07CiAgICAgICAgYm9yZGVyLXRvcC1jb2xvcjogJHttLmJkVGhlbWUoIiMzYjgyZjYiLCIjNjBhNWZhIil9OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDUwJTsKICAgICAgICBhbmltYXRpb246IHNwaW4gMC42cyBsaW5lYXIgaW5maW5pdGU7CiAgICAgIH0KCiAgICAgIEBrZXlmcmFtZXMgc3BpbiB7CiAgICAgICAgdG8gewogICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoMzYwZGVnKTsKICAgICAgICB9CiAgICAgIH0KCiAgICAgIEBtZWRpYSAobWF4LXdpZHRoOiA3NjhweCkgewogICAgICAgIC5tb2RhbC1jb250YWluZXIgewogICAgICAgICAgd2lkdGg6IGNhbGMoMTAwdncgLSAzMnB4KTsKICAgICAgICAgIG1hcmdpbjogMTZweDsKICAgICAgICB9CiAgICAgICAgCiAgICAgICAgLm1vZGFsLWJvZHkgewogICAgICAgICAgcGFkZGluZzogMjRweDsKICAgICAgICB9CiAgICAgIH0KICAgIGBdO2FzeW5jIGNvbm5lY3RlZENhbGxiYWNrKCl7c3VwZXIuY29ubmVjdGVkQ2FsbGJhY2soKSx0aGlzLndpbmRvd0xheWVyPWF3YWl0ICRvLmNyZWF0ZUFuZFNob3coe2JsdXI6ITB9KSx0aGlzLndpbmRvd0xheWVyLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIiwoKT0+dGhpcy5jbG9zZSgpKSx0aGlzLnpJbmRleD1Lci5nZXROZXh0WkluZGV4KCksdGhpcy5zdHlsZS5zZXRQcm9wZXJ0eSgiLS16LWluZGV4Iix0aGlzLnpJbmRleC50b1N0cmluZygpKSxLci5yZWdpc3Rlcih0aGlzLHRoaXMuekluZGV4KX1hc3luYyBkaXNjb25uZWN0ZWRDYWxsYmFjaygpe3N1cGVyLmRpc2Nvbm5lY3RlZENhbGxiYWNrKCksdGhpcy5jcm9wcGVyJiZ0aGlzLmNyb3BwZXIuZGVzdHJveSgpLHRoaXMud2luZG93TGF5ZXImJmF3YWl0IHRoaXMud2luZG93TGF5ZXIuZGVzdHJveSgpLEtyLnVucmVnaXN0ZXIodGhpcyl9cmVuZGVyKCl7cmV0dXJuIENgCiAgICAgIDxkaXYgY2xhc3M9Im1vZGFsLWNvbnRhaW5lciIgQGNsaWNrPSR7Xz0+Xy5zdG9wUHJvcGFnYXRpb24oKX0+CiAgICAgICAgPGRpdiBjbGFzcz0ibW9kYWwtaGVhZGVyIj4KICAgICAgICAgIDxoMyBjbGFzcz0ibW9kYWwtdGl0bGUiPgogICAgICAgICAgICAke3RoaXMuY3VycmVudFN0ZXA9PT0iY3JvcCI/IkFkanVzdCBJbWFnZSI6IlN1Y2Nlc3MifQogICAgICAgICAgPC9oMz4KICAgICAgICAgIDxidXR0b24gY2xhc3M9ImNsb3NlLWJ1dHRvbiIgQGNsaWNrPSR7dGhpcy5jbG9zZX0gdGl0bGU9IkNsb3NlIj4KICAgICAgICAgICAgPGRlZXMtaWNvbiBpY29uPSJsdWNpZGU6eCIgaWNvblNpemU9IjE2Ij48L2RlZXMtaWNvbj4KICAgICAgICAgIDwvYnV0dG9uPgogICAgICAgIDwvZGl2PgogICAgICAgIAogICAgICAgIDxkaXYgY2xhc3M9Im1vZGFsLWJvZHkiPgogICAgICAgICAgJHt0aGlzLmN1cnJlbnRTdGVwPT09ImNyb3AiP0NgCiAgICAgICAgICAgIDxkaXYgY2xhc3M9Imluc3RydWN0aW9ucyI+CiAgICAgICAgICAgICAgUG9zaXRpb24gYW5kIHJlc2l6ZSB0aGUgc3F1YXJlIHRvIHNlbGVjdCB5b3VyIHByb2ZpbGUgYXJlYQogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0iY3JvcHBlci1jb250YWluZXIiIGlkPSJjcm9wcGVyQ29udGFpbmVyIj48L2Rpdj4KICAgICAgICAgIGA6Q2AKICAgICAgICAgICAgPGRpdiBjbGFzcz0icHJldmlldy1jb250YWluZXIiPgogICAgICAgICAgICAgICR7dGhpcy5pc1Byb2Nlc3Npbmc/Q2AKICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImxvYWRpbmctc3Bpbm5lciI+PC9kaXY+CiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJpbnN0cnVjdGlvbnMiPlNhdmluZy4uLjwvZGl2PgogICAgICAgICAgICAgIGA6Q2AKICAgICAgICAgICAgICAgIDxpbWcgCiAgICAgICAgICAgICAgICAgIGNsYXNzPSJwcmV2aWV3LWltYWdlICR7dGhpcy5zaGFwZX0iIAogICAgICAgICAgICAgICAgICBzcmM9IiR7dGhpcy5jcm9wcGVkSW1hZ2V9IiAKICAgICAgICAgICAgICAgICAgYWx0PSJDcm9wcGVkIHByZXZpZXciCiAgICAgICAgICAgICAgICAvPgogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0ic3VjY2Vzcy1tZXNzYWdlIj4KICAgICAgICAgICAgICAgICAgPGRlZXMtaWNvbiBpY29uPSJsdWNpZGU6Y2hlY2siIGljb25TaXplPSIxNiI+PC9kZWVzLWljb24+CiAgICAgICAgICAgICAgICAgIDxzcGFuPkxvb2tpbmcgZ29vZCE8L3NwYW4+CiAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICBgfQogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIGB9CiAgICAgICAgPC9kaXY+CiAgICAgICAgCiAgICAgICAgPGRpdiBjbGFzcz0ibW9kYWwtZm9vdGVyIj4KICAgICAgICAgICR7dGhpcy5jdXJyZW50U3RlcD09PSJjcm9wIj9DYAogICAgICAgICAgICA8ZGVlcy1idXR0b24gdHlwZT0iZGVzdHJ1Y3RpdmUiIHNpemU9InNtIiBAY2xpY2s9JHt0aGlzLmNsb3NlfT4KICAgICAgICAgICAgICBDYW5jZWwKICAgICAgICAgICAgPC9kZWVzLWJ1dHRvbj4KICAgICAgICAgICAgPGRlZXMtYnV0dG9uIHR5cGU9ImRlZmF1bHQiIHNpemU9InNtIiBAY2xpY2s9JHt0aGlzLmhhbmRsZUNyb3B9PgogICAgICAgICAgICAgIFNhdmUKICAgICAgICAgICAgPC9kZWVzLWJ1dHRvbj4KICAgICAgICAgIGA6IiJ9CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGl2PgogICAgYH1hc3luYyBmaXJzdFVwZGF0ZWQoKXt0aGlzLmN1cnJlbnRTdGVwPT09ImNyb3AiJiZhd2FpdCB0aGlzLmluaXRpYWxpemVDcm9wcGVyKCl9YXN5bmMgaW5pdGlhbGl6ZUNyb3BwZXIoKXthd2FpdCB0aGlzLnVwZGF0ZUNvbXBsZXRlO2xldCBfPXRoaXMuc2hhZG93Um9vdC5nZXRFbGVtZW50QnlJZCgiY3JvcHBlckNvbnRhaW5lciIpO18mJih0aGlzLmNyb3BwZXI9bmV3IGFGKHtjb250YWluZXI6XyxpbWFnZTp0aGlzLmluaXRpYWxJbWFnZSxzaGFwZTp0aGlzLnNoYXBlLGFzcGVjdFJhdGlvOjEsb3V0cHV0U2l6ZTp0aGlzLm91dHB1dFNpemUsb3V0cHV0UXVhbGl0eTp0aGlzLm91dHB1dFF1YWxpdHl9KSxhd2FpdCB0aGlzLmNyb3BwZXIuaW5pdGlhbGl6ZSgpKX1hc3luYyBoYW5kbGVDcm9wKCl7aWYodGhpcy5jcm9wcGVyKXRyeXt0aGlzLmlzUHJvY2Vzc2luZz0hMCx0aGlzLmN1cnJlbnRTdGVwPSJwcmV2aWV3Iixhd2FpdCB0aGlzLnVwZGF0ZUNvbXBsZXRlO2xldCBfPWF3YWl0IHRoaXMuY3JvcHBlci5nZXRDcm9wcGVkSW1hZ2UoKTt0aGlzLmNyb3BwZWRJbWFnZT1fLGF3YWl0IG5ldyBQcm9taXNlKFM9PnNldFRpbWVvdXQoUyw4MDApKSx0aGlzLmlzUHJvY2Vzc2luZz0hMSx0aGlzLmRpc3BhdGNoRXZlbnQobmV3IEN1c3RvbUV2ZW50KCJzYXZlIix7ZGV0YWlsOntjcm9wcGVkSW1hZ2U6dGhpcy5jcm9wcGVkSW1hZ2V9LGJ1YmJsZXM6ITAsY29tcG9zZWQ6ITB9KSksc2V0VGltZW91dCgoKT0+e3RoaXMuY2xvc2UoKX0sMTUwMCl9Y2F0Y2goXyl7Y29uc29sZS5lcnJvcigiRXJyb3IgY3JvcHBpbmcgaW1hZ2U6IixfKSx0aGlzLmlzUHJvY2Vzc2luZz0hMX19Y2xvc2UoKXt0aGlzLnJlbW92ZSgpfXN0YXRpY3thbihpLHIpfX07cmV0dXJuIFI9aX0pKCl9KTt2YXIgdjRyLHg0cj1wKCgpPT57eGUoKTtwMSgpO09pKCk7ZGRlKCk7djRyPSgpPT5DYAogIDxzdHlsZT4KICAgICR7b2VgCiAgICAgIC5kZW1vLWNvbnRhaW5lciB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICAgIGdhcDogMjRweDsKICAgICAgICBwYWRkaW5nOiAyNHB4OwogICAgICAgIG1heC13aWR0aDogMTIwMHB4OwogICAgICAgIG1hcmdpbjogMCBhdXRvOwogICAgICB9CiAgICAgIAogICAgICBkZWVzLXBhbmVsIHsKICAgICAgICBtYXJnaW4tYm90dG9tOiAyNHB4OwogICAgICB9CiAgICAgIAogICAgICAuZGVtby1yb3cgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgZ2FwOiA0OHB4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgZmxleC13cmFwOiB3cmFwOwogICAgICB9CiAgICAgIAogICAgICAuZGVtby1vdXRwdXQgewogICAgICAgIG1hcmdpbi10b3A6IDE2cHg7CiAgICAgICAgcGFkZGluZzogMTJweDsKICAgICAgICBiYWNrZ3JvdW5kOiByZ2JhKDAsIDEwNSwgMjQyLCAwLjEpOwogICAgICAgIGJvcmRlci1yYWRpdXM6IDRweDsKICAgICAgICBmb250LXNpemU6IDE0cHg7CiAgICAgICAgZm9udC1mYW1pbHk6IG1vbm9zcGFjZTsKICAgICAgICB3b3JkLWJyZWFrOiBicmVhay1hbGw7CiAgICAgICAgbWF4LWhlaWdodDogMTAwcHg7CiAgICAgICAgb3ZlcmZsb3cteTogYXV0bzsKICAgICAgfQogICAgICAKICAgICAgLmZlYXR1cmUtbGlzdCB7CiAgICAgICAgbWFyZ2luLXRvcDogMTZweDsKICAgICAgICBwYWRkaW5nLWxlZnQ6IDIwcHg7CiAgICAgIH0KICAgICAgCiAgICAgIC5mZWF0dXJlLWxpc3QgbGkgewogICAgICAgIG1hcmdpbi1ib3R0b206IDhweDsKICAgICAgfQogICAgYH0KICA8L3N0eWxlPgogIAogIDxkaXYgY2xhc3M9ImRlbW8tY29udGFpbmVyIj4KICAgIDxkZWVzLWRlbW93cmFwcGVyIC5ydW5BZnRlclJlbmRlcj0ke2FzeW5jIGU9PntsZXQgdD1lLnF1ZXJ5U2VsZWN0b3IoJ2RlZXMtaW5wdXQtcHJvZmlsZXBpY3R1cmVbc2hhcGU9InJvdW5kIl0nKTt0JiZ0LmFkZEV2ZW50TGlzdGVuZXIoImNoYW5nZSIscj0+e2xldCBpPXIudGFyZ2V0O2NvbnNvbGUubG9nKCJSb3VuZCBwcm9maWxlIHBpY3R1cmUgY2hhbmdlZDoiLGkudmFsdWU/LnN1YnN0cmluZygwLDUwKSsiLi4uIil9KX19PgogICAgICA8ZGVlcy1wYW5lbCAudGl0bGU9JHsiUHJvZmlsZSBQaWN0dXJlIElucHV0In0gLnN1YnRpdGxlPSR7IkJhc2ljIHVzYWdlIHdpdGggcm91bmQgYW5kIHNxdWFyZSBzaGFwZXMifT4KICAgICAgICA8ZGl2IGNsYXNzPSJkZW1vLXJvdyI+CiAgICAgICAgICA8ZGVlcy1pbnB1dC1wcm9maWxlcGljdHVyZQogICAgICAgICAgICBsYWJlbD0iUHJvZmlsZSBQaWN0dXJlIChSb3VuZCkiCiAgICAgICAgICAgIGRlc2NyaXB0aW9uPSJDbGljayB0byB1cGxvYWQgb3IgZHJhZyAmIGRyb3AgYW4gaW1hZ2UiCiAgICAgICAgICAgIHNoYXBlPSJyb3VuZCIKICAgICAgICAgICAgc2l6ZT0iMTIwIgogICAgICAgICAgPjwvZGVlcy1pbnB1dC1wcm9maWxlcGljdHVyZT4KICAgICAgICAgIAogICAgICAgICAgPGRlZXMtaW5wdXQtcHJvZmlsZXBpY3R1cmUKICAgICAgICAgICAgbGFiZWw9IlByb2ZpbGUgUGljdHVyZSAoU3F1YXJlKSIKICAgICAgICAgICAgZGVzY3JpcHRpb249IlN1cHBvcnRzIEpQRUcsIFBORywgYW5kIFdlYlAgZm9ybWF0cyIKICAgICAgICAgICAgc2hhcGU9InNxdWFyZSIKICAgICAgICAgICAgc2l6ZT0iMTIwIgogICAgICAgICAgPjwvZGVlcy1pbnB1dC1wcm9maWxlcGljdHVyZT4KICAgICAgICA8L2Rpdj4KICAgICAgPC9kZWVzLXBhbmVsPgogICAgPC9kZWVzLWRlbW93cmFwcGVyPgoKICAgIDxkZWVzLWRlbW93cmFwcGVyIC5ydW5BZnRlclJlbmRlcj0ke2FzeW5jIGU9PntlLnF1ZXJ5U2VsZWN0b3JBbGwoImRlZXMtaW5wdXQtcHJvZmlsZXBpY3R1cmUiKS5mb3JFYWNoKHI9PntyLmFkZEV2ZW50TGlzdGVuZXIoImNoYW5nZSIsaT0+e2xldCBhPWkudGFyZ2V0O2NvbnNvbGUubG9nKGBQcm9maWxlIChzaXplICR7YS5zaXplfSkgY2hhbmdlZGApfSl9KX19PgogICAgICA8ZGVlcy1wYW5lbCAudGl0bGU9JHsiU2l6ZSBWYXJpYXRpb25zIn0gLnN1YnRpdGxlPSR7IlByb2ZpbGUgcGljdHVyZXMgaW4gZGlmZmVyZW50IHNpemVzIn0+CiAgICAgICAgPGRpdiBjbGFzcz0iZGVtby1yb3ciPgogICAgICAgICAgPGRlZXMtaW5wdXQtcHJvZmlsZXBpY3R1cmUKICAgICAgICAgICAgbGFiZWw9IlNtYWxsICg4MHB4KSIKICAgICAgICAgICAgc2hhcGU9InJvdW5kIgogICAgICAgICAgICBzaXplPSI4MCIKICAgICAgICAgID48L2RlZXMtaW5wdXQtcHJvZmlsZXBpY3R1cmU+CiAgICAgICAgICAKICAgICAgICAgIDxkZWVzLWlucHV0LXByb2ZpbGVwaWN0dXJlCiAgICAgICAgICAgIGxhYmVsPSJNZWRpdW0gKDEyMHB4KSIKICAgICAgICAgICAgc2hhcGU9InJvdW5kIgogICAgICAgICAgICBzaXplPSIxMjAiCiAgICAgICAgICA+PC9kZWVzLWlucHV0LXByb2ZpbGVwaWN0dXJlPgogICAgICAgICAgCiAgICAgICAgICA8ZGVlcy1pbnB1dC1wcm9maWxlcGljdHVyZQogICAgICAgICAgICBsYWJlbD0iTGFyZ2UgKDE2MHB4KSIKICAgICAgICAgICAgc2hhcGU9InJvdW5kIgogICAgICAgICAgICBzaXplPSIxNjAiCiAgICAgICAgICA+PC9kZWVzLWlucHV0LXByb2ZpbGVwaWN0dXJlPgogICAgICAgIDwvZGl2PgogICAgICA8L2RlZXMtcGFuZWw+CiAgICA8L2RlZXMtZGVtb3dyYXBwZXI+CgogICAgPGRlZXMtZGVtb3dyYXBwZXIgLnJ1bkFmdGVyUmVuZGVyPSR7YXN5bmMgZT0+e2xldCB0PSJkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUIzYVdSMGFEMGlNakF3SWlCb1pXbG5hSFE5SWpJd01DSWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklqNEtJQ0E4WkdWbWN6NEtJQ0FnSUR4c2FXNWxZWEpIY21Ga2FXVnVkQ0JwWkQwaVozSmhaR2xsYm5RaUlIZ3hQU0l3SlNJZ2VURTlJakFsSWlCNE1qMGlNVEF3SlNJZ2VUSTlJakV3TUNVaVBnb2dJQ0FnSUNBOGMzUnZjQ0J2Wm1aelpYUTlJakFsSWlCemRHOXdMV052Ykc5eVBTSWpOalkzWldWaElpQXZQZ29nSUNBZ0lDQThjM1J2Y0NCdlptWnpaWFE5SWpFd01DVWlJSE4wYjNBdFkyOXNiM0k5SWlNM05qUmlZVElpSUM4K0NpQWdJQ0E4TDJ4cGJtVmhja2R5WVdScFpXNTBQZ29nSUR3dlpHVm1jejRLSUNBOGNtVmpkQ0IzYVdSMGFEMGlNakF3SWlCb1pXbG5hSFE5SWpJd01DSWdabWxzYkQwaWRYSnNLQ05uY21Ga2FXVnVkQ2tpSUM4K0NpQWdQSFJsZUhRZ2VEMGlOVEFsSWlCNVBTSTFNQ1VpSUdSdmJXbHVZVzUwTFdKaGMyVnNhVzVsUFNKdGFXUmtiR1VpSUhSbGVIUXRZVzVqYUc5eVBTSnRhV1JrYkdVaUlHWnZiblF0Wm1GdGFXeDVQU0pCY21saGJDSWdabTl1ZEMxemFYcGxQU0k0TUNJZ1ptbHNiRDBpZDJocGRHVWlQa3BFUEM5MFpYaDBQZ284TDNOMlp6ND0iLHI9ZS5xdWVyeVNlbGVjdG9yKCIjcHJlZmlsbGVkLXByb2ZpbGUiKTtyJiYoci52YWx1ZT10LHIuYWRkRXZlbnRMaXN0ZW5lcigiY2hhbmdlIixpPT57bGV0IGE9aS50YXJnZXQsbj1lLnF1ZXJ5U2VsZWN0b3IoIiNwcmVmaWxsZWQtb3V0cHV0Iik7biYmKG4udGV4dENvbnRlbnQ9YS52YWx1ZT9gSW1hZ2UgZGF0YTogJHthLnZhbHVlLnN1YnN0cmluZygwLDgwKX0uLi5gOiJObyBpbWFnZSBzZWxlY3RlZCIpfSkpfX0+CiAgICAgIDxkZWVzLXBhbmVsIC50aXRsZT0keyJQcmUtZmlsbGVkIGFuZCBWYWx1ZSBCaW5kaW5nIn0gLnN1YnRpdGxlPSR7IlByb2ZpbGUgcGljdHVyZSB3aXRoIGluaXRpYWwgdmFsdWUgYW5kIGNoYW5nZSB0cmFja2luZyJ9PgogICAgICAgIDxkZWVzLWlucHV0LXByb2ZpbGVwaWN0dXJlCiAgICAgICAgICBpZD0icHJlZmlsbGVkLXByb2ZpbGUiCiAgICAgICAgICBsYWJlbD0iRWRpdCBFeGlzdGluZyBQcm9maWxlIgogICAgICAgICAgZGVzY3JpcHRpb249IkNsaWNrIHRoZSBlZGl0IGJ1dHRvbiB0byBjaGFuZ2Ugb3IgZGVsZXRlIHRvIHJlbW92ZSIKICAgICAgICAgIHNoYXBlPSJyb3VuZCIKICAgICAgICAgIHNpemU9IjE1MCIKICAgICAgICA+PC9kZWVzLWlucHV0LXByb2ZpbGVwaWN0dXJlPgogICAgICAgIAogICAgICAgIDxkaXYgaWQ9InByZWZpbGxlZC1vdXRwdXQiIGNsYXNzPSJkZW1vLW91dHB1dCI+CiAgICAgICAgICBJbWFnZSBkYXRhIHdpbGwgYXBwZWFyIGhlcmUgd2hlbiBjaGFuZ2VkCiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGVlcy1wYW5lbD4KICAgIDwvZGVlcy1kZW1vd3JhcHBlcj4KCiAgICA8ZGVlcy1kZW1vd3JhcHBlciAucnVuQWZ0ZXJSZW5kZXI9JHthc3luYyBlPT57bGV0IHQ9ZS5xdWVyeVNlbGVjdG9yKCIjZGlzYWJsZWQtcHJvZmlsZSIpO3QmJih0LnZhbHVlPSJkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUIzYVdSMGFEMGlNakF3SWlCb1pXbG5hSFE5SWpJd01DSWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklqNEtJQ0E4Y21WamRDQjNhV1IwYUQwaU1qQXdJaUJvWldsbmFIUTlJakl3TUNJZ1ptbHNiRDBpSTJOalkyTmpZeUlnTHo0S0lDQThkR1Y0ZENCNFBTSTFNQ1VpSUhrOUlqVXdKU0lnWkc5dGFXNWhiblF0WW1GelpXeHBibVU5SW0xcFpHUnNaU0lnZEdWNGRDMWhibU5vYjNJOUltMXBaR1JzWlNJZ1ptOXVkQzFtWVcxcGJIazlJa0Z5YVdGc0lpQm1iMjUwTFhOcGVtVTlJall3SWlCbWFXeHNQU0ozYUdsMFpTSStUa0U4TDNSbGVIUStDand2YzNablBnPT0iKX19PgogICAgICA8ZGVlcy1wYW5lbCAudGl0bGU9JHsiRm9ybSBTdGF0ZXMifSAuc3VidGl0bGU9JHsiRGlmZmVyZW50IHN0YXRlcyBhbmQgY29uZmlndXJhdGlvbnMifT4KICAgICAgICA8ZGl2IGNsYXNzPSJkZW1vLXJvdyI+CiAgICAgICAgICA8ZGVlcy1pbnB1dC1wcm9maWxlcGljdHVyZQogICAgICAgICAgICBsYWJlbD0iUmVxdWlyZWQgRmllbGQiCiAgICAgICAgICAgIGRlc2NyaXB0aW9uPSJUaGlzIGZpZWxkIGlzIHJlcXVpcmVkIgogICAgICAgICAgICBzaGFwZT0icm91bmQiCiAgICAgICAgICAgIC5yZXF1aXJlZD0keyEwfQogICAgICAgICAgPjwvZGVlcy1pbnB1dC1wcm9maWxlcGljdHVyZT4KICAgICAgICAgIAogICAgICAgICAgPGRlZXMtaW5wdXQtcHJvZmlsZXBpY3R1cmUKICAgICAgICAgICAgaWQ9ImRpc2FibGVkLXByb2ZpbGUiCiAgICAgICAgICAgIGxhYmVsPSJEaXNhYmxlZCBTdGF0ZSIKICAgICAgICAgICAgZGVzY3JpcHRpb249IkNhbm5vdCBiZSBlZGl0ZWQiCiAgICAgICAgICAgIHNoYXBlPSJzcXVhcmUiCiAgICAgICAgICAgIC5kaXNhYmxlZD0keyEwfQogICAgICAgICAgPjwvZGVlcy1pbnB1dC1wcm9maWxlcGljdHVyZT4KICAgICAgICAgIAogICAgICAgICAgPGRlZXMtaW5wdXQtcHJvZmlsZXBpY3R1cmUKICAgICAgICAgICAgbGFiZWw9IlVwbG9hZCBPbmx5IgogICAgICAgICAgICBkZXNjcmlwdGlvbj0iRGVsZXRlIG5vdCBhbGxvd2VkIgogICAgICAgICAgICBzaGFwZT0icm91bmQiCiAgICAgICAgICAgIC5hbGxvd0RlbGV0ZT0keyExfQogICAgICAgICAgPjwvZGVlcy1pbnB1dC1wcm9maWxlcGljdHVyZT4KICAgICAgICA8L2Rpdj4KICAgICAgPC9kZWVzLXBhbmVsPgogICAgPC9kZWVzLWRlbW93cmFwcGVyPgoKICAgIDxkZWVzLWRlbW93cmFwcGVyPgogICAgICA8ZGVlcy1wYW5lbCAudGl0bGU9JHsiRmVhdHVyZXMifSAuc3VidGl0bGU9JHsiQ29tcGxldGUgZmVhdHVyZSBzZXQgb2YgdGhlIHByb2ZpbGUgcGljdHVyZSBpbnB1dCJ9PgogICAgICAgIDx1bCBjbGFzcz0iZmVhdHVyZS1saXN0Ij4KICAgICAgICAgIDxsaT48c3Ryb25nPkltYWdlIFVwbG9hZDo8L3N0cm9uZz4gQ2xpY2sgdG8gdXBsb2FkIG9yIGRyYWcgJiBkcm9wIGltYWdlczwvbGk+CiAgICAgICAgICA8bGk+PHN0cm9uZz5JbWFnZSBDcm9wcGluZzo8L3N0cm9uZz4gSW50ZXJhY3RpdmUgY3JvcCB0b29sIHdpdGggcmVzaXplIGhhbmRsZXM8L2xpPgogICAgICAgICAgPGxpPjxzdHJvbmc+U2hhcGUgU3VwcG9ydDo8L3N0cm9uZz4gUm91bmQgb3Igc3F1YXJlIHByb2ZpbGUgcGljdHVyZXM8L2xpPgogICAgICAgICAgPGxpPjxzdHJvbmc+U2l6ZSBDdXN0b21pemF0aW9uOjwvc3Ryb25nPiBBZGp1c3RhYmxlIGRpbWVuc2lvbnM8L2xpPgogICAgICAgICAgPGxpPjxzdHJvbmc+UHJldmlldyAmIEVkaXQ6PC9zdHJvbmc+IEhvdmVyIG92ZXJsYXkgd2l0aCBlZGl0IGFuZCBkZWxldGUgb3B0aW9uczwvbGk+CiAgICAgICAgICA8bGk+PHN0cm9uZz5GaWxlIFZhbGlkYXRpb246PC9zdHJvbmc+IEZvcm1hdCBhbmQgc2l6ZSByZXN0cmljdGlvbnM8L2xpPgogICAgICAgICAgPGxpPjxzdHJvbmc+UmVzcG9uc2l2ZSBEZXNpZ246PC9zdHJvbmc+IFdvcmtzIG9uIGRlc2t0b3AgYW5kIG1vYmlsZSBkZXZpY2VzPC9saT4KICAgICAgICAgIDxsaT48c3Ryb25nPkZvcm0gSW50ZWdyYXRpb246PC9zdHJvbmc+IFN0YW5kYXJkIGZvcm0gdmFsdWUgYmluZGluZyBhbmQgdmFsaWRhdGlvbjwvbGk+CiAgICAgICAgICA8bGk+PHN0cm9uZz5BY2Nlc3NpYmlsaXR5Ojwvc3Ryb25nPiBLZXlib2FyZCBuYXZpZ2F0aW9uIGFuZCBzY3JlZW4gcmVhZGVyIHN1cHBvcnQ8L2xpPgogICAgICAgICAgPGxpPjxzdHJvbmc+Wi1JbmRleCBNYW5hZ2VtZW50Ojwvc3Ryb25nPiBQcm9wZXIgbW9kYWwgc3RhY2tpbmcgd2l0aCByZWdpc3RyeTwvbGk+CiAgICAgICAgPC91bD4KICAgICAgICAKICAgICAgICA8ZGl2IHN0eWxlPSJtYXJnaW4tdG9wOiAyNHB4OyI+CiAgICAgICAgICA8c3Ryb25nPlN1cHBvcnRlZCBGb3JtYXRzOjwvc3Ryb25nPiBKUEVHLCBQTkcsIFdlYlA8YnI+CiAgICAgICAgICA8c3Ryb25nPk1heCBGaWxlIFNpemU6PC9zdHJvbmc+IDVNQiAoY29uZmlndXJhYmxlKTxicj4KICAgICAgICAgIDxzdHJvbmc+T3V0cHV0IEZvcm1hdDo8L3N0cm9uZz4gQmFzZTY0IGVuY29kZWQgSlBFRwogICAgICAgIDwvZGl2PgogICAgICA8L2RlZXMtcGFuZWw+CiAgICA8L2RlZXMtZGVtb3dyYXBwZXI+CiAgPC9kaXY+CmB9KTt2YXIgVG4sdDEseTRyLGRkZT1wKCgpPT57eGUoKTtNMSgpO29yKCk7ZWgoKTtiNHIoKTt4NHIoKTtKZSgpO1RuPWZ1bmN0aW9uKGUsdCxyLGksYSxuKXtmdW5jdGlvbiBvKHkpe2lmKHkhPT12b2lkIDAmJnR5cGVvZiB5IT0iZnVuY3Rpb24iKXRocm93IG5ldyBUeXBlRXJyb3IoIkZ1bmN0aW9uIGV4cGVjdGVkIik7cmV0dXJuIHl9Zm9yKHZhciBzPWkua2luZCxsPXM9PT0iZ2V0dGVyIj8iZ2V0IjpzPT09InNldHRlciI/InNldCI6InZhbHVlIixjPSF0JiZlP2kuc3RhdGljP2U6ZS5wcm90b3R5cGU6bnVsbCx1PXR8fChjP09iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoYyxpLm5hbWUpOnt9KSxkLGg9ITEsZj1yLmxlbmd0aC0xO2Y+PTA7Zi0tKXt2YXIgeD17fTtmb3IodmFyIHYgaW4gaSl4W3ZdPXY9PT0iYWNjZXNzIj97fTppW3ZdO2Zvcih2YXIgdiBpbiBpLmFjY2Vzcyl4LmFjY2Vzc1t2XT1pLmFjY2Vzc1t2XTt4LmFkZEluaXRpYWxpemVyPWZ1bmN0aW9uKHkpe2lmKGgpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGFkZCBpbml0aWFsaXplcnMgYWZ0ZXIgZGVjb3JhdGlvbiBoYXMgY29tcGxldGVkIik7bi5wdXNoKG8oeXx8bnVsbCkpfTt2YXIgYj0oMCxyW2ZdKShzPT09ImFjY2Vzc29yIj97Z2V0OnUuZ2V0LHNldDp1LnNldH06dVtsXSx4KTtpZihzPT09ImFjY2Vzc29yIil7aWYoYj09PXZvaWQgMCljb250aW51ZTtpZihiPT09bnVsbHx8dHlwZW9mIGIhPSJvYmplY3QiKXRocm93IG5ldyBUeXBlRXJyb3IoIk9iamVjdCBleHBlY3RlZCIpOyhkPW8oYi5nZXQpKSYmKHUuZ2V0PWQpLChkPW8oYi5zZXQpKSYmKHUuc2V0PWQpLChkPW8oYi5pbml0KSkmJmEudW5zaGlmdChkKX1lbHNlKGQ9byhiKSkmJihzPT09ImZpZWxkIj9hLnVuc2hpZnQoZCk6dVtsXT1kKX1jJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoYyxpLm5hbWUsdSksaD0hMH0sdDE9ZnVuY3Rpb24oZSx0LHIpe2Zvcih2YXIgaT1hcmd1bWVudHMubGVuZ3RoPjIsYT0wO2E8dC5sZW5ndGg7YSsrKXI9aT90W2FdLmNhbGwoZSxyKTp0W2FdLmNhbGwoZSk7cmV0dXJuIGk/cjp2b2lkIDB9LHk0cj0oKCk9PntsZXQgZT1beWUoImRlZXMtaW5wdXQtcHJvZmlsZXBpY3R1cmUiKV0sdCxyPVtdLGksYT1vdCxuLG89W10scz1bXSxsLGM9W10sdT1bXSxkLGg9W10sZj1bXSx4LHY9W10sYj1bXSx5LHc9W10saz1bXSxPLHo9W10sTT1bXSxGLEQ9W10sTj1bXSxSLF89W10sUz1bXSwkLFQ9W10sRT1bXSxxLEI9W10sRz1bXSxlZSxQPVtdLGdlPVtdLHdlLEk9W10sbmU9W10sa2UsWT1bXSxBPVtdO3ZhciBMPWNsYXNzIGV4dGVuZHMgYXtzdGF0aWN7aT10aGlzfXN0YXRpY3tsZXQgVT10eXBlb2YgU3ltYm9sPT0iZnVuY3Rpb24iJiZTeW1ib2wubWV0YWRhdGE/T2JqZWN0LmNyZWF0ZShhW1N5bWJvbC5tZXRhZGF0YV0/P251bGwpOnZvaWQgMDtuPVtqKHt0eXBlOlN0cmluZ30pXSxsPVtqKHt0eXBlOlN0cmluZ30pXSxkPVtqKHt0eXBlOk51bWJlcn0pXSx4PVtqKHt0eXBlOlN0cmluZ30pXSx5PVtqKHt0eXBlOkJvb2xlYW59KV0sTz1baih7dHlwZTpCb29sZWFufSldLEY9W2ooe3R5cGU6TnVtYmVyfSldLFI9W2ooe3R5cGU6QXJyYXl9KV0sJD1baih7dHlwZTpOdW1iZXJ9KV0scT1baih7dHlwZTpOdW1iZXJ9KV0sZWU9W2ZlKCldLHdlPVtmZSgpXSxrZT1bZmUoKV0sVG4odGhpcyxudWxsLG4se2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJ2YWx1ZSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6Vj0+InZhbHVlImluIFYsZ2V0OlY9PlYudmFsdWUsc2V0OihWLFgpPT57Vi52YWx1ZT1YfX0sbWV0YWRhdGE6VX0sbyxzKSxUbih0aGlzLG51bGwsbCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InNoYXBlIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpWPT4ic2hhcGUiaW4gVixnZXQ6Vj0+Vi5zaGFwZSxzZXQ6KFYsWCk9PntWLnNoYXBlPVh9fSxtZXRhZGF0YTpVfSxjLHUpLFRuKHRoaXMsbnVsbCxkLHtraW5kOiJhY2Nlc3NvciIsbmFtZToic2l6ZSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6Vj0+InNpemUiaW4gVixnZXQ6Vj0+Vi5zaXplLHNldDooVixYKT0+e1Yuc2l6ZT1YfX0sbWV0YWRhdGE6VX0saCxmKSxUbih0aGlzLG51bGwseCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InBsYWNlaG9sZGVyIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpWPT4icGxhY2Vob2xkZXIiaW4gVixnZXQ6Vj0+Vi5wbGFjZWhvbGRlcixzZXQ6KFYsWCk9PntWLnBsYWNlaG9sZGVyPVh9fSxtZXRhZGF0YTpVfSx2LGIpLFRuKHRoaXMsbnVsbCx5LHtraW5kOiJhY2Nlc3NvciIsbmFtZToiYWxsb3dVcGxvYWQiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOlY9PiJhbGxvd1VwbG9hZCJpbiBWLGdldDpWPT5WLmFsbG93VXBsb2FkLHNldDooVixYKT0+e1YuYWxsb3dVcGxvYWQ9WH19LG1ldGFkYXRhOlV9LHcsayksVG4odGhpcyxudWxsLE8se2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJhbGxvd0RlbGV0ZSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6Vj0+ImFsbG93RGVsZXRlImluIFYsZ2V0OlY9PlYuYWxsb3dEZWxldGUsc2V0OihWLFgpPT57Vi5hbGxvd0RlbGV0ZT1YfX0sbWV0YWRhdGE6VX0seixNKSxUbih0aGlzLG51bGwsRix7a2luZDoiYWNjZXNzb3IiLG5hbWU6Im1heEZpbGVTaXplIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpWPT4ibWF4RmlsZVNpemUiaW4gVixnZXQ6Vj0+Vi5tYXhGaWxlU2l6ZSxzZXQ6KFYsWCk9PntWLm1heEZpbGVTaXplPVh9fSxtZXRhZGF0YTpVfSxELE4pLFRuKHRoaXMsbnVsbCxSLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiYWNjZXB0ZWRGb3JtYXRzIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpWPT4iYWNjZXB0ZWRGb3JtYXRzImluIFYsZ2V0OlY9PlYuYWNjZXB0ZWRGb3JtYXRzLHNldDooVixYKT0+e1YuYWNjZXB0ZWRGb3JtYXRzPVh9fSxtZXRhZGF0YTpVfSxfLFMpLFRuKHRoaXMsbnVsbCwkLHtraW5kOiJhY2Nlc3NvciIsbmFtZToib3V0cHV0U2l6ZSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6Vj0+Im91dHB1dFNpemUiaW4gVixnZXQ6Vj0+Vi5vdXRwdXRTaXplLHNldDooVixYKT0+e1Yub3V0cHV0U2l6ZT1YfX0sbWV0YWRhdGE6VX0sVCxFKSxUbih0aGlzLG51bGwscSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6Im91dHB1dFF1YWxpdHkiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOlY9PiJvdXRwdXRRdWFsaXR5ImluIFYsZ2V0OlY9PlYub3V0cHV0UXVhbGl0eSxzZXQ6KFYsWCk9PntWLm91dHB1dFF1YWxpdHk9WH19LG1ldGFkYXRhOlV9LEIsRyksVG4odGhpcyxudWxsLGVlLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiaXNIb3ZlcmVkIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpWPT4iaXNIb3ZlcmVkImluIFYsZ2V0OlY9PlYuaXNIb3ZlcmVkLHNldDooVixYKT0+e1YuaXNIb3ZlcmVkPVh9fSxtZXRhZGF0YTpVfSxQLGdlKSxUbih0aGlzLG51bGwsd2Use2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJpc0RyYWdnaW5nIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpWPT4iaXNEcmFnZ2luZyJpbiBWLGdldDpWPT5WLmlzRHJhZ2dpbmcsc2V0OihWLFgpPT57Vi5pc0RyYWdnaW5nPVh9fSxtZXRhZGF0YTpVfSxJLG5lKSxUbih0aGlzLG51bGwsa2Use2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJpc0xvYWRpbmciLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOlY9PiJpc0xvYWRpbmciaW4gVixnZXQ6Vj0+Vi5pc0xvYWRpbmcsc2V0OihWLFgpPT57Vi5pc0xvYWRpbmc9WH19LG1ldGFkYXRhOlV9LFksQSksVG4obnVsbCx0PXt2YWx1ZTppfSxlLHtraW5kOiJjbGFzcyIsbmFtZTppLm5hbWUsbWV0YWRhdGE6VX0sbnVsbCxyKSxMPWk9dC52YWx1ZSxVJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoaSxTeW1ib2wubWV0YWRhdGEse2VudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwLHZhbHVlOlV9KX1zdGF0aWMgZGVtbz12NHI7c3RhdGljIGRlbW9Hcm91cHM9WyJJbnB1dCJdOyNlPXQxKHRoaXMsbywiIik7Z2V0IHZhbHVlKCl7cmV0dXJuIHRoaXMuI2V9c2V0IHZhbHVlKFUpe3RoaXMuI2U9VX0jdD0odDEodGhpcyxzKSx0MSh0aGlzLGMsInJvdW5kIikpO2dldCBzaGFwZSgpe3JldHVybiB0aGlzLiN0fXNldCBzaGFwZShVKXt0aGlzLiN0PVV9I3I9KHQxKHRoaXMsdSksdDEodGhpcyxoLDEyMCkpO2dldCBzaXplKCl7cmV0dXJuIHRoaXMuI3J9c2V0IHNpemUoVSl7dGhpcy4jcj1VfSNpPSh0MSh0aGlzLGYpLHQxKHRoaXMsdiwiIikpO2dldCBwbGFjZWhvbGRlcigpe3JldHVybiB0aGlzLiNpfXNldCBwbGFjZWhvbGRlcihVKXt0aGlzLiNpPVV9I2E9KHQxKHRoaXMsYiksdDEodGhpcyx3LCEwKSk7Z2V0IGFsbG93VXBsb2FkKCl7cmV0dXJuIHRoaXMuI2F9c2V0IGFsbG93VXBsb2FkKFUpe3RoaXMuI2E9VX0jbj0odDEodGhpcyxrKSx0MSh0aGlzLHosITApKTtnZXQgYWxsb3dEZWxldGUoKXtyZXR1cm4gdGhpcy4jbn1zZXQgYWxsb3dEZWxldGUoVSl7dGhpcy4jbj1VfSNvPSh0MSh0aGlzLE0pLHQxKHRoaXMsRCw1KjEwMjQqMTAyNCkpO2dldCBtYXhGaWxlU2l6ZSgpe3JldHVybiB0aGlzLiNvfXNldCBtYXhGaWxlU2l6ZShVKXt0aGlzLiNvPVV9I3M9KHQxKHRoaXMsTiksdDEodGhpcyxfLFsiaW1hZ2UvanBlZyIsImltYWdlL3BuZyIsImltYWdlL3dlYnAiXSkpO2dldCBhY2NlcHRlZEZvcm1hdHMoKXtyZXR1cm4gdGhpcy4jc31zZXQgYWNjZXB0ZWRGb3JtYXRzKFUpe3RoaXMuI3M9VX0jbD0odDEodGhpcyxTKSx0MSh0aGlzLFQsODAwKSk7Z2V0IG91dHB1dFNpemUoKXtyZXR1cm4gdGhpcy4jbH1zZXQgb3V0cHV0U2l6ZShVKXt0aGlzLiNsPVV9I2M9KHQxKHRoaXMsRSksdDEodGhpcyxCLC45NSkpO2dldCBvdXRwdXRRdWFsaXR5KCl7cmV0dXJuIHRoaXMuI2N9c2V0IG91dHB1dFF1YWxpdHkoVSl7dGhpcy4jYz1VfSNkPSh0MSh0aGlzLEcpLHQxKHRoaXMsUCwhMSkpO2dldCBpc0hvdmVyZWQoKXtyZXR1cm4gdGhpcy4jZH1zZXQgaXNIb3ZlcmVkKFUpe3RoaXMuI2Q9VX0jdT0odDEodGhpcyxnZSksdDEodGhpcyxJLCExKSk7Z2V0IGlzRHJhZ2dpbmcoKXtyZXR1cm4gdGhpcy4jdX1zZXQgaXNEcmFnZ2luZyhVKXt0aGlzLiN1PVV9I3A9KHQxKHRoaXMsbmUpLHQxKHRoaXMsWSwhMSkpO2dldCBpc0xvYWRpbmcoKXtyZXR1cm4gdGhpcy4jcH1zZXQgaXNMb2FkaW5nKFUpe3RoaXMuI3A9VX1tb2RhbEluc3RhbmNlPSh0MSh0aGlzLEEpLG51bGwpO3N0YXRpYyBzdHlsZXM9W0RlLC4uLm90LmJhc2VTdHlsZXMsbS5kZWZhdWx0U3R5bGVzLG9lYAogICAgICAvKiBUT0RPOiBNaWdyYXRlIGhhcmRjb2RlZCB2YWx1ZXMgdG8gLS1kZWVzLSogQ1NTIHZhcmlhYmxlcyAqLwogICAgICA6aG9zdCB7CiAgICAgICAgZGlzcGxheTogYmxvY2s7CiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICB9CgogICAgICAuaW5wdXQtd3JhcHBlciB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICAgIGdhcDogMTZweDsKICAgICAgfQoKICAgICAgLnByb2ZpbGUtY29udGFpbmVyIHsKICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrOwogICAgICAgIGN1cnNvcjogcG9pbnRlcjsKICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC4zcyBlYXNlOwogICAgICB9CgogICAgICAucHJvZmlsZS1jb250YWluZXI6aG92ZXIgewogICAgICAgIHRyYW5zZm9ybTogc2NhbGUoMS4wMik7CiAgICAgIH0KCiAgICAgIC5wcm9maWxlLXBpY3R1cmUgewogICAgICAgIHdpZHRoOiB2YXIoLS1zaXplLCAxMjBweCk7CiAgICAgICAgaGVpZ2h0OiB2YXIoLS1zaXplLCAxMjBweCk7CiAgICAgICAgYmFja2dyb3VuZDogJHttLmJkVGhlbWUoIiNmNWY1ZjUiLCIjMTgxODFiIil9OwogICAgICAgIGJvcmRlcjogM3B4IHNvbGlkICR7bS5iZFRoZW1lKCIjZTVlN2ViIiwiIzI3MjcyYSIpfTsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7CiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuM3MgZWFzZTsKICAgICAgfQoKICAgICAgLnByb2ZpbGUtcGljdHVyZS5yb3VuZCB7CiAgICAgICAgYm9yZGVyLXJhZGl1czogNTAlOwogICAgICB9CgogICAgICAucHJvZmlsZS1waWN0dXJlLnNxdWFyZSB7CiAgICAgICAgYm9yZGVyLXJhZGl1czogMTJweDsKICAgICAgfQoKICAgICAgLnByb2ZpbGUtcGljdHVyZS5kcmFnZ2luZyB7CiAgICAgICAgYm9yZGVyLWNvbG9yOiAke20uYmRUaGVtZSgiIzNiODJmNiIsIiM2MGE1ZmEiKX07CiAgICAgICAgYm94LXNoYWRvdzogMCAwIDAgNHB4ICR7bS5iZFRoZW1lKCJyZ2JhKDU5LCAxMzAsIDI0NiwgMC4xNSkiLCJyZ2JhKDk2LCAxNjUsIDI1MCwgMC4xNSkiKX07CiAgICAgIH0KCiAgICAgIC5wcm9maWxlLXBpY3R1cmU6aG92ZXIgewogICAgICAgIGJvcmRlci1jb2xvcjogJHttLmJkVGhlbWUoIiNkNGQ0ZDgiLCIjM2YzZjQ2Iil9OwogICAgICB9CgogICAgICAucHJvZmlsZS1waWN0dXJlOmRpc2FibGVkIHsKICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkOwogICAgICAgIG9wYWNpdHk6IDAuNTsKICAgICAgfQoKICAgICAgLnByb2ZpbGUtaW1hZ2UgewogICAgICAgIHdpZHRoOiAxMDAlOwogICAgICAgIGhlaWdodDogMTAwJTsKICAgICAgICBvYmplY3QtZml0OiBjb3ZlcjsKICAgICAgfQoKICAgICAgLnBsYWNlaG9sZGVyLWljb24gewogICAgICAgIGNvbG9yOiAke20uYmRUaGVtZSgiIzcxNzE3YSIsIiNhMWExYWEiKX07CiAgICAgIH0KCiAgICAgIC5vdmVybGF5IHsKICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgICAgdG9wOiAwOwogICAgICAgIGxlZnQ6IDA7CiAgICAgICAgcmlnaHQ6IDA7CiAgICAgICAgYm90dG9tOiAwOwogICAgICAgIGJhY2tncm91bmQ6IHJnYmEoMCwgMCwgMCwgMC42KTsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7CiAgICAgICAgb3BhY2l0eTogMDsKICAgICAgICB0cmFuc2l0aW9uOiBvcGFjaXR5IDAuM3MgZWFzZTsKICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTsKICAgICAgfQoKICAgICAgLnByb2ZpbGUtY29udGFpbmVyOmhvdmVyIC5vdmVybGF5IHsKICAgICAgICBvcGFjaXR5OiAxOwogICAgICB9CgogICAgICAub3ZlcmxheS1jb250ZW50IHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGdhcDogMTJweDsKICAgICAgfQoKICAgICAgLm92ZXJsYXktYnV0dG9uIHsKICAgICAgICB3aWR0aDogNDBweDsKICAgICAgICBoZWlnaHQ6IDQwcHg7CiAgICAgICAgYm9yZGVyLXJhZGl1czogNTAlOwogICAgICAgIGJhY2tncm91bmQ6ICR7bS5iZFRoZW1lKCJyZ2JhKDI1NSwgMjU1LCAyNTUsIDAuOTUpIiwicmdiYSgzOSwgMzksIDQyLCAwLjk1KSIpfTsKICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAke20uYmRUaGVtZSgicmdiYSgwLCAwLCAwLCAwLjEpIiwicmdiYSgyNTUsIDI1NSwgMjU1LCAwLjEpIil9OwogICAgICAgIGNvbG9yOiAke20uYmRUaGVtZSgiIzA5MDkwYiIsIiNmYWZhZmEiKX07CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOwogICAgICAgIGN1cnNvcjogcG9pbnRlcjsKICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC4ycyBlYXNlOwogICAgICAgIHBvaW50ZXItZXZlbnRzOiBhdXRvOwogICAgICAgIGJveC1zaGFkb3c6IDAgMnB4IDRweCByZ2JhKDAsIDAsIDAsIDAuMSk7CiAgICAgIH0KCiAgICAgIC5vdmVybGF5LWJ1dHRvbjpob3ZlciB7CiAgICAgICAgYmFja2dyb3VuZDogJHttLmJkVGhlbWUoIiNmZmZmZmYiLCIjM2YzZjQ2Iil9OwogICAgICAgIHRyYW5zZm9ybTogc2NhbGUoMS4xKTsKICAgICAgICBib3gtc2hhZG93OiAwIDRweCA4cHggcmdiYSgwLCAwLCAwLCAwLjE1KTsKICAgICAgfQoKICAgICAgLm92ZXJsYXktYnV0dG9uLmRlbGV0ZSB7CiAgICAgICAgYmFja2dyb3VuZDogJHttLmJkVGhlbWUoInJnYmEoMjM5LCA2OCwgNjgsIDAuOSkiLCJyZ2JhKDIyMCwgMzgsIDM4LCAwLjkpIil9OwogICAgICAgIGNvbG9yOiB3aGl0ZTsKICAgICAgICBib3JkZXItY29sb3I6IHRyYW5zcGFyZW50OwogICAgICB9CgogICAgICAub3ZlcmxheS1idXR0b24uZGVsZXRlOmhvdmVyIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke20uYmRUaGVtZSgiI2VmNDQ0NCIsIiNkYzI2MjYiKX07CiAgICAgIH0KCiAgICAgIC5kcm9wLXpvbmUtdGV4dCB7CiAgICAgICAgcG9zaXRpb246IGFic29sdXRlOwogICAgICAgIHRvcDogNTAlOwogICAgICAgIGxlZnQ6IDUwJTsKICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlLCAtNTAlKTsKICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7CiAgICAgICAgY29sb3I6IHdoaXRlOwogICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7CiAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7CiAgICAgIH0KCiAgICAgIC5oaWRkZW4taW5wdXQgewogICAgICAgIGRpc3BsYXk6IG5vbmU7CiAgICAgIH0KCiAgICAgIC8qIExvYWRpbmcgYW5pbWF0aW9uICovCiAgICAgIC5sb2FkaW5nLW92ZXJsYXkgewogICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgICB0b3A6IDA7CiAgICAgICAgbGVmdDogMDsKICAgICAgICByaWdodDogMDsKICAgICAgICBib3R0b206IDA7CiAgICAgICAgYmFja2dyb3VuZDogJHttLmJkVGhlbWUoInJnYmEoMjU1LCAyNTUsIDI1NSwgMC44KSIsInJnYmEoMCwgMCwgMCwgMC44KSIpfTsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7CiAgICAgICAgYm9yZGVyLXJhZGl1czogaW5oZXJpdDsKICAgICAgICBvcGFjaXR5OiAwOwogICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lOwogICAgICAgIHRyYW5zaXRpb246IG9wYWNpdHkgMC4ycyBlYXNlOwogICAgICB9CgogICAgICAubG9hZGluZy1vdmVybGF5LnNob3cgewogICAgICAgIG9wYWNpdHk6IDE7CiAgICAgICAgcG9pbnRlci1ldmVudHM6IGF1dG87CiAgICAgIH0KCiAgICAgIC5sb2FkaW5nLXNwaW5uZXIgewogICAgICAgIHdpZHRoOiA0MHB4OwogICAgICAgIGhlaWdodDogNDBweDsKICAgICAgICBib3JkZXI6IDNweCBzb2xpZCAke20uYmRUaGVtZSgicmdiYSgwLCAwLCAwLCAwLjEpIiwicmdiYSgyNTUsIDI1NSwgMjU1LCAwLjEpIil9OwogICAgICAgIGJvcmRlci10b3AtY29sb3I6ICR7bS5iZFRoZW1lKCIjM2I4MmY2IiwiIzYwYTVmYSIpfTsKICAgICAgICBib3JkZXItcmFkaXVzOiA1MCU7CiAgICAgICAgYW5pbWF0aW9uOiBzcGluIDAuNnMgbGluZWFyIGluZmluaXRlOwogICAgICB9CgogICAgICBAa2V5ZnJhbWVzIHNwaW4gewogICAgICAgIHRvIHsKICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDM2MGRlZyk7CiAgICAgICAgfQogICAgICB9CgogICAgICBAa2V5ZnJhbWVzIHB1bHNlIHsKICAgICAgICAwJSB7CiAgICAgICAgICB0cmFuc2Zvcm06IHNjYWxlKDEpOwogICAgICAgICAgb3BhY2l0eTogMTsKICAgICAgICB9CiAgICAgICAgNTAlIHsKICAgICAgICAgIHRyYW5zZm9ybTogc2NhbGUoMS4wNSk7CiAgICAgICAgICBvcGFjaXR5OiAwLjg7CiAgICAgICAgfQogICAgICAgIDEwMCUgewogICAgICAgICAgdHJhbnNmb3JtOiBzY2FsZSgxKTsKICAgICAgICAgIG9wYWNpdHk6IDE7CiAgICAgICAgfQogICAgICB9CgogICAgICAucHJvZmlsZS1waWN0dXJlLmNsaWNraW5nIHsKICAgICAgICBhbmltYXRpb246IHB1bHNlIDAuM3MgZWFzZS1vdXQ7CiAgICAgIH0KICAgIGBdO3JlbmRlcigpe3JldHVybiBDYAogICAgICA8ZGl2IGNsYXNzPSJpbnB1dC13cmFwcGVyIj4KICAgICAgICA8ZGVlcy1sYWJlbCAubGFiZWw9JHt0aGlzLmxhYmVsfSAuZGVzY3JpcHRpb249JHt0aGlzLmRlc2NyaXB0aW9ufSAucmVxdWlyZWQ9JHt0aGlzLnJlcXVpcmVkfT48L2RlZXMtbGFiZWw+CiAgICAgICAgCiAgICAgICAgPGRpdiAKICAgICAgICAgIGNsYXNzPSJwcm9maWxlLWNvbnRhaW5lciIKICAgICAgICAgIEBjbGljaz0ke3RoaXMuaGFuZGxlQ2xpY2t9CiAgICAgICAgICBAZHJhZ292ZXI9JHt0aGlzLmhhbmRsZURyYWdPdmVyfQogICAgICAgICAgQGRyYWdsZWF2ZT0ke3RoaXMuaGFuZGxlRHJhZ0xlYXZlfQogICAgICAgICAgQGRyb3A9JHt0aGlzLmhhbmRsZURyb3B9CiAgICAgICAgICBzdHlsZT0iLS1zaXplOiAke3RoaXMuc2l6ZX1weCIKICAgICAgICA+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJwcm9maWxlLXBpY3R1cmUgJHt0aGlzLnNoYXBlfSAke3RoaXMuaXNEcmFnZ2luZz8iZHJhZ2dpbmciOiIifSAke3RoaXMuaXNMb2FkaW5nJiYhdGhpcy52YWx1ZT8iY2xpY2tpbmciOiIifSI+CiAgICAgICAgICAgICR7dGhpcy52YWx1ZT9DYAogICAgICAgICAgICAgIDxpbWcgY2xhc3M9InByb2ZpbGUtaW1hZ2UiIHNyYz0iJHt0aGlzLnZhbHVlfSIgYWx0PSJQcm9maWxlIHBpY3R1cmUiIC8+CiAgICAgICAgICAgIGA6Q2AKICAgICAgICAgICAgICA8ZGVlcy1pY29uIGNsYXNzPSJwbGFjZWhvbGRlci1pY29uIiBpY29uPSJsdWNpZGU6dXNlciIgaWNvblNpemU9IiR7dGhpcy5zaXplKi41fSI+PC9kZWVzLWljb24+CiAgICAgICAgICAgIGB9CiAgICAgICAgICAgIAogICAgICAgICAgICAke3RoaXMuaXNEcmFnZ2luZz9DYAogICAgICAgICAgICAgIDxkaXYgY2xhc3M9Im92ZXJsYXkiIHN0eWxlPSJvcGFjaXR5OiAxIj4KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImRyb3Atem9uZS10ZXh0Ij4KICAgICAgICAgICAgICAgICAgRHJvcCBpbWFnZSBoZXJlCiAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgYDoiIn0KICAgICAgICAgICAgCiAgICAgICAgICAgICR7dGhpcy52YWx1ZSYmIXRoaXMuZGlzYWJsZWQ/Q2AKICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJvdmVybGF5Ij4KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9Im92ZXJsYXktY29udGVudCI+CiAgICAgICAgICAgICAgICAgICR7dGhpcy5hbGxvd1VwbG9hZD9DYAogICAgICAgICAgICAgICAgICAgIDxidXR0b24gY2xhc3M9Im92ZXJsYXktYnV0dG9uIiBAY2xpY2s9JHtVPT57VS5zdG9wUHJvcGFnYXRpb24oKSx0aGlzLm9wZW5Nb2RhbCgpfX0gdGl0bGU9IkNoYW5nZSBwaWN0dXJlIj4KICAgICAgICAgICAgICAgICAgICAgIDxkZWVzLWljb24gaWNvbj0ibHVjaWRlOnBlbmNpbCIgaWNvblNpemU9IjIwIj48L2RlZXMtaWNvbj4KICAgICAgICAgICAgICAgICAgICA8L2J1dHRvbj4KICAgICAgICAgICAgICAgICAgYDoiIn0KICAgICAgICAgICAgICAgICAgJHt0aGlzLmFsbG93RGVsZXRlP0NgCiAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz0ib3ZlcmxheS1idXR0b24gZGVsZXRlIiBAY2xpY2s9JHtVPT57VS5zdG9wUHJvcGFnYXRpb24oKSx0aGlzLmRlbGV0ZVBpY3R1cmUoKX19IHRpdGxlPSJEZWxldGUgcGljdHVyZSI+CiAgICAgICAgICAgICAgICAgICAgICA8ZGVlcy1pY29uIGljb249Imx1Y2lkZTp0cmFzaDIiIGljb25TaXplPSIyMCI+PC9kZWVzLWljb24+CiAgICAgICAgICAgICAgICAgICAgPC9idXR0b24+CiAgICAgICAgICAgICAgICAgIGA6IiJ9CiAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgYDoiIn0KICAgICAgICAgICAgCiAgICAgICAgICAgICR7dGhpcy5pc0xvYWRpbmcmJiF0aGlzLnZhbHVlP0NgCiAgICAgICAgICAgICAgPGRpdiBjbGFzcz0ibG9hZGluZy1vdmVybGF5IHNob3ciPgogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0ibG9hZGluZy1zcGlubmVyIj48L2Rpdj4KICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgYDoiIn0KICAgICAgICAgIDwvZGl2PgogICAgICAgIDwvZGl2PgogICAgICAgIAogICAgICAgIDxpbnB1dAogICAgICAgICAgdHlwZT0iZmlsZSIKICAgICAgICAgIGNsYXNzPSJoaWRkZW4taW5wdXQiCiAgICAgICAgICBhY2NlcHQ9IiR7dGhpcy5hY2NlcHRlZEZvcm1hdHMuam9pbigiLCIpfSIKICAgICAgICAgIEBjaGFuZ2U9JHt0aGlzLmhhbmRsZUZpbGVTZWxlY3R9CiAgICAgICAgLz4KICAgICAgPC9kaXY+CiAgICBgfWhhbmRsZUNsaWNrKCl7aWYoISh0aGlzLmRpc2FibGVkfHwhdGhpcy5hbGxvd1VwbG9hZCkmJiF0aGlzLnZhbHVlKXt0aGlzLmlzTG9hZGluZz0hMDtsZXQgVT10aGlzLnNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvcigiLmhpZGRlbi1pbnB1dCIpLFY9KCk9PntzZXRUaW1lb3V0KCgpPT57KCFVLmZpbGVzfHxVLmZpbGVzLmxlbmd0aD09PTApJiYodGhpcy5pc0xvYWRpbmc9ITEpLHdpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyKCJmb2N1cyIsVil9LDMwMCl9O3dpbmRvdy5hZGRFdmVudExpc3RlbmVyKCJmb2N1cyIsViksVS5jbGljaygpfX1oYW5kbGVGaWxlU2VsZWN0KFUpe2xldCBWPVUudGFyZ2V0LFg9Vi5maWxlcz8uWzBdO3RoaXMuaXNMb2FkaW5nPSExLFgmJnRoaXMucHJvY2Vzc0ZpbGUoWCksVi52YWx1ZT0iIn1oYW5kbGVEcmFnT3ZlcihVKXtVLnByZXZlbnREZWZhdWx0KCksIXRoaXMuZGlzYWJsZWQmJnRoaXMuYWxsb3dVcGxvYWQmJih0aGlzLmlzRHJhZ2dpbmc9ITApfWhhbmRsZURyYWdMZWF2ZSgpe3RoaXMuaXNEcmFnZ2luZz0hMX1oYW5kbGVEcm9wKFUpe2lmKFUucHJldmVudERlZmF1bHQoKSx0aGlzLmlzRHJhZ2dpbmc9ITEsdGhpcy5kaXNhYmxlZHx8IXRoaXMuYWxsb3dVcGxvYWQpcmV0dXJuO2xldCBWPVUuZGF0YVRyYW5zZmVyPy5maWxlc1swXTtWJiZ0aGlzLnByb2Nlc3NGaWxlKFYpfWFzeW5jIHByb2Nlc3NGaWxlKFUpe2lmKCF0aGlzLmFjY2VwdGVkRm9ybWF0cy5pbmNsdWRlcyhVLnR5cGUpKXtjb25zb2xlLmVycm9yKCJJbnZhbGlkIGZpbGUgdHlwZToiLFUudHlwZSk7cmV0dXJufWlmKFUuc2l6ZT50aGlzLm1heEZpbGVTaXplKXtjb25zb2xlLmVycm9yKCJGaWxlIHRvbyBsYXJnZToiLFUuc2l6ZSk7cmV0dXJufWxldCBWPW5ldyBGaWxlUmVhZGVyO1Yub25sb2FkPWFzeW5jIFg9PntsZXQgZGU9WC50YXJnZXQ/LnJlc3VsdDthd2FpdCB0aGlzLm9wZW5Nb2RhbChkZSl9LFYucmVhZEFzRGF0YVVSTChVKX1hc3luYyBvcGVuTW9kYWwoVSl7bGV0IFY9VXx8dGhpcy52YWx1ZTtpZighVil7dGhpcy5zaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3IoIi5oaWRkZW4taW5wdXQiKS5jbGljaygpO3JldHVybn10aGlzLm1vZGFsSW5zdGFuY2U9bmV3IGNkZSx0aGlzLm1vZGFsSW5zdGFuY2Uuc2hhcGU9dGhpcy5zaGFwZSx0aGlzLm1vZGFsSW5zdGFuY2UuaW5pdGlhbEltYWdlPVYsdGhpcy5tb2RhbEluc3RhbmNlLm91dHB1dFNpemU9dGhpcy5vdXRwdXRTaXplLHRoaXMubW9kYWxJbnN0YW5jZS5vdXRwdXRRdWFsaXR5PXRoaXMub3V0cHV0UXVhbGl0eSx0aGlzLm1vZGFsSW5zdGFuY2UuYWRkRXZlbnRMaXN0ZW5lcigic2F2ZSIsWD0+e3RoaXMudmFsdWU9WC5kZXRhaWwuY3JvcHBlZEltYWdlLHRoaXMuY2hhbmdlU3ViamVjdC5uZXh0KHRoaXMpfSksZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZCh0aGlzLm1vZGFsSW5zdGFuY2UpfWRlbGV0ZVBpY3R1cmUoKXt0aGlzLnZhbHVlPSIiLHRoaXMuY2hhbmdlU3ViamVjdC5uZXh0KHRoaXMpfWdldFZhbHVlKCl7cmV0dXJuIHRoaXMudmFsdWV9c2V0VmFsdWUoVSl7dGhpcy52YWx1ZT1VfXN0YXRpY3t0MShpLHIpfX07cmV0dXJuIEw9aX0pKCl9KTt2YXIgdzRyPXAoKCk9PntoMHIoKTtmMHIoKTttMHIoKTtoNmUoKTtnMHIoKTt2NmUoKTtiMHIoKTtNMHIoKTtrMHIoKTtTMHIoKTt6MHIoKTtDMHIoKTtJMHIoKTtOMHIoKTtxMHIoKTtqMHIoKTtWMHIoKTtVMHIoKTttNHIoKTtkZGUoKX0pO3ZhciBNNHIsazRyPXAoKCk9Pnt4ZSgpO000cj0oKT0+Q2AKICA8c3R5bGU+CiAgICAuZGVtb0NvbnRhaW5lciB7CiAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgIGdhcDogMzJweDsKICAgICAgcGFkZGluZzogNDhweDsKICAgICAgYmFja2dyb3VuZDogJHttLmJkVGhlbWUoIiNmOGY5ZmEiLCIjMGEwYTBhIil9OwogICAgICBtaW4taGVpZ2h0OiAxMDB2aDsKICAgIH0KICAgIAogICAgLnNlY3Rpb24gewogICAgICBiYWNrZ3JvdW5kOiAke20uYmRUaGVtZSgiI2ZmZmZmZiIsIiMxODE4MWIiKX07CiAgICAgIGJvcmRlcjogMXB4IHNvbGlkICR7bS5iZFRoZW1lKCIjZTVlN2ViIiwiIzI3MjcyYSIpfTsKICAgICAgYm9yZGVyLXJhZGl1czogOHB4OwogICAgICBwYWRkaW5nOiAyNHB4OwogICAgICBib3gtc2hhZG93OiAwIDFweCAzcHggcmdiYSgwLCAwLCAwLCAwLjEpOwogICAgfQogICAgCiAgICAuc2VjdGlvbi10aXRsZSB7CiAgICAgIGZvbnQtc2l6ZTogMThweDsKICAgICAgZm9udC13ZWlnaHQ6IDYwMDsKICAgICAgbWFyZ2luLWJvdHRvbTogMTZweDsKICAgICAgY29sb3I6ICR7bS5iZFRoZW1lKCIjMDkwOTBiIiwiI2ZhZmFmYSIpfTsKICAgIH0KICAgIAogICAgLnNlY3Rpb24tZGVzY3JpcHRpb24gewogICAgICBmb250LXNpemU6IDE0cHg7CiAgICAgIGNvbG9yOiAke20uYmRUaGVtZSgiIzcxNzE3YSIsIiNhMWExYWEiKX07CiAgICAgIG1hcmdpbi1ib3R0b206IDE2cHg7CiAgICB9CiAgPC9zdHlsZT4KICA8ZGl2IGNsYXNzPSJkZW1vQ29udGFpbmVyIj4KICAgIDxkaXYgY2xhc3M9InNlY3Rpb24iPgogICAgICA8ZGl2IGNsYXNzPSJzZWN0aW9uLXRpdGxlIj5Ob24tU2VsZWN0YWJsZSBDaGlwczwvZGl2PgogICAgICA8ZGl2IGNsYXNzPSJzZWN0aW9uLWRlc2NyaXB0aW9uIj5CYXNpYyBjaGlwcyB3aXRob3V0IHNlbGVjdGlvbiBjYXBhYmlsaXR5LiBVc2UgZm9yIGRpc3BsYXktb25seSB0YWdzLjwvZGl2PgogICAgICA8ZGVlcy1jaGlwcwogICAgICAgIHNlbGVjdGlvbk1vZGU9Im5vbmUiCiAgICAgICAgLnNlbGVjdGFibGVDaGlwcz0ke1t7a2V5OiJzdGF0dXMiLHZhbHVlOiJBY3RpdmUifSx7a2V5OiJ0aWVyIix2YWx1ZToiUHJlbWl1bSJ9LHtrZXk6InJlZ2lvbiIsdmFsdWU6IkVVLVdlc3QifSx7a2V5OiJ0eXBlIix2YWx1ZToiRW50ZXJwcmlzZSJ9XX0KICAgICAgPjwvZGVlcy1jaGlwcz4KICAgIDwvZGl2PgogICAgCiAgICA8ZGl2IGNsYXNzPSJzZWN0aW9uIj4KICAgICAgPGRpdiBjbGFzcz0ic2VjdGlvbi10aXRsZSI+U2luZ2xlIFNlbGVjdGlvbiBDaGlwczwvZGl2PgogICAgICA8ZGl2IGNsYXNzPSJzZWN0aW9uLWRlc2NyaXB0aW9uIj5DbGljayB0byBzZWxlY3Qgb25lIGNoaXAgYXQgYSB0aW1lLiBVc2VmdWwgZm9yIGZpbHRlcnMgYW5kIG9wdGlvbnMuPC9kaXY+CiAgICAgIDxkZWVzLWNoaXBzCiAgICAgICAgc2VsZWN0aW9uTW9kZT0ic2luZ2xlIgogICAgICAgIC5zZWxlY3RhYmxlQ2hpcHM9JHtbe2tleToiYWxsIix2YWx1ZToiQWxsIFByb2plY3RzIn0se2tleToiYWN0aXZlIix2YWx1ZToiQWN0aXZlIn0se2tleToiYXJjaGl2ZWQiLHZhbHVlOiJBcmNoaXZlZCJ9LHtrZXk6ImRyYWZ0cyIsdmFsdWU6IkRyYWZ0cyJ9XX0KICAgICAgPjwvZGVlcy1jaGlwcz4KICAgIDwvZGl2PgogICAgCiAgICA8ZGl2IGNsYXNzPSJzZWN0aW9uIj4KICAgICAgPGRpdiBjbGFzcz0ic2VjdGlvbi10aXRsZSI+TXVsdGlwbGUgU2VsZWN0aW9uIENoaXBzPC9kaXY+CiAgICAgIDxkaXYgY2xhc3M9InNlY3Rpb24tZGVzY3JpcHRpb24iPlNlbGVjdCBtdWx0aXBsZSBjaGlwcyBzaW11bHRhbmVvdXNseS4gR3JlYXQgZm9yIHRhZyBzZWxlY3Rpb24uPC9kaXY+CiAgICAgIDxkZWVzLWNoaXBzCiAgICAgICAgc2VsZWN0aW9uTW9kZT0ibXVsdGlwbGUiCiAgICAgICAgLnNlbGVjdGFibGVDaGlwcz0ke1t7a2V5OiJqcyIsdmFsdWU6IkphdmFTY3JpcHQifSx7a2V5OiJ0cyIsdmFsdWU6IlR5cGVTY3JpcHQifSx7a2V5OiJyZWFjdCIsdmFsdWU6IlJlYWN0In0se2tleToidnVlIix2YWx1ZToiVnVlIn0se2tleToiYW5ndWxhciIsdmFsdWU6IkFuZ3VsYXIifSx7a2V5OiJub2RlIix2YWx1ZToiTm9kZS5qcyJ9XX0KICAgICAgPjwvZGVlcy1jaGlwcz4KICAgIDwvZGl2PgogICAgCiAgICA8ZGl2IGNsYXNzPSJzZWN0aW9uIj4KICAgICAgPGRpdiBjbGFzcz0ic2VjdGlvbi10aXRsZSI+UmVtb3ZhYmxlIENoaXBzIHdpdGggS2V5czwvZGl2PgogICAgICA8ZGl2IGNsYXNzPSJzZWN0aW9uLWRlc2NyaXB0aW9uIj5DaGlwcyB3aXRoIHJlbW92ZSBidXR0b25zIGFuZCBrZXktdmFsdWUgcGFpcnMuIFBlcmZlY3QgZm9yIGR5bmFtaWMgbGlzdHMuPC9kaXY+CiAgICAgIDxkZWVzLWNoaXBzCiAgICAgICAgc2VsZWN0aW9uTW9kZT0ic2luZ2xlIgogICAgICAgIGNoaXBzQXJlUmVtb3ZhYmxlCiAgICAgICAgLnNlbGVjdGFibGVDaGlwcz0ke1t7a2V5OiJlbnYiLHZhbHVlOiJQcm9kdWN0aW9uIn0se2tleToidmVyc2lvbiIsdmFsdWU6IjIuNC4xIn0se2tleToiYnJhbmNoIix2YWx1ZToibWFpbiJ9LHtrZXk6ImF1dGhvciIsdmFsdWU6IkpvaG4gRG9lIn1dfQogICAgICA+PC9kZWVzLWNoaXBzPgogICAgPC9kaXY+CiAgICAKICAgIDxkaXYgY2xhc3M9InNlY3Rpb24iPgogICAgICA8ZGl2IGNsYXNzPSJzZWN0aW9uLXRpdGxlIj5NaXhlZCBDb250ZW50IEV4YW1wbGU8L2Rpdj4KICAgICAgPGRpdiBjbGFzcz0ic2VjdGlvbi1kZXNjcmlwdGlvbiI+Q29tYmluaW5nIGRpZmZlcmVudCBjaGlwIHR5cGVzIGZvciBjb21wbGV4IFVJcy48L2Rpdj4KICAgICAgPGRlZXMtY2hpcHMKICAgICAgICBzZWxlY3Rpb25Nb2RlPSJtdWx0aXBsZSIKICAgICAgICBjaGlwc0FyZVJlbW92YWJsZQogICAgICAgIC5zZWxlY3RhYmxlQ2hpcHM9JHtbe2tleToicHJpb3JpdHkiLHZhbHVlOiJIaWdoIn0se2tleToic3RhdHVzIix2YWx1ZToiSW4gUHJvZ3Jlc3MifSx7a2V5OiJidWciLHZhbHVlOiJCdWcifSx7a2V5OiJmZWF0dXJlIix2YWx1ZToiRmVhdHVyZSJ9LHtrZXk6InNwcmludCIsdmFsdWU6IlNwcmludCAyMyJ9LHtrZXk6ImFzc2lnbmVlIix2YWx1ZToiQWxpY2UifV19CiAgICAgID48L2RlZXMtY2hpcHM+CiAgICA8L2Rpdj4KICA8L2Rpdj4KYH0pO3ZhciBjaCxJMixTNHIsejRyPXAoKCk9Pnt4ZSgpO0t0KCk7azRyKCk7SmUoKTtjaD1mdW5jdGlvbihlLHQscixpLGEsbil7ZnVuY3Rpb24gbyh5KXtpZih5IT09dm9pZCAwJiZ0eXBlb2YgeSE9ImZ1bmN0aW9uIil0aHJvdyBuZXcgVHlwZUVycm9yKCJGdW5jdGlvbiBleHBlY3RlZCIpO3JldHVybiB5fWZvcih2YXIgcz1pLmtpbmQsbD1zPT09ImdldHRlciI/ImdldCI6cz09PSJzZXR0ZXIiPyJzZXQiOiJ2YWx1ZSIsYz0hdCYmZT9pLnN0YXRpYz9lOmUucHJvdG90eXBlOm51bGwsdT10fHwoYz9PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGMsaS5uYW1lKTp7fSksZCxoPSExLGY9ci5sZW5ndGgtMTtmPj0wO2YtLSl7dmFyIHg9e307Zm9yKHZhciB2IGluIGkpeFt2XT12PT09ImFjY2VzcyI/e306aVt2XTtmb3IodmFyIHYgaW4gaS5hY2Nlc3MpeC5hY2Nlc3Nbdl09aS5hY2Nlc3Nbdl07eC5hZGRJbml0aWFsaXplcj1mdW5jdGlvbih5KXtpZihoKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBhZGQgaW5pdGlhbGl6ZXJzIGFmdGVyIGRlY29yYXRpb24gaGFzIGNvbXBsZXRlZCIpO24ucHVzaChvKHl8fG51bGwpKX07dmFyIGI9KDAscltmXSkocz09PSJhY2Nlc3NvciI/e2dldDp1LmdldCxzZXQ6dS5zZXR9OnVbbF0seCk7aWYocz09PSJhY2Nlc3NvciIpe2lmKGI9PT12b2lkIDApY29udGludWU7aWYoYj09PW51bGx8fHR5cGVvZiBiIT0ib2JqZWN0Iil0aHJvdyBuZXcgVHlwZUVycm9yKCJPYmplY3QgZXhwZWN0ZWQiKTsoZD1vKGIuZ2V0KSkmJih1LmdldD1kKSwoZD1vKGIuc2V0KSkmJih1LnNldD1kKSwoZD1vKGIuaW5pdCkpJiZhLnVuc2hpZnQoZCl9ZWxzZShkPW8oYikpJiYocz09PSJmaWVsZCI/YS51bnNoaWZ0KGQpOnVbbF09ZCl9YyYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGMsaS5uYW1lLHUpLGg9ITB9LEkyPWZ1bmN0aW9uKGUsdCxyKXtmb3IodmFyIGk9YXJndW1lbnRzLmxlbmd0aD4yLGE9MDthPHQubGVuZ3RoO2ErKylyPWk/dFthXS5jYWxsKGUscik6dFthXS5jYWxsKGUpO3JldHVybiBpP3I6dm9pZCAwfSxTNHI9KCgpPT57bGV0IGU9W3llKCJkZWVzLWNoaXBzIildLHQscj1bXSxpLGE9emUsbixvPVtdLHM9W10sbCxjPVtdLHU9W10sZCxoPVtdLGY9W10seCx2PVtdLGI9W10seSx3PVtdLGs9W107dmFyIE89Y2xhc3MgZXh0ZW5kcyBhe3N0YXRpY3tpPXRoaXN9c3RhdGlje2xldCB6PXR5cGVvZiBTeW1ib2w9PSJmdW5jdGlvbiImJlN5bWJvbC5tZXRhZGF0YT9PYmplY3QuY3JlYXRlKGFbU3ltYm9sLm1ldGFkYXRhXT8/bnVsbCk6dm9pZCAwO249W2ooKV0sbD1baih7dHlwZTpCb29sZWFufSldLGQ9W2ooe3R5cGU6QXJyYXl9KV0seD1baigpXSx5PVtqKHt0eXBlOkFycmF5fSldLGNoKHRoaXMsbnVsbCxuLHtraW5kOiJhY2Nlc3NvciIsbmFtZToic2VsZWN0aW9uTW9kZSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6TT0+InNlbGVjdGlvbk1vZGUiaW4gTSxnZXQ6TT0+TS5zZWxlY3Rpb25Nb2RlLHNldDooTSxGKT0+e00uc2VsZWN0aW9uTW9kZT1GfX0sbWV0YWRhdGE6en0sbyxzKSxjaCh0aGlzLG51bGwsbCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImNoaXBzQXJlUmVtb3ZhYmxlIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpNPT4iY2hpcHNBcmVSZW1vdmFibGUiaW4gTSxnZXQ6TT0+TS5jaGlwc0FyZVJlbW92YWJsZSxzZXQ6KE0sRik9PntNLmNoaXBzQXJlUmVtb3ZhYmxlPUZ9fSxtZXRhZGF0YTp6fSxjLHUpLGNoKHRoaXMsbnVsbCxkLHtraW5kOiJhY2Nlc3NvciIsbmFtZToic2VsZWN0YWJsZUNoaXBzIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpNPT4ic2VsZWN0YWJsZUNoaXBzImluIE0sZ2V0Ok09Pk0uc2VsZWN0YWJsZUNoaXBzLHNldDooTSxGKT0+e00uc2VsZWN0YWJsZUNoaXBzPUZ9fSxtZXRhZGF0YTp6fSxoLGYpLGNoKHRoaXMsbnVsbCx4LHtraW5kOiJhY2Nlc3NvciIsbmFtZToic2VsZWN0ZWRDaGlwIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpNPT4ic2VsZWN0ZWRDaGlwImluIE0sZ2V0Ok09Pk0uc2VsZWN0ZWRDaGlwLHNldDooTSxGKT0+e00uc2VsZWN0ZWRDaGlwPUZ9fSxtZXRhZGF0YTp6fSx2LGIpLGNoKHRoaXMsbnVsbCx5LHtraW5kOiJhY2Nlc3NvciIsbmFtZToic2VsZWN0ZWRDaGlwcyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6TT0+InNlbGVjdGVkQ2hpcHMiaW4gTSxnZXQ6TT0+TS5zZWxlY3RlZENoaXBzLHNldDooTSxGKT0+e00uc2VsZWN0ZWRDaGlwcz1GfX0sbWV0YWRhdGE6en0sdyxrKSxjaChudWxsLHQ9e3ZhbHVlOml9LGUse2tpbmQ6ImNsYXNzIixuYW1lOmkubmFtZSxtZXRhZGF0YTp6fSxudWxsLHIpLE89aT10LnZhbHVlLHomJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShpLFN5bWJvbC5tZXRhZGF0YSx7ZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITAsdmFsdWU6en0pfXN0YXRpYyBkZW1vPU00cjtzdGF0aWMgZGVtb0dyb3Vwcz1bIkxheW91dCJdOyNlPUkyKHRoaXMsbywic2luZ2xlIik7Z2V0IHNlbGVjdGlvbk1vZGUoKXtyZXR1cm4gdGhpcy4jZX1zZXQgc2VsZWN0aW9uTW9kZSh6KXt0aGlzLiNlPXp9I3Q9KEkyKHRoaXMscyksSTIodGhpcyxjLCExKSk7Z2V0IGNoaXBzQXJlUmVtb3ZhYmxlKCl7cmV0dXJuIHRoaXMuI3R9c2V0IGNoaXBzQXJlUmVtb3ZhYmxlKHope3RoaXMuI3Q9en0jcj0oSTIodGhpcyx1KSxJMih0aGlzLGgsW10pKTtnZXQgc2VsZWN0YWJsZUNoaXBzKCl7cmV0dXJuIHRoaXMuI3J9c2V0IHNlbGVjdGFibGVDaGlwcyh6KXt0aGlzLiNyPXp9I2k9KEkyKHRoaXMsZiksSTIodGhpcyx2LG51bGwpKTtnZXQgc2VsZWN0ZWRDaGlwKCl7cmV0dXJuIHRoaXMuI2l9c2V0IHNlbGVjdGVkQ2hpcCh6KXt0aGlzLiNpPXp9I2E9KEkyKHRoaXMsYiksSTIodGhpcyx3LFtdKSk7Z2V0IHNlbGVjdGVkQ2hpcHMoKXtyZXR1cm4gdGhpcy4jYX1zZXQgc2VsZWN0ZWRDaGlwcyh6KXt0aGlzLiNhPXp9Y29uc3RydWN0b3IoKXtzdXBlcigpLEkyKHRoaXMsayl9c3RhdGljIHN0eWxlcz1bRGUsbS5kZWZhdWx0U3R5bGVzLG9lYAogICAgICAvKiBUT0RPOiBNaWdyYXRlIGhhcmRjb2RlZCB2YWx1ZXMgdG8gLS1kZWVzLSogQ1NTIHZhcmlhYmxlcyAqLwogICAgICA6aG9zdCB7CiAgICAgICAgZGlzcGxheTogYmxvY2s7CiAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDsKICAgICAgfQoKICAgICAgLm1haW5ib3ggewogICAgICAgIHVzZXItc2VsZWN0OiBub25lOwogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgZmxleC13cmFwOiB3cmFwOwogICAgICAgIGdhcDogOHB4OwogICAgICB9CgogICAgICAuY2hpcCB7CiAgICAgICAgYmFja2dyb3VuZDogJHttLmJkVGhlbWUoIiNmNGY0ZjUiLCIjMjcyNzJhIil9OwogICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICR7bS5iZFRoZW1lKCIjZTVlN2ViIiwiIzNmM2Y0NiIpfTsKICAgICAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGhlaWdodDogMzJweDsKICAgICAgICBwYWRkaW5nOiAwcHggMTJweDsKICAgICAgICBmb250LXNpemU6IDE0cHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDsKICAgICAgICBjb2xvcjogJHttLmJkVGhlbWUoIiMwOTA5MGIiLCIjZmFmYWZhIil9OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDZweDsKICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgICAgY3Vyc29yOiBwb2ludGVyOwogICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjE1cyBlYXNlOwogICAgICAgIGJveC1zaGFkb3c6IDAgMXB4IDJweCAwIHJnYmEoMCwgMCwgMCwgMC4wNSk7CiAgICAgIH0KCiAgICAgIC5jaGlwOmhvdmVyIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke20uYmRUaGVtZSgiI2U1ZTdlYiIsIiMzZjNmNDYiKX07CiAgICAgICAgYm9yZGVyLWNvbG9yOiAke20uYmRUaGVtZSgiI2QxZDVkYiIsIiM1MjUyNWIiKX07CiAgICAgIH0KCiAgICAgIC5jaGlwOmFjdGl2ZSB7CiAgICAgICAgdHJhbnNmb3JtOiBzY2FsZSgwLjk4KTsKICAgICAgfQoKICAgICAgLmNoaXAuc2VsZWN0ZWQgewogICAgICAgIGJhY2tncm91bmQ6ICR7bS5iZFRoZW1lKCIjM2I4MmY2IiwiIzNiODJmNiIpfTsKICAgICAgICBib3JkZXItY29sb3I6ICR7bS5iZFRoZW1lKCIjM2I4MmY2IiwiIzNiODJmNiIpfTsKICAgICAgICBjb2xvcjogI2ZmZmZmZjsKICAgICAgfQoKICAgICAgLmNoaXAuc2VsZWN0ZWQ6aG92ZXIgewogICAgICAgIGJhY2tncm91bmQ6ICR7bS5iZFRoZW1lKCIjMjU2M2ViIiwiIzI1NjNlYiIpfTsKICAgICAgICBib3JkZXItY29sb3I6ICR7bS5iZFRoZW1lKCIjMjU2M2ViIiwiIzI1NjNlYiIpfTsKICAgICAgfQoKICAgICAgLmNoaXBLZXkgewogICAgICAgIGJhY2tncm91bmQ6ICR7bS5iZFRoZW1lKCJyZ2JhKDAsIDAsIDAsIDAuMDYpIiwicmdiYSgyNTUsIDI1NSwgMjU1LCAwLjEpIil9OwogICAgICAgIGhlaWdodDogMjBweDsKICAgICAgICBsaW5lLWhlaWdodDogMjBweDsKICAgICAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIG1hcmdpbi1sZWZ0OiAtOHB4OwogICAgICAgIHBhZGRpbmc6IDBweCA4cHg7CiAgICAgICAgbWFyZ2luLXJpZ2h0OiA4cHg7CiAgICAgICAgYm9yZGVyLXJhZGl1czogNHB4OwogICAgICAgIGZvbnQtc2l6ZTogMTJweDsKICAgICAgICBmb250LXdlaWdodDogNjAwOwogICAgICAgIGNvbG9yOiAke20uYmRUaGVtZSgiIzcxNzE3YSIsIiNhMWExYWEiKX07CiAgICAgIH0KCiAgICAgIC5jaGlwLnNlbGVjdGVkIC5jaGlwS2V5IHsKICAgICAgICBiYWNrZ3JvdW5kOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMik7CiAgICAgICAgY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC45KTsKICAgICAgfQoKICAgICAgZGVlcy1pY29uIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7CiAgICAgICAgd2lkdGg6IDE2cHg7CiAgICAgICAgaGVpZ2h0OiAxNnB4OwogICAgICAgIG1hcmdpbi1sZWZ0OiA4cHg7CiAgICAgICAgbWFyZ2luLXJpZ2h0OiAtNnB4OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDNweDsKICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC4xNXMgZWFzZTsKICAgICAgICBjb2xvcjogJHttLmJkVGhlbWUoIiM3MTcxN2EiLCIjYTFhMWFhIil9OwogICAgICB9CgogICAgICAuY2hpcC5zZWxlY3RlZCBkZWVzLWljb24gewogICAgICAgIGNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuOCk7CiAgICAgIH0KCiAgICAgIGRlZXMtaWNvbjpob3ZlciB7CiAgICAgICAgYmFja2dyb3VuZDogJHttLmJkVGhlbWUoInJnYmEoMCwgMCwgMCwgMC4xKSIsInJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xKSIpfTsKICAgICAgICBjb2xvcjogJHttLmJkVGhlbWUoIiNlZjQ0NDQiLCIjZWY0NDQ0Iil9OwogICAgICB9CgogICAgICAuY2hpcC5zZWxlY3RlZCBkZWVzLWljb246aG92ZXIgewogICAgICAgIGJhY2tncm91bmQ6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4yKTsKICAgICAgICBjb2xvcjogI2ZmZmZmZjsKICAgICAgfQogICAgYF07cmVuZGVyKCl7cmV0dXJuIENgCiAgICAgIDxkaXYgY2xhc3M9Im1haW5ib3giPgogICAgICAgICR7dGhpcy5zZWxlY3RhYmxlQ2hpcHMubWFwKHo9PkNgCiAgICAgICAgICAgIDxkaXYKICAgICAgICAgICAgICBAY2xpY2s9JHsoKT0+dGhpcy5zZWxlY3RDaGlwKHopfQogICAgICAgICAgICAgIGNsYXNzPSJjaGlwICR7dGhpcy5pc1NlbGVjdGVkKHopPyJzZWxlY3RlZCI6IiJ9IgogICAgICAgICAgICA+CiAgICAgICAgICAgICAgJHt6LmtleT9DYDxkaXYgY2xhc3M9ImNoaXBLZXkiPiR7ei5rZXl9PC9kaXY+YDpDYGB9ICR7ei52YWx1ZX0KICAgICAgICAgICAgICAke3RoaXMuY2hpcHNBcmVSZW1vdmFibGU/Q2AKICAgICAgICAgICAgICAgICAgICA8ZGVlcy1pY29uCiAgICAgICAgICAgICAgICAgICAgICBAY2xpY2s9JHtNPT57TS5zdG9wUHJvcGFnYXRpb24oKSx0aGlzLnJlbW92ZUNoaXAoeil9fQogICAgICAgICAgICAgICAgICAgICAgLmljb249JHsiZmE6eG1hcmsifQogICAgICAgICAgICAgICAgICAgID48L2RlZXMtaWNvbj4KICAgICAgICAgICAgICAgICAgYDpDYGB9CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgYCl9CiAgICAgIDwvZGl2PgogICAgYH1hc3luYyBmaXJzdFVwZGF0ZWQoKXt9aXNTZWxlY3RlZCh6KXtyZXR1cm4gdGhpcy5zZWxlY3Rpb25Nb2RlPT09InNpbmdsZSI/dGhpcy5zZWxlY3RlZENoaXA/dGhpcy5pc1NhbWVDaGlwKHRoaXMuc2VsZWN0ZWRDaGlwLHopOiExOnRoaXMuc2VsZWN0ZWRDaGlwcy5zb21lKE09PnRoaXMuaXNTYW1lQ2hpcChNLHopKX1pc1NhbWVDaGlwKHosTSl7cmV0dXJuKHoua2V5JiZNLmtleXx8ei52YWx1ZT09PU0udmFsdWUpJiZ6LmtleT09PU0ua2V5fWFzeW5jIHNlbGVjdENoaXAoeil7dGhpcy5zZWxlY3Rpb25Nb2RlIT09Im5vbmUiJiYodGhpcy5zZWxlY3Rpb25Nb2RlPT09InNpbmdsZSI/dGhpcy5pc1NlbGVjdGVkKHopPyh0aGlzLnNlbGVjdGVkQ2hpcD1udWxsLHRoaXMuc2VsZWN0ZWRDaGlwcz1bXSk6KHRoaXMuc2VsZWN0ZWRDaGlwPXosdGhpcy5zZWxlY3RlZENoaXBzPVt6XSk6dGhpcy5zZWxlY3Rpb25Nb2RlPT09Im11bHRpcGxlIiYmKHRoaXMuaXNTZWxlY3RlZCh6KT90aGlzLnNlbGVjdGVkQ2hpcHM9dGhpcy5zZWxlY3RlZENoaXBzLmZpbHRlcihNPT4hdGhpcy5pc1NhbWVDaGlwKE0seikpOnRoaXMuc2VsZWN0ZWRDaGlwcz1bLi4udGhpcy5zZWxlY3RlZENoaXBzLHpdLHRoaXMucmVxdWVzdFVwZGF0ZSgpKSxjb25zb2xlLmxvZyh0aGlzLnNlbGVjdGVkQ2hpcHMpKX1yZW1vdmVDaGlwKHope3RoaXMuc2VsZWN0YWJsZUNoaXBzPXRoaXMuc2VsZWN0YWJsZUNoaXBzLmZpbHRlcihNPT4hdGhpcy5pc1NhbWVDaGlwKE0seikpLHRoaXMuc2VsZWN0ZWRDaGlwcz10aGlzLnNlbGVjdGVkQ2hpcHMuZmlsdGVyKE09PiF0aGlzLmlzU2FtZUNoaXAoTSx6KSksdGhpcy5zZWxlY3RlZENoaXAmJnRoaXMuaXNTYW1lQ2hpcCh0aGlzLnNlbGVjdGVkQ2hpcCx6KSYmKHRoaXMuc2VsZWN0ZWRDaGlwPW51bGwpLHRoaXMucmVxdWVzdFVwZGF0ZSgpfXN0YXRpY3tJMihpLHIpfX07cmV0dXJuIE89aX0pKCl9KTt2YXIgQzRyPXAoKCk9Pnt6NHIoKX0pO3ZhciBUNHIsXzRyPXAoKCk9Pnt4ZSgpO3AxKCk7VDRyPSgpPT5DYAogICAgPGRlZXMtZGVtb3dyYXBwZXIgLnJ1bkFmdGVyUmVuZGVyPSR7YXN5bmMgZT0+e2xldCB0PWUucXVlcnlTZWxlY3RvcigiI2Rhc2hib2FyZEdyaWQiKSxyPVt7aWQ6Im1ldHJpY3MxIix4OjAseTowLHc6MyxoOjIsdGl0bGU6IlJldmVudWUiLGljb246Imx1Y2lkZTpkb2xsYXJTaWduIixjb250ZW50OkNgCiAgICAgICAgICAgIDxkaXYgc3R5bGU9InBhZGRpbmc6IDIwcHg7Ij4KICAgICAgICAgICAgICA8ZGl2IHN0eWxlPSJmb250LXNpemU6IDMycHg7IGZvbnQtd2VpZ2h0OiA3MDA7IGNvbG9yOiAke20uYmRUaGVtZSgiIzA5MDkwYiIsIiNmYWZhZmEiKX07Ij4kMTI0LDU2MzwvZGl2PgogICAgICAgICAgICAgIDxkaXYgc3R5bGU9ImNvbG9yOiAjMjJjNTVlOyBmb250LXNpemU6IDE0cHg7IG1hcmdpbi10b3A6IDhweDsiPuKGkSAxMi41JSBmcm9tIGxhc3QgbW9udGg8L2Rpdj4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICBgfSx7aWQ6Im1ldHJpY3MyIix4OjMseTowLHc6MyxoOjIsdGl0bGU6IlVzZXJzIixpY29uOiJsdWNpZGU6dXNlcnMiLGNvbnRlbnQ6Q2AKICAgICAgICAgICAgPGRpdiBzdHlsZT0icGFkZGluZzogMjBweDsiPgogICAgICAgICAgICAgIDxkaXYgc3R5bGU9ImZvbnQtc2l6ZTogMzJweDsgZm9udC13ZWlnaHQ6IDcwMDsgY29sb3I6ICR7bS5iZFRoZW1lKCIjMDkwOTBiIiwiI2ZhZmFmYSIpfTsiPjgsMjM0PC9kaXY+CiAgICAgICAgICAgICAgPGRpdiBzdHlsZT0iY29sb3I6ICMzYjgyZjY7IGZvbnQtc2l6ZTogMTRweDsgbWFyZ2luLXRvcDogOHB4OyI+4oaRIDUuMiUgZnJvbSBsYXN0IHdlZWs8L2Rpdj4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICBgfSx7aWQ6ImNoYXJ0MSIseDo2LHk6MCx3OjYsaDo0LHRpdGxlOiJBbmFseXRpY3MiLGljb246Imx1Y2lkZTpsaW5lQ2hhcnQiLGNvbnRlbnQ6Q2AKICAgICAgICAgICAgPGRpdiBzdHlsZT0icGFkZGluZzogMjBweDsgaGVpZ2h0OiAxMDAlOyBkaXNwbGF5OiBmbGV4OyBhbGlnbi1pdGVtczogY2VudGVyOyBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsiPgogICAgICAgICAgICAgIDxkaXYgc3R5bGU9InRleHQtYWxpZ246IGNlbnRlcjsgY29sb3I6ICM3MTcxN2E7Ij4KICAgICAgICAgICAgICAgIDxkZWVzLWljb24gLmljb249JHsibHVjaWRlOmxpbmVDaGFydCJ9IHN0eWxlPSJmb250LXNpemU6IDQ4cHg7IG1hcmdpbi1ib3R0b206IDE2cHg7Ij48L2RlZXMtaWNvbj4KICAgICAgICAgICAgICAgIDxkaXY+Q2hhcnQgdmlzdWFsaXphdGlvbiBhcmVhPC9kaXY+CiAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgYH1dO3Qud2lkZ2V0cz1yLm1hcCh5PT4oey4uLnl9KSksdC5jZWxsSGVpZ2h0PTgwLHQubWFyZ2luPXt0b3A6MTAscmlnaHQ6MTAsYm90dG9tOjEwLGxlZnQ6MTB9LHQuZW5hYmxlQW5pbWF0aW9uPSEwLHQuc2hvd0dyaWRMaW5lcz0hMTtsZXQgaT10LmdldExheW91dCgpLm1hcCh5PT4oey4uLnl9KSksYT10LndpZGdldHMubWFwKCh5LHcpPT4oe2lkOnkuaWQseDowLHk6dz09PTA/MDp0LndpZGdldHMuc2xpY2UoMCx3KS5yZWR1Y2UoKGssTyk9PmsrTy5oLDApLHc6dC5jb2x1bW5zLGg6eS5ofSkpO3QubGF5b3V0cz17YmFzZTppLG1vYmlsZTphfTtsZXQgbj1lLnF1ZXJ5U2VsZWN0b3IoIiNkYXNoYm9hcmRMYXlvdXRTdGF0dXMiKSxvPSgpPT57bGV0IHk9dC5nZXRMYXlvdXQoKTtuLnRleHRDb250ZW50PWBBY3RpdmUgYnJlYWtwb2ludDogJHt0LmFjdGl2ZUJyZWFrcG9pbnR9IFx1MjAyMiBUaWxlczogJHt5Lmxlbmd0aH1gfSxzPXdpbmRvdy5tYXRjaE1lZGlhKCIobWF4LXdpZHRoOiA3NjhweCkiKSxsPSgpPT57bGV0IHk9cy5tYXRjaGVzPyJtb2JpbGUiOiJiYXNlIjt0LmFwcGx5QnJlYWtwb2ludExheW91dCh5KSxvKCl9O3R5cGVvZiBzLmFkZEV2ZW50TGlzdGVuZXI9PSJmdW5jdGlvbiI/cy5hZGRFdmVudExpc3RlbmVyKCJjaGFuZ2UiLGwpOnMuYWRkTGlzdGVuZXI/LihsKSxsKCk7bGV0IGM9NDtlLnF1ZXJ5U2VsZWN0b3JBbGwoImRlZXMtYnV0dG9uIikuZm9yRWFjaCh5PT57c3dpdGNoKHkudGV4dENvbnRlbnQ/LnRyaW0oKSl7Y2FzZSJUb2dnbGUgQW5pbWF0aW9uIjp5LmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIiwoKT0+e3QuZW5hYmxlQW5pbWF0aW9uPSF0LmVuYWJsZUFuaW1hdGlvbn0pO2JyZWFrO2Nhc2UiVG9nZ2xlIEdyaWQgTGluZXMiOnkuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLCgpPT57dC5zaG93R3JpZExpbmVzPSF0LnNob3dHcmlkTGluZXN9KTticmVhaztjYXNlIkFkZCBXaWRnZXQiOnkuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLCgpPT57bGV0IGs9e2lkOmB3aWRnZXQke2MrK31gLHg6MCx5OjAsdzozLGg6MixhdXRvUG9zaXRpb246ITAsdGl0bGU6YFdpZGdldCAke2MtMX1gLGljb246Imx1Y2lkZTpwYWNrYWdlIixjb250ZW50OkNgCiAgICAgICAgICAgICAgICAgIDxkaXYgc3R5bGU9InBhZGRpbmc6IDIwcHg7IHRleHQtYWxpZ246IGNlbnRlcjsiPgogICAgICAgICAgICAgICAgICAgIDxkaXYgc3R5bGU9ImNvbG9yOiAjNzE3MTdhOyI+TmV3IHdpZGdldCBjb250ZW50PC9kaXY+CiAgICAgICAgICAgICAgICAgICAgPGRpdiBzdHlsZT0ibWFyZ2luLXRvcDogOHB4OyBmb250LXNpemU6IDI0cHg7IGZvbnQtd2VpZ2h0OiA2MDA7IGNvbG9yOiAke20uYmRUaGVtZSgiIzA5MDkwYiIsIiNmYWZhZmEiKX07Ij4ke01hdGguZmxvb3IoTWF0aC5yYW5kb20oKSoxZTMpfTwvZGl2PgogICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgIGB9O3QuYWRkV2lkZ2V0KGssITApfSk7YnJlYWs7Y2FzZSJDb21wYWN0IEdyaWQiOnkuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLCgpPT57dC5jb21wYWN0KCl9KTticmVhaztjYXNlIlRvZ2dsZSBFZGl0IE1vZGUiOnkuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLCgpPT57dC5lZGl0YWJsZT0hdC5lZGl0YWJsZSx5LnRleHRDb250ZW50PXQuZWRpdGFibGU/IkxvY2sgR3JpZCI6IlVubG9jayBHcmlkIn0pO2JyZWFrO2Nhc2UiUmVzZXQgTGF5b3V0Ijp5LmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIiwoKT0+e3QuYXBwbHlCcmVha3BvaW50TGF5b3V0KHQuYWN0aXZlQnJlYWtwb2ludCl9KTticmVhaztkZWZhdWx0OmJyZWFrfX0pO2xldCBkPW51bGwsaD0wLGY9KHksdyk9PntsZXQgaz10LmdldExheW91dCgpO2NvbnNvbGUuZ3JvdXAoYFx1ezFGNTA0fSAke3l9IFtFdmVudCAjJHsrK2h9XWApLGNvbnNvbGUubG9nKCJUaW1lc3RhbXA6IixuZXcgRGF0ZSgpLnRvSVNPU3RyaW5nKCkpLGNvbnNvbGUubG9nKCJHcmlkIENvbmZpZ3VyYXRpb246Iix7Y29sdW1uczp0LmNvbHVtbnMsY2VsbEhlaWdodDp0LmNlbGxIZWlnaHQsbWFyZ2luOnQubWFyZ2luLGVkaXRhYmxlOnQuZWRpdGFibGUsYWN0aXZlQnJlYWtwb2ludDp0LmFjdGl2ZUJyZWFrcG9pbnR9KSxjb25zb2xlLmxvZygiQ3VycmVudCBMYXlvdXQ6IixrKSxjb25zb2xlLmxvZygiV2lkZ2V0IENvdW50OiIsay5sZW5ndGgpLGNvbnNvbGUubG9nKCJHcmlkIEJvdW5kczoiLHt0b3RhbFdpZGdldHM6dC53aWRnZXRzLmxlbmd0aCxtYXhZOk1hdGgubWF4KC4uLmsubWFwKE89Pk8ueStPLmgpKSxvY2N1cGllZDprLm1hcChPPT5gJHtPLmlkfTogKCR7Ty54fSwke08ueX0pICR7Ty53fXgke08uaH1gKS5qb2luKCIsICIpfSksdyYmY29uc29sZS5sb2coIkV2ZW50IERldGFpbHM6Iix3KSxjb25zb2xlLmdyb3VwRW5kKCl9LHg9bmV3IE11dGF0aW9uT2JzZXJ2ZXIoKCk9PntsZXQgeT10LnNoYWRvd1Jvb3Q/LnF1ZXJ5U2VsZWN0b3IoIi5wbGFjZWhvbGRlciIpO2lmKHkpe2xldCB3PXtsZWZ0Onkuc3R5bGUubGVmdCx0b3A6eS5zdHlsZS50b3Asd2lkdGg6eS5zdHlsZS53aWR0aCxoZWlnaHQ6eS5zdHlsZS5oZWlnaHR9O2lmKEpTT04uc3RyaW5naWZ5KHcpIT09SlNPTi5zdHJpbmdpZnkoZCkpe2NvbnNvbGUuZ3JvdXAoIlx1ezFGNENEfSBQbGFjZWhvbGRlciBQb3NpdGlvbiBDaGFuZ2VkIiksY29uc29sZS5sb2coIlByZXZpb3VzOiIsZCksY29uc29sZS5sb2coIkN1cnJlbnQ6Iix3KTtsZXQgaz10LnNoYWRvd1Jvb3Q/LnF1ZXJ5U2VsZWN0b3IoIi5ncmlkLWNvbnRhaW5lciIpO2smJmNvbnNvbGUubG9nKCJHcmlkIENvbnRhaW5lciBEaW1lbnNpb25zOiIse3dpZHRoOmsuY2xpZW50V2lkdGgsaGVpZ2h0OmsuY2xpZW50SGVpZ2h0fSksY29uc29sZS5ncm91cEVuZCgpLGQ9d319fSk7dC5zaGFkb3dSb290JiZ4Lm9ic2VydmUodC5zaGFkb3dSb290LHtjaGlsZExpc3Q6ITAsc3VidHJlZTohMCxhdHRyaWJ1dGVzOiEwLGF0dHJpYnV0ZUZpbHRlcjpbInN0eWxlIl19KSxmKCJJbml0aWFsIEdyaWQgU3RhdGUiKSx0LmFkZEV2ZW50TGlzdGVuZXIoIndpZGdldC1tb3ZlIix5PT57ZigiV2lkZ2V0IE1vdmUiLHt3aWRnZXQ6eS5kZXRhaWwud2lkZ2V0LGRpc3BsYWNlZDp5LmRldGFpbC5kaXNwbGFjZWQsc3dhcHBlZFdpdGg6eS5kZXRhaWwuc3dhcHBlZFdpdGh9KX0pLHQuYWRkRXZlbnRMaXN0ZW5lcigid2lkZ2V0LXJlc2l6ZSIseT0+e2YoIldpZGdldCBSZXNpemUiLHt3aWRnZXQ6eS5kZXRhaWwud2lkZ2V0LGRpc3BsYWNlZDp5LmRldGFpbC5kaXNwbGFjZWQsc3dhcHBlZFdpdGg6eS5kZXRhaWwuc3dhcHBlZFdpdGh9KX0pLHQuYWRkRXZlbnRMaXN0ZW5lcigid2lkZ2V0LXJlbW92ZSIseT0+e2YoIldpZGdldCBSZW1vdmUiLHtyZW1vdmVkV2lkZ2V0OnkuZGV0YWlsLndpZGdldH0pLG8oKX0pLHQuYWRkRXZlbnRMaXN0ZW5lcigibGF5b3V0LWNoYW5nZSIsKCk9PntmKCJMYXlvdXQgQ2hhbmdlIiksbygpfSksdC5hZGRFdmVudExpc3RlbmVyKCJwb2ludGVyZG93biIseT0+e2xldCB3PXkudGFyZ2V0LmNsb3Nlc3QoIi53aWRnZXQtaGVhZGVyIiksaz15LnRhcmdldC5jbG9zZXN0KCIucmVzaXplLWhhbmRsZSIpO2lmKHd8fGspe2NvbnNvbGUuZ3JvdXAoYFx1ezFGM0FGfSBJbnRlcmFjdGlvbiBTdGFydGVkOiAke3c/IkRyYWciOiJSZXNpemUifWApLGNvbnNvbGUubG9nKCJUYXJnZXQgV2lkZ2V0OiIseS50YXJnZXQuY2xvc2VzdCgiLndpZGdldCIpPy5nZXRBdHRyaWJ1dGUoImRhdGEtd2lkZ2V0LWlkIikpLGNvbnNvbGUubG9nKCJQb2ludGVyIFBvc2l0aW9uOiIse3g6eS5jbGllbnRYLHk6eS5jbGllbnRZfSksY29uc29sZS5ncm91cEVuZCgpO2xldCBPPU09PntsZXQgRj15LnRhcmdldC5jbG9zZXN0KCIud2lkZ2V0Iik7RiYmY29uc29sZS5sb2coIlx1MjE5NFx1RkUwRiBQb2ludGVyIE1vdmU6Iix7d2lkZ2V0SWQ6Ri5nZXRBdHRyaWJ1dGUoImRhdGEtd2lkZ2V0LWlkIikscG9zaXRpb246e3g6TS5jbGllbnRYLHk6TS5jbGllbnRZfSxkZWx0YTp7eDpNLmNsaWVudFgteS5jbGllbnRYLHk6TS5jbGllbnRZLXkuY2xpZW50WX19KX0sej0oKT0+e2NvbnNvbGUuZ3JvdXAoIlx1ezFGM0MxfSBJbnRlcmFjdGlvbiBFbmRlZCIpLGYoIkZpbmFsIFN0YXRlIEFmdGVyIEludGVyYWN0aW9uIiksY29uc29sZS5ncm91cEVuZCgpLGRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoInBvaW50ZXJtb3ZlIixPKSxkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCJwb2ludGVydXAiLHopfTtkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCJwb2ludGVybW92ZSIsTyksZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigicG9pbnRlcnVwIix6KX19KTtsZXQgdj10LmFkZFdpZGdldC5iaW5kKHQpO3QuYWRkV2lkZ2V0PSh5LHcpPT57Y29uc29sZS5ncm91cCgiXHUyNzk1IEFkZGluZyBXaWRnZXQiKSxjb25zb2xlLmxvZygiTmV3IFdpZGdldDoiLHkpLGNvbnNvbGUubG9nKCJBdXRvIFBvc2l0aW9uOiIsdyk7bGV0IGs9dih5LHcpO3JldHVybiBmKCJBZnRlciBXaWRnZXQgQWRkZWQiKSxjb25zb2xlLmdyb3VwRW5kKCksa307bGV0IGI9dC5jb21wYWN0LmJpbmQodCk7dC5jb21wYWN0PXk9Pntjb25zb2xlLmdyb3VwKCJcdXsxRjVEQ31cdUZFMEYgQ29tcGFjdGluZyBHcmlkIiksY29uc29sZS5sb2coIkRpcmVjdGlvbjoiLHl8fCJ2ZXJ0aWNhbCIpLGYoIkJlZm9yZSBDb21wYWN0Iik7bGV0IHc9Yih5KTtyZXR1cm4gZigiQWZ0ZXIgQ29tcGFjdCIpLGNvbnNvbGUuZ3JvdXBFbmQoKSx3fSxvKCl9fT4KICAgICAgPHN0eWxlPgogICAgICAgICR7b2VgCiAgICAgICAgICAuZGVtb0JveCB7CiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgICAgICAgYmFja2dyb3VuZDogJHttLmJkVGhlbWUoIiNmNGY0ZjUiLCIjMDkwOTBiIil9OwogICAgICAgICAgICBoZWlnaHQ6IDEwMCU7CiAgICAgICAgICAgIHdpZHRoOiAxMDAlOwogICAgICAgICAgICBwYWRkaW5nOiA0MHB4OwogICAgICAgICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94OwogICAgICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICAgICAgICBnYXA6IDI0cHg7CiAgICAgICAgICB9CgogICAgICAgICAgLmRlbW8tY29udHJvbHMgewogICAgICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgICAgICBmbGV4LXdyYXA6IHdyYXA7CiAgICAgICAgICAgIGdhcDogMTJweDsKICAgICAgICAgIH0KCiAgICAgICAgICAuZGVtby1jb250cm9scyBkZWVzLWJ1dHRvbiB7CiAgICAgICAgICAgIGZsZXgtc2hyaW5rOiAwOwogICAgICAgICAgfQoKICAgICAgICAgIC5ncmlkLWNvbnRhaW5lci13cmFwcGVyIHsKICAgICAgICAgICAgZmxleDogMTsKICAgICAgICAgICAgbWluLWhlaWdodDogNjAwcHg7CiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgICAgIH0KCiAgICAgICAgICAuaW5mbyB7CiAgICAgICAgICAgIGNvbG9yOiAke20uYmRUaGVtZSgiIzcxNzE3YSIsIiM3MTcxN2EiKX07CiAgICAgICAgICAgIGZvbnQtc2l6ZTogMTJweDsKICAgICAgICAgICAgZm9udC1mYW1pbHk6ICdHZWlzdCBTYW5zJywgc2Fucy1zZXJpZjsKICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyOwogICAgICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICAgICAgICBnYXA6IDZweDsKICAgICAgICAgIH0KCiAgICAgICAgICAjZGFzaGJvYXJkTGF5b3V0U3RhdHVzIHsKICAgICAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDsKICAgICAgICAgICAgY29sb3I6ICR7bS5iZFRoZW1lKCIjM2I4MmY2IiwiIzYwYTVmYSIpfTsKICAgICAgICAgIH0KICAgICAgICBgfQogICAgICA8L3N0eWxlPgogICAgICA8ZGl2IGNsYXNzPSJkZW1vQm94Ij4KICAgICAgICA8ZGl2IGNsYXNzPSJkZW1vLWNvbnRyb2xzIj4KICAgICAgICAgIDxkZWVzLWJ1dHRvbi1ncm91cCBsYWJlbD0iQW5pbWF0aW9uOiI+CiAgICAgICAgICAgIDxkZWVzLWJ1dHRvbj5Ub2dnbGUgQW5pbWF0aW9uPC9kZWVzLWJ1dHRvbj4KICAgICAgICAgIDwvZGVlcy1idXR0b24tZ3JvdXA+CgogICAgICAgICAgPGRlZXMtYnV0dG9uLWdyb3VwIGxhYmVsPSJEaXNwbGF5OiI+CiAgICAgICAgICAgIDxkZWVzLWJ1dHRvbj5Ub2dnbGUgR3JpZCBMaW5lczwvZGVlcy1idXR0b24+CiAgICAgICAgICA8L2RlZXMtYnV0dG9uLWdyb3VwPgoKICAgICAgICAgIDxkZWVzLWJ1dHRvbi1ncm91cCBsYWJlbD0iQWN0aW9uczoiPgogICAgICAgICAgICA8ZGVlcy1idXR0b24+QWRkIFdpZGdldDwvZGVlcy1idXR0b24+CiAgICAgICAgICAgIDxkZWVzLWJ1dHRvbj5Db21wYWN0IEdyaWQ8L2RlZXMtYnV0dG9uPgogICAgICAgICAgICA8ZGVlcy1idXR0b24+UmVzZXQgTGF5b3V0PC9kZWVzLWJ1dHRvbj4KICAgICAgICAgIDwvZGVlcy1idXR0b24tZ3JvdXA+CgogICAgICAgICAgPGRlZXMtYnV0dG9uLWdyb3VwIGxhYmVsPSJNb2RlOiI+CiAgICAgICAgICAgIDxkZWVzLWJ1dHRvbj5Ub2dnbGUgRWRpdCBNb2RlPC9kZWVzLWJ1dHRvbj4KICAgICAgICAgIDwvZGVlcy1idXR0b24tZ3JvdXA+CiAgICAgICAgPC9kaXY+CgogICAgICAgIDxkaXYgY2xhc3M9ImdyaWQtY29udGFpbmVyLXdyYXBwZXIiPgogICAgICAgICAgPGRlZXMtZGFzaGJvYXJkZ3JpZCBpZD0iZGFzaGJvYXJkR3JpZCI+PC9kZWVzLWRhc2hib2FyZGdyaWQ+CiAgICAgICAgPC9kaXY+CgogICAgICAgIDxkaXYgY2xhc3M9ImluZm8iPgogICAgICAgICAgPGRpdj5EcmFnIHRvIHJlcG9zaXRpb24sIHJlc2l6ZSBmcm9tIGhhbmRsZXMsIG9yIHJpZ2h0LWNsaWNrIGEgaGVhZGVyIHRvIGRlbGV0ZSBhIHRpbGUuPC9kaXY+CiAgICAgICAgICA8ZGl2IGlkPSJkYXNoYm9hcmRMYXlvdXRTdGF0dXMiPjwvZGl2PgogICAgICAgIDwvZGl2PgogICAgICA8L2Rpdj4KICAgIDwvZGVlcy1kZW1vd3JhcHBlcj4KICBgfSk7dmFyIEw0cixBNHI9cCgoKT0+e3hlKCk7TDRyPVttLmRlZmF1bHRTdHlsZXMsb2VgCiAgICAgIDpob3N0IHsKICAgICAgICBkaXNwbGF5OiBibG9jazsKICAgICAgICB3aWR0aDogMTAwJTsKICAgICAgICBoZWlnaHQ6IDEwMCU7CiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICB9CgogICAgICAuZ3JpZC1jb250YWluZXIgewogICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgICB3aWR0aDogMTAwJTsKICAgICAgICBtaW4taGVpZ2h0OiA0MDBweDsKICAgICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94OwogICAgICB9CgogICAgICAuZ3JpZC13aWRnZXQgewogICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgICB3aWxsLWNoYW5nZTogYXV0bzsKICAgICAgfQogICAgICAKICAgICAgOmhvc3QoW2VuYWJsZWFuaW1hdGlvbl0pIC5ncmlkLXdpZGdldCB7CiAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuM3MgY3ViaWMtYmV6aWVyKDAuNCwgMCwgMC4yLCAxKTsKICAgICAgfQoKICAgICAgLmdyaWQtd2lkZ2V0LmRyYWdnaW5nIHsKICAgICAgICB6LWluZGV4OiAxMDAwOwogICAgICAgIHRyYW5zaXRpb246IG5vbmUgIWltcG9ydGFudDsKICAgICAgICBvcGFjaXR5OiAwLjg7CiAgICAgICAgY3Vyc29yOiBncmFiYmluZzsKICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTsKICAgICAgICB3aWxsLWNoYW5nZTogdHJhbnNmb3JtOwogICAgICB9CiAgICAgIAogICAgICAuZ3JpZC13aWRnZXQucGxhY2Vob2xkZXIgewogICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lOwogICAgICAgIHotaW5kZXg6IDE7CiAgICAgIH0KICAgICAgCiAgICAgIC5ncmlkLXdpZGdldC5wbGFjZWhvbGRlciAud2lkZ2V0LWNvbnRlbnQgewogICAgICAgIGJhY2tncm91bmQ6ICR7bS5iZFRoZW1lKCJyZ2JhKDU5LCAxMzAsIDI0NiwgMC4xKSIsInJnYmEoNTksIDEzMCwgMjQ2LCAwLjEpIil9OwogICAgICAgIGJvcmRlcjogMnB4IGRhc2hlZCAke20uYmRUaGVtZSgiIzNiODJmNiIsIiMzYjgyZjYiKX07CiAgICAgICAgYm94LXNoYWRvdzogbm9uZTsKICAgICAgfQoKICAgICAgLmdyaWQtd2lkZ2V0LnJlc2l6aW5nIHsKICAgICAgICB0cmFuc2l0aW9uOiBub25lICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC53aWRnZXQtY29udGVudCB7CiAgICAgICAgcG9zaXRpb246IGFic29sdXRlOwogICAgICAgIGxlZnQ6IDA7CiAgICAgICAgcmlnaHQ6IDA7CiAgICAgICAgdG9wOiAwOwogICAgICAgIGJvdHRvbTogMDsKICAgICAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgICAgIGJhY2tncm91bmQ6ICR7bS5iZFRoZW1lKCIjZmZmZmZmIiwiIzA5MDkwYiIpfTsKICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAke20uYmRUaGVtZSgiI2U1ZTdlYiIsIiMyNzI3MmEiKX07CiAgICAgICAgYm9yZGVyLXJhZGl1czogOHB4OwogICAgICAgIGJveC1zaGFkb3c6ICR7bS5iZFRoZW1lKCIwIDFweCAzcHggcmdiYSgwLCAwLCAwLCAwLjEpIiwiMCAxcHggM3B4IHJnYmEoMCwgMCwgMCwgMC4zKSIpfTsKICAgICAgICB0cmFuc2l0aW9uOiBib3gtc2hhZG93IDAuMnMgZWFzZTsKICAgICAgfQoKICAgICAgLmdyaWQtd2lkZ2V0OmhvdmVyIC53aWRnZXQtY29udGVudCB7CiAgICAgICAgYm94LXNoYWRvdzogJHttLmJkVGhlbWUoIjAgNHB4IDEycHggcmdiYSgwLCAwLCAwLCAwLjE1KSIsIjAgNHB4IDEycHggcmdiYSgwLCAwLCAwLCAwLjQpIil9OwogICAgICB9CgogICAgICAuZ3JpZC13aWRnZXQuZHJhZ2dpbmcgLndpZGdldC1jb250ZW50IHsKICAgICAgICBib3gtc2hhZG93OiAke20uYmRUaGVtZSgiMCAxNnB4IDQ4cHggcmdiYSgwLCAwLCAwLCAwLjI1KSIsIjAgMTZweCA0OHB4IHJnYmEoMCwgMCwgMCwgMC42KSIpfTsKICAgICAgICB0cmFuc2Zvcm06IHNjYWxlKDEuMDUpOwogICAgICB9CgogICAgICAud2lkZ2V0LWhlYWRlciB7CiAgICAgICAgcGFkZGluZzogMTJweCAxNnB4OwogICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAke20uYmRUaGVtZSgiI2U1ZTdlYiIsIiMyNzI3MmEiKX07CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGdhcDogOHB4OwogICAgICAgIGZvbnQtc2l6ZTogMTRweDsKICAgICAgICBmb250LXdlaWdodDogNjAwOwogICAgICAgIGNvbG9yOiAke20uYmRUaGVtZSgiIzA5MDkwYiIsIiNmYWZhZmEiKX07CiAgICAgICAgYmFja2dyb3VuZDogJHttLmJkVGhlbWUoIiNmOWZhZmIiLCIjMGEwYTBhIil9OwogICAgICAgIGN1cnNvcjogZ3JhYjsKICAgICAgICB1c2VyLXNlbGVjdDogbm9uZTsKICAgICAgfQogICAgICAKICAgICAgLndpZGdldC1oZWFkZXI6aG92ZXIgewogICAgICAgIGJhY2tncm91bmQ6ICR7bS5iZFRoZW1lKCIjZjRmNGY1IiwiIzE4MTgxYiIpfTsKICAgICAgfQogICAgICAKICAgICAgLndpZGdldC1oZWFkZXI6YWN0aXZlIHsKICAgICAgICBjdXJzb3I6IGdyYWJiaW5nOwogICAgICB9CgogICAgICAud2lkZ2V0LWhlYWRlci5sb2NrZWQgewogICAgICAgIGN1cnNvcjogZGVmYXVsdDsKICAgICAgfQogICAgICAKICAgICAgLndpZGdldC1oZWFkZXIubG9ja2VkOmhvdmVyIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke20uYmRUaGVtZSgiI2Y5ZmFmYiIsIiMwYTBhMGEiKX07CiAgICAgIH0KCiAgICAgIC53aWRnZXQtaGVhZGVyIGRlZXMtaWNvbiB7CiAgICAgICAgZm9udC1zaXplOiAxNnB4OwogICAgICAgIGNvbG9yOiAke20uYmRUaGVtZSgiIzcxNzE3YSIsIiM3MTcxN2EiKX07CiAgICAgIH0KCiAgICAgIC53aWRnZXQtYm9keSB7CiAgICAgICAgcG9zaXRpb246IGFic29sdXRlOwogICAgICAgIHRvcDogMDsKICAgICAgICBsZWZ0OiAwOwogICAgICAgIHJpZ2h0OiAwOwogICAgICAgIGJvdHRvbTogMDsKICAgICAgICBvdmVyZmxvdzogYXV0bzsKICAgICAgICBjb2xvcjogJHttLmJkVGhlbWUoIiMwOTA5MGIiLCIjZmFmYWZhIil9OwogICAgICB9CgogICAgICAud2lkZ2V0LWJvZHkuaGFzLWhlYWRlciB7CiAgICAgICAgdG9wOiA0NXB4OwogICAgICB9CgogICAgICAucmVzaXplLWhhbmRsZSB7CiAgICAgICAgcG9zaXRpb246IGFic29sdXRlOwogICAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50OwogICAgICAgIHotaW5kZXg6IDEwOwogICAgICB9CgogICAgICAucmVzaXplLWhhbmRsZTpob3ZlciB7CiAgICAgICAgYmFja2dyb3VuZDogJHttLmJkVGhlbWUoIiMzYjgyZjYiLCIjM2I4MmY2Iil9OwogICAgICAgIG9wYWNpdHk6IDAuMzsKICAgICAgfQoKICAgICAgLnJlc2l6ZS1oYW5kbGUtZSB7CiAgICAgICAgY3Vyc29yOiBldy1yZXNpemU7CiAgICAgICAgd2lkdGg6IDEycHg7CiAgICAgICAgcmlnaHQ6IC02cHg7CiAgICAgICAgdG9wOiAxMCU7CiAgICAgICAgaGVpZ2h0OiA4MCU7CiAgICAgIH0KCiAgICAgIC5yZXNpemUtaGFuZGxlLXMgewogICAgICAgIGN1cnNvcjogbnMtcmVzaXplOwogICAgICAgIGhlaWdodDogMTJweDsKICAgICAgICB3aWR0aDogODAlOwogICAgICAgIGJvdHRvbTogLTZweDsKICAgICAgICBsZWZ0OiAxMCU7CiAgICAgIH0KCiAgICAgIC5yZXNpemUtaGFuZGxlLXNlIHsKICAgICAgICBjdXJzb3I6IHNlLXJlc2l6ZTsKICAgICAgICB3aWR0aDogMjBweDsKICAgICAgICBoZWlnaHQ6IDIwcHg7CiAgICAgICAgcmlnaHQ6IC0ycHg7CiAgICAgICAgYm90dG9tOiAtMnB4OwogICAgICAgIG9wYWNpdHk6IDA7CiAgICAgICAgdHJhbnNpdGlvbjogb3BhY2l0eSAwLjJzIGVhc2U7CiAgICAgIH0KICAgICAgCiAgICAgIC5yZXNpemUtaGFuZGxlLXNlOjphZnRlciB7CiAgICAgICAgY29udGVudDogJyc7CiAgICAgICAgcG9zaXRpb246IGFic29sdXRlOwogICAgICAgIHJpZ2h0OiA0cHg7CiAgICAgICAgYm90dG9tOiA0cHg7CiAgICAgICAgd2lkdGg6IDZweDsKICAgICAgICBoZWlnaHQ6IDZweDsKICAgICAgICBib3JkZXItcmlnaHQ6IDJweCBzb2xpZCAke20uYmRUaGVtZSgiIzcxNzE3YSIsIiM3MTcxN2EiKX07CiAgICAgICAgYm9yZGVyLWJvdHRvbTogMnB4IHNvbGlkICR7bS5iZFRoZW1lKCIjNzE3MTdhIiwiIzcxNzE3YSIpfTsKICAgICAgfQoKICAgICAgLmdyaWQtd2lkZ2V0OmhvdmVyIC5yZXNpemUtaGFuZGxlLXNlIHsKICAgICAgICBvcGFjaXR5OiAwLjc7CiAgICAgIH0KCiAgICAgIC5yZXNpemUtaGFuZGxlLXNlOmhvdmVyIHsKICAgICAgICBvcGFjaXR5OiAxICFpbXBvcnRhbnQ7CiAgICAgIH0KICAgICAgCiAgICAgIC5yZXNpemUtaGFuZGxlLXNlOmhvdmVyOjphZnRlciB7CiAgICAgICAgYm9yZGVyLWNvbG9yOiAke20uYmRUaGVtZSgiIzNiODJmNiIsIiMzYjgyZjYiKX07CiAgICAgIH0KCiAgICAgIC5ncmlkLXBsYWNlaG9sZGVyIHsKICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgICAgYmFja2dyb3VuZDogJHttLmJkVGhlbWUoIiMzYjgyZjYiLCIjM2I4MmY2Iil9OwogICAgICAgIG9wYWNpdHk6IDAuMTsKICAgICAgICBib3JkZXItcmFkaXVzOiA4cHg7CiAgICAgICAgYm9yZGVyOiAycHggZGFzaGVkICR7bS5iZFRoZW1lKCIjM2I4MmY2IiwiIzNiODJmNiIpfTsKICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC4ycyBlYXNlOwogICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lOwogICAgICB9CgogICAgICAuZW1wdHktc3RhdGUgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOwogICAgICAgIGhlaWdodDogNDAwcHg7CiAgICAgICAgY29sb3I6ICR7bS5iZFRoZW1lKCIjNzE3MTdhIiwiIzcxNzE3YSIpfTsKICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7CiAgICAgICAgcGFkZGluZzogMzJweDsKICAgICAgfQoKICAgICAgLmVtcHR5LXN0YXRlIGRlZXMtaWNvbiB7CiAgICAgICAgZm9udC1zaXplOiA0OHB4OwogICAgICAgIG1hcmdpbi1ib3R0b206IDE2cHg7CiAgICAgICAgb3BhY2l0eTogMC41OwogICAgICB9CiAgICAgIAogICAgICAuZ3JpZC1saW5lcyB7CiAgICAgICAgcG9zaXRpb246IGFic29sdXRlOwogICAgICAgIHRvcDogMDsKICAgICAgICBsZWZ0OiAwOwogICAgICAgIHJpZ2h0OiAwOwogICAgICAgIGJvdHRvbTogMDsKICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTsKICAgICAgICB6LWluZGV4OiAtMTsKICAgICAgfQogICAgICAKICAgICAgLmdyaWQtbGluZS12ZXJ0aWNhbCB7CiAgICAgICAgcG9zaXRpb246IGFic29sdXRlOwogICAgICAgIHRvcDogMDsKICAgICAgICBib3R0b206IDA7CiAgICAgICAgd2lkdGg6IDFweDsKICAgICAgICBiYWNrZ3JvdW5kOiAke20uYmRUaGVtZSgiI2U1ZTdlYiIsIiMyNzI3MmEiKX07CiAgICAgICAgb3BhY2l0eTogMC4zOwogICAgICB9CiAgICAgIAogICAgICAuZ3JpZC1saW5lLWhvcml6b250YWwgewogICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgICBsZWZ0OiAwOwogICAgICAgIHJpZ2h0OiAwOwogICAgICAgIGhlaWdodDogMXB4OwogICAgICAgIGJhY2tncm91bmQ6ICR7bS5iZFRoZW1lKCIjZTVlN2ViIiwiIzI3MjcyYSIpfTsKICAgICAgICBvcGFjaXR5OiAwLjM7CiAgICAgIH0KICBgXX0pO3ZhciBFOGEsdWRlLCQ0cixJNHIsRDRyLEZiLEU0cix1WHIscFhyLHBkZSxqNCxQNHIsTjRyLEY0cj1wKCgpPT57RThhPTEwLHVkZT1lPT57aWYodHlwZW9mIGU9PSJudW1iZXIiKXJldHVybntob3Jpem9udGFsOmUsdmVydGljYWw6ZSx0b3A6ZSxyaWdodDplLGJvdHRvbTplLGxlZnQ6ZX07bGV0IHQ9e3RvcDplLnRvcD8/MTAscmlnaHQ6ZS5yaWdodD8/MTAsYm90dG9tOmUuYm90dG9tPz8xMCxsZWZ0OmUubGVmdD8/MTB9O3JldHVybnsuLi50LGhvcml6b250YWw6KHQubGVmdCt0LnJpZ2h0KS8yLHZlcnRpY2FsOih0LnRvcCt0LmJvdHRvbSkvMn19LCQ0cj0oZSx0LHIsaSxhKT0+e2xldCBuPXIuaG9yaXpvbnRhbCoodCsxKSxvPU1hdGgubWF4KGUtbiwwKSxzPXQ+MD9vL3Q6MCxsPWE9PT0iYXV0byI/czppO3JldHVybntjb250YWluZXJXaWR0aDplLGNlbGxXaWR0aFB4OnMsbWFyZ2luSG9yaXpvbnRhbFB4OnIuaG9yaXpvbnRhbCxjZWxsSGVpZ2h0UHg6bCxtYXJnaW5WZXJ0aWNhbFB4OnIudmVydGljYWx9fSxJNHI9KGUsdCxyKT0+e2lmKGUubGVuZ3RoPT09MClyZXR1cm4gMDtsZXQgaT1NYXRoLm1heCguLi5lLm1hcChhPT5hLnkrYS5oKSwwKTtyZXR1cm4gaSpyKyhpKzEpKnQudmVydGljYWx9LEQ0cj0oZSx0LHIsaSxhKT0+dDxlLngrZS53JiZ0K2k+ZS54JiZyPGUueStlLmgmJnIrYT5lLnksRmI9KGUsdCxyLGksYT10Lncsbj10LmgpPT5lLmZpbHRlcihvPT5vLmlkPT09dC5pZD8hMTpENHIobyxyLGksYSxuKSksRTRyPShlLHQscixpKT0+RmIoZSx0LHIsaSkubGVuZ3RoPjAsdVhyPWU9Pih7Li4uZX0pLHBYcj1lPT5lLm1hcCh1WHIpLHBkZT0oZSx0LHIsaSk9Pntmb3IobGV0IG49MDtuPDIwMDtuKyspZm9yKGxldCBvPTA7bzw9aS10O28rKylpZighZS5zb21lKGw9PkQ0cihsLG8sbix0LHIpKSlyZXR1cm57eDpvLHk6bn07cmV0dXJue3g6MCx5OmUucmVkdWNlKChuLG8pPT5NYXRoLm1heChuLG8ueStvLmgpLDApfX0sajQ9KGUsdCxyLGksYSk9PntsZXQgbj1wWHIoZSksbz1uLmZpbmQoaD0+aC5pZD09PXQpLHM9ZS5maW5kKGg9PmguaWQ9PT10KTtpZighb3x8IXMpcmV0dXJuIG51bGw7bGV0IGw9e3g6ci54LHk6ci55LHc6ci53Pz9vLncsaDpyLmg/P28uaH07by54PWwueCxvLnk9bC55LG8udz1sLncsby5oPWwuaDtsZXQgYz1GYihuLG8sbC54LGwueSxsLncsbC5oKTtpZihjLmxlbmd0aD09PTApcmV0dXJue3dpZGdldHM6bixtb3ZlZFdpZGdldHM6W28uaWRdfTtpZihjLmxlbmd0aD09PTEpe2xldCBoPWNbMF07aWYoIWgubG9ja2VkJiYhaC5ub01vdmUmJmgudz09PW8udyYmaC5oPT09by5oKXtsZXQgZj1uLmZpbmQoeD0+eC5pZD09PWguaWQpO2lmKGYpe2xldCB4PXMsdj17eDpmLngseTpmLnl9O2lmKGYueD14LngsZi55PXgueSxGYihuLG8sby54LG8ueSxvLncsby5oKS5sZW5ndGg9PT0wJiZGYihuLGYsZi54LGYueSxmLncsZi5oKS5sZW5ndGg9PT0wKXJldHVybnt3aWRnZXRzOm4sbW92ZWRXaWRnZXRzOltvLmlkLGYuaWRdLHN3YXBwZWRXaXRoOmYuaWR9O2YueD12LngsZi55PXYueX19fWxldCB1PW5ldyBTZXQoW28uaWRdKTtmb3IobGV0IGggb2YgYyl7aWYoaC5sb2NrZWR8fGgubm9Nb3ZlKXJldHVybiBudWxsO2xldCBmPW4uZmluZChiPT5iLmlkPT09aC5pZCk7aWYoIWYpY29udGludWU7bGV0IHg9bi5maWx0ZXIoYj0+Yi5pZCE9PWguaWQpLHY9cGRlKHgsZi53LGYuaCxpKTtmLng9di54LGYueT12LnksdS5hZGQoZi5pZCl9cmV0dXJuIEZiKG4sbyxvLngsby55LG8udyxvLmgpLmxlbmd0aD4wP251bGw6e3dpZGdldHM6bixtb3ZlZFdpZGdldHM6QXJyYXkuZnJvbSh1KX19LFA0cj0oZSx0PSJ2ZXJ0aWNhbCIpPT57bGV0IHI9Wy4uLmVdLnNvcnQoKGksYSk9PnQ9PT0idmVydGljYWwiP2kueSE9PWEueT9pLnktYS55OmkueC1hLng6aS54IT09YS54P2kueC1hLng6aS55LWEueSk7Zm9yKGxldCBpIG9mIHIpaWYoIShpLmxvY2tlZHx8aS5ub01vdmUpKWlmKHQ9PT0idmVydGljYWwiKWZvcig7aS55PjAmJiFFNHIoZSxpLGkueCxpLnktMSk7KWkueS09MTtlbHNlIGZvcig7aS54PjAmJiFFNHIoZSxpLGkueC0xLGkueSk7KWkueC09MX0sTjRyPShlLHQpPT5lLm1hcChyPT57bGV0IGk9dC5maW5kKGE9PmEuaWQ9PT1yLmlkKTtyZXR1cm4gaT97Li4uciwuLi5pfTpyfSl9KTt2YXIgTzRyLFI0cixCNHI9cCgoKT0+e080cj0oe3BvaW50ZXI6ZSxjb250YWluZXJSZWN0OnQsbWV0cmljczpyLGNvbHVtbnM6aSx3aWRnZXQ6YSxydGw6bixkcmFnT2Zmc2V0WDpvPTAsZHJhZ09mZnNldFk6cz0wfSk9PntsZXQgbD1lLmNsaWVudFgtdC5sZWZ0LW8sYz1lLmNsaWVudFktdC50b3Atcyx1PXIubWFyZ2luSG9yaXpvbnRhbFB4LGQ9ci5tYXJnaW5WZXJ0aWNhbFB4LGg9ci5jZWxsV2lkdGhQeCxmPXIuY2VsbEhlaWdodFB4LHg9KHosTSxGKT0+TWF0aC5tYXgoTSxNYXRoLm1pbihGLHopKSx2PXgobC11LDAsdC53aWR0aC11KSxiPXgoYy1kLDAsTnVtYmVyLlBPU0lUSVZFX0lORklOSVRZKSx5PWgrdSx3PWYrZCxrPU1hdGgucm91bmQodi95KTtuJiYoaz1pLWEudy1rKSxrPXgoaywwLGktYS53KTtsZXQgTz14KE1hdGgucm91bmQoYi93KSwwLE51bWJlci5NQVhfU0FGRV9JTlRFR0VSKTtyZXR1cm57eDprLHk6T319LFI0cj0oe3BvaW50ZXI6ZSxjb250YWluZXJSZWN0OnQsbWV0cmljczpyLHN0YXJ0V2lkdGg6aSxzdGFydEhlaWdodDphLHN0YXJ0UG9pbnRlcjpuLGhhbmRsZXI6byx3aWRnZXQ6cyxjb2x1bW5zOmx9KT0+e2xldCBjPWUuY2xpZW50WC1uLmNsaWVudFgsdT1lLmNsaWVudFktbi5jbGllbnRZLGQ9aSxoPWEsZj1yLmNlbGxXaWR0aFB4K3IubWFyZ2luSG9yaXpvbnRhbFB4LHg9ci5jZWxsSGVpZ2h0UHgrci5tYXJnaW5WZXJ0aWNhbFB4O2lmKG8uaW5jbHVkZXMoImUiKSl7bGV0IHk9TWF0aC5yb3VuZChjL2YpO2Q9aSt5fWlmKG8uaW5jbHVkZXMoInMiKSl7bGV0IHk9TWF0aC5yb3VuZCh1L3gpO2g9YSt5fWxldCB2PU1hdGgubWF4KHMubWluV3x8MSxNYXRoLm1pbihkLHMubWF4V3x8bC1zLngpKSxiPU1hdGgubWF4KHMubWluSHx8MSxNYXRoLm1pbihoLHMubWF4SHx8TnVtYmVyLk1BWF9TQUZFX0lOVEVHRVIpKTtyZXR1cm57d2lkdGg6dixoZWlnaHQ6Yn19fSk7dmFyIEg0cixxNHI9cCgoKT0+e01pKCk7d2koKTtINHI9KHt3aWRnZXQ6ZSxob3N0OnQsZXZlbnQ6cn0pPT57bGV0IGk9W3tuYW1lOiJEZWxldGUgdGlsZSIsaWNvbk5hbWU6Imx1Y2lkZTp0cmFzaDIiLGFjdGlvbjphc3luYygpPT4odC5yZW1vdmVXaWRnZXQoZS5pZCksbnVsbCl9XTtTci5vcGVuQ29udGV4dE1lbnVXaXRoT3B0aW9ucyhyLGkpfX0pO3ZhciBQYSxDcixqNHIsVjRyPXAoKCk9Pnt4ZSgpO29yKCk7TWkoKTtfNHIoKTtBNHIoKTtGNHIoKTtCNHIoKTtxNHIoKTtQYT1mdW5jdGlvbihlLHQscixpLGEsbil7ZnVuY3Rpb24gbyh5KXtpZih5IT09dm9pZCAwJiZ0eXBlb2YgeSE9ImZ1bmN0aW9uIil0aHJvdyBuZXcgVHlwZUVycm9yKCJGdW5jdGlvbiBleHBlY3RlZCIpO3JldHVybiB5fWZvcih2YXIgcz1pLmtpbmQsbD1zPT09ImdldHRlciI/ImdldCI6cz09PSJzZXR0ZXIiPyJzZXQiOiJ2YWx1ZSIsYz0hdCYmZT9pLnN0YXRpYz9lOmUucHJvdG90eXBlOm51bGwsdT10fHwoYz9PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGMsaS5uYW1lKTp7fSksZCxoPSExLGY9ci5sZW5ndGgtMTtmPj0wO2YtLSl7dmFyIHg9e307Zm9yKHZhciB2IGluIGkpeFt2XT12PT09ImFjY2VzcyI/e306aVt2XTtmb3IodmFyIHYgaW4gaS5hY2Nlc3MpeC5hY2Nlc3Nbdl09aS5hY2Nlc3Nbdl07eC5hZGRJbml0aWFsaXplcj1mdW5jdGlvbih5KXtpZihoKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBhZGQgaW5pdGlhbGl6ZXJzIGFmdGVyIGRlY29yYXRpb24gaGFzIGNvbXBsZXRlZCIpO24ucHVzaChvKHl8fG51bGwpKX07dmFyIGI9KDAscltmXSkocz09PSJhY2Nlc3NvciI/e2dldDp1LmdldCxzZXQ6dS5zZXR9OnVbbF0seCk7aWYocz09PSJhY2Nlc3NvciIpe2lmKGI9PT12b2lkIDApY29udGludWU7aWYoYj09PW51bGx8fHR5cGVvZiBiIT0ib2JqZWN0Iil0aHJvdyBuZXcgVHlwZUVycm9yKCJPYmplY3QgZXhwZWN0ZWQiKTsoZD1vKGIuZ2V0KSkmJih1LmdldD1kKSwoZD1vKGIuc2V0KSkmJih1LnNldD1kKSwoZD1vKGIuaW5pdCkpJiZhLnVuc2hpZnQoZCl9ZWxzZShkPW8oYikpJiYocz09PSJmaWVsZCI/YS51bnNoaWZ0KGQpOnVbbF09ZCl9YyYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGMsaS5uYW1lLHUpLGg9ITB9LENyPWZ1bmN0aW9uKGUsdCxyKXtmb3IodmFyIGk9YXJndW1lbnRzLmxlbmd0aD4yLGE9MDthPHQubGVuZ3RoO2ErKylyPWk/dFthXS5jYWxsKGUscik6dFthXS5jYWxsKGUpO3JldHVybiBpP3I6dm9pZCAwfSxqNHI9KCgpPT57bGV0IGU9W3llKCJkZWVzLWRhc2hib2FyZGdyaWQiKV0sdCxyPVtdLGksYT16ZSxuLG89W10scz1bXSxsLGM9W10sdT1bXSxkLGg9W10sZj1bXSx4LHY9W10sYj1bXSx5LHc9W10saz1bXSxPLHo9W10sTT1bXSxGLEQ9W10sTj1bXSxSLF89W10sUz1bXSwkLFQ9W10sRT1bXSxxLEI9W10sRz1bXSxlZSxQPVtdLGdlPVtdLHdlLEk9W10sbmU9W10sa2UsWT1bXSxBPVtdLEwsVT1bXSxWPVtdLFgsZGU9W10sdmU9W107dmFyIExlPWNsYXNzIGV4dGVuZHMgYXtzdGF0aWN7aT10aGlzfXN0YXRpY3tsZXQgVz10eXBlb2YgU3ltYm9sPT0iZnVuY3Rpb24iJiZTeW1ib2wubWV0YWRhdGE/T2JqZWN0LmNyZWF0ZShhW1N5bWJvbC5tZXRhZGF0YV0/P251bGwpOnZvaWQgMDtuPVtqKHt0eXBlOkFycmF5fSldLGw9W2ooe3R5cGU6TnVtYmVyfSldLGQ9W2ooe3R5cGU6T2JqZWN0fSldLHg9W2ooe3R5cGU6TnVtYmVyfSldLHk9W2ooe3R5cGU6Qm9vbGVhbn0pXSxPPVtqKHt0eXBlOkJvb2xlYW4scmVmbGVjdDohMH0pXSxGPVtqKHt0eXBlOlN0cmluZ30pXSxSPVtqKHt0eXBlOkJvb2xlYW59KV0sJD1baih7dHlwZTpCb29sZWFufSldLHE9W2ooe2F0dHJpYnV0ZTohMX0pXSxlZT1baih7dHlwZTpTdHJpbmd9KV0sd2U9W2ZlKCldLGtlPVtmZSgpXSxMPVtmZSgpXSxYPVtmZSgpXSxQYSh0aGlzLG51bGwsbix7a2luZDoiYWNjZXNzb3IiLG5hbWU6IndpZGdldHMiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOkg9PiJ3aWRnZXRzImluIEgsZ2V0Okg9Pkgud2lkZ2V0cyxzZXQ6KEgsdGUpPT57SC53aWRnZXRzPXRlfX0sbWV0YWRhdGE6V30sbyxzKSxQYSh0aGlzLG51bGwsbCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImNlbGxIZWlnaHQiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOkg9PiJjZWxsSGVpZ2h0ImluIEgsZ2V0Okg9PkguY2VsbEhlaWdodCxzZXQ6KEgsdGUpPT57SC5jZWxsSGVpZ2h0PXRlfX0sbWV0YWRhdGE6V30sYyx1KSxQYSh0aGlzLG51bGwsZCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6Im1hcmdpbiIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6SD0+Im1hcmdpbiJpbiBILGdldDpIPT5ILm1hcmdpbixzZXQ6KEgsdGUpPT57SC5tYXJnaW49dGV9fSxtZXRhZGF0YTpXfSxoLGYpLFBhKHRoaXMsbnVsbCx4LHtraW5kOiJhY2Nlc3NvciIsbmFtZToiY29sdW1ucyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6SD0+ImNvbHVtbnMiaW4gSCxnZXQ6SD0+SC5jb2x1bW5zLHNldDooSCx0ZSk9PntILmNvbHVtbnM9dGV9fSxtZXRhZGF0YTpXfSx2LGIpLFBhKHRoaXMsbnVsbCx5LHtraW5kOiJhY2Nlc3NvciIsbmFtZToiZWRpdGFibGUiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOkg9PiJlZGl0YWJsZSJpbiBILGdldDpIPT5ILmVkaXRhYmxlLHNldDooSCx0ZSk9PntILmVkaXRhYmxlPXRlfX0sbWV0YWRhdGE6V30sdyxrKSxQYSh0aGlzLG51bGwsTyx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImVuYWJsZUFuaW1hdGlvbiIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6SD0+ImVuYWJsZUFuaW1hdGlvbiJpbiBILGdldDpIPT5ILmVuYWJsZUFuaW1hdGlvbixzZXQ6KEgsdGUpPT57SC5lbmFibGVBbmltYXRpb249dGV9fSxtZXRhZGF0YTpXfSx6LE0pLFBhKHRoaXMsbnVsbCxGLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiY2VsbEhlaWdodFVuaXQiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOkg9PiJjZWxsSGVpZ2h0VW5pdCJpbiBILGdldDpIPT5ILmNlbGxIZWlnaHRVbml0LHNldDooSCx0ZSk9PntILmNlbGxIZWlnaHRVbml0PXRlfX0sbWV0YWRhdGE6V30sRCxOKSxQYSh0aGlzLG51bGwsUix7a2luZDoiYWNjZXNzb3IiLG5hbWU6InJ0bCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6SD0+InJ0bCJpbiBILGdldDpIPT5ILnJ0bCxzZXQ6KEgsdGUpPT57SC5ydGw9dGV9fSxtZXRhZGF0YTpXfSxfLFMpLFBhKHRoaXMsbnVsbCwkLHtraW5kOiJhY2Nlc3NvciIsbmFtZToic2hvd0dyaWRMaW5lcyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6SD0+InNob3dHcmlkTGluZXMiaW4gSCxnZXQ6SD0+SC5zaG93R3JpZExpbmVzLHNldDooSCx0ZSk9PntILnNob3dHcmlkTGluZXM9dGV9fSxtZXRhZGF0YTpXfSxULEUpLFBhKHRoaXMsbnVsbCxxLHtraW5kOiJhY2Nlc3NvciIsbmFtZToibGF5b3V0cyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6SD0+ImxheW91dHMiaW4gSCxnZXQ6SD0+SC5sYXlvdXRzLHNldDooSCx0ZSk9PntILmxheW91dHM9dGV9fSxtZXRhZGF0YTpXfSxCLEcpLFBhKHRoaXMsbnVsbCxlZSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImFjdGl2ZUJyZWFrcG9pbnQiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOkg9PiJhY3RpdmVCcmVha3BvaW50ImluIEgsZ2V0Okg9PkguYWN0aXZlQnJlYWtwb2ludCxzZXQ6KEgsdGUpPT57SC5hY3RpdmVCcmVha3BvaW50PXRlfX0sbWV0YWRhdGE6V30sUCxnZSksUGEodGhpcyxudWxsLHdlLHtraW5kOiJhY2Nlc3NvciIsbmFtZToicGxhY2Vob2xkZXJQb3NpdGlvbiIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6SD0+InBsYWNlaG9sZGVyUG9zaXRpb24iaW4gSCxnZXQ6SD0+SC5wbGFjZWhvbGRlclBvc2l0aW9uLHNldDooSCx0ZSk9PntILnBsYWNlaG9sZGVyUG9zaXRpb249dGV9fSxtZXRhZGF0YTpXfSxJLG5lKSxQYSh0aGlzLG51bGwsa2Use2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJtZXRyaWNzIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpIPT4ibWV0cmljcyJpbiBILGdldDpIPT5ILm1ldHJpY3Msc2V0OihILHRlKT0+e0gubWV0cmljcz10ZX19LG1ldGFkYXRhOld9LFksQSksUGEodGhpcyxudWxsLEwse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJyZXNvbHZlZE1hcmdpbnMiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOkg9PiJyZXNvbHZlZE1hcmdpbnMiaW4gSCxnZXQ6SD0+SC5yZXNvbHZlZE1hcmdpbnMsc2V0OihILHRlKT0+e0gucmVzb2x2ZWRNYXJnaW5zPXRlfX0sbWV0YWRhdGE6V30sVSxWKSxQYSh0aGlzLG51bGwsWCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InByZXZpZXdXaWRnZXRzIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpIPT4icHJldmlld1dpZGdldHMiaW4gSCxnZXQ6SD0+SC5wcmV2aWV3V2lkZ2V0cyxzZXQ6KEgsdGUpPT57SC5wcmV2aWV3V2lkZ2V0cz10ZX19LG1ldGFkYXRhOld9LGRlLHZlKSxQYShudWxsLHQ9e3ZhbHVlOml9LGUse2tpbmQ6ImNsYXNzIixuYW1lOmkubmFtZSxtZXRhZGF0YTpXfSxudWxsLHIpLExlPWk9dC52YWx1ZSxXJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoaSxTeW1ib2wubWV0YWRhdGEse2VudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwLHZhbHVlOld9KX1zdGF0aWMgZGVtbz1UNHI7c3RhdGljIGRlbW9Hcm91cHM9WyJMYXlvdXQiXTtzdGF0aWMgc3R5bGVzPUw0cjsjZT1Dcih0aGlzLG8sW10pO2dldCB3aWRnZXRzKCl7cmV0dXJuIHRoaXMuI2V9c2V0IHdpZGdldHMoVyl7dGhpcy4jZT1XfSN0PShDcih0aGlzLHMpLENyKHRoaXMsYyw4MCkpO2dldCBjZWxsSGVpZ2h0KCl7cmV0dXJuIHRoaXMuI3R9c2V0IGNlbGxIZWlnaHQoVyl7dGhpcy4jdD1XfSNyPShDcih0aGlzLHUpLENyKHRoaXMsaCwxMCkpO2dldCBtYXJnaW4oKXtyZXR1cm4gdGhpcy4jcn1zZXQgbWFyZ2luKFcpe3RoaXMuI3I9V30jaT0oQ3IodGhpcyxmKSxDcih0aGlzLHYsMTIpKTtnZXQgY29sdW1ucygpe3JldHVybiB0aGlzLiNpfXNldCBjb2x1bW5zKFcpe3RoaXMuI2k9V30jYT0oQ3IodGhpcyxiKSxDcih0aGlzLHcsITApKTtnZXQgZWRpdGFibGUoKXtyZXR1cm4gdGhpcy4jYX1zZXQgZWRpdGFibGUoVyl7dGhpcy4jYT1XfSNuPShDcih0aGlzLGspLENyKHRoaXMseiwhMCkpO2dldCBlbmFibGVBbmltYXRpb24oKXtyZXR1cm4gdGhpcy4jbn1zZXQgZW5hYmxlQW5pbWF0aW9uKFcpe3RoaXMuI249V30jbz0oQ3IodGhpcyxNKSxDcih0aGlzLEQsInB4IikpO2dldCBjZWxsSGVpZ2h0VW5pdCgpe3JldHVybiB0aGlzLiNvfXNldCBjZWxsSGVpZ2h0VW5pdChXKXt0aGlzLiNvPVd9I3M9KENyKHRoaXMsTiksQ3IodGhpcyxfLCExKSk7Z2V0IHJ0bCgpe3JldHVybiB0aGlzLiNzfXNldCBydGwoVyl7dGhpcy4jcz1XfSNsPShDcih0aGlzLFMpLENyKHRoaXMsVCwhMSkpO2dldCBzaG93R3JpZExpbmVzKCl7cmV0dXJuIHRoaXMuI2x9c2V0IHNob3dHcmlkTGluZXMoVyl7dGhpcy4jbD1XfSNjPShDcih0aGlzLEUpLENyKHRoaXMsQix2b2lkIDApKTtnZXQgbGF5b3V0cygpe3JldHVybiB0aGlzLiNjfXNldCBsYXlvdXRzKFcpe3RoaXMuI2M9V30jZD0oQ3IodGhpcyxHKSxDcih0aGlzLFAsImJhc2UiKSk7Z2V0IGFjdGl2ZUJyZWFrcG9pbnQoKXtyZXR1cm4gdGhpcy4jZH1zZXQgYWN0aXZlQnJlYWtwb2ludChXKXt0aGlzLiNkPVd9I3U9KENyKHRoaXMsZ2UpLENyKHRoaXMsSSxudWxsKSk7Z2V0IHBsYWNlaG9sZGVyUG9zaXRpb24oKXtyZXR1cm4gdGhpcy4jdX1zZXQgcGxhY2Vob2xkZXJQb3NpdGlvbihXKXt0aGlzLiN1PVd9I3A9KENyKHRoaXMsbmUpLENyKHRoaXMsWSxudWxsKSk7Z2V0IG1ldHJpY3MoKXtyZXR1cm4gdGhpcy4jcH1zZXQgbWV0cmljcyhXKXt0aGlzLiNwPVd9I2g9KENyKHRoaXMsQSksQ3IodGhpcyxVLG51bGwpKTtnZXQgcmVzb2x2ZWRNYXJnaW5zKCl7cmV0dXJuIHRoaXMuI2h9c2V0IHJlc29sdmVkTWFyZ2lucyhXKXt0aGlzLiNoPVd9I2Y9KENyKHRoaXMsViksQ3IodGhpcyxkZSxudWxsKSk7Z2V0IHByZXZpZXdXaWRnZXRzKCl7cmV0dXJuIHRoaXMuI2Z9c2V0IHByZXZpZXdXaWRnZXRzKFcpe3RoaXMuI2Y9V31jb250YWluZXJCb3VuZHM9KENyKHRoaXMsdmUpLG51bGwpO2RyYWdTdGF0ZT1udWxsO3Jlc2l6ZVN0YXRlPW51bGw7cmVzaXplT2JzZXJ2ZXI7aW50ZXJhY3Rpb25BY3RpdmU9ITE7YXN5bmMgY29ubmVjdGVkQ2FsbGJhY2soKXthd2FpdCBzdXBlci5jb25uZWN0ZWRDYWxsYmFjaygpLHRoaXMuY29tcHV0ZU1ldHJpY3MoKSx0aGlzLm9ic2VydmVSZXNpemUoKX1hc3luYyBkaXNjb25uZWN0ZWRDYWxsYmFjaygpe2F3YWl0IHN1cGVyLmRpc2Nvbm5lY3RlZENhbGxiYWNrKCksdGhpcy5kaXNjb25uZWN0UmVzaXplT2JzZXJ2ZXIoKSx0aGlzLnJlbGVhc2VQb2ludGVyRXZlbnRzKCl9dXBkYXRlZChXKXsoVy5oYXMoIm1hcmdpbiIpfHxXLmhhcygiY29sdW1ucyIpfHxXLmhhcygiY2VsbEhlaWdodCIpfHxXLmhhcygiY2VsbEhlaWdodFVuaXQiKSkmJnRoaXMuY29tcHV0ZU1ldHJpY3MoKSxXLmhhcygid2lkZ2V0cyIpJiYhdGhpcy5pbnRlcmFjdGlvbkFjdGl2ZSYmdGhpcy5ub3RpZnlMYXlvdXRDaGFuZ2UoKX1yZW5kZXIoKXtsZXQgVz10aGlzLndpZGdldHM7aWYoVy5sZW5ndGg9PT0wKXJldHVybiBDYAogICAgICAgIDxkaXYgY2xhc3M9ImVtcHR5LXN0YXRlIj4KICAgICAgICAgIDxkZWVzLWljb24gLmljb249JHsibHVjaWRlOmxheW91dEdyaWQifT48L2RlZXMtaWNvbj4KICAgICAgICAgIDxkaXY+Tm8gd2lkZ2V0cyBjb25maWd1cmVkPC9kaXY+CiAgICAgICAgICA8ZGl2IHN0eWxlPSJmb250LXNpemU6IDE0cHg7IG1hcmdpbi10b3A6IDhweDsiPkFkZCB3aWRnZXRzIHRvIHBvcHVsYXRlIHRoZSBkYXNoYm9hcmQ8L2Rpdj4KICAgICAgICA8L2Rpdj4KICAgICAgYDtsZXQgSD10aGlzLmVuc3VyZU1ldHJpY3MoKSx0ZT10aGlzLnJlc29sdmVkTWFyZ2lucz8/dWRlKHRoaXMubWFyZ2luKSxiZT1ILmNlbGxIZWlnaHRQeCx1ZT10aGlzLnByZXZpZXdXaWRnZXRzPz90aGlzLndpZGdldHMsQ2U9STRyKHVlLHRlLGJlKSxoZT10aGlzLnByZXZpZXdXaWRnZXRzP25ldyBNYXAodGhpcy5wcmV2aWV3V2lkZ2V0cy5tYXAoaWU9PltpZS5pZCxpZV0pKTpudWxsO3JldHVybiBDYAogICAgICA8ZGl2IGNsYXNzPSJncmlkLWNvbnRhaW5lciIgc3R5bGU9ImhlaWdodDogJHtDZX1weDsiPgogICAgICAgICR7dGhpcy5zaG93R3JpZExpbmVzP3RoaXMucmVuZGVyR3JpZExpbmVzKEgsQ2UpOm51bGx9CiAgICAgICAgJHtXLm1hcChpZT0+dGhpcy5yZW5kZXJXaWRnZXQoaWUsSCx0ZSxoZSkpfQogICAgICAgICR7dGhpcy5wbGFjZWhvbGRlclBvc2l0aW9uP3RoaXMucmVuZGVyUGxhY2Vob2xkZXIoSCx0ZSk6bnVsbH0KICAgICAgPC9kaXY+CiAgICBgfXJlbmRlckdyaWRMaW5lcyhXLEgpe2xldCB0ZT1bXSxiZT1bXSx1ZT1XLmNlbGxXaWR0aFB4K1cubWFyZ2luSG9yaXpvbnRhbFB4LENlPVcuY2VsbEhlaWdodFB4K1cubWFyZ2luVmVydGljYWxQeDtmb3IobGV0IGllPTA7aWU8PXRoaXMuY29sdW1ucztpZSsrKXtsZXQgU2U9aWUqdWUrVy5tYXJnaW5Ib3Jpem9udGFsUHgsSWU9dGhpcy5weFRvUGVyY2VudChTZSxXLmNvbnRhaW5lcldpZHRoKTt0ZS5wdXNoKENgPGRpdiBjbGFzcz0iZ3JpZC1saW5lLXZlcnRpY2FsIiBzdHlsZT0ibGVmdDogJHtJZX0lOyI+PC9kaXY+YCl9bGV0IGhlPU1hdGguY2VpbChIL0NlKTtmb3IobGV0IGllPTA7aWU8PWhlO2llKyspe2xldCBTZT1pZSpDZTtiZS5wdXNoKENgPGRpdiBjbGFzcz0iZ3JpZC1saW5lLWhvcml6b250YWwiIHN0eWxlPSJ0b3A6ICR7U2V9cHg7Ij48L2Rpdj5gKX1yZXR1cm4gQ2AKICAgICAgPGRpdiBjbGFzcz0iZ3JpZC1saW5lcyI+CiAgICAgICAgJHt0ZX0KICAgICAgICAke2JlfQogICAgICA8L2Rpdj4KICAgIGB9cmVuZGVyV2lkZ2V0KFcsSCx0ZSxiZSl7bGV0IHVlPXRoaXMuZHJhZ1N0YXRlPy53aWRnZXRJZD09PVcuaWQsQ2U9dGhpcy5yZXNpemVTdGF0ZT8ud2lkZ2V0SWQ9PT1XLmlkLGhlPVcubG9ja2VkfHwhdGhpcy5lZGl0YWJsZSxpZT1iZT8uZ2V0KFcuaWQpPz9udWxsLFNlPXVlP1c6aWU/P1csSWU9dGhpcy5jb21wdXRlV2lkZ2V0UmVjdChTZSxILHRlKSxaZT10aGlzLnJ0bD8icmlnaHQiOiJsZWZ0IixLPXRoaXMucHhUb1BlcmNlbnQoSWUubGVmdCxILmNvbnRhaW5lcldpZHRoKSxaPXRoaXMucHhUb1BlcmNlbnQoSWUud2lkdGgsSC5jb250YWluZXJXaWR0aCksSj0iIjtpZih1ZSYmdGhpcy5kcmFnU3RhdGU/LmN1cnJlbnRQb2ludGVyKXtsZXQgbWU9dGhpcy5kcmFnU3RhdGUuY3VycmVudFBvaW50ZXIsRWU9dGhpcy5jb250YWluZXJCb3VuZHM/P3RoaXMuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCksVWU9bWUuY2xpZW50WC1FZS5sZWZ0LXRoaXMuZHJhZ1N0YXRlLm9mZnNldFgtSWUubGVmdCxNdD1tZS5jbGllbnRZLUVlLnRvcC10aGlzLmRyYWdTdGF0ZS5vZmZzZXRZLUllLnRvcDtKPWB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgke1VlfXB4LCAke010fXB4KTtgfXJldHVybiBDYAogICAgICA8ZGl2CiAgICAgICAgY2xhc3M9ImdyaWQtd2lkZ2V0ICR7dWU/ImRyYWdnaW5nIjoiIn0gJHtDZT8icmVzaXppbmciOiIifSIKICAgICAgICBzdHlsZT0iCiAgICAgICAgICAke1plfTogJHtLfSU7CiAgICAgICAgICB0b3A6ICR7SWUudG9wfXB4OwogICAgICAgICAgd2lkdGg6ICR7Wn0lOwogICAgICAgICAgaGVpZ2h0OiAke0llLmhlaWdodH1weDsKICAgICAgICAgICR7Sn0KICAgICAgICAiCiAgICAgICAgZGF0YS13aWRnZXQtaWQ9JHtXLmlkfQogICAgICA+CiAgICAgICAgPGRpdiBjbGFzcz0id2lkZ2V0LWNvbnRlbnQiPgogICAgICAgICAgJHtXLnRpdGxlP0NgCiAgICAgICAgICAgICAgICA8ZGl2CiAgICAgICAgICAgICAgICAgIGNsYXNzPSJ3aWRnZXQtaGVhZGVyICR7aGU/ImxvY2tlZCI6IiJ9IgogICAgICAgICAgICAgICAgICBAcG9pbnRlcmRvd249JHshaGUmJiFXLm5vTW92ZT9tZT0+dGhpcy5zdGFydERyYWcobWUsVyk6bnVsbH0KICAgICAgICAgICAgICAgICAgQGNvbnRleHRtZW51PSR7bWU9PnRoaXMuaGFuZGxlV2lkZ2V0Q29udGV4dE1lbnUobWUsVyl9CiAgICAgICAgICAgICAgICAgIHRhYmluZGV4PSR7IWhlJiYhVy5ub01vdmU/MDotMX0KICAgICAgICAgICAgICAgICAgQGtleWRvd249JHttZT0+dGhpcy5oYW5kbGVIZWFkZXJLZXlkb3duKG1lLFcpfQogICAgICAgICAgICAgICAgPgogICAgICAgICAgICAgICAgICAke1cuaWNvbj9DYDxkZWVzLWljb24gLmljb249JHtXLmljb259PjwvZGVlcy1pY29uPmA6bnVsbH0KICAgICAgICAgICAgICAgICAgJHtXLnRpdGxlfQogICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgYDpudWxsfQogICAgICAgICAgPGRpdiBjbGFzcz0id2lkZ2V0LWJvZHkgJHtXLnRpdGxlPyJoYXMtaGVhZGVyIjoiIn0iPgogICAgICAgICAgICAke1cuY29udGVudH0KICAgICAgICAgIDwvZGl2PgogICAgICAgICAgJHshaGUmJiFXLm5vUmVzaXplP0NgCiAgICAgICAgICAgICAgICA8ZGl2CiAgICAgICAgICAgICAgICAgIGNsYXNzPSJyZXNpemUtaGFuZGxlIHJlc2l6ZS1oYW5kbGUtZSIKICAgICAgICAgICAgICAgICAgQHBvaW50ZXJkb3duPSR7bWU9PnRoaXMuc3RhcnRSZXNpemUobWUsVywiZSIpfQogICAgICAgICAgICAgICAgPjwvZGl2PgogICAgICAgICAgICAgICAgPGRpdgogICAgICAgICAgICAgICAgICBjbGFzcz0icmVzaXplLWhhbmRsZSByZXNpemUtaGFuZGxlLXMiCiAgICAgICAgICAgICAgICAgIEBwb2ludGVyZG93bj0ke21lPT50aGlzLnN0YXJ0UmVzaXplKG1lLFcsInMiKX0KICAgICAgICAgICAgICAgID48L2Rpdj4KICAgICAgICAgICAgICAgIDxkaXYKICAgICAgICAgICAgICAgICAgY2xhc3M9InJlc2l6ZS1oYW5kbGUgcmVzaXplLWhhbmRsZS1zZSIKICAgICAgICAgICAgICAgICAgQHBvaW50ZXJkb3duPSR7bWU9PnRoaXMuc3RhcnRSZXNpemUobWUsVywic2UiKX0KICAgICAgICAgICAgICAgID48L2Rpdj4KICAgICAgICAgICAgICBgOm51bGx9CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGl2PgogICAgYH1yZW5kZXJQbGFjZWhvbGRlcihXLEgpe2lmKCF0aGlzLnBsYWNlaG9sZGVyUG9zaXRpb24pcmV0dXJuIENgYDtsZXQgdGU9dGhpcy5jb21wdXRlV2lkZ2V0UmVjdCh0aGlzLnBsYWNlaG9sZGVyUG9zaXRpb24sVyxIKSxiZT10aGlzLnJ0bD8icmlnaHQiOiJsZWZ0Iix1ZT10aGlzLnB4VG9QZXJjZW50KHRlLmxlZnQsVy5jb250YWluZXJXaWR0aCksQ2U9dGhpcy5weFRvUGVyY2VudCh0ZS53aWR0aCxXLmNvbnRhaW5lcldpZHRoKTtyZXR1cm4gQ2AKICAgICAgPGRpdgogICAgICAgIGNsYXNzPSJncmlkLXdpZGdldCBwbGFjZWhvbGRlciIKICAgICAgICBzdHlsZT0iCiAgICAgICAgICAke2JlfTogJHt1ZX0lOwogICAgICAgICAgdG9wOiAke3RlLnRvcH1weDsKICAgICAgICAgIHdpZHRoOiAke0NlfSU7CiAgICAgICAgICBoZWlnaHQ6ICR7dGUuaGVpZ2h0fXB4OwogICAgICAgICIKICAgICAgPgogICAgICAgIDxkaXYgY2xhc3M9IndpZGdldC1jb250ZW50Ij48L2Rpdj4KICAgICAgPC9kaXY+CiAgICBgfXN0YXJ0RHJhZyhXLEgpe2lmKCF0aGlzLmVkaXRhYmxlfHxILm5vTW92ZXx8SC5sb2NrZWQpcmV0dXJuO1cucHJldmVudERlZmF1bHQoKSxXLnN0b3BQcm9wYWdhdGlvbigpO2xldCB0ZT1XLmN1cnJlbnRUYXJnZXQuY2xvc2VzdCgiLmdyaWQtd2lkZ2V0Iik7aWYoIXRlKXJldHVybjtsZXQgYmU9dGUuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7dGhpcy5jb250YWluZXJCb3VuZHM9dGhpcy5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKSx0aGlzLmVuc3VyZU1ldHJpY3MoKSx0aGlzLmRyYWdTdGF0ZT17d2lkZ2V0SWQ6SC5pZCxwb2ludGVySWQ6Vy5wb2ludGVySWQsb2Zmc2V0WDpXLmNsaWVudFgtYmUubGVmdCxvZmZzZXRZOlcuY2xpZW50WS1iZS50b3Asc3RhcnQ6e2lkOkguaWQseDpILngseTpILnksdzpILncsaDpILmh9LHByZXZpb3VzUG9zaXRpb246e2lkOkguaWQseDpILngseTpILnksdzpILncsaDpILmh9LGN1cnJlbnRQb2ludGVyOntjbGllbnRYOlcuY2xpZW50WCxjbGllbnRZOlcuY2xpZW50WX0sbGFzdFBsYWNlbWVudDpudWxsfSx0aGlzLmludGVyYWN0aW9uQWN0aXZlPSEwLFcuY3VycmVudFRhcmdldC5zZXRQb2ludGVyQ2FwdHVyZShXLnBvaW50ZXJJZCksZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigicG9pbnRlcm1vdmUiLHRoaXMuaGFuZGxlRHJhZ01vdmUpLGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoInBvaW50ZXJ1cCIsdGhpcy5oYW5kbGVEcmFnRW5kKSx0aGlzLnBsYWNlaG9sZGVyUG9zaXRpb249e2lkOkguaWQseDpILngseTpILnksdzpILncsaDpILmh9fWhhbmRsZURyYWdNb3ZlPVc9PntpZighdGhpcy5kcmFnU3RhdGUpcmV0dXJuO2xldCBIPXRoaXMuZW5zdXJlTWV0cmljcygpLHRlPXRoaXMud2lkZ2V0cyxiZT10ZS5maW5kKGllPT5pZS5pZD09PXRoaXMuZHJhZ1N0YXRlLndpZGdldElkKTtpZighYmUpcmV0dXJuO1cucHJldmVudERlZmF1bHQoKTtsZXQgdWU9dGhpcy5kcmFnU3RhdGUucHJldmlvdXNQb3NpdGlvbixDZT1PNHIoe3BvaW50ZXI6e2NsaWVudFg6Vy5jbGllbnRYLGNsaWVudFk6Vy5jbGllbnRZfSxjb250YWluZXJSZWN0OnRoaXMuY29udGFpbmVyQm91bmRzPz90aGlzLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLG1ldHJpY3M6SCxjb2x1bW5zOnRoaXMuY29sdW1ucyx3aWRnZXQ6YmUscnRsOnRoaXMucnRsLGRyYWdPZmZzZXRYOnRoaXMuZHJhZ1N0YXRlLm9mZnNldFgsZHJhZ09mZnNldFk6dGhpcy5kcmFnU3RhdGUub2Zmc2V0WX0pLGhlPWo0KHRlLGJlLmlkLHt4OkNlLngseTpDZS55fSx0aGlzLmNvbHVtbnMsdWUpO2lmKGhlKXtsZXQgaWU9aGUud2lkZ2V0cy5maW5kKEllPT5JZS5pZD09PWJlLmlkKTt0aGlzLmRyYWdTdGF0ZT17Li4udGhpcy5kcmFnU3RhdGUsY3VycmVudFBvaW50ZXI6e2NsaWVudFg6Vy5jbGllbnRYLGNsaWVudFk6Vy5jbGllbnRZfSxsYXN0UGxhY2VtZW50OmhlLHByZXZpb3VzUG9zaXRpb246aWU/e2lkOmllLmlkLHg6aWUueCx5OmllLnksdzppZS53LGg6aWUuaH06e2lkOmJlLmlkLHg6Q2UueCx5OkNlLnksdzpiZS53LGg6YmUuaH19LHRoaXMucHJldmlld1dpZGdldHM9aGUud2lkZ2V0cztsZXQgU2U9aGUud2lkZ2V0cy5maW5kKEllPT5JZS5pZD09PWJlLmlkKTtTZT90aGlzLnBsYWNlaG9sZGVyUG9zaXRpb249e2lkOlNlLmlkLHg6U2UueCx5OlNlLnksdzpTZS53LGg6U2UuaH06dGhpcy5wbGFjZWhvbGRlclBvc2l0aW9uPXtpZDpiZS5pZCx4OkNlLngseTpDZS55LHc6YmUudyxoOmJlLmh9fWVsc2UgdGhpcy5wcmV2aWV3V2lkZ2V0cz1udWxsLHRoaXMucGxhY2Vob2xkZXJQb3NpdGlvbj1udWxsO3RoaXMucmVxdWVzdFVwZGF0ZSgpfTtoYW5kbGVEcmFnRW5kPVc9PntsZXQgSD10aGlzLmRyYWdTdGF0ZTtpZighSHx8Vy5wb2ludGVySWQhPT1ILnBvaW50ZXJJZClyZXR1cm47bGV0IHRlPXRoaXMud2lkZ2V0czt0aGlzLnByZXZpZXdXaWRnZXRzPW51bGw7bGV0IGJlPXRoaXMucGxhY2Vob2xkZXJQb3NpdGlvbj8/SC5zdGFydCx1ZT1qNCh0ZSxILndpZGdldElkLHt4OmJlLngseTpiZS55fSx0aGlzLmNvbHVtbnMsSC5wcmV2aW91c1Bvc2l0aW9uKTtpZih1ZSl7bGV0IENlPXVlLndpZGdldHMuZmluZChoZT0+aGUuaWQ9PT1ILndpZGdldElkKTtDZSYmKHVlLndpZGdldHMuc29tZShpZT0+aWUuaWQ9PT1ILndpZGdldElkPyExOkNlLng8aWUueCtpZS53JiZDZS54K0NlLnc+aWUueCYmQ2UueTxpZS55K2llLmgmJkNlLnkrQ2UuaD5pZS55KT90aGlzLndpZGdldHM9dGhpcy53aWRnZXRzLm1hcChpZT0+aWUuaWQ9PT1ILndpZGdldElkP3suLi5pZSx4Okguc3RhcnQueCx5Okguc3RhcnQueX06aWUpOnRoaXMuY29tbWl0UGxhY2VtZW50KHVlLEgud2lkZ2V0SWQsIndpZGdldC1tb3ZlIikpfWVsc2UgdGhpcy53aWRnZXRzPXRoaXMud2lkZ2V0cy5tYXAoQ2U9PkNlLmlkPT09SC53aWRnZXRJZD97Li4uQ2UseDpILnN0YXJ0LngseTpILnN0YXJ0Lnl9OkNlKTt0aGlzLnBsYWNlaG9sZGVyUG9zaXRpb249bnVsbCx0aGlzLmRyYWdTdGF0ZT1udWxsLHRoaXMuaW50ZXJhY3Rpb25BY3RpdmU9ITEsdGhpcy5yZWxlYXNlUG9pbnRlckV2ZW50cygpfTtzdGFydFJlc2l6ZShXLEgsdGUpeyF0aGlzLmVkaXRhYmxlfHxILm5vUmVzaXplfHxILmxvY2tlZHx8KFcucHJldmVudERlZmF1bHQoKSxXLnN0b3BQcm9wYWdhdGlvbigpLHRoaXMuZW5zdXJlTWV0cmljcygpLHRoaXMucmVzaXplU3RhdGU9e3dpZGdldElkOkguaWQscG9pbnRlcklkOlcucG9pbnRlcklkLGhhbmRsZXI6dGUsc3RhcnRQb2ludGVyOntjbGllbnRYOlcuY2xpZW50WCxjbGllbnRZOlcuY2xpZW50WX0sc3RhcnQ6e2lkOkguaWQseDpILngseTpILnksdzpILncsaDpILmh9LHN0YXJ0V2lkdGg6SC53LHN0YXJ0SGVpZ2h0OkguaCxsYXN0UGxhY2VtZW50Om51bGx9LHRoaXMuaW50ZXJhY3Rpb25BY3RpdmU9ITAsVy5jdXJyZW50VGFyZ2V0LnNldFBvaW50ZXJDYXB0dXJlKFcucG9pbnRlcklkKSxkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCJwb2ludGVybW92ZSIsdGhpcy5oYW5kbGVSZXNpemVNb3ZlKSxkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCJwb2ludGVydXAiLHRoaXMuaGFuZGxlUmVzaXplRW5kKSx0aGlzLnBsYWNlaG9sZGVyUG9zaXRpb249e2lkOkguaWQseDpILngseTpILnksdzpILncsaDpILmh9KX1oYW5kbGVSZXNpemVNb3ZlPVc9PntpZighdGhpcy5yZXNpemVTdGF0ZSlyZXR1cm47bGV0IEg9dGhpcy5lbnN1cmVNZXRyaWNzKCksdGU9dGhpcy53aWRnZXRzLGJlPXRlLmZpbmQoaGU9PmhlLmlkPT09dGhpcy5yZXNpemVTdGF0ZS53aWRnZXRJZCk7aWYoIWJlKXJldHVybjtXLnByZXZlbnREZWZhdWx0KCk7bGV0IHVlPVI0cih7cG9pbnRlcjp7Y2xpZW50WDpXLmNsaWVudFgsY2xpZW50WTpXLmNsaWVudFl9LGNvbnRhaW5lclJlY3Q6dGhpcy5jb250YWluZXJCb3VuZHM/P3RoaXMuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCksbWV0cmljczpILHN0YXJ0V2lkdGg6dGhpcy5yZXNpemVTdGF0ZS5zdGFydFdpZHRoLHN0YXJ0SGVpZ2h0OnRoaXMucmVzaXplU3RhdGUuc3RhcnRIZWlnaHQsc3RhcnRQb2ludGVyOnRoaXMucmVzaXplU3RhdGUuc3RhcnRQb2ludGVyLGhhbmRsZXI6dGhpcy5yZXNpemVTdGF0ZS5oYW5kbGVyLHdpZGdldDpiZSxjb2x1bW5zOnRoaXMuY29sdW1uc30pLENlPWo0KHRlLGJlLmlkLHt4OmJlLngseTpiZS55LHc6dWUud2lkdGgsaDp1ZS5oZWlnaHR9LHRoaXMuY29sdW1ucyx0aGlzLnJlc2l6ZVN0YXRlLnN0YXJ0KTtpZihDZSl7dGhpcy5yZXNpemVTdGF0ZT17Li4udGhpcy5yZXNpemVTdGF0ZSxsYXN0UGxhY2VtZW50OkNlfSx0aGlzLnByZXZpZXdXaWRnZXRzPUNlLndpZGdldHM7bGV0IGhlPUNlLndpZGdldHMuZmluZChpZT0+aWUuaWQ9PT1iZS5pZCk7aGU/dGhpcy5wbGFjZWhvbGRlclBvc2l0aW9uPXtpZDpoZS5pZCx4OmhlLngseTpoZS55LHc6aGUudyxoOmhlLmh9OnRoaXMucGxhY2Vob2xkZXJQb3NpdGlvbj17aWQ6YmUuaWQseDpiZS54LHk6YmUueSx3OnVlLndpZHRoLGg6dWUuaGVpZ2h0fX1lbHNlIHRoaXMucHJldmlld1dpZGdldHM9bnVsbCx0aGlzLnBsYWNlaG9sZGVyUG9zaXRpb249bnVsbDt0aGlzLnJlcXVlc3RVcGRhdGUoKX07aGFuZGxlUmVzaXplRW5kPVc9PntsZXQgSD10aGlzLnJlc2l6ZVN0YXRlO2lmKCFIfHxXLnBvaW50ZXJJZCE9PUgucG9pbnRlcklkKXJldHVybjtsZXQgdGU9dGhpcy53aWRnZXRzO3RoaXMucHJldmlld1dpZGdldHM9bnVsbDtsZXQgYmU9SC5sYXN0UGxhY2VtZW50Pz9qNCh0ZSxILndpZGdldElkLHt4OnRoaXMucGxhY2Vob2xkZXJQb3NpdGlvbj8ueD8/SC5zdGFydC54LHk6dGhpcy5wbGFjZWhvbGRlclBvc2l0aW9uPy55Pz9ILnN0YXJ0Lnksdzp0aGlzLnBsYWNlaG9sZGVyUG9zaXRpb24/Lnc/P0guc3RhcnQudyxoOnRoaXMucGxhY2Vob2xkZXJQb3NpdGlvbj8uaD8/SC5zdGFydC5ofSx0aGlzLmNvbHVtbnMsSC5zdGFydCk7YmU/dGhpcy5jb21taXRQbGFjZW1lbnQoYmUsSC53aWRnZXRJZCwid2lkZ2V0LXJlc2l6ZSIpOnRoaXMud2lkZ2V0cz10aGlzLndpZGdldHMubWFwKHVlPT51ZS5pZD09PUgud2lkZ2V0SWQ/ey4uLnVlLHc6SC5zdGFydC53LGg6SC5zdGFydC5ofTp1ZSksdGhpcy5wbGFjZWhvbGRlclBvc2l0aW9uPW51bGwsdGhpcy5yZXNpemVTdGF0ZT1udWxsLHRoaXMuaW50ZXJhY3Rpb25BY3RpdmU9ITEsdGhpcy5yZWxlYXNlUG9pbnRlckV2ZW50cygpfTtoYW5kbGVIZWFkZXJLZXlkb3duKFcsSCl7aWYoIXRoaXMuZWRpdGFibGV8fEgubm9Nb3ZlfHxILmxvY2tlZClyZXR1cm47bGV0IHRlPVcua2V5LGJlPVcuc2hpZnRLZXksdWU9bnVsbDtpZihiZSYmWyJBcnJvd0xlZnQiLCJBcnJvd1JpZ2h0IiwiQXJyb3dVcCIsIkFycm93RG93biJdLmluY2x1ZGVzKHRlKSl7Vy5wcmV2ZW50RGVmYXVsdCgpO2xldCBJZT10ZT09PSJBcnJvd1JpZ2h0Inx8dGU9PT0iQXJyb3dEb3duIj8xOi0xO2lmKHRlPT09IkFycm93TGVmdCJ8fHRlPT09IkFycm93UmlnaHQiKXtsZXQgWmU9SC5tYXhXPz90aGlzLmNvbHVtbnMtSC54LEs9TWF0aC5tYXgoSC5taW5XPz8xLE1hdGgubWluKFplLEgudytJZSkpO3VlPWo0KHRoaXMud2lkZ2V0cyxILmlkLHt4OkgueCx5OkgueSx3OkssaDpILmh9LHRoaXMuY29sdW1ucyl9ZWxzZXtsZXQgWmU9SC5tYXhIPz9OdW1iZXIuUE9TSVRJVkVfSU5GSU5JVFksSz1NYXRoLm1heChILm1pbkg/PzEsTWF0aC5taW4oWmUsSC5oK0llKSk7dWU9ajQodGhpcy53aWRnZXRzLEguaWQse3g6SC54LHk6SC55LHc6SC53LGg6S30sdGhpcy5jb2x1bW5zKX11ZSYmdGhpcy5jb21taXRQbGFjZW1lbnQodWUsSC5pZCwid2lkZ2V0LXJlc2l6ZSIpO3JldHVybn1sZXQgaGU9e0Fycm93TGVmdDp7ZHg6LTEsZHk6MH0sQXJyb3dSaWdodDp7ZHg6MSxkeTowfSxBcnJvd1VwOntkeDowLGR5Oi0xfSxBcnJvd0Rvd246e2R4OjAsZHk6MX19W3RlXTtpZighaGUpcmV0dXJuO1cucHJldmVudERlZmF1bHQoKTtsZXQgaWU9TWF0aC5tYXgoMCxNYXRoLm1pbih0aGlzLmNvbHVtbnMtSC53LEgueCtoZS5keCkpLFNlPU1hdGgubWF4KDAsSC55K2hlLmR5KTt1ZT1qNCh0aGlzLndpZGdldHMsSC5pZCx7eDppZSx5OlNlfSx0aGlzLmNvbHVtbnMpLHVlJiZ0aGlzLmNvbW1pdFBsYWNlbWVudCh1ZSxILmlkLCJ3aWRnZXQtbW92ZSIpfWhhbmRsZVdpZGdldENvbnRleHRNZW51KFcsSCl7Vy5wcmV2ZW50RGVmYXVsdCgpLFcuc3RvcFByb3BhZ2F0aW9uKCksSDRyKHt3aWRnZXQ6SCxob3N0OnRoaXMsZXZlbnQ6V30pfWNvbW1pdFBsYWNlbWVudChXLEgsdGUpe3RoaXMucHJldmlld1dpZGdldHM9bnVsbCx0aGlzLndpZGdldHM9Vy53aWRnZXRzO2xldCBiZT10aGlzLndpZGdldHMuZmluZCh1ZT0+dWUuaWQ9PT1IKTtiZSYmdGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBDdXN0b21FdmVudCh0ZSx7ZGV0YWlsOnt3aWRnZXQ6YmUsZGlzcGxhY2VkOlcubW92ZWRXaWRnZXRzLmZpbHRlcih1ZT0+dWUhPT1IKSxzd2FwcGVkV2l0aDpXLnN3YXBwZWRXaXRofSxidWJibGVzOiEwLGNvbXBvc2VkOiEwfSkpfXJlbW92ZVdpZGdldChXKXtsZXQgSD10aGlzLndpZGdldHMuZmluZCh0ZT0+dGUuaWQ9PT1XKTtIJiYodGhpcy53aWRnZXRzPXRoaXMud2lkZ2V0cy5maWx0ZXIodGU9PnRlLmlkIT09VyksdGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBDdXN0b21FdmVudCgid2lkZ2V0LXJlbW92ZSIse2RldGFpbDp7d2lkZ2V0Okh9LGJ1YmJsZXM6ITAsY29tcG9zZWQ6ITB9KSkpfXVwZGF0ZVdpZGdldChXLEgpe3RoaXMud2lkZ2V0cz10aGlzLndpZGdldHMubWFwKHRlPT50ZS5pZD09PVc/ey4uLnRlLC4uLkh9OnRlKX1nZXRMYXlvdXQoKXtyZXR1cm4gdGhpcy53aWRnZXRzLm1hcCgoe2lkOlcseDpILHk6dGUsdzpiZSxoOnVlfSk9Pih7aWQ6Vyx4OkgseTp0ZSx3OmJlLGg6dWV9KSl9c2V0TGF5b3V0KFcpe3RoaXMud2lkZ2V0cz1ONHIodGhpcy53aWRnZXRzLFcpfWxvY2tHcmlkKCl7dGhpcy5lZGl0YWJsZT0hMX11bmxvY2tHcmlkKCl7dGhpcy5lZGl0YWJsZT0hMH1hZGRXaWRnZXQoVyxIPSExKXtsZXQgdGU9ey4uLld9O2lmKEh8fHRlLmF1dG9Qb3NpdGlvbil7bGV0IGJlPXBkZSh0aGlzLndpZGdldHMsdGUudyx0ZS5oLHRoaXMuY29sdW1ucyk7dGUueD1iZS54LHRlLnk9YmUueX10aGlzLndpZGdldHM9Wy4uLnRoaXMud2lkZ2V0cyx0ZV19Y29tcGFjdChXPSJ2ZXJ0aWNhbCIpe2xldCBIPXRoaXMud2lkZ2V0cy5tYXAodGU9Pih7Li4udGV9KSk7UDRyKEgsVyksdGhpcy53aWRnZXRzPUh9YXBwbHlCcmVha3BvaW50TGF5b3V0KFcpe3RoaXMuYWN0aXZlQnJlYWtwb2ludD1XO2xldCBIPXRoaXMubGF5b3V0cz8uW1ddO0gmJnRoaXMuc2V0TGF5b3V0KEgpfW5vdGlmeUxheW91dENoYW5nZSgpe3RoaXMuZGlzcGF0Y2hFdmVudChuZXcgQ3VzdG9tRXZlbnQoImxheW91dC1jaGFuZ2UiLHtkZXRhaWw6e2xheW91dDp0aGlzLmdldExheW91dCgpfSxidWJibGVzOiEwLGNvbXBvc2VkOiEwfSkpfWVuc3VyZU1ldHJpY3MoKXtyZXR1cm4gdGhpcy5tZXRyaWNzfHx0aGlzLmNvbXB1dGVNZXRyaWNzKCksdGhpcy5tZXRyaWNzfWNvbXB1dGVNZXRyaWNzKCl7aWYoIXRoaXMuaXNDb25uZWN0ZWQpcmV0dXJuO2xldCBXPXRoaXMuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7dGhpcy5jb250YWluZXJCb3VuZHM9VztsZXQgSD11ZGUodGhpcy5tYXJnaW4pO3RoaXMucmVzb2x2ZWRNYXJnaW5zPUgsdGhpcy5tZXRyaWNzPSQ0cihXLndpZHRoLHRoaXMuY29sdW1ucyxILHRoaXMuY2VsbEhlaWdodCx0aGlzLmNlbGxIZWlnaHRVbml0KX1vYnNlcnZlUmVzaXplKCl7dGhpcy5yZXNpemVPYnNlcnZlcnx8KHRoaXMucmVzaXplT2JzZXJ2ZXI9bmV3IFJlc2l6ZU9ic2VydmVyKCgpPT57dGhpcy5jb21wdXRlTWV0cmljcygpfSksdGhpcy5yZXNpemVPYnNlcnZlci5vYnNlcnZlKHRoaXMpKX1kaXNjb25uZWN0UmVzaXplT2JzZXJ2ZXIoKXt0aGlzLnJlc2l6ZU9ic2VydmVyPy5kaXNjb25uZWN0KCksdGhpcy5yZXNpemVPYnNlcnZlcj12b2lkIDB9cmVsZWFzZVBvaW50ZXJFdmVudHMoKXtkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCJwb2ludGVybW92ZSIsdGhpcy5oYW5kbGVEcmFnTW92ZSksZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcigicG9pbnRlcnVwIix0aGlzLmhhbmRsZURyYWdFbmQpLGRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoInBvaW50ZXJtb3ZlIix0aGlzLmhhbmRsZVJlc2l6ZU1vdmUpLGRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoInBvaW50ZXJ1cCIsdGhpcy5oYW5kbGVSZXNpemVFbmQpfXB4VG9QZXJjZW50KFcsSCl7cmV0dXJuIEg/TnVtYmVyKChXL0gqMTAwKS50b0ZpeGVkKDQpKTowfWNvbXB1dGVXaWRnZXRSZWN0KFcsSCx0ZSl7bGV0IGJlPUguY2VsbFdpZHRoUHgsdWU9SC5jZWxsSGVpZ2h0UHgsQ2U9Vy54KihiZSt0ZS5ob3Jpem9udGFsKSt0ZS5ob3Jpem9udGFsLGhlPVcueSoodWUrdGUudmVydGljYWwpK3RlLnZlcnRpY2FsLGllPVcudypiZStNYXRoLm1heCgwLFcudy0xKSp0ZS5ob3Jpem9udGFsLFNlPVcuaCp1ZStNYXRoLm1heCgwLFcuaC0xKSp0ZS52ZXJ0aWNhbDtyZXR1cm57bGVmdDpDZSx0b3A6aGUsd2lkdGg6aWUsaGVpZ2h0OlNlfX1zdGF0aWN7Q3IoaSxyKX19O3JldHVybiBMZT1pfSkoKX0pO3ZhciBVNHI9cCgoKT0+e1Y0cigpfSk7ZnVuY3Rpb24gVzRyKCl7cmV0dXJuIENgCiAgICA8ZGVlcy1oZWFkaW5nIGxldmVsPSIxIj5UaGlzIGlzIGEgSDEgaGVhZGluZzwvZGVlcy1oZWFkaW5nPgogICAgPGRlZXMtaGVhZGluZyBsZXZlbD0iMiI+VGhpcyBpcyBhIEgyIGhlYWRpbmc8L2RlZXMtaGVhZGluZz4KICAgIDxkZWVzLWhlYWRpbmcgbGV2ZWw9IjMiPlRoaXMgaXMgYSBIMyBoZWFkaW5nPC9kZWVzLWhlYWRpbmc+CiAgICA8ZGVlcy1oZWFkaW5nIGxldmVsPSI0Ij5UaGlzIGlzIGEgSDQgaGVhZGluZzwvZGVlcy1oZWFkaW5nPgogICAgPGRlZXMtaGVhZGluZyBsZXZlbD0iNSI+VGhpcyBpcyBhIEg1IGhlYWRpbmc8L2RlZXMtaGVhZGluZz4KICAgIDxkZWVzLWhlYWRpbmcgbGV2ZWw9IjYiPlRoaXMgaXMgYSBINiBoZWFkaW5nPC9kZWVzLWhlYWRpbmc+CiAgICA8ZGVlcy1oZWFkaW5nIGxldmVsPSJociI+VGhpcyBpcyBhbiBociBoZWFkaW5nPC9kZWVzLWhlYWRpbmc+CiAgICA8ZGVlcy1oZWFkaW5nIGxldmVsPSJoci1zbWFsbCI+VGhpcyBpcyBhbiBociBzbWFsbCBoZWFkaW5nPC9kZWVzLWhlYWRpbmc+CiAgYH12YXIgRzRyPXAoKCk9Pnt4ZSgpfSk7dmFyIFk0cixoZGUsWjRyLFg0cj1wKCgpPT57eGUoKTtHNHIoKTtRYSgpO0plKCk7WTRyPWZ1bmN0aW9uKGUsdCxyLGksYSxuKXtmdW5jdGlvbiBvKHkpe2lmKHkhPT12b2lkIDAmJnR5cGVvZiB5IT0iZnVuY3Rpb24iKXRocm93IG5ldyBUeXBlRXJyb3IoIkZ1bmN0aW9uIGV4cGVjdGVkIik7cmV0dXJuIHl9Zm9yKHZhciBzPWkua2luZCxsPXM9PT0iZ2V0dGVyIj8iZ2V0IjpzPT09InNldHRlciI/InNldCI6InZhbHVlIixjPSF0JiZlP2kuc3RhdGljP2U6ZS5wcm90b3R5cGU6bnVsbCx1PXR8fChjP09iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoYyxpLm5hbWUpOnt9KSxkLGg9ITEsZj1yLmxlbmd0aC0xO2Y+PTA7Zi0tKXt2YXIgeD17fTtmb3IodmFyIHYgaW4gaSl4W3ZdPXY9PT0iYWNjZXNzIj97fTppW3ZdO2Zvcih2YXIgdiBpbiBpLmFjY2Vzcyl4LmFjY2Vzc1t2XT1pLmFjY2Vzc1t2XTt4LmFkZEluaXRpYWxpemVyPWZ1bmN0aW9uKHkpe2lmKGgpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGFkZCBpbml0aWFsaXplcnMgYWZ0ZXIgZGVjb3JhdGlvbiBoYXMgY29tcGxldGVkIik7bi5wdXNoKG8oeXx8bnVsbCkpfTt2YXIgYj0oMCxyW2ZdKShzPT09ImFjY2Vzc29yIj97Z2V0OnUuZ2V0LHNldDp1LnNldH06dVtsXSx4KTtpZihzPT09ImFjY2Vzc29yIil7aWYoYj09PXZvaWQgMCljb250aW51ZTtpZihiPT09bnVsbHx8dHlwZW9mIGIhPSJvYmplY3QiKXRocm93IG5ldyBUeXBlRXJyb3IoIk9iamVjdCBleHBlY3RlZCIpOyhkPW8oYi5nZXQpKSYmKHUuZ2V0PWQpLChkPW8oYi5zZXQpKSYmKHUuc2V0PWQpLChkPW8oYi5pbml0KSkmJmEudW5zaGlmdChkKX1lbHNlKGQ9byhiKSkmJihzPT09ImZpZWxkIj9hLnVuc2hpZnQoZCk6dVtsXT1kKX1jJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoYyxpLm5hbWUsdSksaD0hMH0saGRlPWZ1bmN0aW9uKGUsdCxyKXtmb3IodmFyIGk9YXJndW1lbnRzLmxlbmd0aD4yLGE9MDthPHQubGVuZ3RoO2ErKylyPWk/dFthXS5jYWxsKGUscik6dFthXS5jYWxsKGUpO3JldHVybiBpP3I6dm9pZCAwfSxaNHI9KCgpPT57bGV0IGU9W3llKCJkZWVzLWhlYWRpbmciKV0sdCxyPVtdLGksYT16ZSxuLG89W10scz1bXTt2YXIgbD1jbGFzcyBleHRlbmRzIGF7c3RhdGlje2k9dGhpc31zdGF0aWN7bGV0IGM9dHlwZW9mIFN5bWJvbD09ImZ1bmN0aW9uIiYmU3ltYm9sLm1ldGFkYXRhP09iamVjdC5jcmVhdGUoYVtTeW1ib2wubWV0YWRhdGFdPz9udWxsKTp2b2lkIDA7bj1baih7dHlwZTpTdHJpbmcscmVmbGVjdDohMH0pXSxZNHIodGhpcyxudWxsLG4se2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJsZXZlbCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6dT0+ImxldmVsImluIHUsZ2V0OnU9PnUubGV2ZWwsc2V0Oih1LGQpPT57dS5sZXZlbD1kfX0sbWV0YWRhdGE6Y30sbyxzKSxZNHIobnVsbCx0PXt2YWx1ZTppfSxlLHtraW5kOiJjbGFzcyIsbmFtZTppLm5hbWUsbWV0YWRhdGE6Y30sbnVsbCxyKSxsPWk9dC52YWx1ZSxjJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoaSxTeW1ib2wubWV0YWRhdGEse2VudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwLHZhbHVlOmN9KX1zdGF0aWMgZGVtbz1XNHI7c3RhdGljIGRlbW9Hcm91cHM9WyJMYXlvdXQiXTsjZT1oZGUodGhpcyxvLCIxIik7Z2V0IGxldmVsKCl7cmV0dXJuIHRoaXMuI2V9c2V0IGxldmVsKGMpe3RoaXMuI2U9Y31zdGF0aWMgc3R5bGVzPVtEZSxtLmRlZmF1bHRTdHlsZXMsb2VgCiAgICAgIC8qIFRPRE86IE1pZ3JhdGUgaGFyZGNvZGVkIHZhbHVlcyB0byAtLWRlZXMtKiBDU1MgdmFyaWFibGVzICovCiAgICAgIC8qIEhlYWRpbmcgc3R5bGVzICovCiAgICAgIGgxLCBoMiwgaDMsIGg0LCBoNSwgaDYgewogICAgICAgIG1hcmdpbjogMTZweCAwIDhweDsKICAgICAgICBmb250LXdlaWdodDogNjAwOwogICAgICAgIGNvbG9yOiAke20uYmRUaGVtZSgiIzAwMCIsIiNmZmYiKX07CiAgICAgIH0KICAgICAgaDEgeyBmb250LXNpemU6IDMycHg7IGZvbnQtZmFtaWx5OiAke3Vzcn07IGxldHRlci1zcGFjaW5nOiAwLjAyNWVtO30KICAgICAgaDIgeyBmb250LXNpemU6IDI4cHg7IH0KICAgICAgaDMgeyBmb250LXNpemU6IDI0cHg7IH0KICAgICAgaDQgeyBmb250LXNpemU6IDIwcHg7IH0KICAgICAgaDUgeyBmb250LXNpemU6IDE2cHg7IH0KICAgICAgaDYgeyBmb250LXNpemU6IDE0cHg7IH0KICAgICAgLyogSG9yaXpvbnRhbCBydWxlIHN0eWxlIGhlYWRpbmcgKi8KICAgICAgLmhlYWRpbmctaHIgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7CiAgICAgICAgbWFyZ2luOiAxNnB4IDA7CiAgICAgICAgY29sb3I6ICR7bS5iZFRoZW1lKCIjMDAwIiwiI2ZmZiIpfTsKICAgICAgfQogICAgICAvKiBGYWRlIGxpbmVzIHRvd2FyZCBhbmQgYXdheSBmcm9tIHRleHQgZm9yIGhyIHN0eWxlICovCiAgICAgIC5oZWFkaW5nLWhyOjpiZWZvcmUgewogICAgICAgIGNvbnRlbnQ6ICcnOwogICAgICAgIGZsZXg6IDE7CiAgICAgICAgaGVpZ2h0OiAxcHg7CiAgICAgICAgLyogZmFkZSBpbiB0b3dhcmQgY2VudGVyICovCiAgICAgICAgYmFja2dyb3VuZDogJHttLmJkVGhlbWUoImxpbmVhci1ncmFkaWVudCh0byByaWdodCwgdHJhbnNwYXJlbnQsICNjY2MpIiwibGluZWFyLWdyYWRpZW50KHRvIHJpZ2h0LCB0cmFuc3BhcmVudCwgIzMzMykiKX07CiAgICAgICAgbWFyZ2luOiAwIDhweDsKICAgICAgfQogICAgICAuaGVhZGluZy1ocjo6YWZ0ZXIgewogICAgICAgIGNvbnRlbnQ6ICcnOwogICAgICAgIGZsZXg6IDE7CiAgICAgICAgaGVpZ2h0OiAxcHg7CiAgICAgICAgLyogZmFkZSBvdXQgYXdheSBmcm9tIGNlbnRlciAqLwogICAgICAgIGJhY2tncm91bmQ6ICR7bS5iZFRoZW1lKCJsaW5lYXItZ3JhZGllbnQodG8gcmlnaHQsICNjY2MsIHRyYW5zcGFyZW50KSIsImxpbmVhci1ncmFkaWVudCh0byByaWdodCwgIzMzMywgdHJhbnNwYXJlbnQpIil9OwogICAgICAgIG1hcmdpbjogMCA4cHg7CiAgICAgIH0KICAgICAgLyogU21hbGwgaHIgdmFyaWFudCB3aXRoIHJlZHVjZWQgbWFyZ2lucyAqLwogICAgICAuaGVhZGluZy1oci5oZWFkaW5nLWhyLXNtYWxsIHsKICAgICAgICBtYXJnaW46IDhweCAwOwogICAgICAgIGZvbnQtc2l6ZTogMTJweDsKICAgICAgfQogICAgICAuaGVhZGluZy1oci5oZWFkaW5nLWhyLXNtYWxsOjpiZWZvcmUsCiAgICAgIC5oZWFkaW5nLWhyLmhlYWRpbmctaHItc21hbGw6OmFmdGVyIHsKICAgICAgICBtYXJnaW46IDAgOHB4OwogICAgICB9CiAgICBgXTtyZW5kZXIoKXtzd2l0Y2godGhpcy5sZXZlbCl7Y2FzZSIxIjpyZXR1cm4gQ2A8aDE+PHNsb3Q+PC9zbG90PjwvaDE+YDtjYXNlIjIiOnJldHVybiBDYDxoMj48c2xvdD48L3Nsb3Q+PC9oMj5gO2Nhc2UiMyI6cmV0dXJuIENgPGgzPjxzbG90Pjwvc2xvdD48L2gzPmA7Y2FzZSI0IjpyZXR1cm4gQ2A8aDQ+PHNsb3Q+PC9zbG90PjwvaDQ+YDtjYXNlIjUiOnJldHVybiBDYDxoNT48c2xvdD48L3Nsb3Q+PC9oNT5gO2Nhc2UiNiI6cmV0dXJuIENgPGg2PjxzbG90Pjwvc2xvdD48L2g2PmA7Y2FzZSJociI6cmV0dXJuIENgPGRpdiBjbGFzcz0iaGVhZGluZy1ociI+PHNsb3Q+PC9zbG90PjwvZGl2PmA7Y2FzZSJoci1zbWFsbCI6cmV0dXJuIENgPGRpdiBjbGFzcz0iaGVhZGluZy1ociBoZWFkaW5nLWhyLXNtYWxsIj48c2xvdD48L3Nsb3Q+PC9kaXY+YDtkZWZhdWx0OnJldHVybiBDYDxoMT48c2xvdD48L3Nsb3Q+PC9oMT5gfX1jb25zdHJ1Y3Rvcigpe3N1cGVyKC4uLmFyZ3VtZW50cyksaGRlKHRoaXMscyl9c3RhdGlje2hkZShpLHIpfX07cmV0dXJuIGw9aX0pKCl9KTt2YXIgUTRyPXAoKCk9PntYNHIoKX0pO3ZhciBKNHI9cCgoKT0+e2VoKCl9KTt2YXIgSzRyLGUzcj1wKCgpPT57eGUoKTtLNHI9KCk9PkNgCiAgPGRpdiBzdHlsZT0iZGlzcGxheTogZmxleDsgYWxpZ24taXRlbXM6IGNlbnRlcjsgZ2FwOiAxNnB4OyI+CiAgICA8IS0tIFNtYWxsIHNldCBvZiBwYWdlcyAtLT4KICAgIDxkaXYgc3R5bGU9ImRpc3BsYXk6IGZsZXg7IGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47IGdhcDogNHB4OyI+CiAgICAgIDxzcGFuPjUgcGFnZXMsIHN0YXJ0aW5nIGF0IDE6PC9zcGFuPgogICAgICA8ZGVlcy1wYWdpbmF0aW9uCiAgICAgICAgLnRvdGFsPSR7NX0KICAgICAgICAucGFnZT0kezF9CiAgICAgICAgQHBhZ2UtY2hhbmdlPSR7ZT0+Y29uc29sZS5sb2coIlBhZ2UgY2hhbmdlZCB0byIsZS5kZXRhaWwucGFnZSl9CiAgICAgID48L2RlZXMtcGFnaW5hdGlvbj4KICAgIDwvZGl2PgoKICAgIDwhLS0gTGFyZ2VyIHNldCBvZiBwYWdlcyAtLT4KICAgIDxkaXYgc3R5bGU9ImRpc3BsYXk6IGZsZXg7IGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47IGdhcDogNHB4OyI+CiAgICAgIDxzcGFuPjE1IHBhZ2VzLCBzdGFydGluZyBhdCA4Ojwvc3Bhbj4KICAgICAgPGRlZXMtcGFnaW5hdGlvbgogICAgICAgIC50b3RhbD0kezE1fQogICAgICAgIC5wYWdlPSR7OH0KICAgICAgICBAcGFnZS1jaGFuZ2U9JHtlPT5jb25zb2xlLmxvZygiUGFnZSBjaGFuZ2VkIHRvIixlLmRldGFpbC5wYWdlKX0KICAgICAgPjwvZGVlcy1wYWdpbmF0aW9uPgogICAgPC9kaXY+CiAgPC9kaXY+CmB9KTt2YXIgZmRlLE9iLHQzcixyM3I9cCgoKT0+e3hlKCk7ZTNyKCk7SmUoKTtmZGU9ZnVuY3Rpb24oZSx0LHIsaSxhLG4pe2Z1bmN0aW9uIG8oeSl7aWYoeSE9PXZvaWQgMCYmdHlwZW9mIHkhPSJmdW5jdGlvbiIpdGhyb3cgbmV3IFR5cGVFcnJvcigiRnVuY3Rpb24gZXhwZWN0ZWQiKTtyZXR1cm4geX1mb3IodmFyIHM9aS5raW5kLGw9cz09PSJnZXR0ZXIiPyJnZXQiOnM9PT0ic2V0dGVyIj8ic2V0IjoidmFsdWUiLGM9IXQmJmU/aS5zdGF0aWM/ZTplLnByb3RvdHlwZTpudWxsLHU9dHx8KGM/T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihjLGkubmFtZSk6e30pLGQsaD0hMSxmPXIubGVuZ3RoLTE7Zj49MDtmLS0pe3ZhciB4PXt9O2Zvcih2YXIgdiBpbiBpKXhbdl09dj09PSJhY2Nlc3MiP3t9Omlbdl07Zm9yKHZhciB2IGluIGkuYWNjZXNzKXguYWNjZXNzW3ZdPWkuYWNjZXNzW3ZdO3guYWRkSW5pdGlhbGl6ZXI9ZnVuY3Rpb24oeSl7aWYoaCl0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgYWRkIGluaXRpYWxpemVycyBhZnRlciBkZWNvcmF0aW9uIGhhcyBjb21wbGV0ZWQiKTtuLnB1c2gobyh5fHxudWxsKSl9O3ZhciBiPSgwLHJbZl0pKHM9PT0iYWNjZXNzb3IiP3tnZXQ6dS5nZXQsc2V0OnUuc2V0fTp1W2xdLHgpO2lmKHM9PT0iYWNjZXNzb3IiKXtpZihiPT09dm9pZCAwKWNvbnRpbnVlO2lmKGI9PT1udWxsfHx0eXBlb2YgYiE9Im9iamVjdCIpdGhyb3cgbmV3IFR5cGVFcnJvcigiT2JqZWN0IGV4cGVjdGVkIik7KGQ9byhiLmdldCkpJiYodS5nZXQ9ZCksKGQ9byhiLnNldCkpJiYodS5zZXQ9ZCksKGQ9byhiLmluaXQpKSYmYS51bnNoaWZ0KGQpfWVsc2UoZD1vKGIpKSYmKHM9PT0iZmllbGQiP2EudW5zaGlmdChkKTp1W2xdPWQpfWMmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShjLGkubmFtZSx1KSxoPSEwfSxPYj1mdW5jdGlvbihlLHQscil7Zm9yKHZhciBpPWFyZ3VtZW50cy5sZW5ndGg+MixhPTA7YTx0Lmxlbmd0aDthKyspcj1pP3RbYV0uY2FsbChlLHIpOnRbYV0uY2FsbChlKTtyZXR1cm4gaT9yOnZvaWQgMH0sdDNyPSgoKT0+e2xldCBlPVt5ZSgiZGVlcy1wYWdpbmF0aW9uIildLHQscj1bXSxpLGE9emUsbixvPVtdLHM9W10sbCxjPVtdLHU9W107dmFyIGQ9Y2xhc3MgZXh0ZW5kcyBhe3N0YXRpY3tpPXRoaXN9c3RhdGlje2xldCBoPXR5cGVvZiBTeW1ib2w9PSJmdW5jdGlvbiImJlN5bWJvbC5tZXRhZGF0YT9PYmplY3QuY3JlYXRlKGFbU3ltYm9sLm1ldGFkYXRhXT8/bnVsbCk6dm9pZCAwO249W2ooe3R5cGU6TnVtYmVyLHJlZmxlY3Q6ITB9KV0sbD1baih7dHlwZTpOdW1iZXIscmVmbGVjdDohMH0pXSxmZGUodGhpcyxudWxsLG4se2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJwYWdlIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpmPT4icGFnZSJpbiBmLGdldDpmPT5mLnBhZ2Usc2V0OihmLHgpPT57Zi5wYWdlPXh9fSxtZXRhZGF0YTpofSxvLHMpLGZkZSh0aGlzLG51bGwsbCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InRvdGFsIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpmPT4idG90YWwiaW4gZixnZXQ6Zj0+Zi50b3RhbCxzZXQ6KGYseCk9PntmLnRvdGFsPXh9fSxtZXRhZGF0YTpofSxjLHUpLGZkZShudWxsLHQ9e3ZhbHVlOml9LGUse2tpbmQ6ImNsYXNzIixuYW1lOmkubmFtZSxtZXRhZGF0YTpofSxudWxsLHIpLGQ9aT10LnZhbHVlLGgmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShpLFN5bWJvbC5tZXRhZGF0YSx7ZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITAsdmFsdWU6aH0pfXN0YXRpYyBkZW1vPUs0cjtzdGF0aWMgZGVtb0dyb3Vwcz1bIkxheW91dCJdOyNlPU9iKHRoaXMsbywxKTtnZXQgcGFnZSgpe3JldHVybiB0aGlzLiNlfXNldCBwYWdlKGgpe3RoaXMuI2U9aH0jdD0oT2IodGhpcyxzKSxPYih0aGlzLGMsMSkpO2dldCB0b3RhbCgpe3JldHVybiB0aGlzLiN0fXNldCB0b3RhbChoKXt0aGlzLiN0PWh9c3RhdGljIHN0eWxlcz1bRGUsbS5kZWZhdWx0U3R5bGVzLG9lYAogICAgICAvKiBUT0RPOiBNaWdyYXRlIGhhcmRjb2RlZCB2YWx1ZXMgdG8gLS1kZWVzLSogQ1NTIHZhcmlhYmxlcyAqLwogICAgICA6aG9zdCB7CiAgICAgICAgZGlzcGxheTogaW5saW5lLWZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgfQogICAgICBidXR0b24gewogICAgICAgIGJhY2tncm91bmQ6IG5vbmU7CiAgICAgICAgYm9yZGVyOiBub25lOwogICAgICAgIG1hcmdpbjogMCAycHg7CiAgICAgICAgcGFkZGluZzogNnB4IDEwcHg7CiAgICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgICAgIGN1cnNvcjogcG9pbnRlcjsKICAgICAgICBjb2xvcjogJHttLmJkVGhlbWUoIiMzMzMiLCIjY2NjIil9OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDNweDsKICAgICAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kIDAuMnM7CiAgICAgIH0KICAgICAgYnV0dG9uOmhvdmVyOm5vdCg6ZGlzYWJsZWQpIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke20uYmRUaGVtZSgiI2VlZSIsIiM0NDQiKX07CiAgICAgIH0KICAgICAgYnV0dG9uOmRpc2FibGVkIHsKICAgICAgICBjdXJzb3I6IGRlZmF1bHQ7CiAgICAgICAgY29sb3I6ICR7bS5iZFRoZW1lKCIjYWFhIiwiIzY2NiIpfTsKICAgICAgfQogICAgICBidXR0b24uY3VycmVudCB7CiAgICAgICAgYmFja2dyb3VuZDogIzAwNTBiOTsKICAgICAgICBjb2xvcjogI2ZmZjsKICAgICAgICBjdXJzb3I6IGRlZmF1bHQ7CiAgICAgIH0KICAgICAgc3Bhbi5lbGxpcHNpcyB7CiAgICAgICAgbWFyZ2luOiAwIDRweDsKICAgICAgICBjb2xvcjogJHttLmJkVGhlbWUoIiMzMzMiLCIjY2NjIil9OwogICAgICB9CiAgICBgXTtnZXQgcGFnZXMoKXtsZXQgaD1bXSxmPXRoaXMudG90YWwseD10aGlzLnBhZ2U7aWYoZjw9Nylmb3IobGV0IHY9MTt2PD1mO3YrKyloLnB1c2godik7ZWxzZXtoLnB1c2goMSkseD40JiZoLnB1c2goIi4uLiIpO2xldCB2PU1hdGgubWF4KDIseC0yKSxiPU1hdGgubWluKGYtMSx4KzIpO2ZvcihsZXQgeT12O3k8PWI7eSsrKWgucHVzaCh5KTt4PGYtMyYmaC5wdXNoKCIuLi4iKSxoLnB1c2goZil9cmV0dXJuIGh9cmVuZGVyKCl7cmV0dXJuIENgCiAgICAgIDxidXR0b24KICAgICAgICBAY2xpY2s9JHsoKT0+dGhpcy5jaGFuZ2VQYWdlKHRoaXMucGFnZS0xKX0KICAgICAgICA/ZGlzYWJsZWQ9JHt0aGlzLnBhZ2U8PTF9CiAgICAgICAgYXJpYS1sYWJlbD0iUHJldmlvdXMgcGFnZSIKICAgICAgPgogICAgICAgIOKAuQogICAgICA8L2J1dHRvbj4KICAgICAgJHt0aGlzLnBhZ2VzLm1hcChoPT5oPT09Ii4uLiI/Q2A8c3BhbiBjbGFzcz0iZWxsaXBzaXMiPuKApjwvc3Bhbj5gOkNgCiAgICAgICAgICAgICAgPGJ1dHRvbgogICAgICAgICAgICAgICAgY2xhc3M9IiR7aD09PXRoaXMucGFnZT8iY3VycmVudCI6IiJ9IgogICAgICAgICAgICAgICAgQGNsaWNrPSR7KCk9PnRoaXMuY2hhbmdlUGFnZShoKX0KICAgICAgICAgICAgICAgID9kaXNhYmxlZD0ke2g9PT10aGlzLnBhZ2V9CiAgICAgICAgICAgICAgICBhcmlhLWxhYmVsPSJQYWdlICR7aH0iCiAgICAgICAgICAgICAgPgogICAgICAgICAgICAgICAgJHtofQogICAgICAgICAgICAgIDwvYnV0dG9uPgogICAgICAgICAgICBgKX0KICAgICAgPGJ1dHRvbgogICAgICAgIEBjbGljaz0keygpPT50aGlzLmNoYW5nZVBhZ2UodGhpcy5wYWdlKzEpfQogICAgICAgID9kaXNhYmxlZD0ke3RoaXMucGFnZT49dGhpcy50b3RhbH0KICAgICAgICBhcmlhLWxhYmVsPSJOZXh0IHBhZ2UiCiAgICAgID4KICAgICAgICDigLoKICAgICAgPC9idXR0b24+CiAgICBgfWNoYW5nZVBhZ2UoaCl7aDwxfHxoPnRoaXMudG90YWx8fGg9PT10aGlzLnBhZ2V8fCh0aGlzLnBhZ2U9aCx0aGlzLmRpc3BhdGNoRXZlbnQobmV3IEN1c3RvbUV2ZW50KCJwYWdlLWNoYW5nZSIse2RldGFpbDp7cGFnZTp0aGlzLnBhZ2V9LGJ1YmJsZXM6ITB9KSkpfWNvbnN0cnVjdG9yKCl7c3VwZXIoLi4uYXJndW1lbnRzKSxPYih0aGlzLHUpfXN0YXRpY3tPYihpLHIpfX07cmV0dXJuIGQ9aX0pKCl9KTt2YXIgaTNyPXAoKCk9PntyM3IoKX0pO3ZhciBhM3I9cCgoKT0+e09pKCl9KTt2YXIgbjNyLG8zcj1wKCgpPT57eGUoKTtuM3I9KCk9PkNgCiAgPGRlZXMtc3RlcHBlcgogICAgLnN0ZXBzPSR7W3t0aXRsZToiQWNjb3VudCBTZXR1cCIsY29udGVudDpDYAogICAgICAgICAgPGRlZXMtZm9ybT4KICAgICAgICAgICAgPGRlZXMtaW5wdXQtdGV4dCBrZXk9ImVtYWlsIiBsYWJlbD0iV29yayBFbWFpbCIgcmVxdWlyZWQ+PC9kZWVzLWlucHV0LXRleHQ+CiAgICAgICAgICAgIDxkZWVzLWlucHV0LXRleHQga2V5PSJwYXNzd29yZCIgbGFiZWw9IkNyZWF0ZSBQYXNzd29yZCIgdHlwZT0icGFzc3dvcmQiIHJlcXVpcmVkPjwvZGVlcy1pbnB1dC10ZXh0PgogICAgICAgICAgICA8ZGVlcy1mb3JtLXN1Ym1pdD5Db250aW51ZTwvZGVlcy1mb3JtLXN1Ym1pdD4KICAgICAgICAgIDwvZGVlcy1mb3JtPgogICAgICAgIGAsdmFsaWRhdGlvbkZ1bmM6YXN5bmMoZSx0KT0+e3QucXVlcnlTZWxlY3RvcigiZGVlcy1mb3JtIikuYWRkRXZlbnRMaXN0ZW5lcigiZm9ybURhdGEiLCgpPT5lLmdvTmV4dCgpLHtvbmNlOiEwfSl9fSx7dGl0bGU6IlByb2ZpbGUgRGV0YWlscyIsY29udGVudDpDYAogICAgICAgICAgPGRlZXMtZm9ybT4KICAgICAgICAgICAgPGRlZXMtaW5wdXQtdGV4dCBrZXk9ImZpcnN0TmFtZSIgbGFiZWw9IkZpcnN0IE5hbWUiIHJlcXVpcmVkPjwvZGVlcy1pbnB1dC10ZXh0PgogICAgICAgICAgICA8ZGVlcy1pbnB1dC10ZXh0IGtleT0ibGFzdE5hbWUiIGxhYmVsPSJMYXN0IE5hbWUiIHJlcXVpcmVkPjwvZGVlcy1pbnB1dC10ZXh0PgogICAgICAgICAgICA8ZGVlcy1mb3JtLXN1Ym1pdD5Db250aW51ZTwvZGVlcy1mb3JtLXN1Ym1pdD4KICAgICAgICAgIDwvZGVlcy1mb3JtPgogICAgICAgIGAsdmFsaWRhdGlvbkZ1bmM6YXN5bmMoZSx0KT0+e3QucXVlcnlTZWxlY3RvcigiZGVlcy1mb3JtIikuYWRkRXZlbnRMaXN0ZW5lcigiZm9ybURhdGEiLCgpPT5lLmdvTmV4dCgpLHtvbmNlOiEwfSl9fSx7dGl0bGU6IkNvbnRhY3QgSW5mb3JtYXRpb24iLGNvbnRlbnQ6Q2AKICAgICAgICAgIDxkZWVzLWZvcm0+CiAgICAgICAgICAgIDxkZWVzLWlucHV0LXBob25lIGtleT0icGhvbmUiIGxhYmVsPSJNb2JpbGUgTnVtYmVyIiByZXF1aXJlZD48L2RlZXMtaW5wdXQtcGhvbmU+CiAgICAgICAgICAgIDxkZWVzLWlucHV0LXRleHQga2V5PSJjb21wYW55IiBsYWJlbD0iQ29tcGFueSI+PC9kZWVzLWlucHV0LXRleHQ+CiAgICAgICAgICAgIDxkZWVzLWZvcm0tc3VibWl0PkNvbnRpbnVlPC9kZWVzLWZvcm0tc3VibWl0PgogICAgICAgICAgPC9kZWVzLWZvcm0+CiAgICAgICAgYCx2YWxpZGF0aW9uRnVuYzphc3luYyhlLHQpPT57dC5xdWVyeVNlbGVjdG9yKCJkZWVzLWZvcm0iKS5hZGRFdmVudExpc3RlbmVyKCJmb3JtRGF0YSIsKCk9PmUuZ29OZXh0KCkse29uY2U6ITB9KX19LHt0aXRsZToiVGVhbSBTaXplIixjb250ZW50OkNgCiAgICAgICAgICA8ZGVlcy1mb3JtPgogICAgICAgICAgICA8ZGVlcy1pbnB1dC1kcm9wZG93bgogICAgICAgICAgICAgIGtleT0idGVhbVNpemUiCiAgICAgICAgICAgICAgbGFiZWw9IkhvdyBiaWcgaXMgeW91ciB0ZWFtPyIKICAgICAgICAgICAgICAub3B0aW9ucz0ke1t7bGFiZWw6IjEtNSIsdmFsdWU6IjEtNSJ9LHtsYWJlbDoiNi0yMCIsdmFsdWU6IjYtMjAifSx7bGFiZWw6IjIxLTUwIix2YWx1ZToiMjEtNTAifSx7bGFiZWw6IjUxKyIsdmFsdWU6IjUxKyJ9XX0KICAgICAgICAgICAgICByZXF1aXJlZAogICAgICAgICAgICA+PC9kZWVzLWlucHV0LWRyb3Bkb3duPgogICAgICAgICAgICA8ZGVlcy1mb3JtLXN1Ym1pdD5Db250aW51ZTwvZGVlcy1mb3JtLXN1Ym1pdD4KICAgICAgICAgIDwvZGVlcy1mb3JtPgogICAgICAgIGAsdmFsaWRhdGlvbkZ1bmM6YXN5bmMoZSx0KT0+e3QucXVlcnlTZWxlY3RvcigiZGVlcy1mb3JtIikuYWRkRXZlbnRMaXN0ZW5lcigiZm9ybURhdGEiLCgpPT5lLmdvTmV4dCgpLHtvbmNlOiEwfSl9fSx7dGl0bGU6IkdvYWxzIixjb250ZW50OkNgCiAgICAgICAgICA8ZGVlcy1mb3JtPgogICAgICAgICAgICA8ZGVlcy1pbnB1dC1tdWx0aXRvZ2dsZQogICAgICAgICAgICAgIGtleT0iZ29hbCIKICAgICAgICAgICAgICBsYWJlbD0iTWFpbiBvYmplY3RpdmUiCiAgICAgICAgICAgICAgLm9wdGlvbnM9JHtbe2xhYmVsOiJPbmJvYXJkaW5nIix2YWx1ZToib25ib2FyZGluZyJ9LHtsYWJlbDoiQW5hbHl0aWNzIix2YWx1ZToiYW5hbHl0aWNzIn0se2xhYmVsOiJBdXRvbWF0aW9uIix2YWx1ZToiYXV0b21hdGlvbiJ9XX0KICAgICAgICAgICAgICByZXF1aXJlZAogICAgICAgICAgICA+PC9kZWVzLWlucHV0LW11bHRpdG9nZ2xlPgogICAgICAgICAgICA8ZGVlcy1mb3JtLXN1Ym1pdD5Db250aW51ZTwvZGVlcy1mb3JtLXN1Ym1pdD4KICAgICAgICAgIDwvZGVlcy1mb3JtPgogICAgICAgIGAsdmFsaWRhdGlvbkZ1bmM6YXN5bmMoZSx0KT0+e3QucXVlcnlTZWxlY3RvcigiZGVlcy1mb3JtIikuYWRkRXZlbnRMaXN0ZW5lcigiZm9ybURhdGEiLCgpPT5lLmdvTmV4dCgpLHtvbmNlOiEwfSl9fSx7dGl0bGU6IkJyYW5kIFByZWZlcmVuY2VzIixjb250ZW50OkNgCiAgICAgICAgICA8ZGVlcy1mb3JtPgogICAgICAgICAgICA8ZGVlcy1pbnB1dC10ZXh0IGtleT0iYnJhbmRDb2xvciIgbGFiZWw9IlByaW1hcnkgYnJhbmQgY29sb3IiPjwvZGVlcy1pbnB1dC10ZXh0PgogICAgICAgICAgICA8ZGVlcy1pbnB1dC10ZXh0IGtleT0idG9uZSIgbGFiZWw9IlByZWZlcnJlZCB0b25lIChlLmcuIGZyaWVuZGx5LCBmb3JtYWwpIj48L2RlZXMtaW5wdXQtdGV4dD4KICAgICAgICAgICAgPGRlZXMtZm9ybS1zdWJtaXQ+Q29udGludWU8L2RlZXMtZm9ybS1zdWJtaXQ+CiAgICAgICAgICA8L2RlZXMtZm9ybT4KICAgICAgICBgLHZhbGlkYXRpb25GdW5jOmFzeW5jKGUsdCk9Pnt0LnF1ZXJ5U2VsZWN0b3IoImRlZXMtZm9ybSIpLmFkZEV2ZW50TGlzdGVuZXIoImZvcm1EYXRhIiwoKT0+ZS5nb05leHQoKSx7b25jZTohMH0pfX0se3RpdGxlOiJJbnRlZ3JhdGlvbnMiLGNvbnRlbnQ6Q2AKICAgICAgICAgIDxkZWVzLWZvcm0+CiAgICAgICAgICAgIDxkZWVzLWlucHV0LWxpc3QKICAgICAgICAgICAgICBrZXk9ImludGVncmF0aW9ucyIKICAgICAgICAgICAgICBsYWJlbD0iSW50ZWdyYXRpb25zIGluIHVzZSIKICAgICAgICAgICAgICBwbGFjZWhvbGRlcj0iQWRkIGludGVncmF0aW9uIgogICAgICAgICAgICA+PC9kZWVzLWlucHV0LWxpc3Q+CiAgICAgICAgICAgIDxkZWVzLWZvcm0tc3VibWl0PkNvbnRpbnVlPC9kZWVzLWZvcm0tc3VibWl0PgogICAgICAgICAgPC9kZWVzLWZvcm0+CiAgICAgICAgYCx2YWxpZGF0aW9uRnVuYzphc3luYyhlLHQpPT57dC5xdWVyeVNlbGVjdG9yKCJkZWVzLWZvcm0iKS5hZGRFdmVudExpc3RlbmVyKCJmb3JtRGF0YSIsKCk9PmUuZ29OZXh0KCkse29uY2U6ITB9KX19LHt0aXRsZToiUmV2aWV3ICYgTGF1bmNoIixjb250ZW50OkNgCiAgICAgICAgICA8ZGVlcy1wYW5lbD4KICAgICAgICAgICAgPHA+QWxtb3N0IHRoZXJlISBSZXZpZXcgeW91ciBzZWxlY3Rpb25zIGFuZCBsYXVuY2ggd2hlbmV2ZXIgeW91J3JlIHJlYWR5LjwvcD4KICAgICAgICAgIDwvZGVlcy1wYW5lbD4KICAgICAgICBgfV19CiAgPjwvZGVlcy1zdGVwcGVyPgpgfSk7dmFyIG1kZSxSYixzM3IsbDNyPXAoKCk9Pnt3aSgpO1BvKCk7eGUoKTtLdCgpO28zcigpO0plKCk7bWRlPWZ1bmN0aW9uKGUsdCxyLGksYSxuKXtmdW5jdGlvbiBvKHkpe2lmKHkhPT12b2lkIDAmJnR5cGVvZiB5IT0iZnVuY3Rpb24iKXRocm93IG5ldyBUeXBlRXJyb3IoIkZ1bmN0aW9uIGV4cGVjdGVkIik7cmV0dXJuIHl9Zm9yKHZhciBzPWkua2luZCxsPXM9PT0iZ2V0dGVyIj8iZ2V0IjpzPT09InNldHRlciI/InNldCI6InZhbHVlIixjPSF0JiZlP2kuc3RhdGljP2U6ZS5wcm90b3R5cGU6bnVsbCx1PXR8fChjP09iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoYyxpLm5hbWUpOnt9KSxkLGg9ITEsZj1yLmxlbmd0aC0xO2Y+PTA7Zi0tKXt2YXIgeD17fTtmb3IodmFyIHYgaW4gaSl4W3ZdPXY9PT0iYWNjZXNzIj97fTppW3ZdO2Zvcih2YXIgdiBpbiBpLmFjY2Vzcyl4LmFjY2Vzc1t2XT1pLmFjY2Vzc1t2XTt4LmFkZEluaXRpYWxpemVyPWZ1bmN0aW9uKHkpe2lmKGgpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGFkZCBpbml0aWFsaXplcnMgYWZ0ZXIgZGVjb3JhdGlvbiBoYXMgY29tcGxldGVkIik7bi5wdXNoKG8oeXx8bnVsbCkpfTt2YXIgYj0oMCxyW2ZdKShzPT09ImFjY2Vzc29yIj97Z2V0OnUuZ2V0LHNldDp1LnNldH06dVtsXSx4KTtpZihzPT09ImFjY2Vzc29yIil7aWYoYj09PXZvaWQgMCljb250aW51ZTtpZihiPT09bnVsbHx8dHlwZW9mIGIhPSJvYmplY3QiKXRocm93IG5ldyBUeXBlRXJyb3IoIk9iamVjdCBleHBlY3RlZCIpOyhkPW8oYi5nZXQpKSYmKHUuZ2V0PWQpLChkPW8oYi5zZXQpKSYmKHUuc2V0PWQpLChkPW8oYi5pbml0KSkmJmEudW5zaGlmdChkKX1lbHNlKGQ9byhiKSkmJihzPT09ImZpZWxkIj9hLnVuc2hpZnQoZCk6dVtsXT1kKX1jJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoYyxpLm5hbWUsdSksaD0hMH0sUmI9ZnVuY3Rpb24oZSx0LHIpe2Zvcih2YXIgaT1hcmd1bWVudHMubGVuZ3RoPjIsYT0wO2E8dC5sZW5ndGg7YSsrKXI9aT90W2FdLmNhbGwoZSxyKTp0W2FdLmNhbGwoZSk7cmV0dXJuIGk/cjp2b2lkIDB9LHMzcj0oKCk9PntsZXQgZT1beWUoImRlZXMtc3RlcHBlciIpXSx0LHI9W10saSxhPXplLG4sbz1bXSxzPVtdLGwsYz1bXSx1PVtdO3ZhciBkPWNsYXNzIGV4dGVuZHMgYXtzdGF0aWN7aT10aGlzfXN0YXRpY3tsZXQgaD10eXBlb2YgU3ltYm9sPT0iZnVuY3Rpb24iJiZTeW1ib2wubWV0YWRhdGE/T2JqZWN0LmNyZWF0ZShhW1N5bWJvbC5tZXRhZGF0YV0/P251bGwpOnZvaWQgMDtuPVtqKHt0eXBlOkFycmF5fSldLGw9W2ooe3R5cGU6T2JqZWN0fSldLG1kZSh0aGlzLG51bGwsbix7a2luZDoiYWNjZXNzb3IiLG5hbWU6InN0ZXBzIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpmPT4ic3RlcHMiaW4gZixnZXQ6Zj0+Zi5zdGVwcyxzZXQ6KGYseCk9PntmLnN0ZXBzPXh9fSxtZXRhZGF0YTpofSxvLHMpLG1kZSh0aGlzLG51bGwsbCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InNlbGVjdGVkU3RlcCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6Zj0+InNlbGVjdGVkU3RlcCJpbiBmLGdldDpmPT5mLnNlbGVjdGVkU3RlcCxzZXQ6KGYseCk9PntmLnNlbGVjdGVkU3RlcD14fX0sbWV0YWRhdGE6aH0sYyx1KSxtZGUobnVsbCx0PXt2YWx1ZTppfSxlLHtraW5kOiJjbGFzcyIsbmFtZTppLm5hbWUsbWV0YWRhdGE6aH0sbnVsbCxyKSxkPWk9dC52YWx1ZSxoJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoaSxTeW1ib2wubWV0YWRhdGEse2VudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwLHZhbHVlOmh9KX1zdGF0aWMgZGVtbz1uM3I7c3RhdGljIGRlbW9Hcm91cHM9WyJMYXlvdXQiLCJGb3JtIl07I2U9UmIodGhpcyxvLFtdKTtnZXQgc3RlcHMoKXtyZXR1cm4gdGhpcy4jZX1zZXQgc3RlcHMoaCl7dGhpcy4jZT1ofSN0PShSYih0aGlzLHMpLFJiKHRoaXMsYyx2b2lkIDApKTtnZXQgc2VsZWN0ZWRTdGVwKCl7cmV0dXJuIHRoaXMuI3R9c2V0IHNlbGVjdGVkU3RlcChoKXt0aGlzLiN0PWh9Y29uc3RydWN0b3IoKXtzdXBlcigpfXN0YXRpYyBzdHlsZXM9W0RlLG0uZGVmYXVsdFN0eWxlcyxvZWAKICAgICAgLyogVE9ETzogTWlncmF0ZSBoYXJkY29kZWQgdmFsdWVzIHRvIC0tZGVlcy0qIENTUyB2YXJpYWJsZXMgKi8KICAgICAgOmhvc3QgewogICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgICB3aWR0aDogMTAwJTsKICAgICAgICBoZWlnaHQ6IDEwMCU7CiAgICAgIH0KICAgICAgLnN0ZXBwZXJDb250YWluZXIgewogICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgICB3aWR0aDogMTAwJTsKICAgICAgICBoZWlnaHQ6IDEwMCU7CiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgICAgfQoKICAgICAgLnN0ZXAgewogICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTsKICAgICAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgICAgIHRyYW5zaXRpb246IHRyYW5zZm9ybSAwLjdzIGN1YmljLWJlemllcigwLjg3LCAwLCAwLjEzLCAxKSwgYm94LXNoYWRvdyAwLjdzIGN1YmljLWJlemllcigwLjg3LCAwLCAwLjEzLCAxKSwgZmlsdGVyIDAuN3MgY3ViaWMtYmV6aWVyKDAuODcsIDAsIDAuMTMsIDEpLCBib3JkZXIgMC43cyBjdWJpYy1iZXppZXIoMC44NywgMCwgMC4xMywgMSk7CiAgICAgICAgbWF4LXdpZHRoOiA1MDBweDsKICAgICAgICBtaW4taGVpZ2h0OiAzMDBweDsKICAgICAgICBib3JkZXItcmFkaXVzOiAxMnB4OwogICAgICAgIGJhY2tncm91bmQ6ICR7bS5iZFRoZW1lKCIjZmZmZmZmIiwiIzBmMGYxMSIpfTsKICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAke20uYmRUaGVtZSgiI2UyZThmMCIsIiMyNzI3MjkiKX07CiAgICAgICAgY29sb3I6ICR7bS5iZFRoZW1lKCIjMGYxNzJhIiwiI2Y1ZjVmNSIpfTsKICAgICAgICBtYXJnaW46IGF1dG87CiAgICAgICAgbWFyZ2luLWJvdHRvbTogMjBweDsKICAgICAgICBmaWx0ZXI6IG9wYWNpdHkoMC41NSkgc2F0dXJhdGUoMC44NSk7CiAgICAgICAgYm94LXNoYWRvdzogMCA4cHggMzJweCByZ2JhKDAsIDAsIDAsIDAuNCk7CiAgICAgICAgdXNlci1zZWxlY3Q6IG5vbmU7CiAgICAgIH0KCiAgICAgIC5zdGVwLnNlbGVjdGVkIHsKICAgICAgICBwb2ludGVyLWV2ZW50czogYWxsOwogICAgICAgIGZpbHRlcjogb3BhY2l0eSgxKSBzYXR1cmF0ZSgxKTsKICAgICAgICB1c2VyLXNlbGVjdDogYXV0bzsKICAgICAgfQoKICAgICAgLnN0ZXAuaGlkZGVuU3RlcCB7CiAgICAgICAgZmlsdGVyOiBvcGFjaXR5KDApOwogICAgICB9CgogICAgICAuc3RlcC5lbnRyYW5jZSB7CiAgICAgICAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDAuMzVzIGVhc2UsIGJveC1zaGFkb3cgMC4zNXMgZWFzZSwgZmlsdGVyIDAuMzVzIGVhc2UsIGJvcmRlciAwLjM1cyBlYXNlOwogICAgICB9CgogICAgICAuc3RlcC5lbnRyYW5jZS5oaWRkZW5TdGVwIHsKICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMTZweCk7CiAgICAgIH0KCiAgICAgIC5zdGVwOmxhc3QtY2hpbGQgewogICAgICAgIG1hcmdpbi1ib3R0b206IDEwMHZoOwogICAgICB9CgogICAgICAuc3RlcCAuc3RlcENvdW50ZXIgewogICAgICAgIGNvbG9yOiAke20uYmRUaGVtZSgiIzY0NzQ4YiIsIiNhMWExYWEiKX07CiAgICAgICAgcG9zaXRpb246IGFic29sdXRlOwogICAgICAgIHRvcDogMTJweDsKICAgICAgICByaWdodDogMTJweDsKICAgICAgICBwYWRkaW5nOiA2cHggMTRweDsKICAgICAgICBmb250LXNpemU6IDEycHg7CiAgICAgICAgYm9yZGVyLXJhZGl1czogOTk5cHg7CiAgICAgICAgYmFja2dyb3VuZDogJHttLmJkVGhlbWUoInJnYmEoMjI2LCAyMzIsIDI0MCwgMC41KSIsInJnYmEoNjMsIDYzLCA3MCwgMC40NSkiKX07CiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHttLmJkVGhlbWUoInJnYmEoMjI2LCAyMzIsIDI0MCwgMC43KSIsInJnYmEoNjMsIDYzLCA3MCwgMC42KSIpfTsKICAgICAgfQoKICAgICAgLnN0ZXAgLmdvQmFjayB7CiAgICAgICAgcG9zaXRpb246IGFic29sdXRlOwogICAgICAgIHRvcDogMTJweDsKICAgICAgICBsZWZ0OiAxMnB4OwogICAgICAgIGRpc3BsYXk6IGlubGluZS1mbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgZ2FwOiA2cHg7CiAgICAgICAgcGFkZGluZzogNnB4IDEycHg7CiAgICAgICAgZm9udC1zaXplOiAxMnB4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7CiAgICAgICAgYm9yZGVyLXJhZGl1czogOTk5cHg7CiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHttLmJkVGhlbWUoInJnYmEoMjI2LCAyMzIsIDI0MCwgMC45KSIsInJnYmEoNjMsIDYzLCA3MCwgMC44NSkiKX07CiAgICAgICAgYmFja2dyb3VuZDogJHttLmJkVGhlbWUoInJnYmEoMjU1LCAyNTUsIDI1NSwgMC45KSIsInJnYmEoMzksIDM5LCA0MiwgMC44NSkiKX07CiAgICAgICAgY29sb3I6ICR7bS5iZFRoZW1lKCIjNDc1NTY5IiwiI2Q0ZDRkOCIpfTsKICAgICAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICAgICAgdHJhbnNpdGlvbjogYm9yZGVyIDAuMnMgZWFzZSwgY29sb3IgMC4ycyBlYXNlLCBiYWNrZ3JvdW5kIDAuMnMgZWFzZSwgdHJhbnNmb3JtIDAuMnMgZWFzZTsKICAgICAgfQoKICAgICAgLnN0ZXAgLmdvQmFjazpob3ZlciB7CiAgICAgICAgY29sb3I6ICR7bS5iZFRoZW1lKCIjMGYxNzJhIiwiI2ZhZmFmYSIpfTsKICAgICAgICBib3JkZXItY29sb3I6ICR7bS5iZFRoZW1lKElvLmJsdWUsSW8uYmx1ZSl9OwogICAgICAgIGJhY2tncm91bmQ6ICR7bS5iZFRoZW1lKCJyZ2JhKDIyNiwgMjMyLCAyNDAsIDAuOTUpIiwicmdiYSg2MywgNjMsIDcwLCAwLjcpIil9OwogICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtMnB4KTsKICAgICAgfQoKICAgICAgLnN0ZXAgLmdvQmFjazphY3RpdmUgewogICAgICAgIGNvbG9yOiAke20uYmRUaGVtZSgiIzBmMTcyYSIsIiNmYWZhZmEiKX07CiAgICAgICAgYm9yZGVyLWNvbG9yOiAke20uYmRUaGVtZShJby5ibHVlQWN0aXZlLElvLmJsdWVBY3RpdmUpfTsKICAgICAgICBiYWNrZ3JvdW5kOiAke20uYmRUaGVtZSgicmdiYSgyMjYsIDIzMiwgMjQwLCAwLjg1KSIsInJnYmEoNjMsIDYzLCA3MCwgMC42KSIpfTsKICAgICAgfQoKICAgICAgLnN0ZXAgLmdvQmFjayBzcGFuIHsKICAgICAgICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMC4ycyBlYXNlOwogICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jazsKICAgICAgfQoKICAgICAgLnN0ZXAgLmdvQmFjazpob3ZlciBzcGFuIHsKICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTJweCk7CiAgICAgIH0KCiAgICAgIC5zdGVwIC50aXRsZSB7CiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyOwogICAgICAgIHBhZGRpbmctdG9wOiA2NHB4OwogICAgICAgIGZvbnQtZmFtaWx5OiAnR2Vpc3QgU2FucycsIHNhbnMtc2VyaWY7CiAgICAgICAgZm9udC1zaXplOiAyNHB4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7CiAgICAgICAgbGV0dGVyLXNwYWNpbmc6IC0wLjAxZW07CiAgICAgICAgY29sb3I6IGluaGVyaXQ7CiAgICAgIH0KCiAgICAgIC5zdGVwIC5jb250ZW50IHsKICAgICAgICBwYWRkaW5nOiAzMnB4OwogICAgICB9CiAgICBgXTtyZW5kZXIoKXtyZXR1cm4gQ2AKICAgICAgPGRpdiBjbGFzcz0ic3RlcHBlckNvbnRhaW5lciI+CiAgICAgICAgJHt0aGlzLnN0ZXBzLm1hcChoPT5DYDxkaXYKICAgICAgICAgICAgICBjbGFzcz0ic3RlcCAke2g9PT10aGlzLnNlbGVjdGVkU3RlcD8ic2VsZWN0ZWQiOm51bGx9ICR7dGhpcy5nZXRJbmRleE9mU3RlcChoKT50aGlzLmdldEluZGV4T2ZTdGVwKHRoaXMuc2VsZWN0ZWRTdGVwKT8iaGlkZGVuU3RlcCI6IiJ9ICR7dGhpcy5nZXRJbmRleE9mU3RlcChoKT09PTA/ImVudHJhbmNlIjoiIn0iCiAgICAgICAgICAgID4KICAgICAgICAgICAgICAke3RoaXMuZ2V0SW5kZXhPZlN0ZXAoaCk+MD9DYDxkaXYgY2xhc3M9ImdvQmFjayIgQGNsaWNrPSR7dGhpcy5nb0JhY2t9PjxzcGFuIHN0eWxlPSJmb250LWZhbWlseTogSW50ZXIiPjwtPC9zcGFuPiBnbyB0byBwcmV2aW91cyBzdGVwPC9kaXY+YDoiIn0KICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJzdGVwQ291bnRlciI+CiAgICAgICAgICAgICAgICBTdGVwICR7dGhpcy5zdGVwcy5maW5kSW5kZXgoZj0+Zj09PWgpKzF9IG9mCiAgICAgICAgICAgICAgICAke3RoaXMuc3RlcHMubGVuZ3RofQogICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgIDxkaXYgY2xhc3M9InRpdGxlIj4ke2gudGl0bGV9PC9kaXY+CiAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iY29udGVudCI+JHtoLmNvbnRlbnR9PC9kaXY+CiAgICAgICAgICAgIDwvZGl2PiBgKX0KICAgICAgPC9kaXY+CiAgICBgfWdldEluZGV4T2ZTdGVwPShSYih0aGlzLHUpLGg9PnRoaXMuc3RlcHMuZmluZEluZGV4KGY9Pmg9PT1mKSk7YXN5bmMgZmlyc3RVcGRhdGVkKCl7YXdhaXQgdGhpcy5kb210b29sc1Byb21pc2UsYXdhaXQgdGhpcy5kb210b29scy5jb252ZW5pZW5jZS5zbWFydGRlbGF5LmRlbGF5Rm9yKDApLHRoaXMuc2VsZWN0ZWRTdGVwPXRoaXMuc3RlcHNbMF0sdGhpcy5zZXRTY3JvbGxTdGF0dXMoKSxhd2FpdCB0aGlzLmRvbXRvb2xzLmNvbnZlbmllbmNlLnNtYXJ0ZGVsYXkuZGVsYXlGb3IoMzUwKSx0aGlzLnNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvcigiLnN0ZXAuZW50cmFuY2UiKT8uY2xhc3NMaXN0LnJlbW92ZSgiZW50cmFuY2UiKX1hc3luYyB1cGRhdGVkKCl7dGhpcy5zZXRTY3JvbGxTdGF0dXMoKX1zY3JvbGxlcjthc3luYyBzZXRTY3JvbGxTdGF0dXMoKXtsZXQgaD10aGlzLnNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvcigiLnN0ZXBwZXJDb250YWluZXIiKSxmPXRoaXMuc2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yKCIuc3RlcCIpLHg9dGhpcy5zaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3IoIi5zZWxlY3RlZCIpO2lmKCF4KXJldHVybjtoLnN0eWxlLnBhZGRpbmdUb3B8fChoLnN0eWxlLnBhZGRpbmdUb3A9YCR7aC5vZmZzZXRIZWlnaHQvMi14Lm9mZnNldEhlaWdodC8yfXB4YCksY29uc29sZS5sb2coIlNldHRpbmcgc2Nyb2xsIHN0YXR1cyIpLGNvbnNvbGUubG9nKHgpO2xldCB2PXgub2Zmc2V0VG9wLWgub2Zmc2V0SGVpZ2h0LzIreC5vZmZzZXRIZWlnaHQvMjtjb25zb2xlLmxvZyh2KTtsZXQgYj1hd2FpdCBEYS5zZXR1cERvbVRvb2xzKCk7dGhpcy5zY3JvbGxlcnx8KHRoaXMuc2Nyb2xsZXI9bmV3IGp0LlN3ZWV0U2Nyb2xsKHt2ZXJ0aWNhbDohMCxob3Jpem9udGFsOiExLGVhc2luZzoiZWFzZUluT3V0RXhwbyIsZHVyYXRpb246NzAwfSxoKSksIXRoaXMuc2VsZWN0ZWRTdGVwLnZhbGlkYXRpb25GdW5jQ2FsbGVkJiZ0aGlzLnNlbGVjdGVkU3RlcC52YWxpZGF0aW9uRnVuYyYmKHRoaXMuc2VsZWN0ZWRTdGVwLmFib3J0Q29udHJvbGxlcj1uZXcgQWJvcnRDb250cm9sbGVyLHRoaXMuc2VsZWN0ZWRTdGVwLnZhbGlkYXRpb25GdW5jQ2FsbGVkPSEwLGF3YWl0IHRoaXMuc2VsZWN0ZWRTdGVwLnZhbGlkYXRpb25GdW5jKHRoaXMseCx0aGlzLnNlbGVjdGVkU3RlcC5hYm9ydENvbnRyb2xsZXIuc2lnbmFsKSksdGhpcy5zY3JvbGxlci50byh2KX1hc3luYyBnb0JhY2soKXtsZXQgaD10aGlzLnN0ZXBzLmZpbmRJbmRleCh2PT52PT09dGhpcy5zZWxlY3RlZFN0ZXApO2lmKGg8PTApcmV0dXJuO3RoaXMuc2VsZWN0ZWRTdGVwLmFib3J0Q29udHJvbGxlciYmdGhpcy5zZWxlY3RlZFN0ZXAuYWJvcnRDb250cm9sbGVyLmFib3J0KCk7bGV0IGY9dGhpcy5zdGVwc1toXTtmLnZhbGlkYXRpb25GdW5jQ2FsbGVkPSExO2xldCB4PXRoaXMuc3RlcHNbaC0xXTt4LnZhbGlkYXRpb25GdW5jQ2FsbGVkPSExLHRoaXMuc2VsZWN0ZWRTdGVwPXgsYXdhaXQgdGhpcy5kb210b29sc1Byb21pc2UsYXdhaXQgdGhpcy5kb210b29scy5jb252ZW5pZW5jZS5zbWFydGRlbGF5LmRlbGF5Rm9yKDEwMCksdGhpcy5zZWxlY3RlZFN0ZXAub25SZXR1cm5Ub1N0ZXBGdW5jPy4odGhpcyx0aGlzLnNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvcigiLnNlbGVjdGVkIikpfWdvTmV4dCgpe2xldCBoPXRoaXMuc3RlcHMuZmluZEluZGV4KHY9PnY9PT10aGlzLnNlbGVjdGVkU3RlcCk7aWYoaDwwfHxoPj10aGlzLnN0ZXBzLmxlbmd0aC0xKXJldHVybjt0aGlzLnNlbGVjdGVkU3RlcC5hYm9ydENvbnRyb2xsZXImJnRoaXMuc2VsZWN0ZWRTdGVwLmFib3J0Q29udHJvbGxlci5hYm9ydCgpO2xldCBmPXRoaXMuc3RlcHNbaF07Zi52YWxpZGF0aW9uRnVuY0NhbGxlZD0hMTtsZXQgeD10aGlzLnN0ZXBzW2grMV07eC52YWxpZGF0aW9uRnVuY0NhbGxlZD0hMSx0aGlzLnNlbGVjdGVkU3RlcD14fXN0YXRpY3tSYihpLHIpfX07cmV0dXJuIGQ9aX0pKCl9KTt2YXIgYzNyPXAoKCk9PntsM3IoKX0pO3ZhciBkM3I9cCgoKT0+e0M0cigpO1U0cigpO1E0cigpO0o0cigpO2kzcigpO2EzcigpO2MzcigpfSk7dmFyIHUzcixwM3I9cCgoKT0+e3hlKCk7dTNyPSgpPT5DYAogIDxzdHlsZT4KICAgIC5kZW1vLWNvbnRhaW5lciB7CiAgICAgIHBhZGRpbmc6IDQ4cHg7CiAgICAgIGJhY2tncm91bmQ6ICR7bS5iZFRoZW1lKCIjZjhmOWZhIiwiIzBhMGEwYSIpfTsKICAgICAgZGlzcGxheTogZmxleDsKICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgZ2FwOiAzMnB4OwogICAgfQoKICAgIC5zZWN0aW9uIHsKICAgICAgbWF4LXdpZHRoOiA5MDBweDsKICAgICAgd2lkdGg6IDEwMCU7CiAgICAgIG1hcmdpbjogMCBhdXRvOwogICAgfQoKICAgIC5zZWN0aW9uLXRpdGxlIHsKICAgICAgZm9udC1zaXplOiAxOHB4OwogICAgICBmb250LXdlaWdodDogNjAwOwogICAgICBtYXJnaW4tYm90dG9tOiA4cHg7CiAgICAgIGNvbG9yOiAke20uYmRUaGVtZSgiIzA5MDkwYiIsIiNmYWZhZmEiKX07CiAgICB9CgogICAgLnNlY3Rpb24tZGVzY3JpcHRpb24gewogICAgICBmb250LXNpemU6IDE0cHg7CiAgICAgIGNvbG9yOiAke20uYmRUaGVtZSgiIzcxNzE3YSIsIiNhMWExYWEiKX07CiAgICAgIG1hcmdpbi1ib3R0b206IDE2cHg7CiAgICB9CgogICAgZGVlcy1pbWFnZS12aWV3ZXIgewogICAgICBoZWlnaHQ6IDQwMHB4OwogICAgICBib3JkZXI6IDFweCBzb2xpZCAke20uYmRUaGVtZSgiI2U1ZTdlYiIsIiMyNzI3MmEiKX07CiAgICAgIGJvcmRlci1yYWRpdXM6IDhweDsKICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgIH0KCiAgICAuY29tcGFjdCB7CiAgICAgIGhlaWdodDogMjUwcHg7CiAgICB9CiAgPC9zdHlsZT4KCiAgPGRpdiBjbGFzcz0iZGVtby1jb250YWluZXIiPgogICAgPGRpdiBjbGFzcz0ic2VjdGlvbiI+CiAgICAgIDxkaXYgY2xhc3M9InNlY3Rpb24tdGl0bGUiPkpQRUcgSW1hZ2Ugd2l0aCBUb29sYmFyPC9kaXY+CiAgICAgIDxkaXYgY2xhc3M9InNlY3Rpb24tZGVzY3JpcHRpb24iPkEgbGFuZHNjYXBlIHBob3RvIHdpdGggem9vbSwgcGFuLCBmaXQsIGFuZCBkb3dubG9hZCBjb250cm9scy48L2Rpdj4KICAgICAgPGRlZXMtaW1hZ2Utdmlld2VyCiAgICAgICAgc3JjPSJodHRwczovL2ltYWdlcy51bnNwbGFzaC5jb20vcGhvdG8tMTUwNjc0NDAzODEzNi00NjI3MzgzNGIzZmI/dz0xMjAwIgogICAgICAgIGFsdD0iTW91bnRhaW4gbGFuZHNjYXBlIgogICAgICA+PC9kZWVzLWltYWdlLXZpZXdlcj4KICAgIDwvZGl2PgoKICAgIDxkaXYgY2xhc3M9InNlY3Rpb24iPgogICAgICA8ZGl2IGNsYXNzPSJzZWN0aW9uLXRpdGxlIj5QTkcgd2l0aCBUcmFuc3BhcmVuY3k8L2Rpdj4KICAgICAgPGRpdiBjbGFzcz0ic2VjdGlvbi1kZXNjcmlwdGlvbiI+VHJhbnNwYXJlbnQgUE5HIGRpc3BsYXllZCBvbiBhIGNoZWNrZXJib2FyZCBiYWNrZ3JvdW5kLjwvZGl2PgogICAgICA8ZGVlcy1pbWFnZS12aWV3ZXIKICAgICAgICBzcmM9Imh0dHBzOi8vdXBsb2FkLndpa2ltZWRpYS5vcmcvd2lraXBlZGlhL2NvbW1vbnMvNC80Ny9QTkdfdHJhbnNwYXJlbmN5X2RlbW9uc3RyYXRpb25fMS5wbmciCiAgICAgICAgYWx0PSJQTkcgdHJhbnNwYXJlbmN5IGRlbW8iCiAgICAgID48L2RlZXMtaW1hZ2Utdmlld2VyPgogICAgPC9kaXY+CgogICAgPGRpdiBjbGFzcz0ic2VjdGlvbiI+CiAgICAgIDxkaXYgY2xhc3M9InNlY3Rpb24tdGl0bGUiPlNWRyBJbWFnZTwvZGl2PgogICAgICA8ZGl2IGNsYXNzPSJzZWN0aW9uLWRlc2NyaXB0aW9uIj5TY2FsYWJsZSB2ZWN0b3IgZ3JhcGhpYy48L2Rpdj4KICAgICAgPGRlZXMtaW1hZ2Utdmlld2VyCiAgICAgICAgc3JjPSJodHRwczovL3VwbG9hZC53aWtpbWVkaWEub3JnL3dpa2lwZWRpYS9jb21tb25zLzAvMDIvU1ZHX2xvZ28uc3ZnIgogICAgICAgIGFsdD0iU1ZHIGxvZ28iCiAgICAgICAgZml0PSJjb250YWluIgogICAgICA+PC9kZWVzLWltYWdlLXZpZXdlcj4KICAgIDwvZGl2PgoKICAgIDxkaXYgY2xhc3M9InNlY3Rpb24iPgogICAgICA8ZGl2IGNsYXNzPSJzZWN0aW9uLXRpdGxlIj5ObyBUb29sYmFyIFZhcmlhbnQ8L2Rpdj4KICAgICAgPGRpdiBjbGFzcz0ic2VjdGlvbi1kZXNjcmlwdGlvbiI+SW1hZ2Ugdmlld2VyIHdpdGggdGhlIHRvb2xiYXIgaGlkZGVuLjwvZGl2PgogICAgICA8ZGVlcy1pbWFnZS12aWV3ZXIKICAgICAgICBjbGFzcz0iY29tcGFjdCIKICAgICAgICBzcmM9Imh0dHBzOi8vaW1hZ2VzLnVuc3BsYXNoLmNvbS9waG90by0xNDY5NDc0OTY4MDI4LTU2NjIzZjAyZTQyZT93PTgwMCIKICAgICAgICBhbHQ9Ik5hdHVyZSBzY2VuZSIKICAgICAgICAuc2hvd1Rvb2xiYXI9JHshMX0KICAgICAgPjwvZGVlcy1pbWFnZS12aWV3ZXI+CiAgICA8L2Rpdj4KICA8L2Rpdj4KYH0pO3ZhciBLbixtMSxoM3IsZ2RlPXAoKCk9Pnt4ZSgpO29yKCk7cDNyKCk7S249ZnVuY3Rpb24oZSx0LHIsaSxhLG4pe2Z1bmN0aW9uIG8oeSl7aWYoeSE9PXZvaWQgMCYmdHlwZW9mIHkhPSJmdW5jdGlvbiIpdGhyb3cgbmV3IFR5cGVFcnJvcigiRnVuY3Rpb24gZXhwZWN0ZWQiKTtyZXR1cm4geX1mb3IodmFyIHM9aS5raW5kLGw9cz09PSJnZXR0ZXIiPyJnZXQiOnM9PT0ic2V0dGVyIj8ic2V0IjoidmFsdWUiLGM9IXQmJmU/aS5zdGF0aWM/ZTplLnByb3RvdHlwZTpudWxsLHU9dHx8KGM/T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihjLGkubmFtZSk6e30pLGQsaD0hMSxmPXIubGVuZ3RoLTE7Zj49MDtmLS0pe3ZhciB4PXt9O2Zvcih2YXIgdiBpbiBpKXhbdl09dj09PSJhY2Nlc3MiP3t9Omlbdl07Zm9yKHZhciB2IGluIGkuYWNjZXNzKXguYWNjZXNzW3ZdPWkuYWNjZXNzW3ZdO3guYWRkSW5pdGlhbGl6ZXI9ZnVuY3Rpb24oeSl7aWYoaCl0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgYWRkIGluaXRpYWxpemVycyBhZnRlciBkZWNvcmF0aW9uIGhhcyBjb21wbGV0ZWQiKTtuLnB1c2gobyh5fHxudWxsKSl9O3ZhciBiPSgwLHJbZl0pKHM9PT0iYWNjZXNzb3IiP3tnZXQ6dS5nZXQsc2V0OnUuc2V0fTp1W2xdLHgpO2lmKHM9PT0iYWNjZXNzb3IiKXtpZihiPT09dm9pZCAwKWNvbnRpbnVlO2lmKGI9PT1udWxsfHx0eXBlb2YgYiE9Im9iamVjdCIpdGhyb3cgbmV3IFR5cGVFcnJvcigiT2JqZWN0IGV4cGVjdGVkIik7KGQ9byhiLmdldCkpJiYodS5nZXQ9ZCksKGQ9byhiLnNldCkpJiYodS5zZXQ9ZCksKGQ9byhiLmluaXQpKSYmYS51bnNoaWZ0KGQpfWVsc2UoZD1vKGIpKSYmKHM9PT0iZmllbGQiP2EudW5zaGlmdChkKTp1W2xdPWQpfWMmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShjLGkubmFtZSx1KSxoPSEwfSxtMT1mdW5jdGlvbihlLHQscil7Zm9yKHZhciBpPWFyZ3VtZW50cy5sZW5ndGg+MixhPTA7YTx0Lmxlbmd0aDthKyspcj1pP3RbYV0uY2FsbChlLHIpOnRbYV0uY2FsbChlKTtyZXR1cm4gaT9yOnZvaWQgMH0saDNyPSgoKT0+e2xldCBlPVt5ZSgiZGVlcy1pbWFnZS12aWV3ZXIiKV0sdCxyPVtdLGksYT16ZSxuLG89W10scz1bXSxsLGM9W10sdT1bXSxkLGg9W10sZj1bXSx4LHY9W10sYj1bXSx5LHc9W10saz1bXSxPLHo9W10sTT1bXSxGLEQ9W10sTj1bXSxSLF89W10sUz1bXSwkLFQ9W10sRT1bXSxxLEI9W10sRz1bXSxlZSxQPVtdLGdlPVtdLHdlLEk9W10sbmU9W107dmFyIGtlPWNsYXNzIGV4dGVuZHMgYXtzdGF0aWN7aT10aGlzfXN0YXRpY3tsZXQgWT10eXBlb2YgU3ltYm9sPT0iZnVuY3Rpb24iJiZTeW1ib2wubWV0YWRhdGE/T2JqZWN0LmNyZWF0ZShhW1N5bWJvbC5tZXRhZGF0YV0/P251bGwpOnZvaWQgMDtuPVtqKCldLGw9W2ooKV0sZD1baigpXSx4PVtqKHt0eXBlOkJvb2xlYW59KV0seT1bZmUoKV0sTz1bZmUoKV0sRj1bZmUoKV0sUj1bZmUoKV0sJD1bZmUoKV0scT1bZmUoKV0sZWU9W2ZlKCldLHdlPVtmZSgpXSxLbih0aGlzLG51bGwsbix7a2luZDoiYWNjZXNzb3IiLG5hbWU6InNyYyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6QT0+InNyYyJpbiBBLGdldDpBPT5BLnNyYyxzZXQ6KEEsTCk9PntBLnNyYz1MfX0sbWV0YWRhdGE6WX0sbyxzKSxLbih0aGlzLG51bGwsbCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImFsdCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6QT0+ImFsdCJpbiBBLGdldDpBPT5BLmFsdCxzZXQ6KEEsTCk9PntBLmFsdD1MfX0sbWV0YWRhdGE6WX0sYyx1KSxLbih0aGlzLG51bGwsZCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImZpdCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6QT0+ImZpdCJpbiBBLGdldDpBPT5BLmZpdCxzZXQ6KEEsTCk9PntBLmZpdD1MfX0sbWV0YWRhdGE6WX0saCxmKSxLbih0aGlzLG51bGwseCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InNob3dUb29sYmFyIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpBPT4ic2hvd1Rvb2xiYXIiaW4gQSxnZXQ6QT0+QS5zaG93VG9vbGJhcixzZXQ6KEEsTCk9PntBLnNob3dUb29sYmFyPUx9fSxtZXRhZGF0YTpZfSx2LGIpLEtuKHRoaXMsbnVsbCx5LHtraW5kOiJhY2Nlc3NvciIsbmFtZToiem9vbSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6QT0+Inpvb20iaW4gQSxnZXQ6QT0+QS56b29tLHNldDooQSxMKT0+e0Euem9vbT1MfX0sbWV0YWRhdGE6WX0sdyxrKSxLbih0aGlzLG51bGwsTyx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InBhblgiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOkE9PiJwYW5YImluIEEsZ2V0OkE9PkEucGFuWCxzZXQ6KEEsTCk9PntBLnBhblg9TH19LG1ldGFkYXRhOll9LHosTSksS24odGhpcyxudWxsLEYse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJwYW5ZIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpBPT4icGFuWSJpbiBBLGdldDpBPT5BLnBhblksc2V0OihBLEwpPT57QS5wYW5ZPUx9fSxtZXRhZGF0YTpZfSxELE4pLEtuKHRoaXMsbnVsbCxSLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiaXNEcmFnZ2luZyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6QT0+ImlzRHJhZ2dpbmciaW4gQSxnZXQ6QT0+QS5pc0RyYWdnaW5nLHNldDooQSxMKT0+e0EuaXNEcmFnZ2luZz1MfX0sbWV0YWRhdGE6WX0sXyxTKSxLbih0aGlzLG51bGwsJCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImxvYWRpbmciLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOkE9PiJsb2FkaW5nImluIEEsZ2V0OkE9PkEubG9hZGluZyxzZXQ6KEEsTCk9PntBLmxvYWRpbmc9TH19LG1ldGFkYXRhOll9LFQsRSksS24odGhpcyxudWxsLHEse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJlcnJvciIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6QT0+ImVycm9yImluIEEsZ2V0OkE9PkEuZXJyb3Isc2V0OihBLEwpPT57QS5lcnJvcj1MfX0sbWV0YWRhdGE6WX0sQixHKSxLbih0aGlzLG51bGwsZWUse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJpbWFnZU5hdHVyYWxXaWR0aCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6QT0+ImltYWdlTmF0dXJhbFdpZHRoImluIEEsZ2V0OkE9PkEuaW1hZ2VOYXR1cmFsV2lkdGgsc2V0OihBLEwpPT57QS5pbWFnZU5hdHVyYWxXaWR0aD1MfX0sbWV0YWRhdGE6WX0sUCxnZSksS24odGhpcyxudWxsLHdlLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiaW1hZ2VOYXR1cmFsSGVpZ2h0IixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpBPT4iaW1hZ2VOYXR1cmFsSGVpZ2h0ImluIEEsZ2V0OkE9PkEuaW1hZ2VOYXR1cmFsSGVpZ2h0LHNldDooQSxMKT0+e0EuaW1hZ2VOYXR1cmFsSGVpZ2h0PUx9fSxtZXRhZGF0YTpZfSxJLG5lKSxLbihudWxsLHQ9e3ZhbHVlOml9LGUse2tpbmQ6ImNsYXNzIixuYW1lOmkubmFtZSxtZXRhZGF0YTpZfSxudWxsLHIpLGtlPWk9dC52YWx1ZSxZJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoaSxTeW1ib2wubWV0YWRhdGEse2VudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwLHZhbHVlOll9KX1zdGF0aWMgZGVtbz11M3I7c3RhdGljIGRlbW9Hcm91cHM9WyJNZWRpYSJdOyNlPW0xKHRoaXMsbywiIik7Z2V0IHNyYygpe3JldHVybiB0aGlzLiNlfXNldCBzcmMoWSl7dGhpcy4jZT1ZfSN0PShtMSh0aGlzLHMpLG0xKHRoaXMsYywiIikpO2dldCBhbHQoKXtyZXR1cm4gdGhpcy4jdH1zZXQgYWx0KFkpe3RoaXMuI3Q9WX0jcj0obTEodGhpcyx1KSxtMSh0aGlzLGgsImNvbnRhaW4iKSk7Z2V0IGZpdCgpe3JldHVybiB0aGlzLiNyfXNldCBmaXQoWSl7dGhpcy4jcj1ZfSNpPShtMSh0aGlzLGYpLG0xKHRoaXMsdiwhMCkpO2dldCBzaG93VG9vbGJhcigpe3JldHVybiB0aGlzLiNpfXNldCBzaG93VG9vbGJhcihZKXt0aGlzLiNpPVl9I2E9KG0xKHRoaXMsYiksbTEodGhpcyx3LDEpKTtnZXQgem9vbSgpe3JldHVybiB0aGlzLiNhfXNldCB6b29tKFkpe3RoaXMuI2E9WX0jbj0obTEodGhpcyxrKSxtMSh0aGlzLHosMCkpO2dldCBwYW5YKCl7cmV0dXJuIHRoaXMuI259c2V0IHBhblgoWSl7dGhpcy4jbj1ZfSNvPShtMSh0aGlzLE0pLG0xKHRoaXMsRCwwKSk7Z2V0IHBhblkoKXtyZXR1cm4gdGhpcy4jb31zZXQgcGFuWShZKXt0aGlzLiNvPVl9I3M9KG0xKHRoaXMsTiksbTEodGhpcyxfLCExKSk7Z2V0IGlzRHJhZ2dpbmcoKXtyZXR1cm4gdGhpcy4jc31zZXQgaXNEcmFnZ2luZyhZKXt0aGlzLiNzPVl9I2w9KG0xKHRoaXMsUyksbTEodGhpcyxULCEwKSk7Z2V0IGxvYWRpbmcoKXtyZXR1cm4gdGhpcy4jbH1zZXQgbG9hZGluZyhZKXt0aGlzLiNsPVl9I2M9KG0xKHRoaXMsRSksbTEodGhpcyxCLCIiKSk7Z2V0IGVycm9yKCl7cmV0dXJuIHRoaXMuI2N9c2V0IGVycm9yKFkpe3RoaXMuI2M9WX0jZD0obTEodGhpcyxHKSxtMSh0aGlzLFAsMCkpO2dldCBpbWFnZU5hdHVyYWxXaWR0aCgpe3JldHVybiB0aGlzLiNkfXNldCBpbWFnZU5hdHVyYWxXaWR0aChZKXt0aGlzLiNkPVl9I3U9KG0xKHRoaXMsZ2UpLG0xKHRoaXMsSSwwKSk7Z2V0IGltYWdlTmF0dXJhbEhlaWdodCgpe3JldHVybiB0aGlzLiN1fXNldCBpbWFnZU5hdHVyYWxIZWlnaHQoWSl7dGhpcy4jdT1ZfWRyYWdTdGFydFg9KG0xKHRoaXMsbmUpLDApO2RyYWdTdGFydFk9MDtkcmFnU3RhcnRQYW5YPTA7ZHJhZ1N0YXJ0UGFuWT0wO3JlbmRlcigpe3JldHVybiBDYAogICAgICA8c3R5bGU+CiAgICAgICAgOmhvc3QgewogICAgICAgICAgZGlzcGxheTogYmxvY2s7CiAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgICAgICB3aWR0aDogMTAwJTsKICAgICAgICAgIGhlaWdodDogMTAwJTsKICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47CiAgICAgICAgICBmb250LWZhbWlseTogLWFwcGxlLXN5c3RlbSwgQmxpbmtNYWNTeXN0ZW1Gb250LCAnU2Vnb2UgVUknLCBSb2JvdG8sIHNhbnMtc2VyaWY7CiAgICAgICAgfQoKICAgICAgICAudmlld2VyLWNvbnRhaW5lciB7CiAgICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgICAgIGhlaWdodDogMTAwJTsKICAgICAgICAgIGJhY2tncm91bmQ6ICR7bS5iZFRoZW1lKCJoc2woMCAwJSA5NyUpIiwiaHNsKDIxNSAyMCUgMTAlKSIpfTsKICAgICAgICB9CgogICAgICAgIC50b29sYmFyIHsKICAgICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7CiAgICAgICAgICBnYXA6IDE2cHg7CiAgICAgICAgICBwYWRkaW5nOiAwIDE2cHg7CiAgICAgICAgICBoZWlnaHQ6IDQ4cHg7CiAgICAgICAgICBiYWNrZ3JvdW5kOiAke20uYmRUaGVtZSgiI2ZmZmZmZiIsImhzbCgyMTUgMjAlIDE1JSkiKX07CiAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHttLmJkVGhlbWUoIiNlNWU3ZWIiLCJoc2woMjE3IDI1JSAyMiUpIil9OwogICAgICAgICAgZmxleC1zaHJpbms6IDA7CiAgICAgICAgfQoKICAgICAgICAudG9vbGJhci1ncm91cCB7CiAgICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICAgIGdhcDogNHB4OwogICAgICAgIH0KCiAgICAgICAgLnRvb2xiYXItYnV0dG9uIHsKICAgICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7CiAgICAgICAgICB3aWR0aDogMzJweDsKICAgICAgICAgIGhlaWdodDogMzJweDsKICAgICAgICAgIGJvcmRlcjogbm9uZTsKICAgICAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50OwogICAgICAgICAgY29sb3I6ICR7bS5iZFRoZW1lKCJoc2woMjE1IDE2JSA0NSUpIiwiaHNsKDIxNSAxNiUgNzUlKSIpfTsKICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDZweDsKICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjsKICAgICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjE1cyBlYXNlOwogICAgICAgIH0KCiAgICAgICAgLnRvb2xiYXItYnV0dG9uIGRlZXMtaWNvbiB7CiAgICAgICAgICBmb250LXNpemU6IDE2cHg7CiAgICAgICAgfQoKICAgICAgICAudG9vbGJhci1idXR0b246aG92ZXIgewogICAgICAgICAgYmFja2dyb3VuZDogJHttLmJkVGhlbWUoImhzbCgyMTQgMzElIDkyJSkiLCJoc2woMjE3IDI1JSAyMiUpIil9OwogICAgICAgICAgY29sb3I6ICR7bS5iZFRoZW1lKCIjMDkwOTBiIiwiI2ZhZmFmYSIpfTsKICAgICAgICB9CgogICAgICAgIC50b29sYmFyLWJ1dHRvbjphY3RpdmUgewogICAgICAgICAgYmFja2dyb3VuZDogJHttLmJkVGhlbWUoIiNlNWU3ZWIiLCIjM2YzZjQ2Iil9OwogICAgICAgIH0KCiAgICAgICAgLnpvb20tbGV2ZWwgewogICAgICAgICAgZm9udC1zaXplOiAxM3B4OwogICAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDsKICAgICAgICAgIG1pbi13aWR0aDogNDhweDsKICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjsKICAgICAgICAgIGNvbG9yOiAke20uYmRUaGVtZSgiaHNsKDIxNSAxNiUgNDUlKSIsImhzbCgyMTUgMTYlIDc1JSkiKX07CiAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICAgICAgfQoKICAgICAgICAuaW1hZ2UtYXJlYSB7CiAgICAgICAgICBmbGV4OiAxOwogICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgICAgICAgIGN1cnNvcjogJHt0aGlzLnpvb20+MT90aGlzLmlzRHJhZ2dpbmc/ImdyYWJiaW5nIjoiZ3JhYiI6ImRlZmF1bHQifTsKICAgICAgICB9CgogICAgICAgIC5jaGVja2VyYm9hcmQgewogICAgICAgICAgcG9zaXRpb246IGFic29sdXRlOwogICAgICAgICAgaW5zZXQ6IDA7CiAgICAgICAgICBiYWNrZ3JvdW5kLWltYWdlOgogICAgICAgICAgICBsaW5lYXItZ3JhZGllbnQoNDVkZWcsICR7bS5iZFRoZW1lKCIjZjBmMGYwIiwiIzFhMWExYSIpfSAyNSUsIHRyYW5zcGFyZW50IDI1JSksCiAgICAgICAgICAgIGxpbmVhci1ncmFkaWVudCgtNDVkZWcsICR7bS5iZFRoZW1lKCIjZjBmMGYwIiwiIzFhMWExYSIpfSAyNSUsIHRyYW5zcGFyZW50IDI1JSksCiAgICAgICAgICAgIGxpbmVhci1ncmFkaWVudCg0NWRlZywgdHJhbnNwYXJlbnQgNzUlLCAke20uYmRUaGVtZSgiI2YwZjBmMCIsIiMxYTFhMWEiKX0gNzUlKSwKICAgICAgICAgICAgbGluZWFyLWdyYWRpZW50KC00NWRlZywgdHJhbnNwYXJlbnQgNzUlLCAke20uYmRUaGVtZSgiI2YwZjBmMCIsIiMxYTFhMWEiKX0gNzUlKTsKICAgICAgICAgIGJhY2tncm91bmQtc2l6ZTogMTZweCAxNnB4OwogICAgICAgICAgYmFja2dyb3VuZC1wb3NpdGlvbjogMCAwLCAwIDhweCwgOHB4IC04cHgsIC04cHggMHB4OwogICAgICAgICAgb3BhY2l0eTogMC4zOwogICAgICAgIH0KCiAgICAgICAgLmltYWdlLXdyYXBwZXIgewogICAgICAgICAgcG9zaXRpb246IGFic29sdXRlOwogICAgICAgICAgaW5zZXQ6IDA7CiAgICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOwogICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoJHt0aGlzLnBhblh9cHgsICR7dGhpcy5wYW5ZfXB4KSBzY2FsZSgke3RoaXMuem9vbX0pOwogICAgICAgICAgdHJhbnNpdGlvbjogJHt0aGlzLmlzRHJhZ2dpbmc/Im5vbmUiOiJ0cmFuc2Zvcm0gMC4ycyBlYXNlIn07CiAgICAgICAgICB3aWxsLWNoYW5nZTogdHJhbnNmb3JtOwogICAgICAgIH0KCiAgICAgICAgLmltYWdlLXdyYXBwZXIgaW1nIHsKICAgICAgICAgIG1heC13aWR0aDogMTAwJTsKICAgICAgICAgIG1heC1oZWlnaHQ6IDEwMCU7CiAgICAgICAgICBvYmplY3QtZml0OiAke3RoaXMuZml0fTsKICAgICAgICAgIHVzZXItc2VsZWN0OiBub25lOwogICAgICAgICAgLXdlYmtpdC11c2VyLWRyYWc6IG5vbmU7CiAgICAgICAgfQoKICAgICAgICAuaW1hZ2Utd3JhcHBlciBpbWcuYWN0dWFsIHsKICAgICAgICAgIG1heC13aWR0aDogbm9uZTsKICAgICAgICAgIG1heC1oZWlnaHQ6IG5vbmU7CiAgICAgICAgICBvYmplY3QtZml0OiBub25lOwogICAgICAgIH0KCiAgICAgICAgLmxvYWRpbmctb3ZlcmxheSB7CiAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgICAgICBpbnNldDogMDsKICAgICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7CiAgICAgICAgICBiYWNrZ3JvdW5kOiAke20uYmRUaGVtZSgicmdiYSgyNTUsMjU1LDI1NSwwLjgpIiwicmdiYSgwLDAsMCwwLjYpIil9OwogICAgICAgIH0KCiAgICAgICAgLmxvYWRpbmctc3Bpbm5lciB7CiAgICAgICAgICB3aWR0aDogMzJweDsKICAgICAgICAgIGhlaWdodDogMzJweDsKICAgICAgICAgIGJvcmRlcjogM3B4IHNvbGlkICR7bS5iZFRoZW1lKCIjZTVlN2ViIiwiIzNmM2Y0NiIpfTsKICAgICAgICAgIGJvcmRlci10b3AtY29sb3I6ICR7bS5iZFRoZW1lKCIjM2I4MmY2IiwiIzYwYTVmYSIpfTsKICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDUwJTsKICAgICAgICAgIGFuaW1hdGlvbjogc3BpbiAwLjhzIGxpbmVhciBpbmZpbml0ZTsKICAgICAgICB9CgogICAgICAgIEBrZXlmcmFtZXMgc3BpbiB7CiAgICAgICAgICB0byB7IHRyYW5zZm9ybTogcm90YXRlKDM2MGRlZyk7IH0KICAgICAgICB9CgogICAgICAgIC5lcnJvci1vdmVybGF5IHsKICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgICAgIGluc2V0OiAwOwogICAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7CiAgICAgICAgICBnYXA6IDhweDsKICAgICAgICAgIGNvbG9yOiAke20uYmRUaGVtZSgiIzcxNzE3YSIsIiNhMWExYWEiKX07CiAgICAgICAgfQoKICAgICAgICAuZXJyb3Itb3ZlcmxheSAuZXJyb3ItaWNvbiB7CiAgICAgICAgICBjb2xvcjogJHttLmJkVGhlbWUoIiNkYzI2MjYiLCIjZjg3MTcxIil9OwogICAgICAgICAgZm9udC1zaXplOiAzMnB4OwogICAgICAgIH0KCiAgICAgICAgLmVycm9yLXRleHQgewogICAgICAgICAgZm9udC1zaXplOiAxM3B4OwogICAgICAgIH0KCiAgICAgICAgLmltYWdlLWluZm8gewogICAgICAgICAgZm9udC1zaXplOiAxMXB4OwogICAgICAgICAgY29sb3I6ICR7bS5iZFRoZW1lKCIjYTFhMWFhIiwiIzcxNzE3YSIpfTsKICAgICAgICAgIHBhZGRpbmc6IDAgNHB4OwogICAgICAgIH0KICAgICAgPC9zdHlsZT4KCiAgICAgIDxkaXYgY2xhc3M9InZpZXdlci1jb250YWluZXIiPgogICAgICAgICR7dGhpcy5zaG93VG9vbGJhcj9DYAogICAgICAgICAgPGRpdiBjbGFzcz0idG9vbGJhciI+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9InRvb2xiYXItZ3JvdXAiPgogICAgICAgICAgICAgIDxidXR0b24gY2xhc3M9InRvb2xiYXItYnV0dG9uIiBAY2xpY2s9JHt0aGlzLnpvb21PdXR9IHRpdGxlPSJab29tIG91dCI+CiAgICAgICAgICAgICAgICA8ZGVlcy1pY29uIGljb249Imx1Y2lkZTpab29tT3V0Ij48L2RlZXMtaWNvbj4KICAgICAgICAgICAgICA8L2J1dHRvbj4KICAgICAgICAgICAgICA8YnV0dG9uIGNsYXNzPSJ0b29sYmFyLWJ1dHRvbiIgQGNsaWNrPSR7dGhpcy5yZXNldFpvb219PgogICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9Inpvb20tbGV2ZWwiPiR7TWF0aC5yb3VuZCh0aGlzLnpvb20qMTAwKX0lPC9zcGFuPgogICAgICAgICAgICAgIDwvYnV0dG9uPgogICAgICAgICAgICAgIDxidXR0b24gY2xhc3M9InRvb2xiYXItYnV0dG9uIiBAY2xpY2s9JHt0aGlzLnpvb21Jbn0gdGl0bGU9Ilpvb20gaW4iPgogICAgICAgICAgICAgICAgPGRlZXMtaWNvbiBpY29uPSJsdWNpZGU6Wm9vbUluIj48L2RlZXMtaWNvbj4KICAgICAgICAgICAgICA8L2J1dHRvbj4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9InRvb2xiYXItZ3JvdXAiPgogICAgICAgICAgICAgIDxidXR0b24gY2xhc3M9InRvb2xiYXItYnV0dG9uIiBAY2xpY2s9JHt0aGlzLmZpdFRvU2NyZWVufSB0aXRsZT0iRml0IHRvIHNjcmVlbiI+CiAgICAgICAgICAgICAgICA8ZGVlcy1pY29uIGljb249Imx1Y2lkZTpNYXhpbWl6ZSI+PC9kZWVzLWljb24+CiAgICAgICAgICAgICAgPC9idXR0b24+CiAgICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz0idG9vbGJhci1idXR0b24iIEBjbGljaz0ke3RoaXMuYWN0dWFsU2l6ZX0gdGl0bGU9IkFjdHVhbCBzaXplICgxMDAlKSI+CiAgICAgICAgICAgICAgICA8ZGVlcy1pY29uIGljb249Imx1Y2lkZTpTY2FuIj48L2RlZXMtaWNvbj4KICAgICAgICAgICAgICA8L2J1dHRvbj4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9InRvb2xiYXItZ3JvdXAiPgogICAgICAgICAgICAgIDxidXR0b24gY2xhc3M9InRvb2xiYXItYnV0dG9uIiBAY2xpY2s9JHt0aGlzLmRvd25sb2FkfSB0aXRsZT0iRG93bmxvYWQiPgogICAgICAgICAgICAgICAgPGRlZXMtaWNvbiBpY29uPSJsdWNpZGU6RG93bmxvYWQiPjwvZGVlcy1pY29uPgogICAgICAgICAgICAgIDwvYnV0dG9uPgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgJHt0aGlzLmltYWdlTmF0dXJhbFdpZHRoPjA/Q2AKICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJ0b29sYmFyLWdyb3VwIj4KICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJpbWFnZS1pbmZvIj4ke3RoaXMuaW1hZ2VOYXR1cmFsV2lkdGh9IHggJHt0aGlzLmltYWdlTmF0dXJhbEhlaWdodH08L3NwYW4+CiAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIGA6IiJ9CiAgICAgICAgICA8L2Rpdj4KICAgICAgICBgOiIifQoKICAgICAgICA8ZGl2CiAgICAgICAgICBjbGFzcz0iaW1hZ2UtYXJlYSIKICAgICAgICAgIEB3aGVlbD0ke3RoaXMuaGFuZGxlV2hlZWx9CiAgICAgICAgICBAbW91c2Vkb3duPSR7dGhpcy5oYW5kbGVNb3VzZURvd259CiAgICAgICAgICBAbW91c2Vtb3ZlPSR7dGhpcy5oYW5kbGVNb3VzZU1vdmV9CiAgICAgICAgICBAbW91c2V1cD0ke3RoaXMuaGFuZGxlTW91c2VVcH0KICAgICAgICAgIEBtb3VzZWxlYXZlPSR7dGhpcy5oYW5kbGVNb3VzZVVwfQogICAgICAgICAgQGRibGNsaWNrPSR7dGhpcy5oYW5kbGVEb3VibGVDbGlja30KICAgICAgICA+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJjaGVja2VyYm9hcmQiPjwvZGl2PgogICAgICAgICAgPGRpdiBjbGFzcz0iaW1hZ2Utd3JhcHBlciI+CiAgICAgICAgICAgICR7dGhpcy5zcmM/Q2AKICAgICAgICAgICAgICA8aW1nCiAgICAgICAgICAgICAgICBjbGFzcz0iJHt0aGlzLmZpdD09PSJhY3R1YWwiPyJhY3R1YWwiOiIifSIKICAgICAgICAgICAgICAgIHNyYz0iJHt0aGlzLnNyY30iCiAgICAgICAgICAgICAgICBhbHQ9IiR7dGhpcy5hbHR9IgogICAgICAgICAgICAgICAgQGxvYWQ9JHt0aGlzLmhhbmRsZUltYWdlTG9hZH0KICAgICAgICAgICAgICAgIEBlcnJvcj0ke3RoaXMuaGFuZGxlSW1hZ2VFcnJvcn0KICAgICAgICAgICAgICAgIGRyYWdnYWJsZT0iZmFsc2UiCiAgICAgICAgICAgICAgLz4KICAgICAgICAgICAgYDoiIn0KICAgICAgICAgIDwvZGl2PgogICAgICAgICAgJHt0aGlzLmxvYWRpbmcmJnRoaXMuc3JjP0NgCiAgICAgICAgICAgIDxkaXYgY2xhc3M9ImxvYWRpbmctb3ZlcmxheSI+CiAgICAgICAgICAgICAgPGRpdiBjbGFzcz0ibG9hZGluZy1zcGlubmVyIj48L2Rpdj4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICBgOiIifQogICAgICAgICAgJHt0aGlzLmVycm9yP0NgCiAgICAgICAgICAgIDxkaXYgY2xhc3M9ImVycm9yLW92ZXJsYXkiPgogICAgICAgICAgICAgIDxkZWVzLWljb24gY2xhc3M9ImVycm9yLWljb24iIGljb249Imx1Y2lkZTpJbWFnZU9mZiI+PC9kZWVzLWljb24+CiAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVycm9yLXRleHQiPiR7dGhpcy5lcnJvcn08L3NwYW4+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgYDoiIn0KICAgICAgICA8L2Rpdj4KICAgICAgPC9kaXY+CiAgICBgfXpvb21Jbigpe3RoaXMuem9vbT1NYXRoLm1pbigxMCx0aGlzLnpvb20qMS4yNSl9em9vbU91dCgpe3RoaXMuem9vbT1NYXRoLm1heCguMSx0aGlzLnpvb20vMS4yNSksdGhpcy56b29tPD0xJiYodGhpcy5wYW5YPTAsdGhpcy5wYW5ZPTApfXJlc2V0Wm9vbSgpe3RoaXMuem9vbT0xLHRoaXMucGFuWD0wLHRoaXMucGFuWT0wfWZpdFRvU2NyZWVuKCl7dGhpcy56b29tPTEsdGhpcy5wYW5YPTAsdGhpcy5wYW5ZPTAsdGhpcy5maXQ9ImNvbnRhaW4ifWFjdHVhbFNpemUoKXt0aGlzLnpvb209MSx0aGlzLnBhblg9MCx0aGlzLnBhblk9MCx0aGlzLmZpdD0iYWN0dWFsIn1kb3dubG9hZCgpe2lmKCF0aGlzLnNyYylyZXR1cm47bGV0IFk9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiYSIpO1kuaHJlZj10aGlzLnNyYyxZLmRvd25sb2FkPXRoaXMuc3JjLnNwbGl0KCIvIikucG9wKCl8fCJpbWFnZSIsWS5jbGljaygpfWhhbmRsZUltYWdlTG9hZChZKXtsZXQgQT1ZLnRhcmdldDt0aGlzLmxvYWRpbmc9ITEsdGhpcy5lcnJvcj0iIix0aGlzLmltYWdlTmF0dXJhbFdpZHRoPUEubmF0dXJhbFdpZHRoLHRoaXMuaW1hZ2VOYXR1cmFsSGVpZ2h0PUEubmF0dXJhbEhlaWdodH1oYW5kbGVJbWFnZUVycm9yKCl7dGhpcy5sb2FkaW5nPSExLHRoaXMuZXJyb3I9IkZhaWxlZCB0byBsb2FkIGltYWdlIn1oYW5kbGVXaGVlbChZKXtZLnByZXZlbnREZWZhdWx0KCk7bGV0IEE9WS5kZWx0YVk+MD8uOToxLjEsTD1NYXRoLm1pbigxMCxNYXRoLm1heCguMSx0aGlzLnpvb20qQSkpO3RoaXMuem9vbT1MLHRoaXMuem9vbTw9MSYmKHRoaXMucGFuWD0wLHRoaXMucGFuWT0wKX1oYW5kbGVNb3VzZURvd24oWSl7dGhpcy56b29tPD0xfHwodGhpcy5pc0RyYWdnaW5nPSEwLHRoaXMuZHJhZ1N0YXJ0WD1ZLmNsaWVudFgsdGhpcy5kcmFnU3RhcnRZPVkuY2xpZW50WSx0aGlzLmRyYWdTdGFydFBhblg9dGhpcy5wYW5YLHRoaXMuZHJhZ1N0YXJ0UGFuWT10aGlzLnBhblkpfWhhbmRsZU1vdXNlTW92ZShZKXt0aGlzLmlzRHJhZ2dpbmcmJih0aGlzLnBhblg9dGhpcy5kcmFnU3RhcnRQYW5YKyhZLmNsaWVudFgtdGhpcy5kcmFnU3RhcnRYKSx0aGlzLnBhblk9dGhpcy5kcmFnU3RhcnRQYW5ZKyhZLmNsaWVudFktdGhpcy5kcmFnU3RhcnRZKSl9aGFuZGxlTW91c2VVcCgpe3RoaXMuaXNEcmFnZ2luZz0hMX1oYW5kbGVEb3VibGVDbGljaygpe3RoaXMuem9vbT09PTE/dGhpcy56b29tPTI6KHRoaXMuem9vbT0xLHRoaXMucGFuWD0wLHRoaXMucGFuWT0wKX11cGRhdGVkKFkpe3N1cGVyLnVwZGF0ZWQoWSksWS5oYXMoInNyYyIpJiYodGhpcy5sb2FkaW5nPSEwLHRoaXMuZXJyb3I9IiIsdGhpcy56b29tPTEsdGhpcy5wYW5YPTAsdGhpcy5wYW5ZPTAsdGhpcy5pbWFnZU5hdHVyYWxXaWR0aD0wLHRoaXMuaW1hZ2VOYXR1cmFsSGVpZ2h0PTApfXN0YXRpY3ttMShpLHIpfX07cmV0dXJuIGtlPWl9KSgpfSk7dmFyIGYzcj1wKCgpPT57Z2RlKCl9KTt2YXIgbTNyLGczcj1wKCgpPT57eGUoKTttM3I9KCk9PkNgCiAgPHN0eWxlPgogICAgLmRlbW8tY29udGFpbmVyIHsKICAgICAgcGFkZGluZzogNDhweDsKICAgICAgYmFja2dyb3VuZDogJHttLmJkVGhlbWUoIiNmOGY5ZmEiLCIjMGEwYTBhIil9OwogICAgICBkaXNwbGF5OiBmbGV4OwogICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICBnYXA6IDMycHg7CiAgICB9CgogICAgLnNlY3Rpb24gewogICAgICBtYXgtd2lkdGg6IDYwMHB4OwogICAgICB3aWR0aDogMTAwJTsKICAgICAgbWFyZ2luOiAwIGF1dG87CiAgICB9CgogICAgLnNlY3Rpb24tdGl0bGUgewogICAgICBmb250LXNpemU6IDE4cHg7CiAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7CiAgICAgIG1hcmdpbi1ib3R0b206IDhweDsKICAgICAgY29sb3I6ICR7bS5iZFRoZW1lKCIjMDkwOTBiIiwiI2ZhZmFmYSIpfTsKICAgIH0KCiAgICAuc2VjdGlvbi1kZXNjcmlwdGlvbiB7CiAgICAgIGZvbnQtc2l6ZTogMTRweDsKICAgICAgY29sb3I6ICR7bS5iZFRoZW1lKCIjNzE3MTdhIiwiI2ExYTFhYSIpfTsKICAgICAgbWFyZ2luLWJvdHRvbTogMTZweDsKICAgIH0KCiAgICBkZWVzLWF1ZGlvLXZpZXdlciB7CiAgICAgIGhlaWdodDogMjAwcHg7CiAgICAgIGJvcmRlcjogMXB4IHNvbGlkICR7bS5iZFRoZW1lKCIjZTVlN2ViIiwiIzI3MjcyYSIpfTsKICAgICAgYm9yZGVyLXJhZGl1czogOHB4OwogICAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgfQogIDwvc3R5bGU+CgogIDxkaXYgY2xhc3M9ImRlbW8tY29udGFpbmVyIj4KICAgIDxkaXYgY2xhc3M9InNlY3Rpb24iPgogICAgICA8ZGl2IGNsYXNzPSJzZWN0aW9uLXRpdGxlIj5BdWRpbyB3aXRoIFdhdmVmb3JtPC9kaXY+CiAgICAgIDxkaXYgY2xhc3M9InNlY3Rpb24tZGVzY3JpcHRpb24iPkF1ZGlvIHBsYXllciB3aXRoIHdhdmVmb3JtIHZpc3VhbGl6YXRpb24gYW5kIGZ1bGwgdHJhbnNwb3J0IGNvbnRyb2xzLjwvZGl2PgogICAgICA8ZGVlcy1hdWRpby12aWV3ZXIKICAgICAgICBzcmM9Imh0dHBzOi8vd3d3LnNvdW5kaGVsaXguY29tL2V4YW1wbGVzL21wMy9Tb3VuZEhlbGl4LVNvbmctMS5tcDMiCiAgICAgICAgdGl0bGU9IlNvdW5kSGVsaXggU29uZyAxIgogICAgICAgIGFydGlzdD0iVC4gU2NodWVyZ2VyIgogICAgICA+PC9kZWVzLWF1ZGlvLXZpZXdlcj4KICAgIDwvZGl2PgoKICAgIDxkaXYgY2xhc3M9InNlY3Rpb24iPgogICAgICA8ZGl2IGNsYXNzPSJzZWN0aW9uLXRpdGxlIj5BdWRpbyB3aXRob3V0IFdhdmVmb3JtPC9kaXY+CiAgICAgIDxkaXYgY2xhc3M9InNlY3Rpb24tZGVzY3JpcHRpb24iPlNpbXBsZSBhdWRpbyBwbGF5ZXIgd2l0aCBhIHNlZWtiYXIgaW5zdGVhZCBvZiBhIHdhdmVmb3JtLjwvZGl2PgogICAgICA8ZGVlcy1hdWRpby12aWV3ZXIKICAgICAgICBzcmM9Imh0dHBzOi8vd3d3LnNvdW5kaGVsaXguY29tL2V4YW1wbGVzL21wMy9Tb3VuZEhlbGl4LVNvbmctMi5tcDMiCiAgICAgICAgdGl0bGU9IlNvdW5kSGVsaXggU29uZyAyIgogICAgICAgIC5zaG93V2F2ZWZvcm09JHshMX0KICAgICAgPjwvZGVlcy1hdWRpby12aWV3ZXI+CiAgICA8L2Rpdj4KCiAgICA8ZGl2IGNsYXNzPSJzZWN0aW9uIj4KICAgICAgPGRpdiBjbGFzcz0ic2VjdGlvbi10aXRsZSI+TWluaW1hbCBBdWRpbyBQbGF5ZXI8L2Rpdj4KICAgICAgPGRpdiBjbGFzcz0ic2VjdGlvbi1kZXNjcmlwdGlvbiI+Tm8gdGl0bGUgb3IgYXJ0aXN0IG1ldGFkYXRhIOKAlCBqdXN0IHRoZSBwbGF5ZXIuPC9kaXY+CiAgICAgIDxkZWVzLWF1ZGlvLXZpZXdlcgogICAgICAgIHNyYz0iaHR0cHM6Ly93d3cuc291bmRoZWxpeC5jb20vZXhhbXBsZXMvbXAzL1NvdW5kSGVsaXgtU29uZy0zLm1wMyIKICAgICAgPjwvZGVlcy1hdWRpby12aWV3ZXI+CiAgICA8L2Rpdj4KICA8L2Rpdj4KYH0pO3ZhciBOYSxUcixiM3IsYmRlPXAoKCk9Pnt4ZSgpO29yKCk7ZzNyKCk7TmE9ZnVuY3Rpb24oZSx0LHIsaSxhLG4pe2Z1bmN0aW9uIG8oeSl7aWYoeSE9PXZvaWQgMCYmdHlwZW9mIHkhPSJmdW5jdGlvbiIpdGhyb3cgbmV3IFR5cGVFcnJvcigiRnVuY3Rpb24gZXhwZWN0ZWQiKTtyZXR1cm4geX1mb3IodmFyIHM9aS5raW5kLGw9cz09PSJnZXR0ZXIiPyJnZXQiOnM9PT0ic2V0dGVyIj8ic2V0IjoidmFsdWUiLGM9IXQmJmU/aS5zdGF0aWM/ZTplLnByb3RvdHlwZTpudWxsLHU9dHx8KGM/T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihjLGkubmFtZSk6e30pLGQsaD0hMSxmPXIubGVuZ3RoLTE7Zj49MDtmLS0pe3ZhciB4PXt9O2Zvcih2YXIgdiBpbiBpKXhbdl09dj09PSJhY2Nlc3MiP3t9Omlbdl07Zm9yKHZhciB2IGluIGkuYWNjZXNzKXguYWNjZXNzW3ZdPWkuYWNjZXNzW3ZdO3guYWRkSW5pdGlhbGl6ZXI9ZnVuY3Rpb24oeSl7aWYoaCl0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgYWRkIGluaXRpYWxpemVycyBhZnRlciBkZWNvcmF0aW9uIGhhcyBjb21wbGV0ZWQiKTtuLnB1c2gobyh5fHxudWxsKSl9O3ZhciBiPSgwLHJbZl0pKHM9PT0iYWNjZXNzb3IiP3tnZXQ6dS5nZXQsc2V0OnUuc2V0fTp1W2xdLHgpO2lmKHM9PT0iYWNjZXNzb3IiKXtpZihiPT09dm9pZCAwKWNvbnRpbnVlO2lmKGI9PT1udWxsfHx0eXBlb2YgYiE9Im9iamVjdCIpdGhyb3cgbmV3IFR5cGVFcnJvcigiT2JqZWN0IGV4cGVjdGVkIik7KGQ9byhiLmdldCkpJiYodS5nZXQ9ZCksKGQ9byhiLnNldCkpJiYodS5zZXQ9ZCksKGQ9byhiLmluaXQpKSYmYS51bnNoaWZ0KGQpfWVsc2UoZD1vKGIpKSYmKHM9PT0iZmllbGQiP2EudW5zaGlmdChkKTp1W2xdPWQpfWMmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShjLGkubmFtZSx1KSxoPSEwfSxUcj1mdW5jdGlvbihlLHQscil7Zm9yKHZhciBpPWFyZ3VtZW50cy5sZW5ndGg+MixhPTA7YTx0Lmxlbmd0aDthKyspcj1pP3RbYV0uY2FsbChlLHIpOnRbYV0uY2FsbChlKTtyZXR1cm4gaT9yOnZvaWQgMH0sYjNyPSgoKT0+e2xldCBlPVt5ZSgiZGVlcy1hdWRpby12aWV3ZXIiKV0sdCxyPVtdLGksYT16ZSxuLG89W10scz1bXSxsLGM9W10sdT1bXSxkLGg9W10sZj1bXSx4LHY9W10sYj1bXSx5LHc9W10saz1bXSxPLHo9W10sTT1bXSxGLEQ9W10sTj1bXSxSLF89W10sUz1bXSwkLFQ9W10sRT1bXSxxLEI9W10sRz1bXSxlZSxQPVtdLGdlPVtdLHdlLEk9W10sbmU9W10sa2UsWT1bXSxBPVtdLEwsVT1bXSxWPVtdLFgsZGU9W10sdmU9W107dmFyIExlPWNsYXNzIGV4dGVuZHMgYXtzdGF0aWN7aT10aGlzfXN0YXRpY3tsZXQgVz10eXBlb2YgU3ltYm9sPT0iZnVuY3Rpb24iJiZTeW1ib2wubWV0YWRhdGE/T2JqZWN0LmNyZWF0ZShhW1N5bWJvbC5tZXRhZGF0YV0/P251bGwpOnZvaWQgMDtuPVtqKCldLGw9W2ooKV0sZD1baigpXSx4PVtqKHt0eXBlOkJvb2xlYW59KV0seT1baih7dHlwZTpCb29sZWFufSldLE89W2ooe3R5cGU6Qm9vbGVhbn0pXSxGPVtmZSgpXSxSPVtmZSgpXSwkPVtmZSgpXSxxPVtmZSgpXSxlZT1bZmUoKV0sd2U9W2ZlKCldLGtlPVtmZSgpXSxMPVtmZSgpXSxYPVtmZSgpXSxOYSh0aGlzLG51bGwsbix7a2luZDoiYWNjZXNzb3IiLG5hbWU6InNyYyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6SD0+InNyYyJpbiBILGdldDpIPT5ILnNyYyxzZXQ6KEgsdGUpPT57SC5zcmM9dGV9fSxtZXRhZGF0YTpXfSxvLHMpLE5hKHRoaXMsbnVsbCxsLHtraW5kOiJhY2Nlc3NvciIsbmFtZToidGl0bGUiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOkg9PiJ0aXRsZSJpbiBILGdldDpIPT5ILnRpdGxlLHNldDooSCx0ZSk9PntILnRpdGxlPXRlfX0sbWV0YWRhdGE6V30sYyx1KSxOYSh0aGlzLG51bGwsZCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImFydGlzdCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6SD0+ImFydGlzdCJpbiBILGdldDpIPT5ILmFydGlzdCxzZXQ6KEgsdGUpPT57SC5hcnRpc3Q9dGV9fSxtZXRhZGF0YTpXfSxoLGYpLE5hKHRoaXMsbnVsbCx4LHtraW5kOiJhY2Nlc3NvciIsbmFtZToic2hvd1dhdmVmb3JtIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpIPT4ic2hvd1dhdmVmb3JtImluIEgsZ2V0Okg9Pkguc2hvd1dhdmVmb3JtLHNldDooSCx0ZSk9PntILnNob3dXYXZlZm9ybT10ZX19LG1ldGFkYXRhOld9LHYsYiksTmEodGhpcyxudWxsLHkse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJhdXRvcGxheSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6SD0+ImF1dG9wbGF5ImluIEgsZ2V0Okg9PkguYXV0b3BsYXksc2V0OihILHRlKT0+e0guYXV0b3BsYXk9dGV9fSxtZXRhZGF0YTpXfSx3LGspLE5hKHRoaXMsbnVsbCxPLHtraW5kOiJhY2Nlc3NvciIsbmFtZToibG9vcCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6SD0+Imxvb3AiaW4gSCxnZXQ6SD0+SC5sb29wLHNldDooSCx0ZSk9PntILmxvb3A9dGV9fSxtZXRhZGF0YTpXfSx6LE0pLE5hKHRoaXMsbnVsbCxGLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiaXNQbGF5aW5nIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpIPT4iaXNQbGF5aW5nImluIEgsZ2V0Okg9PkguaXNQbGF5aW5nLHNldDooSCx0ZSk9PntILmlzUGxheWluZz10ZX19LG1ldGFkYXRhOld9LEQsTiksTmEodGhpcyxudWxsLFIse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJjdXJyZW50VGltZSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6SD0+ImN1cnJlbnRUaW1lImluIEgsZ2V0Okg9PkguY3VycmVudFRpbWUsc2V0OihILHRlKT0+e0guY3VycmVudFRpbWU9dGV9fSxtZXRhZGF0YTpXfSxfLFMpLE5hKHRoaXMsbnVsbCwkLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiZHVyYXRpb24iLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOkg9PiJkdXJhdGlvbiJpbiBILGdldDpIPT5ILmR1cmF0aW9uLHNldDooSCx0ZSk9PntILmR1cmF0aW9uPXRlfX0sbWV0YWRhdGE6V30sVCxFKSxOYSh0aGlzLG51bGwscSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InZvbHVtZSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6SD0+InZvbHVtZSJpbiBILGdldDpIPT5ILnZvbHVtZSxzZXQ6KEgsdGUpPT57SC52b2x1bWU9dGV9fSxtZXRhZGF0YTpXfSxCLEcpLE5hKHRoaXMsbnVsbCxlZSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImlzTXV0ZWQiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOkg9PiJpc011dGVkImluIEgsZ2V0Okg9PkguaXNNdXRlZCxzZXQ6KEgsdGUpPT57SC5pc011dGVkPXRlfX0sbWV0YWRhdGE6V30sUCxnZSksTmEodGhpcyxudWxsLHdlLHtraW5kOiJhY2Nlc3NvciIsbmFtZToibG9hZGluZyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6SD0+ImxvYWRpbmciaW4gSCxnZXQ6SD0+SC5sb2FkaW5nLHNldDooSCx0ZSk9PntILmxvYWRpbmc9dGV9fSxtZXRhZGF0YTpXfSxJLG5lKSxOYSh0aGlzLG51bGwsa2Use2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJlcnJvciIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6SD0+ImVycm9yImluIEgsZ2V0Okg9PkguZXJyb3Isc2V0OihILHRlKT0+e0guZXJyb3I9dGV9fSxtZXRhZGF0YTpXfSxZLEEpLE5hKHRoaXMsbnVsbCxMLHtraW5kOiJhY2Nlc3NvciIsbmFtZToid2F2ZWZvcm1EYXRhIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpIPT4id2F2ZWZvcm1EYXRhImluIEgsZ2V0Okg9Pkgud2F2ZWZvcm1EYXRhLHNldDooSCx0ZSk9PntILndhdmVmb3JtRGF0YT10ZX19LG1ldGFkYXRhOld9LFUsViksTmEodGhpcyxudWxsLFgse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJ3YXZlZm9ybVJlYWR5IixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpIPT4id2F2ZWZvcm1SZWFkeSJpbiBILGdldDpIPT5ILndhdmVmb3JtUmVhZHksc2V0OihILHRlKT0+e0gud2F2ZWZvcm1SZWFkeT10ZX19LG1ldGFkYXRhOld9LGRlLHZlKSxOYShudWxsLHQ9e3ZhbHVlOml9LGUse2tpbmQ6ImNsYXNzIixuYW1lOmkubmFtZSxtZXRhZGF0YTpXfSxudWxsLHIpLExlPWk9dC52YWx1ZSxXJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoaSxTeW1ib2wubWV0YWRhdGEse2VudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwLHZhbHVlOld9KX1zdGF0aWMgZGVtbz1tM3I7c3RhdGljIGRlbW9Hcm91cHM9WyJNZWRpYSJdOyNlPVRyKHRoaXMsbywiIik7Z2V0IHNyYygpe3JldHVybiB0aGlzLiNlfXNldCBzcmMoVyl7dGhpcy4jZT1XfSN0PShUcih0aGlzLHMpLFRyKHRoaXMsYywiIikpO2dldCB0aXRsZSgpe3JldHVybiB0aGlzLiN0fXNldCB0aXRsZShXKXt0aGlzLiN0PVd9I3I9KFRyKHRoaXMsdSksVHIodGhpcyxoLCIiKSk7Z2V0IGFydGlzdCgpe3JldHVybiB0aGlzLiNyfXNldCBhcnRpc3QoVyl7dGhpcy4jcj1XfSNpPShUcih0aGlzLGYpLFRyKHRoaXMsdiwhMCkpO2dldCBzaG93V2F2ZWZvcm0oKXtyZXR1cm4gdGhpcy4jaX1zZXQgc2hvd1dhdmVmb3JtKFcpe3RoaXMuI2k9V30jYT0oVHIodGhpcyxiKSxUcih0aGlzLHcsITEpKTtnZXQgYXV0b3BsYXkoKXtyZXR1cm4gdGhpcy4jYX1zZXQgYXV0b3BsYXkoVyl7dGhpcy4jYT1XfSNuPShUcih0aGlzLGspLFRyKHRoaXMseiwhMSkpO2dldCBsb29wKCl7cmV0dXJuIHRoaXMuI259c2V0IGxvb3AoVyl7dGhpcy4jbj1XfSNvPShUcih0aGlzLE0pLFRyKHRoaXMsRCwhMSkpO2dldCBpc1BsYXlpbmcoKXtyZXR1cm4gdGhpcy4jb31zZXQgaXNQbGF5aW5nKFcpe3RoaXMuI289V30jcz0oVHIodGhpcyxOKSxUcih0aGlzLF8sMCkpO2dldCBjdXJyZW50VGltZSgpe3JldHVybiB0aGlzLiNzfXNldCBjdXJyZW50VGltZShXKXt0aGlzLiNzPVd9I2w9KFRyKHRoaXMsUyksVHIodGhpcyxULDApKTtnZXQgZHVyYXRpb24oKXtyZXR1cm4gdGhpcy4jbH1zZXQgZHVyYXRpb24oVyl7dGhpcy4jbD1XfSNjPShUcih0aGlzLEUpLFRyKHRoaXMsQiwxKSk7Z2V0IHZvbHVtZSgpe3JldHVybiB0aGlzLiNjfXNldCB2b2x1bWUoVyl7dGhpcy4jYz1XfSNkPShUcih0aGlzLEcpLFRyKHRoaXMsUCwhMSkpO2dldCBpc011dGVkKCl7cmV0dXJuIHRoaXMuI2R9c2V0IGlzTXV0ZWQoVyl7dGhpcy4jZD1XfSN1PShUcih0aGlzLGdlKSxUcih0aGlzLEksITEpKTtnZXQgbG9hZGluZygpe3JldHVybiB0aGlzLiN1fXNldCBsb2FkaW5nKFcpe3RoaXMuI3U9V30jcD0oVHIodGhpcyxuZSksVHIodGhpcyxZLCIiKSk7Z2V0IGVycm9yKCl7cmV0dXJuIHRoaXMuI3B9c2V0IGVycm9yKFcpe3RoaXMuI3A9V30jaD0oVHIodGhpcyxBKSxUcih0aGlzLFUsW10pKTtnZXQgd2F2ZWZvcm1EYXRhKCl7cmV0dXJuIHRoaXMuI2h9c2V0IHdhdmVmb3JtRGF0YShXKXt0aGlzLiNoPVd9I2Y9KFRyKHRoaXMsViksVHIodGhpcyxkZSwhMSkpO2dldCB3YXZlZm9ybVJlYWR5KCl7cmV0dXJuIHRoaXMuI2Z9c2V0IHdhdmVmb3JtUmVhZHkoVyl7dGhpcy4jZj1XfWF1ZGlvRWxlbWVudD0oVHIodGhpcyx2ZSksbnVsbCk7Y2FudmFzRWxlbWVudD1udWxsO2FuaW1GcmFtZUlkPTA7dm9sdW1lQmVmb3JlTXV0ZT0xO3JlbmRlcigpe2xldCBXPXRoaXMudGl0bGUmJnRoaXMuYXJ0aXN0P2Ake3RoaXMudGl0bGV9IFx1MjAxNCAke3RoaXMuYXJ0aXN0fWA6dGhpcy50aXRsZXx8dGhpcy5hcnRpc3R8fCIiO3JldHVybiBDYAogICAgICA8c3R5bGU+CiAgICAgICAgOmhvc3QgewogICAgICAgICAgZGlzcGxheTogYmxvY2s7CiAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgICAgICB3aWR0aDogMTAwJTsKICAgICAgICAgIGhlaWdodDogMTAwJTsKICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47CiAgICAgICAgICBmb250LWZhbWlseTogLWFwcGxlLXN5c3RlbSwgQmxpbmtNYWNTeXN0ZW1Gb250LCAnU2Vnb2UgVUknLCBSb2JvdG8sIHNhbnMtc2VyaWY7CiAgICAgICAgfQoKICAgICAgICAudmlld2VyLWNvbnRhaW5lciB7CiAgICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgICAgIGhlaWdodDogMTAwJTsKICAgICAgICAgIGJhY2tncm91bmQ6ICR7bS5iZFRoZW1lKCJoc2woMCAwJSA5NyUpIiwiaHNsKDIxNSAyMCUgMTAlKSIpfTsKICAgICAgICB9CgogICAgICAgIC50b29sYmFyIHsKICAgICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgICAgZ2FwOiAxNnB4OwogICAgICAgICAgcGFkZGluZzogMCAxNnB4OwogICAgICAgICAgaGVpZ2h0OiA0OHB4OwogICAgICAgICAgYmFja2dyb3VuZDogJHttLmJkVGhlbWUoIiNmZmZmZmYiLCJoc2woMjE1IDIwJSAxNSUpIil9OwogICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICR7bS5iZFRoZW1lKCIjZTVlN2ViIiwiaHNsKDIxNyAyNSUgMjIlKSIpfTsKICAgICAgICAgIGZsZXgtc2hyaW5rOiAwOwogICAgICAgIH0KCiAgICAgICAgLnRvb2xiYXItZ3JvdXAgewogICAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgICBnYXA6IDRweDsKICAgICAgICB9CgogICAgICAgIC50b29sYmFyLWdyb3VwLS1lbmQgewogICAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgICBnYXA6IDRweDsKICAgICAgICAgIG1hcmdpbi1sZWZ0OiBhdXRvOwogICAgICAgIH0KCiAgICAgICAgLnRvb2xiYXItYnV0dG9uIHsKICAgICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7CiAgICAgICAgICB3aWR0aDogMzJweDsKICAgICAgICAgIGhlaWdodDogMzJweDsKICAgICAgICAgIGJvcmRlcjogbm9uZTsKICAgICAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50OwogICAgICAgICAgY29sb3I6ICR7bS5iZFRoZW1lKCJoc2woMjE1IDE2JSA0NSUpIiwiaHNsKDIxNSAxNiUgNzUlKSIpfTsKICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDZweDsKICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjsKICAgICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjE1cyBlYXNlOwogICAgICAgICAgZmxleC1zaHJpbms6IDA7CiAgICAgICAgfQoKICAgICAgICAudG9vbGJhci1idXR0b24gZGVlcy1pY29uIHsKICAgICAgICAgIGZvbnQtc2l6ZTogMTZweDsKICAgICAgICB9CgogICAgICAgIC50b29sYmFyLWJ1dHRvbjpob3ZlciB7CiAgICAgICAgICBiYWNrZ3JvdW5kOiAke20uYmRUaGVtZSgiaHNsKDIxNCAzMSUgOTIlKSIsImhzbCgyMTcgMjUlIDIyJSkiKX07CiAgICAgICAgICBjb2xvcjogJHttLmJkVGhlbWUoIiMwOTA5MGIiLCIjZmFmYWZhIil9OwogICAgICAgIH0KCiAgICAgICAgLnRvb2xiYXItYnV0dG9uOmFjdGl2ZSB7CiAgICAgICAgICBiYWNrZ3JvdW5kOiAke20uYmRUaGVtZSgiI2U1ZTdlYiIsIiMzZjNmNDYiKX07CiAgICAgICAgfQoKICAgICAgICAudG9vbGJhci1idXR0b24uYWN0aXZlIHsKICAgICAgICAgIGNvbG9yOiAke20uYmRUaGVtZSgiaHNsKDIxNyA5MSUgNjAlKSIsImhzbCgyMTMgOTMlIDY4JSkiKX07CiAgICAgICAgfQoKICAgICAgICAudG9vbGJhci10aXRsZSB7CiAgICAgICAgICBmb250LXNpemU6IDEzcHg7CiAgICAgICAgICBmb250LXdlaWdodDogNTAwOwogICAgICAgICAgY29sb3I6ICR7bS5iZFRoZW1lKCJoc2woMjE1IDE2JSA0NSUpIiwiaHNsKDIxNSAxNiUgNzUlKSIpfTsKICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47CiAgICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpczsKICAgICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7CiAgICAgICAgICBtaW4td2lkdGg6IDA7CiAgICAgICAgfQoKICAgICAgICAudGltZS1kaXNwbGF5IHsKICAgICAgICAgIGZvbnQtc2l6ZTogMTNweDsKICAgICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7CiAgICAgICAgICBmb250LXZhcmlhbnQtbnVtZXJpYzogdGFidWxhci1udW1zOwogICAgICAgICAgY29sb3I6ICR7bS5iZFRoZW1lKCJoc2woMjE1IDE2JSA0NSUpIiwiaHNsKDIxNSAxNiUgNzUlKSIpfTsKICAgICAgICAgIG1pbi13aWR0aDogOTBweDsKICAgICAgICAgIGZsZXgtc2hyaW5rOiAwOwogICAgICAgIH0KCiAgICAgICAgLnZvbHVtZS1ncm91cCB7CiAgICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICAgIGdhcDogNHB4OwogICAgICAgIH0KCiAgICAgICAgLnZvbHVtZS1zbGlkZXIgewogICAgICAgICAgd2lkdGg6IDcwcHg7CiAgICAgICAgICBoZWlnaHQ6IDRweDsKICAgICAgICAgIC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTsKICAgICAgICAgIGFwcGVhcmFuY2U6IG5vbmU7CiAgICAgICAgICBiYWNrZ3JvdW5kOiAke20uYmRUaGVtZSgiaHNsKDIxNCAzMSUgOTElKSIsImhzbCgyMTcgMjUlIDIyJSkiKX07CiAgICAgICAgICBib3JkZXItcmFkaXVzOiAycHg7CiAgICAgICAgICBvdXRsaW5lOiBub25lOwogICAgICAgICAgY3Vyc29yOiBwb2ludGVyOwogICAgICAgIH0KCiAgICAgICAgLnZvbHVtZS1zbGlkZXI6Oi13ZWJraXQtc2xpZGVyLXRodW1iIHsKICAgICAgICAgIC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTsKICAgICAgICAgIHdpZHRoOiAxMnB4OwogICAgICAgICAgaGVpZ2h0OiAxMnB4OwogICAgICAgICAgYm9yZGVyLXJhZGl1czogNTAlOwogICAgICAgICAgYmFja2dyb3VuZDogJHttLmJkVGhlbWUoImhzbCgyMTcgOTElIDYwJSkiLCJoc2woMjEzIDkzJSA2OCUpIil9OwogICAgICAgICAgY3Vyc29yOiBwb2ludGVyOwogICAgICAgIH0KCiAgICAgICAgLnZvbHVtZS1zbGlkZXI6Oi1tb3otcmFuZ2UtdGh1bWIgewogICAgICAgICAgd2lkdGg6IDEycHg7CiAgICAgICAgICBoZWlnaHQ6IDEycHg7CiAgICAgICAgICBib3JkZXItcmFkaXVzOiA1MCU7CiAgICAgICAgICBiYWNrZ3JvdW5kOiAke20uYmRUaGVtZSgiaHNsKDIxNyA5MSUgNjAlKSIsImhzbCgyMTMgOTMlIDY4JSkiKX07CiAgICAgICAgICBib3JkZXI6IG5vbmU7CiAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICAgICAgfQoKICAgICAgICAuY29udGVudC1hcmVhIHsKICAgICAgICAgIGZsZXg6IDE7CiAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKICAgICAgICB9CgogICAgICAgIC53YXZlZm9ybS1jb250YWluZXIgewogICAgICAgICAgcG9zaXRpb246IGFic29sdXRlOwogICAgICAgICAgaW5zZXQ6IDA7CiAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgICAgIH0KCiAgICAgICAgLndhdmVmb3JtLWNvbnRhaW5lciBjYW52YXMgewogICAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgICAgICBoZWlnaHQ6IDEwMCU7CiAgICAgICAgICBkaXNwbGF5OiBibG9jazsKICAgICAgICB9CgogICAgICAgIC5zZWVrYmFyLWNvbnRhaW5lciB7CiAgICAgICAgICB3aWR0aDogODAlOwogICAgICAgICAgbWF4LXdpZHRoOiA2MDBweDsKICAgICAgICAgIGhlaWdodDogNnB4OwogICAgICAgICAgY3Vyc29yOiBwb2ludGVyOwogICAgICAgICAgYm9yZGVyLXJhZGl1czogM3B4OwogICAgICAgICAgYmFja2dyb3VuZDogJHttLmJkVGhlbWUoImhzbCgyMTQgMzElIDkxJSkiLCJoc2woMjE3IDI1JSAyMiUpIil9OwogICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgICAgICB9CgogICAgICAgIC5zZWVrYmFyLWZpbGwgewogICAgICAgICAgaGVpZ2h0OiAxMDAlOwogICAgICAgICAgYmFja2dyb3VuZDogJHttLmJkVGhlbWUoImhzbCgyMTcgOTElIDYwJSkiLCJoc2woMjEzIDkzJSA2OCUpIil9OwogICAgICAgICAgYm9yZGVyLXJhZGl1czogM3B4OwogICAgICAgICAgdHJhbnNpdGlvbjogd2lkdGggMC4xcyBsaW5lYXI7CiAgICAgICAgfQoKICAgICAgICAuZXJyb3Itb3ZlcmxheSB7CiAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgICAgICBpbnNldDogMDsKICAgICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOwogICAgICAgICAgZ2FwOiA4cHg7CiAgICAgICAgICBjb2xvcjogJHttLmJkVGhlbWUoIiM3MTcxN2EiLCIjYTFhMWFhIil9OwogICAgICAgIH0KCiAgICAgICAgLmVycm9yLW92ZXJsYXkgLmVycm9yLWljb24gewogICAgICAgICAgY29sb3I6ICR7bS5iZFRoZW1lKCIjZGMyNjI2IiwiI2Y4NzE3MSIpfTsKICAgICAgICAgIGZvbnQtc2l6ZTogMzJweDsKICAgICAgICB9CgogICAgICAgIC5lcnJvci10ZXh0IHsKICAgICAgICAgIGZvbnQtc2l6ZTogMTNweDsKICAgICAgICB9CgogICAgICAgIC5sb2FkaW5nLW92ZXJsYXkgewogICAgICAgICAgcG9zaXRpb246IGFic29sdXRlOwogICAgICAgICAgaW5zZXQ6IDA7CiAgICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOwogICAgICAgIH0KCiAgICAgICAgLmxvYWRpbmctc3Bpbm5lciB7CiAgICAgICAgICB3aWR0aDogMzJweDsKICAgICAgICAgIGhlaWdodDogMzJweDsKICAgICAgICAgIGJvcmRlcjogM3B4IHNvbGlkICR7bS5iZFRoZW1lKCJoc2woMjE0IDMxJSA4NiUpIiwiaHNsKDIxNyAyNSUgMjglKSIpfTsKICAgICAgICAgIGJvcmRlci10b3AtY29sb3I6ICR7bS5iZFRoZW1lKCJoc2woMjE3IDkxJSA2MCUpIiwiaHNsKDIxMyA5MyUgNjglKSIpfTsKICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDUwJTsKICAgICAgICAgIGFuaW1hdGlvbjogc3BpbiAwLjhzIGxpbmVhciBpbmZpbml0ZTsKICAgICAgICB9CgogICAgICAgIEBrZXlmcmFtZXMgc3BpbiB7CiAgICAgICAgICB0byB7IHRyYW5zZm9ybTogcm90YXRlKDM2MGRlZyk7IH0KICAgICAgICB9CiAgICAgIDwvc3R5bGU+CgogICAgICA8ZGl2IGNsYXNzPSJ2aWV3ZXItY29udGFpbmVyIj4KICAgICAgICA8ZGl2IGNsYXNzPSJ0b29sYmFyIj4KICAgICAgICAgIDxkaXYgY2xhc3M9InRvb2xiYXItZ3JvdXAiPgogICAgICAgICAgICA8YnV0dG9uIGNsYXNzPSJ0b29sYmFyLWJ1dHRvbiIgQGNsaWNrPSR7dGhpcy50b2dnbGVQbGF5fT4KICAgICAgICAgICAgICA8ZGVlcy1pY29uIGljb249Imx1Y2lkZToke3RoaXMuaXNQbGF5aW5nPyJQYXVzZSI6IlBsYXkifSI+PC9kZWVzLWljb24+CiAgICAgICAgICAgIDwvYnV0dG9uPgogICAgICAgICAgICA8c3BhbiBjbGFzcz0idGltZS1kaXNwbGF5Ij4KICAgICAgICAgICAgICAke3RoaXMuZm9ybWF0VGltZSh0aGlzLmN1cnJlbnRUaW1lKX0gLyAke3RoaXMuZm9ybWF0VGltZSh0aGlzLmR1cmF0aW9uKX0KICAgICAgICAgICAgPC9zcGFuPgogICAgICAgICAgPC9kaXY+CgogICAgICAgICAgJHtXP0NgCiAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJ0b29sYmFyLXRpdGxlIj4ke1d9PC9zcGFuPgogICAgICAgICAgYDoiIn0KCiAgICAgICAgICA8ZGl2IGNsYXNzPSJ0b29sYmFyLWdyb3VwLS1lbmQiPgogICAgICAgICAgICA8YnV0dG9uCiAgICAgICAgICAgICAgY2xhc3M9InRvb2xiYXItYnV0dG9uICR7dGhpcy5sb29wPyJhY3RpdmUiOiIifSIKICAgICAgICAgICAgICBAY2xpY2s9JHt0aGlzLnRvZ2dsZUxvb3B9CiAgICAgICAgICAgICAgdGl0bGU9Ikxvb3AiCiAgICAgICAgICAgID4KICAgICAgICAgICAgICA8ZGVlcy1pY29uIGljb249Imx1Y2lkZTpSZXBlYXQiPjwvZGVlcy1pY29uPgogICAgICAgICAgICA8L2J1dHRvbj4KCiAgICAgICAgICAgIDxkaXYgY2xhc3M9InZvbHVtZS1ncm91cCI+CiAgICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz0idG9vbGJhci1idXR0b24iIEBjbGljaz0ke3RoaXMudG9nZ2xlTXV0ZX0gdGl0bGU9IiR7dGhpcy5pc011dGVkPyJVbm11dGUiOiJNdXRlIn0iPgogICAgICAgICAgICAgICAgPGRlZXMtaWNvbiBpY29uPSJsdWNpZGU6JHt0aGlzLmlzTXV0ZWR8fHRoaXMudm9sdW1lPT09MD8iVm9sdW1lWCI6dGhpcy52b2x1bWU8LjU/IlZvbHVtZTEiOiJWb2x1bWUyIn0iPjwvZGVlcy1pY29uPgogICAgICAgICAgICAgIDwvYnV0dG9uPgogICAgICAgICAgICAgIDxpbnB1dAogICAgICAgICAgICAgICAgY2xhc3M9InZvbHVtZS1zbGlkZXIiCiAgICAgICAgICAgICAgICB0eXBlPSJyYW5nZSIKICAgICAgICAgICAgICAgIG1pbj0iMCIKICAgICAgICAgICAgICAgIG1heD0iMSIKICAgICAgICAgICAgICAgIHN0ZXA9IjAuMDEiCiAgICAgICAgICAgICAgICAudmFsdWU9JHtTdHJpbmcodGhpcy5pc011dGVkPzA6dGhpcy52b2x1bWUpfQogICAgICAgICAgICAgICAgQGlucHV0PSR7dGhpcy5oYW5kbGVWb2x1bWVDaGFuZ2V9CiAgICAgICAgICAgICAgLz4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICA8L2Rpdj4KCiAgICAgICAgPGRpdiBjbGFzcz0iY29udGVudC1hcmVhIj4KICAgICAgICAgICR7dGhpcy5lcnJvcj9DYAogICAgICAgICAgICA8ZGl2IGNsYXNzPSJlcnJvci1vdmVybGF5Ij4KICAgICAgICAgICAgICA8ZGVlcy1pY29uIGNsYXNzPSJlcnJvci1pY29uIiBpY29uPSJsdWNpZGU6TXVzaWNPZmYiPjwvZGVlcy1pY29uPgogICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlcnJvci10ZXh0Ij4ke3RoaXMuZXJyb3J9PC9zcGFuPgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIGA6dGhpcy5sb2FkaW5nP0NgCiAgICAgICAgICAgIDxkaXYgY2xhc3M9ImxvYWRpbmctb3ZlcmxheSI+CiAgICAgICAgICAgICAgPGRpdiBjbGFzcz0ibG9hZGluZy1zcGlubmVyIj48L2Rpdj4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICBgOnRoaXMuc2hvd1dhdmVmb3JtP0NgCiAgICAgICAgICAgIDxkaXYgY2xhc3M9IndhdmVmb3JtLWNvbnRhaW5lciIgQGNsaWNrPSR7dGhpcy5oYW5kbGVXYXZlZm9ybUNsaWNrfT4KICAgICAgICAgICAgICA8Y2FudmFzPjwvY2FudmFzPgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIGA6Q2AKICAgICAgICAgICAgPGRpdiBjbGFzcz0ic2Vla2Jhci1jb250YWluZXIiIEBjbGljaz0ke3RoaXMuaGFuZGxlU2Vla2JhckNsaWNrfT4KICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJzZWVrYmFyLWZpbGwiIHN0eWxlPSJ3aWR0aDogJHt0aGlzLmR1cmF0aW9uP3RoaXMuY3VycmVudFRpbWUvdGhpcy5kdXJhdGlvbioxMDA6MH0lIj48L2Rpdj4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICBgfQogICAgICAgIDwvZGl2PgogICAgICA8L2Rpdj4KICAgIGB9YXN5bmMgY29ubmVjdGVkQ2FsbGJhY2soKXthd2FpdCBzdXBlci5jb25uZWN0ZWRDYWxsYmFjaygpLHRoaXMuc3JjJiZ0aGlzLmluaXRBdWRpbygpfWFzeW5jIGRpc2Nvbm5lY3RlZENhbGxiYWNrKCl7YXdhaXQgc3VwZXIuZGlzY29ubmVjdGVkQ2FsbGJhY2soKSx0aGlzLmNsZWFudXAoKX1hc3luYyB1cGRhdGVkKFcpe3N1cGVyLnVwZGF0ZWQoVyksVy5oYXMoInNyYyIpJiZ0aGlzLnNyYyYmKHRoaXMuY2xlYW51cCgpLHRoaXMuaW5pdEF1ZGlvKCkpLChXLmhhcygid2F2ZWZvcm1EYXRhIil8fFcuaGFzKCJjdXJyZW50VGltZSIpKSYmdGhpcy5kcmF3V2F2ZWZvcm0oKX1wbGF5KCl7dGhpcy5hdWRpb0VsZW1lbnQ/LnBsYXkoKX1wYXVzZSgpe3RoaXMuYXVkaW9FbGVtZW50Py5wYXVzZSgpfXRvZ2dsZVBsYXkoKXt0aGlzLmlzUGxheWluZz90aGlzLnBhdXNlKCk6dGhpcy5wbGF5KCl9c2VlayhXKXt0aGlzLmF1ZGlvRWxlbWVudCYmKHRoaXMuYXVkaW9FbGVtZW50LmN1cnJlbnRUaW1lPVcpfXNldFZvbHVtZShXKXt0aGlzLnZvbHVtZT1NYXRoLm1heCgwLE1hdGgubWluKDEsVykpLHRoaXMuYXVkaW9FbGVtZW50JiYodGhpcy5hdWRpb0VsZW1lbnQudm9sdW1lPXRoaXMudm9sdW1lKSx0aGlzLnZvbHVtZT4wJiYodGhpcy5pc011dGVkPSExKX10b2dnbGVNdXRlKCl7dGhpcy5pc011dGVkPyh0aGlzLmlzTXV0ZWQ9ITEsdGhpcy52b2x1bWU9dGhpcy52b2x1bWVCZWZvcmVNdXRlfHwuNSx0aGlzLmF1ZGlvRWxlbWVudCYmKHRoaXMuYXVkaW9FbGVtZW50LnZvbHVtZT10aGlzLnZvbHVtZSkpOih0aGlzLnZvbHVtZUJlZm9yZU11dGU9dGhpcy52b2x1bWUsdGhpcy5pc011dGVkPSEwLHRoaXMuYXVkaW9FbGVtZW50JiYodGhpcy5hdWRpb0VsZW1lbnQudm9sdW1lPTApKX10b2dnbGVMb29wKCl7dGhpcy5sb29wPSF0aGlzLmxvb3AsdGhpcy5hdWRpb0VsZW1lbnQmJih0aGlzLmF1ZGlvRWxlbWVudC5sb29wPXRoaXMubG9vcCl9aW5pdEF1ZGlvKCl7dGhpcy5hdWRpb0VsZW1lbnQ9bmV3IEF1ZGlvLHRoaXMuYXVkaW9FbGVtZW50LmNyb3NzT3JpZ2luPSJhbm9ueW1vdXMiLHRoaXMuYXVkaW9FbGVtZW50LnNyYz10aGlzLnNyYyx0aGlzLmF1ZGlvRWxlbWVudC52b2x1bWU9dGhpcy5pc011dGVkPzA6dGhpcy52b2x1bWUsdGhpcy5hdWRpb0VsZW1lbnQubG9vcD10aGlzLmxvb3AsdGhpcy5hdWRpb0VsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigibG9hZGVkbWV0YWRhdGEiLCgpPT57dGhpcy5kdXJhdGlvbj10aGlzLmF1ZGlvRWxlbWVudC5kdXJhdGlvbix0aGlzLmxvYWRpbmc9ITF9KSx0aGlzLmF1ZGlvRWxlbWVudC5hZGRFdmVudExpc3RlbmVyKCJwbGF5IiwoKT0+e3RoaXMuaXNQbGF5aW5nPSEwLHRoaXMuc3RhcnRUaW1lVXBkYXRlKCl9KSx0aGlzLmF1ZGlvRWxlbWVudC5hZGRFdmVudExpc3RlbmVyKCJwYXVzZSIsKCk9Pnt0aGlzLmlzUGxheWluZz0hMSx0aGlzLnN0b3BUaW1lVXBkYXRlKCl9KSx0aGlzLmF1ZGlvRWxlbWVudC5hZGRFdmVudExpc3RlbmVyKCJlbmRlZCIsKCk9Pnt0aGlzLmlzUGxheWluZz0hMSx0aGlzLnN0b3BUaW1lVXBkYXRlKCl9KSx0aGlzLmF1ZGlvRWxlbWVudC5hZGRFdmVudExpc3RlbmVyKCJlcnJvciIsKCk9Pnt0aGlzLmVycm9yPSJGYWlsZWQgdG8gbG9hZCBhdWRpbyIsdGhpcy5sb2FkaW5nPSExfSksdGhpcy5hdWRpb0VsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigidGltZXVwZGF0ZSIsKCk9Pnt0aGlzLmN1cnJlbnRUaW1lPXRoaXMuYXVkaW9FbGVtZW50LmN1cnJlbnRUaW1lfSksdGhpcy5hdXRvcGxheSYmdGhpcy5hdWRpb0VsZW1lbnQucGxheSgpLmNhdGNoKCgpPT57fSksdGhpcy5zaG93V2F2ZWZvcm0mJnRoaXMubG9hZFdhdmVmb3JtKCl9YXN5bmMgbG9hZFdhdmVmb3JtKCl7dHJ5e3RoaXMubG9hZGluZz0hMDtsZXQgSD1hd2FpdChhd2FpdCBmZXRjaCh0aGlzLnNyYykpLmFycmF5QnVmZmVyKCksdGU9bmV3IEF1ZGlvQ29udGV4dCx1ZT0oYXdhaXQgdGUuZGVjb2RlQXVkaW9EYXRhKEgpKS5nZXRDaGFubmVsRGF0YSgwKSxDZT0yMDAsaGU9TWF0aC5mbG9vcih1ZS5sZW5ndGgvQ2UpLGllPVtdO2ZvcihsZXQgSWU9MDtJZTxDZTtJZSsrKXtsZXQgWmU9MDtmb3IobGV0IEs9MDtLPGhlO0srKylaZSs9TWF0aC5hYnModWVbSWUqaGUrS10pO2llLnB1c2goWmUvaGUpfWxldCBTZT1NYXRoLm1heCguLi5pZSk7dGhpcy53YXZlZm9ybURhdGE9aWUubWFwKEllPT5TZT4wP0llL1NlOjApLHRoaXMud2F2ZWZvcm1SZWFkeT0hMCx0aGlzLmxvYWRpbmc9ITEsYXdhaXQgdGUuY2xvc2UoKX1jYXRjaHt0aGlzLndhdmVmb3JtUmVhZHk9ITEsdGhpcy5sb2FkaW5nPSExfX1kcmF3V2F2ZWZvcm0oKXtpZighdGhpcy5zaG93V2F2ZWZvcm18fCF0aGlzLndhdmVmb3JtUmVhZHkpcmV0dXJuO2xldCBXPXRoaXMuc2hhZG93Um9vdD8ucXVlcnlTZWxlY3RvcigiY2FudmFzIik7aWYoIVcpcmV0dXJuO3RoaXMuY2FudmFzRWxlbWVudD1XO2xldCBIPVcucGFyZW50RWxlbWVudCx0ZT13aW5kb3cuZGV2aWNlUGl4ZWxSYXRpb3x8MSxiZT1ILmNsaWVudFdpZHRoLHVlPUguY2xpZW50SGVpZ2h0O1cud2lkdGg9YmUqdGUsVy5oZWlnaHQ9dWUqdGU7bGV0IENlPVcuZ2V0Q29udGV4dCgiMmQiKTtpZighQ2UpcmV0dXJuO0NlLnNjYWxlKHRlLHRlKSxDZS5jbGVhclJlY3QoMCwwLGJlLHVlKTtsZXQgaGU9dGhpcy53YXZlZm9ybURhdGEubGVuZ3RoO2lmKGhlPT09MClyZXR1cm47bGV0IGllPWJlL2hlLFNlPXRoaXMuZHVyYXRpb24+MD90aGlzLmN1cnJlbnRUaW1lL3RoaXMuZHVyYXRpb246MCxJZT1NYXRoLmZsb29yKFNlKmhlKSxaZT1kb2N1bWVudC5ib2R5LmNsYXNzTGlzdC5jb250YWlucygidGhlbWUtZGFyayIpfHx3aW5kb3cubWF0Y2hNZWRpYSgiKHByZWZlcnMtY29sb3Itc2NoZW1lOiBkYXJrKSIpLm1hdGNoZXMsSz1aZT8iaHNsKDIxMyA5MyUgNjglKSI6ImhzbCgyMTcgOTElIDYwJSkiLFo9WmU/ImhzbCgyMTcgMjUlIDIyJSkiOiJoc2woMjE0IDMxJSA4NiUpIjtmb3IobGV0IEo9MDtKPGhlO0orKyl7bGV0IG1lPXRoaXMud2F2ZWZvcm1EYXRhW0pdLEVlPU1hdGgubWF4KDIsbWUqKHVlLTQpKSxVZT1KKmllLE10PSh1ZS1FZSkvMjtDZS5maWxsU3R5bGU9SjxJZT9LOlosQ2UuZmlsbFJlY3QoVWUrLjUsTXQsaWUtMSxFZSl9fWhhbmRsZVdhdmVmb3JtQ2xpY2soVyl7bGV0IEg9Vy5jdXJyZW50VGFyZ2V0LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLHRlPShXLmNsaWVudFgtSC5sZWZ0KS9ILndpZHRoO3RoaXMuc2Vlayh0ZSp0aGlzLmR1cmF0aW9uKX1oYW5kbGVTZWVrYmFyQ2xpY2soVyl7bGV0IEg9Vy5jdXJyZW50VGFyZ2V0LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLHRlPShXLmNsaWVudFgtSC5sZWZ0KS9ILndpZHRoO3RoaXMuc2Vlayh0ZSp0aGlzLmR1cmF0aW9uKX1oYW5kbGVWb2x1bWVDaGFuZ2UoVyl7bGV0IEg9cGFyc2VGbG9hdChXLnRhcmdldC52YWx1ZSk7dGhpcy5zZXRWb2x1bWUoSCl9c3RhcnRUaW1lVXBkYXRlKCl7dGhpcy5zdG9wVGltZVVwZGF0ZSgpO2xldCBXPSgpPT57dGhpcy5hdWRpb0VsZW1lbnQmJnRoaXMuaXNQbGF5aW5nJiYodGhpcy5jdXJyZW50VGltZT10aGlzLmF1ZGlvRWxlbWVudC5jdXJyZW50VGltZSx0aGlzLmFuaW1GcmFtZUlkPXJlcXVlc3RBbmltYXRpb25GcmFtZShXKSl9O3RoaXMuYW5pbUZyYW1lSWQ9cmVxdWVzdEFuaW1hdGlvbkZyYW1lKFcpfXN0b3BUaW1lVXBkYXRlKCl7dGhpcy5hbmltRnJhbWVJZCYmKGNhbmNlbEFuaW1hdGlvbkZyYW1lKHRoaXMuYW5pbUZyYW1lSWQpLHRoaXMuYW5pbUZyYW1lSWQ9MCl9Zm9ybWF0VGltZShXKXtpZighaXNGaW5pdGUoVyl8fFc8MClyZXR1cm4iMDowMCI7bGV0IEg9TWF0aC5mbG9vcihXLzYwKSx0ZT1NYXRoLmZsb29yKFclNjApO3JldHVybmAke0h9OiR7dGUudG9TdHJpbmcoKS5wYWRTdGFydCgyLCIwIil9YH1jbGVhbnVwKCl7dGhpcy5zdG9wVGltZVVwZGF0ZSgpLHRoaXMuYXVkaW9FbGVtZW50JiYodGhpcy5hdWRpb0VsZW1lbnQucGF1c2UoKSx0aGlzLmF1ZGlvRWxlbWVudC5zcmM9IiIsdGhpcy5hdWRpb0VsZW1lbnQ9bnVsbCksdGhpcy5pc1BsYXlpbmc9ITEsdGhpcy5jdXJyZW50VGltZT0wLHRoaXMuZHVyYXRpb249MCx0aGlzLndhdmVmb3JtRGF0YT1bXSx0aGlzLndhdmVmb3JtUmVhZHk9ITF9c3RhdGlje1RyKGkscil9fTtyZXR1cm4gTGU9aX0pKCl9KTt2YXIgdjNyPXAoKCk9PntiZGUoKX0pO3ZhciB4M3IseTNyPXAoKCk9Pnt4ZSgpO3gzcj0oKT0+Q2AKICA8c3R5bGU+CiAgICAuZGVtby1jb250YWluZXIgewogICAgICBwYWRkaW5nOiA0OHB4OwogICAgICBiYWNrZ3JvdW5kOiAke20uYmRUaGVtZSgiI2Y4ZjlmYSIsIiMwYTBhMGEiKX07CiAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgIGdhcDogMzJweDsKICAgIH0KCiAgICAuc2VjdGlvbiB7CiAgICAgIG1heC13aWR0aDogODAwcHg7CiAgICAgIHdpZHRoOiAxMDAlOwogICAgICBtYXJnaW46IDAgYXV0bzsKICAgIH0KCiAgICAuc2VjdGlvbi10aXRsZSB7CiAgICAgIGZvbnQtc2l6ZTogMThweDsKICAgICAgZm9udC13ZWlnaHQ6IDYwMDsKICAgICAgbWFyZ2luLWJvdHRvbTogOHB4OwogICAgICBjb2xvcjogJHttLmJkVGhlbWUoIiMwOTA5MGIiLCIjZmFmYWZhIil9OwogICAgfQoKICAgIC5zZWN0aW9uLWRlc2NyaXB0aW9uIHsKICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgICBjb2xvcjogJHttLmJkVGhlbWUoIiM3MTcxN2EiLCIjYTFhMWFhIil9OwogICAgICBtYXJnaW4tYm90dG9tOiAxNnB4OwogICAgfQogIDwvc3R5bGU+CgogIDxkaXYgY2xhc3M9ImRlbW8tY29udGFpbmVyIj4KICAgIDxkaXYgY2xhc3M9InNlY3Rpb24iPgogICAgICA8ZGl2IGNsYXNzPSJzZWN0aW9uLXRpdGxlIj5WaWRlbyB3aXRoIEN1c3RvbSBDb250cm9sczwvZGl2PgogICAgICA8ZGl2IGNsYXNzPSJzZWN0aW9uLWRlc2NyaXB0aW9uIj5BIHZpZGVvIHBsYXllciB3aXRoIG92ZXJsYXkgY29udHJvbHMsIHNlZWtpbmcsIGFuZCB2b2x1bWUgYWRqdXN0bWVudC48L2Rpdj4KICAgICAgPGRlZXMtdmlkZW8tdmlld2VyCiAgICAgICAgc3JjPSJodHRwczovL2NvbW1vbmRhdGFzdG9yYWdlLmdvb2dsZWFwaXMuY29tL2d0di12aWRlb3MtYnVja2V0L3NhbXBsZS9CaWdCdWNrQnVubnkubXA0IgogICAgICAgIHBvc3Rlcj0iaHR0cHM6Ly9jb21tb25kYXRhc3RvcmFnZS5nb29nbGVhcGlzLmNvbS9ndHYtdmlkZW9zLWJ1Y2tldC9zYW1wbGUvaW1hZ2VzL0JpZ0J1Y2tCdW5ueS5qcGciCiAgICAgID48L2RlZXMtdmlkZW8tdmlld2VyPgogICAgPC9kaXY+CgogICAgPGRpdiBjbGFzcz0ic2VjdGlvbiI+CiAgICAgIDxkaXYgY2xhc3M9InNlY3Rpb24tdGl0bGUiPkF1dG9wbGF5IE11dGVkPC9kaXY+CiAgICAgIDxkaXYgY2xhc3M9InNlY3Rpb24tZGVzY3JpcHRpb24iPlZpZGVvIHRoYXQgYXV0b3BsYXlzIG11dGVkLCBjb21tb25seSB1c2VkIGZvciBwcmV2aWV3cy48L2Rpdj4KICAgICAgPGRlZXMtdmlkZW8tdmlld2VyCiAgICAgICAgc3JjPSJodHRwczovL2NvbW1vbmRhdGFzdG9yYWdlLmdvb2dsZWFwaXMuY29tL2d0di12aWRlb3MtYnVja2V0L3NhbXBsZS9FbGVwaGFudHNEcmVhbS5tcDQiCiAgICAgICAgcG9zdGVyPSJodHRwczovL2NvbW1vbmRhdGFzdG9yYWdlLmdvb2dsZWFwaXMuY29tL2d0di12aWRlb3MtYnVja2V0L3NhbXBsZS9pbWFnZXMvRWxlcGhhbnRzRHJlYW0uanBnIgogICAgICAgIC5hdXRvcGxheT0keyEwfQogICAgICAgIC5tdXRlZD0keyEwfQogICAgICA+PC9kZWVzLXZpZGVvLXZpZXdlcj4KICAgIDwvZGl2PgoKICAgIDxkaXYgY2xhc3M9InNlY3Rpb24iPgogICAgICA8ZGl2IGNsYXNzPSJzZWN0aW9uLXRpdGxlIj5OYXRpdmUgQ29udHJvbHM8L2Rpdj4KICAgICAgPGRpdiBjbGFzcz0ic2VjdGlvbi1kZXNjcmlwdGlvbiI+VmlkZW8gdXNpbmcgYnJvd3Nlci1uYXRpdmUgY29udHJvbHMgaW5zdGVhZCBvZiBjdXN0b20gb3ZlcmxheS48L2Rpdj4KICAgICAgPGRlZXMtdmlkZW8tdmlld2VyCiAgICAgICAgc3JjPSJodHRwczovL2NvbW1vbmRhdGFzdG9yYWdlLmdvb2dsZWFwaXMuY29tL2d0di12aWRlb3MtYnVja2V0L3NhbXBsZS9Gb3JCaWdnZXJCbGF6ZXMubXA0IgogICAgICAgIC5zaG93Q29udHJvbHM9JHshMX0KICAgICAgPjwvZGVlcy12aWRlby12aWV3ZXI+CiAgICA8L2Rpdj4KICA8L2Rpdj4KYH0pO3ZhciBubixHcix3M3IsdmRlPXAoKCk9Pnt4ZSgpO29yKCk7eTNyKCk7bm49ZnVuY3Rpb24oZSx0LHIsaSxhLG4pe2Z1bmN0aW9uIG8oeSl7aWYoeSE9PXZvaWQgMCYmdHlwZW9mIHkhPSJmdW5jdGlvbiIpdGhyb3cgbmV3IFR5cGVFcnJvcigiRnVuY3Rpb24gZXhwZWN0ZWQiKTtyZXR1cm4geX1mb3IodmFyIHM9aS5raW5kLGw9cz09PSJnZXR0ZXIiPyJnZXQiOnM9PT0ic2V0dGVyIj8ic2V0IjoidmFsdWUiLGM9IXQmJmU/aS5zdGF0aWM/ZTplLnByb3RvdHlwZTpudWxsLHU9dHx8KGM/T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihjLGkubmFtZSk6e30pLGQsaD0hMSxmPXIubGVuZ3RoLTE7Zj49MDtmLS0pe3ZhciB4PXt9O2Zvcih2YXIgdiBpbiBpKXhbdl09dj09PSJhY2Nlc3MiP3t9Omlbdl07Zm9yKHZhciB2IGluIGkuYWNjZXNzKXguYWNjZXNzW3ZdPWkuYWNjZXNzW3ZdO3guYWRkSW5pdGlhbGl6ZXI9ZnVuY3Rpb24oeSl7aWYoaCl0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgYWRkIGluaXRpYWxpemVycyBhZnRlciBkZWNvcmF0aW9uIGhhcyBjb21wbGV0ZWQiKTtuLnB1c2gobyh5fHxudWxsKSl9O3ZhciBiPSgwLHJbZl0pKHM9PT0iYWNjZXNzb3IiP3tnZXQ6dS5nZXQsc2V0OnUuc2V0fTp1W2xdLHgpO2lmKHM9PT0iYWNjZXNzb3IiKXtpZihiPT09dm9pZCAwKWNvbnRpbnVlO2lmKGI9PT1udWxsfHx0eXBlb2YgYiE9Im9iamVjdCIpdGhyb3cgbmV3IFR5cGVFcnJvcigiT2JqZWN0IGV4cGVjdGVkIik7KGQ9byhiLmdldCkpJiYodS5nZXQ9ZCksKGQ9byhiLnNldCkpJiYodS5zZXQ9ZCksKGQ9byhiLmluaXQpKSYmYS51bnNoaWZ0KGQpfWVsc2UoZD1vKGIpKSYmKHM9PT0iZmllbGQiP2EudW5zaGlmdChkKTp1W2xdPWQpfWMmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShjLGkubmFtZSx1KSxoPSEwfSxHcj1mdW5jdGlvbihlLHQscil7Zm9yKHZhciBpPWFyZ3VtZW50cy5sZW5ndGg+MixhPTA7YTx0Lmxlbmd0aDthKyspcj1pP3RbYV0uY2FsbChlLHIpOnRbYV0uY2FsbChlKTtyZXR1cm4gaT9yOnZvaWQgMH0sdzNyPSgoKT0+e2xldCBlPVt5ZSgiZGVlcy12aWRlby12aWV3ZXIiKV0sdCxyPVtdLGksYT16ZSxuLG89W10scz1bXSxsLGM9W10sdT1bXSxkLGg9W10sZj1bXSx4LHY9W10sYj1bXSx5LHc9W10saz1bXSxPLHo9W10sTT1bXSxGLEQ9W10sTj1bXSxSLF89W10sUz1bXSwkLFQ9W10sRT1bXSxxLEI9W10sRz1bXSxlZSxQPVtdLGdlPVtdLHdlLEk9W10sbmU9W10sa2UsWT1bXSxBPVtdLEwsVT1bXSxWPVtdO3ZhciBYPWNsYXNzIGV4dGVuZHMgYXtzdGF0aWN7aT10aGlzfXN0YXRpY3tsZXQgZGU9dHlwZW9mIFN5bWJvbD09ImZ1bmN0aW9uIiYmU3ltYm9sLm1ldGFkYXRhP09iamVjdC5jcmVhdGUoYVtTeW1ib2wubWV0YWRhdGFdPz9udWxsKTp2b2lkIDA7bj1baigpXSxsPVtqKCldLGQ9W2ooe3R5cGU6Qm9vbGVhbn0pXSx4PVtqKHt0eXBlOkJvb2xlYW59KV0seT1baih7dHlwZTpCb29sZWFufSldLE89W2ooe3R5cGU6Qm9vbGVhbn0pXSxGPVtmZSgpXSxSPVtmZSgpXSwkPVtmZSgpXSxxPVtmZSgpXSxlZT1bZmUoKV0sd2U9W2ZlKCldLGtlPVtmZSgpXSxMPVtmZSgpXSxubih0aGlzLG51bGwsbix7a2luZDoiYWNjZXNzb3IiLG5hbWU6InNyYyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6dmU9PiJzcmMiaW4gdmUsZ2V0OnZlPT52ZS5zcmMsc2V0Oih2ZSxMZSk9Pnt2ZS5zcmM9TGV9fSxtZXRhZGF0YTpkZX0sbyxzKSxubih0aGlzLG51bGwsbCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InBvc3RlciIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6dmU9PiJwb3N0ZXIiaW4gdmUsZ2V0OnZlPT52ZS5wb3N0ZXIsc2V0Oih2ZSxMZSk9Pnt2ZS5wb3N0ZXI9TGV9fSxtZXRhZGF0YTpkZX0sYyx1KSxubih0aGlzLG51bGwsZCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InNob3dDb250cm9scyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6dmU9PiJzaG93Q29udHJvbHMiaW4gdmUsZ2V0OnZlPT52ZS5zaG93Q29udHJvbHMsc2V0Oih2ZSxMZSk9Pnt2ZS5zaG93Q29udHJvbHM9TGV9fSxtZXRhZGF0YTpkZX0saCxmKSxubih0aGlzLG51bGwseCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImF1dG9wbGF5IixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczp2ZT0+ImF1dG9wbGF5ImluIHZlLGdldDp2ZT0+dmUuYXV0b3BsYXksc2V0Oih2ZSxMZSk9Pnt2ZS5hdXRvcGxheT1MZX19LG1ldGFkYXRhOmRlfSx2LGIpLG5uKHRoaXMsbnVsbCx5LHtraW5kOiJhY2Nlc3NvciIsbmFtZToibG9vcCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6dmU9PiJsb29wImluIHZlLGdldDp2ZT0+dmUubG9vcCxzZXQ6KHZlLExlKT0+e3ZlLmxvb3A9TGV9fSxtZXRhZGF0YTpkZX0sdyxrKSxubih0aGlzLG51bGwsTyx7a2luZDoiYWNjZXNzb3IiLG5hbWU6Im11dGVkIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczp2ZT0+Im11dGVkImluIHZlLGdldDp2ZT0+dmUubXV0ZWQsc2V0Oih2ZSxMZSk9Pnt2ZS5tdXRlZD1MZX19LG1ldGFkYXRhOmRlfSx6LE0pLG5uKHRoaXMsbnVsbCxGLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiaXNQbGF5aW5nIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczp2ZT0+ImlzUGxheWluZyJpbiB2ZSxnZXQ6dmU9PnZlLmlzUGxheWluZyxzZXQ6KHZlLExlKT0+e3ZlLmlzUGxheWluZz1MZX19LG1ldGFkYXRhOmRlfSxELE4pLG5uKHRoaXMsbnVsbCxSLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiY3VycmVudFRpbWUiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOnZlPT4iY3VycmVudFRpbWUiaW4gdmUsZ2V0OnZlPT52ZS5jdXJyZW50VGltZSxzZXQ6KHZlLExlKT0+e3ZlLmN1cnJlbnRUaW1lPUxlfX0sbWV0YWRhdGE6ZGV9LF8sUyksbm4odGhpcyxudWxsLCQse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJkdXJhdGlvbiIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6dmU9PiJkdXJhdGlvbiJpbiB2ZSxnZXQ6dmU9PnZlLmR1cmF0aW9uLHNldDoodmUsTGUpPT57dmUuZHVyYXRpb249TGV9fSxtZXRhZGF0YTpkZX0sVCxFKSxubih0aGlzLG51bGwscSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InZvbHVtZSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6dmU9PiJ2b2x1bWUiaW4gdmUsZ2V0OnZlPT52ZS52b2x1bWUsc2V0Oih2ZSxMZSk9Pnt2ZS52b2x1bWU9TGV9fSxtZXRhZGF0YTpkZX0sQixHKSxubih0aGlzLG51bGwsZWUse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJsb2FkaW5nIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczp2ZT0+ImxvYWRpbmciaW4gdmUsZ2V0OnZlPT52ZS5sb2FkaW5nLHNldDoodmUsTGUpPT57dmUubG9hZGluZz1MZX19LG1ldGFkYXRhOmRlfSxQLGdlKSxubih0aGlzLG51bGwsd2Use2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJlcnJvciIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6dmU9PiJlcnJvciJpbiB2ZSxnZXQ6dmU9PnZlLmVycm9yLHNldDoodmUsTGUpPT57dmUuZXJyb3I9TGV9fSxtZXRhZGF0YTpkZX0sSSxuZSksbm4odGhpcyxudWxsLGtlLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiaXNGdWxsc2NyZWVuIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczp2ZT0+ImlzRnVsbHNjcmVlbiJpbiB2ZSxnZXQ6dmU9PnZlLmlzRnVsbHNjcmVlbixzZXQ6KHZlLExlKT0+e3ZlLmlzRnVsbHNjcmVlbj1MZX19LG1ldGFkYXRhOmRlfSxZLEEpLG5uKHRoaXMsbnVsbCxMLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiY29udHJvbHNWaXNpYmxlIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczp2ZT0+ImNvbnRyb2xzVmlzaWJsZSJpbiB2ZSxnZXQ6dmU9PnZlLmNvbnRyb2xzVmlzaWJsZSxzZXQ6KHZlLExlKT0+e3ZlLmNvbnRyb2xzVmlzaWJsZT1MZX19LG1ldGFkYXRhOmRlfSxVLFYpLG5uKG51bGwsdD17dmFsdWU6aX0sZSx7a2luZDoiY2xhc3MiLG5hbWU6aS5uYW1lLG1ldGFkYXRhOmRlfSxudWxsLHIpLFg9aT10LnZhbHVlLGRlJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoaSxTeW1ib2wubWV0YWRhdGEse2VudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwLHZhbHVlOmRlfSl9c3RhdGljIGRlbW89eDNyO3N0YXRpYyBkZW1vR3JvdXBzPVsiTWVkaWEiXTsjZT1Hcih0aGlzLG8sIiIpO2dldCBzcmMoKXtyZXR1cm4gdGhpcy4jZX1zZXQgc3JjKGRlKXt0aGlzLiNlPWRlfSN0PShHcih0aGlzLHMpLEdyKHRoaXMsYywiIikpO2dldCBwb3N0ZXIoKXtyZXR1cm4gdGhpcy4jdH1zZXQgcG9zdGVyKGRlKXt0aGlzLiN0PWRlfSNyPShHcih0aGlzLHUpLEdyKHRoaXMsaCwhMCkpO2dldCBzaG93Q29udHJvbHMoKXtyZXR1cm4gdGhpcy4jcn1zZXQgc2hvd0NvbnRyb2xzKGRlKXt0aGlzLiNyPWRlfSNpPShHcih0aGlzLGYpLEdyKHRoaXMsdiwhMSkpO2dldCBhdXRvcGxheSgpe3JldHVybiB0aGlzLiNpfXNldCBhdXRvcGxheShkZSl7dGhpcy4jaT1kZX0jYT0oR3IodGhpcyxiKSxHcih0aGlzLHcsITEpKTtnZXQgbG9vcCgpe3JldHVybiB0aGlzLiNhfXNldCBsb29wKGRlKXt0aGlzLiNhPWRlfSNuPShHcih0aGlzLGspLEdyKHRoaXMseiwhMSkpO2dldCBtdXRlZCgpe3JldHVybiB0aGlzLiNufXNldCBtdXRlZChkZSl7dGhpcy4jbj1kZX0jbz0oR3IodGhpcyxNKSxHcih0aGlzLEQsITEpKTtnZXQgaXNQbGF5aW5nKCl7cmV0dXJuIHRoaXMuI299c2V0IGlzUGxheWluZyhkZSl7dGhpcy4jbz1kZX0jcz0oR3IodGhpcyxOKSxHcih0aGlzLF8sMCkpO2dldCBjdXJyZW50VGltZSgpe3JldHVybiB0aGlzLiNzfXNldCBjdXJyZW50VGltZShkZSl7dGhpcy4jcz1kZX0jbD0oR3IodGhpcyxTKSxHcih0aGlzLFQsMCkpO2dldCBkdXJhdGlvbigpe3JldHVybiB0aGlzLiNsfXNldCBkdXJhdGlvbihkZSl7dGhpcy4jbD1kZX0jYz0oR3IodGhpcyxFKSxHcih0aGlzLEIsMSkpO2dldCB2b2x1bWUoKXtyZXR1cm4gdGhpcy4jY31zZXQgdm9sdW1lKGRlKXt0aGlzLiNjPWRlfSNkPShHcih0aGlzLEcpLEdyKHRoaXMsUCwhMCkpO2dldCBsb2FkaW5nKCl7cmV0dXJuIHRoaXMuI2R9c2V0IGxvYWRpbmcoZGUpe3RoaXMuI2Q9ZGV9I3U9KEdyKHRoaXMsZ2UpLEdyKHRoaXMsSSwiIikpO2dldCBlcnJvcigpe3JldHVybiB0aGlzLiN1fXNldCBlcnJvcihkZSl7dGhpcy4jdT1kZX0jcD0oR3IodGhpcyxuZSksR3IodGhpcyxZLCExKSk7Z2V0IGlzRnVsbHNjcmVlbigpe3JldHVybiB0aGlzLiNwfXNldCBpc0Z1bGxzY3JlZW4oZGUpe3RoaXMuI3A9ZGV9I2g9KEdyKHRoaXMsQSksR3IodGhpcyxVLCEwKSk7Z2V0IGNvbnRyb2xzVmlzaWJsZSgpe3JldHVybiB0aGlzLiNofXNldCBjb250cm9sc1Zpc2libGUoZGUpe3RoaXMuI2g9ZGV9aGlkZUNvbnRyb2xzVGltZXI9KEdyKHRoaXMsViksbnVsbCk7dmlkZW9FbGVtZW50PW51bGw7cmVuZGVyKCl7cmV0dXJuIENgCiAgICAgIDxzdHlsZT4KICAgICAgICA6aG9zdCB7CiAgICAgICAgICBkaXNwbGF5OiBibG9jazsKICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgICAgIGZvbnQtZmFtaWx5OiAtYXBwbGUtc3lzdGVtLCBCbGlua01hY1N5c3RlbUZvbnQsICdTZWdvZSBVSScsIFJvYm90bywgc2Fucy1zZXJpZjsKICAgICAgICB9CgogICAgICAgIC52aWRlby1jb250YWluZXIgewogICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgICAgICBhc3BlY3QtcmF0aW86IDE2IC8gOTsKICAgICAgICAgIGJhY2tncm91bmQ6ICMwMDAwMDA7CiAgICAgICAgICBib3JkZXItcmFkaXVzOiA4cHg7CiAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgICAgIH0KCiAgICAgICAgdmlkZW8gewogICAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgICAgICBoZWlnaHQ6IDEwMCU7CiAgICAgICAgICBvYmplY3QtZml0OiBjb250YWluOwogICAgICAgICAgZGlzcGxheTogYmxvY2s7CiAgICAgICAgfQoKICAgICAgICAub3ZlcmxheSB7CiAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgICAgICBpbnNldDogMDsKICAgICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICAgICAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDsKICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjsKICAgICAgICB9CgogICAgICAgIC5jZW50ZXItcGxheSB7CiAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgICAgICB0b3A6IDUwJTsKICAgICAgICAgIGxlZnQ6IDUwJTsKICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUsIC01MCUpOwogICAgICAgICAgd2lkdGg6IDY0cHg7CiAgICAgICAgICBoZWlnaHQ6IDY0cHg7CiAgICAgICAgICBib3JkZXItcmFkaXVzOiA1MCU7CiAgICAgICAgICBiYWNrZ3JvdW5kOiByZ2JhKDAsIDAsIDAsIDAuNik7CiAgICAgICAgICBjb2xvcjogI2ZmZmZmZjsKICAgICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7CiAgICAgICAgICB0cmFuc2l0aW9uOiBvcGFjaXR5IDAuMnMgZWFzZSwgdHJhbnNmb3JtIDAuMnMgZWFzZTsKICAgICAgICAgIG9wYWNpdHk6ICR7dGhpcy5pc1BsYXlpbmc/MDoxfTsKICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiAke3RoaXMuaXNQbGF5aW5nPyJub25lIjoiYXV0byJ9OwogICAgICAgIH0KCiAgICAgICAgLmNlbnRlci1wbGF5IGRlZXMtaWNvbiB7CiAgICAgICAgICBmb250LXNpemU6IDI4cHg7CiAgICAgICAgfQoKICAgICAgICAuY2VudGVyLXBsYXk6aG92ZXIgewogICAgICAgICAgYmFja2dyb3VuZDogcmdiYSgwLCAwLCAwLCAwLjgpOwogICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSwgLTUwJSkgc2NhbGUoMS4xKTsKICAgICAgICB9CgogICAgICAgIC5jb250cm9scy1iYXIgewogICAgICAgICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KHRyYW5zcGFyZW50LCByZ2JhKDAsIDAsIDAsIDAuNykpOwogICAgICAgICAgcGFkZGluZzogMjRweCAxMnB4IDEycHg7CiAgICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgICAgIGdhcDogOHB4OwogICAgICAgICAgb3BhY2l0eTogJHt0aGlzLmNvbnRyb2xzVmlzaWJsZXx8IXRoaXMuaXNQbGF5aW5nPzE6MH07CiAgICAgICAgICB0cmFuc2l0aW9uOiBvcGFjaXR5IDAuM3MgZWFzZTsKICAgICAgICB9CgogICAgICAgIC5zZWVrYmFyLXJvdyB7CiAgICAgICAgICB3aWR0aDogMTAwJTsKICAgICAgICAgIGhlaWdodDogNHB4OwogICAgICAgICAgYmFja2dyb3VuZDogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjMpOwogICAgICAgICAgYm9yZGVyLXJhZGl1czogMnB4OwogICAgICAgICAgY3Vyc29yOiBwb2ludGVyOwogICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICAgIH0KCiAgICAgICAgLnNlZWtiYXItcm93OmhvdmVyIHsKICAgICAgICAgIGhlaWdodDogNnB4OwogICAgICAgIH0KCiAgICAgICAgLnNlZWtiYXItcHJvZ3Jlc3MgewogICAgICAgICAgaGVpZ2h0OiAxMDAlOwogICAgICAgICAgYmFja2dyb3VuZDogJHttLmJkVGhlbWUoIiMzYjgyZjYiLCIjNjBhNWZhIil9OwogICAgICAgICAgYm9yZGVyLXJhZGl1czogMnB4OwogICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7CiAgICAgICAgfQoKICAgICAgICAuY29udHJvbHMtcm93IHsKICAgICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgICAgZ2FwOiA4cHg7CiAgICAgICAgfQoKICAgICAgICAuY3RybC1idXR0b24gewogICAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKICAgICAgICAgIHdpZHRoOiAzMnB4OwogICAgICAgICAgaGVpZ2h0OiAzMnB4OwogICAgICAgICAgYm9yZGVyOiBub25lOwogICAgICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7CiAgICAgICAgICBjb2xvcjogI2ZmZmZmZjsKICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDZweDsKICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjsKICAgICAgICAgIHRyYW5zaXRpb246IGJhY2tncm91bmQgMC4xNXMgZWFzZTsKICAgICAgICAgIGZsZXgtc2hyaW5rOiAwOwogICAgICAgIH0KCiAgICAgICAgLmN0cmwtYnV0dG9uIGRlZXMtaWNvbiB7CiAgICAgICAgICBmb250LXNpemU6IDE2cHg7CiAgICAgICAgfQoKICAgICAgICAuY3RybC1idXR0b246aG92ZXIgewogICAgICAgICAgYmFja2dyb3VuZDogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjE1KTsKICAgICAgICB9CgogICAgICAgIC50aW1lLWRpc3BsYXkgewogICAgICAgICAgZm9udC1zaXplOiAxMnB4OwogICAgICAgICAgZm9udC12YXJpYW50LW51bWVyaWM6IHRhYnVsYXItbnVtczsKICAgICAgICAgIGNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuOCk7CiAgICAgICAgICB1c2VyLXNlbGVjdDogbm9uZTsKICAgICAgICAgIGZsZXgtc2hyaW5rOiAwOwogICAgICAgIH0KCiAgICAgICAgLnNwYWNlciB7CiAgICAgICAgICBmbGV4OiAxOwogICAgICAgIH0KCiAgICAgICAgLnZvbHVtZS1ncm91cCB7CiAgICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICAgIGdhcDogNHB4OwogICAgICAgIH0KCiAgICAgICAgLnZvbHVtZS1zbGlkZXIgewogICAgICAgICAgd2lkdGg6IDYwcHg7CiAgICAgICAgICBoZWlnaHQ6IDRweDsKICAgICAgICAgIC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTsKICAgICAgICAgIGFwcGVhcmFuY2U6IG5vbmU7CiAgICAgICAgICBiYWNrZ3JvdW5kOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMyk7CiAgICAgICAgICBib3JkZXItcmFkaXVzOiAycHg7CiAgICAgICAgICBvdXRsaW5lOiBub25lOwogICAgICAgICAgY3Vyc29yOiBwb2ludGVyOwogICAgICAgIH0KCiAgICAgICAgLnZvbHVtZS1zbGlkZXI6Oi13ZWJraXQtc2xpZGVyLXRodW1iIHsKICAgICAgICAgIC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTsKICAgICAgICAgIHdpZHRoOiAxMnB4OwogICAgICAgICAgaGVpZ2h0OiAxMnB4OwogICAgICAgICAgYm9yZGVyLXJhZGl1czogNTAlOwogICAgICAgICAgYmFja2dyb3VuZDogI2ZmZmZmZjsKICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjsKICAgICAgICB9CgogICAgICAgIC52b2x1bWUtc2xpZGVyOjotbW96LXJhbmdlLXRodW1iIHsKICAgICAgICAgIHdpZHRoOiAxMnB4OwogICAgICAgICAgaGVpZ2h0OiAxMnB4OwogICAgICAgICAgYm9yZGVyLXJhZGl1czogNTAlOwogICAgICAgICAgYmFja2dyb3VuZDogI2ZmZmZmZjsKICAgICAgICAgIGJvcmRlcjogbm9uZTsKICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjsKICAgICAgICB9CgogICAgICAgIC5sb2FkaW5nLW92ZXJsYXkgewogICAgICAgICAgcG9zaXRpb246IGFic29sdXRlOwogICAgICAgICAgaW5zZXQ6IDA7CiAgICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOwogICAgICAgICAgYmFja2dyb3VuZDogcmdiYSgwLCAwLCAwLCAwLjMpOwogICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7CiAgICAgICAgfQoKICAgICAgICAubG9hZGluZy1zcGlubmVyIHsKICAgICAgICAgIHdpZHRoOiA0MHB4OwogICAgICAgICAgaGVpZ2h0OiA0MHB4OwogICAgICAgICAgYm9yZGVyOiAzcHggc29saWQgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjMpOwogICAgICAgICAgYm9yZGVyLXRvcC1jb2xvcjogI2ZmZmZmZjsKICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDUwJTsKICAgICAgICAgIGFuaW1hdGlvbjogc3BpbiAwLjhzIGxpbmVhciBpbmZpbml0ZTsKICAgICAgICB9CgogICAgICAgIEBrZXlmcmFtZXMgc3BpbiB7CiAgICAgICAgICB0byB7IHRyYW5zZm9ybTogcm90YXRlKDM2MGRlZyk7IH0KICAgICAgICB9CgogICAgICAgIC5lcnJvci1vdmVybGF5IHsKICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgICAgIGluc2V0OiAwOwogICAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7CiAgICAgICAgICBnYXA6IDhweDsKICAgICAgICAgIGNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNyk7CiAgICAgICAgICBiYWNrZ3JvdW5kOiByZ2JhKDAsIDAsIDAsIDAuNik7CiAgICAgICAgfQoKICAgICAgICAuZXJyb3Itb3ZlcmxheSBkZWVzLWljb24gewogICAgICAgICAgY29sb3I6ICNmODcxNzE7CiAgICAgICAgICBmb250LXNpemU6IDMycHg7CiAgICAgICAgfQoKICAgICAgICAuZXJyb3ItdGV4dCB7CiAgICAgICAgICBmb250LXNpemU6IDEzcHg7CiAgICAgICAgfQogICAgICA8L3N0eWxlPgoKICAgICAgPGRpdgogICAgICAgIGNsYXNzPSJ2aWRlby1jb250YWluZXIiCiAgICAgICAgQG1vdXNlbW92ZT0ke3RoaXMuaGFuZGxlTW91c2VNb3ZlfQogICAgICAgIEBtb3VzZWxlYXZlPSR7dGhpcy5oYW5kbGVNb3VzZUxlYXZlfQogICAgICA+CiAgICAgICAgPHZpZGVvCiAgICAgICAgICAuc3JjPSR7dGhpcy5zcmN9CiAgICAgICAgICAucG9zdGVyPSR7dGhpcy5wb3N0ZXJ9CiAgICAgICAgICAubXV0ZWQ9JHt0aGlzLm11dGVkfQogICAgICAgICAgLmxvb3A9JHt0aGlzLmxvb3B9CiAgICAgICAgICA/YXV0b3BsYXk9JHt0aGlzLmF1dG9wbGF5fQogICAgICAgICAgP2NvbnRyb2xzPSR7IXRoaXMuc2hvd0NvbnRyb2xzfQogICAgICAgICAgcGxheXNpbmxpbmUKICAgICAgICAgIEBsb2FkZWRtZXRhZGF0YT0ke3RoaXMuaGFuZGxlTG9hZGVkTWV0YWRhdGF9CiAgICAgICAgICBAcGxheT0ke3RoaXMuaGFuZGxlUGxheX0KICAgICAgICAgIEBwYXVzZT0ke3RoaXMuaGFuZGxlUGF1c2V9CiAgICAgICAgICBAZW5kZWQ9JHt0aGlzLmhhbmRsZUVuZGVkfQogICAgICAgICAgQHRpbWV1cGRhdGU9JHt0aGlzLmhhbmRsZVRpbWVVcGRhdGV9CiAgICAgICAgICBAZXJyb3I9JHt0aGlzLmhhbmRsZUVycm9yfQogICAgICAgICAgQHdhaXRpbmc9JHsoKT0+e3RoaXMubG9hZGluZz0hMH19CiAgICAgICAgICBAY2FucGxheT0keygpPT57dGhpcy5sb2FkaW5nPSExfX0KICAgICAgICA+PC92aWRlbz4KCiAgICAgICAgJHt0aGlzLnNob3dDb250cm9scz9DYAogICAgICAgICAgPGRpdiBjbGFzcz0ib3ZlcmxheSIgQGNsaWNrPSR7dGhpcy5oYW5kbGVPdmVybGF5Q2xpY2t9PgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJjZW50ZXItcGxheSI+CiAgICAgICAgICAgICAgPGRlZXMtaWNvbiBpY29uPSJsdWNpZGU6UGxheSI+PC9kZWVzLWljb24+CiAgICAgICAgICAgIDwvZGl2PgoKICAgICAgICAgICAgPGRpdiBjbGFzcz0iY29udHJvbHMtYmFyIiBAY2xpY2s9JHtkZT0+ZGUuc3RvcFByb3BhZ2F0aW9uKCl9PgogICAgICAgICAgICAgIDxkaXYgY2xhc3M9InNlZWtiYXItcm93IiBAY2xpY2s9JHt0aGlzLmhhbmRsZVNlZWt9PgogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0ic2Vla2Jhci1wcm9ncmVzcyIgc3R5bGU9IndpZHRoOiAke3RoaXMuZHVyYXRpb24/dGhpcy5jdXJyZW50VGltZS90aGlzLmR1cmF0aW9uKjEwMDowfSUiPjwvZGl2PgogICAgICAgICAgICAgIDwvZGl2PgoKICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJjb250cm9scy1yb3ciPgogICAgICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz0iY3RybC1idXR0b24iIEBjbGljaz0ke3RoaXMudG9nZ2xlUGxheX0+CiAgICAgICAgICAgICAgICAgIDxkZWVzLWljb24gaWNvbj0ibHVjaWRlOiR7dGhpcy5pc1BsYXlpbmc/IlBhdXNlIjoiUGxheSJ9Ij48L2RlZXMtaWNvbj4KICAgICAgICAgICAgICAgIDwvYnV0dG9uPgoKICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJ0aW1lLWRpc3BsYXkiPgogICAgICAgICAgICAgICAgICAke3RoaXMuZm9ybWF0VGltZSh0aGlzLmN1cnJlbnRUaW1lKX0gLyAke3RoaXMuZm9ybWF0VGltZSh0aGlzLmR1cmF0aW9uKX0KICAgICAgICAgICAgICAgIDwvc3Bhbj4KCiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0ic3BhY2VyIj48L3NwYW4+CgogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0idm9sdW1lLWdyb3VwIj4KICAgICAgICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz0iY3RybC1idXR0b24iIEBjbGljaz0ke3RoaXMudG9nZ2xlTXV0ZX0+CiAgICAgICAgICAgICAgICAgICAgPGRlZXMtaWNvbiBpY29uPSJsdWNpZGU6JHt0aGlzLm11dGVkfHx0aGlzLnZvbHVtZT09PTA/IlZvbHVtZVgiOnRoaXMudm9sdW1lPC41PyJWb2x1bWUxIjoiVm9sdW1lMiJ9Ij48L2RlZXMtaWNvbj4KICAgICAgICAgICAgICAgICAgPC9idXR0b24+CiAgICAgICAgICAgICAgICAgIDxpbnB1dAogICAgICAgICAgICAgICAgICAgIGNsYXNzPSJ2b2x1bWUtc2xpZGVyIgogICAgICAgICAgICAgICAgICAgIHR5cGU9InJhbmdlIgogICAgICAgICAgICAgICAgICAgIG1pbj0iMCIKICAgICAgICAgICAgICAgICAgICBtYXg9IjEiCiAgICAgICAgICAgICAgICAgICAgc3RlcD0iMC4wMSIKICAgICAgICAgICAgICAgICAgICAudmFsdWU9JHtTdHJpbmcodGhpcy5tdXRlZD8wOnRoaXMudm9sdW1lKX0KICAgICAgICAgICAgICAgICAgICBAaW5wdXQ9JHt0aGlzLmhhbmRsZVZvbHVtZUNoYW5nZX0KICAgICAgICAgICAgICAgICAgLz4KICAgICAgICAgICAgICAgIDwvZGl2PgoKICAgICAgICAgICAgICAgIDxidXR0b24gY2xhc3M9ImN0cmwtYnV0dG9uIiBAY2xpY2s9JHt0aGlzLnRvZ2dsZUZ1bGxzY3JlZW59IHRpdGxlPSJGdWxsc2NyZWVuIj4KICAgICAgICAgICAgICAgICAgPGRlZXMtaWNvbiBpY29uPSJsdWNpZGU6JHt0aGlzLmlzRnVsbHNjcmVlbj8iTWluaW1pemUiOiJNYXhpbWl6ZSJ9Ij48L2RlZXMtaWNvbj4KICAgICAgICAgICAgICAgIDwvYnV0dG9uPgogICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIDwvZGl2PgogICAgICAgIGA6IiJ9CgogICAgICAgICR7dGhpcy5sb2FkaW5nJiYhdGhpcy5lcnJvcj9DYAogICAgICAgICAgPGRpdiBjbGFzcz0ibG9hZGluZy1vdmVybGF5Ij4KICAgICAgICAgICAgPGRpdiBjbGFzcz0ibG9hZGluZy1zcGlubmVyIj48L2Rpdj4KICAgICAgICAgIDwvZGl2PgogICAgICAgIGA6IiJ9CgogICAgICAgICR7dGhpcy5lcnJvcj9DYAogICAgICAgICAgPGRpdiBjbGFzcz0iZXJyb3Itb3ZlcmxheSI+CiAgICAgICAgICAgIDxkZWVzLWljb24gaWNvbj0ibHVjaWRlOlZpZGVvT2ZmIj48L2RlZXMtaWNvbj4KICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVycm9yLXRleHQiPiR7dGhpcy5lcnJvcn08L3NwYW4+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICBgOiIifQogICAgICA8L2Rpdj4KICAgIGB9YXN5bmMgZmlyc3RVcGRhdGVkKCl7dGhpcy52aWRlb0VsZW1lbnQ9dGhpcy5zaGFkb3dSb290Py5xdWVyeVNlbGVjdG9yKCJ2aWRlbyIpfHxudWxsLGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoImZ1bGxzY3JlZW5jaGFuZ2UiLHRoaXMuaGFuZGxlRnVsbHNjcmVlbkNoYW5nZSl9YXN5bmMgZGlzY29ubmVjdGVkQ2FsbGJhY2soKXthd2FpdCBzdXBlci5kaXNjb25uZWN0ZWRDYWxsYmFjaygpLGRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoImZ1bGxzY3JlZW5jaGFuZ2UiLHRoaXMuaGFuZGxlRnVsbHNjcmVlbkNoYW5nZSksdGhpcy5oaWRlQ29udHJvbHNUaW1lciYmY2xlYXJUaW1lb3V0KHRoaXMuaGlkZUNvbnRyb2xzVGltZXIpfXBsYXkoKXt0aGlzLnZpZGVvRWxlbWVudD8ucGxheSgpfXBhdXNlKCl7dGhpcy52aWRlb0VsZW1lbnQ/LnBhdXNlKCl9dG9nZ2xlUGxheSgpe3RoaXMuaXNQbGF5aW5nP3RoaXMucGF1c2UoKTp0aGlzLnBsYXkoKX1zZWVrKGRlKXt0aGlzLnZpZGVvRWxlbWVudCYmKHRoaXMudmlkZW9FbGVtZW50LmN1cnJlbnRUaW1lPWRlKX1zZXRWb2x1bWUoZGUpe3RoaXMudm9sdW1lPU1hdGgubWF4KDAsTWF0aC5taW4oMSxkZSkpLHRoaXMudmlkZW9FbGVtZW50JiYodGhpcy52aWRlb0VsZW1lbnQudm9sdW1lPXRoaXMudm9sdW1lKX10b2dnbGVGdWxsc2NyZWVuKCl7bGV0IGRlPXRoaXMuc2hhZG93Um9vdD8ucXVlcnlTZWxlY3RvcigiLnZpZGVvLWNvbnRhaW5lciIpO2RlJiYodGhpcy5pc0Z1bGxzY3JlZW4/ZG9jdW1lbnQuZXhpdEZ1bGxzY3JlZW4/LigpOmRlLnJlcXVlc3RGdWxsc2NyZWVuPy4oKSl9aGFuZGxlTG9hZGVkTWV0YWRhdGEoKXt0aGlzLnZpZGVvRWxlbWVudCYmKHRoaXMuZHVyYXRpb249dGhpcy52aWRlb0VsZW1lbnQuZHVyYXRpb24sdGhpcy5sb2FkaW5nPSExKX1oYW5kbGVQbGF5KCl7dGhpcy5pc1BsYXlpbmc9ITAsdGhpcy5zY2hlZHVsZUhpZGVDb250cm9scygpfWhhbmRsZVBhdXNlKCl7dGhpcy5pc1BsYXlpbmc9ITEsdGhpcy5jb250cm9sc1Zpc2libGU9ITB9aGFuZGxlRW5kZWQoKXt0aGlzLmlzUGxheWluZz0hMSx0aGlzLmNvbnRyb2xzVmlzaWJsZT0hMH1oYW5kbGVUaW1lVXBkYXRlKCl7dGhpcy52aWRlb0VsZW1lbnQmJih0aGlzLmN1cnJlbnRUaW1lPXRoaXMudmlkZW9FbGVtZW50LmN1cnJlbnRUaW1lKX1oYW5kbGVFcnJvcigpe3RoaXMuZXJyb3I9IkZhaWxlZCB0byBsb2FkIHZpZGVvIix0aGlzLmxvYWRpbmc9ITF9aGFuZGxlT3ZlcmxheUNsaWNrKCl7dGhpcy50b2dnbGVQbGF5KCl9aGFuZGxlU2VlayhkZSl7bGV0IHZlPWRlLmN1cnJlbnRUYXJnZXQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCksTGU9KGRlLmNsaWVudFgtdmUubGVmdCkvdmUud2lkdGg7dGhpcy5zZWVrKExlKnRoaXMuZHVyYXRpb24pfWhhbmRsZVZvbHVtZUNoYW5nZShkZSl7bGV0IHZlPXBhcnNlRmxvYXQoZGUudGFyZ2V0LnZhbHVlKTt0aGlzLnNldFZvbHVtZSh2ZSksdGhpcy5tdXRlZD12ZT09PTB9dG9nZ2xlTXV0ZSgpe3RoaXMubXV0ZWQ9IXRoaXMubXV0ZWQsdGhpcy52aWRlb0VsZW1lbnQmJih0aGlzLnZpZGVvRWxlbWVudC5tdXRlZD10aGlzLm11dGVkKX1oYW5kbGVNb3VzZU1vdmUoKXt0aGlzLmNvbnRyb2xzVmlzaWJsZT0hMCx0aGlzLnNjaGVkdWxlSGlkZUNvbnRyb2xzKCl9aGFuZGxlTW91c2VMZWF2ZSgpe3RoaXMuaXNQbGF5aW5nJiYodGhpcy5jb250cm9sc1Zpc2libGU9ITEpfXNjaGVkdWxlSGlkZUNvbnRyb2xzKCl7dGhpcy5oaWRlQ29udHJvbHNUaW1lciYmY2xlYXJUaW1lb3V0KHRoaXMuaGlkZUNvbnRyb2xzVGltZXIpLHRoaXMuaXNQbGF5aW5nJiYodGhpcy5oaWRlQ29udHJvbHNUaW1lcj1zZXRUaW1lb3V0KCgpPT57dGhpcy5jb250cm9sc1Zpc2libGU9ITF9LDNlMykpfWhhbmRsZUZ1bGxzY3JlZW5DaGFuZ2U9KCk9Pnt0aGlzLmlzRnVsbHNjcmVlbj0hIWRvY3VtZW50LmZ1bGxzY3JlZW5FbGVtZW50fTtmb3JtYXRUaW1lKGRlKXtpZighaXNGaW5pdGUoZGUpfHxkZTwwKXJldHVybiIwOjAwIjtsZXQgdmU9TWF0aC5mbG9vcihkZS82MCksTGU9TWF0aC5mbG9vcihkZSU2MCk7cmV0dXJuYCR7dmV9OiR7TGUudG9TdHJpbmcoKS5wYWRTdGFydCgyLCIwIil9YH1zdGF0aWN7R3IoaSxyKX19O3JldHVybiBYPWl9KSgpfSk7dmFyIE0zcj1wKCgpPT57dmRlKCl9KTt2YXIgb2wsbkY9cCgoKT0+e3hlKCk7b2w9Y2xhc3N7c3RhdGljIHBkZmpzTGliO3N0YXRpYyBpbml0aWFsaXplZD0hMTtzdGF0aWMgYXN5bmMgaW5pdGlhbGl6ZSgpe3RoaXMuaW5pdGlhbGl6ZWR8fCh0aGlzLnBkZmpzTGliPWF3YWl0IGltcG9ydCgiaHR0cHM6Ly9jZG4uanNkZWxpdnIubmV0L25wbS9wZGZqcy1kaXN0QDQuMC4zNzkvK2VzbSIpLHRoaXMucGRmanNMaWIuR2xvYmFsV29ya2VyT3B0aW9ucy53b3JrZXJTcmM9Imh0dHBzOi8vY2RuLmpzZGVsaXZyLm5ldC9ucG0vcGRmanMtZGlzdEA0LjAuMzc5L2J1aWxkL3BkZi53b3JrZXIubWpzIix0aGlzLmluaXRpYWxpemVkPSEwKX1zdGF0aWMgYXN5bmMgbG9hZERvY3VtZW50KHQpe3JldHVybiBhd2FpdCB0aGlzLmluaXRpYWxpemUoKSxhd2FpdCB0aGlzLnBkZmpzTGliLmdldERvY3VtZW50KHQpLnByb21pc2V9c3RhdGljIHJlbGVhc2VEb2N1bWVudCh0KXt9fX0pO3ZhciBrM3IsUzNyPXAoKCk9Pnt4ZSgpO2szcj1bbS5kZWZhdWx0U3R5bGVzLG9lYAogICAgOmhvc3QgewogICAgICBkaXNwbGF5OiBibG9jazsKICAgICAgd2lkdGg6IDEwMCU7CiAgICAgIGhlaWdodDogNjAwcHg7CiAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgZm9udC1mYW1pbHk6ICdHZWlzdCBTYW5zJywgc2Fucy1zZXJpZjsKICAgICAgY29udGFpbjogbGF5b3V0IHN0eWxlOwogICAgfQoKICAgIC5wZGYtdmlld2VyIHsKICAgICAgd2lkdGg6IDEwMCU7CiAgICAgIGhlaWdodDogMTAwJTsKICAgICAgZGlzcGxheTogZmxleDsKICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgYmFja2dyb3VuZDogJHttLmJkVGhlbWUoImhzbCgwIDAlIDk3JSkiLCJoc2woMjE1IDIwJSAxMCUpIil9OwogICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgIG92ZXJmbG93OiBoaWRkZW47CiAgICB9CgogICAgLnRvb2xiYXIgewogICAgICBoZWlnaHQ6IDQ4cHg7CiAgICAgIGJhY2tncm91bmQ6ICR7bS5iZFRoZW1lKCJoc2woMCAwJSAxMDAlKSIsImhzbCgyMTUgMjAlIDE1JSkiKX07CiAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAke20uYmRUaGVtZSgiaHNsKDIxNCAzMSUgOTElKSIsImhzbCgyMTcgMjUlIDIyJSkiKX07CiAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgIHBhZGRpbmc6IDAgMTZweDsKICAgICAgZ2FwOiAxNnB4OwogICAgICBmbGV4LXNocmluazogMDsKICAgIH0KCiAgICAudG9vbGJhci1ncm91cCB7CiAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgIGdhcDogNHB4OwogICAgfQoKICAgIC50b29sYmFyLWdyb3VwLS1lbmQgewogICAgICBtYXJnaW4tbGVmdDogYXV0bzsKICAgIH0KCiAgICAudG9vbGJhci1idXR0b24gewogICAgICB3aWR0aDogMzJweDsKICAgICAgaGVpZ2h0OiAzMnB4OwogICAgICBib3JkZXItcmFkaXVzOiA2cHg7CiAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50OwogICAgICBib3JkZXI6IG5vbmU7CiAgICAgIGN1cnNvcjogcG9pbnRlcjsKICAgICAgZGlzcGxheTogZmxleDsKICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7CiAgICAgIHRyYW5zaXRpb246IGJhY2tncm91bmQgMC4xNXMgZWFzZTsKICAgICAgY29sb3I6ICR7bS5iZFRoZW1lKCJoc2woMjE1IDE2JSA0NSUpIiwiaHNsKDIxNSAxNiUgNzUlKSIpfTsKICAgIH0KCiAgICAudG9vbGJhci1idXR0b246aG92ZXI6bm90KDpkaXNhYmxlZCkgewogICAgICBiYWNrZ3JvdW5kOiAke20uYmRUaGVtZSgiaHNsKDIxNCAzMSUgOTIlKSIsImhzbCgyMTcgMjUlIDIyJSkiKX07CiAgICB9CgogICAgLnRvb2xiYXItYnV0dG9uOmRpc2FibGVkIHsKICAgICAgb3BhY2l0eTogMC40OwogICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkOwogICAgfQoKICAgIC50b29sYmFyLWJ1dHRvbiBkZWVzLWljb24gewogICAgICBmb250LXNpemU6IDE2cHg7CiAgICB9CgogICAgLnBhZ2UtaW5mbyB7CiAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgIGdhcDogOHB4OwogICAgICBwYWRkaW5nOiAwIDhweDsKICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgICBjb2xvcjogJHttLmJkVGhlbWUoImhzbCgyMTUgMTYlIDQ1JSkiLCJoc2woMjE1IDE2JSA3NSUpIil9OwogICAgfQoKICAgIC5wYWdlLWlucHV0IHsKICAgICAgd2lkdGg6IDQ4cHg7CiAgICAgIGhlaWdodDogMjhweDsKICAgICAgYm9yZGVyLXJhZGl1czogNHB4OwogICAgICBib3JkZXI6IDFweCBzb2xpZCAke20uYmRUaGVtZSgiaHNsKDIxNCAzMSUgODYlKSIsImhzbCgyMTcgMjUlIDI4JSkiKX07CiAgICAgIGJhY2tncm91bmQ6ICR7bS5iZFRoZW1lKCJoc2woMCAwJSAxMDAlKSIsImhzbCgyMTUgMjAlIDEyJSkiKX07CiAgICAgIGNvbG9yOiAke20uYmRUaGVtZSgiaHNsKDIyMiA0NyUgMTElKSIsImhzbCgyMTAgMjAlIDk2JSkiKX07CiAgICAgIHRleHQtYWxpZ246IGNlbnRlcjsKICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgICBmb250LWZhbWlseTogaW5oZXJpdDsKICAgICAgb3V0bGluZTogbm9uZTsKICAgIH0KCiAgICAucGFnZS1pbnB1dDpmb2N1cyB7CiAgICAgIGJvcmRlci1jb2xvcjogJHttLmJkVGhlbWUoImhzbCgyMTcgOTElIDYwJSkiLCJoc2woMjEzIDkzJSA2OCUpIil9OwogICAgfQoKICAgIC5wYWdlLXNlcGFyYXRvciB7CiAgICAgIGNvbG9yOiAke20uYmRUaGVtZSgiaHNsKDIxNSAxNiUgNjAlKSIsImhzbCgyMTUgMTYlIDUwJSkiKX07CiAgICB9CgogICAgLnpvb20tbGV2ZWwgewogICAgICBmb250LXNpemU6IDEzcHg7CiAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7CiAgICAgIG1pbi13aWR0aDogNDhweDsKICAgICAgdGV4dC1hbGlnbjogY2VudGVyOwogICAgfQoKICAgIC52aWV3ZXItY29udGFpbmVyIHsKICAgICAgZmxleDogMTsKICAgICAgZGlzcGxheTogZmxleDsKICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICBtaW4taGVpZ2h0OiAwOwogICAgfQoKICAgIC5zaWRlYmFyIHsKICAgICAgd2lkdGg6IDIwMHB4OwogICAgICBiYWNrZ3JvdW5kOiAke20uYmRUaGVtZSgiaHNsKDAgMCUgMTAwJSkiLCJoc2woMjE1IDIwJSAxNSUpIil9OwogICAgICBib3JkZXItcmlnaHQ6IDFweCBzb2xpZCAke20uYmRUaGVtZSgiaHNsKDIxNCAzMSUgOTElKSIsImhzbCgyMTcgMjUlIDIyJSkiKX07CiAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgIGhlaWdodDogMTAwJTsKICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgIH0KCiAgICAuc2lkZWJhci1oZWFkZXIgewogICAgICBoZWlnaHQ6IDQwcHg7CiAgICAgIHBhZGRpbmc6IDAgMTJweDsKICAgICAgZGlzcGxheTogZmxleDsKICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuOwogICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHttLmJkVGhlbWUoImhzbCgyMTQgMzElIDkxJSkiLCJoc2woMjE3IDI1JSAyMiUpIil9OwogICAgICBmb250LXNpemU6IDEzcHg7CiAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7CiAgICAgIGNvbG9yOiAke20uYmRUaGVtZSgiaHNsKDIxNSAxNiUgNDUlKSIsImhzbCgyMTUgMTYlIDc1JSkiKX07CiAgICB9CgogICAgLnNpZGViYXItY2xvc2UgewogICAgICB3aWR0aDogMjRweDsKICAgICAgaGVpZ2h0OiAyNHB4OwogICAgICBib3JkZXItcmFkaXVzOiA0cHg7CiAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50OwogICAgICBib3JkZXI6IG5vbmU7CiAgICAgIGN1cnNvcjogcG9pbnRlcjsKICAgICAgZGlzcGxheTogZmxleDsKICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7CiAgICAgIGNvbG9yOiAke20uYmRUaGVtZSgiaHNsKDIxNSAxNiUgNDUlKSIsImhzbCgyMTUgMTYlIDc1JSkiKX07CiAgICAgIHRyYW5zaXRpb246IGJhY2tncm91bmQgMC4xNXMgZWFzZTsKICAgIH0KCiAgICAuc2lkZWJhci1jbG9zZTpob3ZlciB7CiAgICAgIGJhY2tncm91bmQ6ICR7bS5iZFRoZW1lKCJoc2woMjE0IDMxJSA5MiUpIiwiaHNsKDIxNyAyNSUgMjIlKSIpfTsKICAgIH0KCiAgICAuc2lkZWJhci1jbG9zZSBkZWVzLWljb24gewogICAgICBmb250LXNpemU6IDE0cHg7CiAgICB9CgogICAgLnNpZGViYXItY29udGVudCB7CiAgICAgIGZsZXg6IDE7CiAgICAgIG92ZXJmbG93LXk6IGF1dG87CiAgICAgIG92ZXJmbG93LXg6IGhpZGRlbjsKICAgICAgcGFkZGluZzogMTJweDsKICAgICAgZGlzcGxheTogYmxvY2s7CiAgICAgIG92ZXJzY3JvbGwtYmVoYXZpb3I6IGNvbnRhaW47CiAgICAgIG1pbi1oZWlnaHQ6IDA7CiAgICB9CgogICAgLnRodW1ibmFpbCB7CiAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgYm9yZGVyLXJhZGl1czogOHB4OwogICAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICAgIGJvcmRlcjogMnB4IHNvbGlkIHRyYW5zcGFyZW50OwogICAgICB0cmFuc2l0aW9uOiBib3JkZXItY29sb3IgMC4xNXMgZWFzZTsKICAgICAgYmFja2dyb3VuZDogJHttLmJkVGhlbWUoImhzbCgwIDAlIDk1JSkiLCJoc2woMjE1IDIwJSAxOCUpIil9OwogICAgICBkaXNwbGF5OiBibG9jazsKICAgICAgd2lkdGg6IDEwMCU7CiAgICAgIG1hcmdpbi1ib3R0b206IDEycHg7CiAgICAgIC8qIERlZmF1bHQgQTQgYXNwZWN0IHJhdGlvICgyOTdtbSAvIDIxMG1tIOKJiCAxLjQxNCkgKi8KICAgICAgbWluLWhlaWdodDogY2FsYygxNzZweCAqIDEuNDE0KTsKICAgIH0KCiAgICAudGh1bWJuYWlsOmxhc3QtY2hpbGQgewogICAgICBtYXJnaW4tYm90dG9tOiAwOwogICAgfQoKICAgIC50aHVtYm5haWw6aG92ZXIgewogICAgICBib3JkZXItY29sb3I6ICR7bS5iZFRoZW1lKCJoc2woMjE0IDMxJSA4NiUpIiwiaHNsKDIxNyAyNSUgMzUlKSIpfTsKICAgIH0KCiAgICAudGh1bWJuYWlsLmFjdGl2ZSB7CiAgICAgIGJvcmRlci1jb2xvcjogJHttLmJkVGhlbWUoImhzbCgyMTcgOTElIDYwJSkiLCJoc2woMjEzIDkzJSA2OCUpIil9OwogICAgfQoKICAgIC50aHVtYm5haWwtY2FudmFzIHsKICAgICAgZGlzcGxheTogYmxvY2s7CiAgICAgIHdpZHRoOiAxMDAlOwogICAgICBoZWlnaHQ6IGF1dG87CiAgICAgIGltYWdlLXJlbmRlcmluZzogLXdlYmtpdC1vcHRpbWl6ZS1jb250cmFzdDsKICAgICAgaW1hZ2UtcmVuZGVyaW5nOiBjcmlzcC1lZGdlczsKICAgIH0KCiAgICAudGh1bWJuYWlsLW51bWJlciB7CiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgYm90dG9tOiA0cHg7CiAgICAgIHJpZ2h0OiA0cHg7CiAgICAgIGJhY2tncm91bmQ6ICR7bS5iZFRoZW1lKCJyZ2JhKDAsIDAsIDAsIDAuNykiLCJyZ2JhKDAsIDAsIDAsIDAuOCkiKX07CiAgICAgIGNvbG9yOiB3aGl0ZTsKICAgICAgZm9udC1zaXplOiAxMXB4OwogICAgICBmb250LXdlaWdodDogNTAwOwogICAgICBwYWRkaW5nOiAycHggNnB4OwogICAgICBib3JkZXItcmFkaXVzOiA0cHg7CiAgICB9CgogICAgLnZpZXdlci1tYWluIHsKICAgICAgZmxleDogMTsKICAgICAgb3ZlcmZsb3cteTogYXV0bzsKICAgICAgb3ZlcmZsb3cteDogaGlkZGVuOwogICAgICBwYWRkaW5nOiAyMHB4OwogICAgICBzY3JvbGwtYmVoYXZpb3I6IHNtb290aDsKICAgICAgb3ZlcnNjcm9sbC1iZWhhdmlvcjogY29udGFpbjsKICAgICAgbWluLWhlaWdodDogMDsKICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgfQoKICAgIC5sb2FkaW5nLWNvbnRhaW5lciB7CiAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOwogICAgICBoZWlnaHQ6IDEwMCU7CiAgICAgIGdhcDogMTZweDsKICAgICAgY29sb3I6ICR7bS5iZFRoZW1lKCJoc2woMjE1IDE2JSA0NSUpIiwiaHNsKDIxNSAxNiUgNzUlKSIpfTsKICAgIH0KCiAgICAubG9hZGluZy1zcGlubmVyIHsKICAgICAgd2lkdGg6IDMycHg7CiAgICAgIGhlaWdodDogMzJweDsKICAgICAgYm9yZGVyLXJhZGl1czogNTAlOwogICAgICBib3JkZXI6IDNweCBzb2xpZCAke20uYmRUaGVtZSgiaHNsKDIxNCAzMSUgODYlKSIsImhzbCgyMTcgMjUlIDI4JSkiKX07CiAgICAgIGJvcmRlci10b3AtY29sb3I6ICR7bS5iZFRoZW1lKCJoc2woMjE3IDkxJSA2MCUpIiwiaHNsKDIxMyA5MyUgNjglKSIpfTsKICAgICAgYW5pbWF0aW9uOiBzcGluIDAuOHMgbGluZWFyIGluZmluaXRlOwogICAgfQoKICAgIEBrZXlmcmFtZXMgc3BpbiB7CiAgICAgIHRvIHsKICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgzNjBkZWcpOwogICAgICB9CiAgICB9CgogICAgLmxvYWRpbmctdGV4dCB7CiAgICAgIGZvbnQtc2l6ZTogMTRweDsKICAgICAgZm9udC13ZWlnaHQ6IDUwMDsKICAgIH0KCiAgICAucGFnZXMtY29udGFpbmVyIHsKICAgICAgZGlzcGxheTogZmxleDsKICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgZ2FwOiAyMHB4OwogICAgfQoKICAgIC5wYWdlLXdyYXBwZXIgewogICAgICBkaXNwbGF5OiBmbGV4OwogICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKICAgICAgd2lkdGg6IDEwMCU7CiAgICB9CgogICAgLmNhbnZhcy1jb250YWluZXIgewogICAgICBiYWNrZ3JvdW5kOiB3aGl0ZTsKICAgICAgYm94LXNoYWRvdzogMCAycHggMTJweCAke20uYmRUaGVtZSgicmdiYSgwLCAwLCAwLCAwLjEpIiwicmdiYSgwLCAwLCAwLCAwLjMpIil9OwogICAgICBib3JkZXItcmFkaXVzOiA0cHg7CiAgICAgIG92ZXJmbG93OiBoaWRkZW47CiAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jazsKICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgfQoKICAgIC5wYWdlLWNhbnZhcyB7CiAgICAgIGRpc3BsYXk6IGJsb2NrOwogICAgICBpbWFnZS1yZW5kZXJpbmc6IC13ZWJraXQtb3B0aW1pemUtY29udHJhc3Q7CiAgICAgIGltYWdlLXJlbmRlcmluZzogY3Jpc3AtZWRnZXM7CiAgICB9CgogICAgLyogVGV4dCBsYXllciBmb3Igc2VsZWN0aW9uICovCiAgICAudGV4dC1sYXllciB7CiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgaW5zZXQ6IDA7CiAgICAgIG92ZXJmbG93OiB2aXNpYmxlOwogICAgICBsaW5lLWhlaWdodDogMTsKICAgICAgdGV4dC1zaXplLWFkanVzdDogbm9uZTsKICAgICAgZm9yY2VkLWNvbG9yLWFkanVzdDogbm9uZTsKICAgICAgdHJhbnNmb3JtLW9yaWdpbjogMCAwOwogICAgICB6LWluZGV4OiAxOwogICAgICB1c2VyLXNlbGVjdDogdGV4dDsKICAgICAgLXdlYmtpdC11c2VyLXNlbGVjdDogdGV4dDsKICAgIH0KCiAgICAudGV4dC1sYXllciBzcGFuLAogICAgLnRleHQtbGF5ZXIgYnIgewogICAgICBjb2xvcjogdHJhbnNwYXJlbnQ7CiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgd2hpdGUtc3BhY2U6IHByZTsKICAgICAgY3Vyc29yOiB0ZXh0OwogICAgICB0cmFuc2Zvcm0tb3JpZ2luOiAwJSAwJTsKICAgICAgdXNlci1zZWxlY3Q6IHRleHQ7CiAgICAgIC13ZWJraXQtdXNlci1zZWxlY3Q6IHRleHQ7CiAgICB9CgogICAgLnRleHQtbGF5ZXIgOjpzZWxlY3Rpb24gewogICAgICBiYWNrZ3JvdW5kOiByZ2JhKDAsIDEwMCwgMjAwLCAwLjMpOwogICAgfQoKICAgIC50ZXh0LWxheWVyIGJyOjpzZWxlY3Rpb24gewogICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDsKICAgIH0KCiAgICAudGV4dC1sYXllciAuZW5kT2ZDb250ZW50IHsKICAgICAgZGlzcGxheTogYmxvY2s7CiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgaW5zZXQ6IDEwMCUgMCAwOwogICAgICB6LWluZGV4OiAwOwogICAgICBjdXJzb3I6IGRlZmF1bHQ7CiAgICAgIHVzZXItc2VsZWN0OiBub25lOwogICAgfQoKICAgIC50ZXh0LWxheWVyLnNlbGVjdGluZyAuZW5kT2ZDb250ZW50IHsKICAgICAgdG9wOiAwOwogICAgfQoKICAgIC5wZGYtdmlld2VyLndpdGgtc2lkZWJhciAudmlld2VyLW1haW4gewogICAgICBtYXJnaW4tbGVmdDogMDsKICAgIH0KICBgXX0pO3ZhciB6M3IsQzNyPXAoKCk9Pnt4ZSgpO3ozcj0oKT0+Q2AKICA8c3R5bGU+CiAgICAuZGVtby1jb250YWluZXIgewogICAgICBwYWRkaW5nOiA0MHB4OwogICAgICBiYWNrZ3JvdW5kOiAjZjVmNWY1OwogICAgfQoKICAgIC5kZW1vLXNlY3Rpb24gewogICAgICBtYXJnaW4tYm90dG9tOiA0MHB4OwogICAgfQoKICAgIGgzIHsKICAgICAgbWFyZ2luLWJvdHRvbTogMjBweDsKICAgICAgZm9udC1zaXplOiAxOHB4OwogICAgICBmb250LXdlaWdodDogNjAwOwogICAgfQoKICAgIGRlZXMtcGRmLXZpZXdlciB7CiAgICAgIGJvcmRlcjogMXB4IHNvbGlkICNkZGQ7CiAgICAgIGJvcmRlci1yYWRpdXM6IDhweDsKICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgIH0KCiAgICAudmlld2VyLXRhbGwgewogICAgICBoZWlnaHQ6IDgwMHB4OwogICAgfQoKICAgIC52aWV3ZXItY29tcGFjdCB7CiAgICAgIGhlaWdodDogNTAwcHg7CiAgICB9CiAgPC9zdHlsZT4KCiAgPGRpdiBjbGFzcz0iZGVtby1jb250YWluZXIiPgogICAgPGRpdiBjbGFzcz0iZGVtby1zZWN0aW9uIj4KICAgICAgPGgzPkZ1bGwgRmVhdHVyZWQgUERGIFZpZXdlciB3aXRoIFRvb2xiYXI8L2gzPgogICAgICA8ZGVlcy1wZGYtdmlld2VyCiAgICAgICAgY2xhc3M9InZpZXdlci10YWxsIgogICAgICAgIHBkZlVybD0iaHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL21vemlsbGEvcGRmLmpzL2JhMmVkZWFlL3dlYi9jb21wcmVzc2VkLnRyYWNlbW9ua2V5LXBsZGktMDkucGRmIgogICAgICAgIHNob3dUb29sYmFyPSJ0cnVlIgogICAgICAgIHNob3dTaWRlYmFyPSJmYWxzZSIKICAgICAgICBpbml0aWFsWm9vbT0icGFnZS1maXQiCiAgICAgID48L2RlZXMtcGRmLXZpZXdlcj4KICAgIDwvZGl2PgoKICAgIDxkaXYgY2xhc3M9ImRlbW8tc2VjdGlvbiI+CiAgICAgIDxoMz5QREYgVmlld2VyIHdpdGggU2lkZWJhciBOYXZpZ2F0aW9uPC9oMz4KICAgICAgPGRlZXMtcGRmLXZpZXdlcgogICAgICAgIGNsYXNzPSJ2aWV3ZXItdGFsbCIKICAgICAgICBwZGZVcmw9Imh0dHBzOi8vcmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbS9tb3ppbGxhL3BkZi5qcy9iYTJlZGVhZS93ZWIvY29tcHJlc3NlZC50cmFjZW1vbmtleS1wbGRpLTA5LnBkZiIKICAgICAgICBzaG93VG9vbGJhcj0idHJ1ZSIKICAgICAgICBzaG93U2lkZWJhcj0idHJ1ZSIKICAgICAgICBpbml0aWFsWm9vbT0icGFnZS13aWR0aCIKICAgICAgPjwvZGVlcy1wZGYtdmlld2VyPgogICAgPC9kaXY+CgogICAgPGRpdiBjbGFzcz0iZGVtby1zZWN0aW9uIj4KICAgICAgPGgzPkNvbXBhY3QgVmlld2VyIHdpdGhvdXQgQ29udHJvbHM8L2gzPgogICAgICA8ZGVlcy1wZGYtdmlld2VyCiAgICAgICAgY2xhc3M9InZpZXdlci1jb21wYWN0IgogICAgICAgIHBkZlVybD0iaHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL21vemlsbGEvcGRmLmpzL2JhMmVkZWFlL2V4YW1wbGVzL2xlYXJuaW5nL2hlbGxvd29ybGQucGRmIgogICAgICAgIHNob3dUb29sYmFyPSJmYWxzZSIKICAgICAgICBzaG93U2lkZWJhcj0iZmFsc2UiCiAgICAgICAgaW5pdGlhbFpvb209ImF1dG8iCiAgICAgID48L2RlZXMtcGRmLXZpZXdlcj4KICAgIDwvZGl2PgogIDwvZGl2PgpgfSk7dmFyIGVvLGcxLFQzcix4ZGU9cCgoKT0+e3hlKCk7bkYoKTtTM3IoKTtDM3IoKTtvcigpO2VvPWZ1bmN0aW9uKGUsdCxyLGksYSxuKXtmdW5jdGlvbiBvKHkpe2lmKHkhPT12b2lkIDAmJnR5cGVvZiB5IT0iZnVuY3Rpb24iKXRocm93IG5ldyBUeXBlRXJyb3IoIkZ1bmN0aW9uIGV4cGVjdGVkIik7cmV0dXJuIHl9Zm9yKHZhciBzPWkua2luZCxsPXM9PT0iZ2V0dGVyIj8iZ2V0IjpzPT09InNldHRlciI/InNldCI6InZhbHVlIixjPSF0JiZlP2kuc3RhdGljP2U6ZS5wcm90b3R5cGU6bnVsbCx1PXR8fChjP09iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoYyxpLm5hbWUpOnt9KSxkLGg9ITEsZj1yLmxlbmd0aC0xO2Y+PTA7Zi0tKXt2YXIgeD17fTtmb3IodmFyIHYgaW4gaSl4W3ZdPXY9PT0iYWNjZXNzIj97fTppW3ZdO2Zvcih2YXIgdiBpbiBpLmFjY2Vzcyl4LmFjY2Vzc1t2XT1pLmFjY2Vzc1t2XTt4LmFkZEluaXRpYWxpemVyPWZ1bmN0aW9uKHkpe2lmKGgpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGFkZCBpbml0aWFsaXplcnMgYWZ0ZXIgZGVjb3JhdGlvbiBoYXMgY29tcGxldGVkIik7bi5wdXNoKG8oeXx8bnVsbCkpfTt2YXIgYj0oMCxyW2ZdKShzPT09ImFjY2Vzc29yIj97Z2V0OnUuZ2V0LHNldDp1LnNldH06dVtsXSx4KTtpZihzPT09ImFjY2Vzc29yIil7aWYoYj09PXZvaWQgMCljb250aW51ZTtpZihiPT09bnVsbHx8dHlwZW9mIGIhPSJvYmplY3QiKXRocm93IG5ldyBUeXBlRXJyb3IoIk9iamVjdCBleHBlY3RlZCIpOyhkPW8oYi5nZXQpKSYmKHUuZ2V0PWQpLChkPW8oYi5zZXQpKSYmKHUuc2V0PWQpLChkPW8oYi5pbml0KSkmJmEudW5zaGlmdChkKX1lbHNlKGQ9byhiKSkmJihzPT09ImZpZWxkIj9hLnVuc2hpZnQoZCk6dVtsXT1kKX1jJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoYyxpLm5hbWUsdSksaD0hMH0sZzE9ZnVuY3Rpb24oZSx0LHIpe2Zvcih2YXIgaT1hcmd1bWVudHMubGVuZ3RoPjIsYT0wO2E8dC5sZW5ndGg7YSsrKXI9aT90W2FdLmNhbGwoZSxyKTp0W2FdLmNhbGwoZSk7cmV0dXJuIGk/cjp2b2lkIDB9LFQzcj0oKCk9PntsZXQgZT1beWUoImRlZXMtcGRmLXZpZXdlciIpXSx0LHI9W10saSxhPXplLG4sbz1bXSxzPVtdLGwsYz1bXSx1PVtdLGQsaD1bXSxmPVtdLHgsdj1bXSxiPVtdLHksdz1bXSxrPVtdLE8sej1bXSxNPVtdLEYsRD1bXSxOPVtdLFIsXz1bXSxTPVtdLCQsVD1bXSxFPVtdLHEsQj1bXSxHPVtdLGVlLFA9W10sZ2U9W10sd2UsST1bXSxuZT1bXTt2YXIga2U9Y2xhc3MgZXh0ZW5kcyBhe3N0YXRpY3tpPXRoaXN9c3RhdGlje2xldCBZPXR5cGVvZiBTeW1ib2w9PSJmdW5jdGlvbiImJlN5bWJvbC5tZXRhZGF0YT9PYmplY3QuY3JlYXRlKGFbU3ltYm9sLm1ldGFkYXRhXT8/bnVsbCk6dm9pZCAwO249W2ooe3R5cGU6U3RyaW5nfSldLGw9W2ooe3R5cGU6TnVtYmVyfSldLGQ9W2ooe3R5cGU6U3RyaW5nfSldLHg9W2ooe3R5cGU6Qm9vbGVhbn0pXSx5PVtqKHt0eXBlOkJvb2xlYW59KV0sTz1baih7dHlwZTpOdW1iZXJ9KV0sRj1baih7dHlwZTpOdW1iZXJ9KV0sUj1baih7dHlwZTpOdW1iZXJ9KV0sJD1baih7dHlwZTpCb29sZWFufSldLHE9W2ooe3R5cGU6U3RyaW5nfSldLGVlPVtqKHt0eXBlOkFycmF5fSldLHdlPVtqKHt0eXBlOkFycmF5fSldLGVvKHRoaXMsbnVsbCxuLHtraW5kOiJhY2Nlc3NvciIsbmFtZToicGRmVXJsIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpBPT4icGRmVXJsImluIEEsZ2V0OkE9PkEucGRmVXJsLHNldDooQSxMKT0+e0EucGRmVXJsPUx9fSxtZXRhZGF0YTpZfSxvLHMpLGVvKHRoaXMsbnVsbCxsLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiaW5pdGlhbFBhZ2UiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOkE9PiJpbml0aWFsUGFnZSJpbiBBLGdldDpBPT5BLmluaXRpYWxQYWdlLHNldDooQSxMKT0+e0EuaW5pdGlhbFBhZ2U9TH19LG1ldGFkYXRhOll9LGMsdSksZW8odGhpcyxudWxsLGQse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJpbml0aWFsWm9vbSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6QT0+ImluaXRpYWxab29tImluIEEsZ2V0OkE9PkEuaW5pdGlhbFpvb20sc2V0OihBLEwpPT57QS5pbml0aWFsWm9vbT1MfX0sbWV0YWRhdGE6WX0saCxmKSxlbyh0aGlzLG51bGwseCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InNob3dUb29sYmFyIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpBPT4ic2hvd1Rvb2xiYXIiaW4gQSxnZXQ6QT0+QS5zaG93VG9vbGJhcixzZXQ6KEEsTCk9PntBLnNob3dUb29sYmFyPUx9fSxtZXRhZGF0YTpZfSx2LGIpLGVvKHRoaXMsbnVsbCx5LHtraW5kOiJhY2Nlc3NvciIsbmFtZToic2hvd1NpZGViYXIiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOkE9PiJzaG93U2lkZWJhciJpbiBBLGdldDpBPT5BLnNob3dTaWRlYmFyLHNldDooQSxMKT0+e0Euc2hvd1NpZGViYXI9TH19LG1ldGFkYXRhOll9LHcsayksZW8odGhpcyxudWxsLE8se2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJjdXJyZW50UGFnZSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6QT0+ImN1cnJlbnRQYWdlImluIEEsZ2V0OkE9PkEuY3VycmVudFBhZ2Usc2V0OihBLEwpPT57QS5jdXJyZW50UGFnZT1MfX0sbWV0YWRhdGE6WX0seixNKSxlbyh0aGlzLG51bGwsRix7a2luZDoiYWNjZXNzb3IiLG5hbWU6InRvdGFsUGFnZXMiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOkE9PiJ0b3RhbFBhZ2VzImluIEEsZ2V0OkE9PkEudG90YWxQYWdlcyxzZXQ6KEEsTCk9PntBLnRvdGFsUGFnZXM9TH19LG1ldGFkYXRhOll9LEQsTiksZW8odGhpcyxudWxsLFIse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJjdXJyZW50Wm9vbSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6QT0+ImN1cnJlbnRab29tImluIEEsZ2V0OkE9PkEuY3VycmVudFpvb20sc2V0OihBLEwpPT57QS5jdXJyZW50Wm9vbT1MfX0sbWV0YWRhdGE6WX0sXyxTKSxlbyh0aGlzLG51bGwsJCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImxvYWRpbmciLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOkE9PiJsb2FkaW5nImluIEEsZ2V0OkE9PkEubG9hZGluZyxzZXQ6KEEsTCk9PntBLmxvYWRpbmc9TH19LG1ldGFkYXRhOll9LFQsRSksZW8odGhpcyxudWxsLHEse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJkb2N1bWVudElkIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpBPT4iZG9jdW1lbnRJZCJpbiBBLGdldDpBPT5BLmRvY3VtZW50SWQsc2V0OihBLEwpPT57QS5kb2N1bWVudElkPUx9fSxtZXRhZGF0YTpZfSxCLEcpLGVvKHRoaXMsbnVsbCxlZSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InRodW1ibmFpbERhdGEiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOkE9PiJ0aHVtYm5haWxEYXRhImluIEEsZ2V0OkE9PkEudGh1bWJuYWlsRGF0YSxzZXQ6KEEsTCk9PntBLnRodW1ibmFpbERhdGE9TH19LG1ldGFkYXRhOll9LFAsZ2UpLGVvKHRoaXMsbnVsbCx3ZSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InBhZ2VEYXRhIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpBPT4icGFnZURhdGEiaW4gQSxnZXQ6QT0+QS5wYWdlRGF0YSxzZXQ6KEEsTCk9PntBLnBhZ2VEYXRhPUx9fSxtZXRhZGF0YTpZfSxJLG5lKSxlbyhudWxsLHQ9e3ZhbHVlOml9LGUse2tpbmQ6ImNsYXNzIixuYW1lOmkubmFtZSxtZXRhZGF0YTpZfSxudWxsLHIpLGtlPWk9dC52YWx1ZSxZJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoaSxTeW1ib2wubWV0YWRhdGEse2VudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwLHZhbHVlOll9KX1zdGF0aWMgZGVtbz16M3I7c3RhdGljIGRlbW9Hcm91cHM9WyJNZWRpYSIsIlBERiJdO3N0YXRpYyBzdHlsZXM9azNyOyNlPWcxKHRoaXMsbywiIik7Z2V0IHBkZlVybCgpe3JldHVybiB0aGlzLiNlfXNldCBwZGZVcmwoWSl7dGhpcy4jZT1ZfSN0PShnMSh0aGlzLHMpLGcxKHRoaXMsYywxKSk7Z2V0IGluaXRpYWxQYWdlKCl7cmV0dXJuIHRoaXMuI3R9c2V0IGluaXRpYWxQYWdlKFkpe3RoaXMuI3Q9WX0jcj0oZzEodGhpcyx1KSxnMSh0aGlzLGgsImF1dG8iKSk7Z2V0IGluaXRpYWxab29tKCl7cmV0dXJuIHRoaXMuI3J9c2V0IGluaXRpYWxab29tKFkpe3RoaXMuI3I9WX0jaT0oZzEodGhpcyxmKSxnMSh0aGlzLHYsITApKTtnZXQgc2hvd1Rvb2xiYXIoKXtyZXR1cm4gdGhpcy4jaX1zZXQgc2hvd1Rvb2xiYXIoWSl7dGhpcy4jaT1ZfSNhPShnMSh0aGlzLGIpLGcxKHRoaXMsdywhMSkpO2dldCBzaG93U2lkZWJhcigpe3JldHVybiB0aGlzLiNhfXNldCBzaG93U2lkZWJhcihZKXt0aGlzLiNhPVl9I249KGcxKHRoaXMsayksZzEodGhpcyx6LDEpKTtnZXQgY3VycmVudFBhZ2UoKXtyZXR1cm4gdGhpcy4jbn1zZXQgY3VycmVudFBhZ2UoWSl7dGhpcy4jbj1ZfSNvPShnMSh0aGlzLE0pLGcxKHRoaXMsRCwxKSk7Z2V0IHRvdGFsUGFnZXMoKXtyZXR1cm4gdGhpcy4jb31zZXQgdG90YWxQYWdlcyhZKXt0aGlzLiNvPVl9I3M9KGcxKHRoaXMsTiksZzEodGhpcyxfLDEpKTtnZXQgY3VycmVudFpvb20oKXtyZXR1cm4gdGhpcy4jc31zZXQgY3VycmVudFpvb20oWSl7dGhpcy4jcz1ZfSNsPShnMSh0aGlzLFMpLGcxKHRoaXMsVCwhMSkpO2dldCBsb2FkaW5nKCl7cmV0dXJuIHRoaXMuI2x9c2V0IGxvYWRpbmcoWSl7dGhpcy4jbD1ZfSNjPShnMSh0aGlzLEUpLGcxKHRoaXMsQiwiIikpO2dldCBkb2N1bWVudElkKCl7cmV0dXJuIHRoaXMuI2N9c2V0IGRvY3VtZW50SWQoWSl7dGhpcy4jYz1ZfSNkPShnMSh0aGlzLEcpLGcxKHRoaXMsUCxbXSkpO2dldCB0aHVtYm5haWxEYXRhKCl7cmV0dXJuIHRoaXMuI2R9c2V0IHRodW1ibmFpbERhdGEoWSl7dGhpcy4jZD1ZfSN1PShnMSh0aGlzLGdlKSxnMSh0aGlzLEksW10pKTtnZXQgcGFnZURhdGEoKXtyZXR1cm4gdGhpcy4jdX1zZXQgcGFnZURhdGEoWSl7dGhpcy4jdT1ZfXBkZkRvY3VtZW50PWcxKHRoaXMsbmUpO3JlbmRlclN0YXRlPSJpZGxlIjtyZW5kZXJBYm9ydENvbnRyb2xsZXI9bnVsbDtwYWdlUmVuZGVyaW5nPSExO3BhZ2VOdW1QZW5kaW5nPW51bGw7Y3VycmVudFJlbmRlclRhc2s9bnVsbDtjdXJyZW50UmVuZGVyUHJvbWlzZT1udWxsO3RodW1ibmFpbFJlbmRlclRhc2tzPVtdO3BhZ2VSZW5kZXJUYXNrcz1uZXcgTWFwO3RleHRMYXllclJlbmRlclRhc2tzPW5ldyBNYXA7Y2FudmFzO2N0eDt2aWV3ZXJNYWluPW51bGw7cmVzaXplT2JzZXJ2ZXI7aW50ZXJzZWN0aW9uT2JzZXJ2ZXI7c2Nyb2xsVGhyb3R0bGVUaW1lb3V0O3ZpZXdwb3J0RGltZW5zaW9ucz17d2lkdGg6MCxoZWlnaHQ6MH07dmlld3BvcnRNb2RlPSJhdXRvIjtNQU5VQUxfTUlOX1pPT009LjU7TUFOVUFMX01BWF9aT09NPTM7QUJTT0xVVEVfTUlOX1pPT009LjE7QUJTT0xVVEVfTUFYX1pPT009NDtQQUdFX0dBUD0yMDtSRU5ERVJfQlVGRkVSPTM7Y29uc3RydWN0b3IoKXtzdXBlcigpfXJlbmRlcigpe3JldHVybiBDYAogICAgICA8ZGl2IGNsYXNzPSJwZGYtdmlld2VyICR7dGhpcy5zaG93U2lkZWJhcj8id2l0aC1zaWRlYmFyIjoiIn0iPgogICAgICAgICR7dGhpcy5zaG93VG9vbGJhcj9DYAogICAgICAgICAgPGRpdiBjbGFzcz0idG9vbGJhciI+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9InRvb2xiYXItZ3JvdXAiPgogICAgICAgICAgICAgIDxidXR0b24KICAgICAgICAgICAgICAgIGNsYXNzPSJ0b29sYmFyLWJ1dHRvbiIKICAgICAgICAgICAgICAgIEBjbGljaz0ke3RoaXMucHJldmlvdXNQYWdlfQogICAgICAgICAgICAgICAgP2Rpc2FibGVkPSR7dGhpcy5jdXJyZW50UGFnZTw9MX0KICAgICAgICAgICAgICA+CiAgICAgICAgICAgICAgICA8ZGVlcy1pY29uIGljb249Imx1Y2lkZTpDaGV2cm9uTGVmdCI+PC9kZWVzLWljb24+CiAgICAgICAgICAgICAgPC9idXR0b24+CiAgICAgICAgICAgICAgPGRpdiBjbGFzcz0icGFnZS1pbmZvIj4KICAgICAgICAgICAgICAgIDxpbnB1dAogICAgICAgICAgICAgICAgICB0eXBlPSJudW1iZXIiCiAgICAgICAgICAgICAgICAgIG1pbj0iMSIKICAgICAgICAgICAgICAgICAgbWF4PSIke3RoaXMudG90YWxQYWdlc30iCiAgICAgICAgICAgICAgICAgIC52YWx1ZT0ke1N0cmluZyh0aGlzLmN1cnJlbnRQYWdlKX0KICAgICAgICAgICAgICAgICAgQGNoYW5nZT0ke3RoaXMuaGFuZGxlUGFnZUlucHV0fQogICAgICAgICAgICAgICAgICBjbGFzcz0icGFnZS1pbnB1dCIKICAgICAgICAgICAgICAgIC8+CiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0icGFnZS1zZXBhcmF0b3IiPi88L3NwYW4+CiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0icGFnZS10b3RhbCI+JHt0aGlzLnRvdGFsUGFnZXN9PC9zcGFuPgogICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgIDxidXR0b24KICAgICAgICAgICAgICAgIGNsYXNzPSJ0b29sYmFyLWJ1dHRvbiIKICAgICAgICAgICAgICAgIEBjbGljaz0ke3RoaXMubmV4dFBhZ2V9CiAgICAgICAgICAgICAgICA/ZGlzYWJsZWQ9JHt0aGlzLmN1cnJlbnRQYWdlPj10aGlzLnRvdGFsUGFnZXN9CiAgICAgICAgICAgICAgPgogICAgICAgICAgICAgICAgPGRlZXMtaWNvbiBpY29uPSJsdWNpZGU6Q2hldnJvblJpZ2h0Ij48L2RlZXMtaWNvbj4KICAgICAgICAgICAgICA8L2J1dHRvbj4KICAgICAgICAgICAgPC9kaXY+CgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJ0b29sYmFyLWdyb3VwIj4KICAgICAgICAgICAgICA8YnV0dG9uCiAgICAgICAgICAgICAgICBjbGFzcz0idG9vbGJhci1idXR0b24iCiAgICAgICAgICAgICAgICBAY2xpY2s9JHt0aGlzLnpvb21PdXR9CiAgICAgICAgICAgICAgICA/ZGlzYWJsZWQ9JHshdGhpcy5jYW5ab29tT3V0fQogICAgICAgICAgICAgID4KICAgICAgICAgICAgICAgIDxkZWVzLWljb24gaWNvbj0ibHVjaWRlOlpvb21PdXQiPjwvZGVlcy1pY29uPgogICAgICAgICAgICAgIDwvYnV0dG9uPgogICAgICAgICAgICAgIDxidXR0b24KICAgICAgICAgICAgICAgIGNsYXNzPSJ0b29sYmFyLWJ1dHRvbiIKICAgICAgICAgICAgICAgIEBjbGljaz0ke3RoaXMucmVzZXRab29tfQogICAgICAgICAgICAgID4KICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJ6b29tLWxldmVsIj4ke01hdGgucm91bmQodGhpcy5jdXJyZW50Wm9vbSoxMDApfSU8L3NwYW4+CiAgICAgICAgICAgICAgPC9idXR0b24+CiAgICAgICAgICAgICAgPGJ1dHRvbgogICAgICAgICAgICAgICAgY2xhc3M9InRvb2xiYXItYnV0dG9uIgogICAgICAgICAgICAgICAgQGNsaWNrPSR7dGhpcy56b29tSW59CiAgICAgICAgICAgICAgICA/ZGlzYWJsZWQ9JHshdGhpcy5jYW5ab29tSW59CiAgICAgICAgICAgICAgPgogICAgICAgICAgICAgICAgPGRlZXMtaWNvbiBpY29uPSJsdWNpZGU6Wm9vbUluIj48L2RlZXMtaWNvbj4KICAgICAgICAgICAgICA8L2J1dHRvbj4KICAgICAgICAgICAgPC9kaXY+CgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJ0b29sYmFyLWdyb3VwIj4KICAgICAgICAgICAgICA8YnV0dG9uCiAgICAgICAgICAgICAgICBjbGFzcz0idG9vbGJhci1idXR0b24iCiAgICAgICAgICAgICAgICBAY2xpY2s9JHt0aGlzLmZpdFRvUGFnZX0KICAgICAgICAgICAgICAgIHRpdGxlPSJGaXQgdG8gcGFnZSIKICAgICAgICAgICAgICA+CiAgICAgICAgICAgICAgICA8ZGVlcy1pY29uIGljb249Imx1Y2lkZTpNYXhpbWl6ZSI+PC9kZWVzLWljb24+CiAgICAgICAgICAgICAgPC9idXR0b24+CiAgICAgICAgICAgICAgPGJ1dHRvbgogICAgICAgICAgICAgICAgY2xhc3M9InRvb2xiYXItYnV0dG9uIgogICAgICAgICAgICAgICAgQGNsaWNrPSR7dGhpcy5maXRUb1dpZHRofQogICAgICAgICAgICAgICAgdGl0bGU9IkZpdCB0byB3aWR0aCIKICAgICAgICAgICAgICA+CiAgICAgICAgICAgICAgICA8ZGVlcy1pY29uIGljb249Imx1Y2lkZTpBcnJvd0xlZnRSaWdodCI+PC9kZWVzLWljb24+CiAgICAgICAgICAgICAgPC9idXR0b24+CiAgICAgICAgICAgIDwvZGl2PgoKICAgICAgICAgICAgPGRpdiBjbGFzcz0idG9vbGJhci1ncm91cCB0b29sYmFyLWdyb3VwLS1lbmQiPgogICAgICAgICAgICAgIDxidXR0b24KICAgICAgICAgICAgICAgIGNsYXNzPSJ0b29sYmFyLWJ1dHRvbiIKICAgICAgICAgICAgICAgIEBjbGljaz0keygpPT50aGlzLnNob3dTaWRlYmFyPSF0aGlzLnNob3dTaWRlYmFyfQogICAgICAgICAgICAgICAgdGl0bGU9IiR7dGhpcy5zaG93U2lkZWJhcj8iSGlkZSB0aHVtYm5haWxzIjoiU2hvdyB0aHVtYm5haWxzIn0iCiAgICAgICAgICAgICAgPgogICAgICAgICAgICAgICAgPGRlZXMtaWNvbiBpY29uPSIke3RoaXMuc2hvd1NpZGViYXI/Imx1Y2lkZTpTaWRlYmFyQ2xvc2UiOiJsdWNpZGU6U2lkZWJhciJ9Ij48L2RlZXMtaWNvbj4KICAgICAgICAgICAgICA8L2J1dHRvbj4KICAgICAgICAgICAgICA8YnV0dG9uCiAgICAgICAgICAgICAgICBjbGFzcz0idG9vbGJhci1idXR0b24iCiAgICAgICAgICAgICAgICBAY2xpY2s9JHt0aGlzLmRvd25sb2FkUGRmfQogICAgICAgICAgICAgICAgdGl0bGU9IkRvd25sb2FkIgogICAgICAgICAgICAgID4KICAgICAgICAgICAgICAgIDxkZWVzLWljb24gaWNvbj0ibHVjaWRlOkRvd25sb2FkIj48L2RlZXMtaWNvbj4KICAgICAgICAgICAgICA8L2J1dHRvbj4KICAgICAgICAgICAgICA8YnV0dG9uCiAgICAgICAgICAgICAgICBjbGFzcz0idG9vbGJhci1idXR0b24iCiAgICAgICAgICAgICAgICBAY2xpY2s9JHt0aGlzLnByaW50UGRmfQogICAgICAgICAgICAgICAgdGl0bGU9IlByaW50IgogICAgICAgICAgICAgID4KICAgICAgICAgICAgICAgIDxkZWVzLWljb24gaWNvbj0ibHVjaWRlOlByaW50ZXIiPjwvZGVlcy1pY29uPgogICAgICAgICAgICAgIDwvYnV0dG9uPgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIDwvZGl2PgogICAgICAgIGA6IiJ9CgogICAgICAgIDxkaXYgY2xhc3M9InZpZXdlci1jb250YWluZXIiPgogICAgICAgICAgJHt0aGlzLnNob3dTaWRlYmFyP0NgCiAgICAgICAgICAgIDxkaXYgY2xhc3M9InNpZGViYXIiPgogICAgICAgICAgICAgIDxkaXYgY2xhc3M9InNpZGViYXItaGVhZGVyIj4KICAgICAgICAgICAgICAgIDxzcGFuPlBhZ2VzPC9zcGFuPgogICAgICAgICAgICAgICAgPGJ1dHRvbgogICAgICAgICAgICAgICAgICBjbGFzcz0ic2lkZWJhci1jbG9zZSIKICAgICAgICAgICAgICAgICAgQGNsaWNrPSR7KCk9PnRoaXMuc2hvd1NpZGViYXI9ITF9CiAgICAgICAgICAgICAgICA+CiAgICAgICAgICAgICAgICAgIDxkZWVzLWljb24gaWNvbj0ibHVjaWRlOlgiPjwvZGVlcy1pY29uPgogICAgICAgICAgICAgICAgPC9idXR0b24+CiAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgPGRpdiBjbGFzcz0ic2lkZWJhci1jb250ZW50Ij4KICAgICAgICAgICAgICAgICR7RW8ua2V5ZWQodGhpcy5kb2N1bWVudElkLENgCiAgICAgICAgICAgICAgICAgICR7RW8ucmVwZWF0KHRoaXMudGh1bWJuYWlsRGF0YSxZPT5ZLnBhZ2UsWT0+Q2AKICAgICAgICAgICAgICAgICAgICAgIDxkaXYKICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9InRodW1ibmFpbCAke3RoaXMuY3VycmVudFBhZ2U9PT1ZLnBhZ2U/ImFjdGl2ZSI6IiJ9IgogICAgICAgICAgICAgICAgICAgICAgICBkYXRhLXBhZ2U9IiR7WS5wYWdlfSIKICAgICAgICAgICAgICAgICAgICAgICAgQGNsaWNrPSR7dGhpcy5oYW5kbGVUaHVtYm5haWxDbGlja30KICAgICAgICAgICAgICAgICAgICAgID4KICAgICAgICAgICAgICAgICAgICAgICAgPGNhbnZhcyBjbGFzcz0idGh1bWJuYWlsLWNhbnZhcyIgZGF0YS1wYWdlPSIke1kucGFnZX0iPjwvY2FudmFzPgogICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0idGh1bWJuYWlsLW51bWJlciI+JHtZLnBhZ2V9PC9zcGFuPgogICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgYCl9CiAgICAgICAgICAgICAgICBgKX0KICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICBgOiIifQoKICAgICAgICAgIDxkaXYgY2xhc3M9InZpZXdlci1tYWluIiBAc2Nyb2xsPSR7dGhpcy5oYW5kbGVTY3JvbGx9PgogICAgICAgICAgICAke3RoaXMubG9hZGluZz9DYAogICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImxvYWRpbmctY29udGFpbmVyIj4KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImxvYWRpbmctc3Bpbm5lciI+PC9kaXY+CiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJsb2FkaW5nLXRleHQiPkxvYWRpbmcgUERGLi4uPC9kaXY+CiAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIGA6Q2AKICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJwYWdlcy1jb250YWluZXIiPgogICAgICAgICAgICAgICAgJHtFby5yZXBlYXQodGhpcy5wYWdlRGF0YSxZPT5ZLnBhZ2UsWT0+Q2AKICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJwYWdlLXdyYXBwZXIiIGRhdGEtcGFnZT0iJHtZLnBhZ2V9Ij4KICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNhbnZhcy1jb250YWluZXIiPgogICAgICAgICAgICAgICAgICAgICAgICA8Y2FudmFzIGNsYXNzPSJwYWdlLWNhbnZhcyIgZGF0YS1wYWdlPSIke1kucGFnZX0iPjwvY2FudmFzPgogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJ0ZXh0LWxheWVyIiBkYXRhLXBhZ2U9IiR7WS5wYWdlfSI+PC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgYCl9CiAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIGB9CiAgICAgICAgICA8L2Rpdj4KICAgICAgICA8L2Rpdj4KICAgICAgPC9kaXY+CiAgICBgfWFzeW5jIGNvbm5lY3RlZENhbGxiYWNrKCl7YXdhaXQgc3VwZXIuY29ubmVjdGVkQ2FsbGJhY2soKSxhd2FpdCB0aGlzLnVwZGF0ZUNvbXBsZXRlLHRoaXMuZW5zdXJlVmlld2VyUmVmcygpLHRoaXMucGRmVXJsJiYodGhpcy5kb2N1bWVudElkPWAke3RoaXMucGRmVXJsfS0ke0RhdGUubm93KCl9LSR7TWF0aC5yYW5kb20oKX1gLGF3YWl0IHRoaXMubG9hZFBkZigpKX1hc3luYyBkaXNjb25uZWN0ZWRDYWxsYmFjaygpe2F3YWl0IHN1cGVyLmRpc2Nvbm5lY3RlZENhbGxiYWNrKCksdGhpcy5yZXNpemVPYnNlcnZlcj8uZGlzY29ubmVjdCgpLHRoaXMucmVzaXplT2JzZXJ2ZXI9dm9pZCAwLHRoaXMuaW50ZXJzZWN0aW9uT2JzZXJ2ZXI/LmRpc2Nvbm5lY3QoKSx0aGlzLmludGVyc2VjdGlvbk9ic2VydmVyPXZvaWQgMCx0aGlzLnNjcm9sbFRocm90dGxlVGltZW91dCYmKGNsZWFyVGltZW91dCh0aGlzLnNjcm9sbFRocm90dGxlVGltZW91dCksdGhpcy5zY3JvbGxUaHJvdHRsZVRpbWVvdXQ9dm9pZCAwKSx0aGlzLnJlbmRlclN0YXRlPSJkaXNwb3NlZCIsYXdhaXQgdGhpcy5jbGVhbnVwRG9jdW1lbnQoKSx0aGlzLmNhbnZhcz12b2lkIDAsdGhpcy5jdHg9dm9pZCAwfWFzeW5jIHVwZGF0ZWQoWSl7aWYoc3VwZXIudXBkYXRlZChZKSxZLmhhcygicGRmVXJsIikmJnRoaXMucGRmVXJsKXtsZXQgQT1ZLmdldCgicGRmVXJsIik7QSYmb2wucmVsZWFzZURvY3VtZW50KEEpLHRoaXMuZG9jdW1lbnRJZD1gJHt0aGlzLnBkZlVybH0tJHtEYXRlLm5vdygpfS0ke01hdGgucmFuZG9tKCl9YCxhd2FpdCB0aGlzLmxvYWRQZGYoKX1ZLmhhcygic2hvd1NpZGViYXIiKSYmdGhpcy5zaG93U2lkZWJhciYmdGhpcy5wZGZEb2N1bWVudCYmKGF3YWl0IG5ldyBQcm9taXNlKEE9PnJlcXVlc3RBbmltYXRpb25GcmFtZShBKSksdGhpcy50aHVtYm5haWxEYXRhLmZvckVhY2goQT0+QS5yZW5kZXJlZD0hMSksYXdhaXQgdGhpcy5yZW5kZXJUaHVtYm5haWxzKCksdGhpcy5zZXR1cEludGVyc2VjdGlvbk9ic2VydmVyKCksdGhpcy5zY3JvbGxUaHVtYm5haWxJbnRvVmlldyh0aGlzLmN1cnJlbnRQYWdlKSl9YXN5bmMgbG9hZFBkZigpe3RoaXMubG9hZGluZz0hMCx0aGlzLnJlbmRlclN0YXRlPSJsb2FkaW5nIjt0cnl7YXdhaXQgdGhpcy5jbGVhbnVwRG9jdW1lbnQoKSx0aGlzLnJlbmRlckFib3J0Q29udHJvbGxlcj1uZXcgQWJvcnRDb250cm9sbGVyO2xldCBZPXRoaXMucmVuZGVyQWJvcnRDb250cm9sbGVyLnNpZ25hbDtpZih0aGlzLnBkZkRvY3VtZW50PWF3YWl0IG9sLmxvYWREb2N1bWVudCh0aGlzLnBkZlVybCksWS5hYm9ydGVkfHwodGhpcy50b3RhbFBhZ2VzPXRoaXMucGRmRG9jdW1lbnQubnVtUGFnZXMsdGhpcy5jdXJyZW50UGFnZT10aGlzLmluaXRpYWxQYWdlLHRoaXMucmVzb2x2ZUluaXRpYWxWaWV3cG9ydE1vZGUoKSx0aGlzLnRodW1ibmFpbERhdGE9QXJyYXkuZnJvbSh7bGVuZ3RoOnRoaXMudG90YWxQYWdlc30sKEEsTCk9Pih7cGFnZTpMKzEscmVuZGVyZWQ6ITF9KSksdGhpcy5wYWdlRGF0YT1BcnJheS5mcm9tKHtsZW5ndGg6dGhpcy50b3RhbFBhZ2VzfSwoQSxMKT0+KHtwYWdlOkwrMSxyZW5kZXJlZDohMSxyZW5kZXJpbmc6ITEsdGV4dExheWVyUmVuZGVyZWQ6ITF9KSksdGhpcy5sb2FkaW5nPSExLGF3YWl0IHRoaXMudXBkYXRlQ29tcGxldGUsdGhpcy5lbnN1cmVWaWV3ZXJSZWZzKCksdGhpcy5zZXR1cEludGVyc2VjdGlvbk9ic2VydmVyKCksYXdhaXQgbmV3IFByb21pc2UoQT0+cmVxdWVzdEFuaW1hdGlvbkZyYW1lKEEpKSxZLmFib3J0ZWQpfHwodGhpcy5yZW5kZXJTdGF0ZT0icmVuZGVyaW5nLW1haW4iLGF3YWl0IHRoaXMucmVuZGVyVmlzaWJsZVBhZ2VzKCksWS5hYm9ydGVkKXx8KHRoaXMuaW5pdGlhbFBhZ2U+MSYmYXdhaXQgdGhpcy5zY3JvbGxUb1BhZ2UodGhpcy5pbml0aWFsUGFnZSwhMSksdGhpcy5zaG93U2lkZWJhciYmKGF3YWl0IHRoaXMudXBkYXRlQ29tcGxldGUsYXdhaXQgbmV3IFByb21pc2UoQT0+cmVxdWVzdEFuaW1hdGlvbkZyYW1lKEEpKSxZLmFib3J0ZWR8fChhd2FpdCB0aGlzLnJlbmRlclRodW1ibmFpbHMoKSxZLmFib3J0ZWQpKSkpcmV0dXJuO3RoaXMucmVuZGVyU3RhdGU9InJlbmRlcmVkIn1jYXRjaChZKXtjb25zb2xlLmVycm9yKCJFcnJvciBsb2FkaW5nIFBERjoiLFkpLHRoaXMubG9hZGluZz0hMSx0aGlzLnJlbmRlclN0YXRlPSJlcnJvciJ9fXNldHVwSW50ZXJzZWN0aW9uT2JzZXJ2ZXIoKXt0aGlzLmludGVyc2VjdGlvbk9ic2VydmVyJiZ0aGlzLmludGVyc2VjdGlvbk9ic2VydmVyLmRpc2Nvbm5lY3QoKSx0aGlzLmludGVyc2VjdGlvbk9ic2VydmVyPW5ldyBJbnRlcnNlY3Rpb25PYnNlcnZlcihBPT57Zm9yKGxldCBMIG9mIEEpe2xldCBVPUwudGFyZ2V0LFY9cGFyc2VJbnQoVS5kYXRhc2V0LnBhZ2V8fCIxIik7TC5pc0ludGVyc2VjdGluZyYmdGhpcy5yZW5kZXJQYWdlSWZOZWVkZWQoVil9fSx7cm9vdDp0aGlzLnZpZXdlck1haW4scm9vdE1hcmdpbjpgJHt0aGlzLlJFTkRFUl9CVUZGRVIqMTAwfXB4IDBweGAsdGhyZXNob2xkOi4wMX0pO2xldCBZPXRoaXMuc2hhZG93Um9vdD8ucXVlcnlTZWxlY3RvckFsbCgiLnBhZ2Utd3JhcHBlciIpO1kmJlkuZm9yRWFjaChBPT57dGhpcy5pbnRlcnNlY3Rpb25PYnNlcnZlcj8ub2JzZXJ2ZShBKX0pfWFzeW5jIHJlbmRlclZpc2libGVQYWdlcygpe2lmKCF0aGlzLnZpZXdlck1haW4pcmV0dXJuO2xldCBZPXRoaXMudmlld2VyTWFpbi5jbGllbnRIZWlnaHQ7Zm9yKGxldCBBIG9mIHRoaXMucGFnZURhdGEpe2xldCBMPXRoaXMuc2hhZG93Um9vdD8ucXVlcnlTZWxlY3RvcihgLnBhZ2Utd3JhcHBlcltkYXRhLXBhZ2U9IiR7QS5wYWdlfSJdYCk7aWYoIUwpY29udGludWU7bGV0IFU9TC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKSxWPXRoaXMudmlld2VyTWFpbi5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKSxYPVUudG9wLVYudG9wLGRlPVgrVS5oZWlnaHQsdmU9dGhpcy5SRU5ERVJfQlVGRkVSKlk7ZGU+PS12ZSYmWDw9WSt2ZSYmYXdhaXQgdGhpcy5yZW5kZXJQYWdlSWZOZWVkZWQoQS5wYWdlKX19YXN5bmMgcmVuZGVyUGFnZUlmTmVlZGVkKFkpe2xldCBBPXRoaXMucGFnZURhdGEuZmluZChMPT5MLnBhZ2U9PT1ZKTtpZighKCFBfHxBLnJlbmRlcmVkfHxBLnJlbmRlcmluZykpe0EucmVuZGVyaW5nPSEwO3RyeXtsZXQgTD10aGlzLnNoYWRvd1Jvb3Q/LnF1ZXJ5U2VsZWN0b3IoYC5wYWdlLWNhbnZhc1tkYXRhLXBhZ2U9IiR7WX0iXWApO2lmKCFMKXtBLnJlbmRlcmluZz0hMTtyZXR1cm59bGV0IFU9YXdhaXQgdGhpcy5wZGZEb2N1bWVudC5nZXRQYWdlKFkpLFY9dGhpcy5jb21wdXRlVmlld3BvcnQoVSksWD13aW5kb3cuZGV2aWNlUGl4ZWxSYXRpb3x8MTtMLndpZHRoPU1hdGguZmxvb3IoVi53aWR0aCpYKSxMLmhlaWdodD1NYXRoLmZsb29yKFYuaGVpZ2h0KlgpLEwuc3R5bGUud2lkdGg9YCR7Vi53aWR0aH1weGAsTC5zdHlsZS5oZWlnaHQ9YCR7Vi5oZWlnaHR9cHhgO2xldCBkZT1MLmdldENvbnRleHQoIjJkIik7aWYoIWRlKXtVLmNsZWFudXA/LigpLEEucmVuZGVyaW5nPSExO3JldHVybn1kZS5zY2FsZShYLFgpO2xldCB2ZT17Y2FudmFzQ29udGV4dDpkZSx2aWV3cG9ydDpWfSxMZT1VLnJlbmRlcih2ZSk7dGhpcy5wYWdlUmVuZGVyVGFza3Muc2V0KFksTGUpLGF3YWl0IExlLnByb21pc2UsVS5jbGVhbnVwPy4oKSxBLnJlbmRlcmVkPSEwLEEucmVuZGVyaW5nPSExLHRoaXMucGFnZVJlbmRlclRhc2tzLmRlbGV0ZShZKSxhd2FpdCB0aGlzLnJlbmRlclRleHRMYXllcihZKSx0aGlzLnJlcXVlc3RVcGRhdGUoInBhZ2VEYXRhIil9Y2F0Y2goTCl7TD8ubmFtZSE9PSJSZW5kZXJpbmdDYW5jZWxsZWRFeGNlcHRpb24iJiZjb25zb2xlLmVycm9yKGBFcnJvciByZW5kZXJpbmcgcGFnZSAke1l9OmAsTCksQS5yZW5kZXJpbmc9ITEsdGhpcy5wYWdlUmVuZGVyVGFza3MuZGVsZXRlKFkpfX19YXN5bmMgcmVuZGVyVGV4dExheWVyKFkpe2xldCBBPXRoaXMucGFnZURhdGEuZmluZChMPT5MLnBhZ2U9PT1ZKTtpZighKCFBfHxBLnRleHRMYXllclJlbmRlcmVkKSl0cnl7bGV0IEw9dGhpcy5zaGFkb3dSb290Py5xdWVyeVNlbGVjdG9yKGAudGV4dC1sYXllcltkYXRhLXBhZ2U9IiR7WX0iXWApO2lmKCFMKXJldHVybjtMLmlubmVySFRNTD0iIjtsZXQgVT1hd2FpdCB0aGlzLnBkZkRvY3VtZW50LmdldFBhZ2UoWSksVj1hd2FpdCBVLmdldFRleHRDb250ZW50KCksWD10aGlzLmNvbXB1dGVWaWV3cG9ydChVKSxkZT1hd2FpdCBpbXBvcnQoImh0dHBzOi8vY2RuLmpzZGVsaXZyLm5ldC9ucG0vcGRmanMtZGlzdEA0LjAuMzc5Lytlc20iKTtMLnN0eWxlLndpZHRoPWAke1gud2lkdGh9cHhgLEwuc3R5bGUuaGVpZ2h0PWAke1guaGVpZ2h0fXB4YCxMLnN0eWxlLnNldFByb3BlcnR5KCItLXNjYWxlLWZhY3RvciIsU3RyaW5nKFguc2NhbGUpKTtsZXQgdmU9ZGUucmVuZGVyVGV4dExheWVyKHt0ZXh0Q29udGVudFNvdXJjZTpWLGNvbnRhaW5lcjpMLHZpZXdwb3J0Olh9KTt0aGlzLnRleHRMYXllclJlbmRlclRhc2tzLnNldChZLHZlKSxhd2FpdCB2ZS5wcm9taXNlO2xldCBMZT1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTtMZS5jbGFzc05hbWU9ImVuZE9mQ29udGVudCIsTC5hcHBlbmRDaGlsZChMZSk7bGV0IFc9ITEsSD1udWxsLHRlPTAsYmU9KGhlLGllKT0+e2xldCBTZT1BcnJheS5mcm9tKEwucXVlcnlTZWxlY3RvckFsbCgic3BhbiIpKTtmb3IobGV0IEllIG9mIFNlKXtsZXQgWmU9SWUuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7aWYoaGU+PVplLmxlZnQmJmhlPD1aZS5yaWdodCYmaWU+PVplLnRvcCYmaWU8PVplLmJvdHRvbSl7bGV0IEs9SWUuZmlyc3RDaGlsZDtpZihLJiZLLm5vZGVUeXBlPT09Tm9kZS5URVhUX05PREUpe2xldCBaPUsudGV4dENvbnRlbnR8fCIiLEo9WmUud2lkdGgvWi5sZW5ndGgsbWU9aGUtWmUubGVmdCxFZT1NYXRoLm1pbihNYXRoLnJvdW5kKG1lL0opLFoubGVuZ3RoKTtyZXR1cm57bm9kZTpLLG9mZnNldDpFZX19fX1yZXR1cm4gbnVsbH0sdWU9KCk9PntXJiYoVz0hMSxIPW51bGwsTC5jbGFzc0xpc3QucmVtb3ZlKCJzZWxlY3RpbmciKSksZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcigibW91c2V1cCIsdWUpLGRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoIm1vdXNlbW92ZSIsQ2UpfSxDZT1oZT0+e2lmKCFXfHwhSClyZXR1cm47aGUucHJldmVudERlZmF1bHQoKTtsZXQgaWU9YmUoaGUuY2xpZW50WCxoZS5jbGllbnRZKTtpZihpZSl7bGV0IFNlPXdpbmRvdy5nZXRTZWxlY3Rpb24oKTtpZihTZSl0cnl7U2Uuc2V0QmFzZUFuZEV4dGVudChILHRlLGllLm5vZGUsaWUub2Zmc2V0KX1jYXRjaHt9fX07TC5hZGRFdmVudExpc3RlbmVyKCJtb3VzZWRvd24iLGhlPT57aWYoaGUuYnV0dG9uIT09MClyZXR1cm47bGV0IGllPWJlKGhlLmNsaWVudFgsaGUuY2xpZW50WSk7aWUmJihoZS5wcmV2ZW50RGVmYXVsdCgpLFc9ITAsSD1pZS5ub2RlLHRlPWllLm9mZnNldCxMLmNsYXNzTGlzdC5hZGQoInNlbGVjdGluZyIpLHdpbmRvdy5nZXRTZWxlY3Rpb24oKT8ucmVtb3ZlQWxsUmFuZ2VzKCksZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigibW91c2Vtb3ZlIixDZSksZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigibW91c2V1cCIsdWUpKX0pLEEudGV4dExheWVyUmVuZGVyZWQ9ITAsVS5jbGVhbnVwPy4oKSx0aGlzLnRleHRMYXllclJlbmRlclRhc2tzLmRlbGV0ZShZKX1jYXRjaChMKXtMPy5uYW1lIT09IlJlbmRlcmluZ0NhbmNlbGxlZEV4Y2VwdGlvbiImJmNvbnNvbGUuZXJyb3IoYEVycm9yIHJlbmRlcmluZyB0ZXh0IGxheWVyIGZvciBwYWdlICR7WX06YCxMKSx0aGlzLnRleHRMYXllclJlbmRlclRhc2tzLmRlbGV0ZShZKX19aGFuZGxlU2Nyb2xsPSgpPT57dGhpcy5zY3JvbGxUaHJvdHRsZVRpbWVvdXQmJmNsZWFyVGltZW91dCh0aGlzLnNjcm9sbFRocm90dGxlVGltZW91dCksdGhpcy5zY3JvbGxUaHJvdHRsZVRpbWVvdXQ9d2luZG93LnNldFRpbWVvdXQoKCk9Pnt0aGlzLnVwZGF0ZUN1cnJlbnRQYWdlKCksdGhpcy5yZW5kZXJWaXNpYmxlUGFnZXMoKX0sNTApfTt1cGRhdGVDdXJyZW50UGFnZSgpe2lmKCF0aGlzLnZpZXdlck1haW4pcmV0dXJuO2xldCBZPXRoaXMudmlld2VyTWFpbi5zY3JvbGxUb3AsQT10aGlzLnZpZXdlck1haW4uY2xpZW50SGVpZ2h0LEw9WStBLzI7Zm9yKGxldCBVPTA7VTx0aGlzLnBhZ2VEYXRhLmxlbmd0aDtVKyspe2xldCBWPXRoaXMuc2hhZG93Um9vdD8ucXVlcnlTZWxlY3RvcihgLnBhZ2Utd3JhcHBlcltkYXRhLXBhZ2U9IiR7VSsxfSJdYCk7aWYoIVYpY29udGludWU7bGV0IFg9Vi5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKSxkZT10aGlzLnZpZXdlck1haW4uZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCksdmU9WC50b3AtZGUudG9wK1ksTGU9dmUrWC5oZWlnaHQ7aWYoTD49dmUmJkw8PUxlKXt0aGlzLmN1cnJlbnRQYWdlIT09VSsxJiYodGhpcy5jdXJyZW50UGFnZT1VKzEsdGhpcy5zaG93U2lkZWJhciYmdGhpcy5zY3JvbGxUaHVtYm5haWxJbnRvVmlldyhVKzEpKTticmVha319fXNjcm9sbFRodW1ibmFpbEludG9WaWV3KFkpe2xldCBBPXRoaXMuc2hhZG93Um9vdD8ucXVlcnlTZWxlY3RvcihgLnRodW1ibmFpbFtkYXRhLXBhZ2U9IiR7WX0iXWApLEw9dGhpcy5zaGFkb3dSb290Py5xdWVyeVNlbGVjdG9yKCIuc2lkZWJhci1jb250ZW50Iik7aWYoQSYmTCl7bGV0IFU9QS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKSxWPUwuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCksWD1VLnRvcDxWLnRvcCxkZT1VLmJvdHRvbT5WLmJvdHRvbTtpZihYfHxkZSl7bGV0IHZlPUEub2Zmc2V0VG9wLExlPUEub2Zmc2V0SGVpZ2h0LFc9TC5jbGllbnRIZWlnaHQsSD12ZS1XLzIrTGUvMjtMLnNjcm9sbFRvKHt0b3A6TWF0aC5tYXgoMCxIKSxiZWhhdmlvcjoic21vb3RoIn0pfX19YXN5bmMgc2Nyb2xsVG9QYWdlKFksQT0hMCl7YXdhaXQgdGhpcy51cGRhdGVDb21wbGV0ZTtsZXQgTD10aGlzLnNoYWRvd1Jvb3Q/LnF1ZXJ5U2VsZWN0b3IoYC5wYWdlLXdyYXBwZXJbZGF0YS1wYWdlPSIke1l9Il1gKTtpZihMJiZ0aGlzLnZpZXdlck1haW4pe2xldCBVPUwuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCksVj10aGlzLnZpZXdlck1haW4uZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCksZGU9dGhpcy52aWV3ZXJNYWluLnNjcm9sbFRvcCsoVS50b3AtVi50b3ApLXRoaXMudmlld2VyTWFpbi5jbGllbnRUb3A7QT90aGlzLnZpZXdlck1haW4uc2Nyb2xsVG8oe3RvcDpkZSxiZWhhdmlvcjoic21vb3RoIn0pOnRoaXMudmlld2VyTWFpbi5zY3JvbGxUb3A9ZGUsdGhpcy5jdXJyZW50UGFnZT1ZLHRoaXMuc2hvd1NpZGViYXImJnRoaXMuc2Nyb2xsVGh1bWJuYWlsSW50b1ZpZXcoWSksYXdhaXQgdGhpcy5yZW5kZXJQYWdlSWZOZWVkZWQoWSl9fWFzeW5jIHJlbmRlclRodW1ibmFpbHMoKXtpZighdGhpcy5wZGZEb2N1bWVudHx8dGhpcy50aHVtYm5haWxEYXRhLmxlbmd0aD4wJiZ0aGlzLnRodW1ibmFpbERhdGEuZXZlcnkoQT0+QS5yZW5kZXJlZCl8fHRoaXMucmVuZGVyQWJvcnRDb250cm9sbGVyPy5zaWduYWwuYWJvcnRlZClyZXR1cm47bGV0IFk9dGhpcy5yZW5kZXJBYm9ydENvbnRyb2xsZXI/LnNpZ25hbDt0aGlzLnJlbmRlclN0YXRlPSJyZW5kZXJpbmctdGh1bWJzIjtmb3IobGV0IEEgb2YgdGhpcy50aHVtYm5haWxSZW5kZXJUYXNrcyl0cnl7QS5jYW5jZWwoKX1jYXRjaHt9dGhpcy50aHVtYm5haWxSZW5kZXJUYXNrcz1bXTt0cnl7YXdhaXQgdGhpcy51cGRhdGVDb21wbGV0ZTtsZXQgQT10aGlzLnNoYWRvd1Jvb3Q/LnF1ZXJ5U2VsZWN0b3JBbGwoIi50aHVtYm5haWwiKSxMPXRoaXMuc2hhZG93Um9vdD8ucXVlcnlTZWxlY3RvckFsbCgiLnRodW1ibmFpbC1jYW52YXMiKSxVPXRoaXMuc2hhZG93Um9vdD8ucXVlcnlTZWxlY3RvcigiLnNpZGViYXItY29udGVudCIpLFY9d2luZG93LmdldENvbXB1dGVkU3R5bGUoVSksZGU9MjAwLShwYXJzZUZsb2F0KFYucGFkZGluZ0xlZnQpK3BhcnNlRmxvYXQoVi5wYWRkaW5nUmlnaHQpKS00O2ZvcihsZXQgdmUgb2YgQXJyYXkuZnJvbShMKSl7bGV0IExlPXZlLmdldENvbnRleHQoIjJkIik7TGUmJkxlLmNsZWFyUmVjdCgwLDAsdmUud2lkdGgsdmUuaGVpZ2h0KX1mb3IobGV0IHZlPTA7dmU8TC5sZW5ndGg7dmUrKyl7aWYoWT8uYWJvcnRlZClyZXR1cm47bGV0IExlPUxbdmVdLFc9QVt2ZV0sSD1wYXJzZUludChMZS5kYXRhc2V0LnBhZ2V8fCIxIiksdGU9YXdhaXQgdGhpcy5wZGZEb2N1bWVudC5nZXRQYWdlKEgpLGJlPXRlLmdldFZpZXdwb3J0KHtzY2FsZToxfSksdWU9ZGUvYmUud2lkdGgsQ2U9dGUuZ2V0Vmlld3BvcnQoe3NjYWxlOnVlfSksaGU9d2luZG93LmRldmljZVBpeGVsUmF0aW98fDE7TGUud2lkdGg9TWF0aC5mbG9vcihDZS53aWR0aCpoZSksTGUuaGVpZ2h0PU1hdGguZmxvb3IoQ2UuaGVpZ2h0KmhlKSxMZS5zdHlsZS53aWR0aD1gJHtDZS53aWR0aH1weGAsTGUuc3R5bGUuaGVpZ2h0PWAke0NlLmhlaWdodH1weGAsVy5zdHlsZS5oZWlnaHQ9YCR7Q2UuaGVpZ2h0fXB4YCxXLnN0eWxlLm1pbkhlaWdodD1gJHtDZS5oZWlnaHR9cHhgO2xldCBpZT1MZS5nZXRDb250ZXh0KCIyZCIpO2lmKCFpZSl7dGUuY2xlYW51cD8uKCk7Y29udGludWV9aWUuc2NhbGUoaGUsaGUpO2xldCBTZT17Y2FudmFzQ29udGV4dDppZSx2aWV3cG9ydDpDZX0sSWU9dGUucmVuZGVyKFNlKTt0aGlzLnRodW1ibmFpbFJlbmRlclRhc2tzLnB1c2goSWUpLGF3YWl0IEllLnByb21pc2UsdGUuY2xlYW51cD8uKCk7bGV0IFplPXRoaXMudGh1bWJuYWlsRGF0YS5maW5kKEs9PksucGFnZT09PUgpO1plJiYoWmUucmVuZGVyZWQ9ITApfXRoaXMucmVxdWVzdFVwZGF0ZSgidGh1bWJuYWlsRGF0YSIpfWNhdGNoKEEpe0E/Lm5hbWUhPT0iUmVuZGVyaW5nQ2FuY2VsbGVkRXhjZXB0aW9uIiYmY29uc29sZS5lcnJvcigiRXJyb3IgcmVuZGVyaW5nIHRodW1ibmFpbHM6IixBKX1maW5hbGx5e3RoaXMudGh1bWJuYWlsUmVuZGVyVGFza3M9W119fXByZXZpb3VzUGFnZSgpe3RoaXMuY3VycmVudFBhZ2U+MSYmdGhpcy5zY3JvbGxUb1BhZ2UodGhpcy5jdXJyZW50UGFnZS0xKX1uZXh0UGFnZSgpe3RoaXMuY3VycmVudFBhZ2U8dGhpcy50b3RhbFBhZ2VzJiZ0aGlzLnNjcm9sbFRvUGFnZSh0aGlzLmN1cnJlbnRQYWdlKzEpfWhhbmRsZVRodW1ibmFpbENsaWNrKFkpe2xldCBBPVkuY3VycmVudFRhcmdldCxMPXBhcnNlSW50KEEuZGF0YXNldC5wYWdlfHwiMSIpO3RoaXMuc2Nyb2xsVG9QYWdlKEwpfWhhbmRsZVBhZ2VJbnB1dChZKXtsZXQgQT1ZLnRhcmdldCxMPXBhcnNlSW50KEEudmFsdWUpO3RoaXMuc2Nyb2xsVG9QYWdlKEwpfXpvb21Jbigpe2xldCBZPU1hdGgubWluKHRoaXMuTUFOVUFMX01BWF9aT09NLHRoaXMuY3VycmVudFpvb20qMS4yKTt0aGlzLnZpZXdwb3J0TW9kZT0iY3VzdG9tIixZIT09dGhpcy5jdXJyZW50Wm9vbSYmKHRoaXMuY3VycmVudFpvb209WSx0aGlzLnJlUmVuZGVyQWxsUGFnZXMoKSl9em9vbU91dCgpe2xldCBZPU1hdGgubWF4KHRoaXMuTUFOVUFMX01JTl9aT09NLHRoaXMuY3VycmVudFpvb20vMS4yKTt0aGlzLnZpZXdwb3J0TW9kZT0iY3VzdG9tIixZIT09dGhpcy5jdXJyZW50Wm9vbSYmKHRoaXMuY3VycmVudFpvb209WSx0aGlzLnJlUmVuZGVyQWxsUGFnZXMoKSl9cmVzZXRab29tKCl7dGhpcy52aWV3cG9ydE1vZGU9ImN1c3RvbSIsdGhpcy5jdXJyZW50Wm9vbT0xLHRoaXMucmVSZW5kZXJBbGxQYWdlcygpfWZpdFRvUGFnZSgpe3RoaXMudmlld3BvcnRNb2RlPSJwYWdlLWZpdCIsdGhpcy5yZVJlbmRlckFsbFBhZ2VzKCl9Zml0VG9XaWR0aCgpe3RoaXMudmlld3BvcnRNb2RlPSJwYWdlLXdpZHRoIix0aGlzLnJlUmVuZGVyQWxsUGFnZXMoKX1yZVJlbmRlckFsbFBhZ2VzKCl7dGhpcy5wYWdlRGF0YS5mb3JFYWNoKFk9PntZLnJlbmRlcmVkPSExLFkucmVuZGVyaW5nPSExLFkudGV4dExheWVyUmVuZGVyZWQ9ITF9KSx0aGlzLnBhZ2VSZW5kZXJUYXNrcy5mb3JFYWNoKFk9Pnt0cnl7WS5jYW5jZWwoKX1jYXRjaHt9fSksdGhpcy5wYWdlUmVuZGVyVGFza3MuY2xlYXIoKSx0aGlzLnRleHRMYXllclJlbmRlclRhc2tzLmZvckVhY2goWT0+e3RyeXtZLmNhbmNlbD8uKCl9Y2F0Y2h7fX0pLHRoaXMudGV4dExheWVyUmVuZGVyVGFza3MuY2xlYXIoKSx0aGlzLnJlcXVlc3RVcGRhdGUoKSx0aGlzLnVwZGF0ZUNvbXBsZXRlLnRoZW4oKCk9Pnt0aGlzLnJlbmRlclZpc2libGVQYWdlcygpfSl9YXN5bmMgZG93bmxvYWRQZGYoKXtpZih0aGlzLnBkZkRvY3VtZW50KXRyeXtsZXQgWT1hd2FpdCB0aGlzLnBkZkRvY3VtZW50LmdldERhdGEoKSxBPW5ldyBCbG9iKFtZLmJ1ZmZlcl0se3R5cGU6ImFwcGxpY2F0aW9uL3BkZiJ9KSxMPVVSTC5jcmVhdGVPYmplY3RVUkwoQSksVT1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJhIik7VS5ocmVmPUwsVS5kb3dubG9hZD10aGlzLnBkZlVybCYmdGhpcy5wZGZVcmwuc3BsaXQoIi8iKS5wb3AoKXx8ImRvY3VtZW50LnBkZiIsVS5jbGljaygpLHNldFRpbWVvdXQoKCk9PlVSTC5yZXZva2VPYmplY3RVUkwoTCksMWUzKX1jYXRjaChZKXtjb25zb2xlLmVycm9yKCJFcnJvciBkb3dubG9hZGluZyBQREY6IixZKX19YXN5bmMgcHJpbnRQZGYoKXtpZih0aGlzLnBkZkRvY3VtZW50KXRyeXtsZXQgWT1hd2FpdCB0aGlzLnBkZkRvY3VtZW50LmdldERhdGEoKSxBPW5ldyBCbG9iKFtZLmJ1ZmZlcl0se3R5cGU6ImFwcGxpY2F0aW9uL3BkZiJ9KSxMPVVSTC5jcmVhdGVPYmplY3RVUkwoQSksVT1gCiAgICAgICAgPCFET0NUWVBFIGh0bWw+CiAgICAgICAgPGh0bWw+CiAgICAgICAgPGhlYWQ+CiAgICAgICAgICA8dGl0bGU+UHJpbnQgUERGPC90aXRsZT4KICAgICAgICAgIDxzdHlsZT4KICAgICAgICAgICAgKiB7IG1hcmdpbjogMDsgcGFkZGluZzogMDsgfQogICAgICAgICAgICBodG1sLCBib2R5IHsgd2lkdGg6IDEwMCU7IGhlaWdodDogMTAwJTsgb3ZlcmZsb3c6IGhpZGRlbjsgfQogICAgICAgICAgICBpZnJhbWUgeyB3aWR0aDogMTAwJTsgaGVpZ2h0OiAxMDAlOyBib3JkZXI6IG5vbmU7IH0KICAgICAgICAgICAgQG1lZGlhIHByaW50IHsKICAgICAgICAgICAgICBodG1sLCBib2R5LCBpZnJhbWUgeyB3aWR0aDogMTAwJTsgaGVpZ2h0OiAxMDAlOyB9CiAgICAgICAgICAgIH0KICAgICAgICAgIDwvc3R5bGU+CiAgICAgICAgPC9oZWFkPgogICAgICAgIDxib2R5PgogICAgICAgICAgPGlmcmFtZSBzcmM9IiR7TH0iIHR5cGU9ImFwcGxpY2F0aW9uL3BkZiI+PC9pZnJhbWU+CiAgICAgICAgICA8c2NyaXB0PgogICAgICAgICAgICB3aW5kb3cub25sb2FkID0gZnVuY3Rpb24oKSB7CiAgICAgICAgICAgICAgc2V0VGltZW91dChmdW5jdGlvbigpIHsKICAgICAgICAgICAgICAgIHdpbmRvdy5mb2N1cygpOwogICAgICAgICAgICAgICAgd2luZG93LnByaW50KCk7CiAgICAgICAgICAgICAgfSwgNTAwKTsKICAgICAgICAgICAgfTsKICAgICAgICAgICAgd2luZG93Lm9uYWZ0ZXJwcmludCA9IGZ1bmN0aW9uKCkgewogICAgICAgICAgICAgIHdpbmRvdy5jbG9zZSgpOwogICAgICAgICAgICB9OwogICAgICAgICAgICAvLyBTYWZldHkgY2xvc2UgYWZ0ZXIgMiBtaW51dGVzCiAgICAgICAgICAgIHNldFRpbWVvdXQoZnVuY3Rpb24oKSB7IHdpbmRvdy5jbG9zZSgpOyB9LCAxMjAwMDApOwogICAgICAgICAgPFwvc2NyaXB0PgogICAgICAgIDwvYm9keT4KICAgICAgICA8L2h0bWw+CiAgICAgIGAsVj1uZXcgQmxvYihbVV0se3R5cGU6InRleHQvaHRtbCJ9KSxYPVVSTC5jcmVhdGVPYmplY3RVUkwoViksZGU9d2luZG93Lm9wZW4oWCwiX2JsYW5rIiwid2lkdGg9ODAwLGhlaWdodD02MDAiKTtpZihkZSl7bGV0IHZlPXNldEludGVydmFsKCgpPT57ZGUuY2xvc2VkJiYoY2xlYXJJbnRlcnZhbCh2ZSksVVJMLnJldm9rZU9iamVjdFVSTChMKSxVUkwucmV2b2tlT2JqZWN0VVJMKFgpKX0sNTAwKTtzZXRUaW1lb3V0KCgpPT57Y2xlYXJJbnRlcnZhbCh2ZSksVVJMLnJldm9rZU9iamVjdFVSTChMKSxVUkwucmV2b2tlT2JqZWN0VVJMKFgpfSwxMmU0KX1lbHNlIHdpbmRvdy5vcGVuKEwsIl9ibGFuayIpLHNldFRpbWVvdXQoKCk9PlVSTC5yZXZva2VPYmplY3RVUkwoTCksNmU0KSxVUkwucmV2b2tlT2JqZWN0VVJMKFgpfWNhdGNoKFkpe2NvbnNvbGUuZXJyb3IoIkVycm9yIHByaW50aW5nIFBERjoiLFkpfX1nZXRDb250ZXh0TWVudUl0ZW1zKCl7bGV0IFk9W10sTD13aW5kb3cuZ2V0U2VsZWN0aW9uKCk/LnRvU3RyaW5nKCl8fCIiO3JldHVybiBMJiYoWS5wdXNoKHtuYW1lOiJDb3B5IixpY29uTmFtZToibHVjaWRlOkNvcHkiLGFjdGlvbjphc3luYygpPT57YXdhaXQgbmF2aWdhdG9yLmNsaXBib2FyZC53cml0ZVRleHQoTCl9fSksWS5wdXNoKHtkaXZpZGVyOiEwfSkpLFkucHVzaCh7bmFtZToiRG93bmxvYWQgUERGIixpY29uTmFtZToibHVjaWRlOkRvd25sb2FkIixhY3Rpb246YXN5bmMoKT0+e2F3YWl0IHRoaXMuZG93bmxvYWRQZGYoKX19LHtuYW1lOiJQcmludCBQREYiLGljb25OYW1lOiJsdWNpZGU6UHJpbnRlciIsYWN0aW9uOmFzeW5jKCk9Pnthd2FpdCB0aGlzLnByaW50UGRmKCl9fSksWX1nZXQgY2FuWm9vbUluKCl7cmV0dXJuIHRoaXMudmlld3BvcnRNb2RlIT09ImN1c3RvbSJ8fHRoaXMuY3VycmVudFpvb208dGhpcy5NQU5VQUxfTUFYX1pPT019Z2V0IGNhblpvb21PdXQoKXtyZXR1cm4gdGhpcy52aWV3cG9ydE1vZGUhPT0iY3VzdG9tInx8dGhpcy5jdXJyZW50Wm9vbT50aGlzLk1BTlVBTF9NSU5fWk9PTX1lbnN1cmVWaWV3ZXJSZWZzKCl7dGhpcy52aWV3ZXJNYWlufHwodGhpcy52aWV3ZXJNYWluPXRoaXMuc2hhZG93Um9vdD8ucXVlcnlTZWxlY3RvcigiLnZpZXdlci1tYWluIikpLHRoaXMudmlld2VyTWFpbiYmIXRoaXMucmVzaXplT2JzZXJ2ZXImJih0aGlzLnJlc2l6ZU9ic2VydmVyPW5ldyBSZXNpemVPYnNlcnZlcigoKT0+e3RoaXMubWVhc3VyZVZpZXdwb3J0RGltZW5zaW9ucygpLHRoaXMucGRmRG9jdW1lbnQmJnRoaXMucmVSZW5kZXJBbGxQYWdlcygpfSksdGhpcy5yZXNpemVPYnNlcnZlci5vYnNlcnZlKHRoaXMudmlld2VyTWFpbiksdGhpcy5tZWFzdXJlVmlld3BvcnREaW1lbnNpb25zKCksdGhpcy52aWV3ZXJNYWluLmFkZEV2ZW50TGlzdGVuZXIoIndoZWVsIixZPT57bGV0IEE9WS5jdXJyZW50VGFyZ2V0LEw9QS5zY3JvbGxUb3AsVT1BLnNjcm9sbEhlaWdodCxWPUEuY2xpZW50SGVpZ2h0LFg9WS5kZWx0YVksZGU9TD09PTAsdmU9TWF0aC5hYnMoTCtWLVUpPDE7WDwwJiYhZGV8fFg+MCYmIXZlP1kuc3RvcFByb3BhZ2F0aW9uKCk6KFg8MCYmZGV8fFg+MCYmdmUpJiYoWS5wcmV2ZW50RGVmYXVsdCgpLFkuc3RvcFByb3BhZ2F0aW9uKCkpfSx7cGFzc2l2ZTohMX0pKX1tZWFzdXJlVmlld3BvcnREaW1lbnNpb25zKCl7aWYoIXRoaXMudmlld2VyTWFpbil7dGhpcy52aWV3cG9ydERpbWVuc2lvbnM9e3dpZHRoOjAsaGVpZ2h0OjB9O3JldHVybn1sZXQgWT1nZXRDb21wdXRlZFN0eWxlKHRoaXMudmlld2VyTWFpbiksQT1wYXJzZUZsb2F0KFkucGFkZGluZ0xlZnR8fCIwIikrcGFyc2VGbG9hdChZLnBhZGRpbmdSaWdodHx8IjAiKSxMPXBhcnNlRmxvYXQoWS5wYWRkaW5nVG9wfHwiMCIpK3BhcnNlRmxvYXQoWS5wYWRkaW5nQm90dG9tfHwiMCIpLFU9TWF0aC5tYXgodGhpcy52aWV3ZXJNYWluLmNsaWVudFdpZHRoLUEsMCksVj1NYXRoLm1heCh0aGlzLnZpZXdlck1haW4uY2xpZW50SGVpZ2h0LUwsMCk7dGhpcy52aWV3cG9ydERpbWVuc2lvbnM9e3dpZHRoOlUsaGVpZ2h0OlZ9fXJlc29sdmVJbml0aWFsVmlld3BvcnRNb2RlKCl7dHlwZW9mIHRoaXMuaW5pdGlhbFpvb209PSJudW1iZXIiPyh0aGlzLnZpZXdwb3J0TW9kZT0iY3VzdG9tIix0aGlzLmN1cnJlbnRab29tPXRoaXMubm9ybWFsaXplWm9vbSh0aGlzLmluaXRpYWxab29tLCEwKSk6dGhpcy5pbml0aWFsWm9vbT09PSJwYWdlLXdpZHRoIj90aGlzLnZpZXdwb3J0TW9kZT0icGFnZS13aWR0aCI6dGhpcy5pbml0aWFsWm9vbT09PSJwYWdlLWZpdCJ8fHRoaXMuaW5pdGlhbFpvb209PT0iYXV0byI/dGhpcy52aWV3cG9ydE1vZGU9InBhZ2UtZml0Ijp0aGlzLnZpZXdwb3J0TW9kZT0iYXV0byIsdGhpcy52aWV3cG9ydE1vZGUhPT0iY3VzdG9tIiYmKHRoaXMuY3VycmVudFpvb209MSl9Y29tcHV0ZVZpZXdwb3J0KFkpe3RoaXMubWVhc3VyZVZpZXdwb3J0RGltZW5zaW9ucygpO2xldCBBPVkuZ2V0Vmlld3BvcnQoe3NjYWxlOjF9KSxMO3N3aXRjaCh0aGlzLnZpZXdwb3J0TW9kZSl7Y2FzZSJwYWdlLXdpZHRoIjp7TD0odGhpcy52aWV3cG9ydERpbWVuc2lvbnMud2lkdGh8fEEud2lkdGgpL0Eud2lkdGg7YnJlYWt9Y2FzZSJwYWdlLWZpdCI6Y2FzZSJhdXRvIjp7bGV0IFY9dGhpcy52aWV3cG9ydERpbWVuc2lvbnMud2lkdGh8fEEud2lkdGgsWD10aGlzLnZpZXdwb3J0RGltZW5zaW9ucy5oZWlnaHR8fEEuaGVpZ2h0LGRlPVYvQS53aWR0aCx2ZT1YL0EuaGVpZ2h0O0w9TWF0aC5taW4oZGUsdmUpO2JyZWFrfWRlZmF1bHQ6e0w9dGhpcy5ub3JtYWxpemVab29tKHRoaXMuY3VycmVudFpvb218fDEsITEpO2JyZWFrfX0oIU51bWJlci5pc0Zpbml0ZShMKXx8TDw9MCkmJihMPTEpO2xldCBVPXRoaXMudmlld3BvcnRNb2RlPT09ImN1c3RvbSI/dGhpcy5ub3JtYWxpemVab29tKEwsITApOnRoaXMubm9ybWFsaXplWm9vbShMLCExKTtyZXR1cm4gdGhpcy52aWV3cG9ydE1vZGUhPT0iY3VzdG9tIiYmKHRoaXMuY3VycmVudFpvb209VSksWS5nZXRWaWV3cG9ydCh7c2NhbGU6VX0pfW5vcm1hbGl6ZVpvb20oWSxBKXtsZXQgTD1BP3RoaXMuTUFOVUFMX01JTl9aT09NOnRoaXMuQUJTT0xVVEVfTUlOX1pPT00sVT1BP3RoaXMuTUFOVUFMX01BWF9aT09NOnRoaXMuQUJTT0xVVEVfTUFYX1pPT007cmV0dXJuIE1hdGgubWluKE1hdGgubWF4KFksTCksVSl9YXN5bmMgY2xlYW51cERvY3VtZW50KCl7aWYodGhpcy5yZW5kZXJBYm9ydENvbnRyb2xsZXImJih0aGlzLnJlbmRlckFib3J0Q29udHJvbGxlci5hYm9ydCgpLHRoaXMucmVuZGVyQWJvcnRDb250cm9sbGVyPW51bGwpLHRoaXMuY3VycmVudFJlbmRlclByb21pc2Upe3RyeXthd2FpdCB0aGlzLmN1cnJlbnRSZW5kZXJQcm9taXNlfWNhdGNoe310aGlzLmN1cnJlbnRSZW5kZXJQcm9taXNlPW51bGx9dGhpcy5jdXJyZW50UmVuZGVyVGFzaz1udWxsLHRoaXMucGFnZVJlbmRlclRhc2tzLmZvckVhY2goWT0+e3RyeXtZLmNhbmNlbCgpfWNhdGNoe319KSx0aGlzLnBhZ2VSZW5kZXJUYXNrcy5jbGVhcigpLHRoaXMudGV4dExheWVyUmVuZGVyVGFza3MuZm9yRWFjaChZPT57dHJ5e1kuY2FuY2VsPy4oKX1jYXRjaHt9fSksdGhpcy50ZXh0TGF5ZXJSZW5kZXJUYXNrcy5jbGVhcigpO2ZvcihsZXQgWSBvZiB0aGlzLnRodW1ibmFpbFJlbmRlclRhc2tzfHxbXSl0cnl7WS5jYW5jZWwoKX1jYXRjaHt9aWYodGhpcy50aHVtYm5haWxSZW5kZXJUYXNrcz1bXSx0aGlzLnJlbmRlclN0YXRlPSJpZGxlIix0aGlzLnBhZ2VSZW5kZXJpbmc9ITEsdGhpcy5wYWdlTnVtUGVuZGluZz1udWxsLHRoaXMudGh1bWJuYWlsRGF0YT1bXSx0aGlzLnBhZ2VEYXRhPVtdLHRoaXMuZG9jdW1lbnRJZD0iIix0aGlzLmNhbnZhcyYmdGhpcy5jdHgmJnRoaXMuY3R4LmNsZWFyUmVjdCgwLDAsdGhpcy5jYW52YXMud2lkdGgsdGhpcy5jYW52YXMuaGVpZ2h0KSx0aGlzLnBkZkRvY3VtZW50KXRyeXt0aGlzLnBkZkRvY3VtZW50LmRlc3Ryb3koKX1jYXRjaChZKXtjb25zb2xlLmVycm9yKCJFcnJvciBkZXN0cm95aW5nIFBERiBkb2N1bWVudDoiLFkpfXRoaXMucGRmRG9jdW1lbnQ9bnVsbCx0aGlzLnJlcXVlc3RVcGRhdGUoKX1zdGF0aWN7ZzEoaSxyKX19O3JldHVybiBrZT1pfSkoKX0pO3ZhciBfM3IsTDNyPXAoKCk9Pnt4ZSgpO18zcj0oKT0+Q2AKICA8c3R5bGU+CiAgICAuZGVtby1jb250YWluZXIgewogICAgICBwYWRkaW5nOiA0OHB4OwogICAgICBiYWNrZ3JvdW5kOiAke20uYmRUaGVtZSgiI2Y4ZjlmYSIsIiMwYTBhMGEiKX07CiAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgIGdhcDogNDBweDsKICAgIH0KCiAgICAuc2VjdGlvbiB7CiAgICAgIG1heC13aWR0aDogOTAwcHg7CiAgICAgIHdpZHRoOiAxMDAlOwogICAgICBtYXJnaW46IDAgYXV0bzsKICAgIH0KCiAgICAuc2VjdGlvbi10aXRsZSB7CiAgICAgIGZvbnQtc2l6ZTogMThweDsKICAgICAgZm9udC13ZWlnaHQ6IDYwMDsKICAgICAgbWFyZ2luLWJvdHRvbTogOHB4OwogICAgICBjb2xvcjogJHttLmJkVGhlbWUoIiMwOTA5MGIiLCIjZmFmYWZhIil9OwogICAgfQoKICAgIC5zZWN0aW9uLWRlc2NyaXB0aW9uIHsKICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgICBjb2xvcjogJHttLmJkVGhlbWUoIiM3MTcxN2EiLCIjYTFhMWFhIil9OwogICAgICBtYXJnaW4tYm90dG9tOiAxNnB4OwogICAgfQoKICAgIC5wcmV2aWV3LWltYWdlIHsKICAgICAgaGVpZ2h0OiA0MDBweDsKICAgIH0KCiAgICAucHJldmlldy1wZGYgewogICAgICBoZWlnaHQ6IDYwMHB4OwogICAgfQogIDwvc3R5bGU+CgogIDxkaXYgY2xhc3M9ImRlbW8tY29udGFpbmVyIj4KICAgIDxkaXYgY2xhc3M9InNlY3Rpb24iPgogICAgICA8ZGl2IGNsYXNzPSJzZWN0aW9uLXRpdGxlIj5JbWFnZSBQcmV2aWV3IChVUkwpPC9kaXY+CiAgICAgIDxkaXYgY2xhc3M9InNlY3Rpb24tZGVzY3JpcHRpb24iPkF1dG8tZGV0ZWN0cyBpbWFnZSBmcm9tIFVSTCBleHRlbnNpb24gYW5kIHJlbmRlcnMgd2l0aCB0aGUgaW1hZ2Ugdmlld2VyLjwvZGl2PgogICAgICA8ZGVlcy1wcmV2aWV3CiAgICAgICAgY2xhc3M9InByZXZpZXctaW1hZ2UiCiAgICAgICAgdXJsPSJodHRwczovL2ltYWdlcy51bnNwbGFzaC5jb20vcGhvdG8tMTUwNjc0NDAzODEzNi00NjI3MzgzNGIzZmI/dz0xMjAwIgogICAgICAgIGZpbGVuYW1lPSJsYW5kc2NhcGUuanBnIgogICAgICA+PC9kZWVzLXByZXZpZXc+CiAgICA8L2Rpdj4KCiAgICA8ZGl2IGNsYXNzPSJzZWN0aW9uIj4KICAgICAgPGRpdiBjbGFzcz0ic2VjdGlvbi10aXRsZSI+UERGIFByZXZpZXcgKFVSTCk8L2Rpdj4KICAgICAgPGRpdiBjbGFzcz0ic2VjdGlvbi1kZXNjcmlwdGlvbiI+QXV0by1kZXRlY3RzIFBERiBhbmQgZGlzcGxheXMgd2l0aCB0aGUgUERGIHZpZXdlciBpbmNsdWRpbmcgdG9vbGJhci48L2Rpdj4KICAgICAgPGRlZXMtcHJldmlldwogICAgICAgIGNsYXNzPSJwcmV2aWV3LXBkZiIKICAgICAgICB1cmw9Imh0dHBzOi8vcmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbS9tb3ppbGxhL3BkZi5qcy9iYTJlZGVhZS93ZWIvY29tcHJlc3NlZC50cmFjZW1vbmtleS1wbGRpLTA5LnBkZiIKICAgICAgICBmaWxlbmFtZT0icmVzZWFyY2gtcGFwZXIucGRmIgogICAgICA+PC9kZWVzLXByZXZpZXc+CiAgICA8L2Rpdj4KCiAgICA8ZGl2IGNsYXNzPSJzZWN0aW9uIj4KICAgICAgPGRpdiBjbGFzcz0ic2VjdGlvbi10aXRsZSI+Q29kZSBQcmV2aWV3IChUZXh0IENvbnRlbnQpPC9kaXY+CiAgICAgIDxkaXYgY2xhc3M9InNlY3Rpb24tZGVzY3JpcHRpb24iPlR5cGVTY3JpcHQgY29kZSBkaXNwbGF5ZWQgd2l0aCBzeW50YXggaGlnaGxpZ2h0aW5nIHZpYSB0aGUgY29kZWJveC48L2Rpdj4KICAgICAgPGRlZXMtcHJldmlldwogICAgICAgIGZpbGVuYW1lPSJleGFtcGxlLnRzIgogICAgICAgIGxhbmd1YWdlPSJ0eXBlc2NyaXB0IgogICAgICAgIC50ZXh0Q29udGVudD0ke2BpbXBvcnQgeyBodG1sLCBjc3MgfSBmcm9tICdsaXQnOwoKZXhwb3J0IGNsYXNzIE15Q29tcG9uZW50IGV4dGVuZHMgTGl0RWxlbWVudCB7CiAgc3RhdGljIHN0eWxlcyA9IGNzc1xgCiAgICA6aG9zdCB7CiAgICAgIGRpc3BsYXk6IGJsb2NrOwogICAgICBwYWRkaW5nOiAxNnB4OwogICAgfQogIFxgOwoKICByZW5kZXIoKSB7CiAgICByZXR1cm4gaHRtbFxgPGgxPkhlbGxvIFdvcmxkPC9oMT5cYDsKICB9Cn1gfQogICAgICA+PC9kZWVzLXByZXZpZXc+CiAgICA8L2Rpdj4KCiAgICA8ZGl2IGNsYXNzPSJzZWN0aW9uIj4KICAgICAgPGRpdiBjbGFzcz0ic2VjdGlvbi10aXRsZSI+QXVkaW8gUHJldmlldyAoVVJMKTwvZGl2PgogICAgICA8ZGl2IGNsYXNzPSJzZWN0aW9uLWRlc2NyaXB0aW9uIj5BdWRpbyBmaWxlIGRldGVjdGVkIGJ5IGV4dGVuc2lvbiwgc2hvd24gd2l0aCB3YXZlZm9ybSBwbGF5ZXIuPC9kaXY+CiAgICAgIDxkZWVzLXByZXZpZXcKICAgICAgICB1cmw9Imh0dHBzOi8vd3d3LnNvdW5kaGVsaXguY29tL2V4YW1wbGVzL21wMy9Tb3VuZEhlbGl4LVNvbmctMS5tcDMiCiAgICAgICAgZmlsZW5hbWU9InNvbmcubXAzIgogICAgICA+PC9kZWVzLXByZXZpZXc+CiAgICA8L2Rpdj4KCiAgICA8ZGl2IGNsYXNzPSJzZWN0aW9uIj4KICAgICAgPGRpdiBjbGFzcz0ic2VjdGlvbi10aXRsZSI+VmlkZW8gUHJldmlldyAoVVJMKTwvZGl2PgogICAgICA8ZGl2IGNsYXNzPSJzZWN0aW9uLWRlc2NyaXB0aW9uIj5WaWRlbyBmaWxlIGRldGVjdGVkIGZyb20gVVJMLCByZW5kZXJlZCB3aXRoIGN1c3RvbSB2aWRlbyBjb250cm9scy48L2Rpdj4KICAgICAgPGRlZXMtcHJldmlldwogICAgICAgIHVybD0iaHR0cHM6Ly9jb21tb25kYXRhc3RvcmFnZS5nb29nbGVhcGlzLmNvbS9ndHYtdmlkZW9zLWJ1Y2tldC9zYW1wbGUvQmlnQnVja0J1bm55Lm1wNCIKICAgICAgICBmaWxlbmFtZT0iYmlnLWJ1Y2stYnVubnkubXA0IgogICAgICA+PC9kZWVzLXByZXZpZXc+CiAgICA8L2Rpdj4KCiAgICA8ZGl2IGNsYXNzPSJzZWN0aW9uIj4KICAgICAgPGRpdiBjbGFzcz0ic2VjdGlvbi10aXRsZSI+RXhwbGljaXQgVHlwZSBPdmVycmlkZTwvZGl2PgogICAgICA8ZGl2IGNsYXNzPSJzZWN0aW9uLWRlc2NyaXB0aW9uIj5Gb3JjZSBjb250ZW50IHR5cGUgdG8gJ3RleHQnIGV2ZW4gdGhvdWdoIHRoZSBVUkwgaGFzIG5vIGV4dGVuc2lvbi48L2Rpdj4KICAgICAgPGRlZXMtcHJldmlldwogICAgICAgIGNvbnRlbnRUeXBlPSJ0ZXh0IgogICAgICAgIC50ZXh0Q29udGVudD0ke2BUaGlzIGlzIHBsYWluIHRleHQgY29udGVudC4KSXQgcHJlc2VydmVzIHdoaXRlc3BhY2UgYW5kIGxpbmUgYnJlYWtzLgoKVXNlZnVsIGZvciBsb2cgZmlsZXMsIFJFQURNRXMsIGV0Yy5gfQogICAgICAgIGZpbGVuYW1lPSJub3Rlcy50eHQiCiAgICAgID48L2RlZXMtcHJldmlldz4KICAgIDwvZGl2PgoKICAgIDxkaXYgY2xhc3M9InNlY3Rpb24iPgogICAgICA8ZGl2IGNsYXNzPSJzZWN0aW9uLXRpdGxlIj5Vbmtub3duIFR5cGU8L2Rpdj4KICAgICAgPGRpdiBjbGFzcz0ic2VjdGlvbi1kZXNjcmlwdGlvbiI+V2hlbiBjb250ZW50IHR5cGUgY2Fubm90IGJlIGRldGVjdGVkLCBzaG93cyBhIHBsYWNlaG9sZGVyLjwvZGl2PgogICAgICA8ZGVlcy1wcmV2aWV3CiAgICAgICAgZmlsZW5hbWU9ImRhdGEuYmluIgogICAgICAgIGNvbnRlbnRUeXBlPSJ1bmtub3duIgogICAgICA+PC9kZWVzLXByZXZpZXc+CiAgICA8L2Rpdj4KICA8L2Rpdj4KYH0pO3ZhciBuYSx2cixBM3IsaFhyLGZYcixtWHIsRDNyLEUzcj1wKCgpPT57eGUoKTtnZGUoKTtiZGUoKTt2ZGUoKTtWNmUoKTt4ZGUoKTtvcigpO0wzcigpO25hPWZ1bmN0aW9uKGUsdCxyLGksYSxuKXtmdW5jdGlvbiBvKHkpe2lmKHkhPT12b2lkIDAmJnR5cGVvZiB5IT0iZnVuY3Rpb24iKXRocm93IG5ldyBUeXBlRXJyb3IoIkZ1bmN0aW9uIGV4cGVjdGVkIik7cmV0dXJuIHl9Zm9yKHZhciBzPWkua2luZCxsPXM9PT0iZ2V0dGVyIj8iZ2V0IjpzPT09InNldHRlciI/InNldCI6InZhbHVlIixjPSF0JiZlP2kuc3RhdGljP2U6ZS5wcm90b3R5cGU6bnVsbCx1PXR8fChjP09iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoYyxpLm5hbWUpOnt9KSxkLGg9ITEsZj1yLmxlbmd0aC0xO2Y+PTA7Zi0tKXt2YXIgeD17fTtmb3IodmFyIHYgaW4gaSl4W3ZdPXY9PT0iYWNjZXNzIj97fTppW3ZdO2Zvcih2YXIgdiBpbiBpLmFjY2Vzcyl4LmFjY2Vzc1t2XT1pLmFjY2Vzc1t2XTt4LmFkZEluaXRpYWxpemVyPWZ1bmN0aW9uKHkpe2lmKGgpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGFkZCBpbml0aWFsaXplcnMgYWZ0ZXIgZGVjb3JhdGlvbiBoYXMgY29tcGxldGVkIik7bi5wdXNoKG8oeXx8bnVsbCkpfTt2YXIgYj0oMCxyW2ZdKShzPT09ImFjY2Vzc29yIj97Z2V0OnUuZ2V0LHNldDp1LnNldH06dVtsXSx4KTtpZihzPT09ImFjY2Vzc29yIil7aWYoYj09PXZvaWQgMCljb250aW51ZTtpZihiPT09bnVsbHx8dHlwZW9mIGIhPSJvYmplY3QiKXRocm93IG5ldyBUeXBlRXJyb3IoIk9iamVjdCBleHBlY3RlZCIpOyhkPW8oYi5nZXQpKSYmKHUuZ2V0PWQpLChkPW8oYi5zZXQpKSYmKHUuc2V0PWQpLChkPW8oYi5pbml0KSkmJmEudW5zaGlmdChkKX1lbHNlKGQ9byhiKSkmJihzPT09ImZpZWxkIj9hLnVuc2hpZnQoZCk6dVtsXT1kKX1jJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoYyxpLm5hbWUsdSksaD0hMH0sdnI9ZnVuY3Rpb24oZSx0LHIpe2Zvcih2YXIgaT1hcmd1bWVudHMubGVuZ3RoPjIsYT0wO2E8dC5sZW5ndGg7YSsrKXI9aT90W2FdLmNhbGwoZSxyKTp0W2FdLmNhbGwoZSk7cmV0dXJuIGk/cjp2b2lkIDB9LEEzcj17anBnOiJpbWFnZSIsanBlZzoiaW1hZ2UiLHBuZzoiaW1hZ2UiLGdpZjoiaW1hZ2UiLHdlYnA6ImltYWdlIixzdmc6ImltYWdlIixibXA6ImltYWdlIixhdmlmOiJpbWFnZSIsaWNvOiJpbWFnZSIscGRmOiJwZGYiLG1wMzoiYXVkaW8iLHdhdjoiYXVkaW8iLG9nZzoiYXVkaW8iLGZsYWM6ImF1ZGlvIixhYWM6ImF1ZGlvIixtNGE6ImF1ZGlvIixvcHVzOiJhdWRpbyIsd2ViYToiYXVkaW8iLG1wNDoidmlkZW8iLHdlYm06InZpZGVvIixtb3Y6InZpZGVvIixhdmk6InZpZGVvIixta3Y6InZpZGVvIixvZ3Y6InZpZGVvIix0czoiY29kZSIsanM6ImNvZGUiLGpzeDoiY29kZSIsdHN4OiJjb2RlIixqc29uOiJjb2RlIixodG1sOiJjb2RlIixjc3M6ImNvZGUiLHNjc3M6ImNvZGUiLGxlc3M6ImNvZGUiLHB5OiJjb2RlIixqYXZhOiJjb2RlIixnbzoiY29kZSIscnM6ImNvZGUiLHlhbWw6ImNvZGUiLHltbDoiY29kZSIseG1sOiJjb2RlIixzcWw6ImNvZGUiLHNoOiJjb2RlIixiYXNoOiJjb2RlIix6c2g6ImNvZGUiLG1kOiJjb2RlIixjOiJjb2RlIixjcHA6ImNvZGUiLGg6ImNvZGUiLGhwcDoiY29kZSIscmI6ImNvZGUiLHBocDoiY29kZSIsc3dpZnQ6ImNvZGUiLGt0OiJjb2RlIix0eHQ6InRleHQiLGxvZzoidGV4dCIsY3N2OiJ0ZXh0IixlbnY6InRleHQifSxoWHI9eyJpbWFnZS8iOiJpbWFnZSIsImF1ZGlvLyI6ImF1ZGlvIiwidmlkZW8vIjoidmlkZW8iLCJhcHBsaWNhdGlvbi9wZGYiOiJwZGYifSxmWHI9e3RzOiJ0eXBlc2NyaXB0Iix0c3g6InR5cGVzY3JpcHQiLGpzOiJqYXZhc2NyaXB0Iixqc3g6ImphdmFzY3JpcHQiLGpzb246Impzb24iLGh0bWw6InhtbCIseG1sOiJ4bWwiLGNzczoiY3NzIixzY3NzOiJzY3NzIixsZXNzOiJsZXNzIixweToicHl0aG9uIixqYXZhOiJqYXZhIixnbzoiZ28iLHJzOiJydXN0Iix5YW1sOiJ5YW1sIix5bWw6InlhbWwiLHNxbDoic3FsIixzaDoiYmFzaCIsYmFzaDoiYmFzaCIsenNoOiJiYXNoIixjOiJjIixjcHA6ImNwcCIsaDoiYyIsaHBwOiJjcHAiLHJiOiJydWJ5IixwaHA6InBocCIsc3dpZnQ6InN3aWZ0IixrdDoia290bGluIixtZDoibWFya2Rvd24ifSxtWHI9e2ltYWdlOiJsdWNpZGU6SW1hZ2UiLHBkZjoibHVjaWRlOkZpbGVUZXh0IixhdWRpbzoibHVjaWRlOk11c2ljIix2aWRlbzoibHVjaWRlOlZpZGVvIixjb2RlOiJsdWNpZGU6Q29kZSIsdGV4dDoibHVjaWRlOkZpbGVUZXh0Iix1bmtub3duOiJsdWNpZGU6RmlsZSJ9LEQzcj0oKCk9PntsZXQgZT1beWUoImRlZXMtcHJldmlldyIpXSx0LHI9W10saSxhPXplLG4sbz1bXSxzPVtdLGwsYz1bXSx1PVtdLGQsaD1bXSxmPVtdLHgsdj1bXSxiPVtdLHksdz1bXSxrPVtdLE8sej1bXSxNPVtdLEYsRD1bXSxOPVtdLFIsXz1bXSxTPVtdLCQsVD1bXSxFPVtdLHEsQj1bXSxHPVtdLGVlLFA9W10sZ2U9W10sd2UsST1bXSxuZT1bXSxrZSxZPVtdLEE9W10sTCxVPVtdLFY9W10sWCxkZT1bXSx2ZT1bXSxMZSxXPVtdLEg9W107dmFyIHRlPWNsYXNzIGV4dGVuZHMgYXtzdGF0aWN7aT10aGlzfXN0YXRpY3tsZXQgYmU9dHlwZW9mIFN5bWJvbD09ImZ1bmN0aW9uIiYmU3ltYm9sLm1ldGFkYXRhP09iamVjdC5jcmVhdGUoYVtTeW1ib2wubWV0YWRhdGFdPz9udWxsKTp2b2lkIDA7bj1baigpXSxsPVtqKHthdHRyaWJ1dGU6ITF9KV0sZD1baigpXSx4PVtqKCldLHk9W2ooKV0sTz1baigpXSxGPVtqKCldLFI9W2ooKV0sJD1baih7dHlwZTpCb29sZWFufSldLHE9W2ooe3R5cGU6Qm9vbGVhbn0pXSxlZT1bZmUoKV0sd2U9W2ZlKCldLGtlPVtmZSgpXSxMPVtmZSgpXSxYPVtmZSgpXSxMZT1bZmUoKV0sbmEodGhpcyxudWxsLG4se2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJ1cmwiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOnVlPT4idXJsImluIHVlLGdldDp1ZT0+dWUudXJsLHNldDoodWUsQ2UpPT57dWUudXJsPUNlfX0sbWV0YWRhdGE6YmV9LG8scyksbmEodGhpcyxudWxsLGwse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJmaWxlIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczp1ZT0+ImZpbGUiaW4gdWUsZ2V0OnVlPT51ZS5maWxlLHNldDoodWUsQ2UpPT57dWUuZmlsZT1DZX19LG1ldGFkYXRhOmJlfSxjLHUpLG5hKHRoaXMsbnVsbCxkLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiYmFzZTY0IixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczp1ZT0+ImJhc2U2NCJpbiB1ZSxnZXQ6dWU9PnVlLmJhc2U2NCxzZXQ6KHVlLENlKT0+e3VlLmJhc2U2ND1DZX19LG1ldGFkYXRhOmJlfSxoLGYpLG5hKHRoaXMsbnVsbCx4LHtraW5kOiJhY2Nlc3NvciIsbmFtZToidGV4dENvbnRlbnQiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOnVlPT4idGV4dENvbnRlbnQiaW4gdWUsZ2V0OnVlPT51ZS50ZXh0Q29udGVudCxzZXQ6KHVlLENlKT0+e3VlLnRleHRDb250ZW50PUNlfX0sbWV0YWRhdGE6YmV9LHYsYiksbmEodGhpcyxudWxsLHkse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJjb250ZW50VHlwZSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6dWU9PiJjb250ZW50VHlwZSJpbiB1ZSxnZXQ6dWU9PnVlLmNvbnRlbnRUeXBlLHNldDoodWUsQ2UpPT57dWUuY29udGVudFR5cGU9Q2V9fSxtZXRhZGF0YTpiZX0sdyxrKSxuYSh0aGlzLG51bGwsTyx7a2luZDoiYWNjZXNzb3IiLG5hbWU6Imxhbmd1YWdlIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczp1ZT0+Imxhbmd1YWdlImluIHVlLGdldDp1ZT0+dWUubGFuZ3VhZ2Usc2V0Oih1ZSxDZSk9Pnt1ZS5sYW5ndWFnZT1DZX19LG1ldGFkYXRhOmJlfSx6LE0pLG5hKHRoaXMsbnVsbCxGLHtraW5kOiJhY2Nlc3NvciIsbmFtZToibWltZVR5cGUiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOnVlPT4ibWltZVR5cGUiaW4gdWUsZ2V0OnVlPT51ZS5taW1lVHlwZSxzZXQ6KHVlLENlKT0+e3VlLm1pbWVUeXBlPUNlfX0sbWV0YWRhdGE6YmV9LEQsTiksbmEodGhpcyxudWxsLFIse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJmaWxlbmFtZSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6dWU9PiJmaWxlbmFtZSJpbiB1ZSxnZXQ6dWU9PnVlLmZpbGVuYW1lLHNldDoodWUsQ2UpPT57dWUuZmlsZW5hbWU9Q2V9fSxtZXRhZGF0YTpiZX0sXyxTKSxuYSh0aGlzLG51bGwsJCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InNob3dUb29sYmFyIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczp1ZT0+InNob3dUb29sYmFyImluIHVlLGdldDp1ZT0+dWUuc2hvd1Rvb2xiYXIsc2V0Oih1ZSxDZSk9Pnt1ZS5zaG93VG9vbGJhcj1DZX19LG1ldGFkYXRhOmJlfSxULEUpLG5hKHRoaXMsbnVsbCxxLHtraW5kOiJhY2Nlc3NvciIsbmFtZToic2hvd0ZpbGVuYW1lIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczp1ZT0+InNob3dGaWxlbmFtZSJpbiB1ZSxnZXQ6dWU9PnVlLnNob3dGaWxlbmFtZSxzZXQ6KHVlLENlKT0+e3VlLnNob3dGaWxlbmFtZT1DZX19LG1ldGFkYXRhOmJlfSxCLEcpLG5hKHRoaXMsbnVsbCxlZSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InJlc29sdmVkVHlwZSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6dWU9PiJyZXNvbHZlZFR5cGUiaW4gdWUsZ2V0OnVlPT51ZS5yZXNvbHZlZFR5cGUsc2V0Oih1ZSxDZSk9Pnt1ZS5yZXNvbHZlZFR5cGU9Q2V9fSxtZXRhZGF0YTpiZX0sUCxnZSksbmEodGhpcyxudWxsLHdlLHtraW5kOiJhY2Nlc3NvciIsbmFtZToicmVzb2x2ZWRTcmMiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOnVlPT4icmVzb2x2ZWRTcmMiaW4gdWUsZ2V0OnVlPT51ZS5yZXNvbHZlZFNyYyxzZXQ6KHVlLENlKT0+e3VlLnJlc29sdmVkU3JjPUNlfX0sbWV0YWRhdGE6YmV9LEksbmUpLG5hKHRoaXMsbnVsbCxrZSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InJlc29sdmVkVGV4dCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6dWU9PiJyZXNvbHZlZFRleHQiaW4gdWUsZ2V0OnVlPT51ZS5yZXNvbHZlZFRleHQsc2V0Oih1ZSxDZSk9Pnt1ZS5yZXNvbHZlZFRleHQ9Q2V9fSxtZXRhZGF0YTpiZX0sWSxBKSxuYSh0aGlzLG51bGwsTCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InJlc29sdmVkTGFuZyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6dWU9PiJyZXNvbHZlZExhbmciaW4gdWUsZ2V0OnVlPT51ZS5yZXNvbHZlZExhbmcsc2V0Oih1ZSxDZSk9Pnt1ZS5yZXNvbHZlZExhbmc9Q2V9fSxtZXRhZGF0YTpiZX0sVSxWKSxuYSh0aGlzLG51bGwsWCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImxvYWRpbmciLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOnVlPT4ibG9hZGluZyJpbiB1ZSxnZXQ6dWU9PnVlLmxvYWRpbmcsc2V0Oih1ZSxDZSk9Pnt1ZS5sb2FkaW5nPUNlfX0sbWV0YWRhdGE6YmV9LGRlLHZlKSxuYSh0aGlzLG51bGwsTGUse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJlcnJvciIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6dWU9PiJlcnJvciJpbiB1ZSxnZXQ6dWU9PnVlLmVycm9yLHNldDoodWUsQ2UpPT57dWUuZXJyb3I9Q2V9fSxtZXRhZGF0YTpiZX0sVyxIKSxuYShudWxsLHQ9e3ZhbHVlOml9LGUse2tpbmQ6ImNsYXNzIixuYW1lOmkubmFtZSxtZXRhZGF0YTpiZX0sbnVsbCxyKSx0ZT1pPXQudmFsdWUsYmUmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShpLFN5bWJvbC5tZXRhZGF0YSx7ZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITAsdmFsdWU6YmV9KX1zdGF0aWMgZGVtbz1fM3I7c3RhdGljIGRlbW9Hcm91cHM9WyJNZWRpYSIsIkRhdGEgVmlldyJdOyNlPXZyKHRoaXMsbywiIik7Z2V0IHVybCgpe3JldHVybiB0aGlzLiNlfXNldCB1cmwoYmUpe3RoaXMuI2U9YmV9I3Q9KHZyKHRoaXMscyksdnIodGhpcyxjLHZvaWQgMCkpO2dldCBmaWxlKCl7cmV0dXJuIHRoaXMuI3R9c2V0IGZpbGUoYmUpe3RoaXMuI3Q9YmV9I3I9KHZyKHRoaXMsdSksdnIodGhpcyxoLCIiKSk7Z2V0IGJhc2U2NCgpe3JldHVybiB0aGlzLiNyfXNldCBiYXNlNjQoYmUpe3RoaXMuI3I9YmV9I2k9KHZyKHRoaXMsZiksdnIodGhpcyx2LCIiKSk7Z2V0IHRleHRDb250ZW50KCl7cmV0dXJuIHRoaXMuI2l9c2V0IHRleHRDb250ZW50KGJlKXt0aGlzLiNpPWJlfSNhPSh2cih0aGlzLGIpLHZyKHRoaXMsdyx2b2lkIDApKTtnZXQgY29udGVudFR5cGUoKXtyZXR1cm4gdGhpcy4jYX1zZXQgY29udGVudFR5cGUoYmUpe3RoaXMuI2E9YmV9I249KHZyKHRoaXMsayksdnIodGhpcyx6LCIiKSk7Z2V0IGxhbmd1YWdlKCl7cmV0dXJuIHRoaXMuI259c2V0IGxhbmd1YWdlKGJlKXt0aGlzLiNuPWJlfSNvPSh2cih0aGlzLE0pLHZyKHRoaXMsRCwiIikpO2dldCBtaW1lVHlwZSgpe3JldHVybiB0aGlzLiNvfXNldCBtaW1lVHlwZShiZSl7dGhpcy4jbz1iZX0jcz0odnIodGhpcyxOKSx2cih0aGlzLF8sIiIpKTtnZXQgZmlsZW5hbWUoKXtyZXR1cm4gdGhpcy4jc31zZXQgZmlsZW5hbWUoYmUpe3RoaXMuI3M9YmV9I2w9KHZyKHRoaXMsUyksdnIodGhpcyxULCEwKSk7Z2V0IHNob3dUb29sYmFyKCl7cmV0dXJuIHRoaXMuI2x9c2V0IHNob3dUb29sYmFyKGJlKXt0aGlzLiNsPWJlfSNjPSh2cih0aGlzLEUpLHZyKHRoaXMsQiwhMCkpO2dldCBzaG93RmlsZW5hbWUoKXtyZXR1cm4gdGhpcy4jY31zZXQgc2hvd0ZpbGVuYW1lKGJlKXt0aGlzLiNjPWJlfSNkPSh2cih0aGlzLEcpLHZyKHRoaXMsUCwidW5rbm93biIpKTtnZXQgcmVzb2x2ZWRUeXBlKCl7cmV0dXJuIHRoaXMuI2R9c2V0IHJlc29sdmVkVHlwZShiZSl7dGhpcy4jZD1iZX0jdT0odnIodGhpcyxnZSksdnIodGhpcyxJLCIiKSk7Z2V0IHJlc29sdmVkU3JjKCl7cmV0dXJuIHRoaXMuI3V9c2V0IHJlc29sdmVkU3JjKGJlKXt0aGlzLiN1PWJlfSNwPSh2cih0aGlzLG5lKSx2cih0aGlzLFksIiIpKTtnZXQgcmVzb2x2ZWRUZXh0KCl7cmV0dXJuIHRoaXMuI3B9c2V0IHJlc29sdmVkVGV4dChiZSl7dGhpcy4jcD1iZX0jaD0odnIodGhpcyxBKSx2cih0aGlzLFUsInRleHQiKSk7Z2V0IHJlc29sdmVkTGFuZygpe3JldHVybiB0aGlzLiNofXNldCByZXNvbHZlZExhbmcoYmUpe3RoaXMuI2g9YmV9I2Y9KHZyKHRoaXMsViksdnIodGhpcyxkZSwhMSkpO2dldCBsb2FkaW5nKCl7cmV0dXJuIHRoaXMuI2Z9c2V0IGxvYWRpbmcoYmUpe3RoaXMuI2Y9YmV9I209KHZyKHRoaXMsdmUpLHZyKHRoaXMsVywiIikpO2dldCBlcnJvcigpe3JldHVybiB0aGlzLiNtfXNldCBlcnJvcihiZSl7dGhpcy4jbT1iZX1vYmplY3RVcmw9KHZyKHRoaXMsSCksIiIpO3JlbmRlcigpe2xldCBiZT10aGlzLmZpbGVuYW1lfHx0aGlzLmZpbGU/Lm5hbWV8fHRoaXMuZ2V0RmlsZW5hbWVGcm9tVXJsKCl8fCIiO3JldHVybiBDYAogICAgICA8c3R5bGU+CiAgICAgICAgOmhvc3QgewogICAgICAgICAgZGlzcGxheTogYmxvY2s7CiAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgICAgICBmb250LWZhbWlseTogLWFwcGxlLXN5c3RlbSwgQmxpbmtNYWNTeXN0ZW1Gb250LCAnU2Vnb2UgVUknLCBSb2JvdG8sIHNhbnMtc2VyaWY7CiAgICAgICAgfQoKICAgICAgICAucHJldmlldy1jb250YWluZXIgewogICAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgICAgICBoZWlnaHQ6IDEwMCU7CiAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAke20uYmRUaGVtZSgiI2U1ZTdlYiIsIiMyNzI3MmEiKX07CiAgICAgICAgICBib3JkZXItcmFkaXVzOiA4cHg7CiAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgICAgICAgYmFja2dyb3VuZDogJHttLmJkVGhlbWUoIiNmZmZmZmYiLCIjMDkwOTBiIil9OwogICAgICAgIH0KCiAgICAgICAgLmhlYWRlci1iYXIgewogICAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgICBnYXA6IDhweDsKICAgICAgICAgIHBhZGRpbmc6IDAgMTZweDsKICAgICAgICAgIGhlaWdodDogNDBweDsKICAgICAgICAgIGJhY2tncm91bmQ6ICR7bS5iZFRoZW1lKCIjZjlmYWZiIiwiaHNsKDIxNSAyMCUgMTUlKSIpfTsKICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAke20uYmRUaGVtZSgiI2U1ZTdlYiIsImhzbCgyMTcgMjUlIDIyJSkiKX07CiAgICAgICAgICBmbGV4LXNocmluazogMDsKICAgICAgICB9CgogICAgICAgIC5oZWFkZXItaWNvbiB7CiAgICAgICAgICBjb2xvcjogJHttLmJkVGhlbWUoImhzbCgyMTUgMTYlIDQ1JSkiLCJoc2woMjE1IDE2JSA3NSUpIil9OwogICAgICAgICAgZmxleC1zaHJpbms6IDA7CiAgICAgICAgICBmb250LXNpemU6IDE2cHg7CiAgICAgICAgfQoKICAgICAgICAuaGVhZGVyLWZpbGVuYW1lIHsKICAgICAgICAgIGZvbnQtc2l6ZTogMTNweDsKICAgICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7CiAgICAgICAgICBjb2xvcjogJHttLmJkVGhlbWUoIiMwOTA5MGIiLCIjZmFmYWZhIil9OwogICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzOwogICAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDsKICAgICAgICAgIGZsZXg6IDE7CiAgICAgICAgfQoKICAgICAgICAuaGVhZGVyLWJhZGdlIHsKICAgICAgICAgIGZvbnQtc2l6ZTogMTFweDsKICAgICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7CiAgICAgICAgICBwYWRkaW5nOiAycHggOHB4OwogICAgICAgICAgYm9yZGVyLXJhZGl1czogNHB4OwogICAgICAgICAgYmFja2dyb3VuZDogJHttLmJkVGhlbWUoInJnYmEoNTksIDEzMCwgMjQ2LCAwLjEpIiwicmdiYSg1OSwgMTMwLCAyNDYsIDAuMTUpIil9OwogICAgICAgICAgY29sb3I6ICR7bS5iZFRoZW1lKCIjM2I4MmY2IiwiIzYwYTVmYSIpfTsKICAgICAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7CiAgICAgICAgICBmbGV4LXNocmluazogMDsKICAgICAgICB9CgogICAgICAgIC5jb250ZW50LWFyZWEgewogICAgICAgICAgZmxleDogMTsKICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47CiAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgICAgICBtaW4taGVpZ2h0OiAyMDBweDsKICAgICAgICB9CgogICAgICAgIC5jb250ZW50LWFyZWEgPiAqIHsKICAgICAgICAgIHdpZHRoOiAxMDAlOwogICAgICAgICAgaGVpZ2h0OiAxMDAlOwogICAgICAgIH0KCiAgICAgICAgZGVlcy1pbWFnZS12aWV3ZXIgewogICAgICAgICAgZGlzcGxheTogYmxvY2s7CiAgICAgICAgICBoZWlnaHQ6IDEwMCU7CiAgICAgICAgfQoKICAgICAgICBkZWVzLXBkZi12aWV3ZXIgewogICAgICAgICAgZGlzcGxheTogYmxvY2s7CiAgICAgICAgICBoZWlnaHQ6IDEwMCU7CiAgICAgICAgfQoKICAgICAgICBkZWVzLXZpZGVvLXZpZXdlciB7CiAgICAgICAgICBkaXNwbGF5OiBibG9jazsKICAgICAgICB9CgogICAgICAgIGRlZXMtYXVkaW8tdmlld2VyIHsKICAgICAgICAgIGRpc3BsYXk6IGJsb2NrOwogICAgICAgICAgaGVpZ2h0OiAxMDAlOwogICAgICAgIH0KCiAgICAgICAgZGVlcy1kYXRhdmlldy1jb2RlYm94IHsKICAgICAgICAgIGRpc3BsYXk6IGJsb2NrOwogICAgICAgIH0KCiAgICAgICAgLnRleHQtdmlld2VyIHsKICAgICAgICAgIG1hcmdpbjogMDsKICAgICAgICAgIHBhZGRpbmc6IDE2cHg7CiAgICAgICAgICBmb250LWZhbWlseTogdWktbW9ub3NwYWNlLCBTRk1vbm8tUmVndWxhciwgTWVubG8sIE1vbmFjbywgQ29uc29sYXMsIG1vbm9zcGFjZTsKICAgICAgICAgIGZvbnQtc2l6ZTogMTNweDsKICAgICAgICAgIGxpbmUtaGVpZ2h0OiAxLjU7CiAgICAgICAgICBjb2xvcjogJHttLmJkVGhlbWUoIiMwOTA5MGIiLCIjZmFmYWZhIil9OwogICAgICAgICAgd2hpdGUtc3BhY2U6IHByZS13cmFwOwogICAgICAgICAgd29yZC13cmFwOiBicmVhay13b3JkOwogICAgICAgICAgb3ZlcmZsb3c6IGF1dG87CiAgICAgICAgICBoZWlnaHQ6IDEwMCU7CiAgICAgICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94OwogICAgICAgIH0KCiAgICAgICAgLnBsYWNlaG9sZGVyIHsKICAgICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOwogICAgICAgICAgZ2FwOiAxMnB4OwogICAgICAgICAgaGVpZ2h0OiAxMDAlOwogICAgICAgICAgbWluLWhlaWdodDogMjAwcHg7CiAgICAgICAgICBjb2xvcjogJHttLmJkVGhlbWUoIiNhMWExYWEiLCIjNzE3MTdhIil9OwogICAgICAgIH0KCiAgICAgICAgLnBsYWNlaG9sZGVyIGRlZXMtaWNvbiB7CiAgICAgICAgICBvcGFjaXR5OiAwLjU7CiAgICAgICAgICBmb250LXNpemU6IDMycHg7CiAgICAgICAgfQoKICAgICAgICAucGxhY2Vob2xkZXItdGV4dCB7CiAgICAgICAgICBmb250LXNpemU6IDE0cHg7CiAgICAgICAgfQoKICAgICAgICAubG9hZGluZy1jb250YWluZXIgewogICAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKICAgICAgICAgIGhlaWdodDogMTAwJTsKICAgICAgICAgIG1pbi1oZWlnaHQ6IDIwMHB4OwogICAgICAgIH0KCiAgICAgICAgLmxvYWRpbmctc3Bpbm5lciB7CiAgICAgICAgICB3aWR0aDogMzJweDsKICAgICAgICAgIGhlaWdodDogMzJweDsKICAgICAgICAgIGJvcmRlcjogM3B4IHNvbGlkICR7bS5iZFRoZW1lKCIjZTVlN2ViIiwiIzNmM2Y0NiIpfTsKICAgICAgICAgIGJvcmRlci10b3AtY29sb3I6ICR7bS5iZFRoZW1lKCIjM2I4MmY2IiwiIzYwYTVmYSIpfTsKICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDUwJTsKICAgICAgICAgIGFuaW1hdGlvbjogc3BpbiAwLjhzIGxpbmVhciBpbmZpbml0ZTsKICAgICAgICB9CgogICAgICAgIEBrZXlmcmFtZXMgc3BpbiB7CiAgICAgICAgICB0byB7IHRyYW5zZm9ybTogcm90YXRlKDM2MGRlZyk7IH0KICAgICAgICB9CgogICAgICAgIC5lcnJvci1jb250YWluZXIgewogICAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7CiAgICAgICAgICBnYXA6IDhweDsKICAgICAgICAgIGhlaWdodDogMTAwJTsKICAgICAgICAgIG1pbi1oZWlnaHQ6IDIwMHB4OwogICAgICAgICAgY29sb3I6ICR7bS5iZFRoZW1lKCIjZGMyNjI2IiwiI2Y4NzE3MSIpfTsKICAgICAgICB9CgogICAgICAgIC5lcnJvci1jb250YWluZXIgZGVlcy1pY29uIHsKICAgICAgICAgIGZvbnQtc2l6ZTogMzJweDsKICAgICAgICB9CgogICAgICAgIC5lcnJvci10ZXh0IHsKICAgICAgICAgIGZvbnQtc2l6ZTogMTNweDsKICAgICAgICB9CiAgICAgIDwvc3R5bGU+CgogICAgICA8ZGl2IGNsYXNzPSJwcmV2aWV3LWNvbnRhaW5lciI+CiAgICAgICAgJHt0aGlzLnNob3dGaWxlbmFtZSYmYmU/Q2AKICAgICAgICAgIDxkaXYgY2xhc3M9ImhlYWRlci1iYXIiPgogICAgICAgICAgICA8ZGVlcy1pY29uIGNsYXNzPSJoZWFkZXItaWNvbiIgaWNvbj0iJHttWHJbdGhpcy5yZXNvbHZlZFR5cGVdfSI+PC9kZWVzLWljb24+CiAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJoZWFkZXItZmlsZW5hbWUiPiR7YmV9PC9zcGFuPgogICAgICAgICAgICA8c3BhbiBjbGFzcz0iaGVhZGVyLWJhZGdlIj4ke3RoaXMucmVzb2x2ZWRUeXBlfTwvc3Bhbj4KICAgICAgICAgIDwvZGl2PgogICAgICAgIGA6IiJ9CgogICAgICAgIDxkaXYgY2xhc3M9ImNvbnRlbnQtYXJlYSI+CiAgICAgICAgICAke3RoaXMuZXJyb3I/Q2AKICAgICAgICAgICAgPGRpdiBjbGFzcz0iZXJyb3ItY29udGFpbmVyIj4KICAgICAgICAgICAgICA8ZGVlcy1pY29uIGljb249Imx1Y2lkZTpBbGVydFRyaWFuZ2xlIj48L2RlZXMtaWNvbj4KICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZXJyb3ItdGV4dCI+JHt0aGlzLmVycm9yfTwvc3Bhbj4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICBgOnRoaXMubG9hZGluZz9DYAogICAgICAgICAgICA8ZGl2IGNsYXNzPSJsb2FkaW5nLWNvbnRhaW5lciI+CiAgICAgICAgICAgICAgPGRpdiBjbGFzcz0ibG9hZGluZy1zcGlubmVyIj48L2Rpdj4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICBgOnRoaXMucmVuZGVyQ29udGVudCgpfQogICAgICAgIDwvZGl2PgogICAgICA8L2Rpdj4KICAgIGB9cmVuZGVyQ29udGVudCgpe3N3aXRjaCh0aGlzLnJlc29sdmVkVHlwZSl7Y2FzZSJpbWFnZSI6cmV0dXJuIENgCiAgICAgICAgICA8ZGVlcy1pbWFnZS12aWV3ZXIKICAgICAgICAgICAgLnNyYz0ke3RoaXMucmVzb2x2ZWRTcmN9CiAgICAgICAgICAgIC5zaG93VG9vbGJhcj0ke3RoaXMuc2hvd1Rvb2xiYXJ9CiAgICAgICAgICAgIGFsdD0iJHt0aGlzLmZpbGVuYW1lfHwiIn0iCiAgICAgICAgICA+PC9kZWVzLWltYWdlLXZpZXdlcj4KICAgICAgICBgO2Nhc2UicGRmIjpyZXR1cm4gQ2AKICAgICAgICAgIDxkZWVzLXBkZi12aWV3ZXIKICAgICAgICAgICAgLnBkZlVybD0ke3RoaXMucmVzb2x2ZWRTcmN9CiAgICAgICAgICAgIC5zaG93VG9vbGJhcj0ke3RoaXMuc2hvd1Rvb2xiYXJ9CiAgICAgICAgICAgIGluaXRpYWxab29tPSJwYWdlLWZpdCIKICAgICAgICAgID48L2RlZXMtcGRmLXZpZXdlcj4KICAgICAgICBgO2Nhc2UiYXVkaW8iOnJldHVybiBDYAogICAgICAgICAgPGRlZXMtYXVkaW8tdmlld2VyCiAgICAgICAgICAgIC5zcmM9JHt0aGlzLnJlc29sdmVkU3JjfQogICAgICAgICAgICAudGl0bGU9JHt0aGlzLmZpbGVuYW1lfHx0aGlzLmZpbGU/Lm5hbWV8fCIifQogICAgICAgICAgPjwvZGVlcy1hdWRpby12aWV3ZXI+CiAgICAgICAgYDtjYXNlInZpZGVvIjpyZXR1cm4gQ2AKICAgICAgICAgIDxkZWVzLXZpZGVvLXZpZXdlcgogICAgICAgICAgICAuc3JjPSR7dGhpcy5yZXNvbHZlZFNyY30KICAgICAgICAgID48L2RlZXMtdmlkZW8tdmlld2VyPgogICAgICAgIGA7Y2FzZSJjb2RlIjpyZXR1cm4gQ2AKICAgICAgICAgIDxkZWVzLWRhdGF2aWV3LWNvZGVib3gKICAgICAgICAgICAgLnByb2dMYW5nPSR7dGhpcy5yZXNvbHZlZExhbmd9CiAgICAgICAgICAgIC5jb2RlVG9EaXNwbGF5PSR7dGhpcy5yZXNvbHZlZFRleHR9CiAgICAgICAgICA+PC9kZWVzLWRhdGF2aWV3LWNvZGVib3g+CiAgICAgICAgYDtjYXNlInRleHQiOnJldHVybiBDYDxwcmUgY2xhc3M9InRleHQtdmlld2VyIj4ke3RoaXMucmVzb2x2ZWRUZXh0fTwvcHJlPmA7ZGVmYXVsdDpyZXR1cm4gQ2AKICAgICAgICAgIDxkaXYgY2xhc3M9InBsYWNlaG9sZGVyIj4KICAgICAgICAgICAgPGRlZXMtaWNvbiBpY29uPSJsdWNpZGU6RmlsZVF1ZXN0aW9uIj48L2RlZXMtaWNvbj4KICAgICAgICAgICAgPHNwYW4gY2xhc3M9InBsYWNlaG9sZGVyLXRleHQiPlByZXZpZXcgbm90IGF2YWlsYWJsZTwvc3Bhbj4KICAgICAgICAgIDwvZGl2PgogICAgICAgIGB9fWFzeW5jIHVwZGF0ZWQoYmUpe3N1cGVyLnVwZGF0ZWQoYmUpLFsidXJsIiwiZmlsZSIsImJhc2U2NCIsInRleHRDb250ZW50IiwiY29udGVudFR5cGUiLCJsYW5ndWFnZSIsIm1pbWVUeXBlIiwiZmlsZW5hbWUiXS5zb21lKGhlPT5iZS5oYXMoaGUpKSYmYXdhaXQgdGhpcy5yZXNvbHZlQ29udGVudCgpfWFzeW5jIGRpc2Nvbm5lY3RlZENhbGxiYWNrKCl7YXdhaXQgc3VwZXIuZGlzY29ubmVjdGVkQ2FsbGJhY2soKSx0aGlzLnJldm9rZU9iamVjdFVybCgpfWFzeW5jIHJlc29sdmVDb250ZW50KCl7dGhpcy5lcnJvcj0iIix0aGlzLnJldm9rZU9iamVjdFVybCgpLHRoaXMucmVzb2x2ZWRUeXBlPXRoaXMuZGV0ZWN0VHlwZSgpO3RyeXtpZih0aGlzLnVybCl7aWYodGhpcy5yZXNvbHZlZFNyYz10aGlzLnVybCx0aGlzLnJlc29sdmVkVHlwZT09PSJjb2RlInx8dGhpcy5yZXNvbHZlZFR5cGU9PT0idGV4dCIpaWYodGhpcy50ZXh0Q29udGVudCl0aGlzLnJlc29sdmVkVGV4dD10aGlzLnRleHRDb250ZW50O2Vsc2V7dGhpcy5sb2FkaW5nPSEwO2xldCBiZT1hd2FpdCBmZXRjaCh0aGlzLnVybCk7dGhpcy5yZXNvbHZlZFRleHQ9YXdhaXQgYmUudGV4dCgpLHRoaXMubG9hZGluZz0hMX19ZWxzZSBpZih0aGlzLmZpbGUpdGhpcy5vYmplY3RVcmw9VVJMLmNyZWF0ZU9iamVjdFVSTCh0aGlzLmZpbGUpLHRoaXMucmVzb2x2ZWRTcmM9dGhpcy5vYmplY3RVcmwsKHRoaXMucmVzb2x2ZWRUeXBlPT09ImNvZGUifHx0aGlzLnJlc29sdmVkVHlwZT09PSJ0ZXh0IikmJih0aGlzLmxvYWRpbmc9ITAsdGhpcy5yZXNvbHZlZFRleHQ9YXdhaXQgdGhpcy5maWxlLnRleHQoKSx0aGlzLmxvYWRpbmc9ITEpO2Vsc2UgaWYodGhpcy5iYXNlNjQpe2xldCBiZT10aGlzLm1pbWVUeXBlfHwiYXBwbGljYXRpb24vb2N0ZXQtc3RyZWFtIjt0aGlzLnJlc29sdmVkU3JjPWBkYXRhOiR7YmV9O2Jhc2U2NCwke3RoaXMuYmFzZTY0fWB9ZWxzZSB0aGlzLnRleHRDb250ZW50JiYodGhpcy5yZXNvbHZlZFRleHQ9dGhpcy50ZXh0Q29udGVudCl9Y2F0Y2h7dGhpcy5lcnJvcj0iRmFpbGVkIHRvIGxvYWQgY29udGVudCIsdGhpcy5sb2FkaW5nPSExfXRoaXMucmVzb2x2ZWRMYW5nPXRoaXMucmVzb2x2ZUxhbmd1YWdlKCl9ZGV0ZWN0VHlwZSgpe2lmKHRoaXMuY29udGVudFR5cGUpcmV0dXJuIHRoaXMuY29udGVudFR5cGU7bGV0IGJlPXRoaXMubWltZVR5cGV8fHRoaXMuZmlsZT8udHlwZXx8IiI7aWYoYmUpe2lmKGJlPT09ImFwcGxpY2F0aW9uL3BkZiIpcmV0dXJuInBkZiI7Zm9yKGxldFtDZSxoZV1vZiBPYmplY3QuZW50cmllcyhoWHIpKWlmKGJlLnN0YXJ0c1dpdGgoQ2UpKXJldHVybiBoZTtpZihiZS5zdGFydHNXaXRoKCJ0ZXh0LyIpKXJldHVybiJ0ZXh0In1sZXQgdWU9dGhpcy5nZXRFeHRlbnNpb24oKTtyZXR1cm4gdWUmJkEzclt1ZV0/QTNyW3VlXTp0aGlzLnRleHRDb250ZW50P3RoaXMubGFuZ3VhZ2U/ImNvZGUiOiJ0ZXh0IjoidW5rbm93biJ9Z2V0RXh0ZW5zaW9uKCl7bGV0IGJlPXRoaXMuZmlsZW5hbWV8fHRoaXMuZmlsZT8ubmFtZXx8IiI7aWYoYmUpe2xldCB1ZT1iZS5zcGxpdCgiLiIpO2lmKHVlLmxlbmd0aD4xKXJldHVybiB1ZS5wb3AoKS50b0xvd2VyQ2FzZSgpfWlmKHRoaXMudXJsKXRyeXtsZXQgQ2U9bmV3IFVSTCh0aGlzLnVybCwiaHR0cHM6Ly9wbGFjZWhvbGRlci5jb20iKS5wYXRobmFtZS5zcGxpdCgiLiIpO2lmKENlLmxlbmd0aD4xKXJldHVybiBDZS5wb3AoKS50b0xvd2VyQ2FzZSgpfWNhdGNoe31yZXR1cm4iIn1nZXRGaWxlbmFtZUZyb21VcmwoKXtpZighdGhpcy51cmwpcmV0dXJuIiI7dHJ5e3JldHVybiBuZXcgVVJMKHRoaXMudXJsLCJodHRwczovL3BsYWNlaG9sZGVyLmNvbSIpLnBhdGhuYW1lLnNwbGl0KCIvIikucG9wKCl8fCIifWNhdGNoe3JldHVybiIifX1yZXNvbHZlTGFuZ3VhZ2UoKXtpZih0aGlzLmxhbmd1YWdlKXJldHVybiB0aGlzLmxhbmd1YWdlO2xldCBiZT10aGlzLmdldEV4dGVuc2lvbigpO3JldHVybiBmWHJbYmVdfHwidGV4dCJ9cmV2b2tlT2JqZWN0VXJsKCl7dGhpcy5vYmplY3RVcmwmJihVUkwucmV2b2tlT2JqZWN0VVJMKHRoaXMub2JqZWN0VXJsKSx0aGlzLm9iamVjdFVybD0iIil9c3RhdGlje3ZyKGkscil9fTtyZXR1cm4gdGU9aX0pKCl9KTt2YXIgJDNyPXAoKCk9PntFM3IoKX0pO3ZhciBJM3IseWRlLFAzcixOM3I9cCgoKT0+e3hlKCk7RWkoKTtNaSgpO29yKCk7STNyPWZ1bmN0aW9uKGUsdCxyLGksYSxuKXtmdW5jdGlvbiBvKHkpe2lmKHkhPT12b2lkIDAmJnR5cGVvZiB5IT0iZnVuY3Rpb24iKXRocm93IG5ldyBUeXBlRXJyb3IoIkZ1bmN0aW9uIGV4cGVjdGVkIik7cmV0dXJuIHl9Zm9yKHZhciBzPWkua2luZCxsPXM9PT0iZ2V0dGVyIj8iZ2V0IjpzPT09InNldHRlciI/InNldCI6InZhbHVlIixjPSF0JiZlP2kuc3RhdGljP2U6ZS5wcm90b3R5cGU6bnVsbCx1PXR8fChjP09iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoYyxpLm5hbWUpOnt9KSxkLGg9ITEsZj1yLmxlbmd0aC0xO2Y+PTA7Zi0tKXt2YXIgeD17fTtmb3IodmFyIHYgaW4gaSl4W3ZdPXY9PT0iYWNjZXNzIj97fTppW3ZdO2Zvcih2YXIgdiBpbiBpLmFjY2Vzcyl4LmFjY2Vzc1t2XT1pLmFjY2Vzc1t2XTt4LmFkZEluaXRpYWxpemVyPWZ1bmN0aW9uKHkpe2lmKGgpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGFkZCBpbml0aWFsaXplcnMgYWZ0ZXIgZGVjb3JhdGlvbiBoYXMgY29tcGxldGVkIik7bi5wdXNoKG8oeXx8bnVsbCkpfTt2YXIgYj0oMCxyW2ZdKShzPT09ImFjY2Vzc29yIj97Z2V0OnUuZ2V0LHNldDp1LnNldH06dVtsXSx4KTtpZihzPT09ImFjY2Vzc29yIil7aWYoYj09PXZvaWQgMCljb250aW51ZTtpZihiPT09bnVsbHx8dHlwZW9mIGIhPSJvYmplY3QiKXRocm93IG5ldyBUeXBlRXJyb3IoIk9iamVjdCBleHBlY3RlZCIpOyhkPW8oYi5nZXQpKSYmKHUuZ2V0PWQpLChkPW8oYi5zZXQpKSYmKHUuc2V0PWQpLChkPW8oYi5pbml0KSkmJmEudW5zaGlmdChkKX1lbHNlKGQ9byhiKSkmJihzPT09ImZpZWxkIj9hLnVuc2hpZnQoZCk6dVtsXT1kKX1jJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoYyxpLm5hbWUsdSksaD0hMH0seWRlPWZ1bmN0aW9uKGUsdCxyKXtmb3IodmFyIGk9YXJndW1lbnRzLmxlbmd0aD4yLGE9MDthPHQubGVuZ3RoO2ErKylyPWk/dFthXS5jYWxsKGUscik6dFthXS5jYWxsKGUpO3JldHVybiBpP3I6dm9pZCAwfSxQM3I9KCgpPT57bGV0IGU9W3llKCJkZWVzLXBkZiIpXSx0LHI9W10saSxhPXplLG4sbz1bXSxzPVtdO3ZhciBsPWNsYXNzIGV4dGVuZHMgYXtzdGF0aWN7aT10aGlzfXN0YXRpY3tsZXQgYz10eXBlb2YgU3ltYm9sPT0iZnVuY3Rpb24iJiZTeW1ib2wubWV0YWRhdGE/T2JqZWN0LmNyZWF0ZShhW1N5bWJvbC5tZXRhZGF0YV0/P251bGwpOnZvaWQgMDtuPVtqKCldLEkzcih0aGlzLG51bGwsbix7a2luZDoiYWNjZXNzb3IiLG5hbWU6InBkZlVybCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6dT0+InBkZlVybCJpbiB1LGdldDp1PT51LnBkZlVybCxzZXQ6KHUsZCk9Pnt1LnBkZlVybD1kfX0sbWV0YWRhdGE6Y30sbyxzKSxJM3IobnVsbCx0PXt2YWx1ZTppfSxlLHtraW5kOiJjbGFzcyIsbmFtZTppLm5hbWUsbWV0YWRhdGE6Y30sbnVsbCxyKSxsPWk9dC52YWx1ZSxjJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoaSxTeW1ib2wubWV0YWRhdGEse2VudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwLHZhbHVlOmN9KX1zdGF0aWMgZGVtbz0oKT0+Q2AgPGRlZXMtcGRmPjwvZGVlcy1wZGY+IGA7c3RhdGljIGRlbW9Hcm91cHM9WyJNZWRpYSIsIlBERiJdOyNlPXlkZSh0aGlzLG8sImh0dHBzOi8vcmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbS9tb3ppbGxhL3BkZi5qcy9iYTJlZGVhZS9leGFtcGxlcy9sZWFybmluZy9oZWxsb3dvcmxkLnBkZiIpO2dldCBwZGZVcmwoKXtyZXR1cm4gdGhpcy4jZX1zZXQgcGRmVXJsKGMpe3RoaXMuI2U9Y31jb25zdHJ1Y3Rvcigpe3N1cGVyKCkseWRlKHRoaXMscyl9cmVuZGVyKCl7cmV0dXJuIENgCiAgICAgIDxzdHlsZT4KICAgICAgICA6aG9zdCB7CiAgICAgICAgICBmb250LWZhbWlseTogJ0dlaXN0IFNhbnMnLCBzYW5zLXNlcmlmOwogICAgICAgICAgZGlzcGxheTogYmxvY2s7CiAgICAgICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94OwogICAgICAgICAgbWF4LXdpZHRoOiA4MDBweDsKICAgICAgICB9CiAgICAgICAgOmhvc3QoW2hpZGRlbl0pIHsKICAgICAgICAgIGRpc3BsYXk6IG5vbmU7CiAgICAgICAgfQoKICAgICAgICAjcGRmY2FudmFzIHsKICAgICAgICAgIGJveC1zaGFkb3c6IDBweCAwcHggNXB4ICNjY2M7CiAgICAgICAgICB3aWR0aDogMTAwJTsKICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjsKICAgICAgICB9CiAgICAgIDwvc3R5bGU+CiAgICAgIDxjYW52YXMKICAgICAgICBpZD0icGRmY2FudmFzIgogICAgICAgIC5oZWlnaHQ9JHswfQogICAgICAgIC53aWR0aD0kezB9CgogICAgICA+PC9jYW52YXM+CiAgICBgfXN0YXRpYyBwZGZKc1JlYWR5O3N0YXRpYyBwZGZqc0xpYjthc3luYyBjb25uZWN0ZWRDYWxsYmFjaygpe2lmKHN1cGVyLmNvbm5lY3RlZENhbGxiYWNrKCksIWwucGRmSnNSZWFkeSl7bGV0IGM9a3QucGx1Z2lucy5zbWFydHByb21pc2UuZGVmZXIoKTtsLnBkZkpzUmVhZHk9Yy5wcm9taXNlLGwucGRmanNMaWI9YXdhaXQgaW1wb3J0KCJodHRwczovL2Nkbi5qc2RlbGl2ci5uZXQvbnBtL3BkZmpzLWRpc3RANC4wLjM3OS8rZXNtIiksbC5wZGZqc0xpYi5HbG9iYWxXb3JrZXJPcHRpb25zLndvcmtlclNyYz0iaHR0cHM6Ly9jZG4uanNkZWxpdnIubmV0L25wbS9wZGZqcy1kaXN0QDQuMC4zNzkvYnVpbGQvcGRmLndvcmtlci5tanMiLGMucmVzb2x2ZSgpfWF3YWl0IGwucGRmSnNSZWFkeSx0aGlzLmRpc3BsYXlDb250ZW50KCl9YXN5bmMgZGlzcGxheUNvbnRlbnQoKXthd2FpdCBsLnBkZkpzUmVhZHksbC5wZGZqc0xpYi5nZXREb2N1bWVudCh0aGlzLnBkZlVybCkucHJvbWlzZS50aGVuKHU9Pntjb25zb2xlLmxvZygiUERGIGxvYWRlZCIpLHUuZ2V0UGFnZSgxKS50aGVuKGg9Pntjb25zb2xlLmxvZygiUGFnZSBsb2FkZWQiKTtsZXQgeD1oLmdldFZpZXdwb3J0KHtzY2FsZToxMH0pLHY9dGhpcy5zaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3IoIiNwZGZjYW52YXMiKSxiPXYuZ2V0Q29udGV4dCgiMmQiKTt2LmhlaWdodD14LmhlaWdodCx2LndpZHRoPXgud2lkdGg7bGV0IHk9e2NhbnZhc0NvbnRleHQ6Yix2aWV3cG9ydDp4fTtoLnJlbmRlcih5KS5wcm9taXNlLnRoZW4oZnVuY3Rpb24oKXtjb25zb2xlLmxvZygiUGFnZSByZW5kZXJlZCIpfSl9KX0sdT0+e2NvbnNvbGUuZXJyb3IodSl9KX1nZXRDb250ZXh0TWVudUl0ZW1zKCl7cmV0dXJuW3tuYW1lOiJPcGVuIFBERiBpbiBOZXcgVGFiIixpY29uTmFtZToibHVjaWRlOkV4dGVybmFsTGluayIsYWN0aW9uOmFzeW5jKCk9Pnt3aW5kb3cub3Blbih0aGlzLnBkZlVybCwiX2JsYW5rIil9fSx7ZGl2aWRlcjohMH0se25hbWU6IkNvcHkgUERGIFVSTCIsaWNvbk5hbWU6Imx1Y2lkZTpDb3B5IixhY3Rpb246YXN5bmMoKT0+e2F3YWl0IG5hdmlnYXRvci5jbGlwYm9hcmQud3JpdGVUZXh0KHRoaXMucGRmVXJsKX19LHtuYW1lOiJEb3dubG9hZCBQREYiLGljb25OYW1lOiJsdWNpZGU6RG93bmxvYWQiLGFjdGlvbjphc3luYygpPT57bGV0IGM9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiYSIpO2MuaHJlZj10aGlzLnBkZlVybCxjLmRvd25sb2FkPXRoaXMucGRmVXJsLnNwbGl0KCIvIikucG9wKCl8fCJkb2N1bWVudC5wZGYiLGMuY2xpY2soKX19XX1zdGF0aWN7eWRlKGkscil9fTtyZXR1cm4gbD1pfSkoKX0pO3ZhciBGM3I9cCgoKT0+e04zcigpfSk7dmFyIEZhLFRjPXAoKCk9Pnt4ZSgpO0ZhPVttLmRlZmF1bHRTdHlsZXMsb2VgCiAgICA6aG9zdCB7CiAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jazsKICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgfQoKICAgIC50aWxlLWNvbnRhaW5lciB7CiAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgd2lkdGg6IDIwMHB4OwogICAgICBoZWlnaHQ6IDI2MHB4OwogICAgICBiYWNrZ3JvdW5kOiAke20uYmRUaGVtZSgiaHNsKDAgMCUgOTglKSIsImhzbCgyMTUgMjAlIDE0JSkiKX07CiAgICAgIGJvcmRlci1yYWRpdXM6IDRweDsKICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgICAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDAuMnMgZWFzZSwgYm94LXNoYWRvdyAwLjJzIGVhc2U7CiAgICAgIGJveC1zaGFkb3c6IDAgMXB4IDNweCAke20uYmRUaGVtZSgicmdiYSgwLCAwLCAwLCAwLjEyKSIsInJnYmEoMCwgMCwgMCwgMC4yNCkiKX07CiAgICB9CgogICAgLnRpbGUtY29udGFpbmVyLmNsaWNrYWJsZSB7CiAgICAgIGN1cnNvcjogcG9pbnRlcjsKICAgIH0KCiAgICAudGlsZS1jb250YWluZXIuY2xpY2thYmxlOmhvdmVyIHsKICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0ycHgpOwogICAgICBib3gtc2hhZG93OiAwIDhweCAyNHB4ICR7bS5iZFRoZW1lKCJyZ2JhKDAsIDAsIDAsIDAuMTIpIiwicmdiYSgwLCAwLCAwLCAwLjMpIil9OwogICAgfQoKICAgIC50aWxlLWNvbnRhaW5lci5jbGlja2FibGU6aG92ZXIgLnRpbGUtb3ZlcmxheSB7CiAgICAgIG9wYWNpdHk6IDE7CiAgICB9CgogICAgLnRpbGUtY29udGVudCB7CiAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgd2lkdGg6IDEwMCU7CiAgICAgIGhlaWdodDogMTAwJTsKICAgICAgZGlzcGxheTogZmxleDsKICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7CiAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7CiAgICAgIG92ZXJmbG93OiBoaWRkZW47CiAgICB9CgogICAgLnRpbGUtb3ZlcmxheSB7CiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgdG9wOiAwOwogICAgICBsZWZ0OiAwOwogICAgICByaWdodDogMDsKICAgICAgYm90dG9tOiAwOwogICAgICBiYWNrZ3JvdW5kOiAke20uYmRUaGVtZSgicmdiYSgwLCAwLCAwLCAwLjcpIiwicmdiYSgwLCAwLCAwLCAwLjgpIil9OwogICAgICBkaXNwbGF5OiBmbGV4OwogICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKICAgICAgZ2FwOiA4cHg7CiAgICAgIG9wYWNpdHk6IDA7CiAgICAgIHRyYW5zaXRpb246IG9wYWNpdHkgMC4ycyBlYXNlOwogICAgICB6LWluZGV4OiAyMDsKICAgIH0KCiAgICAudGlsZS1vdmVybGF5IGRlZXMtaWNvbiB7CiAgICAgIGZvbnQtc2l6ZTogMjRweDsKICAgICAgY29sb3I6IHdoaXRlOwogICAgfQoKICAgIC50aWxlLW92ZXJsYXkgc3BhbiB7CiAgICAgIGZvbnQtc2l6ZTogMTRweDsKICAgICAgZm9udC13ZWlnaHQ6IDUwMDsKICAgICAgY29sb3I6IHdoaXRlOwogICAgfQoKICAgIC50aWxlLWluZm8gewogICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgIGJvdHRvbTogOHB4OwogICAgICBsZWZ0OiA4cHg7CiAgICAgIHJpZ2h0OiA4cHg7CiAgICAgIHBhZGRpbmc6IDZweCAxMHB4OwogICAgICBiYWNrZ3JvdW5kOiAke20uYmRUaGVtZSgiaHNsKDAgMCUgMTAwJSAvIDAuOTIpIiwiaHNsKDIxNSAyMCUgMTIlIC8gMC45MikiKX07CiAgICAgIGJvcmRlci1yYWRpdXM6IDZweDsKICAgICAgZGlzcGxheTogZmxleDsKICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgZ2FwOiA2cHg7CiAgICAgIGZvbnQtc2l6ZTogMTJweDsKICAgICAgY29sb3I6ICR7bS5iZFRoZW1lKCJoc2woMjE1IDE2JSA0NSUpIiwiaHNsKDIxNSAxNiUgNzUlKSIpfTsKICAgICAgYmFja2Ryb3AtZmlsdGVyOiBibHVyKDEycHgpOwogICAgICBib3gtc2hhZG93OiAwIDJweCA4cHggcmdiYSgwLCAwLCAwLCAwLjEpOwogICAgICB6LWluZGV4OiAxMDsKICAgIH0KCiAgICAudGlsZS1pbmZvIGRlZXMtaWNvbiB7CiAgICAgIGZvbnQtc2l6ZTogMTNweDsKICAgICAgY29sb3I6ICR7bS5iZFRoZW1lKCJoc2woMjE3IDkxJSA2MCUpIiwiaHNsKDIxMyA5MyUgNjglKSIpfTsKICAgIH0KCiAgICAudGlsZS1pbmZvLXRleHQgewogICAgICBmb250LXdlaWdodDogNTAwOwogICAgICBmb250LXNpemU6IDExcHg7CiAgICB9CgogICAgLnRpbGUtYmFkZ2UgewogICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgIHRvcDogOHB4OwogICAgICBsZWZ0OiA4cHg7CiAgICAgIHJpZ2h0OiA4cHg7CiAgICAgIHBhZGRpbmc6IDVweCA4cHg7CiAgICAgIGJhY2tncm91bmQ6ICR7bS5iZFRoZW1lKCJoc2woMCAwJSAwJSAvIDAuNykiLCJoc2woMCAwJSAxMDAlIC8gMC45KSIpfTsKICAgICAgY29sb3I6ICR7bS5iZFRoZW1lKCJ3aGl0ZSIsImhzbCgyMTUgMjAlIDEyJSkiKX07CiAgICAgIGJvcmRlci1yYWRpdXM6IDRweDsKICAgICAgZm9udC1zaXplOiAxMXB4OwogICAgICBmb250LXdlaWdodDogNjAwOwogICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7CiAgICAgIGJhY2tkcm9wLWZpbHRlcjogYmx1cigxMnB4KTsKICAgICAgei1pbmRleDogMTU7CiAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lOwogICAgICBhbmltYXRpb246IGZhZGVJbiAwLjJzIGVhc2U7CiAgICB9CgogICAgLnRpbGUtYmFkZ2UtY29ybmVyIHsKICAgICAgcG9zaXRpb246IGFic29sdXRlOwogICAgICBib3R0b206IDhweDsKICAgICAgcmlnaHQ6IDhweDsKICAgICAgcGFkZGluZzogM3B4IDhweDsKICAgICAgYmFja2dyb3VuZDogJHttLmJkVGhlbWUoImhzbCgwIDAlIDAlIC8gMC42KSIsImhzbCgwIDAlIDEwMCUgLyAwLjg1KSIpfTsKICAgICAgY29sb3I6ICR7bS5iZFRoZW1lKCJ3aGl0ZSIsImhzbCgyMTUgMjAlIDEyJSkiKX07CiAgICAgIGJvcmRlci1yYWRpdXM6IDRweDsKICAgICAgZm9udC1zaXplOiAxMHB4OwogICAgICBmb250LXdlaWdodDogNjAwOwogICAgICBmb250LXZhcmlhbnQtbnVtZXJpYzogdGFidWxhci1udW1zOwogICAgICBiYWNrZHJvcC1maWx0ZXI6IGJsdXIoOHB4KTsKICAgICAgei1pbmRleDogMTA7CiAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lOwogICAgfQoKICAgIC50aWxlLWJhZGdlLXRvcHJpZ2h0IHsKICAgICAgcG9zaXRpb246IGFic29sdXRlOwogICAgICB0b3A6IDhweDsKICAgICAgcmlnaHQ6IDhweDsKICAgICAgcGFkZGluZzogM3B4IDhweDsKICAgICAgYmFja2dyb3VuZDogJHttLmJkVGhlbWUoImhzbCgwIDAlIDAlIC8gMC42KSIsImhzbCgwIDAlIDEwMCUgLyAwLjg1KSIpfTsKICAgICAgY29sb3I6ICR7bS5iZFRoZW1lKCJ3aGl0ZSIsImhzbCgyMTUgMjAlIDEyJSkiKX07CiAgICAgIGJvcmRlci1yYWRpdXM6IDRweDsKICAgICAgZm9udC1zaXplOiAxMHB4OwogICAgICBmb250LXdlaWdodDogNjAwOwogICAgICBiYWNrZHJvcC1maWx0ZXI6IGJsdXIoOHB4KTsKICAgICAgei1pbmRleDogMTU7CiAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lOwogICAgfQoKICAgIC8qIFNoaWZ0IGJvdHRvbSBiYWRnZXMgdXAgd2hlbiBsYWJlbCBpcyBwcmVzZW50ICovCiAgICAudGlsZS1jb250YWluZXI6aGFzKC50aWxlLWxhYmVsKSAudGlsZS1iYWRnZS1jb3JuZXIgewogICAgICBib3R0b206IDMzcHg7CiAgICB9CgogICAgLnRpbGUtY29udGFpbmVyOmhhcygudGlsZS1sYWJlbCkgLnRpbGUtaW5mbyB7CiAgICAgIGJvdHRvbTogMzNweDsKICAgIH0KCiAgICAudGlsZS1sb2FkaW5nLAogICAgLnRpbGUtZXJyb3IgewogICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgIHRvcDogMDsKICAgICAgbGVmdDogMDsKICAgICAgcmlnaHQ6IDA7CiAgICAgIGJvdHRvbTogMDsKICAgICAgZGlzcGxheTogZmxleDsKICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7CiAgICAgIGdhcDogMTJweDsKICAgICAgY29sb3I6ICR7bS5iZFRoZW1lKCJoc2woMjE1IDE2JSA0NSUpIiwiaHNsKDIxNSAxNiUgNzUlKSIpfTsKICAgIH0KCiAgICAudGlsZS1sb2FkaW5nIHsKICAgICAgYmFja2dyb3VuZDogJHttLmJkVGhlbWUoImhzbCgwIDAlIDk5JSkiLCJoc2woMjE1IDIwJSAxNCUpIil9OwogICAgfQoKICAgIC50aWxlLWVycm9yIHsKICAgICAgYmFja2dyb3VuZDogJHttLmJkVGhlbWUoImhzbCgwIDcyJSA5OCUpIiwiaHNsKDAgNjIlIDIwJSkiKX07CiAgICAgIGNvbG9yOiAke20uYmRUaGVtZSgiaHNsKDAgNzIlIDQwJSkiLCJoc2woMCA3MCUgNjglKSIpfTsKICAgIH0KCiAgICAudGlsZS1lcnJvciBkZWVzLWljb24gewogICAgICBmb250LXNpemU6IDMycHg7CiAgICB9CgogICAgLnRpbGUtc3Bpbm5lciB7CiAgICAgIHdpZHRoOiAyNHB4OwogICAgICBoZWlnaHQ6IDI0cHg7CiAgICAgIGJvcmRlci1yYWRpdXM6IDUwJTsKICAgICAgYm9yZGVyOiAycHggc29saWQgJHttLmJkVGhlbWUoImhzbCgyMTQgMzElIDg2JSkiLCJoc2woMjE3IDI1JSAyOCUpIil9OwogICAgICBib3JkZXItdG9wLWNvbG9yOiAke20uYmRUaGVtZSgiaHNsKDIxNyA5MSUgNjAlKSIsImhzbCgyMTMgOTMlIDY4JSkiKX07CiAgICAgIGFuaW1hdGlvbjogc3BpbiAwLjhzIGxpbmVhciBpbmZpbml0ZTsKICAgIH0KCiAgICAudGlsZS1sb2FkaW5nLXRleHQsCiAgICAudGlsZS1lcnJvci10ZXh0IHsKICAgICAgZm9udC1zaXplOiAxM3B4OwogICAgICBmb250LXdlaWdodDogNTAwOwogICAgfQoKICAgIC50aWxlLWxhYmVsIHsKICAgICAgcG9zaXRpb246IGFic29sdXRlOwogICAgICBib3R0b206IDA7CiAgICAgIGxlZnQ6IDA7CiAgICAgIHJpZ2h0OiAwOwogICAgICBwYWRkaW5nOiA2cHggMTBweDsKICAgICAgYmFja2dyb3VuZDogJHttLmJkVGhlbWUoImhzbCgwIDAlIDEwMCUgLyAwLjk1KSIsImhzbCgyMTUgMjAlIDEyJSAvIDAuOTUpIil9OwogICAgICBmb250LXNpemU6IDExcHg7CiAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7CiAgICAgIGNvbG9yOiAke20uYmRUaGVtZSgiaHNsKDIxNSAxNiUgMzUlKSIsImhzbCgyMTUgMTYlIDc1JSkiKX07CiAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7CiAgICAgIG92ZXJmbG93OiBoaWRkZW47CiAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzOwogICAgICB6LWluZGV4OiAxMDsKICAgICAgYmFja2Ryb3AtZmlsdGVyOiBibHVyKDEycHgpOwogICAgfQoKICAgIEBrZXlmcmFtZXMgc3BpbiB7CiAgICAgIHRvIHsKICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgzNjBkZWcpOwogICAgICB9CiAgICB9CgogICAgQGtleWZyYW1lcyBmYWRlSW4gewogICAgICBmcm9tIHsKICAgICAgICBvcGFjaXR5OiAwOwogICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNHB4KTsKICAgICAgfQogICAgICB0byB7CiAgICAgICAgb3BhY2l0eTogMTsKICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMCk7CiAgICAgIH0KICAgIH0KCiAgICAvKiBTaXplIHZhcmlhbnRzICovCiAgICA6aG9zdChbc2l6ZT0ic21hbGwiXSkgLnRpbGUtY29udGFpbmVyIHsKICAgICAgd2lkdGg6IDE1MHB4OwogICAgICBoZWlnaHQ6IDE5NXB4OwogICAgfQoKICAgIDpob3N0KFtzaXplPSJsYXJnZSJdKSAudGlsZS1jb250YWluZXIgewogICAgICB3aWR0aDogMjUwcHg7CiAgICAgIGhlaWdodDogMzI1cHg7CiAgICB9CgogICAgLyogR3JpZCBvcHRpbWl6YXRpb25zICovCiAgICA6aG9zdChbZ3JpZC1tb2RlXSkgLnRpbGUtY29udGFpbmVyIHsKICAgICAgd2lsbC1jaGFuZ2U6IGF1dG87CiAgICB9CiAgYF19KTt2YXIgQmIsc2wsb24sVjQ9cCgoKT0+e3hlKCk7VGMoKTtvcigpO0JiPWZ1bmN0aW9uKGUsdCxyLGksYSxuKXtmdW5jdGlvbiBvKHkpe2lmKHkhPT12b2lkIDAmJnR5cGVvZiB5IT0iZnVuY3Rpb24iKXRocm93IG5ldyBUeXBlRXJyb3IoIkZ1bmN0aW9uIGV4cGVjdGVkIik7cmV0dXJuIHl9Zm9yKHZhciBzPWkua2luZCxsPXM9PT0iZ2V0dGVyIj8iZ2V0IjpzPT09InNldHRlciI/InNldCI6InZhbHVlIixjPSF0JiZlP2kuc3RhdGljP2U6ZS5wcm90b3R5cGU6bnVsbCx1PXR8fChjP09iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoYyxpLm5hbWUpOnt9KSxkLGg9ITEsZj1yLmxlbmd0aC0xO2Y+PTA7Zi0tKXt2YXIgeD17fTtmb3IodmFyIHYgaW4gaSl4W3ZdPXY9PT0iYWNjZXNzIj97fTppW3ZdO2Zvcih2YXIgdiBpbiBpLmFjY2Vzcyl4LmFjY2Vzc1t2XT1pLmFjY2Vzc1t2XTt4LmFkZEluaXRpYWxpemVyPWZ1bmN0aW9uKHkpe2lmKGgpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGFkZCBpbml0aWFsaXplcnMgYWZ0ZXIgZGVjb3JhdGlvbiBoYXMgY29tcGxldGVkIik7bi5wdXNoKG8oeXx8bnVsbCkpfTt2YXIgYj0oMCxyW2ZdKShzPT09ImFjY2Vzc29yIj97Z2V0OnUuZ2V0LHNldDp1LnNldH06dVtsXSx4KTtpZihzPT09ImFjY2Vzc29yIil7aWYoYj09PXZvaWQgMCljb250aW51ZTtpZihiPT09bnVsbHx8dHlwZW9mIGIhPSJvYmplY3QiKXRocm93IG5ldyBUeXBlRXJyb3IoIk9iamVjdCBleHBlY3RlZCIpOyhkPW8oYi5nZXQpKSYmKHUuZ2V0PWQpLChkPW8oYi5zZXQpKSYmKHUuc2V0PWQpLChkPW8oYi5pbml0KSkmJmEudW5zaGlmdChkKX1lbHNlKGQ9byhiKSkmJihzPT09ImZpZWxkIj9hLnVuc2hpZnQoZCk6dVtsXT1kKX1jJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoYyxpLm5hbWUsdSksaD0hMH0sc2w9ZnVuY3Rpb24oZSx0LHIpe2Zvcih2YXIgaT1hcmd1bWVudHMubGVuZ3RoPjIsYT0wO2E8dC5sZW5ndGg7YSsrKXI9aT90W2FdLmNhbGwoZSxyKTp0W2FdLmNhbGwoZSk7cmV0dXJuIGk/cjp2b2lkIDB9LG9uPSgoKT0+e2xldCBlPXplLHQscj1bXSxpPVtdLGEsbj1bXSxvPVtdLHMsbD1bXSxjPVtdLHUsZD1bXSxoPVtdLGYseD1bXSx2PVtdO3JldHVybiBjbGFzcyBleHRlbmRzIGV7c3RhdGlje2xldCB5PXR5cGVvZiBTeW1ib2w9PSJmdW5jdGlvbiImJlN5bWJvbC5tZXRhZGF0YT9PYmplY3QuY3JlYXRlKGVbU3ltYm9sLm1ldGFkYXRhXT8/bnVsbCk6dm9pZCAwO3Q9W2ooe3R5cGU6Qm9vbGVhbn0pXSxhPVtqKHt0eXBlOkJvb2xlYW59KV0scz1baih7dHlwZTpCb29sZWFufSldLHU9W2ooe3R5cGU6U3RyaW5nLHJlZmxlY3Q6ITB9KV0sZj1baih7dHlwZTpTdHJpbmd9KV0sQmIodGhpcyxudWxsLHQse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJjbGlja2FibGUiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOnc9PiJjbGlja2FibGUiaW4gdyxnZXQ6dz0+dy5jbGlja2FibGUsc2V0Oih3LGspPT57dy5jbGlja2FibGU9a319LG1ldGFkYXRhOnl9LHIsaSksQmIodGhpcyxudWxsLGEse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJsb2FkaW5nIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczp3PT4ibG9hZGluZyJpbiB3LGdldDp3PT53LmxvYWRpbmcsc2V0Oih3LGspPT57dy5sb2FkaW5nPWt9fSxtZXRhZGF0YTp5fSxuLG8pLEJiKHRoaXMsbnVsbCxzLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiZXJyb3IiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOnc9PiJlcnJvciJpbiB3LGdldDp3PT53LmVycm9yLHNldDoodyxrKT0+e3cuZXJyb3I9a319LG1ldGFkYXRhOnl9LGwsYyksQmIodGhpcyxudWxsLHUse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJzaXplIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczp3PT4ic2l6ZSJpbiB3LGdldDp3PT53LnNpemUsc2V0Oih3LGspPT57dy5zaXplPWt9fSxtZXRhZGF0YTp5fSxkLGgpLEJiKHRoaXMsbnVsbCxmLHtraW5kOiJhY2Nlc3NvciIsbmFtZToibGFiZWwiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOnc9PiJsYWJlbCJpbiB3LGdldDp3PT53LmxhYmVsLHNldDoodyxrKT0+e3cubGFiZWw9a319LG1ldGFkYXRhOnl9LHgsdikseSYmT2JqZWN0LmRlZmluZVByb3BlcnR5KHRoaXMsU3ltYm9sLm1ldGFkYXRhLHtlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMCx2YWx1ZTp5fSl9c3RhdGljIHN0eWxlcz1GYTsjZT1zbCh0aGlzLHIsITApO2dldCBjbGlja2FibGUoKXtyZXR1cm4gdGhpcy4jZX1zZXQgY2xpY2thYmxlKHkpe3RoaXMuI2U9eX0jdD0oc2wodGhpcyxpKSxzbCh0aGlzLG4sITEpKTtnZXQgbG9hZGluZygpe3JldHVybiB0aGlzLiN0fXNldCBsb2FkaW5nKHkpe3RoaXMuI3Q9eX0jcj0oc2wodGhpcyxvKSxzbCh0aGlzLGwsITEpKTtnZXQgZXJyb3IoKXtyZXR1cm4gdGhpcy4jcn1zZXQgZXJyb3IoeSl7dGhpcy4jcj15fSNpPShzbCh0aGlzLGMpLHNsKHRoaXMsZCwiZGVmYXVsdCIpKTtnZXQgc2l6ZSgpe3JldHVybiB0aGlzLiNpfXNldCBzaXplKHkpe3RoaXMuI2k9eX0jYT0oc2wodGhpcyxoKSxzbCh0aGlzLHgsIiIpKTtnZXQgbGFiZWwoKXtyZXR1cm4gdGhpcy4jYX1zZXQgbGFiZWwoeSl7dGhpcy4jYT15fW9ic2VydmVyPXNsKHRoaXMsdik7X3Zpc2libGU9ITE7Z2V0IGlzVmlzaWJsZSgpe3JldHVybiB0aGlzLl92aXNpYmxlfXJlbmRlcigpe3JldHVybiBDYAogICAgICA8ZGl2CiAgICAgICAgY2xhc3M9InRpbGUtY29udGFpbmVyICR7dGhpcy5jbGlja2FibGU/ImNsaWNrYWJsZSI6IiJ9ICR7dGhpcy5sb2FkaW5nPyJsb2FkaW5nIjoiIn0gJHt0aGlzLmVycm9yPyJlcnJvciI6IiJ9IgogICAgICAgIEBjbGljaz0ke3RoaXMuaGFuZGxlVGlsZUNsaWNrfQogICAgICAgIEBtb3VzZWVudGVyPSR7dGhpcy5vblRpbGVNb3VzZUVudGVyfQogICAgICAgIEBtb3VzZWxlYXZlPSR7dGhpcy5vblRpbGVNb3VzZUxlYXZlfQogICAgICAgIEBtb3VzZW1vdmU9JHt0aGlzLm9uVGlsZU1vdXNlTW92ZX0KICAgICAgPgogICAgICAgICR7dGhpcy5sb2FkaW5nP0NgCiAgICAgICAgICA8ZGl2IGNsYXNzPSJ0aWxlLWxvYWRpbmciPgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJ0aWxlLXNwaW5uZXIiPjwvZGl2PgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJ0aWxlLWxvYWRpbmctdGV4dCI+TG9hZGluZy4uLjwvZGl2PgogICAgICAgICAgPC9kaXY+CiAgICAgICAgYDoiIn0KCiAgICAgICAgJHt0aGlzLmVycm9yP0NgCiAgICAgICAgICA8ZGl2IGNsYXNzPSJ0aWxlLWVycm9yIj4KICAgICAgICAgICAgPGRlZXMtaWNvbiBpY29uPSJsdWNpZGU6QWxlcnRUcmlhbmdsZSI+PC9kZWVzLWljb24+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9InRpbGUtZXJyb3ItdGV4dCI+RmFpbGVkIHRvIGxvYWQ8L2Rpdj4KICAgICAgICAgIDwvZGl2PgogICAgICAgIGA6IiJ9CgogICAgICAgICR7IXRoaXMubG9hZGluZyYmIXRoaXMuZXJyb3I/dGhpcy5yZW5kZXJUaWxlQ29udGVudCgpOiIifQoKICAgICAgICAke3RoaXMubGFiZWw/Q2AKICAgICAgICAgIDxkaXYgY2xhc3M9InRpbGUtbGFiZWwiPiR7dGhpcy5sYWJlbH08L2Rpdj4KICAgICAgICBgOiIifQogICAgICA8L2Rpdj4KICAgIGB9YXN5bmMgY29ubmVjdGVkQ2FsbGJhY2soKXthd2FpdCBzdXBlci5jb25uZWN0ZWRDYWxsYmFjaygpLHRoaXMuc2V0dXBJbnRlcnNlY3Rpb25PYnNlcnZlcigpfWFzeW5jIGRpc2Nvbm5lY3RlZENhbGxiYWNrKCl7YXdhaXQgc3VwZXIuZGlzY29ubmVjdGVkQ2FsbGJhY2soKSx0aGlzLm9ic2VydmVyJiYodGhpcy5vYnNlcnZlci5kaXNjb25uZWN0KCksdGhpcy5vYnNlcnZlcj12b2lkIDApfXNldHVwSW50ZXJzZWN0aW9uT2JzZXJ2ZXIoKXt0aGlzLm9ic2VydmVyPW5ldyBJbnRlcnNlY3Rpb25PYnNlcnZlcih5PT57Zm9yKGxldCB3IG9mIHkpe2xldCBrPXRoaXMuX3Zpc2libGU7dGhpcy5fdmlzaWJsZT13LmlzSW50ZXJzZWN0aW5nLHRoaXMuX3Zpc2libGUmJiFrJiZ0aGlzLm9uQmVjYW1lVmlzaWJsZSgpfX0se3Jvb3Q6bnVsbCxyb290TWFyZ2luOiIyMDBweCIsdGhyZXNob2xkOi4wMX0pLHRoaXMub2JzZXJ2ZXIub2JzZXJ2ZSh0aGlzKX1vbkJlY2FtZVZpc2libGUoKXt9b25UaWxlTW91c2VFbnRlcigpe31vblRpbGVNb3VzZUxlYXZlKCl7fW9uVGlsZU1vdXNlTW92ZSh5KXt9aGFuZGxlVGlsZUNsaWNrKCl7dGhpcy5jbGlja2FibGUmJnRoaXMuZGlzcGF0Y2hFdmVudChuZXcgQ3VzdG9tRXZlbnQoInRpbGUtY2xpY2siLHtkZXRhaWw6dGhpcy5nZXRUaWxlQ2xpY2tEZXRhaWwoKSxidWJibGVzOiEwLGNvbXBvc2VkOiEwfSkpfWdldFRpbGVDbGlja0RldGFpbCgpe3JldHVybnt9fX19KSgpfSk7dmFyIGRoLHdkZT1wKCgpPT57ZGg9Y2xhc3N7c3RhdGljIHBvb2w9W107c3RhdGljIG1heFBvb2xTaXplPTIwO3N0YXRpYyBNSU5fQ0FOVkFTX1NJWkU9MjU2O3N0YXRpYyBNQVhfQ0FOVkFTX1NJWkU9NDA5NjtzdGF0aWMgYWNxdWlyZSh0LHIpe2xldCBpPXRoaXMucG9vbC5maW5kKHM9PiFzLmluVXNlJiZzLmNhbnZhcy53aWR0aD49dCYmcy5jYW52YXMuaGVpZ2h0Pj1yJiZzLmNhbnZhcy53aWR0aDw9dCoxLjUmJnMuY2FudmFzLmhlaWdodDw9cioxLjUpO2lmKGkpcmV0dXJuIGkuaW5Vc2U9ITAsaS5sYXN0VXNlZD1EYXRlLm5vdygpLGkuY2FudmFzLndpZHRoPXQsaS5jYW52YXMuaGVpZ2h0PXIsaS5jdHguY2xlYXJSZWN0KDAsMCx0LHIpLGk7aWYodGhpcy5wb29sLmxlbmd0aDx0aGlzLm1heFBvb2xTaXplKXtsZXQgcz1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJjYW52YXMiKSxsPXMuZ2V0Q29udGV4dCgiMmQiLHthbHBoYTohMCxkZXN5bmNocm9uaXplZDohMH0pO3Mud2lkdGg9TWF0aC5taW4oTWF0aC5tYXgodCx0aGlzLk1JTl9DQU5WQVNfU0laRSksdGhpcy5NQVhfQ0FOVkFTX1NJWkUpLHMuaGVpZ2h0PU1hdGgubWluKE1hdGgubWF4KHIsdGhpcy5NSU5fQ0FOVkFTX1NJWkUpLHRoaXMuTUFYX0NBTlZBU19TSVpFKTtsZXQgYz17Y2FudmFzOnMsY3R4OmwsaW5Vc2U6ITAsbGFzdFVzZWQ6RGF0ZS5ub3coKX07cmV0dXJuIHRoaXMucG9vbC5wdXNoKGMpLGN9bGV0IGE9dGhpcy5wb29sLmZpbHRlcihzPT4hcy5pblVzZSkuc29ydCgocyxsKT0+cy5sYXN0VXNlZC1sLmxhc3RVc2VkKVswXTtpZihhKXJldHVybiBhLmNhbnZhcy53aWR0aD10LGEuY2FudmFzLmhlaWdodD1yLGEuY3R4LmNsZWFyUmVjdCgwLDAsdCxyKSxhLmluVXNlPSEwLGEubGFzdFVzZWQ9RGF0ZS5ub3coKSxhO2xldCBuPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImNhbnZhcyIpLG89bi5nZXRDb250ZXh0KCIyZCIpO3JldHVybiBuLndpZHRoPXQsbi5oZWlnaHQ9cix7Y2FudmFzOm4sY3R4Om8saW5Vc2U6ITAsbGFzdFVzZWQ6RGF0ZS5ub3coKX19c3RhdGljIHJlbGVhc2UodCl7dGhpcy5wb29sLmluY2x1ZGVzKHQpJiYodC5pblVzZT0hMSx0LmN0eC5jbGVhclJlY3QoMCwwLHQuY2FudmFzLndpZHRoLHQuY2FudmFzLmhlaWdodCkpfXN0YXRpYyByZWxlYXNlQWxsKCl7Zm9yKGxldCB0IG9mIHRoaXMucG9vbCl0LmluVXNlPSExLHQuY3R4LmNsZWFyUmVjdCgwLDAsdC5jYW52YXMud2lkdGgsdC5jYW52YXMuaGVpZ2h0KX1zdGF0aWMgZGVzdHJveSgpe2ZvcihsZXQgdCBvZiB0aGlzLnBvb2wpdC5jYW52YXMud2lkdGg9MCx0LmNhbnZhcy5oZWlnaHQ9MDt0aGlzLnBvb2w9W119c3RhdGljIGdldFN0YXRzKCl7cmV0dXJue3Bvb2xTaXplOnRoaXMucG9vbC5sZW5ndGgsbWF4UG9vbFNpemU6dGhpcy5tYXhQb29sU2l6ZSxpblVzZTp0aGlzLnBvb2wuZmlsdGVyKHQ9PnQuaW5Vc2UpLmxlbmd0aCxhdmFpbGFibGU6dGhpcy5wb29sLmZpbHRlcih0PT4hdC5pblVzZSkubGVuZ3RofX1zdGF0aWMgYWRqdXN0UG9vbFNpemUodCl7aWYodDx0aGlzLnBvb2wubGVuZ3RoKXtsZXQgcj10aGlzLnBvb2wubGVuZ3RoLXQsaT10aGlzLnBvb2wuZmlsdGVyKGE9PiFhLmluVXNlKS5zbGljZSgwLHIpO2ZvcihsZXQgYSBvZiBpKXtsZXQgbj10aGlzLnBvb2wuaW5kZXhPZihhKTtuPi0xJiZ0aGlzLnBvb2wuc3BsaWNlKG4sMSl9fXRoaXMubWF4UG9vbFNpemU9dH19fSk7ZnVuY3Rpb24gZ1hyKGUsdCl7bGV0IHI7cmV0dXJuIGZ1bmN0aW9uKC4uLmEpe2xldCBuPSgpPT57Y2xlYXJUaW1lb3V0KHIpLGUoLi4uYSl9O2NsZWFyVGltZW91dChyKSxyPXdpbmRvdy5zZXRUaW1lb3V0KG4sdCl9fWZ1bmN0aW9uIGJYcihlLHQpe2xldCByO3JldHVybiBmdW5jdGlvbiguLi5hKXtyfHwoZS5hcHBseSh0aGlzLGEpLHI9ITAsc2V0VGltZW91dCgoKT0+cj0hMSx0KSl9fWZ1bmN0aW9uIHZYcihlKXtpZihlPT09MClyZXR1cm4iMCBCeXRlcyI7bGV0IHQ9MTAyNCxyPVsiQnl0ZXMiLCJLQiIsIk1CIiwiR0IiXSxpPU1hdGguZmxvb3IoTWF0aC5sb2coZSkvTWF0aC5sb2codCkpO3JldHVybiBNYXRoLnJvdW5kKGUvTWF0aC5wb3codCxpKSoxMDApLzEwMCsiICIrcltpXX1mdW5jdGlvbiB4WHIoZSx0PTApe2xldCByPWUuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7cmV0dXJuIHIudG9wPj0tdCYmci5sZWZ0Pj0tdCYmci5ib3R0b208PSh3aW5kb3cuaW5uZXJIZWlnaHR8fGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5jbGllbnRIZWlnaHQpK3QmJnIucmlnaHQ8PSh3aW5kb3cuaW5uZXJXaWR0aHx8ZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LmNsaWVudFdpZHRoKSt0fXZhciB1aCxNZGU9cCgoKT0+e3VoPWNsYXNze3N0YXRpYyBtYXJrcz1uZXcgTWFwO3N0YXRpYyBtZWFzdXJlcz1bXTtzdGF0aWMgbWFyayh0KXt0aGlzLm1hcmtzLnNldCh0LHBlcmZvcm1hbmNlLm5vdygpKX1zdGF0aWMgbWVhc3VyZSh0LHIpe2xldCBpPXRoaXMubWFya3MuZ2V0KHIpO2lmKGkpe2xldCBhPXBlcmZvcm1hbmNlLm5vdygpLWk7cmV0dXJuIHRoaXMubWVhc3VyZXMucHVzaCh7bmFtZTp0LGR1cmF0aW9uOmF9KSx0aGlzLm1hcmtzLmRlbGV0ZShyKSxhfXJldHVybiAwfXN0YXRpYyBnZXRSZXBvcnQoKXtsZXQgdD17bWVhc3VyZXM6Wy4uLnRoaXMubWVhc3VyZXNdLGF2ZXJhZ2VzOnt9fSxyPW5ldyBNYXA7Zm9yKGxldCBpIG9mIHRoaXMubWVhc3VyZXMpci5oYXMoaS5uYW1lKXx8ci5zZXQoaS5uYW1lLFtdKSxyLmdldChpLm5hbWUpLnB1c2goaS5kdXJhdGlvbik7Zm9yKGxldFtpLGFdb2Ygcil0LmF2ZXJhZ2VzW2ldPWEucmVkdWNlKChuLG8pPT5uK28sMCkvYS5sZW5ndGg7cmV0dXJuIHR9c3RhdGljIGNsZWFyKCl7dGhpcy5tYXJrcy5jbGVhcigpLHRoaXMubWVhc3VyZXM9W119fX0pO3ZhciBPM3IsUjNyPXAoKCk9Pnt4ZSgpO08zcj1vZWAKICAucHJldmlldy1zdGFjayB7CiAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICB3aWR0aDogMTAwJTsKICAgIGhlaWdodDogMTAwJTsKICAgIGRpc3BsYXk6IGZsZXg7CiAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7CiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94OwogICAgb3ZlcmZsb3c6IGhpZGRlbjsKICB9CgogIC5wcmV2aWV3LXN0YWNrLm5vbi1hNCB7CiAgICBwYWRkaW5nOiAxMnB4OwogIH0KCiAgLnByZXZpZXctY2FudmFzIHsKICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgIGJhY2tncm91bmQ6IHdoaXRlOwogICAgZGlzcGxheTogYmxvY2s7CiAgICBtYXgtd2lkdGg6IDEwMCU7CiAgICBtYXgtaGVpZ2h0OiAxMDAlOwogICAgd2lkdGg6IGF1dG87CiAgICBoZWlnaHQ6IGF1dG87CiAgICBvYmplY3QtZml0OiBjb250YWluOwogICAgaW1hZ2UtcmVuZGVyaW5nOiBhdXRvOwogICAgLXdlYmtpdC1mb250LXNtb290aGluZzogYW50aWFsaWFzZWQ7CiAgICBib3gtc2hhZG93OiAwIDFweCAzcHggJHttLmJkVGhlbWUoInJnYmEoMCwgMCwgMCwgMC4xKSIsInJnYmEoMCwgMCwgMCwgMC4zKSIpfTsKICB9CgogIC5ub24tYTQgLnByZXZpZXctY2FudmFzIHsKICAgIGJvcmRlcjogMXB4IHNvbGlkICR7bS5iZFRoZW1lKCJoc2woMjE0IDMxJSA5MiUpIiwiaHNsKDIxNyAyNSUgMjQlKSIpfTsKICAgIGJvcmRlci1yYWRpdXM6IDRweDsKICB9CgogIC8qIEdyaWQgb3B0aW1pemF0aW9ucyAqLwogIDpob3N0KFtncmlkLW1vZGVdKSAucHJldmlldy1jYW52YXMgewogICAgaW1hZ2UtcmVuZGVyaW5nOiAtd2Via2l0LW9wdGltaXplLWNvbnRyYXN0OwogICAgaW1hZ2UtcmVuZGVyaW5nOiBjcmlzcC1lZGdlczsKICB9CmB9KTt2YXIgQjNyLEgzcj1wKCgpPT57eGUoKTtCM3I9KCk9PntsZXQgZT1bImh0dHBzOi8vcmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbS9tb3ppbGxhL3BkZi5qcy9iYTJlZGVhZS9leGFtcGxlcy9sZWFybmluZy9oZWxsb3dvcmxkLnBkZiIsImh0dHBzOi8vcmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbS9tb3ppbGxhL3BkZi5qcy9iYTJlZGVhZS93ZWIvY29tcHJlc3NlZC50cmFjZW1vbmtleS1wbGRpLTA5LnBkZiJdO3JldHVybiBDYAogICAgPHN0eWxlPgogICAgICAuZGVtby1jb250YWluZXIgewogICAgICAgIHBhZGRpbmc6IDQwcHg7CiAgICAgICAgYmFja2dyb3VuZDogI2Y1ZjVmNTsKICAgICAgfQoKICAgICAgLmRlbW8tc2VjdGlvbiB7CiAgICAgICAgbWFyZ2luLWJvdHRvbTogNjBweDsKICAgICAgfQoKICAgICAgaDMgewogICAgICAgIG1hcmdpbi1ib3R0b206IDIwcHg7CiAgICAgICAgZm9udC1zaXplOiAxOHB4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7CiAgICAgIH0KCiAgICAgIC5wcmV2aWV3LWdyaWQgewogICAgICAgIGRpc3BsYXk6IGdyaWQ7CiAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoYXV0by1maWxsLCBtaW5tYXgoMjAwcHgsIDFmcikpOwogICAgICAgIGdhcDogMjRweDsKICAgICAgfQoKICAgICAgLnByZXZpZXctcm93IHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGdhcDogMjRweDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIG1hcmdpbi1ib3R0b206IDIwcHg7CiAgICAgIH0KCiAgICAgIC5wcmV2aWV3LWxhYmVsIHsKICAgICAgICBmb250LXNpemU6IDE0cHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDsKICAgICAgICBtaW4td2lkdGg6IDEwMHB4OwogICAgICB9CiAgICA8L3N0eWxlPgoKICAgIDxkaXYgY2xhc3M9ImRlbW8tY29udGFpbmVyIj4KICAgICAgPGRpdiBjbGFzcz0iZGVtby1zZWN0aW9uIj4KICAgICAgICA8aDM+U2luZ2xlIFBERiBUaWxlPC9oMz4KICAgICAgICA8ZGVlcy10aWxlLXBkZgogICAgICAgICAgcGRmVXJsPSJodHRwczovL3Jhdy5naXRodWJ1c2VyY29udGVudC5jb20vbW96aWxsYS9wZGYuanMvYmEyZWRlYWUvd2ViL2NvbXByZXNzZWQudHJhY2Vtb25rZXktcGxkaS0wOS5wZGYiCiAgICAgICAgICBjbGlja2FibGU9InRydWUiCiAgICAgICAgPjwvZGVlcy10aWxlLXBkZj4KICAgICAgPC9kaXY+CgogICAgICA8ZGl2IGNsYXNzPSJkZW1vLXNlY3Rpb24iPgogICAgICAgIDxoMz5EaWZmZXJlbnQgU2l6ZXM8L2gzPgogICAgICAgIDxkaXYgY2xhc3M9InByZXZpZXctcm93Ij4KICAgICAgICAgIDxkaXYgY2xhc3M9InByZXZpZXctbGFiZWwiPlNtYWxsOjwvZGl2PgogICAgICAgICAgPGRlZXMtdGlsZS1wZGYKICAgICAgICAgICAgc2l6ZT0ic21hbGwiCiAgICAgICAgICAgIHBkZlVybD0iaHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL21vemlsbGEvcGRmLmpzL2JhMmVkZWFlL2V4YW1wbGVzL2xlYXJuaW5nL2hlbGxvd29ybGQucGRmIgogICAgICAgICAgICBjbGlja2FibGU9InRydWUiCiAgICAgICAgICA+PC9kZWVzLXRpbGUtcGRmPgogICAgICAgIDwvZGl2PgoKICAgICAgICA8ZGl2IGNsYXNzPSJwcmV2aWV3LXJvdyI+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJwcmV2aWV3LWxhYmVsIj5EZWZhdWx0OjwvZGl2PgogICAgICAgICAgPGRlZXMtdGlsZS1wZGYKICAgICAgICAgICAgcGRmVXJsPSJodHRwczovL3Jhdy5naXRodWJ1c2VyY29udGVudC5jb20vbW96aWxsYS9wZGYuanMvYmEyZWRlYWUvZXhhbXBsZXMvbGVhcm5pbmcvaGVsbG93b3JsZC5wZGYiCiAgICAgICAgICAgIGNsaWNrYWJsZT0idHJ1ZSIKICAgICAgICAgID48L2RlZXMtdGlsZS1wZGY+CiAgICAgICAgPC9kaXY+CgogICAgICAgIDxkaXYgY2xhc3M9InByZXZpZXctcm93Ij4KICAgICAgICAgIDxkaXYgY2xhc3M9InByZXZpZXctbGFiZWwiPkxhcmdlOjwvZGl2PgogICAgICAgICAgPGRlZXMtdGlsZS1wZGYKICAgICAgICAgICAgc2l6ZT0ibGFyZ2UiCiAgICAgICAgICAgIHBkZlVybD0iaHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL21vemlsbGEvcGRmLmpzL2JhMmVkZWFlL2V4YW1wbGVzL2xlYXJuaW5nL2hlbGxvd29ybGQucGRmIgogICAgICAgICAgICBjbGlja2FibGU9InRydWUiCiAgICAgICAgICA+PC9kZWVzLXRpbGUtcGRmPgogICAgICAgIDwvZGl2PgogICAgICA8L2Rpdj4KCiAgICAgIDxkaXYgY2xhc3M9ImRlbW8tc2VjdGlvbiI+CiAgICAgICAgPGgzPldpdGggTGFiZWw8L2gzPgogICAgICAgIDxkZWVzLXRpbGUtcGRmCiAgICAgICAgICBwZGZVcmw9Imh0dHBzOi8vcmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbS9tb3ppbGxhL3BkZi5qcy9iYTJlZGVhZS93ZWIvY29tcHJlc3NlZC50cmFjZW1vbmtleS1wbGRpLTA5LnBkZiIKICAgICAgICAgIGNsaWNrYWJsZT0idHJ1ZSIKICAgICAgICAgIGxhYmVsPSJSZXNlYXJjaCBQYXBlci5wZGYiCiAgICAgICAgPjwvZGVlcy10aWxlLXBkZj4KICAgICAgPC9kaXY+CgogICAgICA8ZGl2IGNsYXNzPSJkZW1vLXNlY3Rpb24iPgogICAgICAgIDxoMz5Ob24tQ2xpY2thYmxlPC9oMz4KICAgICAgICA8ZGVlcy10aWxlLXBkZgogICAgICAgICAgcGRmVXJsPSJodHRwczovL3Jhdy5naXRodWJ1c2VyY29udGVudC5jb20vbW96aWxsYS9wZGYuanMvYmEyZWRlYWUvZXhhbXBsZXMvbGVhcm5pbmcvaGVsbG93b3JsZC5wZGYiCiAgICAgICAgICBjbGlja2FibGU9ImZhbHNlIgogICAgICAgID48L2RlZXMtdGlsZS1wZGY+CiAgICAgIDwvZGl2PgoKICAgICAgPGRpdiBjbGFzcz0iZGVtby1zZWN0aW9uIj4KICAgICAgICA8aDM+R3JpZCAtIDIwIFBERnMgd2l0aCBMYXp5IExvYWRpbmc8L2gzPgogICAgICAgIDxkaXYgY2xhc3M9InByZXZpZXctZ3JpZCI+CiAgICAgICAgICAkeyhyPT57bGV0IGk9W107Zm9yKGxldCBhPTA7YTxyO2ErKyl7bGV0IG49ZVthJWUubGVuZ3RoXTtpLnB1c2goQ2AKICAgICAgICA8ZGVlcy10aWxlLXBkZgogICAgICAgICAgcGRmVXJsPSIke259IgogICAgICAgICAgY2xpY2thYmxlPSJ0cnVlIgogICAgICAgICAgZ3JpZC1tb2RlCiAgICAgICAgICBAdGlsZS1jbGljaz0ke289Pntjb25zb2xlLmxvZygiUERGIFRpbGUgY2xpY2tlZDoiLG8uZGV0YWlsKSxhbGVydChgUERGIGNsaWNrZWQ6ICR7by5kZXRhaWwucGFnZUNvdW50fSBwYWdlc2ApfX0KICAgICAgICA+PC9kZWVzLXRpbGUtcGRmPgogICAgICBgKX1yZXR1cm4gaX0pKDIwKX0KICAgICAgICA8L2Rpdj4KICAgICAgPC9kaXY+CiAgICA8L2Rpdj4KICBgfX0pO3ZhciBRZCx0byxvRixrZGU9cCgoKT0+e3hlKCk7VjQoKTtUYygpO25GKCk7d2RlKCk7TWRlKCk7UjNyKCk7SDNyKCk7UWQ9ZnVuY3Rpb24oZSx0LHIsaSxhLG4pe2Z1bmN0aW9uIG8oeSl7aWYoeSE9PXZvaWQgMCYmdHlwZW9mIHkhPSJmdW5jdGlvbiIpdGhyb3cgbmV3IFR5cGVFcnJvcigiRnVuY3Rpb24gZXhwZWN0ZWQiKTtyZXR1cm4geX1mb3IodmFyIHM9aS5raW5kLGw9cz09PSJnZXR0ZXIiPyJnZXQiOnM9PT0ic2V0dGVyIj8ic2V0IjoidmFsdWUiLGM9IXQmJmU/aS5zdGF0aWM/ZTplLnByb3RvdHlwZTpudWxsLHU9dHx8KGM/T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihjLGkubmFtZSk6e30pLGQsaD0hMSxmPXIubGVuZ3RoLTE7Zj49MDtmLS0pe3ZhciB4PXt9O2Zvcih2YXIgdiBpbiBpKXhbdl09dj09PSJhY2Nlc3MiP3t9Omlbdl07Zm9yKHZhciB2IGluIGkuYWNjZXNzKXguYWNjZXNzW3ZdPWkuYWNjZXNzW3ZdO3guYWRkSW5pdGlhbGl6ZXI9ZnVuY3Rpb24oeSl7aWYoaCl0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgYWRkIGluaXRpYWxpemVycyBhZnRlciBkZWNvcmF0aW9uIGhhcyBjb21wbGV0ZWQiKTtuLnB1c2gobyh5fHxudWxsKSl9O3ZhciBiPSgwLHJbZl0pKHM9PT0iYWNjZXNzb3IiP3tnZXQ6dS5nZXQsc2V0OnUuc2V0fTp1W2xdLHgpO2lmKHM9PT0iYWNjZXNzb3IiKXtpZihiPT09dm9pZCAwKWNvbnRpbnVlO2lmKGI9PT1udWxsfHx0eXBlb2YgYiE9Im9iamVjdCIpdGhyb3cgbmV3IFR5cGVFcnJvcigiT2JqZWN0IGV4cGVjdGVkIik7KGQ9byhiLmdldCkpJiYodS5nZXQ9ZCksKGQ9byhiLnNldCkpJiYodS5zZXQ9ZCksKGQ9byhiLmluaXQpKSYmYS51bnNoaWZ0KGQpfWVsc2UoZD1vKGIpKSYmKHM9PT0iZmllbGQiP2EudW5zaGlmdChkKTp1W2xdPWQpfWMmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShjLGkubmFtZSx1KSxoPSEwfSx0bz1mdW5jdGlvbihlLHQscil7Zm9yKHZhciBpPWFyZ3VtZW50cy5sZW5ndGg+MixhPTA7YTx0Lmxlbmd0aDthKyspcj1pP3RbYV0uY2FsbChlLHIpOnRbYV0uY2FsbChlKTtyZXR1cm4gaT9yOnZvaWQgMH0sb0Y9KCgpPT57bGV0IGU9W3llKCJkZWVzLXRpbGUtcGRmIildLHQscj1bXSxpLGE9b24sbixvPVtdLHM9W10sbCxjPVtdLHU9W10sZCxoPVtdLGY9W10seCx2PVtdLGI9W10seSx3PVtdLGs9W10sTyx6PVtdLE09W107dmFyIEY9Y2xhc3MgZXh0ZW5kcyBhe3N0YXRpY3tpPXRoaXN9c3RhdGlje2xldCBEPXR5cGVvZiBTeW1ib2w9PSJmdW5jdGlvbiImJlN5bWJvbC5tZXRhZGF0YT9PYmplY3QuY3JlYXRlKGFbU3ltYm9sLm1ldGFkYXRhXT8/bnVsbCk6dm9pZCAwO249W2ooe3R5cGU6U3RyaW5nfSldLGw9W2ooe3R5cGU6TnVtYmVyfSldLGQ9W2ooe3R5cGU6TnVtYmVyfSldLHg9W2ooe3R5cGU6Qm9vbGVhbn0pXSx5PVtqKHt0eXBlOkJvb2xlYW59KV0sTz1baih7dHlwZTpCb29sZWFufSldLFFkKHRoaXMsbnVsbCxuLHtraW5kOiJhY2Nlc3NvciIsbmFtZToicGRmVXJsIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpOPT4icGRmVXJsImluIE4sZ2V0Ok49Pk4ucGRmVXJsLHNldDooTixSKT0+e04ucGRmVXJsPVJ9fSxtZXRhZGF0YTpEfSxvLHMpLFFkKHRoaXMsbnVsbCxsLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiY3VycmVudFByZXZpZXdQYWdlIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpOPT4iY3VycmVudFByZXZpZXdQYWdlImluIE4sZ2V0Ok49Pk4uY3VycmVudFByZXZpZXdQYWdlLHNldDooTixSKT0+e04uY3VycmVudFByZXZpZXdQYWdlPVJ9fSxtZXRhZGF0YTpEfSxjLHUpLFFkKHRoaXMsbnVsbCxkLHtraW5kOiJhY2Nlc3NvciIsbmFtZToicGFnZUNvdW50IixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpOPT4icGFnZUNvdW50ImluIE4sZ2V0Ok49Pk4ucGFnZUNvdW50LHNldDooTixSKT0+e04ucGFnZUNvdW50PVJ9fSxtZXRhZGF0YTpEfSxoLGYpLFFkKHRoaXMsbnVsbCx4LHtraW5kOiJhY2Nlc3NvciIsbmFtZToicmVuZGVyZWQiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOk49PiJyZW5kZXJlZCJpbiBOLGdldDpOPT5OLnJlbmRlcmVkLHNldDooTixSKT0+e04ucmVuZGVyZWQ9Un19LG1ldGFkYXRhOkR9LHYsYiksUWQodGhpcyxudWxsLHkse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJpc0hvdmVyaW5nIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpOPT4iaXNIb3ZlcmluZyJpbiBOLGdldDpOPT5OLmlzSG92ZXJpbmcsc2V0OihOLFIpPT57Ti5pc0hvdmVyaW5nPVJ9fSxtZXRhZGF0YTpEfSx3LGspLFFkKHRoaXMsbnVsbCxPLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiaXNBNEZvcm1hdCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6Tj0+ImlzQTRGb3JtYXQiaW4gTixnZXQ6Tj0+Ti5pc0E0Rm9ybWF0LHNldDooTixSKT0+e04uaXNBNEZvcm1hdD1SfX0sbWV0YWRhdGE6RH0seixNKSxRZChudWxsLHQ9e3ZhbHVlOml9LGUse2tpbmQ6ImNsYXNzIixuYW1lOmkubmFtZSxtZXRhZGF0YTpEfSxudWxsLHIpLEY9aT10LnZhbHVlLEQmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShpLFN5bWJvbC5tZXRhZGF0YSx7ZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITAsdmFsdWU6RH0pfXN0YXRpYyBkZW1vPUIzcjtzdGF0aWMgZGVtb0dyb3Vwcz1bIk1lZGlhIiwiUERGIl07c3RhdGljIHN0eWxlcz1bLi4uRmEsTzNyXTsjZT10byh0aGlzLG8sIiIpO2dldCBwZGZVcmwoKXtyZXR1cm4gdGhpcy4jZX1zZXQgcGRmVXJsKEQpe3RoaXMuI2U9RH0jdD0odG8odGhpcyxzKSx0byh0aGlzLGMsMSkpO2dldCBjdXJyZW50UHJldmlld1BhZ2UoKXtyZXR1cm4gdGhpcy4jdH1zZXQgY3VycmVudFByZXZpZXdQYWdlKEQpe3RoaXMuI3Q9RH0jcj0odG8odGhpcyx1KSx0byh0aGlzLGgsMCkpO2dldCBwYWdlQ291bnQoKXtyZXR1cm4gdGhpcy4jcn1zZXQgcGFnZUNvdW50KEQpe3RoaXMuI3I9RH0jaT0odG8odGhpcyxmKSx0byh0aGlzLHYsITEpKTtnZXQgcmVuZGVyZWQoKXtyZXR1cm4gdGhpcy4jaX1zZXQgcmVuZGVyZWQoRCl7dGhpcy4jaT1EfSNhPSh0byh0aGlzLGIpLHRvKHRoaXMsdywhMSkpO2dldCBpc0hvdmVyaW5nKCl7cmV0dXJuIHRoaXMuI2F9c2V0IGlzSG92ZXJpbmcoRCl7dGhpcy4jYT1EfSNuPSh0byh0aGlzLGspLHRvKHRoaXMseiwhMCkpO2dldCBpc0E0Rm9ybWF0KCl7cmV0dXJuIHRoaXMuI259c2V0IGlzQTRGb3JtYXQoRCl7dGhpcy4jbj1EfXJlbmRlclBhZ2VzVGFzaz0odG8odGhpcyxNKSxudWxsKTtyZW5kZXJQYWdlc1F1ZXVlZD0hMTtwZGZEb2N1bWVudDtjYW52YXNlcz1bXTtyZXNpemVPYnNlcnZlcjtzdGFja0VsZW1lbnQ9bnVsbDtsb2FkZWRQZGZVcmw9bnVsbDtyZW5kZXJUaWxlQ29udGVudCgpe3JldHVybiBDYAogICAgICA8ZGl2IGNsYXNzPSJwcmV2aWV3LXN0YWNrICR7dGhpcy5pc0E0Rm9ybWF0PyIiOiJub24tYTQifSI+CiAgICAgICAgPGNhbnZhcwogICAgICAgICAgY2xhc3M9InByZXZpZXctY2FudmFzIgogICAgICAgICAgZGF0YS1wYWdlPSIke3RoaXMuY3VycmVudFByZXZpZXdQYWdlfSIKICAgICAgICA+PC9jYW52YXM+CiAgICAgIDwvZGl2PgoKICAgICAgJHt0aGlzLnBhZ2VDb3VudD4xJiZ0aGlzLmlzSG92ZXJpbmc/Q2AKICAgICAgICA8ZGl2IGNsYXNzPSJ0aWxlLWJhZGdlIj4KICAgICAgICAgIFBhZ2UgJHt0aGlzLmN1cnJlbnRQcmV2aWV3UGFnZX0gb2YgJHt0aGlzLnBhZ2VDb3VudH0KICAgICAgICA8L2Rpdj4KICAgICAgYDoiIn0KCiAgICAgICR7dGhpcy5wYWdlQ291bnQ+MCYmIXRoaXMuaXNIb3ZlcmluZz9DYAogICAgICAgIDxkaXYgY2xhc3M9InRpbGUtYmFkZ2UtY29ybmVyIj4KICAgICAgICAgICR7dGhpcy5wYWdlQ291bnR9IHBhZ2Uke3RoaXMucGFnZUNvdW50PjE/InMiOiIifQogICAgICAgIDwvZGl2PgogICAgICBgOiIifQoKICAgICAgJHt0aGlzLmNsaWNrYWJsZT9DYAogICAgICAgIDxkaXYgY2xhc3M9InRpbGUtb3ZlcmxheSI+CiAgICAgICAgICA8ZGVlcy1pY29uIGljb249Imx1Y2lkZTpFeWUiPjwvZGVlcy1pY29uPgogICAgICAgICAgPHNwYW4+VmlldyBQREY8L3NwYW4+CiAgICAgICAgPC9kaXY+CiAgICAgIGA6IiJ9CiAgICBgfWdldFRpbGVDbGlja0RldGFpbCgpe3JldHVybntwZGZVcmw6dGhpcy5wZGZVcmwscGFnZUNvdW50OnRoaXMucGFnZUNvdW50fX1vbkJlY2FtZVZpc2libGUoKXshdGhpcy5yZW5kZXJlZCYmdGhpcy5wZGZVcmwmJnRoaXMubG9hZEFuZFJlbmRlclByZXZpZXcoKX1vblRpbGVNb3VzZUVudGVyKCl7dGhpcy5pc0hvdmVyaW5nPSEwfW9uVGlsZU1vdXNlTGVhdmUoKXt0aGlzLmlzSG92ZXJpbmc9ITEsdGhpcy5jdXJyZW50UHJldmlld1BhZ2UhPT0xJiYodGhpcy5jdXJyZW50UHJldmlld1BhZ2U9MSx0aGlzLnNjaGVkdWxlUmVuZGVyUGFnZXMoKSl9b25UaWxlTW91c2VNb3ZlKEQpe2lmKCF0aGlzLmlzSG92ZXJpbmd8fHRoaXMucGFnZUNvdW50PD0xKXJldHVybjtsZXQgTj10aGlzLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLFI9RC5jbGllbnRYLU4ubGVmdCxfPU4ud2lkdGgsUz1NYXRoLm1heCgwLE1hdGgubWluKDEsUi9fKSksJD1NYXRoLmNlaWwoUyp0aGlzLnBhZ2VDb3VudCl8fDE7JCE9PXRoaXMuY3VycmVudFByZXZpZXdQYWdlJiYodGhpcy5jdXJyZW50UHJldmlld1BhZ2U9JCx0aGlzLnNjaGVkdWxlUmVuZGVyUGFnZXMoKSl9YXN5bmMgY29ubmVjdGVkQ2FsbGJhY2soKXthd2FpdCBzdXBlci5jb25uZWN0ZWRDYWxsYmFjaygpLGF3YWl0IHRoaXMudXBkYXRlQ29tcGxldGUsdGhpcy5jYWNoZUVsZW1lbnRzKCksdGhpcy5zZXR1cFJlc2l6ZU9ic2VydmVyKCl9YXN5bmMgZGlzY29ubmVjdGVkQ2FsbGJhY2soKXthd2FpdCBzdXBlci5kaXNjb25uZWN0ZWRDYWxsYmFjaygpLHRoaXMuY2xlYW51cCgpLHRoaXMucmVzaXplT2JzZXJ2ZXI/LmRpc2Nvbm5lY3QoKSx0aGlzLnJlc2l6ZU9ic2VydmVyPXZvaWQgMH1hc3luYyBsb2FkQW5kUmVuZGVyUHJldmlldygpe2lmKCEodGhpcy5yZW5kZXJlZHx8dGhpcy5sb2FkaW5nKSl7dGhpcy5sb2FkaW5nPSEwLHRoaXMuZXJyb3I9ITEsdWgubWFyayhgcHJldmlldy1sb2FkLSR7dGhpcy5wZGZVcmx9YCk7dHJ5e3RoaXMucGRmRG9jdW1lbnQ9YXdhaXQgb2wubG9hZERvY3VtZW50KHRoaXMucGRmVXJsKSx0aGlzLnBhZ2VDb3VudD10aGlzLnBkZkRvY3VtZW50Lm51bVBhZ2VzLHRoaXMuY3VycmVudFByZXZpZXdQYWdlPTEsdGhpcy5sb2FkZWRQZGZVcmw9dGhpcy5wZGZVcmwsdGhpcy5sb2FkaW5nPSExLGF3YWl0IHRoaXMudXBkYXRlQ29tcGxldGUsdGhpcy5jYWNoZUVsZW1lbnRzKCksYXdhaXQgdGhpcy5zY2hlZHVsZVJlbmRlclBhZ2VzKCksdGhpcy5yZW5kZXJlZD0hMDtsZXQgRD11aC5tZWFzdXJlKGBwcmV2aWV3LXJlbmRlci0ke3RoaXMucGRmVXJsfWAsYHByZXZpZXctbG9hZC0ke3RoaXMucGRmVXJsfWApO2NvbnNvbGUubG9nKGBQREYgdGlsZSByZW5kZXJlZCBpbiAke0R9bXNgKX1jYXRjaChEKXtjb25zb2xlLmVycm9yKCJGYWlsZWQgdG8gbG9hZCBQREYgdGlsZToiLEQpLHRoaXMuZXJyb3I9ITAsdGhpcy5sb2FkaW5nPSExfX19c2NoZWR1bGVSZW5kZXJQYWdlcygpe3JldHVybiB0aGlzLnBkZkRvY3VtZW50P3RoaXMucmVuZGVyUGFnZXNUYXNrPyh0aGlzLnJlbmRlclBhZ2VzUXVldWVkPSEwLHRoaXMucmVuZGVyUGFnZXNUYXNrKToodGhpcy5yZW5kZXJQYWdlc1Rhc2s9KGFzeW5jKCk9Pnt0cnl7YXdhaXQgdGhpcy5wZXJmb3JtUmVuZGVyUGFnZXMoKX1jYXRjaChEKXtjb25zb2xlLmVycm9yKCJGYWlsZWQgdG8gcmVuZGVyIFBERiB0aWxlIHBhZ2VzOiIsRCl9fSkoKS5maW5hbGx5KCgpPT57dGhpcy5yZW5kZXJQYWdlc1Rhc2s9bnVsbCx0aGlzLnJlbmRlclBhZ2VzUXVldWVkJiYodGhpcy5yZW5kZXJQYWdlc1F1ZXVlZD0hMSx0aGlzLnNjaGVkdWxlUmVuZGVyUGFnZXMoKSl9KSx0aGlzLnJlbmRlclBhZ2VzVGFzayk6UHJvbWlzZS5yZXNvbHZlKCl9YXN5bmMgcGVyZm9ybVJlbmRlclBhZ2VzKCl7aWYoIXRoaXMucGRmRG9jdW1lbnQpcmV0dXJuO2F3YWl0IG5ldyBQcm9taXNlKF89PnJlcXVlc3RBbmltYXRpb25GcmFtZShfKSk7bGV0IEQ9dGhpcy5zaGFkb3dSb290Py5xdWVyeVNlbGVjdG9yKCIucHJldmlldy1jYW52YXMiKTtpZighRClyZXR1cm47dGhpcy5jbGVhckNhbnZhc2VzKCksdGhpcy5jYWNoZUVsZW1lbnRzKCk7bGV0e2F2YWlsYWJsZVdpZHRoOk4sYXZhaWxhYmxlSGVpZ2h0OlJ9PXRoaXMuZ2V0QXZhaWxhYmxlU2l6ZSgpO3RyeXtsZXQgXz10aGlzLmN1cnJlbnRQcmV2aWV3UGFnZSxTPWF3YWl0IHRoaXMucGRmRG9jdW1lbnQuZ2V0UGFnZShfKSwkPVMuZ2V0Vmlld3BvcnQoe3NjYWxlOjF9KSxUPSQuaGVpZ2h0LyQud2lkdGgsRT0xLjQxNCxxPS43MDcsQj0xLjI5NCxHPS43NzMsZWU9LjA1LFA9TWF0aC5hYnMoVC1FKTxFKmVlLGdlPU1hdGguYWJzKFQtcSk8cSplZSx3ZT1NYXRoLmFicyhULUIpPEIqZWUsST1NYXRoLmFicyhULUcpPEcqZWU7dGhpcy5pc0E0Rm9ybWF0PVB8fGdlfHx3ZXx8STtsZXQgbmU9dGhpcy5pc0E0Rm9ybWF0P046Ti0yNCxrZT10aGlzLmlzQTRGb3JtYXQ/UjpSLTI0LFk9bmU+MD9uZS8kLndpZHRoOjAsQT1rZT4wP2tlLyQuaGVpZ2h0OjAsTD1NYXRoLm1pbihZfHwuNSxBfHxZfHwuNSksVT1NYXRoLm1pbihMKjIsMyk7aWYoIU51bWJlci5pc0Zpbml0ZShVKXx8VTw9MCl7Uy5jbGVhbnVwPy4oKTtyZXR1cm59bGV0IFY9Uy5nZXRWaWV3cG9ydCh7c2NhbGU6VX0pLFg9ZGguYWNxdWlyZShWLndpZHRoLFYuaGVpZ2h0KTt0aGlzLmNhbnZhc2VzLnB1c2goWCk7bGV0IGRlPXtjYW52YXNDb250ZXh0OlguY3R4LHZpZXdwb3J0OlZ9O2F3YWl0IFMucmVuZGVyKGRlKS5wcm9taXNlLEQud2lkdGg9Vi53aWR0aCxELmhlaWdodD1WLmhlaWdodDtsZXQgdmU9bmUsTGU9Vi5oZWlnaHQvVi53aWR0aCpuZTtpZihMZT5rZSl7bGV0IEg9a2UsdGU9Vi53aWR0aC9WLmhlaWdodCprZTtELnN0eWxlLndpZHRoPWAke3RlfXB4YCxELnN0eWxlLmhlaWdodD1gJHtIfXB4YH1lbHNlIEQuc3R5bGUud2lkdGg9YCR7dmV9cHhgLEQuc3R5bGUuaGVpZ2h0PWAke0xlfXB4YDtsZXQgVz1ELmdldENvbnRleHQoIjJkIik7VyYmKFcuaW1hZ2VTbW9vdGhpbmdFbmFibGVkPSEwLFcuaW1hZ2VTbW9vdGhpbmdRdWFsaXR5PSJoaWdoIixXLmRyYXdJbWFnZShYLmNhbnZhcywwLDApKSxTLmNsZWFudXAoKX1jYXRjaChfKXtjb25zb2xlLmVycm9yKGBGYWlsZWQgdG8gcmVuZGVyIHBhZ2UgJHt0aGlzLmN1cnJlbnRQcmV2aWV3UGFnZX06YCxfKX19Y2xlYXJDYW52YXNlcygpe2ZvcihsZXQgRCBvZiB0aGlzLmNhbnZhc2VzKWRoLnJlbGVhc2UoRCk7dGhpcy5jYW52YXNlcz1bXX1jbGVhbnVwKCl7dGhpcy5jbGVhckNhbnZhc2VzKCksdGhpcy5wZGZEb2N1bWVudCYmKG9sLnJlbGVhc2VEb2N1bWVudCh0aGlzLmxvYWRlZFBkZlVybD8/dGhpcy5wZGZVcmwpLHRoaXMucGRmRG9jdW1lbnQ9bnVsbCksdGhpcy5yZW5kZXJQYWdlc1F1ZXVlZD0hMSx0aGlzLnBhZ2VDb3VudD0wLHRoaXMuY3VycmVudFByZXZpZXdQYWdlPTEsdGhpcy5pc0hvdmVyaW5nPSExLHRoaXMuaXNBNEZvcm1hdD0hMCx0aGlzLnN0YWNrRWxlbWVudD1udWxsLHRoaXMubG9hZGVkUGRmVXJsPW51bGwsdGhpcy5yZW5kZXJlZD0hMSx0aGlzLmxvYWRpbmc9ITEsdGhpcy5lcnJvcj0hMX1hc3luYyB1cGRhdGVkKEQpe2lmKHN1cGVyLnVwZGF0ZWQoRCksRC5oYXMoInBkZlVybCIpJiZ0aGlzLnBkZlVybCl7bGV0IE49RC5nZXQoInBkZlVybCIpO04mJm9sLnJlbGVhc2VEb2N1bWVudChOKSx0aGlzLmNsZWFudXAoKSx0aGlzLnJlbmRlcmVkPSExLHRoaXMuY3VycmVudFByZXZpZXdQYWdlPTE7bGV0IFI9dGhpcy5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtSLnRvcDx3aW5kb3cuaW5uZXJIZWlnaHQmJlIuYm90dG9tPjAmJnRoaXMubG9hZEFuZFJlbmRlclByZXZpZXcoKX1ELmhhcygiY3VycmVudFByZXZpZXdQYWdlIikmJnRoaXMucmVuZGVyZWQmJmF3YWl0IHRoaXMuc2NoZWR1bGVSZW5kZXJQYWdlcygpfWdldENvbnRleHRNZW51SXRlbXMoKXtsZXQgRD1bXTtyZXR1cm4gdGhpcy5jbGlja2FibGUmJihELnB1c2goe25hbWU6IlZpZXcgUERGIixpY29uTmFtZToibHVjaWRlOkV5ZSIsYWN0aW9uOmFzeW5jKCk9Pnt0aGlzLmRpc3BhdGNoRXZlbnQobmV3IEN1c3RvbUV2ZW50KCJ0aWxlLWNsaWNrIix7ZGV0YWlsOnRoaXMuZ2V0VGlsZUNsaWNrRGV0YWlsKCksYnViYmxlczohMCxjb21wb3NlZDohMH0pKX19KSxELnB1c2goe2RpdmlkZXI6ITB9KSksRC5wdXNoKHtuYW1lOiJPcGVuIFBERiBpbiBOZXcgVGFiIixpY29uTmFtZToibHVjaWRlOkV4dGVybmFsTGluayIsYWN0aW9uOmFzeW5jKCk9Pnt3aW5kb3cub3Blbih0aGlzLnBkZlVybCwiX2JsYW5rIil9fSx7ZGl2aWRlcjohMH0se25hbWU6IkNvcHkgUERGIFVSTCIsaWNvbk5hbWU6Imx1Y2lkZTpDb3B5IixhY3Rpb246YXN5bmMoKT0+e2F3YWl0IG5hdmlnYXRvci5jbGlwYm9hcmQud3JpdGVUZXh0KHRoaXMucGRmVXJsKX19LHtuYW1lOiJEb3dubG9hZCBQREYiLGljb25OYW1lOiJsdWNpZGU6RG93bmxvYWQiLGFjdGlvbjphc3luYygpPT57bGV0IE49ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiYSIpO04uaHJlZj10aGlzLnBkZlVybCxOLmRvd25sb2FkPXRoaXMucGRmVXJsLnNwbGl0KCIvIikucG9wKCl8fCJkb2N1bWVudC5wZGYiLE4uY2xpY2soKX19KSx0aGlzLnBhZ2VDb3VudD4wJiZELnB1c2goe2RpdmlkZXI6ITB9LHtuYW1lOmAke3RoaXMucGFnZUNvdW50fSBwYWdlJHt0aGlzLnBhZ2VDb3VudD4xPyJzIjoiIn1gLGljb25OYW1lOiJsdWNpZGU6RmlsZVRleHQiLGRpc2FibGVkOiEwLGFjdGlvbjphc3luYygpPT57fX0pLER9Y2FjaGVFbGVtZW50cygpe3RoaXMuc3RhY2tFbGVtZW50fHwodGhpcy5zdGFja0VsZW1lbnQ9dGhpcy5zaGFkb3dSb290Py5xdWVyeVNlbGVjdG9yKCIucHJldmlldy1zdGFjayIpKX1zZXR1cFJlc2l6ZU9ic2VydmVyKCl7dGhpcy5yZXNpemVPYnNlcnZlcnx8KHRoaXMucmVzaXplT2JzZXJ2ZXI9bmV3IFJlc2l6ZU9ic2VydmVyKCgpPT57dGhpcy5yZW5kZXJlZCYmdGhpcy5wZGZEb2N1bWVudCYmIXRoaXMubG9hZGluZyYmdGhpcy5zY2hlZHVsZVJlbmRlclBhZ2VzKCl9KSx0aGlzLnJlc2l6ZU9ic2VydmVyLm9ic2VydmUodGhpcykpfWdldEF2YWlsYWJsZVNpemUoKXtpZih0aGlzLnN0YWNrRWxlbWVudHx8KHRoaXMuc3RhY2tFbGVtZW50PXRoaXMuc2hhZG93Um9vdD8ucXVlcnlTZWxlY3RvcigiLnByZXZpZXctc3RhY2siKSksIXRoaXMuc3RhY2tFbGVtZW50KXJldHVybnthdmFpbGFibGVXaWR0aDoyMDAsYXZhaWxhYmxlSGVpZ2h0OjI2MH07bGV0IEQ9dGhpcy5zdGFja0VsZW1lbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCksTj1NYXRoLm1heChELndpZHRoLDApfHwyMDAsUj1NYXRoLm1heChELmhlaWdodCwwKXx8MjYwO3JldHVybnthdmFpbGFibGVXaWR0aDpOLGF2YWlsYWJsZUhlaWdodDpSfX1zdGF0aWN7dG8oaSxyKX19O3JldHVybiBGPWl9KSgpfSk7dmFyIHlYcix3WHIscTNyLGozcj1wKCgpPT57eGUoKTtrZGUoKTt5WHI9ZnVuY3Rpb24oZSx0LHIsaSxhLG4pe2Z1bmN0aW9uIG8oeSl7aWYoeSE9PXZvaWQgMCYmdHlwZW9mIHkhPSJmdW5jdGlvbiIpdGhyb3cgbmV3IFR5cGVFcnJvcigiRnVuY3Rpb24gZXhwZWN0ZWQiKTtyZXR1cm4geX1mb3IodmFyIHM9aS5raW5kLGw9cz09PSJnZXR0ZXIiPyJnZXQiOnM9PT0ic2V0dGVyIj8ic2V0IjoidmFsdWUiLGM9IXQmJmU/aS5zdGF0aWM/ZTplLnByb3RvdHlwZTpudWxsLHU9dHx8KGM/T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihjLGkubmFtZSk6e30pLGQsaD0hMSxmPXIubGVuZ3RoLTE7Zj49MDtmLS0pe3ZhciB4PXt9O2Zvcih2YXIgdiBpbiBpKXhbdl09dj09PSJhY2Nlc3MiP3t9Omlbdl07Zm9yKHZhciB2IGluIGkuYWNjZXNzKXguYWNjZXNzW3ZdPWkuYWNjZXNzW3ZdO3guYWRkSW5pdGlhbGl6ZXI9ZnVuY3Rpb24oeSl7aWYoaCl0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgYWRkIGluaXRpYWxpemVycyBhZnRlciBkZWNvcmF0aW9uIGhhcyBjb21wbGV0ZWQiKTtuLnB1c2gobyh5fHxudWxsKSl9O3ZhciBiPSgwLHJbZl0pKHM9PT0iYWNjZXNzb3IiP3tnZXQ6dS5nZXQsc2V0OnUuc2V0fTp1W2xdLHgpO2lmKHM9PT0iYWNjZXNzb3IiKXtpZihiPT09dm9pZCAwKWNvbnRpbnVlO2lmKGI9PT1udWxsfHx0eXBlb2YgYiE9Im9iamVjdCIpdGhyb3cgbmV3IFR5cGVFcnJvcigiT2JqZWN0IGV4cGVjdGVkIik7KGQ9byhiLmdldCkpJiYodS5nZXQ9ZCksKGQ9byhiLnNldCkpJiYodS5zZXQ9ZCksKGQ9byhiLmluaXQpKSYmYS51bnNoaWZ0KGQpfWVsc2UoZD1vKGIpKSYmKHM9PT0iZmllbGQiP2EudW5zaGlmdChkKTp1W2xdPWQpfWMmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShjLGkubmFtZSx1KSxoPSEwfSx3WHI9ZnVuY3Rpb24oZSx0LHIpe2Zvcih2YXIgaT1hcmd1bWVudHMubGVuZ3RoPjIsYT0wO2E8dC5sZW5ndGg7YSsrKXI9aT90W2FdLmNhbGwoZSxyKTp0W2FdLmNhbGwoZSk7cmV0dXJuIGk/cjp2b2lkIDB9LHEzcj0oKCk9PntsZXQgZT1beWUoImRlZXMtcGRmLXByZXZpZXciKV0sdCxyPVtdLGksYT1vRjt2YXIgbj1jbGFzcyBleHRlbmRzIGF7c3RhdGlje2k9dGhpc31zdGF0aWN7bGV0IG89dHlwZW9mIFN5bWJvbD09ImZ1bmN0aW9uIiYmU3ltYm9sLm1ldGFkYXRhP09iamVjdC5jcmVhdGUoYVtTeW1ib2wubWV0YWRhdGFdPz9udWxsKTp2b2lkIDA7eVhyKG51bGwsdD17dmFsdWU6aX0sZSx7a2luZDoiY2xhc3MiLG5hbWU6aS5uYW1lLG1ldGFkYXRhOm99LG51bGwsciksbj1pPXQudmFsdWUsbyYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGksU3ltYm9sLm1ldGFkYXRhLHtlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMCx2YWx1ZTpvfSl9c3RhdGljIGRlbW9Hcm91cHM9W107Y29ubmVjdGVkQ2FsbGJhY2soKXtyZXR1cm4gY29uc29sZS53YXJuKCJbZGVlcy1wZGYtcHJldmlld10gaXMgZGVwcmVjYXRlZC4gVXNlIDxkZWVzLXRpbGUtcGRmPiBpbnN0ZWFkLiBUaGlzIGNvbXBvbmVudCB3aWxsIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgcmVsZWFzZS4iKSxzdXBlci5jb25uZWN0ZWRDYWxsYmFjaygpfXN0YXRpY3t3WHIoaSxyKX19O3JldHVybiBuPWl9KSgpfSk7dmFyIFYzcj1wKCgpPT57ajNyKCl9KTt2YXIgVTNyPXAoKCk9Pnt3ZGUoKTtuRigpO01kZSgpfSk7dmFyIFczcj1wKCgpPT57eGRlKCl9KTt2YXIgRzNyPXAoKCk9PntWNCgpO1RjKCl9KTt2YXIgWTNyPXAoKCk9PntrZGUoKX0pO3ZhciBaM3IsWDNyPXAoKCk9Pnt4ZSgpO1ozcj0oKT0+Q2AKICA8c3R5bGU+CiAgICAuZGVtby1jb250YWluZXIgewogICAgICBwYWRkaW5nOiA0MHB4OwogICAgICBiYWNrZ3JvdW5kOiAjZjVmNWY1OwogICAgfQogICAgLmRlbW8tc2VjdGlvbiB7CiAgICAgIG1hcmdpbi1ib3R0b206IDYwcHg7CiAgICB9CiAgICBoMyB7CiAgICAgIG1hcmdpbi1ib3R0b206IDIwcHg7CiAgICAgIGZvbnQtc2l6ZTogMThweDsKICAgICAgZm9udC13ZWlnaHQ6IDYwMDsKICAgIH0KICAgIC50aWxlLXJvdyB7CiAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgIGdhcDogMjRweDsKICAgICAgZmxleC13cmFwOiB3cmFwOwogICAgICBhbGlnbi1pdGVtczogZmxleC1zdGFydDsKICAgIH0KICA8L3N0eWxlPgoKICA8ZGl2IGNsYXNzPSJkZW1vLWNvbnRhaW5lciI+CiAgICA8ZGl2IGNsYXNzPSJkZW1vLXNlY3Rpb24iPgogICAgICA8aDM+SW1hZ2UgVGlsZXM8L2gzPgogICAgICA8ZGl2IGNsYXNzPSJ0aWxlLXJvdyI+CiAgICAgICAgPGRlZXMtdGlsZS1pbWFnZQogICAgICAgICAgc3JjPSJodHRwczovL3BpY3N1bS5waG90b3MvODAwLzYwMCIKICAgICAgICAgIGFsdD0iTGFuZHNjYXBlIHBob3RvIgogICAgICAgICAgbGFiZWw9ImxhbmRzY2FwZS5qcGciCiAgICAgICAgICBAdGlsZS1jbGljaz0ke2U9PmNvbnNvbGUubG9nKCJJbWFnZSBjbGlja2VkOiIsZS5kZXRhaWwpfQogICAgICAgID48L2RlZXMtdGlsZS1pbWFnZT4KCiAgICAgICAgPGRlZXMtdGlsZS1pbWFnZQogICAgICAgICAgc3JjPSJodHRwczovL3BpY3N1bS5waG90b3MvNDAwLzQwMCIKICAgICAgICAgIGFsdD0iU3F1YXJlIHBob3RvIgogICAgICAgICAgbGFiZWw9InNxdWFyZS5wbmciCiAgICAgICAgPjwvZGVlcy10aWxlLWltYWdlPgoKICAgICAgICA8ZGVlcy10aWxlLWltYWdlCiAgICAgICAgICBzcmM9Imh0dHBzOi8vcGljc3VtLnBob3Rvcy8zMDAvOTAwIgogICAgICAgICAgYWx0PSJQb3J0cmFpdCBwaG90byIKICAgICAgICAgIGxhYmVsPSJwb3J0cmFpdC53ZWJwIgogICAgICAgID48L2RlZXMtdGlsZS1pbWFnZT4KICAgICAgPC9kaXY+CiAgICA8L2Rpdj4KCiAgICA8ZGl2IGNsYXNzPSJkZW1vLXNlY3Rpb24iPgogICAgICA8aDM+U2l6ZSBWYXJpYW50czwvaDM+CiAgICAgIDxkaXYgY2xhc3M9InRpbGUtcm93Ij4KICAgICAgICA8ZGVlcy10aWxlLWltYWdlCiAgICAgICAgICBzaXplPSJzbWFsbCIKICAgICAgICAgIHNyYz0iaHR0cHM6Ly9waWNzdW0ucGhvdG9zLzIwMC8yMDAiCiAgICAgICAgICBhbHQ9IlNtYWxsIgogICAgICAgICAgbGFiZWw9InNtYWxsLmpwZyIKICAgICAgICA+PC9kZWVzLXRpbGUtaW1hZ2U+CgogICAgICAgIDxkZWVzLXRpbGUtaW1hZ2UKICAgICAgICAgIHNyYz0iaHR0cHM6Ly9waWNzdW0ucGhvdG9zLzYwMC80MDAiCiAgICAgICAgICBhbHQ9IkRlZmF1bHQiCiAgICAgICAgICBsYWJlbD0iZGVmYXVsdC5qcGciCiAgICAgICAgPjwvZGVlcy10aWxlLWltYWdlPgoKICAgICAgICA8ZGVlcy10aWxlLWltYWdlCiAgICAgICAgICBzaXplPSJsYXJnZSIKICAgICAgICAgIHNyYz0iaHR0cHM6Ly9waWNzdW0ucGhvdG9zLzEyMDAvODAwIgogICAgICAgICAgYWx0PSJMYXJnZSIKICAgICAgICAgIGxhYmVsPSJsYXJnZS5qcGciCiAgICAgICAgPjwvZGVlcy10aWxlLWltYWdlPgogICAgICA8L2Rpdj4KICAgIDwvZGl2PgoKICAgIDxkaXYgY2xhc3M9ImRlbW8tc2VjdGlvbiI+CiAgICAgIDxoMz5FcnJvciBTdGF0ZSAoYnJva2VuIFVSTCk8L2gzPgogICAgICA8ZGVlcy10aWxlLWltYWdlCiAgICAgICAgc3JjPSJodHRwczovL2ludmFsaWQtdXJsLXRoYXQtZG9lcy1ub3QtZXhpc3QuZXhhbXBsZS9pbWFnZS5wbmciCiAgICAgICAgYWx0PSJCcm9rZW4iCiAgICAgICAgbGFiZWw9ImJyb2tlbi5wbmciCiAgICAgID48L2RlZXMtdGlsZS1pbWFnZT4KICAgIDwvZGl2PgogIDwvZGl2PgpgfSk7dmFyIHBoLFAyLFEzcixKM3I9cCgoKT0+e3hlKCk7VjQoKTtUYygpO1gzcigpO3BoPWZ1bmN0aW9uKGUsdCxyLGksYSxuKXtmdW5jdGlvbiBvKHkpe2lmKHkhPT12b2lkIDAmJnR5cGVvZiB5IT0iZnVuY3Rpb24iKXRocm93IG5ldyBUeXBlRXJyb3IoIkZ1bmN0aW9uIGV4cGVjdGVkIik7cmV0dXJuIHl9Zm9yKHZhciBzPWkua2luZCxsPXM9PT0iZ2V0dGVyIj8iZ2V0IjpzPT09InNldHRlciI/InNldCI6InZhbHVlIixjPSF0JiZlP2kuc3RhdGljP2U6ZS5wcm90b3R5cGU6bnVsbCx1PXR8fChjP09iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoYyxpLm5hbWUpOnt9KSxkLGg9ITEsZj1yLmxlbmd0aC0xO2Y+PTA7Zi0tKXt2YXIgeD17fTtmb3IodmFyIHYgaW4gaSl4W3ZdPXY9PT0iYWNjZXNzIj97fTppW3ZdO2Zvcih2YXIgdiBpbiBpLmFjY2Vzcyl4LmFjY2Vzc1t2XT1pLmFjY2Vzc1t2XTt4LmFkZEluaXRpYWxpemVyPWZ1bmN0aW9uKHkpe2lmKGgpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGFkZCBpbml0aWFsaXplcnMgYWZ0ZXIgZGVjb3JhdGlvbiBoYXMgY29tcGxldGVkIik7bi5wdXNoKG8oeXx8bnVsbCkpfTt2YXIgYj0oMCxyW2ZdKShzPT09ImFjY2Vzc29yIj97Z2V0OnUuZ2V0LHNldDp1LnNldH06dVtsXSx4KTtpZihzPT09ImFjY2Vzc29yIil7aWYoYj09PXZvaWQgMCljb250aW51ZTtpZihiPT09bnVsbHx8dHlwZW9mIGIhPSJvYmplY3QiKXRocm93IG5ldyBUeXBlRXJyb3IoIk9iamVjdCBleHBlY3RlZCIpOyhkPW8oYi5nZXQpKSYmKHUuZ2V0PWQpLChkPW8oYi5zZXQpKSYmKHUuc2V0PWQpLChkPW8oYi5pbml0KSkmJmEudW5zaGlmdChkKX1lbHNlKGQ9byhiKSkmJihzPT09ImZpZWxkIj9hLnVuc2hpZnQoZCk6dVtsXT1kKX1jJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoYyxpLm5hbWUsdSksaD0hMH0sUDI9ZnVuY3Rpb24oZSx0LHIpe2Zvcih2YXIgaT1hcmd1bWVudHMubGVuZ3RoPjIsYT0wO2E8dC5sZW5ndGg7YSsrKXI9aT90W2FdLmNhbGwoZSxyKTp0W2FdLmNhbGwoZSk7cmV0dXJuIGk/cjp2b2lkIDB9LFEzcj0oKCk9PntsZXQgZT1beWUoImRlZXMtdGlsZS1pbWFnZSIpXSx0LHI9W10saSxhPW9uLG4sbz1bXSxzPVtdLGwsYz1bXSx1PVtdLGQsaD1bXSxmPVtdLHgsdj1bXSxiPVtdLHksdz1bXSxrPVtdO3ZhciBPPWNsYXNzIGV4dGVuZHMgYXtzdGF0aWN7aT10aGlzfXN0YXRpY3tsZXQgej10eXBlb2YgU3ltYm9sPT0iZnVuY3Rpb24iJiZTeW1ib2wubWV0YWRhdGE/T2JqZWN0LmNyZWF0ZShhW1N5bWJvbC5tZXRhZGF0YV0/P251bGwpOnZvaWQgMDtuPVtqKHt0eXBlOlN0cmluZ30pXSxsPVtqKHt0eXBlOlN0cmluZ30pXSxkPVtmZSgpXSx4PVtmZSgpXSx5PVtmZSgpXSxwaCh0aGlzLG51bGwsbix7a2luZDoiYWNjZXNzb3IiLG5hbWU6InNyYyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6TT0+InNyYyJpbiBNLGdldDpNPT5NLnNyYyxzZXQ6KE0sRik9PntNLnNyYz1GfX0sbWV0YWRhdGE6en0sbyxzKSxwaCh0aGlzLG51bGwsbCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImFsdCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6TT0+ImFsdCJpbiBNLGdldDpNPT5NLmFsdCxzZXQ6KE0sRik9PntNLmFsdD1GfX0sbWV0YWRhdGE6en0sYyx1KSxwaCh0aGlzLG51bGwsZCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImltYWdlTG9hZGVkIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpNPT4iaW1hZ2VMb2FkZWQiaW4gTSxnZXQ6TT0+TS5pbWFnZUxvYWRlZCxzZXQ6KE0sRik9PntNLmltYWdlTG9hZGVkPUZ9fSxtZXRhZGF0YTp6fSxoLGYpLHBoKHRoaXMsbnVsbCx4LHtraW5kOiJhY2Nlc3NvciIsbmFtZToiaW1hZ2VXaWR0aCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6TT0+ImltYWdlV2lkdGgiaW4gTSxnZXQ6TT0+TS5pbWFnZVdpZHRoLHNldDooTSxGKT0+e00uaW1hZ2VXaWR0aD1GfX0sbWV0YWRhdGE6en0sdixiKSxwaCh0aGlzLG51bGwseSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImltYWdlSGVpZ2h0IixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpNPT4iaW1hZ2VIZWlnaHQiaW4gTSxnZXQ6TT0+TS5pbWFnZUhlaWdodCxzZXQ6KE0sRik9PntNLmltYWdlSGVpZ2h0PUZ9fSxtZXRhZGF0YTp6fSx3LGspLHBoKG51bGwsdD17dmFsdWU6aX0sZSx7a2luZDoiY2xhc3MiLG5hbWU6aS5uYW1lLG1ldGFkYXRhOnp9LG51bGwsciksTz1pPXQudmFsdWUseiYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGksU3ltYm9sLm1ldGFkYXRhLHtlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMCx2YWx1ZTp6fSl9c3RhdGljIGRlbW89WjNyO3N0YXRpYyBkZW1vR3JvdXBzPVsiTWVkaWEiXTtzdGF0aWMgc3R5bGVzPVsuLi5GYSxvZWAKICAgICAgLmltYWdlLXdyYXBwZXIgewogICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgICB3aWR0aDogMTAwJTsKICAgICAgICBoZWlnaHQ6IDEwMCU7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOwogICAgICAgIG92ZXJmbG93OiBoaWRkZW47CiAgICAgICAgYmFja2dyb3VuZDogJHttLmJkVGhlbWUoInJlcGVhdGluZy1jb25pYy1ncmFkaWVudCgjZThlOGU4IDAlIDI1JSwgd2hpdGUgMCUgNTAlKSA1MCUgLyAxNnB4IDE2cHgiLCJyZXBlYXRpbmctY29uaWMtZ3JhZGllbnQoaHNsKDIxNSAyMCUgMTglKSAwJSAyNSUsIGhzbCgyMTUgMjAlIDE0JSkgMCUgNTAlKSA1MCUgLyAxNnB4IDE2cHgiKX07CiAgICAgIH0KCiAgICAgIC5pbWFnZS13cmFwcGVyIGltZyB7CiAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgICAgaGVpZ2h0OiAxMDAlOwogICAgICAgIG9iamVjdC1maXQ6IGNvdmVyOwogICAgICAgIGRpc3BsYXk6IGJsb2NrOwogICAgICAgIHRyYW5zaXRpb246IG9wYWNpdHkgMC4zcyBlYXNlOwogICAgICB9CgogICAgICAuaW1hZ2Utd3JhcHBlciBpbWcubG9hZGVkIHsKICAgICAgICBvcGFjaXR5OiAxOwogICAgICB9CgogICAgICAuaW1hZ2Utd3JhcHBlciBpbWcubG9hZGluZyB7CiAgICAgICAgb3BhY2l0eTogMDsKICAgICAgfQoKICAgICAgLnRpbGUtYmFkZ2UtdG9wcmlnaHQuZGltZW5zaW9uLWJhZGdlIHsKICAgICAgICBvcGFjaXR5OiAwOwogICAgICAgIHRyYW5zaXRpb246IG9wYWNpdHkgMC4ycyBlYXNlOwogICAgICB9CgogICAgICAudGlsZS1jb250YWluZXIuY2xpY2thYmxlOmhvdmVyIC50aWxlLWJhZGdlLXRvcHJpZ2h0LmRpbWVuc2lvbi1iYWRnZSB7CiAgICAgICAgb3BhY2l0eTogMTsKICAgICAgfQogICAgYF07I2U9UDIodGhpcyxvLCIiKTtnZXQgc3JjKCl7cmV0dXJuIHRoaXMuI2V9c2V0IHNyYyh6KXt0aGlzLiNlPXp9I3Q9KFAyKHRoaXMscyksUDIodGhpcyxjLCIiKSk7Z2V0IGFsdCgpe3JldHVybiB0aGlzLiN0fXNldCBhbHQoeil7dGhpcy4jdD16fSNyPShQMih0aGlzLHUpLFAyKHRoaXMsaCwhMSkpO2dldCBpbWFnZUxvYWRlZCgpe3JldHVybiB0aGlzLiNyfXNldCBpbWFnZUxvYWRlZCh6KXt0aGlzLiNyPXp9I2k9KFAyKHRoaXMsZiksUDIodGhpcyx2LDApKTtnZXQgaW1hZ2VXaWR0aCgpe3JldHVybiB0aGlzLiNpfXNldCBpbWFnZVdpZHRoKHope3RoaXMuI2k9en0jYT0oUDIodGhpcyxiKSxQMih0aGlzLHcsMCkpO2dldCBpbWFnZUhlaWdodCgpe3JldHVybiB0aGlzLiNhfXNldCBpbWFnZUhlaWdodCh6KXt0aGlzLiNhPXp9aGFzU3RhcnRlZExvYWRpbmc9KFAyKHRoaXMsayksITEpO3JlbmRlclRpbGVDb250ZW50KCl7cmV0dXJuIENgCiAgICAgIDxkaXYgY2xhc3M9ImltYWdlLXdyYXBwZXIiPgogICAgICAgICR7dGhpcy5oYXNTdGFydGVkTG9hZGluZz9DYAogICAgICAgICAgPGltZwogICAgICAgICAgICBjbGFzcz0iJHt0aGlzLmltYWdlTG9hZGVkPyJsb2FkZWQiOiJsb2FkaW5nIn0iCiAgICAgICAgICAgIHNyYz0iJHt0aGlzLnNyY30iCiAgICAgICAgICAgIGFsdD0iJHt0aGlzLmFsdH0iCiAgICAgICAgICAgIEBsb2FkPSR7dGhpcy5oYW5kbGVJbWFnZUxvYWR9CiAgICAgICAgICAgIEBlcnJvcj0ke3RoaXMuaGFuZGxlSW1hZ2VFcnJvcn0KICAgICAgICAgIC8+CiAgICAgICAgYDoiIn0KICAgICAgPC9kaXY+CgogICAgICAke3RoaXMuaW1hZ2VXaWR0aD4wJiZ0aGlzLmltYWdlSGVpZ2h0PjA/Q2AKICAgICAgICA8ZGl2IGNsYXNzPSJ0aWxlLWJhZGdlLXRvcHJpZ2h0IGRpbWVuc2lvbi1iYWRnZSI+CiAgICAgICAgICAke3RoaXMuaW1hZ2VXaWR0aH0gw5cgJHt0aGlzLmltYWdlSGVpZ2h0fQogICAgICAgIDwvZGl2PgogICAgICBgOiIifQoKICAgICAgJHt0aGlzLmltYWdlTG9hZGVkP0NgCiAgICAgICAgPGRpdiBjbGFzcz0idGlsZS1pbmZvIj4KICAgICAgICAgIDxkZWVzLWljb24gaWNvbj0ibHVjaWRlOkltYWdlIj48L2RlZXMtaWNvbj4KICAgICAgICAgIDxzcGFuIGNsYXNzPSJ0aWxlLWluZm8tdGV4dCI+JHt0aGlzLmltYWdlV2lkdGh9IMOXICR7dGhpcy5pbWFnZUhlaWdodH08L3NwYW4+CiAgICAgICAgPC9kaXY+CiAgICAgIGA6IiJ9CgogICAgICAke3RoaXMuY2xpY2thYmxlP0NgCiAgICAgICAgPGRpdiBjbGFzcz0idGlsZS1vdmVybGF5Ij4KICAgICAgICAgIDxkZWVzLWljb24gaWNvbj0ibHVjaWRlOkV5ZSI+PC9kZWVzLWljb24+CiAgICAgICAgICA8c3Bhbj5WaWV3IEltYWdlPC9zcGFuPgogICAgICAgIDwvZGl2PgogICAgICBgOiIifQogICAgYH1nZXRUaWxlQ2xpY2tEZXRhaWwoKXtyZXR1cm57c3JjOnRoaXMuc3JjLGFsdDp0aGlzLmFsdCx3aWR0aDp0aGlzLmltYWdlV2lkdGgsaGVpZ2h0OnRoaXMuaW1hZ2VIZWlnaHR9fW9uQmVjYW1lVmlzaWJsZSgpeyF0aGlzLmhhc1N0YXJ0ZWRMb2FkaW5nJiZ0aGlzLnNyYyYmKHRoaXMuaGFzU3RhcnRlZExvYWRpbmc9ITAsdGhpcy5sb2FkaW5nPSEwLHRoaXMucmVxdWVzdFVwZGF0ZSgpKX1oYW5kbGVJbWFnZUxvYWQoeil7bGV0IE09ei50YXJnZXQ7dGhpcy5pbWFnZVdpZHRoPU0ubmF0dXJhbFdpZHRoLHRoaXMuaW1hZ2VIZWlnaHQ9TS5uYXR1cmFsSGVpZ2h0LHRoaXMuaW1hZ2VMb2FkZWQ9ITAsdGhpcy5sb2FkaW5nPSExfWhhbmRsZUltYWdlRXJyb3IoKXt0aGlzLmVycm9yPSEwLHRoaXMubG9hZGluZz0hMX1hc3luYyB1cGRhdGVkKHope3N1cGVyLnVwZGF0ZWQoeiksei5oYXMoInNyYyIpJiZ0aGlzLnNyYyYmdGhpcy5pc1Zpc2libGUmJih0aGlzLmhhc1N0YXJ0ZWRMb2FkaW5nPSEwLHRoaXMuaW1hZ2VMb2FkZWQ9ITEsdGhpcy5sb2FkaW5nPSEwKX1zdGF0aWN7UDIoaSxyKX19O3JldHVybiBPPWl9KSgpfSk7dmFyIEszcj1wKCgpPT57SjNyKCl9KTt2YXIgZTZyLHQ2cj1wKCgpPT57eGUoKTtlNnI9KCk9PkNgCiAgPHN0eWxlPgogICAgLmRlbW8tY29udGFpbmVyIHsKICAgICAgcGFkZGluZzogNDBweDsKICAgICAgYmFja2dyb3VuZDogI2Y1ZjVmNTsKICAgIH0KICAgIC5kZW1vLXNlY3Rpb24gewogICAgICBtYXJnaW4tYm90dG9tOiA2MHB4OwogICAgfQogICAgaDMgewogICAgICBtYXJnaW4tYm90dG9tOiAyMHB4OwogICAgICBmb250LXNpemU6IDE4cHg7CiAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7CiAgICB9CiAgICAudGlsZS1yb3cgewogICAgICBkaXNwbGF5OiBmbGV4OwogICAgICBnYXA6IDI0cHg7CiAgICAgIGZsZXgtd3JhcDogd3JhcDsKICAgICAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7CiAgICB9CiAgPC9zdHlsZT4KCiAgPGRpdiBjbGFzcz0iZGVtby1jb250YWluZXIiPgogICAgPGRpdiBjbGFzcz0iZGVtby1zZWN0aW9uIj4KICAgICAgPGgzPkF1ZGlvIFRpbGVzPC9oMz4KICAgICAgPGRpdiBjbGFzcz0idGlsZS1yb3ciPgogICAgICAgIDxkZWVzLXRpbGUtYXVkaW8KICAgICAgICAgIHNyYz0iaHR0cHM6Ly93d3cuc291bmRoZWxpeC5jb20vZXhhbXBsZXMvbXAzL1NvdW5kSGVsaXgtU29uZy0xLm1wMyIKICAgICAgICAgIHRpdGxlPSJTb3VuZEhlbGl4IFNvbmcgMSIKICAgICAgICAgIGFydGlzdD0iVC4gU2NodWVyZ2VyIgogICAgICAgICAgbGFiZWw9InNvdW5kaGVsaXgtMS5tcDMiCiAgICAgICAgICBAdGlsZS1jbGljaz0ke2U9PmNvbnNvbGUubG9nKCJBdWRpbyBjbGlja2VkOiIsZS5kZXRhaWwpfQogICAgICAgID48L2RlZXMtdGlsZS1hdWRpbz4KCiAgICAgICAgPGRlZXMtdGlsZS1hdWRpbwogICAgICAgICAgc3JjPSJodHRwczovL3d3dy5zb3VuZGhlbGl4LmNvbS9leGFtcGxlcy9tcDMvU291bmRIZWxpeC1Tb25nLTIubXAzIgogICAgICAgICAgdGl0bGU9IlNvdW5kSGVsaXggU29uZyAyIgogICAgICAgICAgYXJ0aXN0PSJULiBTY2h1ZXJnZXIiCiAgICAgICAgICBsYWJlbD0ic291bmRoZWxpeC0yLm1wMyIKICAgICAgICA+PC9kZWVzLXRpbGUtYXVkaW8+CgogICAgICAgIDxkZWVzLXRpbGUtYXVkaW8KICAgICAgICAgIHNyYz0iaHR0cHM6Ly93d3cuc291bmRoZWxpeC5jb20vZXhhbXBsZXMvbXAzL1NvdW5kSGVsaXgtU29uZy0zLm1wMyIKICAgICAgICAgIHRpdGxlPSJTb3VuZEhlbGl4IFNvbmcgMyIKICAgICAgICAgIGxhYmVsPSJzb3VuZGhlbGl4LTMubXAzIgogICAgICAgID48L2RlZXMtdGlsZS1hdWRpbz4KICAgICAgPC9kaXY+CiAgICA8L2Rpdj4KCiAgICA8ZGl2IGNsYXNzPSJkZW1vLXNlY3Rpb24iPgogICAgICA8aDM+U2l6ZSBWYXJpYW50czwvaDM+CiAgICAgIDxkaXYgY2xhc3M9InRpbGUtcm93Ij4KICAgICAgICA8ZGVlcy10aWxlLWF1ZGlvCiAgICAgICAgICBzaXplPSJzbWFsbCIKICAgICAgICAgIHNyYz0iaHR0cHM6Ly93d3cuc291bmRoZWxpeC5jb20vZXhhbXBsZXMvbXAzL1NvdW5kSGVsaXgtU29uZy0xLm1wMyIKICAgICAgICAgIHRpdGxlPSJTbWFsbCIKICAgICAgICAgIGxhYmVsPSJzbWFsbC5tcDMiCiAgICAgICAgPjwvZGVlcy10aWxlLWF1ZGlvPgoKICAgICAgICA8ZGVlcy10aWxlLWF1ZGlvCiAgICAgICAgICBzcmM9Imh0dHBzOi8vd3d3LnNvdW5kaGVsaXguY29tL2V4YW1wbGVzL21wMy9Tb3VuZEhlbGl4LVNvbmctMS5tcDMiCiAgICAgICAgICB0aXRsZT0iRGVmYXVsdCIKICAgICAgICAgIGxhYmVsPSJkZWZhdWx0Lm1wMyIKICAgICAgICA+PC9kZWVzLXRpbGUtYXVkaW8+CgogICAgICAgIDxkZWVzLXRpbGUtYXVkaW8KICAgICAgICAgIHNpemU9ImxhcmdlIgogICAgICAgICAgc3JjPSJodHRwczovL3d3dy5zb3VuZGhlbGl4LmNvbS9leGFtcGxlcy9tcDMvU291bmRIZWxpeC1Tb25nLTEubXAzIgogICAgICAgICAgdGl0bGU9IkxhcmdlIgogICAgICAgICAgbGFiZWw9ImxhcmdlLm1wMyIKICAgICAgICA+PC9kZWVzLXRpbGUtYXVkaW8+CiAgICAgIDwvZGl2PgogICAgPC9kaXY+CiAgPC9kaXY+CmB9KTt2YXIgVTQsc24scjZyLGk2cj1wKCgpPT57eGUoKTtWNCgpO1RjKCk7dDZyKCk7VTQ9ZnVuY3Rpb24oZSx0LHIsaSxhLG4pe2Z1bmN0aW9uIG8oeSl7aWYoeSE9PXZvaWQgMCYmdHlwZW9mIHkhPSJmdW5jdGlvbiIpdGhyb3cgbmV3IFR5cGVFcnJvcigiRnVuY3Rpb24gZXhwZWN0ZWQiKTtyZXR1cm4geX1mb3IodmFyIHM9aS5raW5kLGw9cz09PSJnZXR0ZXIiPyJnZXQiOnM9PT0ic2V0dGVyIj8ic2V0IjoidmFsdWUiLGM9IXQmJmU/aS5zdGF0aWM/ZTplLnByb3RvdHlwZTpudWxsLHU9dHx8KGM/T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihjLGkubmFtZSk6e30pLGQsaD0hMSxmPXIubGVuZ3RoLTE7Zj49MDtmLS0pe3ZhciB4PXt9O2Zvcih2YXIgdiBpbiBpKXhbdl09dj09PSJhY2Nlc3MiP3t9Omlbdl07Zm9yKHZhciB2IGluIGkuYWNjZXNzKXguYWNjZXNzW3ZdPWkuYWNjZXNzW3ZdO3guYWRkSW5pdGlhbGl6ZXI9ZnVuY3Rpb24oeSl7aWYoaCl0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgYWRkIGluaXRpYWxpemVycyBhZnRlciBkZWNvcmF0aW9uIGhhcyBjb21wbGV0ZWQiKTtuLnB1c2gobyh5fHxudWxsKSl9O3ZhciBiPSgwLHJbZl0pKHM9PT0iYWNjZXNzb3IiP3tnZXQ6dS5nZXQsc2V0OnUuc2V0fTp1W2xdLHgpO2lmKHM9PT0iYWNjZXNzb3IiKXtpZihiPT09dm9pZCAwKWNvbnRpbnVlO2lmKGI9PT1udWxsfHx0eXBlb2YgYiE9Im9iamVjdCIpdGhyb3cgbmV3IFR5cGVFcnJvcigiT2JqZWN0IGV4cGVjdGVkIik7KGQ9byhiLmdldCkpJiYodS5nZXQ9ZCksKGQ9byhiLnNldCkpJiYodS5zZXQ9ZCksKGQ9byhiLmluaXQpKSYmYS51bnNoaWZ0KGQpfWVsc2UoZD1vKGIpKSYmKHM9PT0iZmllbGQiP2EudW5zaGlmdChkKTp1W2xdPWQpfWMmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShjLGkubmFtZSx1KSxoPSEwfSxzbj1mdW5jdGlvbihlLHQscil7Zm9yKHZhciBpPWFyZ3VtZW50cy5sZW5ndGg+MixhPTA7YTx0Lmxlbmd0aDthKyspcj1pP3RbYV0uY2FsbChlLHIpOnRbYV0uY2FsbChlKTtyZXR1cm4gaT9yOnZvaWQgMH0scjZyPSgoKT0+e2xldCBlPVt5ZSgiZGVlcy10aWxlLWF1ZGlvIildLHQscj1bXSxpLGE9b24sbixvPVtdLHM9W10sbCxjPVtdLHU9W10sZCxoPVtdLGY9W10seCx2PVtdLGI9W10seSx3PVtdLGs9W10sTyx6PVtdLE09W10sRixEPVtdLE49W107dmFyIFI9Y2xhc3MgZXh0ZW5kcyBhe3N0YXRpY3tpPXRoaXN9c3RhdGlje2xldCBfPXR5cGVvZiBTeW1ib2w9PSJmdW5jdGlvbiImJlN5bWJvbC5tZXRhZGF0YT9PYmplY3QuY3JlYXRlKGFbU3ltYm9sLm1ldGFkYXRhXT8/bnVsbCk6dm9pZCAwO249W2ooe3R5cGU6U3RyaW5nfSldLGw9W2ooe3R5cGU6U3RyaW5nfSldLGQ9W2ooe3R5cGU6U3RyaW5nfSldLHg9W2ZlKCldLHk9W2ZlKCldLE89W2ZlKCldLEY9W2ZlKCldLFU0KHRoaXMsbnVsbCxuLHtraW5kOiJhY2Nlc3NvciIsbmFtZToic3JjIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpTPT4ic3JjImluIFMsZ2V0OlM9PlMuc3JjLHNldDooUywkKT0+e1Muc3JjPSR9fSxtZXRhZGF0YTpffSxvLHMpLFU0KHRoaXMsbnVsbCxsLHtraW5kOiJhY2Nlc3NvciIsbmFtZToidGl0bGUiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOlM9PiJ0aXRsZSJpbiBTLGdldDpTPT5TLnRpdGxlLHNldDooUywkKT0+e1MudGl0bGU9JH19LG1ldGFkYXRhOl99LGMsdSksVTQodGhpcyxudWxsLGQse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJhcnRpc3QiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOlM9PiJhcnRpc3QiaW4gUyxnZXQ6Uz0+Uy5hcnRpc3Qsc2V0OihTLCQpPT57Uy5hcnRpc3Q9JH19LG1ldGFkYXRhOl99LGgsZiksVTQodGhpcyxudWxsLHgse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJkdXJhdGlvbiIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6Uz0+ImR1cmF0aW9uImluIFMsZ2V0OlM9PlMuZHVyYXRpb24sc2V0OihTLCQpPT57Uy5kdXJhdGlvbj0kfX0sbWV0YWRhdGE6X30sdixiKSxVNCh0aGlzLG51bGwseSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6IndhdmVmb3JtRGF0YSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6Uz0+IndhdmVmb3JtRGF0YSJpbiBTLGdldDpTPT5TLndhdmVmb3JtRGF0YSxzZXQ6KFMsJCk9PntTLndhdmVmb3JtRGF0YT0kfX0sbWV0YWRhdGE6X30sdyxrKSxVNCh0aGlzLG51bGwsTyx7a2luZDoiYWNjZXNzb3IiLG5hbWU6IndhdmVmb3JtUmVhZHkiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOlM9PiJ3YXZlZm9ybVJlYWR5ImluIFMsZ2V0OlM9PlMud2F2ZWZvcm1SZWFkeSxzZXQ6KFMsJCk9PntTLndhdmVmb3JtUmVhZHk9JH19LG1ldGFkYXRhOl99LHosTSksVTQodGhpcyxudWxsLEYse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJpc1ByZXZpZXdQbGF5aW5nIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpTPT4iaXNQcmV2aWV3UGxheWluZyJpbiBTLGdldDpTPT5TLmlzUHJldmlld1BsYXlpbmcsc2V0OihTLCQpPT57Uy5pc1ByZXZpZXdQbGF5aW5nPSR9fSxtZXRhZGF0YTpffSxELE4pLFU0KG51bGwsdD17dmFsdWU6aX0sZSx7a2luZDoiY2xhc3MiLG5hbWU6aS5uYW1lLG1ldGFkYXRhOl99LG51bGwsciksUj1pPXQudmFsdWUsXyYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGksU3ltYm9sLm1ldGFkYXRhLHtlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMCx2YWx1ZTpffSl9c3RhdGljIGRlbW89ZTZyO3N0YXRpYyBkZW1vR3JvdXBzPVsiTWVkaWEiXTtzdGF0aWMgc3R5bGVzPVsuLi5GYSxvZWAKICAgICAgLmF1ZGlvLWNvbnRlbnQgewogICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgICB3aWR0aDogMTAwJTsKICAgICAgICBoZWlnaHQ6IDEwMCU7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7CiAgICAgICAgZ2FwOiAxNnB4OwogICAgICAgIGJhY2tncm91bmQ6ICR7bS5iZFRoZW1lKCJsaW5lYXItZ3JhZGllbnQoMTM1ZGVnLCBoc2woMjUwIDQwJSA5NiUpLCBoc2woMjgwIDMwJSA5NCUpKSIsImxpbmVhci1ncmFkaWVudCgxMzVkZWcsIGhzbCgyNTAgMzAlIDE2JSksIGhzbCgyODAgMjUlIDE0JSkpIil9OwogICAgICB9CgogICAgICAubXVzaWMtaWNvbiB7CiAgICAgICAgZm9udC1zaXplOiA0OHB4OwogICAgICAgIGNvbG9yOiAke20uYmRUaGVtZSgiaHNsKDI1MCA2MCUgNjUlKSIsImhzbCgyNTAgNjAlIDcwJSkiKX07CiAgICAgICAgb3BhY2l0eTogMC44OwogICAgICB9CgogICAgICAuYXVkaW8tdGl0bGUgewogICAgICAgIGZvbnQtc2l6ZTogMTJweDsKICAgICAgICBmb250LXdlaWdodDogNjAwOwogICAgICAgIGNvbG9yOiAke20uYmRUaGVtZSgiaHNsKDI1MCAyMCUgMzUlKSIsImhzbCgyNTAgMjAlIDgwJSkiKX07CiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyOwogICAgICAgIHBhZGRpbmc6IDAgMTZweDsKICAgICAgICBtYXgtd2lkdGg6IDEwMCU7CiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpczsKICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwOwogICAgICB9CgogICAgICAuYXVkaW8tYXJ0aXN0IHsKICAgICAgICBmb250LXNpemU6IDExcHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDQwMDsKICAgICAgICBjb2xvcjogJHttLmJkVGhlbWUoImhzbCgyNTAgMTUlIDUwJSkiLCJoc2woMjUwIDE1JSA2NSUpIil9OwogICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjsKICAgICAgICBwYWRkaW5nOiAwIDE2cHg7CiAgICAgICAgbWFyZ2luLXRvcDogLTEycHg7CiAgICAgICAgbWF4LXdpZHRoOiAxMDAlOwogICAgICAgIG92ZXJmbG93OiBoaWRkZW47CiAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7CiAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDsKICAgICAgfQoKICAgICAgLndhdmVmb3JtLWNvbnRhaW5lciB7CiAgICAgICAgd2lkdGg6IGNhbGMoMTAwJSAtIDMycHgpOwogICAgICAgIGhlaWdodDogNDBweDsKICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgICAgfQoKICAgICAgLndhdmVmb3JtLWNvbnRhaW5lciBjYW52YXMgewogICAgICAgIHdpZHRoOiAxMDAlOwogICAgICAgIGhlaWdodDogMTAwJTsKICAgICAgICBkaXNwbGF5OiBibG9jazsKICAgICAgfQoKCiAgICAgIC5wbGF5LW92ZXJsYXkgewogICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgICB0b3A6IDA7CiAgICAgICAgbGVmdDogMDsKICAgICAgICByaWdodDogMDsKICAgICAgICBib3R0b206IDA7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOwogICAgICAgIG9wYWNpdHk6IDA7CiAgICAgICAgdHJhbnNpdGlvbjogb3BhY2l0eSAwLjJzIGVhc2U7CiAgICAgICAgei1pbmRleDogMTg7CiAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7CiAgICAgIH0KCiAgICAgIC50aWxlLWNvbnRhaW5lci5jbGlja2FibGU6aG92ZXIgLnBsYXktb3ZlcmxheSB7CiAgICAgICAgb3BhY2l0eTogMTsKICAgICAgfQoKICAgICAgLnBsYXktY2lyY2xlIHsKICAgICAgICB3aWR0aDogNDhweDsKICAgICAgICBoZWlnaHQ6IDQ4cHg7CiAgICAgICAgYm9yZGVyLXJhZGl1czogNTAlOwogICAgICAgIGJhY2tncm91bmQ6IHJnYmEoMCwgMCwgMCwgMC42KTsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7CiAgICAgICAgYmFja2Ryb3AtZmlsdGVyOiBibHVyKDhweCk7CiAgICAgIH0KCiAgICAgIC5wbGF5LWNpcmNsZSBkZWVzLWljb24gewogICAgICAgIGZvbnQtc2l6ZTogMjBweDsKICAgICAgICBjb2xvcjogd2hpdGU7CiAgICAgIH0KICAgIGBdOyNlPXNuKHRoaXMsbywiIik7Z2V0IHNyYygpe3JldHVybiB0aGlzLiNlfXNldCBzcmMoXyl7dGhpcy4jZT1ffSN0PShzbih0aGlzLHMpLHNuKHRoaXMsYywiIikpO2dldCB0aXRsZSgpe3JldHVybiB0aGlzLiN0fXNldCB0aXRsZShfKXt0aGlzLiN0PV99I3I9KHNuKHRoaXMsdSksc24odGhpcyxoLCIiKSk7Z2V0IGFydGlzdCgpe3JldHVybiB0aGlzLiNyfXNldCBhcnRpc3QoXyl7dGhpcy4jcj1ffSNpPShzbih0aGlzLGYpLHNuKHRoaXMsdiwwKSk7Z2V0IGR1cmF0aW9uKCl7cmV0dXJuIHRoaXMuI2l9c2V0IGR1cmF0aW9uKF8pe3RoaXMuI2k9X30jYT0oc24odGhpcyxiKSxzbih0aGlzLHcsW10pKTtnZXQgd2F2ZWZvcm1EYXRhKCl7cmV0dXJuIHRoaXMuI2F9c2V0IHdhdmVmb3JtRGF0YShfKXt0aGlzLiNhPV99I249KHNuKHRoaXMsayksc24odGhpcyx6LCExKSk7Z2V0IHdhdmVmb3JtUmVhZHkoKXtyZXR1cm4gdGhpcy4jbn1zZXQgd2F2ZWZvcm1SZWFkeShfKXt0aGlzLiNuPV99I289KHNuKHRoaXMsTSksc24odGhpcyxELCExKSk7Z2V0IGlzUHJldmlld1BsYXlpbmcoKXtyZXR1cm4gdGhpcy4jb31zZXQgaXNQcmV2aWV3UGxheWluZyhfKXt0aGlzLiNvPV99YXVkaW9FbGVtZW50PShzbih0aGlzLE4pLG51bGwpO3ByZXZpZXdUaW1lb3V0PW51bGw7aGFzTG9hZGVkV2F2ZWZvcm09ITE7cmVuZGVyVGlsZUNvbnRlbnQoKXtyZXR1cm4gQ2AKICAgICAgPGRpdiBjbGFzcz0iYXVkaW8tY29udGVudCI+CiAgICAgICAgPGRlZXMtaWNvbiBjbGFzcz0ibXVzaWMtaWNvbiIgaWNvbj0ibHVjaWRlOk11c2ljIj48L2RlZXMtaWNvbj4KCiAgICAgICAgJHt0aGlzLnRpdGxlP0NgPGRpdiBjbGFzcz0iYXVkaW8tdGl0bGUiPiR7dGhpcy50aXRsZX08L2Rpdj5gOiIifQogICAgICAgICR7dGhpcy5hcnRpc3Q/Q2A8ZGl2IGNsYXNzPSJhdWRpby1hcnRpc3QiPiR7dGhpcy5hcnRpc3R9PC9kaXY+YDoiIn0KCiAgICAgICAgJHt0aGlzLndhdmVmb3JtUmVhZHk/Q2AKICAgICAgICAgIDxkaXYgY2xhc3M9IndhdmVmb3JtLWNvbnRhaW5lciI+CiAgICAgICAgICAgIDxjYW52YXM+PC9jYW52YXM+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICBgOiIifQogICAgICA8L2Rpdj4KCiAgICAgICR7dGhpcy5kdXJhdGlvbj4wP0NgCiAgICAgICAgPGRpdiBjbGFzcz0idGlsZS1iYWRnZS1jb3JuZXIiPiR7dGhpcy5mb3JtYXRUaW1lKHRoaXMuZHVyYXRpb24pfTwvZGl2PgogICAgICBgOiIifQoKICAgICAgPGRpdiBjbGFzcz0icGxheS1vdmVybGF5Ij4KICAgICAgICA8ZGl2IGNsYXNzPSJwbGF5LWNpcmNsZSI+CiAgICAgICAgICA8ZGVlcy1pY29uIGljb249Imx1Y2lkZTpQbGF5Ij48L2RlZXMtaWNvbj4KICAgICAgICA8L2Rpdj4KICAgICAgPC9kaXY+CgogICAgICAke3RoaXMuY2xpY2thYmxlP0NgCiAgICAgICAgPGRpdiBjbGFzcz0idGlsZS1vdmVybGF5Ij4KICAgICAgICAgIDxkZWVzLWljb24gaWNvbj0ibHVjaWRlOkhlYWRwaG9uZXMiPjwvZGVlcy1pY29uPgogICAgICAgICAgPHNwYW4+UGxheSBBdWRpbzwvc3Bhbj4KICAgICAgICA8L2Rpdj4KICAgICAgYDoiIn0KICAgIGB9Z2V0VGlsZUNsaWNrRGV0YWlsKCl7cmV0dXJue3NyYzp0aGlzLnNyYyx0aXRsZTp0aGlzLnRpdGxlLGFydGlzdDp0aGlzLmFydGlzdCxkdXJhdGlvbjp0aGlzLmR1cmF0aW9ufX1vbkJlY2FtZVZpc2libGUoKXshdGhpcy5oYXNMb2FkZWRXYXZlZm9ybSYmdGhpcy5zcmMmJih0aGlzLmhhc0xvYWRlZFdhdmVmb3JtPSEwLHRoaXMubG9hZEF1ZGlvTWV0YSgpKX1hc3luYyBsb2FkQXVkaW9NZXRhKCl7dGhpcy5sb2FkaW5nPSEwO3RyeXtsZXQgXz1uZXcgQXVkaW87Xy5jcm9zc09yaWdpbj0iYW5vbnltb3VzIixfLnByZWxvYWQ9Im1ldGFkYXRhIixhd2FpdCBuZXcgUHJvbWlzZSgoUywkKT0+e18uYWRkRXZlbnRMaXN0ZW5lcigibG9hZGVkbWV0YWRhdGEiLCgpPT57dGhpcy5kdXJhdGlvbj1fLmR1cmF0aW9uLFMoKX0se29uY2U6ITB9KSxfLmFkZEV2ZW50TGlzdGVuZXIoImVycm9yIiwoKT0+JChuZXcgRXJyb3IoIkZhaWxlZCB0byBsb2FkIGF1ZGlvIikpLHtvbmNlOiEwfSksXy5zcmM9dGhpcy5zcmN9KSxhd2FpdCB0aGlzLmxvYWRXYXZlZm9ybSgpLHRoaXMubG9hZGluZz0hMX1jYXRjaHt0aGlzLmxvYWRpbmc9ITF9fWFzeW5jIGxvYWRXYXZlZm9ybSgpe3RyeXtsZXQgUz1hd2FpdChhd2FpdCBmZXRjaCh0aGlzLnNyYykpLmFycmF5QnVmZmVyKCksJD1uZXcgQXVkaW9Db250ZXh0LEU9KGF3YWl0ICQuZGVjb2RlQXVkaW9EYXRhKFMpKS5nZXRDaGFubmVsRGF0YSgwKSxxPTgwLEI9TWF0aC5mbG9vcihFLmxlbmd0aC9xKSxHPVtdO2ZvcihsZXQgUD0wO1A8cTtQKyspe2xldCBnZT0wO2ZvcihsZXQgd2U9MDt3ZTxCO3dlKyspZ2UrPU1hdGguYWJzKEVbUCpCK3dlXSk7Ry5wdXNoKGdlL0IpfWxldCBlZT1NYXRoLm1heCguLi5HKTt0aGlzLndhdmVmb3JtRGF0YT1HLm1hcChQPT5lZT4wP1AvZWU6MCksdGhpcy53YXZlZm9ybVJlYWR5PSEwLGF3YWl0ICQuY2xvc2UoKSxhd2FpdCB0aGlzLnVwZGF0ZUNvbXBsZXRlLHRoaXMuZHJhd1dhdmVmb3JtKCl9Y2F0Y2h7dGhpcy53YXZlZm9ybVJlYWR5PSExfX1kcmF3V2F2ZWZvcm0oKXtpZighdGhpcy53YXZlZm9ybVJlYWR5KXJldHVybjtsZXQgXz10aGlzLnNoYWRvd1Jvb3Q/LnF1ZXJ5U2VsZWN0b3IoIi53YXZlZm9ybS1jb250YWluZXIgY2FudmFzIik7aWYoIV8pcmV0dXJuO2xldCBTPV8ucGFyZW50RWxlbWVudCwkPXdpbmRvdy5kZXZpY2VQaXhlbFJhdGlvfHwxLFQ9Uy5jbGllbnRXaWR0aCxFPVMuY2xpZW50SGVpZ2h0O18ud2lkdGg9VCokLF8uaGVpZ2h0PUUqJDtsZXQgcT1fLmdldENvbnRleHQoIjJkIik7aWYoIXEpcmV0dXJuO3Euc2NhbGUoJCwkKSxxLmNsZWFyUmVjdCgwLDAsVCxFKTtsZXQgQj10aGlzLndhdmVmb3JtRGF0YS5sZW5ndGg7aWYoQj09PTApcmV0dXJuO2xldCBHPVQvQixQPWRvY3VtZW50LmJvZHkuY2xhc3NMaXN0LmNvbnRhaW5zKCJ0aGVtZS1kYXJrIil8fHdpbmRvdy5tYXRjaE1lZGlhKCIocHJlZmVycy1jb2xvci1zY2hlbWU6IGRhcmspIikubWF0Y2hlcz8iaHNsKDI1MCA1MCUgNjAlKSI6ImhzbCgyNTAgNTAlIDcwJSkiO3EuZmlsbFN0eWxlPVA7Zm9yKGxldCBnZT0wO2dlPEI7Z2UrKyl7bGV0IHdlPXRoaXMud2F2ZWZvcm1EYXRhW2dlXSxJPU1hdGgubWF4KDIsd2UqKEUtNCkpLG5lPWdlKkcsa2U9KEUtSSkvMjtxLmZpbGxSZWN0KG5lKy41LGtlLEctMSxJKX19YXN5bmMgdXBkYXRlZChfKXtzdXBlci51cGRhdGVkKF8pLF8uaGFzKCJzcmMiKSYmdGhpcy5zcmMmJnRoaXMuaXNWaXNpYmxlJiYodGhpcy5oYXNMb2FkZWRXYXZlZm9ybT0hMCx0aGlzLndhdmVmb3JtUmVhZHk9ITEsdGhpcy5kdXJhdGlvbj0wLHRoaXMubG9hZEF1ZGlvTWV0YSgpKSxfLmhhcygid2F2ZWZvcm1SZWFkeSIpJiZ0aGlzLndhdmVmb3JtUmVhZHkmJihhd2FpdCB0aGlzLnVwZGF0ZUNvbXBsZXRlLHRoaXMuZHJhd1dhdmVmb3JtKCkpfWFzeW5jIGRpc2Nvbm5lY3RlZENhbGxiYWNrKCl7YXdhaXQgc3VwZXIuZGlzY29ubmVjdGVkQ2FsbGJhY2soKSx0aGlzLnByZXZpZXdUaW1lb3V0JiZjbGVhclRpbWVvdXQodGhpcy5wcmV2aWV3VGltZW91dCksdGhpcy5hdWRpb0VsZW1lbnQmJih0aGlzLmF1ZGlvRWxlbWVudC5wYXVzZSgpLHRoaXMuYXVkaW9FbGVtZW50LnNyYz0iIix0aGlzLmF1ZGlvRWxlbWVudD1udWxsKX1mb3JtYXRUaW1lKF8pe2lmKCFpc0Zpbml0ZShfKXx8XzwwKXJldHVybiIwOjAwIjtsZXQgUz1NYXRoLmZsb29yKF8vNjApLCQ9TWF0aC5mbG9vcihfJTYwKTtyZXR1cm5gJHtTfTokeyQudG9TdHJpbmcoKS5wYWRTdGFydCgyLCIwIil9YH1zdGF0aWN7c24oaSxyKX19O3JldHVybiBSPWl9KSgpfSk7dmFyIGE2cj1wKCgpPT57aTZyKCl9KTt2YXIgbjZyLG82cj1wKCgpPT57eGUoKTtuNnI9KCk9PkNgCiAgPHN0eWxlPgogICAgLmRlbW8tY29udGFpbmVyIHsKICAgICAgcGFkZGluZzogNDBweDsKICAgICAgYmFja2dyb3VuZDogI2Y1ZjVmNTsKICAgIH0KICAgIC5kZW1vLXNlY3Rpb24gewogICAgICBtYXJnaW4tYm90dG9tOiA2MHB4OwogICAgfQogICAgaDMgewogICAgICBtYXJnaW4tYm90dG9tOiAyMHB4OwogICAgICBmb250LXNpemU6IDE4cHg7CiAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7CiAgICB9CiAgICAudGlsZS1yb3cgewogICAgICBkaXNwbGF5OiBmbGV4OwogICAgICBnYXA6IDI0cHg7CiAgICAgIGZsZXgtd3JhcDogd3JhcDsKICAgICAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7CiAgICB9CiAgPC9zdHlsZT4KCiAgPGRpdiBjbGFzcz0iZGVtby1jb250YWluZXIiPgogICAgPGRpdiBjbGFzcz0iZGVtby1zZWN0aW9uIj4KICAgICAgPGgzPlZpZGVvIFRpbGVzPC9oMz4KICAgICAgPGRpdiBjbGFzcz0idGlsZS1yb3ciPgogICAgICAgIDxkZWVzLXRpbGUtdmlkZW8KICAgICAgICAgIHNyYz0iaHR0cHM6Ly93d3cudzNzY2hvb2xzLmNvbS9odG1sL21vdl9iYmIubXA0IgogICAgICAgICAgbGFiZWw9ImJ1bm55Lm1wNCIKICAgICAgICAgIEB0aWxlLWNsaWNrPSR7ZT0+Y29uc29sZS5sb2coIlZpZGVvIGNsaWNrZWQ6IixlLmRldGFpbCl9CiAgICAgICAgPjwvZGVlcy10aWxlLXZpZGVvPgoKICAgICAgICA8ZGVlcy10aWxlLXZpZGVvCiAgICAgICAgICBzcmM9Imh0dHBzOi8vd3d3Lnczc2Nob29scy5jb20vaHRtbC9tb3ZpZS5tcDQiCiAgICAgICAgICBwb3N0ZXI9Imh0dHBzOi8vcGljc3VtLnBob3Rvcy80MDAvMzAwIgogICAgICAgICAgbGFiZWw9Im1vdmllLm1wNCIKICAgICAgICA+PC9kZWVzLXRpbGUtdmlkZW8+CgogICAgICAgIDxkZWVzLXRpbGUtdmlkZW8KICAgICAgICAgIHNyYz0iaHR0cHM6Ly93d3cudzNzY2hvb2xzLmNvbS9odG1sL21vdl9iYmIubXA0IgogICAgICAgICAgbGFiZWw9ImFub3RoZXItdmlkZW8ubXA0IgogICAgICAgID48L2RlZXMtdGlsZS12aWRlbz4KICAgICAgPC9kaXY+CiAgICA8L2Rpdj4KCiAgICA8ZGl2IGNsYXNzPSJkZW1vLXNlY3Rpb24iPgogICAgICA8aDM+U2l6ZSBWYXJpYW50czwvaDM+CiAgICAgIDxkaXYgY2xhc3M9InRpbGUtcm93Ij4KICAgICAgICA8ZGVlcy10aWxlLXZpZGVvCiAgICAgICAgICBzaXplPSJzbWFsbCIKICAgICAgICAgIHNyYz0iaHR0cHM6Ly93d3cudzNzY2hvb2xzLmNvbS9odG1sL21vdl9iYmIubXA0IgogICAgICAgICAgbGFiZWw9InNtYWxsLm1wNCIKICAgICAgICA+PC9kZWVzLXRpbGUtdmlkZW8+CgogICAgICAgIDxkZWVzLXRpbGUtdmlkZW8KICAgICAgICAgIHNyYz0iaHR0cHM6Ly93d3cudzNzY2hvb2xzLmNvbS9odG1sL21vdl9iYmIubXA0IgogICAgICAgICAgbGFiZWw9ImRlZmF1bHQubXA0IgogICAgICAgID48L2RlZXMtdGlsZS12aWRlbz4KCiAgICAgICAgPGRlZXMtdGlsZS12aWRlbwogICAgICAgICAgc2l6ZT0ibGFyZ2UiCiAgICAgICAgICBzcmM9Imh0dHBzOi8vd3d3Lnczc2Nob29scy5jb20vaHRtbC9tb3ZfYmJiLm1wNCIKICAgICAgICAgIGxhYmVsPSJsYXJnZS5tcDQiCiAgICAgICAgPjwvZGVlcy10aWxlLXZpZGVvPgogICAgICA8L2Rpdj4KICAgIDwvZGl2PgoKICAgIDxkaXYgY2xhc3M9ImRlbW8tc2VjdGlvbiI+CiAgICAgIDxoMz5XaXRoIFBvc3RlciBJbWFnZTwvaDM+CiAgICAgIDxkZWVzLXRpbGUtdmlkZW8KICAgICAgICBzcmM9Imh0dHBzOi8vd3d3Lnczc2Nob29scy5jb20vaHRtbC9tb3ZpZS5tcDQiCiAgICAgICAgcG9zdGVyPSJodHRwczovL3BpY3N1bS5waG90b3MvNjAwLzQwMCIKICAgICAgICBsYWJlbD0icG9zdGVyLXZpZGVvLm1wNCIKICAgICAgPjwvZGVlcy10aWxlLXZpZGVvPgogICAgPC9kaXY+CiAgPC9kaXY+CmB9KTt2YXIgaGgsTjIsczZyLGw2cj1wKCgpPT57eGUoKTtWNCgpO1RjKCk7bzZyKCk7aGg9ZnVuY3Rpb24oZSx0LHIsaSxhLG4pe2Z1bmN0aW9uIG8oeSl7aWYoeSE9PXZvaWQgMCYmdHlwZW9mIHkhPSJmdW5jdGlvbiIpdGhyb3cgbmV3IFR5cGVFcnJvcigiRnVuY3Rpb24gZXhwZWN0ZWQiKTtyZXR1cm4geX1mb3IodmFyIHM9aS5raW5kLGw9cz09PSJnZXR0ZXIiPyJnZXQiOnM9PT0ic2V0dGVyIj8ic2V0IjoidmFsdWUiLGM9IXQmJmU/aS5zdGF0aWM/ZTplLnByb3RvdHlwZTpudWxsLHU9dHx8KGM/T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihjLGkubmFtZSk6e30pLGQsaD0hMSxmPXIubGVuZ3RoLTE7Zj49MDtmLS0pe3ZhciB4PXt9O2Zvcih2YXIgdiBpbiBpKXhbdl09dj09PSJhY2Nlc3MiP3t9Omlbdl07Zm9yKHZhciB2IGluIGkuYWNjZXNzKXguYWNjZXNzW3ZdPWkuYWNjZXNzW3ZdO3guYWRkSW5pdGlhbGl6ZXI9ZnVuY3Rpb24oeSl7aWYoaCl0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgYWRkIGluaXRpYWxpemVycyBhZnRlciBkZWNvcmF0aW9uIGhhcyBjb21wbGV0ZWQiKTtuLnB1c2gobyh5fHxudWxsKSl9O3ZhciBiPSgwLHJbZl0pKHM9PT0iYWNjZXNzb3IiP3tnZXQ6dS5nZXQsc2V0OnUuc2V0fTp1W2xdLHgpO2lmKHM9PT0iYWNjZXNzb3IiKXtpZihiPT09dm9pZCAwKWNvbnRpbnVlO2lmKGI9PT1udWxsfHx0eXBlb2YgYiE9Im9iamVjdCIpdGhyb3cgbmV3IFR5cGVFcnJvcigiT2JqZWN0IGV4cGVjdGVkIik7KGQ9byhiLmdldCkpJiYodS5nZXQ9ZCksKGQ9byhiLnNldCkpJiYodS5zZXQ9ZCksKGQ9byhiLmluaXQpKSYmYS51bnNoaWZ0KGQpfWVsc2UoZD1vKGIpKSYmKHM9PT0iZmllbGQiP2EudW5zaGlmdChkKTp1W2xdPWQpfWMmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShjLGkubmFtZSx1KSxoPSEwfSxOMj1mdW5jdGlvbihlLHQscil7Zm9yKHZhciBpPWFyZ3VtZW50cy5sZW5ndGg+MixhPTA7YTx0Lmxlbmd0aDthKyspcj1pP3RbYV0uY2FsbChlLHIpOnRbYV0uY2FsbChlKTtyZXR1cm4gaT9yOnZvaWQgMH0sczZyPSgoKT0+e2xldCBlPVt5ZSgiZGVlcy10aWxlLXZpZGVvIildLHQscj1bXSxpLGE9b24sbixvPVtdLHM9W10sbCxjPVtdLHU9W10sZCxoPVtdLGY9W10seCx2PVtdLGI9W10seSx3PVtdLGs9W107dmFyIE89Y2xhc3MgZXh0ZW5kcyBhe3N0YXRpY3tpPXRoaXN9c3RhdGlje2xldCB6PXR5cGVvZiBTeW1ib2w9PSJmdW5jdGlvbiImJlN5bWJvbC5tZXRhZGF0YT9PYmplY3QuY3JlYXRlKGFbU3ltYm9sLm1ldGFkYXRhXT8/bnVsbCk6dm9pZCAwO249W2ooe3R5cGU6U3RyaW5nfSldLGw9W2ooe3R5cGU6U3RyaW5nfSldLGQ9W2ZlKCldLHg9W2ZlKCldLHk9W2ZlKCldLGhoKHRoaXMsbnVsbCxuLHtraW5kOiJhY2Nlc3NvciIsbmFtZToic3JjIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpNPT4ic3JjImluIE0sZ2V0Ok09Pk0uc3JjLHNldDooTSxGKT0+e00uc3JjPUZ9fSxtZXRhZGF0YTp6fSxvLHMpLGhoKHRoaXMsbnVsbCxsLHtraW5kOiJhY2Nlc3NvciIsbmFtZToicG9zdGVyIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpNPT4icG9zdGVyImluIE0sZ2V0Ok09Pk0ucG9zdGVyLHNldDooTSxGKT0+e00ucG9zdGVyPUZ9fSxtZXRhZGF0YTp6fSxjLHUpLGhoKHRoaXMsbnVsbCxkLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiZHVyYXRpb24iLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOk09PiJkdXJhdGlvbiJpbiBNLGdldDpNPT5NLmR1cmF0aW9uLHNldDooTSxGKT0+e00uZHVyYXRpb249Rn19LG1ldGFkYXRhOnp9LGgsZiksaGgodGhpcyxudWxsLHgse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJ0aHVtYm5haWxDYXB0dXJlZCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6TT0+InRodW1ibmFpbENhcHR1cmVkImluIE0sZ2V0Ok09Pk0udGh1bWJuYWlsQ2FwdHVyZWQsc2V0OihNLEYpPT57TS50aHVtYm5haWxDYXB0dXJlZD1GfX0sbWV0YWRhdGE6en0sdixiKSxoaCh0aGlzLG51bGwseSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImlzSG92ZXJpbmciLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOk09PiJpc0hvdmVyaW5nImluIE0sZ2V0Ok09Pk0uaXNIb3ZlcmluZyxzZXQ6KE0sRik9PntNLmlzSG92ZXJpbmc9Rn19LG1ldGFkYXRhOnp9LHcsayksaGgobnVsbCx0PXt2YWx1ZTppfSxlLHtraW5kOiJjbGFzcyIsbmFtZTppLm5hbWUsbWV0YWRhdGE6en0sbnVsbCxyKSxPPWk9dC52YWx1ZSx6JiZPYmplY3QuZGVmaW5lUHJvcGVydHkoaSxTeW1ib2wubWV0YWRhdGEse2VudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwLHZhbHVlOnp9KX1zdGF0aWMgZGVtbz1uNnI7c3RhdGljIGRlbW9Hcm91cHM9WyJNZWRpYSJdO3N0YXRpYyBzdHlsZXM9Wy4uLkZhLG9lYAogICAgICAudmlkZW8td3JhcHBlciB7CiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICAgIHdpZHRoOiAxMDAlOwogICAgICAgIGhlaWdodDogMTAwJTsKICAgICAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgICAgIGJhY2tncm91bmQ6ICMwMDA7CiAgICAgIH0KCiAgICAgIC52aWRlby13cmFwcGVyIHZpZGVvIHsKICAgICAgICB3aWR0aDogMTAwJTsKICAgICAgICBoZWlnaHQ6IDEwMCU7CiAgICAgICAgb2JqZWN0LWZpdDogY292ZXI7CiAgICAgICAgZGlzcGxheTogYmxvY2s7CiAgICAgIH0KCiAgICAgIC52aWRlby13cmFwcGVyIGNhbnZhcyB7CiAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgICAgaGVpZ2h0OiAxMDAlOwogICAgICAgIG9iamVjdC1maXQ6IGNvdmVyOwogICAgICAgIGRpc3BsYXk6IGJsb2NrOwogICAgICB9CgogICAgICAucG9zdGVyLWltYWdlIHsKICAgICAgICB3aWR0aDogMTAwJTsKICAgICAgICBoZWlnaHQ6IDEwMCU7CiAgICAgICAgb2JqZWN0LWZpdDogY292ZXI7CiAgICAgICAgZGlzcGxheTogYmxvY2s7CiAgICAgIH0KCgogICAgICAucGxheS1vdmVybGF5IHsKICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgICAgdG9wOiA1MCU7CiAgICAgICAgbGVmdDogNTAlOwogICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUsIC01MCUpOwogICAgICAgIHdpZHRoOiA0OHB4OwogICAgICAgIGhlaWdodDogNDhweDsKICAgICAgICBib3JkZXItcmFkaXVzOiA1MCU7CiAgICAgICAgYmFja2dyb3VuZDogcmdiYSgwLCAwLCAwLCAwLjYpOwogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKICAgICAgICB6LWluZGV4OiAxNTsKICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTsKICAgICAgICB0cmFuc2l0aW9uOiBvcGFjaXR5IDAuMnMgZWFzZTsKICAgICAgfQoKICAgICAgLnBsYXktb3ZlcmxheSBkZWVzLWljb24gewogICAgICAgIGZvbnQtc2l6ZTogMjBweDsKICAgICAgICBjb2xvcjogd2hpdGU7CiAgICAgIH0KCiAgICAgIC50aWxlLWNvbnRhaW5lci5jbGlja2FibGU6aG92ZXIgLnBsYXktb3ZlcmxheSB7CiAgICAgICAgb3BhY2l0eTogMDsKICAgICAgfQoKICAgICAgLnZpZGVvLWhvdmVyLXByZXZpZXcgewogICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgICB0b3A6IDA7CiAgICAgICAgbGVmdDogMDsKICAgICAgICB3aWR0aDogMTAwJTsKICAgICAgICBoZWlnaHQ6IDEwMCU7CiAgICAgICAgb2JqZWN0LWZpdDogY292ZXI7CiAgICAgICAgei1pbmRleDogNTsKICAgICAgICBvcGFjaXR5OiAwOwogICAgICAgIHRyYW5zaXRpb246IG9wYWNpdHkgMC4zcyBlYXNlOwogICAgICB9CgogICAgICAudmlkZW8taG92ZXItcHJldmlldy5hY3RpdmUgewogICAgICAgIG9wYWNpdHk6IDE7CiAgICAgIH0KICAgIGBdOyNlPU4yKHRoaXMsbywiIik7Z2V0IHNyYygpe3JldHVybiB0aGlzLiNlfXNldCBzcmMoeil7dGhpcy4jZT16fSN0PShOMih0aGlzLHMpLE4yKHRoaXMsYywiIikpO2dldCBwb3N0ZXIoKXtyZXR1cm4gdGhpcy4jdH1zZXQgcG9zdGVyKHope3RoaXMuI3Q9en0jcj0oTjIodGhpcyx1KSxOMih0aGlzLGgsMCkpO2dldCBkdXJhdGlvbigpe3JldHVybiB0aGlzLiNyfXNldCBkdXJhdGlvbih6KXt0aGlzLiNyPXp9I2k9KE4yKHRoaXMsZiksTjIodGhpcyx2LCExKSk7Z2V0IHRodW1ibmFpbENhcHR1cmVkKCl7cmV0dXJuIHRoaXMuI2l9c2V0IHRodW1ibmFpbENhcHR1cmVkKHope3RoaXMuI2k9en0jYT0oTjIodGhpcyxiKSxOMih0aGlzLHcsITEpKTtnZXQgaXNIb3ZlcmluZygpe3JldHVybiB0aGlzLiNhfXNldCBpc0hvdmVyaW5nKHope3RoaXMuI2E9en10aHVtYm5haWxDYW52YXM9KE4yKHRoaXMsayksbnVsbCk7aG92ZXJWaWRlbz1udWxsO2hhc1N0YXJ0ZWRMb2FkaW5nPSExO3JlbmRlclRpbGVDb250ZW50KCl7cmV0dXJuIENgCiAgICAgIDxkaXYgY2xhc3M9InZpZGVvLXdyYXBwZXIiPgogICAgICAgICR7dGhpcy5wb3N0ZXI/Q2AKICAgICAgICAgIDxpbWcgY2xhc3M9InBvc3Rlci1pbWFnZSIgc3JjPSIke3RoaXMucG9zdGVyfSIgYWx0PSIiIC8+CiAgICAgICAgYDp0aGlzLnRodW1ibmFpbENhcHR1cmVkP0NgCiAgICAgICAgICA8Y2FudmFzPjwvY2FudmFzPgogICAgICAgIGA6Q2AKICAgICAgICAgIDxkaXYgc3R5bGU9IndpZHRoOiAxMDAlOyBoZWlnaHQ6IDEwMCU7IGJhY2tncm91bmQ6ICMwMDA7Ij48L2Rpdj4KICAgICAgICBgfQoKICAgICAgICAke3RoaXMuaXNIb3ZlcmluZyYmdGhpcy5zcmM/Q2AKICAgICAgICAgIDx2aWRlbwogICAgICAgICAgICBjbGFzcz0idmlkZW8taG92ZXItcHJldmlldyAke3RoaXMuaXNIb3ZlcmluZz8iYWN0aXZlIjoiIn0iCiAgICAgICAgICAgIC5zcmM9JHt0aGlzLnNyY30KICAgICAgICAgICAgbXV0ZWQKICAgICAgICAgICAgcGxheXNpbmxpbmUKICAgICAgICAgICAgQGxvYWRlZGRhdGE9JHt0aGlzLmhhbmRsZUhvdmVyVmlkZW9Mb2FkZWR9CiAgICAgICAgICA+PC92aWRlbz4KICAgICAgICBgOiIifQogICAgICA8L2Rpdj4KCiAgICAgICR7dGhpcy5kdXJhdGlvbj4wP0NgCiAgICAgICAgPGRpdiBjbGFzcz0idGlsZS1iYWRnZS1jb3JuZXIiPiR7dGhpcy5mb3JtYXRUaW1lKHRoaXMuZHVyYXRpb24pfTwvZGl2PgogICAgICBgOiIifQoKICAgICAgJHt0aGlzLmlzSG92ZXJpbmc/IiI6Q2AKICAgICAgICA8ZGl2IGNsYXNzPSJwbGF5LW92ZXJsYXkiPgogICAgICAgICAgPGRlZXMtaWNvbiBpY29uPSJsdWNpZGU6UGxheSI+PC9kZWVzLWljb24+CiAgICAgICAgPC9kaXY+CiAgICAgIGB9CgogICAgICAke3RoaXMuY2xpY2thYmxlP0NgCiAgICAgICAgPGRpdiBjbGFzcz0idGlsZS1vdmVybGF5Ij4KICAgICAgICAgIDxkZWVzLWljb24gaWNvbj0ibHVjaWRlOlBsYXkiPjwvZGVlcy1pY29uPgogICAgICAgICAgPHNwYW4+UGxheSBWaWRlbzwvc3Bhbj4KICAgICAgICA8L2Rpdj4KICAgICAgYDoiIn0KICAgIGB9Z2V0VGlsZUNsaWNrRGV0YWlsKCl7cmV0dXJue3NyYzp0aGlzLnNyYyxwb3N0ZXI6dGhpcy5wb3N0ZXIsZHVyYXRpb246dGhpcy5kdXJhdGlvbn19b25CZWNhbWVWaXNpYmxlKCl7IXRoaXMuaGFzU3RhcnRlZExvYWRpbmcmJnRoaXMuc3JjJiYodGhpcy5oYXNTdGFydGVkTG9hZGluZz0hMCx0aGlzLmNhcHR1cmVGaXJzdEZyYW1lKCkpfWFzeW5jIGNhcHR1cmVGaXJzdEZyYW1lKCl7aWYodGhpcy5wb3N0ZXIpe3RoaXMubG9hZER1cmF0aW9uKCk7cmV0dXJufXRoaXMubG9hZGluZz0hMDt0cnl7bGV0IHo9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgidmlkZW8iKTt6LmNyb3NzT3JpZ2luPSJhbm9ueW1vdXMiLHoubXV0ZWQ9ITAsei5wcmVsb2FkPSJtZXRhZGF0YSIsYXdhaXQgbmV3IFByb21pc2UoKE0sRik9Pnt6LmFkZEV2ZW50TGlzdGVuZXIoImxvYWRlZGRhdGEiLCgpPT57dGhpcy5kdXJhdGlvbj16LmR1cmF0aW9uLHouY3VycmVudFRpbWU9LjEsei5hZGRFdmVudExpc3RlbmVyKCJzZWVrZWQiLCgpPT57bGV0IEQ9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiY2FudmFzIik7RC53aWR0aD16LnZpZGVvV2lkdGgsRC5oZWlnaHQ9ei52aWRlb0hlaWdodDtsZXQgTj1ELmdldENvbnRleHQoIjJkIik7TiYmKE4uZHJhd0ltYWdlKHosMCwwKSx0aGlzLnRodW1ibmFpbENhbnZhcz1ELHRoaXMudGh1bWJuYWlsQ2FwdHVyZWQ9ITApLHouc3JjPSIiLHoubG9hZCgpLE0oKX0se29uY2U6ITB9KX0se29uY2U6ITB9KSx6LmFkZEV2ZW50TGlzdGVuZXIoImVycm9yIiwoKT0+RihuZXcgRXJyb3IoIkZhaWxlZCB0byBsb2FkIHZpZGVvIikpLHtvbmNlOiEwfSksei5zcmM9dGhpcy5zcmN9KSx0aGlzLmxvYWRpbmc9ITEsYXdhaXQgdGhpcy51cGRhdGVDb21wbGV0ZSx0aGlzLmNvcHlUaHVtYm5haWxUb0NhbnZhcygpfWNhdGNoe3RoaXMubG9hZGluZz0hMSx0aGlzLmxvYWREdXJhdGlvbigpfX1sb2FkRHVyYXRpb24oKXtsZXQgej1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJ2aWRlbyIpO3oucHJlbG9hZD0ibWV0YWRhdGEiLHouYWRkRXZlbnRMaXN0ZW5lcigibG9hZGVkbWV0YWRhdGEiLCgpPT57dGhpcy5kdXJhdGlvbj16LmR1cmF0aW9uLHouc3JjPSIiLHoubG9hZCgpfSksei5zcmM9dGhpcy5zcmN9Y29weVRodW1ibmFpbFRvQ2FudmFzKCl7aWYoIXRoaXMudGh1bWJuYWlsQ2FudmFzKXJldHVybjtsZXQgej10aGlzLnNoYWRvd1Jvb3Q/LnF1ZXJ5U2VsZWN0b3IoIi52aWRlby13cmFwcGVyIGNhbnZhcyIpO2lmKCF6KXJldHVybjt6LndpZHRoPXRoaXMudGh1bWJuYWlsQ2FudmFzLndpZHRoLHouaGVpZ2h0PXRoaXMudGh1bWJuYWlsQ2FudmFzLmhlaWdodDtsZXQgTT16LmdldENvbnRleHQoIjJkIik7TSYmTS5kcmF3SW1hZ2UodGhpcy50aHVtYm5haWxDYW52YXMsMCwwKX1vblRpbGVNb3VzZUVudGVyKCl7dGhpcy5pc0hvdmVyaW5nPSEwfW9uVGlsZU1vdXNlTGVhdmUoKXt0aGlzLmlzSG92ZXJpbmc9ITEsdGhpcy5ob3ZlclZpZGVvPW51bGx9aGFuZGxlSG92ZXJWaWRlb0xvYWRlZCh6KXt0aGlzLmhvdmVyVmlkZW89ei50YXJnZXQsdGhpcy5ob3ZlclZpZGVvLnBsYXkoKS5jYXRjaCgoKT0+e30pfWFzeW5jIHVwZGF0ZWQoeil7c3VwZXIudXBkYXRlZCh6KSx6Lmhhcygic3JjIikmJnRoaXMuc3JjJiZ0aGlzLmlzVmlzaWJsZSYmKHRoaXMuaGFzU3RhcnRlZExvYWRpbmc9ITAsdGhpcy50aHVtYm5haWxDYXB0dXJlZD0hMSx0aGlzLmR1cmF0aW9uPTAsdGhpcy5jYXB0dXJlRmlyc3RGcmFtZSgpKSx6LmhhcygidGh1bWJuYWlsQ2FwdHVyZWQiKSYmdGhpcy50aHVtYm5haWxDYXB0dXJlZCYmKGF3YWl0IHRoaXMudXBkYXRlQ29tcGxldGUsdGhpcy5jb3B5VGh1bWJuYWlsVG9DYW52YXMoKSl9YXN5bmMgZGlzY29ubmVjdGVkQ2FsbGJhY2soKXthd2FpdCBzdXBlci5kaXNjb25uZWN0ZWRDYWxsYmFjaygpLHRoaXMuaG92ZXJWaWRlbyYmKHRoaXMuaG92ZXJWaWRlby5wYXVzZSgpLHRoaXMuaG92ZXJWaWRlby5zcmM9IiIsdGhpcy5ob3ZlclZpZGVvPW51bGwpLHRoaXMudGh1bWJuYWlsQ2FudmFzPW51bGx9Zm9ybWF0VGltZSh6KXtpZighaXNGaW5pdGUoeil8fHo8MClyZXR1cm4iMDowMCI7bGV0IE09TWF0aC5mbG9vcih6LzYwKSxGPU1hdGguZmxvb3IoeiU2MCk7cmV0dXJuYCR7TX06JHtGLnRvU3RyaW5nKCkucGFkU3RhcnQoMiwiMCIpfWB9c3RhdGlje04yKGkscil9fTtyZXR1cm4gTz1pfSkoKX0pO3ZhciBjNnI9cCgoKT0+e2w2cigpfSk7dmFyIGQ2cix1NnI9cCgoKT0+e3hlKCk7ZDZyPSgpPT57bGV0IGU9YGltcG9ydCB7IGh0bWwgfSBmcm9tICdsaXQnOwoKZXhwb3J0IGNsYXNzIE15Q29tcG9uZW50IHsKICBwcml2YXRlIGl0ZW1zOiBzdHJpbmdbXSA9IFtdOwoKICByZW5kZXIoKSB7CiAgICByZXR1cm4gaHRtbFxgCiAgICAgIDxkaXYgY2xhc3M9ImNvbnRhaW5lciI+CiAgICAgICAgXCR7dGhpcy5pdGVtcy5tYXAoaXRlbSA9PiBodG1sXGAKICAgICAgICAgIDxzcGFuPlwke2l0ZW19PC9zcGFuPgogICAgICAgIFxgKX0KICAgICAgPC9kaXY+CiAgICBcYDsKICB9Cn1gLHQ9YE1lZXRpbmcgTm90ZXMgLSBRNCBQbGFubmluZwpEYXRlOiBKYW51YXJ5IDE1LCAyMDI2CkF0dGVuZGVlczogQWxpY2UsIEJvYiwgQ2hhcmxpZQoKS2V5IERlY2lzaW9uczoKMS4gTGF1bmNoIG5ldyBmZWF0dXJlIGJ5IE1hcmNoCjIuIEhpcmUgMiBtb3JlIGVuZ2luZWVycwozLiBNaWdyYXRlIHRvIG5ldyBDSS9DRCBwaXBlbGluZQo0LiBVcGRhdGUgZGVzaWduIHN5c3RlbSB0byB2MwoKQWN0aW9uIEl0ZW1zOgotIEFsaWNlOiBEcmFmdCBQUkQgYnkgbmV4dCB3ZWVrCi0gQm9iOiBTZXQgdXAgaW50ZXJ2aWV3IHBpcGVsaW5lCi0gQ2hhcmxpZTogRXZhbHVhdGUgSmVua2lucyB2cyBHaXRIdWIgQWN0aW9uc2A7cmV0dXJuIENgCiAgICA8c3R5bGU+CiAgICAgIC5kZW1vLWNvbnRhaW5lciB7CiAgICAgICAgcGFkZGluZzogNDBweDsKICAgICAgICBiYWNrZ3JvdW5kOiAjZjVmNWY1OwogICAgICB9CiAgICAgIC5kZW1vLXNlY3Rpb24gewogICAgICAgIG1hcmdpbi1ib3R0b206IDYwcHg7CiAgICAgIH0KICAgICAgaDMgewogICAgICAgIG1hcmdpbi1ib3R0b206IDIwcHg7CiAgICAgICAgZm9udC1zaXplOiAxOHB4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7CiAgICAgIH0KICAgICAgLnRpbGUtcm93IHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGdhcDogMjRweDsKICAgICAgICBmbGV4LXdyYXA6IHdyYXA7CiAgICAgICAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7CiAgICAgIH0KICAgIDwvc3R5bGU+CgogICAgPGRpdiBjbGFzcz0iZGVtby1jb250YWluZXIiPgogICAgICA8ZGl2IGNsYXNzPSJkZW1vLXNlY3Rpb24iPgogICAgICAgIDxoMz5Ob3RlIFRpbGVzPC9oMz4KICAgICAgICA8ZGl2IGNsYXNzPSJ0aWxlLXJvdyI+CiAgICAgICAgICA8ZGVlcy10aWxlLW5vdGUKICAgICAgICAgICAgdGl0bGU9ImNvbXBvbmVudC50cyIKICAgICAgICAgICAgLmNvbnRlbnQ9JHtlfQogICAgICAgICAgICBsYW5ndWFnZT0idHlwZXNjcmlwdCIKICAgICAgICAgICAgbGFiZWw9ImNvbXBvbmVudC50cyIKICAgICAgICAgICAgQHRpbGUtY2xpY2s9JHtpPT5jb25zb2xlLmxvZygiTm90ZSBjbGlja2VkOiIsaS5kZXRhaWwpfQogICAgICAgICAgPjwvZGVlcy10aWxlLW5vdGU+CgogICAgICAgICAgPGRlZXMtdGlsZS1ub3RlCiAgICAgICAgICAgIHRpdGxlPSJNZWV0aW5nIE5vdGVzIgogICAgICAgICAgICAuY29udGVudD0ke3R9CiAgICAgICAgICAgIGxhYmVsPSJtZWV0aW5nLW5vdGVzLnR4dCIKICAgICAgICAgID48L2RlZXMtdGlsZS1ub3RlPgoKICAgICAgICAgIDxkZWVzLXRpbGUtbm90ZQogICAgICAgICAgICB0aXRsZT0icGFja2FnZS5qc29uIgogICAgICAgICAgICAuY29udGVudD0ke2B7CiAgIm5hbWUiOiAiQGRlc2lnbi5lc3RhdGUvZGVlcy1jYXRhbG9nIiwKICAidmVyc2lvbiI6ICIzLjM4LjAiLAogICJkZXNjcmlwdGlvbiI6ICJEZXNpZ24gY29tcG9uZW50IGNhdGFsb2ciLAogICJkZXBlbmRlbmNpZXMiOiB7CiAgICAiQGRlc2lnbi5lc3RhdGUvZGVlcy1lbGVtZW50IjogIl4yLjAuMCIsCiAgICAibGl0IjogIl4zLjEuMCIKICB9LAogICJzY3JpcHRzIjogewogICAgImJ1aWxkIjogInRzYnVpbGQiLAogICAgInRlc3QiOiAidHN0ZXN0IgogIH0KfWB9CiAgICAgICAgICAgIGxhbmd1YWdlPSJqc29uIgogICAgICAgICAgICBsYWJlbD0icGFja2FnZS5qc29uIgogICAgICAgICAgPjwvZGVlcy10aWxlLW5vdGU+CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGl2PgoKICAgICAgPGRpdiBjbGFzcz0iZGVtby1zZWN0aW9uIj4KICAgICAgICA8aDM+U2l6ZSBWYXJpYW50czwvaDM+CiAgICAgICAgPGRpdiBjbGFzcz0idGlsZS1yb3ciPgogICAgICAgICAgPGRlZXMtdGlsZS1ub3RlCiAgICAgICAgICAgIHNpemU9InNtYWxsIgogICAgICAgICAgICB0aXRsZT0ic21hbGwudHMiCiAgICAgICAgICAgIC5jb250ZW50PSR7ZX0KICAgICAgICAgICAgbGFuZ3VhZ2U9InRzIgogICAgICAgICAgICBsYWJlbD0ic21hbGwudHMiCiAgICAgICAgICA+PC9kZWVzLXRpbGUtbm90ZT4KCiAgICAgICAgICA8ZGVlcy10aWxlLW5vdGUKICAgICAgICAgICAgdGl0bGU9ImRlZmF1bHQudHMiCiAgICAgICAgICAgIC5jb250ZW50PSR7ZX0KICAgICAgICAgICAgbGFuZ3VhZ2U9InRzIgogICAgICAgICAgICBsYWJlbD0iZGVmYXVsdC50cyIKICAgICAgICAgID48L2RlZXMtdGlsZS1ub3RlPgoKICAgICAgICAgIDxkZWVzLXRpbGUtbm90ZQogICAgICAgICAgICBzaXplPSJsYXJnZSIKICAgICAgICAgICAgdGl0bGU9ImxhcmdlLnRzIgogICAgICAgICAgICAuY29udGVudD0ke2V9CiAgICAgICAgICAgIGxhbmd1YWdlPSJ0cyIKICAgICAgICAgICAgbGFiZWw9ImxhcmdlLnRzIgogICAgICAgICAgPjwvZGVlcy10aWxlLW5vdGU+CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGl2PgoKICAgICAgPGRpdiBjbGFzcz0iZGVtby1zZWN0aW9uIj4KICAgICAgICA8aDM+V2l0aG91dCBUaXRsZTwvaDM+CiAgICAgICAgPGRlZXMtdGlsZS1ub3RlCiAgICAgICAgICAuY29udGVudD0ke3R9CiAgICAgICAgICBsYWJlbD0idW50aXRsZWQudHh0IgogICAgICAgID48L2RlZXMtdGlsZS1ub3RlPgogICAgICA8L2Rpdj4KICAgIDwvZGl2PgogIGB9fSk7dmFyIEhiLF9jLHA2cixoNnI9cCgoKT0+e3hlKCk7VjQoKTtUYygpO3U2cigpO0hiPWZ1bmN0aW9uKGUsdCxyLGksYSxuKXtmdW5jdGlvbiBvKHkpe2lmKHkhPT12b2lkIDAmJnR5cGVvZiB5IT0iZnVuY3Rpb24iKXRocm93IG5ldyBUeXBlRXJyb3IoIkZ1bmN0aW9uIGV4cGVjdGVkIik7cmV0dXJuIHl9Zm9yKHZhciBzPWkua2luZCxsPXM9PT0iZ2V0dGVyIj8iZ2V0IjpzPT09InNldHRlciI/InNldCI6InZhbHVlIixjPSF0JiZlP2kuc3RhdGljP2U6ZS5wcm90b3R5cGU6bnVsbCx1PXR8fChjP09iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoYyxpLm5hbWUpOnt9KSxkLGg9ITEsZj1yLmxlbmd0aC0xO2Y+PTA7Zi0tKXt2YXIgeD17fTtmb3IodmFyIHYgaW4gaSl4W3ZdPXY9PT0iYWNjZXNzIj97fTppW3ZdO2Zvcih2YXIgdiBpbiBpLmFjY2Vzcyl4LmFjY2Vzc1t2XT1pLmFjY2Vzc1t2XTt4LmFkZEluaXRpYWxpemVyPWZ1bmN0aW9uKHkpe2lmKGgpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGFkZCBpbml0aWFsaXplcnMgYWZ0ZXIgZGVjb3JhdGlvbiBoYXMgY29tcGxldGVkIik7bi5wdXNoKG8oeXx8bnVsbCkpfTt2YXIgYj0oMCxyW2ZdKShzPT09ImFjY2Vzc29yIj97Z2V0OnUuZ2V0LHNldDp1LnNldH06dVtsXSx4KTtpZihzPT09ImFjY2Vzc29yIil7aWYoYj09PXZvaWQgMCljb250aW51ZTtpZihiPT09bnVsbHx8dHlwZW9mIGIhPSJvYmplY3QiKXRocm93IG5ldyBUeXBlRXJyb3IoIk9iamVjdCBleHBlY3RlZCIpOyhkPW8oYi5nZXQpKSYmKHUuZ2V0PWQpLChkPW8oYi5zZXQpKSYmKHUuc2V0PWQpLChkPW8oYi5pbml0KSkmJmEudW5zaGlmdChkKX1lbHNlKGQ9byhiKSkmJihzPT09ImZpZWxkIj9hLnVuc2hpZnQoZCk6dVtsXT1kKX1jJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoYyxpLm5hbWUsdSksaD0hMH0sX2M9ZnVuY3Rpb24oZSx0LHIpe2Zvcih2YXIgaT1hcmd1bWVudHMubGVuZ3RoPjIsYT0wO2E8dC5sZW5ndGg7YSsrKXI9aT90W2FdLmNhbGwoZSxyKTp0W2FdLmNhbGwoZSk7cmV0dXJuIGk/cjp2b2lkIDB9LHA2cj0oKCk9PntsZXQgZT1beWUoImRlZXMtdGlsZS1ub3RlIildLHQscj1bXSxpLGE9b24sbixvPVtdLHM9W10sbCxjPVtdLHU9W10sZCxoPVtdLGY9W10seCx2PVtdLGI9W107dmFyIHk9Y2xhc3MgZXh0ZW5kcyBhe3N0YXRpY3tpPXRoaXN9c3RhdGlje2xldCB3PXR5cGVvZiBTeW1ib2w9PSJmdW5jdGlvbiImJlN5bWJvbC5tZXRhZGF0YT9PYmplY3QuY3JlYXRlKGFbU3ltYm9sLm1ldGFkYXRhXT8/bnVsbCk6dm9pZCAwO249W2ooe3R5cGU6U3RyaW5nfSldLGw9W2ooe3R5cGU6U3RyaW5nfSldLGQ9W2ooe3R5cGU6U3RyaW5nfSldLHg9W2ZlKCldLEhiKHRoaXMsbnVsbCxuLHtraW5kOiJhY2Nlc3NvciIsbmFtZToidGl0bGUiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOms9PiJ0aXRsZSJpbiBrLGdldDprPT5rLnRpdGxlLHNldDooayxPKT0+e2sudGl0bGU9T319LG1ldGFkYXRhOnd9LG8scyksSGIodGhpcyxudWxsLGwse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJjb250ZW50IixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczprPT4iY29udGVudCJpbiBrLGdldDprPT5rLmNvbnRlbnQsc2V0OihrLE8pPT57ay5jb250ZW50PU99fSxtZXRhZGF0YTp3fSxjLHUpLEhiKHRoaXMsbnVsbCxkLHtraW5kOiJhY2Nlc3NvciIsbmFtZToibGFuZ3VhZ2UiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOms9PiJsYW5ndWFnZSJpbiBrLGdldDprPT5rLmxhbmd1YWdlLHNldDooayxPKT0+e2subGFuZ3VhZ2U9T319LG1ldGFkYXRhOnd9LGgsZiksSGIodGhpcyxudWxsLHgse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJpc0hvdmVyaW5nIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczprPT4iaXNIb3ZlcmluZyJpbiBrLGdldDprPT5rLmlzSG92ZXJpbmcsc2V0OihrLE8pPT57ay5pc0hvdmVyaW5nPU99fSxtZXRhZGF0YTp3fSx2LGIpLEhiKG51bGwsdD17dmFsdWU6aX0sZSx7a2luZDoiY2xhc3MiLG5hbWU6aS5uYW1lLG1ldGFkYXRhOnd9LG51bGwscikseT1pPXQudmFsdWUsdyYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGksU3ltYm9sLm1ldGFkYXRhLHtlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMCx2YWx1ZTp3fSl9c3RhdGljIGRlbW89ZDZyO3N0YXRpYyBkZW1vR3JvdXBzPVsiTWVkaWEiXTtzdGF0aWMgc3R5bGVzPVsuLi5GYSxvZWAKICAgICAgLm5vdGUtY29udGVudCB7CiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICAgIHdpZHRoOiAxMDAlOwogICAgICAgIGhlaWdodDogMTAwJTsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgICAgYmFja2dyb3VuZDogJHttLmJkVGhlbWUoIiNmZmZmZmYiLCJoc2woNjAgNSUgOTYlKSIpfTsKICAgICAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgICB9CgogICAgICAubm90ZS1oZWFkZXIgewogICAgICAgIHBhZGRpbmc6IDEycHggMTRweCA4cHg7CiAgICAgICAgZmxleC1zaHJpbms6IDA7CiAgICAgIH0KCiAgICAgIC5ub3RlLXRpdGxlIHsKICAgICAgICBmb250LXNpemU6IDEycHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDcwMDsKICAgICAgICBjb2xvcjogJHttLmJkVGhlbWUoImhzbCgyMTUgMjAlIDIwJSkiLCJoc2woMjE1IDIwJSAyMCUpIil9OwogICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7CiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpczsKICAgICAgICBsaW5lLWhlaWdodDogMS4zOwogICAgICB9CgogICAgICAubm90ZS1ib2R5IHsKICAgICAgICBmbGV4OiAxOwogICAgICAgIHBhZGRpbmc6IDAgMTRweCAxNHB4OwogICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgICB9CgogICAgICAubm90ZS10ZXh0IHsKICAgICAgICBmb250LWZhbWlseTogdWktbW9ub3NwYWNlLCBTRk1vbm8tUmVndWxhciwgTWVubG8sIE1vbmFjbywgQ29uc29sYXMsIG1vbm9zcGFjZTsKICAgICAgICBmb250LXNpemU6IDEwcHg7CiAgICAgICAgbGluZS1oZWlnaHQ6IDEuNTsKICAgICAgICBjb2xvcjogJHttLmJkVGhlbWUoImhzbCgyMTUgMTAlIDQwJSkiLCJoc2woMjE1IDEwJSAzNSUpIil9OwogICAgICAgIHdoaXRlLXNwYWNlOiBwcmUtd3JhcDsKICAgICAgICB3b3JkLXdyYXA6IGJyZWFrLXdvcmQ7CiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgICAgICBtYXJnaW46IDA7CiAgICAgIH0KCiAgICAgIC5ub3RlLWZhZGUgewogICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgICBib3R0b206IDA7CiAgICAgICAgbGVmdDogMDsKICAgICAgICByaWdodDogMDsKICAgICAgICBoZWlnaHQ6IDYwcHg7CiAgICAgICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KAogICAgICAgICAgdHJhbnNwYXJlbnQsCiAgICAgICAgICAke20uYmRUaGVtZSgiI2ZmZmZmZiIsImhzbCg2MCA1JSA5NiUpIil9CiAgICAgICAgKTsKICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTsKICAgICAgfQoKICAgICAgLnRpbGUtYmFkZ2UtdG9wcmlnaHQubm90ZS1sYW5ndWFnZSB7CiAgICAgICAgYmFja2dyb3VuZDogJHttLmJkVGhlbWUoImhzbCgyMTUgMjAlIDkyJSkiLCJoc2woMjE1IDIwJSA4OCUpIil9OwogICAgICAgIGNvbG9yOiAke20uYmRUaGVtZSgiaHNsKDIxNSAxNiUgNTAlKSIsImhzbCgyMTUgMTYlIDQwJSkiKX07CiAgICAgICAgZm9udC1zaXplOiA5cHg7CiAgICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTsKICAgICAgICB6LWluZGV4OiA1OwogICAgICB9CgogICAgICAubm90ZS1saW5lcyB7CiAgICAgICAgcG9zaXRpb246IGFic29sdXRlOwogICAgICAgIHRvcDogMDsKICAgICAgICBsZWZ0OiAwOwogICAgICAgIGJvdHRvbTogMDsKICAgICAgICB3aWR0aDogMzRweDsKICAgICAgICBib3JkZXItcmlnaHQ6IDFweCBzb2xpZCAke20uYmRUaGVtZSgiaHNsKDAgNzAlIDg1JSkiLCJoc2woMCA1MCUgODAlKSIpfTsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgICAgcGFkZGluZy10b3A6IDEycHg7CiAgICAgIH0KCiAgICAgIC5saW5lLW51bWJlciB7CiAgICAgICAgZm9udC1mYW1pbHk6IHVpLW1vbm9zcGFjZSwgU0ZNb25vLVJlZ3VsYXIsIE1lbmxvLCBNb25hY28sIENvbnNvbGFzLCBtb25vc3BhY2U7CiAgICAgICAgZm9udC1zaXplOiA5cHg7CiAgICAgICAgbGluZS1oZWlnaHQ6IDE1cHg7IC8qIG1hdGNoZXMgMTBweCAqIDEuNSBsaW5lLWhlaWdodCAqLwogICAgICAgIGNvbG9yOiAke20uYmRUaGVtZSgiaHNsKDIxNSAxMCUgNzUlKSIsImhzbCgyMTUgMTAlIDcwJSkiKX07CiAgICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7CiAgICAgICAgcGFkZGluZy1yaWdodDogNnB4OwogICAgICB9CgogICAgYF07I2U9X2ModGhpcyxvLCIiKTtnZXQgdGl0bGUoKXtyZXR1cm4gdGhpcy4jZX1zZXQgdGl0bGUodyl7dGhpcy4jZT13fSN0PShfYyh0aGlzLHMpLF9jKHRoaXMsYywiIikpO2dldCBjb250ZW50KCl7cmV0dXJuIHRoaXMuI3R9c2V0IGNvbnRlbnQodyl7dGhpcy4jdD13fSNyPShfYyh0aGlzLHUpLF9jKHRoaXMsaCwiIikpO2dldCBsYW5ndWFnZSgpe3JldHVybiB0aGlzLiNyfXNldCBsYW5ndWFnZSh3KXt0aGlzLiNyPXd9I2k9KF9jKHRoaXMsZiksX2ModGhpcyx2LCExKSk7Z2V0IGlzSG92ZXJpbmcoKXtyZXR1cm4gdGhpcy4jaX1zZXQgaXNIb3ZlcmluZyh3KXt0aGlzLiNpPXd9bm90ZUJvZHlFbGVtZW50PShfYyh0aGlzLGIpLG51bGwpO3JlbmRlclRpbGVDb250ZW50KCl7bGV0IHc9dGhpcy5jb250ZW50LnNwbGl0KGAKYCk7cmV0dXJuIENgCiAgICAgIDxkaXYgY2xhc3M9Im5vdGUtY29udGVudCI+CiAgICAgICAgJHt0aGlzLmxhbmd1YWdlP0NgCiAgICAgICAgICA8ZGl2IGNsYXNzPSJ0aWxlLWJhZGdlLXRvcHJpZ2h0IG5vdGUtbGFuZ3VhZ2UiPiR7dGhpcy5sYW5ndWFnZX08L2Rpdj4KICAgICAgICBgOiIifQoKICAgICAgICAke3RoaXMudGl0bGU/Q2AKICAgICAgICAgIDxkaXYgY2xhc3M9Im5vdGUtaGVhZGVyIj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0ibm90ZS10aXRsZSI+JHt0aGlzLnRpdGxlfTwvZGl2PgogICAgICAgICAgPC9kaXY+CiAgICAgICAgYDoiIn0KCiAgICAgICAgPGRpdiBjbGFzcz0ibm90ZS1ib2R5Ij4KICAgICAgICAgIDxwcmUgY2xhc3M9Im5vdGUtdGV4dCI+JHt3LmpvaW4oYApgKX08L3ByZT4KICAgICAgICAgICR7dGhpcy5pc0hvdmVyaW5nPyIiOkNgPGRpdiBjbGFzcz0ibm90ZS1mYWRlIj48L2Rpdj5gfQogICAgICAgIDwvZGl2PgoKICAgICAgICAke3RoaXMuaXNIb3ZlcmluZyYmdy5sZW5ndGg+MTI/Q2AKICAgICAgICAgIDxkaXYgY2xhc3M9InRpbGUtYmFkZ2UtY29ybmVyIj4KICAgICAgICAgICAgTGluZSAke3RoaXMuZ2V0VmlzaWJsZUxpbmVSYW5nZSh3Lmxlbmd0aCl9CiAgICAgICAgICA8L2Rpdj4KICAgICAgICBgOiIifQogICAgICA8L2Rpdj4KCiAgICAgICR7dGhpcy5jbGlja2FibGU/Q2AKICAgICAgICA8ZGl2IGNsYXNzPSJ0aWxlLW92ZXJsYXkiPgogICAgICAgICAgPGRlZXMtaWNvbiBpY29uPSJsdWNpZGU6RmlsZVRleHQiPjwvZGVlcy1pY29uPgogICAgICAgICAgPHNwYW4+T3BlbiBOb3RlPC9zcGFuPgogICAgICAgIDwvZGl2PgogICAgICBgOiIifQogICAgYH1nZXRUaWxlQ2xpY2tEZXRhaWwoKXtyZXR1cm57dGl0bGU6dGhpcy50aXRsZSxjb250ZW50OnRoaXMuY29udGVudCxsYW5ndWFnZTp0aGlzLmxhbmd1YWdlfX1vblRpbGVNb3VzZUVudGVyKCl7dGhpcy5pc0hvdmVyaW5nPSEwLHRoaXMubm90ZUJvZHlFbGVtZW50fHwodGhpcy5ub3RlQm9keUVsZW1lbnQ9dGhpcy5zaGFkb3dSb290Py5xdWVyeVNlbGVjdG9yKCIubm90ZS1ib2R5IikpfW9uVGlsZU1vdXNlTGVhdmUoKXt0aGlzLmlzSG92ZXJpbmc9ITEsdGhpcy5ub3RlQm9keUVsZW1lbnQmJih0aGlzLm5vdGVCb2R5RWxlbWVudC5zY3JvbGxUb3A9MCl9b25UaWxlTW91c2VNb3ZlKHcpe2lmKCF0aGlzLmlzSG92ZXJpbmd8fCF0aGlzLm5vdGVCb2R5RWxlbWVudHx8dGhpcy5jb250ZW50LnNwbGl0KGAKYCkubGVuZ3RoPD0xMilyZXR1cm47bGV0IE89dGhpcy5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKSx6PXcuY2xpZW50WC1PLmxlZnQsTT1NYXRoLm1heCgwLE1hdGgubWluKDEsei9PLndpZHRoKSksRj10aGlzLm5vdGVCb2R5RWxlbWVudC5zY3JvbGxIZWlnaHQtdGhpcy5ub3RlQm9keUVsZW1lbnQuY2xpZW50SGVpZ2h0O3RoaXMubm90ZUJvZHlFbGVtZW50LnNjcm9sbFRvcD1NKkZ9Z2V0VmlzaWJsZUxpbmVSYW5nZSh3KXtpZighdGhpcy5ub3RlQm9keUVsZW1lbnQpcmV0dXJuYDFcdTIwMTMxMiBvZiAke3d9YDtsZXQgaz0xNSxPPU1hdGguZmxvb3IodGhpcy5ub3RlQm9keUVsZW1lbnQuc2Nyb2xsVG9wL2spKzEsej1NYXRoLmZsb29yKHRoaXMubm90ZUJvZHlFbGVtZW50LmNsaWVudEhlaWdodC9rKSxNPU1hdGgubWluKE8rei0xLHcpO3JldHVybmAke099XHUyMDEzJHtNfSBvZiAke3d9YH1zdGF0aWN7X2MoaSxyKX19O3JldHVybiB5PWl9KSgpfSk7dmFyIGY2cj1wKCgpPT57aDZyKCl9KTt2YXIgbTZyLGc2cj1wKCgpPT57eGUoKTttNnI9KCk9PntsZXQgZT1be3R5cGU6ImltYWdlIixuYW1lOiJzdW5zZXQuanBnIix0aHVtYm5haWxTcmM6Imh0dHBzOi8vcGljc3VtLnBob3Rvcy8yMDAvMjAwP3JhbmRvbT0xIn0se3R5cGU6ImltYWdlIixuYW1lOiJtb3VudGFpbi5qcGciLHRodW1ibmFpbFNyYzoiaHR0cHM6Ly9waWNzdW0ucGhvdG9zLzIwMC8yMDA/cmFuZG9tPTIifSx7dHlwZToiaW1hZ2UiLG5hbWU6Im9jZWFuLmpwZyIsdGh1bWJuYWlsU3JjOiJodHRwczovL3BpY3N1bS5waG90b3MvMjAwLzIwMD9yYW5kb209MyJ9LHt0eXBlOiJpbWFnZSIsbmFtZToiZm9yZXN0LmpwZyIsdGh1bWJuYWlsU3JjOiJodHRwczovL3BpY3N1bS5waG90b3MvMjAwLzIwMD9yYW5kb209NCJ9LHt0eXBlOiJpbWFnZSIsbmFtZToiY2l0eS5qcGciLHRodW1ibmFpbFNyYzoiaHR0cHM6Ly9waWNzdW0ucGhvdG9zLzIwMC8yMDA/cmFuZG9tPTUifSx7dHlwZToiaW1hZ2UiLG5hbWU6ImRlc2VydC5qcGciLHRodW1ibmFpbFNyYzoiaHR0cHM6Ly9waWNzdW0ucGhvdG9zLzIwMC8yMDA/cmFuZG9tPTYifV07cmV0dXJuIENgCiAgICA8c3R5bGU+CiAgICAgIC5kZW1vLWNvbnRhaW5lciB7CiAgICAgICAgcGFkZGluZzogNDBweDsKICAgICAgICBiYWNrZ3JvdW5kOiAjZjVmNWY1OwogICAgICB9CiAgICAgIC5kZW1vLXNlY3Rpb24gewogICAgICAgIG1hcmdpbi1ib3R0b206IDYwcHg7CiAgICAgIH0KICAgICAgaDMgewogICAgICAgIG1hcmdpbi1ib3R0b206IDIwcHg7CiAgICAgICAgZm9udC1zaXplOiAxOHB4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7CiAgICAgIH0KICAgICAgLnRpbGUtcm93IHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGdhcDogMjRweDsKICAgICAgICBmbGV4LXdyYXA6IHdyYXA7CiAgICAgICAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7CiAgICAgIH0KICAgIDwvc3R5bGU+CgogICAgPGRpdiBjbGFzcz0iZGVtby1jb250YWluZXIiPgogICAgICA8ZGl2IGNsYXNzPSJkZW1vLXNlY3Rpb24iPgogICAgICAgIDxoMz5Gb2xkZXIgVGlsZXM8L2gzPgogICAgICAgIDxkaXYgY2xhc3M9InRpbGUtcm93Ij4KICAgICAgICAgIDxkZWVzLXRpbGUtZm9sZGVyCiAgICAgICAgICAgIG5hbWU9IlBob3RvcyIKICAgICAgICAgICAgLml0ZW1zPSR7ZX0KICAgICAgICAgICAgbGFiZWw9IjYgcGhvdG9zIgogICAgICAgICAgICBAdGlsZS1jbGljaz0ke249PmNvbnNvbGUubG9nKCJGb2xkZXIgY2xpY2tlZDoiLG4uZGV0YWlsKX0KICAgICAgICAgID48L2RlZXMtdGlsZS1mb2xkZXI+CgogICAgICAgICAgPGRlZXMtdGlsZS1mb2xkZXIKICAgICAgICAgICAgbmFtZT0ibXktcHJvamVjdCIKICAgICAgICAgICAgLml0ZW1zPSR7W3t0eXBlOiJub3RlIixuYW1lOiJSRUFETUUubWQifSx7dHlwZToibm90ZSIsbmFtZToicGFja2FnZS5qc29uIn0se3R5cGU6ImZvbGRlciIsbmFtZToic3JjIn0se3R5cGU6ImZvbGRlciIsbmFtZToidGVzdCJ9LHt0eXBlOiJub3RlIixuYW1lOiJ0c2NvbmZpZy5qc29uIn0se3R5cGU6InBkZiIsbmFtZToiZG9jcy5wZGYifSx7dHlwZToiaW1hZ2UiLG5hbWU6ImxvZ28ucG5nIix0aHVtYm5haWxTcmM6Imh0dHBzOi8vcGljc3VtLnBob3Rvcy8xMDAvMTAwP3JhbmRvbT0xMCJ9XX0KICAgICAgICAgICAgbGFiZWw9IlByb2plY3QgZmlsZXMiCiAgICAgICAgICA+PC9kZWVzLXRpbGUtZm9sZGVyPgoKICAgICAgICAgIDxkZWVzLXRpbGUtZm9sZGVyCiAgICAgICAgICAgIG5hbWU9Ik1lZGlhIEFzc2V0cyIKICAgICAgICAgICAgLml0ZW1zPSR7W3t0eXBlOiJ2aWRlbyIsbmFtZToiaW50cm8ubXA0In0se3R5cGU6ImF1ZGlvIixuYW1lOiJiYWNrZ3JvdW5kLm1wMyJ9LHt0eXBlOiJpbWFnZSIsbmFtZToidGh1bWJuYWlsLmpwZyIsdGh1bWJuYWlsU3JjOiJodHRwczovL3BpY3N1bS5waG90b3MvMjAwLzIwMD9yYW5kb209MjAifSx7dHlwZToicGRmIixuYW1lOiJzdG9yeWJvYXJkLnBkZiJ9XX0KICAgICAgICAgICAgbGFiZWw9Ik1peGVkIG1lZGlhIgogICAgICAgICAgPjwvZGVlcy10aWxlLWZvbGRlcj4KICAgICAgICA8L2Rpdj4KICAgICAgPC9kaXY+CgogICAgICA8ZGl2IGNsYXNzPSJkZW1vLXNlY3Rpb24iPgogICAgICAgIDxoMz5FZGdlIENhc2VzPC9oMz4KICAgICAgICA8ZGl2IGNsYXNzPSJ0aWxlLXJvdyI+CiAgICAgICAgICA8ZGVlcy10aWxlLWZvbGRlcgogICAgICAgICAgICBuYW1lPSJFbXB0eSBGb2xkZXIiCiAgICAgICAgICAgIC5pdGVtcz0ke1tdfQogICAgICAgICAgPjwvZGVlcy10aWxlLWZvbGRlcj4KCiAgICAgICAgICA8ZGVlcy10aWxlLWZvbGRlcgogICAgICAgICAgICBuYW1lPSJTaW5nbGUgSXRlbSIKICAgICAgICAgICAgLml0ZW1zPSR7W3t0eXBlOiJwZGYiLG5hbWU6InJlcG9ydC5wZGYifV19CiAgICAgICAgICA+PC9kZWVzLXRpbGUtZm9sZGVyPgogICAgICAgIDwvZGl2PgogICAgICA8L2Rpdj4KCiAgICAgIDxkaXYgY2xhc3M9ImRlbW8tc2VjdGlvbiI+CiAgICAgICAgPGgzPlNpemUgVmFyaWFudHM8L2gzPgogICAgICAgIDxkaXYgY2xhc3M9InRpbGUtcm93Ij4KICAgICAgICAgIDxkZWVzLXRpbGUtZm9sZGVyCiAgICAgICAgICAgIHNpemU9InNtYWxsIgogICAgICAgICAgICBuYW1lPSJTbWFsbCIKICAgICAgICAgICAgLml0ZW1zPSR7ZX0KICAgICAgICAgID48L2RlZXMtdGlsZS1mb2xkZXI+CgogICAgICAgICAgPGRlZXMtdGlsZS1mb2xkZXIKICAgICAgICAgICAgbmFtZT0iRGVmYXVsdCIKICAgICAgICAgICAgLml0ZW1zPSR7ZX0KICAgICAgICAgID48L2RlZXMtdGlsZS1mb2xkZXI+CgogICAgICAgICAgPGRlZXMtdGlsZS1mb2xkZXIKICAgICAgICAgICAgc2l6ZT0ibGFyZ2UiCiAgICAgICAgICAgIG5hbWU9IkxhcmdlIgogICAgICAgICAgICAuaXRlbXM9JHtlfQogICAgICAgICAgPjwvZGVlcy10aWxlLWZvbGRlcj4KICAgICAgICA8L2Rpdj4KICAgICAgPC9kaXY+CiAgICA8L2Rpdj4KICBgfX0pO3ZhciBTZGUscWIsYjZyLHY2cix4NnI9cCgoKT0+e3hlKCk7VjQoKTtUYygpO2c2cigpO1NkZT1mdW5jdGlvbihlLHQscixpLGEsbil7ZnVuY3Rpb24gbyh5KXtpZih5IT09dm9pZCAwJiZ0eXBlb2YgeSE9ImZ1bmN0aW9uIil0aHJvdyBuZXcgVHlwZUVycm9yKCJGdW5jdGlvbiBleHBlY3RlZCIpO3JldHVybiB5fWZvcih2YXIgcz1pLmtpbmQsbD1zPT09ImdldHRlciI/ImdldCI6cz09PSJzZXR0ZXIiPyJzZXQiOiJ2YWx1ZSIsYz0hdCYmZT9pLnN0YXRpYz9lOmUucHJvdG90eXBlOm51bGwsdT10fHwoYz9PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGMsaS5uYW1lKTp7fSksZCxoPSExLGY9ci5sZW5ndGgtMTtmPj0wO2YtLSl7dmFyIHg9e307Zm9yKHZhciB2IGluIGkpeFt2XT12PT09ImFjY2VzcyI/e306aVt2XTtmb3IodmFyIHYgaW4gaS5hY2Nlc3MpeC5hY2Nlc3Nbdl09aS5hY2Nlc3Nbdl07eC5hZGRJbml0aWFsaXplcj1mdW5jdGlvbih5KXtpZihoKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBhZGQgaW5pdGlhbGl6ZXJzIGFmdGVyIGRlY29yYXRpb24gaGFzIGNvbXBsZXRlZCIpO24ucHVzaChvKHl8fG51bGwpKX07dmFyIGI9KDAscltmXSkocz09PSJhY2Nlc3NvciI/e2dldDp1LmdldCxzZXQ6dS5zZXR9OnVbbF0seCk7aWYocz09PSJhY2Nlc3NvciIpe2lmKGI9PT12b2lkIDApY29udGludWU7aWYoYj09PW51bGx8fHR5cGVvZiBiIT0ib2JqZWN0Iil0aHJvdyBuZXcgVHlwZUVycm9yKCJPYmplY3QgZXhwZWN0ZWQiKTsoZD1vKGIuZ2V0KSkmJih1LmdldD1kKSwoZD1vKGIuc2V0KSkmJih1LnNldD1kKSwoZD1vKGIuaW5pdCkpJiZhLnVuc2hpZnQoZCl9ZWxzZShkPW8oYikpJiYocz09PSJmaWVsZCI/YS51bnNoaWZ0KGQpOnVbbF09ZCl9YyYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGMsaS5uYW1lLHUpLGg9ITB9LHFiPWZ1bmN0aW9uKGUsdCxyKXtmb3IodmFyIGk9YXJndW1lbnRzLmxlbmd0aD4yLGE9MDthPHQubGVuZ3RoO2ErKylyPWk/dFthXS5jYWxsKGUscik6dFthXS5jYWxsKGUpO3JldHVybiBpP3I6dm9pZCAwfSxiNnI9e3BkZjoibHVjaWRlOkZpbGVUZXh0IixpbWFnZToibHVjaWRlOkltYWdlIixhdWRpbzoibHVjaWRlOk11c2ljIix2aWRlbzoibHVjaWRlOlZpZGVvIixub3RlOiJsdWNpZGU6RmlsZUNvZGUiLGZvbGRlcjoibHVjaWRlOkZvbGRlciIsdW5rbm93bjoibHVjaWRlOkZpbGUifSx2NnI9KCgpPT57bGV0IGU9W3llKCJkZWVzLXRpbGUtZm9sZGVyIildLHQscj1bXSxpLGE9b24sbixvPVtdLHM9W10sbCxjPVtdLHU9W107dmFyIGQ9Y2xhc3MgZXh0ZW5kcyBhe3N0YXRpY3tpPXRoaXN9c3RhdGlje2xldCBoPXR5cGVvZiBTeW1ib2w9PSJmdW5jdGlvbiImJlN5bWJvbC5tZXRhZGF0YT9PYmplY3QuY3JlYXRlKGFbU3ltYm9sLm1ldGFkYXRhXT8/bnVsbCk6dm9pZCAwO249W2ooe3R5cGU6U3RyaW5nfSldLGw9W2ooe2F0dHJpYnV0ZTohMX0pXSxTZGUodGhpcyxudWxsLG4se2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJuYW1lIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpmPT4ibmFtZSJpbiBmLGdldDpmPT5mLm5hbWUsc2V0OihmLHgpPT57Zi5uYW1lPXh9fSxtZXRhZGF0YTpofSxvLHMpLFNkZSh0aGlzLG51bGwsbCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6Iml0ZW1zIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpmPT4iaXRlbXMiaW4gZixnZXQ6Zj0+Zi5pdGVtcyxzZXQ6KGYseCk9PntmLml0ZW1zPXh9fSxtZXRhZGF0YTpofSxjLHUpLFNkZShudWxsLHQ9e3ZhbHVlOml9LGUse2tpbmQ6ImNsYXNzIixuYW1lOmkubmFtZSxtZXRhZGF0YTpofSxudWxsLHIpLGQ9aT10LnZhbHVlLGgmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShpLFN5bWJvbC5tZXRhZGF0YSx7ZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITAsdmFsdWU6aH0pfXN0YXRpYyBkZW1vPW02cjtzdGF0aWMgZGVtb0dyb3Vwcz1bIk1lZGlhIl07c3RhdGljIHN0eWxlcz1bLi4uRmEsb2VgCiAgICAgIC5mb2xkZXItY29udGVudCB7CiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICAgIHdpZHRoOiAxMDAlOwogICAgICAgIGhlaWdodDogMTAwJTsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgICAgYmFja2dyb3VuZDogJHttLmJkVGhlbWUoImhzbCg0MCAzMCUgOTclKSIsImhzbCgyMTUgMjAlIDE0JSkiKX07CiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgICAgfQoKICAgICAgLmZvbGRlci1oZWFkZXIgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBnYXA6IDhweDsKICAgICAgICBwYWRkaW5nOiAxMnB4IDE0cHggOHB4OwogICAgICAgIGZsZXgtc2hyaW5rOiAwOwogICAgICB9CgogICAgICAuZm9sZGVyLWljb24gewogICAgICAgIGZvbnQtc2l6ZTogMThweDsKICAgICAgICBjb2xvcjogJHttLmJkVGhlbWUoImhzbCg0MCA4MCUgNTAlKSIsImhzbCg0MCA3MCUgNjAlKSIpfTsKICAgICAgfQoKICAgICAgLmZvbGRlci1uYW1lIHsKICAgICAgICBmb250LXNpemU6IDEycHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDcwMDsKICAgICAgICBjb2xvcjogJHttLmJkVGhlbWUoImhzbCgyMTUgMjAlIDIwJSkiLCJoc2woMjE1IDE2JSA4MCUpIil9OwogICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7CiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpczsKICAgICAgICBmbGV4OiAxOwogICAgICB9CgogICAgICAucHJldmlldy1ncmlkIHsKICAgICAgICBmbGV4OiAxOwogICAgICAgIGRpc3BsYXk6IGdyaWQ7CiAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAxZnIgMWZyOwogICAgICAgIGdyaWQtdGVtcGxhdGUtcm93czogMWZyIDFmcjsKICAgICAgICBnYXA6IDRweDsKICAgICAgICBwYWRkaW5nOiAwIDE0cHggMTRweDsKICAgICAgICBtaW4taGVpZ2h0OiAwOwogICAgICB9CgogICAgICAuZ3JpZC1jZWxsIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7CiAgICAgICAgYm9yZGVyLXJhZGl1czogNHB4OwogICAgICAgIG92ZXJmbG93OiBoaWRkZW47CiAgICAgICAgYmFja2dyb3VuZDogJHttLmJkVGhlbWUoImhzbCgyMTUgMjAlIDk0JSkiLCJoc2woMjE1IDIwJSAxOCUpIil9OwogICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgfQoKICAgICAgLmdyaWQtY2VsbCBpbWcgewogICAgICAgIHdpZHRoOiAxMDAlOwogICAgICAgIGhlaWdodDogMTAwJTsKICAgICAgICBvYmplY3QtZml0OiBjb3ZlcjsKICAgICAgICBkaXNwbGF5OiBibG9jazsKICAgICAgfQoKICAgICAgLmdyaWQtY2VsbCBkZWVzLWljb24gewogICAgICAgIGZvbnQtc2l6ZTogMjBweDsKICAgICAgICBjb2xvcjogJHttLmJkVGhlbWUoImhzbCgyMTUgMTYlIDYwJSkiLCJoc2woMjE1IDE2JSA1NSUpIil9OwogICAgICB9CgogICAgICAuZ3JpZC1jZWxsLWVtcHR5IHsKICAgICAgICBiYWNrZ3JvdW5kOiAke20uYmRUaGVtZSgiaHNsKDIxNSAxNSUgOTYlKSIsImhzbCgyMTUgMjAlIDE2JSkiKX07CiAgICAgIH0KCiAgICBgXTsjZT1xYih0aGlzLG8sIiIpO2dldCBuYW1lKCl7cmV0dXJuIHRoaXMuI2V9c2V0IG5hbWUoaCl7dGhpcy4jZT1ofSN0PShxYih0aGlzLHMpLHFiKHRoaXMsYyxbXSkpO2dldCBpdGVtcygpe3JldHVybiB0aGlzLiN0fXNldCBpdGVtcyhoKXt0aGlzLiN0PWh9cmVuZGVyVGlsZUNvbnRlbnQoKXtsZXQgaD10aGlzLml0ZW1zLnNsaWNlKDAsNCksZj00LWgubGVuZ3RoO3JldHVybiBDYAogICAgICA8ZGl2IGNsYXNzPSJmb2xkZXItY29udGVudCI+CiAgICAgICAgPGRpdiBjbGFzcz0iZm9sZGVyLWhlYWRlciI+CiAgICAgICAgICA8ZGVlcy1pY29uIGNsYXNzPSJmb2xkZXItaWNvbiIgaWNvbj0ibHVjaWRlOkZvbGRlciI+PC9kZWVzLWljb24+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJmb2xkZXItbmFtZSI+JHt0aGlzLm5hbWV8fCJVbnRpdGxlZCBGb2xkZXIifTwvZGl2PgogICAgICAgIDwvZGl2PgoKICAgICAgICA8ZGl2IGNsYXNzPSJwcmV2aWV3LWdyaWQiPgogICAgICAgICAgJHtoLm1hcCh4PT5DYAogICAgICAgICAgICA8ZGl2IGNsYXNzPSJncmlkLWNlbGwiPgogICAgICAgICAgICAgICR7eC50aHVtYm5haWxTcmM/Q2AKICAgICAgICAgICAgICAgIDxpbWcgc3JjPSIke3gudGh1bWJuYWlsU3JjfSIgYWx0PSIke3gubmFtZX0iIC8+CiAgICAgICAgICAgICAgYDpDYAogICAgICAgICAgICAgICAgPGRlZXMtaWNvbiBpY29uPSIke2I2clt4LnR5cGVdfHxiNnIudW5rbm93bn0iPjwvZGVlcy1pY29uPgogICAgICAgICAgICAgIGB9CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgYCl9CiAgICAgICAgICAke0FycmF5LmZyb20oe2xlbmd0aDpmfSkubWFwKCgpPT5DYAogICAgICAgICAgICA8ZGl2IGNsYXNzPSJncmlkLWNlbGwgZ3JpZC1jZWxsLWVtcHR5Ij48L2Rpdj4KICAgICAgICAgIGApfQogICAgICAgIDwvZGl2PgogICAgICA8L2Rpdj4KCiAgICAgIDxkaXYgY2xhc3M9InRpbGUtYmFkZ2UtY29ybmVyIj4KICAgICAgICAke3RoaXMuaXRlbXMubGVuZ3RofSBpdGVtJHt0aGlzLml0ZW1zLmxlbmd0aCE9PTE/InMiOiIifQogICAgICA8L2Rpdj4KCiAgICAgICR7dGhpcy5jbGlja2FibGU/Q2AKICAgICAgICA8ZGl2IGNsYXNzPSJ0aWxlLW92ZXJsYXkiPgogICAgICAgICAgPGRlZXMtaWNvbiBpY29uPSJsdWNpZGU6Rm9sZGVyT3BlbiI+PC9kZWVzLWljb24+CiAgICAgICAgICA8c3Bhbj5PcGVuIEZvbGRlcjwvc3Bhbj4KICAgICAgICA8L2Rpdj4KICAgICAgYDoiIn0KICAgIGB9Z2V0VGlsZUNsaWNrRGV0YWlsKCl7cmV0dXJue25hbWU6dGhpcy5uYW1lLGl0ZW1Db3VudDp0aGlzLml0ZW1zLmxlbmd0aCxpdGVtczp0aGlzLml0ZW1zfX1jb25zdHJ1Y3Rvcigpe3N1cGVyKC4uLmFyZ3VtZW50cykscWIodGhpcyx1KX1zdGF0aWN7cWIoaSxyKX19O3JldHVybiBkPWl9KSgpfSk7dmFyIHk2cj1wKCgpPT57eDZyKCl9KTt2YXIgdzZyPXAoKCk9PntmM3IoKTt2M3IoKTtNM3IoKTskM3IoKTtGM3IoKTtWM3IoKTtVM3IoKTtXM3IoKTtHM3IoKTtZM3IoKTtLM3IoKTthNnIoKTtjNnIoKTtmNnIoKTt5NnIoKX0pO3ZhciBNNnI9cCgoKT0+e01pKCl9KTt2YXIgazZyPXAoKCk9PntJZCgpfSk7dmFyIFM2cix6NnI9cCgoKT0+e3hlKCk7UzZyPSgpPT5DYAogICAgPHN0eWxlPgogICAgICAucmVmMSB7CiAgICAgICAgbWFyZ2luOiAyMHB4OwogICAgICAgIHdpZHRoOiAxMHB4OwogICAgICAgIGhlaWdodDogMTBweDsKICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZWQ7CiAgICAgIH0KICAgIDwvc3R5bGU+CiAgICA8ZGl2IGNsYXNzPSJyZWYxIj48L2Rpdj4KICAgIDxkZWVzLXNwZWVjaGJ1YmJsZSAudGV4dD0ke2AKICAgICAgKipUaGlzIGlzIGEgbG9uZ2VyIG1hcmtkb3duIHRleHQgdGhhdCAgY2FuIGJlIHVzZWQgdGhlIHdyaXRlKiogIAogICAgICBhIGxvbmdlciBkZXNjcmlwdGlvbiBhYm91dCB3aGF0cyBnb2luZyBvbiB0aGUgYXBwICAKICAKICAgICAgKipUaGlzIGlzIGEgc3ViaGVhZGVyKioKICAgICAgYW5kIGFub3RoZXIgdGV4dAogICAgCiAgICBgfT48L2RlZXMtc3BlZWNoYnViYmxlPgogIGB9KTt2YXIgZmgsRjIsQzZyLFQ2cj1wKCgpPT57UG8oKTt3aSgpO3o2cigpO3hlKCk7cGMoKTtKZSgpO2ZoPWZ1bmN0aW9uKGUsdCxyLGksYSxuKXtmdW5jdGlvbiBvKHkpe2lmKHkhPT12b2lkIDAmJnR5cGVvZiB5IT0iZnVuY3Rpb24iKXRocm93IG5ldyBUeXBlRXJyb3IoIkZ1bmN0aW9uIGV4cGVjdGVkIik7cmV0dXJuIHl9Zm9yKHZhciBzPWkua2luZCxsPXM9PT0iZ2V0dGVyIj8iZ2V0IjpzPT09InNldHRlciI/InNldCI6InZhbHVlIixjPSF0JiZlP2kuc3RhdGljP2U6ZS5wcm90b3R5cGU6bnVsbCx1PXR8fChjP09iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoYyxpLm5hbWUpOnt9KSxkLGg9ITEsZj1yLmxlbmd0aC0xO2Y+PTA7Zi0tKXt2YXIgeD17fTtmb3IodmFyIHYgaW4gaSl4W3ZdPXY9PT0iYWNjZXNzIj97fTppW3ZdO2Zvcih2YXIgdiBpbiBpLmFjY2Vzcyl4LmFjY2Vzc1t2XT1pLmFjY2Vzc1t2XTt4LmFkZEluaXRpYWxpemVyPWZ1bmN0aW9uKHkpe2lmKGgpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGFkZCBpbml0aWFsaXplcnMgYWZ0ZXIgZGVjb3JhdGlvbiBoYXMgY29tcGxldGVkIik7bi5wdXNoKG8oeXx8bnVsbCkpfTt2YXIgYj0oMCxyW2ZdKShzPT09ImFjY2Vzc29yIj97Z2V0OnUuZ2V0LHNldDp1LnNldH06dVtsXSx4KTtpZihzPT09ImFjY2Vzc29yIil7aWYoYj09PXZvaWQgMCljb250aW51ZTtpZihiPT09bnVsbHx8dHlwZW9mIGIhPSJvYmplY3QiKXRocm93IG5ldyBUeXBlRXJyb3IoIk9iamVjdCBleHBlY3RlZCIpOyhkPW8oYi5nZXQpKSYmKHUuZ2V0PWQpLChkPW8oYi5zZXQpKSYmKHUuc2V0PWQpLChkPW8oYi5pbml0KSkmJmEudW5zaGlmdChkKX1lbHNlKGQ9byhiKSkmJihzPT09ImZpZWxkIj9hLnVuc2hpZnQoZCk6dVtsXT1kKX1jJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoYyxpLm5hbWUsdSksaD0hMH0sRjI9ZnVuY3Rpb24oZSx0LHIpe2Zvcih2YXIgaT1hcmd1bWVudHMubGVuZ3RoPjIsYT0wO2E8dC5sZW5ndGg7YSsrKXI9aT90W2FdLmNhbGwoZSxyKTp0W2FdLmNhbGwoZSk7cmV0dXJuIGk/cjp2b2lkIDB9LEM2cj0oKCk9PntsZXQgZT1beWUoImRlZXMtc3BlZWNoYnViYmxlIildLHQscj1bXSxpLGE9emUsbixvPVtdLHM9W10sbCxjPVtdLHU9W10sZCxoPVtdLGY9W10seCx2PVtdLGI9W10seSx3PVtdLGs9W107dmFyIE89Y2xhc3MgZXh0ZW5kcyBhe3N0YXRpY3tpPXRoaXN9c3RhdGlje2xldCB6PXR5cGVvZiBTeW1ib2w9PSJmdW5jdGlvbiImJlN5bWJvbC5tZXRhZGF0YT9PYmplY3QuY3JlYXRlKGFbU3ltYm9sLm1ldGFkYXRhXT8/bnVsbCk6dm9pZCAwO249W2ooe3R5cGU6T2JqZWN0fSldLGw9W2ooe3R5cGU6U3RyaW5nLHJlZmxlY3Q6ITB9KV0sZD1baih7dHlwZTpCb29sZWFufSldLHg9W2ooe3R5cGU6Qm9vbGVhbn0pXSx5PVtqKHt0eXBlOlN0cmluZ30pXSxmaCh0aGlzLG51bGwsbix7a2luZDoiYWNjZXNzb3IiLG5hbWU6InJlZmZlZEVsZW1lbnQiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOk09PiJyZWZmZWRFbGVtZW50ImluIE0sZ2V0Ok09Pk0ucmVmZmVkRWxlbWVudCxzZXQ6KE0sRik9PntNLnJlZmZlZEVsZW1lbnQ9Rn19LG1ldGFkYXRhOnp9LG8scyksZmgodGhpcyxudWxsLGwse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJ0ZXh0IixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpNPT4idGV4dCJpbiBNLGdldDpNPT5NLnRleHQsc2V0OihNLEYpPT57TS50ZXh0PUZ9fSxtZXRhZGF0YTp6fSxjLHUpLGZoKHRoaXMsbnVsbCxkLHtraW5kOiJhY2Nlc3NvciIsbmFtZToid2F2ZSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6TT0+IndhdmUiaW4gTSxnZXQ6TT0+TS53YXZlLHNldDooTSxGKT0+e00ud2F2ZT1GfX0sbWV0YWRhdGE6en0saCxmKSxmaCh0aGlzLG51bGwseCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6Im1hbmlmZXN0ZWQiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOk09PiJtYW5pZmVzdGVkImluIE0sZ2V0Ok09Pk0ubWFuaWZlc3RlZCxzZXQ6KE0sRik9PntNLm1hbmlmZXN0ZWQ9Rn19LG1ldGFkYXRhOnp9LHYsYiksZmgodGhpcyxudWxsLHkse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJzdGF0dXMiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOk09PiJzdGF0dXMiaW4gTSxnZXQ6TT0+TS5zdGF0dXMsc2V0OihNLEYpPT57TS5zdGF0dXM9Rn19LG1ldGFkYXRhOnp9LHcsayksZmgobnVsbCx0PXt2YWx1ZTppfSxlLHtraW5kOiJjbGFzcyIsbmFtZTppLm5hbWUsbWV0YWRhdGE6en0sbnVsbCxyKSxPPWk9dC52YWx1ZSx6JiZPYmplY3QuZGVmaW5lUHJvcGVydHkoaSxTeW1ib2wubWV0YWRhdGEse2VudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwLHZhbHVlOnp9KX1zdGF0aWMgZGVtbz1TNnI7c3RhdGljIGRlbW9Hcm91cHM9WyJPdmVybGF5Il07c3RhdGljIGFzeW5jIGNyZWF0ZUFuZFNob3coeixNKXtsZXQgRj1hd2FpdCAkby5jcmVhdGVBbmRTaG93KHtibHVyOiExfSksRD1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkZWVzLXNwZWVjaGJ1YmJsZSIpO3JldHVybiBELndpbmRvd0xheWVyPUYsRC5yZWZmZWRFbGVtZW50PXosRC50ZXh0PU0sRC5tYW5pZmVzdGVkPSEwLEYuYXBwZW5kQ2hpbGQoRCksRi5zdHlsZS5wb2ludGVyRXZlbnRzPSJub25lIixGLnNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvcigiLndpbmRvd092ZXJsYXkiKS5zdHlsZS5wb2ludGVyRXZlbnRzPSJub25lIixEfSNlPUYyKHRoaXMsbyx2b2lkIDApO2dldCByZWZmZWRFbGVtZW50KCl7cmV0dXJuIHRoaXMuI2V9c2V0IHJlZmZlZEVsZW1lbnQoeil7dGhpcy4jZT16fSN0PShGMih0aGlzLHMpLEYyKHRoaXMsYyx2b2lkIDApKTtnZXQgdGV4dCgpe3JldHVybiB0aGlzLiN0fXNldCB0ZXh0KHope3RoaXMuI3Q9en0jcj0oRjIodGhpcyx1KSxGMih0aGlzLGgsITEpKTtnZXQgd2F2ZSgpe3JldHVybiB0aGlzLiNyfXNldCB3YXZlKHope3RoaXMuI3I9en0jaT0oRjIodGhpcyxmKSxGMih0aGlzLHYsITEpKTtnZXQgbWFuaWZlc3RlZCgpe3JldHVybiB0aGlzLiNpfXNldCBtYW5pZmVzdGVkKHope3RoaXMuI2k9en0jYT0oRjIodGhpcyxiKSxGMih0aGlzLHcsIm5vcm1hbCIpKTtnZXQgc3RhdHVzKCl7cmV0dXJuIHRoaXMuI2F9c2V0IHN0YXR1cyh6KXt0aGlzLiNhPXp9d2luZG93TGF5ZXI9RjIodGhpcyxrKTtjb25zdHJ1Y3Rvcigpe3N1cGVyKCl9c3RhdGljIHN0eWxlcz1bRGUsbS5kZWZhdWx0U3R5bGVzLG9lYAogICAgICAvKiBUT0RPOiBNaWdyYXRlIGhhcmRjb2RlZCB2YWx1ZXMgdG8gLS1kZWVzLSogQ1NTIHZhcmlhYmxlcyAqLwogICAgICA6aG9zdCB7CiAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDsKICAgICAgICBjb2xvcjogJHttLmJkVGhlbWUoIiMzMzMiLCIjZmZmIil9OwogICAgICAgIHVzZXItc2VsZWN0OiBub25lOwogICAgICB9CgogICAgICAubWFpbmNvbnRhaW5lciB7CiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICAgIHdpbGwtY2hhbmdlOiB0cmFuc2Zvcm07CiAgICAgICAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDAuMnM7CiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDBweCk7CiAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuMnM7CiAgICAgICAgbWFyZ2luLWxlZnQ6IDBweDsKICAgICAgICBmaWx0ZXI6IGRyb3Atc2hhZG93KDBweCAwcHggMnB4IHJnYmEoMCwgMCwgMCwgMC4yKSk7CiAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7CiAgICAgICAgb3BhY2l0eTogMDsKICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC4yczsKICAgICAgfQoKICAgICAgLmFycm93IHsKICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoNDVkZWcpOwogICAgICAgIGJhY2tncm91bmQ6ICR7bS5iZFRoZW1lKCIjZmZmIiwiIzMzMyIpfTsKICAgICAgICBoZWlnaHQ6IDE1cHg7CiAgICAgICAgd2lkdGg6IDE1cHg7CiAgICAgICAgbGVmdDogMnB4OwogICAgICAgIHRvcDogMTJweDsKICAgICAgICBib3JkZXItcmFkaXVzOiAzcHg7CiAgICAgIH0KCiAgICAgIC5zcGVlY2hidWJibGUgewogICAgICAgIGJhY2tncm91bmQ6ICR7bS5iZFRoZW1lKCIjZmZmIiwiIzMzMyIpfTsKICAgICAgICBwYWRkaW5nOiAwcHggMTZweDsKICAgICAgICBib3JkZXItcmFkaXVzOiAzcHg7CiAgICAgICAgcG9zaXRpb246IGFic29sdXRlOwogICAgICAgIG1pbi13aWR0aDogMjQwcHg7CiAgICAgICAgZm9udC1zaXplOiAxMnB4OwogICAgICAgIHRvcDogMHB4OwogICAgICAgIGxlZnQ6IDhweDsKICAgICAgfQoKICAgICAgLndhdmUgewogICAgICAgIGFuaW1hdGlvbi1uYW1lOiB3YXZlLWFuaW1hdGlvbjsgLyogUmVmZXJzIHRvIHRoZSBuYW1lIG9mIHlvdXIgQGtleWZyYW1lcyBlbGVtZW50IGJlbG93ICovCiAgICAgICAgYW5pbWF0aW9uLWR1cmF0aW9uOiAyLjVzOyAvKiBDaGFuZ2UgdG8gc3BlZWQgdXAgb3Igc2xvdyBkb3duICovCiAgICAgICAgYW5pbWF0aW9uLWl0ZXJhdGlvbi1jb3VudDogaW5maW5pdGU7IC8qIE5ldmVyIHN0b3Agd2F2aW5nIDopICovCiAgICAgICAgdHJhbnNmb3JtLW9yaWdpbjogNzAlIDcwJTsgLyogUGl2b3QgYXJvdW5kIHRoZSBib3R0b20tbGVmdCBwYWxtICovCiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrOwogICAgICB9CgogICAgICBAa2V5ZnJhbWVzIHdhdmUtYW5pbWF0aW9uIHsKICAgICAgICAwJSB7CiAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgwZGVnKTsKICAgICAgICB9CiAgICAgICAgMTAlIHsKICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDE0ZGVnKTsKICAgICAgICB9IC8qIFRoZSBmb2xsb3dpbmcgZml2ZSB2YWx1ZXMgY2FuIGJlIHBsYXllZCB3aXRoIHRvIG1ha2UgdGhlIHdhdmluZyBtb3JlIG9yIGxlc3MgZXh0cmVtZSAqLwogICAgICAgIDIwJSB7CiAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgtOGRlZyk7CiAgICAgICAgfQogICAgICAgIDMwJSB7CiAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgxNGRlZyk7CiAgICAgICAgfQogICAgICAgIDQwJSB7CiAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgtNGRlZyk7CiAgICAgICAgfQogICAgICAgIDUwJSB7CiAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgxMGRlZyk7CiAgICAgICAgfQogICAgICAgIDYwJSB7CiAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgwZGVnKTsKICAgICAgICB9IC8qIFJlc2V0IGZvciB0aGUgbGFzdCBoYWxmIHRvIHBhdXNlICovCiAgICAgICAgMTAwJSB7CiAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgwZGVnKTsKICAgICAgICB9CiAgICAgIH0KICAgIGBdO3JlbmRlcigpe3JldHVybiBDYAogICAgICAke3RoaXMubWFuaWZlc3RlZD9DYAogICAgICAgICAgICA8ZGl2IGNsYXNzPSJtYWluY29udGFpbmVyIiBAY2xpY2s9JHt0aGlzLmhhbmRsZUNsaWNrfT4KICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJhcnJvdyI+PC9kaXY+CiAgICAgICAgICAgICAgPGRpdiBjbGFzcz0ic3BlZWNoYnViYmxlIj4KICAgICAgICAgICAgICAgICR7dGhpcy53YXZlP0NgPHNwYW4gY2xhc3M9IndhdmUiPvCfkYs8L3NwYW4+YDpDYGB9CiAgICAgICAgICAgICAgICAke0VvLnJlc29sdmUodGhpcy5nZXRIdG1sKCkpfQogICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIGA6Q2BgfQogICAgYH1hc3luYyBoYW5kbGVDbGljaygpe2NvbnNvbGUubG9nKCJzcGVlY2hidWJibGUgZ290IGNsaWNrZWQuIil9YXN5bmMgZmlyc3RVcGRhdGVkKCl7aWYodGhpcy5yZWZmZWRFbGVtZW50fHwodGhpcy5yZWZmZWRFbGVtZW50PXRoaXMucHJldmlvdXNFbGVtZW50U2libGluZyksdGhpcy5tYW5pZmVzdGVkKWF3YWl0IHRoaXMudXBkYXRlUG9zaXRpb24oKSx0aGlzLnNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvcigiLm1haW5jb250YWluZXIiKS5zdHlsZS5vcGFjaXR5PSIxIjtlbHNle2xldCB6O3RoaXMucmVmZmVkRWxlbWVudC5hZGRFdmVudExpc3RlbmVyKCJtb3VzZWVudGVyIixhc3luYygpPT57ej1hd2FpdCBPLmNyZWF0ZUFuZFNob3codGhpcy5yZWZmZWRFbGVtZW50LHRoaXMudGV4dCl9KSx0aGlzLnJlZmZlZEVsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigibW91c2VsZWF2ZSIsKCk9Pnt6LmRlc3Ryb3koKX0pfX1hc3luYyB1cGRhdGVQb3NpdGlvbigpe2xldCB6PXRoaXMucmVmZmVkRWxlbWVudCxNPXouZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7dGhpcy5zdHlsZS5wb3NpdGlvbj0iZml4ZWQiLHRoaXMuc3R5bGUudG9wPWAke00udG9wLTEzfXB4YCx0aGlzLnN0eWxlLmxlZnQ9YCR7TS5sZWZ0K3ouY2xpZW50V2lkdGgrNH1weGAsTS5yaWdodD4yNTAmJih0aGlzLnN0eWxlLndpZHRoPSIyNTBweCIpfWFzeW5jIGdldEh0bWwoKXtpZighdGhpcy50ZXh0KXJldHVybiIiO2xldCB6PWt0LnBsdWdpbnMuc21hcnRzdHJpbmcubm9ybWFsaXplLnN0YW5kYXJkKHRoaXMudGV4dCksTT1hd2FpdCBrdC5wbHVnaW5zLnNtYXJ0bWFya2Rvd24uU21hcnRNYXJrZG93bi5lYXN5TWFya2Rvd25Ub0h0bWwoeik7cmV0dXJuIGRBKE0pfWFzeW5jIHNob3coKXt9YXN5bmMgZGVzdHJveSgpe3RoaXMuc2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yKCIubWFpbmNvbnRhaW5lciIpLnN0eWxlLm9wYWNpdHk9IjAiLHRoaXMud2luZG93TGF5ZXIuZGVzdHJveSgpfXN0YXRpY3tGMihpLHIpfX07cmV0dXJuIE89aX0pKCl9KTt2YXIgXzZyPXAoKCk9PntUNnIoKX0pO3ZhciBMNnI9cCgoKT0+e3BjKCl9KTt2YXIgQTZyPXAoKCk9PntNNnIoKTtrNnIoKTtfNnIoKTtMNnIoKX0pO3ZhciBENnI9cCgoKT0+e30pO3ZhciBFNnI9cCgoKT0+e0Q2cigpfSk7dmFyICQ2cixzRixsRix6ZGUsSTZyLGNGLGRGLHVGLHBGPXAoKCk9PnskNnI9Imh0dHBzOi8vc3RhY2tibGl0ei5jb20iLHNGPSJjb2RlIixsRj0iZXJyb3IiLHpkZT0iZXJyb3JfZGVzY3JpcHRpb24iLEk2cj0iX193Y19hcGlfYmNfXyIsY0Y9Il9fd2NfYXBpX3Rva2Vuc19fIixkRj0iX193Y19hcGlfdmVyaWZpZXJfXyIsdUY9Il9fd2NfYXBpX3BvcHVwX18ifSk7dmFyIEpkLENkZT1wKCgpPT57SmQ9Y2xhc3N7X2J1cz1uZXcgRXZlbnRUYXJnZXQ7bGlzdGVuKHQpe2Z1bmN0aW9uIHIoaSl7dChpLmRhdGEpfXJldHVybiB0aGlzLl9idXMuYWRkRXZlbnRMaXN0ZW5lcigibWVzc2FnZSIsciksKCk9PnRoaXMuX2J1cy5yZW1vdmVFdmVudExpc3RlbmVyKCJtZXNzYWdlIixyKX1maXJlRXZlbnQodCl7dGhpcy5fYnVzLmRpc3BhdGNoRXZlbnQobmV3IE1lc3NhZ2VFdmVudCgibWVzc2FnZSIse2RhdGE6dH0pKX19fSk7ZnVuY3Rpb24gaEYoKXtsb2NhbFN0b3JhZ2UucmVtb3ZlSXRlbShjRil9ZnVuY3Rpb24gUjZyKGUpe3JldHVybiBONnIubGlzdGVuKGUpfWZ1bmN0aW9uIE1Ycigpe2xldCBlPWxvY2FsU3RvcmFnZS5nZXRJdGVtKGNGKTtpZighZSlyZXR1cm4gbnVsbDt0cnl7cmV0dXJuIEpTT04ucGFyc2UoZSl9Y2F0Y2h7cmV0dXJuIG51bGx9fWZ1bmN0aW9uIGtYcihlKXtsb2NhbFN0b3JhZ2Uuc2V0SXRlbShjRixKU09OLnN0cmluZ2lmeShlKSl9ZnVuY3Rpb24gRjZyKHtjcmVhdGVkX2F0OmUsZXhwaXJlc19pbjp0fSl7cmV0dXJuKGUrdCkqMWUzfWZ1bmN0aW9uIE82cihlKXtpZih0eXBlb2YgZSE9Im9iamVjdCJ8fCFlKXRocm93IG5ldyBFcnJvcigiSW52YWxpZCBUb2tlbiBSZXNwb25zZSIpO2lmKHR5cGVvZiBlLmFjY2Vzc190b2tlbiE9InN0cmluZyJ8fHR5cGVvZiBlLnJlZnJlc2hfdG9rZW4hPSJzdHJpbmcifHx0eXBlb2YgZS5jcmVhdGVkX2F0IT0ibnVtYmVyInx8dHlwZW9mIGUuZXhwaXJlc19pbiE9Im51bWJlciIpdGhyb3cgbmV3IEVycm9yKCJJbnZhbGlkIFRva2VuIFJlc3BvbnNlIil9ZnVuY3Rpb24gU1hyKGUpe3JldHVybiBuZXcgUHJvbWlzZSh0PT5zZXRUaW1lb3V0KHQsZSkpfWZ1bmN0aW9uIHpYcihlKXtONnIuZmlyZUV2ZW50KGUpfXZhciBQNnIsTjZyLG1oLFRkZT1wKCgpPT57cEYoKTtDZGUoKTtQNnI9bmV3IEVycm9yO1A2ci5zdGFjaz0iIjtONnI9bmV3IEpkLG1oPWNsYXNzIGV7b3JpZ2luO3JlZnJlc2g7YWNjZXNzO2V4cGlyZXM7X3Jldm9rZWQ9bmV3IEFib3J0Q29udHJvbGxlcjtjb25zdHJ1Y3Rvcih0LHIsaSxhKXt0aGlzLm9yaWdpbj10LHRoaXMucmVmcmVzaD1yLHRoaXMuYWNjZXNzPWksdGhpcy5leHBpcmVzPWF9YXN5bmMgYWN0aXZhdGUodCl7aWYodGhpcy5fcmV2b2tlZC5zaWduYWwuYWJvcnRlZCl0aHJvdyBuZXcgRXJyb3IoIlRva2VuIHJldm9rZWQiKTtyZXR1cm4gdGhpcy5leHBpcmVzPERhdGUubm93KCkmJiFhd2FpdCB0aGlzLl9mZXRjaE5ld0FjY2Vzc1Rva2VuKCk/ITE6KHRoaXMuX3N5bmMoKSx0aGlzLl9zdGFydFJlZnJlc2hUb2tlbnNMb29wKHQpLCEwKX1hc3luYyByZXZva2UodCxyKXt0aGlzLl9yZXZva2VkLmFib3J0KCk7dHJ5e2lmKCEoYXdhaXQgZmV0Y2goYCR7dGhpcy5vcmlnaW59L29hdXRoL3Jldm9rZWAse21ldGhvZDoiUE9TVCIsaGVhZGVyczp7IkNvbnRlbnQtVHlwZSI6ImFwcGxpY2F0aW9uL3gtd3d3LWZvcm0tdXJsZW5jb2RlZCJ9LGJvZHk6bmV3IFVSTFNlYXJjaFBhcmFtcyh7dG9rZW46dGhpcy5yZWZyZXNoLHRva2VuX3R5cGVfaGludDoicmVmcmVzaF90b2tlbiIsY2xpZW50X2lkOnR9KSxtb2RlOiJjb3JzIn0pKS5vayl0aHJvdyBuZXcgRXJyb3IoIkZhaWxlZCB0byBsb2dvdXQiKX1jYXRjaChpKXtpZighcil0aHJvdyBpfWhGKCl9c3RhdGljIGZyb21TdG9yYWdlKCl7bGV0IHQ9TVhyKCk7cmV0dXJuIHQ/bmV3IGUodC5vcmlnaW4sdC5yZWZyZXNoLHQuYWNjZXNzLHQuZXhwaXJlcyk6bnVsbH1zdGF0aWMgYXN5bmMgZnJvbUF1dGhDb2RlKHtlZGl0b3JPcmlnaW46dCxjbGllbnRJZDpyLGNvZGVWZXJpZmllcjppLGF1dGhDb2RlOmEscmVkaXJlY3RVcmk6bn0pe2xldCBvPWF3YWl0IGZldGNoKGAke3R9L29hdXRoL3Rva2VuYCx7bWV0aG9kOiJQT1NUIixoZWFkZXJzOnsiQ29udGVudC1UeXBlIjoiYXBwbGljYXRpb24veC13d3ctZm9ybS11cmxlbmNvZGVkIn0sYm9keTpuZXcgVVJMU2VhcmNoUGFyYW1zKHtjbGllbnRfaWQ6cixjb2RlOmEsY29kZV92ZXJpZmllcjppLGdyYW50X3R5cGU6ImF1dGhvcml6YXRpb25fY29kZSIscmVkaXJlY3RfdXJpOm59KSxtb2RlOiJjb3JzIn0pO2lmKCFvLm9rKXRocm93IG5ldyBFcnJvcihgRmFpbGVkIHRvIGZldGNoIHRva2VuOiAke28uc3RhdHVzfWApO2xldCBzPWF3YWl0IG8uanNvbigpO082cihzKTtsZXR7YWNjZXNzX3Rva2VuOmwscmVmcmVzaF90b2tlbjpjfT1zLHU9RjZyKHMpO3JldHVybiBuZXcgZSh0LGMsbCx1KX1hc3luYyBfZmV0Y2hOZXdBY2Nlc3NUb2tlbigpe3RyeXtsZXQgdD1hd2FpdCBmZXRjaChgJHt0aGlzLm9yaWdpbn0vb2F1dGgvdG9rZW5gLHttZXRob2Q6IlBPU1QiLGhlYWRlcnM6eyJDb250ZW50LVR5cGUiOiJhcHBsaWNhdGlvbi94LXd3dy1mb3JtLXVybGVuY29kZWQifSxib2R5Om5ldyBVUkxTZWFyY2hQYXJhbXMoe2dyYW50X3R5cGU6InJlZnJlc2hfdG9rZW4iLHJlZnJlc2hfdG9rZW46dGhpcy5yZWZyZXNofSksbW9kZToiY29ycyIsc2lnbmFsOnRoaXMuX3Jldm9rZWQuc2lnbmFsfSk7aWYoIXQub2spdGhyb3cgUDZyO2xldCByPWF3YWl0IHQuanNvbigpO082cihyKTtsZXR7YWNjZXNzX3Rva2VuOmkscmVmcmVzaF90b2tlbjphfT1yLG49RjZyKHIpO3JldHVybiB0aGlzLmFjY2Vzcz1pLHRoaXMuZXhwaXJlcz1uLHRoaXMucmVmcmVzaD1hLCEwfWNhdGNoe3JldHVybiBoRigpLCExfX1fc3luYygpe2tYcih0aGlzKSx6WHIodGhpcy5hY2Nlc3MpfWFzeW5jIF9zdGFydFJlZnJlc2hUb2tlbnNMb29wKHQpe2Zvcig7Oyl7bGV0IHI9dGhpcy5leHBpcmVzLURhdGUubm93KCktMWUzO2lmKGF3YWl0IFNYcihNYXRoLm1heChyLDFlMykpLHRoaXMuX3Jldm9rZWQuc2lnbmFsLmFib3J0ZWQpcmV0dXJuO2lmKCF0aGlzLl9mZXRjaE5ld0FjY2Vzc1Rva2VuKCkpe3QoKTtyZXR1cm59dGhpcy5fc3luYygpfX19fSk7dmFyIF9kZSxmRixMYyxMZGU9cCgoKT0+e3BGKCk7X2RlPXt9LGZGPW51bGwsTGM9e2dldCBlZGl0b3JPcmlnaW4oKXtyZXR1cm4gZkY9PW51bGwmJihmRj1uZXcgVVJMKGdsb2JhbFRoaXMuV0VCQ09OVEFJTkVSX0FQSV9JRlJBTUVfVVJMPz8kNnIpLm9yaWdpbiksZkZ9LHNldCBlZGl0b3JPcmlnaW4oZSl7ZkY9bmV3IFVSTChlKS5vcmlnaW59LHNldFF1ZXJ5UGFyYW0oZSx0KXtfZGVbZV09dH0sZ2V0IHVybCgpe2xldCBlPW5ldyBVUkwodGhpcy5lZGl0b3JPcmlnaW4pO2UucGF0aG5hbWU9Ii9oZWFkbGVzcyI7Zm9yKGxldCB0IGluIF9kZSllLnNlYXJjaFBhcmFtcy5zZXQodCxfZGVbdF0pO3JldHVybiBlLnNlYXJjaFBhcmFtcy5zZXQoInZlcnNpb24iLCIxLjYuMSIpLGV9fX0pO2FzeW5jIGZ1bmN0aW9uIEI2cihlKXtsZXQgdD1uZXcgVGV4dEVuY29kZXIoKS5lbmNvZGUoZSkscj1uZXcgVWludDhBcnJheShhd2FpdCBjcnlwdG8uc3VidGxlLmRpZ2VzdCgiU0hBLTI1NiIsdCkpO3JldHVybiBidG9hKHIucmVkdWNlKChpLGEpPT5pK1N0cmluZy5mcm9tQ29kZVBvaW50KGEpLCIiKSkucmVwbGFjZSgvXCsvZywiLSIpLnJlcGxhY2UoL1wvL2csIl8iKS5yZXBsYWNlKC89KyQvLCIiKX1mdW5jdGlvbiBINnIoKXtsZXQgZT1uZXcgVWludDhBcnJheSg5Nik7Y3J5cHRvLmdldFJhbmRvbVZhbHVlcyhlKTtsZXQgdD0iIjtmb3IobGV0IHI9MDtyPDMyOysrcil0Kz1DWHIoZVszKnIrMF0sZVszKnIrMV0sZVszKnIrMl0pO3JldHVybiB0fWZ1bmN0aW9uIENYcihlLHQscil7bGV0IGk9ZT4+MixhPShlJjMpPDw0fHQ+PjQsbj10JjE1fChyJjE5Mik+PjIsbz1yJjYzO3JldHVybltpLGEsbixvXS5tYXAoVFhyKS5qb2luKCIiKX1mdW5jdGlvbiBUWHIoZSl7bGV0IHQ7cmV0dXJuIGU8MjY/dD1lKzY1OmU8NTI/dD1lLTI2Kzk3OmU8NjI/dD1lLTUyKzQ4OnQ9ZT09PTYyPzMwOjQ1LFN0cmluZy5mcm9tQ2hhckNvZGUodCl9dmFyIHE2cj1wKCgpPT57fSk7ZnVuY3Rpb24gajZyKCl7bGV0IGUsdDtmdW5jdGlvbiByKCl7dD1uZXcgUHJvbWlzZShpPT5lPWkpfXJldHVybiByKCkse2dldCBwcm9taXNlKCl7cmV0dXJuIHR9LHJlc29sdmUoaSl7cmV0dXJuIGUoaSl9LHJlc2V0OnJ9fXZhciBWNnI9cCgoKT0+e30pO2Z1bmN0aW9uIGpiKGUpe050LmJyb2FkY2FzdENoYW5uZWwmJihOdC5icm9hZGNhc3RDaGFubmVsLnBvc3RNZXNzYWdlKGUpLGxvY2FsU3RvcmFnZS5nZXRJdGVtKHVGKT09PSJ0cnVlIiYmZS50eXBlIT09ImF1dGgtbG9nb3V0IiYmKGxvY2FsU3RvcmFnZS5yZW1vdmVJdGVtKHVGKSxzZXRUaW1lb3V0KCgpPT57d2luZG93LmNsb3NlKCl9KSkpfWZ1bmN0aW9uIEFkZSgpe0tkLmZpcmVFdmVudCgpLGpiKHt0eXBlOiJhdXRoLWxvZ291dCJ9KX1mdW5jdGlvbiBXNnIoKXtyZXR1cm4gd2luZG93LmxvY2F0aW9uLmhyZWZ9YXN5bmMgZnVuY3Rpb24gRzZyKCl7bGV0IGU9SDZyKCk7bG9jYWxTdG9yYWdlLnNldEl0ZW0oZEYsZSk7bGV0IHQ9YXdhaXQgQjZyKGUpLHI9bmV3IFVSTCgiL29hdXRoL2F1dGhvcml6ZSIsTnQuZWRpdG9yT3JpZ2luKSx7c2VhcmNoUGFyYW1zOml9PXI7cmV0dXJuIGkuYXBwZW5kKCJyZXNwb25zZV90eXBlIiwiY29kZSIpLGkuYXBwZW5kKCJjbGllbnRfaWQiLE50LmNsaWVudElkKSxpLmFwcGVuZCgicmVkaXJlY3RfdXJpIixXNnIoKSksaS5hcHBlbmQoInNjb3BlIixOdC5vYXV0aFNjb3BlKSxpLmFwcGVuZCgiY29kZV9jaGFsbGVuZ2UiLHQpLGkuYXBwZW5kKCJjb2RlX2NoYWxsZW5nZV9tZXRob2QiLCJTMjU2Iiksci50b1N0cmluZygpfWZ1bmN0aW9uIERkZShlKXtpZighZSl0aHJvdyBuZXcgRXJyb3IoIk9vcHMhIFRva2VucyBpcyBub3QgZGVmaW5lZCB3aGVuIGl0IGFsd2F5cyBzaG91bGQgYmUuIil9dmFyIE50LFU2cixLZCxZNnIsRWRlPXAoKCk9PntUZGUoKTtwRigpO0xkZSgpO3E2cigpO1Y2cigpO0NkZSgpO050PXtpbml0aWFsaXplZDohMSxib290Q2FsbGVkOiExLGF1dGhDb21wbGV0ZTpqNnIoKSxjbGllbnRJZDoiIixvYXV0aFNjb3BlOiIiLGJyb2FkY2FzdENoYW5uZWw6bnVsbCxnZXQgZWRpdG9yT3JpZ2luKCl7cmV0dXJuIExjLmVkaXRvck9yaWdpbn0sdG9rZW5zOm51bGx9LFU2cj1uZXcgSmQsS2Q9bmV3IEpkO1k2cj17aW5pdCh7ZWRpdG9yT3JpZ2luOmUsY2xpZW50SWQ6dCxzY29wZTpyfSl7aWYoTnQuaW5pdGlhbGl6ZWQpdGhyb3cgbmV3IEVycm9yKCJJbml0IHNob3VsZCBvbmx5IGJlIGNhbGxlZCBvbmNlIik7aWYoITAmJk50LmJvb3RDYWxsZWQpdGhyb3cgbmV3IEVycm9yKCJgYXV0aC5pbml0YCBzaG91bGQgYWx3YXlzIGJlIGNhbGxlZCBiZWZvcmUgYFdlYkNvbnRhaW5lci5ib290YCIpO050LmluaXRpYWxpemVkPSEwLE50LnRva2Vucz1taC5mcm9tU3RvcmFnZSgpLE50LmNsaWVudElkPXQsTnQub2F1dGhTY29wZT1yLE50LmJyb2FkY2FzdENoYW5uZWw9bmV3IEJyb2FkY2FzdENoYW5uZWwoSTZyKSxMYy5zZXRRdWVyeVBhcmFtKCJjbGllbnRfaWQiLHQpLGUmJihMYy5lZGl0b3JPcmlnaW49bmV3IFVSTChlKS5vcmlnaW4pLEtkLmxpc3RlbigoKT0+TnQuYXV0aENvbXBsZXRlLnJlc2V0KCkpLE50LmJyb2FkY2FzdENoYW5uZWwuYWRkRXZlbnRMaXN0ZW5lcigibWVzc2FnZSIsYSk7YXN5bmMgZnVuY3Rpb24gYShsKXtsZXQgYz1sLmRhdGE7aWYoYy50eXBlPT09ImF1dGgtY29tcGxldGUiKXtOdC50b2tlbnM9bWguZnJvbVN0b3JhZ2UoKSxhd2FpdCBOdC50b2tlbnMuYWN0aXZhdGUoQWRlKSxOdC5hdXRoQ29tcGxldGUucmVzb2x2ZSgpO3JldHVybn1pZihjLnR5cGU9PT0iYXV0aC1mYWlsZWQiKXtVNnIuZmlyZUV2ZW50KGMpO3JldHVybn1pZihjLnR5cGU9PT0iYXV0aC1sb2dvdXQiKXtLZC5maXJlRXZlbnQoKTtyZXR1cm59fWlmKE50LnRva2Vucyl7bGV0IGw9TnQudG9rZW5zO2lmKGwub3JpZ2luPT09TnQuZWRpdG9yT3JpZ2luKXJldHVybihhc3luYygpPT57aWYoIWF3YWl0IGwuYWN0aXZhdGUoQWRlKSl7aWYoTnQudG9rZW5zIT09bClyZXR1cm47S2QuZmlyZUV2ZW50KCk7cmV0dXJufU50LmF1dGhDb21wbGV0ZS5yZXNvbHZlKCl9KSgpLHtzdGF0dXM6ImF1dGhvcml6ZWQifTtoRigpLE50LnRva2Vucz1udWxsfWxldCBuPW5ldyBVUkwod2luZG93LmxvY2F0aW9uLmhyZWYpLHtzZWFyY2hQYXJhbXM6b309bixzPSgpPT53aW5kb3cuaGlzdG9yeS5yZXBsYWNlU3RhdGUoe30sZG9jdW1lbnQudGl0bGUsbik7aWYoby5oYXMobEYpKXtsZXQgbD1vLmdldChsRiksYz1vLmdldCh6ZGUpO3JldHVybiBvLmRlbGV0ZShsRiksby5kZWxldGUoemRlKSxzKCksamIoe3R5cGU6ImF1dGgtZmFpbGVkIixlcnJvcjpsLGRlc2NyaXB0aW9uOmN9KSx7c3RhdHVzOiJhdXRoLWZhaWxlZCIsZXJyb3I6bCxkZXNjcmlwdGlvbjpjfX1pZihvLmhhcyhzRikpe2xldCBsPW8uZ2V0KHNGKSxjPU50LmVkaXRvck9yaWdpbjtvLmRlbGV0ZShzRikscygpO2xldCB1PWxvY2FsU3RvcmFnZS5nZXRJdGVtKGRGKTtyZXR1cm4gdT8obG9jYWxTdG9yYWdlLnJlbW92ZUl0ZW0oZEYpLG1oLmZyb21BdXRoQ29kZSh7ZWRpdG9yT3JpZ2luOmMsY2xpZW50SWQ6TnQuY2xpZW50SWQsYXV0aENvZGU6bCxjb2RlVmVyaWZpZXI6dSxyZWRpcmVjdFVyaTpXNnIoKX0pLnRoZW4oYXN5bmMgZD0+e2lmKE50LnRva2Vucz1kLERkZShOdC50b2tlbnMpLCFhd2FpdCBOdC50b2tlbnMuYWN0aXZhdGUoQWRlKSl0aHJvdyBuZXcgRXJyb3I7TnQuYXV0aENvbXBsZXRlLnJlc29sdmUoKSxqYih7dHlwZToiYXV0aC1jb21wbGV0ZSJ9KX0pLmNhdGNoKGQ9Pntjb25zb2xlLmVycm9yKGQpLEtkLmZpcmVFdmVudCgpLGpiKHt0eXBlOiJhdXRoLWxvZ291dCJ9KX0pLHtzdGF0dXM6ImF1dGhvcml6ZWQifSk6e3N0YXR1czoibmVlZC1hdXRoIn19cmV0dXJue3N0YXR1czoibmVlZC1hdXRoIn19LGFzeW5jIHN0YXJ0QXV0aEZsb3coe3BvcHVwOmV9PXt9KXtpZighTnQuaW5pdGlhbGl6ZWQpdGhyb3cgbmV3IEVycm9yKCJhdXRoLmluaXQgbXVzdCBiZSBjYWxsZWQgZmlyc3QiKTtpZihlKXtsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh1RiwidHJ1ZSIpO2xldCB0PTUwMCxyPTYyMCxpPXdpbmRvdy5zY3JlZW5MZWZ0Kyh3aW5kb3cub3V0ZXJXaWR0aC1yKS8yLGE9d2luZG93LnNjcmVlblRvcCsod2luZG93Lm91dGVySGVpZ2h0LXQpLzI7d2luZG93Lm9wZW4oYXdhaXQgRzZyKCksIl9ibGFuayIsYHBvcHVwLHdpZHRoPSR7cn0saGVpZ2h0PSR7dH0sbGVmdD0ke2l9LHRvcD0ke2F9YCl9ZWxzZSB3aW5kb3cubG9jYXRpb24uaHJlZj1hd2FpdCBHNnIoKX0sYXN5bmMgbG9nb3V0KHtpZ25vcmVSZXZva2VFcnJvcjplfT17fSl7YXdhaXQgTnQudG9rZW5zPy5yZXZva2UoTnQuY2xpZW50SWQsZT8/ITEpLEtkLmZpcmVFdmVudCgpLGpiKHt0eXBlOiJhdXRoLWxvZ291dCJ9KX0sbG9nZ2VkSW4oKXtyZXR1cm4gTnQuYXV0aENvbXBsZXRlLnByb21pc2V9LG9uKGUsdCl7c3dpdGNoKGUpe2Nhc2UiYXV0aC1mYWlsZWQiOnJldHVybiBVNnIubGlzdGVuKHQpO2Nhc2UibG9nZ2VkLW91dCI6cmV0dXJuIEtkLmxpc3Rlbih0KTtkZWZhdWx0OnRocm93IG5ldyBFcnJvcihgVW5zdXBwb3J0ZWQgZXZlbnQgdHlwZSAnJHtlfScuYCl9fX19KTt2YXIgQWMsbUY9cCgoKT0+eyhmdW5jdGlvbihlKXtlLlVuY2F1Z2h0RXhjZXB0aW9uPSJQUkVWSUVXX1VOQ0FVR0hUX0VYQ0VQVElPTiIsZS5VbmhhbmRsZWRSZWplY3Rpb249IlBSRVZJRVdfVU5IQU5ETEVEX1JFSkVDVElPTiIsZS5Db25zb2xlRXJyb3I9IlBSRVZJRVdfQ09OU09MRV9FUlJPUiJ9KShBY3x8KEFjPXt9KSl9KTtmdW5jdGlvbiBOZGUoZSx0PXNlbGYpe3QuYWRkRXZlbnRMaXN0ZW5lcigibWVzc2FnZSIsZnVuY3Rpb24gcihpKXtpZighaXx8IWkuZGF0YSlyZXR1cm47bGV0e2lkOmEsdHlwZTpuLHBhdGg6b309T2JqZWN0LmFzc2lnbih7cGF0aDpbXX0saS5kYXRhKSxzPShpLmRhdGEuYXJndW1lbnRMaXN0fHxbXSkubWFwKGU1KSxsO3RyeXtsZXQgYz1vLnNsaWNlKDAsLTEpLnJlZHVjZSgoZCxoKT0+ZFtoXSxlKSx1PW8ucmVkdWNlKChkLGgpPT5kW2hdLGUpO3N3aXRjaChuKXtjYXNlIDA6bD11O2JyZWFrO2Nhc2UgMTpjW28uc2xpY2UoLTEpWzBdXT1lNShpLmRhdGEudmFsdWUpLGw9ITA7YnJlYWs7Y2FzZSAyOmw9dS5hcHBseShjLHMpO2JyZWFrO2Nhc2UgMzp7bGV0IGQ9bmV3IHUoLi4ucyk7bD1pZHIoZCl9YnJlYWs7Y2FzZSA0OntsZXR7cG9ydDE6ZCxwb3J0MjpofT1uZXcgTWVzc2FnZUNoYW5uZWw7TmRlKGUsaCksbD1yZHIoZCxbZF0pfWJyZWFrO2Nhc2UgNTpsPXZvaWQgMDticmVha319Y2F0Y2goYyl7bD17dmFsdWU6YyxbSWRlXTowfX1Qcm9taXNlLnJlc29sdmUobCkuY2F0Y2goYz0+KHt2YWx1ZTpjLFtJZGVdOjB9KSkudGhlbihjPT57bGV0W3UsZF09T2RlKGMpO3QucG9zdE1lc3NhZ2UoT2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LHUpLHtpZDphfSksZCksbj09PTUmJih0LnJlbW92ZUV2ZW50TGlzdGVuZXIoIm1lc3NhZ2UiLHIpLEo2cih0KSl9KX0pLHQuc3RhcnQmJnQuc3RhcnQoKX1mdW5jdGlvbiBFWHIoZSl7cmV0dXJuIGUuY29uc3RydWN0b3IubmFtZT09PSJNZXNzYWdlUG9ydCJ9ZnVuY3Rpb24gSjZyKGUpe0VYcihlKSYmZS5jbG9zZSgpfWZ1bmN0aW9uIEs2cihlLHQpe3JldHVybiBGZGUoZSxbXSx0KX1mdW5jdGlvbiBnRihlKXtpZihlKXRocm93IG5ldyBFcnJvcigiUHJveHkgaGFzIGJlZW4gcmVsZWFzZWQgYW5kIGlzIG5vdCB1c2VhYmxlIil9ZnVuY3Rpb24gRmRlKGUsdD1bXSxyPWZ1bmN0aW9uKCl7fSl7bGV0IGk9ITEsYT1uZXcgUHJveHkocix7Z2V0KG4sbyl7aWYoZ0YoaSksbz09PVg2cilyZXR1cm4oKT0+Z2goZSx7dHlwZTo1LHBhdGg6dC5tYXAocz0+cy50b1N0cmluZygpKX0pLnRoZW4oKCk9PntKNnIoZSksaT0hMH0pO2lmKG89PT0idGhlbiIpe2lmKHQubGVuZ3RoPT09MClyZXR1cm57dGhlbjooKT0+YX07bGV0IHM9Z2goZSx7dHlwZTowLHBhdGg6dC5tYXAobD0+bC50b1N0cmluZygpKX0pLnRoZW4oZTUpO3JldHVybiBzLnRoZW4uYmluZChzKX1yZXR1cm4gRmRlKGUsWy4uLnQsb10pfSxzZXQobixvLHMpe2dGKGkpO2xldFtsLGNdPU9kZShzKTtyZXR1cm4gZ2goZSx7dHlwZToxLHBhdGg6Wy4uLnQsb10ubWFwKHU9PnUudG9TdHJpbmcoKSksdmFsdWU6bH0sYykudGhlbihlNSl9LGFwcGx5KG4sbyxzKXtnRihpKTtsZXQgbD10W3QubGVuZ3RoLTFdO2lmKGw9PT1aNnIpcmV0dXJuIGdoKGUse3R5cGU6NH0pLnRoZW4oZTUpO2lmKGw9PT0iYmluZCIpcmV0dXJuIEZkZShlLHQuc2xpY2UoMCwtMSkpO2xldFtjLHVdPWVkcihzKTtyZXR1cm4gZ2goZSx7dHlwZToyLHBhdGg6dC5tYXAoZD0+ZC50b1N0cmluZygpKSxhcmd1bWVudExpc3Q6Y30sdSkudGhlbihlNSl9LGNvbnN0cnVjdChuLG8pe2dGKGkpO2xldFtzLGxdPWVkcihvKTtyZXR1cm4gZ2goZSx7dHlwZTozLHBhdGg6dC5tYXAoYz0+Yy50b1N0cmluZygpKSxhcmd1bWVudExpc3Q6c30sbCkudGhlbihlNSl9fSk7cmV0dXJuIGF9ZnVuY3Rpb24gJFhyKGUpe3JldHVybiBBcnJheS5wcm90b3R5cGUuY29uY2F0LmFwcGx5KFtdLGUpfWZ1bmN0aW9uIGVkcihlKXtsZXQgdD1lLm1hcChPZGUpO3JldHVyblt0Lm1hcChyPT5yWzBdKSwkWHIodC5tYXAocj0+clsxXSkpXX1mdW5jdGlvbiByZHIoZSx0KXtyZXR1cm4gdGRyLnNldChlLHQpLGV9ZnVuY3Rpb24gaWRyKGUpe3JldHVybiBPYmplY3QuYXNzaWduKGUse1skZGVdOiEwfSl9ZnVuY3Rpb24gSVhyKGUsdD1zZWxmLHI9IioiKXtyZXR1cm57cG9zdE1lc3NhZ2U6KGksYSk9PmUucG9zdE1lc3NhZ2UoaSxyLGEpLGFkZEV2ZW50TGlzdGVuZXI6dC5hZGRFdmVudExpc3RlbmVyLmJpbmQodCkscmVtb3ZlRXZlbnRMaXN0ZW5lcjp0LnJlbW92ZUV2ZW50TGlzdGVuZXIuYmluZCh0KX19ZnVuY3Rpb24gT2RlKGUpe2ZvcihsZXRbdCxyXW9mIFBkZSlpZihyLmNhbkhhbmRsZShlKSl7bGV0W2ksYV09ci5zZXJpYWxpemUoZSk7cmV0dXJuW3t0eXBlOjMsbmFtZTp0LHZhbHVlOml9LGFdfXJldHVyblt7dHlwZTowLHZhbHVlOmV9LHRkci5nZXQoZSl8fFtdXX1mdW5jdGlvbiBlNShlKXtzd2l0Y2goZS50eXBlKXtjYXNlIDM6cmV0dXJuIFBkZS5nZXQoZS5uYW1lKS5kZXNlcmlhbGl6ZShlLnZhbHVlKTtjYXNlIDA6cmV0dXJuIGUudmFsdWV9fWZ1bmN0aW9uIGdoKGUsdCxyKXtyZXR1cm4gbmV3IFByb21pc2UoaT0+e2xldCBhPVBYcigpO2UuYWRkRXZlbnRMaXN0ZW5lcigibWVzc2FnZSIsZnVuY3Rpb24gbihvKXshby5kYXRhfHwhby5kYXRhLmlkfHxvLmRhdGEuaWQhPT1hfHwoZS5yZW1vdmVFdmVudExpc3RlbmVyKCJtZXNzYWdlIixuKSxpKG8uZGF0YSkpfSksZS5zdGFydCYmZS5zdGFydCgpLGUucG9zdE1lc3NhZ2UoT2JqZWN0LmFzc2lnbih7aWQ6YX0sdCkscil9KX1mdW5jdGlvbiBQWHIoKXtyZXR1cm4gbmV3IEFycmF5KDQpLmZpbGwoMCkubWFwKCgpPT5NYXRoLmZsb29yKE1hdGgucmFuZG9tKCkqTnVtYmVyLk1BWF9TQUZFX0lOVEVHRVIpLnRvU3RyaW5nKDE2KSkuam9pbigiLSIpfXZhciBfWHIsTFhyLEJvLCRkZSxaNnIsWDZyLElkZSxRNnIsQVhyLERYcixQZGUsdGRyLGFkcj1wKCgpPT57X1hyPU9iamVjdC5kZWZpbmVQcm9wZXJ0eSxMWHI9KGUsdCk9Pntmb3IodmFyIHIgaW4gdClfWHIoZSxyLHtnZXQ6dFtyXSxlbnVtZXJhYmxlOiEwfSl9LEJvPXt9O0xYcihCbyx7Y3JlYXRlRW5kcG9pbnQ6KCk9Plo2cixleHBvc2U6KCk9Pk5kZSxwcm94eTooKT0+aWRyLHByb3h5TWFya2VyOigpPT4kZGUscmVsZWFzZVByb3h5OigpPT5YNnIsdHJhbnNmZXI6KCk9PnJkcix0cmFuc2ZlckhhbmRsZXJzOigpPT5QZGUsd2luZG93RW5kcG9pbnQ6KCk9PklYcix3cmFwOigpPT5LNnJ9KTskZGU9U3ltYm9sKCJDb21saW5rLnByb3h5IiksWjZyPVN5bWJvbCgiQ29tbGluay5lbmRwb2ludCIpLFg2cj1TeW1ib2woIkNvbWxpbmsucmVsZWFzZVByb3h5IiksSWRlPVN5bWJvbCgiQ29tbGluay50aHJvd24iKSxRNnI9ZT0+dHlwZW9mIGU9PSJvYmplY3QiJiZlIT09bnVsbHx8dHlwZW9mIGU9PSJmdW5jdGlvbiIsQVhyPXtjYW5IYW5kbGU6ZT0+UTZyKGUpJiZlWyRkZV0sc2VyaWFsaXplKGUpe2xldHtwb3J0MTp0LHBvcnQyOnJ9PW5ldyBNZXNzYWdlQ2hhbm5lbDtyZXR1cm4gTmRlKGUsdCksW3IsW3JdXX0sZGVzZXJpYWxpemUoZSl7cmV0dXJuIGUuc3RhcnQoKSxLNnIoZSl9fSxEWHI9e2NhbkhhbmRsZTplPT5RNnIoZSkmJklkZSBpbiBlLHNlcmlhbGl6ZSh7dmFsdWU6ZX0pe2xldCB0O3JldHVybiBlIGluc3RhbmNlb2YgRXJyb3I/dD17aXNFcnJvcjohMCx2YWx1ZTp7bWVzc2FnZTplLm1lc3NhZ2UsbmFtZTplLm5hbWUsc3RhY2s6ZS5zdGFja319OnQ9e2lzRXJyb3I6ITEsdmFsdWU6ZX0sW3QsW11dfSxkZXNlcmlhbGl6ZShlKXt0aHJvdyBlLmlzRXJyb3I/T2JqZWN0LmFzc2lnbihuZXcgRXJyb3IoZS52YWx1ZS5tZXNzYWdlKSxlLnZhbHVlKTplLnZhbHVlfX0sUGRlPW5ldyBNYXAoW1sicHJveHkiLEFYcl0sWyJ0aHJvdyIsRFhyXV0pO3Rkcj1uZXcgV2Vha01hcH0pO3ZhciBuZHI9cCgoKT0+e30pO2Z1bmN0aW9uIFJkZShlKXtyZXR1cm4hKGU9PW51bGx8fHR5cGVvZiBlIT0ib2JqZWN0Inx8ISgidHlwZSJpbiBlKXx8IU5Yci5pbmNsdWRlcyhlLnR5cGUpKX12YXIgTlhyLG9kcj1wKCgpPT57bUYoKTtOWHI9W0FjLkNvbnNvbGVFcnJvcixBYy5VbmNhdWdodEV4Y2VwdGlvbixBYy5VbmhhbmRsZWRSZWplY3Rpb25dfSk7dmFyIEJkZT1wKCgpPT57bmRyKCk7bUYoKTtvZHIoKX0pO2Z1bmN0aW9uIHQ1KGUpe2xldCB0PU9iamVjdC5jcmVhdGUobnVsbCk7cmV0dXJuIGU/T2JqZWN0LmFzc2lnbih0LGUpOnR9dmFyIHNkcj1wKCgpPT57fSk7ZnVuY3Rpb24gSGRlKGUpe2xldCB0PXtkOnt9fTtmb3IobGV0IHIgb2YgT2JqZWN0LmtleXMoZSkpe2xldCBpPWVbcl07aWYoImZpbGUiaW4gaSl7aWYoInN5bWxpbmsiaW4gaS5maWxlKXt0LmRbcl09e2Y6e2w6aS5maWxlLnN5bWxpbmt9fTtjb250aW51ZX1sZXQgbj1pLmZpbGUuY29udGVudHMsbz10eXBlb2Ygbj09InN0cmluZyI/bjpGWHIuZGVjb2RlKG4pLHM9dHlwZW9mIG49PSJzdHJpbmciP3t9OntiOiEwfTt0LmRbcl09e2Y6e2M6bywuLi5zfX07Y29udGludWV9bGV0IGE9SGRlKGkuZGlyZWN0b3J5KTt0LmRbcl09YX1yZXR1cm4gdH1mdW5jdGlvbiBxZGUoZSl7bGV0IHQ9dDUoKTtpZigiZiJpbiBlKXRocm93IG5ldyBFcnJvcigiSXQgaXMgbm90IHBvc3NpYmxlIHRvIGV4cG9ydCBhIHNpbmdsZSBmaWxlIGluIHRoZSBKU09OIGZvcm1hdC4iKTtpZigiZCJpbiBlKWZvcihsZXQgciBvZiBPYmplY3Qua2V5cyhlLmQpKXtsZXQgaT1lLmRbcl07ImQiaW4gaT90W3JdPXQ1KHtkaXJlY3Rvcnk6cWRlKGkpfSk6ImYiaW4gaSYmKCJjImluIGkuZj90W3JdPXQ1KHtmaWxlOnQ1KHtjb250ZW50czppLmYuYj9PWHIoaS5mLmMpOmkuZi5jfSl9KToibCJpbiBpLmYmJih0W3JdPXQ1KHtmaWxlOnQ1KHtzeW1saW5rOmkuZi5sfSl9KSkpfXJldHVybiB0fWZ1bmN0aW9uIE9YcihlKXtsZXQgdD1uZXcgVWludDhBcnJheShlLmxlbmd0aCk7Zm9yKGxldCByPTA7cjxlLmxlbmd0aDtyKyspdFtyXT1lW3JdLmNoYXJDb2RlQXQoMCk7cmV0dXJuIHR9dmFyIEZYcixsZHI9cCgoKT0+e3NkcigpO0ZYcj1uZXcgVGV4dERlY29kZXIoImxhdGluMSIpfSk7ZnVuY3Rpb24gbjlhKGUpe2lmKE50LmJvb3RDYWxsZWQpdGhyb3cgbmV3IEVycm9yKCJgY29uZmlndXJlQVBJS2V5YCBzaG91bGQgYWx3YXlzIGJlIGNhbGxlZCBiZWZvcmUgYFdlYkNvbnRhaW5lci5ib290YCIpO0xjLnNldFF1ZXJ5UGFyYW0oImNsaWVudF9pZCIsZSl9YXN5bmMgZnVuY3Rpb24gcVhyKGUpe2xldHtzZXJ2ZXJQcm9taXNlOnR9PWpYcihlKSxpPWF3YWl0KGF3YWl0IHQpLmJ1aWxkKHtob3N0OndpbmRvdy5sb2NhdGlvbi5ob3N0LHZlcnNpb246IjEuNi4xIix3b3JrZGlyTmFtZTplLndvcmtkaXJOYW1lLGZvcndhcmRQcmV2aWV3RXJyb3JzOmUuZm9yd2FyZFByZXZpZXdFcnJvcnN9KSxbYSxuLG9dPWF3YWl0IFByb21pc2UuYWxsKFtpLmZzKCksaS5wcmV2aWV3U2NyaXB0KCksaS5ydW50aW1lSW5mbygpXSk7cmV0dXJuIG5ldyBWYihpLGEsbixvKX1mdW5jdGlvbiBZZGUoZSl7aWYoZSE9bnVsbClyZXR1cm4gdD0+e3QgaW5zdGFuY2VvZiBVaW50OEFycmF5P2UoY2RyLmRlY29kZSh0KSk6dD09bnVsbCYmZShudWxsKX19ZnVuY3Rpb24geEYoZSl7aWYoZSE9bnVsbClyZXR1cm4gQm8ucHJveHkoZSl9ZnVuY3Rpb24galhyKGUpe2lmKHZGIT1udWxsKXJldHVybiBlLmNvZXAhPT1qZGUuY29lcCYmKGNvbnNvbGUud2FybihgQXR0ZW1wdGluZyB0byBib290IFdlYkNvbnRhaW5lciB3aXRoICdjb2VwOiAke2UuY29lcH0nYCksY29uc29sZS53YXJuKGBGaXJzdCBib290IGhhZCAnY29lcDogJHtqZGUuY29lcH0nLCBuZXcgc2V0dGluZ3Mgd2lsbCBub3QgdGFrZSBlZmZlY3QhYCkpLHtzZXJ2ZXJQcm9taXNlOnZGfTtlLmNvZXAmJkxjLnNldFF1ZXJ5UGFyYW0oImNvZXAiLGUuY29lcCksZS5leHBlcmltZW50YWxOb2RlJiZMYy5zZXRRdWVyeVBhcmFtKCJleHBlcmltZW50YWxfbm9kZSIsIjEiKTtsZXQgdD1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJpZnJhbWUiKTt0LnN0eWxlLmRpc3BsYXk9Im5vbmUiLHQuc2V0QXR0cmlidXRlKCJhbGxvdyIsImNyb3NzLW9yaWdpbi1pc29sYXRlZCIpO2xldCByPUxjLnVybDt0LnNyYz1yLnRvU3RyaW5nKCk7bGV0e29yaWdpbjppfT1yO3JldHVybiBqZGU9ey4uLmV9LHZGPW5ldyBQcm9taXNlKGE9PntsZXQgbj1vPT57aWYoby5vcmlnaW4hPT1pKXJldHVybjtsZXR7ZGF0YTpzfT1vO2lmKHMudHlwZT09PSJpbml0Iil7YShCby53cmFwKG8ucG9ydHNbMF0pKTtyZXR1cm59aWYocy50eXBlPT09Indhcm5pbmciKXtjb25zb2xlW3MubGV2ZWxdLmNhbGwoY29uc29sZSxzLm1lc3NhZ2UpO3JldHVybn19O3dpbmRvdy5hZGRFdmVudExpc3RlbmVyKCJtZXNzYWdlIixuKX0pLGRvY3VtZW50LmJvZHkuaW5zZXJ0QmVmb3JlKHQsbnVsbCkse3NlcnZlclByb21pc2U6dkZ9fWZ1bmN0aW9uIFZYcihlKXtyZXR1cm4gdHlwZW9mIGVbMF09PSJzdHJpbmcifWZ1bmN0aW9uIFVYcihlKXtyZXR1cm4gZVswXWluc3RhbmNlb2YgVWludDhBcnJheX1mdW5jdGlvbiBXWHIoKXtsZXQgZT1udWxsO3JldHVybntzdHJlYW06bmV3IFJlYWRhYmxlU3RyZWFtKHtzdGFydChpKXtlPWl9fSkscHVzaDppPT57aSE9bnVsbD9lPy5lbnF1ZXVlKGkpOihlPy5jbG9zZSgpLGU9bnVsbCl9fX1mdW5jdGlvbiBHWHIoZSl7bGV0IHQ9ITEscj0oKT0+e307cmV0dXJue3N1YnNjcmliZShhKXtyZXR1cm4gYS50aGVuKG49PntyPW4sdCYmcigpfSksKCk9Pnt0PSEwLHIoKX19LGxpc3RlbmVyOigoLi4uYSk9Pnt0fHxlKC4uLmEpfSl9fXZhciBhOWEsYkYsdkYsamRlLGNkcixSWHIsVmIsQlhyLEhYcixWZGUsVWRlLFdkZSxHZGUsZGRyPXAoKCk9PntFZGUoKTttRigpO2FkcigpO0VkZSgpO1RkZSgpO0xkZSgpO0JkZSgpO2xkcigpO0JkZSgpO2E5YT1ZNnIsYkY9bnVsbCx2Rj1udWxsLGpkZT17fSxjZHI9bmV3IFRleHREZWNvZGVyLFJYcj1uZXcgVGV4dEVuY29kZXIsVmI9Y2xhc3MgZXtfaW5zdGFuY2U7X3J1bnRpbWVJbmZvO2ZzO3N0YXRpYyBfaW5zdGFuY2U9bnVsbDtzdGF0aWMgX3RlYXJkb3duUHJvbWlzZT1udWxsO190b3JuRG93bj0hMTtfdW5zdWJzY3JpYmVGcm9tVG9rZW5DaGFuZ2VkTGlzdGVuZXI9KCk9Pnt9O2NvbnN0cnVjdG9yKHQscixpLGEpe3RoaXMuX2luc3RhbmNlPXQsdGhpcy5fcnVudGltZUluZm89YSx0aGlzLmZzPW5ldyBHZGUociksTnQuaW5pdGlhbGl6ZWQmJih0aGlzLl91bnN1YnNjcmliZUZyb21Ub2tlbkNoYW5nZWRMaXN0ZW5lcj1SNnIobj0+e3RoaXMuX2luc3RhbmNlLnNldENyZWRlbnRpYWxzKHthY2Nlc3NUb2tlbjpuLGVkaXRvck9yaWdpbjpOdC5lZGl0b3JPcmlnaW59KX0pLChhc3luYygpPT57YXdhaXQgTnQuYXV0aENvbXBsZXRlLnByb21pc2UsIXRoaXMuX3Rvcm5Eb3duJiYoRGRlKE50LnRva2VucyksYXdhaXQgdGhpcy5faW5zdGFuY2Uuc2V0Q3JlZGVudGlhbHMoe2FjY2Vzc1Rva2VuOk50LnRva2Vucy5hY2Nlc3MsZWRpdG9yT3JpZ2luOk50LmVkaXRvck9yaWdpbn0pKX0pKCkuY2F0Y2gobj0+e2NvbnNvbGUuZXJyb3Iobil9KSl9YXN5bmMgc3Bhd24odCxyLGkpe2xldCBhPVtdO0FycmF5LmlzQXJyYXkocik/YT1yOmk9cjtsZXQgbixvPW5ldyBSZWFkYWJsZVN0cmVhbTtpZihpPy5vdXRwdXQhPT0hMSl7bGV0IHY9V1hyKCk7bj12LnB1c2gsbz12LnN0cmVhbX1sZXQgcyxsLGMsdSxkPXhGKFlkZShuKSksaD14RihZZGUocykpLGY9eEYoWWRlKGMpKSx4PWF3YWl0IHRoaXMuX2luc3RhbmNlLnJ1bih7Y29tbWFuZDp0LGFyZ3M6YSxjd2Q6aT8uY3dkLGVudjppPy5lbnYsdGVybWluYWw6aT8udGVybWluYWx9LGgsZixkKTtyZXR1cm4gbmV3IFdkZSh4LG8sbCx1KX1hc3luYyBleHBvcnQodCxyKXtsZXQgaT17Zm9ybWF0OnI/LmZvcm1hdD8/Impzb24iLGluY2x1ZGVzOnI/LmluY2x1ZGVzLGV4Y2x1ZGVzOnI/LmV4Y2x1ZGVzLGV4dGVybmFsOiEwfSxhPWF3YWl0IHRoaXMuX2luc3RhbmNlLnNlcmlhbGl6ZSh0LGkpO2lmKGkuZm9ybWF0PT09Impzb24iKXtsZXQgbj1KU09OLnBhcnNlKGNkci5kZWNvZGUoYSkpO3JldHVybiBxZGUobil9cmV0dXJuIGF9b24odCxyKXtpZih0PT09InByZXZpZXctbWVzc2FnZSIpe2xldCBuPXI7cj0obz0+e1JkZShvKSYmbihvKX0pfWxldHtsaXN0ZW5lcjppLHN1YnNjcmliZTphfT1HWHIocik7cmV0dXJuIGEodGhpcy5faW5zdGFuY2Uub24odCxCby5wcm94eShpKSkpfW1vdW50KHQscil7bGV0IGk9dCBpbnN0YW5jZW9mIFVpbnQ4QXJyYXk/dDp0IGluc3RhbmNlb2YgQXJyYXlCdWZmZXI/bmV3IFVpbnQ4QXJyYXkodCk6UlhyLmVuY29kZShKU09OLnN0cmluZ2lmeShIZGUodCkpKTtyZXR1cm4gdGhpcy5faW5zdGFuY2UubG9hZEZpbGVzKEJvLnRyYW5zZmVyKGksW2kuYnVmZmVyXSkse21vdW50UG9pbnRzOnI/Lm1vdW50UG9pbnR9KX1zZXRQcmV2aWV3U2NyaXB0KHQscil7cmV0dXJuIHRoaXMuX2luc3RhbmNlLnNldFByZXZpZXdTY3JpcHQodCxyKX1nZXQgcGF0aCgpe3JldHVybiB0aGlzLl9ydW50aW1lSW5mby5wYXRofWdldCB3b3JrZGlyKCl7cmV0dXJuIHRoaXMuX3J1bnRpbWVJbmZvLmN3ZH10ZWFyZG93bigpe2lmKHRoaXMuX3Rvcm5Eb3duKXRocm93IG5ldyBFcnJvcigiV2ViQ29udGFpbmVyIGFscmVhZHkgdG9ybiBkb3duIik7dGhpcy5fdG9ybkRvd249ITAsdGhpcy5fdW5zdWJzY3JpYmVGcm9tVG9rZW5DaGFuZ2VkTGlzdGVuZXIoKTtsZXQgdD1hc3luYygpPT57dHJ5e2F3YWl0IHRoaXMuZnMuX3RlYXJkb3duKCksYXdhaXQgdGhpcy5faW5zdGFuY2UudGVhcmRvd24oKX1maW5hbGx5e3RoaXMuX2luc3RhbmNlW0JvLnJlbGVhc2VQcm94eV0oKSxlLl9pbnN0YW5jZT09PXRoaXMmJihlLl9pbnN0YW5jZT1udWxsKX19O2UuX3RlYXJkb3duUHJvbWlzZT10KCl9c3RhdGljIGFzeW5jIGJvb3QodD17fSl7YXdhaXQgdGhpcy5fdGVhcmRvd25Qcm9taXNlLGUuX3RlYXJkb3duUHJvbWlzZT1udWxsO2xldHt3b3JrZGlyTmFtZTpyfT10O2lmKHdpbmRvdy5jcm9zc09yaWdpbklzb2xhdGVkJiZ0LmNvZXA9PT0ibm9uZSImJmNvbnNvbGUud2FybihgQSBDcm9zcy1PcmlnaW4tRW1iZWRkZXItUG9saWN5IGhlYWRlciBpcyByZXF1aXJlZCBpbiBjcm9zcyBvcmlnaW4gaXNvbGF0ZWQgZW52aXJvbm1lbnRzLgpTZXQgdGhlICdjb2VwJyBvcHRpb24gdG8gJ3JlcXVpcmUtY29ycCcuYCkscj8uaW5jbHVkZXMoIi8iKXx8cj09PSIuLiJ8fHI9PT0iLiIpdGhyb3cgbmV3IEVycm9yKCJ3b3JrZGlyTmFtZSBzaG91bGQgYmUgYSB2YWxpZCBmb2xkZXIgbmFtZSIpO2ZvcihOdC5ib290Q2FsbGVkPSEwO2JGOylhd2FpdCBiRjtpZihlLl9pbnN0YW5jZSl0aHJvdyBuZXcgRXJyb3IoIk9ubHkgYSBzaW5nbGUgV2ViQ29udGFpbmVyIGluc3RhbmNlIGNhbiBiZSBib290ZWQiKTtsZXQgaT1xWHIodCk7YkY9aS5jYXRjaCgoKT0+e30pO3RyeXtsZXQgYT1hd2FpdCBpO3JldHVybiBlLl9pbnN0YW5jZT1hLGF9ZmluYWxseXtiRj1udWxsfX19O0JYcj0xLEhYcj0yLFZkZT1jbGFzc3tuYW1lO190eXBlO2NvbnN0cnVjdG9yKHQscil7dGhpcy5uYW1lPXQsdGhpcy5fdHlwZT1yfWlzRmlsZSgpe3JldHVybiB0aGlzLl90eXBlPT09QlhyfWlzRGlyZWN0b3J5KCl7cmV0dXJuIHRoaXMuX3R5cGU9PT1IWHJ9fSxVZGU9Y2xhc3N7X2FwaUNsaWVudDtfcGF0aDtfb3B0aW9ucztfbGlzdGVuZXI7X3dyYXBwZWRMaXN0ZW5lcjtfd2F0Y2hlcjtfY2xvc2VkPSExO2NvbnN0cnVjdG9yKHQscixpLGEpe3RoaXMuX2FwaUNsaWVudD10LHRoaXMuX3BhdGg9cix0aGlzLl9vcHRpb25zPWksdGhpcy5fbGlzdGVuZXI9YSx0aGlzLl9hcGlDbGllbnQuX3dhdGNoZXJzLmFkZCh0aGlzKSx0aGlzLl93cmFwcGVkTGlzdGVuZXI9KG4sbyk9Pnt0aGlzLl9saXN0ZW5lciYmIXRoaXMuX2Nsb3NlZCYmdGhpcy5fbGlzdGVuZXIobixvKX0sdGhpcy5fYXBpQ2xpZW50Ll9mcy53YXRjaCh0aGlzLl9wYXRoLHRoaXMuX29wdGlvbnMseEYodGhpcy5fd3JhcHBlZExpc3RlbmVyKSkudGhlbihuPT57aWYodGhpcy5fd2F0Y2hlcj1uLHRoaXMuX2Nsb3NlZClyZXR1cm4gdGhpcy5fdGVhcmRvd24oKX0pLmNhdGNoKGNvbnNvbGUuZXJyb3IpfWFzeW5jIGNsb3NlKCl7dGhpcy5fY2xvc2VkfHwodGhpcy5fY2xvc2VkPSEwLHRoaXMuX2FwaUNsaWVudC5fd2F0Y2hlcnMuZGVsZXRlKHRoaXMpLGF3YWl0IHRoaXMuX3RlYXJkb3duKCkpfWFzeW5jIF90ZWFyZG93bigpe2F3YWl0IHRoaXMuX3dhdGNoZXI/LmNsb3NlKCkuZmluYWxseSgoKT0+e3RoaXMuX3dhdGNoZXI/LltCby5yZWxlYXNlUHJveHldKCl9KX19LFdkZT1jbGFzc3tvdXRwdXQ7aW5wdXQ7ZXhpdDtfcHJvY2VzcztzdGRvdXQ7c3RkZXJyO2NvbnN0cnVjdG9yKHQscixpLGEpe3RoaXMub3V0cHV0PXIsdGhpcy5fcHJvY2Vzcz10LHRoaXMuaW5wdXQ9bmV3IFdyaXRhYmxlU3RyZWFtKHt3cml0ZTpuPT57dGhpcy5fZ2V0UHJvY2VzcygpPy53cml0ZShuKS5jYXRjaCgoKT0+e30pfX0pLHRoaXMuZXhpdD10aGlzLl9vbkV4aXQoKSx0aGlzLnN0ZG91dD1pLHRoaXMuc3RkZXJyPWF9a2lsbCgpe3RoaXMuX3Byb2Nlc3M/LmtpbGwoKX1yZXNpemUodCl7dGhpcy5fZ2V0UHJvY2VzcygpPy5yZXNpemUodCl9YXN5bmMgX29uRXhpdCgpe3RyeXtyZXR1cm4gYXdhaXQgdGhpcy5fcHJvY2Vzcy5vbkV4aXR9ZmluYWxseXt0aGlzLl9wcm9jZXNzPy5bQm8ucmVsZWFzZVByb3h5XSgpLHRoaXMuX3Byb2Nlc3M9bnVsbH19X2dldFByb2Nlc3MoKXtyZXR1cm4gdGhpcy5fcHJvY2Vzcz09bnVsbCYmY29uc29sZS53YXJuKCJUaGlzIHByb2Nlc3MgYWxyZWFkeSBleGl0ZWQiKSx0aGlzLl9wcm9jZXNzfX0sR2RlPWNsYXNze19mcztfd2F0Y2hlcnM9bmV3IFNldChbXSk7Y29uc3RydWN0b3IodCl7dGhpcy5fZnM9dH1ybSguLi50KXtyZXR1cm4gdGhpcy5fZnMucm0oLi4udCl9YXN5bmMgcmVhZEZpbGUodCxyKXtyZXR1cm4gYXdhaXQgdGhpcy5fZnMucmVhZEZpbGUodCxyKX1hc3luYyByZW5hbWUodCxyKXtyZXR1cm4gYXdhaXQgdGhpcy5fZnMucmVuYW1lKHQscil9YXN5bmMgd3JpdGVGaWxlKHQscixpKXtpZihyIGluc3RhbmNlb2YgVWludDhBcnJheSl7bGV0IGE9ci5idWZmZXIuc2xpY2Uoci5ieXRlT2Zmc2V0LHIuYnl0ZU9mZnNldCtyLmJ5dGVMZW5ndGgpO3I9Qm8udHJhbnNmZXIobmV3IFVpbnQ4QXJyYXkoYSksW2FdKX1hd2FpdCB0aGlzLl9mcy53cml0ZUZpbGUodCxyLGkpfWFzeW5jIHJlYWRkaXIodCxyKXtsZXQgaT1hd2FpdCB0aGlzLl9mcy5yZWFkZGlyKHQscik7cmV0dXJuIFZYcihpKXx8VVhyKGkpP2k6aS5tYXAobj0+bmV3IFZkZShuLm5hbWUsblsiU3ltYm9sKHR5cGUpIl0pKX1hc3luYyBta2Rpcih0LHIpe3JldHVybiBhd2FpdCB0aGlzLl9mcy5ta2Rpcih0LHIpfXdhdGNoKHQscixpKXtyZXR1cm4gdHlwZW9mIHI9PSJmdW5jdGlvbiImJihpPXIscj1udWxsKSxuZXcgVWRlKHRoaXMsdCxyLGkpfWFzeW5jIF90ZWFyZG93bigpe3RoaXMuX2ZzW0JvLnJlbGVhc2VQcm94eV0oKSxhd2FpdCBQcm9taXNlLmFsbChbLi4udGhpcy5fd2F0Y2hlcnNdLm1hcCh0PT50LmNsb3NlKCkpKX19fSk7dmFyIHI1LHVkcj1wKCgpPT57ZGRyKCk7cjU9Y2xhc3MgZXtzdGF0aWMgc2hhcmVkQ29udGFpbmVyPW51bGw7c3RhdGljIGJvb3RQcm9taXNlPW51bGw7X3JlYWR5PSExO3R5cGU9IndlYmNvbnRhaW5lciI7Z2V0IHJlYWR5KCl7cmV0dXJuIHRoaXMuX3JlYWR5fWdldCBjb250YWluZXIoKXtyZXR1cm4gZS5zaGFyZWRDb250YWluZXJ9YXN5bmMgaW5pdCgpe2lmKCEodGhpcy5fcmVhZHkmJmUuc2hhcmVkQ29udGFpbmVyKSl7aWYoZS5ib290UHJvbWlzZSl7YXdhaXQgZS5ib290UHJvbWlzZSx0aGlzLl9yZWFkeT0hMDtyZXR1cm59aWYoZS5zaGFyZWRDb250YWluZXIpe3RoaXMuX3JlYWR5PSEwO3JldHVybn1pZih0eXBlb2YgU2hhcmVkQXJyYXlCdWZmZXI+InUiKXRocm93IG5ldyBFcnJvcihgV2ViQ29udGFpbmVyIHJlcXVpcmVzIFNoYXJlZEFycmF5QnVmZmVyIHdoaWNoIGlzIG5vdCBhdmFpbGFibGUuIEVuc3VyZSB5b3VyIHNlcnZlciBzZW5kcyB0aGVzZSBoZWFkZXJzOgogIENyb3NzLU9yaWdpbi1PcGVuZXItUG9saWN5OiBzYW1lLW9yaWdpbgogIENyb3NzLU9yaWdpbi1FbWJlZGRlci1Qb2xpY3k6IHJlcXVpcmUtY29ycGApO2UuYm9vdFByb21pc2U9VmIuYm9vdCgpO3RyeXtlLnNoYXJlZENvbnRhaW5lcj1hd2FpdCBlLmJvb3RQcm9taXNlLHRoaXMuX3JlYWR5PSEwfWNhdGNoKHQpe3Rocm93IGUuYm9vdFByb21pc2U9bnVsbCx0fX19YXN5bmMgZGVzdHJveSgpe2Uuc2hhcmVkQ29udGFpbmVyJiYoZS5zaGFyZWRDb250YWluZXIudGVhcmRvd24oKSxlLnNoYXJlZENvbnRhaW5lcj1udWxsLGUuYm9vdFByb21pc2U9bnVsbCx0aGlzLl9yZWFkeT0hMSl9YXN5bmMgcmVhZEZpbGUodCl7cmV0dXJuIHRoaXMuZW5zdXJlUmVhZHkoKSxhd2FpdCB0aGlzLmNvbnRhaW5lci5mcy5yZWFkRmlsZSh0LCJ1dGYtOCIpfWFzeW5jIHdyaXRlRmlsZSh0LHIpe3RoaXMuZW5zdXJlUmVhZHkoKSxhd2FpdCB0aGlzLmNvbnRhaW5lci5mcy53cml0ZUZpbGUodCxyLCJ1dGYtOCIpfWFzeW5jIHJlYWREaXIodCl7cmV0dXJuIHRoaXMuZW5zdXJlUmVhZHkoKSwoYXdhaXQgdGhpcy5jb250YWluZXIuZnMucmVhZGRpcih0LHt3aXRoRmlsZVR5cGVzOiEwfSkpLm1hcChpPT4oe3R5cGU6aS5pc0RpcmVjdG9yeSgpPyJkaXJlY3RvcnkiOiJmaWxlIixuYW1lOmkubmFtZSxwYXRoOnQ9PT0iLyI/YC8ke2kubmFtZX1gOmAke3R9LyR7aS5uYW1lfWB9KSl9YXN5bmMgbWtkaXIodCl7dGhpcy5lbnN1cmVSZWFkeSgpLGF3YWl0IHRoaXMuY29udGFpbmVyLmZzLm1rZGlyKHQse3JlY3Vyc2l2ZTohMH0pfWFzeW5jIHJtKHQscil7dGhpcy5lbnN1cmVSZWFkeSgpLGF3YWl0IHRoaXMuY29udGFpbmVyLmZzLnJtKHQse3JlY3Vyc2l2ZTpyPy5yZWN1cnNpdmU/PyExfSl9YXN5bmMgZXhpc3RzKHQpe3RoaXMuZW5zdXJlUmVhZHkoKTt0cnl7cmV0dXJuIGF3YWl0IHRoaXMuY29udGFpbmVyLmZzLnJlYWRGaWxlKHQpLCEwfWNhdGNoe3RyeXtyZXR1cm4gYXdhaXQgdGhpcy5jb250YWluZXIuZnMucmVhZGRpcih0KSwhMH1jYXRjaHtyZXR1cm4hMX19fXdhdGNoKHQscixpKXt0aGlzLmVuc3VyZVJlYWR5KCk7bGV0IGE9dGhpcy5jb250YWluZXIuZnMud2F0Y2godCx7cmVjdXJzaXZlOmk/LnJlY3Vyc2l2ZT8/ITF9LHIpO3JldHVybntzdG9wOigpPT5hLmNsb3NlKCl9fWFzeW5jIHNwYXduKHQscj1bXSl7dGhpcy5lbnN1cmVSZWFkeSgpO2xldCBpPWF3YWl0IHRoaXMuY29udGFpbmVyLnNwYXduKHQscik7cmV0dXJue291dHB1dDppLm91dHB1dCxpbnB1dDppLmlucHV0LGV4aXQ6aS5leGl0LGtpbGw6KCk9Pmkua2lsbCgpfX1hc3luYyBtb3VudCh0KXt0aGlzLmVuc3VyZVJlYWR5KCksYXdhaXQgdGhpcy5jb250YWluZXIubW91bnQodCl9Z2V0Q29udGFpbmVyKCl7cmV0dXJuIHRoaXMuZW5zdXJlUmVhZHkoKSx0aGlzLmNvbnRhaW5lcn1lbnN1cmVSZWFkeSgpe2lmKCF0aGlzLl9yZWFkeXx8IXRoaXMuY29udGFpbmVyKXRocm93IG5ldyBFcnJvcigiV2ViQ29udGFpbmVyRW52aXJvbm1lbnQgbm90IGluaXRpYWxpemVkLiBDYWxsIGluaXQoKSBmaXJzdC4iKX19fSk7dmFyIHBkcj1wKCgpPT57dWRyKCl9KTt2YXIgeUY9cCgoKT0+e0U2cigpO3BkcigpfSk7dmFyIGhkcj1wKCgpPT57ZjZlKCl9KTt2YXIgVWIsWmRlPXAoKCk9PntVYj1jbGFzc3t0YWJzPW5ldyBNYXA7dGFiQ291bnRlcj0wO3h0ZXJtQnVuZGxlPW51bGw7eHRlcm1GaXRBZGRvbkJ1bmRsZT1udWxsO3NldFh0ZXJtTW9kdWxlcyh0LHIpe3RoaXMueHRlcm1CdW5kbGU9dCx0aGlzLnh0ZXJtRml0QWRkb25CdW5kbGU9cn1nZW5lcmF0ZVRhYklkKCl7cmV0dXJuIHRoaXMudGFiQ291bnRlcisrLGB0ZXJtaW5hbC0ke3RoaXMudGFiQ291bnRlcn0tJHtEYXRlLm5vdygpfWB9Z2V0RGVmYXVsdExhYmVsKHQscil7c3dpdGNoKHQpe2Nhc2Uic2hlbGwiOnJldHVybiJiYXNoIjtjYXNlInNjcmlwdCI6cmV0dXJuIHI/LnNjcmlwdE5hbWV8fCJzY3JpcHQiO2Nhc2UicGFja2FnZS11cGRhdGUiOnJldHVybiByPy5wYWNrYWdlTmFtZT9gdXBkYXRlICR7ci5wYWNrYWdlTmFtZX1gOiJ1cGRhdGUiO2Nhc2UiY3VzdG9tIjpyZXR1cm4gcj8uY29tbWFuZHx8InByb2Nlc3MiO2RlZmF1bHQ6cmV0dXJuInRlcm1pbmFsIn19Z2V0RGVmYXVsdEljb24odCl7c3dpdGNoKHQpe2Nhc2Uic2hlbGwiOnJldHVybiJsdWNpZGU6dGVybWluYWwiO2Nhc2Uic2NyaXB0IjpyZXR1cm4ibHVjaWRlOnBsYXkiO2Nhc2UicGFja2FnZS11cGRhdGUiOnJldHVybiJsdWNpZGU6cGFja2FnZUNoZWNrIjtjYXNlImN1c3RvbSI6cmV0dXJuImx1Y2lkZTpjb2RlIjtkZWZhdWx0OnJldHVybiJsdWNpZGU6dGVybWluYWwifX1nZXRUZXJtaW5hbFRoZW1lKHQpe3JldHVybiB0P3tiYWNrZ3JvdW5kOiIjZmZmZmZmIixmb3JlZ3JvdW5kOiIjMzMzMzMzIixjdXJzb3I6IiMzMzMzMzMiLGN1cnNvckFjY2VudDoiI2ZmZmZmZiIsc2VsZWN0aW9uOiJyZ2JhKDAsIDAsIDAsIDAuMikiLGJsYWNrOiIjMDAwMDAwIixyZWQ6IiNjZDMxMzEiLGdyZWVuOiIjMDBiYzAwIix5ZWxsb3c6IiM5NDk4MDAiLGJsdWU6IiMwNDUxYTUiLG1hZ2VudGE6IiNiYzA1YmMiLGN5YW46IiMwNTk4YmMiLHdoaXRlOiIjNTU1NTU1IixicmlnaHRCbGFjazoiIzY2NjY2NiIsYnJpZ2h0UmVkOiIjY2QzMTMxIixicmlnaHRHcmVlbjoiIzE0Y2UxNCIsYnJpZ2h0WWVsbG93OiIjYjViYTAwIixicmlnaHRCbHVlOiIjMDQ1MWE1IixicmlnaHRNYWdlbnRhOiIjYmMwNWJjIixicmlnaHRDeWFuOiIjMDU5OGJjIixicmlnaHRXaGl0ZToiI2E1YTVhNSJ9OntiYWNrZ3JvdW5kOiIjMDAwMDAwIixmb3JlZ3JvdW5kOiIjZmZmZmZmIixjdXJzb3I6IiNmZmZmZmYiLGN1cnNvckFjY2VudDoiIzAwMDAwMCIsc2VsZWN0aW9uOiJyZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMikifX1jcmVhdGVUYWIodCxyKXtpZighdGhpcy54dGVybUJ1bmRsZXx8IXRoaXMueHRlcm1GaXRBZGRvbkJ1bmRsZSl0aHJvdyBuZXcgRXJyb3IoIlRlcm1pbmFsVGFiTWFuYWdlcjogeHRlcm0gbW9kdWxlcyBub3QgaW5pdGlhbGl6ZWQuIENhbGwgc2V0WHRlcm1Nb2R1bGVzKCkgZmlyc3QuIik7bGV0IGk9dGhpcy5nZW5lcmF0ZVRhYklkKCksYT10LnR5cGUsbj1uZXcgdGhpcy54dGVybUJ1bmRsZS5UZXJtaW5hbCh7Y29udmVydEVvbDohMCxjdXJzb3JCbGluazohMCx0aGVtZTp0aGlzLmdldFRlcm1pbmFsVGhlbWUociksZm9udEZhbWlseTonTWVubG8sIE1vbmFjbywgIkNvdXJpZXIgTmV3IiwgbW9ub3NwYWNlJyxmb250U2l6ZToxMyxsaW5lSGVpZ2h0OjEuMn0pLG89bmV3IHRoaXMueHRlcm1GaXRBZGRvbkJ1bmRsZS5GaXRBZGRvbjtuLmxvYWRBZGRvbihvKTtsZXQgcz17aWQ6aSxsYWJlbDp0LmxhYmVsfHx0aGlzLmdldERlZmF1bHRMYWJlbChhLHQubWV0YWRhdGEpLGljb25OYW1lOnQuaWNvbk5hbWV8fHRoaXMuZ2V0RGVmYXVsdEljb24oYSksdHlwZTphLGNsb3NlYWJsZTp0LmNsb3NlYWJsZT8/YSE9PSJzaGVsbCIsdGVybWluYWw6bixmaXRBZGRvbjpvLHByb2Nlc3M6bnVsbCxpbnB1dFdyaXRlcjpudWxsLGV4aXRlZDohMSxleGl0Q29kZTpudWxsLGNyZWF0ZWRBdDpEYXRlLm5vdygpLG1ldGFkYXRhOnQubWV0YWRhdGF9O3JldHVybiB0aGlzLnRhYnMuc2V0KGkscyksc31nZXRUYWIodCl7cmV0dXJuIHRoaXMudGFicy5nZXQodCl9Z2V0QWxsVGFicygpe3JldHVybiBBcnJheS5mcm9tKHRoaXMudGFicy52YWx1ZXMoKSkuc29ydCgodCxyKT0+dC5jcmVhdGVkQXQtci5jcmVhdGVkQXQpfWdldFRhYkNvdW50KCl7cmV0dXJuIHRoaXMudGFicy5zaXplfWhhc1RhYih0KXtyZXR1cm4gdGhpcy50YWJzLmhhcyh0KX1jbG9zZVRhYih0KXtsZXQgcj10aGlzLnRhYnMuZ2V0KHQpO2lmKCFyKXJldHVybiExO2lmKHIucHJvY2VzcyYmIXIuZXhpdGVkKXRyeXtyLnByb2Nlc3Mua2lsbCgpfWNhdGNoKGkpe2NvbnNvbGUud2FybigiRmFpbGVkIHRvIGtpbGwgcHJvY2VzczoiLGkpfXRyeXtyLnRlcm1pbmFsLmRpc3Bvc2UoKX1jYXRjaChpKXtjb25zb2xlLndhcm4oIkZhaWxlZCB0byBkaXNwb3NlIHRlcm1pbmFsOiIsaSl9cmV0dXJuIHRoaXMudGFicy5kZWxldGUodCksITB9cmVuYW1lVGFiKHQscil7bGV0IGk9dGhpcy50YWJzLmdldCh0KTtyZXR1cm4gaT8oaS5sYWJlbD1yLCEwKTohMX1tYXJrVGFiRXhpdGVkKHQscil7bGV0IGk9dGhpcy50YWJzLmdldCh0KTtpJiYoaS5leGl0ZWQ9ITAsaS5leGl0Q29kZT1yKX1zZXRUYWJQcm9jZXNzKHQscixpKXtsZXQgYT10aGlzLnRhYnMuZ2V0KHQpO2EmJihhLnByb2Nlc3M9cixhLmlucHV0V3JpdGVyPWkpfXVwZGF0ZUFsbFRoZW1lcyh0KXtsZXQgcj10aGlzLmdldFRlcm1pbmFsVGhlbWUodCk7Zm9yKGxldCBpIG9mIHRoaXMudGFicy52YWx1ZXMoKSlpLnRlcm1pbmFsLm9wdGlvbnMudGhlbWU9cn1kaXNwb3NlQWxsKCl7Zm9yKGxldFt0XW9mIHRoaXMudGFicyl0aGlzLmNsb3NlVGFiKHQpO3RoaXMudGFicy5jbGVhcigpfX19KTt2YXIgZmRyPXt9O0ZlKGZkcix7RGVlc1dvcmtzcGFjZVRlcm1pbmFsOigpPT5YZGV9KTt2YXIgVzQsbG4sWGRlLFdiPXAoKCk9Pnt4ZSgpO0t0KCk7SmUoKTt5RigpO29yKCk7UU4oKTtaZGUoKTtCNCgpO1c0PWZ1bmN0aW9uKGUsdCxyLGksYSxuKXtmdW5jdGlvbiBvKHkpe2lmKHkhPT12b2lkIDAmJnR5cGVvZiB5IT0iZnVuY3Rpb24iKXRocm93IG5ldyBUeXBlRXJyb3IoIkZ1bmN0aW9uIGV4cGVjdGVkIik7cmV0dXJuIHl9Zm9yKHZhciBzPWkua2luZCxsPXM9PT0iZ2V0dGVyIj8iZ2V0IjpzPT09InNldHRlciI/InNldCI6InZhbHVlIixjPSF0JiZlP2kuc3RhdGljP2U6ZS5wcm90b3R5cGU6bnVsbCx1PXR8fChjP09iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoYyxpLm5hbWUpOnt9KSxkLGg9ITEsZj1yLmxlbmd0aC0xO2Y+PTA7Zi0tKXt2YXIgeD17fTtmb3IodmFyIHYgaW4gaSl4W3ZdPXY9PT0iYWNjZXNzIj97fTppW3ZdO2Zvcih2YXIgdiBpbiBpLmFjY2Vzcyl4LmFjY2Vzc1t2XT1pLmFjY2Vzc1t2XTt4LmFkZEluaXRpYWxpemVyPWZ1bmN0aW9uKHkpe2lmKGgpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGFkZCBpbml0aWFsaXplcnMgYWZ0ZXIgZGVjb3JhdGlvbiBoYXMgY29tcGxldGVkIik7bi5wdXNoKG8oeXx8bnVsbCkpfTt2YXIgYj0oMCxyW2ZdKShzPT09ImFjY2Vzc29yIj97Z2V0OnUuZ2V0LHNldDp1LnNldH06dVtsXSx4KTtpZihzPT09ImFjY2Vzc29yIil7aWYoYj09PXZvaWQgMCljb250aW51ZTtpZihiPT09bnVsbHx8dHlwZW9mIGIhPSJvYmplY3QiKXRocm93IG5ldyBUeXBlRXJyb3IoIk9iamVjdCBleHBlY3RlZCIpOyhkPW8oYi5nZXQpKSYmKHUuZ2V0PWQpLChkPW8oYi5zZXQpKSYmKHUuc2V0PWQpLChkPW8oYi5pbml0KSkmJmEudW5zaGlmdChkKX1lbHNlKGQ9byhiKSkmJihzPT09ImZpZWxkIj9hLnVuc2hpZnQoZCk6dVtsXT1kKX1jJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoYyxpLm5hbWUsdSksaD0hMH0sbG49ZnVuY3Rpb24oZSx0LHIpe2Zvcih2YXIgaT1hcmd1bWVudHMubGVuZ3RoPjIsYT0wO2E8dC5sZW5ndGg7YSsrKXI9aT90W2FdLmNhbGwoZSxyKTp0W2FdLmNhbGwoZSk7cmV0dXJuIGk/cjp2b2lkIDB9LFhkZT0oKCk9PntsZXQgZT1beWUoImRlZXMtd29ya3NwYWNlLXRlcm1pbmFsIildLHQscj1bXSxpLGE9emUsbixvPVtdLHM9W10sbCxjPVtdLHU9W10sZCxoPVtdLGY9W10seCx2PVtdLGI9W10seSx3PVtdLGs9W10sTyx6PVtdLE09W10sRixEPVtdLE49W107dmFyIFI9Y2xhc3MgZXh0ZW5kcyBhe3N0YXRpY3tpPXRoaXN9c3RhdGlje2xldCBfPXR5cGVvZiBTeW1ib2w9PSJmdW5jdGlvbiImJlN5bWJvbC5tZXRhZGF0YT9PYmplY3QuY3JlYXRlKGFbU3ltYm9sLm1ldGFkYXRhXT8/bnVsbCk6dm9pZCAwO249W2ooe3R5cGU6T2JqZWN0fSldLGw9W2ooKV0sZD1baigpXSx4PVtqKHt0eXBlOk51bWJlcn0pXSx5PVtqKHt0eXBlOkJvb2xlYW59KV0sTz1bZmUoKV0sRj1bZmUoKV0sVzQodGhpcyxudWxsLG4se2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJleGVjdXRpb25FbnZpcm9ubWVudCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6Uz0+ImV4ZWN1dGlvbkVudmlyb25tZW50ImluIFMsZ2V0OlM9PlMuZXhlY3V0aW9uRW52aXJvbm1lbnQsc2V0OihTLCQpPT57Uy5leGVjdXRpb25FbnZpcm9ubWVudD0kfX0sbWV0YWRhdGE6X30sbyxzKSxXNCh0aGlzLG51bGwsbCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InNldHVwQ29tbWFuZCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6Uz0+InNldHVwQ29tbWFuZCJpbiBTLGdldDpTPT5TLnNldHVwQ29tbWFuZCxzZXQ6KFMsJCk9PntTLnNldHVwQ29tbWFuZD0kfX0sbWV0YWRhdGE6X30sYyx1KSxXNCh0aGlzLG51bGwsZCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImVudmlyb25tZW50VmFyaWFibGVzIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpTPT4iZW52aXJvbm1lbnRWYXJpYWJsZXMiaW4gUyxnZXQ6Uz0+Uy5lbnZpcm9ubWVudFZhcmlhYmxlcyxzZXQ6KFMsJCk9PntTLmVudmlyb25tZW50VmFyaWFibGVzPSR9fSxtZXRhZGF0YTpffSxoLGYpLFc0KHRoaXMsbnVsbCx4LHtraW5kOiJhY2Nlc3NvciIsbmFtZToidGFiQmFyV2lkdGgiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOlM9PiJ0YWJCYXJXaWR0aCJpbiBTLGdldDpTPT5TLnRhYkJhcldpZHRoLHNldDooUywkKT0+e1MudGFiQmFyV2lkdGg9JH19LG1ldGFkYXRhOl99LHYsYiksVzQodGhpcyxudWxsLHkse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJzaG93VGFiQmFyIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpTPT4ic2hvd1RhYkJhciJpbiBTLGdldDpTPT5TLnNob3dUYWJCYXIsc2V0OihTLCQpPT57Uy5zaG93VGFiQmFyPSR9fSxtZXRhZGF0YTpffSx3LGspLFc0KHRoaXMsbnVsbCxPLHtraW5kOiJhY2Nlc3NvciIsbmFtZToidGFicyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6Uz0+InRhYnMiaW4gUyxnZXQ6Uz0+Uy50YWJzLHNldDooUywkKT0+e1MudGFicz0kfX0sbWV0YWRhdGE6X30seixNKSxXNCh0aGlzLG51bGwsRix7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImFjdGl2ZVRhYklkIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpTPT4iYWN0aXZlVGFiSWQiaW4gUyxnZXQ6Uz0+Uy5hY3RpdmVUYWJJZCxzZXQ6KFMsJCk9PntTLmFjdGl2ZVRhYklkPSR9fSxtZXRhZGF0YTpffSxELE4pLFc0KG51bGwsdD17dmFsdWU6aX0sZSx7a2luZDoiY2xhc3MiLG5hbWU6aS5uYW1lLG1ldGFkYXRhOl99LG51bGwsciksUj1pPXQudmFsdWUsXyYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGksU3ltYm9sLm1ldGFkYXRhLHtlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMCx2YWx1ZTpffSl9c3RhdGljIGRlbW89KCk9PntsZXQgXz1uZXcgcjU7cmV0dXJuIENgPGRlZXMtd29ya3NwYWNlLXRlcm1pbmFsIC5leGVjdXRpb25FbnZpcm9ubWVudD0ke199PjwvZGVlcy13b3Jrc3BhY2UtdGVybWluYWw+YH07c3RhdGljIGRlbW9Hcm91cHM9WyJXb3Jrc3BhY2UiXTtyZXNpemVPYnNlcnZlcjt0YWJNYW5hZ2VyOyNlPWxuKHRoaXMsbyxudWxsKTtnZXQgZXhlY3V0aW9uRW52aXJvbm1lbnQoKXtyZXR1cm4gdGhpcy4jZX1zZXQgZXhlY3V0aW9uRW52aXJvbm1lbnQoXyl7dGhpcy4jZT1ffSN0PShsbih0aGlzLHMpLGxuKHRoaXMsYywiIikpO2dldCBzZXR1cENvbW1hbmQoKXtyZXR1cm4gdGhpcy4jdH1zZXQgc2V0dXBDb21tYW5kKF8pe3RoaXMuI3Q9X30jcj0obG4odGhpcyx1KSxsbih0aGlzLGgse30pKTtnZXQgZW52aXJvbm1lbnRWYXJpYWJsZXMoKXtyZXR1cm4gdGhpcy4jcn1zZXQgZW52aXJvbm1lbnRWYXJpYWJsZXMoXyl7dGhpcy4jcj1ffSNpPShsbih0aGlzLGYpLGxuKHRoaXMsdiwxNjApKTtnZXQgdGFiQmFyV2lkdGgoKXtyZXR1cm4gdGhpcy4jaX1zZXQgdGFiQmFyV2lkdGgoXyl7dGhpcy4jaT1ffSNhPShsbih0aGlzLGIpLGxuKHRoaXMsdywhMCkpO2dldCBzaG93VGFiQmFyKCl7cmV0dXJuIHRoaXMuI2F9c2V0IHNob3dUYWJCYXIoXyl7dGhpcy4jYT1ffSNuPShsbih0aGlzLGspLGxuKHRoaXMseixbXSkpO2dldCB0YWJzKCl7cmV0dXJuIHRoaXMuI259c2V0IHRhYnMoXyl7dGhpcy4jbj1ffSNvPShsbih0aGlzLE0pLGxuKHRoaXMsRCxudWxsKSk7Z2V0IGFjdGl2ZVRhYklkKCl7cmV0dXJuIHRoaXMuI299c2V0IGFjdGl2ZVRhYklkKF8pe3RoaXMuI289X310ZXJtaW5hbFRoZW1lU3Vic2NyaXB0aW9uPShsbih0aGlzLE4pLG51bGwpO2lzQnJpZ2h0PSExO3Rlcm1pbmFsQWN0aW9uYmFyPW51bGw7ZW52aXJvbm1lbnREZWZlcnJlZD1uZXcganQuc21hcnRwcm9taXNlLkRlZmVycmVkO2Vudmlyb25tZW50UHJvbWlzZT10aGlzLmVudmlyb25tZW50RGVmZXJyZWQucHJvbWlzZTtjb25zdHJ1Y3Rvcigpe3N1cGVyKCksdGhpcy50YWJNYW5hZ2VyPW5ldyBVYix0aGlzLnJlc2l6ZU9ic2VydmVyPW5ldyBSZXNpemVPYnNlcnZlcigoKT0+e3RoaXMuaGFuZGxlUmVzaXplKCl9KX1zdGF0aWMgc3R5bGVzPVtEZSxtLmRlZmF1bHRTdHlsZXMsb2VgCiAgICAgIDpob3N0IHsKICAgICAgICBiYWNrZ3JvdW5kOiAke20uYmRUaGVtZSgiI2ZmZmZmZiIsIiMwMDAwMDAiKX07CiAgICAgICAgcG9zaXRpb246IGFic29sdXRlOwogICAgICAgIGhlaWdodDogMTAwJTsKICAgICAgICB3aWR0aDogMTAwJTsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7CiAgICAgIH0KCiAgICAgICogewogICAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7CiAgICAgIH0KCiAgICAgIC50ZXJtaW5hbC1jb250YWluZXIgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdzsKICAgICAgICB3aWR0aDogMTAwJTsKICAgICAgICBoZWlnaHQ6IDEwMCU7CiAgICAgIH0KCiAgICAgIC50ZXJtaW5hbC1jb250ZW50IHsKICAgICAgICBmbGV4OiAxOwogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgICAgIGJhY2tncm91bmQ6ICR7bS5iZFRoZW1lKCIjZmZmZmZmIiwiIzAwMDAwMCIpfTsKICAgICAgfQoKICAgICAgI2FjdGl2ZS10ZXJtaW5hbC1jb250YWluZXIgewogICAgICAgIGZsZXg6IDE7CiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICAgIG1pbi1oZWlnaHQ6IDA7CiAgICAgICAgbWFyZ2luOiAyMHB4OwogICAgICB9CgogICAgICAudGVybWluYWwtY29udGVudCBkZWVzLWFjdGlvbmJhciB7CiAgICAgICAgZmxleC1zaHJpbms6IDA7CiAgICAgIH0KCiAgICAgIC8qIFRhYiBiYXIgb24gdGhlIHJpZ2h0IHNpZGUgKi8KICAgICAgLnRhYi1iYXIgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgICBiYWNrZ3JvdW5kOiAke20uYmRUaGVtZSgiaHNsKDAgMCUgOTYlKSIsImhzbCgwIDAlIDclKSIpfTsKICAgICAgICBib3JkZXItbGVmdDogMXB4IHNvbGlkICR7bS5iZFRoZW1lKCJoc2woMCAwJSA4NSUpIiwiaHNsKDAgMCUgMTUlKSIpfTsKICAgICAgICBmbGV4LXNocmluazogMDsKICAgICAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgICB9CgogICAgICAudGFiLWJhci1oZWFkZXIgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47CiAgICAgICAgcGFkZGluZzogOHB4IDEwcHg7CiAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICR7bS5iZFRoZW1lKCJoc2woMCAwJSA4OCUpIiwiaHNsKDAgMCUgMTIlKSIpfTsKICAgICAgICBmb250LXNpemU6IDExcHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDsKICAgICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlOwogICAgICAgIGxldHRlci1zcGFjaW5nOiAwLjVweDsKICAgICAgICBjb2xvcjogJHttLmJkVGhlbWUoImhzbCgwIDAlIDQ1JSkiLCJoc2woMCAwJSA1NSUpIil9OwogICAgICB9CgogICAgICAudGFiLWJhci10aXRsZSB7CiAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDsKICAgICAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzOwogICAgICB9CgogICAgICAudGFiLWJhci1hY3Rpb25zIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGdhcDogMnB4OwogICAgICB9CgogICAgICAudGFiLWFjdGlvbiB7CiAgICAgICAgd2lkdGg6IDIycHg7CiAgICAgICAgaGVpZ2h0OiAyMnB4OwogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKICAgICAgICBib3JkZXItcmFkaXVzOiA0cHg7CiAgICAgICAgY3Vyc29yOiBwb2ludGVyOwogICAgICAgIGNvbG9yOiAke20uYmRUaGVtZSgiaHNsKDAgMCUgNTAlKSIsImhzbCgwIDAlIDYwJSkiKX07CiAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuMTVzIGVhc2U7CiAgICAgIH0KCiAgICAgIC50YWItYWN0aW9uOmhvdmVyIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke20uYmRUaGVtZSgiaHNsKDAgMCUgODglKSIsImhzbCgwIDAlIDE1JSkiKX07CiAgICAgICAgY29sb3I6ICR7bS5iZFRoZW1lKCJoc2woMCAwJSAzMCUpIiwiaHNsKDAgMCUgODAlKSIpfTsKICAgICAgfQoKICAgICAgLnRhYi1saXN0IHsKICAgICAgICBmbGV4OiAxOwogICAgICAgIG92ZXJmbG93LXk6IGF1dG87CiAgICAgICAgcGFkZGluZzogNHB4OwogICAgICB9CgogICAgICAudGVybWluYWwtdGFiIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgZ2FwOiA4cHg7CiAgICAgICAgcGFkZGluZzogOHB4IDEwcHg7CiAgICAgICAgbWFyZ2luLWJvdHRvbTogMnB4OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDZweDsKICAgICAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICAgICAgZm9udC1zaXplOiAxMnB4OwogICAgICAgIGNvbG9yOiAke20uYmRUaGVtZSgiaHNsKDAgMCUgNDUlKSIsImhzbCgwIDAlIDYwJSkiKX07CiAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuMTVzIGVhc2U7CiAgICAgIH0KCiAgICAgIC50ZXJtaW5hbC10YWI6aG92ZXIgewogICAgICAgIGJhY2tncm91bmQ6ICR7bS5iZFRoZW1lKCJoc2woMCAwJSA5MCUpIiwiaHNsKDAgMCUgMTIlKSIpfTsKICAgICAgICBjb2xvcjogJHttLmJkVGhlbWUoImhzbCgwIDAlIDI1JSkiLCJoc2woMCAwJSA4MCUpIil9OwogICAgICB9CgogICAgICAudGVybWluYWwtdGFiLmFjdGl2ZSB7CiAgICAgICAgYmFja2dyb3VuZDogJHttLmJkVGhlbWUoImhzbCgyMTAgMTAwJSA5NSUpIiwiaHNsKDIxMCAzMCUgMTUlKSIpfTsKICAgICAgICBjb2xvcjogJHttLmJkVGhlbWUoImhzbCgyMTAgMTAwJSA0MCUpIiwiaHNsKDIxMCAxMDAlIDcwJSkiKX07CiAgICAgIH0KCiAgICAgIC50ZXJtaW5hbC10YWIuZXhpdGVkIHsKICAgICAgICBvcGFjaXR5OiAwLjc7CiAgICAgIH0KCiAgICAgIC50YWItaWNvbiB7CiAgICAgICAgZmxleC1zaHJpbms6IDA7CiAgICAgIH0KCiAgICAgIC50YWItaWNvbi5ydW5uaW5nIHsKICAgICAgICBjb2xvcjogJHttLmJkVGhlbWUoImhzbCgxNDIgNzAlIDQwJSkiLCJoc2woMTQyIDcwJSA1NSUpIil9OwogICAgICB9CgogICAgICAudGFiLWxhYmVsIHsKICAgICAgICBmbGV4OiAxOwogICAgICAgIG92ZXJmbG93OiBoaWRkZW47CiAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7CiAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDsKICAgICAgfQoKICAgICAgLmV4aXQtYmFkZ2UgewogICAgICAgIGZvbnQtc2l6ZTogMTBweDsKICAgICAgICBwYWRkaW5nOiAxcHggNXB4OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDhweDsKICAgICAgICBmb250LXdlaWdodDogNjAwOwogICAgICAgIGZsZXgtc2hyaW5rOiAwOwogICAgICB9CgogICAgICAuZXhpdC1iYWRnZS5zdWNjZXNzIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke20uYmRUaGVtZSgiaHNsKDE0MiA3MCUgOTAlKSIsImhzbCgxNDIgMzAlIDIwJSkiKX07CiAgICAgICAgY29sb3I6ICR7bS5iZFRoZW1lKCJoc2woMTQyIDcwJSAzNSUpIiwiaHNsKDE0MiA3MCUgNjAlKSIpfTsKICAgICAgfQoKICAgICAgLmV4aXQtYmFkZ2UuZXJyb3IgewogICAgICAgIGJhY2tncm91bmQ6ICR7bS5iZFRoZW1lKCJoc2woMCA3MCUgOTMlKSIsImhzbCgwIDMwJSAyMCUpIil9OwogICAgICAgIGNvbG9yOiAke20uYmRUaGVtZSgiaHNsKDAgNzAlIDQ1JSkiLCJoc2woMCA3MCUgNjAlKSIpfTsKICAgICAgfQoKICAgICAgLnRhYi1jbG9zZSB7CiAgICAgICAgd2lkdGg6IDE4cHg7CiAgICAgICAgaGVpZ2h0OiAxOHB4OwogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKICAgICAgICBib3JkZXItcmFkaXVzOiA0cHg7CiAgICAgICAgb3BhY2l0eTogMDsKICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC4xNXMgZWFzZTsKICAgICAgICBmbGV4LXNocmluazogMDsKICAgICAgfQoKICAgICAgLnRlcm1pbmFsLXRhYjpob3ZlciAudGFiLWNsb3NlIHsKICAgICAgICBvcGFjaXR5OiAwLjY7CiAgICAgIH0KCiAgICAgIC50YWItY2xvc2U6aG92ZXIgewogICAgICAgIG9wYWNpdHk6IDEgIWltcG9ydGFudDsKICAgICAgICBiYWNrZ3JvdW5kOiAke20uYmRUaGVtZSgiaHNsKDAgMCUgODUlKSIsImhzbCgwIDAlIDI1JSkiKX07CiAgICAgICAgY29sb3I6ICR7bS5iZFRoZW1lKCJoc2woMCA3MCUgNTAlKSIsImhzbCgwIDcwJSA2MCUpIil9OwogICAgICB9CgogICAgICAuZW1wdHktc3RhdGUgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOwogICAgICAgIGhlaWdodDogMTAwJTsKICAgICAgICBjb2xvcjogJHttLmJkVGhlbWUoImhzbCgwIDAlIDUwJSkiLCJoc2woMCAwJSA1MCUpIil9OwogICAgICAgIGZvbnQtc2l6ZTogMTNweDsKICAgICAgICBnYXA6IDhweDsKICAgICAgfQoKICAgICAgLyogeHRlcm0uanMgc3R5bGVzICovCiAgICAgIC54dGVybSB7CiAgICAgICAgZm9udC1mZWF0dXJlLXNldHRpbmdzOiAnbGlnYScgMDsKICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgICAgdXNlci1zZWxlY3Q6IG5vbmU7CiAgICAgICAgLW1zLXVzZXItc2VsZWN0OiBub25lOwogICAgICAgIC13ZWJraXQtdXNlci1zZWxlY3Q6IG5vbmU7CiAgICAgIH0KCiAgICAgIC54dGVybS5mb2N1cywKICAgICAgLnh0ZXJtOmZvY3VzIHsKICAgICAgICBvdXRsaW5lOiBub25lOwogICAgICB9CgogICAgICAueHRlcm0gLnh0ZXJtLWhlbHBlcnMgewogICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgICB0b3A6IDA7CiAgICAgICAgei1pbmRleDogNTsKICAgICAgfQoKICAgICAgLnh0ZXJtIC54dGVybS1oZWxwZXItdGV4dGFyZWEgewogICAgICAgIHBhZGRpbmc6IDA7CiAgICAgICAgYm9yZGVyOiAwOwogICAgICAgIG1hcmdpbjogMDsKICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgICAgb3BhY2l0eTogMDsKICAgICAgICBsZWZ0OiAtOTk5OWVtOwogICAgICAgIHRvcDogMDsKICAgICAgICB3aWR0aDogMDsKICAgICAgICBoZWlnaHQ6IDA7CiAgICAgICAgei1pbmRleDogLTU7CiAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDsKICAgICAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgICAgIHJlc2l6ZTogbm9uZTsKICAgICAgfQoKICAgICAgLnh0ZXJtIC5jb21wb3NpdGlvbi12aWV3IHsKICAgICAgICBiYWNrZ3JvdW5kOiAke20uYmRUaGVtZSgiI2ZmZmZmZiIsIiMwMDAwMDAiKX07CiAgICAgICAgY29sb3I6ICR7bS5iZFRoZW1lKCIjMzMzMzMzIiwiI2ZmZmZmZiIpfTsKICAgICAgICBkaXNwbGF5OiBub25lOwogICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwOwogICAgICAgIHotaW5kZXg6IDE7CiAgICAgIH0KCiAgICAgIC54dGVybSAuY29tcG9zaXRpb24tdmlldy5hY3RpdmUgewogICAgICAgIGRpc3BsYXk6IGJsb2NrOwogICAgICB9CgogICAgICAueHRlcm0gLnh0ZXJtLXZpZXdwb3J0IHsKICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAke20uYmRUaGVtZSgiI2ZmZmZmZiIsIiMwMDAwMDAiKX07CiAgICAgICAgb3ZlcmZsb3cteTogc2Nyb2xsOwogICAgICAgIGN1cnNvcjogZGVmYXVsdDsKICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgICAgcmlnaHQ6IDA7CiAgICAgICAgbGVmdDogMDsKICAgICAgICB0b3A6IDA7CiAgICAgICAgYm90dG9tOiAwOwogICAgICB9CgogICAgICAueHRlcm0gLnh0ZXJtLXNjcmVlbiB7CiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICB9CgogICAgICAueHRlcm0gLnh0ZXJtLXNjcmVlbiBjYW52YXMgewogICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgICBsZWZ0OiAwOwogICAgICAgIHRvcDogMDsKICAgICAgfQoKICAgICAgLnh0ZXJtIC54dGVybS1zY3JvbGwtYXJlYSB7CiAgICAgICAgdmlzaWJpbGl0eTogaGlkZGVuOwogICAgICB9CgogICAgICAueHRlcm0tY2hhci1tZWFzdXJlLWVsZW1lbnQgewogICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jazsKICAgICAgICB2aXNpYmlsaXR5OiBoaWRkZW47CiAgICAgICAgcG9zaXRpb246IGFic29sdXRlOwogICAgICAgIHRvcDogMDsKICAgICAgICBsZWZ0OiAtOTk5OWVtOwogICAgICAgIGxpbmUtaGVpZ2h0OiBub3JtYWw7CiAgICAgIH0KCiAgICAgIC54dGVybSB7CiAgICAgICAgY3Vyc29yOiB0ZXh0OwogICAgICB9CgogICAgICAueHRlcm0uZW5hYmxlLW1vdXNlLWV2ZW50cyB7CiAgICAgICAgY3Vyc29yOiBkZWZhdWx0OwogICAgICB9CgogICAgICAueHRlcm0ueHRlcm0tY3Vyc29yLXBvaW50ZXIgewogICAgICAgIGN1cnNvcjogcG9pbnRlcjsKICAgICAgfQoKICAgICAgLnh0ZXJtLmNvbHVtbi1zZWxlY3QuZm9jdXMgewogICAgICAgIGN1cnNvcjogY3Jvc3NoYWlyOwogICAgICB9CgogICAgICAueHRlcm0gLnh0ZXJtLWFjY2Vzc2liaWxpdHksCiAgICAgIC54dGVybSAueHRlcm0tbWVzc2FnZSB7CiAgICAgICAgcG9zaXRpb246IGFic29sdXRlOwogICAgICAgIGxlZnQ6IDA7CiAgICAgICAgdG9wOiAwOwogICAgICAgIGJvdHRvbTogMDsKICAgICAgICByaWdodDogMDsKICAgICAgICB6LWluZGV4OiAxMDsKICAgICAgICBjb2xvcjogdHJhbnNwYXJlbnQ7CiAgICAgIH0KCiAgICAgIC54dGVybSAubGl2ZS1yZWdpb24gewogICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgICBsZWZ0OiAtOTk5OXB4OwogICAgICAgIHdpZHRoOiAxcHg7CiAgICAgICAgaGVpZ2h0OiAxcHg7CiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgICAgfQoKICAgICAgLnh0ZXJtLWRpbSB7CiAgICAgICAgb3BhY2l0eTogMC41OwogICAgICB9CgogICAgICAueHRlcm0tdW5kZXJsaW5lIHsKICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTsKICAgICAgfQogICAgYF07cmVuZGVyKCl7bGV0IF89dGhpcy5hY3RpdmVUYWJJZD90aGlzLnRhYk1hbmFnZXIuZ2V0VGFiKHRoaXMuYWN0aXZlVGFiSWQpOm51bGw7cmV0dXJuIENgCiAgICAgIDxkaXYgY2xhc3M9InRlcm1pbmFsLWNvbnRhaW5lciI+CiAgICAgICAgPCEtLSBNYWluIHRlcm1pbmFsIGFyZWEgLS0+CiAgICAgICAgPGRpdiBjbGFzcz0idGVybWluYWwtY29udGVudCI+CiAgICAgICAgICAke18/Q2AKICAgICAgICAgICAgPGRpdiBpZD0iYWN0aXZlLXRlcm1pbmFsLWNvbnRhaW5lciI+PC9kaXY+CiAgICAgICAgICBgOkNgCiAgICAgICAgICAgIDxkaXYgY2xhc3M9ImVtcHR5LXN0YXRlIj4KICAgICAgICAgICAgICA8ZGVlcy1pY29uIC5pY29uPSR7Imx1Y2lkZTp0ZXJtaW5hbCJ9IGljb25TaXplPSIzMiI+PC9kZWVzLWljb24+CiAgICAgICAgICAgICAgPHNwYW4+Tm8gdGVybWluYWwgb3Blbjwvc3Bhbj4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICBgfQogICAgICAgICAgPGRlZXMtYWN0aW9uYmFyPjwvZGVlcy1hY3Rpb25iYXI+CiAgICAgICAgPC9kaXY+CgogICAgICAgIDwhLS0gVmVydGljYWwgdGFiIGJhciBvbiB0aGUgcmlnaHQgLS0+CiAgICAgICAgJHt0aGlzLnNob3dUYWJCYXI/Q2AKICAgICAgICAgIDxkaXYgY2xhc3M9InRhYi1iYXIiIHN0eWxlPSJ3aWR0aDogJHt0aGlzLnRhYkJhcldpZHRofXB4Ij4KICAgICAgICAgICAgPGRpdiBjbGFzcz0idGFiLWJhci1oZWFkZXIiPgogICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJ0YWItYmFyLXRpdGxlIj5UZXJtaW5hbHM8L3NwYW4+CiAgICAgICAgICAgICAgPGRpdiBjbGFzcz0idGFiLWJhci1hY3Rpb25zIj4KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InRhYi1hY3Rpb24iIEBjbGljaz0ke3RoaXMuaGFuZGxlQWRkVGFifSB0aXRsZT0iTmV3IFRlcm1pbmFsIj4KICAgICAgICAgICAgICAgICAgPGRlZXMtaWNvbiAuaWNvbj0keyJsdWNpZGU6cGx1cyJ9IGljb25TaXplPSIxNCI+PC9kZWVzLWljb24+CiAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPC9kaXY+CgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJ0YWItbGlzdCI+CiAgICAgICAgICAgICAgJHt0aGlzLnRhYnMubWFwKFM9PkNgCiAgICAgICAgICAgICAgICA8ZGl2CiAgICAgICAgICAgICAgICAgIGNsYXNzPSJ0ZXJtaW5hbC10YWIgJHtTLmlkPT09dGhpcy5hY3RpdmVUYWJJZD8iYWN0aXZlIjoiIn0gJHtTLmV4aXRlZD8iZXhpdGVkIjoiIn0iCiAgICAgICAgICAgICAgICAgIEBjbGljaz0keygpPT50aGlzLnN3aXRjaFRvVGFiKFMuaWQpfQogICAgICAgICAgICAgICAgPgogICAgICAgICAgICAgICAgICA8ZGVlcy1pY29uCiAgICAgICAgICAgICAgICAgICAgLmljb249JHtTLmljb25OYW1lfQogICAgICAgICAgICAgICAgICAgIGljb25TaXplPSIxNCIKICAgICAgICAgICAgICAgICAgICBjbGFzcz0idGFiLWljb24gJHtTLnByb2Nlc3MmJiFTLmV4aXRlZD8icnVubmluZyI6IiJ9IgogICAgICAgICAgICAgICAgICA+PC9kZWVzLWljb24+CiAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJ0YWItbGFiZWwiPiR7Uy5sYWJlbH08L3NwYW4+CiAgICAgICAgICAgICAgICAgICR7Uy5leGl0ZWQ/Q2AKICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZXhpdC1iYWRnZSAke1MuZXhpdENvZGU9PT0wPyJzdWNjZXNzIjoiZXJyb3IifSI+CiAgICAgICAgICAgICAgICAgICAgICAke1MuZXhpdENvZGV9CiAgICAgICAgICAgICAgICAgICAgPC9zcGFuPgogICAgICAgICAgICAgICAgICBgOiIifQogICAgICAgICAgICAgICAgICAke1MuY2xvc2VhYmxlP0NgCiAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9InRhYi1jbG9zZSIgQGNsaWNrPSR7JD0+dGhpcy5oYW5kbGVUYWJDbG9zZSgkLFMuaWQpfT4KICAgICAgICAgICAgICAgICAgICAgIDxkZWVzLWljb24gLmljb249JHsibHVjaWRlOngifSBpY29uU2l6ZT0iMTIiPjwvZGVlcy1pY29uPgogICAgICAgICAgICAgICAgICAgIDwvc3Bhbj4KICAgICAgICAgICAgICAgICAgYDoiIn0KICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgIGApfQogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIDwvZGl2PgogICAgICAgIGA6IiJ9CiAgICAgIDwvZGl2PgogICAgYH1hc3luYyBmaXJzdFVwZGF0ZWQoKXtsZXQgXz1hd2FpdCB0aGlzLmRvbXRvb2xzUHJvbWlzZTt0aGlzLmlzQnJpZ2h0PV8udGhlbWVNYW5hZ2VyLmdvQnJpZ2h0Qm9vbGVhbix0aGlzLnRlcm1pbmFsVGhlbWVTdWJzY3JpcHRpb249Xy50aGVtZU1hbmFnZXIudGhlbWVPYnNlcnZhYmxlLnN1YnNjcmliZShFPT57dGhpcy5pc0JyaWdodD1FLHRoaXMudGFiTWFuYWdlci51cGRhdGVBbGxUaGVtZXMoRSl9KTtsZXQgUz1yYS5nZXRJbnN0YW5jZSgpLFskLFRdPWF3YWl0IFByb21pc2UuYWxsKFtTLmxvYWRYdGVybSgpLFMubG9hZFh0ZXJtRml0QWRkb24oKV0pO3RoaXMudGFiTWFuYWdlci5zZXRYdGVybU1vZHVsZXMoJCxUKSxhd2FpdCB0aGlzLmNyZWF0ZVNoZWxsVGFiKCl9YXN5bmMgY29ubmVjdGVkQ2FsbGJhY2soKXthd2FpdCBzdXBlci5jb25uZWN0ZWRDYWxsYmFjaygpfWFzeW5jIGRpc2Nvbm5lY3RlZENhbGxiYWNrKCl7bGV0IF89dGhpcy5zaGFkb3dSb290Py5nZXRFbGVtZW50QnlJZCgiYWN0aXZlLXRlcm1pbmFsLWNvbnRhaW5lciIpO18mJnRoaXMucmVzaXplT2JzZXJ2ZXIudW5vYnNlcnZlKF8pLHRoaXMudGVybWluYWxUaGVtZVN1YnNjcmlwdGlvbiYmKHRoaXMudGVybWluYWxUaGVtZVN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpLHRoaXMudGVybWluYWxUaGVtZVN1YnNjcmlwdGlvbj1udWxsKSx0aGlzLnRhYk1hbmFnZXIuZGlzcG9zZUFsbCgpLGF3YWl0IHN1cGVyLmRpc2Nvbm5lY3RlZENhbGxiYWNrKCl9YXN5bmMgaGFuZGxlQWRkVGFiKCl7YXdhaXQgdGhpcy5jcmVhdGVTaGVsbFRhYigpfWhhbmRsZVRhYkNsb3NlKF8sUyl7Xy5zdG9wUHJvcGFnYXRpb24oKSx0aGlzLmNsb3NlVGFiKFMpfXN3aXRjaFRvVGFiKF8pe2lmKF89PT10aGlzLmFjdGl2ZVRhYklkKXJldHVybjtsZXQgUz10aGlzLnRhYk1hbmFnZXIuZ2V0VGFiKF8pO2lmKCFTKXJldHVybjtsZXQgJD10aGlzLmFjdGl2ZVRhYklkO3RoaXMuYWN0aXZlVGFiSWQmJnRoaXMuZGV0YWNoQWN0aXZlVGVybWluYWwoKSx0aGlzLmFjdGl2ZVRhYklkPV8sdGhpcy50YWJzPXRoaXMudGFiTWFuYWdlci5nZXRBbGxUYWJzKCksdGhpcy51cGRhdGVDb21wbGV0ZS50aGVuKCgpPT57dGhpcy5hdHRhY2hUZXJtaW5hbFRvQ29udGFpbmVyKFMpLHRoaXMuZGlzcGF0Y2hFdmVudChuZXcgQ3VzdG9tRXZlbnQoInRhYi1zd2l0Y2hlZCIse2J1YmJsZXM6ITAsY29tcG9zZWQ6ITAsZGV0YWlsOnt0YWJJZDpfLHByZXZpb3VzVGFiSWQ6JH19KSl9KX1kZXRhY2hBY3RpdmVUZXJtaW5hbCgpe2xldCBfPXRoaXMuc2hhZG93Um9vdD8uZ2V0RWxlbWVudEJ5SWQoImFjdGl2ZS10ZXJtaW5hbC1jb250YWluZXIiKTtfJiYoXy5pbm5lckhUTUw9IiIpfWF0dGFjaFRlcm1pbmFsVG9Db250YWluZXIoXyl7bGV0IFM9dGhpcy5zaGFkb3dSb290Py5nZXRFbGVtZW50QnlJZCgiYWN0aXZlLXRlcm1pbmFsLWNvbnRhaW5lciIpO1MmJih0aGlzLnJlc2l6ZU9ic2VydmVyLm9ic2VydmUoUyksUy5pbm5lckhUTUw9IiIsXy50ZXJtaW5hbC5vcGVuKFMpLF8uZml0QWRkb24uZml0KCksXy50ZXJtaW5hbC5mb2N1cygpKX1oYW5kbGVSZXNpemUoKXtpZih0aGlzLmFjdGl2ZVRhYklkKXtsZXQgXz10aGlzLnRhYk1hbmFnZXIuZ2V0VGFiKHRoaXMuYWN0aXZlVGFiSWQpO18mJl8uZml0QWRkb24uZml0KCl9fWFzeW5jIHNwYXduUHJvY2Vzc0ZvclRhYihfLFMsJD1bXSl7aWYoIXRoaXMuZXhlY3V0aW9uRW52aXJvbm1lbnQpe18udGVybWluYWwud3JpdGUoIlx4MUJbMzFtIiksXy50ZXJtaW5hbC53cml0ZShgXHUyNzRDIE5vIGV4ZWN1dGlvbiBlbnZpcm9ubWVudCBhdmFpbGFibGUuXHIKYCksXy50ZXJtaW5hbC53cml0ZSgiXHgxQlswbSIpO3JldHVybn10cnl7dGhpcy5leGVjdXRpb25FbnZpcm9ubWVudC5yZWFkeXx8KF8udGVybWluYWwud3JpdGUoYEluaXRpYWxpemluZyBlbnZpcm9ubWVudC4uLlxyCmApLGF3YWl0IHRoaXMuZXhlY3V0aW9uRW52aXJvbm1lbnQuaW5pdCgpKTtsZXQgVD1hd2FpdCB0aGlzLmV4ZWN1dGlvbkVudmlyb25tZW50LnNwYXduKFMsJCk7VC5vdXRwdXQucGlwZVRvKG5ldyBXcml0YWJsZVN0cmVhbSh7d3JpdGU6cT0+e18udGVybWluYWwud3JpdGUocSl9fSkpO2xldCBFPVQuaW5wdXQuZ2V0V3JpdGVyKCk7Xy50ZXJtaW5hbC5vbkRhdGEocT0+e0Uud3JpdGUocSl9KSx0aGlzLnRhYk1hbmFnZXIuc2V0VGFiUHJvY2VzcyhfLmlkLFQsRSksdGhpcy50YWJzPXRoaXMudGFiTWFuYWdlci5nZXRBbGxUYWJzKCksVC5leGl0LnRoZW4ocT0+e3RoaXMuaGFuZGxlUHJvY2Vzc0V4aXQoXy5pZCxxKX0pfWNhdGNoKFQpe18udGVybWluYWwud3JpdGUoIlx4MUJbMzFtIiksXy50ZXJtaW5hbC53cml0ZShgXHUyNzRDIEZhaWxlZCB0byBzcGF3biBwcm9jZXNzOiAke1R9XHIKYCksXy50ZXJtaW5hbC53cml0ZSgiXHgxQlswbSIpLGNvbnNvbGUuZXJyb3IoIkZhaWxlZCB0byBzcGF3biBwcm9jZXNzOiIsVCl9fWhhbmRsZVByb2Nlc3NFeGl0KF8sUyl7bGV0ICQ9dGhpcy50YWJNYW5hZ2VyLmdldFRhYihfKTtpZighJClyZXR1cm47dGhpcy50YWJNYW5hZ2VyLm1hcmtUYWJFeGl0ZWQoXyxTKTtsZXQgVD1TPT09MD9gXHIKXHgxQlszMm1bUHJvY2VzcyBjb21wbGV0ZWQgc3VjY2Vzc2Z1bGx5XVx4MUJbMG1ccgpgOmBccgpceDFCWzMxbVtQcm9jZXNzIGV4aXRlZCB3aXRoIGNvZGUgJHtTfV1ceDFCWzBtXHIKYDskLnRlcm1pbmFsLndyaXRlKFQpLHRoaXMudGFicz10aGlzLnRhYk1hbmFnZXIuZ2V0QWxsVGFicygpLHRoaXMuZGlzcGF0Y2hFdmVudChuZXcgQ3VzdG9tRXZlbnQoInByb2Nlc3MtY29tcGxldGUiLHtidWJibGVzOiEwLGNvbXBvc2VkOiEwLGRldGFpbDp7dGFiSWQ6XyxleGl0Q29kZTpTfX0pKSwkLmNsb3NlYWJsZSYmdGhpcy5zaG93RXhpdGVkVGFiQWN0aW9uYmFyKF8sJC5sYWJlbCxTKX1hc3luYyBzaG93RXhpdGVkVGFiQWN0aW9uYmFyKF8sUywkKXtsZXQgVD0kPT09MDsoYXdhaXQgdGhpcy5zaG93QWN0aW9uYmFyKHttZXNzYWdlOlQ/YCIke1N9IiBjb21wbGV0ZWQuIENsb3NlIHRhYj9gOmAiJHtTfSIgZXhpdGVkIChjb2RlICR7JH0pLiBDbG9zZSB0YWI/YCx0eXBlOlQ/ImluZm8iOiJ3YXJuaW5nIixpY29uOlQ/Imx1Y2lkZTpjaGVja0NpcmNsZSI6Imx1Y2lkZTphbGVydFRyaWFuZ2xlIixhY3Rpb25zOlt7aWQ6ImNsb3NlIixsYWJlbDoiQ2xvc2UgVGFiIixwcmltYXJ5OiEwfSx7aWQ6ImtlZXAiLGxhYmVsOiJLZWVwIE9wZW4ifV0sdGltZW91dDp7ZHVyYXRpb246MWU0LGRlZmF1bHRBY3Rpb25JZDoiY2xvc2UifSxkaXNtaXNzaWJsZTohMH0pKS5hY3Rpb25JZD09PSJjbG9zZSImJnRoaXMuY2xvc2VUYWIoXyl9YXN5bmMgY3JlYXRlU2hlbGxUYWIoXyl7bGV0IFM9dGhpcy50YWJNYW5hZ2VyLmNyZWF0ZVRhYih7dHlwZToic2hlbGwiLGxhYmVsOl98fGBiYXNoICR7dGhpcy50YWJNYW5hZ2VyLmdldFRhYkNvdW50KCkrMX1gLGNsb3NlYWJsZTp0aGlzLnRhYk1hbmFnZXIuZ2V0VGFiQ291bnQoKT4wfSx0aGlzLmlzQnJpZ2h0KTtyZXR1cm4gdGhpcy50YWJzPXRoaXMudGFiTWFuYWdlci5nZXRBbGxUYWJzKCksdGhpcy5zd2l0Y2hUb1RhYihTLmlkKSxhd2FpdCB0aGlzLnVwZGF0ZUNvbXBsZXRlLGF3YWl0IHRoaXMuc3Bhd25Qcm9jZXNzRm9yVGFiKFMsImpzaCIpLHRoaXMudGFiTWFuYWdlci5nZXRUYWJDb3VudCgpPT09MSYmdGhpcy5zZXR1cENvbW1hbmQmJihhd2FpdCB0aGlzLndhaXRGb3JQcm9tcHQoUy50ZXJtaW5hbCwifi8iKSxTLmlucHV0V3JpdGVyJiZTLmlucHV0V3JpdGVyLndyaXRlKHRoaXMuc2V0dXBDb21tYW5kKSksdGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBDdXN0b21FdmVudCgidGFiLWNyZWF0ZWQiLHtidWJibGVzOiEwLGNvbXBvc2VkOiEwLGRldGFpbDp7dGFiSWQ6Uy5pZH19KSksUy5pZH1hc3luYyBjcmVhdGVQcm9jZXNzVGFiKF8pe2xldCBTPXRoaXMudGFiTWFuYWdlci5jcmVhdGVUYWIoXyx0aGlzLmlzQnJpZ2h0KTtyZXR1cm4gdGhpcy50YWJzPXRoaXMudGFiTWFuYWdlci5nZXRBbGxUYWJzKCksXy5zd2l0Y2hUb1RhYiE9PSExJiZ0aGlzLnN3aXRjaFRvVGFiKFMuaWQpLGF3YWl0IHRoaXMudXBkYXRlQ29tcGxldGUsXy5jb21tYW5kJiZhd2FpdCB0aGlzLnNwYXduUHJvY2Vzc0ZvclRhYihTLF8uY29tbWFuZCxfLmFyZ3MpLHRoaXMuZGlzcGF0Y2hFdmVudChuZXcgQ3VzdG9tRXZlbnQoInRhYi1jcmVhdGVkIix7YnViYmxlczohMCxjb21wb3NlZDohMCxkZXRhaWw6e3RhYklkOlMuaWR9fSkpLFMuaWR9Z2V0QWN0aXZlVGFiKCl7cmV0dXJuIHRoaXMuYWN0aXZlVGFiSWQmJnRoaXMudGFiTWFuYWdlci5nZXRUYWIodGhpcy5hY3RpdmVUYWJJZCl8fG51bGx9Z2V0VGFicygpe3JldHVybiB0aGlzLnRhYk1hbmFnZXIuZ2V0QWxsVGFicygpfXNlbGVjdFRhYihfKXtyZXR1cm4gdGhpcy50YWJNYW5hZ2VyLmhhc1RhYihfKT8odGhpcy5zd2l0Y2hUb1RhYihfKSwhMCk6ITF9Y2xvc2VUYWIoXyl7bGV0IFM9dGhpcy50YWJNYW5hZ2VyLmdldFRhYihfKTtpZighU3x8IVMuY2xvc2VhYmxlKXJldHVybiExO2lmKF89PT10aGlzLmFjdGl2ZVRhYklkKXtsZXQgJD10aGlzLnRhYk1hbmFnZXIuZ2V0QWxsVGFicygpLFQ9JC5maW5kSW5kZXgocT0+cS5pZD09PV8pLEU9JFtUKzFdfHwkW1QtMV07RT90aGlzLnN3aXRjaFRvVGFiKEUuaWQpOih0aGlzLmFjdGl2ZVRhYklkPW51bGwsdGhpcy5kZXRhY2hBY3RpdmVUZXJtaW5hbCgpKX1yZXR1cm4gdGhpcy50YWJNYW5hZ2VyLmNsb3NlVGFiKF8pLHRoaXMudGFicz10aGlzLnRhYk1hbmFnZXIuZ2V0QWxsVGFicygpLHRoaXMuZGlzcGF0Y2hFdmVudChuZXcgQ3VzdG9tRXZlbnQoInRhYi1jbG9zZWQiLHtidWJibGVzOiEwLGNvbXBvc2VkOiEwLGRldGFpbDp7dGFiSWQ6X319KSksITB9d3JpdGVUb1RhYihfLFMpe2xldCAkPXRoaXMudGFiTWFuYWdlci5nZXRUYWIoXyk7cmV0dXJuICQ/KCQudGVybWluYWwud3JpdGUoUyksITApOiExfXNlbmRJbnB1dFRvVGFiKF8sUyl7bGV0ICQ9dGhpcy50YWJNYW5hZ2VyLmdldFRhYihfKTtyZXR1cm4hJHx8ISQuaW5wdXRXcml0ZXI/ITE6KCQuaW5wdXRXcml0ZXIud3JpdGUoUyksITApfWFzeW5jIHNob3dBY3Rpb25iYXIoXyl7cmV0dXJuIHRoaXMudGVybWluYWxBY3Rpb25iYXJ8fCh0aGlzLnRlcm1pbmFsQWN0aW9uYmFyPXRoaXMuc2hhZG93Um9vdD8ucXVlcnlTZWxlY3RvcigiZGVlcy1hY3Rpb25iYXIiKSksdGhpcy50ZXJtaW5hbEFjdGlvbmJhcj8uc2hvdyhfKX1hc3luYyB3YWl0Rm9yUHJvbXB0KF8sUyl7cmV0dXJuIG5ldyBQcm9taXNlKCQ9PntsZXQgVD0oKT0+e2xldCBFPV8uYnVmZmVyLmFjdGl2ZTtmb3IobGV0IHE9MDtxPEUubGVuZ3RoO3ErKyl7bGV0IEI9RS5nZXRMaW5lKHEpO2lmKEImJkIudHJhbnNsYXRlVG9TdHJpbmcoKS5pbmNsdWRlcyhTKSl7c2V0VGltZW91dCgoKT0+eyQoKX0sMTAwKTtyZXR1cm59fXNldFRpbWVvdXQoVCwxMDApfTtUKCl9KX1hc3luYyBzZXRFbnZpcm9ubWVudFZhcmlhYmxlcyhfKXtpZighdGhpcy5leGVjdXRpb25FbnZpcm9ubWVudCl0aHJvdyBuZXcgRXJyb3IoIk5vIGV4ZWN1dGlvbiBlbnZpcm9ubWVudCBhdmFpbGFibGUiKTtsZXQgUz0iIjtmb3IobGV0ICQgaW4gXylTKz1gZXhwb3J0ICR7JH09IiR7X1skXX0iCmA7YXdhaXQgdGhpcy5leGVjdXRpb25FbnZpcm9ubWVudC53cml0ZUZpbGUoIi9zb3VyY2UuZW52IixTKX1nZXRFeGVjdXRpb25FbnZpcm9ubWVudCgpe3JldHVybiB0aGlzLmV4ZWN1dGlvbkVudmlyb25tZW50fXN0YXRpY3tsbihpLHIpfX07cmV0dXJuIFI9aX0pKCl9KTt2YXIgUWRlLEpkZSxaWHIsWFhyLFFYcixtZHIsZ2RyPXAoKCk9Pnt4ZSgpO2loKCk7TjQoKTtDTigpO0ZOKCk7SU4oKTtPZCgpO1pOKCk7UWRlPWZ1bmN0aW9uKGUsdCxyLGksYSxuKXtmdW5jdGlvbiBvKHkpe2lmKHkhPT12b2lkIDAmJnR5cGVvZiB5IT0iZnVuY3Rpb24iKXRocm93IG5ldyBUeXBlRXJyb3IoIkZ1bmN0aW9uIGV4cGVjdGVkIik7cmV0dXJuIHl9Zm9yKHZhciBzPWkua2luZCxsPXM9PT0iZ2V0dGVyIj8iZ2V0IjpzPT09InNldHRlciI/InNldCI6InZhbHVlIixjPSF0JiZlP2kuc3RhdGljP2U6ZS5wcm90b3R5cGU6bnVsbCx1PXR8fChjP09iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoYyxpLm5hbWUpOnt9KSxkLGg9ITEsZj1yLmxlbmd0aC0xO2Y+PTA7Zi0tKXt2YXIgeD17fTtmb3IodmFyIHYgaW4gaSl4W3ZdPXY9PT0iYWNjZXNzIj97fTppW3ZdO2Zvcih2YXIgdiBpbiBpLmFjY2Vzcyl4LmFjY2Vzc1t2XT1pLmFjY2Vzc1t2XTt4LmFkZEluaXRpYWxpemVyPWZ1bmN0aW9uKHkpe2lmKGgpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGFkZCBpbml0aWFsaXplcnMgYWZ0ZXIgZGVjb3JhdGlvbiBoYXMgY29tcGxldGVkIik7bi5wdXNoKG8oeXx8bnVsbCkpfTt2YXIgYj0oMCxyW2ZdKShzPT09ImFjY2Vzc29yIj97Z2V0OnUuZ2V0LHNldDp1LnNldH06dVtsXSx4KTtpZihzPT09ImFjY2Vzc29yIil7aWYoYj09PXZvaWQgMCljb250aW51ZTtpZihiPT09bnVsbHx8dHlwZW9mIGIhPSJvYmplY3QiKXRocm93IG5ldyBUeXBlRXJyb3IoIk9iamVjdCBleHBlY3RlZCIpOyhkPW8oYi5nZXQpKSYmKHUuZ2V0PWQpLChkPW8oYi5zZXQpKSYmKHUuc2V0PWQpLChkPW8oYi5pbml0KSkmJmEudW5zaGlmdChkKX1lbHNlKGQ9byhiKSkmJihzPT09ImZpZWxkIj9hLnVuc2hpZnQoZCk6dVtsXT1kKX1jJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoYyxpLm5hbWUsdSksaD0hMH0sSmRlPWZ1bmN0aW9uKGUsdCxyKXtmb3IodmFyIGk9YXJndW1lbnRzLmxlbmd0aD4yLGE9MDthPHQubGVuZ3RoO2ErKylyPWk/dFthXS5jYWxsKGUscik6dFthXS5jYWxsKGUpO3JldHVybiBpP3I6dm9pZCAwfSxaWHI9KCgpPT57bGV0IGU9W3llKCJkZW1vLXZpZXctZGFzaGJvYXJkIildLHQscj1bXSxpLGE9emU7dmFyIG49Y2xhc3MgZXh0ZW5kcyBhe3N0YXRpY3tpPXRoaXN9c3RhdGlje2xldCBvPXR5cGVvZiBTeW1ib2w9PSJmdW5jdGlvbiImJlN5bWJvbC5tZXRhZGF0YT9PYmplY3QuY3JlYXRlKGFbU3ltYm9sLm1ldGFkYXRhXT8/bnVsbCk6dm9pZCAwO1FkZShudWxsLHQ9e3ZhbHVlOml9LGUse2tpbmQ6ImNsYXNzIixuYW1lOmkubmFtZSxtZXRhZGF0YTpvfSxudWxsLHIpLG49aT10LnZhbHVlLG8mJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShpLFN5bWJvbC5tZXRhZGF0YSx7ZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITAsdmFsdWU6b30pfXN0YXRpYyBzdHlsZXM9W20uZGVmYXVsdFN0eWxlcyxvZWAKICAgICAgOmhvc3QgewogICAgICAgIGRpc3BsYXk6IGJsb2NrOwogICAgICAgIHBhZGRpbmc6IDQwcHg7CiAgICAgIH0KICAgICAgaDEgewogICAgICAgIG1hcmdpbjogMCAwIDIwcHggMDsKICAgICAgICBjb2xvcjogJHttLmJkVGhlbWUoIiMwMDAiLCIjZmZmIil9OwogICAgICB9CiAgICAgIGRlZXMtc3RhdHNncmlkIHsKICAgICAgICBtYXJnaW4tdG9wOiAyMHB4OwogICAgICB9CiAgICBgXTtzdGF0c1RpbGVzPVt7aWQ6InVzZXJzIix0aXRsZToiQWN0aXZlIFVzZXJzIix2YWx1ZToxMjM0LHR5cGU6Im51bWJlciIsaWNvbjoiZmFVc2VycyIsZGVzY3JpcHRpb246IisxNSUgZnJvbSBsYXN0IHdlZWsiLGNvbG9yOiIjMjJjNTVlIn0se2lkOiJwYWdldmlld3MiLHRpdGxlOiJQYWdlIFZpZXdzIix2YWx1ZTo1NjcwMCx0eXBlOiJudW1iZXIiLGljb246ImZhRXllIixkZXNjcmlwdGlvbjoiNTYuN2sgdG90YWwgdmlld3MiLGNvbG9yOiIjM2I4MmY2In0se2lkOiJ1cHRpbWUiLHRpdGxlOiJTeXN0ZW0gVXB0aW1lIix2YWx1ZTo4OSx1bml0OiIlIix0eXBlOiJnYXVnZSIsaWNvbjoiZmFTZXJ2ZXIiLGRlc2NyaXB0aW9uOiJMYXN0IDMwIGRheXMiLGNvbG9yOiIjMTBiOTgxIixnYXVnZU9wdGlvbnM6e21pbjowLG1heDoxMDAsdGhyZXNob2xkczpbe3ZhbHVlOjgwLGNvbG9yOiIjZWY0NDQ0In0se3ZhbHVlOjkwLGNvbG9yOiIjZjU5ZTBiIn0se3ZhbHVlOjEwMCxjb2xvcjoiIzEwYjk4MSJ9XX19LHtpZDoicmVzcG9uc2UiLHRpdGxlOiJBdmcgUmVzcG9uc2UgVGltZSIsdmFsdWU6My4yLHVuaXQ6InMiLHR5cGU6Im51bWJlciIsaWNvbjoiZmFDbG9jayIsZGVzY3JpcHRpb246Ii0wLjVzIGltcHJvdmVtZW50Iixjb2xvcjoiI2Y1OWUwYiJ9LHtpZDoicmV2ZW51ZSIsdGl0bGU6Ik1vbnRobHkgUmV2ZW51ZSIsdmFsdWU6NDg1MjAsdW5pdDoiJCIsdHlwZToidHJlbmQiLGljb246ImZhRG9sbGFyU2lnbiIsZGVzY3JpcHRpb246Iis4LjIlIGdyb3d0aCIsY29sb3I6IiMyMmM1NWUiLHRyZW5kRGF0YTpbMzVlMywzOGUzLDM3NTAwLDQxZTMsMzk4MDAsNDJlMyw0NDEwMCw0MzIwMCw0NTYwMCw0NzEwMCw0NjgwMCw0ODUyMF19LHtpZDoidHJhZmZpYyIsdGl0bGU6IlRyYWZmaWMgVHJlbmQiLHZhbHVlOjE2ODAsdHlwZToidHJlbmQiLGljb246ImZhQ2hhcnRMaW5lIixkZXNjcmlwdGlvbjoiTGFzdCA3IGRheXMiLGNvbG9yOiIjM2I4MmY2Iix0cmVuZERhdGE6WzEyMDAsMTM1MCwxMTAwLDE0NTAsMTYwMCwxNTUwLDE2ODBdfV07cmVuZGVyKCl7cmV0dXJuIENgCiAgICAgIDxoMT5EYXNoYm9hcmQ8L2gxPgogICAgICA8cD5XZWxjb21lIHRvIHlvdXIgYXBwbGljYXRpb24gZGFzaGJvYXJkLiBIZXJlJ3MgYW4gb3ZlcnZpZXcgb2YgeW91ciBtZXRyaWNzOjwvcD4KICAgICAgPGRlZXMtc3RhdHNncmlkCiAgICAgICAgLnRpbGVzPSR7dGhpcy5zdGF0c1RpbGVzfQogICAgICAgIEB0aWxlLWFjdGlvbj0ke289Pntjb25zb2xlLmxvZygiVGlsZSBhY3Rpb246IixvLmRldGFpbCl9fQogICAgICA+PC9kZWVzLXN0YXRzZ3JpZD4KICAgIGB9c3RhdGlje0pkZShpLHIpfX07cmV0dXJuIG49aX0pKCksWFhyPSgoKT0+e2xldCBlPVt5ZSgiZGVtby12aWV3LWFuYWx5dGljcyIpXSx0LHI9W10saSxhPXplO3ZhciBuPWNsYXNzIGV4dGVuZHMgYXtzdGF0aWN7aT10aGlzfXN0YXRpY3tsZXQgbz10eXBlb2YgU3ltYm9sPT0iZnVuY3Rpb24iJiZTeW1ib2wubWV0YWRhdGE/T2JqZWN0LmNyZWF0ZShhW1N5bWJvbC5tZXRhZGF0YV0/P251bGwpOnZvaWQgMDtRZGUobnVsbCx0PXt2YWx1ZTppfSxlLHtraW5kOiJjbGFzcyIsbmFtZTppLm5hbWUsbWV0YWRhdGE6b30sbnVsbCxyKSxuPWk9dC52YWx1ZSxvJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoaSxTeW1ib2wubWV0YWRhdGEse2VudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwLHZhbHVlOm99KX1zdGF0aWMgc3R5bGVzPVttLmRlZmF1bHRTdHlsZXMsb2VgCiAgICAgIDpob3N0IHsKICAgICAgICBkaXNwbGF5OiBibG9jazsKICAgICAgICBwYWRkaW5nOiA0MHB4OwogICAgICB9CiAgICAgIGgxIHsKICAgICAgICBtYXJnaW46IDAgMCAyMHB4IDA7CiAgICAgICAgY29sb3I6ICR7bS5iZFRoZW1lKCIjMDAwIiwiI2ZmZiIpfTsKICAgICAgfQogICAgYF07cmVuZGVyKCl7cmV0dXJuIENgCiAgICAgIDxoMT5BbmFseXRpY3M8L2gxPgogICAgICA8cD5UaGlzIGlzIHRoZSBhbmFseXRpY3Mgdmlldy4gWW91IGNhbiBhZGQgY2hhcnRzIGFuZCBtZXRyaWNzIGhlcmUuPC9wPgogICAgYH1zdGF0aWN7SmRlKGkscil9fTtyZXR1cm4gbj1pfSkoKSxRWHI9KCgpPT57bGV0IGU9W3llKCJkZW1vLXZpZXctc2V0dGluZ3MiKV0sdCxyPVtdLGksYT16ZTt2YXIgbj1jbGFzcyBleHRlbmRzIGF7c3RhdGlje2k9dGhpc31zdGF0aWN7bGV0IG89dHlwZW9mIFN5bWJvbD09ImZ1bmN0aW9uIiYmU3ltYm9sLm1ldGFkYXRhP09iamVjdC5jcmVhdGUoYVtTeW1ib2wubWV0YWRhdGFdPz9udWxsKTp2b2lkIDA7UWRlKG51bGwsdD17dmFsdWU6aX0sZSx7a2luZDoiY2xhc3MiLG5hbWU6aS5uYW1lLG1ldGFkYXRhOm99LG51bGwsciksbj1pPXQudmFsdWUsbyYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGksU3ltYm9sLm1ldGFkYXRhLHtlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMCx2YWx1ZTpvfSl9c3RhdGljIHN0eWxlcz1bbS5kZWZhdWx0U3R5bGVzLG9lYAogICAgICA6aG9zdCB7CiAgICAgICAgZGlzcGxheTogYmxvY2s7CiAgICAgICAgcGFkZGluZzogNDBweDsKICAgICAgfQogICAgICBoMSB7CiAgICAgICAgbWFyZ2luOiAwIDAgMjBweCAwOwogICAgICAgIGNvbG9yOiAke20uYmRUaGVtZSgiIzAwMCIsIiNmZmYiKX07CiAgICAgIH0KICAgICAgLnNldHRpbmdzLXNlY3Rpb24gewogICAgICAgIG1hcmdpbi10b3A6IDMwcHg7CiAgICAgIH0KICAgICAgLnNldHRpbmdzLXNlY3Rpb24gaDIgewogICAgICAgIGZvbnQtc2l6ZTogMThweDsKICAgICAgICBtYXJnaW46IDAgMCAxNXB4IDA7CiAgICAgICAgY29sb3I6ICR7bS5iZFRoZW1lKCIjMzMzIiwiI2NjYyIpfTsKICAgICAgfQogICAgICAuaG9yaXpvbnRhbC1mb3JtLXNlY3Rpb24gewogICAgICAgIGJhY2tncm91bmQ6ICR7bS5iZFRoZW1lKCIjZjVmNWY1IiwiIzFhMWExYSIpfTsKICAgICAgICBwYWRkaW5nOiAyMHB4OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDhweDsKICAgICAgICBtYXJnaW46IDE1cHggMDsKICAgICAgfQogICAgYF07cmVuZGVyKCl7cmV0dXJuIENgCiAgICAgIDxoMT5TZXR0aW5nczwvaDE+CiAgICAgIDxwPkNvbmZpZ3VyZSB5b3VyIGFwcGxpY2F0aW9uIHNldHRpbmdzIGJlbG93OjwvcD4KICAgICAgCiAgICAgIDxkaXYgY2xhc3M9InNldHRpbmdzLXNlY3Rpb24iPgogICAgICAgIDxoMj5HZW5lcmFsIFNldHRpbmdzPC9oMj4KICAgICAgICA8ZGVlcy1mb3JtPgogICAgICAgICAgPGRlZXMtaW5wdXQtdGV4dCBrZXk9ImFwcE5hbWUiIGxhYmVsPSJBcHBsaWNhdGlvbiBOYW1lIiB2YWx1ZT0iTXkgQXBwIj48L2RlZXMtaW5wdXQtdGV4dD4KICAgICAgICAgIDxkZWVzLWlucHV0LXRleHQga2V5PSJhcGlFbmRwb2ludCIgbGFiZWw9IkFQSSBFbmRwb2ludCIgdmFsdWU9Imh0dHBzOi8vYXBpLmV4YW1wbGUuY29tIj48L2RlZXMtaW5wdXQtdGV4dD4KICAgICAgICAgIDxkZWVzLWlucHV0LWRyb3Bkb3duCiAgICAgICAgICAgIGtleT0iZW52aXJvbm1lbnQiCiAgICAgICAgICAgIGxhYmVsPSJFbnZpcm9ubWVudCIKICAgICAgICAgICAgLm9wdGlvbnM9JHtbe29wdGlvbjoiRGV2ZWxvcG1lbnQiLGtleToiZGV2In0se29wdGlvbjoiU3RhZ2luZyIsa2V5OiJzdGFnaW5nIn0se29wdGlvbjoiUHJvZHVjdGlvbiIsa2V5OiJwcm9kIn1dfQogICAgICAgICAgICAuc2VsZWN0ZWRPcHRpb249JHt7b3B0aW9uOiJQcm9kdWN0aW9uIixrZXk6InByb2QifX0KICAgICAgICAgID48L2RlZXMtaW5wdXQtZHJvcGRvd24+CiAgICAgICAgICA8ZGVlcy1pbnB1dC1jaGVja2JveCBrZXk9ImVuYWJsZU5vdGlmaWNhdGlvbnMiIGxhYmVsPSJFbmFibGUgTm90aWZpY2F0aW9ucyIgdmFsdWU9InRydWUiPjwvZGVlcy1pbnB1dC1jaGVja2JveD4KICAgICAgICAgIDxkZWVzLWlucHV0LWNoZWNrYm94IGtleT0iZW5hYmxlQW5hbHl0aWNzIiBsYWJlbD0iRW5hYmxlIEFuYWx5dGljcyIgdmFsdWU9ImZhbHNlIj48L2RlZXMtaW5wdXQtY2hlY2tib3g+CiAgICAgICAgICA8ZGVlcy1mb3JtLXN1Ym1pdD5TYXZlIEdlbmVyYWwgU2V0dGluZ3M8L2RlZXMtZm9ybS1zdWJtaXQ+CiAgICAgICAgPC9kZWVzLWZvcm0+CiAgICAgIDwvZGl2PgogICAgICAKICAgICAgPGRpdiBjbGFzcz0ic2V0dGluZ3Mtc2VjdGlvbiI+CiAgICAgICAgPGgyPkRpc3BsYXkgUHJlZmVyZW5jZXM8L2gyPgogICAgICAgIDxkaXYgY2xhc3M9Imhvcml6b250YWwtZm9ybS1zZWN0aW9uIj4KICAgICAgICAgIDxwIHN0eWxlPSJtYXJnaW4tdG9wOiAwOyBtYXJnaW4tYm90dG9tOiAxNnB4OyI+UXVpY2sgZGlzcGxheSBzZXR0aW5ncyB1c2luZyBob3Jpem9udGFsIGxheW91dDo8L3A+CiAgICAgICAgICA8ZGVlcy1mb3JtIGhvcml6b250YWwtbGF5b3V0PgogICAgICAgICAgICA8ZGVlcy1pbnB1dC1kcm9wZG93bgogICAgICAgICAgICAgIGtleT0idGhlbWUiCiAgICAgICAgICAgICAgbGFiZWw9IlRoZW1lIgogICAgICAgICAgICAgIC5lbmFibGVTZWFyY2g9JHshMX0KICAgICAgICAgICAgICAub3B0aW9ucz0ke1t7b3B0aW9uOiJMaWdodCIsa2V5OiJsaWdodCJ9LHtvcHRpb246IkRhcmsiLGtleToiZGFyayJ9LHtvcHRpb246IkF1dG8iLGtleToiYXV0byJ9XX0KICAgICAgICAgICAgICAuc2VsZWN0ZWRPcHRpb249JHt7b3B0aW9uOiJEYXJrIixrZXk6ImRhcmsifX0KICAgICAgICAgICAgPjwvZGVlcy1pbnB1dC1kcm9wZG93bj4KICAgICAgICAgICAgPGRlZXMtaW5wdXQtZHJvcGRvd24KICAgICAgICAgICAgICBrZXk9Imxhbmd1YWdlIgogICAgICAgICAgICAgIGxhYmVsPSJMYW5ndWFnZSIKICAgICAgICAgICAgICAuZW5hYmxlU2VhcmNoPSR7ITF9CiAgICAgICAgICAgICAgLm9wdGlvbnM9JHtbe29wdGlvbjoiRW5nbGlzaCIsa2V5OiJlbiJ9LHtvcHRpb246Ikdlcm1hbiIsa2V5OiJkZSJ9LHtvcHRpb246IlNwYW5pc2giLGtleToiZXMifSx7b3B0aW9uOiJGcmVuY2giLGtleToiZnIifV19CiAgICAgICAgICAgICAgLnNlbGVjdGVkT3B0aW9uPSR7e29wdGlvbjoiRW5nbGlzaCIsa2V5OiJlbiJ9fQogICAgICAgICAgICA+PC9kZWVzLWlucHV0LWRyb3Bkb3duPgogICAgICAgICAgICA8ZGVlcy1pbnB1dC1jaGVja2JveCBrZXk9ImNvbXBhY3RNb2RlIiBsYWJlbD0iQ29tcGFjdCBNb2RlIj48L2RlZXMtaW5wdXQtY2hlY2tib3g+CiAgICAgICAgICA8L2RlZXMtZm9ybT4KICAgICAgICA8L2Rpdj4KICAgICAgPC9kaXY+CiAgICAgIAogICAgICA8ZGl2IGNsYXNzPSJzZXR0aW5ncy1zZWN0aW9uIj4KICAgICAgICA8aDI+Tm90aWZpY2F0aW9uIFNldHRpbmdzPC9oMj4KICAgICAgICA8ZGVlcy1mb3JtPgogICAgICAgICAgPGRlZXMtaW5wdXQtcmFkaW9ncm91cAogICAgICAgICAgICAubGFiZWw9JHsiRW1haWwgRnJlcXVlbmN5In0KICAgICAgICAgICAgLm9wdGlvbnM9JHtbIlJlYWwtdGltZSIsIkRhaWx5IERpZ2VzdCIsIldlZWtseSBTdW1tYXJ5IiwiTmV2ZXIiXX0KICAgICAgICAgICAgLnNlbGVjdGVkT3B0aW9uPSR7IlJlYWwtdGltZSJ9CiAgICAgICAgICAgIC5rZXk9JHsiZW1haWxGcmVxdWVuY3kifQogICAgICAgICAgPjwvZGVlcy1pbnB1dC1yYWRpb2dyb3VwPgogICAgICAgICAgPGRlZXMtaW5wdXQtY2hlY2tib3gga2V5PSJwdXNoTm90aWZpY2F0aW9ucyIgbGFiZWw9IkVuYWJsZSBQdXNoIE5vdGlmaWNhdGlvbnMiIHZhbHVlPSJ0cnVlIj48L2RlZXMtaW5wdXQtY2hlY2tib3g+CiAgICAgICAgICA8ZGVlcy1pbnB1dC1jaGVja2JveCBrZXk9InNvdW5kQWxlcnRzIiBsYWJlbD0iUGxheSBTb3VuZCBmb3IgQWxlcnRzIiB2YWx1ZT0idHJ1ZSI+PC9kZWVzLWlucHV0LWNoZWNrYm94PgogICAgICAgICAgPGRlZXMtZm9ybS1zdWJtaXQ+VXBkYXRlIE5vdGlmaWNhdGlvbnM8L2RlZXMtZm9ybS1zdWJtaXQ+CiAgICAgICAgPC9kZWVzLWZvcm0+CiAgICAgIDwvZGl2PgogICAgYH1zdGF0aWN7SmRlKGkscil9fTtyZXR1cm4gbj1pfSkoKSxtZHI9KCk9PkNgCiAgPHN0eWxlPgogICAgYm9keSB7CiAgICAgIG1hcmdpbjogMDsKICAgICAgcGFkZGluZzogMDsKICAgIH0KICAgIC5kZW1vLWNvbnRhaW5lciB7CiAgICAgIHdpZHRoOiAxMDAlOwogICAgICBoZWlnaHQ6IDEwMCU7CiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgdG9wOiAwOwogICAgICBsZWZ0OiAwOwogICAgfQogIDwvc3R5bGU+CiAgPGRpdiBjbGFzcz0iZGVtby1jb250YWluZXIiPgogICAgPGRlZXMtc2ltcGxlLWFwcGRhc2gKICAgICAgbmFtZT0iTXkgQXBwbGljYXRpb24iCiAgICAgIHRlcm1pbmFsU2V0dXBDb21tYW5kPSJlY2hvICdXZWxjb21lIHRvIHRoZSB0ZXJtaW5hbCEnIgogICAgICAudmlld1RhYnM9JHtbe25hbWU6IkRhc2hib2FyZCIsaWNvbk5hbWU6Imx1Y2lkZTpob21lIixlbGVtZW50OlpYcn0se25hbWU6IkFuYWx5dGljcyIsaWNvbk5hbWU6Imx1Y2lkZTpsaW5lQ2hhcnQiLGVsZW1lbnQ6WFhyfSx7bmFtZToiU2V0dGluZ3MiLGljb25OYW1lOiJsdWNpZGU6c2V0dGluZ3MiLGVsZW1lbnQ6UVhyfV19CiAgICAgIEBsb2dvdXQ9JHsoKT0+e2NvbnNvbGUubG9nKCJMb2dvdXQgZXZlbnQgdHJpZ2dlcmVkIiksYWxlcnQoIkxvZ291dCBjbGlja2VkISIpfX0KICAgICAgQHZpZXctc2VsZWN0PSR7ZT0+e2NvbnNvbGUubG9nKCJWaWV3IHNlbGVjdGVkOiIsZS5kZXRhaWwudmlldy5uYW1lKX19CiAgICA+PC9kZWVzLXNpbXBsZS1hcHBkYXNoPgogIDwvZGl2PgpgfSk7dmFyIEdiLERjLGJkcix2ZHI9cCgoKT0+e2dkcigpO3hlKCk7b3IoKTtKZSgpO0diPWZ1bmN0aW9uKGUsdCxyLGksYSxuKXtmdW5jdGlvbiBvKHkpe2lmKHkhPT12b2lkIDAmJnR5cGVvZiB5IT0iZnVuY3Rpb24iKXRocm93IG5ldyBUeXBlRXJyb3IoIkZ1bmN0aW9uIGV4cGVjdGVkIik7cmV0dXJuIHl9Zm9yKHZhciBzPWkua2luZCxsPXM9PT0iZ2V0dGVyIj8iZ2V0IjpzPT09InNldHRlciI/InNldCI6InZhbHVlIixjPSF0JiZlP2kuc3RhdGljP2U6ZS5wcm90b3R5cGU6bnVsbCx1PXR8fChjP09iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoYyxpLm5hbWUpOnt9KSxkLGg9ITEsZj1yLmxlbmd0aC0xO2Y+PTA7Zi0tKXt2YXIgeD17fTtmb3IodmFyIHYgaW4gaSl4W3ZdPXY9PT0iYWNjZXNzIj97fTppW3ZdO2Zvcih2YXIgdiBpbiBpLmFjY2Vzcyl4LmFjY2Vzc1t2XT1pLmFjY2Vzc1t2XTt4LmFkZEluaXRpYWxpemVyPWZ1bmN0aW9uKHkpe2lmKGgpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGFkZCBpbml0aWFsaXplcnMgYWZ0ZXIgZGVjb3JhdGlvbiBoYXMgY29tcGxldGVkIik7bi5wdXNoKG8oeXx8bnVsbCkpfTt2YXIgYj0oMCxyW2ZdKShzPT09ImFjY2Vzc29yIj97Z2V0OnUuZ2V0LHNldDp1LnNldH06dVtsXSx4KTtpZihzPT09ImFjY2Vzc29yIil7aWYoYj09PXZvaWQgMCljb250aW51ZTtpZihiPT09bnVsbHx8dHlwZW9mIGIhPSJvYmplY3QiKXRocm93IG5ldyBUeXBlRXJyb3IoIk9iamVjdCBleHBlY3RlZCIpOyhkPW8oYi5nZXQpKSYmKHUuZ2V0PWQpLChkPW8oYi5zZXQpKSYmKHUuc2V0PWQpLChkPW8oYi5pbml0KSkmJmEudW5zaGlmdChkKX1lbHNlKGQ9byhiKSkmJihzPT09ImZpZWxkIj9hLnVuc2hpZnQoZCk6dVtsXT1kKX1jJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoYyxpLm5hbWUsdSksaD0hMH0sRGM9ZnVuY3Rpb24oZSx0LHIpe2Zvcih2YXIgaT1hcmd1bWVudHMubGVuZ3RoPjIsYT0wO2E8dC5sZW5ndGg7YSsrKXI9aT90W2FdLmNhbGwoZSxyKTp0W2FdLmNhbGwoZSk7cmV0dXJuIGk/cjp2b2lkIDB9LGJkcj0oKCk9PntsZXQgZT1beWUoImRlZXMtc2ltcGxlLWFwcGRhc2giKV0sdCxyPVtdLGksYT16ZSxuLG89W10scz1bXSxsLGM9W10sdT1bXSxkLGg9W10sZj1bXSx4LHY9W10sYj1bXTt2YXIgeT1jbGFzcyBleHRlbmRzIGF7c3RhdGlje2k9dGhpc31zdGF0aWN7bGV0IHc9dHlwZW9mIFN5bWJvbD09ImZ1bmN0aW9uIiYmU3ltYm9sLm1ldGFkYXRhP09iamVjdC5jcmVhdGUoYVtTeW1ib2wubWV0YWRhdGFdPz9udWxsKTp2b2lkIDA7bj1baigpXSxsPVtqKHt0eXBlOkFycmF5fSldLGQ9W2ooe3R5cGU6U3RyaW5nfSldLHg9W2ZlKCldLEdiKHRoaXMsbnVsbCxuLHtraW5kOiJhY2Nlc3NvciIsbmFtZToibmFtZSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6az0+Im5hbWUiaW4gayxnZXQ6az0+ay5uYW1lLHNldDooayxPKT0+e2submFtZT1PfX0sbWV0YWRhdGE6d30sbyxzKSxHYih0aGlzLG51bGwsbCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InZpZXdUYWJzIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczprPT4idmlld1RhYnMiaW4gayxnZXQ6az0+ay52aWV3VGFicyxzZXQ6KGssTyk9PntrLnZpZXdUYWJzPU99fSxtZXRhZGF0YTp3fSxjLHUpLEdiKHRoaXMsbnVsbCxkLHtraW5kOiJhY2Nlc3NvciIsbmFtZToidGVybWluYWxTZXR1cENvbW1hbmQiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOms9PiJ0ZXJtaW5hbFNldHVwQ29tbWFuZCJpbiBrLGdldDprPT5rLnRlcm1pbmFsU2V0dXBDb21tYW5kLHNldDooayxPKT0+e2sudGVybWluYWxTZXR1cENvbW1hbmQ9T319LG1ldGFkYXRhOnd9LGgsZiksR2IodGhpcyxudWxsLHgse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJzZWxlY3RlZFZpZXciLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOms9PiJzZWxlY3RlZFZpZXciaW4gayxnZXQ6az0+ay5zZWxlY3RlZFZpZXcsc2V0OihrLE8pPT57ay5zZWxlY3RlZFZpZXc9T319LG1ldGFkYXRhOnd9LHYsYiksR2IobnVsbCx0PXt2YWx1ZTppfSxlLHtraW5kOiJjbGFzcyIsbmFtZTppLm5hbWUsbWV0YWRhdGE6d30sbnVsbCxyKSx5PWk9dC52YWx1ZSx3JiZPYmplY3QuZGVmaW5lUHJvcGVydHkoaSxTeW1ib2wubWV0YWRhdGEse2VudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwLHZhbHVlOnd9KX1zdGF0aWMgZGVtbz1tZHI7c3RhdGljIGRlbW9Hcm91cHM9WyJTaW1wbGUiXTsjZT1EYyh0aGlzLG8sIkFwcGxpY2F0aW9uIERhc2hib2FyZCIpO2dldCBuYW1lKCl7cmV0dXJuIHRoaXMuI2V9c2V0IG5hbWUodyl7dGhpcy4jZT13fSN0PShEYyh0aGlzLHMpLERjKHRoaXMsYyxbXSkpO2dldCB2aWV3VGFicygpe3JldHVybiB0aGlzLiN0fXNldCB2aWV3VGFicyh3KXt0aGlzLiN0PXd9I3I9KERjKHRoaXMsdSksRGModGhpcyxoLCdlY2hvICJUZXJtaW5hbCByZWFkeSInKSk7Z2V0IHRlcm1pbmFsU2V0dXBDb21tYW5kKCl7cmV0dXJuIHRoaXMuI3J9c2V0IHRlcm1pbmFsU2V0dXBDb21tYW5kKHcpe3RoaXMuI3I9d30jaT0oRGModGhpcyxmKSxEYyh0aGlzLHYsdm9pZCAwKSk7Z2V0IHNlbGVjdGVkVmlldygpe3JldHVybiB0aGlzLiNpfXNldCBzZWxlY3RlZFZpZXcodyl7dGhpcy4jaT13fXN0YXRpYyBzdHlsZXM9W0RlLG0uZGVmYXVsdFN0eWxlcyxvZWAKICAgICAgLyogVE9ETzogTWlncmF0ZSBoYXJkY29kZWQgdmFsdWVzIHRvIC0tZGVlcy0qIENTUyB2YXJpYWJsZXMgKi8KICAgICAgOmhvc3QgewogICAgICAgIGNvbG9yOiAke20uYmRUaGVtZSgiaHNsKDAgMCUgMTUlKSIsImhzbCgwIDAlIDkwJSkiKX07CiAgICAgICAgdXNlci1zZWxlY3Q6IG5vbmU7CiAgICAgICAgZGlzcGxheTogYmxvY2s7CiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgICAgaGVpZ2h0OiAxMDAlOwogICAgICAgIHdpZHRoOiAxMDAlOwogICAgICB9CgogICAgICAubWFpbmNvbnRhaW5lciB7CiAgICAgICAgcG9zaXRpb246IGFic29sdXRlOwogICAgICAgIHRvcDogMHB4OwogICAgICAgIGxlZnQ6IDBweDsKICAgICAgICByaWdodDogMHB4OwogICAgICAgIGJvdHRvbTogMHB4OwogICAgICAgIG92ZXJmbG93OiBoaWRkZW47CiAgICAgIH0KCiAgICAgIC5hcHBiYXIgewogICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgICB0b3A6IDBweDsKICAgICAgICBsZWZ0OiAwcHg7CiAgICAgICAgaGVpZ2h0OiBjYWxjKDEwMCUgLSAyNHB4KTsKICAgICAgICB3aWR0aDogMjQwcHg7CiAgICAgICAgYmFja2dyb3VuZDogJHttLmJkVGhlbWUoImhzbCgwIDAlIDk5JSkiLCJoc2woMCAwJSA3JSkiKX07CiAgICAgICAgYm9yZGVyLXJpZ2h0OiAxcHggc29saWQgJHttLmJkVGhlbWUoImhzbCgwIDAlIDkxJSkiLCJoc2woMCAwJSAxMyUpIil9OwogICAgICAgIGZvbnQtc2l6ZTogMTNweDsKICAgICAgICBmb250LWZhbWlseTogJ0dlaXN0IFNhbnMnLCBzYW5zLXNlcmlmOwogICAgICAgIHotaW5kZXg6IDI7CiAgICAgICAgZGlzcGxheTogZ3JpZDsKICAgICAgICBncmlkLXRlbXBsYXRlLXJvd3M6IGF1dG8gMWZyIG1pbi1jb250ZW50OwogICAgICAgIG92ZXJmbG93OiBoaWRkZW47CiAgICAgIH0KCiAgICAgIC5zaWRlYmFyLWhlYWRlciB7CiAgICAgICAgcGFkZGluZzogMjBweCAxNnB4OwogICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAke20uYmRUaGVtZSgiaHNsKDAgMCUgOTElKSIsImhzbCgwIDAlIDEzJSkiKX07CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGdhcDogMTJweDsKICAgICAgfQoKICAgICAgLmhlYWRlci1pY29uLXdyYXBwZXIgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKICAgICAgICB3aWR0aDogMzZweDsKICAgICAgICBoZWlnaHQ6IDM2cHg7CiAgICAgICAgYm9yZGVyLXJhZGl1czogMTBweDsKICAgICAgICBiYWNrZ3JvdW5kOiAke20uYmRUaGVtZSgibGluZWFyLWdyYWRpZW50KDEzNWRlZywgaHNsKDIxNSAyMCUgOTUlKSAwJSwgaHNsKDIxNSAyMCUgOTAlKSAxMDAlKSIsImxpbmVhci1ncmFkaWVudCgxMzVkZWcsIGhzbCgyMTUgMjAlIDE4JSkgMCUsIGhzbCgyMTUgMjAlIDE0JSkgMTAwJSkiKX07CiAgICAgICAgYm94LXNoYWRvdzogJHttLmJkVGhlbWUoIjAgMXB4IDJweCByZ2IoMCAwIDAgLyAwLjA1KSwgaW5zZXQgMCAxcHggMCByZ2IoMjU1IDI1NSAyNTUgLyAwLjUpIiwiMCAxcHggMnB4IHJnYigwIDAgMCAvIDAuMiksIGluc2V0IDAgMXB4IDAgcmdiKDI1NSAyNTUgMjU1IC8gMC4wNSkiKX07CiAgICAgIH0KCiAgICAgIC5oZWFkZXItaWNvbi13cmFwcGVyIGRlZXMtaWNvbiB7CiAgICAgICAgZm9udC1zaXplOiAxOHB4OwogICAgICAgIGNvbG9yOiAke20uYmRUaGVtZSgiaHNsKDIxNSAyMCUgNDAlKSIsImhzbCgyMTUgMjAlIDcwJSkiKX07CiAgICAgIH0KCiAgICAgIC5hcHBOYW1lIHsKICAgICAgICBmb250LXNpemU6IDE1cHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDsKICAgICAgICBjb2xvcjogJHttLmJkVGhlbWUoImhzbCgwIDAlIDklKSIsImhzbCgwIDAlIDk4JSkiKX07CiAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDsKICAgICAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzOwogICAgICAgIGxldHRlci1zcGFjaW5nOiAtMC4wMmVtOwogICAgICB9CgogICAgICAudmlld1RhYnMtY29udGFpbmVyIHsKICAgICAgICBvdmVyZmxvdy15OiBhdXRvOwogICAgICAgIHBhZGRpbmc6IDEycHggOHB4OwogICAgICAgIHNjcm9sbGJhci13aWR0aDogdGhpbjsKICAgICAgICBzY3JvbGxiYXItY29sb3I6ICR7bS5iZFRoZW1lKCJoc2woMCAwJSA4NSUpIiwiaHNsKDAgMCUgMjAlKSIpfSB0cmFuc3BhcmVudDsKICAgICAgfQoKICAgICAgLnZpZXdUYWJzLWNvbnRhaW5lcjo6LXdlYmtpdC1zY3JvbGxiYXIgewogICAgICAgIHdpZHRoOiA2cHg7CiAgICAgIH0KCiAgICAgIC52aWV3VGFicy1jb250YWluZXI6Oi13ZWJraXQtc2Nyb2xsYmFyLXRyYWNrIHsKICAgICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDsKICAgICAgfQoKICAgICAgLnZpZXdUYWJzLWNvbnRhaW5lcjo6LXdlYmtpdC1zY3JvbGxiYXItdGh1bWIgewogICAgICAgIGJhY2tncm91bmQ6ICR7bS5iZFRoZW1lKCJoc2woMCAwJSA4NSUpIiwiaHNsKDAgMCUgMjAlKSIpfTsKICAgICAgICBib3JkZXItcmFkaXVzOiAzcHg7CiAgICAgIH0KCiAgICAgIC52aWV3VGFicy1jb250YWluZXI6Oi13ZWJraXQtc2Nyb2xsYmFyLXRodW1iOmhvdmVyIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke20uYmRUaGVtZSgiaHNsKDAgMCUgNzUlKSIsImhzbCgwIDAlIDMwJSkiKX07CiAgICAgIH0KCiAgICAgIC5zZWN0aW9uLWxhYmVsIHsKICAgICAgICBmb250LXNpemU6IDExcHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDsKICAgICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlOwogICAgICAgIGxldHRlci1zcGFjaW5nOiAwLjA1ZW07CiAgICAgICAgY29sb3I6ICR7bS5iZFRoZW1lKCJoc2woMCAwJSA1MCUpIiwiaHNsKDAgMCUgNTAlKSIpfTsKICAgICAgICBwYWRkaW5nOiA4cHggMTJweCA4cHg7CiAgICAgICAgbWFyZ2luLWJvdHRvbTogNHB4OwogICAgICB9CgogICAgICAudmlld1RhYnMgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgICBnYXA6IDJweDsKICAgICAgfQoKICAgICAgLnZpZXdUYWIgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBnYXA6IDEwcHg7CiAgICAgICAgcGFkZGluZzogMTBweCAxMnB4OwogICAgICAgIGN1cnNvcjogZGVmYXVsdDsKICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC4xNXMgZWFzZTsKICAgICAgICBjb2xvcjogJHttLmJkVGhlbWUoImhzbCgwIDAlIDQwJSkiLCJoc2woMCAwJSA2NSUpIil9OwogICAgICAgIHVzZXItc2VsZWN0OiBub25lOwogICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgICBib3JkZXItcmFkaXVzOiA4cHg7CiAgICAgIH0KCiAgICAgIC52aWV3VGFiOmhvdmVyIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke20uYmRUaGVtZSgiaHNsKDAgMCUgMCUgLyAwLjA0KSIsImhzbCgwIDAlIDEwMCUgLyAwLjA1KSIpfTsKICAgICAgICBjb2xvcjogJHttLmJkVGhlbWUoImhzbCgwIDAlIDE1JSkiLCJoc2woMCAwJSA5MCUpIil9OwogICAgICB9CgogICAgICAudmlld1RhYjphY3RpdmUgewogICAgICAgIGJhY2tncm91bmQ6ICR7bS5iZFRoZW1lKCJoc2woMCAwJSAwJSAvIDAuMDYpIiwiaHNsKDAgMCUgMTAwJSAvIDAuMDcpIil9OwogICAgICAgIHRyYW5zZm9ybTogc2NhbGUoMC45OSk7CiAgICAgIH0KCiAgICAgIC52aWV3VGFiLnNlbGVjdGVkIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke20uYmRUaGVtZSgiaHNsKDIxNSAyNSUgOTUlKSIsImhzbCgyMTUgMjAlIDE1JSkiKX07CiAgICAgICAgY29sb3I6ICR7bS5iZFRoZW1lKCJoc2woMjE1IDI1JSAzMCUpIiwiaHNsKDIxNSAyNSUgODUlKSIpfTsKICAgICAgICBmb250LXdlaWdodDogNTAwOwogICAgICB9CgogICAgICAudmlld1RhYi5zZWxlY3RlZDo6YmVmb3JlIHsKICAgICAgICBjb250ZW50OiAnJzsKICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgICAgbGVmdDogMDsKICAgICAgICB0b3A6IDhweDsKICAgICAgICBib3R0b206IDhweDsKICAgICAgICB3aWR0aDogM3B4OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDAgMnB4IDJweCAwOwogICAgICAgIGJhY2tncm91bmQ6ICR7bS5iZFRoZW1lKCJoc2woMjE1IDcwJSA1MCUpIiwiaHNsKDIxNSA3MCUgNjAlKSIpfTsKICAgICAgfQoKICAgICAgLnZpZXdUYWIgZGVlcy1pY29uIHsKICAgICAgICBmb250LXNpemU6IDE2cHg7CiAgICAgICAgb3BhY2l0eTogMC41NTsKICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC4xNXMgZWFzZTsKICAgICAgfQoKICAgICAgLnZpZXdUYWI6aG92ZXIgZGVlcy1pY29uIHsKICAgICAgICBvcGFjaXR5OiAwLjc1OwogICAgICB9CgogICAgICAudmlld1RhYi5zZWxlY3RlZCBkZWVzLWljb24gewogICAgICAgIG9wYWNpdHk6IDAuOTsKICAgICAgICBjb2xvcjogJHttLmJkVGhlbWUoImhzbCgyMTUgNzAlIDQ1JSkiLCJoc2woMjE1IDcwJSA2NSUpIil9OwogICAgICB9CgogICAgICAudmlld1RhYiBzcGFuIHsKICAgICAgICBmbGV4OiAxOwogICAgICAgIG92ZXJmbG93OiBoaWRkZW47CiAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7CiAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDsKICAgICAgfQoKICAgICAgLmFwcEFjdGlvbnMgewogICAgICAgIHBhZGRpbmc6IDEycHggOHB4OwogICAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAke20uYmRUaGVtZSgiaHNsKDAgMCUgOTElKSIsImhzbCgwIDAlIDEzJSkiKX07CiAgICAgIH0KCiAgICAgIC5hY3Rpb24gewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBnYXA6IDEwcHg7CiAgICAgICAgcGFkZGluZzogMTBweCAxMnB4OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDhweDsKICAgICAgICBjdXJzb3I6IGRlZmF1bHQ7CiAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuMTVzIGVhc2U7CiAgICAgICAgY29sb3I6ICR7bS5iZFRoZW1lKCJoc2woMCAwJSA0MCUpIiwiaHNsKDAgMCUgNjUlKSIpfTsKICAgICAgfQoKICAgICAgLmFjdGlvbjpob3ZlciB7CiAgICAgICAgYmFja2dyb3VuZDogJHttLmJkVGhlbWUoImhzbCgwIDg0JSA2MCUgLyAwLjA4KSIsImhzbCgwIDg0JSA2MCUgLyAwLjEyKSIpfTsKICAgICAgICBjb2xvcjogJHttLmJkVGhlbWUoImhzbCgwIDg0JSA0NSUpIiwiaHNsKDAgODQlIDY1JSkiKX07CiAgICAgIH0KCiAgICAgIC5hY3Rpb24gZGVlcy1pY29uIHsKICAgICAgICBmb250LXNpemU6IDE2cHg7CiAgICAgICAgb3BhY2l0eTogMC42OwogICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjE1cyBlYXNlOwogICAgICB9CgogICAgICAuYWN0aW9uOmhvdmVyIGRlZXMtaWNvbiB7CiAgICAgICAgb3BhY2l0eTogMC45OwogICAgICAgIGNvbG9yOiAke20uYmRUaGVtZSgiaHNsKDAgODQlIDQ1JSkiLCJoc2woMCA4NCUgNjUlKSIpfTsKICAgICAgfQoKICAgICAgLmFwcGNvbnRlbnQgewogICAgICAgIHotaW5kZXg6IDE7CiAgICAgICAgcG9zaXRpb246IGFic29sdXRlOwogICAgICAgIHRvcDogMHB4OwogICAgICAgIHJpZ2h0OiAwcHg7CiAgICAgICAgaGVpZ2h0OiBjYWxjKDEwMCUgLSAyNHB4KTsKICAgICAgICBib3R0b206IDI0cHg7CiAgICAgICAgd2lkdGg6IGNhbGMoMTAwJSAtIDI0MHB4KTsKICAgICAgICBvdmVyZmxvdzogYXV0bzsKICAgICAgICBiYWNrZ3JvdW5kOiAke20uYmRUaGVtZSgiaHNsKDAgMCUgOTclKSIsImhzbCgwIDAlIDUlKSIpfTsKICAgICAgICBvdmVyc2Nyb2xsLWJlaGF2aW9yOiBjb250YWluOwogICAgICB9CgogICAgICAuY29udHJvbGJhciB7CiAgICAgICAgY29sb3I6ICNmZmY7CiAgICAgICAgcG9zaXRpb246IGFic29sdXRlOwogICAgICAgIGJvdHRvbTogMHB4OwogICAgICAgIGxlZnQ6IDBweDsKICAgICAgICB3aWR0aDogMTAwJTsKICAgICAgICBoZWlnaHQ6IDI0cHg7CiAgICAgICAgYmFja2dyb3VuZDogJHttLmJkVGhlbWUoImhzbCgyMjAgMTMlIDE4JSkiLCJoc2woMjIwIDEzJSAxMiUpIil9OwogICAgICAgIHotaW5kZXg6IDI7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kOwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdzsKICAgICAgICBmb250LXNpemU6IDExcHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDsKICAgICAgICBsZXR0ZXItc3BhY2luZzogMC4wMWVtOwogICAgICB9CgogICAgICAuY29udHJvbCB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGdhcDogNnB4OwogICAgICAgIHBhZGRpbmc6IDAgMTJweDsKICAgICAgICBoZWlnaHQ6IDEwMCU7CiAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDsKICAgICAgICBjdXJzb3I6IGRlZmF1bHQ7CiAgICAgICAgY29sb3I6IGhzbCgwIDAlIDcwJSk7CiAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuMTVzIGVhc2U7CiAgICAgICAgYm9yZGVyLWxlZnQ6IDFweCBzb2xpZCBoc2woMCAwJSAxMDAlIC8gMC4wOCk7CiAgICAgIH0KCiAgICAgIC5jb250cm9sOmZpcnN0LWNoaWxkIHsKICAgICAgICBib3JkZXItbGVmdDogbm9uZTsKICAgICAgfQoKICAgICAgLmNvbnRyb2w6aG92ZXIgewogICAgICAgIGJhY2tncm91bmQ6IGhzbCgwIDAlIDEwMCUgLyAwLjA2KTsKICAgICAgICBjb2xvcjogaHNsKDAgMCUgOTUlKTsKICAgICAgfQoKICAgICAgLmNvbnRyb2wgZGVlcy1pY29uIHsKICAgICAgICBmb250LXNpemU6IDEzcHg7CiAgICAgIH0KCiAgICAgIC5jb250cm9sLnN0YXR1cy1jb25uZWN0ZWQgZGVlcy1pY29uIHsKICAgICAgICBjb2xvcjogaHNsKDE0MiA3MCUgNTAlKTsKICAgICAgfQoKICAgICAgLmNvbnRyb2wuc3RhdHVzLXRlcm1pbmFsIGRlZXMtaWNvbiB7CiAgICAgICAgY29sb3I6IGhzbCg0NSA5MCUgNTUlKTsKICAgICAgfQogICAgYF07cmVuZGVyKCl7cmV0dXJuIENgCiAgICAgIDxkaXYgY2xhc3M9Im1haW5jb250YWluZXIiPgogICAgICAgIDxkaXYgY2xhc3M9ImFwcGJhciI+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJzaWRlYmFyLWhlYWRlciI+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9ImhlYWRlci1pY29uLXdyYXBwZXIiPgogICAgICAgICAgICAgIDxkZWVzLWljb24gLmljb249IiR7Imx1Y2lkZTpsYXlvdXRHcmlkIn0iPjwvZGVlcy1pY29uPgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0iYXBwTmFtZSI+JHt0aGlzLm5hbWV9PC9kaXY+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIDxkaXYgY2xhc3M9InZpZXdUYWJzLWNvbnRhaW5lciI+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9InNlY3Rpb24tbGFiZWwiPk5hdmlnYXRpb248L2Rpdj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0idmlld1RhYnMiPgogICAgICAgICAgICAgICR7dGhpcy52aWV3VGFicy5tYXAodz0+Q2AKICAgICAgICAgICAgICAgICAgPGRpdgogICAgICAgICAgICAgICAgICAgIGNsYXNzPSJ2aWV3VGFiICR7dGhpcy5zZWxlY3RlZFZpZXc9PT13PyJzZWxlY3RlZCI6IiJ9IgogICAgICAgICAgICAgICAgICAgIEBjbGljaz0keygpPT50aGlzLmxvYWRWaWV3KHcpfQogICAgICAgICAgICAgICAgICA+CiAgICAgICAgICAgICAgICAgICAgJHt3Lmljb25OYW1lP0NgCiAgICAgICAgICAgICAgICAgICAgICA8ZGVlcy1pY29uIC5pY29uPSIke3cuaWNvbk5hbWUuaW5jbHVkZXMoIjoiKT93Lmljb25OYW1lOmBsdWNpZGU6JHt3Lmljb25OYW1lfWB9Ij48L2RlZXMtaWNvbj4KICAgICAgICAgICAgICAgICAgICBgOkNgCiAgICAgICAgICAgICAgICAgICAgICA8ZGVlcy1pY29uIC5pY29uPSIkeyJsdWNpZGU6ZmlsZSJ9Ij48L2RlZXMtaWNvbj4KICAgICAgICAgICAgICAgICAgICBgfQogICAgICAgICAgICAgICAgICAgIDxzcGFuPiR7dy5uYW1lfTwvc3Bhbj4KICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICBgKX0KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIDxkaXYgY2xhc3M9ImFwcEFjdGlvbnMiPgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJhY3Rpb24iIEBjbGljaz0keygpPT57dGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBDdXN0b21FdmVudCgibG9nb3V0Iix7YnViYmxlczohMCxjb21wb3NlZDohMH0pKX19PgogICAgICAgICAgICAgIDxkZWVzLWljb24gLmljb249IiR7Imx1Y2lkZTpsb2dPdXQifSI+PC9kZWVzLWljb24+CiAgICAgICAgICAgICAgPHNwYW4+U2lnbiBvdXQ8L3NwYW4+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgPC9kaXY+CiAgICAgICAgPC9kaXY+CiAgICAgICAgPGRpdiBjbGFzcz0iYXBwY29udGVudCI+CiAgICAgICAgICA8IS0tIENvbnRlbnQgZ29lcyBoZXJlIC0tPgogICAgICAgIDwvZGl2PgogICAgICAgIDxkaXYgY2xhc3M9ImNvbnRyb2xiYXIiPgogICAgICAgICAgPGRpdiBjbGFzcz0iY29udHJvbCBzdGF0dXMtY29ubmVjdGVkIj4KICAgICAgICAgICAgPGRlZXMtaWNvbiAuaWNvbj0iJHsibHVjaWRlOndpZmkifSI+PC9kZWVzLWljb24+CiAgICAgICAgICAgIDxzcGFuPkNvbm5lY3RlZDwvc3Bhbj4KICAgICAgICAgIDwvZGl2PgogICAgICAgICAgPGRpdiBjbGFzcz0iY29udHJvbCBzdGF0dXMtdGVybWluYWwiIEBjbGljaz0ke3RoaXMubGF1bmNoVGVybWluYWx9PgogICAgICAgICAgICA8ZGVlcy1pY29uIC5pY29uPSIkeyJsdWNpZGU6dGVybWluYWwifSI+PC9kZWVzLWljb24+CiAgICAgICAgICAgIDxzcGFuPlRlcm1pbmFsPC9zcGFuPgogICAgICAgICAgPC9kaXY+CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGl2PgogICAgYH1hc3luYyBmaXJzdFVwZGF0ZWQodyl7bGV0IGs9YXdhaXQgdGhpcy5kb210b29sc1Byb21pc2U7aWYoc3VwZXIuZmlyc3RVcGRhdGVkKHcpLHRoaXMudmlld1RhYnMmJnRoaXMudmlld1RhYnMubGVuZ3RoPjApe2xldCBPPXRoaXMuc2VsZWN0ZWRWaWV3fHx0aGlzLnZpZXdUYWJzWzBdO2F3YWl0IHRoaXMubG9hZFZpZXcoTyl9fWN1cnJlbnRUZXJtaW5hbD1EYyh0aGlzLGIpO2FzeW5jIGxhdW5jaFRlcm1pbmFsKCl7bGV0IHc9YXdhaXQgdGhpcy5kb210b29sc1Byb21pc2U7aWYodGhpcy5jdXJyZW50VGVybWluYWwpe2F3YWl0IHRoaXMuY2xvc2VUZXJtaW5hbCgpO3JldHVybn1sZXQgaz10aGlzLnNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvcigiLm1haW5jb250YWluZXIiKSx7RGVlc1dvcmtzcGFjZVRlcm1pbmFsOk99PWF3YWl0IFByb21pc2UucmVzb2x2ZSgpLnRoZW4oKCk9PihXYigpLGZkcikpLHo9bmV3IE87cmV0dXJuIHouc2V0dXBDb21tYW5kPXRoaXMudGVybWluYWxTZXR1cENvbW1hbmQsdGhpcy5jdXJyZW50VGVybWluYWw9eixrLmFwcGVuZENoaWxkKHopLHouc3R5bGUucG9zaXRpb249ImFic29sdXRlIix6LnN0eWxlLnpJbmRleD0iMTAiLHouc3R5bGUudG9wPSIwcHgiLHouc3R5bGUubGVmdD0iMjQwcHgiLHouc3R5bGUucmlnaHQ9IjBweCIsei5zdHlsZS5ib3R0b209IjI0cHgiLHouc3R5bGUub3BhY2l0eT0iMCIsei5zdHlsZS50cmFuc2Zvcm09InRyYW5zbGF0ZVkoOHB4KSBzY2FsZSgwLjk5KSIsei5zdHlsZS50cmFuc2l0aW9uPSJhbGwgMC4yNXMgY3ViaWMtYmV6aWVyKDAuNCwgMCwgMC4yLCAxKSIsei5zdHlsZS5ib3hTaGFkb3c9IjAgMjVweCA1MHB4IC0xMnB4IHJnYigwIDAgMCAvIDAuNSksIDAgMCAwIDFweCByZ2IoMjU1IDI1NSAyNTUgLyAwLjA1KSIsei5zdHlsZS5tYXhXaWR0aD1gY2FsYygke2suY2xpZW50V2lkdGh9cHggLTI0MHB4KWAsei5zdHlsZS5tYXhIZWlnaHQ9YGNhbGMoJHtrLmNsaWVudEhlaWdodH1weCAtIDI0cHgpYCx6LmFkZEV2ZW50TGlzdGVuZXIoImNsb3NlIiwoKT0+dGhpcy5jbG9zZVRlcm1pbmFsKCkpLGF3YWl0IHcuY29udmVuaWVuY2Uuc21hcnRkZWxheS5kZWxheUZvcigwKSx6LnN0eWxlLm9wYWNpdHk9IjEiLHouc3R5bGUudHJhbnNmb3JtPSJ0cmFuc2xhdGVZKDApIHNjYWxlKDEpIix6fWFzeW5jIGNsb3NlVGVybWluYWwoKXtsZXQgdz1hd2FpdCB0aGlzLmRvbXRvb2xzUHJvbWlzZTt0aGlzLmN1cnJlbnRUZXJtaW5hbCYmKHRoaXMuY3VycmVudFRlcm1pbmFsLnN0eWxlLm9wYWNpdHk9IjAiLHRoaXMuY3VycmVudFRlcm1pbmFsLnN0eWxlLnRyYW5zZm9ybT0idHJhbnNsYXRlWSg4cHgpIHNjYWxlKDAuOTkpIixhd2FpdCB3LmNvbnZlbmllbmNlLnNtYXJ0ZGVsYXkuZGVsYXlGb3IoMjUwKSx0aGlzLmN1cnJlbnRUZXJtaW5hbC5yZW1vdmUoKSx0aGlzLmN1cnJlbnRUZXJtaW5hbD1udWxsKX1jdXJyZW50Vmlldzthc3luYyBsb2FkVmlldyh3KXtsZXQgaz10aGlzLnNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvcigiLmFwcGNvbnRlbnQiKSxPPW5ldyB3LmVsZW1lbnQ7dGhpcy5jdXJyZW50VmlldyYmdGhpcy5jdXJyZW50Vmlldy5yZW1vdmUoKSxrLmFwcGVuZENoaWxkKE8pLHRoaXMuY3VycmVudFZpZXc9Tyx0aGlzLnNlbGVjdGVkVmlldz13LHRoaXMuZGlzcGF0Y2hFdmVudChuZXcgQ3VzdG9tRXZlbnQoInZpZXctc2VsZWN0Iix7ZGV0YWlsOnt2aWV3Ond9LGJ1YmJsZXM6ITAsY29tcG9zZWQ6ITB9KSl9c3RhdGlje0RjKGkscil9fTtyZXR1cm4geT1pfSkoKX0pO3ZhciB4ZHI9cCgoKT0+e3ZkcigpfSk7dmFyIHlkcix3ZHI9cCgoKT0+e3hlKCk7eWRyPSgpPT5DYAogIDxzdHlsZT4KICAgIGJvZHkgewogICAgICBtYXJnaW46IDA7CiAgICAgIHBhZGRpbmc6IDA7CiAgICB9CiAgICAuZGVtby1jb250YWluZXIgewogICAgICB3aWR0aDogMTAwJTsKICAgICAgaGVpZ2h0OiAxMDAlOwogICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgIHRvcDogMDsKICAgICAgbGVmdDogMDsKICAgIH0KICA8L3N0eWxlPgogIDxkaXYgY2xhc3M9ImRlbW8tY29udGFpbmVyIj4KICAgIDxkZWVzLXNpbXBsZS1sb2dpbiAKICAgICAgbmFtZT0iTXkgQXBwbGljYXRpb24iCiAgICAgIEBsb2dpbj0ke2U9Pntjb25zb2xlLmxvZygiTG9naW4gZXZlbnQgcmVjZWl2ZWQ6IixlLmRldGFpbCk7bGV0IHQ9ZS5kZXRhaWw/LmRhdGF8fGUuZGV0YWlsO3Q/LnVzZXJuYW1lJiZ0Py5wYXNzd29yZD9hbGVydChgTG9naW4gYXR0ZW1wdGVkIHdpdGg6ClVzZXJuYW1lOiAke3QudXNlcm5hbWV9ClBhc3N3b3JkOiAke3QucGFzc3dvcmR9YCk6Y29uc29sZS5lcnJvcigiSW52YWxpZCBsb2dpbiBkYXRhIHN0cnVjdHVyZToiLGUuZGV0YWlsKX19CiAgICA+CiAgICAgIDxkaXYgc3R5bGU9InBhZGRpbmc6IDQwcHg7IHRleHQtYWxpZ246IGNlbnRlcjsiPgogICAgICAgIDxoMT5XZWxjb21lITwvaDE+CiAgICAgICAgPHA+VGhpcyBpcyB0aGUgc2xvdHRlZCBjb250ZW50IHRoYXQgYXBwZWFycyBhZnRlciBsb2dpbi48L3A+CiAgICAgIDwvZGl2PgogICAgPC9kZWVzLXNpbXBsZS1sb2dpbj4KICA8L2Rpdj4KYH0pO3ZhciBNZHIsS2RlLGtkcixTZHI9cCgoKT0+e3dkcigpO3hlKCk7SmUoKTtNZHI9ZnVuY3Rpb24oZSx0LHIsaSxhLG4pe2Z1bmN0aW9uIG8oeSl7aWYoeSE9PXZvaWQgMCYmdHlwZW9mIHkhPSJmdW5jdGlvbiIpdGhyb3cgbmV3IFR5cGVFcnJvcigiRnVuY3Rpb24gZXhwZWN0ZWQiKTtyZXR1cm4geX1mb3IodmFyIHM9aS5raW5kLGw9cz09PSJnZXR0ZXIiPyJnZXQiOnM9PT0ic2V0dGVyIj8ic2V0IjoidmFsdWUiLGM9IXQmJmU/aS5zdGF0aWM/ZTplLnByb3RvdHlwZTpudWxsLHU9dHx8KGM/T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihjLGkubmFtZSk6e30pLGQsaD0hMSxmPXIubGVuZ3RoLTE7Zj49MDtmLS0pe3ZhciB4PXt9O2Zvcih2YXIgdiBpbiBpKXhbdl09dj09PSJhY2Nlc3MiP3t9Omlbdl07Zm9yKHZhciB2IGluIGkuYWNjZXNzKXguYWNjZXNzW3ZdPWkuYWNjZXNzW3ZdO3guYWRkSW5pdGlhbGl6ZXI9ZnVuY3Rpb24oeSl7aWYoaCl0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgYWRkIGluaXRpYWxpemVycyBhZnRlciBkZWNvcmF0aW9uIGhhcyBjb21wbGV0ZWQiKTtuLnB1c2gobyh5fHxudWxsKSl9O3ZhciBiPSgwLHJbZl0pKHM9PT0iYWNjZXNzb3IiP3tnZXQ6dS5nZXQsc2V0OnUuc2V0fTp1W2xdLHgpO2lmKHM9PT0iYWNjZXNzb3IiKXtpZihiPT09dm9pZCAwKWNvbnRpbnVlO2lmKGI9PT1udWxsfHx0eXBlb2YgYiE9Im9iamVjdCIpdGhyb3cgbmV3IFR5cGVFcnJvcigiT2JqZWN0IGV4cGVjdGVkIik7KGQ9byhiLmdldCkpJiYodS5nZXQ9ZCksKGQ9byhiLnNldCkpJiYodS5zZXQ9ZCksKGQ9byhiLmluaXQpKSYmYS51bnNoaWZ0KGQpfWVsc2UoZD1vKGIpKSYmKHM9PT0iZmllbGQiP2EudW5zaGlmdChkKTp1W2xdPWQpfWMmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShjLGkubmFtZSx1KSxoPSEwfSxLZGU9ZnVuY3Rpb24oZSx0LHIpe2Zvcih2YXIgaT1hcmd1bWVudHMubGVuZ3RoPjIsYT0wO2E8dC5sZW5ndGg7YSsrKXI9aT90W2FdLmNhbGwoZSxyKTp0W2FdLmNhbGwoZSk7cmV0dXJuIGk/cjp2b2lkIDB9LGtkcj0oKCk9PntsZXQgZT1beWUoImRlZXMtc2ltcGxlLWxvZ2luIildLHQscj1bXSxpLGE9emUsbixvPVtdLHM9W107dmFyIGw9Y2xhc3MgZXh0ZW5kcyBhe3N0YXRpY3tpPXRoaXN9c3RhdGlje2xldCBjPXR5cGVvZiBTeW1ib2w9PSJmdW5jdGlvbiImJlN5bWJvbC5tZXRhZGF0YT9PYmplY3QuY3JlYXRlKGFbU3ltYm9sLm1ldGFkYXRhXT8/bnVsbCk6dm9pZCAwO249W2ooKV0sTWRyKHRoaXMsbnVsbCxuLHtraW5kOiJhY2Nlc3NvciIsbmFtZToibmFtZSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6dT0+Im5hbWUiaW4gdSxnZXQ6dT0+dS5uYW1lLHNldDoodSxkKT0+e3UubmFtZT1kfX0sbWV0YWRhdGE6Y30sbyxzKSxNZHIobnVsbCx0PXt2YWx1ZTppfSxlLHtraW5kOiJjbGFzcyIsbmFtZTppLm5hbWUsbWV0YWRhdGE6Y30sbnVsbCxyKSxsPWk9dC52YWx1ZSxjJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoaSxTeW1ib2wubWV0YWRhdGEse2VudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwLHZhbHVlOmN9KX1zdGF0aWMgZGVtbz15ZHI7c3RhdGljIGRlbW9Hcm91cHM9WyJTaW1wbGUiXTsjZT1LZGUodGhpcyxvLCJBcHBsaWNhdGlvbiIpO2dldCBuYW1lKCl7cmV0dXJuIHRoaXMuI2V9c2V0IG5hbWUoYyl7dGhpcy4jZT1jfXN0YXRpYyBzdHlsZXM9W0RlLG0uZGVmYXVsdFN0eWxlcyxvZWAKICAgICAgLyogVE9ETzogTWlncmF0ZSBoYXJkY29kZWQgdmFsdWVzIHRvIC0tZGVlcy0qIENTUyB2YXJpYWJsZXMgKi8KICAgICAgOmhvc3QgewogICAgICAgIGNvbG9yOiAke20uYmRUaGVtZSgiaHNsKDAgMCUgMy45JSkiLCJoc2woMCAwJSA5OCUpIil9OwogICAgICAgIHVzZXItc2VsZWN0OiBub25lOwogICAgICAgIGRpc3BsYXk6IGJsb2NrOwogICAgICAgIHdpZHRoOiAxMDAlOwogICAgICAgIGhlaWdodDogMTAwJTsKICAgICAgICBmb250LWZhbWlseTogJ0dlaXN0IFNhbnMnLCBzYW5zLXNlcmlmOwogICAgICB9CgogICAgICAubG9naW5Db250YWluZXIgewogICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgICAgaGVpZ2h0OiAxMDAlOwogICAgICAgIHRvcDogMDsKICAgICAgICBsZWZ0OiAwOwogICAgICAgIGJhY2tncm91bmQ6ICR7bS5iZFRoZW1lKCJoc2woMCAwJSAxMDAlKSIsImhzbCgwIDAlIDMuOSUpIil9OwogICAgICB9CgogICAgICAuc2xvdENvbnRhaW5lciB7CiAgICAgICAgcG9zaXRpb246IGFic29sdXRlOwogICAgICAgIHdpZHRoOiAxMDAlOwogICAgICAgIGhlaWdodDogMTAwJTsKICAgICAgICB0b3A6IDA7CiAgICAgICAgbGVmdDogMDsKICAgICAgICBvcGFjaXR5OiAwOwogICAgICAgIHRyYW5zaXRpb246IG9wYWNpdHkgMC4ycyBlYXNlLCB0cmFuc2Zvcm0gMC4ycyBlYXNlOwogICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lOwogICAgICB9CgogICAgICAubG9naW4gewogICAgICAgIHdpZHRoOiAxMDAlOwogICAgICAgIG1heC13aWR0aDogMzYwcHg7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICAgIGdhcDogMjRweDsKICAgICAgfQoKICAgICAgLmxvZ2luLWhlYWRlciB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICAgIGdhcDogOHB4OwogICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjsKICAgICAgfQoKICAgICAgLmhlYWRlciB7CiAgICAgICAgZm9udC1zaXplOiAyNHB4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7CiAgICAgICAgbGV0dGVyLXNwYWNpbmc6IC0wLjAyNWVtOwogICAgICAgIGNvbG9yOiAke20uYmRUaGVtZSgiaHNsKDAgMCUgOSUpIiwiaHNsKDAgMCUgOTglKSIpfTsKICAgICAgfQoKICAgICAgLnN1YmhlYWRlciB7CiAgICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgICAgIGNvbG9yOiAke20uYmRUaGVtZSgiaHNsKDAgMCUgNDUuMSUpIiwiaHNsKDAgMCUgNjMuOSUpIil9OwogICAgICB9CgogICAgICAubG9naW4tY2FyZCB7CiAgICAgICAgYmFja2dyb3VuZDogJHttLmJkVGhlbWUoImhzbCgwIDAlIDEwMCUpIiwiaHNsKDAgMCUgOSUpIil9OwogICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICR7bS5iZFRoZW1lKCJoc2woMCAwJSA4OS44JSkiLCJoc2woMCAwJSAxNC45JSkiKX07CiAgICAgICAgYm9yZGVyLXJhZGl1czogOHB4OwogICAgICAgIHBhZGRpbmc6IDI0cHg7CiAgICAgIH0KCiAgICAgIC5sb2dpbi1jYXJkIGRlZXMtZm9ybSB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICAgIGdhcDogMTZweDsKICAgICAgfQoKICAgICAgLmxvZ2luLWNhcmQgZGVlcy1pbnB1dC10ZXh0IHsKICAgICAgICB3aWR0aDogMTAwJTsKICAgICAgfQoKICAgICAgLmxvZ2luLWNhcmQgZGVlcy1mb3JtLXN1Ym1pdCB7CiAgICAgICAgbWFyZ2luLXRvcDogOHB4OwogICAgICAgIHdpZHRoOiAxMDAlOwogICAgICB9CiAgICBgXTtyZW5kZXIoKXtyZXR1cm4gQ2AKICAgICAgPGRpdiBjbGFzcz0ibG9naW5Db250YWluZXIiPgogICAgICAgIDxkaXYgY2xhc3M9ImxvZ2luIj4KICAgICAgICAgIDxkaXYgY2xhc3M9ImxvZ2luLWhlYWRlciI+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9ImhlYWRlciI+U2lnbiBpbjwvZGl2PgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJzdWJoZWFkZXIiPkVudGVyIHlvdXIgY3JlZGVudGlhbHMgdG8gYWNjZXNzICR7dGhpcy5uYW1lfTwvZGl2PgogICAgICAgICAgPC9kaXY+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJsb2dpbi1jYXJkIj4KICAgICAgICAgICAgPGRlZXMtZm9ybT4KICAgICAgICAgICAgICA8ZGVlcy1pbnB1dC10ZXh0IGtleT0idXNlcm5hbWUiIGxhYmVsPSJVc2VybmFtZSIgcmVxdWlyZWQ+PC9kZWVzLWlucHV0LXRleHQ+CiAgICAgICAgICAgICAgPGRlZXMtaW5wdXQtdGV4dCBrZXk9InBhc3N3b3JkIiBsYWJlbD0iUGFzc3dvcmQiIGlzUGFzc3dvcmRCb29sIHJlcXVpcmVkPjwvZGVlcy1pbnB1dC10ZXh0PgogICAgICAgICAgICAgIDxkZWVzLWZvcm0tc3VibWl0PlNpZ24gaW48L2RlZXMtZm9ybS1zdWJtaXQ+CiAgICAgICAgICAgIDwvZGVlcy1mb3JtPgogICAgICAgICAgPC9kaXY+CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGl2PgogICAgICA8ZGl2IGNsYXNzPSJzbG90Q29udGFpbmVyIj4KICAgICAgICA8c2xvdD48L3Nsb3Q+CiAgICAgIDwvZGl2PgogICAgYH1hc3luYyBmaXJzdFVwZGF0ZWQoYyl7c3VwZXIuZmlyc3RVcGRhdGVkKGMpO2xldCB1PXRoaXMuc2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yKCJkZWVzLWZvcm0iKTt1JiZ1LmFkZEV2ZW50TGlzdGVuZXIoImZvcm1EYXRhIixkPT57dGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBDdXN0b21FdmVudCgibG9naW4iLHtkZXRhaWw6ZC5kZXRhaWwsYnViYmxlczohMCxjb21wb3NlZDohMH0pKX0pfWFzeW5jIHN3aXRjaFRvU2xvdHRlZENvbnRlbnQoKXtsZXQgYz1hd2FpdCB0aGlzLmRvbXRvb2xzUHJvbWlzZSx1PXRoaXMuc2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yKCIubG9naW4iKSxkPXRoaXMuc2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yKCIubG9naW5Db250YWluZXIiKSxoPXRoaXMuc2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yKCIuc2xvdENvbnRhaW5lciIpO3Uuc3R5bGUub3BhY2l0eT0iMCIsdS5zdHlsZS50cmFuc2Zvcm09InRyYW5zbGF0ZVkoMjBweCkiLGQuc3R5bGUucG9pbnRlckV2ZW50cz0ibm9uZSIsaC5zdHlsZS50cmFuc2Zvcm09InRyYW5zbGF0ZVkoMjBweCkiLGF3YWl0IGMuY29udmVuaWVuY2Uuc21hcnRkZWxheS5kZWxheUZvcigzMDApLGguc3R5bGUub3BhY2l0eT0iMSIsaC5zdHlsZS50cmFuc2Zvcm09InRyYW5zbGF0ZVkoMHB4KSIsYXdhaXQgYy5jb252ZW5pZW5jZS5zbWFydGRlbGF5LmRlbGF5Rm9yKDMwMCksaC5zdHlsZS5wb2ludGVyRXZlbnRzPSJhbGwifWNvbnN0cnVjdG9yKCl7c3VwZXIoLi4uYXJndW1lbnRzKSxLZGUodGhpcyxzKX1zdGF0aWN7S2RlKGkscil9fTtyZXR1cm4gbD1pfSkoKX0pO3ZhciB6ZHI9cCgoKT0+e1NkcigpfSk7dmFyIENkcj1wKCgpPT57aGRyKCk7eGRyKCk7emRyKCl9KTt2YXIgVGRyPXAoKCk9PntvcigpfSk7dmFyIF9kcixMZHI9cCgoKT0+e3hlKCk7X2RyPSgpPT5DYAogICAgPHN0eWxlPgogICAgICAuZGVtb1dyYXBwZXIgewogICAgICAgIGRpc3BsYXk6IGJsb2NrOwogICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICAKICAgICAgICBiYWNrZ3JvdW5kOiAjODg4ODg4OwogICAgICB9CiAgICAgIC5sb2dzIHsKICAgICAgICBwYWRkaW5nOiAxNnB4OwogICAgICAgIHdpZHRoOiA2MDBweDsKICAgICAgICBjb2xvcjogI2ZmZjsKICAgICAgICBmb250LWZhbWlseTogbW9ub3NwYWNlOwogICAgICB9CiAgICAgIC5sb2dzIGRpdiB7CiAgICAgICAgbWFyZ2luOiA0cHggMDsKICAgICAgfQogICAgPC9zdHlsZT4KICAgIDxkaXYgY2xhc3M9ImRlbW9XcmFwcGVyIj4KICAgICAgPGRlZXMtc2VhcmNoYmFyCiAgICAgICAgQHNlYXJjaC1jaGFuZ2VkPSR7cj0+e2xldCBhPXIudGFyZ2V0LmNsb3Nlc3QoIi5kZW1vV3JhcHBlciIpPy5xdWVyeVNlbGVjdG9yKCIjY2hhbmdlZCIpO2EmJihhLnRleHRDb250ZW50PWBzZWFyY2gtY2hhbmdlZDogJHtyLmRldGFpbC52YWx1ZX1gKX19CiAgICAgICAgQHNlYXJjaC1zdWJtaXQ9JHtyPT57bGV0IGE9ci50YXJnZXQuY2xvc2VzdCgiLmRlbW9XcmFwcGVyIik/LnF1ZXJ5U2VsZWN0b3IoIiNzdWJtaXR0ZWQiKTthJiYoYS50ZXh0Q29udGVudD1gc2VhcmNoLXN1Ym1pdDogJHtyLmRldGFpbC52YWx1ZX1gKX19CiAgICAgID48L2RlZXMtc2VhcmNoYmFyPgogICAgICA8ZGl2IGNsYXNzPSJsb2dzIj4KICAgICAgICA8ZGl2IGlkPSJjaGFuZ2VkIj5zZWFyY2gtY2hhbmdlZDo8L2Rpdj4KICAgICAgICA8ZGl2IGlkPSJzdWJtaXR0ZWQiPnNlYXJjaC1zdWJtaXQ6PC9kaXY+CiAgICAgIDwvZGl2PgogICAgPC9kaXY+CiAgYH0pO3ZhciBBZHIsZTVlLERkcixFZHI9cCgoKT0+e3hlKCk7UG8oKTtMZHIoKTtKZSgpO0Fkcj1mdW5jdGlvbihlLHQscixpLGEsbil7ZnVuY3Rpb24gbyh5KXtpZih5IT09dm9pZCAwJiZ0eXBlb2YgeSE9ImZ1bmN0aW9uIil0aHJvdyBuZXcgVHlwZUVycm9yKCJGdW5jdGlvbiBleHBlY3RlZCIpO3JldHVybiB5fWZvcih2YXIgcz1pLmtpbmQsbD1zPT09ImdldHRlciI/ImdldCI6cz09PSJzZXR0ZXIiPyJzZXQiOiJ2YWx1ZSIsYz0hdCYmZT9pLnN0YXRpYz9lOmUucHJvdG90eXBlOm51bGwsdT10fHwoYz9PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGMsaS5uYW1lKTp7fSksZCxoPSExLGY9ci5sZW5ndGgtMTtmPj0wO2YtLSl7dmFyIHg9e307Zm9yKHZhciB2IGluIGkpeFt2XT12PT09ImFjY2VzcyI/e306aVt2XTtmb3IodmFyIHYgaW4gaS5hY2Nlc3MpeC5hY2Nlc3Nbdl09aS5hY2Nlc3Nbdl07eC5hZGRJbml0aWFsaXplcj1mdW5jdGlvbih5KXtpZihoKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBhZGQgaW5pdGlhbGl6ZXJzIGFmdGVyIGRlY29yYXRpb24gaGFzIGNvbXBsZXRlZCIpO24ucHVzaChvKHl8fG51bGwpKX07dmFyIGI9KDAscltmXSkocz09PSJhY2Nlc3NvciI/e2dldDp1LmdldCxzZXQ6dS5zZXR9OnVbbF0seCk7aWYocz09PSJhY2Nlc3NvciIpe2lmKGI9PT12b2lkIDApY29udGludWU7aWYoYj09PW51bGx8fHR5cGVvZiBiIT0ib2JqZWN0Iil0aHJvdyBuZXcgVHlwZUVycm9yKCJPYmplY3QgZXhwZWN0ZWQiKTsoZD1vKGIuZ2V0KSkmJih1LmdldD1kKSwoZD1vKGIuc2V0KSkmJih1LnNldD1kKSwoZD1vKGIuaW5pdCkpJiZhLnVuc2hpZnQoZCl9ZWxzZShkPW8oYikpJiYocz09PSJmaWVsZCI/YS51bnNoaWZ0KGQpOnVbbF09ZCl9YyYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGMsaS5uYW1lLHUpLGg9ITB9LGU1ZT1mdW5jdGlvbihlLHQscil7Zm9yKHZhciBpPWFyZ3VtZW50cy5sZW5ndGg+MixhPTA7YTx0Lmxlbmd0aDthKyspcj1pP3RbYV0uY2FsbChlLHIpOnRbYV0uY2FsbChlKTtyZXR1cm4gaT9yOnZvaWQgMH0sRGRyPSgoKT0+e2xldCBlPVt5ZSgiZGVlcy1zZWFyY2hiYXIiKV0sdCxyPVtdLGksYT16ZSxuLG89W10scz1bXTt2YXIgbD1jbGFzcyBleHRlbmRzIGF7c3RhdGlje2k9dGhpc31zdGF0aWN7bGV0IGM9dHlwZW9mIFN5bWJvbD09ImZ1bmN0aW9uIiYmU3ltYm9sLm1ldGFkYXRhP09iamVjdC5jcmVhdGUoYVtTeW1ib2wubWV0YWRhdGFdPz9udWxsKTp2b2lkIDA7bj1baigpXSxBZHIodGhpcyxudWxsLG4se2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJmaWx0ZXJzIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczp1PT4iZmlsdGVycyJpbiB1LGdldDp1PT51LmZpbHRlcnMsc2V0Oih1LGQpPT57dS5maWx0ZXJzPWR9fSxtZXRhZGF0YTpjfSxvLHMpLEFkcihudWxsLHQ9e3ZhbHVlOml9LGUse2tpbmQ6ImNsYXNzIixuYW1lOmkubmFtZSxtZXRhZGF0YTpjfSxudWxsLHIpLGw9aT10LnZhbHVlLGMmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShpLFN5bWJvbC5tZXRhZGF0YSx7ZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITAsdmFsdWU6Y30pfXN0YXRpYyBkZW1vPV9kcjtzdGF0aWMgZGVtb0dyb3Vwcz1bIlV0aWxpdHkiXTtzdGF0aWMgc3R5bGVzPVtEZSxtLmRlZmF1bHRTdHlsZXMsb2VgCiAgICAgIC8qIFRPRE86IE1pZ3JhdGUgaGFyZGNvZGVkIHZhbHVlcyB0byAtLWRlZXMtKiBDU1MgdmFyaWFibGVzICovCiAgICAgIDpob3N0IHsKICAgICAgICBwYWRkaW5nOiA0MHB4OwogICAgICAgIGZvbnQtZmFtaWx5OiBEZWVzIFNhbnM7CiAgICAgICAgZGlzcGxheTogYmxvY2s7CiAgICAgICAgYmFja2dyb3VuZDogJHttLmJkVGhlbWUoIiNlZWVlZWIiLCIjMDAwMDAwIil9OwogICAgICB9CgogICAgICAuc2VhcmNoYm94Q29udGFpbmVyIHsKICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgICAgbWFyZ2luOiBhdXRvOwogICAgICAgIG1heC13aWR0aDogODAwcHg7CiAgICAgICAgYmFja2dyb3VuZDogJHttLmJkVGhlbWUoIiMwMDAwMDAxNSIsIiNmZmZmZmYxNSIpfTsKICAgICAgICAtLWJveEhlaWdodDogNjBweDsKICAgICAgICBoZWlnaHQ6IHZhcigtLWJveEhlaWdodCk7CiAgICAgICAgYm9yZGVyLXJhZGl1czogdmFyKC0tYm94SGVpZ2h0KTsKICAgICAgICBkaXNwbGF5OiBncmlkOwogICAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogMWZyIDE0MHB4OwogICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICR7bS5iZFRoZW1lKCIjMDAwMDAwMTUiLCIjZmZmZmZmMjAiKX07CiAgICAgIH0KCiAgICAgIGlucHV0IHsKICAgICAgICBoZWlnaHQ6IDEwMCU7CiAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgICAgYm9yZGVyOiBub25lOwogICAgICAgIGJhY2tncm91bmQ6IG5vbmU7CiAgICAgICAgY29sb3I6ICR7bS5iZFRoZW1lKCIjMDAwMDAwIiwiI2VlZWVlYiIpfTsKICAgICAgICBwYWRkaW5nLWxlZnQ6IDI1cHg7CiAgICAgICAgbWFyZ2luLXJpZ2h0OiAtOHB4OwogICAgICAgIG91dGxpbmU6IG5vbmU7CiAgICAgICAgZm9udC1zaXplOiAxNnB4OwogICAgICB9CgogICAgICAuc2VhcmNoQnV0dG9uIHsKICAgICAgICAtLWJ1dHRvblBhZGRpbmc6IDhweDsKICAgICAgICBiYWNrZ3JvdW5kOiAke20uYmRUaGVtZSgiI2VlZWVlYiIsIiMwMDAwMDAiKX07CiAgICAgICAgY29sb3I6ICR7bS5iZFRoZW1lKCIjMDAwMDAwIiwiI2VlZWVlYiIpfTsKICAgICAgICBsaW5lLWhlaWdodDogY2FsYyh2YXIoLS1ib3hIZWlnaHQpIC0gKHZhcigtLWJ1dHRvblBhZGRpbmcpICogMikpOwogICAgICAgIGJvcmRlci1yYWRpdXM6IHZhcigtLWJveEhlaWdodCk7CiAgICAgICAgdHJhbnNmb3JtOiBzY2FsZSgxKSA7CiAgICAgICAgdHJhbnNmb3JtLW9yaWdpbjogNTAlIDUwJTsKICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7CiAgICAgICAgCiAgICAgICAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDAuMXMsIGJhY2tncm91bmQgMC4xczsKICAgICAgICBtYXJnaW4tcmlnaHQ6IHZhcigtLWJ1dHRvblBhZGRpbmcpOwogICAgICAgIHVzZXItc2VsZWN0OiBub25lOwogICAgICB9CgogICAgICAuc2VhcmNoQnV0dG9uOmhvdmVyIHsKICAgICAgICBjb2xvcjogI2ZmZjsKICAgICAgICBiYWNrZ3JvdW5kOiAke20uYmRUaGVtZShFZC5ibHVlLElvLmJsdWUpfTsKICAgICAgfQoKICAgICAgLnNlYXJjaEJ1dHRvbjphY3RpdmUgewogICAgICAgIGNvbG9yOiAjZmZmOwogICAgICAgIGJhY2tncm91bmQ6ICR7bS5iZFRoZW1lKEVkLmJsdWVBY3RpdmUsSW8uYmx1ZUFjdGl2ZSl9OwogICAgICAgIHRyYW5zZm9ybTogc2NhbGUoMC45OCk7CiAgICAgIH0KCiAgICAgIC5maWx0ZXJzIHsKICAgICAgICBtYXJnaW46IGF1dG87CiAgICAgICAgbWF4LXdpZHRoOiA4MDBweDsKICAgICAgfQogICAgYF07I2U9ZTVlKHRoaXMsbyxbXSk7Z2V0IGZpbHRlcnMoKXtyZXR1cm4gdGhpcy4jZX1zZXQgZmlsdGVycyhjKXt0aGlzLiNlPWN9c2VhcmNoSW5wdXQ9ZTVlKHRoaXMscyk7c2VhcmNoQnV0dG9uO2NvbnN0cnVjdG9yKCl7c3VwZXIoKX1yZW5kZXIoKXtyZXR1cm4gQ2AKICAgICAgPGRpdiBjbGFzcz0ic2VhcmNoYm94Q29udGFpbmVyIj4KICAgICAgICA8aW5wdXQgdHlwZT0idGV4dCIgcGxhY2Vob2xkZXI9IllvdXIgU2tpbGxzIChlLmcuIFR5cGVTY3JpcHQsIFJ1c3QsIFByb2plY3RtYW5hZ2VtZW50KSIgLz4KICAgICAgICA8ZGl2IGNsYXNzPSJzZWFyY2hCdXR0b24iPlNlYXJjaCAtPjwvZGl2PgogICAgICA8L2Rpdj4KICAgICAgJHt0aGlzLmZpbHRlcnMubGVuZ3RoPjA/Q2AKICAgICAgICA8ZGl2IGNsYXNzPSJmaWx0ZXJzIj4KICAgICAgICA8ZGVlcy1oZWFkaW5nIGxldmVsPSJoci1zbWFsbCI+RmlsdGVyczwvZGVlcy1oZWFkaW5nPgogICAgICAgIDxkZWVzLWlucHV0LWRyb3Bkb3duIC5sYWJlbD0keyJsb2NhdGlvbiJ9PjwvZGVlcy1pbnB1dC1kcm9wZG93bj4KICAgICAgPC9kaXY+ICAKICAgICAgYDpDYGB9CiAgICBgfWZpcnN0VXBkYXRlZCgpe3RoaXMuc2VhcmNoSW5wdXQuYWRkRXZlbnRMaXN0ZW5lcigiaW5wdXQiLCgpPT57dGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBDdXN0b21FdmVudCgic2VhcmNoLWNoYW5nZWQiLHtidWJibGVzOiEwLGNvbXBvc2VkOiEwLGRldGFpbDp7dmFsdWU6dGhpcy5zZWFyY2hJbnB1dC52YWx1ZX19KSl9KSx0aGlzLnNlYXJjaElucHV0LmFkZEV2ZW50TGlzdGVuZXIoImtleWRvd24iLGM9PntjLmtleT09PSJFbnRlciImJnRoaXMuX2Rpc3BhdGNoU3VibWl0KCl9KSx0aGlzLnNlYXJjaEJ1dHRvbi5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsKCk9PnRoaXMuX2Rpc3BhdGNoU3VibWl0KCkpfV9kaXNwYXRjaFN1Ym1pdCgpe3RoaXMuZGlzcGF0Y2hFdmVudChuZXcgQ3VzdG9tRXZlbnQoInNlYXJjaC1zdWJtaXQiLHtidWJibGVzOiEwLGNvbXBvc2VkOiEwLGRldGFpbDp7dmFsdWU6dGhpcy5zZWFyY2hJbnB1dC52YWx1ZX19KSl9c3RhdGlje2U1ZShpLHIpfX07cmV0dXJuIGw9aX0pKCl9KTt2YXIgJGRyPXAoKCk9PntFZHIoKX0pO3ZhciBJZHIsUGRyPXAoKCk9Pnt4ZSgpO0lkcj0oKT0+Q2AKICA8c3R5bGU+CiAgICAuZGVtby1jb250YWluZXIgewogICAgICBkaXNwbGF5OiBmbGV4OwogICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICBnYXA6IDMycHg7CiAgICAgIHBhZGRpbmc6IDQ4cHg7CiAgICAgIGJhY2tncm91bmQ6ICR7bS5iZFRoZW1lKCIjZjhmOWZhIiwiIzBhMGEwYSIpfTsKICAgICAgbWluLWhlaWdodDogMTAwdmg7CiAgICB9CgogICAgLnNlY3Rpb24gewogICAgICBiYWNrZ3JvdW5kOiAke20uYmRUaGVtZSgiI2ZmZmZmZiIsIiMxODE4MWIiKX07CiAgICAgIGJvcmRlcjogMXB4IHNvbGlkICR7bS5iZFRoZW1lKCIjZTVlN2ViIiwiIzI3MjcyYSIpfTsKICAgICAgYm9yZGVyLXJhZGl1czogOHB4OwogICAgICBwYWRkaW5nOiAyNHB4OwogICAgfQoKICAgIC5zZWN0aW9uLXRpdGxlIHsKICAgICAgZm9udC1zaXplOiAxOHB4OwogICAgICBmb250LXdlaWdodDogNjAwOwogICAgICBtYXJnaW4tYm90dG9tOiAxNnB4OwogICAgICBjb2xvcjogJHttLmJkVGhlbWUoIiMwOTA5MGIiLCIjZmFmYWZhIil9OwogICAgfQoKICAgIC5zZWN0aW9uLWRlc2NyaXB0aW9uIHsKICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgICBjb2xvcjogJHttLmJkVGhlbWUoIiM3MTcxN2EiLCIjYTFhMWFhIil9OwogICAgICBtYXJnaW4tYm90dG9tOiAyNHB4OwogICAgfQoKICAgIC50b2tlbi1ncmlkIHsKICAgICAgZGlzcGxheTogZ3JpZDsKICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoYXV0by1maWxsLCBtaW5tYXgoMjAwcHgsIDFmcikpOwogICAgICBnYXA6IDE2cHg7CiAgICB9CgogICAgLnRva2VuLWl0ZW0gewogICAgICBiYWNrZ3JvdW5kOiAke20uYmRUaGVtZSgiI2Y0ZjRmNSIsIiMyNzI3MmEiKX07CiAgICAgIGJvcmRlci1yYWRpdXM6IDZweDsKICAgICAgcGFkZGluZzogMTZweDsKICAgIH0KCiAgICAudG9rZW4tbmFtZSB7CiAgICAgIGZvbnQtZmFtaWx5OiAnSW50ZWwgT25lIE1vbm8nLCBtb25vc3BhY2U7CiAgICAgIGZvbnQtc2l6ZTogMTJweDsKICAgICAgY29sb3I6ICR7bS5iZFRoZW1lKCIjNzE3MTdhIiwiI2ExYTFhYSIpfTsKICAgICAgbWFyZ2luLWJvdHRvbTogOHB4OwogICAgfQoKICAgIC50b2tlbi12YWx1ZSB7CiAgICAgIGZvbnQtc2l6ZTogMTRweDsKICAgICAgZm9udC13ZWlnaHQ6IDUwMDsKICAgICAgY29sb3I6ICR7bS5iZFRoZW1lKCIjMDkwOTBiIiwiI2ZhZmFmYSIpfTsKICAgIH0KCiAgICAuc3BhY2luZy1kZW1vIHsKICAgICAgZGlzcGxheTogZmxleDsKICAgICAgYWxpZ24taXRlbXM6IGZsZXgtZW5kOwogICAgICBnYXA6IDhweDsKICAgICAgZmxleC13cmFwOiB3cmFwOwogICAgfQoKICAgIC5zcGFjaW5nLWJveCB7CiAgICAgIGJhY2tncm91bmQ6ICR7bS5iZFRoZW1lKCIjM2I4MmY2IiwiIzNiODJmNiIpfTsKICAgICAgYm9yZGVyLXJhZGl1czogNHB4OwogICAgfQoKICAgIC5yYWRpdXMtZGVtbyB7CiAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgIGdhcDogMTZweDsKICAgICAgZmxleC13cmFwOiB3cmFwOwogICAgfQoKICAgIC5yYWRpdXMtYm94IHsKICAgICAgd2lkdGg6IDYwcHg7CiAgICAgIGhlaWdodDogNjBweDsKICAgICAgYmFja2dyb3VuZDogJHttLmJkVGhlbWUoIiMzYjgyZjYiLCIjM2I4MmY2Iil9OwogICAgICBkaXNwbGF5OiBmbGV4OwogICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKICAgICAgY29sb3I6IHdoaXRlOwogICAgICBmb250LXNpemU6IDExcHg7CiAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7CiAgICB9CgogICAgLnNoYWRvdy1kZW1vIHsKICAgICAgZGlzcGxheTogZmxleDsKICAgICAgZ2FwOiAyNHB4OwogICAgICBmbGV4LXdyYXA6IHdyYXA7CiAgICB9CgogICAgLnNoYWRvdy1ib3ggewogICAgICB3aWR0aDogMTAwcHg7CiAgICAgIGhlaWdodDogMTAwcHg7CiAgICAgIGJhY2tncm91bmQ6ICR7bS5iZFRoZW1lKCIjZmZmZmZmIiwiIzI3MjcyYSIpfTsKICAgICAgYm9yZGVyLXJhZGl1czogOHB4OwogICAgICBkaXNwbGF5OiBmbGV4OwogICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKICAgICAgZm9udC1zaXplOiAxMnB4OwogICAgICBmb250LXdlaWdodDogNTAwOwogICAgICBjb2xvcjogJHttLmJkVGhlbWUoIiM3MTcxN2EiLCIjYTFhMWFhIil9OwogICAgfQoKICAgIC5oZWlnaHQtZGVtbyB7CiAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgIGdhcDogMTZweDsKICAgICAgYWxpZ24taXRlbXM6IGZsZXgtZW5kOwogICAgICBmbGV4LXdyYXA6IHdyYXA7CiAgICB9CgogICAgLmhlaWdodC1ib3ggewogICAgICBiYWNrZ3JvdW5kOiAke20uYmRUaGVtZSgiIzNiODJmNiIsIiMzYjgyZjYiKX07CiAgICAgIHdpZHRoOiAxMjBweDsKICAgICAgYm9yZGVyLXJhZGl1czogNnB4OwogICAgICBkaXNwbGF5OiBmbGV4OwogICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKICAgICAgY29sb3I6IHdoaXRlOwogICAgICBmb250LXNpemU6IDEycHg7CiAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7CiAgICB9CiAgPC9zdHlsZT4KICA8ZGl2IGNsYXNzPSJkZW1vLWNvbnRhaW5lciI+CiAgICA8ZGVlcy10aGVtZT4KICAgICAgPGRpdiBjbGFzcz0ic2VjdGlvbiI+CiAgICAgICAgPGRpdiBjbGFzcz0ic2VjdGlvbi10aXRsZSI+U3BhY2luZyBTY2FsZTwvZGl2PgogICAgICAgIDxkaXYgY2xhc3M9InNlY3Rpb24tZGVzY3JpcHRpb24iPgogICAgICAgICAgQ1NTIHZhcmlhYmxlczogLS1kZWVzLXNwYWNpbmcteHMgdGhyb3VnaCAtLWRlZXMtc3BhY2luZy0zeGwKICAgICAgICA8L2Rpdj4KICAgICAgICA8ZGl2IGNsYXNzPSJzcGFjaW5nLWRlbW8iPgogICAgICAgICAgPGRpdj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0ic3BhY2luZy1ib3giIHN0eWxlPSJ3aWR0aDogdmFyKC0tZGVlcy1zcGFjaW5nLXhzKTsgaGVpZ2h0OiB2YXIoLS1kZWVzLXNwYWNpbmcteHMpOyI+PC9kaXY+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9InRva2VuLW5hbWUiPnhzICg0cHgpPC9kaXY+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIDxkaXY+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9InNwYWNpbmctYm94IiBzdHlsZT0id2lkdGg6IHZhcigtLWRlZXMtc3BhY2luZy1zbSk7IGhlaWdodDogdmFyKC0tZGVlcy1zcGFjaW5nLXNtKTsiPjwvZGl2PgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJ0b2tlbi1uYW1lIj5zbSAoOHB4KTwvZGl2PgogICAgICAgICAgPC9kaXY+CiAgICAgICAgICA8ZGl2PgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJzcGFjaW5nLWJveCIgc3R5bGU9IndpZHRoOiB2YXIoLS1kZWVzLXNwYWNpbmctbWQpOyBoZWlnaHQ6IHZhcigtLWRlZXMtc3BhY2luZy1tZCk7Ij48L2Rpdj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0idG9rZW4tbmFtZSI+bWQgKDEycHgpPC9kaXY+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIDxkaXY+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9InNwYWNpbmctYm94IiBzdHlsZT0id2lkdGg6IHZhcigtLWRlZXMtc3BhY2luZy1sZyk7IGhlaWdodDogdmFyKC0tZGVlcy1zcGFjaW5nLWxnKTsiPjwvZGl2PgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJ0b2tlbi1uYW1lIj5sZyAoMTZweCk8L2Rpdj4KICAgICAgICAgIDwvZGl2PgogICAgICAgICAgPGRpdj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0ic3BhY2luZy1ib3giIHN0eWxlPSJ3aWR0aDogdmFyKC0tZGVlcy1zcGFjaW5nLXhsKTsgaGVpZ2h0OiB2YXIoLS1kZWVzLXNwYWNpbmcteGwpOyI+PC9kaXY+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9InRva2VuLW5hbWUiPnhsICgyNHB4KTwvZGl2PgogICAgICAgICAgPC9kaXY+CiAgICAgICAgICA8ZGl2PgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJzcGFjaW5nLWJveCIgc3R5bGU9IndpZHRoOiB2YXIoLS1kZWVzLXNwYWNpbmctMnhsKTsgaGVpZ2h0OiB2YXIoLS1kZWVzLXNwYWNpbmctMnhsKTsiPjwvZGl2PgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJ0b2tlbi1uYW1lIj4yeGwgKDMycHgpPC9kaXY+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIDxkaXY+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9InNwYWNpbmctYm94IiBzdHlsZT0id2lkdGg6IHZhcigtLWRlZXMtc3BhY2luZy0zeGwpOyBoZWlnaHQ6IHZhcigtLWRlZXMtc3BhY2luZy0zeGwpOyI+PC9kaXY+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9InRva2VuLW5hbWUiPjN4bCAoNDhweCk8L2Rpdj4KICAgICAgICAgIDwvZGl2PgogICAgICAgIDwvZGl2PgogICAgICA8L2Rpdj4KCiAgICAgIDxkaXYgY2xhc3M9InNlY3Rpb24iPgogICAgICAgIDxkaXYgY2xhc3M9InNlY3Rpb24tdGl0bGUiPkJvcmRlciBSYWRpdXMgU2NhbGU8L2Rpdj4KICAgICAgICA8ZGl2IGNsYXNzPSJzZWN0aW9uLWRlc2NyaXB0aW9uIj4KICAgICAgICAgIENTUyB2YXJpYWJsZXM6IC0tZGVlcy1yYWRpdXMteHMgdGhyb3VnaCAtLWRlZXMtcmFkaXVzLWZ1bGwKICAgICAgICA8L2Rpdj4KICAgICAgICA8ZGl2IGNsYXNzPSJyYWRpdXMtZGVtbyI+CiAgICAgICAgICA8ZGl2PgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJyYWRpdXMtYm94IiBzdHlsZT0iYm9yZGVyLXJhZGl1czogdmFyKC0tZGVlcy1yYWRpdXMteHMpOyI+eHM8L2Rpdj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0idG9rZW4tbmFtZSI+MnB4PC9kaXY+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIDxkaXY+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9InJhZGl1cy1ib3giIHN0eWxlPSJib3JkZXItcmFkaXVzOiB2YXIoLS1kZWVzLXJhZGl1cy1zbSk7Ij5zbTwvZGl2PgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJ0b2tlbi1uYW1lIj40cHg8L2Rpdj4KICAgICAgICAgIDwvZGl2PgogICAgICAgICAgPGRpdj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0icmFkaXVzLWJveCIgc3R5bGU9ImJvcmRlci1yYWRpdXM6IHZhcigtLWRlZXMtcmFkaXVzLW1kKTsiPm1kPC9kaXY+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9InRva2VuLW5hbWUiPjZweDwvZGl2PgogICAgICAgICAgPC9kaXY+CiAgICAgICAgICA8ZGl2PgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJyYWRpdXMtYm94IiBzdHlsZT0iYm9yZGVyLXJhZGl1czogdmFyKC0tZGVlcy1yYWRpdXMtbGcpOyI+bGc8L2Rpdj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0idG9rZW4tbmFtZSI+OHB4PC9kaXY+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIDxkaXY+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9InJhZGl1cy1ib3giIHN0eWxlPSJib3JkZXItcmFkaXVzOiB2YXIoLS1kZWVzLXJhZGl1cy14bCk7Ij54bDwvZGl2PgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJ0b2tlbi1uYW1lIj4xMnB4PC9kaXY+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIDxkaXY+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9InJhZGl1cy1ib3giIHN0eWxlPSJib3JkZXItcmFkaXVzOiB2YXIoLS1kZWVzLXJhZGl1cy1mdWxsKTsiPmZ1bGw8L2Rpdj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0idG9rZW4tbmFtZSI+OTk5cHg8L2Rpdj4KICAgICAgICAgIDwvZGl2PgogICAgICAgIDwvZGl2PgogICAgICA8L2Rpdj4KCiAgICAgIDxkaXYgY2xhc3M9InNlY3Rpb24iPgogICAgICAgIDxkaXYgY2xhc3M9InNlY3Rpb24tdGl0bGUiPlNoYWRvdyBFbGV2YXRpb24gU2NhbGU8L2Rpdj4KICAgICAgICA8ZGl2IGNsYXNzPSJzZWN0aW9uLWRlc2NyaXB0aW9uIj4KICAgICAgICAgIENTUyB2YXJpYWJsZXM6IC0tZGVlcy1zaGFkb3cteHMgdGhyb3VnaCAtLWRlZXMtc2hhZG93LWxnCiAgICAgICAgPC9kaXY+CiAgICAgICAgPGRpdiBjbGFzcz0ic2hhZG93LWRlbW8iPgogICAgICAgICAgPGRpdj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0ic2hhZG93LWJveCIgc3R5bGU9ImJveC1zaGFkb3c6IHZhcigtLWRlZXMtc2hhZG93LXhzKTsiPnhzPC9kaXY+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9InRva2VuLW5hbWUiPm1pbmltYWw8L2Rpdj4KICAgICAgICAgIDwvZGl2PgogICAgICAgICAgPGRpdj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0ic2hhZG93LWJveCIgc3R5bGU9ImJveC1zaGFkb3c6IHZhcigtLWRlZXMtc2hhZG93LXNtKTsiPnNtPC9kaXY+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9InRva2VuLW5hbWUiPnN1YnRsZTwvZGl2PgogICAgICAgICAgPC9kaXY+CiAgICAgICAgICA8ZGl2PgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJzaGFkb3ctYm94IiBzdHlsZT0iYm94LXNoYWRvdzogdmFyKC0tZGVlcy1zaGFkb3ctbWQpOyI+bWQ8L2Rpdj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0idG9rZW4tbmFtZSI+bWVkaXVtPC9kaXY+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIDxkaXY+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9InNoYWRvdy1ib3giIHN0eWxlPSJib3gtc2hhZG93OiB2YXIoLS1kZWVzLXNoYWRvdy1sZyk7Ij5sZzwvZGl2PgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJ0b2tlbi1uYW1lIj5wcm9taW5lbnQ8L2Rpdj4KICAgICAgICAgIDwvZGl2PgogICAgICAgIDwvZGl2PgogICAgICA8L2Rpdj4KCiAgICAgIDxkaXYgY2xhc3M9InNlY3Rpb24iPgogICAgICAgIDxkaXYgY2xhc3M9InNlY3Rpb24tdGl0bGUiPkNvbnRyb2wgSGVpZ2h0IFNjYWxlPC9kaXY+CiAgICAgICAgPGRpdiBjbGFzcz0ic2VjdGlvbi1kZXNjcmlwdGlvbiI+CiAgICAgICAgICBDU1MgdmFyaWFibGVzOiAtLWRlZXMtY29udHJvbC1oZWlnaHQtc20gdGhyb3VnaCAtLWRlZXMtY29udHJvbC1oZWlnaHQteGwKICAgICAgICA8L2Rpdj4KICAgICAgICA8ZGl2IGNsYXNzPSJoZWlnaHQtZGVtbyI+CiAgICAgICAgICA8ZGl2PgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJoZWlnaHQtYm94IiBzdHlsZT0iaGVpZ2h0OiB2YXIoLS1kZWVzLWNvbnRyb2wtaGVpZ2h0LXNtKTsiPnNtPC9kaXY+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9InRva2VuLW5hbWUiPjMycHg8L2Rpdj4KICAgICAgICAgIDwvZGl2PgogICAgICAgICAgPGRpdj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0iaGVpZ2h0LWJveCIgc3R5bGU9ImhlaWdodDogdmFyKC0tZGVlcy1jb250cm9sLWhlaWdodC1tZCk7Ij5tZDwvZGl2PgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJ0b2tlbi1uYW1lIj4zNnB4PC9kaXY+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIDxkaXY+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9ImhlaWdodC1ib3giIHN0eWxlPSJoZWlnaHQ6IHZhcigtLWRlZXMtY29udHJvbC1oZWlnaHQtbGcpOyI+bGc8L2Rpdj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0idG9rZW4tbmFtZSI+NDBweDwvZGl2PgogICAgICAgICAgPC9kaXY+CiAgICAgICAgICA8ZGl2PgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJoZWlnaHQtYm94IiBzdHlsZT0iaGVpZ2h0OiB2YXIoLS1kZWVzLWNvbnRyb2wtaGVpZ2h0LXhsKTsiPnhsPC9kaXY+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9InRva2VuLW5hbWUiPjQ4cHg8L2Rpdj4KICAgICAgICAgIDwvZGl2PgogICAgICAgIDwvZGl2PgogICAgICA8L2Rpdj4KCiAgICAgIDxkaXYgY2xhc3M9InNlY3Rpb24iPgogICAgICAgIDxkaXYgY2xhc3M9InNlY3Rpb24tdGl0bGUiPlRyYW5zaXRpb24gRHVyYXRpb25zPC9kaXY+CiAgICAgICAgPGRpdiBjbGFzcz0ic2VjdGlvbi1kZXNjcmlwdGlvbiI+CiAgICAgICAgICBDU1MgdmFyaWFibGVzOiAtLWRlZXMtdHJhbnNpdGlvbi1mYXN0IHRocm91Z2ggLS1kZWVzLXRyYW5zaXRpb24tc2xvd2VyCiAgICAgICAgPC9kaXY+CiAgICAgICAgPGRpdiBjbGFzcz0idG9rZW4tZ3JpZCI+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJ0b2tlbi1pdGVtIj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0idG9rZW4tbmFtZSI+LS1kZWVzLXRyYW5zaXRpb24tZmFzdDwvZGl2PgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJ0b2tlbi12YWx1ZSI+MC4xczwvZGl2PgogICAgICAgICAgPC9kaXY+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJ0b2tlbi1pdGVtIj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0idG9rZW4tbmFtZSI+LS1kZWVzLXRyYW5zaXRpb24tZGVmYXVsdDwvZGl2PgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJ0b2tlbi12YWx1ZSI+MC4xNXM8L2Rpdj4KICAgICAgICAgIDwvZGl2PgogICAgICAgICAgPGRpdiBjbGFzcz0idG9rZW4taXRlbSI+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9InRva2VuLW5hbWUiPi0tZGVlcy10cmFuc2l0aW9uLXNsb3c8L2Rpdj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0idG9rZW4tdmFsdWUiPjAuMnM8L2Rpdj4KICAgICAgICAgIDwvZGl2PgogICAgICAgICAgPGRpdiBjbGFzcz0idG9rZW4taXRlbSI+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9InRva2VuLW5hbWUiPi0tZGVlcy10cmFuc2l0aW9uLXNsb3dlcjwvZGl2PgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJ0b2tlbi12YWx1ZSI+MC4zczwvZGl2PgogICAgICAgICAgPC9kaXY+CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGl2PgogICAgPC9kZWVzLXRoZW1lPgogIDwvZGl2PgpgfSk7dmFyIGJoLE8yLE5kcixGZHI9cCgoKT0+e3hlKCk7SmUoKTtQZHIoKTtiaD1mdW5jdGlvbihlLHQscixpLGEsbil7ZnVuY3Rpb24gbyh5KXtpZih5IT09dm9pZCAwJiZ0eXBlb2YgeSE9ImZ1bmN0aW9uIil0aHJvdyBuZXcgVHlwZUVycm9yKCJGdW5jdGlvbiBleHBlY3RlZCIpO3JldHVybiB5fWZvcih2YXIgcz1pLmtpbmQsbD1zPT09ImdldHRlciI/ImdldCI6cz09PSJzZXR0ZXIiPyJzZXQiOiJ2YWx1ZSIsYz0hdCYmZT9pLnN0YXRpYz9lOmUucHJvdG90eXBlOm51bGwsdT10fHwoYz9PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGMsaS5uYW1lKTp7fSksZCxoPSExLGY9ci5sZW5ndGgtMTtmPj0wO2YtLSl7dmFyIHg9e307Zm9yKHZhciB2IGluIGkpeFt2XT12PT09ImFjY2VzcyI/e306aVt2XTtmb3IodmFyIHYgaW4gaS5hY2Nlc3MpeC5hY2Nlc3Nbdl09aS5hY2Nlc3Nbdl07eC5hZGRJbml0aWFsaXplcj1mdW5jdGlvbih5KXtpZihoKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBhZGQgaW5pdGlhbGl6ZXJzIGFmdGVyIGRlY29yYXRpb24gaGFzIGNvbXBsZXRlZCIpO24ucHVzaChvKHl8fG51bGwpKX07dmFyIGI9KDAscltmXSkocz09PSJhY2Nlc3NvciI/e2dldDp1LmdldCxzZXQ6dS5zZXR9OnVbbF0seCk7aWYocz09PSJhY2Nlc3NvciIpe2lmKGI9PT12b2lkIDApY29udGludWU7aWYoYj09PW51bGx8fHR5cGVvZiBiIT0ib2JqZWN0Iil0aHJvdyBuZXcgVHlwZUVycm9yKCJPYmplY3QgZXhwZWN0ZWQiKTsoZD1vKGIuZ2V0KSkmJih1LmdldD1kKSwoZD1vKGIuc2V0KSkmJih1LnNldD1kKSwoZD1vKGIuaW5pdCkpJiZhLnVuc2hpZnQoZCl9ZWxzZShkPW8oYikpJiYocz09PSJmaWVsZCI/YS51bnNoaWZ0KGQpOnVbbF09ZCl9YyYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGMsaS5uYW1lLHUpLGg9ITB9LE8yPWZ1bmN0aW9uKGUsdCxyKXtmb3IodmFyIGk9YXJndW1lbnRzLmxlbmd0aD4yLGE9MDthPHQubGVuZ3RoO2ErKylyPWk/dFthXS5jYWxsKGUscik6dFthXS5jYWxsKGUpO3JldHVybiBpP3I6dm9pZCAwfSxOZHI9KCgpPT57bGV0IGU9W3llKCJkZWVzLXRoZW1lIildLHQscj1bXSxpLGE9emUsbixvPVtdLHM9W10sbCxjPVtdLHU9W10sZCxoPVtdLGY9W10seCx2PVtdLGI9W10seSx3PVtdLGs9W107dmFyIE89Y2xhc3MgZXh0ZW5kcyBhe3N0YXRpY3tpPXRoaXN9c3RhdGlje2xldCB6PXR5cGVvZiBTeW1ib2w9PSJmdW5jdGlvbiImJlN5bWJvbC5tZXRhZGF0YT9PYmplY3QuY3JlYXRlKGFbU3ltYm9sLm1ldGFkYXRhXT8/bnVsbCk6dm9pZCAwO249W2ooe3R5cGU6T2JqZWN0fSldLGw9W2ooe3R5cGU6T2JqZWN0fSldLGQ9W2ooe3R5cGU6T2JqZWN0fSldLHg9W2ooe3R5cGU6T2JqZWN0fSldLHk9W2ooe3R5cGU6T2JqZWN0fSldLGJoKHRoaXMsbnVsbCxuLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiY3VzdG9tU3BhY2luZyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6TT0+ImN1c3RvbVNwYWNpbmciaW4gTSxnZXQ6TT0+TS5jdXN0b21TcGFjaW5nLHNldDooTSxGKT0+e00uY3VzdG9tU3BhY2luZz1GfX0sbWV0YWRhdGE6en0sbyxzKSxiaCh0aGlzLG51bGwsbCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImN1c3RvbVJhZGl1cyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6TT0+ImN1c3RvbVJhZGl1cyJpbiBNLGdldDpNPT5NLmN1c3RvbVJhZGl1cyxzZXQ6KE0sRik9PntNLmN1c3RvbVJhZGl1cz1GfX0sbWV0YWRhdGE6en0sYyx1KSxiaCh0aGlzLG51bGwsZCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImN1c3RvbVNoYWRvd3MiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOk09PiJjdXN0b21TaGFkb3dzImluIE0sZ2V0Ok09Pk0uY3VzdG9tU2hhZG93cyxzZXQ6KE0sRik9PntNLmN1c3RvbVNoYWRvd3M9Rn19LG1ldGFkYXRhOnp9LGgsZiksYmgodGhpcyxudWxsLHgse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJjdXN0b21UcmFuc2l0aW9ucyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6TT0+ImN1c3RvbVRyYW5zaXRpb25zImluIE0sZ2V0Ok09Pk0uY3VzdG9tVHJhbnNpdGlvbnMsc2V0OihNLEYpPT57TS5jdXN0b21UcmFuc2l0aW9ucz1GfX0sbWV0YWRhdGE6en0sdixiKSxiaCh0aGlzLG51bGwseSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImN1c3RvbUNvbnRyb2xIZWlnaHRzIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpNPT4iY3VzdG9tQ29udHJvbEhlaWdodHMiaW4gTSxnZXQ6TT0+TS5jdXN0b21Db250cm9sSGVpZ2h0cyxzZXQ6KE0sRik9PntNLmN1c3RvbUNvbnRyb2xIZWlnaHRzPUZ9fSxtZXRhZGF0YTp6fSx3LGspLGJoKG51bGwsdD17dmFsdWU6aX0sZSx7a2luZDoiY2xhc3MiLG5hbWU6aS5uYW1lLG1ldGFkYXRhOnp9LG51bGwsciksTz1pPXQudmFsdWUseiYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGksU3ltYm9sLm1ldGFkYXRhLHtlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMCx2YWx1ZTp6fSl9c3RhdGljIGRlbW89SWRyO3N0YXRpYyBkZW1vR3JvdXBzPVsiVXRpbGl0eSJdOyNlPU8yKHRoaXMsbyxudWxsKTtnZXQgY3VzdG9tU3BhY2luZygpe3JldHVybiB0aGlzLiNlfXNldCBjdXN0b21TcGFjaW5nKHope3RoaXMuI2U9en0jdD0oTzIodGhpcyxzKSxPMih0aGlzLGMsbnVsbCkpO2dldCBjdXN0b21SYWRpdXMoKXtyZXR1cm4gdGhpcy4jdH1zZXQgY3VzdG9tUmFkaXVzKHope3RoaXMuI3Q9en0jcj0oTzIodGhpcyx1KSxPMih0aGlzLGgsbnVsbCkpO2dldCBjdXN0b21TaGFkb3dzKCl7cmV0dXJuIHRoaXMuI3J9c2V0IGN1c3RvbVNoYWRvd3Moeil7dGhpcy4jcj16fSNpPShPMih0aGlzLGYpLE8yKHRoaXMsdixudWxsKSk7Z2V0IGN1c3RvbVRyYW5zaXRpb25zKCl7cmV0dXJuIHRoaXMuI2l9c2V0IGN1c3RvbVRyYW5zaXRpb25zKHope3RoaXMuI2k9en0jYT0oTzIodGhpcyxiKSxPMih0aGlzLHcsbnVsbCkpO2dldCBjdXN0b21Db250cm9sSGVpZ2h0cygpe3JldHVybiB0aGlzLiNhfXNldCBjdXN0b21Db250cm9sSGVpZ2h0cyh6KXt0aGlzLiNhPXp9c3RhdGljIHN0eWxlcz1bRGUsbS5kZWZhdWx0U3R5bGVzLG9lYAogICAgICA6aG9zdCB7CiAgICAgICAgZGlzcGxheTogY29udGVudHM7CiAgICAgIH0KICAgIGBdO3JlbmRlcigpe3JldHVybiBDYAogICAgICA8c3R5bGU+CiAgICAgICAgJHt0aGlzLmdlbmVyYXRlQ3VzdG9tU3R5bGVzKCl9CiAgICAgIDwvc3R5bGU+CiAgICAgIDxzbG90Pjwvc2xvdD4KICAgIGB9Z2VuZXJhdGVDdXN0b21TdHlsZXMoKXtsZXQgej1bIjpob3N0IHsiXTtpZih0aGlzLmN1c3RvbVNwYWNpbmcpZm9yKGxldFtNLEZdb2YgT2JqZWN0LmVudHJpZXModGhpcy5jdXN0b21TcGFjaW5nKSlGJiZ6LnB1c2goYCAgLS1kZWVzLXNwYWNpbmctJHtNfTogJHtGfTtgKTtpZih0aGlzLmN1c3RvbVJhZGl1cylmb3IobGV0W00sRl1vZiBPYmplY3QuZW50cmllcyh0aGlzLmN1c3RvbVJhZGl1cykpRiYmei5wdXNoKGAgIC0tZGVlcy1yYWRpdXMtJHtNfTogJHtGfTtgKTtpZih0aGlzLmN1c3RvbVNoYWRvd3MpZm9yKGxldFtNLEZdb2YgT2JqZWN0LmVudHJpZXModGhpcy5jdXN0b21TaGFkb3dzKSlGJiZ6LnB1c2goYCAgLS1kZWVzLXNoYWRvdy0ke019OiAke0Z9O2ApO2lmKHRoaXMuY3VzdG9tVHJhbnNpdGlvbnMpe2ZvcihsZXRbTSxGXW9mIE9iamVjdC5lbnRyaWVzKHRoaXMuY3VzdG9tVHJhbnNpdGlvbnMpKWlmKEYpe2xldCBEPU09PT0iZGVmYXVsdCI/ImRlZmF1bHQiOk07ei5wdXNoKGAgIC0tZGVlcy10cmFuc2l0aW9uLSR7RH06ICR7Rn07YCl9fWlmKHRoaXMuY3VzdG9tQ29udHJvbEhlaWdodHMpZm9yKGxldFtNLEZdb2YgT2JqZWN0LmVudHJpZXModGhpcy5jdXN0b21Db250cm9sSGVpZ2h0cykpRiYmei5wdXNoKGAgIC0tZGVlcy1jb250cm9sLWhlaWdodC0ke019OiAke0Z9O2ApO3JldHVybiB6LnB1c2goIn0iKSx6LmpvaW4oYApgKX1zZXRTcGFjaW5nKHosTSl7dGhpcy5jdXN0b21TcGFjaW5nPXsuLi50aGlzLmN1c3RvbVNwYWNpbmcsW3pdOk19fXNldFJhZGl1cyh6LE0pe3RoaXMuY3VzdG9tUmFkaXVzPXsuLi50aGlzLmN1c3RvbVJhZGl1cyxbel06TX19c2V0U2hhZG93KHosTSl7dGhpcy5jdXN0b21TaGFkb3dzPXsuLi50aGlzLmN1c3RvbVNoYWRvd3MsW3pdOk19fXNldFRyYW5zaXRpb24oeixNKXt0aGlzLmN1c3RvbVRyYW5zaXRpb25zPXsuLi50aGlzLmN1c3RvbVRyYW5zaXRpb25zLFt6XTpNfX1zZXRDb250cm9sSGVpZ2h0KHosTSl7dGhpcy5jdXN0b21Db250cm9sSGVpZ2h0cz17Li4udGhpcy5jdXN0b21Db250cm9sSGVpZ2h0cyxbel06TX19Z2V0VGhlbWUoKXtyZXR1cm57Y29sb3JzOkM0LmNvbG9ycyxzcGFjaW5nOnsuLi5DNC5zcGFjaW5nLC4uLnRoaXMuY3VzdG9tU3BhY2luZ30scmFkaXVzOnsuLi5DNC5yYWRpdXMsLi4udGhpcy5jdXN0b21SYWRpdXN9LHNoYWRvd3M6ey4uLkM0LnNoYWRvd3MsLi4udGhpcy5jdXN0b21TaGFkb3dzfSx0cmFuc2l0aW9uczp7Li4uQzQudHJhbnNpdGlvbnMsLi4udGhpcy5jdXN0b21UcmFuc2l0aW9uc30sY29udHJvbEhlaWdodHM6ey4uLkM0LmNvbnRyb2xIZWlnaHRzLC4uLnRoaXMuY3VzdG9tQ29udHJvbEhlaWdodHN9fX1yZXNldFRvRGVmYXVsdHMoKXt0aGlzLmN1c3RvbVNwYWNpbmc9bnVsbCx0aGlzLmN1c3RvbVJhZGl1cz1udWxsLHRoaXMuY3VzdG9tU2hhZG93cz1udWxsLHRoaXMuY3VzdG9tVHJhbnNpdGlvbnM9bnVsbCx0aGlzLmN1c3RvbUNvbnRyb2xIZWlnaHRzPW51bGx9YXBwbHlUaGVtZSh6KXt6LnNwYWNpbmcmJih0aGlzLmN1c3RvbVNwYWNpbmc9ei5zcGFjaW5nKSx6LnJhZGl1cyYmKHRoaXMuY3VzdG9tUmFkaXVzPXoucmFkaXVzKSx6LnNoYWRvd3MmJih0aGlzLmN1c3RvbVNoYWRvd3M9ei5zaGFkb3dzKSx6LnRyYW5zaXRpb25zJiYodGhpcy5jdXN0b21UcmFuc2l0aW9ucz16LnRyYW5zaXRpb25zKSx6LmNvbnRyb2xIZWlnaHRzJiYodGhpcy5jdXN0b21Db250cm9sSGVpZ2h0cz16LmNvbnRyb2xIZWlnaHRzKX1jb25zdHJ1Y3Rvcigpe3N1cGVyKC4uLmFyZ3VtZW50cyksTzIodGhpcyxrKX1zdGF0aWN7TzIoaSxyKX19O3JldHVybiBPPWl9KSgpfSk7dmFyIE9kcj1wKCgpPT57RmRyKCl9KTt2YXIgUmRyLEJkcj1wKCgpPT57eGUoKTt0NWUoKTtSZHI9YXN5bmMoKT0+e2xldCBlPWF3YWl0IHdGLmNyZWF0ZUFuZFNob3coKTtzZXRUaW1lb3V0KGFzeW5jKCk9Pnthd2FpdCBlLmRlc3Ryb3koKX0sMWU0KX19KTt2YXIgcjVlLFliLHdGLHQ1ZT1wKCgpPT57eGUoKTtCZHIoKTtwYygpO3hlKCk7SmUoKTtyNWU9ZnVuY3Rpb24oZSx0LHIsaSxhLG4pe2Z1bmN0aW9uIG8oeSl7aWYoeSE9PXZvaWQgMCYmdHlwZW9mIHkhPSJmdW5jdGlvbiIpdGhyb3cgbmV3IFR5cGVFcnJvcigiRnVuY3Rpb24gZXhwZWN0ZWQiKTtyZXR1cm4geX1mb3IodmFyIHM9aS5raW5kLGw9cz09PSJnZXR0ZXIiPyJnZXQiOnM9PT0ic2V0dGVyIj8ic2V0IjoidmFsdWUiLGM9IXQmJmU/aS5zdGF0aWM/ZTplLnByb3RvdHlwZTpudWxsLHU9dHx8KGM/T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihjLGkubmFtZSk6e30pLGQsaD0hMSxmPXIubGVuZ3RoLTE7Zj49MDtmLS0pe3ZhciB4PXt9O2Zvcih2YXIgdiBpbiBpKXhbdl09dj09PSJhY2Nlc3MiP3t9Omlbdl07Zm9yKHZhciB2IGluIGkuYWNjZXNzKXguYWNjZXNzW3ZdPWkuYWNjZXNzW3ZdO3guYWRkSW5pdGlhbGl6ZXI9ZnVuY3Rpb24oeSl7aWYoaCl0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgYWRkIGluaXRpYWxpemVycyBhZnRlciBkZWNvcmF0aW9uIGhhcyBjb21wbGV0ZWQiKTtuLnB1c2gobyh5fHxudWxsKSl9O3ZhciBiPSgwLHJbZl0pKHM9PT0iYWNjZXNzb3IiP3tnZXQ6dS5nZXQsc2V0OnUuc2V0fTp1W2xdLHgpO2lmKHM9PT0iYWNjZXNzb3IiKXtpZihiPT09dm9pZCAwKWNvbnRpbnVlO2lmKGI9PT1udWxsfHx0eXBlb2YgYiE9Im9iamVjdCIpdGhyb3cgbmV3IFR5cGVFcnJvcigiT2JqZWN0IGV4cGVjdGVkIik7KGQ9byhiLmdldCkpJiYodS5nZXQ9ZCksKGQ9byhiLnNldCkpJiYodS5zZXQ9ZCksKGQ9byhiLmluaXQpKSYmYS51bnNoaWZ0KGQpfWVsc2UoZD1vKGIpKSYmKHM9PT0iZmllbGQiP2EudW5zaGlmdChkKTp1W2xdPWQpfWMmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShjLGkubmFtZSx1KSxoPSEwfSxZYj1mdW5jdGlvbihlLHQscil7Zm9yKHZhciBpPWFyZ3VtZW50cy5sZW5ndGg+MixhPTA7YTx0Lmxlbmd0aDthKyspcj1pP3RbYV0uY2FsbChlLHIpOnRbYV0uY2FsbChlKTtyZXR1cm4gaT9yOnZvaWQgMH0sd0Y9KCgpPT57bGV0IGU9W3llKCJkZWVzLXVwZGF0ZXIiKV0sdCxyPVtdLGksYT16ZSxuLG89W10scz1bXSxsLGM9W10sdT1bXTt2YXIgZD1jbGFzcyBleHRlbmRzIGF7c3RhdGlje2k9dGhpc31zdGF0aWN7bGV0IGg9dHlwZW9mIFN5bWJvbD09ImZ1bmN0aW9uIiYmU3ltYm9sLm1ldGFkYXRhP09iamVjdC5jcmVhdGUoYVtTeW1ib2wubWV0YWRhdGFdPz9udWxsKTp2b2lkIDA7bj1baih7dHlwZTpTdHJpbmd9KV0sbD1baih7dHlwZTpTdHJpbmd9KV0scjVlKHRoaXMsbnVsbCxuLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiY3VycmVudFZlcnNpb24iLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmY9PiJjdXJyZW50VmVyc2lvbiJpbiBmLGdldDpmPT5mLmN1cnJlbnRWZXJzaW9uLHNldDooZix4KT0+e2YuY3VycmVudFZlcnNpb249eH19LG1ldGFkYXRhOmh9LG8scykscjVlKHRoaXMsbnVsbCxsLHtraW5kOiJhY2Nlc3NvciIsbmFtZToidXBkYXRlZFZlcnNpb24iLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmY9PiJ1cGRhdGVkVmVyc2lvbiJpbiBmLGdldDpmPT5mLnVwZGF0ZWRWZXJzaW9uLHNldDooZix4KT0+e2YudXBkYXRlZFZlcnNpb249eH19LG1ldGFkYXRhOmh9LGMsdSkscjVlKG51bGwsdD17dmFsdWU6aX0sZSx7a2luZDoiY2xhc3MiLG5hbWU6aS5uYW1lLG1ldGFkYXRhOmh9LG51bGwsciksZD1pPXQudmFsdWUsaCYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGksU3ltYm9sLm1ldGFkYXRhLHtlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMCx2YWx1ZTpofSl9c3RhdGljIGRlbW89UmRyO3N0YXRpYyBkZW1vR3JvdXBzPVsiVXRpbGl0eSJdO3N0YXRpYyBhc3luYyBjcmVhdGVBbmRTaG93KCl7bGV0IGg9bmV3IGQ7cmV0dXJuIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoaCksaH0jZT1ZYih0aGlzLG8sdm9pZCAwKTtnZXQgY3VycmVudFZlcnNpb24oKXtyZXR1cm4gdGhpcy4jZX1zZXQgY3VycmVudFZlcnNpb24oaCl7dGhpcy4jZT1ofSN0PShZYih0aGlzLHMpLFliKHRoaXMsYyx2b2lkIDApKTtnZXQgdXBkYXRlZFZlcnNpb24oKXtyZXR1cm4gdGhpcy4jdH1zZXQgdXBkYXRlZFZlcnNpb24oaCl7dGhpcy4jdD1ofWNvbnN0cnVjdG9yKCl7c3VwZXIoKSxZYih0aGlzLHUpLGt0LmVsZW1lbnRCYXNpYy5zZXR1cCgpfXN0YXRpYyBzdHlsZXM9W0RlLG0uZGVmYXVsdFN0eWxlcyxvZWAKICAgICAgLyogVE9ETzogTWlncmF0ZSBoYXJkY29kZWQgdmFsdWVzIHRvIC0tZGVlcy0qIENTUyB2YXJpYWJsZXMgKi8KICAgICAgLm1vZGFsQ29udGFpbmVyIHsKICAgICAgICB3aWxsLWNoYW5nZTogdHJhbnNmb3JtOwogICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgICBiYWNrZ3JvdW5kOiAke20uYmRUaGVtZSgiI2VlZWVlYiIsIiMyMjIiKX07CiAgICAgICAgbWF4LXdpZHRoOiA4MDBweDsKICAgICAgICBib3JkZXItcmFkaXVzOiA4cHg7CiAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICR7bS5iZFRoZW1lKCIjZWVlZWViIiwiIzMzMyIpfTsKICAgICAgfQoKICAgICAgLmhlYWRpbmdDb250YWluZXIgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBwYWRkaW5nOiA0MHB4IDQwcHg7CiAgICAgIH0KCiAgICAgIGgxIHsKICAgICAgICBtYXJnaW46IG5vbmU7CiAgICAgICAgZm9udC1zaXplOiAyMHB4OwogICAgICAgIGNvbG9yOiAke20uYmRUaGVtZSgiIzMzMyIsIiNmZmYiKX07CiAgICAgICAgbWFyZ2luLWxlZnQ6IDIwcHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IG5vcm1hbDsKICAgICAgfQoKICAgICAgLmJ1dHRvbkNvbnRhaW5lciB7CiAgICAgICAgZGlzcGxheTogZ3JpZDsKICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDUwJSA1MCU7CiAgICAgIH0KICAgIGBdO3JlbmRlcigpe3JldHVybiBDYAogICAgICA8ZGVlcy13aW5kb3dsYXllcgogICAgICAgIEBjbGlja2VkPSIke3RoaXMud2luZG93TGF5ZXJDbGlja2VkfSIKICAgICAgICAub3B0aW9ucz0ke3tibHVyOiEwfX0KICAgICAgPgogICAgICAgIDxkaXYgY2xhc3M9Im1vZGFsQ29udGFpbmVyIj4KICAgICAgICAgIDxkaXYgY2xhc3M9ImhlYWRpbmdDb250YWluZXIiPgogICAgICAgICAgICA8ZGVlcy1zcGlubmVyIC5zaXplPSR7NjB9PjwvZGVlcy1zcGlubmVyPgogICAgICAgICAgICA8aDE+VXBkYXRpbmcgdGhlIGFwcGxpY2F0aW9uLi4uPC9oMT4KICAgICAgICAgIDwvZGl2PgogICAgICAgICAgPGRpdiBjbGFzcz0icHJvZ3Jlc3MiPgogICAgICAgICAgICA8ZGVlcy1wcm9ncmVzc2JhciAucHJvZ3Jlc3M9JHsuNX0+PC9kZWVzLXByb2dyZXNzYmFyPgogICAgICAgICAgPC9kaXY+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJidXR0b25Db250YWluZXIiPgogICAgICAgICAgICA8ZGVlcy1idXR0b24+TW9yZSBpbmZvPC9kZWVzLWJ1dHRvbj4KICAgICAgICAgICAgPGRlZXMtYnV0dG9uPkNoYW5nZWxvZzwvZGVlcy1idXR0b24+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICA8L2Rpdj4gPC9kZWVzLXdpbmRvd2xheWVyCiAgICAgID4+CiAgICBgfWFzeW5jIGRlc3Ryb3koKXt0aGlzLnBhcmVudEVsZW1lbnQucmVtb3ZlQ2hpbGQodGhpcyl9d2luZG93TGF5ZXJDbGlja2VkKCl7fXN0YXRpY3tZYihpLHIpfX07cmV0dXJuIGQ9aX0pKCl9KTt2YXIgSGRyPXAoKCk9Pnt0NWUoKX0pO3ZhciBxZHI9cCgoKT0+e3I2ZSgpfSk7dmFyIGpkcj1wKCgpPT57VGRyKCk7JGRyKCk7T2RyKCk7SGRyKCk7cWRyKCl9KTt2YXIgaTUscm8sVmRyLE1GPXAoKCk9Pnt4ZSgpO0t0KCk7SmUoKTtvcigpO01pKCk7TWkoKTtJZCgpO040KCk7TjQoKTtpNT1mdW5jdGlvbihlLHQscixpLGEsbil7ZnVuY3Rpb24gbyh5KXtpZih5IT09dm9pZCAwJiZ0eXBlb2YgeSE9ImZ1bmN0aW9uIil0aHJvdyBuZXcgVHlwZUVycm9yKCJGdW5jdGlvbiBleHBlY3RlZCIpO3JldHVybiB5fWZvcih2YXIgcz1pLmtpbmQsbD1zPT09ImdldHRlciI/ImdldCI6cz09PSJzZXR0ZXIiPyJzZXQiOiJ2YWx1ZSIsYz0hdCYmZT9pLnN0YXRpYz9lOmUucHJvdG90eXBlOm51bGwsdT10fHwoYz9PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGMsaS5uYW1lKTp7fSksZCxoPSExLGY9ci5sZW5ndGgtMTtmPj0wO2YtLSl7dmFyIHg9e307Zm9yKHZhciB2IGluIGkpeFt2XT12PT09ImFjY2VzcyI/e306aVt2XTtmb3IodmFyIHYgaW4gaS5hY2Nlc3MpeC5hY2Nlc3Nbdl09aS5hY2Nlc3Nbdl07eC5hZGRJbml0aWFsaXplcj1mdW5jdGlvbih5KXtpZihoKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBhZGQgaW5pdGlhbGl6ZXJzIGFmdGVyIGRlY29yYXRpb24gaGFzIGNvbXBsZXRlZCIpO24ucHVzaChvKHl8fG51bGwpKX07dmFyIGI9KDAscltmXSkocz09PSJhY2Nlc3NvciI/e2dldDp1LmdldCxzZXQ6dS5zZXR9OnVbbF0seCk7aWYocz09PSJhY2Nlc3NvciIpe2lmKGI9PT12b2lkIDApY29udGludWU7aWYoYj09PW51bGx8fHR5cGVvZiBiIT0ib2JqZWN0Iil0aHJvdyBuZXcgVHlwZUVycm9yKCJPYmplY3QgZXhwZWN0ZWQiKTsoZD1vKGIuZ2V0KSkmJih1LmdldD1kKSwoZD1vKGIuc2V0KSkmJih1LnNldD1kKSwoZD1vKGIuaW5pdCkpJiZhLnVuc2hpZnQoZCl9ZWxzZShkPW8oYikpJiYocz09PSJmaWVsZCI/YS51bnNoaWZ0KGQpOnVbbF09ZCl9YyYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGMsaS5uYW1lLHUpLGg9ITB9LHJvPWZ1bmN0aW9uKGUsdCxyKXtmb3IodmFyIGk9YXJndW1lbnRzLmxlbmd0aD4yLGE9MDthPHQubGVuZ3RoO2ErKylyPWk/dFthXS5jYWxsKGUscik6dFthXS5jYWxsKGUpO3JldHVybiBpP3I6dm9pZCAwfSxWZHI9KCgpPT57bGV0IGU9W3llKCJkZWVzLXdvcmtzcGFjZS1maWxldHJlZSIpXSx0LHI9W10saSxhPXplLG4sbz1bXSxzPVtdLGwsYz1bXSx1PVtdLGQsaD1bXSxmPVtdLHgsdj1bXSxiPVtdLHksdz1bXSxrPVtdLE8sej1bXSxNPVtdO3ZhciBGPWNsYXNzIGV4dGVuZHMgYXtzdGF0aWN7aT10aGlzfXN0YXRpY3tsZXQgRD10eXBlb2YgU3ltYm9sPT0iZnVuY3Rpb24iJiZTeW1ib2wubWV0YWRhdGE/T2JqZWN0LmNyZWF0ZShhW1N5bWJvbC5tZXRhZGF0YV0/P251bGwpOnZvaWQgMDtuPVtqKHt0eXBlOk9iamVjdH0pXSxsPVtqKHt0eXBlOlN0cmluZ30pXSxkPVtqKHt0eXBlOlN0cmluZ30pXSx4PVtmZSgpXSx5PVtmZSgpXSxPPVtmZSgpXSxpNSh0aGlzLG51bGwsbix7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImV4ZWN1dGlvbkVudmlyb25tZW50IixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpOPT4iZXhlY3V0aW9uRW52aXJvbm1lbnQiaW4gTixnZXQ6Tj0+Ti5leGVjdXRpb25FbnZpcm9ubWVudCxzZXQ6KE4sUik9PntOLmV4ZWN1dGlvbkVudmlyb25tZW50PVJ9fSxtZXRhZGF0YTpEfSxvLHMpLGk1KHRoaXMsbnVsbCxsLHtraW5kOiJhY2Nlc3NvciIsbmFtZToicm9vdFBhdGgiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOk49PiJyb290UGF0aCJpbiBOLGdldDpOPT5OLnJvb3RQYXRoLHNldDooTixSKT0+e04ucm9vdFBhdGg9Un19LG1ldGFkYXRhOkR9LGMsdSksaTUodGhpcyxudWxsLGQse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJzZWxlY3RlZFBhdGgiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOk49PiJzZWxlY3RlZFBhdGgiaW4gTixnZXQ6Tj0+Ti5zZWxlY3RlZFBhdGgsc2V0OihOLFIpPT57Ti5zZWxlY3RlZFBhdGg9Un19LG1ldGFkYXRhOkR9LGgsZiksaTUodGhpcyxudWxsLHgse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJ0cmVlRGF0YSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6Tj0+InRyZWVEYXRhImluIE4sZ2V0Ok49Pk4udHJlZURhdGEsc2V0OihOLFIpPT57Ti50cmVlRGF0YT1SfX0sbWV0YWRhdGE6RH0sdixiKSxpNSh0aGlzLG51bGwseSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImlzTG9hZGluZyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6Tj0+ImlzTG9hZGluZyJpbiBOLGdldDpOPT5OLmlzTG9hZGluZyxzZXQ6KE4sUik9PntOLmlzTG9hZGluZz1SfX0sbWV0YWRhdGE6RH0sdyxrKSxpNSh0aGlzLG51bGwsTyx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImVycm9yTWVzc2FnZSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6Tj0+ImVycm9yTWVzc2FnZSJpbiBOLGdldDpOPT5OLmVycm9yTWVzc2FnZSxzZXQ6KE4sUik9PntOLmVycm9yTWVzc2FnZT1SfX0sbWV0YWRhdGE6RH0seixNKSxpNShudWxsLHQ9e3ZhbHVlOml9LGUse2tpbmQ6ImNsYXNzIixuYW1lOmkubmFtZSxtZXRhZGF0YTpEfSxudWxsLHIpLEY9aT10LnZhbHVlLEQmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShpLFN5bWJvbC5tZXRhZGF0YSx7ZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITAsdmFsdWU6RH0pfXN0YXRpYyBkZW1vPSgpPT5DYAogICAgPGRpdiBzdHlsZT0id2lkdGg6IDMwMHB4OyBoZWlnaHQ6IDQwMHB4OyBwb3NpdGlvbjogcmVsYXRpdmU7Ij4KICAgICAgPGRlZXMtd29ya3NwYWNlLWZpbGV0cmVlPjwvZGVlcy13b3Jrc3BhY2UtZmlsZXRyZWU+CiAgICA8L2Rpdj4KICBgO3N0YXRpYyBkZW1vR3JvdXBzPVsiV29ya3NwYWNlIl07I2U9cm8odGhpcyxvLG51bGwpO2dldCBleGVjdXRpb25FbnZpcm9ubWVudCgpe3JldHVybiB0aGlzLiNlfXNldCBleGVjdXRpb25FbnZpcm9ubWVudChEKXt0aGlzLiNlPUR9I3Q9KHJvKHRoaXMscykscm8odGhpcyxjLCIvIikpO2dldCByb290UGF0aCgpe3JldHVybiB0aGlzLiN0fXNldCByb290UGF0aChEKXt0aGlzLiN0PUR9I3I9KHJvKHRoaXMsdSkscm8odGhpcyxoLCIiKSk7Z2V0IHNlbGVjdGVkUGF0aCgpe3JldHVybiB0aGlzLiNyfXNldCBzZWxlY3RlZFBhdGgoRCl7dGhpcy4jcj1EfSNpPShybyh0aGlzLGYpLHJvKHRoaXMsdixbXSkpO2dldCB0cmVlRGF0YSgpe3JldHVybiB0aGlzLiNpfXNldCB0cmVlRGF0YShEKXt0aGlzLiNpPUR9I2E9KHJvKHRoaXMsYikscm8odGhpcyx3LCExKSk7Z2V0IGlzTG9hZGluZygpe3JldHVybiB0aGlzLiNhfXNldCBpc0xvYWRpbmcoRCl7dGhpcy4jYT1EfSNuPShybyh0aGlzLGspLHJvKHRoaXMseiwiIikpO2dldCBlcnJvck1lc3NhZ2UoKXtyZXR1cm4gdGhpcy4jbn1zZXQgZXJyb3JNZXNzYWdlKEQpe3RoaXMuI249RH1leHBhbmRlZFBhdGhzPShybyh0aGlzLE0pLG5ldyBTZXQpO2xvYWRUcmVlU3RhcnRlZD0hMTtjbGlwYm9hcmRQYXRoPW51bGw7Y2xpcGJvYXJkT3BlcmF0aW9uPW51bGw7ZmlsZVdhdGNoZXI9bnVsbDtyZWZyZXNoRGVib3VuY2VUaW1lb3V0PW51bGw7bGFzdEV4ZWN1dGlvbkVudmlyb25tZW50PW51bGw7c3RhdGljIHN0eWxlcz1bRGUsbS5kZWZhdWx0U3R5bGVzLG9lYAogICAgICA6aG9zdCB7CiAgICAgICAgZGlzcGxheTogYmxvY2s7CiAgICAgICAgcG9zaXRpb246IGFic29sdXRlOwogICAgICAgIHRvcDogMDsKICAgICAgICBsZWZ0OiAwOwogICAgICAgIHJpZ2h0OiAwOwogICAgICAgIGJvdHRvbTogMDsKICAgICAgICBvdmVyZmxvdzogYXV0bzsKICAgICAgICBiYWNrZ3JvdW5kOiAke20uYmRUaGVtZSgiaHNsKDAgMCUgOTglKSIsImhzbCgwIDAlIDklKSIpfTsKICAgICAgICBmb250LWZhbWlseTogLWFwcGxlLXN5c3RlbSwgQmxpbmtNYWNTeXN0ZW1Gb250LCAnU2Vnb2UgVUknLCBSb2JvdG8sIHNhbnMtc2VyaWY7CiAgICAgICAgZm9udC1zaXplOiAxM3B4OwogICAgICB9CgogICAgICAudHJlZS1jb250YWluZXIgewogICAgICAgIHBhZGRpbmc6IDhweCAwOwogICAgICB9CgogICAgICAudHJlZS1pdGVtIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgcGFkZGluZzogNHB4IDhweDsKICAgICAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICAgICAgdXNlci1zZWxlY3Q6IG5vbmU7CiAgICAgICAgYm9yZGVyLXJhZGl1czogNHB4OwogICAgICAgIG1hcmdpbjogMXB4IDRweDsKICAgICAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kIDAuMXMgZWFzZTsKICAgICAgfQoKICAgICAgLnRyZWUtaXRlbTpob3ZlciB7CiAgICAgICAgYmFja2dyb3VuZDogJHttLmJkVGhlbWUoImhzbCgwIDAlIDkzJSkiLCJoc2woMCAwJSAxNCUpIil9OwogICAgICB9CgogICAgICAudHJlZS1pdGVtLnNlbGVjdGVkIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke20uYmRUaGVtZSgiaHNsKDIxMCAxMDAlIDk1JSkiLCJoc2woMjEwIDUwJSAyMCUpIil9OwogICAgICAgIGNvbG9yOiAke20uYmRUaGVtZSgiaHNsKDIxMCAxMDAlIDQwJSkiLCJoc2woMjEwIDEwMCUgNzAlKSIpfTsKICAgICAgfQoKICAgICAgLnRyZWUtaXRlbS5zZWxlY3RlZDpob3ZlciB7CiAgICAgICAgYmFja2dyb3VuZDogJHttLmJkVGhlbWUoImhzbCgyMTAgMTAwJSA5MiUpIiwiaHNsKDIxMCA1MCUgMjUlKSIpfTsKICAgICAgfQoKICAgICAgLmluZGVudCB7CiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrOwogICAgICAgIHdpZHRoOiAxNnB4OwogICAgICAgIGZsZXgtc2hyaW5rOiAwOwogICAgICB9CgogICAgICAuZXhwYW5kLWljb24gewogICAgICAgIHdpZHRoOiAxNnB4OwogICAgICAgIGhlaWdodDogMTZweDsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7CiAgICAgICAgZmxleC1zaHJpbms6IDA7CiAgICAgICAgY29sb3I6ICR7bS5iZFRoZW1lKCJoc2woMCAwJSA1MCUpIiwiaHNsKDAgMCUgNjAlKSIpfTsKICAgICAgICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMC4xNXMgZWFzZTsKICAgICAgfQoKICAgICAgLmV4cGFuZC1pY29uLmV4cGFuZGVkIHsKICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSg5MGRlZyk7CiAgICAgIH0KCiAgICAgIC5leHBhbmQtaWNvbi5oaWRkZW4gewogICAgICAgIHZpc2liaWxpdHk6IGhpZGRlbjsKICAgICAgfQoKICAgICAgLmZpbGUtaWNvbiB7CiAgICAgICAgd2lkdGg6IDE2cHg7CiAgICAgICAgaGVpZ2h0OiAxNnB4OwogICAgICAgIG1hcmdpbi1yaWdodDogNnB4OwogICAgICAgIGZsZXgtc2hyaW5rOiAwOwogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKICAgICAgfQoKICAgICAgLmZpbGUtaWNvbiBkZWVzLWljb24gewogICAgICAgIHdpZHRoOiAxNnB4OwogICAgICAgIGhlaWdodDogMTZweDsKICAgICAgfQoKICAgICAgLmZpbGUtaWNvbi5mb2xkZXIgewogICAgICAgIGNvbG9yOiAke20uYmRUaGVtZSgiaHNsKDQ1IDgwJSA0NSUpIiwiaHNsKDQ1IDcwJSA1NSUpIil9OwogICAgICB9CgogICAgICAuZmlsZS1pY29uLmZpbGUgewogICAgICAgIGNvbG9yOiAke20uYmRUaGVtZSgiaHNsKDAgMCUgNTAlKSIsImhzbCgwIDAlIDYwJSkiKX07CiAgICAgIH0KCiAgICAgIC5maWxlLWljb24udHlwZXNjcmlwdCB7CiAgICAgICAgY29sb3I6IGhzbCgyMTEgNjAlIDQ4JSk7CiAgICAgIH0KCiAgICAgIC5maWxlLWljb24uamF2YXNjcmlwdCB7CiAgICAgICAgY29sb3I6IGhzbCg1MyA5MyUgNTQlKTsKICAgICAgfQoKICAgICAgLmZpbGUtaWNvbi5qc29uIHsKICAgICAgICBjb2xvcjogaHNsKDQ1IDgwJSA1MCUpOwogICAgICB9CgogICAgICAuZmlsZS1pY29uLmh0bWwgewogICAgICAgIGNvbG9yOiBoc2woMTQgNzclIDUyJSk7CiAgICAgIH0KCiAgICAgIC5maWxlLWljb24uY3NzIHsKICAgICAgICBjb2xvcjogaHNsKDIyOCA3NyUgNTklKTsKICAgICAgfQoKICAgICAgLmZpbGUtaWNvbi5tYXJrZG93biB7CiAgICAgICAgY29sb3I6IGhzbCgwIDAlIDUwJSk7CiAgICAgIH0KCiAgICAgIC5maWxlLW5hbWUgewogICAgICAgIGZsZXg6IDE7CiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpczsKICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwOwogICAgICAgIGNvbG9yOiAke20uYmRUaGVtZSgiaHNsKDAgMCUgMjAlKSIsImhzbCgwIDAlIDg1JSkiKX07CiAgICAgIH0KCiAgICAgIC5sb2FkaW5nIHsKICAgICAgICBwYWRkaW5nOiAxNnB4OwogICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjsKICAgICAgICBjb2xvcjogJHttLmJkVGhlbWUoImhzbCgwIDAlIDUwJSkiLCJoc2woMCAwJSA2MCUpIil9OwogICAgICB9CgogICAgICAuZXJyb3IgewogICAgICAgIHBhZGRpbmc6IDE2cHg7CiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyOwogICAgICAgIGNvbG9yOiBoc2woMCA3MCUgNTAlKTsKICAgICAgfQoKICAgICAgLmVtcHR5IHsKICAgICAgICBwYWRkaW5nOiAxNnB4OwogICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjsKICAgICAgICBjb2xvcjogJHttLmJkVGhlbWUoImhzbCgwIDAlIDUwJSkiLCJoc2woMCAwJSA2MCUpIil9OwogICAgICAgIGZvbnQtc3R5bGU6IGl0YWxpYzsKICAgICAgfQoKICAgICAgLmZpbGV0cmVlLXRvb2xiYXIgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47CiAgICAgICAgaGVpZ2h0OiAzNnB4OwogICAgICAgIHBhZGRpbmc6IDAgMTJweDsKICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHttLmJkVGhlbWUoImhzbCgwIDAlIDg1JSkiLCJoc2woMCAwJSAxNSUpIil9OwogICAgICAgIGJhY2tncm91bmQ6ICR7bS5iZFRoZW1lKCJoc2woMCAwJSA5NiUpIiwiaHNsKDAgMCUgOCUpIil9OwogICAgICAgIHBvc2l0aW9uOiBzdGlja3k7CiAgICAgICAgdG9wOiAwOwogICAgICAgIHotaW5kZXg6IDE7CiAgICAgIH0KCiAgICAgIC50b29sYmFyLXRpdGxlIHsKICAgICAgICBmb250LXNpemU6IDExcHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDsKICAgICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlOwogICAgICAgIGxldHRlci1zcGFjaW5nOiAwLjVweDsKICAgICAgICBjb2xvcjogJHttLmJkVGhlbWUoImhzbCgwIDAlIDQwJSkiLCJoc2woMCAwJSA2MCUpIil9OwogICAgICB9CgogICAgICAudG9vbGJhci1hY3Rpb25zIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGdhcDogNHB4OwogICAgICB9CgogICAgICAudG9vbGJhci1idXR0b24gewogICAgICAgIHBhZGRpbmc6IDRweDsKICAgICAgICBib3JkZXItcmFkaXVzOiA0cHg7CiAgICAgICAgY3Vyc29yOiBwb2ludGVyOwogICAgICAgIG9wYWNpdHk6IDAuNzsKICAgICAgICB0cmFuc2l0aW9uOiBvcGFjaXR5IDAuMTVzLCBiYWNrZ3JvdW5kIDAuMTVzOwogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKICAgICAgICBjb2xvcjogJHttLmJkVGhlbWUoImhzbCgwIDAlIDMwJSkiLCJoc2woMCAwJSA3MCUpIil9OwogICAgICB9CgogICAgICAudG9vbGJhci1idXR0b246aG92ZXIgewogICAgICAgIG9wYWNpdHk6IDE7CiAgICAgICAgYmFja2dyb3VuZDogJHttLmJkVGhlbWUoImhzbCgwIDAlIDAlIC8gMC4wOCkiLCJoc2woMCAwJSAxMDAlIC8gMC4xKSIpfTsKICAgICAgfQogICAgYF07cmVuZGVyKCl7cmV0dXJuIHRoaXMuZXhlY3V0aW9uRW52aXJvbm1lbnQ/dGhpcy5pc0xvYWRpbmc/Q2AKICAgICAgICA8ZGl2IGNsYXNzPSJsb2FkaW5nIj4KICAgICAgICAgIExvYWRpbmcgZmlsZXMuLi4KICAgICAgICA8L2Rpdj4KICAgICAgYDp0aGlzLmVycm9yTWVzc2FnZT9DYAogICAgICAgIDxkaXYgY2xhc3M9ImVycm9yIj4KICAgICAgICAgICR7dGhpcy5lcnJvck1lc3NhZ2V9CiAgICAgICAgPC9kaXY+CiAgICAgIGA6Q2AKICAgICAgPGRpdiBjbGFzcz0iZmlsZXRyZWUtdG9vbGJhciI+CiAgICAgICAgPHNwYW4gY2xhc3M9InRvb2xiYXItdGl0bGUiPkV4cGxvcmVyPC9zcGFuPgogICAgICAgIDxkaXYgY2xhc3M9InRvb2xiYXItYWN0aW9ucyI+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJ0b29sYmFyLWJ1dHRvbiIgQGNsaWNrPSR7KCk9PnRoaXMuY3JlYXRlTmV3RmlsZSgiLyIpfSB0aXRsZT0iTmV3IEZpbGUiPgogICAgICAgICAgICA8ZGVlcy1pY29uIC5pY29uPSR7Imx1Y2lkZTpmaWxlUGx1cyJ9IGljb25TaXplPSIxNiI+PC9kZWVzLWljb24+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIDxkaXYgY2xhc3M9InRvb2xiYXItYnV0dG9uIiBAY2xpY2s9JHsoKT0+dGhpcy5jcmVhdGVOZXdGb2xkZXIoIi8iKX0gdGl0bGU9Ik5ldyBGb2xkZXIiPgogICAgICAgICAgICA8ZGVlcy1pY29uIC5pY29uPSR7Imx1Y2lkZTpmb2xkZXJQbHVzIn0gaWNvblNpemU9IjE2Ij48L2RlZXMtaWNvbj4KICAgICAgICAgIDwvZGl2PgogICAgICAgIDwvZGl2PgogICAgICA8L2Rpdj4KICAgICAgJHt0aGlzLnRyZWVEYXRhLmxlbmd0aD09PTA/Q2A8ZGl2IGNsYXNzPSJlbXB0eSI+Tm8gZmlsZXMgZm91bmQuPC9kaXY+YDpDYAogICAgICAgICAgICA8ZGl2IGNsYXNzPSJ0cmVlLWNvbnRhaW5lciIgQGNvbnRleHRtZW51PSR7dGhpcy5oYW5kbGVFbXB0eVNwYWNlQ29udGV4dE1lbnV9PgogICAgICAgICAgICAgICR7dGhpcy5yZW5kZXJUcmVlKHRoaXMudHJlZURhdGEpfQogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIGB9CiAgICBgOkNgCiAgICAgICAgPGRpdiBjbGFzcz0iZW1wdHkiPgogICAgICAgICAgTm8gZXhlY3V0aW9uIGVudmlyb25tZW50IHByb3ZpZGVkLgogICAgICAgIDwvZGl2PgogICAgICBgfXJlbmRlclRyZWUoRCl7cmV0dXJuIEQubWFwKE49PnRoaXMucmVuZGVyTm9kZShOKSl9cmVuZGVyTm9kZShEKXtsZXQgTj1ELnR5cGU9PT0iZGlyZWN0b3J5IixSPXRoaXMuZXhwYW5kZWRQYXRocy5oYXMoRC5wYXRoKSxfPUQucGF0aD09PXRoaXMuc2VsZWN0ZWRQYXRoLFM9dGhpcy5nZXRGaWxlSWNvbkNsYXNzKEQpO3JldHVybiBDYAogICAgICA8ZGl2CiAgICAgICAgY2xhc3M9InRyZWUtaXRlbSAke18/InNlbGVjdGVkIjoiIn0iCiAgICAgICAgc3R5bGU9InBhZGRpbmctbGVmdDogJHs4K0QubGV2ZWwqMTZ9cHgiCiAgICAgICAgQGNsaWNrPSR7JD0+dGhpcy5oYW5kbGVJdGVtQ2xpY2soJCxEKX0KICAgICAgICBAY29udGV4dG1lbnU9JHskPT50aGlzLmhhbmRsZUNvbnRleHRNZW51KCQsRCl9CiAgICAgID4KICAgICAgICA8c3BhbiBjbGFzcz0iZXhwYW5kLWljb24gJHtSPyJleHBhbmRlZCI6IiJ9ICR7Tj8iIjoiaGlkZGVuIn0iPgogICAgICAgICAgPGRlZXMtaWNvbiAuaWNvbj0keyJsdWNpZGU6Y2hldnJvblJpZ2h0In0gaWNvblNpemU9IjEyIj48L2RlZXMtaWNvbj4KICAgICAgICA8L3NwYW4+CiAgICAgICAgPHNwYW4gY2xhc3M9ImZpbGUtaWNvbiAke1N9Ij4KICAgICAgICAgIDxkZWVzLWljb24gLmljb249JHt0aGlzLmdldEZpbGVJY29uKEQpfSBpY29uU2l6ZT0iMTYiPjwvZGVlcy1pY29uPgogICAgICAgIDwvc3Bhbj4KICAgICAgICA8c3BhbiBjbGFzcz0iZmlsZS1uYW1lIj4ke0QubmFtZX08L3NwYW4+CiAgICAgIDwvZGl2PgogICAgICAke04mJlImJkQuY2hpbGRyZW4/dGhpcy5yZW5kZXJUcmVlKEQuY2hpbGRyZW4pOiIifQogICAgYH1nZXRGaWxlSWNvbihEKXtpZihELnR5cGU9PT0iZGlyZWN0b3J5IilyZXR1cm4gdGhpcy5leHBhbmRlZFBhdGhzLmhhcyhELnBhdGgpPyJsdWNpZGU6Zm9sZGVyT3BlbiI6Imx1Y2lkZTpmb2xkZXIiO3N3aXRjaChELm5hbWUuc3BsaXQoIi4iKS5wb3AoKT8udG9Mb3dlckNhc2UoKSl7Y2FzZSJ0cyI6Y2FzZSJ0c3giOnJldHVybiJsdWNpZGU6ZmlsZUNvZGUiO2Nhc2UianMiOmNhc2UianN4IjpyZXR1cm4ibHVjaWRlOmZpbGVDb2RlIjtjYXNlImpzb24iOnJldHVybiJsdWNpZGU6ZmlsZUpzb24iO2Nhc2UiaHRtbCI6cmV0dXJuImx1Y2lkZTpmaWxlQ29kZSI7Y2FzZSJjc3MiOmNhc2Uic2NzcyI6Y2FzZSJsZXNzIjpyZXR1cm4ibHVjaWRlOmZpbGVDb2RlIjtjYXNlIm1kIjpyZXR1cm4ibHVjaWRlOmZpbGVUZXh0IjtjYXNlInBuZyI6Y2FzZSJqcGciOmNhc2UianBlZyI6Y2FzZSJnaWYiOmNhc2Uic3ZnIjpyZXR1cm4ibHVjaWRlOmltYWdlIjtkZWZhdWx0OnJldHVybiJsdWNpZGU6ZmlsZSJ9fWdldEZpbGVJY29uQ2xhc3MoRCl7aWYoRC50eXBlPT09ImRpcmVjdG9yeSIpcmV0dXJuImZvbGRlciI7c3dpdGNoKEQubmFtZS5zcGxpdCgiLiIpLnBvcCgpPy50b0xvd2VyQ2FzZSgpKXtjYXNlInRzIjpjYXNlInRzeCI6cmV0dXJuInR5cGVzY3JpcHQiO2Nhc2UianMiOmNhc2UianN4IjpyZXR1cm4iamF2YXNjcmlwdCI7Y2FzZSJqc29uIjpyZXR1cm4ianNvbiI7Y2FzZSJodG1sIjpyZXR1cm4iaHRtbCI7Y2FzZSJjc3MiOmNhc2Uic2NzcyI6Y2FzZSJsZXNzIjpyZXR1cm4iY3NzIjtjYXNlIm1kIjpyZXR1cm4ibWFya2Rvd24iO2RlZmF1bHQ6cmV0dXJuImZpbGUifX1hc3luYyBoYW5kbGVJdGVtQ2xpY2soRCxOKXtELnN0b3BQcm9wYWdhdGlvbigpLE4udHlwZT09PSJkaXJlY3RvcnkiP2F3YWl0IHRoaXMudG9nZ2xlRGlyZWN0b3J5KE4pOih0aGlzLnNlbGVjdGVkUGF0aD1OLnBhdGgsdGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBDdXN0b21FdmVudCgiZmlsZS1zZWxlY3QiLHtkZXRhaWw6e3BhdGg6Ti5wYXRoLG5hbWU6Ti5uYW1lfSxidWJibGVzOiEwLGNvbXBvc2VkOiEwfSkpKX1hc3luYyB0b2dnbGVEaXJlY3RvcnkoRCl7dGhpcy5leHBhbmRlZFBhdGhzLmhhcyhELnBhdGgpP3RoaXMuZXhwYW5kZWRQYXRocy5kZWxldGUoRC5wYXRoKToodGhpcy5leHBhbmRlZFBhdGhzLmFkZChELnBhdGgpLCghRC5jaGlsZHJlbnx8RC5jaGlsZHJlbi5sZW5ndGg9PT0wKSYmYXdhaXQgdGhpcy5sb2FkRGlyZWN0b3J5Q29udGVudHMoRCkpLHRoaXMucmVxdWVzdFVwZGF0ZSgpfWFzeW5jIGxvYWREaXJlY3RvcnlDb250ZW50cyhEKXtpZih0aGlzLmV4ZWN1dGlvbkVudmlyb25tZW50KXRyeXtsZXQgTj1hd2FpdCB0aGlzLmV4ZWN1dGlvbkVudmlyb25tZW50LnJlYWREaXIoRC5wYXRoKTtELmNoaWxkcmVuPXRoaXMuc29ydEVudHJpZXMoTikubWFwKFI9Pih7Li4uUixsZXZlbDpELmxldmVsKzEsZXhwYW5kZWQ6ITEsY2hpbGRyZW46Ui50eXBlPT09ImRpcmVjdG9yeSI/W106dm9pZCAwfSkpfWNhdGNoKE4pe2NvbnNvbGUuZXJyb3IoYEZhaWxlZCB0byBsb2FkIGRpcmVjdG9yeSAke0QucGF0aH06YCxOKX19YXN5bmMgaGFuZGxlQ29udGV4dE1lbnUoRCxOKXtELnByZXZlbnREZWZhdWx0KCksRC5zdG9wUHJvcGFnYXRpb24oKTtsZXQgUj1bXTtOLnR5cGU9PT0iZGlyZWN0b3J5IiYmUi5wdXNoKHtuYW1lOiJOZXcgRmlsZSIsaWNvbk5hbWU6ImZpbGVQbHVzIixhY3Rpb246YXN5bmMoKT0+dGhpcy5jcmVhdGVOZXdGaWxlKE4ucGF0aCl9LHtuYW1lOiJOZXcgRm9sZGVyIixpY29uTmFtZToiZm9sZGVyUGx1cyIsYWN0aW9uOmFzeW5jKCk9PnRoaXMuY3JlYXRlTmV3Rm9sZGVyKE4ucGF0aCl9LHtkaXZpZGVyOiEwfSksUi5wdXNoKHtuYW1lOiJSZW5hbWUiLGljb25OYW1lOiJwZW5jaWwiLGFjdGlvbjphc3luYygpPT50aGlzLnJlbmFtZUl0ZW0oTil9LHtuYW1lOiJEdXBsaWNhdGUiLGljb25OYW1lOiJmaWxlcyIsYWN0aW9uOmFzeW5jKCk9PnRoaXMuZHVwbGljYXRlSXRlbShOKX0se25hbWU6IkNvcHkiLGljb25OYW1lOiJjb3B5IixhY3Rpb246YXN5bmMoKT0+dGhpcy5jb3B5SXRlbShOKX0pLE4udHlwZT09PSJkaXJlY3RvcnkiJiZ0aGlzLmNsaXBib2FyZFBhdGgmJlIucHVzaCh7bmFtZToiUGFzdGUiLGljb25OYW1lOiJjbGlwYm9hcmQiLGFjdGlvbjphc3luYygpPT50aGlzLnBhc3RlSXRlbShOLnBhdGgpfSksUi5wdXNoKHtkaXZpZGVyOiEwfSx7bmFtZToiRGVsZXRlIixpY29uTmFtZToidHJhc2gyIixhY3Rpb246YXN5bmMoKT0+dGhpcy5kZWxldGVJdGVtKE4pfSksYXdhaXQgU3Iub3BlbkNvbnRleHRNZW51V2l0aE9wdGlvbnMoRCxSKX1hc3luYyBoYW5kbGVFbXB0eVNwYWNlQ29udGV4dE1lbnUoRCl7aWYoRC50YXJnZXQuY2xvc2VzdCgiLnRyZWUtaXRlbSIpKXJldHVybjtELnByZXZlbnREZWZhdWx0KCksRC5zdG9wUHJvcGFnYXRpb24oKTtsZXQgUj1be25hbWU6Ik5ldyBGaWxlIixpY29uTmFtZToiZmlsZVBsdXMiLGFjdGlvbjphc3luYygpPT50aGlzLmNyZWF0ZU5ld0ZpbGUoIi8iKX0se25hbWU6Ik5ldyBGb2xkZXIiLGljb25OYW1lOiJmb2xkZXJQbHVzIixhY3Rpb246YXN5bmMoKT0+dGhpcy5jcmVhdGVOZXdGb2xkZXIoIi8iKX1dO3RoaXMuY2xpcGJvYXJkUGF0aCYmUi5wdXNoKHtkaXZpZGVyOiEwfSx7bmFtZToiUGFzdGUiLGljb25OYW1lOiJjbGlwYm9hcmQiLGFjdGlvbjphc3luYygpPT50aGlzLnBhc3RlSXRlbSgiLyIpfSksYXdhaXQgU3Iub3BlbkNvbnRleHRNZW51V2l0aE9wdGlvbnMoRCxSKX1hc3luYyBzaG93SW5wdXRNb2RhbChEKXtyZXR1cm4gbmV3IFByb21pc2UoYXN5bmMgTj0+e2xldCBSPWF3YWl0IFdyLmNyZWF0ZUFuZFNob3coe2hlYWRpbmc6RC5oZWFkaW5nLHdpZHRoOiJzbWFsbCIsY29udGVudDpDYAogICAgICAgICAgPGRlZXMtaW5wdXQtdGV4dAogICAgICAgICAgICAubGFiZWw9JHtELmxhYmVsfQogICAgICAgICAgICAudmFsdWU9JHtELnZhbHVlfHwiIn0KICAgICAgICAgID48L2RlZXMtaW5wdXQtdGV4dD4KICAgICAgICBgLG1lbnVPcHRpb25zOlt7bmFtZToiQ2FuY2VsIixhY3Rpb246YXN5bmMgUz0+e2F3YWl0IFMuZGVzdHJveSgpLE4obnVsbCl9fSx7bmFtZTpELmJ1dHRvbk5hbWV8fCJDcmVhdGUiLGFjdGlvbjphc3luYyBTPT57bGV0IEU9Uy5zaGFkb3dSb290Py5xdWVyeVNlbGVjdG9yKCIubW9kYWwgLmNvbnRlbnQiKT8ucXVlcnlTZWxlY3RvcigiZGVlcy1pbnB1dC10ZXh0Iik/LnZhbHVlPy50cmltKCl8fCIiO2F3YWl0IFMuZGVzdHJveSgpLE4oRXx8bnVsbCl9fV19KTthd2FpdCBSLnVwZGF0ZUNvbXBsZXRlO2xldCBfPVIuc2hhZG93Um9vdD8ucXVlcnlTZWxlY3RvcigiLm1vZGFsIC5jb250ZW50Iik7aWYoXyl7bGV0IFM9Xy5xdWVyeVNlbGVjdG9yKCJkZWVzLWlucHV0LXRleHQiKTtTJiYoYXdhaXQgUy51cGRhdGVDb21wbGV0ZSxTLmZvY3VzKCkpfX0pfWFzeW5jIGNyZWF0ZU5ld0ZpbGUoRCl7bGV0IE49YXdhaXQgdGhpcy5zaG93SW5wdXRNb2RhbCh7aGVhZGluZzoiTmV3IEZpbGUiLGxhYmVsOiJGaWxlIG5hbWUifSk7aWYoIU58fCF0aGlzLmV4ZWN1dGlvbkVudmlyb25tZW50KXJldHVybjtsZXQgUj1EPT09Ii8iP2AvJHtOfWA6YCR7RH0vJHtOfWA7dHJ5e2F3YWl0IHRoaXMuZXhlY3V0aW9uRW52aXJvbm1lbnQud3JpdGVGaWxlKFIsIiIpLGF3YWl0IHRoaXMucmVmcmVzaCgpLHRoaXMuZGlzcGF0Y2hFdmVudChuZXcgQ3VzdG9tRXZlbnQoImZpbGUtY3JlYXRlZCIse2RldGFpbDp7cGF0aDpSfSxidWJibGVzOiEwLGNvbXBvc2VkOiEwfSkpfWNhdGNoKF8pe2NvbnNvbGUuZXJyb3IoIkZhaWxlZCB0byBjcmVhdGUgZmlsZToiLF8pfX1hc3luYyBjcmVhdGVOZXdGb2xkZXIoRCl7bGV0IE49YXdhaXQgdGhpcy5zaG93SW5wdXRNb2RhbCh7aGVhZGluZzoiTmV3IEZvbGRlciIsbGFiZWw6IkZvbGRlciBuYW1lIn0pO2lmKCFOfHwhdGhpcy5leGVjdXRpb25FbnZpcm9ubWVudClyZXR1cm47bGV0IFI9RD09PSIvIj9gLyR7Tn1gOmAke0R9LyR7Tn1gO3RyeXthd2FpdCB0aGlzLmV4ZWN1dGlvbkVudmlyb25tZW50Lm1rZGlyKFIpLGF3YWl0IHRoaXMucmVmcmVzaCgpLHRoaXMuZGlzcGF0Y2hFdmVudChuZXcgQ3VzdG9tRXZlbnQoImZvbGRlci1jcmVhdGVkIix7ZGV0YWlsOntwYXRoOlJ9LGJ1YmJsZXM6ITAsY29tcG9zZWQ6ITB9KSl9Y2F0Y2goXyl7Y29uc29sZS5lcnJvcigiRmFpbGVkIHRvIGNyZWF0ZSBmb2xkZXI6IixfKX19YXN5bmMgZGVsZXRlSXRlbShEKXtpZighKCF0aGlzLmV4ZWN1dGlvbkVudmlyb25tZW50fHwhY29uZmlybShgRGVsZXRlICR7RC5uYW1lfT9gKSkpdHJ5e2F3YWl0IHRoaXMuZXhlY3V0aW9uRW52aXJvbm1lbnQucm0oRC5wYXRoLHtyZWN1cnNpdmU6RC50eXBlPT09ImRpcmVjdG9yeSJ9KSxhd2FpdCB0aGlzLnJlZnJlc2goKSx0aGlzLmRpc3BhdGNoRXZlbnQobmV3IEN1c3RvbUV2ZW50KCJpdGVtLWRlbGV0ZWQiLHtkZXRhaWw6e3BhdGg6RC5wYXRoLHR5cGU6RC50eXBlfSxidWJibGVzOiEwLGNvbXBvc2VkOiEwfSkpfWNhdGNoKFIpe2NvbnNvbGUuZXJyb3IoIkZhaWxlZCB0byBkZWxldGUgaXRlbToiLFIpfX1hc3luYyByZW5hbWVJdGVtKEQpe2lmKCF0aGlzLmV4ZWN1dGlvbkVudmlyb25tZW50KXJldHVybjtsZXQgTj1hd2FpdCB0aGlzLnNob3dJbnB1dE1vZGFsKHtoZWFkaW5nOiJSZW5hbWUiLGxhYmVsOiJOZXcgbmFtZSIsdmFsdWU6RC5uYW1lLGJ1dHRvbk5hbWU6IlJlbmFtZSJ9KTtpZighTnx8Tj09PUQubmFtZSlyZXR1cm47bGV0IFI9RC5wYXRoLnN1YnN0cmluZygwLEQucGF0aC5sYXN0SW5kZXhPZigiLyIpKXx8Ii8iLF89Uj09PSIvIj9gLyR7Tn1gOmAke1J9LyR7Tn1gO3RyeXtpZihELnR5cGU9PT0iZmlsZSIpe2xldCBTPWF3YWl0IHRoaXMuZXhlY3V0aW9uRW52aXJvbm1lbnQucmVhZEZpbGUoRC5wYXRoKTthd2FpdCB0aGlzLmV4ZWN1dGlvbkVudmlyb25tZW50LndyaXRlRmlsZShfLFMpLGF3YWl0IHRoaXMuZXhlY3V0aW9uRW52aXJvbm1lbnQucm0oRC5wYXRoKX1lbHNlIGF3YWl0IHRoaXMuY29weURpcmVjdG9yeUNvbnRlbnRzKEQucGF0aCxfKSxhd2FpdCB0aGlzLmV4ZWN1dGlvbkVudmlyb25tZW50LnJtKEQucGF0aCx7cmVjdXJzaXZlOiEwfSk7YXdhaXQgdGhpcy5yZWZyZXNoKCksdGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBDdXN0b21FdmVudCgiaXRlbS1yZW5hbWVkIix7ZGV0YWlsOntvbGRQYXRoOkQucGF0aCxuZXdQYXRoOl8sdHlwZTpELnR5cGV9LGJ1YmJsZXM6ITAsY29tcG9zZWQ6ITB9KSl9Y2F0Y2goUyl7Y29uc29sZS5lcnJvcigiRmFpbGVkIHRvIHJlbmFtZSBpdGVtOiIsUyl9fWFzeW5jIGR1cGxpY2F0ZUl0ZW0oRCl7aWYoIXRoaXMuZXhlY3V0aW9uRW52aXJvbm1lbnQpcmV0dXJuO2xldCBOPUQucGF0aC5zdWJzdHJpbmcoMCxELnBhdGgubGFzdEluZGV4T2YoIi8iKSl8fCIvIixSO2lmKEQudHlwZT09PSJmaWxlIil7bGV0IFM9RC5uYW1lLmxhc3RJbmRleE9mKCIuIik7aWYoUz4wKXtsZXQgJD1ELm5hbWUuc3Vic3RyaW5nKDAsUyksVD1ELm5hbWUuc3Vic3RyaW5nKFMpO1I9YCR7JH1fY29weSR7VH1gfWVsc2UgUj1gJHtELm5hbWV9X2NvcHlgfWVsc2UgUj1gJHtELm5hbWV9X2NvcHlgO2xldCBfPU49PT0iLyI/YC8ke1J9YDpgJHtOfS8ke1J9YDt0cnl7aWYoRC50eXBlPT09ImZpbGUiKXtsZXQgUz1hd2FpdCB0aGlzLmV4ZWN1dGlvbkVudmlyb25tZW50LnJlYWRGaWxlKEQucGF0aCk7YXdhaXQgdGhpcy5leGVjdXRpb25FbnZpcm9ubWVudC53cml0ZUZpbGUoXyxTKX1lbHNlIGF3YWl0IHRoaXMuY29weURpcmVjdG9yeUNvbnRlbnRzKEQucGF0aCxfKTthd2FpdCB0aGlzLnJlZnJlc2goKSx0aGlzLmRpc3BhdGNoRXZlbnQobmV3IEN1c3RvbUV2ZW50KCJpdGVtLWR1cGxpY2F0ZWQiLHtkZXRhaWw6e3NvdXJjZVBhdGg6RC5wYXRoLG5ld1BhdGg6Xyx0eXBlOkQudHlwZX0sYnViYmxlczohMCxjb21wb3NlZDohMH0pKX1jYXRjaChTKXtjb25zb2xlLmVycm9yKCJGYWlsZWQgdG8gZHVwbGljYXRlIGl0ZW06IixTKX19YXN5bmMgY29weUl0ZW0oRCl7dGhpcy5jbGlwYm9hcmRQYXRoPUQucGF0aCx0aGlzLmNsaXBib2FyZE9wZXJhdGlvbj0iY29weSJ9YXN5bmMgcGFzdGVJdGVtKEQpe2lmKCF0aGlzLmV4ZWN1dGlvbkVudmlyb25tZW50fHwhdGhpcy5jbGlwYm9hcmRQYXRoKXJldHVybjtsZXQgTj10aGlzLmNsaXBib2FyZFBhdGguc3BsaXQoIi8iKS5wb3AoKXx8InBhc3RlZCIsUj1EPT09Ii8iP2AvJHtOfWA6YCR7RH0vJHtOfWA7dHJ5e2lmKCFhd2FpdCB0aGlzLmV4ZWN1dGlvbkVudmlyb25tZW50LmV4aXN0cyh0aGlzLmNsaXBib2FyZFBhdGgpKXtjb25zb2xlLmVycm9yKCJTb3VyY2UgZmlsZSBubyBsb25nZXIgZXhpc3RzIiksdGhpcy5jbGlwYm9hcmRQYXRoPW51bGwsdGhpcy5jbGlwYm9hcmRPcGVyYXRpb249bnVsbDtyZXR1cm59dHJ5e2xldCBfPWF3YWl0IHRoaXMuZXhlY3V0aW9uRW52aXJvbm1lbnQucmVhZEZpbGUodGhpcy5jbGlwYm9hcmRQYXRoKTthd2FpdCB0aGlzLmV4ZWN1dGlvbkVudmlyb25tZW50LndyaXRlRmlsZShSLF8pfWNhdGNoe2F3YWl0IHRoaXMuY29weURpcmVjdG9yeUNvbnRlbnRzKHRoaXMuY2xpcGJvYXJkUGF0aCxSKX1hd2FpdCB0aGlzLnJlZnJlc2goKSx0aGlzLmRpc3BhdGNoRXZlbnQobmV3IEN1c3RvbUV2ZW50KCJpdGVtLXBhc3RlZCIse2RldGFpbDp7c291cmNlUGF0aDp0aGlzLmNsaXBib2FyZFBhdGgsdGFyZ2V0UGF0aDpSfSxidWJibGVzOiEwLGNvbXBvc2VkOiEwfSkpLHRoaXMuY2xpcGJvYXJkUGF0aD1udWxsLHRoaXMuY2xpcGJvYXJkT3BlcmF0aW9uPW51bGx9Y2F0Y2goXyl7Y29uc29sZS5lcnJvcigiRmFpbGVkIHRvIHBhc3RlIGl0ZW06IixfKX19YXN5bmMgY29weURpcmVjdG9yeUNvbnRlbnRzKEQsTil7aWYoIXRoaXMuZXhlY3V0aW9uRW52aXJvbm1lbnQpcmV0dXJuO2F3YWl0IHRoaXMuZXhlY3V0aW9uRW52aXJvbm1lbnQubWtkaXIoTik7bGV0IFI9YXdhaXQgdGhpcy5leGVjdXRpb25FbnZpcm9ubWVudC5yZWFkRGlyKEQpO2ZvcihsZXQgXyBvZiBSKXtsZXQgUz1EPT09Ii8iP2AvJHtfLm5hbWV9YDpgJHtEfS8ke18ubmFtZX1gLCQ9Tj09PSIvIj9gLyR7Xy5uYW1lfWA6YCR7Tn0vJHtfLm5hbWV9YDtpZihfLnR5cGU9PT0iZGlyZWN0b3J5Iilhd2FpdCB0aGlzLmNvcHlEaXJlY3RvcnlDb250ZW50cyhTLCQpO2Vsc2V7bGV0IFQ9YXdhaXQgdGhpcy5leGVjdXRpb25FbnZpcm9ubWVudC5yZWFkRmlsZShTKTthd2FpdCB0aGlzLmV4ZWN1dGlvbkVudmlyb25tZW50LndyaXRlRmlsZSgkLFQpfX19YXN5bmMgZmlyc3RVcGRhdGVkKCl7YXdhaXQgdGhpcy5sb2FkVHJlZSgpfWFzeW5jIHVwZGF0ZWQoRCl7RC5oYXMoImV4ZWN1dGlvbkVudmlyb25tZW50IikmJih0aGlzLmxhc3RFeGVjdXRpb25FbnZpcm9ubWVudCE9PXRoaXMuZXhlY3V0aW9uRW52aXJvbm1lbnQmJih0aGlzLnN0b3BGaWxlV2F0Y2hlcigpLHRoaXMubGFzdEV4ZWN1dGlvbkVudmlyb25tZW50PXRoaXMuZXhlY3V0aW9uRW52aXJvbm1lbnQpLHRoaXMuZXhlY3V0aW9uRW52aXJvbm1lbnQmJihhd2FpdCB0aGlzLmxvYWRUcmVlKCksdGhpcy5zdGFydEZpbGVXYXRjaGVyKCkpKX1hc3luYyBkaXNjb25uZWN0ZWRDYWxsYmFjaygpe2F3YWl0IHN1cGVyLmRpc2Nvbm5lY3RlZENhbGxiYWNrKCksdGhpcy5zdG9wRmlsZVdhdGNoZXIoKSx0aGlzLnJlZnJlc2hEZWJvdW5jZVRpbWVvdXQmJihjbGVhclRpbWVvdXQodGhpcy5yZWZyZXNoRGVib3VuY2VUaW1lb3V0KSx0aGlzLnJlZnJlc2hEZWJvdW5jZVRpbWVvdXQ9bnVsbCl9c3RhcnRGaWxlV2F0Y2hlcigpe2lmKCEoIXRoaXMuZXhlY3V0aW9uRW52aXJvbm1lbnR8fHRoaXMuZmlsZVdhdGNoZXIpKXRyeXt0aGlzLmZpbGVXYXRjaGVyPXRoaXMuZXhlY3V0aW9uRW52aXJvbm1lbnQud2F0Y2goIi8iLChELE4pPT57dGhpcy5yZWZyZXNoRGVib3VuY2VUaW1lb3V0JiZjbGVhclRpbWVvdXQodGhpcy5yZWZyZXNoRGVib3VuY2VUaW1lb3V0KSx0aGlzLnJlZnJlc2hEZWJvdW5jZVRpbWVvdXQ9c2V0VGltZW91dCgoKT0+e3RoaXMucmVmcmVzaCgpfSwzMDApfSx7cmVjdXJzaXZlOiEwfSl9Y2F0Y2goRCl7Y29uc29sZS53YXJuKCJGaWxlIHdhdGNoaW5nIG5vdCBzdXBwb3J0ZWQ6IixEKX19c3RvcEZpbGVXYXRjaGVyKCl7dGhpcy5maWxlV2F0Y2hlciYmKHRoaXMuZmlsZVdhdGNoZXIuc3RvcCgpLHRoaXMuZmlsZVdhdGNoZXI9bnVsbCl9YXN5bmMgbG9hZFRyZWUoKXtpZih0aGlzLmV4ZWN1dGlvbkVudmlyb25tZW50JiYhdGhpcy5sb2FkVHJlZVN0YXJ0ZWQpe3RoaXMubG9hZFRyZWVTdGFydGVkPSEwLHRoaXMuaXNMb2FkaW5nPSEwLHRoaXMuZXJyb3JNZXNzYWdlPSIiO3RyeXt0aGlzLmV4ZWN1dGlvbkVudmlyb25tZW50LnJlYWR5fHxhd2FpdCB0aGlzLmV4ZWN1dGlvbkVudmlyb25tZW50LmluaXQoKTtsZXQgRD1hd2FpdCB0aGlzLmV4ZWN1dGlvbkVudmlyb25tZW50LnJlYWREaXIodGhpcy5yb290UGF0aCk7dGhpcy50cmVlRGF0YT10aGlzLnNvcnRFbnRyaWVzKEQpLm1hcChOPT4oey4uLk4sbGV2ZWw6MCxleHBhbmRlZDohMSxjaGlsZHJlbjpOLnR5cGU9PT0iZGlyZWN0b3J5Ij9bXTp2b2lkIDB9KSl9Y2F0Y2goRCl7dGhpcy5lcnJvck1lc3NhZ2U9YEZhaWxlZCB0byBsb2FkIGZpbGVzOiAke0R9YCxjb25zb2xlLmVycm9yKCJGYWlsZWQgdG8gbG9hZCBmaWxlIHRyZWU6IixEKSx0aGlzLmxvYWRUcmVlU3RhcnRlZD0hMX1maW5hbGx5e3RoaXMuaXNMb2FkaW5nPSExfX19c29ydEVudHJpZXMoRCl7cmV0dXJuIEQuc29ydCgoTixSKT0+Ti50eXBlIT09Ui50eXBlP04udHlwZT09PSJkaXJlY3RvcnkiPy0xOjE6Ti5uYW1lLmxvY2FsZUNvbXBhcmUoUi5uYW1lKSl9YXN5bmMgcmVmcmVzaCgpe3RoaXMuZXhwYW5kZWRQYXRocy5jbGVhcigpLHRoaXMubG9hZFRyZWVTdGFydGVkPSExLGF3YWl0IHRoaXMubG9hZFRyZWUoKX1zZWxlY3RGaWxlKEQpe3RoaXMuc2VsZWN0ZWRQYXRoPUR9c3RhdGlje3JvKGkscil9fTtyZXR1cm4gRj1pfSkoKX0pO3ZhciBpNWUsWmIsVWRyLGE1ZT1wKCgpPT57eGUoKTtKZSgpO0I0KCk7aTVlPWZ1bmN0aW9uKGUsdCxyLGksYSxuKXtmdW5jdGlvbiBvKHkpe2lmKHkhPT12b2lkIDAmJnR5cGVvZiB5IT0iZnVuY3Rpb24iKXRocm93IG5ldyBUeXBlRXJyb3IoIkZ1bmN0aW9uIGV4cGVjdGVkIik7cmV0dXJuIHl9Zm9yKHZhciBzPWkua2luZCxsPXM9PT0iZ2V0dGVyIj8iZ2V0IjpzPT09InNldHRlciI/InNldCI6InZhbHVlIixjPSF0JiZlP2kuc3RhdGljP2U6ZS5wcm90b3R5cGU6bnVsbCx1PXR8fChjP09iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoYyxpLm5hbWUpOnt9KSxkLGg9ITEsZj1yLmxlbmd0aC0xO2Y+PTA7Zi0tKXt2YXIgeD17fTtmb3IodmFyIHYgaW4gaSl4W3ZdPXY9PT0iYWNjZXNzIj97fTppW3ZdO2Zvcih2YXIgdiBpbiBpLmFjY2Vzcyl4LmFjY2Vzc1t2XT1pLmFjY2Vzc1t2XTt4LmFkZEluaXRpYWxpemVyPWZ1bmN0aW9uKHkpe2lmKGgpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGFkZCBpbml0aWFsaXplcnMgYWZ0ZXIgZGVjb3JhdGlvbiBoYXMgY29tcGxldGVkIik7bi5wdXNoKG8oeXx8bnVsbCkpfTt2YXIgYj0oMCxyW2ZdKShzPT09ImFjY2Vzc29yIj97Z2V0OnUuZ2V0LHNldDp1LnNldH06dVtsXSx4KTtpZihzPT09ImFjY2Vzc29yIil7aWYoYj09PXZvaWQgMCljb250aW51ZTtpZihiPT09bnVsbHx8dHlwZW9mIGIhPSJvYmplY3QiKXRocm93IG5ldyBUeXBlRXJyb3IoIk9iamVjdCBleHBlY3RlZCIpOyhkPW8oYi5nZXQpKSYmKHUuZ2V0PWQpLChkPW8oYi5zZXQpKSYmKHUuc2V0PWQpLChkPW8oYi5pbml0KSkmJmEudW5zaGlmdChkKX1lbHNlKGQ9byhiKSkmJihzPT09ImZpZWxkIj9hLnVuc2hpZnQoZCk6dVtsXT1kKX1jJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoYyxpLm5hbWUsdSksaD0hMH0sWmI9ZnVuY3Rpb24oZSx0LHIpe2Zvcih2YXIgaT1hcmd1bWVudHMubGVuZ3RoPjIsYT0wO2E8dC5sZW5ndGg7YSsrKXI9aT90W2FdLmNhbGwoZSxyKTp0W2FdLmNhbGwoZSk7cmV0dXJuIGk/cjp2b2lkIDB9LFVkcj0oKCk9PntsZXQgZT1beWUoImRlZXMtd29ya3NwYWNlLXRlcm1pbmFsLXByZXZpZXciKV0sdCxyPVtdLGksYT16ZSxuLG89W10scz1bXSxsLGM9W10sdT1bXTt2YXIgZD1jbGFzcyBleHRlbmRzIGF7c3RhdGlje2k9dGhpc31zdGF0aWN7bGV0IGg9dHlwZW9mIFN5bWJvbD09ImZ1bmN0aW9uIiYmU3ltYm9sLm1ldGFkYXRhP09iamVjdC5jcmVhdGUoYVtTeW1ib2wubWV0YWRhdGFdPz9udWxsKTp2b2lkIDA7bj1baih7dHlwZTpTdHJpbmd9KV0sbD1baih7dHlwZTpBcnJheX0pXSxpNWUodGhpcyxudWxsLG4se2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJjb21tYW5kIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpmPT4iY29tbWFuZCJpbiBmLGdldDpmPT5mLmNvbW1hbmQsc2V0OihmLHgpPT57Zi5jb21tYW5kPXh9fSxtZXRhZGF0YTpofSxvLHMpLGk1ZSh0aGlzLG51bGwsbCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImxpbmVzIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpmPT4ibGluZXMiaW4gZixnZXQ6Zj0+Zi5saW5lcyxzZXQ6KGYseCk9PntmLmxpbmVzPXh9fSxtZXRhZGF0YTpofSxjLHUpLGk1ZShudWxsLHQ9e3ZhbHVlOml9LGUse2tpbmQ6ImNsYXNzIixuYW1lOmkubmFtZSxtZXRhZGF0YTpofSxudWxsLHIpLGQ9aT10LnZhbHVlLGgmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShpLFN5bWJvbC5tZXRhZGF0YSx7ZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITAsdmFsdWU6aH0pfXN0YXRpYyBkZW1vPSgpPT5DYAogICAgPGRlZXMtd29ya3NwYWNlLXRlcm1pbmFsLXByZXZpZXcKICAgICAgLmNvbW1hbmQ9JHsicG5wbSBpbnN0YWxsIn0KICAgICAgLmxpbmVzPSR7WyJQYWNrYWdlczogKzQyIiwiUHJvZ3Jlc3M6IHJlc29sdmVkIDE0MiwgcmV1c2VkIDE0MCwgZG93bmxvYWRlZCAyLCBhZGRlZCA0MiwgZG9uZSIsIiIsImRlcGVuZGVuY2llczoiLCIrIEBwdXNoLnJvY2tzL3NtYXJ0cHJvbWlzZSA0LjIuMyIsIisgdHlwZXNjcmlwdCA1LjMuMyIsIiIsIkRvbmUgaW4gMi4zcyJdfQogICAgPjwvZGVlcy13b3Jrc3BhY2UtdGVybWluYWwtcHJldmlldz4KICBgO3N0YXRpYyBkZW1vR3JvdXBzPVsiV29ya3NwYWNlIl07I2U9WmIodGhpcyxvLCIiKTtnZXQgY29tbWFuZCgpe3JldHVybiB0aGlzLiNlfXNldCBjb21tYW5kKGgpe3RoaXMuI2U9aH0jdD0oWmIodGhpcyxzKSxaYih0aGlzLGMsW10pKTtnZXQgbGluZXMoKXtyZXR1cm4gdGhpcy4jdH1zZXQgbGluZXMoaCl7dGhpcy4jdD1ofXRlcm1pbmFsPShaYih0aGlzLHUpLG51bGwpO2ZpdEFkZG9uPW51bGw7bGFzdExpbmVDb3VudD0wO3Jlc2l6ZU9ic2VydmVyPW51bGw7dGVybWluYWxUaGVtZVN1YnNjcmlwdGlvbj1udWxsO3N0YXRpYyBzdHlsZXM9W0RlLG0uZGVmYXVsdFN0eWxlcyxvZWAKICAgICAgOmhvc3QgewogICAgICAgIGRpc3BsYXk6IGJsb2NrOwogICAgICAgIGhlaWdodDogMjAwcHg7CiAgICAgIH0KCiAgICAgIC50ZXJtaW5hbC1wcmV2aWV3IHsKICAgICAgICBoZWlnaHQ6IDEwMCU7CiAgICAgICAgYm9yZGVyLXJhZGl1czogOHB4OwogICAgICAgIG92ZXJmbG93OiBoaWRkZW47CiAgICAgICAgYmFja2dyb3VuZDogJHttLmJkVGhlbWUoIiNmZmZmZmYiLCIjMDAwMDAwIil9OwogICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICR7bS5iZFRoZW1lKCJoc2woMCAwJSA4NSUpIiwiaHNsKDAgMCUgMjAlKSIpfTsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgIH0KCiAgICAgIC50ZXJtaW5hbC1oZWFkZXIgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBnYXA6IDhweDsKICAgICAgICBwYWRkaW5nOiA4cHggMTJweDsKICAgICAgICBiYWNrZ3JvdW5kOiAke20uYmRUaGVtZSgiaHNsKDAgMCUgOTYlKSIsImhzbCgwIDAlIDEwJSkiKX07CiAgICAgICAgZm9udC1zaXplOiAxMnB4OwogICAgICAgIGZvbnQtZmFtaWx5OiAnU0YgTW9ubycsICdNb25hY28nLCAnSW5jb25zb2xhdGEnLCAnRmlyYSBDb2RlJywgbW9ub3NwYWNlOwogICAgICAgIGNvbG9yOiAke20uYmRUaGVtZSgiaHNsKDAgMCUgNDAlKSIsImhzbCgwIDAlIDYwJSkiKX07CiAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICR7bS5iZFRoZW1lKCJoc2woMCAwJSA4NSUpIiwiaHNsKDAgMCUgMjAlKSIpfTsKICAgICAgICBmbGV4LXNocmluazogMDsKICAgICAgfQoKICAgICAgLnRlcm1pbmFsLWhlYWRlci1pY29uIHsKICAgICAgICBjb2xvcjogJHttLmJkVGhlbWUoImhzbCgwIDAlIDUwJSkiLCJoc2woMCAwJSA1MCUpIil9OwogICAgICB9CgogICAgICAudGVybWluYWwtaGVhZGVyLWNvbW1hbmQgewogICAgICAgIGNvbG9yOiAke20uYmRUaGVtZSgiaHNsKDAgMCUgMjAlKSIsImhzbCgwIDAlIDgwJSkiKX07CiAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDsKICAgICAgfQoKICAgICAgLnRlcm1pbmFsLWNvbnRhaW5lciB7CiAgICAgICAgZmxleDogMTsKICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgICAgcGFkZGluZzogOHB4OwogICAgICB9CgogICAgICAjeHRlcm0tY29udGFpbmVyIHsKICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgICAgdG9wOiA4cHg7CiAgICAgICAgbGVmdDogOHB4OwogICAgICAgIHJpZ2h0OiA4cHg7CiAgICAgICAgYm90dG9tOiA4cHg7CiAgICAgIH0KCiAgICAgIC8qIHh0ZXJtLmpzIHN0eWxlcyAqLwogICAgICAueHRlcm0gewogICAgICAgIGZvbnQtZmVhdHVyZS1zZXR0aW5nczogJ2xpZ2EnIDA7CiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICAgIHVzZXItc2VsZWN0OiBub25lOwogICAgICAgIC1tcy11c2VyLXNlbGVjdDogbm9uZTsKICAgICAgICAtd2Via2l0LXVzZXItc2VsZWN0OiBub25lOwogICAgICB9CgogICAgICAueHRlcm0uZm9jdXMsCiAgICAgIC54dGVybTpmb2N1cyB7CiAgICAgICAgb3V0bGluZTogbm9uZTsKICAgICAgfQoKICAgICAgLnh0ZXJtIC54dGVybS1oZWxwZXJzIHsKICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgICAgdG9wOiAwOwogICAgICAgIHotaW5kZXg6IDU7CiAgICAgIH0KCiAgICAgIC54dGVybSAueHRlcm0taGVscGVyLXRleHRhcmVhIHsKICAgICAgICBwYWRkaW5nOiAwOwogICAgICAgIGJvcmRlcjogMDsKICAgICAgICBtYXJnaW46IDA7CiAgICAgICAgcG9zaXRpb246IGFic29sdXRlOwogICAgICAgIG9wYWNpdHk6IDA7CiAgICAgICAgbGVmdDogLTk5OTllbTsKICAgICAgICB0b3A6IDA7CiAgICAgICAgd2lkdGg6IDA7CiAgICAgICAgaGVpZ2h0OiAwOwogICAgICAgIHotaW5kZXg6IC01OwogICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7CiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgICAgICByZXNpemU6IG5vbmU7CiAgICAgIH0KCiAgICAgIC54dGVybSAuY29tcG9zaXRpb24tdmlldyB7CiAgICAgICAgYmFja2dyb3VuZDogJHttLmJkVGhlbWUoIiNmZmZmZmYiLCIjMDAwMDAwIil9OwogICAgICAgIGNvbG9yOiAke20uYmRUaGVtZSgiIzMzMzMzMyIsIiNmZmZmZmYiKX07CiAgICAgICAgZGlzcGxheTogbm9uZTsKICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDsKICAgICAgICB6LWluZGV4OiAxOwogICAgICB9CgogICAgICAueHRlcm0gLmNvbXBvc2l0aW9uLXZpZXcuYWN0aXZlIHsKICAgICAgICBkaXNwbGF5OiBibG9jazsKICAgICAgfQoKICAgICAgLnh0ZXJtIC54dGVybS12aWV3cG9ydCB7CiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHttLmJkVGhlbWUoIiNmZmZmZmYiLCIjMDAwMDAwIil9OwogICAgICAgIG92ZXJmbG93LXk6IHNjcm9sbDsKICAgICAgICBjdXJzb3I6IGRlZmF1bHQ7CiAgICAgICAgcG9zaXRpb246IGFic29sdXRlOwogICAgICAgIHJpZ2h0OiAwOwogICAgICAgIGxlZnQ6IDA7CiAgICAgICAgdG9wOiAwOwogICAgICAgIGJvdHRvbTogMDsKICAgICAgfQoKICAgICAgLnh0ZXJtIC54dGVybS1zY3JlZW4gewogICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgfQoKICAgICAgLnh0ZXJtIC54dGVybS1zY3JlZW4gY2FudmFzIHsKICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgICAgbGVmdDogMDsKICAgICAgICB0b3A6IDA7CiAgICAgIH0KCiAgICAgIC54dGVybSAueHRlcm0tc2Nyb2xsLWFyZWEgewogICAgICAgIHZpc2liaWxpdHk6IGhpZGRlbjsKICAgICAgfQoKICAgICAgLnh0ZXJtLWNoYXItbWVhc3VyZS1lbGVtZW50IHsKICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7CiAgICAgICAgdmlzaWJpbGl0eTogaGlkZGVuOwogICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgICB0b3A6IDA7CiAgICAgICAgbGVmdDogLTk5OTllbTsKICAgICAgICBsaW5lLWhlaWdodDogbm9ybWFsOwogICAgICB9CgogICAgICAueHRlcm0gewogICAgICAgIGN1cnNvcjogdGV4dDsKICAgICAgfQoKICAgICAgLnh0ZXJtLmVuYWJsZS1tb3VzZS1ldmVudHMgewogICAgICAgIGN1cnNvcjogZGVmYXVsdDsKICAgICAgfQoKICAgICAgLnh0ZXJtLnh0ZXJtLWN1cnNvci1wb2ludGVyIHsKICAgICAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICAgIH0KCiAgICAgIC54dGVybS5jb2x1bW4tc2VsZWN0LmZvY3VzIHsKICAgICAgICBjdXJzb3I6IGNyb3NzaGFpcjsKICAgICAgfQoKICAgICAgLnh0ZXJtIC54dGVybS1hY2Nlc3NpYmlsaXR5LAogICAgICAueHRlcm0gLnh0ZXJtLW1lc3NhZ2UgewogICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgICBsZWZ0OiAwOwogICAgICAgIHRvcDogMDsKICAgICAgICBib3R0b206IDA7CiAgICAgICAgcmlnaHQ6IDA7CiAgICAgICAgei1pbmRleDogMTA7CiAgICAgICAgY29sb3I6IHRyYW5zcGFyZW50OwogICAgICB9CgogICAgICAueHRlcm0gLmxpdmUtcmVnaW9uIHsKICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgICAgbGVmdDogLTk5OTlweDsKICAgICAgICB3aWR0aDogMXB4OwogICAgICAgIGhlaWdodDogMXB4OwogICAgICAgIG92ZXJmbG93OiBoaWRkZW47CiAgICAgIH0KCiAgICAgIC54dGVybS1kaW0gewogICAgICAgIG9wYWNpdHk6IDAuNTsKICAgICAgfQoKICAgICAgLnh0ZXJtLXVuZGVybGluZSB7CiAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7CiAgICAgIH0KCiAgICAgIC8qIEN1c3RvbSBzY3JvbGxiYXIgZm9yIHh0ZXJtIHZpZXdwb3J0ICovCiAgICAgIC54dGVybSAueHRlcm0tdmlld3BvcnQ6Oi13ZWJraXQtc2Nyb2xsYmFyIHsKICAgICAgICB3aWR0aDogOHB4OwogICAgICB9CgogICAgICAueHRlcm0gLnh0ZXJtLXZpZXdwb3J0Ojotd2Via2l0LXNjcm9sbGJhci10cmFjayB7CiAgICAgICAgYmFja2dyb3VuZDogJHttLmJkVGhlbWUoImhzbCgwIDAlIDk2JSkiLCJoc2woMCAwJSA4JSkiKX07CiAgICAgIH0KCiAgICAgIC54dGVybSAueHRlcm0tdmlld3BvcnQ6Oi13ZWJraXQtc2Nyb2xsYmFyLXRodW1iIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke20uYmRUaGVtZSgiaHNsKDAgMCUgODAlKSIsImhzbCgwIDAlIDI1JSkiKX07CiAgICAgICAgYm9yZGVyLXJhZGl1czogNHB4OwogICAgICB9CgogICAgICAueHRlcm0gLnh0ZXJtLXZpZXdwb3J0Ojotd2Via2l0LXNjcm9sbGJhci10aHVtYjpob3ZlciB7CiAgICAgICAgYmFja2dyb3VuZDogJHttLmJkVGhlbWUoImhzbCgwIDAlIDcwJSkiLCJoc2woMCAwJSAzNSUpIil9OwogICAgICB9CiAgICBgXTtyZW5kZXIoKXtyZXR1cm4gQ2AKICAgICAgPGRpdiBjbGFzcz0idGVybWluYWwtcHJldmlldyI+CiAgICAgICAgPGRpdiBjbGFzcz0idGVybWluYWwtaGVhZGVyIj4KICAgICAgICAgIDxzcGFuIGNsYXNzPSJ0ZXJtaW5hbC1oZWFkZXItaWNvbiI+JDwvc3Bhbj4KICAgICAgICAgIDxzcGFuIGNsYXNzPSJ0ZXJtaW5hbC1oZWFkZXItY29tbWFuZCI+JHt0aGlzLmNvbW1hbmR8fCJXYWl0aW5nLi4uIn08L3NwYW4+CiAgICAgICAgPC9kaXY+CiAgICAgICAgPGRpdiBjbGFzcz0idGVybWluYWwtY29udGFpbmVyIj4KICAgICAgICAgIDxkaXYgaWQ9Inh0ZXJtLWNvbnRhaW5lciI+PC9kaXY+CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGl2PgogICAgYH1nZXRUZXJtaW5hbFRoZW1lKGgpe3JldHVybiBoP3tiYWNrZ3JvdW5kOiIjZmZmZmZmIixmb3JlZ3JvdW5kOiIjMzMzMzMzIixjdXJzb3I6IiMzMzMzMzMiLGN1cnNvckFjY2VudDoiI2ZmZmZmZiIsc2VsZWN0aW9uQmFja2dyb3VuZDoicmdiYSgwLCAwLCAwLCAwLjIpIn06e2JhY2tncm91bmQ6IiMwMDAwMDAiLGZvcmVncm91bmQ6IiNjY2NjY2MiLGN1cnNvcjoiI2NjY2NjYyIsY3Vyc29yQWNjZW50OiIjMDAwMDAwIixzZWxlY3Rpb25CYWNrZ3JvdW5kOiJyZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMikifX1hc3luYyBmaXJzdFVwZGF0ZWQoaCl7c3VwZXIuZmlyc3RVcGRhdGVkKGgpO2xldCBmPXRoaXMuc2hhZG93Um9vdD8uZ2V0RWxlbWVudEJ5SWQoInh0ZXJtLWNvbnRhaW5lciIpO2lmKCFmKXJldHVybjtsZXQgeD1hd2FpdCB0aGlzLmRvbXRvb2xzUHJvbWlzZSx2PXgudGhlbWVNYW5hZ2VyLmdvQnJpZ2h0Qm9vbGVhbixiPXJhLmdldEluc3RhbmNlKCksW3ksd109YXdhaXQgUHJvbWlzZS5hbGwoW2IubG9hZFh0ZXJtKCksYi5sb2FkWHRlcm1GaXRBZGRvbigpXSk7dGhpcy50ZXJtaW5hbD1uZXcgeS5UZXJtaW5hbCh7Y29udmVydEVvbDohMCxjdXJzb3JCbGluazohMSxkaXNhYmxlU3RkaW46ITAsZm9udFNpemU6MTIsZm9udEZhbWlseToiJ1NGIE1vbm8nLCAnTW9uYWNvJywgJ0luY29uc29sYXRhJywgJ0ZpcmEgQ29kZScsIG1vbm9zcGFjZSIsdGhlbWU6dGhpcy5nZXRUZXJtaW5hbFRoZW1lKHYpLHNjcm9sbGJhY2s6MWUzfSksdGhpcy50ZXJtaW5hbFRoZW1lU3Vic2NyaXB0aW9uPXgudGhlbWVNYW5hZ2VyLnRoZW1lT2JzZXJ2YWJsZS5zdWJzY3JpYmUoaz0+e3RoaXMudGVybWluYWwmJih0aGlzLnRlcm1pbmFsLm9wdGlvbnMudGhlbWU9dGhpcy5nZXRUZXJtaW5hbFRoZW1lKGspKX0pLHRoaXMuZml0QWRkb249bmV3IHcuRml0QWRkb24sdGhpcy50ZXJtaW5hbC5sb2FkQWRkb24odGhpcy5maXRBZGRvbiksdGhpcy50ZXJtaW5hbC5vcGVuKGYpLHRoaXMuZml0QWRkb24uZml0KCksdGhpcy5yZXNpemVPYnNlcnZlcj1uZXcgUmVzaXplT2JzZXJ2ZXIoKCk9Pnt0aGlzLmZpdEFkZG9uJiZ0aGlzLmZpdEFkZG9uLmZpdCgpfSksdGhpcy5yZXNpemVPYnNlcnZlci5vYnNlcnZlKGYpLHRoaXMud3JpdGVOZXdMaW5lcygpfWFzeW5jIHVwZGF0ZWQoaCl7c3VwZXIudXBkYXRlZChoKSxoLmhhcygibGluZXMiKSYmdGhpcy53cml0ZU5ld0xpbmVzKCl9d3JpdGVOZXdMaW5lcygpe2lmKCF0aGlzLnRlcm1pbmFsKXJldHVybjtsZXQgaD10aGlzLmxpbmVzLnNsaWNlKHRoaXMubGFzdExpbmVDb3VudCk7Zm9yKGxldCBmIG9mIGgpdGhpcy50ZXJtaW5hbC53cml0ZWxuKGYpO3RoaXMubGFzdExpbmVDb3VudD10aGlzLmxpbmVzLmxlbmd0aH1hc3luYyBkaXNjb25uZWN0ZWRDYWxsYmFjaygpe3RoaXMucmVzaXplT2JzZXJ2ZXImJih0aGlzLnJlc2l6ZU9ic2VydmVyLmRpc2Nvbm5lY3QoKSx0aGlzLnJlc2l6ZU9ic2VydmVyPW51bGwpLHRoaXMudGVybWluYWxUaGVtZVN1YnNjcmlwdGlvbiYmKHRoaXMudGVybWluYWxUaGVtZVN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpLHRoaXMudGVybWluYWxUaGVtZVN1YnNjcmlwdGlvbj1udWxsKSx0aGlzLnRlcm1pbmFsJiYodGhpcy50ZXJtaW5hbC5kaXNwb3NlKCksdGhpcy50ZXJtaW5hbD1udWxsKSxhd2FpdCBzdXBlci5kaXNjb25uZWN0ZWRDYWxsYmFjaygpfWFkZExpbmUoaCl7dGhpcy5saW5lcz1bLi4udGhpcy5saW5lcyxoXX1jbGVhcigpe3RoaXMubGluZXM9W10sdGhpcy5sYXN0TGluZUNvdW50PTAsdGhpcy50ZXJtaW5hbCYmdGhpcy50ZXJtaW5hbC5jbGVhcigpfXN0YXRpY3taYihpLHIpfX07cmV0dXJuIGQ9aX0pKCl9KTt2YXIgdmgsUjIsV2RyLG41ZT1wKCgpPT57eGUoKTtKZSgpO29yKCk7TWkoKTt2aD1mdW5jdGlvbihlLHQscixpLGEsbil7ZnVuY3Rpb24gbyh5KXtpZih5IT09dm9pZCAwJiZ0eXBlb2YgeSE9ImZ1bmN0aW9uIil0aHJvdyBuZXcgVHlwZUVycm9yKCJGdW5jdGlvbiBleHBlY3RlZCIpO3JldHVybiB5fWZvcih2YXIgcz1pLmtpbmQsbD1zPT09ImdldHRlciI/ImdldCI6cz09PSJzZXR0ZXIiPyJzZXQiOiJ2YWx1ZSIsYz0hdCYmZT9pLnN0YXRpYz9lOmUucHJvdG90eXBlOm51bGwsdT10fHwoYz9PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGMsaS5uYW1lKTp7fSksZCxoPSExLGY9ci5sZW5ndGgtMTtmPj0wO2YtLSl7dmFyIHg9e307Zm9yKHZhciB2IGluIGkpeFt2XT12PT09ImFjY2VzcyI/e306aVt2XTtmb3IodmFyIHYgaW4gaS5hY2Nlc3MpeC5hY2Nlc3Nbdl09aS5hY2Nlc3Nbdl07eC5hZGRJbml0aWFsaXplcj1mdW5jdGlvbih5KXtpZihoKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBhZGQgaW5pdGlhbGl6ZXJzIGFmdGVyIGRlY29yYXRpb24gaGFzIGNvbXBsZXRlZCIpO24ucHVzaChvKHl8fG51bGwpKX07dmFyIGI9KDAscltmXSkocz09PSJhY2Nlc3NvciI/e2dldDp1LmdldCxzZXQ6dS5zZXR9OnVbbF0seCk7aWYocz09PSJhY2Nlc3NvciIpe2lmKGI9PT12b2lkIDApY29udGludWU7aWYoYj09PW51bGx8fHR5cGVvZiBiIT0ib2JqZWN0Iil0aHJvdyBuZXcgVHlwZUVycm9yKCJPYmplY3QgZXhwZWN0ZWQiKTsoZD1vKGIuZ2V0KSkmJih1LmdldD1kKSwoZD1vKGIuc2V0KSkmJih1LnNldD1kKSwoZD1vKGIuaW5pdCkpJiZhLnVuc2hpZnQoZCl9ZWxzZShkPW8oYikpJiYocz09PSJmaWVsZCI/YS51bnNoaWZ0KGQpOnVbbF09ZCl9YyYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGMsaS5uYW1lLHUpLGg9ITB9LFIyPWZ1bmN0aW9uKGUsdCxyKXtmb3IodmFyIGk9YXJndW1lbnRzLmxlbmd0aD4yLGE9MDthPHQubGVuZ3RoO2ErKylyPWk/dFthXS5jYWxsKGUscik6dFthXS5jYWxsKGUpO3JldHVybiBpP3I6dm9pZCAwfSxXZHI9KCgpPT57bGV0IGU9W3llKCJkZWVzLXdvcmtzcGFjZS1ib3R0b21iYXIiKV0sdCxyPVtdLGksYT16ZSxuLG89W10scz1bXSxsLGM9W10sdT1bXSxkLGg9W10sZj1bXSx4LHY9W10sYj1bXSx5LHc9W10saz1bXTt2YXIgTz1jbGFzcyBleHRlbmRzIGF7c3RhdGlje2k9dGhpc31zdGF0aWN7bGV0IHo9dHlwZW9mIFN5bWJvbD09ImZ1bmN0aW9uIiYmU3ltYm9sLm1ldGFkYXRhP09iamVjdC5jcmVhdGUoYVtTeW1ib2wubWV0YWRhdGFdPz9udWxsKTp2b2lkIDA7bj1baih7dHlwZTpPYmplY3R9KV0sbD1bZmUoKV0sZD1bZmUoKV0seD1bZmUoKV0seT1bZmUoKV0sdmgodGhpcyxudWxsLG4se2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJleGVjdXRpb25FbnZpcm9ubWVudCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6TT0+ImV4ZWN1dGlvbkVudmlyb25tZW50ImluIE0sZ2V0Ok09Pk0uZXhlY3V0aW9uRW52aXJvbm1lbnQsc2V0OihNLEYpPT57TS5leGVjdXRpb25FbnZpcm9ubWVudD1GfX0sbWV0YWRhdGE6en0sbyxzKSx2aCh0aGlzLG51bGwsbCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InNjcmlwdHMiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOk09PiJzY3JpcHRzImluIE0sZ2V0Ok09Pk0uc2NyaXB0cyxzZXQ6KE0sRik9PntNLnNjcmlwdHM9Rn19LG1ldGFkYXRhOnp9LGMsdSksdmgodGhpcyxudWxsLGQse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJwYWNrYWdlU3RhdHVzIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpNPT4icGFja2FnZVN0YXR1cyJpbiBNLGdldDpNPT5NLnBhY2thZ2VTdGF0dXMsc2V0OihNLEYpPT57TS5wYWNrYWdlU3RhdHVzPUZ9fSxtZXRhZGF0YTp6fSxoLGYpLHZoKHRoaXMsbnVsbCx4LHtraW5kOiJhY2Nlc3NvciIsbmFtZToib3V0ZGF0ZWRQYWNrYWdlcyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6TT0+Im91dGRhdGVkUGFja2FnZXMiaW4gTSxnZXQ6TT0+TS5vdXRkYXRlZFBhY2thZ2VzLHNldDooTSxGKT0+e00ub3V0ZGF0ZWRQYWNrYWdlcz1GfX0sbWV0YWRhdGE6en0sdixiKSx2aCh0aGlzLG51bGwseSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImlzQ2hlY2tpbmdQYWNrYWdlcyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6TT0+ImlzQ2hlY2tpbmdQYWNrYWdlcyJpbiBNLGdldDpNPT5NLmlzQ2hlY2tpbmdQYWNrYWdlcyxzZXQ6KE0sRik9PntNLmlzQ2hlY2tpbmdQYWNrYWdlcz1GfX0sbWV0YWRhdGE6en0sdyxrKSx2aChudWxsLHQ9e3ZhbHVlOml9LGUse2tpbmQ6ImNsYXNzIixuYW1lOmkubmFtZSxtZXRhZGF0YTp6fSxudWxsLHIpLE89aT10LnZhbHVlLHomJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShpLFN5bWJvbC5tZXRhZGF0YSx7ZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITAsdmFsdWU6en0pfSNlPVIyKHRoaXMsbyxudWxsKTtnZXQgZXhlY3V0aW9uRW52aXJvbm1lbnQoKXtyZXR1cm4gdGhpcy4jZX1zZXQgZXhlY3V0aW9uRW52aXJvbm1lbnQoeil7dGhpcy4jZT16fSN0PShSMih0aGlzLHMpLFIyKHRoaXMsYyx7fSkpO2dldCBzY3JpcHRzKCl7cmV0dXJuIHRoaXMuI3R9c2V0IHNjcmlwdHMoeil7dGhpcy4jdD16fSNyPShSMih0aGlzLHUpLFIyKHRoaXMsaCwiaWRsZSIpKTtnZXQgcGFja2FnZVN0YXR1cygpe3JldHVybiB0aGlzLiNyfXNldCBwYWNrYWdlU3RhdHVzKHope3RoaXMuI3I9en0jaT0oUjIodGhpcyxmKSxSMih0aGlzLHYsW10pKTtnZXQgb3V0ZGF0ZWRQYWNrYWdlcygpe3JldHVybiB0aGlzLiNpfXNldCBvdXRkYXRlZFBhY2thZ2VzKHope3RoaXMuI2k9en0jYT0oUjIodGhpcyxiKSxSMih0aGlzLHcsITEpKTtnZXQgaXNDaGVja2luZ1BhY2thZ2VzKCl7cmV0dXJuIHRoaXMuI2F9c2V0IGlzQ2hlY2tpbmdQYWNrYWdlcyh6KXt0aGlzLiNhPXp9cGVuZGluZ1BhY2thZ2VVcGRhdGU9KFIyKHRoaXMsayksITEpO2hhbmRsZVByb2Nlc3NDb21wbGV0ZT16PT57dGhpcy5wZW5kaW5nUGFja2FnZVVwZGF0ZSYmKHRoaXMucGVuZGluZ1BhY2thZ2VVcGRhdGU9ITEsc2V0VGltZW91dCgoKT0+dGhpcy5jaGVja1BhY2thZ2VzKCksNTAwKSl9O3N0YXRpYyBzdHlsZXM9W0RlLG0uZGVmYXVsdFN0eWxlcyxvZWAKICAgICAgOmhvc3QgewogICAgICAgIGRpc3BsYXk6IGJsb2NrOwogICAgICAgIGhlaWdodDogMjRweDsKICAgICAgICBmbGV4LXNocmluazogMDsKICAgICAgfQoKICAgICAgLmJvdHRvbS1iYXIgewogICAgICAgIGhlaWdodDogMjRweDsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgcGFkZGluZzogMCA4cHg7CiAgICAgICAgZ2FwOiA0cHg7CiAgICAgICAgYmFja2dyb3VuZDogJHttLmJkVGhlbWUoImhzbCgwIDAlIDk0JSkiLCJoc2woMCAwJSA2JSkiKX07CiAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICR7bS5iZFRoZW1lKCJoc2woMCAwJSA4NSUpIiwiaHNsKDAgMCUgMTUlKSIpfTsKICAgICAgICBmb250LXNpemU6IDExcHg7CiAgICAgICAgY29sb3I6ICR7bS5iZFRoZW1lKCJoc2woMCAwJSA0MCUpIiwiaHNsKDAgMCUgNjAlKSIpfTsKICAgICAgfQoKICAgICAgLndpZGdldCB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGdhcDogNHB4OwogICAgICAgIHBhZGRpbmc6IDJweCA2cHg7CiAgICAgICAgYm9yZGVyLXJhZGl1czogM3B4OwogICAgICAgIGN1cnNvcjogcG9pbnRlcjsKICAgICAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kIDAuMTVzIGVhc2UsIGNvbG9yIDAuMTVzIGVhc2U7CiAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDsKICAgICAgfQoKICAgICAgLndpZGdldDpob3ZlciB7CiAgICAgICAgYmFja2dyb3VuZDogJHttLmJkVGhlbWUoImhzbCgwIDAlIDg4JSkiLCJoc2woMCAwJSAxMiUpIil9OwogICAgICAgIGNvbG9yOiAke20uYmRUaGVtZSgiaHNsKDAgMCUgMjAlKSIsImhzbCgwIDAlIDgwJSkiKX07CiAgICAgIH0KCiAgICAgIC53aWRnZXQgZGVlcy1pY29uIHsKICAgICAgICBmbGV4LXNocmluazogMDsKICAgICAgfQoKICAgICAgLndpZGdldC1zZXBhcmF0b3IgewogICAgICAgIHdpZHRoOiAxcHg7CiAgICAgICAgaGVpZ2h0OiAxNHB4OwogICAgICAgIGJhY2tncm91bmQ6ICR7bS5iZFRoZW1lKCJoc2woMCAwJSA4MCUpIiwiaHNsKDAgMCUgMjAlKSIpfTsKICAgICAgICBtYXJnaW46IDAgNHB4OwogICAgICB9CgogICAgICAud2lkZ2V0LnJ1bm5pbmcgewogICAgICAgIGNvbG9yOiAke20uYmRUaGVtZSgiaHNsKDIxMCAxMDAlIDQ1JSkiLCJoc2woMjEwIDEwMCUgNjAlKSIpfTsKICAgICAgfQoKICAgICAgLndpZGdldC51cC10by1kYXRlIHsKICAgICAgICBjb2xvcjogJHttLmJkVGhlbWUoImhzbCgxNDIgNzAlIDM1JSkiLCJoc2woMTQyIDcwJSA1MCUpIil9OwogICAgICB9CgogICAgICAud2lkZ2V0LnVwZGF0ZXMtYXZhaWxhYmxlIHsKICAgICAgICBjb2xvcjogJHttLmJkVGhlbWUoImhzbCgzOCA5MiUgNDUlKSIsImhzbCgzOCA5MiUgNTUlKSIpfTsKICAgICAgfQoKICAgICAgLndpZGdldC5lcnJvciB7CiAgICAgICAgY29sb3I6ICR7bS5iZFRoZW1lKCJoc2woMCA3MCUgNTAlKSIsImhzbCgwIDcwJSA2MCUpIil9OwogICAgICB9CgogICAgICBAa2V5ZnJhbWVzIHNwaW4gewogICAgICAgIGZyb20geyB0cmFuc2Zvcm06IHJvdGF0ZSgwZGVnKTsgfQogICAgICAgIHRvIHsgdHJhbnNmb3JtOiByb3RhdGUoMzYwZGVnKTsgfQogICAgICB9CgogICAgICAuc3Bpbm5pbmcgewogICAgICAgIGFuaW1hdGlvbjogc3BpbiAxcyBsaW5lYXIgaW5maW5pdGU7CiAgICAgIH0KCiAgICAgIC5zcGFjZXIgewogICAgICAgIGZsZXg6IDE7CiAgICAgIH0KICAgIGBdO3JlbmRlcigpe3JldHVybiBDYAogICAgICA8ZGl2IGNsYXNzPSJib3R0b20tYmFyIj4KICAgICAgICA8IS0tIFNjcmlwdCBSdW5uZXIgV2lkZ2V0IC0tPgogICAgICAgIDxkaXYKICAgICAgICAgIGNsYXNzPSJ3aWRnZXQiCiAgICAgICAgICBAY2xpY2s9JHt0aGlzLmhhbmRsZVNjcmlwdENsaWNrfQogICAgICAgICAgdGl0bGU9IlJ1biBzY3JpcHQiCiAgICAgICAgPgogICAgICAgICAgPGRlZXMtaWNvbgogICAgICAgICAgICAuaWNvbj0keyJsdWNpZGU6cGxheSJ9CiAgICAgICAgICAgIGljb25TaXplPSIxMiIKICAgICAgICAgID48L2RlZXMtaWNvbj4KICAgICAgICAgIDxzcGFuPlNjcmlwdHM8L3NwYW4+CiAgICAgICAgPC9kaXY+CgogICAgICAgIDxkaXYgY2xhc3M9IndpZGdldC1zZXBhcmF0b3IiPjwvZGl2PgoKICAgICAgICA8IS0tIFBhY2thZ2UgQ2hlY2tlciBXaWRnZXQgLS0+CiAgICAgICAgPGRpdgogICAgICAgICAgY2xhc3M9IndpZGdldCAke3RoaXMuZ2V0UGFja2FnZVN0YXR1c0NsYXNzKCl9IgogICAgICAgICAgQGNsaWNrPSR7dGhpcy5oYW5kbGVQYWNrYWdlQ2xpY2t9CiAgICAgICAgICB0aXRsZT0iJHt0aGlzLmdldFBhY2thZ2VUb29sdGlwKCl9IgogICAgICAgID4KICAgICAgICAgIDxkZWVzLWljb24KICAgICAgICAgICAgLmljb249JHt0aGlzLmdldFBhY2thZ2VJY29uKCl9CiAgICAgICAgICAgIGljb25TaXplPSIxMiIKICAgICAgICAgICAgY2xhc3M9IiR7dGhpcy5pc0NoZWNraW5nUGFja2FnZXM/InNwaW5uaW5nIjoiIn0iCiAgICAgICAgICA+PC9kZWVzLWljb24+CiAgICAgICAgICA8c3Bhbj4ke3RoaXMuZ2V0UGFja2FnZVN0YXR1c1RleHQoKX08L3NwYW4+CiAgICAgICAgPC9kaXY+CgogICAgICAgIDxkaXYgY2xhc3M9InNwYWNlciI+PC9kaXY+CgogICAgICAgIDwhLS0gRnV0dXJlIHdpZGdldHMgY2FuIGJlIGFkZGVkIGhlcmUgLS0+CiAgICAgIDwvZGl2PgogICAgYH1hc3luYyBjb25uZWN0ZWRDYWxsYmFjaygpe2F3YWl0IHN1cGVyLmNvbm5lY3RlZENhbGxiYWNrKCksd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoInByb2Nlc3MtY29tcGxldGUiLHRoaXMuaGFuZGxlUHJvY2Vzc0NvbXBsZXRlKX1hc3luYyBkaXNjb25uZWN0ZWRDYWxsYmFjaygpe2F3YWl0IHN1cGVyLmRpc2Nvbm5lY3RlZENhbGxiYWNrKCksd2luZG93LnJlbW92ZUV2ZW50TGlzdGVuZXIoInByb2Nlc3MtY29tcGxldGUiLHRoaXMuaGFuZGxlUHJvY2Vzc0NvbXBsZXRlKX1hc3luYyBmaXJzdFVwZGF0ZWQoKXthd2FpdCB0aGlzLmxvYWRTY3JpcHRzKCksYXdhaXQgdGhpcy5jaGVja1BhY2thZ2VzKCl9YXN5bmMgdXBkYXRlZCh6KXt6LmhhcygiZXhlY3V0aW9uRW52aXJvbm1lbnQiKSYmdGhpcy5leGVjdXRpb25FbnZpcm9ubWVudCYmKGF3YWl0IHRoaXMubG9hZFNjcmlwdHMoKSxhd2FpdCB0aGlzLmNoZWNrUGFja2FnZXMoKSl9YXN5bmMgbG9hZFNjcmlwdHMoKXtpZih0aGlzLmV4ZWN1dGlvbkVudmlyb25tZW50KXRyeXtpZighYXdhaXQgdGhpcy5leGVjdXRpb25FbnZpcm9ubWVudC5leGlzdHMoIi9wYWNrYWdlLmpzb24iKSl7dGhpcy5zY3JpcHRzPXt9O3JldHVybn1sZXQgTT1hd2FpdCB0aGlzLmV4ZWN1dGlvbkVudmlyb25tZW50LnJlYWRGaWxlKCIvcGFja2FnZS5qc29uIiksRj1KU09OLnBhcnNlKE0pO3RoaXMuc2NyaXB0cz1GLnNjcmlwdHN8fHt9fWNhdGNoKHope2NvbnNvbGUud2FybigiRmFpbGVkIHRvIGxvYWQgc2NyaXB0cyBmcm9tIHBhY2thZ2UuanNvbjoiLHopLHRoaXMuc2NyaXB0cz17fX19YXN5bmMgaGFuZGxlU2NyaXB0Q2xpY2soeil7ei5zdG9wUHJvcGFnYXRpb24oKTtsZXQgTT1PYmplY3Qua2V5cyh0aGlzLnNjcmlwdHMpO2lmKE0ubGVuZ3RoPT09MClyZXR1cm47bGV0IEY9TS5tYXAoRD0+KHtuYW1lOkQsaWNvbk5hbWU6Imx1Y2lkZTp0ZXJtaW5hbCIsYWN0aW9uOmFzeW5jKCk9Pnthd2FpdCB0aGlzLnJ1blNjcmlwdChEKX19KSk7YXdhaXQgU3Iub3BlbkNvbnRleHRNZW51V2l0aE9wdGlvbnMoeixGKX1hc3luYyBydW5TY3JpcHQoeil7aWYoIXRoaXMuZXhlY3V0aW9uRW52aXJvbm1lbnQpcmV0dXJuO2xldCBNPXt0eXBlOiJzY3JpcHQiLGxhYmVsOnosY29tbWFuZDoicG5wbSIsYXJnczpbInJ1biIsel0sbWV0YWRhdGE6e3NjcmlwdE5hbWU6en19O3RoaXMuZGlzcGF0Y2hFdmVudChuZXcgQ3VzdG9tRXZlbnQoInJ1bi1wcm9jZXNzIix7YnViYmxlczohMCxjb21wb3NlZDohMCxkZXRhaWw6TX0pKX1hc3luYyBjaGVja1BhY2thZ2VzKCl7aWYoIXRoaXMuZXhlY3V0aW9uRW52aXJvbm1lbnQpe3RoaXMucGFja2FnZVN0YXR1cz0iaWRsZSI7cmV0dXJufXRyeXtpZighYXdhaXQgdGhpcy5leGVjdXRpb25FbnZpcm9ubWVudC5leGlzdHMoIi9wYWNrYWdlLmpzb24iKSl7dGhpcy5wYWNrYWdlU3RhdHVzPSJpZGxlIjtyZXR1cm59dGhpcy5wYWNrYWdlU3RhdHVzPSJjaGVja2luZyIsdGhpcy5pc0NoZWNraW5nUGFja2FnZXM9ITA7bGV0IE09YXdhaXQgdGhpcy5leGVjdXRpb25FbnZpcm9ubWVudC5zcGF3bigicG5wbSIsWyJvdXRkYXRlZCIsIi0tanNvbiJdKSxGPSIiLEQ9TS5vdXRwdXQuZ2V0UmVhZGVyKCk7KGFzeW5jKCk9Pnt0cnl7Zm9yKDs7KXtsZXR7ZG9uZTpfLHZhbHVlOlN9PWF3YWl0IEQucmVhZCgpO2lmKF8pYnJlYWs7Ris9U319Y2F0Y2h7fX0pKCk7bGV0IFI9YXdhaXQgUHJvbWlzZS5yYWNlKFtNLmV4aXQsbmV3IFByb21pc2UoXz0+c2V0VGltZW91dCgoKT0+XygtMSksMWU0KSldKTt0cnl7YXdhaXQgRC5jYW5jZWwoKX1jYXRjaHt9aWYoUj09PS0xKXtjb25zb2xlLndhcm4oIlBhY2thZ2UgY2hlY2sgdGltZWQgb3V0IiksdGhpcy5wYWNrYWdlU3RhdHVzPSJlcnJvciI7cmV0dXJufWlmKFI9PT0wKXRoaXMucGFja2FnZVN0YXR1cz0idXAtdG8tZGF0ZSIsdGhpcy5vdXRkYXRlZFBhY2thZ2VzPVtdO2Vsc2UgdHJ5e2xldCBfPUpTT04ucGFyc2UoRik7dGhpcy5vdXRkYXRlZFBhY2thZ2VzPXRoaXMucGFyc2VPdXRkYXRlZFBhY2thZ2VzKF8pLHRoaXMucGFja2FnZVN0YXR1cz10aGlzLm91dGRhdGVkUGFja2FnZXMubGVuZ3RoPjA/InVwZGF0ZXMtYXZhaWxhYmxlIjoidXAtdG8tZGF0ZSJ9Y2F0Y2h7dGhpcy5wYWNrYWdlU3RhdHVzPSJ1cGRhdGVzLWF2YWlsYWJsZSIsdGhpcy5vdXRkYXRlZFBhY2thZ2VzPVtdfX1jYXRjaCh6KXtjb25zb2xlLndhcm4oIkZhaWxlZCB0byBjaGVjayBmb3IgcGFja2FnZSB1cGRhdGVzOiIseiksdGhpcy5wYWNrYWdlU3RhdHVzPSJlcnJvciJ9ZmluYWxseXt0aGlzLmlzQ2hlY2tpbmdQYWNrYWdlcz0hMX19cGFyc2VPdXRkYXRlZFBhY2thZ2VzKHope2xldCBNPVtdO2lmKHR5cGVvZiB6PT0ib2JqZWN0IiYmeiE9PW51bGwpZm9yKGxldFtGLERdb2YgT2JqZWN0LmVudHJpZXMoeikpe2xldCBOPUQ7TS5wdXNoKHtuYW1lOkYsY3VycmVudDpOLmN1cnJlbnR8fCJ1bmtub3duIix3YW50ZWQ6Ti53YW50ZWR8fE4uY3VycmVudHx8InVua25vd24iLGxhdGVzdDpOLmxhdGVzdHx8Ti53YW50ZWR8fCJ1bmtub3duIix0eXBlOk4uZGVwZW5kZW5jeVR5cGU9PT0iZGV2RGVwZW5kZW5jaWVzIj8iZGV2RGVwZW5kZW5jaWVzIjoiZGVwZW5kZW5jaWVzIn0pfXJldHVybiBNfWFzeW5jIGhhbmRsZVBhY2thZ2VDbGljayh6KXt6LnN0b3BQcm9wYWdhdGlvbigpO2xldCBNPVtdO2lmKE0ucHVzaCh7bmFtZTp0aGlzLmlzQ2hlY2tpbmdQYWNrYWdlcz8iQ2hlY2tpbmcuLi4iOiJDaGVjayBmb3IgdXBkYXRlcyIsaWNvbk5hbWU6Imx1Y2lkZTpyZWZyZXNoQ3ciLGFjdGlvbjphc3luYygpPT57aWYodGhpcy5pc0NoZWNraW5nUGFja2FnZXMpcmV0dXJuO2xldCBGPXt0eXBlOiJwYWNrYWdlLXVwZGF0ZSIsbGFiZWw6ImNoZWNrIHBhY2thZ2VzIixjb21tYW5kOiJwbnBtIixhcmdzOlsib3V0ZGF0ZWQiXX07dGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBDdXN0b21FdmVudCgicnVuLXByb2Nlc3MiLHtidWJibGVzOiEwLGNvbXBvc2VkOiEwLGRldGFpbDpGfSkpLHNldFRpbWVvdXQoKCk9PnRoaXMuY2hlY2tQYWNrYWdlcygpLDNlMyl9fSksdGhpcy5vdXRkYXRlZFBhY2thZ2VzLmxlbmd0aD4wKXtNLnB1c2goe2RpdmlkZXI6ITB9KTtsZXQgRj10aGlzLm91dGRhdGVkUGFja2FnZXMuc2xpY2UoMCwxMCk7Zm9yKGxldCBEIG9mIEYpTS5wdXNoKHtuYW1lOmAke0QubmFtZX06ICR7RC5jdXJyZW50fSBcdTIxOTIgJHtELmxhdGVzdH1gLGljb25OYW1lOiJsdWNpZGU6cGFja2FnZSIsYWN0aW9uOmFzeW5jKCk9Pnthd2FpdCB0aGlzLnVwZGF0ZVBhY2thZ2UoRC5uYW1lKX19KTt0aGlzLm91dGRhdGVkUGFja2FnZXMubGVuZ3RoPjEwJiZNLnB1c2goe25hbWU6YC4uLiBhbmQgJHt0aGlzLm91dGRhdGVkUGFja2FnZXMubGVuZ3RoLTEwfSBtb3JlYCxpY29uTmFtZToibHVjaWRlOm1vcmVIb3Jpem9udGFsIixhY3Rpb246YXN5bmMoKT0+e319KSxNLnB1c2goe2RpdmlkZXI6ITB9KSxNLnB1c2goe25hbWU6IlVwZGF0ZSBhbGwgcGFja2FnZXMiLGljb25OYW1lOiJsdWNpZGU6YXJyb3dVcENpcmNsZSIsYWN0aW9uOmFzeW5jKCk9Pnthd2FpdCB0aGlzLnVwZGF0ZUFsbFBhY2thZ2VzKCl9fSl9YXdhaXQgU3Iub3BlbkNvbnRleHRNZW51V2l0aE9wdGlvbnMoeixNKX1hc3luYyB1cGRhdGVQYWNrYWdlKHope2lmKCF0aGlzLmV4ZWN1dGlvbkVudmlyb25tZW50KXJldHVybjt0aGlzLnBlbmRpbmdQYWNrYWdlVXBkYXRlPSEwO2xldCBNPXt0eXBlOiJwYWNrYWdlLXVwZGF0ZSIsbGFiZWw6YHVwZGF0ZSAke3p9YCxjb21tYW5kOiJwbnBtIixhcmdzOlsidXBkYXRlIiwiLS1sYXRlc3QiLHpdLG1ldGFkYXRhOntwYWNrYWdlTmFtZTp6fX07dGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBDdXN0b21FdmVudCgicnVuLXByb2Nlc3MiLHtidWJibGVzOiEwLGNvbXBvc2VkOiEwLGRldGFpbDpNfSkpfWFzeW5jIHVwZGF0ZUFsbFBhY2thZ2VzKCl7aWYoIXRoaXMuZXhlY3V0aW9uRW52aXJvbm1lbnQpcmV0dXJuO3RoaXMucGVuZGluZ1BhY2thZ2VVcGRhdGU9ITA7bGV0IHo9e3R5cGU6InBhY2thZ2UtdXBkYXRlIixsYWJlbDoidXBkYXRlIGFsbCIsY29tbWFuZDoicG5wbSIsYXJnczpbInVwZGF0ZSIsIi0tbGF0ZXN0Il19O3RoaXMuZGlzcGF0Y2hFdmVudChuZXcgQ3VzdG9tRXZlbnQoInJ1bi1wcm9jZXNzIix7YnViYmxlczohMCxjb21wb3NlZDohMCxkZXRhaWw6en0pKX1nZXRQYWNrYWdlU3RhdHVzQ2xhc3MoKXtyZXR1cm4gdGhpcy5pc0NoZWNraW5nUGFja2FnZXM/IiI6dGhpcy5wYWNrYWdlU3RhdHVzfWdldFBhY2thZ2VJY29uKCl7aWYodGhpcy5pc0NoZWNraW5nUGFja2FnZXMpcmV0dXJuImx1Y2lkZTpsb2FkZXIyIjtzd2l0Y2godGhpcy5wYWNrYWdlU3RhdHVzKXtjYXNlInVwLXRvLWRhdGUiOnJldHVybiJsdWNpZGU6Y2hlY2tDaXJjbGUiO2Nhc2UidXBkYXRlcy1hdmFpbGFibGUiOnJldHVybiJsdWNpZGU6YWxlcnRDaXJjbGUiO2Nhc2UiZXJyb3IiOnJldHVybiJsdWNpZGU6eENpcmNsZSI7ZGVmYXVsdDpyZXR1cm4ibHVjaWRlOnBhY2thZ2UifX1nZXRQYWNrYWdlU3RhdHVzVGV4dCgpe2lmKHRoaXMuaXNDaGVja2luZ1BhY2thZ2VzKXJldHVybiJDaGVja2luZy4uLiI7c3dpdGNoKHRoaXMucGFja2FnZVN0YXR1cyl7Y2FzZSJ1cC10by1kYXRlIjpyZXR1cm4iVXAgdG8gZGF0ZSI7Y2FzZSJ1cGRhdGVzLWF2YWlsYWJsZSI6cmV0dXJuYCR7dGhpcy5vdXRkYXRlZFBhY2thZ2VzLmxlbmd0aH0gdXBkYXRlJHt0aGlzLm91dGRhdGVkUGFja2FnZXMubGVuZ3RoIT09MT8icyI6IiJ9YDtjYXNlImVycm9yIjpyZXR1cm4iQ2hlY2sgZmFpbGVkIjtkZWZhdWx0OnJldHVybiJQYWNrYWdlcyJ9fWdldFBhY2thZ2VUb29sdGlwKCl7aWYodGhpcy5pc0NoZWNraW5nUGFja2FnZXMpcmV0dXJuIkNoZWNraW5nIGZvciBwYWNrYWdlIHVwZGF0ZXMuLi4iO3N3aXRjaCh0aGlzLnBhY2thZ2VTdGF0dXMpe2Nhc2UidXAtdG8tZGF0ZSI6cmV0dXJuIkFsbCBwYWNrYWdlcyBhcmUgdXAgdG8gZGF0ZSI7Y2FzZSJ1cGRhdGVzLWF2YWlsYWJsZSI6cmV0dXJuYCR7dGhpcy5vdXRkYXRlZFBhY2thZ2VzLmxlbmd0aH0gcGFja2FnZSB1cGRhdGUke3RoaXMub3V0ZGF0ZWRQYWNrYWdlcy5sZW5ndGghPT0xPyJzIjoiIn0gYXZhaWxhYmxlYDtjYXNlImVycm9yIjpyZXR1cm4iRmFpbGVkIHRvIGNoZWNrIGZvciB1cGRhdGVzLiBDbGljayB0byByZXRyeS4iO2RlZmF1bHQ6cmV0dXJuIkNsaWNrIHRvIGNoZWNrIGZvciBwYWNrYWdlIHVwZGF0ZXMifX1hc3luYyByZWZyZXNoUGFja2FnZVN0YXR1cygpe2F3YWl0IHRoaXMuY2hlY2tQYWNrYWdlcygpfWFzeW5jIHJlZnJlc2hTY3JpcHRzKCl7YXdhaXQgdGhpcy5sb2FkU2NyaXB0cygpfXN0YXRpY3tSMihpLHIpfX07cmV0dXJuIE89aX0pKCl9KTt2YXIgWGIsbzVlPXAoKCk9PntYYj1jbGFzc3tsb2FkZWRMaWJzPW5ldyBTZXQ7bm90Rm91bmRQYWNrYWdlcz1uZXcgU2V0O21vbmFjb0luc3RhbmNlPW51bGw7ZXhlY3V0aW9uRW52aXJvbm1lbnQ9bnVsbDtmaWxlQ2FjaGU9bmV3IE1hcDthZGRlZEV4dHJhTGlicz1uZXcgTWFwO2dldCB0c0FwaSgpe3JldHVybiB0aGlzLm1vbmFjb0luc3RhbmNlP3RoaXMubW9uYWNvSW5zdGFuY2UubGFuZ3VhZ2VzLnR5cGVzY3JpcHQ6bnVsbH1hc3luYyBpbml0KHQscil7dGhpcy5tb25hY29JbnN0YW5jZT10LHRoaXMuZXhlY3V0aW9uRW52aXJvbm1lbnQ9cix0aGlzLmNvbmZpZ3VyZUNvbXBpbGVyT3B0aW9ucygpLGF3YWl0IHRoaXMubG9hZEFsbFByb2plY3RGaWxlcygpfWFzeW5jIGxvYWRBbGxQcm9qZWN0RmlsZXMoKXt0aGlzLmV4ZWN1dGlvbkVudmlyb25tZW50JiZhd2FpdCB0aGlzLmxvYWRGaWxlc0Zyb21EaXJlY3RvcnkoIi8iKX1hc3luYyBsb2FkRmlsZXNGcm9tRGlyZWN0b3J5KHQpe2lmKHRoaXMuZXhlY3V0aW9uRW52aXJvbm1lbnQpdHJ5e2xldCByPWF3YWl0IHRoaXMuZXhlY3V0aW9uRW52aXJvbm1lbnQucmVhZERpcih0KTtmb3IobGV0IGkgb2Ygcil7bGV0IGE9dD09PSIvIj9gLyR7aS5uYW1lfWA6YCR7dH0vJHtpLm5hbWV9YDtpZihpLm5hbWUhPT0ibm9kZV9tb2R1bGVzIil7aWYoaS50eXBlPT09ImRpcmVjdG9yeSIpYXdhaXQgdGhpcy5sb2FkRmlsZXNGcm9tRGlyZWN0b3J5KGEpO2Vsc2UgaWYoaS50eXBlPT09ImZpbGUiKXtsZXQgbj1pLm5hbWUuc3BsaXQoIi4iKS5wb3AoKT8udG9Mb3dlckNhc2UoKTtpZihuPT09InRzInx8bj09PSJ0c3gifHxuPT09ImpzInx8bj09PSJqc3giKXRyeXtsZXQgbz1hd2FpdCB0aGlzLmV4ZWN1dGlvbkVudmlyb25tZW50LnJlYWRGaWxlKGEpO3RoaXMuYWRkRmlsZU1vZGVsKGEsbyl9Y2F0Y2h7fX19fX1jYXRjaHt9fWNvbmZpZ3VyZUNvbXBpbGVyT3B0aW9ucygpe2xldCB0PXRoaXMudHNBcGk7dCYmKHQudHlwZXNjcmlwdERlZmF1bHRzLnNldENvbXBpbGVyT3B0aW9ucyh7dGFyZ2V0OnQuU2NyaXB0VGFyZ2V0LkVTMjAyMCxtb2R1bGU6dC5Nb2R1bGVLaW5kLkVTTmV4dCxtb2R1bGVSZXNvbHV0aW9uOnQuTW9kdWxlUmVzb2x1dGlvbktpbmQuQnVuZGxlcj8/dC5Nb2R1bGVSZXNvbHV0aW9uS2luZC5Ob2RlSnMsYWxsb3dTeW50aGV0aWNEZWZhdWx0SW1wb3J0czohMCxlc01vZHVsZUludGVyb3A6ITAsc3RyaWN0OiEwLG5vRW1pdDohMCxhbGxvd0pzOiEwLGNoZWNrSnM6ITEsYWxsb3dOb25Uc0V4dGVuc2lvbnM6ITAsbGliOlsiZXMyMDIwIiwiZG9tIiwiZG9tLml0ZXJhYmxlIl0sYmFzZVVybDoiLyIsYWxsb3dJbXBvcnRpbmdUc0V4dGVuc2lvbnM6ITAscmVzb2x2ZUpzb25Nb2R1bGU6ITB9KSx0LnR5cGVzY3JpcHREZWZhdWx0cy5zZXREaWFnbm9zdGljc09wdGlvbnMoe25vU2VtYW50aWNWYWxpZGF0aW9uOiExLG5vU3ludGF4VmFsaWRhdGlvbjohMX0pLHQudHlwZXNjcmlwdERlZmF1bHRzLnNldEVhZ2VyTW9kZWxTeW5jKCEwKSl9cGFyc2VJbXBvcnRzKHQpe2xldCByPVtdLGk9L2ltcG9ydFxzKyg/Oltcdyp7fVxzLF0rZnJvbVxzKyk/WyciXShbXiciXSspWyciXS9nLGE7Zm9yKDsoYT1pLmV4ZWModCkpIT09bnVsbDspe2xldCBvPWFbMV07aWYoIW8uc3RhcnRzV2l0aCgiLiIpJiYhby5zdGFydHNXaXRoKCIvIikpe2xldCBzPW8uc3RhcnRzV2l0aCgiQCIpP28uc3BsaXQoIi8iKS5zbGljZSgwLDIpLmpvaW4oIi8iKTpvLnNwbGl0KCIvIilbMF07ci5wdXNoKHMpfX1sZXQgbj0vcmVxdWlyZVxzKlwoXHMqWyciXShbXiciXSspWyciXVxzKlwpL2c7Zm9yKDsoYT1uLmV4ZWModCkpIT09bnVsbDspe2xldCBvPWFbMV07aWYoIW8uc3RhcnRzV2l0aCgiLiIpJiYhby5zdGFydHNXaXRoKCIvIikpe2xldCBzPW8uc3RhcnRzV2l0aCgiQCIpP28uc3BsaXQoIi8iKS5zbGljZSgwLDIpLmpvaW4oIi8iKTpvLnNwbGl0KCIvIilbMF07ci5wdXNoKHMpfX1yZXR1cm5bLi4ubmV3IFNldChyKV19YXN5bmMgbG9hZFR5cGVzRm9yUGFja2FnZSh0KXtpZighKCF0aGlzLm1vbmFjb0luc3RhbmNlfHwhdGhpcy5leGVjdXRpb25FbnZpcm9ubWVudCkmJiF0aGlzLmxvYWRlZExpYnMuaGFzKHQpJiYhdGhpcy5ub3RGb3VuZFBhY2thZ2VzLmhhcyh0KSl0cnl7bGV0IHI9YXdhaXQgdGhpcy50cnlMb2FkUGFja2FnZVR5cGVzKHQpO3J8fChyPWF3YWl0IHRoaXMudHJ5TG9hZEF0VHlwZXNQYWNrYWdlKHQpKSxyP3RoaXMubG9hZGVkTGlicy5hZGQodCk6dGhpcy5ub3RGb3VuZFBhY2thZ2VzLmFkZCh0KX1jYXRjaChyKXtjb25zb2xlLndhcm4oYEZhaWxlZCB0byBsb2FkIHR5cGVzIGZvciAke3R9OmAscil9fWFzeW5jIHRyeUxvYWRQYWNrYWdlVHlwZXModCl7bGV0IHI9dGhpcy50c0FwaTtpZighdGhpcy5leGVjdXRpb25FbnZpcm9ubWVudHx8IXIpcmV0dXJuITE7bGV0IGk9YC9ub2RlX21vZHVsZXMvJHt0fWA7dHJ5e2xldCBhPWAke2l9L3BhY2thZ2UuanNvbmA7aWYoYXdhaXQgdGhpcy5leGVjdXRpb25FbnZpcm9ubWVudC5leGlzdHMoYSkpe2xldCBzPWF3YWl0IHRoaXMuZXhlY3V0aW9uRW52aXJvbm1lbnQucmVhZEZpbGUoYSksbD1KU09OLnBhcnNlKHMpO2lmKHIudHlwZXNjcmlwdERlZmF1bHRzLmFkZEV4dHJhTGliKHMsYGZpbGU6Ly8ke2F9YCksbC50eXBlc3x8bC50eXBpbmdzKXJldHVybiBhd2FpdCB0aGlzLmxvYWRBbGxEdHNGaWxlc0Zyb21QYWNrYWdlKGkpLCEwfWxldCBvPVtgJHtpfS9pbmRleC5kLnRzYCxgJHtpfS9kaXN0L2luZGV4LmQudHNgLGAke2l9L2xpYi9pbmRleC5kLnRzYF07Zm9yKGxldCBzIG9mIG8paWYoYXdhaXQgdGhpcy5leGVjdXRpb25FbnZpcm9ubWVudC5leGlzdHMocykpcmV0dXJuIGF3YWl0IHRoaXMubG9hZEFsbER0c0ZpbGVzRnJvbVBhY2thZ2UoaSksITA7cmV0dXJuITF9Y2F0Y2goYSl7cmV0dXJuIGNvbnNvbGUuZXJyb3IoYEZhaWxlZCB0byBsb2FkIHBhY2thZ2UgdHlwZXMgZm9yICR7dH06YCxhKSwhMX19YXN5bmMgbG9hZEFsbER0c0ZpbGVzRnJvbVBhY2thZ2UodCl7bGV0IHI9dGhpcy50c0FwaTshdGhpcy5leGVjdXRpb25FbnZpcm9ubWVudHx8IXJ8fGF3YWl0IHRoaXMubG9hZER0c0ZpbGVzRnJvbURpcmVjdG9yeSh0KX1hc3luYyBsb2FkRHRzRmlsZXNGcm9tRGlyZWN0b3J5KHQpe2xldCByPXRoaXMudHNBcGk7aWYoISghdGhpcy5leGVjdXRpb25FbnZpcm9ubWVudHx8IXIpKXRyeXtsZXQgaT1hd2FpdCB0aGlzLmV4ZWN1dGlvbkVudmlyb25tZW50LnJlYWREaXIodCk7Zm9yKGxldCBhIG9mIGkpe2xldCBuPXQ9PT0iLyI/YC8ke2EubmFtZX1gOmAke3R9LyR7YS5uYW1lfWA7aWYoYS5uYW1lIT09Im5vZGVfbW9kdWxlcyIpe2lmKGEudHlwZT09PSJkaXJlY3RvcnkiKWF3YWl0IHRoaXMubG9hZER0c0ZpbGVzRnJvbURpcmVjdG9yeShuKTtlbHNlIGlmKGEudHlwZT09PSJmaWxlIiYmYS5uYW1lLmVuZHNXaXRoKCIuZC50cyIpKXRyeXtsZXQgbz1hd2FpdCB0aGlzLmV4ZWN1dGlvbkVudmlyb25tZW50LnJlYWRGaWxlKG4pO3IudHlwZXNjcmlwdERlZmF1bHRzLmFkZEV4dHJhTGliKG8sYGZpbGU6Ly8ke259YCl9Y2F0Y2h7fX19fWNhdGNoe319YXN5bmMgdHJ5TG9hZEF0VHlwZXNQYWNrYWdlKHQpe2lmKCF0aGlzLmV4ZWN1dGlvbkVudmlyb25tZW50KXJldHVybiExO2xldCBpPWAvbm9kZV9tb2R1bGVzLyR7dC5zdGFydHNXaXRoKCJAIik/YEB0eXBlcy8ke3Quc2xpY2UoMSkucmVwbGFjZSgiLyIsIl9fIil9YDpgQHR5cGVzLyR7dH1gfWA7dHJ5e2xldCBhPWAke2l9L2luZGV4LmQudHNgO3JldHVybiBhd2FpdCB0aGlzLmV4ZWN1dGlvbkVudmlyb25tZW50LmV4aXN0cyhhKT8oYXdhaXQgdGhpcy5sb2FkQWxsRHRzRmlsZXNGcm9tUGFja2FnZShpKSwhMCk6ITF9Y2F0Y2h7cmV0dXJuITF9fWFzeW5jIHByb2Nlc3NDb250ZW50Q2hhbmdlKHQpe2xldCByPXRoaXMucGFyc2VJbXBvcnRzKHQpO2ZvcihsZXQgaSBvZiByKXRoaXMubG9hZGVkTGlicy5oYXMoaSl8fGF3YWl0IHRoaXMubG9hZFR5cGVzRm9yUGFja2FnZShpKX1hc3luYyBzY2FuQW5kTG9hZE5ld1BhY2thZ2VUeXBlcygpe2lmKHRoaXMuZXhlY3V0aW9uRW52aXJvbm1lbnQpe3RoaXMubm90Rm91bmRQYWNrYWdlcy5jbGVhcigpO3RyeXtpZighYXdhaXQgdGhpcy5leGVjdXRpb25FbnZpcm9ubWVudC5leGlzdHMoIi9ub2RlX21vZHVsZXMiKSlyZXR1cm47bGV0IHQ9YXdhaXQgdGhpcy5leGVjdXRpb25FbnZpcm9ubWVudC5yZWFkRGlyKCIvbm9kZV9tb2R1bGVzIik7Zm9yKGxldCByIG9mIHQpaWYoci50eXBlPT09ImRpcmVjdG9yeSIpaWYoci5uYW1lLnN0YXJ0c1dpdGgoIkAiKSl0cnl7bGV0IGk9YC9ub2RlX21vZHVsZXMvJHtyLm5hbWV9YCxhPWF3YWl0IHRoaXMuZXhlY3V0aW9uRW52aXJvbm1lbnQucmVhZERpcihpKTtmb3IobGV0IG4gb2YgYSlpZihuLnR5cGU9PT0iZGlyZWN0b3J5Iil7bGV0IG89YCR7ci5uYW1lfS8ke24ubmFtZX1gO2F3YWl0IHRoaXMubG9hZFR5cGVzRm9yUGFja2FnZShvKX19Y2F0Y2h7fWVsc2Ugci5uYW1lLnN0YXJ0c1dpdGgoIi4iKXx8YXdhaXQgdGhpcy5sb2FkVHlwZXNGb3JQYWNrYWdlKHIubmFtZSl9Y2F0Y2godCl7Y29uc29sZS53YXJuKCJGYWlsZWQgdG8gc2NhbiBub2RlX21vZHVsZXM6Iix0KX19fWFkZEZpbGVNb2RlbCh0LHIpe2lmKCF0aGlzLm1vbmFjb0luc3RhbmNlKXJldHVybjt0aGlzLmZpbGVDYWNoZS5zZXQodCxyKTtsZXQgaT10aGlzLm1vbmFjb0luc3RhbmNlLlVyaS5wYXJzZShgZmlsZTovLyR7dH1gKSxhPXRoaXMubW9uYWNvSW5zdGFuY2UuZWRpdG9yLmdldE1vZGVsKGkpO2lmKGEpYS5nZXRWYWx1ZSgpIT09ciYmYS5zZXRWYWx1ZShyKTtlbHNle2xldCBuPXRoaXMuZ2V0TGFuZ3VhZ2VGcm9tUGF0aCh0KTt0aGlzLm1vbmFjb0luc3RhbmNlLmVkaXRvci5jcmVhdGVNb2RlbChyLG4saSl9dGhpcy5hZGRGaWxlQXNFeHRyYUxpYih0LHIpfWFkZEZpbGVBc0V4dHJhTGliKHQscil7bGV0IGk9dGhpcy50c0FwaTtpZighaSlyZXR1cm47bGV0IGE9dGhpcy5hZGRlZEV4dHJhTGlicy5nZXQodCk7YSYmYS5kaXNwb3NlKCk7bGV0IG49YGZpbGU6Ly8ke3R9YCxvPWkudHlwZXNjcmlwdERlZmF1bHRzLmFkZEV4dHJhTGliKHIsbik7aWYodGhpcy5hZGRlZEV4dHJhTGlicy5zZXQodCxvKSx0LmVuZHNXaXRoKCIudHMiKSYmIXQuZW5kc1dpdGgoIi5kLnRzIikpe2xldCBzPXQucmVwbGFjZSgvXC50cyQvLCIuanMiKSxsPWBmaWxlOi8vJHtzfWAsYz1pLnR5cGVzY3JpcHREZWZhdWx0cy5hZGRFeHRyYUxpYihyLGwpO3RoaXMuYWRkZWRFeHRyYUxpYnMuc2V0KHMsYyksdGhpcy5maWxlQ2FjaGUuc2V0KHMscil9ZWxzZSBpZih0LmVuZHNXaXRoKCIudHN4Iikpe2xldCBzPXQucmVwbGFjZSgvXC50c3gkLywiLmpzeCIpLGw9YGZpbGU6Ly8ke3N9YCxjPWkudHlwZXNjcmlwdERlZmF1bHRzLmFkZEV4dHJhTGliKHIsbCk7dGhpcy5hZGRlZEV4dHJhTGlicy5zZXQocyxjKSx0aGlzLmZpbGVDYWNoZS5zZXQocyxyKX19Z2V0RmlsZUNvbnRlbnQodCl7cmV0dXJuIHRoaXMuZmlsZUNhY2hlLmdldCh0KX1nZXRMYW5ndWFnZUZyb21QYXRoKHQpe3N3aXRjaCh0LnNwbGl0KCIuIikucG9wKCk/LnRvTG93ZXJDYXNlKCkpe2Nhc2UidHMiOmNhc2UidHN4IjpyZXR1cm4idHlwZXNjcmlwdCI7Y2FzZSJqcyI6Y2FzZSJqc3giOnJldHVybiJqYXZhc2NyaXB0IjtjYXNlImpzb24iOnJldHVybiJqc29uIjtkZWZhdWx0OnJldHVybiJwbGFpbnRleHQifX19fSk7dmFyIGE1LGlvLEdkcixzNWU9cCgoKT0+e3hlKCk7S3QoKTtkNmUoKTtKZSgpO0k0KCk7YTU9ZnVuY3Rpb24oZSx0LHIsaSxhLG4pe2Z1bmN0aW9uIG8oeSl7aWYoeSE9PXZvaWQgMCYmdHlwZW9mIHkhPSJmdW5jdGlvbiIpdGhyb3cgbmV3IFR5cGVFcnJvcigiRnVuY3Rpb24gZXhwZWN0ZWQiKTtyZXR1cm4geX1mb3IodmFyIHM9aS5raW5kLGw9cz09PSJnZXR0ZXIiPyJnZXQiOnM9PT0ic2V0dGVyIj8ic2V0IjoidmFsdWUiLGM9IXQmJmU/aS5zdGF0aWM/ZTplLnByb3RvdHlwZTpudWxsLHU9dHx8KGM/T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihjLGkubmFtZSk6e30pLGQsaD0hMSxmPXIubGVuZ3RoLTE7Zj49MDtmLS0pe3ZhciB4PXt9O2Zvcih2YXIgdiBpbiBpKXhbdl09dj09PSJhY2Nlc3MiP3t9Omlbdl07Zm9yKHZhciB2IGluIGkuYWNjZXNzKXguYWNjZXNzW3ZdPWkuYWNjZXNzW3ZdO3guYWRkSW5pdGlhbGl6ZXI9ZnVuY3Rpb24oeSl7aWYoaCl0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgYWRkIGluaXRpYWxpemVycyBhZnRlciBkZWNvcmF0aW9uIGhhcyBjb21wbGV0ZWQiKTtuLnB1c2gobyh5fHxudWxsKSl9O3ZhciBiPSgwLHJbZl0pKHM9PT0iYWNjZXNzb3IiP3tnZXQ6dS5nZXQsc2V0OnUuc2V0fTp1W2xdLHgpO2lmKHM9PT0iYWNjZXNzb3IiKXtpZihiPT09dm9pZCAwKWNvbnRpbnVlO2lmKGI9PT1udWxsfHx0eXBlb2YgYiE9Im9iamVjdCIpdGhyb3cgbmV3IFR5cGVFcnJvcigiT2JqZWN0IGV4cGVjdGVkIik7KGQ9byhiLmdldCkpJiYodS5nZXQ9ZCksKGQ9byhiLnNldCkpJiYodS5zZXQ9ZCksKGQ9byhiLmluaXQpKSYmYS51bnNoaWZ0KGQpfWVsc2UoZD1vKGIpKSYmKHM9PT0iZmllbGQiP2EudW5zaGlmdChkKTp1W2xdPWQpfWMmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShjLGkubmFtZSx1KSxoPSEwfSxpbz1mdW5jdGlvbihlLHQscil7Zm9yKHZhciBpPWFyZ3VtZW50cy5sZW5ndGg+MixhPTA7YTx0Lmxlbmd0aDthKyspcj1pP3RbYV0uY2FsbChlLHIpOnRbYV0uY2FsbChlKTtyZXR1cm4gaT9yOnZvaWQgMH0sR2RyPSgoKT0+e2xldCBlPVt5ZSgiZGVlcy13b3Jrc3BhY2UtZGlmZi1lZGl0b3IiKV0sdCxyPVtdLGksYT16ZSxuLG89W10scz1bXSxsLGM9W10sdT1bXSxkLGg9W10sZj1bXSx4LHY9W10sYj1bXSx5LHc9W10saz1bXSxPLHo9W10sTT1bXTt2YXIgRj1jbGFzcyBleHRlbmRzIGF7c3RhdGlje2k9dGhpc31zdGF0aWN7bGV0IEQ9dHlwZW9mIFN5bWJvbD09ImZ1bmN0aW9uIiYmU3ltYm9sLm1ldGFkYXRhP09iamVjdC5jcmVhdGUoYVtTeW1ib2wubWV0YWRhdGFdPz9udWxsKTp2b2lkIDA7bj1baih7dHlwZTpTdHJpbmd9KV0sbD1baih7dHlwZTpTdHJpbmd9KV0sZD1baih7dHlwZTpTdHJpbmd9KV0seD1baih7dHlwZTpTdHJpbmd9KV0seT1baih7dHlwZTpTdHJpbmd9KV0sTz1baih7dHlwZTpTdHJpbmd9KV0sYTUodGhpcyxudWxsLG4se2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJvcmlnaW5hbENvbnRlbnQiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOk49PiJvcmlnaW5hbENvbnRlbnQiaW4gTixnZXQ6Tj0+Ti5vcmlnaW5hbENvbnRlbnQsc2V0OihOLFIpPT57Ti5vcmlnaW5hbENvbnRlbnQ9Un19LG1ldGFkYXRhOkR9LG8scyksYTUodGhpcyxudWxsLGwse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJtb2RpZmllZENvbnRlbnQiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOk49PiJtb2RpZmllZENvbnRlbnQiaW4gTixnZXQ6Tj0+Ti5tb2RpZmllZENvbnRlbnQsc2V0OihOLFIpPT57Ti5tb2RpZmllZENvbnRlbnQ9Un19LG1ldGFkYXRhOkR9LGMsdSksYTUodGhpcyxudWxsLGQse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJvcmlnaW5hbExhYmVsIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpOPT4ib3JpZ2luYWxMYWJlbCJpbiBOLGdldDpOPT5OLm9yaWdpbmFsTGFiZWwsc2V0OihOLFIpPT57Ti5vcmlnaW5hbExhYmVsPVJ9fSxtZXRhZGF0YTpEfSxoLGYpLGE1KHRoaXMsbnVsbCx4LHtraW5kOiJhY2Nlc3NvciIsbmFtZToibW9kaWZpZWRMYWJlbCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6Tj0+Im1vZGlmaWVkTGFiZWwiaW4gTixnZXQ6Tj0+Ti5tb2RpZmllZExhYmVsLHNldDooTixSKT0+e04ubW9kaWZpZWRMYWJlbD1SfX0sbWV0YWRhdGE6RH0sdixiKSxhNSh0aGlzLG51bGwseSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6Imxhbmd1YWdlIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpOPT4ibGFuZ3VhZ2UiaW4gTixnZXQ6Tj0+Ti5sYW5ndWFnZSxzZXQ6KE4sUik9PntOLmxhbmd1YWdlPVJ9fSxtZXRhZGF0YTpEfSx3LGspLGE1KHRoaXMsbnVsbCxPLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiZmlsZVBhdGgiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOk49PiJmaWxlUGF0aCJpbiBOLGdldDpOPT5OLmZpbGVQYXRoLHNldDooTixSKT0+e04uZmlsZVBhdGg9Un19LG1ldGFkYXRhOkR9LHosTSksYTUobnVsbCx0PXt2YWx1ZTppfSxlLHtraW5kOiJjbGFzcyIsbmFtZTppLm5hbWUsbWV0YWRhdGE6RH0sbnVsbCxyKSxGPWk9dC52YWx1ZSxEJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoaSxTeW1ib2wubWV0YWRhdGEse2VudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwLHZhbHVlOkR9KX1zdGF0aWMgZGVtbz0oKT0+Q2AKICAgIDxkZWVzLXdvcmtzcGFjZS1kaWZmLWVkaXRvcgogICAgICAub3JpZ2luYWxDb250ZW50PSR7YGZ1bmN0aW9uIGhlbGxvKCkgewogIGNvbnNvbGUubG9nKCJIZWxsbyIpOwp9YH0KICAgICAgLm1vZGlmaWVkQ29udGVudD0ke2BmdW5jdGlvbiBoZWxsbygpIHsKICBjb25zb2xlLmxvZygiSGVsbG8gV29ybGQhIik7CiAgcmV0dXJuIHRydWU7Cn1gfQogICAgICAubGFuZ3VhZ2U9JHsidHlwZXNjcmlwdCJ9CiAgICAgIC5maWxlUGF0aD0keyIvZGVtby9leGFtcGxlLnRzIn0KICAgID48L2RlZXMtd29ya3NwYWNlLWRpZmYtZWRpdG9yPgogIGA7c3RhdGljIGRlbW9Hcm91cHM9WyJXb3Jrc3BhY2UiXTtkaWZmRWRpdG9yRGVmZXJyZWQ9anQuc21hcnRwcm9taXNlLmRlZmVyKCk7I2U9aW8odGhpcyxvLCIiKTtnZXQgb3JpZ2luYWxDb250ZW50KCl7cmV0dXJuIHRoaXMuI2V9c2V0IG9yaWdpbmFsQ29udGVudChEKXt0aGlzLiNlPUR9I3Q9KGlvKHRoaXMscyksaW8odGhpcyxjLCIiKSk7Z2V0IG1vZGlmaWVkQ29udGVudCgpe3JldHVybiB0aGlzLiN0fXNldCBtb2RpZmllZENvbnRlbnQoRCl7dGhpcy4jdD1EfSNyPShpbyh0aGlzLHUpLGlvKHRoaXMsaCwiRGlzayBWZXJzaW9uIikpO2dldCBvcmlnaW5hbExhYmVsKCl7cmV0dXJuIHRoaXMuI3J9c2V0IG9yaWdpbmFsTGFiZWwoRCl7dGhpcy4jcj1EfSNpPShpbyh0aGlzLGYpLGlvKHRoaXMsdiwiTG9jYWwgVmVyc2lvbiIpKTtnZXQgbW9kaWZpZWRMYWJlbCgpe3JldHVybiB0aGlzLiNpfXNldCBtb2RpZmllZExhYmVsKEQpe3RoaXMuI2k9RH0jYT0oaW8odGhpcyxiKSxpbyh0aGlzLHcsInR5cGVzY3JpcHQiKSk7Z2V0IGxhbmd1YWdlKCl7cmV0dXJuIHRoaXMuI2F9c2V0IGxhbmd1YWdlKEQpe3RoaXMuI2E9RH0jbj0oaW8odGhpcyxrKSxpbyh0aGlzLHosIiIpKTtnZXQgZmlsZVBhdGgoKXtyZXR1cm4gdGhpcy4jbn1zZXQgZmlsZVBhdGgoRCl7dGhpcy4jbj1EfWRpZmZFZGl0b3I9KGlvKHRoaXMsTSksbnVsbCk7bW9uYWNvVGhlbWVTdWJzY3JpcHRpb249bnVsbDtvcmlnaW5hbE1vZGVsPW51bGw7bW9kaWZpZWRNb2RlbD1udWxsO2NvbnN0cnVjdG9yKCl7c3VwZXIoKSxEYS5zZXR1cERvbVRvb2xzKCl9c3RhdGljIHN0eWxlcz1bRGUsbS5kZWZhdWx0U3R5bGVzLG9lYAogICAgICA6aG9zdCB7CiAgICAgICAgZGlzcGxheTogYmxvY2s7CiAgICAgICAgcG9zaXRpb246IGFic29sdXRlOwogICAgICAgIHRvcDogMDsKICAgICAgICBsZWZ0OiAwOwogICAgICAgIHJpZ2h0OiAwOwogICAgICAgIGJvdHRvbTogMDsKICAgICAgfQoKICAgICAgKiB7CiAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDsKICAgICAgfQoKICAgICAgLmRpZmYtd3JhcHBlciB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICAgIGhlaWdodDogMTAwJTsKICAgICAgICB3aWR0aDogMTAwJTsKICAgICAgfQoKICAgICAgLmRpZmYtdG9vbGJhciB7CiAgICAgICAgaGVpZ2h0OiA0OHB4OwogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47CiAgICAgICAgcGFkZGluZzogMCAxNnB4OwogICAgICAgIGJhY2tncm91bmQ6ICR7bS5iZFRoZW1lKCJoc2woMCAwJSA5NiUpIiwiaHNsKDAgMCUgMTIlKSIpfTsKICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHttLmJkVGhlbWUoImhzbCgwIDAlIDg1JSkiLCJoc2woMCAwJSAyMCUpIil9OwogICAgICAgIGZsZXgtc2hyaW5rOiAwOwogICAgICB9CgogICAgICAuZGlmZi1pbmZvIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgZ2FwOiAxMnB4OwogICAgICAgIGZvbnQtc2l6ZTogMTRweDsKICAgICAgICBjb2xvcjogJHttLmJkVGhlbWUoImhzbCgwIDAlIDMwJSkiLCJoc2woMCAwJSA4MCUpIil9OwogICAgICB9CgogICAgICAuZGlmZi1maWxlbmFtZSB7CiAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDsKICAgICAgICBjb2xvcjogJHttLmJkVGhlbWUoImhzbCgwIDAlIDIwJSkiLCJoc2woMCAwJSA5MCUpIil9OwogICAgICB9CgogICAgICAuZGlmZi1sYWJlbHMgewogICAgICAgIGZvbnQtc2l6ZTogMTJweDsKICAgICAgICBjb2xvcjogJHttLmJkVGhlbWUoImhzbCgwIDAlIDUwJSkiLCJoc2woMCAwJSA2MCUpIil9OwogICAgICB9CgogICAgICAuZGlmZi1hY3Rpb25zIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgZ2FwOiA4cHg7CiAgICAgIH0KCiAgICAgIC5kaWZmLWNvbnRhaW5lciB7CiAgICAgICAgZmxleDogMTsKICAgICAgICBtaW4taGVpZ2h0OiAwOwogICAgICAgIHdpZHRoOiAxMDAlOwogICAgICB9CgogICAgICAubmF2LWJ1dHRvbnMgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgZ2FwOiA0cHg7CiAgICAgIH0KCiAgICAgIC5hY3Rpb24tYnV0dG9ucyB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBnYXA6IDhweDsKICAgICAgICBtYXJnaW4tbGVmdDogMTZweDsKICAgICAgfQogICAgYF07cmVuZGVyKCl7bGV0IEQ9dGhpcy5maWxlUGF0aC5zcGxpdCgiLyIpLnBvcCgpfHwiZmlsZSI7cmV0dXJuIENgCiAgICAgIDxkaXYgY2xhc3M9ImRpZmYtd3JhcHBlciI+CiAgICAgICAgPGRpdiBjbGFzcz0iZGlmZi10b29sYmFyIj4KICAgICAgICAgIDxkaXYgY2xhc3M9ImRpZmYtaW5mbyI+CiAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJkaWZmLWZpbGVuYW1lIj4ke0R9PC9zcGFuPgogICAgICAgICAgICA8c3BhbiBjbGFzcz0iZGlmZi1sYWJlbHMiPiR7dGhpcy5vcmlnaW5hbExhYmVsfSDihpQgJHt0aGlzLm1vZGlmaWVkTGFiZWx9PC9zcGFuPgogICAgICAgICAgPC9kaXY+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJkaWZmLWFjdGlvbnMiPgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJuYXYtYnV0dG9ucyI+CiAgICAgICAgICAgICAgPGRlZXMtYnV0dG9uCiAgICAgICAgICAgICAgICB0eXBlPSJvdXRsaW5lIgogICAgICAgICAgICAgICAgQGNsaWNrPSR7dGhpcy5nb1RvUHJldmlvdXNEaWZmfQogICAgICAgICAgICAgID5QcmV2aW91czwvZGVlcy1idXR0b24+CiAgICAgICAgICAgICAgPGRlZXMtYnV0dG9uCiAgICAgICAgICAgICAgICB0eXBlPSJvdXRsaW5lIgogICAgICAgICAgICAgICAgQGNsaWNrPSR7dGhpcy5nb1RvTmV4dERpZmZ9CiAgICAgICAgICAgICAgPk5leHQ8L2RlZXMtYnV0dG9uPgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0iYWN0aW9uLWJ1dHRvbnMiPgogICAgICAgICAgICAgIDxkZWVzLWJ1dHRvbgogICAgICAgICAgICAgICAgdHlwZT0iaGlnaGxpZ2h0ZWQiCiAgICAgICAgICAgICAgICBAY2xpY2s9JHt0aGlzLmFjY2VwdExvY2FsfQogICAgICAgICAgICAgID5Vc2UgTG9jYWw8L2RlZXMtYnV0dG9uPgogICAgICAgICAgICAgIDxkZWVzLWJ1dHRvbgogICAgICAgICAgICAgICAgdHlwZT0ib3V0bGluZSIKICAgICAgICAgICAgICAgIEBjbGljaz0ke3RoaXMuYWNjZXB0RGlza30KICAgICAgICAgICAgICA+VXNlIERpc2s8L2RlZXMtYnV0dG9uPgogICAgICAgICAgICAgIDxkZWVzLWJ1dHRvbgogICAgICAgICAgICAgICAgdHlwZT0ib3V0bGluZSIKICAgICAgICAgICAgICAgIEBjbGljaz0ke3RoaXMuY2xvc2V9CiAgICAgICAgICAgICAgPkNsb3NlPC9kZWVzLWJ1dHRvbj4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICA8L2Rpdj4KICAgICAgICA8ZGl2IGNsYXNzPSJkaWZmLWNvbnRhaW5lciI+PC9kaXY+CiAgICAgIDwvZGl2PgogICAgYH1hc3luYyBmaXJzdFVwZGF0ZWQoKXthd2FpdCBzdXBlci5maXJzdFVwZGF0ZWQobmV3IE1hcCksYXdhaXQgdGhpcy5pbml0RGlmZkVkaXRvcigpfWFzeW5jIGluaXREaWZmRWRpdG9yKCl7bGV0IEQ9dGhpcy5zaGFkb3dSb290Py5xdWVyeVNlbGVjdG9yKCIuZGlmZi1jb250YWluZXIiKTtpZighRClyZXR1cm47bGV0IE49YGh0dHBzOi8vY2RuLmpzZGVsaXZyLm5ldC9ucG0vbW9uYWNvLWVkaXRvckAke19OfWAsUj13aW5kb3cubW9uYWNvO1J8fChhd2FpdCBuZXcgUHJvbWlzZShHPT57bGV0IGVlPXNldEludGVydmFsKCgpPT57d2luZG93Lm1vbmFjbyYmKGNsZWFySW50ZXJ2YWwoZWUpLEcoKSl9LDEwMCl9KSxSPXdpbmRvdy5tb25hY28pO2xldCBfPWF3YWl0IHRoaXMuZG9tdG9vbHNQcm9taXNlLCQ9Xy50aGVtZU1hbmFnZXIuZ29CcmlnaHRCb29sZWFuPyJ2cyI6InZzLWRhcmsiLFQ9RGF0ZS5ub3coKSxFPVIuVXJpLnBhcnNlKGBkaWZmOi8vb3JpZ2luYWwvJHtUfSR7dGhpcy5maWxlUGF0aH1gKSxxPVIuVXJpLnBhcnNlKGBkaWZmOi8vbW9kaWZpZWQvJHtUfSR7dGhpcy5maWxlUGF0aH1gKTt0aGlzLm9yaWdpbmFsTW9kZWw9Ui5lZGl0b3IuY3JlYXRlTW9kZWwodGhpcy5vcmlnaW5hbENvbnRlbnQsdGhpcy5sYW5ndWFnZSxFKSx0aGlzLm1vZGlmaWVkTW9kZWw9Ui5lZGl0b3IuY3JlYXRlTW9kZWwodGhpcy5tb2RpZmllZENvbnRlbnQsdGhpcy5sYW5ndWFnZSxxKSx0aGlzLmRpZmZFZGl0b3I9Ui5lZGl0b3IuY3JlYXRlRGlmZkVkaXRvcihELHthdXRvbWF0aWNMYXlvdXQ6ITAscmVhZE9ubHk6ITEsb3JpZ2luYWxFZGl0YWJsZTohMSxyZW5kZXJTaWRlQnlTaWRlOiEwLGlnbm9yZVRyaW1XaGl0ZXNwYWNlOiExLGZvbnRTaXplOjE0LG1pbmltYXA6e2VuYWJsZWQ6ITF9fSksUi5lZGl0b3Iuc2V0VGhlbWUoJCksdGhpcy5kaWZmRWRpdG9yLnNldE1vZGVsKHtvcmlnaW5hbDp0aGlzLm9yaWdpbmFsTW9kZWwsbW9kaWZpZWQ6dGhpcy5tb2RpZmllZE1vZGVsfSksdGhpcy5tb25hY29UaGVtZVN1YnNjcmlwdGlvbj1fLnRoZW1lTWFuYWdlci50aGVtZU9ic2VydmFibGUuc3Vic2NyaWJlKEc9PntsZXQgZWU9Rz8idnMiOiJ2cy1kYXJrIjtSLmVkaXRvci5zZXRUaGVtZShlZSl9KTtsZXQgQj0ibW9uYWNvLWRpZmYtZWRpdG9yLWNzcyI7aWYoIXRoaXMuc2hhZG93Um9vdD8uZ2V0RWxlbWVudEJ5SWQoQikpe2xldCBlZT1hd2FpdChhd2FpdCBmZXRjaChgJHtOfS9taW4vdnMvZWRpdG9yL2VkaXRvci5tYWluLmNzc2ApKS50ZXh0KCksUD1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJzdHlsZSIpO1AuaWQ9QixQLnRleHRDb250ZW50PWVlLHRoaXMuc2hhZG93Um9vdD8uYXBwZW5kKFApfXNldFRpbWVvdXQoKCk9Pnt0cnl7dGhpcy5kaWZmRWRpdG9yPy5yZXZlYWxGaXJzdERpZmYoKX1jYXRjaHt9fSwxMDApLHRoaXMuZGlmZkVkaXRvckRlZmVycmVkLnJlc29sdmUodGhpcy5kaWZmRWRpdG9yKX1nb1RvTmV4dERpZmYoKXt0cnl7dGhpcy5kaWZmRWRpdG9yPy5nb1RvRGlmZigibmV4dCIpfWNhdGNoe319Z29Ub1ByZXZpb3VzRGlmZigpe3RyeXt0aGlzLmRpZmZFZGl0b3I/LmdvVG9EaWZmKCJwcmV2aW91cyIpfWNhdGNoe319YWNjZXB0TG9jYWwoKXtsZXQgRD10aGlzLmRpZmZFZGl0b3I/LmdldE1vZGlmaWVkRWRpdG9yKCkuZ2V0VmFsdWUoKXx8dGhpcy5tb2RpZmllZENvbnRlbnQ7dGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBDdXN0b21FdmVudCgiZGlmZi1yZXNvbHZlZCIse2RldGFpbDp7YWN0aW9uOiJ1c2UtbG9jYWwiLGNvbnRlbnQ6RH0sYnViYmxlczohMCxjb21wb3NlZDohMH0pKX1hY2NlcHREaXNrKCl7dGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBDdXN0b21FdmVudCgiZGlmZi1yZXNvbHZlZCIse2RldGFpbDp7YWN0aW9uOiJ1c2UtZGlzayIsY29udGVudDp0aGlzLm9yaWdpbmFsQ29udGVudH0sYnViYmxlczohMCxjb21wb3NlZDohMH0pKX1jbG9zZSgpe3RoaXMuZGlzcGF0Y2hFdmVudChuZXcgQ3VzdG9tRXZlbnQoImRpZmYtY2xvc2VkIix7YnViYmxlczohMCxjb21wb3NlZDohMH0pKX1hc3luYyBkaXNjb25uZWN0ZWRDYWxsYmFjaygpe2F3YWl0IHN1cGVyLmRpc2Nvbm5lY3RlZENhbGxiYWNrKCksdGhpcy5tb25hY29UaGVtZVN1YnNjcmlwdGlvbiYmKHRoaXMubW9uYWNvVGhlbWVTdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKSx0aGlzLm1vbmFjb1RoZW1lU3Vic2NyaXB0aW9uPW51bGwpLHRoaXMub3JpZ2luYWxNb2RlbCYmKHRoaXMub3JpZ2luYWxNb2RlbC5kaXNwb3NlKCksdGhpcy5vcmlnaW5hbE1vZGVsPW51bGwpLHRoaXMubW9kaWZpZWRNb2RlbCYmKHRoaXMubW9kaWZpZWRNb2RlbC5kaXNwb3NlKCksdGhpcy5tb2RpZmllZE1vZGVsPW51bGwpLHRoaXMuZGlmZkVkaXRvciYmKHRoaXMuZGlmZkVkaXRvci5kaXNwb3NlKCksdGhpcy5kaWZmRWRpdG9yPW51bGwpfXN0YXRpY3tpbyhpLHIpfX07cmV0dXJuIEY9aX0pKCl9KTt2YXIgUzEsQXQsWWRyLFpkcj1wKCgpPT57eGUoKTtLdCgpO0plKCk7eUYoKTtOZCgpO01GKCk7TUYoKTtXYigpO1diKCk7YTVlKCk7bjVlKCk7b3IoKTtOZCgpO281ZSgpO01pKCk7cDEoKTtRTigpO3M1ZSgpO1MxPWZ1bmN0aW9uKGUsdCxyLGksYSxuKXtmdW5jdGlvbiBvKHkpe2lmKHkhPT12b2lkIDAmJnR5cGVvZiB5IT0iZnVuY3Rpb24iKXRocm93IG5ldyBUeXBlRXJyb3IoIkZ1bmN0aW9uIGV4cGVjdGVkIik7cmV0dXJuIHl9Zm9yKHZhciBzPWkua2luZCxsPXM9PT0iZ2V0dGVyIj8iZ2V0IjpzPT09InNldHRlciI/InNldCI6InZhbHVlIixjPSF0JiZlP2kuc3RhdGljP2U6ZS5wcm90b3R5cGU6bnVsbCx1PXR8fChjP09iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoYyxpLm5hbWUpOnt9KSxkLGg9ITEsZj1yLmxlbmd0aC0xO2Y+PTA7Zi0tKXt2YXIgeD17fTtmb3IodmFyIHYgaW4gaSl4W3ZdPXY9PT0iYWNjZXNzIj97fTppW3ZdO2Zvcih2YXIgdiBpbiBpLmFjY2Vzcyl4LmFjY2Vzc1t2XT1pLmFjY2Vzc1t2XTt4LmFkZEluaXRpYWxpemVyPWZ1bmN0aW9uKHkpe2lmKGgpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGFkZCBpbml0aWFsaXplcnMgYWZ0ZXIgZGVjb3JhdGlvbiBoYXMgY29tcGxldGVkIik7bi5wdXNoKG8oeXx8bnVsbCkpfTt2YXIgYj0oMCxyW2ZdKShzPT09ImFjY2Vzc29yIj97Z2V0OnUuZ2V0LHNldDp1LnNldH06dVtsXSx4KTtpZihzPT09ImFjY2Vzc29yIil7aWYoYj09PXZvaWQgMCljb250aW51ZTtpZihiPT09bnVsbHx8dHlwZW9mIGIhPSJvYmplY3QiKXRocm93IG5ldyBUeXBlRXJyb3IoIk9iamVjdCBleHBlY3RlZCIpOyhkPW8oYi5nZXQpKSYmKHUuZ2V0PWQpLChkPW8oYi5zZXQpKSYmKHUuc2V0PWQpLChkPW8oYi5pbml0KSkmJmEudW5zaGlmdChkKX1lbHNlKGQ9byhiKSkmJihzPT09ImZpZWxkIj9hLnVuc2hpZnQoZCk6dVtsXT1kKX1jJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoYyxpLm5hbWUsdSksaD0hMH0sQXQ9ZnVuY3Rpb24oZSx0LHIpe2Zvcih2YXIgaT1hcmd1bWVudHMubGVuZ3RoPjIsYT0wO2E8dC5sZW5ndGg7YSsrKXI9aT90W2FdLmNhbGwoZSxyKTp0W2FdLmNhbGwoZSk7cmV0dXJuIGk/cjp2b2lkIDB9LFlkcj0oKCk9PntsZXQgZT1beWUoImRlZXMtd29ya3NwYWNlIildLHQscj1bXSxpLGE9emUsbixvPVtdLHM9W10sbCxjPVtdLHU9W10sZCxoPVtdLGY9W10seCx2PVtdLGI9W10seSx3PVtdLGs9W10sTyx6PVtdLE09W10sRixEPVtdLE49W10sUixfPVtdLFM9W10sJCxUPVtdLEU9W10scSxCPVtdLEc9W10sZWUsUD1bXSxnZT1bXSx3ZSxJPVtdLG5lPVtdLGtlLFk9W10sQT1bXSxMLFU9W10sVj1bXSxYLGRlPVtdLHZlPVtdLExlLFc9W10sSD1bXSx0ZSxiZT1bXSx1ZT1bXSxDZSxoZT1bXSxpZT1bXSxTZSxJZT1bXSxaZT1bXSxLLFo9W10sSj1bXSxtZSxFZT1bXSxVZT1bXSxNdCxpdD1bXSxMdD1bXTt2YXIgV3Q9Y2xhc3MgZXh0ZW5kcyBhe3N0YXRpY3tpPXRoaXN9c3RhdGlje2xldCBhZT10eXBlb2YgU3ltYm9sPT0iZnVuY3Rpb24iJiZTeW1ib2wubWV0YWRhdGE/T2JqZWN0LmNyZWF0ZShhW1N5bWJvbC5tZXRhZGF0YV0/P251bGwpOnZvaWQgMDtuPVtqKHt0eXBlOk9iamVjdH0pXSxsPVtqKHthdHRyaWJ1dGU6ITF9KV0sZD1baih7dHlwZTpCb29sZWFufSldLHg9W2ooe3R5cGU6Qm9vbGVhbn0pXSx5PVtqKHt0eXBlOk51bWJlcn0pXSxPPVtqKHt0eXBlOk51bWJlcn0pXSxGPVtmZSgpXSxSPVtmZSgpXSwkPVtmZSgpXSxxPVtmZSgpXSxlZT1bZmUoKV0sd2U9W2ZlKCldLGtlPVtmZSgpXSxMPVtmZSgpXSxYPVtmZSgpXSxMZT1bZmUoKV0sdGU9W2ZlKCldLENlPVtmZSgpXSxTZT1bZmUoKV0sSz1bZmUoKV0sbWU9W2ZlKCldLE10PVtmZSgpXSxTMSh0aGlzLG51bGwsbix7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImV4ZWN1dGlvbkVudmlyb25tZW50IixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpzZT0+ImV4ZWN1dGlvbkVudmlyb25tZW50ImluIHNlLGdldDpzZT0+c2UuZXhlY3V0aW9uRW52aXJvbm1lbnQsc2V0OihzZSxfZSk9PntzZS5leGVjdXRpb25FbnZpcm9ubWVudD1fZX19LG1ldGFkYXRhOmFlfSxvLHMpLFMxKHRoaXMsbnVsbCxsLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiaW5pdGlhbGl6YXRpb25Qcm9taXNlIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpzZT0+ImluaXRpYWxpemF0aW9uUHJvbWlzZSJpbiBzZSxnZXQ6c2U9PnNlLmluaXRpYWxpemF0aW9uUHJvbWlzZSxzZXQ6KHNlLF9lKT0+e3NlLmluaXRpYWxpemF0aW9uUHJvbWlzZT1fZX19LG1ldGFkYXRhOmFlfSxjLHUpLFMxKHRoaXMsbnVsbCxkLHtraW5kOiJhY2Nlc3NvciIsbmFtZToic2hvd0ZpbGVUcmVlIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpzZT0+InNob3dGaWxlVHJlZSJpbiBzZSxnZXQ6c2U9PnNlLnNob3dGaWxlVHJlZSxzZXQ6KHNlLF9lKT0+e3NlLnNob3dGaWxlVHJlZT1fZX19LG1ldGFkYXRhOmFlfSxoLGYpLFMxKHRoaXMsbnVsbCx4LHtraW5kOiJhY2Nlc3NvciIsbmFtZToic2hvd1Rlcm1pbmFsIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpzZT0+InNob3dUZXJtaW5hbCJpbiBzZSxnZXQ6c2U9PnNlLnNob3dUZXJtaW5hbCxzZXQ6KHNlLF9lKT0+e3NlLnNob3dUZXJtaW5hbD1fZX19LG1ldGFkYXRhOmFlfSx2LGIpLFMxKHRoaXMsbnVsbCx5LHtraW5kOiJhY2Nlc3NvciIsbmFtZToiZmlsZVRyZWVXaWR0aCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6c2U9PiJmaWxlVHJlZVdpZHRoImluIHNlLGdldDpzZT0+c2UuZmlsZVRyZWVXaWR0aCxzZXQ6KHNlLF9lKT0+e3NlLmZpbGVUcmVlV2lkdGg9X2V9fSxtZXRhZGF0YTphZX0sdyxrKSxTMSh0aGlzLG51bGwsTyx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InRlcm1pbmFsSGVpZ2h0IixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpzZT0+InRlcm1pbmFsSGVpZ2h0ImluIHNlLGdldDpzZT0+c2UudGVybWluYWxIZWlnaHQsc2V0OihzZSxfZSk9PntzZS50ZXJtaW5hbEhlaWdodD1fZX19LG1ldGFkYXRhOmFlfSx6LE0pLFMxKHRoaXMsbnVsbCxGLHtraW5kOiJhY2Nlc3NvciIsbmFtZToib3BlbkZpbGVzIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpzZT0+Im9wZW5GaWxlcyJpbiBzZSxnZXQ6c2U9PnNlLm9wZW5GaWxlcyxzZXQ6KHNlLF9lKT0+e3NlLm9wZW5GaWxlcz1fZX19LG1ldGFkYXRhOmFlfSxELE4pLFMxKHRoaXMsbnVsbCxSLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiYWN0aXZlRmlsZVBhdGgiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOnNlPT4iYWN0aXZlRmlsZVBhdGgiaW4gc2UsZ2V0OnNlPT5zZS5hY3RpdmVGaWxlUGF0aCxzZXQ6KHNlLF9lKT0+e3NlLmFjdGl2ZUZpbGVQYXRoPV9lfX0sbWV0YWRhdGE6YWV9LF8sUyksUzEodGhpcyxudWxsLCQse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJpc1Rlcm1pbmFsQ29sbGFwc2VkIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpzZT0+ImlzVGVybWluYWxDb2xsYXBzZWQiaW4gc2UsZ2V0OnNlPT5zZS5pc1Rlcm1pbmFsQ29sbGFwc2VkLHNldDooc2UsX2UpPT57c2UuaXNUZXJtaW5hbENvbGxhcHNlZD1fZX19LG1ldGFkYXRhOmFlfSxULEUpLFMxKHRoaXMsbnVsbCxxLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiaXNGaWxlVHJlZUNvbGxhcHNlZCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6c2U9PiJpc0ZpbGVUcmVlQ29sbGFwc2VkImluIHNlLGdldDpzZT0+c2UuaXNGaWxlVHJlZUNvbGxhcHNlZCxzZXQ6KHNlLF9lKT0+e3NlLmlzRmlsZVRyZWVDb2xsYXBzZWQ9X2V9fSxtZXRhZGF0YTphZX0sQixHKSxTMSh0aGlzLG51bGwsZWUse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJpc0luaXRpYWxpemluZyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6c2U9PiJpc0luaXRpYWxpemluZyJpbiBzZSxnZXQ6c2U9PnNlLmlzSW5pdGlhbGl6aW5nLHNldDooc2UsX2UpPT57c2UuaXNJbml0aWFsaXppbmc9X2V9fSxtZXRhZGF0YTphZX0sUCxnZSksUzEodGhpcyxudWxsLHdlLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiYWN0aXZlQm90dG9tUGFuZWwiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOnNlPT4iYWN0aXZlQm90dG9tUGFuZWwiaW4gc2UsZ2V0OnNlPT5zZS5hY3RpdmVCb3R0b21QYW5lbCxzZXQ6KHNlLF9lKT0+e3NlLmFjdGl2ZUJvdHRvbVBhbmVsPV9lfX0sbWV0YWRhdGE6YWV9LEksbmUpLFMxKHRoaXMsbnVsbCxrZSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImRpYWdub3N0aWNNYXJrZXJzIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpzZT0+ImRpYWdub3N0aWNNYXJrZXJzImluIHNlLGdldDpzZT0+c2UuZGlhZ25vc3RpY01hcmtlcnMsc2V0OihzZSxfZSk9PntzZS5kaWFnbm9zdGljTWFya2Vycz1fZX19LG1ldGFkYXRhOmFlfSxZLEEpLFMxKHRoaXMsbnVsbCxMLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiYXV0b1NhdmUiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOnNlPT4iYXV0b1NhdmUiaW4gc2UsZ2V0OnNlPT5zZS5hdXRvU2F2ZSxzZXQ6KHNlLF9lKT0+e3NlLmF1dG9TYXZlPV9lfX0sbWV0YWRhdGE6YWV9LFUsViksUzEodGhpcyxudWxsLFgse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJpbml0Q29tbWFuZCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6c2U9PiJpbml0Q29tbWFuZCJpbiBzZSxnZXQ6c2U9PnNlLmluaXRDb21tYW5kLHNldDooc2UsX2UpPT57c2UuaW5pdENvbW1hbmQ9X2V9fSxtZXRhZGF0YTphZX0sZGUsdmUpLFMxKHRoaXMsbnVsbCxMZSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImluaXRPdXRwdXQiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOnNlPT4iaW5pdE91dHB1dCJpbiBzZSxnZXQ6c2U9PnNlLmluaXRPdXRwdXQsc2V0OihzZSxfZSk9PntzZS5pbml0T3V0cHV0PV9lfX0sbWV0YWRhdGE6YWV9LFcsSCksUzEodGhpcyxudWxsLHRlLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiY3VycmVudEZpbGVUcmVlV2lkdGgiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOnNlPT4iY3VycmVudEZpbGVUcmVlV2lkdGgiaW4gc2UsZ2V0OnNlPT5zZS5jdXJyZW50RmlsZVRyZWVXaWR0aCxzZXQ6KHNlLF9lKT0+e3NlLmN1cnJlbnRGaWxlVHJlZVdpZHRoPV9lfX0sbWV0YWRhdGE6YWV9LGJlLHVlKSxTMSh0aGlzLG51bGwsQ2Use2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJjdXJyZW50VGVybWluYWxIZWlnaHQiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOnNlPT4iY3VycmVudFRlcm1pbmFsSGVpZ2h0ImluIHNlLGdldDpzZT0+c2UuY3VycmVudFRlcm1pbmFsSGVpZ2h0LHNldDooc2UsX2UpPT57c2UuY3VycmVudFRlcm1pbmFsSGVpZ2h0PV9lfX0sbWV0YWRhdGE6YWV9LGhlLGllKSxTMSh0aGlzLG51bGwsU2Use2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJpc0RyYWdnaW5nRmlsZVRyZWUiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOnNlPT4iaXNEcmFnZ2luZ0ZpbGVUcmVlImluIHNlLGdldDpzZT0+c2UuaXNEcmFnZ2luZ0ZpbGVUcmVlLHNldDooc2UsX2UpPT57c2UuaXNEcmFnZ2luZ0ZpbGVUcmVlPV9lfX0sbWV0YWRhdGE6YWV9LEllLFplKSxTMSh0aGlzLG51bGwsSyx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImlzRHJhZ2dpbmdUZXJtaW5hbCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6c2U9PiJpc0RyYWdnaW5nVGVybWluYWwiaW4gc2UsZ2V0OnNlPT5zZS5pc0RyYWdnaW5nVGVybWluYWwsc2V0OihzZSxfZSk9PntzZS5pc0RyYWdnaW5nVGVybWluYWw9X2V9fSxtZXRhZGF0YTphZX0sWixKKSxTMSh0aGlzLG51bGwsbWUse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJzaG93RGlmZlZpZXciLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOnNlPT4ic2hvd0RpZmZWaWV3ImluIHNlLGdldDpzZT0+c2Uuc2hvd0RpZmZWaWV3LHNldDooc2UsX2UpPT57c2Uuc2hvd0RpZmZWaWV3PV9lfX0sbWV0YWRhdGE6YWV9LEVlLFVlKSxTMSh0aGlzLG51bGwsTXQse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJkaWZmVmlld0NvbmZpZyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6c2U9PiJkaWZmVmlld0NvbmZpZyJpbiBzZSxnZXQ6c2U9PnNlLmRpZmZWaWV3Q29uZmlnLHNldDooc2UsX2UpPT57c2UuZGlmZlZpZXdDb25maWc9X2V9fSxtZXRhZGF0YTphZX0saXQsTHQpLFMxKG51bGwsdD17dmFsdWU6aX0sZSx7a2luZDoiY2xhc3MiLG5hbWU6aS5uYW1lLG1ldGFkYXRhOmFlfSxudWxsLHIpLFd0PWk9dC52YWx1ZSxhZSYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGksU3ltYm9sLm1ldGFkYXRhLHtlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMCx2YWx1ZTphZX0pfXN0YXRpYyBkZW1vPSgpPT57bGV0IGFlPW5ldyByNSxzZT0oYXN5bmMoKT0+e2F3YWl0IGFlLmluaXQoKTtsZXQgU3Q9eyJwYWNrYWdlLmpzb24iOntmaWxlOntjb250ZW50czpKU09OLnN0cmluZ2lmeSh7bmFtZToiZGVtby1wcm9qZWN0Iix2ZXJzaW9uOiIxLjAuMCIsdHlwZToibW9kdWxlIixzY3JpcHRzOntidWlsZDoidHNjIixkZXY6InRzYyAtLXdhdGNoIn0sZGVwZW5kZW5jaWVzOnsiQHB1c2gucm9ja3Mvc21hcnRwcm9taXNlIjoiXjQuMi4zIn0sZGV2RGVwZW5kZW5jaWVzOnsiQHR5cGVzL25vZGUiOiJeMjIuMC4wIix0eXBlc2NyaXB0OiJeNS4wLjAifX0sbnVsbCwyKX19LCJucG1leHRyYS5qc29uIjp7ZmlsZTp7Y29udGVudHM6SlNPTi5zdHJpbmdpZnkoe2RlZXNFZGl0b3JXb3Jrc3BhY2U6e29uSW5pdDoicG5wbSBpbnN0YWxsIn19LG51bGwsMil9fSwidHNjb25maWcuanNvbiI6e2ZpbGU6e2NvbnRlbnRzOkpTT04uc3RyaW5naWZ5KHtjb21waWxlck9wdGlvbnM6e3RhcmdldDoiRVMyMDIyIixtb2R1bGU6Ik5vZGVOZXh0Iixtb2R1bGVSZXNvbHV0aW9uOiJOb2RlTmV4dCIsc3RyaWN0OiEwLG91dERpcjoiLi9kaXN0Iixyb290RGlyOiIuL3NyYyIsZGVjbGFyYXRpb246ITB9LGluY2x1ZGU6WyJzcmMvKiovKiJdfSxudWxsLDIpfX0sc3JjOntkaXJlY3Rvcnk6eyJpbmRleC50cyI6e2ZpbGU6e2NvbnRlbnRzOmAvLyBNYWluIGVudHJ5IHBvaW50CmltcG9ydCB7IGdyZWV0LCBmb3JtYXROYW1lIH0gZnJvbSAnLi91dGlscy5qcyc7Cgpjb25zdCBuYW1lID0gZm9ybWF0TmFtZSgnV29ybGQnKTsKY29uc29sZS5sb2coZ3JlZXQobmFtZSkpOwoKLy8gRXhhbXBsZSBhc3luYyBmdW5jdGlvbgphc3luYyBmdW5jdGlvbiBtYWluKCkgewogIGNvbnN0IHJlc3VsdCA9IGF3YWl0IFByb21pc2UucmVzb2x2ZSgnSGVsbG8gZnJvbSBhc3luYyEnKTsKICBjb25zb2xlLmxvZyhyZXN1bHQpOwp9CgptYWluKCk7CmB9fSwidXRpbHMudHMiOntmaWxlOntjb250ZW50czpgLy8gVXRpbGl0eSBmdW5jdGlvbnMKCmV4cG9ydCBpbnRlcmZhY2UgSVVzZXIgewogIGZpcnN0TmFtZTogc3RyaW5nOwogIGxhc3ROYW1lOiBzdHJpbmc7Cn0KCmV4cG9ydCBmdW5jdGlvbiBncmVldChuYW1lOiBzdHJpbmcpOiBzdHJpbmcgewogIHJldHVybiBcYEhlbGxvLCBcJHtuYW1lfSFcYDsKfQoKZXhwb3J0IGZ1bmN0aW9uIGZvcm1hdE5hbWUobmFtZTogc3RyaW5nKTogc3RyaW5nIHsKICByZXR1cm4gbmFtZS50cmltKCkudG9VcHBlckNhc2UoKTsKfQoKZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZVVzZXIoZmlyc3ROYW1lOiBzdHJpbmcsIGxhc3ROYW1lOiBzdHJpbmcpOiBJVXNlciB7CiAgcmV0dXJuIHsgZmlyc3ROYW1lLCBsYXN0TmFtZSB9Owp9CmB9fSwiaW1wb3J0dGVzdC50cyI6e2ZpbGU6e2NvbnRlbnRzOmAvLyBUZXN0IG5wbSBwYWNrYWdlIGltcG9ydHMKaW1wb3J0ICogYXMgc21hcnRwcm9taXNlIGZyb20gJ0BwdXNoLnJvY2tzL3NtYXJ0cHJvbWlzZSc7CgovLyBUaGlzIHNob3VsZCBoYXZlIEludGVsbGlTZW5zZSBzaG93aW5nIGRlZmVyKCkgbWV0aG9kCmNvbnN0IGRlZmVycmVkID0gc21hcnRwcm9taXNlLmRlZmVyPHN0cmluZz4oKTsKCi8vIFRlc3QgdXNpbmcgdGhlIGRlZmVycmVkIHByb21pc2UKYXN5bmMgZnVuY3Rpb24gdGVzdFNtYXJ0UHJvbWlzZSgpIHsKICBzZXRUaW1lb3V0KCgpID0+IHsKICAgIGRlZmVycmVkLnJlc29sdmUoJ0hlbGxvIGZyb20gc21hcnRwcm9taXNlIScpOwogIH0sIDEwMCk7CgogIGNvbnN0IHJlc3VsdCA9IGF3YWl0IGRlZmVycmVkLnByb21pc2U7CiAgY29uc29sZS5sb2cocmVzdWx0KTsKfQoKdGVzdFNtYXJ0UHJvbWlzZSgpOwpgfX19fX07YXdhaXQgYWUubW91bnQoU3QpfSkoKSxfZT1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTtfZS5zdHlsZS5jc3NUZXh0PSJwb3NpdGlvbjogYWJzb2x1dGU7IHRvcDogMDsgbGVmdDogMDsgaGVpZ2h0OiAxMDAlOyB3aWR0aDogMTAwJTsgb3ZlcmZsb3c6IGhpZGRlbjsiO2xldCB2dD1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkZWVzLXdvcmtzcGFjZSIpO3JldHVybiB2dC5leGVjdXRpb25FbnZpcm9ubWVudD1hZSx2dC5pbml0aWFsaXphdGlvblByb21pc2U9c2UsX2UuYXBwZW5kQ2hpbGQodnQpLENgCiAgICAgIDxkZWVzLWRlbW93cmFwcGVyPgogICAgICAgICR7X2V9CiAgICAgIDwvZGVlcy1kZW1vd3JhcHBlcj4KICAgIGB9O3N0YXRpYyBkZW1vR3JvdXBzPVsiV29ya3NwYWNlIl07I2U9QXQodGhpcyxvLG51bGwpO2dldCBleGVjdXRpb25FbnZpcm9ubWVudCgpe3JldHVybiB0aGlzLiNlfXNldCBleGVjdXRpb25FbnZpcm9ubWVudChhZSl7dGhpcy4jZT1hZX0jdD0oQXQodGhpcyxzKSxBdCh0aGlzLGMsbnVsbCkpO2dldCBpbml0aWFsaXphdGlvblByb21pc2UoKXtyZXR1cm4gdGhpcy4jdH1zZXQgaW5pdGlhbGl6YXRpb25Qcm9taXNlKGFlKXt0aGlzLiN0PWFlfSNyPShBdCh0aGlzLHUpLEF0KHRoaXMsaCwhMCkpO2dldCBzaG93RmlsZVRyZWUoKXtyZXR1cm4gdGhpcy4jcn1zZXQgc2hvd0ZpbGVUcmVlKGFlKXt0aGlzLiNyPWFlfSNpPShBdCh0aGlzLGYpLEF0KHRoaXMsdiwhMCkpO2dldCBzaG93VGVybWluYWwoKXtyZXR1cm4gdGhpcy4jaX1zZXQgc2hvd1Rlcm1pbmFsKGFlKXt0aGlzLiNpPWFlfSNhPShBdCh0aGlzLGIpLEF0KHRoaXMsdywyNTApKTtnZXQgZmlsZVRyZWVXaWR0aCgpe3JldHVybiB0aGlzLiNhfXNldCBmaWxlVHJlZVdpZHRoKGFlKXt0aGlzLiNhPWFlfSNuPShBdCh0aGlzLGspLEF0KHRoaXMseiwyMDApKTtnZXQgdGVybWluYWxIZWlnaHQoKXtyZXR1cm4gdGhpcy4jbn1zZXQgdGVybWluYWxIZWlnaHQoYWUpe3RoaXMuI249YWV9I289KEF0KHRoaXMsTSksQXQodGhpcyxELFtdKSk7Z2V0IG9wZW5GaWxlcygpe3JldHVybiB0aGlzLiNvfXNldCBvcGVuRmlsZXMoYWUpe3RoaXMuI289YWV9I3M9KEF0KHRoaXMsTiksQXQodGhpcyxfLCIiKSk7Z2V0IGFjdGl2ZUZpbGVQYXRoKCl7cmV0dXJuIHRoaXMuI3N9c2V0IGFjdGl2ZUZpbGVQYXRoKGFlKXt0aGlzLiNzPWFlfSNsPShBdCh0aGlzLFMpLEF0KHRoaXMsVCwhMSkpO2dldCBpc1Rlcm1pbmFsQ29sbGFwc2VkKCl7cmV0dXJuIHRoaXMuI2x9c2V0IGlzVGVybWluYWxDb2xsYXBzZWQoYWUpe3RoaXMuI2w9YWV9I2M9KEF0KHRoaXMsRSksQXQodGhpcyxCLCExKSk7Z2V0IGlzRmlsZVRyZWVDb2xsYXBzZWQoKXtyZXR1cm4gdGhpcy4jY31zZXQgaXNGaWxlVHJlZUNvbGxhcHNlZChhZSl7dGhpcy4jYz1hZX0jZD0oQXQodGhpcyxHKSxBdCh0aGlzLFAsITApKTtnZXQgaXNJbml0aWFsaXppbmcoKXtyZXR1cm4gdGhpcy4jZH1zZXQgaXNJbml0aWFsaXppbmcoYWUpe3RoaXMuI2Q9YWV9I3U9KEF0KHRoaXMsZ2UpLEF0KHRoaXMsSSwidGVybWluYWwiKSk7Z2V0IGFjdGl2ZUJvdHRvbVBhbmVsKCl7cmV0dXJuIHRoaXMuI3V9c2V0IGFjdGl2ZUJvdHRvbVBhbmVsKGFlKXt0aGlzLiN1PWFlfSNwPShBdCh0aGlzLG5lKSxBdCh0aGlzLFksW10pKTtnZXQgZGlhZ25vc3RpY01hcmtlcnMoKXtyZXR1cm4gdGhpcy4jcH1zZXQgZGlhZ25vc3RpY01hcmtlcnMoYWUpe3RoaXMuI3A9YWV9ZWRpdG9yRWxlbWVudD0oQXQodGhpcyxBKSxudWxsKTtpbml0aWFsaXphdGlvblN0YXJ0ZWQ9ITE7aW50ZWxsaVNlbnNlTWFuYWdlcj1udWxsO2ludGVsbGlTZW5zZUluaXRpYWxpemVkPSExO25vZGVNb2R1bGVzV2F0Y2hlcj1udWxsO25vZGVNb2R1bGVzRGVib3VuY2VUaW1lb3V0PW51bGw7aW50ZWxsaVNlbnNlRGVib3VuY2VUaW1lb3V0PW51bGw7b3BlbkZpbGVXYXRjaGVycz1uZXcgTWFwO2ZpbGVDaGFuZ2VEZWJvdW5jZT1uZXcgTWFwO2FjdGlvbmJhckVsZW1lbnQ9bnVsbDsjaD1BdCh0aGlzLFUsITEpO2dldCBhdXRvU2F2ZSgpe3JldHVybiB0aGlzLiNofXNldCBhdXRvU2F2ZShhZSl7dGhpcy4jaD1hZX1hdXRvU2F2ZUludGVydmFsPShBdCh0aGlzLFYpLG51bGwpOyNmPUF0KHRoaXMsZGUsIiIpO2dldCBpbml0Q29tbWFuZCgpe3JldHVybiB0aGlzLiNmfXNldCBpbml0Q29tbWFuZChhZSl7dGhpcy4jZj1hZX0jbT0oQXQodGhpcyx2ZSksQXQodGhpcyxXLFtdKSk7Z2V0IGluaXRPdXRwdXQoKXtyZXR1cm4gdGhpcy4jbX1zZXQgaW5pdE91dHB1dChhZSl7dGhpcy4jbT1hZX0jZz0oQXQodGhpcyxIKSxBdCh0aGlzLGJlLDI1MCkpO2dldCBjdXJyZW50RmlsZVRyZWVXaWR0aCgpe3JldHVybiB0aGlzLiNnfXNldCBjdXJyZW50RmlsZVRyZWVXaWR0aChhZSl7dGhpcy4jZz1hZX0jYj0oQXQodGhpcyx1ZSksQXQodGhpcyxoZSwyMDApKTtnZXQgY3VycmVudFRlcm1pbmFsSGVpZ2h0KCl7cmV0dXJuIHRoaXMuI2J9c2V0IGN1cnJlbnRUZXJtaW5hbEhlaWdodChhZSl7dGhpcy4jYj1hZX0jdj0oQXQodGhpcyxpZSksQXQodGhpcyxJZSwhMSkpO2dldCBpc0RyYWdnaW5nRmlsZVRyZWUoKXtyZXR1cm4gdGhpcy4jdn1zZXQgaXNEcmFnZ2luZ0ZpbGVUcmVlKGFlKXt0aGlzLiN2PWFlfSN4PShBdCh0aGlzLFplKSxBdCh0aGlzLFosITEpKTtnZXQgaXNEcmFnZ2luZ1Rlcm1pbmFsKCl7cmV0dXJuIHRoaXMuI3h9c2V0IGlzRHJhZ2dpbmdUZXJtaW5hbChhZSl7dGhpcy4jeD1hZX0jeT0oQXQodGhpcyxKKSxBdCh0aGlzLEVlLCExKSk7Z2V0IHNob3dEaWZmVmlldygpe3JldHVybiB0aGlzLiN5fXNldCBzaG93RGlmZlZpZXcoYWUpe3RoaXMuI3k9YWV9I3c9KEF0KHRoaXMsVWUpLEF0KHRoaXMsaXQsbnVsbCkpO2dldCBkaWZmVmlld0NvbmZpZygpe3JldHVybiB0aGlzLiN3fXNldCBkaWZmVmlld0NvbmZpZyhhZSl7dGhpcy4jdz1hZX1rZXlkb3duSGFuZGxlcj0oQXQodGhpcyxMdCksYWU9PnsoYWUubWV0YUtleXx8YWUuY3RybEtleSkmJmFlLmtleT09PSJzIiYmIWFlLnNoaWZ0S2V5JiYoYWUucHJldmVudERlZmF1bHQoKSx0aGlzLnNhdmVBY3RpdmVGaWxlKCkpLChhZS5tZXRhS2V5fHxhZS5jdHJsS2V5KSYmYWUuc2hpZnRLZXkmJmFlLmtleS50b0xvd2VyQ2FzZSgpPT09InMiJiYoYWUucHJldmVudERlZmF1bHQoKSx0aGlzLnNhdmVBbGxGaWxlcygpKX0pO2hhbmRsZUZpbGVUcmVlTW91c2VEb3duPWFlPT57YWUucHJldmVudERlZmF1bHQoKSx0aGlzLmlzRHJhZ2dpbmdGaWxlVHJlZT0hMCxkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCJtb3VzZW1vdmUiLHRoaXMuaGFuZGxlRmlsZVRyZWVNb3VzZU1vdmUpLGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoIm1vdXNldXAiLHRoaXMuaGFuZGxlRmlsZVRyZWVNb3VzZVVwKX07aGFuZGxlRmlsZVRyZWVNb3VzZU1vdmU9YWU9PntpZighdGhpcy5pc0RyYWdnaW5nRmlsZVRyZWUpcmV0dXJuO2xldCBzZT10aGlzLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLF9lPWFlLmNsaWVudFgtc2UubGVmdCx2dD0xNTAsU3Q9c2Uud2lkdGgqLjUsWXI9TWF0aC5tYXgodnQsTWF0aC5taW4oU3QsX2UpKTt0aGlzLmN1cnJlbnRGaWxlVHJlZVdpZHRoPVlyfTtoYW5kbGVGaWxlVHJlZU1vdXNlVXA9KCk9Pnt0aGlzLmlzRHJhZ2dpbmdGaWxlVHJlZT0hMSxkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCJtb3VzZW1vdmUiLHRoaXMuaGFuZGxlRmlsZVRyZWVNb3VzZU1vdmUpLGRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoIm1vdXNldXAiLHRoaXMuaGFuZGxlRmlsZVRyZWVNb3VzZVVwKSx3aW5kb3cuZGlzcGF0Y2hFdmVudChuZXcgRXZlbnQoInJlc2l6ZSIpKX07aGFuZGxlVGVybWluYWxNb3VzZURvd249YWU9PnthZS5wcmV2ZW50RGVmYXVsdCgpLHRoaXMuaXNEcmFnZ2luZ1Rlcm1pbmFsPSEwLGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoIm1vdXNlbW92ZSIsdGhpcy5oYW5kbGVUZXJtaW5hbE1vdXNlTW92ZSksZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigibW91c2V1cCIsdGhpcy5oYW5kbGVUZXJtaW5hbE1vdXNlVXApfTtoYW5kbGVUZXJtaW5hbE1vdXNlTW92ZT1hZT0+e2lmKCF0aGlzLmlzRHJhZ2dpbmdUZXJtaW5hbClyZXR1cm47bGV0IHNlPXRoaXMuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCksX2U9YWUuY2xpZW50WS1zZS50b3AsdnQ9c2UuaGVpZ2h0LV9lLFN0PTEwMCxZcj1zZS5oZWlnaHQqLjcsZG49TWF0aC5tYXgoU3QsTWF0aC5taW4oWXIsdnQpKTt0aGlzLmN1cnJlbnRUZXJtaW5hbEhlaWdodD1kbn07aGFuZGxlVGVybWluYWxNb3VzZVVwPSgpPT57dGhpcy5pc0RyYWdnaW5nVGVybWluYWw9ITEsZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcigibW91c2Vtb3ZlIix0aGlzLmhhbmRsZVRlcm1pbmFsTW91c2VNb3ZlKSxkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCJtb3VzZXVwIix0aGlzLmhhbmRsZVRlcm1pbmFsTW91c2VVcCksd2luZG93LmRpc3BhdGNoRXZlbnQobmV3IEV2ZW50KCJyZXNpemUiKSl9O3N0YXRpYyBzdHlsZXM9W0RlLG0uZGVmYXVsdFN0eWxlcyxvZWAKICAgICAgOmhvc3QgewogICAgICAgIGRpc3BsYXk6IGJsb2NrOwogICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgICB0b3A6IDA7CiAgICAgICAgbGVmdDogMDsKICAgICAgICByaWdodDogMDsKICAgICAgICBib3R0b206IDA7CiAgICAgICAgYmFja2dyb3VuZDogJHttLmJkVGhlbWUoImhzbCgwIDAlIDk2JSkiLCJoc2woMCAwJSA3JSkiKX07CiAgICAgICAgZm9udC1mYW1pbHk6IC1hcHBsZS1zeXN0ZW0sIEJsaW5rTWFjU3lzdGVtRm9udCwgJ1NlZ29lIFVJJywgUm9ib3RvLCBzYW5zLXNlcmlmOwogICAgICB9CgogICAgICAud29ya3NwYWNlLW91dGVyIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgICAgaGVpZ2h0OiAxMDAlOwogICAgICAgIHdpZHRoOiAxMDAlOwogICAgICB9CgogICAgICAud29ya3NwYWNlLWNvbnRhaW5lciB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93OwogICAgICAgIGZsZXg6IDE7CiAgICAgICAgbWluLWhlaWdodDogMDsKICAgICAgICB3aWR0aDogMTAwJTsKICAgICAgfQoKICAgICAgLmVkaXRvci1hcmVhIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgICAgZmxleDogMTsKICAgICAgICBtaW4td2lkdGg6IDA7CiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgICAgfQoKICAgICAgLmZpbGV0cmVlLXBhbmVsIHsKICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgICAgICBmbGV4LXNocmluazogMDsKICAgICAgfQoKICAgICAgLmZpbGV0cmVlLXBhbmVsLmNvbGxhcHNlZCB7CiAgICAgICAgd2lkdGg6IDAgIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLmVkaXRvci1wYW5lbCB7CiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgICAgIGJhY2tncm91bmQ6ICR7bS5iZFRoZW1lKCJoc2woMCAwJSAxMDAlKSIsImhzbCgwIDAlIDklKSIpfTsKICAgICAgICBmbGV4OiAxOwogICAgICAgIG1pbi13aWR0aDogMjAwcHg7CiAgICAgIH0KCiAgICAgIC50ZXJtaW5hbC1wYW5lbCB7CiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAke20uYmRUaGVtZSgiaHNsKDAgMCUgODUlKSIsImhzbCgwIDAlIDE1JSkiKX07CiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgICAgICBmbGV4LXNocmluazogMDsKICAgICAgfQoKICAgICAgLnRlcm1pbmFsLXBhbmVsLmNvbGxhcHNlZCB7CiAgICAgICAgaGVpZ2h0OiAzMnB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5wYW5lbC1oZWFkZXIgewogICAgICAgIGhlaWdodDogMzJweDsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuOwogICAgICAgIHBhZGRpbmc6IDAgOHB4OwogICAgICAgIGJhY2tncm91bmQ6ICR7bS5iZFRoZW1lKCJoc2woMCAwJSA5NSUpIiwiaHNsKDAgMCUgOCUpIil9OwogICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAke20uYmRUaGVtZSgiaHNsKDAgMCUgODUlKSIsImhzbCgwIDAlIDE1JSkiKX07CiAgICAgICAgZm9udC1zaXplOiAxMnB4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7CiAgICAgICAgY29sb3I6ICR7bS5iZFRoZW1lKCJoc2woMCAwJSA0MCUpIiwiaHNsKDAgMCUgNjAlKSIpfTsKICAgICAgfQoKICAgICAgLnBhbmVsLWhlYWRlci10aXRsZSB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGdhcDogNnB4OwogICAgICB9CgogICAgICAucGFuZWwtaGVhZGVyLWFjdGlvbnMgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBnYXA6IDRweDsKICAgICAgfQoKICAgICAgLnBhbmVsLWFjdGlvbiB7CiAgICAgICAgd2lkdGg6IDI0cHg7CiAgICAgICAgaGVpZ2h0OiAyNHB4OwogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKICAgICAgICBib3JkZXItcmFkaXVzOiA0cHg7CiAgICAgICAgY3Vyc29yOiBwb2ludGVyOwogICAgICAgIGNvbG9yOiAke20uYmRUaGVtZSgiaHNsKDAgMCUgNTAlKSIsImhzbCgwIDAlIDYwJSkiKX07CiAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuMTVzIGVhc2U7CiAgICAgIH0KCiAgICAgIC5wYW5lbC1hY3Rpb246aG92ZXIgewogICAgICAgIGJhY2tncm91bmQ6ICR7bS5iZFRoZW1lKCJoc2woMCAwJSA4OCUpIiwiaHNsKDAgMCUgMTglKSIpfTsKICAgICAgICBjb2xvcjogJHttLmJkVGhlbWUoImhzbCgwIDAlIDMwJSkiLCJoc2woMCAwJSA4MCUpIil9OwogICAgICB9CgogICAgICAudGFicy1iYXIgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IHN0cmV0Y2g7CiAgICAgICAgaGVpZ2h0OiAzNnB4OwogICAgICAgIGJhY2tncm91bmQ6ICR7bS5iZFRoZW1lKCJoc2woMCAwJSA5NiUpIiwiaHNsKDAgMCUgOCUpIil9OwogICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAke20uYmRUaGVtZSgiaHNsKDAgMCUgODUlKSIsImhzbCgwIDAlIDE1JSkiKX07CiAgICAgICAgb3ZlcmZsb3cteDogYXV0bzsKICAgICAgfQoKICAgICAgLnRhYiB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGdhcDogNnB4OwogICAgICAgIHBhZGRpbmc6IDAgMTJweDsKICAgICAgICBtaW4td2lkdGg6IDEyMHB4OwogICAgICAgIG1heC13aWR0aDogMjAwcHg7CiAgICAgICAgYm9yZGVyLXJpZ2h0OiAxcHggc29saWQgJHttLmJkVGhlbWUoImhzbCgwIDAlIDg4JSkiLCJoc2woMCAwJSAxMiUpIil9OwogICAgICAgIGN1cnNvcjogcG9pbnRlcjsKICAgICAgICBmb250LXNpemU6IDEycHg7CiAgICAgICAgY29sb3I6ICR7bS5iZFRoZW1lKCJoc2woMCAwJSA1MCUpIiwiaHNsKDAgMCUgNjAlKSIpfTsKICAgICAgICBiYWNrZ3JvdW5kOiAke20uYmRUaGVtZSgiaHNsKDAgMCUgOTQlKSIsImhzbCgwIDAlIDEwJSkiKX07CiAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuMTVzIGVhc2U7CiAgICAgIH0KCiAgICAgIC50YWI6aG92ZXIgewogICAgICAgIGJhY2tncm91bmQ6ICR7bS5iZFRoZW1lKCJoc2woMCAwJSA5MiUpIiwiaHNsKDAgMCUgMTIlKSIpfTsKICAgICAgfQoKICAgICAgLnRhYi5hY3RpdmUgewogICAgICAgIGJhY2tncm91bmQ6ICR7bS5iZFRoZW1lKCJoc2woMCAwJSAxMDAlKSIsImhzbCgwIDAlIDklKSIpfTsKICAgICAgICBjb2xvcjogJHttLmJkVGhlbWUoImhzbCgwIDAlIDIwJSkiLCJoc2woMCAwJSA5MCUpIil9OwogICAgICAgIGJvcmRlci1ib3R0b206IDJweCBzb2xpZCAke20uYmRUaGVtZSgiaHNsKDIxMCAxMDAlIDUwJSkiLCJoc2woMjEwIDEwMCUgNjAlKSIpfTsKICAgICAgfQoKICAgICAgLnRhYi1uYW1lIHsKICAgICAgICBmbGV4OiAxOwogICAgICAgIG92ZXJmbG93OiBoaWRkZW47CiAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7CiAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDsKICAgICAgfQoKICAgICAgLnRhYi1jbG9zZSB7CiAgICAgICAgd2lkdGg6IDE2cHg7CiAgICAgICAgaGVpZ2h0OiAxNnB4OwogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKICAgICAgICBib3JkZXItcmFkaXVzOiA0cHg7CiAgICAgICAgb3BhY2l0eTogMDsKICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC4xNXMgZWFzZTsKICAgICAgfQoKICAgICAgLnRhYjpob3ZlciAudGFiLWNsb3NlIHsKICAgICAgICBvcGFjaXR5OiAxOwogICAgICB9CgogICAgICAudGFiLWNsb3NlOmhvdmVyIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke20uYmRUaGVtZSgiaHNsKDAgMCUgODUlKSIsImhzbCgwIDAlIDI1JSkiKX07CiAgICAgIH0KCiAgICAgIC50YWItbW9kaWZpZWQgewogICAgICAgIHdpZHRoOiA4cHg7CiAgICAgICAgaGVpZ2h0OiA4cHg7CiAgICAgICAgYm9yZGVyLXJhZGl1czogNTAlOwogICAgICAgIGJhY2tncm91bmQ6ICR7bS5iZFRoZW1lKCJoc2woMCAwJSA1MCUpIiwiaHNsKDAgMCUgNjAlKSIpfTsKICAgICAgfQoKICAgICAgLnRhYnMtY29udGFpbmVyIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGZsZXg6IDE7CiAgICAgICAgb3ZlcmZsb3cteDogYXV0bzsKICAgICAgfQoKICAgICAgLmVkaXRvci1tZW51LWJ1dHRvbiB7CiAgICAgICAgcGFkZGluZzogNnB4IDhweDsKICAgICAgICBtYXJnaW4tcmlnaHQ6IDRweDsKICAgICAgICBtYXJnaW4tbGVmdDogYXV0bzsKICAgICAgICBib3JkZXItcmFkaXVzOiA0cHg7CiAgICAgICAgY3Vyc29yOiBwb2ludGVyOwogICAgICAgIG9wYWNpdHk6IDAuNjsKICAgICAgICB0cmFuc2l0aW9uOiBvcGFjaXR5IDAuMTVzLCBiYWNrZ3JvdW5kIDAuMTVzOwogICAgICAgIGZsZXgtc2hyaW5rOiAwOwogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKICAgICAgfQoKICAgICAgLmVkaXRvci1tZW51LWJ1dHRvbjpob3ZlciB7CiAgICAgICAgb3BhY2l0eTogMTsKICAgICAgICBiYWNrZ3JvdW5kOiAke20uYmRUaGVtZSgiaHNsKDAgMCUgMCUgLyAwLjA4KSIsImhzbCgwIDAlIDEwMCUgLyAwLjEpIil9OwogICAgICB9CgogICAgICAuZWRpdG9yLWNvbnRlbnQgewogICAgICAgIGZsZXg6IDE7CiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICB9CgogICAgICAudGVybWluYWwtY29udGVudCB7CiAgICAgICAgcG9zaXRpb246IGFic29sdXRlOwogICAgICAgIHRvcDogMzJweDsKICAgICAgICBsZWZ0OiAwOwogICAgICAgIHJpZ2h0OiAwOwogICAgICAgIGJvdHRvbTogMDsKICAgICAgfQoKICAgICAgLnByb2JsZW1zLWNvbnRlbnQgewogICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgICB0b3A6IDMycHg7CiAgICAgICAgbGVmdDogMDsKICAgICAgICByaWdodDogMDsKICAgICAgICBib3R0b206IDA7CiAgICAgICAgb3ZlcmZsb3cteTogYXV0bzsKICAgICAgICBiYWNrZ3JvdW5kOiAke20uYmRUaGVtZSgiaHNsKDAgMCUgMTAwJSkiLCJoc2woMCAwJSA5JSkiKX07CiAgICAgIH0KCiAgICAgIC5wYW5lbC10YWJzIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgZ2FwOiAwOwogICAgICB9CgogICAgICAucGFuZWwtdGFiIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgZ2FwOiA2cHg7CiAgICAgICAgcGFkZGluZzogMCAxMnB4OwogICAgICAgIGhlaWdodDogMzJweDsKICAgICAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICAgICAgZm9udC1zaXplOiAxMnB4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7CiAgICAgICAgY29sb3I6ICR7bS5iZFRoZW1lKCJoc2woMCAwJSA1MCUpIiwiaHNsKDAgMCUgNTUlKSIpfTsKICAgICAgICBib3JkZXItYm90dG9tOiAycHggc29saWQgdHJhbnNwYXJlbnQ7CiAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuMTVzIGVhc2U7CiAgICAgIH0KCiAgICAgIC5wYW5lbC10YWI6aG92ZXIgewogICAgICAgIGNvbG9yOiAke20uYmRUaGVtZSgiaHNsKDAgMCUgMzAlKSIsImhzbCgwIDAlIDc1JSkiKX07CiAgICAgICAgYmFja2dyb3VuZDogJHttLmJkVGhlbWUoImhzbCgwIDAlIDkwJSkiLCJoc2woMCAwJSAxMiUpIil9OwogICAgICB9CgogICAgICAucGFuZWwtdGFiLmFjdGl2ZSB7CiAgICAgICAgY29sb3I6ICR7bS5iZFRoZW1lKCJoc2woMCAwJSAyMCUpIiwiaHNsKDAgMCUgOTAlKSIpfTsKICAgICAgICBib3JkZXItYm90dG9tLWNvbG9yOiAke20uYmRUaGVtZSgiaHNsKDIxMCAxMDAlIDUwJSkiLCJoc2woMjEwIDEwMCUgNjAlKSIpfTsKICAgICAgfQoKICAgICAgLnBhbmVsLXRhYi1iYWRnZSB7CiAgICAgICAgZGlzcGxheTogaW5saW5lLWZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKICAgICAgICBtaW4td2lkdGg6IDE4cHg7CiAgICAgICAgaGVpZ2h0OiAxOHB4OwogICAgICAgIHBhZGRpbmc6IDAgNXB4OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDlweDsKICAgICAgICBmb250LXNpemU6IDExcHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDsKICAgICAgICBiYWNrZ3JvdW5kOiAke20uYmRUaGVtZSgiaHNsKDAgNzAlIDUwJSkiLCJoc2woMCA3MCUgNDUlKSIpfTsKICAgICAgICBjb2xvcjogd2hpdGU7CiAgICAgIH0KCiAgICAgIC5wYW5lbC10YWItYmFkZ2Uud2FybmluZyB7CiAgICAgICAgYmFja2dyb3VuZDogJHttLmJkVGhlbWUoImhzbCg0MCA3MCUgNTAlKSIsImhzbCg0MCA3MCUgNDUlKSIpfTsKICAgICAgfQoKICAgICAgLnBhbmVsLXRhYi1iYWRnZS5ub25lIHsKICAgICAgICBkaXNwbGF5OiBub25lOwogICAgICB9CgogICAgICAucHJvYmxlbXMtbGlzdCB7CiAgICAgICAgcGFkZGluZzogNHB4IDA7CiAgICAgIH0KCiAgICAgIC5wcm9ibGVtLWl0ZW0gewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7CiAgICAgICAgZ2FwOiA4cHg7CiAgICAgICAgcGFkZGluZzogNnB4IDEycHg7CiAgICAgICAgY3Vyc29yOiBwb2ludGVyOwogICAgICAgIGZvbnQtc2l6ZTogMTJweDsKICAgICAgICBsaW5lLWhlaWdodDogMS40OwogICAgICAgIGNvbG9yOiAke20uYmRUaGVtZSgiaHNsKDAgMCUgMzAlKSIsImhzbCgwIDAlIDgwJSkiKX07CiAgICAgICAgdHJhbnNpdGlvbjogYmFja2dyb3VuZCAwLjFzIGVhc2U7CiAgICAgIH0KCiAgICAgIC5wcm9ibGVtLWl0ZW06aG92ZXIgewogICAgICAgIGJhY2tncm91bmQ6ICR7bS5iZFRoZW1lKCJoc2woMCAwJSA5NSUpIiwiaHNsKDAgMCUgMTUlKSIpfTsKICAgICAgfQoKICAgICAgLnByb2JsZW0taWNvbiB7CiAgICAgICAgZmxleC1zaHJpbms6IDA7CiAgICAgICAgbWFyZ2luLXRvcDogMnB4OwogICAgICB9CgogICAgICAucHJvYmxlbS1pY29uLmVycm9yIHsKICAgICAgICBjb2xvcjogJHttLmJkVGhlbWUoImhzbCgwIDcwJSA1MCUpIiwiaHNsKDAgNzAlIDYwJSkiKX07CiAgICAgIH0KCiAgICAgIC5wcm9ibGVtLWljb24ud2FybmluZyB7CiAgICAgICAgY29sb3I6ICR7bS5iZFRoZW1lKCJoc2woNDAgNzAlIDUwJSkiLCJoc2woNDAgNzAlIDYwJSkiKX07CiAgICAgIH0KCiAgICAgIC5wcm9ibGVtLWRldGFpbHMgewogICAgICAgIGZsZXg6IDE7CiAgICAgICAgbWluLXdpZHRoOiAwOwogICAgICB9CgogICAgICAucHJvYmxlbS1tZXNzYWdlIHsKICAgICAgICB3b3JkLWJyZWFrOiBicmVhay13b3JkOwogICAgICB9CgogICAgICAucHJvYmxlbS1sb2NhdGlvbiB7CiAgICAgICAgbWFyZ2luLXRvcDogMnB4OwogICAgICAgIGZvbnQtc2l6ZTogMTFweDsKICAgICAgICBjb2xvcjogJHttLmJkVGhlbWUoImhzbCgwIDAlIDUwJSkiLCJoc2woMCAwJSA1NSUpIil9OwogICAgICB9CgogICAgICAucHJvYmxlbXMtZW1wdHkgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOwogICAgICAgIGhlaWdodDogMTAwJTsKICAgICAgICBjb2xvcjogJHttLmJkVGhlbWUoImhzbCgwIDAlIDU1JSkiLCJoc2woMCAwJSA1MCUpIil9OwogICAgICAgIGZvbnQtc2l6ZTogMTNweDsKICAgICAgICBnYXA6IDhweDsKICAgICAgfQoKICAgICAgLmVtcHR5LXN0YXRlIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKICAgICAgICBoZWlnaHQ6IDEwMCU7CiAgICAgICAgY29sb3I6ICR7bS5iZFRoZW1lKCJoc2woMCAwJSA1MCUpIiwiaHNsKDAgMCUgNTAlKSIpfTsKICAgICAgICBmb250LXNpemU6IDE0cHg7CiAgICAgICAgZ2FwOiA4cHg7CiAgICAgIH0KCiAgICAgIC5lbXB0eS1zdGF0ZSBkZWVzLWljb24gewogICAgICAgIHdpZHRoOiA0OHB4OwogICAgICAgIGhlaWdodDogNDhweDsKICAgICAgICBvcGFjaXR5OiAwLjU7CiAgICAgIH0KCiAgICAgIEBrZXlmcmFtZXMgc3BpbiB7CiAgICAgICAgZnJvbSB7IHRyYW5zZm9ybTogcm90YXRlKDBkZWcpOyB9CiAgICAgICAgdG8geyB0cmFuc2Zvcm06IHJvdGF0ZSgzNjBkZWcpOyB9CiAgICAgIH0KCiAgICAgIC5pbml0aWFsaXppbmcgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOwogICAgICAgIGhlaWdodDogMTAwJTsKICAgICAgICBjb2xvcjogJHttLmJkVGhlbWUoImhzbCgwIDAlIDUwJSkiLCJoc2woMCAwJSA2MCUpIil9OwogICAgICAgIGZvbnQtc2l6ZTogMTRweDsKICAgICAgICBnYXA6IDEycHg7CiAgICAgIH0KCiAgICAgIC5pbml0aWFsaXppbmcgZGVlcy1pY29uIHsKICAgICAgICBhbmltYXRpb246IHNwaW4gMXMgbGluZWFyIGluZmluaXRlOwogICAgICB9CgogICAgICAuaW5pdGlhbGl6aW5nIGRlZXMtd29ya3NwYWNlLXRlcm1pbmFsLXByZXZpZXcgewogICAgICAgIG1hcmdpbi10b3A6IDI0cHg7CiAgICAgICAgd2lkdGg6IDgwJTsKICAgICAgICBtYXgtd2lkdGg6IDYwMHB4OwogICAgICAgIGhlaWdodDogMjAwcHg7CiAgICAgIH0KCiAgICAgIGRlZXMtd29ya3NwYWNlLWZpbGV0cmVlIHsKICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgICAgdG9wOiAwOwogICAgICAgIGxlZnQ6IDA7CiAgICAgICAgcmlnaHQ6IDA7CiAgICAgICAgYm90dG9tOiAwOwogICAgICB9CgogICAgICBkZWVzLXdvcmtzcGFjZS1tb25hY28gewogICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgICB0b3A6IDA7CiAgICAgICAgbGVmdDogMDsKICAgICAgICByaWdodDogMDsKICAgICAgICBib3R0b206IDA7CiAgICAgIH0KCiAgICAgIGRlZXMtd29ya3NwYWNlLXRlcm1pbmFsIHsKICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgICAgdG9wOiAwOwogICAgICAgIGxlZnQ6IDA7CiAgICAgICAgcmlnaHQ6IDA7CiAgICAgICAgYm90dG9tOiAwOwogICAgICB9CgogICAgICAvKiBSZXNpemUgaGFuZGxlcyAqLwogICAgICAucmVzaXplLWhhbmRsZS12ZXJ0aWNhbCB7CiAgICAgICAgd2lkdGg6IDZweDsKICAgICAgICBjdXJzb3I6IGNvbC1yZXNpemU7CiAgICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7CiAgICAgICAgdHJhbnNpdGlvbjogYmFja2dyb3VuZCAwLjE1cyBlYXNlOwogICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgICBmbGV4LXNocmluazogMDsKICAgICAgICB6LWluZGV4OiAxMDsKICAgICAgfQoKICAgICAgLnJlc2l6ZS1oYW5kbGUtdmVydGljYWw6aG92ZXIsCiAgICAgIC5yZXNpemUtaGFuZGxlLXZlcnRpY2FsLmRyYWdnaW5nIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke20uYmRUaGVtZSgiIzNiODJmNiIsIiM1OGE2ZmYiKX07CiAgICAgIH0KCiAgICAgIC5yZXNpemUtaGFuZGxlLXZlcnRpY2FsOjphZnRlciB7CiAgICAgICAgY29udGVudDogJyc7CiAgICAgICAgcG9zaXRpb246IGFic29sdXRlOwogICAgICAgIHRvcDogNTAlOwogICAgICAgIGxlZnQ6IDUwJTsKICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlLCAtNTAlKTsKICAgICAgICB3aWR0aDogMnB4OwogICAgICAgIGhlaWdodDogMzJweDsKICAgICAgICBiYWNrZ3JvdW5kOiAke20uYmRUaGVtZSgiIzljYTNhZiIsIiM2ZTc2ODEiKX07CiAgICAgICAgYm9yZGVyLXJhZGl1czogMXB4OwogICAgICAgIG9wYWNpdHk6IDA7CiAgICAgICAgdHJhbnNpdGlvbjogb3BhY2l0eSAwLjE1cyBlYXNlOwogICAgICB9CgogICAgICAucmVzaXplLWhhbmRsZS12ZXJ0aWNhbDpob3Zlcjo6YWZ0ZXIsCiAgICAgIC5yZXNpemUtaGFuZGxlLXZlcnRpY2FsLmRyYWdnaW5nOjphZnRlciB7CiAgICAgICAgb3BhY2l0eTogMTsKICAgICAgICBiYWNrZ3JvdW5kOiAke20uYmRUaGVtZSgiI2ZmZmZmZiIsIiNmZmZmZmYiKX07CiAgICAgIH0KCiAgICAgIC5yZXNpemUtaGFuZGxlLWhvcml6b250YWwgewogICAgICAgIGhlaWdodDogNnB4OwogICAgICAgIGN1cnNvcjogcm93LXJlc2l6ZTsKICAgICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDsKICAgICAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kIDAuMTVzIGVhc2U7CiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICAgIGZsZXgtc2hyaW5rOiAwOwogICAgICAgIHotaW5kZXg6IDEwOwogICAgICB9CgogICAgICAucmVzaXplLWhhbmRsZS1ob3Jpem9udGFsOmhvdmVyLAogICAgICAucmVzaXplLWhhbmRsZS1ob3Jpem9udGFsLmRyYWdnaW5nIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke20uYmRUaGVtZSgiIzNiODJmNiIsIiM1OGE2ZmYiKX07CiAgICAgIH0KCiAgICAgIC5yZXNpemUtaGFuZGxlLWhvcml6b250YWw6OmFmdGVyIHsKICAgICAgICBjb250ZW50OiAnJzsKICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgICAgdG9wOiA1MCU7CiAgICAgICAgbGVmdDogNTAlOwogICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUsIC01MCUpOwogICAgICAgIHdpZHRoOiAzMnB4OwogICAgICAgIGhlaWdodDogMnB4OwogICAgICAgIGJhY2tncm91bmQ6ICR7bS5iZFRoZW1lKCIjOWNhM2FmIiwiIzZlNzY4MSIpfTsKICAgICAgICBib3JkZXItcmFkaXVzOiAxcHg7CiAgICAgICAgb3BhY2l0eTogMDsKICAgICAgICB0cmFuc2l0aW9uOiBvcGFjaXR5IDAuMTVzIGVhc2U7CiAgICAgIH0KCiAgICAgIC5yZXNpemUtaGFuZGxlLWhvcml6b250YWw6aG92ZXI6OmFmdGVyLAogICAgICAucmVzaXplLWhhbmRsZS1ob3Jpem9udGFsLmRyYWdnaW5nOjphZnRlciB7CiAgICAgICAgb3BhY2l0eTogMTsKICAgICAgICBiYWNrZ3JvdW5kOiAke20uYmRUaGVtZSgiI2ZmZmZmZiIsIiNmZmZmZmYiKX07CiAgICAgIH0KCiAgICAgIC8qIFByZXZlbnQgdGV4dCBzZWxlY3Rpb24gd2hpbGUgZHJhZ2dpbmcgKi8KICAgICAgLndvcmtzcGFjZS1jb250YWluZXIuZHJhZ2dpbmcgewogICAgICAgIHVzZXItc2VsZWN0OiBub25lOwogICAgICB9CgogICAgICAud29ya3NwYWNlLWNvbnRhaW5lci5kcmFnZ2luZyAuZmlsZXRyZWUtcGFuZWwsCiAgICAgIC53b3Jrc3BhY2UtY29udGFpbmVyLmRyYWdnaW5nIC5lZGl0b3ItcGFuZWwsCiAgICAgIC53b3Jrc3BhY2UtY29udGFpbmVyLmRyYWdnaW5nIC50ZXJtaW5hbC1wYW5lbCB7CiAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7CiAgICAgIH0KCiAgICBgXTtyZW5kZXIoKXtsZXQgYWU9WyJ3b3Jrc3BhY2UtY29udGFpbmVyIix0aGlzLmlzRHJhZ2dpbmdGaWxlVHJlZXx8dGhpcy5pc0RyYWdnaW5nVGVybWluYWw/ImRyYWdnaW5nIjoiIl0uZmlsdGVyKEJvb2xlYW4pLmpvaW4oIiAiKTtyZXR1cm4gdGhpcy5pc0luaXRpYWxpemluZz9DYAogICAgICAgIDxkaXYgY2xhc3M9ImluaXRpYWxpemluZyI+CiAgICAgICAgICA8ZGVlcy1pY29uIC5pY29uPSR7Imx1Y2lkZTpsb2FkZXIyIn0gaWNvblNpemU9IjMyIj48L2RlZXMtaWNvbj4KICAgICAgICAgIDxzcGFuPkluaXRpYWxpemluZyB3b3Jrc3BhY2UuLi48L3NwYW4+CiAgICAgICAgICA8ZGVlcy13b3Jrc3BhY2UtdGVybWluYWwtcHJldmlldwogICAgICAgICAgICAuY29tbWFuZD0ke3RoaXMuaW5pdENvbW1hbmR8fCIifQogICAgICAgICAgICAubGluZXM9JHt0aGlzLmluaXRPdXRwdXR9CiAgICAgICAgICA+PC9kZWVzLXdvcmtzcGFjZS10ZXJtaW5hbC1wcmV2aWV3PgogICAgICAgIDwvZGl2PgogICAgICBgOkNgCiAgICAgIDxkaXYgY2xhc3M9IndvcmtzcGFjZS1vdXRlciI+CiAgICAgICAgPGRpdiBjbGFzcz0iJHthZX0iPgogICAgICAgICAgPCEtLSBGaWxldHJlZSBwYW5lbCAoZnVsbCBoZWlnaHQpIC0tPgogICAgICAgICAgJHt0aGlzLnNob3dGaWxlVHJlZT9DYAogICAgICAgICAgICA8ZGl2CiAgICAgICAgICAgICAgY2xhc3M9ImZpbGV0cmVlLXBhbmVsICR7dGhpcy5pc0ZpbGVUcmVlQ29sbGFwc2VkPyJjb2xsYXBzZWQiOiIifSIKICAgICAgICAgICAgICBzdHlsZT0id2lkdGg6ICR7dGhpcy5pc0ZpbGVUcmVlQ29sbGFwc2VkPzA6dGhpcy5jdXJyZW50RmlsZVRyZWVXaWR0aH1weCIKICAgICAgICAgICAgPgogICAgICAgICAgICAgIDxkZWVzLXdvcmtzcGFjZS1maWxldHJlZQogICAgICAgICAgICAgICAgLmV4ZWN1dGlvbkVudmlyb25tZW50PSR7dGhpcy5leGVjdXRpb25FbnZpcm9ubWVudH0KICAgICAgICAgICAgICAgIC5zZWxlY3RlZFBhdGg9JHt0aGlzLmFjdGl2ZUZpbGVQYXRofQogICAgICAgICAgICAgICAgQGZpbGUtc2VsZWN0PSR7dGhpcy5oYW5kbGVGaWxlU2VsZWN0fQogICAgICAgICAgICAgID48L2RlZXMtd29ya3NwYWNlLWZpbGV0cmVlPgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgJHt0aGlzLmlzRmlsZVRyZWVDb2xsYXBzZWQ/IiI6Q2AKICAgICAgICAgICAgICA8ZGl2CiAgICAgICAgICAgICAgICBjbGFzcz0icmVzaXplLWhhbmRsZS12ZXJ0aWNhbCAke3RoaXMuaXNEcmFnZ2luZ0ZpbGVUcmVlPyJkcmFnZ2luZyI6IiJ9IgogICAgICAgICAgICAgICAgQG1vdXNlZG93bj0ke3RoaXMuaGFuZGxlRmlsZVRyZWVNb3VzZURvd259CiAgICAgICAgICAgICAgPjwvZGl2PgogICAgICAgICAgICBgfQogICAgICAgICAgYDoiIn0KCiAgICAgICAgICA8IS0tIEVkaXRvciArIFRlcm1pbmFsIGFyZWEgLS0+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJlZGl0b3ItYXJlYSI+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9ImVkaXRvci1wYW5lbCI+CiAgICAgICAgICAgICAgPGRpdiBjbGFzcz0idGFicy1iYXIiPgogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0idGFicy1jb250YWluZXIiPgogICAgICAgICAgICAgICAgICAke3RoaXMub3BlbkZpbGVzLm1hcChzZT0+Q2AKICAgICAgICAgICAgICAgICAgICA8ZGl2CiAgICAgICAgICAgICAgICAgICAgICBjbGFzcz0idGFiICR7c2UucGF0aD09PXRoaXMuYWN0aXZlRmlsZVBhdGg/ImFjdGl2ZSI6IiJ9IgogICAgICAgICAgICAgICAgICAgICAgQGNsaWNrPSR7KCk9PnRoaXMuYWN0aXZhdGVGaWxlKHNlLnBhdGgpfQogICAgICAgICAgICAgICAgICAgID4KICAgICAgICAgICAgICAgICAgICAgICR7c2UubW9kaWZpZWQ/Q2A8c3BhbiBjbGFzcz0idGFiLW1vZGlmaWVkIj48L3NwYW4+YDoiIn0KICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJ0YWItbmFtZSI+JHtzZS5uYW1lfTwvc3Bhbj4KICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJ0YWItY2xvc2UiIEBjbGljaz0ke19lPT50aGlzLmNsb3NlRmlsZShfZSxzZS5wYXRoKX0+CiAgICAgICAgICAgICAgICAgICAgICAgIDxkZWVzLWljb24gLmljb249JHsibHVjaWRlOngifSBpY29uU2l6ZT0iMTIiPjwvZGVlcy1pY29uPgogICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPgogICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICBgKX0KICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iZWRpdG9yLW1lbnUtYnV0dG9uIiBAY2xpY2s9JHt0aGlzLnNob3dFZGl0b3JNZW51fSB0aXRsZT0iRWRpdG9yIG9wdGlvbnMiPgogICAgICAgICAgICAgICAgICA8ZGVlcy1pY29uIC5pY29uPSR7Imx1Y2lkZTptb3JlVmVydGljYWwifSBpY29uU2l6ZT0iMTYiPjwvZGVlcy1pY29uPgogICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iZWRpdG9yLWNvbnRlbnQiPgogICAgICAgICAgICAgICAgJHt0aGlzLnNob3dEaWZmVmlldyYmdGhpcy5kaWZmVmlld0NvbmZpZz9DYAogICAgICAgICAgICAgICAgICA8ZGVlcy13b3Jrc3BhY2UtZGlmZi1lZGl0b3IKICAgICAgICAgICAgICAgICAgICAuZmlsZVBhdGg9JHt0aGlzLmRpZmZWaWV3Q29uZmlnLmZpbGVQYXRofQogICAgICAgICAgICAgICAgICAgIC5vcmlnaW5hbENvbnRlbnQ9JHt0aGlzLmRpZmZWaWV3Q29uZmlnLm9yaWdpbmFsQ29udGVudH0KICAgICAgICAgICAgICAgICAgICAubW9kaWZpZWRDb250ZW50PSR7dGhpcy5kaWZmVmlld0NvbmZpZy5tb2RpZmllZENvbnRlbnR9CiAgICAgICAgICAgICAgICAgICAgLmxhbmd1YWdlPSR7dGhpcy5kaWZmVmlld0NvbmZpZy5sYW5ndWFnZX0KICAgICAgICAgICAgICAgICAgICBAZGlmZi1yZXNvbHZlZD0ke3RoaXMuaGFuZGxlRGlmZlJlc29sdmVkfQogICAgICAgICAgICAgICAgICAgIEBkaWZmLWNsb3NlZD0keygpPT57dGhpcy5zaG93RGlmZlZpZXc9ITEsdGhpcy5kaWZmVmlld0NvbmZpZz1udWxsfX0KICAgICAgICAgICAgICAgICAgPjwvZGVlcy13b3Jrc3BhY2UtZGlmZi1lZGl0b3I+CiAgICAgICAgICAgICAgICBgOnRoaXMub3BlbkZpbGVzLmxlbmd0aD09PTA/Q2AKICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iZW1wdHktc3RhdGUiPgogICAgICAgICAgICAgICAgICAgIDxkZWVzLWljb24gLmljb249JHsibHVjaWRlOmZpbGVDb2RlIn0gaWNvblNpemU9IjQ4Ij48L2RlZXMtaWNvbj4KICAgICAgICAgICAgICAgICAgICA8c3Bhbj5TZWxlY3QgYSBmaWxlIHRvIGVkaXQ8L3NwYW4+CiAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgYDpDYAogICAgICAgICAgICAgICAgICA8ZGVlcy13b3Jrc3BhY2UtbW9uYWNvCiAgICAgICAgICAgICAgICAgICAgLmZpbGVQYXRoPSR7dGhpcy5hY3RpdmVGaWxlUGF0aH0KICAgICAgICAgICAgICAgICAgICAuY29udGVudD0ke3RoaXMuZ2V0QWN0aXZlRmlsZUNvbnRlbnQoKX0KICAgICAgICAgICAgICAgICAgICAubGFuZ3VhZ2U9JHt0aGlzLmdldExhbmd1YWdlRnJvbVBhdGgodGhpcy5hY3RpdmVGaWxlUGF0aCl9CiAgICAgICAgICAgICAgICAgICAgQGNvbnRlbnQtY2hhbmdlPSR7dGhpcy5oYW5kbGVDb250ZW50Q2hhbmdlfQogICAgICAgICAgICAgICAgICA+PC9kZWVzLXdvcmtzcGFjZS1tb25hY28+CiAgICAgICAgICAgICAgICBgfQogICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgIDxkZWVzLWFjdGlvbmJhcj48L2RlZXMtYWN0aW9uYmFyPgogICAgICAgICAgICA8L2Rpdj4KCiAgICAgICAgICAgIDwhLS0gSG9yaXpvbnRhbCByZXNpemUgaGFuZGxlIGZvciB0ZXJtaW5hbCAtLT4KICAgICAgICAgICAgJHt0aGlzLnNob3dUZXJtaW5hbCYmIXRoaXMuaXNUZXJtaW5hbENvbGxhcHNlZD9DYAogICAgICAgICAgICAgIDxkaXYKICAgICAgICAgICAgICAgIGNsYXNzPSJyZXNpemUtaGFuZGxlLWhvcml6b250YWwgJHt0aGlzLmlzRHJhZ2dpbmdUZXJtaW5hbD8iZHJhZ2dpbmciOiIifSIKICAgICAgICAgICAgICAgIEBtb3VzZWRvd249JHt0aGlzLmhhbmRsZVRlcm1pbmFsTW91c2VEb3dufQogICAgICAgICAgICAgID48L2Rpdj4KICAgICAgICAgICAgYDoiIn0KCiAgICAgICAgICAgIDwhLS0gVGVybWluYWwgcGFuZWwgLS0+CiAgICAgICAgICAgICR7dGhpcy5zaG93VGVybWluYWw/Q2AKICAgICAgICAgICAgICA8ZGl2CiAgICAgICAgICAgICAgICBjbGFzcz0idGVybWluYWwtcGFuZWwgJHt0aGlzLmlzVGVybWluYWxDb2xsYXBzZWQ/ImNvbGxhcHNlZCI6IiJ9IgogICAgICAgICAgICAgICAgc3R5bGU9ImhlaWdodDogJHt0aGlzLmlzVGVybWluYWxDb2xsYXBzZWQ/MzI6dGhpcy5jdXJyZW50VGVybWluYWxIZWlnaHR9cHgiCiAgICAgICAgICAgICAgPgogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0icGFuZWwtaGVhZGVyIj4KICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0icGFuZWwtdGFicyI+CiAgICAgICAgICAgICAgICAgICAgPGRpdgogICAgICAgICAgICAgICAgICAgICAgY2xhc3M9InBhbmVsLXRhYiAke3RoaXMuYWN0aXZlQm90dG9tUGFuZWw9PT0idGVybWluYWwiPyJhY3RpdmUiOiIifSIKICAgICAgICAgICAgICAgICAgICAgIEBjbGljaz0keygpPT50aGlzLmFjdGl2ZUJvdHRvbVBhbmVsPSJ0ZXJtaW5hbCJ9CiAgICAgICAgICAgICAgICAgICAgPgogICAgICAgICAgICAgICAgICAgICAgPGRlZXMtaWNvbiAuaWNvbj0keyJsdWNpZGU6dGVybWluYWwifSBpY29uU2l6ZT0iMTQiPjwvZGVlcy1pY29uPgogICAgICAgICAgICAgICAgICAgICAgVGVybWluYWwKICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICA8ZGl2CiAgICAgICAgICAgICAgICAgICAgICBjbGFzcz0icGFuZWwtdGFiICR7dGhpcy5hY3RpdmVCb3R0b21QYW5lbD09PSJwcm9ibGVtcyI/ImFjdGl2ZSI6IiJ9IgogICAgICAgICAgICAgICAgICAgICAgQGNsaWNrPSR7KCk9PnRoaXMuYWN0aXZlQm90dG9tUGFuZWw9InByb2JsZW1zIn0KICAgICAgICAgICAgICAgICAgICA+CiAgICAgICAgICAgICAgICAgICAgICA8ZGVlcy1pY29uIC5pY29uPSR7Imx1Y2lkZTpjaXJjbGVBbGVydCJ9IGljb25TaXplPSIxNCI+PC9kZWVzLWljb24+CiAgICAgICAgICAgICAgICAgICAgICBQcm9ibGVtcwogICAgICAgICAgICAgICAgICAgICAgJHt0aGlzLmRpYWdub3N0aWNNYXJrZXJzLmxlbmd0aD4wP0NgCiAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJwYW5lbC10YWItYmFkZ2UgJHt0aGlzLmdldEVycm9yQ291bnQoKT09PTA/Indhcm5pbmciOiIifSI+JHt0aGlzLmRpYWdub3N0aWNNYXJrZXJzLmxlbmd0aH08L3NwYW4+CiAgICAgICAgICAgICAgICAgICAgICBgOiIifQogICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0icGFuZWwtaGVhZGVyLWFjdGlvbnMiPgogICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InBhbmVsLWFjdGlvbiIgQGNsaWNrPSR7dGhpcy50b2dnbGVUZXJtaW5hbH0+CiAgICAgICAgICAgICAgICAgICAgICA8ZGVlcy1pY29uCiAgICAgICAgICAgICAgICAgICAgICAgIC5pY29uPSR7dGhpcy5pc1Rlcm1pbmFsQ29sbGFwc2VkPyJsdWNpZGU6Y2hldnJvblVwIjoibHVjaWRlOmNoZXZyb25Eb3duIn0KICAgICAgICAgICAgICAgICAgICAgICAgaWNvblNpemU9IjE0IgogICAgICAgICAgICAgICAgICAgICAgPjwvZGVlcy1pY29uPgogICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0idGVybWluYWwtY29udGVudCIgc3R5bGU9ImRpc3BsYXk6ICR7dGhpcy5hY3RpdmVCb3R0b21QYW5lbD09PSJ0ZXJtaW5hbCI/ImJsb2NrIjoibm9uZSJ9Ij4KICAgICAgICAgICAgICAgICAgPGRlZXMtd29ya3NwYWNlLXRlcm1pbmFsCiAgICAgICAgICAgICAgICAgICAgLmV4ZWN1dGlvbkVudmlyb25tZW50PSR7dGhpcy5leGVjdXRpb25FbnZpcm9ubWVudH0KICAgICAgICAgICAgICAgICAgICAuc2V0dXBDb21tYW5kPSR7IiJ9CiAgICAgICAgICAgICAgICAgID48L2RlZXMtd29ya3NwYWNlLXRlcm1pbmFsPgogICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJwcm9ibGVtcy1jb250ZW50IiBzdHlsZT0iZGlzcGxheTogJHt0aGlzLmFjdGl2ZUJvdHRvbVBhbmVsPT09InByb2JsZW1zIj8iYmxvY2siOiJub25lIn0iPgogICAgICAgICAgICAgICAgICAke3RoaXMucmVuZGVyUHJvYmxlbXNQYW5lbCgpfQogICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIGA6IiJ9CiAgICAgICAgICA8L2Rpdj4KICAgICAgICA8L2Rpdj4KCiAgICAgICAgPCEtLSBCb3R0b20gQmFyIChmdWxsIHdpZHRoKSAtLT4KICAgICAgICA8ZGVlcy13b3Jrc3BhY2UtYm90dG9tYmFyCiAgICAgICAgICAuZXhlY3V0aW9uRW52aXJvbm1lbnQ9JHt0aGlzLmV4ZWN1dGlvbkVudmlyb25tZW50fQogICAgICAgICAgQHJ1bi1wcm9jZXNzPSR7dGhpcy5oYW5kbGVSdW5Qcm9jZXNzfQogICAgICAgID48L2RlZXMtd29ya3NwYWNlLWJvdHRvbWJhcj4KICAgICAgPC9kaXY+CiAgICBgfWFzeW5jIGNvbm5lY3RlZENhbGxiYWNrKCl7YXdhaXQgc3VwZXIuY29ubmVjdGVkQ2FsbGJhY2soKSxkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCJrZXlkb3duIix0aGlzLmtleWRvd25IYW5kbGVyKX1hc3luYyBkaXNjb25uZWN0ZWRDYWxsYmFjaygpe2F3YWl0IHN1cGVyLmRpc2Nvbm5lY3RlZENhbGxiYWNrKCksZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcigia2V5ZG93biIsdGhpcy5rZXlkb3duSGFuZGxlciksZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcigibW91c2Vtb3ZlIix0aGlzLmhhbmRsZUZpbGVUcmVlTW91c2VNb3ZlKSxkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCJtb3VzZXVwIix0aGlzLmhhbmRsZUZpbGVUcmVlTW91c2VVcCksZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcigibW91c2Vtb3ZlIix0aGlzLmhhbmRsZVRlcm1pbmFsTW91c2VNb3ZlKSxkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCJtb3VzZXVwIix0aGlzLmhhbmRsZVRlcm1pbmFsTW91c2VVcCksdGhpcy5hdXRvU2F2ZUludGVydmFsJiYoY2xlYXJJbnRlcnZhbCh0aGlzLmF1dG9TYXZlSW50ZXJ2YWwpLHRoaXMuYXV0b1NhdmVJbnRlcnZhbD1udWxsKSx0aGlzLnN0b3BOb2RlTW9kdWxlc1dhdGNoZXIoKSx0aGlzLnN0b3BBbGxGaWxlV2F0Y2hlcnMoKX1hc3luYyBmaXJzdFVwZGF0ZWQoKXt0aGlzLmN1cnJlbnRGaWxlVHJlZVdpZHRoPXRoaXMuZmlsZVRyZWVXaWR0aCx0aGlzLmN1cnJlbnRUZXJtaW5hbEhlaWdodD10aGlzLnRlcm1pbmFsSGVpZ2h0LHRoaXMuZXhlY3V0aW9uRW52aXJvbm1lbnQmJmF3YWl0IHRoaXMuaW5pdGlhbGl6ZVdvcmtzcGFjZSgpfWFzeW5jIHVwZGF0ZWQoYWUpe2FlLmhhcygiZXhlY3V0aW9uRW52aXJvbm1lbnQiKSYmdGhpcy5leGVjdXRpb25FbnZpcm9ubWVudCYmYXdhaXQgdGhpcy5pbml0aWFsaXplV29ya3NwYWNlKCksdGhpcy5hY3Rpb25iYXJFbGVtZW50fHwodGhpcy5hY3Rpb25iYXJFbGVtZW50PXRoaXMuc2hhZG93Um9vdD8ucXVlcnlTZWxlY3RvcigiLmVkaXRvci1wYW5lbCBkZWVzLWFjdGlvbmJhciIpKX1hc3luYyBpbml0aWFsaXplV29ya3NwYWNlKCl7aWYodGhpcy5leGVjdXRpb25FbnZpcm9ubWVudCYmIXRoaXMuaW5pdGlhbGl6YXRpb25TdGFydGVkKXt0aGlzLmluaXRpYWxpemF0aW9uU3RhcnRlZD0hMCx0aGlzLmlzSW5pdGlhbGl6aW5nPSEwO3RyeXt0aGlzLmluaXRpYWxpemF0aW9uUHJvbWlzZT9hd2FpdCB0aGlzLmluaXRpYWxpemF0aW9uUHJvbWlzZTp0aGlzLmV4ZWN1dGlvbkVudmlyb25tZW50LnJlYWR5fHxhd2FpdCB0aGlzLmV4ZWN1dGlvbkVudmlyb25tZW50LmluaXQoKSxhd2FpdCB0aGlzLmV4ZWN1dGVPbkluaXRDb21tYW5kKCl9Y2F0Y2goYWUpe2NvbnNvbGUuZXJyb3IoIkZhaWxlZCB0byBpbml0aWFsaXplIHdvcmtzcGFjZToiLGFlKSx0aGlzLmluaXRpYWxpemF0aW9uU3RhcnRlZD0hMX1maW5hbGx5e3RoaXMuaXNJbml0aWFsaXppbmc9ITF9fX1hc3luYyBleGVjdXRlT25Jbml0Q29tbWFuZCgpe2lmKHRoaXMuZXhlY3V0aW9uRW52aXJvbm1lbnQpdHJ5e2lmKGF3YWl0IHRoaXMuZXhlY3V0aW9uRW52aXJvbm1lbnQuZXhpc3RzKCIvbnBtZXh0cmEuanNvbiIpKXtsZXQgYWU9YXdhaXQgdGhpcy5leGVjdXRpb25FbnZpcm9ubWVudC5yZWFkRmlsZSgiL25wbWV4dHJhLmpzb24iKSxfZT1KU09OLnBhcnNlKGFlKT8uZGVlc0VkaXRvcldvcmtzcGFjZT8ub25Jbml0O2lmKF9lJiZ0eXBlb2YgX2U9PSJzdHJpbmciKXtjb25zb2xlLmxvZygiRXhlY3V0aW5nIG9uSW5pdCBjb21tYW5kOiIsX2UpLHRoaXMuaW5pdENvbW1hbmQ9X2UsdGhpcy5pbml0T3V0cHV0PVtdO2xldFt2dCwuLi5TdF09X2Uuc3BsaXQoIiAiKSxZcj1hd2FpdCB0aGlzLmV4ZWN1dGlvbkVudmlyb25tZW50LnNwYXduKHZ0LFN0KTtZci5vdXRwdXQucGlwZVRvKG5ldyBXcml0YWJsZVN0cmVhbSh7d3JpdGU6VW89PntsZXQgV289VW8uc3BsaXQoYApgKTtmb3IobGV0IE1lIG9mIFdvKU1lJiYodGhpcy5pbml0T3V0cHV0PVsuLi50aGlzLmluaXRPdXRwdXQsTWVdKX19KSk7bGV0IGRuPWF3YWl0IFlyLmV4aXQ7Y29uc29sZS5sb2coIm9uSW5pdCBjb21tYW5kIGNvbXBsZXRlZCB3aXRoIGV4aXQgY29kZToiLGRuKSx0aGlzLmluaXRPdXRwdXQ9Wy4uLnRoaXMuaW5pdE91dHB1dCwiIixgQ29tbWFuZCBjb21wbGV0ZWQgd2l0aCBleGl0IGNvZGU6ICR7ZG59YF19fX1jYXRjaChhZSl7Y29uc29sZS53YXJuKCJGYWlsZWQgdG8gZXhlY3V0ZSBvbkluaXQgY29tbWFuZDoiLGFlKX19YXN5bmMgaW5pdGlhbGl6ZUludGVsbGlTZW5zZSgpe2lmKCF0aGlzLmV4ZWN1dGlvbkVudmlyb25tZW50fHx0aGlzLmludGVsbGlTZW5zZUluaXRpYWxpemVkKXJldHVybjtsZXQgYWU9d2luZG93Lm1vbmFjbztpZihhZXx8KGF3YWl0IG5ldyBQcm9taXNlKHNlPT5zZXRUaW1lb3V0KHNlLDEwMCkpLGFlPXdpbmRvdy5tb25hY28pLCFhZSl7Y29uc29sZS53YXJuKCJNb25hY28gbm90IHlldCBsb2FkZWQsIEludGVsbGlTZW5zZSB3aWxsIGJlIGluaXRpYWxpemVkIGxhdGVyIik7cmV0dXJufXRoaXMuaW50ZWxsaVNlbnNlSW5pdGlhbGl6ZWQ9ITAsdGhpcy5pbnRlbGxpU2Vuc2VNYW5hZ2VyPW5ldyBYYixhd2FpdCB0aGlzLmludGVsbGlTZW5zZU1hbmFnZXIuaW5pdChhZSx0aGlzLmV4ZWN1dGlvbkVudmlyb25tZW50KSx0aGlzLnNldHVwTWFya2VyTGlzdGVuZXIoKSx0aGlzLnN0YXJ0Tm9kZU1vZHVsZXNXYXRjaGVyKCksYXdhaXQgdGhpcy5pbnRlbGxpU2Vuc2VNYW5hZ2VyLnNjYW5BbmRMb2FkTmV3UGFja2FnZVR5cGVzKCl9c3RhcnROb2RlTW9kdWxlc1dhdGNoZXIoKXtpZighKCF0aGlzLmV4ZWN1dGlvbkVudmlyb25tZW50fHx0aGlzLm5vZGVNb2R1bGVzV2F0Y2hlcikpdHJ5e3RoaXMubm9kZU1vZHVsZXNXYXRjaGVyPXRoaXMuZXhlY3V0aW9uRW52aXJvbm1lbnQud2F0Y2goIi9ub2RlX21vZHVsZXMiLChhZSxzZSk9Pnt0aGlzLm5vZGVNb2R1bGVzRGVib3VuY2VUaW1lb3V0JiZjbGVhclRpbWVvdXQodGhpcy5ub2RlTW9kdWxlc0RlYm91bmNlVGltZW91dCksdGhpcy5ub2RlTW9kdWxlc0RlYm91bmNlVGltZW91dD1zZXRUaW1lb3V0KGFzeW5jKCk9Pnt0aGlzLmludGVsbGlTZW5zZU1hbmFnZXImJmF3YWl0IHRoaXMuaW50ZWxsaVNlbnNlTWFuYWdlci5zY2FuQW5kTG9hZE5ld1BhY2thZ2VUeXBlcygpfSwyZTMpfSx7cmVjdXJzaXZlOiEwfSl9Y2F0Y2goYWUpe2NvbnNvbGUud2FybigiQ291bGQgbm90IHdhdGNoIG5vZGVfbW9kdWxlczoiLGFlKX19c3RvcE5vZGVNb2R1bGVzV2F0Y2hlcigpe3RoaXMubm9kZU1vZHVsZXNXYXRjaGVyJiYodGhpcy5ub2RlTW9kdWxlc1dhdGNoZXIuc3RvcCgpLHRoaXMubm9kZU1vZHVsZXNXYXRjaGVyPW51bGwpLHRoaXMubm9kZU1vZHVsZXNEZWJvdW5jZVRpbWVvdXQmJihjbGVhclRpbWVvdXQodGhpcy5ub2RlTW9kdWxlc0RlYm91bmNlVGltZW91dCksdGhpcy5ub2RlTW9kdWxlc0RlYm91bmNlVGltZW91dD1udWxsKX1zdGFydFdhdGNoaW5nRmlsZShhZSl7aWYoISghdGhpcy5leGVjdXRpb25FbnZpcm9ubWVudHx8dGhpcy5vcGVuRmlsZVdhdGNoZXJzLmhhcyhhZSkpKXRyeXtsZXQgc2U9dGhpcy5leGVjdXRpb25FbnZpcm9ubWVudC53YXRjaChhZSwoX2UsdnQpPT57bGV0IFN0PXRoaXMuZmlsZUNoYW5nZURlYm91bmNlLmdldChhZSk7U3QmJmNsZWFyVGltZW91dChTdCk7bGV0IFlyPXNldFRpbWVvdXQoKCk9Pnt0aGlzLmhhbmRsZUV4dGVybmFsRmlsZUNoYW5nZShhZSksdGhpcy5maWxlQ2hhbmdlRGVib3VuY2UuZGVsZXRlKGFlKX0sMzAwKTt0aGlzLmZpbGVDaGFuZ2VEZWJvdW5jZS5zZXQoYWUsWXIpfSk7dGhpcy5vcGVuRmlsZVdhdGNoZXJzLnNldChhZSxzZSl9Y2F0Y2goc2Upe2NvbnNvbGUud2FybihgQ291bGQgbm90IHdhdGNoIGZpbGUgJHthZX06YCxzZSl9fXN0b3BXYXRjaGluZ0ZpbGUoYWUpe2xldCBzZT10aGlzLm9wZW5GaWxlV2F0Y2hlcnMuZ2V0KGFlKTtzZSYmKHNlLnN0b3AoKSx0aGlzLm9wZW5GaWxlV2F0Y2hlcnMuZGVsZXRlKGFlKSk7bGV0IF9lPXRoaXMuZmlsZUNoYW5nZURlYm91bmNlLmdldChhZSk7X2UmJihjbGVhclRpbWVvdXQoX2UpLHRoaXMuZmlsZUNoYW5nZURlYm91bmNlLmRlbGV0ZShhZSkpfXN0b3BBbGxGaWxlV2F0Y2hlcnMoKXtmb3IobGV0IGFlIG9mIHRoaXMub3BlbkZpbGVXYXRjaGVycy52YWx1ZXMoKSlhZS5zdG9wKCk7dGhpcy5vcGVuRmlsZVdhdGNoZXJzLmNsZWFyKCk7Zm9yKGxldCBhZSBvZiB0aGlzLmZpbGVDaGFuZ2VEZWJvdW5jZS52YWx1ZXMoKSljbGVhclRpbWVvdXQoYWUpO3RoaXMuZmlsZUNoYW5nZURlYm91bmNlLmNsZWFyKCl9YXN5bmMgaGFuZGxlRXh0ZXJuYWxGaWxlQ2hhbmdlKGFlKXtsZXQgc2U9dGhpcy5vcGVuRmlsZXMuZmluZChfZT0+X2UucGF0aD09PWFlKTtpZighKCFzZXx8IXRoaXMuZXhlY3V0aW9uRW52aXJvbm1lbnQpKXRyeXtsZXQgX2U9YXdhaXQgdGhpcy5leGVjdXRpb25FbnZpcm9ubWVudC5yZWFkRmlsZShhZSk7aWYoX2U9PT1zZS5jb250ZW50KXJldHVybjtpZihzZS5tb2RpZmllZCl7bGV0IHZ0PWF3YWl0IHRoaXMuYWN0aW9uYmFyRWxlbWVudD8uc2hvdyh7bWVzc2FnZTpgIiR7c2UubmFtZX0iIGNoYW5nZWQgb24gZGlzay4gV2hhdCBkbyB5b3Ugd2FudCB0byBkbz9gLHR5cGU6InF1ZXN0aW9uIixpY29uOiJsdWNpZGU6Z2l0TWVyZ2UiLGFjdGlvbnM6W3tpZDoibG9hZC1kaXNrIixsYWJlbDoiTG9hZCBmcm9tIERpc2siLHByaW1hcnk6ITB9LHtpZDoic2F2ZS1sb2NhbCIsbGFiZWw6IlNhdmUgTG9jYWwgdG8gRGlzayJ9LHtpZDoiY29tcGFyZSIsbGFiZWw6IkNvbXBhcmUifV0sdGltZW91dDp7ZHVyYXRpb246MTVlMyxkZWZhdWx0QWN0aW9uSWQ6ImxvYWQtZGlzayJ9LGRpc21pc3NpYmxlOiEwfSk7dnQ/LmFjdGlvbklkPT09ImxvYWQtZGlzayI/YXdhaXQgdGhpcy51cGRhdGVGaWxlQ29udGVudChhZSxfZSwhMSk6dnQ/LmFjdGlvbklkPT09InNhdmUtbG9jYWwiPyhhd2FpdCB0aGlzLmV4ZWN1dGlvbkVudmlyb25tZW50LndyaXRlRmlsZShhZSxzZS5jb250ZW50KSx0aGlzLm9wZW5GaWxlcz10aGlzLm9wZW5GaWxlcy5tYXAoU3Q9PlN0LnBhdGg9PT1hZT97Li4uU3QsbW9kaWZpZWQ6ITF9OlN0KSk6dnQ/LmFjdGlvbklkPT09ImNvbXBhcmUiJiZ0aGlzLm9wZW5EaWZmVmlldyhhZSxzZS5jb250ZW50LF9lKX1lbHNlIGF3YWl0IHRoaXMudXBkYXRlRmlsZUNvbnRlbnQoYWUsX2UsITApfWNhdGNoKF9lKXtjb25zb2xlLndhcm4oYEZhaWxlZCB0byBoYW5kbGUgZXh0ZXJuYWwgY2hhbmdlIGZvciAke2FlfTpgLF9lKX19YXN5bmMgdXBkYXRlRmlsZUNvbnRlbnQoYWUsc2UsX2Upe2lmKHRoaXMub3BlbkZpbGVzPXRoaXMub3BlbkZpbGVzLm1hcCh2dD0+dnQucGF0aD09PWFlP3suLi52dCxjb250ZW50OnNlLG1vZGlmaWVkOiExfTp2dCksYWU9PT10aGlzLmFjdGl2ZUZpbGVQYXRoKXtsZXQgdnQ9dGhpcy5zaGFkb3dSb290Py5xdWVyeVNlbGVjdG9yKCJkZWVzLXdvcmtzcGFjZS1tb25hY28iKTt2dCYmYXdhaXQgdnQuc2V0Q29udGVudEV4dGVybmFsKHNlLF9lKX19b3BlbkRpZmZWaWV3KGFlLHNlLF9lKXt0aGlzLmRpZmZWaWV3Q29uZmlnPXtmaWxlUGF0aDphZSxvcmlnaW5hbENvbnRlbnQ6X2UsbW9kaWZpZWRDb250ZW50OnNlLGxhbmd1YWdlOnRoaXMuZ2V0TGFuZ3VhZ2VGcm9tUGF0aChhZSl9LHRoaXMuc2hvd0RpZmZWaWV3PSEwfWFzeW5jIGhhbmRsZURpZmZSZXNvbHZlZChhZSl7bGV0e2FjdGlvbjpzZSxjb250ZW50Ol9lfT1hZS5kZXRhaWwsdnQ9dGhpcy5kaWZmVmlld0NvbmZpZz8uZmlsZVBhdGg7aWYoIXZ0fHwhdGhpcy5leGVjdXRpb25FbnZpcm9ubWVudCl7dGhpcy5zaG93RGlmZlZpZXc9ITEsdGhpcy5kaWZmVmlld0NvbmZpZz1udWxsO3JldHVybn1pZihzZT09PSJ1c2UtbG9jYWwiKXtpZihhd2FpdCB0aGlzLmV4ZWN1dGlvbkVudmlyb25tZW50LndyaXRlRmlsZSh2dCxfZSksdGhpcy5vcGVuRmlsZXM9dGhpcy5vcGVuRmlsZXMubWFwKFN0PT5TdC5wYXRoPT09dnQ/ey4uLlN0LGNvbnRlbnQ6X2UsbW9kaWZpZWQ6ITF9OlN0KSx2dD09PXRoaXMuYWN0aXZlRmlsZVBhdGgpe2xldCBTdD10aGlzLnNoYWRvd1Jvb3Q/LnF1ZXJ5U2VsZWN0b3IoImRlZXMtd29ya3NwYWNlLW1vbmFjbyIpO1N0JiZhd2FpdCBTdC5zZXRDb250ZW50RXh0ZXJuYWwoX2UsITEpfX1lbHNlIHNlPT09InVzZS1kaXNrIiYmYXdhaXQgdGhpcy51cGRhdGVGaWxlQ29udGVudCh2dCxfZSwhMSk7dGhpcy5zaG93RGlmZlZpZXc9ITEsdGhpcy5kaWZmVmlld0NvbmZpZz1udWxsfWFzeW5jIGhhbmRsZUZpbGVTZWxlY3QoYWUpe2xldHtwYXRoOnNlLG5hbWU6X2V9PWFlLmRldGFpbDthd2FpdCB0aGlzLm9wZW5GaWxlKHNlLF9lKX1hc3luYyBvcGVuRmlsZShhZSxzZSl7aWYodGhpcy5vcGVuRmlsZXMuZmluZCh2dD0+dnQucGF0aD09PWFlKSl7dGhpcy5hY3RpdmVGaWxlUGF0aD1hZTtyZXR1cm59aWYodGhpcy5leGVjdXRpb25FbnZpcm9ubWVudCl0cnl7bGV0IHZ0PWF3YWl0IHRoaXMuZXhlY3V0aW9uRW52aXJvbm1lbnQucmVhZEZpbGUoYWUpO2lmKHRoaXMub3BlbkZpbGVzPVsuLi50aGlzLm9wZW5GaWxlcyx7cGF0aDphZSxuYW1lOnNlLGNvbnRlbnQ6dnQsbW9kaWZpZWQ6ITF9XSx0aGlzLmFjdGl2ZUZpbGVQYXRoPWFlLHRoaXMuc3RhcnRXYXRjaGluZ0ZpbGUoYWUpLCF0aGlzLmludGVsbGlTZW5zZUluaXRpYWxpemVkKXthd2FpdCB0aGlzLnVwZGF0ZUNvbXBsZXRlLGF3YWl0IG5ldyBQcm9taXNlKFlyPT5zZXRUaW1lb3V0KFlyLDUwMCkpLGF3YWl0IHRoaXMuaW5pdGlhbGl6ZUludGVsbGlTZW5zZSgpO2xldCBTdD10aGlzLmdldExhbmd1YWdlRnJvbVBhdGgoYWUpO3RoaXMuaW50ZWxsaVNlbnNlTWFuYWdlciYmKFN0PT09InR5cGVzY3JpcHQifHxTdD09PSJqYXZhc2NyaXB0IikmJmF3YWl0IHRoaXMuaW50ZWxsaVNlbnNlTWFuYWdlci5wcm9jZXNzQ29udGVudENoYW5nZSh2dCl9fWNhdGNoKHZ0KXtjb25zb2xlLmVycm9yKGBGYWlsZWQgdG8gb3BlbiBmaWxlICR7YWV9OmAsdnQpfX1hY3RpdmF0ZUZpbGUoYWUpe3RoaXMuYWN0aXZlRmlsZVBhdGg9YWV9Y2xvc2VGaWxlKGFlLHNlKXthZS5zdG9wUHJvcGFnYXRpb24oKTtsZXQgX2U9dGhpcy5vcGVuRmlsZXMuZmluZEluZGV4KFN0PT5TdC5wYXRoPT09c2UpO2lmKF9lPT09LTEpcmV0dXJuO2xldCB2dD10aGlzLm9wZW5GaWxlc1tfZV07aWYoISh2dC5tb2RpZmllZCYmIWNvbmZpcm0oYCR7dnQubmFtZX0gaGFzIHVuc2F2ZWQgY2hhbmdlcy4gQ2xvc2UgYW55d2F5P2ApKSYmKHRoaXMuc3RvcFdhdGNoaW5nRmlsZShzZSksdGhpcy5vcGVuRmlsZXM9dGhpcy5vcGVuRmlsZXMuZmlsdGVyKFN0PT5TdC5wYXRoIT09c2UpLHRoaXMuYWN0aXZlRmlsZVBhdGg9PT1zZSkpaWYodGhpcy5vcGVuRmlsZXMubGVuZ3RoPjApe2xldCBTdD1NYXRoLm1pbihfZSx0aGlzLm9wZW5GaWxlcy5sZW5ndGgtMSk7dGhpcy5hY3RpdmVGaWxlUGF0aD10aGlzLm9wZW5GaWxlc1tTdF0ucGF0aH1lbHNlIHRoaXMuYWN0aXZlRmlsZVBhdGg9IiJ9Z2V0QWN0aXZlRmlsZUNvbnRlbnQoKXtyZXR1cm4gdGhpcy5vcGVuRmlsZXMuZmluZChzZT0+c2UucGF0aD09PXRoaXMuYWN0aXZlRmlsZVBhdGgpPy5jb250ZW50fHwiIn1oYW5kbGVDb250ZW50Q2hhbmdlKGFlKXtsZXQgc2U9YWUuZGV0YWlsLF9lPXRoaXMub3BlbkZpbGVzLmZpbmRJbmRleChTdD0+U3QucGF0aD09PXRoaXMuYWN0aXZlRmlsZVBhdGgpO2lmKF9lPT09LTEpcmV0dXJuO2xldCB2dD10aGlzLm9wZW5GaWxlc1tfZV07aWYodnQuY29udGVudCE9PXNlKXt0aGlzLm9wZW5GaWxlcz1bLi4udGhpcy5vcGVuRmlsZXMuc2xpY2UoMCxfZSksey4uLnZ0LGNvbnRlbnQ6c2UsbW9kaWZpZWQ6ITB9LC4uLnRoaXMub3BlbkZpbGVzLnNsaWNlKF9lKzEpXTtsZXQgU3Q9dGhpcy5nZXRMYW5ndWFnZUZyb21QYXRoKHRoaXMuYWN0aXZlRmlsZVBhdGgpO3RoaXMuaW50ZWxsaVNlbnNlTWFuYWdlciYmKFN0PT09InR5cGVzY3JpcHQifHxTdD09PSJqYXZhc2NyaXB0IikmJih0aGlzLmludGVsbGlTZW5zZURlYm91bmNlVGltZW91dCYmY2xlYXJUaW1lb3V0KHRoaXMuaW50ZWxsaVNlbnNlRGVib3VuY2VUaW1lb3V0KSx0aGlzLmludGVsbGlTZW5zZURlYm91bmNlVGltZW91dD1zZXRUaW1lb3V0KCgpPT57dGhpcy5pbnRlbGxpU2Vuc2VNYW5hZ2VyPy5wcm9jZXNzQ29udGVudENoYW5nZShzZSl9LDUwMCkpfX1nZXRMYW5ndWFnZUZyb21QYXRoKGFlKXtsZXQgc2U9YWUuc3BsaXQoIi4iKS5wb3AoKT8udG9Mb3dlckNhc2UoKTtyZXR1cm57dHM6InR5cGVzY3JpcHQiLHRzeDoidHlwZXNjcmlwdCIsanM6ImphdmFzY3JpcHQiLGpzeDoiamF2YXNjcmlwdCIsanNvbjoianNvbiIsaHRtbDoiaHRtbCIsY3NzOiJjc3MiLHNjc3M6InNjc3MiLGxlc3M6Imxlc3MiLG1kOiJtYXJrZG93biIseWFtbDoieWFtbCIseW1sOiJ5YW1sIix4bWw6InhtbCIsc3FsOiJzcWwiLHB5OiJweXRob24iLHNoOiJzaGVsbCIsYmFzaDoic2hlbGwifVtzZXx8IiJdfHwicGxhaW50ZXh0In10b2dnbGVUZXJtaW5hbCgpe3RoaXMuaXNUZXJtaW5hbENvbGxhcHNlZD0hdGhpcy5pc1Rlcm1pbmFsQ29sbGFwc2VkfWFzeW5jIHNhdmVBY3RpdmVGaWxlKCl7bGV0IGFlPXRoaXMub3BlbkZpbGVzLmZpbmQoc2U9PnNlLnBhdGg9PT10aGlzLmFjdGl2ZUZpbGVQYXRoKTtpZighKCFhZXx8IXRoaXMuZXhlY3V0aW9uRW52aXJvbm1lbnQpKXRyeXthd2FpdCB0aGlzLmV4ZWN1dGlvbkVudmlyb25tZW50LndyaXRlRmlsZShhZS5wYXRoLGFlLmNvbnRlbnQpLHRoaXMub3BlbkZpbGVzPXRoaXMub3BlbkZpbGVzLm1hcChzZT0+c2UucGF0aD09PWFlLnBhdGg/ey4uLnNlLG1vZGlmaWVkOiExfTpzZSksdGhpcy5pbnRlbGxpU2Vuc2VNYW5hZ2VyJiZ0aGlzLmludGVsbGlTZW5zZU1hbmFnZXIuYWRkRmlsZU1vZGVsKGFlLnBhdGgsYWUuY29udGVudCl9Y2F0Y2goc2Upe2NvbnNvbGUuZXJyb3IoIkZhaWxlZCB0byBzYXZlIGZpbGU6IixzZSl9fWFzeW5jIHNhdmVBbGxGaWxlcygpe2lmKHRoaXMuZXhlY3V0aW9uRW52aXJvbm1lbnQpe2ZvcihsZXQgYWUgb2YgdGhpcy5vcGVuRmlsZXMuZmlsdGVyKHNlPT5zZS5tb2RpZmllZCkpdHJ5e2F3YWl0IHRoaXMuZXhlY3V0aW9uRW52aXJvbm1lbnQud3JpdGVGaWxlKGFlLnBhdGgsYWUuY29udGVudCksdGhpcy5pbnRlbGxpU2Vuc2VNYW5hZ2VyJiZ0aGlzLmludGVsbGlTZW5zZU1hbmFnZXIuYWRkRmlsZU1vZGVsKGFlLnBhdGgsYWUuY29udGVudCl9Y2F0Y2goc2Upe2NvbnNvbGUuZXJyb3IoYEZhaWxlZCB0byBzYXZlICR7YWUucGF0aH06YCxzZSl9dGhpcy5vcGVuRmlsZXM9dGhpcy5vcGVuRmlsZXMubWFwKGFlPT4oey4uLmFlLG1vZGlmaWVkOiExfSkpfX1hc3luYyBzaG93RWRpdG9yTWVudShhZSl7YWUuc3RvcFByb3BhZ2F0aW9uKCk7bGV0IHNlPVt7bmFtZTp0aGlzLmF1dG9TYXZlPyJcdTI3MTMgQXV0byBTYXZlIjoiQXV0byBTYXZlIixpY29uTmFtZToibHVjaWRlOnNhdmUiLGFjdGlvbjphc3luYygpPT50aGlzLnRvZ2dsZUF1dG9TYXZlKCl9LHtkaXZpZGVyOiEwfSx7bmFtZToiU2F2ZSIsaWNvbk5hbWU6Imx1Y2lkZTpzYXZlIixhY3Rpb246YXN5bmMoKT0+dGhpcy5zYXZlQWN0aXZlRmlsZSgpfSx7bmFtZToiU2F2ZSBBbGwiLGljb25OYW1lOiJsdWNpZGU6c2F2ZSIsYWN0aW9uOmFzeW5jKCk9PnRoaXMuc2F2ZUFsbEZpbGVzKCl9XTthd2FpdCBTci5vcGVuQ29udGV4dE1lbnVXaXRoT3B0aW9ucyhhZSxzZSl9dG9nZ2xlQXV0b1NhdmUoKXt0aGlzLmF1dG9TYXZlPSF0aGlzLmF1dG9TYXZlLHRoaXMuYXV0b1NhdmU/dGhpcy5hdXRvU2F2ZUludGVydmFsPXNldEludGVydmFsKCgpPT57dGhpcy5vcGVuRmlsZXMuc29tZShzZT0+c2UubW9kaWZpZWQpJiZ0aGlzLnNhdmVBbGxGaWxlcygpfSwyZTMpOnRoaXMuYXV0b1NhdmVJbnRlcnZhbCYmKGNsZWFySW50ZXJ2YWwodGhpcy5hdXRvU2F2ZUludGVydmFsKSx0aGlzLmF1dG9TYXZlSW50ZXJ2YWw9bnVsbCl9Z2V0RXJyb3JDb3VudCgpe3JldHVybiB0aGlzLmRpYWdub3N0aWNNYXJrZXJzLmZpbHRlcihhZT0+YWUuc2V2ZXJpdHk9PT04KS5sZW5ndGh9cmVuZGVyUHJvYmxlbXNQYW5lbCgpe3JldHVybiB0aGlzLmRpYWdub3N0aWNNYXJrZXJzLmxlbmd0aD09PTA/Q2AKICAgICAgICA8ZGl2IGNsYXNzPSJwcm9ibGVtcy1lbXB0eSI+CiAgICAgICAgICA8ZGVlcy1pY29uIC5pY29uPSR7Imx1Y2lkZTpjaGVja0NpcmNsZSJ9IGljb25TaXplPSIyNCI+PC9kZWVzLWljb24+CiAgICAgICAgICA8c3Bhbj5ObyBwcm9ibGVtcyBkZXRlY3RlZDwvc3Bhbj4KICAgICAgICA8L2Rpdj4KICAgICAgYDpDYAogICAgICA8ZGl2IGNsYXNzPSJwcm9ibGVtcy1saXN0Ij4KICAgICAgICAke3RoaXMuZGlhZ25vc3RpY01hcmtlcnMubWFwKGFlPT5DYAogICAgICAgICAgPGRpdiBjbGFzcz0icHJvYmxlbS1pdGVtIiBAY2xpY2s9JHsoKT0+dGhpcy5uYXZpZ2F0ZVRvUHJvYmxlbShhZSl9PgogICAgICAgICAgICA8ZGVlcy1pY29uCiAgICAgICAgICAgICAgY2xhc3M9InByb2JsZW0taWNvbiAke2FlLnNldmVyaXR5PT09OD8iZXJyb3IiOiJ3YXJuaW5nIn0iCiAgICAgICAgICAgICAgLmljb249JHthZS5zZXZlcml0eT09PTg/Imx1Y2lkZTpjaXJjbGVYIjoibHVjaWRlOnRyaWFuZ2xlQWxlcnQifQogICAgICAgICAgICAgIGljb25TaXplPSIxNCIKICAgICAgICAgICAgPjwvZGVlcy1pY29uPgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJwcm9ibGVtLWRldGFpbHMiPgogICAgICAgICAgICAgIDxkaXYgY2xhc3M9InByb2JsZW0tbWVzc2FnZSI+JHthZS5tZXNzYWdlfTwvZGl2PgogICAgICAgICAgICAgIDxkaXYgY2xhc3M9InByb2JsZW0tbG9jYXRpb24iPgogICAgICAgICAgICAgICAgJHthZS5yZXNvdXJjZS5wYXRoLnNwbGl0KCIvIikucG9wKCl9ICgke2FlLnN0YXJ0TGluZU51bWJlcn0sICR7YWUuc3RhcnRDb2x1bW59KQogICAgICAgICAgICAgICAgJHthZS5zb3VyY2U/YFske2FlLnNvdXJjZX1dYDoiIn0KICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICBgKX0KICAgICAgPC9kaXY+CiAgICBgfWFzeW5jIG5hdmlnYXRlVG9Qcm9ibGVtKGFlKXtsZXQgc2U9YWUucmVzb3VyY2UucGF0aCxfZT1zZS5zcGxpdCgiLyIpLnBvcCgpfHwiIjt0aGlzLm9wZW5GaWxlcy5maW5kKFlyPT5Zci5wYXRoPT09c2UpP3RoaXMuYWN0aXZlRmlsZVBhdGg9c2U6YXdhaXQgdGhpcy5vcGVuRmlsZShzZSxfZSksYXdhaXQgdGhpcy51cGRhdGVDb21wbGV0ZTtsZXQgU3Q9dGhpcy5zaGFkb3dSb290Py5xdWVyeVNlbGVjdG9yKCJkZWVzLXdvcmtzcGFjZS1tb25hY28iKTtpZihTdCl7bGV0IFlyPWF3YWl0IFN0LmVkaXRvckRlZmVycmVkLnByb21pc2U7WXIucmV2ZWFsTGluZUluQ2VudGVyKGFlLnN0YXJ0TGluZU51bWJlciksWXIuc2V0UG9zaXRpb24oe2xpbmVOdW1iZXI6YWUuc3RhcnRMaW5lTnVtYmVyLGNvbHVtbjphZS5zdGFydENvbHVtbn0pLFlyLmZvY3VzKCl9fXNldHVwTWFya2VyTGlzdGVuZXIoKXtsZXQgYWU9d2luZG93Lm1vbmFjbzthZSYmKGFlLmVkaXRvci5vbkRpZENoYW5nZU1hcmtlcnMoc2U9Pnt0aGlzLnVwZGF0ZURpYWdub3N0aWNNYXJrZXJzKCl9KSx0aGlzLnVwZGF0ZURpYWdub3N0aWNNYXJrZXJzKCkpfXVwZGF0ZURpYWdub3N0aWNNYXJrZXJzKCl7bGV0IGFlPXdpbmRvdy5tb25hY287aWYoIWFlKXJldHVybjtsZXQgc2U9YWUuZWRpdG9yLmdldE1vZGVsTWFya2Vycyh7fSk7dGhpcy5kaWFnbm9zdGljTWFya2Vycz1zZS5tYXAoX2U9Pih7bWVzc2FnZTpfZS5tZXNzYWdlLHNldmVyaXR5Ol9lLnNldmVyaXR5LHN0YXJ0TGluZU51bWJlcjpfZS5zdGFydExpbmVOdW1iZXIsc3RhcnRDb2x1bW46X2Uuc3RhcnRDb2x1bW4sZW5kTGluZU51bWJlcjpfZS5lbmRMaW5lTnVtYmVyLGVuZENvbHVtbjpfZS5lbmRDb2x1bW4sc291cmNlOl9lLnNvdXJjZSxyZXNvdXJjZTp7cGF0aDpfZS5yZXNvdXJjZS5wYXRofX0pKX1hc3luYyBoYW5kbGVSdW5Qcm9jZXNzKGFlKXtsZXQgc2U9YWUuZGV0YWlsLF9lPXRoaXMuc2hhZG93Um9vdD8ucXVlcnlTZWxlY3RvcigiZGVlcy13b3Jrc3BhY2UtdGVybWluYWwiKTtpZighX2Upe2NvbnNvbGUud2FybigiVGVybWluYWwgY29tcG9uZW50IG5vdCBmb3VuZCIpO3JldHVybn10aGlzLmlzVGVybWluYWxDb2xsYXBzZWQmJih0aGlzLmlzVGVybWluYWxDb2xsYXBzZWQ9ITEpLHRoaXMuYWN0aXZlQm90dG9tUGFuZWw9InRlcm1pbmFsIixhd2FpdCB0aGlzLnVwZGF0ZUNvbXBsZXRlLGF3YWl0IF9lLmNyZWF0ZVByb2Nlc3NUYWIoe3R5cGU6c2UudHlwZSxsYWJlbDpzZS5sYWJlbCxjb21tYW5kOnNlLmNvbW1hbmQsYXJnczpzZS5hcmdzLG1ldGFkYXRhOnNlLm1ldGFkYXRhLHN3aXRjaFRvVGFiOiEwfSl9c2V0RmlsZVRyZWVXaWR0aChhZSl7bGV0IF9lPXRoaXMuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkud2lkdGgqLjU7dGhpcy5jdXJyZW50RmlsZVRyZWVXaWR0aD1NYXRoLm1heCgxNTAsTWF0aC5taW4oX2UsYWUpKSx3aW5kb3cuZGlzcGF0Y2hFdmVudChuZXcgRXZlbnQoInJlc2l6ZSIpKX1zZXRUZXJtaW5hbEhlaWdodChhZSl7bGV0IF9lPXRoaXMuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkuaGVpZ2h0Ki43O3RoaXMuY3VycmVudFRlcm1pbmFsSGVpZ2h0PU1hdGgubWF4KDEwMCxNYXRoLm1pbihfZSxhZSkpLHdpbmRvdy5kaXNwYXRjaEV2ZW50KG5ldyBFdmVudCgicmVzaXplIikpfXJlc2V0TGF5b3V0KCl7dGhpcy5jdXJyZW50RmlsZVRyZWVXaWR0aD10aGlzLmZpbGVUcmVlV2lkdGgsdGhpcy5jdXJyZW50VGVybWluYWxIZWlnaHQ9dGhpcy50ZXJtaW5hbEhlaWdodCx3aW5kb3cuZGlzcGF0Y2hFdmVudChuZXcgRXZlbnQoInJlc2l6ZSIpKX1zdGF0aWN7QXQoaSxyKX19O3JldHVybiBXdD1pfSkoKX0pO3ZhciBYZHI9cCgoKT0+e1pkcigpO281ZSgpfSk7dmFyIFFkcj1wKCgpPT57TmQoKX0pO3ZhciBKZHI9cCgoKT0+e01GKCl9KTt2YXIgS2RyPXAoKCk9Pnt9KTt2YXIgZTVyPXAoKCk9PntXYigpO0tkcigpO1pkZSgpfSk7dmFyIHQ1cj1wKCgpPT57YTVlKCl9KTt2YXIgUWIsRWMscHZhLHI1cixpNXI9cCgoKT0+e3hlKCk7SmUoKTtOZCgpO1FiPWZ1bmN0aW9uKGUsdCxyLGksYSxuKXtmdW5jdGlvbiBvKHkpe2lmKHkhPT12b2lkIDAmJnR5cGVvZiB5IT0iZnVuY3Rpb24iKXRocm93IG5ldyBUeXBlRXJyb3IoIkZ1bmN0aW9uIGV4cGVjdGVkIik7cmV0dXJuIHl9Zm9yKHZhciBzPWkua2luZCxsPXM9PT0iZ2V0dGVyIj8iZ2V0IjpzPT09InNldHRlciI/InNldCI6InZhbHVlIixjPSF0JiZlP2kuc3RhdGljP2U6ZS5wcm90b3R5cGU6bnVsbCx1PXR8fChjP09iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoYyxpLm5hbWUpOnt9KSxkLGg9ITEsZj1yLmxlbmd0aC0xO2Y+PTA7Zi0tKXt2YXIgeD17fTtmb3IodmFyIHYgaW4gaSl4W3ZdPXY9PT0iYWNjZXNzIj97fTppW3ZdO2Zvcih2YXIgdiBpbiBpLmFjY2Vzcyl4LmFjY2Vzc1t2XT1pLmFjY2Vzc1t2XTt4LmFkZEluaXRpYWxpemVyPWZ1bmN0aW9uKHkpe2lmKGgpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGFkZCBpbml0aWFsaXplcnMgYWZ0ZXIgZGVjb3JhdGlvbiBoYXMgY29tcGxldGVkIik7bi5wdXNoKG8oeXx8bnVsbCkpfTt2YXIgYj0oMCxyW2ZdKShzPT09ImFjY2Vzc29yIj97Z2V0OnUuZ2V0LHNldDp1LnNldH06dVtsXSx4KTtpZihzPT09ImFjY2Vzc29yIil7aWYoYj09PXZvaWQgMCljb250aW51ZTtpZihiPT09bnVsbHx8dHlwZW9mIGIhPSJvYmplY3QiKXRocm93IG5ldyBUeXBlRXJyb3IoIk9iamVjdCBleHBlY3RlZCIpOyhkPW8oYi5nZXQpKSYmKHUuZ2V0PWQpLChkPW8oYi5zZXQpKSYmKHUuc2V0PWQpLChkPW8oYi5pbml0KSkmJmEudW5zaGlmdChkKX1lbHNlKGQ9byhiKSkmJihzPT09ImZpZWxkIj9hLnVuc2hpZnQoZCk6dVtsXT1kKX1jJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoYyxpLm5hbWUsdSksaD0hMH0sRWM9ZnVuY3Rpb24oZSx0LHIpe2Zvcih2YXIgaT1hcmd1bWVudHMubGVuZ3RoPjIsYT0wO2E8dC5sZW5ndGg7YSsrKXI9aT90W2FdLmNhbGwoZSxyKTp0W2FdLmNhbGwoZSk7cmV0dXJuIGk/cjp2b2lkIDB9LHB2YT1rdC5wbHVnaW5zLnNtYXJ0cHJvbWlzZS5kZWZlcigpLHI1cj0oKCk9PntsZXQgZT1beWUoImRlZXMtd29ya3NwYWNlLW1hcmtkb3duIildLHQscj1bXSxpLGE9emUsbixvPVtdLHM9W10sbCxjPVtdLHU9W10sZCxoPVtdLGY9W10seCx2PVtdLGI9W107dmFyIHk9Y2xhc3MgZXh0ZW5kcyBhe3N0YXRpY3tpPXRoaXN9c3RhdGlje2xldCB3PXR5cGVvZiBTeW1ib2w9PSJmdW5jdGlvbiImJlN5bWJvbC5tZXRhZGF0YT9PYmplY3QuY3JlYXRlKGFbU3ltYm9sLm1ldGFkYXRhXT8/bnVsbCk6dm9pZCAwO249W2ooe3R5cGU6TnVtYmVyfSldLGw9W2ooe3R5cGU6TnVtYmVyfSldLGQ9W2ZlKCldLHg9W2ZlKCldLFFiKHRoaXMsbnVsbCxuLHtraW5kOiJhY2Nlc3NvciIsbmFtZToic3BsaXRSYXRpbyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6az0+InNwbGl0UmF0aW8iaW4gayxnZXQ6az0+ay5zcGxpdFJhdGlvLHNldDooayxPKT0+e2suc3BsaXRSYXRpbz1PfX0sbWV0YWRhdGE6d30sbyxzKSxRYih0aGlzLG51bGwsbCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6Im1pblBhbmVsU2l6ZSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6az0+Im1pblBhbmVsU2l6ZSJpbiBrLGdldDprPT5rLm1pblBhbmVsU2l6ZSxzZXQ6KGssTyk9PntrLm1pblBhbmVsU2l6ZT1PfX0sbWV0YWRhdGE6d30sYyx1KSxRYih0aGlzLG51bGwsZCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImN1cnJlbnRTcGxpdFJhdGlvIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczprPT4iY3VycmVudFNwbGl0UmF0aW8iaW4gayxnZXQ6az0+ay5jdXJyZW50U3BsaXRSYXRpbyxzZXQ6KGssTyk9PntrLmN1cnJlbnRTcGxpdFJhdGlvPU99fSxtZXRhZGF0YTp3fSxoLGYpLFFiKHRoaXMsbnVsbCx4LHtraW5kOiJhY2Nlc3NvciIsbmFtZToiaXNEcmFnZ2luZyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6az0+ImlzRHJhZ2dpbmciaW4gayxnZXQ6az0+ay5pc0RyYWdnaW5nLHNldDooayxPKT0+e2suaXNEcmFnZ2luZz1PfX0sbWV0YWRhdGE6d30sdixiKSxRYihudWxsLHQ9e3ZhbHVlOml9LGUse2tpbmQ6ImNsYXNzIixuYW1lOmkubmFtZSxtZXRhZGF0YTp3fSxudWxsLHIpLHk9aT10LnZhbHVlLHcmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShpLFN5bWJvbC5tZXRhZGF0YSx7ZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITAsdmFsdWU6d30pfXN0YXRpYyBkZW1vPSgpPT5DYDxkZWVzLXdvcmtzcGFjZS1tYXJrZG93bj48L2RlZXMtd29ya3NwYWNlLW1hcmtkb3duPmA7c3RhdGljIGRlbW9Hcm91cHM9WyJXb3Jrc3BhY2UiXTtzdGF0aWMgc3R5bGVzPVtEZSxtLmRlZmF1bHRTdHlsZXMsb2VgCiAgICAgIDpob3N0IHsKICAgICAgICBkaXNwbGF5OiBibG9jazsKICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgICAgaGVpZ2h0OiAxMDAlOwogICAgICB9CgogICAgICAuc3BsaXRDb250YWluZXIgewogICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgICBoZWlnaHQ6IDEwMCU7CiAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93OwogICAgICB9CgogICAgICAuZWRpdG9yQ29udGFpbmVyIHsKICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgICAgaGVpZ2h0OiAxMDAlOwogICAgICAgIG1pbi13aWR0aDogMTAwcHg7CiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgICAgfQoKICAgICAgLnJlc2l6ZUhhbmRsZSB7CiAgICAgICAgd2lkdGg6IDZweDsKICAgICAgICBoZWlnaHQ6IDEwMCU7CiAgICAgICAgYmFja2dyb3VuZDogJHttLmJkVGhlbWUoIiNlNWU3ZWIiLCIjMzAzNjNkIil9OwogICAgICAgIGN1cnNvcjogY29sLXJlc2l6ZTsKICAgICAgICBmbGV4LXNocmluazogMDsKICAgICAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kIDAuMTVzIGVhc2U7CiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICB9CgogICAgICAucmVzaXplSGFuZGxlOmhvdmVyLAogICAgICAucmVzaXplSGFuZGxlLmRyYWdnaW5nIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke20uYmRUaGVtZSgiIzNiODJmNiIsIiM1OGE2ZmYiKX07CiAgICAgIH0KCiAgICAgIC5yZXNpemVIYW5kbGU6OmFmdGVyIHsKICAgICAgICBjb250ZW50OiAnJzsKICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgICAgdG9wOiA1MCU7CiAgICAgICAgbGVmdDogNTAlOwogICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUsIC01MCUpOwogICAgICAgIHdpZHRoOiAycHg7CiAgICAgICAgaGVpZ2h0OiAzMnB4OwogICAgICAgIGJhY2tncm91bmQ6ICR7bS5iZFRoZW1lKCIjOWNhM2FmIiwiIzZlNzY4MSIpfTsKICAgICAgICBib3JkZXItcmFkaXVzOiAxcHg7CiAgICAgICAgb3BhY2l0eTogMC42OwogICAgICB9CgogICAgICAucmVzaXplSGFuZGxlOmhvdmVyOjphZnRlciwKICAgICAgLnJlc2l6ZUhhbmRsZS5kcmFnZ2luZzo6YWZ0ZXIgewogICAgICAgIGJhY2tncm91bmQ6ICR7bS5iZFRoZW1lKCIjZmZmZmZmIiwiI2ZmZmZmZiIpfTsKICAgICAgICBvcGFjaXR5OiAxOwogICAgICB9CgogICAgICAub3V0bGV0Q29udGFpbmVyIHsKICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgICAgaGVpZ2h0OiAxMDAlOwogICAgICAgIG1pbi13aWR0aDogMTAwcHg7CiAgICAgICAgYmFja2dyb3VuZDogJHttLmJkVGhlbWUoIiNmZmZmZmYiLCIjMGQxMTE3Iil9OwogICAgICAgIGNvbG9yOiAke20uYmRUaGVtZSgiIzI0MjkyZiIsIiNlNmVkZjMiKX07CiAgICAgICAgZm9udC1mYW1pbHk6IC1hcHBsZS1zeXN0ZW0sIEJsaW5rTWFjU3lzdGVtRm9udCwgJ1NlZ29lIFVJJywgJ05vdG8gU2FucycsIEhlbHZldGljYSwgQXJpYWwsIHNhbnMtc2VyaWY7CiAgICAgICAgcGFkZGluZzogMjBweDsKICAgICAgICBvdmVyZmxvdy15OiBhdXRvOwogICAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7CiAgICAgIH0KCiAgICAgIC8qIFByZXZlbnQgdGV4dCBzZWxlY3Rpb24gd2hpbGUgZHJhZ2dpbmcgKi8KICAgICAgLnNwbGl0Q29udGFpbmVyLmRyYWdnaW5nIHsKICAgICAgICB1c2VyLXNlbGVjdDogbm9uZTsKICAgICAgfQoKICAgICAgLnNwbGl0Q29udGFpbmVyLmRyYWdnaW5nIC5lZGl0b3JDb250YWluZXIsCiAgICAgIC5zcGxpdENvbnRhaW5lci5kcmFnZ2luZyAub3V0bGV0Q29udGFpbmVyIHsKICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTsKICAgICAgfQogICAgYF07I2U9RWModGhpcyxvLDUwKTtnZXQgc3BsaXRSYXRpbygpe3JldHVybiB0aGlzLiNlfXNldCBzcGxpdFJhdGlvKHcpe3RoaXMuI2U9d30jdD0oRWModGhpcyxzKSxFYyh0aGlzLGMsMTApKTtnZXQgbWluUGFuZWxTaXplKCl7cmV0dXJuIHRoaXMuI3R9c2V0IG1pblBhbmVsU2l6ZSh3KXt0aGlzLiN0PXd9I3I9KEVjKHRoaXMsdSksRWModGhpcyxoLDUwKSk7Z2V0IGN1cnJlbnRTcGxpdFJhdGlvKCl7cmV0dXJuIHRoaXMuI3J9c2V0IGN1cnJlbnRTcGxpdFJhdGlvKHcpe3RoaXMuI3I9d30jaT0oRWModGhpcyxmKSxFYyh0aGlzLHYsITEpKTtnZXQgaXNEcmFnZ2luZygpe3JldHVybiB0aGlzLiNpfXNldCBpc0RyYWdnaW5nKHcpe3RoaXMuI2k9d31yZXNpemVIYW5kbGVFbGVtZW50PUVjKHRoaXMsYik7Y29udGFpbmVyRWxlbWVudDtyZW5kZXIoKXtyZXR1cm4gQ2AKICAgICAgPGRpdiBjbGFzcz0ic3BsaXRDb250YWluZXIgJHt0aGlzLmlzRHJhZ2dpbmc/ImRyYWdnaW5nIjoiIn0iPgogICAgICAgIDxkaXYgY2xhc3M9ImVkaXRvckNvbnRhaW5lciIgc3R5bGU9IndpZHRoOiAke3RoaXMuY3VycmVudFNwbGl0UmF0aW99JSI+CiAgICAgICAgICA8ZGVlcy13b3Jrc3BhY2UtbW9uYWNvCiAgICAgICAgICAgIC5sYW5ndWFnZT0keyJtYXJrZG93biJ9CiAgICAgICAgICAgIC5jb250ZW50PSR7YCMgYSB0ZXN0IGNvbnRlbnQKClRoaXMgaXMgdGVzdCBjb250ZW50IHRoYXQgaXMgb2YgbG9uZ2VyIGZvcm0gYW4gaG9wZWZ1bGx5IHN0YXJ0cyB0byB3cmFwIHdoZW4gSSBuZWVkIGl0LiBBbmQgeWVzLCBpdCBkb2VzIHBlcmZlY3RseS4gbmljZS4KClRlc3QgfCBIZWxsbwotLS0gfCAtLS0KWWVhaCB8IFNvIGdvb2QKClRoaXMgaXMgcmVhbCBhc3NldCBJIHRoaW5rLiBXaHkgd291bGQgd2Ugd2FudCB0byBsZWF2ZSB0aGF0IG9uIHRoZSB0YWJsZT8gQ2FuIHlvdSB0ZWxsIG15IHRoYXQ/CgpXaHkgYXJlIHdlIGhlcmU/CgpEbyB5b3Uga25vdz8KCj4gbm90ZToKVGhlcmUgaXMgc29tZXRoaW5nIGdvaW5nIG9uLgoKXGBcYFxgdHlwZXNjcmlwdApjb25zdCBoZWxsbyA9ICd5ZXMnClxgXGBcYApgfQogICAgICAgICAgICB3b3JkV3JhcD0iYm91bmRlZCIKICAgICAgICAgID48L2RlZXMtd29ya3NwYWNlLW1vbmFjbz4KICAgICAgICA8L2Rpdj4KICAgICAgICA8ZGl2CiAgICAgICAgICBjbGFzcz0icmVzaXplSGFuZGxlICR7dGhpcy5pc0RyYWdnaW5nPyJkcmFnZ2luZyI6IiJ9IgogICAgICAgICAgQG1vdXNlZG93bj0ke3RoaXMuaGFuZGxlTW91c2VEb3dufQogICAgICAgID48L2Rpdj4KICAgICAgICA8ZGl2IGNsYXNzPSJvdXRsZXRDb250YWluZXIiIHN0eWxlPSJ3aWR0aDogJHsxMDAtdGhpcy5jdXJyZW50U3BsaXRSYXRpb30lIj4KICAgICAgICAgIDxkZWVzLXdvcmtzcGFjZS1tYXJrZG93bm91dGxldD48L2RlZXMtd29ya3NwYWNlLW1hcmtkb3dub3V0bGV0PgogICAgICAgIDwvZGl2PgogICAgICA8L2Rpdj4KICAgIGB9YXN5bmMgZmlyc3RVcGRhdGVkKHcpe2F3YWl0IHN1cGVyLmZpcnN0VXBkYXRlZCh3KSx0aGlzLmN1cnJlbnRTcGxpdFJhdGlvPXRoaXMuc3BsaXRSYXRpbyx0aGlzLmNvbnRhaW5lckVsZW1lbnQ9dGhpcy5zaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3IoIi5zcGxpdENvbnRhaW5lciIpLHRoaXMucmVzaXplSGFuZGxlRWxlbWVudD10aGlzLnNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvcigiLnJlc2l6ZUhhbmRsZSIpO2xldCBrPXRoaXMuc2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yKCJkZWVzLXdvcmtzcGFjZS1tb25hY28iKSxPPXRoaXMuc2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yKCJkZWVzLXdvcmtzcGFjZS1tYXJrZG93bm91dGxldCIpLE09YXdhaXQgbmV3IGt0LnBsdWdpbnMuc21hcnRtYXJrZG93bi5TbWFydE1hcmtkb3duKCkuZ2V0TWRQYXJzZWRSZXN1bHRGcm9tTWFya2Rvd24oImxvYWRpbmcuLi4iKTtrLmNvbnRlbnRTdWJqZWN0LnN1YnNjcmliZShhc3luYyBGPT57YXdhaXQgTS51cGRhdGVGcm9tTWFya2Rvd25TdHJpbmcoRik7bGV0IEQ9TS5odG1sO08udXBkYXRlSHRtbFRleHQoRCl9KX1oYW5kbGVNb3VzZURvd249dz0+e3cucHJldmVudERlZmF1bHQoKSx0aGlzLmlzRHJhZ2dpbmc9ITAsZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigibW91c2Vtb3ZlIix0aGlzLmhhbmRsZU1vdXNlTW92ZSksZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigibW91c2V1cCIsdGhpcy5oYW5kbGVNb3VzZVVwKX07aGFuZGxlTW91c2VNb3ZlPXc9PntpZighdGhpcy5pc0RyYWdnaW5nfHwhdGhpcy5jb250YWluZXJFbGVtZW50KXJldHVybjtsZXQgaz10aGlzLmNvbnRhaW5lckVsZW1lbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCksTz1rLndpZHRoLE09KHcuY2xpZW50WC1rLmxlZnQpL08qMTAwO009TWF0aC5tYXgodGhpcy5taW5QYW5lbFNpemUsTWF0aC5taW4oMTAwLXRoaXMubWluUGFuZWxTaXplLE0pKSx0aGlzLmN1cnJlbnRTcGxpdFJhdGlvPU19O2hhbmRsZU1vdXNlVXA9KCk9Pnt0aGlzLmlzRHJhZ2dpbmc9ITEsZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcigibW91c2Vtb3ZlIix0aGlzLmhhbmRsZU1vdXNlTW92ZSksZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcigibW91c2V1cCIsdGhpcy5oYW5kbGVNb3VzZVVwKSx0aGlzLnNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvcigiZGVlcy13b3Jrc3BhY2UtbW9uYWNvIikmJndpbmRvdy5kaXNwYXRjaEV2ZW50KG5ldyBFdmVudCgicmVzaXplIikpfTthc3luYyBkaXNjb25uZWN0ZWRDYWxsYmFjaygpe2F3YWl0IHN1cGVyLmRpc2Nvbm5lY3RlZENhbGxiYWNrKCksZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcigibW91c2Vtb3ZlIix0aGlzLmhhbmRsZU1vdXNlTW92ZSksZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcigibW91c2V1cCIsdGhpcy5oYW5kbGVNb3VzZVVwKX1zZXRTcGxpdFJhdGlvKHcpe3RoaXMuY3VycmVudFNwbGl0UmF0aW89TWF0aC5tYXgodGhpcy5taW5QYW5lbFNpemUsTWF0aC5taW4oMTAwLXRoaXMubWluUGFuZWxTaXplLHcpKX1yZXNldFNwbGl0UmF0aW8oKXt0aGlzLmN1cnJlbnRTcGxpdFJhdGlvPXRoaXMuc3BsaXRSYXRpb31zdGF0aWN7RWMoaSxyKX19O3JldHVybiB5PWl9KSgpfSk7dmFyIGE1cj1wKCgpPT57aTVyKCl9KTt2YXIgbjVyLG81cj1wKCgpPT57eGUoKTtwMSgpO09pKCk7bjVyPSgpPT5DYAogIDxkZWVzLWRlbW93cmFwcGVyPgogICAgPHN0eWxlPgogICAgICAke29lYAogICAgICAgIC5kZW1vLWNvbnRhaW5lciB7CiAgICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgICAgIGdhcDogMjRweDsKICAgICAgICAgIHBhZGRpbmc6IDI0cHg7CiAgICAgICAgICBtYXgtd2lkdGg6IDkwMHB4OwogICAgICAgICAgbWFyZ2luOiAwIGF1dG87CiAgICAgICAgfQogICAgICBgfQogICAgPC9zdHlsZT4KCiAgICA8ZGl2IGNsYXNzPSJkZW1vLWNvbnRhaW5lciI+CiAgICAgIDwhLS0gRGVtbyAxOiBIZWFkaW5ncyAtLT4KICAgICAgPGRlZXMtcGFuZWwKICAgICAgICAudGl0bGU9JHsiSGVhZGluZ3MifQogICAgICAgIC5zdWJ0aXRsZT0keyJBbGwgaGVhZGluZyBsZXZlbHMgZnJvbSBIMSB0byBINiJ9CiAgICAgICAgLnJ1bkFmdGVyUmVuZGVyPSR7YXN5bmMgZT0+e2F3YWl0IGUucXVlcnlTZWxlY3RvcigiZGVlcy13b3Jrc3BhY2UtbWFya2Rvd25vdXRsZXQiKT8udXBkYXRlSHRtbFRleHQoYAogICAgICAgICAgICA8aDE+SGVhZGluZyBMZXZlbCAxPC9oMT4KICAgICAgICAgICAgPGgyPkhlYWRpbmcgTGV2ZWwgMjwvaDI+CiAgICAgICAgICAgIDxoMz5IZWFkaW5nIExldmVsIDM8L2gzPgogICAgICAgICAgICA8aDQ+SGVhZGluZyBMZXZlbCA0PC9oND4KICAgICAgICAgICAgPGg1PkhlYWRpbmcgTGV2ZWwgNTwvaDU+CiAgICAgICAgICAgIDxoNj5IZWFkaW5nIExldmVsIDY8L2g2PgogICAgICAgICAgYCl9fQogICAgICA+CiAgICAgICAgPGRlZXMtd29ya3NwYWNlLW1hcmtkb3dub3V0bGV0PjwvZGVlcy13b3Jrc3BhY2UtbWFya2Rvd25vdXRsZXQ+CiAgICAgIDwvZGVlcy1wYW5lbD4KCiAgICAgIDwhLS0gRGVtbyAyOiBUZXh0IEZvcm1hdHRpbmcgLS0+CiAgICAgIDxkZWVzLXBhbmVsCiAgICAgICAgLnRpdGxlPSR7IlRleHQgRm9ybWF0dGluZyJ9CiAgICAgICAgLnN1YnRpdGxlPSR7IkJvbGQsIGl0YWxpYywgbGlua3MsIGNvZGUsIGFuZCBrZXlib2FyZCBpbnB1dCJ9CiAgICAgICAgLnJ1bkFmdGVyUmVuZGVyPSR7YXN5bmMgZT0+e2F3YWl0IGUucXVlcnlTZWxlY3RvcigiZGVlcy13b3Jrc3BhY2UtbWFya2Rvd25vdXRsZXQiKT8udXBkYXRlSHRtbFRleHQoYAogICAgICAgICAgICA8cD5UaGlzIGlzIGEgcGFyYWdyYXBoIHdpdGggPHN0cm9uZz5ib2xkIHRleHQ8L3N0cm9uZz4gYW5kIDxlbT5pdGFsaWMgdGV4dDwvZW0+LjwvcD4KICAgICAgICAgICAgPHA+WW91IGNhbiBhbHNvIHVzZSA8c3Ryb25nPjxlbT5ib2xkIGl0YWxpYzwvZW0+PC9zdHJvbmc+IGZvciBlbXBoYXNpcy48L3A+CiAgICAgICAgICAgIDxwPkhlcmUncyBhIDxhIGhyZWY9IiMiPmxpbmsgZXhhbXBsZTwvYT4gYW5kIHNvbWUgPGNvZGU+aW5saW5lIGNvZGU8L2NvZGU+LjwvcD4KICAgICAgICAgICAgPHA+UHJlc3MgPGtiZD5DdHJsPC9rYmQ+ICsgPGtiZD5DPC9rYmQ+IHRvIGNvcHkgdGV4dC48L3A+CiAgICAgICAgICAgIDxocj4KICAgICAgICAgICAgPHA+QWJvdmUgaXMgYSBob3Jpem9udGFsIHJ1bGUgc2VwYXJhdG9yLjwvcD4KICAgICAgICAgIGApfX0KICAgICAgPgogICAgICAgIDxkZWVzLXdvcmtzcGFjZS1tYXJrZG93bm91dGxldD48L2RlZXMtd29ya3NwYWNlLW1hcmtkb3dub3V0bGV0PgogICAgICA8L2RlZXMtcGFuZWw+CgogICAgICA8IS0tIERlbW8gMzogTGlzdHMgLS0+CiAgICAgIDxkZWVzLXBhbmVsCiAgICAgICAgLnRpdGxlPSR7Ikxpc3RzIn0KICAgICAgICAuc3VidGl0bGU9JHsiT3JkZXJlZCwgdW5vcmRlcmVkLCBhbmQgdGFzayBsaXN0cyJ9CiAgICAgICAgLnJ1bkFmdGVyUmVuZGVyPSR7YXN5bmMgZT0+e2F3YWl0IGUucXVlcnlTZWxlY3RvcigiZGVlcy13b3Jrc3BhY2UtbWFya2Rvd25vdXRsZXQiKT8udXBkYXRlSHRtbFRleHQoYAogICAgICAgICAgICA8aDM+VW5vcmRlcmVkIExpc3Q8L2gzPgogICAgICAgICAgICA8dWw+CiAgICAgICAgICAgICAgPGxpPkZpcnN0IGl0ZW08L2xpPgogICAgICAgICAgICAgIDxsaT5TZWNvbmQgaXRlbQogICAgICAgICAgICAgICAgPHVsPgogICAgICAgICAgICAgICAgICA8bGk+TmVzdGVkIGl0ZW0gMTwvbGk+CiAgICAgICAgICAgICAgICAgIDxsaT5OZXN0ZWQgaXRlbSAyPC9saT4KICAgICAgICAgICAgICAgIDwvdWw+CiAgICAgICAgICAgICAgPC9saT4KICAgICAgICAgICAgICA8bGk+VGhpcmQgaXRlbTwvbGk+CiAgICAgICAgICAgIDwvdWw+CgogICAgICAgICAgICA8aDM+T3JkZXJlZCBMaXN0PC9oMz4KICAgICAgICAgICAgPG9sPgogICAgICAgICAgICAgIDxsaT5TdGVwIG9uZTwvbGk+CiAgICAgICAgICAgICAgPGxpPlN0ZXAgdHdvPC9saT4KICAgICAgICAgICAgICA8bGk+U3RlcCB0aHJlZTwvbGk+CiAgICAgICAgICAgIDwvb2w+CgogICAgICAgICAgICA8aDM+VGFzayBMaXN0PC9oMz4KICAgICAgICAgICAgPHVsPgogICAgICAgICAgICAgIDxsaSBjbGFzcz0idGFzay1saXN0LWl0ZW0iPjxpbnB1dCB0eXBlPSJjaGVja2JveCIgY2hlY2tlZCBkaXNhYmxlZD4gQ29tcGxldGVkIHRhc2s8L2xpPgogICAgICAgICAgICAgIDxsaSBjbGFzcz0idGFzay1saXN0LWl0ZW0iPjxpbnB1dCB0eXBlPSJjaGVja2JveCIgZGlzYWJsZWQ+IFBlbmRpbmcgdGFzazwvbGk+CiAgICAgICAgICAgICAgPGxpIGNsYXNzPSJ0YXNrLWxpc3QtaXRlbSI+PGlucHV0IHR5cGU9ImNoZWNrYm94IiBkaXNhYmxlZD4gQW5vdGhlciB0YXNrPC9saT4KICAgICAgICAgICAgPC91bD4KICAgICAgICAgIGApfX0KICAgICAgPgogICAgICAgIDxkZWVzLXdvcmtzcGFjZS1tYXJrZG93bm91dGxldD48L2RlZXMtd29ya3NwYWNlLW1hcmtkb3dub3V0bGV0PgogICAgICA8L2RlZXMtcGFuZWw+CgogICAgICA8IS0tIERlbW8gNDogQ29kZSBCbG9ja3MgLS0+CiAgICAgIDxkZWVzLXBhbmVsCiAgICAgICAgLnRpdGxlPSR7IkNvZGUgQmxvY2tzIn0KICAgICAgICAuc3VidGl0bGU9JHsiU3ludGF4IGhpZ2hsaWdodGVkIGNvZGUgZXhhbXBsZXMifQogICAgICAgIC5ydW5BZnRlclJlbmRlcj0ke2FzeW5jIGU9Pnthd2FpdCBlLnF1ZXJ5U2VsZWN0b3IoImRlZXMtd29ya3NwYWNlLW1hcmtkb3dub3V0bGV0Iik/LnVwZGF0ZUh0bWxUZXh0KGAKICAgICAgICAgICAgPHA+SW5saW5lIGNvZGU6IDxjb2RlPmNvbnN0IGdyZWV0aW5nID0gIkhlbGxvLCBXb3JsZCEiOzwvY29kZT48L3A+CgogICAgICAgICAgICA8aDM+VHlwZVNjcmlwdCBFeGFtcGxlPC9oMz4KICAgICAgICAgICAgPHByZT48Y29kZT48c3BhbiBjbGFzcz0iaGxqcy1rZXl3b3JkIj5pbXBvcnQ8L3NwYW4+IHsgaHRtbCwgY3NzIH0gPHNwYW4gY2xhc3M9ImhsanMta2V5d29yZCI+ZnJvbTwvc3Bhbj4gPHNwYW4gY2xhc3M9ImhsanMtc3RyaW5nIj4nQGRlc2lnbi5lc3RhdGUvZGVlcy1lbGVtZW50Jzwvc3Bhbj47Cgo8c3BhbiBjbGFzcz0iaGxqcy1rZXl3b3JkIj5pbnRlcmZhY2U8L3NwYW4+IDxzcGFuIGNsYXNzPSJobGpzLXRpdGxlIj5JVXNlcjwvc3Bhbj4gewogIDxzcGFuIGNsYXNzPSJobGpzLWF0dHIiPm5hbWU8L3NwYW4+OiA8c3BhbiBjbGFzcz0iaGxqcy1idWlsdF9pbiI+c3RyaW5nPC9zcGFuPjsKICA8c3BhbiBjbGFzcz0iaGxqcy1hdHRyIj5lbWFpbDwvc3Bhbj46IDxzcGFuIGNsYXNzPSJobGpzLWJ1aWx0X2luIj5zdHJpbmc8L3NwYW4+OwogIDxzcGFuIGNsYXNzPSJobGpzLWF0dHIiPmFnZTwvc3Bhbj4/OiA8c3BhbiBjbGFzcz0iaGxqcy1idWlsdF9pbiI+bnVtYmVyPC9zcGFuPjsKfQoKPHNwYW4gY2xhc3M9ImhsanMta2V5d29yZCI+Y29uc3Q8L3NwYW4+IDxzcGFuIGNsYXNzPSJobGpzLXRpdGxlIj5nZXRVc2VyPC9zcGFuPiA9IDxzcGFuIGNsYXNzPSJobGpzLWtleXdvcmQiPmFzeW5jPC9zcGFuPiAoPHNwYW4gY2xhc3M9ImhsanMtYXR0ciI+aWQ8L3NwYW4+OiA8c3BhbiBjbGFzcz0iaGxqcy1idWlsdF9pbiI+c3RyaW5nPC9zcGFuPik6IDxzcGFuIGNsYXNzPSJobGpzLWJ1aWx0X2luIj5Qcm9taXNlPC9zcGFuPiZsdDtJVXNlciZndDsgPSZndDsgewogIDxzcGFuIGNsYXNzPSJobGpzLWtleXdvcmQiPmNvbnN0PC9zcGFuPiByZXNwb25zZSA9IDxzcGFuIGNsYXNzPSJobGpzLWtleXdvcmQiPmF3YWl0PC9zcGFuPiBmZXRjaChcYC9hcGkvdXNlcnMvXCR7aWR9XGApOwogIDxzcGFuIGNsYXNzPSJobGpzLWtleXdvcmQiPnJldHVybjwvc3Bhbj4gcmVzcG9uc2UuanNvbigpOwp9OzwvY29kZT48L3ByZT4KCiAgICAgICAgICAgIDxoMz5KU09OIEV4YW1wbGU8L2gzPgogICAgICAgICAgICA8cHJlPjxjb2RlPnsKICA8c3BhbiBjbGFzcz0iaGxqcy1hdHRyIj4ibmFtZSI8L3NwYW4+OiA8c3BhbiBjbGFzcz0iaGxqcy1zdHJpbmciPiJkZWVzLWNhdGFsb2ciPC9zcGFuPiwKICA8c3BhbiBjbGFzcz0iaGxqcy1hdHRyIj4idmVyc2lvbiI8L3NwYW4+OiA8c3BhbiBjbGFzcz0iaGxqcy1zdHJpbmciPiIzLjAuMCI8L3NwYW4+LAogIDxzcGFuIGNsYXNzPSJobGpzLWF0dHIiPiJkZXBlbmRlbmNpZXMiPC9zcGFuPjogewogICAgPHNwYW4gY2xhc3M9ImhsanMtYXR0ciI+IkBkZXNpZ24uZXN0YXRlL2RlZXMtZWxlbWVudCI8L3NwYW4+OiA8c3BhbiBjbGFzcz0iaGxqcy1zdHJpbmciPiJeMi4wLjAiPC9zcGFuPgogIH0KfTwvY29kZT48L3ByZT4KICAgICAgICAgIGApfX0KICAgICAgPgogICAgICAgIDxkZWVzLXdvcmtzcGFjZS1tYXJrZG93bm91dGxldD48L2RlZXMtd29ya3NwYWNlLW1hcmtkb3dub3V0bGV0PgogICAgICA8L2RlZXMtcGFuZWw+CgogICAgICA8IS0tIERlbW8gNTogVGFibGVzIC0tPgogICAgICA8ZGVlcy1wYW5lbAogICAgICAgIC50aXRsZT0keyJUYWJsZXMifQogICAgICAgIC5zdWJ0aXRsZT0keyJTdHlsZWQgdGFibGVzIHdpdGggYWx0ZXJuYXRpbmcgcm93cyJ9CiAgICAgICAgLnJ1bkFmdGVyUmVuZGVyPSR7YXN5bmMgZT0+e2F3YWl0IGUucXVlcnlTZWxlY3RvcigiZGVlcy13b3Jrc3BhY2UtbWFya2Rvd25vdXRsZXQiKT8udXBkYXRlSHRtbFRleHQoYAogICAgICAgICAgICA8dGFibGU+CiAgICAgICAgICAgICAgPHRoZWFkPgogICAgICAgICAgICAgICAgPHRyPgogICAgICAgICAgICAgICAgICA8dGg+RmVhdHVyZTwvdGg+CiAgICAgICAgICAgICAgICAgIDx0aD5TdGF0dXM8L3RoPgogICAgICAgICAgICAgICAgICA8dGg+UHJpb3JpdHk8L3RoPgogICAgICAgICAgICAgICAgPC90cj4KICAgICAgICAgICAgICA8L3RoZWFkPgogICAgICAgICAgICAgIDx0Ym9keT4KICAgICAgICAgICAgICAgIDx0cj4KICAgICAgICAgICAgICAgICAgPHRkPkRhcmsgbW9kZSBzdXBwb3J0PC90ZD4KICAgICAgICAgICAgICAgICAgPHRkPkNvbXBsZXRlZDwvdGQ+CiAgICAgICAgICAgICAgICAgIDx0ZD5IaWdoPC90ZD4KICAgICAgICAgICAgICAgIDwvdHI+CiAgICAgICAgICAgICAgICA8dHI+CiAgICAgICAgICAgICAgICAgIDx0ZD5SZXNwb25zaXZlIGRlc2lnbjwvdGQ+CiAgICAgICAgICAgICAgICAgIDx0ZD5JbiBQcm9ncmVzczwvdGQ+CiAgICAgICAgICAgICAgICAgIDx0ZD5NZWRpdW08L3RkPgogICAgICAgICAgICAgICAgPC90cj4KICAgICAgICAgICAgICAgIDx0cj4KICAgICAgICAgICAgICAgICAgPHRkPkFjY2Vzc2liaWxpdHk8L3RkPgogICAgICAgICAgICAgICAgICA8dGQ+UGxhbm5lZDwvdGQ+CiAgICAgICAgICAgICAgICAgIDx0ZD5IaWdoPC90ZD4KICAgICAgICAgICAgICAgIDwvdHI+CiAgICAgICAgICAgICAgICA8dHI+CiAgICAgICAgICAgICAgICAgIDx0ZD5Eb2N1bWVudGF0aW9uPC90ZD4KICAgICAgICAgICAgICAgICAgPHRkPkluIFByb2dyZXNzPC90ZD4KICAgICAgICAgICAgICAgICAgPHRkPkxvdzwvdGQ+CiAgICAgICAgICAgICAgICA8L3RyPgogICAgICAgICAgICAgIDwvdGJvZHk+CiAgICAgICAgICAgIDwvdGFibGU+CiAgICAgICAgICBgKX19CiAgICAgID4KICAgICAgICA8ZGVlcy13b3Jrc3BhY2UtbWFya2Rvd25vdXRsZXQ+PC9kZWVzLXdvcmtzcGFjZS1tYXJrZG93bm91dGxldD4KICAgICAgPC9kZWVzLXBhbmVsPgoKICAgICAgPCEtLSBEZW1vIDY6IEJsb2NrcXVvdGVzICYgQWxlcnRzIC0tPgogICAgICA8ZGVlcy1wYW5lbAogICAgICAgIC50aXRsZT0keyJCbG9ja3F1b3RlcyAmIEFsZXJ0cyJ9CiAgICAgICAgLnN1YnRpdGxlPSR7IlF1b3RlcyBhbmQgR2l0SHViLXN0eWxlIGFsZXJ0cyJ9CiAgICAgICAgLnJ1bkFmdGVyUmVuZGVyPSR7YXN5bmMgZT0+e2F3YWl0IGUucXVlcnlTZWxlY3RvcigiZGVlcy13b3Jrc3BhY2UtbWFya2Rvd25vdXRsZXQiKT8udXBkYXRlSHRtbFRleHQoYAogICAgICAgICAgICA8YmxvY2txdW90ZT4KICAgICAgICAgICAgICA8cD5UaGlzIGlzIGEgc3RhbmRhcmQgYmxvY2txdW90ZS4gSXQncyBncmVhdCBmb3IgaGlnaGxpZ2h0aW5nIGltcG9ydGFudCBpbmZvcm1hdGlvbiBvciBxdW90ZXMgZnJvbSBvdGhlciBzb3VyY2VzLjwvcD4KICAgICAgICAgICAgPC9ibG9ja3F1b3RlPgoKICAgICAgICAgICAgPGRpdiBjbGFzcz0ibWFya2Rvd24tYWxlcnQgbWFya2Rvd24tYWxlcnQtbm90ZSI+CiAgICAgICAgICAgICAgPHA+PHN0cm9uZz5Ob3RlOjwvc3Ryb25nPiBUaGlzIGlzIGFuIGluZm9ybWF0aW9uYWwgbm90ZSB0byBkcmF3IGF0dGVudGlvbiB0byBpbXBvcnRhbnQgZGV0YWlscy48L3A+CiAgICAgICAgICAgIDwvZGl2PgoKICAgICAgICAgICAgPGRpdiBjbGFzcz0ibWFya2Rvd24tYWxlcnQgbWFya2Rvd24tYWxlcnQtdGlwIj4KICAgICAgICAgICAgICA8cD48c3Ryb25nPlRpcDo8L3N0cm9uZz4gSGVyZSdzIGEgaGVscGZ1bCB0aXAgdG8gaW1wcm92ZSB5b3VyIHdvcmtmbG93LjwvcD4KICAgICAgICAgICAgPC9kaXY+CgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJtYXJrZG93bi1hbGVydCBtYXJrZG93bi1hbGVydC1pbXBvcnRhbnQiPgogICAgICAgICAgICAgIDxwPjxzdHJvbmc+SW1wb3J0YW50Ojwvc3Ryb25nPiBUaGlzIGluZm9ybWF0aW9uIGlzIGNydWNpYWwgZm9yIHVuZGVyc3RhbmRpbmcgdGhlIHRvcGljLjwvcD4KICAgICAgICAgICAgPC9kaXY+CgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJtYXJrZG93bi1hbGVydCBtYXJrZG93bi1hbGVydC13YXJuaW5nIj4KICAgICAgICAgICAgICA8cD48c3Ryb25nPldhcm5pbmc6PC9zdHJvbmc+IEJlIGNhcmVmdWwgd2hlbiBwZXJmb3JtaW5nIHRoaXMgYWN0aW9uLjwvcD4KICAgICAgICAgICAgPC9kaXY+CgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJtYXJrZG93bi1hbGVydCBtYXJrZG93bi1hbGVydC1jYXV0aW9uIj4KICAgICAgICAgICAgICA8cD48c3Ryb25nPkNhdXRpb246PC9zdHJvbmc+IFRoaXMgYWN0aW9uIG1heSBoYXZlIHVuaW50ZW5kZWQgY29uc2VxdWVuY2VzLjwvcD4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICBgKX19CiAgICAgID4KICAgICAgICA8ZGVlcy13b3Jrc3BhY2UtbWFya2Rvd25vdXRsZXQ+PC9kZWVzLXdvcmtzcGFjZS1tYXJrZG93bm91dGxldD4KICAgICAgPC9kZWVzLXBhbmVsPgoKICAgICAgPCEtLSBEZW1vIDc6IEZ1bGwgRG9jdW1lbnQgLS0+CiAgICAgIDxkZWVzLXBhbmVsCiAgICAgICAgLnRpdGxlPSR7IkZ1bGwgRG9jdW1lbnQifQogICAgICAgIC5zdWJ0aXRsZT0keyJBIGNvbXBsZXRlIG1hcmtkb3duIGRvY3VtZW50IGV4YW1wbGUifQogICAgICAgIC5ydW5BZnRlclJlbmRlcj0ke2FzeW5jIGU9Pnthd2FpdCBlLnF1ZXJ5U2VsZWN0b3IoImRlZXMtd29ya3NwYWNlLW1hcmtkb3dub3V0bGV0Iik/LnVwZGF0ZUh0bWxUZXh0KGAKICAgICAgICAgICAgPGgxPkdldHRpbmcgU3RhcnRlZCBHdWlkZTwvaDE+CiAgICAgICAgICAgIDxwPldlbGNvbWUgdG8gdGhlIDxzdHJvbmc+ZGVlcy1jYXRhbG9nPC9zdHJvbmc+IGNvbXBvbmVudCBsaWJyYXJ5LiBUaGlzIGd1aWRlIHdpbGwgaGVscCB5b3UgZ2V0IHVwIGFuZCBydW5uaW5nIHF1aWNrbHkuPC9wPgoKICAgICAgICAgICAgPGgyPkluc3RhbGxhdGlvbjwvaDI+CiAgICAgICAgICAgIDxwPkluc3RhbGwgdGhlIHBhY2thZ2UgdXNpbmcgeW91ciBwcmVmZXJyZWQgcGFja2FnZSBtYW5hZ2VyOjwvcD4KICAgICAgICAgICAgPHByZT48Y29kZT48c3BhbiBjbGFzcz0iaGxqcy1jb21tZW50Ij4jIFVzaW5nIHBucG0gKHJlY29tbWVuZGVkKTwvc3Bhbj4KcG5wbSBhZGQgQGRlc2lnbi5lc3RhdGUvZGVlcy1jYXRhbG9nCgo8c3BhbiBjbGFzcz0iaGxqcy1jb21tZW50Ij4jIFVzaW5nIG5wbTwvc3Bhbj4KbnBtIGluc3RhbGwgQGRlc2lnbi5lc3RhdGUvZGVlcy1jYXRhbG9nPC9jb2RlPjwvcHJlPgoKICAgICAgICAgICAgPGgyPkJhc2ljIFVzYWdlPC9oMj4KICAgICAgICAgICAgPHA+SW1wb3J0IGFuZCB1c2UgY29tcG9uZW50cyBpbiB5b3VyIFR5cGVTY3JpcHQgZmlsZXM6PC9wPgogICAgICAgICAgICA8cHJlPjxjb2RlPjxzcGFuIGNsYXNzPSJobGpzLWtleXdvcmQiPmltcG9ydDwvc3Bhbj4geyBEZWVzQnV0dG9uIH0gPHNwYW4gY2xhc3M9ImhsanMta2V5d29yZCI+ZnJvbTwvc3Bhbj4gPHNwYW4gY2xhc3M9ImhsanMtc3RyaW5nIj4nQGRlc2lnbi5lc3RhdGUvZGVlcy1jYXRhbG9nJzwvc3Bhbj47Cgo8c3BhbiBjbGFzcz0iaGxqcy1jb21tZW50Ij4vLyBVc2UgaW4geW91ciB0ZW1wbGF0ZXM8L3NwYW4+Cmh0bWxcYCZsdDtkZWVzLWJ1dHRvbiZndDtDbGljayBtZSZsdDsvZGVlcy1idXR0b24mZ3Q7XGA8L2NvZGU+PC9wcmU+CgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJtYXJrZG93bi1hbGVydCBtYXJrZG93bi1hbGVydC10aXAiPgogICAgICAgICAgICAgIDxwPjxzdHJvbmc+VGlwOjwvc3Ryb25nPiBDaGVjayB0aGUgZGVtbyBzaG93Y2FzZSBmb3IgbGl2ZSBleGFtcGxlcyBvZiBhbGwgY29tcG9uZW50cy48L3A+CiAgICAgICAgICAgIDwvZGl2PgoKICAgICAgICAgICAgPGgyPkF2YWlsYWJsZSBDb21wb25lbnRzPC9oMj4KICAgICAgICAgICAgPHRhYmxlPgogICAgICAgICAgICAgIDx0aGVhZD4KICAgICAgICAgICAgICAgIDx0cj4KICAgICAgICAgICAgICAgICAgPHRoPkNvbXBvbmVudDwvdGg+CiAgICAgICAgICAgICAgICAgIDx0aD5EZXNjcmlwdGlvbjwvdGg+CiAgICAgICAgICAgICAgICA8L3RyPgogICAgICAgICAgICAgIDwvdGhlYWQ+CiAgICAgICAgICAgICAgPHRib2R5PgogICAgICAgICAgICAgICAgPHRyPgogICAgICAgICAgICAgICAgICA8dGQ+PGNvZGU+ZGVlcy1idXR0b248L2NvZGU+PC90ZD4KICAgICAgICAgICAgICAgICAgPHRkPlByaW1hcnkgYnV0dG9uIGNvbXBvbmVudDwvdGQ+CiAgICAgICAgICAgICAgICA8L3RyPgogICAgICAgICAgICAgICAgPHRyPgogICAgICAgICAgICAgICAgICA8dGQ+PGNvZGU+ZGVlcy1pbnB1dC10ZXh0PC9jb2RlPjwvdGQ+CiAgICAgICAgICAgICAgICAgIDx0ZD5UZXh0IGlucHV0IGZpZWxkPC90ZD4KICAgICAgICAgICAgICAgIDwvdHI+CiAgICAgICAgICAgICAgICA8dHI+CiAgICAgICAgICAgICAgICAgIDx0ZD48Y29kZT5kZWVzLXRhYmxlPC9jb2RlPjwvdGQ+CiAgICAgICAgICAgICAgICAgIDx0ZD5EYXRhIHRhYmxlIHdpdGggc29ydGluZzwvdGQ+CiAgICAgICAgICAgICAgICA8L3RyPgogICAgICAgICAgICAgICAgPHRyPgogICAgICAgICAgICAgICAgICA8dGQ+PGNvZGU+ZGVlcy1tb2RhbDwvY29kZT48L3RkPgogICAgICAgICAgICAgICAgICA8dGQ+TW9kYWwgZGlhbG9nPC90ZD4KICAgICAgICAgICAgICAgIDwvdHI+CiAgICAgICAgICAgICAgPC90Ym9keT4KICAgICAgICAgICAgPC90YWJsZT4KCiAgICAgICAgICAgIDxoMj5OZXh0IFN0ZXBzPC9oMj4KICAgICAgICAgICAgPHVsPgogICAgICAgICAgICAgIDxsaT5FeHBsb3JlIHRoZSA8YSBocmVmPSIjIj5jb21wb25lbnQgZG9jdW1lbnRhdGlvbjwvYT48L2xpPgogICAgICAgICAgICAgIDxsaT5DaGVjayBvdXQgdGhlIDxhIGhyZWY9IiMiPnRoZW1pbmcgZ3VpZGU8L2E+PC9saT4KICAgICAgICAgICAgICA8bGk+Sm9pbiBvdXIgPGEgaHJlZj0iIyI+Y29tbXVuaXR5IERpc2NvcmQ8L2E+PC9saT4KICAgICAgICAgICAgPC91bD4KCiAgICAgICAgICAgIDxibG9ja3F1b3RlPgogICAgICAgICAgICAgIDxwPiJUaGUgYmVzdCBjb21wb25lbnQgbGlicmFyeSBpcyBvbmUgdGhhdCBnZXRzIG91dCBvZiB5b3VyIHdheS4iIFx1MjAxNCBEZXNpZ24gU3lzdGVtcyBUZWFtPC9wPgogICAgICAgICAgICA8L2Jsb2NrcXVvdGU+CiAgICAgICAgICBgKX19CiAgICAgID4KICAgICAgICA8ZGVlcy13b3Jrc3BhY2UtbWFya2Rvd25vdXRsZXQ+PC9kZWVzLXdvcmtzcGFjZS1tYXJrZG93bm91dGxldD4KICAgICAgPC9kZWVzLXBhbmVsPgogICAgPC9kaXY+CiAgPC9kZWVzLWRlbW93cmFwcGVyPgpgfSk7dmFyIEpYcixLWHIsczVyLGw1cj1wKCgpPT57eGUoKTtKZSgpO281cigpO0pYcj1mdW5jdGlvbihlLHQscixpLGEsbil7ZnVuY3Rpb24gbyh5KXtpZih5IT09dm9pZCAwJiZ0eXBlb2YgeSE9ImZ1bmN0aW9uIil0aHJvdyBuZXcgVHlwZUVycm9yKCJGdW5jdGlvbiBleHBlY3RlZCIpO3JldHVybiB5fWZvcih2YXIgcz1pLmtpbmQsbD1zPT09ImdldHRlciI/ImdldCI6cz09PSJzZXR0ZXIiPyJzZXQiOiJ2YWx1ZSIsYz0hdCYmZT9pLnN0YXRpYz9lOmUucHJvdG90eXBlOm51bGwsdT10fHwoYz9PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGMsaS5uYW1lKTp7fSksZCxoPSExLGY9ci5sZW5ndGgtMTtmPj0wO2YtLSl7dmFyIHg9e307Zm9yKHZhciB2IGluIGkpeFt2XT12PT09ImFjY2VzcyI/e306aVt2XTtmb3IodmFyIHYgaW4gaS5hY2Nlc3MpeC5hY2Nlc3Nbdl09aS5hY2Nlc3Nbdl07eC5hZGRJbml0aWFsaXplcj1mdW5jdGlvbih5KXtpZihoKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBhZGQgaW5pdGlhbGl6ZXJzIGFmdGVyIGRlY29yYXRpb24gaGFzIGNvbXBsZXRlZCIpO24ucHVzaChvKHl8fG51bGwpKX07dmFyIGI9KDAscltmXSkocz09PSJhY2Nlc3NvciI/e2dldDp1LmdldCxzZXQ6dS5zZXR9OnVbbF0seCk7aWYocz09PSJhY2Nlc3NvciIpe2lmKGI9PT12b2lkIDApY29udGludWU7aWYoYj09PW51bGx8fHR5cGVvZiBiIT0ib2JqZWN0Iil0aHJvdyBuZXcgVHlwZUVycm9yKCJPYmplY3QgZXhwZWN0ZWQiKTsoZD1vKGIuZ2V0KSkmJih1LmdldD1kKSwoZD1vKGIuc2V0KSkmJih1LnNldD1kKSwoZD1vKGIuaW5pdCkpJiZhLnVuc2hpZnQoZCl9ZWxzZShkPW8oYikpJiYocz09PSJmaWVsZCI/YS51bnNoaWZ0KGQpOnVbbF09ZCl9YyYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGMsaS5uYW1lLHUpLGg9ITB9LEtYcj1mdW5jdGlvbihlLHQscil7Zm9yKHZhciBpPWFyZ3VtZW50cy5sZW5ndGg+MixhPTA7YTx0Lmxlbmd0aDthKyspcj1pP3RbYV0uY2FsbChlLHIpOnRbYV0uY2FsbChlKTtyZXR1cm4gaT9yOnZvaWQgMH0sczVyPSgoKT0+e2xldCBlPVt5ZSgiZGVlcy13b3Jrc3BhY2UtbWFya2Rvd25vdXRsZXQiKV0sdCxyPVtdLGksYT16ZTt2YXIgbj1jbGFzcyBleHRlbmRzIGF7c3RhdGlje2k9dGhpc31zdGF0aWN7bGV0IG89dHlwZW9mIFN5bWJvbD09ImZ1bmN0aW9uIiYmU3ltYm9sLm1ldGFkYXRhP09iamVjdC5jcmVhdGUoYVtTeW1ib2wubWV0YWRhdGFdPz9udWxsKTp2b2lkIDA7SlhyKG51bGwsdD17dmFsdWU6aX0sZSx7a2luZDoiY2xhc3MiLG5hbWU6aS5uYW1lLG1ldGFkYXRhOm99LG51bGwsciksbj1pPXQudmFsdWUsbyYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGksU3ltYm9sLm1ldGFkYXRhLHtlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMCx2YWx1ZTpvfSl9c3RhdGljIGRlbW89bjVyO3N0YXRpYyBkZW1vR3JvdXBzPVsiV29ya3NwYWNlIl07c3RhdGljIHN0eWxlcz1bRGUsbS5kZWZhdWx0U3R5bGVzLG9lYAogICAgICA6aG9zdCB7CiAgICAgICAgZGlzcGxheTogYmxvY2s7CiAgICAgICAgZm9udC1mYW1pbHk6IC1hcHBsZS1zeXN0ZW0sIEJsaW5rTWFjU3lzdGVtRm9udCwgJ1NlZ29lIFVJJywgJ05vdG8gU2FucycsIEhlbHZldGljYSwgQXJpYWwsIHNhbnMtc2VyaWY7CiAgICAgICAgZm9udC1zaXplOiAxNnB4OwogICAgICAgIGxpbmUtaGVpZ2h0OiAxLjY7CiAgICAgICAgY29sb3I6ICR7bS5iZFRoZW1lKCIjMjQyOTJmIiwiI2U2ZWRmMyIpfTsKICAgICAgfQoKICAgICAgLm91dGxldCB7CiAgICAgICAgd29yZC13cmFwOiBicmVhay13b3JkOwogICAgICB9CgogICAgICAvKiBIZWFkaW5ncyAqLwogICAgICBoMSwgaDIsIGgzLCBoNCwgaDUsIGg2IHsKICAgICAgICBtYXJnaW4tdG9wOiAyNHB4OwogICAgICAgIG1hcmdpbi1ib3R0b206IDE2cHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDsKICAgICAgICBsaW5lLWhlaWdodDogMS4yNTsKICAgICAgICBjb2xvcjogJHttLmJkVGhlbWUoIiMxZjIzMjgiLCIjZjBmNmZjIil9OwogICAgICB9CgogICAgICBoMSB7CiAgICAgICAgZm9udC1zaXplOiAyZW07CiAgICAgICAgcGFkZGluZy1ib3R0b206IDAuM2VtOwogICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAke20uYmRUaGVtZSgiI2QxZDllMCIsIiMzMDM2M2QiKX07CiAgICAgIH0KCiAgICAgIGgyIHsKICAgICAgICBmb250LXNpemU6IDEuNWVtOwogICAgICAgIHBhZGRpbmctYm90dG9tOiAwLjNlbTsKICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHttLmJkVGhlbWUoIiNkMWQ5ZTAiLCIjMzAzNjNkIil9OwogICAgICB9CgogICAgICBoMyB7CiAgICAgICAgZm9udC1zaXplOiAxLjI1ZW07CiAgICAgIH0KCiAgICAgIGg0IHsKICAgICAgICBmb250LXNpemU6IDFlbTsKICAgICAgfQoKICAgICAgaDUgewogICAgICAgIGZvbnQtc2l6ZTogMC44NzVlbTsKICAgICAgfQoKICAgICAgaDYgewogICAgICAgIGZvbnQtc2l6ZTogMC44NWVtOwogICAgICAgIGNvbG9yOiAke20uYmRUaGVtZSgiIzY1NmQ3NiIsIiM4Yjk0OWUiKX07CiAgICAgIH0KCiAgICAgIC8qIFBhcmFncmFwaHMgYW5kIHRleHQgKi8KICAgICAgcCB7CiAgICAgICAgbWFyZ2luLXRvcDogMDsKICAgICAgICBtYXJnaW4tYm90dG9tOiAxNnB4OwogICAgICB9CgogICAgICAvKiBMaW5rcyAqLwogICAgICBhIHsKICAgICAgICBjb2xvcjogJHttLmJkVGhlbWUoIiMwOTY5ZGEiLCIjNThhNmZmIil9OwogICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTsKICAgICAgfQoKICAgICAgYTpob3ZlciB7CiAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7CiAgICAgIH0KCiAgICAgIC8qIFN0cm9uZyBhbmQgZW1waGFzaXMgKi8KICAgICAgc3Ryb25nIHsKICAgICAgICBmb250LXdlaWdodDogNjAwOwogICAgICAgIGNvbG9yOiAke20uYmRUaGVtZSgiIzFmMjMyOCIsIiNmMGY2ZmMiKX07CiAgICAgIH0KCiAgICAgIGVtIHsKICAgICAgICBmb250LXN0eWxlOiBpdGFsaWM7CiAgICAgIH0KCiAgICAgIC8qIExpc3RzICovCiAgICAgIHVsLCBvbCB7CiAgICAgICAgbWFyZ2luLXRvcDogMDsKICAgICAgICBtYXJnaW4tYm90dG9tOiAxNnB4OwogICAgICAgIHBhZGRpbmctbGVmdDogMmVtOwogICAgICB9CgogICAgICBsaSB7CiAgICAgICAgbWFyZ2luLXRvcDogNHB4OwogICAgICB9CgogICAgICBsaSArIGxpIHsKICAgICAgICBtYXJnaW4tdG9wOiA0cHg7CiAgICAgIH0KCiAgICAgIHVsIHVsLCB1bCBvbCwgb2wgdWwsIG9sIG9sIHsKICAgICAgICBtYXJnaW4tdG9wOiAwOwogICAgICAgIG1hcmdpbi1ib3R0b206IDA7CiAgICAgIH0KCiAgICAgIC8qIEJsb2NrcXVvdGVzICovCiAgICAgIGJsb2NrcXVvdGUgewogICAgICAgIG1hcmdpbjogMCAwIDE2cHggMDsKICAgICAgICBwYWRkaW5nOiAwIDFlbTsKICAgICAgICBjb2xvcjogJHttLmJkVGhlbWUoIiM2NTZkNzYiLCIjOGI5NDllIil9OwogICAgICAgIGJvcmRlci1sZWZ0OiA0cHggc29saWQgJHttLmJkVGhlbWUoIiNkMWQ5ZTAiLCIjMzAzNjNkIil9OwogICAgICB9CgogICAgICBibG9ja3F1b3RlID4gOmZpcnN0LWNoaWxkIHsKICAgICAgICBtYXJnaW4tdG9wOiAwOwogICAgICB9CgogICAgICBibG9ja3F1b3RlID4gOmxhc3QtY2hpbGQgewogICAgICAgIG1hcmdpbi1ib3R0b206IDA7CiAgICAgIH0KCiAgICAgIC8qIElubGluZSBjb2RlICovCiAgICAgIGNvZGUgewogICAgICAgIHBhZGRpbmc6IDAuMmVtIDAuNGVtOwogICAgICAgIG1hcmdpbjogMDsKICAgICAgICBmb250LXNpemU6IDg1JTsKICAgICAgICBmb250LWZhbWlseTogdWktbW9ub3NwYWNlLCBTRk1vbm8tUmVndWxhciwgJ1NGIE1vbm8nLCBNZW5sbywgQ29uc29sYXMsICdMaWJlcmF0aW9uIE1vbm8nLCBtb25vc3BhY2U7CiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHttLmJkVGhlbWUoInJnYmEoMTc1LCAxODQsIDE5MywgMC4yKSIsInJnYmEoMTEwLCAxMTgsIDEyOSwgMC40KSIpfTsKICAgICAgICBib3JkZXItcmFkaXVzOiA2cHg7CiAgICAgICAgd2hpdGUtc3BhY2U6IGJyZWFrLXNwYWNlczsKICAgICAgfQoKICAgICAgLyogQ29kZSBibG9ja3MgKi8KICAgICAgcHJlIHsKICAgICAgICBtYXJnaW4tdG9wOiAwOwogICAgICAgIG1hcmdpbi1ib3R0b206IDE2cHg7CiAgICAgICAgcGFkZGluZzogMTZweDsKICAgICAgICBvdmVyZmxvdzogYXV0bzsKICAgICAgICBmb250LXNpemU6IDg1JTsKICAgICAgICBsaW5lLWhlaWdodDogMS40NTsKICAgICAgICBmb250LWZhbWlseTogdWktbW9ub3NwYWNlLCBTRk1vbm8tUmVndWxhciwgJ1NGIE1vbm8nLCBNZW5sbywgQ29uc29sYXMsICdMaWJlcmF0aW9uIE1vbm8nLCBtb25vc3BhY2U7CiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHttLmJkVGhlbWUoIiNmNmY4ZmEiLCIjMTYxYjIyIil9OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDZweDsKICAgICAgICB3b3JkLXdyYXA6IG5vcm1hbDsKICAgICAgfQoKICAgICAgcHJlIGNvZGUgewogICAgICAgIGRpc3BsYXk6IGJsb2NrOwogICAgICAgIHBhZGRpbmc6IDA7CiAgICAgICAgbWFyZ2luOiAwOwogICAgICAgIG92ZXJmbG93OiB2aXNpYmxlOwogICAgICAgIGxpbmUtaGVpZ2h0OiBpbmhlcml0OwogICAgICAgIHdvcmQtd3JhcDogbm9ybWFsOwogICAgICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50OwogICAgICAgIGJvcmRlcjogMDsKICAgICAgICBmb250LXNpemU6IDEwMCU7CiAgICAgICAgd2hpdGUtc3BhY2U6IHByZTsKICAgICAgfQoKICAgICAgLyogVGFibGVzICovCiAgICAgIHRhYmxlIHsKICAgICAgICB3aWR0aDogbWF4LWNvbnRlbnQ7CiAgICAgICAgbWF4LXdpZHRoOiAxMDAlOwogICAgICAgIG1hcmdpbi10b3A6IDA7CiAgICAgICAgbWFyZ2luLWJvdHRvbTogMTZweDsKICAgICAgICBib3JkZXItc3BhY2luZzogMDsKICAgICAgICBib3JkZXItY29sbGFwc2U6IGNvbGxhcHNlOwogICAgICAgIG92ZXJmbG93OiBhdXRvOwogICAgICAgIGRpc3BsYXk6IGJsb2NrOwogICAgICB9CgogICAgICB0YWJsZSB0aCB7CiAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDsKICAgICAgICBwYWRkaW5nOiA2cHggMTNweDsKICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAke20uYmRUaGVtZSgiI2QxZDllMCIsIiMzMDM2M2QiKX07CiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHttLmJkVGhlbWUoIiNmNmY4ZmEiLCIjMTYxYjIyIil9OwogICAgICAgIGNvbG9yOiAke20uYmRUaGVtZSgiIzFmMjMyOCIsIiNlNmVkZjMiKX07CiAgICAgIH0KCiAgICAgIHRhYmxlIHRkIHsKICAgICAgICBwYWRkaW5nOiA2cHggMTNweDsKICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAke20uYmRUaGVtZSgiI2QxZDllMCIsIiMzMDM2M2QiKX07CiAgICAgICAgY29sb3I6ICR7bS5iZFRoZW1lKCIjMWYyMzI4IiwiI2U2ZWRmMyIpfTsKICAgICAgfQoKICAgICAgdGFibGUgdHIgewogICAgICAgIGJhY2tncm91bmQtY29sb3I6ICR7bS5iZFRoZW1lKCIjZmZmZmZmIiwiIzBkMTExNyIpfTsKICAgICAgICBib3JkZXItdG9wOiAxcHggc29saWQgJHttLmJkVGhlbWUoIiNkMWQ5ZTAiLCIjMjEyNjJkIil9OwogICAgICB9CgogICAgICB0YWJsZSB0cjpudGgtY2hpbGQoMm4pIHsKICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAke20uYmRUaGVtZSgiI2Y2ZjhmYSIsIiMxNjFiMjIiKX07CiAgICAgIH0KCiAgICAgIC8qIEhvcml6b250YWwgcnVsZXMgKi8KICAgICAgaHIgewogICAgICAgIGhlaWdodDogNHB4OwogICAgICAgIHBhZGRpbmc6IDA7CiAgICAgICAgbWFyZ2luOiAyNHB4IDA7CiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHttLmJkVGhlbWUoIiNkMWQ5ZTAiLCIjMzAzNjNkIil9OwogICAgICAgIGJvcmRlcjogMDsKICAgICAgICBib3JkZXItcmFkaXVzOiAycHg7CiAgICAgIH0KCiAgICAgIC8qIEltYWdlcyAqLwogICAgICBpbWcgewogICAgICAgIG1heC13aWR0aDogMTAwJTsKICAgICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDZweDsKICAgICAgfQoKICAgICAgLyogVGFzayBsaXN0cyAqLwogICAgICAudGFzay1saXN0LWl0ZW0gewogICAgICAgIGxpc3Qtc3R5bGUtdHlwZTogbm9uZTsKICAgICAgfQoKICAgICAgLnRhc2stbGlzdC1pdGVtIGlucHV0IHsKICAgICAgICBtYXJnaW46IDAgMC4yZW0gMC4yNWVtIC0xLjRlbTsKICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlOwogICAgICB9CgogICAgICAvKiBEZWZpbml0aW9uIGxpc3RzICovCiAgICAgIGRsIHsKICAgICAgICBwYWRkaW5nOiAwOwogICAgICB9CgogICAgICBkbCBkdCB7CiAgICAgICAgcGFkZGluZzogMDsKICAgICAgICBtYXJnaW4tdG9wOiAxNnB4OwogICAgICAgIGZvbnQtc2l6ZTogMWVtOwogICAgICAgIGZvbnQtc3R5bGU6IGl0YWxpYzsKICAgICAgICBmb250LXdlaWdodDogNjAwOwogICAgICB9CgogICAgICBkbCBkZCB7CiAgICAgICAgcGFkZGluZzogMCAxNnB4OwogICAgICAgIG1hcmdpbi1ib3R0b206IDE2cHg7CiAgICAgIH0KCiAgICAgIC8qIEtleWJvYXJkIGlucHV0ICovCiAgICAgIGtiZCB7CiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrOwogICAgICAgIHBhZGRpbmc6IDNweCA1cHg7CiAgICAgICAgZm9udC1zaXplOiAxMXB4OwogICAgICAgIGZvbnQtZmFtaWx5OiB1aS1tb25vc3BhY2UsIFNGTW9uby1SZWd1bGFyLCAnU0YgTW9ubycsIE1lbmxvLCBDb25zb2xhcywgJ0xpYmVyYXRpb24gTW9ubycsIG1vbm9zcGFjZTsKICAgICAgICBsaW5lLWhlaWdodDogMTBweDsKICAgICAgICBjb2xvcjogJHttLmJkVGhlbWUoIiMxZjIzMjgiLCIjZTZlZGYzIil9OwogICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7CiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHttLmJkVGhlbWUoIiNmNmY4ZmEiLCIjMTYxYjIyIil9OwogICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICR7bS5iZFRoZW1lKCIjZDFkOWUwIiwiIzMwMzYzZCIpfTsKICAgICAgICBib3JkZXItcmFkaXVzOiA2cHg7CiAgICAgICAgYm94LXNoYWRvdzogaW5zZXQgMCAtMXB4IDAgJHttLmJkVGhlbWUoIiNkMWQ5ZTAiLCIjMzAzNjNkIil9OwogICAgICB9CgogICAgICAvKiBGb290bm90ZXMgKi8KICAgICAgLmZvb3Rub3RlcyB7CiAgICAgICAgZm9udC1zaXplOiAxMnB4OwogICAgICAgIGNvbG9yOiAke20uYmRUaGVtZSgiIzY1NmQ3NiIsIiM4Yjk0OWUiKX07CiAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICR7bS5iZFRoZW1lKCIjZDFkOWUwIiwiIzMwMzYzZCIpfTsKICAgICAgICBwYWRkaW5nLXRvcDogMTZweDsKICAgICAgICBtYXJnaW4tdG9wOiAzMnB4OwogICAgICB9CgogICAgICAvKiBBbGVydHMvQWRtb25pdGlvbnMgKi8KICAgICAgLm1hcmtkb3duLWFsZXJ0IHsKICAgICAgICBwYWRkaW5nOiA4cHggMTZweDsKICAgICAgICBtYXJnaW4tYm90dG9tOiAxNnB4OwogICAgICAgIGJvcmRlci1sZWZ0OiA0cHggc29saWQ7CiAgICAgICAgYm9yZGVyLXJhZGl1czogNnB4OwogICAgICB9CgogICAgICAubWFya2Rvd24tYWxlcnQtbm90ZSB7CiAgICAgICAgYm9yZGVyLWNvbG9yOiAke20uYmRUaGVtZSgiIzA5NjlkYSIsIiM1OGE2ZmYiKX07CiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHttLmJkVGhlbWUoInJnYmEoOSwgMTA1LCAyMTgsIDAuMSkiLCJyZ2JhKDU2LCAxMzksIDI1MywgMC4xKSIpfTsKICAgICAgfQoKICAgICAgLm1hcmtkb3duLWFsZXJ0LXdhcm5pbmcgewogICAgICAgIGJvcmRlci1jb2xvcjogJHttLmJkVGhlbWUoIiNiZjg3MDAiLCIjZDI5OTIyIil9OwogICAgICAgIGJhY2tncm91bmQtY29sb3I6ICR7bS5iZFRoZW1lKCJyZ2JhKDE5MSwgMTM1LCAwLCAwLjEpIiwicmdiYSgxODcsIDEyOCwgOSwgMC4xKSIpfTsKICAgICAgfQoKICAgICAgLm1hcmtkb3duLWFsZXJ0LWltcG9ydGFudCB7CiAgICAgICAgYm9yZGVyLWNvbG9yOiAke20uYmRUaGVtZSgiIzgyNTBkZiIsIiNhMzcxZjciKX07CiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHttLmJkVGhlbWUoInJnYmEoMTMwLCA4MCwgMjIzLCAwLjEpIiwicmdiYSgxNjMsIDExMywgMjQ3LCAwLjEpIil9OwogICAgICB9CgogICAgICAubWFya2Rvd24tYWxlcnQtY2F1dGlvbiB7CiAgICAgICAgYm9yZGVyLWNvbG9yOiAke20uYmRUaGVtZSgiI2NmMjIyZSIsIiNmODUxNDkiKX07CiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHttLmJkVGhlbWUoInJnYmEoMjA3LCAzNCwgNDYsIDAuMSkiLCJyZ2JhKDI0OCwgODEsIDczLCAwLjEpIil9OwogICAgICB9CgogICAgICAubWFya2Rvd24tYWxlcnQtdGlwIHsKICAgICAgICBib3JkZXItY29sb3I6ICR7bS5iZFRoZW1lKCIjMWE3ZjM3IiwiIzNmYjk1MCIpfTsKICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAke20uYmRUaGVtZSgicmdiYSgyNiwgMTI3LCA1NSwgMC4xKSIsInJnYmEoNDYsIDE2MCwgNjcsIDAuMSkiKX07CiAgICAgIH0KCiAgICAgIC8qIFN5bnRheCBoaWdobGlnaHRpbmcgZm9yIGNvZGUgYmxvY2tzICovCiAgICAgIC5obGpzLWNvbW1lbnQsCiAgICAgIC5obGpzLXF1b3RlIHsKICAgICAgICBjb2xvcjogJHttLmJkVGhlbWUoIiM2YTczN2QiLCIjOGI5NDllIil9OwogICAgICB9CgogICAgICAuaGxqcy1rZXl3b3JkLAogICAgICAuaGxqcy1zZWxlY3Rvci10YWcsCiAgICAgIC5obGpzLWFkZGl0aW9uIHsKICAgICAgICBjb2xvcjogJHttLmJkVGhlbWUoIiNkNzNhNDkiLCIjZmY3YjcyIil9OwogICAgICB9CgogICAgICAuaGxqcy1udW1iZXIsCiAgICAgIC5obGpzLXN0cmluZywKICAgICAgLmhsanMtbWV0YSAuaGxqcy1tZXRhLXN0cmluZywKICAgICAgLmhsanMtbGl0ZXJhbCwKICAgICAgLmhsanMtZG9jdGFnLAogICAgICAuaGxqcy1yZWdleHAgewogICAgICAgIGNvbG9yOiAke20uYmRUaGVtZSgiIzAzMmY2MiIsIiNhNWQ2ZmYiKX07CiAgICAgIH0KCiAgICAgIC5obGpzLXRpdGxlLAogICAgICAuaGxqcy1zZWN0aW9uLAogICAgICAuaGxqcy1uYW1lLAogICAgICAuaGxqcy1zZWxlY3Rvci1pZCwKICAgICAgLmhsanMtc2VsZWN0b3ItY2xhc3MgewogICAgICAgIGNvbG9yOiAke20uYmRUaGVtZSgiIzZmNDJjMSIsIiNkMmE4ZmYiKX07CiAgICAgIH0KCiAgICAgIC5obGpzLWF0dHJpYnV0ZSwKICAgICAgLmhsanMtYXR0ciwKICAgICAgLmhsanMtdmFyaWFibGUsCiAgICAgIC5obGpzLXRlbXBsYXRlLXZhcmlhYmxlLAogICAgICAuaGxqcy1jbGFzcyAuaGxqcy10aXRsZSwKICAgICAgLmhsanMtdHlwZSB7CiAgICAgICAgY29sb3I6ICR7bS5iZFRoZW1lKCIjMDA1Y2M1IiwiIzc5YzBmZiIpfTsKICAgICAgfQoKICAgICAgLmhsanMtc3ltYm9sLAogICAgICAuaGxqcy1idWxsZXQsCiAgICAgIC5obGpzLXN1YnN0LAogICAgICAuaGxqcy1tZXRhLAogICAgICAuaGxqcy1tZXRhIC5obGpzLWtleXdvcmQsCiAgICAgIC5obGpzLXNlbGVjdG9yLWF0dHIsCiAgICAgIC5obGpzLXNlbGVjdG9yLXBzZXVkbywKICAgICAgLmhsanMtbGluayB7CiAgICAgICAgY29sb3I6ICR7bS5iZFRoZW1lKCIjZTM2MjA5IiwiI2ZmYTY1NyIpfTsKICAgICAgfQoKICAgICAgLmhsanMtYnVpbHRfaW4sCiAgICAgIC5obGpzLWRlbGV0aW9uIHsKICAgICAgICBjb2xvcjogJHttLmJkVGhlbWUoIiNiMzFkMjgiLCIjZmZhMTk4Iil9OwogICAgICB9CgogICAgICAuaGxqcy1mb3JtdWxhIHsKICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAke20uYmRUaGVtZSgiI2Y2ZjhmYSIsIiMxNjFiMjIiKX07CiAgICAgIH0KCiAgICAgIC5obGpzLWVtcGhhc2lzIHsKICAgICAgICBmb250LXN0eWxlOiBpdGFsaWM7CiAgICAgIH0KCiAgICAgIC5obGpzLXN0cm9uZyB7CiAgICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7CiAgICAgIH0KICAgIGBdO291dGxldDtyZW5kZXIoKXtyZXR1cm4gQ2AKICAgICAgPGRpdiBjbGFzcz0ib3V0bGV0Ij4KICAgICAgICA8aDE+TWFya2Rvd24gUHJldmlldzwvaDE+CiAgICAgICAgPHA+Q29udGVudCB3aWxsIGFwcGVhciBoZXJlIHdoZW4gbWFya2Rvd24gaXMgcGFyc2VkLjwvcD4KICAgICAgPC9kaXY+CiAgICBgfWFzeW5jIGZpcnN0VXBkYXRlZChvKXthd2FpdCBzdXBlci5maXJzdFVwZGF0ZWQobyksdGhpcy5vdXRsZXQ9dGhpcy5zaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3IoIi5vdXRsZXQiKX1hc3luYyB1cGRhdGVIdG1sVGV4dChvKXthd2FpdCB0aGlzLnVwZGF0ZUNvbXBsZXRlLHRoaXMub3V0bGV0fHwodGhpcy5vdXRsZXQ9dGhpcy5zaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3IoIi5vdXRsZXQiKSksdGhpcy5vdXRsZXQuaW5uZXJIVE1MPW99c3RhdGlje0tYcihpLHIpfX07cmV0dXJuIG49aX0pKCl9KTt2YXIgYzVyPXAoKCk9PntsNXIoKX0pO3ZhciBkNXI9cCgoKT0+e241ZSgpfSk7dmFyIHU1cj1wKCgpPT57czVlKCl9KTt2YXIgcDVyPXAoKCk9PntYZHIoKTtRZHIoKTtKZHIoKTtlNXIoKTt0NXIoKTthNXIoKTtjNXIoKTtkNXIoKTt1NXIoKX0pO3ZhciBoNXI9cCgoKT0+e30pO3ZhciBmNXI9cCgoKT0+e2g1cigpfSk7dmFyIG01cj1wKCgpPT57eGUoKX0pO3ZhciBnNXI9cCgoKT0+e201cigpfSk7dmFyIGI1cj1wKCgpPT57eG8oKTtKZSgpO0tscigpO2RjcigpO3pjcigpO0ZjcigpO2MwcigpO3AwcigpO3c0cigpO2QzcigpO3c2cigpO0E2cigpO3lGKCk7Q2RyKCk7amRyKCk7cDVyKCk7ZjVyKCk7ZzVyKCl9KTt2YXIgdjVyLHg1cj1wKCgpPT57djVyPXtuYW1lOiJAZGVzaWduLmVzdGF0ZS9kZWVzLWNhdGFsb2ciLHZlcnNpb246IjMuNDMuMyIsZGVzY3JpcHRpb246IkEgY29tcHJlaGVuc2l2ZSBsaWJyYXJ5IHRoYXQgcHJvdmlkZXMgZHluYW1pYyB3ZWIgY29tcG9uZW50cyBmb3IgYnVpbGRpbmcgc29waGlzdGljYXRlZCBhbmQgbW9kZXJuIHdlYiBhcHBsaWNhdGlvbnMgdXNpbmcgSmF2YVNjcmlwdCBhbmQgVHlwZVNjcmlwdC4ifX0pO3ZhciBCMj17fTtGZShCMix7Q2FudmFzUG9vbDooKT0+ZGgsRGVlc0FjdGlvbmJhcjooKT0+T2NyLERlZXNBcHB1aTooKT0+cWxyLERlZXNBcHB1aUFjdGl2aXR5bG9nOigpPT5xMnIsRGVlc0FwcHVpQmFyOigpPT5pc3IsRGVlc0FwcHVpQm90dG9tYmFyOigpPT5zc3IsRGVlc0FwcHVpTWFpbmNvbnRlbnQ6KCk9PkhscixEZWVzQXBwdWlNYWlubWVudTooKT0+SWxyLERlZXNBcHB1aVByb2ZpbGVEcm9wZG93bjooKT0+cnNyLERlZXNBcHB1aVNlY29uZGFyeW1lbnU6KCk9PkZscixEZWVzQXBwdWlUYWJzOigpPT5CbHIsRGVlc0F1ZGlvVmlld2VyOigpPT5iM3IsRGVlc0JhZGdlOigpPT5qY3IsRGVlc0J1dHRvbjooKT0+X2xyLERlZXNCdXR0b25FeGl0OigpPT5yY3IsRGVlc0J1dHRvbkdyb3VwOigpPT5zY3IsRGVlc0NoYXJ0QXJlYTooKT0+dmNyLERlZXNDaGFydExvZzooKT0+TWNyLERlZXNDaGlwczooKT0+UzRyLERlZXNDb250ZXh0bWVudTooKT0+U3IsRGVlc0Rhc2hib2FyZGdyaWQ6KCk9Pmo0cixEZWVzRGF0YXZpZXdDb2RlYm94OigpPT5fY3IsRGVlc0RhdGF2aWV3U3RhdHVzb2JqZWN0OigpPT4kY3IsRGVlc0Zvcm06KCk9PnpscixEZWVzRm9ybVN1Ym1pdDooKT0+UE4sRGVlc0Zvcm1hdHRpbmdNZW51OigpPT5yRixEZWVzSGVhZGluZzooKT0+WjRyLERlZXNIaW50OigpPT5aY3IsRGVlc0ljb246KCk9Pk4ycixEZWVzSW1hZ2VWaWV3ZXI6KCk9PmgzcixEZWVzSW5wdXRCYXNlOigpPT5vdCxEZWVzSW5wdXRDaGVja2JveDooKT0+ek4sRGVlc0lucHV0Q29kZTooKT0+TE4sRGVlc0lucHV0RGF0ZXBpY2tlcjooKT0+QU4sRGVlc0lucHV0RHJvcGRvd246KCk9Pk5OLERlZXNJbnB1dEZpbGV1cGxvYWQ6KCk9Pk9OLERlZXNJbnB1dEliYW46KCk9PkhOLERlZXNJbnB1dExpc3Q6KCk9PnkwcixEZWVzSW5wdXRNdWx0aXRvZ2dsZTooKT0+cU4sRGVlc0lucHV0UGhvbmU6KCk9PlZOLERlZXNJbnB1dFByb2ZpbGVQaWN0dXJlOigpPT55NHIsRGVlc0lucHV0UXVhbnRpdHlTZWxlY3RvcjooKT0+RU4sRGVlc0lucHV0UmFkaW9ncm91cDooKT0+JE4sRGVlc0lucHV0UmljaHRleHQ6KCk9PiQwcixEZWVzSW5wdXRUYWdzOigpPT5CMHIsRGVlc0lucHV0VGV4dDooKT0+RE4sRGVlc0lucHV0VG9nZ2xlOigpPT5VTixEZWVzSW5wdXRUeXBlbGlzdDooKT0+V04sRGVlc0lucHV0V3lzaXd5ZzooKT0+bGRlLERlZXNMYWJlbDooKT0+TXNyLERlZXNNb2JpbGVuYXZpZ2F0aW9uOigpPT5YbHIsRGVlc01vZGFsOigpPT5XcixEZWVzUGFnaW5hdGlvbjooKT0+dDNyLERlZXNQYW5lbDooKT0+cHNyLERlZXNQZGY6KCk9PlAzcixEZWVzUGRmUHJldmlldzooKT0+cTNyLERlZXNQZGZWaWV3ZXI6KCk9PlQzcixEZWVzUHJldmlldzooKT0+RDNyLERlZXNQcm9ncmVzc2JhcjooKT0+dDByLERlZXNTZWFyY2hiYXI6KCk9PkRkcixEZWVzU2hvcHBpbmdQcm9kdWN0Y2FyZDooKT0+SXNyLERlZXNTaW1wbGVBcHBEYXNoOigpPT5iZHIsRGVlc1NpbXBsZUxvZ2luOigpPT5rZHIsRGVlc1NsYXNoTWVudTooKT0+ZUYsRGVlc1NwZWVjaGJ1YmJsZTooKT0+QzZyLERlZXNTcGlubmVyOigpPT5pMHIsRGVlc1N0YXRzR3JpZDooKT0+TGxyLERlZXNTdGVwcGVyOigpPT5zM3IsRGVlc1RhYmxlOigpPT5ZTixEZWVzVGhlbWU6KCk9Pk5kcixEZWVzVGlsZUF1ZGlvOigpPT5yNnIsRGVlc1RpbGVCYXNlOigpPT5vbixEZWVzVGlsZUZvbGRlcjooKT0+djZyLERlZXNUaWxlSW1hZ2U6KCk9PlEzcixEZWVzVGlsZU5vdGU6KCk9PnA2cixEZWVzVGlsZVBkZjooKT0+b0YsRGVlc1RpbGVWaWRlbzooKT0+czZyLERlZXNUb2FzdDooKT0+YnIsRGVlc1VwZGF0ZXI6KCk9PndGLERlZXNWaWRlb1ZpZXdlcjooKT0+dzNyLERlZXNXaW5kb3dDb250cm9sczooKT0+dHNyLERlZXNXaW5kb3dMYXllcjooKT0+JG8sRGVlc1dvcmtzcGFjZTooKT0+WWRyLERlZXNXb3Jrc3BhY2VCb3R0b21iYXI6KCk9PldkcixEZWVzV29ya3NwYWNlRGlmZkVkaXRvcjooKT0+R2RyLERlZXNXb3Jrc3BhY2VGaWxldHJlZTooKT0+VmRyLERlZXNXb3Jrc3BhY2VNYXJrZG93bjooKT0+cjVyLERlZXNXb3Jrc3BhY2VNYXJrZG93bm91dGxldDooKT0+czVyLERlZXNXb3Jrc3BhY2VNb25hY286KCk9PmtzcixEZWVzV29ya3NwYWNlVGVybWluYWw6KCk9PlhkZSxEZWVzV29ya3NwYWNlVGVybWluYWxQcmV2aWV3OigpPT5VZHIsRGVlc1d5c2l3eWdCbG9jazooKT0+aDRyLFBST0dSQU1NSU5HX0xBTkdVQUdFUzooKT0+eGIsUGRmTWFuYWdlcjooKT0+b2wsUGVyZm9ybWFuY2VNb25pdG9yOigpPT51aCxUZXJtaW5hbFRhYk1hbmFnZXI6KCk9PlViLFR5cGVTY3JpcHRJbnRlbGxpU2Vuc2VNYW5hZ2VyOigpPT5YYixWaWV3UmVnaXN0cnk6KCk9PmZiLFdlYkNvbnRhaW5lckVudmlyb25tZW50OigpPT5yNSxXeXNpd3lnQmxvY2tPcGVyYXRpb25zOigpPT55YixXeXNpd3lnQmxvY2tzOigpPT5hYSxXeXNpd3lnQ29udmVydGVyczooKT0+Um8sV3lzaXd5Z0RyYWdEcm9wSGFuZGxlcjooKT0+SWIsV3lzaXd5Z0Zvcm1hdHRpbmc6KCk9PlNjLFd5c2l3eWdIaXN0b3J5OigpPT5QYixXeXNpd3lnSW5wdXRIYW5kbGVyOigpPT5FYixXeXNpd3lnS2V5Ym9hcmRIYW5kbGVyOigpPT4kYixXeXNpd3lnTW9kYWxNYW5hZ2VyOigpPT5EYixXeXNpd3lnU2VsZWN0aW9uOigpPT5ZZSxXeXNpd3lnU2hvcnRjdXRzOigpPT5HMSxaSW5kZXhSZWdpc3RyeTooKT0+Y1MsY29sb3JzOigpPT4kZCxjb21taXRpbmZvOigpPT52NXIsY29tcG9uZW50WkluZGV4OigpPT5rVHIsZGVib3VuY2U6KCk9PmdYcixmb3JtYXRGaWxlU2l6ZTooKT0+dlhyLGdldFpJbmRleDooKT0+TVRyLGljb25zOigpPT5NTixpc0luVmlld3BvcnQ6KCk9PnhYcixyZWdpc3RlckFsbEJsb2NrSGFuZGxlcnM6KCk9Pmw0cix0aGVtZURlZmF1bHRTdHlsZXM6KCk9PkRlLHRoZW1lRGVmYXVsdHM6KCk9PkM0LHRocm90dGxlOigpPT5iWHIsdGlsZUJhc2VTdHlsZXM6KCk9PkZhLHd5c2l3eWdTdHlsZXM6KCk9PmVkZSx6SW5kZXhMYXllcnM6KCk9PmZpLHpJbmRleFJlZ2lzdHJ5OigpPT5Lcn0pO3ZhciB5NXI9cCgoKT0+e2I1cigpO1BvKCk7eDVyKCl9KTt2YXIgcjEsSDI9cCgoKT0+e3ZvKCk7eTVyKCk7cjE9bW99KTt2YXIgJGM9cCgoKT0+e0toKCl9KTt2YXIgdzVyPXAoKCk9Pnt9KTt2YXIgTTVyPXAoKCk9Pnt9KTt2YXIgazVyPXAoKCk9Pnt9KTt2YXIgUzVyPXAoKCk9Pnt9KTt2YXIgejVyPXAoKCk9Pnt9KTt2YXIgQzVyPXAoKCk9Pnt9KTt2YXIgVDVyPXt9O3ZhciBJYz1wKCgpPT57dzVyKCk7TTVyKCk7azVyKCk7UzVyKCk7ejVyKCk7QzVyKCl9KTt2YXIgXzVyPXAoKCk9PnskYygpO0ljKCl9KTt2YXIgTDVyPXAoKCk9PnskYygpO0ljKCl9KTt2YXIgQTVyPXAoKCk9PnskYygpO0ljKCl9KTt2YXIgRDVyPXAoKCk9PnskYygpO0ljKCl9KTt2YXIgRTVyPXAoKCk9PnskYygpO0ljKCl9KTt2YXIgJDVyPXAoKCk9PnskYygpO0ljKCl9KTt2YXIgSTVyPXAoKCk9PnskYygpO0ljKCl9KTt2YXIgUDVyPXt9O3ZhciBONXI9cCgoKT0+e181cigpO0w1cigpO0E1cigpO0Q1cigpO0U1cigpOyQ1cigpO0k1cigpfSk7dmFyIGw1ZT1wKCgpPT57JGMoKTtJYygpO041cigpfSk7dmFyIGtGLHEyLGZyLFV0LGxsLE9hLEY1cixKYixfbixPNXIsUjVyLEI1cixHNCxTRixINXIscTVyLGo1cixWNXIsVTVyLFc1cixHNXIsWTVyLFo1cixuNSxWeGEsUGM9cChhc3luYygpPT57SDIoKTtsNWUoKTtrRj1uZXcgcjEucGx1Z2lucy5zbWFydHN0YXRlLlNtYXJ0c3RhdGUscTI9YXdhaXQga0YuZ2V0U3RhdGVQYXJ0KCJsb2dpbiIse2lkZW50aXR5Om51bGwsaXNMb2dnZWRJbjohMX0sInBlcnNpc3RlbnQiKSxmcj1hd2FpdCBrRi5nZXRTdGF0ZVBhcnQoImNvbm5lY3Rpb25zIix7Y29ubmVjdGlvbnM6W10sYWN0aXZlQ29ubmVjdGlvbklkOm51bGx9LCJzb2Z0IiksVXQ9YXdhaXQga0YuZ2V0U3RhdGVQYXJ0KCJkYXRhIix7cHJvamVjdHM6W10sZ3JvdXBzOltdLHNlY3JldHM6W10scGlwZWxpbmVzOltdLHBpcGVsaW5lSm9iczpbXSxjdXJyZW50Sm9iTG9nOiIifSwic29mdCIpLGxsPWF3YWl0IGtGLmdldFN0YXRlUGFydCgidWkiLHthY3RpdmVWaWV3OiJvdmVydmlldyIsYXV0b1JlZnJlc2g6ITAscmVmcmVzaEludGVydmFsOjNlNH0pLE9hPSgpPT4oe2lkZW50aXR5OnEyLmdldFN0YXRlKCkuaWRlbnRpdHl9KSxGNXI9cTIuY3JlYXRlQWN0aW9uKGFzeW5jKGUsdCk9Pnt0cnl7bGV0IGk9YXdhaXQgbmV3IHIxLnBsdWdpbnMudHlwZWRyZXF1ZXN0LlR5cGVkUmVxdWVzdCgiL3R5cGVkcmVxdWVzdCIsImFkbWluTG9naW4iKS5maXJlKHt1c2VybmFtZTp0LnVzZXJuYW1lLHBhc3N3b3JkOnQucGFzc3dvcmR9KTtyZXR1cm57aWRlbnRpdHk6aS5pZGVudGl0eXx8bnVsbCxpc0xvZ2dlZEluOiEhaS5pZGVudGl0eX19Y2F0Y2gocil7cmV0dXJuIGNvbnNvbGUuZXJyb3IoIkxvZ2luIGZhaWxlZDoiLHIpLHtpZGVudGl0eTpudWxsLGlzTG9nZ2VkSW46ITF9fX0pLEpiPXEyLmNyZWF0ZUFjdGlvbihhc3luYyBlPT57bGV0IHQ9T2EoKTt0cnl7dC5pZGVudGl0eSYmYXdhaXQgbmV3IHIxLnBsdWdpbnMudHlwZWRyZXF1ZXN0LlR5cGVkUmVxdWVzdCgiL3R5cGVkcmVxdWVzdCIsImFkbWluTG9nb3V0IikuZmlyZSh7aWRlbnRpdHk6dC5pZGVudGl0eX0pfWNhdGNoKHIpe2NvbnNvbGUuZXJyb3IoIkxvZ291dCBlcnJvcjoiLHIpfXJldHVybntpZGVudGl0eTpudWxsLGlzTG9nZ2VkSW46ITF9fSksX249ZnIuY3JlYXRlQWN0aW9uKGFzeW5jIGU9PntsZXQgdD1PYSgpO3RyeXtsZXQgaT1hd2FpdCBuZXcgcjEucGx1Z2lucy50eXBlZHJlcXVlc3QuVHlwZWRSZXF1ZXN0KCIvdHlwZWRyZXF1ZXN0IiwiZ2V0Q29ubmVjdGlvbnMiKS5maXJlKHtpZGVudGl0eTp0LmlkZW50aXR5fSk7cmV0dXJuey4uLmUuZ2V0U3RhdGUoKSxjb25uZWN0aW9uczppLmNvbm5lY3Rpb25zfX1jYXRjaChyKXtyZXR1cm4gY29uc29sZS5lcnJvcigiRmFpbGVkIHRvIGZldGNoIGNvbm5lY3Rpb25zOiIsciksZS5nZXRTdGF0ZSgpfX0pLE81cj1mci5jcmVhdGVBY3Rpb24oYXN5bmMoZSx0KT0+e2xldCByPU9hKCk7dHJ5e2F3YWl0IG5ldyByMS5wbHVnaW5zLnR5cGVkcmVxdWVzdC5UeXBlZFJlcXVlc3QoIi90eXBlZHJlcXVlc3QiLCJjcmVhdGVDb25uZWN0aW9uIikuZmlyZSh7aWRlbnRpdHk6ci5pZGVudGl0eSwuLi50fSk7bGV0IG49YXdhaXQgbmV3IHIxLnBsdWdpbnMudHlwZWRyZXF1ZXN0LlR5cGVkUmVxdWVzdCgiL3R5cGVkcmVxdWVzdCIsImdldENvbm5lY3Rpb25zIikuZmlyZSh7aWRlbnRpdHk6ci5pZGVudGl0eX0pO3JldHVybnsuLi5lLmdldFN0YXRlKCksY29ubmVjdGlvbnM6bi5jb25uZWN0aW9uc319Y2F0Y2goaSl7cmV0dXJuIGNvbnNvbGUuZXJyb3IoIkZhaWxlZCB0byBjcmVhdGUgY29ubmVjdGlvbjoiLGkpLGUuZ2V0U3RhdGUoKX19KSxSNXI9ZnIuY3JlYXRlQWN0aW9uKGFzeW5jKGUsdCk9PntsZXQgcj1PYSgpO3RyeXtsZXQgYT1hd2FpdCBuZXcgcjEucGx1Z2lucy50eXBlZHJlcXVlc3QuVHlwZWRSZXF1ZXN0KCIvdHlwZWRyZXF1ZXN0IiwidGVzdENvbm5lY3Rpb24iKS5maXJlKHtpZGVudGl0eTpyLmlkZW50aXR5LGNvbm5lY3Rpb25JZDp0LmNvbm5lY3Rpb25JZH0pLG89YXdhaXQgbmV3IHIxLnBsdWdpbnMudHlwZWRyZXF1ZXN0LlR5cGVkUmVxdWVzdCgiL3R5cGVkcmVxdWVzdCIsImdldENvbm5lY3Rpb25zIikuZmlyZSh7aWRlbnRpdHk6ci5pZGVudGl0eX0pO3JldHVybnsuLi5lLmdldFN0YXRlKCksY29ubmVjdGlvbnM6by5jb25uZWN0aW9uc319Y2F0Y2goaSl7cmV0dXJuIGNvbnNvbGUuZXJyb3IoIkZhaWxlZCB0byB0ZXN0IGNvbm5lY3Rpb246IixpKSxlLmdldFN0YXRlKCl9fSksQjVyPWZyLmNyZWF0ZUFjdGlvbihhc3luYyhlLHQpPT57bGV0IHI9T2EoKTt0cnl7YXdhaXQgbmV3IHIxLnBsdWdpbnMudHlwZWRyZXF1ZXN0LlR5cGVkUmVxdWVzdCgiL3R5cGVkcmVxdWVzdCIsImRlbGV0ZUNvbm5lY3Rpb24iKS5maXJlKHtpZGVudGl0eTpyLmlkZW50aXR5LGNvbm5lY3Rpb25JZDp0LmNvbm5lY3Rpb25JZH0pO2xldCBhPWUuZ2V0U3RhdGUoKTtyZXR1cm57Li4uYSxjb25uZWN0aW9uczphLmNvbm5lY3Rpb25zLmZpbHRlcihuPT5uLmlkIT09dC5jb25uZWN0aW9uSWQpLGFjdGl2ZUNvbm5lY3Rpb25JZDphLmFjdGl2ZUNvbm5lY3Rpb25JZD09PXQuY29ubmVjdGlvbklkP251bGw6YS5hY3RpdmVDb25uZWN0aW9uSWR9fWNhdGNoKGkpe3JldHVybiBjb25zb2xlLmVycm9yKCJGYWlsZWQgdG8gZGVsZXRlIGNvbm5lY3Rpb246IixpKSxlLmdldFN0YXRlKCl9fSksRzQ9VXQuY3JlYXRlQWN0aW9uKGFzeW5jKGUsdCk9PntsZXQgcj1PYSgpO3RyeXtsZXQgYT1hd2FpdCBuZXcgcjEucGx1Z2lucy50eXBlZHJlcXVlc3QuVHlwZWRSZXF1ZXN0KCIvdHlwZWRyZXF1ZXN0IiwiZ2V0UHJvamVjdHMiKS5maXJlKHtpZGVudGl0eTpyLmlkZW50aXR5LGNvbm5lY3Rpb25JZDp0LmNvbm5lY3Rpb25JZCxzZWFyY2g6dC5zZWFyY2h9KTtyZXR1cm57Li4uZS5nZXRTdGF0ZSgpLHByb2plY3RzOmEucHJvamVjdHN9fWNhdGNoKGkpe3JldHVybiBjb25zb2xlLmVycm9yKCJGYWlsZWQgdG8gZmV0Y2ggcHJvamVjdHM6IixpKSxlLmdldFN0YXRlKCl9fSksU0Y9VXQuY3JlYXRlQWN0aW9uKGFzeW5jKGUsdCk9PntsZXQgcj1PYSgpO3RyeXtsZXQgYT1hd2FpdCBuZXcgcjEucGx1Z2lucy50eXBlZHJlcXVlc3QuVHlwZWRSZXF1ZXN0KCIvdHlwZWRyZXF1ZXN0IiwiZ2V0R3JvdXBzIikuZmlyZSh7aWRlbnRpdHk6ci5pZGVudGl0eSxjb25uZWN0aW9uSWQ6dC5jb25uZWN0aW9uSWQsc2VhcmNoOnQuc2VhcmNofSk7cmV0dXJuey4uLmUuZ2V0U3RhdGUoKSxncm91cHM6YS5ncm91cHN9fWNhdGNoKGkpe3JldHVybiBjb25zb2xlLmVycm9yKCJGYWlsZWQgdG8gZmV0Y2ggZ3JvdXBzOiIsaSksZS5nZXRTdGF0ZSgpfX0pLEg1cj1VdC5jcmVhdGVBY3Rpb24oYXN5bmMoZSx0KT0+e2xldCByPU9hKCk7dHJ5e2xldCBhPWF3YWl0IG5ldyByMS5wbHVnaW5zLnR5cGVkcmVxdWVzdC5UeXBlZFJlcXVlc3QoIi90eXBlZHJlcXVlc3QiLCJnZXRTZWNyZXRzIikuZmlyZSh7aWRlbnRpdHk6ci5pZGVudGl0eSxjb25uZWN0aW9uSWQ6dC5jb25uZWN0aW9uSWQsc2NvcGU6dC5zY29wZSxzY29wZUlkOnQuc2NvcGVJZH0pO3JldHVybnsuLi5lLmdldFN0YXRlKCksc2VjcmV0czphLnNlY3JldHN9fWNhdGNoKGkpe3JldHVybiBjb25zb2xlLmVycm9yKCJGYWlsZWQgdG8gZmV0Y2ggc2VjcmV0czoiLGkpLGUuZ2V0U3RhdGUoKX19KSxxNXI9VXQuY3JlYXRlQWN0aW9uKGFzeW5jKGUsdCk9PntsZXQgcj1PYSgpO3RyeXthd2FpdCBuZXcgcjEucGx1Z2lucy50eXBlZHJlcXVlc3QuVHlwZWRSZXF1ZXN0KCIvdHlwZWRyZXF1ZXN0IiwiY3JlYXRlU2VjcmV0IikuZmlyZSh7aWRlbnRpdHk6ci5pZGVudGl0eSwuLi50fSk7bGV0IG49YXdhaXQgbmV3IHIxLnBsdWdpbnMudHlwZWRyZXF1ZXN0LlR5cGVkUmVxdWVzdCgiL3R5cGVkcmVxdWVzdCIsImdldFNlY3JldHMiKS5maXJlKHtpZGVudGl0eTpyLmlkZW50aXR5LGNvbm5lY3Rpb25JZDp0LmNvbm5lY3Rpb25JZCxzY29wZTp0LnNjb3BlLHNjb3BlSWQ6dC5zY29wZUlkfSk7cmV0dXJuey4uLmUuZ2V0U3RhdGUoKSxzZWNyZXRzOm4uc2VjcmV0c319Y2F0Y2goaSl7cmV0dXJuIGNvbnNvbGUuZXJyb3IoIkZhaWxlZCB0byBjcmVhdGUgc2VjcmV0OiIsaSksZS5nZXRTdGF0ZSgpfX0pLGo1cj1VdC5jcmVhdGVBY3Rpb24oYXN5bmMoZSx0KT0+e2xldCByPU9hKCk7dHJ5e2F3YWl0IG5ldyByMS5wbHVnaW5zLnR5cGVkcmVxdWVzdC5UeXBlZFJlcXVlc3QoIi90eXBlZHJlcXVlc3QiLCJ1cGRhdGVTZWNyZXQiKS5maXJlKHtpZGVudGl0eTpyLmlkZW50aXR5LC4uLnR9KTtsZXQgbj1hd2FpdCBuZXcgcjEucGx1Z2lucy50eXBlZHJlcXVlc3QuVHlwZWRSZXF1ZXN0KCIvdHlwZWRyZXF1ZXN0IiwiZ2V0U2VjcmV0cyIpLmZpcmUoe2lkZW50aXR5OnIuaWRlbnRpdHksY29ubmVjdGlvbklkOnQuY29ubmVjdGlvbklkLHNjb3BlOnQuc2NvcGUsc2NvcGVJZDp0LnNjb3BlSWR9KTtyZXR1cm57Li4uZS5nZXRTdGF0ZSgpLHNlY3JldHM6bi5zZWNyZXRzfX1jYXRjaChpKXtyZXR1cm4gY29uc29sZS5lcnJvcigiRmFpbGVkIHRvIHVwZGF0ZSBzZWNyZXQ6IixpKSxlLmdldFN0YXRlKCl9fSksVjVyPVV0LmNyZWF0ZUFjdGlvbihhc3luYyhlLHQpPT57bGV0IHI9T2EoKTt0cnl7YXdhaXQgbmV3IHIxLnBsdWdpbnMudHlwZWRyZXF1ZXN0LlR5cGVkUmVxdWVzdCgiL3R5cGVkcmVxdWVzdCIsImRlbGV0ZVNlY3JldCIpLmZpcmUoe2lkZW50aXR5OnIuaWRlbnRpdHksLi4udH0pO2xldCBhPWUuZ2V0U3RhdGUoKTtyZXR1cm57Li4uYSxzZWNyZXRzOmEuc2VjcmV0cy5maWx0ZXIobj0+bi5rZXkhPT10LmtleSl9fWNhdGNoKGkpe3JldHVybiBjb25zb2xlLmVycm9yKCJGYWlsZWQgdG8gZGVsZXRlIHNlY3JldDoiLGkpLGUuZ2V0U3RhdGUoKX19KSxVNXI9VXQuY3JlYXRlQWN0aW9uKGFzeW5jKGUsdCk9PntsZXQgcj1PYSgpO3RyeXtsZXQgYT1hd2FpdCBuZXcgcjEucGx1Z2lucy50eXBlZHJlcXVlc3QuVHlwZWRSZXF1ZXN0KCIvdHlwZWRyZXF1ZXN0IiwiZ2V0UGlwZWxpbmVzIikuZmlyZSh7aWRlbnRpdHk6ci5pZGVudGl0eSxjb25uZWN0aW9uSWQ6dC5jb25uZWN0aW9uSWQscHJvamVjdElkOnQucHJvamVjdElkfSk7cmV0dXJuey4uLmUuZ2V0U3RhdGUoKSxwaXBlbGluZXM6YS5waXBlbGluZXN9fWNhdGNoKGkpe3JldHVybiBjb25zb2xlLmVycm9yKCJGYWlsZWQgdG8gZmV0Y2ggcGlwZWxpbmVzOiIsaSksZS5nZXRTdGF0ZSgpfX0pLFc1cj1VdC5jcmVhdGVBY3Rpb24oYXN5bmMoZSx0KT0+e2xldCByPU9hKCk7dHJ5e2xldCBhPWF3YWl0IG5ldyByMS5wbHVnaW5zLnR5cGVkcmVxdWVzdC5UeXBlZFJlcXVlc3QoIi90eXBlZHJlcXVlc3QiLCJnZXRQaXBlbGluZUpvYnMiKS5maXJlKHtpZGVudGl0eTpyLmlkZW50aXR5LGNvbm5lY3Rpb25JZDp0LmNvbm5lY3Rpb25JZCxwcm9qZWN0SWQ6dC5wcm9qZWN0SWQscGlwZWxpbmVJZDp0LnBpcGVsaW5lSWR9KTtyZXR1cm57Li4uZS5nZXRTdGF0ZSgpLHBpcGVsaW5lSm9iczphLmpvYnN9fWNhdGNoKGkpe3JldHVybiBjb25zb2xlLmVycm9yKCJGYWlsZWQgdG8gZmV0Y2ggcGlwZWxpbmUgam9iczoiLGkpLGUuZ2V0U3RhdGUoKX19KSxHNXI9VXQuY3JlYXRlQWN0aW9uKGFzeW5jKGUsdCk9PntsZXQgcj1PYSgpO3RyeXthd2FpdCBuZXcgcjEucGx1Z2lucy50eXBlZHJlcXVlc3QuVHlwZWRSZXF1ZXN0KCIvdHlwZWRyZXF1ZXN0IiwicmV0cnlQaXBlbGluZSIpLmZpcmUoe2lkZW50aXR5OnIuaWRlbnRpdHksLi4udH0pO2xldCBuPWF3YWl0IG5ldyByMS5wbHVnaW5zLnR5cGVkcmVxdWVzdC5UeXBlZFJlcXVlc3QoIi90eXBlZHJlcXVlc3QiLCJnZXRQaXBlbGluZXMiKS5maXJlKHtpZGVudGl0eTpyLmlkZW50aXR5LGNvbm5lY3Rpb25JZDp0LmNvbm5lY3Rpb25JZCxwcm9qZWN0SWQ6dC5wcm9qZWN0SWR9KTtyZXR1cm57Li4uZS5nZXRTdGF0ZSgpLHBpcGVsaW5lczpuLnBpcGVsaW5lc319Y2F0Y2goaSl7cmV0dXJuIGNvbnNvbGUuZXJyb3IoIkZhaWxlZCB0byByZXRyeSBwaXBlbGluZToiLGkpLGUuZ2V0U3RhdGUoKX19KSxZNXI9VXQuY3JlYXRlQWN0aW9uKGFzeW5jKGUsdCk9PntsZXQgcj1PYSgpO3RyeXthd2FpdCBuZXcgcjEucGx1Z2lucy50eXBlZHJlcXVlc3QuVHlwZWRSZXF1ZXN0KCIvdHlwZWRyZXF1ZXN0IiwiY2FuY2VsUGlwZWxpbmUiKS5maXJlKHtpZGVudGl0eTpyLmlkZW50aXR5LC4uLnR9KTtsZXQgbj1hd2FpdCBuZXcgcjEucGx1Z2lucy50eXBlZHJlcXVlc3QuVHlwZWRSZXF1ZXN0KCIvdHlwZWRyZXF1ZXN0IiwiZ2V0UGlwZWxpbmVzIikuZmlyZSh7aWRlbnRpdHk6ci5pZGVudGl0eSxjb25uZWN0aW9uSWQ6dC5jb25uZWN0aW9uSWQscHJvamVjdElkOnQucHJvamVjdElkfSk7cmV0dXJuey4uLmUuZ2V0U3RhdGUoKSxwaXBlbGluZXM6bi5waXBlbGluZXN9fWNhdGNoKGkpe3JldHVybiBjb25zb2xlLmVycm9yKCJGYWlsZWQgdG8gY2FuY2VsIHBpcGVsaW5lOiIsaSksZS5nZXRTdGF0ZSgpfX0pLFo1cj1VdC5jcmVhdGVBY3Rpb24oYXN5bmMoZSx0KT0+e2xldCByPU9hKCk7dHJ5e2xldCBhPWF3YWl0IG5ldyByMS5wbHVnaW5zLnR5cGVkcmVxdWVzdC5UeXBlZFJlcXVlc3QoIi90eXBlZHJlcXVlc3QiLCJnZXRKb2JMb2ciKS5maXJlKHtpZGVudGl0eTpyLmlkZW50aXR5LC4uLnR9KTtyZXR1cm57Li4uZS5nZXRTdGF0ZSgpLGN1cnJlbnRKb2JMb2c6YS5sb2d9fWNhdGNoKGkpe3JldHVybiBjb25zb2xlLmVycm9yKCJGYWlsZWQgdG8gZmV0Y2ggam9iIGxvZzoiLGkpLGUuZ2V0U3RhdGUoKX19KSxuNT1sbC5jcmVhdGVBY3Rpb24oYXN5bmMoZSx0KT0+KHsuLi5lLmdldFN0YXRlKCksYWN0aXZlVmlldzp0LnZpZXd9KSksVnhhPWxsLmNyZWF0ZUFjdGlvbihhc3luYyBlPT57bGV0IHQ9ZS5nZXRTdGF0ZSgpO3JldHVybnsuLi50LGF1dG9SZWZyZXNoOiF0LmF1dG9SZWZyZXNofX0pfSk7dmFyIExuLFg1cj1wKCgpPT57dm8oKTtMbj1aMWAKICA6aG9zdCB7CiAgICBkaXNwbGF5OiBibG9jazsKICAgIG1hcmdpbjogYXV0bzsKICAgIG1heC13aWR0aDogMTI4MHB4OwogICAgcGFkZGluZzogMTZweCAxNnB4OwogICAgY29sb3I6ICNmZmY7CiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94OwogIH0KICAudmlldy10aXRsZSB7CiAgICBmb250LXNpemU6IDI0cHg7CiAgICBmb250LXdlaWdodDogNjAwOwogICAgbWFyZ2luLWJvdHRvbTogMjRweDsKICB9CiAgLnZpZXctZGVzY3JpcHRpb24gewogICAgZm9udC1zaXplOiAxNHB4OwogICAgY29sb3I6ICM5OTk7CiAgICBtYXJnaW4tYm90dG9tOiAyNHB4OwogIH0KICAudG9vbGJhciB7CiAgICBkaXNwbGF5OiBmbGV4OwogICAgZ2FwOiAxNnB4OwogICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgIG1hcmdpbi1ib3R0b206IDI0cHg7CiAgICBmbGV4LXdyYXA6IHdyYXA7CiAgfQpgfSk7dmFyIFo0PXAoKCk9PntYNXIoKX0pO3ZhciB0dXI9e307RmUodHVyLHtHaXRvcHNWaWV3T3ZlcnZpZXc6KCk9PkZjfSk7dmFyIFE1cixKNXIsSzVyLGV1cixOYyxjNWUsZDVlLEZjLHU1ZT1wKGFzeW5jKCk9PntIMigpO2F3YWl0IFBjKCk7WjQoKTt2bygpO2V1cj1baGkoImdpdG9wcy12aWV3LW92ZXJ2aWV3IildO0ZjPWNsYXNzIGV4dGVuZHMoSzVyPURpLEo1cj1bYXIoKV0sUTVyPVthcigpXSxLNXIpe2NvbnN0cnVjdG9yKCl7c3VwZXIoKTtncih0aGlzLGM1ZSxldChOYyw4LHRoaXMse2Nvbm5lY3Rpb25zOltdLGFjdGl2ZUNvbm5lY3Rpb25JZDpudWxsfSkpLGV0KE5jLDExLHRoaXMpO2dyKHRoaXMsZDVlLGV0KE5jLDEyLHRoaXMse3Byb2plY3RzOltdLGdyb3VwczpbXSxzZWNyZXRzOltdLHBpcGVsaW5lczpbXSxwaXBlbGluZUpvYnM6W10sY3VycmVudEpvYkxvZzoiIn0pKSxldChOYywxNSx0aGlzKTtsZXQgcj1mci5zZWxlY3QoYT0+YSkuc3Vic2NyaWJlKGE9Pnt0aGlzLmNvbm5lY3Rpb25zU3RhdGU9YX0pO3RoaXMucnhTdWJzY3JpcHRpb25zLnB1c2gocik7bGV0IGk9VXQuc2VsZWN0KGE9PmEpLnN1YnNjcmliZShhPT57dGhpcy5kYXRhU3RhdGU9YX0pO3RoaXMucnhTdWJzY3JpcHRpb25zLnB1c2goaSl9cmVuZGVyKCl7bGV0IHI9dGhpcy5jb25uZWN0aW9uc1N0YXRlLmNvbm5lY3Rpb25zLmxlbmd0aCxpPXRoaXMuZGF0YVN0YXRlLnByb2plY3RzLmxlbmd0aCxhPXRoaXMuZGF0YVN0YXRlLmdyb3Vwcy5sZW5ndGgsbj10aGlzLmRhdGFTdGF0ZS5waXBlbGluZXMubGVuZ3RoLG89dGhpcy5kYXRhU3RhdGUucGlwZWxpbmVzLmZpbHRlcihsPT5sLnN0YXR1cz09PSJmYWlsZWQiKS5sZW5ndGgscz1be2lkOiJjb25uZWN0aW9ucyIsdGl0bGU6IkNvbm5lY3Rpb25zIix2YWx1ZTpyLHR5cGU6Im51bWJlciIsaWNvbjoibHVjaWRlOnBsdWciLGNvbG9yOiIjMDBhY2ZmIn0se2lkOiJwcm9qZWN0cyIsdGl0bGU6IlByb2plY3RzIix2YWx1ZTppLHR5cGU6Im51bWJlciIsaWNvbjoibHVjaWRlOmZvbGRlckdpdDIiLGNvbG9yOiIjMDBhY2ZmIn0se2lkOiJncm91cHMiLHRpdGxlOiJHcm91cHMiLHZhbHVlOmEsdHlwZToibnVtYmVyIixpY29uOiJsdWNpZGU6dXNlcnMiLGNvbG9yOiIjMDBhY2ZmIn0se2lkOiJwaXBlbGluZXMiLHRpdGxlOiJQaXBlbGluZXMiLHZhbHVlOm4sdHlwZToibnVtYmVyIixpY29uOiJsdWNpZGU6cGxheSIsY29sb3I6IiMwMGFjZmYifSx7aWQ6ImZhaWxlZCIsdGl0bGU6IkZhaWxlZCBQaXBlbGluZXMiLHZhbHVlOm8sdHlwZToibnVtYmVyIixpY29uOiJsdWNpZGU6dHJpYW5nbGVBbGVydCIsY29sb3I6bz4wPyIjZmY0NDQ0IjoiIzAwZmY4OCJ9XTtyZXR1cm4gdXJgCiAgICAgIDxkaXYgY2xhc3M9InZpZXctdGl0bGUiPk92ZXJ2aWV3PC9kaXY+CiAgICAgIDxkaXYgY2xhc3M9InZpZXctZGVzY3JpcHRpb24iPkdpdE9wcyBkYXNoYm9hcmQgLSBtYW5hZ2UgeW91ciBHaXRlYSBhbmQgR2l0TGFiIGluc3RhbmNlczwvZGl2PgogICAgICA8ZGVlcy1zdGF0c2dyaWQgLnRpbGVzPSR7c30+PC9kZWVzLXN0YXRzZ3JpZD4KICAgIGB9fTtOYz1vYShLNXIpLGM1ZT1uZXcgV2Vha01hcCxkNWU9bmV3IFdlYWtNYXAsRnQoTmMsNCwiY29ubmVjdGlvbnNTdGF0ZSIsSjVyLEZjLGM1ZSksRnQoTmMsNCwiZGF0YVN0YXRlIixRNXIsRmMsZDVlKSxGYz1GdChOYywwLCJHaXRvcHNWaWV3T3ZlcnZpZXciLGV1cixGYyksemkoRmMsInN0eWxlcyIsW1dpLmRlZmF1bHRTdHlsZXMsTG5dKSxldChOYywxLEZjKX0pO3ZhciBudXI9e307RmUobnVyLHtHaXRvcHNWaWV3Q29ubmVjdGlvbnM6KCk9Plg0fSk7dmFyIHJ1cixpdXIsYXVyLHloLHA1ZSxYNCxoNWU9cChhc3luYygpPT57SDIoKTthd2FpdCBQYygpO1o0KCk7dm8oKTthdXI9W2hpKCJnaXRvcHMtdmlldy1jb25uZWN0aW9ucyIpXTtYND1jbGFzcyBleHRlbmRzKGl1cj1EaSxydXI9W2FyKCldLGl1cil7Y29uc3RydWN0b3IoKXtzdXBlcigpO2dyKHRoaXMscDVlLGV0KHloLDgsdGhpcyx7Y29ubmVjdGlvbnM6W10sYWN0aXZlQ29ubmVjdGlvbklkOm51bGx9KSksZXQoeWgsMTEsdGhpcyk7bGV0IHI9ZnIuc2VsZWN0KGk9PmkpLnN1YnNjcmliZShpPT57dGhpcy5jb25uZWN0aW9uc1N0YXRlPWl9KTt0aGlzLnJ4U3Vic2NyaXB0aW9ucy5wdXNoKHIpfXJlbmRlcigpe3JldHVybiB1cmAKICAgICAgPGRpdiBjbGFzcz0idmlldy10aXRsZSI+Q29ubmVjdGlvbnM8L2Rpdj4KICAgICAgPGRpdiBjbGFzcz0idmlldy1kZXNjcmlwdGlvbiI+TWFuYWdlIHlvdXIgR2l0ZWEgYW5kIEdpdExhYiBwcm92aWRlciBjb25uZWN0aW9uczwvZGl2PgogICAgICA8ZGl2IGNsYXNzPSJ0b29sYmFyIj4KICAgICAgICA8ZGVlcy1idXR0b24gQGNsaWNrPSR7KCk9PnRoaXMuYWRkQ29ubmVjdGlvbigpfT5BZGQgQ29ubmVjdGlvbjwvZGVlcy1idXR0b24+CiAgICAgICAgPGRlZXMtYnV0dG9uIEBjbGljaz0keygpPT50aGlzLnJlZnJlc2goKX0+UmVmcmVzaDwvZGVlcy1idXR0b24+CiAgICAgIDwvZGl2PgogICAgICA8ZGVlcy10YWJsZQogICAgICAgIC5oZWFkaW5nMT0keyJQcm92aWRlciBDb25uZWN0aW9ucyJ9CiAgICAgICAgLmhlYWRpbmcyPSR7IkNvbmZpZ3VyZSBjb25uZWN0aW9ucyB0byBHaXRlYSBhbmQgR2l0TGFiIGluc3RhbmNlcyJ9CiAgICAgICAgLmRhdGE9JHt0aGlzLmNvbm5lY3Rpb25zU3RhdGUuY29ubmVjdGlvbnN9CiAgICAgICAgLmRpc3BsYXlGdW5jdGlvbj0ke3I9Pih7TmFtZTpyLm5hbWUsVHlwZTpyLnByb3ZpZGVyVHlwZSxVUkw6ci5iYXNlVXJsLFN0YXR1czpyLnN0YXR1cyxDcmVhdGVkOm5ldyBEYXRlKHIuY3JlYXRlZEF0KS50b0xvY2FsZURhdGVTdHJpbmcoKX0pfQogICAgICAgIC5kYXRhQWN0aW9ucz0ke1t7bmFtZToiVGVzdCIsaWNvbk5hbWU6Imx1Y2lkZTpwbHVnIixhY3Rpb246YXN5bmMgcj0+e2F3YWl0IGZyLmRpc3BhdGNoQWN0aW9uKFI1cix7Y29ubmVjdGlvbklkOnIuaWR9KX19LHtuYW1lOiJEZWxldGUiLGljb25OYW1lOiJsdWNpZGU6dHJhc2gyIixhY3Rpb246YXN5bmMgcj0+e2xldCBpPWF3YWl0IEIyLkRlZXNNb2RhbC5jcmVhdGVBbmRTaG93KHtoZWFkaW5nOiJEZWxldGUgQ29ubmVjdGlvbiIsY29udGVudDp1cmA8cCBzdHlsZT0iY29sb3I6ICNmZmY7Ij5BcmUgeW91IHN1cmUgeW91IHdhbnQgdG8gZGVsZXRlIGNvbm5lY3Rpb24gIiR7ci5uYW1lfSI/PC9wPmAsbWVudU9wdGlvbnM6W3tuYW1lOiJDYW5jZWwiLGFjdGlvbjphc3luYyBhPT57YS5kZXN0cm95KCl9fSx7bmFtZToiRGVsZXRlIixhY3Rpb246YXN5bmMgYT0+e2F3YWl0IGZyLmRpc3BhdGNoQWN0aW9uKEI1cix7Y29ubmVjdGlvbklkOnIuaWR9KSxhLmRlc3Ryb3koKX19XX0pfX1dfQogICAgICA+PC9kZWVzLXRhYmxlPgogICAgYH1hc3luYyBmaXJzdFVwZGF0ZWQoKXthd2FpdCB0aGlzLnJlZnJlc2goKX1hc3luYyByZWZyZXNoKCl7YXdhaXQgZnIuZGlzcGF0Y2hBY3Rpb24oX24sbnVsbCl9YXN5bmMgYWRkQ29ubmVjdGlvbigpe2F3YWl0IEIyLkRlZXNNb2RhbC5jcmVhdGVBbmRTaG93KHtoZWFkaW5nOiJBZGQgQ29ubmVjdGlvbiIsY29udGVudDp1cmAKICAgICAgICA8c3R5bGU+CiAgICAgICAgICAuZm9ybS1yb3cgeyBtYXJnaW4tYm90dG9tOiAxNnB4OyB9CiAgICAgICAgPC9zdHlsZT4KICAgICAgICA8ZGl2IGNsYXNzPSJmb3JtLXJvdyI+CiAgICAgICAgICA8ZGVlcy1pbnB1dC10ZXh0IC5sYWJlbD0keyJOYW1lIn0gLmtleT0keyJuYW1lIn0+PC9kZWVzLWlucHV0LXRleHQ+CiAgICAgICAgPC9kaXY+CiAgICAgICAgPGRpdiBjbGFzcz0iZm9ybS1yb3ciPgogICAgICAgICAgPGRlZXMtaW5wdXQtZHJvcGRvd24KICAgICAgICAgICAgLmxhYmVsPSR7IlByb3ZpZGVyIFR5cGUifQogICAgICAgICAgICAua2V5PSR7InByb3ZpZGVyVHlwZSJ9CiAgICAgICAgICAgIC5vcHRpb25zPSR7W3tvcHRpb246ImdpdGVhIixrZXk6ImdpdGVhIn0se29wdGlvbjoiZ2l0bGFiIixrZXk6ImdpdGxhYiJ9XX0KICAgICAgICAgICAgLnNlbGVjdGVkT3B0aW9uPSR7e29wdGlvbjoiZ2l0ZWEiLGtleToiZ2l0ZWEifX0KICAgICAgICAgID48L2RlZXMtaW5wdXQtZHJvcGRvd24+CiAgICAgICAgPC9kaXY+CiAgICAgICAgPGRpdiBjbGFzcz0iZm9ybS1yb3ciPgogICAgICAgICAgPGRlZXMtaW5wdXQtdGV4dCAubGFiZWw9JHsiQmFzZSBVUkwifSAua2V5PSR7ImJhc2VVcmwifT48L2RlZXMtaW5wdXQtdGV4dD4KICAgICAgICA8L2Rpdj4KICAgICAgICA8ZGl2IGNsYXNzPSJmb3JtLXJvdyI+CiAgICAgICAgICA8ZGVlcy1pbnB1dC10ZXh0IC5sYWJlbD0keyJBUEkgVG9rZW4ifSAua2V5PSR7InRva2VuIn0gdHlwZT0icGFzc3dvcmQiPjwvZGVlcy1pbnB1dC10ZXh0PgogICAgICAgIDwvZGl2PgogICAgICBgLG1lbnVPcHRpb25zOlt7bmFtZToiQ2FuY2VsIixhY3Rpb246YXN5bmMgcj0+e3IuZGVzdHJveSgpfX0se25hbWU6IkFkZCIsYWN0aW9uOmFzeW5jIHI9PntsZXQgaT1yLnNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvckFsbCgiZGVlcy1pbnB1dC10ZXh0LCBkZWVzLWlucHV0LWRyb3Bkb3duIiksYT17fTtmb3IobGV0IG4gb2YgaSluLmtleT09PSJwcm92aWRlclR5cGUiP2Fbbi5rZXldPW4uc2VsZWN0ZWRPcHRpb24/LmtleXx8ImdpdGVhIjphW24ua2V5XT1uLnZhbHVlfHwiIjthd2FpdCBmci5kaXNwYXRjaEFjdGlvbihPNXIse25hbWU6YS5uYW1lLHByb3ZpZGVyVHlwZTphLnByb3ZpZGVyVHlwZSxiYXNlVXJsOmEuYmFzZVVybCx0b2tlbjphLnRva2VufSksci5kZXN0cm95KCl9fV19KX19O3loPW9hKGl1cikscDVlPW5ldyBXZWFrTWFwLEZ0KHloLDQsImNvbm5lY3Rpb25zU3RhdGUiLHJ1cixYNCxwNWUpLFg0PUZ0KHloLDAsIkdpdG9wc1ZpZXdDb25uZWN0aW9ucyIsYXVyLFg0KSx6aShYNCwic3R5bGVzIixbV2kuZGVmYXVsdFN0eWxlcyxMbl0pLGV0KHloLDEsWDQpfSk7dmFyIHV1cj17fTtGZSh1dXIse0dpdG9wc1ZpZXdQcm9qZWN0czooKT0+Y2x9KTt2YXIgb3VyLHN1cixsdXIsY3VyLGR1cixIbyxmNWUsbTVlLGc1ZSxjbCxiNWU9cChhc3luYygpPT57SDIoKTthd2FpdCBQYygpO1o0KCk7dm8oKTtkdXI9W2hpKCJnaXRvcHMtdmlldy1wcm9qZWN0cyIpXTtjbD1jbGFzcyBleHRlbmRzKGN1cj1EaSxsdXI9W2FyKCldLHN1cj1bYXIoKV0sb3VyPVthcigpXSxjdXIpe2NvbnN0cnVjdG9yKCl7c3VwZXIoKTtncih0aGlzLGY1ZSxldChIbyw4LHRoaXMse2Nvbm5lY3Rpb25zOltdLGFjdGl2ZUNvbm5lY3Rpb25JZDpudWxsfSkpLGV0KEhvLDExLHRoaXMpO2dyKHRoaXMsbTVlLGV0KEhvLDEyLHRoaXMse3Byb2plY3RzOltdLGdyb3VwczpbXSxzZWNyZXRzOltdLHBpcGVsaW5lczpbXSxwaXBlbGluZUpvYnM6W10sY3VycmVudEpvYkxvZzoiIn0pKSxldChIbywxNSx0aGlzKTtncih0aGlzLGc1ZSxldChIbywxNix0aGlzLCIiKSksZXQoSG8sMTksdGhpcyk7bGV0IHI9ZnIuc2VsZWN0KGE9PmEpLnN1YnNjcmliZShhPT57dGhpcy5jb25uZWN0aW9uc1N0YXRlPWF9KTt0aGlzLnJ4U3Vic2NyaXB0aW9ucy5wdXNoKHIpO2xldCBpPVV0LnNlbGVjdChhPT5hKS5zdWJzY3JpYmUoYT0+e3RoaXMuZGF0YVN0YXRlPWF9KTt0aGlzLnJ4U3Vic2NyaXB0aW9ucy5wdXNoKGkpfXJlbmRlcigpe2xldCByPXRoaXMuY29ubmVjdGlvbnNTdGF0ZS5jb25uZWN0aW9ucy5tYXAoaT0+KHtvcHRpb246YCR7aS5uYW1lfSAoJHtpLnByb3ZpZGVyVHlwZX0pYCxrZXk6aS5pZH0pKTtyZXR1cm4gdXJgCiAgICAgIDxkaXYgY2xhc3M9InZpZXctdGl0bGUiPlByb2plY3RzPC9kaXY+CiAgICAgIDxkaXYgY2xhc3M9InZpZXctZGVzY3JpcHRpb24iPkJyb3dzZSBwcm9qZWN0cyBmcm9tIHlvdXIgY29ubmVjdGVkIHByb3ZpZGVyczwvZGl2PgogICAgICA8ZGl2IGNsYXNzPSJ0b29sYmFyIj4KICAgICAgICA8ZGVlcy1pbnB1dC1kcm9wZG93bgogICAgICAgICAgLmxhYmVsPSR7IkNvbm5lY3Rpb24ifQogICAgICAgICAgLm9wdGlvbnM9JHtyfQogICAgICAgICAgLnNlbGVjdGVkT3B0aW9uPSR7ci5maW5kKGk9Pmkua2V5PT09dGhpcy5zZWxlY3RlZENvbm5lY3Rpb25JZCl8fHJbMF19CiAgICAgICAgICBAc2VsZWN0ZWRPcHRpb249JHtpPT57dGhpcy5zZWxlY3RlZENvbm5lY3Rpb25JZD1pLmRldGFpbC5rZXksdGhpcy5sb2FkUHJvamVjdHMoKX19CiAgICAgICAgPjwvZGVlcy1pbnB1dC1kcm9wZG93bj4KICAgICAgICA8ZGVlcy1idXR0b24gQGNsaWNrPSR7KCk9PnRoaXMubG9hZFByb2plY3RzKCl9PlJlZnJlc2g8L2RlZXMtYnV0dG9uPgogICAgICA8L2Rpdj4KICAgICAgPGRlZXMtdGFibGUKICAgICAgICAuaGVhZGluZzE9JHsiUHJvamVjdHMifQogICAgICAgIC5oZWFkaW5nMj0keyJSZXBvc2l0b3JpZXMgZnJvbSB0aGUgc2VsZWN0ZWQgY29ubmVjdGlvbiJ9CiAgICAgICAgLmRhdGE9JHt0aGlzLmRhdGFTdGF0ZS5wcm9qZWN0c30KICAgICAgICAuZGlzcGxheUZ1bmN0aW9uPSR7aT0+KHtOYW1lOmkubmFtZSxQYXRoOmkuZnVsbFBhdGgsVmlzaWJpbGl0eTppLnZpc2liaWxpdHksQnJhbmNoOmkuZGVmYXVsdEJyYW5jaCwiTGFzdCBBY3Rpdml0eSI6aS5sYXN0QWN0aXZpdHk/bmV3IERhdGUoaS5sYXN0QWN0aXZpdHkpLnRvTG9jYWxlRGF0ZVN0cmluZygpOiItIn0pfQogICAgICAgIC5kYXRhQWN0aW9ucz0ke1t7bmFtZToiVmlldyBTZWNyZXRzIixpY29uTmFtZToibHVjaWRlOmtleSIsYWN0aW9uOmFzeW5jIGk9PntsbC5kaXNwYXRjaEFjdGlvbihuNSx7dmlldzoic2VjcmV0cyJ9KX19LHtuYW1lOiJWaWV3IFBpcGVsaW5lcyIsaWNvbk5hbWU6Imx1Y2lkZTpwbGF5IixhY3Rpb246YXN5bmMgaT0+e2xsLmRpc3BhdGNoQWN0aW9uKG41LHt2aWV3OiJwaXBlbGluZXMifSl9fV19CiAgICAgID48L2RlZXMtdGFibGU+CiAgICBgfWFzeW5jIGZpcnN0VXBkYXRlZCgpe2F3YWl0IGZyLmRpc3BhdGNoQWN0aW9uKF9uLG51bGwpO2xldCByPWZyLmdldFN0YXRlKCkuY29ubmVjdGlvbnM7ci5sZW5ndGg+MCYmIXRoaXMuc2VsZWN0ZWRDb25uZWN0aW9uSWQmJih0aGlzLnNlbGVjdGVkQ29ubmVjdGlvbklkPXJbMF0uaWQsYXdhaXQgdGhpcy5sb2FkUHJvamVjdHMoKSl9YXN5bmMgbG9hZFByb2plY3RzKCl7dGhpcy5zZWxlY3RlZENvbm5lY3Rpb25JZCYmYXdhaXQgVXQuZGlzcGF0Y2hBY3Rpb24oRzQse2Nvbm5lY3Rpb25JZDp0aGlzLnNlbGVjdGVkQ29ubmVjdGlvbklkfSl9fTtIbz1vYShjdXIpLGY1ZT1uZXcgV2Vha01hcCxtNWU9bmV3IFdlYWtNYXAsZzVlPW5ldyBXZWFrTWFwLEZ0KEhvLDQsImNvbm5lY3Rpb25zU3RhdGUiLGx1cixjbCxmNWUpLEZ0KEhvLDQsImRhdGFTdGF0ZSIsc3VyLGNsLG01ZSksRnQoSG8sNCwic2VsZWN0ZWRDb25uZWN0aW9uSWQiLG91cixjbCxnNWUpLGNsPUZ0KEhvLDAsIkdpdG9wc1ZpZXdQcm9qZWN0cyIsZHVyLGNsKSx6aShjbCwic3R5bGVzIixbV2kuZGVmYXVsdFN0eWxlcyxMbl0pLGV0KEhvLDEsY2wpfSk7dmFyIGJ1cj17fTtGZShidXIse0dpdG9wc1ZpZXdHcm91cHM6KCk9PmRsfSk7dmFyIHB1cixodXIsZnVyLG11cixndXIscW8sdjVlLHg1ZSx5NWUsZGwsdzVlPXAoYXN5bmMoKT0+e0gyKCk7YXdhaXQgUGMoKTtaNCgpO3ZvKCk7Z3VyPVtoaSgiZ2l0b3BzLXZpZXctZ3JvdXBzIildO2RsPWNsYXNzIGV4dGVuZHMobXVyPURpLGZ1cj1bYXIoKV0saHVyPVthcigpXSxwdXI9W2FyKCldLG11cil7Y29uc3RydWN0b3IoKXtzdXBlcigpO2dyKHRoaXMsdjVlLGV0KHFvLDgsdGhpcyx7Y29ubmVjdGlvbnM6W10sYWN0aXZlQ29ubmVjdGlvbklkOm51bGx9KSksZXQocW8sMTEsdGhpcyk7Z3IodGhpcyx4NWUsZXQocW8sMTIsdGhpcyx7cHJvamVjdHM6W10sZ3JvdXBzOltdLHNlY3JldHM6W10scGlwZWxpbmVzOltdLHBpcGVsaW5lSm9iczpbXSxjdXJyZW50Sm9iTG9nOiIifSkpLGV0KHFvLDE1LHRoaXMpO2dyKHRoaXMseTVlLGV0KHFvLDE2LHRoaXMsIiIpKSxldChxbywxOSx0aGlzKTtsZXQgcj1mci5zZWxlY3QoYT0+YSkuc3Vic2NyaWJlKGE9Pnt0aGlzLmNvbm5lY3Rpb25zU3RhdGU9YX0pO3RoaXMucnhTdWJzY3JpcHRpb25zLnB1c2gocik7bGV0IGk9VXQuc2VsZWN0KGE9PmEpLnN1YnNjcmliZShhPT57dGhpcy5kYXRhU3RhdGU9YX0pO3RoaXMucnhTdWJzY3JpcHRpb25zLnB1c2goaSl9cmVuZGVyKCl7bGV0IHI9dGhpcy5jb25uZWN0aW9uc1N0YXRlLmNvbm5lY3Rpb25zLm1hcChpPT4oe29wdGlvbjpgJHtpLm5hbWV9ICgke2kucHJvdmlkZXJUeXBlfSlgLGtleTppLmlkfSkpO3JldHVybiB1cmAKICAgICAgPGRpdiBjbGFzcz0idmlldy10aXRsZSI+R3JvdXBzPC9kaXY+CiAgICAgIDxkaXYgY2xhc3M9InZpZXctZGVzY3JpcHRpb24iPkJyb3dzZSBvcmdhbml6YXRpb25zIGFuZCBncm91cHMgZnJvbSB5b3VyIGNvbm5lY3RlZCBwcm92aWRlcnM8L2Rpdj4KICAgICAgPGRpdiBjbGFzcz0idG9vbGJhciI+CiAgICAgICAgPGRlZXMtaW5wdXQtZHJvcGRvd24KICAgICAgICAgIC5sYWJlbD0keyJDb25uZWN0aW9uIn0KICAgICAgICAgIC5vcHRpb25zPSR7cn0KICAgICAgICAgIC5zZWxlY3RlZE9wdGlvbj0ke3IuZmluZChpPT5pLmtleT09PXRoaXMuc2VsZWN0ZWRDb25uZWN0aW9uSWQpfHxyWzBdfQogICAgICAgICAgQHNlbGVjdGVkT3B0aW9uPSR7aT0+e3RoaXMuc2VsZWN0ZWRDb25uZWN0aW9uSWQ9aS5kZXRhaWwua2V5LHRoaXMubG9hZEdyb3VwcygpfX0KICAgICAgICA+PC9kZWVzLWlucHV0LWRyb3Bkb3duPgogICAgICAgIDxkZWVzLWJ1dHRvbiBAY2xpY2s9JHsoKT0+dGhpcy5sb2FkR3JvdXBzKCl9PlJlZnJlc2g8L2RlZXMtYnV0dG9uPgogICAgICA8L2Rpdj4KICAgICAgPGRlZXMtdGFibGUKICAgICAgICAuaGVhZGluZzE9JHsiR3JvdXBzIC8gT3JnYW5pemF0aW9ucyJ9CiAgICAgICAgLmhlYWRpbmcyPSR7Ikdyb3VwcyBmcm9tIHRoZSBzZWxlY3RlZCBjb25uZWN0aW9uIn0KICAgICAgICAuZGF0YT0ke3RoaXMuZGF0YVN0YXRlLmdyb3Vwc30KICAgICAgICAuZGlzcGxheUZ1bmN0aW9uPSR7aT0+KHtOYW1lOmkubmFtZSxQYXRoOmkuZnVsbFBhdGgsVmlzaWJpbGl0eTppLnZpc2liaWxpdHksUHJvamVjdHM6U3RyaW5nKGkucHJvamVjdENvdW50KX0pfQogICAgICAgIC5kYXRhQWN0aW9ucz0ke1t7bmFtZToiVmlldyBTZWNyZXRzIixpY29uTmFtZToibHVjaWRlOmtleSIsYWN0aW9uOmFzeW5jIGk9PntsbC5kaXNwYXRjaEFjdGlvbihuNSx7dmlldzoic2VjcmV0cyJ9KX19XX0KICAgICAgPjwvZGVlcy10YWJsZT4KICAgIGB9YXN5bmMgZmlyc3RVcGRhdGVkKCl7YXdhaXQgZnIuZGlzcGF0Y2hBY3Rpb24oX24sbnVsbCk7bGV0IHI9ZnIuZ2V0U3RhdGUoKS5jb25uZWN0aW9ucztyLmxlbmd0aD4wJiYhdGhpcy5zZWxlY3RlZENvbm5lY3Rpb25JZCYmKHRoaXMuc2VsZWN0ZWRDb25uZWN0aW9uSWQ9clswXS5pZCxhd2FpdCB0aGlzLmxvYWRHcm91cHMoKSl9YXN5bmMgbG9hZEdyb3Vwcygpe3RoaXMuc2VsZWN0ZWRDb25uZWN0aW9uSWQmJmF3YWl0IFV0LmRpc3BhdGNoQWN0aW9uKFNGLHtjb25uZWN0aW9uSWQ6dGhpcy5zZWxlY3RlZENvbm5lY3Rpb25JZH0pfX07cW89b2EobXVyKSx2NWU9bmV3IFdlYWtNYXAseDVlPW5ldyBXZWFrTWFwLHk1ZT1uZXcgV2Vha01hcCxGdChxbyw0LCJjb25uZWN0aW9uc1N0YXRlIixmdXIsZGwsdjVlKSxGdChxbyw0LCJkYXRhU3RhdGUiLGh1cixkbCx4NWUpLEZ0KHFvLDQsInNlbGVjdGVkQ29ubmVjdGlvbklkIixwdXIsZGwseTVlKSxkbD1GdChxbywwLCJHaXRvcHNWaWV3R3JvdXBzIixndXIsZGwpLHppKGRsLCJzdHlsZXMiLFtXaS5kZWZhdWx0U3R5bGVzLExuXSksZXQocW8sMSxkbCl9KTt2YXIgenVyPXt9O0ZlKHp1cix7R2l0b3BzVmlld1NlY3JldHM6KCk9PmpvfSk7dmFyIHZ1cix4dXIseXVyLHd1cixNdXIsa3VyLFN1cixCaSxNNWUsazVlLFM1ZSx6NWUsQzVlLGpvLFQ1ZT1wKGFzeW5jKCk9PntIMigpO2F3YWl0IFBjKCk7WjQoKTt2bygpO1N1cj1baGkoImdpdG9wcy12aWV3LXNlY3JldHMiKV07am89Y2xhc3MgZXh0ZW5kcyhrdXI9RGksTXVyPVthcigpXSx3dXI9W2FyKCldLHl1cj1bYXIoKV0seHVyPVthcigpXSx2dXI9W2FyKCldLGt1cil7Y29uc3RydWN0b3IoKXtzdXBlcigpO2dyKHRoaXMsTTVlLGV0KEJpLDgsdGhpcyx7Y29ubmVjdGlvbnM6W10sYWN0aXZlQ29ubmVjdGlvbklkOm51bGx9KSksZXQoQmksMTEsdGhpcyk7Z3IodGhpcyxrNWUsZXQoQmksMTIsdGhpcyx7cHJvamVjdHM6W10sZ3JvdXBzOltdLHNlY3JldHM6W10scGlwZWxpbmVzOltdLHBpcGVsaW5lSm9iczpbXSxjdXJyZW50Sm9iTG9nOiIifSkpLGV0KEJpLDE1LHRoaXMpO2dyKHRoaXMsUzVlLGV0KEJpLDE2LHRoaXMsIiIpKSxldChCaSwxOSx0aGlzKTtncih0aGlzLHo1ZSxldChCaSwyMCx0aGlzLCJwcm9qZWN0IikpLGV0KEJpLDIzLHRoaXMpO2dyKHRoaXMsQzVlLGV0KEJpLDI0LHRoaXMsIiIpKSxldChCaSwyNyx0aGlzKTtsZXQgcj1mci5zZWxlY3QoYT0+YSkuc3Vic2NyaWJlKGE9Pnt0aGlzLmNvbm5lY3Rpb25zU3RhdGU9YX0pO3RoaXMucnhTdWJzY3JpcHRpb25zLnB1c2gocik7bGV0IGk9VXQuc2VsZWN0KGE9PmEpLnN1YnNjcmliZShhPT57dGhpcy5kYXRhU3RhdGU9YX0pO3RoaXMucnhTdWJzY3JpcHRpb25zLnB1c2goaSl9cmVuZGVyKCl7bGV0IHI9dGhpcy5jb25uZWN0aW9uc1N0YXRlLmNvbm5lY3Rpb25zLm1hcChuPT4oe29wdGlvbjpgJHtuLm5hbWV9ICgke24ucHJvdmlkZXJUeXBlfSlgLGtleTpuLmlkfSkpLGk9W3tvcHRpb246IlByb2plY3QiLGtleToicHJvamVjdCJ9LHtvcHRpb246Ikdyb3VwIixrZXk6Imdyb3VwIn1dLGE9dGhpcy5zZWxlY3RlZFNjb3BlPT09InByb2plY3QiP3RoaXMuZGF0YVN0YXRlLnByb2plY3RzLm1hcChuPT4oe29wdGlvbjpuLmZ1bGxQYXRofHxuLm5hbWUsa2V5Om4uaWR9KSk6dGhpcy5kYXRhU3RhdGUuZ3JvdXBzLm1hcChuPT4oe29wdGlvbjpuLmZ1bGxQYXRofHxuLm5hbWUsa2V5Om4uaWR9KSk7cmV0dXJuIHVyYAogICAgICA8ZGl2IGNsYXNzPSJ2aWV3LXRpdGxlIj5TZWNyZXRzPC9kaXY+CiAgICAgIDxkaXYgY2xhc3M9InZpZXctZGVzY3JpcHRpb24iPk1hbmFnZSBDSS9DRCBzZWNyZXRzIGFuZCB2YXJpYWJsZXM8L2Rpdj4KICAgICAgPGRpdiBjbGFzcz0idG9vbGJhciI+CiAgICAgICAgPGRlZXMtaW5wdXQtZHJvcGRvd24KICAgICAgICAgIC5sYWJlbD0keyJDb25uZWN0aW9uIn0KICAgICAgICAgIC5vcHRpb25zPSR7cn0KICAgICAgICAgIC5zZWxlY3RlZE9wdGlvbj0ke3IuZmluZChuPT5uLmtleT09PXRoaXMuc2VsZWN0ZWRDb25uZWN0aW9uSWQpfHxyWzBdfQogICAgICAgICAgQHNlbGVjdGVkT3B0aW9uPSR7bj0+e3RoaXMuc2VsZWN0ZWRDb25uZWN0aW9uSWQ9bi5kZXRhaWwua2V5LHRoaXMubG9hZEVudGl0aWVzKCl9fQogICAgICAgID48L2RlZXMtaW5wdXQtZHJvcGRvd24+CiAgICAgICAgPGRlZXMtaW5wdXQtZHJvcGRvd24KICAgICAgICAgIC5sYWJlbD0keyJTY29wZSJ9CiAgICAgICAgICAub3B0aW9ucz0ke2l9CiAgICAgICAgICAuc2VsZWN0ZWRPcHRpb249JHtpLmZpbmQobj0+bi5rZXk9PT10aGlzLnNlbGVjdGVkU2NvcGUpfQogICAgICAgICAgQHNlbGVjdGVkT3B0aW9uPSR7bj0+e3RoaXMuc2VsZWN0ZWRTY29wZT1uLmRldGFpbC5rZXksdGhpcy5sb2FkRW50aXRpZXMoKX19CiAgICAgICAgPjwvZGVlcy1pbnB1dC1kcm9wZG93bj4KICAgICAgICA8ZGVlcy1pbnB1dC1kcm9wZG93bgogICAgICAgICAgLmxhYmVsPSR7dGhpcy5zZWxlY3RlZFNjb3BlPT09InByb2plY3QiPyJQcm9qZWN0IjoiR3JvdXAifQogICAgICAgICAgLm9wdGlvbnM9JHthfQogICAgICAgICAgLnNlbGVjdGVkT3B0aW9uPSR7YS5maW5kKG49Pm4ua2V5PT09dGhpcy5zZWxlY3RlZFNjb3BlSWQpfHxhWzBdfQogICAgICAgICAgQHNlbGVjdGVkT3B0aW9uPSR7bj0+e3RoaXMuc2VsZWN0ZWRTY29wZUlkPW4uZGV0YWlsLmtleSx0aGlzLmxvYWRTZWNyZXRzKCl9fQogICAgICAgID48L2RlZXMtaW5wdXQtZHJvcGRvd24+CiAgICAgICAgPGRlZXMtYnV0dG9uIEBjbGljaz0keygpPT50aGlzLmFkZFNlY3JldCgpfT5BZGQgU2VjcmV0PC9kZWVzLWJ1dHRvbj4KICAgICAgICA8ZGVlcy1idXR0b24gQGNsaWNrPSR7KCk9PnRoaXMubG9hZFNlY3JldHMoKX0+UmVmcmVzaDwvZGVlcy1idXR0b24+CiAgICAgIDwvZGl2PgogICAgICA8ZGVlcy10YWJsZQogICAgICAgIC5oZWFkaW5nMT0keyJTZWNyZXRzIn0KICAgICAgICAuaGVhZGluZzI9JHsiQ0kvQ0QgdmFyaWFibGVzIGZvciB0aGUgc2VsZWN0ZWQgZW50aXR5In0KICAgICAgICAuZGF0YT0ke3RoaXMuZGF0YVN0YXRlLnNlY3JldHN9CiAgICAgICAgLmRpc3BsYXlGdW5jdGlvbj0ke249Pih7S2V5Om4ua2V5LFZhbHVlOm4ubWFza2VkPyIqKioqKioiOm4udmFsdWUsUHJvdGVjdGVkOm4ucHJvdGVjdGVkPyJZZXMiOiJObyIsRW52aXJvbm1lbnQ6bi5lbnZpcm9ubWVudHx8IioifSl9CiAgICAgICAgLmRhdGFBY3Rpb25zPSR7W3tuYW1lOiJFZGl0IixpY29uTmFtZToibHVjaWRlOmVkaXQiLGFjdGlvbjphc3luYyBuPT57YXdhaXQgdGhpcy5lZGl0U2VjcmV0KG4pfX0se25hbWU6IkRlbGV0ZSIsaWNvbk5hbWU6Imx1Y2lkZTp0cmFzaDIiLGFjdGlvbjphc3luYyBuPT57YXdhaXQgVXQuZGlzcGF0Y2hBY3Rpb24oVjVyLHtjb25uZWN0aW9uSWQ6dGhpcy5zZWxlY3RlZENvbm5lY3Rpb25JZCxzY29wZTp0aGlzLnNlbGVjdGVkU2NvcGUsc2NvcGVJZDp0aGlzLnNlbGVjdGVkU2NvcGVJZCxrZXk6bi5rZXl9KX19XX0KICAgICAgPjwvZGVlcy10YWJsZT4KICAgIGB9YXN5bmMgZmlyc3RVcGRhdGVkKCl7YXdhaXQgZnIuZGlzcGF0Y2hBY3Rpb24oX24sbnVsbCk7bGV0IHI9ZnIuZ2V0U3RhdGUoKS5jb25uZWN0aW9ucztyLmxlbmd0aD4wJiYhdGhpcy5zZWxlY3RlZENvbm5lY3Rpb25JZCYmKHRoaXMuc2VsZWN0ZWRDb25uZWN0aW9uSWQ9clswXS5pZCxhd2FpdCB0aGlzLmxvYWRFbnRpdGllcygpKX1hc3luYyBsb2FkRW50aXRpZXMoKXt0aGlzLnNlbGVjdGVkQ29ubmVjdGlvbklkJiYodGhpcy5zZWxlY3RlZFNjb3BlPT09InByb2plY3QiP2F3YWl0IFV0LmRpc3BhdGNoQWN0aW9uKEc0LHtjb25uZWN0aW9uSWQ6dGhpcy5zZWxlY3RlZENvbm5lY3Rpb25JZH0pOmF3YWl0IFV0LmRpc3BhdGNoQWN0aW9uKFNGLHtjb25uZWN0aW9uSWQ6dGhpcy5zZWxlY3RlZENvbm5lY3Rpb25JZH0pKX1hc3luYyBsb2FkU2VjcmV0cygpeyF0aGlzLnNlbGVjdGVkQ29ubmVjdGlvbklkfHwhdGhpcy5zZWxlY3RlZFNjb3BlSWR8fGF3YWl0IFV0LmRpc3BhdGNoQWN0aW9uKEg1cix7Y29ubmVjdGlvbklkOnRoaXMuc2VsZWN0ZWRDb25uZWN0aW9uSWQsc2NvcGU6dGhpcy5zZWxlY3RlZFNjb3BlLHNjb3BlSWQ6dGhpcy5zZWxlY3RlZFNjb3BlSWR9KX1hc3luYyBhZGRTZWNyZXQoKXthd2FpdCBCMi5EZWVzTW9kYWwuY3JlYXRlQW5kU2hvdyh7aGVhZGluZzoiQWRkIFNlY3JldCIsY29udGVudDp1cmAKICAgICAgICA8c3R5bGU+LmZvcm0tcm93IHsgbWFyZ2luLWJvdHRvbTogMTZweDsgfTwvc3R5bGU+CiAgICAgICAgPGRpdiBjbGFzcz0iZm9ybS1yb3ciPgogICAgICAgICAgPGRlZXMtaW5wdXQtdGV4dCAubGFiZWw9JHsiS2V5In0gLmtleT0keyJrZXkifT48L2RlZXMtaW5wdXQtdGV4dD4KICAgICAgICA8L2Rpdj4KICAgICAgICA8ZGl2IGNsYXNzPSJmb3JtLXJvdyI+CiAgICAgICAgICA8ZGVlcy1pbnB1dC10ZXh0IC5sYWJlbD0keyJWYWx1ZSJ9IC5rZXk9JHsidmFsdWUifSB0eXBlPSJwYXNzd29yZCI+PC9kZWVzLWlucHV0LXRleHQ+CiAgICAgICAgPC9kaXY+CiAgICAgIGAsbWVudU9wdGlvbnM6W3tuYW1lOiJDYW5jZWwiLGFjdGlvbjphc3luYyByPT57ci5kZXN0cm95KCl9fSx7bmFtZToiQ3JlYXRlIixhY3Rpb246YXN5bmMgcj0+e2xldCBpPXIuc2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yQWxsKCJkZWVzLWlucHV0LXRleHQiKSxhPXt9O2ZvcihsZXQgbiBvZiBpKWFbbi5rZXldPW4udmFsdWV8fCIiO2F3YWl0IFV0LmRpc3BhdGNoQWN0aW9uKHE1cix7Y29ubmVjdGlvbklkOnRoaXMuc2VsZWN0ZWRDb25uZWN0aW9uSWQsc2NvcGU6dGhpcy5zZWxlY3RlZFNjb3BlLHNjb3BlSWQ6dGhpcy5zZWxlY3RlZFNjb3BlSWQsa2V5OmEua2V5LHZhbHVlOmEudmFsdWV9KSxyLmRlc3Ryb3koKX19XX0pfWFzeW5jIGVkaXRTZWNyZXQocil7YXdhaXQgQjIuRGVlc01vZGFsLmNyZWF0ZUFuZFNob3coe2hlYWRpbmc6YEVkaXQgU2VjcmV0OiAke3Iua2V5fWAsY29udGVudDp1cmAKICAgICAgICA8c3R5bGU+LmZvcm0tcm93IHsgbWFyZ2luLWJvdHRvbTogMTZweDsgfTwvc3R5bGU+CiAgICAgICAgPGRpdiBjbGFzcz0iZm9ybS1yb3ciPgogICAgICAgICAgPGRlZXMtaW5wdXQtdGV4dCAubGFiZWw9JHsiVmFsdWUifSAua2V5PSR7InZhbHVlIn0gdHlwZT0icGFzc3dvcmQiPjwvZGVlcy1pbnB1dC10ZXh0PgogICAgICAgIDwvZGl2PgogICAgICBgLG1lbnVPcHRpb25zOlt7bmFtZToiQ2FuY2VsIixhY3Rpb246YXN5bmMgaT0+e2kuZGVzdHJveSgpfX0se25hbWU6IlVwZGF0ZSIsYWN0aW9uOmFzeW5jIGk9PntsZXQgYT1pLnNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvcigiZGVlcy1pbnB1dC10ZXh0Iik7YXdhaXQgVXQuZGlzcGF0Y2hBY3Rpb24oajVyLHtjb25uZWN0aW9uSWQ6dGhpcy5zZWxlY3RlZENvbm5lY3Rpb25JZCxzY29wZTp0aGlzLnNlbGVjdGVkU2NvcGUsc2NvcGVJZDp0aGlzLnNlbGVjdGVkU2NvcGVJZCxrZXk6ci5rZXksdmFsdWU6YT8udmFsdWV8fCIifSksaS5kZXN0cm95KCl9fV19KX19O0JpPW9hKGt1ciksTTVlPW5ldyBXZWFrTWFwLGs1ZT1uZXcgV2Vha01hcCxTNWU9bmV3IFdlYWtNYXAsejVlPW5ldyBXZWFrTWFwLEM1ZT1uZXcgV2Vha01hcCxGdChCaSw0LCJjb25uZWN0aW9uc1N0YXRlIixNdXIsam8sTTVlKSxGdChCaSw0LCJkYXRhU3RhdGUiLHd1cixqbyxrNWUpLEZ0KEJpLDQsInNlbGVjdGVkQ29ubmVjdGlvbklkIix5dXIsam8sUzVlKSxGdChCaSw0LCJzZWxlY3RlZFNjb3BlIix4dXIsam8sejVlKSxGdChCaSw0LCJzZWxlY3RlZFNjb3BlSWQiLHZ1cixqbyxDNWUpLGpvPUZ0KEJpLDAsIkdpdG9wc1ZpZXdTZWNyZXRzIixTdXIsam8pLHppKGpvLCJzdHlsZXMiLFtXaS5kZWZhdWx0U3R5bGVzLExuXSksZXQoQmksMSxqbyl9KTt2YXIgRXVyPXt9O0ZlKEV1cix7R2l0b3BzVmlld1BpcGVsaW5lczooKT0+ajJ9KTt2YXIgQ3VyLFR1cixfdXIsTHVyLEF1cixEdXIsY24sXzVlLEw1ZSxBNWUsRDVlLGoyLEU1ZT1wKGFzeW5jKCk9PntIMigpO2F3YWl0IFBjKCk7WjQoKTt2bygpO0R1cj1baGkoImdpdG9wcy12aWV3LXBpcGVsaW5lcyIpXTtqMj1jbGFzcyBleHRlbmRzKEF1cj1EaSxMdXI9W2FyKCldLF91cj1bYXIoKV0sVHVyPVthcigpXSxDdXI9W2FyKCldLEF1cil7Y29uc3RydWN0b3IoKXtzdXBlcigpO2dyKHRoaXMsXzVlLGV0KGNuLDgsdGhpcyx7Y29ubmVjdGlvbnM6W10sYWN0aXZlQ29ubmVjdGlvbklkOm51bGx9KSksZXQoY24sMTEsdGhpcyk7Z3IodGhpcyxMNWUsZXQoY24sMTIsdGhpcyx7cHJvamVjdHM6W10sZ3JvdXBzOltdLHNlY3JldHM6W10scGlwZWxpbmVzOltdLHBpcGVsaW5lSm9iczpbXSxjdXJyZW50Sm9iTG9nOiIifSkpLGV0KGNuLDE1LHRoaXMpO2dyKHRoaXMsQTVlLGV0KGNuLDE2LHRoaXMsIiIpKSxldChjbiwxOSx0aGlzKTtncih0aGlzLEQ1ZSxldChjbiwyMCx0aGlzLCIiKSksZXQoY24sMjMsdGhpcyk7bGV0IHI9ZnIuc2VsZWN0KGE9PmEpLnN1YnNjcmliZShhPT57dGhpcy5jb25uZWN0aW9uc1N0YXRlPWF9KTt0aGlzLnJ4U3Vic2NyaXB0aW9ucy5wdXNoKHIpO2xldCBpPVV0LnNlbGVjdChhPT5hKS5zdWJzY3JpYmUoYT0+e3RoaXMuZGF0YVN0YXRlPWF9KTt0aGlzLnJ4U3Vic2NyaXB0aW9ucy5wdXNoKGkpfXJlbmRlcigpe2xldCByPXRoaXMuY29ubmVjdGlvbnNTdGF0ZS5jb25uZWN0aW9ucy5tYXAoYT0+KHtvcHRpb246YCR7YS5uYW1lfSAoJHthLnByb3ZpZGVyVHlwZX0pYCxrZXk6YS5pZH0pKSxpPXRoaXMuZGF0YVN0YXRlLnByb2plY3RzLm1hcChhPT4oe29wdGlvbjphLmZ1bGxQYXRofHxhLm5hbWUsa2V5OmEuaWR9KSk7cmV0dXJuIHVyYAogICAgICA8ZGl2IGNsYXNzPSJ2aWV3LXRpdGxlIj5QaXBlbGluZXM8L2Rpdj4KICAgICAgPGRpdiBjbGFzcz0idmlldy1kZXNjcmlwdGlvbiI+VmlldyBhbmQgbWFuYWdlIENJL0NEIHBpcGVsaW5lczwvZGl2PgogICAgICA8ZGl2IGNsYXNzPSJ0b29sYmFyIj4KICAgICAgICA8ZGVlcy1pbnB1dC1kcm9wZG93bgogICAgICAgICAgLmxhYmVsPSR7IkNvbm5lY3Rpb24ifQogICAgICAgICAgLm9wdGlvbnM9JHtyfQogICAgICAgICAgLnNlbGVjdGVkT3B0aW9uPSR7ci5maW5kKGE9PmEua2V5PT09dGhpcy5zZWxlY3RlZENvbm5lY3Rpb25JZCl8fHJbMF19CiAgICAgICAgICBAc2VsZWN0ZWRPcHRpb249JHthPT57dGhpcy5zZWxlY3RlZENvbm5lY3Rpb25JZD1hLmRldGFpbC5rZXksdGhpcy5sb2FkUHJvamVjdHMoKX19CiAgICAgICAgPjwvZGVlcy1pbnB1dC1kcm9wZG93bj4KICAgICAgICA8ZGVlcy1pbnB1dC1kcm9wZG93bgogICAgICAgICAgLmxhYmVsPSR7IlByb2plY3QifQogICAgICAgICAgLm9wdGlvbnM9JHtpfQogICAgICAgICAgLnNlbGVjdGVkT3B0aW9uPSR7aS5maW5kKGE9PmEua2V5PT09dGhpcy5zZWxlY3RlZFByb2plY3RJZCl8fGlbMF19CiAgICAgICAgICBAc2VsZWN0ZWRPcHRpb249JHthPT57dGhpcy5zZWxlY3RlZFByb2plY3RJZD1hLmRldGFpbC5rZXksdGhpcy5sb2FkUGlwZWxpbmVzKCl9fQogICAgICAgID48L2RlZXMtaW5wdXQtZHJvcGRvd24+CiAgICAgICAgPGRlZXMtYnV0dG9uIEBjbGljaz0keygpPT50aGlzLmxvYWRQaXBlbGluZXMoKX0+UmVmcmVzaDwvZGVlcy1idXR0b24+CiAgICAgIDwvZGl2PgogICAgICA8ZGVlcy10YWJsZQogICAgICAgIC5oZWFkaW5nMT0keyJDSS9DRCBQaXBlbGluZXMifQogICAgICAgIC5oZWFkaW5nMj0keyJQaXBlbGluZSBydW5zIGZvciB0aGUgc2VsZWN0ZWQgcHJvamVjdCJ9CiAgICAgICAgLmRhdGE9JHt0aGlzLmRhdGFTdGF0ZS5waXBlbGluZXN9CiAgICAgICAgLmRpc3BsYXlGdW5jdGlvbj0ke2E9Pih7SUQ6YS5pZCxTdGF0dXM6YS5zdGF0dXMsUmVmOmEucmVmLER1cmF0aW9uOmEuZHVyYXRpb24/YCR7TWF0aC5yb3VuZChhLmR1cmF0aW9uKX1zYDoiLSIsU291cmNlOmEuc291cmNlLENyZWF0ZWQ6YS5jcmVhdGVkQXQ/bmV3IERhdGUoYS5jcmVhdGVkQXQpLnRvTG9jYWxlU3RyaW5nKCk6Ii0ifSl9CiAgICAgICAgLmRhdGFBY3Rpb25zPSR7W3tuYW1lOiJWaWV3IEpvYnMiLGljb25OYW1lOiJsdWNpZGU6bGlzdCIsYWN0aW9uOmFzeW5jIGE9Pnthd2FpdCB0aGlzLnZpZXdKb2JzKGEpfX0se25hbWU6IlJldHJ5IixpY29uTmFtZToibHVjaWRlOnJlZnJlc2gtY3ciLGFjdGlvbjphc3luYyBhPT57YXdhaXQgVXQuZGlzcGF0Y2hBY3Rpb24oRzVyLHtjb25uZWN0aW9uSWQ6dGhpcy5zZWxlY3RlZENvbm5lY3Rpb25JZCxwcm9qZWN0SWQ6dGhpcy5zZWxlY3RlZFByb2plY3RJZCxwaXBlbGluZUlkOmEuaWR9KX19LHtuYW1lOiJDYW5jZWwiLGljb25OYW1lOiJsdWNpZGU6eC1jaXJjbGUiLGFjdGlvbjphc3luYyBhPT57YXdhaXQgVXQuZGlzcGF0Y2hBY3Rpb24oWTVyLHtjb25uZWN0aW9uSWQ6dGhpcy5zZWxlY3RlZENvbm5lY3Rpb25JZCxwcm9qZWN0SWQ6dGhpcy5zZWxlY3RlZFByb2plY3RJZCxwaXBlbGluZUlkOmEuaWR9KX19XX0KICAgICAgPjwvZGVlcy10YWJsZT4KICAgIGB9YXN5bmMgZmlyc3RVcGRhdGVkKCl7YXdhaXQgZnIuZGlzcGF0Y2hBY3Rpb24oX24sbnVsbCk7bGV0IHI9ZnIuZ2V0U3RhdGUoKS5jb25uZWN0aW9ucztyLmxlbmd0aD4wJiYhdGhpcy5zZWxlY3RlZENvbm5lY3Rpb25JZCYmKHRoaXMuc2VsZWN0ZWRDb25uZWN0aW9uSWQ9clswXS5pZCxhd2FpdCB0aGlzLmxvYWRQcm9qZWN0cygpKX1hc3luYyBsb2FkUHJvamVjdHMoKXt0aGlzLnNlbGVjdGVkQ29ubmVjdGlvbklkJiZhd2FpdCBVdC5kaXNwYXRjaEFjdGlvbihHNCx7Y29ubmVjdGlvbklkOnRoaXMuc2VsZWN0ZWRDb25uZWN0aW9uSWR9KX1hc3luYyBsb2FkUGlwZWxpbmVzKCl7IXRoaXMuc2VsZWN0ZWRDb25uZWN0aW9uSWR8fCF0aGlzLnNlbGVjdGVkUHJvamVjdElkfHxhd2FpdCBVdC5kaXNwYXRjaEFjdGlvbihVNXIse2Nvbm5lY3Rpb25JZDp0aGlzLnNlbGVjdGVkQ29ubmVjdGlvbklkLHByb2plY3RJZDp0aGlzLnNlbGVjdGVkUHJvamVjdElkfSl9YXN5bmMgdmlld0pvYnMocil7YXdhaXQgVXQuZGlzcGF0Y2hBY3Rpb24oVzVyLHtjb25uZWN0aW9uSWQ6dGhpcy5zZWxlY3RlZENvbm5lY3Rpb25JZCxwcm9qZWN0SWQ6dGhpcy5zZWxlY3RlZFByb2plY3RJZCxwaXBlbGluZUlkOnIuaWR9KTtsZXQgaT1VdC5nZXRTdGF0ZSgpLnBpcGVsaW5lSm9iczthd2FpdCBCMi5EZWVzTW9kYWwuY3JlYXRlQW5kU2hvdyh7aGVhZGluZzpgUGlwZWxpbmUgIyR7ci5pZH0gLSBKb2JzYCxjb250ZW50OnVyYAogICAgICAgIDxzdHlsZT4KICAgICAgICAgIC5qb2JzLWxpc3QgeyBjb2xvcjogI2ZmZjsgfQogICAgICAgICAgLmpvYi1pdGVtIHsgZGlzcGxheTogZmxleDsganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuOyBwYWRkaW5nOiA4cHggMDsgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICMzMzM7IH0KICAgICAgICAgIC5qb2ItbmFtZSB7IGZvbnQtd2VpZ2h0OiA2MDA7IH0KICAgICAgICAgIC5qb2Itc3RhdHVzIHsgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTsgZm9udC1zaXplOiAxMnB4OyB9CiAgICAgICAgPC9zdHlsZT4KICAgICAgICA8ZGl2IGNsYXNzPSJqb2JzLWxpc3QiPgogICAgICAgICAgJHtpLm1hcChhPT51cmAKICAgICAgICAgICAgPGRpdiBjbGFzcz0iam9iLWl0ZW0iPgogICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJqb2ItbmFtZSI+JHthLm5hbWV9ICgke2Euc3RhZ2V9KTwvc3Bhbj4KICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iam9iLXN0YXR1cyI+JHthLnN0YXR1c30gLSAke2EuZHVyYXRpb24/YCR7TWF0aC5yb3VuZChhLmR1cmF0aW9uKX1zYDoiLSJ9PC9zcGFuPgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIGApfQogICAgICAgICAgJHtpLmxlbmd0aD09PTA/dXJgPHA+Tm8gam9icyBmb3VuZC48L3A+YDoiIn0KICAgICAgICA8L2Rpdj4KICAgICAgYCxtZW51T3B0aW9uczpbe25hbWU6IkNsb3NlIixhY3Rpb246YXN5bmMgYT0+e2EuZGVzdHJveSgpfX1dfSl9fTtjbj1vYShBdXIpLF81ZT1uZXcgV2Vha01hcCxMNWU9bmV3IFdlYWtNYXAsQTVlPW5ldyBXZWFrTWFwLEQ1ZT1uZXcgV2Vha01hcCxGdChjbiw0LCJjb25uZWN0aW9uc1N0YXRlIixMdXIsajIsXzVlKSxGdChjbiw0LCJkYXRhU3RhdGUiLF91cixqMixMNWUpLEZ0KGNuLDQsInNlbGVjdGVkQ29ubmVjdGlvbklkIixUdXIsajIsQTVlKSxGdChjbiw0LCJzZWxlY3RlZFByb2plY3RJZCIsQ3VyLGoyLEQ1ZSksajI9RnQoY24sMCwiR2l0b3BzVmlld1BpcGVsaW5lcyIsRHVyLGoyKSx6aShqMiwic3R5bGVzIixbV2kuZGVmYXVsdFN0eWxlcyxMbixaMWAKICAgICAgLnN0YXR1cy1iYWRnZSB7CiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrOwogICAgICAgIHBhZGRpbmc6IDJweCA4cHg7CiAgICAgICAgYm9yZGVyLXJhZGl1czogNHB4OwogICAgICAgIGZvbnQtc2l6ZTogMTJweDsKICAgICAgICBmb250LXdlaWdodDogNjAwOwogICAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7CiAgICAgIH0KICAgICAgLnN0YXR1cy1zdWNjZXNzIHsgYmFja2dyb3VuZDogIzFhM2ExYTsgY29sb3I6ICMwMGZmODg7IH0KICAgICAgLnN0YXR1cy1mYWlsZWQgeyBiYWNrZ3JvdW5kOiAjM2ExYTFhOyBjb2xvcjogI2ZmNDQ0NDsgfQogICAgICAuc3RhdHVzLXJ1bm5pbmcgeyBiYWNrZ3JvdW5kOiAjMWEyYTNhOyBjb2xvcjogIzAwYWNmZjsgfQogICAgICAuc3RhdHVzLXBlbmRpbmcgeyBiYWNrZ3JvdW5kOiAjM2EzYTFhOyBjb2xvcjogI2ZmYWEwMDsgfQogICAgICAuc3RhdHVzLWNhbmNlbGVkIHsgYmFja2dyb3VuZDogIzJhMmEyYTsgY29sb3I6ICM5OTk7IH0KICAgIGBdKSxldChjbiwxLGoyKX0pO3ZhciBCdXI9e307RmUoQnVyLHtHaXRvcHNWaWV3QnVpbGRsb2c6KCk9PlZvfSk7dmFyICR1cixJdXIsUHVyLE51cixGdXIsT3VyLFJ1cixIaSwkNWUsSTVlLFA1ZSxONWUsRjVlLFZvLE81ZT1wKGFzeW5jKCk9PntIMigpO2F3YWl0IFBjKCk7WjQoKTt2bygpO1J1cj1baGkoImdpdG9wcy12aWV3LWJ1aWxkbG9nIildO1ZvPWNsYXNzIGV4dGVuZHMoT3VyPURpLEZ1cj1bYXIoKV0sTnVyPVthcigpXSxQdXI9W2FyKCldLEl1cj1bYXIoKV0sJHVyPVthcigpXSxPdXIpe2NvbnN0cnVjdG9yKCl7c3VwZXIoKTtncih0aGlzLCQ1ZSxldChIaSw4LHRoaXMse2Nvbm5lY3Rpb25zOltdLGFjdGl2ZUNvbm5lY3Rpb25JZDpudWxsfSkpLGV0KEhpLDExLHRoaXMpO2dyKHRoaXMsSTVlLGV0KEhpLDEyLHRoaXMse3Byb2plY3RzOltdLGdyb3VwczpbXSxzZWNyZXRzOltdLHBpcGVsaW5lczpbXSxwaXBlbGluZUpvYnM6W10sY3VycmVudEpvYkxvZzoiIn0pKSxldChIaSwxNSx0aGlzKTtncih0aGlzLFA1ZSxldChIaSwxNix0aGlzLCIiKSksZXQoSGksMTksdGhpcyk7Z3IodGhpcyxONWUsZXQoSGksMjAsdGhpcywiIikpLGV0KEhpLDIzLHRoaXMpO2dyKHRoaXMsRjVlLGV0KEhpLDI0LHRoaXMsIiIpKSxldChIaSwyNyx0aGlzKTtsZXQgcj1mci5zZWxlY3QoYT0+YSkuc3Vic2NyaWJlKGE9Pnt0aGlzLmNvbm5lY3Rpb25zU3RhdGU9YX0pO3RoaXMucnhTdWJzY3JpcHRpb25zLnB1c2gocik7bGV0IGk9VXQuc2VsZWN0KGE9PmEpLnN1YnNjcmliZShhPT57dGhpcy5kYXRhU3RhdGU9YX0pO3RoaXMucnhTdWJzY3JpcHRpb25zLnB1c2goaSl9cmVuZGVyKCl7bGV0IHI9dGhpcy5jb25uZWN0aW9uc1N0YXRlLmNvbm5lY3Rpb25zLm1hcChuPT4oe29wdGlvbjpgJHtuLm5hbWV9ICgke24ucHJvdmlkZXJUeXBlfSlgLGtleTpuLmlkfSkpLGk9dGhpcy5kYXRhU3RhdGUucHJvamVjdHMubWFwKG49Pih7b3B0aW9uOm4uZnVsbFBhdGh8fG4ubmFtZSxrZXk6bi5pZH0pKSxhPXRoaXMuZGF0YVN0YXRlLnBpcGVsaW5lSm9icy5tYXAobj0+KHtvcHRpb246YCR7bi5uYW1lfSAoJHtuLnN0YXR1c30pYCxrZXk6bi5pZH0pKTtyZXR1cm4gdXJgCiAgICAgIDxkaXYgY2xhc3M9InZpZXctdGl0bGUiPkJ1aWxkIExvZzwvZGl2PgogICAgICA8ZGl2IGNsYXNzPSJ2aWV3LWRlc2NyaXB0aW9uIj5WaWV3IHJhdyBidWlsZCBsb2dzIGZvciBDSS9DRCBqb2JzPC9kaXY+CiAgICAgIDxkaXYgY2xhc3M9InRvb2xiYXIiPgogICAgICAgIDxkZWVzLWlucHV0LWRyb3Bkb3duCiAgICAgICAgICAubGFiZWw9JHsiQ29ubmVjdGlvbiJ9CiAgICAgICAgICAub3B0aW9ucz0ke3J9CiAgICAgICAgICAuc2VsZWN0ZWRPcHRpb249JHtyLmZpbmQobj0+bi5rZXk9PT10aGlzLnNlbGVjdGVkQ29ubmVjdGlvbklkKXx8clswXX0KICAgICAgICAgIEBzZWxlY3RlZE9wdGlvbj0ke249Pnt0aGlzLnNlbGVjdGVkQ29ubmVjdGlvbklkPW4uZGV0YWlsLmtleSx0aGlzLmxvYWRQcm9qZWN0cygpfX0KICAgICAgICA+PC9kZWVzLWlucHV0LWRyb3Bkb3duPgogICAgICAgIDxkZWVzLWlucHV0LWRyb3Bkb3duCiAgICAgICAgICAubGFiZWw9JHsiUHJvamVjdCJ9CiAgICAgICAgICAub3B0aW9ucz0ke2l9CiAgICAgICAgICAuc2VsZWN0ZWRPcHRpb249JHtpLmZpbmQobj0+bi5rZXk9PT10aGlzLnNlbGVjdGVkUHJvamVjdElkKXx8aVswXX0KICAgICAgICAgIEBzZWxlY3RlZE9wdGlvbj0ke249Pnt0aGlzLnNlbGVjdGVkUHJvamVjdElkPW4uZGV0YWlsLmtleX19CiAgICAgICAgPjwvZGVlcy1pbnB1dC1kcm9wZG93bj4KICAgICAgICA8ZGVlcy1pbnB1dC1kcm9wZG93bgogICAgICAgICAgLmxhYmVsPSR7IkpvYiJ9CiAgICAgICAgICAub3B0aW9ucz0ke2F9CiAgICAgICAgICAuc2VsZWN0ZWRPcHRpb249JHthLmZpbmQobj0+bi5rZXk9PT10aGlzLnNlbGVjdGVkSm9iSWQpfHxhWzBdfQogICAgICAgICAgQHNlbGVjdGVkT3B0aW9uPSR7bj0+e3RoaXMuc2VsZWN0ZWRKb2JJZD1uLmRldGFpbC5rZXl9fQogICAgICAgID48L2RlZXMtaW5wdXQtZHJvcGRvd24+CiAgICAgICAgPGRlZXMtYnV0dG9uIEBjbGljaz0keygpPT50aGlzLmZldGNoTG9nKCl9PkZldGNoIExvZzwvZGVlcy1idXR0b24+CiAgICAgICAgPGRlZXMtYnV0dG9uIEBjbGljaz0keygpPT50aGlzLmZldGNoTG9nKCl9PlJlZnJlc2g8L2RlZXMtYnV0dG9uPgogICAgICA8L2Rpdj4KICAgICAgJHt0aGlzLnNlbGVjdGVkSm9iSWQ/dXJgCiAgICAgICAgPGRpdiBjbGFzcz0iam9iLW1ldGEiPgogICAgICAgICAgPHNwYW4gY2xhc3M9ImpvYi1tZXRhLWl0ZW0iPkpvYjogPHN0cm9uZz4ke3RoaXMuc2VsZWN0ZWRKb2JJZH08L3N0cm9uZz48L3NwYW4+CiAgICAgICAgICA8c3BhbiBjbGFzcz0iam9iLW1ldGEtaXRlbSI+UHJvamVjdDogPHN0cm9uZz4ke3RoaXMuc2VsZWN0ZWRQcm9qZWN0SWR9PC9zdHJvbmc+PC9zcGFuPgogICAgICAgIDwvZGl2PgogICAgICBgOiIifQogICAgICA8ZGl2IGNsYXNzPSJsb2ctY29udGFpbmVyIj4KICAgICAgICAke3RoaXMuZGF0YVN0YXRlLmN1cnJlbnRKb2JMb2c/dGhpcy5kYXRhU3RhdGUuY3VycmVudEpvYkxvZzp1cmA8ZGl2IGNsYXNzPSJsb2ctZW1wdHkiPlNlbGVjdCBhIGNvbm5lY3Rpb24sIHByb2plY3QsIGFuZCBqb2IsIHRoZW4gY2xpY2sgIkZldGNoIExvZyIgdG8gdmlldyBidWlsZCBvdXRwdXQuPC9kaXY+YH0KICAgICAgPC9kaXY+CiAgICBgfWFzeW5jIGZpcnN0VXBkYXRlZCgpe2F3YWl0IGZyLmRpc3BhdGNoQWN0aW9uKF9uLG51bGwpO2xldCByPWZyLmdldFN0YXRlKCkuY29ubmVjdGlvbnM7ci5sZW5ndGg+MCYmIXRoaXMuc2VsZWN0ZWRDb25uZWN0aW9uSWQmJih0aGlzLnNlbGVjdGVkQ29ubmVjdGlvbklkPXJbMF0uaWQsYXdhaXQgdGhpcy5sb2FkUHJvamVjdHMoKSl9YXN5bmMgbG9hZFByb2plY3RzKCl7dGhpcy5zZWxlY3RlZENvbm5lY3Rpb25JZCYmYXdhaXQgVXQuZGlzcGF0Y2hBY3Rpb24oRzQse2Nvbm5lY3Rpb25JZDp0aGlzLnNlbGVjdGVkQ29ubmVjdGlvbklkfSl9YXN5bmMgZmV0Y2hMb2coKXshdGhpcy5zZWxlY3RlZENvbm5lY3Rpb25JZHx8IXRoaXMuc2VsZWN0ZWRQcm9qZWN0SWR8fCF0aGlzLnNlbGVjdGVkSm9iSWR8fGF3YWl0IFV0LmRpc3BhdGNoQWN0aW9uKFo1cix7Y29ubmVjdGlvbklkOnRoaXMuc2VsZWN0ZWRDb25uZWN0aW9uSWQscHJvamVjdElkOnRoaXMuc2VsZWN0ZWRQcm9qZWN0SWQsam9iSWQ6dGhpcy5zZWxlY3RlZEpvYklkfSl9fTtIaT1vYShPdXIpLCQ1ZT1uZXcgV2Vha01hcCxJNWU9bmV3IFdlYWtNYXAsUDVlPW5ldyBXZWFrTWFwLE41ZT1uZXcgV2Vha01hcCxGNWU9bmV3IFdlYWtNYXAsRnQoSGksNCwiY29ubmVjdGlvbnNTdGF0ZSIsRnVyLFZvLCQ1ZSksRnQoSGksNCwiZGF0YVN0YXRlIixOdXIsVm8sSTVlKSxGdChIaSw0LCJzZWxlY3RlZENvbm5lY3Rpb25JZCIsUHVyLFZvLFA1ZSksRnQoSGksNCwic2VsZWN0ZWRQcm9qZWN0SWQiLEl1cixWbyxONWUpLEZ0KEhpLDQsInNlbGVjdGVkSm9iSWQiLCR1cixWbyxGNWUpLFZvPUZ0KEhpLDAsIkdpdG9wc1ZpZXdCdWlsZGxvZyIsUnVyLFZvKSx6aShWbywic3R5bGVzIixbV2kuZGVmYXVsdFN0eWxlcyxMbixaMWAKICAgICAgLmxvZy1jb250YWluZXIgewogICAgICAgIGJhY2tncm91bmQ6ICMwZDBkMGQ7CiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgIzMzMzsKICAgICAgICBib3JkZXItcmFkaXVzOiA4cHg7CiAgICAgICAgcGFkZGluZzogMTZweDsKICAgICAgICBmb250LWZhbWlseTogJ0ZpcmEgQ29kZScsICdDb3VyaWVyIE5ldycsIG1vbm9zcGFjZTsKICAgICAgICBmb250LXNpemU6IDEzcHg7CiAgICAgICAgbGluZS1oZWlnaHQ6IDEuNjsKICAgICAgICBjb2xvcjogI2NjYzsKICAgICAgICBtYXgtaGVpZ2h0OiA2MDBweDsKICAgICAgICBvdmVyZmxvdy15OiBhdXRvOwogICAgICAgIHdoaXRlLXNwYWNlOiBwcmUtd3JhcDsKICAgICAgICB3b3JkLWJyZWFrOiBicmVhay1hbGw7CiAgICAgIH0KICAgICAgLmxvZy1lbXB0eSB7CiAgICAgICAgY29sb3I6ICM2NjY7CiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyOwogICAgICAgIHBhZGRpbmc6IDQwcHg7CiAgICAgIH0KICAgICAgLmpvYi1tZXRhIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGdhcDogMTZweDsKICAgICAgICBtYXJnaW4tYm90dG9tOiAxNnB4OwogICAgICAgIHBhZGRpbmc6IDEycHg7CiAgICAgICAgYmFja2dyb3VuZDogIzFhMWEyZTsKICAgICAgICBib3JkZXItcmFkaXVzOiA4cHg7CiAgICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgICB9CiAgICAgIC5qb2ItbWV0YS1pdGVtIHsKICAgICAgICBjb2xvcjogIzk5OTsKICAgICAgfQogICAgICAuam9iLW1ldGEtaXRlbSBzdHJvbmcgewogICAgICAgIGNvbG9yOiAjZmZmOwogICAgICB9CiAgICBgXSksZXQoSGksMSxWbyl9KTtIMigpO2F3YWl0IFBjKCk7bDVlKCk7dm8oKTt2YXIgSHVyLHF1cixqdXIsVnVyLE9jLFI1ZSxCNWU7VnVyPVtoaSgiZ2l0b3BzLWRhc2hib2FyZCIpXTt2YXIgUTQ9Y2xhc3MgZXh0ZW5kcyhqdXI9RGkscXVyPVthcigpXSxIdXI9W2FyKCldLGp1cil7Y29uc3RydWN0b3IoKXtzdXBlcigpO2dyKHRoaXMsUjVlLGV0KE9jLDgsdGhpcyx7aWRlbnRpdHk6bnVsbCxpc0xvZ2dlZEluOiExfSkpLGV0KE9jLDExLHRoaXMpO2dyKHRoaXMsQjVlLGV0KE9jLDEyLHRoaXMse2FjdGl2ZVZpZXc6Im92ZXJ2aWV3IixhdXRvUmVmcmVzaDohMCxyZWZyZXNoSW50ZXJ2YWw6M2U0fSkpLGV0KE9jLDE1LHRoaXMpO3ppKHRoaXMsInZpZXdUYWJzIixbe25hbWU6Ik92ZXJ2aWV3IixpY29uTmFtZToibHVjaWRlOmxheW91dERhc2hib2FyZCIsZWxlbWVudDooYXN5bmMoKT0+KGF3YWl0IHU1ZSgpLnRoZW4oKCk9PnR1cikpLkdpdG9wc1ZpZXdPdmVydmlldykoKX0se25hbWU6IkNvbm5lY3Rpb25zIixpY29uTmFtZToibHVjaWRlOnBsdWciLGVsZW1lbnQ6KGFzeW5jKCk9Pihhd2FpdCBoNWUoKS50aGVuKCgpPT5udXIpKS5HaXRvcHNWaWV3Q29ubmVjdGlvbnMpKCl9LHtuYW1lOiJQcm9qZWN0cyIsaWNvbk5hbWU6Imx1Y2lkZTpmb2xkZXJHaXQyIixlbGVtZW50Oihhc3luYygpPT4oYXdhaXQgYjVlKCkudGhlbigoKT0+dXVyKSkuR2l0b3BzVmlld1Byb2plY3RzKSgpfSx7bmFtZToiR3JvdXBzIixpY29uTmFtZToibHVjaWRlOnVzZXJzIixlbGVtZW50Oihhc3luYygpPT4oYXdhaXQgdzVlKCkudGhlbigoKT0+YnVyKSkuR2l0b3BzVmlld0dyb3VwcykoKX0se25hbWU6IlNlY3JldHMiLGljb25OYW1lOiJsdWNpZGU6a2V5IixlbGVtZW50Oihhc3luYygpPT4oYXdhaXQgVDVlKCkudGhlbigoKT0+enVyKSkuR2l0b3BzVmlld1NlY3JldHMpKCl9LHtuYW1lOiJQaXBlbGluZXMiLGljb25OYW1lOiJsdWNpZGU6cGxheSIsZWxlbWVudDooYXN5bmMoKT0+KGF3YWl0IEU1ZSgpLnRoZW4oKCk9PkV1cikpLkdpdG9wc1ZpZXdQaXBlbGluZXMpKCl9LHtuYW1lOiJCdWlsZCBMb2ciLGljb25OYW1lOiJsdWNpZGU6c2Nyb2xsVGV4dCIsZWxlbWVudDooYXN5bmMoKT0+KGF3YWl0IE81ZSgpLnRoZW4oKCk9PkJ1cikpLkdpdG9wc1ZpZXdCdWlsZGxvZykoKX1dKTt6aSh0aGlzLCJyZXNvbHZlZFZpZXdUYWJzIixbXSk7ZG9jdW1lbnQudGl0bGU9IkdpdE9wcyI7bGV0IHI9cTIuc2VsZWN0KGE9PmEpLnN1YnNjcmliZShhPT57dGhpcy5sb2dpblN0YXRlPWEsYS5pc0xvZ2dlZEluJiZmci5kaXNwYXRjaEFjdGlvbihfbixudWxsKX0pO3RoaXMucnhTdWJzY3JpcHRpb25zLnB1c2gocik7bGV0IGk9bGwuc2VsZWN0KGE9PmEpLnN1YnNjcmliZShhPT57dGhpcy51aVN0YXRlPWEsdGhpcy5zeW5jQXBwZGFzaFZpZXcoYS5hY3RpdmVWaWV3KX0pO3RoaXMucnhTdWJzY3JpcHRpb25zLnB1c2goaSl9cmVuZGVyKCl7cmV0dXJuIHVyYAogICAgICA8ZGl2IGNsYXNzPSJtYWluY29udGFpbmVyIj4KICAgICAgICA8ZGVlcy1zaW1wbGUtbG9naW4gbmFtZT0iR2l0T3BzIj4KICAgICAgICAgIDxkZWVzLXNpbXBsZS1hcHBkYXNoCiAgICAgICAgICAgIG5hbWU9IkdpdE9wcyIKICAgICAgICAgICAgLnZpZXdUYWJzPSR7dGhpcy5yZXNvbHZlZFZpZXdUYWJzfQogICAgICAgICAgPgogICAgICAgICAgPC9kZWVzLXNpbXBsZS1hcHBkYXNoPgogICAgICAgIDwvZGVlcy1zaW1wbGUtbG9naW4+CiAgICAgIDwvZGl2PgogICAgYH1hc3luYyBmaXJzdFVwZGF0ZWQoKXt0aGlzLnJlc29sdmVkVmlld1RhYnM9YXdhaXQgUHJvbWlzZS5hbGwodGhpcy52aWV3VGFicy5tYXAoYXN5bmMgbj0+KHtuYW1lOm4ubmFtZSxpY29uTmFtZTpuLmljb25OYW1lLGVsZW1lbnQ6YXdhaXQgbi5lbGVtZW50fSkpKSx0aGlzLnJlcXVlc3RVcGRhdGUoKSxhd2FpdCB0aGlzLnVwZGF0ZUNvbXBsZXRlO2xldCByPXRoaXMuc2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yKCJkZWVzLXNpbXBsZS1sb2dpbiIpO3ImJnIuYWRkRXZlbnRMaXN0ZW5lcigibG9naW4iLG49Pnt0aGlzLmxvZ2luKG4uZGV0YWlsLmRhdGEudXNlcm5hbWUsbi5kZXRhaWwuZGF0YS5wYXNzd29yZCl9KTtsZXQgaT10aGlzLnNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvcigiZGVlcy1zaW1wbGUtYXBwZGFzaCIpO2lmKGkmJihpLmFkZEV2ZW50TGlzdGVuZXIoInZpZXctc2VsZWN0IixuPT57bGV0IG89bi5kZXRhaWwudmlldy5uYW1lLnRvTG93ZXJDYXNlKCk7bGwuZGlzcGF0Y2hBY3Rpb24objUse3ZpZXc6b30pfSksaS5hZGRFdmVudExpc3RlbmVyKCJsb2dvdXQiLGFzeW5jKCk9Pnthd2FpdCBxMi5kaXNwYXRjaEFjdGlvbihKYixudWxsKX0pKSxpJiZ0aGlzLnJlc29sdmVkVmlld1RhYnMubGVuZ3RoPjApe2xldCBuPXRoaXMucmVzb2x2ZWRWaWV3VGFicy5maW5kKG89Pm8ubmFtZS50b0xvd2VyQ2FzZSgpPT09dGhpcy51aVN0YXRlLmFjdGl2ZVZpZXcpfHx0aGlzLnJlc29sdmVkVmlld1RhYnNbMF07YXdhaXQgaS5sb2FkVmlldyhuKX1sZXQgYT1xMi5nZXRTdGF0ZSgpO2lmKGEuaWRlbnRpdHk/Lmp3dClpZihhLmlkZW50aXR5LmV4cGlyZXNBdD5EYXRlLm5vdygpKXRyeXsoYXdhaXQgbmV3IHIxLnBsdWdpbnMudHlwZWRyZXF1ZXN0LlR5cGVkUmVxdWVzdCgiL3R5cGVkcmVxdWVzdCIsInZlcmlmeUlkZW50aXR5IikuZmlyZSh7aWRlbnRpdHk6YS5pZGVudGl0eX0pKS52YWxpZD8odGhpcy5sb2dpblN0YXRlPWEsciYmYXdhaXQgci5zd2l0Y2hUb1Nsb3R0ZWRDb250ZW50KCkpOmF3YWl0IHEyLmRpc3BhdGNoQWN0aW9uKEpiLG51bGwpfWNhdGNoKG4pe2NvbnNvbGUud2FybigiU3RvcmVkIHNlc3Npb24gaW52YWxpZCwgcmV0dXJuaW5nIHRvIGxvZ2luOiIsbiksYXdhaXQgcTIuZGlzcGF0Y2hBY3Rpb24oSmIsbnVsbCl9ZWxzZSBhd2FpdCBxMi5kaXNwYXRjaEFjdGlvbihKYixudWxsKX1hc3luYyBsb2dpbihyLGkpe2xldCBhPWF3YWl0IHRoaXMuZG9tdG9vbHNQcm9taXNlLG49dGhpcy5zaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3IoImRlZXMtc2ltcGxlLWxvZ2luIiksbz1uPy5zaGFkb3dSb290Py5xdWVyeVNlbGVjdG9yKCJkZWVzLWZvcm0iKTtvJiZvLnNldFN0YXR1cygicGVuZGluZyIsIkxvZ2dpbmcgaW4uLi4iKSwoYXdhaXQgcTIuZGlzcGF0Y2hBY3Rpb24oRjVyLHt1c2VybmFtZTpyLHBhc3N3b3JkOml9KSkuaWRlbnRpdHk/KG8mJm8uc2V0U3RhdHVzKCJzdWNjZXNzIiwiTG9nZ2VkIGluISIpLG4mJmF3YWl0IG4uc3dpdGNoVG9TbG90dGVkQ29udGVudCgpKTpvJiYoby5zZXRTdGF0dXMoImVycm9yIiwiTG9naW4gZmFpbGVkISIpLGF3YWl0IGEuY29udmVuaWVuY2Uuc21hcnRkZWxheS5kZWxheUZvcigyZTMpLG8ucmVzZXQoKSl9c3luY0FwcGRhc2hWaWV3KHIpe2xldCBpPXRoaXMuc2hhZG93Um9vdD8ucXVlcnlTZWxlY3RvcigiZGVlcy1zaW1wbGUtYXBwZGFzaCIpO2lmKCFpfHx0aGlzLnJlc29sdmVkVmlld1RhYnMubGVuZ3RoPT09MClyZXR1cm47bGV0IGE9dGhpcy5yZXNvbHZlZFZpZXdUYWJzLmZpbmQobj0+bi5uYW1lLnRvTG93ZXJDYXNlKCk9PT1yKTthJiZpLmxvYWRWaWV3KGEpfX07T2M9b2EoanVyKSxSNWU9bmV3IFdlYWtNYXAsQjVlPW5ldyBXZWFrTWFwLEZ0KE9jLDQsImxvZ2luU3RhdGUiLHF1cixRNCxSNWUpLEZ0KE9jLDQsInVpU3RhdGUiLEh1cixRNCxCNWUpLFE0PUZ0KE9jLDAsIkdpdG9wc0Rhc2hib2FyZCIsVnVyLFE0KSx6aShRNCwic3R5bGVzIixbV2kuZGVmYXVsdFN0eWxlcyxaMWAKICAgICAgOmhvc3QgewogICAgICAgIGRpc3BsYXk6IGJsb2NrOwogICAgICAgIHdpZHRoOiAxMDAlOwogICAgICAgIGhlaWdodDogMTAwJTsKICAgICAgfQogICAgICAubWFpbmNvbnRhaW5lciB7CiAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgICAgaGVpZ2h0OiAxMDB2aDsKICAgICAgfQogICAgYF0pLGV0KE9jLDEsUTQpO2F3YWl0IHU1ZSgpO2F3YWl0IGg1ZSgpO2F3YWl0IGI1ZSgpO2F3YWl0IHc1ZSgpO2F3YWl0IFQ1ZSgpO2F3YWl0IEU1ZSgpO2F3YWl0IE81ZSgpO0gyKCk7dm8oKTtZNy5yZW5kZXIodXJgCiAgPGdpdG9wcy1kYXNoYm9hcmQ+PC9naXRvcHMtZGFzaGJvYXJkPgpgLGRvY3VtZW50LmJvZHkpOwovKiEgQnVuZGxlZCBsaWNlbnNlIGluZm9ybWF0aW9uOgoKQGxpdC9yZWFjdGl2ZS1lbGVtZW50L2Nzcy10YWcuanM6CkBsaXQvcmVhY3RpdmUtZWxlbWVudC9jc3MtdGFnLmpzOgogICgqKgogICAqIEBsaWNlbnNlCiAgICogQ29weXJpZ2h0IDIwMTkgR29vZ2xlIExMQwogICAqIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBCU0QtMy1DbGF1c2UKICAgKikKCkBsaXQvcmVhY3RpdmUtZWxlbWVudC9yZWFjdGl2ZS1lbGVtZW50LmpzOgpsaXQtaHRtbC9saXQtaHRtbC5qczoKbGl0LWVsZW1lbnQvbGl0LWVsZW1lbnQuanM6CkBsaXQvcmVhY3RpdmUtZWxlbWVudC9kZWNvcmF0b3JzL3Byb3BlcnR5LmpzOgpsaXQtaHRtbC9kaXJlY3RpdmUuanM6CmxpdC1odG1sL2RpcmVjdGl2ZXMvdW5zYWZlLWh0bWwuanM6CkBsaXQvcmVhY3RpdmUtZWxlbWVudC9kZWNvcmF0b3JzL2N1c3RvbS1lbGVtZW50LmpzOgpAbGl0L3JlYWN0aXZlLWVsZW1lbnQvZGVjb3JhdG9ycy9zdGF0ZS5qczoKQGxpdC9yZWFjdGl2ZS1lbGVtZW50L2RlY29yYXRvcnMvZXZlbnQtb3B0aW9ucy5qczoKQGxpdC9yZWFjdGl2ZS1lbGVtZW50L2RlY29yYXRvcnMvYmFzZS5qczoKQGxpdC9yZWFjdGl2ZS1lbGVtZW50L2RlY29yYXRvcnMvcXVlcnkuanM6CkBsaXQvcmVhY3RpdmUtZWxlbWVudC9kZWNvcmF0b3JzL3F1ZXJ5LWFsbC5qczoKQGxpdC9yZWFjdGl2ZS1lbGVtZW50L2RlY29yYXRvcnMvcXVlcnktYXN5bmMuanM6CkBsaXQvcmVhY3RpdmUtZWxlbWVudC9kZWNvcmF0b3JzL3F1ZXJ5LWFzc2lnbmVkLW5vZGVzLmpzOgpsaXQtaHRtbC9hc3luYy1kaXJlY3RpdmUuanM6CmxpdC1odG1sL2RpcmVjdGl2ZXMvdW50aWwuanM6CmxpdC1odG1sL2RpcmVjdGl2ZXMvYXN5bmMtcmVwbGFjZS5qczoKbGl0LWh0bWwvZGlyZWN0aXZlcy9hc3luYy1hcHBlbmQuanM6CmxpdC1odG1sL2RpcmVjdGl2ZXMvcmVwZWF0LmpzOgpAbGl0L3JlYWN0aXZlLWVsZW1lbnQvcmVhY3RpdmUtZWxlbWVudC5qczoKbGl0LWh0bWwvbGl0LWh0bWwuanM6CmxpdC1lbGVtZW50L2xpdC1lbGVtZW50LmpzOgpAbGl0L3JlYWN0aXZlLWVsZW1lbnQvZGVjb3JhdG9ycy9wcm9wZXJ0eS5qczoKbGl0LWh0bWwvZGlyZWN0aXZlLmpzOgpsaXQtaHRtbC9kaXJlY3RpdmVzL3Vuc2FmZS1odG1sLmpzOgpAbGl0L3JlYWN0aXZlLWVsZW1lbnQvZGVjb3JhdG9ycy9jdXN0b20tZWxlbWVudC5qczoKQGxpdC9yZWFjdGl2ZS1lbGVtZW50L2RlY29yYXRvcnMvc3RhdGUuanM6CkBsaXQvcmVhY3RpdmUtZWxlbWVudC9kZWNvcmF0b3JzL2V2ZW50LW9wdGlvbnMuanM6CkBsaXQvcmVhY3RpdmUtZWxlbWVudC9kZWNvcmF0b3JzL2Jhc2UuanM6CkBsaXQvcmVhY3RpdmUtZWxlbWVudC9kZWNvcmF0b3JzL3F1ZXJ5LmpzOgpAbGl0L3JlYWN0aXZlLWVsZW1lbnQvZGVjb3JhdG9ycy9xdWVyeS1hbGwuanM6CkBsaXQvcmVhY3RpdmUtZWxlbWVudC9kZWNvcmF0b3JzL3F1ZXJ5LWFzeW5jLmpzOgpAbGl0L3JlYWN0aXZlLWVsZW1lbnQvZGVjb3JhdG9ycy9xdWVyeS1hc3NpZ25lZC1ub2Rlcy5qczoKbGl0LWh0bWwvYXN5bmMtZGlyZWN0aXZlLmpzOgpsaXQtaHRtbC9kaXJlY3RpdmVzL3VudGlsLmpzOgpsaXQtaHRtbC9kaXJlY3RpdmVzL2FzeW5jLXJlcGxhY2UuanM6CmxpdC1odG1sL2RpcmVjdGl2ZXMvYXN5bmMtYXBwZW5kLmpzOgpsaXQtaHRtbC9kaXJlY3RpdmVzL3JlcGVhdC5qczoKICAoKioKICAgKiBAbGljZW5zZQogICAqIENvcHlyaWdodCAyMDE3IEdvb2dsZSBMTEMKICAgKiBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQlNELTMtQ2xhdXNlCiAgICopCgpsaXQtaHRtbC9pcy1zZXJ2ZXIuanM6CmxpdC1odG1sL2lzLXNlcnZlci5qczoKICAoKioKICAgKiBAbGljZW5zZQogICAqIENvcHlyaWdodCAyMDIyIEdvb2dsZSBMTEMKICAgKiBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQlNELTMtQ2xhdXNlCiAgICopCgpzd2VldC1zY3JvbGwvc3dlZXQtc2Nyb2xsLmpzOgpzd2VldC1zY3JvbGwvc3dlZXQtc2Nyb2xsLmpzOgogICgqISBAcHJlc2VydmUgc3dlZXQtc2Nyb2xsIHY0LjAuMCAtIHRzdXlvc2hpd2FkYSB8IE1JVCBMaWNlbnNlICopCiAgKCohICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAgICAgIENvcHlyaWdodCAoYykgTWljcm9zb2Z0IENvcnBvcmF0aW9uLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICAgICBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsgeW91IG1heSBub3QgdXNlCiAgICAgIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlCiAgICAgIExpY2Vuc2UgYXQgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCiAgCiAgICAgIFRISVMgQ09ERSBJUyBQUk9WSURFRCBPTiBBTiAqQVMgSVMqIEJBU0lTLCBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkKICAgICAgS0lORCwgRUlUSEVSIEVYUFJFU1MgT1IgSU1QTElFRCwgSU5DTFVESU5HIFdJVEhPVVQgTElNSVRBVElPTiBBTlkgSU1QTElFRAogICAgICBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgVElUTEUsIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLAogICAgICBNRVJDSEFOVEFCTElUWSBPUiBOT04tSU5GUklOR0VNRU5ULgogIAogICAgICBTZWUgdGhlIEFwYWNoZSBWZXJzaW9uIDIuMCBMaWNlbnNlIGZvciBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMKICAgICAgYW5kIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgogICAgICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiAqKQoKbGl0LWh0bWwvc3RhdGljLmpzOgpsaXQtaHRtbC9kaXJlY3RpdmUtaGVscGVycy5qczoKbGl0LWh0bWwvc3RhdGljLmpzOgpsaXQtaHRtbC9kaXJlY3RpdmUtaGVscGVycy5qczoKICAoKioKICAgKiBAbGljZW5zZQogICAqIENvcHlyaWdodCAyMDIwIEdvb2dsZSBMTEMKICAgKiBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQlNELTMtQ2xhdXNlCiAgICopCgpAbGl0L3JlYWN0aXZlLWVsZW1lbnQvZGVjb3JhdG9ycy9xdWVyeS1hc3NpZ25lZC1lbGVtZW50cy5qczoKbGl0LWh0bWwvZGlyZWN0aXZlcy9wcml2YXRlLWFzeW5jLWhlbHBlcnMuanM6CmxpdC1odG1sL2RpcmVjdGl2ZXMva2V5ZWQuanM6CkBsaXQvcmVhY3RpdmUtZWxlbWVudC9kZWNvcmF0b3JzL3F1ZXJ5LWFzc2lnbmVkLWVsZW1lbnRzLmpzOgpsaXQtaHRtbC9kaXJlY3RpdmVzL3ByaXZhdGUtYXN5bmMtaGVscGVycy5qczoKbGl0LWh0bWwvZGlyZWN0aXZlcy9rZXllZC5qczoKICAoKioKICAgKiBAbGljZW5zZQogICAqIENvcHlyaWdodCAyMDIxIEdvb2dsZSBMTEMKICAgKiBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQlNELTMtQ2xhdXNlCiAgICopCgpAZm9ydGF3ZXNvbWUvZm9udGF3ZXNvbWUtc3ZnLWNvcmUvaW5kZXgubWpzOgpAZm9ydGF3ZXNvbWUvZnJlZS1icmFuZHMtc3ZnLWljb25zL2luZGV4Lm1qczoKQGZvcnRhd2Vzb21lL2ZyZWUtcmVndWxhci1zdmctaWNvbnMvaW5kZXgubWpzOgpAZm9ydGF3ZXNvbWUvZnJlZS1zb2xpZC1zdmctaWNvbnMvaW5kZXgubWpzOgogICgqIQogICAqIEZvbnQgQXdlc29tZSBGcmVlIDcuMi4wIGJ5IEBmb250YXdlc29tZSAtIGh0dHBzOi8vZm9udGF3ZXNvbWUuY29tCiAgICogTGljZW5zZSAtIGh0dHBzOi8vZm9udGF3ZXNvbWUuY29tL2xpY2Vuc2UvZnJlZSAoSWNvbnM6IENDIEJZIDQuMCwgRm9udHM6IFNJTCBPRkwgMS4xLCBDb2RlOiBNSVQgTGljZW5zZSkKICAgKiBDb3B5cmlnaHQgMjAyNiBGb250aWNvbnMsIEluYy4KICAgKikKCmx1Y2lkZS9kaXN0L2Nqcy9sdWNpZGUuanM6CiAgKCoqCiAgICogQGxpY2Vuc2UgbHVjaWRlIHYwLjU2NC4wIC0gSVNDCiAgICoKICAgKiBUaGlzIHNvdXJjZSBjb2RlIGlzIGxpY2Vuc2VkIHVuZGVyIHRoZSBJU0MgbGljZW5zZS4KICAgKiBTZWUgdGhlIExJQ0VOU0UgZmlsZSBpbiB0aGUgcm9vdCBkaXJlY3Rvcnkgb2YgdGhpcyBzb3VyY2UgdHJlZS4KICAgKikKCmliYW50b29scy9qc25leHQvaWJhbnRvb2xzLmpzOgogICgqIQogICAqIEBsaWNlbnNlCiAgICogQ29weXJpZ2h0IFNhxaFhIEpvdmFuacSHCiAgICogTGljZW5zZWQgdW5kZXIgdGhlIE1vemlsbGEgUHVibGljIExpY2Vuc2UsIFZlcnNpb24gMi4wIG9yIHRoZSBNSVQgbGljZW5zZSwKICAgKiBhdCB5b3VyIG9wdGlvbi4gVGhpcyBmaWxlIG1heSBub3QgYmUgY29waWVkLCBtb2RpZmllZCwgb3IgZGlzdHJpYnV0ZWQKICAgKiBleGNlcHQgYWNjb3JkaW5nIHRvIHRob3NlIHRlcm1zLgogICAqIFNQRFgtRmlsZUNvcHlyaWdodFRleHQ6IFNhxaFhIEpvdmFuacSHCiAgICogU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IE1JVCBvciBNUEwvMi4wCiAgICopCiAgKCoqCiAgICogVmFsaWRhdGlvbiwgZXh0cmFjdGlvbiBhbmQgY3JlYXRpb24gb2YgSUJBTiwgQkJBTiwgQklDL1NXSUZUIG51bWJlcnMgcGx1cyBzb21lIG90aGVyIGhlbHBmdWwgc3R1ZmYKICAgKiBAcGFja2FnZSBEb2N1bWVudGF0aW9uCiAgICogQGF1dGhvciBTYcWhYSBKb3ZhbmnEhwogICAqIEBtb2R1bGUgaWJhbnRvb2xzCiAgICogQHZlcnNpb24gNC41LjEKICAgKiBAbGljZW5zZSBNSVQgb3IgTVBMLTIuMAogICAqIEBwcmVmZXJyZWQKICAgKikKKi8KLy8jIHNvdXJjZU1hcHBpbmdVUkw9YnVuZGxlLTE3NzE5NTg0MjU1MzAuanMubWFwCg==" + "contentBase64": "dmFyIGJVPU9iamVjdC5jcmVhdGUsdVU9T2JqZWN0LmZyZWV6ZSxTbz1PYmplY3QuZGVmaW5lUHJvcGVydHk7dmFyIHZVPU9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3I7dmFyIGZNdD1PYmplY3QuZ2V0T3duUHJvcGVydHlOYW1lczt2YXIgbU10PU9iamVjdC5nZXRQcm90b3R5cGVPZixnTXQ9T2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eTt2YXIgeVU9KHQsZSk9PihlPVN5bWJvbFt0XSk/ZTpTeW1ib2wuZm9yKCJTeW1ib2wuIit0KSx5ND10PT57dGhyb3cgVHlwZUVycm9yKHQpfTt2YXIgeFU9KHQsZSxhKT0+ZSBpbiB0P1NvKHQsZSx7ZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITAsdmFsdWU6YX0pOnRbZV09YTt2YXIgZlU9KHQsZSk9PlNvKHQsIm5hbWUiLHt2YWx1ZTplLGNvbmZpZ3VyYWJsZTohMH0pLGRkPSh0PT50eXBlb2YgcmVxdWlyZTwidSI/cmVxdWlyZTp0eXBlb2YgUHJveHk8InUiP25ldyBQcm94eSh0LHtnZXQ6KGUsYSk9Pih0eXBlb2YgcmVxdWlyZTwidSI/cmVxdWlyZTplKVthXX0pOnQpKGZ1bmN0aW9uKHQpe2lmKHR5cGVvZiByZXF1aXJlPCJ1IilyZXR1cm4gcmVxdWlyZS5hcHBseSh0aGlzLGFyZ3VtZW50cyk7dGhyb3cgRXJyb3IoJ0R5bmFtaWMgcmVxdWlyZSBvZiAiJyt0KyciIGlzIG5vdCBzdXBwb3J0ZWQnKX0pO3ZhciBiPSh0LGUpPT4oKT0+KHQmJihlPXQodD0wKSksZSk7dmFyIGh0PSh0LGUpPT4oKT0+KGV8fHQoKGU9e2V4cG9ydHM6e319KS5leHBvcnRzLGUpLGUuZXhwb3J0cyksR2U9KHQsZSk9Pntmb3IodmFyIGEgaW4gZSlTbyh0LGEse2dldDplW2FdLGVudW1lcmFibGU6ITB9KX0sYk10PSh0LGUsYSxpKT0+e2lmKGUmJnR5cGVvZiBlPT0ib2JqZWN0Inx8dHlwZW9mIGU9PSJmdW5jdGlvbiIpZm9yKGxldCByIG9mIGZNdChlKSkhZ010LmNhbGwodCxyKSYmciE9PWEmJlNvKHQscix7Z2V0OigpPT5lW3JdLGVudW1lcmFibGU6IShpPXZVKGUscikpfHxpLmVudW1lcmFibGV9KTtyZXR1cm4gdH07dmFyIFUxPSh0LGUsYSk9PihhPXQhPW51bGw/YlUobU10KHQpKTp7fSxiTXQoZXx8IXR8fCF0Ll9fZXNNb2R1bGU/U28oYSwiZGVmYXVsdCIse3ZhbHVlOnQsZW51bWVyYWJsZTohMH0pOmEsdCkpO3ZhciBJMj10PT5bLCwsYlUodD8uW3lVKCJtZXRhZGF0YSIpXT8/bnVsbCldLHdVPVsiY2xhc3MiLCJtZXRob2QiLCJnZXR0ZXIiLCJzZXR0ZXIiLCJhY2Nlc3NvciIsImZpZWxkIiwidmFsdWUiLCJnZXQiLCJzZXQiXSxlYz10PT50IT09dm9pZCAwJiZ0eXBlb2YgdCE9ImZ1bmN0aW9uIj95NCgiRnVuY3Rpb24gZXhwZWN0ZWQiKTp0LHZNdD0odCxlLGEsaSxyKT0+KHtraW5kOndVW3RdLG5hbWU6ZSxtZXRhZGF0YTppLGFkZEluaXRpYWxpemVyOnM9PmEuXz95NCgiQWxyZWFkeSBpbml0aWFsaXplZCIpOnIucHVzaChlYyhzfHxudWxsKSl9KSx5TXQ9KHQsZSk9PnhVKGUseVUoIm1ldGFkYXRhIiksdFszXSksamU9KHQsZSxhLGkpPT57Zm9yKHZhciByPTAscz10W2U+PjFdLG49cyYmcy5sZW5ndGg7cjxuO3IrKyllJjE/c1tyXS5jYWxsKGEpOmk9c1tyXS5jYWxsKGEsaSk7cmV0dXJuIGl9LHZ0PSh0LGUsYSxpLHIscyk9Pnt2YXIgbixvLGQsYyxoLGw9ZSY3LGY9ISEoZSY4KSxnPSEhKGUmMTYpLHk9bD4zP3QubGVuZ3RoKzE6bD9mPzE6MjowLHY9d1VbbCs1XSxtPWw+MyYmKHRbeS0xXT1bXSkseD10W3ldfHwodFt5XT1bXSksTT1sJiYoIWcmJiFmJiYocj1yLnByb3RvdHlwZSksbDw1JiYobD4zfHwhZykmJnZVKGw8ND9yOntnZXRbYV0oKXtyZXR1cm4gbVUodGhpcyxzKX0sc2V0W2FdKEYpe3JldHVybiBnVSh0aGlzLHMsRil9fSxhKSk7bD9nJiZsPDQmJmZVKHMsKGw+Mj8ic2V0ICI6bD4xPyJnZXQgIjoiIikrYSk6ZlUocixhKTtmb3IodmFyIFM9aS5sZW5ndGgtMTtTPj0wO1MtLSljPXZNdChsLGEsZD17fSx0WzNdLHgpLGwmJihjLnN0YXRpYz1mLGMucHJpdmF0ZT1nLGg9Yy5hY2Nlc3M9e2hhczpnP0Y9PnhNdChyLEYpOkY9PmEgaW4gRn0sbF4zJiYoaC5nZXQ9Zz9GPT4obF4xP21VOndNdCkoRixyLGxeND9zOk0uZ2V0KTpGPT5GW2FdKSxsPjImJihoLnNldD1nPyhGLF8pPT5nVShGLHIsXyxsXjQ/czpNLnNldCk6KEYsXyk9PkZbYV09XykpLG89KDAsaVtTXSkobD9sPDQ/Zz9zOk1bdl06bD40P3ZvaWQgMDp7Z2V0Ok0uZ2V0LHNldDpNLnNldH06cixjKSxkLl89MSxsXjR8fG89PT12b2lkIDA/ZWMobykmJihsPjQ/bS51bnNoaWZ0KG8pOmw/Zz9zPW86TVt2XT1vOnI9byk6dHlwZW9mIG8hPSJvYmplY3QifHxvPT09bnVsbD95NCgiT2JqZWN0IGV4cGVjdGVkIik6KGVjKG49by5nZXQpJiYoTS5nZXQ9biksZWMobj1vLnNldCkmJihNLnNldD1uKSxlYyhuPW8uaW5pdCkmJm0udW5zaGlmdChuKSk7cmV0dXJuIGx8fHlNdCh0LHIpLE0mJlNvKHIsYSxNKSxnP2xeND9zOk06cn0sYTE9KHQsZSxhKT0+eFUodCx0eXBlb2YgZSE9InN5bWJvbCI/ZSsiIjplLGEpLEN3PSh0LGUsYSk9PmUuaGFzKHQpfHx5NCgiQ2Fubm90ICIrYSkseE10PSh0LGUpPT5PYmplY3QoZSkhPT1lP3k0KCdDYW5ub3QgdXNlIHRoZSAiaW4iIG9wZXJhdG9yIG9uIHRoaXMgdmFsdWUnKTp0LmhhcyhlKSxtVT0odCxlLGEpPT4oQ3codCxlLCJyZWFkIGZyb20gcHJpdmF0ZSBmaWVsZCIpLGE/YS5jYWxsKHQpOmUuZ2V0KHQpKSxSdD0odCxlLGEpPT5lLmhhcyh0KT95NCgiQ2Fubm90IGFkZCB0aGUgc2FtZSBwcml2YXRlIG1lbWJlciBtb3JlIHRoYW4gb25jZSIpOmUgaW5zdGFuY2VvZiBXZWFrU2V0P2UuYWRkKHQpOmUuc2V0KHQsYSksZ1U9KHQsZSxhLGkpPT4oQ3codCxlLCJ3cml0ZSB0byBwcml2YXRlIGZpZWxkIiksaT9pLmNhbGwodCxhKTplLnNldCh0LGEpLGEpLHdNdD0odCxlLGEpPT4oQ3codCxlLCJhY2Nlc3MgcHJpdmF0ZSBtZXRob2QiKSxhKTt2YXIgeDQ9KHQsZSk9PnVVKFNvKHQsInJhdyIse3ZhbHVlOnVVKGV8fHQuc2xpY2UoKSl9KSk7dmFyIGhkLHRjLF93LE1VLHc0LHF0LFEscGQsYWMsVHc9YigoKT0+e2hkPWdsb2JhbFRoaXMsdGM9aGQuU2hhZG93Um9vdCYmKGhkLlNoYWR5Q1NTPT09dm9pZCAwfHxoZC5TaGFkeUNTUy5uYXRpdmVTaGFkb3cpJiYiYWRvcHRlZFN0eWxlU2hlZXRzImluIERvY3VtZW50LnByb3RvdHlwZSYmInJlcGxhY2UiaW4gQ1NTU3R5bGVTaGVldC5wcm90b3R5cGUsX3c9U3ltYm9sKCksTVU9bmV3IFdlYWtNYXAsdzQ9Y2xhc3N7Y29uc3RydWN0b3IoZSxhLGkpe2lmKHRoaXMuXyRjc3NSZXN1bHQkPSEwLGkhPT1fdyl0aHJvdyBFcnJvcigiQ1NTUmVzdWx0IGlzIG5vdCBjb25zdHJ1Y3RhYmxlLiBVc2UgYHVuc2FmZUNTU2Agb3IgYGNzc2AgaW5zdGVhZC4iKTt0aGlzLmNzc1RleHQ9ZSx0aGlzLnQ9YX1nZXQgc3R5bGVTaGVldCgpe2xldCBlPXRoaXMubyxhPXRoaXMudDtpZih0YyYmZT09PXZvaWQgMCl7bGV0IGk9YSE9PXZvaWQgMCYmYS5sZW5ndGg9PT0xO2kmJihlPU1VLmdldChhKSksZT09PXZvaWQgMCYmKCh0aGlzLm89ZT1uZXcgQ1NTU3R5bGVTaGVldCkucmVwbGFjZVN5bmModGhpcy5jc3NUZXh0KSxpJiZNVS5zZXQoYSxlKSl9cmV0dXJuIGV9dG9TdHJpbmcoKXtyZXR1cm4gdGhpcy5jc3NUZXh0fX0scXQ9dD0+bmV3IHc0KHR5cGVvZiB0PT0ic3RyaW5nIj90OnQrIiIsdm9pZCAwLF93KSxRPSh0LC4uLmUpPT57bGV0IGE9dC5sZW5ndGg9PT0xP3RbMF06ZS5yZWR1Y2UoKGkscixzKT0+aSsobj0+e2lmKG4uXyRjc3NSZXN1bHQkPT09ITApcmV0dXJuIG4uY3NzVGV4dDtpZih0eXBlb2Ygbj09Im51bWJlciIpcmV0dXJuIG47dGhyb3cgRXJyb3IoIlZhbHVlIHBhc3NlZCB0byAnY3NzJyBmdW5jdGlvbiBtdXN0IGJlIGEgJ2NzcycgZnVuY3Rpb24gcmVzdWx0OiAiK24rIi4gVXNlICd1bnNhZmVDU1MnIHRvIHBhc3Mgbm9uLWxpdGVyYWwgdmFsdWVzLCBidXQgdGFrZSBjYXJlIHRvIGVuc3VyZSBwYWdlIHNlY3VyaXR5LiIpfSkocikrdFtzKzFdLHRbMF0pO3JldHVybiBuZXcgdzQoYSx0LF93KX0scGQ9KHQsZSk9PntpZih0Yyl0LmFkb3B0ZWRTdHlsZVNoZWV0cz1lLm1hcChhPT5hIGluc3RhbmNlb2YgQ1NTU3R5bGVTaGVldD9hOmEuc3R5bGVTaGVldCk7ZWxzZSBmb3IobGV0IGEgb2YgZSl7bGV0IGk9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgic3R5bGUiKSxyPWhkLmxpdE5vbmNlO3IhPT12b2lkIDAmJmkuc2V0QXR0cmlidXRlKCJub25jZSIsciksaS50ZXh0Q29udGVudD1hLmNzc1RleHQsdC5hcHBlbmRDaGlsZChpKX19LGFjPXRjP3Q9PnQ6dD0+dCBpbnN0YW5jZW9mIENTU1N0eWxlU2hlZXQ/KGU9PntsZXQgYT0iIjtmb3IobGV0IGkgb2YgZS5jc3NSdWxlcylhKz1pLmNzc1RleHQ7cmV0dXJuIHF0KGEpfSkodCk6dH0pO3ZhciBNTXQsek10LGtNdCxTTXQsQ010LF9NdCx1ZCx6VSxUTXQsTE10LGljLE00LHJjLGtVLGNyLHNjPWIoKCk9PntUdygpO1R3KCk7KHtpczpNTXQsZGVmaW5lUHJvcGVydHk6ek10LGdldE93blByb3BlcnR5RGVzY3JpcHRvcjprTXQsZ2V0T3duUHJvcGVydHlOYW1lczpTTXQsZ2V0T3duUHJvcGVydHlTeW1ib2xzOkNNdCxnZXRQcm90b3R5cGVPZjpfTXR9PU9iamVjdCksdWQ9Z2xvYmFsVGhpcyx6VT11ZC50cnVzdGVkVHlwZXMsVE10PXpVP3pVLmVtcHR5U2NyaXB0OiIiLExNdD11ZC5yZWFjdGl2ZUVsZW1lbnRQb2x5ZmlsbFN1cHBvcnQsaWM9KHQsZSk9PnQsTTQ9e3RvQXR0cmlidXRlKHQsZSl7c3dpdGNoKGUpe2Nhc2UgQm9vbGVhbjp0PXQ/VE10Om51bGw7YnJlYWs7Y2FzZSBPYmplY3Q6Y2FzZSBBcnJheTp0PXQ9PW51bGw/dDpKU09OLnN0cmluZ2lmeSh0KX1yZXR1cm4gdH0sZnJvbUF0dHJpYnV0ZSh0LGUpe2xldCBhPXQ7c3dpdGNoKGUpe2Nhc2UgQm9vbGVhbjphPXQhPT1udWxsO2JyZWFrO2Nhc2UgTnVtYmVyOmE9dD09PW51bGw/bnVsbDpOdW1iZXIodCk7YnJlYWs7Y2FzZSBPYmplY3Q6Y2FzZSBBcnJheTp0cnl7YT1KU09OLnBhcnNlKHQpfWNhdGNoe2E9bnVsbH19cmV0dXJuIGF9fSxyYz0odCxlKT0+IU1NdCh0LGUpLGtVPXthdHRyaWJ1dGU6ITAsdHlwZTpTdHJpbmcsY29udmVydGVyOk00LHJlZmxlY3Q6ITEsdXNlRGVmYXVsdDohMSxoYXNDaGFuZ2VkOnJjfTtTeW1ib2wubWV0YWRhdGE/Pz1TeW1ib2woIm1ldGFkYXRhIiksdWQubGl0UHJvcGVydHlNZXRhZGF0YT8/PW5ldyBXZWFrTWFwO2NyPWNsYXNzIGV4dGVuZHMgSFRNTEVsZW1lbnR7c3RhdGljIGFkZEluaXRpYWxpemVyKGUpe3RoaXMuXyRFaSgpLCh0aGlzLmw/Pz1bXSkucHVzaChlKX1zdGF0aWMgZ2V0IG9ic2VydmVkQXR0cmlidXRlcygpe3JldHVybiB0aGlzLmZpbmFsaXplKCksdGhpcy5fJEVoJiZbLi4udGhpcy5fJEVoLmtleXMoKV19c3RhdGljIGNyZWF0ZVByb3BlcnR5KGUsYT1rVSl7aWYoYS5zdGF0ZSYmKGEuYXR0cmlidXRlPSExKSx0aGlzLl8kRWkoKSx0aGlzLnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eShlKSYmKChhPU9iamVjdC5jcmVhdGUoYSkpLndyYXBwZWQ9ITApLHRoaXMuZWxlbWVudFByb3BlcnRpZXMuc2V0KGUsYSksIWEubm9BY2Nlc3Nvcil7bGV0IGk9U3ltYm9sKCkscj10aGlzLmdldFByb3BlcnR5RGVzY3JpcHRvcihlLGksYSk7ciE9PXZvaWQgMCYmek10KHRoaXMucHJvdG90eXBlLGUscil9fXN0YXRpYyBnZXRQcm9wZXJ0eURlc2NyaXB0b3IoZSxhLGkpe2xldHtnZXQ6cixzZXQ6c309a010KHRoaXMucHJvdG90eXBlLGUpPz97Z2V0KCl7cmV0dXJuIHRoaXNbYV19LHNldChuKXt0aGlzW2FdPW59fTtyZXR1cm57Z2V0OnIsc2V0KG4pe2xldCBvPXI/LmNhbGwodGhpcyk7cz8uY2FsbCh0aGlzLG4pLHRoaXMucmVxdWVzdFVwZGF0ZShlLG8saSl9LGNvbmZpZ3VyYWJsZTohMCxlbnVtZXJhYmxlOiEwfX1zdGF0aWMgZ2V0UHJvcGVydHlPcHRpb25zKGUpe3JldHVybiB0aGlzLmVsZW1lbnRQcm9wZXJ0aWVzLmdldChlKT8/a1V9c3RhdGljIF8kRWkoKXtpZih0aGlzLmhhc093blByb3BlcnR5KGljKCJlbGVtZW50UHJvcGVydGllcyIpKSlyZXR1cm47bGV0IGU9X010KHRoaXMpO2UuZmluYWxpemUoKSxlLmwhPT12b2lkIDAmJih0aGlzLmw9Wy4uLmUubF0pLHRoaXMuZWxlbWVudFByb3BlcnRpZXM9bmV3IE1hcChlLmVsZW1lbnRQcm9wZXJ0aWVzKX1zdGF0aWMgZmluYWxpemUoKXtpZih0aGlzLmhhc093blByb3BlcnR5KGljKCJmaW5hbGl6ZWQiKSkpcmV0dXJuO2lmKHRoaXMuZmluYWxpemVkPSEwLHRoaXMuXyRFaSgpLHRoaXMuaGFzT3duUHJvcGVydHkoaWMoInByb3BlcnRpZXMiKSkpe2xldCBhPXRoaXMucHJvcGVydGllcyxpPVsuLi5TTXQoYSksLi4uQ010KGEpXTtmb3IobGV0IHIgb2YgaSl0aGlzLmNyZWF0ZVByb3BlcnR5KHIsYVtyXSl9bGV0IGU9dGhpc1tTeW1ib2wubWV0YWRhdGFdO2lmKGUhPT1udWxsKXtsZXQgYT1saXRQcm9wZXJ0eU1ldGFkYXRhLmdldChlKTtpZihhIT09dm9pZCAwKWZvcihsZXRbaSxyXW9mIGEpdGhpcy5lbGVtZW50UHJvcGVydGllcy5zZXQoaSxyKX10aGlzLl8kRWg9bmV3IE1hcDtmb3IobGV0W2EsaV1vZiB0aGlzLmVsZW1lbnRQcm9wZXJ0aWVzKXtsZXQgcj10aGlzLl8kRXUoYSxpKTtyIT09dm9pZCAwJiZ0aGlzLl8kRWguc2V0KHIsYSl9dGhpcy5lbGVtZW50U3R5bGVzPXRoaXMuZmluYWxpemVTdHlsZXModGhpcy5zdHlsZXMpfXN0YXRpYyBmaW5hbGl6ZVN0eWxlcyhlKXtsZXQgYT1bXTtpZihBcnJheS5pc0FycmF5KGUpKXtsZXQgaT1uZXcgU2V0KGUuZmxhdCgxLzApLnJldmVyc2UoKSk7Zm9yKGxldCByIG9mIGkpYS51bnNoaWZ0KGFjKHIpKX1lbHNlIGUhPT12b2lkIDAmJmEucHVzaChhYyhlKSk7cmV0dXJuIGF9c3RhdGljIF8kRXUoZSxhKXtsZXQgaT1hLmF0dHJpYnV0ZTtyZXR1cm4gaT09PSExP3ZvaWQgMDp0eXBlb2YgaT09InN0cmluZyI/aTp0eXBlb2YgZT09InN0cmluZyI/ZS50b0xvd2VyQ2FzZSgpOnZvaWQgMH1jb25zdHJ1Y3Rvcigpe3N1cGVyKCksdGhpcy5fJEVwPXZvaWQgMCx0aGlzLmlzVXBkYXRlUGVuZGluZz0hMSx0aGlzLmhhc1VwZGF0ZWQ9ITEsdGhpcy5fJEVtPW51bGwsdGhpcy5fJEV2KCl9XyRFdigpe3RoaXMuXyRFUz1uZXcgUHJvbWlzZShlPT50aGlzLmVuYWJsZVVwZGF0aW5nPWUpLHRoaXMuXyRBTD1uZXcgTWFwLHRoaXMuXyRFXygpLHRoaXMucmVxdWVzdFVwZGF0ZSgpLHRoaXMuY29uc3RydWN0b3IubD8uZm9yRWFjaChlPT5lKHRoaXMpKX1hZGRDb250cm9sbGVyKGUpeyh0aGlzLl8kRU8/Pz1uZXcgU2V0KS5hZGQoZSksdGhpcy5yZW5kZXJSb290IT09dm9pZCAwJiZ0aGlzLmlzQ29ubmVjdGVkJiZlLmhvc3RDb25uZWN0ZWQ/LigpfXJlbW92ZUNvbnRyb2xsZXIoZSl7dGhpcy5fJEVPPy5kZWxldGUoZSl9XyRFXygpe2xldCBlPW5ldyBNYXAsYT10aGlzLmNvbnN0cnVjdG9yLmVsZW1lbnRQcm9wZXJ0aWVzO2ZvcihsZXQgaSBvZiBhLmtleXMoKSl0aGlzLmhhc093blByb3BlcnR5KGkpJiYoZS5zZXQoaSx0aGlzW2ldKSxkZWxldGUgdGhpc1tpXSk7ZS5zaXplPjAmJih0aGlzLl8kRXA9ZSl9Y3JlYXRlUmVuZGVyUm9vdCgpe2xldCBlPXRoaXMuc2hhZG93Um9vdD8/dGhpcy5hdHRhY2hTaGFkb3codGhpcy5jb25zdHJ1Y3Rvci5zaGFkb3dSb290T3B0aW9ucyk7cmV0dXJuIHBkKGUsdGhpcy5jb25zdHJ1Y3Rvci5lbGVtZW50U3R5bGVzKSxlfWNvbm5lY3RlZENhbGxiYWNrKCl7dGhpcy5yZW5kZXJSb290Pz89dGhpcy5jcmVhdGVSZW5kZXJSb290KCksdGhpcy5lbmFibGVVcGRhdGluZyghMCksdGhpcy5fJEVPPy5mb3JFYWNoKGU9PmUuaG9zdENvbm5lY3RlZD8uKCkpfWVuYWJsZVVwZGF0aW5nKGUpe31kaXNjb25uZWN0ZWRDYWxsYmFjaygpe3RoaXMuXyRFTz8uZm9yRWFjaChlPT5lLmhvc3REaXNjb25uZWN0ZWQ/LigpKX1hdHRyaWJ1dGVDaGFuZ2VkQ2FsbGJhY2soZSxhLGkpe3RoaXMuXyRBSyhlLGkpfV8kRVQoZSxhKXtsZXQgaT10aGlzLmNvbnN0cnVjdG9yLmVsZW1lbnRQcm9wZXJ0aWVzLmdldChlKSxyPXRoaXMuY29uc3RydWN0b3IuXyRFdShlLGkpO2lmKHIhPT12b2lkIDAmJmkucmVmbGVjdD09PSEwKXtsZXQgcz0oaS5jb252ZXJ0ZXI/LnRvQXR0cmlidXRlIT09dm9pZCAwP2kuY29udmVydGVyOk00KS50b0F0dHJpYnV0ZShhLGkudHlwZSk7dGhpcy5fJEVtPWUscz09bnVsbD90aGlzLnJlbW92ZUF0dHJpYnV0ZShyKTp0aGlzLnNldEF0dHJpYnV0ZShyLHMpLHRoaXMuXyRFbT1udWxsfX1fJEFLKGUsYSl7bGV0IGk9dGhpcy5jb25zdHJ1Y3RvcixyPWkuXyRFaC5nZXQoZSk7aWYociE9PXZvaWQgMCYmdGhpcy5fJEVtIT09cil7bGV0IHM9aS5nZXRQcm9wZXJ0eU9wdGlvbnMociksbj10eXBlb2Ygcy5jb252ZXJ0ZXI9PSJmdW5jdGlvbiI/e2Zyb21BdHRyaWJ1dGU6cy5jb252ZXJ0ZXJ9OnMuY29udmVydGVyPy5mcm9tQXR0cmlidXRlIT09dm9pZCAwP3MuY29udmVydGVyOk00O3RoaXMuXyRFbT1yO2xldCBvPW4uZnJvbUF0dHJpYnV0ZShhLHMudHlwZSk7dGhpc1tyXT1vPz90aGlzLl8kRWo/LmdldChyKT8/byx0aGlzLl8kRW09bnVsbH19cmVxdWVzdFVwZGF0ZShlLGEsaSxyPSExLHMpe2lmKGUhPT12b2lkIDApe2xldCBuPXRoaXMuY29uc3RydWN0b3I7aWYocj09PSExJiYocz10aGlzW2VdKSxpPz89bi5nZXRQcm9wZXJ0eU9wdGlvbnMoZSksISgoaS5oYXNDaGFuZ2VkPz9yYykocyxhKXx8aS51c2VEZWZhdWx0JiZpLnJlZmxlY3QmJnM9PT10aGlzLl8kRWo/LmdldChlKSYmIXRoaXMuaGFzQXR0cmlidXRlKG4uXyRFdShlLGkpKSkpcmV0dXJuO3RoaXMuQyhlLGEsaSl9dGhpcy5pc1VwZGF0ZVBlbmRpbmc9PT0hMSYmKHRoaXMuXyRFUz10aGlzLl8kRVAoKSl9QyhlLGEse3VzZURlZmF1bHQ6aSxyZWZsZWN0OnIsd3JhcHBlZDpzfSxuKXtpJiYhKHRoaXMuXyRFaj8/PW5ldyBNYXApLmhhcyhlKSYmKHRoaXMuXyRFai5zZXQoZSxuPz9hPz90aGlzW2VdKSxzIT09ITB8fG4hPT12b2lkIDApfHwodGhpcy5fJEFMLmhhcyhlKXx8KHRoaXMuaGFzVXBkYXRlZHx8aXx8KGE9dm9pZCAwKSx0aGlzLl8kQUwuc2V0KGUsYSkpLHI9PT0hMCYmdGhpcy5fJEVtIT09ZSYmKHRoaXMuXyRFcT8/PW5ldyBTZXQpLmFkZChlKSl9YXN5bmMgXyRFUCgpe3RoaXMuaXNVcGRhdGVQZW5kaW5nPSEwO3RyeXthd2FpdCB0aGlzLl8kRVN9Y2F0Y2goYSl7UHJvbWlzZS5yZWplY3QoYSl9bGV0IGU9dGhpcy5zY2hlZHVsZVVwZGF0ZSgpO3JldHVybiBlIT1udWxsJiZhd2FpdCBlLCF0aGlzLmlzVXBkYXRlUGVuZGluZ31zY2hlZHVsZVVwZGF0ZSgpe3JldHVybiB0aGlzLnBlcmZvcm1VcGRhdGUoKX1wZXJmb3JtVXBkYXRlKCl7aWYoIXRoaXMuaXNVcGRhdGVQZW5kaW5nKXJldHVybjtpZighdGhpcy5oYXNVcGRhdGVkKXtpZih0aGlzLnJlbmRlclJvb3Q/Pz10aGlzLmNyZWF0ZVJlbmRlclJvb3QoKSx0aGlzLl8kRXApe2ZvcihsZXRbcixzXW9mIHRoaXMuXyRFcCl0aGlzW3JdPXM7dGhpcy5fJEVwPXZvaWQgMH1sZXQgaT10aGlzLmNvbnN0cnVjdG9yLmVsZW1lbnRQcm9wZXJ0aWVzO2lmKGkuc2l6ZT4wKWZvcihsZXRbcixzXW9mIGkpe2xldHt3cmFwcGVkOm59PXMsbz10aGlzW3JdO24hPT0hMHx8dGhpcy5fJEFMLmhhcyhyKXx8bz09PXZvaWQgMHx8dGhpcy5DKHIsdm9pZCAwLHMsbyl9fWxldCBlPSExLGE9dGhpcy5fJEFMO3RyeXtlPXRoaXMuc2hvdWxkVXBkYXRlKGEpLGU/KHRoaXMud2lsbFVwZGF0ZShhKSx0aGlzLl8kRU8/LmZvckVhY2goaT0+aS5ob3N0VXBkYXRlPy4oKSksdGhpcy51cGRhdGUoYSkpOnRoaXMuXyRFTSgpfWNhdGNoKGkpe3Rocm93IGU9ITEsdGhpcy5fJEVNKCksaX1lJiZ0aGlzLl8kQUUoYSl9d2lsbFVwZGF0ZShlKXt9XyRBRShlKXt0aGlzLl8kRU8/LmZvckVhY2goYT0+YS5ob3N0VXBkYXRlZD8uKCkpLHRoaXMuaGFzVXBkYXRlZHx8KHRoaXMuaGFzVXBkYXRlZD0hMCx0aGlzLmZpcnN0VXBkYXRlZChlKSksdGhpcy51cGRhdGVkKGUpfV8kRU0oKXt0aGlzLl8kQUw9bmV3IE1hcCx0aGlzLmlzVXBkYXRlUGVuZGluZz0hMX1nZXQgdXBkYXRlQ29tcGxldGUoKXtyZXR1cm4gdGhpcy5nZXRVcGRhdGVDb21wbGV0ZSgpfWdldFVwZGF0ZUNvbXBsZXRlKCl7cmV0dXJuIHRoaXMuXyRFU31zaG91bGRVcGRhdGUoZSl7cmV0dXJuITB9dXBkYXRlKGUpe3RoaXMuXyRFcSYmPXRoaXMuXyRFcS5mb3JFYWNoKGE9PnRoaXMuXyRFVChhLHRoaXNbYV0pKSx0aGlzLl8kRU0oKX11cGRhdGVkKGUpe31maXJzdFVwZGF0ZWQoZSl7fX07Y3IuZWxlbWVudFN0eWxlcz1bXSxjci5zaGFkb3dSb290T3B0aW9ucz17bW9kZToib3BlbiJ9LGNyW2ljKCJlbGVtZW50UHJvcGVydGllcyIpXT1uZXcgTWFwLGNyW2ljKCJmaW5hbGl6ZWQiKV09bmV3IE1hcCxMTXQ/Lih7UmVhY3RpdmVFbGVtZW50OmNyfSksKHVkLnJlYWN0aXZlRWxlbWVudFZlcnNpb25zPz89W10pLnB1c2goIjIuMS4yIil9KTtmdW5jdGlvbiBQVSh0LGUpe2lmKCFEdyh0KXx8IXQuaGFzT3duUHJvcGVydHkoInJhdyIpKXRocm93IEVycm9yKCJpbnZhbGlkIHRlbXBsYXRlIHN0cmluZ3MgYXJyYXkiKTtyZXR1cm4gQ1UhPT12b2lkIDA/Q1UuY3JlYXRlSFRNTChlKTplfWZ1bmN0aW9uIExvKHQsZSxhPXQsaSl7aWYoZT09PWcxKXJldHVybiBlO2xldCByPWkhPT12b2lkIDA/YS5fJENvPy5baV06YS5fJENsLHM9b2MoZSk/dm9pZCAwOmUuXyRsaXREaXJlY3RpdmUkO3JldHVybiByPy5jb25zdHJ1Y3RvciE9PXMmJihyPy5fJEFPPy4oITEpLHM9PT12b2lkIDA/cj12b2lkIDA6KHI9bmV3IHModCksci5fJEFUKHQsYSxpKSksaSE9PXZvaWQgMD8oYS5fJENvPz89W10pW2ldPXI6YS5fJENsPXIpLHIhPT12b2lkIDAmJihlPUxvKHQsci5fJEFTKHQsZS52YWx1ZXMpLHIsaSkpLGV9dmFyIEx3LFNVLGZkLENVLCR3LGVzLEF3LCRNdCxDbyxuYyxvYyxEdyxfVSxFdyxsYyxUVSxMVSxfbywkVSxBVSxEVSxQdyx3LEl3LE53LGcxLFMxLEVVLFRvLElVLGNjLG1kLHo0LCRvLGdkLGJkLHZkLHlkLEZ3LEFNdCxybixUaT1iKCgpPT57THc9Z2xvYmFsVGhpcyxTVT10PT50LGZkPUx3LnRydXN0ZWRUeXBlcyxDVT1mZD9mZC5jcmVhdGVQb2xpY3koImxpdC1odG1sIix7Y3JlYXRlSFRNTDp0PT50fSk6dm9pZCAwLCR3PSIkbGl0JCIsZXM9YGxpdCQke01hdGgucmFuZG9tKCkudG9GaXhlZCg5KS5zbGljZSgyKX0kYCxBdz0iPyIrZXMsJE10PWA8JHtBd30+YCxDbz1kb2N1bWVudCxuYz0oKT0+Q28uY3JlYXRlQ29tbWVudCgiIiksb2M9dD0+dD09PW51bGx8fHR5cGVvZiB0IT0ib2JqZWN0IiYmdHlwZW9mIHQhPSJmdW5jdGlvbiIsRHc9QXJyYXkuaXNBcnJheSxfVT10PT5Edyh0KXx8dHlwZW9mIHQ/LltTeW1ib2wuaXRlcmF0b3JdPT0iZnVuY3Rpb24iLEV3PWBbIAkKXGZccl1gLGxjPS88KD86KCEtLXxcL1teYS16QS1aXSl8KFwvP1thLXpBLVpdW14+XHNdKil8KFwvPyQpKS9nLFRVPS8tLT4vZyxMVT0vPi9nLF9vPVJlZ0V4cChgPnwke0V3fSg/OihbXlxccyInPj0vXSspKCR7RXd9Kj0ke0V3fSooPzpbXiAJClxmXHIiJ1xgPD49XXwoInwnKXwpKXwkKWAsImciKSwkVT0vJy9nLEFVPS8iL2csRFU9L14oPzpzY3JpcHR8c3R5bGV8dGV4dGFyZWF8dGl0bGUpJC9pLFB3PXQ9PihlLC4uLmEpPT4oe18kbGl0VHlwZSQ6dCxzdHJpbmdzOmUsdmFsdWVzOmF9KSx3PVB3KDEpLEl3PVB3KDIpLE53PVB3KDMpLGcxPVN5bWJvbC5mb3IoImxpdC1ub0NoYW5nZSIpLFMxPVN5bWJvbC5mb3IoImxpdC1ub3RoaW5nIiksRVU9bmV3IFdlYWtNYXAsVG89Q28uY3JlYXRlVHJlZVdhbGtlcihDbywxMjkpO0lVPSh0LGUpPT57bGV0IGE9dC5sZW5ndGgtMSxpPVtdLHIscz1lPT09Mj8iPHN2Zz4iOmU9PT0zPyI8bWF0aD4iOiIiLG49bGM7Zm9yKGxldCBvPTA7bzxhO28rKyl7bGV0IGQ9dFtvXSxjLGgsbD0tMSxmPTA7Zm9yKDtmPGQubGVuZ3RoJiYobi5sYXN0SW5kZXg9ZixoPW4uZXhlYyhkKSxoIT09bnVsbCk7KWY9bi5sYXN0SW5kZXgsbj09PWxjP2hbMV09PT0iIS0tIj9uPVRVOmhbMV0hPT12b2lkIDA/bj1MVTpoWzJdIT09dm9pZCAwPyhEVS50ZXN0KGhbMl0pJiYocj1SZWdFeHAoIjwvIitoWzJdLCJnIikpLG49X28pOmhbM10hPT12b2lkIDAmJihuPV9vKTpuPT09X28/aFswXT09PSI+Ij8obj1yPz9sYyxsPS0xKTpoWzFdPT09dm9pZCAwP2w9LTI6KGw9bi5sYXN0SW5kZXgtaFsyXS5sZW5ndGgsYz1oWzFdLG49aFszXT09PXZvaWQgMD9fbzpoWzNdPT09JyInP0FVOiRVKTpuPT09QVV8fG49PT0kVT9uPV9vOm49PT1UVXx8bj09PUxVP249bGM6KG49X28scj12b2lkIDApO2xldCBnPW49PT1fbyYmdFtvKzFdLnN0YXJ0c1dpdGgoIi8+Iik/IiAiOiIiO3MrPW49PT1sYz9kKyRNdDpsPj0wPyhpLnB1c2goYyksZC5zbGljZSgwLGwpKyR3K2Quc2xpY2UobCkrZXMrZyk6ZCtlcysobD09PS0yP286Zyl9cmV0dXJuW1BVKHQscysodFthXXx8Ijw/PiIpKyhlPT09Mj8iPC9zdmc+IjplPT09Mz8iPC9tYXRoPiI6IiIpKSxpXX0sY2M9Y2xhc3MgdHtjb25zdHJ1Y3Rvcih7c3RyaW5nczplLF8kbGl0VHlwZSQ6YX0saSl7bGV0IHI7dGhpcy5wYXJ0cz1bXTtsZXQgcz0wLG49MCxvPWUubGVuZ3RoLTEsZD10aGlzLnBhcnRzLFtjLGhdPUlVKGUsYSk7aWYodGhpcy5lbD10LmNyZWF0ZUVsZW1lbnQoYyxpKSxUby5jdXJyZW50Tm9kZT10aGlzLmVsLmNvbnRlbnQsYT09PTJ8fGE9PT0zKXtsZXQgbD10aGlzLmVsLmNvbnRlbnQuZmlyc3RDaGlsZDtsLnJlcGxhY2VXaXRoKC4uLmwuY2hpbGROb2Rlcyl9Zm9yKDsocj1Uby5uZXh0Tm9kZSgpKSE9PW51bGwmJmQubGVuZ3RoPG87KXtpZihyLm5vZGVUeXBlPT09MSl7aWYoci5oYXNBdHRyaWJ1dGVzKCkpZm9yKGxldCBsIG9mIHIuZ2V0QXR0cmlidXRlTmFtZXMoKSlpZihsLmVuZHNXaXRoKCR3KSl7bGV0IGY9aFtuKytdLGc9ci5nZXRBdHRyaWJ1dGUobCkuc3BsaXQoZXMpLHk9LyhbLj9AXSk/KC4qKS8uZXhlYyhmKTtkLnB1c2goe3R5cGU6MSxpbmRleDpzLG5hbWU6eVsyXSxzdHJpbmdzOmcsY3Rvcjp5WzFdPT09Ii4iP2dkOnlbMV09PT0iPyI/YmQ6eVsxXT09PSJAIj92ZDokb30pLHIucmVtb3ZlQXR0cmlidXRlKGwpfWVsc2UgbC5zdGFydHNXaXRoKGVzKSYmKGQucHVzaCh7dHlwZTo2LGluZGV4OnN9KSxyLnJlbW92ZUF0dHJpYnV0ZShsKSk7aWYoRFUudGVzdChyLnRhZ05hbWUpKXtsZXQgbD1yLnRleHRDb250ZW50LnNwbGl0KGVzKSxmPWwubGVuZ3RoLTE7aWYoZj4wKXtyLnRleHRDb250ZW50PWZkP2ZkLmVtcHR5U2NyaXB0OiIiO2ZvcihsZXQgZz0wO2c8ZjtnKyspci5hcHBlbmQobFtnXSxuYygpKSxUby5uZXh0Tm9kZSgpLGQucHVzaCh7dHlwZToyLGluZGV4Oisrc30pO3IuYXBwZW5kKGxbZl0sbmMoKSl9fX1lbHNlIGlmKHIubm9kZVR5cGU9PT04KWlmKHIuZGF0YT09PUF3KWQucHVzaCh7dHlwZToyLGluZGV4OnN9KTtlbHNle2xldCBsPS0xO2Zvcig7KGw9ci5kYXRhLmluZGV4T2YoZXMsbCsxKSkhPT0tMTspZC5wdXNoKHt0eXBlOjcsaW5kZXg6c30pLGwrPWVzLmxlbmd0aC0xfXMrK319c3RhdGljIGNyZWF0ZUVsZW1lbnQoZSxhKXtsZXQgaT1Dby5jcmVhdGVFbGVtZW50KCJ0ZW1wbGF0ZSIpO3JldHVybiBpLmlubmVySFRNTD1lLGl9fTttZD1jbGFzc3tjb25zdHJ1Y3RvcihlLGEpe3RoaXMuXyRBVj1bXSx0aGlzLl8kQU49dm9pZCAwLHRoaXMuXyRBRD1lLHRoaXMuXyRBTT1hfWdldCBwYXJlbnROb2RlKCl7cmV0dXJuIHRoaXMuXyRBTS5wYXJlbnROb2RlfWdldCBfJEFVKCl7cmV0dXJuIHRoaXMuXyRBTS5fJEFVfXUoZSl7bGV0e2VsOntjb250ZW50OmF9LHBhcnRzOml9PXRoaXMuXyRBRCxyPShlPy5jcmVhdGlvblNjb3BlPz9DbykuaW1wb3J0Tm9kZShhLCEwKTtUby5jdXJyZW50Tm9kZT1yO2xldCBzPVRvLm5leHROb2RlKCksbj0wLG89MCxkPWlbMF07Zm9yKDtkIT09dm9pZCAwOyl7aWYobj09PWQuaW5kZXgpe2xldCBjO2QudHlwZT09PTI/Yz1uZXcgejQocyxzLm5leHRTaWJsaW5nLHRoaXMsZSk6ZC50eXBlPT09MT9jPW5ldyBkLmN0b3IocyxkLm5hbWUsZC5zdHJpbmdzLHRoaXMsZSk6ZC50eXBlPT09NiYmKGM9bmV3IHlkKHMsdGhpcyxlKSksdGhpcy5fJEFWLnB1c2goYyksZD1pWysrb119biE9PWQ/LmluZGV4JiYocz1Uby5uZXh0Tm9kZSgpLG4rKyl9cmV0dXJuIFRvLmN1cnJlbnROb2RlPUNvLHJ9cChlKXtsZXQgYT0wO2ZvcihsZXQgaSBvZiB0aGlzLl8kQVYpaSE9PXZvaWQgMCYmKGkuc3RyaW5ncyE9PXZvaWQgMD8oaS5fJEFJKGUsaSxhKSxhKz1pLnN0cmluZ3MubGVuZ3RoLTIpOmkuXyRBSShlW2FdKSksYSsrfX0sejQ9Y2xhc3MgdHtnZXQgXyRBVSgpe3JldHVybiB0aGlzLl8kQU0/Ll8kQVU/P3RoaXMuXyRDdn1jb25zdHJ1Y3RvcihlLGEsaSxyKXt0aGlzLnR5cGU9Mix0aGlzLl8kQUg9UzEsdGhpcy5fJEFOPXZvaWQgMCx0aGlzLl8kQUE9ZSx0aGlzLl8kQUI9YSx0aGlzLl8kQU09aSx0aGlzLm9wdGlvbnM9cix0aGlzLl8kQ3Y9cj8uaXNDb25uZWN0ZWQ/PyEwfWdldCBwYXJlbnROb2RlKCl7bGV0IGU9dGhpcy5fJEFBLnBhcmVudE5vZGUsYT10aGlzLl8kQU07cmV0dXJuIGEhPT12b2lkIDAmJmU/Lm5vZGVUeXBlPT09MTEmJihlPWEucGFyZW50Tm9kZSksZX1nZXQgc3RhcnROb2RlKCl7cmV0dXJuIHRoaXMuXyRBQX1nZXQgZW5kTm9kZSgpe3JldHVybiB0aGlzLl8kQUJ9XyRBSShlLGE9dGhpcyl7ZT1Mbyh0aGlzLGUsYSksb2MoZSk/ZT09PVMxfHxlPT1udWxsfHxlPT09IiI/KHRoaXMuXyRBSCE9PVMxJiZ0aGlzLl8kQVIoKSx0aGlzLl8kQUg9UzEpOmUhPT10aGlzLl8kQUgmJmUhPT1nMSYmdGhpcy5fKGUpOmUuXyRsaXRUeXBlJCE9PXZvaWQgMD90aGlzLiQoZSk6ZS5ub2RlVHlwZSE9PXZvaWQgMD90aGlzLlQoZSk6X1UoZSk/dGhpcy5rKGUpOnRoaXMuXyhlKX1PKGUpe3JldHVybiB0aGlzLl8kQUEucGFyZW50Tm9kZS5pbnNlcnRCZWZvcmUoZSx0aGlzLl8kQUIpfVQoZSl7dGhpcy5fJEFIIT09ZSYmKHRoaXMuXyRBUigpLHRoaXMuXyRBSD10aGlzLk8oZSkpfV8oZSl7dGhpcy5fJEFIIT09UzEmJm9jKHRoaXMuXyRBSCk/dGhpcy5fJEFBLm5leHRTaWJsaW5nLmRhdGE9ZTp0aGlzLlQoQ28uY3JlYXRlVGV4dE5vZGUoZSkpLHRoaXMuXyRBSD1lfSQoZSl7bGV0e3ZhbHVlczphLF8kbGl0VHlwZSQ6aX09ZSxyPXR5cGVvZiBpPT0ibnVtYmVyIj90aGlzLl8kQUMoZSk6KGkuZWw9PT12b2lkIDAmJihpLmVsPWNjLmNyZWF0ZUVsZW1lbnQoUFUoaS5oLGkuaFswXSksdGhpcy5vcHRpb25zKSksaSk7aWYodGhpcy5fJEFIPy5fJEFEPT09cil0aGlzLl8kQUgucChhKTtlbHNle2xldCBzPW5ldyBtZChyLHRoaXMpLG49cy51KHRoaXMub3B0aW9ucyk7cy5wKGEpLHRoaXMuVChuKSx0aGlzLl8kQUg9c319XyRBQyhlKXtsZXQgYT1FVS5nZXQoZS5zdHJpbmdzKTtyZXR1cm4gYT09PXZvaWQgMCYmRVUuc2V0KGUuc3RyaW5ncyxhPW5ldyBjYyhlKSksYX1rKGUpe0R3KHRoaXMuXyRBSCl8fCh0aGlzLl8kQUg9W10sdGhpcy5fJEFSKCkpO2xldCBhPXRoaXMuXyRBSCxpLHI9MDtmb3IobGV0IHMgb2YgZSlyPT09YS5sZW5ndGg/YS5wdXNoKGk9bmV3IHQodGhpcy5PKG5jKCkpLHRoaXMuTyhuYygpKSx0aGlzLHRoaXMub3B0aW9ucykpOmk9YVtyXSxpLl8kQUkocykscisrO3I8YS5sZW5ndGgmJih0aGlzLl8kQVIoaSYmaS5fJEFCLm5leHRTaWJsaW5nLHIpLGEubGVuZ3RoPXIpfV8kQVIoZT10aGlzLl8kQUEubmV4dFNpYmxpbmcsYSl7Zm9yKHRoaXMuXyRBUD8uKCExLCEwLGEpO2UhPT10aGlzLl8kQUI7KXtsZXQgaT1TVShlKS5uZXh0U2libGluZztTVShlKS5yZW1vdmUoKSxlPWl9fXNldENvbm5lY3RlZChlKXt0aGlzLl8kQU09PT12b2lkIDAmJih0aGlzLl8kQ3Y9ZSx0aGlzLl8kQVA/LihlKSl9fSwkbz1jbGFzc3tnZXQgdGFnTmFtZSgpe3JldHVybiB0aGlzLmVsZW1lbnQudGFnTmFtZX1nZXQgXyRBVSgpe3JldHVybiB0aGlzLl8kQU0uXyRBVX1jb25zdHJ1Y3RvcihlLGEsaSxyLHMpe3RoaXMudHlwZT0xLHRoaXMuXyRBSD1TMSx0aGlzLl8kQU49dm9pZCAwLHRoaXMuZWxlbWVudD1lLHRoaXMubmFtZT1hLHRoaXMuXyRBTT1yLHRoaXMub3B0aW9ucz1zLGkubGVuZ3RoPjJ8fGlbMF0hPT0iInx8aVsxXSE9PSIiPyh0aGlzLl8kQUg9QXJyYXkoaS5sZW5ndGgtMSkuZmlsbChuZXcgU3RyaW5nKSx0aGlzLnN0cmluZ3M9aSk6dGhpcy5fJEFIPVMxfV8kQUkoZSxhPXRoaXMsaSxyKXtsZXQgcz10aGlzLnN0cmluZ3Msbj0hMTtpZihzPT09dm9pZCAwKWU9TG8odGhpcyxlLGEsMCksbj0hb2MoZSl8fGUhPT10aGlzLl8kQUgmJmUhPT1nMSxuJiYodGhpcy5fJEFIPWUpO2Vsc2V7bGV0IG89ZSxkLGM7Zm9yKGU9c1swXSxkPTA7ZDxzLmxlbmd0aC0xO2QrKyljPUxvKHRoaXMsb1tpK2RdLGEsZCksYz09PWcxJiYoYz10aGlzLl8kQUhbZF0pLG58fD0hb2MoYyl8fGMhPT10aGlzLl8kQUhbZF0sYz09PVMxP2U9UzE6ZSE9PVMxJiYoZSs9KGM/PyIiKStzW2QrMV0pLHRoaXMuXyRBSFtkXT1jfW4mJiFyJiZ0aGlzLmooZSl9aihlKXtlPT09UzE/dGhpcy5lbGVtZW50LnJlbW92ZUF0dHJpYnV0ZSh0aGlzLm5hbWUpOnRoaXMuZWxlbWVudC5zZXRBdHRyaWJ1dGUodGhpcy5uYW1lLGU/PyIiKX19LGdkPWNsYXNzIGV4dGVuZHMgJG97Y29uc3RydWN0b3IoKXtzdXBlciguLi5hcmd1bWVudHMpLHRoaXMudHlwZT0zfWooZSl7dGhpcy5lbGVtZW50W3RoaXMubmFtZV09ZT09PVMxP3ZvaWQgMDplfX0sYmQ9Y2xhc3MgZXh0ZW5kcyAkb3tjb25zdHJ1Y3Rvcigpe3N1cGVyKC4uLmFyZ3VtZW50cyksdGhpcy50eXBlPTR9aihlKXt0aGlzLmVsZW1lbnQudG9nZ2xlQXR0cmlidXRlKHRoaXMubmFtZSwhIWUmJmUhPT1TMSl9fSx2ZD1jbGFzcyBleHRlbmRzICRve2NvbnN0cnVjdG9yKGUsYSxpLHIscyl7c3VwZXIoZSxhLGkscixzKSx0aGlzLnR5cGU9NX1fJEFJKGUsYT10aGlzKXtpZigoZT1Mbyh0aGlzLGUsYSwwKT8/UzEpPT09ZzEpcmV0dXJuO2xldCBpPXRoaXMuXyRBSCxyPWU9PT1TMSYmaSE9PVMxfHxlLmNhcHR1cmUhPT1pLmNhcHR1cmV8fGUub25jZSE9PWkub25jZXx8ZS5wYXNzaXZlIT09aS5wYXNzaXZlLHM9ZSE9PVMxJiYoaT09PVMxfHxyKTtyJiZ0aGlzLmVsZW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcih0aGlzLm5hbWUsdGhpcyxpKSxzJiZ0aGlzLmVsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcih0aGlzLm5hbWUsdGhpcyxlKSx0aGlzLl8kQUg9ZX1oYW5kbGVFdmVudChlKXt0eXBlb2YgdGhpcy5fJEFIPT0iZnVuY3Rpb24iP3RoaXMuXyRBSC5jYWxsKHRoaXMub3B0aW9ucz8uaG9zdD8/dGhpcy5lbGVtZW50LGUpOnRoaXMuXyRBSC5oYW5kbGVFdmVudChlKX19LHlkPWNsYXNze2NvbnN0cnVjdG9yKGUsYSxpKXt0aGlzLmVsZW1lbnQ9ZSx0aGlzLnR5cGU9Nix0aGlzLl8kQU49dm9pZCAwLHRoaXMuXyRBTT1hLHRoaXMub3B0aW9ucz1pfWdldCBfJEFVKCl7cmV0dXJuIHRoaXMuXyRBTS5fJEFVfV8kQUkoZSl7TG8odGhpcyxlKX19LEZ3PXtNOiR3LFA6ZXMsQTpBdyxDOjEsTDpJVSxSOm1kLEQ6X1UsVjpMbyxJOno0LEg6JG8sTjpiZCxVOnZkLEI6Z2QsRjp5ZH0sQU10PUx3LmxpdEh0bWxQb2x5ZmlsbFN1cHBvcnQ7QU10Py4oY2MsejQpLChMdy5saXRIdG1sVmVyc2lvbnM/Pz1bXSkucHVzaCgiMy4zLjIiKTtybj0odCxlLGEpPT57bGV0IGk9YT8ucmVuZGVyQmVmb3JlPz9lLHI9aS5fJGxpdFBhcnQkO2lmKHI9PT12b2lkIDApe2xldCBzPWE/LnJlbmRlckJlZm9yZT8/bnVsbDtpLl8kbGl0UGFydCQ9cj1uZXcgejQoZS5pbnNlcnRCZWZvcmUobmMoKSxzKSxzLHZvaWQgMCxhPz97fSl9cmV0dXJuIHIuXyRBSSh0KSxyfX0pO3ZhciBPdyx0cyxETXQsRU10LE5VPWIoKCk9PntzYygpO3NjKCk7VGkoKTtUaSgpO093PWdsb2JhbFRoaXMsdHM9Y2xhc3MgZXh0ZW5kcyBjcntjb25zdHJ1Y3Rvcigpe3N1cGVyKC4uLmFyZ3VtZW50cyksdGhpcy5yZW5kZXJPcHRpb25zPXtob3N0OnRoaXN9LHRoaXMuXyREbz12b2lkIDB9Y3JlYXRlUmVuZGVyUm9vdCgpe2xldCBlPXN1cGVyLmNyZWF0ZVJlbmRlclJvb3QoKTtyZXR1cm4gdGhpcy5yZW5kZXJPcHRpb25zLnJlbmRlckJlZm9yZT8/PWUuZmlyc3RDaGlsZCxlfXVwZGF0ZShlKXtsZXQgYT10aGlzLnJlbmRlcigpO3RoaXMuaGFzVXBkYXRlZHx8KHRoaXMucmVuZGVyT3B0aW9ucy5pc0Nvbm5lY3RlZD10aGlzLmlzQ29ubmVjdGVkKSxzdXBlci51cGRhdGUoZSksdGhpcy5fJERvPXJuKGEsdGhpcy5yZW5kZXJSb290LHRoaXMucmVuZGVyT3B0aW9ucyl9Y29ubmVjdGVkQ2FsbGJhY2soKXtzdXBlci5jb25uZWN0ZWRDYWxsYmFjaygpLHRoaXMuXyREbz8uc2V0Q29ubmVjdGVkKCEwKX1kaXNjb25uZWN0ZWRDYWxsYmFjaygpe3N1cGVyLmRpc2Nvbm5lY3RlZENhbGxiYWNrKCksdGhpcy5fJERvPy5zZXRDb25uZWN0ZWQoITEpfXJlbmRlcigpe3JldHVybiBnMX19O3RzLl8kbGl0RWxlbWVudCQ9ITAsdHMuZmluYWxpemVkPSEwLE93LmxpdEVsZW1lbnRIeWRyYXRlU3VwcG9ydD8uKHtMaXRFbGVtZW50OnRzfSk7RE10PU93LmxpdEVsZW1lbnRQb2x5ZmlsbFN1cHBvcnQ7RE10Py4oe0xpdEVsZW1lbnQ6dHN9KTtFTXQ9e18kQUs6KHQsZSxhKT0+e3QuXyRBSyhlLGEpfSxfJEFMOnQ9PnQuXyRBTH07KE93LmxpdEVsZW1lbnRWZXJzaW9ucz8/PVtdKS5wdXNoKCI0LjIuMiIpfSk7dmFyIFBNdCxGVT1iKCgpPT57UE10PSExfSk7dmFyIGRyPWIoKCk9PntzYygpO1RpKCk7TlUoKTtGVSgpfSk7dmFyIHdkPWh0KHhkPT57InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eSh4ZCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSkseGQudW5pPXZvaWQgMDt2YXIgSU10PSh0PSJ1bmkiKT0+YCR7dH1fJHsieHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4Ii5yZXBsYWNlKC9beHldL2csZT0+e2xldCBhPU1hdGgucmFuZG9tKCkqMTZ8MDtyZXR1cm4oZT09PSJ4Ij9hOmEmM3w4KS50b1N0cmluZygxNil9KX1gO3hkLnVuaT1JTXR9KTt2YXIgTWQsc24semQ9YigoKT0+e01kPWNsYXNze2NsYWltKCl7aWYodGhpcy5jbGFpbWVkKXRocm93IG5ldyBFcnJvcigiRGVmZXJyZWQgYWxyZWFkeSBjbGFpbWVkIik7dGhpcy5jbGFpbWVkPSEwfWdldCBkdXJhdGlvbigpe3JldHVybiB0aGlzLnN0b3BwZWRBdD90aGlzLnN0b3BwZWRBdC10aGlzLnN0YXJ0ZWRBdDpEYXRlLm5vdygpLXRoaXMuc3RhcnRlZEF0fWNvbnN0cnVjdG9yKCl7dGhpcy5jbGFpbWVkPSExLHRoaXMucHJvbWlzZT1uZXcgUHJvbWlzZSgoZSxhKT0+e3RoaXMucmVzb2x2ZT1pPT57dGhpcy5zdGF0dXM9ImZ1bGZpbGxlZCIsdGhpcy5zdG9wcGVkQXQ9RGF0ZS5ub3coKSxlKGkpfSx0aGlzLnJlamVjdD1pPT57dGhpcy5zdGF0dXM9InJlamVjdGVkIix0aGlzLnN0b3BwZWRBdD1EYXRlLm5vdygpLGEoaSl9LHRoaXMuc3RhcnRlZEF0PURhdGUubm93KCksdGhpcy5zdGF0dXM9InBlbmRpbmcifSl9fSxzbj0oKT0+bmV3IE1kfSk7dmFyIGtkLE5NdCxPVT1iKCgpPT57emQoKTtrZD1jbGFzc3tjb25zdHJ1Y3Rvcigpe3RoaXMuYWNjdW11bGF0ZWRQcm9taXNlcz1bXSx0aGlzLmRlZmVycmVkPXNuKCksdGhpcy5wcm9taXNlPXRoaXMuZGVmZXJyZWQucHJvbWlzZSxzZXRUaW1lb3V0KGFzeW5jKCk9Pntmb3IoO3RoaXMuYWNjdW11bGF0ZWRQcm9taXNlcy5sZW5ndGg+MDspYXdhaXQgdGhpcy5hY2N1bXVsYXRlZFByb21pc2VzLnNoaWZ0KCk7dGhpcy5kZWZlcnJlZC5yZXNvbHZlKCl9LDApfXN1YkRlZmVyKCl7bGV0IGU9c24oKTtyZXR1cm4gdGhpcy5hZGRQcm9taXNlKGUucHJvbWlzZSksZX1hZGRQcm9taXNlKGUpe3RoaXMuYWNjdW11bGF0ZWRQcm9taXNlcy5wdXNoKGUpfX0sTk10PSgpPT5uZXcga2R9KTt2YXIgQmU9e307R2UoQmUse0N1bXVsYXRpdmVEZWZlcnJlZDooKT0+a2QsRGVmZXJyZWQ6KCk9Pk1kLGN1bXVsYXRpdmVEZWZlcjooKT0+Tk10LGRlZmVyOigpPT5zbixmcm9tQ2FsbGJhY2s6KCk9PnFNdCxnZXRGaXJzdFRydWVPckZhbHNlOigpPT5ITXQsbWFwOigpPT5STXQscmVqZWN0ZWRQcm9taXNlOigpPT5PTXQscmVzb2x2ZWRQcm9taXNlOigpPT5GTXQsdGltZW91dEFuZENvbnRpbnVlOigpPT5CTXQsdGltZW91dFdyYXA6KCk9PlJVfSk7dmFyIEZNdCxPTXQsUk10LFJVLEJNdCxITXQscU10LGMyPWIoKCk9Pnt6ZCgpO09VKCk7emQoKTtGTXQ9dD0+UHJvbWlzZS5yZXNvbHZlKHQpLE9NdD10PT5Qcm9taXNlLnJlamVjdCh0KSxSTXQ9YXN5bmModCxlKT0+e2xldCBhPVtdLGk9W107Zm9yKGxldCByIG9mIHQpe2xldCBzPWUocik7YS5wdXNoKHMpLHMudGhlbihuPT57aS5wdXNoKG4pfSl9cmV0dXJuIGF3YWl0IFByb21pc2UuYWxsKGEpLGl9LFJVPWFzeW5jKHQsZSxhPSEwKT0+bmV3IFByb21pc2UoKGkscik9PntzZXRUaW1lb3V0KCgpPT57YT9yKG5ldyBFcnJvcigidGltZW91dCIpKTppKG51bGwpfSxlKSx0LnRoZW4oaSxyKX0pLEJNdD1hc3luYyh0LGU9NmU0KT0+UlUodCxlLCExKSxITXQ9YXN5bmMgdD0+e2xldCBlPXNuKCk7Zm9yKGxldCBhIG9mIHQpYS50aGVuKGk9PntpPT09ITAmJmUucmVzb2x2ZSghMCl9KTtyZXR1cm4gUHJvbWlzZS5hbGwodCkudGhlbigoKT0+e2UucmVzb2x2ZSghMSl9KSxlLnByb21pc2V9LHFNdD10PT5uZXcgUHJvbWlzZSgoZSxhKT0+e3QoKGkscik9PntpP2EoaSk6ZShyKX0pfSl9KTt2YXIgU2Q9YigoKT0+e2MyKCl9KTtmdW5jdGlvbiBTdCh0LGUpe2lmKHR5cGVvZiBlIT0iZnVuY3Rpb24iJiZlIT09bnVsbCl0aHJvdyBuZXcgVHlwZUVycm9yKCJDbGFzcyBleHRlbmRzIHZhbHVlICIrU3RyaW5nKGUpKyIgaXMgbm90IGEgY29uc3RydWN0b3Igb3IgbnVsbCIpO1J3KHQsZSk7ZnVuY3Rpb24gYSgpe3RoaXMuY29uc3RydWN0b3I9dH10LnByb3RvdHlwZT1lPT09bnVsbD9PYmplY3QuY3JlYXRlKGUpOihhLnByb3RvdHlwZT1lLnByb3RvdHlwZSxuZXcgYSl9ZnVuY3Rpb24gak10KHQsZSl7dmFyIGE9e307Zm9yKHZhciBpIGluIHQpT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHQsaSkmJmUuaW5kZXhPZihpKTwwJiYoYVtpXT10W2ldKTtpZih0IT1udWxsJiZ0eXBlb2YgT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scz09ImZ1bmN0aW9uIilmb3IodmFyIHI9MCxpPU9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHModCk7cjxpLmxlbmd0aDtyKyspZS5pbmRleE9mKGlbcl0pPDAmJk9iamVjdC5wcm90b3R5cGUucHJvcGVydHlJc0VudW1lcmFibGUuY2FsbCh0LGlbcl0pJiYoYVtpW3JdXT10W2lbcl1dKTtyZXR1cm4gYX1mdW5jdGlvbiBVTXQodCxlLGEsaSl7dmFyIHI9YXJndW1lbnRzLmxlbmd0aCxzPXI8Mz9lOmk9PT1udWxsP2k9T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihlLGEpOmksbjtpZih0eXBlb2YgUmVmbGVjdD09Im9iamVjdCImJnR5cGVvZiBSZWZsZWN0LmRlY29yYXRlPT0iZnVuY3Rpb24iKXM9UmVmbGVjdC5kZWNvcmF0ZSh0LGUsYSxpKTtlbHNlIGZvcih2YXIgbz10Lmxlbmd0aC0xO28+PTA7by0tKShuPXRbb10pJiYocz0ocjwzP24ocyk6cj4zP24oZSxhLHMpOm4oZSxhKSl8fHMpO3JldHVybiByPjMmJnMmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShlLGEscyksc31mdW5jdGlvbiBXTXQodCxlKXtyZXR1cm4gZnVuY3Rpb24oYSxpKXtlKGEsaSx0KX19ZnVuY3Rpb24gR010KHQsZSxhLGkscixzKXtmdW5jdGlvbiBuKHgpe2lmKHghPT12b2lkIDAmJnR5cGVvZiB4IT0iZnVuY3Rpb24iKXRocm93IG5ldyBUeXBlRXJyb3IoIkZ1bmN0aW9uIGV4cGVjdGVkIik7cmV0dXJuIHh9Zm9yKHZhciBvPWkua2luZCxkPW89PT0iZ2V0dGVyIj8iZ2V0IjpvPT09InNldHRlciI/InNldCI6InZhbHVlIixjPSFlJiZ0P2kuc3RhdGljP3Q6dC5wcm90b3R5cGU6bnVsbCxoPWV8fChjP09iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoYyxpLm5hbWUpOnt9KSxsLGY9ITEsZz1hLmxlbmd0aC0xO2c+PTA7Zy0tKXt2YXIgeT17fTtmb3IodmFyIHYgaW4gaSl5W3ZdPXY9PT0iYWNjZXNzIj97fTppW3ZdO2Zvcih2YXIgdiBpbiBpLmFjY2Vzcyl5LmFjY2Vzc1t2XT1pLmFjY2Vzc1t2XTt5LmFkZEluaXRpYWxpemVyPWZ1bmN0aW9uKHgpe2lmKGYpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGFkZCBpbml0aWFsaXplcnMgYWZ0ZXIgZGVjb3JhdGlvbiBoYXMgY29tcGxldGVkIik7cy5wdXNoKG4oeHx8bnVsbCkpfTt2YXIgbT0oMCxhW2ddKShvPT09ImFjY2Vzc29yIj97Z2V0OmguZ2V0LHNldDpoLnNldH06aFtkXSx5KTtpZihvPT09ImFjY2Vzc29yIil7aWYobT09PXZvaWQgMCljb250aW51ZTtpZihtPT09bnVsbHx8dHlwZW9mIG0hPSJvYmplY3QiKXRocm93IG5ldyBUeXBlRXJyb3IoIk9iamVjdCBleHBlY3RlZCIpOyhsPW4obS5nZXQpKSYmKGguZ2V0PWwpLChsPW4obS5zZXQpKSYmKGguc2V0PWwpLChsPW4obS5pbml0KSkmJnIudW5zaGlmdChsKX1lbHNlKGw9bihtKSkmJihvPT09ImZpZWxkIj9yLnVuc2hpZnQobCk6aFtkXT1sKX1jJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoYyxpLm5hbWUsaCksZj0hMH1mdW5jdGlvbiBZTXQodCxlLGEpe2Zvcih2YXIgaT1hcmd1bWVudHMubGVuZ3RoPjIscj0wO3I8ZS5sZW5ndGg7cisrKWE9aT9lW3JdLmNhbGwodCxhKTplW3JdLmNhbGwodCk7cmV0dXJuIGk/YTp2b2lkIDB9ZnVuY3Rpb24gWk10KHQpe3JldHVybiB0eXBlb2YgdD09InN5bWJvbCI/dDoiIi5jb25jYXQodCl9ZnVuY3Rpb24gWE10KHQsZSxhKXtyZXR1cm4gdHlwZW9mIGU9PSJzeW1ib2wiJiYoZT1lLmRlc2NyaXB0aW9uPyJbIi5jb25jYXQoZS5kZXNjcmlwdGlvbiwiXSIpOiIiKSxPYmplY3QuZGVmaW5lUHJvcGVydHkodCwibmFtZSIse2NvbmZpZ3VyYWJsZTohMCx2YWx1ZTphPyIiLmNvbmNhdChhLCIgIixlKTplfSl9ZnVuY3Rpb24gS010KHQsZSl7aWYodHlwZW9mIFJlZmxlY3Q9PSJvYmplY3QiJiZ0eXBlb2YgUmVmbGVjdC5tZXRhZGF0YT09ImZ1bmN0aW9uIilyZXR1cm4gUmVmbGVjdC5tZXRhZGF0YSh0LGUpfWZ1bmN0aW9uIFZ3KHQsZSxhLGkpe2Z1bmN0aW9uIHIocyl7cmV0dXJuIHMgaW5zdGFuY2VvZiBhP3M6bmV3IGEoZnVuY3Rpb24obil7bihzKX0pfXJldHVybiBuZXcoYXx8KGE9UHJvbWlzZSkpKGZ1bmN0aW9uKHMsbil7ZnVuY3Rpb24gbyhoKXt0cnl7YyhpLm5leHQoaCkpfWNhdGNoKGwpe24obCl9fWZ1bmN0aW9uIGQoaCl7dHJ5e2MoaS50aHJvdyhoKSl9Y2F0Y2gobCl7bihsKX19ZnVuY3Rpb24gYyhoKXtoLmRvbmU/cyhoLnZhbHVlKTpyKGgudmFsdWUpLnRoZW4obyxkKX1jKChpPWkuYXBwbHkodCxlfHxbXSkpLm5leHQoKSl9KX1mdW5jdGlvbiBkYyh0LGUpe3ZhciBhPXtsYWJlbDowLHNlbnQ6ZnVuY3Rpb24oKXtpZihzWzBdJjEpdGhyb3cgc1sxXTtyZXR1cm4gc1sxXX0sdHJ5czpbXSxvcHM6W119LGkscixzLG49T2JqZWN0LmNyZWF0ZSgodHlwZW9mIEl0ZXJhdG9yPT0iZnVuY3Rpb24iP0l0ZXJhdG9yOk9iamVjdCkucHJvdG90eXBlKTtyZXR1cm4gbi5uZXh0PW8oMCksbi50aHJvdz1vKDEpLG4ucmV0dXJuPW8oMiksdHlwZW9mIFN5bWJvbD09ImZ1bmN0aW9uIiYmKG5bU3ltYm9sLml0ZXJhdG9yXT1mdW5jdGlvbigpe3JldHVybiB0aGlzfSksbjtmdW5jdGlvbiBvKGMpe3JldHVybiBmdW5jdGlvbihoKXtyZXR1cm4gZChbYyxoXSl9fWZ1bmN0aW9uIGQoYyl7aWYoaSl0aHJvdyBuZXcgVHlwZUVycm9yKCJHZW5lcmF0b3IgaXMgYWxyZWFkeSBleGVjdXRpbmcuIik7Zm9yKDtuJiYobj0wLGNbMF0mJihhPTApKSxhOyl0cnl7aWYoaT0xLHImJihzPWNbMF0mMj9yLnJldHVybjpjWzBdP3IudGhyb3d8fCgocz1yLnJldHVybikmJnMuY2FsbChyKSwwKTpyLm5leHQpJiYhKHM9cy5jYWxsKHIsY1sxXSkpLmRvbmUpcmV0dXJuIHM7c3dpdGNoKHI9MCxzJiYoYz1bY1swXSYyLHMudmFsdWVdKSxjWzBdKXtjYXNlIDA6Y2FzZSAxOnM9YzticmVhaztjYXNlIDQ6cmV0dXJuIGEubGFiZWwrKyx7dmFsdWU6Y1sxXSxkb25lOiExfTtjYXNlIDU6YS5sYWJlbCsrLHI9Y1sxXSxjPVswXTtjb250aW51ZTtjYXNlIDc6Yz1hLm9wcy5wb3AoKSxhLnRyeXMucG9wKCk7Y29udGludWU7ZGVmYXVsdDppZihzPWEudHJ5cywhKHM9cy5sZW5ndGg+MCYmc1tzLmxlbmd0aC0xXSkmJihjWzBdPT09Nnx8Y1swXT09PTIpKXthPTA7Y29udGludWV9aWYoY1swXT09PTMmJighc3x8Y1sxXT5zWzBdJiZjWzFdPHNbM10pKXthLmxhYmVsPWNbMV07YnJlYWt9aWYoY1swXT09PTYmJmEubGFiZWw8c1sxXSl7YS5sYWJlbD1zWzFdLHM9YzticmVha31pZihzJiZhLmxhYmVsPHNbMl0pe2EubGFiZWw9c1syXSxhLm9wcy5wdXNoKGMpO2JyZWFrfXNbMl0mJmEub3BzLnBvcCgpLGEudHJ5cy5wb3AoKTtjb250aW51ZX1jPWUuY2FsbCh0LGEpfWNhdGNoKGgpe2M9WzYsaF0scj0wfWZpbmFsbHl7aT1zPTB9aWYoY1swXSY1KXRocm93IGNbMV07cmV0dXJue3ZhbHVlOmNbMF0/Y1sxXTp2b2lkIDAsZG9uZTohMH19fWZ1bmN0aW9uIFFNdCh0LGUpe2Zvcih2YXIgYSBpbiB0KWEhPT0iZGVmYXVsdCImJiFPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoZSxhKSYmSHcoZSx0LGEpfWZ1bmN0aW9uIE4yKHQpe3ZhciBlPXR5cGVvZiBTeW1ib2w9PSJmdW5jdGlvbiImJlN5bWJvbC5pdGVyYXRvcixhPWUmJnRbZV0saT0wO2lmKGEpcmV0dXJuIGEuY2FsbCh0KTtpZih0JiZ0eXBlb2YgdC5sZW5ndGg9PSJudW1iZXIiKXJldHVybntuZXh0OmZ1bmN0aW9uKCl7cmV0dXJuIHQmJmk+PXQubGVuZ3RoJiYodD12b2lkIDApLHt2YWx1ZTp0JiZ0W2krK10sZG9uZTohdH19fTt0aHJvdyBuZXcgVHlwZUVycm9yKGU/Ik9iamVjdCBpcyBub3QgaXRlcmFibGUuIjoiU3ltYm9sLml0ZXJhdG9yIGlzIG5vdCBkZWZpbmVkLiIpfWZ1bmN0aW9uIFcxKHQsZSl7dmFyIGE9dHlwZW9mIFN5bWJvbD09ImZ1bmN0aW9uIiYmdFtTeW1ib2wuaXRlcmF0b3JdO2lmKCFhKXJldHVybiB0O3ZhciBpPWEuY2FsbCh0KSxyLHM9W10sbjt0cnl7Zm9yKDsoZT09PXZvaWQgMHx8ZS0tID4wKSYmIShyPWkubmV4dCgpKS5kb25lOylzLnB1c2goci52YWx1ZSl9Y2F0Y2gobyl7bj17ZXJyb3I6b319ZmluYWxseXt0cnl7ciYmIXIuZG9uZSYmKGE9aS5yZXR1cm4pJiZhLmNhbGwoaSl9ZmluYWxseXtpZihuKXRocm93IG4uZXJyb3J9fXJldHVybiBzfWZ1bmN0aW9uIEpNdCgpe2Zvcih2YXIgdD1bXSxlPTA7ZTxhcmd1bWVudHMubGVuZ3RoO2UrKyl0PXQuY29uY2F0KFcxKGFyZ3VtZW50c1tlXSkpO3JldHVybiB0fWZ1bmN0aW9uIGV6dCgpe2Zvcih2YXIgdD0wLGU9MCxhPWFyZ3VtZW50cy5sZW5ndGg7ZTxhO2UrKyl0Kz1hcmd1bWVudHNbZV0ubGVuZ3RoO2Zvcih2YXIgaT1BcnJheSh0KSxyPTAsZT0wO2U8YTtlKyspZm9yKHZhciBzPWFyZ3VtZW50c1tlXSxuPTAsbz1zLmxlbmd0aDtuPG87bisrLHIrKylpW3JdPXNbbl07cmV0dXJuIGl9ZnVuY3Rpb24geDIodCxlLGEpe2lmKGF8fGFyZ3VtZW50cy5sZW5ndGg9PT0yKWZvcih2YXIgaT0wLHI9ZS5sZW5ndGgscztpPHI7aSsrKShzfHwhKGkgaW4gZSkpJiYoc3x8KHM9QXJyYXkucHJvdG90eXBlLnNsaWNlLmNhbGwoZSwwLGkpKSxzW2ldPWVbaV0pO3JldHVybiB0LmNvbmNhdChzfHxBcnJheS5wcm90b3R5cGUuc2xpY2UuY2FsbChlKSl9ZnVuY3Rpb24gYXModCl7cmV0dXJuIHRoaXMgaW5zdGFuY2VvZiBhcz8odGhpcy52PXQsdGhpcyk6bmV3IGFzKHQpfWZ1bmN0aW9uIGp3KHQsZSxhKXtpZighU3ltYm9sLmFzeW5jSXRlcmF0b3IpdGhyb3cgbmV3IFR5cGVFcnJvcigiU3ltYm9sLmFzeW5jSXRlcmF0b3IgaXMgbm90IGRlZmluZWQuIik7dmFyIGk9YS5hcHBseSh0LGV8fFtdKSxyLHM9W107cmV0dXJuIHI9T2JqZWN0LmNyZWF0ZSgodHlwZW9mIEFzeW5jSXRlcmF0b3I9PSJmdW5jdGlvbiI/QXN5bmNJdGVyYXRvcjpPYmplY3QpLnByb3RvdHlwZSksbygibmV4dCIpLG8oInRocm93IiksbygicmV0dXJuIixuKSxyW1N5bWJvbC5hc3luY0l0ZXJhdG9yXT1mdW5jdGlvbigpe3JldHVybiB0aGlzfSxyO2Z1bmN0aW9uIG4oZyl7cmV0dXJuIGZ1bmN0aW9uKHkpe3JldHVybiBQcm9taXNlLnJlc29sdmUoeSkudGhlbihnLGwpfX1mdW5jdGlvbiBvKGcseSl7aVtnXSYmKHJbZ109ZnVuY3Rpb24odil7cmV0dXJuIG5ldyBQcm9taXNlKGZ1bmN0aW9uKG0seCl7cy5wdXNoKFtnLHYsbSx4XSk+MXx8ZChnLHYpfSl9LHkmJihyW2ddPXkocltnXSkpKX1mdW5jdGlvbiBkKGcseSl7dHJ5e2MoaVtnXSh5KSl9Y2F0Y2godil7ZihzWzBdWzNdLHYpfX1mdW5jdGlvbiBjKGcpe2cudmFsdWUgaW5zdGFuY2VvZiBhcz9Qcm9taXNlLnJlc29sdmUoZy52YWx1ZS52KS50aGVuKGgsbCk6ZihzWzBdWzJdLGcpfWZ1bmN0aW9uIGgoZyl7ZCgibmV4dCIsZyl9ZnVuY3Rpb24gbChnKXtkKCJ0aHJvdyIsZyl9ZnVuY3Rpb24gZihnLHkpe2coeSkscy5zaGlmdCgpLHMubGVuZ3RoJiZkKHNbMF1bMF0sc1swXVsxXSl9fWZ1bmN0aW9uIHR6dCh0KXt2YXIgZSxhO3JldHVybiBlPXt9LGkoIm5leHQiKSxpKCJ0aHJvdyIsZnVuY3Rpb24ocil7dGhyb3cgcn0pLGkoInJldHVybiIpLGVbU3ltYm9sLml0ZXJhdG9yXT1mdW5jdGlvbigpe3JldHVybiB0aGlzfSxlO2Z1bmN0aW9uIGkocixzKXtlW3JdPXRbcl0/ZnVuY3Rpb24obil7cmV0dXJuKGE9IWEpP3t2YWx1ZTphcyh0W3JdKG4pKSxkb25lOiExfTpzP3Mobik6bn06c319ZnVuY3Rpb24gVXcodCl7aWYoIVN5bWJvbC5hc3luY0l0ZXJhdG9yKXRocm93IG5ldyBUeXBlRXJyb3IoIlN5bWJvbC5hc3luY0l0ZXJhdG9yIGlzIG5vdCBkZWZpbmVkLiIpO3ZhciBlPXRbU3ltYm9sLmFzeW5jSXRlcmF0b3JdLGE7cmV0dXJuIGU/ZS5jYWxsKHQpOih0PXR5cGVvZiBOMj09ImZ1bmN0aW9uIj9OMih0KTp0W1N5bWJvbC5pdGVyYXRvcl0oKSxhPXt9LGkoIm5leHQiKSxpKCJ0aHJvdyIpLGkoInJldHVybiIpLGFbU3ltYm9sLmFzeW5jSXRlcmF0b3JdPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXN9LGEpO2Z1bmN0aW9uIGkocyl7YVtzXT10W3NdJiZmdW5jdGlvbihuKXtyZXR1cm4gbmV3IFByb21pc2UoZnVuY3Rpb24obyxkKXtuPXRbc10obikscihvLGQsbi5kb25lLG4udmFsdWUpfSl9fWZ1bmN0aW9uIHIocyxuLG8sZCl7UHJvbWlzZS5yZXNvbHZlKGQpLnRoZW4oZnVuY3Rpb24oYyl7cyh7dmFsdWU6Yyxkb25lOm99KX0sbil9fWZ1bmN0aW9uIGF6dCh0LGUpe3JldHVybiBPYmplY3QuZGVmaW5lUHJvcGVydHk/T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsInJhdyIse3ZhbHVlOmV9KTp0LnJhdz1lLHR9ZnVuY3Rpb24gcnp0KHQpe2lmKHQmJnQuX19lc01vZHVsZSlyZXR1cm4gdDt2YXIgZT17fTtpZih0IT1udWxsKWZvcih2YXIgYT1xdyh0KSxpPTA7aTxhLmxlbmd0aDtpKyspYVtpXSE9PSJkZWZhdWx0IiYmSHcoZSx0LGFbaV0pO3JldHVybiBpenQoZSx0KSxlfWZ1bmN0aW9uIHN6dCh0KXtyZXR1cm4gdCYmdC5fX2VzTW9kdWxlP3Q6e2RlZmF1bHQ6dH19ZnVuY3Rpb24gbnp0KHQsZSxhLGkpe2lmKGE9PT0iYSImJiFpKXRocm93IG5ldyBUeXBlRXJyb3IoIlByaXZhdGUgYWNjZXNzb3Igd2FzIGRlZmluZWQgd2l0aG91dCBhIGdldHRlciIpO2lmKHR5cGVvZiBlPT0iZnVuY3Rpb24iP3QhPT1lfHwhaTohZS5oYXModCkpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IHJlYWQgcHJpdmF0ZSBtZW1iZXIgZnJvbSBhbiBvYmplY3Qgd2hvc2UgY2xhc3MgZGlkIG5vdCBkZWNsYXJlIGl0Iik7cmV0dXJuIGE9PT0ibSI/aTphPT09ImEiP2kuY2FsbCh0KTppP2kudmFsdWU6ZS5nZXQodCl9ZnVuY3Rpb24gb3p0KHQsZSxhLGkscil7aWYoaT09PSJtIil0aHJvdyBuZXcgVHlwZUVycm9yKCJQcml2YXRlIG1ldGhvZCBpcyBub3Qgd3JpdGFibGUiKTtpZihpPT09ImEiJiYhcil0aHJvdyBuZXcgVHlwZUVycm9yKCJQcml2YXRlIGFjY2Vzc29yIHdhcyBkZWZpbmVkIHdpdGhvdXQgYSBzZXR0ZXIiKTtpZih0eXBlb2YgZT09ImZ1bmN0aW9uIj90IT09ZXx8IXI6IWUuaGFzKHQpKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCB3cml0ZSBwcml2YXRlIG1lbWJlciB0byBhbiBvYmplY3Qgd2hvc2UgY2xhc3MgZGlkIG5vdCBkZWNsYXJlIGl0Iik7cmV0dXJuIGk9PT0iYSI/ci5jYWxsKHQsYSk6cj9yLnZhbHVlPWE6ZS5zZXQodCxhKSxhfWZ1bmN0aW9uIGx6dCh0LGUpe2lmKGU9PT1udWxsfHx0eXBlb2YgZSE9Im9iamVjdCImJnR5cGVvZiBlIT0iZnVuY3Rpb24iKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCB1c2UgJ2luJyBvcGVyYXRvciBvbiBub24tb2JqZWN0Iik7cmV0dXJuIHR5cGVvZiB0PT0iZnVuY3Rpb24iP2U9PT10OnQuaGFzKGUpfWZ1bmN0aW9uIGN6dCh0LGUsYSl7aWYoZSE9bnVsbCl7aWYodHlwZW9mIGUhPSJvYmplY3QiJiZ0eXBlb2YgZSE9ImZ1bmN0aW9uIil0aHJvdyBuZXcgVHlwZUVycm9yKCJPYmplY3QgZXhwZWN0ZWQuIik7dmFyIGkscjtpZihhKXtpZighU3ltYm9sLmFzeW5jRGlzcG9zZSl0aHJvdyBuZXcgVHlwZUVycm9yKCJTeW1ib2wuYXN5bmNEaXNwb3NlIGlzIG5vdCBkZWZpbmVkLiIpO2k9ZVtTeW1ib2wuYXN5bmNEaXNwb3NlXX1pZihpPT09dm9pZCAwKXtpZighU3ltYm9sLmRpc3Bvc2UpdGhyb3cgbmV3IFR5cGVFcnJvcigiU3ltYm9sLmRpc3Bvc2UgaXMgbm90IGRlZmluZWQuIik7aT1lW1N5bWJvbC5kaXNwb3NlXSxhJiYocj1pKX1pZih0eXBlb2YgaSE9ImZ1bmN0aW9uIil0aHJvdyBuZXcgVHlwZUVycm9yKCJPYmplY3Qgbm90IGRpc3Bvc2FibGUuIik7ciYmKGk9ZnVuY3Rpb24oKXt0cnl7ci5jYWxsKHRoaXMpfWNhdGNoKHMpe3JldHVybiBQcm9taXNlLnJlamVjdChzKX19KSx0LnN0YWNrLnB1c2goe3ZhbHVlOmUsZGlzcG9zZTppLGFzeW5jOmF9KX1lbHNlIGEmJnQuc3RhY2sucHVzaCh7YXN5bmM6ITB9KTtyZXR1cm4gZX1mdW5jdGlvbiBoenQodCl7ZnVuY3Rpb24gZShzKXt0LmVycm9yPXQuaGFzRXJyb3I/bmV3IGR6dChzLHQuZXJyb3IsIkFuIGVycm9yIHdhcyBzdXBwcmVzc2VkIGR1cmluZyBkaXNwb3NhbC4iKTpzLHQuaGFzRXJyb3I9ITB9dmFyIGEsaT0wO2Z1bmN0aW9uIHIoKXtmb3IoO2E9dC5zdGFjay5wb3AoKTspdHJ5e2lmKCFhLmFzeW5jJiZpPT09MSlyZXR1cm4gaT0wLHQuc3RhY2sucHVzaChhKSxQcm9taXNlLnJlc29sdmUoKS50aGVuKHIpO2lmKGEuZGlzcG9zZSl7dmFyIHM9YS5kaXNwb3NlLmNhbGwoYS52YWx1ZSk7aWYoYS5hc3luYylyZXR1cm4gaXw9MixQcm9taXNlLnJlc29sdmUocykudGhlbihyLGZ1bmN0aW9uKG4pe3JldHVybiBlKG4pLHIoKX0pfWVsc2UgaXw9MX1jYXRjaChuKXtlKG4pfWlmKGk9PT0xKXJldHVybiB0Lmhhc0Vycm9yP1Byb21pc2UucmVqZWN0KHQuZXJyb3IpOlByb21pc2UucmVzb2x2ZSgpO2lmKHQuaGFzRXJyb3IpdGhyb3cgdC5lcnJvcn1yZXR1cm4gcigpfWZ1bmN0aW9uIHB6dCh0LGUpe3JldHVybiB0eXBlb2YgdD09InN0cmluZyImJi9eXC5cLj9cLy8udGVzdCh0KT90LnJlcGxhY2UoL1wuKHRzeCkkfCgoPzpcLmQpPykoKD86XC5bXi4vXSs/KT8pXC4oW2NtXT8pdHMkL2ksZnVuY3Rpb24oYSxpLHIscyxuKXtyZXR1cm4gaT9lPyIuanN4IjoiLmpzIjpyJiYoIXN8fCFuKT9hOnIrcysiLiIrbi50b0xvd2VyQ2FzZSgpKyJqcyJ9KTp0fXZhciBSdyxCdyxIdyxpenQscXcsZHp0LGtXdCxpMT1iKCgpPT57Unc9ZnVuY3Rpb24odCxlKXtyZXR1cm4gUnc9T2JqZWN0LnNldFByb3RvdHlwZU9mfHx7X19wcm90b19fOltdfWluc3RhbmNlb2YgQXJyYXkmJmZ1bmN0aW9uKGEsaSl7YS5fX3Byb3RvX189aX18fGZ1bmN0aW9uKGEsaSl7Zm9yKHZhciByIGluIGkpT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKGkscikmJihhW3JdPWlbcl0pfSxSdyh0LGUpfTtCdz1mdW5jdGlvbigpe3JldHVybiBCdz1PYmplY3QuYXNzaWdufHxmdW5jdGlvbihlKXtmb3IodmFyIGEsaT0xLHI9YXJndW1lbnRzLmxlbmd0aDtpPHI7aSsrKXthPWFyZ3VtZW50c1tpXTtmb3IodmFyIHMgaW4gYSlPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoYSxzKSYmKGVbc109YVtzXSl9cmV0dXJuIGV9LEJ3LmFwcGx5KHRoaXMsYXJndW1lbnRzKX07SHc9T2JqZWN0LmNyZWF0ZT8oZnVuY3Rpb24odCxlLGEsaSl7aT09PXZvaWQgMCYmKGk9YSk7dmFyIHI9T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihlLGEpOyghcnx8KCJnZXQiaW4gcj8hZS5fX2VzTW9kdWxlOnIud3JpdGFibGV8fHIuY29uZmlndXJhYmxlKSkmJihyPXtlbnVtZXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiBlW2FdfX0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LGkscil9KTooZnVuY3Rpb24odCxlLGEsaSl7aT09PXZvaWQgMCYmKGk9YSksdFtpXT1lW2FdfSk7aXp0PU9iamVjdC5jcmVhdGU/KGZ1bmN0aW9uKHQsZSl7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsImRlZmF1bHQiLHtlbnVtZXJhYmxlOiEwLHZhbHVlOmV9KX0pOmZ1bmN0aW9uKHQsZSl7dC5kZWZhdWx0PWV9LHF3PWZ1bmN0aW9uKHQpe3JldHVybiBxdz1PYmplY3QuZ2V0T3duUHJvcGVydHlOYW1lc3x8ZnVuY3Rpb24oZSl7dmFyIGE9W107Zm9yKHZhciBpIGluIGUpT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKGUsaSkmJihhW2EubGVuZ3RoXT1pKTtyZXR1cm4gYX0scXcodCl9O2R6dD10eXBlb2YgU3VwcHJlc3NlZEVycm9yPT0iZnVuY3Rpb24iP1N1cHByZXNzZWRFcnJvcjpmdW5jdGlvbih0LGUsYSl7dmFyIGk9bmV3IEVycm9yKGEpO3JldHVybiBpLm5hbWU9IlN1cHByZXNzZWRFcnJvciIsaS5lcnJvcj10LGkuc3VwcHJlc3NlZD1lLGl9O2tXdD17X19leHRlbmRzOlN0LF9fYXNzaWduOkJ3LF9fcmVzdDpqTXQsX19kZWNvcmF0ZTpVTXQsX19wYXJhbTpXTXQsX19lc0RlY29yYXRlOkdNdCxfX3J1bkluaXRpYWxpemVyczpZTXQsX19wcm9wS2V5OlpNdCxfX3NldEZ1bmN0aW9uTmFtZTpYTXQsX19tZXRhZGF0YTpLTXQsX19hd2FpdGVyOlZ3LF9fZ2VuZXJhdG9yOmRjLF9fY3JlYXRlQmluZGluZzpIdyxfX2V4cG9ydFN0YXI6UU10LF9fdmFsdWVzOk4yLF9fcmVhZDpXMSxfX3NwcmVhZDpKTXQsX19zcHJlYWRBcnJheXM6ZXp0LF9fc3ByZWFkQXJyYXk6eDIsX19hd2FpdDphcyxfX2FzeW5jR2VuZXJhdG9yOmp3LF9fYXN5bmNEZWxlZ2F0b3I6dHp0LF9fYXN5bmNWYWx1ZXM6VXcsX19tYWtlVGVtcGxhdGVPYmplY3Q6YXp0LF9faW1wb3J0U3RhcjpyenQsX19pbXBvcnREZWZhdWx0OnN6dCxfX2NsYXNzUHJpdmF0ZUZpZWxkR2V0Om56dCxfX2NsYXNzUHJpdmF0ZUZpZWxkU2V0Om96dCxfX2NsYXNzUHJpdmF0ZUZpZWxkSW46bHp0LF9fYWRkRGlzcG9zYWJsZVJlc291cmNlOmN6dCxfX2Rpc3Bvc2VSZXNvdXJjZXM6aHp0LF9fcmV3cml0ZVJlbGF0aXZlSW1wb3J0RXh0ZW5zaW9uOnB6dH19KTtmdW5jdGlvbiBwdCh0KXtyZXR1cm4gdHlwZW9mIHQ9PSJmdW5jdGlvbiJ9dmFyIGQyPWIoKCk9Pnt9KTtmdW5jdGlvbiB6YSh0KXt2YXIgZT1mdW5jdGlvbihpKXtFcnJvci5jYWxsKGkpLGkuc3RhY2s9bmV3IEVycm9yKCkuc3RhY2t9LGE9dChlKTtyZXR1cm4gYS5wcm90b3R5cGU9T2JqZWN0LmNyZWF0ZShFcnJvci5wcm90b3R5cGUpLGEucHJvdG90eXBlLmNvbnN0cnVjdG9yPWEsYX12YXIgbm49YigoKT0+e30pO3ZhciBoYyxXdz1iKCgpPT57bm4oKTtoYz16YShmdW5jdGlvbih0KXtyZXR1cm4gZnVuY3Rpb24oYSl7dCh0aGlzKSx0aGlzLm1lc3NhZ2U9YT9hLmxlbmd0aCtgIGVycm9ycyBvY2N1cnJlZCBkdXJpbmcgdW5zdWJzY3JpcHRpb246CmArYS5tYXAoZnVuY3Rpb24oaSxyKXtyZXR1cm4gcisxKyIpICIraS50b1N0cmluZygpfSkuam9pbihgCiAgYCk6IiIsdGhpcy5uYW1lPSJVbnN1YnNjcmlwdGlvbkVycm9yIix0aGlzLmVycm9ycz1hfX0pfSk7ZnVuY3Rpb24gTGkodCxlKXtpZih0KXt2YXIgYT10LmluZGV4T2YoZSk7MDw9YSYmdC5zcGxpY2UoYSwxKX19dmFyIGs0PWIoKCk9Pnt9KTtmdW5jdGlvbiBDZCh0KXtyZXR1cm4gdCBpbnN0YW5jZW9mIE8xfHx0JiYiY2xvc2VkImluIHQmJnB0KHQucmVtb3ZlKSYmcHQodC5hZGQpJiZwdCh0LnVuc3Vic2NyaWJlKX1mdW5jdGlvbiBCVSh0KXtwdCh0KT90KCk6dC51bnN1YnNjcmliZSgpfXZhciBPMSxHdyxocj1iKCgpPT57aTEoKTtkMigpO1d3KCk7azQoKTtPMT0oZnVuY3Rpb24oKXtmdW5jdGlvbiB0KGUpe3RoaXMuaW5pdGlhbFRlYXJkb3duPWUsdGhpcy5jbG9zZWQ9ITEsdGhpcy5fcGFyZW50YWdlPW51bGwsdGhpcy5fZmluYWxpemVycz1udWxsfXJldHVybiB0LnByb3RvdHlwZS51bnN1YnNjcmliZT1mdW5jdGlvbigpe3ZhciBlLGEsaSxyLHM7aWYoIXRoaXMuY2xvc2VkKXt0aGlzLmNsb3NlZD0hMDt2YXIgbj10aGlzLl9wYXJlbnRhZ2U7aWYobilpZih0aGlzLl9wYXJlbnRhZ2U9bnVsbCxBcnJheS5pc0FycmF5KG4pKXRyeXtmb3IodmFyIG89TjIobiksZD1vLm5leHQoKTshZC5kb25lO2Q9by5uZXh0KCkpe3ZhciBjPWQudmFsdWU7Yy5yZW1vdmUodGhpcyl9fWNhdGNoKHYpe2U9e2Vycm9yOnZ9fWZpbmFsbHl7dHJ5e2QmJiFkLmRvbmUmJihhPW8ucmV0dXJuKSYmYS5jYWxsKG8pfWZpbmFsbHl7aWYoZSl0aHJvdyBlLmVycm9yfX1lbHNlIG4ucmVtb3ZlKHRoaXMpO3ZhciBoPXRoaXMuaW5pdGlhbFRlYXJkb3duO2lmKHB0KGgpKXRyeXtoKCl9Y2F0Y2godil7cz12IGluc3RhbmNlb2YgaGM/di5lcnJvcnM6W3ZdfXZhciBsPXRoaXMuX2ZpbmFsaXplcnM7aWYobCl7dGhpcy5fZmluYWxpemVycz1udWxsO3RyeXtmb3IodmFyIGY9TjIobCksZz1mLm5leHQoKTshZy5kb25lO2c9Zi5uZXh0KCkpe3ZhciB5PWcudmFsdWU7dHJ5e0JVKHkpfWNhdGNoKHYpe3M9cz8/W10sdiBpbnN0YW5jZW9mIGhjP3M9eDIoeDIoW10sVzEocykpLFcxKHYuZXJyb3JzKSk6cy5wdXNoKHYpfX19Y2F0Y2godil7aT17ZXJyb3I6dn19ZmluYWxseXt0cnl7ZyYmIWcuZG9uZSYmKHI9Zi5yZXR1cm4pJiZyLmNhbGwoZil9ZmluYWxseXtpZihpKXRocm93IGkuZXJyb3J9fX1pZihzKXRocm93IG5ldyBoYyhzKX19LHQucHJvdG90eXBlLmFkZD1mdW5jdGlvbihlKXt2YXIgYTtpZihlJiZlIT09dGhpcylpZih0aGlzLmNsb3NlZClCVShlKTtlbHNle2lmKGUgaW5zdGFuY2VvZiB0KXtpZihlLmNsb3NlZHx8ZS5faGFzUGFyZW50KHRoaXMpKXJldHVybjtlLl9hZGRQYXJlbnQodGhpcyl9KHRoaXMuX2ZpbmFsaXplcnM9KGE9dGhpcy5fZmluYWxpemVycykhPT1udWxsJiZhIT09dm9pZCAwP2E6W10pLnB1c2goZSl9fSx0LnByb3RvdHlwZS5faGFzUGFyZW50PWZ1bmN0aW9uKGUpe3ZhciBhPXRoaXMuX3BhcmVudGFnZTtyZXR1cm4gYT09PWV8fEFycmF5LmlzQXJyYXkoYSkmJmEuaW5jbHVkZXMoZSl9LHQucHJvdG90eXBlLl9hZGRQYXJlbnQ9ZnVuY3Rpb24oZSl7dmFyIGE9dGhpcy5fcGFyZW50YWdlO3RoaXMuX3BhcmVudGFnZT1BcnJheS5pc0FycmF5KGEpPyhhLnB1c2goZSksYSk6YT9bYSxlXTplfSx0LnByb3RvdHlwZS5fcmVtb3ZlUGFyZW50PWZ1bmN0aW9uKGUpe3ZhciBhPXRoaXMuX3BhcmVudGFnZTthPT09ZT90aGlzLl9wYXJlbnRhZ2U9bnVsbDpBcnJheS5pc0FycmF5KGEpJiZMaShhLGUpfSx0LnByb3RvdHlwZS5yZW1vdmU9ZnVuY3Rpb24oZSl7dmFyIGE9dGhpcy5fZmluYWxpemVyczthJiZMaShhLGUpLGUgaW5zdGFuY2VvZiB0JiZlLl9yZW1vdmVQYXJlbnQodGhpcyl9LHQuRU1QVFk9KGZ1bmN0aW9uKCl7dmFyIGU9bmV3IHQ7cmV0dXJuIGUuY2xvc2VkPSEwLGV9KSgpLHR9KSgpLEd3PU8xLkVNUFRZfSk7dmFyIHRpLFM0PWIoKCk9Pnt0aT17b25VbmhhbmRsZWRFcnJvcjpudWxsLG9uU3RvcHBlZE5vdGlmaWNhdGlvbjpudWxsLFByb21pc2U6dm9pZCAwLHVzZURlcHJlY2F0ZWRTeW5jaHJvbm91c0Vycm9ySGFuZGxpbmc6ITEsdXNlRGVwcmVjYXRlZE5leHRDb250ZXh0OiExfX0pO3ZhciBDNCxZdz1iKCgpPT57aTEoKTtDND17c2V0VGltZW91dDpmdW5jdGlvbih0LGUpe2Zvcih2YXIgYT1bXSxpPTI7aTxhcmd1bWVudHMubGVuZ3RoO2krKylhW2ktMl09YXJndW1lbnRzW2ldO3ZhciByPUM0LmRlbGVnYXRlO3JldHVybiByPy5zZXRUaW1lb3V0P3Iuc2V0VGltZW91dC5hcHBseShyLHgyKFt0LGVdLFcxKGEpKSk6c2V0VGltZW91dC5hcHBseSh2b2lkIDAseDIoW3QsZV0sVzEoYSkpKX0sY2xlYXJUaW1lb3V0OmZ1bmN0aW9uKHQpe3ZhciBlPUM0LmRlbGVnYXRlO3JldHVybihlPy5jbGVhclRpbWVvdXR8fGNsZWFyVGltZW91dCkodCl9LGRlbGVnYXRlOnZvaWQgMH19KTtmdW5jdGlvbiBfZCh0KXtDNC5zZXRUaW1lb3V0KGZ1bmN0aW9uKCl7dmFyIGU9dGkub25VbmhhbmRsZWRFcnJvcjtpZihlKWUodCk7ZWxzZSB0aHJvdyB0fSl9dmFyIFp3PWIoKCk9PntTNCgpO1l3KCl9KTtmdW5jdGlvbiBhaSgpe312YXIgQW89YigoKT0+e30pO2Z1bmN0aW9uIHFVKHQpe3JldHVybiBYdygiRSIsdm9pZCAwLHQpfWZ1bmN0aW9uIFZVKHQpe3JldHVybiBYdygiTiIsdCx2b2lkIDApfWZ1bmN0aW9uIFh3KHQsZSxhKXtyZXR1cm57a2luZDp0LHZhbHVlOmUsZXJyb3I6YX19dmFyIEhVLGpVPWIoKCk9PntIVT0oZnVuY3Rpb24oKXtyZXR1cm4gWHcoIkMiLHZvaWQgMCx2b2lkIDApfSkoKX0pO2Z1bmN0aW9uIF80KHQpe2lmKHRpLnVzZURlcHJlY2F0ZWRTeW5jaHJvbm91c0Vycm9ySGFuZGxpbmcpe3ZhciBlPSFEbztpZihlJiYoRG89e2Vycm9yVGhyb3duOiExLGVycm9yOm51bGx9KSx0KCksZSl7dmFyIGE9RG8saT1hLmVycm9yVGhyb3duLHI9YS5lcnJvcjtpZihEbz1udWxsLGkpdGhyb3cgcn19ZWxzZSB0KCl9ZnVuY3Rpb24gVVUodCl7dGkudXNlRGVwcmVjYXRlZFN5bmNocm9ub3VzRXJyb3JIYW5kbGluZyYmRG8mJihEby5lcnJvclRocm93bj0hMCxEby5lcnJvcj10KX12YXIgRG8sVGQ9YigoKT0+e1M0KCk7RG89bnVsbH0pO2Z1bmN0aW9uIEt3KHQsZSl7cmV0dXJuIHV6dC5jYWxsKHQsZSl9ZnVuY3Rpb24gTGQodCl7dGkudXNlRGVwcmVjYXRlZFN5bmNocm9ub3VzRXJyb3JIYW5kbGluZz9VVSh0KTpfZCh0KX1mdW5jdGlvbiBtenQodCl7dGhyb3cgdH1mdW5jdGlvbiBRdyh0LGUpe3ZhciBhPXRpLm9uU3RvcHBlZE5vdGlmaWNhdGlvbjthJiZDNC5zZXRUaW1lb3V0KGZ1bmN0aW9uKCl7cmV0dXJuIGEodCxlKX0pfXZhciBFbyx1enQsZnp0LHBjLGd6dCwkZD1iKCgpPT57aTEoKTtkMigpO2hyKCk7UzQoKTtadygpO0FvKCk7alUoKTtZdygpO1RkKCk7RW89KGZ1bmN0aW9uKHQpe1N0KGUsdCk7ZnVuY3Rpb24gZShhKXt2YXIgaT10LmNhbGwodGhpcyl8fHRoaXM7cmV0dXJuIGkuaXNTdG9wcGVkPSExLGE/KGkuZGVzdGluYXRpb249YSxDZChhKSYmYS5hZGQoaSkpOmkuZGVzdGluYXRpb249Z3p0LGl9cmV0dXJuIGUuY3JlYXRlPWZ1bmN0aW9uKGEsaSxyKXtyZXR1cm4gbmV3IHBjKGEsaSxyKX0sZS5wcm90b3R5cGUubmV4dD1mdW5jdGlvbihhKXt0aGlzLmlzU3RvcHBlZD9RdyhWVShhKSx0aGlzKTp0aGlzLl9uZXh0KGEpfSxlLnByb3RvdHlwZS5lcnJvcj1mdW5jdGlvbihhKXt0aGlzLmlzU3RvcHBlZD9RdyhxVShhKSx0aGlzKToodGhpcy5pc1N0b3BwZWQ9ITAsdGhpcy5fZXJyb3IoYSkpfSxlLnByb3RvdHlwZS5jb21wbGV0ZT1mdW5jdGlvbigpe3RoaXMuaXNTdG9wcGVkP1F3KEhVLHRoaXMpOih0aGlzLmlzU3RvcHBlZD0hMCx0aGlzLl9jb21wbGV0ZSgpKX0sZS5wcm90b3R5cGUudW5zdWJzY3JpYmU9ZnVuY3Rpb24oKXt0aGlzLmNsb3NlZHx8KHRoaXMuaXNTdG9wcGVkPSEwLHQucHJvdG90eXBlLnVuc3Vic2NyaWJlLmNhbGwodGhpcyksdGhpcy5kZXN0aW5hdGlvbj1udWxsKX0sZS5wcm90b3R5cGUuX25leHQ9ZnVuY3Rpb24oYSl7dGhpcy5kZXN0aW5hdGlvbi5uZXh0KGEpfSxlLnByb3RvdHlwZS5fZXJyb3I9ZnVuY3Rpb24oYSl7dHJ5e3RoaXMuZGVzdGluYXRpb24uZXJyb3IoYSl9ZmluYWxseXt0aGlzLnVuc3Vic2NyaWJlKCl9fSxlLnByb3RvdHlwZS5fY29tcGxldGU9ZnVuY3Rpb24oKXt0cnl7dGhpcy5kZXN0aW5hdGlvbi5jb21wbGV0ZSgpfWZpbmFsbHl7dGhpcy51bnN1YnNjcmliZSgpfX0sZX0pKE8xKSx1enQ9RnVuY3Rpb24ucHJvdG90eXBlLmJpbmQ7Znp0PShmdW5jdGlvbigpe2Z1bmN0aW9uIHQoZSl7dGhpcy5wYXJ0aWFsT2JzZXJ2ZXI9ZX1yZXR1cm4gdC5wcm90b3R5cGUubmV4dD1mdW5jdGlvbihlKXt2YXIgYT10aGlzLnBhcnRpYWxPYnNlcnZlcjtpZihhLm5leHQpdHJ5e2EubmV4dChlKX1jYXRjaChpKXtMZChpKX19LHQucHJvdG90eXBlLmVycm9yPWZ1bmN0aW9uKGUpe3ZhciBhPXRoaXMucGFydGlhbE9ic2VydmVyO2lmKGEuZXJyb3IpdHJ5e2EuZXJyb3IoZSl9Y2F0Y2goaSl7TGQoaSl9ZWxzZSBMZChlKX0sdC5wcm90b3R5cGUuY29tcGxldGU9ZnVuY3Rpb24oKXt2YXIgZT10aGlzLnBhcnRpYWxPYnNlcnZlcjtpZihlLmNvbXBsZXRlKXRyeXtlLmNvbXBsZXRlKCl9Y2F0Y2goYSl7TGQoYSl9fSx0fSkoKSxwYz0oZnVuY3Rpb24odCl7U3QoZSx0KTtmdW5jdGlvbiBlKGEsaSxyKXt2YXIgcz10LmNhbGwodGhpcyl8fHRoaXMsbjtpZihwdChhKXx8IWEpbj17bmV4dDphPz92b2lkIDAsZXJyb3I6aT8/dm9pZCAwLGNvbXBsZXRlOnI/P3ZvaWQgMH07ZWxzZXt2YXIgbztzJiZ0aS51c2VEZXByZWNhdGVkTmV4dENvbnRleHQ/KG89T2JqZWN0LmNyZWF0ZShhKSxvLnVuc3Vic2NyaWJlPWZ1bmN0aW9uKCl7cmV0dXJuIHMudW5zdWJzY3JpYmUoKX0sbj17bmV4dDphLm5leHQmJkt3KGEubmV4dCxvKSxlcnJvcjphLmVycm9yJiZLdyhhLmVycm9yLG8pLGNvbXBsZXRlOmEuY29tcGxldGUmJkt3KGEuY29tcGxldGUsbyl9KTpuPWF9cmV0dXJuIHMuZGVzdGluYXRpb249bmV3IGZ6dChuKSxzfXJldHVybiBlfSkoRW8pO2d6dD17Y2xvc2VkOiEwLG5leHQ6YWksZXJyb3I6bXp0LGNvbXBsZXRlOmFpfX0pO3ZhciBQbyx1Yz1iKCgpPT57UG89KGZ1bmN0aW9uKCl7cmV0dXJuIHR5cGVvZiBTeW1ib2w9PSJmdW5jdGlvbiImJlN5bWJvbC5vYnNlcnZhYmxlfHwiQEBvYnNlcnZhYmxlIn0pKCl9KTtmdW5jdGlvbiBmYyh0KXtyZXR1cm4gdH12YXIgQWQ9YigoKT0+e30pO2Z1bmN0aW9uIGJ6dCgpe2Zvcih2YXIgdD1bXSxlPTA7ZTxhcmd1bWVudHMubGVuZ3RoO2UrKyl0W2VdPWFyZ3VtZW50c1tlXTtyZXR1cm4gSncodCl9ZnVuY3Rpb24gSncodCl7cmV0dXJuIHQubGVuZ3RoPT09MD9mYzp0Lmxlbmd0aD09PTE/dFswXTpmdW5jdGlvbihhKXtyZXR1cm4gdC5yZWR1Y2UoZnVuY3Rpb24oaSxyKXtyZXR1cm4gcihpKX0sYSl9fXZhciBlTT1iKCgpPT57QWQoKX0pO2Z1bmN0aW9uIFdVKHQpe3ZhciBlO3JldHVybihlPXQ/P3RpLlByb21pc2UpIT09bnVsbCYmZSE9PXZvaWQgMD9lOlByb21pc2V9ZnVuY3Rpb24gdnp0KHQpe3JldHVybiB0JiZwdCh0Lm5leHQpJiZwdCh0LmVycm9yKSYmcHQodC5jb21wbGV0ZSl9ZnVuY3Rpb24geXp0KHQpe3JldHVybiB0JiZ0IGluc3RhbmNlb2YgRW98fHZ6dCh0KSYmQ2QodCl9dmFyIHd0LGthPWIoKCk9PnskZCgpO2hyKCk7dWMoKTtlTSgpO1M0KCk7ZDIoKTtUZCgpO3d0PShmdW5jdGlvbigpe2Z1bmN0aW9uIHQoZSl7ZSYmKHRoaXMuX3N1YnNjcmliZT1lKX1yZXR1cm4gdC5wcm90b3R5cGUubGlmdD1mdW5jdGlvbihlKXt2YXIgYT1uZXcgdDtyZXR1cm4gYS5zb3VyY2U9dGhpcyxhLm9wZXJhdG9yPWUsYX0sdC5wcm90b3R5cGUuc3Vic2NyaWJlPWZ1bmN0aW9uKGUsYSxpKXt2YXIgcj10aGlzLHM9eXp0KGUpP2U6bmV3IHBjKGUsYSxpKTtyZXR1cm4gXzQoZnVuY3Rpb24oKXt2YXIgbj1yLG89bi5vcGVyYXRvcixkPW4uc291cmNlO3MuYWRkKG8/by5jYWxsKHMsZCk6ZD9yLl9zdWJzY3JpYmUocyk6ci5fdHJ5U3Vic2NyaWJlKHMpKX0pLHN9LHQucHJvdG90eXBlLl90cnlTdWJzY3JpYmU9ZnVuY3Rpb24oZSl7dHJ5e3JldHVybiB0aGlzLl9zdWJzY3JpYmUoZSl9Y2F0Y2goYSl7ZS5lcnJvcihhKX19LHQucHJvdG90eXBlLmZvckVhY2g9ZnVuY3Rpb24oZSxhKXt2YXIgaT10aGlzO3JldHVybiBhPVdVKGEpLG5ldyBhKGZ1bmN0aW9uKHIscyl7dmFyIG49bmV3IHBjKHtuZXh0OmZ1bmN0aW9uKG8pe3RyeXtlKG8pfWNhdGNoKGQpe3MoZCksbi51bnN1YnNjcmliZSgpfX0sZXJyb3I6cyxjb21wbGV0ZTpyfSk7aS5zdWJzY3JpYmUobil9KX0sdC5wcm90b3R5cGUuX3N1YnNjcmliZT1mdW5jdGlvbihlKXt2YXIgYTtyZXR1cm4oYT10aGlzLnNvdXJjZSk9PT1udWxsfHxhPT09dm9pZCAwP3ZvaWQgMDphLnN1YnNjcmliZShlKX0sdC5wcm90b3R5cGVbUG9dPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXN9LHQucHJvdG90eXBlLnBpcGU9ZnVuY3Rpb24oKXtmb3IodmFyIGU9W10sYT0wO2E8YXJndW1lbnRzLmxlbmd0aDthKyspZVthXT1hcmd1bWVudHNbYV07cmV0dXJuIEp3KGUpKHRoaXMpfSx0LnByb3RvdHlwZS50b1Byb21pc2U9ZnVuY3Rpb24oZSl7dmFyIGE9dGhpcztyZXR1cm4gZT1XVShlKSxuZXcgZShmdW5jdGlvbihpLHIpe3ZhciBzO2Euc3Vic2NyaWJlKGZ1bmN0aW9uKG4pe3JldHVybiBzPW59LGZ1bmN0aW9uKG4pe3JldHVybiByKG4pfSxmdW5jdGlvbigpe3JldHVybiBpKHMpfSl9KX0sdC5jcmVhdGU9ZnVuY3Rpb24oZSl7cmV0dXJuIG5ldyB0KGUpfSx0fSkoKX0pO2Z1bmN0aW9uIHRNKHQpe3JldHVybiBwdCh0Py5saWZ0KX1mdW5jdGlvbiBYdCh0KXtyZXR1cm4gZnVuY3Rpb24oZSl7aWYodE0oZSkpcmV0dXJuIGUubGlmdChmdW5jdGlvbihhKXt0cnl7cmV0dXJuIHQoYSx0aGlzKX1jYXRjaChpKXt0aGlzLmVycm9yKGkpfX0pO3Rocm93IG5ldyBUeXBlRXJyb3IoIlVuYWJsZSB0byBsaWZ0IHVua25vd24gT2JzZXJ2YWJsZSB0eXBlIil9fXZhciB3Mj1iKCgpPT57ZDIoKX0pO2Z1bmN0aW9uIFZ0KHQsZSxhLGkscil7cmV0dXJuIG5ldyBHVSh0LGUsYSxpLHIpfXZhciBHVSxzYT1iKCgpPT57aTEoKTskZCgpO0dVPShmdW5jdGlvbih0KXtTdChlLHQpO2Z1bmN0aW9uIGUoYSxpLHIscyxuLG8pe3ZhciBkPXQuY2FsbCh0aGlzLGEpfHx0aGlzO3JldHVybiBkLm9uRmluYWxpemU9bixkLnNob3VsZFVuc3Vic2NyaWJlPW8sZC5fbmV4dD1pP2Z1bmN0aW9uKGMpe3RyeXtpKGMpfWNhdGNoKGgpe2EuZXJyb3IoaCl9fTp0LnByb3RvdHlwZS5fbmV4dCxkLl9lcnJvcj1zP2Z1bmN0aW9uKGMpe3RyeXtzKGMpfWNhdGNoKGgpe2EuZXJyb3IoaCl9ZmluYWxseXt0aGlzLnVuc3Vic2NyaWJlKCl9fTp0LnByb3RvdHlwZS5fZXJyb3IsZC5fY29tcGxldGU9cj9mdW5jdGlvbigpe3RyeXtyKCl9Y2F0Y2goYyl7YS5lcnJvcihjKX1maW5hbGx5e3RoaXMudW5zdWJzY3JpYmUoKX19OnQucHJvdG90eXBlLl9jb21wbGV0ZSxkfXJldHVybiBlLnByb3RvdHlwZS51bnN1YnNjcmliZT1mdW5jdGlvbigpe3ZhciBhO2lmKCF0aGlzLnNob3VsZFVuc3Vic2NyaWJlfHx0aGlzLnNob3VsZFVuc3Vic2NyaWJlKCkpe3ZhciBpPXRoaXMuY2xvc2VkO3QucHJvdG90eXBlLnVuc3Vic2NyaWJlLmNhbGwodGhpcyksIWkmJigoYT10aGlzLm9uRmluYWxpemUpPT09bnVsbHx8YT09PXZvaWQgMHx8YS5jYWxsKHRoaXMpKX19LGV9KShFbyl9KTtmdW5jdGlvbiBEZCgpe3JldHVybiBYdChmdW5jdGlvbih0LGUpe3ZhciBhPW51bGw7dC5fcmVmQ291bnQrKzt2YXIgaT1WdChlLHZvaWQgMCx2b2lkIDAsdm9pZCAwLGZ1bmN0aW9uKCl7aWYoIXR8fHQuX3JlZkNvdW50PD0wfHwwPC0tdC5fcmVmQ291bnQpe2E9bnVsbDtyZXR1cm59dmFyIHI9dC5fY29ubmVjdGlvbixzPWE7YT1udWxsLHImJighc3x8cj09PXMpJiZyLnVuc3Vic2NyaWJlKCksZS51bnN1YnNjcmliZSgpfSk7dC5zdWJzY3JpYmUoaSksaS5jbG9zZWR8fChhPXQuY29ubmVjdCgpKX0pfXZhciBFZD1iKCgpPT57dzIoKTtzYSgpfSk7dmFyIFlVLFpVPWIoKCk9PntpMSgpO2thKCk7aHIoKTtFZCgpO3NhKCk7dzIoKTtZVT0oZnVuY3Rpb24odCl7U3QoZSx0KTtmdW5jdGlvbiBlKGEsaSl7dmFyIHI9dC5jYWxsKHRoaXMpfHx0aGlzO3JldHVybiByLnNvdXJjZT1hLHIuc3ViamVjdEZhY3Rvcnk9aSxyLl9zdWJqZWN0PW51bGwsci5fcmVmQ291bnQ9MCxyLl9jb25uZWN0aW9uPW51bGwsdE0oYSkmJihyLmxpZnQ9YS5saWZ0KSxyfXJldHVybiBlLnByb3RvdHlwZS5fc3Vic2NyaWJlPWZ1bmN0aW9uKGEpe3JldHVybiB0aGlzLmdldFN1YmplY3QoKS5zdWJzY3JpYmUoYSl9LGUucHJvdG90eXBlLmdldFN1YmplY3Q9ZnVuY3Rpb24oKXt2YXIgYT10aGlzLl9zdWJqZWN0O3JldHVybighYXx8YS5pc1N0b3BwZWQpJiYodGhpcy5fc3ViamVjdD10aGlzLnN1YmplY3RGYWN0b3J5KCkpLHRoaXMuX3N1YmplY3R9LGUucHJvdG90eXBlLl90ZWFyZG93bj1mdW5jdGlvbigpe3RoaXMuX3JlZkNvdW50PTA7dmFyIGE9dGhpcy5fY29ubmVjdGlvbjt0aGlzLl9zdWJqZWN0PXRoaXMuX2Nvbm5lY3Rpb249bnVsbCxhPy51bnN1YnNjcmliZSgpfSxlLnByb3RvdHlwZS5jb25uZWN0PWZ1bmN0aW9uKCl7dmFyIGE9dGhpcyxpPXRoaXMuX2Nvbm5lY3Rpb247aWYoIWkpe2k9dGhpcy5fY29ubmVjdGlvbj1uZXcgTzE7dmFyIHI9dGhpcy5nZXRTdWJqZWN0KCk7aS5hZGQodGhpcy5zb3VyY2Uuc3Vic2NyaWJlKFZ0KHIsdm9pZCAwLGZ1bmN0aW9uKCl7YS5fdGVhcmRvd24oKSxyLmNvbXBsZXRlKCl9LGZ1bmN0aW9uKHMpe2EuX3RlYXJkb3duKCksci5lcnJvcihzKX0sZnVuY3Rpb24oKXtyZXR1cm4gYS5fdGVhcmRvd24oKX0pKSksaS5jbG9zZWQmJih0aGlzLl9jb25uZWN0aW9uPW51bGwsaT1PMS5FTVBUWSl9cmV0dXJuIGl9LGUucHJvdG90eXBlLnJlZkNvdW50PWZ1bmN0aW9uKCl7cmV0dXJuIERkKCkodGhpcyl9LGV9KSh3dCl9KTt2YXIgYU0sWFU9YigoKT0+e2FNPXtub3c6ZnVuY3Rpb24oKXtyZXR1cm4oYU0uZGVsZWdhdGV8fHBlcmZvcm1hbmNlKS5ub3coKX0sZGVsZWdhdGU6dm9pZCAwfX0pO3ZhciBpcyxpTT1iKCgpPT57aTEoKTtocigpO2lzPXtzY2hlZHVsZTpmdW5jdGlvbih0KXt2YXIgZT1yZXF1ZXN0QW5pbWF0aW9uRnJhbWUsYT1jYW5jZWxBbmltYXRpb25GcmFtZSxpPWlzLmRlbGVnYXRlO2kmJihlPWkucmVxdWVzdEFuaW1hdGlvbkZyYW1lLGE9aS5jYW5jZWxBbmltYXRpb25GcmFtZSk7dmFyIHI9ZShmdW5jdGlvbihzKXthPXZvaWQgMCx0KHMpfSk7cmV0dXJuIG5ldyBPMShmdW5jdGlvbigpe3JldHVybiBhPy4ocil9KX0scmVxdWVzdEFuaW1hdGlvbkZyYW1lOmZ1bmN0aW9uKCl7Zm9yKHZhciB0PVtdLGU9MDtlPGFyZ3VtZW50cy5sZW5ndGg7ZSsrKXRbZV09YXJndW1lbnRzW2VdO3ZhciBhPWlzLmRlbGVnYXRlO3JldHVybihhPy5yZXF1ZXN0QW5pbWF0aW9uRnJhbWV8fHJlcXVlc3RBbmltYXRpb25GcmFtZSkuYXBwbHkodm9pZCAwLHgyKFtdLFcxKHQpKSl9LGNhbmNlbEFuaW1hdGlvbkZyYW1lOmZ1bmN0aW9uKCl7Zm9yKHZhciB0PVtdLGU9MDtlPGFyZ3VtZW50cy5sZW5ndGg7ZSsrKXRbZV09YXJndW1lbnRzW2VdO3ZhciBhPWlzLmRlbGVnYXRlO3JldHVybihhPy5jYW5jZWxBbmltYXRpb25GcmFtZXx8Y2FuY2VsQW5pbWF0aW9uRnJhbWUpLmFwcGx5KHZvaWQgMCx4MihbXSxXMSh0KSkpfSxkZWxlZ2F0ZTp2b2lkIDB9fSk7ZnVuY3Rpb24geHp0KHQpe3JldHVybiB0P0tVKHQpOnd6dH1mdW5jdGlvbiBLVSh0KXtyZXR1cm4gbmV3IHd0KGZ1bmN0aW9uKGUpe3ZhciBhPXR8fGFNLGk9YS5ub3coKSxyPTAscz1mdW5jdGlvbigpe2UuY2xvc2VkfHwocj1pcy5yZXF1ZXN0QW5pbWF0aW9uRnJhbWUoZnVuY3Rpb24obil7cj0wO3ZhciBvPWEubm93KCk7ZS5uZXh0KHt0aW1lc3RhbXA6dD9vOm4sZWxhcHNlZDpvLWl9KSxzKCl9KSl9O3JldHVybiBzKCksZnVuY3Rpb24oKXtyJiZpcy5jYW5jZWxBbmltYXRpb25GcmFtZShyKX19KX12YXIgd3p0LFFVPWIoKCk9PntrYSgpO1hVKCk7aU0oKTt3enQ9S1UoKX0pO3ZhciByTSxzTT1iKCgpPT57bm4oKTtyTT16YShmdW5jdGlvbih0KXtyZXR1cm4gZnVuY3Rpb24oKXt0KHRoaXMpLHRoaXMubmFtZT0iT2JqZWN0VW5zdWJzY3JpYmVkRXJyb3IiLHRoaXMubWVzc2FnZT0ib2JqZWN0IHVuc3Vic2NyaWJlZCJ9fSl9KTt2YXIgU2Esbk0sbWM9YigoKT0+e2kxKCk7a2EoKTtocigpO3NNKCk7azQoKTtUZCgpO1NhPShmdW5jdGlvbih0KXtTdChlLHQpO2Z1bmN0aW9uIGUoKXt2YXIgYT10LmNhbGwodGhpcyl8fHRoaXM7cmV0dXJuIGEuY2xvc2VkPSExLGEuY3VycmVudE9ic2VydmVycz1udWxsLGEub2JzZXJ2ZXJzPVtdLGEuaXNTdG9wcGVkPSExLGEuaGFzRXJyb3I9ITEsYS50aHJvd25FcnJvcj1udWxsLGF9cmV0dXJuIGUucHJvdG90eXBlLmxpZnQ9ZnVuY3Rpb24oYSl7dmFyIGk9bmV3IG5NKHRoaXMsdGhpcyk7cmV0dXJuIGkub3BlcmF0b3I9YSxpfSxlLnByb3RvdHlwZS5fdGhyb3dJZkNsb3NlZD1mdW5jdGlvbigpe2lmKHRoaXMuY2xvc2VkKXRocm93IG5ldyByTX0sZS5wcm90b3R5cGUubmV4dD1mdW5jdGlvbihhKXt2YXIgaT10aGlzO180KGZ1bmN0aW9uKCl7dmFyIHIscztpZihpLl90aHJvd0lmQ2xvc2VkKCksIWkuaXNTdG9wcGVkKXtpLmN1cnJlbnRPYnNlcnZlcnN8fChpLmN1cnJlbnRPYnNlcnZlcnM9QXJyYXkuZnJvbShpLm9ic2VydmVycykpO3RyeXtmb3IodmFyIG49TjIoaS5jdXJyZW50T2JzZXJ2ZXJzKSxvPW4ubmV4dCgpOyFvLmRvbmU7bz1uLm5leHQoKSl7dmFyIGQ9by52YWx1ZTtkLm5leHQoYSl9fWNhdGNoKGMpe3I9e2Vycm9yOmN9fWZpbmFsbHl7dHJ5e28mJiFvLmRvbmUmJihzPW4ucmV0dXJuKSYmcy5jYWxsKG4pfWZpbmFsbHl7aWYocil0aHJvdyByLmVycm9yfX19fSl9LGUucHJvdG90eXBlLmVycm9yPWZ1bmN0aW9uKGEpe3ZhciBpPXRoaXM7XzQoZnVuY3Rpb24oKXtpZihpLl90aHJvd0lmQ2xvc2VkKCksIWkuaXNTdG9wcGVkKXtpLmhhc0Vycm9yPWkuaXNTdG9wcGVkPSEwLGkudGhyb3duRXJyb3I9YTtmb3IodmFyIHI9aS5vYnNlcnZlcnM7ci5sZW5ndGg7KXIuc2hpZnQoKS5lcnJvcihhKX19KX0sZS5wcm90b3R5cGUuY29tcGxldGU9ZnVuY3Rpb24oKXt2YXIgYT10aGlzO180KGZ1bmN0aW9uKCl7aWYoYS5fdGhyb3dJZkNsb3NlZCgpLCFhLmlzU3RvcHBlZCl7YS5pc1N0b3BwZWQ9ITA7Zm9yKHZhciBpPWEub2JzZXJ2ZXJzO2kubGVuZ3RoOylpLnNoaWZ0KCkuY29tcGxldGUoKX19KX0sZS5wcm90b3R5cGUudW5zdWJzY3JpYmU9ZnVuY3Rpb24oKXt0aGlzLmlzU3RvcHBlZD10aGlzLmNsb3NlZD0hMCx0aGlzLm9ic2VydmVycz10aGlzLmN1cnJlbnRPYnNlcnZlcnM9bnVsbH0sT2JqZWN0LmRlZmluZVByb3BlcnR5KGUucHJvdG90eXBlLCJvYnNlcnZlZCIse2dldDpmdW5jdGlvbigpe3ZhciBhO3JldHVybigoYT10aGlzLm9ic2VydmVycyk9PT1udWxsfHxhPT09dm9pZCAwP3ZvaWQgMDphLmxlbmd0aCk+MH0sZW51bWVyYWJsZTohMSxjb25maWd1cmFibGU6ITB9KSxlLnByb3RvdHlwZS5fdHJ5U3Vic2NyaWJlPWZ1bmN0aW9uKGEpe3JldHVybiB0aGlzLl90aHJvd0lmQ2xvc2VkKCksdC5wcm90b3R5cGUuX3RyeVN1YnNjcmliZS5jYWxsKHRoaXMsYSl9LGUucHJvdG90eXBlLl9zdWJzY3JpYmU9ZnVuY3Rpb24oYSl7cmV0dXJuIHRoaXMuX3Rocm93SWZDbG9zZWQoKSx0aGlzLl9jaGVja0ZpbmFsaXplZFN0YXR1c2VzKGEpLHRoaXMuX2lubmVyU3Vic2NyaWJlKGEpfSxlLnByb3RvdHlwZS5faW5uZXJTdWJzY3JpYmU9ZnVuY3Rpb24oYSl7dmFyIGk9dGhpcyxyPXRoaXMscz1yLmhhc0Vycm9yLG49ci5pc1N0b3BwZWQsbz1yLm9ic2VydmVycztyZXR1cm4gc3x8bj9HdzoodGhpcy5jdXJyZW50T2JzZXJ2ZXJzPW51bGwsby5wdXNoKGEpLG5ldyBPMShmdW5jdGlvbigpe2kuY3VycmVudE9ic2VydmVycz1udWxsLExpKG8sYSl9KSl9LGUucHJvdG90eXBlLl9jaGVja0ZpbmFsaXplZFN0YXR1c2VzPWZ1bmN0aW9uKGEpe3ZhciBpPXRoaXMscj1pLmhhc0Vycm9yLHM9aS50aHJvd25FcnJvcixuPWkuaXNTdG9wcGVkO3I/YS5lcnJvcihzKTpuJiZhLmNvbXBsZXRlKCl9LGUucHJvdG90eXBlLmFzT2JzZXJ2YWJsZT1mdW5jdGlvbigpe3ZhciBhPW5ldyB3dDtyZXR1cm4gYS5zb3VyY2U9dGhpcyxhfSxlLmNyZWF0ZT1mdW5jdGlvbihhLGkpe3JldHVybiBuZXcgbk0oYSxpKX0sZX0pKHd0KSxuTT0oZnVuY3Rpb24odCl7U3QoZSx0KTtmdW5jdGlvbiBlKGEsaSl7dmFyIHI9dC5jYWxsKHRoaXMpfHx0aGlzO3JldHVybiByLmRlc3RpbmF0aW9uPWEsci5zb3VyY2U9aSxyfXJldHVybiBlLnByb3RvdHlwZS5uZXh0PWZ1bmN0aW9uKGEpe3ZhciBpLHI7KHI9KGk9dGhpcy5kZXN0aW5hdGlvbik9PT1udWxsfHxpPT09dm9pZCAwP3ZvaWQgMDppLm5leHQpPT09bnVsbHx8cj09PXZvaWQgMHx8ci5jYWxsKGksYSl9LGUucHJvdG90eXBlLmVycm9yPWZ1bmN0aW9uKGEpe3ZhciBpLHI7KHI9KGk9dGhpcy5kZXN0aW5hdGlvbik9PT1udWxsfHxpPT09dm9pZCAwP3ZvaWQgMDppLmVycm9yKT09PW51bGx8fHI9PT12b2lkIDB8fHIuY2FsbChpLGEpfSxlLnByb3RvdHlwZS5jb21wbGV0ZT1mdW5jdGlvbigpe3ZhciBhLGk7KGk9KGE9dGhpcy5kZXN0aW5hdGlvbik9PT1udWxsfHxhPT09dm9pZCAwP3ZvaWQgMDphLmNvbXBsZXRlKT09PW51bGx8fGk9PT12b2lkIDB8fGkuY2FsbChhKX0sZS5wcm90b3R5cGUuX3N1YnNjcmliZT1mdW5jdGlvbihhKXt2YXIgaSxyO3JldHVybihyPShpPXRoaXMuc291cmNlKT09PW51bGx8fGk9PT12b2lkIDA/dm9pZCAwOmkuc3Vic2NyaWJlKGEpKSE9PW51bGwmJnIhPT12b2lkIDA/cjpHd30sZX0pKFNhKX0pO3ZhciBKVSxlVz1iKCgpPT57aTEoKTttYygpO0pVPShmdW5jdGlvbih0KXtTdChlLHQpO2Z1bmN0aW9uIGUoYSl7dmFyIGk9dC5jYWxsKHRoaXMpfHx0aGlzO3JldHVybiBpLl92YWx1ZT1hLGl9cmV0dXJuIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShlLnByb3RvdHlwZSwidmFsdWUiLHtnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5nZXRWYWx1ZSgpfSxlbnVtZXJhYmxlOiExLGNvbmZpZ3VyYWJsZTohMH0pLGUucHJvdG90eXBlLl9zdWJzY3JpYmU9ZnVuY3Rpb24oYSl7dmFyIGk9dC5wcm90b3R5cGUuX3N1YnNjcmliZS5jYWxsKHRoaXMsYSk7cmV0dXJuIWkuY2xvc2VkJiZhLm5leHQodGhpcy5fdmFsdWUpLGl9LGUucHJvdG90eXBlLmdldFZhbHVlPWZ1bmN0aW9uKCl7dmFyIGE9dGhpcyxpPWEuaGFzRXJyb3Iscj1hLnRocm93bkVycm9yLHM9YS5fdmFsdWU7aWYoaSl0aHJvdyByO3JldHVybiB0aGlzLl90aHJvd0lmQ2xvc2VkKCksc30sZS5wcm90b3R5cGUubmV4dD1mdW5jdGlvbihhKXt0LnByb3RvdHlwZS5uZXh0LmNhbGwodGhpcyx0aGlzLl92YWx1ZT1hKX0sZX0pKFNhKX0pO3ZhciBnYyxvTT1iKCgpPT57Z2M9e25vdzpmdW5jdGlvbigpe3JldHVybihnYy5kZWxlZ2F0ZXx8RGF0ZSkubm93KCl9LGRlbGVnYXRlOnZvaWQgMH19KTt2YXIgUGQsdFc9YigoKT0+e2kxKCk7bWMoKTtvTSgpO1BkPShmdW5jdGlvbih0KXtTdChlLHQpO2Z1bmN0aW9uIGUoYSxpLHIpe2E9PT12b2lkIDAmJihhPTEvMCksaT09PXZvaWQgMCYmKGk9MS8wKSxyPT09dm9pZCAwJiYocj1nYyk7dmFyIHM9dC5jYWxsKHRoaXMpfHx0aGlzO3JldHVybiBzLl9idWZmZXJTaXplPWEscy5fd2luZG93VGltZT1pLHMuX3RpbWVzdGFtcFByb3ZpZGVyPXIscy5fYnVmZmVyPVtdLHMuX2luZmluaXRlVGltZVdpbmRvdz0hMCxzLl9pbmZpbml0ZVRpbWVXaW5kb3c9aT09PTEvMCxzLl9idWZmZXJTaXplPU1hdGgubWF4KDEsYSkscy5fd2luZG93VGltZT1NYXRoLm1heCgxLGkpLHN9cmV0dXJuIGUucHJvdG90eXBlLm5leHQ9ZnVuY3Rpb24oYSl7dmFyIGk9dGhpcyxyPWkuaXNTdG9wcGVkLHM9aS5fYnVmZmVyLG49aS5faW5maW5pdGVUaW1lV2luZG93LG89aS5fdGltZXN0YW1wUHJvdmlkZXIsZD1pLl93aW5kb3dUaW1lO3J8fChzLnB1c2goYSksIW4mJnMucHVzaChvLm5vdygpK2QpKSx0aGlzLl90cmltQnVmZmVyKCksdC5wcm90b3R5cGUubmV4dC5jYWxsKHRoaXMsYSl9LGUucHJvdG90eXBlLl9zdWJzY3JpYmU9ZnVuY3Rpb24oYSl7dGhpcy5fdGhyb3dJZkNsb3NlZCgpLHRoaXMuX3RyaW1CdWZmZXIoKTtmb3IodmFyIGk9dGhpcy5faW5uZXJTdWJzY3JpYmUoYSkscj10aGlzLHM9ci5faW5maW5pdGVUaW1lV2luZG93LG49ci5fYnVmZmVyLG89bi5zbGljZSgpLGQ9MDtkPG8ubGVuZ3RoJiYhYS5jbG9zZWQ7ZCs9cz8xOjIpYS5uZXh0KG9bZF0pO3JldHVybiB0aGlzLl9jaGVja0ZpbmFsaXplZFN0YXR1c2VzKGEpLGl9LGUucHJvdG90eXBlLl90cmltQnVmZmVyPWZ1bmN0aW9uKCl7dmFyIGE9dGhpcyxpPWEuX2J1ZmZlclNpemUscj1hLl90aW1lc3RhbXBQcm92aWRlcixzPWEuX2J1ZmZlcixuPWEuX2luZmluaXRlVGltZVdpbmRvdyxvPShuPzE6MikqaTtpZihpPDEvMCYmbzxzLmxlbmd0aCYmcy5zcGxpY2UoMCxzLmxlbmd0aC1vKSwhbil7Zm9yKHZhciBkPXIubm93KCksYz0wLGg9MTtoPHMubGVuZ3RoJiZzW2hdPD1kO2grPTIpYz1oO2MmJnMuc3BsaWNlKDAsYysxKX19LGV9KShTYSl9KTt2YXIgYVcsaVc9YigoKT0+e2kxKCk7bWMoKTthVz0oZnVuY3Rpb24odCl7U3QoZSx0KTtmdW5jdGlvbiBlKCl7dmFyIGE9dCE9PW51bGwmJnQuYXBwbHkodGhpcyxhcmd1bWVudHMpfHx0aGlzO3JldHVybiBhLl92YWx1ZT1udWxsLGEuX2hhc1ZhbHVlPSExLGEuX2lzQ29tcGxldGU9ITEsYX1yZXR1cm4gZS5wcm90b3R5cGUuX2NoZWNrRmluYWxpemVkU3RhdHVzZXM9ZnVuY3Rpb24oYSl7dmFyIGk9dGhpcyxyPWkuaGFzRXJyb3Iscz1pLl9oYXNWYWx1ZSxuPWkuX3ZhbHVlLG89aS50aHJvd25FcnJvcixkPWkuaXNTdG9wcGVkLGM9aS5faXNDb21wbGV0ZTtyP2EuZXJyb3Iobyk6KGR8fGMpJiYocyYmYS5uZXh0KG4pLGEuY29tcGxldGUoKSl9LGUucHJvdG90eXBlLm5leHQ9ZnVuY3Rpb24oYSl7dGhpcy5pc1N0b3BwZWR8fCh0aGlzLl92YWx1ZT1hLHRoaXMuX2hhc1ZhbHVlPSEwKX0sZS5wcm90b3R5cGUuY29tcGxldGU9ZnVuY3Rpb24oKXt2YXIgYT10aGlzLGk9YS5faGFzVmFsdWUscj1hLl92YWx1ZSxzPWEuX2lzQ29tcGxldGU7c3x8KHRoaXMuX2lzQ29tcGxldGU9ITAsaSYmdC5wcm90b3R5cGUubmV4dC5jYWxsKHRoaXMsciksdC5wcm90b3R5cGUuY29tcGxldGUuY2FsbCh0aGlzKSl9LGV9KShTYSl9KTt2YXIgbE0sclc9YigoKT0+e2kxKCk7aHIoKTtsTT0oZnVuY3Rpb24odCl7U3QoZSx0KTtmdW5jdGlvbiBlKGEsaSl7cmV0dXJuIHQuY2FsbCh0aGlzKXx8dGhpc31yZXR1cm4gZS5wcm90b3R5cGUuc2NoZWR1bGU9ZnVuY3Rpb24oYSxpKXtyZXR1cm4gaT09PXZvaWQgMCYmKGk9MCksdGhpc30sZX0pKE8xKX0pO3ZhciBiYyxzVz1iKCgpPT57aTEoKTtiYz17c2V0SW50ZXJ2YWw6ZnVuY3Rpb24odCxlKXtmb3IodmFyIGE9W10saT0yO2k8YXJndW1lbnRzLmxlbmd0aDtpKyspYVtpLTJdPWFyZ3VtZW50c1tpXTt2YXIgcj1iYy5kZWxlZ2F0ZTtyZXR1cm4gcj8uc2V0SW50ZXJ2YWw/ci5zZXRJbnRlcnZhbC5hcHBseShyLHgyKFt0LGVdLFcxKGEpKSk6c2V0SW50ZXJ2YWwuYXBwbHkodm9pZCAwLHgyKFt0LGVdLFcxKGEpKSl9LGNsZWFySW50ZXJ2YWw6ZnVuY3Rpb24odCl7dmFyIGU9YmMuZGVsZWdhdGU7cmV0dXJuKGU/LmNsZWFySW50ZXJ2YWx8fGNsZWFySW50ZXJ2YWwpKHQpfSxkZWxlZ2F0ZTp2b2lkIDB9fSk7dmFyICRpLFQ0PWIoKCk9PntpMSgpO3JXKCk7c1coKTtrNCgpOyRpPShmdW5jdGlvbih0KXtTdChlLHQpO2Z1bmN0aW9uIGUoYSxpKXt2YXIgcj10LmNhbGwodGhpcyxhLGkpfHx0aGlzO3JldHVybiByLnNjaGVkdWxlcj1hLHIud29yaz1pLHIucGVuZGluZz0hMSxyfXJldHVybiBlLnByb3RvdHlwZS5zY2hlZHVsZT1mdW5jdGlvbihhLGkpe3ZhciByO2lmKGk9PT12b2lkIDAmJihpPTApLHRoaXMuY2xvc2VkKXJldHVybiB0aGlzO3RoaXMuc3RhdGU9YTt2YXIgcz10aGlzLmlkLG49dGhpcy5zY2hlZHVsZXI7cmV0dXJuIHMhPW51bGwmJih0aGlzLmlkPXRoaXMucmVjeWNsZUFzeW5jSWQobixzLGkpKSx0aGlzLnBlbmRpbmc9ITAsdGhpcy5kZWxheT1pLHRoaXMuaWQ9KHI9dGhpcy5pZCkhPT1udWxsJiZyIT09dm9pZCAwP3I6dGhpcy5yZXF1ZXN0QXN5bmNJZChuLHRoaXMuaWQsaSksdGhpc30sZS5wcm90b3R5cGUucmVxdWVzdEFzeW5jSWQ9ZnVuY3Rpb24oYSxpLHIpe3JldHVybiByPT09dm9pZCAwJiYocj0wKSxiYy5zZXRJbnRlcnZhbChhLmZsdXNoLmJpbmQoYSx0aGlzKSxyKX0sZS5wcm90b3R5cGUucmVjeWNsZUFzeW5jSWQ9ZnVuY3Rpb24oYSxpLHIpe2lmKHI9PT12b2lkIDAmJihyPTApLHIhPW51bGwmJnRoaXMuZGVsYXk9PT1yJiZ0aGlzLnBlbmRpbmc9PT0hMSlyZXR1cm4gaTtpIT1udWxsJiZiYy5jbGVhckludGVydmFsKGkpfSxlLnByb3RvdHlwZS5leGVjdXRlPWZ1bmN0aW9uKGEsaSl7aWYodGhpcy5jbG9zZWQpcmV0dXJuIG5ldyBFcnJvcigiZXhlY3V0aW5nIGEgY2FuY2VsbGVkIGFjdGlvbiIpO3RoaXMucGVuZGluZz0hMTt2YXIgcj10aGlzLl9leGVjdXRlKGEsaSk7aWYocilyZXR1cm4gcjt0aGlzLnBlbmRpbmc9PT0hMSYmdGhpcy5pZCE9bnVsbCYmKHRoaXMuaWQ9dGhpcy5yZWN5Y2xlQXN5bmNJZCh0aGlzLnNjaGVkdWxlcix0aGlzLmlkLG51bGwpKX0sZS5wcm90b3R5cGUuX2V4ZWN1dGU9ZnVuY3Rpb24oYSxpKXt2YXIgcj0hMSxzO3RyeXt0aGlzLndvcmsoYSl9Y2F0Y2gobil7cj0hMCxzPW58fG5ldyBFcnJvcigiU2NoZWR1bGVkIGFjdGlvbiB0aHJldyBmYWxzeSBlcnJvciIpfWlmKHIpcmV0dXJuIHRoaXMudW5zdWJzY3JpYmUoKSxzfSxlLnByb3RvdHlwZS51bnN1YnNjcmliZT1mdW5jdGlvbigpe2lmKCF0aGlzLmNsb3NlZCl7dmFyIGE9dGhpcyxpPWEuaWQscj1hLnNjaGVkdWxlcixzPXIuYWN0aW9uczt0aGlzLndvcms9dGhpcy5zdGF0ZT10aGlzLnNjaGVkdWxlcj1udWxsLHRoaXMucGVuZGluZz0hMSxMaShzLHRoaXMpLGkhPW51bGwmJih0aGlzLmlkPXRoaXMucmVjeWNsZUFzeW5jSWQocixpLG51bGwpKSx0aGlzLmRlbGF5PW51bGwsdC5wcm90b3R5cGUudW5zdWJzY3JpYmUuY2FsbCh0aGlzKX19LGV9KShsTSl9KTtmdW5jdGlvbiBuVyh0KXtyZXR1cm4gdCBpbiBJZD8oZGVsZXRlIElkW3RdLCEwKTohMX12YXIgTXp0LGNNLElkLGRNLHVZdCxvVz1iKCgpPT57TXp0PTEsSWQ9e307ZE09e3NldEltbWVkaWF0ZTpmdW5jdGlvbih0KXt2YXIgZT1NenQrKztyZXR1cm4gSWRbZV09ITAsY018fChjTT1Qcm9taXNlLnJlc29sdmUoKSksY00udGhlbihmdW5jdGlvbigpe3JldHVybiBuVyhlKSYmdCgpfSksZX0sY2xlYXJJbW1lZGlhdGU6ZnVuY3Rpb24odCl7blcodCl9fSx1WXQ9e3BlbmRpbmc6ZnVuY3Rpb24oKXtyZXR1cm4gT2JqZWN0LmtleXMoSWQpLmxlbmd0aH19fSk7dmFyIHp6dCxrenQsdmMsbFc9YigoKT0+e2kxKCk7b1coKTt6enQ9ZE0uc2V0SW1tZWRpYXRlLGt6dD1kTS5jbGVhckltbWVkaWF0ZSx2Yz17c2V0SW1tZWRpYXRlOmZ1bmN0aW9uKCl7Zm9yKHZhciB0PVtdLGU9MDtlPGFyZ3VtZW50cy5sZW5ndGg7ZSsrKXRbZV09YXJndW1lbnRzW2VdO3ZhciBhPXZjLmRlbGVnYXRlO3JldHVybihhPy5zZXRJbW1lZGlhdGV8fHp6dCkuYXBwbHkodm9pZCAwLHgyKFtdLFcxKHQpKSl9LGNsZWFySW1tZWRpYXRlOmZ1bmN0aW9uKHQpe3ZhciBlPXZjLmRlbGVnYXRlO3JldHVybihlPy5jbGVhckltbWVkaWF0ZXx8a3p0KSh0KX0sZGVsZWdhdGU6dm9pZCAwfX0pO3ZhciBoTSxjVz1iKCgpPT57aTEoKTtUNCgpO2xXKCk7aE09KGZ1bmN0aW9uKHQpe1N0KGUsdCk7ZnVuY3Rpb24gZShhLGkpe3ZhciByPXQuY2FsbCh0aGlzLGEsaSl8fHRoaXM7cmV0dXJuIHIuc2NoZWR1bGVyPWEsci53b3JrPWkscn1yZXR1cm4gZS5wcm90b3R5cGUucmVxdWVzdEFzeW5jSWQ9ZnVuY3Rpb24oYSxpLHIpe3JldHVybiByPT09dm9pZCAwJiYocj0wKSxyIT09bnVsbCYmcj4wP3QucHJvdG90eXBlLnJlcXVlc3RBc3luY0lkLmNhbGwodGhpcyxhLGkscik6KGEuYWN0aW9ucy5wdXNoKHRoaXMpLGEuX3NjaGVkdWxlZHx8KGEuX3NjaGVkdWxlZD12Yy5zZXRJbW1lZGlhdGUoYS5mbHVzaC5iaW5kKGEsdm9pZCAwKSkpKX0sZS5wcm90b3R5cGUucmVjeWNsZUFzeW5jSWQ9ZnVuY3Rpb24oYSxpLHIpe3ZhciBzO2lmKHI9PT12b2lkIDAmJihyPTApLHIhPW51bGw/cj4wOnRoaXMuZGVsYXk+MClyZXR1cm4gdC5wcm90b3R5cGUucmVjeWNsZUFzeW5jSWQuY2FsbCh0aGlzLGEsaSxyKTt2YXIgbj1hLmFjdGlvbnM7aSE9bnVsbCYmKChzPW5bbi5sZW5ndGgtMV0pPT09bnVsbHx8cz09PXZvaWQgMD92b2lkIDA6cy5pZCkhPT1pJiYodmMuY2xlYXJJbW1lZGlhdGUoaSksYS5fc2NoZWR1bGVkPT09aSYmKGEuX3NjaGVkdWxlZD12b2lkIDApKX0sZX0pKCRpKX0pO3ZhciB5YyxwTT1iKCgpPT57b00oKTt5Yz0oZnVuY3Rpb24oKXtmdW5jdGlvbiB0KGUsYSl7YT09PXZvaWQgMCYmKGE9dC5ub3cpLHRoaXMuc2NoZWR1bGVyQWN0aW9uQ3Rvcj1lLHRoaXMubm93PWF9cmV0dXJuIHQucHJvdG90eXBlLnNjaGVkdWxlPWZ1bmN0aW9uKGUsYSxpKXtyZXR1cm4gYT09PXZvaWQgMCYmKGE9MCksbmV3IHRoaXMuc2NoZWR1bGVyQWN0aW9uQ3Rvcih0aGlzLGUpLnNjaGVkdWxlKGksYSl9LHQubm93PWdjLm5vdyx0fSkoKX0pO3ZhciBBaSxMND1iKCgpPT57aTEoKTtwTSgpO0FpPShmdW5jdGlvbih0KXtTdChlLHQpO2Z1bmN0aW9uIGUoYSxpKXtpPT09dm9pZCAwJiYoaT15Yy5ub3cpO3ZhciByPXQuY2FsbCh0aGlzLGEsaSl8fHRoaXM7cmV0dXJuIHIuYWN0aW9ucz1bXSxyLl9hY3RpdmU9ITEscn1yZXR1cm4gZS5wcm90b3R5cGUuZmx1c2g9ZnVuY3Rpb24oYSl7dmFyIGk9dGhpcy5hY3Rpb25zO2lmKHRoaXMuX2FjdGl2ZSl7aS5wdXNoKGEpO3JldHVybn12YXIgcjt0aGlzLl9hY3RpdmU9ITA7ZG8gaWYocj1hLmV4ZWN1dGUoYS5zdGF0ZSxhLmRlbGF5KSlicmVhazt3aGlsZShhPWkuc2hpZnQoKSk7aWYodGhpcy5fYWN0aXZlPSExLHIpe2Zvcig7YT1pLnNoaWZ0KCk7KWEudW5zdWJzY3JpYmUoKTt0aHJvdyByfX0sZX0pKHljKX0pO3ZhciB1TSxkVz1iKCgpPT57aTEoKTtMNCgpO3VNPShmdW5jdGlvbih0KXtTdChlLHQpO2Z1bmN0aW9uIGUoKXtyZXR1cm4gdCE9PW51bGwmJnQuYXBwbHkodGhpcyxhcmd1bWVudHMpfHx0aGlzfXJldHVybiBlLnByb3RvdHlwZS5mbHVzaD1mdW5jdGlvbihhKXt0aGlzLl9hY3RpdmU9ITA7dmFyIGk9dGhpcy5fc2NoZWR1bGVkO3RoaXMuX3NjaGVkdWxlZD12b2lkIDA7dmFyIHI9dGhpcy5hY3Rpb25zLHM7YT1hfHxyLnNoaWZ0KCk7ZG8gaWYocz1hLmV4ZWN1dGUoYS5zdGF0ZSxhLmRlbGF5KSlicmVhazt3aGlsZSgoYT1yWzBdKSYmYS5pZD09PWkmJnIuc2hpZnQoKSk7aWYodGhpcy5fYWN0aXZlPSExLHMpe2Zvcig7KGE9clswXSkmJmEuaWQ9PT1pJiZyLnNoaWZ0KCk7KWEudW5zdWJzY3JpYmUoKTt0aHJvdyBzfX0sZX0pKEFpKX0pO3ZhciBoVyxTenQscFc9YigoKT0+e2NXKCk7ZFcoKTtoVz1uZXcgdU0oaE0pLFN6dD1oV30pO3ZhciBwcixmTSxJbz1iKCgpPT57VDQoKTtMNCgpO3ByPW5ldyBBaSgkaSksZk09cHJ9KTt2YXIgbU0sdVc9YigoKT0+e2kxKCk7VDQoKTttTT0oZnVuY3Rpb24odCl7U3QoZSx0KTtmdW5jdGlvbiBlKGEsaSl7dmFyIHI9dC5jYWxsKHRoaXMsYSxpKXx8dGhpcztyZXR1cm4gci5zY2hlZHVsZXI9YSxyLndvcms9aSxyfXJldHVybiBlLnByb3RvdHlwZS5zY2hlZHVsZT1mdW5jdGlvbihhLGkpe3JldHVybiBpPT09dm9pZCAwJiYoaT0wKSxpPjA/dC5wcm90b3R5cGUuc2NoZWR1bGUuY2FsbCh0aGlzLGEsaSk6KHRoaXMuZGVsYXk9aSx0aGlzLnN0YXRlPWEsdGhpcy5zY2hlZHVsZXIuZmx1c2godGhpcyksdGhpcyl9LGUucHJvdG90eXBlLmV4ZWN1dGU9ZnVuY3Rpb24oYSxpKXtyZXR1cm4gaT4wfHx0aGlzLmNsb3NlZD90LnByb3RvdHlwZS5leGVjdXRlLmNhbGwodGhpcyxhLGkpOnRoaXMuX2V4ZWN1dGUoYSxpKX0sZS5wcm90b3R5cGUucmVxdWVzdEFzeW5jSWQ9ZnVuY3Rpb24oYSxpLHIpe3JldHVybiByPT09dm9pZCAwJiYocj0wKSxyIT1udWxsJiZyPjB8fHI9PW51bGwmJnRoaXMuZGVsYXk+MD90LnByb3RvdHlwZS5yZXF1ZXN0QXN5bmNJZC5jYWxsKHRoaXMsYSxpLHIpOihhLmZsdXNoKHRoaXMpLDApfSxlfSkoJGkpfSk7dmFyIGdNLGZXPWIoKCk9PntpMSgpO0w0KCk7Z009KGZ1bmN0aW9uKHQpe1N0KGUsdCk7ZnVuY3Rpb24gZSgpe3JldHVybiB0IT09bnVsbCYmdC5hcHBseSh0aGlzLGFyZ3VtZW50cyl8fHRoaXN9cmV0dXJuIGV9KShBaSl9KTt2YXIgbVcsQ3p0LGdXPWIoKCk9Pnt1VygpO2ZXKCk7bVc9bmV3IGdNKG1NKSxDenQ9bVd9KTt2YXIgYk0sYlc9YigoKT0+e2kxKCk7VDQoKTtpTSgpO2JNPShmdW5jdGlvbih0KXtTdChlLHQpO2Z1bmN0aW9uIGUoYSxpKXt2YXIgcj10LmNhbGwodGhpcyxhLGkpfHx0aGlzO3JldHVybiByLnNjaGVkdWxlcj1hLHIud29yaz1pLHJ9cmV0dXJuIGUucHJvdG90eXBlLnJlcXVlc3RBc3luY0lkPWZ1bmN0aW9uKGEsaSxyKXtyZXR1cm4gcj09PXZvaWQgMCYmKHI9MCksciE9PW51bGwmJnI+MD90LnByb3RvdHlwZS5yZXF1ZXN0QXN5bmNJZC5jYWxsKHRoaXMsYSxpLHIpOihhLmFjdGlvbnMucHVzaCh0aGlzKSxhLl9zY2hlZHVsZWR8fChhLl9zY2hlZHVsZWQ9aXMucmVxdWVzdEFuaW1hdGlvbkZyYW1lKGZ1bmN0aW9uKCl7cmV0dXJuIGEuZmx1c2godm9pZCAwKX0pKSl9LGUucHJvdG90eXBlLnJlY3ljbGVBc3luY0lkPWZ1bmN0aW9uKGEsaSxyKXt2YXIgcztpZihyPT09dm9pZCAwJiYocj0wKSxyIT1udWxsP3I+MDp0aGlzLmRlbGF5PjApcmV0dXJuIHQucHJvdG90eXBlLnJlY3ljbGVBc3luY0lkLmNhbGwodGhpcyxhLGkscik7dmFyIG49YS5hY3Rpb25zO2khPW51bGwmJmk9PT1hLl9zY2hlZHVsZWQmJigocz1uW24ubGVuZ3RoLTFdKT09PW51bGx8fHM9PT12b2lkIDA/dm9pZCAwOnMuaWQpIT09aSYmKGlzLmNhbmNlbEFuaW1hdGlvbkZyYW1lKGkpLGEuX3NjaGVkdWxlZD12b2lkIDApfSxlfSkoJGkpfSk7dmFyIHZNLHZXPWIoKCk9PntpMSgpO0w0KCk7dk09KGZ1bmN0aW9uKHQpe1N0KGUsdCk7ZnVuY3Rpb24gZSgpe3JldHVybiB0IT09bnVsbCYmdC5hcHBseSh0aGlzLGFyZ3VtZW50cyl8fHRoaXN9cmV0dXJuIGUucHJvdG90eXBlLmZsdXNoPWZ1bmN0aW9uKGEpe3RoaXMuX2FjdGl2ZT0hMDt2YXIgaTthP2k9YS5pZDooaT10aGlzLl9zY2hlZHVsZWQsdGhpcy5fc2NoZWR1bGVkPXZvaWQgMCk7dmFyIHI9dGhpcy5hY3Rpb25zLHM7YT1hfHxyLnNoaWZ0KCk7ZG8gaWYocz1hLmV4ZWN1dGUoYS5zdGF0ZSxhLmRlbGF5KSlicmVhazt3aGlsZSgoYT1yWzBdKSYmYS5pZD09PWkmJnIuc2hpZnQoKSk7aWYodGhpcy5fYWN0aXZlPSExLHMpe2Zvcig7KGE9clswXSkmJmEuaWQ9PT1pJiZyLnNoaWZ0KCk7KWEudW5zdWJzY3JpYmUoKTt0aHJvdyBzfX0sZX0pKEFpKX0pO3ZhciB5VyxfenQseFc9YigoKT0+e2JXKCk7dlcoKTt5Vz1uZXcgdk0oYk0pLF96dD15V30pO3ZhciB3Vyx5TSxNVz1iKCgpPT57aTEoKTtUNCgpO2hyKCk7TDQoKTt3Vz0oZnVuY3Rpb24odCl7U3QoZSx0KTtmdW5jdGlvbiBlKGEsaSl7YT09PXZvaWQgMCYmKGE9eU0pLGk9PT12b2lkIDAmJihpPTEvMCk7dmFyIHI9dC5jYWxsKHRoaXMsYSxmdW5jdGlvbigpe3JldHVybiByLmZyYW1lfSl8fHRoaXM7cmV0dXJuIHIubWF4RnJhbWVzPWksci5mcmFtZT0wLHIuaW5kZXg9LTEscn1yZXR1cm4gZS5wcm90b3R5cGUuZmx1c2g9ZnVuY3Rpb24oKXtmb3IodmFyIGE9dGhpcyxpPWEuYWN0aW9ucyxyPWEubWF4RnJhbWVzLHMsbjsobj1pWzBdKSYmbi5kZWxheTw9ciYmKGkuc2hpZnQoKSx0aGlzLmZyYW1lPW4uZGVsYXksIShzPW4uZXhlY3V0ZShuLnN0YXRlLG4uZGVsYXkpKSk7KTtpZihzKXtmb3IoO249aS5zaGlmdCgpOyluLnVuc3Vic2NyaWJlKCk7dGhyb3cgc319LGUuZnJhbWVUaW1lRmFjdG9yPTEwLGV9KShBaSkseU09KGZ1bmN0aW9uKHQpe1N0KGUsdCk7ZnVuY3Rpb24gZShhLGkscil7cj09PXZvaWQgMCYmKHI9YS5pbmRleCs9MSk7dmFyIHM9dC5jYWxsKHRoaXMsYSxpKXx8dGhpcztyZXR1cm4gcy5zY2hlZHVsZXI9YSxzLndvcms9aSxzLmluZGV4PXIscy5hY3RpdmU9ITAscy5pbmRleD1hLmluZGV4PXIsc31yZXR1cm4gZS5wcm90b3R5cGUuc2NoZWR1bGU9ZnVuY3Rpb24oYSxpKXtpZihpPT09dm9pZCAwJiYoaT0wKSxOdW1iZXIuaXNGaW5pdGUoaSkpe2lmKCF0aGlzLmlkKXJldHVybiB0LnByb3RvdHlwZS5zY2hlZHVsZS5jYWxsKHRoaXMsYSxpKTt0aGlzLmFjdGl2ZT0hMTt2YXIgcj1uZXcgZSh0aGlzLnNjaGVkdWxlcix0aGlzLndvcmspO3JldHVybiB0aGlzLmFkZChyKSxyLnNjaGVkdWxlKGEsaSl9ZWxzZSByZXR1cm4gTzEuRU1QVFl9LGUucHJvdG90eXBlLnJlcXVlc3RBc3luY0lkPWZ1bmN0aW9uKGEsaSxyKXtyPT09dm9pZCAwJiYocj0wKSx0aGlzLmRlbGF5PWEuZnJhbWUrcjt2YXIgcz1hLmFjdGlvbnM7cmV0dXJuIHMucHVzaCh0aGlzKSxzLnNvcnQoZS5zb3J0QWN0aW9ucyksMX0sZS5wcm90b3R5cGUucmVjeWNsZUFzeW5jSWQ9ZnVuY3Rpb24oYSxpLHIpe3I9PT12b2lkIDAmJihyPTApfSxlLnByb3RvdHlwZS5fZXhlY3V0ZT1mdW5jdGlvbihhLGkpe2lmKHRoaXMuYWN0aXZlPT09ITApcmV0dXJuIHQucHJvdG90eXBlLl9leGVjdXRlLmNhbGwodGhpcyxhLGkpfSxlLnNvcnRBY3Rpb25zPWZ1bmN0aW9uKGEsaSl7cmV0dXJuIGEuZGVsYXk9PT1pLmRlbGF5P2EuaW5kZXg9PT1pLmluZGV4PzA6YS5pbmRleD5pLmluZGV4PzE6LTE6YS5kZWxheT5pLmRlbGF5PzE6LTF9LGV9KSgkaSl9KTtmdW5jdGlvbiBUenQodCl7cmV0dXJuIHQ/THp0KHQpOk5kfWZ1bmN0aW9uIEx6dCh0KXtyZXR1cm4gbmV3IHd0KGZ1bmN0aW9uKGUpe3JldHVybiB0LnNjaGVkdWxlKGZ1bmN0aW9uKCl7cmV0dXJuIGUuY29tcGxldGUoKX0pfSl9dmFyIE5kLEZkPWIoKCk9PntrYSgpO05kPW5ldyB3dChmdW5jdGlvbih0KXtyZXR1cm4gdC5jb21wbGV0ZSgpfSl9KTtmdW5jdGlvbiBPZCh0KXtyZXR1cm4gdCYmcHQodC5zY2hlZHVsZSl9dmFyIHhNPWIoKCk9PntkMigpfSk7ZnVuY3Rpb24gd00odCl7cmV0dXJuIHRbdC5sZW5ndGgtMV19ZnVuY3Rpb24gcFp0KHQpe3JldHVybiBwdCh3TSh0KSk/dC5wb3AoKTp2b2lkIDB9ZnVuY3Rpb24gb24odCl7cmV0dXJuIE9kKHdNKHQpKT90LnBvcCgpOnZvaWQgMH1mdW5jdGlvbiB1WnQodCxlKXtyZXR1cm4gdHlwZW9mIHdNKHQpPT0ibnVtYmVyIj90LnBvcCgpOmV9dmFyIHhjPWIoKCk9PntkMigpO3hNKCl9KTt2YXIgJDQsUmQ9YigoKT0+eyQ0PShmdW5jdGlvbih0KXtyZXR1cm4gdCYmdHlwZW9mIHQubGVuZ3RoPT0ibnVtYmVyIiYmdHlwZW9mIHQhPSJmdW5jdGlvbiJ9KX0pO2Z1bmN0aW9uIEJkKHQpe3JldHVybiBwdCh0Py50aGVuKX12YXIgTU09YigoKT0+e2QyKCl9KTtmdW5jdGlvbiBIZCh0KXtyZXR1cm4gcHQodFtQb10pfXZhciB6TT1iKCgpPT57dWMoKTtkMigpfSk7ZnVuY3Rpb24gcWQodCl7cmV0dXJuIFN5bWJvbC5hc3luY0l0ZXJhdG9yJiZwdCh0Py5bU3ltYm9sLmFzeW5jSXRlcmF0b3JdKX12YXIga009YigoKT0+e2QyKCl9KTtmdW5jdGlvbiBWZCh0KXtyZXR1cm4gbmV3IFR5cGVFcnJvcigiWW91IHByb3ZpZGVkICIrKHQhPT1udWxsJiZ0eXBlb2YgdD09Im9iamVjdCI/ImFuIGludmFsaWQgb2JqZWN0IjoiJyIrdCsiJyIpKyIgd2hlcmUgYSBzdHJlYW0gd2FzIGV4cGVjdGVkLiBZb3UgY2FuIHByb3ZpZGUgYW4gT2JzZXJ2YWJsZSwgUHJvbWlzZSwgUmVhZGFibGVTdHJlYW0sIEFycmF5LCBBc3luY0l0ZXJhYmxlLCBvciBJdGVyYWJsZS4iKX12YXIgU009YigoKT0+e30pO2Z1bmN0aW9uICR6dCgpe3JldHVybiB0eXBlb2YgU3ltYm9sIT0iZnVuY3Rpb24ifHwhU3ltYm9sLml0ZXJhdG9yPyJAQGl0ZXJhdG9yIjpTeW1ib2wuaXRlcmF0b3J9dmFyIGpkLENNPWIoKCk9PntqZD0kenQoKX0pO2Z1bmN0aW9uIFVkKHQpe3JldHVybiBwdCh0Py5bamRdKX12YXIgX009YigoKT0+e0NNKCk7ZDIoKX0pO2Z1bmN0aW9uIFdkKHQpe3JldHVybiBqdyh0aGlzLGFyZ3VtZW50cyxmdW5jdGlvbigpe3ZhciBhLGkscixzO3JldHVybiBkYyh0aGlzLGZ1bmN0aW9uKG4pe3N3aXRjaChuLmxhYmVsKXtjYXNlIDA6YT10LmdldFJlYWRlcigpLG4ubGFiZWw9MTtjYXNlIDE6bi50cnlzLnB1c2goWzEsLDksMTBdKSxuLmxhYmVsPTI7Y2FzZSAyOnJldHVybls0LGFzKGEucmVhZCgpKV07Y2FzZSAzOnJldHVybiBpPW4uc2VudCgpLHI9aS52YWx1ZSxzPWkuZG9uZSxzP1s0LGFzKHZvaWQgMCldOlszLDVdO2Nhc2UgNDpyZXR1cm5bMixuLnNlbnQoKV07Y2FzZSA1OnJldHVybls0LGFzKHIpXTtjYXNlIDY6cmV0dXJuWzQsbi5zZW50KCldO2Nhc2UgNzpyZXR1cm4gbi5zZW50KCksWzMsMl07Y2FzZSA4OnJldHVyblszLDEwXTtjYXNlIDk6cmV0dXJuIGEucmVsZWFzZUxvY2soKSxbN107Y2FzZSAxMDpyZXR1cm5bMl19fSl9KX1mdW5jdGlvbiBHZCh0KXtyZXR1cm4gcHQodD8uZ2V0UmVhZGVyKX12YXIgWWQ9YigoKT0+e2kxKCk7ZDIoKX0pO2Z1bmN0aW9uIEExKHQpe2lmKHQgaW5zdGFuY2VvZiB3dClyZXR1cm4gdDtpZih0IT1udWxsKXtpZihIZCh0KSlyZXR1cm4gQXp0KHQpO2lmKCQ0KHQpKXJldHVybiBEenQodCk7aWYoQmQodCkpcmV0dXJuIEV6dCh0KTtpZihxZCh0KSlyZXR1cm4gelcodCk7aWYoVWQodCkpcmV0dXJuIFB6dCh0KTtpZihHZCh0KSlyZXR1cm4gSXp0KHQpfXRocm93IFZkKHQpfWZ1bmN0aW9uIEF6dCh0KXtyZXR1cm4gbmV3IHd0KGZ1bmN0aW9uKGUpe3ZhciBhPXRbUG9dKCk7aWYocHQoYS5zdWJzY3JpYmUpKXJldHVybiBhLnN1YnNjcmliZShlKTt0aHJvdyBuZXcgVHlwZUVycm9yKCJQcm92aWRlZCBvYmplY3QgZG9lcyBub3QgY29ycmVjdGx5IGltcGxlbWVudCBTeW1ib2wub2JzZXJ2YWJsZSIpfSl9ZnVuY3Rpb24gRHp0KHQpe3JldHVybiBuZXcgd3QoZnVuY3Rpb24oZSl7Zm9yKHZhciBhPTA7YTx0Lmxlbmd0aCYmIWUuY2xvc2VkO2ErKyllLm5leHQodFthXSk7ZS5jb21wbGV0ZSgpfSl9ZnVuY3Rpb24gRXp0KHQpe3JldHVybiBuZXcgd3QoZnVuY3Rpb24oZSl7dC50aGVuKGZ1bmN0aW9uKGEpe2UuY2xvc2VkfHwoZS5uZXh0KGEpLGUuY29tcGxldGUoKSl9LGZ1bmN0aW9uKGEpe3JldHVybiBlLmVycm9yKGEpfSkudGhlbihudWxsLF9kKX0pfWZ1bmN0aW9uIFB6dCh0KXtyZXR1cm4gbmV3IHd0KGZ1bmN0aW9uKGUpe3ZhciBhLGk7dHJ5e2Zvcih2YXIgcj1OMih0KSxzPXIubmV4dCgpOyFzLmRvbmU7cz1yLm5leHQoKSl7dmFyIG49cy52YWx1ZTtpZihlLm5leHQobiksZS5jbG9zZWQpcmV0dXJufX1jYXRjaChvKXthPXtlcnJvcjpvfX1maW5hbGx5e3RyeXtzJiYhcy5kb25lJiYoaT1yLnJldHVybikmJmkuY2FsbChyKX1maW5hbGx5e2lmKGEpdGhyb3cgYS5lcnJvcn19ZS5jb21wbGV0ZSgpfSl9ZnVuY3Rpb24gelcodCl7cmV0dXJuIG5ldyB3dChmdW5jdGlvbihlKXtOenQodCxlKS5jYXRjaChmdW5jdGlvbihhKXtyZXR1cm4gZS5lcnJvcihhKX0pfSl9ZnVuY3Rpb24gSXp0KHQpe3JldHVybiB6VyhXZCh0KSl9ZnVuY3Rpb24gTnp0KHQsZSl7dmFyIGEsaSxyLHM7cmV0dXJuIFZ3KHRoaXMsdm9pZCAwLHZvaWQgMCxmdW5jdGlvbigpe3ZhciBuLG87cmV0dXJuIGRjKHRoaXMsZnVuY3Rpb24oZCl7c3dpdGNoKGQubGFiZWwpe2Nhc2UgMDpkLnRyeXMucHVzaChbMCw1LDYsMTFdKSxhPVV3KHQpLGQubGFiZWw9MTtjYXNlIDE6cmV0dXJuWzQsYS5uZXh0KCldO2Nhc2UgMjppZihpPWQuc2VudCgpLCEhaS5kb25lKXJldHVyblszLDRdO2lmKG49aS52YWx1ZSxlLm5leHQobiksZS5jbG9zZWQpcmV0dXJuWzJdO2QubGFiZWw9MztjYXNlIDM6cmV0dXJuWzMsMV07Y2FzZSA0OnJldHVyblszLDExXTtjYXNlIDU6cmV0dXJuIG89ZC5zZW50KCkscj17ZXJyb3I6b30sWzMsMTFdO2Nhc2UgNjpyZXR1cm4gZC50cnlzLnB1c2goWzYsLDksMTBdKSxpJiYhaS5kb25lJiYocz1hLnJldHVybik/WzQscy5jYWxsKGEpXTpbMyw4XTtjYXNlIDc6ZC5zZW50KCksZC5sYWJlbD04O2Nhc2UgODpyZXR1cm5bMywxMF07Y2FzZSA5OmlmKHIpdGhyb3cgci5lcnJvcjtyZXR1cm5bN107Y2FzZSAxMDpyZXR1cm5bN107Y2FzZSAxMTpyZXR1cm4gZS5jb21wbGV0ZSgpLFsyXX19KX0pfXZhciBpaT1iKCgpPT57aTEoKTtSZCgpO01NKCk7a2EoKTt6TSgpO2tNKCk7U00oKTtfTSgpO1lkKCk7ZDIoKTtadygpO3VjKCl9KTtmdW5jdGlvbiBNMih0LGUsYSxpLHIpe2k9PT12b2lkIDAmJihpPTApLHI9PT12b2lkIDAmJihyPSExKTt2YXIgcz1lLnNjaGVkdWxlKGZ1bmN0aW9uKCl7YSgpLHI/dC5hZGQodGhpcy5zY2hlZHVsZShudWxsLGkpKTp0aGlzLnVuc3Vic2NyaWJlKCl9LGkpO2lmKHQuYWRkKHMpLCFyKXJldHVybiBzfXZhciBObz1iKCgpPT57fSk7ZnVuY3Rpb24gQTQodCxlKXtyZXR1cm4gZT09PXZvaWQgMCYmKGU9MCksWHQoZnVuY3Rpb24oYSxpKXthLnN1YnNjcmliZShWdChpLGZ1bmN0aW9uKHIpe3JldHVybiBNMihpLHQsZnVuY3Rpb24oKXtyZXR1cm4gaS5uZXh0KHIpfSxlKX0sZnVuY3Rpb24oKXtyZXR1cm4gTTIoaSx0LGZ1bmN0aW9uKCl7cmV0dXJuIGkuY29tcGxldGUoKX0sZSl9LGZ1bmN0aW9uKHIpe3JldHVybiBNMihpLHQsZnVuY3Rpb24oKXtyZXR1cm4gaS5lcnJvcihyKX0sZSl9KSl9KX12YXIgd2M9YigoKT0+e05vKCk7dzIoKTtzYSgpfSk7ZnVuY3Rpb24gRDQodCxlKXtyZXR1cm4gZT09PXZvaWQgMCYmKGU9MCksWHQoZnVuY3Rpb24oYSxpKXtpLmFkZCh0LnNjaGVkdWxlKGZ1bmN0aW9uKCl7cmV0dXJuIGEuc3Vic2NyaWJlKGkpfSxlKSl9KX12YXIgTWM9YigoKT0+e3cyKCl9KTtmdW5jdGlvbiBrVyh0LGUpe3JldHVybiBBMSh0KS5waXBlKEQ0KGUpLEE0KGUpKX12YXIgU1c9YigoKT0+e2lpKCk7d2MoKTtNYygpfSk7ZnVuY3Rpb24gQ1codCxlKXtyZXR1cm4gQTEodCkucGlwZShENChlKSxBNChlKSl9dmFyIF9XPWIoKCk9PntpaSgpO3djKCk7TWMoKX0pO2Z1bmN0aW9uIFRXKHQsZSl7cmV0dXJuIG5ldyB3dChmdW5jdGlvbihhKXt2YXIgaT0wO3JldHVybiBlLnNjaGVkdWxlKGZ1bmN0aW9uKCl7aT09PXQubGVuZ3RoP2EuY29tcGxldGUoKTooYS5uZXh0KHRbaSsrXSksYS5jbG9zZWR8fHRoaXMuc2NoZWR1bGUoKSl9KX0pfXZhciBMVz1iKCgpPT57a2EoKX0pO2Z1bmN0aW9uICRXKHQsZSl7cmV0dXJuIG5ldyB3dChmdW5jdGlvbihhKXt2YXIgaTtyZXR1cm4gTTIoYSxlLGZ1bmN0aW9uKCl7aT10W2pkXSgpLE0yKGEsZSxmdW5jdGlvbigpe3ZhciByLHMsbjt0cnl7cj1pLm5leHQoKSxzPXIudmFsdWUsbj1yLmRvbmV9Y2F0Y2gobyl7YS5lcnJvcihvKTtyZXR1cm59bj9hLmNvbXBsZXRlKCk6YS5uZXh0KHMpfSwwLCEwKX0pLGZ1bmN0aW9uKCl7cmV0dXJuIHB0KGk/LnJldHVybikmJmkucmV0dXJuKCl9fSl9dmFyIEFXPWIoKCk9PntrYSgpO0NNKCk7ZDIoKTtObygpfSk7ZnVuY3Rpb24gWmQodCxlKXtpZighdCl0aHJvdyBuZXcgRXJyb3IoIkl0ZXJhYmxlIGNhbm5vdCBiZSBudWxsIik7cmV0dXJuIG5ldyB3dChmdW5jdGlvbihhKXtNMihhLGUsZnVuY3Rpb24oKXt2YXIgaT10W1N5bWJvbC5hc3luY0l0ZXJhdG9yXSgpO00yKGEsZSxmdW5jdGlvbigpe2kubmV4dCgpLnRoZW4oZnVuY3Rpb24ocil7ci5kb25lP2EuY29tcGxldGUoKTphLm5leHQoci52YWx1ZSl9KX0sMCwhMCl9KX0pfXZhciBUTT1iKCgpPT57a2EoKTtObygpfSk7ZnVuY3Rpb24gRFcodCxlKXtyZXR1cm4gWmQoV2QodCksZSl9dmFyIEVXPWIoKCk9PntUTSgpO1lkKCl9KTtmdW5jdGlvbiBMTSh0LGUpe2lmKHQhPW51bGwpe2lmKEhkKHQpKXJldHVybiBrVyh0LGUpO2lmKCQ0KHQpKXJldHVybiBUVyh0LGUpO2lmKEJkKHQpKXJldHVybiBDVyh0LGUpO2lmKHFkKHQpKXJldHVybiBaZCh0LGUpO2lmKFVkKHQpKXJldHVybiAkVyh0LGUpO2lmKEdkKHQpKXJldHVybiBEVyh0LGUpfXRocm93IFZkKHQpfXZhciAkTT1iKCgpPT57U1coKTtfVygpO0xXKCk7QVcoKTtUTSgpO3pNKCk7TU0oKTtSZCgpO19NKCk7a00oKTtTTSgpO1lkKCk7RVcoKX0pO2Z1bmN0aW9uIEZvKHQsZSl7cmV0dXJuIGU/TE0odCxlKTpBMSh0KX12YXIgWGQ9YigoKT0+eyRNKCk7aWkoKX0pO2Z1bmN0aW9uIHpjKCl7Zm9yKHZhciB0PVtdLGU9MDtlPGFyZ3VtZW50cy5sZW5ndGg7ZSsrKXRbZV09YXJndW1lbnRzW2VdO3ZhciBhPW9uKHQpO3JldHVybiBGbyh0LGEpfXZhciBBTT1iKCgpPT57eGMoKTtYZCgpfSk7ZnVuY3Rpb24gRE0odCxlKXt2YXIgYT1wdCh0KT90OmZ1bmN0aW9uKCl7cmV0dXJuIHR9LGk9ZnVuY3Rpb24ocil7cmV0dXJuIHIuZXJyb3IoYSgpKX07cmV0dXJuIG5ldyB3dChlP2Z1bmN0aW9uKHIpe3JldHVybiBlLnNjaGVkdWxlKGksMCxyKX06aSl9dmFyIEVNPWIoKCk9PntrYSgpO2QyKCl9KTtmdW5jdGlvbiBGenQodCxlKXt2YXIgYSxpLHIscz10LG49cy5raW5kLG89cy52YWx1ZSxkPXMuZXJyb3I7aWYodHlwZW9mIG4hPSJzdHJpbmciKXRocm93IG5ldyBUeXBlRXJyb3IoJ0ludmFsaWQgbm90aWZpY2F0aW9uLCBtaXNzaW5nICJraW5kIicpO249PT0iTiI/KGE9ZS5uZXh0KT09PW51bGx8fGE9PT12b2lkIDB8fGEuY2FsbChlLG8pOm49PT0iRSI/KGk9ZS5lcnJvcik9PT1udWxsfHxpPT09dm9pZCAwfHxpLmNhbGwoZSxkKToocj1lLmNvbXBsZXRlKT09PW51bGx8fHI9PT12b2lkIDB8fHIuY2FsbChlKX12YXIgUE0sUFcsSVc9YigoKT0+e0ZkKCk7QU0oKTtFTSgpO2QyKCk7KGZ1bmN0aW9uKHQpe3QuTkVYVD0iTiIsdC5FUlJPUj0iRSIsdC5DT01QTEVURT0iQyJ9KShQTXx8KFBNPXt9KSk7UFc9KGZ1bmN0aW9uKCl7ZnVuY3Rpb24gdChlLGEsaSl7dGhpcy5raW5kPWUsdGhpcy52YWx1ZT1hLHRoaXMuZXJyb3I9aSx0aGlzLmhhc1ZhbHVlPWU9PT0iTiJ9cmV0dXJuIHQucHJvdG90eXBlLm9ic2VydmU9ZnVuY3Rpb24oZSl7cmV0dXJuIEZ6dCh0aGlzLGUpfSx0LnByb3RvdHlwZS5kbz1mdW5jdGlvbihlLGEsaSl7dmFyIHI9dGhpcyxzPXIua2luZCxuPXIudmFsdWUsbz1yLmVycm9yO3JldHVybiBzPT09Ik4iP2U/LihuKTpzPT09IkUiP2E/LihvKTppPy4oKX0sdC5wcm90b3R5cGUuYWNjZXB0PWZ1bmN0aW9uKGUsYSxpKXt2YXIgcjtyZXR1cm4gcHQoKHI9ZSk9PT1udWxsfHxyPT09dm9pZCAwP3ZvaWQgMDpyLm5leHQpP3RoaXMub2JzZXJ2ZShlKTp0aGlzLmRvKGUsYSxpKX0sdC5wcm90b3R5cGUudG9PYnNlcnZhYmxlPWZ1bmN0aW9uKCl7dmFyIGU9dGhpcyxhPWUua2luZCxpPWUudmFsdWUscj1lLmVycm9yLHM9YT09PSJOIj96YyhpKTphPT09IkUiP0RNKGZ1bmN0aW9uKCl7cmV0dXJuIHJ9KTphPT09IkMiP05kOjA7aWYoIXMpdGhyb3cgbmV3IFR5cGVFcnJvcigiVW5leHBlY3RlZCBub3RpZmljYXRpb24ga2luZCAiK2EpO3JldHVybiBzfSx0LmNyZWF0ZU5leHQ9ZnVuY3Rpb24oZSl7cmV0dXJuIG5ldyB0KCJOIixlKX0sdC5jcmVhdGVFcnJvcj1mdW5jdGlvbihlKXtyZXR1cm4gbmV3IHQoIkUiLHZvaWQgMCxlKX0sdC5jcmVhdGVDb21wbGV0ZT1mdW5jdGlvbigpe3JldHVybiB0LmNvbXBsZXRlTm90aWZpY2F0aW9ufSx0LmNvbXBsZXRlTm90aWZpY2F0aW9uPW5ldyB0KCJDIiksdH0pKCl9KTt2YXIgTlc9YigoKT0+e30pO3ZhciBPenQsRlc9YigoKT0+e25uKCk7T3p0PXphKGZ1bmN0aW9uKHQpe3JldHVybiBmdW5jdGlvbigpe3QodGhpcyksdGhpcy5uYW1lPSJFbXB0eUVycm9yIix0aGlzLm1lc3NhZ2U9Im5vIGVsZW1lbnRzIGluIHNlcXVlbmNlIn19KX0pO3ZhciBPVz1iKCgpPT57fSk7dmFyIFJXPWIoKCk9Pnt9KTt2YXIgUnp0LEJXPWIoKCk9PntubigpO1J6dD16YShmdW5jdGlvbih0KXtyZXR1cm4gZnVuY3Rpb24oKXt0KHRoaXMpLHRoaXMubmFtZT0iQXJndW1lbnRPdXRPZlJhbmdlRXJyb3IiLHRoaXMubWVzc2FnZT0iYXJndW1lbnQgb3V0IG9mIHJhbmdlIn19KX0pO3ZhciBCenQsSFc9YigoKT0+e25uKCk7Qnp0PXphKGZ1bmN0aW9uKHQpe3JldHVybiBmdW5jdGlvbihhKXt0KHRoaXMpLHRoaXMubmFtZT0iTm90Rm91bmRFcnJvciIsdGhpcy5tZXNzYWdlPWF9fSl9KTt2YXIgSHp0LHFXPWIoKCk9PntubigpO0h6dD16YShmdW5jdGlvbih0KXtyZXR1cm4gZnVuY3Rpb24oYSl7dCh0aGlzKSx0aGlzLm5hbWU9IlNlcXVlbmNlRXJyb3IiLHRoaXMubWVzc2FnZT1hfX0pfSk7ZnVuY3Rpb24gS2QodCl7cmV0dXJuIHQgaW5zdGFuY2VvZiBEYXRlJiYhaXNOYU4odCl9dmFyIElNPWIoKCk9Pnt9KTtmdW5jdGlvbiBqVyh0LGUpe3ZhciBhPUtkKHQpP3tmaXJzdDp0fTp0eXBlb2YgdD09Im51bWJlciI/e2VhY2g6dH06dCxpPWEuZmlyc3Qscj1hLmVhY2gscz1hLndpdGgsbj1zPT09dm9pZCAwP3F6dDpzLG89YS5zY2hlZHVsZXIsZD1vPT09dm9pZCAwP2U/P3ByOm8sYz1hLm1ldGEsaD1jPT09dm9pZCAwP251bGw6YztpZihpPT1udWxsJiZyPT1udWxsKXRocm93IG5ldyBUeXBlRXJyb3IoIk5vIHRpbWVvdXQgcHJvdmlkZWQuIik7cmV0dXJuIFh0KGZ1bmN0aW9uKGwsZil7dmFyIGcseSx2PW51bGwsbT0wLHg9ZnVuY3Rpb24oTSl7eT1NMihmLGQsZnVuY3Rpb24oKXt0cnl7Zy51bnN1YnNjcmliZSgpLEExKG4oe21ldGE6aCxsYXN0VmFsdWU6dixzZWVuOm19KSkuc3Vic2NyaWJlKGYpfWNhdGNoKFMpe2YuZXJyb3IoUyl9fSxNKX07Zz1sLnN1YnNjcmliZShWdChmLGZ1bmN0aW9uKE0pe3k/LnVuc3Vic2NyaWJlKCksbSsrLGYubmV4dCh2PU0pLHI+MCYmeChyKX0sdm9pZCAwLHZvaWQgMCxmdW5jdGlvbigpe3k/LmNsb3NlZHx8eT8udW5zdWJzY3JpYmUoKSx2PW51bGx9KSksIW0mJngoaSE9bnVsbD90eXBlb2YgaT09Im51bWJlciI/aToraS1kLm5vdygpOnIpfSl9ZnVuY3Rpb24gcXp0KHQpe3Rocm93IG5ldyBWVyh0KX12YXIgVlcsUWQ9YigoKT0+e0lvKCk7SU0oKTt3MigpO2lpKCk7bm4oKTtzYSgpO05vKCk7Vlc9emEoZnVuY3Rpb24odCl7cmV0dXJuIGZ1bmN0aW9uKGEpe2E9PT12b2lkIDAmJihhPW51bGwpLHQodGhpcyksdGhpcy5tZXNzYWdlPSJUaW1lb3V0IGhhcyBvY2N1cnJlZCIsdGhpcy5uYW1lPSJUaW1lb3V0RXJyb3IiLHRoaXMuaW5mbz1hfX0pfSk7ZnVuY3Rpb24gbG4odCxlKXtyZXR1cm4gWHQoZnVuY3Rpb24oYSxpKXt2YXIgcj0wO2Euc3Vic2NyaWJlKFZ0KGksZnVuY3Rpb24ocyl7aS5uZXh0KHQuY2FsbChlLHMscisrKSl9KSl9KX12YXIga2M9YigoKT0+e3cyKCk7c2EoKX0pO2Z1bmN0aW9uIGp6dCh0LGUpe3JldHVybiBWenQoZSk/dC5hcHBseSh2b2lkIDAseDIoW10sVzEoZSkpKTp0KGUpfWZ1bmN0aW9uIFVXKHQpe3JldHVybiBsbihmdW5jdGlvbihlKXtyZXR1cm4ganp0KHQsZSl9KX12YXIgVnp0LFdXPWIoKCk9PntpMSgpO2tjKCk7Vnp0PUFycmF5LmlzQXJyYXl9KTt2YXIgR1c9YigoKT0+e30pO3ZhciBZVz1iKCgpPT57fSk7dmFyIFpXPWIoKCk9Pnt9KTtmdW5jdGlvbiBYVyh0LGUsYSxpLHIscyxuLG8pe3ZhciBkPVtdLGM9MCxoPTAsbD0hMSxmPWZ1bmN0aW9uKCl7bCYmIWQubGVuZ3RoJiYhYyYmZS5jb21wbGV0ZSgpfSxnPWZ1bmN0aW9uKHYpe3JldHVybiBjPGk/eSh2KTpkLnB1c2godil9LHk9ZnVuY3Rpb24odil7cyYmZS5uZXh0KHYpLGMrKzt2YXIgbT0hMTtBMShhKHYsaCsrKSkuc3Vic2NyaWJlKFZ0KGUsZnVuY3Rpb24oeCl7cj8uKHgpLHM/Zyh4KTplLm5leHQoeCl9LGZ1bmN0aW9uKCl7bT0hMH0sdm9pZCAwLGZ1bmN0aW9uKCl7aWYobSl0cnl7Yy0tO2Zvcih2YXIgeD1mdW5jdGlvbigpe3ZhciBNPWQuc2hpZnQoKTtuP00yKGUsbixmdW5jdGlvbigpe3JldHVybiB5KE0pfSk6eShNKX07ZC5sZW5ndGgmJmM8aTspeCgpO2YoKX1jYXRjaChNKXtlLmVycm9yKE0pfX0pKX07cmV0dXJuIHQuc3Vic2NyaWJlKFZ0KGUsZyxmdW5jdGlvbigpe2w9ITAsZigpfSkpLGZ1bmN0aW9uKCl7bz8uKCl9fXZhciBLVz1iKCgpPT57aWkoKTtObygpO3NhKCl9KTtmdW5jdGlvbiBPbyh0LGUsYSl7cmV0dXJuIGE9PT12b2lkIDAmJihhPTEvMCkscHQoZSk/T28oZnVuY3Rpb24oaSxyKXtyZXR1cm4gbG4oZnVuY3Rpb24ocyxuKXtyZXR1cm4gZShpLHMscixuKX0pKEExKHQoaSxyKSkpfSxhKToodHlwZW9mIGU9PSJudW1iZXIiJiYoYT1lKSxYdChmdW5jdGlvbihpLHIpe3JldHVybiBYVyhpLHIsdCxhKX0pKX12YXIgU2M9YigoKT0+e2tjKCk7aWkoKTt3MigpO0tXKCk7ZDIoKX0pO2Z1bmN0aW9uIEpkKHQpe3JldHVybiB0PT09dm9pZCAwJiYodD0xLzApLE9vKGZjLHQpfXZhciBlNz1iKCgpPT57U2MoKTtBZCgpfSk7ZnVuY3Rpb24gdDcoKXtyZXR1cm4gSmQoMSl9dmFyIGE3PWIoKCk9PntlNygpfSk7ZnVuY3Rpb24gaTcoKXtmb3IodmFyIHQ9W10sZT0wO2U8YXJndW1lbnRzLmxlbmd0aDtlKyspdFtlXT1hcmd1bWVudHNbZV07cmV0dXJuIHQ3KCkoRm8odCxvbih0KSkpfXZhciBOTT1iKCgpPT57YTcoKTt4YygpO1hkKCl9KTt2YXIgUVc9YigoKT0+e30pO3ZhciBKVz1iKCgpPT57fSk7dmFyIGVHPWIoKCk9Pnt9KTtmdW5jdGlvbiBSbyh0LGUsYSxpKXtpZihwdChhKSYmKGk9YSxhPXZvaWQgMCksaSlyZXR1cm4gUm8odCxlLGEpLnBpcGUoVVcoaSkpO3ZhciByPVcxKFh6dCh0KT9XenQubWFwKGZ1bmN0aW9uKG8pe3JldHVybiBmdW5jdGlvbihkKXtyZXR1cm4gdFtvXShlLGQsYSl9fSk6WXp0KHQpP1V6dC5tYXAodEcodCxlKSk6Wnp0KHQpP0d6dC5tYXAodEcodCxlKSk6W10sMikscz1yWzBdLG49clsxXTtpZighcyYmJDQodCkpcmV0dXJuIE9vKGZ1bmN0aW9uKG8pe3JldHVybiBSbyhvLGUsYSl9KShBMSh0KSk7aWYoIXMpdGhyb3cgbmV3IFR5cGVFcnJvcigiSW52YWxpZCBldmVudCB0YXJnZXQiKTtyZXR1cm4gbmV3IHd0KGZ1bmN0aW9uKG8pe3ZhciBkPWZ1bmN0aW9uKCl7Zm9yKHZhciBjPVtdLGg9MDtoPGFyZ3VtZW50cy5sZW5ndGg7aCsrKWNbaF09YXJndW1lbnRzW2hdO3JldHVybiBvLm5leHQoMTxjLmxlbmd0aD9jOmNbMF0pfTtyZXR1cm4gcyhkKSxmdW5jdGlvbigpe3JldHVybiBuKGQpfX0pfWZ1bmN0aW9uIHRHKHQsZSl7cmV0dXJuIGZ1bmN0aW9uKGEpe3JldHVybiBmdW5jdGlvbihpKXtyZXR1cm4gdFthXShlLGkpfX19ZnVuY3Rpb24gWXp0KHQpe3JldHVybiBwdCh0LmFkZExpc3RlbmVyKSYmcHQodC5yZW1vdmVMaXN0ZW5lcil9ZnVuY3Rpb24gWnp0KHQpe3JldHVybiBwdCh0Lm9uKSYmcHQodC5vZmYpfWZ1bmN0aW9uIFh6dCh0KXtyZXR1cm4gcHQodC5hZGRFdmVudExpc3RlbmVyKSYmcHQodC5yZW1vdmVFdmVudExpc3RlbmVyKX12YXIgVXp0LFd6dCxHenQsYUc9YigoKT0+e2kxKCk7aWkoKTtrYSgpO1NjKCk7UmQoKTtkMigpO1dXKCk7VXp0PVsiYWRkTGlzdGVuZXIiLCJyZW1vdmVMaXN0ZW5lciJdLFd6dD1bImFkZEV2ZW50TGlzdGVuZXIiLCJyZW1vdmVFdmVudExpc3RlbmVyIl0sR3p0PVsib24iLCJvZmYiXX0pO3ZhciBpRz1iKCgpPT57fSk7dmFyIHJHPWIoKCk9Pnt9KTt2YXIgc0c9YigoKT0+e30pO2Z1bmN0aW9uIEZNKHQsZSxhKXt0PT09dm9pZCAwJiYodD0wKSxhPT09dm9pZCAwJiYoYT1mTSk7dmFyIGk9LTE7cmV0dXJuIGUhPW51bGwmJihPZChlKT9hPWU6aT1lKSxuZXcgd3QoZnVuY3Rpb24ocil7dmFyIHM9S2QodCk/K3QtYS5ub3coKTp0O3M8MCYmKHM9MCk7dmFyIG49MDtyZXR1cm4gYS5zY2hlZHVsZShmdW5jdGlvbigpe3IuY2xvc2VkfHwoci5uZXh0KG4rKyksMDw9aT90aGlzLnNjaGVkdWxlKHZvaWQgMCxpKTpyLmNvbXBsZXRlKCkpfSxzKX0pfXZhciBPTT1iKCgpPT57a2EoKTtJbygpO3hNKCk7SU0oKX0pO3ZhciBuRz1iKCgpPT57fSk7dmFyIG9HPWIoKCk9Pnt9KTtmdW5jdGlvbiBLenQoKXtyZXR1cm4gbEd9dmFyIGxHLFJNPWIoKCk9PntrYSgpO0FvKCk7bEc9bmV3IHd0KGFpKX0pO3ZhciBjRz1iKCgpPT57fSk7dmFyIGRHPWIoKCk9Pnt9KTtmdW5jdGlvbiByNyh0LGUpe3JldHVybiBYdChmdW5jdGlvbihhLGkpe3ZhciByPTA7YS5zdWJzY3JpYmUoVnQoaSxmdW5jdGlvbihzKXtyZXR1cm4gdC5jYWxsKGUscyxyKyspJiZpLm5leHQocyl9KSl9KX12YXIgQk09YigoKT0+e3cyKCk7c2EoKX0pO3ZhciBoRz1iKCgpPT57fSk7dmFyIHBHPWIoKCk9Pnt9KTt2YXIgdUc9YigoKT0+e30pO3ZhciBmRz1iKCgpPT57fSk7dmFyIG1HPWIoKCk9Pnt9KTt2YXIgZ0c9YigoKT0+e30pO3ZhciBITT1iKCgpPT57fSk7dmFyIHFNPWIoKCk9Pnt9KTtmdW5jdGlvbiBzNyh0KXtyZXR1cm4gWHQoZnVuY3Rpb24oZSxhKXt2YXIgaT1bXTtyZXR1cm4gZS5zdWJzY3JpYmUoVnQoYSxmdW5jdGlvbihyKXtyZXR1cm4gaS5wdXNoKHIpfSxmdW5jdGlvbigpe2EubmV4dChpKSxhLmNvbXBsZXRlKCl9KSksQTEodCkuc3Vic2NyaWJlKFZ0KGEsZnVuY3Rpb24oKXt2YXIgcj1pO2k9W10sYS5uZXh0KHIpfSxhaSkpLGZ1bmN0aW9uKCl7aT1udWxsfX0pfXZhciBWTT1iKCgpPT57dzIoKTtBbygpO3NhKCk7aWkoKX0pO2Z1bmN0aW9uIG43KHQsZSl7cmV0dXJuIGU9PT12b2lkIDAmJihlPW51bGwpLGU9ZT8/dCxYdChmdW5jdGlvbihhLGkpe3ZhciByPVtdLHM9MDthLnN1YnNjcmliZShWdChpLGZ1bmN0aW9uKG4pe3ZhciBvLGQsYyxoLGw9bnVsbDtzKyslZT09PTAmJnIucHVzaChbXSk7dHJ5e2Zvcih2YXIgZj1OMihyKSxnPWYubmV4dCgpOyFnLmRvbmU7Zz1mLm5leHQoKSl7dmFyIHk9Zy52YWx1ZTt5LnB1c2gobiksdDw9eS5sZW5ndGgmJihsPWw/P1tdLGwucHVzaCh5KSl9fWNhdGNoKHgpe289e2Vycm9yOnh9fWZpbmFsbHl7dHJ5e2cmJiFnLmRvbmUmJihkPWYucmV0dXJuKSYmZC5jYWxsKGYpfWZpbmFsbHl7aWYobyl0aHJvdyBvLmVycm9yfX1pZihsKXRyeXtmb3IodmFyIHY9TjIobCksbT12Lm5leHQoKTshbS5kb25lO209di5uZXh0KCkpe3ZhciB5PW0udmFsdWU7TGkocix5KSxpLm5leHQoeSl9fWNhdGNoKHgpe2M9e2Vycm9yOnh9fWZpbmFsbHl7dHJ5e20mJiFtLmRvbmUmJihoPXYucmV0dXJuKSYmaC5jYWxsKHYpfWZpbmFsbHl7aWYoYyl0aHJvdyBjLmVycm9yfX19LGZ1bmN0aW9uKCl7dmFyIG4sbzt0cnl7Zm9yKHZhciBkPU4yKHIpLGM9ZC5uZXh0KCk7IWMuZG9uZTtjPWQubmV4dCgpKXt2YXIgaD1jLnZhbHVlO2kubmV4dChoKX19Y2F0Y2gobCl7bj17ZXJyb3I6bH19ZmluYWxseXt0cnl7YyYmIWMuZG9uZSYmKG89ZC5yZXR1cm4pJiZvLmNhbGwoZCl9ZmluYWxseXtpZihuKXRocm93IG4uZXJyb3J9fWkuY29tcGxldGUoKX0sdm9pZCAwLGZ1bmN0aW9uKCl7cj1udWxsfSkpfSl9dmFyIGpNPWIoKCk9PntpMSgpO3cyKCk7c2EoKTtrNCgpfSk7ZnVuY3Rpb24gbzcodCl7Zm9yKHZhciBlLGEsaT1bXSxyPTE7cjxhcmd1bWVudHMubGVuZ3RoO3IrKylpW3ItMV09YXJndW1lbnRzW3JdO3ZhciBzPShlPW9uKGkpKSE9PW51bGwmJmUhPT12b2lkIDA/ZTpwcixuPShhPWlbMF0pIT09bnVsbCYmYSE9PXZvaWQgMD9hOm51bGwsbz1pWzFdfHwxLzA7cmV0dXJuIFh0KGZ1bmN0aW9uKGQsYyl7dmFyIGg9W10sbD0hMSxmPWZ1bmN0aW9uKHYpe3ZhciBtPXYuYnVmZmVyLHg9di5zdWJzO3gudW5zdWJzY3JpYmUoKSxMaShoLHYpLGMubmV4dChtKSxsJiZnKCl9LGc9ZnVuY3Rpb24oKXtpZihoKXt2YXIgdj1uZXcgTzE7Yy5hZGQodik7dmFyIG09W10seD17YnVmZmVyOm0sc3Viczp2fTtoLnB1c2goeCksTTIodixzLGZ1bmN0aW9uKCl7cmV0dXJuIGYoeCl9LHQpfX07biE9PW51bGwmJm4+PTA/TTIoYyxzLGcsbiwhMCk6bD0hMCxnKCk7dmFyIHk9VnQoYyxmdW5jdGlvbih2KXt2YXIgbSx4LE09aC5zbGljZSgpO3RyeXtmb3IodmFyIFM9TjIoTSksRj1TLm5leHQoKTshRi5kb25lO0Y9Uy5uZXh0KCkpe3ZhciBfPUYudmFsdWUsaz1fLmJ1ZmZlcjtrLnB1c2godiksbzw9ay5sZW5ndGgmJmYoXyl9fWNhdGNoKE4pe209e2Vycm9yOk59fWZpbmFsbHl7dHJ5e0YmJiFGLmRvbmUmJih4PVMucmV0dXJuKSYmeC5jYWxsKFMpfWZpbmFsbHl7aWYobSl0aHJvdyBtLmVycm9yfX19LGZ1bmN0aW9uKCl7Zm9yKDtoPy5sZW5ndGg7KWMubmV4dChoLnNoaWZ0KCkuYnVmZmVyKTt5Py51bnN1YnNjcmliZSgpLGMuY29tcGxldGUoKSxjLnVuc3Vic2NyaWJlKCl9LHZvaWQgMCxmdW5jdGlvbigpe3JldHVybiBoPW51bGx9KTtkLnN1YnNjcmliZSh5KX0pfXZhciBVTT1iKCgpPT57aTEoKTtocigpO3cyKCk7c2EoKTtrNCgpO0lvKCk7eGMoKTtObygpfSk7dmFyIFdNPWIoKCk9Pnt9KTt2YXIgR009YigoKT0+e30pO3ZhciBZTT1iKCgpPT57fSk7dmFyIFpNPWIoKCk9Pnt9KTt2YXIgWE09YigoKT0+e30pO3ZhciBLTT1iKCgpPT57fSk7dmFyIFFNPWIoKCk9Pnt9KTt2YXIgYkc9YigoKT0+e30pO3ZhciBKTT1iKCgpPT57fSk7dmFyIGV6PWIoKCk9Pnt9KTt2YXIgdHo9YigoKT0+e30pO3ZhciB2Rz1iKCgpPT57fSk7dmFyIGF6PWIoKCk9Pnt9KTt2YXIgaXo9YigoKT0+e30pO3ZhciByej1iKCgpPT57fSk7ZnVuY3Rpb24gbDcodCl7cmV0dXJuIFh0KGZ1bmN0aW9uKGUsYSl7dmFyIGk9ITEscj1udWxsLHM9bnVsbCxuPWZ1bmN0aW9uKCl7aWYocz8udW5zdWJzY3JpYmUoKSxzPW51bGwsaSl7aT0hMTt2YXIgbz1yO3I9bnVsbCxhLm5leHQobyl9fTtlLnN1YnNjcmliZShWdChhLGZ1bmN0aW9uKG8pe3M/LnVuc3Vic2NyaWJlKCksaT0hMCxyPW8scz1WdChhLG4sYWkpLEExKHQobykpLnN1YnNjcmliZShzKX0sZnVuY3Rpb24oKXtuKCksYS5jb21wbGV0ZSgpfSx2b2lkIDAsZnVuY3Rpb24oKXtyPXM9bnVsbH0pKX0pfXZhciBzej1iKCgpPT57dzIoKTtBbygpO3NhKCk7aWkoKX0pO2Z1bmN0aW9uIGM3KHQsZSl7cmV0dXJuIGU9PT12b2lkIDAmJihlPXByKSxYdChmdW5jdGlvbihhLGkpe3ZhciByPW51bGwscz1udWxsLG49bnVsbCxvPWZ1bmN0aW9uKCl7aWYocil7ci51bnN1YnNjcmliZSgpLHI9bnVsbDt2YXIgYz1zO3M9bnVsbCxpLm5leHQoYyl9fTtmdW5jdGlvbiBkKCl7dmFyIGM9bit0LGg9ZS5ub3coKTtpZihoPGMpe3I9dGhpcy5zY2hlZHVsZSh2b2lkIDAsYy1oKSxpLmFkZChyKTtyZXR1cm59bygpfWEuc3Vic2NyaWJlKFZ0KGksZnVuY3Rpb24oYyl7cz1jLG49ZS5ub3coKSxyfHwocj1lLnNjaGVkdWxlKGQsdCksaS5hZGQocikpfSxmdW5jdGlvbigpe28oKSxpLmNvbXBsZXRlKCl9LHZvaWQgMCxmdW5jdGlvbigpe3M9cj1udWxsfSkpfSl9dmFyIG56PWIoKCk9PntJbygpO3cyKCk7c2EoKX0pO3ZhciBvej1iKCgpPT57fSk7dmFyIGx6PWIoKCk9Pnt9KTt2YXIgY3o9YigoKT0+e30pO3ZhciBkej1iKCgpPT57fSk7dmFyIGh6PWIoKCk9Pnt9KTt2YXIgcHo9YigoKT0+e30pO3ZhciB1ej1iKCgpPT57fSk7dmFyIGZ6PWIoKCk9Pnt9KTt2YXIgbXo9YigoKT0+e30pO3ZhciBnej1iKCgpPT57fSk7dmFyIGJ6PWIoKCk9Pnt9KTt2YXIgdno9YigoKT0+e30pO3ZhciB5ej1iKCgpPT57fSk7dmFyIHh6PWIoKCk9Pnt9KTt2YXIgd3o9YigoKT0+e30pO3ZhciBNej1iKCgpPT57fSk7dmFyIHp6PWIoKCk9Pnt9KTt2YXIga3o9YigoKT0+e30pO3ZhciBTej1iKCgpPT57fSk7dmFyIEN6PWIoKCk9Pnt9KTt2YXIgX3o9YigoKT0+e30pO3ZhciBUej1iKCgpPT57fSk7dmFyIEx6PWIoKCk9Pnt9KTt2YXIgJHo9YigoKT0+e30pO3ZhciBBej1iKCgpPT57fSk7dmFyIER6PWIoKCk9Pnt9KTt2YXIgRXo9YigoKT0+e30pO3ZhciBQej1iKCgpPT57fSk7dmFyIEl6PWIoKCk9Pnt9KTt2YXIgTno9YigoKT0+e30pO3ZhciBGej1iKCgpPT57fSk7dmFyIHlHPWIoKCk9Pnt9KTt2YXIgT3o9YigoKT0+e30pO3ZhciBSej1iKCgpPT57fSk7dmFyIEJ6PWIoKCk9Pnt9KTt2YXIgSHo9YigoKT0+e30pO3ZhciBxej1iKCgpPT57fSk7dmFyIFZ6PWIoKCk9Pnt9KTt2YXIgano9YigoKT0+e30pO3ZhciBVej1iKCgpPT57fSk7dmFyIFd6PWIoKCk9Pnt9KTt2YXIgR3o9YigoKT0+e30pO3ZhciBZej1iKCgpPT57fSk7dmFyIFp6PWIoKCk9Pnt9KTt2YXIgWHo9YigoKT0+e30pO3ZhciBLej1iKCgpPT57fSk7dmFyIFF6PWIoKCk9Pnt9KTt2YXIgSno9YigoKT0+e30pO3ZhciBlaz1iKCgpPT57fSk7dmFyIHRrPWIoKCk9Pnt9KTt2YXIgYWs9YigoKT0+e30pO3ZhciBpaz1iKCgpPT57fSk7dmFyIHJrPWIoKCk9Pnt9KTt2YXIgc2s9YigoKT0+e30pO3ZhciBuaz1iKCgpPT57fSk7dmFyIG9rPWIoKCk9Pnt9KTt2YXIgbGs9YigoKT0+e30pO3ZhciBjaz1iKCgpPT57fSk7ZnVuY3Rpb24gZDcoKXtmb3IodmFyIHQ9W10sZT0wO2U8YXJndW1lbnRzLmxlbmd0aDtlKyspdFtlXT1hcmd1bWVudHNbZV07dmFyIGE9b24odCk7cmV0dXJuIFh0KGZ1bmN0aW9uKGkscil7KGE/aTcodCxpLGEpOmk3KHQsaSkpLnN1YnNjcmliZShyKX0pfXZhciBkaz1iKCgpPT57Tk0oKTt4YygpO3cyKCl9KTt2YXIgaGs9YigoKT0+e30pO3ZhciBwaz1iKCgpPT57fSk7dmFyIHVrPWIoKCk9Pnt9KTt2YXIgZms9YigoKT0+e30pO2Z1bmN0aW9uIGg3KHQpe3JldHVybiBYdChmdW5jdGlvbihlLGEpe0ExKHQpLnN1YnNjcmliZShWdChhLGZ1bmN0aW9uKCl7cmV0dXJuIGEuY29tcGxldGUoKX0sYWkpKSwhYS5jbG9zZWQmJmUuc3Vic2NyaWJlKGEpfSl9dmFyIG1rPWIoKCk9Pnt3MigpO3NhKCk7aWkoKTtBbygpfSk7dmFyIGdrPWIoKCk9Pnt9KTt2YXIgYms9YigoKT0+e30pO2Z1bmN0aW9uIHA3KHQsZSl7cmV0dXJuIFh0KGZ1bmN0aW9uKGEsaSl7dmFyIHI9ZT8/e30scz1yLmxlYWRpbmcsbj1zPT09dm9pZCAwPyEwOnMsbz1yLnRyYWlsaW5nLGQ9bz09PXZvaWQgMD8hMTpvLGM9ITEsaD1udWxsLGw9bnVsbCxmPSExLGc9ZnVuY3Rpb24oKXtsPy51bnN1YnNjcmliZSgpLGw9bnVsbCxkJiYobSgpLGYmJmkuY29tcGxldGUoKSl9LHk9ZnVuY3Rpb24oKXtsPW51bGwsZiYmaS5jb21wbGV0ZSgpfSx2PWZ1bmN0aW9uKHgpe3JldHVybiBsPUExKHQoeCkpLnN1YnNjcmliZShWdChpLGcseSkpfSxtPWZ1bmN0aW9uKCl7aWYoYyl7Yz0hMTt2YXIgeD1oO2g9bnVsbCxpLm5leHQoeCksIWYmJnYoeCl9fTthLnN1YnNjcmliZShWdChpLGZ1bmN0aW9uKHgpe2M9ITAsaD14LCEobCYmIWwuY2xvc2VkKSYmKG4/bSgpOnYoeCkpfSxmdW5jdGlvbigpe2Y9ITAsIShkJiZjJiZsJiYhbC5jbG9zZWQpJiZpLmNvbXBsZXRlKCl9KSl9KX12YXIgdTc9YigoKT0+e3cyKCk7c2EoKTtpaSgpfSk7ZnVuY3Rpb24gZjcodCxlLGEpe2U9PT12b2lkIDAmJihlPXByKTt2YXIgaT1GTSh0LGUpO3JldHVybiBwNyhmdW5jdGlvbigpe3JldHVybiBpfSxhKX12YXIgdms9YigoKT0+e0lvKCk7dTcoKTtPTSgpfSk7dmFyIHlrPWIoKCk9Pnt9KTt2YXIgeGs9YigoKT0+e30pO3ZhciB3az1iKCgpPT57fSk7dmFyIE1rPWIoKCk9Pnt9KTt2YXIgems9YigoKT0+e30pO3ZhciBraz1iKCgpPT57fSk7dmFyIFNrPWIoKCk9Pnt9KTt2YXIgQ2s9YigoKT0+e30pO3ZhciBfaz1iKCgpPT57fSk7dmFyIFRrPWIoKCk9Pnt9KTt2YXIgeEc9YigoKT0+e30pO3ZhciBMaz1iKCgpPT57fSk7dmFyICRrPWIoKCk9PntrYSgpO1pVKCk7dWMoKTtRVSgpO21jKCk7ZVcoKTt0VygpO2lXKCk7cFcoKTtJbygpO2dXKCk7eFcoKTtNVygpO3BNKCk7aHIoKTskZCgpO0lXKCk7ZU0oKTtBbygpO0FkKCk7TlcoKTtPVygpO1JXKCk7QlcoKTtGVygpO0hXKCk7c00oKTtxVygpO1FkKCk7V3coKTtHVygpO1lXKCk7WlcoKTtOTSgpO0pXKCk7UVcoKTtGZCgpO2VHKCk7WGQoKTthRygpO2lHKCk7ckcoKTtzRygpO25HKCk7b0coKTtSTSgpO0FNKCk7Y0coKTtkRygpO2hHKCk7cEcoKTt1RygpO0VNKCk7T00oKTtmRygpO21HKCk7JE0oKTtGZCgpO1JNKCk7Z0coKTtTNCgpO0hNKCk7cU0oKTtWTSgpO2pNKCk7VU0oKTtXTSgpO0dNKCk7WU0oKTtRTSgpO0tNKCk7Sk0oKTthNygpO2V6KCk7dHooKTtheigpO2l6KCk7cnooKTtzeigpO256KCk7b3ooKTtweigpO2h6KCk7dXooKTtmeigpO216KCk7Z3ooKTt2eigpO3l6KCk7eHooKTt6eigpO016KCk7d3ooKTtreigpO0JNKCk7U3ooKTtDeigpO196KCk7VHooKTtMeigpO2N6KCk7JHooKTtEeigpO2tjKCk7ZHooKTtFeigpO1B6KCk7ZTcoKTtJeigpO1NjKCk7TnooKTtGeigpO096KCk7UnooKTtCeigpO3djKCk7SHooKTtxeigpO1Z6KCk7anooKTtVeigpO1d6KCk7R3ooKTtZeigpO1pNKCk7WnooKTtYeigpO0t6KCk7UXooKTtFZCgpO0p6KCk7ZWsoKTt0aygpO2FrKCk7aWsoKTtyaygpO3NrKCk7bmsoKTtvaygpO2xrKCk7Y2soKTtkaygpO01jKCk7cGsoKTtoaygpO3VrKCk7ZmsoKTtseigpO0F6KCk7bWsoKTtnaygpO2JrKCk7dTcoKTt2aygpO2J6KCk7eWsoKTtRZCgpO3hrKCk7d2soKTtYTSgpO01rKCk7emsoKTtraygpO1NrKCk7Q2soKTtfaygpO1RrKCk7TGsoKX0pO3ZhciB3Rz1iKCgpPT57fSk7dmFyIE1HPWIoKCk9Pnt9KTt2YXIgekc9YigoKT0+e0hNKCk7cU0oKTtWTSgpO2pNKCk7VU0oKTtXTSgpO0dNKCk7WU0oKTtRTSgpO0tNKCk7YkcoKTtKTSgpO3ZHKCk7YTcoKTtleigpO3R6KCk7YXooKTtpeigpO3J6KCk7c3ooKTtueigpO296KCk7cHooKTtoeigpO3V6KCk7ZnooKTtteigpO2d6KCk7dnooKTt5eigpO3h6KCk7enooKTtNeigpO3d6KCk7a3ooKTtCTSgpO1N6KCk7Q3ooKTtfeigpO1R6KCk7THooKTtjeigpOyR6KCk7RHooKTtrYygpO2R6KCk7RXooKTtQeigpO3lHKCk7ZTcoKTtJeigpO1NjKCk7TnooKTtGeigpO096KCk7UnooKTtCeigpO3djKCk7SHooKTtxeigpO3dHKCk7VnooKTtqeigpO1V6KCk7V3ooKTtHeigpO01HKCk7WXooKTtaTSgpO1p6KCk7WHooKTtLeigpO1F6KCk7RWQoKTtKeigpO2VrKCk7dGsoKTthaygpO2lrKCk7cmsoKTtzaygpO25rKCk7b2soKTtsaygpO2NrKCk7ZGsoKTtNYygpO3BrKCk7aGsoKTt1aygpO2ZrKCk7bHooKTtBeigpO21rKCk7Z2soKTtiaygpO3U3KCk7dmsoKTtieigpO3lrKCk7UWQoKTt4aygpO3drKCk7WE0oKTtNaygpO3prKCk7a2soKTtTaygpO0NrKCk7X2soKTt4RygpO1RrKCk7TGsoKX0pO3ZhciBFND17fTtHZShFNCx7T2JzZXJ2YWJsZTooKT0+d3QsUmVwbGF5U3ViamVjdDooKT0+UGQsU3ViamVjdDooKT0+U2EsU3Vic2NyaXB0aW9uOigpPT5PMSxmcm9tOigpPT5Gbyxmcm9tRXZlbnQ6KCk9PlJvLG9mOigpPT56YyxvcHM6KCk9PkRTdH0pO3ZhciBEU3QsbTc9YigoKT0+eyRrKCk7ekcoKTtEU3Q9e2J1ZmZlcjpzNyxidWZmZXJDb3VudDpuNyxidWZmZXJUaW1lOm83LGRlYm91bmNlOmw3LGRlYm91bmNlVGltZTpjNyxmaWx0ZXI6cjcsbWFwOmxuLHN0YXJ0V2l0aDpkNyx0YWtlVW50aWw6aDcsdGhyb3R0bGVUaW1lOmY3fX0pO3ZhciBBayxrRz1iKCgpPT57U2QoKTttNygpO0FrPWNsYXNze2NvbnN0cnVjdG9yKCl7dGhpcy5vYnNlcnZhYmxlRXZlbnRFbWl0dGVyQnVuZGxlQXJyYXk9bmV3IEFycmF5LHRoaXMub2JzZXJ2YWJsZUV2ZW50VGFyZ2V0QnVuZGxlQXJyYXk9bmV3IEFycmF5fWdldFN1YmplY3RGb3JFbWl0dGVyRXZlbnQoZSxhKXtsZXQgaT10aGlzLm9ic2VydmFibGVFdmVudEVtaXR0ZXJCdW5kbGVBcnJheS5maW5kKHI9PnIuZXZlbnRSZWY9PT1lJiZyLmV2ZW50PT09YSk7aWYoaSlyZXR1cm4gaS5zdWJqZWN0O3tsZXQgcj1SbyhlLGEpLHM9bmV3IFNhO3Iuc3Vic2NyaWJlKHMpO2xldCBuPXtzdWJqZWN0OnMsZXZlbnRSZWY6ZSxldmVudDphfTtyZXR1cm4gdGhpcy5vYnNlcnZhYmxlRXZlbnRFbWl0dGVyQnVuZGxlQXJyYXkucHVzaChuKSxuLnN1YmplY3R9fWdldFN1YmplY3RGb3JFdmVudFRhcmdldChlLGEpe2xldCBpPXRoaXMub2JzZXJ2YWJsZUV2ZW50VGFyZ2V0QnVuZGxlQXJyYXkuZmluZChyPT5yLmV2ZW50UmVmPT09ZSYmci5ldmVudD09PWEpO2lmKGkpcmV0dXJuIGkuc3ViamVjdDt7bGV0IHM9e3N1YmplY3Q6bmV3IFNhLGV2ZW50UmVmOmUsZXZlbnQ6YX07cmV0dXJuIHRoaXMub2JzZXJ2YWJsZUV2ZW50VGFyZ2V0QnVuZGxlQXJyYXkucHVzaChzKSxzLnN1YmplY3R9fX19KTt2YXIgRGssU0c9YigoKT0+e1NkKCk7bTcoKTtEaz1jbGFzc3tjb25zdHJ1Y3Rvcigpe3RoaXMub2JzZXJ2YWJsZUZ1bmN0aW9ucz17bmV4dDplPT57fSxjb21wbGV0ZTplPT57fX0sdGhpcy5nZW5lcmF0b3I9bnVsbCx0aGlzLmJ1ZmZlcmVkPSExLHRoaXMucGF5bG9hZEJ1ZmZlcj1bXSx0aGlzLm9ic2VydmFibGU9bmV3IHd0KGU9Pnt0aGlzLm9ic2VydmFibGVGdW5jdGlvbnMubmV4dD0oLi4uYSk9PmUubmV4dChhKSx0aGlzLm9ic2VydmFibGVGdW5jdGlvbnMuY29tcGxldGU9KCk9Pih0aGlzLmNvbXBsZXRlZERlZmZlcmVkLnJlc29sdmUoKSxlLmNvbXBsZXRlKCkpfSksdGhpcy5jb21wbGV0ZWREZWZmZXJlZD1CZS5kZWZlcigpLHRoaXMuY29tcGxldGVkPXRoaXMuY29tcGxldGVkRGVmZmVyZWQucHJvbWlzZX1zZXRPYnNlcnZhYmxlKGUpe3RoaXMub2JzZXJ2YWJsZT1lfXB1c2goZSl7dGhpcy5idWZmZXJlZD90aGlzLnBheWxvYWRCdWZmZXIucHVzaChlKTp0aGlzLmludGVybmFsUHVzaChlKX1wdXNoTWFueShlKXtmb3IobGV0IGEgb2YgZSl0aGlzLnB1c2goYSl9c2V0R2VuZXJhdG9yKGUpe3RoaXMuZ2VuZXJhdG9yPWV9bWFrZUJ1ZmZlcmVkKCl7dGhpcy5idWZmZXJlZD0hMH1zdWJzY3JpYmUoLi4uZSl7cmV0dXJuIHRoaXMub2JzZXJ2YWJsZS5zdWJzY3JpYmUoLi4uZSl9cmVxdWVzdChlKXtpZihlIT09MClmb3IobGV0IGE9MDthIT09ZTthKyspaWYodGhpcy5wYXlsb2FkQnVmZmVyLmxlbmd0aD4wKXRoaXMuaW50ZXJuYWxQdXNoKHRoaXMucGF5bG9hZEJ1ZmZlci5zaGlmdCgpKTtlbHNle2xldCBpPXRoaXMuZ2VuZXJhdG9yLm5leHQoKTt0aGlzLmludGVybmFsUHVzaChpLnZhbHVlKX19c2lnbmFsQ29tcGxldGUoKXt0aGlzLm9ic2VydmFibGVGdW5jdGlvbnMuY29tcGxldGUoKX1pbnRlcm5hbFB1c2goZSl7dGhpcy5vYnNlcnZhYmxlRnVuY3Rpb25zLm5leHQoZSl9fX0pO2Z1bmN0aW9uIEVTdCh0KXtyZXR1cm4gbmV3IHd0KGU9PntsZXQgYT0oKT0+dC5wYXVzZSgpLGk9KCk9PnByb2Nlc3MubmV4dFRpY2soKCk9PnQucmVzdW1lKCkpLHI9cz0+e2EoKSxlLm5leHQocyksaSgpfTtyZXR1cm4gdC5vbigiZGF0YSIsciksdC5vbigiZXJyb3IiLHM9PmUuZXJyb3IocykpLHQub24oImVuZCIsKCk9PmUuY29tcGxldGUoKSksdC5vbigiY2xvc2UiLCgpPT5lLmNvbXBsZXRlKCkpLCgpPT57dC5yZW1vdmVMaXN0ZW5lcigiZGF0YSIsciksdC5yZW1vdmVMaXN0ZW5lcigiZXJyb3IiLGUuZXJyb3IpLHQucmVtb3ZlTGlzdGVuZXIoImVuZCIsZS5jb21wbGV0ZSksdC5yZW1vdmVMaXN0ZW5lcigiY2xvc2UiLGUuY29tcGxldGUpfX0pfXZhciBDRz1iKCgpPT57JGsoKX0pO3ZhciBBdD17fTtHZShBdCx7T2JzZXJ2YWJsZUludGFrZTooKT0+RGssT2JzZXJ2YWJsZW1hcDooKT0+QWssZnJvbVN0cmVhbVdpdGhCYWNrcHJlc3N1cmU6KCk9PkVTdCxyeGpzOigpPT5FNH0pO3ZhciBEaT1iKCgpPT57U2QoKTtrRygpO1NHKCk7Q0coKTttNygpfSk7ZnVuY3Rpb24gSSh0KXtyZXR1cm4oZSxhKT0+dHlwZW9mIGE9PSJvYmplY3QiP19HKHQsZSxhKTooKGkscixzKT0+e2xldCBuPXIuaGFzT3duUHJvcGVydHkocyk7cmV0dXJuIHIuY29uc3RydWN0b3IuY3JlYXRlUHJvcGVydHkocyxpKSxuP09iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IocixzKTp2b2lkIDB9KSh0LGUsYSl9dmFyIFBTdCxfRyxnNz1iKCgpPT57c2MoKTtQU3Q9e2F0dHJpYnV0ZTohMCx0eXBlOlN0cmluZyxjb252ZXJ0ZXI6TTQscmVmbGVjdDohMSxoYXNDaGFuZ2VkOnJjfSxfRz0odD1QU3QsZSxhKT0+e2xldHtraW5kOmksbWV0YWRhdGE6cn09YSxzPWdsb2JhbFRoaXMubGl0UHJvcGVydHlNZXRhZGF0YS5nZXQocik7aWYocz09PXZvaWQgMCYmZ2xvYmFsVGhpcy5saXRQcm9wZXJ0eU1ldGFkYXRhLnNldChyLHM9bmV3IE1hcCksaT09PSJzZXR0ZXIiJiYoKHQ9T2JqZWN0LmNyZWF0ZSh0KSkud3JhcHBlZD0hMCkscy5zZXQoYS5uYW1lLHQpLGk9PT0iYWNjZXNzb3IiKXtsZXR7bmFtZTpufT1hO3JldHVybntzZXQobyl7bGV0IGQ9ZS5nZXQuY2FsbCh0aGlzKTtlLnNldC5jYWxsKHRoaXMsbyksdGhpcy5yZXF1ZXN0VXBkYXRlKG4sZCx0LCEwLG8pfSxpbml0KG8pe3JldHVybiBvIT09dm9pZCAwJiZ0aGlzLkMobix2b2lkIDAsdCxvKSxvfX19aWYoaT09PSJzZXR0ZXIiKXtsZXR7bmFtZTpufT1hO3JldHVybiBmdW5jdGlvbihvKXtsZXQgZD10aGlzW25dO2UuY2FsbCh0aGlzLG8pLHRoaXMucmVxdWVzdFVwZGF0ZShuLGQsdCwhMCxvKX19dGhyb3cgRXJyb3IoIlVuc3VwcG9ydGVkIGRlY29yYXRvciBsb2NhdGlvbjogIitpKX19KTt2YXIgVEc9YigoKT0+e2c3KCl9KTt2YXIgTEc9YigoKT0+e30pO3ZhciBkdD17fTtHZShkdCx7VGltZW91dDooKT0+YjcsZGVsYXlGb3I6KCk9PiRHLGRlbGF5Rm9yUmFuZG9tOigpPT5JU3R9KTt2YXIgJEcsSVN0LGI3LHVyPWIoKCk9PntjMigpOyRHPWFzeW5jKHQsZSxhPSExKT0+KGF3YWl0IG5ldyBiNyh0LG51bGwsYSkucHJvbWlzZSxlKSxJU3Q9YXN5bmModCxlLGEsaT0hMSk9Pihhd2FpdCAkRyhNYXRoLnJhbmRvbSgpKihlLXQpK3QsbnVsbCxpKSxhKSxiNz1jbGFzc3tjb25zdHJ1Y3RvcihlLGEsaT0hMSl7dGhpcy5fY2FuY2VsbGVkPSExLHRoaXMudGltZW91dEluTWlsbGlzPWUsdGhpcy5fZGVmZXJyZWQ9c24oKSx0aGlzLnByb21pc2U9dGhpcy5fZGVmZXJyZWQucHJvbWlzZSx0aGlzLl90aW1lb3V0PXNldFRpbWVvdXQoKCk9Pnt0aGlzLl9jYW5jZWxsZWR8fHRoaXMuX2RlZmVycmVkLnJlc29sdmUoYSl9LGUpLHRoaXMuc3RhcnRlZD1EYXRlLm5vdygpLGkmJnRoaXMubWFrZVVucmVmZWQoKX1tYWtlVW5yZWZlZCgpe3RoaXMuX3RpbWVvdXQudW5yZWYoKX1jYW5jZWwoKXt0aGlzLl9jYW5jZWxsZWQ9ITAsY2xlYXJUaW1lb3V0KHRoaXMuX3RpbWVvdXQpfWdldFRpbWVMZWZ0KCl7bGV0IGU9dGhpcy5zdGFydGVkK3RoaXMudGltZW91dEluTWlsbGlzLURhdGUubm93KCk7cmV0dXJuIGU+MD9lOjB9fX0pO3ZhciBjbj17fTt2YXIgQ2M9YigoKT0+e30pO2Z1bmN0aW9uIEJvKHQpe2lmKHR5cGVvZiB0IT0ic3RyaW5nIil0aHJvdyBuZXcgVHlwZUVycm9yKCJFeHBlY3RlZCBhIHN0cmluZyIpO3JldHVybiB0LnJlcGxhY2UoL1t8XFx7fSgpW1xdXiQrKj8uXS9nLCJcXCQmIikucmVwbGFjZSgvLS9nLCJcXHgyZCIpfXZhciB2Nz1iKCgpPT57fSk7dmFyIF9jPXt9O0dlKF9jLHtpc01hdGNoOigpPT5PU3QsbWF0Y2hlcjooKT0+RlN0fSk7ZnVuY3Rpb24gRlN0KHQsZSxhKXtyZXR1cm4gREcodCxlLGEsITEpfWZ1bmN0aW9uIE9TdCh0LGUsYSl7cmV0dXJuIERHKHQsZSxhLCEwKS5sZW5ndGg+MH12YXIgRWssQUcsTlN0LERHLEVHPWIoKCk9Pnt2NygpO0VrPW5ldyBNYXAsQUc9KHQsZSk9PntpZighQXJyYXkuaXNBcnJheSh0KSlzd2l0Y2godHlwZW9mIHQpe2Nhc2Uic3RyaW5nIjp0PVt0XTticmVhaztjYXNlInVuZGVmaW5lZCI6dD1bXTticmVhaztkZWZhdWx0OnRocm93IG5ldyBUeXBlRXJyb3IoYEV4cGVjdGVkICcke2V9JyB0byBiZSBhIHN0cmluZyBvciBhbiBhcnJheSwgYnV0IGdvdCBhIHR5cGUgb2YgJyR7dHlwZW9mIHR9J2ApfXJldHVybiB0LmZpbHRlcihhPT57aWYodHlwZW9mIGEhPSJzdHJpbmciKXtpZih0eXBlb2YgYT4idSIpcmV0dXJuITE7dGhyb3cgbmV3IFR5cGVFcnJvcihgRXhwZWN0ZWQgJyR7ZX0nIHRvIGJlIGFuIGFycmF5IG9mIHN0cmluZ3MsIGJ1dCBmb3VuZCBhIHR5cGUgb2YgJyR7dHlwZW9mIGF9JyBpbiB0aGUgYXJyYXlgKX1yZXR1cm4hMH0pfSxOU3Q9KHQsZSk9PntlPXtjYXNlU2Vuc2l0aXZlOiExLC4uLmV9O2xldCBhPXQrSlNPTi5zdHJpbmdpZnkoZSk7aWYoRWsuaGFzKGEpKXJldHVybiBFay5nZXQoYSk7bGV0IGk9dFswXT09PSIhIjtpJiYodD10LnNsaWNlKDEpKSx0PUJvKHQpLnJlcGxhY2UoL1xcXCovZywiW1xcc1xcU10qIik7bGV0IHI9bmV3IFJlZ0V4cChgXiR7dH0kYCxlLmNhc2VTZW5zaXRpdmU/IiI6ImkiKTtyZXR1cm4gci5uZWdhdGVkPWksRWsuc2V0KGEscikscn0sREc9KHQsZSxhLGkpPT57aWYodD1BRyh0LCJpbnB1dHMiKSxlPUFHKGUsInBhdHRlcm5zIiksZS5sZW5ndGg9PT0wKXJldHVybltdO2U9ZS5tYXAobj0+TlN0KG4sYSkpO2xldHthbGxQYXR0ZXJuczpyfT1hfHx7fSxzPVtdO2ZvcihsZXQgbiBvZiB0KXtsZXQgbyxkPVsuLi5lXS5maWxsKCExKTtmb3IobGV0W2MsaF1vZiBlLmVudHJpZXMoKSlpZihoLnRlc3QobikmJihkW2NdPSEwLG89IWgubmVnYXRlZCwhbykpYnJlYWs7aWYoIShvPT09ITF8fG89PT12b2lkIDAmJmUuc29tZShjPT4hYy5uZWdhdGVkKXx8ciYmZC5zb21lKChjLGgpPT4hYyYmIWVbaF0ubmVnYXRlZCkpJiYocy5wdXNoKG4pLGkpKWJyZWFrfXJldHVybiBzfX0pO3ZhciBQRz1iKCgpPT57RUcoKX0pO3ZhciBycz17fTtHZShycyx7U21hcnRNYXRjaDooKT0+UGt9KTt2YXIgUGssSWs9YigoKT0+e1BHKCk7UGs9Y2xhc3N7Y29uc3RydWN0b3IoZSl7dGhpcy53aWxkY2FyZD1lfW1hdGNoKGUpe3JldHVybiBfYy5pc01hdGNoKGUsdGhpcy53aWxkY2FyZCl9fX0pO3ZhciBBYz17fTtHZShBYyx7Q3JvbjooKT0+QkcsQ3JvbkRhdGU6KCk9PlExLENyb25QYXR0ZXJuOigpPT55NyxzY2hlZHVsZWRKb2JzOigpPT5QNH0pO2Z1bmN0aW9uIFRjKHQpe3JldHVybiBEYXRlLlVUQyh0LnksdC5tLTEsdC5kLHQuaCx0LmksdC5zKX1mdW5jdGlvbiBOayh0LGUpe3JldHVybiB0Lnk9PT1lLnkmJnQubT09PWUubSYmdC5kPT09ZS5kJiZ0Lmg9PT1lLmgmJnQuaT09PWUuaSYmdC5zPT09ZS5zfWZ1bmN0aW9uIEJTdCh0LGUpe2xldCBhPW5ldyBEYXRlKERhdGUucGFyc2UodCkpO2lmKGlzTmFOKGEpKXRocm93IG5ldyBFcnJvcigiSW52YWxpZCBJU084NjAxIHBhc3NlZCB0byB0aW1lem9uZSBwYXJzZXIuIik7bGV0IGk9dC5zdWJzdHJpbmcoOSk7cmV0dXJuIGkuaW5jbHVkZXMoIloiKXx8aS5pbmNsdWRlcygiKyIpfHxpLmluY2x1ZGVzKCItIik/RmsoYS5nZXRVVENGdWxsWWVhcigpLGEuZ2V0VVRDTW9udGgoKSsxLGEuZ2V0VVRDRGF0ZSgpLGEuZ2V0VVRDSG91cnMoKSxhLmdldFVUQ01pbnV0ZXMoKSxhLmdldFVUQ1NlY29uZHMoKSwiRXRjL1VUQyIpOkZrKGEuZ2V0RnVsbFllYXIoKSxhLmdldE1vbnRoKCkrMSxhLmdldERhdGUoKSxhLmdldEhvdXJzKCksYS5nZXRNaW51dGVzKCksYS5nZXRTZWNvbmRzKCksZSl9ZnVuY3Rpb24gSUcodCxlLGEpe3JldHVybiBORyhCU3QodCxlKSxhKX1mdW5jdGlvbiBORyh0LGUpe2xldCBhPW5ldyBEYXRlKFRjKHQpKSxpPUxjKGEsdC50eikscj1UYyh0KSxzPVRjKGkpLG49ci1zLG89bmV3IERhdGUoYS5nZXRUaW1lKCkrbiksZD1MYyhvLHQudHopO2lmKE5rKGQsdCkpe2xldCBsPW5ldyBEYXRlKG8uZ2V0VGltZSgpLTM2ZTUpLGY9TGMobCx0LnR6KTtyZXR1cm4gTmsoZix0KT9sOm99bGV0IGM9bmV3IERhdGUoby5nZXRUaW1lKCkrVGModCktVGMoZCkpLGg9TGMoYyx0LnR6KTtpZihOayhoLHQpKXJldHVybiBjO2lmKGUpdGhyb3cgbmV3IEVycm9yKCJJbnZhbGlkIGRhdGUgcGFzc2VkIHRvIGZyb21UWigpIik7cmV0dXJuIG8uZ2V0VGltZSgpPmMuZ2V0VGltZSgpP286Y31mdW5jdGlvbiBMYyh0LGUpe2xldCBhLGk7dHJ5e2E9bmV3IEludGwuRGF0ZVRpbWVGb3JtYXQoImVuLVVTIix7dGltZVpvbmU6ZSx5ZWFyOiJudW1lcmljIixtb250aDoibnVtZXJpYyIsZGF5OiJudW1lcmljIixob3VyOiJudW1lcmljIixtaW51dGU6Im51bWVyaWMiLHNlY29uZDoibnVtZXJpYyIsaG91cjEyOiExfSksaT1hLmZvcm1hdFRvUGFydHModCl9Y2F0Y2gocyl7bGV0IG49cyBpbnN0YW5jZW9mIEVycm9yP3MubWVzc2FnZTpTdHJpbmcocyk7dGhyb3cgbmV3IFJhbmdlRXJyb3IoYHRvVFo6IEludmFsaWQgdGltZXpvbmUgJyR7ZX0nIG9yIGRhdGUuIFBsZWFzZSBwcm92aWRlIGEgdmFsaWQgSUFOQSB0aW1lem9uZSAoZS5nLiwgJ0FtZXJpY2EvTmV3X1lvcmsnLCAnRXVyb3BlL1N0b2NraG9sbScpLiBPcmlnaW5hbCBlcnJvcjogJHtufWApfWxldCByPXt5ZWFyOjAsbW9udGg6MCxkYXk6MCxob3VyOjAsbWludXRlOjAsc2Vjb25kOjB9O2ZvcihsZXQgcyBvZiBpKShzLnR5cGU9PT0ieWVhciJ8fHMudHlwZT09PSJtb250aCJ8fHMudHlwZT09PSJkYXkifHxzLnR5cGU9PT0iaG91ciJ8fHMudHlwZT09PSJtaW51dGUifHxzLnR5cGU9PT0ic2Vjb25kIikmJihyW3MudHlwZV09cGFyc2VJbnQocy52YWx1ZSwxMCkpO2lmKGlzTmFOKHIueWVhcil8fGlzTmFOKHIubW9udGgpfHxpc05hTihyLmRheSl8fGlzTmFOKHIuaG91cil8fGlzTmFOKHIubWludXRlKXx8aXNOYU4oci5zZWNvbmQpKXRocm93IG5ldyBFcnJvcihgdG9UWjogRmFpbGVkIHRvIHBhcnNlIGFsbCBkYXRlIGNvbXBvbmVudHMgZnJvbSB0aW1lem9uZSAnJHtlfScuIFRoaXMgbWF5IGluZGljYXRlIGFuIGludmFsaWQgZGF0ZSBvciB0aW1lem9uZSBjb25maWd1cmF0aW9uLiBQYXJzZWQgY29tcG9uZW50czogJHtKU09OLnN0cmluZ2lmeShyKX1gKTtyZXR1cm4gci5ob3VyPT09MjQmJihyLmhvdXI9MCkse3k6ci55ZWFyLG06ci5tb250aCxkOnIuZGF5LGg6ci5ob3VyLGk6ci5taW51dGUsczpyLnNlY29uZCx0ejplfX1mdW5jdGlvbiBGayh0LGUsYSxpLHIscyxuKXtyZXR1cm57eTp0LG06ZSxkOmEsaDppLGk6cixzLHR6Om59fWZ1bmN0aW9uIEhTdCh0KXtpZih0PT09dm9pZCAwJiYodD17fSksZGVsZXRlIHQubmFtZSx0LmxlZ2FjeU1vZGUhPT12b2lkIDAmJnQuZG9tQW5kRG93PT09dm9pZCAwP3QuZG9tQW5kRG93PSF0LmxlZ2FjeU1vZGU6dC5kb21BbmREb3c9PT12b2lkIDAmJih0LmRvbUFuZERvdz0hMSksdC5sZWdhY3lNb2RlPSF0LmRvbUFuZERvdyx0LnBhdXNlZD10LnBhdXNlZD09PXZvaWQgMD8hMTp0LnBhdXNlZCx0Lm1heFJ1bnM9dC5tYXhSdW5zPT09dm9pZCAwPzEvMDp0Lm1heFJ1bnMsdC5jYXRjaD10LmNhdGNoPT09dm9pZCAwPyExOnQuY2F0Y2gsdC5pbnRlcnZhbD10LmludGVydmFsPT09dm9pZCAwPzA6cGFyc2VJbnQodC5pbnRlcnZhbC50b1N0cmluZygpLDEwKSx0LnV0Y09mZnNldD10LnV0Y09mZnNldD09PXZvaWQgMD92b2lkIDA6cGFyc2VJbnQodC51dGNPZmZzZXQudG9TdHJpbmcoKSwxMCksdC5kYXlPZmZzZXQ9dC5kYXlPZmZzZXQ9PT12b2lkIDA/MDpwYXJzZUludCh0LmRheU9mZnNldC50b1N0cmluZygpLDEwKSx0LnVucmVmPXQudW5yZWY9PT12b2lkIDA/ITE6dC51bnJlZix0Lm1vZGU9dC5tb2RlPT09dm9pZCAwPyJhdXRvIjp0Lm1vZGUsdC5hbHRlcm5hdGl2ZVdlZWtkYXlzPXQuYWx0ZXJuYXRpdmVXZWVrZGF5cz09PXZvaWQgMD8hMTp0LmFsdGVybmF0aXZlV2Vla2RheXMsdC5zbG9wcHlSYW5nZXM9dC5zbG9wcHlSYW5nZXM9PT12b2lkIDA/ITE6dC5zbG9wcHlSYW5nZXMsIVsiYXV0byIsIjUtcGFydCIsIjYtcGFydCIsIjctcGFydCIsIjUtb3ItNi1wYXJ0cyIsIjYtb3ItNy1wYXJ0cyJdLmluY2x1ZGVzKHQubW9kZSkpdGhyb3cgbmV3IEVycm9yKCJDcm9uT3B0aW9uczogbW9kZSBtdXN0IGJlIG9uZSBvZiAnYXV0bycsICc1LXBhcnQnLCAnNi1wYXJ0JywgJzctcGFydCcsICc1LW9yLTYtcGFydHMnLCBvciAnNi1vci03LXBhcnRzJy4iKTtpZih0LnN0YXJ0QXQmJih0LnN0YXJ0QXQ9bmV3IFExKHQuc3RhcnRBdCx0LnRpbWV6b25lKSksdC5zdG9wQXQmJih0LnN0b3BBdD1uZXcgUTEodC5zdG9wQXQsdC50aW1lem9uZSkpLHQuaW50ZXJ2YWwhPT1udWxsKXtpZihpc05hTih0LmludGVydmFsKSl0aHJvdyBuZXcgRXJyb3IoIkNyb25PcHRpb25zOiBTdXBwbGllZCB2YWx1ZSBmb3IgaW50ZXJ2YWwgaXMgbm90IGEgbnVtYmVyIik7aWYodC5pbnRlcnZhbDwwKXRocm93IG5ldyBFcnJvcigiQ3Jvbk9wdGlvbnM6IFN1cHBsaWVkIHZhbHVlIGZvciBpbnRlcnZhbCBjYW4gbm90IGJlIG5lZ2F0aXZlIil9aWYodC51dGNPZmZzZXQhPT12b2lkIDApe2lmKGlzTmFOKHQudXRjT2Zmc2V0KSl0aHJvdyBuZXcgRXJyb3IoIkNyb25PcHRpb25zOiBJbnZhbGlkIHZhbHVlIHBhc3NlZCBmb3IgdXRjT2Zmc2V0LCBzaG91bGQgYmUgbnVtYmVyIHJlcHJlc2VudGluZyBtaW51dGVzIG9mZnNldCBmcm9tIFVUQy4iKTtpZih0LnV0Y09mZnNldDwtODcwfHx0LnV0Y09mZnNldD44NzApdGhyb3cgbmV3IEVycm9yKCJDcm9uT3B0aW9uczogdXRjT2Zmc2V0IG91dCBvZiBib3VuZHMuIik7aWYodC51dGNPZmZzZXQhPT12b2lkIDAmJnQudGltZXpvbmUpdGhyb3cgbmV3IEVycm9yKCJDcm9uT3B0aW9uczogQ29tYmluaW5nICd1dGNPZmZzZXQnIHdpdGggJ3RpbWV6b25lJyBpcyBub3QgYWxsb3dlZC4iKX1pZih0LnVucmVmIT09ITAmJnQudW5yZWYhPT0hMSl0aHJvdyBuZXcgRXJyb3IoIkNyb25PcHRpb25zOiBVbnJlZiBzaG91bGQgYmUgZWl0aGVyIHRydWUsIGZhbHNlIG9yIHVuZGVmaW5lZChmYWxzZSkuIik7aWYodC5kYXlPZmZzZXQhPT12b2lkIDAmJnQuZGF5T2Zmc2V0IT09MCYmaXNOYU4odC5kYXlPZmZzZXQpKXRocm93IG5ldyBFcnJvcigiQ3Jvbk9wdGlvbnM6IEludmFsaWQgdmFsdWUgcGFzc2VkIGZvciBkYXlPZmZzZXQsIHNob3VsZCBiZSBhIG51bWJlciByZXByZXNlbnRpbmcgZGF5cyB0byBvZmZzZXQuIik7cmV0dXJuIHR9ZnVuY3Rpb24gJGModCl7cmV0dXJuIE9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbCh0KT09PSJbb2JqZWN0IEZ1bmN0aW9uXSJ8fHR5cGVvZiB0PT0iZnVuY3Rpb24ifHx0IGluc3RhbmNlb2YgRnVuY3Rpb259ZnVuY3Rpb24gcVN0KHQpe3JldHVybiAkYyh0KX1mdW5jdGlvbiBWU3QodCl7dHlwZW9mIERlbm88InUiJiZ0eXBlb2YgRGVuby51bnJlZlRpbWVyPCJ1Ij9EZW5vLnVucmVmVGltZXIodCk6dCYmdHlwZW9mIHQudW5yZWY8InUiJiZ0LnVucmVmKCl9dmFyIEZHLHk3LE9rLGIxLFExLE9HLFA0LEJHLEhHPWIoKCk9PntGRz1bMSwyLDQsOCwxNl0seTc9Y2xhc3N7cGF0dGVybjt0aW1lem9uZTttb2RlO2FsdGVybmF0aXZlV2Vla2RheXM7c2xvcHB5UmFuZ2VzO3NlY29uZDttaW51dGU7aG91cjtkYXk7bW9udGg7ZGF5T2ZXZWVrO3llYXI7bGFzdERheU9mTW9udGg7bGFzdFdlZWtkYXk7bmVhcmVzdFdlZWtkYXlzO3N0YXJET007c3RhckRPVztzdGFyWWVhcjt1c2VBbmRMb2dpYztjb25zdHJ1Y3Rvcih0LGUsYSl7dGhpcy5wYXR0ZXJuPXQsdGhpcy50aW1lem9uZT1lLHRoaXMubW9kZT1hPy5tb2RlPz8iYXV0byIsdGhpcy5hbHRlcm5hdGl2ZVdlZWtkYXlzPWE/LmFsdGVybmF0aXZlV2Vla2RheXM/PyExLHRoaXMuc2xvcHB5UmFuZ2VzPWE/LnNsb3BweVJhbmdlcz8/ITEsdGhpcy5zZWNvbmQ9QXJyYXkoNjApLmZpbGwoMCksdGhpcy5taW51dGU9QXJyYXkoNjApLmZpbGwoMCksdGhpcy5ob3VyPUFycmF5KDI0KS5maWxsKDApLHRoaXMuZGF5PUFycmF5KDMxKS5maWxsKDApLHRoaXMubW9udGg9QXJyYXkoMTIpLmZpbGwoMCksdGhpcy5kYXlPZldlZWs9QXJyYXkoNykuZmlsbCgwKSx0aGlzLnllYXI9QXJyYXkoMWU0KS5maWxsKDApLHRoaXMubGFzdERheU9mTW9udGg9ITEsdGhpcy5sYXN0V2Vla2RheT0hMSx0aGlzLm5lYXJlc3RXZWVrZGF5cz1BcnJheSgzMSkuZmlsbCgwKSx0aGlzLnN0YXJET009ITEsdGhpcy5zdGFyRE9XPSExLHRoaXMuc3RhclllYXI9ITEsdGhpcy51c2VBbmRMb2dpYz0hMSx0aGlzLnBhcnNlKCl9cGFyc2UoKXtpZighKHR5cGVvZiB0aGlzLnBhdHRlcm49PSJzdHJpbmcifHx0aGlzLnBhdHRlcm4gaW5zdGFuY2VvZiBTdHJpbmcpKXRocm93IG5ldyBUeXBlRXJyb3IoIkNyb25QYXR0ZXJuOiBQYXR0ZXJuIGhhcyB0byBiZSBvZiB0eXBlIHN0cmluZy4iKTt0aGlzLnBhdHRlcm4uaW5kZXhPZigiQCIpPj0wJiYodGhpcy5wYXR0ZXJuPXRoaXMuaGFuZGxlTmlja25hbWVzKHRoaXMucGF0dGVybikudHJpbSgpKTtsZXQgdD10aGlzLnBhdHRlcm4ubWF0Y2goL1xTKy9nKXx8WyIiXSxlPXQubGVuZ3RoO2lmKHQubGVuZ3RoPDV8fHQubGVuZ3RoPjcpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ3JvblBhdHRlcm46IGludmFsaWQgY29uZmlndXJhdGlvbiBmb3JtYXQgKCciK3RoaXMucGF0dGVybisiJyksIGV4YWN0bHkgZml2ZSwgc2l4LCBvciBzZXZlbiBzcGFjZSBzZXBhcmF0ZWQgcGFydHMgYXJlIHJlcXVpcmVkLiIpO2lmKHRoaXMubW9kZSE9PSJhdXRvIil7bGV0IGk7c3dpdGNoKHRoaXMubW9kZSl7Y2FzZSI1LXBhcnQiOmk9NTticmVhaztjYXNlIjYtcGFydCI6aT02O2JyZWFrO2Nhc2UiNy1wYXJ0IjppPTc7YnJlYWs7Y2FzZSI1LW9yLTYtcGFydHMiOmk9WzUsNl07YnJlYWs7Y2FzZSI2LW9yLTctcGFydHMiOmk9WzYsN107YnJlYWs7ZGVmYXVsdDppPTB9aWYoIShBcnJheS5pc0FycmF5KGkpP2kuaW5jbHVkZXMoZSk6ZT09PWkpKXtsZXQgcj1BcnJheS5pc0FycmF5KGkpP2kuam9pbigiIG9yICIpOmkudG9TdHJpbmcoKTt0aHJvdyBuZXcgVHlwZUVycm9yKGBDcm9uUGF0dGVybjogbW9kZSAnJHt0aGlzLm1vZGV9JyByZXF1aXJlcyBleGFjdGx5ICR7cn0gcGFydHMsIGJ1dCBwYXR0ZXJuICcke3RoaXMucGF0dGVybn0nIGhhcyAke2V9IHBhcnRzLmApfX1pZih0Lmxlbmd0aD09PTUmJnQudW5zaGlmdCgiMCIpLHQubGVuZ3RoPT09NiYmdC5wdXNoKCIqIiksdFszXS50b1VwcGVyQ2FzZSgpPT09IkxXIj8odGhpcy5sYXN0V2Vla2RheT0hMCx0WzNdPSIiKTp0WzNdLnRvVXBwZXJDYXNlKCkuaW5kZXhPZigiTCIpPj0wJiYodFszXT10WzNdLnJlcGxhY2UoL0wvZ2ksIiIpLHRoaXMubGFzdERheU9mTW9udGg9ITApLHRbM109PSIqIiYmKHRoaXMuc3RhckRPTT0hMCksdFs2XT09IioiJiYodGhpcy5zdGFyWWVhcj0hMCksdFs0XS5sZW5ndGg+PTMmJih0WzRdPXRoaXMucmVwbGFjZUFscGhhTW9udGhzKHRbNF0pKSx0WzVdLmxlbmd0aD49MyYmKHRbNV09dGhpcy5hbHRlcm5hdGl2ZVdlZWtkYXlzP3RoaXMucmVwbGFjZUFscGhhRGF5c1F1YXJ0eih0WzVdKTp0aGlzLnJlcGxhY2VBbHBoYURheXModFs1XSkpLHRbNV0uc3RhcnRzV2l0aCgiKyIpJiYodGhpcy51c2VBbmRMb2dpYz0hMCx0WzVdPXRbNV0uc3Vic3RyaW5nKDEpLHRbNV09PT0iIikpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ3JvblBhdHRlcm46IERheS1vZi13ZWVrIGZpZWxkIGNhbm5vdCBiZSBlbXB0eSBhZnRlciAnKycgbW9kaWZpZXIuIik7c3dpdGNoKHRbNV09PSIqIiYmKHRoaXMuc3RhckRPVz0hMCksdGhpcy5wYXR0ZXJuLmluZGV4T2YoIj8iKT49MCYmKHRbMF09dFswXS5yZXBsYWNlKC9cPy9nLCIqIiksdFsxXT10WzFdLnJlcGxhY2UoL1w/L2csIioiKSx0WzJdPXRbMl0ucmVwbGFjZSgvXD8vZywiKiIpLHRbM109dFszXS5yZXBsYWNlKC9cPy9nLCIqIiksdFs0XT10WzRdLnJlcGxhY2UoL1w/L2csIioiKSx0WzVdPXRbNV0ucmVwbGFjZSgvXD8vZywiKiIpLHRbNl0mJih0WzZdPXRbNl0ucmVwbGFjZSgvXD8vZywiKiIpKSksdGhpcy5tb2RlKXtjYXNlIjUtcGFydCI6dFswXT0iMCIsdFs2XT0iKiI7YnJlYWs7Y2FzZSI2LXBhcnQiOnRbNl09IioiO2JyZWFrO2Nhc2UiNS1vci02LXBhcnRzIjp0WzZdPSIqIjticmVhaztjYXNlIjYtb3ItNy1wYXJ0cyI6YnJlYWs7Y2FzZSI3LXBhcnQiOmNhc2UiYXV0byI6YnJlYWt9dGhpcy50aHJvd0F0SWxsZWdhbENoYXJhY3RlcnModCksdGhpcy5wYXJ0VG9BcnJheSgic2Vjb25kIix0WzBdLDAsMSksdGhpcy5wYXJ0VG9BcnJheSgibWludXRlIix0WzFdLDAsMSksdGhpcy5wYXJ0VG9BcnJheSgiaG91ciIsdFsyXSwwLDEpLHRoaXMucGFydFRvQXJyYXkoImRheSIsdFszXSwtMSwxKSx0aGlzLnBhcnRUb0FycmF5KCJtb250aCIsdFs0XSwtMSwxKTtsZXQgYT10aGlzLmFsdGVybmF0aXZlV2Vla2RheXM/LTE6MDt0aGlzLnBhcnRUb0FycmF5KCJkYXlPZldlZWsiLHRbNV0sYSw2MyksdGhpcy5wYXJ0VG9BcnJheSgieWVhciIsdFs2XSwwLDEpLCF0aGlzLmFsdGVybmF0aXZlV2Vla2RheXMmJnRoaXMuZGF5T2ZXZWVrWzddJiYodGhpcy5kYXlPZldlZWtbMF09dGhpcy5kYXlPZldlZWtbN10pfXBhcnRUb0FycmF5KHQsZSxhLGkpe2xldCByPXRoaXNbdF0scz10PT09ImRheSImJnRoaXMubGFzdERheU9mTW9udGgsbj10PT09ImRheSImJnRoaXMubGFzdFdlZWtkYXk7aWYoZT09PSIiJiYhcyYmIW4pdGhyb3cgbmV3IFR5cGVFcnJvcigiQ3JvblBhdHRlcm46IGNvbmZpZ3VyYXRpb24gZW50cnkgIit0KyIgKCIrZSsiKSBpcyBlbXB0eSwgY2hlY2sgZm9yIHRyYWlsaW5nIHNwYWNlcy4iKTtpZihlPT09IioiKXJldHVybiByLmZpbGwoaSk7bGV0IG89ZS5zcGxpdCgiLCIpO2lmKG8ubGVuZ3RoPjEpZm9yKGxldCBkPTA7ZDxvLmxlbmd0aDtkKyspdGhpcy5wYXJ0VG9BcnJheSh0LG9bZF0sYSxpKTtlbHNlIGUuaW5kZXhPZigiLSIpIT09LTEmJmUuaW5kZXhPZigiLyIpIT09LTE/dGhpcy5oYW5kbGVSYW5nZVdpdGhTdGVwcGluZyhlLHQsYSxpKTplLmluZGV4T2YoIi0iKSE9PS0xP3RoaXMuaGFuZGxlUmFuZ2UoZSx0LGEsaSk6ZS5pbmRleE9mKCIvIikhPT0tMT90aGlzLmhhbmRsZVN0ZXBwaW5nKGUsdCxhLGkpOmUhPT0iIiYmdGhpcy5oYW5kbGVOdW1iZXIoZSx0LGEsaSl9dGhyb3dBdElsbGVnYWxDaGFyYWN0ZXJzKHQpe2ZvcihsZXQgZT0wO2U8dC5sZW5ndGg7ZSsrKWlmKChlPT09Mz8vW14vKjAtOSxcLVd3TGxdKy86ZT09PTU/L1teLyowLTksXC0jTGxdKy86L1teLyowLTksXC1dKy8pLnRlc3QodFtlXSkpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ3JvblBhdHRlcm46IGNvbmZpZ3VyYXRpb24gZW50cnkgIitlKyIgKCIrdFtlXSsiKSBjb250YWlucyBpbGxlZ2FsIGNoYXJhY3RlcnMuIil9aGFuZGxlTnVtYmVyKHQsZSxhLGkpe2xldCByPXRoaXMuZXh0cmFjdE50aCh0LGUpLHM9dC50b1VwcGVyQ2FzZSgpLmluY2x1ZGVzKCJXIik7aWYoZSE9PSJkYXkiJiZzKXRocm93IG5ldyBUeXBlRXJyb3IoIkNyb25QYXR0ZXJuOiBOZWFyZXN0IHdlZWtkYXkgbW9kaWZpZXIgKFcpIG9ubHkgYWxsb3dlZCBpbiBkYXktb2YtbW9udGguIik7cyYmKGU9Im5lYXJlc3RXZWVrZGF5cyIpO2xldCBuPXBhcnNlSW50KHJbMF0sMTApK2E7aWYoaXNOYU4obikpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ3JvblBhdHRlcm46ICIrZSsiIGlzIG5vdCBhIG51bWJlcjogJyIrdCsiJyIpO3RoaXMuc2V0UGFydChlLG4sclsxXXx8aSl9c2V0UGFydCh0LGUsYSl7aWYoIU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbCh0aGlzLHQpKXRocm93IG5ldyBUeXBlRXJyb3IoIkNyb25QYXR0ZXJuOiBJbnZhbGlkIHBhcnQgc3BlY2lmaWVkOiAiK3QpO2lmKHQ9PT0iZGF5T2ZXZWVrIil7aWYoZT09PTcmJihlPTApLGU8MHx8ZT42KXRocm93IG5ldyBSYW5nZUVycm9yKCJDcm9uUGF0dGVybjogSW52YWxpZCB2YWx1ZSBmb3IgZGF5T2ZXZWVrOiAiK2UpO3RoaXMuc2V0TnRoV2Vla2RheU9mTW9udGgoZSxhKTtyZXR1cm59aWYodD09PSJzZWNvbmQifHx0PT09Im1pbnV0ZSIpe2lmKGU8MHx8ZT49NjApdGhyb3cgbmV3IFJhbmdlRXJyb3IoIkNyb25QYXR0ZXJuOiBJbnZhbGlkIHZhbHVlIGZvciAiK3QrIjogIitlKX1lbHNlIGlmKHQ9PT0iaG91ciIpe2lmKGU8MHx8ZT49MjQpdGhyb3cgbmV3IFJhbmdlRXJyb3IoIkNyb25QYXR0ZXJuOiBJbnZhbGlkIHZhbHVlIGZvciAiK3QrIjogIitlKX1lbHNlIGlmKHQ9PT0iZGF5Inx8dD09PSJuZWFyZXN0V2Vla2RheXMiKXtpZihlPDB8fGU+PTMxKXRocm93IG5ldyBSYW5nZUVycm9yKCJDcm9uUGF0dGVybjogSW52YWxpZCB2YWx1ZSBmb3IgIit0KyI6ICIrZSl9ZWxzZSBpZih0PT09Im1vbnRoIil7aWYoZTwwfHxlPj0xMil0aHJvdyBuZXcgUmFuZ2VFcnJvcigiQ3JvblBhdHRlcm46IEludmFsaWQgdmFsdWUgZm9yICIrdCsiOiAiK2UpfWVsc2UgaWYodD09PSJ5ZWFyIiYmKGU8MXx8ZT49MWU0KSl0aHJvdyBuZXcgUmFuZ2VFcnJvcigiQ3JvblBhdHRlcm46IEludmFsaWQgdmFsdWUgZm9yICIrdCsiOiAiK2UrIiAoc3VwcG9ydGVkIHJhbmdlOiAxLTk5OTkpIik7dGhpc1t0XVtlXT1hfXZhbGlkYXRlTm90TmFOKHQsZSl7aWYoaXNOYU4odCkpdGhyb3cgbmV3IFR5cGVFcnJvcihlKX12YWxpZGF0ZVJhbmdlKHQsZSxhLGkscil7aWYodD5lKXRocm93IG5ldyBUeXBlRXJyb3IoIkNyb25QYXR0ZXJuOiBGcm9tIHZhbHVlIGlzIGxhcmdlciB0aGFuIHRvIHZhbHVlOiAnIityKyInIik7aWYoYSE9PXZvaWQgMCl7aWYoYT09PTApdGhyb3cgbmV3IFR5cGVFcnJvcigiQ3JvblBhdHRlcm46IFN5bnRheCBlcnJvciwgaWxsZWdhbCBzdGVwcGluZzogMCIpO2lmKGE+dGhpc1tpXS5sZW5ndGgpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ3JvblBhdHRlcm46IFN5bnRheCBlcnJvciwgc3RlcHMgY2Fubm90IGJlIGdyZWF0ZXIgdGhhbiBtYXhpbXVtIHZhbHVlIG9mIHBhcnQgKCIrdGhpc1tpXS5sZW5ndGgrIikiKX19aGFuZGxlUmFuZ2VXaXRoU3RlcHBpbmcodCxlLGEsaSl7aWYodC50b1VwcGVyQ2FzZSgpLmluY2x1ZGVzKCJXIikpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ3JvblBhdHRlcm46IFN5bnRheCBlcnJvciwgVyBpcyBub3QgYWxsb3dlZCBpbiByYW5nZXMgd2l0aCBzdGVwcGluZy4iKTtsZXQgcj10aGlzLmV4dHJhY3ROdGgodCxlKSxzPXJbMF0ubWF0Y2goL14oXGQrKS0oXGQrKVwvKFxkKykkLyk7aWYocz09PW51bGwpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ3JvblBhdHRlcm46IFN5bnRheCBlcnJvciwgaWxsZWdhbCByYW5nZSB3aXRoIHN0ZXBwaW5nOiAnIit0KyInIik7bGV0WyxuLG8sZF09cyxjPXBhcnNlSW50KG4sMTApK2EsaD1wYXJzZUludChvLDEwKSthLGw9cGFyc2VJbnQoZCwxMCk7dGhpcy52YWxpZGF0ZU5vdE5hTihjLCJDcm9uUGF0dGVybjogU3ludGF4IGVycm9yLCBpbGxlZ2FsIGxvd2VyIHJhbmdlIChOYU4pIiksdGhpcy52YWxpZGF0ZU5vdE5hTihoLCJDcm9uUGF0dGVybjogU3ludGF4IGVycm9yLCBpbGxlZ2FsIHVwcGVyIHJhbmdlIChOYU4pIiksdGhpcy52YWxpZGF0ZU5vdE5hTihsLCJDcm9uUGF0dGVybjogU3ludGF4IGVycm9yLCBpbGxlZ2FsIHN0ZXBwaW5nOiAoTmFOKSIpLHRoaXMudmFsaWRhdGVSYW5nZShjLGgsbCxlLHQpO2ZvcihsZXQgZj1jO2Y8PWg7Zis9bCl0aGlzLnNldFBhcnQoZSxmLHJbMV18fGkpfWV4dHJhY3ROdGgodCxlKXtsZXQgYT10LGk7aWYoYS5pbmNsdWRlcygiIyIpKXtpZihlIT09ImRheU9mV2VlayIpdGhyb3cgbmV3IEVycm9yKCJDcm9uUGF0dGVybjogbnRoICgjKSBvbmx5IGFsbG93ZWQgaW4gZGF5LW9mLXdlZWsgZmllbGQiKTtpPWEuc3BsaXQoIiMiKVsxXSxhPWEuc3BsaXQoIiMiKVswXX1lbHNlIGlmKGEudG9VcHBlckNhc2UoKS5lbmRzV2l0aCgiTCIpKXtpZihlIT09ImRheU9mV2VlayIpdGhyb3cgbmV3IEVycm9yKCJDcm9uUGF0dGVybjogTCBtb2RpZmllciBvbmx5IGFsbG93ZWQgaW4gZGF5LW9mLXdlZWsgZmllbGQgKHVzZSBMIGFsb25lIGZvciBkYXktb2YtbW9udGgpIik7aT0iTCIsYT1hLnNsaWNlKDAsLTEpfXJldHVyblthLGldfWhhbmRsZVJhbmdlKHQsZSxhLGkpe2lmKHQudG9VcHBlckNhc2UoKS5pbmNsdWRlcygiVyIpKXRocm93IG5ldyBUeXBlRXJyb3IoIkNyb25QYXR0ZXJuOiBTeW50YXggZXJyb3IsIFcgaXMgbm90IGFsbG93ZWQgaW4gYSByYW5nZS4iKTtsZXQgcj10aGlzLmV4dHJhY3ROdGgodCxlKSxzPXJbMF0uc3BsaXQoIi0iKTtpZihzLmxlbmd0aCE9PTIpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ3JvblBhdHRlcm46IFN5bnRheCBlcnJvciwgaWxsZWdhbCByYW5nZTogJyIrdCsiJyIpO2xldCBuPXBhcnNlSW50KHNbMF0sMTApK2Esbz1wYXJzZUludChzWzFdLDEwKSthO3RoaXMudmFsaWRhdGVOb3ROYU4obiwiQ3JvblBhdHRlcm46IFN5bnRheCBlcnJvciwgaWxsZWdhbCBsb3dlciByYW5nZSAoTmFOKSIpLHRoaXMudmFsaWRhdGVOb3ROYU4obywiQ3JvblBhdHRlcm46IFN5bnRheCBlcnJvciwgaWxsZWdhbCB1cHBlciByYW5nZSAoTmFOKSIpLHRoaXMudmFsaWRhdGVSYW5nZShuLG8sdm9pZCAwLGUsdCk7Zm9yKGxldCBkPW47ZDw9bztkKyspdGhpcy5zZXRQYXJ0KGUsZCxyWzFdfHxpKX1oYW5kbGVTdGVwcGluZyh0LGUsYSxpKXtpZih0LnRvVXBwZXJDYXNlKCkuaW5jbHVkZXMoIlciKSl0aHJvdyBuZXcgVHlwZUVycm9yKCJDcm9uUGF0dGVybjogU3ludGF4IGVycm9yLCBXIGlzIG5vdCBhbGxvd2VkIGluIHBhcnRzIHdpdGggc3RlcHBpbmcuIik7bGV0IHI9dGhpcy5leHRyYWN0TnRoKHQsZSkscz1yWzBdLnNwbGl0KCIvIik7aWYocy5sZW5ndGghPT0yKXRocm93IG5ldyBUeXBlRXJyb3IoIkNyb25QYXR0ZXJuOiBTeW50YXggZXJyb3IsIGlsbGVnYWwgc3RlcHBpbmc6ICciK3QrIiciKTtpZih0aGlzLnNsb3BweVJhbmdlcylzWzBdPT09IiImJihzWzBdPSIqIik7ZWxzZXtpZihzWzBdPT09IiIpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ3JvblBhdHRlcm46IFN5bnRheCBlcnJvciwgc3RlcHBpbmcgd2l0aCBtaXNzaW5nIHByZWZpeCAoJyIrdCsiJykgaXMgbm90IGFsbG93ZWQuIFVzZSB3aWxkY2FyZCAoKi9zdGVwKSBvciByYW5nZSAobWluLW1heC9zdGVwKSBpbnN0ZWFkLiIpO2lmKHNbMF0hPT0iKiIpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ3JvblBhdHRlcm46IFN5bnRheCBlcnJvciwgc3RlcHBpbmcgd2l0aCBudW1lcmljIHByZWZpeCAoJyIrdCsiJykgaXMgbm90IGFsbG93ZWQuIFVzZSB3aWxkY2FyZCAoKi9zdGVwKSBvciByYW5nZSAobWluLW1heC9zdGVwKSBpbnN0ZWFkLiIpfWxldCBuPTA7c1swXSE9PSIqIiYmKG49cGFyc2VJbnQoc1swXSwxMCkrYSk7bGV0IG89cGFyc2VJbnQoc1sxXSwxMCk7dGhpcy52YWxpZGF0ZU5vdE5hTihvLCJDcm9uUGF0dGVybjogU3ludGF4IGVycm9yLCBpbGxlZ2FsIHN0ZXBwaW5nOiAoTmFOKSIpLHRoaXMudmFsaWRhdGVSYW5nZSgwLHRoaXNbZV0ubGVuZ3RoLTEsbyxlLHQpO2ZvcihsZXQgZD1uO2Q8dGhpc1tlXS5sZW5ndGg7ZCs9byl0aGlzLnNldFBhcnQoZSxkLHJbMV18fGkpfXJlcGxhY2VBbHBoYURheXModCl7cmV0dXJuIHQucmVwbGFjZSgvLXN1bi9naSwiLTciKS5yZXBsYWNlKC9zdW4vZ2ksIjAiKS5yZXBsYWNlKC9tb24vZ2ksIjEiKS5yZXBsYWNlKC90dWUvZ2ksIjIiKS5yZXBsYWNlKC93ZWQvZ2ksIjMiKS5yZXBsYWNlKC90aHUvZ2ksIjQiKS5yZXBsYWNlKC9mcmkvZ2ksIjUiKS5yZXBsYWNlKC9zYXQvZ2ksIjYiKX1yZXBsYWNlQWxwaGFEYXlzUXVhcnR6KHQpe3JldHVybiB0LnJlcGxhY2UoL3N1bi9naSwiMSIpLnJlcGxhY2UoL21vbi9naSwiMiIpLnJlcGxhY2UoL3R1ZS9naSwiMyIpLnJlcGxhY2UoL3dlZC9naSwiNCIpLnJlcGxhY2UoL3RodS9naSwiNSIpLnJlcGxhY2UoL2ZyaS9naSwiNiIpLnJlcGxhY2UoL3NhdC9naSwiNyIpfXJlcGxhY2VBbHBoYU1vbnRocyh0KXtyZXR1cm4gdC5yZXBsYWNlKC9qYW4vZ2ksIjEiKS5yZXBsYWNlKC9mZWIvZ2ksIjIiKS5yZXBsYWNlKC9tYXIvZ2ksIjMiKS5yZXBsYWNlKC9hcHIvZ2ksIjQiKS5yZXBsYWNlKC9tYXkvZ2ksIjUiKS5yZXBsYWNlKC9qdW4vZ2ksIjYiKS5yZXBsYWNlKC9qdWwvZ2ksIjciKS5yZXBsYWNlKC9hdWcvZ2ksIjgiKS5yZXBsYWNlKC9zZXAvZ2ksIjkiKS5yZXBsYWNlKC9vY3QvZ2ksIjEwIikucmVwbGFjZSgvbm92L2dpLCIxMSIpLnJlcGxhY2UoL2RlYy9naSwiMTIiKX1oYW5kbGVOaWNrbmFtZXModCl7bGV0IGU9dC50cmltKCkudG9Mb3dlckNhc2UoKTtpZihlPT09IkB5ZWFybHkifHxlPT09IkBhbm51YWxseSIpcmV0dXJuIjAgMCAxIDEgKiI7aWYoZT09PSJAbW9udGhseSIpcmV0dXJuIjAgMCAxICogKiI7aWYoZT09PSJAd2Vla2x5IilyZXR1cm4iMCAwICogKiAwIjtpZihlPT09IkBkYWlseSJ8fGU9PT0iQG1pZG5pZ2h0IilyZXR1cm4iMCAwICogKiAqIjtpZihlPT09IkBob3VybHkiKXJldHVybiIwICogKiAqICoiO2lmKGU9PT0iQHJlYm9vdCIpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ3JvblBhdHRlcm46IEByZWJvb3QgaXMgbm90IHN1cHBvcnRlZCBpbiB0aGlzIGVudmlyb25tZW50LiBUaGlzIGlzIGFuIGV2ZW50LWJhc2VkIHRyaWdnZXIgdGhhdCByZXF1aXJlcyBzeXN0ZW0gc3RhcnR1cCBkZXRlY3Rpb24uIik7cmV0dXJuIHR9c2V0TnRoV2Vla2RheU9mTW9udGgodCxlKXtpZih0eXBlb2YgZSE9Im51bWJlciImJmUudG9VcHBlckNhc2UoKT09PSJMIil0aGlzLmRheU9mV2Vla1t0XT10aGlzLmRheU9mV2Vla1t0XXwzMjtlbHNlIGlmKGU9PT02Myl0aGlzLmRheU9mV2Vla1t0XT02MztlbHNlIGlmKGU8NiYmZT4wKXRoaXMuZGF5T2ZXZWVrW3RdPXRoaXMuZGF5T2ZXZWVrW3RdfEZHW2UtMV07ZWxzZSB0aHJvdyBuZXcgVHlwZUVycm9yKGBDcm9uUGF0dGVybjogbnRoIHdlZWtkYXkgb3V0IG9mIHJhbmdlLCBzaG91bGQgYmUgMS01IG9yIEwuIFZhbHVlOiAke2V9LCBUeXBlOiAke3R5cGVvZiBlfWApfX0sT2s9WzMxLDI4LDMxLDMwLDMxLDMwLDMxLDMxLDMwLDMxLDMwLDMxXSxiMT1bWyJtb250aCIsInllYXIiLDBdLFsiZGF5IiwibW9udGgiLC0xXSxbImhvdXIiLCJkYXkiLDBdLFsibWludXRlIiwiaG91ciIsMF0sWyJzZWNvbmQiLCJtaW51dGUiLDBdXSxRMT1jbGFzcyBSR3t0ejttcztzZWNvbmQ7bWludXRlO2hvdXI7ZGF5O21vbnRoO3llYXI7Y29uc3RydWN0b3IoZSxhKXtpZih0aGlzLnR6PWEsZSYmZSBpbnN0YW5jZW9mIERhdGUpaWYoIWlzTmFOKGUpKXRoaXMuZnJvbURhdGUoZSk7ZWxzZSB0aHJvdyBuZXcgVHlwZUVycm9yKCJDcm9uRGF0ZTogSW52YWxpZCBkYXRlIHBhc3NlZCB0byBDcm9uRGF0ZSBjb25zdHJ1Y3RvciIpO2Vsc2UgaWYoZT09bnVsbCl0aGlzLmZyb21EYXRlKG5ldyBEYXRlKTtlbHNlIGlmKGUmJnR5cGVvZiBlPT0ic3RyaW5nIil0aGlzLmZyb21TdHJpbmcoZSk7ZWxzZSBpZihlIGluc3RhbmNlb2YgUkcpdGhpcy5mcm9tQ3JvbkRhdGUoZSk7ZWxzZSB0aHJvdyBuZXcgVHlwZUVycm9yKCJDcm9uRGF0ZTogSW52YWxpZCB0eXBlICgiK3R5cGVvZiBlKyIpIHBhc3NlZCB0byBDcm9uRGF0ZSBjb25zdHJ1Y3RvciIpfWdldExhc3REYXlPZk1vbnRoKGUsYSl7cmV0dXJuIGEhPT0xP09rW2FdOm5ldyBEYXRlKERhdGUuVVRDKGUsYSsxLDApKS5nZXRVVENEYXRlKCl9Z2V0TGFzdFdlZWtkYXkoZSxhKXtsZXQgaT10aGlzLmdldExhc3REYXlPZk1vbnRoKGUsYSkscj1uZXcgRGF0ZShEYXRlLlVUQyhlLGEsaSkpLmdldFVUQ0RheSgpO3JldHVybiByPT09MD9pLTI6cj09PTY/aS0xOml9Z2V0TmVhcmVzdFdlZWtkYXkoZSxhLGkpe2xldCByPXRoaXMuZ2V0TGFzdERheU9mTW9udGgoZSxhKTtpZihpPnIpcmV0dXJuLTE7bGV0IHM9bmV3IERhdGUoRGF0ZS5VVEMoZSxhLGkpKS5nZXRVVENEYXkoKTtyZXR1cm4gcz09PTA/aT09PXI/aS0yOmkrMTpzPT09Nj9pPT09MT9pKzI6aS0xOml9aXNOdGhXZWVrZGF5T2ZNb250aChlLGEsaSxyKXtsZXQgcz1uZXcgRGF0ZShEYXRlLlVUQyhlLGEsaSkpLmdldFVUQ0RheSgpLG49MDtmb3IobGV0IG89MTtvPD1pO28rKyluZXcgRGF0ZShEYXRlLlVUQyhlLGEsbykpLmdldFVUQ0RheSgpPT09cyYmbisrO2lmKHImNjMmJkZHW24tMV0mcilyZXR1cm4hMDtpZihyJjMyKXtsZXQgbz10aGlzLmdldExhc3REYXlPZk1vbnRoKGUsYSk7Zm9yKGxldCBkPWkrMTtkPD1vO2QrKylpZihuZXcgRGF0ZShEYXRlLlVUQyhlLGEsZCkpLmdldFVUQ0RheSgpPT09cylyZXR1cm4hMTtyZXR1cm4hMH1yZXR1cm4hMX1mcm9tRGF0ZShlKXtpZih0aGlzLnR6IT09dm9pZCAwKWlmKHR5cGVvZiB0aGlzLnR6PT0ibnVtYmVyIil0aGlzLm1zPWUuZ2V0VVRDTWlsbGlzZWNvbmRzKCksdGhpcy5zZWNvbmQ9ZS5nZXRVVENTZWNvbmRzKCksdGhpcy5taW51dGU9ZS5nZXRVVENNaW51dGVzKCkrdGhpcy50eix0aGlzLmhvdXI9ZS5nZXRVVENIb3VycygpLHRoaXMuZGF5PWUuZ2V0VVRDRGF0ZSgpLHRoaXMubW9udGg9ZS5nZXRVVENNb250aCgpLHRoaXMueWVhcj1lLmdldFVUQ0Z1bGxZZWFyKCksdGhpcy5hcHBseSgpO2Vsc2UgdHJ5e2xldCBhPUxjKGUsdGhpcy50eik7dGhpcy5tcz1lLmdldE1pbGxpc2Vjb25kcygpLHRoaXMuc2Vjb25kPWEucyx0aGlzLm1pbnV0ZT1hLmksdGhpcy5ob3VyPWEuaCx0aGlzLmRheT1hLmQsdGhpcy5tb250aD1hLm0tMSx0aGlzLnllYXI9YS55fWNhdGNoKGEpe2xldCBpPWEgaW5zdGFuY2VvZiBFcnJvcj9hLm1lc3NhZ2U6U3RyaW5nKGEpO3Rocm93IG5ldyBUeXBlRXJyb3IoYENyb25EYXRlOiBGYWlsZWQgdG8gY29udmVydCBkYXRlIHRvIHRpbWV6b25lICcke3RoaXMudHp9Jy4gVGhpcyBtYXkgaGFwcGVuIHdpdGggaW52YWxpZCB0aW1lem9uZSBuYW1lcyBvciBkYXRlcy4gT3JpZ2luYWwgZXJyb3I6ICR7aX1gKX1lbHNlIHRoaXMubXM9ZS5nZXRNaWxsaXNlY29uZHMoKSx0aGlzLnNlY29uZD1lLmdldFNlY29uZHMoKSx0aGlzLm1pbnV0ZT1lLmdldE1pbnV0ZXMoKSx0aGlzLmhvdXI9ZS5nZXRIb3VycygpLHRoaXMuZGF5PWUuZ2V0RGF0ZSgpLHRoaXMubW9udGg9ZS5nZXRNb250aCgpLHRoaXMueWVhcj1lLmdldEZ1bGxZZWFyKCl9ZnJvbUNyb25EYXRlKGUpe3RoaXMudHo9ZS50eix0aGlzLnllYXI9ZS55ZWFyLHRoaXMubW9udGg9ZS5tb250aCx0aGlzLmRheT1lLmRheSx0aGlzLmhvdXI9ZS5ob3VyLHRoaXMubWludXRlPWUubWludXRlLHRoaXMuc2Vjb25kPWUuc2Vjb25kLHRoaXMubXM9ZS5tc31hcHBseSgpe2lmKHRoaXMubW9udGg+MTF8fHRoaXMubW9udGg8MHx8dGhpcy5kYXk+T2tbdGhpcy5tb250aF18fHRoaXMuZGF5PDF8fHRoaXMuaG91cj41OXx8dGhpcy5taW51dGU+NTl8fHRoaXMuc2Vjb25kPjU5fHx0aGlzLmhvdXI8MHx8dGhpcy5taW51dGU8MHx8dGhpcy5zZWNvbmQ8MCl7bGV0IGU9bmV3IERhdGUoRGF0ZS5VVEModGhpcy55ZWFyLHRoaXMubW9udGgsdGhpcy5kYXksdGhpcy5ob3VyLHRoaXMubWludXRlLHRoaXMuc2Vjb25kLHRoaXMubXMpKTtyZXR1cm4gdGhpcy5tcz1lLmdldFVUQ01pbGxpc2Vjb25kcygpLHRoaXMuc2Vjb25kPWUuZ2V0VVRDU2Vjb25kcygpLHRoaXMubWludXRlPWUuZ2V0VVRDTWludXRlcygpLHRoaXMuaG91cj1lLmdldFVUQ0hvdXJzKCksdGhpcy5kYXk9ZS5nZXRVVENEYXRlKCksdGhpcy5tb250aD1lLmdldFVUQ01vbnRoKCksdGhpcy55ZWFyPWUuZ2V0VVRDRnVsbFllYXIoKSwhMH1lbHNlIHJldHVybiExfWZyb21TdHJpbmcoZSl7aWYodHlwZW9mIHRoaXMudHo9PSJudW1iZXIiKXtsZXQgYT1JRyhlKTt0aGlzLm1zPWEuZ2V0VVRDTWlsbGlzZWNvbmRzKCksdGhpcy5zZWNvbmQ9YS5nZXRVVENTZWNvbmRzKCksdGhpcy5taW51dGU9YS5nZXRVVENNaW51dGVzKCksdGhpcy5ob3VyPWEuZ2V0VVRDSG91cnMoKSx0aGlzLmRheT1hLmdldFVUQ0RhdGUoKSx0aGlzLm1vbnRoPWEuZ2V0VVRDTW9udGgoKSx0aGlzLnllYXI9YS5nZXRVVENGdWxsWWVhcigpLHRoaXMuYXBwbHkoKX1lbHNlIHJldHVybiB0aGlzLmZyb21EYXRlKElHKGUsdGhpcy50eikpfWZpbmROZXh0KGUsYSxpLHIpe3JldHVybiB0aGlzLl9maW5kTWF0Y2goZSxhLGksciwxKX1fZmluZE1hdGNoKGUsYSxpLHIscyl7bGV0IG49dGhpc1thXSxvO2kubGFzdERheU9mTW9udGgmJihvPXRoaXMuZ2V0TGFzdERheU9mTW9udGgodGhpcy55ZWFyLHRoaXMubW9udGgpKTtsZXQgZD0haS5zdGFyRE9XJiZhPT0iZGF5Ij9uZXcgRGF0ZShEYXRlLlVUQyh0aGlzLnllYXIsdGhpcy5tb250aCwxLDAsMCwwLDApKS5nZXRVVENEYXkoKTp2b2lkIDAsYz10aGlzW2FdK3IsaD1zPT09MT9sPT5sPGlbYV0ubGVuZ3RoOmw9Pmw+PTA7Zm9yKGxldCBsPWM7aChsKTtsKz1zKXtsZXQgZj1pW2FdW2xdO2lmKGE9PT0iZGF5IiYmIWYpe2ZvcihsZXQgZz0wO2c8aS5uZWFyZXN0V2Vla2RheXMubGVuZ3RoO2crKylpZihpLm5lYXJlc3RXZWVrZGF5c1tnXSl7bGV0IHk9dGhpcy5nZXROZWFyZXN0V2Vla2RheSh0aGlzLnllYXIsdGhpcy5tb250aCxnLXIpO2lmKHk9PT0tMSljb250aW51ZTtpZih5PT09bC1yKXtmPTE7YnJlYWt9fX1pZihhPT09ImRheSImJmkubGFzdFdlZWtkYXkpe2xldCBnPXRoaXMuZ2V0TGFzdFdlZWtkYXkodGhpcy55ZWFyLHRoaXMubW9udGgpO2wtcj09PWcmJihmPTEpfWlmKGE9PT0iZGF5IiYmaS5sYXN0RGF5T2ZNb250aCYmbC1yPT1vJiYoZj0xKSxhPT09ImRheSImJiFpLnN0YXJET1cpe2xldCBnPWkuZGF5T2ZXZWVrWyhkKyhsLXItMSkpJTddO2lmKGcmJmcmNjMpZz10aGlzLmlzTnRoV2Vla2RheU9mTW9udGgodGhpcy55ZWFyLHRoaXMubW9udGgsbC1yLGcpPzE6MDtlbHNlIGlmKGcpdGhyb3cgbmV3IEVycm9yKGBDcm9uRGF0ZTogSW52YWxpZCB2YWx1ZSBmb3IgZGF5T2ZXZWVrIGVuY291bnRlcmVkLiAke2d9YCk7aS51c2VBbmRMb2dpYz9mPWYmJmc6IWUuZG9tQW5kRG93JiYhaS5zdGFyRE9NP2Y9Znx8ZzpmPWYmJmd9aWYoZilyZXR1cm4gdGhpc1thXT1sLXIsbiE9PXRoaXNbYV0/MjoxfXJldHVybiAzfXJlY3Vyc2UoZSxhLGkpe2lmKGk9PT0wJiYhZS5zdGFyWWVhcil7aWYodGhpcy55ZWFyPj0wJiZ0aGlzLnllYXI8ZS55ZWFyLmxlbmd0aCYmZS55ZWFyW3RoaXMueWVhcl09PT0wKXtsZXQgcz0tMTtmb3IobGV0IG49dGhpcy55ZWFyKzE7bjxlLnllYXIubGVuZ3RoJiZuPDFlNDtuKyspaWYoZS55ZWFyW25dPT09MSl7cz1uO2JyZWFrfWlmKHM9PT0tMSlyZXR1cm4gbnVsbDt0aGlzLnllYXI9cyx0aGlzLm1vbnRoPTAsdGhpcy5kYXk9MSx0aGlzLmhvdXI9MCx0aGlzLm1pbnV0ZT0wLHRoaXMuc2Vjb25kPTAsdGhpcy5tcz0wfWlmKHRoaXMueWVhcj49MWU0KXJldHVybiBudWxsfWxldCByPXRoaXMuZmluZE5leHQoYSxiMVtpXVswXSxlLGIxW2ldWzJdKTtpZihyPjEpe2xldCBzPWkrMTtmb3IoO3M8YjEubGVuZ3RoOyl0aGlzW2IxW3NdWzBdXT0tYjFbc11bMl0scysrO2lmKHI9PT0zKXtpZih0aGlzW2IxW2ldWzFdXSsrLHRoaXNbYjFbaV1bMF1dPS1iMVtpXVsyXSx0aGlzLmFwcGx5KCksaT09PTAmJiFlLnN0YXJZZWFyKXtmb3IoO3RoaXMueWVhcj49MCYmdGhpcy55ZWFyPGUueWVhci5sZW5ndGgmJmUueWVhclt0aGlzLnllYXJdPT09MCYmdGhpcy55ZWFyPDFlNDspdGhpcy55ZWFyKys7aWYodGhpcy55ZWFyPj0xZTR8fHRoaXMueWVhcj49ZS55ZWFyLmxlbmd0aClyZXR1cm4gbnVsbH1yZXR1cm4gdGhpcy5yZWN1cnNlKGUsYSwwKX1lbHNlIGlmKHRoaXMuYXBwbHkoKSlyZXR1cm4gdGhpcy5yZWN1cnNlKGUsYSxpLTEpfXJldHVybiBpKz0xLGk+PWIxLmxlbmd0aD90aGlzOihlLnN0YXJZZWFyP3RoaXMueWVhcj49M2UzOnRoaXMueWVhcj49MWU0KT9udWxsOnRoaXMucmVjdXJzZShlLGEsaSl9aW5jcmVtZW50KGUsYSxpKXtyZXR1cm4gdGhpcy5zZWNvbmQrPWEuaW50ZXJ2YWwhPT12b2lkIDAmJmEuaW50ZXJ2YWw+MSYmaT9hLmludGVydmFsOjEsdGhpcy5tcz0wLHRoaXMuYXBwbHkoKSx0aGlzLnJlY3Vyc2UoZSxhLDApfWRlY3JlbWVudChlLGEpe3JldHVybiB0aGlzLnNlY29uZC09YS5pbnRlcnZhbCE9PXZvaWQgMCYmYS5pbnRlcnZhbD4xP2EuaW50ZXJ2YWw6MSx0aGlzLm1zPTAsdGhpcy5hcHBseSgpLHRoaXMucmVjdXJzZUJhY2t3YXJkKGUsYSwwLDApfXJlY3Vyc2VCYWNrd2FyZChlLGEsaSxyPTApe2lmKHI+MWU0KXJldHVybiBudWxsO2lmKGk9PT0wJiYhZS5zdGFyWWVhcil7aWYodGhpcy55ZWFyPj0wJiZ0aGlzLnllYXI8ZS55ZWFyLmxlbmd0aCYmZS55ZWFyW3RoaXMueWVhcl09PT0wKXtsZXQgbj0tMTtmb3IobGV0IG89dGhpcy55ZWFyLTE7bz49MDtvLS0paWYoZS55ZWFyW29dPT09MSl7bj1vO2JyZWFrfWlmKG49PT0tMSlyZXR1cm4gbnVsbDt0aGlzLnllYXI9bix0aGlzLm1vbnRoPTExLHRoaXMuZGF5PTMxLHRoaXMuaG91cj0yMyx0aGlzLm1pbnV0ZT01OSx0aGlzLnNlY29uZD01OSx0aGlzLm1zPTB9aWYodGhpcy55ZWFyPDApcmV0dXJuIG51bGx9bGV0IHM9dGhpcy5maW5kUHJldmlvdXMoYSxiMVtpXVswXSxlLGIxW2ldWzJdKTtpZihzPjEpe2xldCBuPWkrMTtmb3IoO248YjEubGVuZ3RoOyl7bGV0IG89YjFbbl1bMF0sZD1iMVtuXVsyXSxjPXRoaXMuZ2V0TWF4UGF0dGVyblZhbHVlKG8sZSxkKTt0aGlzW29dPWMsbisrfWlmKHM9PT0zKXtpZih0aGlzW2IxW2ldWzFdXS0tLGk9PT0wKXtsZXQgaD10aGlzLmdldExhc3REYXlPZk1vbnRoKHRoaXMueWVhcix0aGlzLm1vbnRoKTt0aGlzLmRheT5oJiYodGhpcy5kYXk9aCl9aWYoaT09PTEpaWYodGhpcy5kYXk8PTApdGhpcy5kYXk9MTtlbHNle2xldCBoPXRoaXMueWVhcixsPXRoaXMubW9udGg7Zm9yKDtsPDA7KWwrPTEyLGgtLTtmb3IoO2w+MTE7KWwtPTEyLGgrKztsZXQgZj1sIT09MT9Pa1tsXTpuZXcgRGF0ZShEYXRlLlVUQyhoLGwrMSwwKSkuZ2V0VVRDRGF0ZSgpO3RoaXMuZGF5PmYmJih0aGlzLmRheT1mKX10aGlzLmFwcGx5KCk7bGV0IG89YjFbaV1bMF0sZD1iMVtpXVsyXSxjPXRoaXMuZ2V0TWF4UGF0dGVyblZhbHVlKG8sZSxkKTtpZihvPT09ImRheSIpe2xldCBoPXRoaXMuZ2V0TGFzdERheU9mTW9udGgodGhpcy55ZWFyLHRoaXMubW9udGgpO3RoaXNbb109TWF0aC5taW4oYyxoKX1lbHNlIHRoaXNbb109YztpZih0aGlzLmFwcGx5KCksaT09PTApe2xldCBoPWIxWzFdWzJdLGw9dGhpcy5nZXRNYXhQYXR0ZXJuVmFsdWUoImRheSIsZSxoKSxmPXRoaXMuZ2V0TGFzdERheU9mTW9udGgodGhpcy55ZWFyLHRoaXMubW9udGgpLGc9TWF0aC5taW4obCxmKTtnIT09dGhpcy5kYXkmJih0aGlzLmRheT1nLHRoaXMuaG91cj10aGlzLmdldE1heFBhdHRlcm5WYWx1ZSgiaG91ciIsZSxiMVsyXVsyXSksdGhpcy5taW51dGU9dGhpcy5nZXRNYXhQYXR0ZXJuVmFsdWUoIm1pbnV0ZSIsZSxiMVszXVsyXSksdGhpcy5zZWNvbmQ9dGhpcy5nZXRNYXhQYXR0ZXJuVmFsdWUoInNlY29uZCIsZSxiMVs0XVsyXSkpfWlmKGk9PT0wJiYhZS5zdGFyWWVhcil7Zm9yKDt0aGlzLnllYXI+PTAmJnRoaXMueWVhcjxlLnllYXIubGVuZ3RoJiZlLnllYXJbdGhpcy55ZWFyXT09PTA7KXRoaXMueWVhci0tO2lmKHRoaXMueWVhcjwwKXJldHVybiBudWxsfXJldHVybiB0aGlzLnJlY3Vyc2VCYWNrd2FyZChlLGEsMCxyKzEpfWVsc2UgaWYodGhpcy5hcHBseSgpKXJldHVybiB0aGlzLnJlY3Vyc2VCYWNrd2FyZChlLGEsaS0xLHIrMSl9cmV0dXJuIGkrPTEsaT49YjEubGVuZ3RoP3RoaXM6dGhpcy55ZWFyPDA/bnVsbDp0aGlzLnJlY3Vyc2VCYWNrd2FyZChlLGEsaSxyKzEpfWdldE1heFBhdHRlcm5WYWx1ZShlLGEsaSl7aWYoZT09PSJkYXkiJiZhLmxhc3REYXlPZk1vbnRoKXJldHVybiB0aGlzLmdldExhc3REYXlPZk1vbnRoKHRoaXMueWVhcix0aGlzLm1vbnRoKTtpZihlPT09ImRheSImJiFhLnN0YXJET1cpcmV0dXJuIHRoaXMuZ2V0TGFzdERheU9mTW9udGgodGhpcy55ZWFyLHRoaXMubW9udGgpO2ZvcihsZXQgcj1hW2VdLmxlbmd0aC0xO3I+PTA7ci0tKWlmKGFbZV1bcl0pcmV0dXJuIHItaTtyZXR1cm4gYVtlXS5sZW5ndGgtMS1pfWZpbmRQcmV2aW91cyhlLGEsaSxyKXtyZXR1cm4gdGhpcy5fZmluZE1hdGNoKGUsYSxpLHIsLTEpfWdldERhdGUoZSl7cmV0dXJuIGV8fHRoaXMudHo9PT12b2lkIDA/bmV3IERhdGUodGhpcy55ZWFyLHRoaXMubW9udGgsdGhpcy5kYXksdGhpcy5ob3VyLHRoaXMubWludXRlLHRoaXMuc2Vjb25kLHRoaXMubXMpOnR5cGVvZiB0aGlzLnR6PT0ibnVtYmVyIj9uZXcgRGF0ZShEYXRlLlVUQyh0aGlzLnllYXIsdGhpcy5tb250aCx0aGlzLmRheSx0aGlzLmhvdXIsdGhpcy5taW51dGUtdGhpcy50eix0aGlzLnNlY29uZCx0aGlzLm1zKSk6TkcoRmsodGhpcy55ZWFyLHRoaXMubW9udGgrMSx0aGlzLmRheSx0aGlzLmhvdXIsdGhpcy5taW51dGUsdGhpcy5zZWNvbmQsdGhpcy50eiksITEpfWdldFRpbWUoKXtyZXR1cm4gdGhpcy5nZXREYXRlKCExKS5nZXRUaW1lKCl9bWF0Y2goZSxhKXtpZighZS5zdGFyWWVhciYmKHRoaXMueWVhcjwwfHx0aGlzLnllYXI+PWUueWVhci5sZW5ndGh8fGUueWVhclt0aGlzLnllYXJdPT09MCkpcmV0dXJuITE7Zm9yKGxldCBpPTA7aTxiMS5sZW5ndGg7aSsrKXtsZXQgcj1iMVtpXVswXSxzPWIxW2ldWzJdLG49dGhpc1tyXTtpZihuK3M8MHx8bitzPj1lW3JdLmxlbmd0aClyZXR1cm4hMTtsZXQgbz1lW3JdW24rc107aWYocj09PSJkYXkiKXtpZighbyl7Zm9yKGxldCBkPTA7ZDxlLm5lYXJlc3RXZWVrZGF5cy5sZW5ndGg7ZCsrKWlmKGUubmVhcmVzdFdlZWtkYXlzW2RdKXtsZXQgYz10aGlzLmdldE5lYXJlc3RXZWVrZGF5KHRoaXMueWVhcix0aGlzLm1vbnRoLGQtcyk7aWYoYyE9PS0xJiZjPT09bil7bz0xO2JyZWFrfX19aWYoZS5sYXN0V2Vla2RheSl7bGV0IGQ9dGhpcy5nZXRMYXN0V2Vla2RheSh0aGlzLnllYXIsdGhpcy5tb250aCk7bj09PWQmJihvPTEpfWlmKGUubGFzdERheU9mTW9udGgpe2xldCBkPXRoaXMuZ2V0TGFzdERheU9mTW9udGgodGhpcy55ZWFyLHRoaXMubW9udGgpO249PT1kJiYobz0xKX1pZighZS5zdGFyRE9XKXtsZXQgZD1uZXcgRGF0ZShEYXRlLlVUQyh0aGlzLnllYXIsdGhpcy5tb250aCwxLDAsMCwwLDApKS5nZXRVVENEYXkoKSxjPWUuZGF5T2ZXZWVrWyhkKyhuLTEpKSU3XTtjJiZjJjYzJiYoYz10aGlzLmlzTnRoV2Vla2RheU9mTW9udGgodGhpcy55ZWFyLHRoaXMubW9udGgsbixjKT8xOjApLGUudXNlQW5kTG9naWM/bz1vJiZjOiFhLmRvbUFuZERvdyYmIWUuc3RhckRPTT9vPW98fGM6bz1vJiZjfX1pZighbylyZXR1cm4hMX1yZXR1cm4hMH19O09HPTMwKjFlMyxQND1bXSxCRz1jbGFzc3tuYW1lO29wdGlvbnM7X3N0YXRlcztmbjtnZXRUeigpe3JldHVybiB0aGlzLm9wdGlvbnMudGltZXpvbmV8fHRoaXMub3B0aW9ucy51dGNPZmZzZXR9YXBwbHlEYXlPZmZzZXQodCl7aWYodGhpcy5vcHRpb25zLmRheU9mZnNldCE9PXZvaWQgMCYmdGhpcy5vcHRpb25zLmRheU9mZnNldCE9PTApe2xldCBlPXRoaXMub3B0aW9ucy5kYXlPZmZzZXQqMjQqNjAqNjAqMWUzO3JldHVybiBuZXcgRGF0ZSh0LmdldFRpbWUoKStlKX1yZXR1cm4gdH1jb25zdHJ1Y3Rvcih0LGUsYSl7bGV0IGkscjtpZigkYyhlKSlyPWU7ZWxzZSBpZih0eXBlb2YgZT09Im9iamVjdCIpaT1lO2Vsc2UgaWYoZSE9PXZvaWQgMCl0aHJvdyBuZXcgRXJyb3IoIkNyb246IEludmFsaWQgYXJndW1lbnQgcGFzc2VkIGZvciBvcHRpb25zSW4uIFNob3VsZCBiZSBvbmUgb2YgZnVuY3Rpb24sIG9yIG9iamVjdCAob3B0aW9ucykuIik7aWYoJGMoYSkpcj1hO2Vsc2UgaWYodHlwZW9mIGE9PSJvYmplY3QiKWk9YTtlbHNlIGlmKGEhPT12b2lkIDApdGhyb3cgbmV3IEVycm9yKCJDcm9uOiBJbnZhbGlkIGFyZ3VtZW50IHBhc3NlZCBmb3IgZnVuY0luLiBTaG91bGQgYmUgb25lIG9mIGZ1bmN0aW9uLCBvciBvYmplY3QgKG9wdGlvbnMpLiIpO2lmKHRoaXMubmFtZT1pPy5uYW1lLHRoaXMub3B0aW9ucz1IU3QoaSksdGhpcy5fc3RhdGVzPXtraWxsOiExLGJsb2NraW5nOiExLHByZXZpb3VzUnVuOnZvaWQgMCxjdXJyZW50UnVuOnZvaWQgMCxvbmNlOnZvaWQgMCxjdXJyZW50VGltZW91dDp2b2lkIDAsbWF4UnVuczppP2kubWF4UnVuczp2b2lkIDAscGF1c2VkOmk/aS5wYXVzZWQ6ITEscGF0dGVybjpuZXcgeTcoIiogKiAqICogKiIsdm9pZCAwLHttb2RlOiJhdXRvIn0pfSx0JiYodCBpbnN0YW5jZW9mIERhdGV8fHR5cGVvZiB0PT0ic3RyaW5nIiYmdC5pbmRleE9mKCI6Iik+MCk/dGhpcy5fc3RhdGVzLm9uY2U9bmV3IFExKHQsdGhpcy5nZXRUeigpKTp0aGlzLl9zdGF0ZXMucGF0dGVybj1uZXcgeTcodCx0aGlzLm9wdGlvbnMudGltZXpvbmUse21vZGU6dGhpcy5vcHRpb25zLm1vZGUsYWx0ZXJuYXRpdmVXZWVrZGF5czp0aGlzLm9wdGlvbnMuYWx0ZXJuYXRpdmVXZWVrZGF5cyxzbG9wcHlSYW5nZXM6dGhpcy5vcHRpb25zLnNsb3BweVJhbmdlc30pLHRoaXMubmFtZSl7aWYoUDQuZmluZChzPT5zLm5hbWU9PT10aGlzLm5hbWUpKXRocm93IG5ldyBFcnJvcigiQ3JvbjogVHJpZWQgdG8gaW5pdGlhbGl6ZSBuZXcgbmFtZWQgam9iICciK3RoaXMubmFtZSsiJywgYnV0IG5hbWUgYWxyZWFkeSB0YWtlbi4iKTtQNC5wdXNoKHRoaXMpfXJldHVybiByIT09dm9pZCAwJiZxU3QocikmJih0aGlzLmZuPXIsdGhpcy5zY2hlZHVsZSgpKSx0aGlzfW5leHRSdW4odCl7bGV0IGU9dGhpcy5fbmV4dCh0KTtyZXR1cm4gZT90aGlzLmFwcGx5RGF5T2Zmc2V0KGUuZ2V0RGF0ZSghMSkpOm51bGx9bmV4dFJ1bnModCxlKXt0aGlzLl9zdGF0ZXMubWF4UnVucyE9PXZvaWQgMCYmdD50aGlzLl9zdGF0ZXMubWF4UnVucyYmKHQ9dGhpcy5fc3RhdGVzLm1heFJ1bnMpO2xldCBhPWV8fHRoaXMuX3N0YXRlcy5jdXJyZW50UnVufHx2b2lkIDA7cmV0dXJuIHRoaXMuX2VudW1lcmF0ZVJ1bnModCxhLCJuZXh0Iil9cHJldmlvdXNSdW5zKHQsZSl7cmV0dXJuIHRoaXMuX2VudW1lcmF0ZVJ1bnModCxlfHx2b2lkIDAsInByZXZpb3VzIil9X2VudW1lcmF0ZVJ1bnModCxlLGEpe2xldCBpPVtdLHI9ZT9uZXcgUTEoZSx0aGlzLmdldFR6KCkpOm51bGwscz1hPT09Im5leHQiP3RoaXMuX25leHQ6dGhpcy5fcHJldmlvdXM7Zm9yKDt0LS07KXtsZXQgbj1zLmNhbGwodGhpcyxyKTtpZighbilicmVhaztsZXQgbz1uLmdldERhdGUoITEpO2kucHVzaCh0aGlzLmFwcGx5RGF5T2Zmc2V0KG8pKSxyPW59cmV0dXJuIGl9bWF0Y2godCl7aWYodGhpcy5fc3RhdGVzLm9uY2Upe2xldCBhPW5ldyBRMSh0LHRoaXMuZ2V0VHooKSk7YS5tcz0wO2xldCBpPW5ldyBRMSh0aGlzLl9zdGF0ZXMub25jZSx0aGlzLmdldFR6KCkpO3JldHVybiBpLm1zPTAsYS5nZXRUaW1lKCk9PT1pLmdldFRpbWUoKX1sZXQgZT1uZXcgUTEodCx0aGlzLmdldFR6KCkpO3JldHVybiBlLm1zPTAsZS5tYXRjaCh0aGlzLl9zdGF0ZXMucGF0dGVybix0aGlzLm9wdGlvbnMpfWdldFBhdHRlcm4oKXtpZighdGhpcy5fc3RhdGVzLm9uY2UpcmV0dXJuIHRoaXMuX3N0YXRlcy5wYXR0ZXJuP3RoaXMuX3N0YXRlcy5wYXR0ZXJuLnBhdHRlcm46dm9pZCAwfWdldE9uY2UoKXtyZXR1cm4gdGhpcy5fc3RhdGVzLm9uY2U/dGhpcy5fc3RhdGVzLm9uY2UuZ2V0RGF0ZSgpOm51bGx9aXNSdW5uaW5nKCl7bGV0IHQ9dGhpcy5uZXh0UnVuKHRoaXMuX3N0YXRlcy5jdXJyZW50UnVuKSxlPSF0aGlzLl9zdGF0ZXMucGF1c2VkLGE9dGhpcy5mbiE9PXZvaWQgMCxpPSF0aGlzLl9zdGF0ZXMua2lsbDtyZXR1cm4gZSYmYSYmaSYmdCE9PW51bGx9aXNTdG9wcGVkKCl7cmV0dXJuIHRoaXMuX3N0YXRlcy5raWxsfWlzQnVzeSgpe3JldHVybiB0aGlzLl9zdGF0ZXMuYmxvY2tpbmd9Y3VycmVudFJ1bigpe3JldHVybiB0aGlzLl9zdGF0ZXMuY3VycmVudFJ1bj90aGlzLl9zdGF0ZXMuY3VycmVudFJ1bi5nZXREYXRlKCk6bnVsbH1wcmV2aW91c1J1bigpe3JldHVybiB0aGlzLl9zdGF0ZXMucHJldmlvdXNSdW4/dGhpcy5fc3RhdGVzLnByZXZpb3VzUnVuLmdldERhdGUoKTpudWxsfW1zVG9OZXh0KHQpe2xldCBlPXRoaXMuX25leHQodCk7cmV0dXJuIGU/dCBpbnN0YW5jZW9mIFExfHx0IGluc3RhbmNlb2YgRGF0ZT9lLmdldFRpbWUoKS10LmdldFRpbWUoKTplLmdldFRpbWUoKS1uZXcgUTEodCkuZ2V0VGltZSgpOm51bGx9c3RvcCgpe3RoaXMuX3N0YXRlcy5raWxsPSEwLHRoaXMuX3N0YXRlcy5jdXJyZW50VGltZW91dCYmY2xlYXJUaW1lb3V0KHRoaXMuX3N0YXRlcy5jdXJyZW50VGltZW91dCk7bGV0IHQ9UDQuaW5kZXhPZih0aGlzKTt0Pj0wJiZQNC5zcGxpY2UodCwxKX1wYXVzZSgpe3JldHVybiB0aGlzLl9zdGF0ZXMucGF1c2VkPSEwLCF0aGlzLl9zdGF0ZXMua2lsbH1yZXN1bWUoKXtyZXR1cm4gdGhpcy5fc3RhdGVzLnBhdXNlZD0hMSwhdGhpcy5fc3RhdGVzLmtpbGx9c2NoZWR1bGUodCl7aWYodCYmdGhpcy5mbil0aHJvdyBuZXcgRXJyb3IoIkNyb246IEl0IGlzIG5vdCBhbGxvd2VkIHRvIHNjaGVkdWxlIHR3byBmdW5jdGlvbnMgdXNpbmcgdGhlIHNhbWUgQ3JvbmVyIGluc3RhbmNlLiIpO3QmJih0aGlzLmZuPXQpO2xldCBlPXRoaXMubXNUb05leHQoKSxhPXRoaXMubmV4dFJ1bih0aGlzLl9zdGF0ZXMuY3VycmVudFJ1bik7cmV0dXJuIGU9PW51bGx8fGlzTmFOKGUpfHxhPT09bnVsbD90aGlzOihlPk9HJiYoZT1PRyksdGhpcy5fc3RhdGVzLmN1cnJlbnRUaW1lb3V0PXNldFRpbWVvdXQoKCk9PnRoaXMuX2NoZWNrVHJpZ2dlcihhKSxlKSx0aGlzLl9zdGF0ZXMuY3VycmVudFRpbWVvdXQmJnRoaXMub3B0aW9ucy51bnJlZiYmVlN0KHRoaXMuX3N0YXRlcy5jdXJyZW50VGltZW91dCksdGhpcyl9YXN5bmMgX3RyaWdnZXIodCl7dGhpcy5fc3RhdGVzLmJsb2NraW5nPSEwLHRoaXMuX3N0YXRlcy5jdXJyZW50UnVuPW5ldyBRMSh2b2lkIDAsdGhpcy5nZXRUeigpKTt0cnl7aWYodGhpcy5vcHRpb25zLmNhdGNoKXRyeXt0aGlzLmZuIT09dm9pZCAwJiZhd2FpdCB0aGlzLmZuKHRoaXMsdGhpcy5vcHRpb25zLmNvbnRleHQpfWNhdGNoKGUpe2lmKCRjKHRoaXMub3B0aW9ucy5jYXRjaCkpdHJ5e3RoaXMub3B0aW9ucy5jYXRjaChlLHRoaXMpfWNhdGNoe319ZWxzZSB0aGlzLmZuIT09dm9pZCAwJiZhd2FpdCB0aGlzLmZuKHRoaXMsdGhpcy5vcHRpb25zLmNvbnRleHQpfWZpbmFsbHl7dGhpcy5fc3RhdGVzLnByZXZpb3VzUnVuPW5ldyBRMSh0LHRoaXMuZ2V0VHooKSksdGhpcy5fc3RhdGVzLmJsb2NraW5nPSExfX1hc3luYyB0cmlnZ2VyKCl7YXdhaXQgdGhpcy5fdHJpZ2dlcigpfXJ1bnNMZWZ0KCl7cmV0dXJuIHRoaXMuX3N0YXRlcy5tYXhSdW5zfV9jaGVja1RyaWdnZXIodCl7bGV0IGU9bmV3IERhdGUsYT0hdGhpcy5fc3RhdGVzLnBhdXNlZCYmZS5nZXRUaW1lKCk+PXQuZ2V0VGltZSgpLGk9dGhpcy5fc3RhdGVzLmJsb2NraW5nJiZ0aGlzLm9wdGlvbnMucHJvdGVjdDthJiYhaT8odGhpcy5fc3RhdGVzLm1heFJ1bnMhPT12b2lkIDAmJnRoaXMuX3N0YXRlcy5tYXhSdW5zLS0sdGhpcy5fdHJpZ2dlcigpKTphJiZpJiYkYyh0aGlzLm9wdGlvbnMucHJvdGVjdCkmJnNldFRpbWVvdXQoKCk9PnRoaXMub3B0aW9ucy5wcm90ZWN0KHRoaXMpLDApLHRoaXMuc2NoZWR1bGUoKX1fbmV4dCh0KXtsZXQgZT0hISh0fHx0aGlzLl9zdGF0ZXMuY3VycmVudFJ1biksYT0hMTshdCYmdGhpcy5vcHRpb25zLnN0YXJ0QXQmJnRoaXMub3B0aW9ucy5pbnRlcnZhbCYmKFt0LGVdPXRoaXMuX2NhbGN1bGF0ZVByZXZpb3VzUnVuKHQsZSksYT0hdCksdD1uZXcgUTEodCx0aGlzLmdldFR6KCkpLHRoaXMub3B0aW9ucy5zdGFydEF0JiZ0JiZ0LmdldFRpbWUoKTx0aGlzLm9wdGlvbnMuc3RhcnRBdC5nZXRUaW1lKCkmJih0PXRoaXMub3B0aW9ucy5zdGFydEF0KTtsZXQgaT10aGlzLl9zdGF0ZXMub25jZXx8bmV3IFExKHQsdGhpcy5nZXRUeigpKTtyZXR1cm4hYSYmaSE9PXRoaXMuX3N0YXRlcy5vbmNlJiYoaT1pLmluY3JlbWVudCh0aGlzLl9zdGF0ZXMucGF0dGVybix0aGlzLm9wdGlvbnMsZSkpLHRoaXMuX3N0YXRlcy5vbmNlJiZ0aGlzLl9zdGF0ZXMub25jZS5nZXRUaW1lKCk8PXQuZ2V0VGltZSgpfHxpPT09bnVsbHx8dGhpcy5fc3RhdGVzLm1heFJ1bnMhPT12b2lkIDAmJnRoaXMuX3N0YXRlcy5tYXhSdW5zPD0wfHx0aGlzLl9zdGF0ZXMua2lsbHx8dGhpcy5vcHRpb25zLnN0b3BBdCYmaS5nZXRUaW1lKCk+PXRoaXMub3B0aW9ucy5zdG9wQXQuZ2V0VGltZSgpP251bGw6aX1fcHJldmlvdXModCl7bGV0IGU9bmV3IFExKHQsdGhpcy5nZXRUeigpKTt0aGlzLm9wdGlvbnMuc3RvcEF0JiZlLmdldFRpbWUoKT50aGlzLm9wdGlvbnMuc3RvcEF0LmdldFRpbWUoKSYmKGU9dGhpcy5vcHRpb25zLnN0b3BBdCk7bGV0IGE9bmV3IFExKGUsdGhpcy5nZXRUeigpKTtyZXR1cm4gdGhpcy5fc3RhdGVzLm9uY2U/dGhpcy5fc3RhdGVzLm9uY2UuZ2V0VGltZSgpPGUuZ2V0VGltZSgpP3RoaXMuX3N0YXRlcy5vbmNlOm51bGw6KGE9YS5kZWNyZW1lbnQodGhpcy5fc3RhdGVzLnBhdHRlcm4sdGhpcy5vcHRpb25zKSxhPT09bnVsbHx8dGhpcy5vcHRpb25zLnN0YXJ0QXQmJmEuZ2V0VGltZSgpPHRoaXMub3B0aW9ucy5zdGFydEF0LmdldFRpbWUoKT9udWxsOmEpfV9jYWxjdWxhdGVQcmV2aW91c1J1bih0LGUpe2xldCBhPW5ldyBRMSh2b2lkIDAsdGhpcy5nZXRUeigpKSxpPXQ7aWYodGhpcy5vcHRpb25zLnN0YXJ0QXQuZ2V0VGltZSgpPD1hLmdldFRpbWUoKSl7aT10aGlzLm9wdGlvbnMuc3RhcnRBdDtsZXQgcj1pLmdldFRpbWUoKSt0aGlzLm9wdGlvbnMuaW50ZXJ2YWwqMWUzO2Zvcig7cjw9YS5nZXRUaW1lKCk7KWk9bmV3IFExKGksdGhpcy5nZXRUeigpKS5pbmNyZW1lbnQodGhpcy5fc3RhdGVzLnBhdHRlcm4sdGhpcy5vcHRpb25zLCEwKSxyPWkuZ2V0VGltZSgpK3RoaXMub3B0aW9ucy5pbnRlcnZhbCoxZTM7ZT0hMH1yZXR1cm4gaT09PW51bGwmJihpPXZvaWQgMCksW2ksZV19fX0pO3ZhciB3NyxEYyxqU3Qsc3MxLGZyLE03LEYyLFBhLEk0LFJrLGRuLE40LHo3LGs3LFM3LEM3LEhvLEY0LHg3LHFHLEJrLEhrLFZHLHFrLHl0PWIoKCk9Pnt3Nz03LERjPTM2NS4yNDI1LGpTdD1NYXRoLnBvdygxMCw4KSoyNCo2MCo2MCoxZTMsc3MxPS1qU3QsZnI9NjA0OGU1LE03PTg2NGU1LEYyPTZlNCxQYT0zNmU1LEk0PTFlMyxSaz01MjU2MDAsZG49NDMyMDAsTjQ9MTQ0MCx6Nz02MCxrNz0zLFM3PTEyLEM3PTQsSG89MzYwMCxGND02MCx4Nz1IbyoyNCxxRz14Nyo3LEJrPXg3KjM2NS4yNDI1LEhrPUJrLzEyLFZHPUhrKjMscWs9U3ltYm9sLmZvcigiY29uc3RydWN0RGF0ZUZyb20iKX0pO2Z1bmN0aW9uIExlKHQsZSl7cmV0dXJuIHR5cGVvZiB0PT0iZnVuY3Rpb24iP3QoZSk6dCYmdHlwZW9mIHQ9PSJvYmplY3QiJiZxayBpbiB0P3RbcWtdKGUpOnQgaW5zdGFuY2VvZiBEYXRlP25ldyB0LmNvbnN0cnVjdG9yKGUpOm5ldyBEYXRlKGUpfXZhciBsczEsYXQ9YigoKT0+e3l0KCk7bHMxPUxlfSk7ZnVuY3Rpb24gbmUodCxlKXtyZXR1cm4gTGUoZXx8dCx0KX12YXIgaHMxLEFlPWIoKCk9PnthdCgpO2hzMT1uZX0pO2Z1bmN0aW9uIEoxKHQsZSxhKXtsZXQgaT1uZSh0LGE/LmluKTtyZXR1cm4gaXNOYU4oZSk/TGUoYT8uaW58fHQsTmFOKTooZSYmaS5zZXREYXRlKGkuZ2V0RGF0ZSgpK2UpLGkpfXZhciBtczEsbXI9YigoKT0+e2F0KCk7QWUoKTttczE9SjF9KTtmdW5jdGlvbiBncih0LGUsYSl7bGV0IGk9bmUodCxhPy5pbik7aWYoaXNOYU4oZSkpcmV0dXJuIExlKGE/LmlufHx0LE5hTik7aWYoIWUpcmV0dXJuIGk7bGV0IHI9aS5nZXREYXRlKCkscz1MZShhPy5pbnx8dCxpLmdldFRpbWUoKSk7cy5zZXRNb250aChpLmdldE1vbnRoKCkrZSsxLDApO2xldCBuPXMuZ2V0RGF0ZSgpO3JldHVybiByPj1uP3M6KGkuc2V0RnVsbFllYXIocy5nZXRGdWxsWWVhcigpLHMuZ2V0TW9udGgoKSxyKSxpKX12YXIgeXMxLE80PWIoKCk9PnthdCgpO0FlKCk7eXMxPWdyfSk7ZnVuY3Rpb24gaG4odCxlLGEpe2xldHt5ZWFyczppPTAsbW9udGhzOnI9MCx3ZWVrczpzPTAsZGF5czpuPTAsaG91cnM6bz0wLG1pbnV0ZXM6ZD0wLHNlY29uZHM6Yz0wfT1lLGg9bmUodCxhPy5pbiksbD1yfHxpP2dyKGgscitpKjEyKTpoLGY9bnx8cz9KMShsLG4rcyo3KTpsLGc9ZCtvKjYwLHY9KGMrZyo2MCkqMWUzO3JldHVybiBMZShhPy5pbnx8dCwrZit2KX12YXIgU3MxLFZrPWIoKCk9PnttcigpO080KCk7YXQoKTtBZSgpO1NzMT1obn0pO2Z1bmN0aW9uIF83KHQsZSl7cmV0dXJuIG5lKHQsZT8uaW4pLmdldERheSgpPT09Nn12YXIgVHMxLGprPWIoKCk9PntBZSgpO1RzMT1fN30pO2Z1bmN0aW9uIFQ3KHQsZSl7cmV0dXJuIG5lKHQsZT8uaW4pLmdldERheSgpPT09MH12YXIgQXMxLFVrPWIoKCk9PntBZSgpO0FzMT1UN30pO2Z1bmN0aW9uIGJyKHQsZSl7bGV0IGE9bmUodCxlPy5pbikuZ2V0RGF5KCk7cmV0dXJuIGE9PT0wfHxhPT09Nn12YXIgUHMxLEVjPWIoKCk9PntBZSgpO1BzMT1icn0pO2Z1bmN0aW9uIEw3KHQsZSxhKXtsZXQgaT1uZSh0LGE/LmluKSxyPWJyKGksYSk7aWYoaXNOYU4oZSkpcmV0dXJuIExlKGE/LmluLE5hTik7bGV0IHM9aS5nZXRIb3VycygpLG49ZTwwPy0xOjEsbz1NYXRoLnRydW5jKGUvNSk7aS5zZXREYXRlKGkuZ2V0RGF0ZSgpK28qNyk7bGV0IGQ9TWF0aC5hYnMoZSU1KTtmb3IoO2Q+MDspaS5zZXREYXRlKGkuZ2V0RGF0ZSgpK24pLGJyKGksYSl8fChkLT0xKTtyZXR1cm4gciYmYnIoaSxhKSYmZSE9PTAmJihfNyhpLGEpJiZpLnNldERhdGUoaS5nZXREYXRlKCkrKG48MD8yOi0xKSksVDcoaSxhKSYmaS5zZXREYXRlKGkuZ2V0RGF0ZSgpKyhuPDA/MTotMikpKSxpLnNldEhvdXJzKHMpLGl9dmFyIEhzMSxXaz1iKCgpPT57YXQoKTtqaygpO1VrKCk7RWMoKTtBZSgpO0hzMT1MN30pO2Z1bmN0aW9uIHBuKHQsZSxhKXtyZXR1cm4gTGUoYT8uaW58fHQsK25lKHQpK2UpfXZhciBVczEsUGM9YigoKT0+e2F0KCk7QWUoKTtVczE9cG59KTtmdW5jdGlvbiAkNyh0LGUsYSl7cmV0dXJuIHBuKHQsZSpQYSxhKX12YXIgWnMxLEdrPWIoKCk9PntQYygpO3l0KCk7WnMxPSQ3fSk7ZnVuY3Rpb24gS3QoKXtyZXR1cm4gakd9ZnVuY3Rpb24gVUcodCl7akc9dH12YXIgakcsTzI9YigoKT0+e2pHPXt9fSk7ZnVuY3Rpb24gZDEodCxlKXtsZXQgYT1LdCgpLGk9ZT8ud2Vla1N0YXJ0c09uPz9lPy5sb2NhbGU/Lm9wdGlvbnM/LndlZWtTdGFydHNPbj8/YS53ZWVrU3RhcnRzT24/P2EubG9jYWxlPy5vcHRpb25zPy53ZWVrU3RhcnRzT24/PzAscj1uZSh0LGU/LmluKSxzPXIuZ2V0RGF5KCksbj0oczxpPzc6MCkrcy1pO3JldHVybiByLnNldERhdGUoci5nZXREYXRlKCktbiksci5zZXRIb3VycygwLDAsMCwwKSxyfXZhciBlbjEsRWk9YigoKT0+e08yKCk7QWUoKTtlbjE9ZDF9KTtmdW5jdGlvbiBHMSh0LGUpe3JldHVybiBkMSh0LHsuLi5lLHdlZWtTdGFydHNPbjoxfSl9dmFyIGluMSx2cj1iKCgpPT57RWkoKTtpbjE9RzF9KTtmdW5jdGlvbiBuYSh0LGUpe2xldCBhPW5lKHQsZT8uaW4pLGk9YS5nZXRGdWxsWWVhcigpLHI9TGUoYSwwKTtyLnNldEZ1bGxZZWFyKGkrMSwwLDQpLHIuc2V0SG91cnMoMCwwLDAsMCk7bGV0IHM9RzEociksbj1MZShhLDApO24uc2V0RnVsbFllYXIoaSwwLDQpLG4uc2V0SG91cnMoMCwwLDAsMCk7bGV0IG89RzEobik7cmV0dXJuIGEuZ2V0VGltZSgpPj1zLmdldFRpbWUoKT9pKzE6YS5nZXRUaW1lKCk+PW8uZ2V0VGltZSgpP2k6aS0xfXZhciBsbjEsdW49YigoKT0+e2F0KCk7dnIoKTtBZSgpO2xuMT1uYX0pO2Z1bmN0aW9uIEQxKHQpe2xldCBlPW5lKHQpLGE9bmV3IERhdGUoRGF0ZS5VVEMoZS5nZXRGdWxsWWVhcigpLGUuZ2V0TW9udGgoKSxlLmdldERhdGUoKSxlLmdldEhvdXJzKCksZS5nZXRNaW51dGVzKCksZS5nZXRTZWNvbmRzKCksZS5nZXRNaWxsaXNlY29uZHMoKSkpO3JldHVybiBhLnNldFVUQ0Z1bGxZZWFyKGUuZ2V0RnVsbFllYXIoKSksK3QtK2F9dmFyIHNzPWIoKCk9PntBZSgpfSk7ZnVuY3Rpb24gSmUodCwuLi5lKXtsZXQgYT1MZS5iaW5kKG51bGwsdHx8ZS5maW5kKGk9PnR5cGVvZiBpPT0ib2JqZWN0IikpO3JldHVybiBlLm1hcChhKX12YXIgcjE9YigoKT0+e2F0KCl9KTtmdW5jdGlvbiB5cih0LGUpe2xldCBhPW5lKHQsZT8uaW4pO3JldHVybiBhLnNldEhvdXJzKDAsMCwwLDApLGF9dmFyIG1uMSxJYz1iKCgpPT57QWUoKTttbjE9eXJ9KTtmdW5jdGlvbiBoMih0LGUsYSl7bGV0W2kscl09SmUoYT8uaW4sdCxlKSxzPXlyKGkpLG49eXIociksbz0rcy1EMShzKSxkPStuLUQxKG4pO3JldHVybiBNYXRoLnJvdW5kKChvLWQpL003KX12YXIgd24xLG5zPWIoKCk9PntzcygpO3IxKCk7eXQoKTtJYygpO3duMT1oMn0pO2Z1bmN0aW9uIElhKHQsZSl7bGV0IGE9bmEodCxlKSxpPUxlKGU/LmlufHx0LDApO3JldHVybiBpLnNldEZ1bGxZZWFyKGEsMCw0KSxpLnNldEhvdXJzKDAsMCwwLDApLEcxKGkpfXZhciBDbjEsUjQ9YigoKT0+e2F0KCk7dW4oKTt2cigpO0NuMT1JYX0pO2Z1bmN0aW9uIEE3KHQsZSxhKXtsZXQgaT1uZSh0LGE/LmluKSxyPWgyKGksSWEoaSxhKSkscz1MZShhPy5pbnx8dCwwKTtyZXR1cm4gcy5zZXRGdWxsWWVhcihlLDAsNCkscy5zZXRIb3VycygwLDAsMCwwKSxpPUlhKHMpLGkuc2V0RGF0ZShpLmdldERhdGUoKStyKSxpfXZhciBEbjEsWWs9YigoKT0+e2F0KCk7bnMoKTtSNCgpO0FlKCk7RG4xPUE3fSk7ZnVuY3Rpb24gRDcodCxlLGEpe3JldHVybiBBNyh0LG5hKHQsYSkrZSxhKX12YXIgTm4xLFprPWIoKCk9Pnt1bigpO1lrKCk7Tm4xPUQ3fSk7ZnVuY3Rpb24gQjQodCxlLGEpe2xldCBpPW5lKHQsYT8uaW4pO3JldHVybiBpLnNldFRpbWUoaS5nZXRUaW1lKCkrZSpGMiksaX12YXIgQm4xLEU3PWIoKCk9Pnt5dCgpO0FlKCk7Qm4xPUI0fSk7ZnVuY3Rpb24gSDQodCxlLGEpe3JldHVybiBncih0LGUqMyxhKX12YXIgVm4xLFA3PWIoKCk9PntPNCgpO1ZuMT1INH0pO2Z1bmN0aW9uIEk3KHQsZSxhKXtyZXR1cm4gcG4odCxlKjFlMyxhKX12YXIgV24xLFhrPWIoKCk9PntQYygpO1duMT1JN30pO2Z1bmN0aW9uIGZuKHQsZSxhKXtyZXR1cm4gSjEodCxlKjcsYSl9dmFyIFpuMSxOYz1iKCgpPT57bXIoKTtabjE9Zm59KTtmdW5jdGlvbiBONyh0LGUsYSl7cmV0dXJuIGdyKHQsZSoxMixhKX12YXIgUW4xLEtrPWIoKCk9PntPNCgpO1FuMT1ON30pO2Z1bmN0aW9uIFdHKHQsZSxhKXtsZXRbaSxyXT1bK25lKHQuc3RhcnQsYT8uaW4pLCtuZSh0LmVuZCxhPy5pbildLnNvcnQoKG8sZCk9Pm8tZCksW3Msbl09WytuZShlLnN0YXJ0LGE/LmluKSwrbmUoZS5lbmQsYT8uaW4pXS5zb3J0KChvLGQpPT5vLWQpO3JldHVybiBhPy5pbmNsdXNpdmU/aTw9biYmczw9cjppPG4mJnM8cn12YXIgdG8xLEdHPWIoKCk9PntBZSgpO3RvMT1XR30pO2Z1bmN0aW9uIEY3KHQsZSl7bGV0IGEsaT1lPy5pbjtyZXR1cm4gdC5mb3JFYWNoKHI9PnshaSYmdHlwZW9mIHI9PSJvYmplY3QiJiYoaT1MZS5iaW5kKG51bGwscikpO2xldCBzPW5lKHIsaSk7KCFhfHxhPHN8fGlzTmFOKCtzKSkmJihhPXMpfSksTGUoaSxhfHxOYU4pfXZhciBzbzEsUWs9YigoKT0+e2F0KCk7QWUoKTtzbzE9Rjd9KTtmdW5jdGlvbiBPNyh0LGUpe2xldCBhLGk9ZT8uaW47cmV0dXJuIHQuZm9yRWFjaChyPT57IWkmJnR5cGVvZiByPT0ib2JqZWN0IiYmKGk9TGUuYmluZChudWxsLHIpKTtsZXQgcz1uZShyLGkpOyghYXx8YT5zfHxpc05hTigrcykpJiYoYT1zKX0pLExlKGksYXx8TmFOKX12YXIgY28xLEprPWIoKCk9PnthdCgpO0FlKCk7Y28xPU83fSk7ZnVuY3Rpb24gWUcodCxlLGEpe2xldFtpLHIsc109SmUoYT8uaW4sdCxlLnN0YXJ0LGUuZW5kKTtyZXR1cm4gTzcoW0Y3KFtpLHJdLGEpLHNdLGEpfXZhciBmbzEsWkc9YigoKT0+e3IxKCk7UWsoKTtKaygpO2ZvMT1ZR30pO2Z1bmN0aW9uIFI3KHQsZSl7bGV0IGE9K25lKHQpO2lmKGlzTmFOKGEpKXJldHVybiBOYU47bGV0IGkscjtyZXR1cm4gZS5mb3JFYWNoKChzLG4pPT57bGV0IG89bmUocyk7aWYoaXNOYU4oK28pKXtpPU5hTixyPU5hTjtyZXR1cm59bGV0IGQ9TWF0aC5hYnMoYS0rbyk7KGk9PW51bGx8fGQ8cikmJihpPW4scj1kKX0pLGl9dmFyIGJvMSxlUz1iKCgpPT57QWUoKTtibzE9Ujd9KTtmdW5jdGlvbiBYRyh0LGUsYSl7bGV0W2ksLi4ucl09SmUoYT8uaW4sdCwuLi5lKSxzPVI3KGkscik7aWYodHlwZW9mIHM9PSJudW1iZXIiJiZpc05hTihzKSlyZXR1cm4gTGUoaSxOYU4pO2lmKHMhPT12b2lkIDApcmV0dXJuIHJbc119dmFyIE1vMSxLRz1iKCgpPT57cjEoKTtlUygpO2F0KCk7TW8xPVhHfSk7ZnVuY3Rpb24gUjIodCxlKXtsZXQgYT0rbmUodCktK25lKGUpO3JldHVybiBhPDA/LTE6YT4wPzE6YX12YXIgU28xLHFvPWIoKCk9PntBZSgpO1NvMT1SMn0pO2Z1bmN0aW9uIFFHKHQsZSl7bGV0IGE9K25lKHQpLStuZShlKTtyZXR1cm4gYT4wPy0xOmE8MD8xOmF9dmFyIFRvMSxKRz1iKCgpPT57QWUoKTtUbzE9UUd9KTtmdW5jdGlvbiBDdCh0KXtyZXR1cm4gTGUodCxEYXRlLm5vdygpKX12YXIgQW8xLGUyPWIoKCk9PnthdCgpO0FvMT1DdH0pO2Z1bmN0aW9uIGVZKHQpe2xldCBlPU1hdGgudHJ1bmModC83KTtyZXR1cm4gZT09PTA/MDplfXZhciBQbzEsdFk9YigoKT0+e3l0KCk7UG8xPWVZfSk7ZnVuY3Rpb24geHIodCxlLGEpe2xldFtpLHJdPUplKGE/LmluLHQsZSk7cmV0dXJuK3lyKGkpPT0reXIocil9dmFyIE9vMSxxND1iKCgpPT57cjEoKTtJYygpO09vMT14cn0pO2Z1bmN0aW9uIEI3KHQpe3JldHVybiB0IGluc3RhbmNlb2YgRGF0ZXx8dHlwZW9mIHQ9PSJvYmplY3QiJiZPYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwodCk9PT0iW29iamVjdCBEYXRlXSJ9dmFyIEJvMSx0Uz1iKCgpPT57Qm8xPUI3fSk7ZnVuY3Rpb24gejIodCl7cmV0dXJuISghQjcodCkmJnR5cGVvZiB0IT0ibnVtYmVyInx8aXNOYU4oK25lKHQpKSl9dmFyIGpvMSxvcz1iKCgpPT57dFMoKTtBZSgpO2pvMT16Mn0pO2Z1bmN0aW9uIGFZKHQsZSxhKXtsZXRbaSxyXT1KZShhPy5pbix0LGUpO2lmKCF6MihpKXx8IXoyKHIpKXJldHVybiBOYU47bGV0IHM9aDIoaSxyKSxuPXM8MD8tMToxLG89TWF0aC50cnVuYyhzLzcpLGQ9byo1LGM9SjEocixvKjcpO2Zvcig7IXhyKGksYyk7KWQrPWJyKGMsYSk/MDpuLGM9SjEoYyxuKTtyZXR1cm4gZD09PTA/MDpkfXZhciBRbzEsaVk9YigoKT0+e3IxKCk7bXIoKTtucygpO3E0KCk7b3MoKTtFYygpO1FvMT1hWX0pO2Z1bmN0aW9uIEg3KHQsZSxhKXtsZXRbaSxyXT1KZShhPy5pbix0LGUpO3JldHVybiBuYShpLGEpLW5hKHIsYSl9dmFyIGEwMSxhUz1iKCgpPT57cjEoKTt1bigpO2EwMT1IN30pO2Z1bmN0aW9uIHJZKHQsZSxhKXtsZXRbaSxyXT1KZShhPy5pbix0LGUpLHM9RzEoaSksbj1HMShyKSxvPStzLUQxKHMpLGQ9K24tRDEobik7cmV0dXJuIE1hdGgucm91bmQoKG8tZCkvZnIpfXZhciBsMDEsc1k9YigoKT0+e3NzKCk7cjEoKTt5dCgpO3ZyKCk7bDAxPXJZfSk7ZnVuY3Rpb24gVm8odCxlLGEpe2xldFtpLHJdPUplKGE/LmluLHQsZSkscz1pLmdldEZ1bGxZZWFyKCktci5nZXRGdWxsWWVhcigpLG49aS5nZXRNb250aCgpLXIuZ2V0TW9udGgoKTtyZXR1cm4gcyoxMitufXZhciBoMDEscTc9YigoKT0+e3IxKCk7aDAxPVZvfSk7ZnVuY3Rpb24gRmModCxlKXtsZXQgYT1uZSh0LGU/LmluKTtyZXR1cm4gTWF0aC50cnVuYyhhLmdldE1vbnRoKCkvMykrMX12YXIgZjAxLGlTPWIoKCk9PntBZSgpO2YwMT1GY30pO2Z1bmN0aW9uIFY0KHQsZSxhKXtsZXRbaSxyXT1KZShhPy5pbix0LGUpLHM9aS5nZXRGdWxsWWVhcigpLXIuZ2V0RnVsbFllYXIoKSxuPUZjKGkpLUZjKHIpO3JldHVybiBzKjQrbn12YXIgdjAxLHJTPWIoKCk9PntyMSgpO2lTKCk7djAxPVY0fSk7ZnVuY3Rpb24gam8odCxlLGEpe2xldFtpLHJdPUplKGE/LmluLHQsZSkscz1kMShpLGEpLG49ZDEocixhKSxvPStzLUQxKHMpLGQ9K24tRDEobik7cmV0dXJuIE1hdGgucm91bmQoKG8tZCkvZnIpfXZhciBrMDEsVjc9YigoKT0+e3NzKCk7cjEoKTt5dCgpO0VpKCk7azAxPWpvfSk7ZnVuY3Rpb24gbW4odCxlLGEpe2xldFtpLHJdPUplKGE/LmluLHQsZSk7cmV0dXJuIGkuZ2V0RnVsbFllYXIoKS1yLmdldEZ1bGxZZWFyKCl9dmFyIF8wMSxqNz1iKCgpPT57cjEoKTtfMDE9bW59KTtmdW5jdGlvbiBqNCh0LGUsYSl7bGV0W2kscl09SmUoYT8uaW4sdCxlKSxzPW5ZKGksciksbj1NYXRoLmFicyhoMihpLHIpKTtpLnNldERhdGUoaS5nZXREYXRlKCktcypuKTtsZXQgbz0rKG5ZKGkscik9PT0tcyksZD1zKihuLW8pO3JldHVybiBkPT09MD8wOmR9ZnVuY3Rpb24gblkodCxlKXtsZXQgYT10LmdldEZ1bGxZZWFyKCktZS5nZXRGdWxsWWVhcigpfHx0LmdldE1vbnRoKCktZS5nZXRNb250aCgpfHx0LmdldERhdGUoKS1lLmdldERhdGUoKXx8dC5nZXRIb3VycygpLWUuZ2V0SG91cnMoKXx8dC5nZXRNaW51dGVzKCktZS5nZXRNaW51dGVzKCl8fHQuZ2V0U2Vjb25kcygpLWUuZ2V0U2Vjb25kcygpfHx0LmdldE1pbGxpc2Vjb25kcygpLWUuZ2V0TWlsbGlzZWNvbmRzKCk7cmV0dXJuIGE8MD8tMTphPjA/MTphfXZhciBBMDEsVTc9YigoKT0+e3IxKCk7bnMoKTtBMDE9ajR9KTtmdW5jdGlvbiBCMih0KXtyZXR1cm4gZT0+e2xldCBpPSh0P01hdGhbdF06TWF0aC50cnVuYykoZSk7cmV0dXJuIGk9PT0wPzA6aX19dmFyIGxzPWIoKCk9Pnt9KTtmdW5jdGlvbiBVbyh0LGUsYSl7bGV0W2kscl09SmUoYT8uaW4sdCxlKSxzPSgraS0rcikvUGE7cmV0dXJuIEIyKGE/LnJvdW5kaW5nTWV0aG9kKShzKX12YXIgRjAxLFc3PWIoKCk9PntscygpO3IxKCk7eXQoKTtGMDE9VW99KTtmdW5jdGlvbiBHNyh0LGUsYSl7cmV0dXJuIEQ3KHQsLWUsYSl9dmFyIEIwMSxzUz1iKCgpPT57WmsoKTtCMDE9Rzd9KTtmdW5jdGlvbiBvWSh0LGUsYSl7bGV0W2kscl09SmUoYT8uaW4sdCxlKSxzPVIyKGksciksbj1NYXRoLmFicyhINyhpLHIsYSkpLG89RzcoaSxzKm4sYSksZD0rKFIyKG8scik9PT0tcyksYz1zKihuLWQpO3JldHVybiBjPT09MD8wOmN9dmFyIFcwMSxsWT1iKCgpPT57cjEoKTtxbygpO2FTKCk7c1MoKTtXMDE9b1l9KTtmdW5jdGlvbiBVNCh0LGUpe3JldHVybituZSh0KS0rbmUoZSl9dmFyIFowMSxZNz1iKCgpPT57QWUoKTtaMDE9VTR9KTtmdW5jdGlvbiBXbyh0LGUsYSl7bGV0IGk9VTQodCxlKS9GMjtyZXR1cm4gQjIoYT8ucm91bmRpbmdNZXRob2QpKGkpfXZhciBlNDEsWjc9YigoKT0+e2xzKCk7eXQoKTtZNygpO2U0MT1Xb30pO2Z1bmN0aW9uIFc0KHQsZSl7bGV0IGE9bmUodCxlPy5pbik7cmV0dXJuIGEuc2V0SG91cnMoMjMsNTksNTksOTk5KSxhfXZhciBpNDEsWDc9YigoKT0+e0FlKCk7aTQxPVc0fSk7ZnVuY3Rpb24gRzQodCxlKXtsZXQgYT1uZSh0LGU/LmluKSxpPWEuZ2V0TW9udGgoKTtyZXR1cm4gYS5zZXRGdWxsWWVhcihhLmdldEZ1bGxZZWFyKCksaSsxLDApLGEuc2V0SG91cnMoMjMsNTksNTksOTk5KSxhfXZhciBuNDEsSzc9YigoKT0+e0FlKCk7bjQxPUc0fSk7ZnVuY3Rpb24gUTcodCxlKXtsZXQgYT1uZSh0LGU/LmluKTtyZXR1cm4rVzQoYSxlKT09K0c0KGEsZSl9dmFyIGg0MSxuUz1iKCgpPT57WDcoKTtLNygpO0FlKCk7aDQxPVE3fSk7ZnVuY3Rpb24gZ24odCxlLGEpe2xldFtpLHIsc109SmUoYT8uaW4sdCx0LGUpLG49UjIocixzKSxvPU1hdGguYWJzKFZvKHIscykpO2lmKG88MSlyZXR1cm4gMDtyLmdldE1vbnRoKCk9PT0xJiZyLmdldERhdGUoKT4yNyYmci5zZXREYXRlKDMwKSxyLnNldE1vbnRoKHIuZ2V0TW9udGgoKS1uKm8pO2xldCBkPVIyKHIscyk9PT0tbjtRNyhpKSYmbz09PTEmJlIyKGkscyk9PT0xJiYoZD0hMSk7bGV0IGM9biooby0rZCk7cmV0dXJuIGM9PT0wPzA6Y312YXIgYjQxLE9jPWIoKCk9PntyMSgpO3FvKCk7cTcoKTtuUygpO2I0MT1nbn0pO2Z1bmN0aW9uIGNZKHQsZSxhKXtsZXQgaT1nbih0LGUsYSkvMztyZXR1cm4gQjIoYT8ucm91bmRpbmdNZXRob2QpKGkpfXZhciB3NDEsZFk9YigoKT0+e2xzKCk7T2MoKTt3NDE9Y1l9KTtmdW5jdGlvbiB3cih0LGUsYSl7bGV0IGk9VTQodCxlKS8xZTM7cmV0dXJuIEIyKGE/LnJvdW5kaW5nTWV0aG9kKShpKX12YXIgUzQxLFJjPWIoKCk9PntscygpO1k3KCk7UzQxPXdyfSk7ZnVuY3Rpb24gaFkodCxlLGEpe2xldCBpPWo0KHQsZSxhKS83O3JldHVybiBCMihhPy5yb3VuZGluZ01ldGhvZCkoaSl9dmFyIEw0MSxwWT1iKCgpPT57bHMoKTtVNygpO0w0MT1oWX0pO2Z1bmN0aW9uIEo3KHQsZSxhKXtsZXRbaSxyXT1KZShhPy5pbix0LGUpLHM9UjIoaSxyKSxuPU1hdGguYWJzKG1uKGkscikpO2kuc2V0RnVsbFllYXIoMTU4NCksci5zZXRGdWxsWWVhcigxNTg0KTtsZXQgbz1SMihpLHIpPT09LXMsZD1zKihuLStvKTtyZXR1cm4gZD09PTA/MDpkfXZhciBQNDEsb1M9YigoKT0+e3IxKCk7cW8oKTtqNygpO1A0MT1KN30pO2Z1bmN0aW9uIHAyKHQsZSl7bGV0W2EsaV09SmUodCxlLnN0YXJ0LGUuZW5kKTtyZXR1cm57c3RhcnQ6YSxlbmQ6aX19dmFyIE1yPWIoKCk9PntyMSgpfSk7ZnVuY3Rpb24gZWgodCxlKXtsZXR7c3RhcnQ6YSxlbmQ6aX09cDIoZT8uaW4sdCkscj0rYT4raSxzPXI/K2E6K2ksbj1yP2k6YTtuLnNldEhvdXJzKDAsMCwwLDApO2xldCBvPWU/LnN0ZXA/PzE7aWYoIW8pcmV0dXJuW107bzwwJiYobz0tbyxyPSFyKTtsZXQgZD1bXTtmb3IoOytuPD1zOylkLnB1c2goTGUoYSxuKSksbi5zZXREYXRlKG4uZ2V0RGF0ZSgpK28pLG4uc2V0SG91cnMoMCwwLDAsMCk7cmV0dXJuIHI/ZC5yZXZlcnNlKCk6ZH12YXIgQjQxLGxTPWIoKCk9PntNcigpO2F0KCk7QjQxPWVofSk7ZnVuY3Rpb24gdVkodCxlKXtsZXR7c3RhcnQ6YSxlbmQ6aX09cDIoZT8uaW4sdCkscj0rYT4raSxzPXI/K2E6K2ksbj1yP2k6YTtuLnNldE1pbnV0ZXMoMCwwLDApO2xldCBvPWU/LnN0ZXA/PzE7aWYoIW8pcmV0dXJuW107bzwwJiYobz0tbyxyPSFyKTtsZXQgZD1bXTtmb3IoOytuPD1zOylkLnB1c2goTGUoYSxuKSksbi5zZXRIb3VycyhuLmdldEhvdXJzKCkrbyk7cmV0dXJuIHI/ZC5yZXZlcnNlKCk6ZH12YXIgajQxLGZZPWIoKCk9PntNcigpO2F0KCk7ajQxPXVZfSk7ZnVuY3Rpb24gbVkodCxlKXtsZXR7c3RhcnQ6YSxlbmQ6aX09cDIoZT8uaW4sdCk7YS5zZXRTZWNvbmRzKDAsMCk7bGV0IHI9K2E+K2kscz1yPythOitpLG49cj9pOmEsbz1lPy5zdGVwPz8xO2lmKCFvKXJldHVybltdO288MCYmKG89LW8scj0hcik7bGV0IGQ9W107Zm9yKDsrbjw9czspZC5wdXNoKExlKGEsbikpLG49QjQobixvKTtyZXR1cm4gcj9kLnJldmVyc2UoKTpkfXZhciBaNDEsZ1k9YigoKT0+e01yKCk7RTcoKTthdCgpO1o0MT1tWX0pO2Z1bmN0aW9uIGJZKHQsZSl7bGV0e3N0YXJ0OmEsZW5kOml9PXAyKGU/LmluLHQpLHI9K2E+K2kscz1yPythOitpLG49cj9pOmE7bi5zZXRIb3VycygwLDAsMCwwKSxuLnNldERhdGUoMSk7bGV0IG89ZT8uc3RlcD8/MTtpZighbylyZXR1cm5bXTtvPDAmJihvPS1vLHI9IXIpO2xldCBkPVtdO2Zvcig7K248PXM7KWQucHVzaChMZShhLG4pKSxuLnNldE1vbnRoKG4uZ2V0TW9udGgoKStvKTtyZXR1cm4gcj9kLnJldmVyc2UoKTpkfXZhciBKNDEsdlk9YigoKT0+e01yKCk7YXQoKTtKNDE9Yll9KTtmdW5jdGlvbiB6cih0LGUpe2xldCBhPW5lKHQsZT8uaW4pLGk9YS5nZXRNb250aCgpLHI9aS1pJTM7cmV0dXJuIGEuc2V0TW9udGgociwxKSxhLnNldEhvdXJzKDAsMCwwLDApLGF9dmFyIGEzMSx0aD1iKCgpPT57QWUoKTthMzE9enJ9KTtmdW5jdGlvbiB5WSh0LGUpe2xldHtzdGFydDphLGVuZDppfT1wMihlPy5pbix0KSxyPSthPitpLHM9cj8renIoYSk6K3pyKGkpLG49cj96cihpKTp6cihhKSxvPWU/LnN0ZXA/PzE7aWYoIW8pcmV0dXJuW107bzwwJiYobz0tbyxyPSFyKTtsZXQgZD1bXTtmb3IoOytuPD1zOylkLnB1c2goTGUoYSxuKSksbj1INChuLG8pO3JldHVybiByP2QucmV2ZXJzZSgpOmR9dmFyIGwzMSx4WT1iKCgpPT57TXIoKTtQNygpO2F0KCk7dGgoKTtsMzE9eVl9KTtmdW5jdGlvbiB3WSh0LGUpe2xldHtzdGFydDphLGVuZDppfT1wMihlPy5pbix0KSxyPSthPitpLHM9cj9kMShpLGUpOmQxKGEsZSksbj1yP2QxKGEsZSk6ZDEoaSxlKTtzLnNldEhvdXJzKDE1KSxuLnNldEhvdXJzKDE1KTtsZXQgbz0rbi5nZXRUaW1lKCksZD1zLGM9ZT8uc3RlcD8/MTtpZighYylyZXR1cm5bXTtjPDAmJihjPS1jLHI9IXIpO2xldCBoPVtdO2Zvcig7K2Q8PW87KWQuc2V0SG91cnMoMCksaC5wdXNoKExlKGEsZCkpLGQ9Zm4oZCxjKSxkLnNldEhvdXJzKDE1KTtyZXR1cm4gcj9oLnJldmVyc2UoKTpofXZhciBmMzEsTVk9YigoKT0+e01yKCk7TmMoKTthdCgpO0VpKCk7ZjMxPXdZfSk7ZnVuY3Rpb24gWTQodCxlKXtsZXR7c3RhcnQ6YSxlbmQ6aX09cDIoZT8uaW4sdCkscj1laCh7c3RhcnQ6YSxlbmQ6aX0sZSkscz1bXSxuPTA7Zm9yKDtuPHIubGVuZ3RoOyl7bGV0IG89cltuKytdO2JyKG8pJiZzLnB1c2goTGUoYSxvKSl9cmV0dXJuIHN9dmFyIHgzMSxhaD1iKCgpPT57TXIoKTthdCgpO2xTKCk7RWMoKTt4MzE9WTR9KTtmdW5jdGlvbiBibih0LGUpe2xldCBhPW5lKHQsZT8uaW4pO3JldHVybiBhLnNldERhdGUoMSksYS5zZXRIb3VycygwLDAsMCwwKSxhfXZhciB6MzEsQmM9YigoKT0+e0FlKCk7ejMxPWJufSk7ZnVuY3Rpb24gelkodCxlKXtsZXQgYT1ibih0LGUpLGk9RzQodCxlKTtyZXR1cm4gWTQoe3N0YXJ0OmEsZW5kOml9LGUpfXZhciBUMzEsa1k9YigoKT0+e2FoKCk7SzcoKTtCYygpO1QzMT16WX0pO2Z1bmN0aW9uIGloKHQsZSl7bGV0IGE9bmUodCxlPy5pbiksaT1hLmdldEZ1bGxZZWFyKCk7cmV0dXJuIGEuc2V0RnVsbFllYXIoaSsxLDAsMCksYS5zZXRIb3VycygyMyw1OSw1OSw5OTkpLGF9dmFyIEEzMSxjUz1iKCgpPT57QWUoKTtBMzE9aWh9KTtmdW5jdGlvbiBaNCh0LGUpe2xldCBhPW5lKHQsZT8uaW4pO3JldHVybiBhLnNldEZ1bGxZZWFyKGEuZ2V0RnVsbFllYXIoKSwwLDEpLGEuc2V0SG91cnMoMCwwLDAsMCksYX12YXIgUDMxLHJoPWIoKCk9PntBZSgpO1AzMT1aNH0pO2Z1bmN0aW9uIFNZKHQsZSl7bGV0IGE9WjQodCxlKSxpPWloKHQsZSk7cmV0dXJuIFk0KHtzdGFydDphLGVuZDppfSxlKX12YXIgUjMxLENZPWIoKCk9PnthaCgpO2NTKCk7cmgoKTtSMzE9U1l9KTtmdW5jdGlvbiBfWSh0LGUpe2xldHtzdGFydDphLGVuZDppfT1wMihlPy5pbix0KSxyPSthPitpLHM9cj8rYToraSxuPXI/aTphO24uc2V0SG91cnMoMCwwLDAsMCksbi5zZXRNb250aCgwLDEpO2xldCBvPWU/LnN0ZXA/PzE7aWYoIW8pcmV0dXJuW107bzwwJiYobz0tbyxyPSFyKTtsZXQgZD1bXTtmb3IoOytuPD1zOylkLnB1c2goTGUoYSxuKSksbi5zZXRGdWxsWWVhcihuLmdldEZ1bGxZZWFyKCkrbyk7cmV0dXJuIHI/ZC5yZXZlcnNlKCk6ZH12YXIgVjMxLFRZPWIoKCk9PntNcigpO2F0KCk7VjMxPV9ZfSk7ZnVuY3Rpb24gTFkodCxlKXtsZXQgYT1uZSh0LGU/LmluKSxpPWEuZ2V0RnVsbFllYXIoKSxyPTkrTWF0aC5mbG9vcihpLzEwKSoxMDtyZXR1cm4gYS5zZXRGdWxsWWVhcihyLDExLDMxKSxhLnNldEhvdXJzKDIzLDU5LDU5LDk5OSksYX12YXIgVzMxLCRZPWIoKCk9PntBZSgpO1czMT1MWX0pO2Z1bmN0aW9uIEFZKHQsZSl7bGV0IGE9bmUodCxlPy5pbik7cmV0dXJuIGEuc2V0TWludXRlcyg1OSw1OSw5OTkpLGF9dmFyIFozMSxEWT1iKCgpPT57QWUoKTtaMzE9QVl9KTtmdW5jdGlvbiBzaCh0LGUpe2xldCBhPUt0KCksaT1lPy53ZWVrU3RhcnRzT24/P2U/LmxvY2FsZT8ub3B0aW9ucz8ud2Vla1N0YXJ0c09uPz9hLndlZWtTdGFydHNPbj8/YS5sb2NhbGU/Lm9wdGlvbnM/LndlZWtTdGFydHNPbj8/MCxyPW5lKHQsZT8uaW4pLHM9ci5nZXREYXkoKSxuPShzPGk/LTc6MCkrNi0ocy1pKTtyZXR1cm4gci5zZXREYXRlKHIuZ2V0RGF0ZSgpK24pLHIuc2V0SG91cnMoMjMsNTksNTksOTk5KSxyfXZhciBKMzEsZFM9YigoKT0+e08yKCk7QWUoKTtKMzE9c2h9KTtmdW5jdGlvbiBFWSh0LGUpe3JldHVybiBzaCh0LHsuLi5lLHdlZWtTdGFydHNPbjoxfSl9dmFyIGFsMSxQWT1iKCgpPT57ZFMoKTthbDE9RVl9KTtmdW5jdGlvbiBJWSh0LGUpe2xldCBhPW5hKHQsZSksaT1MZShlPy5pbnx8dCwwKTtpLnNldEZ1bGxZZWFyKGErMSwwLDQpLGkuc2V0SG91cnMoMCwwLDAsMCk7bGV0IHI9RzEoaSxlKTtyZXR1cm4gci5zZXRNaWxsaXNlY29uZHMoci5nZXRNaWxsaXNlY29uZHMoKS0xKSxyfXZhciBvbDEsTlk9YigoKT0+e2F0KCk7dW4oKTt2cigpO29sMT1JWX0pO2Z1bmN0aW9uIEZZKHQsZSl7bGV0IGE9bmUodCxlPy5pbik7cmV0dXJuIGEuc2V0U2Vjb25kcyg1OSw5OTkpLGF9dmFyIGRsMSxPWT1iKCgpPT57QWUoKTtkbDE9Rll9KTtmdW5jdGlvbiBSWSh0LGUpe2xldCBhPW5lKHQsZT8uaW4pLGk9YS5nZXRNb250aCgpLHI9aS1pJTMrMztyZXR1cm4gYS5zZXRNb250aChyLDApLGEuc2V0SG91cnMoMjMsNTksNTksOTk5KSxhfXZhciB1bDEsQlk9YigoKT0+e0FlKCk7dWwxPVJZfSk7ZnVuY3Rpb24gSFkodCxlKXtsZXQgYT1uZSh0LGU/LmluKTtyZXR1cm4gYS5zZXRNaWxsaXNlY29uZHMoOTk5KSxhfXZhciBnbDEscVk9YigoKT0+e0FlKCk7Z2wxPUhZfSk7ZnVuY3Rpb24gVlkodCl7cmV0dXJuIFc0KERhdGUubm93KCksdCl9dmFyIHlsMSxqWT1iKCgpPT57WDcoKTt5bDE9Vll9KTtmdW5jdGlvbiBVWSh0KXtsZXQgZT1DdCh0Py5pbiksYT1lLmdldEZ1bGxZZWFyKCksaT1lLmdldE1vbnRoKCkscj1lLmdldERhdGUoKSxzPUN0KHQ/LmluKTtyZXR1cm4gcy5zZXRGdWxsWWVhcihhLGkscisxKSxzLnNldEhvdXJzKDIzLDU5LDU5LDk5OSksdD8uaW4/dC5pbihzKTpzfXZhciBNbDEsV1k9YigoKT0+e2UyKCk7TWwxPVVZfSk7ZnVuY3Rpb24gR1kodCl7bGV0IGU9Q3QodD8uaW4pLGE9TGUodD8uaW4sMCk7cmV0dXJuIGEuc2V0RnVsbFllYXIoZS5nZXRGdWxsWWVhcigpLGUuZ2V0TW9udGgoKSxlLmdldERhdGUoKS0xKSxhLnNldEhvdXJzKDIzLDU5LDU5LDk5OSksYX12YXIgQ2wxLFlZPWIoKCk9PnthdCgpO2UyKCk7Q2wxPUdZfSk7dmFyIFVTdCxaWSxYWT1iKCgpPT57VVN0PXtsZXNzVGhhblhTZWNvbmRzOntvbmU6Imxlc3MgdGhhbiBhIHNlY29uZCIsb3RoZXI6Imxlc3MgdGhhbiB7e2NvdW50fX0gc2Vjb25kcyJ9LHhTZWNvbmRzOntvbmU6IjEgc2Vjb25kIixvdGhlcjoie3tjb3VudH19IHNlY29uZHMifSxoYWxmQU1pbnV0ZToiaGFsZiBhIG1pbnV0ZSIsbGVzc1RoYW5YTWludXRlczp7b25lOiJsZXNzIHRoYW4gYSBtaW51dGUiLG90aGVyOiJsZXNzIHRoYW4ge3tjb3VudH19IG1pbnV0ZXMifSx4TWludXRlczp7b25lOiIxIG1pbnV0ZSIsb3RoZXI6Int7Y291bnR9fSBtaW51dGVzIn0sYWJvdXRYSG91cnM6e29uZToiYWJvdXQgMSBob3VyIixvdGhlcjoiYWJvdXQge3tjb3VudH19IGhvdXJzIn0seEhvdXJzOntvbmU6IjEgaG91ciIsb3RoZXI6Int7Y291bnR9fSBob3VycyJ9LHhEYXlzOntvbmU6IjEgZGF5IixvdGhlcjoie3tjb3VudH19IGRheXMifSxhYm91dFhXZWVrczp7b25lOiJhYm91dCAxIHdlZWsiLG90aGVyOiJhYm91dCB7e2NvdW50fX0gd2Vla3MifSx4V2Vla3M6e29uZToiMSB3ZWVrIixvdGhlcjoie3tjb3VudH19IHdlZWtzIn0sYWJvdXRYTW9udGhzOntvbmU6ImFib3V0IDEgbW9udGgiLG90aGVyOiJhYm91dCB7e2NvdW50fX0gbW9udGhzIn0seE1vbnRoczp7b25lOiIxIG1vbnRoIixvdGhlcjoie3tjb3VudH19IG1vbnRocyJ9LGFib3V0WFllYXJzOntvbmU6ImFib3V0IDEgeWVhciIsb3RoZXI6ImFib3V0IHt7Y291bnR9fSB5ZWFycyJ9LHhZZWFyczp7b25lOiIxIHllYXIiLG90aGVyOiJ7e2NvdW50fX0geWVhcnMifSxvdmVyWFllYXJzOntvbmU6Im92ZXIgMSB5ZWFyIixvdGhlcjoib3ZlciB7e2NvdW50fX0geWVhcnMifSxhbG1vc3RYWWVhcnM6e29uZToiYWxtb3N0IDEgeWVhciIsb3RoZXI6ImFsbW9zdCB7e2NvdW50fX0geWVhcnMifX0sWlk9KHQsZSxhKT0+e2xldCBpLHI9VVN0W3RdO3JldHVybiB0eXBlb2Ygcj09InN0cmluZyI/aT1yOmU9PT0xP2k9ci5vbmU6aT1yLm90aGVyLnJlcGxhY2UoInt7Y291bnR9fSIsZS50b1N0cmluZygpKSxhPy5hZGRTdWZmaXg/YS5jb21wYXJpc29uJiZhLmNvbXBhcmlzb24+MD8iaW4gIitpOmkrIiBhZ28iOml9fSk7ZnVuY3Rpb24gbmgodCl7cmV0dXJuKGU9e30pPT57bGV0IGE9ZS53aWR0aD9TdHJpbmcoZS53aWR0aCk6dC5kZWZhdWx0V2lkdGg7cmV0dXJuIHQuZm9ybWF0c1thXXx8dC5mb3JtYXRzW3QuZGVmYXVsdFdpZHRoXX19dmFyIEtZPWIoKCk9Pnt9KTt2YXIgV1N0LEdTdCxZU3QsUVksSlk9YigoKT0+e0tZKCk7V1N0PXtmdWxsOiJFRUVFLCBNTU1NIGRvLCB5Iixsb25nOiJNTU1NIGRvLCB5IixtZWRpdW06Ik1NTSBkLCB5IixzaG9ydDoiTU0vZGQveXl5eSJ9LEdTdD17ZnVsbDoiaDptbTpzcyBhIHp6enoiLGxvbmc6Img6bW06c3MgYSB6IixtZWRpdW06Img6bW06c3MgYSIsc2hvcnQ6Img6bW0gYSJ9LFlTdD17ZnVsbDoie3tkYXRlfX0gJ2F0JyB7e3RpbWV9fSIsbG9uZzoie3tkYXRlfX0gJ2F0JyB7e3RpbWV9fSIsbWVkaXVtOiJ7e2RhdGV9fSwge3t0aW1lfX0iLHNob3J0OiJ7e2RhdGV9fSwge3t0aW1lfX0ifSxRWT17ZGF0ZTpuaCh7Zm9ybWF0czpXU3QsZGVmYXVsdFdpZHRoOiJmdWxsIn0pLHRpbWU6bmgoe2Zvcm1hdHM6R1N0LGRlZmF1bHRXaWR0aDoiZnVsbCJ9KSxkYXRlVGltZTpuaCh7Zm9ybWF0czpZU3QsZGVmYXVsdFdpZHRoOiJmdWxsIn0pfX0pO3ZhciBaU3QsZVosdFo9YigoKT0+e1pTdD17bGFzdFdlZWs6IidsYXN0JyBlZWVlICdhdCcgcCIseWVzdGVyZGF5OiIneWVzdGVyZGF5IGF0JyBwIix0b2RheToiJ3RvZGF5IGF0JyBwIix0b21vcnJvdzoiJ3RvbW9ycm93IGF0JyBwIixuZXh0V2VlazoiZWVlZSAnYXQnIHAiLG90aGVyOiJQIn0sZVo9KHQsZSxhLGkpPT5aU3RbdF19KTtmdW5jdGlvbiBYNCh0KXtyZXR1cm4oZSxhKT0+e2xldCBpPWE/LmNvbnRleHQ/U3RyaW5nKGEuY29udGV4dCk6InN0YW5kYWxvbmUiLHI7aWYoaT09PSJmb3JtYXR0aW5nIiYmdC5mb3JtYXR0aW5nVmFsdWVzKXtsZXQgbj10LmRlZmF1bHRGb3JtYXR0aW5nV2lkdGh8fHQuZGVmYXVsdFdpZHRoLG89YT8ud2lkdGg/U3RyaW5nKGEud2lkdGgpOm47cj10LmZvcm1hdHRpbmdWYWx1ZXNbb118fHQuZm9ybWF0dGluZ1ZhbHVlc1tuXX1lbHNle2xldCBuPXQuZGVmYXVsdFdpZHRoLG89YT8ud2lkdGg/U3RyaW5nKGEud2lkdGgpOnQuZGVmYXVsdFdpZHRoO3I9dC52YWx1ZXNbb118fHQudmFsdWVzW25dfWxldCBzPXQuYXJndW1lbnRDYWxsYmFjaz90LmFyZ3VtZW50Q2FsbGJhY2soZSk6ZTtyZXR1cm4gcltzXX19dmFyIGFaPWIoKCk9Pnt9KTt2YXIgWFN0LEtTdCxRU3QsSlN0LGVDdCx0Q3QsYUN0LGlaLHJaPWIoKCk9PnthWigpO1hTdD17bmFycm93OlsiQiIsIkEiXSxhYmJyZXZpYXRlZDpbIkJDIiwiQUQiXSx3aWRlOlsiQmVmb3JlIENocmlzdCIsIkFubm8gRG9taW5pIl19LEtTdD17bmFycm93OlsiMSIsIjIiLCIzIiwiNCJdLGFiYnJldmlhdGVkOlsiUTEiLCJRMiIsIlEzIiwiUTQiXSx3aWRlOlsiMXN0IHF1YXJ0ZXIiLCIybmQgcXVhcnRlciIsIjNyZCBxdWFydGVyIiwiNHRoIHF1YXJ0ZXIiXX0sUVN0PXtuYXJyb3c6WyJKIiwiRiIsIk0iLCJBIiwiTSIsIkoiLCJKIiwiQSIsIlMiLCJPIiwiTiIsIkQiXSxhYmJyZXZpYXRlZDpbIkphbiIsIkZlYiIsIk1hciIsIkFwciIsIk1heSIsIkp1biIsIkp1bCIsIkF1ZyIsIlNlcCIsIk9jdCIsIk5vdiIsIkRlYyJdLHdpZGU6WyJKYW51YXJ5IiwiRmVicnVhcnkiLCJNYXJjaCIsIkFwcmlsIiwiTWF5IiwiSnVuZSIsIkp1bHkiLCJBdWd1c3QiLCJTZXB0ZW1iZXIiLCJPY3RvYmVyIiwiTm92ZW1iZXIiLCJEZWNlbWJlciJdfSxKU3Q9e25hcnJvdzpbIlMiLCJNIiwiVCIsIlciLCJUIiwiRiIsIlMiXSxzaG9ydDpbIlN1IiwiTW8iLCJUdSIsIldlIiwiVGgiLCJGciIsIlNhIl0sYWJicmV2aWF0ZWQ6WyJTdW4iLCJNb24iLCJUdWUiLCJXZWQiLCJUaHUiLCJGcmkiLCJTYXQiXSx3aWRlOlsiU3VuZGF5IiwiTW9uZGF5IiwiVHVlc2RheSIsIldlZG5lc2RheSIsIlRodXJzZGF5IiwiRnJpZGF5IiwiU2F0dXJkYXkiXX0sZUN0PXtuYXJyb3c6e2FtOiJhIixwbToicCIsbWlkbmlnaHQ6Im1pIixub29uOiJuIixtb3JuaW5nOiJtb3JuaW5nIixhZnRlcm5vb246ImFmdGVybm9vbiIsZXZlbmluZzoiZXZlbmluZyIsbmlnaHQ6Im5pZ2h0In0sYWJicmV2aWF0ZWQ6e2FtOiJBTSIscG06IlBNIixtaWRuaWdodDoibWlkbmlnaHQiLG5vb246Im5vb24iLG1vcm5pbmc6Im1vcm5pbmciLGFmdGVybm9vbjoiYWZ0ZXJub29uIixldmVuaW5nOiJldmVuaW5nIixuaWdodDoibmlnaHQifSx3aWRlOnthbToiYS5tLiIscG06InAubS4iLG1pZG5pZ2h0OiJtaWRuaWdodCIsbm9vbjoibm9vbiIsbW9ybmluZzoibW9ybmluZyIsYWZ0ZXJub29uOiJhZnRlcm5vb24iLGV2ZW5pbmc6ImV2ZW5pbmciLG5pZ2h0OiJuaWdodCJ9fSx0Q3Q9e25hcnJvdzp7YW06ImEiLHBtOiJwIixtaWRuaWdodDoibWkiLG5vb246Im4iLG1vcm5pbmc6ImluIHRoZSBtb3JuaW5nIixhZnRlcm5vb246ImluIHRoZSBhZnRlcm5vb24iLGV2ZW5pbmc6ImluIHRoZSBldmVuaW5nIixuaWdodDoiYXQgbmlnaHQifSxhYmJyZXZpYXRlZDp7YW06IkFNIixwbToiUE0iLG1pZG5pZ2h0OiJtaWRuaWdodCIsbm9vbjoibm9vbiIsbW9ybmluZzoiaW4gdGhlIG1vcm5pbmciLGFmdGVybm9vbjoiaW4gdGhlIGFmdGVybm9vbiIsZXZlbmluZzoiaW4gdGhlIGV2ZW5pbmciLG5pZ2h0OiJhdCBuaWdodCJ9LHdpZGU6e2FtOiJhLm0uIixwbToicC5tLiIsbWlkbmlnaHQ6Im1pZG5pZ2h0Iixub29uOiJub29uIixtb3JuaW5nOiJpbiB0aGUgbW9ybmluZyIsYWZ0ZXJub29uOiJpbiB0aGUgYWZ0ZXJub29uIixldmVuaW5nOiJpbiB0aGUgZXZlbmluZyIsbmlnaHQ6ImF0IG5pZ2h0In19LGFDdD0odCxlKT0+e2xldCBhPU51bWJlcih0KSxpPWElMTAwO2lmKGk+MjB8fGk8MTApc3dpdGNoKGklMTApe2Nhc2UgMTpyZXR1cm4gYSsic3QiO2Nhc2UgMjpyZXR1cm4gYSsibmQiO2Nhc2UgMzpyZXR1cm4gYSsicmQifXJldHVybiBhKyJ0aCJ9LGlaPXtvcmRpbmFsTnVtYmVyOmFDdCxlcmE6WDQoe3ZhbHVlczpYU3QsZGVmYXVsdFdpZHRoOiJ3aWRlIn0pLHF1YXJ0ZXI6WDQoe3ZhbHVlczpLU3QsZGVmYXVsdFdpZHRoOiJ3aWRlIixhcmd1bWVudENhbGxiYWNrOnQ9PnQtMX0pLG1vbnRoOlg0KHt2YWx1ZXM6UVN0LGRlZmF1bHRXaWR0aDoid2lkZSJ9KSxkYXk6WDQoe3ZhbHVlczpKU3QsZGVmYXVsdFdpZHRoOiJ3aWRlIn0pLGRheVBlcmlvZDpYNCh7dmFsdWVzOmVDdCxkZWZhdWx0V2lkdGg6IndpZGUiLGZvcm1hdHRpbmdWYWx1ZXM6dEN0LGRlZmF1bHRGb3JtYXR0aW5nV2lkdGg6IndpZGUifSl9fSk7ZnVuY3Rpb24gSzQodCl7cmV0dXJuKGUsYT17fSk9PntsZXQgaT1hLndpZHRoLHI9aSYmdC5tYXRjaFBhdHRlcm5zW2ldfHx0Lm1hdGNoUGF0dGVybnNbdC5kZWZhdWx0TWF0Y2hXaWR0aF0scz1lLm1hdGNoKHIpO2lmKCFzKXJldHVybiBudWxsO2xldCBuPXNbMF0sbz1pJiZ0LnBhcnNlUGF0dGVybnNbaV18fHQucGFyc2VQYXR0ZXJuc1t0LmRlZmF1bHRQYXJzZVdpZHRoXSxkPUFycmF5LmlzQXJyYXkobyk/ckN0KG8sbD0+bC50ZXN0KG4pKTppQ3QobyxsPT5sLnRlc3QobikpLGM7Yz10LnZhbHVlQ2FsbGJhY2s/dC52YWx1ZUNhbGxiYWNrKGQpOmQsYz1hLnZhbHVlQ2FsbGJhY2s/YS52YWx1ZUNhbGxiYWNrKGMpOmM7bGV0IGg9ZS5zbGljZShuLmxlbmd0aCk7cmV0dXJue3ZhbHVlOmMscmVzdDpofX19ZnVuY3Rpb24gaUN0KHQsZSl7Zm9yKGxldCBhIGluIHQpaWYoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHQsYSkmJmUodFthXSkpcmV0dXJuIGF9ZnVuY3Rpb24gckN0KHQsZSl7Zm9yKGxldCBhPTA7YTx0Lmxlbmd0aDthKyspaWYoZSh0W2FdKSlyZXR1cm4gYX12YXIgc1o9YigoKT0+e30pO2Z1bmN0aW9uIG5aKHQpe3JldHVybihlLGE9e30pPT57bGV0IGk9ZS5tYXRjaCh0Lm1hdGNoUGF0dGVybik7aWYoIWkpcmV0dXJuIG51bGw7bGV0IHI9aVswXSxzPWUubWF0Y2godC5wYXJzZVBhdHRlcm4pO2lmKCFzKXJldHVybiBudWxsO2xldCBuPXQudmFsdWVDYWxsYmFjaz90LnZhbHVlQ2FsbGJhY2soc1swXSk6c1swXTtuPWEudmFsdWVDYWxsYmFjaz9hLnZhbHVlQ2FsbGJhY2sobik6bjtsZXQgbz1lLnNsaWNlKHIubGVuZ3RoKTtyZXR1cm57dmFsdWU6bixyZXN0Om99fX12YXIgb1o9YigoKT0+e30pO3ZhciBzQ3QsbkN0LG9DdCxsQ3QsY0N0LGRDdCxoQ3QscEN0LHVDdCxmQ3QsbUN0LGdDdCxsWixjWj1iKCgpPT57c1ooKTtvWigpO3NDdD0vXihcZCspKHRofHN0fG5kfHJkKT8vaSxuQ3Q9L1xkKy9pLG9DdD17bmFycm93Oi9eKGJ8YSkvaSxhYmJyZXZpYXRlZDovXihiXC4/XHM/Y1wuP3xiXC4/XHM/Y1wuP1xzP2VcLj98YVwuP1xzP2RcLj98Y1wuP1xzP2VcLj8pL2ksd2lkZTovXihiZWZvcmUgY2hyaXN0fGJlZm9yZSBjb21tb24gZXJhfGFubm8gZG9taW5pfGNvbW1vbiBlcmEpL2l9LGxDdD17YW55OlsvXmIvaSwvXihhfGMpL2ldfSxjQ3Q9e25hcnJvdzovXlsxMjM0XS9pLGFiYnJldmlhdGVkOi9ecVsxMjM0XS9pLHdpZGU6L15bMTIzNF0odGh8c3R8bmR8cmQpPyBxdWFydGVyL2l9LGRDdD17YW55OlsvMS9pLC8yL2ksLzMvaSwvNC9pXX0saEN0PXtuYXJyb3c6L15bamZtYXNvbmRdL2ksYWJicmV2aWF0ZWQ6L14oamFufGZlYnxtYXJ8YXByfG1heXxqdW58anVsfGF1Z3xzZXB8b2N0fG5vdnxkZWMpL2ksd2lkZTovXihqYW51YXJ5fGZlYnJ1YXJ5fG1hcmNofGFwcmlsfG1heXxqdW5lfGp1bHl8YXVndXN0fHNlcHRlbWJlcnxvY3RvYmVyfG5vdmVtYmVyfGRlY2VtYmVyKS9pfSxwQ3Q9e25hcnJvdzpbL15qL2ksL15mL2ksL15tL2ksL15hL2ksL15tL2ksL15qL2ksL15qL2ksL15hL2ksL15zL2ksL15vL2ksL15uL2ksL15kL2ldLGFueTpbL15qYS9pLC9eZi9pLC9ebWFyL2ksL15hcC9pLC9ebWF5L2ksL15qdW4vaSwvXmp1bC9pLC9eYXUvaSwvXnMvaSwvXm8vaSwvXm4vaSwvXmQvaV19LHVDdD17bmFycm93Oi9eW3NtdHdmXS9pLHNob3J0Oi9eKHN1fG1vfHR1fHdlfHRofGZyfHNhKS9pLGFiYnJldmlhdGVkOi9eKHN1bnxtb258dHVlfHdlZHx0aHV8ZnJpfHNhdCkvaSx3aWRlOi9eKHN1bmRheXxtb25kYXl8dHVlc2RheXx3ZWRuZXNkYXl8dGh1cnNkYXl8ZnJpZGF5fHNhdHVyZGF5KS9pfSxmQ3Q9e25hcnJvdzpbL15zL2ksL15tL2ksL150L2ksL153L2ksL150L2ksL15mL2ksL15zL2ldLGFueTpbL15zdS9pLC9ebS9pLC9edHUvaSwvXncvaSwvXnRoL2ksL15mL2ksL15zYS9pXX0sbUN0PXtuYXJyb3c6L14oYXxwfG1pfG58KGluIHRoZXxhdCkgKG1vcm5pbmd8YWZ0ZXJub29ufGV2ZW5pbmd8bmlnaHQpKS9pLGFueTovXihbYXBdXC4/XHM/bVwuP3xtaWRuaWdodHxub29ufChpbiB0aGV8YXQpIChtb3JuaW5nfGFmdGVybm9vbnxldmVuaW5nfG5pZ2h0KSkvaX0sZ0N0PXthbnk6e2FtOi9eYS9pLHBtOi9ecC9pLG1pZG5pZ2h0Oi9ebWkvaSxub29uOi9ebm8vaSxtb3JuaW5nOi9tb3JuaW5nL2ksYWZ0ZXJub29uOi9hZnRlcm5vb24vaSxldmVuaW5nOi9ldmVuaW5nL2ksbmlnaHQ6L25pZ2h0L2l9fSxsWj17b3JkaW5hbE51bWJlcjpuWih7bWF0Y2hQYXR0ZXJuOnNDdCxwYXJzZVBhdHRlcm46bkN0LHZhbHVlQ2FsbGJhY2s6dD0+cGFyc2VJbnQodCwxMCl9KSxlcmE6SzQoe21hdGNoUGF0dGVybnM6b0N0LGRlZmF1bHRNYXRjaFdpZHRoOiJ3aWRlIixwYXJzZVBhdHRlcm5zOmxDdCxkZWZhdWx0UGFyc2VXaWR0aDoiYW55In0pLHF1YXJ0ZXI6SzQoe21hdGNoUGF0dGVybnM6Y0N0LGRlZmF1bHRNYXRjaFdpZHRoOiJ3aWRlIixwYXJzZVBhdHRlcm5zOmRDdCxkZWZhdWx0UGFyc2VXaWR0aDoiYW55Iix2YWx1ZUNhbGxiYWNrOnQ9PnQrMX0pLG1vbnRoOks0KHttYXRjaFBhdHRlcm5zOmhDdCxkZWZhdWx0TWF0Y2hXaWR0aDoid2lkZSIscGFyc2VQYXR0ZXJuczpwQ3QsZGVmYXVsdFBhcnNlV2lkdGg6ImFueSJ9KSxkYXk6SzQoe21hdGNoUGF0dGVybnM6dUN0LGRlZmF1bHRNYXRjaFdpZHRoOiJ3aWRlIixwYXJzZVBhdHRlcm5zOmZDdCxkZWZhdWx0UGFyc2VXaWR0aDoiYW55In0pLGRheVBlcmlvZDpLNCh7bWF0Y2hQYXR0ZXJuczptQ3QsZGVmYXVsdE1hdGNoV2lkdGg6ImFueSIscGFyc2VQYXR0ZXJuczpnQ3QsZGVmYXVsdFBhcnNlV2lkdGg6ImFueSJ9KX19KTt2YXIgQ2EsV2wxLGRaPWIoKCk9PntYWSgpO0pZKCk7dFooKTtyWigpO2NaKCk7Q2E9e2NvZGU6ImVuLVVTIixmb3JtYXREaXN0YW5jZTpaWSxmb3JtYXRMb25nOlFZLGZvcm1hdFJlbGF0aXZlOmVaLGxvY2FsaXplOmlaLG1hdGNoOmxaLG9wdGlvbnM6e3dlZWtTdGFydHNPbjowLGZpcnN0V2Vla0NvbnRhaW5zRGF0ZToxfX0sV2wxPUNhfSk7dmFyIEdvPWIoKCk9PntkWigpfSk7ZnVuY3Rpb24gb2godCxlKXtsZXQgYT1uZSh0LGU/LmluKTtyZXR1cm4gaDIoYSxaNChhKSkrMX12YXIgSmwxLGhTPWIoKCk9PntucygpO3JoKCk7QWUoKTtKbDE9b2h9KTtmdW5jdGlvbiBRNCh0LGUpe2xldCBhPW5lKHQsZT8uaW4pLGk9K0cxKGEpLStJYShhKTtyZXR1cm4gTWF0aC5yb3VuZChpL2ZyKSsxfXZhciBzYzEsbGg9YigoKT0+e3l0KCk7dnIoKTtSNCgpO0FlKCk7c2MxPVE0fSk7ZnVuY3Rpb24gdm4odCxlKXtsZXQgYT1uZSh0LGU/LmluKSxpPWEuZ2V0RnVsbFllYXIoKSxyPUt0KCkscz1lPy5maXJzdFdlZWtDb250YWluc0RhdGU/P2U/LmxvY2FsZT8ub3B0aW9ucz8uZmlyc3RXZWVrQ29udGFpbnNEYXRlPz9yLmZpcnN0V2Vla0NvbnRhaW5zRGF0ZT8/ci5sb2NhbGU/Lm9wdGlvbnM/LmZpcnN0V2Vla0NvbnRhaW5zRGF0ZT8/MSxuPUxlKGU/LmlufHx0LDApO24uc2V0RnVsbFllYXIoaSsxLDAscyksbi5zZXRIb3VycygwLDAsMCwwKTtsZXQgbz1kMShuLGUpLGQ9TGUoZT8uaW58fHQsMCk7ZC5zZXRGdWxsWWVhcihpLDAscyksZC5zZXRIb3VycygwLDAsMCwwKTtsZXQgYz1kMShkLGUpO3JldHVybithPj0rbz9pKzE6K2E+PStjP2k6aS0xfXZhciBoYzEsSGM9YigoKT0+e08yKCk7YXQoKTtFaSgpO0FlKCk7aGMxPXZufSk7ZnVuY3Rpb24gWW8odCxlKXtsZXQgYT1LdCgpLGk9ZT8uZmlyc3RXZWVrQ29udGFpbnNEYXRlPz9lPy5sb2NhbGU/Lm9wdGlvbnM/LmZpcnN0V2Vla0NvbnRhaW5zRGF0ZT8/YS5maXJzdFdlZWtDb250YWluc0RhdGU/P2EubG9jYWxlPy5vcHRpb25zPy5maXJzdFdlZWtDb250YWluc0RhdGU/PzEscj12bih0LGUpLHM9TGUoZT8uaW58fHQsMCk7cmV0dXJuIHMuc2V0RnVsbFllYXIociwwLGkpLHMuc2V0SG91cnMoMCwwLDAsMCksZDEocyxlKX12YXIgYmMxLGNoPWIoKCk9PntPMigpO2F0KCk7SGMoKTtFaSgpO2JjMT1Zb30pO2Z1bmN0aW9uIEo0KHQsZSl7bGV0IGE9bmUodCxlPy5pbiksaT0rZDEoYSxlKS0rWW8oYSxlKTtyZXR1cm4gTWF0aC5yb3VuZChpL2ZyKSsxfXZhciB6YzEsZGg9YigoKT0+e3l0KCk7RWkoKTtjaCgpO0FlKCk7emMxPUo0fSk7ZnVuY3Rpb24gWWUodCxlKXtsZXQgYT10PDA/Ii0iOiIiLGk9TWF0aC5hYnModCkudG9TdHJpbmcoKS5wYWRTdGFydChlLCIwIik7cmV0dXJuIGEraX12YXIgWm89YigoKT0+e30pO3ZhciBOYSxwUz1iKCgpPT57Wm8oKTtOYT17eSh0LGUpe2xldCBhPXQuZ2V0RnVsbFllYXIoKSxpPWE+MD9hOjEtYTtyZXR1cm4gWWUoZT09PSJ5eSI/aSUxMDA6aSxlLmxlbmd0aCl9LE0odCxlKXtsZXQgYT10LmdldE1vbnRoKCk7cmV0dXJuIGU9PT0iTSI/U3RyaW5nKGErMSk6WWUoYSsxLDIpfSxkKHQsZSl7cmV0dXJuIFllKHQuZ2V0RGF0ZSgpLGUubGVuZ3RoKX0sYSh0LGUpe2xldCBhPXQuZ2V0SG91cnMoKS8xMj49MT8icG0iOiJhbSI7c3dpdGNoKGUpe2Nhc2UiYSI6Y2FzZSJhYSI6cmV0dXJuIGEudG9VcHBlckNhc2UoKTtjYXNlImFhYSI6cmV0dXJuIGE7Y2FzZSJhYWFhYSI6cmV0dXJuIGFbMF07ZGVmYXVsdDpyZXR1cm4gYT09PSJhbSI/ImEubS4iOiJwLm0uIn19LGgodCxlKXtyZXR1cm4gWWUodC5nZXRIb3VycygpJTEyfHwxMixlLmxlbmd0aCl9LEgodCxlKXtyZXR1cm4gWWUodC5nZXRIb3VycygpLGUubGVuZ3RoKX0sbSh0LGUpe3JldHVybiBZZSh0LmdldE1pbnV0ZXMoKSxlLmxlbmd0aCl9LHModCxlKXtyZXR1cm4gWWUodC5nZXRTZWNvbmRzKCksZS5sZW5ndGgpfSxTKHQsZSl7bGV0IGE9ZS5sZW5ndGgsaT10LmdldE1pbGxpc2Vjb25kcygpLHI9TWF0aC50cnVuYyhpKk1hdGgucG93KDEwLGEtMykpO3JldHVybiBZZShyLGUubGVuZ3RoKX19fSk7ZnVuY3Rpb24gaFoodCxlPSIiKXtsZXQgYT10PjA/Ii0iOiIrIixpPU1hdGguYWJzKHQpLHI9TWF0aC50cnVuYyhpLzYwKSxzPWklNjA7cmV0dXJuIHM9PT0wP2ErU3RyaW5nKHIpOmErU3RyaW5nKHIpK2UrWWUocywyKX1mdW5jdGlvbiBwWih0LGUpe3JldHVybiB0JTYwPT09MD8odD4wPyItIjoiKyIpK1llKE1hdGguYWJzKHQpLzYwLDIpOlhvKHQsZSl9ZnVuY3Rpb24gWG8odCxlPSIiKXtsZXQgYT10PjA/Ii0iOiIrIixpPU1hdGguYWJzKHQpLHI9WWUoTWF0aC50cnVuYyhpLzYwKSwyKSxzPVllKGklNjAsMik7cmV0dXJuIGErcitlK3N9dmFyIGUzLHFjLHVaPWIoKCk9PntoUygpO2xoKCk7dW4oKTtkaCgpO0hjKCk7Wm8oKTtwUygpO2UzPXthbToiYW0iLHBtOiJwbSIsbWlkbmlnaHQ6Im1pZG5pZ2h0Iixub29uOiJub29uIixtb3JuaW5nOiJtb3JuaW5nIixhZnRlcm5vb246ImFmdGVybm9vbiIsZXZlbmluZzoiZXZlbmluZyIsbmlnaHQ6Im5pZ2h0In0scWM9e0c6ZnVuY3Rpb24odCxlLGEpe2xldCBpPXQuZ2V0RnVsbFllYXIoKT4wPzE6MDtzd2l0Y2goZSl7Y2FzZSJHIjpjYXNlIkdHIjpjYXNlIkdHRyI6cmV0dXJuIGEuZXJhKGkse3dpZHRoOiJhYmJyZXZpYXRlZCJ9KTtjYXNlIkdHR0dHIjpyZXR1cm4gYS5lcmEoaSx7d2lkdGg6Im5hcnJvdyJ9KTtkZWZhdWx0OnJldHVybiBhLmVyYShpLHt3aWR0aDoid2lkZSJ9KX19LHk6ZnVuY3Rpb24odCxlLGEpe2lmKGU9PT0ieW8iKXtsZXQgaT10LmdldEZ1bGxZZWFyKCkscj1pPjA/aToxLWk7cmV0dXJuIGEub3JkaW5hbE51bWJlcihyLHt1bml0OiJ5ZWFyIn0pfXJldHVybiBOYS55KHQsZSl9LFk6ZnVuY3Rpb24odCxlLGEsaSl7bGV0IHI9dm4odCxpKSxzPXI+MD9yOjEtcjtpZihlPT09IllZIil7bGV0IG49cyUxMDA7cmV0dXJuIFllKG4sMil9cmV0dXJuIGU9PT0iWW8iP2Eub3JkaW5hbE51bWJlcihzLHt1bml0OiJ5ZWFyIn0pOlllKHMsZS5sZW5ndGgpfSxSOmZ1bmN0aW9uKHQsZSl7bGV0IGE9bmEodCk7cmV0dXJuIFllKGEsZS5sZW5ndGgpfSx1OmZ1bmN0aW9uKHQsZSl7bGV0IGE9dC5nZXRGdWxsWWVhcigpO3JldHVybiBZZShhLGUubGVuZ3RoKX0sUTpmdW5jdGlvbih0LGUsYSl7bGV0IGk9TWF0aC5jZWlsKCh0LmdldE1vbnRoKCkrMSkvMyk7c3dpdGNoKGUpe2Nhc2UiUSI6cmV0dXJuIFN0cmluZyhpKTtjYXNlIlFRIjpyZXR1cm4gWWUoaSwyKTtjYXNlIlFvIjpyZXR1cm4gYS5vcmRpbmFsTnVtYmVyKGkse3VuaXQ6InF1YXJ0ZXIifSk7Y2FzZSJRUVEiOnJldHVybiBhLnF1YXJ0ZXIoaSx7d2lkdGg6ImFiYnJldmlhdGVkIixjb250ZXh0OiJmb3JtYXR0aW5nIn0pO2Nhc2UiUVFRUVEiOnJldHVybiBhLnF1YXJ0ZXIoaSx7d2lkdGg6Im5hcnJvdyIsY29udGV4dDoiZm9ybWF0dGluZyJ9KTtkZWZhdWx0OnJldHVybiBhLnF1YXJ0ZXIoaSx7d2lkdGg6IndpZGUiLGNvbnRleHQ6ImZvcm1hdHRpbmcifSl9fSxxOmZ1bmN0aW9uKHQsZSxhKXtsZXQgaT1NYXRoLmNlaWwoKHQuZ2V0TW9udGgoKSsxKS8zKTtzd2l0Y2goZSl7Y2FzZSJxIjpyZXR1cm4gU3RyaW5nKGkpO2Nhc2UicXEiOnJldHVybiBZZShpLDIpO2Nhc2UicW8iOnJldHVybiBhLm9yZGluYWxOdW1iZXIoaSx7dW5pdDoicXVhcnRlciJ9KTtjYXNlInFxcSI6cmV0dXJuIGEucXVhcnRlcihpLHt3aWR0aDoiYWJicmV2aWF0ZWQiLGNvbnRleHQ6InN0YW5kYWxvbmUifSk7Y2FzZSJxcXFxcSI6cmV0dXJuIGEucXVhcnRlcihpLHt3aWR0aDoibmFycm93Iixjb250ZXh0OiJzdGFuZGFsb25lIn0pO2RlZmF1bHQ6cmV0dXJuIGEucXVhcnRlcihpLHt3aWR0aDoid2lkZSIsY29udGV4dDoic3RhbmRhbG9uZSJ9KX19LE06ZnVuY3Rpb24odCxlLGEpe2xldCBpPXQuZ2V0TW9udGgoKTtzd2l0Y2goZSl7Y2FzZSJNIjpjYXNlIk1NIjpyZXR1cm4gTmEuTSh0LGUpO2Nhc2UiTW8iOnJldHVybiBhLm9yZGluYWxOdW1iZXIoaSsxLHt1bml0OiJtb250aCJ9KTtjYXNlIk1NTSI6cmV0dXJuIGEubW9udGgoaSx7d2lkdGg6ImFiYnJldmlhdGVkIixjb250ZXh0OiJmb3JtYXR0aW5nIn0pO2Nhc2UiTU1NTU0iOnJldHVybiBhLm1vbnRoKGkse3dpZHRoOiJuYXJyb3ciLGNvbnRleHQ6ImZvcm1hdHRpbmcifSk7ZGVmYXVsdDpyZXR1cm4gYS5tb250aChpLHt3aWR0aDoid2lkZSIsY29udGV4dDoiZm9ybWF0dGluZyJ9KX19LEw6ZnVuY3Rpb24odCxlLGEpe2xldCBpPXQuZ2V0TW9udGgoKTtzd2l0Y2goZSl7Y2FzZSJMIjpyZXR1cm4gU3RyaW5nKGkrMSk7Y2FzZSJMTCI6cmV0dXJuIFllKGkrMSwyKTtjYXNlIkxvIjpyZXR1cm4gYS5vcmRpbmFsTnVtYmVyKGkrMSx7dW5pdDoibW9udGgifSk7Y2FzZSJMTEwiOnJldHVybiBhLm1vbnRoKGkse3dpZHRoOiJhYmJyZXZpYXRlZCIsY29udGV4dDoic3RhbmRhbG9uZSJ9KTtjYXNlIkxMTExMIjpyZXR1cm4gYS5tb250aChpLHt3aWR0aDoibmFycm93Iixjb250ZXh0OiJzdGFuZGFsb25lIn0pO2RlZmF1bHQ6cmV0dXJuIGEubW9udGgoaSx7d2lkdGg6IndpZGUiLGNvbnRleHQ6InN0YW5kYWxvbmUifSl9fSx3OmZ1bmN0aW9uKHQsZSxhLGkpe2xldCByPUo0KHQsaSk7cmV0dXJuIGU9PT0id28iP2Eub3JkaW5hbE51bWJlcihyLHt1bml0OiJ3ZWVrIn0pOlllKHIsZS5sZW5ndGgpfSxJOmZ1bmN0aW9uKHQsZSxhKXtsZXQgaT1RNCh0KTtyZXR1cm4gZT09PSJJbyI/YS5vcmRpbmFsTnVtYmVyKGkse3VuaXQ6IndlZWsifSk6WWUoaSxlLmxlbmd0aCl9LGQ6ZnVuY3Rpb24odCxlLGEpe3JldHVybiBlPT09ImRvIj9hLm9yZGluYWxOdW1iZXIodC5nZXREYXRlKCkse3VuaXQ6ImRhdGUifSk6TmEuZCh0LGUpfSxEOmZ1bmN0aW9uKHQsZSxhKXtsZXQgaT1vaCh0KTtyZXR1cm4gZT09PSJEbyI/YS5vcmRpbmFsTnVtYmVyKGkse3VuaXQ6ImRheU9mWWVhciJ9KTpZZShpLGUubGVuZ3RoKX0sRTpmdW5jdGlvbih0LGUsYSl7bGV0IGk9dC5nZXREYXkoKTtzd2l0Y2goZSl7Y2FzZSJFIjpjYXNlIkVFIjpjYXNlIkVFRSI6cmV0dXJuIGEuZGF5KGkse3dpZHRoOiJhYmJyZXZpYXRlZCIsY29udGV4dDoiZm9ybWF0dGluZyJ9KTtjYXNlIkVFRUVFIjpyZXR1cm4gYS5kYXkoaSx7d2lkdGg6Im5hcnJvdyIsY29udGV4dDoiZm9ybWF0dGluZyJ9KTtjYXNlIkVFRUVFRSI6cmV0dXJuIGEuZGF5KGkse3dpZHRoOiJzaG9ydCIsY29udGV4dDoiZm9ybWF0dGluZyJ9KTtkZWZhdWx0OnJldHVybiBhLmRheShpLHt3aWR0aDoid2lkZSIsY29udGV4dDoiZm9ybWF0dGluZyJ9KX19LGU6ZnVuY3Rpb24odCxlLGEsaSl7bGV0IHI9dC5nZXREYXkoKSxzPShyLWkud2Vla1N0YXJ0c09uKzgpJTd8fDc7c3dpdGNoKGUpe2Nhc2UiZSI6cmV0dXJuIFN0cmluZyhzKTtjYXNlImVlIjpyZXR1cm4gWWUocywyKTtjYXNlImVvIjpyZXR1cm4gYS5vcmRpbmFsTnVtYmVyKHMse3VuaXQ6ImRheSJ9KTtjYXNlImVlZSI6cmV0dXJuIGEuZGF5KHIse3dpZHRoOiJhYmJyZXZpYXRlZCIsY29udGV4dDoiZm9ybWF0dGluZyJ9KTtjYXNlImVlZWVlIjpyZXR1cm4gYS5kYXkocix7d2lkdGg6Im5hcnJvdyIsY29udGV4dDoiZm9ybWF0dGluZyJ9KTtjYXNlImVlZWVlZSI6cmV0dXJuIGEuZGF5KHIse3dpZHRoOiJzaG9ydCIsY29udGV4dDoiZm9ybWF0dGluZyJ9KTtkZWZhdWx0OnJldHVybiBhLmRheShyLHt3aWR0aDoid2lkZSIsY29udGV4dDoiZm9ybWF0dGluZyJ9KX19LGM6ZnVuY3Rpb24odCxlLGEsaSl7bGV0IHI9dC5nZXREYXkoKSxzPShyLWkud2Vla1N0YXJ0c09uKzgpJTd8fDc7c3dpdGNoKGUpe2Nhc2UiYyI6cmV0dXJuIFN0cmluZyhzKTtjYXNlImNjIjpyZXR1cm4gWWUocyxlLmxlbmd0aCk7Y2FzZSJjbyI6cmV0dXJuIGEub3JkaW5hbE51bWJlcihzLHt1bml0OiJkYXkifSk7Y2FzZSJjY2MiOnJldHVybiBhLmRheShyLHt3aWR0aDoiYWJicmV2aWF0ZWQiLGNvbnRleHQ6InN0YW5kYWxvbmUifSk7Y2FzZSJjY2NjYyI6cmV0dXJuIGEuZGF5KHIse3dpZHRoOiJuYXJyb3ciLGNvbnRleHQ6InN0YW5kYWxvbmUifSk7Y2FzZSJjY2NjY2MiOnJldHVybiBhLmRheShyLHt3aWR0aDoic2hvcnQiLGNvbnRleHQ6InN0YW5kYWxvbmUifSk7ZGVmYXVsdDpyZXR1cm4gYS5kYXkocix7d2lkdGg6IndpZGUiLGNvbnRleHQ6InN0YW5kYWxvbmUifSl9fSxpOmZ1bmN0aW9uKHQsZSxhKXtsZXQgaT10LmdldERheSgpLHI9aT09PTA/NzppO3N3aXRjaChlKXtjYXNlImkiOnJldHVybiBTdHJpbmcocik7Y2FzZSJpaSI6cmV0dXJuIFllKHIsZS5sZW5ndGgpO2Nhc2UiaW8iOnJldHVybiBhLm9yZGluYWxOdW1iZXIocix7dW5pdDoiZGF5In0pO2Nhc2UiaWlpIjpyZXR1cm4gYS5kYXkoaSx7d2lkdGg6ImFiYnJldmlhdGVkIixjb250ZXh0OiJmb3JtYXR0aW5nIn0pO2Nhc2UiaWlpaWkiOnJldHVybiBhLmRheShpLHt3aWR0aDoibmFycm93Iixjb250ZXh0OiJmb3JtYXR0aW5nIn0pO2Nhc2UiaWlpaWlpIjpyZXR1cm4gYS5kYXkoaSx7d2lkdGg6InNob3J0Iixjb250ZXh0OiJmb3JtYXR0aW5nIn0pO2RlZmF1bHQ6cmV0dXJuIGEuZGF5KGkse3dpZHRoOiJ3aWRlIixjb250ZXh0OiJmb3JtYXR0aW5nIn0pfX0sYTpmdW5jdGlvbih0LGUsYSl7bGV0IHI9dC5nZXRIb3VycygpLzEyPj0xPyJwbSI6ImFtIjtzd2l0Y2goZSl7Y2FzZSJhIjpjYXNlImFhIjpyZXR1cm4gYS5kYXlQZXJpb2Qocix7d2lkdGg6ImFiYnJldmlhdGVkIixjb250ZXh0OiJmb3JtYXR0aW5nIn0pO2Nhc2UiYWFhIjpyZXR1cm4gYS5kYXlQZXJpb2Qocix7d2lkdGg6ImFiYnJldmlhdGVkIixjb250ZXh0OiJmb3JtYXR0aW5nIn0pLnRvTG93ZXJDYXNlKCk7Y2FzZSJhYWFhYSI6cmV0dXJuIGEuZGF5UGVyaW9kKHIse3dpZHRoOiJuYXJyb3ciLGNvbnRleHQ6ImZvcm1hdHRpbmcifSk7ZGVmYXVsdDpyZXR1cm4gYS5kYXlQZXJpb2Qocix7d2lkdGg6IndpZGUiLGNvbnRleHQ6ImZvcm1hdHRpbmcifSl9fSxiOmZ1bmN0aW9uKHQsZSxhKXtsZXQgaT10LmdldEhvdXJzKCkscjtzd2l0Y2goaT09PTEyP3I9ZTMubm9vbjppPT09MD9yPWUzLm1pZG5pZ2h0OnI9aS8xMj49MT8icG0iOiJhbSIsZSl7Y2FzZSJiIjpjYXNlImJiIjpyZXR1cm4gYS5kYXlQZXJpb2Qocix7d2lkdGg6ImFiYnJldmlhdGVkIixjb250ZXh0OiJmb3JtYXR0aW5nIn0pO2Nhc2UiYmJiIjpyZXR1cm4gYS5kYXlQZXJpb2Qocix7d2lkdGg6ImFiYnJldmlhdGVkIixjb250ZXh0OiJmb3JtYXR0aW5nIn0pLnRvTG93ZXJDYXNlKCk7Y2FzZSJiYmJiYiI6cmV0dXJuIGEuZGF5UGVyaW9kKHIse3dpZHRoOiJuYXJyb3ciLGNvbnRleHQ6ImZvcm1hdHRpbmcifSk7ZGVmYXVsdDpyZXR1cm4gYS5kYXlQZXJpb2Qocix7d2lkdGg6IndpZGUiLGNvbnRleHQ6ImZvcm1hdHRpbmcifSl9fSxCOmZ1bmN0aW9uKHQsZSxhKXtsZXQgaT10LmdldEhvdXJzKCkscjtzd2l0Y2goaT49MTc/cj1lMy5ldmVuaW5nOmk+PTEyP3I9ZTMuYWZ0ZXJub29uOmk+PTQ/cj1lMy5tb3JuaW5nOnI9ZTMubmlnaHQsZSl7Y2FzZSJCIjpjYXNlIkJCIjpjYXNlIkJCQiI6cmV0dXJuIGEuZGF5UGVyaW9kKHIse3dpZHRoOiJhYmJyZXZpYXRlZCIsY29udGV4dDoiZm9ybWF0dGluZyJ9KTtjYXNlIkJCQkJCIjpyZXR1cm4gYS5kYXlQZXJpb2Qocix7d2lkdGg6Im5hcnJvdyIsY29udGV4dDoiZm9ybWF0dGluZyJ9KTtkZWZhdWx0OnJldHVybiBhLmRheVBlcmlvZChyLHt3aWR0aDoid2lkZSIsY29udGV4dDoiZm9ybWF0dGluZyJ9KX19LGg6ZnVuY3Rpb24odCxlLGEpe2lmKGU9PT0iaG8iKXtsZXQgaT10LmdldEhvdXJzKCklMTI7cmV0dXJuIGk9PT0wJiYoaT0xMiksYS5vcmRpbmFsTnVtYmVyKGkse3VuaXQ6ImhvdXIifSl9cmV0dXJuIE5hLmgodCxlKX0sSDpmdW5jdGlvbih0LGUsYSl7cmV0dXJuIGU9PT0iSG8iP2Eub3JkaW5hbE51bWJlcih0LmdldEhvdXJzKCkse3VuaXQ6ImhvdXIifSk6TmEuSCh0LGUpfSxLOmZ1bmN0aW9uKHQsZSxhKXtsZXQgaT10LmdldEhvdXJzKCklMTI7cmV0dXJuIGU9PT0iS28iP2Eub3JkaW5hbE51bWJlcihpLHt1bml0OiJob3VyIn0pOlllKGksZS5sZW5ndGgpfSxrOmZ1bmN0aW9uKHQsZSxhKXtsZXQgaT10LmdldEhvdXJzKCk7cmV0dXJuIGk9PT0wJiYoaT0yNCksZT09PSJrbyI/YS5vcmRpbmFsTnVtYmVyKGkse3VuaXQ6ImhvdXIifSk6WWUoaSxlLmxlbmd0aCl9LG06ZnVuY3Rpb24odCxlLGEpe3JldHVybiBlPT09Im1vIj9hLm9yZGluYWxOdW1iZXIodC5nZXRNaW51dGVzKCkse3VuaXQ6Im1pbnV0ZSJ9KTpOYS5tKHQsZSl9LHM6ZnVuY3Rpb24odCxlLGEpe3JldHVybiBlPT09InNvIj9hLm9yZGluYWxOdW1iZXIodC5nZXRTZWNvbmRzKCkse3VuaXQ6InNlY29uZCJ9KTpOYS5zKHQsZSl9LFM6ZnVuY3Rpb24odCxlKXtyZXR1cm4gTmEuUyh0LGUpfSxYOmZ1bmN0aW9uKHQsZSxhKXtsZXQgaT10LmdldFRpbWV6b25lT2Zmc2V0KCk7aWYoaT09PTApcmV0dXJuIloiO3N3aXRjaChlKXtjYXNlIlgiOnJldHVybiBwWihpKTtjYXNlIlhYWFgiOmNhc2UiWFgiOnJldHVybiBYbyhpKTtkZWZhdWx0OnJldHVybiBYbyhpLCI6Iil9fSx4OmZ1bmN0aW9uKHQsZSxhKXtsZXQgaT10LmdldFRpbWV6b25lT2Zmc2V0KCk7c3dpdGNoKGUpe2Nhc2UieCI6cmV0dXJuIHBaKGkpO2Nhc2UieHh4eCI6Y2FzZSJ4eCI6cmV0dXJuIFhvKGkpO2RlZmF1bHQ6cmV0dXJuIFhvKGksIjoiKX19LE86ZnVuY3Rpb24odCxlLGEpe2xldCBpPXQuZ2V0VGltZXpvbmVPZmZzZXQoKTtzd2l0Y2goZSl7Y2FzZSJPIjpjYXNlIk9PIjpjYXNlIk9PTyI6cmV0dXJuIkdNVCIraFooaSwiOiIpO2RlZmF1bHQ6cmV0dXJuIkdNVCIrWG8oaSwiOiIpfX0sejpmdW5jdGlvbih0LGUsYSl7bGV0IGk9dC5nZXRUaW1lem9uZU9mZnNldCgpO3N3aXRjaChlKXtjYXNlInoiOmNhc2UienoiOmNhc2Uienp6IjpyZXR1cm4iR01UIitoWihpLCI6Iik7ZGVmYXVsdDpyZXR1cm4iR01UIitYbyhpLCI6Iil9fSx0OmZ1bmN0aW9uKHQsZSxhKXtsZXQgaT1NYXRoLnRydW5jKCt0LzFlMyk7cmV0dXJuIFllKGksZS5sZW5ndGgpfSxUOmZ1bmN0aW9uKHQsZSxhKXtyZXR1cm4gWWUoK3QsZS5sZW5ndGgpfX19KTt2YXIgZlosbVosYkN0LHluLHVTPWIoKCk9PntmWj0odCxlKT0+e3N3aXRjaCh0KXtjYXNlIlAiOnJldHVybiBlLmRhdGUoe3dpZHRoOiJzaG9ydCJ9KTtjYXNlIlBQIjpyZXR1cm4gZS5kYXRlKHt3aWR0aDoibWVkaXVtIn0pO2Nhc2UiUFBQIjpyZXR1cm4gZS5kYXRlKHt3aWR0aDoibG9uZyJ9KTtkZWZhdWx0OnJldHVybiBlLmRhdGUoe3dpZHRoOiJmdWxsIn0pfX0sbVo9KHQsZSk9Pntzd2l0Y2godCl7Y2FzZSJwIjpyZXR1cm4gZS50aW1lKHt3aWR0aDoic2hvcnQifSk7Y2FzZSJwcCI6cmV0dXJuIGUudGltZSh7d2lkdGg6Im1lZGl1bSJ9KTtjYXNlInBwcCI6cmV0dXJuIGUudGltZSh7d2lkdGg6ImxvbmcifSk7ZGVmYXVsdDpyZXR1cm4gZS50aW1lKHt3aWR0aDoiZnVsbCJ9KX19LGJDdD0odCxlKT0+e2xldCBhPXQubWF0Y2goLyhQKykocCspPy8pfHxbXSxpPWFbMV0scj1hWzJdO2lmKCFyKXJldHVybiBmWih0LGUpO2xldCBzO3N3aXRjaChpKXtjYXNlIlAiOnM9ZS5kYXRlVGltZSh7d2lkdGg6InNob3J0In0pO2JyZWFrO2Nhc2UiUFAiOnM9ZS5kYXRlVGltZSh7d2lkdGg6Im1lZGl1bSJ9KTticmVhaztjYXNlIlBQUCI6cz1lLmRhdGVUaW1lKHt3aWR0aDoibG9uZyJ9KTticmVhaztkZWZhdWx0OnM9ZS5kYXRlVGltZSh7d2lkdGg6ImZ1bGwifSk7YnJlYWt9cmV0dXJuIHMucmVwbGFjZSgie3tkYXRlfX0iLGZaKGksZSkpLnJlcGxhY2UoInt7dGltZX19IixtWihyLGUpKX0seW49e3A6bVosUDpiQ3R9fSk7ZnVuY3Rpb24gaGgodCl7cmV0dXJuIHZDdC50ZXN0KHQpfWZ1bmN0aW9uIHBoKHQpe3JldHVybiB5Q3QudGVzdCh0KX1mdW5jdGlvbiBWYyh0LGUsYSl7bGV0IGk9d0N0KHQsZSxhKTtpZihjb25zb2xlLndhcm4oaSkseEN0LmluY2x1ZGVzKHQpKXRocm93IG5ldyBSYW5nZUVycm9yKGkpfWZ1bmN0aW9uIHdDdCh0LGUsYSl7bGV0IGk9dFswXT09PSJZIj8ieWVhcnMiOiJkYXlzIG9mIHRoZSBtb250aCI7cmV0dXJuYFVzZSBcYCR7dC50b0xvd2VyQ2FzZSgpfVxgIGluc3RlYWQgb2YgXGAke3R9XGAgKGluIFxgJHtlfVxgKSBmb3IgZm9ybWF0dGluZyAke2l9IHRvIHRoZSBpbnB1dCBcYCR7YX1cYDsgc2VlOiBodHRwczovL2dpdGh1Yi5jb20vZGF0ZS1mbnMvZGF0ZS1mbnMvYmxvYi9tYXN0ZXIvZG9jcy91bmljb2RlVG9rZW5zLm1kYH12YXIgdkN0LHlDdCx4Q3QsZlM9YigoKT0+e3ZDdD0vXkQrJC8seUN0PS9eWSskLyx4Q3Q9WyJEIiwiREQiLCJZWSIsIllZWVkiXX0pO2Z1bmN0aW9uIGpjKHQsZSxhKXtsZXQgaT1LdCgpLHI9YT8ubG9jYWxlPz9pLmxvY2FsZT8/Q2Escz1hPy5maXJzdFdlZWtDb250YWluc0RhdGU/P2E/LmxvY2FsZT8ub3B0aW9ucz8uZmlyc3RXZWVrQ29udGFpbnNEYXRlPz9pLmZpcnN0V2Vla0NvbnRhaW5zRGF0ZT8/aS5sb2NhbGU/Lm9wdGlvbnM/LmZpcnN0V2Vla0NvbnRhaW5zRGF0ZT8/MSxuPWE/LndlZWtTdGFydHNPbj8/YT8ubG9jYWxlPy5vcHRpb25zPy53ZWVrU3RhcnRzT24/P2kud2Vla1N0YXJ0c09uPz9pLmxvY2FsZT8ub3B0aW9ucz8ud2Vla1N0YXJ0c09uPz8wLG89bmUodCxhPy5pbik7aWYoIXoyKG8pKXRocm93IG5ldyBSYW5nZUVycm9yKCJJbnZhbGlkIHRpbWUgdmFsdWUiKTtsZXQgZD1lLm1hdGNoKHpDdCkubWFwKGg9PntsZXQgbD1oWzBdO2lmKGw9PT0icCJ8fGw9PT0iUCIpe2xldCBmPXluW2xdO3JldHVybiBmKGgsci5mb3JtYXRMb25nKX1yZXR1cm4gaH0pLmpvaW4oIiIpLm1hdGNoKE1DdCkubWFwKGg9PntpZihoPT09IicnIilyZXR1cm57aXNUb2tlbjohMSx2YWx1ZToiJyJ9O2xldCBsPWhbMF07aWYobD09PSInIilyZXR1cm57aXNUb2tlbjohMSx2YWx1ZTpfQ3QoaCl9O2lmKHFjW2xdKXJldHVybntpc1Rva2VuOiEwLHZhbHVlOmh9O2lmKGwubWF0Y2goQ0N0KSl0aHJvdyBuZXcgUmFuZ2VFcnJvcigiRm9ybWF0IHN0cmluZyBjb250YWlucyBhbiB1bmVzY2FwZWQgbGF0aW4gYWxwaGFiZXQgY2hhcmFjdGVyIGAiK2wrImAiKTtyZXR1cm57aXNUb2tlbjohMSx2YWx1ZTpofX0pO3IubG9jYWxpemUucHJlcHJvY2Vzc29yJiYoZD1yLmxvY2FsaXplLnByZXByb2Nlc3NvcihvLGQpKTtsZXQgYz17Zmlyc3RXZWVrQ29udGFpbnNEYXRlOnMsd2Vla1N0YXJ0c09uOm4sbG9jYWxlOnJ9O3JldHVybiBkLm1hcChoPT57aWYoIWguaXNUb2tlbilyZXR1cm4gaC52YWx1ZTtsZXQgbD1oLnZhbHVlOyghYT8udXNlQWRkaXRpb25hbFdlZWtZZWFyVG9rZW5zJiZwaChsKXx8IWE/LnVzZUFkZGl0aW9uYWxEYXlPZlllYXJUb2tlbnMmJmhoKGwpKSYmVmMobCxlLFN0cmluZyh0KSk7bGV0IGY9cWNbbFswXV07cmV0dXJuIGYobyxsLHIubG9jYWxpemUsYyl9KS5qb2luKCIiKX1mdW5jdGlvbiBfQ3QodCl7bGV0IGU9dC5tYXRjaChrQ3QpO3JldHVybiBlP2VbMV0ucmVwbGFjZShTQ3QsIiciKTp0fXZhciBNQ3QsekN0LGtDdCxTQ3QsQ0N0LFVjMSxtUz1iKCgpPT57R28oKTtPMigpO3VaKCk7dVMoKTtmUygpO29zKCk7QWUoKTtNQ3Q9L1t5WVFxTUx3SWREZWNpaEhLa21zXW98KFx3KVwxKnwnJ3wnKCcnfFteJ10pKygnfCQpfC4vZyx6Q3Q9L1ArcCt8UCt8cCt8Jyd8JygnJ3xbXiddKSsoJ3wkKXwuL2csa0N0PS9eJyhbXl0qPyknPyQvLFNDdD0vJycvZyxDQ3Q9L1thLXpBLVpdLztVYzE9amN9KTtmdW5jdGlvbiB1aCh0LGUsYSl7bGV0IGk9S3QoKSxyPWE/LmxvY2FsZT8/aS5sb2NhbGU/P0NhLHM9MjUyMCxuPVIyKHQsZSk7aWYoaXNOYU4obikpdGhyb3cgbmV3IFJhbmdlRXJyb3IoIkludmFsaWQgdGltZSB2YWx1ZSIpO2xldCBvPU9iamVjdC5hc3NpZ24oe30sYSx7YWRkU3VmZml4OmE/LmFkZFN1ZmZpeCxjb21wYXJpc29uOm59KSxbZCxjXT1KZShhPy5pbiwuLi5uPjA/W2UsdF06W3QsZV0pLGg9d3IoYyxkKSxsPShEMShjKS1EMShkKSkvMWUzLGY9TWF0aC5yb3VuZCgoaC1sKS82MCksZztpZihmPDIpcmV0dXJuIGE/LmluY2x1ZGVTZWNvbmRzP2g8NT9yLmZvcm1hdERpc3RhbmNlKCJsZXNzVGhhblhTZWNvbmRzIiw1LG8pOmg8MTA/ci5mb3JtYXREaXN0YW5jZSgibGVzc1RoYW5YU2Vjb25kcyIsMTAsbyk6aDwyMD9yLmZvcm1hdERpc3RhbmNlKCJsZXNzVGhhblhTZWNvbmRzIiwyMCxvKTpoPDQwP3IuZm9ybWF0RGlzdGFuY2UoImhhbGZBTWludXRlIiwwLG8pOmg8NjA/ci5mb3JtYXREaXN0YW5jZSgibGVzc1RoYW5YTWludXRlcyIsMSxvKTpyLmZvcm1hdERpc3RhbmNlKCJ4TWludXRlcyIsMSxvKTpmPT09MD9yLmZvcm1hdERpc3RhbmNlKCJsZXNzVGhhblhNaW51dGVzIiwxLG8pOnIuZm9ybWF0RGlzdGFuY2UoInhNaW51dGVzIixmLG8pO2lmKGY8NDUpcmV0dXJuIHIuZm9ybWF0RGlzdGFuY2UoInhNaW51dGVzIixmLG8pO2lmKGY8OTApcmV0dXJuIHIuZm9ybWF0RGlzdGFuY2UoImFib3V0WEhvdXJzIiwxLG8pO2lmKGY8TjQpe2xldCB5PU1hdGgucm91bmQoZi82MCk7cmV0dXJuIHIuZm9ybWF0RGlzdGFuY2UoImFib3V0WEhvdXJzIix5LG8pfWVsc2V7aWYoZjxzKXJldHVybiByLmZvcm1hdERpc3RhbmNlKCJ4RGF5cyIsMSxvKTtpZihmPGRuKXtsZXQgeT1NYXRoLnJvdW5kKGYvTjQpO3JldHVybiByLmZvcm1hdERpc3RhbmNlKCJ4RGF5cyIseSxvKX1lbHNlIGlmKGY8ZG4qMilyZXR1cm4gZz1NYXRoLnJvdW5kKGYvZG4pLHIuZm9ybWF0RGlzdGFuY2UoImFib3V0WE1vbnRocyIsZyxvKX1pZihnPWduKGMsZCksZzwxMil7bGV0IHk9TWF0aC5yb3VuZChmL2RuKTtyZXR1cm4gci5mb3JtYXREaXN0YW5jZSgieE1vbnRocyIseSxvKX1lbHNle2xldCB5PWclMTIsdj1NYXRoLnRydW5jKGcvMTIpO3JldHVybiB5PDM/ci5mb3JtYXREaXN0YW5jZSgiYWJvdXRYWWVhcnMiLHYsbyk6eTw5P3IuZm9ybWF0RGlzdGFuY2UoIm92ZXJYWWVhcnMiLHYsbyk6ci5mb3JtYXREaXN0YW5jZSgiYWxtb3N0WFllYXJzIix2KzEsbyl9fXZhciB0NjEsZ1M9YigoKT0+e0dvKCk7TzIoKTtzcygpO3IxKCk7cW8oKTt5dCgpO09jKCk7UmMoKTt0NjE9dWh9KTtmdW5jdGlvbiBmaCh0LGUsYSl7bGV0IGk9S3QoKSxyPWE/LmxvY2FsZT8/aS5sb2NhbGU/P0NhLHM9UjIodCxlKTtpZihpc05hTihzKSl0aHJvdyBuZXcgUmFuZ2VFcnJvcigiSW52YWxpZCB0aW1lIHZhbHVlIik7bGV0IG49T2JqZWN0LmFzc2lnbih7fSxhLHthZGRTdWZmaXg6YT8uYWRkU3VmZml4LGNvbXBhcmlzb246c30pLFtvLGRdPUplKGE/LmluLC4uLnM+MD9bZSx0XTpbdCxlXSksYz1CMihhPy5yb3VuZGluZ01ldGhvZD8/InJvdW5kIiksaD1kLmdldFRpbWUoKS1vLmdldFRpbWUoKSxsPWgvRjIsZj1EMShkKS1EMShvKSxnPShoLWYpL0YyLHk9YT8udW5pdCx2O2lmKHk/dj15Omw8MT92PSJzZWNvbmQiOmw8NjA/dj0ibWludXRlIjpsPE40P3Y9ImhvdXIiOmc8ZG4/dj0iZGF5IjpnPFJrP3Y9Im1vbnRoIjp2PSJ5ZWFyIix2PT09InNlY29uZCIpe2xldCBtPWMoaC8xZTMpO3JldHVybiByLmZvcm1hdERpc3RhbmNlKCJ4U2Vjb25kcyIsbSxuKX1lbHNlIGlmKHY9PT0ibWludXRlIil7bGV0IG09YyhsKTtyZXR1cm4gci5mb3JtYXREaXN0YW5jZSgieE1pbnV0ZXMiLG0sbil9ZWxzZSBpZih2PT09ImhvdXIiKXtsZXQgbT1jKGwvNjApO3JldHVybiByLmZvcm1hdERpc3RhbmNlKCJ4SG91cnMiLG0sbil9ZWxzZSBpZih2PT09ImRheSIpe2xldCBtPWMoZy9ONCk7cmV0dXJuIHIuZm9ybWF0RGlzdGFuY2UoInhEYXlzIixtLG4pfWVsc2UgaWYodj09PSJtb250aCIpe2xldCBtPWMoZy9kbik7cmV0dXJuIG09PT0xMiYmeSE9PSJtb250aCI/ci5mb3JtYXREaXN0YW5jZSgieFllYXJzIiwxLG4pOnIuZm9ybWF0RGlzdGFuY2UoInhNb250aHMiLG0sbil9ZWxzZXtsZXQgbT1jKGcvUmspO3JldHVybiByLmZvcm1hdERpc3RhbmNlKCJ4WWVhcnMiLG0sbil9fXZhciBkNjEsYlM9YigoKT0+e0dvKCk7TzIoKTtscygpO3NzKCk7cjEoKTtxbygpO3l0KCk7ZDYxPWZofSk7ZnVuY3Rpb24gZ1oodCxlKXtyZXR1cm4gdWgodCxDdCh0KSxlKX12YXIgZjYxLGJaPWIoKCk9PntlMigpO2dTKCk7ZjYxPWdafSk7ZnVuY3Rpb24gdloodCxlKXtyZXR1cm4gZmgodCxDdCh0KSxlKX12YXIgdjYxLHlaPWIoKCk9PntlMigpO2JTKCk7djYxPXZafSk7ZnVuY3Rpb24geFoodCxlKXtsZXQgYT1LdCgpLGk9ZT8ubG9jYWxlPz9hLmxvY2FsZT8/Q2Escj1lPy5mb3JtYXQ/P1RDdCxzPWU/Lnplcm8/PyExLG49ZT8uZGVsaW1pdGVyPz8iICI7cmV0dXJuIGkuZm9ybWF0RGlzdGFuY2U/ci5yZWR1Y2UoKGQsYyk9PntsZXQgaD1geCR7Yy5yZXBsYWNlKC8oXi4pLyxmPT5mLnRvVXBwZXJDYXNlKCkpfWAsbD10W2NdO3JldHVybiBsIT09dm9pZCAwJiYoc3x8dFtjXSk/ZC5jb25jYXQoaS5mb3JtYXREaXN0YW5jZShoLGwpKTpkfSxbXSkuam9pbihuKToiIn12YXIgVEN0LE02MSx3Wj1iKCgpPT57R28oKTtPMigpO1RDdD1bInllYXJzIiwibW9udGhzIiwid2Vla3MiLCJkYXlzIiwiaG91cnMiLCJtaW51dGVzIiwic2Vjb25kcyJdO002MT14Wn0pO2Z1bmN0aW9uIE1aKHQsZSl7bGV0IGE9bmUodCxlPy5pbik7aWYoaXNOYU4oK2EpKXRocm93IG5ldyBSYW5nZUVycm9yKCJJbnZhbGlkIHRpbWUgdmFsdWUiKTtsZXQgaT1lPy5mb3JtYXQ/PyJleHRlbmRlZCIscj1lPy5yZXByZXNlbnRhdGlvbj8/ImNvbXBsZXRlIixzPSIiLG49IiIsbz1pPT09ImV4dGVuZGVkIj8iLSI6IiIsZD1pPT09ImV4dGVuZGVkIj8iOiI6IiI7aWYociE9PSJ0aW1lIil7bGV0IGM9WWUoYS5nZXREYXRlKCksMiksaD1ZZShhLmdldE1vbnRoKCkrMSwyKTtzPWAke1llKGEuZ2V0RnVsbFllYXIoKSw0KX0ke299JHtofSR7b30ke2N9YH1pZihyIT09ImRhdGUiKXtsZXQgYz1hLmdldFRpbWV6b25lT2Zmc2V0KCk7aWYoYyE9PTApe2xldCB2PU1hdGguYWJzKGMpLG09WWUoTWF0aC50cnVuYyh2LzYwKSwyKSx4PVllKHYlNjAsMik7bj1gJHtjPDA/IisiOiItIn0ke219OiR7eH1gfWVsc2Ugbj0iWiI7bGV0IGg9WWUoYS5nZXRIb3VycygpLDIpLGw9WWUoYS5nZXRNaW51dGVzKCksMiksZj1ZZShhLmdldFNlY29uZHMoKSwyKSxnPXM9PT0iIj8iIjoiVCIseT1baCxsLGZdLmpvaW4oZCk7cz1gJHtzfSR7Z30ke3l9JHtufWB9cmV0dXJuIHN9dmFyIEM2MSx6Wj1iKCgpPT57Wm8oKTtBZSgpO0M2MT1NWn0pO2Z1bmN0aW9uIGtaKHQsZSl7bGV0IGE9bmUodCxlPy5pbik7aWYoIXoyKGEpKXRocm93IG5ldyBSYW5nZUVycm9yKCJJbnZhbGlkIHRpbWUgdmFsdWUiKTtsZXQgaT1lPy5mb3JtYXQ/PyJleHRlbmRlZCIscj1lPy5yZXByZXNlbnRhdGlvbj8/ImNvbXBsZXRlIixzPSIiLG49aT09PSJleHRlbmRlZCI/Ii0iOiIiLG89aT09PSJleHRlbmRlZCI/IjoiOiIiO2lmKHIhPT0idGltZSIpe2xldCBkPVllKGEuZ2V0RGF0ZSgpLDIpLGM9WWUoYS5nZXRNb250aCgpKzEsMik7cz1gJHtZZShhLmdldEZ1bGxZZWFyKCksNCl9JHtufSR7Y30ke259JHtkfWB9aWYociE9PSJkYXRlIil7bGV0IGQ9WWUoYS5nZXRIb3VycygpLDIpLGM9WWUoYS5nZXRNaW51dGVzKCksMiksaD1ZZShhLmdldFNlY29uZHMoKSwyKTtzPWAke3N9JHtzPT09IiI/IiI6IiAifSR7ZH0ke299JHtjfSR7b30ke2h9YH1yZXR1cm4gc312YXIgQTYxLFNaPWIoKCk9PntabygpO29zKCk7QWUoKTtBNjE9a1p9KTtmdW5jdGlvbiBDWih0KXtsZXR7eWVhcnM6ZT0wLG1vbnRoczphPTAsZGF5czppPTAsaG91cnM6cj0wLG1pbnV0ZXM6cz0wLHNlY29uZHM6bj0wfT10O3JldHVybmBQJHtlfVkke2F9TSR7aX1EVCR7cn1IJHtzfU0ke259U2B9dmFyIEU2MSxfWj1iKCgpPT57RTYxPUNafSk7ZnVuY3Rpb24gVFoodCxlKXtsZXQgYT1uZSh0LGU/LmluKTtpZighejIoYSkpdGhyb3cgbmV3IFJhbmdlRXJyb3IoIkludmFsaWQgdGltZSB2YWx1ZSIpO2xldCBpPWU/LmZyYWN0aW9uRGlnaXRzPz8wLHI9WWUoYS5nZXREYXRlKCksMikscz1ZZShhLmdldE1vbnRoKCkrMSwyKSxuPWEuZ2V0RnVsbFllYXIoKSxvPVllKGEuZ2V0SG91cnMoKSwyKSxkPVllKGEuZ2V0TWludXRlcygpLDIpLGM9WWUoYS5nZXRTZWNvbmRzKCksMiksaD0iIjtpZihpPjApe2xldCBnPWEuZ2V0TWlsbGlzZWNvbmRzKCkseT1NYXRoLnRydW5jKGcqTWF0aC5wb3coMTAsaS0zKSk7aD0iLiIrWWUoeSxpKX1sZXQgbD0iIixmPWEuZ2V0VGltZXpvbmVPZmZzZXQoKTtpZihmIT09MCl7bGV0IGc9TWF0aC5hYnMoZikseT1ZZShNYXRoLnRydW5jKGcvNjApLDIpLHY9WWUoZyU2MCwyKTtsPWAke2Y8MD8iKyI6Ii0ifSR7eX06JHt2fWB9ZWxzZSBsPSJaIjtyZXR1cm5gJHtufS0ke3N9LSR7cn1UJHtvfToke2R9OiR7Y30ke2h9JHtsfWB9dmFyIE82MSxMWj1iKCgpPT57Wm8oKTtvcygpO0FlKCk7TzYxPVRafSk7ZnVuY3Rpb24gJFoodCl7bGV0IGU9bmUodCk7aWYoIXoyKGUpKXRocm93IG5ldyBSYW5nZUVycm9yKCJJbnZhbGlkIHRpbWUgdmFsdWUiKTtsZXQgYT1MQ3RbZS5nZXRVVENEYXkoKV0saT1ZZShlLmdldFVUQ0RhdGUoKSwyKSxyPSRDdFtlLmdldFVUQ01vbnRoKCldLHM9ZS5nZXRVVENGdWxsWWVhcigpLG49WWUoZS5nZXRVVENIb3VycygpLDIpLG89WWUoZS5nZXRVVENNaW51dGVzKCksMiksZD1ZZShlLmdldFVUQ1NlY29uZHMoKSwyKTtyZXR1cm5gJHthfSwgJHtpfSAke3J9ICR7c30gJHtufToke299OiR7ZH0gR01UYH12YXIgTEN0LCRDdCxWNjEsQVo9YigoKT0+e1pvKCk7b3MoKTtBZSgpO0xDdD1bIlN1biIsIk1vbiIsIlR1ZSIsIldlZCIsIlRodSIsIkZyaSIsIlNhdCJdLCRDdD1bIkphbiIsIkZlYiIsIk1hciIsIkFwciIsIk1heSIsIkp1biIsIkp1bCIsIkF1ZyIsIlNlcCIsIk9jdCIsIk5vdiIsIkRlYyJdO1Y2MT0kWn0pO2Z1bmN0aW9uIERaKHQsZSxhKXtsZXRbaSxyXT1KZShhPy5pbix0LGUpLHM9S3QoKSxuPWE/LmxvY2FsZT8/cy5sb2NhbGU/P0NhLG89YT8ud2Vla1N0YXJ0c09uPz9hPy5sb2NhbGU/Lm9wdGlvbnM/LndlZWtTdGFydHNPbj8/cy53ZWVrU3RhcnRzT24/P3MubG9jYWxlPy5vcHRpb25zPy53ZWVrU3RhcnRzT24/PzAsZD1oMihpLHIpO2lmKGlzTmFOKGQpKXRocm93IG5ldyBSYW5nZUVycm9yKCJJbnZhbGlkIHRpbWUgdmFsdWUiKTtsZXQgYztkPC02P2M9Im90aGVyIjpkPC0xP2M9Imxhc3RXZWVrIjpkPDA/Yz0ieWVzdGVyZGF5IjpkPDE/Yz0idG9kYXkiOmQ8Mj9jPSJ0b21vcnJvdyI6ZDw3P2M9Im5leHRXZWVrIjpjPSJvdGhlciI7bGV0IGg9bi5mb3JtYXRSZWxhdGl2ZShjLGkscix7bG9jYWxlOm4sd2Vla1N0YXJ0c09uOm99KTtyZXR1cm4gamMoaSxoLHtsb2NhbGU6bix3ZWVrU3RhcnRzT246b30pfXZhciBYNjEsRVo9YigoKT0+e0dvKCk7TzIoKTtyMSgpO25zKCk7bVMoKTtYNjE9RFp9KTtmdW5jdGlvbiBQWih0LGUpe3JldHVybiBuZSh0KjFlMyxlPy5pbil9dmFyIEo2MSxJWj1iKCgpPT57QWUoKTtKNjE9UFp9KTtmdW5jdGlvbiBtaCh0LGUpe3JldHVybiBuZSh0LGU/LmluKS5nZXREYXRlKCl9dmFyIGE1MSx2Uz1iKCgpPT57QWUoKTthNTE9bWh9KTtmdW5jdGlvbiB4bih0LGUpe3JldHVybiBuZSh0LGU/LmluKS5nZXREYXkoKX12YXIgczUxLFVjPWIoKCk9PntBZSgpO3M1MT14bn0pO2Z1bmN0aW9uIGdoKHQsZSl7bGV0IGE9bmUodCxlPy5pbiksaT1hLmdldEZ1bGxZZWFyKCkscj1hLmdldE1vbnRoKCkscz1MZShhLDApO3JldHVybiBzLnNldEZ1bGxZZWFyKGkscisxLDApLHMuc2V0SG91cnMoMCwwLDAsMCkscy5nZXREYXRlKCl9dmFyIGM1MSx5Uz1iKCgpPT57YXQoKTtBZSgpO2M1MT1naH0pO2Z1bmN0aW9uIGJoKHQsZSl7bGV0IGk9bmUodCxlPy5pbikuZ2V0RnVsbFllYXIoKTtyZXR1cm4gaSU0MDA9PT0wfHxpJTQ9PT0wJiZpJTEwMCE9PTB9dmFyIHA1MSx4Uz1iKCgpPT57QWUoKTtwNTE9Ymh9KTtmdW5jdGlvbiBOWih0LGUpe2xldCBhPW5lKHQsZT8uaW4pO3JldHVybiBOdW1iZXIuaXNOYU4oK2EpP05hTjpiaChhKT8zNjY6MzY1fXZhciBnNTEsRlo9YigoKT0+e3hTKCk7QWUoKTtnNTE9Tlp9KTtmdW5jdGlvbiBPWih0LGUpe2xldCBpPW5lKHQsZT8uaW4pLmdldEZ1bGxZZWFyKCk7cmV0dXJuIE1hdGguZmxvb3IoaS8xMCkqMTB9dmFyIHk1MSxSWj1iKCgpPT57QWUoKTt5NTE9T1p9KTtmdW5jdGlvbiB2aCgpe3JldHVybiBPYmplY3QuYXNzaWduKHt9LEt0KCkpfXZhciBNNTEsd1M9YigoKT0+e08yKCk7TTUxPXZofSk7ZnVuY3Rpb24gQloodCxlKXtyZXR1cm4gbmUodCxlPy5pbikuZ2V0SG91cnMoKX12YXIgUzUxLEhaPWIoKCk9PntBZSgpO1M1MT1CWn0pO2Z1bmN0aW9uIHloKHQsZSl7bGV0IGE9bmUodCxlPy5pbikuZ2V0RGF5KCk7cmV0dXJuIGE9PT0wPzc6YX12YXIgVDUxLE1TPWIoKCk9PntBZSgpO1Q1MT15aH0pO2Z1bmN0aW9uIHFaKHQsZSl7bGV0IGE9SWEodCxlKSxyPStJYShmbihhLDYwKSktK2E7cmV0dXJuIE1hdGgucm91bmQoci9mcil9dmFyIEU1MSxWWj1iKCgpPT57TmMoKTt5dCgpO1I0KCk7RTUxPXFafSk7ZnVuY3Rpb24galoodCl7cmV0dXJuIG5lKHQpLmdldE1pbGxpc2Vjb25kcygpfXZhciBONTEsVVo9YigoKT0+e0FlKCk7TjUxPWpafSk7ZnVuY3Rpb24gV1oodCxlKXtyZXR1cm4gbmUodCxlPy5pbikuZ2V0TWludXRlcygpfXZhciBSNTEsR1o9YigoKT0+e0FlKCk7UjUxPVdafSk7ZnVuY3Rpb24gWVoodCxlKXtyZXR1cm4gbmUodCxlPy5pbikuZ2V0TW9udGgoKX12YXIgcTUxLFpaPWIoKCk9PntBZSgpO3E1MT1ZWn0pO2Z1bmN0aW9uIFhaKHQsZSl7bGV0W2EsaV09WytuZSh0LnN0YXJ0KSwrbmUodC5lbmQpXS5zb3J0KChsLGYpPT5sLWYpLFtyLHNdPVsrbmUoZS5zdGFydCksK25lKGUuZW5kKV0uc29ydCgobCxmKT0+bC1mKTtpZighKGE8cyYmcjxpKSlyZXR1cm4gMDtsZXQgbz1yPGE/YTpyLGQ9by1EMShvKSxjPXM+aT9pOnMsaD1jLUQxKGMpO3JldHVybiBNYXRoLmNlaWwoKGgtZCkvTTcpfXZhciBHNTEsS1o9YigoKT0+e3NzKCk7eXQoKTtBZSgpO0c1MT1YWn0pO2Z1bmN0aW9uIFFaKHQpe3JldHVybiBuZSh0KS5nZXRTZWNvbmRzKCl9dmFyIFg1MSxKWj1iKCgpPT57QWUoKTtYNTE9UVp9KTtmdW5jdGlvbiBlWCh0KXtyZXR1cm4rbmUodCl9dmFyIEo1MSx0WD1iKCgpPT57QWUoKTtKNTE9ZVh9KTtmdW5jdGlvbiBhWCh0KXtyZXR1cm4gTWF0aC50cnVuYygrbmUodCkvMWUzKX12YXIgYTgxLGlYPWIoKCk9PntBZSgpO2E4MT1hWH0pO2Z1bmN0aW9uIHJYKHQsZSl7bGV0IGE9S3QoKSxpPWU/LndlZWtTdGFydHNPbj8/ZT8ubG9jYWxlPy5vcHRpb25zPy53ZWVrU3RhcnRzT24/P2Eud2Vla1N0YXJ0c09uPz9hLmxvY2FsZT8ub3B0aW9ucz8ud2Vla1N0YXJ0c09uPz8wLHI9bWgobmUodCxlPy5pbikpO2lmKGlzTmFOKHIpKXJldHVybiBOYU47bGV0IHM9eG4oYm4odCxlKSksbj1pLXM7bjw9MCYmKG4rPTcpO2xldCBvPXItbjtyZXR1cm4gTWF0aC5jZWlsKG8vNykrMX12YXIgYzgxLHNYPWIoKCk9PntPMigpO3ZTKCk7VWMoKTtCYygpO0FlKCk7YzgxPXJYfSk7ZnVuY3Rpb24geGgodCxlKXtsZXQgYT1uZSh0LGU/LmluKSxpPWEuZ2V0TW9udGgoKTtyZXR1cm4gYS5zZXRGdWxsWWVhcihhLmdldEZ1bGxZZWFyKCksaSsxLDApLGEuc2V0SG91cnMoMCwwLDAsMCksbmUoYSxlPy5pbil9dmFyIHA4MSx6Uz1iKCgpPT57QWUoKTtwODE9eGh9KTtmdW5jdGlvbiBuWCh0LGUpe2xldCBhPW5lKHQsZT8uaW4pO3JldHVybiBqbyh4aChhLGUpLGJuKGEsZSksZSkrMX12YXIgdjgxLG9YPWIoKCk9PntWNygpO3pTKCk7QmMoKTtBZSgpO3Y4MT1uWH0pO2Z1bmN0aW9uIGxYKHQsZSl7cmV0dXJuIG5lKHQsZT8uaW4pLmdldEZ1bGxZZWFyKCl9dmFyIHc4MSxjWD1iKCgpPT57QWUoKTt3ODE9bFh9KTtmdW5jdGlvbiBkWCh0KXtyZXR1cm4gTWF0aC50cnVuYyh0KlBhKX12YXIgazgxLGhYPWIoKCk9Pnt5dCgpO2s4MT1kWH0pO2Z1bmN0aW9uIHBYKHQpe3JldHVybiBNYXRoLnRydW5jKHQqejcpfXZhciBfODEsdVg9YigoKT0+e3l0KCk7XzgxPXBYfSk7ZnVuY3Rpb24gZlgodCl7cmV0dXJuIE1hdGgudHJ1bmModCpIbyl9dmFyICQ4MSxtWD1iKCgpPT57eXQoKTskODE9Zlh9KTtmdW5jdGlvbiBnWCh0LGUsYSl7bGV0W2kscl09SmUoYT8uaW4sdCxlKTtpZihpc05hTigraSkpdGhyb3cgbmV3IFR5cGVFcnJvcigiU3RhcnQgZGF0ZSBpcyBpbnZhbGlkIik7aWYoaXNOYU4oK3IpKXRocm93IG5ldyBUeXBlRXJyb3IoIkVuZCBkYXRlIGlzIGludmFsaWQiKTtpZihhPy5hc3NlcnRQb3NpdGl2ZSYmK2k+K3IpdGhyb3cgbmV3IFR5cGVFcnJvcigiRW5kIGRhdGUgbXVzdCBiZSBhZnRlciBzdGFydCBkYXRlIik7cmV0dXJue3N0YXJ0OmksZW5kOnJ9fXZhciBFODEsYlg9YigoKT0+e3IxKCk7RTgxPWdYfSk7ZnVuY3Rpb24gdlgodCxlKXtsZXR7c3RhcnQ6YSxlbmQ6aX09cDIoZT8uaW4sdCkscj17fSxzPUo3KGksYSk7cyYmKHIueWVhcnM9cyk7bGV0IG49aG4oYSx7eWVhcnM6ci55ZWFyc30pLG89Z24oaSxuKTtvJiYoci5tb250aHM9byk7bGV0IGQ9aG4obix7bW9udGhzOnIubW9udGhzfSksYz1qNChpLGQpO2MmJihyLmRheXM9Yyk7bGV0IGg9aG4oZCx7ZGF5czpyLmRheXN9KSxsPVVvKGksaCk7bCYmKHIuaG91cnM9bCk7bGV0IGY9aG4oaCx7aG91cnM6ci5ob3Vyc30pLGc9V28oaSxmKTtnJiYoci5taW51dGVzPWcpO2xldCB5PWhuKGYse21pbnV0ZXM6ci5taW51dGVzfSksdj13cihpLHkpO3JldHVybiB2JiYoci5zZWNvbmRzPXYpLHJ9dmFyIFY4MSx5WD1iKCgpPT57TXIoKTtWaygpO1U3KCk7VzcoKTtaNygpO09jKCk7UmMoKTtvUygpO1Y4MT12WH0pO2Z1bmN0aW9uIHhYKHQsZSxhKXtsZXQgaTtyZXR1cm4gQUN0KGUpP2k9ZTphPWUsbmV3IEludGwuRGF0ZVRpbWVGb3JtYXQoYT8ubG9jYWxlLGkpLmZvcm1hdChuZSh0KSl9ZnVuY3Rpb24gQUN0KHQpe3JldHVybiB0IT09dm9pZCAwJiYhKCJsb2NhbGUiaW4gdCl9dmFyIFc4MSx3WD1iKCgpPT57QWUoKTtXODE9eFh9KTtmdW5jdGlvbiBNWCh0LGUsYSl7bGV0IGk9MCxyLFtzLG5dPUplKGE/LmluLHQsZSk7aWYoYT8udW5pdClyPWE/LnVuaXQscj09PSJzZWNvbmQiP2k9d3IocyxuKTpyPT09Im1pbnV0ZSI/aT1XbyhzLG4pOnI9PT0iaG91ciI/aT1VbyhzLG4pOnI9PT0iZGF5Ij9pPWgyKHMsbik6cj09PSJ3ZWVrIj9pPWpvKHMsbik6cj09PSJtb250aCI/aT1WbyhzLG4pOnI9PT0icXVhcnRlciI/aT1WNChzLG4pOnI9PT0ieWVhciImJihpPW1uKHMsbikpO2Vsc2V7bGV0IGQ9d3IocyxuKTtNYXRoLmFicyhkKTxGND8oaT13cihzLG4pLHI9InNlY29uZCIpOk1hdGguYWJzKGQpPEhvPyhpPVdvKHMsbikscj0ibWludXRlIik6TWF0aC5hYnMoZCk8eDcmJk1hdGguYWJzKGgyKHMsbikpPDE/KGk9VW8ocyxuKSxyPSJob3VyIik6TWF0aC5hYnMoZCk8cUcmJihpPWgyKHMsbikpJiZNYXRoLmFicyhpKTw3P3I9ImRheSI6TWF0aC5hYnMoZCk8SGs/KGk9am8ocyxuKSxyPSJ3ZWVrIik6TWF0aC5hYnMoZCk8Vkc/KGk9Vm8ocyxuKSxyPSJtb250aCIpOk1hdGguYWJzKGQpPEJrP1Y0KHMsbik8ND8oaT1WNChzLG4pLHI9InF1YXJ0ZXIiKTooaT1tbihzLG4pLHI9InllYXIiKTooaT1tbihzLG4pLHI9InllYXIiKX1yZXR1cm4gbmV3IEludGwuUmVsYXRpdmVUaW1lRm9ybWF0KGE/LmxvY2FsZSx7bnVtZXJpYzoiYXV0byIsLi4uYX0pLmZvcm1hdChpLHIpfXZhciByZDEselg9YigoKT0+e3IxKCk7eXQoKTtucygpO3E3KCk7clMoKTtWNygpO2o3KCk7VzcoKTtaNygpO1JjKCk7cmQxPU1YfSk7ZnVuY3Rpb24ga1godCxlKXtyZXR1cm4rbmUodCk+K25lKGUpfXZhciBvZDEsU1g9YigoKT0+e0FlKCk7b2QxPWtYfSk7ZnVuY3Rpb24gQ1godCxlKXtyZXR1cm4rbmUodCk8K25lKGUpfXZhciBkZDEsX1g9YigoKT0+e0FlKCk7ZGQxPUNYfSk7ZnVuY3Rpb24gVFgodCxlKXtyZXR1cm4rbmUodCk9PStuZShlKX12YXIgdWQxLExYPWIoKCk9PntBZSgpO3VkMT1UWH0pO2Z1bmN0aW9uICRYKHQsZSxhKXtsZXQgaT1uZXcgRGF0ZSh0LGUsYSk7cmV0dXJuIGkuZ2V0RnVsbFllYXIoKT09PXQmJmkuZ2V0TW9udGgoKT09PWUmJmkuZ2V0RGF0ZSgpPT09YX12YXIgbWQxLEFYPWIoKCk9PnttZDE9JFh9KTtmdW5jdGlvbiBEWCh0LGUpe3JldHVybiBuZSh0LGU/LmluKS5nZXREYXRlKCk9PT0xfXZhciB2ZDEsRVg9YigoKT0+e0FlKCk7dmQxPURYfSk7ZnVuY3Rpb24gUFgodCxlKXtyZXR1cm4gbmUodCxlPy5pbikuZ2V0RGF5KCk9PT01fXZhciB3ZDEsSVg9YigoKT0+e0FlKCk7d2QxPVBYfSk7ZnVuY3Rpb24gTlgodCl7cmV0dXJuK25lKHQpPkRhdGUubm93KCl9dmFyIGtkMSxGWD1iKCgpPT57QWUoKTtrZDE9Tlh9KTtmdW5jdGlvbiB3aCh0LGUpe2xldCBhPURDdChlKT9uZXcgZSgwKTpMZShlLDApO3JldHVybiBhLnNldEZ1bGxZZWFyKHQuZ2V0RnVsbFllYXIoKSx0LmdldE1vbnRoKCksdC5nZXREYXRlKCkpLGEuc2V0SG91cnModC5nZXRIb3VycygpLHQuZ2V0TWludXRlcygpLHQuZ2V0U2Vjb25kcygpLHQuZ2V0TWlsbGlzZWNvbmRzKCkpLGF9ZnVuY3Rpb24gREN0KHQpe3JldHVybiB0eXBlb2YgdD09ImZ1bmN0aW9uIiYmdC5wcm90b3R5cGU/LmNvbnN0cnVjdG9yPT09dH12YXIgX2QxLGtTPWIoKCk9PnthdCgpO19kMT13aH0pO3ZhciBFQ3QsTWgsemgsa2gsU1M9YigoKT0+e2F0KCk7a1MoKTtFQ3Q9MTAsTWg9Y2xhc3N7c3ViUHJpb3JpdHk9MDt2YWxpZGF0ZShlLGEpe3JldHVybiEwfX0semg9Y2xhc3MgZXh0ZW5kcyBNaHtjb25zdHJ1Y3RvcihlLGEsaSxyLHMpe3N1cGVyKCksdGhpcy52YWx1ZT1lLHRoaXMudmFsaWRhdGVWYWx1ZT1hLHRoaXMuc2V0VmFsdWU9aSx0aGlzLnByaW9yaXR5PXIscyYmKHRoaXMuc3ViUHJpb3JpdHk9cyl9dmFsaWRhdGUoZSxhKXtyZXR1cm4gdGhpcy52YWxpZGF0ZVZhbHVlKGUsdGhpcy52YWx1ZSxhKX1zZXQoZSxhLGkpe3JldHVybiB0aGlzLnNldFZhbHVlKGUsYSx0aGlzLnZhbHVlLGkpfX0sa2g9Y2xhc3MgZXh0ZW5kcyBNaHtwcmlvcml0eT1FQ3Q7c3ViUHJpb3JpdHk9LTE7Y29uc3RydWN0b3IoZSxhKXtzdXBlcigpLHRoaXMuY29udGV4dD1lfHwoaT0+TGUoYSxpKSl9c2V0KGUsYSl7cmV0dXJuIGEudGltZXN0YW1wSXNTZXQ/ZTpMZShlLHdoKGUsdGhpcy5jb250ZXh0KSl9fX0pO3ZhciBVZSxqdD1iKCgpPT57U1MoKTtVZT1jbGFzc3tydW4oZSxhLGkscil7bGV0IHM9dGhpcy5wYXJzZShlLGEsaSxyKTtyZXR1cm4gcz97c2V0dGVyOm5ldyB6aChzLnZhbHVlLHRoaXMudmFsaWRhdGUsdGhpcy5zZXQsdGhpcy5wcmlvcml0eSx0aGlzLnN1YlByaW9yaXR5KSxyZXN0OnMucmVzdH06bnVsbH12YWxpZGF0ZShlLGEsaSl7cmV0dXJuITB9fX0pO3ZhciBTaCxPWD1iKCgpPT57anQoKTtTaD1jbGFzcyBleHRlbmRzIFVle3ByaW9yaXR5PTE0MDtwYXJzZShlLGEsaSl7c3dpdGNoKGEpe2Nhc2UiRyI6Y2FzZSJHRyI6Y2FzZSJHR0ciOnJldHVybiBpLmVyYShlLHt3aWR0aDoiYWJicmV2aWF0ZWQifSl8fGkuZXJhKGUse3dpZHRoOiJuYXJyb3cifSk7Y2FzZSJHR0dHRyI6cmV0dXJuIGkuZXJhKGUse3dpZHRoOiJuYXJyb3cifSk7ZGVmYXVsdDpyZXR1cm4gaS5lcmEoZSx7d2lkdGg6IndpZGUifSl8fGkuZXJhKGUse3dpZHRoOiJhYmJyZXZpYXRlZCJ9KXx8aS5lcmEoZSx7d2lkdGg6Im5hcnJvdyJ9KX19c2V0KGUsYSxpKXtyZXR1cm4gYS5lcmE9aSxlLnNldEZ1bGxZZWFyKGksMCwxKSxlLnNldEhvdXJzKDAsMCwwLDApLGV9aW5jb21wYXRpYmxlVG9rZW5zPVsiUiIsInUiLCJ0IiwiVCJdfX0pO3ZhciBGdCxyaSxIMj1iKCgpPT57RnQ9e21vbnRoOi9eKDFbMC0yXXwwP1xkKS8sZGF0ZTovXigzWzAtMV18WzAtMl0/XGQpLyxkYXlPZlllYXI6L14oMzZbMC02XXwzWzAtNV1cZHxbMC0yXT9cZD9cZCkvLHdlZWs6L14oNVswLTNdfFswLTRdP1xkKS8saG91cjIzaDovXigyWzAtM118WzAtMV0/XGQpLyxob3VyMjRoOi9eKDJbMC00XXxbMC0xXT9cZCkvLGhvdXIxMWg6L14oMVswLTFdfDA/XGQpLyxob3VyMTJoOi9eKDFbMC0yXXwwP1xkKS8sbWludXRlOi9eWzAtNV0/XGQvLHNlY29uZDovXlswLTVdP1xkLyxzaW5nbGVEaWdpdDovXlxkLyx0d29EaWdpdHM6L15cZHsxLDJ9Lyx0aHJlZURpZ2l0czovXlxkezEsM30vLGZvdXJEaWdpdHM6L15cZHsxLDR9LyxhbnlEaWdpdHNTaWduZWQ6L14tP1xkKy8sc2luZ2xlRGlnaXRTaWduZWQ6L14tP1xkLyx0d29EaWdpdHNTaWduZWQ6L14tP1xkezEsMn0vLHRocmVlRGlnaXRzU2lnbmVkOi9eLT9cZHsxLDN9Lyxmb3VyRGlnaXRzU2lnbmVkOi9eLT9cZHsxLDR9L30scmk9e2Jhc2ljT3B0aW9uYWxNaW51dGVzOi9eKFsrLV0pKFxkezJ9KShcZHsyfSk/fFovLGJhc2ljOi9eKFsrLV0pKFxkezJ9KShcZHsyfSl8Wi8sYmFzaWNPcHRpb25hbFNlY29uZHM6L14oWystXSkoXGR7Mn0pKFxkezJ9KSgoXGR7Mn0pKT98Wi8sZXh0ZW5kZWQ6L14oWystXSkoXGR7Mn0pOihcZHsyfSl8Wi8sZXh0ZW5kZWRPcHRpb25hbFNlY29uZHM6L14oWystXSkoXGR7Mn0pOihcZHsyfSkoOihcZHsyfSkpP3xaL319KTtmdW5jdGlvbiBzMSh0LGUpe3JldHVybiB0JiZ7dmFsdWU6ZSh0LnZhbHVlKSxyZXN0OnQucmVzdH19ZnVuY3Rpb24gUHQodCxlKXtsZXQgYT1lLm1hdGNoKHQpO3JldHVybiBhP3t2YWx1ZTpwYXJzZUludChhWzBdLDEwKSxyZXN0OmUuc2xpY2UoYVswXS5sZW5ndGgpfTpudWxsfWZ1bmN0aW9uIHNpKHQsZSl7bGV0IGE9ZS5tYXRjaCh0KTtpZighYSlyZXR1cm4gbnVsbDtpZihhWzBdPT09IloiKXJldHVybnt2YWx1ZTowLHJlc3Q6ZS5zbGljZSgxKX07bGV0IGk9YVsxXT09PSIrIj8xOi0xLHI9YVsyXT9wYXJzZUludChhWzJdLDEwKTowLHM9YVszXT9wYXJzZUludChhWzNdLDEwKTowLG49YVs1XT9wYXJzZUludChhWzVdLDEwKTowO3JldHVybnt2YWx1ZTppKihyKlBhK3MqRjIrbipJNCkscmVzdDplLnNsaWNlKGFbMF0ubGVuZ3RoKX19ZnVuY3Rpb24gQ2godCl7cmV0dXJuIFB0KEZ0LmFueURpZ2l0c1NpZ25lZCx0KX1mdW5jdGlvbiBndCh0LGUpe3N3aXRjaCh0KXtjYXNlIDE6cmV0dXJuIFB0KEZ0LnNpbmdsZURpZ2l0LGUpO2Nhc2UgMjpyZXR1cm4gUHQoRnQudHdvRGlnaXRzLGUpO2Nhc2UgMzpyZXR1cm4gUHQoRnQudGhyZWVEaWdpdHMsZSk7Y2FzZSA0OnJldHVybiBQdChGdC5mb3VyRGlnaXRzLGUpO2RlZmF1bHQ6cmV0dXJuIFB0KG5ldyBSZWdFeHAoIl5cXGR7MSwiK3QrIn0iKSxlKX19ZnVuY3Rpb24gdDModCxlKXtzd2l0Y2godCl7Y2FzZSAxOnJldHVybiBQdChGdC5zaW5nbGVEaWdpdFNpZ25lZCxlKTtjYXNlIDI6cmV0dXJuIFB0KEZ0LnR3b0RpZ2l0c1NpZ25lZCxlKTtjYXNlIDM6cmV0dXJuIFB0KEZ0LnRocmVlRGlnaXRzU2lnbmVkLGUpO2Nhc2UgNDpyZXR1cm4gUHQoRnQuZm91ckRpZ2l0c1NpZ25lZCxlKTtkZWZhdWx0OnJldHVybiBQdChuZXcgUmVnRXhwKCJeLT9cXGR7MSwiK3QrIn0iKSxlKX19ZnVuY3Rpb24gYTModCl7c3dpdGNoKHQpe2Nhc2UibW9ybmluZyI6cmV0dXJuIDQ7Y2FzZSJldmVuaW5nIjpyZXR1cm4gMTc7Y2FzZSJwbSI6Y2FzZSJub29uIjpjYXNlImFmdGVybm9vbiI6cmV0dXJuIDEyO2RlZmF1bHQ6cmV0dXJuIDB9fWZ1bmN0aW9uIF9oKHQsZSl7bGV0IGE9ZT4wLGk9YT9lOjEtZSxyO2lmKGk8PTUwKXI9dHx8MTAwO2Vsc2V7bGV0IHM9aSs1MCxuPU1hdGgudHJ1bmMocy8xMDApKjEwMCxvPXQ+PXMlMTAwO3I9dCtuLShvPzEwMDowKX1yZXR1cm4gYT9yOjEtcn1mdW5jdGlvbiBUaCh0KXtyZXR1cm4gdCU0MDA9PT0wfHx0JTQ9PT0wJiZ0JTEwMCE9PTB9dmFyIFF0PWIoKCk9Pnt5dCgpO0gyKCl9KTt2YXIgTGgsUlg9YigoKT0+e2p0KCk7UXQoKTtMaD1jbGFzcyBleHRlbmRzIFVle3ByaW9yaXR5PTEzMDtpbmNvbXBhdGlibGVUb2tlbnM9WyJZIiwiUiIsInUiLCJ3IiwiSSIsImkiLCJlIiwiYyIsInQiLCJUIl07cGFyc2UoZSxhLGkpe2xldCByPXM9Pih7eWVhcjpzLGlzVHdvRGlnaXRZZWFyOmE9PT0ieXkifSk7c3dpdGNoKGEpe2Nhc2UieSI6cmV0dXJuIHMxKGd0KDQsZSkscik7Y2FzZSJ5byI6cmV0dXJuIHMxKGkub3JkaW5hbE51bWJlcihlLHt1bml0OiJ5ZWFyIn0pLHIpO2RlZmF1bHQ6cmV0dXJuIHMxKGd0KGEubGVuZ3RoLGUpLHIpfX12YWxpZGF0ZShlLGEpe3JldHVybiBhLmlzVHdvRGlnaXRZZWFyfHxhLnllYXI+MH1zZXQoZSxhLGkpe2xldCByPWUuZ2V0RnVsbFllYXIoKTtpZihpLmlzVHdvRGlnaXRZZWFyKXtsZXQgbj1faChpLnllYXIscik7cmV0dXJuIGUuc2V0RnVsbFllYXIobiwwLDEpLGUuc2V0SG91cnMoMCwwLDAsMCksZX1sZXQgcz0hKCJlcmEiaW4gYSl8fGEuZXJhPT09MT9pLnllYXI6MS1pLnllYXI7cmV0dXJuIGUuc2V0RnVsbFllYXIocywwLDEpLGUuc2V0SG91cnMoMCwwLDAsMCksZX19fSk7dmFyICRoLEJYPWIoKCk9PntIYygpO0VpKCk7anQoKTtRdCgpOyRoPWNsYXNzIGV4dGVuZHMgVWV7cHJpb3JpdHk9MTMwO3BhcnNlKGUsYSxpKXtsZXQgcj1zPT4oe3llYXI6cyxpc1R3b0RpZ2l0WWVhcjphPT09IllZIn0pO3N3aXRjaChhKXtjYXNlIlkiOnJldHVybiBzMShndCg0LGUpLHIpO2Nhc2UiWW8iOnJldHVybiBzMShpLm9yZGluYWxOdW1iZXIoZSx7dW5pdDoieWVhciJ9KSxyKTtkZWZhdWx0OnJldHVybiBzMShndChhLmxlbmd0aCxlKSxyKX19dmFsaWRhdGUoZSxhKXtyZXR1cm4gYS5pc1R3b0RpZ2l0WWVhcnx8YS55ZWFyPjB9c2V0KGUsYSxpLHIpe2xldCBzPXZuKGUscik7aWYoaS5pc1R3b0RpZ2l0WWVhcil7bGV0IG89X2goaS55ZWFyLHMpO3JldHVybiBlLnNldEZ1bGxZZWFyKG8sMCxyLmZpcnN0V2Vla0NvbnRhaW5zRGF0ZSksZS5zZXRIb3VycygwLDAsMCwwKSxkMShlLHIpfWxldCBuPSEoImVyYSJpbiBhKXx8YS5lcmE9PT0xP2kueWVhcjoxLWkueWVhcjtyZXR1cm4gZS5zZXRGdWxsWWVhcihuLDAsci5maXJzdFdlZWtDb250YWluc0RhdGUpLGUuc2V0SG91cnMoMCwwLDAsMCksZDEoZSxyKX1pbmNvbXBhdGlibGVUb2tlbnM9WyJ5IiwiUiIsInUiLCJRIiwicSIsIk0iLCJMIiwiSSIsImQiLCJEIiwiaSIsInQiLCJUIl19fSk7dmFyIEFoLEhYPWIoKCk9Pnt2cigpO2F0KCk7anQoKTtRdCgpO0FoPWNsYXNzIGV4dGVuZHMgVWV7cHJpb3JpdHk9MTMwO3BhcnNlKGUsYSl7cmV0dXJuIGE9PT0iUiI/dDMoNCxlKTp0MyhhLmxlbmd0aCxlKX1zZXQoZSxhLGkpe2xldCByPUxlKGUsMCk7cmV0dXJuIHIuc2V0RnVsbFllYXIoaSwwLDQpLHIuc2V0SG91cnMoMCwwLDAsMCksRzEocil9aW5jb21wYXRpYmxlVG9rZW5zPVsiRyIsInkiLCJZIiwidSIsIlEiLCJxIiwiTSIsIkwiLCJ3IiwiZCIsIkQiLCJlIiwiYyIsInQiLCJUIl19fSk7dmFyIERoLHFYPWIoKCk9PntqdCgpO1F0KCk7RGg9Y2xhc3MgZXh0ZW5kcyBVZXtwcmlvcml0eT0xMzA7cGFyc2UoZSxhKXtyZXR1cm4gYT09PSJ1Ij90Myg0LGUpOnQzKGEubGVuZ3RoLGUpfXNldChlLGEsaSl7cmV0dXJuIGUuc2V0RnVsbFllYXIoaSwwLDEpLGUuc2V0SG91cnMoMCwwLDAsMCksZX1pbmNvbXBhdGlibGVUb2tlbnM9WyJHIiwieSIsIlkiLCJSIiwidyIsIkkiLCJpIiwiZSIsImMiLCJ0IiwiVCJdfX0pO3ZhciBFaCxWWD1iKCgpPT57anQoKTtRdCgpO0VoPWNsYXNzIGV4dGVuZHMgVWV7cHJpb3JpdHk9MTIwO3BhcnNlKGUsYSxpKXtzd2l0Y2goYSl7Y2FzZSJRIjpjYXNlIlFRIjpyZXR1cm4gZ3QoYS5sZW5ndGgsZSk7Y2FzZSJRbyI6cmV0dXJuIGkub3JkaW5hbE51bWJlcihlLHt1bml0OiJxdWFydGVyIn0pO2Nhc2UiUVFRIjpyZXR1cm4gaS5xdWFydGVyKGUse3dpZHRoOiJhYmJyZXZpYXRlZCIsY29udGV4dDoiZm9ybWF0dGluZyJ9KXx8aS5xdWFydGVyKGUse3dpZHRoOiJuYXJyb3ciLGNvbnRleHQ6ImZvcm1hdHRpbmcifSk7Y2FzZSJRUVFRUSI6cmV0dXJuIGkucXVhcnRlcihlLHt3aWR0aDoibmFycm93Iixjb250ZXh0OiJmb3JtYXR0aW5nIn0pO2RlZmF1bHQ6cmV0dXJuIGkucXVhcnRlcihlLHt3aWR0aDoid2lkZSIsY29udGV4dDoiZm9ybWF0dGluZyJ9KXx8aS5xdWFydGVyKGUse3dpZHRoOiJhYmJyZXZpYXRlZCIsY29udGV4dDoiZm9ybWF0dGluZyJ9KXx8aS5xdWFydGVyKGUse3dpZHRoOiJuYXJyb3ciLGNvbnRleHQ6ImZvcm1hdHRpbmcifSl9fXZhbGlkYXRlKGUsYSl7cmV0dXJuIGE+PTEmJmE8PTR9c2V0KGUsYSxpKXtyZXR1cm4gZS5zZXRNb250aCgoaS0xKSozLDEpLGUuc2V0SG91cnMoMCwwLDAsMCksZX1pbmNvbXBhdGlibGVUb2tlbnM9WyJZIiwiUiIsInEiLCJNIiwiTCIsInciLCJJIiwiZCIsIkQiLCJpIiwiZSIsImMiLCJ0IiwiVCJdfX0pO3ZhciBQaCxqWD1iKCgpPT57anQoKTtRdCgpO1BoPWNsYXNzIGV4dGVuZHMgVWV7cHJpb3JpdHk9MTIwO3BhcnNlKGUsYSxpKXtzd2l0Y2goYSl7Y2FzZSJxIjpjYXNlInFxIjpyZXR1cm4gZ3QoYS5sZW5ndGgsZSk7Y2FzZSJxbyI6cmV0dXJuIGkub3JkaW5hbE51bWJlcihlLHt1bml0OiJxdWFydGVyIn0pO2Nhc2UicXFxIjpyZXR1cm4gaS5xdWFydGVyKGUse3dpZHRoOiJhYmJyZXZpYXRlZCIsY29udGV4dDoic3RhbmRhbG9uZSJ9KXx8aS5xdWFydGVyKGUse3dpZHRoOiJuYXJyb3ciLGNvbnRleHQ6InN0YW5kYWxvbmUifSk7Y2FzZSJxcXFxcSI6cmV0dXJuIGkucXVhcnRlcihlLHt3aWR0aDoibmFycm93Iixjb250ZXh0OiJzdGFuZGFsb25lIn0pO2RlZmF1bHQ6cmV0dXJuIGkucXVhcnRlcihlLHt3aWR0aDoid2lkZSIsY29udGV4dDoic3RhbmRhbG9uZSJ9KXx8aS5xdWFydGVyKGUse3dpZHRoOiJhYmJyZXZpYXRlZCIsY29udGV4dDoic3RhbmRhbG9uZSJ9KXx8aS5xdWFydGVyKGUse3dpZHRoOiJuYXJyb3ciLGNvbnRleHQ6InN0YW5kYWxvbmUifSl9fXZhbGlkYXRlKGUsYSl7cmV0dXJuIGE+PTEmJmE8PTR9c2V0KGUsYSxpKXtyZXR1cm4gZS5zZXRNb250aCgoaS0xKSozLDEpLGUuc2V0SG91cnMoMCwwLDAsMCksZX1pbmNvbXBhdGlibGVUb2tlbnM9WyJZIiwiUiIsIlEiLCJNIiwiTCIsInciLCJJIiwiZCIsIkQiLCJpIiwiZSIsImMiLCJ0IiwiVCJdfX0pO3ZhciBJaCxVWD1iKCgpPT57SDIoKTtqdCgpO1F0KCk7SWg9Y2xhc3MgZXh0ZW5kcyBVZXtpbmNvbXBhdGlibGVUb2tlbnM9WyJZIiwiUiIsInEiLCJRIiwiTCIsInciLCJJIiwiRCIsImkiLCJlIiwiYyIsInQiLCJUIl07cHJpb3JpdHk9MTEwO3BhcnNlKGUsYSxpKXtsZXQgcj1zPT5zLTE7c3dpdGNoKGEpe2Nhc2UiTSI6cmV0dXJuIHMxKFB0KEZ0Lm1vbnRoLGUpLHIpO2Nhc2UiTU0iOnJldHVybiBzMShndCgyLGUpLHIpO2Nhc2UiTW8iOnJldHVybiBzMShpLm9yZGluYWxOdW1iZXIoZSx7dW5pdDoibW9udGgifSkscik7Y2FzZSJNTU0iOnJldHVybiBpLm1vbnRoKGUse3dpZHRoOiJhYmJyZXZpYXRlZCIsY29udGV4dDoiZm9ybWF0dGluZyJ9KXx8aS5tb250aChlLHt3aWR0aDoibmFycm93Iixjb250ZXh0OiJmb3JtYXR0aW5nIn0pO2Nhc2UiTU1NTU0iOnJldHVybiBpLm1vbnRoKGUse3dpZHRoOiJuYXJyb3ciLGNvbnRleHQ6ImZvcm1hdHRpbmcifSk7ZGVmYXVsdDpyZXR1cm4gaS5tb250aChlLHt3aWR0aDoid2lkZSIsY29udGV4dDoiZm9ybWF0dGluZyJ9KXx8aS5tb250aChlLHt3aWR0aDoiYWJicmV2aWF0ZWQiLGNvbnRleHQ6ImZvcm1hdHRpbmcifSl8fGkubW9udGgoZSx7d2lkdGg6Im5hcnJvdyIsY29udGV4dDoiZm9ybWF0dGluZyJ9KX19dmFsaWRhdGUoZSxhKXtyZXR1cm4gYT49MCYmYTw9MTF9c2V0KGUsYSxpKXtyZXR1cm4gZS5zZXRNb250aChpLDEpLGUuc2V0SG91cnMoMCwwLDAsMCksZX19fSk7dmFyIE5oLFdYPWIoKCk9PntIMigpO2p0KCk7UXQoKTtOaD1jbGFzcyBleHRlbmRzIFVle3ByaW9yaXR5PTExMDtwYXJzZShlLGEsaSl7bGV0IHI9cz0+cy0xO3N3aXRjaChhKXtjYXNlIkwiOnJldHVybiBzMShQdChGdC5tb250aCxlKSxyKTtjYXNlIkxMIjpyZXR1cm4gczEoZ3QoMixlKSxyKTtjYXNlIkxvIjpyZXR1cm4gczEoaS5vcmRpbmFsTnVtYmVyKGUse3VuaXQ6Im1vbnRoIn0pLHIpO2Nhc2UiTExMIjpyZXR1cm4gaS5tb250aChlLHt3aWR0aDoiYWJicmV2aWF0ZWQiLGNvbnRleHQ6InN0YW5kYWxvbmUifSl8fGkubW9udGgoZSx7d2lkdGg6Im5hcnJvdyIsY29udGV4dDoic3RhbmRhbG9uZSJ9KTtjYXNlIkxMTExMIjpyZXR1cm4gaS5tb250aChlLHt3aWR0aDoibmFycm93Iixjb250ZXh0OiJzdGFuZGFsb25lIn0pO2RlZmF1bHQ6cmV0dXJuIGkubW9udGgoZSx7d2lkdGg6IndpZGUiLGNvbnRleHQ6InN0YW5kYWxvbmUifSl8fGkubW9udGgoZSx7d2lkdGg6ImFiYnJldmlhdGVkIixjb250ZXh0OiJzdGFuZGFsb25lIn0pfHxpLm1vbnRoKGUse3dpZHRoOiJuYXJyb3ciLGNvbnRleHQ6InN0YW5kYWxvbmUifSl9fXZhbGlkYXRlKGUsYSl7cmV0dXJuIGE+PTAmJmE8PTExfXNldChlLGEsaSl7cmV0dXJuIGUuc2V0TW9udGgoaSwxKSxlLnNldEhvdXJzKDAsMCwwLDApLGV9aW5jb21wYXRpYmxlVG9rZW5zPVsiWSIsIlIiLCJxIiwiUSIsIk0iLCJ3IiwiSSIsIkQiLCJpIiwiZSIsImMiLCJ0IiwiVCJdfX0pO2Z1bmN0aW9uIEZoKHQsZSxhKXtsZXQgaT1uZSh0LGE/LmluKSxyPUo0KGksYSktZTtyZXR1cm4gaS5zZXREYXRlKGkuZ2V0RGF0ZSgpLXIqNyksbmUoaSxhPy5pbil9dmFyIHY3MSxDUz1iKCgpPT57ZGgoKTtBZSgpO3Y3MT1GaH0pO3ZhciBPaCxHWD1iKCgpPT57Q1MoKTtFaSgpO0gyKCk7anQoKTtRdCgpO09oPWNsYXNzIGV4dGVuZHMgVWV7cHJpb3JpdHk9MTAwO3BhcnNlKGUsYSxpKXtzd2l0Y2goYSl7Y2FzZSJ3IjpyZXR1cm4gUHQoRnQud2VlayxlKTtjYXNlIndvIjpyZXR1cm4gaS5vcmRpbmFsTnVtYmVyKGUse3VuaXQ6IndlZWsifSk7ZGVmYXVsdDpyZXR1cm4gZ3QoYS5sZW5ndGgsZSl9fXZhbGlkYXRlKGUsYSl7cmV0dXJuIGE+PTEmJmE8PTUzfXNldChlLGEsaSxyKXtyZXR1cm4gZDEoRmgoZSxpLHIpLHIpfWluY29tcGF0aWJsZVRva2Vucz1bInkiLCJSIiwidSIsInEiLCJRIiwiTSIsIkwiLCJJIiwiZCIsIkQiLCJpIiwidCIsIlQiXX19KTtmdW5jdGlvbiBSaCh0LGUsYSl7bGV0IGk9bmUodCxhPy5pbikscj1RNChpLGEpLWU7cmV0dXJuIGkuc2V0RGF0ZShpLmdldERhdGUoKS1yKjcpLGl9dmFyIFQ3MSxfUz1iKCgpPT57bGgoKTtBZSgpO1Q3MT1SaH0pO3ZhciBCaCxZWD1iKCgpPT57X1MoKTt2cigpO0gyKCk7anQoKTtRdCgpO0JoPWNsYXNzIGV4dGVuZHMgVWV7cHJpb3JpdHk9MTAwO3BhcnNlKGUsYSxpKXtzd2l0Y2goYSl7Y2FzZSJJIjpyZXR1cm4gUHQoRnQud2VlayxlKTtjYXNlIklvIjpyZXR1cm4gaS5vcmRpbmFsTnVtYmVyKGUse3VuaXQ6IndlZWsifSk7ZGVmYXVsdDpyZXR1cm4gZ3QoYS5sZW5ndGgsZSl9fXZhbGlkYXRlKGUsYSl7cmV0dXJuIGE+PTEmJmE8PTUzfXNldChlLGEsaSl7cmV0dXJuIEcxKFJoKGUsaSkpfWluY29tcGF0aWJsZVRva2Vucz1bInkiLCJZIiwidSIsInEiLCJRIiwiTSIsIkwiLCJ3IiwiZCIsIkQiLCJlIiwiYyIsInQiLCJUIl19fSk7dmFyIFBDdCxJQ3QsSGgsWlg9YigoKT0+e0gyKCk7anQoKTtRdCgpO1BDdD1bMzEsMjgsMzEsMzAsMzEsMzAsMzEsMzEsMzAsMzEsMzAsMzFdLElDdD1bMzEsMjksMzEsMzAsMzEsMzAsMzEsMzEsMzAsMzEsMzAsMzFdLEhoPWNsYXNzIGV4dGVuZHMgVWV7cHJpb3JpdHk9OTA7c3ViUHJpb3JpdHk9MTtwYXJzZShlLGEsaSl7c3dpdGNoKGEpe2Nhc2UiZCI6cmV0dXJuIFB0KEZ0LmRhdGUsZSk7Y2FzZSJkbyI6cmV0dXJuIGkub3JkaW5hbE51bWJlcihlLHt1bml0OiJkYXRlIn0pO2RlZmF1bHQ6cmV0dXJuIGd0KGEubGVuZ3RoLGUpfX12YWxpZGF0ZShlLGEpe2xldCBpPWUuZ2V0RnVsbFllYXIoKSxyPVRoKGkpLHM9ZS5nZXRNb250aCgpO3JldHVybiByP2E+PTEmJmE8PUlDdFtzXTphPj0xJiZhPD1QQ3Rbc119c2V0KGUsYSxpKXtyZXR1cm4gZS5zZXREYXRlKGkpLGUuc2V0SG91cnMoMCwwLDAsMCksZX1pbmNvbXBhdGlibGVUb2tlbnM9WyJZIiwiUiIsInEiLCJRIiwidyIsIkkiLCJEIiwiaSIsImUiLCJjIiwidCIsIlQiXX19KTt2YXIgcWgsWFg9YigoKT0+e0gyKCk7anQoKTtRdCgpO3FoPWNsYXNzIGV4dGVuZHMgVWV7cHJpb3JpdHk9OTA7c3VicHJpb3JpdHk9MTtwYXJzZShlLGEsaSl7c3dpdGNoKGEpe2Nhc2UiRCI6Y2FzZSJERCI6cmV0dXJuIFB0KEZ0LmRheU9mWWVhcixlKTtjYXNlIkRvIjpyZXR1cm4gaS5vcmRpbmFsTnVtYmVyKGUse3VuaXQ6ImRhdGUifSk7ZGVmYXVsdDpyZXR1cm4gZ3QoYS5sZW5ndGgsZSl9fXZhbGlkYXRlKGUsYSl7bGV0IGk9ZS5nZXRGdWxsWWVhcigpO3JldHVybiBUaChpKT9hPj0xJiZhPD0zNjY6YT49MSYmYTw9MzY1fXNldChlLGEsaSl7cmV0dXJuIGUuc2V0TW9udGgoMCxpKSxlLnNldEhvdXJzKDAsMCwwLDApLGV9aW5jb21wYXRpYmxlVG9rZW5zPVsiWSIsIlIiLCJxIiwiUSIsIk0iLCJMIiwidyIsIkkiLCJkIiwiRSIsImkiLCJlIiwiYyIsInQiLCJUIl19fSk7ZnVuY3Rpb24gd24odCxlLGEpe2xldCBpPUt0KCkscj1hPy53ZWVrU3RhcnRzT24/P2E/LmxvY2FsZT8ub3B0aW9ucz8ud2Vla1N0YXJ0c09uPz9pLndlZWtTdGFydHNPbj8/aS5sb2NhbGU/Lm9wdGlvbnM/LndlZWtTdGFydHNPbj8/MCxzPW5lKHQsYT8uaW4pLG49cy5nZXREYXkoKSxkPShlJTcrNyklNyxjPTctcixoPWU8MHx8ZT42P2UtKG4rYyklNzooZCtjKSU3LShuK2MpJTc7cmV0dXJuIEoxKHMsaCxhKX12YXIgRzcxLFdjPWIoKCk9PntPMigpO21yKCk7QWUoKTtHNzE9d259KTt2YXIgVmgsS1g9YigoKT0+e1djKCk7anQoKTtWaD1jbGFzcyBleHRlbmRzIFVle3ByaW9yaXR5PTkwO3BhcnNlKGUsYSxpKXtzd2l0Y2goYSl7Y2FzZSJFIjpjYXNlIkVFIjpjYXNlIkVFRSI6cmV0dXJuIGkuZGF5KGUse3dpZHRoOiJhYmJyZXZpYXRlZCIsY29udGV4dDoiZm9ybWF0dGluZyJ9KXx8aS5kYXkoZSx7d2lkdGg6InNob3J0Iixjb250ZXh0OiJmb3JtYXR0aW5nIn0pfHxpLmRheShlLHt3aWR0aDoibmFycm93Iixjb250ZXh0OiJmb3JtYXR0aW5nIn0pO2Nhc2UiRUVFRUUiOnJldHVybiBpLmRheShlLHt3aWR0aDoibmFycm93Iixjb250ZXh0OiJmb3JtYXR0aW5nIn0pO2Nhc2UiRUVFRUVFIjpyZXR1cm4gaS5kYXkoZSx7d2lkdGg6InNob3J0Iixjb250ZXh0OiJmb3JtYXR0aW5nIn0pfHxpLmRheShlLHt3aWR0aDoibmFycm93Iixjb250ZXh0OiJmb3JtYXR0aW5nIn0pO2RlZmF1bHQ6cmV0dXJuIGkuZGF5KGUse3dpZHRoOiJ3aWRlIixjb250ZXh0OiJmb3JtYXR0aW5nIn0pfHxpLmRheShlLHt3aWR0aDoiYWJicmV2aWF0ZWQiLGNvbnRleHQ6ImZvcm1hdHRpbmcifSl8fGkuZGF5KGUse3dpZHRoOiJzaG9ydCIsY29udGV4dDoiZm9ybWF0dGluZyJ9KXx8aS5kYXkoZSx7d2lkdGg6Im5hcnJvdyIsY29udGV4dDoiZm9ybWF0dGluZyJ9KX19dmFsaWRhdGUoZSxhKXtyZXR1cm4gYT49MCYmYTw9Nn1zZXQoZSxhLGkscil7cmV0dXJuIGU9d24oZSxpLHIpLGUuc2V0SG91cnMoMCwwLDAsMCksZX1pbmNvbXBhdGlibGVUb2tlbnM9WyJEIiwiaSIsImUiLCJjIiwidCIsIlQiXX19KTt2YXIgamgsUVg9YigoKT0+e1djKCk7anQoKTtRdCgpO2poPWNsYXNzIGV4dGVuZHMgVWV7cHJpb3JpdHk9OTA7cGFyc2UoZSxhLGkscil7bGV0IHM9bj0+e2xldCBvPU1hdGguZmxvb3IoKG4tMSkvNykqNztyZXR1cm4obityLndlZWtTdGFydHNPbis2KSU3K299O3N3aXRjaChhKXtjYXNlImUiOmNhc2UiZWUiOnJldHVybiBzMShndChhLmxlbmd0aCxlKSxzKTtjYXNlImVvIjpyZXR1cm4gczEoaS5vcmRpbmFsTnVtYmVyKGUse3VuaXQ6ImRheSJ9KSxzKTtjYXNlImVlZSI6cmV0dXJuIGkuZGF5KGUse3dpZHRoOiJhYmJyZXZpYXRlZCIsY29udGV4dDoiZm9ybWF0dGluZyJ9KXx8aS5kYXkoZSx7d2lkdGg6InNob3J0Iixjb250ZXh0OiJmb3JtYXR0aW5nIn0pfHxpLmRheShlLHt3aWR0aDoibmFycm93Iixjb250ZXh0OiJmb3JtYXR0aW5nIn0pO2Nhc2UiZWVlZWUiOnJldHVybiBpLmRheShlLHt3aWR0aDoibmFycm93Iixjb250ZXh0OiJmb3JtYXR0aW5nIn0pO2Nhc2UiZWVlZWVlIjpyZXR1cm4gaS5kYXkoZSx7d2lkdGg6InNob3J0Iixjb250ZXh0OiJmb3JtYXR0aW5nIn0pfHxpLmRheShlLHt3aWR0aDoibmFycm93Iixjb250ZXh0OiJmb3JtYXR0aW5nIn0pO2RlZmF1bHQ6cmV0dXJuIGkuZGF5KGUse3dpZHRoOiJ3aWRlIixjb250ZXh0OiJmb3JtYXR0aW5nIn0pfHxpLmRheShlLHt3aWR0aDoiYWJicmV2aWF0ZWQiLGNvbnRleHQ6ImZvcm1hdHRpbmcifSl8fGkuZGF5KGUse3dpZHRoOiJzaG9ydCIsY29udGV4dDoiZm9ybWF0dGluZyJ9KXx8aS5kYXkoZSx7d2lkdGg6Im5hcnJvdyIsY29udGV4dDoiZm9ybWF0dGluZyJ9KX19dmFsaWRhdGUoZSxhKXtyZXR1cm4gYT49MCYmYTw9Nn1zZXQoZSxhLGkscil7cmV0dXJuIGU9d24oZSxpLHIpLGUuc2V0SG91cnMoMCwwLDAsMCksZX1pbmNvbXBhdGlibGVUb2tlbnM9WyJ5IiwiUiIsInUiLCJxIiwiUSIsIk0iLCJMIiwiSSIsImQiLCJEIiwiRSIsImkiLCJjIiwidCIsIlQiXX19KTt2YXIgVWgsSlg9YigoKT0+e1djKCk7anQoKTtRdCgpO1VoPWNsYXNzIGV4dGVuZHMgVWV7cHJpb3JpdHk9OTA7cGFyc2UoZSxhLGkscil7bGV0IHM9bj0+e2xldCBvPU1hdGguZmxvb3IoKG4tMSkvNykqNztyZXR1cm4obityLndlZWtTdGFydHNPbis2KSU3K299O3N3aXRjaChhKXtjYXNlImMiOmNhc2UiY2MiOnJldHVybiBzMShndChhLmxlbmd0aCxlKSxzKTtjYXNlImNvIjpyZXR1cm4gczEoaS5vcmRpbmFsTnVtYmVyKGUse3VuaXQ6ImRheSJ9KSxzKTtjYXNlImNjYyI6cmV0dXJuIGkuZGF5KGUse3dpZHRoOiJhYmJyZXZpYXRlZCIsY29udGV4dDoic3RhbmRhbG9uZSJ9KXx8aS5kYXkoZSx7d2lkdGg6InNob3J0Iixjb250ZXh0OiJzdGFuZGFsb25lIn0pfHxpLmRheShlLHt3aWR0aDoibmFycm93Iixjb250ZXh0OiJzdGFuZGFsb25lIn0pO2Nhc2UiY2NjY2MiOnJldHVybiBpLmRheShlLHt3aWR0aDoibmFycm93Iixjb250ZXh0OiJzdGFuZGFsb25lIn0pO2Nhc2UiY2NjY2NjIjpyZXR1cm4gaS5kYXkoZSx7d2lkdGg6InNob3J0Iixjb250ZXh0OiJzdGFuZGFsb25lIn0pfHxpLmRheShlLHt3aWR0aDoibmFycm93Iixjb250ZXh0OiJzdGFuZGFsb25lIn0pO2RlZmF1bHQ6cmV0dXJuIGkuZGF5KGUse3dpZHRoOiJ3aWRlIixjb250ZXh0OiJzdGFuZGFsb25lIn0pfHxpLmRheShlLHt3aWR0aDoiYWJicmV2aWF0ZWQiLGNvbnRleHQ6InN0YW5kYWxvbmUifSl8fGkuZGF5KGUse3dpZHRoOiJzaG9ydCIsY29udGV4dDoic3RhbmRhbG9uZSJ9KXx8aS5kYXkoZSx7d2lkdGg6Im5hcnJvdyIsY29udGV4dDoic3RhbmRhbG9uZSJ9KX19dmFsaWRhdGUoZSxhKXtyZXR1cm4gYT49MCYmYTw9Nn1zZXQoZSxhLGkscil7cmV0dXJuIGU9d24oZSxpLHIpLGUuc2V0SG91cnMoMCwwLDAsMCksZX1pbmNvbXBhdGlibGVUb2tlbnM9WyJ5IiwiUiIsInUiLCJxIiwiUSIsIk0iLCJMIiwiSSIsImQiLCJEIiwiRSIsImkiLCJlIiwidCIsIlQiXX19KTtmdW5jdGlvbiBXaCh0LGUsYSl7bGV0IGk9bmUodCxhPy5pbikscj15aChpLGEpLHM9ZS1yO3JldHVybiBKMShpLHMsYSl9dmFyIGNoMSxUUz1iKCgpPT57bXIoKTtNUygpO0FlKCk7Y2gxPVdofSk7dmFyIEdoLGVLPWIoKCk9PntUUygpO2p0KCk7UXQoKTtHaD1jbGFzcyBleHRlbmRzIFVle3ByaW9yaXR5PTkwO3BhcnNlKGUsYSxpKXtsZXQgcj1zPT5zPT09MD83OnM7c3dpdGNoKGEpe2Nhc2UiaSI6Y2FzZSJpaSI6cmV0dXJuIGd0KGEubGVuZ3RoLGUpO2Nhc2UiaW8iOnJldHVybiBpLm9yZGluYWxOdW1iZXIoZSx7dW5pdDoiZGF5In0pO2Nhc2UiaWlpIjpyZXR1cm4gczEoaS5kYXkoZSx7d2lkdGg6ImFiYnJldmlhdGVkIixjb250ZXh0OiJmb3JtYXR0aW5nIn0pfHxpLmRheShlLHt3aWR0aDoic2hvcnQiLGNvbnRleHQ6ImZvcm1hdHRpbmcifSl8fGkuZGF5KGUse3dpZHRoOiJuYXJyb3ciLGNvbnRleHQ6ImZvcm1hdHRpbmcifSkscik7Y2FzZSJpaWlpaSI6cmV0dXJuIHMxKGkuZGF5KGUse3dpZHRoOiJuYXJyb3ciLGNvbnRleHQ6ImZvcm1hdHRpbmcifSkscik7Y2FzZSJpaWlpaWkiOnJldHVybiBzMShpLmRheShlLHt3aWR0aDoic2hvcnQiLGNvbnRleHQ6ImZvcm1hdHRpbmcifSl8fGkuZGF5KGUse3dpZHRoOiJuYXJyb3ciLGNvbnRleHQ6ImZvcm1hdHRpbmcifSkscik7ZGVmYXVsdDpyZXR1cm4gczEoaS5kYXkoZSx7d2lkdGg6IndpZGUiLGNvbnRleHQ6ImZvcm1hdHRpbmcifSl8fGkuZGF5KGUse3dpZHRoOiJhYmJyZXZpYXRlZCIsY29udGV4dDoiZm9ybWF0dGluZyJ9KXx8aS5kYXkoZSx7d2lkdGg6InNob3J0Iixjb250ZXh0OiJmb3JtYXR0aW5nIn0pfHxpLmRheShlLHt3aWR0aDoibmFycm93Iixjb250ZXh0OiJmb3JtYXR0aW5nIn0pLHIpfX12YWxpZGF0ZShlLGEpe3JldHVybiBhPj0xJiZhPD03fXNldChlLGEsaSl7cmV0dXJuIGU9V2goZSxpKSxlLnNldEhvdXJzKDAsMCwwLDApLGV9aW5jb21wYXRpYmxlVG9rZW5zPVsieSIsIlkiLCJ1IiwicSIsIlEiLCJNIiwiTCIsInciLCJkIiwiRCIsIkUiLCJlIiwiYyIsInQiLCJUIl19fSk7dmFyIFloLHRLPWIoKCk9PntqdCgpO1F0KCk7WWg9Y2xhc3MgZXh0ZW5kcyBVZXtwcmlvcml0eT04MDtwYXJzZShlLGEsaSl7c3dpdGNoKGEpe2Nhc2UiYSI6Y2FzZSJhYSI6Y2FzZSJhYWEiOnJldHVybiBpLmRheVBlcmlvZChlLHt3aWR0aDoiYWJicmV2aWF0ZWQiLGNvbnRleHQ6ImZvcm1hdHRpbmcifSl8fGkuZGF5UGVyaW9kKGUse3dpZHRoOiJuYXJyb3ciLGNvbnRleHQ6ImZvcm1hdHRpbmcifSk7Y2FzZSJhYWFhYSI6cmV0dXJuIGkuZGF5UGVyaW9kKGUse3dpZHRoOiJuYXJyb3ciLGNvbnRleHQ6ImZvcm1hdHRpbmcifSk7ZGVmYXVsdDpyZXR1cm4gaS5kYXlQZXJpb2QoZSx7d2lkdGg6IndpZGUiLGNvbnRleHQ6ImZvcm1hdHRpbmcifSl8fGkuZGF5UGVyaW9kKGUse3dpZHRoOiJhYmJyZXZpYXRlZCIsY29udGV4dDoiZm9ybWF0dGluZyJ9KXx8aS5kYXlQZXJpb2QoZSx7d2lkdGg6Im5hcnJvdyIsY29udGV4dDoiZm9ybWF0dGluZyJ9KX19c2V0KGUsYSxpKXtyZXR1cm4gZS5zZXRIb3VycyhhMyhpKSwwLDAsMCksZX1pbmNvbXBhdGlibGVUb2tlbnM9WyJiIiwiQiIsIkgiLCJrIiwidCIsIlQiXX19KTt2YXIgWmgsYUs9YigoKT0+e2p0KCk7UXQoKTtaaD1jbGFzcyBleHRlbmRzIFVle3ByaW9yaXR5PTgwO3BhcnNlKGUsYSxpKXtzd2l0Y2goYSl7Y2FzZSJiIjpjYXNlImJiIjpjYXNlImJiYiI6cmV0dXJuIGkuZGF5UGVyaW9kKGUse3dpZHRoOiJhYmJyZXZpYXRlZCIsY29udGV4dDoiZm9ybWF0dGluZyJ9KXx8aS5kYXlQZXJpb2QoZSx7d2lkdGg6Im5hcnJvdyIsY29udGV4dDoiZm9ybWF0dGluZyJ9KTtjYXNlImJiYmJiIjpyZXR1cm4gaS5kYXlQZXJpb2QoZSx7d2lkdGg6Im5hcnJvdyIsY29udGV4dDoiZm9ybWF0dGluZyJ9KTtkZWZhdWx0OnJldHVybiBpLmRheVBlcmlvZChlLHt3aWR0aDoid2lkZSIsY29udGV4dDoiZm9ybWF0dGluZyJ9KXx8aS5kYXlQZXJpb2QoZSx7d2lkdGg6ImFiYnJldmlhdGVkIixjb250ZXh0OiJmb3JtYXR0aW5nIn0pfHxpLmRheVBlcmlvZChlLHt3aWR0aDoibmFycm93Iixjb250ZXh0OiJmb3JtYXR0aW5nIn0pfX1zZXQoZSxhLGkpe3JldHVybiBlLnNldEhvdXJzKGEzKGkpLDAsMCwwKSxlfWluY29tcGF0aWJsZVRva2Vucz1bImEiLCJCIiwiSCIsImsiLCJ0IiwiVCJdfX0pO3ZhciBYaCxpSz1iKCgpPT57anQoKTtRdCgpO1hoPWNsYXNzIGV4dGVuZHMgVWV7cHJpb3JpdHk9ODA7cGFyc2UoZSxhLGkpe3N3aXRjaChhKXtjYXNlIkIiOmNhc2UiQkIiOmNhc2UiQkJCIjpyZXR1cm4gaS5kYXlQZXJpb2QoZSx7d2lkdGg6ImFiYnJldmlhdGVkIixjb250ZXh0OiJmb3JtYXR0aW5nIn0pfHxpLmRheVBlcmlvZChlLHt3aWR0aDoibmFycm93Iixjb250ZXh0OiJmb3JtYXR0aW5nIn0pO2Nhc2UiQkJCQkIiOnJldHVybiBpLmRheVBlcmlvZChlLHt3aWR0aDoibmFycm93Iixjb250ZXh0OiJmb3JtYXR0aW5nIn0pO2RlZmF1bHQ6cmV0dXJuIGkuZGF5UGVyaW9kKGUse3dpZHRoOiJ3aWRlIixjb250ZXh0OiJmb3JtYXR0aW5nIn0pfHxpLmRheVBlcmlvZChlLHt3aWR0aDoiYWJicmV2aWF0ZWQiLGNvbnRleHQ6ImZvcm1hdHRpbmcifSl8fGkuZGF5UGVyaW9kKGUse3dpZHRoOiJuYXJyb3ciLGNvbnRleHQ6ImZvcm1hdHRpbmcifSl9fXNldChlLGEsaSl7cmV0dXJuIGUuc2V0SG91cnMoYTMoaSksMCwwLDApLGV9aW5jb21wYXRpYmxlVG9rZW5zPVsiYSIsImIiLCJ0IiwiVCJdfX0pO3ZhciBLaCxySz1iKCgpPT57SDIoKTtqdCgpO1F0KCk7S2g9Y2xhc3MgZXh0ZW5kcyBVZXtwcmlvcml0eT03MDtwYXJzZShlLGEsaSl7c3dpdGNoKGEpe2Nhc2UiaCI6cmV0dXJuIFB0KEZ0LmhvdXIxMmgsZSk7Y2FzZSJobyI6cmV0dXJuIGkub3JkaW5hbE51bWJlcihlLHt1bml0OiJob3VyIn0pO2RlZmF1bHQ6cmV0dXJuIGd0KGEubGVuZ3RoLGUpfX12YWxpZGF0ZShlLGEpe3JldHVybiBhPj0xJiZhPD0xMn1zZXQoZSxhLGkpe2xldCByPWUuZ2V0SG91cnMoKT49MTI7cmV0dXJuIHImJmk8MTI/ZS5zZXRIb3VycyhpKzEyLDAsMCwwKTohciYmaT09PTEyP2Uuc2V0SG91cnMoMCwwLDAsMCk6ZS5zZXRIb3VycyhpLDAsMCwwKSxlfWluY29tcGF0aWJsZVRva2Vucz1bIkgiLCJLIiwiayIsInQiLCJUIl19fSk7dmFyIFFoLHNLPWIoKCk9PntIMigpO2p0KCk7UXQoKTtRaD1jbGFzcyBleHRlbmRzIFVle3ByaW9yaXR5PTcwO3BhcnNlKGUsYSxpKXtzd2l0Y2goYSl7Y2FzZSJIIjpyZXR1cm4gUHQoRnQuaG91cjIzaCxlKTtjYXNlIkhvIjpyZXR1cm4gaS5vcmRpbmFsTnVtYmVyKGUse3VuaXQ6ImhvdXIifSk7ZGVmYXVsdDpyZXR1cm4gZ3QoYS5sZW5ndGgsZSl9fXZhbGlkYXRlKGUsYSl7cmV0dXJuIGE+PTAmJmE8PTIzfXNldChlLGEsaSl7cmV0dXJuIGUuc2V0SG91cnMoaSwwLDAsMCksZX1pbmNvbXBhdGlibGVUb2tlbnM9WyJhIiwiYiIsImgiLCJLIiwiayIsInQiLCJUIl19fSk7dmFyIEpoLG5LPWIoKCk9PntIMigpO2p0KCk7UXQoKTtKaD1jbGFzcyBleHRlbmRzIFVle3ByaW9yaXR5PTcwO3BhcnNlKGUsYSxpKXtzd2l0Y2goYSl7Y2FzZSJLIjpyZXR1cm4gUHQoRnQuaG91cjExaCxlKTtjYXNlIktvIjpyZXR1cm4gaS5vcmRpbmFsTnVtYmVyKGUse3VuaXQ6ImhvdXIifSk7ZGVmYXVsdDpyZXR1cm4gZ3QoYS5sZW5ndGgsZSl9fXZhbGlkYXRlKGUsYSl7cmV0dXJuIGE+PTAmJmE8PTExfXNldChlLGEsaSl7cmV0dXJuIGUuZ2V0SG91cnMoKT49MTImJmk8MTI/ZS5zZXRIb3VycyhpKzEyLDAsMCwwKTplLnNldEhvdXJzKGksMCwwLDApLGV9aW5jb21wYXRpYmxlVG9rZW5zPVsiaCIsIkgiLCJrIiwidCIsIlQiXX19KTt2YXIgZXAsb0s9YigoKT0+e0gyKCk7anQoKTtRdCgpO2VwPWNsYXNzIGV4dGVuZHMgVWV7cHJpb3JpdHk9NzA7cGFyc2UoZSxhLGkpe3N3aXRjaChhKXtjYXNlImsiOnJldHVybiBQdChGdC5ob3VyMjRoLGUpO2Nhc2Uia28iOnJldHVybiBpLm9yZGluYWxOdW1iZXIoZSx7dW5pdDoiaG91ciJ9KTtkZWZhdWx0OnJldHVybiBndChhLmxlbmd0aCxlKX19dmFsaWRhdGUoZSxhKXtyZXR1cm4gYT49MSYmYTw9MjR9c2V0KGUsYSxpKXtsZXQgcj1pPD0yND9pJTI0Omk7cmV0dXJuIGUuc2V0SG91cnMociwwLDAsMCksZX1pbmNvbXBhdGlibGVUb2tlbnM9WyJhIiwiYiIsImgiLCJIIiwiSyIsInQiLCJUIl19fSk7dmFyIHRwLGxLPWIoKCk9PntIMigpO2p0KCk7UXQoKTt0cD1jbGFzcyBleHRlbmRzIFVle3ByaW9yaXR5PTYwO3BhcnNlKGUsYSxpKXtzd2l0Y2goYSl7Y2FzZSJtIjpyZXR1cm4gUHQoRnQubWludXRlLGUpO2Nhc2UibW8iOnJldHVybiBpLm9yZGluYWxOdW1iZXIoZSx7dW5pdDoibWludXRlIn0pO2RlZmF1bHQ6cmV0dXJuIGd0KGEubGVuZ3RoLGUpfX12YWxpZGF0ZShlLGEpe3JldHVybiBhPj0wJiZhPD01OX1zZXQoZSxhLGkpe3JldHVybiBlLnNldE1pbnV0ZXMoaSwwLDApLGV9aW5jb21wYXRpYmxlVG9rZW5zPVsidCIsIlQiXX19KTt2YXIgYXAsY0s9YigoKT0+e0gyKCk7anQoKTtRdCgpO2FwPWNsYXNzIGV4dGVuZHMgVWV7cHJpb3JpdHk9NTA7cGFyc2UoZSxhLGkpe3N3aXRjaChhKXtjYXNlInMiOnJldHVybiBQdChGdC5zZWNvbmQsZSk7Y2FzZSJzbyI6cmV0dXJuIGkub3JkaW5hbE51bWJlcihlLHt1bml0OiJzZWNvbmQifSk7ZGVmYXVsdDpyZXR1cm4gZ3QoYS5sZW5ndGgsZSl9fXZhbGlkYXRlKGUsYSl7cmV0dXJuIGE+PTAmJmE8PTU5fXNldChlLGEsaSl7cmV0dXJuIGUuc2V0U2Vjb25kcyhpLDApLGV9aW5jb21wYXRpYmxlVG9rZW5zPVsidCIsIlQiXX19KTt2YXIgaXAsZEs9YigoKT0+e2p0KCk7UXQoKTtpcD1jbGFzcyBleHRlbmRzIFVle3ByaW9yaXR5PTMwO3BhcnNlKGUsYSl7bGV0IGk9cj0+TWF0aC50cnVuYyhyKk1hdGgucG93KDEwLC1hLmxlbmd0aCszKSk7cmV0dXJuIHMxKGd0KGEubGVuZ3RoLGUpLGkpfXNldChlLGEsaSl7cmV0dXJuIGUuc2V0TWlsbGlzZWNvbmRzKGkpLGV9aW5jb21wYXRpYmxlVG9rZW5zPVsidCIsIlQiXX19KTt2YXIgcnAsaEs9YigoKT0+e2F0KCk7c3MoKTtIMigpO2p0KCk7UXQoKTtycD1jbGFzcyBleHRlbmRzIFVle3ByaW9yaXR5PTEwO3BhcnNlKGUsYSl7c3dpdGNoKGEpe2Nhc2UiWCI6cmV0dXJuIHNpKHJpLmJhc2ljT3B0aW9uYWxNaW51dGVzLGUpO2Nhc2UiWFgiOnJldHVybiBzaShyaS5iYXNpYyxlKTtjYXNlIlhYWFgiOnJldHVybiBzaShyaS5iYXNpY09wdGlvbmFsU2Vjb25kcyxlKTtjYXNlIlhYWFhYIjpyZXR1cm4gc2kocmkuZXh0ZW5kZWRPcHRpb25hbFNlY29uZHMsZSk7ZGVmYXVsdDpyZXR1cm4gc2kocmkuZXh0ZW5kZWQsZSl9fXNldChlLGEsaSl7cmV0dXJuIGEudGltZXN0YW1wSXNTZXQ/ZTpMZShlLGUuZ2V0VGltZSgpLUQxKGUpLWkpfWluY29tcGF0aWJsZVRva2Vucz1bInQiLCJUIiwieCJdfX0pO3ZhciBzcCxwSz1iKCgpPT57YXQoKTtzcygpO0gyKCk7anQoKTtRdCgpO3NwPWNsYXNzIGV4dGVuZHMgVWV7cHJpb3JpdHk9MTA7cGFyc2UoZSxhKXtzd2l0Y2goYSl7Y2FzZSJ4IjpyZXR1cm4gc2kocmkuYmFzaWNPcHRpb25hbE1pbnV0ZXMsZSk7Y2FzZSJ4eCI6cmV0dXJuIHNpKHJpLmJhc2ljLGUpO2Nhc2UieHh4eCI6cmV0dXJuIHNpKHJpLmJhc2ljT3B0aW9uYWxTZWNvbmRzLGUpO2Nhc2UieHh4eHgiOnJldHVybiBzaShyaS5leHRlbmRlZE9wdGlvbmFsU2Vjb25kcyxlKTtkZWZhdWx0OnJldHVybiBzaShyaS5leHRlbmRlZCxlKX19c2V0KGUsYSxpKXtyZXR1cm4gYS50aW1lc3RhbXBJc1NldD9lOkxlKGUsZS5nZXRUaW1lKCktRDEoZSktaSl9aW5jb21wYXRpYmxlVG9rZW5zPVsidCIsIlQiLCJYIl19fSk7dmFyIG5wLHVLPWIoKCk9PnthdCgpO2p0KCk7UXQoKTtucD1jbGFzcyBleHRlbmRzIFVle3ByaW9yaXR5PTQwO3BhcnNlKGUpe3JldHVybiBDaChlKX1zZXQoZSxhLGkpe3JldHVybltMZShlLGkqMWUzKSx7dGltZXN0YW1wSXNTZXQ6ITB9XX1pbmNvbXBhdGlibGVUb2tlbnM9IioifX0pO3ZhciBvcCxmSz1iKCgpPT57YXQoKTtqdCgpO1F0KCk7b3A9Y2xhc3MgZXh0ZW5kcyBVZXtwcmlvcml0eT0yMDtwYXJzZShlKXtyZXR1cm4gQ2goZSl9c2V0KGUsYSxpKXtyZXR1cm5bTGUoZSxpKSx7dGltZXN0YW1wSXNTZXQ6ITB9XX1pbmNvbXBhdGlibGVUb2tlbnM9IioifX0pO3ZhciBscCxtSz1iKCgpPT57T1goKTtSWCgpO0JYKCk7SFgoKTtxWCgpO1ZYKCk7algoKTtVWCgpO1dYKCk7R1goKTtZWCgpO1pYKCk7WFgoKTtLWCgpO1FYKCk7SlgoKTtlSygpO3RLKCk7YUsoKTtpSygpO3JLKCk7c0soKTtuSygpO29LKCk7bEsoKTtjSygpO2RLKCk7aEsoKTtwSygpO3VLKCk7ZksoKTtscD17RzpuZXcgU2gseTpuZXcgTGgsWTpuZXcgJGgsUjpuZXcgQWgsdTpuZXcgRGgsUTpuZXcgRWgscTpuZXcgUGgsTTpuZXcgSWgsTDpuZXcgTmgsdzpuZXcgT2gsSTpuZXcgQmgsZDpuZXcgSGgsRDpuZXcgcWgsRTpuZXcgVmgsZTpuZXcgamgsYzpuZXcgVWgsaTpuZXcgR2gsYTpuZXcgWWgsYjpuZXcgWmgsQjpuZXcgWGgsaDpuZXcgS2gsSDpuZXcgUWgsSzpuZXcgSmgsazpuZXcgZXAsbTpuZXcgdHAsczpuZXcgYXAsUzpuZXcgaXAsWDpuZXcgcnAseDpuZXcgc3AsdDpuZXcgbnAsVDpuZXcgb3B9fSk7ZnVuY3Rpb24gY3AodCxlLGEsaSl7bGV0IHI9KCk9PkxlKGk/LmlufHxhLE5hTikscz12aCgpLG49aT8ubG9jYWxlPz9zLmxvY2FsZT8/Q2Esbz1pPy5maXJzdFdlZWtDb250YWluc0RhdGU/P2k/LmxvY2FsZT8ub3B0aW9ucz8uZmlyc3RXZWVrQ29udGFpbnNEYXRlPz9zLmZpcnN0V2Vla0NvbnRhaW5zRGF0ZT8/cy5sb2NhbGU/Lm9wdGlvbnM/LmZpcnN0V2Vla0NvbnRhaW5zRGF0ZT8/MSxkPWk/LndlZWtTdGFydHNPbj8/aT8ubG9jYWxlPy5vcHRpb25zPy53ZWVrU3RhcnRzT24/P3Mud2Vla1N0YXJ0c09uPz9zLmxvY2FsZT8ub3B0aW9ucz8ud2Vla1N0YXJ0c09uPz8wO2lmKCFlKXJldHVybiB0P3IoKTpuZShhLGk/LmluKTtsZXQgYz17Zmlyc3RXZWVrQ29udGFpbnNEYXRlOm8sd2Vla1N0YXJ0c09uOmQsbG9jYWxlOm59LGg9W25ldyBraChpPy5pbixhKV0sbD1lLm1hdGNoKEZDdCkubWFwKG09PntsZXQgeD1tWzBdO2lmKHggaW4geW4pe2xldCBNPXluW3hdO3JldHVybiBNKG0sbi5mb3JtYXRMb25nKX1yZXR1cm4gbX0pLmpvaW4oIiIpLm1hdGNoKE5DdCksZj1bXTtmb3IobGV0IG0gb2YgbCl7IWk/LnVzZUFkZGl0aW9uYWxXZWVrWWVhclRva2VucyYmcGgobSkmJlZjKG0sZSx0KSwhaT8udXNlQWRkaXRpb25hbERheU9mWWVhclRva2VucyYmaGgobSkmJlZjKG0sZSx0KTtsZXQgeD1tWzBdLE09bHBbeF07aWYoTSl7bGV0e2luY29tcGF0aWJsZVRva2VuczpTfT1NO2lmKEFycmF5LmlzQXJyYXkoUykpe2xldCBfPWYuZmluZChrPT5TLmluY2x1ZGVzKGsudG9rZW4pfHxrLnRva2VuPT09eCk7aWYoXyl0aHJvdyBuZXcgUmFuZ2VFcnJvcihgVGhlIGZvcm1hdCBzdHJpbmcgbXVzdG4ndCBjb250YWluIFxgJHtfLmZ1bGxUb2tlbn1cYCBhbmQgXGAke219XGAgYXQgdGhlIHNhbWUgdGltZWApfWVsc2UgaWYoTS5pbmNvbXBhdGlibGVUb2tlbnM9PT0iKiImJmYubGVuZ3RoPjApdGhyb3cgbmV3IFJhbmdlRXJyb3IoYFRoZSBmb3JtYXQgc3RyaW5nIG11c3RuJ3QgY29udGFpbiBcYCR7bX1cYCBhbmQgYW55IG90aGVyIHRva2VuIGF0IHRoZSBzYW1lIHRpbWVgKTtmLnB1c2goe3Rva2VuOngsZnVsbFRva2VuOm19KTtsZXQgRj1NLnJ1bih0LG0sbi5tYXRjaCxjKTtpZighRilyZXR1cm4gcigpO2gucHVzaChGLnNldHRlciksdD1GLnJlc3R9ZWxzZXtpZih4Lm1hdGNoKEhDdCkpdGhyb3cgbmV3IFJhbmdlRXJyb3IoIkZvcm1hdCBzdHJpbmcgY29udGFpbnMgYW4gdW5lc2NhcGVkIGxhdGluIGFscGhhYmV0IGNoYXJhY3RlciBgIit4KyJgIik7aWYobT09PSInJyI/bT0iJyI6eD09PSInIiYmKG09cUN0KG0pKSx0LmluZGV4T2YobSk9PT0wKXQ9dC5zbGljZShtLmxlbmd0aCk7ZWxzZSByZXR1cm4gcigpfX1pZih0Lmxlbmd0aD4wJiZCQ3QudGVzdCh0KSlyZXR1cm4gcigpO2xldCBnPWgubWFwKG09Pm0ucHJpb3JpdHkpLnNvcnQoKG0seCk9PngtbSkuZmlsdGVyKChtLHgsTSk9Pk0uaW5kZXhPZihtKT09PXgpLm1hcChtPT5oLmZpbHRlcih4PT54LnByaW9yaXR5PT09bSkuc29ydCgoeCxNKT0+TS5zdWJQcmlvcml0eS14LnN1YlByaW9yaXR5KSkubWFwKG09Pm1bMF0pLHk9bmUoYSxpPy5pbik7aWYoaXNOYU4oK3kpKXJldHVybiByKCk7bGV0IHY9e307Zm9yKGxldCBtIG9mIGcpe2lmKCFtLnZhbGlkYXRlKHksYykpcmV0dXJuIHIoKTtsZXQgeD1tLnNldCh5LHYsYyk7QXJyYXkuaXNBcnJheSh4KT8oeT14WzBdLE9iamVjdC5hc3NpZ24odix4WzFdKSk6eT14fXJldHVybiB5fWZ1bmN0aW9uIHFDdCh0KXtyZXR1cm4gdC5tYXRjaChPQ3QpWzFdLnJlcGxhY2UoUkN0LCInIil9dmFyIE5DdCxGQ3QsT0N0LFJDdCxCQ3QsSEN0LGk5MSxMUz1iKCgpPT57R28oKTt1UygpO2ZTKCk7YXQoKTt3UygpO0FlKCk7U1MoKTttSygpO05DdD0vW3lZUXFNTHdJZERlY2loSEtrbXNdb3woXHcpXDEqfCcnfCcoJyd8W14nXSkrKCd8JCl8Li9nLEZDdD0vUCtwK3xQK3xwK3wnJ3wnKCcnfFteJ10pKygnfCQpfC4vZyxPQ3Q9L14nKFteXSo/KSc/JC8sUkN0PS8nJy9nLEJDdD0vXFMvLEhDdD0vW2EtekEtWl0vO2k5MT1jcH0pO2Z1bmN0aW9uIGdLKHQsZSxhKXtyZXR1cm4gejIoY3AodCxlLG5ldyBEYXRlLGEpKX12YXIgbzkxLGJLPWIoKCk9PntvcygpO0xTKCk7bzkxPWdLfSk7ZnVuY3Rpb24gdksodCxlKXtyZXR1cm4gbmUodCxlPy5pbikuZ2V0RGF5KCk9PT0xfXZhciBkOTEseUs9YigoKT0+e0FlKCk7ZDkxPXZLfSk7ZnVuY3Rpb24geEsodCl7cmV0dXJuK25lKHQpPERhdGUubm93KCl9dmFyIHU5MSx3Sz1iKCgpPT57QWUoKTt1OTE9eEt9KTtmdW5jdGlvbiBHYyh0LGUpe2xldCBhPW5lKHQsZT8uaW4pO3JldHVybiBhLnNldE1pbnV0ZXMoMCwwLDApLGF9dmFyIGc5MSwkUz1iKCgpPT57QWUoKTtnOTE9R2N9KTtmdW5jdGlvbiBkcCh0LGUsYSl7bGV0W2kscl09SmUoYT8uaW4sdCxlKTtyZXR1cm4rR2MoaSk9PStHYyhyKX12YXIgeDkxLEFTPWIoKCk9PntyMSgpOyRTKCk7eDkxPWRwfSk7ZnVuY3Rpb24gaTModCxlLGEpe2xldFtpLHJdPUplKGE/LmluLHQsZSk7cmV0dXJuK2QxKGksYSk9PStkMShyLGEpfXZhciBrOTEsaHA9YigoKT0+e3IxKCk7RWkoKTtrOTE9aTN9KTtmdW5jdGlvbiBwcCh0LGUsYSl7cmV0dXJuIGkzKHQsZSx7Li4uYSx3ZWVrU3RhcnRzT246MX0pfXZhciBfOTEsRFM9YigoKT0+e2hwKCk7XzkxPXBwfSk7ZnVuY3Rpb24gTUsodCxlLGEpe2xldFtpLHJdPUplKGE/LmluLHQsZSk7cmV0dXJuK0lhKGkpPT0rSWEocil9dmFyIEE5MSx6Sz1iKCgpPT57UjQoKTtyMSgpO0E5MT1NS30pO2Z1bmN0aW9uIFljKHQsZSl7bGV0IGE9bmUodCxlPy5pbik7cmV0dXJuIGEuc2V0U2Vjb25kcygwLDApLGF9dmFyIFA5MSxFUz1iKCgpPT57QWUoKTtQOTE9WWN9KTtmdW5jdGlvbiB1cCh0LGUpe3JldHVybitZYyh0KT09K1ljKGUpfXZhciBGOTEsUFM9YigoKT0+e0VTKCk7RjkxPXVwfSk7ZnVuY3Rpb24gZnAodCxlLGEpe2xldFtpLHJdPUplKGE/LmluLHQsZSk7cmV0dXJuIGkuZ2V0RnVsbFllYXIoKT09PXIuZ2V0RnVsbFllYXIoKSYmaS5nZXRNb250aCgpPT09ci5nZXRNb250aCgpfXZhciBCOTEsSVM9YigoKT0+e3IxKCk7QjkxPWZwfSk7ZnVuY3Rpb24gbXAodCxlLGEpe2xldFtpLHJdPUplKGE/LmluLHQsZSk7cmV0dXJuK3pyKGkpPT0renIocil9dmFyIGo5MSxOUz1iKCgpPT57cjEoKTt0aCgpO2o5MT1tcH0pO2Z1bmN0aW9uIFpjKHQsZSl7bGV0IGE9bmUodCxlPy5pbik7cmV0dXJuIGEuc2V0TWlsbGlzZWNvbmRzKDApLGF9dmFyIEc5MSxGUz1iKCgpPT57QWUoKTtHOTE9WmN9KTtmdW5jdGlvbiBncCh0LGUpe3JldHVybitaYyh0KT09K1pjKGUpfXZhciBYOTEsT1M9YigoKT0+e0ZTKCk7WDkxPWdwfSk7ZnVuY3Rpb24gYnAodCxlLGEpe2xldFtpLHJdPUplKGE/LmluLHQsZSk7cmV0dXJuIGkuZ2V0RnVsbFllYXIoKT09PXIuZ2V0RnVsbFllYXIoKX12YXIgSjkxLFJTPWIoKCk9PntyMSgpO0o5MT1icH0pO2Z1bmN0aW9uIGtLKHQsZSl7cmV0dXJuIGRwKG5lKHQsZT8uaW4pLEN0KGU/LmlufHx0KSl9dmFyIHJ1MSxTSz1iKCgpPT57ZTIoKTtBUygpO0FlKCk7cnUxPWtLfSk7ZnVuY3Rpb24gQ0sodCxlKXtyZXR1cm4gcHAoTGUoZT8uaW58fHQsdCksQ3QoZT8uaW58fHQpKX12YXIgY3UxLF9LPWIoKCk9PnthdCgpO2UyKCk7RFMoKTtjdTE9Q0t9KTtmdW5jdGlvbiBUSyh0KXtyZXR1cm4gdXAodCxDdCh0KSl9dmFyIHV1MSxMSz1iKCgpPT57ZTIoKTtQUygpO3V1MT1US30pO2Z1bmN0aW9uICRLKHQsZSl7cmV0dXJuIGZwKExlKGU/LmlufHx0LHQpLEN0KGU/LmlufHx0KSl9dmFyIHZ1MSxBSz1iKCgpPT57YXQoKTtlMigpO0lTKCk7dnUxPSRLfSk7ZnVuY3Rpb24gREsodCxlKXtyZXR1cm4gbXAoTGUoZT8uaW58fHQsdCksQ3QoZT8uaW58fHQpKX12YXIgenUxLEVLPWIoKCk9PnthdCgpO2UyKCk7TlMoKTt6dTE9REt9KTtmdW5jdGlvbiBQSyh0KXtyZXR1cm4gZ3AodCxDdCh0KSl9dmFyIF91MSxJSz1iKCgpPT57ZTIoKTtPUygpO191MT1QS30pO2Z1bmN0aW9uIE5LKHQsZSl7cmV0dXJuIGkzKExlKGU/LmlufHx0LHQpLEN0KGU/LmlufHx0KSxlKX12YXIgRHUxLEZLPWIoKCk9PnthdCgpO2UyKCk7aHAoKTtEdTE9Tkt9KTtmdW5jdGlvbiBPSyh0LGUpe3JldHVybiBicChMZShlPy5pbnx8dCx0KSxDdChlPy5pbnx8dCkpfXZhciBGdTEsUks9YigoKT0+e2F0KCk7ZTIoKTtSUygpO0Z1MT1PS30pO2Z1bmN0aW9uIEJLKHQsZSl7cmV0dXJuIG5lKHQsZT8uaW4pLmdldERheSgpPT09NH12YXIgQnUxLEhLPWIoKCk9PntBZSgpO0J1MT1CS30pO2Z1bmN0aW9uIHFLKHQsZSl7cmV0dXJuIHhyKExlKGU/LmlufHx0LHQpLEN0KGU/LmlufHx0KSl9dmFyIFV1MSxWSz1iKCgpPT57YXQoKTtlMigpO3E0KCk7VXUxPXFLfSk7ZnVuY3Rpb24gaksodCxlKXtyZXR1cm4geHIodCxKMShDdChlPy5pbnx8dCksMSksZSl9dmFyIFh1MSxVSz1iKCgpPT57bXIoKTtlMigpO3E0KCk7WHUxPWpLfSk7ZnVuY3Rpb24gV0sodCxlKXtyZXR1cm4gbmUodCxlPy5pbikuZ2V0RGF5KCk9PT0yfXZhciBKdTEsR0s9YigoKT0+e0FlKCk7SnUxPVdLfSk7ZnVuY3Rpb24gWUsodCxlKXtyZXR1cm4gbmUodCxlPy5pbikuZ2V0RGF5KCk9PT0zfXZhciBhZjEsWks9YigoKT0+e0FlKCk7YWYxPVlLfSk7ZnVuY3Rpb24gWEsodCxlLGEpe2xldCBpPStuZSh0LGE/LmluKSxbcixzXT1bK25lKGUuc3RhcnQsYT8uaW4pLCtuZShlLmVuZCxhPy5pbildLnNvcnQoKG4sbyk9Pm4tbyk7cmV0dXJuIGk+PXImJmk8PXN9dmFyIHNmMSxLSz1iKCgpPT57QWUoKTtzZjE9WEt9KTtmdW5jdGlvbiBNbih0LGUsYSl7cmV0dXJuIEoxKHQsLWUsYSl9dmFyIGxmMSxYYz1iKCgpPT57bXIoKTtsZjE9TW59KTtmdW5jdGlvbiBRSyh0LGUpe3JldHVybiB4cihMZShlPy5pbnx8dCx0KSxNbihDdChlPy5pbnx8dCksMSkpfXZhciBmZjEsSks9YigoKT0+e2F0KCk7ZTIoKTtxNCgpO1hjKCk7ZmYxPVFLfSk7ZnVuY3Rpb24gZVEodCxlKXtsZXQgYT1uZSh0LGU/LmluKSxpPWEuZ2V0RnVsbFllYXIoKSxyPTkrTWF0aC5mbG9vcihpLzEwKSoxMDtyZXR1cm4gYS5zZXRGdWxsWWVhcihyKzEsMCwwKSxhLnNldEhvdXJzKDAsMCwwLDApLG5lKGEsZT8uaW4pfXZhciBiZjEsdFE9YigoKT0+e0FlKCk7YmYxPWVRfSk7ZnVuY3Rpb24gdnAodCxlKXtsZXQgYT1LdCgpLGk9ZT8ud2Vla1N0YXJ0c09uPz9lPy5sb2NhbGU/Lm9wdGlvbnM/LndlZWtTdGFydHNPbj8/YS53ZWVrU3RhcnRzT24/P2EubG9jYWxlPy5vcHRpb25zPy53ZWVrU3RhcnRzT24/PzAscj1uZSh0LGU/LmluKSxzPXIuZ2V0RGF5KCksbj0oczxpPy03OjApKzYtKHMtaSk7cmV0dXJuIHIuc2V0SG91cnMoMCwwLDAsMCksci5zZXREYXRlKHIuZ2V0RGF0ZSgpK24pLHJ9dmFyIHdmMSxCUz1iKCgpPT57TzIoKTtBZSgpO3dmMT12cH0pO2Z1bmN0aW9uIGFRKHQsZSl7cmV0dXJuIHZwKHQsey4uLmUsd2Vla1N0YXJ0c09uOjF9KX12YXIga2YxLGlRPWIoKCk9PntCUygpO2tmMT1hUX0pO2Z1bmN0aW9uIHJRKHQsZSl7bGV0IGE9bmEodCxlKSxpPUxlKGU/LmlufHx0LDApO2kuc2V0RnVsbFllYXIoYSsxLDAsNCksaS5zZXRIb3VycygwLDAsMCwwKTtsZXQgcj1HMShpLGUpO3JldHVybiByLnNldERhdGUoci5nZXREYXRlKCktMSkscn12YXIgTGYxLHNRPWIoKCk9PnthdCgpO3VuKCk7dnIoKTtMZjE9clF9KTtmdW5jdGlvbiBuUSh0LGUpe2xldCBhPW5lKHQsZT8uaW4pLGk9YS5nZXRNb250aCgpLHI9aS1pJTMrMztyZXR1cm4gYS5zZXRNb250aChyLDApLGEuc2V0SG91cnMoMCwwLDAsMCksYX12YXIgRGYxLG9RPWIoKCk9PntBZSgpO0RmMT1uUX0pO2Z1bmN0aW9uIGxRKHQsZSl7bGV0IGE9bmUodCxlPy5pbiksaT1hLmdldEZ1bGxZZWFyKCk7cmV0dXJuIGEuc2V0RnVsbFllYXIoaSsxLDAsMCksYS5zZXRIb3VycygwLDAsMCwwKSxhfXZhciBJZjEsY1E9YigoKT0+e0FlKCk7SWYxPWxRfSk7ZnVuY3Rpb24gZFEodCxlKXtsZXQgYT1uZSh0KTtpZighejIoYSkpdGhyb3cgbmV3IFJhbmdlRXJyb3IoIkludmFsaWQgdGltZSB2YWx1ZSIpO2xldCBpPWUubWF0Y2goVkN0KTtyZXR1cm4gaT9pLm1hcChzPT57aWYocz09PSInJyIpcmV0dXJuIiciO2xldCBuPXNbMF07aWYobj09PSInIilyZXR1cm4gR0N0KHMpO2xldCBvPU5hW25dO2lmKG8pcmV0dXJuIG8oYSxzKTtpZihuLm1hdGNoKFdDdCkpdGhyb3cgbmV3IFJhbmdlRXJyb3IoIkZvcm1hdCBzdHJpbmcgY29udGFpbnMgYW4gdW5lc2NhcGVkIGxhdGluIGFscGhhYmV0IGNoYXJhY3RlciBgIituKyJgIik7cmV0dXJuIHN9KS5qb2luKCIiKToiIn1mdW5jdGlvbiBHQ3QodCl7bGV0IGU9dC5tYXRjaChqQ3QpO3JldHVybiBlP2VbMV0ucmVwbGFjZShVQ3QsIiciKTp0fXZhciBWQ3QsakN0LFVDdCxXQ3QsQmYxLGhRPWIoKCk9PntwUygpO29zKCk7QWUoKTtWQ3Q9LyhcdylcMSp8Jyd8JygnJ3xbXiddKSsoJ3wkKXwuL2csakN0PS9eJyhbXl0qPyknPyQvLFVDdD0vJycvZyxXQ3Q9L1thLXpBLVpdLztCZjE9ZFF9KTtmdW5jdGlvbiBwUSh7eWVhcnM6dCxtb250aHM6ZSx3ZWVrczphLGRheXM6aSxob3VyczpyLG1pbnV0ZXM6cyxzZWNvbmRzOm59KXtsZXQgbz0wO3QmJihvKz10KjM2NS4yNDI1KSxlJiYobys9ZSooMzY1LjI0MjUvMTIpKSxhJiYobys9YSo3KSxpJiYobys9aSk7bGV0IGQ9byoyNCo2MCo2MDtyZXR1cm4gciYmKGQrPXIqNjAqNjApLHMmJihkKz1zKjYwKSxuJiYoZCs9biksTWF0aC50cnVuYyhkKjFlMyl9dmFyIFZmMSx1UT1iKCgpPT57eXQoKTtWZjE9cFF9KTtmdW5jdGlvbiBmUSh0KXtsZXQgZT10L1BhO3JldHVybiBNYXRoLnRydW5jKGUpfXZhciBXZjEsbVE9YigoKT0+e3l0KCk7V2YxPWZRfSk7ZnVuY3Rpb24gZ1EodCl7bGV0IGU9dC9GMjtyZXR1cm4gTWF0aC50cnVuYyhlKX12YXIgWmYxLGJRPWIoKCk9Pnt5dCgpO1pmMT1nUX0pO2Z1bmN0aW9uIHZRKHQpe2xldCBlPXQvSTQ7cmV0dXJuIE1hdGgudHJ1bmMoZSl9dmFyIFFmMSx5UT1iKCgpPT57eXQoKTtRZjE9dlF9KTtmdW5jdGlvbiB4USh0KXtsZXQgZT10L3o3O3JldHVybiBNYXRoLnRydW5jKGUpfXZhciB0bTEsd1E9YigoKT0+e3l0KCk7dG0xPXhRfSk7ZnVuY3Rpb24gTVEodCl7cmV0dXJuIE1hdGgudHJ1bmModCpGMil9dmFyIHJtMSx6UT1iKCgpPT57eXQoKTtybTE9TVF9KTtmdW5jdGlvbiBrUSh0KXtyZXR1cm4gTWF0aC50cnVuYyh0KkY0KX12YXIgb20xLFNRPWIoKCk9Pnt5dCgpO29tMT1rUX0pO2Z1bmN0aW9uIENRKHQpe2xldCBlPXQvazc7cmV0dXJuIE1hdGgudHJ1bmMoZSl9dmFyIGRtMSxfUT1iKCgpPT57eXQoKTtkbTE9Q1F9KTtmdW5jdGlvbiBUUSh0KXtsZXQgZT10L1M3O3JldHVybiBNYXRoLnRydW5jKGUpfXZhciB1bTEsTFE9YigoKT0+e3l0KCk7dW0xPVRRfSk7ZnVuY3Rpb24gcTIodCxlLGEpe2xldCBpPWUteG4odCxhKTtyZXR1cm4gaTw9MCYmKGkrPTcpLEoxKHQsaSxhKX12YXIgYm0xLGNzPWIoKCk9PnttcigpO1VjKCk7Ym0xPXEyfSk7ZnVuY3Rpb24gJFEodCxlKXtyZXR1cm4gcTIodCw1LGUpfXZhciB4bTEsQVE9YigoKT0+e2NzKCk7eG0xPSRRfSk7ZnVuY3Rpb24gRFEodCxlKXtyZXR1cm4gcTIodCwxLGUpfXZhciB6bTEsRVE9YigoKT0+e2NzKCk7em0xPURRfSk7ZnVuY3Rpb24gUFEodCxlKXtyZXR1cm4gcTIodCw2LGUpfXZhciBDbTEsSVE9YigoKT0+e2NzKCk7Q20xPVBRfSk7ZnVuY3Rpb24gTlEodCxlKXtyZXR1cm4gcTIodCwwLGUpfXZhciBMbTEsRlE9YigoKT0+e2NzKCk7TG0xPU5RfSk7ZnVuY3Rpb24gT1EodCxlKXtyZXR1cm4gcTIodCw0LGUpfXZhciBEbTEsUlE9YigoKT0+e2NzKCk7RG0xPU9RfSk7ZnVuY3Rpb24gQlEodCxlKXtyZXR1cm4gcTIodCwyLGUpfXZhciBJbTEsSFE9YigoKT0+e2NzKCk7SW0xPUJRfSk7ZnVuY3Rpb24gcVEodCxlKXtyZXR1cm4gcTIodCwzLGUpfXZhciBPbTEsVlE9YigoKT0+e2NzKCk7T20xPXFRfSk7ZnVuY3Rpb24gVVEodCxlKXtsZXQgYT0oKT0+TGUoZT8uaW4sTmFOKSxpPWU/LmFkZGl0aW9uYWxEaWdpdHM/PzIscj1LQ3QodCkscztpZihyLmRhdGUpe2xldCBjPVFDdChyLmRhdGUsaSk7cz1KQ3QoYy5yZXN0RGF0ZVN0cmluZyxjLnllYXIpfWlmKCFzfHxpc05hTigrcykpcmV0dXJuIGEoKTtsZXQgbj0rcyxvPTAsZDtpZihyLnRpbWUmJihvPWVfdChyLnRpbWUpLGlzTmFOKG8pKSlyZXR1cm4gYSgpO2lmKHIudGltZXpvbmUpe2lmKGQ9dF90KHIudGltZXpvbmUpLGlzTmFOKGQpKXJldHVybiBhKCl9ZWxzZXtsZXQgYz1uZXcgRGF0ZShuK28pLGg9bmUoMCxlPy5pbik7cmV0dXJuIGguc2V0RnVsbFllYXIoYy5nZXRVVENGdWxsWWVhcigpLGMuZ2V0VVRDTW9udGgoKSxjLmdldFVUQ0RhdGUoKSksaC5zZXRIb3VycyhjLmdldFVUQ0hvdXJzKCksYy5nZXRVVENNaW51dGVzKCksYy5nZXRVVENTZWNvbmRzKCksYy5nZXRVVENNaWxsaXNlY29uZHMoKSksaH1yZXR1cm4gbmUobitvK2QsZT8uaW4pfWZ1bmN0aW9uIEtDdCh0KXtsZXQgZT17fSxhPXQuc3BsaXQoeXAuZGF0ZVRpbWVEZWxpbWl0ZXIpLGk7aWYoYS5sZW5ndGg+MilyZXR1cm4gZTtpZigvOi8udGVzdChhWzBdKT9pPWFbMF06KGUuZGF0ZT1hWzBdLGk9YVsxXSx5cC50aW1lWm9uZURlbGltaXRlci50ZXN0KGUuZGF0ZSkmJihlLmRhdGU9dC5zcGxpdCh5cC50aW1lWm9uZURlbGltaXRlcilbMF0saT10LnN1YnN0cihlLmRhdGUubGVuZ3RoLHQubGVuZ3RoKSkpLGkpe2xldCByPXlwLnRpbWV6b25lLmV4ZWMoaSk7cj8oZS50aW1lPWkucmVwbGFjZShyWzFdLCIiKSxlLnRpbWV6b25lPXJbMV0pOmUudGltZT1pfXJldHVybiBlfWZ1bmN0aW9uIFFDdCh0LGUpe2xldCBhPW5ldyBSZWdFeHAoIl4oPzooXFxkezR9fFsrLV1cXGR7IisoNCtlKSsifSl8KFxcZHsyfXxbKy1dXFxkeyIrKDIrZSkrIn0pJCkiKSxpPXQubWF0Y2goYSk7aWYoIWkpcmV0dXJue3llYXI6TmFOLHJlc3REYXRlU3RyaW5nOiIifTtsZXQgcj1pWzFdP3BhcnNlSW50KGlbMV0pOm51bGwscz1pWzJdP3BhcnNlSW50KGlbMl0pOm51bGw7cmV0dXJue3llYXI6cz09PW51bGw/cjpzKjEwMCxyZXN0RGF0ZVN0cmluZzp0LnNsaWNlKChpWzFdfHxpWzJdKS5sZW5ndGgpfX1mdW5jdGlvbiBKQ3QodCxlKXtpZihlPT09bnVsbClyZXR1cm4gbmV3IERhdGUoTmFOKTtsZXQgYT10Lm1hdGNoKFlDdCk7aWYoIWEpcmV0dXJuIG5ldyBEYXRlKE5hTik7bGV0IGk9ISFhWzRdLHI9S2MoYVsxXSkscz1LYyhhWzJdKS0xLG49S2MoYVszXSksbz1LYyhhWzRdKSxkPUtjKGFbNV0pLTE7aWYoaSlyZXR1cm4gbl90KGUsbyxkKT9hX3QoZSxvLGQpOm5ldyBEYXRlKE5hTik7e2xldCBjPW5ldyBEYXRlKDApO3JldHVybiFyX3QoZSxzLG4pfHwhc190KGUscik/bmV3IERhdGUoTmFOKTooYy5zZXRVVENGdWxsWWVhcihlLHMsTWF0aC5tYXgocixuKSksYyl9fWZ1bmN0aW9uIEtjKHQpe3JldHVybiB0P3BhcnNlSW50KHQpOjF9ZnVuY3Rpb24gZV90KHQpe2xldCBlPXQubWF0Y2goWkN0KTtpZighZSlyZXR1cm4gTmFOO2xldCBhPUhTKGVbMV0pLGk9SFMoZVsyXSkscj1IUyhlWzNdKTtyZXR1cm4gb190KGEsaSxyKT9hKlBhK2kqRjIrcioxZTM6TmFOfWZ1bmN0aW9uIEhTKHQpe3JldHVybiB0JiZwYXJzZUZsb2F0KHQucmVwbGFjZSgiLCIsIi4iKSl8fDB9ZnVuY3Rpb24gdF90KHQpe2lmKHQ9PT0iWiIpcmV0dXJuIDA7bGV0IGU9dC5tYXRjaChYQ3QpO2lmKCFlKXJldHVybiAwO2xldCBhPWVbMV09PT0iKyI/LTE6MSxpPXBhcnNlSW50KGVbMl0pLHI9ZVszXSYmcGFyc2VJbnQoZVszXSl8fDA7cmV0dXJuIGxfdChpLHIpP2EqKGkqUGErcipGMik6TmFOfWZ1bmN0aW9uIGFfdCh0LGUsYSl7bGV0IGk9bmV3IERhdGUoMCk7aS5zZXRVVENGdWxsWWVhcih0LDAsNCk7bGV0IHI9aS5nZXRVVENEYXkoKXx8NyxzPShlLTEpKjcrYSsxLXI7cmV0dXJuIGkuc2V0VVRDRGF0ZShpLmdldFVUQ0RhdGUoKStzKSxpfWZ1bmN0aW9uIGpRKHQpe3JldHVybiB0JTQwMD09PTB8fHQlND09PTAmJnQlMTAwIT09MH1mdW5jdGlvbiByX3QodCxlLGEpe3JldHVybiBlPj0wJiZlPD0xMSYmYT49MSYmYTw9KGlfdFtlXXx8KGpRKHQpPzI5OjI4KSl9ZnVuY3Rpb24gc190KHQsZSl7cmV0dXJuIGU+PTEmJmU8PShqUSh0KT8zNjY6MzY1KX1mdW5jdGlvbiBuX3QodCxlLGEpe3JldHVybiBlPj0xJiZlPD01MyYmYT49MCYmYTw9Nn1mdW5jdGlvbiBvX3QodCxlLGEpe3JldHVybiB0PT09MjQ/ZT09PTAmJmE9PT0wOmE+PTAmJmE8NjAmJmU+PTAmJmU8NjAmJnQ+PTAmJnQ8MjV9ZnVuY3Rpb24gbF90KHQsZSl7cmV0dXJuIGU+PTAmJmU8PTU5fXZhciB5cCxZQ3QsWkN0LFhDdCxpX3QsVm0xLFdRPWIoKCk9Pnt5dCgpO2F0KCk7QWUoKTt5cD17ZGF0ZVRpbWVEZWxpbWl0ZXI6L1tUIF0vLHRpbWVab25lRGVsaW1pdGVyOi9bWiBdL2ksdGltZXpvbmU6LyhbWistXS4qKSQvfSxZQ3Q9L14tPyg/OihcZHszfSl8KFxkezJ9KSg/Oi0/KFxkezJ9KSk/fFcoXGR7Mn0pKD86LT8oXGR7MX0pKT98KSQvLFpDdD0vXihcZHsyfSg/OlsuLF1cZCopPykoPzo6PyhcZHsyfSg/OlsuLF1cZCopPykpPyg/Ojo/KFxkezJ9KD86Wy4sXVxkKik/KSk/JC8sWEN0PS9eKFsrLV0pKFxkezJ9KSg/Ojo/KFxkezJ9KSk/JC87aV90PVszMSxudWxsLDMxLDMwLDMxLDMwLDMxLDMxLDMwLDMxLDMwLDMxXTtWbTE9VVF9KTtmdW5jdGlvbiBHUSh0LGUpe2xldCBhPXQubWF0Y2goLyhcZHs0fSktKFxkezJ9KS0oXGR7Mn0pW1QgXShcZHsyfSk6KFxkezJ9KTooXGR7Mn0pKD86XC4oXGR7MCw3fSkpPyg/Olp8KC4pKFxkezJ9KTo/KFxkezJ9KT8pPy8pO3JldHVybiBhP25lKERhdGUuVVRDKCthWzFdLCthWzJdLTEsK2FbM10sK2FbNF0tKCthWzldfHwwKSooYVs4XT09Ii0iPy0xOjEpLCthWzVdLSgrYVsxMF18fDApKihhWzhdPT0iLSI/LTE6MSksK2FbNl0sKygoYVs3XXx8IjAiKSsiMDAiKS5zdWJzdHJpbmcoMCwzKSksZT8uaW4pOm5lKE5hTixlPy5pbil9dmFyIFdtMSxZUT1iKCgpPT57QWUoKTtXbTE9R1F9KTtmdW5jdGlvbiBWMih0LGUsYSl7bGV0IGk9eG4odCxhKS1lO3JldHVybiBpPD0wJiYoaSs9NyksTW4odCxpLGEpfXZhciBYbTEsZHM9YigoKT0+e1VjKCk7WGMoKTtYbTE9VjJ9KTtmdW5jdGlvbiBaUSh0LGUpe3JldHVybiBWMih0LDUsZSl9dmFyIEptMSxYUT1iKCgpPT57ZHMoKTtKbTE9WlF9KTtmdW5jdGlvbiBLUSh0LGUpe3JldHVybiBWMih0LDEsZSl9dmFyIGFnMSxRUT1iKCgpPT57ZHMoKTthZzE9S1F9KTtmdW5jdGlvbiBKUSh0LGUpe3JldHVybiBWMih0LDYsZSl9dmFyIHNnMSxlSj1iKCgpPT57ZHMoKTtzZzE9SlF9KTtmdW5jdGlvbiB0Sih0LGUpe3JldHVybiBWMih0LDAsZSl9dmFyIGxnMSxhSj1iKCgpPT57ZHMoKTtsZzE9dEp9KTtmdW5jdGlvbiBpSih0LGUpe3JldHVybiBWMih0LDQsZSl9dmFyIGhnMSxySj1iKCgpPT57ZHMoKTtoZzE9aUp9KTtmdW5jdGlvbiBzSih0LGUpe3JldHVybiBWMih0LDIsZSl9dmFyIGZnMSxuSj1iKCgpPT57ZHMoKTtmZzE9c0p9KTtmdW5jdGlvbiBvSih0LGUpe3JldHVybiBWMih0LDMsZSl9dmFyIGJnMSxsSj1iKCgpPT57ZHMoKTtiZzE9b0p9KTtmdW5jdGlvbiBjSih0KXtyZXR1cm4gTWF0aC50cnVuYyh0Kms3KX12YXIgeGcxLGRKPWIoKCk9Pnt5dCgpO3hnMT1jSn0pO2Z1bmN0aW9uIGhKKHQpe2xldCBlPXQvQzc7cmV0dXJuIE1hdGgudHJ1bmMoZSl9dmFyIHpnMSxwSj1iKCgpPT57eXQoKTt6ZzE9aEp9KTtmdW5jdGlvbiB1Sih0LGUpe2xldCBhPWU/Lm5lYXJlc3RUbz8/MTtpZihhPDF8fGE+MTIpcmV0dXJuIExlKGU/LmlufHx0LE5hTik7bGV0IGk9bmUodCxlPy5pbikscj1pLmdldE1pbnV0ZXMoKS82MCxzPWkuZ2V0U2Vjb25kcygpLzYwLzYwLG49aS5nZXRNaWxsaXNlY29uZHMoKS8xZTMvNjAvNjAsbz1pLmdldEhvdXJzKCkrcitzK24sZD1lPy5yb3VuZGluZ01ldGhvZD8/InJvdW5kIixoPUIyKGQpKG8vYSkqYTtyZXR1cm4gaS5zZXRIb3VycyhoLDAsMCwwKSxpfXZhciBUZzEsZko9YigoKT0+e2xzKCk7YXQoKTtBZSgpO1RnMT11Sn0pO2Z1bmN0aW9uIG1KKHQsZSl7bGV0IGE9ZT8ubmVhcmVzdFRvPz8xO2lmKGE8MXx8YT4zMClyZXR1cm4gTGUodCxOYU4pO2xldCBpPW5lKHQsZT8uaW4pLHI9aS5nZXRTZWNvbmRzKCkvNjAscz1pLmdldE1pbGxpc2Vjb25kcygpLzFlMy82MCxuPWkuZ2V0TWludXRlcygpK3IrcyxvPWU/LnJvdW5kaW5nTWV0aG9kPz8icm91bmQiLGM9QjIobykobi9hKSphO3JldHVybiBpLnNldE1pbnV0ZXMoYywwLDApLGl9dmFyIEVnMSxnSj1iKCgpPT57bHMoKTthdCgpO0FlKCk7RWcxPW1KfSk7ZnVuY3Rpb24gYkoodCl7bGV0IGU9dC9IbztyZXR1cm4gTWF0aC50cnVuYyhlKX12YXIgTmcxLHZKPWIoKCk9Pnt5dCgpO05nMT1iSn0pO2Z1bmN0aW9uIHlKKHQpe3JldHVybiB0Kkk0fXZhciBSZzEseEo9YigoKT0+e3l0KCk7UmcxPXlKfSk7ZnVuY3Rpb24gd0oodCl7bGV0IGU9dC9GNDtyZXR1cm4gTWF0aC50cnVuYyhlKX12YXIgcWcxLE1KPWIoKCk9Pnt5dCgpO3FnMT13Sn0pO2Z1bmN0aW9uIHIzKHQsZSxhKXtsZXQgaT1uZSh0LGE/LmluKSxyPWkuZ2V0RnVsbFllYXIoKSxzPWkuZ2V0RGF0ZSgpLG49TGUoYT8uaW58fHQsMCk7bi5zZXRGdWxsWWVhcihyLGUsMTUpLG4uc2V0SG91cnMoMCwwLDAsMCk7bGV0IG89Z2gobik7cmV0dXJuIGkuc2V0TW9udGgoZSxNYXRoLm1pbihzLG8pKSxpfXZhciBHZzEseHA9YigoKT0+e2F0KCk7eVMoKTtBZSgpO0dnMT1yM30pO2Z1bmN0aW9uIHpKKHQsZSxhKXtsZXQgaT1uZSh0LGE/LmluKTtyZXR1cm4gaXNOYU4oK2kpP0xlKGE/LmlufHx0LE5hTik6KGUueWVhciE9bnVsbCYmaS5zZXRGdWxsWWVhcihlLnllYXIpLGUubW9udGghPW51bGwmJihpPXIzKGksZS5tb250aCkpLGUuZGF0ZSE9bnVsbCYmaS5zZXREYXRlKGUuZGF0ZSksZS5ob3VycyE9bnVsbCYmaS5zZXRIb3VycyhlLmhvdXJzKSxlLm1pbnV0ZXMhPW51bGwmJmkuc2V0TWludXRlcyhlLm1pbnV0ZXMpLGUuc2Vjb25kcyE9bnVsbCYmaS5zZXRTZWNvbmRzKGUuc2Vjb25kcyksZS5taWxsaXNlY29uZHMhPW51bGwmJmkuc2V0TWlsbGlzZWNvbmRzKGUubWlsbGlzZWNvbmRzKSxpKX12YXIgUWcxLGtKPWIoKCk9PnthdCgpO3hwKCk7QWUoKTtRZzE9ekp9KTtmdW5jdGlvbiBTSih0LGUsYSl7bGV0IGk9bmUodCxhPy5pbik7cmV0dXJuIGkuc2V0RGF0ZShlKSxpfXZhciB0YjEsQ0o9YigoKT0+e0FlKCk7dGIxPVNKfSk7ZnVuY3Rpb24gX0oodCxlLGEpe2xldCBpPW5lKHQsYT8uaW4pO3JldHVybiBpLnNldE1vbnRoKDApLGkuc2V0RGF0ZShlKSxpfXZhciByYjEsVEo9YigoKT0+e0FlKCk7cmIxPV9KfSk7ZnVuY3Rpb24gTEoodCl7bGV0IGU9e30sYT1LdCgpO2ZvcihsZXQgaSBpbiBhKU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChhLGkpJiYoZVtpXT1hW2ldKTtmb3IobGV0IGkgaW4gdClPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwodCxpKSYmKHRbaV09PT12b2lkIDA/ZGVsZXRlIGVbaV06ZVtpXT10W2ldKTtVRyhlKX12YXIgb2IxLCRKPWIoKCk9PntPMigpO29iMT1MSn0pO2Z1bmN0aW9uIEFKKHQsZSxhKXtsZXQgaT1uZSh0LGE/LmluKTtyZXR1cm4gaS5zZXRIb3VycyhlKSxpfXZhciBkYjEsREo9YigoKT0+e0FlKCk7ZGIxPUFKfSk7ZnVuY3Rpb24gRUoodCxlLGEpe2xldCBpPW5lKHQsYT8uaW4pO3JldHVybiBpLnNldE1pbGxpc2Vjb25kcyhlKSxpfXZhciB1YjEsUEo9YigoKT0+e0FlKCk7dWIxPUVKfSk7ZnVuY3Rpb24gSUoodCxlLGEpe2xldCBpPW5lKHQsYT8uaW4pO3JldHVybiBpLnNldE1pbnV0ZXMoZSksaX12YXIgZ2IxLE5KPWIoKCk9PntBZSgpO2diMT1JSn0pO2Z1bmN0aW9uIEZKKHQsZSxhKXtsZXQgaT1uZSh0LGE/LmluKSxyPU1hdGgudHJ1bmMoaS5nZXRNb250aCgpLzMpKzEscz1lLXI7cmV0dXJuIHIzKGksaS5nZXRNb250aCgpK3MqMyl9dmFyIHhiMSxPSj1iKCgpPT57eHAoKTtBZSgpO3hiMT1GSn0pO2Z1bmN0aW9uIFJKKHQsZSxhKXtsZXQgaT1uZSh0LGE/LmluKTtyZXR1cm4gaS5zZXRTZWNvbmRzKGUpLGl9dmFyIHpiMSxCSj1iKCgpPT57QWUoKTt6YjE9Ukp9KTtmdW5jdGlvbiBISih0LGUsYSl7bGV0IGk9S3QoKSxyPWE/LmZpcnN0V2Vla0NvbnRhaW5zRGF0ZT8/YT8ubG9jYWxlPy5vcHRpb25zPy5maXJzdFdlZWtDb250YWluc0RhdGU/P2kuZmlyc3RXZWVrQ29udGFpbnNEYXRlPz9pLmxvY2FsZT8ub3B0aW9ucz8uZmlyc3RXZWVrQ29udGFpbnNEYXRlPz8xLHM9aDIobmUodCxhPy5pbiksWW8odCxhKSxhKSxuPUxlKGE/LmlufHx0LDApO24uc2V0RnVsbFllYXIoZSwwLHIpLG4uc2V0SG91cnMoMCwwLDAsMCk7bGV0IG89WW8obixhKTtyZXR1cm4gby5zZXREYXRlKG8uZ2V0RGF0ZSgpK3MpLG99dmFyICRiMSxxSj1iKCgpPT57TzIoKTthdCgpO25zKCk7Y2goKTtBZSgpOyRiMT1ISn0pO2Z1bmN0aW9uIFZKKHQsZSxhKXtsZXQgaT1uZSh0LGE/LmluKTtyZXR1cm4gaXNOYU4oK2kpP0xlKGE/LmlufHx0LE5hTik6KGkuc2V0RnVsbFllYXIoZSksaSl9dmFyIFBiMSxqSj1iKCgpPT57YXQoKTtBZSgpO1BiMT1WSn0pO2Z1bmN0aW9uIFVKKHQsZSl7bGV0IGE9bmUodCxlPy5pbiksaT1hLmdldEZ1bGxZZWFyKCkscj1NYXRoLmZsb29yKGkvMTApKjEwO3JldHVybiBhLnNldEZ1bGxZZWFyKHIsMCwxKSxhLnNldEhvdXJzKDAsMCwwLDApLGF9dmFyIEZiMSxXSj1iKCgpPT57QWUoKTtGYjE9VUp9KTtmdW5jdGlvbiBHSih0KXtyZXR1cm4geXIoRGF0ZS5ub3coKSx0KX12YXIgQmIxLFlKPWIoKCk9PntJYygpO0JiMT1HSn0pO2Z1bmN0aW9uIFpKKHQpe2xldCBlPUN0KHQ/LmluKSxhPWUuZ2V0RnVsbFllYXIoKSxpPWUuZ2V0TW9udGgoKSxyPWUuZ2V0RGF0ZSgpLHM9TGUodD8uaW4sMCk7cmV0dXJuIHMuc2V0RnVsbFllYXIoYSxpLHIrMSkscy5zZXRIb3VycygwLDAsMCwwKSxzfXZhciBqYjEsWEo9YigoKT0+e2F0KCk7ZTIoKTtqYjE9Wkp9KTtmdW5jdGlvbiBLSih0KXtsZXQgZT1DdCh0Py5pbiksYT1lLmdldEZ1bGxZZWFyKCksaT1lLmdldE1vbnRoKCkscj1lLmdldERhdGUoKSxzPUN0KHQ/LmluKTtyZXR1cm4gcy5zZXRGdWxsWWVhcihhLGksci0xKSxzLnNldEhvdXJzKDAsMCwwLDApLHN9dmFyIEdiMSxRSj1iKCgpPT57ZTIoKTtHYjE9S0p9KTtmdW5jdGlvbiB3cCh0LGUsYSl7cmV0dXJuIGdyKHQsLWUsYSl9dmFyIFhiMSxxUz1iKCgpPT57TzQoKTtYYjE9d3B9KTtmdW5jdGlvbiBKSih0LGUsYSl7bGV0e3llYXJzOmk9MCxtb250aHM6cj0wLHdlZWtzOnM9MCxkYXlzOm49MCxob3VyczpvPTAsbWludXRlczpkPTAsc2Vjb25kczpjPTB9PWUsaD13cCh0LHIraSoxMixhKSxsPU1uKGgsbitzKjcsYSksZj1kK28qNjAseT0oYytmKjYwKSoxZTM7cmV0dXJuIExlKGE/LmlufHx0LCtsLXkpfXZhciB0djEsZWVlPWIoKCk9PnthdCgpO1hjKCk7cVMoKTt0djE9Skp9KTtmdW5jdGlvbiB0ZWUodCxlLGEpe3JldHVybiBMNyh0LC1lLGEpfXZhciBydjEsYWVlPWIoKCk9PntXaygpO3J2MT10ZWV9KTtmdW5jdGlvbiBpZWUodCxlLGEpe3JldHVybiAkNyh0LC1lLGEpfXZhciBvdjEscmVlPWIoKCk9PntHaygpO292MT1pZWV9KTtmdW5jdGlvbiBzZWUodCxlLGEpe3JldHVybiBwbih0LC1lLGEpfXZhciBkdjEsbmVlPWIoKCk9PntQYygpO2R2MT1zZWV9KTtmdW5jdGlvbiBvZWUodCxlLGEpe3JldHVybiBCNCh0LC1lLGEpfXZhciB1djEsbGVlPWIoKCk9PntFNygpO3V2MT1vZWV9KTtmdW5jdGlvbiBjZWUodCxlLGEpe3JldHVybiBINCh0LC1lLGEpfXZhciBndjEsZGVlPWIoKCk9PntQNygpO2d2MT1jZWV9KTtmdW5jdGlvbiBoZWUodCxlLGEpe3JldHVybiBJNyh0LC1lLGEpfXZhciB5djEscGVlPWIoKCk9PntYaygpO3l2MT1oZWV9KTtmdW5jdGlvbiB1ZWUodCxlLGEpe3JldHVybiBmbih0LC1lLGEpfXZhciBNdjEsZmVlPWIoKCk9PntOYygpO012MT11ZWV9KTtmdW5jdGlvbiBtZWUodCxlLGEpe3JldHVybiBONyh0LC1lLGEpfXZhciBTdjEsZ2VlPWIoKCk9PntLaygpO1N2MT1tZWV9KTtmdW5jdGlvbiBiZWUodCl7cmV0dXJuIE1hdGgudHJ1bmModCo3KX12YXIgVHYxLHZlZT1iKCgpPT57eXQoKTtUdjE9YmVlfSk7ZnVuY3Rpb24geWVlKHQpe3JldHVybiBNYXRoLnRydW5jKHQqMzY1LjI0MjUpfXZhciBBdjEseGVlPWIoKCk9Pnt5dCgpO0F2MT15ZWV9KTtmdW5jdGlvbiB3ZWUodCl7cmV0dXJuIE1hdGgudHJ1bmModCpTNyl9dmFyIFB2MSxNZWU9YigoKT0+e3l0KCk7UHYxPXdlZX0pO2Z1bmN0aW9uIHplZSh0KXtyZXR1cm4gTWF0aC50cnVuYyh0KkM3KX12YXIgRnYxLGtlZT1iKCgpPT57eXQoKTtGdjE9emVlfSk7dmFyIFFjPXt9O0dlKFFjLHthZGQ6KCk9PmhuLGFkZEJ1c2luZXNzRGF5czooKT0+TDcsYWRkRGF5czooKT0+SjEsYWRkSG91cnM6KCk9PiQ3LGFkZElTT1dlZWtZZWFyczooKT0+RDcsYWRkTWlsbGlzZWNvbmRzOigpPT5wbixhZGRNaW51dGVzOigpPT5CNCxhZGRNb250aHM6KCk9PmdyLGFkZFF1YXJ0ZXJzOigpPT5INCxhZGRTZWNvbmRzOigpPT5JNyxhZGRXZWVrczooKT0+Zm4sYWRkWWVhcnM6KCk9Pk43LGFyZUludGVydmFsc092ZXJsYXBwaW5nOigpPT5XRyxjbGFtcDooKT0+WUcsY2xvc2VzdEluZGV4VG86KCk9PlI3LGNsb3Nlc3RUbzooKT0+WEcsY29tcGFyZUFzYzooKT0+UjIsY29tcGFyZURlc2M6KCk9PlFHLGNvbnN0cnVjdEZyb206KCk9PkxlLGNvbnN0cnVjdE5vdzooKT0+Q3QsZGF5c1RvV2Vla3M6KCk9PmVZLGRpZmZlcmVuY2VJbkJ1c2luZXNzRGF5czooKT0+YVksZGlmZmVyZW5jZUluQ2FsZW5kYXJEYXlzOigpPT5oMixkaWZmZXJlbmNlSW5DYWxlbmRhcklTT1dlZWtZZWFyczooKT0+SDcsZGlmZmVyZW5jZUluQ2FsZW5kYXJJU09XZWVrczooKT0+clksZGlmZmVyZW5jZUluQ2FsZW5kYXJNb250aHM6KCk9PlZvLGRpZmZlcmVuY2VJbkNhbGVuZGFyUXVhcnRlcnM6KCk9PlY0LGRpZmZlcmVuY2VJbkNhbGVuZGFyV2Vla3M6KCk9PmpvLGRpZmZlcmVuY2VJbkNhbGVuZGFyWWVhcnM6KCk9Pm1uLGRpZmZlcmVuY2VJbkRheXM6KCk9Pmo0LGRpZmZlcmVuY2VJbkhvdXJzOigpPT5VbyxkaWZmZXJlbmNlSW5JU09XZWVrWWVhcnM6KCk9Pm9ZLGRpZmZlcmVuY2VJbk1pbGxpc2Vjb25kczooKT0+VTQsZGlmZmVyZW5jZUluTWludXRlczooKT0+V28sZGlmZmVyZW5jZUluTW9udGhzOigpPT5nbixkaWZmZXJlbmNlSW5RdWFydGVyczooKT0+Y1ksZGlmZmVyZW5jZUluU2Vjb25kczooKT0+d3IsZGlmZmVyZW5jZUluV2Vla3M6KCk9PmhZLGRpZmZlcmVuY2VJblllYXJzOigpPT5KNyxlYWNoRGF5T2ZJbnRlcnZhbDooKT0+ZWgsZWFjaEhvdXJPZkludGVydmFsOigpPT51WSxlYWNoTWludXRlT2ZJbnRlcnZhbDooKT0+bVksZWFjaE1vbnRoT2ZJbnRlcnZhbDooKT0+YlksZWFjaFF1YXJ0ZXJPZkludGVydmFsOigpPT55WSxlYWNoV2Vla09mSW50ZXJ2YWw6KCk9PndZLGVhY2hXZWVrZW5kT2ZJbnRlcnZhbDooKT0+WTQsZWFjaFdlZWtlbmRPZk1vbnRoOigpPT56WSxlYWNoV2Vla2VuZE9mWWVhcjooKT0+U1ksZWFjaFllYXJPZkludGVydmFsOigpPT5fWSxlbmRPZkRheTooKT0+VzQsZW5kT2ZEZWNhZGU6KCk9PkxZLGVuZE9mSG91cjooKT0+QVksZW5kT2ZJU09XZWVrOigpPT5FWSxlbmRPZklTT1dlZWtZZWFyOigpPT5JWSxlbmRPZk1pbnV0ZTooKT0+RlksZW5kT2ZNb250aDooKT0+RzQsZW5kT2ZRdWFydGVyOigpPT5SWSxlbmRPZlNlY29uZDooKT0+SFksZW5kT2ZUb2RheTooKT0+VlksZW5kT2ZUb21vcnJvdzooKT0+VVksZW5kT2ZXZWVrOigpPT5zaCxlbmRPZlllYXI6KCk9PmloLGVuZE9mWWVzdGVyZGF5OigpPT5HWSxmb3JtYXQ6KCk9PmpjLGZvcm1hdERhdGU6KCk9PmpjLGZvcm1hdERpc3RhbmNlOigpPT51aCxmb3JtYXREaXN0YW5jZVN0cmljdDooKT0+ZmgsZm9ybWF0RGlzdGFuY2VUb05vdzooKT0+Z1osZm9ybWF0RGlzdGFuY2VUb05vd1N0cmljdDooKT0+dlosZm9ybWF0RHVyYXRpb246KCk9PnhaLGZvcm1hdElTTzooKT0+TVosZm9ybWF0SVNPOTA3NTooKT0+a1osZm9ybWF0SVNPRHVyYXRpb246KCk9PkNaLGZvcm1hdFJGQzMzMzk6KCk9PlRaLGZvcm1hdFJGQzcyMzE6KCk9PiRaLGZvcm1hdFJlbGF0aXZlOigpPT5EWixmb3JtYXR0ZXJzOigpPT5xYyxmcm9tVW5peFRpbWU6KCk9PlBaLGdldERhdGU6KCk9Pm1oLGdldERheTooKT0+eG4sZ2V0RGF5T2ZZZWFyOigpPT5vaCxnZXREYXlzSW5Nb250aDooKT0+Z2gsZ2V0RGF5c0luWWVhcjooKT0+TlosZ2V0RGVjYWRlOigpPT5PWixnZXREZWZhdWx0T3B0aW9uczooKT0+dmgsZ2V0SG91cnM6KCk9PkJaLGdldElTT0RheTooKT0+eWgsZ2V0SVNPV2VlazooKT0+UTQsZ2V0SVNPV2Vla1llYXI6KCk9Pm5hLGdldElTT1dlZWtzSW5ZZWFyOigpPT5xWixnZXRNaWxsaXNlY29uZHM6KCk9PmpaLGdldE1pbnV0ZXM6KCk9PldaLGdldE1vbnRoOigpPT5ZWixnZXRPdmVybGFwcGluZ0RheXNJbkludGVydmFsczooKT0+WFosZ2V0UXVhcnRlcjooKT0+RmMsZ2V0U2Vjb25kczooKT0+UVosZ2V0VGltZTooKT0+ZVgsZ2V0VW5peFRpbWU6KCk9PmFYLGdldFdlZWs6KCk9Pko0LGdldFdlZWtPZk1vbnRoOigpPT5yWCxnZXRXZWVrWWVhcjooKT0+dm4sZ2V0V2Vla3NJbk1vbnRoOigpPT5uWCxnZXRZZWFyOigpPT5sWCxob3Vyc1RvTWlsbGlzZWNvbmRzOigpPT5kWCxob3Vyc1RvTWludXRlczooKT0+cFgsaG91cnNUb1NlY29uZHM6KCk9PmZYLGludGVydmFsOigpPT5nWCxpbnRlcnZhbFRvRHVyYXRpb246KCk9PnZYLGludGxGb3JtYXQ6KCk9PnhYLGludGxGb3JtYXREaXN0YW5jZTooKT0+TVgsaXNBZnRlcjooKT0+a1gsaXNCZWZvcmU6KCk9PkNYLGlzRGF0ZTooKT0+QjcsaXNFcXVhbDooKT0+VFgsaXNFeGlzdHM6KCk9PiRYLGlzRmlyc3REYXlPZk1vbnRoOigpPT5EWCxpc0ZyaWRheTooKT0+UFgsaXNGdXR1cmU6KCk9Pk5YLGlzTGFzdERheU9mTW9udGg6KCk9PlE3LGlzTGVhcFllYXI6KCk9PmJoLGlzTWF0Y2g6KCk9PmdLLGlzTW9uZGF5OigpPT52Syxpc1Bhc3Q6KCk9PnhLLGlzU2FtZURheTooKT0+eHIsaXNTYW1lSG91cjooKT0+ZHAsaXNTYW1lSVNPV2VlazooKT0+cHAsaXNTYW1lSVNPV2Vla1llYXI6KCk9Pk1LLGlzU2FtZU1pbnV0ZTooKT0+dXAsaXNTYW1lTW9udGg6KCk9PmZwLGlzU2FtZVF1YXJ0ZXI6KCk9Pm1wLGlzU2FtZVNlY29uZDooKT0+Z3AsaXNTYW1lV2VlazooKT0+aTMsaXNTYW1lWWVhcjooKT0+YnAsaXNTYXR1cmRheTooKT0+XzcsaXNTdW5kYXk6KCk9PlQ3LGlzVGhpc0hvdXI6KCk9PmtLLGlzVGhpc0lTT1dlZWs6KCk9PkNLLGlzVGhpc01pbnV0ZTooKT0+VEssaXNUaGlzTW9udGg6KCk9PiRLLGlzVGhpc1F1YXJ0ZXI6KCk9PkRLLGlzVGhpc1NlY29uZDooKT0+UEssaXNUaGlzV2VlazooKT0+TkssaXNUaGlzWWVhcjooKT0+T0ssaXNUaHVyc2RheTooKT0+QkssaXNUb2RheTooKT0+cUssaXNUb21vcnJvdzooKT0+akssaXNUdWVzZGF5OigpPT5XSyxpc1ZhbGlkOigpPT56Mixpc1dlZG5lc2RheTooKT0+WUssaXNXZWVrZW5kOigpPT5icixpc1dpdGhpbkludGVydmFsOigpPT5YSyxpc1llc3RlcmRheTooKT0+UUssbGFzdERheU9mRGVjYWRlOigpPT5lUSxsYXN0RGF5T2ZJU09XZWVrOigpPT5hUSxsYXN0RGF5T2ZJU09XZWVrWWVhcjooKT0+clEsbGFzdERheU9mTW9udGg6KCk9PnhoLGxhc3REYXlPZlF1YXJ0ZXI6KCk9Pm5RLGxhc3REYXlPZldlZWs6KCk9PnZwLGxhc3REYXlPZlllYXI6KCk9PmxRLGxpZ2h0Rm9ybWF0OigpPT5kUSxsaWdodEZvcm1hdHRlcnM6KCk9Pk5hLGxvbmdGb3JtYXR0ZXJzOigpPT55bixtYXg6KCk9PkY3LG1pbGxpc2Vjb25kczooKT0+cFEsbWlsbGlzZWNvbmRzVG9Ib3VyczooKT0+ZlEsbWlsbGlzZWNvbmRzVG9NaW51dGVzOigpPT5nUSxtaWxsaXNlY29uZHNUb1NlY29uZHM6KCk9PnZRLG1pbjooKT0+TzcsbWludXRlc1RvSG91cnM6KCk9PnhRLG1pbnV0ZXNUb01pbGxpc2Vjb25kczooKT0+TVEsbWludXRlc1RvU2Vjb25kczooKT0+a1EsbW9udGhzVG9RdWFydGVyczooKT0+Q1EsbW9udGhzVG9ZZWFyczooKT0+VFEsbmV4dERheTooKT0+cTIsbmV4dEZyaWRheTooKT0+JFEsbmV4dE1vbmRheTooKT0+RFEsbmV4dFNhdHVyZGF5OigpPT5QUSxuZXh0U3VuZGF5OigpPT5OUSxuZXh0VGh1cnNkYXk6KCk9Pk9RLG5leHRUdWVzZGF5OigpPT5CUSxuZXh0V2VkbmVzZGF5OigpPT5xUSxwYXJzZTooKT0+Y3AscGFyc2VJU086KCk9PlVRLHBhcnNlSlNPTjooKT0+R1EscGFyc2VyczooKT0+bHAscHJldmlvdXNEYXk6KCk9PlYyLHByZXZpb3VzRnJpZGF5OigpPT5aUSxwcmV2aW91c01vbmRheTooKT0+S1EscHJldmlvdXNTYXR1cmRheTooKT0+SlEscHJldmlvdXNTdW5kYXk6KCk9PnRKLHByZXZpb3VzVGh1cnNkYXk6KCk9PmlKLHByZXZpb3VzVHVlc2RheTooKT0+c0oscHJldmlvdXNXZWRuZXNkYXk6KCk9Pm9KLHF1YXJ0ZXJzVG9Nb250aHM6KCk9PmNKLHF1YXJ0ZXJzVG9ZZWFyczooKT0+aEoscm91bmRUb05lYXJlc3RIb3VyczooKT0+dUoscm91bmRUb05lYXJlc3RNaW51dGVzOigpPT5tSixzZWNvbmRzVG9Ib3VyczooKT0+Ykosc2Vjb25kc1RvTWlsbGlzZWNvbmRzOigpPT55SixzZWNvbmRzVG9NaW51dGVzOigpPT53SixzZXQ6KCk9PnpKLHNldERhdGU6KCk9PlNKLHNldERheTooKT0+d24sc2V0RGF5T2ZZZWFyOigpPT5fSixzZXREZWZhdWx0T3B0aW9uczooKT0+TEosc2V0SG91cnM6KCk9PkFKLHNldElTT0RheTooKT0+V2gsc2V0SVNPV2VlazooKT0+Umgsc2V0SVNPV2Vla1llYXI6KCk9PkE3LHNldE1pbGxpc2Vjb25kczooKT0+RUosc2V0TWludXRlczooKT0+SUosc2V0TW9udGg6KCk9PnIzLHNldFF1YXJ0ZXI6KCk9PkZKLHNldFNlY29uZHM6KCk9PlJKLHNldFdlZWs6KCk9PkZoLHNldFdlZWtZZWFyOigpPT5ISixzZXRZZWFyOigpPT5WSixzdGFydE9mRGF5OigpPT55cixzdGFydE9mRGVjYWRlOigpPT5VSixzdGFydE9mSG91cjooKT0+R2Msc3RhcnRPZklTT1dlZWs6KCk9PkcxLHN0YXJ0T2ZJU09XZWVrWWVhcjooKT0+SWEsc3RhcnRPZk1pbnV0ZTooKT0+WWMsc3RhcnRPZk1vbnRoOigpPT5ibixzdGFydE9mUXVhcnRlcjooKT0+enIsc3RhcnRPZlNlY29uZDooKT0+WmMsc3RhcnRPZlRvZGF5OigpPT5HSixzdGFydE9mVG9tb3Jyb3c6KCk9PlpKLHN0YXJ0T2ZXZWVrOigpPT5kMSxzdGFydE9mV2Vla1llYXI6KCk9PllvLHN0YXJ0T2ZZZWFyOigpPT5aNCxzdGFydE9mWWVzdGVyZGF5OigpPT5LSixzdWI6KCk9PkpKLHN1YkJ1c2luZXNzRGF5czooKT0+dGVlLHN1YkRheXM6KCk9Pk1uLHN1YkhvdXJzOigpPT5pZWUsc3ViSVNPV2Vla1llYXJzOigpPT5HNyxzdWJNaWxsaXNlY29uZHM6KCk9PnNlZSxzdWJNaW51dGVzOigpPT5vZWUsc3ViTW9udGhzOigpPT53cCxzdWJRdWFydGVyczooKT0+Y2VlLHN1YlNlY29uZHM6KCk9PmhlZSxzdWJXZWVrczooKT0+dWVlLHN1YlllYXJzOigpPT5tZWUsdG9EYXRlOigpPT5uZSx0cmFuc3Bvc2U6KCk9PndoLHdlZWtzVG9EYXlzOigpPT5iZWUseWVhcnNUb0RheXM6KCk9PnllZSx5ZWFyc1RvTW9udGhzOigpPT53ZWUseWVhcnNUb1F1YXJ0ZXJzOigpPT56ZWV9KTt2YXIgU2VlPWIoKCk9PntWaygpO1drKCk7bXIoKTtHaygpO1prKCk7UGMoKTtFNygpO080KCk7UDcoKTtYaygpO05jKCk7S2soKTtHRygpO1pHKCk7ZVMoKTtLRygpO3FvKCk7SkcoKTthdCgpO2UyKCk7dFkoKTtpWSgpO25zKCk7YVMoKTtzWSgpO3E3KCk7clMoKTtWNygpO2o3KCk7VTcoKTtXNygpO2xZKCk7WTcoKTtaNygpO09jKCk7ZFkoKTtSYygpO3BZKCk7b1MoKTtsUygpO2ZZKCk7Z1koKTt2WSgpO3hZKCk7TVkoKTthaCgpO2tZKCk7Q1koKTtUWSgpO1g3KCk7JFkoKTtEWSgpO1BZKCk7TlkoKTtPWSgpO0s3KCk7QlkoKTtxWSgpO2pZKCk7V1koKTtkUygpO2NTKCk7WVkoKTttUygpO2dTKCk7YlMoKTtiWigpO3laKCk7d1ooKTt6WigpO1NaKCk7X1ooKTtMWigpO0FaKCk7RVooKTtJWigpO3ZTKCk7VWMoKTtoUygpO3lTKCk7RlooKTtSWigpO3dTKCk7SFooKTtNUygpO2xoKCk7dW4oKTtWWigpO1VaKCk7R1ooKTtaWigpO0taKCk7aVMoKTtKWigpO3RYKCk7aVgoKTtkaCgpO3NYKCk7SGMoKTtvWCgpO2NYKCk7aFgoKTt1WCgpO21YKCk7YlgoKTt5WCgpO3dYKCk7elgoKTtTWCgpO19YKCk7dFMoKTtMWCgpO0FYKCk7RVgoKTtJWCgpO0ZYKCk7blMoKTt4UygpO2JLKCk7eUsoKTt3SygpO3E0KCk7QVMoKTtEUygpO3pLKCk7UFMoKTtJUygpO05TKCk7T1MoKTtocCgpO1JTKCk7amsoKTtVaygpO1NLKCk7X0soKTtMSygpO0FLKCk7RUsoKTtJSygpO0ZLKCk7UksoKTtISygpO1ZLKCk7VUsoKTtHSygpO29zKCk7WksoKTtFYygpO0tLKCk7SksoKTt0USgpO2lRKCk7c1EoKTt6UygpO29RKCk7QlMoKTtjUSgpO2hRKCk7UWsoKTt1USgpO21RKCk7YlEoKTt5USgpO0prKCk7d1EoKTt6USgpO1NRKCk7X1EoKTtMUSgpO2NzKCk7QVEoKTtFUSgpO0lRKCk7RlEoKTtSUSgpO0hRKCk7VlEoKTtMUygpO1dRKCk7WVEoKTtkcygpO1hRKCk7UVEoKTtlSigpO2FKKCk7ckooKTtuSigpO2xKKCk7ZEooKTtwSigpO2ZKKCk7Z0ooKTt2SigpO3hKKCk7TUooKTtrSigpO0NKKCk7V2MoKTtUSigpOyRKKCk7REooKTtUUygpO19TKCk7WWsoKTtQSigpO05KKCk7eHAoKTtPSigpO0JKKCk7Q1MoKTtxSigpO2pKKCk7SWMoKTtXSigpOyRTKCk7dnIoKTtSNCgpO0VTKCk7QmMoKTt0aCgpO0ZTKCk7WUooKTtYSigpO0VpKCk7Y2goKTtyaCgpO1FKKCk7ZWVlKCk7YWVlKCk7WGMoKTtyZWUoKTtzUygpO25lZSgpO2xlZSgpO3FTKCk7ZGVlKCk7cGVlKCk7ZmVlKCk7Z2VlKCk7QWUoKTtrUygpO3ZlZSgpO3hlZSgpO01lZSgpO2tlZSgpfSk7dmFyIENlZT1odCgoVlMsalMpPT57KGZ1bmN0aW9uKHQsZSl7dHlwZW9mIFZTPT0ib2JqZWN0IiYmdHlwZW9mIGpTPCJ1Ij9qUy5leHBvcnRzPWUoKTp0eXBlb2YgZGVmaW5lPT0iZnVuY3Rpb24iJiZkZWZpbmUuYW1kP2RlZmluZShlKToodD10eXBlb2YgZ2xvYmFsVGhpczwidSI/Z2xvYmFsVGhpczp0fHxzZWxmKS5kYXlqcz1lKCl9KShWUywoZnVuY3Rpb24oKXsidXNlIHN0cmljdCI7dmFyIHQ9MWUzLGU9NmU0LGE9MzZlNSxpPSJtaWxsaXNlY29uZCIscj0ic2Vjb25kIixzPSJtaW51dGUiLG49ImhvdXIiLG89ImRheSIsZD0id2VlayIsYz0ibW9udGgiLGg9InF1YXJ0ZXIiLGw9InllYXIiLGY9ImRhdGUiLGc9IkludmFsaWQgRGF0ZSIseT0vXihcZHs0fSlbLS9dPyhcZHsxLDJ9KT9bLS9dPyhcZHswLDJ9KVtUdFxzXSooXGR7MSwyfSk/Oj8oXGR7MSwyfSk/Oj8oXGR7MSwyfSk/Wy46XT8oXGQrKT8kLyx2PS9cWyhbXlxdXSspXXxZezEsNH18TXsxLDR9fER7MSwyfXxkezEsNH18SHsxLDJ9fGh7MSwyfXxhfEF8bXsxLDJ9fHN7MSwyfXxaezEsMn18U1NTL2csbT17bmFtZToiZW4iLHdlZWtkYXlzOiJTdW5kYXlfTW9uZGF5X1R1ZXNkYXlfV2VkbmVzZGF5X1RodXJzZGF5X0ZyaWRheV9TYXR1cmRheSIuc3BsaXQoIl8iKSxtb250aHM6IkphbnVhcnlfRmVicnVhcnlfTWFyY2hfQXByaWxfTWF5X0p1bmVfSnVseV9BdWd1c3RfU2VwdGVtYmVyX09jdG9iZXJfTm92ZW1iZXJfRGVjZW1iZXIiLnNwbGl0KCJfIiksb3JkaW5hbDpmdW5jdGlvbih6KXt2YXIgRT1bInRoIiwic3QiLCJuZCIsInJkIl0sVD16JTEwMDtyZXR1cm4iWyIreisoRVsoVC0yMCklMTBdfHxFW1RdfHxFWzBdKSsiXSJ9fSx4PWZ1bmN0aW9uKHosRSxUKXt2YXIgJD1TdHJpbmcoeik7cmV0dXJuISR8fCQubGVuZ3RoPj1FP3o6IiIrQXJyYXkoRSsxLSQubGVuZ3RoKS5qb2luKFQpK3p9LE09e3M6eCx6OmZ1bmN0aW9uKHope3ZhciBFPS16LnV0Y09mZnNldCgpLFQ9TWF0aC5hYnMoRSksJD1NYXRoLmZsb29yKFQvNjApLFY9VCU2MDtyZXR1cm4oRTw9MD8iKyI6Ii0iKSt4KCQsMiwiMCIpKyI6Iit4KFYsMiwiMCIpfSxtOmZ1bmN0aW9uIHooRSxUKXtpZihFLmRhdGUoKTxULmRhdGUoKSlyZXR1cm4teihULEUpO3ZhciAkPTEyKihULnllYXIoKS1FLnllYXIoKSkrKFQubW9udGgoKS1FLm1vbnRoKCkpLFY9RS5jbG9uZSgpLmFkZCgkLGMpLFI9VC1WPDAsVT1FLmNsb25lKCkuYWRkKCQrKFI/LTE6MSksYyk7cmV0dXJuKygtKCQrKFQtVikvKFI/Vi1VOlUtVikpfHwwKX0sYTpmdW5jdGlvbih6KXtyZXR1cm4gejwwP01hdGguY2VpbCh6KXx8MDpNYXRoLmZsb29yKHopfSxwOmZ1bmN0aW9uKHope3JldHVybntNOmMseTpsLHc6ZCxkOm8sRDpmLGg6bixtOnMsczpyLG1zOmksUTpofVt6XXx8U3RyaW5nKHp8fCIiKS50b0xvd2VyQ2FzZSgpLnJlcGxhY2UoL3MkLywiIil9LHU6ZnVuY3Rpb24oeil7cmV0dXJuIHo9PT12b2lkIDB9fSxTPSJlbiIsRj17fTtGW1NdPW07dmFyIF89IiRpc0RheWpzT2JqZWN0IixrPWZ1bmN0aW9uKHope3JldHVybiB6IGluc3RhbmNlb2YgcXx8ISghenx8IXpbX10pfSxOPWZ1bmN0aW9uIHooRSxULCQpe3ZhciBWO2lmKCFFKXJldHVybiBTO2lmKHR5cGVvZiBFPT0ic3RyaW5nIil7dmFyIFI9RS50b0xvd2VyQ2FzZSgpO0ZbUl0mJihWPVIpLFQmJihGW1JdPVQsVj1SKTt2YXIgVT1FLnNwbGl0KCItIik7aWYoIVYmJlUubGVuZ3RoPjEpcmV0dXJuIHooVVswXSl9ZWxzZXt2YXIgcmU9RS5uYW1lO0ZbcmVdPUUsVj1yZX1yZXR1cm4hJCYmViYmKFM9ViksVnx8ISQmJlN9LEw9ZnVuY3Rpb24oeixFKXtpZihrKHopKXJldHVybiB6LmNsb25lKCk7dmFyIFQ9dHlwZW9mIEU9PSJvYmplY3QiP0U6e307cmV0dXJuIFQuZGF0ZT16LFQuYXJncz1hcmd1bWVudHMsbmV3IHEoVCl9LEE9TTtBLmw9TixBLmk9ayxBLnc9ZnVuY3Rpb24oeixFKXtyZXR1cm4gTCh6LHtsb2NhbGU6RS4kTCx1dGM6RS4kdSx4OkUuJHgsJG9mZnNldDpFLiRvZmZzZXR9KX07dmFyIHE9KGZ1bmN0aW9uKCl7ZnVuY3Rpb24geihUKXt0aGlzLiRMPU4oVC5sb2NhbGUsbnVsbCwhMCksdGhpcy5wYXJzZShUKSx0aGlzLiR4PXRoaXMuJHh8fFQueHx8e30sdGhpc1tfXT0hMH12YXIgRT16LnByb3RvdHlwZTtyZXR1cm4gRS5wYXJzZT1mdW5jdGlvbihUKXt0aGlzLiRkPShmdW5jdGlvbigkKXt2YXIgVj0kLmRhdGUsUj0kLnV0YztpZihWPT09bnVsbClyZXR1cm4gbmV3IERhdGUoTmFOKTtpZihBLnUoVikpcmV0dXJuIG5ldyBEYXRlO2lmKFYgaW5zdGFuY2VvZiBEYXRlKXJldHVybiBuZXcgRGF0ZShWKTtpZih0eXBlb2YgVj09InN0cmluZyImJiEvWiQvaS50ZXN0KFYpKXt2YXIgVT1WLm1hdGNoKHkpO2lmKFUpe3ZhciByZT1VWzJdLTF8fDAsaj0oVVs3XXx8IjAiKS5zdWJzdHJpbmcoMCwzKTtyZXR1cm4gUj9uZXcgRGF0ZShEYXRlLlVUQyhVWzFdLHJlLFVbM118fDEsVVs0XXx8MCxVWzVdfHwwLFVbNl18fDAsaikpOm5ldyBEYXRlKFVbMV0scmUsVVszXXx8MSxVWzRdfHwwLFVbNV18fDAsVVs2XXx8MCxqKX19cmV0dXJuIG5ldyBEYXRlKFYpfSkoVCksdGhpcy5pbml0KCl9LEUuaW5pdD1mdW5jdGlvbigpe3ZhciBUPXRoaXMuJGQ7dGhpcy4keT1ULmdldEZ1bGxZZWFyKCksdGhpcy4kTT1ULmdldE1vbnRoKCksdGhpcy4kRD1ULmdldERhdGUoKSx0aGlzLiRXPVQuZ2V0RGF5KCksdGhpcy4kSD1ULmdldEhvdXJzKCksdGhpcy4kbT1ULmdldE1pbnV0ZXMoKSx0aGlzLiRzPVQuZ2V0U2Vjb25kcygpLHRoaXMuJG1zPVQuZ2V0TWlsbGlzZWNvbmRzKCl9LEUuJHV0aWxzPWZ1bmN0aW9uKCl7cmV0dXJuIEF9LEUuaXNWYWxpZD1mdW5jdGlvbigpe3JldHVybiB0aGlzLiRkLnRvU3RyaW5nKCkhPT1nfSxFLmlzU2FtZT1mdW5jdGlvbihULCQpe3ZhciBWPUwoVCk7cmV0dXJuIHRoaXMuc3RhcnRPZigkKTw9ViYmVjw9dGhpcy5lbmRPZigkKX0sRS5pc0FmdGVyPWZ1bmN0aW9uKFQsJCl7cmV0dXJuIEwoVCk8dGhpcy5zdGFydE9mKCQpfSxFLmlzQmVmb3JlPWZ1bmN0aW9uKFQsJCl7cmV0dXJuIHRoaXMuZW5kT2YoJCk8TChUKX0sRS4kZz1mdW5jdGlvbihULCQsVil7cmV0dXJuIEEudShUKT90aGlzWyRdOnRoaXMuc2V0KFYsVCl9LEUudW5peD1mdW5jdGlvbigpe3JldHVybiBNYXRoLmZsb29yKHRoaXMudmFsdWVPZigpLzFlMyl9LEUudmFsdWVPZj1mdW5jdGlvbigpe3JldHVybiB0aGlzLiRkLmdldFRpbWUoKX0sRS5zdGFydE9mPWZ1bmN0aW9uKFQsJCl7dmFyIFY9dGhpcyxSPSEhQS51KCQpfHwkLFU9QS5wKFQpLHJlPWZ1bmN0aW9uKEQsTyl7dmFyIFo9QS53KFYuJHU/RGF0ZS5VVEMoVi4keSxPLEQpOm5ldyBEYXRlKFYuJHksTyxEKSxWKTtyZXR1cm4gUj9aOlouZW5kT2Yobyl9LGo9ZnVuY3Rpb24oRCxPKXtyZXR1cm4gQS53KFYudG9EYXRlKClbRF0uYXBwbHkoVi50b0RhdGUoInMiKSwoUj9bMCwwLDAsMF06WzIzLDU5LDU5LDk5OV0pLnNsaWNlKE8pKSxWKX0sbWU9dGhpcy4kVyx3ZT10aGlzLiRNLEg9dGhpcy4kRCxjZT0ic2V0IisodGhpcy4kdT8iVVRDIjoiIik7c3dpdGNoKFUpe2Nhc2UgbDpyZXR1cm4gUj9yZSgxLDApOnJlKDMxLDExKTtjYXNlIGM6cmV0dXJuIFI/cmUoMSx3ZSk6cmUoMCx3ZSsxKTtjYXNlIGQ6dmFyIGtlPXRoaXMuJGxvY2FsZSgpLndlZWtTdGFydHx8MCxXPShtZTxrZT9tZSs3Om1lKS1rZTtyZXR1cm4gcmUoUj9ILVc6SCsoNi1XKSx3ZSk7Y2FzZSBvOmNhc2UgZjpyZXR1cm4gaihjZSsiSG91cnMiLDApO2Nhc2UgbjpyZXR1cm4gaihjZSsiTWludXRlcyIsMSk7Y2FzZSBzOnJldHVybiBqKGNlKyJTZWNvbmRzIiwyKTtjYXNlIHI6cmV0dXJuIGooY2UrIk1pbGxpc2Vjb25kcyIsMyk7ZGVmYXVsdDpyZXR1cm4gdGhpcy5jbG9uZSgpfX0sRS5lbmRPZj1mdW5jdGlvbihUKXtyZXR1cm4gdGhpcy5zdGFydE9mKFQsITEpfSxFLiRzZXQ9ZnVuY3Rpb24oVCwkKXt2YXIgVixSPUEucChUKSxVPSJzZXQiKyh0aGlzLiR1PyJVVEMiOiIiKSxyZT0oVj17fSxWW29dPVUrIkRhdGUiLFZbZl09VSsiRGF0ZSIsVltjXT1VKyJNb250aCIsVltsXT1VKyJGdWxsWWVhciIsVltuXT1VKyJIb3VycyIsVltzXT1VKyJNaW51dGVzIixWW3JdPVUrIlNlY29uZHMiLFZbaV09VSsiTWlsbGlzZWNvbmRzIixWKVtSXSxqPVI9PT1vP3RoaXMuJEQrKCQtdGhpcy4kVyk6JDtpZihSPT09Y3x8Uj09PWwpe3ZhciBtZT10aGlzLmNsb25lKCkuc2V0KGYsMSk7bWUuJGRbcmVdKGopLG1lLmluaXQoKSx0aGlzLiRkPW1lLnNldChmLE1hdGgubWluKHRoaXMuJEQsbWUuZGF5c0luTW9udGgoKSkpLiRkfWVsc2UgcmUmJnRoaXMuJGRbcmVdKGopO3JldHVybiB0aGlzLmluaXQoKSx0aGlzfSxFLnNldD1mdW5jdGlvbihULCQpe3JldHVybiB0aGlzLmNsb25lKCkuJHNldChULCQpfSxFLmdldD1mdW5jdGlvbihUKXtyZXR1cm4gdGhpc1tBLnAoVCldKCl9LEUuYWRkPWZ1bmN0aW9uKFQsJCl7dmFyIFYsUj10aGlzO1Q9TnVtYmVyKFQpO3ZhciBVPUEucCgkKSxyZT1mdW5jdGlvbih3ZSl7dmFyIEg9TChSKTtyZXR1cm4gQS53KEguZGF0ZShILmRhdGUoKStNYXRoLnJvdW5kKHdlKlQpKSxSKX07aWYoVT09PWMpcmV0dXJuIHRoaXMuc2V0KGMsdGhpcy4kTStUKTtpZihVPT09bClyZXR1cm4gdGhpcy5zZXQobCx0aGlzLiR5K1QpO2lmKFU9PT1vKXJldHVybiByZSgxKTtpZihVPT09ZClyZXR1cm4gcmUoNyk7dmFyIGo9KFY9e30sVltzXT1lLFZbbl09YSxWW3JdPXQsVilbVV18fDEsbWU9dGhpcy4kZC5nZXRUaW1lKCkrVCpqO3JldHVybiBBLncobWUsdGhpcyl9LEUuc3VidHJhY3Q9ZnVuY3Rpb24oVCwkKXtyZXR1cm4gdGhpcy5hZGQoLTEqVCwkKX0sRS5mb3JtYXQ9ZnVuY3Rpb24oVCl7dmFyICQ9dGhpcyxWPXRoaXMuJGxvY2FsZSgpO2lmKCF0aGlzLmlzVmFsaWQoKSlyZXR1cm4gVi5pbnZhbGlkRGF0ZXx8Zzt2YXIgUj1UfHwiWVlZWS1NTS1ERFRISDptbTpzc1oiLFU9QS56KHRoaXMpLHJlPXRoaXMuJEgsaj10aGlzLiRtLG1lPXRoaXMuJE0sd2U9Vi53ZWVrZGF5cyxIPVYubW9udGhzLGNlPVYubWVyaWRpZW0sa2U9ZnVuY3Rpb24oTyxaLFksb2Upe3JldHVybiBPJiYoT1taXXx8TygkLFIpKXx8WVtaXS5zbGljZSgwLG9lKX0sVz1mdW5jdGlvbihPKXtyZXR1cm4gQS5zKHJlJTEyfHwxMixPLCIwIil9LEQ9Y2V8fGZ1bmN0aW9uKE8sWixZKXt2YXIgb2U9TzwxMj8iQU0iOiJQTSI7cmV0dXJuIFk/b2UudG9Mb3dlckNhc2UoKTpvZX07cmV0dXJuIFIucmVwbGFjZSh2LChmdW5jdGlvbihPLFope3JldHVybiBafHwoZnVuY3Rpb24oWSl7c3dpdGNoKFkpe2Nhc2UiWVkiOnJldHVybiBTdHJpbmcoJC4keSkuc2xpY2UoLTIpO2Nhc2UiWVlZWSI6cmV0dXJuIEEucygkLiR5LDQsIjAiKTtjYXNlIk0iOnJldHVybiBtZSsxO2Nhc2UiTU0iOnJldHVybiBBLnMobWUrMSwyLCIwIik7Y2FzZSJNTU0iOnJldHVybiBrZShWLm1vbnRoc1Nob3J0LG1lLEgsMyk7Y2FzZSJNTU1NIjpyZXR1cm4ga2UoSCxtZSk7Y2FzZSJEIjpyZXR1cm4gJC4kRDtjYXNlIkREIjpyZXR1cm4gQS5zKCQuJEQsMiwiMCIpO2Nhc2UiZCI6cmV0dXJuIFN0cmluZygkLiRXKTtjYXNlImRkIjpyZXR1cm4ga2UoVi53ZWVrZGF5c01pbiwkLiRXLHdlLDIpO2Nhc2UiZGRkIjpyZXR1cm4ga2UoVi53ZWVrZGF5c1Nob3J0LCQuJFcsd2UsMyk7Y2FzZSJkZGRkIjpyZXR1cm4gd2VbJC4kV107Y2FzZSJIIjpyZXR1cm4gU3RyaW5nKHJlKTtjYXNlIkhIIjpyZXR1cm4gQS5zKHJlLDIsIjAiKTtjYXNlImgiOnJldHVybiBXKDEpO2Nhc2UiaGgiOnJldHVybiBXKDIpO2Nhc2UiYSI6cmV0dXJuIEQocmUsaiwhMCk7Y2FzZSJBIjpyZXR1cm4gRChyZSxqLCExKTtjYXNlIm0iOnJldHVybiBTdHJpbmcoaik7Y2FzZSJtbSI6cmV0dXJuIEEucyhqLDIsIjAiKTtjYXNlInMiOnJldHVybiBTdHJpbmcoJC4kcyk7Y2FzZSJzcyI6cmV0dXJuIEEucygkLiRzLDIsIjAiKTtjYXNlIlNTUyI6cmV0dXJuIEEucygkLiRtcywzLCIwIik7Y2FzZSJaIjpyZXR1cm4gVX1yZXR1cm4gbnVsbH0pKE8pfHxVLnJlcGxhY2UoIjoiLCIiKX0pKX0sRS51dGNPZmZzZXQ9ZnVuY3Rpb24oKXtyZXR1cm4gMTUqLU1hdGgucm91bmQodGhpcy4kZC5nZXRUaW1lem9uZU9mZnNldCgpLzE1KX0sRS5kaWZmPWZ1bmN0aW9uKFQsJCxWKXt2YXIgUixVPXRoaXMscmU9QS5wKCQpLGo9TChUKSxtZT0oai51dGNPZmZzZXQoKS10aGlzLnV0Y09mZnNldCgpKSplLHdlPXRoaXMtaixIPWZ1bmN0aW9uKCl7cmV0dXJuIEEubShVLGopfTtzd2l0Y2gocmUpe2Nhc2UgbDpSPUgoKS8xMjticmVhaztjYXNlIGM6Uj1IKCk7YnJlYWs7Y2FzZSBoOlI9SCgpLzM7YnJlYWs7Y2FzZSBkOlI9KHdlLW1lKS82MDQ4ZTU7YnJlYWs7Y2FzZSBvOlI9KHdlLW1lKS84NjRlNTticmVhaztjYXNlIG46Uj13ZS9hO2JyZWFrO2Nhc2UgczpSPXdlL2U7YnJlYWs7Y2FzZSByOlI9d2UvdDticmVhaztkZWZhdWx0OlI9d2V9cmV0dXJuIFY/UjpBLmEoUil9LEUuZGF5c0luTW9udGg9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5lbmRPZihjKS4kRH0sRS4kbG9jYWxlPWZ1bmN0aW9uKCl7cmV0dXJuIEZbdGhpcy4kTF19LEUubG9jYWxlPWZ1bmN0aW9uKFQsJCl7aWYoIVQpcmV0dXJuIHRoaXMuJEw7dmFyIFY9dGhpcy5jbG9uZSgpLFI9TihULCQsITApO3JldHVybiBSJiYoVi4kTD1SKSxWfSxFLmNsb25lPWZ1bmN0aW9uKCl7cmV0dXJuIEEudyh0aGlzLiRkLHRoaXMpfSxFLnRvRGF0ZT1mdW5jdGlvbigpe3JldHVybiBuZXcgRGF0ZSh0aGlzLnZhbHVlT2YoKSl9LEUudG9KU09OPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuaXNWYWxpZCgpP3RoaXMudG9JU09TdHJpbmcoKTpudWxsfSxFLnRvSVNPU3RyaW5nPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuJGQudG9JU09TdHJpbmcoKX0sRS50b1N0cmluZz1mdW5jdGlvbigpe3JldHVybiB0aGlzLiRkLnRvVVRDU3RyaW5nKCl9LHp9KSgpLEM9cS5wcm90b3R5cGU7cmV0dXJuIEwucHJvdG90eXBlPUMsW1siJG1zIixpXSxbIiRzIixyXSxbIiRtIixzXSxbIiRIIixuXSxbIiRXIixvXSxbIiRNIixjXSxbIiR5IixsXSxbIiREIixmXV0uZm9yRWFjaCgoZnVuY3Rpb24oeil7Q1t6WzFdXT1mdW5jdGlvbihFKXtyZXR1cm4gdGhpcy4kZyhFLHpbMF0selsxXSl9fSkpLEwuZXh0ZW5kPWZ1bmN0aW9uKHosRSl7cmV0dXJuIHouJGl8fCh6KEUscSxMKSx6LiRpPSEwKSxMfSxMLmxvY2FsZT1OLEwuaXNEYXlqcz1rLEwudW5peD1mdW5jdGlvbih6KXtyZXR1cm4gTCgxZTMqeil9LEwuZW49RltTXSxMLkxzPUYsTC5wPXt9LEx9KSl9KTt2YXIgX2VlPWh0KChVUyxXUyk9PnsoZnVuY3Rpb24odCxlKXt0eXBlb2YgVVM9PSJvYmplY3QiJiZ0eXBlb2YgV1M8InUiP1dTLmV4cG9ydHM9ZSgpOnR5cGVvZiBkZWZpbmU9PSJmdW5jdGlvbiImJmRlZmluZS5hbWQ/ZGVmaW5lKGUpOih0PXR5cGVvZiBnbG9iYWxUaGlzPCJ1Ij9nbG9iYWxUaGlzOnR8fHNlbGYpLmRheWpzX3BsdWdpbl9pc1RvZGF5PWUoKX0pKFVTLChmdW5jdGlvbigpeyJ1c2Ugc3RyaWN0IjtyZXR1cm4gZnVuY3Rpb24odCxlLGEpe2UucHJvdG90eXBlLmlzVG9kYXk9ZnVuY3Rpb24oKXt2YXIgaT0iWVlZWS1NTS1ERCIscj1hKCk7cmV0dXJuIHRoaXMuZm9ybWF0KGkpPT09ci5mb3JtYXQoaSl9fX0pKX0pO2Z1bmN0aW9uIGNfdCh0KXtyZXR1cm57ZGF5czpNYXRoLnRydW5jKHQvODY0ZTUpLGhvdXJzOk1hdGgudHJ1bmModC8zNmU1JTI0KSxtaW51dGVzOk1hdGgudHJ1bmModC82ZTQlNjApLHNlY29uZHM6TWF0aC50cnVuYyh0LzFlMyU2MCksbWlsbGlzZWNvbmRzOk1hdGgudHJ1bmModCUxZTMpLG1pY3Jvc2Vjb25kczpNYXRoLnRydW5jKFRlZSh0KjFlMyklMWUzKSxuYW5vc2Vjb25kczpNYXRoLnRydW5jKFRlZSh0KjFlNiklMWUzKX19ZnVuY3Rpb24gZF90KHQpe3JldHVybntkYXlzOnQvODY0MDAwMDBuLGhvdXJzOnQvMzYwMDAwMG4lMjRuLG1pbnV0ZXM6dC82MDAwMG4lNjBuLHNlY29uZHM6dC8xMDAwbiU2MG4sbWlsbGlzZWNvbmRzOnQlMTAwMG4sbWljcm9zZWNvbmRzOjBuLG5hbm9zZWNvbmRzOjBufX1mdW5jdGlvbiBHUyh0KXtzd2l0Y2godHlwZW9mIHQpe2Nhc2UibnVtYmVyIjp7aWYoTnVtYmVyLmlzRmluaXRlKHQpKXJldHVybiBjX3QodCk7YnJlYWt9Y2FzZSJiaWdpbnQiOnJldHVybiBkX3QodCl9dGhyb3cgbmV3IFR5cGVFcnJvcigiRXhwZWN0ZWQgYSBmaW5pdGUgbnVtYmVyIG9yIGJpZ2ludCIpfXZhciBUZWUsTGVlPWIoKCk9PntUZWU9dD0+TnVtYmVyLmlzRmluaXRlKHQpP3Q6MH0pO2Z1bmN0aW9uIEpjKHQsZSl7bGV0IGE9dHlwZW9mIHQ9PSJiaWdpbnQiO2lmKCFhJiYhTnVtYmVyLmlzRmluaXRlKHQpKXRocm93IG5ldyBUeXBlRXJyb3IoIkV4cGVjdGVkIGEgZmluaXRlIG51bWJlciBvciBiaWdpbnQiKTtlPXsuLi5lfTtsZXQgaT10PDA/Ii0iOiIiO3Q9dDwwPy10OnQsZS5jb2xvbk5vdGF0aW9uJiYoZS5jb21wYWN0PSExLGUuZm9ybWF0U3ViTWlsbGlzZWNvbmRzPSExLGUuc2VwYXJhdGVNaWxsaXNlY29uZHM9ITEsZS52ZXJib3NlPSExKSxlLmNvbXBhY3QmJihlLnVuaXRDb3VudD0xLGUuc2Vjb25kc0RlY2ltYWxEaWdpdHM9MCxlLm1pbGxpc2Vjb25kc0RlY2ltYWxEaWdpdHM9MCk7bGV0IHI9W10scz0oaCxsKT0+e2xldCBmPU1hdGguZmxvb3IoaCoxMCoqbCt1X3QpO3JldHVybihNYXRoLnJvdW5kKGYpLzEwKipsKS50b0ZpeGVkKGwpfSxuPShoLGwsZixnKT0+e2lmKCEoKHIubGVuZ3RoPT09MHx8IWUuY29sb25Ob3RhdGlvbikmJmhfdChoKSYmIShlLmNvbG9uTm90YXRpb24mJmY9PT0ibSIpKSl7aWYoZz8/PVN0cmluZyhoKSxlLmNvbG9uTm90YXRpb24pe2xldCB5PWcuaW5jbHVkZXMoIi4iKT9nLnNwbGl0KCIuIilbMF0ubGVuZ3RoOmcubGVuZ3RoLHY9ci5sZW5ndGg+MD8yOjE7Zz0iMCIucmVwZWF0KE1hdGgubWF4KDAsdi15KSkrZ31lbHNlIGcrPWUudmVyYm9zZT8iICIrcF90KGwsaCk6ZjtyLnB1c2goZyl9fSxvPUdTKHQpLGQ9QmlnSW50KG8uZGF5cyk7aWYoZS5oaWRlWWVhckFuZERheXM/bihCaWdJbnQoZCkqMjRuK0JpZ0ludChvLmhvdXJzKSwiaG91ciIsImgiKTooZS5oaWRlWWVhcj9uKGQsImRheSIsImQiKToobihkLzM2NW4sInllYXIiLCJ5IiksbihkJTM2NW4sImRheSIsImQiKSksbihOdW1iZXIoby5ob3VycyksImhvdXIiLCJoIikpLG4oTnVtYmVyKG8ubWludXRlcyksIm1pbnV0ZSIsIm0iKSwhZS5oaWRlU2Vjb25kcylpZihlLnNlcGFyYXRlTWlsbGlzZWNvbmRzfHxlLmZvcm1hdFN1Yk1pbGxpc2Vjb25kc3x8IWUuY29sb25Ob3RhdGlvbiYmdDwxZTMmJiFlLnN1YlNlY29uZHNBc0RlY2ltYWxzKXtsZXQgaD1OdW1iZXIoby5zZWNvbmRzKSxsPU51bWJlcihvLm1pbGxpc2Vjb25kcyksZj1OdW1iZXIoby5taWNyb3NlY29uZHMpLGc9TnVtYmVyKG8ubmFub3NlY29uZHMpO2lmKG4oaCwic2Vjb25kIiwicyIpLGUuZm9ybWF0U3ViTWlsbGlzZWNvbmRzKW4obCwibWlsbGlzZWNvbmQiLCJtcyIpLG4oZiwibWljcm9zZWNvbmQiLCJceEI1cyIpLG4oZywibmFub3NlY29uZCIsIm5zIik7ZWxzZXtsZXQgeT1sK2YvMWUzK2cvMWU2LHY9dHlwZW9mIGUubWlsbGlzZWNvbmRzRGVjaW1hbERpZ2l0cz09Im51bWJlciI/ZS5taWxsaXNlY29uZHNEZWNpbWFsRGlnaXRzOjAsbT15Pj0xP01hdGgucm91bmQoeSk6TWF0aC5jZWlsKHkpLHg9dj95LnRvRml4ZWQodik6bTtuKE51bWJlci5wYXJzZUZsb2F0KHgpLCJtaWxsaXNlY29uZCIsIm1zIix4KX19ZWxzZXtsZXQgaD0oYT9OdW1iZXIodCVmX3QpOnQpLzFlMyU2MCxsPXR5cGVvZiBlLnNlY29uZHNEZWNpbWFsRGlnaXRzPT0ibnVtYmVyIj9lLnNlY29uZHNEZWNpbWFsRGlnaXRzOjEsZj1zKGgsbCksZz1lLmtlZXBEZWNpbWFsc09uV2hvbGVTZWNvbmRzP2Y6Zi5yZXBsYWNlKC9cLjArJC8sIiIpO24oTnVtYmVyLnBhcnNlRmxvYXQoZyksInNlY29uZCIsInMiLGcpfWlmKHIubGVuZ3RoPT09MClyZXR1cm4gaSsiMCIrKGUudmVyYm9zZT8iIG1pbGxpc2Vjb25kcyI6Im1zIik7bGV0IGM9ZS5jb2xvbk5vdGF0aW9uPyI6IjoiICI7cmV0dXJuIHR5cGVvZiBlLnVuaXRDb3VudD09Im51bWJlciImJihyPXIuc2xpY2UoMCxNYXRoLm1heChlLnVuaXRDb3VudCwxKSkpLGkrci5qb2luKGMpfXZhciBoX3QscF90LHVfdCxmX3QsJGVlPWIoKCk9PntMZWUoKTtoX3Q9dD0+dD09PTB8fHQ9PT0wbixwX3Q9KHQsZSk9PmU9PT0xfHxlPT09MW4/dDpgJHt0fXNgLHVfdD0xZS03LGZfdD0yNG4qNjBuKjYwbioxMDAwbn0pO3ZhciBLbyxBZWUsem49YigoKT0+e2U2KCk7dXIoKTtjMigpO0hHKCk7U2VlKCk7S289VTEoQ2VlKCksMSksQWVlPVUxKF9lZSgpLDEpOyRlZSgpO0tvLmRlZmF1bHQuZXh0ZW5kKEFlZS5kZWZhdWx0KX0pO3ZhciB0NixZUz1iKCgpPT57em4oKTtaUygpO3Q2PWNsYXNze2NvbnN0cnVjdG9yKGUsYSxpKXt0aGlzLnN0YXR1cz0iaW5pdGlhbCIsdGhpcy5uZXh0RXhlY3V0aW9uVW5peD0wLHRoaXMuY3JvbkV4cHJlc3Npb249YSx0aGlzLmpvYkZ1bmN0aW9uPWksdGhpcy5jcm9uUGFyc2VyPW5ldyBBYy5Dcm9uKGEpfWNoZWNrRXhlY3V0aW9uKCl7aWYodGhpcy5zdGF0dXM9PT0ic3RvcHBlZCIpcmV0dXJuIHRoaXMubmV4dEV4ZWN1dGlvblVuaXg7aWYodGhpcy5uZXh0RXhlY3V0aW9uVW5peD09PTAmJnRoaXMuZ2V0TmV4dEV4ZWN1dGlvblRpbWUoKSxEYXRlLm5vdygpPnRoaXMubmV4dEV4ZWN1dGlvblVuaXgpe2xldCBlPXRoaXMuam9iRnVuY3Rpb24odGhpcy5uZXh0RXhlY3V0aW9uVW5peCk7ZSBpbnN0YW5jZW9mIFByb21pc2UmJmUuY2F0Y2goYT0+Y29uc29sZS5sb2coYSkpLHRoaXMubmV4dEV4ZWN1dGlvblVuaXg9dGhpcy5nZXROZXh0RXhlY3V0aW9uVGltZSgpfXJldHVybiB0aGlzLm5leHRFeGVjdXRpb25Vbml4fWdldE5leHRFeGVjdXRpb25UaW1lKCl7cmV0dXJuIHRoaXMubmV4dEV4ZWN1dGlvblVuaXg9RGF0ZS5ub3coKSt0aGlzLmdldFRpbWVUb05leHRFeGVjdXRpb24oKX1nZXRUaW1lVG9OZXh0RXhlY3V0aW9uKCl7cmV0dXJuIHRoaXMuY3JvblBhcnNlci5tc1RvTmV4dCgpfXN0YXJ0KCl7dGhpcy5zdGF0dXM9InN0YXJ0ZWQifXN0b3AoKXt0aGlzLnN0YXR1cz0ic3RvcHBlZCJ9fX0pO3ZhciBYUyxaUz1iKCgpPT57em4oKTtZUygpO1hTPWNsYXNze2NvbnN0cnVjdG9yKCl7dGhpcy5zdGF0dXM9InN0b3BwZWQiLHRoaXMuY3JvbmpvYnM9bmV3IHQyLk9iamVjdE1hcCx0aGlzLmN5Y2xlV2FrZURlZmVycmVkPW51bGx9d2FrZUN5Y2xlKCl7dGhpcy5jeWNsZVdha2VEZWZlcnJlZCYmdGhpcy5jeWNsZVdha2VEZWZlcnJlZC5zdGF0dXM9PT0icGVuZGluZyImJnRoaXMuY3ljbGVXYWtlRGVmZXJyZWQucmVzb2x2ZSgpfWFkZENyb25qb2IoZSxhKXtsZXQgaT1uZXcgdDYodGhpcyxlLGEpO3JldHVybiB0aGlzLmNyb25qb2JzLmFkZChpKSx0aGlzLnN0YXR1cz09PSJzdGFydGVkIiYmKGkuc3RhcnQoKSx0aGlzLndha2VDeWNsZSgpKSxpfXJlbW92ZUNyb25qb2IoZSl7ZS5zdG9wKCksdGhpcy5jcm9uam9icy5yZW1vdmUoZSksdGhpcy5zdGF0dXM9PT0ic3RhcnRlZCImJnRoaXMud2FrZUN5Y2xlKCl9c3RhcnQoKXtpZih0aGlzLnN0YXR1cyE9PSJzdGFydGVkIil7dGhpcy5zdGF0dXM9InN0YXJ0ZWQiO2ZvcihsZXQgZSBvZiB0aGlzLmNyb25qb2JzLmdldEFycmF5KCkpZS5zdGFydCgpO3RoaXMucnVuQ3JvbkN5Y2xlKCl9fWFzeW5jIHJ1bkNyb25DeWNsZSgpe2Zvcig7dGhpcy5zdGF0dXM9PT0ic3RhcnRlZCI7KXt0aGlzLmN5Y2xlV2FrZURlZmVycmVkPW5ldyBCZS5EZWZlcnJlZDtsZXQgZT0xLzA7Zm9yKGxldCBhIG9mIHRoaXMuY3JvbmpvYnMuZ2V0QXJyYXkoKSl7YS5jaGVja0V4ZWN1dGlvbigpO2xldCBpPWEuZ2V0VGltZVRvTmV4dEV4ZWN1dGlvbigpO2k8ZSYmKGU9aSl9aWYoZTwxLzAmJmU+MCl0aGlzLmV4ZWN1dGlvblRpbWVvdXQ9bmV3IGR0LlRpbWVvdXQoZSksYXdhaXQgUHJvbWlzZS5yYWNlKFt0aGlzLmV4ZWN1dGlvblRpbWVvdXQucHJvbWlzZSx0aGlzLmN5Y2xlV2FrZURlZmVycmVkLnByb21pc2VdKSx0aGlzLmV4ZWN1dGlvblRpbWVvdXQuY2FuY2VsKCk7ZWxzZXtpZihlPD0wKWNvbnRpbnVlO2F3YWl0IHRoaXMuY3ljbGVXYWtlRGVmZXJyZWQucHJvbWlzZX19dGhpcy5jeWNsZVdha2VEZWZlcnJlZD1udWxsfXN0b3AoKXt0aGlzLnN0YXR1cz09PSJzdGFydGVkIiYmKHRoaXMuc3RhdHVzPSJzdG9wcGVkIix0aGlzLmV4ZWN1dGlvblRpbWVvdXQmJnRoaXMuZXhlY3V0aW9uVGltZW91dC5jYW5jZWwoKSx0aGlzLndha2VDeWNsZSgpKTtmb3IobGV0IGUgb2YgdGhpcy5jcm9uam9icy5nZXRBcnJheSgpKWUuc3RvcCgpfX19KTt2YXIga24sS1MsbV90LGdfdCxRUz1iKCgpPT57em4oKTtrbj17eWVhcnM6KHQ9MSk9PnQqMzE1NGU3LG1vbnRoczoodD0xKT0+dCoyNjI4ZTYsd2Vla3M6KHQ9MSk9PnQqNjA0OGU1LGRheXM6KHQ9MSk9PnQqODY0ZTUsaG91cnM6KHQ9MSk9PnQqMzZlNSxtaW51dGVzOih0PTEpPT50KjZlNCxzZWNvbmRzOih0PTEpPT50KjFlM30sS1M9dD0+e2xldCBlPTAsYT1pPT57ZT1lK2l9O3JldHVybiB0LnllYXJzJiZhKGtuLnllYXJzKHQueWVhcnMpKSx0Lm1vbnRocyYmYShrbi5tb250aHModC5tb250aHMpKSx0LndlZWtzJiZhKGtuLndlZWtzKHQud2Vla3MpKSx0LmRheXMmJmEoa24uZGF5cyh0LmRheXMpKSx0LmhvdXJzJiZhKGtuLmhvdXJzKHQuaG91cnMpKSx0Lm1pbnV0ZXMmJmEoa24ubWludXRlcyh0Lm1pbnV0ZXMpKSx0LnNlY29uZHMmJmEoa24uc2Vjb25kcyh0LnNlY29uZHMpKSxlfSxtX3Q9dD0+SmModCksZ190PXQ9PlFjLmZvcm1hdERpc3RhbmNlVG9Ob3cobmV3IERhdGUodCkpfSk7dmFyIEpTLERlZT1iKCgpPT57em4oKTtRUygpO0pTPWNsYXNzIHQgZXh0ZW5kcyBEYXRle3N0YXRpYyBmcm9tTWlsbGlzKGUpe3JldHVybiBuZXcgdChlKX1zdGF0aWMgZnJvbURhdGUoZSl7cmV0dXJuIG5ldyB0KGUuZ2V0VGltZSgpKX1zdGF0aWMgZnJvbUV1cm9wZWFuRGF0ZShlKXtsZXQgYT0vKC4qKVwuKC4qKVwuKC4qKS8uZXhlYyhlKSxyPW5ldyBEYXRlKHBhcnNlRmxvYXQoYVszXSkscGFyc2VGbG9hdChhWzJdKS0xLHBhcnNlRmxvYXQoYVsxXSkpLmdldFRpbWUoKTtyZXR1cm4gbmV3IHQocil9c3RhdGljIGZyb21IeXBoZWREYXRlKGUpe2xldCBhPW5ldyBEYXRlKGUpLmdldFRpbWUoKTtyZXR1cm4gbmV3IHQoYSl9c3RhdGljIGZyb21FdXJvcGVhbkRhdGVBbmRUaW1lKGUsYT0iMTI6MDA6MDAiLGk9IkV1cm9wZS9CZXJsaW4iKXtsZXQgcj0vKC4qKVwuKC4qKVwuKC4qKS8uZXhlYyhlKSxzPWM9PmAwJHtjfWAuc2xpY2UoLTIpLG49YCR7clszXX0tJHtzKHJbMl0pfS0ke3MoclsxXSl9VCR7YX1gLGQ9S28uZGVmYXVsdChuKS50b0RhdGUoKS5nZXRUaW1lKCk7cmV0dXJuIG5ldyB0KGQpfWNvbnN0cnVjdG9yKGU9RGF0ZS5ub3coKSl7c3VwZXIoZSl9ZXhwb3J0VG9FdXJvcGVhbkRhdGUoKXtsZXQgZT10aGlzLmV4cG9ydFRvVW5pdHMoKTtyZXR1cm5gJHtlLmRheVN0cmluZ30uJHtlLm1vbnRoU3RyaW5nfS4ke2UueWVhclN0cmluZ31gfWV4cG9ydFRvSHlwaGVkU29ydGFibGVEYXRlKCl7bGV0IGU9dGhpcy5leHBvcnRUb1VuaXRzKCk7cmV0dXJuYCR7ZS55ZWFyU3RyaW5nfS0ke2UubW9udGhTdHJpbmd9LSR7ZS5kYXlTdHJpbmd9YH1leHBvcnRUb1VuaXRzKCl7bGV0IGU9WyJKYW51YXJ5IiwiRmVicnVhcnkiLCJNYXJjaCIsIkFwcmlsIiwiTWF5IiwiSnVuZSIsIkp1bHkiLCJBdWd1c3QiLCJTZXB0ZW1iZXIiLCJPY3RvYmVyIiwiTm92ZW1iZXIiLCJEZWNlbWJlciJdLGE9WyJNb25kYXkiLCJUdWVzZGF5IiwiV2VkbmVzZGF5IiwiVGh1cnNkYXkiLCJGcmlkYXkiLCJTYXR1cmRheSIsIlN1bmRheSJdO3JldHVybnt5ZWFyOnRoaXMuZ2V0RnVsbFllYXIoKSx5ZWFyU3RyaW5nOmAke3RoaXMuZ2V0RnVsbFllYXIoKX1gLG1vbnRoOnRoaXMuZ2V0TW9udGgoKSsxLG1vbnRoU3RyaW5nOigiMCIrKHRoaXMuZ2V0TW9udGgoKSsxKSkuc2xpY2UoLTIpLG1vbnRoTmFtZTplW3RoaXMuZ2V0TW9udGgoKV0sZGF5OnRoaXMuZ2V0RGF0ZSgpLGRheVN0cmluZzooIjAiK3RoaXMuZ2V0RGF0ZSgpKS5zbGljZSgtMiksZGF5T2ZUaGVXZWVrOnRoaXMuZ2V0RGF5KCksZGF5T2ZUaGVXZWVrTmFtZTphW3RoaXMuZ2V0RGF5KCldfX1mb3JtYXQoZSl7cmV0dXJuIEtvLmRlZmF1bHQodGhpcy5nZXRUaW1lKCkpLmZvcm1hdChlKX1pc1RvZGF5KCl7cmV0dXJuIEtvLmRlZmF1bHQodGhpcy5nZXRUaW1lKCkpLmlzVG9kYXkoKX1sZXNzVGltZVBhc3NlZFRvTm93KGUpe2xldCBhPUtTKGUpO3JldHVybiBEYXRlLm5vdygpLXRoaXMuZ2V0VGltZSgpPGF9bW9yZVRpbWVQYXNzZWRUb05vdyhlKXtyZXR1cm4hdGhpcy5sZXNzVGltZVBhc3NlZFRvTm93KGUpfX19KTt2YXIgZUMsRWVlPWIoKCk9PntlQz1jbGFzc3tjb25zdHJ1Y3Rvcigpe3RoaXMubmFub1NlY29uZHM9bnVsbCx0aGlzLm1pbGxpU2Vjb25kcz1udWxsLHRoaXMuX21pbGxpU3RhcnQ9bnVsbCx0aGlzLl9taWxsaURpZmY9bnVsbCx0aGlzLl9zdGFydGVkPSExfXN0YXJ0KCl7dGhpcy5fc3RhcnRlZD0hMCx0aGlzLl9taWxsaVN0YXJ0PURhdGUubm93KCl9c3RvcCgpe2lmKHRoaXMuX3N0YXJ0ZWQ9PT0hMSl7Y29uc29sZS5sb2coIkhhc24ndCBzdGFydGVkIHlldCIpO3JldHVybn1yZXR1cm4gdGhpcy5fbWlsbGlEaWZmPURhdGUubm93KCktdGhpcy5fbWlsbGlTdGFydCx0aGlzLm5hbm9TZWNvbmRzPXRoaXMuX21pbGxpRGlmZioxZTMsdGhpcy5taWxsaVNlY29uZHM9dGhpcy5fbWlsbGlEaWZmLHRoaXN9cmVzZXQoKXt0aGlzLm5hbm9TZWNvbmRzPW51bGwsdGhpcy5taWxsaVNlY29uZHM9bnVsbCx0aGlzLl9taWxsaVN0YXJ0PW51bGwsdGhpcy5fbWlsbGlEaWZmPW51bGwsdGhpcy5fc3RhcnRlZD0hMX19fSk7dmFyIHRDLFBlZT1iKCgpPT57em4oKTt0Qz1jbGFzc3tjb25zdHJ1Y3RvcihlKXt0aGlzLnN0YXR1cz0iaW5pdGlhbCIsdGhpcy5zdGF0dXNBdXRob3JpemF0aW9uPW51bGwsdGhpcy5pbnRlcnZhbEpvYnM9W10sdGhpcy5pbnRlcnZhbE1pbGxpc2Vjb25kcz1lfXN0YXJ0KCl7dGhpcy5zdGF0dXM9InN0YXJ0ZWQiO2xldCBlPW5ldyBEYXRlO3RoaXMuc3RhdHVzQXV0aG9yaXphdGlvbj1lLChhc3luYygpPT57Zm9yKDt0aGlzLnN0YXR1cz09PSJzdGFydGVkIiYmdGhpcy5zdGF0dXNBdXRob3JpemF0aW9uPT09ZTspYXdhaXQgZHQuZGVsYXlGb3IodGhpcy5pbnRlcnZhbE1pbGxpc2Vjb25kcyksdGhpcy5leGVjdXRlSW50ZXJ2YWxKb2JzKCl9KSgpfXN0b3AoKXt0aGlzLnN0YXR1cz0ic3RvcHBlZCIsdGhpcy5zdGF0dXNBdXRob3JpemF0aW9uPW51bGx9YWRkSW50ZXJ2YWxKb2IoZSl7dGhpcy5pbnRlcnZhbEpvYnMucHVzaChlKX1leGVjdXRlSW50ZXJ2YWxKb2JzKCl7Zm9yKGxldCBlIG9mIHRoaXMuaW50ZXJ2YWxKb2JzKWUoKX19fSk7dmFyIG4zLGFDPWIoKCk9Pnt6bigpO24zPWNsYXNzIHR7c3RhdGljIGZyb21NaWxsaVNlY29uZHMoZSl7cmV0dXJuIG5ldyB0KGUpfXN0YXRpYyBmcm9tVGltZVN0YW1wKGUpe2xldCBhPW5ldyB0O3JldHVybiBhLmNoYW5nZT1hLm1pbGxpU2Vjb25kcy1lLm1pbGxpU2Vjb25kcyxhfWNvbnN0cnVjdG9yKGUpe3RoaXMuY2hhbmdlPW51bGwsZT90eXBlb2YgZT09Im51bWJlciImJih0aGlzLmRhdGU9bmV3IERhdGUoZSkpOnRoaXMuZGF0ZT1uZXcgRGF0ZSx0aGlzLm1pbGxpU2Vjb25kcz10aGlzLmRhdGUuZ2V0VGltZSgpLHRoaXMuZXBvY2h0aW1lPU1hdGguZmxvb3IodGhpcy5taWxsaVNlY29uZHMvMWUzKX1pc09sZGVyVGhhbk90aGVyVGltZVN0YW1wKGUsYT0wKXtyZXR1cm4gdGhpcy5taWxsaVNlY29uZHM8ZS5taWxsaVNlY29uZHMtYX1pc09sZGVyVGhhbihlLGE9MCl7cmV0dXJuIHRoaXMubWlsbGlTZWNvbmRzK2E8ZS5taWxsaVNlY29uZHN9aXNZb3VuZ2VyVGhhbk90aGVyVGltZVN0YW1wKGUsYT0wKXtyZXR1cm4gdGhpcy5taWxsaVNlY29uZHM+ZS5taWxsaVNlY29uZHMrYX1pc1lvdW5nZXJUaGFuTWlsbGlTZWNvbmRzKGUpe2xldCBpPW5ldyB0KCkuZXBvY2h0aW1lLWUscj1uZXcgdChpKTtyZXR1cm4gdGhpcy5pc1lvdW5nZXJUaGFuT3RoZXJUaW1lU3RhbXAocil9fX0pO3ZhciBpQyxJZWU9YigoKT0+e3puKCk7YUMoKTtpQz1jbGFzc3tnZXQgdGltZUxlZnQoKXtyZXR1cm4gdGhpcy50aW1lSW5NaWxsaXNlY29uZHMtdGhpcy5wYXVzZWRBdC5jaGFuZ2V9Y29uc3RydWN0b3IoZSl7dGhpcy5zdGF0ZT0iaW5pdGlhdGVkIix0aGlzLmNvbXBsZXRlZERlZmVycmVkPUJlLmRlZmVyKCksdGhpcy50aW1lSW5NaWxsaXNlY29uZHM9ZSx0aGlzLmNvbXBsZXRlZD10aGlzLmNvbXBsZXRlZERlZmVycmVkLnByb21pc2V9c3RhcnQoKXtpZighdGhpcy5zdGFydGVkQXQpdGhpcy5jdXJyZW50VGltZW91dD1zZXRUaW1lb3V0KCgpPT57dGhpcy5jb21wbGV0ZWREZWZlcnJlZC5yZXNvbHZlKCl9LHRoaXMudGltZUluTWlsbGlzZWNvbmRzKSx0aGlzLnN0YXJ0ZWRBdD1uZXcgbjM7ZWxzZSB0aHJvdyBuZXcgRXJyb3IoInRpbWVyIGhhcyBiZWVuIHN0YXJ0ZWQgYmVmb3JlLiBQbGVhc2UgdXNlIHJlc3VtZSBpbnN0ZWFkIil9cGF1c2UoKXt0aGlzLnN0YXJ0ZWRBdCYmKGNsZWFyVGltZW91dCh0aGlzLmN1cnJlbnRUaW1lb3V0KSx0aGlzLmN1cnJlbnRUaW1lb3V0PW51bGwsdGhpcy5wYXVzZWRBdD1uMy5mcm9tVGltZVN0YW1wKHRoaXMuc3RhcnRlZEF0KSl9cmVzdW1lKCl7aWYodGhpcy5zdGFydGVkQXQpdGhpcy5jdXJyZW50VGltZW91dD1zZXRUaW1lb3V0KCgpPT57dGhpcy5jb21wbGV0ZWREZWZlcnJlZC5yZXNvbHZlKCl9LHRoaXMudGltZUxlZnQpO2Vsc2UgdGhyb3cgbmV3IEVycm9yKCJ0aW1lciBoYXMgTk9UIGJlZW4gc3RhcnRlZCBiZWZvcmUuIFBsZWFzZSB1c2UgLnN0YXJ0KCkgaW5zdGVhZCIpfXJlc2V0KCl7dGhpcy5wYXVzZSgpLHRoaXMuc3RhcnRlZEF0PW51bGwsdGhpcy5wYXVzZWRBdD1udWxsfX19KTt2YXIgaHM9e307R2UoaHMse0Nyb25Kb2I6KCk9PnQ2LENyb25NYW5hZ2VyOigpPT5YUyxFeHRlbmRlZERhdGU6KCk9PkpTLEhydE1lYXN1cmVtZW50OigpPT5lQyxJbnRlcnZhbDooKT0+dEMsVGltZVN0YW1wOigpPT5uMyxUaW1lcjooKT0+aUMsZ2V0TWlsbGlTZWNvbmRzQXNIdW1hblJlYWRhYmxlQWdvVGltZTooKT0+Z190LGdldE1pbGxpU2Vjb25kc0FzSHVtYW5SZWFkYWJsZVN0cmluZzooKT0+bV90LGdldE1pbGxpU2Vjb25kc0Zyb21Vbml0czooKT0+S1MsdW5pdHM6KCk9PmtufSk7dmFyIHJDPWIoKCk9PntaUygpO1lTKCk7RGVlKCk7RWVlKCk7UGVlKCk7SWVlKCk7YUMoKTtRUygpfSk7dmFyIEZlZT1odCgoUnoxLE5lZSk9PnsidXNlIHN0cmljdCI7TmVlLmV4cG9ydHM9Y2xhc3N7Y29uc3RydWN0b3IoKXt0aGlzLnBhcmVudD1udWxsLHRoaXMucHJldmlvdXNTaWJsaW5nPW51bGwsdGhpcy5uZXh0U2libGluZz1udWxsLHRoaXMuZmlyc3RDaGlsZD1udWxsLHRoaXMubGFzdENoaWxkPW51bGwsdGhpcy5jaGlsZHJlblZlcnNpb249MCx0aGlzLmNoaWxkSW5kZXhDYWNoZWRVcFRvPW51bGwsdGhpcy5jYWNoZWRJbmRleD0tMSx0aGlzLmNhY2hlZEluZGV4VmVyc2lvbj1OYU59Z2V0IGlzQXR0YWNoZWQoKXtyZXR1cm4hISh0aGlzLnBhcmVudHx8dGhpcy5wcmV2aW91c1NpYmxpbmd8fHRoaXMubmV4dFNpYmxpbmcpfWdldCBoYXNDaGlsZHJlbigpe3JldHVybiEhdGhpcy5maXJzdENoaWxkfWNoaWxkcmVuQ2hhbmdlZCgpe3RoaXMuY2hpbGRyZW5WZXJzaW9uPXRoaXMuY2hpbGRyZW5WZXJzaW9uKzEmNDI5NDk2NzI5NSx0aGlzLmNoaWxkSW5kZXhDYWNoZWRVcFRvPW51bGx9Z2V0Q2FjaGVkSW5kZXgoZSl7cmV0dXJuIHRoaXMuY2FjaGVkSW5kZXhWZXJzaW9uIT09ZS5jaGlsZHJlblZlcnNpb24/KHRoaXMuY2FjaGVkSW5kZXhWZXJzaW9uPU5hTiwtMSk6dGhpcy5jYWNoZWRJbmRleH1zZXRDYWNoZWRJbmRleChlLGEpe3RoaXMuY2FjaGVkSW5kZXhWZXJzaW9uPWUuY2hpbGRyZW5WZXJzaW9uLHRoaXMuY2FjaGVkSW5kZXg9YX19fSk7dmFyIFJlZT1odCgoQnoxLE9lZSk9PnsidXNlIHN0cmljdCI7T2VlLmV4cG9ydHM9T2JqZWN0LmZyZWV6ZSh7RElTQ09OTkVDVEVEOjEsUFJFQ0VESU5HOjIsRk9MTE9XSU5HOjQsQ09OVEFJTlM6OCxDT05UQUlORURfQlk6MTZ9KX0pO3ZhciBqZWU9aHQoKEh6MSxWZWUpPT57InVzZSBzdHJpY3QiO3ZhciBCZWU9U3ltYm9sKCksSGVlPVN5bWJvbCgpLFNuPVN5bWJvbCgpLHFlZT1TeW1ib2woKSxQaT1jbGFzc3tjb25zdHJ1Y3RvcihlLGEsaSxyKXt0aGlzW0JlZV09ZSx0aGlzW0hlZV09YSx0aGlzW1NuXT1pLHRoaXNbcWVlXT1yfW5leHQoKXtsZXQgZT10aGlzW0JlZV0sYT10aGlzW3FlZV0saT10aGlzW0hlZV07aWYoIXRoaXNbU25dKXJldHVybntkb25lOiEwLHZhbHVlOml9O2xldCByPXRoaXNbU25dO3JldHVybiBhPT09MT90aGlzW1NuXT1lLl9ub2RlKHIpLnByZXZpb3VzU2libGluZzphPT09Mj90aGlzW1NuXT1lLl9ub2RlKHIpLm5leHRTaWJsaW5nOmE9PT0zP3RoaXNbU25dPWUuX25vZGUocikucGFyZW50OmE9PT00P3RoaXNbU25dPWUucHJlY2VkaW5nKHIse3Jvb3Q6aX0pOnRoaXNbU25dPWUuZm9sbG93aW5nKHIse3Jvb3Q6aX0pLHtkb25lOiExLHZhbHVlOnJ9fX07T2JqZWN0LmRlZmluZVByb3BlcnR5KFBpLnByb3RvdHlwZSxTeW1ib2wuaXRlcmF0b3Ise3ZhbHVlOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXN9LHdyaXRhYmxlOiExfSksUGkuUFJFVj0xLFBpLk5FWFQ9MixQaS5QQVJFTlQ9MyxQaS5QUkVDRURJTkc9NCxQaS5GT0xMT1dJTkc9NSxPYmplY3QuZnJlZXplKFBpKSxPYmplY3QuZnJlZXplKFBpLnByb3RvdHlwZSksVmVlLmV4cG9ydHM9UGl9KTt2YXIgbkM9aHQoKHF6MSxVZWUpPT57InVzZSBzdHJpY3QiO3ZhciB2X3Q9RmVlKCksQ249UmVlKCksbmk9amVlKCk7ZnVuY3Rpb24gc0MoKXtyZXR1cm4hMH1mdW5jdGlvbiBvMyh0LGUpe3JldHVybiB0W3QubGVuZ3RoLTEtZV19dmFyIE1wPWNsYXNze2NvbnN0cnVjdG9yKGUpe3RoaXMuc3ltYm9sPVN5bWJvbChlfHwiU3ltYm9sVHJlZSBkYXRhIil9aW5pdGlhbGl6ZShlKXtyZXR1cm4gdGhpcy5fbm9kZShlKSxlfV9ub2RlKGUpe2lmKCFlKXJldHVybiBudWxsO2xldCBhPWVbdGhpcy5zeW1ib2xdO3JldHVybiBhfHwoZVt0aGlzLnN5bWJvbF09bmV3IHZfdCl9aGFzQ2hpbGRyZW4oZSl7cmV0dXJuIHRoaXMuX25vZGUoZSkuaGFzQ2hpbGRyZW59Zmlyc3RDaGlsZChlKXtyZXR1cm4gdGhpcy5fbm9kZShlKS5maXJzdENoaWxkfWxhc3RDaGlsZChlKXtyZXR1cm4gdGhpcy5fbm9kZShlKS5sYXN0Q2hpbGR9cHJldmlvdXNTaWJsaW5nKGUpe3JldHVybiB0aGlzLl9ub2RlKGUpLnByZXZpb3VzU2libGluZ31uZXh0U2libGluZyhlKXtyZXR1cm4gdGhpcy5fbm9kZShlKS5uZXh0U2libGluZ31wYXJlbnQoZSl7cmV0dXJuIHRoaXMuX25vZGUoZSkucGFyZW50fWxhc3RJbmNsdXNpdmVEZXNjZW5kYW50KGUpe2xldCBhLGk9ZTtmb3IoO2E9dGhpcy5fbm9kZShpKS5sYXN0Q2hpbGQ7KWk9YTtyZXR1cm4gaX1wcmVjZWRpbmcoZSxhKXtsZXQgaT1hJiZhLnJvb3Q7aWYoZT09PWkpcmV0dXJuIG51bGw7bGV0IHI9dGhpcy5fbm9kZShlKS5wcmV2aW91c1NpYmxpbmc7cmV0dXJuIHI/dGhpcy5sYXN0SW5jbHVzaXZlRGVzY2VuZGFudChyKTp0aGlzLl9ub2RlKGUpLnBhcmVudH1mb2xsb3dpbmcoZSxhKXtsZXQgaT1hJiZhLnJvb3Qscz0hKGEmJmEuc2tpcENoaWxkcmVuKSYmdGhpcy5fbm9kZShlKS5maXJzdENoaWxkO2lmKHMpcmV0dXJuIHM7bGV0IG49ZTtkb3tpZihuPT09aSlyZXR1cm4gbnVsbDtsZXQgbz10aGlzLl9ub2RlKG4pLm5leHRTaWJsaW5nO2lmKG8pcmV0dXJuIG87bj10aGlzLl9ub2RlKG4pLnBhcmVudH13aGlsZShuKTtyZXR1cm4gbnVsbH1jaGlsZHJlblRvQXJyYXkoZSxhKXtsZXQgaT1hJiZhLmFycmF5fHxbXSxyPWEmJmEuZmlsdGVyfHxzQyxzPWEmJmEudGhpc0FyZ3x8dm9pZCAwLG49dGhpcy5fbm9kZShlKSxvPW4uZmlyc3RDaGlsZCxkPTA7Zm9yKDtvOyl7bGV0IGM9dGhpcy5fbm9kZShvKTtjLnNldENhY2hlZEluZGV4KG4sZCksci5jYWxsKHMsbykmJmkucHVzaChvKSxvPWMubmV4dFNpYmxpbmcsKytkfXJldHVybiBpfWFuY2VzdG9yc1RvQXJyYXkoZSxhKXtsZXQgaT1hJiZhLmFycmF5fHxbXSxyPWEmJmEuZmlsdGVyfHxzQyxzPWEmJmEudGhpc0FyZ3x8dm9pZCAwLG49ZTtmb3IoO247KXIuY2FsbChzLG4pJiZpLnB1c2gobiksbj10aGlzLl9ub2RlKG4pLnBhcmVudDtyZXR1cm4gaX10cmVlVG9BcnJheShlLGEpe2xldCBpPWEmJmEuYXJyYXl8fFtdLHI9YSYmYS5maWx0ZXJ8fHNDLHM9YSYmYS50aGlzQXJnfHx2b2lkIDAsbj1lO2Zvcig7bjspci5jYWxsKHMsbikmJmkucHVzaChuKSxuPXRoaXMuZm9sbG93aW5nKG4se3Jvb3Q6ZX0pO3JldHVybiBpfWNoaWxkcmVuSXRlcmF0b3IoZSxhKXtsZXQgaT1hJiZhLnJldmVyc2Uscj10aGlzLl9ub2RlKGUpO3JldHVybiBuZXcgbmkodGhpcyxlLGk/ci5sYXN0Q2hpbGQ6ci5maXJzdENoaWxkLGk/bmkuUFJFVjpuaS5ORVhUKX1wcmV2aW91c1NpYmxpbmdzSXRlcmF0b3IoZSl7cmV0dXJuIG5ldyBuaSh0aGlzLGUsdGhpcy5fbm9kZShlKS5wcmV2aW91c1NpYmxpbmcsbmkuUFJFVil9bmV4dFNpYmxpbmdzSXRlcmF0b3IoZSl7cmV0dXJuIG5ldyBuaSh0aGlzLGUsdGhpcy5fbm9kZShlKS5uZXh0U2libGluZyxuaS5ORVhUKX1hbmNlc3RvcnNJdGVyYXRvcihlKXtyZXR1cm4gbmV3IG5pKHRoaXMsZSxlLG5pLlBBUkVOVCl9dHJlZUl0ZXJhdG9yKGUsYSl7bGV0IGk9YSYmYS5yZXZlcnNlO3JldHVybiBuZXcgbmkodGhpcyxlLGk/dGhpcy5sYXN0SW5jbHVzaXZlRGVzY2VuZGFudChlKTplLGk/bmkuUFJFQ0VESU5HOm5pLkZPTExPV0lORyl9aW5kZXgoZSl7bGV0IGE9dGhpcy5fbm9kZShlKSxpPXRoaXMuX25vZGUoYS5wYXJlbnQpO2lmKCFpKXJldHVybi0xO2xldCByPWEuZ2V0Q2FjaGVkSW5kZXgoaSk7aWYocj49MClyZXR1cm4gcjtyPTA7bGV0IHM9aS5maXJzdENoaWxkO2lmKGkuY2hpbGRJbmRleENhY2hlZFVwVG8pe2xldCBuPXRoaXMuX25vZGUoaS5jaGlsZEluZGV4Q2FjaGVkVXBUbyk7cz1uLm5leHRTaWJsaW5nLHI9bi5nZXRDYWNoZWRJbmRleChpKSsxfWZvcig7czspe2xldCBuPXRoaXMuX25vZGUocyk7aWYobi5zZXRDYWNoZWRJbmRleChpLHIpLHM9PT1lKWJyZWFrOysrcixzPW4ubmV4dFNpYmxpbmd9cmV0dXJuIGkuY2hpbGRJbmRleENhY2hlZFVwVG89ZSxyfWNoaWxkcmVuQ291bnQoZSl7bGV0IGE9dGhpcy5fbm9kZShlKTtyZXR1cm4gYS5sYXN0Q2hpbGQ/dGhpcy5pbmRleChhLmxhc3RDaGlsZCkrMTowfWNvbXBhcmVUcmVlUG9zaXRpb24oZSxhKXtpZihlPT09YSlyZXR1cm4gMDtsZXQgaT1bXTt7bGV0IGg9ZTtmb3IoO2g7KXtpZihoPT09YSlyZXR1cm4gQ24uQ09OVEFJTlN8Q24uUFJFQ0VESU5HO2kucHVzaChoKSxoPXRoaXMucGFyZW50KGgpfX1sZXQgcj1bXTt7bGV0IGg9YTtmb3IoO2g7KXtpZihoPT09ZSlyZXR1cm4gQ24uQ09OVEFJTkVEX0JZfENuLkZPTExPV0lORztyLnB1c2goaCksaD10aGlzLnBhcmVudChoKX19bGV0IHM9bzMoaSwwKTtpZighc3x8cyE9PW8zKHIsMCkpcmV0dXJuIENuLkRJU0NPTk5FQ1RFRDtsZXQgbj0wLG89TWF0aC5taW4oaS5sZW5ndGgsci5sZW5ndGgpO2ZvcihsZXQgaD0wO2g8bzsrK2gpe2xldCBsPW8zKGksaCksZj1vMyhyLGgpO2lmKGwhPT1mKWJyZWFrO249aH1sZXQgZD10aGlzLmluZGV4KG8zKGksbisxKSk7cmV0dXJuIHRoaXMuaW5kZXgobzMocixuKzEpKTxkP0NuLlBSRUNFRElORzpDbi5GT0xMT1dJTkd9cmVtb3ZlKGUpe2xldCBhPXRoaXMuX25vZGUoZSksaT10aGlzLl9ub2RlKGEucGFyZW50KSxyPXRoaXMuX25vZGUoYS5wcmV2aW91c1NpYmxpbmcpLHM9dGhpcy5fbm9kZShhLm5leHRTaWJsaW5nKTtyZXR1cm4gaSYmKGkuZmlyc3RDaGlsZD09PWUmJihpLmZpcnN0Q2hpbGQ9YS5uZXh0U2libGluZyksaS5sYXN0Q2hpbGQ9PT1lJiYoaS5sYXN0Q2hpbGQ9YS5wcmV2aW91c1NpYmxpbmcpKSxyJiYoci5uZXh0U2libGluZz1hLm5leHRTaWJsaW5nKSxzJiYocy5wcmV2aW91c1NpYmxpbmc9YS5wcmV2aW91c1NpYmxpbmcpLGEucGFyZW50PW51bGwsYS5wcmV2aW91c1NpYmxpbmc9bnVsbCxhLm5leHRTaWJsaW5nPW51bGwsYS5jYWNoZWRJbmRleD0tMSxhLmNhY2hlZEluZGV4VmVyc2lvbj1OYU4saSYmaS5jaGlsZHJlbkNoYW5nZWQoKSxlfWluc2VydEJlZm9yZShlLGEpe2xldCBpPXRoaXMuX25vZGUoZSkscj10aGlzLl9ub2RlKGkucHJldmlvdXNTaWJsaW5nKSxzPXRoaXMuX25vZGUoYSksbj10aGlzLl9ub2RlKGkucGFyZW50KTtpZihzLmlzQXR0YWNoZWQpdGhyb3cgRXJyb3IoIkdpdmVuIG9iamVjdCBpcyBhbHJlYWR5IHByZXNlbnQgaW4gdGhpcyBTeW1ib2xUcmVlLCByZW1vdmUgaXQgZmlyc3QiKTtyZXR1cm4gcy5wYXJlbnQ9aS5wYXJlbnQscy5wcmV2aW91c1NpYmxpbmc9aS5wcmV2aW91c1NpYmxpbmcscy5uZXh0U2libGluZz1lLGkucHJldmlvdXNTaWJsaW5nPWEsciYmKHIubmV4dFNpYmxpbmc9YSksbiYmbi5maXJzdENoaWxkPT09ZSYmKG4uZmlyc3RDaGlsZD1hKSxuJiZuLmNoaWxkcmVuQ2hhbmdlZCgpLGF9aW5zZXJ0QWZ0ZXIoZSxhKXtsZXQgaT10aGlzLl9ub2RlKGUpLHI9dGhpcy5fbm9kZShpLm5leHRTaWJsaW5nKSxzPXRoaXMuX25vZGUoYSksbj10aGlzLl9ub2RlKGkucGFyZW50KTtpZihzLmlzQXR0YWNoZWQpdGhyb3cgRXJyb3IoIkdpdmVuIG9iamVjdCBpcyBhbHJlYWR5IHByZXNlbnQgaW4gdGhpcyBTeW1ib2xUcmVlLCByZW1vdmUgaXQgZmlyc3QiKTtyZXR1cm4gcy5wYXJlbnQ9aS5wYXJlbnQscy5wcmV2aW91c1NpYmxpbmc9ZSxzLm5leHRTaWJsaW5nPWkubmV4dFNpYmxpbmcsaS5uZXh0U2libGluZz1hLHImJihyLnByZXZpb3VzU2libGluZz1hKSxuJiZuLmxhc3RDaGlsZD09PWUmJihuLmxhc3RDaGlsZD1hKSxuJiZuLmNoaWxkcmVuQ2hhbmdlZCgpLGF9cHJlcGVuZENoaWxkKGUsYSl7bGV0IGk9dGhpcy5fbm9kZShlKSxyPXRoaXMuX25vZGUoYSk7aWYoci5pc0F0dGFjaGVkKXRocm93IEVycm9yKCJHaXZlbiBvYmplY3QgaXMgYWxyZWFkeSBwcmVzZW50IGluIHRoaXMgU3ltYm9sVHJlZSwgcmVtb3ZlIGl0IGZpcnN0Iik7cmV0dXJuIGkuaGFzQ2hpbGRyZW4/dGhpcy5pbnNlcnRCZWZvcmUoaS5maXJzdENoaWxkLGEpOihyLnBhcmVudD1lLGkuZmlyc3RDaGlsZD1hLGkubGFzdENoaWxkPWEsaS5jaGlsZHJlbkNoYW5nZWQoKSksYX1hcHBlbmRDaGlsZChlLGEpe2xldCBpPXRoaXMuX25vZGUoZSkscj10aGlzLl9ub2RlKGEpO2lmKHIuaXNBdHRhY2hlZCl0aHJvdyBFcnJvcigiR2l2ZW4gb2JqZWN0IGlzIGFscmVhZHkgcHJlc2VudCBpbiB0aGlzIFN5bWJvbFRyZWUsIHJlbW92ZSBpdCBmaXJzdCIpO3JldHVybiBpLmhhc0NoaWxkcmVuP3RoaXMuaW5zZXJ0QWZ0ZXIoaS5sYXN0Q2hpbGQsYSk6KHIucGFyZW50PWUsaS5maXJzdENoaWxkPWEsaS5sYXN0Q2hpbGQ9YSxpLmNoaWxkcmVuQ2hhbmdlZCgpKSxhfX07VWVlLmV4cG9ydHM9TXAsTXAuVHJlZVBvc2l0aW9uPUNufSk7dmFyIHpwLG9pPWIoKCk9Pnt1cigpO0lrKCk7YzIoKTtEaSgpO3JDKCk7enA9VTEobkMoKSwxKX0pO3ZhciBvQyxXZWU9YigoKT0+e29pKCk7b0M9Y2xhc3N7Y29uc3RydWN0b3IoKXt0aGlzLmV4ZWN1dGlvblNsb3RzPVtdLHRoaXMuaXNQcm9jZXNzaW5nPSExLHRoaXMubm9uRXhjbHVzaXZlTWF4Q29uY3VycmVuY3k9MS8wLHRoaXMubm9uRXhjbHVzaXZlQ3VycmVudENvdW50PTAsdGhpcy5ub25FeGNsdXNpdmVQZW5kaW5nUXVldWU9W119YXN5bmMgZ2V0RXhjbHVzaXZlRXhlY3V0aW9uU2xvdChlLGEpe2xldCBpPUJlLmRlZmVyKCkscj17ZnVuY1RvRXhlY3V0ZTplLGV4ZWN1dGlvbkRlZmVycmVkOmksdGltZW91dDphLG1vZGU6ImV4Y2x1c2l2ZSJ9O3JldHVybiB0aGlzLmV4ZWN1dGlvblNsb3RzLnB1c2gociksdGhpcy5wcm9jZXNzRXhlY3V0aW9uU2xvdHMoKSxpLnByb21pc2V9YXN5bmMgZ2V0Tm9uRXhjbHVzaXZlRXhlY3V0aW9uU2xvdChlLGEpe2xldCBpPUJlLmRlZmVyKCkscj17ZnVuY1RvRXhlY3V0ZTplLGV4ZWN1dGlvbkRlZmVycmVkOmksdGltZW91dDphLG1vZGU6Im5vbmV4Y2x1c2l2ZSJ9O3JldHVybiB0aGlzLmV4ZWN1dGlvblNsb3RzLnB1c2gociksdGhpcy5wcm9jZXNzRXhlY3V0aW9uU2xvdHMoKSxpLnByb21pc2V9c2V0Tm9uRXhjbHVzaXZlTWF4Q29uY3VycmVuY3koZSl7aWYoIU51bWJlci5pc0Zpbml0ZShlKXx8ZTwxKXRocm93IG5ldyBFcnJvcigibm9uRXhjbHVzaXZlTWF4Q29uY3VycmVuY3kgbXVzdCBiZSBhIGZpbml0ZSBudW1iZXIgPj0gMSIpO3RoaXMubm9uRXhjbHVzaXZlTWF4Q29uY3VycmVuY3k9ZX1nZXROb25FeGNsdXNpdmVNYXhDb25jdXJyZW5jeSgpe3JldHVybiB0aGlzLm5vbkV4Y2x1c2l2ZU1heENvbmN1cnJlbmN5fWdldEFjdGl2ZU5vbkV4Y2x1c2l2ZUNvdW50KCl7cmV0dXJuIHRoaXMubm9uRXhjbHVzaXZlQ3VycmVudENvdW50fWdldFBlbmRpbmdOb25FeGNsdXNpdmVDb3VudCgpe3JldHVybiB0aGlzLm5vbkV4Y2x1c2l2ZVBlbmRpbmdRdWV1ZS5sZW5ndGh9YXN5bmMgcHJvY2Vzc0V4ZWN1dGlvblNsb3RzKCl7aWYoIXRoaXMuaXNQcm9jZXNzaW5nKXtmb3IodGhpcy5pc1Byb2Nlc3Npbmc9ITA7dGhpcy5leGVjdXRpb25TbG90cy5sZW5ndGg+MDspe2xldCBlPXRoaXMuZXhlY3V0aW9uU2xvdHNbMF07aWYoZS5tb2RlPT09ImV4Y2x1c2l2ZSIpYXdhaXQgdGhpcy5leGVjdXRlRXhjbHVzaXZlU2xvdChlKSx0aGlzLmV4ZWN1dGlvblNsb3RzLnNoaWZ0KCk7ZWxzZXtsZXQgYT1bXTtmb3IoO3RoaXMuZXhlY3V0aW9uU2xvdHMubGVuZ3RoPjAmJnRoaXMuZXhlY3V0aW9uU2xvdHNbMF0ubW9kZT09PSJub25leGNsdXNpdmUiOylhLnB1c2godGhpcy5leGVjdXRpb25TbG90cy5zaGlmdCgpKTthd2FpdCB0aGlzLmV4ZWN1dGVOb25FeGNsdXNpdmVTbG90cyhhKX19dGhpcy5pc1Byb2Nlc3Npbmc9ITF9fWFzeW5jIGV4ZWN1dGVFeGNsdXNpdmVTbG90KGUpe3RyeXtpZihlLnRpbWVvdXQpe2xldCBhPWF3YWl0IFByb21pc2UucmFjZShbZS5mdW5jVG9FeGVjdXRlKCksZHQuZGVsYXlGb3IoZS50aW1lb3V0KS50aGVuKCgpPT57dGhyb3cgbmV3IEVycm9yKCJUaW1lb3V0IHJlYWNoZWQiKX0pXSk7ZS5leGVjdXRpb25EZWZlcnJlZC5yZXNvbHZlKGEpfWVsc2V7bGV0IGE9YXdhaXQgZS5mdW5jVG9FeGVjdXRlKCk7ZS5leGVjdXRpb25EZWZlcnJlZC5yZXNvbHZlKGEpfX1jYXRjaChhKXtlLmV4ZWN1dGlvbkRlZmVycmVkLnJlamVjdChhKX19YXN5bmMgZXhlY3V0ZU5vbkV4Y2x1c2l2ZVNsb3RzKGUpe2xldCBhPWUubWFwKGFzeW5jIGk9Pnthd2FpdCB0aGlzLndhaXRGb3JOb25FeGNsdXNpdmVTbG90KCk7dHJ5e2lmKGkudGltZW91dCl7bGV0IHI9YXdhaXQgUHJvbWlzZS5yYWNlKFtpLmZ1bmNUb0V4ZWN1dGUoKSxkdC5kZWxheUZvcihpLnRpbWVvdXQpLnRoZW4oKCk9Pnt0aHJvdyBuZXcgRXJyb3IoIlRpbWVvdXQgcmVhY2hlZCIpfSldKTtpLmV4ZWN1dGlvbkRlZmVycmVkLnJlc29sdmUocil9ZWxzZXtsZXQgcj1hd2FpdCBpLmZ1bmNUb0V4ZWN1dGUoKTtpLmV4ZWN1dGlvbkRlZmVycmVkLnJlc29sdmUocil9fWNhdGNoKHIpe2kuZXhlY3V0aW9uRGVmZXJyZWQucmVqZWN0KHIpfWZpbmFsbHl7dGhpcy5yZWxlYXNlTm9uRXhjbHVzaXZlU2xvdCgpfX0pO2F3YWl0IFByb21pc2UuYWxsKGEpfXdhaXRGb3JOb25FeGNsdXNpdmVTbG90KCl7cmV0dXJuIHRoaXMubm9uRXhjbHVzaXZlQ3VycmVudENvdW50PHRoaXMubm9uRXhjbHVzaXZlTWF4Q29uY3VycmVuY3k/KHRoaXMubm9uRXhjbHVzaXZlQ3VycmVudENvdW50KyssUHJvbWlzZS5yZXNvbHZlKCkpOm5ldyBQcm9taXNlKGU9Pnt0aGlzLm5vbkV4Y2x1c2l2ZVBlbmRpbmdRdWV1ZS5wdXNoKCgpPT57dGhpcy5ub25FeGNsdXNpdmVDdXJyZW50Q291bnQrKyxlKCl9KX0pfXJlbGVhc2VOb25FeGNsdXNpdmVTbG90KCl7dGhpcy5ub25FeGNsdXNpdmVDdXJyZW50Q291bnQtLTtsZXQgZT10aGlzLm5vbkV4Y2x1c2l2ZVBlbmRpbmdRdWV1ZS5zaGlmdCgpO2UmJmUoKX19fSk7dmFyIGxDLEdlZT1iKCgpPT57b2koKTtsQz1jbGFzc3tjb25zdHJ1Y3RvcihlPTE2KXt0aGlzLmhhc1NwYWNlPW5ldyBBdC5yeGpzLlN1YmplY3QsdGhpcy5pdGVtc0F2YWlsYWJsZT1uZXcgQXQucnhqcy5TdWJqZWN0LHRoaXMuZGF0YT1bXSx0aGlzLmhpZ2hXYXRlck1hcms9ZX1wdXNoKGUpe3RoaXMuZGF0YS5wdXNoKGUpLHRoaXMuaXRlbXNBdmFpbGFibGUubmV4dCgiaXRlbXNBdmFpbGFibGUiKTtsZXQgYT10aGlzLmNoZWNrU3BhY2VBdmFpbGFibGUoKTtyZXR1cm4gYSYmdGhpcy5oYXNTcGFjZS5uZXh0KCJoYXNTcGFjZSIpLGF9c2hpZnQoKXtsZXQgZT10aGlzLmRhdGEuc2hpZnQoKTtyZXR1cm4gdGhpcy5jaGVja1NwYWNlQXZhaWxhYmxlKCkmJnRoaXMuaGFzU3BhY2UubmV4dCgiaGFzU3BhY2UiKSxlfWNoZWNrU3BhY2VBdmFpbGFibGUoKXtyZXR1cm4gdGhpcy5kYXRhLmxlbmd0aDx0aGlzLmhpZ2hXYXRlck1hcmt9Y2hlY2tIYXNJdGVtcygpe3JldHVybiB0aGlzLmRhdGEubGVuZ3RoPjB9d2FpdEZvclNwYWNlKCl7cmV0dXJuIG5ldyBQcm9taXNlKGU9PntpZih0aGlzLmNoZWNrU3BhY2VBdmFpbGFibGUoKSllKCk7ZWxzZXtsZXQgYT10aGlzLmhhc1NwYWNlLnN1YnNjcmliZSgoKT0+e2EudW5zdWJzY3JpYmUoKSxlKCl9KX19KX13YWl0Rm9ySXRlbXMoKXtyZXR1cm4gbmV3IFByb21pc2UoZT0+e2lmKHRoaXMuZGF0YS5sZW5ndGg+MCllKCk7ZWxzZXtsZXQgYT10aGlzLml0ZW1zQXZhaWxhYmxlLnN1YnNjcmliZSgoKT0+e2EudW5zdWJzY3JpYmUoKSxlKCl9KX19KX19fSk7dmFyIGE2LGNDPWIoKCk9PntvaSgpO2E2PWNsYXNzIHR7Y29uc3RydWN0b3IoKXt0aGlzLm1hcE9iamVjdD17fX1pc1VuaXF1ZUtleShlKXtyZXR1cm4hdGhpcy5tYXBPYmplY3RbZV19YWRkVG9NYXAoZSxhLGkpe3JldHVybiB0aGlzLmlzVW5pcXVlS2V5KGUpfHxpJiZpLmZvcmNlPyh0aGlzLm1hcE9iamVjdFtlXT1hLCEwKTohMX1nZXRCeUtleShlKXtyZXR1cm4gdGhpcy5tYXBPYmplY3RbZV19cmVtb3ZlRnJvbU1hcChlKXtsZXQgYT10aGlzLmdldEJ5S2V5KGUpO3JldHVybiBkZWxldGUgdGhpcy5tYXBPYmplY3RbZV0sYX1nZXRLZXlzKCl7bGV0IGU9W107Zm9yKGxldCBhIGluIHRoaXMubWFwT2JqZWN0KXRoaXMubWFwT2JqZWN0W2FdJiZlLnB1c2goYSk7cmV0dXJuIGV9Y2xlYW4oKXt0aGlzLm1hcE9iamVjdD17fX1jb25jYXQoZSl7bGV0IGE9bmV3IHQ7Zm9yKGxldCBpIG9mIHRoaXMuZ2V0S2V5cygpKWEuYWRkVG9NYXAoaSx0aGlzLmdldEJ5S2V5KGkpKTtmb3IobGV0IGkgb2YgZS5nZXRLZXlzKCkpYS5hZGRUb01hcChpLGUuZ2V0QnlLZXkoaSkse2ZvcmNlOiEwfSk7cmV0dXJuIGF9YWRkQWxsRnJvbU90aGVyKGUpe2ZvcihsZXQgYSBvZiBlLmdldEtleXMoKSl0aGlzLmFkZFRvTWFwKGEsZS5nZXRCeUtleShhKSx7Zm9yY2U6ITB9KX1hc3luYyBmaW5kKGUpe2ZvcihsZXQgYSBvZiB0aGlzLmdldEtleXMoKSl7bGV0IGk9dGhpcy5nZXRCeUtleShhKTtpZihhd2FpdCBlKGkpKXJldHVybiBpfX19fSk7dmFyIFllZSxRbyxrcD1iKCgpPT57b2koKTtjQygpO1llZT0odD0idW5pIik9PmAke3R9eHh4eHh4eHh4eHhgLnJlcGxhY2UoL1t4eV0vZyxlPT57bGV0IGE9TWF0aC5yYW5kb20oKSoxNnwwO3JldHVybihlPT09IngiP2E6YSYzfDgpLnRvU3RyaW5nKDE2KX0pLFFvPWNsYXNzIHR7Y29uc3RydWN0b3IoKXt0aGlzLmZhc3RNYXA9bmV3IGE2LHRoaXMuZXZlbnRTdWJqZWN0PW5ldyBBdC5yeGpzLlN1YmplY3R9YWRkTWFwcGVkVW5pcXVlKGUsYSl7dGhpcy5mYXN0TWFwLmFkZFRvTWFwKGUsYSl9Z2V0TWFwcGVkVW5pcXVlKGUpe3JldHVybiB0aGlzLmZhc3RNYXAuZ2V0QnlLZXkoZSl9cmVtb3ZlTWFwcGVkVW5pcXVlKGUpe2xldCBhPXRoaXMuZ2V0TWFwcGVkVW5pcXVlKGUpfWFkZChlKXtmb3IobGV0IGkgb2YgdGhpcy5mYXN0TWFwLmdldEtleXMoKSlpZih0aGlzLmZhc3RNYXAuZ2V0QnlLZXkoaSk9PT1lKXJldHVybiBpO2xldCBhPVllZSgia2V5Iik7cmV0dXJuIHRoaXMuYWRkTWFwcGVkVW5pcXVlKGEsZSksdGhpcy5ldmVudFN1YmplY3QubmV4dCh7b3BlcmF0aW9uOiJhZGQiLHBheWxvYWQ6ZX0pLGF9YWRkQXJyYXkoZSl7Zm9yKGxldCBhIG9mIGUpdGhpcy5hZGQoYSl9Y2hlY2tGb3JPYmplY3QoZSl7cmV0dXJuISF0aGlzLmdldEtleUZvck9iamVjdChlKX1nZXRLZXlGb3JPYmplY3QoZSl7bGV0IGE9bnVsbDtmb3IobGV0IGkgb2YgdGhpcy5mYXN0TWFwLmdldEtleXMoKSlpZighYSYmdGhpcy5mYXN0TWFwLmdldEJ5S2V5KGkpPT09ZSlhPWk7ZWxzZSBjb250aW51ZTtyZXR1cm4gYX1hc3luYyBmaW5kKGUpe3JldHVybiB0aGlzLmZhc3RNYXAuZmluZChlKX1maW5kU3luYyhlKXtmb3IobGV0IGEgb2YgdGhpcy5mYXN0TWFwLmdldEtleXMoKSlpZihlKHRoaXMuZmFzdE1hcC5nZXRCeUtleShhKSkpcmV0dXJuIHRoaXMuZ2V0TWFwcGVkVW5pcXVlKGEpfWFzeW5jIGZpbmRPbmVBbmRSZW1vdmUoZSl7bGV0IGE9YXdhaXQgdGhpcy5maW5kKGUpO3JldHVybiBhJiZ0aGlzLnJlbW92ZShhKSxhfWZpbmRPbmVBbmRSZW1vdmVTeW5jKGUpe2xldCBhPXRoaXMuZmluZFN5bmMoZSk7cmV0dXJuIGEmJnRoaXMucmVtb3ZlKGEpLGF9YXN5bmMgZm9yRWFjaChlKXtmb3IobGV0IGEgb2YgdGhpcy5mYXN0TWFwLmdldEtleXMoKSlhd2FpdCBlKHRoaXMuZmFzdE1hcC5nZXRCeUtleShhKSl9Z2V0T25lQW5kUmVtb3ZlKCl7bGV0IGU9dGhpcy5mYXN0TWFwLmdldEtleXMoKTtpZihlLmxlbmd0aD09PTApcmV0dXJuIG51bGw7e2xldCBhPWVbMF0saT10aGlzLmZhc3RNYXAucmVtb3ZlRnJvbU1hcChhKTtyZXR1cm4gdGhpcy5ldmVudFN1YmplY3QubmV4dCh7b3BlcmF0aW9uOiJyZW1vdmUiLHBheWxvYWQ6aX0pLGl9fWdldEFycmF5KCl7bGV0IGU9W107Zm9yKGxldCBhIG9mIHRoaXMuZmFzdE1hcC5nZXRLZXlzKCkpZS5wdXNoKHRoaXMuZmFzdE1hcC5nZXRCeUtleShhKSk7cmV0dXJuIGV9aXNFbXB0eSgpe3JldHVybiB0aGlzLmZhc3RNYXAuZ2V0S2V5cygpLmxlbmd0aD09PTB9cmVtb3ZlKGUpe2lmKHRoaXMuY2hlY2tGb3JPYmplY3QoZSkpe2xldCBhPXRoaXMuZ2V0S2V5Rm9yT2JqZWN0KGUpLGk9dGhpcy5mYXN0TWFwLnJlbW92ZUZyb21NYXAoYSk7cmV0dXJuIHRoaXMuZXZlbnRTdWJqZWN0Lm5leHQoe29wZXJhdGlvbjoicmVtb3ZlIixwYXlsb2FkOml9KSxpfXJldHVybiBudWxsfXdpcGUoKXtmb3IobGV0IGUgb2YgdGhpcy5mYXN0TWFwLmdldEtleXMoKSl0aGlzLmZhc3RNYXAucmVtb3ZlRnJvbU1hcChlKX1jb25jYXQoZSl7bGV0IGE9bmV3IHQ7cmV0dXJuIGEuZmFzdE1hcC5hZGRBbGxGcm9tT3RoZXIodGhpcy5mYXN0TWFwKSxhLmZhc3RNYXAuYWRkQWxsRnJvbU90aGVyKGUuZmFzdE1hcCksYX1hZGRBbGxGcm9tT3RoZXIoZSl7dGhpcy5mYXN0TWFwLmFkZEFsbEZyb21PdGhlcihlLmZhc3RNYXApfX19KTt2YXIgaTYsZEM9YigoKT0+e29pKCk7aEMoKTtpNj1jbGFzc3tnZXQgY29tcGFyaXNvblN0cmluZygpe3JldHVybiB0aGlzLmNvbXBhcmlzb25GdW5jKHRoaXMub3JpZ2luYWxJbnRlcmVzdCl9ZnVsbGZpbGxJbnRlcmVzdChlKXt0aGlzLmlzRnVsbGZpbGxlZD0hMCx0aGlzLmZ1bGxmaWxsbWVudFN0b3JlPVtdLHRoaXMuaW50ZXJlc3REZWZlcnJlZC5yZXNvbHZlKGUpfWNvbnN0cnVjdG9yKGUsYSxpLHIpe3RoaXMuZGVzdHJ1Y3Rpb25UaW1lcj1uZXcgaHMuVGltZXIoMWU0KSx0aGlzLmlzRnVsbGZpbGxlZD0hMSx0aGlzLmZ1bGxmaWxsbWVudFN0b3JlPVtdLHRoaXMuaW50ZXJlc3REZWZlcnJlZD1uZXcgQmUuRGVmZXJyZWQsdGhpcy5pbnRlcmVzdEZ1bGxmaWxsZWQ9dGhpcy5pbnRlcmVzdERlZmVycmVkLnByb21pc2UsdGhpcy5pbnRlcmVzdE1hcFJlZj1lLHRoaXMub3JpZ2luYWxJbnRlcmVzdD1hLHRoaXMuY29tcGFyaXNvbkZ1bmM9aSx0aGlzLm9wdGlvbnM9cix0aGlzLmRlc3RydWN0aW9uVGltZXIuY29tcGxldGVkLnRoZW4oKCk9Pnt0aGlzLmRlc3Ryb3koKX0pLHRoaXMub3B0aW9ucz8ubWFya0xvc3RBZnRlckRlZmF1bHQmJmR0LmRlbGF5Rm9yKHRoaXMub3B0aW9ucy5tYXJrTG9zdEFmdGVyRGVmYXVsdCkudGhlbih0aGlzLm1hcmtMb3N0KX1kZXN0cm95KCl7dGhpcy5pbnRlcmVzdE1hcFJlZi5yZW1vdmVJbnRlcmVzdCh0aGlzKSwhdGhpcy5pc0Z1bGxmaWxsZWQmJnRoaXMub3B0aW9ucy5kZWZhdWx0RnVsbGZpbGxtZW50JiZ0aGlzLmZ1bGxmaWxsSW50ZXJlc3QodGhpcy5vcHRpb25zLmRlZmF1bHRGdWxsZmlsbG1lbnQpfW1hcmtMb3N0KCl7dGhpcy5kZXN0cnVjdGlvblRpbWVyLnN0YXJ0KCl9cmVuZXcoKXt0aGlzLmRlc3RydWN0aW9uVGltZXIucmVzZXQoKX19fSk7dmFyIHBDLGhDPWIoKCk9PntvaSgpO2twKCk7ZEMoKTtwQz1jbGFzc3tjb25zdHJ1Y3RvcihlLGE9e30pe3RoaXMuaW50ZXJlc3RPYmplY3RNYXA9bmV3IFFvLHRoaXMuaW50ZXJlc3RPYnNlcnZhYmxlPW5ldyBBdC5PYnNlcnZhYmxlSW50YWtlLHRoaXMuY29tcGFyaXNvbkZ1bmM9ZSx0aGlzLm9wdGlvbnM9YX1hc3luYyBhZGRJbnRlcmVzdChlLGEpe2xldCBpPXRoaXMuY29tcGFyaXNvbkZ1bmMoZSkscixzPW5ldyBpNih0aGlzLGUsdGhpcy5jb21wYXJpc29uRnVuYyx7bWFya0xvc3RBZnRlckRlZmF1bHQ6dGhpcy5vcHRpb25zLm1hcmtMb3N0QWZ0ZXJEZWZhdWx0LGRlZmF1bHRGdWxsZmlsbG1lbnQ6YX0pLG49ITE7cmV0dXJuIGF3YWl0IHRoaXMuaW50ZXJlc3RPYmplY3RNYXAuZm9yRWFjaChvPT57IW4mJm8uY29tcGFyaXNvblN0cmluZz09PXMuY29tcGFyaXNvblN0cmluZyYmKGNvbnNvbGUubG9nKCJpbmZvIixgaW50ZXJlc3QgYWxyZWFkeSBleGlzdHMgZm9yICR7cy5jb21wYXJpc29uU3RyaW5nfWApLG49ITAscj1vLHIucmVuZXcoKSl9KSxyfHwocj1zLHRoaXMuaW50ZXJlc3RPYmplY3RNYXAuYWRkKHIpKSx0aGlzLmludGVyZXN0T2JzZXJ2YWJsZS5wdXNoKHIpLHJ9cmVtb3ZlSW50ZXJlc3QoZSl7bGV0IGE9dGhpcy5pbnRlcmVzdE9iamVjdE1hcC5maW5kT25lQW5kUmVtb3ZlU3luYyhpPT5lLmNvbXBhcmlzb25TdHJpbmc9PT1pLmNvbXBhcmlzb25TdHJpbmcpfWNoZWNrSW50ZXJlc3QoZSl7bGV0IGE9dGhpcy5jb21wYXJpc29uRnVuYyhlKTtyZXR1cm4gdGhpcy5jaGVja0ludGVyZXN0QnlTdHJpbmcoYSl9Y2hlY2tJbnRlcmVzdEJ5U3RyaW5nKGUpe3JldHVybiEhdGhpcy5pbnRlcmVzdE9iamVjdE1hcC5maW5kU3luYyhpPT5pLmNvbXBhcmlzb25TdHJpbmc9PT1lKX1pbmZvcm1Mb3N0SW50ZXJlc3QoZSl7bGV0IGE9dGhpcy5maW5kSW50ZXJlc3QoZSk7YSYmYS5tYXJrTG9zdCgpfWZpbmRJbnRlcmVzdChlKXtsZXQgYT10aGlzLmNvbXBhcmlzb25GdW5jKGUpO3JldHVybiB0aGlzLmludGVyZXN0T2JqZWN0TWFwLmZpbmRTeW5jKHI9PnIuY29tcGFyaXNvblN0cmluZz09PWEpfX19KTt2YXIgdUMsWmVlPWIoKCk9PntvaSgpO3VDPWNsYXNze2NvbnN0cnVjdG9yKGUpe3RoaXMuYXJyYXk9W10sdGhpcy5hcnJheUxpbWl0PWV9YWRkT25lKGUpe3RoaXMuYXJyYXkudW5zaGlmdChlKSx0aGlzLmFycmF5Lmxlbmd0aD50aGlzLmFycmF5TGltaXQmJih0aGlzLmFycmF5Lmxlbmd0aD10aGlzLmFycmF5TGltaXQpfWFkZE1hbnkoZSl7Zm9yKGxldCBhIG9mIGUpdGhpcy5hZGRPbmUoYSl9c2V0TGltaXQoZSl7dGhpcy5hcnJheUxpbWl0PWUsdGhpcy5hcnJheS5sZW5ndGg+dGhpcy5hcnJheUxpbWl0JiYodGhpcy5hcnJheS5sZW5ndGg9dGhpcy5hcnJheUxpbWl0KX1nZXRBdmVyYWdlKCl7aWYodHlwZW9mIHRoaXMuYXJyYXlbMF09PSJudW1iZXIiKXtsZXQgZT0wO2ZvcihsZXQgYSBvZiB0aGlzLmFycmF5KWU9ZSthO3JldHVybiBlL3RoaXMuYXJyYXkubGVuZ3RofWVsc2UgcmV0dXJuIG51bGx9fX0pO3ZhciBmQyxYZWU9YigoKT0+e29pKCk7a3AoKTtmQz1jbGFzc3tjb25zdHJ1Y3Rvcigpe3RoaXMucmVmZXJlbmNlT2JqZWN0TWFwPW5ldyBRb31jaGVja0FuZFRyYWNrKGUpe3JldHVybiB0aGlzLnJlZmVyZW5jZU9iamVjdE1hcC5jaGVja0Zvck9iamVjdChlKT8hMToodGhpcy5yZWZlcmVuY2VPYmplY3RNYXAuYWRkKGUpLCEwKX19fSk7dmFyIG1DLEtlZT1iKCgpPT57b2koKTttQz1jbGFzc3tjb25zdHJ1Y3Rvcigpe3RoaXMuX3N0cmluZ0FycmF5PVtdLHRoaXMuX3RyaWdnZXJVbnRpbFRydWVGdW5jdGlvbkFycmF5PVtdfWFkZFN0cmluZyhlKXt0aGlzLl9zdHJpbmdBcnJheS5wdXNoKGUpLHRoaXMubm90aWZ5VHJpZ2dlcigpfWFkZFN0cmluZ0FycmF5KGUpe2ZvcihsZXQgYSBvZiBlKXRoaXMuYWRkU3RyaW5nKGEpfXJlbW92ZVN0cmluZyhlKXtmb3IobGV0IGEgaW4gdGhpcy5fc3RyaW5nQXJyYXkpdGhpcy5fc3RyaW5nQXJyYXlbYV09PT1lJiZ0aGlzLl9zdHJpbmdBcnJheS5zcGxpY2UocGFyc2VJbnQoYSksMSk7dGhpcy5ub3RpZnlUcmlnZ2VyKCl9d2lwZSgpe3RoaXMuX3N0cmluZ0FycmF5PVtdLHRoaXMubm90aWZ5VHJpZ2dlcigpfWNoZWNrU3RyaW5nKGUpe3JldHVybiB0aGlzLl9zdHJpbmdBcnJheS5pbmRleE9mKGUpIT09LTF9Y2hlY2tNaW5pbWF0Y2goZSl7bGV0IGE9bmV3IHJzLlNtYXJ0TWF0Y2goZSksaT0hMTtmb3IobGV0IHIgb2YgdGhpcy5fc3RyaW5nQXJyYXkpYS5tYXRjaChyKSYmKGk9ITApO3JldHVybiBpfWNoZWNrSXNFbXB0eSgpe3JldHVybiB0aGlzLl9zdHJpbmdBcnJheS5sZW5ndGg9PT0wfWdldFN0cmluZ0FycmF5KCl7bGV0IGU9W107Zm9yKGxldCBhIG9mIHRoaXMuX3N0cmluZ0FycmF5KWUucHVzaChhKTtyZXR1cm4gZX1yZWdpc3RlclVudGlsVHJ1ZShlLGEpe2xldCBpPUJlLmRlZmVyKCk7cmV0dXJuIHRoaXMuX3RyaWdnZXJVbnRpbFRydWVGdW5jdGlvbkFycmF5LnB1c2goKCk9PntsZXQgcj1lKHRoaXMuZ2V0U3RyaW5nQXJyYXkoKSk7cmV0dXJuIHI9PT0hMCYmKGEmJmEoKSxpLnJlc29sdmUoKSkscn0pLHRoaXMubm90aWZ5VHJpZ2dlcigpLGkucHJvbWlzZX1ub3RpZnlUcmlnZ2VyKCl7bGV0IGU9dGhpcy5fdHJpZ2dlclVudGlsVHJ1ZUZ1bmN0aW9uQXJyYXkuZmlsdGVyKGE9PiFhKCkpO3RoaXMuX3RyaWdnZXJVbnRpbFRydWVGdW5jdGlvbkFycmF5PWV9fX0pO3ZhciBnQyxRZWU9YigoKT0+e29pKCk7Z0M9Y2xhc3N7Y29uc3RydWN0b3IoZSl7dGhpcy5zdG9yYWdlQXJyYXk9W10sdGhpcy5vcHRpb25zPWV9Y2hlY2tBZ2dyZWdhdGlvblN0YXR1cygpe2xldCBlPSgpPT57dGhpcy5hZ2dyZWdhdGlvblRpbWVyPW5ldyBocy5UaW1lcih0aGlzLm9wdGlvbnMuYWdncmVnYXRpb25JbnRlcnZhbEluTWlsbGlzKSx0aGlzLmFnZ3JlZ2F0aW9uVGltZXIuY29tcGxldGVkLnRoZW4oKCk9PntsZXQgYT10aGlzLnN0b3JhZ2VBcnJheTtpZihhLmxlbmd0aD09PTApe3RoaXMuYWdncmVnYXRpb25UaW1lcj1udWxsO3JldHVybn10aGlzLnN0b3JhZ2VBcnJheT1bXSxlKCksdGhpcy5vcHRpb25zLmZ1bmN0aW9uRm9yQWdncmVnYXRpb24oYSl9KSx0aGlzLmFnZ3JlZ2F0aW9uVGltZXIuc3RhcnQoKX07dGhpcy5hZ2dyZWdhdGlvblRpbWVyfHxlKCl9YWRkKGUpe3RoaXMuc3RvcmFnZUFycmF5LnB1c2goZSksdGhpcy5jaGVja0FnZ3JlZ2F0aW9uU3RhdHVzKCl9fX0pO3ZhciBiQyxKZWU9YigoKT0+e29pKCk7YkM9Y2xhc3N7Y29uc3RydWN0b3IoKXt0aGlzLnN5bWJvbFRyZWU9bmV3IHpwLmRlZmF1bHR9aW5pdGlhbGl6ZShlKXtyZXR1cm4gdGhpcy5zeW1ib2xUcmVlLmluaXRpYWxpemUoZSl9aGFzQ2hpbGRyZW4oZSl7cmV0dXJuIHRoaXMuc3ltYm9sVHJlZS5oYXNDaGlsZHJlbihlKX1maXJzdENoaWxkKGUpe3JldHVybiB0aGlzLnN5bWJvbFRyZWUuZmlyc3RDaGlsZChlKX1sYXN0Q2hpbGQoZSl7cmV0dXJuIHRoaXMuc3ltYm9sVHJlZS5sYXN0Q2hpbGQoZSl9cHJldmlvdXNTaWJsaW5nKGUpe3JldHVybiB0aGlzLnN5bWJvbFRyZWUucHJldmlvdXNTaWJsaW5nKGUpfW5leHRTaWJsaW5nKGUpe3JldHVybiB0aGlzLnN5bWJvbFRyZWUubmV4dFNpYmxpbmcoZSl9cGFyZW50KGUpe3JldHVybiB0aGlzLnN5bWJvbFRyZWUucGFyZW50KGUpfWxhc3RJbmNsdXNpdmVEZXNjZW5kYW50KGUpe3JldHVybiB0aGlzLnN5bWJvbFRyZWUubGFzdEluY2x1c2l2ZURlc2NlbmRhbnQoZSl9cHJlY2VkaW5nKGUsYSl7cmV0dXJuIHRoaXMuc3ltYm9sVHJlZS5wcmVjZWRpbmcoZSxhKX1mb2xsb3dpbmcoZSxhKXtyZXR1cm4gdGhpcy5zeW1ib2xUcmVlLmZvbGxvd2luZyhlLGEpfWNoaWxkcmVuVG9BcnJheShlLGEpe3JldHVybiB0aGlzLnN5bWJvbFRyZWUuY2hpbGRyZW5Ub0FycmF5KGUsYSl9YW5jZXN0b3JzVG9BcnJheShlLGEpe3JldHVybiB0aGlzLnN5bWJvbFRyZWUuYW5jZXN0b3JzVG9BcnJheShlLGEpfXRyZWVUb0FycmF5KGUsYSl7cmV0dXJuIHRoaXMuc3ltYm9sVHJlZS50cmVlVG9BcnJheShlLGEpfWNoaWxkcmVuSXRlcmF0b3IoZSxhKXtyZXR1cm4gdGhpcy5zeW1ib2xUcmVlLmNoaWxkcmVuSXRlcmF0b3IoZSxhKX1wcmV2aW91c1NpYmxpbmdzSXRlcmF0b3IoZSl7cmV0dXJuIHRoaXMuc3ltYm9sVHJlZS5wcmV2aW91c1NpYmxpbmdzSXRlcmF0b3IoZSl9bmV4dFNpYmxpbmdzSXRlcmF0b3IoZSl7cmV0dXJuIHRoaXMuc3ltYm9sVHJlZS5uZXh0U2libGluZ3NJdGVyYXRvcigpfWFuY2VzdG9yc0l0ZXJhdG9yKGUpe3RoaXMuc3ltYm9sVHJlZS5hbmNlc3RvcnNJdGVyYXRvcigpfXRyZWVJdGVyYXRvcihlLGEpe3JldHVybiB0aGlzLnN5bWJvbFRyZWUudHJlZUl0ZXJhdG9yKGUpfWluZGV4KGUpe3JldHVybiB0aGlzLnN5bWJvbFRyZWUuaW5kZXgoZSl9Y2hpbGRyZW5Db3VudChlKXtyZXR1cm4gdGhpcy5zeW1ib2xUcmVlLmNoaWxkcmVuQ291bnQoZSl9Y29tcGFyZVRyZWVQb3NpdGlvbihlLGEpe3JldHVybiB0aGlzLmNvbXBhcmVUcmVlUG9zaXRpb24oZSxhKX1yZW1vdmUoZSl7cmV0dXJuIHRoaXMuc3ltYm9sVHJlZS5yZW1vdmUoZSl9aW5zZXJ0QmVmb3JlKGUsYSl7cmV0dXJuIHRoaXMuc3ltYm9sVHJlZS5pbnNlcnRCZWZvcmUoZSxhKX1pbnNlcnRBZnRlcihlLGEpe3JldHVybiB0aGlzLnN5bWJvbFRyZWUuaW5zZXJ0QWZ0ZXIoZSxhKX1wcmVwZW5kQ2hpbGQoZSxhKXtyZXR1cm4gdGhpcy5zeW1ib2xUcmVlLnByZXBlbmRDaGlsZChlLGEpfWFwcGVuZENoaWxkKGUsYSl7cmV0dXJuIHRoaXMuc3ltYm9sVHJlZS5hcHBlbmRDaGlsZChlLGEpfXRvSnNvbldpdGhIaWVyYWNoeShlKXtsZXQgYT10aGlzLnRyZWVJdGVyYXRvcihlLHt9KTtmb3IobGV0IGkgb2YgYSljb25zb2xlLmxvZyhpKX1mcm9tSnNvbldpdGhIaWVyYWNoeShlKXt9fX0pO3ZhciB0Mj17fTtHZSh0Mix7QXN5bmNFeGVjdXRpb25TdGFjazooKT0+b0MsQmFja3ByZXNzdXJlZEFycmF5OigpPT5sQyxGYXN0TWFwOigpPT5hNixJbnRlcmVzdDooKT0+aTYsSW50ZXJlc3RNYXA6KCk9PnBDLExpbWl0ZWRBcnJheTooKT0+dUMsTG9vcFRyYWNrZXI6KCk9PmZDLE9iamVjdE1hcDooKT0+UW8sU3RyaW5nbWFwOigpPT5tQyxUaW1lZEFnZ3JlZ3RvcjooKT0+Z0MsVHJlZTooKT0+YkMsdW5pOigpPT5ZZWV9KTt2YXIgZTY9YigoKT0+e1dlZSgpO0dlZSgpO2NDKCk7aEMoKTtkQygpO1plZSgpO1hlZSgpO2twKCk7S2VlKCk7UWVlKCk7SmVlKCl9KTt2YXIgTG49e307R2UoTG4se2FyZVVpbnQ4QXJyYXlzRXF1YWw6KCk9PkNfdCxhc3NlcnRVaW50OEFycmF5OigpPT5Ubixhc3NlcnRVaW50OEFycmF5T3JBcnJheUJ1ZmZlcjooKT0+cnRlLGJhc2U2NFRvU3RyaW5nOigpPT5EX3QsYmFzZTY0VG9VaW50OEFycmF5OigpPT5sdGUsY29tcGFyZVVpbnQ4QXJyYXlzOigpPT5fX3QsY29uY2F0VWludDhBcnJheXM6KCk9PlNfdCxnZXRVaW50QkU6KCk9Pk5fdCxoZXhUb1VpbnQ4QXJyYXk6KCk9PklfdCxpbmNsdWRlczooKT0+Rl90LGluZGV4T2Y6KCk9PmN0ZSxpc1VpbnQ4QXJyYXk6KCk9PnZDLHN0cmluZ1RvQmFzZTY0OigpPT5BX3Qsc3RyaW5nVG9VaW50OEFycmF5OigpPT5udGUsdG9VaW50OEFycmF5OigpPT5rX3QsdWludDhBcnJheVRvQmFzZTY0OigpPT5vdGUsdWludDhBcnJheVRvSGV4OigpPT5QX3QsdWludDhBcnJheVRvU3RyaW5nOigpPT5zdGV9KTtmdW5jdGlvbiBldGUodCxlLGEpe3JldHVybiB0P3QuY29uc3RydWN0b3I9PT1lPyEwOnlfdC5jYWxsKHQpPT09YTohMX1mdW5jdGlvbiB2Qyh0KXtyZXR1cm4gZXRlKHQsVWludDhBcnJheSx4X3QpfWZ1bmN0aW9uIE1fdCh0KXtyZXR1cm4gZXRlKHQsQXJyYXlCdWZmZXIsd190KX1mdW5jdGlvbiB6X3QodCl7cmV0dXJuIHZDKHQpfHxNX3QodCl9ZnVuY3Rpb24gVG4odCl7aWYoIXZDKHQpKXRocm93IG5ldyBUeXBlRXJyb3IoYEV4cGVjdGVkIFxgVWludDhBcnJheVxgLCBnb3QgXGAke3R5cGVvZiB0fVxgYCl9ZnVuY3Rpb24gcnRlKHQpe2lmKCF6X3QodCkpdGhyb3cgbmV3IFR5cGVFcnJvcihgRXhwZWN0ZWQgXGBVaW50OEFycmF5XGAgb3IgXGBBcnJheUJ1ZmZlclxgLCBnb3QgXGAke3R5cGVvZiB0fVxgYCl9ZnVuY3Rpb24ga190KHQpe2lmKHQgaW5zdGFuY2VvZiBBcnJheUJ1ZmZlcilyZXR1cm4gbmV3IFVpbnQ4QXJyYXkodCk7aWYoQXJyYXlCdWZmZXIuaXNWaWV3KHQpKXJldHVybiBuZXcgVWludDhBcnJheSh0LmJ1ZmZlcix0LmJ5dGVPZmZzZXQsdC5ieXRlTGVuZ3RoKTt0aHJvdyBuZXcgVHlwZUVycm9yKGBVbnN1cHBvcnRlZCB2YWx1ZSwgZ290IFxgJHt0eXBlb2YgdH1cYC5gKX1mdW5jdGlvbiBTX3QodCxlKXtpZih0Lmxlbmd0aD09PTApcmV0dXJuIG5ldyBVaW50OEFycmF5KDApO2U/Pz10LnJlZHVjZSgocixzKT0+citzLmxlbmd0aCwwKTtsZXQgYT1uZXcgVWludDhBcnJheShlKSxpPTA7Zm9yKGxldCByIG9mIHQpVG4ociksYS5zZXQocixpKSxpKz1yLmxlbmd0aDtyZXR1cm4gYX1mdW5jdGlvbiBDX3QodCxlKXtpZihUbih0KSxUbihlKSx0PT09ZSlyZXR1cm4hMDtpZih0Lmxlbmd0aCE9PWUubGVuZ3RoKXJldHVybiExO2ZvcihsZXQgYT0wO2E8dC5sZW5ndGg7YSsrKWlmKHRbYV0hPT1lW2FdKXJldHVybiExO3JldHVybiEwfWZ1bmN0aW9uIF9fdCh0LGUpe1RuKHQpLFRuKGUpO2xldCBhPU1hdGgubWluKHQubGVuZ3RoLGUubGVuZ3RoKTtmb3IobGV0IGk9MDtpPGE7aSsrKXtsZXQgcj10W2ldLWVbaV07aWYociE9PTApcmV0dXJuIE1hdGguc2lnbihyKX1yZXR1cm4gTWF0aC5zaWduKHQubGVuZ3RoLWUubGVuZ3RoKX1mdW5jdGlvbiBzdGUodCxlPSJ1dGY4Iil7cmV0dXJuIHJ0ZSh0KSx0dGVbZV0/Pz1uZXcgZ2xvYmFsVGhpcy5UZXh0RGVjb2RlcihlKSx0dGVbZV0uZGVjb2RlKHQpfWZ1bmN0aW9uIHI2KHQpe2lmKHR5cGVvZiB0IT0ic3RyaW5nIil0aHJvdyBuZXcgVHlwZUVycm9yKGBFeHBlY3RlZCBcYHN0cmluZ1xgLCBnb3QgXGAke3R5cGVvZiB0fVxgYCl9ZnVuY3Rpb24gbnRlKHQpe3JldHVybiByNih0KSxUX3QuZW5jb2RlKHQpfWZ1bmN0aW9uIExfdCh0KXtyZXR1cm4gdC5yZXBsYWNlQWxsKCIrIiwiLSIpLnJlcGxhY2VBbGwoIi8iLCJfIikucmVwbGFjZSgvPSskLywiIil9ZnVuY3Rpb24gJF90KHQpe2xldCBlPXQucmVwbGFjZUFsbCgiLSIsIisiKS5yZXBsYWNlQWxsKCJfIiwiLyIpLGE9KDQtZS5sZW5ndGglNCklNDtyZXR1cm4gZSsiPSIucmVwZWF0KGEpfWZ1bmN0aW9uIG90ZSh0LHt1cmxTYWZlOmU9ITF9PXt9KXtUbih0KTtsZXQgYT0iIjtmb3IobGV0IGk9MDtpPHQubGVuZ3RoO2krPWF0ZSl7bGV0IHI9dC5zdWJhcnJheShpLGkrYXRlKTthKz1nbG9iYWxUaGlzLmJ0b2EoU3RyaW5nLmZyb21Db2RlUG9pbnQuYXBwbHkodm9pZCAwLHIpKX1yZXR1cm4gZT9MX3QoYSk6YX1mdW5jdGlvbiBsdGUodCl7cmV0dXJuIHI2KHQpLFVpbnQ4QXJyYXkuZnJvbShnbG9iYWxUaGlzLmF0b2IoJF90KHQpKSxlPT5lLmNvZGVQb2ludEF0KDApKX1mdW5jdGlvbiBBX3QodCx7dXJsU2FmZTplPSExfT17fSl7cmV0dXJuIHI2KHQpLG90ZShudGUodCkse3VybFNhZmU6ZX0pfWZ1bmN0aW9uIERfdCh0KXtyZXR1cm4gcjYodCksc3RlKGx0ZSh0KSl9ZnVuY3Rpb24gUF90KHQpe1RuKHQpO2xldCBlPSIiO2ZvcihsZXQgYT0wO2E8dC5sZW5ndGg7YSsrKWUrPUVfdFt0W2FdXTtyZXR1cm4gZX1mdW5jdGlvbiBJX3QodCl7aWYocjYodCksdC5sZW5ndGglMiE9PTApdGhyb3cgbmV3IEVycm9yKCJJbnZhbGlkIEhleCBzdHJpbmcgbGVuZ3RoLiIpO2xldCBlPXQubGVuZ3RoLzIsYT1uZXcgVWludDhBcnJheShlKTtmb3IobGV0IGk9MDtpPGU7aSsrKXtsZXQgcj1pdGVbdFtpKjJdXSxzPWl0ZVt0W2kqMisxXV07aWYocj09PXZvaWQgMHx8cz09PXZvaWQgMCl0aHJvdyBuZXcgRXJyb3IoYEludmFsaWQgSGV4IGNoYXJhY3RlciBlbmNvdW50ZXJlZCBhdCBwb3NpdGlvbiAke2kqMn1gKTthW2ldPXI8PDR8c31yZXR1cm4gYX1mdW5jdGlvbiBOX3QodCl7bGV0e2J5dGVMZW5ndGg6ZX09dDtpZihlPT09NilyZXR1cm4gdC5nZXRVaW50MTYoMCkqMioqMzIrdC5nZXRVaW50MzIoMik7aWYoZT09PTUpcmV0dXJuIHQuZ2V0VWludDgoMCkqMioqMzIrdC5nZXRVaW50MzIoMSk7aWYoZT09PTQpcmV0dXJuIHQuZ2V0VWludDMyKDApO2lmKGU9PT0zKXJldHVybiB0LmdldFVpbnQ4KDApKjIqKjE2K3QuZ2V0VWludDE2KDEpO2lmKGU9PT0yKXJldHVybiB0LmdldFVpbnQxNigwKTtpZihlPT09MSlyZXR1cm4gdC5nZXRVaW50OCgwKX1mdW5jdGlvbiBjdGUodCxlKXtsZXQgYT10Lmxlbmd0aCxpPWUubGVuZ3RoO2lmKGk9PT0wfHxpPmEpcmV0dXJuLTE7bGV0IHI9YS1pO2ZvcihsZXQgcz0wO3M8PXI7cysrKXtsZXQgbj0hMDtmb3IobGV0IG89MDtvPGk7bysrKWlmKHRbcytvXSE9PWVbb10pe249ITE7YnJlYWt9aWYobilyZXR1cm4gc31yZXR1cm4tMX1mdW5jdGlvbiBGX3QodCxlKXtyZXR1cm4gY3RlKHQsZSkhPT0tMX12YXIgeV90LHhfdCx3X3QsdHRlLFRfdCxhdGUsRV90LGl0ZSxkdGU9YigoKT0+e3lfdD1PYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLHhfdD0iW29iamVjdCBVaW50OEFycmF5XSIsd190PSJbb2JqZWN0IEFycmF5QnVmZmVyXSI7dHRlPXt1dGY4Om5ldyBnbG9iYWxUaGlzLlRleHREZWNvZGVyKCJ1dGY4Iil9O1RfdD1uZXcgZ2xvYmFsVGhpcy5UZXh0RW5jb2RlcjthdGU9NjU1MzU7RV90PUFycmF5LmZyb20oe2xlbmd0aDoyNTZ9LCh0LGUpPT5lLnRvU3RyaW5nKDE2KS5wYWRTdGFydCgyLCIwIikpO2l0ZT17MDowLDE6MSwyOjIsMzozLDQ6NCw1OjUsNjo2LDc6Nyw4OjgsOTo5LGE6MTAsYjoxMSxjOjEyLGQ6MTMsZToxNCxmOjE1LEE6MTAsQjoxMSxDOjEyLEQ6MTMsRToxNCxGOjE1fX0pO3ZhciBodGU9YigoKT0+e2R0ZSgpfSk7dmFyIGwzPXt9O0dlKGwzLHtiYXNlNjRUb1VpbnQ4QXJyYXk6KCk9PkhfdCxlbnN1cmVQdXJlVWludDhBcnJheTooKT0+al90LGlzQnVmZmVyTGlrZTooKT0+Vl90LGlzVWludDhBcnJheTooKT0+cV90LHVJbnQ4QXJyYXlFeHRyYXM6KCk9PlJfdCx1SW50OEFycmF5VG9CYXNlNjQ6KCk9PkJfdH0pO2Z1bmN0aW9uIEJfdCh0KXtyZXR1cm4gTG4udWludDhBcnJheVRvQmFzZTY0KHQpfWZ1bmN0aW9uIEhfdCh0KXtyZXR1cm4gTG4uYmFzZTY0VG9VaW50OEFycmF5KHQpfWZ1bmN0aW9uIFZfdCh0KXtyZXR1cm4gdCYmdHlwZW9mIHQuYnl0ZUxlbmd0aD09Im51bWJlciI/ITA6dHlwZW9mIEJ1ZmZlcjwidSImJkJ1ZmZlci5pc0J1ZmZlcj9CdWZmZXIuaXNCdWZmZXIodCk6ITF9ZnVuY3Rpb24gal90KHQpe2xldCBlPW5ldyBVaW50OEFycmF5KHQubGVuZ3RoKTtyZXR1cm4gZS5zZXQodCksZX12YXIgUl90LHFfdCxwdGU9YigoKT0+e2h0ZSgpO1JfdD1MbjtxX3Q9dD0+TG4uaXNVaW50OEFycmF5KHQpfSk7dmFyIHM2PWIoKCk9PntjMigpfSk7dmFyIG42LFNwPWIoKCk9PntzNigpO242PWNsYXNze2NvbnN0cnVjdG9yKGUsYSl7dGhpcy5ndWFyZEZ1bmN0aW9uPWUsdGhpcy5vcHRpb25zPWF9YXN5bmMgZXhlYyhlKXtyZXR1cm4gYXdhaXQgdGhpcy5ndWFyZEZ1bmN0aW9uKGUpfWFzeW5jIGdldEZhaWxlZEhpbnQoZSl7cmV0dXJuIGF3YWl0IHRoaXMuZXhlYyhlKT9udWxsOnRoaXMub3B0aW9ucy5mYWlsZWRIaW50fX19KTt2YXIgbzYseUM9YigoKT0+e3M2KCk7bzY9Y2xhc3MgZXh0ZW5kcyBFcnJvcntjb25zdHJ1Y3RvcihlKXtzdXBlcihlKSx0aGlzLm5hbWU9Ikd1YXJkRXJyb3IifX19KTt2YXIgbDYseEM9YigoKT0+e3M2KCk7U3AoKTtsNj1jbGFzcyBleHRlbmRzIG42e2NvbnN0cnVjdG9yKGU9W10pe3N1cGVyKGFzeW5jIGE9PnRoaXMuYWxsR3VhcmRzUGFzcyhhKSksdGhpcy5ndWFyZHM9ZX1hc3luYyBleGVjQWxsV2l0aERhdGEoZSxhPXttb2RlOiJwYXJhbGxlbCIsc3RvcE9uRmFpbDohMX0pe2xldCBpPVtdO2ZvcihsZXQgcyBvZiB0aGlzLmd1YXJkcyl7bGV0IG49cy5leGVjKGUpO2lmKGEubW9kZT09PSJzZXJpYWwiJiZhd2FpdCBuLGkucHVzaChuKSxhLnN0b3BPbkZhaWwmJiFhd2FpdCBuKXJldHVybiBhd2FpdCBQcm9taXNlLmFsbChpKX1yZXR1cm4gYXdhaXQgUHJvbWlzZS5hbGwoaSl9YXN5bmMgYWxsR3VhcmRzUGFzcyhlLGE9e21vZGU6InBhcmFsbGVsIixzdG9wT25GYWlsOiExfSl7cmV0dXJuKGF3YWl0IHRoaXMuZXhlY0FsbFdpdGhEYXRhKGUsYSkpLmV2ZXJ5KHI9PnIpfWFzeW5jIGFueUd1YXJkc1Bhc3MoZSl7cmV0dXJuKGF3YWl0IHRoaXMuZXhlY0FsbFdpdGhEYXRhKGUse21vZGU6InBhcmFsbGVsIixzdG9wT25GYWlsOiExfSkpLnNvbWUoaT0+aSl9Z2V0RmFpbGVkSGludChlKXtmb3IobGV0IGEgb2YgdGhpcy5ndWFyZHMpe2xldCBpPWEuZ2V0RmFpbGVkSGludChlKTtpZihpKXJldHVybiBpfX19fSk7dmFyIGM2PXt9O0dlKGM2LHtHdWFyZDooKT0+bjYsR3VhcmRFcnJvcjooKT0+bzYsR3VhcmRTZXQ6KCk9Pmw2LHBhc3NHdWFyZHNPclJlamVjdDooKT0+VV90fSk7dmFyIFVfdCx1dGU9YigoKT0+e3M2KCk7U3AoKTt5QygpO1NwKCk7eEMoKTt4QygpO3lDKCk7VV90PWFzeW5jKHQsZSk9PntsZXQgYT1uZXcgbDYoZSk7aWYoIWF3YWl0IGEuYWxsR3VhcmRzUGFzcyh0KSl7bGV0IHI9YXdhaXQgYS5nZXRGYWlsZWRIaW50KHQpO3Rocm93IG5ldyBvNihgR3VhcmRzIGZhaWxlZDoKJHtyfQogICAgYCl9fX0pO3ZhciBjMyx3Qz1iKCgpPT57YzM9Y2xhc3N7Y29uc3RydWN0b3IoKXt0aGlzLnJlcXVlc3RJbnRlcmNlcHRvcnM9W10sdGhpcy5yZXNwb25zZUludGVyY2VwdG9ycz1bXSx0aGlzLmVycm9ySW50ZXJjZXB0b3JzPVtdfWFkZFJlcXVlc3RJbnRlcmNlcHRvcihlKXt0aGlzLnJlcXVlc3RJbnRlcmNlcHRvcnMucHVzaChlKX1hZGRSZXNwb25zZUludGVyY2VwdG9yKGUpe3RoaXMucmVzcG9uc2VJbnRlcmNlcHRvcnMucHVzaChlKX1hZGRFcnJvckludGVyY2VwdG9yKGUpe3RoaXMuZXJyb3JJbnRlcmNlcHRvcnMucHVzaChlKX1yZW1vdmVSZXF1ZXN0SW50ZXJjZXB0b3IoZSl7bGV0IGE9dGhpcy5yZXF1ZXN0SW50ZXJjZXB0b3JzLmluZGV4T2YoZSk7YT4tMSYmdGhpcy5yZXF1ZXN0SW50ZXJjZXB0b3JzLnNwbGljZShhLDEpfXJlbW92ZVJlc3BvbnNlSW50ZXJjZXB0b3IoZSl7bGV0IGE9dGhpcy5yZXNwb25zZUludGVyY2VwdG9ycy5pbmRleE9mKGUpO2E+LTEmJnRoaXMucmVzcG9uc2VJbnRlcmNlcHRvcnMuc3BsaWNlKGEsMSl9cmVtb3ZlRXJyb3JJbnRlcmNlcHRvcihlKXtsZXQgYT10aGlzLmVycm9ySW50ZXJjZXB0b3JzLmluZGV4T2YoZSk7YT4tMSYmdGhpcy5lcnJvckludGVyY2VwdG9ycy5zcGxpY2UoYSwxKX1jbGVhckFsbCgpe3RoaXMucmVxdWVzdEludGVyY2VwdG9ycz1bXSx0aGlzLnJlc3BvbnNlSW50ZXJjZXB0b3JzPVtdLHRoaXMuZXJyb3JJbnRlcmNlcHRvcnM9W119YXN5bmMgcHJvY2Vzc1JlcXVlc3QoZSl7bGV0IGE9ZTtmb3IobGV0IGkgb2YgdGhpcy5yZXF1ZXN0SW50ZXJjZXB0b3JzKXRyeXthPWF3YWl0IGkoYSl9Y2F0Y2gocil7dGhyb3cgYXdhaXQgdGhpcy5wcm9jZXNzRXJyb3IociBpbnN0YW5jZW9mIEVycm9yP3I6bmV3IEVycm9yKFN0cmluZyhyKSkpfXJldHVybiBhfWFzeW5jIHByb2Nlc3NSZXNwb25zZShlKXtsZXQgYT1lO2ZvcihsZXQgaSBvZiB0aGlzLnJlc3BvbnNlSW50ZXJjZXB0b3JzKXRyeXthPWF3YWl0IGkoYSl9Y2F0Y2gocil7dGhyb3cgYXdhaXQgdGhpcy5wcm9jZXNzRXJyb3IociBpbnN0YW5jZW9mIEVycm9yP3I6bmV3IEVycm9yKFN0cmluZyhyKSkpfXJldHVybiBhfWFzeW5jIHByb2Nlc3NFcnJvcihlKXtsZXQgYT1lO2ZvcihsZXQgaSBvZiB0aGlzLmVycm9ySW50ZXJjZXB0b3JzKXRyeXthPWF3YWl0IGkoYSl9Y2F0Y2gocil7YT1yIGluc3RhbmNlb2YgRXJyb3I/cjpuZXcgRXJyb3IoU3RyaW5nKHIpKX1yZXR1cm4gYX1nZXRJbnRlcmNlcHRvckNvdW50cygpe3JldHVybntyZXF1ZXN0OnRoaXMucmVxdWVzdEludGVyY2VwdG9ycy5sZW5ndGgscmVzcG9uc2U6dGhpcy5yZXNwb25zZUludGVyY2VwdG9ycy5sZW5ndGgsZXJyb3I6dGhpcy5lcnJvckludGVyY2VwdG9ycy5sZW5ndGh9fX19KTt2YXIgZnRlPWIoKCk9PntjMigpfSk7dmFyIG10ZT1iKCgpPT57fSk7dmFyIE1DLGd0ZT1iKCgpPT57ZnRlKCk7bXRlKCk7TUM9Y2xhc3N7Y29uc3RydWN0b3IoKXt0aGlzLmxvYWRlZFNjcmlwdHM9W119YXN5bmMgZ2V0RW52QXdhcmVNb2R1bGUoZSl7aWYodGhpcy5pc05vZGUpcmV0dXJuIGF3YWl0IHRoaXMuZ2V0U2FmZU5vZGVNb2R1bGUoZS5ub2RlTW9kdWxlTmFtZSk7aWYodGhpcy5pc0Jyb3dzZXIpcmV0dXJuIGF3YWl0IHRoaXMuZ2V0U2FmZVdlYk1vZHVsZShlLndlYlVybEFyZyxlLmdldEZ1bmN0aW9uKTtjb25zb2xlLmVycm9yKCJwbGF0Zm9ybSBmb3IgbG9hZGluZyBub3Qgc3VwcG9ydGVkIGJ5IHNtYXJ0ZW52Iil9YXN5bmMgZ2V0U2FmZU5vZGVNb2R1bGUoZSxhKXtpZighdGhpcy5pc05vZGUpe2NvbnNvbGUuZXJyb3IoYFlvdSB0cmllZCB0byBsb2FkIGEgbm9kZSBtb2R1bGUgaW4gYSB3cm9uZyBjb250ZXh0OiAke2V9LiBUaGlzIGRvZXMgbm90IHRocm93LmApO3JldHVybn1sZXQgaT1hd2FpdCBuZXcgRnVuY3Rpb24oYHJldHVybiBpbXBvcnQoJyR7ZX0nKWApKCk7cmV0dXJuIGEmJmF3YWl0IGEoaSksaX1hc3luYyBnZXRTYWZlV2ViTW9kdWxlKGUsYSl7aWYoIXRoaXMuaXNCcm93c2VyKXtjb25zb2xlLmVycm9yKCJZb3UgdHJpZWQgdG8gbG9hZCBhIHdlYiBtb2R1bGUgaW4gYSB3cm9uZyBjb250ZXh0Iik7cmV0dXJufWlmKHRoaXMubG9hZGVkU2NyaXB0cy5pbmNsdWRlcyhlKSlyZXR1cm4gYSgpO3RoaXMubG9hZGVkU2NyaXB0cy5wdXNoKGUpO2xldCBpPUJlLmRlZmVyKCk7aWYoZ2xvYmFsVGhpcy5pbXBvcnRTY3JpcHRzKWdsb2JhbFRoaXMuaW1wb3J0U2NyaXB0cyhlKSxpLnJlc29sdmUoKTtlbHNle2xldCByPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInNjcmlwdCIpO3Iub25sb2FkPSgpPT57aS5yZXNvbHZlKCl9LHIuc3JjPWUsZG9jdW1lbnQuaGVhZC5hcHBlbmRDaGlsZChyKX1yZXR1cm4gYXdhaXQgaS5wcm9taXNlLGEoKX1nZXQgcnVudGltZUVudigpe3JldHVybiB0eXBlb2YgcHJvY2VzczwidSI/Im5vZGUiOiJicm93c2VyIn1nZXQgaXNCcm93c2VyKCl7cmV0dXJuIXRoaXMuaXNOb2RlfWdldCB1c2VyQWdlbnQoKXtyZXR1cm4gdGhpcy5pc0Jyb3dzZXI/bmF2aWdhdG9yLnVzZXJBZ2VudDoidW5kZWZpbmVkIn1nZXQgaXNOb2RlKCl7cmV0dXJuIHRoaXMucnVudGltZUVudj09PSJub2RlIn1nZXQgbm9kZVZlcnNpb24oKXtyZXR1cm4gcHJvY2Vzcy52ZXJzaW9ufWdldCBpc0NJKCl7cmV0dXJuIHRoaXMuaXNOb2RlPyEhcHJvY2Vzcy5lbnYuQ0k6ITF9YXN5bmMgaXNNYWNBc3luYygpe3JldHVybiB0aGlzLmlzTm9kZT8oYXdhaXQgdGhpcy5nZXRTYWZlTm9kZU1vZHVsZSgib3MiKSkucGxhdGZvcm0oKT09PSJkYXJ3aW4iOiExfWFzeW5jIGlzV2luZG93c0FzeW5jKCl7cmV0dXJuIHRoaXMuaXNOb2RlPyhhd2FpdCB0aGlzLmdldFNhZmVOb2RlTW9kdWxlKCJvcyIpKS5wbGF0Zm9ybSgpPT09IndpbjMyIjohMX1hc3luYyBpc0xpbnV4QXN5bmMoKXtyZXR1cm4gdGhpcy5pc05vZGU/KGF3YWl0IHRoaXMuZ2V0U2FmZU5vZGVNb2R1bGUoIm9zIikpLnBsYXRmb3JtKCk9PT0ibGludXgiOiExfWFzeW5jIHByaW50RW52KCl7dGhpcy5pc05vZGU/KGNvbnNvbGUubG9nKCJydW5uaW5nIG9uIE5PREUiKSxjb25zb2xlLmxvZygibm9kZSB2ZXJzaW9uIGlzICIrdGhpcy5ub2RlVmVyc2lvbikpOihjb25zb2xlLmxvZygicnVubmluZyBvbiBCUk9XU0VSIiksY29uc29sZS5sb2coImJyb3dzZXIgaXMgIit0aGlzLnVzZXJBZ2VudCkpfX19KTt2YXIgRmE9e307R2UoRmEse1NtYXJ0ZW52OigpPT5NQ30pO3ZhciBkMz1iKCgpPT57Z3RlKCl9KTt2YXIgekMsaDM9YigoKT0+e3pDPVUxKHdkKCksMSl9KTt2YXIgQ3A9e307R2UoQ3Ase2NyZWF0ZUNyeXB0b1JhbmRvbVN0cmluZzooKT0+S190LGNyZWF0ZVJhbmRvbVN0cmluZzooKT0+WF90fSk7dmFyIFlfdCxaX3QsWF90LEtfdCxidGU9YigoKT0+e2gzKCk7WV90PSh0LGUpPT57aWYodHlwZW9mIGdsb2JhbFRoaXM8InUiJiZnbG9iYWxUaGlzLmNyeXB0byYmZ2xvYmFsVGhpcy5jcnlwdG8uZ2V0UmFuZG9tVmFsdWVzKXtsZXQgYT1lLXQsaT1uZXcgVWludDMyQXJyYXkoMSk7cmV0dXJuIGdsb2JhbFRoaXMuY3J5cHRvLmdldFJhbmRvbVZhbHVlcyhpKSx0K2lbMF0lYX1lbHNlIHJldHVybiBNYXRoLmZsb29yKE1hdGgucmFuZG9tKCkqKGUtdCkpK3R9LFpfdD0odCxlLGEpPT57bGV0IGk9e0E6IkFCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFlaIixhOiJhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5eiIsMDoiMDEyMzQ1Njc4OSIsIiEiOiIhQCMkJV4mKigpXystPVtde318OzosLjw+PyIsIioiOiJBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWmFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6MDEyMzQ1Njc4OSFAIyQlXiYqKClfKy09W117fXw7OiwuPD4/In0scj10O2UmJmU+dC5sZW5ndGg/cj10LnJlcGVhdChNYXRoLmNlaWwoZS90Lmxlbmd0aCkpLnNsaWNlKDAsZSk6ZSYmKHI9dC5zbGljZSgwLGUpKTtsZXQgcz0iIjtmb3IobGV0IG4gb2YgcilpZihpW25dKXtsZXQgbz1pW25dLGQ9WV90KDAsby5sZW5ndGgpO3MrPW9bZF19ZWxzZSBzKz1uO3JldHVybiBzfSxYX3Q9KHQsZSxhKT0+Wl90KHQsZSxhKSxLX3Q9KCk9PnpDLnVuaSgpfSk7dmFyIF9wPXt9O0dlKF9wLHttYWtlRW52T2JqZWN0OigpPT5RX3R9KTt2YXIgUV90LHZ0ZT1iKCgpPT57aDMoKTtRX3Q9ZnVuY3Rpb24odCl7bGV0IGU9e30sYT0vKC4qKT0oLiopLztpZih0eXBlb2YgdDwidSIpZm9yKGxldCBpIGluIHQpe2xldCByPWEuZXhlYyh0W2ldKTtlW3JbMV1dPXJbMl19cmV0dXJuIGV9fSk7dmFyIEpvPXt9O0dlKEpvLHtpbmRlbnQ6KCk9PmVUdCxpbmRlbnRXaXRoUHJlZml4OigpPT50VHQsbm9ybWFsaXplOigpPT5hVHR9KTt2YXIga0MsU0MsSl90LGVUdCx0VHQsYVR0LHl0ZT1iKCgpPT57aDMoKTtrQz10PT57bGV0IGU9dC5zcGxpdChgCmApO3JldHVybiBKX3QoZSl9LFNDPXQ9PntsZXQgZT0iIjtmb3IobGV0IGEgb2YgdCllPWUrYStgCmA7cmV0dXJuIGV9LEpfdD10PT57bGV0IGU9L15bXHNdKiQvO3JldHVybiBlLnRlc3QodFswXSkmJnQuc2hpZnQoKSxlLnRlc3QodFt0Lmxlbmd0aC0xXSkmJnQucG9wKCksdH0sZVR0PSh0LGUpPT57bGV0IGE9a0ModCk7Zm9yKGxldCByIG9mIGEpcj0iICIucmVwZWF0KGUpK3I7cmV0dXJuIFNDKGEpfSx0VHQ9KHQsZSk9PntsZXQgYSxpPWtDKHQpLHI9W107Zm9yKGxldCBzIG9mIGkpci5wdXNoKGUrcyk7cmV0dXJuIGE9U0MociksYX0sYVR0PXQ9PntsZXQgZSxhPWtDKHQpLGkscj0vXihccyopLyxzPS9eKFxzKikkLztmb3IobGV0IG8gb2YgYSl7bGV0IGQ9ci5leGVjKG8pWzFdOyh0eXBlb2YgaT4idSJ8fGQubGVuZ3RoPGkpJiYhcy50ZXN0KG8pJiYoaT1kLmxlbmd0aCl9bGV0IG49W107Zm9yKGxldCBvIG9mIGEpbi5wdXNoKG8uc3Vic3RyKGkpKTtyZXR1cm4gZT1TQyhuKSxlfX0pO3ZhciBUcD17fTtHZShUcCx7cmVwbGFjZUFsbDooKT0+eHRlLHN0YW5kYXJkOigpPT5yVHR9KTt2YXIgeHRlLGlUdCxyVHQsd3RlPWIoKCk9Pnt4dGU9KHQsZSxhKT0+dC5yZXBsYWNlKG5ldyBSZWdFeHAoZSwiZyIpLGEpLGlUdD10PT57bGV0IGU9dC5zcGxpdChgCmApLGE9MS8wO2ZvcihsZXQgaSBvZiBlKWlmKGkudHJpbSgpLmxlbmd0aD4wKXtsZXQgcj1pLm1hdGNoKC9eKFxzKikvKTtyJiYoYT1NYXRoLm1pbihhLHJbMV0ubGVuZ3RoKSl9cmV0dXJuIGE9PT0xLzB8fGE9PT0wP3Q6ZS5tYXAoaT0+aS5sZW5ndGg+PWE/aS5zbGljZShhKTppKS5qb2luKGAKYCl9LHJUdD0odCxlKT0+e2xldCBhPXQ7cmV0dXJuKCFlfHxlLnN0cmlwSW5kZW50KSYmKGE9aVR0KGEpKSwoIWV8fGUubm9ybWFsaXplTmV3bGluZSkmJihhPWEucmVwbGFjZSgvXHJcbi9nLGAKYCkpLCghZXx8ZS5yZXBsYWNlVGFicykmJihhPXh0ZShhLCIJLyIsIiAiKSksKCFlfHxlLnN0cmlwTGVhZGluZ1RyYWlsaW5nRW1wdHlMaW5lcykmJihhPWEucmVwbGFjZSgvXlxzKltcclxuXS9nbSwiIikucmVwbGFjZSgvXHMqW1xyXG5dJC9nbSwiIikpLCghZXx8ZS5zdHJpcEFsbEVtcHR5TGluZXMpJiYoYT1hLnJlcGxhY2UoL15ccypbXHJcbl0vZ20sIiIpKSxhfX0pO3ZhciBDQyxMcCxwMyxfQz1iKCgpPT57Q0M9e2VuY29kZTp0PT57aWYodHlwZW9mIEJ1ZmZlcjwidSIpcmV0dXJuIEJ1ZmZlci5mcm9tKHQsInV0ZjgiKS50b1N0cmluZygiYmFzZTY0Iik7aWYodHlwZW9mIGJ0b2E8InUiKXtsZXQgZT1uZXcgVGV4dEVuY29kZXIoKS5lbmNvZGUodCksYT1BcnJheS5mcm9tKGUsaT0+U3RyaW5nLmZyb21DaGFyQ29kZShpKSkuam9pbigiIik7cmV0dXJuIGJ0b2EoYSl9ZWxzZXtsZXQgZT0iQUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVphYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ejAxMjM0NTY3ODkrLyIsYT1uZXcgVGV4dEVuY29kZXIoKS5lbmNvZGUodCksaT0iIixyPTA7Zm9yKDtyPGEubGVuZ3RoOyl7bGV0IHM9YVtyKytdLG49cjxhLmxlbmd0aD9hW3IrK106MCxvPXI8YS5sZW5ndGg/YVtyKytdOjAsZD1zPDwxNnxuPDw4fG87aSs9ZS5jaGFyQXQoZD4+MTgmNjMpLGkrPWUuY2hhckF0KGQ+PjEyJjYzKSxpKz1yLTI8YS5sZW5ndGg/ZS5jaGFyQXQoZD4+NiY2Myk6Ij0iLGkrPXItMTxhLmxlbmd0aD9lLmNoYXJBdChkJjYzKToiPSJ9cmV0dXJuIGl9fSxkZWNvZGU6dD0+e2xldCBlPXQucmVwbGFjZSgvLS9nLCIrIikucmVwbGFjZSgvXy9nLCIvIikucGFkRW5kKHQubGVuZ3RoKyg0LXQubGVuZ3RoJTQpJTQsIj0iKTtpZih0eXBlb2YgQnVmZmVyPCJ1IilyZXR1cm4gQnVmZmVyLmZyb20oZSwiYmFzZTY0IikudG9TdHJpbmcoInV0ZjgiKTtpZih0eXBlb2YgYXRvYjwidSIpe2xldCBhPWF0b2IoZSksaT1uZXcgVWludDhBcnJheShhLmxlbmd0aCk7Zm9yKGxldCByPTA7cjxhLmxlbmd0aDtyKyspaVtyXT1hLmNoYXJDb2RlQXQocik7cmV0dXJuIG5ldyBUZXh0RGVjb2RlcigpLmRlY29kZShpKX1lbHNle2xldCBhPSJBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWmFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6MDEyMzQ1Njc4OSsvIixpPVtdLHI9MDtmb3IoO3I8ZS5sZW5ndGg7KXtsZXQgcz1hLmluZGV4T2YoZS5jaGFyQXQocisrKSksbj1hLmluZGV4T2YoZS5jaGFyQXQocisrKSksbz1hLmluZGV4T2YoZS5jaGFyQXQocisrKSksZD1hLmluZGV4T2YoZS5jaGFyQXQocisrKSksYz1zPDwxOHxuPDwxMnxvPDw2fGQ7aS5wdXNoKGM+PjE2JjI1NSksbyE9PTY0JiZpLnB1c2goYz4+OCYyNTUpLGQhPT02NCYmaS5wdXNoKGMmMjU1KX1yZXR1cm4gbmV3IFRleHREZWNvZGVyKCkuZGVjb2RlKG5ldyBVaW50OEFycmF5KGkpKX19fSxMcD1jbGFzc3tjb25zdHJ1Y3RvcihlLGEpe3N3aXRjaChhKXtjYXNlInN0cmluZyI6dGhpcy5yZWZTdHJpbmc9ZTticmVhaztjYXNlImJhc2U2NCI6dGhpcy5yZWZTdHJpbmc9cDMuZGVjb2RlKGUpO2JyZWFrO2Nhc2UiYmFzZTY0dXJpIjp0aGlzLnJlZlN0cmluZz1wMy5kZWNvZGUoZSl9fWdldCBzaW1wbGVTdHJpbmcoKXtyZXR1cm4gdGhpcy5yZWZTdHJpbmd9Z2V0IGJhc2U2NFN0cmluZygpe3JldHVybiBwMy5lbmNvZGUodGhpcy5yZWZTdHJpbmcpfWdldCBiYXNlNjRVcmlTdHJpbmcoKXtyZXR1cm4gcDMuZW5jb2RlVXJpKHRoaXMucmVmU3RyaW5nKX19LHAzPXtlbmNvZGU6dD0+Q0MuZW5jb2RlKHQpLGVuY29kZVVyaTp0PT5DQy5lbmNvZGUodCkucmVwbGFjZSgvXCsvZywiLSIpLnJlcGxhY2UoL1wvL2csIl8iKS5yZXBsYWNlKC89L2csIiIpLGRlY29kZTp0PT5DQy5kZWNvZGUodCksaXNCYXNlNjQ6dD0+L14oW0EtWmEtejAtOSsvXXs0fSkqKFtBLVphLXowLTkrL117M309fFtBLVphLXowLTkrL117Mn09PSk/JC8udGVzdCh0KX19KTt2YXIgJHA9e307R2UoJHAse2lzQmFzZTY0OigpPT5uVHQsaXNVdGY4OigpPT5zVHR9KTt2YXIgc1R0LG5UdCxNdGU9YigoKT0+e2gzKCk7X0MoKTtzVHQ9dD0+e2xldCBhPW5ldyBUZXh0RW5jb2RlcigpLmVuY29kZSh0KSxpPTA7Zm9yKDtpPGEubGVuZ3RoOyl7aWYoYVtpXT09PTl8fGFbaV09PT0xMHx8YVtpXT09PTEzfHwzMjw9YVtpXSYmYVtpXTw9MTI2KXtpKz0xO2NvbnRpbnVlfWlmKDE5NDw9YVtpXSYmYVtpXTw9MjIzJiYxMjg8PWFbaSsxXSYmYVtpKzFdPD0xOTEpe2krPTI7Y29udGludWV9aWYoYVtpXT09PTIyNCYmMTYwPD1hW2krMV0mJmFbaSsxXTw9MTkxJiYxMjg8PWFbaSsyXSYmYVtpKzJdPD0xOTF8fCgyMjU8PWFbaV0mJmFbaV08PTIzNnx8YVtpXT09PTIzOHx8YVtpXT09PTIzOSkmJjEyODw9YVtpKzFdJiZhW2krMV08PTE5MSYmMTI4PD1hW2krMl0mJmFbaSsyXTw9MTkxfHxhW2ldPT09MjM3JiYxMjg8PWFbaSsxXSYmYVtpKzFdPD0xNTkmJjEyODw9YVtpKzJdJiZhW2krMl08PTE5MSl7aSs9Mztjb250aW51ZX1pZihhW2ldPT09MjQwJiYxNDQ8PWFbaSsxXSYmYVtpKzFdPD0xOTEmJjEyODw9YVtpKzJdJiZhW2krMl08PTE5MSYmMTI4PD1hW2krM10mJmFbaSszXTw9MTkxfHwyNDE8PWFbaV0mJmFbaV08PTI0MyYmMTI4PD1hW2krMV0mJmFbaSsxXTw9MTkxJiYxMjg8PWFbaSsyXSYmYVtpKzJdPD0xOTEmJjEyODw9YVtpKzNdJiZhW2krM108PTE5MXx8YVtpXT09PTI0NCYmMTI4PD1hW2krMV0mJmFbaSsxXTw9MTQzJiYxMjg8PWFbaSsyXSYmYVtpKzJdPD0xOTEmJjEyODw9YVtpKzNdJiZhW2krM108PTE5MSl7aSs9NDtjb250aW51ZX1yZXR1cm4hMX1yZXR1cm4hMH0sblR0PXQ9PntsZXQgZT0vW15BLVowLTkrXC89XS9pLGE9dC5sZW5ndGg7aWYoIWF8fGElNCE9PTB8fGUudGVzdCh0KSlyZXR1cm4hMTtsZXQgaT10LmluZGV4T2YoIj0iKTtyZXR1cm4gaT09PS0xfHxpPT09YS0xfHxpPT09YS0yJiZ0W2EtMV09PT0iPSJ9fSk7dmFyIEFwLHp0ZT1iKCgpPT57QXA9Y2xhc3N7Y29uc3RydWN0b3IoZSl7dGhpcy5wcm90b2NvbD10aGlzLl9wcm90b2NvbFJlZ2V4KGUpLHRoaXMucHJvdG9jb2x8fChlPWBodHRwczovLyR7ZX1gKSx0aGlzLm5vZGVQYXJzZWRVcmw9bmV3IFVSTChlKSx0aGlzLnBvcnQ9dGhpcy5ub2RlUGFyc2VkVXJsLnBvcnQ7bGV0IGE9dGhpcy5fZG9tYWluUmVnZXgoZS5yZXBsYWNlKHRoaXMubm9kZVBhcnNlZFVybC5wYXRobmFtZSwiIikpO3RoaXMuZnVsbE5hbWU9IiI7Zm9yKGxldCBpPTE7aTw9NTtpKyspaWYoYVtpLTFdKXtsZXQgcj1hW2ktMV07dGhpc1sibGV2ZWwiK2kudG9TdHJpbmcoKV09cix0aGlzLmZ1bGxOYW1lPT09IiI/dGhpcy5mdWxsTmFtZT1yOnRoaXMuZnVsbE5hbWU9cisiLiIrdGhpcy5mdWxsTmFtZX1lbHNlIHRoaXNbImxldmVsIitpLnRvU3RyaW5nKCldPXZvaWQgMDt0aGlzLnpvbmVOYW1lPXRoaXMubGV2ZWwyKyIuIit0aGlzLmxldmVsMSx0aGlzLnRvcExldmVsPXRoaXMubGV2ZWwxLHRoaXMuZG9tYWluTmFtZT10aGlzLmxldmVsMix0aGlzLnN1YkRvbWFpbj10aGlzLmxldmVsM31fZG9tYWluUmVnZXgoZSl7bGV0IGk9LyhbYS16QS1aMC05XC1cX10qKVwuezAsMX0oW2EtekEtWjAtOVwtXF9dKilcLnswLDF9KFthLXpBLVowLTlcLVxfXSopXC57MCwxfShbYS16QS1aMC05XC1cX10qKVwuezAsMX0oW2EtekEtWjAtOVwtXF9dKilcLnswLDF9JC8uZXhlYyhlKTtyZXR1cm4gaS5yZXZlcnNlKCksaS5wb3AoKSxpLmZpbHRlcihmdW5jdGlvbihzKXtyZXR1cm4gcyE9PSIifSl9X3Byb3RvY29sUmVnZXgoZSl7bGV0IGk9L14oW2EtekEtWjAtOV0qKTpcL1wvLy5leGVjKGUpO2lmKGkpcmV0dXJuIGlbMV19X3BvcnRSZWdleChlKXtsZXQgaT0vXihbYS16QS1aMC05XSopOlwvXC8vLmV4ZWMoZSk7aWYoaSlyZXR1cm4gaVsxXX19fSk7dmFyIERwLG9UdCxrdGUsU3RlPWIoKCk9PntoMygpO0RwPWNsYXNze2NvbnN0cnVjdG9yKGUsYSl7bGV0IGk9b1R0KGUpO3RoaXMuaG9zdD1pWzFdLHRoaXMudXNlcj1pWzJdLHRoaXMucmVwbz1pWzNdLHRoaXMuYWNjZXNzVG9rZW49YSx0aGlzLnNzaFVybD1rdGUodGhpcy5ob3N0LHRoaXMudXNlcix0aGlzLnJlcG8sdGhpcy5hY2Nlc3NUb2tlbiwic3NoIiksdGhpcy5odHRwc1VybD1rdGUodGhpcy5ob3N0LHRoaXMudXNlcix0aGlzLnJlcG8sdGhpcy5hY2Nlc3NUb2tlbiwiaHR0cHMiKX19LG9UdD1mdW5jdGlvbih0KXtyZXR1cm4vKFthLXpBLVowLTlcLV9cLl0qKSg/OlwvfFw6KShbYS16QS1aMC05XC1fXC5dKikoPzpcLykoW2EtekEtWjAtOVwtX1wuXSopKD86XC5naXQpLy5leGVjKHQpfSxrdGU9ZnVuY3Rpb24odCxlLGEsaT0iIixyKXtsZXQgcztzd2l0Y2goaSE9PSIiJiYoaT1pKyJAIikscil7Y2FzZSJodHRwcyI6cz0iaHR0cHM6Ly8iK2krdCsiLyIrZSsiLyIrYSsiLmdpdCI7YnJlYWs7Y2FzZSJzc2giOnM9ImdpdEAiK3QrIjoiK2UrIi8iK2ErIi5naXQiO2JyZWFrO2RlZmF1bHQ6Y29uc29sZS5lcnJvcigiTGluayBUeXBlICIrcisiIG5vdCBrbm93biIpO2JyZWFrfXJldHVybiBzfX0pO3ZhciBrMj17fTtHZShrMix7QmFzZTY0OigpPT5McCxEb21haW46KCk9PkFwLEdpdFJlcG86KCk9PkRwLGJhc2U2NDooKT0+cDMsY3JlYXRlOigpPT5DcCxkb2NrZXI6KCk9Pl9wLGluZGVudDooKT0+Sm8sbm9ybWFsaXplOigpPT5UcCx0eXBlOigpPT4kcH0pO3ZhciB1Mz1iKCgpPT57YnRlKCk7dnRlKCk7eXRlKCk7d3RlKCk7TXRlKCk7X0MoKTt6dGUoKTtTdGUoKX0pO3ZhciBxQz1odCgocDYsYjMpPT57dmFyIGxUdD0yMDAsQ3RlPSJfX2xvZGFzaF9oYXNoX3VuZGVmaW5lZF9fIixfdGU9OTAwNzE5OTI1NDc0MDk5MSxUQz0iW29iamVjdCBBcmd1bWVudHNdIixjVHQ9IltvYmplY3QgQXJyYXldIixUdGU9IltvYmplY3QgQm9vbGVhbl0iLEx0ZT0iW29iamVjdCBEYXRlXSIsZFR0PSJbb2JqZWN0IEVycm9yXSIsTEM9IltvYmplY3QgRnVuY3Rpb25dIiwkdGU9IltvYmplY3QgR2VuZXJhdG9yRnVuY3Rpb25dIixFcD0iW29iamVjdCBNYXBdIixBdGU9IltvYmplY3QgTnVtYmVyXSIsJEM9IltvYmplY3QgT2JqZWN0XSIsRHRlPSJbb2JqZWN0IFByb21pc2VdIixFdGU9IltvYmplY3QgUmVnRXhwXSIsUHA9IltvYmplY3QgU2V0XSIsUHRlPSJbb2JqZWN0IFN0cmluZ10iLEl0ZT0iW29iamVjdCBTeW1ib2xdIixBQz0iW29iamVjdCBXZWFrTWFwXSIsTnRlPSJbb2JqZWN0IEFycmF5QnVmZmVyXSIsSXA9IltvYmplY3QgRGF0YVZpZXddIixGdGU9IltvYmplY3QgRmxvYXQzMkFycmF5XSIsT3RlPSJbb2JqZWN0IEZsb2F0NjRBcnJheV0iLFJ0ZT0iW29iamVjdCBJbnQ4QXJyYXldIixCdGU9IltvYmplY3QgSW50MTZBcnJheV0iLEh0ZT0iW29iamVjdCBJbnQzMkFycmF5XSIscXRlPSJbb2JqZWN0IFVpbnQ4QXJyYXldIixWdGU9IltvYmplY3QgVWludDhDbGFtcGVkQXJyYXldIixqdGU9IltvYmplY3QgVWludDE2QXJyYXldIixVdGU9IltvYmplY3QgVWludDMyQXJyYXldIixoVHQ9L1tcXF4kLiorPygpW1xde318XS9nLHBUdD0vXHcqJC8sdVR0PS9eXFtvYmplY3QgLis/Q29uc3RydWN0b3JcXSQvLGZUdD0vXig/OjB8WzEtOV1cZCopJC8sZjE9e307ZjFbVENdPWYxW2NUdF09ZjFbTnRlXT1mMVtJcF09ZjFbVHRlXT1mMVtMdGVdPWYxW0Z0ZV09ZjFbT3RlXT1mMVtSdGVdPWYxW0J0ZV09ZjFbSHRlXT1mMVtFcF09ZjFbQXRlXT1mMVskQ109ZjFbRXRlXT1mMVtQcF09ZjFbUHRlXT1mMVtJdGVdPWYxW3F0ZV09ZjFbVnRlXT1mMVtqdGVdPWYxW1V0ZV09ITAsZjFbZFR0XT1mMVtMQ109ZjFbQUNdPSExO3ZhciBtVHQ9dHlwZW9mIGdsb2JhbD09Im9iamVjdCImJmdsb2JhbCYmZ2xvYmFsLk9iamVjdD09PU9iamVjdCYmZ2xvYmFsLGdUdD10eXBlb2Ygc2VsZj09Im9iamVjdCImJnNlbGYmJnNlbGYuT2JqZWN0PT09T2JqZWN0JiZzZWxmLHBzPW1UdHx8Z1R0fHxGdW5jdGlvbigicmV0dXJuIHRoaXMiKSgpLFd0ZT10eXBlb2YgcDY9PSJvYmplY3QiJiZwNiYmIXA2Lm5vZGVUeXBlJiZwNixHdGU9V3RlJiZ0eXBlb2YgYjM9PSJvYmplY3QiJiZiMyYmIWIzLm5vZGVUeXBlJiZiMyxiVHQ9R3RlJiZHdGUuZXhwb3J0cz09PVd0ZTtmdW5jdGlvbiB2VHQodCxlKXtyZXR1cm4gdC5zZXQoZVswXSxlWzFdKSx0fWZ1bmN0aW9uIHlUdCh0LGUpe3JldHVybiB0LmFkZChlKSx0fWZ1bmN0aW9uIHhUdCh0LGUpe2Zvcih2YXIgYT0tMSxpPXQ/dC5sZW5ndGg6MDsrK2E8aSYmZSh0W2FdLGEsdCkhPT0hMTspO3JldHVybiB0fWZ1bmN0aW9uIHdUdCh0LGUpe2Zvcih2YXIgYT0tMSxpPWUubGVuZ3RoLHI9dC5sZW5ndGg7KythPGk7KXRbcithXT1lW2FdO3JldHVybiB0fWZ1bmN0aW9uIFl0ZSh0LGUsYSxpKXt2YXIgcj0tMSxzPXQ/dC5sZW5ndGg6MDtmb3IoaSYmcyYmKGE9dFsrK3JdKTsrK3I8czspYT1lKGEsdFtyXSxyLHQpO3JldHVybiBhfWZ1bmN0aW9uIE1UdCh0LGUpe2Zvcih2YXIgYT0tMSxpPUFycmF5KHQpOysrYTx0OylpW2FdPWUoYSk7cmV0dXJuIGl9ZnVuY3Rpb24gelR0KHQsZSl7cmV0dXJuIHQ/LltlXX1mdW5jdGlvbiBadGUodCl7dmFyIGU9ITE7aWYodCE9bnVsbCYmdHlwZW9mIHQudG9TdHJpbmchPSJmdW5jdGlvbiIpdHJ5e2U9ISEodCsiIil9Y2F0Y2h7fXJldHVybiBlfWZ1bmN0aW9uIFh0ZSh0KXt2YXIgZT0tMSxhPUFycmF5KHQuc2l6ZSk7cmV0dXJuIHQuZm9yRWFjaChmdW5jdGlvbihpLHIpe2FbKytlXT1bcixpXX0pLGF9ZnVuY3Rpb24gREModCxlKXtyZXR1cm4gZnVuY3Rpb24oYSl7cmV0dXJuIHQoZShhKSl9fWZ1bmN0aW9uIEt0ZSh0KXt2YXIgZT0tMSxhPUFycmF5KHQuc2l6ZSk7cmV0dXJuIHQuZm9yRWFjaChmdW5jdGlvbihpKXthWysrZV09aX0pLGF9dmFyIGtUdD1BcnJheS5wcm90b3R5cGUsU1R0PUZ1bmN0aW9uLnByb3RvdHlwZSxOcD1PYmplY3QucHJvdG90eXBlLEVDPXBzWyJfX2NvcmUtanNfc2hhcmVkX18iXSxRdGU9KGZ1bmN0aW9uKCl7dmFyIHQ9L1teLl0rJC8uZXhlYyhFQyYmRUMua2V5cyYmRUMua2V5cy5JRV9QUk9UT3x8IiIpO3JldHVybiB0PyJTeW1ib2woc3JjKV8xLiIrdDoiIn0pKCksSnRlPVNUdC50b1N0cmluZywkbj1OcC5oYXNPd25Qcm9wZXJ0eSxGcD1OcC50b1N0cmluZyxDVHQ9UmVnRXhwKCJeIitKdGUuY2FsbCgkbikucmVwbGFjZShoVHQsIlxcJCYiKS5yZXBsYWNlKC9oYXNPd25Qcm9wZXJ0eXwoZnVuY3Rpb24pLio/KD89XFxcKCl8IGZvciAuKz8oPz1cXFxdKS9nLCIkMS4qPyIpKyIkIiksZTFlPWJUdD9wcy5CdWZmZXI6dm9pZCAwLHQxZT1wcy5TeW1ib2wsYTFlPXBzLlVpbnQ4QXJyYXksX1R0PURDKE9iamVjdC5nZXRQcm90b3R5cGVPZixPYmplY3QpLFRUdD1PYmplY3QuY3JlYXRlLExUdD1OcC5wcm9wZXJ0eUlzRW51bWVyYWJsZSwkVHQ9a1R0LnNwbGljZSxpMWU9T2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyxBVHQ9ZTFlP2UxZS5pc0J1ZmZlcjp2b2lkIDAsRFR0PURDKE9iamVjdC5rZXlzLE9iamVjdCksUEM9ZzMocHMsIkRhdGFWaWV3IiksZDY9ZzMocHMsIk1hcCIpLElDPWczKHBzLCJQcm9taXNlIiksTkM9ZzMocHMsIlNldCIpLEZDPWczKHBzLCJXZWFrTWFwIiksaDY9ZzMoT2JqZWN0LCJjcmVhdGUiKSxFVHQ9YTAoUEMpLFBUdD1hMChkNiksSVR0PWEwKElDKSxOVHQ9YTAoTkMpLEZUdD1hMChGQykscjFlPXQxZT90MWUucHJvdG90eXBlOnZvaWQgMCxzMWU9cjFlP3IxZS52YWx1ZU9mOnZvaWQgMDtmdW5jdGlvbiBlMCh0KXt2YXIgZT0tMSxhPXQ/dC5sZW5ndGg6MDtmb3IodGhpcy5jbGVhcigpOysrZTxhOyl7dmFyIGk9dFtlXTt0aGlzLnNldChpWzBdLGlbMV0pfX1mdW5jdGlvbiBPVHQoKXt0aGlzLl9fZGF0YV9fPWg2P2g2KG51bGwpOnt9fWZ1bmN0aW9uIFJUdCh0KXtyZXR1cm4gdGhpcy5oYXModCkmJmRlbGV0ZSB0aGlzLl9fZGF0YV9fW3RdfWZ1bmN0aW9uIEJUdCh0KXt2YXIgZT10aGlzLl9fZGF0YV9fO2lmKGg2KXt2YXIgYT1lW3RdO3JldHVybiBhPT09Q3RlP3ZvaWQgMDphfXJldHVybiAkbi5jYWxsKGUsdCk/ZVt0XTp2b2lkIDB9ZnVuY3Rpb24gSFR0KHQpe3ZhciBlPXRoaXMuX19kYXRhX187cmV0dXJuIGg2P2VbdF0hPT12b2lkIDA6JG4uY2FsbChlLHQpfWZ1bmN0aW9uIHFUdCh0LGUpe3ZhciBhPXRoaXMuX19kYXRhX187cmV0dXJuIGFbdF09aDYmJmU9PT12b2lkIDA/Q3RlOmUsdGhpc31lMC5wcm90b3R5cGUuY2xlYXI9T1R0LGUwLnByb3RvdHlwZS5kZWxldGU9UlR0LGUwLnByb3RvdHlwZS5nZXQ9QlR0LGUwLnByb3RvdHlwZS5oYXM9SFR0LGUwLnByb3RvdHlwZS5zZXQ9cVR0O2Z1bmN0aW9uIHVzKHQpe3ZhciBlPS0xLGE9dD90Lmxlbmd0aDowO2Zvcih0aGlzLmNsZWFyKCk7KytlPGE7KXt2YXIgaT10W2VdO3RoaXMuc2V0KGlbMF0saVsxXSl9fWZ1bmN0aW9uIFZUdCgpe3RoaXMuX19kYXRhX189W119ZnVuY3Rpb24galR0KHQpe3ZhciBlPXRoaXMuX19kYXRhX18sYT1PcChlLHQpO2lmKGE8MClyZXR1cm4hMTt2YXIgaT1lLmxlbmd0aC0xO3JldHVybiBhPT1pP2UucG9wKCk6JFR0LmNhbGwoZSxhLDEpLCEwfWZ1bmN0aW9uIFVUdCh0KXt2YXIgZT10aGlzLl9fZGF0YV9fLGE9T3AoZSx0KTtyZXR1cm4gYTwwP3ZvaWQgMDplW2FdWzFdfWZ1bmN0aW9uIFdUdCh0KXtyZXR1cm4gT3AodGhpcy5fX2RhdGFfXyx0KT4tMX1mdW5jdGlvbiBHVHQodCxlKXt2YXIgYT10aGlzLl9fZGF0YV9fLGk9T3AoYSx0KTtyZXR1cm4gaTwwP2EucHVzaChbdCxlXSk6YVtpXVsxXT1lLHRoaXN9dXMucHJvdG90eXBlLmNsZWFyPVZUdCx1cy5wcm90b3R5cGUuZGVsZXRlPWpUdCx1cy5wcm90b3R5cGUuZ2V0PVVUdCx1cy5wcm90b3R5cGUuaGFzPVdUdCx1cy5wcm90b3R5cGUuc2V0PUdUdDtmdW5jdGlvbiBmMyh0KXt2YXIgZT0tMSxhPXQ/dC5sZW5ndGg6MDtmb3IodGhpcy5jbGVhcigpOysrZTxhOyl7dmFyIGk9dFtlXTt0aGlzLnNldChpWzBdLGlbMV0pfX1mdW5jdGlvbiBZVHQoKXt0aGlzLl9fZGF0YV9fPXtoYXNoOm5ldyBlMCxtYXA6bmV3KGQ2fHx1cyksc3RyaW5nOm5ldyBlMH19ZnVuY3Rpb24gWlR0KHQpe3JldHVybiBScCh0aGlzLHQpLmRlbGV0ZSh0KX1mdW5jdGlvbiBYVHQodCl7cmV0dXJuIFJwKHRoaXMsdCkuZ2V0KHQpfWZ1bmN0aW9uIEtUdCh0KXtyZXR1cm4gUnAodGhpcyx0KS5oYXModCl9ZnVuY3Rpb24gUVR0KHQsZSl7cmV0dXJuIFJwKHRoaXMsdCkuc2V0KHQsZSksdGhpc31mMy5wcm90b3R5cGUuY2xlYXI9WVR0LGYzLnByb3RvdHlwZS5kZWxldGU9WlR0LGYzLnByb3RvdHlwZS5nZXQ9WFR0LGYzLnByb3RvdHlwZS5oYXM9S1R0LGYzLnByb3RvdHlwZS5zZXQ9UVR0O2Z1bmN0aW9uIG0zKHQpe3RoaXMuX19kYXRhX189bmV3IHVzKHQpfWZ1bmN0aW9uIEpUdCgpe3RoaXMuX19kYXRhX189bmV3IHVzfWZ1bmN0aW9uIGVMdCh0KXtyZXR1cm4gdGhpcy5fX2RhdGFfXy5kZWxldGUodCl9ZnVuY3Rpb24gdEx0KHQpe3JldHVybiB0aGlzLl9fZGF0YV9fLmdldCh0KX1mdW5jdGlvbiBhTHQodCl7cmV0dXJuIHRoaXMuX19kYXRhX18uaGFzKHQpfWZ1bmN0aW9uIGlMdCh0LGUpe3ZhciBhPXRoaXMuX19kYXRhX187aWYoYSBpbnN0YW5jZW9mIHVzKXt2YXIgaT1hLl9fZGF0YV9fO2lmKCFkNnx8aS5sZW5ndGg8bFR0LTEpcmV0dXJuIGkucHVzaChbdCxlXSksdGhpczthPXRoaXMuX19kYXRhX189bmV3IGYzKGkpfXJldHVybiBhLnNldCh0LGUpLHRoaXN9bTMucHJvdG90eXBlLmNsZWFyPUpUdCxtMy5wcm90b3R5cGUuZGVsZXRlPWVMdCxtMy5wcm90b3R5cGUuZ2V0PXRMdCxtMy5wcm90b3R5cGUuaGFzPWFMdCxtMy5wcm90b3R5cGUuc2V0PWlMdDtmdW5jdGlvbiByTHQodCxlKXt2YXIgYT1CQyh0KXx8VEx0KHQpP01UdCh0Lmxlbmd0aCxTdHJpbmcpOltdLGk9YS5sZW5ndGgscj0hIWk7Zm9yKHZhciBzIGluIHQpKGV8fCRuLmNhbGwodCxzKSkmJiEociYmKHM9PSJsZW5ndGgifHxrTHQocyxpKSkpJiZhLnB1c2gocyk7cmV0dXJuIGF9ZnVuY3Rpb24gbjFlKHQsZSxhKXt2YXIgaT10W2VdOyghKCRuLmNhbGwodCxlKSYmZDFlKGksYSkpfHxhPT09dm9pZCAwJiYhKGUgaW4gdCkpJiYodFtlXT1hKX1mdW5jdGlvbiBPcCh0LGUpe2Zvcih2YXIgYT10Lmxlbmd0aDthLS07KWlmKGQxZSh0W2FdWzBdLGUpKXJldHVybiBhO3JldHVybi0xfWZ1bmN0aW9uIHNMdCh0LGUpe3JldHVybiB0JiZvMWUoZSxIQyhlKSx0KX1mdW5jdGlvbiBPQyh0LGUsYSxpLHIscyxuKXt2YXIgbztpZihpJiYobz1zP2kodCxyLHMsbik6aSh0KSksbyE9PXZvaWQgMClyZXR1cm4gbztpZighQnAodCkpcmV0dXJuIHQ7dmFyIGQ9QkModCk7aWYoZCl7aWYobz13THQodCksIWUpcmV0dXJuIHZMdCh0LG8pfWVsc2V7dmFyIGM9dDAodCksaD1jPT1MQ3x8Yz09JHRlO2lmKCRMdCh0KSlyZXR1cm4gaEx0KHQsZSk7aWYoYz09JEN8fGM9PVRDfHxoJiYhcyl7aWYoWnRlKHQpKXJldHVybiBzP3Q6e307aWYobz1NTHQoaD97fTp0KSwhZSlyZXR1cm4geUx0KHQsc0x0KG8sdCkpfWVsc2V7aWYoIWYxW2NdKXJldHVybiBzP3Q6e307bz16THQodCxjLE9DLGUpfX1ufHwobj1uZXcgbTMpO3ZhciBsPW4uZ2V0KHQpO2lmKGwpcmV0dXJuIGw7aWYobi5zZXQodCxvKSwhZCl2YXIgZj1hP3hMdCh0KTpIQyh0KTtyZXR1cm4geFR0KGZ8fHQsZnVuY3Rpb24oZyx5KXtmJiYoeT1nLGc9dFt5XSksbjFlKG8seSxPQyhnLGUsYSxpLHksdCxuKSl9KSxvfWZ1bmN0aW9uIG5MdCh0KXtyZXR1cm4gQnAodCk/VFR0KHQpOnt9fWZ1bmN0aW9uIG9MdCh0LGUsYSl7dmFyIGk9ZSh0KTtyZXR1cm4gQkModCk/aTp3VHQoaSxhKHQpKX1mdW5jdGlvbiBsTHQodCl7cmV0dXJuIEZwLmNhbGwodCl9ZnVuY3Rpb24gY0x0KHQpe2lmKCFCcCh0KXx8Q0x0KHQpKXJldHVybiExO3ZhciBlPXAxZSh0KXx8WnRlKHQpP0NUdDp1VHQ7cmV0dXJuIGUudGVzdChhMCh0KSl9ZnVuY3Rpb24gZEx0KHQpe2lmKCFjMWUodCkpcmV0dXJuIERUdCh0KTt2YXIgZT1bXTtmb3IodmFyIGEgaW4gT2JqZWN0KHQpKSRuLmNhbGwodCxhKSYmYSE9ImNvbnN0cnVjdG9yIiYmZS5wdXNoKGEpO3JldHVybiBlfWZ1bmN0aW9uIGhMdCh0LGUpe2lmKGUpcmV0dXJuIHQuc2xpY2UoKTt2YXIgYT1uZXcgdC5jb25zdHJ1Y3Rvcih0Lmxlbmd0aCk7cmV0dXJuIHQuY29weShhKSxhfWZ1bmN0aW9uIFJDKHQpe3ZhciBlPW5ldyB0LmNvbnN0cnVjdG9yKHQuYnl0ZUxlbmd0aCk7cmV0dXJuIG5ldyBhMWUoZSkuc2V0KG5ldyBhMWUodCkpLGV9ZnVuY3Rpb24gcEx0KHQsZSl7dmFyIGE9ZT9SQyh0LmJ1ZmZlcik6dC5idWZmZXI7cmV0dXJuIG5ldyB0LmNvbnN0cnVjdG9yKGEsdC5ieXRlT2Zmc2V0LHQuYnl0ZUxlbmd0aCl9ZnVuY3Rpb24gdUx0KHQsZSxhKXt2YXIgaT1lP2EoWHRlKHQpLCEwKTpYdGUodCk7cmV0dXJuIFl0ZShpLHZUdCxuZXcgdC5jb25zdHJ1Y3Rvcil9ZnVuY3Rpb24gZkx0KHQpe3ZhciBlPW5ldyB0LmNvbnN0cnVjdG9yKHQuc291cmNlLHBUdC5leGVjKHQpKTtyZXR1cm4gZS5sYXN0SW5kZXg9dC5sYXN0SW5kZXgsZX1mdW5jdGlvbiBtTHQodCxlLGEpe3ZhciBpPWU/YShLdGUodCksITApOkt0ZSh0KTtyZXR1cm4gWXRlKGkseVR0LG5ldyB0LmNvbnN0cnVjdG9yKX1mdW5jdGlvbiBnTHQodCl7cmV0dXJuIHMxZT9PYmplY3QoczFlLmNhbGwodCkpOnt9fWZ1bmN0aW9uIGJMdCh0LGUpe3ZhciBhPWU/UkModC5idWZmZXIpOnQuYnVmZmVyO3JldHVybiBuZXcgdC5jb25zdHJ1Y3RvcihhLHQuYnl0ZU9mZnNldCx0Lmxlbmd0aCl9ZnVuY3Rpb24gdkx0KHQsZSl7dmFyIGE9LTEsaT10Lmxlbmd0aDtmb3IoZXx8KGU9QXJyYXkoaSkpOysrYTxpOyllW2FdPXRbYV07cmV0dXJuIGV9ZnVuY3Rpb24gbzFlKHQsZSxhLGkpe2F8fChhPXt9KTtmb3IodmFyIHI9LTEscz1lLmxlbmd0aDsrK3I8czspe3ZhciBuPWVbcl0sbz1pP2koYVtuXSx0W25dLG4sYSx0KTp2b2lkIDA7bjFlKGEsbixvPT09dm9pZCAwP3Rbbl06byl9cmV0dXJuIGF9ZnVuY3Rpb24geUx0KHQsZSl7cmV0dXJuIG8xZSh0LGwxZSh0KSxlKX1mdW5jdGlvbiB4THQodCl7cmV0dXJuIG9MdCh0LEhDLGwxZSl9ZnVuY3Rpb24gUnAodCxlKXt2YXIgYT10Ll9fZGF0YV9fO3JldHVybiBTTHQoZSk/YVt0eXBlb2YgZT09InN0cmluZyI/InN0cmluZyI6Imhhc2giXTphLm1hcH1mdW5jdGlvbiBnMyh0LGUpe3ZhciBhPXpUdCh0LGUpO3JldHVybiBjTHQoYSk/YTp2b2lkIDB9dmFyIGwxZT1pMWU/REMoaTFlLE9iamVjdCk6RUx0LHQwPWxMdDsoUEMmJnQwKG5ldyBQQyhuZXcgQXJyYXlCdWZmZXIoMSkpKSE9SXB8fGQ2JiZ0MChuZXcgZDYpIT1FcHx8SUMmJnQwKElDLnJlc29sdmUoKSkhPUR0ZXx8TkMmJnQwKG5ldyBOQykhPVBwfHxGQyYmdDAobmV3IEZDKSE9QUMpJiYodDA9ZnVuY3Rpb24odCl7dmFyIGU9RnAuY2FsbCh0KSxhPWU9PSRDP3QuY29uc3RydWN0b3I6dm9pZCAwLGk9YT9hMChhKTp2b2lkIDA7aWYoaSlzd2l0Y2goaSl7Y2FzZSBFVHQ6cmV0dXJuIElwO2Nhc2UgUFR0OnJldHVybiBFcDtjYXNlIElUdDpyZXR1cm4gRHRlO2Nhc2UgTlR0OnJldHVybiBQcDtjYXNlIEZUdDpyZXR1cm4gQUN9cmV0dXJuIGV9KTtmdW5jdGlvbiB3THQodCl7dmFyIGU9dC5sZW5ndGgsYT10LmNvbnN0cnVjdG9yKGUpO3JldHVybiBlJiZ0eXBlb2YgdFswXT09InN0cmluZyImJiRuLmNhbGwodCwiaW5kZXgiKSYmKGEuaW5kZXg9dC5pbmRleCxhLmlucHV0PXQuaW5wdXQpLGF9ZnVuY3Rpb24gTUx0KHQpe3JldHVybiB0eXBlb2YgdC5jb25zdHJ1Y3Rvcj09ImZ1bmN0aW9uIiYmIWMxZSh0KT9uTHQoX1R0KHQpKTp7fX1mdW5jdGlvbiB6THQodCxlLGEsaSl7dmFyIHI9dC5jb25zdHJ1Y3Rvcjtzd2l0Y2goZSl7Y2FzZSBOdGU6cmV0dXJuIFJDKHQpO2Nhc2UgVHRlOmNhc2UgTHRlOnJldHVybiBuZXcgcigrdCk7Y2FzZSBJcDpyZXR1cm4gcEx0KHQsaSk7Y2FzZSBGdGU6Y2FzZSBPdGU6Y2FzZSBSdGU6Y2FzZSBCdGU6Y2FzZSBIdGU6Y2FzZSBxdGU6Y2FzZSBWdGU6Y2FzZSBqdGU6Y2FzZSBVdGU6cmV0dXJuIGJMdCh0LGkpO2Nhc2UgRXA6cmV0dXJuIHVMdCh0LGksYSk7Y2FzZSBBdGU6Y2FzZSBQdGU6cmV0dXJuIG5ldyByKHQpO2Nhc2UgRXRlOnJldHVybiBmTHQodCk7Y2FzZSBQcDpyZXR1cm4gbUx0KHQsaSxhKTtjYXNlIEl0ZTpyZXR1cm4gZ0x0KHQpfX1mdW5jdGlvbiBrTHQodCxlKXtyZXR1cm4gZT1lPz9fdGUsISFlJiYodHlwZW9mIHQ9PSJudW1iZXIifHxmVHQudGVzdCh0KSkmJnQ+LTEmJnQlMT09MCYmdDxlfWZ1bmN0aW9uIFNMdCh0KXt2YXIgZT10eXBlb2YgdDtyZXR1cm4gZT09InN0cmluZyJ8fGU9PSJudW1iZXIifHxlPT0ic3ltYm9sInx8ZT09ImJvb2xlYW4iP3QhPT0iX19wcm90b19fIjp0PT09bnVsbH1mdW5jdGlvbiBDTHQodCl7cmV0dXJuISFRdGUmJlF0ZSBpbiB0fWZ1bmN0aW9uIGMxZSh0KXt2YXIgZT10JiZ0LmNvbnN0cnVjdG9yLGE9dHlwZW9mIGU9PSJmdW5jdGlvbiImJmUucHJvdG90eXBlfHxOcDtyZXR1cm4gdD09PWF9ZnVuY3Rpb24gYTAodCl7aWYodCE9bnVsbCl7dHJ5e3JldHVybiBKdGUuY2FsbCh0KX1jYXRjaHt9dHJ5e3JldHVybiB0KyIifWNhdGNoe319cmV0dXJuIiJ9ZnVuY3Rpb24gX0x0KHQpe3JldHVybiBPQyh0LCEwLCEwKX1mdW5jdGlvbiBkMWUodCxlKXtyZXR1cm4gdD09PWV8fHQhPT10JiZlIT09ZX1mdW5jdGlvbiBUTHQodCl7cmV0dXJuIExMdCh0KSYmJG4uY2FsbCh0LCJjYWxsZWUiKSYmKCFMVHQuY2FsbCh0LCJjYWxsZWUiKXx8RnAuY2FsbCh0KT09VEMpfXZhciBCQz1BcnJheS5pc0FycmF5O2Z1bmN0aW9uIGgxZSh0KXtyZXR1cm4gdCE9bnVsbCYmQUx0KHQubGVuZ3RoKSYmIXAxZSh0KX1mdW5jdGlvbiBMTHQodCl7cmV0dXJuIERMdCh0KSYmaDFlKHQpfXZhciAkTHQ9QVR0fHxQTHQ7ZnVuY3Rpb24gcDFlKHQpe3ZhciBlPUJwKHQpP0ZwLmNhbGwodCk6IiI7cmV0dXJuIGU9PUxDfHxlPT0kdGV9ZnVuY3Rpb24gQUx0KHQpe3JldHVybiB0eXBlb2YgdD09Im51bWJlciImJnQ+LTEmJnQlMT09MCYmdDw9X3RlfWZ1bmN0aW9uIEJwKHQpe3ZhciBlPXR5cGVvZiB0O3JldHVybiEhdCYmKGU9PSJvYmplY3QifHxlPT0iZnVuY3Rpb24iKX1mdW5jdGlvbiBETHQodCl7cmV0dXJuISF0JiZ0eXBlb2YgdD09Im9iamVjdCJ9ZnVuY3Rpb24gSEModCl7cmV0dXJuIGgxZSh0KT9yTHQodCk6ZEx0KHQpfWZ1bmN0aW9uIEVMdCgpe3JldHVybltdfWZ1bmN0aW9uIFBMdCgpe3JldHVybiExfWIzLmV4cG9ydHM9X0x0fSk7dmFyIFZDPWh0KChRazEsdTFlKT0+eyJ1c2Ugc3RyaWN0Ijt1MWUuZXhwb3J0cz1mdW5jdGlvbih0LGUpe2V8fChlPXt9KSx0eXBlb2YgZT09ImZ1bmN0aW9uIiYmKGU9e2NtcDplfSk7dmFyIGE9dHlwZW9mIGUuY3ljbGVzPT0iYm9vbGVhbiI/ZS5jeWNsZXM6ITEsaT1lLmNtcCYmKGZ1bmN0aW9uKHMpe3JldHVybiBmdW5jdGlvbihuKXtyZXR1cm4gZnVuY3Rpb24obyxkKXt2YXIgYz17a2V5Om8sdmFsdWU6bltvXX0saD17a2V5OmQsdmFsdWU6bltkXX07cmV0dXJuIHMoYyxoKX19fSkoZS5jbXApLHI9W107cmV0dXJuKGZ1bmN0aW9uIHMobil7aWYobiYmbi50b0pTT04mJnR5cGVvZiBuLnRvSlNPTj09ImZ1bmN0aW9uIiYmKG49bi50b0pTT04oKSksbiE9PXZvaWQgMCl7aWYodHlwZW9mIG49PSJudW1iZXIiKXJldHVybiBpc0Zpbml0ZShuKT8iIituOiJudWxsIjtpZih0eXBlb2YgbiE9Im9iamVjdCIpcmV0dXJuIEpTT04uc3RyaW5naWZ5KG4pO3ZhciBvLGQ7aWYoQXJyYXkuaXNBcnJheShuKSl7Zm9yKGQ9IlsiLG89MDtvPG4ubGVuZ3RoO28rKylvJiYoZCs9IiwiKSxkKz1zKG5bb10pfHwibnVsbCI7cmV0dXJuIGQrIl0ifWlmKG49PT1udWxsKXJldHVybiJudWxsIjtpZihyLmluZGV4T2YobikhPT0tMSl7aWYoYSlyZXR1cm4gSlNPTi5zdHJpbmdpZnkoIl9fY3ljbGVfXyIpO3Rocm93IG5ldyBUeXBlRXJyb3IoIkNvbnZlcnRpbmcgY2lyY3VsYXIgc3RydWN0dXJlIHRvIEpTT04iKX12YXIgYz1yLnB1c2gobiktMSxoPU9iamVjdC5rZXlzKG4pLnNvcnQoaSYmaShuKSk7Zm9yKGQ9IiIsbz0wO288aC5sZW5ndGg7bysrKXt2YXIgbD1oW29dLGY9cyhuW2xdKTtmJiYoZCYmKGQrPSIsIiksZCs9SlNPTi5zdHJpbmdpZnkobCkrIjoiK2YpfXJldHVybiByLnNwbGljZShjLDEpLCJ7IitkKyJ9In19KSh0KX19KTt2YXIgSHAsZjFlLHFwLGpDPWIoKCk9PntkMygpO3UzKCk7SHA9VTEocUMoKSwxKSxmMWU9VTEoVkMoKSwxKSxxcD1mMWUuZGVmYXVsdH0pO2Z1bmN0aW9uIE5MdCh0KXtyZXR1cm4gdHlwZW9mIEJ1ZmZlcjwidSI/QnVmZmVyLmZyb20odCkudG9TdHJpbmcoImJhc2U2NCIpOmJ0b2EoU3RyaW5nLmZyb21DaGFyQ29kZSguLi50KSl9ZnVuY3Rpb24gRkx0KHQpe2lmKHR5cGVvZiBCdWZmZXI8InUiKXtsZXQgZT1CdWZmZXIuZnJvbSh0LCJiYXNlNjQiKTtyZXR1cm4gbmV3IFVpbnQ4QXJyYXkoZS5idWZmZXIsZS5ieXRlT2Zmc2V0LGUuYnl0ZUxlbmd0aCl9cmV0dXJuIG5ldyBVaW50OEFycmF5KEFycmF5LmZyb20oYXRvYih0KSkubWFwKGU9PmUuY2hhckNvZGVBdCgwKSkpfWZ1bmN0aW9uIFdDKHQsZSl7cmV0dXJuIEpTT04uc3RyaW5naWZ5KHQsVnAsZSl9ZnVuY3Rpb24gR0ModCl7cmV0dXJuIEpTT04ucGFyc2UodCxtMWUpfWZ1bmN0aW9uIE9MdCh0KXtyZXR1cm4gYjFlKHQpJiZ0LnR5cGU9PT0iRW5jb2RlZEJ1ZmZlciImJlVDKHQuZGF0YSl9ZnVuY3Rpb24gUkx0KHQpe3JldHVybiBiMWUodCkmJnQudHlwZT09PSJCdWZmZXIiJiYoZzFlKHQuZGF0YSl8fFVDKHQuZGF0YSkpfHx0IGluc3RhbmNlb2YgVWludDhBcnJheX1mdW5jdGlvbiBnMWUodCl7cmV0dXJuIEFycmF5LmlzQXJyYXkodCl9ZnVuY3Rpb24gVUModCl7cmV0dXJuIHR5cGVvZiB0PT0ic3RyaW5nIn1mdW5jdGlvbiBiMWUodCl7cmV0dXJuIHR5cGVvZiB0PT0ib2JqZWN0IiYmdCE9PW51bGx9dmFyIFZwLG0xZSx2MWU9YigoKT0+e2pDKCk7VnA9KHQsZSk9PntpZihSTHQoZSkpe2xldCBhO2lmKCJkYXRhImluIGUmJmcxZShlLmRhdGEpKWE9bmV3IFVpbnQ4QXJyYXkoZS5kYXRhKTtlbHNlIGlmKGUgaW5zdGFuY2VvZiBVaW50OEFycmF5KWE9ZTtlbHNlIHJldHVybiBlO3JldHVybnt0eXBlOiJFbmNvZGVkQnVmZmVyIixkYXRhOiJiYXNlNjQ6IitOTHQoYSl9fXJldHVybiBlfSxtMWU9KHQsZSk9PntpZihPTHQoZSkmJlVDKGUuZGF0YSkmJmUuZGF0YS5zdGFydHNXaXRoKCJiYXNlNjQ6Iikpe2xldCBhPWUuZGF0YS5zbGljZSg3KTtyZXR1cm4gRkx0KGEpfXJldHVybiBlfX0pO3ZhciBDMT17fTtHZShDMSx7U21hcnRqc29uOigpPT5aQyxkZWVwRXF1YWxKc29uTFN0cmluZ3M6KCk9PkdMdCxkZWVwRXF1YWxPYmplY3RzOigpPT55MWUsZm9sZERlYzooKT0+V0x0LHBhcnNlOigpPT5qcCxwYXJzZUJhc2U2NDooKT0+VUx0LHBhcnNlSnNvbkw6KCk9PllDLHN0YWJsZU9uZVdheVN0cmluZ2lmeTooKT0+cUx0LHN0cmluZ2lmeTooKT0+aTAsc3RyaW5naWZ5QmFzZTY0OigpPT5qTHQsc3RyaW5naWZ5SnNvbkw6KCk9PkhMdCxzdHJpbmdpZnlQcmV0dHk6KCk9PlZMdH0pO3ZhciBqcCxZQyxITHQscUx0LGkwLFZMdCxqTHQsVUx0LFpDLFdMdCx5MWUsR0x0LHYzPWIoKCk9PntqQygpO3YxZSgpO2pwPUdDLFlDPXQ9PnQuc3BsaXQoYApgKS5yZWR1Y2UoKGkscik9PntsZXQgcz1yLnRyaW0oKTtyZXR1cm4gcy5sZW5ndGg+MCYmaS5wdXNoKGpwKHMpKSxpfSxbXSksSEx0PXQ9PnQubWFwKGU9PmkwKGUpKS5qb2luKGAKYCkscUx0PSh0LGUsYT17fSk9PntsZXQgaT1uZXcgV2Vha1NldCxyPW89PntpZihvPT09bnVsbHx8dHlwZW9mIG8hPSJvYmplY3QiKXJldHVybiBvO2xldCBkPVZwKCIiLG8pO2lmKGQmJmQudHlwZT09PSJFbmNvZGVkQnVmZmVyIiYmdHlwZW9mIGQuZGF0YT09InN0cmluZyIpcmV0dXJuIGQ7aWYoaS5oYXMobykpcmV0dXJuIl9fY3ljbGVfXyI7aWYoaS5hZGQobyksQXJyYXkuaXNBcnJheShvKSlyZXR1cm4gby5tYXAoaD0+cihoKSk7bGV0IGM9e307Zm9yKGxldCBoIG9mIE9iamVjdC5rZXlzKG8pKXRyeXtjW2hdPXIob1toXSl9Y2F0Y2h7Y1toXT0iX191bnNlcmlhbGl6YWJsZV9fIn1yZXR1cm4gY30scz1yKHQpLG49ey4uLmEsY3ljbGVzOiEwfTtpZihlJiYhbi5jbXApe2xldCBvPW5ldyBNYXA7ZS5mb3JFYWNoKChkLGMpPT5vLnNldChkLGMpKSxuLmNtcD0oZCxjKT0+e2xldCBoPW8uaGFzKGQua2V5KT9vLmdldChkLmtleSk6TnVtYmVyLlBPU0lUSVZFX0lORklOSVRZLGw9by5oYXMoYy5rZXkpP28uZ2V0KGMua2V5KTpOdW1iZXIuUE9TSVRJVkVfSU5GSU5JVFk7cmV0dXJuIGghPT1sP2gtbDpkLmtleTxjLmtleT8tMTpkLmtleT5jLmtleT8xOjB9fXJldHVybiBxcChzLG4pfSxpMD0odCxlLGE9e30pPT57bGV0IGk9V0ModCk7dD1KU09OLnBhcnNlKGkpO2xldCByPXsuLi5hfTtpZihlJiYhci5jbXApe2xldCBuPW5ldyBNYXA7ZS5mb3JFYWNoKChvLGQpPT5uLnNldChvLGQpKSxyLmNtcD0obyxkKT0+e2xldCBjPW4uaGFzKG8ua2V5KT9uLmdldChvLmtleSk6TnVtYmVyLlBPU0lUSVZFX0lORklOSVRZLGg9bi5oYXMoZC5rZXkpP24uZ2V0KGQua2V5KTpOdW1iZXIuUE9TSVRJVkVfSU5GSU5JVFk7cmV0dXJuIGMhPT1oP2MtaDpvLmtleTxkLmtleT8tMTpvLmtleT5kLmtleT8xOjB9fXJldHVybiBxcCh0LHIpfSxWTHQ9dD0+e2xldCBlPWkwKHQpLGE9SlNPTi5wYXJzZShlKTtyZXR1cm4gSlNPTi5zdHJpbmdpZnkoYSxudWxsLDIpfSxqTHQ9KC4uLnQpPT57bGV0IGU9aTAoLi4udCk7cmV0dXJuIGsyLmJhc2U2NC5lbmNvZGVVcmkoZSl9LFVMdD10PT57bGV0IGU9azIuYmFzZTY0LGk9KGUuZGVjb2RlVXJpfHxlLmRlY29kZSkodCk7cmV0dXJuIGpwKGkpfSxaQz1jbGFzcyB0e3N0YXRpYyBlbmZvbGRGcm9tT2JqZWN0KGUpe2xldCBhPW5ldyB0aGlzLGk9YS5zYXZlYWJsZVByb3BlcnRpZXN8fFtdO2ZvcihsZXQgciBpbiBlKWkuaW5kZXhPZihyKSE9PS0xJiYoYVtyXT1lW3JdKTtyZXR1cm4gYX1zdGF0aWMgZW5mb2xkRnJvbUpzb24oZSl7bGV0IGE9anAoZSk7cmV0dXJuIHRoaXMuZW5mb2xkRnJvbU9iamVjdChhKX1mb2xkVG9PYmplY3QoKXtsZXQgZT1uZXcgU2V0O3JldHVybiBlLmFkZCh0aGlzKSx0aGlzLmZvbGRUb09iamVjdEludGVybmFsKGUpfWZvbGRUb09iamVjdEludGVybmFsKGUpe2xldCBhPXt9LGk9cz0+e2lmKHMgaW5zdGFuY2VvZiB0KXtpZihlLmhhcyhzKSl0aHJvdyBuZXcgRXJyb3IoImN5Y2xlIGRldGVjdGVkIik7cmV0dXJuIGUuYWRkKHMpLHMuZm9sZFRvT2JqZWN0SW50ZXJuYWwoZSl9cmV0dXJuIEFycmF5LmlzQXJyYXkocyk/cy5tYXAobj0+aShuKSk6SHAuZGVmYXVsdChzKX0scj10aGlzLnNhdmVhYmxlUHJvcGVydGllc3x8W107Zm9yKGxldCBzIG9mIHIpe2xldCBuPXRoaXNbc107YVtzXT1pKG4pfXJldHVybiBhfWZvbGRUb0pzb24oKXtsZXQgZT10aGlzLmZvbGRUb09iamVjdCgpO3JldHVybiBpMChlKX19LFdMdD0oKT0+KHQsZSk9Pnt0LnNhdmVhYmxlUHJvcGVydGllc3x8KHQuc2F2ZWFibGVQcm9wZXJ0aWVzPVtdKSx0LnNhdmVhYmxlUHJvcGVydGllcy5wdXNoKGUpfSx5MWU9KHQsZSk9PntsZXQgYT1pMCh0KSxpPWkwKGUpO3JldHVybiBhPT09aX0sR0x0PSh0LGUpPT57bGV0IGE9WUModCksaT1ZQyhlKTtyZXR1cm4geTFlKGEsaSl9fSk7dmFyIGY2PXt9O0dlKGY2LHtkZWxldGVEQjooKT0+VDFlLG9wZW5EQjooKT0+XzFlLHVud3JhcDooKT0+dTYsd3JhcDooKT0+a3J9KTtmdW5jdGlvbiBZTHQoKXtyZXR1cm4geDFlfHwoeDFlPVtJREJEYXRhYmFzZSxJREJPYmplY3RTdG9yZSxJREJJbmRleCxJREJDdXJzb3IsSURCVHJhbnNhY3Rpb25dKX1mdW5jdGlvbiBaTHQoKXtyZXR1cm4gdzFlfHwodzFlPVtJREJDdXJzb3IucHJvdG90eXBlLmFkdmFuY2UsSURCQ3Vyc29yLnByb3RvdHlwZS5jb250aW51ZSxJREJDdXJzb3IucHJvdG90eXBlLmNvbnRpbnVlUHJpbWFyeUtleV0pfWZ1bmN0aW9uIFhMdCh0KXtsZXQgZT1uZXcgUHJvbWlzZSgoYSxpKT0+e2xldCByPSgpPT57dC5yZW1vdmVFdmVudExpc3RlbmVyKCJzdWNjZXNzIixzKSx0LnJlbW92ZUV2ZW50TGlzdGVuZXIoImVycm9yIixuKX0scz0oKT0+e2Eoa3IodC5yZXN1bHQpKSxyKCl9LG49KCk9PntpKHQuZXJyb3IpLHIoKX07dC5hZGRFdmVudExpc3RlbmVyKCJzdWNjZXNzIixzKSx0LmFkZEV2ZW50TGlzdGVuZXIoImVycm9yIixuKX0pO3JldHVybiBVcC5zZXQoZSx0KSxlfWZ1bmN0aW9uIEtMdCh0KXtpZihLQy5oYXModCkpcmV0dXJuO2xldCBlPW5ldyBQcm9taXNlKChhLGkpPT57bGV0IHI9KCk9Pnt0LnJlbW92ZUV2ZW50TGlzdGVuZXIoImNvbXBsZXRlIixzKSx0LnJlbW92ZUV2ZW50TGlzdGVuZXIoImVycm9yIixuKSx0LnJlbW92ZUV2ZW50TGlzdGVuZXIoImFib3J0IixuKX0scz0oKT0+e2EoKSxyKCl9LG49KCk9PntpKHQuZXJyb3J8fG5ldyBET01FeGNlcHRpb24oIkFib3J0RXJyb3IiLCJBYm9ydEVycm9yIikpLHIoKX07dC5hZGRFdmVudExpc3RlbmVyKCJjb21wbGV0ZSIscyksdC5hZGRFdmVudExpc3RlbmVyKCJlcnJvciIsbiksdC5hZGRFdmVudExpc3RlbmVyKCJhYm9ydCIsbil9KTtLQy5zZXQodCxlKX1mdW5jdGlvbiBNMWUodCl7SkM9dChKQyl9ZnVuY3Rpb24gUUx0KHQpe3JldHVybiBaTHQoKS5pbmNsdWRlcyh0KT9mdW5jdGlvbiguLi5lKXtyZXR1cm4gdC5hcHBseSh1Nih0aGlzKSxlKSxrcih0aGlzLnJlcXVlc3QpfTpmdW5jdGlvbiguLi5lKXtyZXR1cm4ga3IodC5hcHBseSh1Nih0aGlzKSxlKSl9fWZ1bmN0aW9uIEpMdCh0KXtyZXR1cm4gdHlwZW9mIHQ9PSJmdW5jdGlvbiI/UUx0KHQpOih0IGluc3RhbmNlb2YgSURCVHJhbnNhY3Rpb24mJktMdCh0KSxYQyh0LFlMdCgpKT9uZXcgUHJveHkodCxKQyk6dCl9ZnVuY3Rpb24ga3IodCl7aWYodCBpbnN0YW5jZW9mIElEQlJlcXVlc3QpcmV0dXJuIFhMdCh0KTtpZihRQy5oYXModCkpcmV0dXJuIFFDLmdldCh0KTtsZXQgZT1KTHQodCk7cmV0dXJuIGUhPT10JiYoUUMuc2V0KHQsZSksVXAuc2V0KGUsdCkpLGV9ZnVuY3Rpb24gXzFlKHQsZSx7YmxvY2tlZDphLHVwZ3JhZGU6aSxibG9ja2luZzpyLHRlcm1pbmF0ZWQ6c309e30pe2xldCBuPWluZGV4ZWREQi5vcGVuKHQsZSksbz1rcihuKTtyZXR1cm4gaSYmbi5hZGRFdmVudExpc3RlbmVyKCJ1cGdyYWRlbmVlZGVkIixkPT57aShrcihuLnJlc3VsdCksZC5vbGRWZXJzaW9uLGQubmV3VmVyc2lvbixrcihuLnRyYW5zYWN0aW9uKSxkKX0pLGEmJm4uYWRkRXZlbnRMaXN0ZW5lcigiYmxvY2tlZCIsZD0+YShkLm9sZFZlcnNpb24sZC5uZXdWZXJzaW9uLGQpKSxvLnRoZW4oZD0+e3MmJmQuYWRkRXZlbnRMaXN0ZW5lcigiY2xvc2UiLCgpPT5zKCkpLHImJmQuYWRkRXZlbnRMaXN0ZW5lcigidmVyc2lvbmNoYW5nZSIsYz0+cihjLm9sZFZlcnNpb24sYy5uZXdWZXJzaW9uLGMpKX0pLmNhdGNoKCgpPT57fSksb31mdW5jdGlvbiBUMWUodCx7YmxvY2tlZDplfT17fSl7bGV0IGE9aW5kZXhlZERCLmRlbGV0ZURhdGFiYXNlKHQpO3JldHVybiBlJiZhLmFkZEV2ZW50TGlzdGVuZXIoImJsb2NrZWQiLGk9PmUoaS5vbGRWZXJzaW9uLGkpKSxrcihhKS50aGVuKCgpPT57fSl9ZnVuY3Rpb24gejFlKHQsZSl7aWYoISh0IGluc3RhbmNlb2YgSURCRGF0YWJhc2UmJiEoZSBpbiB0KSYmdHlwZW9mIGU9PSJzdHJpbmciKSlyZXR1cm47aWYoZV8uZ2V0KGUpKXJldHVybiBlXy5nZXQoZSk7bGV0IGE9ZS5yZXBsYWNlKC9Gcm9tSW5kZXgkLywiIiksaT1lIT09YSxyPXQkdC5pbmNsdWRlcyhhKTtpZighKGEgaW4oaT9JREJJbmRleDpJREJPYmplY3RTdG9yZSkucHJvdG90eXBlKXx8IShyfHxlJHQuaW5jbHVkZXMoYSkpKXJldHVybjtsZXQgcz1hc3luYyBmdW5jdGlvbihuLC4uLm8pe2xldCBkPXRoaXMudHJhbnNhY3Rpb24obixyPyJyZWFkd3JpdGUiOiJyZWFkb25seSIpLGM9ZC5zdG9yZTtyZXR1cm4gaSYmKGM9Yy5pbmRleChvLnNoaWZ0KCkpKSwoYXdhaXQgUHJvbWlzZS5hbGwoW2NbYV0oLi4ubyksciYmZC5kb25lXSkpWzBdfTtyZXR1cm4gZV8uc2V0KGUscyksc31hc3luYyBmdW5jdGlvbipyJHQoLi4udCl7bGV0IGU9dGhpcztpZihlIGluc3RhbmNlb2YgSURCQ3Vyc29yfHwoZT1hd2FpdCBlLm9wZW5DdXJzb3IoLi4udCkpLCFlKXJldHVybjtlPWU7bGV0IGE9bmV3IFByb3h5KGUsaSR0KTtmb3IoUzFlLnNldChhLGUpLFVwLnNldChhLHU2KGUpKTtlOyl5aWVsZCBhLGU9YXdhaXQodF8uZ2V0KGEpfHxlLmNvbnRpbnVlKCkpLHRfLmRlbGV0ZShhKX1mdW5jdGlvbiBDMWUodCxlKXtyZXR1cm4gZT09PVN5bWJvbC5hc3luY0l0ZXJhdG9yJiZYQyh0LFtJREJJbmRleCxJREJPYmplY3RTdG9yZSxJREJDdXJzb3JdKXx8ZT09PSJpdGVyYXRlIiYmWEModCxbSURCSW5kZXgsSURCT2JqZWN0U3RvcmVdKX12YXIgWEMseDFlLHcxZSxLQyxRQyxVcCxKQyx1NixlJHQsdCR0LGVfLGEkdCxrMWUsdF8sUzFlLGkkdCxMMWU9YigoKT0+e1hDPSh0LGUpPT5lLnNvbWUoYT0+dCBpbnN0YW5jZW9mIGEpO0tDPW5ldyBXZWFrTWFwLFFDPW5ldyBXZWFrTWFwLFVwPW5ldyBXZWFrTWFwO0pDPXtnZXQodCxlLGEpe2lmKHQgaW5zdGFuY2VvZiBJREJUcmFuc2FjdGlvbil7aWYoZT09PSJkb25lIilyZXR1cm4gS0MuZ2V0KHQpO2lmKGU9PT0ic3RvcmUiKXJldHVybiBhLm9iamVjdFN0b3JlTmFtZXNbMV0/dm9pZCAwOmEub2JqZWN0U3RvcmUoYS5vYmplY3RTdG9yZU5hbWVzWzBdKX1yZXR1cm4ga3IodFtlXSl9LHNldCh0LGUsYSl7cmV0dXJuIHRbZV09YSwhMH0saGFzKHQsZSl7cmV0dXJuIHQgaW5zdGFuY2VvZiBJREJUcmFuc2FjdGlvbiYmKGU9PT0iZG9uZSJ8fGU9PT0ic3RvcmUiKT8hMDplIGluIHR9fTt1Nj10PT5VcC5nZXQodCk7ZSR0PVsiZ2V0IiwiZ2V0S2V5IiwiZ2V0QWxsIiwiZ2V0QWxsS2V5cyIsImNvdW50Il0sdCR0PVsicHV0IiwiYWRkIiwiZGVsZXRlIiwiY2xlYXIiXSxlXz1uZXcgTWFwO00xZSh0PT4oey4uLnQsZ2V0OihlLGEsaSk9PnoxZShlLGEpfHx0LmdldChlLGEsaSksaGFzOihlLGEpPT4hIXoxZShlLGEpfHx0LmhhcyhlLGEpfSkpO2EkdD1bImNvbnRpbnVlIiwiY29udGludWVQcmltYXJ5S2V5IiwiYWR2YW5jZSJdLGsxZT17fSx0Xz1uZXcgV2Vha01hcCxTMWU9bmV3IFdlYWtNYXAsaSR0PXtnZXQodCxlKXtpZighYSR0LmluY2x1ZGVzKGUpKXJldHVybiB0W2VdO2xldCBhPWsxZVtlXTtyZXR1cm4gYXx8KGE9azFlW2VdPWZ1bmN0aW9uKC4uLmkpe3RfLnNldCh0aGlzLFMxZS5nZXQodGhpcylbZV0oLi4uaSkpfSksYX19O00xZSh0PT4oey4uLnQsZ2V0KGUsYSxpKXtyZXR1cm4gQzFlKGUsYSk/ciR0OnQuZ2V0KGUsYSxpKX0saGFzKGUsYSl7cmV0dXJuIEMxZShlLGEpfHx0LmhhcyhlLGEpfX0pKX0pO3ZhciBhXz1iKCgpPT57ZTYoKTtkMygpO3YzKCk7YzIoKTtEaSgpO0NjKCk7TDFlKCl9KTt2YXIgbTYsaV89YigoKT0+e2FfKCk7bTY9Y2xhc3N7Y29uc3RydWN0b3IoZSl7dGhpcy5pbml0Q2FsbGVkPSExLHRoaXMucmVhZHlEZWZlcnJlZD1CZS5kZWZlcigpLHRoaXMub3B0aW9ucz1lfWFzeW5jIGluaXQoKXtpZih0aGlzLmluaXRDYWxsZWQpe2F3YWl0IHRoaXMucmVhZHlEZWZlcnJlZC5wcm9taXNlO3JldHVybn10aGlzLmluaXRDYWxsZWQ9ITA7bGV0IGU9bmV3IEZhLlNtYXJ0ZW52O2lmKCFlLmlzQnJvd3NlciYmIWdsb2JhbFRoaXMuaW5kZXhlZERCJiYoY29uc29sZS5sb2coImhleSIpLGNvbnNvbGUubG9nKGdsb2JhbFRoaXMuaW5kZXhlZERCKSxhd2FpdCBlLmdldFNhZmVOb2RlTW9kdWxlKCJmYWtlLWluZGV4ZWRkYi9hdXRvIiksIWdsb2JhbFRoaXMuaW5kZXhlZERCKSl7bGV0IGE9YXdhaXQgZS5nZXRTYWZlTm9kZU1vZHVsZSgiZmFrZS1pbmRleGVkZGIiKTtnbG9iYWxUaGlzLmluZGV4ZWREQj1uZXcgYS5JREJGYWN0b3J5fXRoaXMuZGI9YXdhaXQgZjYub3BlbkRCKHRoaXMub3B0aW9ucy5kYk5hbWUsMSx7dXBncmFkZTphPT57YS5jcmVhdGVPYmplY3RTdG9yZSh0aGlzLm9wdGlvbnMuc3RvcmVOYW1lKX19KSx0aGlzLnJlYWR5RGVmZXJyZWQucmVzb2x2ZSgpfWFzeW5jIGdldChlKXtyZXR1cm4gYXdhaXQgdGhpcy5pbml0KCksdGhpcy5kYi5nZXQodGhpcy5vcHRpb25zLnN0b3JlTmFtZSxlKX1hc3luYyBjaGVjayhlKXtyZXR1cm4gYXdhaXQgdGhpcy5pbml0KCksISFhd2FpdCB0aGlzLmdldChlKX1hc3luYyBzZXQoZSxhKXtyZXR1cm4gYXdhaXQgdGhpcy5pbml0KCksdGhpcy5kYi5wdXQodGhpcy5vcHRpb25zLnN0b3JlTmFtZSxhLGUpfWFzeW5jIGRlbGV0ZShlKXtyZXR1cm4gYXdhaXQgdGhpcy5pbml0KCksdGhpcy5kYi5kZWxldGUodGhpcy5vcHRpb25zLnN0b3JlTmFtZSxlKX1hc3luYyBjbGVhcigpe3JldHVybiBhd2FpdCB0aGlzLmluaXQoKSx0aGlzLmRiLmNsZWFyKHRoaXMub3B0aW9ucy5zdG9yZU5hbWUpfWFzeW5jIGtleXMoKXtyZXR1cm4gYXdhaXQgdGhpcy5pbml0KCksdGhpcy5kYi5nZXRBbGxLZXlzKHRoaXMub3B0aW9ucy5zdG9yZU5hbWUpfX19KTt2YXIgcl8sQTFlPWIoKCk9PntpXygpO2FfKCk7cl89Y2xhc3N7Y29uc3RydWN0b3IoZT0iZGVmYXVsdCIpe3RoaXMud2Vic3RvcmU9bmV3IG02KHtkYk5hbWU6InRyU3RvcmUiLHN0b3JlTmFtZTpgdHJTdG9yZS0ke2V9YH0pfWJ1aWxkS2V5KGUpe3JldHVybiBDMS5zdHJpbmdpZnkoe21ldGhvZDplLm1ldGhvZCxyZXF1ZXN0OmUucmVxdWVzdH0pfWFzeW5jIHNldEJ5UmVxdWVzdChlKXtpZighZS5yZXNwb25zZSl0aHJvdyBuZXcgRXJyb3IoIllvdSBjYW5ub3Qgc3RvcmUgcmVxdWVzdHMgd2l0aG91dCBhIHJlc3BvbnNlIHByZXNlbnQiKTthd2FpdCB0aGlzLndlYnN0b3JlLnNldCh0aGlzLmJ1aWxkS2V5KGUpLGUpfWFzeW5jIGdldEJ5UmVxdWVzdChlKXtyZXR1cm4gYXdhaXQgdGhpcy53ZWJzdG9yZS5nZXQodGhpcy5idWlsZEtleShlKSl9fX0pO3ZhciBvYT17fTtHZShvYSx7VHlwZWRyZXF1ZXN0Q2FjaGU6KCk9PnJfLFdlYlN0b3JlOigpPT5tNn0pO3ZhciBnNj1iKCgpPT57QTFlKCk7aV8oKX0pO3ZhciBiNj1iKCgpPT57dXIoKTtkMygpO3YzKCk7YzIoKTtnNigpfSk7dmFyIHkzLEdwPWIoKCk9PntiNigpO3kzPWNsYXNze2NvbnN0cnVjdG9yKGU9IndlYnJlcXVlc3QtdjQiLGE9ImNhY2hlIil7dGhpcy53ZWJzdG9yZT1uZXcgb2EuV2ViU3RvcmUoe2RiTmFtZTplLHN0b3JlTmFtZTphfSksdGhpcy5pbml0UHJvbWlzZT10aGlzLmluaXQoKX1hc3luYyBpbml0KCl7fWdlbmVyYXRlQ2FjaGVLZXkoZSl7bGV0IGE9ZS51cmwsaT1lLm1ldGhvZDtyZXR1cm4gaT09PSJHRVQiP2E6YCR7aX06JHthfWB9YXN5bmMgc2V0KGUsYSl7YXdhaXQgdGhpcy5pbml0UHJvbWlzZSxhd2FpdCB0aGlzLndlYnN0b3JlLnNldChlLGEpfWFzeW5jIGdldChlKXthd2FpdCB0aGlzLmluaXRQcm9taXNlO3RyeXtyZXR1cm4gYXdhaXQgdGhpcy53ZWJzdG9yZS5nZXQoZSl8fG51bGx9Y2F0Y2h7cmV0dXJuIG51bGx9fWFzeW5jIGhhcyhlKXtyZXR1cm4gYXdhaXQgdGhpcy5pbml0UHJvbWlzZSxhd2FpdCB0aGlzLndlYnN0b3JlLmNoZWNrKGUpfWFzeW5jIGRlbGV0ZShlKXthd2FpdCB0aGlzLmluaXRQcm9taXNlLGF3YWl0IHRoaXMud2Vic3RvcmUuZGVsZXRlKGUpfWFzeW5jIGNsZWFyKCl7YXdhaXQgdGhpcy5pbml0UHJvbWlzZSxhd2FpdCB0aGlzLndlYnN0b3JlLmNsZWFyKCl9cmVzcG9uc2VGcm9tQ2FjaGVFbnRyeShlKXtsZXQgYT1uZXcgSGVhZGVycyhlLmhlYWRlcnMpO3JldHVybiBuZXcgUmVzcG9uc2UoZS5yZXNwb25zZSx7c3RhdHVzOmUuc3RhdHVzLHN0YXR1c1RleHQ6ZS5zdGF0dXNUZXh0LGhlYWRlcnM6YX0pfWFzeW5jIGNhY2hlRW50cnlGcm9tUmVzcG9uc2UoZSxhLGkpe2xldCByPWEuY2xvbmUoKSxzPWF3YWl0IHIuYXJyYXlCdWZmZXIoKSxuPXt9O3JldHVybiByLmhlYWRlcnMuZm9yRWFjaCgobyxkKT0+e25bZF09b30pLHtyZXNwb25zZTpzLGhlYWRlcnM6bix0aW1lc3RhbXA6RGF0ZS5ub3coKSxldGFnOmk/LmV0YWd8fHIuaGVhZGVycy5nZXQoImV0YWciKXx8dm9pZCAwLGxhc3RNb2RpZmllZDppPy5sYXN0TW9kaWZpZWR8fHIuaGVhZGVycy5nZXQoImxhc3QtbW9kaWZpZWQiKXx8dm9pZCAwLG1heEFnZTppPy5tYXhBZ2UsdXJsOmUsc3RhdHVzOnIuc3RhdHVzLHN0YXR1c1RleHQ6ci5zdGF0dXNUZXh0fX1hc3luYyBwcnVuZUV4cGlyZWQoKXtyZXR1cm4gYXdhaXQgdGhpcy5pbml0UHJvbWlzZSwwfX19KTtmdW5jdGlvbiBzJHQodCl7bGV0IGU9e21heEFnZTowLGltbXV0YWJsZTohMSxub0NhY2hlOiExLG5vU3RvcmU6ITEsbXVzdFJldmFsaWRhdGU6ITF9O2lmKCF0KXJldHVybiBlO2xldCBhPXQudG9Mb3dlckNhc2UoKS5zcGxpdCgiLCIpLm1hcChpPT5pLnRyaW0oKSk7Zm9yKGxldCBpIG9mIGEpaWYoaT09PSJuby1jYWNoZSIpZS5ub0NhY2hlPSEwO2Vsc2UgaWYoaT09PSJuby1zdG9yZSIpZS5ub1N0b3JlPSEwO2Vsc2UgaWYoaT09PSJpbW11dGFibGUiKWUuaW1tdXRhYmxlPSEwO2Vsc2UgaWYoaT09PSJtdXN0LXJldmFsaWRhdGUiKWUubXVzdFJldmFsaWRhdGU9ITA7ZWxzZSBpZihpLnN0YXJ0c1dpdGgoIm1heC1hZ2U9Iikpe2xldCByPXBhcnNlSW50KGkuc3BsaXQoIj0iKVsxXSwxMCk7aXNOYU4ocil8fChlLm1heEFnZT1yKjFlMyl9cmV0dXJuIGV9ZnVuY3Rpb24gbiR0KHQpe2lmKHQpdHJ5e3JldHVybiBuZXcgRGF0ZSh0KS5nZXRUaW1lKCl9Y2F0Y2h7cmV0dXJufX1mdW5jdGlvbiBTcih0KXtsZXQgZT10LmdldCgiY2FjaGUtY29udHJvbCIpLGE9dC5nZXQoImV4cGlyZXMiKSxpPXQuZ2V0KCJldGFnIikscj10LmdldCgibGFzdC1tb2RpZmllZCIpLHM9cyR0KGUpO2lmKHMubWF4QWdlPT09MCYmYSl7bGV0IG49biR0KGEpO24mJihzLm1heEFnZT1NYXRoLm1heCgwLG4tRGF0ZS5ub3coKSkpfXJldHVybnttYXhBZ2U6cy5tYXhBZ2V8fDAsZXRhZzppfHx2b2lkIDAsbGFzdE1vZGlmaWVkOnJ8fHZvaWQgMCxpbW11dGFibGU6cy5pbW11dGFibGV8fCExLG5vQ2FjaGU6cy5ub0NhY2hlfHwhMSxub1N0b3JlOnMubm9TdG9yZXx8ITEsbXVzdFJldmFsaWRhdGU6cy5tdXN0UmV2YWxpZGF0ZXx8ITF9fWZ1bmN0aW9uIHY2KHQsZSl7aWYoZS5ub1N0b3JlKXJldHVybiExO2lmKGUuaW1tdXRhYmxlKXJldHVybiEwO2xldCBhPURhdGUubm93KCktdC50aW1lc3RhbXAsaT10Lm1heEFnZXx8ZS5tYXhBZ2V8fDA7cmV0dXJuIGk9PT0wPyExOmE8aX1mdW5jdGlvbiB5Nih0KXtyZXR1cm4gdC5ub0NhY2hlfHx0Lm11c3RSZXZhbGlkYXRlfWZ1bmN0aW9uIFlwKHQpe2xldCBlPXt9O3JldHVybiB0LmV0YWcmJihlWyJpZi1ub25lLW1hdGNoIl09dC5ldGFnKSx0Lmxhc3RNb2RpZmllZCYmKGVbImlmLW1vZGlmaWVkLXNpbmNlIl09dC5sYXN0TW9kaWZpZWQpLGV9ZnVuY3Rpb24gWnAodCl7bGV0IGU9e307cmV0dXJuIHQuZm9yRWFjaCgoYSxpKT0+e2VbaV09YX0pLGV9ZnVuY3Rpb24gRDFlKHQpe2xldCBlPW5ldyBIZWFkZXJzO3JldHVybiBPYmplY3QuZW50cmllcyh0KS5mb3JFYWNoKChbYSxpXSk9PntlLnNldChhLGkpfSksZX12YXIgWHA9YigoKT0+e30pO2Z1bmN0aW9uIEUxZSh0KXtzd2l0Y2godCl7Y2FzZSJuZXR3b3JrLWZpcnN0IjpyZXR1cm4gbmV3IEtwO2Nhc2UiY2FjaGUtZmlyc3QiOnJldHVybiBuZXcgc187Y2FzZSJzdGFsZS13aGlsZS1yZXZhbGlkYXRlIjpyZXR1cm4gbmV3IG5fO2Nhc2UibmV0d29yay1vbmx5IjpyZXR1cm4gbmV3IG9fO2Nhc2UiY2FjaGUtb25seSI6cmV0dXJuIG5ldyBsXztkZWZhdWx0OnJldHVybiBuZXcgS3B9fXZhciBLcCxzXyxuXyxvXyxsXyxQMWU9YigoKT0+e0dwKCk7WHAoKTtLcD1jbGFzc3thc3luYyBleGVjdXRlKGUpe3RyeXtsZXQgYT1hd2FpdCBlLmZldGNoRm4oZS5yZXF1ZXN0KTtyZXR1cm4gYS5vayYmYXdhaXQgdGhpcy5jYWNoZVJlc3BvbnNlKGUsYSkse3Jlc3BvbnNlOmEsZnJvbUNhY2hlOiExLHJldmFsaWRhdGVkOiExfX1jYXRjaChhKXtlLmxvZ2dpbmcmJmNvbnNvbGUubG9nKCJbd2VicmVxdWVzdF0gTmV0d29yayBmYWlsZWQsIHRyeWluZyBjYWNoZToiLGEpO2xldCBpPWF3YWl0IGUuY2FjaGVTdG9yZS5nZXQoZS5jYWNoZUtleSk7aWYoaSlyZXR1cm57cmVzcG9uc2U6ZS5jYWNoZVN0b3JlLnJlc3BvbnNlRnJvbUNhY2hlRW50cnkoaSksZnJvbUNhY2hlOiEwLHJldmFsaWRhdGVkOiExfTt0aHJvdyBhfX1hc3luYyBjYWNoZVJlc3BvbnNlKGUsYSl7bGV0IGk9U3IoYS5oZWFkZXJzKTtpZihpLm5vU3RvcmUpcmV0dXJuO2xldCByPWF3YWl0IGUuY2FjaGVTdG9yZS5jYWNoZUVudHJ5RnJvbVJlc3BvbnNlKGUucmVxdWVzdC51cmwsYSxpKTthd2FpdCBlLmNhY2hlU3RvcmUuc2V0KGUuY2FjaGVLZXkscil9fSxzXz1jbGFzc3thc3luYyBleGVjdXRlKGUpe2xldCBhPWF3YWl0IGUuY2FjaGVTdG9yZS5nZXQoZS5jYWNoZUtleSk7aWYoYSl7bGV0IHM9U3IobmV3IEhlYWRlcnMoYS5oZWFkZXJzKSk7aWYodjYoYSxzKSlyZXR1cm4gZS5sb2dnaW5nJiZjb25zb2xlLmxvZygiW3dlYnJlcXVlc3RdIENhY2hlIGhpdCAoZnJlc2gpOiIsZS5yZXF1ZXN0LnVybCkse3Jlc3BvbnNlOmUuY2FjaGVTdG9yZS5yZXNwb25zZUZyb21DYWNoZUVudHJ5KGEpLGZyb21DYWNoZTohMCxyZXZhbGlkYXRlZDohMX07aWYoeTYocykmJihhLmV0YWd8fGEubGFzdE1vZGlmaWVkKSlyZXR1cm4gYXdhaXQgdGhpcy5yZXZhbGlkYXRlKGUsYSl9ZS5sb2dnaW5nJiZjb25zb2xlLmxvZygiW3dlYnJlcXVlc3RdIENhY2hlIG1pc3MsIGZldGNoaW5nOiIsZS5yZXF1ZXN0LnVybCk7bGV0IGk9YXdhaXQgZS5mZXRjaEZuKGUucmVxdWVzdCkscj1TcihpLmhlYWRlcnMpO2lmKCFyLm5vU3RvcmUpe2xldCBzPWF3YWl0IGUuY2FjaGVTdG9yZS5jYWNoZUVudHJ5RnJvbVJlc3BvbnNlKGUucmVxdWVzdC51cmwsaSxyKTthd2FpdCBlLmNhY2hlU3RvcmUuc2V0KGUuY2FjaGVLZXkscyl9cmV0dXJue3Jlc3BvbnNlOmksZnJvbUNhY2hlOiExLHJldmFsaWRhdGVkOiExfX1hc3luYyByZXZhbGlkYXRlKGUsYSl7bGV0IGk9WXAoYSkscj1uZXcgUmVxdWVzdChlLnJlcXVlc3QudXJsLHttZXRob2Q6ZS5yZXF1ZXN0Lm1ldGhvZCxoZWFkZXJzOnsuLi5acChlLnJlcXVlc3QuaGVhZGVycyksLi4uaX19KTt0cnl7bGV0IHM9YXdhaXQgZS5mZXRjaEZuKHIpO2lmKHMuc3RhdHVzPT09MzA0KXJldHVybiBlLmxvZ2dpbmcmJmNvbnNvbGUubG9nKCJbd2VicmVxdWVzdF0gQ2FjaGUgcmV2YWxpZGF0ZWQgKDMwNCk6IixlLnJlcXVlc3QudXJsKSxhLnRpbWVzdGFtcD1EYXRlLm5vdygpLGF3YWl0IGUuY2FjaGVTdG9yZS5zZXQoZS5jYWNoZUtleSxhKSx7cmVzcG9uc2U6ZS5jYWNoZVN0b3JlLnJlc3BvbnNlRnJvbUNhY2hlRW50cnkoYSksZnJvbUNhY2hlOiEwLHJldmFsaWRhdGVkOiEwfTtpZihzLm9rKXtsZXQgbj1TcihzLmhlYWRlcnMpO2lmKCFuLm5vU3RvcmUpe2xldCBvPWF3YWl0IGUuY2FjaGVTdG9yZS5jYWNoZUVudHJ5RnJvbVJlc3BvbnNlKGUucmVxdWVzdC51cmwscyxuKTthd2FpdCBlLmNhY2hlU3RvcmUuc2V0KGUuY2FjaGVLZXksbyl9fXJldHVybntyZXNwb25zZTpzLGZyb21DYWNoZTohMSxyZXZhbGlkYXRlZDohMH19Y2F0Y2gocyl7cmV0dXJuIGUubG9nZ2luZyYmY29uc29sZS5sb2coIlt3ZWJyZXF1ZXN0XSBSZXZhbGlkYXRpb24gZmFpbGVkLCB1c2luZyBjYWNoZToiLHMpLHtyZXNwb25zZTplLmNhY2hlU3RvcmUucmVzcG9uc2VGcm9tQ2FjaGVFbnRyeShhKSxmcm9tQ2FjaGU6ITAscmV2YWxpZGF0ZWQ6ITF9fX19LG5fPWNsYXNze2FzeW5jIGV4ZWN1dGUoZSl7bGV0IGE9YXdhaXQgZS5jYWNoZVN0b3JlLmdldChlLmNhY2hlS2V5KTtpZihhKXtsZXQgcz1lLmNhY2hlU3RvcmUucmVzcG9uc2VGcm9tQ2FjaGVFbnRyeShhKTtyZXR1cm4gdGhpcy5yZXZhbGlkYXRlSW5CYWNrZ3JvdW5kKGUsYSkuY2F0Y2gobj0+e2UubG9nZ2luZyYmY29uc29sZS53YXJuKCJbd2VicmVxdWVzdF0gQmFja2dyb3VuZCByZXZhbGlkYXRpb24gZmFpbGVkOiIsbil9KSx7cmVzcG9uc2U6cyxmcm9tQ2FjaGU6ITAscmV2YWxpZGF0ZWQ6ITF9fWxldCBpPWF3YWl0IGUuZmV0Y2hGbihlLnJlcXVlc3QpLHI9U3IoaS5oZWFkZXJzKTtpZighci5ub1N0b3JlJiZpLm9rKXtsZXQgcz1hd2FpdCBlLmNhY2hlU3RvcmUuY2FjaGVFbnRyeUZyb21SZXNwb25zZShlLnJlcXVlc3QudXJsLGkscik7YXdhaXQgZS5jYWNoZVN0b3JlLnNldChlLmNhY2hlS2V5LHMpfXJldHVybntyZXNwb25zZTppLGZyb21DYWNoZTohMSxyZXZhbGlkYXRlZDohMX19YXN5bmMgcmV2YWxpZGF0ZUluQmFja2dyb3VuZChlLGEpe2xldCBpPVNyKG5ldyBIZWFkZXJzKGEuaGVhZGVycykpO2lmKCEodjYoYSxpKSYmIXk2KGkpKSl0cnl7bGV0IHI9YXdhaXQgZS5mZXRjaEZuKGUucmVxdWVzdCk7aWYoci5vayl7bGV0IHM9U3Ioci5oZWFkZXJzKTtpZighcy5ub1N0b3JlKXtsZXQgbj1hd2FpdCBlLmNhY2hlU3RvcmUuY2FjaGVFbnRyeUZyb21SZXNwb25zZShlLnJlcXVlc3QudXJsLHIscyk7YXdhaXQgZS5jYWNoZVN0b3JlLnNldChlLmNhY2hlS2V5LG4pLGUubG9nZ2luZyYmY29uc29sZS5sb2coIlt3ZWJyZXF1ZXN0XSBCYWNrZ3JvdW5kIHJldmFsaWRhdGlvbiBjb21wbGV0ZToiLGUucmVxdWVzdC51cmwpfX19Y2F0Y2gocil7ZS5sb2dnaW5nJiZjb25zb2xlLndhcm4oIlt3ZWJyZXF1ZXN0XSBCYWNrZ3JvdW5kIHJldmFsaWRhdGlvbiBmYWlsZWQ6IixyKX19fSxvXz1jbGFzc3thc3luYyBleGVjdXRlKGUpe3JldHVybntyZXNwb25zZTphd2FpdCBlLmZldGNoRm4oZS5yZXF1ZXN0KSxmcm9tQ2FjaGU6ITEscmV2YWxpZGF0ZWQ6ITF9fX0sbF89Y2xhc3N7YXN5bmMgZXhlY3V0ZShlKXtsZXQgYT1hd2FpdCBlLmNhY2hlU3RvcmUuZ2V0KGUuY2FjaGVLZXkpO2lmKCFhKXRocm93IG5ldyBFcnJvcihgQ2FjaGUgbWlzcyBmb3IgJHtlLnJlcXVlc3QudXJsfSAoY2FjaGUtb25seSBtb2RlKWApO3JldHVybntyZXNwb25zZTplLmNhY2hlU3RvcmUucmVzcG9uc2VGcm9tQ2FjaGVFbnRyeShhKSxmcm9tQ2FjaGU6ITAscmV2YWxpZGF0ZWQ6ITF9fX19KTt2YXIgeDMsY189YigoKT0+e0dwKCk7UDFlKCk7WHAoKTt4Mz1jbGFzc3tjb25zdHJ1Y3RvcihlLGEpe3RoaXMuY2FjaGVTdG9yZT1uZXcgeTMoZSxhKX1hc3luYyBleGVjdXRlKGUsYSxpKXtsZXQgcj10aGlzLmRldGVybWluZVN0cmF0ZWd5KGUsYSk7aWYocj09PSJuZXR3b3JrLW9ubHkiKXJldHVybntyZXNwb25zZTphd2FpdCBpKGUpLGZyb21DYWNoZTohMSxyZXZhbGlkYXRlZDohMX07bGV0IHM9dGhpcy5nZW5lcmF0ZUNhY2hlS2V5KGUsYSksbj1FMWUociksbz17cmVxdWVzdDplLGNhY2hlS2V5OnMsY2FjaGVTdG9yZTp0aGlzLmNhY2hlU3RvcmUsZmV0Y2hGbjppLGxvZ2dpbmc6YS5sb2dnaW5nfTtyZXR1cm4gYXdhaXQgbi5leGVjdXRlKG8pfWRldGVybWluZVN0cmF0ZWd5KGUsYSl7cmV0dXJuIGEuY2FjaGVTdHJhdGVneT9hLmNhY2hlU3RyYXRlZ3k6YS5jYWNoZT90aGlzLm1hcENhY2hlTW9kZVRvU3RyYXRlZ3koYS5jYWNoZSk6ZS5jYWNoZT90aGlzLm1hcENhY2hlTW9kZVRvU3RyYXRlZ3koZS5jYWNoZSk6Im5ldHdvcmstZmlyc3QifW1hcENhY2hlTW9kZVRvU3RyYXRlZ3koZSl7c3dpdGNoKGUpe2Nhc2UiZGVmYXVsdCI6cmV0dXJuIm5ldHdvcmstZmlyc3QiO2Nhc2Uibm8tc3RvcmUiOmNhc2UicmVsb2FkIjpyZXR1cm4ibmV0d29yay1vbmx5IjtjYXNlIm5vLWNhY2hlIjpyZXR1cm4ibmV0d29yay1maXJzdCI7Y2FzZSJmb3JjZS1jYWNoZSI6cmV0dXJuImNhY2hlLWZpcnN0IjtjYXNlIm9ubHktaWYtY2FjaGVkIjpyZXR1cm4iY2FjaGUtb25seSI7ZGVmYXVsdDpyZXR1cm4ibmV0d29yay1maXJzdCJ9fWdlbmVyYXRlQ2FjaGVLZXkoZSxhKXtyZXR1cm4gYS5jYWNoZUtleT90eXBlb2YgYS5jYWNoZUtleT09ImZ1bmN0aW9uIj9hLmNhY2hlS2V5KGUpOmEuY2FjaGVLZXk6dGhpcy5jYWNoZVN0b3JlLmdlbmVyYXRlQ2FjaGVLZXkoZSl9YXN5bmMgY2xlYXIoKXthd2FpdCB0aGlzLmNhY2hlU3RvcmUuY2xlYXIoKX1hc3luYyBkZWxldGUoZSl7YXdhaXQgdGhpcy5jYWNoZVN0b3JlLmRlbGV0ZShlKX1hc3luYyBoYXMoZSl7cmV0dXJuIGF3YWl0IHRoaXMuY2FjaGVTdG9yZS5oYXMoZSl9Z2V0U3RvcmUoKXtyZXR1cm4gdGhpcy5jYWNoZVN0b3JlfX19KTtmdW5jdGlvbiBJMWUodCl7c3dpdGNoKHQpe2Nhc2UiZXhwb25lbnRpYWwiOnJldHVybiBuZXcgUXA7Y2FzZSJsaW5lYXIiOnJldHVybiBuZXcgZF87Y2FzZSJjb25zdGFudCI6cmV0dXJuIG5ldyBoXztkZWZhdWx0OnJldHVybiBuZXcgUXB9fWZ1bmN0aW9uIE4xZSh0LGU9LjEpe2xldCBhPXQqZSpNYXRoLnJhbmRvbSgpO3JldHVybiB0K2F9dmFyIFFwLGRfLGhfLEYxZT1iKCgpPT57UXA9Y2xhc3N7Y2FsY3VsYXRlKGUsYSxpKXtsZXQgcj1hKk1hdGgucG93KDIsZS0xKTtyZXR1cm4gTWF0aC5taW4ocixpKX19LGRfPWNsYXNze2NhbGN1bGF0ZShlLGEsaSl7bGV0IHI9YSplO3JldHVybiBNYXRoLm1pbihyLGkpfX0saF89Y2xhc3N7Y2FsY3VsYXRlKGUsYSxpKXtyZXR1cm4gTWF0aC5taW4oYSxpKX19fSk7dmFyIHczLHBfPWIoKCk9PntiNigpO0YxZSgpO3czPWNsYXNze2NvbnN0cnVjdG9yKGU9e30pe3RoaXMub3B0aW9ucz17bWF4QXR0ZW1wdHM6ZS5tYXhBdHRlbXB0cz8/MyxiYWNrb2ZmOmUuYmFja29mZj8/ImV4cG9uZW50aWFsIixpbml0aWFsRGVsYXk6ZS5pbml0aWFsRGVsYXk/PzFlMyxtYXhEZWxheTplLm1heERlbGF5Pz8zZTQscmV0cnlPbjplLnJldHJ5T24/P1s0MDgsNDI5LDUwMCw1MDIsNTAzLDUwNF0sb25SZXRyeTplLm9uUmV0cnk/PygoKT0+e30pfX1hc3luYyBleGVjdXRlKGUsYSl7bGV0IGkscjtmb3IobGV0IHM9MTtzPD10aGlzLm9wdGlvbnMubWF4QXR0ZW1wdHM7cysrKXRyeXtsZXQgbj1hd2FpdCBlKCk7aWYobiBpbnN0YW5jZW9mIFJlc3BvbnNlJiZ0aGlzLnNob3VsZFJldHJ5UmVzcG9uc2Uobikpe2lmKHI9bixzPT09dGhpcy5vcHRpb25zLm1heEF0dGVtcHRzKXJldHVybiBuO2xldCBvPXRoaXMuY2FsY3VsYXRlRGVsYXkocyk7dGhpcy5vcHRpb25zLm9uUmV0cnkocyxuZXcgRXJyb3IoYEhUVFAgJHtuLnN0YXR1c31gKSxvKSxhd2FpdCB0aGlzLmRlbGF5KG8pO2NvbnRpbnVlfXJldHVybiBufWNhdGNoKG4pe2k9biBpbnN0YW5jZW9mIEVycm9yP246bmV3IEVycm9yKFN0cmluZyhuKSk7bGV0IG89YT9hKG4scyk6dGhpcy5zaG91bGRSZXRyeUVycm9yKG4pO2lmKHM9PT10aGlzLm9wdGlvbnMubWF4QXR0ZW1wdHN8fCFvKXRocm93IGk7bGV0IGQ9dGhpcy5jYWxjdWxhdGVEZWxheShzKTt0aGlzLm9wdGlvbnMub25SZXRyeShzLGksZCksYXdhaXQgdGhpcy5kZWxheShkKX10aHJvdyBpfHxuZXcgRXJyb3IoIk1heCByZXRyeSBhdHRlbXB0cyByZWFjaGVkIil9YXN5bmMgZXhlY3V0ZVdpdGhGYWxsYmFja3MoZSxhLGkpe2lmKGUubGVuZ3RoPT09MCl0aHJvdyBuZXcgRXJyb3IoIk5vIFVSTHMgcHJvdmlkZWQgZm9yIGZhbGxiYWNrIGV4ZWN1dGlvbiIpO2xldCByLHM9W107Zm9yKGxldCBuIG9mIGUpdHJ5e2xldCBvPWF3YWl0IHRoaXMuZXhlY3V0ZShhc3luYygpPT5hd2FpdCBpKG4sYSkpO2lmKG8uc3RhdHVzPDQwMHx8by5zdGF0dXM+PTQwMCYmby5zdGF0dXM8NTAwJiZvLnN0YXR1cyE9PTQwOClyZXR1cm4gbztzLnB1c2gobikscj1uZXcgRXJyb3IoYFJlcXVlc3QgZmFpbGVkIHdpdGggc3RhdHVzICR7by5zdGF0dXN9YCl9Y2F0Y2gobyl7cy5wdXNoKG4pLHI9byBpbnN0YW5jZW9mIEVycm9yP286bmV3IEVycm9yKFN0cmluZyhvKSl9dGhyb3cgbmV3IEVycm9yKGBBbGwgVVJMcyBmYWlsZWQ6ICR7cy5qb2luKCIsICIpfS4gTGFzdCBlcnJvcjogJHtyPy5tZXNzYWdlfHwiVW5rbm93biBlcnJvciJ9YCl9c2hvdWxkUmV0cnlSZXNwb25zZShlKXtsZXQgYT10aGlzLm9wdGlvbnMucmV0cnlPbjtyZXR1cm4gdHlwZW9mIGE9PSJmdW5jdGlvbiI/YShlKTpBcnJheS5pc0FycmF5KGEpP2EuaW5jbHVkZXMoZS5zdGF0dXMpOiExfXNob3VsZFJldHJ5RXJyb3IoZSl7aWYoZSBpbnN0YW5jZW9mIFR5cGVFcnJvciYmZS5tZXNzYWdlLmluY2x1ZGVzKCJmZXRjaCIpfHxlLm5hbWU9PT0iQWJvcnRFcnJvciJ8fGUubWVzc2FnZS5pbmNsdWRlcygidGltZW91dCIpKXJldHVybiEwO2xldCBhPXRoaXMub3B0aW9ucy5yZXRyeU9uO3JldHVybiB0eXBlb2YgYT09ImZ1bmN0aW9uIj9hKHZvaWQgMCxlKTohMX1jYWxjdWxhdGVEZWxheShlKXtsZXQgaT1JMWUodGhpcy5vcHRpb25zLmJhY2tvZmYpLmNhbGN1bGF0ZShlLHRoaXMub3B0aW9ucy5pbml0aWFsRGVsYXksdGhpcy5vcHRpb25zLm1heERlbGF5KTtyZXR1cm4gTjFlKGkpfWFzeW5jIGRlbGF5KGUpe2F3YWl0IGR0LmRlbGF5Rm9yKGUpfX19KTt2YXIgTTMsdV89YigoKT0+e2I2KCk7TTM9Y2xhc3N7Y29uc3RydWN0b3IoKXt0aGlzLmluRmxpZ2h0UmVxdWVzdHM9bmV3IE1hcH1nZW5lcmF0ZUtleShlKXtsZXQgYT1lLnVybCxpPWUubWV0aG9kO3JldHVybiBpPT09IkdFVCJ8fGk9PT0iSEVBRCI/YCR7aX06JHthfWA6YCR7aX06JHthfToke0RhdGUubm93KCl9YH1hc3luYyBleGVjdXRlKGUsYSl7bGV0IGk9dGhpcy5pbkZsaWdodFJlcXVlc3RzLmdldChlKTtpZihpKXJldHVybntyZXNwb25zZTooYXdhaXQgaS5wcm9taXNlKS5jbG9uZSgpLHdhc0RlZHVwbGljYXRlZDohMH07bGV0IHI9QmUuZGVmZXIoKTt0aGlzLmluRmxpZ2h0UmVxdWVzdHMuc2V0KGUscik7dHJ5e2xldCBzPWF3YWl0IGEoKTtyZXR1cm4gci5yZXNvbHZlKHMpLHRoaXMuaW5GbGlnaHRSZXF1ZXN0cy5kZWxldGUoZSkse3Jlc3BvbnNlOnMsd2FzRGVkdXBsaWNhdGVkOiExfX1jYXRjaChzKXt0aHJvdyByLnJlamVjdChzKSx0aGlzLmluRmxpZ2h0UmVxdWVzdHMuZGVsZXRlKGUpLHN9fWlzSW5GbGlnaHQoZSl7cmV0dXJuIHRoaXMuaW5GbGlnaHRSZXF1ZXN0cy5oYXMoZSl9Z2V0SW5GbGlnaHRDb3VudCgpe3JldHVybiB0aGlzLmluRmxpZ2h0UmVxdWVzdHMuc2l6ZX1jbGVhcigpe3RoaXMuaW5GbGlnaHRSZXF1ZXN0cy5jbGVhcigpfX19KTtmdW5jdGlvbiBvJHQodCl7bGV0IGU9bmV3IEFib3J0Q29udHJvbGxlcixhPW5ldyBkdC5UaW1lb3V0KHQsbnVsbCk7cmV0dXJuIGEucHJvbWlzZS50aGVuKCgpPT57ZS5hYm9ydCgpfSkse2NvbnRyb2xsZXI6ZSxjbGVhbnVwOigpPT57YS5jYW5jZWwoKX19fWFzeW5jIGZ1bmN0aW9uIGZfKHQsZSxhKXtsZXR7Y29udHJvbGxlcjppLGNsZWFudXA6cn09byR0KGEpO3RyeXtsZXQgcz1hd2FpdCBmZXRjaCh0LHsuLi5lLHNpZ25hbDppLnNpZ25hbH0pO3JldHVybiByKCksc31jYXRjaChzKXt0aHJvdyByKCkscyBpbnN0YW5jZW9mIEVycm9yJiZzLm5hbWU9PT0iQWJvcnRFcnJvciI/bmV3IEVycm9yKGBSZXF1ZXN0IHRpbWVvdXQgYWZ0ZXIgJHthfW1zOiAke3R9YCk6c319dmFyIE8xZT1iKCgpPT57YjYoKX0pO3ZhciByMCxtXz1iKCgpPT57d0MoKTtjXygpO3BfKCk7dV8oKTtPMWUoKTtyMD1jbGFzc3tjb25zdHJ1Y3RvcihlPXt9KXt0aGlzLmRlZmF1bHRPcHRpb25zPWUsdGhpcy5pbnRlcmNlcHRvck1hbmFnZXI9bmV3IGMzLHRoaXMuY2FjaGVNYW5hZ2VyPW5ldyB4Myx0aGlzLmRlZHVwbGljYXRvcj1uZXcgTTN9YWRkUmVxdWVzdEludGVyY2VwdG9yKGUpe3RoaXMuaW50ZXJjZXB0b3JNYW5hZ2VyLmFkZFJlcXVlc3RJbnRlcmNlcHRvcihlKX1hZGRSZXNwb25zZUludGVyY2VwdG9yKGUpe3RoaXMuaW50ZXJjZXB0b3JNYW5hZ2VyLmFkZFJlc3BvbnNlSW50ZXJjZXB0b3IoZSl9YWRkRXJyb3JJbnRlcmNlcHRvcihlKXt0aGlzLmludGVyY2VwdG9yTWFuYWdlci5hZGRFcnJvckludGVyY2VwdG9yKGUpfXJlbW92ZVJlcXVlc3RJbnRlcmNlcHRvcihlKXt0aGlzLmludGVyY2VwdG9yTWFuYWdlci5yZW1vdmVSZXF1ZXN0SW50ZXJjZXB0b3IoZSl9cmVtb3ZlUmVzcG9uc2VJbnRlcmNlcHRvcihlKXt0aGlzLmludGVyY2VwdG9yTWFuYWdlci5yZW1vdmVSZXNwb25zZUludGVyY2VwdG9yKGUpfXJlbW92ZUVycm9ySW50ZXJjZXB0b3IoZSl7dGhpcy5pbnRlcmNlcHRvck1hbmFnZXIucmVtb3ZlRXJyb3JJbnRlcmNlcHRvcihlKX1jbGVhckludGVyY2VwdG9ycygpe3RoaXMuaW50ZXJjZXB0b3JNYW5hZ2VyLmNsZWFyQWxsKCl9YXN5bmMgY2xlYXJDYWNoZSgpe2F3YWl0IHRoaXMuY2FjaGVNYW5hZ2VyLmNsZWFyKCl9YXN5bmMgcmVxdWVzdChlLGE9e30pe2xldCBpPXsuLi50aGlzLmRlZmF1bHRPcHRpb25zLC4uLmF9LHI7aWYodHlwZW9mIGU9PSJzdHJpbmciP3I9bmV3IFJlcXVlc3QoZSxpKTpyPWUscj1hd2FpdCB0aGlzLmludGVyY2VwdG9yTWFuYWdlci5wcm9jZXNzUmVxdWVzdChyKSxpLmludGVyY2VwdG9ycz8ucmVxdWVzdClmb3IobGV0IG4gb2YgaS5pbnRlcmNlcHRvcnMucmVxdWVzdClyPWF3YWl0IG4ocik7aWYoaS5kZWR1cGxpY2F0ZT8/ITEpe2xldCBuPXRoaXMuZGVkdXBsaWNhdG9yLmdlbmVyYXRlS2V5KHIpO3JldHVybihhd2FpdCB0aGlzLmRlZHVwbGljYXRvci5leGVjdXRlKG4sYXN5bmMoKT0+YXdhaXQgdGhpcy5leGVjdXRlUmVxdWVzdChyLGkpKSkucmVzcG9uc2V9cmV0dXJuIGF3YWl0IHRoaXMuZXhlY3V0ZVJlcXVlc3QocixpKX1hc3luYyBleGVjdXRlUmVxdWVzdChlLGEpe3RyeXtsZXQgaT10eXBlb2YgYS5yZXRyeT09Im9iamVjdCI/YS5yZXRyeTphLnJldHJ5P3t9OnZvaWQgMCxyPWFzeW5jIG89PntsZXQgZD1hLnRpbWVvdXQ/PzZlNDtyZXR1cm4gYXdhaXQgZl8oby51cmwse21ldGhvZDpvLm1ldGhvZCxoZWFkZXJzOm8uaGVhZGVycyxib2R5Om8uYm9keSwuLi5hfSxkKX0scz1hc3luYyhvLGQpPT57bGV0IGM9YS50aW1lb3V0Pz82ZTQ7cmV0dXJuIGF3YWl0IGZfKG8sZCxjKX0sbjtpZihpKXtsZXQgbz1uZXcgdzMoaSk7aWYoYS5mYWxsYmFja1VybHMmJmEuZmFsbGJhY2tVcmxzLmxlbmd0aD4wKXtsZXQgZD1bZS51cmwsLi4uYS5mYWxsYmFja1VybHNdO249YXdhaXQgby5leGVjdXRlV2l0aEZhbGxiYWNrcyhkLHttZXRob2Q6ZS5tZXRob2QsaGVhZGVyczplLmhlYWRlcnMsYm9keTplLmJvZHksLi4uYX0scyl9ZWxzZSBuPWF3YWl0IG8uZXhlY3V0ZShhc3luYygpPT4oYXdhaXQgdGhpcy5jYWNoZU1hbmFnZXIuZXhlY3V0ZShlLGEscikpLnJlc3BvbnNlKX1lbHNlIG49KGF3YWl0IHRoaXMuY2FjaGVNYW5hZ2VyLmV4ZWN1dGUoZSxhLHIpKS5yZXNwb25zZTtpZihuPWF3YWl0IHRoaXMuaW50ZXJjZXB0b3JNYW5hZ2VyLnByb2Nlc3NSZXNwb25zZShuKSxhLmludGVyY2VwdG9ycz8ucmVzcG9uc2UpZm9yKGxldCBvIG9mIGEuaW50ZXJjZXB0b3JzLnJlc3BvbnNlKW49YXdhaXQgbyhuKTtyZXR1cm4gbn1jYXRjaChpKXt0aHJvdyBhd2FpdCB0aGlzLmludGVyY2VwdG9yTWFuYWdlci5wcm9jZXNzRXJyb3IoaSBpbnN0YW5jZW9mIEVycm9yP2k6bmV3IEVycm9yKFN0cmluZyhpKSkpfX1hc3luYyBnZXRKc29uKGUsYT17fSl7bGV0IGk9YXdhaXQgdGhpcy5yZXF1ZXN0KGUsey4uLmEsbWV0aG9kOiJHRVQiLGhlYWRlcnM6e0FjY2VwdDoiYXBwbGljYXRpb24vanNvbiIsLi4uYS5oZWFkZXJzfHx7fX19KTtpZighaS5vayl0aHJvdyBuZXcgRXJyb3IoYEhUVFAgJHtpLnN0YXR1c306ICR7aS5zdGF0dXNUZXh0fWApO3JldHVybiBhd2FpdCBpLmpzb24oKX1hc3luYyBwb3N0SnNvbihlLGEsaT17fSl7bGV0IHI9YXdhaXQgdGhpcy5yZXF1ZXN0KGUsey4uLmksbWV0aG9kOiJQT1NUIixoZWFkZXJzOnsiQ29udGVudC1UeXBlIjoiYXBwbGljYXRpb24vanNvbiIsQWNjZXB0OiJhcHBsaWNhdGlvbi9qc29uIiwuLi5pLmhlYWRlcnN8fHt9fSxib2R5OkpTT04uc3RyaW5naWZ5KGEpfSk7aWYoIXIub2spdGhyb3cgbmV3IEVycm9yKGBIVFRQICR7ci5zdGF0dXN9OiAke3Iuc3RhdHVzVGV4dH1gKTtyZXR1cm4gYXdhaXQgci5qc29uKCl9YXN5bmMgcHV0SnNvbihlLGEsaT17fSl7bGV0IHI9YXdhaXQgdGhpcy5yZXF1ZXN0KGUsey4uLmksbWV0aG9kOiJQVVQiLGhlYWRlcnM6eyJDb250ZW50LVR5cGUiOiJhcHBsaWNhdGlvbi9qc29uIixBY2NlcHQ6ImFwcGxpY2F0aW9uL2pzb24iLC4uLmkuaGVhZGVyc3x8e319LGJvZHk6SlNPTi5zdHJpbmdpZnkoYSl9KTtpZighci5vayl0aHJvdyBuZXcgRXJyb3IoYEhUVFAgJHtyLnN0YXR1c306ICR7ci5zdGF0dXNUZXh0fWApO3JldHVybiBhd2FpdCByLmpzb24oKX1hc3luYyBkZWxldGVKc29uKGUsYT17fSl7bGV0IGk9YXdhaXQgdGhpcy5yZXF1ZXN0KGUsey4uLmEsbWV0aG9kOiJERUxFVEUiLGhlYWRlcnM6e0FjY2VwdDoiYXBwbGljYXRpb24vanNvbiIsLi4uYS5oZWFkZXJzfHx7fX19KTtpZighaS5vayl0aHJvdyBuZXcgRXJyb3IoYEhUVFAgJHtpLnN0YXR1c306ICR7aS5zdGF0dXNUZXh0fWApO3JldHVybiBhd2FpdCBpLmpzb24oKX19fSk7YXN5bmMgZnVuY3Rpb24gT2EodCxlKXtsZXQgYT10IGluc3RhbmNlb2YgUmVxdWVzdD90LnVybDpTdHJpbmcodCksaT10IGluc3RhbmNlb2YgUmVxdWVzdD90Om5ldyBSZXF1ZXN0KGEsZSk7cmV0dXJuIGF3YWl0IElpLnJlcXVlc3QoaSxlKX12YXIgSWksUjFlPWIoKCk9PnttXygpO0lpPW5ldyByMDtPYS5nZXRKc29uPWFzeW5jIGZ1bmN0aW9uKHQsZSl7cmV0dXJuIGF3YWl0IElpLmdldEpzb24odCxlKX0sT2EucG9zdEpzb249YXN5bmMgZnVuY3Rpb24odCxlLGEpe3JldHVybiBhd2FpdCBJaS5wb3N0SnNvbih0LGUsYSl9LE9hLnB1dEpzb249YXN5bmMgZnVuY3Rpb24odCxlLGEpe3JldHVybiBhd2FpdCBJaS5wdXRKc29uKHQsZSxhKX0sT2EuZGVsZXRlSnNvbj1hc3luYyBmdW5jdGlvbih0LGUpe3JldHVybiBhd2FpdCBJaS5kZWxldGVKc29uKHQsZSl9LE9hLmFkZFJlcXVlc3RJbnRlcmNlcHRvcj1mdW5jdGlvbih0KXtJaS5hZGRSZXF1ZXN0SW50ZXJjZXB0b3IodCl9LE9hLmFkZFJlc3BvbnNlSW50ZXJjZXB0b3I9ZnVuY3Rpb24odCl7SWkuYWRkUmVzcG9uc2VJbnRlcmNlcHRvcih0KX0sT2EuYWRkRXJyb3JJbnRlcmNlcHRvcj1mdW5jdGlvbih0KXtJaS5hZGRFcnJvckludGVyY2VwdG9yKHQpfSxPYS5jbGVhckludGVyY2VwdG9ycz1mdW5jdGlvbigpe0lpLmNsZWFySW50ZXJjZXB0b3JzKCl9LE9hLmNsZWFyQ2FjaGU9YXN5bmMgZnVuY3Rpb24oKXthd2FpdCBJaS5jbGVhckNhY2hlKCl9LE9hLmNyZWF0ZUNsaWVudD1mdW5jdGlvbih0KXtyZXR1cm4gbmV3IHIwKHQpfSxPYS5nZXREZWZhdWx0Q2xpZW50PWZ1bmN0aW9uKCl7cmV0dXJuIElpfX0pO3ZhciB4Nj17fTtHZSh4Nix7Q2FjaGVNYW5hZ2VyOigpPT54MyxDYWNoZVN0b3JlOigpPT55MyxJbnRlcmNlcHRvck1hbmFnZXI6KCk9PmMzLFJlcXVlc3REZWR1cGxpY2F0b3I6KCk9Pk0zLFJldHJ5TWFuYWdlcjooKT0+dzMsV2VicmVxdWVzdENsaWVudDooKT0+cjAsY3JlYXRlQ29uZGl0aW9uYWxIZWFkZXJzOigpPT5ZcCxleHRyYWN0Q2FjaGVNZXRhZGF0YTooKT0+U3IsaGVhZGVyc1RvT2JqZWN0OigpPT5acCxpc0ZyZXNoOigpPT52NixvYmplY3RUb0hlYWRlcnM6KCk9PkQxZSxyZXF1aXJlc1JldmFsaWRhdGlvbjooKT0+eTYsd2VicmVxdWVzdDooKT0+T2F9KTt2YXIgQjFlPWIoKCk9PntSMWUoKTttXygpO2NfKCk7R3AoKTtwXygpO3dDKCk7dV8oKTtYcCgpfSk7dmFyIEFuLERuPWIoKCk9PntDYygpO0FuPVUxKHdkKCksMSk7ZTYoKTtwdGUoKTt1cigpO3V0ZSgpO2MyKCk7QjFlKCl9KTt2YXIgZnMsdzY9YigoKT0+e0RuKCk7ZnM9Y2xhc3N7Y29uc3RydWN0b3IoZSxhKXt0aGlzLmVycm9yVGV4dD1lLHRoaXMuZXJyb3JEYXRhPWF9fX0pO3ZhciBlOSxIMWU9YigoKT0+e3c2KCk7RG4oKTtlOT1jbGFzc3tjb25zdHJ1Y3Rvcigpe3RoaXMubG9jYWxEYXRhPXt9fWFzeW5jIHBhc3NHdWFyZHMoZSxhKXtsZXQgaT1uZXcgYzYuR3VhcmRTZXQoZSk7aWYoIWF3YWl0IGkuYWxsR3VhcmRzUGFzcyhhKSl7bGV0IHM9YXdhaXQgaS5nZXRGYWlsZWRIaW50KGEpO3Rocm93IG5ldyBmcyhgZ3VhcmQgZmFpbGVkOiAke3N9YCx7ZmFpbGVkSGludDpzfSl9fX19KTt2YXIgZ18sYl89YigoKT0+e0RuKCk7dzYoKTtIMWUoKTtnXz1jbGFzc3tjb25zdHJ1Y3RvcihlLGEpe3RoaXMubWV0aG9kPWUsdGhpcy5oYW5kbGVyRnVuY3Rpb249YX1hc3luYyBhZGRSZXNwb25zZShlKXtpZihlLm1ldGhvZCE9PXRoaXMubWV0aG9kKXRocm93IG5ldyBFcnJvcigidGhpcyBoYW5kbGVyIGhhcyBiZWVuIGdpdmVuIGEgd3JvbmcgbWV0aG9kIHRvIGFuc3dlciB0by4gUGxlYXNlIHVzZSBhIFR5cGVkUm91dGVyIHRvIGZpbHRlciByZXF1ZXN0cyIpO2xldCBhLGk9bmV3IGU5O2UubG9jYWxEYXRhJiYoaS5sb2NhbERhdGE9ZS5sb2NhbERhdGEpO2xldCByPWF3YWl0IHRoaXMuaGFuZGxlckZ1bmN0aW9uKGUucmVxdWVzdCxpKS5jYXRjaChzPT57cyBpbnN0YW5jZW9mIGZzP2E9czpjb25zb2xlLmxvZyhzKX0pO3JldHVybiBhJiYoZS5lcnJvcj17dGV4dDphLmVycm9yVGV4dCxkYXRhOmEuZXJyb3JEYXRhfSksciYmKGUucmVzcG9uc2U9ciksZT8uY29ycmVsYXRpb24/LnBoYXNlJiYoZS5jb3JyZWxhdGlvbi5waGFzZT0icmVzcG9uc2UiKSxlfX19KTt2YXIgczAsTTY9YigoKT0+e0RuKCk7dDkoKTtiXygpO3ZfKCk7czA9Y2xhc3MgdHtjb25zdHJ1Y3Rvcigpe3RoaXMuaG9va3M9e30sdGhpcy5yb3V0ZXJNYXA9bmV3IHQyLk9iamVjdE1hcCx0aGlzLmhhbmRsZXJNYXA9bmV3IHQyLk9iamVjdE1hcCx0aGlzLnJlZ2lzdGVyZWRWaXJ0dWFsU3RyZWFtcz1uZXcgdDIuT2JqZWN0TWFwLHRoaXMuZmlyZUV2ZW50SW50ZXJlc3RNYXA9bmV3IHQyLkludGVyZXN0TWFwKGU9PmUpfXN0YXRpYyBnZXQgZ2xvYmFsSG9va3MoKXtyZXR1cm4gZ2xvYmFsVGhpcy5fX3R5cGVkUm91dGVyR2xvYmFsSG9va3N8fChnbG9iYWxUaGlzLl9fdHlwZWRSb3V0ZXJHbG9iYWxIb29rcz17fSksZ2xvYmFsVGhpcy5fX3R5cGVkUm91dGVyR2xvYmFsSG9va3N9c3RhdGljIHNldCBnbG9iYWxIb29rcyhlKXtnbG9iYWxUaGlzLl9fdHlwZWRSb3V0ZXJHbG9iYWxIb29rcz1lfXN0YXRpYyBzZXRHbG9iYWxIb29rcyhlKXtsZXQgYT10Lmdsb2JhbEhvb2tzO3QuZ2xvYmFsSG9va3M9ey4uLmEsLi4uZX19c3RhdGljIGNsZWFyR2xvYmFsSG9va3MoKXtnbG9iYWxUaGlzLl9fdHlwZWRSb3V0ZXJHbG9iYWxIb29rcz17fX1zZXRIb29rcyhlKXt0aGlzLmhvb2tzPXsuLi50aGlzLmhvb2tzLC4uLmV9fWNhbGxIb29rKGUsYSl7dHJ5e3QuZ2xvYmFsSG9va3NbZV0/LihhKSx0aGlzLmhvb2tzW2VdPy4oYSl9Y2F0Y2goaSl7Y29uc29sZS5lcnJvcihgVHlwZWRSb3V0ZXIgaG9vayBlcnJvciAoJHtlfSk6YCxpKX19YWRkVHlwZWRIYW5kbGVyKGUpe2lmKHRoaXMuZ2V0VHlwZWRIYW5kbGVyRm9yTWV0aG9kKGUubWV0aG9kKSl0aHJvdyBuZXcgRXJyb3IoYGEgVHlwZWRIYW5kbGVyIGZvciAke2UubWV0aG9kfSBhbHJlZHkgZXhpc3RzISBDYW4ndCBhZGQgYW5vdGhlciBvbmUuYCk7dGhpcy5oYW5kbGVyTWFwLmFkZChlKX1hZGRUeXBlZFJvdXRlcihlKXt0aGlzLnJvdXRlck1hcC5maW5kU3luYyhpPT5pPT09ZSl8fCh0aGlzLnJvdXRlck1hcC5hZGQoZSksZS5hZGRUeXBlZFJvdXRlcih0aGlzKSl9Y2hlY2tGb3JUeXBlZEhhbmRsZXIoZSl7cmV0dXJuISF0aGlzLmdldFR5cGVkSGFuZGxlckZvck1ldGhvZChlKX1nZXRUeXBlZEhhbmRsZXJGb3JNZXRob2QoZSxhPVtdKXthLnB1c2godGhpcyk7bGV0IGk7cmV0dXJuIGk9dGhpcy5oYW5kbGVyTWFwLmZpbmRTeW5jKHI9PnIubWV0aG9kPT09ZSksaXx8dGhpcy5yb3V0ZXJNYXAuZ2V0QXJyYXkoKS5mb3JFYWNoKHI9PnshaSYmIWEuaW5jbHVkZXMocikmJihpPXIuZ2V0VHlwZWRIYW5kbGVyRm9yTWV0aG9kKGUsYSkpfSksaX1zdGF0aWN7dGhpcy5kZWZhdWx0Um91dGVPcHRpb25zPXtsb2NhbFJlcXVlc3Q6ITEsc2tpcEhvb2tzOiExfX1hc3luYyByb3V0ZUFuZEFkZFJlc3BvbnNlKGUsYT17fSl7bGV0IGk9ey4uLnQuZGVmYXVsdFJvdXRlT3B0aW9ucywuLi5hfTtpZihlPUNyLmRlY29kZVBheWxvYWRGcm9tTmV0d29yayhlLHt0eXBlZHJvdXRlcjp0aGlzfSksZS5sb2NhbERhdGE9ZS5sb2NhbERhdGF8fHt9LGUubG9jYWxEYXRhLmZpcnN0VHlwZWRyb3V0ZXI9dGhpcyxlLm1ldGhvZD09PSIjI1ZpcnR1YWxTdHJlYW0jIyIpe2xldCByPWF3YWl0IHRoaXMuaGFuZGxlU3RyZWFtVHlwZWRSZXF1ZXN0KGUpO3JldHVybiByLmxvY2FsRGF0YT1udWxsLHJ9aWYoZT8uY29ycmVsYXRpb24/LnBoYXNlPT09InJlcXVlc3QifHxpLmxvY2FsUmVxdWVzdCl7bGV0IHI9RGF0ZS5ub3coKTtpLnNraXBIb29rc3x8dGhpcy5jYWxsSG9vaygib25JbmNvbWluZ1JlcXVlc3QiLHtjb3JyZWxhdGlvbklkOmUuY29ycmVsYXRpb24/LmlkfHwidW5rbm93biIsbWV0aG9kOmUubWV0aG9kLGRpcmVjdGlvbjoiaW5jb21pbmciLHBoYXNlOiJyZXF1ZXN0Iix0aW1lc3RhbXA6cixwYXlsb2FkOmUucmVxdWVzdH0pO2xldCBzPXRoaXMuZ2V0VHlwZWRIYW5kbGVyRm9yTWV0aG9kKGUubWV0aG9kKTtyZXR1cm4gcz8oZT1hd2FpdCBzLmFkZFJlc3BvbnNlKGUpLGUubG9jYWxEYXRhPW51bGwsZT1Dci5lbmNvZGVQYXlsb2FkRm9yTmV0d29yayhlLHt0eXBlZHJvdXRlcjp0aGlzfSksaS5za2lwSG9va3N8fHRoaXMuY2FsbEhvb2soIm9uT3V0Z29pbmdSZXNwb25zZSIse2NvcnJlbGF0aW9uSWQ6ZS5jb3JyZWxhdGlvbj8uaWR8fCJ1bmtub3duIixtZXRob2Q6ZS5tZXRob2QsZGlyZWN0aW9uOiJvdXRnb2luZyIscGhhc2U6InJlc3BvbnNlIix0aW1lc3RhbXA6RGF0ZS5ub3coKSxkdXJhdGlvbk1zOkRhdGUubm93KCktcixwYXlsb2FkOmUucmVzcG9uc2UsZXJyb3I6ZS5lcnJvcj8udGV4dH0pLGUpOihjb25zb2xlLmxvZyhgQ2Fubm90IGZpbmQgaGFuZGxlciBmb3IgbWV0aG9kbmFtZSAke2UubWV0aG9kfWApLGUuZXJyb3I9e3RleHQ6IlRoZXJlIGlzIG5vIGF2YWlsYWJsZSBtZXRob2QgZm9yIHRoaXMgY2FsbCBvbiB0aGUgc2VydmVyIHNpZGUiLGRhdGE6e319LGUuY29ycmVsYXRpb24ucGhhc2U9InJlc3BvbnNlIixlLmxvY2FsRGF0YT1udWxsLGU9Q3IuZW5jb2RlUGF5bG9hZEZvck5ldHdvcmsoZSx7dHlwZWRyb3V0ZXI6dGhpc30pLGkuc2tpcEhvb2tzfHx0aGlzLmNhbGxIb29rKCJvbk91dGdvaW5nUmVzcG9uc2UiLHtjb3JyZWxhdGlvbklkOmUuY29ycmVsYXRpb24/LmlkfHwidW5rbm93biIsbWV0aG9kOmUubWV0aG9kLGRpcmVjdGlvbjoib3V0Z29pbmciLHBoYXNlOiJyZXNwb25zZSIsdGltZXN0YW1wOkRhdGUubm93KCksZHVyYXRpb25NczpEYXRlLm5vdygpLXIscGF5bG9hZDplLnJlc3BvbnNlLGVycm9yOmUuZXJyb3I/LnRleHR9KSxlKX1lbHNlIHJldHVybiBlPy5jb3JyZWxhdGlvbj8ucGhhc2U9PT0icmVzcG9uc2UiPyhpLnNraXBIb29rc3x8dGhpcy5jYWxsSG9vaygib25JbmNvbWluZ1Jlc3BvbnNlIix7Y29ycmVsYXRpb25JZDplLmNvcnJlbGF0aW9uPy5pZHx8InVua25vd24iLG1ldGhvZDplLm1ldGhvZCxkaXJlY3Rpb246ImluY29taW5nIixwaGFzZToicmVzcG9uc2UiLHRpbWVzdGFtcDpEYXRlLm5vdygpLHBheWxvYWQ6ZS5yZXNwb25zZSxlcnJvcjplLmVycm9yPy50ZXh0fSksdGhpcy5maXJlRXZlbnRJbnRlcmVzdE1hcC5maW5kSW50ZXJlc3QoZS5jb3JyZWxhdGlvbi5pZCk/LmZ1bGxmaWxsSW50ZXJlc3QoZSksbnVsbCk6KGNvbnNvbGUubG9nKCJyZWNlaXZlZCB3ZWlyZGx5IHNoYXBlZCByZXF1ZXN0IiksY29uc29sZS5sb2coZSksbnVsbCl9YXN5bmMgaGFuZGxlU3RyZWFtVHlwZWRSZXF1ZXN0KGUpe2xldCBhPWF3YWl0IHRoaXMucmVnaXN0ZXJlZFZpcnR1YWxTdHJlYW1zLmZpbmQoYXN5bmMgcj0+ci5zdHJlYW1JZD09PWUucmVxdWVzdC5zdHJlYW1JZCk7aWYoYSljb25zb2xlLmxvZyhgc3VjY2VzczogZm91bmQgcmVsZXZhbnQgdmlydHVhbCBzdHJlYW0gd2l0aCBpZCAke2UucmVxdWVzdC5zdHJlYW1JZH1gKTtlbHNlIHJldHVybiBjb25zb2xlLmxvZyhgbm8gcmVsZXZhbnQgdmlydHVhbCBzdHJlYW0gZm91bmQgZm9yIHN0cmVhbSB3aXRoIGlkICR7ZS5yZXF1ZXN0LnN0cmVhbUlkfWApLGNvbnNvbGUubG9nKHRoaXMucmVnaXN0ZXJlZFZpcnR1YWxTdHJlYW1zLmdldEFycmF5KCkpLGU7cmV0dXJuIGF3YWl0IGEuaGFuZGxlU3RyZWFtVHIoZSl9fX0pO3ZhciBxMWUsQ3IsdDk9YigoKT0+e0RuKCk7TTYoKTtxMWU9IiMjIyMjIyMjIyMjIyNDTE9TSU5HIEJJVCMjIyMjIyMjIyMjIyMiLENyPWNsYXNzIHR7c3RhdGljIGVuY29kZVBheWxvYWRGb3JOZXR3b3JrKGUsYSxpLHI9W10pe3JldHVybiFlfHxsMy5pc0J1ZmZlckxpa2UoZSk/ZTplIGluc3RhbmNlb2YgdD8oIWUuc2lkZSYmYS5zZW5kTWV0aG9kJiYoZS5zaWRlPSJyZXF1ZXN0aW5nIixlLnNlbmRNZXRob2Q9YS5zZW5kTWV0aG9kKSwhZS5zaWRlJiZhLnR5cGVkcm91dGVyJiYoZS5zaWRlPSJyZXNwb25kaW5nIixlLnR5cGVkcm91dGVyPWEudHlwZWRyb3V0ZXIsYS50eXBlZHJvdXRlci5yZWdpc3RlcmVkVmlydHVhbFN0cmVhbXMuYWRkKGUpKSwhaS5yZXNwb25zZXx8ci5pbmNsdWRlcygicmVzcG9uc2UiKT8oZS5zdGFydEtlZXBBbGl2ZUxvb3AoKSx7X2lzVmlydHVhbFN0cmVhbTohMCxzdHJlYW1JZDplLnN0cmVhbUlkfSk6e19PQk1JVFRFRF9WSVJUVUFMX1NUUkVBTTohMCxyZWFzb246InBhdGggaXMgdW5kZXIgLnJlcXVlc3Q6IG9ibWl0dGVkIGZvciBkZWR1cGxpY2F0aW9uIHJlYXNvbnMgaW4gcmVzcG9uc2UgY3ljbGUuIn0pOkFycmF5LmlzQXJyYXkoZSk/ZS5tYXAoKHMsbik9PnQuZW5jb2RlUGF5bG9hZEZvck5ldHdvcmsocyxhLGl8fGUsci5jb25jYXQoU3RyaW5nKG4pKSkpOmUhPT1udWxsJiZ0eXBlb2YgZT09Im9iamVjdCI/T2JqZWN0LmVudHJpZXMoZSkucmVkdWNlKChzLFtuLG9dKT0+e2xldCBkPXIuY29uY2F0KG4pO3JldHVybiBzW25dPXQuZW5jb2RlUGF5bG9hZEZvck5ldHdvcmsobyxhLGl8fGUsZCksc30se30pOmV9c3RhdGljIGRlY29kZVBheWxvYWRGcm9tTmV0d29yayhlLGEpe2lmKGwzLmlzQnVmZmVyTGlrZShlKXx8ZSBpbnN0YW5jZW9mIHMwKXJldHVybiBlO2lmKGUhPT1udWxsJiZ0eXBlb2YgZT09Im9iamVjdCIpe2lmKGUgaW5zdGFuY2VvZiBTZXR8fGUgaW5zdGFuY2VvZiBNYXB8fGUgaW5zdGFuY2VvZiBEYXRlfHxlIGluc3RhbmNlb2YgUmVnRXhwfHxlIGluc3RhbmNlb2YgRXJyb3J8fGUgaW5zdGFuY2VvZiBQcm9taXNlfHx0eXBlb2YgZS50aGVuPT0iZnVuY3Rpb24iKXJldHVybiBlO2lmKGUuX2lzVmlydHVhbFN0cmVhbSl7bGV0IGk9bmV3IHQ7cmV0dXJuIGkuc3RyZWFtSWQ9ZS5zdHJlYW1JZCwhaS5zaWRlJiZhLnNlbmRNZXRob2QmJihpLnNpZGU9InJlcXVlc3RpbmciLGkuc2VuZE1ldGhvZD1hLnNlbmRNZXRob2QpLCFpLnNpZGUmJmEudHlwZWRyb3V0ZXImJihpLnNpZGU9InJlc3BvbmRpbmciLGkudHlwZWRyb3V0ZXI9YS50eXBlZHJvdXRlcixhLnR5cGVkcm91dGVyLnJlZ2lzdGVyZWRWaXJ0dWFsU3RyZWFtcy5hZGQoaSkpLGkuc3RhcnRLZWVwQWxpdmVMb29wKCksaX1lbHNlIGlmKEFycmF5LmlzQXJyYXkoZSkpe2xldCBpPVtdO2ZvcihsZXQgciBvZiBlKWkucHVzaCh0LmRlY29kZVBheWxvYWRGcm9tTmV0d29yayhyLGEpKTtyZXR1cm4gaX1lbHNlIHJldHVybiBPYmplY3Qua2V5cyhlKS5yZWR1Y2UoKGkscik9PihpW3JdPXQuZGVjb2RlUGF5bG9hZEZyb21OZXR3b3JrKGVbcl0sYSksaSkse30pfWVsc2UgcmV0dXJuIGV9Y29uc3RydWN0b3IoKXt0aGlzLnN0cmVhbUlkPUFuLnVuaSgpLHRoaXMua2VlcEFsaXZlPSEwLHRoaXMuc2VuZEJhY2twcmVzc3VyZWRBcnJheT1uZXcgdDIuQmFja3ByZXNzdXJlZEFycmF5KDE2KSx0aGlzLnJlY2VpdmVCYWNrcHJlc3N1cmVkQXJyYXk9bmV3IHQyLkJhY2twcmVzc3VyZWRBcnJheSgxNil9YXN5bmMgd29ya09uUXVldWUoKXtpZih0aGlzLndvcmtpbmdEZWZlcnJlZClyZXR1cm4gdGhpcy53b3JraW5nRGVmZXJyZWQucHJvbWlzZTtpZih0aGlzLndvcmtpbmdEZWZlcnJlZD1CZS5kZWZlcigpLHRoaXMuc2lkZT09PSJyZXF1ZXN0aW5nIil7bGV0IGU9IXRoaXMucmVjZWl2ZUJhY2twcmVzc3VyZWRBcnJheS5jaGVja1NwYWNlQXZhaWxhYmxlKCksYT0hMSxpPSExLHI9YXN5bmMoKT0+e2xldCBzPWF3YWl0IHRoaXMuc2VuZE1ldGhvZCh7bWV0aG9kOiIjI1ZpcnR1YWxTdHJlYW0jIyIscmVxdWVzdDp7c3RyZWFtSWQ6dGhpcy5zdHJlYW1JZCxjeWNsZUlkOkFuLnVuaSgpLGN5Y2xlOiJyZXF1ZXN0IixtYWluUHVycG9zZToiZmVlZGJhY2siLG5leHQ6dGhpcy5zZW5kQmFja3ByZXNzdXJlZEFycmF5LmRhdGEubGVuZ3RoPjAsYmFja3ByZXNzdXJlOiF0aGlzLnJlY2VpdmVCYWNrcHJlc3N1cmVkQXJyYXkuY2hlY2tTcGFjZUF2YWlsYWJsZSgpfSxyZXNwb25zZTpudWxsfSkuY2F0Y2goKCk9Pntjb25zb2xlLmxvZygic3RyZWFtIGVuZGVkIGltbWF0dXJlbHkiKSx0aGlzLmtlZXBBbGl2ZT0hMX0pO3MmJnMucmVzcG9uc2UmJihpPXMucmVzcG9uc2UuYmFja3ByZXNzdXJlLGE9cy5yZXNwb25zZS5uZXh0KX07Zm9yKGF3YWl0IHIoKTt0aGlzLnNlbmRCYWNrcHJlc3N1cmVkQXJyYXkuZGF0YS5sZW5ndGg+MHx8YTspe2lmKGkpZm9yKDtpOyljb25zb2xlLmxvZygid2FpdGluZyBmb3IgZmVlZGJhY2sgYmVjYXVzZSBvZiBiYWNrcHJlc3N1cmUuLi4iKSxhd2FpdCBkdC5kZWxheUZvcig1MCksYXdhaXQgcigpO2xldCBzO3RoaXMuc2VuZEJhY2twcmVzc3VyZWRBcnJheS5kYXRhLmxlbmd0aD4wJiYocz10aGlzLnNlbmRCYWNrcHJlc3N1cmVkQXJyYXkuc2hpZnQoKSk7bGV0IG47bj1hd2FpdCB0aGlzLnNlbmRNZXRob2Qoe21ldGhvZDoiIyNWaXJ0dWFsU3RyZWFtIyMiLHJlcXVlc3Q6e3N0cmVhbUlkOnRoaXMuc3RyZWFtSWQsY3ljbGVJZDpBbi51bmkoKSxjeWNsZToicmVxdWVzdCIsbWFpblB1cnBvc2U6cz8iY2h1bmsiOiJyZWFkIixiYWNrcHJlc3N1cmU6ZSxuZXh0OnRoaXMuc2VuZEJhY2twcmVzc3VyZWRBcnJheS5kYXRhLmxlbmd0aD4wLC4uLnM/e2NodW5rRGF0YTpzfTp7fX0scmVzcG9uc2U6bnVsbH0pLmNhdGNoKCgpPT4oY29uc29sZS5sb2coInN0cmVhbSBlbmRlZCBpbW1hdHVyZWx5IiksdGhpcy5rZWVwQWxpdmU9ITEsbnVsbCkpLG4mJm4ucmVzcG9uc2UmJm4ucmVzcG9uc2UuY2h1bmtEYXRhJiZ0aGlzLnJlY2VpdmVCYWNrcHJlc3N1cmVkQXJyYXkucHVzaChuLnJlc3BvbnNlLmNodW5rRGF0YSksaT1uJiZuLnJlc3BvbnNlJiZuLnJlc3BvbnNlLmJhY2twcmVzc3VyZSxlPSF0aGlzLnJlY2VpdmVCYWNrcHJlc3N1cmVkQXJyYXkuY2hlY2tTcGFjZUF2YWlsYWJsZSgpLGE9biYmbi5yZXNwb25zZSYmbi5yZXNwb25zZS5uZXh0fX10aGlzLndvcmtpbmdEZWZlcnJlZC5yZXNvbHZlKCksdGhpcy53b3JraW5nRGVmZXJyZWQ9bnVsbH1hc3luYyBoYW5kbGVTdHJlYW1UcihlKXtpZihlLnJlcXVlc3Qua2VlcEFsaXZlPT09ITAmJnRoaXMua2VlcEFsaXZlPT09ITA/dGhpcy5sYXN0S2VlcEFsaXZlRXZlbnQ9RGF0ZS5ub3coKTplLnJlcXVlc3Qua2VlcEFsaXZlPT09ITEmJih0aGlzLmtlZXBBbGl2ZT0hMSksZS5yZXF1ZXN0Lm1haW5QdXJwb3NlPT09ImtlZXBBbGl2ZSImJihlLnJlc3BvbnNlPXtzdHJlYW1JZDp0aGlzLnN0cmVhbUlkLGN5Y2xlSWQ6ZS5yZXF1ZXN0LmN5Y2xlSWQsY3ljbGU6InJlc3BvbnNlIixtYWluUHVycG9zZToia2VlcEFsaXZlIixrZWVwQWxpdmU6dGhpcy5rZWVwQWxpdmUsbmV4dDp0aGlzLnNlbmRCYWNrcHJlc3N1cmVkQXJyYXkuZGF0YS5sZW5ndGg+MCxiYWNrcHJlc3N1cmU6IXRoaXMucmVjZWl2ZUJhY2twcmVzc3VyZWRBcnJheS5jaGVja1NwYWNlQXZhaWxhYmxlKCl9KSxlLnJlcXVlc3QubWFpblB1cnBvc2U9PT0iZmVlZGJhY2siJiYoZS5yZXNwb25zZT17c3RyZWFtSWQ6dGhpcy5zdHJlYW1JZCxjeWNsZUlkOmUucmVxdWVzdC5jeWNsZUlkLGN5Y2xlOiJyZXNwb25zZSIsbWFpblB1cnBvc2U6ImZlZWRiYWNrIixuZXh0OnRoaXMuc2VuZEJhY2twcmVzc3VyZWRBcnJheS5kYXRhLmxlbmd0aD4wLGJhY2twcmVzc3VyZTohdGhpcy5yZWNlaXZlQmFja3ByZXNzdXJlZEFycmF5LmNoZWNrU3BhY2VBdmFpbGFibGUoKX0pLGUucmVxdWVzdC5tYWluUHVycG9zZT09PSJjaHVuayIpe2lmKHRoaXMucmVjZWl2ZUJhY2twcmVzc3VyZWRBcnJheS5wdXNoKGUucmVxdWVzdC5jaHVua0RhdGEpLHRoaXMuc2VuZEJhY2twcmVzc3VyZWRBcnJheS5kYXRhLmxlbmd0aD4wJiZlLnJlc3BvbnNlLmJhY2twcmVzc3VyZT09PSExKXtsZXQgYT10aGlzLnNlbmRCYWNrcHJlc3N1cmVkQXJyYXkuc2hpZnQoKTtlLnJlc3BvbnNlPXtzdHJlYW1JZDp0aGlzLnN0cmVhbUlkLGN5Y2xlSWQ6ZS5yZXF1ZXN0LmN5Y2xlSWQsY3ljbGU6InJlc3BvbnNlIixtYWluUHVycG9zZToiY2h1bmsiLG5leHQ6dGhpcy5zZW5kQmFja3ByZXNzdXJlZEFycmF5LmRhdGEubGVuZ3RoPjEsYmFja3ByZXNzdXJlOiF0aGlzLnJlY2VpdmVCYWNrcHJlc3N1cmVkQXJyYXkuY2hlY2tTcGFjZUF2YWlsYWJsZSgpLGNodW5rRGF0YTp0aGlzLnNlbmRCYWNrcHJlc3N1cmVkQXJyYXkuc2hpZnQoKX19ZWxzZSBlLnJlc3BvbnNlPXtzdHJlYW1JZDp0aGlzLnN0cmVhbUlkLGN5Y2xlSWQ6ZS5yZXF1ZXN0LmN5Y2xlSWQsY3ljbGU6InJlc3BvbnNlIixtYWluUHVycG9zZToiZmVlZGJhY2siLG5leHQ6dGhpcy5zZW5kQmFja3ByZXNzdXJlZEFycmF5LmRhdGEubGVuZ3RoPjAsYmFja3ByZXNzdXJlOiF0aGlzLnJlY2VpdmVCYWNrcHJlc3N1cmVkQXJyYXkuY2hlY2tTcGFjZUF2YWlsYWJsZSgpfTtlLnJlcXVlc3Q9bnVsbH1yZXR1cm4gZX1hc3luYyBjbGVhbnVwKCl7dGhpcy50eXBlZHJvdXRlciYmdGhpcy50eXBlZHJvdXRlci5yZWdpc3RlcmVkVmlydHVhbFN0cmVhbXMucmVtb3ZlKHRoaXMpfWFzeW5jIHN0YXJ0S2VlcEFsaXZlTG9vcCgpe2lmKHRoaXMuc2lkZT09PSJyZXNwb25kaW5nIilyZXR1cm47YXdhaXQgZHQuZGVsYXlGb3IoMCksY29uc29sZS5sb2coYHN0YXJ0aW5nIGtlZXBhbGl2ZSBsb29wIG9uIHNpZGUgJHt0aGlzLnNpZGV9YCk7bGV0IGU9MDtmb3IoO3RoaXMua2VlcEFsaXZlOylhd2FpdCB0aGlzLnRyaWdnZXJLZWVwQWxpdmUoKSxhd2FpdCBkdC5kZWxheUZvcigxZTMpO2F3YWl0IGR0LmRlbGF5Rm9yKDFlMyksYXdhaXQgdGhpcy5jbGVhbnVwKCksY29uc29sZS5sb2coYGNsZWFuZWQgdXAgZm9yIHN0cmVhbSAke3RoaXMuc3RyZWFtSWR9YCl9YXN5bmMgdHJpZ2dlcktlZXBBbGl2ZSgpe2lmKHRoaXMuc2lkZT09PSJyZXF1ZXN0aW5nIil7Y29uc29sZS5sb2coImtlZXBhbGl2ZSBzZW50LiIpO2xldCBlPWF3YWl0IHRoaXMuc2VuZE1ldGhvZCh7bWV0aG9kOiIjI1ZpcnR1YWxTdHJlYW0jIyIscmVxdWVzdDp7c3RyZWFtSWQ6dGhpcy5zdHJlYW1JZCxjeWNsZUlkOkFuLnVuaSgpLGN5Y2xlOiJyZXF1ZXN0IixtYWluUHVycG9zZToia2VlcEFsaXZlIixrZWVwQWxpdmU6dGhpcy5rZWVwQWxpdmV9LHJlc3BvbnNlOm51bGx9KS5jYXRjaCgoKT0+e3RoaXMua2VlcEFsaXZlPSExfSk7ZSYmZS5yZXNwb25zZSYmZS5yZXNwb25zZS5rZWVwQWxpdmU9PT0hMT90aGlzLmtlZXBBbGl2ZT0hMTp0aGlzLmxhc3RLZWVwQWxpdmVFdmVudD1EYXRlLm5vdygpLGUmJmUucmVzcG9uc2UmJmUucmVzcG9uc2UubmV4dCYmdGhpcy53b3JrT25RdWV1ZSgpfURhdGUubm93KCktdGhpcy5sYXN0S2VlcEFsaXZlRXZlbnQ+MWU0JiYoY29uc29sZS5sb2coYGNsb3Npbmcgc3RyZWFtIGZvciAke3RoaXMuc3RyZWFtSWR9YCksdGhpcy5rZWVwQWxpdmU9ITEpfWFzeW5jIHNlbmREYXRhKGUpe3RoaXMuc2VuZEJhY2twcmVzc3VyZWRBcnJheS5wdXNoKGUpLHRoaXMud29ya09uUXVldWUoKSxhd2FpdCB0aGlzLnNlbmRCYWNrcHJlc3N1cmVkQXJyYXkud2FpdEZvclNwYWNlKCl9YXN5bmMgZmV0Y2hEYXRhKCl7cmV0dXJuIHRoaXMucmVjZWl2ZUJhY2twcmVzc3VyZWRBcnJheS5oYXNTcGFjZSxhd2FpdCB0aGlzLnJlY2VpdmVCYWNrcHJlc3N1cmVkQXJyYXkud2FpdEZvckl0ZW1zKCksdGhpcy5yZWNlaXZlQmFja3ByZXNzdXJlZEFycmF5LnNoaWZ0KCl9YXN5bmMgcmVhZEZyb21XZWJzdHJlYW0oZSxhPSEwKXtsZXQgaT1lLmdldFJlYWRlcigpLHI9ITE7Zm9yKDshcjspe2xldHt2YWx1ZTpzLGRvbmU6bn09YXdhaXQgaS5yZWFkKCk7cyYmYXdhaXQgdGhpcy5zZW5kRGF0YShzKSxyPW59YSYmYXdhaXQgdGhpcy5jbG9zZSghMCl9YXN5bmMgd3JpdGVUb1dlYnN0cmVhbShlKXtsZXQgYT1lLmdldFdyaXRlcigpO2Zvcig7dGhpcy5rZWVwQWxpdmV8fHRoaXMucmVjZWl2ZUJhY2twcmVzc3VyZWRBcnJheS5jaGVja0hhc0l0ZW1zKCk7KXtsZXQgaT1hd2FpdCB0aGlzLmZldGNoRGF0YSgpO2lmKGk9PT1xMWUpe2EucmVsZWFzZUxvY2soKSxhd2FpdCBlLmNsb3NlKCk7YnJlYWt9YXdhaXQgYS53cml0ZShpKX19YXN5bmMgY2xvc2UoZT0hMSl7ZSYmdGhpcy5zZW5kRGF0YShxMWUpLHRoaXMua2VlcEFsaXZlPSExfX19KTt2YXIgeV8seF89YigoKT0+e002KCk7RG4oKTt5Xz1jbGFzc3tjb25zdHJ1Y3RvcihlKXtpZihlLnBvc3RNZXRob2RXaXRoVHlwZWRSb3V0ZXImJiFlLnR5cGVkUm91dGVyUmVmKXRocm93IG5ldyBFcnJvcigieW91IGhhdmUgdG8gc3BlY2lmeSBhIHR5cGVkcm91dGVyIHdoZW4gdXNpbmcgcG9zdG1ldGhvZCB3aXRoIHR5cGVkcm91dGVyIik7dGhpcy5vcHRpb25zPWV9YXN5bmMgcG9zdChlKXtsZXQgYTt0aGlzLm9wdGlvbnMudHlwZWRSb3V0ZXJSZWYmJihhPWF3YWl0IHRoaXMub3B0aW9ucy50eXBlZFJvdXRlclJlZi5maXJlRXZlbnRJbnRlcmVzdE1hcC5hZGRJbnRlcmVzdChlLmNvcnJlbGF0aW9uLmlkLGUpKTtsZXQgcj1hd2FpdCh0aGlzLm9wdGlvbnMucG9zdE1ldGhvZHx8dGhpcy5vcHRpb25zLnBvc3RNZXRob2RXaXRoVHlwZWRSb3V0ZXIpKGUpLHM7cmV0dXJuIGE/cz1hd2FpdCBhLmludGVyZXN0RnVsbGZpbGxlZDpyP3M9cjpzPWUsc319fSk7ZnVuY3Rpb24gVjFlKHQsZSl7dHJ5e3MwLmdsb2JhbEhvb2tzW3RdPy4oZSl9Y2F0Y2goYSl7Y29uc29sZS5lcnJvcihgVHlwZWRSZXF1ZXN0IGhvb2sgZXJyb3IgKCR7dH0pOmAsYSl9fXZhciBsJHQsejYsdl89YigoKT0+e0RuKCk7dDkoKTt3NigpO002KCk7eF8oKTtsJHQ9bmV3IHg2LldlYnJlcXVlc3RDbGllbnQ7ejY9Y2xhc3N7Y29uc3RydWN0b3IoZSxhKXt0aGlzLnNraXBIb29rcz0hMSx0eXBlb2YgZT09InN0cmluZyI/dGhpcy51cmxFbmRQb2ludD1lOnRoaXMudHlwZWRUYXJnZXQ9ZSx0aGlzLm1ldGhvZD1hfWFzeW5jIGZpcmUoZSxhPSExKXtsZXQgaT1EYXRlLm5vdygpLHI9e21ldGhvZDp0aGlzLm1ldGhvZCxyZXF1ZXN0OmUscmVzcG9uc2U6bnVsbCxjb3JyZWxhdGlvbjp7aWQ6QW4udW5pKCkscGhhc2U6InJlcXVlc3QifX07cj1Dci5lbmNvZGVQYXlsb2FkRm9yTmV0d29yayhyLHtzZW5kTWV0aG9kOm49PnRoaXMucG9zdFRyT2JqZWN0KG4pfSksdGhpcy5za2lwSG9va3N8fFYxZSgib25PdXRnb2luZ1JlcXVlc3QiLHtjb3JyZWxhdGlvbklkOnIuY29ycmVsYXRpb24uaWQsbWV0aG9kOnRoaXMubWV0aG9kLGRpcmVjdGlvbjoib3V0Z29pbmciLHBoYXNlOiJyZXF1ZXN0Iix0aW1lc3RhbXA6aSxwYXlsb2FkOmV9KTtsZXQgcztyZXR1cm4gcz1hd2FpdCB0aGlzLnBvc3RUck9iamVjdChyLGEpLHM9Q3IuZGVjb2RlUGF5bG9hZEZyb21OZXR3b3JrKHMse3NlbmRNZXRob2Q6bj0+dGhpcy5wb3N0VHJPYmplY3Qobil9KSx0aGlzLnNraXBIb29rc3x8VjFlKCJvbkluY29taW5nUmVzcG9uc2UiLHtjb3JyZWxhdGlvbklkOnIuY29ycmVsYXRpb24uaWQsbWV0aG9kOnRoaXMubWV0aG9kLGRpcmVjdGlvbjoiaW5jb21pbmciLHBoYXNlOiJyZXNwb25zZSIsdGltZXN0YW1wOkRhdGUubm93KCksZHVyYXRpb25NczpEYXRlLm5vdygpLWkscGF5bG9hZDpzPy5yZXNwb25zZSxlcnJvcjpzPy5lcnJvcj8udGV4dH0pLHMucmVzcG9uc2V9YXN5bmMgcG9zdFRyT2JqZWN0KGUsYT0hMSl7bGV0IGk7aWYodGhpcy51cmxFbmRQb2ludD9pPWF3YWl0IGwkdC5wb3N0SnNvbih0aGlzLnVybEVuZFBvaW50LGUsYT97Y2FjaGVTdHJhdGVneToiY2FjaGUtZmlyc3QifTp7fSk6aT1hd2FpdCB0aGlzLnR5cGVkVGFyZ2V0LnBvc3QoZSksaS5lcnJvcil7aWYoY29uc29sZS5lcnJvcihgbWV0aG9kOiA+PiR7dGhpcy5tZXRob2R9PDwgZ290IGFuIEVSUk9SOiAiJHtpLmVycm9yLnRleHR9IiB3aXRoIGRhdGEgJHtKU09OLnN0cmluZ2lmeShpLmVycm9yLmRhdGEsbnVsbCwyKX1gKSwhaS5yZXRyeSl0aHJvdyBuZXcgZnMoaS5lcnJvci50ZXh0LGkuZXJyb3IuZGF0YSk7cmV0dXJuIG51bGx9cmV0dXJuIGkucmV0cnkmJihjb25zb2xlLmxvZyhgc2VydmVyIHJlcXVlc3RlZCByZXRyeSBmb3IgdGhlIGZvbGxvd2luZyByZWFzb246ICR7aS5yZXRyeS5yZWFzb259YCksYXdhaXQgZHQuZGVsYXlGb3IoaS5yZXRyeS53YWl0Rm9yTXMpLGk9YXdhaXQgdGhpcy5wb3N0VHJPYmplY3QoZSxhKSksaX19fSk7dmFyIGxhPXt9O0dlKGxhLHtUeXBlZEhhbmRsZXI6KCk9PmdfLFR5cGVkUmVxdWVzdDooKT0+ejYsVHlwZWRSZXNwb25zZUVycm9yOigpPT5mcyxUeXBlZFJvdXRlcjooKT0+czAsVHlwZWRUYXJnZXQ6KCk9PnlfLFZpcnR1YWxTdHJlYW06KCk9PkNyfSk7dmFyIGs2PWIoKCk9Pnt2XygpO2JfKCk7TTYoKTt3NigpO3hfKCk7dDkoKX0pO2Z1bmN0aW9uIGoxZSh0KXtyZXR1cm4gdCYmdHlwZW9mIHQudGhlbj09ImZ1bmN0aW9uIn1mdW5jdGlvbiBfcih0LGUpe3JldHVybiB0fHwodD0wKSxuZXcgUHJvbWlzZShmdW5jdGlvbihhKXtyZXR1cm4gc2V0VGltZW91dChmdW5jdGlvbigpe3JldHVybiBhKGUpfSx0KX0pfWZ1bmN0aW9uIEcxZSh0LGUpe3JldHVybiBNYXRoLmZsb29yKE1hdGgucmFuZG9tKCkqKGUtdCsxKSt0KX1mdW5jdGlvbiBtcygpe3JldHVybiBNYXRoLnJhbmRvbSgpLnRvU3RyaW5nKDM2KS5zdWJzdHJpbmcoMil9ZnVuY3Rpb24gZ3MoKXt2YXIgdD1EYXRlLm5vdygpKjFlMztyZXR1cm4gdDw9d18mJih0PXdfKzEpLHdfPXQsdH1mdW5jdGlvbiBZMWUoKXtyZXR1cm4gdHlwZW9mIG5hdmlnYXRvcjwidSImJnR5cGVvZiBuYXZpZ2F0b3IubG9ja3M8InUiJiZ0eXBlb2YgbmF2aWdhdG9yLmxvY2tzLnJlcXVlc3Q9PSJmdW5jdGlvbiJ9dmFyIFUxZSxXMWUsUmEsd18sRW49YigoKT0+e1UxZT1Qcm9taXNlLnJlc29sdmUoITEpLFcxZT1Qcm9taXNlLnJlc29sdmUoITApLFJhPVByb21pc2UucmVzb2x2ZSgpO3dfPTB9KTtmdW5jdGlvbiBoJHQodCl7dmFyIGU9e3RpbWU6Z3MoKSxtZXNzYWdlc0NhbGxiYWNrOm51bGwsYmM6bmV3IEJyb2FkY2FzdENoYW5uZWwodCksc3ViRm5zOltdfTtyZXR1cm4gZS5iYy5vbm1lc3NhZ2U9ZnVuY3Rpb24oYSl7ZS5tZXNzYWdlc0NhbGxiYWNrJiZlLm1lc3NhZ2VzQ2FsbGJhY2soYS5kYXRhKX0sZX1mdW5jdGlvbiBwJHQodCl7dC5iYy5jbG9zZSgpLHQuc3ViRm5zPVtdfWZ1bmN0aW9uIHUkdCh0LGUpe3RyeXtyZXR1cm4gdC5iYy5wb3N0TWVzc2FnZShlLCExKSxSYX1jYXRjaChhKXtyZXR1cm4gUHJvbWlzZS5yZWplY3QoYSl9fWZ1bmN0aW9uIGYkdCh0LGUpe3QubWVzc2FnZXNDYWxsYmFjaz1lfWZ1bmN0aW9uIG0kdCgpe2lmKHR5cGVvZiBnbG9iYWxUaGlzPCJ1IiYmZ2xvYmFsVGhpcy5EZW5vJiZnbG9iYWxUaGlzLkRlbm8uYXJncylyZXR1cm4hMDtpZigodHlwZW9mIHdpbmRvdzwidSJ8fHR5cGVvZiBzZWxmPCJ1IikmJnR5cGVvZiBCcm9hZGNhc3RDaGFubmVsPT0iZnVuY3Rpb24iKXtpZihCcm9hZGNhc3RDaGFubmVsLl9wdWJrZXkpdGhyb3cgbmV3IEVycm9yKCJCcm9hZGNhc3RDaGFubmVsOiBEbyBub3Qgb3ZlcndyaXRlIHdpbmRvdy5Ccm9hZGNhc3RDaGFubmVsIHdpdGggdGhpcyBtb2R1bGUsIHRoaXMgaXMgbm90IGEgcG9seWZpbGwiKTtyZXR1cm4hMH1lbHNlIHJldHVybiExfWZ1bmN0aW9uIGckdCgpe3JldHVybiAxNTB9dmFyIGMkdCxkJHQsWjFlLFgxZT1iKCgpPT57RW4oKTtjJHQ9Z3MsZCR0PSJuYXRpdmUiO1oxZT17Y3JlYXRlOmgkdCxjbG9zZTpwJHQsb25NZXNzYWdlOmYkdCxwb3N0TWVzc2FnZTp1JHQsY2FuQmVVc2VkOm0kdCx0eXBlOmQkdCxhdmVyYWdlUmVzcG9uc2VUaW1lOmckdCxtaWNyb1NlY29uZHM6YyR0fX0pO2Z1bmN0aW9uIGIkdCh0KXtsZXQgZT1NXygpLXQudHRsLGE9dC5tYXBbU3ltYm9sLml0ZXJhdG9yXSgpO2Zvcig7Oyl7bGV0IGk9YS5uZXh0KCkudmFsdWU7aWYoIWkpYnJlYWs7bGV0IHI9aVswXTtpZihpWzFdPGUpdC5tYXAuZGVsZXRlKHIpO2Vsc2UgYnJlYWt9fWZ1bmN0aW9uIE1fKCl7cmV0dXJuIERhdGUubm93KCl9dmFyIHozLHpfPWIoKCk9Pnt6Mz1jbGFzc3t0dGw7bWFwPW5ldyBNYXA7X3RvPSExO2NvbnN0cnVjdG9yKGUpe3RoaXMudHRsPWV9aGFzKGUpe2xldCBhPXRoaXMubWFwLmdldChlKTtyZXR1cm4gdHlwZW9mIGE+InUiPyExOmE8TV8oKS10aGlzLnR0bD8odGhpcy5tYXAuZGVsZXRlKGUpLCExKTohMH1hZGQoZSl7dGhpcy5tYXAuZGVsZXRlKGUpLHRoaXMubWFwLnNldChlLE1fKCkpLHRoaXMuX3RvfHwodGhpcy5fdG89ITAsc2V0VGltZW91dCgoKT0+e3RoaXMuX3RvPSExLGIkdCh0aGlzKX0sMCkpfWNsZWFyKCl7dGhpcy5tYXAuY2xlYXIoKX19fSk7ZnVuY3Rpb24gbjAoKXt2YXIgdD1hcmd1bWVudHMubGVuZ3RoPjAmJmFyZ3VtZW50c1swXSE9PXZvaWQgMD9hcmd1bWVudHNbMF06e30sZT1KU09OLnBhcnNlKEpTT04uc3RyaW5naWZ5KHQpKTtyZXR1cm4gdHlwZW9mIGUud2ViV29ya2VyU3VwcG9ydD4idSImJihlLndlYldvcmtlclN1cHBvcnQ9ITApLGUuaWRifHwoZS5pZGI9e30pLGUuaWRiLnR0bHx8KGUuaWRiLnR0bD0xZTMqNDUpLGUuaWRiLmZhbGxiYWNrSW50ZXJ2YWx8fChlLmlkYi5mYWxsYmFja0ludGVydmFsPTE1MCksdC5pZGImJnR5cGVvZiB0LmlkYi5vbmNsb3NlPT0iZnVuY3Rpb24iJiYoZS5pZGIub25jbG9zZT10LmlkYi5vbmNsb3NlKSxlLmxvY2Fsc3RvcmFnZXx8KGUubG9jYWxzdG9yYWdlPXt9KSxlLmxvY2Fsc3RvcmFnZS5yZW1vdmVUaW1lb3V0fHwoZS5sb2NhbHN0b3JhZ2UucmVtb3ZlVGltZW91dD0xZTMqNjApLHQubWV0aG9kcyYmKGUubWV0aG9kcz10Lm1ldGhvZHMpLGUubm9kZXx8KGUubm9kZT17fSksZS5ub2RlLnR0bHx8KGUubm9kZS50dGw9MWUzKjYwKjIpLGUubm9kZS5tYXhQYXJhbGxlbFdyaXRlc3x8KGUubm9kZS5tYXhQYXJhbGxlbFdyaXRlcz0yMDQ4KSx0eXBlb2YgZS5ub2RlLnVzZUZhc3RQYXRoPiJ1IiYmKGUubm9kZS51c2VGYXN0UGF0aD0hMCksZX12YXIgYTk9YigoKT0+e30pO2Z1bmN0aW9uIEsxZSgpe2lmKHR5cGVvZiBpbmRleGVkREI8InUiKXJldHVybiBpbmRleGVkREI7aWYodHlwZW9mIHdpbmRvdzwidSIpe2lmKHR5cGVvZiB3aW5kb3cubW96SW5kZXhlZERCPCJ1IilyZXR1cm4gd2luZG93Lm1vekluZGV4ZWREQjtpZih0eXBlb2Ygd2luZG93LndlYmtpdEluZGV4ZWREQjwidSIpcmV0dXJuIHdpbmRvdy53ZWJraXRJbmRleGVkREI7aWYodHlwZW9mIHdpbmRvdy5tc0luZGV4ZWREQjwidSIpcmV0dXJuIHdpbmRvdy5tc0luZGV4ZWREQn1yZXR1cm4hMX1mdW5jdGlvbiBpOSh0KXt0LmNvbW1pdCYmdC5jb21taXQoKX1mdW5jdGlvbiB3JHQodCl7dmFyIGU9SzFlKCksYT15JHQrdCxpPWUub3BlbihhKTtyZXR1cm4gaS5vbnVwZ3JhZGVuZWVkZWQ9ZnVuY3Rpb24ocil7dmFyIHM9ci50YXJnZXQucmVzdWx0O3MuY3JlYXRlT2JqZWN0U3RvcmUoTmkse2tleVBhdGg6ImlkIixhdXRvSW5jcmVtZW50OiEwfSl9LG5ldyBQcm9taXNlKGZ1bmN0aW9uKHIscyl7aS5vbmVycm9yPWZ1bmN0aW9uKG4pe3JldHVybiBzKG4pfSxpLm9uc3VjY2Vzcz1mdW5jdGlvbigpe3IoaS5yZXN1bHQpfX0pfWZ1bmN0aW9uIE0kdCh0LGUsYSl7dmFyIGk9RGF0ZS5ub3coKSxyPXt1dWlkOmUsdGltZTppLGRhdGE6YX0scz10LnRyYW5zYWN0aW9uKFtOaV0sInJlYWR3cml0ZSIsUzYpO3JldHVybiBuZXcgUHJvbWlzZShmdW5jdGlvbihuLG8pe3Mub25jb21wbGV0ZT1mdW5jdGlvbigpe3JldHVybiBuKCl9LHMub25lcnJvcj1mdW5jdGlvbihjKXtyZXR1cm4gbyhjKX07dmFyIGQ9cy5vYmplY3RTdG9yZShOaSk7ZC5hZGQociksaTkocyl9KX1mdW5jdGlvbiB6QzEodCl7dmFyIGU9dC50cmFuc2FjdGlvbihOaSwicmVhZG9ubHkiLFM2KSxhPWUub2JqZWN0U3RvcmUoTmkpLGk9W107cmV0dXJuIG5ldyBQcm9taXNlKGZ1bmN0aW9uKHIpe2Eub3BlbkN1cnNvcigpLm9uc3VjY2Vzcz1mdW5jdGlvbihzKXt2YXIgbj1zLnRhcmdldC5yZXN1bHQ7bj8oaS5wdXNoKG4udmFsdWUpLG4uY29udGludWUoKSk6KGk5KGUpLHIoaSkpfX0pfWZ1bmN0aW9uIHokdCh0LGUpe3ZhciBhPXQudHJhbnNhY3Rpb24oTmksInJlYWRvbmx5IixTNiksaT1hLm9iamVjdFN0b3JlKE5pKSxyPVtdLHM9SURCS2V5UmFuZ2UuYm91bmQoZSsxLDEvMCk7aWYoaS5nZXRBbGwpe3ZhciBuPWkuZ2V0QWxsKHMpO3JldHVybiBuZXcgUHJvbWlzZShmdW5jdGlvbihkLGMpe24ub25lcnJvcj1mdW5jdGlvbihoKXtyZXR1cm4gYyhoKX0sbi5vbnN1Y2Nlc3M9ZnVuY3Rpb24oaCl7ZChoLnRhcmdldC5yZXN1bHQpfX0pfWZ1bmN0aW9uIG8oKXt0cnl7cmV0dXJuIHM9SURCS2V5UmFuZ2UuYm91bmQoZSsxLDEvMCksaS5vcGVuQ3Vyc29yKHMpfWNhdGNoe3JldHVybiBpLm9wZW5DdXJzb3IoKX19cmV0dXJuIG5ldyBQcm9taXNlKGZ1bmN0aW9uKGQsYyl7dmFyIGg9bygpO2gub25lcnJvcj1mdW5jdGlvbihsKXtyZXR1cm4gYyhsKX0saC5vbnN1Y2Nlc3M9ZnVuY3Rpb24obCl7dmFyIGY9bC50YXJnZXQucmVzdWx0O2Y/Zi52YWx1ZS5pZDxlKzE/Zi5jb250aW51ZShlKzEpOihyLnB1c2goZi52YWx1ZSksZi5jb250aW51ZSgpKTooaTkoYSksZChyKSl9fSl9ZnVuY3Rpb24gayR0KHQsZSl7aWYodC5jbG9zZWQpcmV0dXJuIFByb21pc2UucmVzb2x2ZShbXSk7dmFyIGE9dC5kYi50cmFuc2FjdGlvbihOaSwicmVhZHdyaXRlIixTNiksaT1hLm9iamVjdFN0b3JlKE5pKTtyZXR1cm4gUHJvbWlzZS5hbGwoZS5tYXAoZnVuY3Rpb24ocil7dmFyIHM9aS5kZWxldGUocik7cmV0dXJuIG5ldyBQcm9taXNlKGZ1bmN0aW9uKG4pe3Mub25zdWNjZXNzPWZ1bmN0aW9uKCl7cmV0dXJuIG4oKX19KX0pKX1mdW5jdGlvbiBTJHQodCxlKXt2YXIgYT1EYXRlLm5vdygpLWUsaT10LnRyYW5zYWN0aW9uKE5pLCJyZWFkb25seSIsUzYpLHI9aS5vYmplY3RTdG9yZShOaSkscz1bXTtyZXR1cm4gbmV3IFByb21pc2UoZnVuY3Rpb24obil7ci5vcGVuQ3Vyc29yKCkub25zdWNjZXNzPWZ1bmN0aW9uKG8pe3ZhciBkPW8udGFyZ2V0LnJlc3VsdDtpZihkKXt2YXIgYz1kLnZhbHVlO2MudGltZTxhPyhzLnB1c2goYyksZC5jb250aW51ZSgpKTooaTkoaSksbihzKSl9ZWxzZSBuKHMpfX0pfWZ1bmN0aW9uIEMkdCh0KXtyZXR1cm4gUyR0KHQuZGIsdC5vcHRpb25zLmlkYi50dGwpLnRoZW4oZnVuY3Rpb24oZSl7cmV0dXJuIGskdCh0LGUubWFwKGZ1bmN0aW9uKGEpe3JldHVybiBhLmlkfSkpfSl9ZnVuY3Rpb24gXyR0KHQsZSl7cmV0dXJuIGU9bjAoZSksdyR0KHQpLnRoZW4oZnVuY3Rpb24oYSl7dmFyIGk9e2Nsb3NlZDohMSxsYXN0Q3Vyc29ySWQ6MCxjaGFubmVsTmFtZTp0LG9wdGlvbnM6ZSx1dWlkOm1zKCksZU1JczpuZXcgejMoZS5pZGIudHRsKjIpLHdyaXRlQmxvY2tQcm9taXNlOlJhLG1lc3NhZ2VzQ2FsbGJhY2s6bnVsbCxyZWFkUXVldWVQcm9taXNlczpbXSxkYjphfTtyZXR1cm4gYS5vbmNsb3NlPWZ1bmN0aW9uKCl7aS5jbG9zZWQ9ITAsZS5pZGIub25jbG9zZSYmZS5pZGIub25jbG9zZSgpfSxRMWUoaSksaX0pfWZ1bmN0aW9uIFExZSh0KXt0LmNsb3NlZHx8SjFlKHQpLnRoZW4oZnVuY3Rpb24oKXtyZXR1cm4gX3IodC5vcHRpb25zLmlkYi5mYWxsYmFja0ludGVydmFsKX0pLnRoZW4oZnVuY3Rpb24oKXtyZXR1cm4gUTFlKHQpfSl9ZnVuY3Rpb24gVCR0KHQsZSl7cmV0dXJuISh0LnV1aWQ9PT1lLnV1aWR8fGUuZU1Jcy5oYXModC5pZCl8fHQuZGF0YS50aW1lPGUubWVzc2FnZXNDYWxsYmFja1RpbWUpfWZ1bmN0aW9uIEoxZSh0KXtyZXR1cm4gdC5jbG9zZWQ/UmE6dC5tZXNzYWdlc0NhbGxiYWNrP3okdCh0LmRiLHQubGFzdEN1cnNvcklkKS50aGVuKGZ1bmN0aW9uKGUpe3ZhciBhPWUuZmlsdGVyKGZ1bmN0aW9uKGkpe3JldHVybiEhaX0pLm1hcChmdW5jdGlvbihpKXtyZXR1cm4gaS5pZD50Lmxhc3RDdXJzb3JJZCYmKHQubGFzdEN1cnNvcklkPWkuaWQpLGl9KS5maWx0ZXIoZnVuY3Rpb24oaSl7cmV0dXJuIFQkdChpLHQpfSkuc29ydChmdW5jdGlvbihpLHIpe3JldHVybiBpLnRpbWUtci50aW1lfSk7cmV0dXJuIGEuZm9yRWFjaChmdW5jdGlvbihpKXt0Lm1lc3NhZ2VzQ2FsbGJhY2smJih0LmVNSXMuYWRkKGkuaWQpLHQubWVzc2FnZXNDYWxsYmFjayhpLmRhdGEpKX0pLFJhfSk6UmF9ZnVuY3Rpb24gTCR0KHQpe3QuY2xvc2VkPSEwLHQuZGIuY2xvc2UoKX1mdW5jdGlvbiAkJHQodCxlKXtyZXR1cm4gdC53cml0ZUJsb2NrUHJvbWlzZT10LndyaXRlQmxvY2tQcm9taXNlLnRoZW4oZnVuY3Rpb24oKXtyZXR1cm4gTSR0KHQuZGIsdC51dWlkLGUpfSkudGhlbihmdW5jdGlvbigpe0cxZSgwLDEwKT09PTAmJkMkdCh0KX0pLHQud3JpdGVCbG9ja1Byb21pc2V9ZnVuY3Rpb24gQSR0KHQsZSxhKXt0Lm1lc3NhZ2VzQ2FsbGJhY2tUaW1lPWEsdC5tZXNzYWdlc0NhbGxiYWNrPWUsSjFlKHQpfWZ1bmN0aW9uIEQkdCgpe3JldHVybiEhSzFlKCl9ZnVuY3Rpb24gRSR0KHQpe3JldHVybiB0LmlkYi5mYWxsYmFja0ludGVydmFsKjJ9dmFyIHYkdCx5JHQsTmksUzYseCR0LGUyZSx0MmU9YigoKT0+e0VuKCk7el8oKTthOSgpO3YkdD1ncyx5JHQ9InB1YmtleS5icm9hZGNhc3QtY2hhbm5lbC0wLSIsTmk9Im1lc3NhZ2VzIixTNj17ZHVyYWJpbGl0eToicmVsYXhlZCJ9LHgkdD0iaWRiIjtlMmU9e2NyZWF0ZTpfJHQsY2xvc2U6TCR0LG9uTWVzc2FnZTpBJHQscG9zdE1lc3NhZ2U6JCR0LGNhbkJlVXNlZDpEJHQsdHlwZTp4JHQsYXZlcmFnZVJlc3BvbnNlVGltZTpFJHQsbWljcm9TZWNvbmRzOnYkdH19KTtmdW5jdGlvbiBhMmUoKXt2YXIgdDtpZih0eXBlb2Ygd2luZG93PiJ1IilyZXR1cm4gbnVsbDt0cnl7dD13aW5kb3cubG9jYWxTdG9yYWdlLHQ9d2luZG93WyJpZTgtZXZlbnRsaXN0ZW5lci9zdG9yYWdlIl18fHdpbmRvdy5sb2NhbFN0b3JhZ2V9Y2F0Y2h7fXJldHVybiB0fWZ1bmN0aW9uIGkyZSh0KXtyZXR1cm4gSSR0K3R9ZnVuY3Rpb24gRiR0KHQsZSl7cmV0dXJuIG5ldyBQcm9taXNlKGZ1bmN0aW9uKGEpe19yKCkudGhlbihmdW5jdGlvbigpe3ZhciBpPWkyZSh0LmNoYW5uZWxOYW1lKSxyPXt0b2tlbjptcygpLHRpbWU6RGF0ZS5ub3coKSxkYXRhOmUsdXVpZDp0LnV1aWR9LHM9SlNPTi5zdHJpbmdpZnkocik7YTJlKCkuc2V0SXRlbShpLHMpO3ZhciBuPWRvY3VtZW50LmNyZWF0ZUV2ZW50KCJFdmVudCIpO24uaW5pdEV2ZW50KCJzdG9yYWdlIiwhMCwhMCksbi5rZXk9aSxuLm5ld1ZhbHVlPXMsd2luZG93LmRpc3BhdGNoRXZlbnQobiksYSgpfSl9KX1mdW5jdGlvbiBPJHQodCxlKXt2YXIgYT1pMmUodCksaT1mdW5jdGlvbihzKXtzLmtleT09PWEmJmUoSlNPTi5wYXJzZShzLm5ld1ZhbHVlKSl9O3JldHVybiB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigic3RvcmFnZSIsaSksaX1mdW5jdGlvbiBSJHQodCl7d2luZG93LnJlbW92ZUV2ZW50TGlzdGVuZXIoInN0b3JhZ2UiLHQpfWZ1bmN0aW9uIEIkdCh0LGUpe2lmKGU9bjAoZSksIXIyZSgpKXRocm93IG5ldyBFcnJvcigiQnJvYWRjYXN0Q2hhbm5lbDogbG9jYWxzdG9yYWdlIGNhbm5vdCBiZSB1c2VkIik7dmFyIGE9bXMoKSxpPW5ldyB6MyhlLmxvY2Fsc3RvcmFnZS5yZW1vdmVUaW1lb3V0KSxyPXtjaGFubmVsTmFtZTp0LHV1aWQ6YSxlTUlzOml9O3JldHVybiByLmxpc3RlbmVyPU8kdCh0LGZ1bmN0aW9uKHMpe3IubWVzc2FnZXNDYWxsYmFjayYmcy51dWlkIT09YSYmKCFzLnRva2VufHxpLmhhcyhzLnRva2VuKXx8cy5kYXRhLnRpbWUmJnMuZGF0YS50aW1lPHIubWVzc2FnZXNDYWxsYmFja1RpbWV8fChpLmFkZChzLnRva2VuKSxyLm1lc3NhZ2VzQ2FsbGJhY2socy5kYXRhKSkpfSkscn1mdW5jdGlvbiBIJHQodCl7UiR0KHQubGlzdGVuZXIpfWZ1bmN0aW9uIHEkdCh0LGUsYSl7dC5tZXNzYWdlc0NhbGxiYWNrVGltZT1hLHQubWVzc2FnZXNDYWxsYmFjaz1lfWZ1bmN0aW9uIHIyZSgpe3ZhciB0PWEyZSgpO2lmKCF0KXJldHVybiExO3RyeXt2YXIgZT0iX19icm9hZGNhc3RjaGFubmVsX2NoZWNrIjt0LnNldEl0ZW0oZSwid29ya3MiKSx0LnJlbW92ZUl0ZW0oZSl9Y2F0Y2h7cmV0dXJuITF9cmV0dXJuITB9ZnVuY3Rpb24gViR0KCl7dmFyIHQ9MTIwLGU9bmF2aWdhdG9yLnVzZXJBZ2VudC50b0xvd2VyQ2FzZSgpO3JldHVybiBlLmluY2x1ZGVzKCJzYWZhcmkiKSYmIWUuaW5jbHVkZXMoImNocm9tZSIpP3QqMjp0fXZhciBQJHQsSSR0LE4kdCxzMmUsbjJlPWIoKCk9Pnt6XygpO2E5KCk7RW4oKTtQJHQ9Z3MsSSR0PSJwdWJrZXkuYnJvYWRjYXN0Q2hhbm5lbC0iLE4kdD0ibG9jYWxzdG9yYWdlIjtzMmU9e2NyZWF0ZTpCJHQsY2xvc2U6SCR0LG9uTWVzc2FnZTpxJHQscG9zdE1lc3NhZ2U6RiR0LGNhbkJlVXNlZDpyMmUsdHlwZTpOJHQsYXZlcmFnZVJlc3BvbnNlVGltZTpWJHQsbWljcm9TZWNvbmRzOlAkdH19KTtmdW5jdGlvbiBVJHQodCl7dmFyIGU9e3RpbWU6bzJlKCksbmFtZTp0LG1lc3NhZ2VzQ2FsbGJhY2s6bnVsbH07cmV0dXJuIGtfLmFkZChlKSxlfWZ1bmN0aW9uIFckdCh0KXtrXy5kZWxldGUodCl9ZnVuY3Rpb24gRyR0KHQsZSl7cmV0dXJuIG5ldyBQcm9taXNlKGZ1bmN0aW9uKGEpe3JldHVybiBzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7dmFyIGk9QXJyYXkuZnJvbShrXyk7aS5mb3JFYWNoKGZ1bmN0aW9uKHIpe3IubmFtZT09PXQubmFtZSYmciE9PXQmJnIubWVzc2FnZXNDYWxsYmFjayYmci50aW1lPGUudGltZSYmci5tZXNzYWdlc0NhbGxiYWNrKGUpfSksYSgpfSxsMmUpfSl9ZnVuY3Rpb24gWSR0KHQsZSl7dC5tZXNzYWdlc0NhbGxiYWNrPWV9ZnVuY3Rpb24gWiR0KCl7cmV0dXJuITB9ZnVuY3Rpb24gWCR0KCl7cmV0dXJuIGwyZX12YXIgbzJlLGokdCxrXyxsMmUsYzJlLGQyZT1iKCgpPT57RW4oKTtvMmU9Z3MsaiR0PSJzaW11bGF0ZSIsa189bmV3IFNldDtsMmU9NTtjMmU9e2NyZWF0ZTpVJHQsY2xvc2U6VyR0LG9uTWVzc2FnZTpZJHQscG9zdE1lc3NhZ2U6RyR0LGNhbkJlVXNlZDpaJHQsdHlwZTpqJHQsYXZlcmFnZVJlc3BvbnNlVGltZTpYJHQsbWljcm9TZWNvbmRzOm8yZX19KTtmdW5jdGlvbiBTXyh0KXt2YXIgZT1bXS5jb25jYXQodC5tZXRob2RzLGgyZSkuZmlsdGVyKEJvb2xlYW4pO2lmKHQudHlwZSl7aWYodC50eXBlPT09InNpbXVsYXRlIilyZXR1cm4gYzJlO3ZhciBhPWUuZmluZChmdW5jdGlvbihyKXtyZXR1cm4gci50eXBlPT09dC50eXBlfSk7aWYoYSlyZXR1cm4gYTt0aHJvdyBuZXcgRXJyb3IoIm1ldGhvZC10eXBlICIrdC50eXBlKyIgbm90IGZvdW5kIil9dC53ZWJXb3JrZXJTdXBwb3J0fHwoZT1lLmZpbHRlcihmdW5jdGlvbihyKXtyZXR1cm4gci50eXBlIT09ImlkYiJ9KSk7dmFyIGk9ZS5maW5kKGZ1bmN0aW9uKHIpe3JldHVybiByLmNhbkJlVXNlZCgpfSk7aWYoaSlyZXR1cm4gaTt0aHJvdyBuZXcgRXJyb3IoIk5vIHVzYWJsZSBtZXRob2QgZm91bmQgaW4gIitKU09OLnN0cmluZ2lmeShoMmUubWFwKGZ1bmN0aW9uKHIpe3JldHVybiByLnR5cGV9KSkpfXZhciBoMmUscDJlPWIoKCk9PntYMWUoKTt0MmUoKTtuMmUoKTtkMmUoKTtoMmU9W1oxZSxlMmUsczJlXX0pO2Z1bmN0aW9uIFEkdCh0KXt0PW4wKHQpO3ZhciBlPVNfKHQpO3JldHVybiBlLnR5cGU9PT0ibm9kZSI/ZS5jbGVhck5vZGVGb2xkZXIoKS50aGVuKGZ1bmN0aW9uKCl7cmV0dXJuITB9KTpVMWV9ZnVuY3Rpb24gSiR0KHQpe0NfPXR9ZnVuY3Rpb24gdTJlKHQsZSxhKXt2YXIgaT10Lm1ldGhvZC5taWNyb1NlY29uZHMoKSxyPXt0aW1lOmksdHlwZTplLGRhdGE6YX0scz10Ll9wcmVwUD90Ll9wcmVwUDpSYTtyZXR1cm4gcy50aGVuKGZ1bmN0aW9uKCl7dmFyIG49dC5tZXRob2QucG9zdE1lc3NhZ2UodC5fc3RhdGUscik7cmV0dXJuIHQuX3VNUC5hZGQobiksbi5jYXRjaCgpLnRoZW4oZnVuY3Rpb24oKXtyZXR1cm4gdC5fdU1QLmRlbGV0ZShuKX0pLG59KX1mdW5jdGlvbiBlQXQodCl7dmFyIGU9dC5tZXRob2QuY3JlYXRlKHQubmFtZSx0Lm9wdGlvbnMpO2oxZShlKT8odC5fcHJlcFA9ZSxlLnRoZW4oZnVuY3Rpb24oYSl7dC5fc3RhdGU9YX0pKTp0Ll9zdGF0ZT1lfWZ1bmN0aW9uIGYyZSh0KXtyZXR1cm4gdC5fYWRkRUwubWVzc2FnZS5sZW5ndGg+MHx8dC5fYWRkRUwuaW50ZXJuYWwubGVuZ3RoPjB9ZnVuY3Rpb24gbTJlKHQsZSxhKXt0Ll9hZGRFTFtlXS5wdXNoKGEpLHRBdCh0KX1mdW5jdGlvbiBnMmUodCxlLGEpe3QuX2FkZEVMW2VdPXQuX2FkZEVMW2VdLmZpbHRlcihmdW5jdGlvbihpKXtyZXR1cm4gaSE9PWF9KSxhQXQodCl9ZnVuY3Rpb24gdEF0KHQpe2lmKCF0Ll9pTCYmZjJlKHQpKXt2YXIgZT1mdW5jdGlvbihyKXt0Ll9hZGRFTFtyLnR5cGVdLmZvckVhY2goZnVuY3Rpb24ocyl7ci50aW1lPj1zLnRpbWUmJnMuZm4oci5kYXRhKX0pfSxhPXQubWV0aG9kLm1pY3JvU2Vjb25kcygpO3QuX3ByZXBQP3QuX3ByZXBQLnRoZW4oZnVuY3Rpb24oKXt0Ll9pTD0hMCx0Lm1ldGhvZC5vbk1lc3NhZ2UodC5fc3RhdGUsZSxhKX0pOih0Ll9pTD0hMCx0Lm1ldGhvZC5vbk1lc3NhZ2UodC5fc3RhdGUsZSxhKSl9fWZ1bmN0aW9uIGFBdCh0KXtpZih0Ll9pTCYmIWYyZSh0KSl7dC5faUw9ITE7dmFyIGU9dC5tZXRob2QubWljcm9TZWNvbmRzKCk7dC5tZXRob2Qub25NZXNzYWdlKHQuX3N0YXRlLG51bGwsZSl9fXZhciBfXyxLJHQsbzAsQ18sYjJlPWIoKCk9PntFbigpO3AyZSgpO2E5KCk7X189bmV3IFNldCxLJHQ9MCxvMD1mdW5jdGlvbihlLGEpe3RoaXMuaWQ9SyR0KyssX18uYWRkKHRoaXMpLHRoaXMubmFtZT1lLENfJiYoYT1DXyksdGhpcy5vcHRpb25zPW4wKGEpLHRoaXMubWV0aG9kPVNfKHRoaXMub3B0aW9ucyksdGhpcy5faUw9ITEsdGhpcy5fb25NTD1udWxsLHRoaXMuX2FkZEVMPXttZXNzYWdlOltdLGludGVybmFsOltdfSx0aGlzLl91TVA9bmV3IFNldCx0aGlzLl9iZWZDPVtdLHRoaXMuX3ByZXBQPW51bGwsZUF0KHRoaXMpfTtvMC5fcHVia2V5PSEwO28wLnByb3RvdHlwZT17cG9zdE1lc3NhZ2U6ZnVuY3Rpb24oZSl7aWYodGhpcy5jbG9zZWQpdGhyb3cgbmV3IEVycm9yKCJCcm9hZGNhc3RDaGFubmVsLnBvc3RNZXNzYWdlKCk6IENhbm5vdCBwb3N0IG1lc3NhZ2UgYWZ0ZXIgY2hhbm5lbCBoYXMgY2xvc2VkICIrSlNPTi5zdHJpbmdpZnkoZSkpO3JldHVybiB1MmUodGhpcywibWVzc2FnZSIsZSl9LHBvc3RJbnRlcm5hbDpmdW5jdGlvbihlKXtyZXR1cm4gdTJlKHRoaXMsImludGVybmFsIixlKX0sc2V0IG9ubWVzc2FnZSh0KXt2YXIgZT10aGlzLm1ldGhvZC5taWNyb1NlY29uZHMoKSxhPXt0aW1lOmUsZm46dH07ZzJlKHRoaXMsIm1lc3NhZ2UiLHRoaXMuX29uTUwpLHQmJnR5cGVvZiB0PT0iZnVuY3Rpb24iPyh0aGlzLl9vbk1MPWEsbTJlKHRoaXMsIm1lc3NhZ2UiLGEpKTp0aGlzLl9vbk1MPW51bGx9LGFkZEV2ZW50TGlzdGVuZXI6ZnVuY3Rpb24oZSxhKXt2YXIgaT10aGlzLm1ldGhvZC5taWNyb1NlY29uZHMoKSxyPXt0aW1lOmksZm46YX07bTJlKHRoaXMsZSxyKX0scmVtb3ZlRXZlbnRMaXN0ZW5lcjpmdW5jdGlvbihlLGEpe3ZhciBpPXRoaXMuX2FkZEVMW2VdLmZpbmQoZnVuY3Rpb24ocil7cmV0dXJuIHIuZm49PT1hfSk7ZzJlKHRoaXMsZSxpKX0sY2xvc2U6ZnVuY3Rpb24oKXt2YXIgZT10aGlzO2lmKCF0aGlzLmNsb3NlZCl7X18uZGVsZXRlKHRoaXMpLHRoaXMuY2xvc2VkPSEwO3ZhciBhPXRoaXMuX3ByZXBQP3RoaXMuX3ByZXBQOlJhO3JldHVybiB0aGlzLl9vbk1MPW51bGwsdGhpcy5fYWRkRUwubWVzc2FnZT1bXSxhLnRoZW4oZnVuY3Rpb24oKXtyZXR1cm4gUHJvbWlzZS5hbGwoQXJyYXkuZnJvbShlLl91TVApKX0pLnRoZW4oZnVuY3Rpb24oKXtyZXR1cm4gUHJvbWlzZS5hbGwoZS5fYmVmQy5tYXAoZnVuY3Rpb24oaSl7cmV0dXJuIGkoKX0pKX0pLnRoZW4oZnVuY3Rpb24oKXtyZXR1cm4gZS5tZXRob2QuY2xvc2UoZS5fc3RhdGUpfSl9fSxnZXQgdHlwZSgpe3JldHVybiB0aGlzLm1ldGhvZC50eXBlfSxnZXQgaXNDbG9zZWQoKXtyZXR1cm4gdGhpcy5jbG9zZWR9fX0pO2Z1bmN0aW9uIHYyZSh0KXtpZih0eXBlb2YgV29ya2VyR2xvYmFsU2NvcGU9PSJmdW5jdGlvbiImJnNlbGYgaW5zdGFuY2VvZiBXb3JrZXJHbG9iYWxTY29wZSl7dmFyIGU9c2VsZi5jbG9zZS5iaW5kKHNlbGYpO3NlbGYuY2xvc2U9ZnVuY3Rpb24oKXtyZXR1cm4gdCgpLGUoKX19ZWxzZXtpZih0eXBlb2Ygd2luZG93LmFkZEV2ZW50TGlzdGVuZXIhPSJmdW5jdGlvbiIpcmV0dXJuO3dpbmRvdy5hZGRFdmVudExpc3RlbmVyKCJiZWZvcmV1bmxvYWQiLGZ1bmN0aW9uKCl7dCgpfSwhMCksd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoInVubG9hZCIsZnVuY3Rpb24oKXt0KCl9LCEwKX19dmFyIHkyZT1iKCgpPT57fSk7ZnVuY3Rpb24geDJlKHQpe3Byb2Nlc3Mub24oImV4aXQiLGZ1bmN0aW9uKCl7cmV0dXJuIHQoKX0pLHByb2Nlc3Mub24oImJlZm9yZUV4aXQiLGZ1bmN0aW9uKCl7cmV0dXJuIHQoKS50aGVuKGZ1bmN0aW9uKCl7cmV0dXJuIHByb2Nlc3MuZXhpdCgpfSl9KSxwcm9jZXNzLm9uKCJTSUdJTlQiLGZ1bmN0aW9uKCl7cmV0dXJuIHQoKS50aGVuKGZ1bmN0aW9uKCl7cmV0dXJuIHByb2Nlc3MuZXhpdCgpfSl9KSxwcm9jZXNzLm9uKCJ1bmNhdWdodEV4Y2VwdGlvbiIsZnVuY3Rpb24oZSl7cmV0dXJuIHQoKS50aGVuKGZ1bmN0aW9uKCl7Y29uc29sZS50cmFjZShlKSxwcm9jZXNzLmV4aXQoMTAxKX0pfSl9dmFyIHcyZT1iKCgpPT57fSk7ZnVuY3Rpb24gc0F0KCl7TTJlfHwoTTJlPSEwLHJBdChuQXQpKX1mdW5jdGlvbiB6MmUodCl7aWYoc0F0KCksdHlwZW9mIHQhPSJmdW5jdGlvbiIpdGhyb3cgbmV3IEVycm9yKCJMaXN0ZW5lciBpcyBubyBmdW5jdGlvbiIpO2wwLmFkZCh0KTt2YXIgZT17cmVtb3ZlOmZ1bmN0aW9uKCl7cmV0dXJuIGwwLmRlbGV0ZSh0KX0scnVuOmZ1bmN0aW9uKCl7cmV0dXJuIGwwLmRlbGV0ZSh0KSx0KCl9fTtyZXR1cm4gZX1mdW5jdGlvbiBuQXQoKXt2YXIgdD1bXTtyZXR1cm4gbDAuZm9yRWFjaChmdW5jdGlvbihlKXt0LnB1c2goZSgpKSxsMC5kZWxldGUoZSl9KSxQcm9taXNlLmFsbCh0KX1mdW5jdGlvbiBqQzEoKXtsMC5jbGVhcigpfWZ1bmN0aW9uIFVDMSgpe3JldHVybiBsMC5zaXplfXZhciBpQXQsckF0LGwwLE0yZSxrMmU9YigoKT0+e3kyZSgpO3cyZSgpO2lBdD1PYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwodHlwZW9mIHByb2Nlc3M8InUiP3Byb2Nlc3M6MCk9PT0iW29iamVjdCBwcm9jZXNzXSIsckF0PWlBdD94MmU6djJlLGwwPW5ldyBTZXQsTTJlPSExfSk7ZnVuY3Rpb24gYnModCxlKXt2YXIgYT17Y29udGV4dDoibGVhZGVyIixhY3Rpb246ZSx0b2tlbjp0LnRva2VufTtyZXR1cm4gdC5icm9hZGNhc3RDaGFubmVsLnBvc3RJbnRlcm5hbChhKX1mdW5jdGlvbiBDNih0KXt0LmlzTGVhZGVyPSEwLHQuX2hhc0xlYWRlcj0hMDt2YXIgZT16MmUoZnVuY3Rpb24oKXtyZXR1cm4gdC5kaWUoKX0pO3QuX3VubC5wdXNoKGUpO3ZhciBhPWZ1bmN0aW9uKHIpe3IuY29udGV4dD09PSJsZWFkZXIiJiZyLmFjdGlvbj09PSJhcHBseSImJmJzKHQsInRlbGwiKSxyLmNvbnRleHQ9PT0ibGVhZGVyIiYmci5hY3Rpb249PT0idGVsbCImJiF0Ll9kcExDJiYodC5fZHBMQz0hMCx0Ll9kcEwoKSxicyh0LCJ0ZWxsIikpfTtyZXR1cm4gdC5icm9hZGNhc3RDaGFubmVsLmFkZEV2ZW50TGlzdGVuZXIoImludGVybmFsIixhKSx0Ll9sc3Rucy5wdXNoKGEpLGJzKHQsInRlbGwiKX12YXIgcjk9YigoKT0+e2syZSgpfSk7dmFyIFRfLFMyZSxDMmU9YigoKT0+e0VuKCk7cjkoKTtUXz1mdW5jdGlvbihlLGEpe3ZhciBpPXRoaXM7dGhpcy5icm9hZGNhc3RDaGFubmVsPWUsZS5fYmVmQy5wdXNoKGZ1bmN0aW9uKCl7cmV0dXJuIGkuZGllKCl9KSx0aGlzLl9vcHRpb25zPWEsdGhpcy5pc0xlYWRlcj0hMSx0aGlzLmlzRGVhZD0hMSx0aGlzLnRva2VuPW1zKCksdGhpcy5fbHN0bnM9W10sdGhpcy5fdW5sPVtdLHRoaXMuX2RwTD1mdW5jdGlvbigpe30sdGhpcy5fZHBMQz0hMSx0aGlzLl93S01DPXt9LHRoaXMubE49InB1YmtleS1iY3x8IitlLm1ldGhvZC50eXBlKyJ8fCIrZS5uYW1lfSxTMmU9IkxlYWRlckVsZWN0aW9uV2ViTG9jay5kaWUoKSBjYWxsZWQiO1RfLnByb3RvdHlwZT17aGFzTGVhZGVyOmZ1bmN0aW9uKCl7dmFyIGU9dGhpcztyZXR1cm4gbmF2aWdhdG9yLmxvY2tzLnF1ZXJ5KCkudGhlbihmdW5jdGlvbihhKXt2YXIgaT1hLmhlbGQ/YS5oZWxkLmZpbHRlcihmdW5jdGlvbihyKXtyZXR1cm4gci5uYW1lPT09ZS5sTn0pOltdO3JldHVybiEhKGkmJmkubGVuZ3RoPjApfSl9LGF3YWl0TGVhZGVyc2hpcDpmdW5jdGlvbigpe3ZhciBlPXRoaXM7aWYoIXRoaXMuX3dMTVApe3RoaXMuX3dLTUMuYz1uZXcgQWJvcnRDb250cm9sbGVyO3ZhciBhPW5ldyBQcm9taXNlKGZ1bmN0aW9uKGkscil7ZS5fd0tNQy5yZXM9aSxlLl93S01DLnJlaj1yfSk7dGhpcy5fd0xNUD1uZXcgUHJvbWlzZShmdW5jdGlvbihpLHIpe25hdmlnYXRvci5sb2Nrcy5yZXF1ZXN0KGUubE4se3NpZ25hbDplLl93S01DLmMuc2lnbmFsfSxmdW5jdGlvbigpe3JldHVybiBlLl93S01DLmM9dm9pZCAwLEM2KGUpLGkoKSxhfSkuY2F0Y2goZnVuY3Rpb24ocyl7cy5tZXNzYWdlJiZzLm1lc3NhZ2U9PT1TMmV8fChlLl93S01DLnJlaiYmZS5fd0tNQy5yZWoocykscihzKSl9KX0pfXJldHVybiB0aGlzLl93TE1QfSxzZXQgb25kdXBsaWNhdGUodCl7fSxkaWU6ZnVuY3Rpb24oKXt2YXIgZT10aGlzO3JldHVybiB0aGlzLl9sc3Rucy5mb3JFYWNoKGZ1bmN0aW9uKGEpe3JldHVybiBlLmJyb2FkY2FzdENoYW5uZWwucmVtb3ZlRXZlbnRMaXN0ZW5lcigiaW50ZXJuYWwiLGEpfSksdGhpcy5fbHN0bnM9W10sdGhpcy5fdW5sLmZvckVhY2goZnVuY3Rpb24oYSl7cmV0dXJuIGEucmVtb3ZlKCl9KSx0aGlzLl91bmw9W10sdGhpcy5pc0xlYWRlciYmKHRoaXMuaXNMZWFkZXI9ITEpLHRoaXMuaXNEZWFkPSEwLHRoaXMuX3dLTUMucmVzJiZ0aGlzLl93S01DLnJlcygpLHRoaXMuX3dLTUMuYyYmdGhpcy5fd0tNQy5jLmFib3J0KG5ldyBFcnJvcihTMmUpKSxicyh0aGlzLCJkZWF0aCIpfX19KTtmdW5jdGlvbiBvQXQodCl7cmV0dXJuIHQuaXNMZWFkZXI/UmE6bmV3IFByb21pc2UoZnVuY3Rpb24oZSl7dmFyIGE9ITE7ZnVuY3Rpb24gaSgpe2F8fChhPSEwLHQuYnJvYWRjYXN0Q2hhbm5lbC5yZW1vdmVFdmVudExpc3RlbmVyKCJpbnRlcm5hbCIscyksZSghMCkpfXQuYXBwbHlPbmNlKCkudGhlbihmdW5jdGlvbigpe3QuaXNMZWFkZXImJmkoKX0pO3ZhciByPWZ1bmN0aW9uKCl7cmV0dXJuIF9yKHQuX29wdGlvbnMuZmFsbGJhY2tJbnRlcnZhbCkudGhlbihmdW5jdGlvbigpe2lmKCEodC5pc0RlYWR8fGEpKWlmKHQuaXNMZWFkZXIpaSgpO2Vsc2UgcmV0dXJuIHQuYXBwbHlPbmNlKCEwKS50aGVuKGZ1bmN0aW9uKCl7dC5pc0xlYWRlcj9pKCk6cigpfSl9KX07cigpO3ZhciBzPWZ1bmN0aW9uKG8pe28uY29udGV4dD09PSJsZWFkZXIiJiZvLmFjdGlvbj09PSJkZWF0aCImJih0Ll9oYXNMZWFkZXI9ITEsdC5hcHBseU9uY2UoKS50aGVuKGZ1bmN0aW9uKCl7dC5pc0xlYWRlciYmaSgpfSkpfTt0LmJyb2FkY2FzdENoYW5uZWwuYWRkRXZlbnRMaXN0ZW5lcigiaW50ZXJuYWwiLHMpLHQuX2xzdG5zLnB1c2gocyl9KX1mdW5jdGlvbiBsQXQodCxlKXtyZXR1cm4gdHx8KHQ9e30pLHQ9SlNPTi5wYXJzZShKU09OLnN0cmluZ2lmeSh0KSksdC5mYWxsYmFja0ludGVydmFsfHwodC5mYWxsYmFja0ludGVydmFsPTNlMyksdC5yZXNwb25zZVRpbWV8fCh0LnJlc3BvbnNlVGltZT1lLm1ldGhvZC5hdmVyYWdlUmVzcG9uc2VUaW1lKGUub3B0aW9ucykpLHR9ZnVuY3Rpb24gY0F0KHQsZSl7aWYodC5fbGVhZGVyRWxlY3Rvcil0aHJvdyBuZXcgRXJyb3IoIkJyb2FkY2FzdENoYW5uZWwgYWxyZWFkeSBoYXMgYSBsZWFkZXItZWxlY3RvciIpO2U9bEF0KGUsdCk7dmFyIGE9WTFlKCk/bmV3IFRfKHQsZSk6bmV3IF8yZSh0LGUpO3JldHVybiB0Ll9iZWZDLnB1c2goZnVuY3Rpb24oKXtyZXR1cm4gYS5kaWUoKX0pLHQuX2xlYWRlckVsZWN0b3I9YSxhfXZhciBfMmUsVDJlPWIoKCk9PntFbigpO3I5KCk7QzJlKCk7XzJlPWZ1bmN0aW9uKGUsYSl7dmFyIGk9dGhpczt0aGlzLmJyb2FkY2FzdENoYW5uZWw9ZSx0aGlzLl9vcHRpb25zPWEsdGhpcy5pc0xlYWRlcj0hMSx0aGlzLl9oYXNMZWFkZXI9ITEsdGhpcy5pc0RlYWQ9ITEsdGhpcy50b2tlbj1tcygpLHRoaXMuX2FwbFE9UmEsdGhpcy5fYXBsUUM9MCx0aGlzLl91bmw9W10sdGhpcy5fbHN0bnM9W10sdGhpcy5fZHBMPWZ1bmN0aW9uKCl7fSx0aGlzLl9kcExDPSExO3ZhciByPWZ1bmN0aW9uKG4pe24uY29udGV4dD09PSJsZWFkZXIiJiYobi5hY3Rpb249PT0iZGVhdGgiJiYoaS5faGFzTGVhZGVyPSExKSxuLmFjdGlvbj09PSJ0ZWxsIiYmKGkuX2hhc0xlYWRlcj0hMCkpfTt0aGlzLmJyb2FkY2FzdENoYW5uZWwuYWRkRXZlbnRMaXN0ZW5lcigiaW50ZXJuYWwiLHIpLHRoaXMuX2xzdG5zLnB1c2gocil9O18yZS5wcm90b3R5cGU9e2hhc0xlYWRlcjpmdW5jdGlvbigpe3JldHVybiBQcm9taXNlLnJlc29sdmUodGhpcy5faGFzTGVhZGVyKX0sYXBwbHlPbmNlOmZ1bmN0aW9uKGUpe3ZhciBhPXRoaXM7aWYodGhpcy5pc0xlYWRlcilyZXR1cm4gX3IoMCwhMCk7aWYodGhpcy5pc0RlYWQpcmV0dXJuIF9yKDAsITEpO2lmKHRoaXMuX2FwbFFDPjEpcmV0dXJuIHRoaXMuX2FwbFE7dmFyIGk9ZnVuY3Rpb24oKXtpZihhLmlzTGVhZGVyKXJldHVybiBXMWU7dmFyIHM9ITEsbixvPW5ldyBQcm9taXNlKGZ1bmN0aW9uKGgpe249ZnVuY3Rpb24oKXtzPSEwLGgoKX19KSxkPWZ1bmN0aW9uKGwpe2wuY29udGV4dD09PSJsZWFkZXIiJiZsLnRva2VuIT1hLnRva2VuJiYobC5hY3Rpb249PT0iYXBwbHkiJiZsLnRva2VuPmEudG9rZW4mJm4oKSxsLmFjdGlvbj09PSJ0ZWxsIiYmKG4oKSxhLl9oYXNMZWFkZXI9ITApKX07YS5icm9hZGNhc3RDaGFubmVsLmFkZEV2ZW50TGlzdGVuZXIoImludGVybmFsIixkKTt2YXIgYz1lP2EuX29wdGlvbnMucmVzcG9uc2VUaW1lKjQ6YS5fb3B0aW9ucy5yZXNwb25zZVRpbWU7cmV0dXJuIGJzKGEsImFwcGx5IikudGhlbihmdW5jdGlvbigpe3JldHVybiBQcm9taXNlLnJhY2UoW19yKGMpLG8udGhlbihmdW5jdGlvbigpe3JldHVybiBQcm9taXNlLnJlamVjdChuZXcgRXJyb3IpfSldKX0pLnRoZW4oZnVuY3Rpb24oKXtyZXR1cm4gYnMoYSwiYXBwbHkiKX0pLnRoZW4oZnVuY3Rpb24oKXtyZXR1cm4gUHJvbWlzZS5yYWNlKFtfcihjKSxvLnRoZW4oZnVuY3Rpb24oKXtyZXR1cm4gUHJvbWlzZS5yZWplY3QobmV3IEVycm9yKX0pXSl9KS5jYXRjaChmdW5jdGlvbigpe30pLnRoZW4oZnVuY3Rpb24oKXtyZXR1cm4gYS5icm9hZGNhc3RDaGFubmVsLnJlbW92ZUV2ZW50TGlzdGVuZXIoImludGVybmFsIixkKSxzPyExOkM2KGEpLnRoZW4oZnVuY3Rpb24oKXtyZXR1cm4hMH0pfSl9O3JldHVybiB0aGlzLl9hcGxRQz10aGlzLl9hcGxRQysxLHRoaXMuX2FwbFE9dGhpcy5fYXBsUS50aGVuKGZ1bmN0aW9uKCl7cmV0dXJuIGkoKX0pLnRoZW4oZnVuY3Rpb24oKXthLl9hcGxRQz1hLl9hcGxRQy0xfSksdGhpcy5fYXBsUS50aGVuKGZ1bmN0aW9uKCl7cmV0dXJuIGEuaXNMZWFkZXJ9KX0sYXdhaXRMZWFkZXJzaGlwOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX2FMUHx8KHRoaXMuX2FMUD1vQXQodGhpcykpLHRoaXMuX2FMUH0sc2V0IG9uZHVwbGljYXRlKHQpe3RoaXMuX2RwTD10fSxkaWU6ZnVuY3Rpb24oKXt2YXIgZT10aGlzO3JldHVybiB0aGlzLl9sc3Rucy5mb3JFYWNoKGZ1bmN0aW9uKGEpe3JldHVybiBlLmJyb2FkY2FzdENoYW5uZWwucmVtb3ZlRXZlbnRMaXN0ZW5lcigiaW50ZXJuYWwiLGEpfSksdGhpcy5fbHN0bnM9W10sdGhpcy5fdW5sLmZvckVhY2goZnVuY3Rpb24oYSl7cmV0dXJuIGEucmVtb3ZlKCl9KSx0aGlzLl91bmw9W10sdGhpcy5pc0xlYWRlciYmKHRoaXMuX2hhc0xlYWRlcj0hMSx0aGlzLmlzTGVhZGVyPSExKSx0aGlzLmlzRGVhZD0hMCxicyh0aGlzLCJkZWF0aCIpfX19KTt2YXIgTDJlPWIoKCk9PntiMmUoKTtUMmUoKTtyOSgpfSk7dmFyICQyZT1iKCgpPT57dXIoKTtDYygpO2s2KCk7TDJlKCl9KTt2YXIgTF8sJF8sQTJlPWIoKCk9PnskMmUoKTtMXz1nbG9iYWxUaGlzLkJyb2FkY2FzdENoYW5uZWw7TF98fChMXz1vMCk7JF89Y2xhc3N7Y29uc3RydWN0b3IoKXt0aGlzLmJyb2FkY2FzdENoYW5uZWw9bmV3IExfKCJkZWVzLWNvbW1zIiksdGhpcy50eXBlZHJvdXRlcj1uZXcgbGEuVHlwZWRSb3V0ZXIsdGhpcy50eXBlZHRhcmdldD1uZXcgbGEuVHlwZWRUYXJnZXQoe3Bvc3RNZXRob2RXaXRoVHlwZWRSb3V0ZXI6YXN5bmMgZT0+e3RoaXMucG9zdE1lc3NhZ2UoZSl9LHR5cGVkUm91dGVyUmVmOnRoaXMudHlwZWRyb3V0ZXJ9KSx0aGlzLmJyb2FkY2FzdENoYW5uZWwub25tZXNzYWdlPWFzeW5jIGU9PntsZXQgYT1lLm1ldGhvZD9lOmUuZGF0YTtjb25zb2xlLmxvZyhKU09OLnN0cmluZ2lmeShhKSk7bGV0IGk9YXdhaXQgdGhpcy50eXBlZHJvdXRlci5yb3V0ZUFuZEFkZFJlc3BvbnNlKGEse3NraXBIb29rczohMH0pO2kmJiFpLmVycm9yJiZ0aGlzLnBvc3RNZXNzYWdlKGkpfX1jcmVhdGVUeXBlZFJlcXVlc3QoZSl7cmV0dXJuIG5ldyBsYS5UeXBlZFJlcXVlc3QodGhpcy50eXBlZHRhcmdldCxlKX1hc3luYyBwb3N0TWVzc2FnZShlKXt0aGlzLmJyb2FkY2FzdENoYW5uZWwucG9zdE1lc3NhZ2UoZSl9YXN5bmMgY3JlYXRlVHlwZWRIYW5kbGVyKGUsYSl7dGhpcy50eXBlZHJvdXRlci5hZGRUeXBlZEhhbmRsZXIobmV3IGxhLlR5cGVkSGFuZGxlcihlLGEpKX19fSk7dmFyIF82PXt9O0dlKF82LHtEZWVzQ29tbXM6KCk9PiRffSk7dmFyIEQyZT1iKCgpPT57QTJlKCl9KTt2YXIgZDA9aHQoKGNfMSxjMCk9PnsidXNlIHN0cmljdCI7ZnVuY3Rpb24gRTJlKHQpe3JldHVybiB0eXBlb2YgdD4idSJ8fHQ9PT1udWxsfWZ1bmN0aW9uIGhBdCh0KXtyZXR1cm4gdHlwZW9mIHQ9PSJvYmplY3QiJiZ0IT09bnVsbH1mdW5jdGlvbiBwQXQodCl7cmV0dXJuIEFycmF5LmlzQXJyYXkodCk/dDpFMmUodCk/W106W3RdfWZ1bmN0aW9uIHVBdCh0LGUpe3ZhciBhLGkscixzO2lmKGUpZm9yKHM9T2JqZWN0LmtleXMoZSksYT0wLGk9cy5sZW5ndGg7YTxpO2ErPTEpcj1zW2FdLHRbcl09ZVtyXTtyZXR1cm4gdH1mdW5jdGlvbiBmQXQodCxlKXt2YXIgYT0iIixpO2ZvcihpPTA7aTxlO2krPTEpYSs9dDtyZXR1cm4gYX1mdW5jdGlvbiBtQXQodCl7cmV0dXJuIHQ9PT0wJiZOdW1iZXIuTkVHQVRJVkVfSU5GSU5JVFk9PT0xL3R9YzAuZXhwb3J0cy5pc05vdGhpbmc9RTJlLGMwLmV4cG9ydHMuaXNPYmplY3Q9aEF0LGMwLmV4cG9ydHMudG9BcnJheT1wQXQsYzAuZXhwb3J0cy5yZXBlYXQ9ZkF0LGMwLmV4cG9ydHMuaXNOZWdhdGl2ZVplcm89bUF0LGMwLmV4cG9ydHMuZXh0ZW5kPXVBdH0pO3ZhciBrMz1odCgoZF8xLFAyZSk9PnsidXNlIHN0cmljdCI7ZnVuY3Rpb24gVDYodCxlKXtFcnJvci5jYWxsKHRoaXMpLHRoaXMubmFtZT0iWUFNTEV4Y2VwdGlvbiIsdGhpcy5yZWFzb249dCx0aGlzLm1hcms9ZSx0aGlzLm1lc3NhZ2U9KHRoaXMucmVhc29ufHwiKHVua25vd24gcmVhc29uKSIpKyh0aGlzLm1hcms/IiAiK3RoaXMubWFyay50b1N0cmluZygpOiIiKSxFcnJvci5jYXB0dXJlU3RhY2tUcmFjZT9FcnJvci5jYXB0dXJlU3RhY2tUcmFjZSh0aGlzLHRoaXMuY29uc3RydWN0b3IpOnRoaXMuc3RhY2s9bmV3IEVycm9yKCkuc3RhY2t8fCIifVQ2LnByb3RvdHlwZT1PYmplY3QuY3JlYXRlKEVycm9yLnByb3RvdHlwZSksVDYucHJvdG90eXBlLmNvbnN0cnVjdG9yPVQ2LFQ2LnByb3RvdHlwZS50b1N0cmluZz1mdW5jdGlvbihlKXt2YXIgYT10aGlzLm5hbWUrIjogIjtyZXR1cm4gYSs9dGhpcy5yZWFzb258fCIodW5rbm93biByZWFzb24pIiwhZSYmdGhpcy5tYXJrJiYoYSs9IiAiK3RoaXMubWFyay50b1N0cmluZygpKSxhfSxQMmUuZXhwb3J0cz1UNn0pO3ZhciBGMmU9aHQoKGhfMSxOMmUpPT57InVzZSBzdHJpY3QiO3ZhciBJMmU9ZDAoKTtmdW5jdGlvbiBBXyh0LGUsYSxpLHIpe3RoaXMubmFtZT10LHRoaXMuYnVmZmVyPWUsdGhpcy5wb3NpdGlvbj1hLHRoaXMubGluZT1pLHRoaXMuY29sdW1uPXJ9QV8ucHJvdG90eXBlLmdldFNuaXBwZXQ9ZnVuY3Rpb24oZSxhKXt2YXIgaSxyLHMsbixvO2lmKCF0aGlzLmJ1ZmZlcilyZXR1cm4gbnVsbDtmb3IoZT1lfHw0LGE9YXx8NzUsaT0iIixyPXRoaXMucG9zaXRpb247cj4wJiZgXDBccgpceDg1XHUyMDI4XHUyMDI5YC5pbmRleE9mKHRoaXMuYnVmZmVyLmNoYXJBdChyLTEpKT09PS0xOylpZihyLT0xLHRoaXMucG9zaXRpb24tcj5hLzItMSl7aT0iIC4uLiAiLHIrPTU7YnJlYWt9Zm9yKHM9IiIsbj10aGlzLnBvc2l0aW9uO248dGhpcy5idWZmZXIubGVuZ3RoJiZgXDBccgpceDg1XHUyMDI4XHUyMDI5YC5pbmRleE9mKHRoaXMuYnVmZmVyLmNoYXJBdChuKSk9PT0tMTspaWYobis9MSxuLXRoaXMucG9zaXRpb24+YS8yLTEpe3M9IiAuLi4gIixuLT01O2JyZWFrfXJldHVybiBvPXRoaXMuYnVmZmVyLnNsaWNlKHIsbiksSTJlLnJlcGVhdCgiICIsZSkraStvK3MrYApgK0kyZS5yZXBlYXQoIiAiLGUrdGhpcy5wb3NpdGlvbi1yK2kubGVuZ3RoKSsiXiJ9LEFfLnByb3RvdHlwZS50b1N0cmluZz1mdW5jdGlvbihlKXt2YXIgYSxpPSIiO3JldHVybiB0aGlzLm5hbWUmJihpKz0naW4gIicrdGhpcy5uYW1lKyciICcpLGkrPSJhdCBsaW5lICIrKHRoaXMubGluZSsxKSsiLCBjb2x1bW4gIisodGhpcy5jb2x1bW4rMSksZXx8KGE9dGhpcy5nZXRTbmlwcGV0KCksYSYmKGkrPWA6CmArYSkpLGl9LE4yZS5leHBvcnRzPUFffSk7dmFyIGEyPWh0KChwXzEsUjJlKT0+eyJ1c2Ugc3RyaWN0Ijt2YXIgTzJlPWszKCksZ0F0PVsia2luZCIsInJlc29sdmUiLCJjb25zdHJ1Y3QiLCJpbnN0YW5jZU9mIiwicHJlZGljYXRlIiwicmVwcmVzZW50IiwiZGVmYXVsdFN0eWxlIiwic3R5bGVBbGlhc2VzIl0sYkF0PVsic2NhbGFyIiwic2VxdWVuY2UiLCJtYXBwaW5nIl07ZnVuY3Rpb24gdkF0KHQpe3ZhciBlPXt9O3JldHVybiB0IT09bnVsbCYmT2JqZWN0LmtleXModCkuZm9yRWFjaChmdW5jdGlvbihhKXt0W2FdLmZvckVhY2goZnVuY3Rpb24oaSl7ZVtTdHJpbmcoaSldPWF9KX0pLGV9ZnVuY3Rpb24geUF0KHQsZSl7aWYoZT1lfHx7fSxPYmplY3Qua2V5cyhlKS5mb3JFYWNoKGZ1bmN0aW9uKGEpe2lmKGdBdC5pbmRleE9mKGEpPT09LTEpdGhyb3cgbmV3IE8yZSgnVW5rbm93biBvcHRpb24gIicrYSsnIiBpcyBtZXQgaW4gZGVmaW5pdGlvbiBvZiAiJyt0KyciIFlBTUwgdHlwZS4nKX0pLHRoaXMudGFnPXQsdGhpcy5raW5kPWUua2luZHx8bnVsbCx0aGlzLnJlc29sdmU9ZS5yZXNvbHZlfHxmdW5jdGlvbigpe3JldHVybiEwfSx0aGlzLmNvbnN0cnVjdD1lLmNvbnN0cnVjdHx8ZnVuY3Rpb24oYSl7cmV0dXJuIGF9LHRoaXMuaW5zdGFuY2VPZj1lLmluc3RhbmNlT2Z8fG51bGwsdGhpcy5wcmVkaWNhdGU9ZS5wcmVkaWNhdGV8fG51bGwsdGhpcy5yZXByZXNlbnQ9ZS5yZXByZXNlbnR8fG51bGwsdGhpcy5kZWZhdWx0U3R5bGU9ZS5kZWZhdWx0U3R5bGV8fG51bGwsdGhpcy5zdHlsZUFsaWFzZXM9dkF0KGUuc3R5bGVBbGlhc2VzfHxudWxsKSxiQXQuaW5kZXhPZih0aGlzLmtpbmQpPT09LTEpdGhyb3cgbmV3IE8yZSgnVW5rbm93biBraW5kICInK3RoaXMua2luZCsnIiBpcyBzcGVjaWZpZWQgZm9yICInK3QrJyIgWUFNTCB0eXBlLicpfVIyZS5leHBvcnRzPXlBdH0pO3ZhciBoMD1odCgodV8xLEgyZSk9PnsidXNlIHN0cmljdCI7dmFyIEIyZT1kMCgpLHM5PWszKCkseEF0PWEyKCk7ZnVuY3Rpb24gRF8odCxlLGEpe3ZhciBpPVtdO3JldHVybiB0LmluY2x1ZGUuZm9yRWFjaChmdW5jdGlvbihyKXthPURfKHIsZSxhKX0pLHRbZV0uZm9yRWFjaChmdW5jdGlvbihyKXthLmZvckVhY2goZnVuY3Rpb24ocyxuKXtzLnRhZz09PXIudGFnJiZzLmtpbmQ9PT1yLmtpbmQmJmkucHVzaChuKX0pLGEucHVzaChyKX0pLGEuZmlsdGVyKGZ1bmN0aW9uKHIscyl7cmV0dXJuIGkuaW5kZXhPZihzKT09PS0xfSl9ZnVuY3Rpb24gd0F0KCl7dmFyIHQ9e3NjYWxhcjp7fSxzZXF1ZW5jZTp7fSxtYXBwaW5nOnt9LGZhbGxiYWNrOnt9fSxlLGE7ZnVuY3Rpb24gaShyKXt0W3Iua2luZF1bci50YWddPXQuZmFsbGJhY2tbci50YWddPXJ9Zm9yKGU9MCxhPWFyZ3VtZW50cy5sZW5ndGg7ZTxhO2UrPTEpYXJndW1lbnRzW2VdLmZvckVhY2goaSk7cmV0dXJuIHR9ZnVuY3Rpb24gUzModCl7dGhpcy5pbmNsdWRlPXQuaW5jbHVkZXx8W10sdGhpcy5pbXBsaWNpdD10LmltcGxpY2l0fHxbXSx0aGlzLmV4cGxpY2l0PXQuZXhwbGljaXR8fFtdLHRoaXMuaW1wbGljaXQuZm9yRWFjaChmdW5jdGlvbihlKXtpZihlLmxvYWRLaW5kJiZlLmxvYWRLaW5kIT09InNjYWxhciIpdGhyb3cgbmV3IHM5KCJUaGVyZSBpcyBhIG5vbi1zY2FsYXIgdHlwZSBpbiB0aGUgaW1wbGljaXQgbGlzdCBvZiBhIHNjaGVtYS4gSW1wbGljaXQgcmVzb2x2aW5nIG9mIHN1Y2ggdHlwZXMgaXMgbm90IHN1cHBvcnRlZC4iKX0pLHRoaXMuY29tcGlsZWRJbXBsaWNpdD1EXyh0aGlzLCJpbXBsaWNpdCIsW10pLHRoaXMuY29tcGlsZWRFeHBsaWNpdD1EXyh0aGlzLCJleHBsaWNpdCIsW10pLHRoaXMuY29tcGlsZWRUeXBlTWFwPXdBdCh0aGlzLmNvbXBpbGVkSW1wbGljaXQsdGhpcy5jb21waWxlZEV4cGxpY2l0KX1TMy5ERUZBVUxUPW51bGwsUzMuY3JlYXRlPWZ1bmN0aW9uKCl7dmFyIGUsYTtzd2l0Y2goYXJndW1lbnRzLmxlbmd0aCl7Y2FzZSAxOmU9UzMuREVGQVVMVCxhPWFyZ3VtZW50c1swXTticmVhaztjYXNlIDI6ZT1hcmd1bWVudHNbMF0sYT1hcmd1bWVudHNbMV07YnJlYWs7ZGVmYXVsdDp0aHJvdyBuZXcgczkoIldyb25nIG51bWJlciBvZiBhcmd1bWVudHMgZm9yIFNjaGVtYS5jcmVhdGUgZnVuY3Rpb24iKX1pZihlPUIyZS50b0FycmF5KGUpLGE9QjJlLnRvQXJyYXkoYSksIWUuZXZlcnkoZnVuY3Rpb24oaSl7cmV0dXJuIGkgaW5zdGFuY2VvZiBTM30pKXRocm93IG5ldyBzOSgiU3BlY2lmaWVkIGxpc3Qgb2Ygc3VwZXIgc2NoZW1hcyAob3IgYSBzaW5nbGUgU2NoZW1hIG9iamVjdCkgY29udGFpbnMgYSBub24tU2NoZW1hIG9iamVjdC4iKTtpZighYS5ldmVyeShmdW5jdGlvbihpKXtyZXR1cm4gaSBpbnN0YW5jZW9mIHhBdH0pKXRocm93IG5ldyBzOSgiU3BlY2lmaWVkIGxpc3Qgb2YgWUFNTCB0eXBlcyAob3IgYSBzaW5nbGUgVHlwZSBvYmplY3QpIGNvbnRhaW5zIGEgbm9uLVR5cGUgb2JqZWN0LiIpO3JldHVybiBuZXcgUzMoe2luY2x1ZGU6ZSxleHBsaWNpdDphfSl9LEgyZS5leHBvcnRzPVMzfSk7dmFyIFYyZT1odCgoZl8xLHEyZSk9PnsidXNlIHN0cmljdCI7dmFyIE1BdD1hMigpO3EyZS5leHBvcnRzPW5ldyBNQXQoInRhZzp5YW1sLm9yZywyMDAyOnN0ciIse2tpbmQ6InNjYWxhciIsY29uc3RydWN0OmZ1bmN0aW9uKHQpe3JldHVybiB0IT09bnVsbD90OiIifX0pfSk7dmFyIFUyZT1odCgobV8xLGoyZSk9PnsidXNlIHN0cmljdCI7dmFyIHpBdD1hMigpO2oyZS5leHBvcnRzPW5ldyB6QXQoInRhZzp5YW1sLm9yZywyMDAyOnNlcSIse2tpbmQ6InNlcXVlbmNlIixjb25zdHJ1Y3Q6ZnVuY3Rpb24odCl7cmV0dXJuIHQhPT1udWxsP3Q6W119fSl9KTt2YXIgRzJlPWh0KChnXzEsVzJlKT0+eyJ1c2Ugc3RyaWN0Ijt2YXIga0F0PWEyKCk7VzJlLmV4cG9ydHM9bmV3IGtBdCgidGFnOnlhbWwub3JnLDIwMDI6bWFwIix7a2luZDoibWFwcGluZyIsY29uc3RydWN0OmZ1bmN0aW9uKHQpe3JldHVybiB0IT09bnVsbD90Ont9fX0pfSk7dmFyIG45PWh0KChiXzEsWTJlKT0+eyJ1c2Ugc3RyaWN0Ijt2YXIgU0F0PWgwKCk7WTJlLmV4cG9ydHM9bmV3IFNBdCh7ZXhwbGljaXQ6W1YyZSgpLFUyZSgpLEcyZSgpXX0pfSk7dmFyIFgyZT1odCgodl8xLFoyZSk9PnsidXNlIHN0cmljdCI7dmFyIENBdD1hMigpO2Z1bmN0aW9uIF9BdCh0KXtpZih0PT09bnVsbClyZXR1cm4hMDt2YXIgZT10Lmxlbmd0aDtyZXR1cm4gZT09PTEmJnQ9PT0ifiJ8fGU9PT00JiYodD09PSJudWxsInx8dD09PSJOdWxsInx8dD09PSJOVUxMIil9ZnVuY3Rpb24gVEF0KCl7cmV0dXJuIG51bGx9ZnVuY3Rpb24gTEF0KHQpe3JldHVybiB0PT09bnVsbH1aMmUuZXhwb3J0cz1uZXcgQ0F0KCJ0YWc6eWFtbC5vcmcsMjAwMjpudWxsIix7a2luZDoic2NhbGFyIixyZXNvbHZlOl9BdCxjb25zdHJ1Y3Q6VEF0LHByZWRpY2F0ZTpMQXQscmVwcmVzZW50OntjYW5vbmljYWw6ZnVuY3Rpb24oKXtyZXR1cm4ifiJ9LGxvd2VyY2FzZTpmdW5jdGlvbigpe3JldHVybiJudWxsIn0sdXBwZXJjYXNlOmZ1bmN0aW9uKCl7cmV0dXJuIk5VTEwifSxjYW1lbGNhc2U6ZnVuY3Rpb24oKXtyZXR1cm4iTnVsbCJ9fSxkZWZhdWx0U3R5bGU6Imxvd2VyY2FzZSJ9KX0pO3ZhciBRMmU9aHQoKHlfMSxLMmUpPT57InVzZSBzdHJpY3QiO3ZhciAkQXQ9YTIoKTtmdW5jdGlvbiBBQXQodCl7aWYodD09PW51bGwpcmV0dXJuITE7dmFyIGU9dC5sZW5ndGg7cmV0dXJuIGU9PT00JiYodD09PSJ0cnVlInx8dD09PSJUcnVlInx8dD09PSJUUlVFIil8fGU9PT01JiYodD09PSJmYWxzZSJ8fHQ9PT0iRmFsc2UifHx0PT09IkZBTFNFIil9ZnVuY3Rpb24gREF0KHQpe3JldHVybiB0PT09InRydWUifHx0PT09IlRydWUifHx0PT09IlRSVUUifWZ1bmN0aW9uIEVBdCh0KXtyZXR1cm4gT2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKHQpPT09IltvYmplY3QgQm9vbGVhbl0ifUsyZS5leHBvcnRzPW5ldyAkQXQoInRhZzp5YW1sLm9yZywyMDAyOmJvb2wiLHtraW5kOiJzY2FsYXIiLHJlc29sdmU6QUF0LGNvbnN0cnVjdDpEQXQscHJlZGljYXRlOkVBdCxyZXByZXNlbnQ6e2xvd2VyY2FzZTpmdW5jdGlvbih0KXtyZXR1cm4gdD8idHJ1ZSI6ImZhbHNlIn0sdXBwZXJjYXNlOmZ1bmN0aW9uKHQpe3JldHVybiB0PyJUUlVFIjoiRkFMU0UifSxjYW1lbGNhc2U6ZnVuY3Rpb24odCl7cmV0dXJuIHQ/IlRydWUiOiJGYWxzZSJ9fSxkZWZhdWx0U3R5bGU6Imxvd2VyY2FzZSJ9KX0pO3ZhciBlYWU9aHQoKHhfMSxKMmUpPT57InVzZSBzdHJpY3QiO3ZhciBQQXQ9ZDAoKSxJQXQ9YTIoKTtmdW5jdGlvbiBOQXQodCl7cmV0dXJuIDQ4PD10JiZ0PD01N3x8NjU8PXQmJnQ8PTcwfHw5Nzw9dCYmdDw9MTAyfWZ1bmN0aW9uIEZBdCh0KXtyZXR1cm4gNDg8PXQmJnQ8PTU1fWZ1bmN0aW9uIE9BdCh0KXtyZXR1cm4gNDg8PXQmJnQ8PTU3fWZ1bmN0aW9uIFJBdCh0KXtpZih0PT09bnVsbClyZXR1cm4hMTt2YXIgZT10Lmxlbmd0aCxhPTAsaT0hMSxyO2lmKCFlKXJldHVybiExO2lmKHI9dFthXSwocj09PSItInx8cj09PSIrIikmJihyPXRbKythXSkscj09PSIwIil7aWYoYSsxPT09ZSlyZXR1cm4hMDtpZihyPXRbKythXSxyPT09ImIiKXtmb3IoYSsrO2E8ZTthKyspaWYocj10W2FdLHIhPT0iXyIpe2lmKHIhPT0iMCImJnIhPT0iMSIpcmV0dXJuITE7aT0hMH1yZXR1cm4gaSYmciE9PSJfIn1pZihyPT09IngiKXtmb3IoYSsrO2E8ZTthKyspaWYocj10W2FdLHIhPT0iXyIpe2lmKCFOQXQodC5jaGFyQ29kZUF0KGEpKSlyZXR1cm4hMTtpPSEwfXJldHVybiBpJiZyIT09Il8ifWZvcig7YTxlO2ErKylpZihyPXRbYV0sciE9PSJfIil7aWYoIUZBdCh0LmNoYXJDb2RlQXQoYSkpKXJldHVybiExO2k9ITB9cmV0dXJuIGkmJnIhPT0iXyJ9aWYocj09PSJfIilyZXR1cm4hMTtmb3IoO2E8ZTthKyspaWYocj10W2FdLHIhPT0iXyIpe2lmKHI9PT0iOiIpYnJlYWs7aWYoIU9BdCh0LmNoYXJDb2RlQXQoYSkpKXJldHVybiExO2k9ITB9cmV0dXJuIWl8fHI9PT0iXyI/ITE6ciE9PSI6Ij8hMDovXig6WzAtNV0/WzAtOV0pKyQvLnRlc3QodC5zbGljZShhKSl9ZnVuY3Rpb24gQkF0KHQpe3ZhciBlPXQsYT0xLGkscixzPVtdO3JldHVybiBlLmluZGV4T2YoIl8iKSE9PS0xJiYoZT1lLnJlcGxhY2UoL18vZywiIikpLGk9ZVswXSwoaT09PSItInx8aT09PSIrIikmJihpPT09Ii0iJiYoYT0tMSksZT1lLnNsaWNlKDEpLGk9ZVswXSksZT09PSIwIj8wOmk9PT0iMCI/ZVsxXT09PSJiIj9hKnBhcnNlSW50KGUuc2xpY2UoMiksMik6ZVsxXT09PSJ4Ij9hKnBhcnNlSW50KGUsMTYpOmEqcGFyc2VJbnQoZSw4KTplLmluZGV4T2YoIjoiKSE9PS0xPyhlLnNwbGl0KCI6IikuZm9yRWFjaChmdW5jdGlvbihuKXtzLnVuc2hpZnQocGFyc2VJbnQobiwxMCkpfSksZT0wLHI9MSxzLmZvckVhY2goZnVuY3Rpb24obil7ZSs9bipyLHIqPTYwfSksYSplKTphKnBhcnNlSW50KGUsMTApfWZ1bmN0aW9uIEhBdCh0KXtyZXR1cm4gT2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKHQpPT09IltvYmplY3QgTnVtYmVyXSImJnQlMT09PTAmJiFQQXQuaXNOZWdhdGl2ZVplcm8odCl9SjJlLmV4cG9ydHM9bmV3IElBdCgidGFnOnlhbWwub3JnLDIwMDI6aW50Iix7a2luZDoic2NhbGFyIixyZXNvbHZlOlJBdCxjb25zdHJ1Y3Q6QkF0LHByZWRpY2F0ZTpIQXQscmVwcmVzZW50OntiaW5hcnk6ZnVuY3Rpb24odCl7cmV0dXJuIHQ+PTA/IjBiIit0LnRvU3RyaW5nKDIpOiItMGIiK3QudG9TdHJpbmcoMikuc2xpY2UoMSl9LG9jdGFsOmZ1bmN0aW9uKHQpe3JldHVybiB0Pj0wPyIwIit0LnRvU3RyaW5nKDgpOiItMCIrdC50b1N0cmluZyg4KS5zbGljZSgxKX0sZGVjaW1hbDpmdW5jdGlvbih0KXtyZXR1cm4gdC50b1N0cmluZygxMCl9LGhleGFkZWNpbWFsOmZ1bmN0aW9uKHQpe3JldHVybiB0Pj0wPyIweCIrdC50b1N0cmluZygxNikudG9VcHBlckNhc2UoKToiLTB4Iit0LnRvU3RyaW5nKDE2KS50b1VwcGVyQ2FzZSgpLnNsaWNlKDEpfX0sZGVmYXVsdFN0eWxlOiJkZWNpbWFsIixzdHlsZUFsaWFzZXM6e2JpbmFyeTpbMiwiYmluIl0sb2N0YWw6WzgsIm9jdCJdLGRlY2ltYWw6WzEwLCJkZWMiXSxoZXhhZGVjaW1hbDpbMTYsImhleCJdfX0pfSk7dmFyIGlhZT1odCgod18xLGFhZSk9PnsidXNlIHN0cmljdCI7dmFyIHRhZT1kMCgpLHFBdD1hMigpLFZBdD1uZXcgUmVnRXhwKCJeKD86Wy0rXT8oPzowfFsxLTldWzAtOV9dKikoPzpcXC5bMC05X10qKT8oPzpbZUVdWy0rXT9bMC05XSspP3xcXC5bMC05X10rKD86W2VFXVstK10/WzAtOV0rKT98Wy0rXT9bMC05XVswLTlfXSooPzo6WzAtNV0/WzAtOV0pK1xcLlswLTlfXSp8Wy0rXT9cXC4oPzppbmZ8SW5mfElORil8XFwuKD86bmFufE5hTnxOQU4pKSQiKTtmdW5jdGlvbiBqQXQodCl7cmV0dXJuISh0PT09bnVsbHx8IVZBdC50ZXN0KHQpfHx0W3QubGVuZ3RoLTFdPT09Il8iKX1mdW5jdGlvbiBVQXQodCl7dmFyIGUsYSxpLHI7cmV0dXJuIGU9dC5yZXBsYWNlKC9fL2csIiIpLnRvTG93ZXJDYXNlKCksYT1lWzBdPT09Ii0iPy0xOjEscj1bXSwiKy0iLmluZGV4T2YoZVswXSk+PTAmJihlPWUuc2xpY2UoMSkpLGU9PT0iLmluZiI/YT09PTE/TnVtYmVyLlBPU0lUSVZFX0lORklOSVRZOk51bWJlci5ORUdBVElWRV9JTkZJTklUWTplPT09Ii5uYW4iP05hTjplLmluZGV4T2YoIjoiKT49MD8oZS5zcGxpdCgiOiIpLmZvckVhY2goZnVuY3Rpb24ocyl7ci51bnNoaWZ0KHBhcnNlRmxvYXQocywxMCkpfSksZT0wLGk9MSxyLmZvckVhY2goZnVuY3Rpb24ocyl7ZSs9cyppLGkqPTYwfSksYSplKTphKnBhcnNlRmxvYXQoZSwxMCl9dmFyIFdBdD0vXlstK10/WzAtOV0rZS87ZnVuY3Rpb24gR0F0KHQsZSl7dmFyIGE7aWYoaXNOYU4odCkpc3dpdGNoKGUpe2Nhc2UibG93ZXJjYXNlIjpyZXR1cm4iLm5hbiI7Y2FzZSJ1cHBlcmNhc2UiOnJldHVybiIuTkFOIjtjYXNlImNhbWVsY2FzZSI6cmV0dXJuIi5OYU4ifWVsc2UgaWYoTnVtYmVyLlBPU0lUSVZFX0lORklOSVRZPT09dClzd2l0Y2goZSl7Y2FzZSJsb3dlcmNhc2UiOnJldHVybiIuaW5mIjtjYXNlInVwcGVyY2FzZSI6cmV0dXJuIi5JTkYiO2Nhc2UiY2FtZWxjYXNlIjpyZXR1cm4iLkluZiJ9ZWxzZSBpZihOdW1iZXIuTkVHQVRJVkVfSU5GSU5JVFk9PT10KXN3aXRjaChlKXtjYXNlImxvd2VyY2FzZSI6cmV0dXJuIi0uaW5mIjtjYXNlInVwcGVyY2FzZSI6cmV0dXJuIi0uSU5GIjtjYXNlImNhbWVsY2FzZSI6cmV0dXJuIi0uSW5mIn1lbHNlIGlmKHRhZS5pc05lZ2F0aXZlWmVybyh0KSlyZXR1cm4iLTAuMCI7cmV0dXJuIGE9dC50b1N0cmluZygxMCksV0F0LnRlc3QoYSk/YS5yZXBsYWNlKCJlIiwiLmUiKTphfWZ1bmN0aW9uIFlBdCh0KXtyZXR1cm4gT2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKHQpPT09IltvYmplY3QgTnVtYmVyXSImJih0JTEhPT0wfHx0YWUuaXNOZWdhdGl2ZVplcm8odCkpfWFhZS5leHBvcnRzPW5ldyBxQXQoInRhZzp5YW1sLm9yZywyMDAyOmZsb2F0Iix7a2luZDoic2NhbGFyIixyZXNvbHZlOmpBdCxjb25zdHJ1Y3Q6VUF0LHByZWRpY2F0ZTpZQXQscmVwcmVzZW50OkdBdCxkZWZhdWx0U3R5bGU6Imxvd2VyY2FzZSJ9KX0pO3ZhciBFXz1odCgoTV8xLHJhZSk9PnsidXNlIHN0cmljdCI7dmFyIFpBdD1oMCgpO3JhZS5leHBvcnRzPW5ldyBaQXQoe2luY2x1ZGU6W245KCldLGltcGxpY2l0OltYMmUoKSxRMmUoKSxlYWUoKSxpYWUoKV19KX0pO3ZhciBQXz1odCgoel8xLHNhZSk9PnsidXNlIHN0cmljdCI7dmFyIFhBdD1oMCgpO3NhZS5leHBvcnRzPW5ldyBYQXQoe2luY2x1ZGU6W0VfKCldfSl9KTt2YXIgY2FlPWh0KChrXzEsbGFlKT0+eyJ1c2Ugc3RyaWN0Ijt2YXIgS0F0PWEyKCksbmFlPW5ldyBSZWdFeHAoIl4oWzAtOV1bMC05XVswLTldWzAtOV0pLShbMC05XVswLTldKS0oWzAtOV1bMC05XSkkIiksb2FlPW5ldyBSZWdFeHAoIl4oWzAtOV1bMC05XVswLTldWzAtOV0pLShbMC05XVswLTldPyktKFswLTldWzAtOV0/KSg/OltUdF18WyBcXHRdKykoWzAtOV1bMC05XT8pOihbMC05XVswLTldKTooWzAtOV1bMC05XSkoPzpcXC4oWzAtOV0qKSk/KD86WyBcXHRdKihafChbLStdKShbMC05XVswLTldPykoPzo6KFswLTldWzAtOV0pKT8pKT8kIik7ZnVuY3Rpb24gUUF0KHQpe3JldHVybiB0PT09bnVsbD8hMTpuYWUuZXhlYyh0KSE9PW51bGx8fG9hZS5leGVjKHQpIT09bnVsbH1mdW5jdGlvbiBKQXQodCl7dmFyIGUsYSxpLHIscyxuLG8sZD0wLGM9bnVsbCxoLGwsZjtpZihlPW5hZS5leGVjKHQpLGU9PT1udWxsJiYoZT1vYWUuZXhlYyh0KSksZT09PW51bGwpdGhyb3cgbmV3IEVycm9yKCJEYXRlIHJlc29sdmUgZXJyb3IiKTtpZihhPStlWzFdLGk9K2VbMl0tMSxyPStlWzNdLCFlWzRdKXJldHVybiBuZXcgRGF0ZShEYXRlLlVUQyhhLGkscikpO2lmKHM9K2VbNF0sbj0rZVs1XSxvPStlWzZdLGVbN10pe2ZvcihkPWVbN10uc2xpY2UoMCwzKTtkLmxlbmd0aDwzOylkKz0iMCI7ZD0rZH1yZXR1cm4gZVs5XSYmKGg9K2VbMTBdLGw9KyhlWzExXXx8MCksYz0oaCo2MCtsKSo2ZTQsZVs5XT09PSItIiYmKGM9LWMpKSxmPW5ldyBEYXRlKERhdGUuVVRDKGEsaSxyLHMsbixvLGQpKSxjJiZmLnNldFRpbWUoZi5nZXRUaW1lKCktYyksZn1mdW5jdGlvbiBlRHQodCl7cmV0dXJuIHQudG9JU09TdHJpbmcoKX1sYWUuZXhwb3J0cz1uZXcgS0F0KCJ0YWc6eWFtbC5vcmcsMjAwMjp0aW1lc3RhbXAiLHtraW5kOiJzY2FsYXIiLHJlc29sdmU6UUF0LGNvbnN0cnVjdDpKQXQsaW5zdGFuY2VPZjpEYXRlLHJlcHJlc2VudDplRHR9KX0pO3ZhciBoYWU9aHQoKFNfMSxkYWUpPT57InVzZSBzdHJpY3QiO3ZhciB0RHQ9YTIoKTtmdW5jdGlvbiBhRHQodCl7cmV0dXJuIHQ9PT0iPDwifHx0PT09bnVsbH1kYWUuZXhwb3J0cz1uZXcgdER0KCJ0YWc6eWFtbC5vcmcsMjAwMjptZXJnZSIse2tpbmQ6InNjYWxhciIscmVzb2x2ZTphRHR9KX0pO3ZhciBmYWU9aHQoKENfMSx1YWUpPT57InVzZSBzdHJpY3QiO3ZhciBwMDt0cnl7cGFlPWRkLHAwPXBhZSgiYnVmZmVyIikuQnVmZmVyfWNhdGNoe312YXIgaUR0PWEyKCksSV89YEFCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFlaYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXowMTIzNDU2Nzg5Ky89ClxyYDtmdW5jdGlvbiByRHQodCl7aWYodD09PW51bGwpcmV0dXJuITE7dmFyIGUsYSxpPTAscj10Lmxlbmd0aCxzPUlfO2ZvcihhPTA7YTxyO2ErKylpZihlPXMuaW5kZXhPZih0LmNoYXJBdChhKSksIShlPjY0KSl7aWYoZTwwKXJldHVybiExO2krPTZ9cmV0dXJuIGklOD09PTB9ZnVuY3Rpb24gc0R0KHQpe3ZhciBlLGEsaT10LnJlcGxhY2UoL1tcclxuPV0vZywiIikscj1pLmxlbmd0aCxzPUlfLG49MCxvPVtdO2ZvcihlPTA7ZTxyO2UrKyllJTQ9PT0wJiZlJiYoby5wdXNoKG4+PjE2JjI1NSksby5wdXNoKG4+PjgmMjU1KSxvLnB1c2gobiYyNTUpKSxuPW48PDZ8cy5pbmRleE9mKGkuY2hhckF0KGUpKTtyZXR1cm4gYT1yJTQqNixhPT09MD8oby5wdXNoKG4+PjE2JjI1NSksby5wdXNoKG4+PjgmMjU1KSxvLnB1c2gobiYyNTUpKTphPT09MTg/KG8ucHVzaChuPj4xMCYyNTUpLG8ucHVzaChuPj4yJjI1NSkpOmE9PT0xMiYmby5wdXNoKG4+PjQmMjU1KSxwMD9wMC5mcm9tP3AwLmZyb20obyk6bmV3IHAwKG8pOm99ZnVuY3Rpb24gbkR0KHQpe3ZhciBlPSIiLGE9MCxpLHIscz10Lmxlbmd0aCxuPUlfO2ZvcihpPTA7aTxzO2krKylpJTM9PT0wJiZpJiYoZSs9blthPj4xOCY2M10sZSs9blthPj4xMiY2M10sZSs9blthPj42JjYzXSxlKz1uW2EmNjNdKSxhPShhPDw4KSt0W2ldO3JldHVybiByPXMlMyxyPT09MD8oZSs9blthPj4xOCY2M10sZSs9blthPj4xMiY2M10sZSs9blthPj42JjYzXSxlKz1uW2EmNjNdKTpyPT09Mj8oZSs9blthPj4xMCY2M10sZSs9blthPj40JjYzXSxlKz1uW2E8PDImNjNdLGUrPW5bNjRdKTpyPT09MSYmKGUrPW5bYT4+MiY2M10sZSs9blthPDw0JjYzXSxlKz1uWzY0XSxlKz1uWzY0XSksZX1mdW5jdGlvbiBvRHQodCl7cmV0dXJuIHAwJiZwMC5pc0J1ZmZlcih0KX11YWUuZXhwb3J0cz1uZXcgaUR0KCJ0YWc6eWFtbC5vcmcsMjAwMjpiaW5hcnkiLHtraW5kOiJzY2FsYXIiLHJlc29sdmU6ckR0LGNvbnN0cnVjdDpzRHQscHJlZGljYXRlOm9EdCxyZXByZXNlbnQ6bkR0fSk7dmFyIHBhZX0pO3ZhciBnYWU9aHQoKFRfMSxtYWUpPT57InVzZSBzdHJpY3QiO3ZhciBsRHQ9YTIoKSxjRHQ9T2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eSxkRHQ9T2JqZWN0LnByb3RvdHlwZS50b1N0cmluZztmdW5jdGlvbiBoRHQodCl7aWYodD09PW51bGwpcmV0dXJuITA7dmFyIGU9W10sYSxpLHIscyxuLG89dDtmb3IoYT0wLGk9by5sZW5ndGg7YTxpO2ErPTEpe2lmKHI9b1thXSxuPSExLGREdC5jYWxsKHIpIT09IltvYmplY3QgT2JqZWN0XSIpcmV0dXJuITE7Zm9yKHMgaW4gcilpZihjRHQuY2FsbChyLHMpKWlmKCFuKW49ITA7ZWxzZSByZXR1cm4hMTtpZighbilyZXR1cm4hMTtpZihlLmluZGV4T2Yocyk9PT0tMSllLnB1c2gocyk7ZWxzZSByZXR1cm4hMX1yZXR1cm4hMH1mdW5jdGlvbiBwRHQodCl7cmV0dXJuIHQhPT1udWxsP3Q6W119bWFlLmV4cG9ydHM9bmV3IGxEdCgidGFnOnlhbWwub3JnLDIwMDI6b21hcCIse2tpbmQ6InNlcXVlbmNlIixyZXNvbHZlOmhEdCxjb25zdHJ1Y3Q6cER0fSl9KTt2YXIgdmFlPWh0KChMXzEsYmFlKT0+eyJ1c2Ugc3RyaWN0Ijt2YXIgdUR0PWEyKCksZkR0PU9iamVjdC5wcm90b3R5cGUudG9TdHJpbmc7ZnVuY3Rpb24gbUR0KHQpe2lmKHQ9PT1udWxsKXJldHVybiEwO3ZhciBlLGEsaSxyLHMsbj10O2ZvcihzPW5ldyBBcnJheShuLmxlbmd0aCksZT0wLGE9bi5sZW5ndGg7ZTxhO2UrPTEpe2lmKGk9bltlXSxmRHQuY2FsbChpKSE9PSJbb2JqZWN0IE9iamVjdF0ifHwocj1PYmplY3Qua2V5cyhpKSxyLmxlbmd0aCE9PTEpKXJldHVybiExO3NbZV09W3JbMF0saVtyWzBdXV19cmV0dXJuITB9ZnVuY3Rpb24gZ0R0KHQpe2lmKHQ9PT1udWxsKXJldHVybltdO3ZhciBlLGEsaSxyLHMsbj10O2ZvcihzPW5ldyBBcnJheShuLmxlbmd0aCksZT0wLGE9bi5sZW5ndGg7ZTxhO2UrPTEpaT1uW2VdLHI9T2JqZWN0LmtleXMoaSksc1tlXT1bclswXSxpW3JbMF1dXTtyZXR1cm4gc31iYWUuZXhwb3J0cz1uZXcgdUR0KCJ0YWc6eWFtbC5vcmcsMjAwMjpwYWlycyIse2tpbmQ6InNlcXVlbmNlIixyZXNvbHZlOm1EdCxjb25zdHJ1Y3Q6Z0R0fSl9KTt2YXIgeGFlPWh0KCgkXzEseWFlKT0+eyJ1c2Ugc3RyaWN0Ijt2YXIgYkR0PWEyKCksdkR0PU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHk7ZnVuY3Rpb24geUR0KHQpe2lmKHQ9PT1udWxsKXJldHVybiEwO3ZhciBlLGE9dDtmb3IoZSBpbiBhKWlmKHZEdC5jYWxsKGEsZSkmJmFbZV0hPT1udWxsKXJldHVybiExO3JldHVybiEwfWZ1bmN0aW9uIHhEdCh0KXtyZXR1cm4gdCE9PW51bGw/dDp7fX15YWUuZXhwb3J0cz1uZXcgYkR0KCJ0YWc6eWFtbC5vcmcsMjAwMjpzZXQiLHtraW5kOiJtYXBwaW5nIixyZXNvbHZlOnlEdCxjb25zdHJ1Y3Q6eER0fSl9KTt2YXIgQzM9aHQoKEFfMSx3YWUpPT57InVzZSBzdHJpY3QiO3ZhciB3RHQ9aDAoKTt3YWUuZXhwb3J0cz1uZXcgd0R0KHtpbmNsdWRlOltQXygpXSxpbXBsaWNpdDpbY2FlKCksaGFlKCldLGV4cGxpY2l0OltmYWUoKSxnYWUoKSx2YWUoKSx4YWUoKV19KX0pO3ZhciB6YWU9aHQoKERfMSxNYWUpPT57InVzZSBzdHJpY3QiO3ZhciBNRHQ9YTIoKTtmdW5jdGlvbiB6RHQoKXtyZXR1cm4hMH1mdW5jdGlvbiBrRHQoKXt9ZnVuY3Rpb24gU0R0KCl7cmV0dXJuIiJ9ZnVuY3Rpb24gQ0R0KHQpe3JldHVybiB0eXBlb2YgdD4idSJ9TWFlLmV4cG9ydHM9bmV3IE1EdCgidGFnOnlhbWwub3JnLDIwMDI6anMvdW5kZWZpbmVkIix7a2luZDoic2NhbGFyIixyZXNvbHZlOnpEdCxjb25zdHJ1Y3Q6a0R0LHByZWRpY2F0ZTpDRHQscmVwcmVzZW50OlNEdH0pfSk7dmFyIFNhZT1odCgoRV8xLGthZSk9PnsidXNlIHN0cmljdCI7dmFyIF9EdD1hMigpO2Z1bmN0aW9uIFREdCh0KXtpZih0PT09bnVsbHx8dC5sZW5ndGg9PT0wKXJldHVybiExO3ZhciBlPXQsYT0vXC8oW2dpbV0qKSQvLmV4ZWModCksaT0iIjtyZXR1cm4hKGVbMF09PT0iLyImJihhJiYoaT1hWzFdKSxpLmxlbmd0aD4zfHxlW2UubGVuZ3RoLWkubGVuZ3RoLTFdIT09Ii8iKSl9ZnVuY3Rpb24gTER0KHQpe3ZhciBlPXQsYT0vXC8oW2dpbV0qKSQvLmV4ZWModCksaT0iIjtyZXR1cm4gZVswXT09PSIvIiYmKGEmJihpPWFbMV0pLGU9ZS5zbGljZSgxLGUubGVuZ3RoLWkubGVuZ3RoLTEpKSxuZXcgUmVnRXhwKGUsaSl9ZnVuY3Rpb24gJER0KHQpe3ZhciBlPSIvIit0LnNvdXJjZSsiLyI7cmV0dXJuIHQuZ2xvYmFsJiYoZSs9ImciKSx0Lm11bHRpbGluZSYmKGUrPSJtIiksdC5pZ25vcmVDYXNlJiYoZSs9ImkiKSxlfWZ1bmN0aW9uIEFEdCh0KXtyZXR1cm4gT2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKHQpPT09IltvYmplY3QgUmVnRXhwXSJ9a2FlLmV4cG9ydHM9bmV3IF9EdCgidGFnOnlhbWwub3JnLDIwMDI6anMvcmVnZXhwIix7a2luZDoic2NhbGFyIixyZXNvbHZlOlREdCxjb25zdHJ1Y3Q6TER0LHByZWRpY2F0ZTpBRHQscmVwcmVzZW50OiREdH0pfSk7dmFyIFRhZT1odCgoUF8xLF9hZSk9PnsidXNlIHN0cmljdCI7dmFyIG85O3RyeXtDYWU9ZGQsbzk9Q2FlKCJlc3ByaW1hIil9Y2F0Y2h7dHlwZW9mIHdpbmRvdzwidSImJihvOT13aW5kb3cuZXNwcmltYSl9dmFyIEREdD1hMigpO2Z1bmN0aW9uIEVEdCh0KXtpZih0PT09bnVsbClyZXR1cm4hMTt0cnl7dmFyIGU9IigiK3QrIikiLGE9bzkucGFyc2UoZSx7cmFuZ2U6ITB9KTtyZXR1cm4hKGEudHlwZSE9PSJQcm9ncmFtInx8YS5ib2R5Lmxlbmd0aCE9PTF8fGEuYm9keVswXS50eXBlIT09IkV4cHJlc3Npb25TdGF0ZW1lbnQifHxhLmJvZHlbMF0uZXhwcmVzc2lvbi50eXBlIT09IkFycm93RnVuY3Rpb25FeHByZXNzaW9uIiYmYS5ib2R5WzBdLmV4cHJlc3Npb24udHlwZSE9PSJGdW5jdGlvbkV4cHJlc3Npb24iKX1jYXRjaHtyZXR1cm4hMX19ZnVuY3Rpb24gUER0KHQpe3ZhciBlPSIoIit0KyIpIixhPW85LnBhcnNlKGUse3JhbmdlOiEwfSksaT1bXSxyO2lmKGEudHlwZSE9PSJQcm9ncmFtInx8YS5ib2R5Lmxlbmd0aCE9PTF8fGEuYm9keVswXS50eXBlIT09IkV4cHJlc3Npb25TdGF0ZW1lbnQifHxhLmJvZHlbMF0uZXhwcmVzc2lvbi50eXBlIT09IkFycm93RnVuY3Rpb25FeHByZXNzaW9uIiYmYS5ib2R5WzBdLmV4cHJlc3Npb24udHlwZSE9PSJGdW5jdGlvbkV4cHJlc3Npb24iKXRocm93IG5ldyBFcnJvcigiRmFpbGVkIHRvIHJlc29sdmUgZnVuY3Rpb24iKTtyZXR1cm4gYS5ib2R5WzBdLmV4cHJlc3Npb24ucGFyYW1zLmZvckVhY2goZnVuY3Rpb24ocyl7aS5wdXNoKHMubmFtZSl9KSxyPWEuYm9keVswXS5leHByZXNzaW9uLmJvZHkucmFuZ2UsYS5ib2R5WzBdLmV4cHJlc3Npb24uYm9keS50eXBlPT09IkJsb2NrU3RhdGVtZW50Ij9uZXcgRnVuY3Rpb24oaSxlLnNsaWNlKHJbMF0rMSxyWzFdLTEpKTpuZXcgRnVuY3Rpb24oaSwicmV0dXJuICIrZS5zbGljZShyWzBdLHJbMV0pKX1mdW5jdGlvbiBJRHQodCl7cmV0dXJuIHQudG9TdHJpbmcoKX1mdW5jdGlvbiBORHQodCl7cmV0dXJuIE9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbCh0KT09PSJbb2JqZWN0IEZ1bmN0aW9uXSJ9X2FlLmV4cG9ydHM9bmV3IEREdCgidGFnOnlhbWwub3JnLDIwMDI6anMvZnVuY3Rpb24iLHtraW5kOiJzY2FsYXIiLHJlc29sdmU6RUR0LGNvbnN0cnVjdDpQRHQscHJlZGljYXRlOk5EdCxyZXByZXNlbnQ6SUR0fSk7dmFyIENhZX0pO3ZhciBMNj1odCgoTl8xLCRhZSk9PnsidXNlIHN0cmljdCI7dmFyIExhZT1oMCgpOyRhZS5leHBvcnRzPUxhZS5ERUZBVUxUPW5ldyBMYWUoe2luY2x1ZGU6W0MzKCldLGV4cGxpY2l0Olt6YWUoKSxTYWUoKSxUYWUoKV19KX0pO3ZhciBYYWU9aHQoKEZfMSwkNik9PnsidXNlIHN0cmljdCI7dmFyIHZzPWQwKCksQWFlPWszKCksRkR0PUYyZSgpLERhZT1DMygpLE9EdD1MNigpLFBuPU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHksbDk9MSxFYWU9MixQYWU9MyxjOT00LE5fPTEsUkR0PTIsSWFlPTMsQkR0PS9bXHgwMC1ceDA4XHgwQlx4MENceDBFLVx4MUZceDdGLVx4ODRceDg2LVx4OUZcdUZGRkVcdUZGRkZdfFtcdUQ4MDAtXHVEQkZGXSg/IVtcdURDMDAtXHVERkZGXSl8KD86W15cdUQ4MDAtXHVEQkZGXXxeKVtcdURDMDAtXHVERkZGXS8sSER0PS9bXHg4NVx1MjAyOFx1MjAyOV0vLHFEdD0vWyxcW1xdXHtcfV0vLE5hZT0vXig/OiF8ISF8IVthLXpcLV0rISkkL2ksRmFlPS9eKD86IXxbXixcW1xdXHtcfV0pKD86JVswLTlhLWZdezJ9fFswLTlhLXpcLSM7XC9cPzpAJj1cK1wkLF9cLiF+XConXChcKVxbXF1dKSokL2k7ZnVuY3Rpb24gT2FlKHQpe3JldHVybiBPYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwodCl9ZnVuY3Rpb24gVHIodCl7cmV0dXJuIHQ9PT0xMHx8dD09PTEzfWZ1bmN0aW9uIHUwKHQpe3JldHVybiB0PT09OXx8dD09PTMyfWZ1bmN0aW9uIF9hKHQpe3JldHVybiB0PT09OXx8dD09PTMyfHx0PT09MTB8fHQ9PT0xM31mdW5jdGlvbiBfMyh0KXtyZXR1cm4gdD09PTQ0fHx0PT09OTF8fHQ9PT05M3x8dD09PTEyM3x8dD09PTEyNX1mdW5jdGlvbiBWRHQodCl7dmFyIGU7cmV0dXJuIDQ4PD10JiZ0PD01Nz90LTQ4OihlPXR8MzIsOTc8PWUmJmU8PTEwMj9lLTk3KzEwOi0xKX1mdW5jdGlvbiBqRHQodCl7cmV0dXJuIHQ9PT0xMjA/Mjp0PT09MTE3PzQ6dD09PTg1Pzg6MH1mdW5jdGlvbiBVRHQodCl7cmV0dXJuIDQ4PD10JiZ0PD01Nz90LTQ4Oi0xfWZ1bmN0aW9uIFJhZSh0KXtyZXR1cm4gdD09PTQ4PyJcMCI6dD09PTk3PyJceDA3Ijp0PT09OTg/IlxiIjp0PT09MTE2fHx0PT09OT8iCSI6dD09PTExMD9gCmA6dD09PTExOD8iXHYiOnQ9PT0xMDI/IlxmIjp0PT09MTE0PyJcciI6dD09PTEwMT8iXHgxQiI6dD09PTMyPyIgIjp0PT09MzQ/JyInOnQ9PT00Nz8iLyI6dD09PTkyPyJcXCI6dD09PTc4PyJceDg1Ijp0PT09OTU/Ilx4QTAiOnQ9PT03Nj8iXHUyMDI4Ijp0PT09ODA/Ilx1MjAyOSI6IiJ9ZnVuY3Rpb24gV0R0KHQpe3JldHVybiB0PD02NTUzNT9TdHJpbmcuZnJvbUNoYXJDb2RlKHQpOlN0cmluZy5mcm9tQ2hhckNvZGUoKHQtNjU1MzY+PjEwKSs1NTI5NiwodC02NTUzNiYxMDIzKSs1NjMyMCl9ZnVuY3Rpb24gQmFlKHQsZSxhKXtlPT09Il9fcHJvdG9fXyI/T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsZSx7Y29uZmlndXJhYmxlOiEwLGVudW1lcmFibGU6ITAsd3JpdGFibGU6ITAsdmFsdWU6YX0pOnRbZV09YX12YXIgSGFlPW5ldyBBcnJheSgyNTYpLHFhZT1uZXcgQXJyYXkoMjU2KTtmb3IoZjA9MDtmMDwyNTY7ZjArKylIYWVbZjBdPVJhZShmMCk/MTowLHFhZVtmMF09UmFlKGYwKTtmdW5jdGlvbiBHRHQodCxlKXt0aGlzLmlucHV0PXQsdGhpcy5maWxlbmFtZT1lLmZpbGVuYW1lfHxudWxsLHRoaXMuc2NoZW1hPWUuc2NoZW1hfHxPRHQsdGhpcy5vbldhcm5pbmc9ZS5vbldhcm5pbmd8fG51bGwsdGhpcy5sZWdhY3k9ZS5sZWdhY3l8fCExLHRoaXMuanNvbj1lLmpzb258fCExLHRoaXMubGlzdGVuZXI9ZS5saXN0ZW5lcnx8bnVsbCx0aGlzLmltcGxpY2l0VHlwZXM9dGhpcy5zY2hlbWEuY29tcGlsZWRJbXBsaWNpdCx0aGlzLnR5cGVNYXA9dGhpcy5zY2hlbWEuY29tcGlsZWRUeXBlTWFwLHRoaXMubGVuZ3RoPXQubGVuZ3RoLHRoaXMucG9zaXRpb249MCx0aGlzLmxpbmU9MCx0aGlzLmxpbmVTdGFydD0wLHRoaXMubGluZUluZGVudD0wLHRoaXMuZG9jdW1lbnRzPVtdfWZ1bmN0aW9uIFZhZSh0LGUpe3JldHVybiBuZXcgQWFlKGUsbmV3IEZEdCh0LmZpbGVuYW1lLHQuaW5wdXQsdC5wb3NpdGlvbix0LmxpbmUsdC5wb3NpdGlvbi10LmxpbmVTdGFydCkpfWZ1bmN0aW9uIG50KHQsZSl7dGhyb3cgVmFlKHQsZSl9ZnVuY3Rpb24gZDkodCxlKXt0Lm9uV2FybmluZyYmdC5vbldhcm5pbmcuY2FsbChudWxsLFZhZSh0LGUpKX12YXIgamFlPXtZQU1MOmZ1bmN0aW9uKGUsYSxpKXt2YXIgcixzLG47ZS52ZXJzaW9uIT09bnVsbCYmbnQoZSwiZHVwbGljYXRpb24gb2YgJVlBTUwgZGlyZWN0aXZlIiksaS5sZW5ndGghPT0xJiZudChlLCJZQU1MIGRpcmVjdGl2ZSBhY2NlcHRzIGV4YWN0bHkgb25lIGFyZ3VtZW50Iikscj0vXihbMC05XSspXC4oWzAtOV0rKSQvLmV4ZWMoaVswXSkscj09PW51bGwmJm50KGUsImlsbC1mb3JtZWQgYXJndW1lbnQgb2YgdGhlIFlBTUwgZGlyZWN0aXZlIikscz1wYXJzZUludChyWzFdLDEwKSxuPXBhcnNlSW50KHJbMl0sMTApLHMhPT0xJiZudChlLCJ1bmFjY2VwdGFibGUgWUFNTCB2ZXJzaW9uIG9mIHRoZSBkb2N1bWVudCIpLGUudmVyc2lvbj1pWzBdLGUuY2hlY2tMaW5lQnJlYWtzPW48MixuIT09MSYmbiE9PTImJmQ5KGUsInVuc3VwcG9ydGVkIFlBTUwgdmVyc2lvbiBvZiB0aGUgZG9jdW1lbnQiKX0sVEFHOmZ1bmN0aW9uKGUsYSxpKXt2YXIgcixzO2kubGVuZ3RoIT09MiYmbnQoZSwiVEFHIGRpcmVjdGl2ZSBhY2NlcHRzIGV4YWN0bHkgdHdvIGFyZ3VtZW50cyIpLHI9aVswXSxzPWlbMV0sTmFlLnRlc3Qocil8fG50KGUsImlsbC1mb3JtZWQgdGFnIGhhbmRsZSAoZmlyc3QgYXJndW1lbnQpIG9mIHRoZSBUQUcgZGlyZWN0aXZlIiksUG4uY2FsbChlLnRhZ01hcCxyKSYmbnQoZSwndGhlcmUgaXMgYSBwcmV2aW91c2x5IGRlY2xhcmVkIHN1ZmZpeCBmb3IgIicrcisnIiB0YWcgaGFuZGxlJyksRmFlLnRlc3Qocyl8fG50KGUsImlsbC1mb3JtZWQgdGFnIHByZWZpeCAoc2Vjb25kIGFyZ3VtZW50KSBvZiB0aGUgVEFHIGRpcmVjdGl2ZSIpLGUudGFnTWFwW3JdPXN9fTtmdW5jdGlvbiBJbih0LGUsYSxpKXt2YXIgcixzLG4sbztpZihlPGEpe2lmKG89dC5pbnB1dC5zbGljZShlLGEpLGkpZm9yKHI9MCxzPW8ubGVuZ3RoO3I8cztyKz0xKW49by5jaGFyQ29kZUF0KHIpLG49PT05fHwzMjw9biYmbjw9MTExNDExMXx8bnQodCwiZXhwZWN0ZWQgdmFsaWQgSlNPTiBjaGFyYWN0ZXIiKTtlbHNlIEJEdC50ZXN0KG8pJiZudCh0LCJ0aGUgc3RyZWFtIGNvbnRhaW5zIG5vbi1wcmludGFibGUgY2hhcmFjdGVycyIpO3QucmVzdWx0Kz1vfX1mdW5jdGlvbiBVYWUodCxlLGEsaSl7dmFyIHIscyxuLG87Zm9yKHZzLmlzT2JqZWN0KGEpfHxudCh0LCJjYW5ub3QgbWVyZ2UgbWFwcGluZ3M7IHRoZSBwcm92aWRlZCBzb3VyY2Ugb2JqZWN0IGlzIHVuYWNjZXB0YWJsZSIpLHI9T2JqZWN0LmtleXMoYSksbj0wLG89ci5sZW5ndGg7bjxvO24rPTEpcz1yW25dLFBuLmNhbGwoZSxzKXx8KEJhZShlLHMsYVtzXSksaVtzXT0hMCl9ZnVuY3Rpb24gVDModCxlLGEsaSxyLHMsbixvKXt2YXIgZCxjO2lmKEFycmF5LmlzQXJyYXkocikpZm9yKHI9QXJyYXkucHJvdG90eXBlLnNsaWNlLmNhbGwociksZD0wLGM9ci5sZW5ndGg7ZDxjO2QrPTEpQXJyYXkuaXNBcnJheShyW2RdKSYmbnQodCwibmVzdGVkIGFycmF5cyBhcmUgbm90IHN1cHBvcnRlZCBpbnNpZGUga2V5cyIpLHR5cGVvZiByPT0ib2JqZWN0IiYmT2FlKHJbZF0pPT09IltvYmplY3QgT2JqZWN0XSImJihyW2RdPSJbb2JqZWN0IE9iamVjdF0iKTtpZih0eXBlb2Ygcj09Im9iamVjdCImJk9hZShyKT09PSJbb2JqZWN0IE9iamVjdF0iJiYocj0iW29iamVjdCBPYmplY3RdIikscj1TdHJpbmcociksZT09PW51bGwmJihlPXt9KSxpPT09InRhZzp5YW1sLm9yZywyMDAyOm1lcmdlIilpZihBcnJheS5pc0FycmF5KHMpKWZvcihkPTAsYz1zLmxlbmd0aDtkPGM7ZCs9MSlVYWUodCxlLHNbZF0sYSk7ZWxzZSBVYWUodCxlLHMsYSk7ZWxzZSF0Lmpzb24mJiFQbi5jYWxsKGEscikmJlBuLmNhbGwoZSxyKSYmKHQubGluZT1ufHx0LmxpbmUsdC5wb3NpdGlvbj1vfHx0LnBvc2l0aW9uLG50KHQsImR1cGxpY2F0ZWQgbWFwcGluZyBrZXkiKSksQmFlKGUscixzKSxkZWxldGUgYVtyXTtyZXR1cm4gZX1mdW5jdGlvbiBGXyh0KXt2YXIgZTtlPXQuaW5wdXQuY2hhckNvZGVBdCh0LnBvc2l0aW9uKSxlPT09MTA/dC5wb3NpdGlvbisrOmU9PT0xMz8odC5wb3NpdGlvbisrLHQuaW5wdXQuY2hhckNvZGVBdCh0LnBvc2l0aW9uKT09PTEwJiZ0LnBvc2l0aW9uKyspOm50KHQsImEgbGluZSBicmVhayBpcyBleHBlY3RlZCIpLHQubGluZSs9MSx0LmxpbmVTdGFydD10LnBvc2l0aW9ufWZ1bmN0aW9uIFkxKHQsZSxhKXtmb3IodmFyIGk9MCxyPXQuaW5wdXQuY2hhckNvZGVBdCh0LnBvc2l0aW9uKTtyIT09MDspe2Zvcig7dTAocik7KXI9dC5pbnB1dC5jaGFyQ29kZUF0KCsrdC5wb3NpdGlvbik7aWYoZSYmcj09PTM1KWRvIHI9dC5pbnB1dC5jaGFyQ29kZUF0KCsrdC5wb3NpdGlvbik7d2hpbGUociE9PTEwJiZyIT09MTMmJnIhPT0wKTtpZihUcihyKSlmb3IoRl8odCkscj10LmlucHV0LmNoYXJDb2RlQXQodC5wb3NpdGlvbiksaSsrLHQubGluZUluZGVudD0wO3I9PT0zMjspdC5saW5lSW5kZW50Kysscj10LmlucHV0LmNoYXJDb2RlQXQoKyt0LnBvc2l0aW9uKTtlbHNlIGJyZWFrfXJldHVybiBhIT09LTEmJmkhPT0wJiZ0LmxpbmVJbmRlbnQ8YSYmZDkodCwiZGVmaWNpZW50IGluZGVudGF0aW9uIiksaX1mdW5jdGlvbiBoOSh0KXt2YXIgZT10LnBvc2l0aW9uLGE7cmV0dXJuIGE9dC5pbnB1dC5jaGFyQ29kZUF0KGUpLCEhKChhPT09NDV8fGE9PT00NikmJmE9PT10LmlucHV0LmNoYXJDb2RlQXQoZSsxKSYmYT09PXQuaW5wdXQuY2hhckNvZGVBdChlKzIpJiYoZSs9MyxhPXQuaW5wdXQuY2hhckNvZGVBdChlKSxhPT09MHx8X2EoYSkpKX1mdW5jdGlvbiBPXyh0LGUpe2U9PT0xP3QucmVzdWx0Kz0iICI6ZT4xJiYodC5yZXN1bHQrPXZzLnJlcGVhdChgCmAsZS0xKSl9ZnVuY3Rpb24gWUR0KHQsZSxhKXt2YXIgaSxyLHMsbixvLGQsYyxoLGw9dC5raW5kLGY9dC5yZXN1bHQsZztpZihnPXQuaW5wdXQuY2hhckNvZGVBdCh0LnBvc2l0aW9uKSxfYShnKXx8XzMoZyl8fGc9PT0zNXx8Zz09PTM4fHxnPT09NDJ8fGc9PT0zM3x8Zz09PTEyNHx8Zz09PTYyfHxnPT09Mzl8fGc9PT0zNHx8Zz09PTM3fHxnPT09NjR8fGc9PT05Nnx8KGc9PT02M3x8Zz09PTQ1KSYmKHI9dC5pbnB1dC5jaGFyQ29kZUF0KHQucG9zaXRpb24rMSksX2Eocil8fGEmJl8zKHIpKSlyZXR1cm4hMTtmb3IodC5raW5kPSJzY2FsYXIiLHQucmVzdWx0PSIiLHM9bj10LnBvc2l0aW9uLG89ITE7ZyE9PTA7KXtpZihnPT09NTgpe2lmKHI9dC5pbnB1dC5jaGFyQ29kZUF0KHQucG9zaXRpb24rMSksX2Eocil8fGEmJl8zKHIpKWJyZWFrfWVsc2UgaWYoZz09PTM1KXtpZihpPXQuaW5wdXQuY2hhckNvZGVBdCh0LnBvc2l0aW9uLTEpLF9hKGkpKWJyZWFrfWVsc2V7aWYodC5wb3NpdGlvbj09PXQubGluZVN0YXJ0JiZoOSh0KXx8YSYmXzMoZykpYnJlYWs7aWYoVHIoZykpaWYoZD10LmxpbmUsYz10LmxpbmVTdGFydCxoPXQubGluZUluZGVudCxZMSh0LCExLC0xKSx0LmxpbmVJbmRlbnQ+PWUpe289ITAsZz10LmlucHV0LmNoYXJDb2RlQXQodC5wb3NpdGlvbik7Y29udGludWV9ZWxzZXt0LnBvc2l0aW9uPW4sdC5saW5lPWQsdC5saW5lU3RhcnQ9Yyx0LmxpbmVJbmRlbnQ9aDticmVha319byYmKEluKHQscyxuLCExKSxPXyh0LHQubGluZS1kKSxzPW49dC5wb3NpdGlvbixvPSExKSx1MChnKXx8KG49dC5wb3NpdGlvbisxKSxnPXQuaW5wdXQuY2hhckNvZGVBdCgrK3QucG9zaXRpb24pfXJldHVybiBJbih0LHMsbiwhMSksdC5yZXN1bHQ/ITA6KHQua2luZD1sLHQucmVzdWx0PWYsITEpfWZ1bmN0aW9uIFpEdCh0LGUpe3ZhciBhLGkscjtpZihhPXQuaW5wdXQuY2hhckNvZGVBdCh0LnBvc2l0aW9uKSxhIT09MzkpcmV0dXJuITE7Zm9yKHQua2luZD0ic2NhbGFyIix0LnJlc3VsdD0iIix0LnBvc2l0aW9uKyssaT1yPXQucG9zaXRpb247KGE9dC5pbnB1dC5jaGFyQ29kZUF0KHQucG9zaXRpb24pKSE9PTA7KWlmKGE9PT0zOSlpZihJbih0LGksdC5wb3NpdGlvbiwhMCksYT10LmlucHV0LmNoYXJDb2RlQXQoKyt0LnBvc2l0aW9uKSxhPT09MzkpaT10LnBvc2l0aW9uLHQucG9zaXRpb24rKyxyPXQucG9zaXRpb247ZWxzZSByZXR1cm4hMDtlbHNlIFRyKGEpPyhJbih0LGksciwhMCksT18odCxZMSh0LCExLGUpKSxpPXI9dC5wb3NpdGlvbik6dC5wb3NpdGlvbj09PXQubGluZVN0YXJ0JiZoOSh0KT9udCh0LCJ1bmV4cGVjdGVkIGVuZCBvZiB0aGUgZG9jdW1lbnQgd2l0aGluIGEgc2luZ2xlIHF1b3RlZCBzY2FsYXIiKToodC5wb3NpdGlvbisrLHI9dC5wb3NpdGlvbik7bnQodCwidW5leHBlY3RlZCBlbmQgb2YgdGhlIHN0cmVhbSB3aXRoaW4gYSBzaW5nbGUgcXVvdGVkIHNjYWxhciIpfWZ1bmN0aW9uIFhEdCh0LGUpe3ZhciBhLGkscixzLG4sbztpZihvPXQuaW5wdXQuY2hhckNvZGVBdCh0LnBvc2l0aW9uKSxvIT09MzQpcmV0dXJuITE7Zm9yKHQua2luZD0ic2NhbGFyIix0LnJlc3VsdD0iIix0LnBvc2l0aW9uKyssYT1pPXQucG9zaXRpb247KG89dC5pbnB1dC5jaGFyQ29kZUF0KHQucG9zaXRpb24pKSE9PTA7KXtpZihvPT09MzQpcmV0dXJuIEluKHQsYSx0LnBvc2l0aW9uLCEwKSx0LnBvc2l0aW9uKyssITA7aWYobz09PTkyKXtpZihJbih0LGEsdC5wb3NpdGlvbiwhMCksbz10LmlucHV0LmNoYXJDb2RlQXQoKyt0LnBvc2l0aW9uKSxUcihvKSlZMSh0LCExLGUpO2Vsc2UgaWYobzwyNTYmJkhhZVtvXSl0LnJlc3VsdCs9cWFlW29dLHQucG9zaXRpb24rKztlbHNlIGlmKChuPWpEdChvKSk+MCl7Zm9yKHI9bixzPTA7cj4wO3ItLSlvPXQuaW5wdXQuY2hhckNvZGVBdCgrK3QucG9zaXRpb24pLChuPVZEdChvKSk+PTA/cz0oczw8NCkrbjpudCh0LCJleHBlY3RlZCBoZXhhZGVjaW1hbCBjaGFyYWN0ZXIiKTt0LnJlc3VsdCs9V0R0KHMpLHQucG9zaXRpb24rK31lbHNlIG50KHQsInVua25vd24gZXNjYXBlIHNlcXVlbmNlIik7YT1pPXQucG9zaXRpb259ZWxzZSBUcihvKT8oSW4odCxhLGksITApLE9fKHQsWTEodCwhMSxlKSksYT1pPXQucG9zaXRpb24pOnQucG9zaXRpb249PT10LmxpbmVTdGFydCYmaDkodCk/bnQodCwidW5leHBlY3RlZCBlbmQgb2YgdGhlIGRvY3VtZW50IHdpdGhpbiBhIGRvdWJsZSBxdW90ZWQgc2NhbGFyIik6KHQucG9zaXRpb24rKyxpPXQucG9zaXRpb24pfW50KHQsInVuZXhwZWN0ZWQgZW5kIG9mIHRoZSBzdHJlYW0gd2l0aGluIGEgZG91YmxlIHF1b3RlZCBzY2FsYXIiKX1mdW5jdGlvbiBLRHQodCxlKXt2YXIgYT0hMCxpLHI9dC50YWcscyxuPXQuYW5jaG9yLG8sZCxjLGgsbCxmPXt9LGcseSx2LG07aWYobT10LmlucHV0LmNoYXJDb2RlQXQodC5wb3NpdGlvbiksbT09PTkxKWQ9OTMsbD0hMSxzPVtdO2Vsc2UgaWYobT09PTEyMylkPTEyNSxsPSEwLHM9e307ZWxzZSByZXR1cm4hMTtmb3IodC5hbmNob3IhPT1udWxsJiYodC5hbmNob3JNYXBbdC5hbmNob3JdPXMpLG09dC5pbnB1dC5jaGFyQ29kZUF0KCsrdC5wb3NpdGlvbik7bSE9PTA7KXtpZihZMSh0LCEwLGUpLG09dC5pbnB1dC5jaGFyQ29kZUF0KHQucG9zaXRpb24pLG09PT1kKXJldHVybiB0LnBvc2l0aW9uKyssdC50YWc9cix0LmFuY2hvcj1uLHQua2luZD1sPyJtYXBwaW5nIjoic2VxdWVuY2UiLHQucmVzdWx0PXMsITA7YXx8bnQodCwibWlzc2VkIGNvbW1hIGJldHdlZW4gZmxvdyBjb2xsZWN0aW9uIGVudHJpZXMiKSx5PWc9dj1udWxsLGM9aD0hMSxtPT09NjMmJihvPXQuaW5wdXQuY2hhckNvZGVBdCh0LnBvc2l0aW9uKzEpLF9hKG8pJiYoYz1oPSEwLHQucG9zaXRpb24rKyxZMSh0LCEwLGUpKSksaT10LmxpbmUsTDModCxlLGw5LCExLCEwKSx5PXQudGFnLGc9dC5yZXN1bHQsWTEodCwhMCxlKSxtPXQuaW5wdXQuY2hhckNvZGVBdCh0LnBvc2l0aW9uKSwoaHx8dC5saW5lPT09aSkmJm09PT01OCYmKGM9ITAsbT10LmlucHV0LmNoYXJDb2RlQXQoKyt0LnBvc2l0aW9uKSxZMSh0LCEwLGUpLEwzKHQsZSxsOSwhMSwhMCksdj10LnJlc3VsdCksbD9UMyh0LHMsZix5LGcsdik6Yz9zLnB1c2goVDModCxudWxsLGYseSxnLHYpKTpzLnB1c2goZyksWTEodCwhMCxlKSxtPXQuaW5wdXQuY2hhckNvZGVBdCh0LnBvc2l0aW9uKSxtPT09NDQ/KGE9ITAsbT10LmlucHV0LmNoYXJDb2RlQXQoKyt0LnBvc2l0aW9uKSk6YT0hMX1udCh0LCJ1bmV4cGVjdGVkIGVuZCBvZiB0aGUgc3RyZWFtIHdpdGhpbiBhIGZsb3cgY29sbGVjdGlvbiIpfWZ1bmN0aW9uIFFEdCh0LGUpe3ZhciBhLGkscj1OXyxzPSExLG49ITEsbz1lLGQ9MCxjPSExLGgsbDtpZihsPXQuaW5wdXQuY2hhckNvZGVBdCh0LnBvc2l0aW9uKSxsPT09MTI0KWk9ITE7ZWxzZSBpZihsPT09NjIpaT0hMDtlbHNlIHJldHVybiExO2Zvcih0LmtpbmQ9InNjYWxhciIsdC5yZXN1bHQ9IiI7bCE9PTA7KWlmKGw9dC5pbnB1dC5jaGFyQ29kZUF0KCsrdC5wb3NpdGlvbiksbD09PTQzfHxsPT09NDUpTl89PT1yP3I9bD09PTQzP0lhZTpSRHQ6bnQodCwicmVwZWF0IG9mIGEgY2hvbXBpbmcgbW9kZSBpZGVudGlmaWVyIik7ZWxzZSBpZigoaD1VRHQobCkpPj0wKWg9PT0wP250KHQsImJhZCBleHBsaWNpdCBpbmRlbnRhdGlvbiB3aWR0aCBvZiBhIGJsb2NrIHNjYWxhcjsgaXQgY2Fubm90IGJlIGxlc3MgdGhhbiBvbmUiKTpuP250KHQsInJlcGVhdCBvZiBhbiBpbmRlbnRhdGlvbiB3aWR0aCBpZGVudGlmaWVyIik6KG89ZStoLTEsbj0hMCk7ZWxzZSBicmVhaztpZih1MChsKSl7ZG8gbD10LmlucHV0LmNoYXJDb2RlQXQoKyt0LnBvc2l0aW9uKTt3aGlsZSh1MChsKSk7aWYobD09PTM1KWRvIGw9dC5pbnB1dC5jaGFyQ29kZUF0KCsrdC5wb3NpdGlvbik7d2hpbGUoIVRyKGwpJiZsIT09MCl9Zm9yKDtsIT09MDspe2ZvcihGXyh0KSx0LmxpbmVJbmRlbnQ9MCxsPXQuaW5wdXQuY2hhckNvZGVBdCh0LnBvc2l0aW9uKTsoIW58fHQubGluZUluZGVudDxvKSYmbD09PTMyOyl0LmxpbmVJbmRlbnQrKyxsPXQuaW5wdXQuY2hhckNvZGVBdCgrK3QucG9zaXRpb24pO2lmKCFuJiZ0LmxpbmVJbmRlbnQ+byYmKG89dC5saW5lSW5kZW50KSxUcihsKSl7ZCsrO2NvbnRpbnVlfWlmKHQubGluZUluZGVudDxvKXtyPT09SWFlP3QucmVzdWx0Kz12cy5yZXBlYXQoYApgLHM/MStkOmQpOnI9PT1OXyYmcyYmKHQucmVzdWx0Kz1gCmApO2JyZWFrfWZvcihpP3UwKGwpPyhjPSEwLHQucmVzdWx0Kz12cy5yZXBlYXQoYApgLHM/MStkOmQpKTpjPyhjPSExLHQucmVzdWx0Kz12cy5yZXBlYXQoYApgLGQrMSkpOmQ9PT0wP3MmJih0LnJlc3VsdCs9IiAiKTp0LnJlc3VsdCs9dnMucmVwZWF0KGAKYCxkKTp0LnJlc3VsdCs9dnMucmVwZWF0KGAKYCxzPzErZDpkKSxzPSEwLG49ITAsZD0wLGE9dC5wb3NpdGlvbjshVHIobCkmJmwhPT0wOylsPXQuaW5wdXQuY2hhckNvZGVBdCgrK3QucG9zaXRpb24pO0luKHQsYSx0LnBvc2l0aW9uLCExKX1yZXR1cm4hMH1mdW5jdGlvbiBXYWUodCxlKXt2YXIgYSxpPXQudGFnLHI9dC5hbmNob3Iscz1bXSxuLG89ITEsZDtmb3IodC5hbmNob3IhPT1udWxsJiYodC5hbmNob3JNYXBbdC5hbmNob3JdPXMpLGQ9dC5pbnB1dC5jaGFyQ29kZUF0KHQucG9zaXRpb24pO2QhPT0wJiYhKGQhPT00NXx8KG49dC5pbnB1dC5jaGFyQ29kZUF0KHQucG9zaXRpb24rMSksIV9hKG4pKSk7KXtpZihvPSEwLHQucG9zaXRpb24rKyxZMSh0LCEwLC0xKSYmdC5saW5lSW5kZW50PD1lKXtzLnB1c2gobnVsbCksZD10LmlucHV0LmNoYXJDb2RlQXQodC5wb3NpdGlvbik7Y29udGludWV9aWYoYT10LmxpbmUsTDModCxlLFBhZSwhMSwhMCkscy5wdXNoKHQucmVzdWx0KSxZMSh0LCEwLC0xKSxkPXQuaW5wdXQuY2hhckNvZGVBdCh0LnBvc2l0aW9uKSwodC5saW5lPT09YXx8dC5saW5lSW5kZW50PmUpJiZkIT09MCludCh0LCJiYWQgaW5kZW50YXRpb24gb2YgYSBzZXF1ZW5jZSBlbnRyeSIpO2Vsc2UgaWYodC5saW5lSW5kZW50PGUpYnJlYWt9cmV0dXJuIG8/KHQudGFnPWksdC5hbmNob3I9cix0LmtpbmQ9InNlcXVlbmNlIix0LnJlc3VsdD1zLCEwKTohMX1mdW5jdGlvbiBKRHQodCxlLGEpe3ZhciBpLHIscyxuLG89dC50YWcsZD10LmFuY2hvcixjPXt9LGg9e30sbD1udWxsLGY9bnVsbCxnPW51bGwseT0hMSx2PSExLG07Zm9yKHQuYW5jaG9yIT09bnVsbCYmKHQuYW5jaG9yTWFwW3QuYW5jaG9yXT1jKSxtPXQuaW5wdXQuY2hhckNvZGVBdCh0LnBvc2l0aW9uKTttIT09MDspe2lmKGk9dC5pbnB1dC5jaGFyQ29kZUF0KHQucG9zaXRpb24rMSkscz10LmxpbmUsbj10LnBvc2l0aW9uLChtPT09NjN8fG09PT01OCkmJl9hKGkpKW09PT02Mz8oeSYmKFQzKHQsYyxoLGwsZixudWxsKSxsPWY9Zz1udWxsKSx2PSEwLHk9ITAscj0hMCk6eT8oeT0hMSxyPSEwKTpudCh0LCJpbmNvbXBsZXRlIGV4cGxpY2l0IG1hcHBpbmcgcGFpcjsgYSBrZXkgbm9kZSBpcyBtaXNzZWQ7IG9yIGZvbGxvd2VkIGJ5IGEgbm9uLXRhYnVsYXRlZCBlbXB0eSBsaW5lIiksdC5wb3NpdGlvbis9MSxtPWk7ZWxzZSBpZihMMyh0LGEsRWFlLCExLCEwKSlpZih0LmxpbmU9PT1zKXtmb3IobT10LmlucHV0LmNoYXJDb2RlQXQodC5wb3NpdGlvbik7dTAobSk7KW09dC5pbnB1dC5jaGFyQ29kZUF0KCsrdC5wb3NpdGlvbik7aWYobT09PTU4KW09dC5pbnB1dC5jaGFyQ29kZUF0KCsrdC5wb3NpdGlvbiksX2EobSl8fG50KHQsImEgd2hpdGVzcGFjZSBjaGFyYWN0ZXIgaXMgZXhwZWN0ZWQgYWZ0ZXIgdGhlIGtleS12YWx1ZSBzZXBhcmF0b3Igd2l0aGluIGEgYmxvY2sgbWFwcGluZyIpLHkmJihUMyh0LGMsaCxsLGYsbnVsbCksbD1mPWc9bnVsbCksdj0hMCx5PSExLHI9ITEsbD10LnRhZyxmPXQucmVzdWx0O2Vsc2UgaWYodiludCh0LCJjYW4gbm90IHJlYWQgYW4gaW1wbGljaXQgbWFwcGluZyBwYWlyOyBhIGNvbG9uIGlzIG1pc3NlZCIpO2Vsc2UgcmV0dXJuIHQudGFnPW8sdC5hbmNob3I9ZCwhMH1lbHNlIGlmKHYpbnQodCwiY2FuIG5vdCByZWFkIGEgYmxvY2sgbWFwcGluZyBlbnRyeTsgYSBtdWx0aWxpbmUga2V5IG1heSBub3QgYmUgYW4gaW1wbGljaXQga2V5Iik7ZWxzZSByZXR1cm4gdC50YWc9byx0LmFuY2hvcj1kLCEwO2Vsc2UgYnJlYWs7aWYoKHQubGluZT09PXN8fHQubGluZUluZGVudD5lKSYmKEwzKHQsZSxjOSwhMCxyKSYmKHk/Zj10LnJlc3VsdDpnPXQucmVzdWx0KSx5fHwoVDModCxjLGgsbCxmLGcscyxuKSxsPWY9Zz1udWxsKSxZMSh0LCEwLC0xKSxtPXQuaW5wdXQuY2hhckNvZGVBdCh0LnBvc2l0aW9uKSksdC5saW5lSW5kZW50PmUmJm0hPT0wKW50KHQsImJhZCBpbmRlbnRhdGlvbiBvZiBhIG1hcHBpbmcgZW50cnkiKTtlbHNlIGlmKHQubGluZUluZGVudDxlKWJyZWFrfXJldHVybiB5JiZUMyh0LGMsaCxsLGYsbnVsbCksdiYmKHQudGFnPW8sdC5hbmNob3I9ZCx0LmtpbmQ9Im1hcHBpbmciLHQucmVzdWx0PWMpLHZ9ZnVuY3Rpb24gZUV0KHQpe3ZhciBlLGE9ITEsaT0hMSxyLHMsbjtpZihuPXQuaW5wdXQuY2hhckNvZGVBdCh0LnBvc2l0aW9uKSxuIT09MzMpcmV0dXJuITE7aWYodC50YWchPT1udWxsJiZudCh0LCJkdXBsaWNhdGlvbiBvZiBhIHRhZyBwcm9wZXJ0eSIpLG49dC5pbnB1dC5jaGFyQ29kZUF0KCsrdC5wb3NpdGlvbiksbj09PTYwPyhhPSEwLG49dC5pbnB1dC5jaGFyQ29kZUF0KCsrdC5wb3NpdGlvbikpOm49PT0zMz8oaT0hMCxyPSIhISIsbj10LmlucHV0LmNoYXJDb2RlQXQoKyt0LnBvc2l0aW9uKSk6cj0iISIsZT10LnBvc2l0aW9uLGEpe2RvIG49dC5pbnB1dC5jaGFyQ29kZUF0KCsrdC5wb3NpdGlvbik7d2hpbGUobiE9PTAmJm4hPT02Mik7dC5wb3NpdGlvbjx0Lmxlbmd0aD8ocz10LmlucHV0LnNsaWNlKGUsdC5wb3NpdGlvbiksbj10LmlucHV0LmNoYXJDb2RlQXQoKyt0LnBvc2l0aW9uKSk6bnQodCwidW5leHBlY3RlZCBlbmQgb2YgdGhlIHN0cmVhbSB3aXRoaW4gYSB2ZXJiYXRpbSB0YWciKX1lbHNle2Zvcig7biE9PTAmJiFfYShuKTspbj09PTMzJiYoaT9udCh0LCJ0YWcgc3VmZml4IGNhbm5vdCBjb250YWluIGV4Y2xhbWF0aW9uIG1hcmtzIik6KHI9dC5pbnB1dC5zbGljZShlLTEsdC5wb3NpdGlvbisxKSxOYWUudGVzdChyKXx8bnQodCwibmFtZWQgdGFnIGhhbmRsZSBjYW5ub3QgY29udGFpbiBzdWNoIGNoYXJhY3RlcnMiKSxpPSEwLGU9dC5wb3NpdGlvbisxKSksbj10LmlucHV0LmNoYXJDb2RlQXQoKyt0LnBvc2l0aW9uKTtzPXQuaW5wdXQuc2xpY2UoZSx0LnBvc2l0aW9uKSxxRHQudGVzdChzKSYmbnQodCwidGFnIHN1ZmZpeCBjYW5ub3QgY29udGFpbiBmbG93IGluZGljYXRvciBjaGFyYWN0ZXJzIil9cmV0dXJuIHMmJiFGYWUudGVzdChzKSYmbnQodCwidGFnIG5hbWUgY2Fubm90IGNvbnRhaW4gc3VjaCBjaGFyYWN0ZXJzOiAiK3MpLGE/dC50YWc9czpQbi5jYWxsKHQudGFnTWFwLHIpP3QudGFnPXQudGFnTWFwW3JdK3M6cj09PSIhIj90LnRhZz0iISIrczpyPT09IiEhIj90LnRhZz0idGFnOnlhbWwub3JnLDIwMDI6IitzOm50KHQsJ3VuZGVjbGFyZWQgdGFnIGhhbmRsZSAiJytyKyciJyksITB9ZnVuY3Rpb24gdEV0KHQpe3ZhciBlLGE7aWYoYT10LmlucHV0LmNoYXJDb2RlQXQodC5wb3NpdGlvbiksYSE9PTM4KXJldHVybiExO2Zvcih0LmFuY2hvciE9PW51bGwmJm50KHQsImR1cGxpY2F0aW9uIG9mIGFuIGFuY2hvciBwcm9wZXJ0eSIpLGE9dC5pbnB1dC5jaGFyQ29kZUF0KCsrdC5wb3NpdGlvbiksZT10LnBvc2l0aW9uO2EhPT0wJiYhX2EoYSkmJiFfMyhhKTspYT10LmlucHV0LmNoYXJDb2RlQXQoKyt0LnBvc2l0aW9uKTtyZXR1cm4gdC5wb3NpdGlvbj09PWUmJm50KHQsIm5hbWUgb2YgYW4gYW5jaG9yIG5vZGUgbXVzdCBjb250YWluIGF0IGxlYXN0IG9uZSBjaGFyYWN0ZXIiKSx0LmFuY2hvcj10LmlucHV0LnNsaWNlKGUsdC5wb3NpdGlvbiksITB9ZnVuY3Rpb24gYUV0KHQpe3ZhciBlLGEsaTtpZihpPXQuaW5wdXQuY2hhckNvZGVBdCh0LnBvc2l0aW9uKSxpIT09NDIpcmV0dXJuITE7Zm9yKGk9dC5pbnB1dC5jaGFyQ29kZUF0KCsrdC5wb3NpdGlvbiksZT10LnBvc2l0aW9uO2khPT0wJiYhX2EoaSkmJiFfMyhpKTspaT10LmlucHV0LmNoYXJDb2RlQXQoKyt0LnBvc2l0aW9uKTtyZXR1cm4gdC5wb3NpdGlvbj09PWUmJm50KHQsIm5hbWUgb2YgYW4gYWxpYXMgbm9kZSBtdXN0IGNvbnRhaW4gYXQgbGVhc3Qgb25lIGNoYXJhY3RlciIpLGE9dC5pbnB1dC5zbGljZShlLHQucG9zaXRpb24pLFBuLmNhbGwodC5hbmNob3JNYXAsYSl8fG50KHQsJ3VuaWRlbnRpZmllZCBhbGlhcyAiJythKyciJyksdC5yZXN1bHQ9dC5hbmNob3JNYXBbYV0sWTEodCwhMCwtMSksITB9ZnVuY3Rpb24gTDModCxlLGEsaSxyKXt2YXIgcyxuLG8sZD0xLGM9ITEsaD0hMSxsLGYsZyx5LHY7aWYodC5saXN0ZW5lciE9PW51bGwmJnQubGlzdGVuZXIoIm9wZW4iLHQpLHQudGFnPW51bGwsdC5hbmNob3I9bnVsbCx0LmtpbmQ9bnVsbCx0LnJlc3VsdD1udWxsLHM9bj1vPWM5PT09YXx8UGFlPT09YSxpJiZZMSh0LCEwLC0xKSYmKGM9ITAsdC5saW5lSW5kZW50PmU/ZD0xOnQubGluZUluZGVudD09PWU/ZD0wOnQubGluZUluZGVudDxlJiYoZD0tMSkpLGQ9PT0xKWZvcig7ZUV0KHQpfHx0RXQodCk7KVkxKHQsITAsLTEpPyhjPSEwLG89cyx0LmxpbmVJbmRlbnQ+ZT9kPTE6dC5saW5lSW5kZW50PT09ZT9kPTA6dC5saW5lSW5kZW50PGUmJihkPS0xKSk6bz0hMTtpZihvJiYobz1jfHxyKSwoZD09PTF8fGM5PT09YSkmJihsOT09PWF8fEVhZT09PWE/eT1lOnk9ZSsxLHY9dC5wb3NpdGlvbi10LmxpbmVTdGFydCxkPT09MT9vJiYoV2FlKHQsdil8fEpEdCh0LHYseSkpfHxLRHQodCx5KT9oPSEwOihuJiZRRHQodCx5KXx8WkR0KHQseSl8fFhEdCh0LHkpP2g9ITA6YUV0KHQpPyhoPSEwLCh0LnRhZyE9PW51bGx8fHQuYW5jaG9yIT09bnVsbCkmJm50KHQsImFsaWFzIG5vZGUgc2hvdWxkIG5vdCBoYXZlIGFueSBwcm9wZXJ0aWVzIikpOllEdCh0LHksbDk9PT1hKSYmKGg9ITAsdC50YWc9PT1udWxsJiYodC50YWc9Ij8iKSksdC5hbmNob3IhPT1udWxsJiYodC5hbmNob3JNYXBbdC5hbmNob3JdPXQucmVzdWx0KSk6ZD09PTAmJihoPW8mJldhZSh0LHYpKSksdC50YWchPT1udWxsJiZ0LnRhZyE9PSIhIilpZih0LnRhZz09PSI/Iil7Zm9yKHQucmVzdWx0IT09bnVsbCYmdC5raW5kIT09InNjYWxhciImJm50KHQsJ3VuYWNjZXB0YWJsZSBub2RlIGtpbmQgZm9yICE8Pz4gdGFnOyBpdCBzaG91bGQgYmUgInNjYWxhciIsIG5vdCAiJyt0LmtpbmQrJyInKSxsPTAsZj10LmltcGxpY2l0VHlwZXMubGVuZ3RoO2w8ZjtsKz0xKWlmKGc9dC5pbXBsaWNpdFR5cGVzW2xdLGcucmVzb2x2ZSh0LnJlc3VsdCkpe3QucmVzdWx0PWcuY29uc3RydWN0KHQucmVzdWx0KSx0LnRhZz1nLnRhZyx0LmFuY2hvciE9PW51bGwmJih0LmFuY2hvck1hcFt0LmFuY2hvcl09dC5yZXN1bHQpO2JyZWFrfX1lbHNlIFBuLmNhbGwodC50eXBlTWFwW3Qua2luZHx8ImZhbGxiYWNrIl0sdC50YWcpPyhnPXQudHlwZU1hcFt0LmtpbmR8fCJmYWxsYmFjayJdW3QudGFnXSx0LnJlc3VsdCE9PW51bGwmJmcua2luZCE9PXQua2luZCYmbnQodCwidW5hY2NlcHRhYmxlIG5vZGUga2luZCBmb3IgITwiK3QudGFnKyc+IHRhZzsgaXQgc2hvdWxkIGJlICInK2cua2luZCsnIiwgbm90ICInK3Qua2luZCsnIicpLGcucmVzb2x2ZSh0LnJlc3VsdCk/KHQucmVzdWx0PWcuY29uc3RydWN0KHQucmVzdWx0KSx0LmFuY2hvciE9PW51bGwmJih0LmFuY2hvck1hcFt0LmFuY2hvcl09dC5yZXN1bHQpKTpudCh0LCJjYW5ub3QgcmVzb2x2ZSBhIG5vZGUgd2l0aCAhPCIrdC50YWcrIj4gZXhwbGljaXQgdGFnIikpOm50KHQsInVua25vd24gdGFnICE8Iit0LnRhZysiPiIpO3JldHVybiB0Lmxpc3RlbmVyIT09bnVsbCYmdC5saXN0ZW5lcigiY2xvc2UiLHQpLHQudGFnIT09bnVsbHx8dC5hbmNob3IhPT1udWxsfHxofWZ1bmN0aW9uIGlFdCh0KXt2YXIgZT10LnBvc2l0aW9uLGEsaSxyLHM9ITEsbjtmb3IodC52ZXJzaW9uPW51bGwsdC5jaGVja0xpbmVCcmVha3M9dC5sZWdhY3ksdC50YWdNYXA9e30sdC5hbmNob3JNYXA9e307KG49dC5pbnB1dC5jaGFyQ29kZUF0KHQucG9zaXRpb24pKSE9PTAmJihZMSh0LCEwLC0xKSxuPXQuaW5wdXQuY2hhckNvZGVBdCh0LnBvc2l0aW9uKSwhKHQubGluZUluZGVudD4wfHxuIT09MzcpKTspe2ZvcihzPSEwLG49dC5pbnB1dC5jaGFyQ29kZUF0KCsrdC5wb3NpdGlvbiksYT10LnBvc2l0aW9uO24hPT0wJiYhX2Eobik7KW49dC5pbnB1dC5jaGFyQ29kZUF0KCsrdC5wb3NpdGlvbik7Zm9yKGk9dC5pbnB1dC5zbGljZShhLHQucG9zaXRpb24pLHI9W10saS5sZW5ndGg8MSYmbnQodCwiZGlyZWN0aXZlIG5hbWUgbXVzdCBub3QgYmUgbGVzcyB0aGFuIG9uZSBjaGFyYWN0ZXIgaW4gbGVuZ3RoIik7biE9PTA7KXtmb3IoO3UwKG4pOyluPXQuaW5wdXQuY2hhckNvZGVBdCgrK3QucG9zaXRpb24pO2lmKG49PT0zNSl7ZG8gbj10LmlucHV0LmNoYXJDb2RlQXQoKyt0LnBvc2l0aW9uKTt3aGlsZShuIT09MCYmIVRyKG4pKTticmVha31pZihUcihuKSlicmVhaztmb3IoYT10LnBvc2l0aW9uO24hPT0wJiYhX2Eobik7KW49dC5pbnB1dC5jaGFyQ29kZUF0KCsrdC5wb3NpdGlvbik7ci5wdXNoKHQuaW5wdXQuc2xpY2UoYSx0LnBvc2l0aW9uKSl9biE9PTAmJkZfKHQpLFBuLmNhbGwoamFlLGkpP2phZVtpXSh0LGkscik6ZDkodCwndW5rbm93biBkb2N1bWVudCBkaXJlY3RpdmUgIicraSsnIicpfWlmKFkxKHQsITAsLTEpLHQubGluZUluZGVudD09PTAmJnQuaW5wdXQuY2hhckNvZGVBdCh0LnBvc2l0aW9uKT09PTQ1JiZ0LmlucHV0LmNoYXJDb2RlQXQodC5wb3NpdGlvbisxKT09PTQ1JiZ0LmlucHV0LmNoYXJDb2RlQXQodC5wb3NpdGlvbisyKT09PTQ1Pyh0LnBvc2l0aW9uKz0zLFkxKHQsITAsLTEpKTpzJiZudCh0LCJkaXJlY3RpdmVzIGVuZCBtYXJrIGlzIGV4cGVjdGVkIiksTDModCx0LmxpbmVJbmRlbnQtMSxjOSwhMSwhMCksWTEodCwhMCwtMSksdC5jaGVja0xpbmVCcmVha3MmJkhEdC50ZXN0KHQuaW5wdXQuc2xpY2UoZSx0LnBvc2l0aW9uKSkmJmQ5KHQsIm5vbi1BU0NJSSBsaW5lIGJyZWFrcyBhcmUgaW50ZXJwcmV0ZWQgYXMgY29udGVudCIpLHQuZG9jdW1lbnRzLnB1c2godC5yZXN1bHQpLHQucG9zaXRpb249PT10LmxpbmVTdGFydCYmaDkodCkpe3QuaW5wdXQuY2hhckNvZGVBdCh0LnBvc2l0aW9uKT09PTQ2JiYodC5wb3NpdGlvbis9MyxZMSh0LCEwLC0xKSk7cmV0dXJufWlmKHQucG9zaXRpb248dC5sZW5ndGgtMSludCh0LCJlbmQgb2YgdGhlIHN0cmVhbSBvciBhIGRvY3VtZW50IHNlcGFyYXRvciBpcyBleHBlY3RlZCIpO2Vsc2UgcmV0dXJufWZ1bmN0aW9uIEdhZSh0LGUpe3Q9U3RyaW5nKHQpLGU9ZXx8e30sdC5sZW5ndGghPT0wJiYodC5jaGFyQ29kZUF0KHQubGVuZ3RoLTEpIT09MTAmJnQuY2hhckNvZGVBdCh0Lmxlbmd0aC0xKSE9PTEzJiYodCs9YApgKSx0LmNoYXJDb2RlQXQoMCk9PT02NTI3OSYmKHQ9dC5zbGljZSgxKSkpO3ZhciBhPW5ldyBHRHQodCxlKSxpPXQuaW5kZXhPZigiXDAiKTtmb3IoaSE9PS0xJiYoYS5wb3NpdGlvbj1pLG50KGEsIm51bGwgYnl0ZSBpcyBub3QgYWxsb3dlZCBpbiBpbnB1dCIpKSxhLmlucHV0Kz0iXDAiO2EuaW5wdXQuY2hhckNvZGVBdChhLnBvc2l0aW9uKT09PTMyOylhLmxpbmVJbmRlbnQrPTEsYS5wb3NpdGlvbis9MTtmb3IoO2EucG9zaXRpb248YS5sZW5ndGgtMTspaUV0KGEpO3JldHVybiBhLmRvY3VtZW50c31mdW5jdGlvbiBZYWUodCxlLGEpe2UhPT1udWxsJiZ0eXBlb2YgZT09Im9iamVjdCImJnR5cGVvZiBhPiJ1IiYmKGE9ZSxlPW51bGwpO3ZhciBpPUdhZSh0LGEpO2lmKHR5cGVvZiBlIT0iZnVuY3Rpb24iKXJldHVybiBpO2Zvcih2YXIgcj0wLHM9aS5sZW5ndGg7cjxzO3IrPTEpZShpW3JdKX1mdW5jdGlvbiBaYWUodCxlKXt2YXIgYT1HYWUodCxlKTtpZihhLmxlbmd0aCE9PTApe2lmKGEubGVuZ3RoPT09MSlyZXR1cm4gYVswXTt0aHJvdyBuZXcgQWFlKCJleHBlY3RlZCBhIHNpbmdsZSBkb2N1bWVudCBpbiB0aGUgc3RyZWFtLCBidXQgZm91bmQgbW9yZSIpfX1mdW5jdGlvbiByRXQodCxlLGEpe3JldHVybiB0eXBlb2YgZT09Im9iamVjdCImJmUhPT1udWxsJiZ0eXBlb2YgYT4idSImJihhPWUsZT1udWxsKSxZYWUodCxlLHZzLmV4dGVuZCh7c2NoZW1hOkRhZX0sYSkpfWZ1bmN0aW9uIHNFdCh0LGUpe3JldHVybiBaYWUodCx2cy5leHRlbmQoe3NjaGVtYTpEYWV9LGUpKX0kNi5leHBvcnRzLmxvYWRBbGw9WWFlLCQ2LmV4cG9ydHMubG9hZD1aYWUsJDYuZXhwb3J0cy5zYWZlTG9hZEFsbD1yRXQsJDYuZXhwb3J0cy5zYWZlTG9hZD1zRXQ7dmFyIGYwfSk7dmFyIHlpZT1odCgoT18xLHFfKT0+eyJ1c2Ugc3RyaWN0Ijt2YXIgQTY9ZDAoKSxENj1rMygpLG5FdD1MNigpLG9FdD1DMygpLEthZT1PYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLFFhZT1PYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LGxFdD05LEU2PTEwLGNFdD0xMyxkRXQ9MzIsaEV0PTMzLHBFdD0zNCxKYWU9MzUsdUV0PTM3LGZFdD0zOCxtRXQ9MzksZ0V0PTQyLGVpZT00NCxiRXQ9NDUsdGllPTU4LHZFdD02MSx5RXQ9NjIseEV0PTYzLHdFdD02NCxhaWU9OTEsaWllPTkzLE1FdD05NixyaWU9MTIzLHpFdD0xMjQsc2llPTEyNSxqMj17fTtqMlswXT0iXFwwIixqMls3XT0iXFxhIixqMls4XT0iXFxiIixqMls5XT0iXFx0IixqMlsxMF09IlxcbiIsajJbMTFdPSJcXHYiLGoyWzEyXT0iXFxmIixqMlsxM109IlxcciIsajJbMjddPSJcXGUiLGoyWzM0XT0nXFwiJyxqMls5Ml09IlxcXFwiLGoyWzEzM109IlxcTiIsajJbMTYwXT0iXFxfIixqMls4MjMyXT0iXFxMIixqMls4MjMzXT0iXFxQIjt2YXIga0V0PVsieSIsIlkiLCJ5ZXMiLCJZZXMiLCJZRVMiLCJvbiIsIk9uIiwiT04iLCJuIiwiTiIsIm5vIiwiTm8iLCJOTyIsIm9mZiIsIk9mZiIsIk9GRiJdO2Z1bmN0aW9uIFNFdCh0LGUpe3ZhciBhLGkscixzLG4sbyxkO2lmKGU9PT1udWxsKXJldHVybnt9O2ZvcihhPXt9LGk9T2JqZWN0LmtleXMoZSkscj0wLHM9aS5sZW5ndGg7cjxzO3IrPTEpbj1pW3JdLG89U3RyaW5nKGVbbl0pLG4uc2xpY2UoMCwyKT09PSIhISImJihuPSJ0YWc6eWFtbC5vcmcsMjAwMjoiK24uc2xpY2UoMikpLGQ9dC5jb21waWxlZFR5cGVNYXAuZmFsbGJhY2tbbl0sZCYmUWFlLmNhbGwoZC5zdHlsZUFsaWFzZXMsbykmJihvPWQuc3R5bGVBbGlhc2VzW29dKSxhW25dPW87cmV0dXJuIGF9ZnVuY3Rpb24gbmllKHQpe3ZhciBlLGEsaTtpZihlPXQudG9TdHJpbmcoMTYpLnRvVXBwZXJDYXNlKCksdDw9MjU1KWE9IngiLGk9MjtlbHNlIGlmKHQ8PTY1NTM1KWE9InUiLGk9NDtlbHNlIGlmKHQ8PTQyOTQ5NjcyOTUpYT0iVSIsaT04O2Vsc2UgdGhyb3cgbmV3IEQ2KCJjb2RlIHBvaW50IHdpdGhpbiBhIHN0cmluZyBtYXkgbm90IGJlIGdyZWF0ZXIgdGhhbiAweEZGRkZGRkZGIik7cmV0dXJuIlxcIithK0E2LnJlcGVhdCgiMCIsaS1lLmxlbmd0aCkrZX1mdW5jdGlvbiBDRXQodCl7dGhpcy5zY2hlbWE9dC5zY2hlbWF8fG5FdCx0aGlzLmluZGVudD1NYXRoLm1heCgxLHQuaW5kZW50fHwyKSx0aGlzLm5vQXJyYXlJbmRlbnQ9dC5ub0FycmF5SW5kZW50fHwhMSx0aGlzLnNraXBJbnZhbGlkPXQuc2tpcEludmFsaWR8fCExLHRoaXMuZmxvd0xldmVsPUE2LmlzTm90aGluZyh0LmZsb3dMZXZlbCk/LTE6dC5mbG93TGV2ZWwsdGhpcy5zdHlsZU1hcD1TRXQodGhpcy5zY2hlbWEsdC5zdHlsZXN8fG51bGwpLHRoaXMuc29ydEtleXM9dC5zb3J0S2V5c3x8ITEsdGhpcy5saW5lV2lkdGg9dC5saW5lV2lkdGh8fDgwLHRoaXMubm9SZWZzPXQubm9SZWZzfHwhMSx0aGlzLm5vQ29tcGF0TW9kZT10Lm5vQ29tcGF0TW9kZXx8ITEsdGhpcy5jb25kZW5zZUZsb3c9dC5jb25kZW5zZUZsb3d8fCExLHRoaXMuaW1wbGljaXRUeXBlcz10aGlzLnNjaGVtYS5jb21waWxlZEltcGxpY2l0LHRoaXMuZXhwbGljaXRUeXBlcz10aGlzLnNjaGVtYS5jb21waWxlZEV4cGxpY2l0LHRoaXMudGFnPW51bGwsdGhpcy5yZXN1bHQ9IiIsdGhpcy5kdXBsaWNhdGVzPVtdLHRoaXMudXNlZER1cGxpY2F0ZXM9bnVsbH1mdW5jdGlvbiBvaWUodCxlKXtmb3IodmFyIGE9QTYucmVwZWF0KCIgIixlKSxpPTAscj0tMSxzPSIiLG4sbz10Lmxlbmd0aDtpPG87KXI9dC5pbmRleE9mKGAKYCxpKSxyPT09LTE/KG49dC5zbGljZShpKSxpPW8pOihuPXQuc2xpY2UoaSxyKzEpLGk9cisxKSxuLmxlbmd0aCYmbiE9PWAKYCYmKHMrPWEpLHMrPW47cmV0dXJuIHN9ZnVuY3Rpb24gUl8odCxlKXtyZXR1cm5gCmArQTYucmVwZWF0KCIgIix0LmluZGVudCplKX1mdW5jdGlvbiBfRXQodCxlKXt2YXIgYSxpLHI7Zm9yKGE9MCxpPXQuaW1wbGljaXRUeXBlcy5sZW5ndGg7YTxpO2ErPTEpaWYocj10LmltcGxpY2l0VHlwZXNbYV0sci5yZXNvbHZlKGUpKXJldHVybiEwO3JldHVybiExfWZ1bmN0aW9uIEJfKHQpe3JldHVybiB0PT09ZEV0fHx0PT09bEV0fWZ1bmN0aW9uICQzKHQpe3JldHVybiAzMjw9dCYmdDw9MTI2fHwxNjE8PXQmJnQ8PTU1Mjk1JiZ0IT09ODIzMiYmdCE9PTgyMzN8fDU3MzQ0PD10JiZ0PD02NTUzMyYmdCE9PTY1Mjc5fHw2NTUzNjw9dCYmdDw9MTExNDExMX1mdW5jdGlvbiBURXQodCl7cmV0dXJuICQzKHQpJiYhQl8odCkmJnQhPT02NTI3OSYmdCE9PWNFdCYmdCE9PUU2fWZ1bmN0aW9uIGxpZSh0LGUpe3JldHVybiAkMyh0KSYmdCE9PTY1Mjc5JiZ0IT09ZWllJiZ0IT09YWllJiZ0IT09aWllJiZ0IT09cmllJiZ0IT09c2llJiZ0IT09dGllJiYodCE9PUphZXx8ZSYmVEV0KGUpKX1mdW5jdGlvbiBMRXQodCl7cmV0dXJuICQzKHQpJiZ0IT09NjUyNzkmJiFCXyh0KSYmdCE9PWJFdCYmdCE9PXhFdCYmdCE9PXRpZSYmdCE9PWVpZSYmdCE9PWFpZSYmdCE9PWlpZSYmdCE9PXJpZSYmdCE9PXNpZSYmdCE9PUphZSYmdCE9PWZFdCYmdCE9PWdFdCYmdCE9PWhFdCYmdCE9PXpFdCYmdCE9PXZFdCYmdCE9PXlFdCYmdCE9PW1FdCYmdCE9PXBFdCYmdCE9PXVFdCYmdCE9PXdFdCYmdCE9PU1FdH1mdW5jdGlvbiBjaWUodCl7dmFyIGU9L15cbiogLztyZXR1cm4gZS50ZXN0KHQpfXZhciBkaWU9MSxoaWU9MixwaWU9Myx1aWU9NCxwOT01O2Z1bmN0aW9uICRFdCh0LGUsYSxpLHIpe3ZhciBzLG4sbyxkPSExLGM9ITEsaD1pIT09LTEsbD0tMSxmPUxFdCh0LmNoYXJDb2RlQXQoMCkpJiYhQl8odC5jaGFyQ29kZUF0KHQubGVuZ3RoLTEpKTtpZihlKWZvcihzPTA7czx0Lmxlbmd0aDtzKyspe2lmKG49dC5jaGFyQ29kZUF0KHMpLCEkMyhuKSlyZXR1cm4gcDk7bz1zPjA/dC5jaGFyQ29kZUF0KHMtMSk6bnVsbCxmPWYmJmxpZShuLG8pfWVsc2V7Zm9yKHM9MDtzPHQubGVuZ3RoO3MrKyl7aWYobj10LmNoYXJDb2RlQXQocyksbj09PUU2KWQ9ITAsaCYmKGM9Y3x8cy1sLTE+aSYmdFtsKzFdIT09IiAiLGw9cyk7ZWxzZSBpZighJDMobikpcmV0dXJuIHA5O289cz4wP3QuY2hhckNvZGVBdChzLTEpOm51bGwsZj1mJiZsaWUobixvKX1jPWN8fGgmJnMtbC0xPmkmJnRbbCsxXSE9PSIgIn1yZXR1cm4hZCYmIWM/ZiYmIXIodCk/ZGllOmhpZTphPjkmJmNpZSh0KT9wOTpjP3VpZTpwaWV9ZnVuY3Rpb24gQUV0KHQsZSxhLGkpe3QuZHVtcD0oZnVuY3Rpb24oKXtpZihlLmxlbmd0aD09PTApcmV0dXJuIicnIjtpZighdC5ub0NvbXBhdE1vZGUmJmtFdC5pbmRleE9mKGUpIT09LTEpcmV0dXJuIiciK2UrIiciO3ZhciByPXQuaW5kZW50Kk1hdGgubWF4KDEsYSkscz10LmxpbmVXaWR0aD09PS0xPy0xOk1hdGgubWF4KE1hdGgubWluKHQubGluZVdpZHRoLDQwKSx0LmxpbmVXaWR0aC1yKSxuPWl8fHQuZmxvd0xldmVsPi0xJiZhPj10LmZsb3dMZXZlbDtmdW5jdGlvbiBvKGQpe3JldHVybiBfRXQodCxkKX1zd2l0Y2goJEV0KGUsbix0LmluZGVudCxzLG8pKXtjYXNlIGRpZTpyZXR1cm4gZTtjYXNlIGhpZTpyZXR1cm4iJyIrZS5yZXBsYWNlKC8nL2csIicnIikrIiciO2Nhc2UgcGllOnJldHVybiJ8IitmaWUoZSx0LmluZGVudCkrbWllKG9pZShlLHIpKTtjYXNlIHVpZTpyZXR1cm4iPiIrZmllKGUsdC5pbmRlbnQpK21pZShvaWUoREV0KGUscykscikpO2Nhc2UgcDk6cmV0dXJuJyInK0VFdChlLHMpKyciJztkZWZhdWx0OnRocm93IG5ldyBENigiaW1wb3NzaWJsZSBlcnJvcjogaW52YWxpZCBzY2FsYXIgc3R5bGUiKX19KSgpfWZ1bmN0aW9uIGZpZSh0LGUpe3ZhciBhPWNpZSh0KT9TdHJpbmcoZSk6IiIsaT10W3QubGVuZ3RoLTFdPT09YApgLHI9aSYmKHRbdC5sZW5ndGgtMl09PT1gCmB8fHQ9PT1gCmApLHM9cj8iKyI6aT8iIjoiLSI7cmV0dXJuIGErcytgCmB9ZnVuY3Rpb24gbWllKHQpe3JldHVybiB0W3QubGVuZ3RoLTFdPT09YApgP3Quc2xpY2UoMCwtMSk6dH1mdW5jdGlvbiBERXQodCxlKXtmb3IodmFyIGE9LyhcbispKFteXG5dKikvZyxpPShmdW5jdGlvbigpe3ZhciBjPXQuaW5kZXhPZihgCmApO3JldHVybiBjPWMhPT0tMT9jOnQubGVuZ3RoLGEubGFzdEluZGV4PWMsZ2llKHQuc2xpY2UoMCxjKSxlKX0pKCkscj10WzBdPT09YApgfHx0WzBdPT09IiAiLHMsbjtuPWEuZXhlYyh0KTspe3ZhciBvPW5bMV0sZD1uWzJdO3M9ZFswXT09PSIgIixpKz1vKyghciYmIXMmJmQhPT0iIj9gCmA6IiIpK2dpZShkLGUpLHI9c31yZXR1cm4gaX1mdW5jdGlvbiBnaWUodCxlKXtpZih0PT09IiJ8fHRbMF09PT0iICIpcmV0dXJuIHQ7Zm9yKHZhciBhPS8gW14gXS9nLGkscj0wLHMsbj0wLG89MCxkPSIiO2k9YS5leGVjKHQpOylvPWkuaW5kZXgsby1yPmUmJihzPW4+cj9uOm8sZCs9YApgK3Quc2xpY2UocixzKSxyPXMrMSksbj1vO3JldHVybiBkKz1gCmAsdC5sZW5ndGgtcj5lJiZuPnI/ZCs9dC5zbGljZShyLG4pK2AKYCt0LnNsaWNlKG4rMSk6ZCs9dC5zbGljZShyKSxkLnNsaWNlKDEpfWZ1bmN0aW9uIEVFdCh0KXtmb3IodmFyIGU9IiIsYSxpLHIscz0wO3M8dC5sZW5ndGg7cysrKXtpZihhPXQuY2hhckNvZGVBdChzKSxhPj01NTI5NiYmYTw9NTYzMTkmJihpPXQuY2hhckNvZGVBdChzKzEpLGk+PTU2MzIwJiZpPD01NzM0Mykpe2UrPW5pZSgoYS01NTI5NikqMTAyNCtpLTU2MzIwKzY1NTM2KSxzKys7Y29udGludWV9cj1qMlthXSxlKz0hciYmJDMoYSk/dFtzXTpyfHxuaWUoYSl9cmV0dXJuIGV9ZnVuY3Rpb24gUEV0KHQsZSxhKXt2YXIgaT0iIixyPXQudGFnLHMsbjtmb3Iocz0wLG49YS5sZW5ndGg7czxuO3MrPTEpbTAodCxlLGFbc10sITEsITEpJiYocyE9PTAmJihpKz0iLCIrKHQuY29uZGVuc2VGbG93PyIiOiIgIikpLGkrPXQuZHVtcCk7dC50YWc9cix0LmR1bXA9IlsiK2krIl0ifWZ1bmN0aW9uIElFdCh0LGUsYSxpKXt2YXIgcj0iIixzPXQudGFnLG4sbztmb3Iobj0wLG89YS5sZW5ndGg7bjxvO24rPTEpbTAodCxlKzEsYVtuXSwhMCwhMCkmJigoIWl8fG4hPT0wKSYmKHIrPVJfKHQsZSkpLHQuZHVtcCYmRTY9PT10LmR1bXAuY2hhckNvZGVBdCgwKT9yKz0iLSI6cis9Ii0gIixyKz10LmR1bXApO3QudGFnPXMsdC5kdW1wPXJ8fCJbXSJ9ZnVuY3Rpb24gTkV0KHQsZSxhKXt2YXIgaT0iIixyPXQudGFnLHM9T2JqZWN0LmtleXMoYSksbixvLGQsYyxoO2ZvcihuPTAsbz1zLmxlbmd0aDtuPG87bis9MSloPSIiLG4hPT0wJiYoaCs9IiwgIiksdC5jb25kZW5zZUZsb3cmJihoKz0nIicpLGQ9c1tuXSxjPWFbZF0sbTAodCxlLGQsITEsITEpJiYodC5kdW1wLmxlbmd0aD4xMDI0JiYoaCs9Ij8gIiksaCs9dC5kdW1wKyh0LmNvbmRlbnNlRmxvdz8nIic6IiIpKyI6IisodC5jb25kZW5zZUZsb3c/IiI6IiAiKSxtMCh0LGUsYywhMSwhMSkmJihoKz10LmR1bXAsaSs9aCkpO3QudGFnPXIsdC5kdW1wPSJ7IitpKyJ9In1mdW5jdGlvbiBGRXQodCxlLGEsaSl7dmFyIHI9IiIscz10LnRhZyxuPU9iamVjdC5rZXlzKGEpLG8sZCxjLGgsbCxmO2lmKHQuc29ydEtleXM9PT0hMCluLnNvcnQoKTtlbHNlIGlmKHR5cGVvZiB0LnNvcnRLZXlzPT0iZnVuY3Rpb24iKW4uc29ydCh0LnNvcnRLZXlzKTtlbHNlIGlmKHQuc29ydEtleXMpdGhyb3cgbmV3IEQ2KCJzb3J0S2V5cyBtdXN0IGJlIGEgYm9vbGVhbiBvciBhIGZ1bmN0aW9uIik7Zm9yKG89MCxkPW4ubGVuZ3RoO288ZDtvKz0xKWY9IiIsKCFpfHxvIT09MCkmJihmKz1SXyh0LGUpKSxjPW5bb10saD1hW2NdLG0wKHQsZSsxLGMsITAsITAsITApJiYobD10LnRhZyE9PW51bGwmJnQudGFnIT09Ij8ifHx0LmR1bXAmJnQuZHVtcC5sZW5ndGg+MTAyNCxsJiYodC5kdW1wJiZFNj09PXQuZHVtcC5jaGFyQ29kZUF0KDApP2YrPSI/IjpmKz0iPyAiKSxmKz10LmR1bXAsbCYmKGYrPVJfKHQsZSkpLG0wKHQsZSsxLGgsITAsbCkmJih0LmR1bXAmJkU2PT09dC5kdW1wLmNoYXJDb2RlQXQoMCk/Zis9IjoiOmYrPSI6ICIsZis9dC5kdW1wLHIrPWYpKTt0LnRhZz1zLHQuZHVtcD1yfHwie30ifWZ1bmN0aW9uIGJpZSh0LGUsYSl7dmFyIGkscixzLG4sbyxkO2ZvcihyPWE/dC5leHBsaWNpdFR5cGVzOnQuaW1wbGljaXRUeXBlcyxzPTAsbj1yLmxlbmd0aDtzPG47cys9MSlpZihvPXJbc10sKG8uaW5zdGFuY2VPZnx8by5wcmVkaWNhdGUpJiYoIW8uaW5zdGFuY2VPZnx8dHlwZW9mIGU9PSJvYmplY3QiJiZlIGluc3RhbmNlb2Ygby5pbnN0YW5jZU9mKSYmKCFvLnByZWRpY2F0ZXx8by5wcmVkaWNhdGUoZSkpKXtpZih0LnRhZz1hP28udGFnOiI/IixvLnJlcHJlc2VudCl7aWYoZD10LnN0eWxlTWFwW28udGFnXXx8by5kZWZhdWx0U3R5bGUsS2FlLmNhbGwoby5yZXByZXNlbnQpPT09IltvYmplY3QgRnVuY3Rpb25dIilpPW8ucmVwcmVzZW50KGUsZCk7ZWxzZSBpZihRYWUuY2FsbChvLnJlcHJlc2VudCxkKSlpPW8ucmVwcmVzZW50W2RdKGUsZCk7ZWxzZSB0aHJvdyBuZXcgRDYoIiE8IitvLnRhZysnPiB0YWcgcmVzb2x2ZXIgYWNjZXB0cyBub3QgIicrZCsnIiBzdHlsZScpO3QuZHVtcD1pfXJldHVybiEwfXJldHVybiExfWZ1bmN0aW9uIG0wKHQsZSxhLGkscixzKXt0LnRhZz1udWxsLHQuZHVtcD1hLGJpZSh0LGEsITEpfHxiaWUodCxhLCEwKTt2YXIgbj1LYWUuY2FsbCh0LmR1bXApO2kmJihpPXQuZmxvd0xldmVsPDB8fHQuZmxvd0xldmVsPmUpO3ZhciBvPW49PT0iW29iamVjdCBPYmplY3RdInx8bj09PSJbb2JqZWN0IEFycmF5XSIsZCxjO2lmKG8mJihkPXQuZHVwbGljYXRlcy5pbmRleE9mKGEpLGM9ZCE9PS0xKSwodC50YWchPT1udWxsJiZ0LnRhZyE9PSI/Inx8Y3x8dC5pbmRlbnQhPT0yJiZlPjApJiYocj0hMSksYyYmdC51c2VkRHVwbGljYXRlc1tkXSl0LmR1bXA9IipyZWZfIitkO2Vsc2V7aWYobyYmYyYmIXQudXNlZER1cGxpY2F0ZXNbZF0mJih0LnVzZWREdXBsaWNhdGVzW2RdPSEwKSxuPT09IltvYmplY3QgT2JqZWN0XSIpaSYmT2JqZWN0LmtleXModC5kdW1wKS5sZW5ndGghPT0wPyhGRXQodCxlLHQuZHVtcCxyKSxjJiYodC5kdW1wPSImcmVmXyIrZCt0LmR1bXApKTooTkV0KHQsZSx0LmR1bXApLGMmJih0LmR1bXA9IiZyZWZfIitkKyIgIit0LmR1bXApKTtlbHNlIGlmKG49PT0iW29iamVjdCBBcnJheV0iKXt2YXIgaD10Lm5vQXJyYXlJbmRlbnQmJmU+MD9lLTE6ZTtpJiZ0LmR1bXAubGVuZ3RoIT09MD8oSUV0KHQsaCx0LmR1bXAsciksYyYmKHQuZHVtcD0iJnJlZl8iK2QrdC5kdW1wKSk6KFBFdCh0LGgsdC5kdW1wKSxjJiYodC5kdW1wPSImcmVmXyIrZCsiICIrdC5kdW1wKSl9ZWxzZSBpZihuPT09IltvYmplY3QgU3RyaW5nXSIpdC50YWchPT0iPyImJkFFdCh0LHQuZHVtcCxlLHMpO2Vsc2V7aWYodC5za2lwSW52YWxpZClyZXR1cm4hMTt0aHJvdyBuZXcgRDYoInVuYWNjZXB0YWJsZSBraW5kIG9mIGFuIG9iamVjdCB0byBkdW1wICIrbil9dC50YWchPT1udWxsJiZ0LnRhZyE9PSI/IiYmKHQuZHVtcD0iITwiK3QudGFnKyI+ICIrdC5kdW1wKX1yZXR1cm4hMH1mdW5jdGlvbiBPRXQodCxlKXt2YXIgYT1bXSxpPVtdLHIscztmb3IoSF8odCxhLGkpLHI9MCxzPWkubGVuZ3RoO3I8cztyKz0xKWUuZHVwbGljYXRlcy5wdXNoKGFbaVtyXV0pO2UudXNlZER1cGxpY2F0ZXM9bmV3IEFycmF5KHMpfWZ1bmN0aW9uIEhfKHQsZSxhKXt2YXIgaSxyLHM7aWYodCE9PW51bGwmJnR5cGVvZiB0PT0ib2JqZWN0IilpZihyPWUuaW5kZXhPZih0KSxyIT09LTEpYS5pbmRleE9mKHIpPT09LTEmJmEucHVzaChyKTtlbHNlIGlmKGUucHVzaCh0KSxBcnJheS5pc0FycmF5KHQpKWZvcihyPTAscz10Lmxlbmd0aDtyPHM7cis9MSlIXyh0W3JdLGUsYSk7ZWxzZSBmb3IoaT1PYmplY3Qua2V5cyh0KSxyPTAscz1pLmxlbmd0aDtyPHM7cis9MSlIXyh0W2lbcl1dLGUsYSl9ZnVuY3Rpb24gdmllKHQsZSl7ZT1lfHx7fTt2YXIgYT1uZXcgQ0V0KGUpO3JldHVybiBhLm5vUmVmc3x8T0V0KHQsYSksbTAoYSwwLHQsITAsITApP2EuZHVtcCtgCmA6IiJ9ZnVuY3Rpb24gUkV0KHQsZSl7cmV0dXJuIHZpZSh0LEE2LmV4dGVuZCh7c2NoZW1hOm9FdH0sZSkpfXFfLmV4cG9ydHMuZHVtcD12aWUscV8uZXhwb3J0cy5zYWZlRHVtcD1SRXR9KTt2YXIgd2llPWh0KChSXzEsRTEpPT57InVzZSBzdHJpY3QiO3ZhciB1OT1YYWUoKSx4aWU9eWllKCk7ZnVuY3Rpb24gZjkodCl7cmV0dXJuIGZ1bmN0aW9uKCl7dGhyb3cgbmV3IEVycm9yKCJGdW5jdGlvbiAiK3QrIiBpcyBkZXByZWNhdGVkIGFuZCBjYW5ub3QgYmUgdXNlZC4iKX19RTEuZXhwb3J0cy5UeXBlPWEyKCksRTEuZXhwb3J0cy5TY2hlbWE9aDAoKSxFMS5leHBvcnRzLkZBSUxTQUZFX1NDSEVNQT1uOSgpLEUxLmV4cG9ydHMuSlNPTl9TQ0hFTUE9RV8oKSxFMS5leHBvcnRzLkNPUkVfU0NIRU1BPVBfKCksRTEuZXhwb3J0cy5ERUZBVUxUX1NBRkVfU0NIRU1BPUMzKCksRTEuZXhwb3J0cy5ERUZBVUxUX0ZVTExfU0NIRU1BPUw2KCksRTEuZXhwb3J0cy5sb2FkPXU5LmxvYWQsRTEuZXhwb3J0cy5sb2FkQWxsPXU5LmxvYWRBbGwsRTEuZXhwb3J0cy5zYWZlTG9hZD11OS5zYWZlTG9hZCxFMS5leHBvcnRzLnNhZmVMb2FkQWxsPXU5LnNhZmVMb2FkQWxsLEUxLmV4cG9ydHMuZHVtcD14aWUuZHVtcCxFMS5leHBvcnRzLnNhZmVEdW1wPXhpZS5zYWZlRHVtcCxFMS5leHBvcnRzLllBTUxFeGNlcHRpb249azMoKSxFMS5leHBvcnRzLk1JTklNQUxfU0NIRU1BPW45KCksRTEuZXhwb3J0cy5TQUZFX1NDSEVNQT1DMygpLEUxLmV4cG9ydHMuREVGQVVMVF9TQ0hFTUE9TDYoKSxFMS5leHBvcnRzLnNjYW49ZjkoInNjYW4iKSxFMS5leHBvcnRzLnBhcnNlPWY5KCJwYXJzZSIpLEUxLmV4cG9ydHMuY29tcG9zZT1mOSgiY29tcG9zZSIpLEUxLmV4cG9ydHMuYWRkQ29uc3RydWN0b3I9ZjkoImFkZENvbnN0cnVjdG9yIil9KTt2YXIgemllPWh0KChCXzEsTWllKT0+eyJ1c2Ugc3RyaWN0Ijt2YXIgQkV0PXdpZSgpO01pZS5leHBvcnRzPUJFdH0pO3ZhciBraWU9aHQoTHI9PnsidXNlIHN0cmljdCI7dmFyIEhFdD1MciYmTHIuX19jcmVhdGVCaW5kaW5nfHwoT2JqZWN0LmNyZWF0ZT8oZnVuY3Rpb24odCxlLGEsaSl7aT09PXZvaWQgMCYmKGk9YSksT2JqZWN0LmRlZmluZVByb3BlcnR5KHQsaSx7ZW51bWVyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gZVthXX19KX0pOihmdW5jdGlvbih0LGUsYSxpKXtpPT09dm9pZCAwJiYoaT1hKSx0W2ldPWVbYV19KSkscUV0PUxyJiZMci5fX3NldE1vZHVsZURlZmF1bHR8fChPYmplY3QuY3JlYXRlPyhmdW5jdGlvbih0LGUpe09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJkZWZhdWx0Iix7ZW51bWVyYWJsZTohMCx2YWx1ZTplfSl9KTpmdW5jdGlvbih0LGUpe3QuZGVmYXVsdD1lfSksVkV0PUxyJiZMci5fX2ltcG9ydFN0YXJ8fGZ1bmN0aW9uKHQpe2lmKHQmJnQuX19lc01vZHVsZSlyZXR1cm4gdDt2YXIgZT17fTtpZih0IT1udWxsKWZvcih2YXIgYSBpbiB0KWEhPT0iZGVmYXVsdCImJk9iamVjdC5oYXNPd25Qcm9wZXJ0eS5jYWxsKHQsYSkmJkhFdChlLHQsYSk7cmV0dXJuIHFFdChlLHQpLGV9O09iamVjdC5kZWZpbmVQcm9wZXJ0eShMciwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksTHIuanNZYW1sPXZvaWQgMDt2YXIgakV0PVZFdCh6aWUoKSk7THIuanNZYW1sPWpFdH0pO3ZhciBDaWU9aHQobGk9PnsidXNlIHN0cmljdCI7dmFyIFVFdD1saSYmbGkuX19jcmVhdGVCaW5kaW5nfHwoT2JqZWN0LmNyZWF0ZT8oZnVuY3Rpb24odCxlLGEsaSl7aT09PXZvaWQgMCYmKGk9YSksT2JqZWN0LmRlZmluZVByb3BlcnR5KHQsaSx7ZW51bWVyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gZVthXX19KX0pOihmdW5jdGlvbih0LGUsYSxpKXtpPT09dm9pZCAwJiYoaT1hKSx0W2ldPWVbYV19KSksV0V0PWxpJiZsaS5fX3NldE1vZHVsZURlZmF1bHR8fChPYmplY3QuY3JlYXRlPyhmdW5jdGlvbih0LGUpe09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJkZWZhdWx0Iix7ZW51bWVyYWJsZTohMCx2YWx1ZTplfSl9KTpmdW5jdGlvbih0LGUpe3QuZGVmYXVsdD1lfSksR0V0PWxpJiZsaS5fX2ltcG9ydFN0YXJ8fGZ1bmN0aW9uKHQpe2lmKHQmJnQuX19lc01vZHVsZSlyZXR1cm4gdDt2YXIgZT17fTtpZih0IT1udWxsKWZvcih2YXIgYSBpbiB0KWEhPT0iZGVmYXVsdCImJk9iamVjdC5oYXNPd25Qcm9wZXJ0eS5jYWxsKHQsYSkmJlVFdChlLHQsYSk7cmV0dXJuIFdFdChlLHQpLGV9O09iamVjdC5kZWZpbmVQcm9wZXJ0eShsaSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksbGkub2JqZWN0VG9ZYW1sU3RyaW5nPWxpLnlhbWxTdHJpbmdUb09iamVjdD12b2lkIDA7dmFyIFNpZT1HRXQoa2llKCkpO2xpLnlhbWxTdHJpbmdUb09iamVjdD1hc3luYyh0LGU9e30pPT5TaWUuanNZYW1sLnNhZmVMb2FkKHQpLGxpLm9iamVjdFRvWWFtbFN0cmluZz1hc3luYyh0LGU9e30pPT5TaWUuanNZYW1sLnNhZmVEdW1wKHQpfSk7ZnVuY3Rpb24gVl8odCl7aWYodCl0aHJvdyB0fXZhciBfaWU9YigoKT0+e30pO3ZhciBOaWU9aHQoKGpfMSxJaWUpPT57InVzZSBzdHJpY3QiO3ZhciBtOT1PYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LFRpZT1PYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLExpZT1PYmplY3QuZGVmaW5lUHJvcGVydHksJGllPU9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IsQWllPWZ1bmN0aW9uKGUpe3JldHVybiB0eXBlb2YgQXJyYXkuaXNBcnJheT09ImZ1bmN0aW9uIj9BcnJheS5pc0FycmF5KGUpOlRpZS5jYWxsKGUpPT09IltvYmplY3QgQXJyYXldIn0sRGllPWZ1bmN0aW9uKGUpe2lmKCFlfHxUaWUuY2FsbChlKSE9PSJbb2JqZWN0IE9iamVjdF0iKXJldHVybiExO3ZhciBhPW05LmNhbGwoZSwiY29uc3RydWN0b3IiKSxpPWUuY29uc3RydWN0b3ImJmUuY29uc3RydWN0b3IucHJvdG90eXBlJiZtOS5jYWxsKGUuY29uc3RydWN0b3IucHJvdG90eXBlLCJpc1Byb3RvdHlwZU9mIik7aWYoZS5jb25zdHJ1Y3RvciYmIWEmJiFpKXJldHVybiExO3ZhciByO2ZvcihyIGluIGUpO3JldHVybiB0eXBlb2Ygcj4idSJ8fG05LmNhbGwoZSxyKX0sRWllPWZ1bmN0aW9uKGUsYSl7TGllJiZhLm5hbWU9PT0iX19wcm90b19fIj9MaWUoZSxhLm5hbWUse2VudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHZhbHVlOmEubmV3VmFsdWUsd3JpdGFibGU6ITB9KTplW2EubmFtZV09YS5uZXdWYWx1ZX0sUGllPWZ1bmN0aW9uKGUsYSl7aWYoYT09PSJfX3Byb3RvX18iKWlmKG05LmNhbGwoZSxhKSl7aWYoJGllKXJldHVybiAkaWUoZSxhKS52YWx1ZX1lbHNlIHJldHVybjtyZXR1cm4gZVthXX07SWllLmV4cG9ydHM9ZnVuY3Rpb24gdCgpe3ZhciBlLGEsaSxyLHMsbixvPWFyZ3VtZW50c1swXSxkPTEsYz1hcmd1bWVudHMubGVuZ3RoLGg9ITE7Zm9yKHR5cGVvZiBvPT0iYm9vbGVhbiImJihoPW8sbz1hcmd1bWVudHNbMV18fHt9LGQ9MiksKG89PW51bGx8fHR5cGVvZiBvIT0ib2JqZWN0IiYmdHlwZW9mIG8hPSJmdW5jdGlvbiIpJiYobz17fSk7ZDxjOysrZClpZihlPWFyZ3VtZW50c1tkXSxlIT1udWxsKWZvcihhIGluIGUpaT1QaWUobyxhKSxyPVBpZShlLGEpLG8hPT1yJiYoaCYmciYmKERpZShyKXx8KHM9QWllKHIpKSk/KHM/KHM9ITEsbj1pJiZBaWUoaSk/aTpbXSk6bj1pJiZEaWUoaSk/aTp7fSxFaWUobyx7bmFtZTphLG5ld1ZhbHVlOnQoaCxuLHIpfSkpOnR5cGVvZiByPCJ1IiYmRWllKG8se25hbWU6YSxuZXdWYWx1ZTpyfSkpO3JldHVybiBvfX0pO3ZhciBObj1iKCgpPT57fSk7ZnVuY3Rpb24gUDYodCl7aWYodHlwZW9mIHQhPSJvYmplY3QifHx0PT09bnVsbClyZXR1cm4hMTtsZXQgZT1PYmplY3QuZ2V0UHJvdG90eXBlT2YodCk7cmV0dXJuKGU9PT1udWxsfHxlPT09T2JqZWN0LnByb3RvdHlwZXx8T2JqZWN0LmdldFByb3RvdHlwZU9mKGUpPT09bnVsbCkmJiEoU3ltYm9sLnRvU3RyaW5nVGFnIGluIHQpJiYhKFN5bWJvbC5pdGVyYXRvciBpbiB0KX12YXIgRmllPWIoKCk9Pnt9KTtmdW5jdGlvbiBqXygpe2xldCB0PVtdLGU9e3J1bjphLHVzZTppfTtyZXR1cm4gZTtmdW5jdGlvbiBhKC4uLnIpe2xldCBzPS0xLG49ci5wb3AoKTtpZih0eXBlb2YgbiE9ImZ1bmN0aW9uIil0aHJvdyBuZXcgVHlwZUVycm9yKCJFeHBlY3RlZCBmdW5jdGlvbiBhcyBsYXN0IGFyZ3VtZW50LCBub3QgIituKTtvKG51bGwsLi4ucik7ZnVuY3Rpb24gbyhkLC4uLmMpe2xldCBoPXRbKytzXSxsPS0xO2lmKGQpe24oZCk7cmV0dXJufWZvcig7KytsPHIubGVuZ3RoOykoY1tsXT09PW51bGx8fGNbbF09PT12b2lkIDApJiYoY1tsXT1yW2xdKTtyPWMsaD9PaWUoaCxvKSguLi5jKTpuKG51bGwsLi4uYyl9fWZ1bmN0aW9uIGkocil7aWYodHlwZW9mIHIhPSJmdW5jdGlvbiIpdGhyb3cgbmV3IFR5cGVFcnJvcigiRXhwZWN0ZWQgYG1pZGRlbHdhcmVgIHRvIGJlIGEgZnVuY3Rpb24sIG5vdCAiK3IpO3JldHVybiB0LnB1c2gociksZX19ZnVuY3Rpb24gT2llKHQsZSl7bGV0IGE7cmV0dXJuIGk7ZnVuY3Rpb24gaSguLi5uKXtsZXQgbz10Lmxlbmd0aD5uLmxlbmd0aCxkO28mJm4ucHVzaChyKTt0cnl7ZD10LmFwcGx5KHRoaXMsbil9Y2F0Y2goYyl7bGV0IGg9YztpZihvJiZhKXRocm93IGg7cmV0dXJuIHIoaCl9b3x8KGQmJmQudGhlbiYmdHlwZW9mIGQudGhlbj09ImZ1bmN0aW9uIj9kLnRoZW4ocyxyKTpkIGluc3RhbmNlb2YgRXJyb3I/cihkKTpzKGQpKX1mdW5jdGlvbiByKG4sLi4ubyl7YXx8KGE9ITAsZShuLC4uLm8pKX1mdW5jdGlvbiBzKG4pe3IobnVsbCxuKX19dmFyIFJpZT1iKCgpPT57fSk7dmFyIEJpZT1iKCgpPT57UmllKCl9KTtmdW5jdGlvbiBGbih0KXtyZXR1cm4hdHx8dHlwZW9mIHQhPSJvYmplY3QiPyIiOiJwb3NpdGlvbiJpbiB0fHwidHlwZSJpbiB0P0hpZSh0LnBvc2l0aW9uKToic3RhcnQiaW4gdHx8ImVuZCJpbiB0P0hpZSh0KToibGluZSJpbiB0fHwiY29sdW1uImluIHQ/VV8odCk6IiJ9ZnVuY3Rpb24gVV8odCl7cmV0dXJuIHFpZSh0JiZ0LmxpbmUpKyI6IitxaWUodCYmdC5jb2x1bW4pfWZ1bmN0aW9uIEhpZSh0KXtyZXR1cm4gVV8odCYmdC5zdGFydCkrIi0iK1VfKHQmJnQuZW5kKX1mdW5jdGlvbiBxaWUodCl7cmV0dXJuIHQmJnR5cGVvZiB0PT0ibnVtYmVyIj90OjF9dmFyIFZpZT1iKCgpPT57fSk7dmFyIFdfPWIoKCk9PntWaWUoKX0pO3ZhciB1MixqaWU9YigoKT0+e1dfKCk7dTI9Y2xhc3MgZXh0ZW5kcyBFcnJvcntjb25zdHJ1Y3RvcihlLGEsaSl7c3VwZXIoKSx0eXBlb2YgYT09InN0cmluZyImJihpPWEsYT12b2lkIDApO2xldCByPSIiLHM9e30sbj0hMTtpZihhJiYoImxpbmUiaW4gYSYmImNvbHVtbiJpbiBhP3M9e3BsYWNlOmF9OiJzdGFydCJpbiBhJiYiZW5kImluIGE/cz17cGxhY2U6YX06InR5cGUiaW4gYT9zPXthbmNlc3RvcnM6W2FdLHBsYWNlOmEucG9zaXRpb259OnM9ey4uLmF9KSx0eXBlb2YgZT09InN0cmluZyI/cj1lOiFzLmNhdXNlJiZlJiYobj0hMCxyPWUubWVzc2FnZSxzLmNhdXNlPWUpLCFzLnJ1bGVJZCYmIXMuc291cmNlJiZ0eXBlb2YgaT09InN0cmluZyIpe2xldCBkPWkuaW5kZXhPZigiOiIpO2Q9PT0tMT9zLnJ1bGVJZD1pOihzLnNvdXJjZT1pLnNsaWNlKDAsZCkscy5ydWxlSWQ9aS5zbGljZShkKzEpKX1pZighcy5wbGFjZSYmcy5hbmNlc3RvcnMmJnMuYW5jZXN0b3JzKXtsZXQgZD1zLmFuY2VzdG9yc1tzLmFuY2VzdG9ycy5sZW5ndGgtMV07ZCYmKHMucGxhY2U9ZC5wb3NpdGlvbil9bGV0IG89cy5wbGFjZSYmInN0YXJ0ImluIHMucGxhY2U/cy5wbGFjZS5zdGFydDpzLnBsYWNlO3RoaXMuYW5jZXN0b3JzPXMuYW5jZXN0b3JzfHx2b2lkIDAsdGhpcy5jYXVzZT1zLmNhdXNlfHx2b2lkIDAsdGhpcy5jb2x1bW49bz9vLmNvbHVtbjp2b2lkIDAsdGhpcy5mYXRhbD12b2lkIDAsdGhpcy5maWxlPSIiLHRoaXMubWVzc2FnZT1yLHRoaXMubGluZT1vP28ubGluZTp2b2lkIDAsdGhpcy5uYW1lPUZuKHMucGxhY2UpfHwiMToxIix0aGlzLnBsYWNlPXMucGxhY2V8fHZvaWQgMCx0aGlzLnJlYXNvbj10aGlzLm1lc3NhZ2UsdGhpcy5ydWxlSWQ9cy5ydWxlSWR8fHZvaWQgMCx0aGlzLnNvdXJjZT1zLnNvdXJjZXx8dm9pZCAwLHRoaXMuc3RhY2s9biYmcy5jYXVzZSYmdHlwZW9mIHMuY2F1c2Uuc3RhY2s9PSJzdHJpbmciP3MuY2F1c2Uuc3RhY2s6IiIsdGhpcy5hY3R1YWw9dm9pZCAwLHRoaXMuZXhwZWN0ZWQ9dm9pZCAwLHRoaXMubm90ZT12b2lkIDAsdGhpcy51cmw9dm9pZCAwfX07dTIucHJvdG90eXBlLmZpbGU9IiIsdTIucHJvdG90eXBlLm5hbWU9IiIsdTIucHJvdG90eXBlLnJlYXNvbj0iIix1Mi5wcm90b3R5cGUubWVzc2FnZT0iIix1Mi5wcm90b3R5cGUuc3RhY2s9IiIsdTIucHJvdG90eXBlLmNvbHVtbj12b2lkIDAsdTIucHJvdG90eXBlLmxpbmU9dm9pZCAwLHUyLnByb3RvdHlwZS5hbmNlc3RvcnM9dm9pZCAwLHUyLnByb3RvdHlwZS5jYXVzZT12b2lkIDAsdTIucHJvdG90eXBlLmZhdGFsPXZvaWQgMCx1Mi5wcm90b3R5cGUucGxhY2U9dm9pZCAwLHUyLnByb3RvdHlwZS5ydWxlSWQ9dm9pZCAwLHUyLnByb3RvdHlwZS5zb3VyY2U9dm9pZCAwfSk7dmFyIFVpZT1iKCgpPT57amllKCl9KTtmdW5jdGlvbiBZRXQodCxlKXtpZihlIT09dm9pZCAwJiZ0eXBlb2YgZSE9InN0cmluZyIpdGhyb3cgbmV3IFR5cGVFcnJvcignImV4dCIgYXJndW1lbnQgbXVzdCBiZSBhIHN0cmluZycpO0k2KHQpO2xldCBhPTAsaT0tMSxyPXQubGVuZ3RoLHM7aWYoZT09PXZvaWQgMHx8ZS5sZW5ndGg9PT0wfHxlLmxlbmd0aD50Lmxlbmd0aCl7Zm9yKDtyLS07KWlmKHQuY29kZVBvaW50QXQocik9PT00Nyl7aWYocyl7YT1yKzE7YnJlYWt9fWVsc2UgaTwwJiYocz0hMCxpPXIrMSk7cmV0dXJuIGk8MD8iIjp0LnNsaWNlKGEsaSl9aWYoZT09PXQpcmV0dXJuIiI7bGV0IG49LTEsbz1lLmxlbmd0aC0xO2Zvcig7ci0tOylpZih0LmNvZGVQb2ludEF0KHIpPT09NDcpe2lmKHMpe2E9cisxO2JyZWFrfX1lbHNlIG48MCYmKHM9ITAsbj1yKzEpLG8+LTEmJih0LmNvZGVQb2ludEF0KHIpPT09ZS5jb2RlUG9pbnRBdChvLS0pP288MCYmKGk9cik6KG89LTEsaT1uKSk7cmV0dXJuIGE9PT1pP2k9bjppPDAmJihpPXQubGVuZ3RoKSx0LnNsaWNlKGEsaSl9ZnVuY3Rpb24gWkV0KHQpe2lmKEk2KHQpLHQubGVuZ3RoPT09MClyZXR1cm4iLiI7bGV0IGU9LTEsYT10Lmxlbmd0aCxpO2Zvcig7LS1hOylpZih0LmNvZGVQb2ludEF0KGEpPT09NDcpe2lmKGkpe2U9YTticmVha319ZWxzZSBpfHwoaT0hMCk7cmV0dXJuIGU8MD90LmNvZGVQb2ludEF0KDApPT09NDc/Ii8iOiIuIjplPT09MSYmdC5jb2RlUG9pbnRBdCgwKT09PTQ3PyIvLyI6dC5zbGljZSgwLGUpfWZ1bmN0aW9uIFhFdCh0KXtJNih0KTtsZXQgZT10Lmxlbmd0aCxhPS0xLGk9MCxyPS0xLHM9MCxuO2Zvcig7ZS0tOyl7bGV0IG89dC5jb2RlUG9pbnRBdChlKTtpZihvPT09NDcpe2lmKG4pe2k9ZSsxO2JyZWFrfWNvbnRpbnVlfWE8MCYmKG49ITAsYT1lKzEpLG89PT00Nj9yPDA/cj1lOnMhPT0xJiYocz0xKTpyPi0xJiYocz0tMSl9cmV0dXJuIHI8MHx8YTwwfHxzPT09MHx8cz09PTEmJnI9PT1hLTEmJnI9PT1pKzE/IiI6dC5zbGljZShyLGEpfWZ1bmN0aW9uIEtFdCguLi50KXtsZXQgZT0tMSxhO2Zvcig7KytlPHQubGVuZ3RoOylJNih0W2VdKSx0W2VdJiYoYT1hPT09dm9pZCAwP3RbZV06YSsiLyIrdFtlXSk7cmV0dXJuIGE9PT12b2lkIDA/Ii4iOlFFdChhKX1mdW5jdGlvbiBRRXQodCl7STYodCk7bGV0IGU9dC5jb2RlUG9pbnRBdCgwKT09PTQ3LGE9SkV0KHQsIWUpO3JldHVybiBhLmxlbmd0aD09PTAmJiFlJiYoYT0iLiIpLGEubGVuZ3RoPjAmJnQuY29kZVBvaW50QXQodC5sZW5ndGgtMSk9PT00NyYmKGErPSIvIiksZT8iLyIrYTphfWZ1bmN0aW9uIEpFdCh0LGUpe2xldCBhPSIiLGk9MCxyPS0xLHM9MCxuPS0xLG8sZDtmb3IoOysrbjw9dC5sZW5ndGg7KXtpZihuPHQubGVuZ3RoKW89dC5jb2RlUG9pbnRBdChuKTtlbHNle2lmKG89PT00NylicmVhaztvPTQ3fWlmKG89PT00Nyl7aWYoIShyPT09bi0xfHxzPT09MSkpaWYociE9PW4tMSYmcz09PTIpe2lmKGEubGVuZ3RoPDJ8fGkhPT0yfHxhLmNvZGVQb2ludEF0KGEubGVuZ3RoLTEpIT09NDZ8fGEuY29kZVBvaW50QXQoYS5sZW5ndGgtMikhPT00Nil7aWYoYS5sZW5ndGg+Mil7aWYoZD1hLmxhc3RJbmRleE9mKCIvIiksZCE9PWEubGVuZ3RoLTEpe2Q8MD8oYT0iIixpPTApOihhPWEuc2xpY2UoMCxkKSxpPWEubGVuZ3RoLTEtYS5sYXN0SW5kZXhPZigiLyIpKSxyPW4scz0wO2NvbnRpbnVlfX1lbHNlIGlmKGEubGVuZ3RoPjApe2E9IiIsaT0wLHI9bixzPTA7Y29udGludWV9fWUmJihhPWEubGVuZ3RoPjA/YSsiLy4uIjoiLi4iLGk9Mil9ZWxzZSBhLmxlbmd0aD4wP2ErPSIvIit0LnNsaWNlKHIrMSxuKTphPXQuc2xpY2UocisxLG4pLGk9bi1yLTE7cj1uLHM9MH1lbHNlIG89PT00NiYmcz4tMT9zKys6cz0tMX1yZXR1cm4gYX1mdW5jdGlvbiBJNih0KXtpZih0eXBlb2YgdCE9InN0cmluZyIpdGhyb3cgbmV3IFR5cGVFcnJvcigiUGF0aCBtdXN0IGJlIGEgc3RyaW5nLiBSZWNlaXZlZCAiK0pTT04uc3RyaW5naWZ5KHQpKX12YXIgRmksV2llPWIoKCk9PntGaT17YmFzZW5hbWU6WUV0LGRpcm5hbWU6WkV0LGV4dG5hbWU6WEV0LGpvaW46S0V0LHNlcDoiLyJ9fSk7ZnVuY3Rpb24gZVB0KCl7cmV0dXJuIi8ifXZhciBHaWUsWWllPWIoKCk9PntHaWU9e2N3ZDplUHR9fSk7ZnVuY3Rpb24gQTModCl7cmV0dXJuISEodCE9PW51bGwmJnR5cGVvZiB0PT0ib2JqZWN0IiYmImhyZWYiaW4gdCYmdC5ocmVmJiYicHJvdG9jb2wiaW4gdCYmdC5wcm90b2NvbCYmdC5hdXRoPT09dm9pZCAwKX12YXIgR189YigoKT0+e30pO2Z1bmN0aW9uIFppZSh0KXtpZih0eXBlb2YgdD09InN0cmluZyIpdD1uZXcgVVJMKHQpO2Vsc2UgaWYoIUEzKHQpKXtsZXQgZT1uZXcgVHlwZUVycm9yKCdUaGUgInBhdGgiIGFyZ3VtZW50IG11c3QgYmUgb2YgdHlwZSBzdHJpbmcgb3IgYW4gaW5zdGFuY2Ugb2YgVVJMLiBSZWNlaXZlZCBgJyt0KyJgIik7dGhyb3cgZS5jb2RlPSJFUlJfSU5WQUxJRF9BUkdfVFlQRSIsZX1pZih0LnByb3RvY29sIT09ImZpbGU6Iil7bGV0IGU9bmV3IFR5cGVFcnJvcigiVGhlIFVSTCBtdXN0IGJlIG9mIHNjaGVtZSBmaWxlIik7dGhyb3cgZS5jb2RlPSJFUlJfSU5WQUxJRF9VUkxfU0NIRU1FIixlfXJldHVybiB0UHQodCl9ZnVuY3Rpb24gdFB0KHQpe2lmKHQuaG9zdG5hbWUhPT0iIil7bGV0IGk9bmV3IFR5cGVFcnJvcignRmlsZSBVUkwgaG9zdCBtdXN0IGJlICJsb2NhbGhvc3QiIG9yIGVtcHR5IG9uIGRhcndpbicpO3Rocm93IGkuY29kZT0iRVJSX0lOVkFMSURfRklMRV9VUkxfSE9TVCIsaX1sZXQgZT10LnBhdGhuYW1lLGE9LTE7Zm9yKDsrK2E8ZS5sZW5ndGg7KWlmKGUuY29kZVBvaW50QXQoYSk9PT0zNyYmZS5jb2RlUG9pbnRBdChhKzEpPT09NTApe2xldCBpPWUuY29kZVBvaW50QXQoYSsyKTtpZihpPT09NzB8fGk9PT0xMDIpe2xldCByPW5ldyBUeXBlRXJyb3IoIkZpbGUgVVJMIHBhdGggbXVzdCBub3QgaW5jbHVkZSBlbmNvZGVkIC8gY2hhcmFjdGVycyIpO3Rocm93IHIuY29kZT0iRVJSX0lOVkFMSURfRklMRV9VUkxfUEFUSCIscn19cmV0dXJuIGRlY29kZVVSSUNvbXBvbmVudChlKX12YXIgWGllPWIoKCk9PntHXygpO0dfKCl9KTtmdW5jdGlvbiBaXyh0LGUpe2lmKHQmJnQuaW5jbHVkZXMoRmkuc2VwKSl0aHJvdyBuZXcgRXJyb3IoImAiK2UrImAgY2Fubm90IGJlIGEgcGF0aDogZGlkIG5vdCBleHBlY3QgYCIrRmkuc2VwKyJgIil9ZnVuY3Rpb24gWF8odCxlKXtpZighdCl0aHJvdyBuZXcgRXJyb3IoImAiK2UrImAgY2Fubm90IGJlIGVtcHR5Iil9ZnVuY3Rpb24gS2llKHQsZSl7aWYoIXQpdGhyb3cgbmV3IEVycm9yKCJTZXR0aW5nIGAiK2UrImAgcmVxdWlyZXMgYHBhdGhgIHRvIGJlIHNldCB0b28iKX1mdW5jdGlvbiBhUHQodCl7cmV0dXJuISEodCYmdHlwZW9mIHQ9PSJvYmplY3QiJiYiYnl0ZUxlbmd0aCJpbiB0JiYiYnl0ZU9mZnNldCJpbiB0KX12YXIgWV8sTjYsUWllPWIoKCk9PntVaWUoKTtXaWUoKTtZaWUoKTtYaWUoKTtZXz1bImhpc3RvcnkiLCJwYXRoIiwiYmFzZW5hbWUiLCJzdGVtIiwiZXh0bmFtZSIsImRpcm5hbWUiXSxONj1jbGFzc3tjb25zdHJ1Y3RvcihlKXtsZXQgYTtlP0EzKGUpP2E9e3BhdGg6ZX06dHlwZW9mIGU9PSJzdHJpbmcifHxhUHQoZSk/YT17dmFsdWU6ZX06YT1lOmE9e30sdGhpcy5jd2Q9ImN3ZCJpbiBhPyIiOkdpZS5jd2QoKSx0aGlzLmRhdGE9e30sdGhpcy5oaXN0b3J5PVtdLHRoaXMubWVzc2FnZXM9W10sdGhpcy52YWx1ZSx0aGlzLm1hcCx0aGlzLnJlc3VsdCx0aGlzLnN0b3JlZDtsZXQgaT0tMTtmb3IoOysraTxZXy5sZW5ndGg7KXtsZXQgcz1ZX1tpXTtzIGluIGEmJmFbc10hPT12b2lkIDAmJmFbc10hPT1udWxsJiYodGhpc1tzXT1zPT09Imhpc3RvcnkiP1suLi5hW3NdXTphW3NdKX1sZXQgcjtmb3IociBpbiBhKVlfLmluY2x1ZGVzKHIpfHwodGhpc1tyXT1hW3JdKX1nZXQgYmFzZW5hbWUoKXtyZXR1cm4gdHlwZW9mIHRoaXMucGF0aD09InN0cmluZyI/RmkuYmFzZW5hbWUodGhpcy5wYXRoKTp2b2lkIDB9c2V0IGJhc2VuYW1lKGUpe1hfKGUsImJhc2VuYW1lIiksWl8oZSwiYmFzZW5hbWUiKSx0aGlzLnBhdGg9Rmkuam9pbih0aGlzLmRpcm5hbWV8fCIiLGUpfWdldCBkaXJuYW1lKCl7cmV0dXJuIHR5cGVvZiB0aGlzLnBhdGg9PSJzdHJpbmciP0ZpLmRpcm5hbWUodGhpcy5wYXRoKTp2b2lkIDB9c2V0IGRpcm5hbWUoZSl7S2llKHRoaXMuYmFzZW5hbWUsImRpcm5hbWUiKSx0aGlzLnBhdGg9Rmkuam9pbihlfHwiIix0aGlzLmJhc2VuYW1lKX1nZXQgZXh0bmFtZSgpe3JldHVybiB0eXBlb2YgdGhpcy5wYXRoPT0ic3RyaW5nIj9GaS5leHRuYW1lKHRoaXMucGF0aCk6dm9pZCAwfXNldCBleHRuYW1lKGUpe2lmKFpfKGUsImV4dG5hbWUiKSxLaWUodGhpcy5kaXJuYW1lLCJleHRuYW1lIiksZSl7aWYoZS5jb2RlUG9pbnRBdCgwKSE9PTQ2KXRocm93IG5ldyBFcnJvcigiYGV4dG5hbWVgIG11c3Qgc3RhcnQgd2l0aCBgLmAiKTtpZihlLmluY2x1ZGVzKCIuIiwxKSl0aHJvdyBuZXcgRXJyb3IoImBleHRuYW1lYCBjYW5ub3QgY29udGFpbiBtdWx0aXBsZSBkb3RzIil9dGhpcy5wYXRoPUZpLmpvaW4odGhpcy5kaXJuYW1lLHRoaXMuc3RlbSsoZXx8IiIpKX1nZXQgcGF0aCgpe3JldHVybiB0aGlzLmhpc3RvcnlbdGhpcy5oaXN0b3J5Lmxlbmd0aC0xXX1zZXQgcGF0aChlKXtBMyhlKSYmKGU9WmllKGUpKSxYXyhlLCJwYXRoIiksdGhpcy5wYXRoIT09ZSYmdGhpcy5oaXN0b3J5LnB1c2goZSl9Z2V0IHN0ZW0oKXtyZXR1cm4gdHlwZW9mIHRoaXMucGF0aD09InN0cmluZyI/RmkuYmFzZW5hbWUodGhpcy5wYXRoLHRoaXMuZXh0bmFtZSk6dm9pZCAwfXNldCBzdGVtKGUpe1hfKGUsInN0ZW0iKSxaXyhlLCJzdGVtIiksdGhpcy5wYXRoPUZpLmpvaW4odGhpcy5kaXJuYW1lfHwiIixlKyh0aGlzLmV4dG5hbWV8fCIiKSl9ZmFpbChlLGEsaSl7bGV0IHI9dGhpcy5tZXNzYWdlKGUsYSxpKTt0aHJvdyByLmZhdGFsPSEwLHJ9aW5mbyhlLGEsaSl7bGV0IHI9dGhpcy5tZXNzYWdlKGUsYSxpKTtyZXR1cm4gci5mYXRhbD12b2lkIDAscn1tZXNzYWdlKGUsYSxpKXtsZXQgcj1uZXcgdTIoZSxhLGkpO3JldHVybiB0aGlzLnBhdGgmJihyLm5hbWU9dGhpcy5wYXRoKyI6IityLm5hbWUsci5maWxlPXRoaXMucGF0aCksci5mYXRhbD0hMSx0aGlzLm1lc3NhZ2VzLnB1c2gocikscn10b1N0cmluZyhlKXtyZXR1cm4gdGhpcy52YWx1ZT09PXZvaWQgMD8iIjp0eXBlb2YgdGhpcy52YWx1ZT09InN0cmluZyI/dGhpcy52YWx1ZTpuZXcgVGV4dERlY29kZXIoZXx8dm9pZCAwKS5kZWNvZGUodGhpcy52YWx1ZSl9fX0pO3ZhciBKaWU9YigoKT0+e1FpZSgpfSk7dmFyIGVyZSx0cmU9YigoKT0+e2VyZT0oZnVuY3Rpb24odCl7bGV0IGk9dGhpcy5jb25zdHJ1Y3Rvci5wcm90b3R5cGUscj1pW3RdLHM9ZnVuY3Rpb24oKXtyZXR1cm4gci5hcHBseShzLGFyZ3VtZW50cyl9O3JldHVybiBPYmplY3Quc2V0UHJvdG90eXBlT2YocyxpKSxzfSl9KTtmdW5jdGlvbiBRXyh0LGUpe2lmKHR5cGVvZiBlIT0iZnVuY3Rpb24iKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBgIit0KyJgIHdpdGhvdXQgYHBhcnNlcmAiKX1mdW5jdGlvbiBKXyh0LGUpe2lmKHR5cGVvZiBlIT0iZnVuY3Rpb24iKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBgIit0KyJgIHdpdGhvdXQgYGNvbXBpbGVyYCIpfWZ1bmN0aW9uIGVUKHQsZSl7aWYoZSl0aHJvdyBuZXcgRXJyb3IoIkNhbm5vdCBjYWxsIGAiK3QrImAgb24gYSBmcm96ZW4gcHJvY2Vzc29yLlxuQ3JlYXRlIGEgbmV3IHByb2Nlc3NvciBmaXJzdCwgYnkgY2FsbGluZyBpdDogdXNlIGBwcm9jZXNzb3IoKWAgaW5zdGVhZCBvZiBgcHJvY2Vzc29yYC4iKX1mdW5jdGlvbiBhcmUodCl7aWYoIVA2KHQpfHx0eXBlb2YgdC50eXBlIT0ic3RyaW5nIil0aHJvdyBuZXcgVHlwZUVycm9yKCJFeHBlY3RlZCBub2RlLCBnb3QgYCIrdCsiYCIpfWZ1bmN0aW9uIGlyZSh0LGUsYSl7aWYoIWEpdGhyb3cgbmV3IEVycm9yKCJgIit0KyJgIGZpbmlzaGVkIGFzeW5jLiBVc2UgYCIrZSsiYCBpbnN0ZWFkIil9ZnVuY3Rpb24gZzkodCl7cmV0dXJuIHJQdCh0KT90Om5ldyBONih0KX1mdW5jdGlvbiByUHQodCl7cmV0dXJuISEodCYmdHlwZW9mIHQ9PSJvYmplY3QiJiYibWVzc2FnZSJpbiB0JiYibWVzc2FnZXMiaW4gdCl9ZnVuY3Rpb24gc1B0KHQpe3JldHVybiB0eXBlb2YgdD09InN0cmluZyJ8fG5QdCh0KX1mdW5jdGlvbiBuUHQodCl7cmV0dXJuISEodCYmdHlwZW9mIHQ9PSJvYmplY3QiJiYiYnl0ZUxlbmd0aCJpbiB0JiYiYnl0ZU9mZnNldCJpbiB0KX12YXIgYjksaVB0LEtfLEY2LHJyZT1iKCgpPT57X2llKCk7Yjk9VTEoTmllKCksMSk7Tm4oKTtGaWUoKTtCaWUoKTtKaWUoKTt0cmUoKTtpUHQ9e30uaGFzT3duUHJvcGVydHksS189Y2xhc3MgdCBleHRlbmRzIGVyZXtjb25zdHJ1Y3Rvcigpe3N1cGVyKCJjb3B5IiksdGhpcy5Db21waWxlcj12b2lkIDAsdGhpcy5QYXJzZXI9dm9pZCAwLHRoaXMuYXR0YWNoZXJzPVtdLHRoaXMuY29tcGlsZXI9dm9pZCAwLHRoaXMuZnJlZXplSW5kZXg9LTEsdGhpcy5mcm96ZW49dm9pZCAwLHRoaXMubmFtZXNwYWNlPXt9LHRoaXMucGFyc2VyPXZvaWQgMCx0aGlzLnRyYW5zZm9ybWVycz1qXygpfWNvcHkoKXtsZXQgZT1uZXcgdCxhPS0xO2Zvcig7KythPHRoaXMuYXR0YWNoZXJzLmxlbmd0aDspe2xldCBpPXRoaXMuYXR0YWNoZXJzW2FdO2UudXNlKC4uLmkpfXJldHVybiBlLmRhdGEoKDAsYjkuZGVmYXVsdCkoITAse30sdGhpcy5uYW1lc3BhY2UpKSxlfWRhdGEoZSxhKXtyZXR1cm4gdHlwZW9mIGU9PSJzdHJpbmciP2FyZ3VtZW50cy5sZW5ndGg9PT0yPyhlVCgiZGF0YSIsdGhpcy5mcm96ZW4pLHRoaXMubmFtZXNwYWNlW2VdPWEsdGhpcyk6aVB0LmNhbGwodGhpcy5uYW1lc3BhY2UsZSkmJnRoaXMubmFtZXNwYWNlW2VdfHx2b2lkIDA6ZT8oZVQoImRhdGEiLHRoaXMuZnJvemVuKSx0aGlzLm5hbWVzcGFjZT1lLHRoaXMpOnRoaXMubmFtZXNwYWNlfWZyZWV6ZSgpe2lmKHRoaXMuZnJvemVuKXJldHVybiB0aGlzO2xldCBlPXRoaXM7Zm9yKDsrK3RoaXMuZnJlZXplSW5kZXg8dGhpcy5hdHRhY2hlcnMubGVuZ3RoOyl7bGV0W2EsLi4uaV09dGhpcy5hdHRhY2hlcnNbdGhpcy5mcmVlemVJbmRleF07aWYoaVswXT09PSExKWNvbnRpbnVlO2lbMF09PT0hMCYmKGlbMF09dm9pZCAwKTtsZXQgcj1hLmNhbGwoZSwuLi5pKTt0eXBlb2Ygcj09ImZ1bmN0aW9uIiYmdGhpcy50cmFuc2Zvcm1lcnMudXNlKHIpfXJldHVybiB0aGlzLmZyb3plbj0hMCx0aGlzLmZyZWV6ZUluZGV4PU51bWJlci5QT1NJVElWRV9JTkZJTklUWSx0aGlzfXBhcnNlKGUpe3RoaXMuZnJlZXplKCk7bGV0IGE9ZzkoZSksaT10aGlzLnBhcnNlcnx8dGhpcy5QYXJzZXI7cmV0dXJuIFFfKCJwYXJzZSIsaSksaShTdHJpbmcoYSksYSl9cHJvY2VzcyhlLGEpe2xldCBpPXRoaXM7cmV0dXJuIHRoaXMuZnJlZXplKCksUV8oInByb2Nlc3MiLHRoaXMucGFyc2VyfHx0aGlzLlBhcnNlciksSl8oInByb2Nlc3MiLHRoaXMuY29tcGlsZXJ8fHRoaXMuQ29tcGlsZXIpLGE/cih2b2lkIDAsYSk6bmV3IFByb21pc2Uocik7ZnVuY3Rpb24gcihzLG4pe2xldCBvPWc5KGUpLGQ9aS5wYXJzZShvKTtpLnJ1bihkLG8sZnVuY3Rpb24oaCxsLGYpe2lmKGh8fCFsfHwhZilyZXR1cm4gYyhoKTtsZXQgZz1sLHk9aS5zdHJpbmdpZnkoZyxmKTtzUHQoeSk/Zi52YWx1ZT15OmYucmVzdWx0PXksYyhoLGYpfSk7ZnVuY3Rpb24gYyhoLGwpe2h8fCFsP24oaCk6cz9zKGwpOmEodm9pZCAwLGwpfX19cHJvY2Vzc1N5bmMoZSl7bGV0IGE9ITEsaTtyZXR1cm4gdGhpcy5mcmVlemUoKSxRXygicHJvY2Vzc1N5bmMiLHRoaXMucGFyc2VyfHx0aGlzLlBhcnNlciksSl8oInByb2Nlc3NTeW5jIix0aGlzLmNvbXBpbGVyfHx0aGlzLkNvbXBpbGVyKSx0aGlzLnByb2Nlc3MoZSxyKSxpcmUoInByb2Nlc3NTeW5jIiwicHJvY2VzcyIsYSksaTtmdW5jdGlvbiByKHMsbil7YT0hMCxWXyhzKSxpPW59fXJ1bihlLGEsaSl7YXJlKGUpLHRoaXMuZnJlZXplKCk7bGV0IHI9dGhpcy50cmFuc2Zvcm1lcnM7cmV0dXJuIWkmJnR5cGVvZiBhPT0iZnVuY3Rpb24iJiYoaT1hLGE9dm9pZCAwKSxpP3Modm9pZCAwLGkpOm5ldyBQcm9taXNlKHMpO2Z1bmN0aW9uIHMobixvKXtsZXQgZD1nOShhKTtyLnJ1bihlLGQsYyk7ZnVuY3Rpb24gYyhoLGwsZil7bGV0IGc9bHx8ZTtoP28oaCk6bj9uKGcpOmkodm9pZCAwLGcsZil9fX1ydW5TeW5jKGUsYSl7bGV0IGk9ITEscjtyZXR1cm4gdGhpcy5ydW4oZSxhLHMpLGlyZSgicnVuU3luYyIsInJ1biIsaSkscjtmdW5jdGlvbiBzKG4sbyl7Vl8obikscj1vLGk9ITB9fXN0cmluZ2lmeShlLGEpe3RoaXMuZnJlZXplKCk7bGV0IGk9ZzkoYSkscj10aGlzLmNvbXBpbGVyfHx0aGlzLkNvbXBpbGVyO3JldHVybiBKXygic3RyaW5naWZ5IixyKSxhcmUoZSkscihlLGkpfXVzZShlLC4uLmEpe2xldCBpPXRoaXMuYXR0YWNoZXJzLHI9dGhpcy5uYW1lc3BhY2U7aWYoZVQoInVzZSIsdGhpcy5mcm96ZW4pLGUhPW51bGwpaWYodHlwZW9mIGU9PSJmdW5jdGlvbiIpZChlLGEpO2Vsc2UgaWYodHlwZW9mIGU9PSJvYmplY3QiKUFycmF5LmlzQXJyYXkoZSk/byhlKTpuKGUpO2Vsc2UgdGhyb3cgbmV3IFR5cGVFcnJvcigiRXhwZWN0ZWQgdXNhYmxlIHZhbHVlLCBub3QgYCIrZSsiYCIpO3JldHVybiB0aGlzO2Z1bmN0aW9uIHMoYyl7aWYodHlwZW9mIGM9PSJmdW5jdGlvbiIpZChjLFtdKTtlbHNlIGlmKHR5cGVvZiBjPT0ib2JqZWN0IilpZihBcnJheS5pc0FycmF5KGMpKXtsZXRbaCwuLi5sXT1jO2QoaCxsKX1lbHNlIG4oYyk7ZWxzZSB0aHJvdyBuZXcgVHlwZUVycm9yKCJFeHBlY3RlZCB1c2FibGUgdmFsdWUsIG5vdCBgIitjKyJgIil9ZnVuY3Rpb24gbihjKXtpZighKCJwbHVnaW5zImluIGMpJiYhKCJzZXR0aW5ncyJpbiBjKSl0aHJvdyBuZXcgRXJyb3IoIkV4cGVjdGVkIHVzYWJsZSB2YWx1ZSBidXQgcmVjZWl2ZWQgYW4gZW1wdHkgcHJlc2V0LCB3aGljaCBpcyBwcm9iYWJseSBhIG1pc3Rha2U6IHByZXNldHMgdHlwaWNhbGx5IGNvbWUgd2l0aCBgcGx1Z2luc2AgYW5kIHNvbWV0aW1lcyB3aXRoIGBzZXR0aW5nc2AsIGJ1dCB0aGlzIGhhcyBuZWl0aGVyIik7byhjLnBsdWdpbnMpLGMuc2V0dGluZ3MmJihyLnNldHRpbmdzPSgwLGI5LmRlZmF1bHQpKCEwLHIuc2V0dGluZ3MsYy5zZXR0aW5ncykpfWZ1bmN0aW9uIG8oYyl7bGV0IGg9LTE7aWYoYyE9bnVsbClpZihBcnJheS5pc0FycmF5KGMpKWZvcig7KytoPGMubGVuZ3RoOyl7bGV0IGw9Y1toXTtzKGwpfWVsc2UgdGhyb3cgbmV3IFR5cGVFcnJvcigiRXhwZWN0ZWQgYSBsaXN0IG9mIHBsdWdpbnMsIG5vdCBgIitjKyJgIil9ZnVuY3Rpb24gZChjLGgpe2xldCBsPS0xLGY9LTE7Zm9yKDsrK2w8aS5sZW5ndGg7KWlmKGlbbF1bMF09PT1jKXtmPWw7YnJlYWt9aWYoZj09PS0xKWkucHVzaChbYywuLi5oXSk7ZWxzZSBpZihoLmxlbmd0aD4wKXtsZXRbZywuLi55XT1oLHY9aVtmXVsxXTtQNih2KSYmUDYoZykmJihnPSgwLGI5LmRlZmF1bHQpKCEwLHYsZykpLGlbZl09W2MsZywuLi55XX19fX0sRjY9bmV3IEtfKCkuZnJlZXplKCl9KTt2YXIgc3JlPWIoKCk9PntycmUoKX0pO2Z1bmN0aW9uIEUzKHQsZSl7bGV0IGE9U3RyaW5nKHQpO2lmKHR5cGVvZiBlIT0ic3RyaW5nIil0aHJvdyBuZXcgVHlwZUVycm9yKCJFeHBlY3RlZCBjaGFyYWN0ZXIiKTtsZXQgaT0wLHI9YS5pbmRleE9mKGUpO2Zvcig7ciE9PS0xOylpKysscj1hLmluZGV4T2YoZSxyK2UubGVuZ3RoKTtyZXR1cm4gaX12YXIgdFQ9YigoKT0+e30pO2Z1bmN0aW9uIGcwKHQpe3JldHVybiB0IT09bnVsbCYmKHQ8MzJ8fHQ9PT0xMjcpfWZ1bmN0aW9uIE9lKHQpe3JldHVybiB0IT09bnVsbCYmdDwtMn1mdW5jdGlvbiBfdCh0KXtyZXR1cm4gdCE9PW51bGwmJih0PDB8fHQ9PT0zMil9ZnVuY3Rpb24gUWUodCl7cmV0dXJuIHQ9PT0tMnx8dD09PS0xfHx0PT09MzJ9ZnVuY3Rpb24gT24odCl7cmV0dXJuIGU7ZnVuY3Rpb24gZShhKXtyZXR1cm4gYSE9PW51bGwmJmE+LTEmJnQudGVzdChTdHJpbmcuZnJvbUNoYXJDb2RlKGEpKX19dmFyIGkyLFAxLG5yZSxPNixvcmUsbHJlLGIwLCRyLCR0PWIoKCk9PntpMj1PbigvW0EtWmEtel0vKSxQMT1PbigvW1xkQS1aYS16XS8pLG5yZT1PbigvWyMtJyorXC0tOT0/QS1aXi1+XS8pO082PU9uKC9cZC8pLG9yZT1PbigvW1xkQS1GYS1mXS8pLGxyZT1PbigvWyEtLzotQFstYHstfl0vKTtiMD1PbigvXHB7UH18XHB7U30vdSksJHI9T24oL1xzLyl9KTtmdW5jdGlvbiBvUHQodCl7bGV0IGU9W10sYT0tMTtmb3IoOysrYTx0Lmxlbmd0aDspZVthXT15cyh0W2FdKTtyZXR1cm4gdjkoaSk7ZnVuY3Rpb24gaSguLi5yKXtsZXQgcz0tMTtmb3IoOysrczxlLmxlbmd0aDspaWYoZVtzXS5hcHBseSh0aGlzLHIpKXJldHVybiEwO3JldHVybiExfX1mdW5jdGlvbiBsUHQodCl7bGV0IGU9dDtyZXR1cm4gdjkoYSk7ZnVuY3Rpb24gYShpKXtsZXQgcj1pLHM7Zm9yKHMgaW4gdClpZihyW3NdIT09ZVtzXSlyZXR1cm4hMTtyZXR1cm4hMH19ZnVuY3Rpb24gY1B0KHQpe3JldHVybiB2OShlKTtmdW5jdGlvbiBlKGEpe3JldHVybiBhJiZhLnR5cGU9PT10fX1mdW5jdGlvbiB2OSh0KXtyZXR1cm4gZTtmdW5jdGlvbiBlKGEsaSxyKXtyZXR1cm4hIShjcmUoYSkmJnQuY2FsbCh0aGlzLGEsdHlwZW9mIGk9PSJudW1iZXIiP2k6dm9pZCAwLHJ8fHZvaWQgMCkpfX1mdW5jdGlvbiBkUHQoKXtyZXR1cm4hMH1mdW5jdGlvbiBjcmUodCl7cmV0dXJuIHQhPT1udWxsJiZ0eXBlb2YgdD09Im9iamVjdCImJiJ0eXBlImluIHR9dmFyIGRyZSx5cyxocmU9YigoKT0+e2RyZT0oZnVuY3Rpb24odCxlLGEsaSxyKXtsZXQgcz15cyhlKTtpZihhIT1udWxsJiYodHlwZW9mIGEhPSJudW1iZXIifHxhPDB8fGE9PT1OdW1iZXIuUE9TSVRJVkVfSU5GSU5JVFkpKXRocm93IG5ldyBFcnJvcigiRXhwZWN0ZWQgcG9zaXRpdmUgZmluaXRlIGluZGV4Iik7aWYoaSE9bnVsbCYmKCFkcmUoaSl8fCFpLmNoaWxkcmVuKSl0aHJvdyBuZXcgRXJyb3IoIkV4cGVjdGVkIHBhcmVudCBub2RlIik7aWYoaT09bnVsbCE9KGE9PW51bGwpKXRocm93IG5ldyBFcnJvcigiRXhwZWN0ZWQgYm90aCBwYXJlbnQgYW5kIGluZGV4Iik7cmV0dXJuIGNyZSh0KT9zLmNhbGwocix0LGEsaSk6ITF9KSx5cz0oZnVuY3Rpb24odCl7aWYodD09bnVsbClyZXR1cm4gZFB0O2lmKHR5cGVvZiB0PT0iZnVuY3Rpb24iKXJldHVybiB2OSh0KTtpZih0eXBlb2YgdD09Im9iamVjdCIpcmV0dXJuIEFycmF5LmlzQXJyYXkodCk/b1B0KHQpOmxQdCh0KTtpZih0eXBlb2YgdD09InN0cmluZyIpcmV0dXJuIGNQdCh0KTt0aHJvdyBuZXcgRXJyb3IoIkV4cGVjdGVkIGZ1bmN0aW9uLCBzdHJpbmcsIG9yIG9iamVjdCBhcyB0ZXN0Iil9KX0pO3ZhciB5OT1iKCgpPT57aHJlKCl9KTt2YXIgcHJlPWIoKCk9Pnt9KTtmdW5jdGlvbiBSNih0LGUsYSxpKXtsZXQgcjt0eXBlb2YgZT09ImZ1bmN0aW9uIiYmdHlwZW9mIGEhPSJmdW5jdGlvbiI/KGk9YSxhPWUpOnI9ZTtsZXQgcz15cyhyKSxuPWk/LTE6MTtvKHQsdm9pZCAwLFtdKSgpO2Z1bmN0aW9uIG8oZCxjLGgpe2xldCBsPWQmJnR5cGVvZiBkPT0ib2JqZWN0Ij9kOnt9O2lmKHR5cGVvZiBsLnR5cGU9PSJzdHJpbmciKXtsZXQgZz10eXBlb2YgbC50YWdOYW1lPT0ic3RyaW5nIj9sLnRhZ05hbWU6dHlwZW9mIGwubmFtZT09InN0cmluZyI/bC5uYW1lOnZvaWQgMDtPYmplY3QuZGVmaW5lUHJvcGVydHkoZiwibmFtZSIse3ZhbHVlOiJub2RlICgiKyhkLnR5cGUrKGc/IjwiK2crIj4iOiIiKSkrIikifSl9cmV0dXJuIGY7ZnVuY3Rpb24gZigpe2xldCBnPXVyZSx5LHYsbTtpZigoIWV8fHMoZCxjLGhbaC5sZW5ndGgtMV18fHZvaWQgMCkpJiYoZz1oUHQoYShkLGgpKSxnWzBdPT09djApKXJldHVybiBnO2lmKCJjaGlsZHJlbiJpbiBkJiZkLmNoaWxkcmVuKXtsZXQgeD1kO2lmKHguY2hpbGRyZW4mJmdbMF0hPT13OSlmb3Iodj0oaT94LmNoaWxkcmVuLmxlbmd0aDotMSkrbixtPWguY29uY2F0KHgpO3Y+LTEmJnY8eC5jaGlsZHJlbi5sZW5ndGg7KXtsZXQgTT14LmNoaWxkcmVuW3ZdO2lmKHk9byhNLHYsbSkoKSx5WzBdPT09djApcmV0dXJuIHk7dj10eXBlb2YgeVsxXT09Im51bWJlciI/eVsxXTp2K259fXJldHVybiBnfX19ZnVuY3Rpb24gaFB0KHQpe3JldHVybiBBcnJheS5pc0FycmF5KHQpP3Q6dHlwZW9mIHQ9PSJudW1iZXIiP1t4OSx0XTp0PT1udWxsP3VyZTpbdF19dmFyIHVyZSx4OSx2MCx3OSxmcmU9YigoKT0+e3k5KCk7cHJlKCk7dXJlPVtdLHg5PSEwLHYwPSExLHc5PSJza2lwIn0pO3ZhciBNOT1iKCgpPT57ZnJlKCl9KTtmdW5jdGlvbiBhVCh0LGUsYSl7bGV0IHI9eXMoKGF8fHt9KS5pZ25vcmV8fFtdKSxzPXBQdChlKSxuPS0xO2Zvcig7KytuPHMubGVuZ3RoOylSNih0LCJ0ZXh0IixvKTtmdW5jdGlvbiBvKGMsaCl7bGV0IGw9LTEsZjtmb3IoOysrbDxoLmxlbmd0aDspe2xldCBnPWhbbF0seT1mP2YuY2hpbGRyZW46dm9pZCAwO2lmKHIoZyx5P3kuaW5kZXhPZihnKTp2b2lkIDAsZikpcmV0dXJuO2Y9Z31pZihmKXJldHVybiBkKGMsaCl9ZnVuY3Rpb24gZChjLGgpe2xldCBsPWhbaC5sZW5ndGgtMV0sZj1zW25dWzBdLGc9c1tuXVsxXSx5PTAsbT1sLmNoaWxkcmVuLmluZGV4T2YoYykseD0hMSxNPVtdO2YubGFzdEluZGV4PTA7bGV0IFM9Zi5leGVjKGMudmFsdWUpO2Zvcig7Uzspe2xldCBGPVMuaW5kZXgsXz17aW5kZXg6Uy5pbmRleCxpbnB1dDpTLmlucHV0LHN0YWNrOlsuLi5oLGNdfSxrPWcoLi4uUyxfKTtpZih0eXBlb2Ygaz09InN0cmluZyImJihrPWsubGVuZ3RoPjA/e3R5cGU6InRleHQiLHZhbHVlOmt9OnZvaWQgMCksaz09PSExP2YubGFzdEluZGV4PUYrMTooeSE9PUYmJk0ucHVzaCh7dHlwZToidGV4dCIsdmFsdWU6Yy52YWx1ZS5zbGljZSh5LEYpfSksQXJyYXkuaXNBcnJheShrKT9NLnB1c2goLi4uayk6ayYmTS5wdXNoKGspLHk9RitTWzBdLmxlbmd0aCx4PSEwKSwhZi5nbG9iYWwpYnJlYWs7Uz1mLmV4ZWMoYy52YWx1ZSl9cmV0dXJuIHg/KHk8Yy52YWx1ZS5sZW5ndGgmJk0ucHVzaCh7dHlwZToidGV4dCIsdmFsdWU6Yy52YWx1ZS5zbGljZSh5KX0pLGwuY2hpbGRyZW4uc3BsaWNlKG0sMSwuLi5NKSk6TT1bY10sbStNLmxlbmd0aH19ZnVuY3Rpb24gcFB0KHQpe2xldCBlPVtdO2lmKCFBcnJheS5pc0FycmF5KHQpKXRocm93IG5ldyBUeXBlRXJyb3IoIkV4cGVjdGVkIGZpbmQgYW5kIHJlcGxhY2UgdHVwbGUgb3IgbGlzdCBvZiB0dXBsZXMiKTtsZXQgYT0hdFswXXx8QXJyYXkuaXNBcnJheSh0WzBdKT90Olt0XSxpPS0xO2Zvcig7KytpPGEubGVuZ3RoOyl7bGV0IHI9YVtpXTtlLnB1c2goW3VQdChyWzBdKSxmUHQoclsxXSldKX1yZXR1cm4gZX1mdW5jdGlvbiB1UHQodCl7cmV0dXJuIHR5cGVvZiB0PT0ic3RyaW5nIj9uZXcgUmVnRXhwKEJvKHQpLCJnIik6dH1mdW5jdGlvbiBmUHQodCl7cmV0dXJuIHR5cGVvZiB0PT0iZnVuY3Rpb24iP3Q6ZnVuY3Rpb24oKXtyZXR1cm4gdH19dmFyIG1yZT1iKCgpPT57djcoKTtNOSgpO3k5KCl9KTt2YXIgZ3JlPWIoKCk9PnttcmUoKX0pO2Z1bmN0aW9uIG5UKCl7cmV0dXJue3RyYW5zZm9ybXM6W3hQdF0sZW50ZXI6e2xpdGVyYWxBdXRvbGluazptUHQsbGl0ZXJhbEF1dG9saW5rRW1haWw6c1QsbGl0ZXJhbEF1dG9saW5rSHR0cDpzVCxsaXRlcmFsQXV0b2xpbmtXd3c6c1R9LGV4aXQ6e2xpdGVyYWxBdXRvbGluazp5UHQsbGl0ZXJhbEF1dG9saW5rRW1haWw6dlB0LGxpdGVyYWxBdXRvbGlua0h0dHA6Z1B0LGxpdGVyYWxBdXRvbGlua1d3dzpiUHR9fX1mdW5jdGlvbiBvVCgpe3JldHVybnt1bnNhZmU6W3tjaGFyYWN0ZXI6IkAiLGJlZm9yZToiWytcXC0uXFx3XSIsYWZ0ZXI6IltcXC0uXFx3XSIsaW5Db25zdHJ1Y3Q6aVQsbm90SW5Db25zdHJ1Y3Q6clR9LHtjaGFyYWN0ZXI6Ii4iLGJlZm9yZToiW1d3XSIsYWZ0ZXI6IltcXC0uXFx3XSIsaW5Db25zdHJ1Y3Q6aVQsbm90SW5Db25zdHJ1Y3Q6clR9LHtjaGFyYWN0ZXI6IjoiLGJlZm9yZToiW3BzXSIsYWZ0ZXI6IlxcLyIsaW5Db25zdHJ1Y3Q6aVQsbm90SW5Db25zdHJ1Y3Q6clR9XX19ZnVuY3Rpb24gbVB0KHQpe3RoaXMuZW50ZXIoe3R5cGU6ImxpbmsiLHRpdGxlOm51bGwsdXJsOiIiLGNoaWxkcmVuOltdfSx0KX1mdW5jdGlvbiBzVCh0KXt0aGlzLmNvbmZpZy5lbnRlci5hdXRvbGlua1Byb3RvY29sLmNhbGwodGhpcyx0KX1mdW5jdGlvbiBnUHQodCl7dGhpcy5jb25maWcuZXhpdC5hdXRvbGlua1Byb3RvY29sLmNhbGwodGhpcyx0KX1mdW5jdGlvbiBiUHQodCl7dGhpcy5jb25maWcuZXhpdC5kYXRhLmNhbGwodGhpcyx0KTtsZXQgZT10aGlzLnN0YWNrW3RoaXMuc3RhY2subGVuZ3RoLTFdO2UudHlwZSxlLnVybD0iaHR0cDovLyIrdGhpcy5zbGljZVNlcmlhbGl6ZSh0KX1mdW5jdGlvbiB2UHQodCl7dGhpcy5jb25maWcuZXhpdC5hdXRvbGlua0VtYWlsLmNhbGwodGhpcyx0KX1mdW5jdGlvbiB5UHQodCl7dGhpcy5leGl0KHQpfWZ1bmN0aW9uIHhQdCh0KXthVCh0LFtbLyhodHRwcz86XC9cL3x3d3coPz1cLikpKFstLlx3XSspKFteIFx0XHJcbl0qKS9naSx3UHRdLFsvKD88PV58XHN8XHB7UH18XHB7U30pKFstLlx3K10rKUAoWy1cd10rKD86XC5bLVx3XSspKykvZ3UsTVB0XV0se2lnbm9yZTpbImxpbmsiLCJsaW5rUmVmZXJlbmNlIl19KX1mdW5jdGlvbiB3UHQodCxlLGEsaSxyKXtsZXQgcz0iIjtpZighYnJlKHIpfHwoL153L2kudGVzdChlKSYmKGE9ZSthLGU9IiIscz0iaHR0cDovLyIpLCF6UHQoYSkpKXJldHVybiExO2xldCBuPWtQdChhK2kpO2lmKCFuWzBdKXJldHVybiExO2xldCBvPXt0eXBlOiJsaW5rIix0aXRsZTpudWxsLHVybDpzK2UrblswXSxjaGlsZHJlbjpbe3R5cGU6InRleHQiLHZhbHVlOmUrblswXX1dfTtyZXR1cm4gblsxXT9bbyx7dHlwZToidGV4dCIsdmFsdWU6blsxXX1dOm99ZnVuY3Rpb24gTVB0KHQsZSxhLGkpe3JldHVybiFicmUoaSwhMCl8fC9bLVxkX10kLy50ZXN0KGEpPyExOnt0eXBlOiJsaW5rIix0aXRsZTpudWxsLHVybDoibWFpbHRvOiIrZSsiQCIrYSxjaGlsZHJlbjpbe3R5cGU6InRleHQiLHZhbHVlOmUrIkAiK2F9XX19ZnVuY3Rpb24gelB0KHQpe2xldCBlPXQuc3BsaXQoIi4iKTtyZXR1cm4hKGUubGVuZ3RoPDJ8fGVbZS5sZW5ndGgtMV0mJigvXy8udGVzdChlW2UubGVuZ3RoLTFdKXx8IS9bYS16QS1aXGRdLy50ZXN0KGVbZS5sZW5ndGgtMV0pKXx8ZVtlLmxlbmd0aC0yXSYmKC9fLy50ZXN0KGVbZS5sZW5ndGgtMl0pfHwhL1thLXpBLVpcZF0vLnRlc3QoZVtlLmxlbmd0aC0yXSkpKX1mdW5jdGlvbiBrUHQodCl7bGV0IGU9L1shIiYnKSwuOjs8Pj9cXX1dKyQvLmV4ZWModCk7aWYoIWUpcmV0dXJuW3Qsdm9pZCAwXTt0PXQuc2xpY2UoMCxlLmluZGV4KTtsZXQgYT1lWzBdLGk9YS5pbmRleE9mKCIpIikscj1FMyh0LCIoIikscz1FMyh0LCIpIik7Zm9yKDtpIT09LTEmJnI+czspdCs9YS5zbGljZSgwLGkrMSksYT1hLnNsaWNlKGkrMSksaT1hLmluZGV4T2YoIikiKSxzKys7cmV0dXJuW3QsYV19ZnVuY3Rpb24gYnJlKHQsZSl7bGV0IGE9dC5pbnB1dC5jaGFyQ29kZUF0KHQuaW5kZXgtMSk7cmV0dXJuKHQuaW5kZXg9PT0wfHwkcihhKXx8YjAoYSkpJiYoIWV8fGEhPT00Nyl9dmFyIGlULHJULHZyZT1iKCgpPT57dFQoKTtObigpOyR0KCk7Z3JlKCk7aVQ9InBocmFzaW5nIixyVD1bImF1dG9saW5rIiwibGluayIsImltYWdlIiwibGFiZWwiXX0pO3ZhciB5cmU9YigoKT0+e3ZyZSgpfSk7ZnVuY3Rpb24gSTEodCl7cmV0dXJuIHQucmVwbGFjZSgvW1x0XG5cciBdKy9nLCIgIikucmVwbGFjZSgvXiB8ICQvZywiIikudG9Mb3dlckNhc2UoKS50b1VwcGVyQ2FzZSgpfXZhciBSbj1iKCgpPT57fSk7ZnVuY3Rpb24gU1B0KCl7dGhpcy5idWZmZXIoKX1mdW5jdGlvbiBDUHQodCl7dGhpcy5lbnRlcih7dHlwZToiZm9vdG5vdGVSZWZlcmVuY2UiLGlkZW50aWZpZXI6IiIsbGFiZWw6IiJ9LHQpfWZ1bmN0aW9uIF9QdCgpe3RoaXMuYnVmZmVyKCl9ZnVuY3Rpb24gVFB0KHQpe3RoaXMuZW50ZXIoe3R5cGU6ImZvb3Rub3RlRGVmaW5pdGlvbiIsaWRlbnRpZmllcjoiIixsYWJlbDoiIixjaGlsZHJlbjpbXX0sdCl9ZnVuY3Rpb24gTFB0KHQpe2xldCBlPXRoaXMucmVzdW1lKCksYT10aGlzLnN0YWNrW3RoaXMuc3RhY2subGVuZ3RoLTFdO2EudHlwZSxhLmlkZW50aWZpZXI9STEodGhpcy5zbGljZVNlcmlhbGl6ZSh0KSkudG9Mb3dlckNhc2UoKSxhLmxhYmVsPWV9ZnVuY3Rpb24gJFB0KHQpe3RoaXMuZXhpdCh0KX1mdW5jdGlvbiBBUHQodCl7bGV0IGU9dGhpcy5yZXN1bWUoKSxhPXRoaXMuc3RhY2tbdGhpcy5zdGFjay5sZW5ndGgtMV07YS50eXBlLGEuaWRlbnRpZmllcj1JMSh0aGlzLnNsaWNlU2VyaWFsaXplKHQpKS50b0xvd2VyQ2FzZSgpLGEubGFiZWw9ZX1mdW5jdGlvbiBEUHQodCl7dGhpcy5leGl0KHQpfWZ1bmN0aW9uIEVQdCgpe3JldHVybiJbIn1mdW5jdGlvbiB4cmUodCxlLGEsaSl7bGV0IHI9YS5jcmVhdGVUcmFja2VyKGkpLHM9ci5tb3ZlKCJbXiIpLG49YS5lbnRlcigiZm9vdG5vdGVSZWZlcmVuY2UiKSxvPWEuZW50ZXIoInJlZmVyZW5jZSIpO3JldHVybiBzKz1yLm1vdmUoYS5zYWZlKGEuYXNzb2NpYXRpb25JZCh0KSx7YWZ0ZXI6Il0iLGJlZm9yZTpzfSkpLG8oKSxuKCkscys9ci5tb3ZlKCJdIiksc31mdW5jdGlvbiBsVCgpe3JldHVybntlbnRlcjp7Z2ZtRm9vdG5vdGVDYWxsU3RyaW5nOlNQdCxnZm1Gb290bm90ZUNhbGw6Q1B0LGdmbUZvb3Rub3RlRGVmaW5pdGlvbkxhYmVsU3RyaW5nOl9QdCxnZm1Gb290bm90ZURlZmluaXRpb246VFB0fSxleGl0OntnZm1Gb290bm90ZUNhbGxTdHJpbmc6TFB0LGdmbUZvb3Rub3RlQ2FsbDokUHQsZ2ZtRm9vdG5vdGVEZWZpbml0aW9uTGFiZWxTdHJpbmc6QVB0LGdmbUZvb3Rub3RlRGVmaW5pdGlvbjpEUHR9fX1mdW5jdGlvbiBjVCh0KXtsZXQgZT0hMTtyZXR1cm4gdCYmdC5maXJzdExpbmVCbGFuayYmKGU9ITApLHtoYW5kbGVyczp7Zm9vdG5vdGVEZWZpbml0aW9uOmEsZm9vdG5vdGVSZWZlcmVuY2U6eHJlfSx1bnNhZmU6W3tjaGFyYWN0ZXI6IlsiLGluQ29uc3RydWN0OlsibGFiZWwiLCJwaHJhc2luZyIsInJlZmVyZW5jZSJdfV19O2Z1bmN0aW9uIGEoaSxyLHMsbil7bGV0IG89cy5jcmVhdGVUcmFja2VyKG4pLGQ9by5tb3ZlKCJbXiIpLGM9cy5lbnRlcigiZm9vdG5vdGVEZWZpbml0aW9uIiksaD1zLmVudGVyKCJsYWJlbCIpO3JldHVybiBkKz1vLm1vdmUocy5zYWZlKHMuYXNzb2NpYXRpb25JZChpKSx7YmVmb3JlOmQsYWZ0ZXI6Il0ifSkpLGgoKSxkKz1vLm1vdmUoIl06IiksaS5jaGlsZHJlbiYmaS5jaGlsZHJlbi5sZW5ndGg+MCYmKG8uc2hpZnQoNCksZCs9by5tb3ZlKChlP2AKYDoiICIpK3MuaW5kZW50TGluZXMocy5jb250YWluZXJGbG93KGksby5jdXJyZW50KCkpLGU/d3JlOlBQdCkpKSxjKCksZH19ZnVuY3Rpb24gUFB0KHQsZSxhKXtyZXR1cm4gZT09PTA/dDp3cmUodCxlLGEpfWZ1bmN0aW9uIHdyZSh0LGUsYSl7cmV0dXJuKGE/IiI6IiAgICAiKSt0fXZhciBNcmU9YigoKT0+e05uKCk7Um4oKTt4cmUucGVlaz1FUHR9KTt2YXIgenJlPWIoKCk9PntNcmUoKX0pO2Z1bmN0aW9uIGRUKCl7cmV0dXJue2NhbkNvbnRhaW5Fb2xzOlsiZGVsZXRlIl0sZW50ZXI6e3N0cmlrZXRocm91Z2g6TlB0fSxleGl0OntzdHJpa2V0aHJvdWdoOkZQdH19fWZ1bmN0aW9uIGhUKCl7cmV0dXJue3Vuc2FmZTpbe2NoYXJhY3RlcjoifiIsaW5Db25zdHJ1Y3Q6InBocmFzaW5nIixub3RJbkNvbnN0cnVjdDpJUHR9XSxoYW5kbGVyczp7ZGVsZXRlOmtyZX19fWZ1bmN0aW9uIE5QdCh0KXt0aGlzLmVudGVyKHt0eXBlOiJkZWxldGUiLGNoaWxkcmVuOltdfSx0KX1mdW5jdGlvbiBGUHQodCl7dGhpcy5leGl0KHQpfWZ1bmN0aW9uIGtyZSh0LGUsYSxpKXtsZXQgcj1hLmNyZWF0ZVRyYWNrZXIoaSkscz1hLmVudGVyKCJzdHJpa2V0aHJvdWdoIiksbj1yLm1vdmUoIn5+Iik7cmV0dXJuIG4rPWEuY29udGFpbmVyUGhyYXNpbmcodCx7Li4uci5jdXJyZW50KCksYmVmb3JlOm4sYWZ0ZXI6In4ifSksbis9ci5tb3ZlKCJ+fiIpLHMoKSxufWZ1bmN0aW9uIE9QdCgpe3JldHVybiJ+In12YXIgSVB0LFNyZT1iKCgpPT57SVB0PVsiYXV0b2xpbmsiLCJkZXN0aW5hdGlvbkxpdGVyYWwiLCJkZXN0aW5hdGlvblJhdyIsInJlZmVyZW5jZSIsInRpdGxlUXVvdGUiLCJ0aXRsZUFwb3N0cm9waGUiXTtrcmUucGVlaz1PUHR9KTt2YXIgQ3JlPWIoKCk9PntTcmUoKX0pO2Z1bmN0aW9uIFJQdCh0KXtyZXR1cm4gdC5sZW5ndGh9ZnVuY3Rpb24gVHJlKHQsZSl7bGV0IGE9ZXx8e30saT0oYS5hbGlnbnx8W10pLmNvbmNhdCgpLHI9YS5zdHJpbmdMZW5ndGh8fFJQdCxzPVtdLG49W10sbz1bXSxkPVtdLGM9MCxoPS0xO2Zvcig7KytoPHQubGVuZ3RoOyl7bGV0IHY9W10sbT1bXSx4PS0xO2Zvcih0W2hdLmxlbmd0aD5jJiYoYz10W2hdLmxlbmd0aCk7Kyt4PHRbaF0ubGVuZ3RoOyl7bGV0IE09QlB0KHRbaF1beF0pO2lmKGEuYWxpZ25EZWxpbWl0ZXJzIT09ITEpe2xldCBTPXIoTSk7bVt4XT1TLChkW3hdPT09dm9pZCAwfHxTPmRbeF0pJiYoZFt4XT1TKX12LnB1c2goTSl9bltoXT12LG9baF09bX1sZXQgbD0tMTtpZih0eXBlb2YgaT09Im9iamVjdCImJiJsZW5ndGgiaW4gaSlmb3IoOysrbDxjOylzW2xdPV9yZShpW2xdKTtlbHNle2xldCB2PV9yZShpKTtmb3IoOysrbDxjOylzW2xdPXZ9bD0tMTtsZXQgZj1bXSxnPVtdO2Zvcig7KytsPGM7KXtsZXQgdj1zW2xdLG09IiIseD0iIjt2PT09OTk/KG09IjoiLHg9IjoiKTp2PT09MTA4P209IjoiOnY9PT0xMTQmJih4PSI6Iik7bGV0IE09YS5hbGlnbkRlbGltaXRlcnM9PT0hMT8xOk1hdGgubWF4KDEsZFtsXS1tLmxlbmd0aC14Lmxlbmd0aCksUz1tKyItIi5yZXBlYXQoTSkreDthLmFsaWduRGVsaW1pdGVycyE9PSExJiYoTT1tLmxlbmd0aCtNK3gubGVuZ3RoLE0+ZFtsXSYmKGRbbF09TSksZ1tsXT1NKSxmW2xdPVN9bi5zcGxpY2UoMSwwLGYpLG8uc3BsaWNlKDEsMCxnKSxoPS0xO2xldCB5PVtdO2Zvcig7KytoPG4ubGVuZ3RoOyl7bGV0IHY9bltoXSxtPW9baF07bD0tMTtsZXQgeD1bXTtmb3IoOysrbDxjOyl7bGV0IE09dltsXXx8IiIsUz0iIixGPSIiO2lmKGEuYWxpZ25EZWxpbWl0ZXJzIT09ITEpe2xldCBfPWRbbF0tKG1bbF18fDApLGs9c1tsXTtrPT09MTE0P1M9IiAiLnJlcGVhdChfKTprPT09OTk/XyUyPyhTPSIgIi5yZXBlYXQoXy8yKy41KSxGPSIgIi5yZXBlYXQoXy8yLS41KSk6KFM9IiAiLnJlcGVhdChfLzIpLEY9Uyk6Rj0iICIucmVwZWF0KF8pfWEuZGVsaW1pdGVyU3RhcnQhPT0hMSYmIWwmJngucHVzaCgifCIpLGEucGFkZGluZyE9PSExJiYhKGEuYWxpZ25EZWxpbWl0ZXJzPT09ITEmJk09PT0iIikmJihhLmRlbGltaXRlclN0YXJ0IT09ITF8fGwpJiZ4LnB1c2goIiAiKSxhLmFsaWduRGVsaW1pdGVycyE9PSExJiZ4LnB1c2goUykseC5wdXNoKE0pLGEuYWxpZ25EZWxpbWl0ZXJzIT09ITEmJngucHVzaChGKSxhLnBhZGRpbmchPT0hMSYmeC5wdXNoKCIgIiksKGEuZGVsaW1pdGVyRW5kIT09ITF8fGwhPT1jLTEpJiZ4LnB1c2goInwiKX15LnB1c2goYS5kZWxpbWl0ZXJFbmQ9PT0hMT94LmpvaW4oIiIpLnJlcGxhY2UoLyArJC8sIiIpOnguam9pbigiIikpfXJldHVybiB5LmpvaW4oYApgKX1mdW5jdGlvbiBCUHQodCl7cmV0dXJuIHQ9PW51bGw/IiI6U3RyaW5nKHQpfWZ1bmN0aW9uIF9yZSh0KXtsZXQgZT10eXBlb2YgdD09InN0cmluZyI/dC5jb2RlUG9pbnRBdCgwKTowO3JldHVybiBlPT09Njd8fGU9PT05OT85OTplPT09NzZ8fGU9PT0xMDg/MTA4OmU9PT04Mnx8ZT09PTExND8xMTQ6MH12YXIgTHJlPWIoKCk9Pnt9KTtmdW5jdGlvbiB6OSh0LGUpe2xldCBhPWV8fHt9O2Z1bmN0aW9uIGkociwuLi5zKXtsZXQgbj1pLmludmFsaWQsbz1pLmhhbmRsZXJzO2lmKHImJiRyZS5jYWxsKHIsdCkpe2xldCBkPVN0cmluZyhyW3RdKTtuPSRyZS5jYWxsKG8sZCk/b1tkXTppLnVua25vd259aWYobilyZXR1cm4gbi5jYWxsKHRoaXMsciwuLi5zKX1yZXR1cm4gaS5oYW5kbGVycz1hLmhhbmRsZXJzfHx7fSxpLmludmFsaWQ9YS5pbnZhbGlkLGkudW5rbm93bj1hLnVua25vd24saX12YXIgJHJlLHBUPWIoKCk9PnskcmU9e30uaGFzT3duUHJvcGVydHl9KTtmdW5jdGlvbiB1VCh0LGUpe2xldCBhPS0xLGk7aWYoZS5leHRlbnNpb25zKWZvcig7KythPGUuZXh0ZW5zaW9ucy5sZW5ndGg7KXVUKHQsZS5leHRlbnNpb25zW2FdKTtmb3IoaSBpbiBlKWlmKEhQdC5jYWxsKGUsaSkpc3dpdGNoKGkpe2Nhc2UiZXh0ZW5zaW9ucyI6YnJlYWs7Y2FzZSJ1bnNhZmUiOntBcmUodFtpXSxlW2ldKTticmVha31jYXNlImpvaW4iOntBcmUodFtpXSxlW2ldKTticmVha31jYXNlImhhbmRsZXJzIjp7cVB0KHRbaV0sZVtpXSk7YnJlYWt9ZGVmYXVsdDp0Lm9wdGlvbnNbaV09ZVtpXX1yZXR1cm4gdH1mdW5jdGlvbiBBcmUodCxlKXtlJiZ0LnB1c2goLi4uZSl9ZnVuY3Rpb24gcVB0KHQsZSl7ZSYmT2JqZWN0LmFzc2lnbih0LGUpfXZhciBIUHQsRHJlPWIoKCk9PntIUHQ9e30uaGFzT3duUHJvcGVydHl9KTtmdW5jdGlvbiBFcmUodCxlLGEsaSl7bGV0IHI9YS5lbnRlcigiYmxvY2txdW90ZSIpLHM9YS5jcmVhdGVUcmFja2VyKGkpO3MubW92ZSgiPiAiKSxzLnNoaWZ0KDIpO2xldCBuPWEuaW5kZW50TGluZXMoYS5jb250YWluZXJGbG93KHQscy5jdXJyZW50KCkpLFZQdCk7cmV0dXJuIHIoKSxufWZ1bmN0aW9uIFZQdCh0LGUsYSl7cmV0dXJuIj4iKyhhPyIiOiIgIikrdH12YXIgUHJlPWIoKCk9Pnt9KTtmdW5jdGlvbiBrOSh0LGUpe3JldHVybiBJcmUodCxlLmluQ29uc3RydWN0LCEwKSYmIUlyZSh0LGUubm90SW5Db25zdHJ1Y3QsITEpfWZ1bmN0aW9uIElyZSh0LGUsYSl7aWYodHlwZW9mIGU9PSJzdHJpbmciJiYoZT1bZV0pLCFlfHxlLmxlbmd0aD09PTApcmV0dXJuIGE7bGV0IGk9LTE7Zm9yKDsrK2k8ZS5sZW5ndGg7KWlmKHQuaW5jbHVkZXMoZVtpXSkpcmV0dXJuITA7cmV0dXJuITF9dmFyIGZUPWIoKCk9Pnt9KTtmdW5jdGlvbiBtVCh0LGUsYSxpKXtsZXQgcj0tMTtmb3IoOysrcjxhLnVuc2FmZS5sZW5ndGg7KWlmKGEudW5zYWZlW3JdLmNoYXJhY3Rlcj09PWAKYCYmazkoYS5zdGFjayxhLnVuc2FmZVtyXSkpcmV0dXJuL1sgXHRdLy50ZXN0KGkuYmVmb3JlKT8iIjoiICI7cmV0dXJuYFxcCmB9dmFyIE5yZT1iKCgpPT57ZlQoKX0pO2Z1bmN0aW9uIEZyZSh0LGUpe2xldCBhPVN0cmluZyh0KSxpPWEuaW5kZXhPZihlKSxyPWkscz0wLG49MDtpZih0eXBlb2YgZSE9InN0cmluZyIpdGhyb3cgbmV3IFR5cGVFcnJvcigiRXhwZWN0ZWQgc3Vic3RyaW5nIik7Zm9yKDtpIT09LTE7KWk9PT1yPysrcz5uJiYobj1zKTpzPTEscj1pK2UubGVuZ3RoLGk9YS5pbmRleE9mKGUscik7cmV0dXJuIG59dmFyIE9yZT1iKCgpPT57fSk7ZnVuY3Rpb24gQjYodCxlKXtyZXR1cm4hIShlLm9wdGlvbnMuZmVuY2VzPT09ITEmJnQudmFsdWUmJiF0LmxhbmcmJi9bXiBcclxuXS8udGVzdCh0LnZhbHVlKSYmIS9eW1x0IF0qKD86W1xyXG5dfCQpfCg/Ol58W1xyXG5dKVtcdCBdKiQvLnRlc3QodC52YWx1ZSkpfXZhciBnVD1iKCgpPT57fSk7ZnVuY3Rpb24gUnJlKHQpe2xldCBlPXQub3B0aW9ucy5mZW5jZXx8ImAiO2lmKGUhPT0iYCImJmUhPT0ifiIpdGhyb3cgbmV3IEVycm9yKCJDYW5ub3Qgc2VyaWFsaXplIGNvZGUgd2l0aCBgIitlKyJgIGZvciBgb3B0aW9ucy5mZW5jZWAsIGV4cGVjdGVkIGBgIGAgYGAgb3IgYH5gIik7cmV0dXJuIGV9dmFyIEJyZT1iKCgpPT57fSk7ZnVuY3Rpb24gSHJlKHQsZSxhLGkpe2xldCByPVJyZShhKSxzPXQudmFsdWV8fCIiLG49cj09PSJgIj8iR3JhdmVBY2NlbnQiOiJUaWxkZSI7aWYoQjYodCxhKSl7bGV0IGw9YS5lbnRlcigiY29kZUluZGVudGVkIiksZj1hLmluZGVudExpbmVzKHMsalB0KTtyZXR1cm4gbCgpLGZ9bGV0IG89YS5jcmVhdGVUcmFja2VyKGkpLGQ9ci5yZXBlYXQoTWF0aC5tYXgoRnJlKHMscikrMSwzKSksYz1hLmVudGVyKCJjb2RlRmVuY2VkIiksaD1vLm1vdmUoZCk7aWYodC5sYW5nKXtsZXQgbD1hLmVudGVyKGBjb2RlRmVuY2VkTGFuZyR7bn1gKTtoKz1vLm1vdmUoYS5zYWZlKHQubGFuZyx7YmVmb3JlOmgsYWZ0ZXI6IiAiLGVuY29kZTpbImAiXSwuLi5vLmN1cnJlbnQoKX0pKSxsKCl9aWYodC5sYW5nJiZ0Lm1ldGEpe2xldCBsPWEuZW50ZXIoYGNvZGVGZW5jZWRNZXRhJHtufWApO2grPW8ubW92ZSgiICIpLGgrPW8ubW92ZShhLnNhZmUodC5tZXRhLHtiZWZvcmU6aCxhZnRlcjpgCmAsZW5jb2RlOlsiYCJdLC4uLm8uY3VycmVudCgpfSkpLGwoKX1yZXR1cm4gaCs9by5tb3ZlKGAKYCkscyYmKGgrPW8ubW92ZShzK2AKYCkpLGgrPW8ubW92ZShkKSxjKCksaH1mdW5jdGlvbiBqUHQodCxlLGEpe3JldHVybihhPyIiOiIgICAgIikrdH12YXIgcXJlPWIoKCk9PntPcmUoKTtnVCgpO0JyZSgpfSk7ZnVuY3Rpb24gUDModCl7bGV0IGU9dC5vcHRpb25zLnF1b3RlfHwnIic7aWYoZSE9PSciJyYmZSE9PSInIil0aHJvdyBuZXcgRXJyb3IoIkNhbm5vdCBzZXJpYWxpemUgdGl0bGUgd2l0aCBgIitlKyJgIGZvciBgb3B0aW9ucy5xdW90ZWAsIGV4cGVjdGVkIGBcImAsIG9yIGAnYCIpO3JldHVybiBlfXZhciBTOT1iKCgpPT57fSk7ZnVuY3Rpb24gVnJlKHQsZSxhLGkpe2xldCByPVAzKGEpLHM9cj09PSciJz8iUXVvdGUiOiJBcG9zdHJvcGhlIixuPWEuZW50ZXIoImRlZmluaXRpb24iKSxvPWEuZW50ZXIoImxhYmVsIiksZD1hLmNyZWF0ZVRyYWNrZXIoaSksYz1kLm1vdmUoIlsiKTtyZXR1cm4gYys9ZC5tb3ZlKGEuc2FmZShhLmFzc29jaWF0aW9uSWQodCkse2JlZm9yZTpjLGFmdGVyOiJdIiwuLi5kLmN1cnJlbnQoKX0pKSxjKz1kLm1vdmUoIl06ICIpLG8oKSwhdC51cmx8fC9bXDAtIFx1MDA3Rl0vLnRlc3QodC51cmwpPyhvPWEuZW50ZXIoImRlc3RpbmF0aW9uTGl0ZXJhbCIpLGMrPWQubW92ZSgiPCIpLGMrPWQubW92ZShhLnNhZmUodC51cmwse2JlZm9yZTpjLGFmdGVyOiI+IiwuLi5kLmN1cnJlbnQoKX0pKSxjKz1kLm1vdmUoIj4iKSk6KG89YS5lbnRlcigiZGVzdGluYXRpb25SYXciKSxjKz1kLm1vdmUoYS5zYWZlKHQudXJsLHtiZWZvcmU6YyxhZnRlcjp0LnRpdGxlPyIgIjpgCmAsLi4uZC5jdXJyZW50KCl9KSkpLG8oKSx0LnRpdGxlJiYobz1hLmVudGVyKGB0aXRsZSR7c31gKSxjKz1kLm1vdmUoIiAiK3IpLGMrPWQubW92ZShhLnNhZmUodC50aXRsZSx7YmVmb3JlOmMsYWZ0ZXI6ciwuLi5kLmN1cnJlbnQoKX0pKSxjKz1kLm1vdmUociksbygpKSxuKCksY312YXIganJlPWIoKCk9PntTOSgpfSk7ZnVuY3Rpb24gVXJlKHQpe2xldCBlPXQub3B0aW9ucy5lbXBoYXNpc3x8IioiO2lmKGUhPT0iKiImJmUhPT0iXyIpdGhyb3cgbmV3IEVycm9yKCJDYW5ub3Qgc2VyaWFsaXplIGVtcGhhc2lzIHdpdGggYCIrZSsiYCBmb3IgYG9wdGlvbnMuZW1waGFzaXNgLCBleHBlY3RlZCBgKmAsIG9yIGBfYCIpO3JldHVybiBlfXZhciBXcmU9YigoKT0+e30pO2Z1bmN0aW9uIEJhKHQpe3JldHVybiImI3giK3QudG9TdHJpbmcoMTYpLnRvVXBwZXJDYXNlKCkrIjsifXZhciBJMz1iKCgpPT57fSk7ZnVuY3Rpb24geHModCl7aWYodD09PW51bGx8fF90KHQpfHwkcih0KSlyZXR1cm4gMTtpZihiMCh0KSlyZXR1cm4gMn12YXIgQzk9YigoKT0+eyR0KCl9KTtmdW5jdGlvbiBOMyh0LGUsYSl7bGV0IGk9eHModCkscj14cyhlKTtyZXR1cm4gaT09PXZvaWQgMD9yPT09dm9pZCAwP2E9PT0iXyI/e2luc2lkZTohMCxvdXRzaWRlOiEwfTp7aW5zaWRlOiExLG91dHNpZGU6ITF9OnI9PT0xP3tpbnNpZGU6ITAsb3V0c2lkZTohMH06e2luc2lkZTohMSxvdXRzaWRlOiEwfTppPT09MT9yPT09dm9pZCAwP3tpbnNpZGU6ITEsb3V0c2lkZTohMX06cj09PTE/e2luc2lkZTohMCxvdXRzaWRlOiEwfTp7aW5zaWRlOiExLG91dHNpZGU6ITF9OnI9PT12b2lkIDA/e2luc2lkZTohMSxvdXRzaWRlOiExfTpyPT09MT97aW5zaWRlOiEwLG91dHNpZGU6ITF9OntpbnNpZGU6ITEsb3V0c2lkZTohMX19dmFyIGJUPWIoKCk9PntDOSgpfSk7ZnVuY3Rpb24gdlQodCxlLGEsaSl7bGV0IHI9VXJlKGEpLHM9YS5lbnRlcigiZW1waGFzaXMiKSxuPWEuY3JlYXRlVHJhY2tlcihpKSxvPW4ubW92ZShyKSxkPW4ubW92ZShhLmNvbnRhaW5lclBocmFzaW5nKHQse2FmdGVyOnIsYmVmb3JlOm8sLi4ubi5jdXJyZW50KCl9KSksYz1kLmNoYXJDb2RlQXQoMCksaD1OMyhpLmJlZm9yZS5jaGFyQ29kZUF0KGkuYmVmb3JlLmxlbmd0aC0xKSxjLHIpO2guaW5zaWRlJiYoZD1CYShjKStkLnNsaWNlKDEpKTtsZXQgbD1kLmNoYXJDb2RlQXQoZC5sZW5ndGgtMSksZj1OMyhpLmFmdGVyLmNoYXJDb2RlQXQoMCksbCxyKTtmLmluc2lkZSYmKGQ9ZC5zbGljZSgwLC0xKStCYShsKSk7bGV0IGc9bi5tb3ZlKHIpO3JldHVybiBzKCksYS5hdHRlbnRpb25FbmNvZGVTdXJyb3VuZGluZ0luZm89e2FmdGVyOmYub3V0c2lkZSxiZWZvcmU6aC5vdXRzaWRlfSxvK2QrZ31mdW5jdGlvbiBVUHQodCxlLGEpe3JldHVybiBhLm9wdGlvbnMuZW1waGFzaXN8fCIqIn12YXIgR3JlPWIoKCk9PntXcmUoKTtJMygpO2JUKCk7dlQucGVlaz1VUHR9KTtmdW5jdGlvbiBINih0LGUsYSxpKXtsZXQgcixzLG47dHlwZW9mIGU9PSJmdW5jdGlvbiImJnR5cGVvZiBhIT0iZnVuY3Rpb24iPyhzPXZvaWQgMCxuPWUscj1hKToocz1lLG49YSxyPWkpLFI2KHQscyxvLHIpO2Z1bmN0aW9uIG8oZCxjKXtsZXQgaD1jW2MubGVuZ3RoLTFdLGw9aD9oLmNoaWxkcmVuLmluZGV4T2YoZCk6dm9pZCAwO3JldHVybiBuKGQsbCxoKX19dmFyIFlyZT1iKCgpPT57TTkoKTtNOSgpfSk7dmFyIHlUPWIoKCk9PntZcmUoKX0pO2Z1bmN0aW9uIHkwKHQsZSl7bGV0IGE9ZXx8V1B0LGk9dHlwZW9mIGEuaW5jbHVkZUltYWdlQWx0PT0iYm9vbGVhbiI/YS5pbmNsdWRlSW1hZ2VBbHQ6ITAscj10eXBlb2YgYS5pbmNsdWRlSHRtbD09ImJvb2xlYW4iP2EuaW5jbHVkZUh0bWw6ITA7cmV0dXJuIFpyZSh0LGkscil9ZnVuY3Rpb24gWnJlKHQsZSxhKXtpZihHUHQodCkpe2lmKCJ2YWx1ZSJpbiB0KXJldHVybiB0LnR5cGU9PT0iaHRtbCImJiFhPyIiOnQudmFsdWU7aWYoZSYmImFsdCJpbiB0JiZ0LmFsdClyZXR1cm4gdC5hbHQ7aWYoImNoaWxkcmVuImluIHQpcmV0dXJuIFhyZSh0LmNoaWxkcmVuLGUsYSl9cmV0dXJuIEFycmF5LmlzQXJyYXkodCk/WHJlKHQsZSxhKToiIn1mdW5jdGlvbiBYcmUodCxlLGEpe2xldCBpPVtdLHI9LTE7Zm9yKDsrK3I8dC5sZW5ndGg7KWlbcl09WnJlKHRbcl0sZSxhKTtyZXR1cm4gaS5qb2luKCIiKX1mdW5jdGlvbiBHUHQodCl7cmV0dXJuISEodCYmdHlwZW9mIHQ9PSJvYmplY3QiKX12YXIgV1B0LEtyZT1iKCgpPT57V1B0PXt9fSk7dmFyIF85PWIoKCk9PntLcmUoKX0pO2Z1bmN0aW9uIFQ5KHQsZSl7bGV0IGE9ITE7cmV0dXJuIEg2KHQsZnVuY3Rpb24oaSl7aWYoInZhbHVlImluIGkmJi9ccj9cbnxcci8udGVzdChpLnZhbHVlKXx8aS50eXBlPT09ImJyZWFrIilyZXR1cm4gYT0hMCx2MH0pLCEhKCghdC5kZXB0aHx8dC5kZXB0aDwzKSYmeTAodCkmJihlLm9wdGlvbnMuc2V0ZXh0fHxhKSl9dmFyIHhUPWIoKCk9Pnt5VCgpO185KCl9KTtmdW5jdGlvbiBRcmUodCxlLGEsaSl7bGV0IHI9TWF0aC5tYXgoTWF0aC5taW4oNix0LmRlcHRofHwxKSwxKSxzPWEuY3JlYXRlVHJhY2tlcihpKTtpZihUOSh0LGEpKXtsZXQgaD1hLmVudGVyKCJoZWFkaW5nU2V0ZXh0IiksbD1hLmVudGVyKCJwaHJhc2luZyIpLGY9YS5jb250YWluZXJQaHJhc2luZyh0LHsuLi5zLmN1cnJlbnQoKSxiZWZvcmU6YApgLGFmdGVyOmAKYH0pO3JldHVybiBsKCksaCgpLGYrYApgKyhyPT09MT8iPSI6Ii0iKS5yZXBlYXQoZi5sZW5ndGgtKE1hdGgubWF4KGYubGFzdEluZGV4T2YoIlxyIiksZi5sYXN0SW5kZXhPZihgCmApKSsxKSl9bGV0IG49IiMiLnJlcGVhdChyKSxvPWEuZW50ZXIoImhlYWRpbmdBdHgiKSxkPWEuZW50ZXIoInBocmFzaW5nIik7cy5tb3ZlKG4rIiAiKTtsZXQgYz1hLmNvbnRhaW5lclBocmFzaW5nKHQse2JlZm9yZToiIyAiLGFmdGVyOmAKYCwuLi5zLmN1cnJlbnQoKX0pO3JldHVybi9eW1x0IF0vLnRlc3QoYykmJihjPUJhKGMuY2hhckNvZGVBdCgwKSkrYy5zbGljZSgxKSksYz1jP24rIiAiK2M6bixhLm9wdGlvbnMuY2xvc2VBdHgmJihjKz0iICIrbiksZCgpLG8oKSxjfXZhciBKcmU9YigoKT0+e0kzKCk7eFQoKX0pO2Z1bmN0aW9uIHdUKHQpe3JldHVybiB0LnZhbHVlfHwiIn1mdW5jdGlvbiBZUHQoKXtyZXR1cm4iPCJ9dmFyIGVzZT1iKCgpPT57d1QucGVlaz1ZUHR9KTtmdW5jdGlvbiBNVCh0LGUsYSxpKXtsZXQgcj1QMyhhKSxzPXI9PT0nIic/IlF1b3RlIjoiQXBvc3Ryb3BoZSIsbj1hLmVudGVyKCJpbWFnZSIpLG89YS5lbnRlcigibGFiZWwiKSxkPWEuY3JlYXRlVHJhY2tlcihpKSxjPWQubW92ZSgiIVsiKTtyZXR1cm4gYys9ZC5tb3ZlKGEuc2FmZSh0LmFsdCx7YmVmb3JlOmMsYWZ0ZXI6Il0iLC4uLmQuY3VycmVudCgpfSkpLGMrPWQubW92ZSgiXSgiKSxvKCksIXQudXJsJiZ0LnRpdGxlfHwvW1wwLSBcdTAwN0ZdLy50ZXN0KHQudXJsKT8obz1hLmVudGVyKCJkZXN0aW5hdGlvbkxpdGVyYWwiKSxjKz1kLm1vdmUoIjwiKSxjKz1kLm1vdmUoYS5zYWZlKHQudXJsLHtiZWZvcmU6YyxhZnRlcjoiPiIsLi4uZC5jdXJyZW50KCl9KSksYys9ZC5tb3ZlKCI+IikpOihvPWEuZW50ZXIoImRlc3RpbmF0aW9uUmF3IiksYys9ZC5tb3ZlKGEuc2FmZSh0LnVybCx7YmVmb3JlOmMsYWZ0ZXI6dC50aXRsZT8iICI6IikiLC4uLmQuY3VycmVudCgpfSkpKSxvKCksdC50aXRsZSYmKG89YS5lbnRlcihgdGl0bGUke3N9YCksYys9ZC5tb3ZlKCIgIityKSxjKz1kLm1vdmUoYS5zYWZlKHQudGl0bGUse2JlZm9yZTpjLGFmdGVyOnIsLi4uZC5jdXJyZW50KCl9KSksYys9ZC5tb3ZlKHIpLG8oKSksYys9ZC5tb3ZlKCIpIiksbigpLGN9ZnVuY3Rpb24gWlB0KCl7cmV0dXJuIiEifXZhciB0c2U9YigoKT0+e1M5KCk7TVQucGVlaz1aUHR9KTtmdW5jdGlvbiB6VCh0LGUsYSxpKXtsZXQgcj10LnJlZmVyZW5jZVR5cGUscz1hLmVudGVyKCJpbWFnZVJlZmVyZW5jZSIpLG49YS5lbnRlcigibGFiZWwiKSxvPWEuY3JlYXRlVHJhY2tlcihpKSxkPW8ubW92ZSgiIVsiKSxjPWEuc2FmZSh0LmFsdCx7YmVmb3JlOmQsYWZ0ZXI6Il0iLC4uLm8uY3VycmVudCgpfSk7ZCs9by5tb3ZlKGMrIl1bIiksbigpO2xldCBoPWEuc3RhY2s7YS5zdGFjaz1bXSxuPWEuZW50ZXIoInJlZmVyZW5jZSIpO2xldCBsPWEuc2FmZShhLmFzc29jaWF0aW9uSWQodCkse2JlZm9yZTpkLGFmdGVyOiJdIiwuLi5vLmN1cnJlbnQoKX0pO3JldHVybiBuKCksYS5zdGFjaz1oLHMoKSxyPT09ImZ1bGwifHwhY3x8YyE9PWw/ZCs9by5tb3ZlKGwrIl0iKTpyPT09InNob3J0Y3V0Ij9kPWQuc2xpY2UoMCwtMSk6ZCs9by5tb3ZlKCJdIiksZH1mdW5jdGlvbiBYUHQoKXtyZXR1cm4iISJ9dmFyIGFzZT1iKCgpPT57elQucGVlaz1YUHR9KTtmdW5jdGlvbiBrVCh0LGUsYSl7bGV0IGk9dC52YWx1ZXx8IiIscj0iYCIscz0tMTtmb3IoO25ldyBSZWdFeHAoIihefFteYF0pIityKyIoW15gXXwkKSIpLnRlc3QoaSk7KXIrPSJgIjtmb3IoL1teIFxyXG5dLy50ZXN0KGkpJiYoL15bIFxyXG5dLy50ZXN0KGkpJiYvWyBcclxuXSQvLnRlc3QoaSl8fC9eYHxgJC8udGVzdChpKSkmJihpPSIgIitpKyIgIik7KytzPGEudW5zYWZlLmxlbmd0aDspe2xldCBuPWEudW5zYWZlW3NdLG89YS5jb21waWxlUGF0dGVybihuKSxkO2lmKG4uYXRCcmVhaylmb3IoO2Q9by5leGVjKGkpOyl7bGV0IGM9ZC5pbmRleDtpLmNoYXJDb2RlQXQoYyk9PT0xMCYmaS5jaGFyQ29kZUF0KGMtMSk9PT0xMyYmYy0tLGk9aS5zbGljZSgwLGMpKyIgIitpLnNsaWNlKGQuaW5kZXgrMSl9fXJldHVybiByK2krcn1mdW5jdGlvbiBLUHQoKXtyZXR1cm4iYCJ9dmFyIGlzZT1iKCgpPT57a1QucGVlaz1LUHR9KTtmdW5jdGlvbiBTVCh0LGUpe2xldCBhPXkwKHQpO3JldHVybiEhKCFlLm9wdGlvbnMucmVzb3VyY2VMaW5rJiZ0LnVybCYmIXQudGl0bGUmJnQuY2hpbGRyZW4mJnQuY2hpbGRyZW4ubGVuZ3RoPT09MSYmdC5jaGlsZHJlblswXS50eXBlPT09InRleHQiJiYoYT09PXQudXJsfHwibWFpbHRvOiIrYT09PXQudXJsKSYmL15bYS16XVthLXorLi1dKzovaS50ZXN0KHQudXJsKSYmIS9bXDAtIDw+XHUwMDdGXS8udGVzdCh0LnVybCkpfXZhciByc2U9YigoKT0+e185KCl9KTtmdW5jdGlvbiBDVCh0LGUsYSxpKXtsZXQgcj1QMyhhKSxzPXI9PT0nIic/IlF1b3RlIjoiQXBvc3Ryb3BoZSIsbj1hLmNyZWF0ZVRyYWNrZXIoaSksbyxkO2lmKFNUKHQsYSkpe2xldCBoPWEuc3RhY2s7YS5zdGFjaz1bXSxvPWEuZW50ZXIoImF1dG9saW5rIik7bGV0IGw9bi5tb3ZlKCI8Iik7cmV0dXJuIGwrPW4ubW92ZShhLmNvbnRhaW5lclBocmFzaW5nKHQse2JlZm9yZTpsLGFmdGVyOiI+IiwuLi5uLmN1cnJlbnQoKX0pKSxsKz1uLm1vdmUoIj4iKSxvKCksYS5zdGFjaz1oLGx9bz1hLmVudGVyKCJsaW5rIiksZD1hLmVudGVyKCJsYWJlbCIpO2xldCBjPW4ubW92ZSgiWyIpO3JldHVybiBjKz1uLm1vdmUoYS5jb250YWluZXJQaHJhc2luZyh0LHtiZWZvcmU6YyxhZnRlcjoiXSgiLC4uLm4uY3VycmVudCgpfSkpLGMrPW4ubW92ZSgiXSgiKSxkKCksIXQudXJsJiZ0LnRpdGxlfHwvW1wwLSBcdTAwN0ZdLy50ZXN0KHQudXJsKT8oZD1hLmVudGVyKCJkZXN0aW5hdGlvbkxpdGVyYWwiKSxjKz1uLm1vdmUoIjwiKSxjKz1uLm1vdmUoYS5zYWZlKHQudXJsLHtiZWZvcmU6YyxhZnRlcjoiPiIsLi4ubi5jdXJyZW50KCl9KSksYys9bi5tb3ZlKCI+IikpOihkPWEuZW50ZXIoImRlc3RpbmF0aW9uUmF3IiksYys9bi5tb3ZlKGEuc2FmZSh0LnVybCx7YmVmb3JlOmMsYWZ0ZXI6dC50aXRsZT8iICI6IikiLC4uLm4uY3VycmVudCgpfSkpKSxkKCksdC50aXRsZSYmKGQ9YS5lbnRlcihgdGl0bGUke3N9YCksYys9bi5tb3ZlKCIgIityKSxjKz1uLm1vdmUoYS5zYWZlKHQudGl0bGUse2JlZm9yZTpjLGFmdGVyOnIsLi4ubi5jdXJyZW50KCl9KSksYys9bi5tb3ZlKHIpLGQoKSksYys9bi5tb3ZlKCIpIiksbygpLGN9ZnVuY3Rpb24gUVB0KHQsZSxhKXtyZXR1cm4gU1QodCxhKT8iPCI6IlsifXZhciBzc2U9YigoKT0+e1M5KCk7cnNlKCk7Q1QucGVlaz1RUHR9KTtmdW5jdGlvbiBfVCh0LGUsYSxpKXtsZXQgcj10LnJlZmVyZW5jZVR5cGUscz1hLmVudGVyKCJsaW5rUmVmZXJlbmNlIiksbj1hLmVudGVyKCJsYWJlbCIpLG89YS5jcmVhdGVUcmFja2VyKGkpLGQ9by5tb3ZlKCJbIiksYz1hLmNvbnRhaW5lclBocmFzaW5nKHQse2JlZm9yZTpkLGFmdGVyOiJdIiwuLi5vLmN1cnJlbnQoKX0pO2QrPW8ubW92ZShjKyJdWyIpLG4oKTtsZXQgaD1hLnN0YWNrO2Euc3RhY2s9W10sbj1hLmVudGVyKCJyZWZlcmVuY2UiKTtsZXQgbD1hLnNhZmUoYS5hc3NvY2lhdGlvbklkKHQpLHtiZWZvcmU6ZCxhZnRlcjoiXSIsLi4uby5jdXJyZW50KCl9KTtyZXR1cm4gbigpLGEuc3RhY2s9aCxzKCkscj09PSJmdWxsInx8IWN8fGMhPT1sP2QrPW8ubW92ZShsKyJdIik6cj09PSJzaG9ydGN1dCI/ZD1kLnNsaWNlKDAsLTEpOmQrPW8ubW92ZSgiXSIpLGR9ZnVuY3Rpb24gSlB0KCl7cmV0dXJuIlsifXZhciBuc2U9YigoKT0+e19ULnBlZWs9SlB0fSk7ZnVuY3Rpb24gRjModCl7bGV0IGU9dC5vcHRpb25zLmJ1bGxldHx8IioiO2lmKGUhPT0iKiImJmUhPT0iKyImJmUhPT0iLSIpdGhyb3cgbmV3IEVycm9yKCJDYW5ub3Qgc2VyaWFsaXplIGl0ZW1zIHdpdGggYCIrZSsiYCBmb3IgYG9wdGlvbnMuYnVsbGV0YCwgZXhwZWN0ZWQgYCpgLCBgK2AsIG9yIGAtYCIpO3JldHVybiBlfXZhciBMOT1iKCgpPT57fSk7ZnVuY3Rpb24gb3NlKHQpe2xldCBlPUYzKHQpLGE9dC5vcHRpb25zLmJ1bGxldE90aGVyO2lmKCFhKXJldHVybiBlPT09IioiPyItIjoiKiI7aWYoYSE9PSIqIiYmYSE9PSIrIiYmYSE9PSItIil0aHJvdyBuZXcgRXJyb3IoIkNhbm5vdCBzZXJpYWxpemUgaXRlbXMgd2l0aCBgIithKyJgIGZvciBgb3B0aW9ucy5idWxsZXRPdGhlcmAsIGV4cGVjdGVkIGAqYCwgYCtgLCBvciBgLWAiKTtpZihhPT09ZSl0aHJvdyBuZXcgRXJyb3IoIkV4cGVjdGVkIGBidWxsZXRgIChgIitlKyJgKSBhbmQgYGJ1bGxldE90aGVyYCAoYCIrYSsiYCkgdG8gYmUgZGlmZmVyZW50Iik7cmV0dXJuIGF9dmFyIGxzZT1iKCgpPT57TDkoKX0pO2Z1bmN0aW9uIGNzZSh0KXtsZXQgZT10Lm9wdGlvbnMuYnVsbGV0T3JkZXJlZHx8Ii4iO2lmKGUhPT0iLiImJmUhPT0iKSIpdGhyb3cgbmV3IEVycm9yKCJDYW5ub3Qgc2VyaWFsaXplIGl0ZW1zIHdpdGggYCIrZSsiYCBmb3IgYG9wdGlvbnMuYnVsbGV0T3JkZXJlZGAsIGV4cGVjdGVkIGAuYCBvciBgKWAiKTtyZXR1cm4gZX12YXIgZHNlPWIoKCk9Pnt9KTtmdW5jdGlvbiAkOSh0KXtsZXQgZT10Lm9wdGlvbnMucnVsZXx8IioiO2lmKGUhPT0iKiImJmUhPT0iLSImJmUhPT0iXyIpdGhyb3cgbmV3IEVycm9yKCJDYW5ub3Qgc2VyaWFsaXplIHJ1bGVzIHdpdGggYCIrZSsiYCBmb3IgYG9wdGlvbnMucnVsZWAsIGV4cGVjdGVkIGAqYCwgYC1gLCBvciBgX2AiKTtyZXR1cm4gZX12YXIgVFQ9YigoKT0+e30pO2Z1bmN0aW9uIGhzZSh0LGUsYSxpKXtsZXQgcj1hLmVudGVyKCJsaXN0Iikscz1hLmJ1bGxldEN1cnJlbnQsbj10Lm9yZGVyZWQ/Y3NlKGEpOkYzKGEpLG89dC5vcmRlcmVkP249PT0iLiI/IikiOiIuIjpvc2UoYSksZD1lJiZhLmJ1bGxldExhc3RVc2VkP249PT1hLmJ1bGxldExhc3RVc2VkOiExO2lmKCF0Lm9yZGVyZWQpe2xldCBoPXQuY2hpbGRyZW4/dC5jaGlsZHJlblswXTp2b2lkIDA7aWYoKG49PT0iKiJ8fG49PT0iLSIpJiZoJiYoIWguY2hpbGRyZW58fCFoLmNoaWxkcmVuWzBdKSYmYS5zdGFja1thLnN0YWNrLmxlbmd0aC0xXT09PSJsaXN0IiYmYS5zdGFja1thLnN0YWNrLmxlbmd0aC0yXT09PSJsaXN0SXRlbSImJmEuc3RhY2tbYS5zdGFjay5sZW5ndGgtM109PT0ibGlzdCImJmEuc3RhY2tbYS5zdGFjay5sZW5ndGgtNF09PT0ibGlzdEl0ZW0iJiZhLmluZGV4U3RhY2tbYS5pbmRleFN0YWNrLmxlbmd0aC0xXT09PTAmJmEuaW5kZXhTdGFja1thLmluZGV4U3RhY2subGVuZ3RoLTJdPT09MCYmYS5pbmRleFN0YWNrW2EuaW5kZXhTdGFjay5sZW5ndGgtM109PT0wJiYoZD0hMCksJDkoYSk9PT1uJiZoKXtsZXQgbD0tMTtmb3IoOysrbDx0LmNoaWxkcmVuLmxlbmd0aDspe2xldCBmPXQuY2hpbGRyZW5bbF07aWYoZiYmZi50eXBlPT09Imxpc3RJdGVtIiYmZi5jaGlsZHJlbiYmZi5jaGlsZHJlblswXSYmZi5jaGlsZHJlblswXS50eXBlPT09InRoZW1hdGljQnJlYWsiKXtkPSEwO2JyZWFrfX19fWQmJihuPW8pLGEuYnVsbGV0Q3VycmVudD1uO2xldCBjPWEuY29udGFpbmVyRmxvdyh0LGkpO3JldHVybiBhLmJ1bGxldExhc3RVc2VkPW4sYS5idWxsZXRDdXJyZW50PXMscigpLGN9dmFyIHBzZT1iKCgpPT57TDkoKTtsc2UoKTtkc2UoKTtUVCgpfSk7ZnVuY3Rpb24gdXNlKHQpe2xldCBlPXQub3B0aW9ucy5saXN0SXRlbUluZGVudHx8Im9uZSI7aWYoZSE9PSJ0YWIiJiZlIT09Im9uZSImJmUhPT0ibWl4ZWQiKXRocm93IG5ldyBFcnJvcigiQ2Fubm90IHNlcmlhbGl6ZSBpdGVtcyB3aXRoIGAiK2UrImAgZm9yIGBvcHRpb25zLmxpc3RJdGVtSW5kZW50YCwgZXhwZWN0ZWQgYHRhYmAsIGBvbmVgLCBvciBgbWl4ZWRgIik7cmV0dXJuIGV9dmFyIGZzZT1iKCgpPT57fSk7ZnVuY3Rpb24gbXNlKHQsZSxhLGkpe2xldCByPXVzZShhKSxzPWEuYnVsbGV0Q3VycmVudHx8RjMoYSk7ZSYmZS50eXBlPT09Imxpc3QiJiZlLm9yZGVyZWQmJihzPSh0eXBlb2YgZS5zdGFydD09Im51bWJlciImJmUuc3RhcnQ+LTE/ZS5zdGFydDoxKSsoYS5vcHRpb25zLmluY3JlbWVudExpc3RNYXJrZXI9PT0hMT8wOmUuY2hpbGRyZW4uaW5kZXhPZih0KSkrcyk7bGV0IG49cy5sZW5ndGgrMTsocj09PSJ0YWIifHxyPT09Im1peGVkIiYmKGUmJmUudHlwZT09PSJsaXN0IiYmZS5zcHJlYWR8fHQuc3ByZWFkKSkmJihuPU1hdGguY2VpbChuLzQpKjQpO2xldCBvPWEuY3JlYXRlVHJhY2tlcihpKTtvLm1vdmUocysiICIucmVwZWF0KG4tcy5sZW5ndGgpKSxvLnNoaWZ0KG4pO2xldCBkPWEuZW50ZXIoImxpc3RJdGVtIiksYz1hLmluZGVudExpbmVzKGEuY29udGFpbmVyRmxvdyh0LG8uY3VycmVudCgpKSxoKTtyZXR1cm4gZCgpLGM7ZnVuY3Rpb24gaChsLGYsZyl7cmV0dXJuIGY/KGc/IiI6IiAiLnJlcGVhdChuKSkrbDooZz9zOnMrIiAiLnJlcGVhdChuLXMubGVuZ3RoKSkrbH19dmFyIGdzZT1iKCgpPT57TDkoKTtmc2UoKX0pO2Z1bmN0aW9uIGJzZSh0LGUsYSxpKXtsZXQgcj1hLmVudGVyKCJwYXJhZ3JhcGgiKSxzPWEuZW50ZXIoInBocmFzaW5nIiksbj1hLmNvbnRhaW5lclBocmFzaW5nKHQsaSk7cmV0dXJuIHMoKSxyKCksbn12YXIgdnNlPWIoKCk9Pnt9KTt2YXIgTFQseXNlPWIoKCk9Pnt5OSgpO0xUPXlzKFsiYnJlYWsiLCJkZWxldGUiLCJlbXBoYXNpcyIsImZvb3Rub3RlIiwiZm9vdG5vdGVSZWZlcmVuY2UiLCJpbWFnZSIsImltYWdlUmVmZXJlbmNlIiwiaW5saW5lQ29kZSIsImlubGluZU1hdGgiLCJsaW5rIiwibGlua1JlZmVyZW5jZSIsIm1keEpzeFRleHRFbGVtZW50IiwibWR4VGV4dEV4cHJlc3Npb24iLCJzdHJvbmciLCJ0ZXh0IiwidGV4dERpcmVjdGl2ZSJdKX0pO3ZhciB4c2U9YigoKT0+e3lzZSgpfSk7ZnVuY3Rpb24gd3NlKHQsZSxhLGkpe3JldHVybih0LmNoaWxkcmVuLnNvbWUoZnVuY3Rpb24obil7cmV0dXJuIExUKG4pfSk/YS5jb250YWluZXJQaHJhc2luZzphLmNvbnRhaW5lckZsb3cpLmNhbGwoYSx0LGkpfXZhciBNc2U9YigoKT0+e3hzZSgpfSk7ZnVuY3Rpb24genNlKHQpe2xldCBlPXQub3B0aW9ucy5zdHJvbmd8fCIqIjtpZihlIT09IioiJiZlIT09Il8iKXRocm93IG5ldyBFcnJvcigiQ2Fubm90IHNlcmlhbGl6ZSBzdHJvbmcgd2l0aCBgIitlKyJgIGZvciBgb3B0aW9ucy5zdHJvbmdgLCBleHBlY3RlZCBgKmAsIG9yIGBfYCIpO3JldHVybiBlfXZhciBrc2U9YigoKT0+e30pO2Z1bmN0aW9uICRUKHQsZSxhLGkpe2xldCByPXpzZShhKSxzPWEuZW50ZXIoInN0cm9uZyIpLG49YS5jcmVhdGVUcmFja2VyKGkpLG89bi5tb3ZlKHIrciksZD1uLm1vdmUoYS5jb250YWluZXJQaHJhc2luZyh0LHthZnRlcjpyLGJlZm9yZTpvLC4uLm4uY3VycmVudCgpfSkpLGM9ZC5jaGFyQ29kZUF0KDApLGg9TjMoaS5iZWZvcmUuY2hhckNvZGVBdChpLmJlZm9yZS5sZW5ndGgtMSksYyxyKTtoLmluc2lkZSYmKGQ9QmEoYykrZC5zbGljZSgxKSk7bGV0IGw9ZC5jaGFyQ29kZUF0KGQubGVuZ3RoLTEpLGY9TjMoaS5hZnRlci5jaGFyQ29kZUF0KDApLGwscik7Zi5pbnNpZGUmJihkPWQuc2xpY2UoMCwtMSkrQmEobCkpO2xldCBnPW4ubW92ZShyK3IpO3JldHVybiBzKCksYS5hdHRlbnRpb25FbmNvZGVTdXJyb3VuZGluZ0luZm89e2FmdGVyOmYub3V0c2lkZSxiZWZvcmU6aC5vdXRzaWRlfSxvK2QrZ31mdW5jdGlvbiBlSXQodCxlLGEpe3JldHVybiBhLm9wdGlvbnMuc3Ryb25nfHwiKiJ9dmFyIFNzZT1iKCgpPT57a3NlKCk7STMoKTtiVCgpOyRULnBlZWs9ZUl0fSk7ZnVuY3Rpb24gQ3NlKHQsZSxhLGkpe3JldHVybiBhLnNhZmUodC52YWx1ZSxpKX12YXIgX3NlPWIoKCk9Pnt9KTtmdW5jdGlvbiBUc2UodCl7bGV0IGU9dC5vcHRpb25zLnJ1bGVSZXBldGl0aW9ufHwzO2lmKGU8Myl0aHJvdyBuZXcgRXJyb3IoIkNhbm5vdCBzZXJpYWxpemUgcnVsZXMgd2l0aCByZXBldGl0aW9uIGAiK2UrImAgZm9yIGBvcHRpb25zLnJ1bGVSZXBldGl0aW9uYCwgZXhwZWN0ZWQgYDNgIG9yIG1vcmUiKTtyZXR1cm4gZX12YXIgTHNlPWIoKCk9Pnt9KTtmdW5jdGlvbiAkc2UodCxlLGEpe2xldCBpPSgkOShhKSsoYS5vcHRpb25zLnJ1bGVTcGFjZXM/IiAiOiIiKSkucmVwZWF0KFRzZShhKSk7cmV0dXJuIGEub3B0aW9ucy5ydWxlU3BhY2VzP2kuc2xpY2UoMCwtMSk6aX12YXIgQXNlPWIoKCk9PntMc2UoKTtUVCgpfSk7dmFyIHgwLEFUPWIoKCk9PntQcmUoKTtOcmUoKTtxcmUoKTtqcmUoKTtHcmUoKTtKcmUoKTtlc2UoKTt0c2UoKTthc2UoKTtpc2UoKTtzc2UoKTtuc2UoKTtwc2UoKTtnc2UoKTt2c2UoKTtNc2UoKTtTc2UoKTtfc2UoKTtBc2UoKTt4MD17YmxvY2txdW90ZTpFcmUsYnJlYWs6bVQsY29kZTpIcmUsZGVmaW5pdGlvbjpWcmUsZW1waGFzaXM6dlQsaGFyZEJyZWFrOm1ULGhlYWRpbmc6UXJlLGh0bWw6d1QsaW1hZ2U6TVQsaW1hZ2VSZWZlcmVuY2U6elQsaW5saW5lQ29kZTprVCxsaW5rOkNULGxpbmtSZWZlcmVuY2U6X1QsbGlzdDpoc2UsbGlzdEl0ZW06bXNlLHBhcmFncmFwaDpic2Uscm9vdDp3c2Usc3Ryb25nOiRULHRleHQ6Q3NlLHRoZW1hdGljQnJlYWs6JHNlfX0pO2Z1bmN0aW9uIHRJdCh0LGUsYSxpKXtpZihlLnR5cGU9PT0iY29kZSImJkI2KGUsaSkmJih0LnR5cGU9PT0ibGlzdCJ8fHQudHlwZT09PWUudHlwZSYmQjYodCxpKSkpcmV0dXJuITE7aWYoInNwcmVhZCJpbiBhJiZ0eXBlb2YgYS5zcHJlYWQ9PSJib29sZWFuIilyZXR1cm4gdC50eXBlPT09InBhcmFncmFwaCImJih0LnR5cGU9PT1lLnR5cGV8fGUudHlwZT09PSJkZWZpbml0aW9uInx8ZS50eXBlPT09ImhlYWRpbmciJiZUOShlLGkpKT92b2lkIDA6YS5zcHJlYWQ/MTowfXZhciBEc2UsRXNlPWIoKCk9PntnVCgpO3hUKCk7RHNlPVt0SXRdfSk7dmFyIHcwLFBzZSxJc2U9YigoKT0+e3cwPVsiYXV0b2xpbmsiLCJkZXN0aW5hdGlvbkxpdGVyYWwiLCJkZXN0aW5hdGlvblJhdyIsInJlZmVyZW5jZSIsInRpdGxlUXVvdGUiLCJ0aXRsZUFwb3N0cm9waGUiXSxQc2U9W3tjaGFyYWN0ZXI6IgkiLGFmdGVyOiJbXFxyXFxuXSIsaW5Db25zdHJ1Y3Q6InBocmFzaW5nIn0se2NoYXJhY3RlcjoiCSIsYmVmb3JlOiJbXFxyXFxuXSIsaW5Db25zdHJ1Y3Q6InBocmFzaW5nIn0se2NoYXJhY3RlcjoiCSIsaW5Db25zdHJ1Y3Q6WyJjb2RlRmVuY2VkTGFuZ0dyYXZlQWNjZW50IiwiY29kZUZlbmNlZExhbmdUaWxkZSJdfSx7Y2hhcmFjdGVyOiJcciIsaW5Db25zdHJ1Y3Q6WyJjb2RlRmVuY2VkTGFuZ0dyYXZlQWNjZW50IiwiY29kZUZlbmNlZExhbmdUaWxkZSIsImNvZGVGZW5jZWRNZXRhR3JhdmVBY2NlbnQiLCJjb2RlRmVuY2VkTWV0YVRpbGRlIiwiZGVzdGluYXRpb25MaXRlcmFsIiwiaGVhZGluZ0F0eCJdfSx7Y2hhcmFjdGVyOmAKYCxpbkNvbnN0cnVjdDpbImNvZGVGZW5jZWRMYW5nR3JhdmVBY2NlbnQiLCJjb2RlRmVuY2VkTGFuZ1RpbGRlIiwiY29kZUZlbmNlZE1ldGFHcmF2ZUFjY2VudCIsImNvZGVGZW5jZWRNZXRhVGlsZGUiLCJkZXN0aW5hdGlvbkxpdGVyYWwiLCJoZWFkaW5nQXR4Il19LHtjaGFyYWN0ZXI6IiAiLGFmdGVyOiJbXFxyXFxuXSIsaW5Db25zdHJ1Y3Q6InBocmFzaW5nIn0se2NoYXJhY3RlcjoiICIsYmVmb3JlOiJbXFxyXFxuXSIsaW5Db25zdHJ1Y3Q6InBocmFzaW5nIn0se2NoYXJhY3RlcjoiICIsaW5Db25zdHJ1Y3Q6WyJjb2RlRmVuY2VkTGFuZ0dyYXZlQWNjZW50IiwiY29kZUZlbmNlZExhbmdUaWxkZSJdfSx7Y2hhcmFjdGVyOiIhIixhZnRlcjoiXFxbIixpbkNvbnN0cnVjdDoicGhyYXNpbmciLG5vdEluQ29uc3RydWN0OncwfSx7Y2hhcmFjdGVyOiciJyxpbkNvbnN0cnVjdDoidGl0bGVRdW90ZSJ9LHthdEJyZWFrOiEwLGNoYXJhY3RlcjoiIyJ9LHtjaGFyYWN0ZXI6IiMiLGluQ29uc3RydWN0OiJoZWFkaW5nQXR4IixhZnRlcjpgKD86W1xyCl18JClgfSx7Y2hhcmFjdGVyOiImIixhZnRlcjoiWyNBLVphLXpdIixpbkNvbnN0cnVjdDoicGhyYXNpbmcifSx7Y2hhcmFjdGVyOiInIixpbkNvbnN0cnVjdDoidGl0bGVBcG9zdHJvcGhlIn0se2NoYXJhY3RlcjoiKCIsaW5Db25zdHJ1Y3Q6ImRlc3RpbmF0aW9uUmF3In0se2JlZm9yZToiXFxdIixjaGFyYWN0ZXI6IigiLGluQ29uc3RydWN0OiJwaHJhc2luZyIsbm90SW5Db25zdHJ1Y3Q6dzB9LHthdEJyZWFrOiEwLGJlZm9yZToiXFxkKyIsY2hhcmFjdGVyOiIpIn0se2NoYXJhY3RlcjoiKSIsaW5Db25zdHJ1Y3Q6ImRlc3RpbmF0aW9uUmF3In0se2F0QnJlYWs6ITAsY2hhcmFjdGVyOiIqIixhZnRlcjpgKD86WyAJXHIKKl0pYH0se2NoYXJhY3RlcjoiKiIsaW5Db25zdHJ1Y3Q6InBocmFzaW5nIixub3RJbkNvbnN0cnVjdDp3MH0se2F0QnJlYWs6ITAsY2hhcmFjdGVyOiIrIixhZnRlcjpgKD86WyAJXHIKXSlgfSx7YXRCcmVhazohMCxjaGFyYWN0ZXI6Ii0iLGFmdGVyOmAoPzpbIAlccgotXSlgfSx7YXRCcmVhazohMCxiZWZvcmU6IlxcZCsiLGNoYXJhY3RlcjoiLiIsYWZ0ZXI6YCg/OlsgCVxyCl18JClgfSx7YXRCcmVhazohMCxjaGFyYWN0ZXI6IjwiLGFmdGVyOiJbIS8/QS1aYS16XSJ9LHtjaGFyYWN0ZXI6IjwiLGFmdGVyOiJbIS8/QS1aYS16XSIsaW5Db25zdHJ1Y3Q6InBocmFzaW5nIixub3RJbkNvbnN0cnVjdDp3MH0se2NoYXJhY3RlcjoiPCIsaW5Db25zdHJ1Y3Q6ImRlc3RpbmF0aW9uTGl0ZXJhbCJ9LHthdEJyZWFrOiEwLGNoYXJhY3RlcjoiPSJ9LHthdEJyZWFrOiEwLGNoYXJhY3RlcjoiPiJ9LHtjaGFyYWN0ZXI6Ij4iLGluQ29uc3RydWN0OiJkZXN0aW5hdGlvbkxpdGVyYWwifSx7YXRCcmVhazohMCxjaGFyYWN0ZXI6IlsifSx7Y2hhcmFjdGVyOiJbIixpbkNvbnN0cnVjdDoicGhyYXNpbmciLG5vdEluQ29uc3RydWN0OncwfSx7Y2hhcmFjdGVyOiJbIixpbkNvbnN0cnVjdDpbImxhYmVsIiwicmVmZXJlbmNlIl19LHtjaGFyYWN0ZXI6IlxcIixhZnRlcjoiW1xcclxcbl0iLGluQ29uc3RydWN0OiJwaHJhc2luZyJ9LHtjaGFyYWN0ZXI6Il0iLGluQ29uc3RydWN0OlsibGFiZWwiLCJyZWZlcmVuY2UiXX0se2F0QnJlYWs6ITAsY2hhcmFjdGVyOiJfIn0se2NoYXJhY3RlcjoiXyIsaW5Db25zdHJ1Y3Q6InBocmFzaW5nIixub3RJbkNvbnN0cnVjdDp3MH0se2F0QnJlYWs6ITAsY2hhcmFjdGVyOiJgIn0se2NoYXJhY3RlcjoiYCIsaW5Db25zdHJ1Y3Q6WyJjb2RlRmVuY2VkTGFuZ0dyYXZlQWNjZW50IiwiY29kZUZlbmNlZE1ldGFHcmF2ZUFjY2VudCJdfSx7Y2hhcmFjdGVyOiJgIixpbkNvbnN0cnVjdDoicGhyYXNpbmciLG5vdEluQ29uc3RydWN0OncwfSx7YXRCcmVhazohMCxjaGFyYWN0ZXI6In4ifV19KTtmdW5jdGlvbiBCbih0KXtsZXQgZT0iJiIrdCsiOyI7TnNlLmlubmVySFRNTD1lO2xldCBhPU5zZS50ZXh0Q29udGVudDtyZXR1cm4gYS5jaGFyQ29kZUF0KGEubGVuZ3RoLTEpPT09NTkmJnQhPT0ic2VtaSJ8fGE9PT1lPyExOmF9dmFyIE5zZSxxNj1iKCgpPT57TnNlPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImkiKX0pO2Z1bmN0aW9uIE8zKHQsZSl7bGV0IGE9TnVtYmVyLnBhcnNlSW50KHQsZSk7cmV0dXJuIGE8OXx8YT09PTExfHxhPjEzJiZhPDMyfHxhPjEyNiYmYTwxNjB8fGE+NTUyOTUmJmE8NTczNDR8fGE+NjQ5NzUmJmE8NjUwMDh8fChhJjY1NTM1KT09PTY1NTM1fHwoYSY2NTUzNSk9PT02NTUzNHx8YT4xMTE0MTExPyJcdUZGRkQiOlN0cmluZy5mcm9tQ29kZVBvaW50KGEpfXZhciBBOT1iKCgpPT57fSk7ZnVuY3Rpb24gRDkodCl7cmV0dXJuIHQucmVwbGFjZShhSXQsaUl0KX1mdW5jdGlvbiBpSXQodCxlLGEpe2lmKGUpcmV0dXJuIGU7aWYoYS5jaGFyQ29kZUF0KDApPT09MzUpe2xldCByPWEuY2hhckNvZGVBdCgxKSxzPXI9PT0xMjB8fHI9PT04ODtyZXR1cm4gTzMoYS5zbGljZShzPzI6MSkscz8xNjoxMCl9cmV0dXJuIEJuKGEpfHx0fXZhciBhSXQsRFQ9YigoKT0+e3E2KCk7QTkoKTthSXQ9L1xcKFshLS86LUBbLWB7LX5dKXwmKCMoPzpcZHsxLDd9fHhbXGRhLWZdezEsNn0pfFtcZGEtel17MSwzMX0pOy9naX0pO2Z1bmN0aW9uIEZzZSh0KXtyZXR1cm4gdC5sYWJlbHx8IXQuaWRlbnRpZmllcj90LmxhYmVsfHwiIjpEOSh0LmlkZW50aWZpZXIpfXZhciBPc2U9YigoKT0+e0RUKCl9KTtmdW5jdGlvbiBSc2UodCl7aWYoIXQuX2NvbXBpbGVkKXtsZXQgZT0odC5hdEJyZWFrPyJbXFxyXFxuXVtcXHQgXSoiOiIiKSsodC5iZWZvcmU/Iig/OiIrdC5iZWZvcmUrIikiOiIiKTt0Ll9jb21waWxlZD1uZXcgUmVnRXhwKChlPyIoIitlKyIpIjoiIikrKC9bfFxce30oKVtcXV4kKyo/Li1dLy50ZXN0KHQuY2hhcmFjdGVyKT8iXFwiOiIiKSt0LmNoYXJhY3RlcisodC5hZnRlcj8iKD86Iit0LmFmdGVyKyIpIjoiIiksImciKX1yZXR1cm4gdC5fY29tcGlsZWR9dmFyIEJzZT1iKCgpPT57fSk7ZnVuY3Rpb24gSHNlKHQsZSxhKXtsZXQgaT1lLmluZGV4U3RhY2sscj10LmNoaWxkcmVufHxbXSxzPVtdLG49LTEsbz1hLmJlZm9yZSxkO2kucHVzaCgtMSk7bGV0IGM9ZS5jcmVhdGVUcmFja2VyKGEpO2Zvcig7KytuPHIubGVuZ3RoOyl7bGV0IGg9cltuXSxsO2lmKGlbaS5sZW5ndGgtMV09bixuKzE8ci5sZW5ndGgpe2xldCB5PWUuaGFuZGxlLmhhbmRsZXJzW3JbbisxXS50eXBlXTt5JiZ5LnBlZWsmJih5PXkucGVlayksbD15P3kocltuKzFdLHQsZSx7YmVmb3JlOiIiLGFmdGVyOiIiLC4uLmMuY3VycmVudCgpfSkuY2hhckF0KDApOiIifWVsc2UgbD1hLmFmdGVyO3MubGVuZ3RoPjAmJihvPT09IlxyInx8bz09PWAKYCkmJmgudHlwZT09PSJodG1sIiYmKHNbcy5sZW5ndGgtMV09c1tzLmxlbmd0aC0xXS5yZXBsYWNlKC8oXHI/XG58XHIpJC8sIiAiKSxvPSIgIixjPWUuY3JlYXRlVHJhY2tlcihhKSxjLm1vdmUocy5qb2luKCIiKSkpO2xldCBmPWUuaGFuZGxlKGgsdCxlLHsuLi5jLmN1cnJlbnQoKSxhZnRlcjpsLGJlZm9yZTpvfSk7ZCYmZD09PWYuc2xpY2UoMCwxKSYmKGY9QmEoZC5jaGFyQ29kZUF0KDApKStmLnNsaWNlKDEpKTtsZXQgZz1lLmF0dGVudGlvbkVuY29kZVN1cnJvdW5kaW5nSW5mbztlLmF0dGVudGlvbkVuY29kZVN1cnJvdW5kaW5nSW5mbz12b2lkIDAsZD12b2lkIDAsZyYmKHMubGVuZ3RoPjAmJmcuYmVmb3JlJiZvPT09c1tzLmxlbmd0aC0xXS5zbGljZSgtMSkmJihzW3MubGVuZ3RoLTFdPXNbcy5sZW5ndGgtMV0uc2xpY2UoMCwtMSkrQmEoby5jaGFyQ29kZUF0KDApKSksZy5hZnRlciYmKGQ9bCkpLGMubW92ZShmKSxzLnB1c2goZiksbz1mLnNsaWNlKC0xKX1yZXR1cm4gaS5wb3AoKSxzLmpvaW4oIiIpfXZhciBxc2U9YigoKT0+e0kzKCl9KTtmdW5jdGlvbiBWc2UodCxlLGEpe2xldCBpPWUuaW5kZXhTdGFjayxyPXQuY2hpbGRyZW58fFtdLHM9ZS5jcmVhdGVUcmFja2VyKGEpLG49W10sbz0tMTtmb3IoaS5wdXNoKC0xKTsrK288ci5sZW5ndGg7KXtsZXQgZD1yW29dO2lbaS5sZW5ndGgtMV09byxuLnB1c2gocy5tb3ZlKGUuaGFuZGxlKGQsdCxlLHtiZWZvcmU6YApgLGFmdGVyOmAKYCwuLi5zLmN1cnJlbnQoKX0pKSksZC50eXBlIT09Imxpc3QiJiYoZS5idWxsZXRMYXN0VXNlZD12b2lkIDApLG88ci5sZW5ndGgtMSYmbi5wdXNoKHMubW92ZShySXQoZCxyW28rMV0sdCxlKSkpfXJldHVybiBpLnBvcCgpLG4uam9pbigiIil9ZnVuY3Rpb24gckl0KHQsZSxhLGkpe2xldCByPWkuam9pbi5sZW5ndGg7Zm9yKDtyLS07KXtsZXQgcz1pLmpvaW5bcl0odCxlLGEsaSk7aWYocz09PSEwfHxzPT09MSlicmVhaztpZih0eXBlb2Ygcz09Im51bWJlciIpcmV0dXJuYApgLnJlcGVhdCgxK3MpO2lmKHM9PT0hMSlyZXR1cm5gCgo8IS0tLS0+CgpgfXJldHVybmAKCmB9dmFyIGpzZT1iKCgpPT57fSk7ZnVuY3Rpb24gVXNlKHQsZSl7bGV0IGE9W10saT0wLHI9MCxzO2Zvcig7cz1zSXQuZXhlYyh0KTspbih0LnNsaWNlKGkscy5pbmRleCkpLGEucHVzaChzWzBdKSxpPXMuaW5kZXgrc1swXS5sZW5ndGgscisrO3JldHVybiBuKHQuc2xpY2UoaSkpLGEuam9pbigiIik7ZnVuY3Rpb24gbihvKXthLnB1c2goZShvLHIsIW8pKX19dmFyIHNJdCxXc2U9YigoKT0+e3NJdD0vXHI/XG58XHIvZ30pO2Z1bmN0aW9uIFlzZSh0LGUsYSl7bGV0IGk9KGEuYmVmb3JlfHwiIikrKGV8fCIiKSsoYS5hZnRlcnx8IiIpLHI9W10scz1bXSxuPXt9LG89LTE7Zm9yKDsrK288dC51bnNhZmUubGVuZ3RoOyl7bGV0IGg9dC51bnNhZmVbb107aWYoIWs5KHQuc3RhY2ssaCkpY29udGludWU7bGV0IGw9dC5jb21waWxlUGF0dGVybihoKSxmO2Zvcig7Zj1sLmV4ZWMoaSk7KXtsZXQgZz0iYmVmb3JlImluIGh8fCEhaC5hdEJyZWFrLHk9ImFmdGVyImluIGgsdj1mLmluZGV4KyhnP2ZbMV0ubGVuZ3RoOjApO3IuaW5jbHVkZXModik/KG5bdl0uYmVmb3JlJiYhZyYmKG5bdl0uYmVmb3JlPSExKSxuW3ZdLmFmdGVyJiYheSYmKG5bdl0uYWZ0ZXI9ITEpKTooci5wdXNoKHYpLG5bdl09e2JlZm9yZTpnLGFmdGVyOnl9KX19ci5zb3J0KG5JdCk7bGV0IGQ9YS5iZWZvcmU/YS5iZWZvcmUubGVuZ3RoOjAsYz1pLmxlbmd0aC0oYS5hZnRlcj9hLmFmdGVyLmxlbmd0aDowKTtmb3Iobz0tMTsrK288ci5sZW5ndGg7KXtsZXQgaD1yW29dO2g8ZHx8aD49Y3x8aCsxPGMmJnJbbysxXT09PWgrMSYmbltoXS5hZnRlciYmIW5baCsxXS5iZWZvcmUmJiFuW2grMV0uYWZ0ZXJ8fHJbby0xXT09PWgtMSYmbltoXS5iZWZvcmUmJiFuW2gtMV0uYmVmb3JlJiYhbltoLTFdLmFmdGVyfHwoZCE9PWgmJnMucHVzaChHc2UoaS5zbGljZShkLGgpLCJcXCIpKSxkPWgsL1shLS86LUBbLWB7LX5dLy50ZXN0KGkuY2hhckF0KGgpKSYmKCFhLmVuY29kZXx8IWEuZW5jb2RlLmluY2x1ZGVzKGkuY2hhckF0KGgpKSk/cy5wdXNoKCJcXCIpOihzLnB1c2goQmEoaS5jaGFyQ29kZUF0KGgpKSksZCsrKSl9cmV0dXJuIHMucHVzaChHc2UoaS5zbGljZShkLGMpLGEuYWZ0ZXIpKSxzLmpvaW4oIiIpfWZ1bmN0aW9uIG5JdCh0LGUpe3JldHVybiB0LWV9ZnVuY3Rpb24gR3NlKHQsZSl7bGV0IGE9L1xcKD89WyEtLzotQFstYHstfl0pL2csaT1bXSxyPVtdLHM9dCtlLG49LTEsbz0wLGQ7Zm9yKDtkPWEuZXhlYyhzKTspaS5wdXNoKGQuaW5kZXgpO2Zvcig7KytuPGkubGVuZ3RoOylvIT09aVtuXSYmci5wdXNoKHQuc2xpY2UobyxpW25dKSksci5wdXNoKCJcXCIpLG89aVtuXTtyZXR1cm4gci5wdXNoKHQuc2xpY2UobykpLHIuam9pbigiIil9dmFyIFpzZT1iKCgpPT57STMoKTtmVCgpfSk7ZnVuY3Rpb24gWHNlKHQpe2xldCBlPXR8fHt9LGE9ZS5ub3d8fHt9LGk9ZS5saW5lU2hpZnR8fDAscj1hLmxpbmV8fDEscz1hLmNvbHVtbnx8MTtyZXR1cm57bW92ZTpkLGN1cnJlbnQ6bixzaGlmdDpvfTtmdW5jdGlvbiBuKCl7cmV0dXJue25vdzp7bGluZTpyLGNvbHVtbjpzfSxsaW5lU2hpZnQ6aX19ZnVuY3Rpb24gbyhjKXtpKz1jfWZ1bmN0aW9uIGQoYyl7bGV0IGg9Y3x8IiIsbD1oLnNwbGl0KC9ccj9cbnxcci9nKSxmPWxbbC5sZW5ndGgtMV07cmV0dXJuIHIrPWwubGVuZ3RoLTEscz1sLmxlbmd0aD09PTE/cytmLmxlbmd0aDoxK2YubGVuZ3RoK2ksaH19dmFyIEtzZT1iKCgpPT57fSk7ZnVuY3Rpb24gRVQodCxlKXtsZXQgYT1lfHx7fSxpPXthc3NvY2lhdGlvbklkOkZzZSxjb250YWluZXJQaHJhc2luZzpkSXQsY29udGFpbmVyRmxvdzpoSXQsY3JlYXRlVHJhY2tlcjpYc2UsY29tcGlsZVBhdHRlcm46UnNlLGVudGVyOnMsaGFuZGxlcnM6ey4uLngwfSxoYW5kbGU6dm9pZCAwLGluZGVudExpbmVzOlVzZSxpbmRleFN0YWNrOltdLGpvaW46Wy4uLkRzZV0sb3B0aW9uczp7fSxzYWZlOnBJdCxzdGFjazpbXSx1bnNhZmU6Wy4uLlBzZV19O3VUKGksYSksaS5vcHRpb25zLnRpZ2h0RGVmaW5pdGlvbnMmJmkuam9pbi5wdXNoKGNJdCksaS5oYW5kbGU9ejkoInR5cGUiLHtpbnZhbGlkOm9JdCx1bmtub3duOmxJdCxoYW5kbGVyczppLmhhbmRsZXJzfSk7bGV0IHI9aS5oYW5kbGUodCx2b2lkIDAsaSx7YmVmb3JlOmAKYCxhZnRlcjpgCmAsbm93OntsaW5lOjEsY29sdW1uOjF9LGxpbmVTaGlmdDowfSk7cmV0dXJuIHImJnIuY2hhckNvZGVBdChyLmxlbmd0aC0xKSE9PTEwJiZyLmNoYXJDb2RlQXQoci5sZW5ndGgtMSkhPT0xMyYmKHIrPWAKYCkscjtmdW5jdGlvbiBzKG4pe3JldHVybiBpLnN0YWNrLnB1c2gobiksbztmdW5jdGlvbiBvKCl7aS5zdGFjay5wb3AoKX19fWZ1bmN0aW9uIG9JdCh0KXt0aHJvdyBuZXcgRXJyb3IoIkNhbm5vdCBoYW5kbGUgdmFsdWUgYCIrdCsiYCwgZXhwZWN0ZWQgbm9kZSIpfWZ1bmN0aW9uIGxJdCh0KXtsZXQgZT10O3Rocm93IG5ldyBFcnJvcigiQ2Fubm90IGhhbmRsZSB1bmtub3duIG5vZGUgYCIrZS50eXBlKyJgIil9ZnVuY3Rpb24gY0l0KHQsZSl7aWYodC50eXBlPT09ImRlZmluaXRpb24iJiZ0LnR5cGU9PT1lLnR5cGUpcmV0dXJuIDB9ZnVuY3Rpb24gZEl0KHQsZSl7cmV0dXJuIEhzZSh0LHRoaXMsZSl9ZnVuY3Rpb24gaEl0KHQsZSl7cmV0dXJuIFZzZSh0LHRoaXMsZSl9ZnVuY3Rpb24gcEl0KHQsZSl7cmV0dXJuIFlzZSh0aGlzLHQsZSl9dmFyIFFzZT1iKCgpPT57cFQoKTtEcmUoKTtBVCgpO0VzZSgpO0lzZSgpO09zZSgpO0JzZSgpO3FzZSgpO2pzZSgpO1dzZSgpO1pzZSgpO0tzZSgpfSk7dmFyIEU5PWIoKCk9PntRc2UoKTtBVCgpfSk7ZnVuY3Rpb24gSVQoKXtyZXR1cm57ZW50ZXI6e3RhYmxlOnVJdCx0YWJsZURhdGE6SnNlLHRhYmxlSGVhZGVyOkpzZSx0YWJsZVJvdzptSXR9LGV4aXQ6e2NvZGVUZXh0OmdJdCx0YWJsZTpmSXQsdGFibGVEYXRhOlBULHRhYmxlSGVhZGVyOlBULHRhYmxlUm93OlBUfX19ZnVuY3Rpb24gdUl0KHQpe2xldCBlPXQuX2FsaWduO3RoaXMuZW50ZXIoe3R5cGU6InRhYmxlIixhbGlnbjplLm1hcChmdW5jdGlvbihhKXtyZXR1cm4gYT09PSJub25lIj9udWxsOmF9KSxjaGlsZHJlbjpbXX0sdCksdGhpcy5kYXRhLmluVGFibGU9ITB9ZnVuY3Rpb24gZkl0KHQpe3RoaXMuZXhpdCh0KSx0aGlzLmRhdGEuaW5UYWJsZT12b2lkIDB9ZnVuY3Rpb24gbUl0KHQpe3RoaXMuZW50ZXIoe3R5cGU6InRhYmxlUm93IixjaGlsZHJlbjpbXX0sdCl9ZnVuY3Rpb24gUFQodCl7dGhpcy5leGl0KHQpfWZ1bmN0aW9uIEpzZSh0KXt0aGlzLmVudGVyKHt0eXBlOiJ0YWJsZUNlbGwiLGNoaWxkcmVuOltdfSx0KX1mdW5jdGlvbiBnSXQodCl7bGV0IGU9dGhpcy5yZXN1bWUoKTt0aGlzLmRhdGEuaW5UYWJsZSYmKGU9ZS5yZXBsYWNlKC9cXChbXFx8XSkvZyxiSXQpKTtsZXQgYT10aGlzLnN0YWNrW3RoaXMuc3RhY2subGVuZ3RoLTFdO2EudHlwZSxhLnZhbHVlPWUsdGhpcy5leGl0KHQpfWZ1bmN0aW9uIGJJdCh0LGUpe3JldHVybiBlPT09InwiP2U6dH1mdW5jdGlvbiBOVCh0KXtsZXQgZT10fHx7fSxhPWUudGFibGVDZWxsUGFkZGluZyxpPWUudGFibGVQaXBlQWxpZ24scj1lLnN0cmluZ0xlbmd0aCxzPWE/IiAiOiJ8IjtyZXR1cm57dW5zYWZlOlt7Y2hhcmFjdGVyOiJcciIsaW5Db25zdHJ1Y3Q6InRhYmxlQ2VsbCJ9LHtjaGFyYWN0ZXI6YApgLGluQ29uc3RydWN0OiJ0YWJsZUNlbGwifSx7YXRCcmVhazohMCxjaGFyYWN0ZXI6InwiLGFmdGVyOiJbCSA6LV0ifSx7Y2hhcmFjdGVyOiJ8IixpbkNvbnN0cnVjdDoidGFibGVDZWxsIn0se2F0QnJlYWs6ITAsY2hhcmFjdGVyOiI6IixhZnRlcjoiLSJ9LHthdEJyZWFrOiEwLGNoYXJhY3RlcjoiLSIsYWZ0ZXI6Ils6fC1dIn1dLGhhbmRsZXJzOntpbmxpbmVDb2RlOmYsdGFibGU6bix0YWJsZUNlbGw6ZCx0YWJsZVJvdzpvfX07ZnVuY3Rpb24gbihnLHksdixtKXtyZXR1cm4gYyhoKGcsdixtKSxnLmFsaWduKX1mdW5jdGlvbiBvKGcseSx2LG0pe2xldCB4PWwoZyx2LG0pLE09YyhbeF0pO3JldHVybiBNLnNsaWNlKDAsTS5pbmRleE9mKGAKYCkpfWZ1bmN0aW9uIGQoZyx5LHYsbSl7bGV0IHg9di5lbnRlcigidGFibGVDZWxsIiksTT12LmVudGVyKCJwaHJhc2luZyIpLFM9di5jb250YWluZXJQaHJhc2luZyhnLHsuLi5tLGJlZm9yZTpzLGFmdGVyOnN9KTtyZXR1cm4gTSgpLHgoKSxTfWZ1bmN0aW9uIGMoZyx5KXtyZXR1cm4gVHJlKGcse2FsaWduOnksYWxpZ25EZWxpbWl0ZXJzOmkscGFkZGluZzphLHN0cmluZ0xlbmd0aDpyfSl9ZnVuY3Rpb24gaChnLHksdil7bGV0IG09Zy5jaGlsZHJlbix4PS0xLE09W10sUz15LmVudGVyKCJ0YWJsZSIpO2Zvcig7Kyt4PG0ubGVuZ3RoOylNW3hdPWwobVt4XSx5LHYpO3JldHVybiBTKCksTX1mdW5jdGlvbiBsKGcseSx2KXtsZXQgbT1nLmNoaWxkcmVuLHg9LTEsTT1bXSxTPXkuZW50ZXIoInRhYmxlUm93Iik7Zm9yKDsrK3g8bS5sZW5ndGg7KU1beF09ZChtW3hdLGcseSx2KTtyZXR1cm4gUygpLE19ZnVuY3Rpb24gZihnLHksdil7bGV0IG09eDAuaW5saW5lQ29kZShnLHksdik7cmV0dXJuIHYuc3RhY2suaW5jbHVkZXMoInRhYmxlQ2VsbCIpJiYobT1tLnJlcGxhY2UoL1x8L2csIlxcJCYiKSksbX19dmFyIGVuZT1iKCgpPT57Tm4oKTtMcmUoKTtFOSgpfSk7dmFyIHRuZT1iKCgpPT57ZW5lKCl9KTtmdW5jdGlvbiBGVCgpe3JldHVybntleGl0Ont0YXNrTGlzdENoZWNrVmFsdWVDaGVja2VkOmFuZSx0YXNrTGlzdENoZWNrVmFsdWVVbmNoZWNrZWQ6YW5lLHBhcmFncmFwaDp2SXR9fX1mdW5jdGlvbiBPVCgpe3JldHVybnt1bnNhZmU6W3thdEJyZWFrOiEwLGNoYXJhY3RlcjoiLSIsYWZ0ZXI6Ils6fC1dIn1dLGhhbmRsZXJzOntsaXN0SXRlbTp5SXR9fX1mdW5jdGlvbiBhbmUodCl7bGV0IGU9dGhpcy5zdGFja1t0aGlzLnN0YWNrLmxlbmd0aC0yXTtlLnR5cGUsZS5jaGVja2VkPXQudHlwZT09PSJ0YXNrTGlzdENoZWNrVmFsdWVDaGVja2VkIn1mdW5jdGlvbiB2SXQodCl7bGV0IGU9dGhpcy5zdGFja1t0aGlzLnN0YWNrLmxlbmd0aC0yXTtpZihlJiZlLnR5cGU9PT0ibGlzdEl0ZW0iJiZ0eXBlb2YgZS5jaGVja2VkPT0iYm9vbGVhbiIpe2xldCBhPXRoaXMuc3RhY2tbdGhpcy5zdGFjay5sZW5ndGgtMV07YS50eXBlO2xldCBpPWEuY2hpbGRyZW5bMF07aWYoaSYmaS50eXBlPT09InRleHQiKXtsZXQgcj1lLmNoaWxkcmVuLHM9LTEsbjtmb3IoOysrczxyLmxlbmd0aDspe2xldCBvPXJbc107aWYoby50eXBlPT09InBhcmFncmFwaCIpe249bzticmVha319bj09PWEmJihpLnZhbHVlPWkudmFsdWUuc2xpY2UoMSksaS52YWx1ZS5sZW5ndGg9PT0wP2EuY2hpbGRyZW4uc2hpZnQoKTphLnBvc2l0aW9uJiZpLnBvc2l0aW9uJiZ0eXBlb2YgaS5wb3NpdGlvbi5zdGFydC5vZmZzZXQ9PSJudW1iZXIiJiYoaS5wb3NpdGlvbi5zdGFydC5jb2x1bW4rKyxpLnBvc2l0aW9uLnN0YXJ0Lm9mZnNldCsrLGEucG9zaXRpb24uc3RhcnQ9T2JqZWN0LmFzc2lnbih7fSxpLnBvc2l0aW9uLnN0YXJ0KSkpfX10aGlzLmV4aXQodCl9ZnVuY3Rpb24geUl0KHQsZSxhLGkpe2xldCByPXQuY2hpbGRyZW5bMF0scz10eXBlb2YgdC5jaGVja2VkPT0iYm9vbGVhbiImJnImJnIudHlwZT09PSJwYXJhZ3JhcGgiLG49IlsiKyh0LmNoZWNrZWQ/IngiOiIgIikrIl0gIixvPWEuY3JlYXRlVHJhY2tlcihpKTtzJiZvLm1vdmUobik7bGV0IGQ9eDAubGlzdEl0ZW0odCxlLGEsey4uLmksLi4uby5jdXJyZW50KCl9KTtyZXR1cm4gcyYmKGQ9ZC5yZXBsYWNlKC9eKD86WyorLV18XGQrXC4pKFtcclxuXXwgezEsM30pLyxjKSksZDtmdW5jdGlvbiBjKGgpe3JldHVybiBoK259fXZhciBpbmU9YigoKT0+e05uKCk7RTkoKX0pO3ZhciBybmU9YigoKT0+e2luZSgpfSk7ZnVuY3Rpb24gUlQoKXtyZXR1cm5bblQoKSxsVCgpLGRUKCksSVQoKSxGVCgpXX1mdW5jdGlvbiBCVCh0KXtyZXR1cm57ZXh0ZW5zaW9uczpbb1QoKSxjVCh0KSxoVCgpLE5UKHQpLE9UKCldfX12YXIgc25lPWIoKCk9Pnt5cmUoKTt6cmUoKTtDcmUoKTt0bmUoKTtybmUoKX0pO3ZhciBubmU9YigoKT0+e3NuZSgpfSk7ZnVuY3Rpb24gUjEodCxlLGEsaSl7bGV0IHI9dC5sZW5ndGgscz0wLG47aWYoZTwwP2U9LWU+cj8wOnIrZTplPWU+cj9yOmUsYT1hPjA/YTowLGkubGVuZ3RoPDFlNCluPUFycmF5LmZyb20oaSksbi51bnNoaWZ0KGUsYSksdC5zcGxpY2UoLi4ubik7ZWxzZSBmb3IoYSYmdC5zcGxpY2UoZSxhKTtzPGkubGVuZ3RoOyluPWkuc2xpY2UocyxzKzFlNCksbi51bnNoaWZ0KGUsMCksdC5zcGxpY2UoLi4ubikscys9MWU0LGUrPTFlNH1mdW5jdGlvbiBaMSh0LGUpe3JldHVybiB0Lmxlbmd0aD4wPyhSMSh0LHQubGVuZ3RoLDAsZSksdCk6ZX12YXIgQXI9YigoKT0+e30pO2Z1bmN0aW9uIFA5KHQpe2xldCBlPXt9LGE9LTE7Zm9yKDsrK2E8dC5sZW5ndGg7KXhJdChlLHRbYV0pO3JldHVybiBlfWZ1bmN0aW9uIHhJdCh0LGUpe2xldCBhO2ZvcihhIGluIGUpe2xldCByPShIVC5jYWxsKHQsYSk/dFthXTp2b2lkIDApfHwodFthXT17fSkscz1lW2FdLG47aWYocylmb3IobiBpbiBzKXtIVC5jYWxsKHIsbil8fChyW25dPVtdKTtsZXQgbz1zW25dO3dJdChyW25dLEFycmF5LmlzQXJyYXkobyk/bzpvP1tvXTpbXSl9fX1mdW5jdGlvbiB3SXQodCxlKXtsZXQgYT0tMSxpPVtdO2Zvcig7KythPGUubGVuZ3RoOykoZVthXS5hZGQ9PT0iYWZ0ZXIiP3Q6aSkucHVzaChlW2FdKTtSMSh0LDAsMCxpKX1mdW5jdGlvbiBJOSh0KXtsZXQgZT17fSxhPS0xO2Zvcig7KythPHQubGVuZ3RoOylNSXQoZSx0W2FdKTtyZXR1cm4gZX1mdW5jdGlvbiBNSXQodCxlKXtsZXQgYTtmb3IoYSBpbiBlKXtsZXQgcj0oSFQuY2FsbCh0LGEpP3RbYV06dm9pZCAwKXx8KHRbYV09e30pLHM9ZVthXSxuO2lmKHMpZm9yKG4gaW4gcylyW25dPXNbbl19fXZhciBIVCxOOT1iKCgpPT57QXIoKTtIVD17fS5oYXNPd25Qcm9wZXJ0eX0pO2Z1bmN0aW9uIGpUKCl7cmV0dXJue3RleHQ6RHJ9fWZ1bmN0aW9uIFNJdCh0LGUsYSl7bGV0IGk9dGhpcyxyLHM7cmV0dXJuIG47ZnVuY3Rpb24gbihsKXtyZXR1cm4hcVQobCl8fCFmbmUuY2FsbChpLGkucHJldmlvdXMpfHxWVChpLmV2ZW50cyk/YShsKToodC5lbnRlcigibGl0ZXJhbEF1dG9saW5rIiksdC5lbnRlcigibGl0ZXJhbEF1dG9saW5rRW1haWwiKSxvKGwpKX1mdW5jdGlvbiBvKGwpe3JldHVybiBxVChsKT8odC5jb25zdW1lKGwpLG8pOmw9PT02ND8odC5jb25zdW1lKGwpLGQpOmEobCl9ZnVuY3Rpb24gZChsKXtyZXR1cm4gbD09PTQ2P3QuY2hlY2soa0l0LGgsYykobCk6bD09PTQ1fHxsPT09OTV8fFAxKGwpPyhzPSEwLHQuY29uc3VtZShsKSxkKTpoKGwpfWZ1bmN0aW9uIGMobCl7cmV0dXJuIHQuY29uc3VtZShsKSxyPSEwLGR9ZnVuY3Rpb24gaChsKXtyZXR1cm4gcyYmciYmaTIoaS5wcmV2aW91cyk/KHQuZXhpdCgibGl0ZXJhbEF1dG9saW5rRW1haWwiKSx0LmV4aXQoImxpdGVyYWxBdXRvbGluayIpLGUobCkpOmEobCl9fWZ1bmN0aW9uIENJdCh0LGUsYSl7bGV0IGk9dGhpcztyZXR1cm4gcjtmdW5jdGlvbiByKG4pe3JldHVybiBuIT09ODcmJm4hPT0xMTl8fCFwbmUuY2FsbChpLGkucHJldmlvdXMpfHxWVChpLmV2ZW50cyk/YShuKToodC5lbnRlcigibGl0ZXJhbEF1dG9saW5rIiksdC5lbnRlcigibGl0ZXJhbEF1dG9saW5rV3d3IiksdC5jaGVjayh6SXQsdC5hdHRlbXB0KG9uZSx0LmF0dGVtcHQobG5lLHMpLGEpLGEpKG4pKX1mdW5jdGlvbiBzKG4pe3JldHVybiB0LmV4aXQoImxpdGVyYWxBdXRvbGlua1d3dyIpLHQuZXhpdCgibGl0ZXJhbEF1dG9saW5rIiksZShuKX19ZnVuY3Rpb24gX0l0KHQsZSxhKXtsZXQgaT10aGlzLHI9IiIscz0hMTtyZXR1cm4gbjtmdW5jdGlvbiBuKGwpe3JldHVybihsPT09NzJ8fGw9PT0xMDQpJiZ1bmUuY2FsbChpLGkucHJldmlvdXMpJiYhVlQoaS5ldmVudHMpPyh0LmVudGVyKCJsaXRlcmFsQXV0b2xpbmsiKSx0LmVudGVyKCJsaXRlcmFsQXV0b2xpbmtIdHRwIikscis9U3RyaW5nLmZyb21Db2RlUG9pbnQobCksdC5jb25zdW1lKGwpLG8pOmEobCl9ZnVuY3Rpb24gbyhsKXtpZihpMihsKSYmci5sZW5ndGg8NSlyZXR1cm4gcis9U3RyaW5nLmZyb21Db2RlUG9pbnQobCksdC5jb25zdW1lKGwpLG87aWYobD09PTU4KXtsZXQgZj1yLnRvTG93ZXJDYXNlKCk7aWYoZj09PSJodHRwInx8Zj09PSJodHRwcyIpcmV0dXJuIHQuY29uc3VtZShsKSxkfXJldHVybiBhKGwpfWZ1bmN0aW9uIGQobCl7cmV0dXJuIGw9PT00Nz8odC5jb25zdW1lKGwpLHM/Yzoocz0hMCxkKSk6YShsKX1mdW5jdGlvbiBjKGwpe3JldHVybiBsPT09bnVsbHx8ZzAobCl8fF90KGwpfHwkcihsKXx8YjAobCk/YShsKTp0LmF0dGVtcHQob25lLHQuYXR0ZW1wdChsbmUsaCksYSkobCl9ZnVuY3Rpb24gaChsKXtyZXR1cm4gdC5leGl0KCJsaXRlcmFsQXV0b2xpbmtIdHRwIiksdC5leGl0KCJsaXRlcmFsQXV0b2xpbmsiKSxlKGwpfX1mdW5jdGlvbiBUSXQodCxlLGEpe2xldCBpPTA7cmV0dXJuIHI7ZnVuY3Rpb24gcihuKXtyZXR1cm4obj09PTg3fHxuPT09MTE5KSYmaTwzPyhpKyssdC5jb25zdW1lKG4pLHIpOm49PT00NiYmaT09PTM/KHQuY29uc3VtZShuKSxzKTphKG4pfWZ1bmN0aW9uIHMobil7cmV0dXJuIG49PT1udWxsP2Eobik6ZShuKX19ZnVuY3Rpb24gTEl0KHQsZSxhKXtsZXQgaSxyLHM7cmV0dXJuIG47ZnVuY3Rpb24gbihjKXtyZXR1cm4gYz09PTQ2fHxjPT09OTU/dC5jaGVjayhjbmUsZCxvKShjKTpjPT09bnVsbHx8X3QoYyl8fCRyKGMpfHxjIT09NDUmJmIwKGMpP2QoYyk6KHM9ITAsdC5jb25zdW1lKGMpLG4pfWZ1bmN0aW9uIG8oYyl7cmV0dXJuIGM9PT05NT9pPSEwOihyPWksaT12b2lkIDApLHQuY29uc3VtZShjKSxufWZ1bmN0aW9uIGQoYyl7cmV0dXJuIHJ8fGl8fCFzP2EoYyk6ZShjKX19ZnVuY3Rpb24gJEl0KHQsZSl7bGV0IGE9MCxpPTA7cmV0dXJuIHI7ZnVuY3Rpb24gcihuKXtyZXR1cm4gbj09PTQwPyhhKyssdC5jb25zdW1lKG4pLHIpOm49PT00MSYmaTxhP3Mobik6bj09PTMzfHxuPT09MzR8fG49PT0zOHx8bj09PTM5fHxuPT09NDF8fG49PT00Mnx8bj09PTQ0fHxuPT09NDZ8fG49PT01OHx8bj09PTU5fHxuPT09NjB8fG49PT02M3x8bj09PTkzfHxuPT09OTV8fG49PT0xMjY/dC5jaGVjayhjbmUsZSxzKShuKTpuPT09bnVsbHx8X3Qobil8fCRyKG4pP2Uobik6KHQuY29uc3VtZShuKSxyKX1mdW5jdGlvbiBzKG4pe3JldHVybiBuPT09NDEmJmkrKyx0LmNvbnN1bWUobikscn19ZnVuY3Rpb24gQUl0KHQsZSxhKXtyZXR1cm4gaTtmdW5jdGlvbiBpKG8pe3JldHVybiBvPT09MzN8fG89PT0zNHx8bz09PTM5fHxvPT09NDF8fG89PT00Mnx8bz09PTQ0fHxvPT09NDZ8fG89PT01OHx8bz09PTU5fHxvPT09NjN8fG89PT05NXx8bz09PTEyNj8odC5jb25zdW1lKG8pLGkpOm89PT0zOD8odC5jb25zdW1lKG8pLHMpOm89PT05Mz8odC5jb25zdW1lKG8pLHIpOm89PT02MHx8bz09PW51bGx8fF90KG8pfHwkcihvKT9lKG8pOmEobyl9ZnVuY3Rpb24gcihvKXtyZXR1cm4gbz09PW51bGx8fG89PT00MHx8bz09PTkxfHxfdChvKXx8JHIobyk/ZShvKTppKG8pfWZ1bmN0aW9uIHMobyl7cmV0dXJuIGkyKG8pP24obyk6YShvKX1mdW5jdGlvbiBuKG8pe3JldHVybiBvPT09NTk/KHQuY29uc3VtZShvKSxpKTppMihvKT8odC5jb25zdW1lKG8pLG4pOmEobyl9fWZ1bmN0aW9uIERJdCh0LGUsYSl7cmV0dXJuIGk7ZnVuY3Rpb24gaShzKXtyZXR1cm4gdC5jb25zdW1lKHMpLHJ9ZnVuY3Rpb24gcihzKXtyZXR1cm4gUDEocyk/YShzKTplKHMpfX1mdW5jdGlvbiBwbmUodCl7cmV0dXJuIHQ9PT1udWxsfHx0PT09NDB8fHQ9PT00Mnx8dD09PTk1fHx0PT09OTF8fHQ9PT05M3x8dD09PTEyNnx8X3QodCl9ZnVuY3Rpb24gdW5lKHQpe3JldHVybiFpMih0KX1mdW5jdGlvbiBmbmUodCl7cmV0dXJuISh0PT09NDd8fHFUKHQpKX1mdW5jdGlvbiBxVCh0KXtyZXR1cm4gdD09PTQzfHx0PT09NDV8fHQ9PT00Nnx8dD09PTk1fHxQMSh0KX1mdW5jdGlvbiBWVCh0KXtsZXQgZT10Lmxlbmd0aCxhPSExO2Zvcig7ZS0tOyl7bGV0IGk9dFtlXVsxXTtpZigoaS50eXBlPT09ImxhYmVsTGluayJ8fGkudHlwZT09PSJsYWJlbEltYWdlIikmJiFpLl9iYWxhbmNlZCl7YT0hMDticmVha31pZihpLl9nZm1BdXRvbGlua0xpdGVyYWxXYWxrZWRJbnRvKXthPSExO2JyZWFrfX1yZXR1cm4gdC5sZW5ndGg+MCYmIWEmJih0W3QubGVuZ3RoLTFdWzFdLl9nZm1BdXRvbGlua0xpdGVyYWxXYWxrZWRJbnRvPSEwKSxhfXZhciB6SXQsb25lLGxuZSxjbmUsa0l0LGRuZSxobmUsd3MsRHIsbW5lPWIoKCk9PnskdCgpO3pJdD17dG9rZW5pemU6VEl0LHBhcnRpYWw6ITB9LG9uZT17dG9rZW5pemU6TEl0LHBhcnRpYWw6ITB9LGxuZT17dG9rZW5pemU6JEl0LHBhcnRpYWw6ITB9LGNuZT17dG9rZW5pemU6QUl0LHBhcnRpYWw6ITB9LGtJdD17dG9rZW5pemU6REl0LHBhcnRpYWw6ITB9LGRuZT17bmFtZToid3d3QXV0b2xpbmsiLHRva2VuaXplOkNJdCxwcmV2aW91czpwbmV9LGhuZT17bmFtZToicHJvdG9jb2xBdXRvbGluayIsdG9rZW5pemU6X0l0LHByZXZpb3VzOnVuZX0sd3M9e25hbWU6ImVtYWlsQXV0b2xpbmsiLHRva2VuaXplOlNJdCxwcmV2aW91czpmbmV9LERyPXt9O2Zvcih2YXIgTTA9NDg7TTA8MTIzOylEcltNMF09d3MsTTArKyxNMD09PTU4P00wPTY1Ok0wPT09OTEmJihNMD05Nyk7RHJbNDNdPXdzLERyWzQ1XT13cyxEcls0Nl09d3MsRHJbOTVdPXdzLERyWzcyXT1bd3MsaG5lXSxEclsxMDRdPVt3cyxobmVdLERyWzg3XT1bd3MsZG5lXSxEclsxMTldPVt3cyxkbmVdfSk7ZnVuY3Rpb24gRjkodCl7cmV0dXJuIHQucmVwbGFjZSgvWyImPD5dL2csZSk7ZnVuY3Rpb24gZShhKXtyZXR1cm4iJiIrRUl0W2FdKyI7In19dmFyIEVJdCxVVD1iKCgpPT57RUl0PXsnIic6InF1b3QiLCImIjoiYW1wIiwiPCI6Imx0IiwiPiI6Imd0In19KTtmdW5jdGlvbiBFcih0LGUpe2xldCBhPUY5KEhhKHR8fCIiKSk7aWYoIWUpcmV0dXJuIGE7bGV0IGk9YS5pbmRleE9mKCI6Iikscj1hLmluZGV4T2YoIj8iKSxzPWEuaW5kZXhPZigiIyIpLG49YS5pbmRleE9mKCIvIik7cmV0dXJuIGk8MHx8bj4tMSYmaT5ufHxyPi0xJiZpPnJ8fHM+LTEmJmk+c3x8ZS50ZXN0KGEuc2xpY2UoMCxpKSk/YToiIn1mdW5jdGlvbiBIYSh0KXtsZXQgZT1bXSxhPS0xLGk9MCxyPTA7Zm9yKDsrK2E8dC5sZW5ndGg7KXtsZXQgcz10LmNoYXJDb2RlQXQoYSksbj0iIjtpZihzPT09MzcmJlAxKHQuY2hhckNvZGVBdChhKzEpKSYmUDEodC5jaGFyQ29kZUF0KGErMikpKXI9MjtlbHNlIGlmKHM8MTI4KS9bISMkJi07PT8tWl9hLXp+XS8udGVzdChTdHJpbmcuZnJvbUNoYXJDb2RlKHMpKXx8KG49U3RyaW5nLmZyb21DaGFyQ29kZShzKSk7ZWxzZSBpZihzPjU1Mjk1JiZzPDU3MzQ0KXtsZXQgbz10LmNoYXJDb2RlQXQoYSsxKTtzPDU2MzIwJiZvPjU2MzE5JiZvPDU3MzQ0PyhuPVN0cmluZy5mcm9tQ2hhckNvZGUocyxvKSxyPTEpOm49Ilx1RkZGRCJ9ZWxzZSBuPVN0cmluZy5mcm9tQ2hhckNvZGUocyk7biYmKGUucHVzaCh0LnNsaWNlKGksYSksZW5jb2RlVVJJQ29tcG9uZW50KG4pKSxpPWErcisxLG49IiIpLHImJihhKz1yLHI9MCl9cmV0dXJuIGUuam9pbigiIikrdC5zbGljZShpKX12YXIgUHI9YigoKT0+eyR0KCk7VVQoKX0pO2Z1bmN0aW9uIEdUKCl7cmV0dXJue2V4aXQ6e2xpdGVyYWxBdXRvbGlua0VtYWlsOklJdCxsaXRlcmFsQXV0b2xpbmtIdHRwOk5JdCxsaXRlcmFsQXV0b2xpbmtXd3c6UEl0fX19ZnVuY3Rpb24gUEl0KHQpe1dULmNhbGwodGhpcyx0LCJodHRwOi8vIil9ZnVuY3Rpb24gSUl0KHQpe1dULmNhbGwodGhpcyx0LCJtYWlsdG86Iil9ZnVuY3Rpb24gTkl0KHQpe1dULmNhbGwodGhpcyx0KX1mdW5jdGlvbiBXVCh0LGUpe2xldCBhPXRoaXMuc2xpY2VTZXJpYWxpemUodCk7dGhpcy50YWcoJzxhIGhyZWY9IicrRXIoKGV8fCIiKSthKSsnIj4nKSx0aGlzLnJhdyh0aGlzLmVuY29kZShhKSksdGhpcy50YWcoIjwvYT4iKX12YXIgZ25lPWIoKCk9PntQcigpfSk7dmFyIGJuZT1iKCgpPT57bW5lKCk7Z25lKCl9KTtmdW5jdGlvbiBIbih0LGUsYSl7bGV0IGk9W10scj0tMTtmb3IoOysrcjx0Lmxlbmd0aDspe2xldCBzPXRbcl0ucmVzb2x2ZUFsbDtzJiYhaS5pbmNsdWRlcyhzKSYmKGU9cyhlLGEpLGkucHVzaChzKSl9cmV0dXJuIGV9dmFyIFY2PWIoKCk9Pnt9KTtmdW5jdGlvbiBGSXQodCxlKXtsZXQgYT0tMSxpLHIscyxuLG8sZCxjLGg7Zm9yKDsrK2E8dC5sZW5ndGg7KWlmKHRbYV1bMF09PT0iZW50ZXIiJiZ0W2FdWzFdLnR5cGU9PT0iYXR0ZW50aW9uU2VxdWVuY2UiJiZ0W2FdWzFdLl9jbG9zZSl7Zm9yKGk9YTtpLS07KWlmKHRbaV1bMF09PT0iZXhpdCImJnRbaV1bMV0udHlwZT09PSJhdHRlbnRpb25TZXF1ZW5jZSImJnRbaV1bMV0uX29wZW4mJmUuc2xpY2VTZXJpYWxpemUodFtpXVsxXSkuY2hhckNvZGVBdCgwKT09PWUuc2xpY2VTZXJpYWxpemUodFthXVsxXSkuY2hhckNvZGVBdCgwKSl7aWYoKHRbaV1bMV0uX2Nsb3NlfHx0W2FdWzFdLl9vcGVuKSYmKHRbYV1bMV0uZW5kLm9mZnNldC10W2FdWzFdLnN0YXJ0Lm9mZnNldCklMyYmISgodFtpXVsxXS5lbmQub2Zmc2V0LXRbaV1bMV0uc3RhcnQub2Zmc2V0K3RbYV1bMV0uZW5kLm9mZnNldC10W2FdWzFdLnN0YXJ0Lm9mZnNldCklMykpY29udGludWU7ZD10W2ldWzFdLmVuZC5vZmZzZXQtdFtpXVsxXS5zdGFydC5vZmZzZXQ+MSYmdFthXVsxXS5lbmQub2Zmc2V0LXRbYV1bMV0uc3RhcnQub2Zmc2V0PjE/MjoxO2xldCBsPXsuLi50W2ldWzFdLmVuZH0sZj17Li4udFthXVsxXS5zdGFydH07dm5lKGwsLWQpLHZuZShmLGQpLG49e3R5cGU6ZD4xPyJzdHJvbmdTZXF1ZW5jZSI6ImVtcGhhc2lzU2VxdWVuY2UiLHN0YXJ0OmwsZW5kOnsuLi50W2ldWzFdLmVuZH19LG89e3R5cGU6ZD4xPyJzdHJvbmdTZXF1ZW5jZSI6ImVtcGhhc2lzU2VxdWVuY2UiLHN0YXJ0OnsuLi50W2FdWzFdLnN0YXJ0fSxlbmQ6Zn0scz17dHlwZTpkPjE/InN0cm9uZ1RleHQiOiJlbXBoYXNpc1RleHQiLHN0YXJ0OnsuLi50W2ldWzFdLmVuZH0sZW5kOnsuLi50W2FdWzFdLnN0YXJ0fX0scj17dHlwZTpkPjE/InN0cm9uZyI6ImVtcGhhc2lzIixzdGFydDp7Li4ubi5zdGFydH0sZW5kOnsuLi5vLmVuZH19LHRbaV1bMV0uZW5kPXsuLi5uLnN0YXJ0fSx0W2FdWzFdLnN0YXJ0PXsuLi5vLmVuZH0sYz1bXSx0W2ldWzFdLmVuZC5vZmZzZXQtdFtpXVsxXS5zdGFydC5vZmZzZXQmJihjPVoxKGMsW1siZW50ZXIiLHRbaV1bMV0sZV0sWyJleGl0Iix0W2ldWzFdLGVdXSkpLGM9WjEoYyxbWyJlbnRlciIscixlXSxbImVudGVyIixuLGVdLFsiZXhpdCIsbixlXSxbImVudGVyIixzLGVdXSksYz1aMShjLEhuKGUucGFyc2VyLmNvbnN0cnVjdHMuaW5zaWRlU3Bhbi5udWxsLHQuc2xpY2UoaSsxLGEpLGUpKSxjPVoxKGMsW1siZXhpdCIscyxlXSxbImVudGVyIixvLGVdLFsiZXhpdCIsbyxlXSxbImV4aXQiLHIsZV1dKSx0W2FdWzFdLmVuZC5vZmZzZXQtdFthXVsxXS5zdGFydC5vZmZzZXQ/KGg9MixjPVoxKGMsW1siZW50ZXIiLHRbYV1bMV0sZV0sWyJleGl0Iix0W2FdWzFdLGVdXSkpOmg9MCxSMSh0LGktMSxhLWkrMyxjKSxhPWkrYy5sZW5ndGgtaC0yO2JyZWFrfX1mb3IoYT0tMTsrK2E8dC5sZW5ndGg7KXRbYV1bMV0udHlwZT09PSJhdHRlbnRpb25TZXF1ZW5jZSImJih0W2FdWzFdLnR5cGU9ImRhdGEiKTtyZXR1cm4gdH1mdW5jdGlvbiBPSXQodCxlKXtsZXQgYT10aGlzLnBhcnNlci5jb25zdHJ1Y3RzLmF0dGVudGlvbk1hcmtlcnMubnVsbCxpPXRoaXMucHJldmlvdXMscj14cyhpKSxzO3JldHVybiBuO2Z1bmN0aW9uIG4oZCl7cmV0dXJuIHM9ZCx0LmVudGVyKCJhdHRlbnRpb25TZXF1ZW5jZSIpLG8oZCl9ZnVuY3Rpb24gbyhkKXtpZihkPT09cylyZXR1cm4gdC5jb25zdW1lKGQpLG87bGV0IGM9dC5leGl0KCJhdHRlbnRpb25TZXF1ZW5jZSIpLGg9eHMoZCksbD0haHx8aD09PTImJnJ8fGEuaW5jbHVkZXMoZCksZj0hcnx8cj09PTImJmh8fGEuaW5jbHVkZXMoaSk7cmV0dXJuIGMuX29wZW49ISEocz09PTQyP2w6bCYmKHJ8fCFmKSksYy5fY2xvc2U9ISEocz09PTQyP2Y6ZiYmKGh8fCFsKSksZShkKX19ZnVuY3Rpb24gdm5lKHQsZSl7dC5jb2x1bW4rPWUsdC5vZmZzZXQrPWUsdC5fYnVmZmVySW5kZXgrPWV9dmFyIGo2LHluZT1iKCgpPT57QXIoKTtDOSgpO1Y2KCk7ajY9e25hbWU6ImF0dGVudGlvbiIscmVzb2x2ZUFsbDpGSXQsdG9rZW5pemU6T0l0fX0pO2Z1bmN0aW9uIFJJdCh0LGUsYSl7bGV0IGk9MDtyZXR1cm4gcjtmdW5jdGlvbiByKGcpe3JldHVybiB0LmVudGVyKCJhdXRvbGluayIpLHQuZW50ZXIoImF1dG9saW5rTWFya2VyIiksdC5jb25zdW1lKGcpLHQuZXhpdCgiYXV0b2xpbmtNYXJrZXIiKSx0LmVudGVyKCJhdXRvbGlua1Byb3RvY29sIiksc31mdW5jdGlvbiBzKGcpe3JldHVybiBpMihnKT8odC5jb25zdW1lKGcpLG4pOmc9PT02ND9hKGcpOmMoZyl9ZnVuY3Rpb24gbihnKXtyZXR1cm4gZz09PTQzfHxnPT09NDV8fGc9PT00Nnx8UDEoZyk/KGk9MSxvKGcpKTpjKGcpfWZ1bmN0aW9uIG8oZyl7cmV0dXJuIGc9PT01OD8odC5jb25zdW1lKGcpLGk9MCxkKTooZz09PTQzfHxnPT09NDV8fGc9PT00Nnx8UDEoZykpJiZpKys8MzI/KHQuY29uc3VtZShnKSxvKTooaT0wLGMoZykpfWZ1bmN0aW9uIGQoZyl7cmV0dXJuIGc9PT02Mj8odC5leGl0KCJhdXRvbGlua1Byb3RvY29sIiksdC5lbnRlcigiYXV0b2xpbmtNYXJrZXIiKSx0LmNvbnN1bWUoZyksdC5leGl0KCJhdXRvbGlua01hcmtlciIpLHQuZXhpdCgiYXV0b2xpbmsiKSxlKTpnPT09bnVsbHx8Zz09PTMyfHxnPT09NjB8fGcwKGcpP2EoZyk6KHQuY29uc3VtZShnKSxkKX1mdW5jdGlvbiBjKGcpe3JldHVybiBnPT09NjQ/KHQuY29uc3VtZShnKSxoKTpucmUoZyk/KHQuY29uc3VtZShnKSxjKTphKGcpfWZ1bmN0aW9uIGgoZyl7cmV0dXJuIFAxKGcpP2woZyk6YShnKX1mdW5jdGlvbiBsKGcpe3JldHVybiBnPT09NDY/KHQuY29uc3VtZShnKSxpPTAsaCk6Zz09PTYyPyh0LmV4aXQoImF1dG9saW5rUHJvdG9jb2wiKS50eXBlPSJhdXRvbGlua0VtYWlsIix0LmVudGVyKCJhdXRvbGlua01hcmtlciIpLHQuY29uc3VtZShnKSx0LmV4aXQoImF1dG9saW5rTWFya2VyIiksdC5leGl0KCJhdXRvbGluayIpLGUpOmYoZyl9ZnVuY3Rpb24gZihnKXtpZigoZz09PTQ1fHxQMShnKSkmJmkrKzw2Myl7bGV0IHk9Zz09PTQ1P2Y6bDtyZXR1cm4gdC5jb25zdW1lKGcpLHl9cmV0dXJuIGEoZyl9fXZhciBZVCx4bmU9YigoKT0+eyR0KCk7WVQ9e25hbWU6ImF1dG9saW5rIix0b2tlbml6ZTpSSXR9fSk7ZnVuY3Rpb24gaXQodCxlLGEsaSl7bGV0IHI9aT9pLTE6TnVtYmVyLlBPU0lUSVZFX0lORklOSVRZLHM9MDtyZXR1cm4gbjtmdW5jdGlvbiBuKGQpe3JldHVybiBRZShkKT8odC5lbnRlcihhKSxvKGQpKTplKGQpfWZ1bmN0aW9uIG8oZCl7cmV0dXJuIFFlKGQpJiZzKys8cj8odC5jb25zdW1lKGQpLG8pOih0LmV4aXQoYSksZShkKSl9fXZhciBCMT1iKCgpPT57JHQoKX0pO2Z1bmN0aW9uIEJJdCh0LGUsYSl7cmV0dXJuIGk7ZnVuY3Rpb24gaShzKXtyZXR1cm4gUWUocyk/aXQodCxyLCJsaW5lUHJlZml4Iikocyk6cihzKX1mdW5jdGlvbiByKHMpe3JldHVybiBzPT09bnVsbHx8T2Uocyk/ZShzKTphKHMpfX12YXIgSXIsTzk9YigoKT0+e0IxKCk7JHQoKTtJcj17cGFydGlhbDohMCx0b2tlbml6ZTpCSXR9fSk7ZnVuY3Rpb24gSEl0KHQsZSxhKXtsZXQgaT10aGlzO3JldHVybiByO2Z1bmN0aW9uIHIobil7aWYobj09PTYyKXtsZXQgbz1pLmNvbnRhaW5lclN0YXRlO3JldHVybiBvLm9wZW58fCh0LmVudGVyKCJibG9ja1F1b3RlIix7X2NvbnRhaW5lcjohMH0pLG8ub3Blbj0hMCksdC5lbnRlcigiYmxvY2tRdW90ZVByZWZpeCIpLHQuZW50ZXIoImJsb2NrUXVvdGVNYXJrZXIiKSx0LmNvbnN1bWUobiksdC5leGl0KCJibG9ja1F1b3RlTWFya2VyIiksc31yZXR1cm4gYShuKX1mdW5jdGlvbiBzKG4pe3JldHVybiBRZShuKT8odC5lbnRlcigiYmxvY2tRdW90ZVByZWZpeFdoaXRlc3BhY2UiKSx0LmNvbnN1bWUobiksdC5leGl0KCJibG9ja1F1b3RlUHJlZml4V2hpdGVzcGFjZSIpLHQuZXhpdCgiYmxvY2tRdW90ZVByZWZpeCIpLGUpOih0LmV4aXQoImJsb2NrUXVvdGVQcmVmaXgiKSxlKG4pKX19ZnVuY3Rpb24gcUl0KHQsZSxhKXtsZXQgaT10aGlzO3JldHVybiByO2Z1bmN0aW9uIHIobil7cmV0dXJuIFFlKG4pP2l0KHQscywibGluZVByZWZpeCIsaS5wYXJzZXIuY29uc3RydWN0cy5kaXNhYmxlLm51bGwuaW5jbHVkZXMoImNvZGVJbmRlbnRlZCIpP3ZvaWQgMDo0KShuKTpzKG4pfWZ1bmN0aW9uIHMobil7cmV0dXJuIHQuYXR0ZW1wdChSOSxlLGEpKG4pfX1mdW5jdGlvbiBWSXQodCl7dC5leGl0KCJibG9ja1F1b3RlIil9dmFyIFI5LHduZT1iKCgpPT57QjEoKTskdCgpO1I5PXtjb250aW51YXRpb246e3Rva2VuaXplOnFJdH0sZXhpdDpWSXQsbmFtZToiYmxvY2tRdW90ZSIsdG9rZW5pemU6SEl0fX0pO2Z1bmN0aW9uIGpJdCh0LGUsYSl7cmV0dXJuIGk7ZnVuY3Rpb24gaShzKXtyZXR1cm4gdC5lbnRlcigiY2hhcmFjdGVyRXNjYXBlIiksdC5lbnRlcigiZXNjYXBlTWFya2VyIiksdC5jb25zdW1lKHMpLHQuZXhpdCgiZXNjYXBlTWFya2VyIikscn1mdW5jdGlvbiByKHMpe3JldHVybiBscmUocyk/KHQuZW50ZXIoImNoYXJhY3RlckVzY2FwZVZhbHVlIiksdC5jb25zdW1lKHMpLHQuZXhpdCgiY2hhcmFjdGVyRXNjYXBlVmFsdWUiKSx0LmV4aXQoImNoYXJhY3RlckVzY2FwZSIpLGUpOmEocyl9fXZhciBCOSxNbmU9YigoKT0+eyR0KCk7Qjk9e25hbWU6ImNoYXJhY3RlckVzY2FwZSIsdG9rZW5pemU6akl0fX0pO2Z1bmN0aW9uIFVJdCh0LGUsYSl7bGV0IGk9dGhpcyxyPTAscyxuO3JldHVybiBvO2Z1bmN0aW9uIG8obCl7cmV0dXJuIHQuZW50ZXIoImNoYXJhY3RlclJlZmVyZW5jZSIpLHQuZW50ZXIoImNoYXJhY3RlclJlZmVyZW5jZU1hcmtlciIpLHQuY29uc3VtZShsKSx0LmV4aXQoImNoYXJhY3RlclJlZmVyZW5jZU1hcmtlciIpLGR9ZnVuY3Rpb24gZChsKXtyZXR1cm4gbD09PTM1Pyh0LmVudGVyKCJjaGFyYWN0ZXJSZWZlcmVuY2VNYXJrZXJOdW1lcmljIiksdC5jb25zdW1lKGwpLHQuZXhpdCgiY2hhcmFjdGVyUmVmZXJlbmNlTWFya2VyTnVtZXJpYyIpLGMpOih0LmVudGVyKCJjaGFyYWN0ZXJSZWZlcmVuY2VWYWx1ZSIpLHM9MzEsbj1QMSxoKGwpKX1mdW5jdGlvbiBjKGwpe3JldHVybiBsPT09ODh8fGw9PT0xMjA/KHQuZW50ZXIoImNoYXJhY3RlclJlZmVyZW5jZU1hcmtlckhleGFkZWNpbWFsIiksdC5jb25zdW1lKGwpLHQuZXhpdCgiY2hhcmFjdGVyUmVmZXJlbmNlTWFya2VySGV4YWRlY2ltYWwiKSx0LmVudGVyKCJjaGFyYWN0ZXJSZWZlcmVuY2VWYWx1ZSIpLHM9NixuPW9yZSxoKToodC5lbnRlcigiY2hhcmFjdGVyUmVmZXJlbmNlVmFsdWUiKSxzPTcsbj1PNixoKGwpKX1mdW5jdGlvbiBoKGwpe2lmKGw9PT01OSYmcil7bGV0IGY9dC5leGl0KCJjaGFyYWN0ZXJSZWZlcmVuY2VWYWx1ZSIpO3JldHVybiBuPT09UDEmJiFCbihpLnNsaWNlU2VyaWFsaXplKGYpKT9hKGwpOih0LmVudGVyKCJjaGFyYWN0ZXJSZWZlcmVuY2VNYXJrZXIiKSx0LmNvbnN1bWUobCksdC5leGl0KCJjaGFyYWN0ZXJSZWZlcmVuY2VNYXJrZXIiKSx0LmV4aXQoImNoYXJhY3RlclJlZmVyZW5jZSIpLGUpfXJldHVybiBuKGwpJiZyKys8cz8odC5jb25zdW1lKGwpLGgpOmEobCl9fXZhciBIOSx6bmU9YigoKT0+e3E2KCk7JHQoKTtIOT17bmFtZToiY2hhcmFjdGVyUmVmZXJlbmNlIix0b2tlbml6ZTpVSXR9fSk7ZnVuY3Rpb24gV0l0KHQsZSxhKXtsZXQgaT10aGlzLHI9e3BhcnRpYWw6ITAsdG9rZW5pemU6X30scz0wLG49MCxvO3JldHVybiBkO2Z1bmN0aW9uIGQoayl7cmV0dXJuIGMoayl9ZnVuY3Rpb24gYyhrKXtsZXQgTj1pLmV2ZW50c1tpLmV2ZW50cy5sZW5ndGgtMV07cmV0dXJuIHM9TiYmTlsxXS50eXBlPT09ImxpbmVQcmVmaXgiP05bMl0uc2xpY2VTZXJpYWxpemUoTlsxXSwhMCkubGVuZ3RoOjAsbz1rLHQuZW50ZXIoImNvZGVGZW5jZWQiKSx0LmVudGVyKCJjb2RlRmVuY2VkRmVuY2UiKSx0LmVudGVyKCJjb2RlRmVuY2VkRmVuY2VTZXF1ZW5jZSIpLGgoayl9ZnVuY3Rpb24gaChrKXtyZXR1cm4gaz09PW8/KG4rKyx0LmNvbnN1bWUoayksaCk6bjwzP2Eoayk6KHQuZXhpdCgiY29kZUZlbmNlZEZlbmNlU2VxdWVuY2UiKSxRZShrKT9pdCh0LGwsIndoaXRlc3BhY2UiKShrKTpsKGspKX1mdW5jdGlvbiBsKGspe3JldHVybiBrPT09bnVsbHx8T2Uoayk/KHQuZXhpdCgiY29kZUZlbmNlZEZlbmNlIiksaS5pbnRlcnJ1cHQ/ZShrKTp0LmNoZWNrKGtuZSx2LEYpKGspKToodC5lbnRlcigiY29kZUZlbmNlZEZlbmNlSW5mbyIpLHQuZW50ZXIoImNodW5rU3RyaW5nIix7Y29udGVudFR5cGU6InN0cmluZyJ9KSxmKGspKX1mdW5jdGlvbiBmKGspe3JldHVybiBrPT09bnVsbHx8T2Uoayk/KHQuZXhpdCgiY2h1bmtTdHJpbmciKSx0LmV4aXQoImNvZGVGZW5jZWRGZW5jZUluZm8iKSxsKGspKTpRZShrKT8odC5leGl0KCJjaHVua1N0cmluZyIpLHQuZXhpdCgiY29kZUZlbmNlZEZlbmNlSW5mbyIpLGl0KHQsZywid2hpdGVzcGFjZSIpKGspKTprPT09OTYmJms9PT1vP2Eoayk6KHQuY29uc3VtZShrKSxmKX1mdW5jdGlvbiBnKGspe3JldHVybiBrPT09bnVsbHx8T2Uoayk/bChrKToodC5lbnRlcigiY29kZUZlbmNlZEZlbmNlTWV0YSIpLHQuZW50ZXIoImNodW5rU3RyaW5nIix7Y29udGVudFR5cGU6InN0cmluZyJ9KSx5KGspKX1mdW5jdGlvbiB5KGspe3JldHVybiBrPT09bnVsbHx8T2Uoayk/KHQuZXhpdCgiY2h1bmtTdHJpbmciKSx0LmV4aXQoImNvZGVGZW5jZWRGZW5jZU1ldGEiKSxsKGspKTprPT09OTYmJms9PT1vP2Eoayk6KHQuY29uc3VtZShrKSx5KX1mdW5jdGlvbiB2KGspe3JldHVybiB0LmF0dGVtcHQocixGLG0pKGspfWZ1bmN0aW9uIG0oayl7cmV0dXJuIHQuZW50ZXIoImxpbmVFbmRpbmciKSx0LmNvbnN1bWUoayksdC5leGl0KCJsaW5lRW5kaW5nIikseH1mdW5jdGlvbiB4KGspe3JldHVybiBzPjAmJlFlKGspP2l0KHQsTSwibGluZVByZWZpeCIscysxKShrKTpNKGspfWZ1bmN0aW9uIE0oayl7cmV0dXJuIGs9PT1udWxsfHxPZShrKT90LmNoZWNrKGtuZSx2LEYpKGspOih0LmVudGVyKCJjb2RlRmxvd1ZhbHVlIiksUyhrKSl9ZnVuY3Rpb24gUyhrKXtyZXR1cm4gaz09PW51bGx8fE9lKGspPyh0LmV4aXQoImNvZGVGbG93VmFsdWUiKSxNKGspKToodC5jb25zdW1lKGspLFMpfWZ1bmN0aW9uIEYoayl7cmV0dXJuIHQuZXhpdCgiY29kZUZlbmNlZCIpLGUoayl9ZnVuY3Rpb24gXyhrLE4sTCl7bGV0IEE9MDtyZXR1cm4gcTtmdW5jdGlvbiBxKCQpe3JldHVybiBrLmVudGVyKCJsaW5lRW5kaW5nIiksay5jb25zdW1lKCQpLGsuZXhpdCgibGluZUVuZGluZyIpLEN9ZnVuY3Rpb24gQygkKXtyZXR1cm4gay5lbnRlcigiY29kZUZlbmNlZEZlbmNlIiksUWUoJCk/aXQoayx6LCJsaW5lUHJlZml4IixpLnBhcnNlci5jb25zdHJ1Y3RzLmRpc2FibGUubnVsbC5pbmNsdWRlcygiY29kZUluZGVudGVkIik/dm9pZCAwOjQpKCQpOnooJCl9ZnVuY3Rpb24geigkKXtyZXR1cm4gJD09PW8/KGsuZW50ZXIoImNvZGVGZW5jZWRGZW5jZVNlcXVlbmNlIiksRSgkKSk6TCgkKX1mdW5jdGlvbiBFKCQpe3JldHVybiAkPT09bz8oQSsrLGsuY29uc3VtZSgkKSxFKTpBPj1uPyhrLmV4aXQoImNvZGVGZW5jZWRGZW5jZVNlcXVlbmNlIiksUWUoJCk/aXQoayxULCJ3aGl0ZXNwYWNlIikoJCk6VCgkKSk6TCgkKX1mdW5jdGlvbiBUKCQpe3JldHVybiAkPT09bnVsbHx8T2UoJCk/KGsuZXhpdCgiY29kZUZlbmNlZEZlbmNlIiksTigkKSk6TCgkKX19fWZ1bmN0aW9uIEdJdCh0LGUsYSl7bGV0IGk9dGhpcztyZXR1cm4gcjtmdW5jdGlvbiByKG4pe3JldHVybiBuPT09bnVsbD9hKG4pOih0LmVudGVyKCJsaW5lRW5kaW5nIiksdC5jb25zdW1lKG4pLHQuZXhpdCgibGluZUVuZGluZyIpLHMpfWZ1bmN0aW9uIHMobil7cmV0dXJuIGkucGFyc2VyLmxhenlbaS5ub3coKS5saW5lXT9hKG4pOmUobil9fXZhciBrbmUscTksU25lPWIoKCk9PntCMSgpOyR0KCk7a25lPXtwYXJ0aWFsOiEwLHRva2VuaXplOkdJdH0scTk9e2NvbmNyZXRlOiEwLG5hbWU6ImNvZGVGZW5jZWQiLHRva2VuaXplOldJdH19KTtmdW5jdGlvbiBaSXQodCxlLGEpe2xldCBpPXRoaXM7cmV0dXJuIHI7ZnVuY3Rpb24gcihjKXtyZXR1cm4gdC5lbnRlcigiY29kZUluZGVudGVkIiksaXQodCxzLCJsaW5lUHJlZml4Iiw1KShjKX1mdW5jdGlvbiBzKGMpe2xldCBoPWkuZXZlbnRzW2kuZXZlbnRzLmxlbmd0aC0xXTtyZXR1cm4gaCYmaFsxXS50eXBlPT09ImxpbmVQcmVmaXgiJiZoWzJdLnNsaWNlU2VyaWFsaXplKGhbMV0sITApLmxlbmd0aD49ND9uKGMpOmEoYyl9ZnVuY3Rpb24gbihjKXtyZXR1cm4gYz09PW51bGw/ZChjKTpPZShjKT90LmF0dGVtcHQoWUl0LG4sZCkoYyk6KHQuZW50ZXIoImNvZGVGbG93VmFsdWUiKSxvKGMpKX1mdW5jdGlvbiBvKGMpe3JldHVybiBjPT09bnVsbHx8T2UoYyk/KHQuZXhpdCgiY29kZUZsb3dWYWx1ZSIpLG4oYykpOih0LmNvbnN1bWUoYyksbyl9ZnVuY3Rpb24gZChjKXtyZXR1cm4gdC5leGl0KCJjb2RlSW5kZW50ZWQiKSxlKGMpfX1mdW5jdGlvbiBYSXQodCxlLGEpe2xldCBpPXRoaXM7cmV0dXJuIHI7ZnVuY3Rpb24gcihuKXtyZXR1cm4gaS5wYXJzZXIubGF6eVtpLm5vdygpLmxpbmVdP2Eobik6T2Uobik/KHQuZW50ZXIoImxpbmVFbmRpbmciKSx0LmNvbnN1bWUobiksdC5leGl0KCJsaW5lRW5kaW5nIikscik6aXQodCxzLCJsaW5lUHJlZml4Iiw1KShuKX1mdW5jdGlvbiBzKG4pe2xldCBvPWkuZXZlbnRzW2kuZXZlbnRzLmxlbmd0aC0xXTtyZXR1cm4gbyYmb1sxXS50eXBlPT09ImxpbmVQcmVmaXgiJiZvWzJdLnNsaWNlU2VyaWFsaXplKG9bMV0sITApLmxlbmd0aD49ND9lKG4pOk9lKG4pP3Iobik6YShuKX19dmFyIFU2LFlJdCxDbmU9YigoKT0+e0IxKCk7JHQoKTtVNj17bmFtZToiY29kZUluZGVudGVkIix0b2tlbml6ZTpaSXR9LFlJdD17cGFydGlhbDohMCx0b2tlbml6ZTpYSXR9fSk7ZnVuY3Rpb24gS0l0KHQpe2xldCBlPXQubGVuZ3RoLTQsYT0zLGkscjtpZigodFthXVsxXS50eXBlPT09ImxpbmVFbmRpbmcifHx0W2FdWzFdLnR5cGU9PT0ic3BhY2UiKSYmKHRbZV1bMV0udHlwZT09PSJsaW5lRW5kaW5nInx8dFtlXVsxXS50eXBlPT09InNwYWNlIikpe2ZvcihpPWE7KytpPGU7KWlmKHRbaV1bMV0udHlwZT09PSJjb2RlVGV4dERhdGEiKXt0W2FdWzFdLnR5cGU9ImNvZGVUZXh0UGFkZGluZyIsdFtlXVsxXS50eXBlPSJjb2RlVGV4dFBhZGRpbmciLGErPTIsZS09MjticmVha319Zm9yKGk9YS0xLGUrKzsrK2k8PWU7KXI9PT12b2lkIDA/aSE9PWUmJnRbaV1bMV0udHlwZSE9PSJsaW5lRW5kaW5nIiYmKHI9aSk6KGk9PT1lfHx0W2ldWzFdLnR5cGU9PT0ibGluZUVuZGluZyIpJiYodFtyXVsxXS50eXBlPSJjb2RlVGV4dERhdGEiLGkhPT1yKzImJih0W3JdWzFdLmVuZD10W2ktMV1bMV0uZW5kLHQuc3BsaWNlKHIrMixpLXItMiksZS09aS1yLTIsaT1yKzIpLHI9dm9pZCAwKTtyZXR1cm4gdH1mdW5jdGlvbiBRSXQodCl7cmV0dXJuIHQhPT05Nnx8dGhpcy5ldmVudHNbdGhpcy5ldmVudHMubGVuZ3RoLTFdWzFdLnR5cGU9PT0iY2hhcmFjdGVyRXNjYXBlIn1mdW5jdGlvbiBKSXQodCxlLGEpe2xldCBpPXRoaXMscj0wLHMsbjtyZXR1cm4gbztmdW5jdGlvbiBvKGYpe3JldHVybiB0LmVudGVyKCJjb2RlVGV4dCIpLHQuZW50ZXIoImNvZGVUZXh0U2VxdWVuY2UiKSxkKGYpfWZ1bmN0aW9uIGQoZil7cmV0dXJuIGY9PT05Nj8odC5jb25zdW1lKGYpLHIrKyxkKToodC5leGl0KCJjb2RlVGV4dFNlcXVlbmNlIiksYyhmKSl9ZnVuY3Rpb24gYyhmKXtyZXR1cm4gZj09PW51bGw/YShmKTpmPT09MzI/KHQuZW50ZXIoInNwYWNlIiksdC5jb25zdW1lKGYpLHQuZXhpdCgic3BhY2UiKSxjKTpmPT09OTY/KG49dC5lbnRlcigiY29kZVRleHRTZXF1ZW5jZSIpLHM9MCxsKGYpKTpPZShmKT8odC5lbnRlcigibGluZUVuZGluZyIpLHQuY29uc3VtZShmKSx0LmV4aXQoImxpbmVFbmRpbmciKSxjKToodC5lbnRlcigiY29kZVRleHREYXRhIiksaChmKSl9ZnVuY3Rpb24gaChmKXtyZXR1cm4gZj09PW51bGx8fGY9PT0zMnx8Zj09PTk2fHxPZShmKT8odC5leGl0KCJjb2RlVGV4dERhdGEiKSxjKGYpKToodC5jb25zdW1lKGYpLGgpfWZ1bmN0aW9uIGwoZil7cmV0dXJuIGY9PT05Nj8odC5jb25zdW1lKGYpLHMrKyxsKTpzPT09cj8odC5leGl0KCJjb2RlVGV4dFNlcXVlbmNlIiksdC5leGl0KCJjb2RlVGV4dCIpLGUoZikpOihuLnR5cGU9ImNvZGVUZXh0RGF0YSIsaChmKSl9fXZhciBaVCxfbmU9YigoKT0+eyR0KCk7WlQ9e25hbWU6ImNvZGVUZXh0IixwcmV2aW91czpRSXQscmVzb2x2ZTpLSXQsdG9rZW5pemU6Skl0fX0pO2Z1bmN0aW9uIFc2KHQsZSl7bGV0IGE9MDtpZihlLmxlbmd0aDwxZTQpdC5wdXNoKC4uLmUpO2Vsc2UgZm9yKDthPGUubGVuZ3RoOyl0LnB1c2goLi4uZS5zbGljZShhLGErMWU0KSksYSs9MWU0fXZhciBHNixYVD1iKCgpPT57RzY9Y2xhc3N7Y29uc3RydWN0b3IoZSl7dGhpcy5sZWZ0PWU/Wy4uLmVdOltdLHRoaXMucmlnaHQ9W119Z2V0KGUpe2lmKGU8MHx8ZT49dGhpcy5sZWZ0Lmxlbmd0aCt0aGlzLnJpZ2h0Lmxlbmd0aCl0aHJvdyBuZXcgUmFuZ2VFcnJvcigiQ2Fubm90IGFjY2VzcyBpbmRleCBgIitlKyJgIGluIGEgc3BsaWNlIGJ1ZmZlciBvZiBzaXplIGAiKyh0aGlzLmxlZnQubGVuZ3RoK3RoaXMucmlnaHQubGVuZ3RoKSsiYCIpO3JldHVybiBlPHRoaXMubGVmdC5sZW5ndGg/dGhpcy5sZWZ0W2VdOnRoaXMucmlnaHRbdGhpcy5yaWdodC5sZW5ndGgtZSt0aGlzLmxlZnQubGVuZ3RoLTFdfWdldCBsZW5ndGgoKXtyZXR1cm4gdGhpcy5sZWZ0Lmxlbmd0aCt0aGlzLnJpZ2h0Lmxlbmd0aH1zaGlmdCgpe3JldHVybiB0aGlzLnNldEN1cnNvcigwKSx0aGlzLnJpZ2h0LnBvcCgpfXNsaWNlKGUsYSl7bGV0IGk9YT8/TnVtYmVyLlBPU0lUSVZFX0lORklOSVRZO3JldHVybiBpPHRoaXMubGVmdC5sZW5ndGg/dGhpcy5sZWZ0LnNsaWNlKGUsaSk6ZT50aGlzLmxlZnQubGVuZ3RoP3RoaXMucmlnaHQuc2xpY2UodGhpcy5yaWdodC5sZW5ndGgtaSt0aGlzLmxlZnQubGVuZ3RoLHRoaXMucmlnaHQubGVuZ3RoLWUrdGhpcy5sZWZ0Lmxlbmd0aCkucmV2ZXJzZSgpOnRoaXMubGVmdC5zbGljZShlKS5jb25jYXQodGhpcy5yaWdodC5zbGljZSh0aGlzLnJpZ2h0Lmxlbmd0aC1pK3RoaXMubGVmdC5sZW5ndGgpLnJldmVyc2UoKSl9c3BsaWNlKGUsYSxpKXtsZXQgcj1hfHwwO3RoaXMuc2V0Q3Vyc29yKE1hdGgudHJ1bmMoZSkpO2xldCBzPXRoaXMucmlnaHQuc3BsaWNlKHRoaXMucmlnaHQubGVuZ3RoLXIsTnVtYmVyLlBPU0lUSVZFX0lORklOSVRZKTtyZXR1cm4gaSYmVzYodGhpcy5sZWZ0LGkpLHMucmV2ZXJzZSgpfXBvcCgpe3JldHVybiB0aGlzLnNldEN1cnNvcihOdW1iZXIuUE9TSVRJVkVfSU5GSU5JVFkpLHRoaXMubGVmdC5wb3AoKX1wdXNoKGUpe3RoaXMuc2V0Q3Vyc29yKE51bWJlci5QT1NJVElWRV9JTkZJTklUWSksdGhpcy5sZWZ0LnB1c2goZSl9cHVzaE1hbnkoZSl7dGhpcy5zZXRDdXJzb3IoTnVtYmVyLlBPU0lUSVZFX0lORklOSVRZKSxXNih0aGlzLmxlZnQsZSl9dW5zaGlmdChlKXt0aGlzLnNldEN1cnNvcigwKSx0aGlzLnJpZ2h0LnB1c2goZSl9dW5zaGlmdE1hbnkoZSl7dGhpcy5zZXRDdXJzb3IoMCksVzYodGhpcy5yaWdodCxlLnJldmVyc2UoKSl9c2V0Q3Vyc29yKGUpe2lmKCEoZT09PXRoaXMubGVmdC5sZW5ndGh8fGU+dGhpcy5sZWZ0Lmxlbmd0aCYmdGhpcy5yaWdodC5sZW5ndGg9PT0wfHxlPDAmJnRoaXMubGVmdC5sZW5ndGg9PT0wKSlpZihlPHRoaXMubGVmdC5sZW5ndGgpe2xldCBhPXRoaXMubGVmdC5zcGxpY2UoZSxOdW1iZXIuUE9TSVRJVkVfSU5GSU5JVFkpO1c2KHRoaXMucmlnaHQsYS5yZXZlcnNlKCkpfWVsc2V7bGV0IGE9dGhpcy5yaWdodC5zcGxpY2UodGhpcy5sZWZ0Lmxlbmd0aCt0aGlzLnJpZ2h0Lmxlbmd0aC1lLE51bWJlci5QT1NJVElWRV9JTkZJTklUWSk7VzYodGhpcy5sZWZ0LGEucmV2ZXJzZSgpKX19fX0pO2Z1bmN0aW9uIFY5KHQpe2xldCBlPXt9LGE9LTEsaSxyLHMsbixvLGQsYyxoPW5ldyBHNih0KTtmb3IoOysrYTxoLmxlbmd0aDspe2Zvcig7YSBpbiBlOylhPWVbYV07aWYoaT1oLmdldChhKSxhJiZpWzFdLnR5cGU9PT0iY2h1bmtGbG93IiYmaC5nZXQoYS0xKVsxXS50eXBlPT09Imxpc3RJdGVtUHJlZml4IiYmKGQ9aVsxXS5fdG9rZW5pemVyLmV2ZW50cyxzPTAsczxkLmxlbmd0aCYmZFtzXVsxXS50eXBlPT09ImxpbmVFbmRpbmdCbGFuayImJihzKz0yKSxzPGQubGVuZ3RoJiZkW3NdWzFdLnR5cGU9PT0iY29udGVudCIpKWZvcig7KytzPGQubGVuZ3RoJiZkW3NdWzFdLnR5cGUhPT0iY29udGVudCI7KWRbc11bMV0udHlwZT09PSJjaHVua1RleHQiJiYoZFtzXVsxXS5faXNJbkZpcnN0Q29udGVudE9mTGlzdEl0ZW09ITAscysrKTtpZihpWzBdPT09ImVudGVyIilpWzFdLmNvbnRlbnRUeXBlJiYoT2JqZWN0LmFzc2lnbihlLGVOdChoLGEpKSxhPWVbYV0sYz0hMCk7ZWxzZSBpZihpWzFdLl9jb250YWluZXIpe2ZvcihzPWEscj12b2lkIDA7cy0tOylpZihuPWguZ2V0KHMpLG5bMV0udHlwZT09PSJsaW5lRW5kaW5nInx8blsxXS50eXBlPT09ImxpbmVFbmRpbmdCbGFuayIpblswXT09PSJlbnRlciImJihyJiYoaC5nZXQocilbMV0udHlwZT0ibGluZUVuZGluZ0JsYW5rIiksblsxXS50eXBlPSJsaW5lRW5kaW5nIixyPXMpO2Vsc2UgaWYoIShuWzFdLnR5cGU9PT0ibGluZVByZWZpeCJ8fG5bMV0udHlwZT09PSJsaXN0SXRlbUluZGVudCIpKWJyZWFrO3ImJihpWzFdLmVuZD17Li4uaC5nZXQocilbMV0uc3RhcnR9LG89aC5zbGljZShyLGEpLG8udW5zaGlmdChpKSxoLnNwbGljZShyLGEtcisxLG8pKX19cmV0dXJuIFIxKHQsMCxOdW1iZXIuUE9TSVRJVkVfSU5GSU5JVFksaC5zbGljZSgwKSksIWN9ZnVuY3Rpb24gZU50KHQsZSl7bGV0IGE9dC5nZXQoZSlbMV0saT10LmdldChlKVsyXSxyPWUtMSxzPVtdLG49YS5fdG9rZW5pemVyO258fChuPWkucGFyc2VyW2EuY29udGVudFR5cGVdKGEuc3RhcnQpLGEuX2NvbnRlbnRUeXBlVGV4dFRyYWlsaW5nJiYobi5fY29udGVudFR5cGVUZXh0VHJhaWxpbmc9ITApKTtsZXQgbz1uLmV2ZW50cyxkPVtdLGM9e30saCxsLGY9LTEsZz1hLHk9MCx2PTAsbT1bdl07Zm9yKDtnOyl7Zm9yKDt0LmdldCgrK3IpWzFdIT09ZzspO3MucHVzaChyKSxnLl90b2tlbml6ZXJ8fChoPWkuc2xpY2VTdHJlYW0oZyksZy5uZXh0fHxoLnB1c2gobnVsbCksbCYmbi5kZWZpbmVTa2lwKGcuc3RhcnQpLGcuX2lzSW5GaXJzdENvbnRlbnRPZkxpc3RJdGVtJiYobi5fZ2ZtVGFza2xpc3RGaXJzdENvbnRlbnRPZkxpc3RJdGVtPSEwKSxuLndyaXRlKGgpLGcuX2lzSW5GaXJzdENvbnRlbnRPZkxpc3RJdGVtJiYobi5fZ2ZtVGFza2xpc3RGaXJzdENvbnRlbnRPZkxpc3RJdGVtPXZvaWQgMCkpLGw9ZyxnPWcubmV4dH1mb3IoZz1hOysrZjxvLmxlbmd0aDspb1tmXVswXT09PSJleGl0IiYmb1tmLTFdWzBdPT09ImVudGVyIiYmb1tmXVsxXS50eXBlPT09b1tmLTFdWzFdLnR5cGUmJm9bZl1bMV0uc3RhcnQubGluZSE9PW9bZl1bMV0uZW5kLmxpbmUmJih2PWYrMSxtLnB1c2godiksZy5fdG9rZW5pemVyPXZvaWQgMCxnLnByZXZpb3VzPXZvaWQgMCxnPWcubmV4dCk7Zm9yKG4uZXZlbnRzPVtdLGc/KGcuX3Rva2VuaXplcj12b2lkIDAsZy5wcmV2aW91cz12b2lkIDApOm0ucG9wKCksZj1tLmxlbmd0aDtmLS07KXtsZXQgeD1vLnNsaWNlKG1bZl0sbVtmKzFdKSxNPXMucG9wKCk7ZC5wdXNoKFtNLE0reC5sZW5ndGgtMV0pLHQuc3BsaWNlKE0sMix4KX1mb3IoZC5yZXZlcnNlKCksZj0tMTsrK2Y8ZC5sZW5ndGg7KWNbeStkW2ZdWzBdXT15K2RbZl1bMV0seSs9ZFtmXVsxXS1kW2ZdWzBdLTE7cmV0dXJuIGN9dmFyIEtUPWIoKCk9PntBcigpO1hUKCk7WFQoKX0pO2Z1bmN0aW9uIGFOdCh0KXtyZXR1cm4gVjkodCksdH1mdW5jdGlvbiBpTnQodCxlKXtsZXQgYTtyZXR1cm4gaTtmdW5jdGlvbiBpKG8pe3JldHVybiB0LmVudGVyKCJjb250ZW50IiksYT10LmVudGVyKCJjaHVua0NvbnRlbnQiLHtjb250ZW50VHlwZToiY29udGVudCJ9KSxyKG8pfWZ1bmN0aW9uIHIobyl7cmV0dXJuIG89PT1udWxsP3Mobyk6T2Uobyk/dC5jaGVjayh0TnQsbixzKShvKToodC5jb25zdW1lKG8pLHIpfWZ1bmN0aW9uIHMobyl7cmV0dXJuIHQuZXhpdCgiY2h1bmtDb250ZW50IiksdC5leGl0KCJjb250ZW50IiksZShvKX1mdW5jdGlvbiBuKG8pe3JldHVybiB0LmNvbnN1bWUobyksdC5leGl0KCJjaHVua0NvbnRlbnQiKSxhLm5leHQ9dC5lbnRlcigiY2h1bmtDb250ZW50Iix7Y29udGVudFR5cGU6ImNvbnRlbnQiLHByZXZpb3VzOmF9KSxhPWEubmV4dCxyfX1mdW5jdGlvbiByTnQodCxlLGEpe2xldCBpPXRoaXM7cmV0dXJuIHI7ZnVuY3Rpb24gcihuKXtyZXR1cm4gdC5leGl0KCJjaHVua0NvbnRlbnQiKSx0LmVudGVyKCJsaW5lRW5kaW5nIiksdC5jb25zdW1lKG4pLHQuZXhpdCgibGluZUVuZGluZyIpLGl0KHQscywibGluZVByZWZpeCIpfWZ1bmN0aW9uIHMobil7aWYobj09PW51bGx8fE9lKG4pKXJldHVybiBhKG4pO2xldCBvPWkuZXZlbnRzW2kuZXZlbnRzLmxlbmd0aC0xXTtyZXR1cm4haS5wYXJzZXIuY29uc3RydWN0cy5kaXNhYmxlLm51bGwuaW5jbHVkZXMoImNvZGVJbmRlbnRlZCIpJiZvJiZvWzFdLnR5cGU9PT0ibGluZVByZWZpeCImJm9bMl0uc2xpY2VTZXJpYWxpemUob1sxXSwhMCkubGVuZ3RoPj00P2Uobik6dC5pbnRlcnJ1cHQoaS5wYXJzZXIuY29uc3RydWN0cy5mbG93LGEsZSkobil9fXZhciBRVCx0TnQsVG5lPWIoKCk9PntCMSgpOyR0KCk7S1QoKTtRVD17cmVzb2x2ZTphTnQsdG9rZW5pemU6aU50fSx0TnQ9e3BhcnRpYWw6ITAsdG9rZW5pemU6ck50fX0pO2Z1bmN0aW9uIGo5KHQsZSxhLGkscixzLG4sbyxkKXtsZXQgYz1kfHxOdW1iZXIuUE9TSVRJVkVfSU5GSU5JVFksaD0wO3JldHVybiBsO2Z1bmN0aW9uIGwoeCl7cmV0dXJuIHg9PT02MD8odC5lbnRlcihpKSx0LmVudGVyKHIpLHQuZW50ZXIocyksdC5jb25zdW1lKHgpLHQuZXhpdChzKSxmKTp4PT09bnVsbHx8eD09PTMyfHx4PT09NDF8fGcwKHgpP2EoeCk6KHQuZW50ZXIoaSksdC5lbnRlcihuKSx0LmVudGVyKG8pLHQuZW50ZXIoImNodW5rU3RyaW5nIix7Y29udGVudFR5cGU6InN0cmluZyJ9KSx2KHgpKX1mdW5jdGlvbiBmKHgpe3JldHVybiB4PT09NjI/KHQuZW50ZXIocyksdC5jb25zdW1lKHgpLHQuZXhpdChzKSx0LmV4aXQociksdC5leGl0KGkpLGUpOih0LmVudGVyKG8pLHQuZW50ZXIoImNodW5rU3RyaW5nIix7Y29udGVudFR5cGU6InN0cmluZyJ9KSxnKHgpKX1mdW5jdGlvbiBnKHgpe3JldHVybiB4PT09NjI/KHQuZXhpdCgiY2h1bmtTdHJpbmciKSx0LmV4aXQobyksZih4KSk6eD09PW51bGx8fHg9PT02MHx8T2UoeCk/YSh4KToodC5jb25zdW1lKHgpLHg9PT05Mj95OmcpfWZ1bmN0aW9uIHkoeCl7cmV0dXJuIHg9PT02MHx8eD09PTYyfHx4PT09OTI/KHQuY29uc3VtZSh4KSxnKTpnKHgpfWZ1bmN0aW9uIHYoeCl7cmV0dXJuIWgmJih4PT09bnVsbHx8eD09PTQxfHxfdCh4KSk/KHQuZXhpdCgiY2h1bmtTdHJpbmciKSx0LmV4aXQobyksdC5leGl0KG4pLHQuZXhpdChpKSxlKHgpKTpoPGMmJng9PT00MD8odC5jb25zdW1lKHgpLGgrKyx2KTp4PT09NDE/KHQuY29uc3VtZSh4KSxoLS0sdik6eD09PW51bGx8fHg9PT0zMnx8eD09PTQwfHxnMCh4KT9hKHgpOih0LmNvbnN1bWUoeCkseD09PTkyP206dil9ZnVuY3Rpb24gbSh4KXtyZXR1cm4geD09PTQwfHx4PT09NDF8fHg9PT05Mj8odC5jb25zdW1lKHgpLHYpOnYoeCl9fXZhciBKVD1iKCgpPT57JHQoKX0pO2Z1bmN0aW9uIFU5KHQsZSxhLGkscixzKXtsZXQgbj10aGlzLG89MCxkO3JldHVybiBjO2Z1bmN0aW9uIGMoZyl7cmV0dXJuIHQuZW50ZXIoaSksdC5lbnRlcihyKSx0LmNvbnN1bWUoZyksdC5leGl0KHIpLHQuZW50ZXIocyksaH1mdW5jdGlvbiBoKGcpe3JldHVybiBvPjk5OXx8Zz09PW51bGx8fGc9PT05MXx8Zz09PTkzJiYhZHx8Zz09PTk0JiYhbyYmIl9oaWRkZW5Gb290bm90ZVN1cHBvcnQiaW4gbi5wYXJzZXIuY29uc3RydWN0cz9hKGcpOmc9PT05Mz8odC5leGl0KHMpLHQuZW50ZXIociksdC5jb25zdW1lKGcpLHQuZXhpdChyKSx0LmV4aXQoaSksZSk6T2UoZyk/KHQuZW50ZXIoImxpbmVFbmRpbmciKSx0LmNvbnN1bWUoZyksdC5leGl0KCJsaW5lRW5kaW5nIiksaCk6KHQuZW50ZXIoImNodW5rU3RyaW5nIix7Y29udGVudFR5cGU6InN0cmluZyJ9KSxsKGcpKX1mdW5jdGlvbiBsKGcpe3JldHVybiBnPT09bnVsbHx8Zz09PTkxfHxnPT09OTN8fE9lKGcpfHxvKys+OTk5Pyh0LmV4aXQoImNodW5rU3RyaW5nIiksaChnKSk6KHQuY29uc3VtZShnKSxkfHwoZD0hUWUoZykpLGc9PT05Mj9mOmwpfWZ1bmN0aW9uIGYoZyl7cmV0dXJuIGc9PT05MXx8Zz09PTkyfHxnPT09OTM/KHQuY29uc3VtZShnKSxvKyssbCk6bChnKX19dmFyIGVMPWIoKCk9PnskdCgpfSk7ZnVuY3Rpb24gVzkodCxlLGEsaSxyLHMpe2xldCBuO3JldHVybiBvO2Z1bmN0aW9uIG8oZil7cmV0dXJuIGY9PT0zNHx8Zj09PTM5fHxmPT09NDA/KHQuZW50ZXIoaSksdC5lbnRlcihyKSx0LmNvbnN1bWUoZiksdC5leGl0KHIpLG49Zj09PTQwPzQxOmYsZCk6YShmKX1mdW5jdGlvbiBkKGYpe3JldHVybiBmPT09bj8odC5lbnRlcihyKSx0LmNvbnN1bWUoZiksdC5leGl0KHIpLHQuZXhpdChpKSxlKToodC5lbnRlcihzKSxjKGYpKX1mdW5jdGlvbiBjKGYpe3JldHVybiBmPT09bj8odC5leGl0KHMpLGQobikpOmY9PT1udWxsP2EoZik6T2UoZik/KHQuZW50ZXIoImxpbmVFbmRpbmciKSx0LmNvbnN1bWUoZiksdC5leGl0KCJsaW5lRW5kaW5nIiksaXQodCxjLCJsaW5lUHJlZml4IikpOih0LmVudGVyKCJjaHVua1N0cmluZyIse2NvbnRlbnRUeXBlOiJzdHJpbmcifSksaChmKSl9ZnVuY3Rpb24gaChmKXtyZXR1cm4gZj09PW58fGY9PT1udWxsfHxPZShmKT8odC5leGl0KCJjaHVua1N0cmluZyIpLGMoZikpOih0LmNvbnN1bWUoZiksZj09PTkyP2w6aCl9ZnVuY3Rpb24gbChmKXtyZXR1cm4gZj09PW58fGY9PT05Mj8odC5jb25zdW1lKGYpLGgpOmgoZil9fXZhciB0TD1iKCgpPT57QjEoKTskdCgpfSk7ZnVuY3Rpb24gejAodCxlKXtsZXQgYTtyZXR1cm4gaTtmdW5jdGlvbiBpKHIpe3JldHVybiBPZShyKT8odC5lbnRlcigibGluZUVuZGluZyIpLHQuY29uc3VtZShyKSx0LmV4aXQoImxpbmVFbmRpbmciKSxhPSEwLGkpOlFlKHIpP2l0KHQsaSxhPyJsaW5lUHJlZml4IjoibGluZVN1ZmZpeCIpKHIpOmUocil9fXZhciBhTD1iKCgpPT57QjEoKTskdCgpfSk7ZnVuY3Rpb24gbk50KHQsZSxhKXtsZXQgaT10aGlzLHI7cmV0dXJuIHM7ZnVuY3Rpb24gcyhnKXtyZXR1cm4gdC5lbnRlcigiZGVmaW5pdGlvbiIpLG4oZyl9ZnVuY3Rpb24gbihnKXtyZXR1cm4gVTkuY2FsbChpLHQsbyxhLCJkZWZpbml0aW9uTGFiZWwiLCJkZWZpbml0aW9uTGFiZWxNYXJrZXIiLCJkZWZpbml0aW9uTGFiZWxTdHJpbmciKShnKX1mdW5jdGlvbiBvKGcpe3JldHVybiByPUkxKGkuc2xpY2VTZXJpYWxpemUoaS5ldmVudHNbaS5ldmVudHMubGVuZ3RoLTFdWzFdKS5zbGljZSgxLC0xKSksZz09PTU4Pyh0LmVudGVyKCJkZWZpbml0aW9uTWFya2VyIiksdC5jb25zdW1lKGcpLHQuZXhpdCgiZGVmaW5pdGlvbk1hcmtlciIpLGQpOmEoZyl9ZnVuY3Rpb24gZChnKXtyZXR1cm4gX3QoZyk/ejAodCxjKShnKTpjKGcpfWZ1bmN0aW9uIGMoZyl7cmV0dXJuIGo5KHQsaCxhLCJkZWZpbml0aW9uRGVzdGluYXRpb24iLCJkZWZpbml0aW9uRGVzdGluYXRpb25MaXRlcmFsIiwiZGVmaW5pdGlvbkRlc3RpbmF0aW9uTGl0ZXJhbE1hcmtlciIsImRlZmluaXRpb25EZXN0aW5hdGlvblJhdyIsImRlZmluaXRpb25EZXN0aW5hdGlvblN0cmluZyIpKGcpfWZ1bmN0aW9uIGgoZyl7cmV0dXJuIHQuYXR0ZW1wdChzTnQsbCxsKShnKX1mdW5jdGlvbiBsKGcpe3JldHVybiBRZShnKT9pdCh0LGYsIndoaXRlc3BhY2UiKShnKTpmKGcpfWZ1bmN0aW9uIGYoZyl7cmV0dXJuIGc9PT1udWxsfHxPZShnKT8odC5leGl0KCJkZWZpbml0aW9uIiksaS5wYXJzZXIuZGVmaW5lZC5wdXNoKHIpLGUoZykpOmEoZyl9fWZ1bmN0aW9uIG9OdCh0LGUsYSl7cmV0dXJuIGk7ZnVuY3Rpb24gaShvKXtyZXR1cm4gX3Qobyk/ejAodCxyKShvKTphKG8pfWZ1bmN0aW9uIHIobyl7cmV0dXJuIFc5KHQscyxhLCJkZWZpbml0aW9uVGl0bGUiLCJkZWZpbml0aW9uVGl0bGVNYXJrZXIiLCJkZWZpbml0aW9uVGl0bGVTdHJpbmciKShvKX1mdW5jdGlvbiBzKG8pe3JldHVybiBRZShvKT9pdCh0LG4sIndoaXRlc3BhY2UiKShvKTpuKG8pfWZ1bmN0aW9uIG4obyl7cmV0dXJuIG89PT1udWxsfHxPZShvKT9lKG8pOmEobyl9fXZhciBpTCxzTnQsTG5lPWIoKCk9PntKVCgpO2VMKCk7QjEoKTt0TCgpO2FMKCk7JHQoKTtSbigpO2lMPXtuYW1lOiJkZWZpbml0aW9uIix0b2tlbml6ZTpuTnR9LHNOdD17cGFydGlhbDohMCx0b2tlbml6ZTpvTnR9fSk7ZnVuY3Rpb24gbE50KHQsZSxhKXtyZXR1cm4gaTtmdW5jdGlvbiBpKHMpe3JldHVybiB0LmVudGVyKCJoYXJkQnJlYWtFc2NhcGUiKSx0LmNvbnN1bWUocykscn1mdW5jdGlvbiByKHMpe3JldHVybiBPZShzKT8odC5leGl0KCJoYXJkQnJlYWtFc2NhcGUiKSxlKHMpKTphKHMpfX12YXIgckwsJG5lPWIoKCk9PnskdCgpO3JMPXtuYW1lOiJoYXJkQnJlYWtFc2NhcGUiLHRva2VuaXplOmxOdH19KTtmdW5jdGlvbiBjTnQodCxlKXtsZXQgYT10Lmxlbmd0aC0yLGk9MyxyLHM7cmV0dXJuIHRbaV1bMV0udHlwZT09PSJ3aGl0ZXNwYWNlIiYmKGkrPTIpLGEtMj5pJiZ0W2FdWzFdLnR5cGU9PT0id2hpdGVzcGFjZSImJihhLT0yKSx0W2FdWzFdLnR5cGU9PT0iYXR4SGVhZGluZ1NlcXVlbmNlIiYmKGk9PT1hLTF8fGEtND5pJiZ0W2EtMl1bMV0udHlwZT09PSJ3aGl0ZXNwYWNlIikmJihhLT1pKzE9PT1hPzI6NCksYT5pJiYocj17dHlwZToiYXR4SGVhZGluZ1RleHQiLHN0YXJ0OnRbaV1bMV0uc3RhcnQsZW5kOnRbYV1bMV0uZW5kfSxzPXt0eXBlOiJjaHVua1RleHQiLHN0YXJ0OnRbaV1bMV0uc3RhcnQsZW5kOnRbYV1bMV0uZW5kLGNvbnRlbnRUeXBlOiJ0ZXh0In0sUjEodCxpLGEtaSsxLFtbImVudGVyIixyLGVdLFsiZW50ZXIiLHMsZV0sWyJleGl0IixzLGVdLFsiZXhpdCIscixlXV0pKSx0fWZ1bmN0aW9uIGROdCh0LGUsYSl7bGV0IGk9MDtyZXR1cm4gcjtmdW5jdGlvbiByKGgpe3JldHVybiB0LmVudGVyKCJhdHhIZWFkaW5nIikscyhoKX1mdW5jdGlvbiBzKGgpe3JldHVybiB0LmVudGVyKCJhdHhIZWFkaW5nU2VxdWVuY2UiKSxuKGgpfWZ1bmN0aW9uIG4oaCl7cmV0dXJuIGg9PT0zNSYmaSsrPDY/KHQuY29uc3VtZShoKSxuKTpoPT09bnVsbHx8X3QoaCk/KHQuZXhpdCgiYXR4SGVhZGluZ1NlcXVlbmNlIiksbyhoKSk6YShoKX1mdW5jdGlvbiBvKGgpe3JldHVybiBoPT09MzU/KHQuZW50ZXIoImF0eEhlYWRpbmdTZXF1ZW5jZSIpLGQoaCkpOmg9PT1udWxsfHxPZShoKT8odC5leGl0KCJhdHhIZWFkaW5nIiksZShoKSk6UWUoaCk/aXQodCxvLCJ3aGl0ZXNwYWNlIikoaCk6KHQuZW50ZXIoImF0eEhlYWRpbmdUZXh0IiksYyhoKSl9ZnVuY3Rpb24gZChoKXtyZXR1cm4gaD09PTM1Pyh0LmNvbnN1bWUoaCksZCk6KHQuZXhpdCgiYXR4SGVhZGluZ1NlcXVlbmNlIiksbyhoKSl9ZnVuY3Rpb24gYyhoKXtyZXR1cm4gaD09PW51bGx8fGg9PT0zNXx8X3QoaCk/KHQuZXhpdCgiYXR4SGVhZGluZ1RleHQiKSxvKGgpKToodC5jb25zdW1lKGgpLGMpfX12YXIgc0wsQW5lPWIoKCk9PntCMSgpOyR0KCk7QXIoKTtzTD17bmFtZToiaGVhZGluZ0F0eCIscmVzb2x2ZTpjTnQsdG9rZW5pemU6ZE50fX0pO3ZhciBEbmUsbkwsRW5lPWIoKCk9PntEbmU9WyJhZGRyZXNzIiwiYXJ0aWNsZSIsImFzaWRlIiwiYmFzZSIsImJhc2Vmb250IiwiYmxvY2txdW90ZSIsImJvZHkiLCJjYXB0aW9uIiwiY2VudGVyIiwiY29sIiwiY29sZ3JvdXAiLCJkZCIsImRldGFpbHMiLCJkaWFsb2ciLCJkaXIiLCJkaXYiLCJkbCIsImR0IiwiZmllbGRzZXQiLCJmaWdjYXB0aW9uIiwiZmlndXJlIiwiZm9vdGVyIiwiZm9ybSIsImZyYW1lIiwiZnJhbWVzZXQiLCJoMSIsImgyIiwiaDMiLCJoNCIsImg1IiwiaDYiLCJoZWFkIiwiaGVhZGVyIiwiaHIiLCJodG1sIiwiaWZyYW1lIiwibGVnZW5kIiwibGkiLCJsaW5rIiwibWFpbiIsIm1lbnUiLCJtZW51aXRlbSIsIm5hdiIsIm5vZnJhbWVzIiwib2wiLCJvcHRncm91cCIsIm9wdGlvbiIsInAiLCJwYXJhbSIsInNlYXJjaCIsInNlY3Rpb24iLCJzdW1tYXJ5IiwidGFibGUiLCJ0Ym9keSIsInRkIiwidGZvb3QiLCJ0aCIsInRoZWFkIiwidGl0bGUiLCJ0ciIsInRyYWNrIiwidWwiXSxuTD1bInByZSIsInNjcmlwdCIsInN0eWxlIiwidGV4dGFyZWEiXX0pO2Z1bmN0aW9uIHVOdCh0KXtsZXQgZT10Lmxlbmd0aDtmb3IoO2UtLSYmISh0W2VdWzBdPT09ImVudGVyIiYmdFtlXVsxXS50eXBlPT09Imh0bWxGbG93Iik7KTtyZXR1cm4gZT4xJiZ0W2UtMl1bMV0udHlwZT09PSJsaW5lUHJlZml4IiYmKHRbZV1bMV0uc3RhcnQ9dFtlLTJdWzFdLnN0YXJ0LHRbZSsxXVsxXS5zdGFydD10W2UtMl1bMV0uc3RhcnQsdC5zcGxpY2UoZS0yLDIpKSx0fWZ1bmN0aW9uIGZOdCh0LGUsYSl7bGV0IGk9dGhpcyxyLHMsbixvLGQ7cmV0dXJuIGM7ZnVuY3Rpb24gYyhIKXtyZXR1cm4gaChIKX1mdW5jdGlvbiBoKEgpe3JldHVybiB0LmVudGVyKCJodG1sRmxvdyIpLHQuZW50ZXIoImh0bWxGbG93RGF0YSIpLHQuY29uc3VtZShIKSxsfWZ1bmN0aW9uIGwoSCl7cmV0dXJuIEg9PT0zMz8odC5jb25zdW1lKEgpLGYpOkg9PT00Nz8odC5jb25zdW1lKEgpLHM9ITAsdik6SD09PTYzPyh0LmNvbnN1bWUoSCkscj0zLGkuaW50ZXJydXB0P2U6aik6aTIoSCk/KHQuY29uc3VtZShIKSxuPVN0cmluZy5mcm9tQ2hhckNvZGUoSCksbSk6YShIKX1mdW5jdGlvbiBmKEgpe3JldHVybiBIPT09NDU/KHQuY29uc3VtZShIKSxyPTIsZyk6SD09PTkxPyh0LmNvbnN1bWUoSCkscj01LG89MCx5KTppMihIKT8odC5jb25zdW1lKEgpLHI9NCxpLmludGVycnVwdD9lOmopOmEoSCl9ZnVuY3Rpb24gZyhIKXtyZXR1cm4gSD09PTQ1Pyh0LmNvbnN1bWUoSCksaS5pbnRlcnJ1cHQ/ZTpqKTphKEgpfWZ1bmN0aW9uIHkoSCl7bGV0IGNlPSJDREFUQVsiO3JldHVybiBIPT09Y2UuY2hhckNvZGVBdChvKyspPyh0LmNvbnN1bWUoSCksbz09PWNlLmxlbmd0aD9pLmludGVycnVwdD9lOno6eSk6YShIKX1mdW5jdGlvbiB2KEgpe3JldHVybiBpMihIKT8odC5jb25zdW1lKEgpLG49U3RyaW5nLmZyb21DaGFyQ29kZShIKSxtKTphKEgpfWZ1bmN0aW9uIG0oSCl7aWYoSD09PW51bGx8fEg9PT00N3x8SD09PTYyfHxfdChIKSl7bGV0IGNlPUg9PT00NyxrZT1uLnRvTG93ZXJDYXNlKCk7cmV0dXJuIWNlJiYhcyYmbkwuaW5jbHVkZXMoa2UpPyhyPTEsaS5pbnRlcnJ1cHQ/ZShIKTp6KEgpKTpEbmUuaW5jbHVkZXMobi50b0xvd2VyQ2FzZSgpKT8ocj02LGNlPyh0LmNvbnN1bWUoSCkseCk6aS5pbnRlcnJ1cHQ/ZShIKTp6KEgpKToocj03LGkuaW50ZXJydXB0JiYhaS5wYXJzZXIubGF6eVtpLm5vdygpLmxpbmVdP2EoSCk6cz9NKEgpOlMoSCkpfXJldHVybiBIPT09NDV8fFAxKEgpPyh0LmNvbnN1bWUoSCksbis9U3RyaW5nLmZyb21DaGFyQ29kZShIKSxtKTphKEgpfWZ1bmN0aW9uIHgoSCl7cmV0dXJuIEg9PT02Mj8odC5jb25zdW1lKEgpLGkuaW50ZXJydXB0P2U6eik6YShIKX1mdW5jdGlvbiBNKEgpe3JldHVybiBRZShIKT8odC5jb25zdW1lKEgpLE0pOnEoSCl9ZnVuY3Rpb24gUyhIKXtyZXR1cm4gSD09PTQ3Pyh0LmNvbnN1bWUoSCkscSk6SD09PTU4fHxIPT09OTV8fGkyKEgpPyh0LmNvbnN1bWUoSCksRik6UWUoSCk/KHQuY29uc3VtZShIKSxTKTpxKEgpfWZ1bmN0aW9uIEYoSCl7cmV0dXJuIEg9PT00NXx8SD09PTQ2fHxIPT09NTh8fEg9PT05NXx8UDEoSCk/KHQuY29uc3VtZShIKSxGKTpfKEgpfWZ1bmN0aW9uIF8oSCl7cmV0dXJuIEg9PT02MT8odC5jb25zdW1lKEgpLGspOlFlKEgpPyh0LmNvbnN1bWUoSCksXyk6UyhIKX1mdW5jdGlvbiBrKEgpe3JldHVybiBIPT09bnVsbHx8SD09PTYwfHxIPT09NjF8fEg9PT02Mnx8SD09PTk2P2EoSCk6SD09PTM0fHxIPT09Mzk/KHQuY29uc3VtZShIKSxkPUgsTik6UWUoSCk/KHQuY29uc3VtZShIKSxrKTpMKEgpfWZ1bmN0aW9uIE4oSCl7cmV0dXJuIEg9PT1kPyh0LmNvbnN1bWUoSCksZD1udWxsLEEpOkg9PT1udWxsfHxPZShIKT9hKEgpOih0LmNvbnN1bWUoSCksTil9ZnVuY3Rpb24gTChIKXtyZXR1cm4gSD09PW51bGx8fEg9PT0zNHx8SD09PTM5fHxIPT09NDd8fEg9PT02MHx8SD09PTYxfHxIPT09NjJ8fEg9PT05Nnx8X3QoSCk/XyhIKToodC5jb25zdW1lKEgpLEwpfWZ1bmN0aW9uIEEoSCl7cmV0dXJuIEg9PT00N3x8SD09PTYyfHxRZShIKT9TKEgpOmEoSCl9ZnVuY3Rpb24gcShIKXtyZXR1cm4gSD09PTYyPyh0LmNvbnN1bWUoSCksQyk6YShIKX1mdW5jdGlvbiBDKEgpe3JldHVybiBIPT09bnVsbHx8T2UoSCk/eihIKTpRZShIKT8odC5jb25zdW1lKEgpLEMpOmEoSCl9ZnVuY3Rpb24geihIKXtyZXR1cm4gSD09PTQ1JiZyPT09Mj8odC5jb25zdW1lKEgpLFYpOkg9PT02MCYmcj09PTE/KHQuY29uc3VtZShIKSxSKTpIPT09NjImJnI9PT00Pyh0LmNvbnN1bWUoSCksbWUpOkg9PT02MyYmcj09PTM/KHQuY29uc3VtZShIKSxqKTpIPT09OTMmJnI9PT01Pyh0LmNvbnN1bWUoSCkscmUpOk9lKEgpJiYocj09PTZ8fHI9PT03KT8odC5leGl0KCJodG1sRmxvd0RhdGEiKSx0LmNoZWNrKGhOdCx3ZSxFKShIKSk6SD09PW51bGx8fE9lKEgpPyh0LmV4aXQoImh0bWxGbG93RGF0YSIpLEUoSCkpOih0LmNvbnN1bWUoSCkseil9ZnVuY3Rpb24gRShIKXtyZXR1cm4gdC5jaGVjayhwTnQsVCx3ZSkoSCl9ZnVuY3Rpb24gVChIKXtyZXR1cm4gdC5lbnRlcigibGluZUVuZGluZyIpLHQuY29uc3VtZShIKSx0LmV4aXQoImxpbmVFbmRpbmciKSwkfWZ1bmN0aW9uICQoSCl7cmV0dXJuIEg9PT1udWxsfHxPZShIKT9FKEgpOih0LmVudGVyKCJodG1sRmxvd0RhdGEiKSx6KEgpKX1mdW5jdGlvbiBWKEgpe3JldHVybiBIPT09NDU/KHQuY29uc3VtZShIKSxqKTp6KEgpfWZ1bmN0aW9uIFIoSCl7cmV0dXJuIEg9PT00Nz8odC5jb25zdW1lKEgpLG49IiIsVSk6eihIKX1mdW5jdGlvbiBVKEgpe2lmKEg9PT02Mil7bGV0IGNlPW4udG9Mb3dlckNhc2UoKTtyZXR1cm4gbkwuaW5jbHVkZXMoY2UpPyh0LmNvbnN1bWUoSCksbWUpOnooSCl9cmV0dXJuIGkyKEgpJiZuLmxlbmd0aDw4Pyh0LmNvbnN1bWUoSCksbis9U3RyaW5nLmZyb21DaGFyQ29kZShIKSxVKTp6KEgpfWZ1bmN0aW9uIHJlKEgpe3JldHVybiBIPT09OTM/KHQuY29uc3VtZShIKSxqKTp6KEgpfWZ1bmN0aW9uIGooSCl7cmV0dXJuIEg9PT02Mj8odC5jb25zdW1lKEgpLG1lKTpIPT09NDUmJnI9PT0yPyh0LmNvbnN1bWUoSCksaik6eihIKX1mdW5jdGlvbiBtZShIKXtyZXR1cm4gSD09PW51bGx8fE9lKEgpPyh0LmV4aXQoImh0bWxGbG93RGF0YSIpLHdlKEgpKToodC5jb25zdW1lKEgpLG1lKX1mdW5jdGlvbiB3ZShIKXtyZXR1cm4gdC5leGl0KCJodG1sRmxvdyIpLGUoSCl9fWZ1bmN0aW9uIG1OdCh0LGUsYSl7bGV0IGk9dGhpcztyZXR1cm4gcjtmdW5jdGlvbiByKG4pe3JldHVybiBPZShuKT8odC5lbnRlcigibGluZUVuZGluZyIpLHQuY29uc3VtZShuKSx0LmV4aXQoImxpbmVFbmRpbmciKSxzKTphKG4pfWZ1bmN0aW9uIHMobil7cmV0dXJuIGkucGFyc2VyLmxhenlbaS5ub3coKS5saW5lXT9hKG4pOmUobil9fWZ1bmN0aW9uIGdOdCh0LGUsYSl7cmV0dXJuIGk7ZnVuY3Rpb24gaShyKXtyZXR1cm4gdC5lbnRlcigibGluZUVuZGluZyIpLHQuY29uc3VtZShyKSx0LmV4aXQoImxpbmVFbmRpbmciKSx0LmF0dGVtcHQoSXIsZSxhKX19dmFyIG9MLGhOdCxwTnQsUG5lPWIoKCk9PnskdCgpO0VuZSgpO085KCk7b0w9e2NvbmNyZXRlOiEwLG5hbWU6Imh0bWxGbG93IixyZXNvbHZlVG86dU50LHRva2VuaXplOmZOdH0saE50PXtwYXJ0aWFsOiEwLHRva2VuaXplOmdOdH0scE50PXtwYXJ0aWFsOiEwLHRva2VuaXplOm1OdH19KTtmdW5jdGlvbiBiTnQodCxlLGEpe2xldCBpPXRoaXMscixzLG47cmV0dXJuIG87ZnVuY3Rpb24gbyhqKXtyZXR1cm4gdC5lbnRlcigiaHRtbFRleHQiKSx0LmVudGVyKCJodG1sVGV4dERhdGEiKSx0LmNvbnN1bWUoaiksZH1mdW5jdGlvbiBkKGope3JldHVybiBqPT09MzM/KHQuY29uc3VtZShqKSxjKTpqPT09NDc/KHQuY29uc3VtZShqKSxfKTpqPT09NjM/KHQuY29uc3VtZShqKSxTKTppMihqKT8odC5jb25zdW1lKGopLEwpOmEoail9ZnVuY3Rpb24gYyhqKXtyZXR1cm4gaj09PTQ1Pyh0LmNvbnN1bWUoaiksaCk6aj09PTkxPyh0LmNvbnN1bWUoaikscz0wLHkpOmkyKGopPyh0LmNvbnN1bWUoaiksTSk6YShqKX1mdW5jdGlvbiBoKGope3JldHVybiBqPT09NDU/KHQuY29uc3VtZShqKSxnKTphKGopfWZ1bmN0aW9uIGwoail7cmV0dXJuIGo9PT1udWxsP2Eoaik6aj09PTQ1Pyh0LmNvbnN1bWUoaiksZik6T2Uoaik/KG49bCxSKGopKToodC5jb25zdW1lKGopLGwpfWZ1bmN0aW9uIGYoail7cmV0dXJuIGo9PT00NT8odC5jb25zdW1lKGopLGcpOmwoail9ZnVuY3Rpb24gZyhqKXtyZXR1cm4gaj09PTYyP1Yoaik6aj09PTQ1P2Yoaik6bChqKX1mdW5jdGlvbiB5KGope2xldCBtZT0iQ0RBVEFbIjtyZXR1cm4gaj09PW1lLmNoYXJDb2RlQXQocysrKT8odC5jb25zdW1lKGopLHM9PT1tZS5sZW5ndGg/djp5KTphKGopfWZ1bmN0aW9uIHYoail7cmV0dXJuIGo9PT1udWxsP2Eoaik6aj09PTkzPyh0LmNvbnN1bWUoaiksbSk6T2Uoaik/KG49dixSKGopKToodC5jb25zdW1lKGopLHYpfWZ1bmN0aW9uIG0oail7cmV0dXJuIGo9PT05Mz8odC5jb25zdW1lKGopLHgpOnYoail9ZnVuY3Rpb24geChqKXtyZXR1cm4gaj09PTYyP1Yoaik6aj09PTkzPyh0LmNvbnN1bWUoaikseCk6dihqKX1mdW5jdGlvbiBNKGope3JldHVybiBqPT09bnVsbHx8aj09PTYyP1Yoaik6T2Uoaik/KG49TSxSKGopKToodC5jb25zdW1lKGopLE0pfWZ1bmN0aW9uIFMoail7cmV0dXJuIGo9PT1udWxsP2Eoaik6aj09PTYzPyh0LmNvbnN1bWUoaiksRik6T2Uoaik/KG49UyxSKGopKToodC5jb25zdW1lKGopLFMpfWZ1bmN0aW9uIEYoail7cmV0dXJuIGo9PT02Mj9WKGopOlMoail9ZnVuY3Rpb24gXyhqKXtyZXR1cm4gaTIoaik/KHQuY29uc3VtZShqKSxrKTphKGopfWZ1bmN0aW9uIGsoail7cmV0dXJuIGo9PT00NXx8UDEoaik/KHQuY29uc3VtZShqKSxrKTpOKGopfWZ1bmN0aW9uIE4oail7cmV0dXJuIE9lKGopPyhuPU4sUihqKSk6UWUoaik/KHQuY29uc3VtZShqKSxOKTpWKGopfWZ1bmN0aW9uIEwoail7cmV0dXJuIGo9PT00NXx8UDEoaik/KHQuY29uc3VtZShqKSxMKTpqPT09NDd8fGo9PT02Mnx8X3Qoaik/QShqKTphKGopfWZ1bmN0aW9uIEEoail7cmV0dXJuIGo9PT00Nz8odC5jb25zdW1lKGopLFYpOmo9PT01OHx8aj09PTk1fHxpMihqKT8odC5jb25zdW1lKGopLHEpOk9lKGopPyhuPUEsUihqKSk6UWUoaik/KHQuY29uc3VtZShqKSxBKTpWKGopfWZ1bmN0aW9uIHEoail7cmV0dXJuIGo9PT00NXx8aj09PTQ2fHxqPT09NTh8fGo9PT05NXx8UDEoaik/KHQuY29uc3VtZShqKSxxKTpDKGopfWZ1bmN0aW9uIEMoail7cmV0dXJuIGo9PT02MT8odC5jb25zdW1lKGopLHopOk9lKGopPyhuPUMsUihqKSk6UWUoaik/KHQuY29uc3VtZShqKSxDKTpBKGopfWZ1bmN0aW9uIHooail7cmV0dXJuIGo9PT1udWxsfHxqPT09NjB8fGo9PT02MXx8aj09PTYyfHxqPT09OTY/YShqKTpqPT09MzR8fGo9PT0zOT8odC5jb25zdW1lKGopLHI9aixFKTpPZShqKT8obj16LFIoaikpOlFlKGopPyh0LmNvbnN1bWUoaikseik6KHQuY29uc3VtZShqKSxUKX1mdW5jdGlvbiBFKGope3JldHVybiBqPT09cj8odC5jb25zdW1lKGopLHI9dm9pZCAwLCQpOmo9PT1udWxsP2Eoaik6T2Uoaik/KG49RSxSKGopKToodC5jb25zdW1lKGopLEUpfWZ1bmN0aW9uIFQoail7cmV0dXJuIGo9PT1udWxsfHxqPT09MzR8fGo9PT0zOXx8aj09PTYwfHxqPT09NjF8fGo9PT05Nj9hKGopOmo9PT00N3x8aj09PTYyfHxfdChqKT9BKGopOih0LmNvbnN1bWUoaiksVCl9ZnVuY3Rpb24gJChqKXtyZXR1cm4gaj09PTQ3fHxqPT09NjJ8fF90KGopP0Eoaik6YShqKX1mdW5jdGlvbiBWKGope3JldHVybiBqPT09NjI/KHQuY29uc3VtZShqKSx0LmV4aXQoImh0bWxUZXh0RGF0YSIpLHQuZXhpdCgiaHRtbFRleHQiKSxlKTphKGopfWZ1bmN0aW9uIFIoail7cmV0dXJuIHQuZXhpdCgiaHRtbFRleHREYXRhIiksdC5lbnRlcigibGluZUVuZGluZyIpLHQuY29uc3VtZShqKSx0LmV4aXQoImxpbmVFbmRpbmciKSxVfWZ1bmN0aW9uIFUoail7cmV0dXJuIFFlKGopP2l0KHQscmUsImxpbmVQcmVmaXgiLGkucGFyc2VyLmNvbnN0cnVjdHMuZGlzYWJsZS5udWxsLmluY2x1ZGVzKCJjb2RlSW5kZW50ZWQiKT92b2lkIDA6NCkoaik6cmUoail9ZnVuY3Rpb24gcmUoail7cmV0dXJuIHQuZW50ZXIoImh0bWxUZXh0RGF0YSIpLG4oail9fXZhciBsTCxJbmU9YigoKT0+e0IxKCk7JHQoKTtsTD17bmFtZToiaHRtbFRleHQiLHRva2VuaXplOmJOdH19KTtmdW5jdGlvbiB3TnQodCl7bGV0IGU9LTEsYT1bXTtmb3IoOysrZTx0Lmxlbmd0aDspe2xldCBpPXRbZV1bMV07aWYoYS5wdXNoKHRbZV0pLGkudHlwZT09PSJsYWJlbEltYWdlInx8aS50eXBlPT09ImxhYmVsTGluayJ8fGkudHlwZT09PSJsYWJlbEVuZCIpe2xldCByPWkudHlwZT09PSJsYWJlbEltYWdlIj80OjI7aS50eXBlPSJkYXRhIixlKz1yfX1yZXR1cm4gdC5sZW5ndGghPT1hLmxlbmd0aCYmUjEodCwwLHQubGVuZ3RoLGEpLHR9ZnVuY3Rpb24gTU50KHQsZSl7bGV0IGE9dC5sZW5ndGgsaT0wLHIscyxuLG87Zm9yKDthLS07KWlmKHI9dFthXVsxXSxzKXtpZihyLnR5cGU9PT0ibGluayJ8fHIudHlwZT09PSJsYWJlbExpbmsiJiZyLl9pbmFjdGl2ZSlicmVhazt0W2FdWzBdPT09ImVudGVyIiYmci50eXBlPT09ImxhYmVsTGluayImJihyLl9pbmFjdGl2ZT0hMCl9ZWxzZSBpZihuKXtpZih0W2FdWzBdPT09ImVudGVyIiYmKHIudHlwZT09PSJsYWJlbEltYWdlInx8ci50eXBlPT09ImxhYmVsTGluayIpJiYhci5fYmFsYW5jZWQmJihzPWEsci50eXBlIT09ImxhYmVsTGluayIpKXtpPTI7YnJlYWt9fWVsc2Ugci50eXBlPT09ImxhYmVsRW5kIiYmKG49YSk7bGV0IGQ9e3R5cGU6dFtzXVsxXS50eXBlPT09ImxhYmVsTGluayI/ImxpbmsiOiJpbWFnZSIsc3RhcnQ6ey4uLnRbc11bMV0uc3RhcnR9LGVuZDp7Li4udFt0Lmxlbmd0aC0xXVsxXS5lbmR9fSxjPXt0eXBlOiJsYWJlbCIsc3RhcnQ6ey4uLnRbc11bMV0uc3RhcnR9LGVuZDp7Li4udFtuXVsxXS5lbmR9fSxoPXt0eXBlOiJsYWJlbFRleHQiLHN0YXJ0OnsuLi50W3MraSsyXVsxXS5lbmR9LGVuZDp7Li4udFtuLTJdWzFdLnN0YXJ0fX07cmV0dXJuIG89W1siZW50ZXIiLGQsZV0sWyJlbnRlciIsYyxlXV0sbz1aMShvLHQuc2xpY2UocysxLHMraSszKSksbz1aMShvLFtbImVudGVyIixoLGVdXSksbz1aMShvLEhuKGUucGFyc2VyLmNvbnN0cnVjdHMuaW5zaWRlU3Bhbi5udWxsLHQuc2xpY2UocytpKzQsbi0zKSxlKSksbz1aMShvLFtbImV4aXQiLGgsZV0sdFtuLTJdLHRbbi0xXSxbImV4aXQiLGMsZV1dKSxvPVoxKG8sdC5zbGljZShuKzEpKSxvPVoxKG8sW1siZXhpdCIsZCxlXV0pLFIxKHQscyx0Lmxlbmd0aCxvKSx0fWZ1bmN0aW9uIHpOdCh0LGUsYSl7bGV0IGk9dGhpcyxyPWkuZXZlbnRzLmxlbmd0aCxzLG47Zm9yKDtyLS07KWlmKChpLmV2ZW50c1tyXVsxXS50eXBlPT09ImxhYmVsSW1hZ2UifHxpLmV2ZW50c1tyXVsxXS50eXBlPT09ImxhYmVsTGluayIpJiYhaS5ldmVudHNbcl1bMV0uX2JhbGFuY2VkKXtzPWkuZXZlbnRzW3JdWzFdO2JyZWFrfXJldHVybiBvO2Z1bmN0aW9uIG8oZil7cmV0dXJuIHM/cy5faW5hY3RpdmU/bChmKToobj1pLnBhcnNlci5kZWZpbmVkLmluY2x1ZGVzKEkxKGkuc2xpY2VTZXJpYWxpemUoe3N0YXJ0OnMuZW5kLGVuZDppLm5vdygpfSkpKSx0LmVudGVyKCJsYWJlbEVuZCIpLHQuZW50ZXIoImxhYmVsTWFya2VyIiksdC5jb25zdW1lKGYpLHQuZXhpdCgibGFiZWxNYXJrZXIiKSx0LmV4aXQoImxhYmVsRW5kIiksZCk6YShmKX1mdW5jdGlvbiBkKGYpe3JldHVybiBmPT09NDA/dC5hdHRlbXB0KHZOdCxoLG4/aDpsKShmKTpmPT09OTE/dC5hdHRlbXB0KHlOdCxoLG4/YzpsKShmKTpuP2goZik6bChmKX1mdW5jdGlvbiBjKGYpe3JldHVybiB0LmF0dGVtcHQoeE50LGgsbCkoZil9ZnVuY3Rpb24gaChmKXtyZXR1cm4gZShmKX1mdW5jdGlvbiBsKGYpe3JldHVybiBzLl9iYWxhbmNlZD0hMCxhKGYpfX1mdW5jdGlvbiBrTnQodCxlLGEpe3JldHVybiBpO2Z1bmN0aW9uIGkobCl7cmV0dXJuIHQuZW50ZXIoInJlc291cmNlIiksdC5lbnRlcigicmVzb3VyY2VNYXJrZXIiKSx0LmNvbnN1bWUobCksdC5leGl0KCJyZXNvdXJjZU1hcmtlciIpLHJ9ZnVuY3Rpb24gcihsKXtyZXR1cm4gX3QobCk/ejAodCxzKShsKTpzKGwpfWZ1bmN0aW9uIHMobCl7cmV0dXJuIGw9PT00MT9oKGwpOmo5KHQsbixvLCJyZXNvdXJjZURlc3RpbmF0aW9uIiwicmVzb3VyY2VEZXN0aW5hdGlvbkxpdGVyYWwiLCJyZXNvdXJjZURlc3RpbmF0aW9uTGl0ZXJhbE1hcmtlciIsInJlc291cmNlRGVzdGluYXRpb25SYXciLCJyZXNvdXJjZURlc3RpbmF0aW9uU3RyaW5nIiwzMikobCl9ZnVuY3Rpb24gbihsKXtyZXR1cm4gX3QobCk/ejAodCxkKShsKTpoKGwpfWZ1bmN0aW9uIG8obCl7cmV0dXJuIGEobCl9ZnVuY3Rpb24gZChsKXtyZXR1cm4gbD09PTM0fHxsPT09Mzl8fGw9PT00MD9XOSh0LGMsYSwicmVzb3VyY2VUaXRsZSIsInJlc291cmNlVGl0bGVNYXJrZXIiLCJyZXNvdXJjZVRpdGxlU3RyaW5nIikobCk6aChsKX1mdW5jdGlvbiBjKGwpe3JldHVybiBfdChsKT96MCh0LGgpKGwpOmgobCl9ZnVuY3Rpb24gaChsKXtyZXR1cm4gbD09PTQxPyh0LmVudGVyKCJyZXNvdXJjZU1hcmtlciIpLHQuY29uc3VtZShsKSx0LmV4aXQoInJlc291cmNlTWFya2VyIiksdC5leGl0KCJyZXNvdXJjZSIpLGUpOmEobCl9fWZ1bmN0aW9uIFNOdCh0LGUsYSl7bGV0IGk9dGhpcztyZXR1cm4gcjtmdW5jdGlvbiByKG8pe3JldHVybiBVOS5jYWxsKGksdCxzLG4sInJlZmVyZW5jZSIsInJlZmVyZW5jZU1hcmtlciIsInJlZmVyZW5jZVN0cmluZyIpKG8pfWZ1bmN0aW9uIHMobyl7cmV0dXJuIGkucGFyc2VyLmRlZmluZWQuaW5jbHVkZXMoSTEoaS5zbGljZVNlcmlhbGl6ZShpLmV2ZW50c1tpLmV2ZW50cy5sZW5ndGgtMV1bMV0pLnNsaWNlKDEsLTEpKSk/ZShvKTphKG8pfWZ1bmN0aW9uIG4obyl7cmV0dXJuIGEobyl9fWZ1bmN0aW9uIENOdCh0LGUsYSl7cmV0dXJuIGk7ZnVuY3Rpb24gaShzKXtyZXR1cm4gdC5lbnRlcigicmVmZXJlbmNlIiksdC5lbnRlcigicmVmZXJlbmNlTWFya2VyIiksdC5jb25zdW1lKHMpLHQuZXhpdCgicmVmZXJlbmNlTWFya2VyIikscn1mdW5jdGlvbiByKHMpe3JldHVybiBzPT09OTM/KHQuZW50ZXIoInJlZmVyZW5jZU1hcmtlciIpLHQuY29uc3VtZShzKSx0LmV4aXQoInJlZmVyZW5jZU1hcmtlciIpLHQuZXhpdCgicmVmZXJlbmNlIiksZSk6YShzKX19dmFyIGswLHZOdCx5TnQseE50LEc5PWIoKCk9PntKVCgpO2VMKCk7dEwoKTthTCgpOyR0KCk7QXIoKTtSbigpO1Y2KCk7azA9e25hbWU6ImxhYmVsRW5kIixyZXNvbHZlQWxsOndOdCxyZXNvbHZlVG86TU50LHRva2VuaXplOnpOdH0sdk50PXt0b2tlbml6ZTprTnR9LHlOdD17dG9rZW5pemU6U050fSx4TnQ9e3Rva2VuaXplOkNOdH19KTtmdW5jdGlvbiBfTnQodCxlLGEpe2xldCBpPXRoaXM7cmV0dXJuIHI7ZnVuY3Rpb24gcihvKXtyZXR1cm4gdC5lbnRlcigibGFiZWxJbWFnZSIpLHQuZW50ZXIoImxhYmVsSW1hZ2VNYXJrZXIiKSx0LmNvbnN1bWUobyksdC5leGl0KCJsYWJlbEltYWdlTWFya2VyIiksc31mdW5jdGlvbiBzKG8pe3JldHVybiBvPT09OTE/KHQuZW50ZXIoImxhYmVsTWFya2VyIiksdC5jb25zdW1lKG8pLHQuZXhpdCgibGFiZWxNYXJrZXIiKSx0LmV4aXQoImxhYmVsSW1hZ2UiKSxuKTphKG8pfWZ1bmN0aW9uIG4obyl7cmV0dXJuIG89PT05NCYmIl9oaWRkZW5Gb290bm90ZVN1cHBvcnQiaW4gaS5wYXJzZXIuY29uc3RydWN0cz9hKG8pOmUobyl9fXZhciBjTCxObmU9YigoKT0+e0c5KCk7Y0w9e25hbWU6ImxhYmVsU3RhcnRJbWFnZSIscmVzb2x2ZUFsbDprMC5yZXNvbHZlQWxsLHRva2VuaXplOl9OdH19KTtmdW5jdGlvbiBUTnQodCxlLGEpe2xldCBpPXRoaXM7cmV0dXJuIHI7ZnVuY3Rpb24gcihuKXtyZXR1cm4gdC5lbnRlcigibGFiZWxMaW5rIiksdC5lbnRlcigibGFiZWxNYXJrZXIiKSx0LmNvbnN1bWUobiksdC5leGl0KCJsYWJlbE1hcmtlciIpLHQuZXhpdCgibGFiZWxMaW5rIiksc31mdW5jdGlvbiBzKG4pe3JldHVybiBuPT09OTQmJiJfaGlkZGVuRm9vdG5vdGVTdXBwb3J0ImluIGkucGFyc2VyLmNvbnN0cnVjdHM/YShuKTplKG4pfX12YXIgZEwsRm5lPWIoKCk9PntHOSgpO2RMPXtuYW1lOiJsYWJlbFN0YXJ0TGluayIscmVzb2x2ZUFsbDprMC5yZXNvbHZlQWxsLHRva2VuaXplOlROdH19KTtmdW5jdGlvbiBMTnQodCxlKXtyZXR1cm4gYTtmdW5jdGlvbiBhKGkpe3JldHVybiB0LmVudGVyKCJsaW5lRW5kaW5nIiksdC5jb25zdW1lKGkpLHQuZXhpdCgibGluZUVuZGluZyIpLGl0KHQsZSwibGluZVByZWZpeCIpfX12YXIgWTYsT25lPWIoKCk9PntCMSgpOyR0KCk7WTY9e25hbWU6ImxpbmVFbmRpbmciLHRva2VuaXplOkxOdH19KTtmdW5jdGlvbiAkTnQodCxlLGEpe2xldCBpPTAscjtyZXR1cm4gcztmdW5jdGlvbiBzKGMpe3JldHVybiB0LmVudGVyKCJ0aGVtYXRpY0JyZWFrIiksbihjKX1mdW5jdGlvbiBuKGMpe3JldHVybiByPWMsbyhjKX1mdW5jdGlvbiBvKGMpe3JldHVybiBjPT09cj8odC5lbnRlcigidGhlbWF0aWNCcmVha1NlcXVlbmNlIiksZChjKSk6aT49MyYmKGM9PT1udWxsfHxPZShjKSk/KHQuZXhpdCgidGhlbWF0aWNCcmVhayIpLGUoYykpOmEoYyl9ZnVuY3Rpb24gZChjKXtyZXR1cm4gYz09PXI/KHQuY29uc3VtZShjKSxpKyssZCk6KHQuZXhpdCgidGhlbWF0aWNCcmVha1NlcXVlbmNlIiksUWUoYyk/aXQodCxvLCJ3aGl0ZXNwYWNlIikoYyk6byhjKSl9fXZhciBTMCxoTD1iKCgpPT57QjEoKTskdCgpO1MwPXtuYW1lOiJ0aGVtYXRpY0JyZWFrIix0b2tlbml6ZTokTnR9fSk7ZnVuY3Rpb24gRU50KHQsZSxhKXtsZXQgaT10aGlzLHI9aS5ldmVudHNbaS5ldmVudHMubGVuZ3RoLTFdLHM9ciYmclsxXS50eXBlPT09ImxpbmVQcmVmaXgiP3JbMl0uc2xpY2VTZXJpYWxpemUoclsxXSwhMCkubGVuZ3RoOjAsbj0wO3JldHVybiBvO2Z1bmN0aW9uIG8oZyl7bGV0IHk9aS5jb250YWluZXJTdGF0ZS50eXBlfHwoZz09PTQyfHxnPT09NDN8fGc9PT00NT8ibGlzdFVub3JkZXJlZCI6Imxpc3RPcmRlcmVkIik7aWYoeT09PSJsaXN0VW5vcmRlcmVkIj8haS5jb250YWluZXJTdGF0ZS5tYXJrZXJ8fGc9PT1pLmNvbnRhaW5lclN0YXRlLm1hcmtlcjpPNihnKSl7aWYoaS5jb250YWluZXJTdGF0ZS50eXBlfHwoaS5jb250YWluZXJTdGF0ZS50eXBlPXksdC5lbnRlcih5LHtfY29udGFpbmVyOiEwfSkpLHk9PT0ibGlzdFVub3JkZXJlZCIpcmV0dXJuIHQuZW50ZXIoImxpc3RJdGVtUHJlZml4IiksZz09PTQyfHxnPT09NDU/dC5jaGVjayhTMCxhLGMpKGcpOmMoZyk7aWYoIWkuaW50ZXJydXB0fHxnPT09NDkpcmV0dXJuIHQuZW50ZXIoImxpc3RJdGVtUHJlZml4IiksdC5lbnRlcigibGlzdEl0ZW1WYWx1ZSIpLGQoZyl9cmV0dXJuIGEoZyl9ZnVuY3Rpb24gZChnKXtyZXR1cm4gTzYoZykmJisrbjwxMD8odC5jb25zdW1lKGcpLGQpOighaS5pbnRlcnJ1cHR8fG48MikmJihpLmNvbnRhaW5lclN0YXRlLm1hcmtlcj9nPT09aS5jb250YWluZXJTdGF0ZS5tYXJrZXI6Zz09PTQxfHxnPT09NDYpPyh0LmV4aXQoImxpc3RJdGVtVmFsdWUiKSxjKGcpKTphKGcpfWZ1bmN0aW9uIGMoZyl7cmV0dXJuIHQuZW50ZXIoImxpc3RJdGVtTWFya2VyIiksdC5jb25zdW1lKGcpLHQuZXhpdCgibGlzdEl0ZW1NYXJrZXIiKSxpLmNvbnRhaW5lclN0YXRlLm1hcmtlcj1pLmNvbnRhaW5lclN0YXRlLm1hcmtlcnx8Zyx0LmNoZWNrKElyLGkuaW50ZXJydXB0P2E6aCx0LmF0dGVtcHQoQU50LGYsbCkpfWZ1bmN0aW9uIGgoZyl7cmV0dXJuIGkuY29udGFpbmVyU3RhdGUuaW5pdGlhbEJsYW5rTGluZT0hMCxzKyssZihnKX1mdW5jdGlvbiBsKGcpe3JldHVybiBRZShnKT8odC5lbnRlcigibGlzdEl0ZW1QcmVmaXhXaGl0ZXNwYWNlIiksdC5jb25zdW1lKGcpLHQuZXhpdCgibGlzdEl0ZW1QcmVmaXhXaGl0ZXNwYWNlIiksZik6YShnKX1mdW5jdGlvbiBmKGcpe3JldHVybiBpLmNvbnRhaW5lclN0YXRlLnNpemU9cytpLnNsaWNlU2VyaWFsaXplKHQuZXhpdCgibGlzdEl0ZW1QcmVmaXgiKSwhMCkubGVuZ3RoLGUoZyl9fWZ1bmN0aW9uIFBOdCh0LGUsYSl7bGV0IGk9dGhpcztyZXR1cm4gaS5jb250YWluZXJTdGF0ZS5fY2xvc2VGbG93PXZvaWQgMCx0LmNoZWNrKElyLHIscyk7ZnVuY3Rpb24gcihvKXtyZXR1cm4gaS5jb250YWluZXJTdGF0ZS5mdXJ0aGVyQmxhbmtMaW5lcz1pLmNvbnRhaW5lclN0YXRlLmZ1cnRoZXJCbGFua0xpbmVzfHxpLmNvbnRhaW5lclN0YXRlLmluaXRpYWxCbGFua0xpbmUsaXQodCxlLCJsaXN0SXRlbUluZGVudCIsaS5jb250YWluZXJTdGF0ZS5zaXplKzEpKG8pfWZ1bmN0aW9uIHMobyl7cmV0dXJuIGkuY29udGFpbmVyU3RhdGUuZnVydGhlckJsYW5rTGluZXN8fCFRZShvKT8oaS5jb250YWluZXJTdGF0ZS5mdXJ0aGVyQmxhbmtMaW5lcz12b2lkIDAsaS5jb250YWluZXJTdGF0ZS5pbml0aWFsQmxhbmtMaW5lPXZvaWQgMCxuKG8pKTooaS5jb250YWluZXJTdGF0ZS5mdXJ0aGVyQmxhbmtMaW5lcz12b2lkIDAsaS5jb250YWluZXJTdGF0ZS5pbml0aWFsQmxhbmtMaW5lPXZvaWQgMCx0LmF0dGVtcHQoRE50LGUsbikobykpfWZ1bmN0aW9uIG4obyl7cmV0dXJuIGkuY29udGFpbmVyU3RhdGUuX2Nsb3NlRmxvdz0hMCxpLmludGVycnVwdD12b2lkIDAsaXQodCx0LmF0dGVtcHQoVTIsZSxhKSwibGluZVByZWZpeCIsaS5wYXJzZXIuY29uc3RydWN0cy5kaXNhYmxlLm51bGwuaW5jbHVkZXMoImNvZGVJbmRlbnRlZCIpP3ZvaWQgMDo0KShvKX19ZnVuY3Rpb24gSU50KHQsZSxhKXtsZXQgaT10aGlzO3JldHVybiBpdCh0LHIsImxpc3RJdGVtSW5kZW50IixpLmNvbnRhaW5lclN0YXRlLnNpemUrMSk7ZnVuY3Rpb24gcihzKXtsZXQgbj1pLmV2ZW50c1tpLmV2ZW50cy5sZW5ndGgtMV07cmV0dXJuIG4mJm5bMV0udHlwZT09PSJsaXN0SXRlbUluZGVudCImJm5bMl0uc2xpY2VTZXJpYWxpemUoblsxXSwhMCkubGVuZ3RoPT09aS5jb250YWluZXJTdGF0ZS5zaXplP2Uocyk6YShzKX19ZnVuY3Rpb24gTk50KHQpe3QuZXhpdCh0aGlzLmNvbnRhaW5lclN0YXRlLnR5cGUpfWZ1bmN0aW9uIEZOdCh0LGUsYSl7bGV0IGk9dGhpcztyZXR1cm4gaXQodCxyLCJsaXN0SXRlbVByZWZpeFdoaXRlc3BhY2UiLGkucGFyc2VyLmNvbnN0cnVjdHMuZGlzYWJsZS5udWxsLmluY2x1ZGVzKCJjb2RlSW5kZW50ZWQiKT92b2lkIDA6NSk7ZnVuY3Rpb24gcihzKXtsZXQgbj1pLmV2ZW50c1tpLmV2ZW50cy5sZW5ndGgtMV07cmV0dXJuIVFlKHMpJiZuJiZuWzFdLnR5cGU9PT0ibGlzdEl0ZW1QcmVmaXhXaGl0ZXNwYWNlIj9lKHMpOmEocyl9fXZhciBVMixBTnQsRE50LFJuZT1iKCgpPT57QjEoKTskdCgpO085KCk7aEwoKTtVMj17Y29udGludWF0aW9uOnt0b2tlbml6ZTpQTnR9LGV4aXQ6Tk50LG5hbWU6Imxpc3QiLHRva2VuaXplOkVOdH0sQU50PXtwYXJ0aWFsOiEwLHRva2VuaXplOkZOdH0sRE50PXtwYXJ0aWFsOiEwLHRva2VuaXplOklOdH19KTtmdW5jdGlvbiBPTnQodCxlKXtsZXQgYT10Lmxlbmd0aCxpLHIscztmb3IoO2EtLTspaWYodFthXVswXT09PSJlbnRlciIpe2lmKHRbYV1bMV0udHlwZT09PSJjb250ZW50Iil7aT1hO2JyZWFrfXRbYV1bMV0udHlwZT09PSJwYXJhZ3JhcGgiJiYocj1hKX1lbHNlIHRbYV1bMV0udHlwZT09PSJjb250ZW50IiYmdC5zcGxpY2UoYSwxKSwhcyYmdFthXVsxXS50eXBlPT09ImRlZmluaXRpb24iJiYocz1hKTtsZXQgbj17dHlwZToic2V0ZXh0SGVhZGluZyIsc3RhcnQ6ey4uLnRbaV1bMV0uc3RhcnR9LGVuZDp7Li4udFt0Lmxlbmd0aC0xXVsxXS5lbmR9fTtyZXR1cm4gdFtyXVsxXS50eXBlPSJzZXRleHRIZWFkaW5nVGV4dCIscz8odC5zcGxpY2UociwwLFsiZW50ZXIiLG4sZV0pLHQuc3BsaWNlKHMrMSwwLFsiZXhpdCIsdFtpXVsxXSxlXSksdFtpXVsxXS5lbmQ9ey4uLnRbc11bMV0uZW5kfSk6dFtpXVsxXT1uLHQucHVzaChbImV4aXQiLG4sZV0pLHR9ZnVuY3Rpb24gUk50KHQsZSxhKXtsZXQgaT10aGlzLHI7cmV0dXJuIHM7ZnVuY3Rpb24gcyhjKXtsZXQgaD1pLmV2ZW50cy5sZW5ndGgsbDtmb3IoO2gtLTspaWYoaS5ldmVudHNbaF1bMV0udHlwZSE9PSJsaW5lRW5kaW5nIiYmaS5ldmVudHNbaF1bMV0udHlwZSE9PSJsaW5lUHJlZml4IiYmaS5ldmVudHNbaF1bMV0udHlwZSE9PSJjb250ZW50Iil7bD1pLmV2ZW50c1toXVsxXS50eXBlPT09InBhcmFncmFwaCI7YnJlYWt9cmV0dXJuIWkucGFyc2VyLmxhenlbaS5ub3coKS5saW5lXSYmKGkuaW50ZXJydXB0fHxsKT8odC5lbnRlcigic2V0ZXh0SGVhZGluZ0xpbmUiKSxyPWMsbihjKSk6YShjKX1mdW5jdGlvbiBuKGMpe3JldHVybiB0LmVudGVyKCJzZXRleHRIZWFkaW5nTGluZVNlcXVlbmNlIiksbyhjKX1mdW5jdGlvbiBvKGMpe3JldHVybiBjPT09cj8odC5jb25zdW1lKGMpLG8pOih0LmV4aXQoInNldGV4dEhlYWRpbmdMaW5lU2VxdWVuY2UiKSxRZShjKT9pdCh0LGQsImxpbmVTdWZmaXgiKShjKTpkKGMpKX1mdW5jdGlvbiBkKGMpe3JldHVybiBjPT09bnVsbHx8T2UoYyk/KHQuZXhpdCgic2V0ZXh0SGVhZGluZ0xpbmUiKSxlKGMpKTphKGMpfX12YXIgWTksQm5lPWIoKCk9PntCMSgpOyR0KCk7WTk9e25hbWU6InNldGV4dFVuZGVybGluZSIscmVzb2x2ZVRvOk9OdCx0b2tlbml6ZTpSTnR9fSk7dmFyIFo5PWIoKCk9Pnt5bmUoKTt4bmUoKTtPOSgpO3duZSgpO01uZSgpO3puZSgpO1NuZSgpO0NuZSgpO19uZSgpO1RuZSgpO0xuZSgpOyRuZSgpO0FuZSgpO1BuZSgpO0luZSgpO0c5KCk7Tm5lKCk7Rm5lKCk7T25lKCk7Um5lKCk7Qm5lKCk7aEwoKX0pO2Z1bmN0aW9uIHBMKCl7cmV0dXJue2RvY3VtZW50Ons5MTp7bmFtZToiZ2ZtRm9vdG5vdGVEZWZpbml0aW9uIix0b2tlbml6ZTpqTnQsY29udGludWF0aW9uOnt0b2tlbml6ZTpVTnR9LGV4aXQ6V050fX0sdGV4dDp7OTE6e25hbWU6ImdmbUZvb3Rub3RlQ2FsbCIsdG9rZW5pemU6Vk50fSw5Mzp7bmFtZToiZ2ZtUG90ZW50aWFsRm9vdG5vdGVDYWxsIixhZGQ6ImFmdGVyIix0b2tlbml6ZTpITnQscmVzb2x2ZVRvOnFOdH19fX1mdW5jdGlvbiBITnQodCxlLGEpe2xldCBpPXRoaXMscj1pLmV2ZW50cy5sZW5ndGgscz1pLnBhcnNlci5nZm1Gb290bm90ZXN8fChpLnBhcnNlci5nZm1Gb290bm90ZXM9W10pLG47Zm9yKDtyLS07KXtsZXQgZD1pLmV2ZW50c1tyXVsxXTtpZihkLnR5cGU9PT0ibGFiZWxJbWFnZSIpe249ZDticmVha31pZihkLnR5cGU9PT0iZ2ZtRm9vdG5vdGVDYWxsInx8ZC50eXBlPT09ImxhYmVsTGluayJ8fGQudHlwZT09PSJsYWJlbCJ8fGQudHlwZT09PSJpbWFnZSJ8fGQudHlwZT09PSJsaW5rIilicmVha31yZXR1cm4gbztmdW5jdGlvbiBvKGQpe2lmKCFufHwhbi5fYmFsYW5jZWQpcmV0dXJuIGEoZCk7bGV0IGM9STEoaS5zbGljZVNlcmlhbGl6ZSh7c3RhcnQ6bi5lbmQsZW5kOmkubm93KCl9KSk7cmV0dXJuIGMuY29kZVBvaW50QXQoMCkhPT05NHx8IXMuaW5jbHVkZXMoYy5zbGljZSgxKSk/YShkKToodC5lbnRlcigiZ2ZtRm9vdG5vdGVDYWxsTGFiZWxNYXJrZXIiKSx0LmNvbnN1bWUoZCksdC5leGl0KCJnZm1Gb290bm90ZUNhbGxMYWJlbE1hcmtlciIpLGUoZCkpfX1mdW5jdGlvbiBxTnQodCxlKXtsZXQgYT10Lmxlbmd0aCxpO2Zvcig7YS0tOylpZih0W2FdWzFdLnR5cGU9PT0ibGFiZWxJbWFnZSImJnRbYV1bMF09PT0iZW50ZXIiKXtpPXRbYV1bMV07YnJlYWt9dFthKzFdWzFdLnR5cGU9ImRhdGEiLHRbYSszXVsxXS50eXBlPSJnZm1Gb290bm90ZUNhbGxMYWJlbE1hcmtlciI7bGV0IHI9e3R5cGU6ImdmbUZvb3Rub3RlQ2FsbCIsc3RhcnQ6T2JqZWN0LmFzc2lnbih7fSx0W2ErM11bMV0uc3RhcnQpLGVuZDpPYmplY3QuYXNzaWduKHt9LHRbdC5sZW5ndGgtMV1bMV0uZW5kKX0scz17dHlwZToiZ2ZtRm9vdG5vdGVDYWxsTWFya2VyIixzdGFydDpPYmplY3QuYXNzaWduKHt9LHRbYSszXVsxXS5lbmQpLGVuZDpPYmplY3QuYXNzaWduKHt9LHRbYSszXVsxXS5lbmQpfTtzLmVuZC5jb2x1bW4rKyxzLmVuZC5vZmZzZXQrKyxzLmVuZC5fYnVmZmVySW5kZXgrKztsZXQgbj17dHlwZToiZ2ZtRm9vdG5vdGVDYWxsU3RyaW5nIixzdGFydDpPYmplY3QuYXNzaWduKHt9LHMuZW5kKSxlbmQ6T2JqZWN0LmFzc2lnbih7fSx0W3QubGVuZ3RoLTFdWzFdLnN0YXJ0KX0sbz17dHlwZToiY2h1bmtTdHJpbmciLGNvbnRlbnRUeXBlOiJzdHJpbmciLHN0YXJ0Ok9iamVjdC5hc3NpZ24oe30sbi5zdGFydCksZW5kOk9iamVjdC5hc3NpZ24oe30sbi5lbmQpfSxkPVt0W2ErMV0sdFthKzJdLFsiZW50ZXIiLHIsZV0sdFthKzNdLHRbYSs0XSxbImVudGVyIixzLGVdLFsiZXhpdCIscyxlXSxbImVudGVyIixuLGVdLFsiZW50ZXIiLG8sZV0sWyJleGl0IixvLGVdLFsiZXhpdCIsbixlXSx0W3QubGVuZ3RoLTJdLHRbdC5sZW5ndGgtMV0sWyJleGl0IixyLGVdXTtyZXR1cm4gdC5zcGxpY2UoYSx0Lmxlbmd0aC1hKzEsLi4uZCksdH1mdW5jdGlvbiBWTnQodCxlLGEpe2xldCBpPXRoaXMscj1pLnBhcnNlci5nZm1Gb290bm90ZXN8fChpLnBhcnNlci5nZm1Gb290bm90ZXM9W10pLHM9MCxuO3JldHVybiBvO2Z1bmN0aW9uIG8obCl7cmV0dXJuIHQuZW50ZXIoImdmbUZvb3Rub3RlQ2FsbCIpLHQuZW50ZXIoImdmbUZvb3Rub3RlQ2FsbExhYmVsTWFya2VyIiksdC5jb25zdW1lKGwpLHQuZXhpdCgiZ2ZtRm9vdG5vdGVDYWxsTGFiZWxNYXJrZXIiKSxkfWZ1bmN0aW9uIGQobCl7cmV0dXJuIGwhPT05ND9hKGwpOih0LmVudGVyKCJnZm1Gb290bm90ZUNhbGxNYXJrZXIiKSx0LmNvbnN1bWUobCksdC5leGl0KCJnZm1Gb290bm90ZUNhbGxNYXJrZXIiKSx0LmVudGVyKCJnZm1Gb290bm90ZUNhbGxTdHJpbmciKSx0LmVudGVyKCJjaHVua1N0cmluZyIpLmNvbnRlbnRUeXBlPSJzdHJpbmciLGMpfWZ1bmN0aW9uIGMobCl7aWYocz45OTl8fGw9PT05MyYmIW58fGw9PT1udWxsfHxsPT09OTF8fF90KGwpKXJldHVybiBhKGwpO2lmKGw9PT05Myl7dC5leGl0KCJjaHVua1N0cmluZyIpO2xldCBmPXQuZXhpdCgiZ2ZtRm9vdG5vdGVDYWxsU3RyaW5nIik7cmV0dXJuIHIuaW5jbHVkZXMoSTEoaS5zbGljZVNlcmlhbGl6ZShmKSkpPyh0LmVudGVyKCJnZm1Gb290bm90ZUNhbGxMYWJlbE1hcmtlciIpLHQuY29uc3VtZShsKSx0LmV4aXQoImdmbUZvb3Rub3RlQ2FsbExhYmVsTWFya2VyIiksdC5leGl0KCJnZm1Gb290bm90ZUNhbGwiKSxlKTphKGwpfXJldHVybiBfdChsKXx8KG49ITApLHMrKyx0LmNvbnN1bWUobCksbD09PTkyP2g6Y31mdW5jdGlvbiBoKGwpe3JldHVybiBsPT09OTF8fGw9PT05Mnx8bD09PTkzPyh0LmNvbnN1bWUobCkscysrLGMpOmMobCl9fWZ1bmN0aW9uIGpOdCh0LGUsYSl7bGV0IGk9dGhpcyxyPWkucGFyc2VyLmdmbUZvb3Rub3Rlc3x8KGkucGFyc2VyLmdmbUZvb3Rub3Rlcz1bXSkscyxuPTAsbztyZXR1cm4gZDtmdW5jdGlvbiBkKHkpe3JldHVybiB0LmVudGVyKCJnZm1Gb290bm90ZURlZmluaXRpb24iKS5fY29udGFpbmVyPSEwLHQuZW50ZXIoImdmbUZvb3Rub3RlRGVmaW5pdGlvbkxhYmVsIiksdC5lbnRlcigiZ2ZtRm9vdG5vdGVEZWZpbml0aW9uTGFiZWxNYXJrZXIiKSx0LmNvbnN1bWUoeSksdC5leGl0KCJnZm1Gb290bm90ZURlZmluaXRpb25MYWJlbE1hcmtlciIpLGN9ZnVuY3Rpb24gYyh5KXtyZXR1cm4geT09PTk0Pyh0LmVudGVyKCJnZm1Gb290bm90ZURlZmluaXRpb25NYXJrZXIiKSx0LmNvbnN1bWUoeSksdC5leGl0KCJnZm1Gb290bm90ZURlZmluaXRpb25NYXJrZXIiKSx0LmVudGVyKCJnZm1Gb290bm90ZURlZmluaXRpb25MYWJlbFN0cmluZyIpLHQuZW50ZXIoImNodW5rU3RyaW5nIikuY29udGVudFR5cGU9InN0cmluZyIsaCk6YSh5KX1mdW5jdGlvbiBoKHkpe2lmKG4+OTk5fHx5PT09OTMmJiFvfHx5PT09bnVsbHx8eT09PTkxfHxfdCh5KSlyZXR1cm4gYSh5KTtpZih5PT09OTMpe3QuZXhpdCgiY2h1bmtTdHJpbmciKTtsZXQgdj10LmV4aXQoImdmbUZvb3Rub3RlRGVmaW5pdGlvbkxhYmVsU3RyaW5nIik7cmV0dXJuIHM9STEoaS5zbGljZVNlcmlhbGl6ZSh2KSksdC5lbnRlcigiZ2ZtRm9vdG5vdGVEZWZpbml0aW9uTGFiZWxNYXJrZXIiKSx0LmNvbnN1bWUoeSksdC5leGl0KCJnZm1Gb290bm90ZURlZmluaXRpb25MYWJlbE1hcmtlciIpLHQuZXhpdCgiZ2ZtRm9vdG5vdGVEZWZpbml0aW9uTGFiZWwiKSxmfXJldHVybiBfdCh5KXx8KG89ITApLG4rKyx0LmNvbnN1bWUoeSkseT09PTkyP2w6aH1mdW5jdGlvbiBsKHkpe3JldHVybiB5PT09OTF8fHk9PT05Mnx8eT09PTkzPyh0LmNvbnN1bWUoeSksbisrLGgpOmgoeSl9ZnVuY3Rpb24gZih5KXtyZXR1cm4geT09PTU4Pyh0LmVudGVyKCJkZWZpbml0aW9uTWFya2VyIiksdC5jb25zdW1lKHkpLHQuZXhpdCgiZGVmaW5pdGlvbk1hcmtlciIpLHIuaW5jbHVkZXMocyl8fHIucHVzaChzKSxpdCh0LGcsImdmbUZvb3Rub3RlRGVmaW5pdGlvbldoaXRlc3BhY2UiKSk6YSh5KX1mdW5jdGlvbiBnKHkpe3JldHVybiBlKHkpfX1mdW5jdGlvbiBVTnQodCxlLGEpe3JldHVybiB0LmNoZWNrKElyLGUsdC5hdHRlbXB0KEJOdCxlLGEpKX1mdW5jdGlvbiBXTnQodCl7dC5leGl0KCJnZm1Gb290bm90ZURlZmluaXRpb24iKX1mdW5jdGlvbiBHTnQodCxlLGEpe2xldCBpPXRoaXM7cmV0dXJuIGl0KHQsciwiZ2ZtRm9vdG5vdGVEZWZpbml0aW9uSW5kZW50Iiw1KTtmdW5jdGlvbiByKHMpe2xldCBuPWkuZXZlbnRzW2kuZXZlbnRzLmxlbmd0aC0xXTtyZXR1cm4gbiYmblsxXS50eXBlPT09ImdmbUZvb3Rub3RlRGVmaW5pdGlvbkluZGVudCImJm5bMl0uc2xpY2VTZXJpYWxpemUoblsxXSwhMCkubGVuZ3RoPT09ND9lKHMpOmEocyl9fXZhciBCTnQsSG5lPWIoKCk9PntaOSgpO0IxKCk7JHQoKTtSbigpO0JOdD17dG9rZW5pemU6R050LHBhcnRpYWw6ITB9fSk7ZnVuY3Rpb24gcW5lKHQsZSl7cmV0dXJuIkJhY2sgdG8gcmVmZXJlbmNlICIrKHQrMSkrKGU+MT8iLSIrZToiIil9ZnVuY3Rpb24gdUwodCl7bGV0IGU9dHx8Wk50LGE9ZS5sYWJlbHx8IkZvb3Rub3RlcyIsaT1lLmxhYmVsVGFnTmFtZXx8ImgyIixyPWUubGFiZWxBdHRyaWJ1dGVzPT09bnVsbHx8ZS5sYWJlbEF0dHJpYnV0ZXM9PT12b2lkIDA/J2NsYXNzPSJzci1vbmx5Iic6ZS5sYWJlbEF0dHJpYnV0ZXMscz1lLmJhY2tMYWJlbHx8cW5lLG49ZS5jbG9iYmVyUHJlZml4PT09bnVsbHx8ZS5jbG9iYmVyUHJlZml4PT09dm9pZCAwPyJ1c2VyLWNvbnRlbnQtIjplLmNsb2JiZXJQcmVmaXg7cmV0dXJue2VudGVyOntnZm1Gb290bm90ZURlZmluaXRpb24oKXt0aGlzLmdldERhdGEoInRpZ2h0U3RhY2siKS5wdXNoKCExKX0sZ2ZtRm9vdG5vdGVEZWZpbml0aW9uTGFiZWxTdHJpbmcoKXt0aGlzLmJ1ZmZlcigpfSxnZm1Gb290bm90ZUNhbGxTdHJpbmcoKXt0aGlzLmJ1ZmZlcigpfX0sZXhpdDp7Z2ZtRm9vdG5vdGVEZWZpbml0aW9uKCl7bGV0IG89dGhpcy5nZXREYXRhKCJnZm1Gb290bm90ZURlZmluaXRpb25zIiksZD10aGlzLmdldERhdGEoImdmbUZvb3Rub3RlRGVmaW5pdGlvblN0YWNrIiksYz10aGlzLmdldERhdGEoInRpZ2h0U3RhY2siKSxoPWQucG9wKCksbD10aGlzLnJlc3VtZSgpO298fHRoaXMuc2V0RGF0YSgiZ2ZtRm9vdG5vdGVEZWZpbml0aW9ucyIsbz17fSksWU50LmNhbGwobyxoKXx8KG9baF09bCksYy5wb3AoKSx0aGlzLnNldERhdGEoInNsdXJwT25lTGluZUVuZGluZyIsITApLHRoaXMuc2V0RGF0YSgibGFzdFdhc1RhZyIpfSxnZm1Gb290bm90ZURlZmluaXRpb25MYWJlbFN0cmluZyhvKXtsZXQgZD10aGlzLmdldERhdGEoImdmbUZvb3Rub3RlRGVmaW5pdGlvblN0YWNrIik7ZHx8dGhpcy5zZXREYXRhKCJnZm1Gb290bm90ZURlZmluaXRpb25TdGFjayIsZD1bXSksZC5wdXNoKEkxKHRoaXMuc2xpY2VTZXJpYWxpemUobykpKSx0aGlzLnJlc3VtZSgpLHRoaXMuYnVmZmVyKCl9LGdmbUZvb3Rub3RlQ2FsbFN0cmluZyhvKXtsZXQgZD10aGlzLmdldERhdGEoImdmbUZvb3Rub3RlQ2FsbE9yZGVyIiksYz10aGlzLmdldERhdGEoImdmbUZvb3Rub3RlQ2FsbENvdW50cyIpLGg9STEodGhpcy5zbGljZVNlcmlhbGl6ZShvKSksbDt0aGlzLnJlc3VtZSgpLGR8fHRoaXMuc2V0RGF0YSgiZ2ZtRm9vdG5vdGVDYWxsT3JkZXIiLGQ9W10pLGN8fHRoaXMuc2V0RGF0YSgiZ2ZtRm9vdG5vdGVDYWxsQ291bnRzIixjPXt9KTtsZXQgZj1kLmluZGV4T2YoaCksZz1FcihoLnRvTG93ZXJDYXNlKCkpO2Y9PT0tMT8oZC5wdXNoKGgpLGNbaF09MSxsPWQubGVuZ3RoKTooY1toXSsrLGw9ZisxKTtsZXQgeT1jW2hdO3RoaXMudGFnKCc8c3VwPjxhIGhyZWY9IiMnK24rImZuLSIrZysnIiBpZD0iJytuKyJmbnJlZi0iK2crKHk+MT8iLSIreToiIikrJyIgZGF0YS1mb290bm90ZS1yZWY9IiIgYXJpYS1kZXNjcmliZWRieT0iZm9vdG5vdGUtbGFiZWwiPicrU3RyaW5nKGwpKyI8L2E+PC9zdXA+Iil9LG51bGwoKXtsZXQgbz10aGlzLmdldERhdGEoImdmbUZvb3Rub3RlQ2FsbE9yZGVyIil8fFtdLGQ9dGhpcy5nZXREYXRhKCJnZm1Gb290bm90ZUNhbGxDb3VudHMiKXx8e30sYz10aGlzLmdldERhdGEoImdmbUZvb3Rub3RlRGVmaW5pdGlvbnMiKXx8e30saD0tMTtmb3Ioby5sZW5ndGg+MCYmKHRoaXMubGluZUVuZGluZ0lmTmVlZGVkKCksdGhpcy50YWcoJzxzZWN0aW9uIGRhdGEtZm9vdG5vdGVzPSIiIGNsYXNzPSJmb290bm90ZXMiPjwnK2krJyBpZD0iZm9vdG5vdGUtbGFiZWwiJysocj8iICIrcjoiIikrIj4iKSx0aGlzLnJhdyh0aGlzLmVuY29kZShhKSksdGhpcy50YWcoIjwvIitpKyI+IiksdGhpcy5saW5lRW5kaW5nSWZOZWVkZWQoKSx0aGlzLnRhZygiPG9sPiIpKTsrK2g8by5sZW5ndGg7KXtsZXQgbD1vW2hdLGY9RXIobC50b0xvd2VyQ2FzZSgpKSxnPTAseT1bXTtmb3IoOysrZzw9ZFtsXTspeS5wdXNoKCc8YSBocmVmPSIjJytuKyJmbnJlZi0iK2YrKGc+MT8iLSIrZzoiIikrJyIgZGF0YS1mb290bm90ZS1iYWNrcmVmPSIiIGFyaWEtbGFiZWw9IicrdGhpcy5lbmNvZGUodHlwZW9mIHM9PSJzdHJpbmciP3M6cyhoLGcpKSsnIiBjbGFzcz0iZGF0YS1mb290bm90ZS1iYWNrcmVmIj5cdTIxQTknKyhnPjE/IjxzdXA+IitnKyI8L3N1cD4iOiIiKSsiPC9hPiIpO2xldCB2PXkuam9pbigiICIpLG09ITE7dGhpcy5saW5lRW5kaW5nSWZOZWVkZWQoKSx0aGlzLnRhZygnPGxpIGlkPSInK24rImZuLSIrZisnIj4nKSx0aGlzLmxpbmVFbmRpbmdJZk5lZWRlZCgpLHRoaXMudGFnKGNbbF0ucmVwbGFjZSgvPFwvcD4oPzpccj9cbnxccik/JC8sZnVuY3Rpb24oeCl7cmV0dXJuIG09ITAsIiAiK3YreH0pKSxtfHwodGhpcy5saW5lRW5kaW5nSWZOZWVkZWQoKSx0aGlzLnRhZyh2KSksdGhpcy5saW5lRW5kaW5nSWZOZWVkZWQoKSx0aGlzLnRhZygiPC9saT4iKX1vLmxlbmd0aD4wJiYodGhpcy5saW5lRW5kaW5nSWZOZWVkZWQoKSx0aGlzLnRhZygiPC9vbD4iKSx0aGlzLmxpbmVFbmRpbmdJZk5lZWRlZCgpLHRoaXMudGFnKCI8L3NlY3Rpb24+IikpfX19fXZhciBZTnQsWk50LFZuZT1iKCgpPT57Um4oKTtQcigpO1lOdD17fS5oYXNPd25Qcm9wZXJ0eSxaTnQ9e319KTt2YXIgam5lPWIoKCk9PntIbmUoKTtWbmUoKX0pO2Z1bmN0aW9uIGZMKCl7cmV0dXJue2VudGVyOntzdHJpa2V0aHJvdWdoKCl7dGhpcy50YWcoIjxkZWw+Iil9fSxleGl0OntzdHJpa2V0aHJvdWdoKCl7dGhpcy50YWcoIjwvZGVsPiIpfX19fXZhciBVbmU9YigoKT0+e30pO2Z1bmN0aW9uIG1MKHQpe2xldCBhPSh0fHx7fSkuc2luZ2xlVGlsZGUsaT17bmFtZToic3RyaWtldGhyb3VnaCIsdG9rZW5pemU6cyxyZXNvbHZlQWxsOnJ9O3JldHVybiBhPT1udWxsJiYoYT0hMCkse3RleHQ6ezEyNjppfSxpbnNpZGVTcGFuOntudWxsOltpXX0sYXR0ZW50aW9uTWFya2Vyczp7bnVsbDpbMTI2XX19O2Z1bmN0aW9uIHIobixvKXtsZXQgZD0tMTtmb3IoOysrZDxuLmxlbmd0aDspaWYobltkXVswXT09PSJlbnRlciImJm5bZF1bMV0udHlwZT09PSJzdHJpa2V0aHJvdWdoU2VxdWVuY2VUZW1wb3JhcnkiJiZuW2RdWzFdLl9jbG9zZSl7bGV0IGM9ZDtmb3IoO2MtLTspaWYobltjXVswXT09PSJleGl0IiYmbltjXVsxXS50eXBlPT09InN0cmlrZXRocm91Z2hTZXF1ZW5jZVRlbXBvcmFyeSImJm5bY11bMV0uX29wZW4mJm5bZF1bMV0uZW5kLm9mZnNldC1uW2RdWzFdLnN0YXJ0Lm9mZnNldD09PW5bY11bMV0uZW5kLm9mZnNldC1uW2NdWzFdLnN0YXJ0Lm9mZnNldCl7bltkXVsxXS50eXBlPSJzdHJpa2V0aHJvdWdoU2VxdWVuY2UiLG5bY11bMV0udHlwZT0ic3RyaWtldGhyb3VnaFNlcXVlbmNlIjtsZXQgaD17dHlwZToic3RyaWtldGhyb3VnaCIsc3RhcnQ6T2JqZWN0LmFzc2lnbih7fSxuW2NdWzFdLnN0YXJ0KSxlbmQ6T2JqZWN0LmFzc2lnbih7fSxuW2RdWzFdLmVuZCl9LGw9e3R5cGU6InN0cmlrZXRocm91Z2hUZXh0IixzdGFydDpPYmplY3QuYXNzaWduKHt9LG5bY11bMV0uZW5kKSxlbmQ6T2JqZWN0LmFzc2lnbih7fSxuW2RdWzFdLnN0YXJ0KX0sZj1bWyJlbnRlciIsaCxvXSxbImVudGVyIixuW2NdWzFdLG9dLFsiZXhpdCIsbltjXVsxXSxvXSxbImVudGVyIixsLG9dXSxnPW8ucGFyc2VyLmNvbnN0cnVjdHMuaW5zaWRlU3Bhbi5udWxsO2cmJlIxKGYsZi5sZW5ndGgsMCxIbihnLG4uc2xpY2UoYysxLGQpLG8pKSxSMShmLGYubGVuZ3RoLDAsW1siZXhpdCIsbCxvXSxbImVudGVyIixuW2RdWzFdLG9dLFsiZXhpdCIsbltkXVsxXSxvXSxbImV4aXQiLGgsb11dKSxSMShuLGMtMSxkLWMrMyxmKSxkPWMrZi5sZW5ndGgtMjticmVha319Zm9yKGQ9LTE7KytkPG4ubGVuZ3RoOyluW2RdWzFdLnR5cGU9PT0ic3RyaWtldGhyb3VnaFNlcXVlbmNlVGVtcG9yYXJ5IiYmKG5bZF1bMV0udHlwZT0iZGF0YSIpO3JldHVybiBufWZ1bmN0aW9uIHMobixvLGQpe2xldCBjPXRoaXMucHJldmlvdXMsaD10aGlzLmV2ZW50cyxsPTA7cmV0dXJuIGY7ZnVuY3Rpb24gZih5KXtyZXR1cm4gYz09PTEyNiYmaFtoLmxlbmd0aC0xXVsxXS50eXBlIT09ImNoYXJhY3RlckVzY2FwZSI/ZCh5KToobi5lbnRlcigic3RyaWtldGhyb3VnaFNlcXVlbmNlVGVtcG9yYXJ5IiksZyh5KSl9ZnVuY3Rpb24gZyh5KXtsZXQgdj14cyhjKTtpZih5PT09MTI2KXJldHVybiBsPjE/ZCh5KToobi5jb25zdW1lKHkpLGwrKyxnKTtpZihsPDImJiFhKXJldHVybiBkKHkpO2xldCBtPW4uZXhpdCgic3RyaWtldGhyb3VnaFNlcXVlbmNlVGVtcG9yYXJ5IikseD14cyh5KTtyZXR1cm4gbS5fb3Blbj0heHx8eD09PTImJiEhdixtLl9jbG9zZT0hdnx8dj09PTImJiEheCxvKHkpfX19dmFyIFduZT1iKCgpPT57QXIoKTtDOSgpO1Y2KCl9KTt2YXIgR25lPWIoKCk9PntVbmUoKTtXbmUoKX0pO2Z1bmN0aW9uIGJMKCl7cmV0dXJue2VudGVyOnt0YWJsZSh0KXtsZXQgZT10Ll9hbGlnbjt0aGlzLmxpbmVFbmRpbmdJZk5lZWRlZCgpLHRoaXMudGFnKCI8dGFibGU+IiksdGhpcy5zZXREYXRhKCJ0YWJsZUFsaWduIixlKX0sdGFibGVCb2R5KCl7dGhpcy50YWcoIjx0Ym9keT4iKX0sdGFibGVEYXRhKCl7bGV0IHQ9dGhpcy5nZXREYXRhKCJ0YWJsZUFsaWduIiksZT10aGlzLmdldERhdGEoInRhYmxlQ29sdW1uIiksYT1nTFt0W2VdXTthPT09dm9pZCAwP3RoaXMuYnVmZmVyKCk6KHRoaXMubGluZUVuZGluZ0lmTmVlZGVkKCksdGhpcy50YWcoIjx0ZCIrYSsiPiIpKX0sdGFibGVIZWFkKCl7dGhpcy5saW5lRW5kaW5nSWZOZWVkZWQoKSx0aGlzLnRhZygiPHRoZWFkPiIpfSx0YWJsZUhlYWRlcigpe2xldCB0PXRoaXMuZ2V0RGF0YSgidGFibGVBbGlnbiIpLGU9dGhpcy5nZXREYXRhKCJ0YWJsZUNvbHVtbiIpLGE9Z0xbdFtlXV07dGhpcy5saW5lRW5kaW5nSWZOZWVkZWQoKSx0aGlzLnRhZygiPHRoIithKyI+Iil9LHRhYmxlUm93KCl7dGhpcy5zZXREYXRhKCJ0YWJsZUNvbHVtbiIsMCksdGhpcy5saW5lRW5kaW5nSWZOZWVkZWQoKSx0aGlzLnRhZygiPHRyPiIpfX0sZXhpdDp7Y29kZVRleHREYXRhKHQpe2xldCBlPXRoaXMuc2xpY2VTZXJpYWxpemUodCk7dGhpcy5nZXREYXRhKCJ0YWJsZUFsaWduIikmJihlPWUucmVwbGFjZSgvXFwoW1xcfF0pL2csWE50KSksdGhpcy5yYXcodGhpcy5lbmNvZGUoZSkpfSx0YWJsZSgpe3RoaXMuc2V0RGF0YSgidGFibGVBbGlnbiIpLHRoaXMuc2V0RGF0YSgic2x1cnBBbGxMaW5lRW5kaW5ncyIpLHRoaXMubGluZUVuZGluZ0lmTmVlZGVkKCksdGhpcy50YWcoIjwvdGFibGU+Iil9LHRhYmxlQm9keSgpe3RoaXMubGluZUVuZGluZ0lmTmVlZGVkKCksdGhpcy50YWcoIjwvdGJvZHk+Iil9LHRhYmxlRGF0YSgpe2xldCB0PXRoaXMuZ2V0RGF0YSgidGFibGVBbGlnbiIpLGU9dGhpcy5nZXREYXRhKCJ0YWJsZUNvbHVtbiIpO2UgaW4gdD8odGhpcy50YWcoIjwvdGQ+IiksdGhpcy5zZXREYXRhKCJ0YWJsZUNvbHVtbiIsZSsxKSk6dGhpcy5yZXN1bWUoKX0sdGFibGVIZWFkKCl7dGhpcy5saW5lRW5kaW5nSWZOZWVkZWQoKSx0aGlzLnRhZygiPC90aGVhZD4iKX0sdGFibGVIZWFkZXIoKXtsZXQgdD10aGlzLmdldERhdGEoInRhYmxlQ29sdW1uIik7dGhpcy50YWcoIjwvdGg+IiksdGhpcy5zZXREYXRhKCJ0YWJsZUNvbHVtbiIsdCsxKX0sdGFibGVSb3coKXtsZXQgdD10aGlzLmdldERhdGEoInRhYmxlQWxpZ24iKSxlPXRoaXMuZ2V0RGF0YSgidGFibGVDb2x1bW4iKTtmb3IoO2U8dC5sZW5ndGg7KXRoaXMubGluZUVuZGluZ0lmTmVlZGVkKCksdGhpcy50YWcoIjx0ZCIrZ0xbdFtlXV0rIj48L3RkPiIpLGUrKzt0aGlzLnNldERhdGEoInRhYmxlQ29sdW1uIixlKSx0aGlzLmxpbmVFbmRpbmdJZk5lZWRlZCgpLHRoaXMudGFnKCI8L3RyPiIpfX19fWZ1bmN0aW9uIFhOdCh0LGUpe3JldHVybiBlPT09InwiP2U6dH12YXIgZ0wsWW5lPWIoKCk9PntnTD17bm9uZToiIixsZWZ0OicgYWxpZ249ImxlZnQiJyxyaWdodDonIGFsaWduPSJyaWdodCInLGNlbnRlcjonIGFsaWduPSJjZW50ZXIiJ319KTtmdW5jdGlvbiBLTnQodCxlLGEsaSl7bGV0IHI9MDtpZighKGE9PT0wJiZpLmxlbmd0aD09PTApKXtmb3IoO3I8dC5tYXAubGVuZ3RoOyl7aWYodC5tYXBbcl1bMF09PT1lKXt0Lm1hcFtyXVsxXSs9YSx0Lm1hcFtyXVsyXS5wdXNoKC4uLmkpO3JldHVybn1yKz0xfXQubWFwLnB1c2goW2UsYSxpXSl9fXZhciBYOSxabmU9YigoKT0+e1g5PWNsYXNze2NvbnN0cnVjdG9yKCl7dGhpcy5tYXA9W119YWRkKGUsYSxpKXtLTnQodGhpcyxlLGEsaSl9Y29uc3VtZShlKXtpZih0aGlzLm1hcC5zb3J0KGZ1bmN0aW9uKHMsbil7cmV0dXJuIHNbMF0tblswXX0pLHRoaXMubWFwLmxlbmd0aD09PTApcmV0dXJuO2xldCBhPXRoaXMubWFwLmxlbmd0aCxpPVtdO2Zvcig7YT4wOylhLT0xLGkucHVzaChlLnNsaWNlKHRoaXMubWFwW2FdWzBdK3RoaXMubWFwW2FdWzFdKSx0aGlzLm1hcFthXVsyXSksZS5sZW5ndGg9dGhpcy5tYXBbYV1bMF07aS5wdXNoKGUuc2xpY2UoKSksZS5sZW5ndGg9MDtsZXQgcj1pLnBvcCgpO2Zvcig7cjspe2ZvcihsZXQgcyBvZiByKWUucHVzaChzKTtyPWkucG9wKCl9dGhpcy5tYXAubGVuZ3RoPTB9fX0pO2Z1bmN0aW9uIFhuZSh0LGUpe2xldCBhPSExLGk9W107Zm9yKDtlPHQubGVuZ3RoOyl7bGV0IHI9dFtlXTtpZihhKXtpZihyWzBdPT09ImVudGVyIilyWzFdLnR5cGU9PT0idGFibGVDb250ZW50IiYmaS5wdXNoKHRbZSsxXVsxXS50eXBlPT09InRhYmxlRGVsaW1pdGVyTWFya2VyIj8ibGVmdCI6Im5vbmUiKTtlbHNlIGlmKHJbMV0udHlwZT09PSJ0YWJsZUNvbnRlbnQiKXtpZih0W2UtMV1bMV0udHlwZT09PSJ0YWJsZURlbGltaXRlck1hcmtlciIpe2xldCBzPWkubGVuZ3RoLTE7aVtzXT1pW3NdPT09ImxlZnQiPyJjZW50ZXIiOiJyaWdodCJ9fWVsc2UgaWYoclsxXS50eXBlPT09InRhYmxlRGVsaW1pdGVyUm93IilicmVha31lbHNlIHJbMF09PT0iZW50ZXIiJiZyWzFdLnR5cGU9PT0idGFibGVEZWxpbWl0ZXJSb3ciJiYoYT0hMCk7ZSs9MX1yZXR1cm4gaX12YXIgS25lPWIoKCk9Pnt9KTtmdW5jdGlvbiB2TCgpe3JldHVybntmbG93OntudWxsOntuYW1lOiJ0YWJsZSIsdG9rZW5pemU6UU50LHJlc29sdmVBbGw6Sk50fX19fWZ1bmN0aW9uIFFOdCh0LGUsYSl7bGV0IGk9dGhpcyxyPTAscz0wLG47cmV0dXJuIG87ZnVuY3Rpb24gbyhxKXtsZXQgQz1pLmV2ZW50cy5sZW5ndGgtMTtmb3IoO0M+LTE7KXtsZXQgVD1pLmV2ZW50c1tDXVsxXS50eXBlO2lmKFQ9PT0ibGluZUVuZGluZyJ8fFQ9PT0ibGluZVByZWZpeCIpQy0tO2Vsc2UgYnJlYWt9bGV0IHo9Qz4tMT9pLmV2ZW50c1tDXVsxXS50eXBlOm51bGwsRT16PT09InRhYmxlSGVhZCJ8fHo9PT0idGFibGVSb3ciP2s6ZDtyZXR1cm4gRT09PWsmJmkucGFyc2VyLmxhenlbaS5ub3coKS5saW5lXT9hKHEpOkUocSl9ZnVuY3Rpb24gZChxKXtyZXR1cm4gdC5lbnRlcigidGFibGVIZWFkIiksdC5lbnRlcigidGFibGVSb3ciKSxjKHEpfWZ1bmN0aW9uIGMocSl7cmV0dXJuIHE9PT0xMjR8fChuPSEwLHMrPTEpLGgocSl9ZnVuY3Rpb24gaChxKXtyZXR1cm4gcT09PW51bGw/YShxKTpPZShxKT9zPjE/KHM9MCxpLmludGVycnVwdD0hMCx0LmV4aXQoInRhYmxlUm93IiksdC5lbnRlcigibGluZUVuZGluZyIpLHQuY29uc3VtZShxKSx0LmV4aXQoImxpbmVFbmRpbmciKSxnKTphKHEpOlFlKHEpP2l0KHQsaCwid2hpdGVzcGFjZSIpKHEpOihzKz0xLG4mJihuPSExLHIrPTEpLHE9PT0xMjQ/KHQuZW50ZXIoInRhYmxlQ2VsbERpdmlkZXIiKSx0LmNvbnN1bWUocSksdC5leGl0KCJ0YWJsZUNlbGxEaXZpZGVyIiksbj0hMCxoKToodC5lbnRlcigiZGF0YSIpLGwocSkpKX1mdW5jdGlvbiBsKHEpe3JldHVybiBxPT09bnVsbHx8cT09PTEyNHx8X3QocSk/KHQuZXhpdCgiZGF0YSIpLGgocSkpOih0LmNvbnN1bWUocSkscT09PTkyP2Y6bCl9ZnVuY3Rpb24gZihxKXtyZXR1cm4gcT09PTkyfHxxPT09MTI0Pyh0LmNvbnN1bWUocSksbCk6bChxKX1mdW5jdGlvbiBnKHEpe3JldHVybiBpLmludGVycnVwdD0hMSxpLnBhcnNlci5sYXp5W2kubm93KCkubGluZV0/YShxKToodC5lbnRlcigidGFibGVEZWxpbWl0ZXJSb3ciKSxuPSExLFFlKHEpP2l0KHQseSwibGluZVByZWZpeCIsaS5wYXJzZXIuY29uc3RydWN0cy5kaXNhYmxlLm51bGwuaW5jbHVkZXMoImNvZGVJbmRlbnRlZCIpP3ZvaWQgMDo0KShxKTp5KHEpKX1mdW5jdGlvbiB5KHEpe3JldHVybiBxPT09NDV8fHE9PT01OD9tKHEpOnE9PT0xMjQ/KG49ITAsdC5lbnRlcigidGFibGVDZWxsRGl2aWRlciIpLHQuY29uc3VtZShxKSx0LmV4aXQoInRhYmxlQ2VsbERpdmlkZXIiKSx2KTpfKHEpfWZ1bmN0aW9uIHYocSl7cmV0dXJuIFFlKHEpP2l0KHQsbSwid2hpdGVzcGFjZSIpKHEpOm0ocSl9ZnVuY3Rpb24gbShxKXtyZXR1cm4gcT09PTU4PyhzKz0xLG49ITAsdC5lbnRlcigidGFibGVEZWxpbWl0ZXJNYXJrZXIiKSx0LmNvbnN1bWUocSksdC5leGl0KCJ0YWJsZURlbGltaXRlck1hcmtlciIpLHgpOnE9PT00NT8ocys9MSx4KHEpKTpxPT09bnVsbHx8T2UocSk/RihxKTpfKHEpfWZ1bmN0aW9uIHgocSl7cmV0dXJuIHE9PT00NT8odC5lbnRlcigidGFibGVEZWxpbWl0ZXJGaWxsZXIiKSxNKHEpKTpfKHEpfWZ1bmN0aW9uIE0ocSl7cmV0dXJuIHE9PT00NT8odC5jb25zdW1lKHEpLE0pOnE9PT01OD8obj0hMCx0LmV4aXQoInRhYmxlRGVsaW1pdGVyRmlsbGVyIiksdC5lbnRlcigidGFibGVEZWxpbWl0ZXJNYXJrZXIiKSx0LmNvbnN1bWUocSksdC5leGl0KCJ0YWJsZURlbGltaXRlck1hcmtlciIpLFMpOih0LmV4aXQoInRhYmxlRGVsaW1pdGVyRmlsbGVyIiksUyhxKSl9ZnVuY3Rpb24gUyhxKXtyZXR1cm4gUWUocSk/aXQodCxGLCJ3aGl0ZXNwYWNlIikocSk6RihxKX1mdW5jdGlvbiBGKHEpe3JldHVybiBxPT09MTI0P3kocSk6cT09PW51bGx8fE9lKHEpPyFufHxyIT09cz9fKHEpOih0LmV4aXQoInRhYmxlRGVsaW1pdGVyUm93IiksdC5leGl0KCJ0YWJsZUhlYWQiKSxlKHEpKTpfKHEpfWZ1bmN0aW9uIF8ocSl7cmV0dXJuIGEocSl9ZnVuY3Rpb24gayhxKXtyZXR1cm4gdC5lbnRlcigidGFibGVSb3ciKSxOKHEpfWZ1bmN0aW9uIE4ocSl7cmV0dXJuIHE9PT0xMjQ/KHQuZW50ZXIoInRhYmxlQ2VsbERpdmlkZXIiKSx0LmNvbnN1bWUocSksdC5leGl0KCJ0YWJsZUNlbGxEaXZpZGVyIiksTik6cT09PW51bGx8fE9lKHEpPyh0LmV4aXQoInRhYmxlUm93IiksZShxKSk6UWUocSk/aXQodCxOLCJ3aGl0ZXNwYWNlIikocSk6KHQuZW50ZXIoImRhdGEiKSxMKHEpKX1mdW5jdGlvbiBMKHEpe3JldHVybiBxPT09bnVsbHx8cT09PTEyNHx8X3QocSk/KHQuZXhpdCgiZGF0YSIpLE4ocSkpOih0LmNvbnN1bWUocSkscT09PTkyP0E6TCl9ZnVuY3Rpb24gQShxKXtyZXR1cm4gcT09PTkyfHxxPT09MTI0Pyh0LmNvbnN1bWUocSksTCk6TChxKX19ZnVuY3Rpb24gSk50KHQsZSl7bGV0IGE9LTEsaT0hMCxyPTAscz1bMCwwLDAsMF0sbj1bMCwwLDAsMF0sbz0hMSxkPTAsYyxoLGwsZj1uZXcgWDk7Zm9yKDsrK2E8dC5sZW5ndGg7KXtsZXQgZz10W2FdLHk9Z1sxXTtnWzBdPT09ImVudGVyIj95LnR5cGU9PT0idGFibGVIZWFkIj8obz0hMSxkIT09MCYmKFFuZShmLGUsZCxjLGgpLGg9dm9pZCAwLGQ9MCksYz17dHlwZToidGFibGUiLHN0YXJ0Ok9iamVjdC5hc3NpZ24oe30seS5zdGFydCksZW5kOk9iamVjdC5hc3NpZ24oe30seS5lbmQpfSxmLmFkZChhLDAsW1siZW50ZXIiLGMsZV1dKSk6eS50eXBlPT09InRhYmxlUm93Inx8eS50eXBlPT09InRhYmxlRGVsaW1pdGVyUm93Ij8oaT0hMCxsPXZvaWQgMCxzPVswLDAsMCwwXSxuPVswLGErMSwwLDBdLG8mJihvPSExLGg9e3R5cGU6InRhYmxlQm9keSIsc3RhcnQ6T2JqZWN0LmFzc2lnbih7fSx5LnN0YXJ0KSxlbmQ6T2JqZWN0LmFzc2lnbih7fSx5LmVuZCl9LGYuYWRkKGEsMCxbWyJlbnRlciIsaCxlXV0pKSxyPXkudHlwZT09PSJ0YWJsZURlbGltaXRlclJvdyI/MjpoPzM6MSk6ciYmKHkudHlwZT09PSJkYXRhInx8eS50eXBlPT09InRhYmxlRGVsaW1pdGVyTWFya2VyInx8eS50eXBlPT09InRhYmxlRGVsaW1pdGVyRmlsbGVyIik/KGk9ITEsblsyXT09PTAmJihzWzFdIT09MCYmKG5bMF09blsxXSxsPUs5KGYsZSxzLHIsdm9pZCAwLGwpLHM9WzAsMCwwLDBdKSxuWzJdPWEpKTp5LnR5cGU9PT0idGFibGVDZWxsRGl2aWRlciImJihpP2k9ITE6KHNbMV0hPT0wJiYoblswXT1uWzFdLGw9SzkoZixlLHMscix2b2lkIDAsbCkpLHM9bixuPVtzWzFdLGEsMCwwXSkpOnkudHlwZT09PSJ0YWJsZUhlYWQiPyhvPSEwLGQ9YSk6eS50eXBlPT09InRhYmxlUm93Inx8eS50eXBlPT09InRhYmxlRGVsaW1pdGVyUm93Ij8oZD1hLHNbMV0hPT0wPyhuWzBdPW5bMV0sbD1LOShmLGUscyxyLGEsbCkpOm5bMV0hPT0wJiYobD1LOShmLGUsbixyLGEsbCkpLHI9MCk6ciYmKHkudHlwZT09PSJkYXRhInx8eS50eXBlPT09InRhYmxlRGVsaW1pdGVyTWFya2VyInx8eS50eXBlPT09InRhYmxlRGVsaW1pdGVyRmlsbGVyIikmJihuWzNdPWEpfWZvcihkIT09MCYmUW5lKGYsZSxkLGMsaCksZi5jb25zdW1lKGUuZXZlbnRzKSxhPS0xOysrYTxlLmV2ZW50cy5sZW5ndGg7KXtsZXQgZz1lLmV2ZW50c1thXTtnWzBdPT09ImVudGVyIiYmZ1sxXS50eXBlPT09InRhYmxlIiYmKGdbMV0uX2FsaWduPVhuZShlLmV2ZW50cyxhKSl9cmV0dXJuIHR9ZnVuY3Rpb24gSzkodCxlLGEsaSxyLHMpe2xldCBuPWk9PT0xPyJ0YWJsZUhlYWRlciI6aT09PTI/InRhYmxlRGVsaW1pdGVyIjoidGFibGVEYXRhIixvPSJ0YWJsZUNvbnRlbnQiO2FbMF0hPT0wJiYocy5lbmQ9T2JqZWN0LmFzc2lnbih7fSxSMyhlLmV2ZW50cyxhWzBdKSksdC5hZGQoYVswXSwwLFtbImV4aXQiLHMsZV1dKSk7bGV0IGQ9UjMoZS5ldmVudHMsYVsxXSk7aWYocz17dHlwZTpuLHN0YXJ0Ok9iamVjdC5hc3NpZ24oe30sZCksZW5kOk9iamVjdC5hc3NpZ24oe30sZCl9LHQuYWRkKGFbMV0sMCxbWyJlbnRlciIscyxlXV0pLGFbMl0hPT0wKXtsZXQgYz1SMyhlLmV2ZW50cyxhWzJdKSxoPVIzKGUuZXZlbnRzLGFbM10pLGw9e3R5cGU6byxzdGFydDpPYmplY3QuYXNzaWduKHt9LGMpLGVuZDpPYmplY3QuYXNzaWduKHt9LGgpfTtpZih0LmFkZChhWzJdLDAsW1siZW50ZXIiLGwsZV1dKSxpIT09Mil7bGV0IGY9ZS5ldmVudHNbYVsyXV0sZz1lLmV2ZW50c1thWzNdXTtpZihmWzFdLmVuZD1PYmplY3QuYXNzaWduKHt9LGdbMV0uZW5kKSxmWzFdLnR5cGU9ImNodW5rVGV4dCIsZlsxXS5jb250ZW50VHlwZT0idGV4dCIsYVszXT5hWzJdKzEpe2xldCB5PWFbMl0rMSx2PWFbM10tYVsyXS0xO3QuYWRkKHksdixbXSl9fXQuYWRkKGFbM10rMSwwLFtbImV4aXQiLGwsZV1dKX1yZXR1cm4gciE9PXZvaWQgMCYmKHMuZW5kPU9iamVjdC5hc3NpZ24oe30sUjMoZS5ldmVudHMscikpLHQuYWRkKHIsMCxbWyJleGl0IixzLGVdXSkscz12b2lkIDApLHN9ZnVuY3Rpb24gUW5lKHQsZSxhLGkscil7bGV0IHM9W10sbj1SMyhlLmV2ZW50cyxhKTtyJiYoci5lbmQ9T2JqZWN0LmFzc2lnbih7fSxuKSxzLnB1c2goWyJleGl0IixyLGVdKSksaS5lbmQ9T2JqZWN0LmFzc2lnbih7fSxuKSxzLnB1c2goWyJleGl0IixpLGVdKSx0LmFkZChhKzEsMCxzKX1mdW5jdGlvbiBSMyh0LGUpe2xldCBhPXRbZV0saT1hWzBdPT09ImVudGVyIj8ic3RhcnQiOiJlbmQiO3JldHVybiBhWzFdW2ldfXZhciBKbmU9YigoKT0+e0IxKCk7JHQoKTtabmUoKTtLbmUoKX0pO3ZhciBlb2U9YigoKT0+e1luZSgpO0puZSgpfSk7ZnVuY3Rpb24geUwoKXtyZXR1cm57ZXhpdDp7aHRtbEZsb3dEYXRhKHQpe2FvZS5jYWxsKHRoaXMsdCx0b2UpfSxodG1sVGV4dERhdGEodCl7YW9lLmNhbGwodGhpcyx0LGVGdCl9fX19ZnVuY3Rpb24gYW9lKHQsZSl7bGV0IGE9dGhpcy5zbGljZVNlcmlhbGl6ZSh0KTt0aGlzLm9wdGlvbnMuYWxsb3dEYW5nZXJvdXNIdG1sJiYoYT1hLnJlcGxhY2UoZSwiJmx0OyQxJDIiKSksdGhpcy5yYXcodGhpcy5lbmNvZGUoYSkpfXZhciB0b2UsZUZ0LGlvZT1iKCgpPT57dG9lPS88KFwvPykoaWZyYW1lfG5vZW1iZWR8bm9mcmFtZXN8cGxhaW50ZXh0fHNjcmlwdHxzdHlsZXx0aXRsZXx0ZXh0YXJlYXx4bXApKD89W1x0XG5cZlxyIC8+XSkvZ2ksZUZ0PW5ldyBSZWdFeHAoIl4iK3RvZS5zb3VyY2UsImkiKX0pO3ZhciByb2U9YigoKT0+e2lvZSgpfSk7ZnVuY3Rpb24geEwoKXtyZXR1cm57ZW50ZXI6e3Rhc2tMaXN0Q2hlY2soKXt0aGlzLnRhZygnPGlucHV0IHR5cGU9ImNoZWNrYm94IiBkaXNhYmxlZD0iIiAnKX19LGV4aXQ6e3Rhc2tMaXN0Q2hlY2soKXt0aGlzLnRhZygiLz4iKX0sdGFza0xpc3RDaGVja1ZhbHVlQ2hlY2tlZCgpe3RoaXMudGFnKCdjaGVja2VkPSIiICcpfX19fXZhciBzb2U9YigoKT0+e30pO2Z1bmN0aW9uIHdMKCl7cmV0dXJue3RleHQ6ezkxOnRGdH19fWZ1bmN0aW9uIGFGdCh0LGUsYSl7bGV0IGk9dGhpcztyZXR1cm4gcjtmdW5jdGlvbiByKGQpe3JldHVybiBpLnByZXZpb3VzIT09bnVsbHx8IWkuX2dmbVRhc2tsaXN0Rmlyc3RDb250ZW50T2ZMaXN0SXRlbT9hKGQpOih0LmVudGVyKCJ0YXNrTGlzdENoZWNrIiksdC5lbnRlcigidGFza0xpc3RDaGVja01hcmtlciIpLHQuY29uc3VtZShkKSx0LmV4aXQoInRhc2tMaXN0Q2hlY2tNYXJrZXIiKSxzKX1mdW5jdGlvbiBzKGQpe3JldHVybiBfdChkKT8odC5lbnRlcigidGFza0xpc3RDaGVja1ZhbHVlVW5jaGVja2VkIiksdC5jb25zdW1lKGQpLHQuZXhpdCgidGFza0xpc3RDaGVja1ZhbHVlVW5jaGVja2VkIiksbik6ZD09PTg4fHxkPT09MTIwPyh0LmVudGVyKCJ0YXNrTGlzdENoZWNrVmFsdWVDaGVja2VkIiksdC5jb25zdW1lKGQpLHQuZXhpdCgidGFza0xpc3RDaGVja1ZhbHVlQ2hlY2tlZCIpLG4pOmEoZCl9ZnVuY3Rpb24gbihkKXtyZXR1cm4gZD09PTkzPyh0LmVudGVyKCJ0YXNrTGlzdENoZWNrTWFya2VyIiksdC5jb25zdW1lKGQpLHQuZXhpdCgidGFza0xpc3RDaGVja01hcmtlciIpLHQuZXhpdCgidGFza0xpc3RDaGVjayIpLG8pOmEoZCl9ZnVuY3Rpb24gbyhkKXtyZXR1cm4gT2UoZCk/ZShkKTpRZShkKT90LmNoZWNrKHt0b2tlbml6ZTppRnR9LGUsYSkoZCk6YShkKX19ZnVuY3Rpb24gaUZ0KHQsZSxhKXtyZXR1cm4gaXQodCxpLCJ3aGl0ZXNwYWNlIik7ZnVuY3Rpb24gaShyKXtyZXR1cm4gcj09PW51bGw/YShyKTplKHIpfX12YXIgdEZ0LG5vZT1iKCgpPT57QjEoKTskdCgpO3RGdD17bmFtZToidGFza2xpc3RDaGVjayIsdG9rZW5pemU6YUZ0fX0pO3ZhciBvb2U9YigoKT0+e3NvZSgpO25vZSgpfSk7ZnVuY3Rpb24gbG9lKHQpe3JldHVybiBQOShbalQoKSxwTCgpLG1MKHQpLHZMKCksd0woKV0pfWZ1bmN0aW9uIE1JMSh0KXtyZXR1cm4gSTkoW0dUKCksdUwodCksZkwoKSxiTCgpLHlMKCkseEwoKV0pfXZhciBjb2U9YigoKT0+e045KCk7Ym5lKCk7am5lKCk7R25lKCk7ZW9lKCk7cm9lKCk7b29lKCl9KTtmdW5jdGlvbiBCMyh0KXtsZXQgZT10aGlzLGE9dHx8ckZ0LGk9ZS5kYXRhKCkscj1pLm1pY3JvbWFya0V4dGVuc2lvbnN8fChpLm1pY3JvbWFya0V4dGVuc2lvbnM9W10pLHM9aS5mcm9tTWFya2Rvd25FeHRlbnNpb25zfHwoaS5mcm9tTWFya2Rvd25FeHRlbnNpb25zPVtdKSxuPWkudG9NYXJrZG93bkV4dGVuc2lvbnN8fChpLnRvTWFya2Rvd25FeHRlbnNpb25zPVtdKTtyLnB1c2gobG9lKGEpKSxzLnB1c2goUlQoKSksbi5wdXNoKEJUKGEpKX12YXIgckZ0LGRvZT1iKCgpPT57bm5lKCk7Y29lKCk7ckZ0PXt9fSk7dmFyIGhvZT1iKCgpPT57ZG9lKCl9KTtmdW5jdGlvbiBNTCh0KXtsZXQgZT10fHx7fSxhPSEwLGk9e30scj1bW11dLHM9W10sbj1bXSxkPUk5KFt7ZW50ZXI6e2Jsb2NrUXVvdGU6JCxjb2RlRmVuY2VkOnJlLGNvZGVGZW5jZWRGZW5jZUluZm86bSxjb2RlRmVuY2VkRmVuY2VNZXRhOm0sY29kZUluZGVudGVkOndlLGNvZGVUZXh0OmllLGNvbnRlbnQ6X2UsZGVmaW5pdGlvbjokZSxkZWZpbml0aW9uRGVzdGluYXRpb25TdHJpbmc6UCxkZWZpbml0aW9uTGFiZWxTdHJpbmc6bSxkZWZpbml0aW9uVGl0bGVTdHJpbmc6bSxlbXBoYXNpczpMdCxodG1sRmxvdzpWZSxodG1sVGV4dDpvdCxpbWFnZTpjZSxsYWJlbDptLGxpbms6a2UsbGlzdEl0ZW1NYXJrZXI6QyxsaXN0SXRlbVZhbHVlOnEsbGlzdE9yZGVyZWQ6TCxsaXN0VW5vcmRlcmVkOkEscGFyYWdyYXBoOlIscmVmZXJlbmNlOm0scmVzb3VyY2U6WixyZXNvdXJjZURlc3RpbmF0aW9uU3RyaW5nOlkscmVzb3VyY2VUaXRsZVN0cmluZzptLHNldGV4dEhlYWRpbmc6dGUsc3Ryb25nOlp0fSxleGl0OnthdHhIZWFkaW5nOkZlLGF0eEhlYWRpbmdTZXF1ZW5jZTpoZSxhdXRvbGlua0VtYWlsOkpyLGF1dG9saW5rUHJvdG9jb2w6UXIsYmxvY2tRdW90ZTpWLGNoYXJhY3RlckVzY2FwZVZhbHVlOmVlLGNoYXJhY3RlclJlZmVyZW5jZU1hcmtlckhleGFkZWNpbWFsOm0xLGNoYXJhY3RlclJlZmVyZW5jZU1hcmtlck51bWVyaWM6bTEsY2hhcmFjdGVyUmVmZXJlbmNlVmFsdWU6ZWksY29kZUZlbmNlZDpILGNvZGVGZW5jZWRGZW5jZTptZSxjb2RlRmVuY2VkRmVuY2VJbmZvOmosY29kZUZlbmNlZEZlbmNlTWV0YTpOLGNvZGVGbG93VmFsdWU6dmUsY29kZUluZGVudGVkOkgsY29kZVRleHQ6c2UsY29kZVRleHREYXRhOmVlLGRhdGE6ZWUsZGVmaW5pdGlvbjpkZSxkZWZpbml0aW9uRGVzdGluYXRpb25TdHJpbmc6SyxkZWZpbml0aW9uTGFiZWxTdHJpbmc6QixkZWZpbml0aW9uVGl0bGVTdHJpbmc6ZmUsZW1waGFzaXM6VGUsaGFyZEJyZWFrRXNjYXBlOlBlLGhhcmRCcmVha1RyYWlsaW5nOlBlLGh0bWxGbG93Onh0LGh0bWxGbG93RGF0YTplZSxodG1sVGV4dDp4dCxodG1sVGV4dERhdGE6ZWUsaW1hZ2U6YmUsbGFiZWw6RCxsYWJlbFRleHQ6VyxsaW5lRW5kaW5nOmFlLGxpbms6YmUsbGlzdE9yZGVyZWQ6eixsaXN0VW5vcmRlcmVkOkUscGFyYWdyYXBoOlUscmVmZXJlbmNlOk4scmVmZXJlbmNlU3RyaW5nOk8scmVzb3VyY2U6TixyZXNvdXJjZURlc3RpbmF0aW9uU3RyaW5nOm9lLHJlc291cmNlVGl0bGVTdHJpbmc6Z2Usc2V0ZXh0SGVhZGluZzp5ZSxzZXRleHRIZWFkaW5nTGluZVNlcXVlbmNlOldlLHNldGV4dEhlYWRpbmdUZXh0OnplLHN0cm9uZzpsdCx0aGVtYXRpY0JyZWFrOmN0fX0sLi4uZS5odG1sRXh0ZW5zaW9uc3x8W11dKSxjPXtkZWZpbml0aW9uczppLHRpZ2h0U3RhY2s6bn0saD17YnVmZmVyOm0sZW5jb2RlOmssZ2V0RGF0YTp2LGxpbmVFbmRpbmdJZk5lZWRlZDpfLG9wdGlvbnM6ZSxyYXc6UyxyZXN1bWU6eCxzZXREYXRhOnksdGFnOk19LGw9ZS5kZWZhdWx0TGluZUVuZGluZztyZXR1cm4gZjtmdW5jdGlvbiBmKEllKXtsZXQgWmU9LTEsJDE9MCx5Mj1bXSxFMj1bXSxhYT1bXTtmb3IoOysrWmU8SWUubGVuZ3RoOykhbCYmKEllW1plXVsxXS50eXBlPT09ImxpbmVFbmRpbmcifHxJZVtaZV1bMV0udHlwZT09PSJsaW5lRW5kaW5nQmxhbmsiKSYmKGw9SWVbWmVdWzJdLnNsaWNlU2VyaWFsaXplKEllW1plXVsxXSkpLChJZVtaZV1bMV0udHlwZT09PSJsaXN0T3JkZXJlZCJ8fEllW1plXVsxXS50eXBlPT09Imxpc3RVbm9yZGVyZWQiKSYmKEllW1plXVswXT09PSJlbnRlciI/eTIucHVzaChaZSk6ZyhJZS5zbGljZSh5Mi5wb3AoKSxaZSkpKSxJZVtaZV1bMV0udHlwZT09PSJkZWZpbml0aW9uIiYmKEllW1plXVswXT09PSJlbnRlciI/KGFhPVoxKGFhLEllLnNsaWNlKCQxLFplKSksJDE9WmUpOihFMj1aMShFMixJZS5zbGljZSgkMSxaZSsxKSksJDE9WmUrMSkpO0UyPVoxKEUyLGFhKSxFMj1aMShFMixJZS5zbGljZSgkMSkpLFplPS0xO2xldCBQMj1FMjtmb3IoZC5lbnRlci5udWxsJiZkLmVudGVyLm51bGwuY2FsbChoKTsrK1plPEllLmxlbmd0aDspe2xldCBlbj1kW1AyW1plXVswXV0sdG49UDJbWmVdWzFdLnR5cGUsYW49ZW5bdG5dO3BvZS5jYWxsKGVuLHRuKSYmYW4mJmFuLmNhbGwoe3NsaWNlU2VyaWFsaXplOlAyW1plXVsyXS5zbGljZVNlcmlhbGl6ZSwuLi5ofSxQMltaZV1bMV0pfXJldHVybiBkLmV4aXQubnVsbCYmZC5leGl0Lm51bGwuY2FsbChoKSxyWzBdLmpvaW4oIiIpfWZ1bmN0aW9uIGcoSWUpe2xldCBaZT1JZS5sZW5ndGgsJDE9MCx5Mj0wLEUyPSExLGFhO2Zvcig7KyskMTxaZTspe2xldCBQMj1JZVskMV07aWYoUDJbMV0uX2NvbnRhaW5lcilhYT12b2lkIDAsUDJbMF09PT0iZW50ZXIiP3kyKys6eTItLTtlbHNlIHN3aXRjaChQMlsxXS50eXBlKXtjYXNlImxpc3RJdGVtUHJlZml4Ijp7UDJbMF09PT0iZXhpdCImJihhYT0hMCk7YnJlYWt9Y2FzZSJsaW5lUHJlZml4IjpicmVhaztjYXNlImxpbmVFbmRpbmdCbGFuayI6e1AyWzBdPT09ImVudGVyIiYmIXkyJiYoYWE/YWE9dm9pZCAwOkUyPSEwKTticmVha31kZWZhdWx0OmFhPXZvaWQgMH19SWVbMF1bMV0uX2xvb3NlPUUyfWZ1bmN0aW9uIHkoSWUsWmUpe2NbSWVdPVplfWZ1bmN0aW9uIHYoSWUpe3JldHVybiBjW0llXX1mdW5jdGlvbiBtKCl7ci5wdXNoKFtdKX1mdW5jdGlvbiB4KCl7cmV0dXJuIHIucG9wKCkuam9pbigiIil9ZnVuY3Rpb24gTShJZSl7YSYmKHkoImxhc3RXYXNUYWciLCEwKSxyW3IubGVuZ3RoLTFdLnB1c2goSWUpKX1mdW5jdGlvbiBTKEllKXt5KCJsYXN0V2FzVGFnIikscltyLmxlbmd0aC0xXS5wdXNoKEllKX1mdW5jdGlvbiBGKCl7UyhsfHxgCmApfWZ1bmN0aW9uIF8oKXtsZXQgSWU9cltyLmxlbmd0aC0xXSxaZT1JZVtJZS5sZW5ndGgtMV0sJDE9WmU/WmUuY2hhckNvZGVBdChaZS5sZW5ndGgtMSk6bnVsbDskMT09PTEwfHwkMT09PTEzfHwkMT09PW51bGx8fEYoKX1mdW5jdGlvbiBrKEllKXtyZXR1cm4gdigiaWdub3JlRW5jb2RlIik/SWU6RjkoSWUpfWZ1bmN0aW9uIE4oKXt4KCl9ZnVuY3Rpb24gTChJZSl7bi5wdXNoKCFJZS5fbG9vc2UpLF8oKSxNKCI8b2wiKSx5KCJleHBlY3RGaXJzdEl0ZW0iLCEwKX1mdW5jdGlvbiBBKEllKXtuLnB1c2goIUllLl9sb29zZSksXygpLE0oIjx1bCIpLHkoImV4cGVjdEZpcnN0SXRlbSIsITApfWZ1bmN0aW9uIHEoSWUpe2lmKHYoImV4cGVjdEZpcnN0SXRlbSIpKXtsZXQgWmU9TnVtYmVyLnBhcnNlSW50KHRoaXMuc2xpY2VTZXJpYWxpemUoSWUpLDEwKTtaZSE9PTEmJk0oJyBzdGFydD0iJytrKFN0cmluZyhaZSkpKyciJyl9fWZ1bmN0aW9uIEMoKXt2KCJleHBlY3RGaXJzdEl0ZW0iKT9NKCI+Iik6VCgpLF8oKSxNKCI8bGk+IikseSgiZXhwZWN0Rmlyc3RJdGVtIikseSgibGFzdFdhc1RhZyIpfWZ1bmN0aW9uIHooKXtUKCksbi5wb3AoKSxGKCksTSgiPC9vbD4iKX1mdW5jdGlvbiBFKCl7VCgpLG4ucG9wKCksRigpLE0oIjwvdWw+Iil9ZnVuY3Rpb24gVCgpe3YoImxhc3RXYXNUYWciKSYmIXYoInNsdXJwQWxsTGluZUVuZGluZ3MiKSYmXygpLE0oIjwvbGk+IikseSgic2x1cnBBbGxMaW5lRW5kaW5ncyIpfWZ1bmN0aW9uICQoKXtuLnB1c2goITEpLF8oKSxNKCI8YmxvY2txdW90ZT4iKX1mdW5jdGlvbiBWKCl7bi5wb3AoKSxfKCksTSgiPC9ibG9ja3F1b3RlPiIpLHkoInNsdXJwQWxsTGluZUVuZGluZ3MiKX1mdW5jdGlvbiBSKCl7bltuLmxlbmd0aC0xXXx8KF8oKSxNKCI8cD4iKSkseSgic2x1cnBBbGxMaW5lRW5kaW5ncyIpfWZ1bmN0aW9uIFUoKXtuW24ubGVuZ3RoLTFdP3koInNsdXJwQWxsTGluZUVuZGluZ3MiLCEwKTpNKCI8L3A+Iil9ZnVuY3Rpb24gcmUoKXtfKCksTSgiPHByZT48Y29kZSIpLHkoImZlbmNlc0NvdW50IiwwKX1mdW5jdGlvbiBqKCl7bGV0IEllPXgoKTtNKCcgY2xhc3M9Imxhbmd1YWdlLScrSWUrJyInKX1mdW5jdGlvbiBtZSgpe2xldCBJZT12KCJmZW5jZXNDb3VudCIpfHwwO0llfHwoTSgiPiIpLHkoInNsdXJwT25lTGluZUVuZGluZyIsITApKSx5KCJmZW5jZXNDb3VudCIsSWUrMSl9ZnVuY3Rpb24gd2UoKXtfKCksTSgiPHByZT48Y29kZT4iKX1mdW5jdGlvbiBIKCl7bGV0IEllPXYoImZlbmNlc0NvdW50Iik7SWUhPT12b2lkIDAmJkllPDImJmMudGlnaHRTdGFjay5sZW5ndGg+MCYmIXYoImxhc3RXYXNUYWciKSYmRigpLHYoImZsb3dDb2RlU2VlbkRhdGEiKSYmXygpLE0oIjwvY29kZT48L3ByZT4iKSxJZSE9PXZvaWQgMCYmSWU8MiYmXygpLHkoImZsb3dDb2RlU2VlbkRhdGEiKSx5KCJmZW5jZXNDb3VudCIpLHkoInNsdXJwT25lTGluZUVuZGluZyIpfWZ1bmN0aW9uIGNlKCl7cy5wdXNoKHtpbWFnZTohMH0pLGE9dm9pZCAwfWZ1bmN0aW9uIGtlKCl7cy5wdXNoKHt9KX1mdW5jdGlvbiBXKEllKXtzW3MubGVuZ3RoLTFdLmxhYmVsSWQ9dGhpcy5zbGljZVNlcmlhbGl6ZShJZSl9ZnVuY3Rpb24gRCgpe3Nbcy5sZW5ndGgtMV0ubGFiZWw9eCgpfWZ1bmN0aW9uIE8oSWUpe3Nbcy5sZW5ndGgtMV0ucmVmZXJlbmNlSWQ9dGhpcy5zbGljZVNlcmlhbGl6ZShJZSl9ZnVuY3Rpb24gWigpe20oKSxzW3MubGVuZ3RoLTFdLmRlc3RpbmF0aW9uPSIifWZ1bmN0aW9uIFkoKXttKCkseSgiaWdub3JlRW5jb2RlIiwhMCl9ZnVuY3Rpb24gb2UoKXtzW3MubGVuZ3RoLTFdLmRlc3RpbmF0aW9uPXgoKSx5KCJpZ25vcmVFbmNvZGUiKX1mdW5jdGlvbiBnZSgpe3Nbcy5sZW5ndGgtMV0udGl0bGU9eCgpfWZ1bmN0aW9uIGJlKCl7bGV0IEllPXMubGVuZ3RoLTEsWmU9c1tJZV0sJDE9WmUucmVmZXJlbmNlSWR8fFplLmxhYmVsSWQseTI9WmUuZGVzdGluYXRpb249PT12b2lkIDA/aVtJMSgkMSldOlplO2ZvcihhPSEwO0llLS07KWlmKHNbSWVdLmltYWdlKXthPXZvaWQgMDticmVha31aZS5pbWFnZT8oTSgnPGltZyBzcmM9IicrRXIoeTIuZGVzdGluYXRpb24sZS5hbGxvd0Rhbmdlcm91c1Byb3RvY29sP3ZvaWQgMDpzRnQpKyciIGFsdD0iJyksUyhaZS5sYWJlbCksTSgnIicpKTpNKCc8YSBocmVmPSInK0VyKHkyLmRlc3RpbmF0aW9uLGUuYWxsb3dEYW5nZXJvdXNQcm90b2NvbD92b2lkIDA6dW9lKSsnIicpLE0oeTIudGl0bGU/JyB0aXRsZT0iJyt5Mi50aXRsZSsnIic6IiIpLFplLmltYWdlP00oIiAvPiIpOihNKCI+IiksUyhaZS5sYWJlbCksTSgiPC9hPiIpKSxzLnBvcCgpfWZ1bmN0aW9uICRlKCl7bSgpLHMucHVzaCh7fSl9ZnVuY3Rpb24gQihJZSl7eCgpLHNbcy5sZW5ndGgtMV0ubGFiZWxJZD10aGlzLnNsaWNlU2VyaWFsaXplKEllKX1mdW5jdGlvbiBQKCl7bSgpLHkoImlnbm9yZUVuY29kZSIsITApfWZ1bmN0aW9uIEsoKXtzW3MubGVuZ3RoLTFdLmRlc3RpbmF0aW9uPXgoKSx5KCJpZ25vcmVFbmNvZGUiKX1mdW5jdGlvbiBmZSgpe3Nbcy5sZW5ndGgtMV0udGl0bGU9eCgpfWZ1bmN0aW9uIGRlKCl7bGV0IEllPXNbcy5sZW5ndGgtMV0sWmU9STEoSWUubGFiZWxJZCk7eCgpLHBvZS5jYWxsKGksWmUpfHwoaVtaZV09c1tzLmxlbmd0aC0xXSkscy5wb3AoKX1mdW5jdGlvbiBfZSgpe3koInNsdXJwQWxsTGluZUVuZGluZ3MiLCEwKX1mdW5jdGlvbiBoZShJZSl7digiaGVhZGluZ1JhbmsiKXx8KHkoImhlYWRpbmdSYW5rIix0aGlzLnNsaWNlU2VyaWFsaXplKEllKS5sZW5ndGgpLF8oKSxNKCI8aCIrdigiaGVhZGluZ1JhbmsiKSsiPiIpKX1mdW5jdGlvbiB0ZSgpe20oKSx5KCJzbHVycEFsbExpbmVFbmRpbmdzIil9ZnVuY3Rpb24gemUoKXt5KCJzbHVycEFsbExpbmVFbmRpbmdzIiwhMCl9ZnVuY3Rpb24gRmUoKXtNKCI8L2giK3YoImhlYWRpbmdSYW5rIikrIj4iKSx5KCJoZWFkaW5nUmFuayIpfWZ1bmN0aW9uIFdlKEllKXt5KCJoZWFkaW5nUmFuayIsdGhpcy5zbGljZVNlcmlhbGl6ZShJZSkuY2hhckNvZGVBdCgwKT09PTYxPzE6Mil9ZnVuY3Rpb24geWUoKXtsZXQgSWU9eCgpO18oKSxNKCI8aCIrdigiaGVhZGluZ1JhbmsiKSsiPiIpLFMoSWUpLE0oIjwvaCIrdigiaGVhZGluZ1JhbmsiKSsiPiIpLHkoInNsdXJwQWxsTGluZUVuZGluZ3MiKSx5KCJoZWFkaW5nUmFuayIpfWZ1bmN0aW9uIGVlKEllKXtTKGsodGhpcy5zbGljZVNlcmlhbGl6ZShJZSkpKX1mdW5jdGlvbiBhZShJZSl7aWYoIXYoInNsdXJwQWxsTGluZUVuZGluZ3MiKSl7aWYodigic2x1cnBPbmVMaW5lRW5kaW5nIikpe3koInNsdXJwT25lTGluZUVuZGluZyIpO3JldHVybn1pZih2KCJpbkNvZGVUZXh0Iikpe1MoIiAiKTtyZXR1cm59UyhrKHRoaXMuc2xpY2VTZXJpYWxpemUoSWUpKSl9fWZ1bmN0aW9uIHZlKEllKXtTKGsodGhpcy5zbGljZVNlcmlhbGl6ZShJZSkpKSx5KCJmbG93Q29kZVNlZW5EYXRhIiwhMCl9ZnVuY3Rpb24gUGUoKXtNKCI8YnIgLz4iKX1mdW5jdGlvbiBWZSgpe18oKSxvdCgpfWZ1bmN0aW9uIHh0KCl7eSgiaWdub3JlRW5jb2RlIil9ZnVuY3Rpb24gb3QoKXtlLmFsbG93RGFuZ2Vyb3VzSHRtbCYmeSgiaWdub3JlRW5jb2RlIiwhMCl9ZnVuY3Rpb24gTHQoKXtNKCI8ZW0+Iil9ZnVuY3Rpb24gWnQoKXtNKCI8c3Ryb25nPiIpfWZ1bmN0aW9uIGllKCl7eSgiaW5Db2RlVGV4dCIsITApLE0oIjxjb2RlPiIpfWZ1bmN0aW9uIHNlKCl7eSgiaW5Db2RlVGV4dCIpLE0oIjwvY29kZT4iKX1mdW5jdGlvbiBUZSgpe00oIjwvZW0+Iil9ZnVuY3Rpb24gbHQoKXtNKCI8L3N0cm9uZz4iKX1mdW5jdGlvbiBjdCgpe18oKSxNKCI8aHIgLz4iKX1mdW5jdGlvbiBtMShJZSl7eSgiY2hhcmFjdGVyUmVmZXJlbmNlVHlwZSIsSWUudHlwZSl9ZnVuY3Rpb24gZWkoSWUpe2xldCBaZT10aGlzLnNsaWNlU2VyaWFsaXplKEllKSwkMT12KCJjaGFyYWN0ZXJSZWZlcmVuY2VUeXBlIik/TzMoWmUsdigiY2hhcmFjdGVyUmVmZXJlbmNlVHlwZSIpPT09ImNoYXJhY3RlclJlZmVyZW5jZU1hcmtlck51bWVyaWMiPzEwOjE2KTpCbihaZSk7UyhrKCQxKSkseSgiY2hhcmFjdGVyUmVmZXJlbmNlVHlwZSIpfWZ1bmN0aW9uIFFyKEllKXtsZXQgWmU9dGhpcy5zbGljZVNlcmlhbGl6ZShJZSk7TSgnPGEgaHJlZj0iJytFcihaZSxlLmFsbG93RGFuZ2Vyb3VzUHJvdG9jb2w/dm9pZCAwOnVvZSkrJyI+JyksUyhrKFplKSksTSgiPC9hPiIpfWZ1bmN0aW9uIEpyKEllKXtsZXQgWmU9dGhpcy5zbGljZVNlcmlhbGl6ZShJZSk7TSgnPGEgaHJlZj0iJytFcigibWFpbHRvOiIrWmUpKyciPicpLFMoayhaZSkpLE0oIjwvYT4iKX19dmFyIHBvZSx1b2Usc0Z0LHpMPWIoKCk9PntxNigpO0FyKCk7TjkoKTtBOSgpO1VUKCk7Um4oKTtQcigpO3BvZT17fS5oYXNPd25Qcm9wZXJ0eSx1b2U9L14oaHR0cHM/fGlyY3M/fG1haWx0b3x4bXBwKSQvaSxzRnQ9L15odHRwcz8kL2l9KTtmdW5jdGlvbiBuRnQodCl7bGV0IGU9dC5hdHRlbXB0KHRoaXMucGFyc2VyLmNvbnN0cnVjdHMuY29udGVudEluaXRpYWwsaSxyKSxhO3JldHVybiBlO2Z1bmN0aW9uIGkobyl7aWYobz09PW51bGwpe3QuY29uc3VtZShvKTtyZXR1cm59cmV0dXJuIHQuZW50ZXIoImxpbmVFbmRpbmciKSx0LmNvbnN1bWUobyksdC5leGl0KCJsaW5lRW5kaW5nIiksaXQodCxlLCJsaW5lUHJlZml4Iil9ZnVuY3Rpb24gcihvKXtyZXR1cm4gdC5lbnRlcigicGFyYWdyYXBoIikscyhvKX1mdW5jdGlvbiBzKG8pe2xldCBkPXQuZW50ZXIoImNodW5rVGV4dCIse2NvbnRlbnRUeXBlOiJ0ZXh0IixwcmV2aW91czphfSk7cmV0dXJuIGEmJihhLm5leHQ9ZCksYT1kLG4obyl9ZnVuY3Rpb24gbihvKXtpZihvPT09bnVsbCl7dC5leGl0KCJjaHVua1RleHQiKSx0LmV4aXQoInBhcmFncmFwaCIpLHQuY29uc3VtZShvKTtyZXR1cm59cmV0dXJuIE9lKG8pPyh0LmNvbnN1bWUobyksdC5leGl0KCJjaHVua1RleHQiKSxzKToodC5jb25zdW1lKG8pLG4pfX12YXIgZm9lLG1vZT1iKCgpPT57QjEoKTskdCgpO2ZvZT17dG9rZW5pemU6bkZ0fX0pO2Z1bmN0aW9uIG9GdCh0KXtsZXQgZT10aGlzLGE9W10saT0wLHIscyxuO3JldHVybiBvO2Z1bmN0aW9uIG8oUyl7aWYoaTxhLmxlbmd0aCl7bGV0IEY9YVtpXTtyZXR1cm4gZS5jb250YWluZXJTdGF0ZT1GWzFdLHQuYXR0ZW1wdChGWzBdLmNvbnRpbnVhdGlvbixkLGMpKFMpfXJldHVybiBjKFMpfWZ1bmN0aW9uIGQoUyl7aWYoaSsrLGUuY29udGFpbmVyU3RhdGUuX2Nsb3NlRmxvdyl7ZS5jb250YWluZXJTdGF0ZS5fY2xvc2VGbG93PXZvaWQgMCxyJiZNKCk7bGV0IEY9ZS5ldmVudHMubGVuZ3RoLF89RixrO2Zvcig7Xy0tOylpZihlLmV2ZW50c1tfXVswXT09PSJleGl0IiYmZS5ldmVudHNbX11bMV0udHlwZT09PSJjaHVua0Zsb3ciKXtrPWUuZXZlbnRzW19dWzFdLmVuZDticmVha314KGkpO2xldCBOPUY7Zm9yKDtOPGUuZXZlbnRzLmxlbmd0aDspZS5ldmVudHNbTl1bMV0uZW5kPXsuLi5rfSxOKys7cmV0dXJuIFIxKGUuZXZlbnRzLF8rMSwwLGUuZXZlbnRzLnNsaWNlKEYpKSxlLmV2ZW50cy5sZW5ndGg9TixjKFMpfXJldHVybiBvKFMpfWZ1bmN0aW9uIGMoUyl7aWYoaT09PWEubGVuZ3RoKXtpZighcilyZXR1cm4gZihTKTtpZihyLmN1cnJlbnRDb25zdHJ1Y3QmJnIuY3VycmVudENvbnN0cnVjdC5jb25jcmV0ZSlyZXR1cm4geShTKTtlLmludGVycnVwdD0hIShyLmN1cnJlbnRDb25zdHJ1Y3QmJiFyLl9nZm1UYWJsZUR5bmFtaWNJbnRlcnJ1cHRIYWNrKX1yZXR1cm4gZS5jb250YWluZXJTdGF0ZT17fSx0LmNoZWNrKGdvZSxoLGwpKFMpfWZ1bmN0aW9uIGgoUyl7cmV0dXJuIHImJk0oKSx4KGkpLGYoUyl9ZnVuY3Rpb24gbChTKXtyZXR1cm4gZS5wYXJzZXIubGF6eVtlLm5vdygpLmxpbmVdPWkhPT1hLmxlbmd0aCxuPWUubm93KCkub2Zmc2V0LHkoUyl9ZnVuY3Rpb24gZihTKXtyZXR1cm4gZS5jb250YWluZXJTdGF0ZT17fSx0LmF0dGVtcHQoZ29lLGcseSkoUyl9ZnVuY3Rpb24gZyhTKXtyZXR1cm4gaSsrLGEucHVzaChbZS5jdXJyZW50Q29uc3RydWN0LGUuY29udGFpbmVyU3RhdGVdKSxmKFMpfWZ1bmN0aW9uIHkoUyl7aWYoUz09PW51bGwpe3ImJk0oKSx4KDApLHQuY29uc3VtZShTKTtyZXR1cm59cmV0dXJuIHI9cnx8ZS5wYXJzZXIuZmxvdyhlLm5vdygpKSx0LmVudGVyKCJjaHVua0Zsb3ciLHtfdG9rZW5pemVyOnIsY29udGVudFR5cGU6ImZsb3ciLHByZXZpb3VzOnN9KSx2KFMpfWZ1bmN0aW9uIHYoUyl7aWYoUz09PW51bGwpe20odC5leGl0KCJjaHVua0Zsb3ciKSwhMCkseCgwKSx0LmNvbnN1bWUoUyk7cmV0dXJufXJldHVybiBPZShTKT8odC5jb25zdW1lKFMpLG0odC5leGl0KCJjaHVua0Zsb3ciKSksaT0wLGUuaW50ZXJydXB0PXZvaWQgMCxvKToodC5jb25zdW1lKFMpLHYpfWZ1bmN0aW9uIG0oUyxGKXtsZXQgXz1lLnNsaWNlU3RyZWFtKFMpO2lmKEYmJl8ucHVzaChudWxsKSxTLnByZXZpb3VzPXMscyYmKHMubmV4dD1TKSxzPVMsci5kZWZpbmVTa2lwKFMuc3RhcnQpLHIud3JpdGUoXyksZS5wYXJzZXIubGF6eVtTLnN0YXJ0LmxpbmVdKXtsZXQgaz1yLmV2ZW50cy5sZW5ndGg7Zm9yKDtrLS07KWlmKHIuZXZlbnRzW2tdWzFdLnN0YXJ0Lm9mZnNldDxuJiYoIXIuZXZlbnRzW2tdWzFdLmVuZHx8ci5ldmVudHNba11bMV0uZW5kLm9mZnNldD5uKSlyZXR1cm47bGV0IE49ZS5ldmVudHMubGVuZ3RoLEw9TixBLHE7Zm9yKDtMLS07KWlmKGUuZXZlbnRzW0xdWzBdPT09ImV4aXQiJiZlLmV2ZW50c1tMXVsxXS50eXBlPT09ImNodW5rRmxvdyIpe2lmKEEpe3E9ZS5ldmVudHNbTF1bMV0uZW5kO2JyZWFrfUE9ITB9Zm9yKHgoaSksaz1OO2s8ZS5ldmVudHMubGVuZ3RoOyllLmV2ZW50c1trXVsxXS5lbmQ9ey4uLnF9LGsrKztSMShlLmV2ZW50cyxMKzEsMCxlLmV2ZW50cy5zbGljZShOKSksZS5ldmVudHMubGVuZ3RoPWt9fWZ1bmN0aW9uIHgoUyl7bGV0IEY9YS5sZW5ndGg7Zm9yKDtGLS0gPlM7KXtsZXQgXz1hW0ZdO2UuY29udGFpbmVyU3RhdGU9X1sxXSxfWzBdLmV4aXQuY2FsbChlLHQpfWEubGVuZ3RoPVN9ZnVuY3Rpb24gTSgpe3Iud3JpdGUoW251bGxdKSxzPXZvaWQgMCxyPXZvaWQgMCxlLmNvbnRhaW5lclN0YXRlLl9jbG9zZUZsb3c9dm9pZCAwfX1mdW5jdGlvbiBsRnQodCxlLGEpe3JldHVybiBpdCh0LHQuYXR0ZW1wdCh0aGlzLnBhcnNlci5jb25zdHJ1Y3RzLmRvY3VtZW50LGUsYSksImxpbmVQcmVmaXgiLHRoaXMucGFyc2VyLmNvbnN0cnVjdHMuZGlzYWJsZS5udWxsLmluY2x1ZGVzKCJjb2RlSW5kZW50ZWQiKT92b2lkIDA6NCl9dmFyIGJvZSxnb2Usdm9lPWIoKCk9PntCMSgpOyR0KCk7QXIoKTtib2U9e3Rva2VuaXplOm9GdH0sZ29lPXt0b2tlbml6ZTpsRnR9fSk7ZnVuY3Rpb24gY0Z0KHQpe2xldCBlPXRoaXMsYT10LmF0dGVtcHQoSXIsaSx0LmF0dGVtcHQodGhpcy5wYXJzZXIuY29uc3RydWN0cy5mbG93SW5pdGlhbCxyLGl0KHQsdC5hdHRlbXB0KHRoaXMucGFyc2VyLmNvbnN0cnVjdHMuZmxvdyxyLHQuYXR0ZW1wdChRVCxyKSksImxpbmVQcmVmaXgiKSkpO3JldHVybiBhO2Z1bmN0aW9uIGkocyl7aWYocz09PW51bGwpe3QuY29uc3VtZShzKTtyZXR1cm59cmV0dXJuIHQuZW50ZXIoImxpbmVFbmRpbmdCbGFuayIpLHQuY29uc3VtZShzKSx0LmV4aXQoImxpbmVFbmRpbmdCbGFuayIpLGUuY3VycmVudENvbnN0cnVjdD12b2lkIDAsYX1mdW5jdGlvbiByKHMpe2lmKHM9PT1udWxsKXt0LmNvbnN1bWUocyk7cmV0dXJufXJldHVybiB0LmVudGVyKCJsaW5lRW5kaW5nIiksdC5jb25zdW1lKHMpLHQuZXhpdCgibGluZUVuZGluZyIpLGUuY3VycmVudENvbnN0cnVjdD12b2lkIDAsYX19dmFyIHlvZSx4b2U9YigoKT0+e1o5KCk7QjEoKTskdCgpO3lvZT17dG9rZW5pemU6Y0Z0fX0pO2Z1bmN0aW9uIHdvZSh0KXtyZXR1cm57cmVzb2x2ZUFsbDpNb2UodD09PSJ0ZXh0Ij9kRnQ6dm9pZCAwKSx0b2tlbml6ZTplfTtmdW5jdGlvbiBlKGEpe2xldCBpPXRoaXMscj10aGlzLnBhcnNlci5jb25zdHJ1Y3RzW3RdLHM9YS5hdHRlbXB0KHIsbixvKTtyZXR1cm4gbjtmdW5jdGlvbiBuKGgpe3JldHVybiBjKGgpP3MoaCk6byhoKX1mdW5jdGlvbiBvKGgpe2lmKGg9PT1udWxsKXthLmNvbnN1bWUoaCk7cmV0dXJufXJldHVybiBhLmVudGVyKCJkYXRhIiksYS5jb25zdW1lKGgpLGR9ZnVuY3Rpb24gZChoKXtyZXR1cm4gYyhoKT8oYS5leGl0KCJkYXRhIikscyhoKSk6KGEuY29uc3VtZShoKSxkKX1mdW5jdGlvbiBjKGgpe2lmKGg9PT1udWxsKXJldHVybiEwO2xldCBsPXJbaF0sZj0tMTtpZihsKWZvcig7KytmPGwubGVuZ3RoOyl7bGV0IGc9bFtmXTtpZighZy5wcmV2aW91c3x8Zy5wcmV2aW91cy5jYWxsKGksaS5wcmV2aW91cykpcmV0dXJuITB9cmV0dXJuITF9fX1mdW5jdGlvbiBNb2UodCl7cmV0dXJuIGU7ZnVuY3Rpb24gZShhLGkpe2xldCByPS0xLHM7Zm9yKDsrK3I8PWEubGVuZ3RoOylzPT09dm9pZCAwP2Fbcl0mJmFbcl1bMV0udHlwZT09PSJkYXRhIiYmKHM9cixyKyspOighYVtyXXx8YVtyXVsxXS50eXBlIT09ImRhdGEiKSYmKHIhPT1zKzImJihhW3NdWzFdLmVuZD1hW3ItMV1bMV0uZW5kLGEuc3BsaWNlKHMrMixyLXMtMikscj1zKzIpLHM9dm9pZCAwKTtyZXR1cm4gdD90KGEsaSk6YX19ZnVuY3Rpb24gZEZ0KHQsZSl7bGV0IGE9MDtmb3IoOysrYTw9dC5sZW5ndGg7KWlmKChhPT09dC5sZW5ndGh8fHRbYV1bMV0udHlwZT09PSJsaW5lRW5kaW5nIikmJnRbYS0xXVsxXS50eXBlPT09ImRhdGEiKXtsZXQgaT10W2EtMV1bMV0scj1lLnNsaWNlU3RyZWFtKGkpLHM9ci5sZW5ndGgsbj0tMSxvPTAsZDtmb3IoO3MtLTspe2xldCBjPXJbc107aWYodHlwZW9mIGM9PSJzdHJpbmciKXtmb3Iobj1jLmxlbmd0aDtjLmNoYXJDb2RlQXQobi0xKT09PTMyOylvKyssbi0tO2lmKG4pYnJlYWs7bj0tMX1lbHNlIGlmKGM9PT0tMilkPSEwLG8rKztlbHNlIGlmKGMhPT0tMSl7cysrO2JyZWFrfX1pZihlLl9jb250ZW50VHlwZVRleHRUcmFpbGluZyYmYT09PXQubGVuZ3RoJiYobz0wKSxvKXtsZXQgYz17dHlwZTphPT09dC5sZW5ndGh8fGR8fG88Mj8ibGluZVN1ZmZpeCI6ImhhcmRCcmVha1RyYWlsaW5nIixzdGFydDp7X2J1ZmZlckluZGV4OnM/bjppLnN0YXJ0Ll9idWZmZXJJbmRleCtuLF9pbmRleDppLnN0YXJ0Ll9pbmRleCtzLGxpbmU6aS5lbmQubGluZSxjb2x1bW46aS5lbmQuY29sdW1uLW8sb2Zmc2V0OmkuZW5kLm9mZnNldC1vfSxlbmQ6ey4uLmkuZW5kfX07aS5lbmQ9ey4uLmMuc3RhcnR9LGkuc3RhcnQub2Zmc2V0PT09aS5lbmQub2Zmc2V0P09iamVjdC5hc3NpZ24oaSxjKToodC5zcGxpY2UoYSwwLFsiZW50ZXIiLGMsZV0sWyJleGl0IixjLGVdKSxhKz0yKX1hKyt9cmV0dXJuIHR9dmFyIHpvZSxrb2UsU29lLGtMPWIoKCk9Pnt6b2U9e3Jlc29sdmVBbGw6TW9lKCl9LGtvZT13b2UoInN0cmluZyIpLFNvZT13b2UoInRleHQiKX0pO3ZhciBTTD17fTtHZShTTCx7YXR0ZW50aW9uTWFya2VyczooKT0+dkZ0LGNvbnRlbnRJbml0aWFsOigpPT5wRnQsZGlzYWJsZTooKT0+eUZ0LGRvY3VtZW50OigpPT5oRnQsZmxvdzooKT0+ZkZ0LGZsb3dJbml0aWFsOigpPT51RnQsaW5zaWRlU3BhbjooKT0+YkZ0LHN0cmluZzooKT0+bUZ0LHRleHQ6KCk9PmdGdH0pO3ZhciBoRnQscEZ0LHVGdCxmRnQsbUZ0LGdGdCxiRnQsdkZ0LHlGdCxDb2U9YigoKT0+e1o5KCk7a0woKTtoRnQ9ezQyOlUyLDQzOlUyLDQ1OlUyLDQ4OlUyLDQ5OlUyLDUwOlUyLDUxOlUyLDUyOlUyLDUzOlUyLDU0OlUyLDU1OlUyLDU2OlUyLDU3OlUyLDYyOlI5fSxwRnQ9ezkxOmlMfSx1RnQ9e1stMl06VTYsWy0xXTpVNiwzMjpVNn0sZkZ0PXszNTpzTCw0MjpTMCw0NTpbWTksUzBdLDYwOm9MLDYxOlk5LDk1OlMwLDk2OnE5LDEyNjpxOX0sbUZ0PXszODpIOSw5MjpCOX0sZ0Z0PXtbLTVdOlk2LFstNF06WTYsWy0zXTpZNiwzMzpjTCwzODpIOSw0MjpqNiw2MDpbWVQsbExdLDkxOmRMLDkyOltyTCxCOV0sOTM6azAsOTU6ajYsOTY6WlR9LGJGdD17bnVsbDpbajYsem9lXX0sdkZ0PXtudWxsOls0Miw5NV19LHlGdD17bnVsbDpbXX19KTtmdW5jdGlvbiBfb2UodCxlLGEpe2xldCBpPXtfYnVmZmVySW5kZXg6LTEsX2luZGV4OjAsbGluZTphJiZhLmxpbmV8fDEsY29sdW1uOmEmJmEuY29sdW1ufHwxLG9mZnNldDphJiZhLm9mZnNldHx8MH0scj17fSxzPVtdLG49W10sbz1bXSxkPSEwLGM9e2F0dGVtcHQ6QShOKSxjaGVjazpBKEwpLGNvbnN1bWU6RixlbnRlcjpfLGV4aXQ6ayxpbnRlcnJ1cHQ6QShMLHtpbnRlcnJ1cHQ6ITB9KX0saD17Y29kZTpudWxsLGNvbnRhaW5lclN0YXRlOnt9LGRlZmluZVNraXA6eCxldmVudHM6W10sbm93Om0scGFyc2VyOnQscHJldmlvdXM6bnVsbCxzbGljZVNlcmlhbGl6ZTp5LHNsaWNlU3RyZWFtOnYsd3JpdGU6Z30sbD1lLnRva2VuaXplLmNhbGwoaCxjKSxmO3JldHVybiBlLnJlc29sdmVBbGwmJnMucHVzaChlKSxoO2Z1bmN0aW9uIGcoRSl7cmV0dXJuIG49WjEobixFKSxNKCksbltuLmxlbmd0aC0xXSE9PW51bGw/W106KHEoZSwwKSxoLmV2ZW50cz1IbihzLGguZXZlbnRzLGgpLGguZXZlbnRzKX1mdW5jdGlvbiB5KEUsVCl7cmV0dXJuIHdGdCh2KEUpLFQpfWZ1bmN0aW9uIHYoRSl7cmV0dXJuIHhGdChuLEUpfWZ1bmN0aW9uIG0oKXtsZXR7X2J1ZmZlckluZGV4OkUsX2luZGV4OlQsbGluZTokLGNvbHVtbjpWLG9mZnNldDpSfT1pO3JldHVybntfYnVmZmVySW5kZXg6RSxfaW5kZXg6VCxsaW5lOiQsY29sdW1uOlYsb2Zmc2V0OlJ9fWZ1bmN0aW9uIHgoRSl7cltFLmxpbmVdPUUuY29sdW1uLHooKX1mdW5jdGlvbiBNKCl7bGV0IEU7Zm9yKDtpLl9pbmRleDxuLmxlbmd0aDspe2xldCBUPW5baS5faW5kZXhdO2lmKHR5cGVvZiBUPT0ic3RyaW5nIilmb3IoRT1pLl9pbmRleCxpLl9idWZmZXJJbmRleDwwJiYoaS5fYnVmZmVySW5kZXg9MCk7aS5faW5kZXg9PT1FJiZpLl9idWZmZXJJbmRleDxULmxlbmd0aDspUyhULmNoYXJDb2RlQXQoaS5fYnVmZmVySW5kZXgpKTtlbHNlIFMoVCl9fWZ1bmN0aW9uIFMoRSl7ZD12b2lkIDAsZj1FLGw9bChFKX1mdW5jdGlvbiBGKEUpe09lKEUpPyhpLmxpbmUrKyxpLmNvbHVtbj0xLGkub2Zmc2V0Kz1FPT09LTM/MjoxLHooKSk6RSE9PS0xJiYoaS5jb2x1bW4rKyxpLm9mZnNldCsrKSxpLl9idWZmZXJJbmRleDwwP2kuX2luZGV4Kys6KGkuX2J1ZmZlckluZGV4KyssaS5fYnVmZmVySW5kZXg9PT1uW2kuX2luZGV4XS5sZW5ndGgmJihpLl9idWZmZXJJbmRleD0tMSxpLl9pbmRleCsrKSksaC5wcmV2aW91cz1FLGQ9ITB9ZnVuY3Rpb24gXyhFLFQpe2xldCAkPVR8fHt9O3JldHVybiAkLnR5cGU9RSwkLnN0YXJ0PW0oKSxoLmV2ZW50cy5wdXNoKFsiZW50ZXIiLCQsaF0pLG8ucHVzaCgkKSwkfWZ1bmN0aW9uIGsoRSl7bGV0IFQ9by5wb3AoKTtyZXR1cm4gVC5lbmQ9bSgpLGguZXZlbnRzLnB1c2goWyJleGl0IixULGhdKSxUfWZ1bmN0aW9uIE4oRSxUKXtxKEUsVC5mcm9tKX1mdW5jdGlvbiBMKEUsVCl7VC5yZXN0b3JlKCl9ZnVuY3Rpb24gQShFLFQpe3JldHVybiAkO2Z1bmN0aW9uICQoVixSLFUpe2xldCByZSxqLG1lLHdlO3JldHVybiBBcnJheS5pc0FycmF5KFYpP2NlKFYpOiJ0b2tlbml6ZSJpbiBWP2NlKFtWXSk6SChWKTtmdW5jdGlvbiBIKE8pe3JldHVybiBaO2Z1bmN0aW9uIFooWSl7bGV0IG9lPVkhPT1udWxsJiZPW1ldLGdlPVkhPT1udWxsJiZPLm51bGwsYmU9Wy4uLkFycmF5LmlzQXJyYXkob2UpP29lOm9lP1tvZV06W10sLi4uQXJyYXkuaXNBcnJheShnZSk/Z2U6Z2U/W2dlXTpbXV07cmV0dXJuIGNlKGJlKShZKX19ZnVuY3Rpb24gY2UoTyl7cmV0dXJuIHJlPU8saj0wLE8ubGVuZ3RoPT09MD9VOmtlKE9bal0pfWZ1bmN0aW9uIGtlKE8pe3JldHVybiBaO2Z1bmN0aW9uIFooWSl7cmV0dXJuIHdlPUMoKSxtZT1PLE8ucGFydGlhbHx8KGguY3VycmVudENvbnN0cnVjdD1PKSxPLm5hbWUmJmgucGFyc2VyLmNvbnN0cnVjdHMuZGlzYWJsZS5udWxsLmluY2x1ZGVzKE8ubmFtZSk/RChZKTpPLnRva2VuaXplLmNhbGwoVD9PYmplY3QuYXNzaWduKE9iamVjdC5jcmVhdGUoaCksVCk6aCxjLFcsRCkoWSl9fWZ1bmN0aW9uIFcoTyl7cmV0dXJuIGQ9ITAsRShtZSx3ZSksUn1mdW5jdGlvbiBEKE8pe3JldHVybiBkPSEwLHdlLnJlc3RvcmUoKSwrK2o8cmUubGVuZ3RoP2tlKHJlW2pdKTpVfX19ZnVuY3Rpb24gcShFLFQpe0UucmVzb2x2ZUFsbCYmIXMuaW5jbHVkZXMoRSkmJnMucHVzaChFKSxFLnJlc29sdmUmJlIxKGguZXZlbnRzLFQsaC5ldmVudHMubGVuZ3RoLVQsRS5yZXNvbHZlKGguZXZlbnRzLnNsaWNlKFQpLGgpKSxFLnJlc29sdmVUbyYmKGguZXZlbnRzPUUucmVzb2x2ZVRvKGguZXZlbnRzLGgpKX1mdW5jdGlvbiBDKCl7bGV0IEU9bSgpLFQ9aC5wcmV2aW91cywkPWguY3VycmVudENvbnN0cnVjdCxWPWguZXZlbnRzLmxlbmd0aCxSPUFycmF5LmZyb20obyk7cmV0dXJue2Zyb206VixyZXN0b3JlOlV9O2Z1bmN0aW9uIFUoKXtpPUUsaC5wcmV2aW91cz1ULGguY3VycmVudENvbnN0cnVjdD0kLGguZXZlbnRzLmxlbmd0aD1WLG89Uix6KCl9fWZ1bmN0aW9uIHooKXtpLmxpbmUgaW4gciYmaS5jb2x1bW48MiYmKGkuY29sdW1uPXJbaS5saW5lXSxpLm9mZnNldCs9cltpLmxpbmVdLTEpfX1mdW5jdGlvbiB4RnQodCxlKXtsZXQgYT1lLnN0YXJ0Ll9pbmRleCxpPWUuc3RhcnQuX2J1ZmZlckluZGV4LHI9ZS5lbmQuX2luZGV4LHM9ZS5lbmQuX2J1ZmZlckluZGV4LG47aWYoYT09PXIpbj1bdFthXS5zbGljZShpLHMpXTtlbHNle2lmKG49dC5zbGljZShhLHIpLGk+LTEpe2xldCBvPW5bMF07dHlwZW9mIG89PSJzdHJpbmciP25bMF09by5zbGljZShpKTpuLnNoaWZ0KCl9cz4wJiZuLnB1c2godFtyXS5zbGljZSgwLHMpKX1yZXR1cm4gbn1mdW5jdGlvbiB3RnQodCxlKXtsZXQgYT0tMSxpPVtdLHI7Zm9yKDsrK2E8dC5sZW5ndGg7KXtsZXQgcz10W2FdLG47aWYodHlwZW9mIHM9PSJzdHJpbmciKW49cztlbHNlIHN3aXRjaChzKXtjYXNlLTU6e249IlxyIjticmVha31jYXNlLTQ6e249YApgO2JyZWFrfWNhc2UtMzp7bj1gXHIKYDticmVha31jYXNlLTI6e249ZT8iICI6IgkiO2JyZWFrfWNhc2UtMTp7aWYoIWUmJnIpY29udGludWU7bj0iICI7YnJlYWt9ZGVmYXVsdDpuPVN0cmluZy5mcm9tQ2hhckNvZGUocyl9cj1zPT09LTIsaS5wdXNoKG4pfXJldHVybiBpLmpvaW4oIiIpfXZhciBUb2U9YigoKT0+eyR0KCk7QXIoKTtWNigpfSk7ZnVuY3Rpb24gWjYodCl7bGV0IGk9e2NvbnN0cnVjdHM6UDkoW1NMLC4uLih0fHx7fSkuZXh0ZW5zaW9uc3x8W11dKSxjb250ZW50OnIoZm9lKSxkZWZpbmVkOltdLGRvY3VtZW50OnIoYm9lKSxmbG93OnIoeW9lKSxsYXp5Ont9LHN0cmluZzpyKGtvZSksdGV4dDpyKFNvZSl9O3JldHVybiBpO2Z1bmN0aW9uIHIocyl7cmV0dXJuIG47ZnVuY3Rpb24gbihvKXtyZXR1cm4gX29lKGkscyxvKX19fXZhciBDTD1iKCgpPT57TjkoKTttb2UoKTt2b2UoKTt4b2UoKTtrTCgpO0NvZSgpO1RvZSgpfSk7ZnVuY3Rpb24gWDYodCl7Zm9yKDshVjkodCk7KTtyZXR1cm4gdH12YXIgX0w9YigoKT0+e0tUKCl9KTtmdW5jdGlvbiBLNigpe2xldCB0PTEsZT0iIixhPSEwLGk7cmV0dXJuIHI7ZnVuY3Rpb24gcihzLG4sbyl7bGV0IGQ9W10sYyxoLGwsZixnO2ZvcihzPWUrKHR5cGVvZiBzPT0ic3RyaW5nIj9zLnRvU3RyaW5nKCk6bmV3IFRleHREZWNvZGVyKG58fHZvaWQgMCkuZGVjb2RlKHMpKSxsPTAsZT0iIixhJiYocy5jaGFyQ29kZUF0KDApPT09NjUyNzkmJmwrKyxhPXZvaWQgMCk7bDxzLmxlbmd0aDspe2lmKExvZS5sYXN0SW5kZXg9bCxjPUxvZS5leGVjKHMpLGY9YyYmYy5pbmRleCE9PXZvaWQgMD9jLmluZGV4OnMubGVuZ3RoLGc9cy5jaGFyQ29kZUF0KGYpLCFjKXtlPXMuc2xpY2UobCk7YnJlYWt9aWYoZz09PTEwJiZsPT09ZiYmaSlkLnB1c2goLTMpLGk9dm9pZCAwO2Vsc2Ugc3dpdGNoKGkmJihkLnB1c2goLTUpLGk9dm9pZCAwKSxsPGYmJihkLnB1c2gocy5zbGljZShsLGYpKSx0Kz1mLWwpLGcpe2Nhc2UgMDp7ZC5wdXNoKDY1NTMzKSx0Kys7YnJlYWt9Y2FzZSA5Ontmb3IoaD1NYXRoLmNlaWwodC80KSo0LGQucHVzaCgtMik7dCsrPGg7KWQucHVzaCgtMSk7YnJlYWt9Y2FzZSAxMDp7ZC5wdXNoKC00KSx0PTE7YnJlYWt9ZGVmYXVsdDppPSEwLHQ9MX1sPWYrMX1yZXR1cm4gbyYmKGkmJmQucHVzaCgtNSksZSYmZC5wdXNoKGUpLGQucHVzaChudWxsKSksZH19dmFyIExvZSxUTD1iKCgpPT57TG9lPS9bXDBcdFxuXHJdL2d9KTtmdW5jdGlvbiBnTjEodCxlLGEpe3JldHVybiB0eXBlb2YgZSE9InN0cmluZyImJihhPWUsZT12b2lkIDApLE1MKGEpKFg2KFo2KGEpLmRvY3VtZW50KCkud3JpdGUoSzYoKSh0LGUsITApKSkpfXZhciAkb2U9YigoKT0+e3pMKCk7Q0woKTtfTCgpO1RMKCk7ekwoKTtDTCgpO19MKCk7VEwoKX0pO2Z1bmN0aW9uIExMKHQsZSxhKXtyZXR1cm4gZSYmdHlwZW9mIGU9PSJvYmplY3QiJiYoYT1lLGU9dm9pZCAwKSxNRnQoYSkoWDYoWjYoYSkuZG9jdW1lbnQoKS53cml0ZShLNigpKHQsZSwhMCkpKSl9ZnVuY3Rpb24gTUZ0KHQpe2xldCBlPXt0cmFuc2Zvcm1zOltdLGNhbkNvbnRhaW5Fb2xzOlsiZW1waGFzaXMiLCJmcmFnbWVudCIsImhlYWRpbmciLCJwYXJhZ3JhcGgiLCJzdHJvbmciXSxlbnRlcjp7YXV0b2xpbms6cyhkZSksYXV0b2xpbmtQcm90b2NvbDpBLGF1dG9saW5rRW1haWw6QSxhdHhIZWFkaW5nOnMoQiksYmxvY2tRdW90ZTpzKFkpLGNoYXJhY3RlckVzY2FwZTpBLGNoYXJhY3RlclJlZmVyZW5jZTpBLGNvZGVGZW5jZWQ6cyhvZSksY29kZUZlbmNlZEZlbmNlSW5mbzpuLGNvZGVGZW5jZWRGZW5jZU1ldGE6bixjb2RlSW5kZW50ZWQ6cyhvZSxuKSxjb2RlVGV4dDpzKGdlLG4pLGNvZGVUZXh0RGF0YTpBLGRhdGE6QSxjb2RlRmxvd1ZhbHVlOkEsZGVmaW5pdGlvbjpzKGJlKSxkZWZpbml0aW9uRGVzdGluYXRpb25TdHJpbmc6bixkZWZpbml0aW9uTGFiZWxTdHJpbmc6bixkZWZpbml0aW9uVGl0bGVTdHJpbmc6bixlbXBoYXNpczpzKCRlKSxoYXJkQnJlYWtFc2NhcGU6cyhQKSxoYXJkQnJlYWtUcmFpbGluZzpzKFApLGh0bWxGbG93OnMoSyxuKSxodG1sRmxvd0RhdGE6QSxodG1sVGV4dDpzKEssbiksaHRtbFRleHREYXRhOkEsaW1hZ2U6cyhmZSksbGFiZWw6bixsaW5rOnMoZGUpLGxpc3RJdGVtOnMoaGUpLGxpc3RJdGVtVmFsdWU6ZixsaXN0T3JkZXJlZDpzKF9lLGwpLGxpc3RVbm9yZGVyZWQ6cyhfZSkscGFyYWdyYXBoOnModGUpLHJlZmVyZW5jZTpILHJlZmVyZW5jZVN0cmluZzpuLHJlc291cmNlRGVzdGluYXRpb25TdHJpbmc6bixyZXNvdXJjZVRpdGxlU3RyaW5nOm4sc2V0ZXh0SGVhZGluZzpzKEIpLHN0cm9uZzpzKHplKSx0aGVtYXRpY0JyZWFrOnMoV2UpfSxleGl0OnthdHhIZWFkaW5nOmQoKSxhdHhIZWFkaW5nU2VxdWVuY2U6XyxhdXRvbGluazpkKCksYXV0b2xpbmtFbWFpbDpaLGF1dG9saW5rUHJvdG9jb2w6TyxibG9ja1F1b3RlOmQoKSxjaGFyYWN0ZXJFc2NhcGVWYWx1ZTpxLGNoYXJhY3RlclJlZmVyZW5jZU1hcmtlckhleGFkZWNpbWFsOmtlLGNoYXJhY3RlclJlZmVyZW5jZU1hcmtlck51bWVyaWM6a2UsY2hhcmFjdGVyUmVmZXJlbmNlVmFsdWU6VyxjaGFyYWN0ZXJSZWZlcmVuY2U6RCxjb2RlRmVuY2VkOmQobSksY29kZUZlbmNlZEZlbmNlOnYsY29kZUZlbmNlZEZlbmNlSW5mbzpnLGNvZGVGZW5jZWRGZW5jZU1ldGE6eSxjb2RlRmxvd1ZhbHVlOnEsY29kZUluZGVudGVkOmQoeCksY29kZVRleHQ6ZCgkKSxjb2RlVGV4dERhdGE6cSxkYXRhOnEsZGVmaW5pdGlvbjpkKCksZGVmaW5pdGlvbkRlc3RpbmF0aW9uU3RyaW5nOkYsZGVmaW5pdGlvbkxhYmVsU3RyaW5nOk0sZGVmaW5pdGlvblRpdGxlU3RyaW5nOlMsZW1waGFzaXM6ZCgpLGhhcmRCcmVha0VzY2FwZTpkKHopLGhhcmRCcmVha1RyYWlsaW5nOmQoeiksaHRtbEZsb3c6ZChFKSxodG1sRmxvd0RhdGE6cSxodG1sVGV4dDpkKFQpLGh0bWxUZXh0RGF0YTpxLGltYWdlOmQoUiksbGFiZWw6cmUsbGFiZWxUZXh0OlUsbGluZUVuZGluZzpDLGxpbms6ZChWKSxsaXN0SXRlbTpkKCksbGlzdE9yZGVyZWQ6ZCgpLGxpc3RVbm9yZGVyZWQ6ZCgpLHBhcmFncmFwaDpkKCkscmVmZXJlbmNlU3RyaW5nOmNlLHJlc291cmNlRGVzdGluYXRpb25TdHJpbmc6aixyZXNvdXJjZVRpdGxlU3RyaW5nOm1lLHJlc291cmNlOndlLHNldGV4dEhlYWRpbmc6ZChMKSxzZXRleHRIZWFkaW5nTGluZVNlcXVlbmNlOk4sc2V0ZXh0SGVhZGluZ1RleHQ6ayxzdHJvbmc6ZCgpLHRoZW1hdGljQnJlYWs6ZCgpfX07RG9lKGUsKHR8fHt9KS5tZGFzdEV4dGVuc2lvbnN8fFtdKTtsZXQgYT17fTtyZXR1cm4gaTtmdW5jdGlvbiBpKHllKXtsZXQgZWU9e3R5cGU6InJvb3QiLGNoaWxkcmVuOltdfSxhZT17c3RhY2s6W2VlXSx0b2tlblN0YWNrOltdLGNvbmZpZzplLGVudGVyOm8sZXhpdDpjLGJ1ZmZlcjpuLHJlc3VtZTpoLGRhdGE6YX0sdmU9W10sUGU9LTE7Zm9yKDsrK1BlPHllLmxlbmd0aDspaWYoeWVbUGVdWzFdLnR5cGU9PT0ibGlzdE9yZGVyZWQifHx5ZVtQZV1bMV0udHlwZT09PSJsaXN0VW5vcmRlcmVkIilpZih5ZVtQZV1bMF09PT0iZW50ZXIiKXZlLnB1c2goUGUpO2Vsc2V7bGV0IFZlPXZlLnBvcCgpO1BlPXIoeWUsVmUsUGUpfWZvcihQZT0tMTsrK1BlPHllLmxlbmd0aDspe2xldCBWZT1lW3llW1BlXVswXV07QW9lLmNhbGwoVmUseWVbUGVdWzFdLnR5cGUpJiZWZVt5ZVtQZV1bMV0udHlwZV0uY2FsbChPYmplY3QuYXNzaWduKHtzbGljZVNlcmlhbGl6ZTp5ZVtQZV1bMl0uc2xpY2VTZXJpYWxpemV9LGFlKSx5ZVtQZV1bMV0pfWlmKGFlLnRva2VuU3RhY2subGVuZ3RoPjApe2xldCBWZT1hZS50b2tlblN0YWNrW2FlLnRva2VuU3RhY2subGVuZ3RoLTFdOyhWZVsxXXx8RW9lKS5jYWxsKGFlLHZvaWQgMCxWZVswXSl9Zm9yKGVlLnBvc2l0aW9uPXtzdGFydDpxbih5ZS5sZW5ndGg+MD95ZVswXVsxXS5zdGFydDp7bGluZToxLGNvbHVtbjoxLG9mZnNldDowfSksZW5kOnFuKHllLmxlbmd0aD4wP3llW3llLmxlbmd0aC0yXVsxXS5lbmQ6e2xpbmU6MSxjb2x1bW46MSxvZmZzZXQ6MH0pfSxQZT0tMTsrK1BlPGUudHJhbnNmb3Jtcy5sZW5ndGg7KWVlPWUudHJhbnNmb3Jtc1tQZV0oZWUpfHxlZTtyZXR1cm4gZWV9ZnVuY3Rpb24gcih5ZSxlZSxhZSl7bGV0IHZlPWVlLTEsUGU9LTEsVmU9ITEseHQsb3QsTHQsWnQ7Zm9yKDsrK3ZlPD1hZTspe2xldCBpZT15ZVt2ZV07c3dpdGNoKGllWzFdLnR5cGUpe2Nhc2UibGlzdFVub3JkZXJlZCI6Y2FzZSJsaXN0T3JkZXJlZCI6Y2FzZSJibG9ja1F1b3RlIjp7aWVbMF09PT0iZW50ZXIiP1BlKys6UGUtLSxadD12b2lkIDA7YnJlYWt9Y2FzZSJsaW5lRW5kaW5nQmxhbmsiOntpZVswXT09PSJlbnRlciImJih4dCYmIVp0JiYhUGUmJiFMdCYmKEx0PXZlKSxadD12b2lkIDApO2JyZWFrfWNhc2UibGluZVByZWZpeCI6Y2FzZSJsaXN0SXRlbVZhbHVlIjpjYXNlImxpc3RJdGVtTWFya2VyIjpjYXNlImxpc3RJdGVtUHJlZml4IjpjYXNlImxpc3RJdGVtUHJlZml4V2hpdGVzcGFjZSI6YnJlYWs7ZGVmYXVsdDpadD12b2lkIDB9aWYoIVBlJiZpZVswXT09PSJlbnRlciImJmllWzFdLnR5cGU9PT0ibGlzdEl0ZW1QcmVmaXgifHxQZT09PS0xJiZpZVswXT09PSJleGl0IiYmKGllWzFdLnR5cGU9PT0ibGlzdFVub3JkZXJlZCJ8fGllWzFdLnR5cGU9PT0ibGlzdE9yZGVyZWQiKSl7aWYoeHQpe2xldCBzZT12ZTtmb3Iob3Q9dm9pZCAwO3NlLS07KXtsZXQgVGU9eWVbc2VdO2lmKFRlWzFdLnR5cGU9PT0ibGluZUVuZGluZyJ8fFRlWzFdLnR5cGU9PT0ibGluZUVuZGluZ0JsYW5rIil7aWYoVGVbMF09PT0iZXhpdCIpY29udGludWU7b3QmJih5ZVtvdF1bMV0udHlwZT0ibGluZUVuZGluZ0JsYW5rIixWZT0hMCksVGVbMV0udHlwZT0ibGluZUVuZGluZyIsb3Q9c2V9ZWxzZSBpZighKFRlWzFdLnR5cGU9PT0ibGluZVByZWZpeCJ8fFRlWzFdLnR5cGU9PT0iYmxvY2tRdW90ZVByZWZpeCJ8fFRlWzFdLnR5cGU9PT0iYmxvY2tRdW90ZVByZWZpeFdoaXRlc3BhY2UifHxUZVsxXS50eXBlPT09ImJsb2NrUXVvdGVNYXJrZXIifHxUZVsxXS50eXBlPT09Imxpc3RJdGVtSW5kZW50IikpYnJlYWt9THQmJighb3R8fEx0PG90KSYmKHh0Ll9zcHJlYWQ9ITApLHh0LmVuZD1PYmplY3QuYXNzaWduKHt9LG90P3llW290XVsxXS5zdGFydDppZVsxXS5lbmQpLHllLnNwbGljZShvdHx8dmUsMCxbImV4aXQiLHh0LGllWzJdXSksdmUrKyxhZSsrfWlmKGllWzFdLnR5cGU9PT0ibGlzdEl0ZW1QcmVmaXgiKXtsZXQgc2U9e3R5cGU6Imxpc3RJdGVtIixfc3ByZWFkOiExLHN0YXJ0Ok9iamVjdC5hc3NpZ24oe30saWVbMV0uc3RhcnQpLGVuZDp2b2lkIDB9O3h0PXNlLHllLnNwbGljZSh2ZSwwLFsiZW50ZXIiLHNlLGllWzJdXSksdmUrKyxhZSsrLEx0PXZvaWQgMCxadD0hMH19fXJldHVybiB5ZVtlZV1bMV0uX3NwcmVhZD1WZSxhZX1mdW5jdGlvbiBzKHllLGVlKXtyZXR1cm4gYWU7ZnVuY3Rpb24gYWUodmUpe28uY2FsbCh0aGlzLHllKHZlKSx2ZSksZWUmJmVlLmNhbGwodGhpcyx2ZSl9fWZ1bmN0aW9uIG4oKXt0aGlzLnN0YWNrLnB1c2goe3R5cGU6ImZyYWdtZW50IixjaGlsZHJlbjpbXX0pfWZ1bmN0aW9uIG8oeWUsZWUsYWUpe3RoaXMuc3RhY2tbdGhpcy5zdGFjay5sZW5ndGgtMV0uY2hpbGRyZW4ucHVzaCh5ZSksdGhpcy5zdGFjay5wdXNoKHllKSx0aGlzLnRva2VuU3RhY2sucHVzaChbZWUsYWV8fHZvaWQgMF0pLHllLnBvc2l0aW9uPXtzdGFydDpxbihlZS5zdGFydCksZW5kOnZvaWQgMH19ZnVuY3Rpb24gZCh5ZSl7cmV0dXJuIGVlO2Z1bmN0aW9uIGVlKGFlKXt5ZSYmeWUuY2FsbCh0aGlzLGFlKSxjLmNhbGwodGhpcyxhZSl9fWZ1bmN0aW9uIGMoeWUsZWUpe2xldCBhZT10aGlzLnN0YWNrLnBvcCgpLHZlPXRoaXMudG9rZW5TdGFjay5wb3AoKTtpZih2ZSl2ZVswXS50eXBlIT09eWUudHlwZSYmKGVlP2VlLmNhbGwodGhpcyx5ZSx2ZVswXSk6KHZlWzFdfHxFb2UpLmNhbGwodGhpcyx5ZSx2ZVswXSkpO2Vsc2UgdGhyb3cgbmV3IEVycm9yKCJDYW5ub3QgY2xvc2UgYCIreWUudHlwZSsiYCAoIitGbih7c3RhcnQ6eWUuc3RhcnQsZW5kOnllLmVuZH0pKyIpOiBpdFx1MjAxOXMgbm90IG9wZW4iKTthZS5wb3NpdGlvbi5lbmQ9cW4oeWUuZW5kKX1mdW5jdGlvbiBoKCl7cmV0dXJuIHkwKHRoaXMuc3RhY2sucG9wKCkpfWZ1bmN0aW9uIGwoKXt0aGlzLmRhdGEuZXhwZWN0aW5nRmlyc3RMaXN0SXRlbVZhbHVlPSEwfWZ1bmN0aW9uIGYoeWUpe2lmKHRoaXMuZGF0YS5leHBlY3RpbmdGaXJzdExpc3RJdGVtVmFsdWUpe2xldCBlZT10aGlzLnN0YWNrW3RoaXMuc3RhY2subGVuZ3RoLTJdO2VlLnN0YXJ0PU51bWJlci5wYXJzZUludCh0aGlzLnNsaWNlU2VyaWFsaXplKHllKSwxMCksdGhpcy5kYXRhLmV4cGVjdGluZ0ZpcnN0TGlzdEl0ZW1WYWx1ZT12b2lkIDB9fWZ1bmN0aW9uIGcoKXtsZXQgeWU9dGhpcy5yZXN1bWUoKSxlZT10aGlzLnN0YWNrW3RoaXMuc3RhY2subGVuZ3RoLTFdO2VlLmxhbmc9eWV9ZnVuY3Rpb24geSgpe2xldCB5ZT10aGlzLnJlc3VtZSgpLGVlPXRoaXMuc3RhY2tbdGhpcy5zdGFjay5sZW5ndGgtMV07ZWUubWV0YT15ZX1mdW5jdGlvbiB2KCl7dGhpcy5kYXRhLmZsb3dDb2RlSW5zaWRlfHwodGhpcy5idWZmZXIoKSx0aGlzLmRhdGEuZmxvd0NvZGVJbnNpZGU9ITApfWZ1bmN0aW9uIG0oKXtsZXQgeWU9dGhpcy5yZXN1bWUoKSxlZT10aGlzLnN0YWNrW3RoaXMuc3RhY2subGVuZ3RoLTFdO2VlLnZhbHVlPXllLnJlcGxhY2UoL14oXHI/XG58XHIpfChccj9cbnxccikkL2csIiIpLHRoaXMuZGF0YS5mbG93Q29kZUluc2lkZT12b2lkIDB9ZnVuY3Rpb24geCgpe2xldCB5ZT10aGlzLnJlc3VtZSgpLGVlPXRoaXMuc3RhY2tbdGhpcy5zdGFjay5sZW5ndGgtMV07ZWUudmFsdWU9eWUucmVwbGFjZSgvKFxyP1xufFxyKSQvZywiIil9ZnVuY3Rpb24gTSh5ZSl7bGV0IGVlPXRoaXMucmVzdW1lKCksYWU9dGhpcy5zdGFja1t0aGlzLnN0YWNrLmxlbmd0aC0xXTthZS5sYWJlbD1lZSxhZS5pZGVudGlmaWVyPUkxKHRoaXMuc2xpY2VTZXJpYWxpemUoeWUpKS50b0xvd2VyQ2FzZSgpfWZ1bmN0aW9uIFMoKXtsZXQgeWU9dGhpcy5yZXN1bWUoKSxlZT10aGlzLnN0YWNrW3RoaXMuc3RhY2subGVuZ3RoLTFdO2VlLnRpdGxlPXllfWZ1bmN0aW9uIEYoKXtsZXQgeWU9dGhpcy5yZXN1bWUoKSxlZT10aGlzLnN0YWNrW3RoaXMuc3RhY2subGVuZ3RoLTFdO2VlLnVybD15ZX1mdW5jdGlvbiBfKHllKXtsZXQgZWU9dGhpcy5zdGFja1t0aGlzLnN0YWNrLmxlbmd0aC0xXTtpZighZWUuZGVwdGgpe2xldCBhZT10aGlzLnNsaWNlU2VyaWFsaXplKHllKS5sZW5ndGg7ZWUuZGVwdGg9YWV9fWZ1bmN0aW9uIGsoKXt0aGlzLmRhdGEuc2V0ZXh0SGVhZGluZ1NsdXJwTGluZUVuZGluZz0hMH1mdW5jdGlvbiBOKHllKXtsZXQgZWU9dGhpcy5zdGFja1t0aGlzLnN0YWNrLmxlbmd0aC0xXTtlZS5kZXB0aD10aGlzLnNsaWNlU2VyaWFsaXplKHllKS5jb2RlUG9pbnRBdCgwKT09PTYxPzE6Mn1mdW5jdGlvbiBMKCl7dGhpcy5kYXRhLnNldGV4dEhlYWRpbmdTbHVycExpbmVFbmRpbmc9dm9pZCAwfWZ1bmN0aW9uIEEoeWUpe2xldCBhZT10aGlzLnN0YWNrW3RoaXMuc3RhY2subGVuZ3RoLTFdLmNoaWxkcmVuLHZlPWFlW2FlLmxlbmd0aC0xXTsoIXZlfHx2ZS50eXBlIT09InRleHQiKSYmKHZlPUZlKCksdmUucG9zaXRpb249e3N0YXJ0OnFuKHllLnN0YXJ0KSxlbmQ6dm9pZCAwfSxhZS5wdXNoKHZlKSksdGhpcy5zdGFjay5wdXNoKHZlKX1mdW5jdGlvbiBxKHllKXtsZXQgZWU9dGhpcy5zdGFjay5wb3AoKTtlZS52YWx1ZSs9dGhpcy5zbGljZVNlcmlhbGl6ZSh5ZSksZWUucG9zaXRpb24uZW5kPXFuKHllLmVuZCl9ZnVuY3Rpb24gQyh5ZSl7bGV0IGVlPXRoaXMuc3RhY2tbdGhpcy5zdGFjay5sZW5ndGgtMV07aWYodGhpcy5kYXRhLmF0SGFyZEJyZWFrKXtsZXQgYWU9ZWUuY2hpbGRyZW5bZWUuY2hpbGRyZW4ubGVuZ3RoLTFdO2FlLnBvc2l0aW9uLmVuZD1xbih5ZS5lbmQpLHRoaXMuZGF0YS5hdEhhcmRCcmVhaz12b2lkIDA7cmV0dXJufSF0aGlzLmRhdGEuc2V0ZXh0SGVhZGluZ1NsdXJwTGluZUVuZGluZyYmZS5jYW5Db250YWluRW9scy5pbmNsdWRlcyhlZS50eXBlKSYmKEEuY2FsbCh0aGlzLHllKSxxLmNhbGwodGhpcyx5ZSkpfWZ1bmN0aW9uIHooKXt0aGlzLmRhdGEuYXRIYXJkQnJlYWs9ITB9ZnVuY3Rpb24gRSgpe2xldCB5ZT10aGlzLnJlc3VtZSgpLGVlPXRoaXMuc3RhY2tbdGhpcy5zdGFjay5sZW5ndGgtMV07ZWUudmFsdWU9eWV9ZnVuY3Rpb24gVCgpe2xldCB5ZT10aGlzLnJlc3VtZSgpLGVlPXRoaXMuc3RhY2tbdGhpcy5zdGFjay5sZW5ndGgtMV07ZWUudmFsdWU9eWV9ZnVuY3Rpb24gJCgpe2xldCB5ZT10aGlzLnJlc3VtZSgpLGVlPXRoaXMuc3RhY2tbdGhpcy5zdGFjay5sZW5ndGgtMV07ZWUudmFsdWU9eWV9ZnVuY3Rpb24gVigpe2xldCB5ZT10aGlzLnN0YWNrW3RoaXMuc3RhY2subGVuZ3RoLTFdO2lmKHRoaXMuZGF0YS5pblJlZmVyZW5jZSl7bGV0IGVlPXRoaXMuZGF0YS5yZWZlcmVuY2VUeXBlfHwic2hvcnRjdXQiO3llLnR5cGUrPSJSZWZlcmVuY2UiLHllLnJlZmVyZW5jZVR5cGU9ZWUsZGVsZXRlIHllLnVybCxkZWxldGUgeWUudGl0bGV9ZWxzZSBkZWxldGUgeWUuaWRlbnRpZmllcixkZWxldGUgeWUubGFiZWw7dGhpcy5kYXRhLnJlZmVyZW5jZVR5cGU9dm9pZCAwfWZ1bmN0aW9uIFIoKXtsZXQgeWU9dGhpcy5zdGFja1t0aGlzLnN0YWNrLmxlbmd0aC0xXTtpZih0aGlzLmRhdGEuaW5SZWZlcmVuY2Upe2xldCBlZT10aGlzLmRhdGEucmVmZXJlbmNlVHlwZXx8InNob3J0Y3V0Ijt5ZS50eXBlKz0iUmVmZXJlbmNlIix5ZS5yZWZlcmVuY2VUeXBlPWVlLGRlbGV0ZSB5ZS51cmwsZGVsZXRlIHllLnRpdGxlfWVsc2UgZGVsZXRlIHllLmlkZW50aWZpZXIsZGVsZXRlIHllLmxhYmVsO3RoaXMuZGF0YS5yZWZlcmVuY2VUeXBlPXZvaWQgMH1mdW5jdGlvbiBVKHllKXtsZXQgZWU9dGhpcy5zbGljZVNlcmlhbGl6ZSh5ZSksYWU9dGhpcy5zdGFja1t0aGlzLnN0YWNrLmxlbmd0aC0yXTthZS5sYWJlbD1EOShlZSksYWUuaWRlbnRpZmllcj1JMShlZSkudG9Mb3dlckNhc2UoKX1mdW5jdGlvbiByZSgpe2xldCB5ZT10aGlzLnN0YWNrW3RoaXMuc3RhY2subGVuZ3RoLTFdLGVlPXRoaXMucmVzdW1lKCksYWU9dGhpcy5zdGFja1t0aGlzLnN0YWNrLmxlbmd0aC0xXTtpZih0aGlzLmRhdGEuaW5SZWZlcmVuY2U9ITAsYWUudHlwZT09PSJsaW5rIil7bGV0IHZlPXllLmNoaWxkcmVuO2FlLmNoaWxkcmVuPXZlfWVsc2UgYWUuYWx0PWVlfWZ1bmN0aW9uIGooKXtsZXQgeWU9dGhpcy5yZXN1bWUoKSxlZT10aGlzLnN0YWNrW3RoaXMuc3RhY2subGVuZ3RoLTFdO2VlLnVybD15ZX1mdW5jdGlvbiBtZSgpe2xldCB5ZT10aGlzLnJlc3VtZSgpLGVlPXRoaXMuc3RhY2tbdGhpcy5zdGFjay5sZW5ndGgtMV07ZWUudGl0bGU9eWV9ZnVuY3Rpb24gd2UoKXt0aGlzLmRhdGEuaW5SZWZlcmVuY2U9dm9pZCAwfWZ1bmN0aW9uIEgoKXt0aGlzLmRhdGEucmVmZXJlbmNlVHlwZT0iY29sbGFwc2VkIn1mdW5jdGlvbiBjZSh5ZSl7bGV0IGVlPXRoaXMucmVzdW1lKCksYWU9dGhpcy5zdGFja1t0aGlzLnN0YWNrLmxlbmd0aC0xXTthZS5sYWJlbD1lZSxhZS5pZGVudGlmaWVyPUkxKHRoaXMuc2xpY2VTZXJpYWxpemUoeWUpKS50b0xvd2VyQ2FzZSgpLHRoaXMuZGF0YS5yZWZlcmVuY2VUeXBlPSJmdWxsIn1mdW5jdGlvbiBrZSh5ZSl7dGhpcy5kYXRhLmNoYXJhY3RlclJlZmVyZW5jZVR5cGU9eWUudHlwZX1mdW5jdGlvbiBXKHllKXtsZXQgZWU9dGhpcy5zbGljZVNlcmlhbGl6ZSh5ZSksYWU9dGhpcy5kYXRhLmNoYXJhY3RlclJlZmVyZW5jZVR5cGUsdmU7YWU/KHZlPU8zKGVlLGFlPT09ImNoYXJhY3RlclJlZmVyZW5jZU1hcmtlck51bWVyaWMiPzEwOjE2KSx0aGlzLmRhdGEuY2hhcmFjdGVyUmVmZXJlbmNlVHlwZT12b2lkIDApOnZlPUJuKGVlKTtsZXQgUGU9dGhpcy5zdGFja1t0aGlzLnN0YWNrLmxlbmd0aC0xXTtQZS52YWx1ZSs9dmV9ZnVuY3Rpb24gRCh5ZSl7bGV0IGVlPXRoaXMuc3RhY2sucG9wKCk7ZWUucG9zaXRpb24uZW5kPXFuKHllLmVuZCl9ZnVuY3Rpb24gTyh5ZSl7cS5jYWxsKHRoaXMseWUpO2xldCBlZT10aGlzLnN0YWNrW3RoaXMuc3RhY2subGVuZ3RoLTFdO2VlLnVybD10aGlzLnNsaWNlU2VyaWFsaXplKHllKX1mdW5jdGlvbiBaKHllKXtxLmNhbGwodGhpcyx5ZSk7bGV0IGVlPXRoaXMuc3RhY2tbdGhpcy5zdGFjay5sZW5ndGgtMV07ZWUudXJsPSJtYWlsdG86Iit0aGlzLnNsaWNlU2VyaWFsaXplKHllKX1mdW5jdGlvbiBZKCl7cmV0dXJue3R5cGU6ImJsb2NrcXVvdGUiLGNoaWxkcmVuOltdfX1mdW5jdGlvbiBvZSgpe3JldHVybnt0eXBlOiJjb2RlIixsYW5nOm51bGwsbWV0YTpudWxsLHZhbHVlOiIifX1mdW5jdGlvbiBnZSgpe3JldHVybnt0eXBlOiJpbmxpbmVDb2RlIix2YWx1ZToiIn19ZnVuY3Rpb24gYmUoKXtyZXR1cm57dHlwZToiZGVmaW5pdGlvbiIsaWRlbnRpZmllcjoiIixsYWJlbDpudWxsLHRpdGxlOm51bGwsdXJsOiIifX1mdW5jdGlvbiAkZSgpe3JldHVybnt0eXBlOiJlbXBoYXNpcyIsY2hpbGRyZW46W119fWZ1bmN0aW9uIEIoKXtyZXR1cm57dHlwZToiaGVhZGluZyIsZGVwdGg6MCxjaGlsZHJlbjpbXX19ZnVuY3Rpb24gUCgpe3JldHVybnt0eXBlOiJicmVhayJ9fWZ1bmN0aW9uIEsoKXtyZXR1cm57dHlwZToiaHRtbCIsdmFsdWU6IiJ9fWZ1bmN0aW9uIGZlKCl7cmV0dXJue3R5cGU6ImltYWdlIix0aXRsZTpudWxsLHVybDoiIixhbHQ6bnVsbH19ZnVuY3Rpb24gZGUoKXtyZXR1cm57dHlwZToibGluayIsdGl0bGU6bnVsbCx1cmw6IiIsY2hpbGRyZW46W119fWZ1bmN0aW9uIF9lKHllKXtyZXR1cm57dHlwZToibGlzdCIsb3JkZXJlZDp5ZS50eXBlPT09Imxpc3RPcmRlcmVkIixzdGFydDpudWxsLHNwcmVhZDp5ZS5fc3ByZWFkLGNoaWxkcmVuOltdfX1mdW5jdGlvbiBoZSh5ZSl7cmV0dXJue3R5cGU6Imxpc3RJdGVtIixzcHJlYWQ6eWUuX3NwcmVhZCxjaGVja2VkOm51bGwsY2hpbGRyZW46W119fWZ1bmN0aW9uIHRlKCl7cmV0dXJue3R5cGU6InBhcmFncmFwaCIsY2hpbGRyZW46W119fWZ1bmN0aW9uIHplKCl7cmV0dXJue3R5cGU6InN0cm9uZyIsY2hpbGRyZW46W119fWZ1bmN0aW9uIEZlKCl7cmV0dXJue3R5cGU6InRleHQiLHZhbHVlOiIifX1mdW5jdGlvbiBXZSgpe3JldHVybnt0eXBlOiJ0aGVtYXRpY0JyZWFrIn19fWZ1bmN0aW9uIHFuKHQpe3JldHVybntsaW5lOnQubGluZSxjb2x1bW46dC5jb2x1bW4sb2Zmc2V0OnQub2Zmc2V0fX1mdW5jdGlvbiBEb2UodCxlKXtsZXQgYT0tMTtmb3IoOysrYTxlLmxlbmd0aDspe2xldCBpPWVbYV07QXJyYXkuaXNBcnJheShpKT9Eb2UodCxpKTp6RnQodCxpKX19ZnVuY3Rpb24gekZ0KHQsZSl7bGV0IGE7Zm9yKGEgaW4gZSlpZihBb2UuY2FsbChlLGEpKXN3aXRjaChhKXtjYXNlImNhbkNvbnRhaW5Fb2xzIjp7bGV0IGk9ZVthXTtpJiZ0W2FdLnB1c2goLi4uaSk7YnJlYWt9Y2FzZSJ0cmFuc2Zvcm1zIjp7bGV0IGk9ZVthXTtpJiZ0W2FdLnB1c2goLi4uaSk7YnJlYWt9Y2FzZSJlbnRlciI6Y2FzZSJleGl0Ijp7bGV0IGk9ZVthXTtpJiZPYmplY3QuYXNzaWduKHRbYV0saSk7YnJlYWt9fX1mdW5jdGlvbiBFb2UodCxlKXt0aHJvdyB0P25ldyBFcnJvcigiQ2Fubm90IGNsb3NlIGAiK3QudHlwZSsiYCAoIitGbih7c3RhcnQ6dC5zdGFydCxlbmQ6dC5lbmR9KSsiKTogYSBkaWZmZXJlbnQgdG9rZW4gKGAiK2UudHlwZSsiYCwgIitGbih7c3RhcnQ6ZS5zdGFydCxlbmQ6ZS5lbmR9KSsiKSBpcyBvcGVuIik6bmV3IEVycm9yKCJDYW5ub3QgY2xvc2UgZG9jdW1lbnQsIGEgdG9rZW4gKGAiK2UudHlwZSsiYCwgIitGbih7c3RhcnQ6ZS5zdGFydCxlbmQ6ZS5lbmR9KSsiKSBpcyBzdGlsbCBvcGVuIil9dmFyIEFvZSxQb2U9YigoKT0+e185KCk7JG9lKCk7QTkoKTtEVCgpO1JuKCk7cTYoKTtXXygpO0FvZT17fS5oYXNPd25Qcm9wZXJ0eX0pO3ZhciBJb2U9YigoKT0+e1BvZSgpfSk7ZnVuY3Rpb24gSDModCl7bGV0IGU9dGhpcztlLnBhcnNlcj1hO2Z1bmN0aW9uIGEoaSl7cmV0dXJuIExMKGksey4uLmUuZGF0YSgic2V0dGluZ3MiKSwuLi50LGV4dGVuc2lvbnM6ZS5kYXRhKCJtaWNyb21hcmtFeHRlbnNpb25zIil8fFtdLG1kYXN0RXh0ZW5zaW9uczplLmRhdGEoImZyb21NYXJrZG93bkV4dGVuc2lvbnMiKXx8W119KX19dmFyIE5vZT1iKCgpPT57SW9lKCl9KTt2YXIgRm9lPWIoKCk9PntOb2UoKX0pO3ZhciBPb2U9aHQoKE5OMSwkTCk9PnsoZnVuY3Rpb24oKXt2YXIgdDt0eXBlb2YgJEw8InUiP3Q9JEwuZXhwb3J0cz1pOnQ9KGZ1bmN0aW9uKCl7cmV0dXJuIHRoaXN8fCgwLGV2YWwpKCJ0aGlzIil9KSgpLHQuZm9ybWF0PWksdC52c3ByaW50Zj1hLHR5cGVvZiBjb25zb2xlPCJ1IiYmdHlwZW9mIGNvbnNvbGUubG9nPT0iZnVuY3Rpb24iJiYodC5wcmludGY9ZSk7ZnVuY3Rpb24gZSgpe2NvbnNvbGUubG9nKGkuYXBwbHkobnVsbCxhcmd1bWVudHMpKX1mdW5jdGlvbiBhKHIscyl7cmV0dXJuIGkuYXBwbHkobnVsbCxbcl0uY29uY2F0KHMpKX1mdW5jdGlvbiBpKHIpe2Zvcih2YXIgcz0xLG49W10uc2xpY2UuY2FsbChhcmd1bWVudHMpLG89MCxkPXIubGVuZ3RoLGM9IiIsaCxsPSExLGYsZyx5PSExLHYsbT1mdW5jdGlvbigpe3JldHVybiBuW3MrK119LHg9ZnVuY3Rpb24oKXtmb3IodmFyIE09IiI7L1xkLy50ZXN0KHJbb10pOylNKz1yW28rK10saD1yW29dO3JldHVybiBNLmxlbmd0aD4wP3BhcnNlSW50KE0pOm51bGx9O288ZDsrK28paWYoaD1yW29dLGwpc3dpdGNoKGw9ITEsaD09Ii4iPyh5PSExLGg9clsrK29dKTpoPT0iMCImJnJbbysxXT09Ii4iPyh5PSEwLG8rPTIsaD1yW29dKTp5PSEwLHY9eCgpLGgpe2Nhc2UiYiI6Yys9cGFyc2VJbnQobSgpLDEwKS50b1N0cmluZygyKTticmVhaztjYXNlImMiOmY9bSgpLHR5cGVvZiBmPT0ic3RyaW5nInx8ZiBpbnN0YW5jZW9mIFN0cmluZz9jKz1mOmMrPVN0cmluZy5mcm9tQ2hhckNvZGUocGFyc2VJbnQoZiwxMCkpO2JyZWFrO2Nhc2UiZCI6Yys9cGFyc2VJbnQobSgpLDEwKTticmVhaztjYXNlImYiOmc9U3RyaW5nKHBhcnNlRmxvYXQobSgpKS50b0ZpeGVkKHZ8fDYpKSxjKz15P2c6Zy5yZXBsYWNlKC9eMC8sIiIpO2JyZWFrO2Nhc2UiaiI6Yys9SlNPTi5zdHJpbmdpZnkobSgpKTticmVhaztjYXNlIm8iOmMrPSIwIitwYXJzZUludChtKCksMTApLnRvU3RyaW5nKDgpO2JyZWFrO2Nhc2UicyI6Yys9bSgpO2JyZWFrO2Nhc2UieCI6Yys9IjB4IitwYXJzZUludChtKCksMTApLnRvU3RyaW5nKDE2KTticmVhaztjYXNlIlgiOmMrPSIweCIrcGFyc2VJbnQobSgpLDEwKS50b1N0cmluZygxNikudG9VcHBlckNhc2UoKTticmVhaztkZWZhdWx0OmMrPWg7YnJlYWt9ZWxzZSBoPT09IiUiP2w9ITA6Yys9aDtyZXR1cm4gY319KSgpfSk7ZnVuY3Rpb24gQzAodCl7cmV0dXJuIGUuZGlzcGxheU5hbWU9dC5kaXNwbGF5TmFtZXx8dC5uYW1lLGU7ZnVuY3Rpb24gZShhLC4uLmkpe2xldCByPWEmJigwLFJvZS5kZWZhdWx0KShhLC4uLmkpO3JldHVybiBuZXcgdChyKX19dmFyIFJvZSxRNixCb2U9YigoKT0+e1JvZT1VMShPb2UoKSwxKSxRNj1PYmplY3QuYXNzaWduKEMwKEVycm9yKSx7ZXZhbDpDMChFdmFsRXJyb3IpLHJhbmdlOkMwKFJhbmdlRXJyb3IpLHJlZmVyZW5jZTpDMChSZWZlcmVuY2VFcnJvciksc3ludGF4OkMwKFN5bnRheEVycm9yKSx0eXBlOkMwKFR5cGVFcnJvciksdXJpOkMwKFVSSUVycm9yKX0pfSk7ZnVuY3Rpb24gcTModCl7bGV0IGU9W10sYT0tMSxpPUFycmF5LmlzQXJyYXkodCk/dDp0P1t0XTpbInlhbWwiXTtmb3IoOysrYTxpLmxlbmd0aDspZVthXT1rRnQoaVthXSk7cmV0dXJuIGV9ZnVuY3Rpb24ga0Z0KHQpe2xldCBlPXQ7aWYodHlwZW9mIGU9PSJzdHJpbmciKXtpZighUTkuY2FsbChIb2UsZSkpdGhyb3cgUTYoIk1pc3NpbmcgbWF0dGVyIGRlZmluaXRpb24gZm9yIGAlc2AiLGUpO2U9e3R5cGU6ZSxtYXJrZXI6SG9lW2VdfX1lbHNlIGlmKHR5cGVvZiBlIT0ib2JqZWN0Iil0aHJvdyBRNigiRXhwZWN0ZWQgbWF0dGVyIHRvIGJlIGFuIG9iamVjdCwgbm90IGAlamAiLGUpO2lmKCFROS5jYWxsKGUsInR5cGUiKSl0aHJvdyBRNigiTWlzc2luZyBgdHlwZWAgaW4gbWF0dGVyIGAlamAiLGUpO2lmKCFROS5jYWxsKGUsImZlbmNlIikmJiFROS5jYWxsKGUsIm1hcmtlciIpKXRocm93IFE2KCJNaXNzaW5nIGBtYXJrZXJgIG9yIGBmZW5jZWAgaW4gbWF0dGVyIGAlamAiLGUpO3JldHVybiBlfXZhciBROSxIb2UsQUw9YigoKT0+e0JvZSgpO1E5PXt9Lmhhc093blByb3BlcnR5LEhvZT17eWFtbDoiLSIsdG9tbDoiKyJ9fSk7ZnVuY3Rpb24gRUwodCl7bGV0IGU9cTModCksYT17fSxpPS0xO2Zvcig7KytpPGUubGVuZ3RoOyl7bGV0IHI9ZVtpXSxzPURMKHIsIm9wZW4iKS5jaGFyQ29kZUF0KDApLG49U0Z0KHIpLG89YVtzXTtBcnJheS5pc0FycmF5KG8pP28ucHVzaChuKTphW3NdPVtuXX1yZXR1cm57ZmxvdzphfX1mdW5jdGlvbiBTRnQodCl7bGV0IGU9dC5hbnl3aGVyZSxhPXQudHlwZSxpPWErIkZlbmNlIixyPWkrIlNlcXVlbmNlIixzPWErIlZhbHVlIixuPXt0b2tlbml6ZTpoLHBhcnRpYWw6ITB9LG8sZD0wO3JldHVybnt0b2tlbml6ZTpjLGNvbmNyZXRlOiEwfTtmdW5jdGlvbiBjKGwsZixnKXtsZXQgeT10aGlzO3JldHVybiB2O2Z1bmN0aW9uIHYoTil7bGV0IEw9eS5ub3coKTtyZXR1cm4gTC5jb2x1bW49PT0xJiYoTC5saW5lPT09MXx8ZSkmJihvPURMKHQsIm9wZW4iKSxkPTAsTj09PW8uY2hhckNvZGVBdChkKSk/KGwuZW50ZXIoYSksbC5lbnRlcihpKSxsLmVudGVyKHIpLG0oTikpOmcoTil9ZnVuY3Rpb24gbShOKXtyZXR1cm4gZD09PW8ubGVuZ3RoPyhsLmV4aXQociksUWUoTik/KGwuZW50ZXIoIndoaXRlc3BhY2UiKSx4KE4pKTpNKE4pKTpOPT09by5jaGFyQ29kZUF0KGQrKyk/KGwuY29uc3VtZShOKSxtKTpnKE4pfWZ1bmN0aW9uIHgoTil7cmV0dXJuIFFlKE4pPyhsLmNvbnN1bWUoTikseCk6KGwuZXhpdCgid2hpdGVzcGFjZSIpLE0oTikpfWZ1bmN0aW9uIE0oTil7cmV0dXJuIE9lKE4pPyhsLmV4aXQoaSksbC5lbnRlcigibGluZUVuZGluZyIpLGwuY29uc3VtZShOKSxsLmV4aXQoImxpbmVFbmRpbmciKSxvPURMKHQsImNsb3NlIiksZD0wLGwuYXR0ZW1wdChuLGssUykpOmcoTil9ZnVuY3Rpb24gUyhOKXtyZXR1cm4gTj09PW51bGx8fE9lKE4pP18oTik6KGwuZW50ZXIocyksRihOKSl9ZnVuY3Rpb24gRihOKXtyZXR1cm4gTj09PW51bGx8fE9lKE4pPyhsLmV4aXQocyksXyhOKSk6KGwuY29uc3VtZShOKSxGKX1mdW5jdGlvbiBfKE4pe3JldHVybiBOPT09bnVsbD9nKE4pOihsLmVudGVyKCJsaW5lRW5kaW5nIiksbC5jb25zdW1lKE4pLGwuZXhpdCgibGluZUVuZGluZyIpLGwuYXR0ZW1wdChuLGssUykpfWZ1bmN0aW9uIGsoTil7cmV0dXJuIGwuZXhpdChhKSxmKE4pfX1mdW5jdGlvbiBoKGwsZixnKXtsZXQgeT0wO3JldHVybiB2O2Z1bmN0aW9uIHYoUyl7cmV0dXJuIFM9PT1vLmNoYXJDb2RlQXQoeSk/KGwuZW50ZXIoaSksbC5lbnRlcihyKSxtKFMpKTpnKFMpfWZ1bmN0aW9uIG0oUyl7cmV0dXJuIHk9PT1vLmxlbmd0aD8obC5leGl0KHIpLFFlKFMpPyhsLmVudGVyKCJ3aGl0ZXNwYWNlIikseChTKSk6TShTKSk6Uz09PW8uY2hhckNvZGVBdCh5KyspPyhsLmNvbnN1bWUoUyksbSk6ZyhTKX1mdW5jdGlvbiB4KFMpe3JldHVybiBRZShTKT8obC5jb25zdW1lKFMpLHgpOihsLmV4aXQoIndoaXRlc3BhY2UiKSxNKFMpKX1mdW5jdGlvbiBNKFMpe3JldHVybiBTPT09bnVsbHx8T2UoUyk/KGwuZXhpdChpKSxmKFMpKTpnKFMpfX19ZnVuY3Rpb24gREwodCxlKXtyZXR1cm4gdC5tYXJrZXI/cW9lKHQubWFya2VyLGUpLnJlcGVhdCgzKTpxb2UodC5mZW5jZSxlKX1mdW5jdGlvbiBxb2UodCxlKXtyZXR1cm4gdHlwZW9mIHQ9PSJzdHJpbmciP3Q6dFtlXX12YXIgVm9lPWIoKCk9PnskdCgpO0FMKCl9KTt2YXIgam9lPWIoKCk9Pnt9KTt2YXIgUEw9YigoKT0+e1ZvZSgpO2pvZSgpO0FMKCl9KTtmdW5jdGlvbiBOTCh0KXtsZXQgZT1xMyh0KSxhPXt9LGk9e30scj0tMTtmb3IoOysrcjxlLmxlbmd0aDspe2xldCBzPWVbcl07YVtzLnR5cGVdPUNGdChzKSxpW3MudHlwZV09X0Z0LGlbcy50eXBlKyJWYWx1ZSJdPVRGdH1yZXR1cm57ZW50ZXI6YSxleGl0Oml9fWZ1bmN0aW9uIENGdCh0KXtyZXR1cm4gZTtmdW5jdGlvbiBlKGEpe3RoaXMuZW50ZXIoe3R5cGU6dC50eXBlLHZhbHVlOiIifSxhKSx0aGlzLmJ1ZmZlcigpfX1mdW5jdGlvbiBfRnQodCl7bGV0IGU9dGhpcy5yZXN1bWUoKSxhPXRoaXMuc3RhY2tbdGhpcy5zdGFjay5sZW5ndGgtMV07InZhbHVlImluIGEsdGhpcy5leGl0KHQpLGEudmFsdWU9ZS5yZXBsYWNlKC9eKFxyP1xufFxyKXwoXHI/XG58XHIpJC9nLCIiKX1mdW5jdGlvbiBURnQodCl7dGhpcy5jb25maWcuZW50ZXIuZGF0YS5jYWxsKHRoaXMsdCksdGhpcy5jb25maWcuZXhpdC5kYXRhLmNhbGwodGhpcyx0KX1mdW5jdGlvbiBGTCh0KXtsZXQgZT1bXSxhPXt9LGk9cTModCkscj0tMTtmb3IoOysrcjxpLmxlbmd0aDspe2xldCBzPWlbcl07YVtzLnR5cGVdPUxGdChzKTtsZXQgbj1JTChzLCJvcGVuIik7ZS5wdXNoKHthdEJyZWFrOiEwLGNoYXJhY3RlcjpuLmNoYXJBdCgwKSxhZnRlcjpCbyhuLmNoYXJBdCgxKSl9KX1yZXR1cm57dW5zYWZlOmUsaGFuZGxlcnM6YX19ZnVuY3Rpb24gTEZ0KHQpe2xldCBlPUlMKHQsIm9wZW4iKSxhPUlMKHQsImNsb3NlIik7cmV0dXJuIGk7ZnVuY3Rpb24gaShyKXtyZXR1cm4gZSsoci52YWx1ZT9gCmArci52YWx1ZToiIikrYApgK2F9fWZ1bmN0aW9uIElMKHQsZSl7cmV0dXJuIHQubWFya2VyP1VvZSh0Lm1hcmtlcixlKS5yZXBlYXQoMyk6VW9lKHQuZmVuY2UsZSl9ZnVuY3Rpb24gVW9lKHQsZSl7cmV0dXJuIHR5cGVvZiB0PT0ic3RyaW5nIj90OnRbZV19dmFyIFdvZT1iKCgpPT57Tm4oKTtQTCgpO3Y3KCl9KTt2YXIgR29lPWIoKCk9PntXb2UoKX0pO2Z1bmN0aW9uIFYzKHQpe2xldCBlPXRoaXMsYT10fHwkRnQsaT1lLmRhdGEoKSxyPWkubWljcm9tYXJrRXh0ZW5zaW9uc3x8KGkubWljcm9tYXJrRXh0ZW5zaW9ucz1bXSkscz1pLmZyb21NYXJrZG93bkV4dGVuc2lvbnN8fChpLmZyb21NYXJrZG93bkV4dGVuc2lvbnM9W10pLG49aS50b01hcmtkb3duRXh0ZW5zaW9uc3x8KGkudG9NYXJrZG93bkV4dGVuc2lvbnM9W10pO3IucHVzaChFTChhKSkscy5wdXNoKE5MKGEpKSxuLnB1c2goRkwoYSkpfXZhciAkRnQsWW9lPWIoKCk9PntHb2UoKTtQTCgpOyRGdD0ieWFtbCJ9KTt2YXIgWm9lPWIoKCk9PntZb2UoKX0pO3ZhciBPTD1iKCgpPT57fSk7dmFyIFhvZSxBRnQsaXUsS29lPWIoKCk9PntPTCgpO1hvZT10eXBlb2Ygc2VsZj09Im9iamVjdCI/c2VsZjpnbG9iYWxUaGlzLEFGdD0odCxlKT0+e2xldCBhPShyLHMpPT4odC5zZXQocyxyKSxyKSxpPXI9PntpZih0LmhhcyhyKSlyZXR1cm4gdC5nZXQocik7bGV0W3Msbl09ZVtyXTtzd2l0Y2gocyl7Y2FzZSAwOmNhc2UtMTpyZXR1cm4gYShuLHIpO2Nhc2UgMTp7bGV0IG89YShbXSxyKTtmb3IobGV0IGQgb2YgbilvLnB1c2goaShkKSk7cmV0dXJuIG99Y2FzZSAyOntsZXQgbz1hKHt9LHIpO2ZvcihsZXRbZCxjXW9mIG4pb1tpKGQpXT1pKGMpO3JldHVybiBvfWNhc2UgMzpyZXR1cm4gYShuZXcgRGF0ZShuKSxyKTtjYXNlIDQ6e2xldHtzb3VyY2U6byxmbGFnczpkfT1uO3JldHVybiBhKG5ldyBSZWdFeHAobyxkKSxyKX1jYXNlIDU6e2xldCBvPWEobmV3IE1hcCxyKTtmb3IobGV0W2QsY11vZiBuKW8uc2V0KGkoZCksaShjKSk7cmV0dXJuIG99Y2FzZSA2OntsZXQgbz1hKG5ldyBTZXQscik7Zm9yKGxldCBkIG9mIG4pby5hZGQoaShkKSk7cmV0dXJuIG99Y2FzZSA3OntsZXR7bmFtZTpvLG1lc3NhZ2U6ZH09bjtyZXR1cm4gYShuZXcgWG9lW29dKGQpLHIpfWNhc2UgODpyZXR1cm4gYShCaWdJbnQobikscik7Y2FzZSJCaWdJbnQiOnJldHVybiBhKE9iamVjdChCaWdJbnQobikpLHIpO2Nhc2UiQXJyYXlCdWZmZXIiOnJldHVybiBhKG5ldyBVaW50OEFycmF5KG4pLmJ1ZmZlcixuKTtjYXNlIkRhdGFWaWV3Ijp7bGV0e2J1ZmZlcjpvfT1uZXcgVWludDhBcnJheShuKTtyZXR1cm4gYShuZXcgRGF0YVZpZXcobyksbil9fXJldHVybiBhKG5ldyBYb2Vbc10obikscil9O3JldHVybiBpfSxpdT10PT5BRnQobmV3IE1hcCx0KSgwKX0pO3ZhciBVMyxERnQsRUZ0LHQ1LHJ1LFBGdCxzdSxRb2U9YigoKT0+e09MKCk7VTM9IiIse3RvU3RyaW5nOkRGdH09e30se2tleXM6RUZ0fT1PYmplY3QsdDU9dD0+e2xldCBlPXR5cGVvZiB0O2lmKGUhPT0ib2JqZWN0Inx8IXQpcmV0dXJuWzAsZV07bGV0IGE9REZ0LmNhbGwodCkuc2xpY2UoOCwtMSk7c3dpdGNoKGEpe2Nhc2UiQXJyYXkiOnJldHVyblsxLFUzXTtjYXNlIk9iamVjdCI6cmV0dXJuWzIsVTNdO2Nhc2UiRGF0ZSI6cmV0dXJuWzMsVTNdO2Nhc2UiUmVnRXhwIjpyZXR1cm5bNCxVM107Y2FzZSJNYXAiOnJldHVybls1LFUzXTtjYXNlIlNldCI6cmV0dXJuWzYsVTNdO2Nhc2UiRGF0YVZpZXciOnJldHVyblsxLGFdfXJldHVybiBhLmluY2x1ZGVzKCJBcnJheSIpP1sxLGFdOmEuaW5jbHVkZXMoIkVycm9yIik/WzcsYV06WzIsYV19LHJ1PShbdCxlXSk9PnQ9PT0wJiYoZT09PSJmdW5jdGlvbiJ8fGU9PT0ic3ltYm9sIiksUEZ0PSh0LGUsYSxpKT0+e2xldCByPShuLG8pPT57bGV0IGQ9aS5wdXNoKG4pLTE7cmV0dXJuIGEuc2V0KG8sZCksZH0scz1uPT57aWYoYS5oYXMobikpcmV0dXJuIGEuZ2V0KG4pO2xldFtvLGRdPXQ1KG4pO3N3aXRjaChvKXtjYXNlIDA6e2xldCBoPW47c3dpdGNoKGQpe2Nhc2UiYmlnaW50IjpvPTgsaD1uLnRvU3RyaW5nKCk7YnJlYWs7Y2FzZSJmdW5jdGlvbiI6Y2FzZSJzeW1ib2wiOmlmKHQpdGhyb3cgbmV3IFR5cGVFcnJvcigidW5hYmxlIHRvIHNlcmlhbGl6ZSAiK2QpO2g9bnVsbDticmVhaztjYXNlInVuZGVmaW5lZCI6cmV0dXJuIHIoWy0xXSxuKX1yZXR1cm4gcihbbyxoXSxuKX1jYXNlIDE6e2lmKGQpe2xldCBmPW47cmV0dXJuIGQ9PT0iRGF0YVZpZXciP2Y9bmV3IFVpbnQ4QXJyYXkobi5idWZmZXIpOmQ9PT0iQXJyYXlCdWZmZXIiJiYoZj1uZXcgVWludDhBcnJheShuKSkscihbZCxbLi4uZl1dLG4pfWxldCBoPVtdLGw9cihbbyxoXSxuKTtmb3IobGV0IGYgb2YgbiloLnB1c2gocyhmKSk7cmV0dXJuIGx9Y2FzZSAyOntpZihkKXN3aXRjaChkKXtjYXNlIkJpZ0ludCI6cmV0dXJuIHIoW2Qsbi50b1N0cmluZygpXSxuKTtjYXNlIkJvb2xlYW4iOmNhc2UiTnVtYmVyIjpjYXNlIlN0cmluZyI6cmV0dXJuIHIoW2Qsbi52YWx1ZU9mKCldLG4pfWlmKGUmJiJ0b0pTT04iaW4gbilyZXR1cm4gcyhuLnRvSlNPTigpKTtsZXQgaD1bXSxsPXIoW28saF0sbik7Zm9yKGxldCBmIG9mIEVGdChuKSkodHx8IXJ1KHQ1KG5bZl0pKSkmJmgucHVzaChbcyhmKSxzKG5bZl0pXSk7cmV0dXJuIGx9Y2FzZSAzOnJldHVybiByKFtvLG4udG9JU09TdHJpbmcoKV0sbik7Y2FzZSA0OntsZXR7c291cmNlOmgsZmxhZ3M6bH09bjtyZXR1cm4gcihbbyx7c291cmNlOmgsZmxhZ3M6bH1dLG4pfWNhc2UgNTp7bGV0IGg9W10sbD1yKFtvLGhdLG4pO2ZvcihsZXRbZixnXW9mIG4pKHR8fCEocnUodDUoZikpfHxydSh0NShnKSkpKSYmaC5wdXNoKFtzKGYpLHMoZyldKTtyZXR1cm4gbH1jYXNlIDY6e2xldCBoPVtdLGw9cihbbyxoXSxuKTtmb3IobGV0IGYgb2YgbikodHx8IXJ1KHQ1KGYpKSkmJmgucHVzaChzKGYpKTtyZXR1cm4gbH19bGV0e21lc3NhZ2U6Y309bjtyZXR1cm4gcihbbyx7bmFtZTpkLG1lc3NhZ2U6Y31dLG4pfTtyZXR1cm4gc30sc3U9KHQse2pzb246ZSxsb3NzeTphfT17fSk9PntsZXQgaT1bXTtyZXR1cm4gUEZ0KCEoZXx8YSksISFlLG5ldyBNYXAsaSkodCksaX19KTt2YXIgVm4sbnU9YigoKT0+e0tvZSgpO1FvZSgpO1ZuPXR5cGVvZiBzdHJ1Y3R1cmVkQ2xvbmU9PSJmdW5jdGlvbiI/KHQsZSk9PmUmJigianNvbiJpbiBlfHwibG9zc3kiaW4gZSk/aXUoc3UodCxlKSk6c3RydWN0dXJlZENsb25lKHQpOih0LGUpPT5pdShzdSh0LGUpKX0pO2Z1bmN0aW9uIEpvZSh0KXtyZXR1cm4gZTtmdW5jdGlvbiBlKGEpe2xldCBpPWEmJmEucG9zaXRpb24mJmEucG9zaXRpb25bdF18fHt9O2lmKHR5cGVvZiBpLmxpbmU9PSJudW1iZXIiJiZpLmxpbmU+MCYmdHlwZW9mIGkuY29sdW1uPT0ibnVtYmVyIiYmaS5jb2x1bW4+MClyZXR1cm57bGluZTppLmxpbmUsY29sdW1uOmkuY29sdW1uLG9mZnNldDp0eXBlb2YgaS5vZmZzZXQ9PSJudW1iZXIiJiZpLm9mZnNldD4tMT9pLm9mZnNldDp2b2lkIDB9fX1mdW5jdGlvbiBhNSh0KXtsZXQgZT1sdSh0KSxhPW91KHQpO2lmKGUmJmEpcmV0dXJue3N0YXJ0OmUsZW5kOmF9fXZhciBvdSxsdSxlMGU9YigoKT0+e291PUpvZSgiZW5kIiksbHU9Sm9lKCJzdGFydCIpfSk7dmFyIGN1PWIoKCk9PntlMGUoKX0pO3ZhciBfMCxkdSxxTD1iKCgpPT57XzA9WyJhcmlhRGVzY3JpYmVkQnkiLCJhcmlhTGFiZWwiLCJhcmlhTGFiZWxsZWRCeSJdLGR1PXthbmNlc3RvcnM6e3Rib2R5OlsidGFibGUiXSx0ZDpbInRhYmxlIl0sdGg6WyJ0YWJsZSJdLHRoZWFkOlsidGFibGUiXSx0Zm9vdDpbInRhYmxlIl0sdHI6WyJ0YWJsZSJdfSxhdHRyaWJ1dGVzOnthOlsuLi5fMCwiZGF0YUZvb3Rub3RlQmFja3JlZiIsImRhdGFGb290bm90ZVJlZiIsWyJjbGFzc05hbWUiLCJkYXRhLWZvb3Rub3RlLWJhY2tyZWYiXSwiaHJlZiJdLGJsb2NrcXVvdGU6WyJjaXRlIl0sY29kZTpbWyJjbGFzc05hbWUiLC9ebGFuZ3VhZ2UtLi9dXSxkZWw6WyJjaXRlIl0sZGl2OlsiaXRlbVNjb3BlIiwiaXRlbVR5cGUiXSxkbDpbLi4uXzBdLGgyOltbImNsYXNzTmFtZSIsInNyLW9ubHkiXV0saW1nOlsuLi5fMCwibG9uZ0Rlc2MiLCJzcmMiXSxpbnB1dDpbWyJkaXNhYmxlZCIsITBdLFsidHlwZSIsImNoZWNrYm94Il1dLGluczpbImNpdGUiXSxsaTpbWyJjbGFzc05hbWUiLCJ0YXNrLWxpc3QtaXRlbSJdXSxvbDpbLi4uXzAsWyJjbGFzc05hbWUiLCJjb250YWlucy10YXNrLWxpc3QiXV0scTpbImNpdGUiXSxzZWN0aW9uOlsiZGF0YUZvb3Rub3RlcyIsWyJjbGFzc05hbWUiLCJmb290bm90ZXMiXV0sc291cmNlOlsic3JjU2V0Il0sc3VtbWFyeTpbLi4uXzBdLHRhYmxlOlsuLi5fMF0sdWw6Wy4uLl8wLFsiY2xhc3NOYW1lIiwiY29udGFpbnMtdGFzay1saXN0Il1dLCIqIjpbImFiYnIiLCJhY2NlcHQiLCJhY2NlcHRDaGFyc2V0IiwiYWNjZXNzS2V5IiwiYWN0aW9uIiwiYWxpZ24iLCJhbHQiLCJheGlzIiwiYm9yZGVyIiwiY2VsbFBhZGRpbmciLCJjZWxsU3BhY2luZyIsImNoYXIiLCJjaGFyT2ZmIiwiY2hhclNldCIsImNoZWNrZWQiLCJjbGVhciIsImNvbFNwYW4iLCJjb2xvciIsImNvbHMiLCJjb21wYWN0IiwiY29vcmRzIiwiZGF0ZVRpbWUiLCJkaXIiLCJlbmNUeXBlIiwiZnJhbWUiLCJoU3BhY2UiLCJoZWFkZXJzIiwiaGVpZ2h0IiwiaHJlZkxhbmciLCJodG1sRm9yIiwiaWQiLCJpc01hcCIsIml0ZW1Qcm9wIiwibGFiZWwiLCJsYW5nIiwibWF4TGVuZ3RoIiwibWVkaWEiLCJtZXRob2QiLCJtdWx0aXBsZSIsIm5hbWUiLCJub0hyZWYiLCJub1NoYWRlIiwibm9XcmFwIiwib3BlbiIsInByb21wdCIsInJlYWRPbmx5IiwicmV2Iiwicm93U3BhbiIsInJvd3MiLCJydWxlcyIsInNjb3BlIiwic2VsZWN0ZWQiLCJzaGFwZSIsInNpemUiLCJzcGFuIiwic3RhcnQiLCJzdW1tYXJ5IiwidGFiSW5kZXgiLCJ0aXRsZSIsInVzZU1hcCIsInZBbGlnbiIsInZhbHVlIiwid2lkdGgiXX0sY2xvYmJlcjpbImFyaWFEZXNjcmliZWRCeSIsImFyaWFMYWJlbGxlZEJ5IiwiaWQiLCJuYW1lIl0sY2xvYmJlclByZWZpeDoidXNlci1jb250ZW50LSIscHJvdG9jb2xzOntjaXRlOlsiaHR0cCIsImh0dHBzIl0saHJlZjpbImh0dHAiLCJodHRwcyIsImlyYyIsImlyY3MiLCJtYWlsdG8iLCJ4bXBwIl0sbG9uZ0Rlc2M6WyJodHRwIiwiaHR0cHMiXSxzcmM6WyJodHRwIiwiaHR0cHMiXX0scmVxdWlyZWQ6e2lucHV0OntkaXNhYmxlZDohMCx0eXBlOiJjaGVja2JveCJ9fSxzdHJpcDpbInNjcmlwdCJdLHRhZ05hbWVzOlsiYSIsImIiLCJibG9ja3F1b3RlIiwiYnIiLCJjb2RlIiwiZGQiLCJkZWwiLCJkZXRhaWxzIiwiZGl2IiwiZGwiLCJkdCIsImVtIiwiaDEiLCJoMiIsImgzIiwiaDQiLCJoNSIsImg2IiwiaHIiLCJpIiwiaW1nIiwiaW5wdXQiLCJpbnMiLCJrYmQiLCJsaSIsIm9sIiwicCIsInBpY3R1cmUiLCJwcmUiLCJxIiwicnAiLCJydCIsInJ1YnkiLCJzIiwic2FtcCIsInNlY3Rpb24iLCJzb3VyY2UiLCJzcGFuIiwic3RyaWtlIiwic3Ryb25nIiwic3ViIiwic3VtbWFyeSIsInN1cCIsInRhYmxlIiwidGJvZHkiLCJ0ZCIsInRmb290IiwidGgiLCJ0aGVhZCIsInRyIiwidHQiLCJ1bCIsInZhciJdfX0pO2Z1bmN0aW9uIFZMKHQsZSl7bGV0IGE9e3R5cGU6InJvb3QiLGNoaWxkcmVuOltdfSxpPXtzY2hlbWE6ZT97Li4uZHUsLi4uZX06ZHUsc3RhY2s6W119LHI9dDBlKGksdCk7cmV0dXJuIHImJihBcnJheS5pc0FycmF5KHIpP3IubGVuZ3RoPT09MT9hPXJbMF06YS5jaGlsZHJlbj1yOmE9ciksYX1mdW5jdGlvbiB0MGUodCxlKXtpZihlJiZ0eXBlb2YgZT09Im9iamVjdCIpe2xldCBhPWU7c3dpdGNoKHR5cGVvZiBhLnR5cGU9PSJzdHJpbmciP2EudHlwZToiIil7Y2FzZSJjb21tZW50IjpyZXR1cm4gSUZ0KHQsYSk7Y2FzZSJkb2N0eXBlIjpyZXR1cm4gTkZ0KHQsYSk7Y2FzZSJlbGVtZW50IjpyZXR1cm4gRkZ0KHQsYSk7Y2FzZSJyb290IjpyZXR1cm4gT0Z0KHQsYSk7Y2FzZSJ0ZXh0IjpyZXR1cm4gUkZ0KHQsYSk7ZGVmYXVsdDp9fX1mdW5jdGlvbiBJRnQodCxlKXtpZih0LnNjaGVtYS5hbGxvd0NvbW1lbnRzKXtsZXQgYT10eXBlb2YgZS52YWx1ZT09InN0cmluZyI/ZS52YWx1ZToiIixpPWEuaW5kZXhPZigiLS0+Iikscz17dHlwZToiY29tbWVudCIsdmFsdWU6aTwwP2E6YS5zbGljZSgwLGkpfTtyZXR1cm4gaTUocyxlKSxzfX1mdW5jdGlvbiBORnQodCxlKXtpZih0LnNjaGVtYS5hbGxvd0RvY3R5cGVzKXtsZXQgYT17dHlwZToiZG9jdHlwZSJ9O3JldHVybiBpNShhLGUpLGF9fWZ1bmN0aW9uIEZGdCh0LGUpe2xldCBhPXR5cGVvZiBlLnRhZ05hbWU9PSJzdHJpbmciP2UudGFnTmFtZToiIjt0LnN0YWNrLnB1c2goYSk7bGV0IGk9YTBlKHQsZS5jaGlsZHJlbikscj1CRnQodCxlLnByb3BlcnRpZXMpO3Quc3RhY2sucG9wKCk7bGV0IHM9ITE7aWYoYSYmYSE9PSIqIiYmKCF0LnNjaGVtYS50YWdOYW1lc3x8dC5zY2hlbWEudGFnTmFtZXMuaW5jbHVkZXMoYSkpJiYocz0hMCx0LnNjaGVtYS5hbmNlc3RvcnMmJmpuLmNhbGwodC5zY2hlbWEuYW5jZXN0b3JzLGEpKSl7bGV0IG89dC5zY2hlbWEuYW5jZXN0b3JzW2FdLGQ9LTE7Zm9yKHM9ITE7KytkPG8ubGVuZ3RoOyl0LnN0YWNrLmluY2x1ZGVzKG9bZF0pJiYocz0hMCl9aWYoIXMpcmV0dXJuIHQuc2NoZW1hLnN0cmlwJiYhdC5zY2hlbWEuc3RyaXAuaW5jbHVkZXMoYSk/aTp2b2lkIDA7bGV0IG49e3R5cGU6ImVsZW1lbnQiLHRhZ05hbWU6YSxwcm9wZXJ0aWVzOnIsY2hpbGRyZW46aX07cmV0dXJuIGk1KG4sZSksbn1mdW5jdGlvbiBPRnQodCxlKXtsZXQgaT17dHlwZToicm9vdCIsY2hpbGRyZW46YTBlKHQsZS5jaGlsZHJlbil9O3JldHVybiBpNShpLGUpLGl9ZnVuY3Rpb24gUkZ0KHQsZSl7bGV0IGk9e3R5cGU6InRleHQiLHZhbHVlOnR5cGVvZiBlLnZhbHVlPT0ic3RyaW5nIj9lLnZhbHVlOiIifTtyZXR1cm4gaTUoaSxlKSxpfWZ1bmN0aW9uIGEwZSh0LGUpe2xldCBhPVtdO2lmKEFycmF5LmlzQXJyYXkoZSkpe2xldCBpPWUscj0tMTtmb3IoOysrcjxpLmxlbmd0aDspe2xldCBzPXQwZSh0LGlbcl0pO3MmJihBcnJheS5pc0FycmF5KHMpP2EucHVzaCguLi5zKTphLnB1c2gocykpfX1yZXR1cm4gYX1mdW5jdGlvbiBCRnQodCxlKXtsZXQgYT10LnN0YWNrW3Quc3RhY2subGVuZ3RoLTFdLGk9dC5zY2hlbWEuYXR0cmlidXRlcyxyPXQuc2NoZW1hLnJlcXVpcmVkLHM9aSYmam4uY2FsbChpLGEpP2lbYV06dm9pZCAwLG49aSYmam4uY2FsbChpLCIqIik/aVsiKiJdOnZvaWQgMCxvPWUmJnR5cGVvZiBlPT0ib2JqZWN0Ij9lOnt9LGQ9e30sYztmb3IoYyBpbiBvKWlmKGpuLmNhbGwobyxjKSl7bGV0IGg9b1tjXSxsPWkwZSh0LHMwZShzLGMpLGMsaCk7bD09bnVsbCYmKGw9aTBlKHQsczBlKG4sYyksYyxoKSksbCE9bnVsbCYmKGRbY109bCl9aWYociYmam4uY2FsbChyLGEpKXtsZXQgaD1yW2FdO2ZvcihjIGluIGgpam4uY2FsbChoLGMpJiYham4uY2FsbChkLGMpJiYoZFtjXT1oW2NdKX1yZXR1cm4gZH1mdW5jdGlvbiBpMGUodCxlLGEsaSl7cmV0dXJuIGU/QXJyYXkuaXNBcnJheShpKT9IRnQodCxlLGEsaSk6cjBlKHQsZSxhLGkpOnZvaWQgMH1mdW5jdGlvbiBIRnQodCxlLGEsaSl7bGV0IHI9LTEscz1bXTtmb3IoOysrcjxpLmxlbmd0aDspe2xldCBuPXIwZSh0LGUsYSxpW3JdKTsodHlwZW9mIG49PSJudW1iZXIifHx0eXBlb2Ygbj09InN0cmluZyIpJiZzLnB1c2gobil9cmV0dXJuIHN9ZnVuY3Rpb24gcjBlKHQsZSxhLGkpe2lmKCEodHlwZW9mIGkhPSJib29sZWFuIiYmdHlwZW9mIGkhPSJudW1iZXIiJiZ0eXBlb2YgaSE9InN0cmluZyIpJiZxRnQodCxhLGkpKXtpZih0eXBlb2YgZT09Im9iamVjdCImJmUubGVuZ3RoPjEpe2xldCByPSExLHM9MDtmb3IoOysrczxlLmxlbmd0aDspe2xldCBuPWVbc107aWYobiYmdHlwZW9mIG49PSJvYmplY3QiJiYiZmxhZ3MiaW4gbil7aWYobi50ZXN0KFN0cmluZyhpKSkpe3I9ITA7YnJlYWt9fWVsc2UgaWYobj09PWkpe3I9ITA7YnJlYWt9fWlmKCFyKXJldHVybn1yZXR1cm4gdC5zY2hlbWEuY2xvYmJlciYmdC5zY2hlbWEuY2xvYmJlclByZWZpeCYmdC5zY2hlbWEuY2xvYmJlci5pbmNsdWRlcyhhKT90LnNjaGVtYS5jbG9iYmVyUHJlZml4K2k6aX19ZnVuY3Rpb24gcUZ0KHQsZSxhKXtsZXQgaT10LnNjaGVtYS5wcm90b2NvbHMmJmpuLmNhbGwodC5zY2hlbWEucHJvdG9jb2xzLGUpP3Quc2NoZW1hLnByb3RvY29sc1tlXTp2b2lkIDA7aWYoIWl8fGkubGVuZ3RoPT09MClyZXR1cm4hMDtsZXQgcj1TdHJpbmcoYSkscz1yLmluZGV4T2YoIjoiKSxuPXIuaW5kZXhPZigiPyIpLG89ci5pbmRleE9mKCIjIiksZD1yLmluZGV4T2YoIi8iKTtpZihzPDB8fGQ+LTEmJnM+ZHx8bj4tMSYmcz5ufHxvPi0xJiZzPm8pcmV0dXJuITA7bGV0IGM9LTE7Zm9yKDsrK2M8aS5sZW5ndGg7KXtsZXQgaD1pW2NdO2lmKHM9PT1oLmxlbmd0aCYmci5zbGljZSgwLGgubGVuZ3RoKT09PWgpcmV0dXJuITB9cmV0dXJuITF9ZnVuY3Rpb24gaTUodCxlKXtsZXQgYT1hNShlKTtlLmRhdGEmJih0LmRhdGE9Vm4oZS5kYXRhKSksYSYmKHQucG9zaXRpb249YSl9ZnVuY3Rpb24gczBlKHQsZSl7bGV0IGEsaT0tMTtpZih0KWZvcig7KytpPHQubGVuZ3RoOyl7bGV0IHI9dFtpXSxzPXR5cGVvZiByPT0ic3RyaW5nIj9yOnJbMF07aWYocz09PWUpcmV0dXJuIHI7cz09PSJkYXRhKiImJihhPXIpfWlmKGUubGVuZ3RoPjQmJmUuc2xpY2UoMCw0KS50b0xvd2VyQ2FzZSgpPT09ImRhdGEiKXJldHVybiBhfXZhciBqbixuMGU9YigoKT0+e251KCk7Y3UoKTtxTCgpO2puPXt9Lmhhc093blByb3BlcnR5fSk7dmFyIG8wZT1iKCgpPT57bjBlKCk7cUwoKX0pO2Z1bmN0aW9uIGwwZSh0LGUpe2xldCBhPXt0eXBlOiJlbGVtZW50Iix0YWdOYW1lOiJibG9ja3F1b3RlIixwcm9wZXJ0aWVzOnt9LGNoaWxkcmVuOnQud3JhcCh0LmFsbChlKSwhMCl9O3JldHVybiB0LnBhdGNoKGUsYSksdC5hcHBseURhdGEoZSxhKX12YXIgYzBlPWIoKCk9Pnt9KTtmdW5jdGlvbiBkMGUodCxlKXtsZXQgYT17dHlwZToiZWxlbWVudCIsdGFnTmFtZToiYnIiLHByb3BlcnRpZXM6e30sY2hpbGRyZW46W119O3JldHVybiB0LnBhdGNoKGUsYSksW3QuYXBwbHlEYXRhKGUsYSkse3R5cGU6InRleHQiLHZhbHVlOmAKYH1dfXZhciBoMGU9YigoKT0+e30pO2Z1bmN0aW9uIHAwZSh0LGUpe2xldCBhPWUudmFsdWU/ZS52YWx1ZStgCmA6IiIsaT17fSxyPWUubGFuZz9lLmxhbmcuc3BsaXQoL1xzKy8pOltdO3IubGVuZ3RoPjAmJihpLmNsYXNzTmFtZT1bImxhbmd1YWdlLSIrclswXV0pO2xldCBzPXt0eXBlOiJlbGVtZW50Iix0YWdOYW1lOiJjb2RlIixwcm9wZXJ0aWVzOmksY2hpbGRyZW46W3t0eXBlOiJ0ZXh0Iix2YWx1ZTphfV19O3JldHVybiBlLm1ldGEmJihzLmRhdGE9e21ldGE6ZS5tZXRhfSksdC5wYXRjaChlLHMpLHM9dC5hcHBseURhdGEoZSxzKSxzPXt0eXBlOiJlbGVtZW50Iix0YWdOYW1lOiJwcmUiLHByb3BlcnRpZXM6e30sY2hpbGRyZW46W3NdfSx0LnBhdGNoKGUscyksc312YXIgdTBlPWIoKCk9Pnt9KTtmdW5jdGlvbiBmMGUodCxlKXtsZXQgYT17dHlwZToiZWxlbWVudCIsdGFnTmFtZToiZGVsIixwcm9wZXJ0aWVzOnt9LGNoaWxkcmVuOnQuYWxsKGUpfTtyZXR1cm4gdC5wYXRjaChlLGEpLHQuYXBwbHlEYXRhKGUsYSl9dmFyIG0wZT1iKCgpPT57fSk7ZnVuY3Rpb24gZzBlKHQsZSl7bGV0IGE9e3R5cGU6ImVsZW1lbnQiLHRhZ05hbWU6ImVtIixwcm9wZXJ0aWVzOnt9LGNoaWxkcmVuOnQuYWxsKGUpfTtyZXR1cm4gdC5wYXRjaChlLGEpLHQuYXBwbHlEYXRhKGUsYSl9dmFyIGIwZT1iKCgpPT57fSk7ZnVuY3Rpb24gdjBlKHQsZSl7bGV0IGE9dHlwZW9mIHQub3B0aW9ucy5jbG9iYmVyUHJlZml4PT0ic3RyaW5nIj90Lm9wdGlvbnMuY2xvYmJlclByZWZpeDoidXNlci1jb250ZW50LSIsaT1TdHJpbmcoZS5pZGVudGlmaWVyKS50b1VwcGVyQ2FzZSgpLHI9SGEoaS50b0xvd2VyQ2FzZSgpKSxzPXQuZm9vdG5vdGVPcmRlci5pbmRleE9mKGkpLG4sbz10LmZvb3Rub3RlQ291bnRzLmdldChpKTtvPT09dm9pZCAwPyhvPTAsdC5mb290bm90ZU9yZGVyLnB1c2goaSksbj10LmZvb3Rub3RlT3JkZXIubGVuZ3RoKTpuPXMrMSxvKz0xLHQuZm9vdG5vdGVDb3VudHMuc2V0KGksbyk7bGV0IGQ9e3R5cGU6ImVsZW1lbnQiLHRhZ05hbWU6ImEiLHByb3BlcnRpZXM6e2hyZWY6IiMiK2ErImZuLSIrcixpZDphKyJmbnJlZi0iK3IrKG8+MT8iLSIrbzoiIiksZGF0YUZvb3Rub3RlUmVmOiEwLGFyaWFEZXNjcmliZWRCeTpbImZvb3Rub3RlLWxhYmVsIl19LGNoaWxkcmVuOlt7dHlwZToidGV4dCIsdmFsdWU6U3RyaW5nKG4pfV19O3QucGF0Y2goZSxkKTtsZXQgYz17dHlwZToiZWxlbWVudCIsdGFnTmFtZToic3VwIixwcm9wZXJ0aWVzOnt9LGNoaWxkcmVuOltkXX07cmV0dXJuIHQucGF0Y2goZSxjKSx0LmFwcGx5RGF0YShlLGMpfXZhciB5MGU9YigoKT0+e1ByKCl9KTtmdW5jdGlvbiB4MGUodCxlKXtsZXQgYT17dHlwZToiZWxlbWVudCIsdGFnTmFtZToiaCIrZS5kZXB0aCxwcm9wZXJ0aWVzOnt9LGNoaWxkcmVuOnQuYWxsKGUpfTtyZXR1cm4gdC5wYXRjaChlLGEpLHQuYXBwbHlEYXRhKGUsYSl9dmFyIHcwZT1iKCgpPT57fSk7ZnVuY3Rpb24gTTBlKHQsZSl7aWYodC5vcHRpb25zLmFsbG93RGFuZ2Vyb3VzSHRtbCl7bGV0IGE9e3R5cGU6InJhdyIsdmFsdWU6ZS52YWx1ZX07cmV0dXJuIHQucGF0Y2goZSxhKSx0LmFwcGx5RGF0YShlLGEpfX12YXIgejBlPWIoKCk9Pnt9KTtmdW5jdGlvbiBodSh0LGUpe2xldCBhPWUucmVmZXJlbmNlVHlwZSxpPSJdIjtpZihhPT09ImNvbGxhcHNlZCI/aSs9IltdIjphPT09ImZ1bGwiJiYoaSs9IlsiKyhlLmxhYmVsfHxlLmlkZW50aWZpZXIpKyJdIiksZS50eXBlPT09ImltYWdlUmVmZXJlbmNlIilyZXR1cm5be3R5cGU6InRleHQiLHZhbHVlOiIhWyIrZS5hbHQraX1dO2xldCByPXQuYWxsKGUpLHM9clswXTtzJiZzLnR5cGU9PT0idGV4dCI/cy52YWx1ZT0iWyIrcy52YWx1ZTpyLnVuc2hpZnQoe3R5cGU6InRleHQiLHZhbHVlOiJbIn0pO2xldCBuPXJbci5sZW5ndGgtMV07cmV0dXJuIG4mJm4udHlwZT09PSJ0ZXh0Ij9uLnZhbHVlKz1pOnIucHVzaCh7dHlwZToidGV4dCIsdmFsdWU6aX0pLHJ9dmFyIGpMPWIoKCk9Pnt9KTtmdW5jdGlvbiBrMGUodCxlKXtsZXQgYT1TdHJpbmcoZS5pZGVudGlmaWVyKS50b1VwcGVyQ2FzZSgpLGk9dC5kZWZpbml0aW9uQnlJZC5nZXQoYSk7aWYoIWkpcmV0dXJuIGh1KHQsZSk7bGV0IHI9e3NyYzpIYShpLnVybHx8IiIpLGFsdDplLmFsdH07aS50aXRsZSE9PW51bGwmJmkudGl0bGUhPT12b2lkIDAmJihyLnRpdGxlPWkudGl0bGUpO2xldCBzPXt0eXBlOiJlbGVtZW50Iix0YWdOYW1lOiJpbWciLHByb3BlcnRpZXM6cixjaGlsZHJlbjpbXX07cmV0dXJuIHQucGF0Y2goZSxzKSx0LmFwcGx5RGF0YShlLHMpfXZhciBTMGU9YigoKT0+e1ByKCk7akwoKX0pO2Z1bmN0aW9uIEMwZSh0LGUpe2xldCBhPXtzcmM6SGEoZS51cmwpfTtlLmFsdCE9PW51bGwmJmUuYWx0IT09dm9pZCAwJiYoYS5hbHQ9ZS5hbHQpLGUudGl0bGUhPT1udWxsJiZlLnRpdGxlIT09dm9pZCAwJiYoYS50aXRsZT1lLnRpdGxlKTtsZXQgaT17dHlwZToiZWxlbWVudCIsdGFnTmFtZToiaW1nIixwcm9wZXJ0aWVzOmEsY2hpbGRyZW46W119O3JldHVybiB0LnBhdGNoKGUsaSksdC5hcHBseURhdGEoZSxpKX12YXIgXzBlPWIoKCk9PntQcigpfSk7ZnVuY3Rpb24gVDBlKHQsZSl7bGV0IGE9e3R5cGU6InRleHQiLHZhbHVlOmUudmFsdWUucmVwbGFjZSgvXHI/XG58XHIvZywiICIpfTt0LnBhdGNoKGUsYSk7bGV0IGk9e3R5cGU6ImVsZW1lbnQiLHRhZ05hbWU6ImNvZGUiLHByb3BlcnRpZXM6e30sY2hpbGRyZW46W2FdfTtyZXR1cm4gdC5wYXRjaChlLGkpLHQuYXBwbHlEYXRhKGUsaSl9dmFyIEwwZT1iKCgpPT57fSk7ZnVuY3Rpb24gJDBlKHQsZSl7bGV0IGE9U3RyaW5nKGUuaWRlbnRpZmllcikudG9VcHBlckNhc2UoKSxpPXQuZGVmaW5pdGlvbkJ5SWQuZ2V0KGEpO2lmKCFpKXJldHVybiBodSh0LGUpO2xldCByPXtocmVmOkhhKGkudXJsfHwiIil9O2kudGl0bGUhPT1udWxsJiZpLnRpdGxlIT09dm9pZCAwJiYoci50aXRsZT1pLnRpdGxlKTtsZXQgcz17dHlwZToiZWxlbWVudCIsdGFnTmFtZToiYSIscHJvcGVydGllczpyLGNoaWxkcmVuOnQuYWxsKGUpfTtyZXR1cm4gdC5wYXRjaChlLHMpLHQuYXBwbHlEYXRhKGUscyl9dmFyIEEwZT1iKCgpPT57UHIoKTtqTCgpfSk7ZnVuY3Rpb24gRDBlKHQsZSl7bGV0IGE9e2hyZWY6SGEoZS51cmwpfTtlLnRpdGxlIT09bnVsbCYmZS50aXRsZSE9PXZvaWQgMCYmKGEudGl0bGU9ZS50aXRsZSk7bGV0IGk9e3R5cGU6ImVsZW1lbnQiLHRhZ05hbWU6ImEiLHByb3BlcnRpZXM6YSxjaGlsZHJlbjp0LmFsbChlKX07cmV0dXJuIHQucGF0Y2goZSxpKSx0LmFwcGx5RGF0YShlLGkpfXZhciBFMGU9YigoKT0+e1ByKCl9KTtmdW5jdGlvbiBJMGUodCxlLGEpe2xldCBpPXQuYWxsKGUpLHI9YT9WRnQoYSk6UDBlKGUpLHM9e30sbj1bXTtpZih0eXBlb2YgZS5jaGVja2VkPT0iYm9vbGVhbiIpe2xldCBoPWlbMF0sbDtoJiZoLnR5cGU9PT0iZWxlbWVudCImJmgudGFnTmFtZT09PSJwIj9sPWg6KGw9e3R5cGU6ImVsZW1lbnQiLHRhZ05hbWU6InAiLHByb3BlcnRpZXM6e30sY2hpbGRyZW46W119LGkudW5zaGlmdChsKSksbC5jaGlsZHJlbi5sZW5ndGg+MCYmbC5jaGlsZHJlbi51bnNoaWZ0KHt0eXBlOiJ0ZXh0Iix2YWx1ZToiICJ9KSxsLmNoaWxkcmVuLnVuc2hpZnQoe3R5cGU6ImVsZW1lbnQiLHRhZ05hbWU6ImlucHV0Iixwcm9wZXJ0aWVzOnt0eXBlOiJjaGVja2JveCIsY2hlY2tlZDplLmNoZWNrZWQsZGlzYWJsZWQ6ITB9LGNoaWxkcmVuOltdfSkscy5jbGFzc05hbWU9WyJ0YXNrLWxpc3QtaXRlbSJdfWxldCBvPS0xO2Zvcig7KytvPGkubGVuZ3RoOyl7bGV0IGg9aVtvXTsocnx8byE9PTB8fGgudHlwZSE9PSJlbGVtZW50Inx8aC50YWdOYW1lIT09InAiKSYmbi5wdXNoKHt0eXBlOiJ0ZXh0Iix2YWx1ZTpgCmB9KSxoLnR5cGU9PT0iZWxlbWVudCImJmgudGFnTmFtZT09PSJwIiYmIXI/bi5wdXNoKC4uLmguY2hpbGRyZW4pOm4ucHVzaChoKX1sZXQgZD1pW2kubGVuZ3RoLTFdO2QmJihyfHxkLnR5cGUhPT0iZWxlbWVudCJ8fGQudGFnTmFtZSE9PSJwIikmJm4ucHVzaCh7dHlwZToidGV4dCIsdmFsdWU6YApgfSk7bGV0IGM9e3R5cGU6ImVsZW1lbnQiLHRhZ05hbWU6ImxpIixwcm9wZXJ0aWVzOnMsY2hpbGRyZW46bn07cmV0dXJuIHQucGF0Y2goZSxjKSx0LmFwcGx5RGF0YShlLGMpfWZ1bmN0aW9uIFZGdCh0KXtsZXQgZT0hMTtpZih0LnR5cGU9PT0ibGlzdCIpe2U9dC5zcHJlYWR8fCExO2xldCBhPXQuY2hpbGRyZW4saT0tMTtmb3IoOyFlJiYrK2k8YS5sZW5ndGg7KWU9UDBlKGFbaV0pfXJldHVybiBlfWZ1bmN0aW9uIFAwZSh0KXtsZXQgZT10LnNwcmVhZDtyZXR1cm4gZT8/dC5jaGlsZHJlbi5sZW5ndGg+MX12YXIgTjBlPWIoKCk9Pnt9KTtmdW5jdGlvbiBGMGUodCxlKXtsZXQgYT17fSxpPXQuYWxsKGUpLHI9LTE7Zm9yKHR5cGVvZiBlLnN0YXJ0PT0ibnVtYmVyIiYmZS5zdGFydCE9PTEmJihhLnN0YXJ0PWUuc3RhcnQpOysrcjxpLmxlbmd0aDspe2xldCBuPWlbcl07aWYobi50eXBlPT09ImVsZW1lbnQiJiZuLnRhZ05hbWU9PT0ibGkiJiZuLnByb3BlcnRpZXMmJkFycmF5LmlzQXJyYXkobi5wcm9wZXJ0aWVzLmNsYXNzTmFtZSkmJm4ucHJvcGVydGllcy5jbGFzc05hbWUuaW5jbHVkZXMoInRhc2stbGlzdC1pdGVtIikpe2EuY2xhc3NOYW1lPVsiY29udGFpbnMtdGFzay1saXN0Il07YnJlYWt9fWxldCBzPXt0eXBlOiJlbGVtZW50Iix0YWdOYW1lOmUub3JkZXJlZD8ib2wiOiJ1bCIscHJvcGVydGllczphLGNoaWxkcmVuOnQud3JhcChpLCEwKX07cmV0dXJuIHQucGF0Y2goZSxzKSx0LmFwcGx5RGF0YShlLHMpfXZhciBPMGU9YigoKT0+e30pO2Z1bmN0aW9uIFIwZSh0LGUpe2xldCBhPXt0eXBlOiJlbGVtZW50Iix0YWdOYW1lOiJwIixwcm9wZXJ0aWVzOnt9LGNoaWxkcmVuOnQuYWxsKGUpfTtyZXR1cm4gdC5wYXRjaChlLGEpLHQuYXBwbHlEYXRhKGUsYSl9dmFyIEIwZT1iKCgpPT57fSk7ZnVuY3Rpb24gSDBlKHQsZSl7bGV0IGE9e3R5cGU6InJvb3QiLGNoaWxkcmVuOnQud3JhcCh0LmFsbChlKSl9O3JldHVybiB0LnBhdGNoKGUsYSksdC5hcHBseURhdGEoZSxhKX12YXIgcTBlPWIoKCk9Pnt9KTtmdW5jdGlvbiBWMGUodCxlKXtsZXQgYT17dHlwZToiZWxlbWVudCIsdGFnTmFtZToic3Ryb25nIixwcm9wZXJ0aWVzOnt9LGNoaWxkcmVuOnQuYWxsKGUpfTtyZXR1cm4gdC5wYXRjaChlLGEpLHQuYXBwbHlEYXRhKGUsYSl9dmFyIGowZT1iKCgpPT57fSk7ZnVuY3Rpb24gVTBlKHQsZSl7bGV0IGE9dC5hbGwoZSksaT1hLnNoaWZ0KCkscj1bXTtpZihpKXtsZXQgbj17dHlwZToiZWxlbWVudCIsdGFnTmFtZToidGhlYWQiLHByb3BlcnRpZXM6e30sY2hpbGRyZW46dC53cmFwKFtpXSwhMCl9O3QucGF0Y2goZS5jaGlsZHJlblswXSxuKSxyLnB1c2gobil9aWYoYS5sZW5ndGg+MCl7bGV0IG49e3R5cGU6ImVsZW1lbnQiLHRhZ05hbWU6InRib2R5Iixwcm9wZXJ0aWVzOnt9LGNoaWxkcmVuOnQud3JhcChhLCEwKX0sbz1sdShlLmNoaWxkcmVuWzFdKSxkPW91KGUuY2hpbGRyZW5bZS5jaGlsZHJlbi5sZW5ndGgtMV0pO28mJmQmJihuLnBvc2l0aW9uPXtzdGFydDpvLGVuZDpkfSksci5wdXNoKG4pfWxldCBzPXt0eXBlOiJlbGVtZW50Iix0YWdOYW1lOiJ0YWJsZSIscHJvcGVydGllczp7fSxjaGlsZHJlbjp0LndyYXAociwhMCl9O3JldHVybiB0LnBhdGNoKGUscyksdC5hcHBseURhdGEoZSxzKX12YXIgVzBlPWIoKCk9PntjdSgpfSk7ZnVuY3Rpb24gRzBlKHQsZSxhKXtsZXQgaT1hP2EuY2hpbGRyZW46dm9pZCAwLHM9KGk/aS5pbmRleE9mKGUpOjEpPT09MD8idGgiOiJ0ZCIsbj1hJiZhLnR5cGU9PT0idGFibGUiP2EuYWxpZ246dm9pZCAwLG89bj9uLmxlbmd0aDplLmNoaWxkcmVuLmxlbmd0aCxkPS0xLGM9W107Zm9yKDsrK2Q8bzspe2xldCBsPWUuY2hpbGRyZW5bZF0sZj17fSxnPW4/bltkXTp2b2lkIDA7ZyYmKGYuYWxpZ249Zyk7bGV0IHk9e3R5cGU6ImVsZW1lbnQiLHRhZ05hbWU6cyxwcm9wZXJ0aWVzOmYsY2hpbGRyZW46W119O2wmJih5LmNoaWxkcmVuPXQuYWxsKGwpLHQucGF0Y2gobCx5KSx5PXQuYXBwbHlEYXRhKGwseSkpLGMucHVzaCh5KX1sZXQgaD17dHlwZToiZWxlbWVudCIsdGFnTmFtZToidHIiLHByb3BlcnRpZXM6e30sY2hpbGRyZW46dC53cmFwKGMsITApfTtyZXR1cm4gdC5wYXRjaChlLGgpLHQuYXBwbHlEYXRhKGUsaCl9dmFyIFkwZT1iKCgpPT57fSk7ZnVuY3Rpb24gWjBlKHQsZSl7bGV0IGE9e3R5cGU6ImVsZW1lbnQiLHRhZ05hbWU6InRkIixwcm9wZXJ0aWVzOnt9LGNoaWxkcmVuOnQuYWxsKGUpfTtyZXR1cm4gdC5wYXRjaChlLGEpLHQuYXBwbHlEYXRhKGUsYSl9dmFyIFgwZT1iKCgpPT57fSk7ZnVuY3Rpb24gUTBlKHQpe2xldCBlPVN0cmluZyh0KSxhPS9ccj9cbnxcci9nLGk9YS5leGVjKGUpLHI9MCxzPVtdO2Zvcig7aTspcy5wdXNoKEswZShlLnNsaWNlKHIsaS5pbmRleCkscj4wLCEwKSxpWzBdKSxyPWkuaW5kZXgraVswXS5sZW5ndGgsaT1hLmV4ZWMoZSk7cmV0dXJuIHMucHVzaChLMGUoZS5zbGljZShyKSxyPjAsITEpKSxzLmpvaW4oIiIpfWZ1bmN0aW9uIEswZSh0LGUsYSl7bGV0IGk9MCxyPXQubGVuZ3RoO2lmKGUpe2xldCBzPXQuY29kZVBvaW50QXQoaSk7Zm9yKDtzPT09OXx8cz09PTMyOylpKysscz10LmNvZGVQb2ludEF0KGkpfWlmKGEpe2xldCBzPXQuY29kZVBvaW50QXQoci0xKTtmb3IoO3M9PT05fHxzPT09MzI7KXItLSxzPXQuY29kZVBvaW50QXQoci0xKX1yZXR1cm4gcj5pP3Quc2xpY2UoaSxyKToiIn12YXIgdE8xLGFPMSxKMGU9YigoKT0+e3RPMT05LGFPMT0zMn0pO2Z1bmN0aW9uIGU0ZSh0LGUpe2xldCBhPXt0eXBlOiJ0ZXh0Iix2YWx1ZTpRMGUoU3RyaW5nKGUudmFsdWUpKX07cmV0dXJuIHQucGF0Y2goZSxhKSx0LmFwcGx5RGF0YShlLGEpfXZhciB0NGU9YigoKT0+e0owZSgpfSk7ZnVuY3Rpb24gYTRlKHQsZSl7bGV0IGE9e3R5cGU6ImVsZW1lbnQiLHRhZ05hbWU6ImhyIixwcm9wZXJ0aWVzOnt9LGNoaWxkcmVuOltdfTtyZXR1cm4gdC5wYXRjaChlLGEpLHQuYXBwbHlEYXRhKGUsYSl9dmFyIGk0ZT1iKCgpPT57fSk7ZnVuY3Rpb24gcHUoKXt9dmFyIFVMLFdMPWIoKCk9PntjMGUoKTtoMGUoKTt1MGUoKTttMGUoKTtiMGUoKTt5MGUoKTt3MGUoKTt6MGUoKTtTMGUoKTtfMGUoKTtMMGUoKTtBMGUoKTtFMGUoKTtOMGUoKTtPMGUoKTtCMGUoKTtxMGUoKTtqMGUoKTtXMGUoKTtZMGUoKTtYMGUoKTt0NGUoKTtpNGUoKTtVTD17YmxvY2txdW90ZTpsMGUsYnJlYWs6ZDBlLGNvZGU6cDBlLGRlbGV0ZTpmMGUsZW1waGFzaXM6ZzBlLGZvb3Rub3RlUmVmZXJlbmNlOnYwZSxoZWFkaW5nOngwZSxodG1sOk0wZSxpbWFnZVJlZmVyZW5jZTprMGUsaW1hZ2U6QzBlLGlubGluZUNvZGU6VDBlLGxpbmtSZWZlcmVuY2U6JDBlLGxpbms6RDBlLGxpc3RJdGVtOkkwZSxsaXN0OkYwZSxwYXJhZ3JhcGg6UjBlLHJvb3Q6SDBlLHN0cm9uZzpWMGUsdGFibGU6VTBlLHRhYmxlQ2VsbDpaMGUsdGFibGVSb3c6RzBlLHRleHQ6ZTRlLHRoZW1hdGljQnJlYWs6YTRlLHRvbWw6cHUseWFtbDpwdSxkZWZpbml0aW9uOnB1LGZvb3Rub3RlRGVmaW5pdGlvbjpwdX19KTtmdW5jdGlvbiByNGUodCxlKXtsZXQgYT1be3R5cGU6InRleHQiLHZhbHVlOiJcdTIxQTkifV07cmV0dXJuIGU+MSYmYS5wdXNoKHt0eXBlOiJlbGVtZW50Iix0YWdOYW1lOiJzdXAiLHByb3BlcnRpZXM6e30sY2hpbGRyZW46W3t0eXBlOiJ0ZXh0Iix2YWx1ZTpTdHJpbmcoZSl9XX0pLGF9ZnVuY3Rpb24gczRlKHQsZSl7cmV0dXJuIkJhY2sgdG8gcmVmZXJlbmNlICIrKHQrMSkrKGU+MT8iLSIrZToiIil9ZnVuY3Rpb24gbjRlKHQpe2xldCBlPXR5cGVvZiB0Lm9wdGlvbnMuY2xvYmJlclByZWZpeD09InN0cmluZyI/dC5vcHRpb25zLmNsb2JiZXJQcmVmaXg6InVzZXItY29udGVudC0iLGE9dC5vcHRpb25zLmZvb3Rub3RlQmFja0NvbnRlbnR8fHI0ZSxpPXQub3B0aW9ucy5mb290bm90ZUJhY2tMYWJlbHx8czRlLHI9dC5vcHRpb25zLmZvb3Rub3RlTGFiZWx8fCJGb290bm90ZXMiLHM9dC5vcHRpb25zLmZvb3Rub3RlTGFiZWxUYWdOYW1lfHwiaDIiLG49dC5vcHRpb25zLmZvb3Rub3RlTGFiZWxQcm9wZXJ0aWVzfHx7Y2xhc3NOYW1lOlsic3Itb25seSJdfSxvPVtdLGQ9LTE7Zm9yKDsrK2Q8dC5mb290bm90ZU9yZGVyLmxlbmd0aDspe2xldCBjPXQuZm9vdG5vdGVCeUlkLmdldCh0LmZvb3Rub3RlT3JkZXJbZF0pO2lmKCFjKWNvbnRpbnVlO2xldCBoPXQuYWxsKGMpLGw9U3RyaW5nKGMuaWRlbnRpZmllcikudG9VcHBlckNhc2UoKSxmPUhhKGwudG9Mb3dlckNhc2UoKSksZz0wLHk9W10sdj10LmZvb3Rub3RlQ291bnRzLmdldChsKTtmb3IoO3YhPT12b2lkIDAmJisrZzw9djspe3kubGVuZ3RoPjAmJnkucHVzaCh7dHlwZToidGV4dCIsdmFsdWU6IiAifSk7bGV0IE09dHlwZW9mIGE9PSJzdHJpbmciP2E6YShkLGcpO3R5cGVvZiBNPT0ic3RyaW5nIiYmKE09e3R5cGU6InRleHQiLHZhbHVlOk19KSx5LnB1c2goe3R5cGU6ImVsZW1lbnQiLHRhZ05hbWU6ImEiLHByb3BlcnRpZXM6e2hyZWY6IiMiK2UrImZucmVmLSIrZisoZz4xPyItIitnOiIiKSxkYXRhRm9vdG5vdGVCYWNrcmVmOiIiLGFyaWFMYWJlbDp0eXBlb2YgaT09InN0cmluZyI/aTppKGQsZyksY2xhc3NOYW1lOlsiZGF0YS1mb290bm90ZS1iYWNrcmVmIl19LGNoaWxkcmVuOkFycmF5LmlzQXJyYXkoTSk/TTpbTV19KX1sZXQgbT1oW2gubGVuZ3RoLTFdO2lmKG0mJm0udHlwZT09PSJlbGVtZW50IiYmbS50YWdOYW1lPT09InAiKXtsZXQgTT1tLmNoaWxkcmVuW20uY2hpbGRyZW4ubGVuZ3RoLTFdO00mJk0udHlwZT09PSJ0ZXh0Ij9NLnZhbHVlKz0iICI6bS5jaGlsZHJlbi5wdXNoKHt0eXBlOiJ0ZXh0Iix2YWx1ZToiICJ9KSxtLmNoaWxkcmVuLnB1c2goLi4ueSl9ZWxzZSBoLnB1c2goLi4ueSk7bGV0IHg9e3R5cGU6ImVsZW1lbnQiLHRhZ05hbWU6ImxpIixwcm9wZXJ0aWVzOntpZDplKyJmbi0iK2Z9LGNoaWxkcmVuOnQud3JhcChoLCEwKX07dC5wYXRjaChjLHgpLG8ucHVzaCh4KX1pZihvLmxlbmd0aCE9PTApcmV0dXJue3R5cGU6ImVsZW1lbnQiLHRhZ05hbWU6InNlY3Rpb24iLHByb3BlcnRpZXM6e2RhdGFGb290bm90ZXM6ITAsY2xhc3NOYW1lOlsiZm9vdG5vdGVzIl19LGNoaWxkcmVuOlt7dHlwZToiZWxlbWVudCIsdGFnTmFtZTpzLHByb3BlcnRpZXM6ey4uLlZuKG4pLGlkOiJmb290bm90ZS1sYWJlbCJ9LGNoaWxkcmVuOlt7dHlwZToidGV4dCIsdmFsdWU6cn1dfSx7dHlwZToidGV4dCIsdmFsdWU6YApgfSx7dHlwZToiZWxlbWVudCIsdGFnTmFtZToib2wiLHByb3BlcnRpZXM6e30sY2hpbGRyZW46dC53cmFwKG8sITApfSx7dHlwZToidGV4dCIsdmFsdWU6YApgfV19fXZhciBHTD1iKCgpPT57bnUoKTtQcigpfSk7ZnVuY3Rpb24gbDRlKHQsZSl7bGV0IGE9ZXx8akZ0LGk9bmV3IE1hcCxyPW5ldyBNYXAscz1uZXcgTWFwLG49ey4uLlVMLC4uLmEuaGFuZGxlcnN9LG89e2FsbDpjLGFwcGx5RGF0YTpXRnQsZGVmaW5pdGlvbkJ5SWQ6aSxmb290bm90ZUJ5SWQ6cixmb290bm90ZUNvdW50czpzLGZvb3Rub3RlT3JkZXI6W10saGFuZGxlcnM6bixvbmU6ZCxvcHRpb25zOmEscGF0Y2g6VUZ0LHdyYXA6WUZ0fTtyZXR1cm4gSDYodCxmdW5jdGlvbihoKXtpZihoLnR5cGU9PT0iZGVmaW5pdGlvbiJ8fGgudHlwZT09PSJmb290bm90ZURlZmluaXRpb24iKXtsZXQgbD1oLnR5cGU9PT0iZGVmaW5pdGlvbiI/aTpyLGY9U3RyaW5nKGguaWRlbnRpZmllcikudG9VcHBlckNhc2UoKTtsLmhhcyhmKXx8bC5zZXQoZixoKX19KSxvO2Z1bmN0aW9uIGQoaCxsKXtsZXQgZj1oLnR5cGUsZz1vLmhhbmRsZXJzW2ZdO2lmKFlMLmNhbGwoby5oYW5kbGVycyxmKSYmZylyZXR1cm4gZyhvLGgsbCk7aWYoby5vcHRpb25zLnBhc3NUaHJvdWdoJiZvLm9wdGlvbnMucGFzc1Rocm91Z2guaW5jbHVkZXMoZikpe2lmKCJjaGlsZHJlbiJpbiBoKXtsZXR7Y2hpbGRyZW46diwuLi5tfT1oLHg9Vm4obSk7cmV0dXJuIHguY2hpbGRyZW49by5hbGwoaCkseH1yZXR1cm4gVm4oaCl9cmV0dXJuKG8ub3B0aW9ucy51bmtub3duSGFuZGxlcnx8R0Z0KShvLGgsbCl9ZnVuY3Rpb24gYyhoKXtsZXQgbD1bXTtpZigiY2hpbGRyZW4iaW4gaCl7bGV0IGY9aC5jaGlsZHJlbixnPS0xO2Zvcig7KytnPGYubGVuZ3RoOyl7bGV0IHk9by5vbmUoZltnXSxoKTtpZih5KXtpZihnJiZmW2ctMV0udHlwZT09PSJicmVhayImJighQXJyYXkuaXNBcnJheSh5KSYmeS50eXBlPT09InRleHQiJiYoeS52YWx1ZT1vNGUoeS52YWx1ZSkpLCFBcnJheS5pc0FycmF5KHkpJiZ5LnR5cGU9PT0iZWxlbWVudCIpKXtsZXQgdj15LmNoaWxkcmVuWzBdO3YmJnYudHlwZT09PSJ0ZXh0IiYmKHYudmFsdWU9bzRlKHYudmFsdWUpKX1BcnJheS5pc0FycmF5KHkpP2wucHVzaCguLi55KTpsLnB1c2goeSl9fX1yZXR1cm4gbH19ZnVuY3Rpb24gVUZ0KHQsZSl7dC5wb3NpdGlvbiYmKGUucG9zaXRpb249YTUodCkpfWZ1bmN0aW9uIFdGdCh0LGUpe2xldCBhPWU7aWYodCYmdC5kYXRhKXtsZXQgaT10LmRhdGEuaE5hbWUscj10LmRhdGEuaENoaWxkcmVuLHM9dC5kYXRhLmhQcm9wZXJ0aWVzO2lmKHR5cGVvZiBpPT0ic3RyaW5nIilpZihhLnR5cGU9PT0iZWxlbWVudCIpYS50YWdOYW1lPWk7ZWxzZXtsZXQgbj0iY2hpbGRyZW4iaW4gYT9hLmNoaWxkcmVuOlthXTthPXt0eXBlOiJlbGVtZW50Iix0YWdOYW1lOmkscHJvcGVydGllczp7fSxjaGlsZHJlbjpufX1hLnR5cGU9PT0iZWxlbWVudCImJnMmJk9iamVjdC5hc3NpZ24oYS5wcm9wZXJ0aWVzLFZuKHMpKSwiY2hpbGRyZW4iaW4gYSYmYS5jaGlsZHJlbiYmciE9PW51bGwmJnIhPT12b2lkIDAmJihhLmNoaWxkcmVuPXIpfXJldHVybiBhfWZ1bmN0aW9uIEdGdCh0LGUpe2xldCBhPWUuZGF0YXx8e30saT0idmFsdWUiaW4gZSYmIShZTC5jYWxsKGEsImhQcm9wZXJ0aWVzIil8fFlMLmNhbGwoYSwiaENoaWxkcmVuIikpP3t0eXBlOiJ0ZXh0Iix2YWx1ZTplLnZhbHVlfTp7dHlwZToiZWxlbWVudCIsdGFnTmFtZToiZGl2Iixwcm9wZXJ0aWVzOnt9LGNoaWxkcmVuOnQuYWxsKGUpfTtyZXR1cm4gdC5wYXRjaChlLGkpLHQuYXBwbHlEYXRhKGUsaSl9ZnVuY3Rpb24gWUZ0KHQsZSl7bGV0IGE9W10saT0tMTtmb3IoZSYmYS5wdXNoKHt0eXBlOiJ0ZXh0Iix2YWx1ZTpgCmB9KTsrK2k8dC5sZW5ndGg7KWkmJmEucHVzaCh7dHlwZToidGV4dCIsdmFsdWU6YApgfSksYS5wdXNoKHRbaV0pO3JldHVybiBlJiZ0Lmxlbmd0aD4wJiZhLnB1c2goe3R5cGU6InRleHQiLHZhbHVlOmAKYH0pLGF9ZnVuY3Rpb24gbzRlKHQpe2xldCBlPTAsYT10LmNoYXJDb2RlQXQoZSk7Zm9yKDthPT09OXx8YT09PTMyOyllKyssYT10LmNoYXJDb2RlQXQoZSk7cmV0dXJuIHQuc2xpY2UoZSl9dmFyIFlMLGpGdCxjNGU9YigoKT0+e251KCk7eVQoKTtjdSgpO1dMKCk7WUw9e30uaGFzT3duUHJvcGVydHksakZ0PXt9fSk7ZnVuY3Rpb24gWkwodCxlKXtsZXQgYT1sNGUodCxlKSxpPWEub25lKHQsdm9pZCAwKSxyPW40ZShhKSxzPUFycmF5LmlzQXJyYXkoaSk/e3R5cGU6InJvb3QiLGNoaWxkcmVuOml9Oml8fHt0eXBlOiJyb290IixjaGlsZHJlbjpbXX07cmV0dXJuIHImJigiY2hpbGRyZW4iaW4gcyxzLmNoaWxkcmVuLnB1c2goe3R5cGU6InRleHQiLHZhbHVlOmAKYH0scikpLHN9dmFyIGQ0ZT1iKCgpPT57Tm4oKTtHTCgpO2M0ZSgpfSk7dmFyIGg0ZT1iKCgpPT57V0woKTtkNGUoKTtHTCgpfSk7dmFyIHA0ZSx1NGU9YigoKT0+e3A0ZT1bImFyZWEiLCJiYXNlIiwiYmFzZWZvbnQiLCJiZ3NvdW5kIiwiYnIiLCJjb2wiLCJjb21tYW5kIiwiZW1iZWQiLCJmcmFtZSIsImhyIiwiaW1hZ2UiLCJpbWciLCJpbnB1dCIsImtleWdlbiIsImxpbmsiLCJtZXRhIiwicGFyYW0iLCJzb3VyY2UiLCJ0cmFjayIsIndiciJdfSk7dmFyIE1zLFhMPWIoKCk9PntNcz1jbGFzc3tjb25zdHJ1Y3RvcihlLGEsaSl7dGhpcy5ub3JtYWw9YSx0aGlzLnByb3BlcnR5PWUsaSYmKHRoaXMuc3BhY2U9aSl9fTtNcy5wcm90b3R5cGUubm9ybWFsPXt9LE1zLnByb3RvdHlwZS5wcm9wZXJ0eT17fSxNcy5wcm90b3R5cGUuc3BhY2U9dm9pZCAwfSk7ZnVuY3Rpb24gS0wodCxlKXtsZXQgYT17fSxpPXt9O2ZvcihsZXQgciBvZiB0KU9iamVjdC5hc3NpZ24oYSxyLnByb3BlcnR5KSxPYmplY3QuYXNzaWduKGksci5ub3JtYWwpO3JldHVybiBuZXcgTXMoYSxpLGUpfXZhciBmNGU9YigoKT0+e1hMKCl9KTtmdW5jdGlvbiBXMyh0KXtyZXR1cm4gdC50b0xvd2VyQ2FzZSgpfXZhciB1dT1iKCgpPT57fSk7dmFyIGYyLFFMPWIoKCk9PntmMj1jbGFzc3tjb25zdHJ1Y3RvcihlLGEpe3RoaXMuYXR0cmlidXRlPWEsdGhpcy5wcm9wZXJ0eT1lfX07ZjIucHJvdG90eXBlLmF0dHJpYnV0ZT0iIixmMi5wcm90b3R5cGUuYm9vbGVhbmlzaD0hMSxmMi5wcm90b3R5cGUuYm9vbGVhbj0hMSxmMi5wcm90b3R5cGUuY29tbWFPclNwYWNlU2VwYXJhdGVkPSExLGYyLnByb3RvdHlwZS5jb21tYVNlcGFyYXRlZD0hMSxmMi5wcm90b3R5cGUuZGVmaW5lZD0hMSxmMi5wcm90b3R5cGUubXVzdFVzZVByb3BlcnR5PSExLGYyLnByb3RvdHlwZS5udW1iZXI9ITEsZjIucHJvdG90eXBlLm92ZXJsb2FkZWRCb29sZWFuPSExLGYyLnByb3RvdHlwZS5wcm9wZXJ0eT0iIixmMi5wcm90b3R5cGUuc3BhY2VTZXBhcmF0ZWQ9ITEsZjIucHJvdG90eXBlLnNwYWNlPXZvaWQgMH0pO3ZhciByNT17fTtHZShyNSx7Ym9vbGVhbjooKT0+ZnQsYm9vbGVhbmlzaDooKT0+TjEsY29tbWFPclNwYWNlU2VwYXJhdGVkOigpPT5UYSxjb21tYVNlcGFyYXRlZDooKT0+VW4sbnVtYmVyOigpPT5FZSxvdmVybG9hZGVkQm9vbGVhbjooKT0+ZnUsc3BhY2VTZXBhcmF0ZWQ6KCk9Pm4xfSk7ZnVuY3Rpb24gVDAoKXtyZXR1cm4gMioqKytaRnR9dmFyIFpGdCxmdCxOMSxmdSxFZSxuMSxVbixUYSxzNT1iKCgpPT57WkZ0PTAsZnQ9VDAoKSxOMT1UMCgpLGZ1PVQwKCksRWU9VDAoKSxuMT1UMCgpLFVuPVQwKCksVGE9VDAoKX0pO2Z1bmN0aW9uIG00ZSh0LGUsYSl7YSYmKHRbZV09YSl9dmFyIEpMLEwwLGUkPWIoKCk9PntRTCgpO3M1KCk7Skw9T2JqZWN0LmtleXMocjUpLEwwPWNsYXNzIGV4dGVuZHMgZjJ7Y29uc3RydWN0b3IoZSxhLGkscil7bGV0IHM9LTE7aWYoc3VwZXIoZSxhKSxtNGUodGhpcywic3BhY2UiLHIpLHR5cGVvZiBpPT0ibnVtYmVyIilmb3IoOysrczxKTC5sZW5ndGg7KXtsZXQgbj1KTFtzXTttNGUodGhpcyxKTFtzXSwoaSZyNVtuXSk9PT1yNVtuXSl9fX07TDAucHJvdG90eXBlLmRlZmluZWQ9ITB9KTtmdW5jdGlvbiBjaSh0KXtsZXQgZT17fSxhPXt9O2ZvcihsZXRbaSxyXW9mIE9iamVjdC5lbnRyaWVzKHQucHJvcGVydGllcykpe2xldCBzPW5ldyBMMChpLHQudHJhbnNmb3JtKHQuYXR0cmlidXRlc3x8e30saSkscix0LnNwYWNlKTt0Lm11c3RVc2VQcm9wZXJ0eSYmdC5tdXN0VXNlUHJvcGVydHkuaW5jbHVkZXMoaSkmJihzLm11c3RVc2VQcm9wZXJ0eT0hMCksZVtpXT1zLGFbVzMoaSldPWksYVtXMyhzLmF0dHJpYnV0ZSldPWl9cmV0dXJuIG5ldyBNcyhlLGEsdC5zcGFjZSl9dmFyICQwPWIoKCk9Pnt1dSgpO2UkKCk7WEwoKX0pO3ZhciB0JCxnNGU9YigoKT0+eyQwKCk7czUoKTt0JD1jaSh7cHJvcGVydGllczp7YXJpYUFjdGl2ZURlc2NlbmRhbnQ6bnVsbCxhcmlhQXRvbWljOk4xLGFyaWFBdXRvQ29tcGxldGU6bnVsbCxhcmlhQnVzeTpOMSxhcmlhQ2hlY2tlZDpOMSxhcmlhQ29sQ291bnQ6RWUsYXJpYUNvbEluZGV4OkVlLGFyaWFDb2xTcGFuOkVlLGFyaWFDb250cm9sczpuMSxhcmlhQ3VycmVudDpudWxsLGFyaWFEZXNjcmliZWRCeTpuMSxhcmlhRGV0YWlsczpudWxsLGFyaWFEaXNhYmxlZDpOMSxhcmlhRHJvcEVmZmVjdDpuMSxhcmlhRXJyb3JNZXNzYWdlOm51bGwsYXJpYUV4cGFuZGVkOk4xLGFyaWFGbG93VG86bjEsYXJpYUdyYWJiZWQ6TjEsYXJpYUhhc1BvcHVwOm51bGwsYXJpYUhpZGRlbjpOMSxhcmlhSW52YWxpZDpudWxsLGFyaWFLZXlTaG9ydGN1dHM6bnVsbCxhcmlhTGFiZWw6bnVsbCxhcmlhTGFiZWxsZWRCeTpuMSxhcmlhTGV2ZWw6RWUsYXJpYUxpdmU6bnVsbCxhcmlhTW9kYWw6TjEsYXJpYU11bHRpTGluZTpOMSxhcmlhTXVsdGlTZWxlY3RhYmxlOk4xLGFyaWFPcmllbnRhdGlvbjpudWxsLGFyaWFPd25zOm4xLGFyaWFQbGFjZWhvbGRlcjpudWxsLGFyaWFQb3NJblNldDpFZSxhcmlhUHJlc3NlZDpOMSxhcmlhUmVhZE9ubHk6TjEsYXJpYVJlbGV2YW50Om51bGwsYXJpYVJlcXVpcmVkOk4xLGFyaWFSb2xlRGVzY3JpcHRpb246bjEsYXJpYVJvd0NvdW50OkVlLGFyaWFSb3dJbmRleDpFZSxhcmlhUm93U3BhbjpFZSxhcmlhU2VsZWN0ZWQ6TjEsYXJpYVNldFNpemU6RWUsYXJpYVNvcnQ6bnVsbCxhcmlhVmFsdWVNYXg6RWUsYXJpYVZhbHVlTWluOkVlLGFyaWFWYWx1ZU5vdzpFZSxhcmlhVmFsdWVUZXh0Om51bGwscm9sZTpudWxsfSx0cmFuc2Zvcm0odCxlKXtyZXR1cm4gZT09PSJyb2xlIj9lOiJhcmlhLSIrZS5zbGljZSg0KS50b0xvd2VyQ2FzZSgpfX0pfSk7ZnVuY3Rpb24gbXUodCxlKXtyZXR1cm4gZSBpbiB0P3RbZV06ZX12YXIgYSQ9YigoKT0+e30pO2Z1bmN0aW9uIGd1KHQsZSl7cmV0dXJuIG11KHQsZS50b0xvd2VyQ2FzZSgpKX12YXIgaSQ9YigoKT0+e2EkKCl9KTt2YXIgYjRlLHY0ZT1iKCgpPT57aSQoKTskMCgpO3M1KCk7YjRlPWNpKHthdHRyaWJ1dGVzOnthY2NlcHRjaGFyc2V0OiJhY2NlcHQtY2hhcnNldCIsY2xhc3NuYW1lOiJjbGFzcyIsaHRtbGZvcjoiZm9yIixodHRwZXF1aXY6Imh0dHAtZXF1aXYifSxtdXN0VXNlUHJvcGVydHk6WyJjaGVja2VkIiwibXVsdGlwbGUiLCJtdXRlZCIsInNlbGVjdGVkIl0scHJvcGVydGllczp7YWJicjpudWxsLGFjY2VwdDpVbixhY2NlcHRDaGFyc2V0Om4xLGFjY2Vzc0tleTpuMSxhY3Rpb246bnVsbCxhbGxvdzpudWxsLGFsbG93RnVsbFNjcmVlbjpmdCxhbGxvd1BheW1lbnRSZXF1ZXN0OmZ0LGFsbG93VXNlck1lZGlhOmZ0LGFsdDpudWxsLGFzOm51bGwsYXN5bmM6ZnQsYXV0b0NhcGl0YWxpemU6bnVsbCxhdXRvQ29tcGxldGU6bjEsYXV0b0ZvY3VzOmZ0LGF1dG9QbGF5OmZ0LGJsb2NraW5nOm4xLGNhcHR1cmU6bnVsbCxjaGFyU2V0Om51bGwsY2hlY2tlZDpmdCxjaXRlOm51bGwsY2xhc3NOYW1lOm4xLGNvbHM6RWUsY29sU3BhbjpudWxsLGNvbnRlbnQ6bnVsbCxjb250ZW50RWRpdGFibGU6TjEsY29udHJvbHM6ZnQsY29udHJvbHNMaXN0Om4xLGNvb3JkczpFZXxVbixjcm9zc09yaWdpbjpudWxsLGRhdGE6bnVsbCxkYXRlVGltZTpudWxsLGRlY29kaW5nOm51bGwsZGVmYXVsdDpmdCxkZWZlcjpmdCxkaXI6bnVsbCxkaXJOYW1lOm51bGwsZGlzYWJsZWQ6ZnQsZG93bmxvYWQ6ZnUsZHJhZ2dhYmxlOk4xLGVuY1R5cGU6bnVsbCxlbnRlcktleUhpbnQ6bnVsbCxmZXRjaFByaW9yaXR5Om51bGwsZm9ybTpudWxsLGZvcm1BY3Rpb246bnVsbCxmb3JtRW5jVHlwZTpudWxsLGZvcm1NZXRob2Q6bnVsbCxmb3JtTm9WYWxpZGF0ZTpmdCxmb3JtVGFyZ2V0Om51bGwsaGVhZGVyczpuMSxoZWlnaHQ6RWUsaGlkZGVuOmZ1LGhpZ2g6RWUsaHJlZjpudWxsLGhyZWZMYW5nOm51bGwsaHRtbEZvcjpuMSxodHRwRXF1aXY6bjEsaWQ6bnVsbCxpbWFnZVNpemVzOm51bGwsaW1hZ2VTcmNTZXQ6bnVsbCxpbmVydDpmdCxpbnB1dE1vZGU6bnVsbCxpbnRlZ3JpdHk6bnVsbCxpczpudWxsLGlzTWFwOmZ0LGl0ZW1JZDpudWxsLGl0ZW1Qcm9wOm4xLGl0ZW1SZWY6bjEsaXRlbVNjb3BlOmZ0LGl0ZW1UeXBlOm4xLGtpbmQ6bnVsbCxsYWJlbDpudWxsLGxhbmc6bnVsbCxsYW5ndWFnZTpudWxsLGxpc3Q6bnVsbCxsb2FkaW5nOm51bGwsbG9vcDpmdCxsb3c6RWUsbWFuaWZlc3Q6bnVsbCxtYXg6bnVsbCxtYXhMZW5ndGg6RWUsbWVkaWE6bnVsbCxtZXRob2Q6bnVsbCxtaW46bnVsbCxtaW5MZW5ndGg6RWUsbXVsdGlwbGU6ZnQsbXV0ZWQ6ZnQsbmFtZTpudWxsLG5vbmNlOm51bGwsbm9Nb2R1bGU6ZnQsbm9WYWxpZGF0ZTpmdCxvbkFib3J0Om51bGwsb25BZnRlclByaW50Om51bGwsb25BdXhDbGljazpudWxsLG9uQmVmb3JlTWF0Y2g6bnVsbCxvbkJlZm9yZVByaW50Om51bGwsb25CZWZvcmVUb2dnbGU6bnVsbCxvbkJlZm9yZVVubG9hZDpudWxsLG9uQmx1cjpudWxsLG9uQ2FuY2VsOm51bGwsb25DYW5QbGF5Om51bGwsb25DYW5QbGF5VGhyb3VnaDpudWxsLG9uQ2hhbmdlOm51bGwsb25DbGljazpudWxsLG9uQ2xvc2U6bnVsbCxvbkNvbnRleHRMb3N0Om51bGwsb25Db250ZXh0TWVudTpudWxsLG9uQ29udGV4dFJlc3RvcmVkOm51bGwsb25Db3B5Om51bGwsb25DdWVDaGFuZ2U6bnVsbCxvbkN1dDpudWxsLG9uRGJsQ2xpY2s6bnVsbCxvbkRyYWc6bnVsbCxvbkRyYWdFbmQ6bnVsbCxvbkRyYWdFbnRlcjpudWxsLG9uRHJhZ0V4aXQ6bnVsbCxvbkRyYWdMZWF2ZTpudWxsLG9uRHJhZ092ZXI6bnVsbCxvbkRyYWdTdGFydDpudWxsLG9uRHJvcDpudWxsLG9uRHVyYXRpb25DaGFuZ2U6bnVsbCxvbkVtcHRpZWQ6bnVsbCxvbkVuZGVkOm51bGwsb25FcnJvcjpudWxsLG9uRm9jdXM6bnVsbCxvbkZvcm1EYXRhOm51bGwsb25IYXNoQ2hhbmdlOm51bGwsb25JbnB1dDpudWxsLG9uSW52YWxpZDpudWxsLG9uS2V5RG93bjpudWxsLG9uS2V5UHJlc3M6bnVsbCxvbktleVVwOm51bGwsb25MYW5ndWFnZUNoYW5nZTpudWxsLG9uTG9hZDpudWxsLG9uTG9hZGVkRGF0YTpudWxsLG9uTG9hZGVkTWV0YWRhdGE6bnVsbCxvbkxvYWRFbmQ6bnVsbCxvbkxvYWRTdGFydDpudWxsLG9uTWVzc2FnZTpudWxsLG9uTWVzc2FnZUVycm9yOm51bGwsb25Nb3VzZURvd246bnVsbCxvbk1vdXNlRW50ZXI6bnVsbCxvbk1vdXNlTGVhdmU6bnVsbCxvbk1vdXNlTW92ZTpudWxsLG9uTW91c2VPdXQ6bnVsbCxvbk1vdXNlT3ZlcjpudWxsLG9uTW91c2VVcDpudWxsLG9uT2ZmbGluZTpudWxsLG9uT25saW5lOm51bGwsb25QYWdlSGlkZTpudWxsLG9uUGFnZVNob3c6bnVsbCxvblBhc3RlOm51bGwsb25QYXVzZTpudWxsLG9uUGxheTpudWxsLG9uUGxheWluZzpudWxsLG9uUG9wU3RhdGU6bnVsbCxvblByb2dyZXNzOm51bGwsb25SYXRlQ2hhbmdlOm51bGwsb25SZWplY3Rpb25IYW5kbGVkOm51bGwsb25SZXNldDpudWxsLG9uUmVzaXplOm51bGwsb25TY3JvbGw6bnVsbCxvblNjcm9sbEVuZDpudWxsLG9uU2VjdXJpdHlQb2xpY3lWaW9sYXRpb246bnVsbCxvblNlZWtlZDpudWxsLG9uU2Vla2luZzpudWxsLG9uU2VsZWN0Om51bGwsb25TbG90Q2hhbmdlOm51bGwsb25TdGFsbGVkOm51bGwsb25TdG9yYWdlOm51bGwsb25TdWJtaXQ6bnVsbCxvblN1c3BlbmQ6bnVsbCxvblRpbWVVcGRhdGU6bnVsbCxvblRvZ2dsZTpudWxsLG9uVW5oYW5kbGVkUmVqZWN0aW9uOm51bGwsb25VbmxvYWQ6bnVsbCxvblZvbHVtZUNoYW5nZTpudWxsLG9uV2FpdGluZzpudWxsLG9uV2hlZWw6bnVsbCxvcGVuOmZ0LG9wdGltdW06RWUscGF0dGVybjpudWxsLHBpbmc6bjEscGxhY2Vob2xkZXI6bnVsbCxwbGF5c0lubGluZTpmdCxwb3BvdmVyOm51bGwscG9wb3ZlclRhcmdldDpudWxsLHBvcG92ZXJUYXJnZXRBY3Rpb246bnVsbCxwb3N0ZXI6bnVsbCxwcmVsb2FkOm51bGwscmVhZE9ubHk6ZnQscmVmZXJyZXJQb2xpY3k6bnVsbCxyZWw6bjEscmVxdWlyZWQ6ZnQscmV2ZXJzZWQ6ZnQscm93czpFZSxyb3dTcGFuOkVlLHNhbmRib3g6bjEsc2NvcGU6bnVsbCxzY29wZWQ6ZnQsc2VhbWxlc3M6ZnQsc2VsZWN0ZWQ6ZnQsc2hhZG93Um9vdENsb25hYmxlOmZ0LHNoYWRvd1Jvb3REZWxlZ2F0ZXNGb2N1czpmdCxzaGFkb3dSb290TW9kZTpudWxsLHNoYXBlOm51bGwsc2l6ZTpFZSxzaXplczpudWxsLHNsb3Q6bnVsbCxzcGFuOkVlLHNwZWxsQ2hlY2s6TjEsc3JjOm51bGwsc3JjRG9jOm51bGwsc3JjTGFuZzpudWxsLHNyY1NldDpudWxsLHN0YXJ0OkVlLHN0ZXA6bnVsbCxzdHlsZTpudWxsLHRhYkluZGV4OkVlLHRhcmdldDpudWxsLHRpdGxlOm51bGwsdHJhbnNsYXRlOm51bGwsdHlwZTpudWxsLHR5cGVNdXN0TWF0Y2g6ZnQsdXNlTWFwOm51bGwsdmFsdWU6TjEsd2lkdGg6RWUsd3JhcDpudWxsLHdyaXRpbmdTdWdnZXN0aW9uczpudWxsLGFsaWduOm51bGwsYUxpbms6bnVsbCxhcmNoaXZlOm4xLGF4aXM6bnVsbCxiYWNrZ3JvdW5kOm51bGwsYmdDb2xvcjpudWxsLGJvcmRlcjpFZSxib3JkZXJDb2xvcjpudWxsLGJvdHRvbU1hcmdpbjpFZSxjZWxsUGFkZGluZzpudWxsLGNlbGxTcGFjaW5nOm51bGwsY2hhcjpudWxsLGNoYXJPZmY6bnVsbCxjbGFzc0lkOm51bGwsY2xlYXI6bnVsbCxjb2RlOm51bGwsY29kZUJhc2U6bnVsbCxjb2RlVHlwZTpudWxsLGNvbG9yOm51bGwsY29tcGFjdDpmdCxkZWNsYXJlOmZ0LGV2ZW50Om51bGwsZmFjZTpudWxsLGZyYW1lOm51bGwsZnJhbWVCb3JkZXI6bnVsbCxoU3BhY2U6RWUsbGVmdE1hcmdpbjpFZSxsaW5rOm51bGwsbG9uZ0Rlc2M6bnVsbCxsb3dTcmM6bnVsbCxtYXJnaW5IZWlnaHQ6RWUsbWFyZ2luV2lkdGg6RWUsbm9SZXNpemU6ZnQsbm9IcmVmOmZ0LG5vU2hhZGU6ZnQsbm9XcmFwOmZ0LG9iamVjdDpudWxsLHByb2ZpbGU6bnVsbCxwcm9tcHQ6bnVsbCxyZXY6bnVsbCxyaWdodE1hcmdpbjpFZSxydWxlczpudWxsLHNjaGVtZTpudWxsLHNjcm9sbGluZzpOMSxzdGFuZGJ5Om51bGwsc3VtbWFyeTpudWxsLHRleHQ6bnVsbCx0b3BNYXJnaW46RWUsdmFsdWVUeXBlOm51bGwsdmVyc2lvbjpudWxsLHZBbGlnbjpudWxsLHZMaW5rOm51bGwsdlNwYWNlOkVlLGFsbG93VHJhbnNwYXJlbmN5Om51bGwsYXV0b0NvcnJlY3Q6bnVsbCxhdXRvU2F2ZTpudWxsLGRpc2FibGVQaWN0dXJlSW5QaWN0dXJlOmZ0LGRpc2FibGVSZW1vdGVQbGF5YmFjazpmdCxwcmVmaXg6bnVsbCxwcm9wZXJ0eTpudWxsLHJlc3VsdHM6RWUsc2VjdXJpdHk6bnVsbCx1bnNlbGVjdGFibGU6bnVsbH0sc3BhY2U6Imh0bWwiLHRyYW5zZm9ybTpndX0pfSk7dmFyIHk0ZSx4NGU9YigoKT0+e2EkKCk7JDAoKTtzNSgpO3k0ZT1jaSh7YXR0cmlidXRlczp7YWNjZW50SGVpZ2h0OiJhY2NlbnQtaGVpZ2h0IixhbGlnbm1lbnRCYXNlbGluZToiYWxpZ25tZW50LWJhc2VsaW5lIixhcmFiaWNGb3JtOiJhcmFiaWMtZm9ybSIsYmFzZWxpbmVTaGlmdDoiYmFzZWxpbmUtc2hpZnQiLGNhcEhlaWdodDoiY2FwLWhlaWdodCIsY2xhc3NOYW1lOiJjbGFzcyIsY2xpcFBhdGg6ImNsaXAtcGF0aCIsY2xpcFJ1bGU6ImNsaXAtcnVsZSIsY29sb3JJbnRlcnBvbGF0aW9uOiJjb2xvci1pbnRlcnBvbGF0aW9uIixjb2xvckludGVycG9sYXRpb25GaWx0ZXJzOiJjb2xvci1pbnRlcnBvbGF0aW9uLWZpbHRlcnMiLGNvbG9yUHJvZmlsZToiY29sb3ItcHJvZmlsZSIsY29sb3JSZW5kZXJpbmc6ImNvbG9yLXJlbmRlcmluZyIsY3Jvc3NPcmlnaW46ImNyb3Nzb3JpZ2luIixkYXRhVHlwZToiZGF0YXR5cGUiLGRvbWluYW50QmFzZWxpbmU6ImRvbWluYW50LWJhc2VsaW5lIixlbmFibGVCYWNrZ3JvdW5kOiJlbmFibGUtYmFja2dyb3VuZCIsZmlsbE9wYWNpdHk6ImZpbGwtb3BhY2l0eSIsZmlsbFJ1bGU6ImZpbGwtcnVsZSIsZmxvb2RDb2xvcjoiZmxvb2QtY29sb3IiLGZsb29kT3BhY2l0eToiZmxvb2Qtb3BhY2l0eSIsZm9udEZhbWlseToiZm9udC1mYW1pbHkiLGZvbnRTaXplOiJmb250LXNpemUiLGZvbnRTaXplQWRqdXN0OiJmb250LXNpemUtYWRqdXN0Iixmb250U3RyZXRjaDoiZm9udC1zdHJldGNoIixmb250U3R5bGU6ImZvbnQtc3R5bGUiLGZvbnRWYXJpYW50OiJmb250LXZhcmlhbnQiLGZvbnRXZWlnaHQ6ImZvbnQtd2VpZ2h0IixnbHlwaE5hbWU6ImdseXBoLW5hbWUiLGdseXBoT3JpZW50YXRpb25Ib3Jpem9udGFsOiJnbHlwaC1vcmllbnRhdGlvbi1ob3Jpem9udGFsIixnbHlwaE9yaWVudGF0aW9uVmVydGljYWw6ImdseXBoLW9yaWVudGF0aW9uLXZlcnRpY2FsIixocmVmTGFuZzoiaHJlZmxhbmciLGhvcml6QWR2WDoiaG9yaXotYWR2LXgiLGhvcml6T3JpZ2luWDoiaG9yaXotb3JpZ2luLXgiLGhvcml6T3JpZ2luWToiaG9yaXotb3JpZ2luLXkiLGltYWdlUmVuZGVyaW5nOiJpbWFnZS1yZW5kZXJpbmciLGxldHRlclNwYWNpbmc6ImxldHRlci1zcGFjaW5nIixsaWdodGluZ0NvbG9yOiJsaWdodGluZy1jb2xvciIsbWFya2VyRW5kOiJtYXJrZXItZW5kIixtYXJrZXJNaWQ6Im1hcmtlci1taWQiLG1hcmtlclN0YXJ0OiJtYXJrZXItc3RhcnQiLG5hdkRvd246Im5hdi1kb3duIixuYXZEb3duTGVmdDoibmF2LWRvd24tbGVmdCIsbmF2RG93blJpZ2h0OiJuYXYtZG93bi1yaWdodCIsbmF2TGVmdDoibmF2LWxlZnQiLG5hdk5leHQ6Im5hdi1uZXh0IixuYXZQcmV2OiJuYXYtcHJldiIsbmF2UmlnaHQ6Im5hdi1yaWdodCIsbmF2VXA6Im5hdi11cCIsbmF2VXBMZWZ0OiJuYXYtdXAtbGVmdCIsbmF2VXBSaWdodDoibmF2LXVwLXJpZ2h0IixvbkFib3J0OiJvbmFib3J0IixvbkFjdGl2YXRlOiJvbmFjdGl2YXRlIixvbkFmdGVyUHJpbnQ6Im9uYWZ0ZXJwcmludCIsb25CZWZvcmVQcmludDoib25iZWZvcmVwcmludCIsb25CZWdpbjoib25iZWdpbiIsb25DYW5jZWw6Im9uY2FuY2VsIixvbkNhblBsYXk6Im9uY2FucGxheSIsb25DYW5QbGF5VGhyb3VnaDoib25jYW5wbGF5dGhyb3VnaCIsb25DaGFuZ2U6Im9uY2hhbmdlIixvbkNsaWNrOiJvbmNsaWNrIixvbkNsb3NlOiJvbmNsb3NlIixvbkNvcHk6Im9uY29weSIsb25DdWVDaGFuZ2U6Im9uY3VlY2hhbmdlIixvbkN1dDoib25jdXQiLG9uRGJsQ2xpY2s6Im9uZGJsY2xpY2siLG9uRHJhZzoib25kcmFnIixvbkRyYWdFbmQ6Im9uZHJhZ2VuZCIsb25EcmFnRW50ZXI6Im9uZHJhZ2VudGVyIixvbkRyYWdFeGl0OiJvbmRyYWdleGl0IixvbkRyYWdMZWF2ZToib25kcmFnbGVhdmUiLG9uRHJhZ092ZXI6Im9uZHJhZ292ZXIiLG9uRHJhZ1N0YXJ0OiJvbmRyYWdzdGFydCIsb25Ecm9wOiJvbmRyb3AiLG9uRHVyYXRpb25DaGFuZ2U6Im9uZHVyYXRpb25jaGFuZ2UiLG9uRW1wdGllZDoib25lbXB0aWVkIixvbkVuZDoib25lbmQiLG9uRW5kZWQ6Im9uZW5kZWQiLG9uRXJyb3I6Im9uZXJyb3IiLG9uRm9jdXM6Im9uZm9jdXMiLG9uRm9jdXNJbjoib25mb2N1c2luIixvbkZvY3VzT3V0OiJvbmZvY3Vzb3V0Iixvbkhhc2hDaGFuZ2U6Im9uaGFzaGNoYW5nZSIsb25JbnB1dDoib25pbnB1dCIsb25JbnZhbGlkOiJvbmludmFsaWQiLG9uS2V5RG93bjoib25rZXlkb3duIixvbktleVByZXNzOiJvbmtleXByZXNzIixvbktleVVwOiJvbmtleXVwIixvbkxvYWQ6Im9ubG9hZCIsb25Mb2FkZWREYXRhOiJvbmxvYWRlZGRhdGEiLG9uTG9hZGVkTWV0YWRhdGE6Im9ubG9hZGVkbWV0YWRhdGEiLG9uTG9hZFN0YXJ0OiJvbmxvYWRzdGFydCIsb25NZXNzYWdlOiJvbm1lc3NhZ2UiLG9uTW91c2VEb3duOiJvbm1vdXNlZG93biIsb25Nb3VzZUVudGVyOiJvbm1vdXNlZW50ZXIiLG9uTW91c2VMZWF2ZToib25tb3VzZWxlYXZlIixvbk1vdXNlTW92ZToib25tb3VzZW1vdmUiLG9uTW91c2VPdXQ6Im9ubW91c2VvdXQiLG9uTW91c2VPdmVyOiJvbm1vdXNlb3ZlciIsb25Nb3VzZVVwOiJvbm1vdXNldXAiLG9uTW91c2VXaGVlbDoib25tb3VzZXdoZWVsIixvbk9mZmxpbmU6Im9ub2ZmbGluZSIsb25PbmxpbmU6Im9ub25saW5lIixvblBhZ2VIaWRlOiJvbnBhZ2VoaWRlIixvblBhZ2VTaG93OiJvbnBhZ2VzaG93IixvblBhc3RlOiJvbnBhc3RlIixvblBhdXNlOiJvbnBhdXNlIixvblBsYXk6Im9ucGxheSIsb25QbGF5aW5nOiJvbnBsYXlpbmciLG9uUG9wU3RhdGU6Im9ucG9wc3RhdGUiLG9uUHJvZ3Jlc3M6Im9ucHJvZ3Jlc3MiLG9uUmF0ZUNoYW5nZToib25yYXRlY2hhbmdlIixvblJlcGVhdDoib25yZXBlYXQiLG9uUmVzZXQ6Im9ucmVzZXQiLG9uUmVzaXplOiJvbnJlc2l6ZSIsb25TY3JvbGw6Im9uc2Nyb2xsIixvblNlZWtlZDoib25zZWVrZWQiLG9uU2Vla2luZzoib25zZWVraW5nIixvblNlbGVjdDoib25zZWxlY3QiLG9uU2hvdzoib25zaG93IixvblN0YWxsZWQ6Im9uc3RhbGxlZCIsb25TdG9yYWdlOiJvbnN0b3JhZ2UiLG9uU3VibWl0OiJvbnN1Ym1pdCIsb25TdXNwZW5kOiJvbnN1c3BlbmQiLG9uVGltZVVwZGF0ZToib250aW1ldXBkYXRlIixvblRvZ2dsZToib250b2dnbGUiLG9uVW5sb2FkOiJvbnVubG9hZCIsb25Wb2x1bWVDaGFuZ2U6Im9udm9sdW1lY2hhbmdlIixvbldhaXRpbmc6Im9ud2FpdGluZyIsb25ab29tOiJvbnpvb20iLG92ZXJsaW5lUG9zaXRpb246Im92ZXJsaW5lLXBvc2l0aW9uIixvdmVybGluZVRoaWNrbmVzczoib3ZlcmxpbmUtdGhpY2tuZXNzIixwYWludE9yZGVyOiJwYWludC1vcmRlciIscGFub3NlMToicGFub3NlLTEiLHBvaW50ZXJFdmVudHM6InBvaW50ZXItZXZlbnRzIixyZWZlcnJlclBvbGljeToicmVmZXJyZXJwb2xpY3kiLHJlbmRlcmluZ0ludGVudDoicmVuZGVyaW5nLWludGVudCIsc2hhcGVSZW5kZXJpbmc6InNoYXBlLXJlbmRlcmluZyIsc3RvcENvbG9yOiJzdG9wLWNvbG9yIixzdG9wT3BhY2l0eToic3RvcC1vcGFjaXR5IixzdHJpa2V0aHJvdWdoUG9zaXRpb246InN0cmlrZXRocm91Z2gtcG9zaXRpb24iLHN0cmlrZXRocm91Z2hUaGlja25lc3M6InN0cmlrZXRocm91Z2gtdGhpY2tuZXNzIixzdHJva2VEYXNoQXJyYXk6InN0cm9rZS1kYXNoYXJyYXkiLHN0cm9rZURhc2hPZmZzZXQ6InN0cm9rZS1kYXNob2Zmc2V0IixzdHJva2VMaW5lQ2FwOiJzdHJva2UtbGluZWNhcCIsc3Ryb2tlTGluZUpvaW46InN0cm9rZS1saW5lam9pbiIsc3Ryb2tlTWl0ZXJMaW1pdDoic3Ryb2tlLW1pdGVybGltaXQiLHN0cm9rZU9wYWNpdHk6InN0cm9rZS1vcGFjaXR5IixzdHJva2VXaWR0aDoic3Ryb2tlLXdpZHRoIix0YWJJbmRleDoidGFiaW5kZXgiLHRleHRBbmNob3I6InRleHQtYW5jaG9yIix0ZXh0RGVjb3JhdGlvbjoidGV4dC1kZWNvcmF0aW9uIix0ZXh0UmVuZGVyaW5nOiJ0ZXh0LXJlbmRlcmluZyIsdHJhbnNmb3JtT3JpZ2luOiJ0cmFuc2Zvcm0tb3JpZ2luIix0eXBlT2Y6InR5cGVvZiIsdW5kZXJsaW5lUG9zaXRpb246InVuZGVybGluZS1wb3NpdGlvbiIsdW5kZXJsaW5lVGhpY2tuZXNzOiJ1bmRlcmxpbmUtdGhpY2tuZXNzIix1bmljb2RlQmlkaToidW5pY29kZS1iaWRpIix1bmljb2RlUmFuZ2U6InVuaWNvZGUtcmFuZ2UiLHVuaXRzUGVyRW06InVuaXRzLXBlci1lbSIsdkFscGhhYmV0aWM6InYtYWxwaGFiZXRpYyIsdkhhbmdpbmc6InYtaGFuZ2luZyIsdklkZW9ncmFwaGljOiJ2LWlkZW9ncmFwaGljIix2TWF0aGVtYXRpY2FsOiJ2LW1hdGhlbWF0aWNhbCIsdmVjdG9yRWZmZWN0OiJ2ZWN0b3ItZWZmZWN0Iix2ZXJ0QWR2WToidmVydC1hZHYteSIsdmVydE9yaWdpblg6InZlcnQtb3JpZ2luLXgiLHZlcnRPcmlnaW5ZOiJ2ZXJ0LW9yaWdpbi15Iix3b3JkU3BhY2luZzoid29yZC1zcGFjaW5nIix3cml0aW5nTW9kZToid3JpdGluZy1tb2RlIix4SGVpZ2h0OiJ4LWhlaWdodCIscGxheWJhY2tPcmRlcjoicGxheWJhY2tvcmRlciIsdGltZWxpbmVCZWdpbjoidGltZWxpbmViZWdpbiJ9LHByb3BlcnRpZXM6e2Fib3V0OlRhLGFjY2VudEhlaWdodDpFZSxhY2N1bXVsYXRlOm51bGwsYWRkaXRpdmU6bnVsbCxhbGlnbm1lbnRCYXNlbGluZTpudWxsLGFscGhhYmV0aWM6RWUsYW1wbGl0dWRlOkVlLGFyYWJpY0Zvcm06bnVsbCxhc2NlbnQ6RWUsYXR0cmlidXRlTmFtZTpudWxsLGF0dHJpYnV0ZVR5cGU6bnVsbCxhemltdXRoOkVlLGJhbmR3aWR0aDpudWxsLGJhc2VsaW5lU2hpZnQ6bnVsbCxiYXNlRnJlcXVlbmN5Om51bGwsYmFzZVByb2ZpbGU6bnVsbCxiYm94Om51bGwsYmVnaW46bnVsbCxiaWFzOkVlLGJ5Om51bGwsY2FsY01vZGU6bnVsbCxjYXBIZWlnaHQ6RWUsY2xhc3NOYW1lOm4xLGNsaXA6bnVsbCxjbGlwUGF0aDpudWxsLGNsaXBQYXRoVW5pdHM6bnVsbCxjbGlwUnVsZTpudWxsLGNvbG9yOm51bGwsY29sb3JJbnRlcnBvbGF0aW9uOm51bGwsY29sb3JJbnRlcnBvbGF0aW9uRmlsdGVyczpudWxsLGNvbG9yUHJvZmlsZTpudWxsLGNvbG9yUmVuZGVyaW5nOm51bGwsY29udGVudDpudWxsLGNvbnRlbnRTY3JpcHRUeXBlOm51bGwsY29udGVudFN0eWxlVHlwZTpudWxsLGNyb3NzT3JpZ2luOm51bGwsY3Vyc29yOm51bGwsY3g6bnVsbCxjeTpudWxsLGQ6bnVsbCxkYXRhVHlwZTpudWxsLGRlZmF1bHRBY3Rpb246bnVsbCxkZXNjZW50OkVlLGRpZmZ1c2VDb25zdGFudDpFZSxkaXJlY3Rpb246bnVsbCxkaXNwbGF5Om51bGwsZHVyOm51bGwsZGl2aXNvcjpFZSxkb21pbmFudEJhc2VsaW5lOm51bGwsZG93bmxvYWQ6ZnQsZHg6bnVsbCxkeTpudWxsLGVkZ2VNb2RlOm51bGwsZWRpdGFibGU6bnVsbCxlbGV2YXRpb246RWUsZW5hYmxlQmFja2dyb3VuZDpudWxsLGVuZDpudWxsLGV2ZW50Om51bGwsZXhwb25lbnQ6RWUsZXh0ZXJuYWxSZXNvdXJjZXNSZXF1aXJlZDpudWxsLGZpbGw6bnVsbCxmaWxsT3BhY2l0eTpFZSxmaWxsUnVsZTpudWxsLGZpbHRlcjpudWxsLGZpbHRlclJlczpudWxsLGZpbHRlclVuaXRzOm51bGwsZmxvb2RDb2xvcjpudWxsLGZsb29kT3BhY2l0eTpudWxsLGZvY3VzYWJsZTpudWxsLGZvY3VzSGlnaGxpZ2h0Om51bGwsZm9udEZhbWlseTpudWxsLGZvbnRTaXplOm51bGwsZm9udFNpemVBZGp1c3Q6bnVsbCxmb250U3RyZXRjaDpudWxsLGZvbnRTdHlsZTpudWxsLGZvbnRWYXJpYW50Om51bGwsZm9udFdlaWdodDpudWxsLGZvcm1hdDpudWxsLGZyOm51bGwsZnJvbTpudWxsLGZ4Om51bGwsZnk6bnVsbCxnMTpVbixnMjpVbixnbHlwaE5hbWU6VW4sZ2x5cGhPcmllbnRhdGlvbkhvcml6b250YWw6bnVsbCxnbHlwaE9yaWVudGF0aW9uVmVydGljYWw6bnVsbCxnbHlwaFJlZjpudWxsLGdyYWRpZW50VHJhbnNmb3JtOm51bGwsZ3JhZGllbnRVbml0czpudWxsLGhhbmRsZXI6bnVsbCxoYW5naW5nOkVlLGhhdGNoQ29udGVudFVuaXRzOm51bGwsaGF0Y2hVbml0czpudWxsLGhlaWdodDpudWxsLGhyZWY6bnVsbCxocmVmTGFuZzpudWxsLGhvcml6QWR2WDpFZSxob3Jpek9yaWdpblg6RWUsaG9yaXpPcmlnaW5ZOkVlLGlkOm51bGwsaWRlb2dyYXBoaWM6RWUsaW1hZ2VSZW5kZXJpbmc6bnVsbCxpbml0aWFsVmlzaWJpbGl0eTpudWxsLGluOm51bGwsaW4yOm51bGwsaW50ZXJjZXB0OkVlLGs6RWUsazE6RWUsazI6RWUsazM6RWUsazQ6RWUsa2VybmVsTWF0cml4OlRhLGtlcm5lbFVuaXRMZW5ndGg6bnVsbCxrZXlQb2ludHM6bnVsbCxrZXlTcGxpbmVzOm51bGwsa2V5VGltZXM6bnVsbCxrZXJuaW5nOm51bGwsbGFuZzpudWxsLGxlbmd0aEFkanVzdDpudWxsLGxldHRlclNwYWNpbmc6bnVsbCxsaWdodGluZ0NvbG9yOm51bGwsbGltaXRpbmdDb25lQW5nbGU6RWUsbG9jYWw6bnVsbCxtYXJrZXJFbmQ6bnVsbCxtYXJrZXJNaWQ6bnVsbCxtYXJrZXJTdGFydDpudWxsLG1hcmtlckhlaWdodDpudWxsLG1hcmtlclVuaXRzOm51bGwsbWFya2VyV2lkdGg6bnVsbCxtYXNrOm51bGwsbWFza0NvbnRlbnRVbml0czpudWxsLG1hc2tVbml0czpudWxsLG1hdGhlbWF0aWNhbDpudWxsLG1heDpudWxsLG1lZGlhOm51bGwsbWVkaWFDaGFyYWN0ZXJFbmNvZGluZzpudWxsLG1lZGlhQ29udGVudEVuY29kaW5nczpudWxsLG1lZGlhU2l6ZTpFZSxtZWRpYVRpbWU6bnVsbCxtZXRob2Q6bnVsbCxtaW46bnVsbCxtb2RlOm51bGwsbmFtZTpudWxsLG5hdkRvd246bnVsbCxuYXZEb3duTGVmdDpudWxsLG5hdkRvd25SaWdodDpudWxsLG5hdkxlZnQ6bnVsbCxuYXZOZXh0Om51bGwsbmF2UHJldjpudWxsLG5hdlJpZ2h0Om51bGwsbmF2VXA6bnVsbCxuYXZVcExlZnQ6bnVsbCxuYXZVcFJpZ2h0Om51bGwsbnVtT2N0YXZlczpudWxsLG9ic2VydmVyOm51bGwsb2Zmc2V0Om51bGwsb25BYm9ydDpudWxsLG9uQWN0aXZhdGU6bnVsbCxvbkFmdGVyUHJpbnQ6bnVsbCxvbkJlZm9yZVByaW50Om51bGwsb25CZWdpbjpudWxsLG9uQ2FuY2VsOm51bGwsb25DYW5QbGF5Om51bGwsb25DYW5QbGF5VGhyb3VnaDpudWxsLG9uQ2hhbmdlOm51bGwsb25DbGljazpudWxsLG9uQ2xvc2U6bnVsbCxvbkNvcHk6bnVsbCxvbkN1ZUNoYW5nZTpudWxsLG9uQ3V0Om51bGwsb25EYmxDbGljazpudWxsLG9uRHJhZzpudWxsLG9uRHJhZ0VuZDpudWxsLG9uRHJhZ0VudGVyOm51bGwsb25EcmFnRXhpdDpudWxsLG9uRHJhZ0xlYXZlOm51bGwsb25EcmFnT3ZlcjpudWxsLG9uRHJhZ1N0YXJ0Om51bGwsb25Ecm9wOm51bGwsb25EdXJhdGlvbkNoYW5nZTpudWxsLG9uRW1wdGllZDpudWxsLG9uRW5kOm51bGwsb25FbmRlZDpudWxsLG9uRXJyb3I6bnVsbCxvbkZvY3VzOm51bGwsb25Gb2N1c0luOm51bGwsb25Gb2N1c091dDpudWxsLG9uSGFzaENoYW5nZTpudWxsLG9uSW5wdXQ6bnVsbCxvbkludmFsaWQ6bnVsbCxvbktleURvd246bnVsbCxvbktleVByZXNzOm51bGwsb25LZXlVcDpudWxsLG9uTG9hZDpudWxsLG9uTG9hZGVkRGF0YTpudWxsLG9uTG9hZGVkTWV0YWRhdGE6bnVsbCxvbkxvYWRTdGFydDpudWxsLG9uTWVzc2FnZTpudWxsLG9uTW91c2VEb3duOm51bGwsb25Nb3VzZUVudGVyOm51bGwsb25Nb3VzZUxlYXZlOm51bGwsb25Nb3VzZU1vdmU6bnVsbCxvbk1vdXNlT3V0Om51bGwsb25Nb3VzZU92ZXI6bnVsbCxvbk1vdXNlVXA6bnVsbCxvbk1vdXNlV2hlZWw6bnVsbCxvbk9mZmxpbmU6bnVsbCxvbk9ubGluZTpudWxsLG9uUGFnZUhpZGU6bnVsbCxvblBhZ2VTaG93Om51bGwsb25QYXN0ZTpudWxsLG9uUGF1c2U6bnVsbCxvblBsYXk6bnVsbCxvblBsYXlpbmc6bnVsbCxvblBvcFN0YXRlOm51bGwsb25Qcm9ncmVzczpudWxsLG9uUmF0ZUNoYW5nZTpudWxsLG9uUmVwZWF0Om51bGwsb25SZXNldDpudWxsLG9uUmVzaXplOm51bGwsb25TY3JvbGw6bnVsbCxvblNlZWtlZDpudWxsLG9uU2Vla2luZzpudWxsLG9uU2VsZWN0Om51bGwsb25TaG93Om51bGwsb25TdGFsbGVkOm51bGwsb25TdG9yYWdlOm51bGwsb25TdWJtaXQ6bnVsbCxvblN1c3BlbmQ6bnVsbCxvblRpbWVVcGRhdGU6bnVsbCxvblRvZ2dsZTpudWxsLG9uVW5sb2FkOm51bGwsb25Wb2x1bWVDaGFuZ2U6bnVsbCxvbldhaXRpbmc6bnVsbCxvblpvb206bnVsbCxvcGFjaXR5Om51bGwsb3BlcmF0b3I6bnVsbCxvcmRlcjpudWxsLG9yaWVudDpudWxsLG9yaWVudGF0aW9uOm51bGwsb3JpZ2luOm51bGwsb3ZlcmZsb3c6bnVsbCxvdmVybGF5Om51bGwsb3ZlcmxpbmVQb3NpdGlvbjpFZSxvdmVybGluZVRoaWNrbmVzczpFZSxwYWludE9yZGVyOm51bGwscGFub3NlMTpudWxsLHBhdGg6bnVsbCxwYXRoTGVuZ3RoOkVlLHBhdHRlcm5Db250ZW50VW5pdHM6bnVsbCxwYXR0ZXJuVHJhbnNmb3JtOm51bGwscGF0dGVyblVuaXRzOm51bGwscGhhc2U6bnVsbCxwaW5nOm4xLHBpdGNoOm51bGwscGxheWJhY2tPcmRlcjpudWxsLHBvaW50ZXJFdmVudHM6bnVsbCxwb2ludHM6bnVsbCxwb2ludHNBdFg6RWUscG9pbnRzQXRZOkVlLHBvaW50c0F0WjpFZSxwcmVzZXJ2ZUFscGhhOm51bGwscHJlc2VydmVBc3BlY3RSYXRpbzpudWxsLHByaW1pdGl2ZVVuaXRzOm51bGwscHJvcGFnYXRlOm51bGwscHJvcGVydHk6VGEscjpudWxsLHJhZGl1czpudWxsLHJlZmVycmVyUG9saWN5Om51bGwscmVmWDpudWxsLHJlZlk6bnVsbCxyZWw6VGEscmV2OlRhLHJlbmRlcmluZ0ludGVudDpudWxsLHJlcGVhdENvdW50Om51bGwscmVwZWF0RHVyOm51bGwscmVxdWlyZWRFeHRlbnNpb25zOlRhLHJlcXVpcmVkRmVhdHVyZXM6VGEscmVxdWlyZWRGb250czpUYSxyZXF1aXJlZEZvcm1hdHM6VGEscmVzb3VyY2U6bnVsbCxyZXN0YXJ0Om51bGwscmVzdWx0Om51bGwscm90YXRlOm51bGwscng6bnVsbCxyeTpudWxsLHNjYWxlOm51bGwsc2VlZDpudWxsLHNoYXBlUmVuZGVyaW5nOm51bGwsc2lkZTpudWxsLHNsb3BlOm51bGwsc25hcHNob3RUaW1lOm51bGwsc3BlY3VsYXJDb25zdGFudDpFZSxzcGVjdWxhckV4cG9uZW50OkVlLHNwcmVhZE1ldGhvZDpudWxsLHNwYWNpbmc6bnVsbCxzdGFydE9mZnNldDpudWxsLHN0ZERldmlhdGlvbjpudWxsLHN0ZW1oOm51bGwsc3RlbXY6bnVsbCxzdGl0Y2hUaWxlczpudWxsLHN0b3BDb2xvcjpudWxsLHN0b3BPcGFjaXR5Om51bGwsc3RyaWtldGhyb3VnaFBvc2l0aW9uOkVlLHN0cmlrZXRocm91Z2hUaGlja25lc3M6RWUsc3RyaW5nOm51bGwsc3Ryb2tlOm51bGwsc3Ryb2tlRGFzaEFycmF5OlRhLHN0cm9rZURhc2hPZmZzZXQ6bnVsbCxzdHJva2VMaW5lQ2FwOm51bGwsc3Ryb2tlTGluZUpvaW46bnVsbCxzdHJva2VNaXRlckxpbWl0OkVlLHN0cm9rZU9wYWNpdHk6RWUsc3Ryb2tlV2lkdGg6bnVsbCxzdHlsZTpudWxsLHN1cmZhY2VTY2FsZTpFZSxzeW5jQmVoYXZpb3I6bnVsbCxzeW5jQmVoYXZpb3JEZWZhdWx0Om51bGwsc3luY01hc3RlcjpudWxsLHN5bmNUb2xlcmFuY2U6bnVsbCxzeW5jVG9sZXJhbmNlRGVmYXVsdDpudWxsLHN5c3RlbUxhbmd1YWdlOlRhLHRhYkluZGV4OkVlLHRhYmxlVmFsdWVzOm51bGwsdGFyZ2V0Om51bGwsdGFyZ2V0WDpFZSx0YXJnZXRZOkVlLHRleHRBbmNob3I6bnVsbCx0ZXh0RGVjb3JhdGlvbjpudWxsLHRleHRSZW5kZXJpbmc6bnVsbCx0ZXh0TGVuZ3RoOm51bGwsdGltZWxpbmVCZWdpbjpudWxsLHRpdGxlOm51bGwsdHJhbnNmb3JtQmVoYXZpb3I6bnVsbCx0eXBlOm51bGwsdHlwZU9mOlRhLHRvOm51bGwsdHJhbnNmb3JtOm51bGwsdHJhbnNmb3JtT3JpZ2luOm51bGwsdTE6bnVsbCx1MjpudWxsLHVuZGVybGluZVBvc2l0aW9uOkVlLHVuZGVybGluZVRoaWNrbmVzczpFZSx1bmljb2RlOm51bGwsdW5pY29kZUJpZGk6bnVsbCx1bmljb2RlUmFuZ2U6bnVsbCx1bml0c1BlckVtOkVlLHZhbHVlczpudWxsLHZBbHBoYWJldGljOkVlLHZNYXRoZW1hdGljYWw6RWUsdmVjdG9yRWZmZWN0Om51bGwsdkhhbmdpbmc6RWUsdklkZW9ncmFwaGljOkVlLHZlcnNpb246bnVsbCx2ZXJ0QWR2WTpFZSx2ZXJ0T3JpZ2luWDpFZSx2ZXJ0T3JpZ2luWTpFZSx2aWV3Qm94Om51bGwsdmlld1RhcmdldDpudWxsLHZpc2liaWxpdHk6bnVsbCx3aWR0aDpudWxsLHdpZHRoczpudWxsLHdvcmRTcGFjaW5nOm51bGwsd3JpdGluZ01vZGU6bnVsbCx4Om51bGwseDE6bnVsbCx4MjpudWxsLHhDaGFubmVsU2VsZWN0b3I6bnVsbCx4SGVpZ2h0OkVlLHk6bnVsbCx5MTpudWxsLHkyOm51bGwseUNoYW5uZWxTZWxlY3RvcjpudWxsLHo6bnVsbCx6b29tQW5kUGFuOm51bGx9LHNwYWNlOiJzdmciLHRyYW5zZm9ybTptdX0pfSk7dmFyIHIkLHc0ZT1iKCgpPT57JDAoKTtyJD1jaSh7cHJvcGVydGllczp7eExpbmtBY3R1YXRlOm51bGwseExpbmtBcmNSb2xlOm51bGwseExpbmtIcmVmOm51bGwseExpbmtSb2xlOm51bGwseExpbmtTaG93Om51bGwseExpbmtUaXRsZTpudWxsLHhMaW5rVHlwZTpudWxsfSxzcGFjZToieGxpbmsiLHRyYW5zZm9ybSh0LGUpe3JldHVybiJ4bGluazoiK2Uuc2xpY2UoNSkudG9Mb3dlckNhc2UoKX19KX0pO3ZhciBzJCxNNGU9YigoKT0+eyQwKCk7aSQoKTtzJD1jaSh7YXR0cmlidXRlczp7eG1sbnN4bGluazoieG1sbnM6eGxpbmsifSxwcm9wZXJ0aWVzOnt4bWxuc1hMaW5rOm51bGwseG1sbnM6bnVsbH0sc3BhY2U6InhtbG5zIix0cmFuc2Zvcm06Z3V9KX0pO3ZhciBuJCx6NGU9YigoKT0+eyQwKCk7biQ9Y2koe3Byb3BlcnRpZXM6e3htbEJhc2U6bnVsbCx4bWxMYW5nOm51bGwseG1sU3BhY2U6bnVsbH0sc3BhY2U6InhtbCIsdHJhbnNmb3JtKHQsZSl7cmV0dXJuInhtbDoiK2Uuc2xpY2UoMykudG9Mb3dlckNhc2UoKX19KX0pO3ZhciBrNGU9YigoKT0+e30pO2Z1bmN0aW9uIG8kKHQsZSl7bGV0IGE9VzMoZSksaT1lLHI9ZjI7aWYoYSBpbiB0Lm5vcm1hbClyZXR1cm4gdC5wcm9wZXJ0eVt0Lm5vcm1hbFthXV07aWYoYS5sZW5ndGg+NCYmYS5zbGljZSgwLDQpPT09ImRhdGEiJiZLRnQudGVzdChlKSl7aWYoZS5jaGFyQXQoNCk9PT0iLSIpe2xldCBzPWUuc2xpY2UoNSkucmVwbGFjZShTNGUsSkZ0KTtpPSJkYXRhIitzLmNoYXJBdCgwKS50b1VwcGVyQ2FzZSgpK3Muc2xpY2UoMSl9ZWxzZXtsZXQgcz1lLnNsaWNlKDQpO2lmKCFTNGUudGVzdChzKSl7bGV0IG49cy5yZXBsYWNlKFhGdCxRRnQpO24uY2hhckF0KDApIT09Ii0iJiYobj0iLSIrbiksZT0iZGF0YSIrbn19cj1MMH1yZXR1cm4gbmV3IHIoaSxlKX1mdW5jdGlvbiBRRnQodCl7cmV0dXJuIi0iK3QudG9Mb3dlckNhc2UoKX1mdW5jdGlvbiBKRnQodCl7cmV0dXJuIHQuY2hhckF0KDEpLnRvVXBwZXJDYXNlKCl9dmFyIFhGdCxTNGUsS0Z0LEM0ZT1iKCgpPT57ZSQoKTtRTCgpO3V1KCk7WEZ0PS9bQS1aXS9nLFM0ZT0vLVthLXpdL2csS0Z0PS9eZGF0YVstXHcuOl0rJC9pfSk7dmFyIF80ZSxidSxsJD1iKCgpPT57ZjRlKCk7ZzRlKCk7djRlKCk7eDRlKCk7dzRlKCk7TTRlKCk7ejRlKCk7azRlKCk7QzRlKCk7dXUoKTtfNGU9S0woW3QkLGI0ZSxyJCxzJCxuJF0sImh0bWwiKSxidT1LTChbdCQseTRlLHIkLHMkLG4kXSwic3ZnIil9KTtmdW5jdGlvbiBjJCh0LGUpe2lmKHQ9dC5yZXBsYWNlKGUuc3Vic2V0P3JPdChlLnN1YnNldCk6ZU90LGkpLGUuc3Vic2V0fHxlLmVzY2FwZU9ubHkpcmV0dXJuIHQ7cmV0dXJuIHQucmVwbGFjZSh0T3QsYSkucmVwbGFjZShhT3QsaSk7ZnVuY3Rpb24gYShyLHMsbil7cmV0dXJuIGUuZm9ybWF0KChyLmNoYXJDb2RlQXQoMCktNTUyOTYpKjEwMjQrci5jaGFyQ29kZUF0KDEpLTU2MzIwKzY1NTM2LG4uY2hhckNvZGVBdChzKzIpLGUpfWZ1bmN0aW9uIGkocixzLG4pe3JldHVybiBlLmZvcm1hdChyLmNoYXJDb2RlQXQoMCksbi5jaGFyQ29kZUF0KHMrMSksZSl9fWZ1bmN0aW9uIHJPdCh0KXtsZXQgZT1UNGUuZ2V0KHQpO3JldHVybiBlfHwoZT1zT3QodCksVDRlLnNldCh0LGUpKSxlfWZ1bmN0aW9uIHNPdCh0KXtsZXQgZT1bXSxhPS0xO2Zvcig7KythPHQubGVuZ3RoOyllLnB1c2godFthXS5yZXBsYWNlKGlPdCwiXFwkJiIpKTtyZXR1cm4gbmV3IFJlZ0V4cCgiKD86IitlLmpvaW4oInwiKSsiKSIsImciKX12YXIgZU90LHRPdCxhT3QsaU90LFQ0ZSxMNGU9YigoKT0+e2VPdD0vWyImJzw+YF0vZyx0T3Q9L1tcdUQ4MDAtXHVEQkZGXVtcdURDMDAtXHVERkZGXS9nLGFPdD0vW1x4MDEtXHRcdlxmXHgwRS1ceDFGXHg3Rlx4ODFceDhEXHg4Rlx4OTBceDlEXHhBMC1cdUZGRkZdL2csaU90PS9bfFxce30oKVtcXV4kKyo/Ll0vZyxUNGU9bmV3IFdlYWtNYXB9KTtmdW5jdGlvbiAkNGUodCxlLGEpe2xldCBpPSImI3giK3QudG9TdHJpbmcoMTYpLnRvVXBwZXJDYXNlKCk7cmV0dXJuIGEmJmUmJiFuT3QudGVzdChTdHJpbmcuZnJvbUNoYXJDb2RlKGUpKT9pOmkrIjsifXZhciBuT3QsQTRlPWIoKCk9PntuT3Q9L1tcZEEtRmEtZl0vfSk7ZnVuY3Rpb24gRDRlKHQsZSxhKXtsZXQgaT0iJiMiK1N0cmluZyh0KTtyZXR1cm4gYSYmZSYmIW9PdC50ZXN0KFN0cmluZy5mcm9tQ2hhckNvZGUoZSkpP2k6aSsiOyJ9dmFyIG9PdCxFNGU9YigoKT0+e29PdD0vXGQvfSk7dmFyIFA0ZSxJNGU9YigoKT0+e1A0ZT1bIkFFbGlnIiwiQU1QIiwiQWFjdXRlIiwiQWNpcmMiLCJBZ3JhdmUiLCJBcmluZyIsIkF0aWxkZSIsIkF1bWwiLCJDT1BZIiwiQ2NlZGlsIiwiRVRIIiwiRWFjdXRlIiwiRWNpcmMiLCJFZ3JhdmUiLCJFdW1sIiwiR1QiLCJJYWN1dGUiLCJJY2lyYyIsIklncmF2ZSIsIkl1bWwiLCJMVCIsIk50aWxkZSIsIk9hY3V0ZSIsIk9jaXJjIiwiT2dyYXZlIiwiT3NsYXNoIiwiT3RpbGRlIiwiT3VtbCIsIlFVT1QiLCJSRUciLCJUSE9STiIsIlVhY3V0ZSIsIlVjaXJjIiwiVWdyYXZlIiwiVXVtbCIsIllhY3V0ZSIsImFhY3V0ZSIsImFjaXJjIiwiYWN1dGUiLCJhZWxpZyIsImFncmF2ZSIsImFtcCIsImFyaW5nIiwiYXRpbGRlIiwiYXVtbCIsImJydmJhciIsImNjZWRpbCIsImNlZGlsIiwiY2VudCIsImNvcHkiLCJjdXJyZW4iLCJkZWciLCJkaXZpZGUiLCJlYWN1dGUiLCJlY2lyYyIsImVncmF2ZSIsImV0aCIsImV1bWwiLCJmcmFjMTIiLCJmcmFjMTQiLCJmcmFjMzQiLCJndCIsImlhY3V0ZSIsImljaXJjIiwiaWV4Y2wiLCJpZ3JhdmUiLCJpcXVlc3QiLCJpdW1sIiwibGFxdW8iLCJsdCIsIm1hY3IiLCJtaWNybyIsIm1pZGRvdCIsIm5ic3AiLCJub3QiLCJudGlsZGUiLCJvYWN1dGUiLCJvY2lyYyIsIm9ncmF2ZSIsIm9yZGYiLCJvcmRtIiwib3NsYXNoIiwib3RpbGRlIiwib3VtbCIsInBhcmEiLCJwbHVzbW4iLCJwb3VuZCIsInF1b3QiLCJyYXF1byIsInJlZyIsInNlY3QiLCJzaHkiLCJzdXAxIiwic3VwMiIsInN1cDMiLCJzemxpZyIsInRob3JuIiwidGltZXMiLCJ1YWN1dGUiLCJ1Y2lyYyIsInVncmF2ZSIsInVtbCIsInV1bWwiLCJ5YWN1dGUiLCJ5ZW4iLCJ5dW1sIl19KTt2YXIgdnUsTjRlPWIoKCk9Pnt2dT17bmJzcDoiXHhBMCIsaWV4Y2w6Ilx4QTEiLGNlbnQ6Ilx4QTIiLHBvdW5kOiJceEEzIixjdXJyZW46Ilx4QTQiLHllbjoiXHhBNSIsYnJ2YmFyOiJceEE2IixzZWN0OiJceEE3Iix1bWw6Ilx4QTgiLGNvcHk6Ilx4QTkiLG9yZGY6Ilx4QUEiLGxhcXVvOiJceEFCIixub3Q6Ilx4QUMiLHNoeToiXHhBRCIscmVnOiJceEFFIixtYWNyOiJceEFGIixkZWc6Ilx4QjAiLHBsdXNtbjoiXHhCMSIsc3VwMjoiXHhCMiIsc3VwMzoiXHhCMyIsYWN1dGU6Ilx4QjQiLG1pY3JvOiJceEI1IixwYXJhOiJceEI2IixtaWRkb3Q6Ilx4QjciLGNlZGlsOiJceEI4IixzdXAxOiJceEI5IixvcmRtOiJceEJBIixyYXF1bzoiXHhCQiIsZnJhYzE0OiJceEJDIixmcmFjMTI6Ilx4QkQiLGZyYWMzNDoiXHhCRSIsaXF1ZXN0OiJceEJGIixBZ3JhdmU6Ilx4QzAiLEFhY3V0ZToiXHhDMSIsQWNpcmM6Ilx4QzIiLEF0aWxkZToiXHhDMyIsQXVtbDoiXHhDNCIsQXJpbmc6Ilx4QzUiLEFFbGlnOiJceEM2IixDY2VkaWw6Ilx4QzciLEVncmF2ZToiXHhDOCIsRWFjdXRlOiJceEM5IixFY2lyYzoiXHhDQSIsRXVtbDoiXHhDQiIsSWdyYXZlOiJceENDIixJYWN1dGU6Ilx4Q0QiLEljaXJjOiJceENFIixJdW1sOiJceENGIixFVEg6Ilx4RDAiLE50aWxkZToiXHhEMSIsT2dyYXZlOiJceEQyIixPYWN1dGU6Ilx4RDMiLE9jaXJjOiJceEQ0IixPdGlsZGU6Ilx4RDUiLE91bWw6Ilx4RDYiLHRpbWVzOiJceEQ3IixPc2xhc2g6Ilx4RDgiLFVncmF2ZToiXHhEOSIsVWFjdXRlOiJceERBIixVY2lyYzoiXHhEQiIsVXVtbDoiXHhEQyIsWWFjdXRlOiJceEREIixUSE9STjoiXHhERSIsc3psaWc6Ilx4REYiLGFncmF2ZToiXHhFMCIsYWFjdXRlOiJceEUxIixhY2lyYzoiXHhFMiIsYXRpbGRlOiJceEUzIixhdW1sOiJceEU0IixhcmluZzoiXHhFNSIsYWVsaWc6Ilx4RTYiLGNjZWRpbDoiXHhFNyIsZWdyYXZlOiJceEU4IixlYWN1dGU6Ilx4RTkiLGVjaXJjOiJceEVBIixldW1sOiJceEVCIixpZ3JhdmU6Ilx4RUMiLGlhY3V0ZToiXHhFRCIsaWNpcmM6Ilx4RUUiLGl1bWw6Ilx4RUYiLGV0aDoiXHhGMCIsbnRpbGRlOiJceEYxIixvZ3JhdmU6Ilx4RjIiLG9hY3V0ZToiXHhGMyIsb2NpcmM6Ilx4RjQiLG90aWxkZToiXHhGNSIsb3VtbDoiXHhGNiIsZGl2aWRlOiJceEY3Iixvc2xhc2g6Ilx4RjgiLHVncmF2ZToiXHhGOSIsdWFjdXRlOiJceEZBIix1Y2lyYzoiXHhGQiIsdXVtbDoiXHhGQyIseWFjdXRlOiJceEZEIix0aG9ybjoiXHhGRSIseXVtbDoiXHhGRiIsZm5vZjoiXHUwMTkyIixBbHBoYToiXHUwMzkxIixCZXRhOiJcdTAzOTIiLEdhbW1hOiJcdTAzOTMiLERlbHRhOiJcdTAzOTQiLEVwc2lsb246Ilx1MDM5NSIsWmV0YToiXHUwMzk2IixFdGE6Ilx1MDM5NyIsVGhldGE6Ilx1MDM5OCIsSW90YToiXHUwMzk5IixLYXBwYToiXHUwMzlBIixMYW1iZGE6Ilx1MDM5QiIsTXU6Ilx1MDM5QyIsTnU6Ilx1MDM5RCIsWGk6Ilx1MDM5RSIsT21pY3JvbjoiXHUwMzlGIixQaToiXHUwM0EwIixSaG86Ilx1MDNBMSIsU2lnbWE6Ilx1MDNBMyIsVGF1OiJcdTAzQTQiLFVwc2lsb246Ilx1MDNBNSIsUGhpOiJcdTAzQTYiLENoaToiXHUwM0E3IixQc2k6Ilx1MDNBOCIsT21lZ2E6Ilx1MDNBOSIsYWxwaGE6Ilx1MDNCMSIsYmV0YToiXHUwM0IyIixnYW1tYToiXHUwM0IzIixkZWx0YToiXHUwM0I0IixlcHNpbG9uOiJcdTAzQjUiLHpldGE6Ilx1MDNCNiIsZXRhOiJcdTAzQjciLHRoZXRhOiJcdTAzQjgiLGlvdGE6Ilx1MDNCOSIsa2FwcGE6Ilx1MDNCQSIsbGFtYmRhOiJcdTAzQkIiLG11OiJcdTAzQkMiLG51OiJcdTAzQkQiLHhpOiJcdTAzQkUiLG9taWNyb246Ilx1MDNCRiIscGk6Ilx1MDNDMCIscmhvOiJcdTAzQzEiLHNpZ21hZjoiXHUwM0MyIixzaWdtYToiXHUwM0MzIix0YXU6Ilx1MDNDNCIsdXBzaWxvbjoiXHUwM0M1IixwaGk6Ilx1MDNDNiIsY2hpOiJcdTAzQzciLHBzaToiXHUwM0M4IixvbWVnYToiXHUwM0M5Iix0aGV0YXN5bToiXHUwM0QxIix1cHNpaDoiXHUwM0QyIixwaXY6Ilx1MDNENiIsYnVsbDoiXHUyMDIyIixoZWxsaXA6Ilx1MjAyNiIscHJpbWU6Ilx1MjAzMiIsUHJpbWU6Ilx1MjAzMyIsb2xpbmU6Ilx1MjAzRSIsZnJhc2w6Ilx1MjA0NCIsd2VpZXJwOiJcdTIxMTgiLGltYWdlOiJcdTIxMTEiLHJlYWw6Ilx1MjExQyIsdHJhZGU6Ilx1MjEyMiIsYWxlZnN5bToiXHUyMTM1IixsYXJyOiJcdTIxOTAiLHVhcnI6Ilx1MjE5MSIscmFycjoiXHUyMTkyIixkYXJyOiJcdTIxOTMiLGhhcnI6Ilx1MjE5NCIsY3JhcnI6Ilx1MjFCNSIsbEFycjoiXHUyMUQwIix1QXJyOiJcdTIxRDEiLHJBcnI6Ilx1MjFEMiIsZEFycjoiXHUyMUQzIixoQXJyOiJcdTIxRDQiLGZvcmFsbDoiXHUyMjAwIixwYXJ0OiJcdTIyMDIiLGV4aXN0OiJcdTIyMDMiLGVtcHR5OiJcdTIyMDUiLG5hYmxhOiJcdTIyMDciLGlzaW46Ilx1MjIwOCIsbm90aW46Ilx1MjIwOSIsbmk6Ilx1MjIwQiIscHJvZDoiXHUyMjBGIixzdW06Ilx1MjIxMSIsbWludXM6Ilx1MjIxMiIsbG93YXN0OiJcdTIyMTciLHJhZGljOiJcdTIyMUEiLHByb3A6Ilx1MjIxRCIsaW5maW46Ilx1MjIxRSIsYW5nOiJcdTIyMjAiLGFuZDoiXHUyMjI3IixvcjoiXHUyMjI4IixjYXA6Ilx1MjIyOSIsY3VwOiJcdTIyMkEiLGludDoiXHUyMjJCIix0aGVyZTQ6Ilx1MjIzNCIsc2ltOiJcdTIyM0MiLGNvbmc6Ilx1MjI0NSIsYXN5bXA6Ilx1MjI0OCIsbmU6Ilx1MjI2MCIsZXF1aXY6Ilx1MjI2MSIsbGU6Ilx1MjI2NCIsZ2U6Ilx1MjI2NSIsc3ViOiJcdTIyODIiLHN1cDoiXHUyMjgzIixuc3ViOiJcdTIyODQiLHN1YmU6Ilx1MjI4NiIsc3VwZToiXHUyMjg3IixvcGx1czoiXHUyMjk1IixvdGltZXM6Ilx1MjI5NyIscGVycDoiXHUyMkE1IixzZG90OiJcdTIyQzUiLGxjZWlsOiJcdTIzMDgiLHJjZWlsOiJcdTIzMDkiLGxmbG9vcjoiXHUyMzBBIixyZmxvb3I6Ilx1MjMwQiIsbGFuZzoiXHUyMzI5IixyYW5nOiJcdTIzMkEiLGxvejoiXHUyNUNBIixzcGFkZXM6Ilx1MjY2MCIsY2x1YnM6Ilx1MjY2MyIsaGVhcnRzOiJcdTI2NjUiLGRpYW1zOiJcdTI2NjYiLHF1b3Q6JyInLGFtcDoiJiIsbHQ6IjwiLGd0OiI+IixPRWxpZzoiXHUwMTUyIixvZWxpZzoiXHUwMTUzIixTY2Fyb246Ilx1MDE2MCIsc2Nhcm9uOiJcdTAxNjEiLFl1bWw6Ilx1MDE3OCIsY2lyYzoiXHUwMkM2Iix0aWxkZToiXHUwMkRDIixlbnNwOiJcdTIwMDIiLGVtc3A6Ilx1MjAwMyIsdGhpbnNwOiJcdTIwMDkiLHp3bmo6Ilx1MjAwQyIsendqOiJcdTIwMEQiLGxybToiXHUyMDBFIixybG06Ilx1MjAwRiIsbmRhc2g6Ilx1MjAxMyIsbWRhc2g6Ilx1MjAxNCIsbHNxdW86Ilx1MjAxOCIscnNxdW86Ilx1MjAxOSIsc2JxdW86Ilx1MjAxQSIsbGRxdW86Ilx1MjAxQyIscmRxdW86Ilx1MjAxRCIsYmRxdW86Ilx1MjAxRSIsZGFnZ2VyOiJcdTIwMjAiLERhZ2dlcjoiXHUyMDIxIixwZXJtaWw6Ilx1MjAzMCIsbHNhcXVvOiJcdTIwMzkiLHJzYXF1bzoiXHUyMDNBIixldXJvOiJcdTIwQUMifX0pO3ZhciBGNGUsTzRlPWIoKCk9PntGNGU9WyJjZW50IiwiY29weSIsImRpdmlkZSIsImd0IiwibHQiLCJub3QiLCJwYXJhIiwidGltZXMiXX0pO2Z1bmN0aW9uIEI0ZSh0LGUsYSxpKXtsZXQgcj1TdHJpbmcuZnJvbUNoYXJDb2RlKHQpO2lmKFI0ZS5jYWxsKGQkLHIpKXtsZXQgcz1kJFtyXSxuPSImIitzO3JldHVybiBhJiZQNGUuaW5jbHVkZXMocykmJiFGNGUuaW5jbHVkZXMocykmJighaXx8ZSYmZSE9PTYxJiZsT3QudGVzdChTdHJpbmcuZnJvbUNoYXJDb2RlKGUpKSk/bjpuKyI7In1yZXR1cm4iIn12YXIgUjRlLGQkLHl1LGxPdCxINGU9YigoKT0+e0k0ZSgpO040ZSgpO080ZSgpO1I0ZT17fS5oYXNPd25Qcm9wZXJ0eSxkJD17fTtmb3IoeXUgaW4gdnUpUjRlLmNhbGwodnUseXUpJiYoZCRbdnVbeXVdXT15dSk7bE90PS9bXlxkQS1aYS16XS99KTtmdW5jdGlvbiBxNGUodCxlLGEpe2xldCBpPSQ0ZSh0LGUsYS5vbWl0T3B0aW9uYWxTZW1pY29sb25zKSxyO2lmKChhLnVzZU5hbWVkUmVmZXJlbmNlc3x8YS51c2VTaG9ydGVzdFJlZmVyZW5jZXMpJiYocj1CNGUodCxlLGEub21pdE9wdGlvbmFsU2VtaWNvbG9ucyxhLmF0dHJpYnV0ZSkpLChhLnVzZVNob3J0ZXN0UmVmZXJlbmNlc3x8IXIpJiZhLnVzZVNob3J0ZXN0UmVmZXJlbmNlcyl7bGV0IHM9RDRlKHQsZSxhLm9taXRPcHRpb25hbFNlbWljb2xvbnMpO3MubGVuZ3RoPGkubGVuZ3RoJiYoaT1zKX1yZXR1cm4gciYmKCFhLnVzZVNob3J0ZXN0UmVmZXJlbmNlc3x8ci5sZW5ndGg8aS5sZW5ndGgpP3I6aX12YXIgVjRlPWIoKCk9PntBNGUoKTtFNGUoKTtINGUoKX0pO2Z1bmN0aW9uIGo0ZSh0KXtyZXR1cm4iJiN4Iit0LnRvU3RyaW5nKDE2KS50b1VwcGVyQ2FzZSgpKyI7In12YXIgVTRlPWIoKCk9Pnt9KTtmdW5jdGlvbiB6cyh0LGUpe3JldHVybiBjJCh0LE9iamVjdC5hc3NpZ24oe2Zvcm1hdDpxNGV9LGUpKX1mdW5jdGlvbiBvQjEodCxlKXtyZXR1cm4gYyQodCxPYmplY3QuYXNzaWduKHtmb3JtYXQ6ajRlfSxlKSl9dmFyIFc0ZT1iKCgpPT57TDRlKCk7VjRlKCk7VTRlKCl9KTt2YXIgeHU9YigoKT0+e1c0ZSgpfSk7ZnVuY3Rpb24gRzRlKHQsZSxhLGkpe3JldHVybiBpLnNldHRpbmdzLmJvZ3VzQ29tbWVudHM/Ijw/Iit6cyh0LnZhbHVlLE9iamVjdC5hc3NpZ24oe30saS5zZXR0aW5ncy5jaGFyYWN0ZXJSZWZlcmVuY2VzLHtzdWJzZXQ6ZE90fSkpKyI+IjoiPCEtLSIrdC52YWx1ZS5yZXBsYWNlKGNPdCxyKSsiLS0+IjtmdW5jdGlvbiByKHMpe3JldHVybiB6cyhzLE9iamVjdC5hc3NpZ24oe30saS5zZXR0aW5ncy5jaGFyYWN0ZXJSZWZlcmVuY2VzLHtzdWJzZXQ6aE90fSkpfX12YXIgY090LGRPdCxoT3QsWTRlPWIoKCk9Pnt4dSgpO2NPdD0vXj58Xi0+fDwhLS18LS0+fC0tIT58PCEtJC9nLGRPdD1bIj4iXSxoT3Q9WyI8IiwiPiJdfSk7ZnVuY3Rpb24gWjRlKHQsZSxhLGkpe3JldHVybiI8ISIrKGkuc2V0dGluZ3MudXBwZXJEb2N0eXBlPyJET0NUWVBFIjoiZG9jdHlwZSIpKyhpLnNldHRpbmdzLnRpZ2h0RG9jdHlwZT8iIjoiICIpKyJodG1sPiJ9dmFyIFg0ZT1iKCgpPT57fSk7ZnVuY3Rpb24gZkIxKHQpe2xldCBlPVtdLGE9U3RyaW5nKHR8fCIiKSxpPWEuaW5kZXhPZigiLCIpLHI9MCxzPSExO2Zvcig7IXM7KXtpPT09LTEmJihpPWEubGVuZ3RoLHM9ITApO2xldCBuPWEuc2xpY2UocixpKS50cmltKCk7KG58fCFzKSYmZS5wdXNoKG4pLHI9aSsxLGk9YS5pbmRleE9mKCIsIixyKX1yZXR1cm4gZX1mdW5jdGlvbiBLNGUodCxlKXtsZXQgYT1lfHx7fTtyZXR1cm4odFt0Lmxlbmd0aC0xXT09PSIiP1suLi50LCIiXTp0KS5qb2luKChhLnBhZFJpZ2h0PyIgIjoiIikrIiwiKyhhLnBhZExlZnQ9PT0hMT8iIjoiICIpKS50cmltKCl9dmFyIFE0ZT1iKCgpPT57fSk7ZnVuY3Rpb24gZ0IxKHQpe2xldCBlPVN0cmluZyh0fHwiIikudHJpbSgpO3JldHVybiBlP2Uuc3BsaXQoL1sgXHRcblxyXGZdKy9nKTpbXX1mdW5jdGlvbiBKNGUodCl7cmV0dXJuIHQuam9pbigiICIpLnRyaW0oKX12YXIgZTNlPWIoKCk9Pnt9KTtmdW5jdGlvbiBBMCh0KXtyZXR1cm4gdHlwZW9mIHQ9PSJvYmplY3QiP3QudHlwZT09PSJ0ZXh0Ij90M2UodC52YWx1ZSk6ITE6dDNlKHQpfWZ1bmN0aW9uIHQzZSh0KXtyZXR1cm4gdC5yZXBsYWNlKHBPdCwiIik9PT0iIn12YXIgcE90LGEzZT1iKCgpPT57cE90PS9bIFx0XG5cZlxyXS9nfSk7dmFyIHd1PWIoKCk9PnthM2UoKX0pO2Z1bmN0aW9uIGkzZSh0KXtyZXR1cm4gZTtmdW5jdGlvbiBlKGEsaSxyKXtsZXQgcz1hP2EuY2hpbGRyZW46dU90LG49KGl8fDApK3Qsbz1zW25dO2lmKCFyKWZvcig7byYmQTAobyk7KW4rPXQsbz1zW25dO3JldHVybiBvfX12YXIgSDEsaCQsdU90LHAkPWIoKCk9Pnt3dSgpO0gxPWkzZSgxKSxoJD1pM2UoLTEpLHVPdD1bXX0pO2Z1bmN0aW9uIE11KHQpe3JldHVybiBlO2Z1bmN0aW9uIGUoYSxpLHIpe3JldHVybiBmT3QuY2FsbCh0LGEudGFnTmFtZSkmJnRbYS50YWdOYW1lXShhLGkscil9fXZhciBmT3QsdSQ9YigoKT0+e2ZPdD17fS5oYXNPd25Qcm9wZXJ0eX0pO2Z1bmN0aW9uIGYkKHQsZSxhKXtsZXQgaT1IMShhLGUsITApO3JldHVybiFpfHxpLnR5cGUhPT0iY29tbWVudCImJiEoaS50eXBlPT09InRleHQiJiZBMChpLnZhbHVlLmNoYXJBdCgwKSkpfWZ1bmN0aW9uIG1PdCh0LGUsYSl7bGV0IGk9SDEoYSxlKTtyZXR1cm4haXx8aS50eXBlIT09ImNvbW1lbnQifWZ1bmN0aW9uIGdPdCh0LGUsYSl7bGV0IGk9SDEoYSxlKTtyZXR1cm4haXx8aS50eXBlIT09ImNvbW1lbnQifWZ1bmN0aW9uIGJPdCh0LGUsYSl7bGV0IGk9SDEoYSxlKTtyZXR1cm4gaT9pLnR5cGU9PT0iZWxlbWVudCImJihpLnRhZ05hbWU9PT0iYWRkcmVzcyJ8fGkudGFnTmFtZT09PSJhcnRpY2xlInx8aS50YWdOYW1lPT09ImFzaWRlInx8aS50YWdOYW1lPT09ImJsb2NrcXVvdGUifHxpLnRhZ05hbWU9PT0iZGV0YWlscyJ8fGkudGFnTmFtZT09PSJkaXYifHxpLnRhZ05hbWU9PT0iZGwifHxpLnRhZ05hbWU9PT0iZmllbGRzZXQifHxpLnRhZ05hbWU9PT0iZmlnY2FwdGlvbiJ8fGkudGFnTmFtZT09PSJmaWd1cmUifHxpLnRhZ05hbWU9PT0iZm9vdGVyInx8aS50YWdOYW1lPT09ImZvcm0ifHxpLnRhZ05hbWU9PT0iaDEifHxpLnRhZ05hbWU9PT0iaDIifHxpLnRhZ05hbWU9PT0iaDMifHxpLnRhZ05hbWU9PT0iaDQifHxpLnRhZ05hbWU9PT0iaDUifHxpLnRhZ05hbWU9PT0iaDYifHxpLnRhZ05hbWU9PT0iaGVhZGVyInx8aS50YWdOYW1lPT09Imhncm91cCJ8fGkudGFnTmFtZT09PSJociJ8fGkudGFnTmFtZT09PSJtYWluInx8aS50YWdOYW1lPT09Im1lbnUifHxpLnRhZ05hbWU9PT0ibmF2Inx8aS50YWdOYW1lPT09Im9sInx8aS50YWdOYW1lPT09InAifHxpLnRhZ05hbWU9PT0icHJlInx8aS50YWdOYW1lPT09InNlY3Rpb24ifHxpLnRhZ05hbWU9PT0idGFibGUifHxpLnRhZ05hbWU9PT0idWwiKTohYXx8IShhLnR5cGU9PT0iZWxlbWVudCImJihhLnRhZ05hbWU9PT0iYSJ8fGEudGFnTmFtZT09PSJhdWRpbyJ8fGEudGFnTmFtZT09PSJkZWwifHxhLnRhZ05hbWU9PT0iaW5zInx8YS50YWdOYW1lPT09Im1hcCJ8fGEudGFnTmFtZT09PSJub3NjcmlwdCJ8fGEudGFnTmFtZT09PSJ2aWRlbyIpKX1mdW5jdGlvbiB2T3QodCxlLGEpe2xldCBpPUgxKGEsZSk7cmV0dXJuIWl8fGkudHlwZT09PSJlbGVtZW50IiYmaS50YWdOYW1lPT09ImxpIn1mdW5jdGlvbiB5T3QodCxlLGEpe2xldCBpPUgxKGEsZSk7cmV0dXJuISEoaSYmaS50eXBlPT09ImVsZW1lbnQiJiYoaS50YWdOYW1lPT09ImR0Inx8aS50YWdOYW1lPT09ImRkIikpfWZ1bmN0aW9uIHhPdCh0LGUsYSl7bGV0IGk9SDEoYSxlKTtyZXR1cm4haXx8aS50eXBlPT09ImVsZW1lbnQiJiYoaS50YWdOYW1lPT09ImR0Inx8aS50YWdOYW1lPT09ImRkIil9ZnVuY3Rpb24gcjNlKHQsZSxhKXtsZXQgaT1IMShhLGUpO3JldHVybiFpfHxpLnR5cGU9PT0iZWxlbWVudCImJihpLnRhZ05hbWU9PT0icnAifHxpLnRhZ05hbWU9PT0icnQiKX1mdW5jdGlvbiB3T3QodCxlLGEpe2xldCBpPUgxKGEsZSk7cmV0dXJuIWl8fGkudHlwZT09PSJlbGVtZW50IiYmaS50YWdOYW1lPT09Im9wdGdyb3VwIn1mdW5jdGlvbiBNT3QodCxlLGEpe2xldCBpPUgxKGEsZSk7cmV0dXJuIWl8fGkudHlwZT09PSJlbGVtZW50IiYmKGkudGFnTmFtZT09PSJvcHRpb24ifHxpLnRhZ05hbWU9PT0ib3B0Z3JvdXAiKX1mdW5jdGlvbiB6T3QodCxlLGEpe2xldCBpPUgxKGEsZSk7cmV0dXJuISEoaSYmaS50eXBlPT09ImVsZW1lbnQiJiYoaS50YWdOYW1lPT09InRib2R5Inx8aS50YWdOYW1lPT09InRmb290IikpfWZ1bmN0aW9uIGtPdCh0LGUsYSl7bGV0IGk9SDEoYSxlKTtyZXR1cm4haXx8aS50eXBlPT09ImVsZW1lbnQiJiYoaS50YWdOYW1lPT09InRib2R5Inx8aS50YWdOYW1lPT09InRmb290Iil9ZnVuY3Rpb24gU090KHQsZSxhKXtyZXR1cm4hSDEoYSxlKX1mdW5jdGlvbiBDT3QodCxlLGEpe2xldCBpPUgxKGEsZSk7cmV0dXJuIWl8fGkudHlwZT09PSJlbGVtZW50IiYmaS50YWdOYW1lPT09InRyIn1mdW5jdGlvbiBzM2UodCxlLGEpe2xldCBpPUgxKGEsZSk7cmV0dXJuIWl8fGkudHlwZT09PSJlbGVtZW50IiYmKGkudGFnTmFtZT09PSJ0ZCJ8fGkudGFnTmFtZT09PSJ0aCIpfXZhciBuNSxtJD1iKCgpPT57d3UoKTtwJCgpO3UkKCk7bjU9TXUoe2JvZHk6Z090LGNhcHRpb246ZiQsY29sZ3JvdXA6ZiQsZGQ6eE90LGR0OnlPdCxoZWFkOmYkLGh0bWw6bU90LGxpOnZPdCxvcHRncm91cDp3T3Qsb3B0aW9uOk1PdCxwOmJPdCxycDpyM2UscnQ6cjNlLHRib2R5OmtPdCx0ZDpzM2UsdGZvb3Q6U090LHRoOnMzZSx0aGVhZDp6T3QsdHI6Q090fSl9KTtmdW5jdGlvbiBfT3QodCl7bGV0IGU9SDEodCwtMSk7cmV0dXJuIWV8fGUudHlwZSE9PSJjb21tZW50In1mdW5jdGlvbiBUT3QodCl7bGV0IGU9bmV3IFNldDtmb3IobGV0IGkgb2YgdC5jaGlsZHJlbilpZihpLnR5cGU9PT0iZWxlbWVudCImJihpLnRhZ05hbWU9PT0iYmFzZSJ8fGkudGFnTmFtZT09PSJ0aXRsZSIpKXtpZihlLmhhcyhpLnRhZ05hbWUpKXJldHVybiExO2UuYWRkKGkudGFnTmFtZSl9bGV0IGE9dC5jaGlsZHJlblswXTtyZXR1cm4hYXx8YS50eXBlPT09ImVsZW1lbnQifWZ1bmN0aW9uIExPdCh0KXtsZXQgZT1IMSh0LC0xLCEwKTtyZXR1cm4hZXx8ZS50eXBlIT09ImNvbW1lbnQiJiYhKGUudHlwZT09PSJ0ZXh0IiYmQTAoZS52YWx1ZS5jaGFyQXQoMCkpKSYmIShlLnR5cGU9PT0iZWxlbWVudCImJihlLnRhZ05hbWU9PT0ibWV0YSJ8fGUudGFnTmFtZT09PSJsaW5rInx8ZS50YWdOYW1lPT09InNjcmlwdCJ8fGUudGFnTmFtZT09PSJzdHlsZSJ8fGUudGFnTmFtZT09PSJ0ZW1wbGF0ZSIpKX1mdW5jdGlvbiAkT3QodCxlLGEpe2xldCBpPWgkKGEsZSkscj1IMSh0LC0xLCEwKTtyZXR1cm4gYSYmaSYmaS50eXBlPT09ImVsZW1lbnQiJiZpLnRhZ05hbWU9PT0iY29sZ3JvdXAiJiZuNShpLGEuY2hpbGRyZW4uaW5kZXhPZihpKSxhKT8hMTohIShyJiZyLnR5cGU9PT0iZWxlbWVudCImJnIudGFnTmFtZT09PSJjb2wiKX1mdW5jdGlvbiBBT3QodCxlLGEpe2xldCBpPWgkKGEsZSkscj1IMSh0LC0xKTtyZXR1cm4gYSYmaSYmaS50eXBlPT09ImVsZW1lbnQiJiYoaS50YWdOYW1lPT09InRoZWFkInx8aS50YWdOYW1lPT09InRib2R5IikmJm41KGksYS5jaGlsZHJlbi5pbmRleE9mKGkpLGEpPyExOiEhKHImJnIudHlwZT09PSJlbGVtZW50IiYmci50YWdOYW1lPT09InRyIil9dmFyIG4zZSxvM2U9YigoKT0+e3d1KCk7cCQoKTttJCgpO3UkKCk7bjNlPU11KHtib2R5OkxPdCxjb2xncm91cDokT3QsaGVhZDpUT3QsaHRtbDpfT3QsdGJvZHk6QU90fSl9KTtmdW5jdGlvbiBsM2UodCxlLGEsaSl7bGV0IHI9aS5zY2hlbWEscz1yLnNwYWNlPT09InN2ZyI/ITE6aS5zZXR0aW5ncy5vbWl0T3B0aW9uYWxUYWdzLG49ci5zcGFjZT09PSJzdmciP2kuc2V0dGluZ3MuY2xvc2VFbXB0eUVsZW1lbnRzOmkuc2V0dGluZ3Mudm9pZHMuaW5jbHVkZXModC50YWdOYW1lLnRvTG93ZXJDYXNlKCkpLG89W10sZDtyLnNwYWNlPT09Imh0bWwiJiZ0LnRhZ05hbWU9PT0ic3ZnIiYmKGkuc2NoZW1hPWJ1KTtsZXQgYz1ET3QoaSx0LnByb3BlcnRpZXMpLGg9aS5hbGwoci5zcGFjZT09PSJodG1sIiYmdC50YWdOYW1lPT09InRlbXBsYXRlIj90LmNvbnRlbnQ6dCk7cmV0dXJuIGkuc2NoZW1hPXIsaCYmKG49ITEpLChjfHwhc3x8IW4zZSh0LGUsYSkpJiYoby5wdXNoKCI8Iix0LnRhZ05hbWUsYz8iICIrYzoiIiksbiYmKHIuc3BhY2U9PT0ic3ZnInx8aS5zZXR0aW5ncy5jbG9zZVNlbGZDbG9zaW5nKSYmKGQ9Yy5jaGFyQXQoYy5sZW5ndGgtMSksKCFpLnNldHRpbmdzLnRpZ2h0U2VsZkNsb3Npbmd8fGQ9PT0iLyJ8fGQmJmQhPT0nIicmJmQhPT0iJyIpJiZvLnB1c2goIiAiKSxvLnB1c2goIi8iKSksby5wdXNoKCI+IikpLG8ucHVzaChoKSwhbiYmKCFzfHwhbjUodCxlLGEpKSYmby5wdXNoKCI8LyIrdC50YWdOYW1lKyI+Iiksby5qb2luKCIiKX1mdW5jdGlvbiBET3QodCxlKXtsZXQgYT1bXSxpPS0xLHI7aWYoZSl7Zm9yKHIgaW4gZSlpZihlW3JdIT09bnVsbCYmZVtyXSE9PXZvaWQgMCl7bGV0IHM9RU90KHQscixlW3JdKTtzJiZhLnB1c2gocyl9fWZvcig7KytpPGEubGVuZ3RoOyl7bGV0IHM9dC5zZXR0aW5ncy50aWdodEF0dHJpYnV0ZXM/YVtpXS5jaGFyQXQoYVtpXS5sZW5ndGgtMSk6dm9pZCAwO2khPT1hLmxlbmd0aC0xJiZzIT09JyInJiZzIT09IiciJiYoYVtpXSs9IiAiKX1yZXR1cm4gYS5qb2luKCIiKX1mdW5jdGlvbiBFT3QodCxlLGEpe2xldCBpPW8kKHQuc2NoZW1hLGUpLHI9dC5zZXR0aW5ncy5hbGxvd1BhcnNlRXJyb3JzJiZ0LnNjaGVtYS5zcGFjZT09PSJodG1sIj8wOjEscz10LnNldHRpbmdzLmFsbG93RGFuZ2Vyb3VzQ2hhcmFjdGVycz8wOjEsbj10LnF1b3RlLG87aWYoaS5vdmVybG9hZGVkQm9vbGVhbiYmKGE9PT1pLmF0dHJpYnV0ZXx8YT09PSIiKT9hPSEwOihpLmJvb2xlYW58fGkub3ZlcmxvYWRlZEJvb2xlYW4pJiYodHlwZW9mIGEhPSJzdHJpbmcifHxhPT09aS5hdHRyaWJ1dGV8fGE9PT0iIikmJihhPSEhYSksYT09bnVsbHx8YT09PSExfHx0eXBlb2YgYT09Im51bWJlciImJk51bWJlci5pc05hTihhKSlyZXR1cm4iIjtsZXQgZD16cyhpLmF0dHJpYnV0ZSxPYmplY3QuYXNzaWduKHt9LHQuc2V0dGluZ3MuY2hhcmFjdGVyUmVmZXJlbmNlcyx7c3Vic2V0Onp1Lm5hbWVbcl1bc119KSk7cmV0dXJuIGE9PT0hMHx8KGE9QXJyYXkuaXNBcnJheShhKT8oaS5jb21tYVNlcGFyYXRlZD9LNGU6SjRlKShhLHtwYWRMZWZ0OiF0LnNldHRpbmdzLnRpZ2h0Q29tbWFTZXBhcmF0ZWRMaXN0c30pOlN0cmluZyhhKSx0LnNldHRpbmdzLmNvbGxhcHNlRW1wdHlBdHRyaWJ1dGVzJiYhYSk/ZDoodC5zZXR0aW5ncy5wcmVmZXJVbnF1b3RlZCYmKG89enMoYSxPYmplY3QuYXNzaWduKHt9LHQuc2V0dGluZ3MuY2hhcmFjdGVyUmVmZXJlbmNlcyx7YXR0cmlidXRlOiEwLHN1YnNldDp6dS51bnF1b3RlZFtyXVtzXX0pKSksbyE9PWEmJih0LnNldHRpbmdzLnF1b3RlU21hcnQmJkUzKGEsbik+RTMoYSx0LmFsdGVybmF0aXZlKSYmKG49dC5hbHRlcm5hdGl2ZSksbz1uK3pzKGEsT2JqZWN0LmFzc2lnbih7fSx0LnNldHRpbmdzLmNoYXJhY3RlclJlZmVyZW5jZXMse3N1YnNldDoobj09PSInIj96dS5zaW5nbGU6enUuZG91YmxlKVtyXVtzXSxhdHRyaWJ1dGU6ITB9KSkrbiksZCsobyYmIj0iK28pKX12YXIgenUsYzNlPWIoKCk9Pnt0VCgpO1E0ZSgpO2wkKCk7ZTNlKCk7eHUoKTttJCgpO28zZSgpO3p1PXtuYW1lOltbYAkKXGZcciAmLz0+YC5zcGxpdCgiIiksYAkKXGZcciAiJicvPT5cYGAuc3BsaXQoIiIpXSxbYFwwCQpcZlxyICImJy88PT5gLnNwbGl0KCIiKSxgXDAJClxmXHIgIiYnLzw9PlxgYC5zcGxpdCgiIildXSx1bnF1b3RlZDpbW2AJClxmXHIgJj5gLnNwbGl0KCIiKSxgXDAJClxmXHIgIiYnPD0+XGBgLnNwbGl0KCIiKV0sW2BcMAkKXGZcciAiJic8PT5cYGAuc3BsaXQoIiIpLGBcMAkKXGZcciAiJic8PT5cYGAuc3BsaXQoIiIpXV0sc2luZ2xlOltbIiYnIi5zcGxpdCgiIiksIlwiJidgIi5zcGxpdCgiIildLFsiXDAmJyIuc3BsaXQoIiIpLCJcMFwiJidgIi5zcGxpdCgiIildXSxkb3VibGU6W1snIiYnLnNwbGl0KCIiKSwiXCImJ2AiLnNwbGl0KCIiKV0sWydcMCImJy5zcGxpdCgiIiksIlwwXCImJ2AiLnNwbGl0KCIiKV1dfX0pO2Z1bmN0aW9uIGt1KHQsZSxhLGkpe3JldHVybiBhJiZhLnR5cGU9PT0iZWxlbWVudCImJihhLnRhZ05hbWU9PT0ic2NyaXB0Inx8YS50YWdOYW1lPT09InN0eWxlIik/dC52YWx1ZTp6cyh0LnZhbHVlLE9iamVjdC5hc3NpZ24oe30saS5zZXR0aW5ncy5jaGFyYWN0ZXJSZWZlcmVuY2VzLHtzdWJzZXQ6UE90fSkpfXZhciBQT3QsZyQ9YigoKT0+e3h1KCk7UE90PVsiPCIsIiYiXX0pO2Z1bmN0aW9uIGQzZSh0LGUsYSxpKXtyZXR1cm4gaS5zZXR0aW5ncy5hbGxvd0Rhbmdlcm91c0h0bWw/dC52YWx1ZTprdSh0LGUsYSxpKX12YXIgaDNlPWIoKCk9PntnJCgpfSk7ZnVuY3Rpb24gcDNlKHQsZSxhLGkpe3JldHVybiBpLmFsbCh0KX12YXIgdTNlPWIoKCk9Pnt9KTtmdW5jdGlvbiBJT3QodCl7dGhyb3cgbmV3IEVycm9yKCJFeHBlY3RlZCBub2RlLCBub3QgYCIrdCsiYCIpfWZ1bmN0aW9uIE5PdCh0KXtsZXQgZT10O3Rocm93IG5ldyBFcnJvcigiQ2Fubm90IGNvbXBpbGUgdW5rbm93biBub2RlIGAiK2UudHlwZSsiYCIpfXZhciBmM2UsbTNlPWIoKCk9PntwVCgpO1k0ZSgpO1g0ZSgpO2MzZSgpO2gzZSgpO3UzZSgpO2ckKCk7ZjNlPXo5KCJ0eXBlIix7aW52YWxpZDpJT3QsdW5rbm93bjpOT3QsaGFuZGxlcnM6e2NvbW1lbnQ6RzRlLGRvY3R5cGU6WjRlLGVsZW1lbnQ6bDNlLHJhdzpkM2Uscm9vdDpwM2UsdGV4dDprdX19KX0pO2Z1bmN0aW9uIGIkKHQsZSl7bGV0IGE9ZXx8Rk90LGk9YS5xdW90ZXx8JyInLHI9aT09PSciJz8iJyI6JyInO2lmKGkhPT0nIicmJmkhPT0iJyIpdGhyb3cgbmV3IEVycm9yKCJJbnZhbGlkIHF1b3RlIGAiK2krImAsIGV4cGVjdGVkIGAnYCBvciBgXCJgIik7cmV0dXJue29uZTpCT3QsYWxsOkhPdCxzZXR0aW5nczp7b21pdE9wdGlvbmFsVGFnczphLm9taXRPcHRpb25hbFRhZ3N8fCExLGFsbG93UGFyc2VFcnJvcnM6YS5hbGxvd1BhcnNlRXJyb3JzfHwhMSxhbGxvd0Rhbmdlcm91c0NoYXJhY3RlcnM6YS5hbGxvd0Rhbmdlcm91c0NoYXJhY3RlcnN8fCExLHF1b3RlU21hcnQ6YS5xdW90ZVNtYXJ0fHwhMSxwcmVmZXJVbnF1b3RlZDphLnByZWZlclVucXVvdGVkfHwhMSx0aWdodEF0dHJpYnV0ZXM6YS50aWdodEF0dHJpYnV0ZXN8fCExLHVwcGVyRG9jdHlwZTphLnVwcGVyRG9jdHlwZXx8ITEsdGlnaHREb2N0eXBlOmEudGlnaHREb2N0eXBlfHwhMSxib2d1c0NvbW1lbnRzOmEuYm9ndXNDb21tZW50c3x8ITEsdGlnaHRDb21tYVNlcGFyYXRlZExpc3RzOmEudGlnaHRDb21tYVNlcGFyYXRlZExpc3RzfHwhMSx0aWdodFNlbGZDbG9zaW5nOmEudGlnaHRTZWxmQ2xvc2luZ3x8ITEsY29sbGFwc2VFbXB0eUF0dHJpYnV0ZXM6YS5jb2xsYXBzZUVtcHR5QXR0cmlidXRlc3x8ITEsYWxsb3dEYW5nZXJvdXNIdG1sOmEuYWxsb3dEYW5nZXJvdXNIdG1sfHwhMSx2b2lkczphLnZvaWRzfHxwNGUsY2hhcmFjdGVyUmVmZXJlbmNlczphLmNoYXJhY3RlclJlZmVyZW5jZXN8fE9PdCxjbG9zZVNlbGZDbG9zaW5nOmEuY2xvc2VTZWxmQ2xvc2luZ3x8ITEsY2xvc2VFbXB0eUVsZW1lbnRzOmEuY2xvc2VFbXB0eUVsZW1lbnRzfHwhMX0sc2NoZW1hOmEuc3BhY2U9PT0ic3ZnIj9idTpfNGUscXVvdGU6aSxhbHRlcm5hdGl2ZTpyfS5vbmUoQXJyYXkuaXNBcnJheSh0KT97dHlwZToicm9vdCIsY2hpbGRyZW46dH06dCx2b2lkIDAsdm9pZCAwKX1mdW5jdGlvbiBCT3QodCxlLGEpe3JldHVybiBmM2UodCxlLGEsdGhpcyl9ZnVuY3Rpb24gSE90KHQpe2xldCBlPVtdLGE9dCYmdC5jaGlsZHJlbnx8Uk90LGk9LTE7Zm9yKDsrK2k8YS5sZW5ndGg7KWVbaV09dGhpcy5vbmUoYVtpXSxpLHQpO3JldHVybiBlLmpvaW4oIiIpfXZhciBGT3QsT090LFJPdCxnM2U9YigoKT0+e3U0ZSgpO2wkKCk7bTNlKCk7Rk90PXt9LE9PdD17fSxST3Q9W119KTt2YXIgYjNlPWIoKCk9PntnM2UoKX0pO2Z1bmN0aW9uIEczKHQpe2xldCBlPXRoaXMse2hhbmRsZXJzOmEsc2FuaXRpemU6aSwuLi5yfT10fHxxT3Qscz0hMSxuO3R5cGVvZiBpPT0iYm9vbGVhbiI/cz0haTppJiYobj1pKSxlLmNvbXBpbGVyPW87ZnVuY3Rpb24gbyhkLGMpe2xldCBoPVpMKGQse2hhbmRsZXJzOmEsYWxsb3dEYW5nZXJvdXNIdG1sOnN9KSxsPXM/aDpWTChoLG4pLGY9YiQobCx7Li4ucixhbGxvd0Rhbmdlcm91c0h0bWw6c30pO3JldHVybiBjLmV4dG5hbWUmJihjLmV4dG5hbWU9Ii5odG1sIiksZCYmZC50eXBlPT09InJvb3QiJiZmJiYvW15cclxuXS8udGVzdChmLmNoYXJBdChmLmxlbmd0aC0xKSk/ZitgCmA6Zn19dmFyIHFPdCx2M2U9YigoKT0+e28wZSgpO2g0ZSgpO2IzZSgpO3FPdD17fX0pO3ZhciB5M2U9YigoKT0+e3YzZSgpfSk7ZnVuY3Rpb24gWTModCl7bGV0IGU9dGhpcztlLmNvbXBpbGVyPWE7ZnVuY3Rpb24gYShpKXtyZXR1cm4gRVQoaSx7Li4uZS5kYXRhKCJzZXR0aW5ncyIpLC4uLnQsZXh0ZW5zaW9uczplLmRhdGEoInRvTWFya2Rvd25FeHRlbnNpb25zIil8fFtdfSl9fXZhciB4M2U9YigoKT0+e0U5KCl9KTt2YXIgdzNlPWIoKCk9Pnt4M2UoKX0pO2Z1bmN0aW9uIFZPdCh0KXtmb3IodmFyIGU9MTtlPGFyZ3VtZW50cy5sZW5ndGg7ZSsrKXt2YXIgYT1hcmd1bWVudHNbZV07Zm9yKHZhciBpIGluIGEpYS5oYXNPd25Qcm9wZXJ0eShpKSYmKHRbaV09YVtpXSl9cmV0dXJuIHR9ZnVuY3Rpb24gdiQodCxlKXtyZXR1cm4gQXJyYXkoZSsxKS5qb2luKHQpfWZ1bmN0aW9uIE0zZSh0KXtyZXR1cm4gdC5yZXBsYWNlKC9eXG4qLywiIil9ZnVuY3Rpb24gejNlKHQpe2Zvcih2YXIgZT10Lmxlbmd0aDtlPjAmJnRbZS0xXT09PWAKYDspZS0tO3JldHVybiB0LnN1YnN0cmluZygwLGUpfWZ1bmN0aW9uIGszZSh0KXtyZXR1cm4gejNlKE0zZSh0KSl9ZnVuY3Rpb24geSQodCl7cmV0dXJuIHgkKHQsak90KX1mdW5jdGlvbiBDM2UodCl7cmV0dXJuIHgkKHQsUzNlKX1mdW5jdGlvbiBVT3QodCl7cmV0dXJuIFQzZSh0LFMzZSl9ZnVuY3Rpb24gV090KHQpe3JldHVybiB4JCh0LF8zZSl9ZnVuY3Rpb24gR090KHQpe3JldHVybiBUM2UodCxfM2UpfWZ1bmN0aW9uIHgkKHQsZSl7cmV0dXJuIGUuaW5kZXhPZih0Lm5vZGVOYW1lKT49MH1mdW5jdGlvbiBUM2UodCxlKXtyZXR1cm4gdC5nZXRFbGVtZW50c0J5VGFnTmFtZSYmZS5zb21lKGZ1bmN0aW9uKGEpe3JldHVybiB0LmdldEVsZW1lbnRzQnlUYWdOYW1lKGEpLmxlbmd0aH0pfWZ1bmN0aW9uIFN1KHQpe3JldHVybiB0P3QucmVwbGFjZSgvKFxuK1xzKikrL2csYApgKToiIn1mdW5jdGlvbiBMM2UodCl7dGhpcy5vcHRpb25zPXQsdGhpcy5fa2VlcD1bXSx0aGlzLl9yZW1vdmU9W10sdGhpcy5ibGFua1J1bGU9e3JlcGxhY2VtZW50OnQuYmxhbmtSZXBsYWNlbWVudH0sdGhpcy5rZWVwUmVwbGFjZW1lbnQ9dC5rZWVwUmVwbGFjZW1lbnQsdGhpcy5kZWZhdWx0UnVsZT17cmVwbGFjZW1lbnQ6dC5kZWZhdWx0UmVwbGFjZW1lbnR9LHRoaXMuYXJyYXk9W107Zm9yKHZhciBlIGluIHQucnVsZXMpdGhpcy5hcnJheS5wdXNoKHQucnVsZXNbZV0pfWZ1bmN0aW9uIHckKHQsZSxhKXtmb3IodmFyIGk9MDtpPHQubGVuZ3RoO2krKyl7dmFyIHI9dFtpXTtpZihZT3QocixlLGEpKXJldHVybiByfX1mdW5jdGlvbiBZT3QodCxlLGEpe3ZhciBpPXQuZmlsdGVyO2lmKHR5cGVvZiBpPT0ic3RyaW5nIil7aWYoaT09PWUubm9kZU5hbWUudG9Mb3dlckNhc2UoKSlyZXR1cm4hMH1lbHNlIGlmKEFycmF5LmlzQXJyYXkoaSkpe2lmKGkuaW5kZXhPZihlLm5vZGVOYW1lLnRvTG93ZXJDYXNlKCkpPi0xKXJldHVybiEwfWVsc2UgaWYodHlwZW9mIGk9PSJmdW5jdGlvbiIpe2lmKGkuY2FsbCh0LGUsYSkpcmV0dXJuITB9ZWxzZSB0aHJvdyBuZXcgVHlwZUVycm9yKCJgZmlsdGVyYCBuZWVkcyB0byBiZSBhIHN0cmluZywgYXJyYXksIG9yIGZ1bmN0aW9uIil9ZnVuY3Rpb24gWk90KHQpe3ZhciBlPXQuZWxlbWVudCxhPXQuaXNCbG9jayxpPXQuaXNWb2lkLHI9dC5pc1ByZXx8ZnVuY3Rpb24obCl7cmV0dXJuIGwubm9kZU5hbWU9PT0iUFJFIn07aWYoISghZS5maXJzdENoaWxkfHxyKGUpKSl7Zm9yKHZhciBzPW51bGwsbj0hMSxvPW51bGwsZD0kM2UobyxlLHIpO2QhPT1lOyl7aWYoZC5ub2RlVHlwZT09PTN8fGQubm9kZVR5cGU9PT00KXt2YXIgYz1kLmRhdGEucmVwbGFjZSgvWyBcclxuXHRdKy9nLCIgIik7aWYoKCFzfHwvICQvLnRlc3Qocy5kYXRhKSkmJiFuJiZjWzBdPT09IiAiJiYoYz1jLnN1YnN0cigxKSksIWMpe2Q9TSQoZCk7Y29udGludWV9ZC5kYXRhPWMscz1kfWVsc2UgaWYoZC5ub2RlVHlwZT09PTEpYShkKXx8ZC5ub2RlTmFtZT09PSJCUiI/KHMmJihzLmRhdGE9cy5kYXRhLnJlcGxhY2UoLyAkLywiIikpLHM9bnVsbCxuPSExKTppKGQpfHxyKGQpPyhzPW51bGwsbj0hMCk6cyYmKG49ITEpO2Vsc2V7ZD1NJChkKTtjb250aW51ZX12YXIgaD0kM2UobyxkLHIpO289ZCxkPWh9cyYmKHMuZGF0YT1zLmRhdGEucmVwbGFjZSgvICQvLCIiKSxzLmRhdGF8fE0kKHMpKX19ZnVuY3Rpb24gTSQodCl7dmFyIGU9dC5uZXh0U2libGluZ3x8dC5wYXJlbnROb2RlO3JldHVybiB0LnBhcmVudE5vZGUucmVtb3ZlQ2hpbGQodCksZX1mdW5jdGlvbiAkM2UodCxlLGEpe3JldHVybiB0JiZ0LnBhcmVudE5vZGU9PT1lfHxhKGUpP2UubmV4dFNpYmxpbmd8fGUucGFyZW50Tm9kZTplLmZpcnN0Q2hpbGR8fGUubmV4dFNpYmxpbmd8fGUucGFyZW50Tm9kZX1mdW5jdGlvbiBYT3QoKXt2YXIgdD16JC5ET01QYXJzZXIsZT0hMTt0cnl7bmV3IHQoKS5wYXJzZUZyb21TdHJpbmcoIiIsInRleHQvaHRtbCIpJiYoZT0hMCl9Y2F0Y2h7fXJldHVybiBlfWZ1bmN0aW9uIEtPdCgpe3ZhciB0PWZ1bmN0aW9uKCl7fTtyZXR1cm4gUU90KCk/dC5wcm90b3R5cGUucGFyc2VGcm9tU3RyaW5nPWZ1bmN0aW9uKGUpe3ZhciBhPW5ldyB3aW5kb3cuQWN0aXZlWE9iamVjdCgiaHRtbGZpbGUiKTtyZXR1cm4gYS5kZXNpZ25Nb2RlPSJvbiIsYS5vcGVuKCksYS53cml0ZShlKSxhLmNsb3NlKCksYX06dC5wcm90b3R5cGUucGFyc2VGcm9tU3RyaW5nPWZ1bmN0aW9uKGUpe3ZhciBhPWRvY3VtZW50LmltcGxlbWVudGF0aW9uLmNyZWF0ZUhUTUxEb2N1bWVudCgiIik7cmV0dXJuIGEub3BlbigpLGEud3JpdGUoZSksYS5jbG9zZSgpLGF9LHR9ZnVuY3Rpb24gUU90KCl7dmFyIHQ9ITE7dHJ5e2RvY3VtZW50LmltcGxlbWVudGF0aW9uLmNyZWF0ZUhUTUxEb2N1bWVudCgiIikub3BlbigpfWNhdGNoe3okLkFjdGl2ZVhPYmplY3QmJih0PSEwKX1yZXR1cm4gdH1mdW5jdGlvbiBlUnQodCxlKXt2YXIgYTtpZih0eXBlb2YgdD09InN0cmluZyIpe3ZhciBpPXRSdCgpLnBhcnNlRnJvbVN0cmluZygnPHgtdHVybmRvd24gaWQ9InR1cm5kb3duLXJvb3QiPicrdCsiPC94LXR1cm5kb3duPiIsInRleHQvaHRtbCIpO2E9aS5nZXRFbGVtZW50QnlJZCgidHVybmRvd24tcm9vdCIpfWVsc2UgYT10LmNsb25lTm9kZSghMCk7cmV0dXJuIFpPdCh7ZWxlbWVudDphLGlzQmxvY2s6eSQsaXNWb2lkOkMzZSxpc1ByZTplLnByZWZvcm1hdHRlZENvZGU/YVJ0Om51bGx9KSxhfWZ1bmN0aW9uIHRSdCgpe3JldHVybiBrJD1rJHx8bmV3IEpPdCxrJH1mdW5jdGlvbiBhUnQodCl7cmV0dXJuIHQubm9kZU5hbWU9PT0iUFJFInx8dC5ub2RlTmFtZT09PSJDT0RFIn1mdW5jdGlvbiBpUnQodCxlKXtyZXR1cm4gdC5pc0Jsb2NrPXkkKHQpLHQuaXNDb2RlPXQubm9kZU5hbWU9PT0iQ09ERSJ8fHQucGFyZW50Tm9kZS5pc0NvZGUsdC5pc0JsYW5rPXJSdCh0KSx0LmZsYW5raW5nV2hpdGVzcGFjZT1zUnQodCxlKSx0fWZ1bmN0aW9uIHJSdCh0KXtyZXR1cm4hQzNlKHQpJiYhV090KHQpJiYvXlxzKiQvaS50ZXN0KHQudGV4dENvbnRlbnQpJiYhVU90KHQpJiYhR090KHQpfWZ1bmN0aW9uIHNSdCh0LGUpe2lmKHQuaXNCbG9ja3x8ZS5wcmVmb3JtYXR0ZWRDb2RlJiZ0LmlzQ29kZSlyZXR1cm57bGVhZGluZzoiIix0cmFpbGluZzoiIn07dmFyIGE9blJ0KHQudGV4dENvbnRlbnQpO3JldHVybiBhLmxlYWRpbmdBc2NpaSYmQTNlKCJsZWZ0Iix0LGUpJiYoYS5sZWFkaW5nPWEubGVhZGluZ05vbkFzY2lpKSxhLnRyYWlsaW5nQXNjaWkmJkEzZSgicmlnaHQiLHQsZSkmJihhLnRyYWlsaW5nPWEudHJhaWxpbmdOb25Bc2NpaSkse2xlYWRpbmc6YS5sZWFkaW5nLHRyYWlsaW5nOmEudHJhaWxpbmd9fWZ1bmN0aW9uIG5SdCh0KXt2YXIgZT10Lm1hdGNoKC9eKChbIFx0XHJcbl0qKShccyopKSg/Oig/PVxTKVtcc1xTXSpcUyk/KChccyo/KShbIFx0XHJcbl0qKSkkLyk7cmV0dXJue2xlYWRpbmc6ZVsxXSxsZWFkaW5nQXNjaWk6ZVsyXSxsZWFkaW5nTm9uQXNjaWk6ZVszXSx0cmFpbGluZzplWzRdLHRyYWlsaW5nTm9uQXNjaWk6ZVs1XSx0cmFpbGluZ0FzY2lpOmVbNl19fWZ1bmN0aW9uIEEzZSh0LGUsYSl7dmFyIGkscixzO3JldHVybiB0PT09ImxlZnQiPyhpPWUucHJldmlvdXNTaWJsaW5nLHI9LyAkLyk6KGk9ZS5uZXh0U2libGluZyxyPS9eIC8pLGkmJihpLm5vZGVUeXBlPT09Mz9zPXIudGVzdChpLm5vZGVWYWx1ZSk6YS5wcmVmb3JtYXR0ZWRDb2RlJiZpLm5vZGVOYW1lPT09IkNPREUiP3M9ITE6aS5ub2RlVHlwZT09PTEmJiF5JChpKSYmKHM9ci50ZXN0KGkudGV4dENvbnRlbnQpKSksc31mdW5jdGlvbiBDdSh0KXtpZighKHRoaXMgaW5zdGFuY2VvZiBDdSkpcmV0dXJuIG5ldyBDdSh0KTt2YXIgZT17cnVsZXM6VzIsaGVhZGluZ1N0eWxlOiJzZXRleHQiLGhyOiIqICogKiIsYnVsbGV0TGlzdE1hcmtlcjoiKiIsY29kZUJsb2NrU3R5bGU6ImluZGVudGVkIixmZW5jZToiYGBgIixlbURlbGltaXRlcjoiXyIsc3Ryb25nRGVsaW1pdGVyOiIqKiIsbGlua1N0eWxlOiJpbmxpbmVkIixsaW5rUmVmZXJlbmNlU3R5bGU6ImZ1bGwiLGJyOiIgICIscHJlZm9ybWF0dGVkQ29kZTohMSxibGFua1JlcGxhY2VtZW50OmZ1bmN0aW9uKGEsaSl7cmV0dXJuIGkuaXNCbG9jaz9gCgpgOiIifSxrZWVwUmVwbGFjZW1lbnQ6ZnVuY3Rpb24oYSxpKXtyZXR1cm4gaS5pc0Jsb2NrP2AKCmAraS5vdXRlckhUTUwrYAoKYDppLm91dGVySFRNTH0sZGVmYXVsdFJlcGxhY2VtZW50OmZ1bmN0aW9uKGEsaSl7cmV0dXJuIGkuaXNCbG9jaz9gCgpgK2ErYAoKYDphfX07dGhpcy5vcHRpb25zPVZPdCh7fSxlLHQpLHRoaXMucnVsZXM9bmV3IEwzZSh0aGlzLm9wdGlvbnMpfWZ1bmN0aW9uIEQzZSh0KXt2YXIgZT10aGlzO3JldHVybiBvUnQuY2FsbCh0LmNoaWxkTm9kZXMsZnVuY3Rpb24oYSxpKXtpPW5ldyBpUnQoaSxlLm9wdGlvbnMpO3ZhciByPSIiO3JldHVybiBpLm5vZGVUeXBlPT09Mz9yPWkuaXNDb2RlP2kubm9kZVZhbHVlOmUuZXNjYXBlKGkubm9kZVZhbHVlKTppLm5vZGVUeXBlPT09MSYmKHI9ZFJ0LmNhbGwoZSxpKSksRTNlKGEscil9LCIiKX1mdW5jdGlvbiBjUnQodCl7dmFyIGU9dGhpcztyZXR1cm4gdGhpcy5ydWxlcy5mb3JFYWNoKGZ1bmN0aW9uKGEpe3R5cGVvZiBhLmFwcGVuZD09ImZ1bmN0aW9uIiYmKHQ9RTNlKHQsYS5hcHBlbmQoZS5vcHRpb25zKSkpfSksdC5yZXBsYWNlKC9eW1x0XHJcbl0rLywiIikucmVwbGFjZSgvW1x0XHJcblxzXSskLywiIil9ZnVuY3Rpb24gZFJ0KHQpe3ZhciBlPXRoaXMucnVsZXMuZm9yTm9kZSh0KSxhPUQzZS5jYWxsKHRoaXMsdCksaT10LmZsYW5raW5nV2hpdGVzcGFjZTtyZXR1cm4oaS5sZWFkaW5nfHxpLnRyYWlsaW5nKSYmKGE9YS50cmltKCkpLGkubGVhZGluZytlLnJlcGxhY2VtZW50KGEsdCx0aGlzLm9wdGlvbnMpK2kudHJhaWxpbmd9ZnVuY3Rpb24gRTNlKHQsZSl7dmFyIGE9ejNlKHQpLGk9TTNlKGUpLHI9TWF0aC5tYXgodC5sZW5ndGgtYS5sZW5ndGgsZS5sZW5ndGgtaS5sZW5ndGgpLHM9YAoKYC5zdWJzdHJpbmcoMCxyKTtyZXR1cm4gYStzK2l9ZnVuY3Rpb24gaFJ0KHQpe3JldHVybiB0IT1udWxsJiYodHlwZW9mIHQ9PSJzdHJpbmcifHx0Lm5vZGVUeXBlJiYodC5ub2RlVHlwZT09PTF8fHQubm9kZVR5cGU9PT05fHx0Lm5vZGVUeXBlPT09MTEpKX12YXIgak90LFMzZSxfM2UsVzIseiQsSk90LGskLG9SdCxsUnQsX3UsUDNlPWIoKCk9PntqT3Q9WyJBRERSRVNTIiwiQVJUSUNMRSIsIkFTSURFIiwiQVVESU8iLCJCTE9DS1FVT1RFIiwiQk9EWSIsIkNBTlZBUyIsIkNFTlRFUiIsIkREIiwiRElSIiwiRElWIiwiREwiLCJEVCIsIkZJRUxEU0VUIiwiRklHQ0FQVElPTiIsIkZJR1VSRSIsIkZPT1RFUiIsIkZPUk0iLCJGUkFNRVNFVCIsIkgxIiwiSDIiLCJIMyIsIkg0IiwiSDUiLCJINiIsIkhFQURFUiIsIkhHUk9VUCIsIkhSIiwiSFRNTCIsIklTSU5ERVgiLCJMSSIsIk1BSU4iLCJNRU5VIiwiTkFWIiwiTk9GUkFNRVMiLCJOT1NDUklQVCIsIk9MIiwiT1VUUFVUIiwiUCIsIlBSRSIsIlNFQ1RJT04iLCJUQUJMRSIsIlRCT0RZIiwiVEQiLCJURk9PVCIsIlRIIiwiVEhFQUQiLCJUUiIsIlVMIl07UzNlPVsiQVJFQSIsIkJBU0UiLCJCUiIsIkNPTCIsIkNPTU1BTkQiLCJFTUJFRCIsIkhSIiwiSU1HIiwiSU5QVVQiLCJLRVlHRU4iLCJMSU5LIiwiTUVUQSIsIlBBUkFNIiwiU09VUkNFIiwiVFJBQ0siLCJXQlIiXTtfM2U9WyJBIiwiVEFCTEUiLCJUSEVBRCIsIlRCT0RZIiwiVEZPT1QiLCJUSCIsIlREIiwiSUZSQU1FIiwiU0NSSVBUIiwiQVVESU8iLCJWSURFTyJdO1cyPXt9O1cyLnBhcmFncmFwaD17ZmlsdGVyOiJwIixyZXBsYWNlbWVudDpmdW5jdGlvbih0KXtyZXR1cm5gCgpgK3QrYAoKYH19LFcyLmxpbmVCcmVhaz17ZmlsdGVyOiJiciIscmVwbGFjZW1lbnQ6ZnVuY3Rpb24odCxlLGEpe3JldHVybiBhLmJyK2AKYH19LFcyLmhlYWRpbmc9e2ZpbHRlcjpbImgxIiwiaDIiLCJoMyIsImg0IiwiaDUiLCJoNiJdLHJlcGxhY2VtZW50OmZ1bmN0aW9uKHQsZSxhKXt2YXIgaT1OdW1iZXIoZS5ub2RlTmFtZS5jaGFyQXQoMSkpO2lmKGEuaGVhZGluZ1N0eWxlPT09InNldGV4dCImJmk8Myl7dmFyIHI9diQoaT09PTE/Ij0iOiItIix0Lmxlbmd0aCk7cmV0dXJuYAoKYCt0K2AKYCtyK2AKCmB9ZWxzZSByZXR1cm5gCgpgK3YkKCIjIixpKSsiICIrdCtgCgpgfX0sVzIuYmxvY2txdW90ZT17ZmlsdGVyOiJibG9ja3F1b3RlIixyZXBsYWNlbWVudDpmdW5jdGlvbih0KXtyZXR1cm4gdD1rM2UodCkucmVwbGFjZSgvXi9nbSwiPiAiKSxgCgpgK3QrYAoKYH19LFcyLmxpc3Q9e2ZpbHRlcjpbInVsIiwib2wiXSxyZXBsYWNlbWVudDpmdW5jdGlvbih0LGUpe3ZhciBhPWUucGFyZW50Tm9kZTtyZXR1cm4gYS5ub2RlTmFtZT09PSJMSSImJmEubGFzdEVsZW1lbnRDaGlsZD09PWU/YApgK3Q6YAoKYCt0K2AKCmB9fSxXMi5saXN0SXRlbT17ZmlsdGVyOiJsaSIscmVwbGFjZW1lbnQ6ZnVuY3Rpb24odCxlLGEpe3ZhciBpPWEuYnVsbGV0TGlzdE1hcmtlcisiICAgIixyPWUucGFyZW50Tm9kZTtpZihyLm5vZGVOYW1lPT09Ik9MIil7dmFyIHM9ci5nZXRBdHRyaWJ1dGUoInN0YXJ0Iiksbj1BcnJheS5wcm90b3R5cGUuaW5kZXhPZi5jYWxsKHIuY2hpbGRyZW4sZSk7aT0ocz9OdW1iZXIocykrbjpuKzEpKyIuICAifXZhciBvPS9cbiQvLnRlc3QodCk7cmV0dXJuIHQ9azNlKHQpKyhvP2AKYDoiIiksdD10LnJlcGxhY2UoL1xuL2dtLGAKYCsiICIucmVwZWF0KGkubGVuZ3RoKSksaSt0KyhlLm5leHRTaWJsaW5nP2AKYDoiIil9fSxXMi5pbmRlbnRlZENvZGVCbG9jaz17ZmlsdGVyOmZ1bmN0aW9uKHQsZSl7cmV0dXJuIGUuY29kZUJsb2NrU3R5bGU9PT0iaW5kZW50ZWQiJiZ0Lm5vZGVOYW1lPT09IlBSRSImJnQuZmlyc3RDaGlsZCYmdC5maXJzdENoaWxkLm5vZGVOYW1lPT09IkNPREUifSxyZXBsYWNlbWVudDpmdW5jdGlvbih0LGUsYSl7cmV0dXJuYAoKICAgIGArZS5maXJzdENoaWxkLnRleHRDb250ZW50LnJlcGxhY2UoL1xuL2csYAogICAgYCkrYAoKYH19LFcyLmZlbmNlZENvZGVCbG9jaz17ZmlsdGVyOmZ1bmN0aW9uKHQsZSl7cmV0dXJuIGUuY29kZUJsb2NrU3R5bGU9PT0iZmVuY2VkIiYmdC5ub2RlTmFtZT09PSJQUkUiJiZ0LmZpcnN0Q2hpbGQmJnQuZmlyc3RDaGlsZC5ub2RlTmFtZT09PSJDT0RFIn0scmVwbGFjZW1lbnQ6ZnVuY3Rpb24odCxlLGEpe2Zvcih2YXIgaT1lLmZpcnN0Q2hpbGQuZ2V0QXR0cmlidXRlKCJjbGFzcyIpfHwiIixyPShpLm1hdGNoKC9sYW5ndWFnZS0oXFMrKS8pfHxbbnVsbCwiIl0pWzFdLHM9ZS5maXJzdENoaWxkLnRleHRDb250ZW50LG49YS5mZW5jZS5jaGFyQXQoMCksbz0zLGQ9bmV3IFJlZ0V4cCgiXiIrbisiezMsfSIsImdtIiksYztjPWQuZXhlYyhzKTspY1swXS5sZW5ndGg+PW8mJihvPWNbMF0ubGVuZ3RoKzEpO3ZhciBoPXYkKG4sbyk7cmV0dXJuYAoKYCtoK3IrYApgK3MucmVwbGFjZSgvXG4kLywiIikrYApgK2grYAoKYH19LFcyLmhvcml6b250YWxSdWxlPXtmaWx0ZXI6ImhyIixyZXBsYWNlbWVudDpmdW5jdGlvbih0LGUsYSl7cmV0dXJuYAoKYCthLmhyK2AKCmB9fSxXMi5pbmxpbmVMaW5rPXtmaWx0ZXI6ZnVuY3Rpb24odCxlKXtyZXR1cm4gZS5saW5rU3R5bGU9PT0iaW5saW5lZCImJnQubm9kZU5hbWU9PT0iQSImJnQuZ2V0QXR0cmlidXRlKCJocmVmIil9LHJlcGxhY2VtZW50OmZ1bmN0aW9uKHQsZSl7dmFyIGE9ZS5nZXRBdHRyaWJ1dGUoImhyZWYiKTthJiYoYT1hLnJlcGxhY2UoLyhbKCldKS9nLCJcXCQxIikpO3ZhciBpPVN1KGUuZ2V0QXR0cmlidXRlKCJ0aXRsZSIpKTtyZXR1cm4gaSYmKGk9JyAiJytpLnJlcGxhY2UoLyIvZywnXFwiJykrJyInKSwiWyIrdCsiXSgiK2EraSsiKSJ9fSxXMi5yZWZlcmVuY2VMaW5rPXtmaWx0ZXI6ZnVuY3Rpb24odCxlKXtyZXR1cm4gZS5saW5rU3R5bGU9PT0icmVmZXJlbmNlZCImJnQubm9kZU5hbWU9PT0iQSImJnQuZ2V0QXR0cmlidXRlKCJocmVmIil9LHJlcGxhY2VtZW50OmZ1bmN0aW9uKHQsZSxhKXt2YXIgaT1lLmdldEF0dHJpYnV0ZSgiaHJlZiIpLHI9U3UoZS5nZXRBdHRyaWJ1dGUoInRpdGxlIikpO3ImJihyPScgIicrcisnIicpO3ZhciBzLG47c3dpdGNoKGEubGlua1JlZmVyZW5jZVN0eWxlKXtjYXNlImNvbGxhcHNlZCI6cz0iWyIrdCsiXVtdIixuPSJbIit0KyJdOiAiK2krcjticmVhaztjYXNlInNob3J0Y3V0IjpzPSJbIit0KyJdIixuPSJbIit0KyJdOiAiK2krcjticmVhaztkZWZhdWx0OnZhciBvPXRoaXMucmVmZXJlbmNlcy5sZW5ndGgrMTtzPSJbIit0KyJdWyIrbysiXSIsbj0iWyIrbysiXTogIitpK3J9cmV0dXJuIHRoaXMucmVmZXJlbmNlcy5wdXNoKG4pLHN9LHJlZmVyZW5jZXM6W10sYXBwZW5kOmZ1bmN0aW9uKHQpe3ZhciBlPSIiO3JldHVybiB0aGlzLnJlZmVyZW5jZXMubGVuZ3RoJiYoZT1gCgpgK3RoaXMucmVmZXJlbmNlcy5qb2luKGAKYCkrYAoKYCx0aGlzLnJlZmVyZW5jZXM9W10pLGV9fSxXMi5lbXBoYXNpcz17ZmlsdGVyOlsiZW0iLCJpIl0scmVwbGFjZW1lbnQ6ZnVuY3Rpb24odCxlLGEpe3JldHVybiB0LnRyaW0oKT9hLmVtRGVsaW1pdGVyK3QrYS5lbURlbGltaXRlcjoiIn19LFcyLnN0cm9uZz17ZmlsdGVyOlsic3Ryb25nIiwiYiJdLHJlcGxhY2VtZW50OmZ1bmN0aW9uKHQsZSxhKXtyZXR1cm4gdC50cmltKCk/YS5zdHJvbmdEZWxpbWl0ZXIrdCthLnN0cm9uZ0RlbGltaXRlcjoiIn19LFcyLmNvZGU9e2ZpbHRlcjpmdW5jdGlvbih0KXt2YXIgZT10LnByZXZpb3VzU2libGluZ3x8dC5uZXh0U2libGluZyxhPXQucGFyZW50Tm9kZS5ub2RlTmFtZT09PSJQUkUiJiYhZTtyZXR1cm4gdC5ub2RlTmFtZT09PSJDT0RFIiYmIWF9LHJlcGxhY2VtZW50OmZ1bmN0aW9uKHQpe2lmKCF0KXJldHVybiIiO3Q9dC5yZXBsYWNlKC9ccj9cbnxcci9nLCIgIik7Zm9yKHZhciBlPS9eYHxeIC4qP1teIF0uKiAkfGAkLy50ZXN0KHQpPyIgIjoiIixhPSJgIixpPXQubWF0Y2goL2ArL2dtKXx8W107aS5pbmRleE9mKGEpIT09LTE7KWE9YSsiYCI7cmV0dXJuIGErZSt0K2UrYX19LFcyLmltYWdlPXtmaWx0ZXI6ImltZyIscmVwbGFjZW1lbnQ6ZnVuY3Rpb24odCxlKXt2YXIgYT1TdShlLmdldEF0dHJpYnV0ZSgiYWx0IikpLGk9ZS5nZXRBdHRyaWJ1dGUoInNyYyIpfHwiIixyPVN1KGUuZ2V0QXR0cmlidXRlKCJ0aXRsZSIpKSxzPXI/JyAiJytyKyciJzoiIjtyZXR1cm4gaT8iIVsiK2ErIl0oIitpK3MrIikiOiIifX07TDNlLnByb3RvdHlwZT17YWRkOmZ1bmN0aW9uKHQsZSl7dGhpcy5hcnJheS51bnNoaWZ0KGUpfSxrZWVwOmZ1bmN0aW9uKHQpe3RoaXMuX2tlZXAudW5zaGlmdCh7ZmlsdGVyOnQscmVwbGFjZW1lbnQ6dGhpcy5rZWVwUmVwbGFjZW1lbnR9KX0scmVtb3ZlOmZ1bmN0aW9uKHQpe3RoaXMuX3JlbW92ZS51bnNoaWZ0KHtmaWx0ZXI6dCxyZXBsYWNlbWVudDpmdW5jdGlvbigpe3JldHVybiIifX0pfSxmb3JOb2RlOmZ1bmN0aW9uKHQpe2lmKHQuaXNCbGFuaylyZXR1cm4gdGhpcy5ibGFua1J1bGU7dmFyIGU7cmV0dXJuKGU9dyQodGhpcy5hcnJheSx0LHRoaXMub3B0aW9ucykpfHwoZT13JCh0aGlzLl9rZWVwLHQsdGhpcy5vcHRpb25zKSl8fChlPXckKHRoaXMuX3JlbW92ZSx0LHRoaXMub3B0aW9ucykpP2U6dGhpcy5kZWZhdWx0UnVsZX0sZm9yRWFjaDpmdW5jdGlvbih0KXtmb3IodmFyIGU9MDtlPHRoaXMuYXJyYXkubGVuZ3RoO2UrKyl0KHRoaXMuYXJyYXlbZV0sZSl9fTt6JD10eXBlb2Ygd2luZG93PCJ1Ij93aW5kb3c6e307Sk90PVhPdCgpP3okLkRPTVBhcnNlcjpLT3QoKTtvUnQ9QXJyYXkucHJvdG90eXBlLnJlZHVjZSxsUnQ9W1svXFwvZywiXFxcXCJdLFsvXCovZywiXFwqIl0sWy9eLS9nLCJcXC0iXSxbL15cKyAvZywiXFwrICJdLFsvXig9KykvZywiXFwkMSJdLFsvXigjezEsNn0pIC9nLCJcXCQxICJdLFsvYC9nLCJcXGAiXSxbL15+fn4vZywiXFx+fn4iXSxbL1xbL2csIlxcWyJdLFsvXF0vZywiXFxdIl0sWy9ePi9nLCJcXD4iXSxbL18vZywiXFxfIl0sWy9eKFxkKylcLiAvZywiJDFcXC4gIl1dO0N1LnByb3RvdHlwZT17dHVybmRvd246ZnVuY3Rpb24odCl7aWYoIWhSdCh0KSl0aHJvdyBuZXcgVHlwZUVycm9yKHQrIiBpcyBub3QgYSBzdHJpbmcsIG9yIGFuIGVsZW1lbnQvZG9jdW1lbnQvZnJhZ21lbnQgbm9kZS4iKTtpZih0PT09IiIpcmV0dXJuIiI7dmFyIGU9RDNlLmNhbGwodGhpcyxuZXcgZVJ0KHQsdGhpcy5vcHRpb25zKSk7cmV0dXJuIGNSdC5jYWxsKHRoaXMsZSl9LHVzZTpmdW5jdGlvbih0KXtpZihBcnJheS5pc0FycmF5KHQpKWZvcih2YXIgZT0wO2U8dC5sZW5ndGg7ZSsrKXRoaXMudXNlKHRbZV0pO2Vsc2UgaWYodHlwZW9mIHQ9PSJmdW5jdGlvbiIpdCh0aGlzKTtlbHNlIHRocm93IG5ldyBUeXBlRXJyb3IoInBsdWdpbiBtdXN0IGJlIGEgRnVuY3Rpb24gb3IgYW4gQXJyYXkgb2YgRnVuY3Rpb25zIik7cmV0dXJuIHRoaXN9LGFkZFJ1bGU6ZnVuY3Rpb24odCxlKXtyZXR1cm4gdGhpcy5ydWxlcy5hZGQodCxlKSx0aGlzfSxrZWVwOmZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLnJ1bGVzLmtlZXAodCksdGhpc30scmVtb3ZlOmZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLnJ1bGVzLnJlbW92ZSh0KSx0aGlzfSxlc2NhcGU6ZnVuY3Rpb24odCl7cmV0dXJuIGxSdC5yZWR1Y2UoZnVuY3Rpb24oZSxhKXtyZXR1cm4gZS5yZXBsYWNlKGFbMF0sYVsxXSl9LHQpfX07X3U9Q3V9KTt2YXIgbzU9e307R2UobzUse2dmbTooKT0+RjNlLGhpZ2hsaWdodGVkQ29kZUJsb2NrOigpPT5DJCxzdHJpa2V0aHJvdWdoOigpPT5fJCx0YWJsZXM6KCk9PlQkLHRhc2tMaXN0SXRlbXM6KCk9PkwkfSk7ZnVuY3Rpb24gQyQodCl7dC5hZGRSdWxlKCJoaWdobGlnaHRlZENvZGVCbG9jayIse2ZpbHRlcjpmdW5jdGlvbihlKXt2YXIgYT1lLmZpcnN0Q2hpbGQ7cmV0dXJuIGUubm9kZU5hbWU9PT0iRElWIiYmSTNlLnRlc3QoZS5jbGFzc05hbWUpJiZhJiZhLm5vZGVOYW1lPT09IlBSRSJ9LHJlcGxhY2VtZW50OmZ1bmN0aW9uKGUsYSxpKXt2YXIgcj1hLmNsYXNzTmFtZXx8IiIscz0oci5tYXRjaChJM2UpfHxbbnVsbCwiIl0pWzFdO3JldHVybmAKCmAraS5mZW5jZStzK2AKYCthLmZpcnN0Q2hpbGQudGV4dENvbnRlbnQrYApgK2kuZmVuY2UrYAoKYH19KX1mdW5jdGlvbiBfJCh0KXt0LmFkZFJ1bGUoInN0cmlrZXRocm91Z2giLHtmaWx0ZXI6WyJkZWwiLCJzIiwic3RyaWtlIl0scmVwbGFjZW1lbnQ6ZnVuY3Rpb24oZSl7cmV0dXJuIn4iK2UrIn4ifX0pfWZ1bmN0aW9uIFMkKHQpe3ZhciBlPXQucGFyZW50Tm9kZTtyZXR1cm4gZS5ub2RlTmFtZT09PSJUSEVBRCJ8fGUuZmlyc3RDaGlsZD09PXQmJihlLm5vZGVOYW1lPT09IlRBQkxFInx8ZlJ0KGUpKSYmdVJ0LmNhbGwodC5jaGlsZE5vZGVzLGZ1bmN0aW9uKGEpe3JldHVybiBhLm5vZGVOYW1lPT09IlRIIn0pfWZ1bmN0aW9uIGZSdCh0KXt2YXIgZT10LnByZXZpb3VzU2libGluZztyZXR1cm4gdC5ub2RlTmFtZT09PSJUQk9EWSImJighZXx8ZS5ub2RlTmFtZT09PSJUSEVBRCImJi9eXHMqJC9pLnRlc3QoZS50ZXh0Q29udGVudCkpfWZ1bmN0aW9uIE4zZSh0LGUpe3ZhciBhPXBSdC5jYWxsKGUucGFyZW50Tm9kZS5jaGlsZE5vZGVzLGUpLGk9IiAiO3JldHVybiBhPT09MCYmKGk9InwgIiksaSt0KyIgfCJ9ZnVuY3Rpb24gVCQodCl7dC5rZWVwKGZ1bmN0aW9uKGEpe3JldHVybiBhLm5vZGVOYW1lPT09IlRBQkxFIiYmIVMkKGEucm93c1swXSl9KTtmb3IodmFyIGUgaW4gWjMpdC5hZGRSdWxlKGUsWjNbZV0pfWZ1bmN0aW9uIEwkKHQpe3QuYWRkUnVsZSgidGFza0xpc3RJdGVtcyIse2ZpbHRlcjpmdW5jdGlvbihlKXtyZXR1cm4gZS50eXBlPT09ImNoZWNrYm94IiYmZS5wYXJlbnROb2RlLm5vZGVOYW1lPT09IkxJIn0scmVwbGFjZW1lbnQ6ZnVuY3Rpb24oZSxhKXtyZXR1cm4oYS5jaGVja2VkPyJbeF0iOiJbIF0iKSsiICJ9fSl9ZnVuY3Rpb24gRjNlKHQpe3QudXNlKFtDJCxfJCxUJCxMJF0pfXZhciBJM2UscFJ0LHVSdCxaMyxPM2U9YigoKT0+e0kzZT0vaGlnaGxpZ2h0LSg/OnRleHR8c291cmNlKS0oW2EtejAtOV0rKS87cFJ0PUFycmF5LnByb3RvdHlwZS5pbmRleE9mLHVSdD1BcnJheS5wcm90b3R5cGUuZXZlcnksWjM9e307WjMudGFibGVDZWxsPXtmaWx0ZXI6WyJ0aCIsInRkIl0scmVwbGFjZW1lbnQ6ZnVuY3Rpb24odCxlKXtyZXR1cm4gTjNlKHQsZSl9fSxaMy50YWJsZVJvdz17ZmlsdGVyOiJ0ciIscmVwbGFjZW1lbnQ6ZnVuY3Rpb24odCxlKXt2YXIgYT0iIixpPXtsZWZ0OiI6LS0iLHJpZ2h0OiItLToiLGNlbnRlcjoiOi06In07aWYoUyQoZSkpZm9yKHZhciByPTA7cjxlLmNoaWxkTm9kZXMubGVuZ3RoO3IrKyl7dmFyIHM9Ii0tLSIsbj0oZS5jaGlsZE5vZGVzW3JdLmdldEF0dHJpYnV0ZSgiYWxpZ24iKXx8IiIpLnRvTG93ZXJDYXNlKCk7biYmKHM9aVtuXXx8cyksYSs9TjNlKHMsZS5jaGlsZE5vZGVzW3JdKX1yZXR1cm5gCmArdCsoYT9gCmArYToiIil9fSxaMy50YWJsZT17ZmlsdGVyOmZ1bmN0aW9uKHQpe3JldHVybiB0Lm5vZGVOYW1lPT09IlRBQkxFIiYmUyQodC5yb3dzWzBdKX0scmVwbGFjZW1lbnQ6ZnVuY3Rpb24odCl7cmV0dXJuIHQ9dC5yZXBsYWNlKGAKCmAsYApgKSxgCgpgK3QrYAoKYH19LFozLnRhYmxlU2VjdGlvbj17ZmlsdGVyOlsidGhlYWQiLCJ0Ym9keSIsInRmb290Il0scmVwbGFjZW1lbnQ6ZnVuY3Rpb24odCl7cmV0dXJuIHR9fX0pO3ZhciAkJCxBJD1iKCgpPT57JCQ9VTEoQ2llKCksMSk7c3JlKCk7aG9lKCk7Rm9lKCk7Wm9lKCk7eTNlKCk7dzNlKCk7UDNlKCk7TzNlKCl9KTt2YXIgVHUsQjNlPWIoKCk9PntBJCgpO1R1PWNsYXNzIHR7c3RhdGljIGFzeW5jIGNyZWF0ZUZyb21NYXJrZG93blN0cmluZyhlKXtsZXQgYT1uZXcgdDtyZXR1cm4gYXdhaXQgYS51cGRhdGVGcm9tTWFya2Rvd25TdHJpbmcoZSksYX1hc3luYyB1cGRhdGVGcm9tTWFya2Rvd25TdHJpbmcoZSl7bGV0IGEsaT1hd2FpdCBGNigpLnVzZShIMykudXNlKEIzKS51c2UoVjMsWyJ5YW1sIiwidG9tbCJdKS51c2UoWTMpLnVzZShHMykudXNlKCgpPT5yPT57Y29uc29sZS5kaXIocik7bGV0IHM9ci5jaGlsZHJlbi5maW5kKG49Pm4udHlwZT09PSJ5YW1sIik7cyYmKGE9cy52YWx1ZSl9KS5wcm9jZXNzKGUpO3RoaXMuaHRtbD1pLnRvU3RyaW5nKCksYT90aGlzLmZyb250bWF0dGVyRGF0YT1hd2FpdCAkJC55YW1sU3RyaW5nVG9PYmplY3QoYSk6dGhpcy5mcm9udG1hdHRlckRhdGE9e319fX0pO3ZhciBYMz17fTtHZShYMyx7U21hcnRNYXJrZG93bjooKT0+RCR9KTt2YXIgRCQsRSQ9YigoKT0+e0EkKCk7QjNlKCk7RCQ9Y2xhc3MgdHtzdGF0aWMgYXN5bmMgZWFzeU1hcmtkb3duVG9IdG1sKGUpe3JldHVybihhd2FpdCBuZXcgdCgpLmdldE1kUGFyc2VkUmVzdWx0RnJvbU1hcmtkb3duKGUpKS5odG1sfWNvbnN0cnVjdG9yKCl7fWFzeW5jIGdldE1kUGFyc2VkUmVzdWx0RnJvbU1hcmtkb3duKGUpe3JldHVybiBhd2FpdCBUdS5jcmVhdGVGcm9tTWFya2Rvd25TdHJpbmcoZSl9aHRtbFRvTWFya2Rvd24oZSl7bGV0IGE9bmV3IF91KHtoZWFkaW5nU3R5bGU6ImF0eCIsY29kZUJsb2NrU3R5bGU6ImZlbmNlZCJ9KTtyZXR1cm4gYS51c2UobzUuZ2ZtKSxhLnR1cm5kb3duKGUpfX19KTt2YXIgVzNlPWh0KE9pPT57InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShPaSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksT2kuUGF0aEVycm9yPU9pLlRva2VuRGF0YT12b2lkIDAsT2kucGFyc2U9RiQsT2kuY29tcGlsZT1iUnQsT2kubWF0Y2g9eVJ0LE9pLnBhdGhUb1JlZ2V4cD1WM2UsT2kuc3RyaW5naWZ5PU1SdDt2YXIgUCQ9Ii8iLEkkPXQ9PnQsSDNlPS9eWyRfXHB7SURfU3RhcnR9XSQvdSxOJD0vXlskXHUyMDBjXHUyMDBkXHB7SURfQ29udGludWV9XSQvdSxtUnQ9eyJ7IjoieyIsIn0iOiJ9IiwiKCI6IigiLCIpIjoiKSIsIlsiOiJbIiwiXSI6Il0iLCIrIjoiKyIsIj8iOiI/IiwiISI6IiEifTtmdW5jdGlvbiBnUnQodCl7cmV0dXJuIHQucmVwbGFjZSgvW3t9KClcW1xdKz8hOipcXF0vZywiXFwkJiIpfWZ1bmN0aW9uIE5yKHQpe3JldHVybiB0LnJlcGxhY2UoL1suKyo/XiR7fSgpW1xdfC9cXF0vZywiXFwkJiIpfXZhciBMdT1jbGFzc3tjb25zdHJ1Y3RvcihlLGEpe3RoaXMudG9rZW5zPWUsdGhpcy5vcmlnaW5hbFBhdGg9YX19O09pLlRva2VuRGF0YT1MdTt2YXIgRDA9Y2xhc3MgZXh0ZW5kcyBUeXBlRXJyb3J7Y29uc3RydWN0b3IoZSxhKXtsZXQgaT1lO2EmJihpKz1gOiAke2F9YCksaSs9IjsgdmlzaXQgaHR0cHM6Ly9naXQubmV3L3BhdGhUb1JlZ2V4cEVycm9yIGZvciBpbmZvIixzdXBlcihpKSx0aGlzLm9yaWdpbmFsUGF0aD1hfX07T2kuUGF0aEVycm9yPUQwO2Z1bmN0aW9uIEYkKHQsZT17fSl7bGV0e2VuY29kZVBhdGg6YT1JJH09ZSxpPVsuLi50XSxyPVtdLHM9MCxuPTA7ZnVuY3Rpb24gbygpe2xldCBjPSIiO2lmKEgzZS50ZXN0KGlbc10pKWRvIGMrPWlbcysrXTt3aGlsZShOJC50ZXN0KGlbc10pKTtlbHNlIGlmKGlbc109PT0nIicpe2xldCBoPXM7Zm9yKDtzKys8aS5sZW5ndGg7KXtpZihpW3NdPT09JyInKXtzKyssaD0wO2JyZWFrfWlbc109PT0iXFwiJiZzKyssYys9aVtzXX1pZihoKXRocm93IG5ldyBEMChgVW50ZXJtaW5hdGVkIHF1b3RlIGF0IGluZGV4ICR7aH1gLHQpfWlmKCFjKXRocm93IG5ldyBEMChgTWlzc2luZyBwYXJhbWV0ZXIgbmFtZSBhdCBpbmRleCAke3N9YCx0KTtyZXR1cm4gY31mb3IoO3M8aS5sZW5ndGg7KXtsZXQgYz1pW3NdLGg9bVJ0W2NdO2g/ci5wdXNoKHt0eXBlOmgsaW5kZXg6cysrLHZhbHVlOmN9KTpjPT09IlxcIj9yLnB1c2goe3R5cGU6ImVzY2FwZSIsaW5kZXg6cysrLHZhbHVlOmlbcysrXX0pOmM9PT0iOiI/ci5wdXNoKHt0eXBlOiJwYXJhbSIsaW5kZXg6cysrLHZhbHVlOm8oKX0pOmM9PT0iKiI/ci5wdXNoKHt0eXBlOiJ3aWxkY2FyZCIsaW5kZXg6cysrLHZhbHVlOm8oKX0pOnIucHVzaCh7dHlwZToiY2hhciIsaW5kZXg6cysrLHZhbHVlOmN9KX1yLnB1c2goe3R5cGU6ImVuZCIsaW5kZXg6cyx2YWx1ZToiIn0pO2Z1bmN0aW9uIGQoYyl7bGV0IGg9W107Zm9yKDs7KXtsZXQgbD1yW24rK107aWYobC50eXBlPT09YylicmVhaztpZihsLnR5cGU9PT0iY2hhciJ8fGwudHlwZT09PSJlc2NhcGUiKXtsZXQgZj1sLnZhbHVlLGc9cltuXTtmb3IoO2cudHlwZT09PSJjaGFyInx8Zy50eXBlPT09ImVzY2FwZSI7KWYrPWcudmFsdWUsZz1yWysrbl07aC5wdXNoKHt0eXBlOiJ0ZXh0Iix2YWx1ZTphKGYpfSk7Y29udGludWV9aWYobC50eXBlPT09InBhcmFtInx8bC50eXBlPT09IndpbGRjYXJkIil7aC5wdXNoKHt0eXBlOmwudHlwZSxuYW1lOmwudmFsdWV9KTtjb250aW51ZX1pZihsLnR5cGU9PT0ieyIpe2gucHVzaCh7dHlwZToiZ3JvdXAiLHRva2VuczpkKCJ9Iil9KTtjb250aW51ZX10aHJvdyBuZXcgRDAoYFVuZXhwZWN0ZWQgJHtsLnR5cGV9IGF0IGluZGV4ICR7bC5pbmRleH0sIGV4cGVjdGVkICR7Y31gLHQpfXJldHVybiBofXJldHVybiBuZXcgTHUoZCgiZW5kIiksdCl9ZnVuY3Rpb24gYlJ0KHQsZT17fSl7bGV0e2VuY29kZTphPWVuY29kZVVSSUNvbXBvbmVudCxkZWxpbWl0ZXI6aT1QJH09ZSxyPXR5cGVvZiB0PT0ib2JqZWN0Ij90OkYkKHQsZSkscz1xM2Uoci50b2tlbnMsaSxhKTtyZXR1cm4gZnVuY3Rpb24obz17fSl7bGV0W2QsLi4uY109cyhvKTtpZihjLmxlbmd0aCl0aHJvdyBuZXcgVHlwZUVycm9yKGBNaXNzaW5nIHBhcmFtZXRlcnM6ICR7Yy5qb2luKCIsICIpfWApO3JldHVybiBkfX1mdW5jdGlvbiBxM2UodCxlLGEpe2xldCBpPXQubWFwKHI9PnZSdChyLGUsYSkpO3JldHVybiByPT57bGV0IHM9WyIiXTtmb3IobGV0IG4gb2YgaSl7bGV0W28sLi4uZF09bihyKTtzWzBdKz1vLHMucHVzaCguLi5kKX1yZXR1cm4gc319ZnVuY3Rpb24gdlJ0KHQsZSxhKXtpZih0LnR5cGU9PT0idGV4dCIpcmV0dXJuKCk9Plt0LnZhbHVlXTtpZih0LnR5cGU9PT0iZ3JvdXAiKXtsZXQgcj1xM2UodC50b2tlbnMsZSxhKTtyZXR1cm4gcz0+e2xldFtuLC4uLm9dPXIocyk7cmV0dXJuIG8ubGVuZ3RoP1siIl06W25dfX1sZXQgaT1hfHxJJDtyZXR1cm4gdC50eXBlPT09IndpbGRjYXJkIiYmYSE9PSExP3I9PntsZXQgcz1yW3QubmFtZV07aWYocz09bnVsbClyZXR1cm5bIiIsdC5uYW1lXTtpZighQXJyYXkuaXNBcnJheShzKXx8cy5sZW5ndGg9PT0wKXRocm93IG5ldyBUeXBlRXJyb3IoYEV4cGVjdGVkICIke3QubmFtZX0iIHRvIGJlIGEgbm9uLWVtcHR5IGFycmF5YCk7cmV0dXJuW3MubWFwKChuLG8pPT57aWYodHlwZW9mIG4hPSJzdHJpbmciKXRocm93IG5ldyBUeXBlRXJyb3IoYEV4cGVjdGVkICIke3QubmFtZX0vJHtvfSIgdG8gYmUgYSBzdHJpbmdgKTtyZXR1cm4gaShuKX0pLmpvaW4oZSldfTpyPT57bGV0IHM9clt0Lm5hbWVdO2lmKHM9PW51bGwpcmV0dXJuWyIiLHQubmFtZV07aWYodHlwZW9mIHMhPSJzdHJpbmciKXRocm93IG5ldyBUeXBlRXJyb3IoYEV4cGVjdGVkICIke3QubmFtZX0iIHRvIGJlIGEgc3RyaW5nYCk7cmV0dXJuW2kocyldfX1mdW5jdGlvbiB5UnQodCxlPXt9KXtsZXR7ZGVjb2RlOmE9ZGVjb2RlVVJJQ29tcG9uZW50LGRlbGltaXRlcjppPVAkfT1lLHtyZWdleHA6cixrZXlzOnN9PVYzZSh0LGUpLG49cy5tYXAobz0+YT09PSExP0kkOm8udHlwZT09PSJwYXJhbSI/YTpkPT5kLnNwbGl0KGkpLm1hcChhKSk7cmV0dXJuIGZ1bmN0aW9uKGQpe2xldCBjPXIuZXhlYyhkKTtpZighYylyZXR1cm4hMTtsZXQgaD1jWzBdLGw9T2JqZWN0LmNyZWF0ZShudWxsKTtmb3IobGV0IGY9MTtmPGMubGVuZ3RoO2YrKyl7aWYoY1tmXT09PXZvaWQgMCljb250aW51ZTtsZXQgZz1zW2YtMV0seT1uW2YtMV07bFtnLm5hbWVdPXkoY1tmXSl9cmV0dXJue3BhdGg6aCxwYXJhbXM6bH19fWZ1bmN0aW9uIFYzZSh0LGU9e30pe2xldHtkZWxpbWl0ZXI6YT1QJCxlbmQ6aT0hMCxzZW5zaXRpdmU6cj0hMSx0cmFpbGluZzpzPSEwfT1lLG49W10sbz1yPyIiOiJpIixkPVtdO2ZvcihsZXQgbCBvZiBqM2UodCxbXSkpe2xldCBmPXR5cGVvZiBsPT0ib2JqZWN0Ij9sOkYkKGwsZSk7Zm9yKGxldCBnIG9mICR1KGYudG9rZW5zLDAsW10pKWQucHVzaCh4UnQoZyxhLG4sZi5vcmlnaW5hbFBhdGgpKX1sZXQgYz1gXig/OiR7ZC5qb2luKCJ8Iil9KWA7cmV0dXJuIHMmJihjKz1gKD86JHtOcihhKX0kKT9gKSxjKz1pPyIkIjpgKD89JHtOcihhKX18JClgLHtyZWdleHA6bmV3IFJlZ0V4cChjLG8pLGtleXM6bn19ZnVuY3Rpb24gajNlKHQsZSl7aWYoQXJyYXkuaXNBcnJheSh0KSlmb3IobGV0IGEgb2YgdClqM2UoYSxlKTtlbHNlIGUucHVzaCh0KTtyZXR1cm4gZX1mdW5jdGlvbiokdSh0LGUsYSl7aWYoZT09PXQubGVuZ3RoKXJldHVybiB5aWVsZCBhO2xldCBpPXRbZV07aWYoaS50eXBlPT09Imdyb3VwIilmb3IobGV0IHIgb2YgJHUoaS50b2tlbnMsMCxhLnNsaWNlKCkpKXlpZWxkKiR1KHQsZSsxLHIpO2Vsc2UgYS5wdXNoKGkpO3lpZWxkKiR1KHQsZSsxLGEpfWZ1bmN0aW9uIHhSdCh0LGUsYSxpKXtsZXQgcj0iIixzPSIiLG49ITA7Zm9yKGxldCBvIG9mIHQpe2lmKG8udHlwZT09PSJ0ZXh0Iil7cis9TnIoby52YWx1ZSkscys9by52YWx1ZSxufHwobj1vLnZhbHVlLmluY2x1ZGVzKGUpKTtjb250aW51ZX1pZihvLnR5cGU9PT0icGFyYW0ifHxvLnR5cGU9PT0id2lsZGNhcmQiKXtpZighbiYmIXMpdGhyb3cgbmV3IEQwKGBNaXNzaW5nIHRleHQgYmVmb3JlICIke28ubmFtZX0iICR7by50eXBlfWAsaSk7by50eXBlPT09InBhcmFtIj9yKz1gKCR7d1J0KGUsbj8iIjpzKX0rKWA6cis9IihbXFxzXFxTXSspIixhLnB1c2gobykscz0iIixuPSExO2NvbnRpbnVlfX1yZXR1cm4gcn1mdW5jdGlvbiB3UnQodCxlKXtyZXR1cm4gZS5sZW5ndGg8Mj90Lmxlbmd0aDwyP2BbXiR7TnIodCtlKX1dYDpgKD86KD8hJHtOcih0KX0pW14ke05yKGUpfV0pYDp0Lmxlbmd0aDwyP2AoPzooPyEke05yKGUpfSlbXiR7TnIodCl9XSlgOmAoPzooPyEke05yKGUpfXwke05yKHQpfSlbXFxzXFxTXSlgfWZ1bmN0aW9uIFUzZSh0KXtsZXQgZT0iIixhPTA7ZnVuY3Rpb24gaShyKXtyZXR1cm4gelJ0KHIpJiZrUnQodFthXSk/cjpKU09OLnN0cmluZ2lmeShyKX1mb3IoO2E8dC5sZW5ndGg7KXtsZXQgcj10W2ErK107aWYoci50eXBlPT09InRleHQiKXtlKz1nUnQoci52YWx1ZSk7Y29udGludWV9aWYoci50eXBlPT09Imdyb3VwIil7ZSs9YHske1UzZShyLnRva2Vucyl9fWA7Y29udGludWV9aWYoci50eXBlPT09InBhcmFtIil7ZSs9YDoke2koci5uYW1lKX1gO2NvbnRpbnVlfWlmKHIudHlwZT09PSJ3aWxkY2FyZCIpe2UrPWAqJHtpKHIubmFtZSl9YDtjb250aW51ZX10aHJvdyBuZXcgVHlwZUVycm9yKGBVbmtub3duIHRva2VuIHR5cGU6ICR7ci50eXBlfWApfXJldHVybiBlfWZ1bmN0aW9uIE1SdCh0KXtyZXR1cm4gVTNlKHQudG9rZW5zKX1mdW5jdGlvbiB6UnQodCl7bGV0W2UsLi4uYV09dDtyZXR1cm4gSDNlLnRlc3QoZSkmJmEuZXZlcnkoaT0+TiQudGVzdChpKSl9ZnVuY3Rpb24ga1J0KHQpe3JldHVybiB0JiZ0LnR5cGU9PT0idGV4dCI/IU4kLnRlc3QodC52YWx1ZVswXSk6ITB9fSk7dmFyIE8kLFIkPWIoKCk9PntlNigpO0RpKCk7TyQ9VTEoVzNlKCksMSl9KTt2YXIgQXUsRzNlPWIoKCk9PntSJCgpO0F1PWNsYXNze2NvbnN0cnVjdG9yKCl7fWdldEFsbEFzT2JqZWN0KCl7bGV0IGU9bmV3IFVSTFNlYXJjaFBhcmFtcyh3aW5kb3cubG9jYXRpb24uc2VhcmNoKTtyZXR1cm4gT2JqZWN0LmZyb21FbnRyaWVzKGUuZW50cmllcygpKX1zZXRRdWVyeVBhcmFtKGUsYSxpPSJyZXBsYWNlIil7dmFyIHI9bmV3IFVSTFNlYXJjaFBhcmFtcyh3aW5kb3cubG9jYXRpb24uc2VhcmNoKTtyLnNldChlLGEpLGk9PT0icHVzaCI/aGlzdG9yeS5wdXNoU3RhdGUobnVsbCxudWxsLCI/IityLnRvU3RyaW5nKCkpOmhpc3RvcnkucmVwbGFjZVN0YXRlKG51bGwsbnVsbCwiPyIrci50b1N0cmluZygpKX1kZWxldGVRdWVyeVBhcmFtKGUsYT0icmVwbGFjZSIpe3ZhciBpPW5ldyBVUkxTZWFyY2hQYXJhbXMod2luZG93LmxvY2F0aW9uLnNlYXJjaCk7aS5kZWxldGUoZSksYT09PSJwdXNoIj9oaXN0b3J5LnB1c2hTdGF0ZShudWxsLG51bGwsIj8iK2kudG9TdHJpbmcoKSk6aGlzdG9yeS5yZXBsYWNlU3RhdGUobnVsbCxudWxsLCI/IitpLnRvU3RyaW5nKCkpfWdldFF1ZXJ5UGFyYW0oZSl7cmV0dXJuIHRoaXMuZ2V0QWxsQXNPYmplY3QoKVtlXX19fSk7dmFyICRIMSxCJCxZM2U9YigoKT0+e1IkKCk7RzNlKCk7JEgxPXQ9Pntjb25zb2xlLmxvZyhgJWNbUm91dGVyXSVjICR7dH1gLCJjb2xvcjogcmdiKDI1NSwgMTA1LCAxMDApOyIsImNvbG9yOiBpbmhlcml0Iil9LEIkPWNsYXNzIHR7Y29uc3RydWN0b3IoZSxhPSIiKXt0aGlzLm9wdGlvbnM9e2RlYnVnOiExfSx0aGlzLnF1ZXJ5UGFyYW1zPW5ldyBBdSx0aGlzLnJvdXRlcz1bXSx0aGlzLm9wdGlvbnM9ey4uLnRoaXMub3B0aW9ucywuLi5lfSx0aGlzLmJhc2VQYXRoPWEsdGhpcy5wb3BzdGF0ZUxpc3RlbmVyPWk9PntpLnByZXZlbnREZWZhdWx0KCksdGhpcy5faGFuZGxlUm91dGVTdGF0ZSgpfSx3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigicG9wc3RhdGUiLHRoaXMucG9wc3RhdGVMaXN0ZW5lcil9Y3JlYXRlU3ViUm91dGVyKGUsYSl7bGV0IGk9YCR7dGhpcy5iYXNlUGF0aH0ke2V9YDtyZXR1cm4gbmV3IHQoey4uLnRoaXMub3B0aW9ucywuLi5hfSxpKX1hc3luYyBwdXNoVXJsKGU9Ii8iLGE9e30pe2xldCBpPWAke3RoaXMuYmFzZVBhdGh9JHtlfWA7aSE9PXdpbmRvdy5sb2NhdGlvbi5wYXRobmFtZT93aW5kb3cuaGlzdG9yeS5wdXNoU3RhdGUoYSx3aW5kb3cuZG9jdW1lbnQudGl0bGUsaSk6d2luZG93Lmhpc3RvcnkucmVwbGFjZVN0YXRlKGEsd2luZG93LmRvY3VtZW50LnRpdGxlLGkpLGF3YWl0IHRoaXMuX2hhbmRsZVJvdXRlU3RhdGUoKX1vbihlLGEpe2xldCBpPWAke3RoaXMuYmFzZVBhdGh9JHtlfWAscj17bWF0Y2hGdW5jdGlvbjpPJC5tYXRjaChpKSxoYW5kbGVyOmF9O3JldHVybiB0aGlzLnJvdXRlcy5wdXNoKHIpLCgpPT57dGhpcy5yb3V0ZXMuc3BsaWNlKHRoaXMucm91dGVzLmluZGV4T2YociksMSl9fWFzeW5jIF9oYW5kbGVSb3V0ZVN0YXRlKCl7bGV0IGU9d2luZG93LmxvY2F0aW9uLnBhdGhuYW1lLGE9dGhpcy5yb3V0ZXMuZmlsdGVyKGk9PiEhaS5tYXRjaEZ1bmN0aW9uKGUpKTtmb3IobGV0IGkgb2YgYSl7bGV0IHI9aS5tYXRjaEZ1bmN0aW9uKGUpO2kuaGFuZGxlcih7Li4uci52YWx1ZU9mKCkscXVlcnlQYXJhbXM6dGhpcy5xdWVyeVBhcmFtcy5nZXRBbGxBc09iamVjdCgpfSl9fWRlc3Ryb3koKXt3aW5kb3cucmVtb3ZlRXZlbnRMaXN0ZW5lcigicG9wc3RhdGUiLHRoaXMucG9wc3RhdGVMaXN0ZW5lciksdGhpcy5yb3V0ZXM9W119fX0pO3ZhciBXbj17fTtHZShXbix7U21hcnRSb3V0ZXI6KCk9PkIkfSk7dmFyIEgkPWIoKCk9PntZM2UoKX0pO3ZhciBaM2U9YigoKT0+e2QzKCk7djMoKX0pO2Z1bmN0aW9uIEZyKHQsZSl7cmV0dXJuIHQ+Pj5lfHQ8PDMyLWV9ZnVuY3Rpb24gTFJ0KHQsZSl7bGV0IGE9ZVswXSxpPWVbMV0scj1lWzJdLHM9ZVszXSxuPWVbNF0sbz1lWzVdLGQ9ZVs2XSxjPWVbN107Zm9yKGxldCBoPTA7aDw2NDtoKyspe2lmKGg+PTE2KXtsZXQgeD1Gcih0W2gtMTVdLDcpXkZyKHRbaC0xNV0sMTgpXnRbaC0xNV0+Pj4zLE09RnIodFtoLTJdLDE3KV5Gcih0W2gtMl0sMTkpXnRbaC0yXT4+PjEwO3RbaF09dFtoLTE2XSt4K3RbaC03XStNPj4+MH1sZXQgbD1GcihuLDYpXkZyKG4sMTEpXkZyKG4sMjUpLGY9biZvXn5uJmQsZz1jK2wrZitfUnRbaF0rdFtoXT4+PjAseT1GcihhLDIpXkZyKGEsMTMpXkZyKGEsMjIpLHY9YSZpXmEmcl5pJnIsbT15K3Y+Pj4wO2M9ZCxkPW8sbz1uLG49cytnPj4+MCxzPXIscj1pLGk9YSxhPWcrbT4+PjB9ZVswXT1lWzBdK2E+Pj4wLGVbMV09ZVsxXStpPj4+MCxlWzJdPWVbMl0rcj4+PjAsZVszXT1lWzNdK3M+Pj4wLGVbNF09ZVs0XStuPj4+MCxlWzVdPWVbNV0rbz4+PjAsZVs2XT1lWzZdK2Q+Pj4wLGVbN109ZVs3XStjPj4+MH1mdW5jdGlvbiBxJCh0KXtsZXQgZT1bLi4uVFJ0XSxhPXQubGVuZ3RoLGk9YSo4LHI9YSU2NDw1Nj81Ni1hJTY0OjEyMC1hJTY0LHM9bmV3IFVpbnQ4QXJyYXkoYStyKzgpO3Muc2V0KHQpLHNbYV09MTI4O2xldCBuPW5ldyBEYXRhVmlldyhzLmJ1ZmZlcik7bi5zZXRVaW50MzIocy5sZW5ndGgtOCwwLCExKSxuLnNldFVpbnQzMihzLmxlbmd0aC00LGk+Pj4wLCExKTtmb3IobGV0IGQ9MDtkPHMubGVuZ3RoO2QrPTY0KXtsZXQgYz1uZXcgQXJyYXkoNjQpO2ZvcihsZXQgaD0wO2g8MTY7aCsrKWNbaF09bi5nZXRVaW50MzIoZCtoKjQsITEpO0xSdChjLGUpfWxldCBvPSIiO2ZvcihsZXQgZD0wO2Q8ODtkKyspbys9ZVtkXS50b1N0cmluZygxNikucGFkU3RhcnQoOCwiMCIpO3JldHVybiBvfXZhciBfUnQsVFJ0LFgzZT1iKCgpPT57X1J0PVsxMTE2MzUyNDA4LDE4OTk0NDc0NDEsMzA0OTMyMzQ3MSwzOTIxMDA5NTczLDk2MTk4NzE2MywxNTA4OTcwOTkzLDI0NTM2MzU3NDgsMjg3MDc2MzIyMSwzNjI0MzgxMDgwLDMxMDU5ODQwMSw2MDcyMjUyNzgsMTQyNjg4MTk4NywxOTI1MDc4Mzg4LDIxNjIwNzgyMDYsMjYxNDg4ODEwMywzMjQ4MjIyNTgwLDM4MzUzOTA0MDEsNDAyMjIyNDc3NCwyNjQzNDcwNzgsNjA0ODA3NjI4LDc3MDI1NTk4MywxMjQ5MTUwMTIyLDE1NTUwODE2OTIsMTk5NjA2NDk4NiwyNTU0MjIwODgyLDI4MjE4MzQzNDksMjk1Mjk5NjgwOCwzMjEwMzEzNjcxLDMzMzY1NzE4OTEsMzU4NDUyODcxMSwxMTM5MjY5OTMsMzM4MjQxODk1LDY2NjMwNzIwNSw3NzM1Mjk5MTIsMTI5NDc1NzM3MiwxMzk2MTgyMjkxLDE2OTUxODM3MDAsMTk4NjY2MTA1MSwyMTc3MDI2MzUwLDI0NTY5NTYwMzcsMjczMDQ4NTkyMSwyODIwMzAyNDExLDMyNTk3MzA4MDAsMzM0NTc2NDc3MSwzNTE2MDY1ODE3LDM2MDAzNTI4MDQsNDA5NDU3MTkwOSwyNzU0MjMzNDQsNDMwMjI3NzM0LDUwNjk0ODYxNiw2NTkwNjA1NTYsODgzOTk3ODc3LDk1ODEzOTU3MSwxMzIyODIyMjE4LDE1MzcwMDIwNjMsMTc0Nzg3Mzc3OSwxOTU1NTYyMjIyLDIwMjQxMDQ4MTUsMjIyNzczMDQ1MiwyMzYxODUyNDI0LDI0Mjg0MzY0NzQsMjc1NjczNDE4NywzMjA0MDMxNDc5LDMzMjkzMjUyOThdLFRSdD1bMTc3OTAzMzcwMywzMTQ0MTM0Mjc3LDEwMTM5MDQyNDIsMjc3MzQ4MDc2MiwxMzU5ODkzMTE5LDI2MDA4MjI5MjQsNTI4NzM0NjM1LDE1NDE0NTkyMjVdfSk7dmFyIGw1PXt9O0dlKGw1LHttZDVGcm9tU3RyaW5nOigpPT5JUnQsc2hhMjU2RnJvbUJ1ZmZlcjooKT0+QVJ0LHNoYTI1NkZyb21GaWxlOigpPT5QUnQsc2hhMjU2RnJvbVN0cmVhbTooKT0+RVJ0LHNoYTI1NkZyb21TdHJpbmc6KCk9PkozZSxzaGEyNTZGcm9tU3RyaW5nU3luYzooKT0+JFJ0LHNoYTI2NUZyb21PYmplY3Q6KCk9PkRSdH0pO3ZhciBLM2UsUTNlLEozZSwkUnQsQVJ0LERSdCxFUnQsUFJ0LElSdCxlbGU9YigoKT0+e1ozZSgpO1gzZSgpO0szZT10PT57bGV0IGU9W10sYT1uZXcgRGF0YVZpZXcodCk7Zm9yKGxldCBpPTA7aTxhLmJ5dGVMZW5ndGg7aSs9NCl7bGV0IHM9YS5nZXRVaW50MzIoaSkudG9TdHJpbmcoMTYpLG49IjAwMDAwMDAwIixvPShuK3MpLnNsaWNlKC1uLmxlbmd0aCk7ZS5wdXNoKG8pfXJldHVybiBlLmpvaW4oIiIpfSxRM2U9KCk9PnR5cGVvZiBjcnlwdG88InUiJiZjcnlwdG8uc3VidGxlIT09dm9pZCAwLEozZT1hc3luYyB0PT57bGV0IGU9bmV3IFRleHRFbmNvZGVyKCkuZW5jb2RlKHQpO2lmKFEzZSgpKXtsZXQgYT1hd2FpdCBjcnlwdG8uc3VidGxlLmRpZ2VzdCgiU0hBLTI1NiIsZSk7cmV0dXJuIEszZShhKX1lbHNlIHJldHVybiBxJChlKX0sJFJ0PXQ9Pnt0aHJvdyBjb25zb2xlLndhcm4oInNoYTI1NkZyb21TdHJpbmdTeW5jIGlzIG5vdCB0cnVseSBzeW5jaHJvbm91cyBpbiBicm93c2VyIGVudmlyb25tZW50IiksbmV3IEVycm9yKCJzaGEyNTZGcm9tU3RyaW5nU3luYyBpcyBub3Qgc3VwcG9ydGVkIGluIGJyb3dzZXIgZW52aXJvbm1lbnQuIFVzZSBzaGEyNTZGcm9tU3RyaW5nIGluc3RlYWQuIil9LEFSdD1hc3luYyB0PT57aWYoUTNlKCkpe2xldCBlO2lmKHQgaW5zdGFuY2VvZiBVaW50OEFycmF5KXtsZXQgcj10O2U9ci5idWZmZXIuc2xpY2Uoci5ieXRlT2Zmc2V0LHIuYnl0ZU9mZnNldCtyLmJ5dGVMZW5ndGgpfWVsc2UgZT10O2xldCBhPWF3YWl0IGNyeXB0by5zdWJ0bGUuZGlnZXN0KCJTSEEtMjU2IixlKTtyZXR1cm4gSzNlKGEpfWVsc2V7bGV0IGU9dCBpbnN0YW5jZW9mIFVpbnQ4QXJyYXk/dDpuZXcgVWludDhBcnJheSh0KTtyZXR1cm4gcSQoZSl9fSxEUnQ9YXN5bmMgdD0+e2xldCBlPUMxLnN0cmluZ2lmeSh0KTtyZXR1cm4gYXdhaXQgSjNlKGUpfSxFUnQ9dD0+e3Rocm93IG5ldyBFcnJvcigic2hhMjU2RnJvbVN0cmVhbSBpcyBub3Qgc3VwcG9ydGVkIGluIGJyb3dzZXIgZW52aXJvbm1lbnQiKX0sUFJ0PWFzeW5jIHQ9Pnt0aHJvdyBuZXcgRXJyb3IoInNoYTI1NkZyb21GaWxlIGlzIG5vdCBzdXBwb3J0ZWQgaW4gYnJvd3NlciBlbnZpcm9ubWVudCIpfSxJUnQ9YXN5bmMgdD0+e3Rocm93IG5ldyBFcnJvcigibWQ1RnJvbVN0cmluZyBpcyBub3Qgc3VwcG9ydGVkIGluIGJyb3dzZXIgZW52aXJvbm1lbnQuIFdlYiBDcnlwdG8gQVBJIGRvZXMgbm90IHN1cHBvcnQgTUQ1LiIpfX0pO3ZhciB0bGU9YigoKT0+e2MyKCl9KTt2YXIgYWxlPWIoKCk9Pnt9KTt2YXIgViQsaWxlPWIoKCk9Pnt0bGUoKTthbGUoKTtWJD1jbGFzc3tjb25zdHJ1Y3Rvcigpe3RoaXMubG9hZGVkU2NyaXB0cz1bXX1hc3luYyBnZXRFbnZBd2FyZU1vZHVsZShlKXtpZih0aGlzLmlzTm9kZSlyZXR1cm4gYXdhaXQgdGhpcy5nZXRTYWZlTm9kZU1vZHVsZShlLm5vZGVNb2R1bGVOYW1lKTtpZih0aGlzLmlzQnJvd3NlcilyZXR1cm4gYXdhaXQgdGhpcy5nZXRTYWZlV2ViTW9kdWxlKGUud2ViVXJsQXJnLGUuZ2V0RnVuY3Rpb24pO2NvbnNvbGUuZXJyb3IoInBsYXRmb3JtIGZvciBsb2FkaW5nIG5vdCBzdXBwb3J0ZWQgYnkgc21hcnRlbnYiKX1hc3luYyBnZXRTYWZlTm9kZU1vZHVsZShlLGEpe2lmKCF0aGlzLmlzTm9kZSYmIXRoaXMuaXNEZW5vJiYhdGhpcy5pc0J1bil7Y29uc29sZS5lcnJvcihgWW91IHRyaWVkIHRvIGxvYWQgYSBzZXJ2ZXIgbW9kdWxlIGluIGEgd3JvbmcgY29udGV4dDogJHtlfS4gVGhpcyBkb2VzIG5vdCB0aHJvdy5gKTtyZXR1cm59bGV0IGk9YXdhaXQgbmV3IEZ1bmN0aW9uKGByZXR1cm4gaW1wb3J0KCcke2V9JylgKSgpO3JldHVybiBhJiZhd2FpdCBhKGkpLGl9YXN5bmMgZ2V0U2FmZVdlYk1vZHVsZShlLGEpe2lmKCF0aGlzLmlzQnJvd3Nlcil7Y29uc29sZS5lcnJvcigiWW91IHRyaWVkIHRvIGxvYWQgYSB3ZWIgbW9kdWxlIGluIGEgd3JvbmcgY29udGV4dCIpO3JldHVybn1pZih0aGlzLmxvYWRlZFNjcmlwdHMuaW5jbHVkZXMoZSkpcmV0dXJuIGEoKTt0aGlzLmxvYWRlZFNjcmlwdHMucHVzaChlKTtsZXQgaT1CZS5kZWZlcigpO2lmKGdsb2JhbFRoaXMuaW1wb3J0U2NyaXB0cylnbG9iYWxUaGlzLmltcG9ydFNjcmlwdHMoZSksaS5yZXNvbHZlKCk7ZWxzZXtsZXQgcj1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJzY3JpcHQiKTtyLm9ubG9hZD0oKT0+e2kucmVzb2x2ZSgpfSxyLnNyYz1lLGRvY3VtZW50LmhlYWQuYXBwZW5kQ2hpbGQocil9cmV0dXJuIGF3YWl0IGkucHJvbWlzZSxhKCl9Z2V0IHJ1bnRpbWVFbnYoKXtyZXR1cm4gdHlwZW9mIGdsb2JhbFRoaXMuRGVubzwidSImJnR5cGVvZiBnbG9iYWxUaGlzLkRlbm8/LnZlcnNpb248InUiPyJkZW5vIjp0eXBlb2YgZ2xvYmFsVGhpcy5CdW48InUiJiZ0eXBlb2YgZ2xvYmFsVGhpcy5CdW4/LnZlcnNpb248InUiPyJidW4iOnR5cGVvZiBnbG9iYWxUaGlzLnByb2Nlc3M8InUiJiZ0eXBlb2YgZ2xvYmFsVGhpcy5wcm9jZXNzPy52ZXJzaW9ucz8ubm9kZTwidSI/Im5vZGUiOih0eXBlb2YgZ2xvYmFsVGhpcy53aW5kb3c8InUiJiZ0eXBlb2YgZ2xvYmFsVGhpcy5kb2N1bWVudDwidSIsImJyb3dzZXIiKX1nZXQgaXNCcm93c2VyKCl7cmV0dXJuIHRoaXMucnVudGltZUVudj09PSJicm93c2VyIn1nZXQgaXNOb2RlKCl7cmV0dXJuIHRoaXMucnVudGltZUVudj09PSJub2RlIn1nZXQgaXNEZW5vKCl7cmV0dXJuIHRoaXMucnVudGltZUVudj09PSJkZW5vIn1nZXQgaXNCdW4oKXtyZXR1cm4gdGhpcy5ydW50aW1lRW52PT09ImJ1biJ9Z2V0IHVzZXJBZ2VudCgpe3JldHVybiB0aGlzLmlzQnJvd3Nlcj9uYXZpZ2F0b3IudXNlckFnZW50OiJ1bmRlZmluZWQifWdldCBub2RlVmVyc2lvbigpe3JldHVybiB0aGlzLmlzTm9kZT9wcm9jZXNzLnZlcnNpb246InVuZGVmaW5lZCJ9Z2V0IGRlbm9WZXJzaW9uKCl7cmV0dXJuIHRoaXMuaXNEZW5vP2dsb2JhbFRoaXMuRGVuby52ZXJzaW9uLmRlbm86InVuZGVmaW5lZCJ9Z2V0IGJ1blZlcnNpb24oKXtyZXR1cm4gdGhpcy5pc0J1bj9nbG9iYWxUaGlzLkJ1bi52ZXJzaW9uOiJ1bmRlZmluZWQifWFzeW5jIGdldFNhZmVNb2R1bGVGb3IoZSxhLGkpe2xldCByO2lmKEFycmF5LmlzQXJyYXkoZSk/cj1lLmZsYXRNYXAocz0+cz09PSJzZXJ2ZXIiP1sibm9kZSIsImRlbm8iLCJidW4iXTpbc10pOmU9PT0ic2VydmVyIj9yPVsibm9kZSIsImRlbm8iLCJidW4iXTpyPVtlXSwhci5pbmNsdWRlcyh0aGlzLnJ1bnRpbWVFbnYpKXtjb25zb2xlLndhcm4oYE1vZHVsZSAiJHthfSIgcmVxdWVzdGVkIGZvciBydW50aW1lKHMpIFske3Iuam9pbigiLCAiKX1dIGJ1dCBjdXJyZW50IHJ1bnRpbWUgaXMgIiR7dGhpcy5ydW50aW1lRW52fSIuIFNraXBwaW5nIGxvYWQuYCk7cmV0dXJufWlmKHRoaXMuaXNOb2RlfHx0aGlzLmlzRGVub3x8dGhpcy5pc0J1bilyZXR1cm4gYXdhaXQgdGhpcy5nZXRTYWZlTm9kZU1vZHVsZShhKTtpZih0aGlzLmlzQnJvd3Nlcil7aWYoIWkpe2NvbnNvbGUuZXJyb3IoYEJyb3dzZXIgbW9kdWxlIGxvYWQgcmVxdWlyZXMgZ2V0RnVuY3Rpb24gcGFyYW1ldGVyIGZvciAiJHthfSJgKTtyZXR1cm59cmV0dXJuIGF3YWl0IHRoaXMuZ2V0U2FmZVdlYk1vZHVsZShhLGkpfX1nZXQgaXNDSSgpe3JldHVybiB0aGlzLmlzTm9kZT8hIXByb2Nlc3MuZW52LkNJOiExfWFzeW5jIGlzTWFjQXN5bmMoKXtyZXR1cm4gdGhpcy5pc05vZGU/KGF3YWl0IHRoaXMuZ2V0U2FmZU5vZGVNb2R1bGUoIm9zIikpLnBsYXRmb3JtKCk9PT0iZGFyd2luIjohMX1hc3luYyBpc1dpbmRvd3NBc3luYygpe3JldHVybiB0aGlzLmlzTm9kZT8oYXdhaXQgdGhpcy5nZXRTYWZlTm9kZU1vZHVsZSgib3MiKSkucGxhdGZvcm0oKT09PSJ3aW4zMiI6ITF9YXN5bmMgaXNMaW51eEFzeW5jKCl7cmV0dXJuIHRoaXMuaXNOb2RlPyhhd2FpdCB0aGlzLmdldFNhZmVOb2RlTW9kdWxlKCJvcyIpKS5wbGF0Zm9ybSgpPT09ImxpbnV4IjohMX1hc3luYyBwcmludEVudigpe3RoaXMuaXNOb2RlPyhjb25zb2xlLmxvZygicnVubmluZyBvbiBOT0RFIiksY29uc29sZS5sb2coIm5vZGUgdmVyc2lvbiBpcyAiK3RoaXMubm9kZVZlcnNpb24pKTp0aGlzLmlzRGVubz8oY29uc29sZS5sb2coInJ1bm5pbmcgb24gREVOTyIpLGNvbnNvbGUubG9nKCJkZW5vIHZlcnNpb24gaXMgIit0aGlzLmRlbm9WZXJzaW9uKSk6dGhpcy5pc0J1bj8oY29uc29sZS5sb2coInJ1bm5pbmcgb24gQlVOIiksY29uc29sZS5sb2coImJ1biB2ZXJzaW9uIGlzICIrdGhpcy5idW5WZXJzaW9uKSk6KGNvbnNvbGUubG9nKCJydW5uaW5nIG9uIEJST1dTRVIiKSxjb25zb2xlLmxvZygiYnJvd3NlciBpcyAiK3RoaXMudXNlckFnZW50KSl9fX0pO3ZhciBqJD17fTtHZShqJCx7U21hcnRlbnY6KCk9PlYkfSk7dmFyIHJsZT1iKCgpPT57aWxlKCl9KTt2YXIgRHUsc2xlLEV1LFUkPWIoKCk9PntybGUoKTt1MygpO0R1PVUxKHFDKCksMSksc2xlPVUxKFZDKCksMSksRXU9c2xlLmRlZmF1bHR9KTtmdW5jdGlvbiBPUnQodCl7cmV0dXJuIHR5cGVvZiBCdWZmZXI8InUiP0J1ZmZlci5mcm9tKHQpLnRvU3RyaW5nKCJiYXNlNjQiKTpidG9hKFN0cmluZy5mcm9tQ2hhckNvZGUoLi4udCkpfWZ1bmN0aW9uIFJSdCh0KXtpZih0eXBlb2YgQnVmZmVyPCJ1Iil7bGV0IGU9QnVmZmVyLmZyb20odCwiYmFzZTY0Iik7cmV0dXJuIG5ldyBVaW50OEFycmF5KGUuYnVmZmVyLGUuYnl0ZU9mZnNldCxlLmJ5dGVMZW5ndGgpfXJldHVybiBuZXcgVWludDhBcnJheShBcnJheS5mcm9tKGF0b2IodCkpLm1hcChlPT5lLmNoYXJDb2RlQXQoMCkpKX1mdW5jdGlvbiBHJCh0LGUpe3JldHVybiBKU09OLnN0cmluZ2lmeSh0LFB1LGUpfWZ1bmN0aW9uIFkkKHQpe3JldHVybiBKU09OLnBhcnNlKHQsbmxlKX1mdW5jdGlvbiBCUnQodCl7cmV0dXJuIGxsZSh0KSYmdC50eXBlPT09IkVuY29kZWRCdWZmZXIiJiZXJCh0LmRhdGEpfWZ1bmN0aW9uIEhSdCh0KXtyZXR1cm4gbGxlKHQpJiZ0LnR5cGU9PT0iQnVmZmVyIiYmKG9sZSh0LmRhdGEpfHxXJCh0LmRhdGEpKXx8dCBpbnN0YW5jZW9mIFVpbnQ4QXJyYXl9ZnVuY3Rpb24gb2xlKHQpe3JldHVybiBBcnJheS5pc0FycmF5KHQpfWZ1bmN0aW9uIFckKHQpe3JldHVybiB0eXBlb2YgdD09InN0cmluZyJ9ZnVuY3Rpb24gbGxlKHQpe3JldHVybiB0eXBlb2YgdD09Im9iamVjdCImJnQhPT1udWxsfXZhciBQdSxubGUsY2xlPWIoKCk9PntVJCgpO1B1PSh0LGUpPT57aWYoSFJ0KGUpKXtsZXQgYTtpZigiZGF0YSJpbiBlJiZvbGUoZS5kYXRhKSlhPW5ldyBVaW50OEFycmF5KGUuZGF0YSk7ZWxzZSBpZihlIGluc3RhbmNlb2YgVWludDhBcnJheSlhPWU7ZWxzZSByZXR1cm4gZTtyZXR1cm57dHlwZToiRW5jb2RlZEJ1ZmZlciIsZGF0YToiYmFzZTY0OiIrT1J0KGEpfX1yZXR1cm4gZX0sbmxlPSh0LGUpPT57aWYoQlJ0KGUpJiZXJChlLmRhdGEpJiZlLmRhdGEuc3RhcnRzV2l0aCgiYmFzZTY0OiIpKXtsZXQgYT1lLmRhdGEuc2xpY2UoNyk7cmV0dXJuIFJSdChhKX1yZXR1cm4gZX19KTt2YXIgYzU9e307R2UoYzUse1NtYXJ0anNvbjooKT0+WCQsZGVlcEVxdWFsSnNvbkxTdHJpbmdzOigpPT5aUnQsZGVlcEVxdWFsT2JqZWN0czooKT0+ZGxlLGZvbGREZWM6KCk9PllSdCxwYXJzZTooKT0+SXUscGFyc2VCYXNlNjQ6KCk9PkdSdCxwYXJzZUpzb25MOigpPT5aJCxzdGFibGVPbmVXYXlTdHJpbmdpZnk6KCk9PmpSdCxzdHJpbmdpZnk6KCk9PkUwLHN0cmluZ2lmeUJhc2U2NDooKT0+V1J0LHN0cmluZ2lmeUpzb25MOigpPT5WUnQsc3RyaW5naWZ5UHJldHR5OigpPT5VUnR9KTt2YXIgSXUsWiQsVlJ0LGpSdCxFMCxVUnQsV1J0LEdSdCxYJCxZUnQsZGxlLFpSdCxobGU9YigoKT0+e1UkKCk7Y2xlKCk7SXU9WSQsWiQ9dD0+dC5zcGxpdChgCmApLnJlZHVjZSgoaSxyKT0+e2xldCBzPXIudHJpbSgpO3JldHVybiBzLmxlbmd0aD4wJiZpLnB1c2goSXUocykpLGl9LFtdKSxWUnQ9dD0+dC5tYXAoZT0+RTAoZSkpLmpvaW4oYApgKSxqUnQ9KHQsZSxhPXt9KT0+e2xldCBpPW5ldyBXZWFrU2V0LHI9bz0+e2lmKG89PT1udWxsfHx0eXBlb2YgbyE9Im9iamVjdCIpcmV0dXJuIG87bGV0IGQ9UHUoIiIsbyk7aWYoZCYmZC50eXBlPT09IkVuY29kZWRCdWZmZXIiJiZ0eXBlb2YgZC5kYXRhPT0ic3RyaW5nIilyZXR1cm4gZDtpZihpLmhhcyhvKSlyZXR1cm4iX19jeWNsZV9fIjtpZihpLmFkZChvKSxBcnJheS5pc0FycmF5KG8pKXJldHVybiBvLm1hcChoPT5yKGgpKTtsZXQgYz17fTtmb3IobGV0IGggb2YgT2JqZWN0LmtleXMobykpdHJ5e2NbaF09cihvW2hdKX1jYXRjaHtjW2hdPSJfX3Vuc2VyaWFsaXphYmxlX18ifXJldHVybiBjfSxzPXIodCksbj17Li4uYSxjeWNsZXM6ITB9O2lmKGUmJiFuLmNtcCl7bGV0IG89bmV3IE1hcDtlLmZvckVhY2goKGQsYyk9Pm8uc2V0KGQsYykpLG4uY21wPShkLGMpPT57bGV0IGg9by5oYXMoZC5rZXkpP28uZ2V0KGQua2V5KTpOdW1iZXIuUE9TSVRJVkVfSU5GSU5JVFksbD1vLmhhcyhjLmtleSk/by5nZXQoYy5rZXkpOk51bWJlci5QT1NJVElWRV9JTkZJTklUWTtyZXR1cm4gaCE9PWw/aC1sOmQua2V5PGMua2V5Py0xOmQua2V5PmMua2V5PzE6MH19cmV0dXJuIEV1KHMsbil9LEUwPSh0LGUsYT17fSk9PntsZXQgaT1HJCh0KTt0PUpTT04ucGFyc2UoaSk7bGV0IHI9ey4uLmF9O2lmKGUmJiFyLmNtcCl7bGV0IG49bmV3IE1hcDtlLmZvckVhY2goKG8sZCk9Pm4uc2V0KG8sZCkpLHIuY21wPShvLGQpPT57bGV0IGM9bi5oYXMoby5rZXkpP24uZ2V0KG8ua2V5KTpOdW1iZXIuUE9TSVRJVkVfSU5GSU5JVFksaD1uLmhhcyhkLmtleSk/bi5nZXQoZC5rZXkpOk51bWJlci5QT1NJVElWRV9JTkZJTklUWTtyZXR1cm4gYyE9PWg/Yy1oOm8ua2V5PGQua2V5Py0xOm8ua2V5PmQua2V5PzE6MH19cmV0dXJuIEV1KHQscil9LFVSdD10PT57bGV0IGU9RTAodCksYT1KU09OLnBhcnNlKGUpO3JldHVybiBKU09OLnN0cmluZ2lmeShhLG51bGwsMil9LFdSdD0oLi4udCk9PntsZXQgZT1FMCguLi50KTtyZXR1cm4gazIuYmFzZTY0LmVuY29kZVVyaShlKX0sR1J0PXQ9PntsZXQgZT1rMi5iYXNlNjQsaT0oZS5kZWNvZGVVcml8fGUuZGVjb2RlKSh0KTtyZXR1cm4gSXUoaSl9LFgkPWNsYXNzIHR7c3RhdGljIGVuZm9sZEZyb21PYmplY3QoZSl7bGV0IGE9bmV3IHRoaXMsaT1hLnNhdmVhYmxlUHJvcGVydGllc3x8W107Zm9yKGxldCByIGluIGUpaS5pbmRleE9mKHIpIT09LTEmJihhW3JdPWVbcl0pO3JldHVybiBhfXN0YXRpYyBlbmZvbGRGcm9tSnNvbihlKXtsZXQgYT1JdShlKTtyZXR1cm4gdGhpcy5lbmZvbGRGcm9tT2JqZWN0KGEpfXNhdmVhYmxlUHJvcGVydGllcztmb2xkVG9PYmplY3QoKXtsZXQgZT1uZXcgU2V0O3JldHVybiBlLmFkZCh0aGlzKSx0aGlzLmZvbGRUb09iamVjdEludGVybmFsKGUpfWZvbGRUb09iamVjdEludGVybmFsKGUpe2xldCBhPXt9LGk9cz0+e2lmKHMgaW5zdGFuY2VvZiB0KXtpZihlLmhhcyhzKSl0aHJvdyBuZXcgRXJyb3IoImN5Y2xlIGRldGVjdGVkIik7cmV0dXJuIGUuYWRkKHMpLHMuZm9sZFRvT2JqZWN0SW50ZXJuYWwoZSl9cmV0dXJuIEFycmF5LmlzQXJyYXkocyk/cy5tYXAobj0+aShuKSk6RHUuZGVmYXVsdChzKX0scj10aGlzLnNhdmVhYmxlUHJvcGVydGllc3x8W107Zm9yKGxldCBzIG9mIHIpe2xldCBuPXRoaXNbc107YVtzXT1pKG4pfXJldHVybiBhfWZvbGRUb0pzb24oKXtsZXQgZT10aGlzLmZvbGRUb09iamVjdCgpO3JldHVybiBFMChlKX19LFlSdD0oKT0+KHQsZSk9PntsZXQgYT1TdHJpbmcoZS5uYW1lKTtlLmFkZEluaXRpYWxpemVyKGZ1bmN0aW9uKCl7dGhpcy5zYXZlYWJsZVByb3BlcnRpZXN8fCh0aGlzLnNhdmVhYmxlUHJvcGVydGllcz1bXSksdGhpcy5zYXZlYWJsZVByb3BlcnRpZXMuaW5jbHVkZXMoYSl8fHRoaXMuc2F2ZWFibGVQcm9wZXJ0aWVzLnB1c2goYSl9KX0sZGxlPSh0LGUpPT57bGV0IGE9RTAodCksaT1FMChlKTtyZXR1cm4gYT09PWl9LFpSdD0odCxlKT0+e2xldCBhPVokKHQpLGk9WiQoZSk7cmV0dXJuIGRsZShhLGkpfX0pO3ZhciBOdT1iKCgpPT57ZWxlKCk7aGxlKCk7YzIoKTtEaSgpO2c2KCl9KTt2YXIgZDUsSyQ9YigoKT0+e051KCk7RnUoKTtkNT1jbGFzc3tjb25zdHJ1Y3RvcihlLGEpe3RoaXMuc3RhdGVQYXJ0UmVmPWUsdGhpcy5hY3Rpb25EZWY9YX10cmlnZ2VyKGUpe3JldHVybiB0aGlzLnN0YXRlUGFydFJlZi5kaXNwYXRjaEFjdGlvbih0aGlzLGUpfX19KTt2YXIgaDUsRnU9YigoKT0+e051KCk7SyQoKTtoNT1jbGFzc3tjb25zdHJ1Y3RvcihlLGEpe3RoaXMuc3RhdGU9bmV3IEF0LnJ4anMuU3ViamVjdCx0aGlzLmN1bXVsYXRpdmVEZWZlcnJlZD1CZS5jdW11bGF0aXZlRGVmZXIoKSx0aGlzLnBlbmRpbmdDdW11bGF0aXZlTm90aWZpY2F0aW9uPW51bGwsdGhpcy53ZWJTdG9yZT1udWxsLHRoaXMubmFtZT1lLGEmJih0aGlzLndlYlN0b3JlT3B0aW9ucz1hKX1hc3luYyBpbml0KCl7aWYodGhpcy53ZWJTdG9yZU9wdGlvbnMpe3RoaXMud2ViU3RvcmU9bmV3IG9hLldlYlN0b3JlKHRoaXMud2ViU3RvcmVPcHRpb25zKSxhd2FpdCB0aGlzLndlYlN0b3JlLmluaXQoKTtsZXQgZT1hd2FpdCB0aGlzLndlYlN0b3JlLmdldChTdHJpbmcodGhpcy5uYW1lKSk7ZSYmdGhpcy52YWxpZGF0ZVN0YXRlKGUpJiYodGhpcy5zdGF0ZVN0b3JlPWUsYXdhaXQgdGhpcy5ub3RpZnlDaGFuZ2UoKSl9fWdldFN0YXRlKCl7cmV0dXJuIHRoaXMuc3RhdGVTdG9yZX1hc3luYyBzZXRTdGF0ZShlKXtpZighdGhpcy52YWxpZGF0ZVN0YXRlKGUpKXRocm93IG5ldyBFcnJvcihgSW52YWxpZCBzdGF0ZSBzdHJ1Y3R1cmUgZm9yIHN0YXRlIHBhcnQgJyR7dGhpcy5uYW1lfSdgKTtyZXR1cm4gdGhpcy53ZWJTdG9yZSYmYXdhaXQgdGhpcy53ZWJTdG9yZS5zZXQoU3RyaW5nKHRoaXMubmFtZSksZSksdGhpcy5zdGF0ZVN0b3JlPWUsYXdhaXQgdGhpcy5ub3RpZnlDaGFuZ2UoKSx0aGlzLnN0YXRlU3RvcmV9dmFsaWRhdGVTdGF0ZShlKXtyZXR1cm4gZSE9bnVsbH1hc3luYyBub3RpZnlDaGFuZ2UoKXtpZighdGhpcy5zdGF0ZVN0b3JlKXJldHVybjtsZXQgYT1hd2FpdChhc3luYyBpPT5hd2FpdCBsNS5zaGEyNTZGcm9tU3RyaW5nKGM1LnN0YWJsZU9uZVdheVN0cmluZ2lmeShpKSkpKHRoaXMuc3RhdGVTdG9yZSk7dGhpcy5sYXN0U3RhdGVOb3RpZmljYXRpb25QYXlsb2FkSGFzaCYmYT09PXRoaXMubGFzdFN0YXRlTm90aWZpY2F0aW9uUGF5bG9hZEhhc2h8fCh0aGlzLmxhc3RTdGF0ZU5vdGlmaWNhdGlvblBheWxvYWRIYXNoPWEsdGhpcy5zdGF0ZS5uZXh0KHRoaXMuc3RhdGVTdG9yZSkpfW5vdGlmeUNoYW5nZUN1bXVsYXRpdmUoKXt0aGlzLnBlbmRpbmdDdW11bGF0aXZlTm90aWZpY2F0aW9uJiZjbGVhclRpbWVvdXQodGhpcy5wZW5kaW5nQ3VtdWxhdGl2ZU5vdGlmaWNhdGlvbiksdGhpcy5wZW5kaW5nQ3VtdWxhdGl2ZU5vdGlmaWNhdGlvbj1zZXRUaW1lb3V0KGFzeW5jKCk9Pnt0aGlzLnBlbmRpbmdDdW11bGF0aXZlTm90aWZpY2F0aW9uPW51bGwsdGhpcy5zdGF0ZVN0b3JlJiZhd2FpdCB0aGlzLm5vdGlmeUNoYW5nZSgpfSwwKX1zZWxlY3QoZSl7cmV0dXJuIGV8fChlPWk9PmkpLHRoaXMuc3RhdGUucGlwZShBdC5yeGpzLm9wcy5zdGFydFdpdGgodGhpcy5nZXRTdGF0ZSgpKSxBdC5yeGpzLm9wcy5maWx0ZXIoaT0+aSE9PXZvaWQgMCksQXQucnhqcy5vcHMubWFwKGk9Pnt0cnl7cmV0dXJuIGUoaSl9Y2F0Y2gocil7Y29uc29sZS5lcnJvcihgU2VsZWN0b3IgZXJyb3IgaW4gc3RhdGUgcGFydCAnJHt0aGlzLm5hbWV9JzpgLHIpO3JldHVybn19KSl9Y3JlYXRlQWN0aW9uKGUpe3JldHVybiBuZXcgZDUodGhpcyxlKX1hc3luYyBkaXNwYXRjaEFjdGlvbihlLGEpe2F3YWl0IHRoaXMuY3VtdWxhdGl2ZURlZmVycmVkLnByb21pc2U7bGV0IGk9YXdhaXQgZS5hY3Rpb25EZWYodGhpcyxhKTtyZXR1cm4gYXdhaXQgdGhpcy5zZXRTdGF0ZShpKSx0aGlzLmdldFN0YXRlKCl9YXN5bmMgd2FpdFVudGlsUHJlc2VudChlLGEpe2xldCBpPUJlLmRlZmVyKCkscj10aGlzLnNlbGVjdChlKSxzPSExLG49ci5zdWJzY3JpYmUoZD0+e2QmJiFzJiYocz0hMCxpLnJlc29sdmUoZCkpfSksbzthJiYobz1zZXRUaW1lb3V0KCgpPT57c3x8KHM9ITAsbi51bnN1YnNjcmliZSgpLGkucmVqZWN0KG5ldyBFcnJvcihgd2FpdFVudGlsUHJlc2VudCB0aW1lZCBvdXQgYWZ0ZXIgJHthfW1zYCkpKX0sYSkpO3RyeXtyZXR1cm4gYXdhaXQgaS5wcm9taXNlfWZpbmFsbHl7bi51bnN1YnNjcmliZSgpLG8mJmNsZWFyVGltZW91dChvKX19YXN5bmMgc3RhdGVTZXR1cChlKXtsZXQgYT1lKHRoaXMpO3RoaXMuY3VtdWxhdGl2ZURlZmVycmVkLmFkZFByb21pc2UoYSksYXdhaXQgdGhpcy5zZXRTdGF0ZShhd2FpdCBhKX19fSk7dmFyIFEkLHBsZT1iKCgpPT57TnUoKTtGdSgpO1EkPWNsYXNze2NvbnN0cnVjdG9yKCl7dGhpcy5zdGF0ZVBhcnRNYXA9e30sdGhpcy5wZW5kaW5nU3RhdGVQYXJ0Q3JlYXRpb249bmV3IE1hcH1hc3luYyBnZXRTdGF0ZVBhcnQoZSxhLGk9InNvZnQiKXtsZXQgcj10aGlzLnBlbmRpbmdTdGF0ZVBhcnRDcmVhdGlvbi5nZXQoZSk7aWYocilyZXR1cm4gcjtsZXQgcz10aGlzLnN0YXRlUGFydE1hcFtlXTtpZihzKXN3aXRjaChpKXtjYXNlIm1hbmRhdG9yeSI6dGhyb3cgbmV3IEVycm9yKGBTdGF0ZSBwYXJ0ICcke2V9JyBhbHJlYWR5IGV4aXN0cywgYnV0IGluaXRNb2RlIGlzICdtYW5kYXRvcnknYCk7Y2FzZSJmb3JjZSI6YnJlYWs7ZGVmYXVsdDpyZXR1cm4gc31lbHNlIGlmKCFhKXRocm93IG5ldyBFcnJvcihgU3RhdGUgcGFydCAnJHtlfScgZG9lcyBub3QgZXhpc3QgYW5kIG5vIGluaXRpYWwgc3RhdGUgcHJvdmlkZWRgKTtsZXQgbj10aGlzLmNyZWF0ZVN0YXRlUGFydChlLGEsaSk7dGhpcy5wZW5kaW5nU3RhdGVQYXJ0Q3JlYXRpb24uc2V0KGUsbik7dHJ5e3JldHVybiBhd2FpdCBufWZpbmFsbHl7dGhpcy5wZW5kaW5nU3RhdGVQYXJ0Q3JlYXRpb24uZGVsZXRlKGUpfX1hc3luYyBjcmVhdGVTdGF0ZVBhcnQoZSxhLGk9InNvZnQiKXtsZXQgcj1uZXcgaDUoZSxpPT09InBlcnNpc3RlbnQiP3tkYk5hbWU6InNtYXJ0c3RhdGUiLHN0b3JlTmFtZTplfTpudWxsKTthd2FpdCByLmluaXQoKTtsZXQgcz1yLmdldFN0YXRlKCk7cmV0dXJuIGk9PT0icGVyc2lzdGVudCImJnMhPT12b2lkIDA/YXdhaXQgci5zZXRTdGF0ZSh7Li4uYSwuLi5zfSk6YXdhaXQgci5zZXRTdGF0ZShhKSx0aGlzLnN0YXRlUGFydE1hcFtlXT1yLHJ9fX0pO3ZhciBHbj17fTtHZShHbix7U21hcnRzdGF0ZTooKT0+USQsU3RhdGVBY3Rpb246KCk9PmQ1LFN0YXRlUGFydDooKT0+aDV9KTt2YXIgSiQ9YigoKT0+e3BsZSgpO0Z1KCk7SyQoKX0pO3ZhciB1bGU9YigoKT0+e30pO3ZhciBlQSxmbGU9YigoKT0+e3VsZSgpO2VBPWNsYXNzIHR7c3RhdGljIGNyZWF0ZUZyb21VcmwoZSxhKXtsZXQgaT1uZXcgVVJMKGUpLHI9e30scz1bXTtpLnNlYXJjaCYmaS5zZWFyY2gucmVwbGFjZSgiPyIsIiIpLnNwbGl0KCImIikubWFwKGM9PntzLnB1c2goe2tleTpjLnNwbGl0KCI9IilbMF0sdmFsdWU6Yy5zcGxpdCgiPSIpWzFdfSl9KTtmb3IobGV0IGMgb2YgcylyW2Mua2V5XT1jLnZhbHVlO2lmKGE/LnNlYXJjaFBhcmFtcylmb3IobGV0IGMgb2YgT2JqZWN0LmtleXMoYS5zZWFyY2hQYXJhbXMpKXJbY109YS5zZWFyY2hQYXJhbXNbY107bGV0IG49aS5wYXRobmFtZXx8IiI7aWYoT2JqZWN0LmtleXMocikubGVuZ3RoPjApe24rPSI/IjtsZXQgYz0hMDtmb3IobGV0IGggb2YgT2JqZWN0LmtleXMocikpYz9jPSExOm4rPSImIixuKz1gJHtofT0ke3JbaF19YH1sZXQgbz17Li4uaSxocmVmOmkuaHJlZixvcmlnaW46aS5vcmlnaW4scHJvdG9jb2w6aS5wcm90b2NvbCx1c2VybmFtZTppLnVzZXJuYW1lLHBhc3N3b3JkOmkucGFzc3dvcmQsaG9zdDppLmhvc3QsaG9zdG5hbWU6aS5ob3N0bmFtZSxwb3J0OmkucG9ydCxwYXRoOm4scGF0aG5hbWU6aS5wYXRobmFtZSxzZWFyY2g6aS5zZWFyY2gsc2VhcmNoUGFyYW1zOnIsaGFzaDppLmhhc2h9OyFvLnBvcnQmJm8ucHJvdG9jb2w9PT0iaHR0cHM6IiYmKG8ucG9ydD0iNDQzIiksIW8ucG9ydCYmby5wcm90b2NvbD09PSJodHRwOiImJihvLnBvcnQ9IjgwIik7bGV0IGQ9bmV3IHQ7cmV0dXJuIE9iamVjdC5hc3NpZ24oZCxvKSxkfXN0YXRpYyBjcmVhdGVGcm9tUGFyc2VkVXJsKGUpe2xldCBhPW5ldyB0O3JldHVybiBPYmplY3QuYXNzaWduKGEsZSksYX1jb25zdHJ1Y3Rvcigpe3RoaXMuc2VhcmNoUGFyYW1zPXt9fWNsb25lKCl7bGV0IGU9bmV3IHQ7cmV0dXJuIE9iamVjdC5hc3NpZ24oZSx0aGlzKSxlLnNlYXJjaFBhcmFtcz17Li4udGhpcy5zZWFyY2hQYXJhbXN9LGV9c2V0KGUsYSl7cmV0dXJuIHRoaXNbZV09YSx0aGlzfXRvU3RyaW5nKCl7bGV0IGU9IiI7cmV0dXJuIHRoaXMudXNlcm5hbWUmJiF0aGlzLnBhc3N3b3JkJiYoZT1gJHt0aGlzLnVzZXJuYW1lfUBgKSx0aGlzLnVzZXJuYW1lJiZ0aGlzLnBhc3N3b3JkJiYoZT1gJHt0aGlzLnVzZXJuYW1lfToke3RoaXMucGFzc3dvcmR9QGApLGAke3RoaXMucHJvdG9jb2x9Ly8ke2V9JHt0aGlzLmhvc3RuYW1lfToke3RoaXMucG9ydH0ke3RoaXMucGF0aH1gfX19KTt2YXIgWW49e307R2UoWW4se1NtYXJ0dXJsOigpPT5lQX0pO3ZhciB0QT1iKCgpPT57ZmxlKCl9KTt2YXIgbWxlPWIoKCk9Pnt1cigpO2QzKCk7djMoKTtjMigpO2c2KCl9KTt2YXIgaUE9e307R2UoaUEse1dlYlJlcXVlc3Q6KCk9PmFBfSk7dmFyIGFBLGdsZT1iKCgpPT57bWxlKCk7YUE9Y2xhc3N7Y29uc3RydWN0b3IoZT17fSl7dGhpcy5vcHRpb25zQXJnPWUsdGhpcy5jYWNoZVN0b3JlPW5ldyBvYS5XZWJTdG9yZSh7ZGJOYW1lOiJ3ZWJyZXF1ZXN0IixzdG9yZU5hbWU6IndlYnJlcXVlc3QifSksdGhpcy5vcHRpb25zPXtsb2dnaW5nOiEwLC4uLmV9fWFzeW5jIGdldEpzb24oZSxhPSExKXtsZXQgcj1hd2FpdChhd2FpdCB0aGlzLnJlcXVlc3QoZSx7bWV0aG9kOiJHRVQiLHVzZUNhY2hlOmF9KSkudGV4dCgpO3JldHVybiBDMS5wYXJzZShyKX1hc3luYyBwb3N0SnNvbihlLGEsaT0hMSl7bGV0IHM9YXdhaXQoYXdhaXQgdGhpcy5yZXF1ZXN0KGUse21ldGhvZDoiUE9TVCIsaGVhZGVyczp7IkNvbnRlbnQtVHlwZSI6ImFwcGxpY2F0aW9uL2pzb24ifSxib2R5OkMxLnN0cmluZ2lmeShhKSx1c2VDYWNoZTppfSkpLnRleHQoKTtyZXR1cm4gQzEucGFyc2Uocyl9YXN5bmMgcHV0SnNvbihlLGEsaT0hMSl7bGV0IHM9YXdhaXQoYXdhaXQgdGhpcy5yZXF1ZXN0KGUse21ldGhvZDoiUFVUIixoZWFkZXJzOnsiQ29udGVudC1UeXBlIjoiYXBwbGljYXRpb24vanNvbiJ9LGJvZHk6QzEuc3RyaW5naWZ5KGEpfSkpLnRleHQoKTtyZXR1cm4gQzEucGFyc2Uocyl9YXN5bmMgZGVsZXRlSnNvbihlLGE9ITEpe2xldCByPWF3YWl0KGF3YWl0IHRoaXMucmVxdWVzdChlLHtoZWFkZXJzOnsiQ29udGVudC1UeXBlIjoiYXBwbGljYXRpb24vanNvbiJ9LG1ldGhvZDoiR0VUIn0pKS50ZXh0KCk7cmV0dXJuIEMxLnBhcnNlKHIpfWFzeW5jIHJlcXVlc3QoZSxhKXthPXt0aW1lb3V0TXM6NmU0LHVzZUNhY2hlOiExLC4uLmF9O2xldCBpPW5ldyBBYm9ydENvbnRyb2xsZXI7ZHQuZGVsYXlGb3IoYS50aW1lb3V0TXMpLnRoZW4oKCk9PntpLmFib3J0KCl9KTtsZXQgcj1CZS5kZWZlcigpLHM9ITE7aWYoYS51c2VDYWNoZSYmYXdhaXQgdGhpcy5jYWNoZVN0b3JlLmNoZWNrKGUpKXtsZXQgbz1hd2FpdCB0aGlzLmNhY2hlU3RvcmUuZ2V0KGUpO3IucmVzb2x2ZShuZXcgUmVzcG9uc2Uobyx7fSkpfWVsc2Ugci5yZXNvbHZlKG51bGwpO2xldCBuPWF3YWl0IGZldGNoKGUse3NpZ25hbDppLnNpZ25hbCxtZXRob2Q6YS5tZXRob2QsaGVhZGVyczp7Li4uYS5oZWFkZXJzfHx7fX0sYm9keTphLmJvZHl9KS5jYXRjaChhc3luYyBvPT5hLnVzZUNhY2hlJiZhd2FpdCByLnByb21pc2U/KHM9ITAsci5wcm9taXNlKTpvKTtpZihhLnVzZUNhY2hlJiZhd2FpdCByLnByb21pc2UmJm4uc3RhdHVzPT09NTAwJiYocz0hMCxuPWF3YWl0IHIucHJvbWlzZSksIXMmJmEudXNlQ2FjaGUmJm4uc3RhdHVzPDMwMCl7bGV0IG89YXdhaXQgbi5jbG9uZSgpLmFycmF5QnVmZmVyKCk7YXdhaXQgdGhpcy5jYWNoZVN0b3JlLnNldChlLG8pfXJldHVybiB0aGlzLmxvZyhgJHtlfSBhbnN3ZXJzIHdpdGggc3RhdHVzOiAke24uc3RhdHVzfWApLG59YXN5bmMgcmVxdWVzdE11bHRpRW5kcG9pbnQoZSxhKXtsZXQgaSxyPTA7QXJyYXkuaXNBcnJheShlKT9pPWU6aT1bZV07bGV0IHM9W10sbj1hc3luYyBjPT57cy5wdXNoKGMpLGM9PT0iNDI5IiYmKGNvbnNvbGUubG9nKCJnb3QgNDI5LCBzbyB3YWl0aW5nIGEgbGl0dGxlIGJpdC4iKSxhd2FpdCBkdC5kZWxheUZvcihNYXRoLmZsb29yKE1hdGgucmFuZG9tKCkqMTAwMSkrMWUzKSk7bGV0IGg9MDtmb3IobGV0IGwgb2YgcylsPT09YyYmaCsrO2g+MippLmxlbmd0aCpyJiZyKyt9LG89YXN5bmMgYz0+e2lmKCFjKXRocm93IG5ldyBFcnJvcigicmVxdWVzdCBmYWlsZWQgcGVybWFuZW50bHkiKTt0aGlzLmxvZyhgR2V0dGluZyAke2N9IHdpdGggbWV0aG9kICR7YS5tZXRob2R9YCk7bGV0IGg9YXdhaXQgZmV0Y2goYyx7bWV0aG9kOmEubWV0aG9kLGhlYWRlcnM6eyJDb250ZW50LVR5cGUiOiJhcHBsaWNhdGlvbi9qc29uIiwuLi5hLmhlYWRlcnN8fHt9fSxib2R5OmEuYm9keX0pO3JldHVybiB0aGlzLmxvZyhgJHtjfSBhbnN3ZXJzIHdpdGggc3RhdHVzOiAke2guc3RhdHVzfWApLGguc3RhdHVzPj0yMDAmJmguc3RhdHVzPDMwMD9oOihhd2FpdCBuKGguc3RhdHVzLnRvU3RyaW5nKCkpLGF3YWl0IG8oaVtyXSkpfTtyZXR1cm4gYXdhaXQgbyhpW3JdKX1sb2coZSl7dGhpcy5vcHRpb25zLmxvZ2dpbmcmJmNvbnNvbGUubG9nKGUpfX19KTt2YXIgT3UsUDAsUnU9YigoKT0+e091PWNsYXNze2NsYWltKCl7aWYodGhpcy5jbGFpbWVkKXRocm93IG5ldyBFcnJvcigiRGVmZXJyZWQgYWxyZWFkeSBjbGFpbWVkIik7dGhpcy5jbGFpbWVkPSEwfWdldCBkdXJhdGlvbigpe3JldHVybiB0aGlzLnN0b3BwZWRBdD90aGlzLnN0b3BwZWRBdC10aGlzLnN0YXJ0ZWRBdDpEYXRlLm5vdygpLXRoaXMuc3RhcnRlZEF0fWNvbnN0cnVjdG9yKCl7dGhpcy5jbGFpbWVkPSExLHRoaXMucHJvbWlzZT1uZXcgUHJvbWlzZSgoZSxhKT0+e3RoaXMucmVzb2x2ZT1pPT57dGhpcy5zdGF0dXM9ImZ1bGZpbGxlZCIsdGhpcy5zdG9wcGVkQXQ9RGF0ZS5ub3coKSxlKGkpfSx0aGlzLnJlamVjdD1pPT57dGhpcy5zdGF0dXM9InJlamVjdGVkIix0aGlzLnN0b3BwZWRBdD1EYXRlLm5vdygpLGEoaSl9LHRoaXMuc3RhcnRlZEF0PURhdGUubm93KCksdGhpcy5zdGF0dXM9InBlbmRpbmcifSl9fSxQMD0oKT0+bmV3IE91fSk7dmFyIEJ1LFFSdCxibGU9YigoKT0+e1J1KCk7QnU9Y2xhc3N7Y29uc3RydWN0b3IoKXt0aGlzLmFjY3VtdWxhdGVkUHJvbWlzZXM9W10sdGhpcy5kZWZlcnJlZD1QMCgpLHRoaXMucHJvbWlzZT10aGlzLmRlZmVycmVkLnByb21pc2Usc2V0VGltZW91dChhc3luYygpPT57Zm9yKDt0aGlzLmFjY3VtdWxhdGVkUHJvbWlzZXMubGVuZ3RoPjA7KWF3YWl0IHRoaXMuYWNjdW11bGF0ZWRQcm9taXNlcy5zaGlmdCgpO3RoaXMuZGVmZXJyZWQucmVzb2x2ZSgpfSwwKX1hZGRQcm9taXNlKGUpe3RoaXMuYWNjdW11bGF0ZWRQcm9taXNlcy5wdXNoKGUpfX0sUVJ0PSgpPT5uZXcgQnV9KTt2YXIgSTA9e307R2UoSTAse0N1bXVsYXRpdmVEZWZlcnJlZDooKT0+QnUsRGVmZXJyZWQ6KCk9Pk91LGN1bXVsYXRpdmVEZWZlcjooKT0+UVJ0LGRlZmVyOigpPT5QMCxnZXRGaXJzdFRydWVPckZhbHNlOigpPT5pQnQsbWFwOigpPT50QnQscmVqZWN0ZWRQcm9taXNlOigpPT5lQnQscmVzb2x2ZWRQcm9taXNlOigpPT5KUnQsdGltZW91dEFuZENvbnRpbnVlOigpPT5hQnQsdGltZW91dFdyYXA6KCk9PnZsZX0pO3ZhciBKUnQsZUJ0LHRCdCx2bGUsYUJ0LGlCdCxyQT1iKCgpPT57UnUoKTtibGUoKTtSdSgpO0pSdD10PT5Qcm9taXNlLnJlc29sdmUodCksZUJ0PXQ9PlByb21pc2UucmVqZWN0KHQpLHRCdD1hc3luYyh0LGUpPT57bGV0IGE9W10saT1bXTtmb3IobGV0IHIgb2YgdCl7bGV0IHM9ZShyKTthLnB1c2gocykscy50aGVuKG49PntpLnB1c2gobil9KX1yZXR1cm4gYXdhaXQgUHJvbWlzZS5hbGwoYSksaX0sdmxlPWFzeW5jKHQsZSxhPSEwKT0+bmV3IFByb21pc2UoKGkscik9PntzZXRUaW1lb3V0KCgpPT57YT9yKG5ldyBFcnJvcigidGltZW91dCIpKTppKG51bGwpfSxlKSx0LnRoZW4oaSxyKX0pLGFCdD1hc3luYyh0LGU9NmU0KT0+dmxlKHQsZSwhMSksaUJ0PWFzeW5jIHQ9PntsZXQgZT1QMCgpO2ZvcihsZXQgYSBvZiB0KWEudGhlbihpPT57aT09PSEwJiZlLnJlc29sdmUoITApfSk7cmV0dXJuIFByb21pc2UuYWxsKHQpLnRoZW4oKCk9PntlLnJlc29sdmUoITEpfSksZS5wcm9taXNlfX0pO3ZhciBzQT17fTtHZShzQSx7VGltZW91dDooKT0+SHUsZGVsYXlGb3I6KCk9PnlsZSxkZWxheUZvclJhbmRvbTooKT0+ckJ0fSk7dmFyIHlsZSxyQnQsSHUseGxlPWIoKCk9PntyQSgpO3lsZT1hc3luYyh0LGUsYT0hMSk9Pihhd2FpdCBuZXcgSHUodCxudWxsLGEpLnByb21pc2UsZSksckJ0PWFzeW5jKHQsZSxhLGk9ITEpPT4oYXdhaXQgeWxlKE1hdGgucmFuZG9tKCkqKGUtdCkrdCxudWxsLGkpLGEpLEh1PWNsYXNze2NvbnN0cnVjdG9yKGUsYSxpPSExKXt0aGlzLl9jYW5jZWxsZWQ9ITEsdGhpcy50aW1lb3V0SW5NaWxsaXM9ZSx0aGlzLl9kZWZlcnJlZD1QMCgpLHRoaXMucHJvbWlzZT10aGlzLl9kZWZlcnJlZC5wcm9taXNlLHRoaXMuX3RpbWVvdXQ9c2V0VGltZW91dCgoKT0+e3RoaXMuX2NhbmNlbGxlZHx8dGhpcy5fZGVmZXJyZWQucmVzb2x2ZShhKX0sZSksdGhpcy5zdGFydGVkPURhdGUubm93KCksaSYmdGhpcy5tYWtlVW5yZWZlZCgpfW1ha2VVbnJlZmVkKCl7dGhpcy5fdGltZW91dC51bnJlZigpfWNhbmNlbCgpe3RoaXMuX2NhbmNlbGxlZD0hMCxjbGVhclRpbWVvdXQodGhpcy5fdGltZW91dCl9Z2V0VGltZUxlZnQoKXtsZXQgZT10aGlzLnN0YXJ0ZWQrdGhpcy50aW1lb3V0SW5NaWxsaXMtRGF0ZS5ub3coKTtyZXR1cm4gZT4wP2U6MH19fSk7dmFyIHdsZT1iKCgpPT57fSk7dmFyIHF1PWIoKCk9PntPcigpfSk7dmFyIFZ1PWIoKCk9PntPcigpO09yKCl9KTt2YXIgTWxlPWIoKCk9PntPcigpfSk7dmFyIHpsZT1iKCgpPT57fSk7dmFyIGtsZT1iKCgpPT57T3IoKX0pO3ZhciBTbGU9YigoKT0+e09yKCl9KTt2YXIgQ2xlPWIoKCk9Pnt9KTt2YXIgX2xlPWIoKCk9Pnt9KTt2YXIgbkE9e307dmFyIGp1PWIoKCk9PntNbGUoKTt6bGUoKTtrbGUoKTtTbGUoKTtDbGUoKTtfbGUoKX0pO3ZhciBvQSxUbGU9YigoKT0+e2p1KCk7cXUoKTtWdSgpO29BPWNsYXNze319KTt2YXIgTGxlPWIoKCk9Pnt9KTt2YXIgJGxlPWIoKCk9Pnt9KTt2YXIgQWxlPWIoKCk9Pnt9KTt2YXIgRGxlPWIoKCk9Pnt9KTt2YXIgbEE9e307dmFyIGNBPWIoKCk9PntMbGUoKTskbGUoKTtBbGUoKTtEbGUoKX0pO3ZhciBFbGU9YigoKT0+e2RBKCk7anUoKTtjQSgpfSk7dmFyIFBsZT1iKCgpPT57fSk7dmFyIElsZT1iKCgpPT57VnUoKX0pO3ZhciBObGU9YigoKT0+e30pO3ZhciBVdT17fTtHZShVdSx7SUpvYjooKT0+b0F9KTt2YXIgZEE9YigoKT0+e3dsZSgpO3F1KCk7VnUoKTtUbGUoKTtFbGUoKTtQbGUoKTtJbGUoKTtObGUoKX0pO3ZhciBGbGU9YigoKT0+e30pO3ZhciBPbGU9YigoKT0+e30pO3ZhciBoQT17fTt2YXIgUmxlPWIoKCk9PntGbGUoKTtPbGUoKX0pO3ZhciBCbGU9YigoKT0+e30pO3ZhciBIbGU9YigoKT0+e30pO3ZhciBwQT17fTt2YXIgcWxlPWIoKCk9PntCbGUoKTtIbGUoKX0pO3ZhciB1QT1iKCgpPT57T3IoKX0pO3ZhciBWbGU9YigoKT0+e09yKCl9KTt2YXIgamxlPWIoKCk9Pnt1QSgpfSk7dmFyIGZBPXt9O3ZhciBVbGU9YigoKT0+e3VBKCk7VmxlKCk7amxlKCl9KTt2YXIgV2xlPWIoKCk9Pnt9KTt2YXIgR2xlPWIoKCk9Pnt9KTt2YXIgbUE9e307dmFyIFlsZT1iKCgpPT57V2xlKCk7R2xlKCl9KTt2YXIgZ0E9YigoKT0+e30pO3ZhciBiQSxabGU9YigoKT0+e2dBKCk7YkE9Y2xhc3N7fX0pO3ZhciBYbGU9YigoKT0+e30pO3ZhciBLbGU9YigoKT0+e30pO3ZhciBRbGU9YigoKT0+e30pO3ZhciBKbGU9YigoKT0+e30pO3ZhciBlY2U9YigoKT0+e30pO3ZhciB0Y2U9YigoKT0+e30pO3ZhciBhY2U9YigoKT0+e30pO3ZhciBpY2U9YigoKT0+e30pO3ZhciByY2U9YigoKT0+e30pO3ZhciBXdT17fTtHZShXdSx7SUNuYW1lRGVzY3JpcHRvcjooKT0+YkF9KTt2YXIgc2NlPWIoKCk9PntnQSgpO1psZSgpO1hsZSgpO0tsZSgpO1FsZSgpO0psZSgpO2VjZSgpO3RjZSgpO2FjZSgpO2ljZSgpO3JjZSgpfSk7dmFyIHZBPWIoKCk9PntxdSgpfSk7dmFyIG5jZT1iKCgpPT57dkEoKX0pO3ZhciB5QT17fTt2YXIgb2NlPWIoKCk9PntuY2UoKTt2QSgpfSk7dmFyIHhBPXt9O3ZhciBsY2U9YigoKT0+e30pO3ZhciBjY2U9YigoKT0+e30pO3ZhciBkY2U9YigoKT0+e30pO3ZhciBoY2U9YigoKT0+e30pO3ZhciB3QT17fTt2YXIgcGNlPWIoKCk9PntjY2UoKTtkY2UoKTtoY2UoKX0pO3ZhciB1Y2U9YigoKT0+e30pO3ZhciBNQT17fTtHZShNQSx7YnVzaW5lc3M6KCk9PlV1LGNvZGU6KCk9PmhBLGNvbnRhaW5lcjooKT0+cEEsY29udGVudDooKT0+ZkEsZGF0YWJhc2U6KCk9PmxBLGZpbmFuY2U6KCk9Pm5BLGdlbmVyYWw6KCk9Pm1BLG5ldHdvcms6KCk9Pld1LHNhYXM6KCk9PnlBLHN0b3JhZ2U6KCk9PnhBLHdlYnNpdGU6KCk9PndBfSk7dmFyIE9yPWIoKCk9PntkQSgpO1JsZSgpO3FsZSgpO2NBKCk7anUoKTtVbGUoKTtZbGUoKTtzY2UoKTtvY2UoKTtsY2UoKTtwY2UoKTt1Y2UoKX0pO3ZhciBrcz1iKCgpPT57eGxlKCk7ckEoKTtPcigpfSk7dmFyIEd1PWIoKCk9PntrcygpfSk7dmFyIFpuLHA1PWIoKCk9PntrcygpO1puPWNsYXNze2FwcGVuZFRvRG9tKCl7IXRoaXMuZWxlbWVudFJlZi5wYXJlbnRFbGVtZW50JiYhdGhpcy5lbGVtZW50UmVmLnBhcmVudE5vZGUmJmRvY3VtZW50LmdldEVsZW1lbnRzQnlUYWdOYW1lKCJoZWFkIilbMF0uYXBwZW5kQ2hpbGQodGhpcy5lbGVtZW50UmVmKX1yZW1vdmVGcm9tRG9tKCl7dGhpcy5lbGVtZW50UmVmLnBhcmVudEVsZW1lbnQ/dGhpcy5lbGVtZW50UmVmLnBhcmVudEVsZW1lbnQucmVtb3ZlQ2hpbGQodGhpcy5lbGVtZW50UmVmKTp0aGlzLmVsZW1lbnRSZWYucGFyZW50Tm9kZSYmdGhpcy5lbGVtZW50UmVmLnBhcmVudE5vZGUucmVtb3ZlQ2hpbGQodGhpcy5lbGVtZW50UmVmKX19fSk7dmFyIE4wLFl1PWIoKCk9PntrcygpO0d1KCk7cDUoKTtOMD1jbGFzcyB0IGV4dGVuZHMgWm57c3RhdGljIGNyZWF0ZUNvbXBhbnlKc29uTGQoZSl7bGV0IGE9eyJAY29udGV4dCI6Imh0dHBzOi8vc2NoZW1hLm9yZyIsIkB0eXBlIjoiQ29ycG9yYXRpb24iLG5hbWU6ZS5uYW1lLGFsdGVybmF0ZU5hbWU6ZS5uYW1lLnJlcGxhY2UoIiBHbWJIIiwiIiksdXJsOmUuY29udGFjdC53ZWJzaXRlLGxvZ286ZS5jb250YWN0LmxvZ29VcmwsY29udGFjdFBvaW50OnsiQHR5cGUiOiJDb250YWN0UG9pbnQiLHRlbGVwaG9uZTplLmNvbnRhY3QucGhvbmUsY29udGFjdFR5cGU6ImN1c3RvbWVyIHNlcnZpY2UiLGFyZWFTZXJ2ZWQ6IkRFIixhdmFpbGFibGVMYW5ndWFnZTpbImVuIiwiR2VybWFuIl19LHNhbWVBczpbXX07cmV0dXJuIGUuY29udGFjdC5mYWNlYm9va1VybCYmYS5zYW1lQXMucHVzaChlLmNvbnRhY3QuZmFjZWJvb2tVcmwpLGUuY29udGFjdC50d2l0dGVyVXJsJiZhLnNhbWVBcy5wdXNoKGUuY29udGFjdC50d2l0dGVyVXJsKSxuZXcgdChhKX1zdGF0aWMgY3JlYXRlTmV3c0FydGljbGVKc29uTGQoZSl7bGV0IGE9eyJAY29udGV4dCI6Imh0dHBzOi8vc2NoZW1hLm9yZyIsIkB0eXBlIjoiTmV3c0FydGljbGUiLG1haW5FbnRpdHlPZlBhZ2U6eyJAdHlwZSI6IldlYlBhZ2UiLCJAaWQiOndpbmRvdy5sb2NhdGlvbi5ocmVmfSxoZWFkbGluZToiQXJ0aWNsZSBoZWFkbGluZSIsaW1hZ2U6W2UuZmVhdHVyZWRJbWFnZVVybF0sZGF0ZVB1Ymxpc2hlZDpuZXcgRGF0ZShlLnRpbWVzdGFtcCkudG9JU09TdHJpbmcoKSxkYXRlTW9kaWZpZWQ6bmV3IERhdGUoZS50aW1lc3RhbXApLnRvSVNPU3RyaW5nKCksYXV0aG9yOnsiQHR5cGUiOiJQZXJzb24iLG5hbWU6YCR7ZS5hdXRob3IuZmlyc3ROYW1lfSAke2UuYXV0aG9yLnN1ck5hbWV9YH0scHVibGlzaGVyOnsiQHR5cGUiOiJPcmdhbml6YXRpb24iLG5hbWU6ZS5hdXRob3Iuc3VyTmFtZSxsb2dvOnsiQHR5cGUiOiJJbWFnZU9iamVjdCIsdXJsOmUuYXV0aG9yLnN1ck5hbWV9fSxkZXNjcmlwdGlvbjplLmF1dGhvci5maXJzdE5hbWV9O3JldHVybiBuZXcgdChhKX1zdGF0aWMgY3JlYXRlUHJvZHVjdEpzb25MZChlLGEpe2xldCBpPXsiQGNvbnRleHQiOiJodHRwczovL3NjaGVtYS5vcmciLCJAdHlwZSI6IlNvZnR3YXJlQXBwbGljYXRpb24iLG5hbWU6ZS5uYW1lLGRlc2NyaXB0aW9uOmUuZGVzY3JpcHRpb24sb3BlcmF0aW5nU3lzdGVtOmUub3MsYXBwbGljYXRpb25DYXRlZ29yeTplLmNhdGVnb3J5LG9mZmVyczp7IkB0eXBlIjoiT2ZmZXIiLG5hbWU6IlVzZXItYmFzZWQgUGxhbiIscHJpY2VTcGVjaWZpY2F0aW9uOnsiQHR5cGUiOiJQcm9wZXJ0eVZhbHVlU3BlY2lmaWNhdGlvbiIsdmFsdWVOYW1lOiJOdW1iZXIgb2YgVXNlcnMiLHZhbHVlUmVxdWlyZWQ6ITAscHJpY2U6IjQuOTkiLHByaWNlQ3VycmVuY3k6IkVVUiJ9fSxwdWJsaXNoZXI6dGhpcy5jcmVhdGVDb21wYW55SnNvbkxkKGEpLmVsZW1lbnRSZWYudGV4dENvbnRlbnQsc2NyZWVuc2hvdDoiaHR0cHM6Ly93d3cuc29jaWFsLmlvL3NjcmVlbnNob3QucG5nIix1cmw6Imh0dHBzOi8vd3d3LnNvY2lhbC5pby8ifTtyZXR1cm4gbmV3IHQoaSl9Y29uc3RydWN0b3IoZSl7c3VwZXIoKTtsZXQgYT1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJzY3JpcHQiKTthLnR5cGU9ImFwcGxpY2F0aW9uL2xkK2pzb24iLGEudGV4dD1KU09OLnN0cmluZ2lmeShlKSx0aGlzLmVsZW1lbnRSZWY9YX19fSk7dmFyIGNhLFp1PWIoKCk9PntrcygpO3A1KCk7Y2E9Y2xhc3MgdCBleHRlbmRzIFpue3N0YXRpYyBjcmVhdGVOZXdzQXJ0aWNsZU9nVGFncyhlKXtsZXQgYT1bXTtyZXR1cm4gYS5wdXNoKG5ldyB0KCJvZzp1cmwiLGUudXJsKSksYS5wdXNoKG5ldyB0KCJvZzp0aXRsZSIsZS50aXRsZSkpLGEucHVzaChuZXcgdCgib2c6ZGVzY3JpcHRpb24iLGUuY29udGVudCkpLGEucHVzaChuZXcgdCgib2c6aW1hZ2UiLGUuZmVhdHVyZWRJbWFnZVVybCkpLGF9c3RhdGljIGNyZWF0ZVByb2R1Y3RPZ1RhZ3MoZSl7bGV0IGE9W107cmV0dXJuIGEucHVzaChuZXcgdCgib2c6dXJsIixnbG9iYWxUaGlzLmxvY2F0aW9uLmhyZWYpKSxhLnB1c2gobmV3IHQoIm9nOnRpdGxlIixgJHtlLm5hbWV9IC0gJHtlLnNsb2dhbn1gKSksYS5wdXNoKG5ldyB0KCJvZzpzaXRlX25hbWUiLGUubmFtZSkpLGEucHVzaChuZXcgdCgib2c6ZGVzY3JpcHRpb24iLGUuZGVzY3JpcHRpb24pKSxhLnB1c2gobmV3IHQoIm9nOmltYWdlIixlLmxvZ29MaW5rKSksYX1jb25zdHJ1Y3RvcihlLGEpe3N1cGVyKCk7bGV0IGk9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgibWV0YSIpO2kuc2V0QXR0cmlidXRlKCJwcm9wZXJ0eSIsZSksaS5jb250ZW50PWEsdGhpcy5lbGVtZW50UmVmPWl9fX0pO3ZhciBLMyx6QT1iKCgpPT57cDUoKTtZdSgpO1p1KCk7a0EoKTtrcygpO0szPWNsYXNze3NldCB0aXRsZShlKXt0aGlzLnRpdGxlU3RvcmU9ZSx0aGlzLnN0YXRlPT09ImVuYWJsZWQiJiYoZG9jdW1lbnQudGl0bGU9dGhpcy50aXRsZVN0b3JlKX1nZXQgdGl0bGUoKXtyZXR1cm4gdGhpcy50aXRsZVN0b3JlfWNvbnN0cnVjdG9yKGUsYSl7dGhpcy50YWdzPVtdLHRoaXMuc3RhdGU9ImRpc2FibGVkIix0aGlzLnRhZ01hbmFnZXJSZWY9ZX1hZGRUYWcoZSl7aWYoZSBpbnN0YW5jZW9mIEFycmF5KWZvcihsZXQgYSBvZiBlKXRoaXMuYWRkVGFnKGEpO2Vsc2UgdGhpcy50YWdzLnB1c2goZSksdGhpcy5zdGF0ZT09PSJlbmFibGVkIiYmZS5hcHBlbmRUb0RvbSgpfWFzeW5jIGFkZENvbXBhbnlJbmZvKGUpe3RoaXMuYWRkVGFnKE4wLmNyZWF0ZUNvbXBhbnlKc29uTGQoZSkpLHRoaXMuYWRkVGFnKG5ldyBjYSgib2c6dHlwZSIsImJ1c2luZXNzLmJ1c2luZXNzIikpLHRoaXMuYWRkVGFnKG5ldyBjYSgib2c6dGl0bGUiLGUubmFtZSkpLHRoaXMuYWRkVGFnKG5ldyBjYSgib2c6dXJsIixlLmNvbnRhY3Qud2Vic2l0ZSkpLHRoaXMuYWRkVGFnKG5ldyBjYSgib2c6aW1hZ2UiLGUuY29udGFjdC5sb2dvVXJsKSksdGhpcy5hZGRUYWcobmV3IGNhKCJidXNpbmVzczpjb250YWN0X2RhdGE6c3RyZWV0X2FkZHJlc3MiLGAke2UuY29udGFjdC5hZGRyZXNzLnN0cmVldE5hbWV9ICR7ZS5jb250YWN0LmFkZHJlc3MuaG91c2VOdW1iZXJ9YCkpLHRoaXMuYWRkVGFnKG5ldyBjYSgiYnVzaW5lc3M6Y29udGFjdF9kYXRhOmxvY2FsaXR5IixlLmNvbnRhY3QuYWRkcmVzcy5wb3N0YWxDb2RlKSksdGhpcy5hZGRUYWcobmV3IGNhKCJidXNpbmVzczpjb250YWN0X2RhdGE6cmVnaW9uIixlLmNvbnRhY3QuYWRkcmVzcy5jaXR5KSksdGhpcy5hZGRUYWcobmV3IGNhKCJidXNpbmVzczpjb250YWN0X2RhdGE6cG9zdGFsX2NvZGUiLGUuY29udGFjdC5hZGRyZXNzLnBvc3RhbENvZGUpKSx0aGlzLmFkZFRhZyhuZXcgY2EoImJ1c2luZXNzOmNvbnRhY3RfZGF0YTpjb3VudHJ5X25hbWUiLGUuY29udGFjdC5hZGRyZXNzLmNvdW50cnkpKX1hZGROZXdzQXJ0aWNsZUluZm8oZSl7dGhpcy5hZGRUYWcoTjAuY3JlYXRlTmV3c0FydGljbGVKc29uTGQoZSkpLHRoaXMuYWRkVGFnKGNhLmNyZWF0ZU5ld3NBcnRpY2xlT2dUYWdzKGUpKX1hZGRQcm9kdWN0SW5mbyhlLGEpe3RoaXMuYWRkVGFnKE4wLmNyZWF0ZVByb2R1Y3RKc29uTGQoZSxhKSksdGhpcy5hZGRUYWcoY2EuY3JlYXRlUHJvZHVjdE9nVGFncyhlKSl9YXN5bmMgZW5hYmxlKCl7dGhpcy50aXRsZSYmKGRvY3VtZW50LnRpdGxlPXRoaXMudGl0bGUpO2ZvcihsZXQgZSBvZiB0aGlzLnRhZ3MpZS5hcHBlbmRUb0RvbSgpO3RoaXMuc3RhdGU9ImVuYWJsZWQifWFzeW5jIGRpc2FibGUoKXtmb3IobGV0IGUgb2YgdGhpcy50YWdzKWUucmVtb3ZlRnJvbURvbSgpO3RoaXMuc3RhdGU9ImRpc2FibGVkIn19fSk7dmFyIGRpLFNBPWIoKCk9PntwNSgpO2RpPWNsYXNzIGV4dGVuZHMgWm57Y29uc3RydWN0b3IoZSxhKXtzdXBlcigpO2xldCBpPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIm1ldGEiKTtpLm5hbWU9ZSxpLmNvbnRlbnQ9YSx0aGlzLmVsZW1lbnRSZWY9aX19fSk7dmFyIFh1LGtBPWIoKCk9Pnt6QSgpO2tzKCk7R3UoKTtTQSgpO1l1KCk7WnUoKTtYdT1jbGFzc3tjb25zdHJ1Y3Rvcigpe3RoaXMuZ2xvYmFsTGV2ZWw9bmV3IEszKHRoaXMsImdsb2JhbCIpLHRoaXMuYmFzZUxldmVsPW5ldyBLMyh0aGlzLCJiYXNlIil9YXN5bmMgc2V0dXAoZSl7c3dpdGNoKHRoaXMuZ2xvYmFsTGV2ZWwuYWRkVGFnKG5ldyBkaSgiZ29vZ2xlIiwibm90cmFuc2xhdGUiKSksdGhpcy5nbG9iYWxMZXZlbC5hZGRUYWcobmV3IGRpKCJyZXZpc2l0LWFmdGVyIiwiMSBkYXlzIikpLGUudHdpdHRlckhhbmRsZSYmKHRoaXMuZ2xvYmFsTGV2ZWwuYWRkVGFnKG5ldyBkaSgidHdpdHRlcjpjYXJkIiwic3VtbWFyeV9sYXJnZV9pbWFnZSIpKSx0aGlzLmdsb2JhbExldmVsLmFkZFRhZyhuZXcgZGkoInR3aXR0ZXI6c2l0ZSIsZS50d2l0dGVySGFuZGxlKSksdGhpcy5nbG9iYWxMZXZlbC5hZGRUYWcobmV3IGRpKCJ0d2l0dGVyOmNyZWF0b3IiLGUudHdpdHRlckhhbmRsZSkpKSx0aGlzLmJhc2VMZXZlbC50aXRsZT1lLnRpdGxlLGUuZGVzY3JpcHRpb24mJnRoaXMuYmFzZUxldmVsLmFkZFRhZyhuZXcgZGkoImRlc2NyaXB0aW9uIixlLmRlc2NyaXB0aW9uKSksZS5jYW5vbmljYWxEb21haW4mJnRoaXMuYmFzZUxldmVsLmFkZFRhZyhuZXcgZGkoImNhbm9uaWNhbCIsZS5jYW5vbmljYWxEb21haW4pKSwhMCl7Y2FzZShlLmxkQ29tcGFueSYmIWUubGRQcm9kdWN0KTp0aGlzLmJhc2VMZXZlbC5hZGRDb21wYW55SW5mbyhlLmxkQ29tcGFueSk7YnJlYWs7Y2FzZSEhZS5sZFByb2R1Y3Q6dGhpcy5iYXNlTGV2ZWwuYWRkUHJvZHVjdEluZm8oZS5sZFByb2R1Y3QsZS5sZENvbXBhbnkpO2JyZWFrfWF3YWl0IHRoaXMuZ2xvYmFsTGV2ZWwuZW5hYmxlKCksdGhpcy5hY3RpdmVMZXZlbD10aGlzLmJhc2VMZXZlbCxhd2FpdCB0aGlzLmFjdGl2ZUxldmVsLmVuYWJsZSgpfWFzeW5jIHNldFN1YlBhZ2VMZXZlbChlKXtsZXQgYT1uZXcgSzModGhpcywic3VicGFnZSIpO3JldHVybiBhLnRpdGxlPWUudGl0bGUsZS5kZXNjcmlwdGlvbiYmYS5hZGRUYWcobmV3IGRpKCJkZXNjcmlwdGlvbiIsZS5kZXNjcmlwdGlvbikpLGF3YWl0IHRoaXMuYWN0aXZlTGV2ZWwuZGlzYWJsZSgpLHRoaXMuYWN0aXZlTGV2ZWw9YSxhd2FpdCB0aGlzLmFjdGl2ZUxldmVsLmVuYWJsZSgpLGF9YXN5bmMgcmV2ZXJ0VG9CYXNlTGV2ZWwoKXt0aGlzLmFjdGl2ZUxldmVsIT09dGhpcy5iYXNlTGV2ZWwmJihhd2FpdCB0aGlzLmFjdGl2ZUxldmVsLmRpc2FibGUoKSx0aGlzLmFjdGl2ZUxldmVsPXRoaXMuYmFzZUxldmVsLGF3YWl0IHRoaXMuYWN0aXZlTGV2ZWwuZW5hYmxlKCkpfX19KTt2YXIgdTUsZmNlPWIoKCk9PntrcygpO0d1KCk7a0EoKTt6QSgpO3U1PWNsYXNze2NvbnN0cnVjdG9yKGUpe3RoaXMudGFnTWFuYWdlcj1uZXcgWHUsdGhpcy5yZWFkeURlZmVycmVkPUkwLmRlZmVyKCksdGhpcy5yZWFkeUZvclNtYXJ0c3NyRGVmZXJyZWQ9STAuZGVmZXIoKSx0aGlzLnJlYWR5UHJvbWlzZT10aGlzLnJlYWR5RGVmZXJyZWQucHJvbWlzZSx0aGlzLnJlYWR5Rm9yU21hcnRzc3JQcm9taXNlPXRoaXMucmVhZHlGb3JTbWFydHNzckRlZmVycmVkLnByb21pc2UsdGhpcy5vcHRpb25zPWUsdGhpcy5zZXR1cCgpLnRoZW4oKCk9Pnt0aGlzLnJlYWR5RGVmZXJyZWQucmVzb2x2ZSgpLHRoaXMub3B0aW9ucy5zbWFydHNzcldhaXRGb3JSZWFkeVNpZ25hbHx8dGhpcy5yZWFkeUZvclNtYXJ0c3NyRGVmZXJyZWQucmVzb2x2ZSgpfSl9YXN5bmMgc2V0dXAoZSl7ZSYmKHRoaXMub3B0aW9ucz1lKSxhd2FpdCB0aGlzLnRhZ01hbmFnZXIuc2V0dXAodGhpcy5vcHRpb25zLm1ldGFPYmplY3QpfXJldmVydFRvQmFzZUxldmVsKCl7dGhpcy50YWdNYW5hZ2VyLnJldmVydFRvQmFzZUxldmVsKCl9YXN5bmMgc2V0U3ViTGV2ZWwoZSl7cmV0dXJuIGF3YWl0IHRoaXMudGFnTWFuYWdlci5zZXRTdWJQYWdlTGV2ZWwoZSl9Zmxhc2hUaXRsZShlKXt9aW5mb3JtUmVhZHlGb3JTbWFydHNzcigpe3RoaXMub3B0aW9ucy5zbWFydHNzcldhaXRGb3JSZWFkeVNpZ25hbHx8Y29uc29sZS5lcnJvcigiWW91IGhhdmUgbm90IGluZGljYXRlZCB0aGF0IHlvdSBpbmZvcm0gc21hcnRzc3IgYnkgYSBkZWRpY2F0ZWQgc2lnbmFsISBQbGVhc2UgY29uc2lkZXIgZG9pbmcgc28hIiksdGhpcy5yZWFkeUZvclNtYXJ0c3NyRGVmZXJyZWQucmVzb2x2ZSgpfX19KTt2YXIgQ0EsbWNlPWIoKCk9PntrcygpO0NBPWNsYXNze319KTt2YXIgX0E9e307R2UoX0Ese0pzb25MZFRhZzooKT0+TjAsTWV0YVRhZzooKT0+ZGksT3BlbmdyYXBoVGFnOigpPT5jYSxUaXRsZTooKT0+Q0EsV2ViU2V0dXA6KCk9PnU1fSk7dmFyIEt1PWIoKCk9PntmY2UoKTtTQSgpO1p1KCk7WXUoKTttY2UoKX0pO3ZhciBnY2UsUXU9YigoKT0+e3VyKCk7SWsoKTtjMigpO0RpKCk7ckMoKTtnY2U9VTEobkMoKSwxKX0pO3ZhciBRMyxUQT1iKCgpPT57UXUoKTtRMz1jbGFzcyB0e2NvbnN0cnVjdG9yKCl7dGhpcy5tYXBPYmplY3Q9e319aXNVbmlxdWVLZXkoZSl7cmV0dXJuIXRoaXMubWFwT2JqZWN0W2VdfWFkZFRvTWFwKGUsYSxpKXtyZXR1cm4gdGhpcy5pc1VuaXF1ZUtleShlKXx8aSYmaS5mb3JjZT8odGhpcy5tYXBPYmplY3RbZV09YSwhMCk6ITF9Z2V0QnlLZXkoZSl7cmV0dXJuIHRoaXMubWFwT2JqZWN0W2VdfXJlbW92ZUZyb21NYXAoZSl7bGV0IGE9dGhpcy5nZXRCeUtleShlKTtyZXR1cm4gZGVsZXRlIHRoaXMubWFwT2JqZWN0W2VdLGF9Z2V0S2V5cygpe2xldCBlPVtdO2ZvcihsZXQgYSBpbiB0aGlzLm1hcE9iamVjdCl0aGlzLm1hcE9iamVjdFthXSYmZS5wdXNoKGEpO3JldHVybiBlfWNsZWFuKCl7dGhpcy5tYXBPYmplY3Q9e319Y29uY2F0KGUpe2xldCBhPW5ldyB0O2ZvcihsZXQgaSBvZiB0aGlzLmdldEtleXMoKSlhLmFkZFRvTWFwKGksdGhpcy5nZXRCeUtleShpKSk7Zm9yKGxldCBpIG9mIGUuZ2V0S2V5cygpKWEuYWRkVG9NYXAoaSxlLmdldEJ5S2V5KGkpLHtmb3JjZTohMH0pO3JldHVybiBhfWFkZEFsbEZyb21PdGhlcihlKXtmb3IobGV0IGEgb2YgZS5nZXRLZXlzKCkpdGhpcy5hZGRUb01hcChhLGUuZ2V0QnlLZXkoYSkse2ZvcmNlOiEwfSl9YXN5bmMgZmluZChlKXtmb3IobGV0IGEgb2YgdGhpcy5nZXRLZXlzKCkpe2xldCBpPXRoaXMuZ2V0QnlLZXkoYSk7aWYoYXdhaXQgZShpKSlyZXR1cm4gaX19fX0pO3ZhciBuQnQsSnUsdmNlPWIoKCk9PntRdSgpO1RBKCk7bkJ0PSh0PSJ1bmkiKT0+YCR7dH14eHh4eHh4eHh4eGAucmVwbGFjZSgvW3h5XS9nLGU9PntsZXQgYT1NYXRoLnJhbmRvbSgpKjE2fDA7cmV0dXJuKGU9PT0ieCI/YTphJjN8OCkudG9TdHJpbmcoMTYpfSksSnU9Y2xhc3MgdHtjb25zdHJ1Y3Rvcigpe3RoaXMuZmFzdE1hcD1uZXcgUTMsdGhpcy5ldmVudFN1YmplY3Q9bmV3IEF0LnJ4anMuU3ViamVjdH1hZGRNYXBwZWRVbmlxdWUoZSxhKXt0aGlzLmZhc3RNYXAuYWRkVG9NYXAoZSxhKX1nZXRNYXBwZWRVbmlxdWUoZSl7cmV0dXJuIHRoaXMuZmFzdE1hcC5nZXRCeUtleShlKX1yZW1vdmVNYXBwZWRVbmlxdWUoZSl7bGV0IGE9dGhpcy5nZXRNYXBwZWRVbmlxdWUoZSl9YWRkKGUpe2ZvcihsZXQgaSBvZiB0aGlzLmZhc3RNYXAuZ2V0S2V5cygpKWlmKHRoaXMuZmFzdE1hcC5nZXRCeUtleShpKT09PWUpcmV0dXJuIGk7bGV0IGE9bkJ0KCJrZXkiKTtyZXR1cm4gdGhpcy5hZGRNYXBwZWRVbmlxdWUoYSxlKSx0aGlzLmV2ZW50U3ViamVjdC5uZXh0KHtvcGVyYXRpb246ImFkZCIscGF5bG9hZDplfSksYX1hZGRBcnJheShlKXtmb3IobGV0IGEgb2YgZSl0aGlzLmFkZChhKX1jaGVja0Zvck9iamVjdChlKXtyZXR1cm4hIXRoaXMuZ2V0S2V5Rm9yT2JqZWN0KGUpfWdldEtleUZvck9iamVjdChlKXtsZXQgYT1udWxsO2ZvcihsZXQgaSBvZiB0aGlzLmZhc3RNYXAuZ2V0S2V5cygpKWlmKCFhJiZ0aGlzLmZhc3RNYXAuZ2V0QnlLZXkoaSk9PT1lKWE9aTtlbHNlIGNvbnRpbnVlO3JldHVybiBhfWFzeW5jIGZpbmQoZSl7cmV0dXJuIHRoaXMuZmFzdE1hcC5maW5kKGUpfWZpbmRTeW5jKGUpe2ZvcihsZXQgYSBvZiB0aGlzLmZhc3RNYXAuZ2V0S2V5cygpKWlmKGUodGhpcy5mYXN0TWFwLmdldEJ5S2V5KGEpKSlyZXR1cm4gdGhpcy5nZXRNYXBwZWRVbmlxdWUoYSl9YXN5bmMgZmluZE9uZUFuZFJlbW92ZShlKXtsZXQgYT1hd2FpdCB0aGlzLmZpbmQoZSk7cmV0dXJuIGEmJnRoaXMucmVtb3ZlKGEpLGF9ZmluZE9uZUFuZFJlbW92ZVN5bmMoZSl7bGV0IGE9dGhpcy5maW5kU3luYyhlKTtyZXR1cm4gYSYmdGhpcy5yZW1vdmUoYSksYX1hc3luYyBmb3JFYWNoKGUpe2ZvcihsZXQgYSBvZiB0aGlzLmZhc3RNYXAuZ2V0S2V5cygpKWF3YWl0IGUodGhpcy5mYXN0TWFwLmdldEJ5S2V5KGEpKX1nZXRPbmVBbmRSZW1vdmUoKXtsZXQgZT10aGlzLmZhc3RNYXAuZ2V0S2V5cygpO2lmKGUubGVuZ3RoPT09MClyZXR1cm4gbnVsbDt7bGV0IGE9ZVswXSxpPXRoaXMuZmFzdE1hcC5yZW1vdmVGcm9tTWFwKGEpO3JldHVybiB0aGlzLmV2ZW50U3ViamVjdC5uZXh0KHtvcGVyYXRpb246InJlbW92ZSIscGF5bG9hZDppfSksaX19Z2V0QXJyYXkoKXtsZXQgZT1bXTtmb3IobGV0IGEgb2YgdGhpcy5mYXN0TWFwLmdldEtleXMoKSllLnB1c2godGhpcy5mYXN0TWFwLmdldEJ5S2V5KGEpKTtyZXR1cm4gZX1pc0VtcHR5KCl7cmV0dXJuIHRoaXMuZmFzdE1hcC5nZXRLZXlzKCkubGVuZ3RoPT09MH1yZW1vdmUoZSl7aWYodGhpcy5jaGVja0Zvck9iamVjdChlKSl7bGV0IGE9dGhpcy5nZXRLZXlGb3JPYmplY3QoZSksaT10aGlzLmZhc3RNYXAucmVtb3ZlRnJvbU1hcChhKTtyZXR1cm4gdGhpcy5ldmVudFN1YmplY3QubmV4dCh7b3BlcmF0aW9uOiJyZW1vdmUiLHBheWxvYWQ6aX0pLGl9cmV0dXJuIG51bGx9d2lwZSgpe2ZvcihsZXQgZSBvZiB0aGlzLmZhc3RNYXAuZ2V0S2V5cygpKXRoaXMuZmFzdE1hcC5yZW1vdmVGcm9tTWFwKGUpfWNvbmNhdChlKXtsZXQgYT1uZXcgdDtyZXR1cm4gYS5mYXN0TWFwLmFkZEFsbEZyb21PdGhlcih0aGlzLmZhc3RNYXApLGEuZmFzdE1hcC5hZGRBbGxGcm9tT3RoZXIoZS5mYXN0TWFwKSxhfWFkZEFsbEZyb21PdGhlcihlKXt0aGlzLmZhc3RNYXAuYWRkQWxsRnJvbU90aGVyKGUuZmFzdE1hcCl9fX0pO3ZhciBlZix5Y2U9YigoKT0+e1F1KCk7ZWY9Y2xhc3N7Y29uc3RydWN0b3IoKXt0aGlzLl9zdHJpbmdBcnJheT1bXSx0aGlzLl90cmlnZ2VyVW50aWxUcnVlRnVuY3Rpb25BcnJheT1bXX1hZGRTdHJpbmcoZSl7dGhpcy5fc3RyaW5nQXJyYXkucHVzaChlKSx0aGlzLm5vdGlmeVRyaWdnZXIoKX1hZGRTdHJpbmdBcnJheShlKXtmb3IobGV0IGEgb2YgZSl0aGlzLmFkZFN0cmluZyhhKX1yZW1vdmVTdHJpbmcoZSl7Zm9yKGxldCBhIGluIHRoaXMuX3N0cmluZ0FycmF5KXRoaXMuX3N0cmluZ0FycmF5W2FdPT09ZSYmdGhpcy5fc3RyaW5nQXJyYXkuc3BsaWNlKHBhcnNlSW50KGEpLDEpO3RoaXMubm90aWZ5VHJpZ2dlcigpfXdpcGUoKXt0aGlzLl9zdHJpbmdBcnJheT1bXSx0aGlzLm5vdGlmeVRyaWdnZXIoKX1jaGVja1N0cmluZyhlKXtyZXR1cm4gdGhpcy5fc3RyaW5nQXJyYXkuaW5kZXhPZihlKSE9PS0xfWNoZWNrTWluaW1hdGNoKGUpe2xldCBhPW5ldyBycy5TbWFydE1hdGNoKGUpLGk9ITE7Zm9yKGxldCByIG9mIHRoaXMuX3N0cmluZ0FycmF5KWEubWF0Y2gocikmJihpPSEwKTtyZXR1cm4gaX1jaGVja0lzRW1wdHkoKXtyZXR1cm4gdGhpcy5fc3RyaW5nQXJyYXkubGVuZ3RoPT09MH1nZXRTdHJpbmdBcnJheSgpe2xldCBlPVtdO2ZvcihsZXQgYSBvZiB0aGlzLl9zdHJpbmdBcnJheSllLnB1c2goYSk7cmV0dXJuIGV9cmVnaXN0ZXJVbnRpbFRydWUoZSxhKXtsZXQgaT1CZS5kZWZlcigpO3JldHVybiB0aGlzLl90cmlnZ2VyVW50aWxUcnVlRnVuY3Rpb25BcnJheS5wdXNoKCgpPT57bGV0IHI9ZSh0aGlzLmdldFN0cmluZ0FycmF5KCkpO3JldHVybiByPT09ITAmJihhJiZhKCksaS5yZXNvbHZlKCkpLHJ9KSx0aGlzLm5vdGlmeVRyaWdnZXIoKSxpLnByb21pc2V9bm90aWZ5VHJpZ2dlcigpe2xldCBlPXRoaXMuX3RyaWdnZXJVbnRpbFRydWVGdW5jdGlvbkFycmF5LmZpbHRlcihhPT4hYSgpKTt0aGlzLl90cmlnZ2VyVW50aWxUcnVlRnVuY3Rpb25BcnJheT1lfX19KTtmdW5jdGlvbiB4Y2UodCxlLGEpe3JldHVybiBNYXRoLm1heCh0LE1hdGgubWluKGUsYSkpfWZ1bmN0aW9uIGxCdCh0LGUsYSl7cmV0dXJuKDEtYSkqdCthKmV9ZnVuY3Rpb24gY0J0KHQsZSxhLGkpe3JldHVybiBsQnQodCxlLDEtTWF0aC5leHAoLWEqaSkpfWZ1bmN0aW9uIGRCdCh0LGUpe3JldHVybih0JWUrZSklZX1mdW5jdGlvbiBwQnQodCxlKXtsZXQgYTtyZXR1cm4gZnVuY3Rpb24oLi4uaSl7bGV0IHI9dGhpcztjbGVhclRpbWVvdXQoYSksYT1zZXRUaW1lb3V0KCgpPT57YT12b2lkIDAsdC5hcHBseShyLGkpfSxlKX19dmFyIG9CdCxoQnQsdUJ0LHdjZSxNY2UsWG4sZkJ0LHpjZSxmNSxrY2U9YigoKT0+e29CdD0iMS4zLjE3IjtoQnQ9Y2xhc3N7aXNSdW5uaW5nPSExO3ZhbHVlPTA7ZnJvbT0wO3RvPTA7Y3VycmVudFRpbWU9MDtsZXJwO2R1cmF0aW9uO2Vhc2luZztvblVwZGF0ZTthZHZhbmNlKHQpe2lmKCF0aGlzLmlzUnVubmluZylyZXR1cm47bGV0IGU9ITE7aWYodGhpcy5kdXJhdGlvbiYmdGhpcy5lYXNpbmcpe3RoaXMuY3VycmVudFRpbWUrPXQ7bGV0IGE9eGNlKDAsdGhpcy5jdXJyZW50VGltZS90aGlzLmR1cmF0aW9uLDEpO2U9YT49MTtsZXQgaT1lPzE6dGhpcy5lYXNpbmcoYSk7dGhpcy52YWx1ZT10aGlzLmZyb20rKHRoaXMudG8tdGhpcy5mcm9tKSppfWVsc2UgdGhpcy5sZXJwPyh0aGlzLnZhbHVlPWNCdCh0aGlzLnZhbHVlLHRoaXMudG8sdGhpcy5sZXJwKjYwLHQpLE1hdGgucm91bmQodGhpcy52YWx1ZSk9PT10aGlzLnRvJiYodGhpcy52YWx1ZT10aGlzLnRvLGU9ITApKToodGhpcy52YWx1ZT10aGlzLnRvLGU9ITApO2UmJnRoaXMuc3RvcCgpLHRoaXMub25VcGRhdGU/Lih0aGlzLnZhbHVlLGUpfXN0b3AoKXt0aGlzLmlzUnVubmluZz0hMX1mcm9tVG8odCxlLHtsZXJwOmEsZHVyYXRpb246aSxlYXNpbmc6cixvblN0YXJ0OnMsb25VcGRhdGU6bn0pe3RoaXMuZnJvbT10aGlzLnZhbHVlPXQsdGhpcy50bz1lLHRoaXMubGVycD1hLHRoaXMuZHVyYXRpb249aSx0aGlzLmVhc2luZz1yLHRoaXMuY3VycmVudFRpbWU9MCx0aGlzLmlzUnVubmluZz0hMCxzPy4oKSx0aGlzLm9uVXBkYXRlPW59fTt1QnQ9Y2xhc3N7Y29uc3RydWN0b3IodCxlLHthdXRvUmVzaXplOmE9ITAsZGVib3VuY2U6aT0yNTB9PXt9KXt0aGlzLndyYXBwZXI9dCx0aGlzLmNvbnRlbnQ9ZSxhJiYodGhpcy5kZWJvdW5jZWRSZXNpemU9cEJ0KHRoaXMucmVzaXplLGkpLHRoaXMud3JhcHBlciBpbnN0YW5jZW9mIFdpbmRvdz93aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigicmVzaXplIix0aGlzLmRlYm91bmNlZFJlc2l6ZSwhMSk6KHRoaXMud3JhcHBlclJlc2l6ZU9ic2VydmVyPW5ldyBSZXNpemVPYnNlcnZlcih0aGlzLmRlYm91bmNlZFJlc2l6ZSksdGhpcy53cmFwcGVyUmVzaXplT2JzZXJ2ZXIub2JzZXJ2ZSh0aGlzLndyYXBwZXIpKSx0aGlzLmNvbnRlbnRSZXNpemVPYnNlcnZlcj1uZXcgUmVzaXplT2JzZXJ2ZXIodGhpcy5kZWJvdW5jZWRSZXNpemUpLHRoaXMuY29udGVudFJlc2l6ZU9ic2VydmVyLm9ic2VydmUodGhpcy5jb250ZW50KSksdGhpcy5yZXNpemUoKX13aWR0aD0wO2hlaWdodD0wO3Njcm9sbEhlaWdodD0wO3Njcm9sbFdpZHRoPTA7ZGVib3VuY2VkUmVzaXplO3dyYXBwZXJSZXNpemVPYnNlcnZlcjtjb250ZW50UmVzaXplT2JzZXJ2ZXI7ZGVzdHJveSgpe3RoaXMud3JhcHBlclJlc2l6ZU9ic2VydmVyPy5kaXNjb25uZWN0KCksdGhpcy5jb250ZW50UmVzaXplT2JzZXJ2ZXI/LmRpc2Nvbm5lY3QoKSx0aGlzLndyYXBwZXI9PT13aW5kb3cmJnRoaXMuZGVib3VuY2VkUmVzaXplJiZ3aW5kb3cucmVtb3ZlRXZlbnRMaXN0ZW5lcigicmVzaXplIix0aGlzLmRlYm91bmNlZFJlc2l6ZSwhMSl9cmVzaXplPSgpPT57dGhpcy5vbldyYXBwZXJSZXNpemUoKSx0aGlzLm9uQ29udGVudFJlc2l6ZSgpfTtvbldyYXBwZXJSZXNpemU9KCk9Pnt0aGlzLndyYXBwZXIgaW5zdGFuY2VvZiBXaW5kb3c/KHRoaXMud2lkdGg9d2luZG93LmlubmVyV2lkdGgsdGhpcy5oZWlnaHQ9d2luZG93LmlubmVySGVpZ2h0KToodGhpcy53aWR0aD10aGlzLndyYXBwZXIuY2xpZW50V2lkdGgsdGhpcy5oZWlnaHQ9dGhpcy53cmFwcGVyLmNsaWVudEhlaWdodCl9O29uQ29udGVudFJlc2l6ZT0oKT0+e3RoaXMud3JhcHBlciBpbnN0YW5jZW9mIFdpbmRvdz8odGhpcy5zY3JvbGxIZWlnaHQ9dGhpcy5jb250ZW50LnNjcm9sbEhlaWdodCx0aGlzLnNjcm9sbFdpZHRoPXRoaXMuY29udGVudC5zY3JvbGxXaWR0aCk6KHRoaXMuc2Nyb2xsSGVpZ2h0PXRoaXMud3JhcHBlci5zY3JvbGxIZWlnaHQsdGhpcy5zY3JvbGxXaWR0aD10aGlzLndyYXBwZXIuc2Nyb2xsV2lkdGgpfTtnZXQgbGltaXQoKXtyZXR1cm57eDp0aGlzLnNjcm9sbFdpZHRoLXRoaXMud2lkdGgseTp0aGlzLnNjcm9sbEhlaWdodC10aGlzLmhlaWdodH19fSx3Y2U9Y2xhc3N7ZXZlbnRzPXt9O2VtaXQodCwuLi5lKXtsZXQgYT10aGlzLmV2ZW50c1t0XXx8W107Zm9yKGxldCBpPTAscj1hLmxlbmd0aDtpPHI7aSsrKWFbaV0/LiguLi5lKX1vbih0LGUpe3JldHVybiB0aGlzLmV2ZW50c1t0XT8ucHVzaChlKXx8KHRoaXMuZXZlbnRzW3RdPVtlXSksKCk9Pnt0aGlzLmV2ZW50c1t0XT10aGlzLmV2ZW50c1t0XT8uZmlsdGVyKGE9PmUhPT1hKX19b2ZmKHQsZSl7dGhpcy5ldmVudHNbdF09dGhpcy5ldmVudHNbdF0/LmZpbHRlcihhPT5lIT09YSl9ZGVzdHJveSgpe3RoaXMuZXZlbnRzPXt9fX0sTWNlPTEwMC82LFhuPXtwYXNzaXZlOiExfSxmQnQ9Y2xhc3N7Y29uc3RydWN0b3IodCxlPXt3aGVlbE11bHRpcGxpZXI6MSx0b3VjaE11bHRpcGxpZXI6MX0pe3RoaXMuZWxlbWVudD10LHRoaXMub3B0aW9ucz1lLHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCJyZXNpemUiLHRoaXMub25XaW5kb3dSZXNpemUsITEpLHRoaXMub25XaW5kb3dSZXNpemUoKSx0aGlzLmVsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigid2hlZWwiLHRoaXMub25XaGVlbCxYbiksdGhpcy5lbGVtZW50LmFkZEV2ZW50TGlzdGVuZXIoInRvdWNoc3RhcnQiLHRoaXMub25Ub3VjaFN0YXJ0LFhuKSx0aGlzLmVsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigidG91Y2htb3ZlIix0aGlzLm9uVG91Y2hNb3ZlLFhuKSx0aGlzLmVsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigidG91Y2hlbmQiLHRoaXMub25Ub3VjaEVuZCxYbil9dG91Y2hTdGFydD17eDowLHk6MH07bGFzdERlbHRhPXt4OjAseTowfTt3aW5kb3c9e3dpZHRoOjAsaGVpZ2h0OjB9O2VtaXR0ZXI9bmV3IHdjZTtvbih0LGUpe3JldHVybiB0aGlzLmVtaXR0ZXIub24odCxlKX1kZXN0cm95KCl7dGhpcy5lbWl0dGVyLmRlc3Ryb3koKSx3aW5kb3cucmVtb3ZlRXZlbnRMaXN0ZW5lcigicmVzaXplIix0aGlzLm9uV2luZG93UmVzaXplLCExKSx0aGlzLmVsZW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcigid2hlZWwiLHRoaXMub25XaGVlbCxYbiksdGhpcy5lbGVtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoInRvdWNoc3RhcnQiLHRoaXMub25Ub3VjaFN0YXJ0LFhuKSx0aGlzLmVsZW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcigidG91Y2htb3ZlIix0aGlzLm9uVG91Y2hNb3ZlLFhuKSx0aGlzLmVsZW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcigidG91Y2hlbmQiLHRoaXMub25Ub3VjaEVuZCxYbil9b25Ub3VjaFN0YXJ0PXQ9PntsZXR7Y2xpZW50WDplLGNsaWVudFk6YX09dC50YXJnZXRUb3VjaGVzP3QudGFyZ2V0VG91Y2hlc1swXTp0O3RoaXMudG91Y2hTdGFydC54PWUsdGhpcy50b3VjaFN0YXJ0Lnk9YSx0aGlzLmxhc3REZWx0YT17eDowLHk6MH0sdGhpcy5lbWl0dGVyLmVtaXQoInNjcm9sbCIse2RlbHRhWDowLGRlbHRhWTowLGV2ZW50OnR9KX07b25Ub3VjaE1vdmU9dD0+e2xldHtjbGllbnRYOmUsY2xpZW50WTphfT10LnRhcmdldFRvdWNoZXM/dC50YXJnZXRUb3VjaGVzWzBdOnQsaT0tKGUtdGhpcy50b3VjaFN0YXJ0LngpKnRoaXMub3B0aW9ucy50b3VjaE11bHRpcGxpZXIscj0tKGEtdGhpcy50b3VjaFN0YXJ0LnkpKnRoaXMub3B0aW9ucy50b3VjaE11bHRpcGxpZXI7dGhpcy50b3VjaFN0YXJ0Lng9ZSx0aGlzLnRvdWNoU3RhcnQueT1hLHRoaXMubGFzdERlbHRhPXt4OmkseTpyfSx0aGlzLmVtaXR0ZXIuZW1pdCgic2Nyb2xsIix7ZGVsdGFYOmksZGVsdGFZOnIsZXZlbnQ6dH0pfTtvblRvdWNoRW5kPXQ9Pnt0aGlzLmVtaXR0ZXIuZW1pdCgic2Nyb2xsIix7ZGVsdGFYOnRoaXMubGFzdERlbHRhLngsZGVsdGFZOnRoaXMubGFzdERlbHRhLnksZXZlbnQ6dH0pfTtvbldoZWVsPXQ9PntsZXR7ZGVsdGFYOmUsZGVsdGFZOmEsZGVsdGFNb2RlOml9PXQscj1pPT09MT9NY2U6aT09PTI/dGhpcy53aW5kb3cud2lkdGg6MSxzPWk9PT0xP01jZTppPT09Mj90aGlzLndpbmRvdy5oZWlnaHQ6MTtlKj1yLGEqPXMsZSo9dGhpcy5vcHRpb25zLndoZWVsTXVsdGlwbGllcixhKj10aGlzLm9wdGlvbnMud2hlZWxNdWx0aXBsaWVyLHRoaXMuZW1pdHRlci5lbWl0KCJzY3JvbGwiLHtkZWx0YVg6ZSxkZWx0YVk6YSxldmVudDp0fSl9O29uV2luZG93UmVzaXplPSgpPT57dGhpcy53aW5kb3c9e3dpZHRoOndpbmRvdy5pbm5lcldpZHRoLGhlaWdodDp3aW5kb3cuaW5uZXJIZWlnaHR9fX0semNlPXQ9Pk1hdGgubWluKDEsMS4wMDEtTWF0aC5wb3coMiwtMTAqdCkpLGY1PWNsYXNze19pc1Njcm9sbGluZz0hMTtfaXNTdG9wcGVkPSExO19pc0xvY2tlZD0hMTtfcHJldmVudE5leHROYXRpdmVTY3JvbGxFdmVudD0hMTtfcmVzZXRWZWxvY2l0eVRpbWVvdXQ9bnVsbDtfcmFmSWQ9bnVsbDtpc1RvdWNoaW5nO3RpbWU9MDt1c2VyRGF0YT17fTtsYXN0VmVsb2NpdHk9MDt2ZWxvY2l0eT0wO2RpcmVjdGlvbj0wO29wdGlvbnM7dGFyZ2V0U2Nyb2xsO2FuaW1hdGVkU2Nyb2xsO2FuaW1hdGU9bmV3IGhCdDtlbWl0dGVyPW5ldyB3Y2U7ZGltZW5zaW9uczt2aXJ0dWFsU2Nyb2xsO2NvbnN0cnVjdG9yKHt3cmFwcGVyOnQ9d2luZG93LGNvbnRlbnQ6ZT1kb2N1bWVudC5kb2N1bWVudEVsZW1lbnQsZXZlbnRzVGFyZ2V0OmE9dCxzbW9vdGhXaGVlbDppPSEwLHN5bmNUb3VjaDpyPSExLHN5bmNUb3VjaExlcnA6cz0uMDc1LHRvdWNoSW5lcnRpYUV4cG9uZW50Om49MS43LGR1cmF0aW9uOm8sZWFzaW5nOmQsbGVycDpjPS4xLGluZmluaXRlOmg9ITEsb3JpZW50YXRpb246bD0idmVydGljYWwiLGdlc3R1cmVPcmllbnRhdGlvbjpmPWw9PT0iaG9yaXpvbnRhbCI/ImJvdGgiOiJ2ZXJ0aWNhbCIsdG91Y2hNdWx0aXBsaWVyOmc9MSx3aGVlbE11bHRpcGxpZXI6eT0xLGF1dG9SZXNpemU6dj0hMCxwcmV2ZW50Om0sdmlydHVhbFNjcm9sbDp4LG92ZXJzY3JvbGw6TT0hMCxhdXRvUmFmOlM9ITEsYW5jaG9yczpGPSExLGF1dG9Ub2dnbGU6Xz0hMSxhbGxvd05lc3RlZFNjcm9sbDprPSExLF9fZXhwZXJpbWVudGFsX19uYWl2ZURpbWVuc2lvbnM6Tj0hMSxuYWl2ZURpbWVuc2lvbnM6TD1OLHN0b3BJbmVydGlhT25OYXZpZ2F0ZTpBPSExfT17fSl7d2luZG93LmxlbmlzVmVyc2lvbj1vQnQsKCF0fHx0PT09ZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50KSYmKHQ9d2luZG93KSx0eXBlb2Ygbz09Im51bWJlciImJnR5cGVvZiBkIT0iZnVuY3Rpb24iP2Q9emNlOnR5cGVvZiBkPT0iZnVuY3Rpb24iJiZ0eXBlb2YgbyE9Im51bWJlciImJihvPTEpLHRoaXMub3B0aW9ucz17d3JhcHBlcjp0LGNvbnRlbnQ6ZSxldmVudHNUYXJnZXQ6YSxzbW9vdGhXaGVlbDppLHN5bmNUb3VjaDpyLHN5bmNUb3VjaExlcnA6cyx0b3VjaEluZXJ0aWFFeHBvbmVudDpuLGR1cmF0aW9uOm8sZWFzaW5nOmQsbGVycDpjLGluZmluaXRlOmgsZ2VzdHVyZU9yaWVudGF0aW9uOmYsb3JpZW50YXRpb246bCx0b3VjaE11bHRpcGxpZXI6Zyx3aGVlbE11bHRpcGxpZXI6eSxhdXRvUmVzaXplOnYscHJldmVudDptLHZpcnR1YWxTY3JvbGw6eCxvdmVyc2Nyb2xsOk0sYXV0b1JhZjpTLGFuY2hvcnM6RixhdXRvVG9nZ2xlOl8sYWxsb3dOZXN0ZWRTY3JvbGw6ayxuYWl2ZURpbWVuc2lvbnM6TCxzdG9wSW5lcnRpYU9uTmF2aWdhdGU6QX0sdGhpcy5kaW1lbnNpb25zPW5ldyB1QnQodCxlLHthdXRvUmVzaXplOnZ9KSx0aGlzLnVwZGF0ZUNsYXNzTmFtZSgpLHRoaXMudGFyZ2V0U2Nyb2xsPXRoaXMuYW5pbWF0ZWRTY3JvbGw9dGhpcy5hY3R1YWxTY3JvbGwsdGhpcy5vcHRpb25zLndyYXBwZXIuYWRkRXZlbnRMaXN0ZW5lcigic2Nyb2xsIix0aGlzLm9uTmF0aXZlU2Nyb2xsLCExKSx0aGlzLm9wdGlvbnMud3JhcHBlci5hZGRFdmVudExpc3RlbmVyKCJzY3JvbGxlbmQiLHRoaXMub25TY3JvbGxFbmQse2NhcHR1cmU6ITB9KSwodGhpcy5vcHRpb25zLmFuY2hvcnN8fHRoaXMub3B0aW9ucy5zdG9wSW5lcnRpYU9uTmF2aWdhdGUpJiZ0aGlzLm9wdGlvbnMud3JhcHBlci5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsdGhpcy5vbkNsaWNrLCExKSx0aGlzLm9wdGlvbnMud3JhcHBlci5hZGRFdmVudExpc3RlbmVyKCJwb2ludGVyZG93biIsdGhpcy5vblBvaW50ZXJEb3duLCExKSx0aGlzLnZpcnR1YWxTY3JvbGw9bmV3IGZCdChhLHt0b3VjaE11bHRpcGxpZXI6Zyx3aGVlbE11bHRpcGxpZXI6eX0pLHRoaXMudmlydHVhbFNjcm9sbC5vbigic2Nyb2xsIix0aGlzLm9uVmlydHVhbFNjcm9sbCksdGhpcy5vcHRpb25zLmF1dG9Ub2dnbGUmJih0aGlzLmNoZWNrT3ZlcmZsb3coKSx0aGlzLnJvb3RFbGVtZW50LmFkZEV2ZW50TGlzdGVuZXIoInRyYW5zaXRpb25lbmQiLHRoaXMub25UcmFuc2l0aW9uRW5kLHtwYXNzaXZlOiEwfSkpLHRoaXMub3B0aW9ucy5hdXRvUmFmJiYodGhpcy5fcmFmSWQ9cmVxdWVzdEFuaW1hdGlvbkZyYW1lKHRoaXMucmFmKSl9ZGVzdHJveSgpe3RoaXMuZW1pdHRlci5kZXN0cm95KCksdGhpcy5vcHRpb25zLndyYXBwZXIucmVtb3ZlRXZlbnRMaXN0ZW5lcigic2Nyb2xsIix0aGlzLm9uTmF0aXZlU2Nyb2xsLCExKSx0aGlzLm9wdGlvbnMud3JhcHBlci5yZW1vdmVFdmVudExpc3RlbmVyKCJzY3JvbGxlbmQiLHRoaXMub25TY3JvbGxFbmQse2NhcHR1cmU6ITB9KSx0aGlzLm9wdGlvbnMud3JhcHBlci5yZW1vdmVFdmVudExpc3RlbmVyKCJwb2ludGVyZG93biIsdGhpcy5vblBvaW50ZXJEb3duLCExKSwodGhpcy5vcHRpb25zLmFuY2hvcnN8fHRoaXMub3B0aW9ucy5zdG9wSW5lcnRpYU9uTmF2aWdhdGUpJiZ0aGlzLm9wdGlvbnMud3JhcHBlci5yZW1vdmVFdmVudExpc3RlbmVyKCJjbGljayIsdGhpcy5vbkNsaWNrLCExKSx0aGlzLnZpcnR1YWxTY3JvbGwuZGVzdHJveSgpLHRoaXMuZGltZW5zaW9ucy5kZXN0cm95KCksdGhpcy5jbGVhblVwQ2xhc3NOYW1lKCksdGhpcy5fcmFmSWQmJmNhbmNlbEFuaW1hdGlvbkZyYW1lKHRoaXMuX3JhZklkKX1vbih0LGUpe3JldHVybiB0aGlzLmVtaXR0ZXIub24odCxlKX1vZmYodCxlKXtyZXR1cm4gdGhpcy5lbWl0dGVyLm9mZih0LGUpfW9uU2Nyb2xsRW5kPXQ9Pnt0IGluc3RhbmNlb2YgQ3VzdG9tRXZlbnR8fCh0aGlzLmlzU2Nyb2xsaW5nPT09InNtb290aCJ8fHRoaXMuaXNTY3JvbGxpbmc9PT0hMSkmJnQuc3RvcFByb3BhZ2F0aW9uKCl9O2Rpc3BhdGNoU2Nyb2xsZW5kRXZlbnQ9KCk9Pnt0aGlzLm9wdGlvbnMud3JhcHBlci5kaXNwYXRjaEV2ZW50KG5ldyBDdXN0b21FdmVudCgic2Nyb2xsZW5kIix7YnViYmxlczp0aGlzLm9wdGlvbnMud3JhcHBlcj09PXdpbmRvdyxkZXRhaWw6e2xlbmlzU2Nyb2xsRW5kOiEwfX0pKX07Z2V0IG92ZXJmbG93KCl7bGV0IHQ9dGhpcy5pc0hvcml6b250YWw/Im92ZXJmbG93LXgiOiJvdmVyZmxvdy15IjtyZXR1cm4gZ2V0Q29tcHV0ZWRTdHlsZSh0aGlzLnJvb3RFbGVtZW50KVt0XX1jaGVja092ZXJmbG93KCl7WyJoaWRkZW4iLCJjbGlwIl0uaW5jbHVkZXModGhpcy5vdmVyZmxvdyk/dGhpcy5pbnRlcm5hbFN0b3AoKTp0aGlzLmludGVybmFsU3RhcnQoKX1vblRyYW5zaXRpb25FbmQ9dD0+e3QucHJvcGVydHlOYW1lLmluY2x1ZGVzKCJvdmVyZmxvdyIpJiZ0aGlzLmNoZWNrT3ZlcmZsb3coKX07c2V0U2Nyb2xsKHQpe3RoaXMuaXNIb3Jpem9udGFsP3RoaXMub3B0aW9ucy53cmFwcGVyLnNjcm9sbFRvKHtsZWZ0OnQsYmVoYXZpb3I6Imluc3RhbnQifSk6dGhpcy5vcHRpb25zLndyYXBwZXIuc2Nyb2xsVG8oe3RvcDp0LGJlaGF2aW9yOiJpbnN0YW50In0pfW9uQ2xpY2s9dD0+e2xldCBhPXQuY29tcG9zZWRQYXRoKCkuZmlsdGVyKGk9PmkgaW5zdGFuY2VvZiBIVE1MQW5jaG9yRWxlbWVudCYmaS5nZXRBdHRyaWJ1dGUoImhyZWYiKSk7aWYodGhpcy5vcHRpb25zLmFuY2hvcnMpe2xldCBpPWEuZmluZChyPT5yLmdldEF0dHJpYnV0ZSgiaHJlZiIpPy5pbmNsdWRlcygiIyIpKTtpZihpKXtsZXQgcj1pLmdldEF0dHJpYnV0ZSgiaHJlZiIpO2lmKHIpe2xldCBzPXR5cGVvZiB0aGlzLm9wdGlvbnMuYW5jaG9ycz09Im9iamVjdCImJnRoaXMub3B0aW9ucy5hbmNob3JzP3RoaXMub3B0aW9ucy5hbmNob3JzOnZvaWQgMCxuPWAjJHtyLnNwbGl0KCIjIilbMV19YDt0aGlzLnNjcm9sbFRvKG4scyl9fX10aGlzLm9wdGlvbnMuc3RvcEluZXJ0aWFPbk5hdmlnYXRlJiZhLmZpbmQocj0+ci5ob3N0PT09d2luZG93LmxvY2F0aW9uLmhvc3QpJiZ0aGlzLnJlc2V0KCl9O29uUG9pbnRlckRvd249dD0+e3QuYnV0dG9uPT09MSYmdGhpcy5yZXNldCgpfTtvblZpcnR1YWxTY3JvbGw9dD0+e2lmKHR5cGVvZiB0aGlzLm9wdGlvbnMudmlydHVhbFNjcm9sbD09ImZ1bmN0aW9uIiYmdGhpcy5vcHRpb25zLnZpcnR1YWxTY3JvbGwodCk9PT0hMSlyZXR1cm47bGV0e2RlbHRhWDplLGRlbHRhWTphLGV2ZW50Oml9PXQ7aWYodGhpcy5lbWl0dGVyLmVtaXQoInZpcnR1YWwtc2Nyb2xsIix7ZGVsdGFYOmUsZGVsdGFZOmEsZXZlbnQ6aX0pLGkuY3RybEtleXx8aS5sZW5pc1N0b3BQcm9wYWdhdGlvbilyZXR1cm47bGV0IHI9aS50eXBlLmluY2x1ZGVzKCJ0b3VjaCIpLHM9aS50eXBlLmluY2x1ZGVzKCJ3aGVlbCIpO3RoaXMuaXNUb3VjaGluZz1pLnR5cGU9PT0idG91Y2hzdGFydCJ8fGkudHlwZT09PSJ0b3VjaG1vdmUiO2xldCBuPWU9PT0wJiZhPT09MDtpZih0aGlzLm9wdGlvbnMuc3luY1RvdWNoJiZyJiZpLnR5cGU9PT0idG91Y2hzdGFydCImJm4mJiF0aGlzLmlzU3RvcHBlZCYmIXRoaXMuaXNMb2NrZWQpe3RoaXMucmVzZXQoKTtyZXR1cm59bGV0IGQ9dGhpcy5vcHRpb25zLmdlc3R1cmVPcmllbnRhdGlvbj09PSJ2ZXJ0aWNhbCImJmE9PT0wfHx0aGlzLm9wdGlvbnMuZ2VzdHVyZU9yaWVudGF0aW9uPT09Imhvcml6b250YWwiJiZlPT09MDtpZihufHxkKXJldHVybjtsZXQgYz1pLmNvbXBvc2VkUGF0aCgpO2M9Yy5zbGljZSgwLGMuaW5kZXhPZih0aGlzLnJvb3RFbGVtZW50KSk7bGV0IGg9dGhpcy5vcHRpb25zLnByZXZlbnQ7aWYoYy5maW5kKG09Pm0gaW5zdGFuY2VvZiBIVE1MRWxlbWVudCYmKHR5cGVvZiBoPT0iZnVuY3Rpb24iJiZoPy4obSl8fG0uaGFzQXR0cmlidXRlPy4oImRhdGEtbGVuaXMtcHJldmVudCIpfHxyJiZtLmhhc0F0dHJpYnV0ZT8uKCJkYXRhLWxlbmlzLXByZXZlbnQtdG91Y2giKXx8cyYmbS5oYXNBdHRyaWJ1dGU/LigiZGF0YS1sZW5pcy1wcmV2ZW50LXdoZWVsIil8fHRoaXMub3B0aW9ucy5hbGxvd05lc3RlZFNjcm9sbCYmdGhpcy5jaGVja05lc3RlZFNjcm9sbChtLHtkZWx0YVg6ZSxkZWx0YVk6YX0pKSkpcmV0dXJuO2lmKHRoaXMuaXNTdG9wcGVkfHx0aGlzLmlzTG9ja2VkKXtpLmNhbmNlbGFibGUmJmkucHJldmVudERlZmF1bHQoKTtyZXR1cm59aWYoISh0aGlzLm9wdGlvbnMuc3luY1RvdWNoJiZyfHx0aGlzLm9wdGlvbnMuc21vb3RoV2hlZWwmJnMpKXt0aGlzLmlzU2Nyb2xsaW5nPSJuYXRpdmUiLHRoaXMuYW5pbWF0ZS5zdG9wKCksaS5sZW5pc1N0b3BQcm9wYWdhdGlvbj0hMDtyZXR1cm59bGV0IGY9YTt0aGlzLm9wdGlvbnMuZ2VzdHVyZU9yaWVudGF0aW9uPT09ImJvdGgiP2Y9TWF0aC5hYnMoYSk+TWF0aC5hYnMoZSk/YTplOnRoaXMub3B0aW9ucy5nZXN0dXJlT3JpZW50YXRpb249PT0iaG9yaXpvbnRhbCImJihmPWUpLCghdGhpcy5vcHRpb25zLm92ZXJzY3JvbGx8fHRoaXMub3B0aW9ucy5pbmZpbml0ZXx8dGhpcy5vcHRpb25zLndyYXBwZXIhPT13aW5kb3cmJnRoaXMubGltaXQ+MCYmKHRoaXMuYW5pbWF0ZWRTY3JvbGw+MCYmdGhpcy5hbmltYXRlZFNjcm9sbDx0aGlzLmxpbWl0fHx0aGlzLmFuaW1hdGVkU2Nyb2xsPT09MCYmYT4wfHx0aGlzLmFuaW1hdGVkU2Nyb2xsPT09dGhpcy5saW1pdCYmYTwwKSkmJihpLmxlbmlzU3RvcFByb3BhZ2F0aW9uPSEwKSxpLmNhbmNlbGFibGUmJmkucHJldmVudERlZmF1bHQoKTtsZXQgZz1yJiZ0aGlzLm9wdGlvbnMuc3luY1RvdWNoLHY9ciYmaS50eXBlPT09InRvdWNoZW5kIjt2JiYoZj1NYXRoLnNpZ24odGhpcy52ZWxvY2l0eSkqTWF0aC5wb3coTWF0aC5hYnModGhpcy52ZWxvY2l0eSksdGhpcy5vcHRpb25zLnRvdWNoSW5lcnRpYUV4cG9uZW50KSksdGhpcy5zY3JvbGxUbyh0aGlzLnRhcmdldFNjcm9sbCtmLHtwcm9ncmFtbWF0aWM6ITEsLi4uZz97bGVycDp2P3RoaXMub3B0aW9ucy5zeW5jVG91Y2hMZXJwOjF9OntsZXJwOnRoaXMub3B0aW9ucy5sZXJwLGR1cmF0aW9uOnRoaXMub3B0aW9ucy5kdXJhdGlvbixlYXNpbmc6dGhpcy5vcHRpb25zLmVhc2luZ319KX07cmVzaXplKCl7dGhpcy5kaW1lbnNpb25zLnJlc2l6ZSgpLHRoaXMuYW5pbWF0ZWRTY3JvbGw9dGhpcy50YXJnZXRTY3JvbGw9dGhpcy5hY3R1YWxTY3JvbGwsdGhpcy5lbWl0KCl9ZW1pdCgpe3RoaXMuZW1pdHRlci5lbWl0KCJzY3JvbGwiLHRoaXMpfW9uTmF0aXZlU2Nyb2xsPSgpPT57aWYodGhpcy5fcmVzZXRWZWxvY2l0eVRpbWVvdXQhPT1udWxsJiYoY2xlYXJUaW1lb3V0KHRoaXMuX3Jlc2V0VmVsb2NpdHlUaW1lb3V0KSx0aGlzLl9yZXNldFZlbG9jaXR5VGltZW91dD1udWxsKSx0aGlzLl9wcmV2ZW50TmV4dE5hdGl2ZVNjcm9sbEV2ZW50KXt0aGlzLl9wcmV2ZW50TmV4dE5hdGl2ZVNjcm9sbEV2ZW50PSExO3JldHVybn1pZih0aGlzLmlzU2Nyb2xsaW5nPT09ITF8fHRoaXMuaXNTY3JvbGxpbmc9PT0ibmF0aXZlIil7bGV0IHQ9dGhpcy5hbmltYXRlZFNjcm9sbDt0aGlzLmFuaW1hdGVkU2Nyb2xsPXRoaXMudGFyZ2V0U2Nyb2xsPXRoaXMuYWN0dWFsU2Nyb2xsLHRoaXMubGFzdFZlbG9jaXR5PXRoaXMudmVsb2NpdHksdGhpcy52ZWxvY2l0eT10aGlzLmFuaW1hdGVkU2Nyb2xsLXQsdGhpcy5kaXJlY3Rpb249TWF0aC5zaWduKHRoaXMuYW5pbWF0ZWRTY3JvbGwtdCksdGhpcy5pc1N0b3BwZWR8fCh0aGlzLmlzU2Nyb2xsaW5nPSJuYXRpdmUiKSx0aGlzLmVtaXQoKSx0aGlzLnZlbG9jaXR5IT09MCYmKHRoaXMuX3Jlc2V0VmVsb2NpdHlUaW1lb3V0PXNldFRpbWVvdXQoKCk9Pnt0aGlzLmxhc3RWZWxvY2l0eT10aGlzLnZlbG9jaXR5LHRoaXMudmVsb2NpdHk9MCx0aGlzLmlzU2Nyb2xsaW5nPSExLHRoaXMuZW1pdCgpfSw0MDApKX19O3Jlc2V0KCl7dGhpcy5pc0xvY2tlZD0hMSx0aGlzLmlzU2Nyb2xsaW5nPSExLHRoaXMuYW5pbWF0ZWRTY3JvbGw9dGhpcy50YXJnZXRTY3JvbGw9dGhpcy5hY3R1YWxTY3JvbGwsdGhpcy5sYXN0VmVsb2NpdHk9dGhpcy52ZWxvY2l0eT0wLHRoaXMuYW5pbWF0ZS5zdG9wKCl9c3RhcnQoKXtpZih0aGlzLmlzU3RvcHBlZCl7aWYodGhpcy5vcHRpb25zLmF1dG9Ub2dnbGUpe3RoaXMucm9vdEVsZW1lbnQuc3R5bGUucmVtb3ZlUHJvcGVydHkoIm92ZXJmbG93Iik7cmV0dXJufXRoaXMuaW50ZXJuYWxTdGFydCgpfX1pbnRlcm5hbFN0YXJ0KCl7dGhpcy5pc1N0b3BwZWQmJih0aGlzLnJlc2V0KCksdGhpcy5pc1N0b3BwZWQ9ITEsdGhpcy5lbWl0KCkpfXN0b3AoKXtpZighdGhpcy5pc1N0b3BwZWQpe2lmKHRoaXMub3B0aW9ucy5hdXRvVG9nZ2xlKXt0aGlzLnJvb3RFbGVtZW50LnN0eWxlLnNldFByb3BlcnR5KCJvdmVyZmxvdyIsImNsaXAiKTtyZXR1cm59dGhpcy5pbnRlcm5hbFN0b3AoKX19aW50ZXJuYWxTdG9wKCl7dGhpcy5pc1N0b3BwZWR8fCh0aGlzLnJlc2V0KCksdGhpcy5pc1N0b3BwZWQ9ITAsdGhpcy5lbWl0KCkpfXJhZj10PT57bGV0IGU9dC0odGhpcy50aW1lfHx0KTt0aGlzLnRpbWU9dCx0aGlzLmFuaW1hdGUuYWR2YW5jZShlKi4wMDEpLHRoaXMub3B0aW9ucy5hdXRvUmFmJiYodGhpcy5fcmFmSWQ9cmVxdWVzdEFuaW1hdGlvbkZyYW1lKHRoaXMucmFmKSl9O3Njcm9sbFRvKHQse29mZnNldDplPTAsaW1tZWRpYXRlOmE9ITEsbG9jazppPSExLHByb2dyYW1tYXRpYzpyPSEwLGxlcnA6cz1yP3RoaXMub3B0aW9ucy5sZXJwOnZvaWQgMCxkdXJhdGlvbjpuPXI/dGhpcy5vcHRpb25zLmR1cmF0aW9uOnZvaWQgMCxlYXNpbmc6bz1yP3RoaXMub3B0aW9ucy5lYXNpbmc6dm9pZCAwLG9uU3RhcnQ6ZCxvbkNvbXBsZXRlOmMsZm9yY2U6aD0hMSx1c2VyRGF0YTpsfT17fSl7aWYoISgodGhpcy5pc1N0b3BwZWR8fHRoaXMuaXNMb2NrZWQpJiYhaCkpe2lmKHR5cGVvZiB0PT0ic3RyaW5nIiYmWyJ0b3AiLCJsZWZ0Iiwic3RhcnQiLCIjIl0uaW5jbHVkZXModCkpdD0wO2Vsc2UgaWYodHlwZW9mIHQ9PSJzdHJpbmciJiZbImJvdHRvbSIsInJpZ2h0IiwiZW5kIl0uaW5jbHVkZXModCkpdD10aGlzLmxpbWl0O2Vsc2V7bGV0IGY7aWYodHlwZW9mIHQ9PSJzdHJpbmciPyhmPWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IodCksZnx8KHQ9PT0iI3RvcCI/dD0wOmNvbnNvbGUud2FybigiTGVuaXM6IFRhcmdldCBub3QgZm91bmQiLHQpKSk6dCBpbnN0YW5jZW9mIEhUTUxFbGVtZW50JiZ0Py5ub2RlVHlwZSYmKGY9dCksZil7aWYodGhpcy5vcHRpb25zLndyYXBwZXIhPT13aW5kb3cpe2xldCB5PXRoaXMucm9vdEVsZW1lbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7ZS09dGhpcy5pc0hvcml6b250YWw/eS5sZWZ0OnkudG9wfWxldCBnPWYuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7dD0odGhpcy5pc0hvcml6b250YWw/Zy5sZWZ0OmcudG9wKSt0aGlzLmFuaW1hdGVkU2Nyb2xsfX1pZih0eXBlb2YgdD09Im51bWJlciIpe2lmKHQrPWUsdD1NYXRoLnJvdW5kKHQpLHRoaXMub3B0aW9ucy5pbmZpbml0ZSl7aWYocil7dGhpcy50YXJnZXRTY3JvbGw9dGhpcy5hbmltYXRlZFNjcm9sbD10aGlzLnNjcm9sbDtsZXQgZj10LXRoaXMuYW5pbWF0ZWRTY3JvbGw7Zj50aGlzLmxpbWl0LzI/dD10LXRoaXMubGltaXQ6ZjwtdGhpcy5saW1pdC8yJiYodD10K3RoaXMubGltaXQpfX1lbHNlIHQ9eGNlKDAsdCx0aGlzLmxpbWl0KTtpZih0PT09dGhpcy50YXJnZXRTY3JvbGwpe2Q/Lih0aGlzKSxjPy4odGhpcyk7cmV0dXJufWlmKHRoaXMudXNlckRhdGE9bD8/e30sYSl7dGhpcy5hbmltYXRlZFNjcm9sbD10aGlzLnRhcmdldFNjcm9sbD10LHRoaXMuc2V0U2Nyb2xsKHRoaXMuc2Nyb2xsKSx0aGlzLnJlc2V0KCksdGhpcy5wcmV2ZW50TmV4dE5hdGl2ZVNjcm9sbEV2ZW50KCksdGhpcy5lbWl0KCksYz8uKHRoaXMpLHRoaXMudXNlckRhdGE9e30scmVxdWVzdEFuaW1hdGlvbkZyYW1lKCgpPT57dGhpcy5kaXNwYXRjaFNjcm9sbGVuZEV2ZW50KCl9KTtyZXR1cm59cnx8KHRoaXMudGFyZ2V0U2Nyb2xsPXQpLHR5cGVvZiBuPT0ibnVtYmVyIiYmdHlwZW9mIG8hPSJmdW5jdGlvbiI/bz16Y2U6dHlwZW9mIG89PSJmdW5jdGlvbiImJnR5cGVvZiBuIT0ibnVtYmVyIiYmKG49MSksdGhpcy5hbmltYXRlLmZyb21Ubyh0aGlzLmFuaW1hdGVkU2Nyb2xsLHQse2R1cmF0aW9uOm4sZWFzaW5nOm8sbGVycDpzLG9uU3RhcnQ6KCk9PntpJiYodGhpcy5pc0xvY2tlZD0hMCksdGhpcy5pc1Njcm9sbGluZz0ic21vb3RoIixkPy4odGhpcyl9LG9uVXBkYXRlOihmLGcpPT57dGhpcy5pc1Njcm9sbGluZz0ic21vb3RoIix0aGlzLmxhc3RWZWxvY2l0eT10aGlzLnZlbG9jaXR5LHRoaXMudmVsb2NpdHk9Zi10aGlzLmFuaW1hdGVkU2Nyb2xsLHRoaXMuZGlyZWN0aW9uPU1hdGguc2lnbih0aGlzLnZlbG9jaXR5KSx0aGlzLmFuaW1hdGVkU2Nyb2xsPWYsdGhpcy5zZXRTY3JvbGwodGhpcy5zY3JvbGwpLHImJih0aGlzLnRhcmdldFNjcm9sbD1mKSxnfHx0aGlzLmVtaXQoKSxnJiYodGhpcy5yZXNldCgpLHRoaXMuZW1pdCgpLGM/Lih0aGlzKSx0aGlzLnVzZXJEYXRhPXt9LHJlcXVlc3RBbmltYXRpb25GcmFtZSgoKT0+e3RoaXMuZGlzcGF0Y2hTY3JvbGxlbmRFdmVudCgpfSksdGhpcy5wcmV2ZW50TmV4dE5hdGl2ZVNjcm9sbEV2ZW50KCkpfX0pfX19cHJldmVudE5leHROYXRpdmVTY3JvbGxFdmVudCgpe3RoaXMuX3ByZXZlbnROZXh0TmF0aXZlU2Nyb2xsRXZlbnQ9ITAscmVxdWVzdEFuaW1hdGlvbkZyYW1lKCgpPT57dGhpcy5fcHJldmVudE5leHROYXRpdmVTY3JvbGxFdmVudD0hMX0pfWNoZWNrTmVzdGVkU2Nyb2xsKHQse2RlbHRhWDplLGRlbHRhWTphfSl7bGV0IGk9RGF0ZS5ub3coKSxyPXQuX2xlbmlzPz89e30scyxuLG8sZCxjLGgsbCxmLGc9dGhpcy5vcHRpb25zLmdlc3R1cmVPcmllbnRhdGlvbjtpZihpLShyLnRpbWU/PzApPjJlMyl7ci50aW1lPURhdGUubm93KCk7bGV0IF89d2luZG93LmdldENvbXB1dGVkU3R5bGUodCk7ci5jb21wdXRlZFN0eWxlPV87bGV0IGs9Xy5vdmVyZmxvd1gsTj1fLm92ZXJmbG93WTtpZihzPVsiYXV0byIsIm92ZXJsYXkiLCJzY3JvbGwiXS5pbmNsdWRlcyhrKSxuPVsiYXV0byIsIm92ZXJsYXkiLCJzY3JvbGwiXS5pbmNsdWRlcyhOKSxyLmhhc092ZXJmbG93WD1zLHIuaGFzT3ZlcmZsb3dZPW4sIXMmJiFufHxnPT09InZlcnRpY2FsIiYmIW58fGc9PT0iaG9yaXpvbnRhbCImJiFzKXJldHVybiExO2M9dC5zY3JvbGxXaWR0aCxoPXQuc2Nyb2xsSGVpZ2h0LGw9dC5jbGllbnRXaWR0aCxmPXQuY2xpZW50SGVpZ2h0LG89Yz5sLGQ9aD5mLHIuaXNTY3JvbGxhYmxlWD1vLHIuaXNTY3JvbGxhYmxlWT1kLHIuc2Nyb2xsV2lkdGg9YyxyLnNjcm9sbEhlaWdodD1oLHIuY2xpZW50V2lkdGg9bCxyLmNsaWVudEhlaWdodD1mfWVsc2Ugbz1yLmlzU2Nyb2xsYWJsZVgsZD1yLmlzU2Nyb2xsYWJsZVkscz1yLmhhc092ZXJmbG93WCxuPXIuaGFzT3ZlcmZsb3dZLGM9ci5zY3JvbGxXaWR0aCxoPXIuc2Nyb2xsSGVpZ2h0LGw9ci5jbGllbnRXaWR0aCxmPXIuY2xpZW50SGVpZ2h0O2lmKCFzJiYhbnx8IW8mJiFkfHxnPT09InZlcnRpY2FsIiYmKCFufHwhZCl8fGc9PT0iaG9yaXpvbnRhbCImJighc3x8IW8pKXJldHVybiExO2xldCB5O2lmKGc9PT0iaG9yaXpvbnRhbCIpeT0ieCI7ZWxzZSBpZihnPT09InZlcnRpY2FsIil5PSJ5IjtlbHNle2xldCBfPWUhPT0wLGs9YSE9PTA7XyYmcyYmbyYmKHk9IngiKSxrJiZuJiZkJiYoeT0ieSIpfWlmKCF5KXJldHVybiExO2xldCB2LG0seCxNLFM7aWYoeT09PSJ4Iil2PXQuc2Nyb2xsTGVmdCxtPWMtbCx4PWUsTT1zLFM9bztlbHNlIGlmKHk9PT0ieSIpdj10LnNjcm9sbFRvcCxtPWgtZix4PWEsTT1uLFM9ZDtlbHNlIHJldHVybiExO3JldHVybih4PjA/djxtOnY+MCkmJk0mJlN9Z2V0IHJvb3RFbGVtZW50KCl7cmV0dXJuIHRoaXMub3B0aW9ucy53cmFwcGVyPT09d2luZG93P2RvY3VtZW50LmRvY3VtZW50RWxlbWVudDp0aGlzLm9wdGlvbnMud3JhcHBlcn1nZXQgbGltaXQoKXtyZXR1cm4gdGhpcy5vcHRpb25zLm5haXZlRGltZW5zaW9ucz90aGlzLmlzSG9yaXpvbnRhbD90aGlzLnJvb3RFbGVtZW50LnNjcm9sbFdpZHRoLXRoaXMucm9vdEVsZW1lbnQuY2xpZW50V2lkdGg6dGhpcy5yb290RWxlbWVudC5zY3JvbGxIZWlnaHQtdGhpcy5yb290RWxlbWVudC5jbGllbnRIZWlnaHQ6dGhpcy5kaW1lbnNpb25zLmxpbWl0W3RoaXMuaXNIb3Jpem9udGFsPyJ4IjoieSJdfWdldCBpc0hvcml6b250YWwoKXtyZXR1cm4gdGhpcy5vcHRpb25zLm9yaWVudGF0aW9uPT09Imhvcml6b250YWwifWdldCBhY3R1YWxTY3JvbGwoKXtsZXQgdD10aGlzLm9wdGlvbnMud3JhcHBlcjtyZXR1cm4gdGhpcy5pc0hvcml6b250YWw/dC5zY3JvbGxYPz90LnNjcm9sbExlZnQ6dC5zY3JvbGxZPz90LnNjcm9sbFRvcH1nZXQgc2Nyb2xsKCl7cmV0dXJuIHRoaXMub3B0aW9ucy5pbmZpbml0ZT9kQnQodGhpcy5hbmltYXRlZFNjcm9sbCx0aGlzLmxpbWl0KTp0aGlzLmFuaW1hdGVkU2Nyb2xsfWdldCBwcm9ncmVzcygpe3JldHVybiB0aGlzLmxpbWl0PT09MD8xOnRoaXMuc2Nyb2xsL3RoaXMubGltaXR9Z2V0IGlzU2Nyb2xsaW5nKCl7cmV0dXJuIHRoaXMuX2lzU2Nyb2xsaW5nfXNldCBpc1Njcm9sbGluZyh0KXt0aGlzLl9pc1Njcm9sbGluZyE9PXQmJih0aGlzLl9pc1Njcm9sbGluZz10LHRoaXMudXBkYXRlQ2xhc3NOYW1lKCkpfWdldCBpc1N0b3BwZWQoKXtyZXR1cm4gdGhpcy5faXNTdG9wcGVkfXNldCBpc1N0b3BwZWQodCl7dGhpcy5faXNTdG9wcGVkIT09dCYmKHRoaXMuX2lzU3RvcHBlZD10LHRoaXMudXBkYXRlQ2xhc3NOYW1lKCkpfWdldCBpc0xvY2tlZCgpe3JldHVybiB0aGlzLl9pc0xvY2tlZH1zZXQgaXNMb2NrZWQodCl7dGhpcy5faXNMb2NrZWQhPT10JiYodGhpcy5faXNMb2NrZWQ9dCx0aGlzLnVwZGF0ZUNsYXNzTmFtZSgpKX1nZXQgaXNTbW9vdGgoKXtyZXR1cm4gdGhpcy5pc1Njcm9sbGluZz09PSJzbW9vdGgifWdldCBjbGFzc05hbWUoKXtsZXQgdD0ibGVuaXMiO3JldHVybiB0aGlzLm9wdGlvbnMuYXV0b1RvZ2dsZSYmKHQrPSIgbGVuaXMtYXV0b1RvZ2dsZSIpLHRoaXMuaXNTdG9wcGVkJiYodCs9IiBsZW5pcy1zdG9wcGVkIiksdGhpcy5pc0xvY2tlZCYmKHQrPSIgbGVuaXMtbG9ja2VkIiksdGhpcy5pc1Njcm9sbGluZyYmKHQrPSIgbGVuaXMtc2Nyb2xsaW5nIiksdGhpcy5pc1Njcm9sbGluZz09PSJzbW9vdGgiJiYodCs9IiBsZW5pcy1zbW9vdGgiKSx0fXVwZGF0ZUNsYXNzTmFtZSgpe3RoaXMuY2xlYW5VcENsYXNzTmFtZSgpLHRoaXMucm9vdEVsZW1lbnQuY2xhc3NOYW1lPWAke3RoaXMucm9vdEVsZW1lbnQuY2xhc3NOYW1lfSAke3RoaXMuY2xhc3NOYW1lfWAudHJpbSgpfWNsZWFuVXBDbGFzc05hbWUoKXt0aGlzLnJvb3RFbGVtZW50LmNsYXNzTmFtZT10aGlzLnJvb3RFbGVtZW50LmNsYXNzTmFtZS5yZXBsYWNlKC9sZW5pcygtXHcrKT8vZywiIikudHJpbSgpfX19KTt2YXIgQUE9aHQoKExBLCRBKT0+eyhmdW5jdGlvbih0LGUpe3R5cGVvZiBMQT09Im9iamVjdCImJnR5cGVvZiAkQTwidSI/JEEuZXhwb3J0cz1lKCk6dHlwZW9mIGRlZmluZT09ImZ1bmN0aW9uIiYmZGVmaW5lLmFtZD9kZWZpbmUoZSk6KHQ9dHx8c2VsZix0LlN3ZWV0U2Nyb2xsPWUoKSl9KShMQSxmdW5jdGlvbigpeyJ1c2Ugc3RyaWN0Ijt2YXIgdD1mdW5jdGlvbigpe3JldHVybiB0PU9iamVjdC5hc3NpZ258fGZ1bmN0aW9uKE8pe2Zvcih2YXIgWixZPTEsb2U9YXJndW1lbnRzLmxlbmd0aDtZPG9lO1krKyl7Wj1hcmd1bWVudHNbWV07Zm9yKHZhciBnZSBpbiBaKU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChaLGdlKSYmKE9bZ2VdPVpbZ2VdKX1yZXR1cm4gT30sdC5hcHBseSh0aGlzLGFyZ3VtZW50cyl9LGU9ISEodHlwZW9mIHdpbmRvdzwidSImJndpbmRvdy5kb2N1bWVudCYmd2luZG93LmRvY3VtZW50LmNyZWF0ZUVsZW1lbnQpLGE9ZT93aW5kb3cuaGlzdG9yeSYmInB1c2hTdGF0ZSJpbiB3aW5kb3cuaGlzdG9yeSYmd2luZG93LmxvY2F0aW9uLnByb3RvY29sIT09ImZpbGU6IjohMSxpPShmdW5jdGlvbigpe3ZhciBEPSExO2lmKCFlKXJldHVybiBEO3RyeXt2YXIgTz13aW5kb3csWj1PYmplY3QuZGVmaW5lUHJvcGVydHkoe30sInBhc3NpdmUiLHtnZXQ6ZnVuY3Rpb24oKXtEPSEwfX0pO08uYWRkRXZlbnRMaXN0ZW5lcigidGVzdCIsbnVsbCxaKSxPLnJlbW92ZUV2ZW50TGlzdGVuZXIoInRlc3QiLG51bGwsWil9Y2F0Y2h7fXJldHVybiBEfSkoKSxyPWZ1bmN0aW9uKEQpe3JldHVybiB0eXBlb2YgRD09InN0cmluZyJ9LHM9ZnVuY3Rpb24oRCl7cmV0dXJuIHR5cGVvZiBEPT0iZnVuY3Rpb24ifSxuPWZ1bmN0aW9uKEQpe3JldHVybiBBcnJheS5pc0FycmF5KEQpfSxvPWZ1bmN0aW9uKEQpe3JldHVybiFuKEQpJiZELXBhcnNlRmxvYXQoRCkrMT49MH0sZD1mdW5jdGlvbihELE8pe3JldHVybiBEJiZELmhhc093blByb3BlcnR5KE8pfSxjPWU/d2luZG93LnJlcXVlc3RBbmltYXRpb25GcmFtZS5iaW5kKHdpbmRvdyk6bnVsbCxoPWU/d2luZG93LmNhbmNlbEFuaW1hdGlvbkZyYW1lLmJpbmQod2luZG93KTpudWxsLGw9TWF0aC5jb3MsZj1NYXRoLnNpbixnPU1hdGgucG93LHk9TWF0aC5zcXJ0LHY9TWF0aC5QSSxtPXtsaW5lYXI6ZnVuY3Rpb24oRCl7cmV0dXJuIER9LGVhc2VJblF1YWQ6ZnVuY3Rpb24oRCxPLFosWSxvZSl7cmV0dXJuIFkqKE8vPW9lKSpPK1p9LGVhc2VPdXRRdWFkOmZ1bmN0aW9uKEQsTyxaLFksb2Upe3JldHVybi1ZKihPLz1vZSkqKE8tMikrWn0sZWFzZUluT3V0UXVhZDpmdW5jdGlvbihELE8sWixZLG9lKXtyZXR1cm4oTy89b2UvMik8MT9ZLzIqTypPK1o6LVkvMiooLS1PKihPLTIpLTEpK1p9LGVhc2VJbkN1YmljOmZ1bmN0aW9uKEQsTyxaLFksb2Upe3JldHVybiBZKihPLz1vZSkqTypPK1p9LGVhc2VPdXRDdWJpYzpmdW5jdGlvbihELE8sWixZLG9lKXtyZXR1cm4gWSooKE89Ty9vZS0xKSpPKk8rMSkrWn0sZWFzZUluT3V0Q3ViaWM6ZnVuY3Rpb24oRCxPLFosWSxvZSl7cmV0dXJuKE8vPW9lLzIpPDE/WS8yKk8qTypPK1o6WS8yKigoTy09MikqTypPKzIpK1p9LGVhc2VJblF1YXJ0OmZ1bmN0aW9uKEQsTyxaLFksb2Upe3JldHVybiBZKihPLz1vZSkqTypPKk8rWn0sZWFzZU91dFF1YXJ0OmZ1bmN0aW9uKEQsTyxaLFksb2Upe3JldHVybi1ZKigoTz1PL29lLTEpKk8qTypPLTEpK1p9LGVhc2VJbk91dFF1YXJ0OmZ1bmN0aW9uKEQsTyxaLFksb2Upe3JldHVybihPLz1vZS8yKTwxP1kvMipPKk8qTypPK1o6LVkvMiooKE8tPTIpKk8qTypPLTIpK1p9LGVhc2VJblF1aW50OmZ1bmN0aW9uKEQsTyxaLFksb2Upe3JldHVybiBZKihPLz1vZSkqTypPKk8qTytafSxlYXNlT3V0UXVpbnQ6ZnVuY3Rpb24oRCxPLFosWSxvZSl7cmV0dXJuIFkqKChPPU8vb2UtMSkqTypPKk8qTysxKStafSxlYXNlSW5PdXRRdWludDpmdW5jdGlvbihELE8sWixZLG9lKXtyZXR1cm4oTy89b2UvMik8MT9ZLzIqTypPKk8qTypPK1o6WS8yKigoTy09MikqTypPKk8qTysyKStafSxlYXNlSW5TaW5lOmZ1bmN0aW9uKEQsTyxaLFksb2Upe3JldHVybi1ZKmwoTy9vZSoodi8yKSkrWStafSxlYXNlT3V0U2luZTpmdW5jdGlvbihELE8sWixZLG9lKXtyZXR1cm4gWSpmKE8vb2UqKHYvMikpK1p9LGVhc2VJbk91dFNpbmU6ZnVuY3Rpb24oRCxPLFosWSxvZSl7cmV0dXJuLVkvMioobCh2Kk8vb2UpLTEpK1p9LGVhc2VJbkV4cG86ZnVuY3Rpb24oRCxPLFosWSxvZSl7cmV0dXJuIE89PT0wP1o6WSpnKDIsMTAqKE8vb2UtMSkpK1p9LGVhc2VPdXRFeHBvOmZ1bmN0aW9uKEQsTyxaLFksb2Upe3JldHVybiBPPT09b2U/WitZOlkqKC1nKDIsLTEwKk8vb2UpKzEpK1p9LGVhc2VJbk91dEV4cG86ZnVuY3Rpb24oRCxPLFosWSxvZSl7cmV0dXJuIE89PT0wP1o6Tz09PW9lP1orWTooTy89b2UvMik8MT9ZLzIqZygyLDEwKihPLTEpKStaOlkvMiooLWcoMiwtMTAqLS1PKSsyKStafSxlYXNlSW5DaXJjOmZ1bmN0aW9uKEQsTyxaLFksb2Upe3JldHVybi1ZKih5KDEtKE8vPW9lKSpPKS0xKStafSxlYXNlT3V0Q2lyYzpmdW5jdGlvbihELE8sWixZLG9lKXtyZXR1cm4gWSp5KDEtKE89Ty9vZS0xKSpPKStafSxlYXNlSW5PdXRDaXJjOmZ1bmN0aW9uKEQsTyxaLFksb2Upe3JldHVybihPLz1vZS8yKTwxPy1ZLzIqKHkoMS1PKk8pLTEpK1o6WS8yKih5KDEtKE8tPTIpKk8pKzEpK1p9fSx4PWZ1bmN0aW9uKEQpe3JldHVybiBBcnJheS5wcm90b3R5cGUuc2xpY2UuY2FsbChEP2RvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoRCk6W10pfSxNPWZ1bmN0aW9uKEQpe3JldHVybiB4KEQpLnNoaWZ0KCl8fG51bGx9LFM9ZnVuY3Rpb24oRCl7cmV0dXJuIEQgaW5zdGFuY2VvZiBFbGVtZW50fSxGPWZ1bmN0aW9uKEQpe3JldHVybiBEPT09d2luZG93fSxfPWZ1bmN0aW9uKEQpe3JldHVybiBEPT09ZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50fHxEPT09ZG9jdW1lbnQuYm9keX0saz1mdW5jdGlvbihELE8pe2lmKFMoTykpcmV0dXJuIEQ9PT1PO2Zvcih2YXIgWj14KE8pLFk9Wi5sZW5ndGg7LS1ZPj0wJiZaW1ldIT09RDspO3JldHVybiBZPi0xfSxOPWZ1bmN0aW9uKEQpe3JldHVybiBNYXRoLm1heChELnNjcm9sbEhlaWdodCxELmNsaWVudEhlaWdodCxELm9mZnNldEhlaWdodCl9LEw9ZnVuY3Rpb24oRCl7cmV0dXJuIE1hdGgubWF4KEQuc2Nyb2xsV2lkdGgsRC5jbGllbnRXaWR0aCxELm9mZnNldFdpZHRoKX0sQT1mdW5jdGlvbihEKXtyZXR1cm57d2lkdGg6TChEKSxoZWlnaHQ6TihEKX19LHE9ZnVuY3Rpb24oRCl7dmFyIE89RihEKXx8XyhEKTtyZXR1cm57dmlld3BvcnQ6e3dpZHRoOk8/TWF0aC5taW4od2luZG93LmlubmVyV2lkdGgsZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LmNsaWVudFdpZHRoKTpELmNsaWVudFdpZHRoLGhlaWdodDpPP3dpbmRvdy5pbm5lckhlaWdodDpELmNsaWVudEhlaWdodH0sc2l6ZTpPP3t3aWR0aDpNYXRoLm1heChMKGRvY3VtZW50LmJvZHkpLEwoZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50KSksaGVpZ2h0Ok1hdGgubWF4KE4oZG9jdW1lbnQuYm9keSksTihkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQpKX06QShEKX19LEM9e3k6InNjcm9sbFRvcCIseDoic2Nyb2xsTGVmdCJ9LHo9e3k6InBhZ2VZT2Zmc2V0Iix4OiJwYWdlWE9mZnNldCJ9LEU9ZnVuY3Rpb24oRCxPKXtyZXR1cm4gRihEKT9EW3pbT11dOkRbQ1tPXV19LFQ9ZnVuY3Rpb24oRCxPLFope2lmKEYoRCkpe3ZhciBZPVo9PT0ieSI7RC5zY3JvbGxUbyhZP0QucGFnZVhPZmZzZXQ6TyxZP086RC5wYWdlWU9mZnNldCl9ZWxzZSBEW0NbWl1dPU99LCQ9ZnVuY3Rpb24oRCxPKXt2YXIgWj1ELmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO2lmKFoud2lkdGh8fFouaGVpZ2h0KXt2YXIgWT17dG9wOjAsbGVmdDowfSxvZT12b2lkIDA7aWYoRihPKXx8XyhPKSlvZT1kb2N1bWVudC5kb2N1bWVudEVsZW1lbnQsWS50b3A9d2luZG93W3oueV0sWS5sZWZ0PXdpbmRvd1t6LnhdO2Vsc2V7b2U9Tzt2YXIgZ2U9b2UuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7WS50b3A9Z2UudG9wKi0xK29lW0MueV0sWS5sZWZ0PWdlLmxlZnQqLTErb2VbQy54XX1yZXR1cm57dG9wOloudG9wK1kudG9wLW9lLmNsaWVudFRvcCxsZWZ0OloubGVmdCtZLmxlZnQtb2UuY2xpZW50TGVmdH19cmV0dXJuIFp9LFY9KGZ1bmN0aW9uKCl7cmV0dXJuIGU/Im9ud2hlZWwiaW4gZG9jdW1lbnQ/IndoZWVsIjoibW91c2V3aGVlbCI6IndoZWVsIn0pKCksUj1mdW5jdGlvbihEKXtyZXR1cm4gRD09PSJ3aGVlbCI/VjpEfSxVPWZ1bmN0aW9uKEQsTyxaLFksb2Upe1ouc3BsaXQoIiAiKS5mb3JFYWNoKGZ1bmN0aW9uKGdlKXtEW09dKFIoZ2UpLFksaT97cGFzc2l2ZTpvZX06ITEpfSl9LHJlPWZ1bmN0aW9uKEQsTyxaLFkpe3JldHVybiBVKEQsImFkZEV2ZW50TGlzdGVuZXIiLE8sWixZKX0saj1mdW5jdGlvbihELE8sWixZKXtyZXR1cm4gVShELCJyZW1vdmVFdmVudExpc3RlbmVyIixPLFosWSl9LG1lPS9eKFwrfC0pPShcZCsoPzpcLlxkKyk/KSQvLHdlPWZ1bmN0aW9uKEQsTyl7dmFyIFo9e3RvcDowLGxlZnQ6MCxyZWxhdGl2ZTohMX07aWYoZChELCJ0b3AiKXx8ZChELCJsZWZ0IikpWj10KHt9LFosRCk7ZWxzZSBpZihuKEQpKWlmKEQubGVuZ3RoPjEpWi50b3A9RFswXSxaLmxlZnQ9RFsxXTtlbHNlIGlmKEQubGVuZ3RoPT09MSlaLnRvcD1PP0RbMF06MCxaLmxlZnQ9Tz8wOkRbMF07ZWxzZSByZXR1cm4gbnVsbDtlbHNlIGlmKG8oRCkpTz9aLnRvcD1EOloubGVmdD1EO2Vsc2UgaWYocihEKSl7dmFyIFk9RC50cmltKCkubWF0Y2gobWUpO2lmKCFZKXJldHVybiBudWxsO3ZhciBvZT1ZWzFdLGdlPXBhcnNlSW50KFlbMl0sMTApO29lPT09IisiPyhaLnRvcD1PP2dlOjAsWi5sZWZ0PU8/MDpnZSk6KFoudG9wPU8/LWdlOjAsWi5sZWZ0PU8/MDotZ2UpLFoucmVsYXRpdmU9ITB9ZWxzZSByZXR1cm4gbnVsbDtyZXR1cm4gWn0sSD17dHJpZ2dlcjoiW2RhdGEtc2Nyb2xsXSIsaGVhZGVyOiJbZGF0YS1zY3JvbGwtaGVhZGVyXSIsZHVyYXRpb246MWUzLGVhc2luZzoiZWFzZU91dFF1aW50IixvZmZzZXQ6MCx2ZXJ0aWNhbDohMCxob3Jpem9udGFsOiExLGNhbmNlbGxhYmxlOiEwLHVwZGF0ZVVSTDohMSxwcmV2ZW50RGVmYXVsdDohMCxzdG9wUHJvcGFnYXRpb246ITAsYmVmb3JlOm51bGwsYWZ0ZXI6bnVsbCxjYW5jZWw6bnVsbCxjb21wbGV0ZTpudWxsLHN0ZXA6bnVsbH0sY2U9ImNsaWNrIixrZT0id2hlZWwgdG91Y2hzdGFydCB0b3VjaG1vdmUiLFc9KGZ1bmN0aW9uKCl7ZnVuY3Rpb24gRChPLFope3ZhciBZPXRoaXM7dGhpcy4kZWw9bnVsbCx0aGlzLmN0eD17JHRyaWdnZXI6bnVsbCxvcHRzOm51bGwscHJvZ3Jlc3M6ITEscG9zOm51bGwsc3RhcnRQb3M6bnVsbCxlYXNpbmc6bnVsbCxzdGFydDowLGlkOjAsY2FuY2VsOiExLGhhc2g6bnVsbH0sdGhpcy5sb29wPWZ1bmN0aW9uKGdlKXt2YXIgYmU9WSwkZT1iZS4kZWwsQj1iZS5jdHg7aWYoQi5zdGFydHx8KEIuc3RhcnQ9Z2UpLCFCLnByb2dyZXNzfHwhJGUpe1kuc3RvcCgpO3JldHVybn12YXIgUD1CLm9wdHMsSz1CLnBvcyxmZT1CLnN0YXJ0LGRlPUIuc3RhcnRQb3MsX2U9Qi5lYXNpbmcsaGU9UC5kdXJhdGlvbix0ZT17dG9wOiJ5IixsZWZ0OiJ4In0semU9Z2UtZmUsRmU9TWF0aC5taW4oMSxNYXRoLm1heCh6ZS9oZSwwKSk7T2JqZWN0LmtleXMoSykuZm9yRWFjaChmdW5jdGlvbihXZSl7dmFyIHllPUtbV2VdLGVlPWRlW1dlXSxhZT15ZS1lZTtpZihhZSE9PTApe3ZhciB2ZT1fZShGZSxoZSpGZSwwLDEsaGUpO1QoJGUsTWF0aC5yb3VuZChlZSthZSp2ZSksdGVbV2VdKX19KSx6ZTw9aGU/KFkuaG9vayhQLCJzdGVwIixGZSksQi5pZD1ELnJhZihZLmxvb3ApKTpZLnN0b3AoITApfSx0aGlzLmhhbmRsZUNsaWNrPWZ1bmN0aW9uKGdlKXtmb3IodmFyIGJlPVkub3B0cywkZT1nZS50YXJnZXQ7JGUmJiRlIT09ZG9jdW1lbnQ7JGU9JGUucGFyZW50Tm9kZSlpZihrKCRlLGJlLnRyaWdnZXIpKXt2YXIgQj1KU09OLnBhcnNlKCRlLmdldEF0dHJpYnV0ZSgiZGF0YS1zY3JvbGwtb3B0aW9ucyIpfHwie30iKSxQPSRlLmdldEF0dHJpYnV0ZSgiZGF0YS1zY3JvbGwiKSxLPVB8fCRlLmdldEF0dHJpYnV0ZSgiaHJlZiIpLGZlPXQoe30sYmUsQiksZGU9ZmUucHJldmVudERlZmF1bHQsX2U9ZmUuc3RvcFByb3BhZ2F0aW9uLGhlPWZlLnZlcnRpY2FsLHRlPWZlLmhvcml6b250YWw7ZGUmJmdlLnByZXZlbnREZWZhdWx0KCksX2UmJmdlLnN0b3BQcm9wYWdhdGlvbigpLFkuY3R4LiR0cmlnZ2VyPSRlLHRlJiZoZT9ZLnRvKEssZmUpOmhlP1kudG9Ub3AoSyxmZSk6dGUmJlkudG9MZWZ0KEssZmUpO2JyZWFrfX0sdGhpcy5oYW5kbGVTdG9wPWZ1bmN0aW9uKGdlKXt2YXIgYmU9WS5jdHgsJGU9YmUub3B0czskZSYmJGUuY2FuY2VsbGFibGU/KGJlLmNhbmNlbD0hMCxZLnN0b3AoKSk6Z2UucHJldmVudERlZmF1bHQoKX0sdGhpcy5vcHRzPXQoe30sSCxPfHx7fSk7dmFyIG9lPW51bGw7ZSYmKHR5cGVvZiBaPT0ic3RyaW5nIj9vZT1NKFopOlohPW51bGw/b2U9WjpvZT13aW5kb3cpLHRoaXMuJGVsPW9lLG9lJiZ0aGlzLmJpbmQoITAsITEpfXJldHVybiBELmNyZWF0ZT1mdW5jdGlvbihPLFope3JldHVybiBuZXcgRChPLFopfSxELnByb3RvdHlwZS50bz1mdW5jdGlvbihPLFope2lmKGUpe3ZhciBZPXRoaXMsb2U9WS4kZWwsZ2U9WS5jdHgsYmU9WS5vcHRzLCRlPWdlLiR0cmlnZ2VyLEI9dCh7fSxiZSxafHx7fSksUD1CLm9mZnNldCxLPUIudmVydGljYWwsZmU9Qi5ob3Jpem9udGFsLGRlPVMoQi5oZWFkZXIpP0IuaGVhZGVyOk0oQi5oZWFkZXIpLF9lPS9eIy8saGU9cihPKSYmX2UudGVzdChPKT9POm51bGw7aWYoZ2Uub3B0cz1CLGdlLmNhbmNlbD0hMSxnZS5oYXNoPWhlLHRoaXMuc3RvcCgpLCEhb2Upe3ZhciB0ZT13ZShQLEspLHplPXdlKE8sSyksRmU9e3RvcDowLGxlZnQ6MH07aWYoemUpaWYoemUucmVsYXRpdmUpe3ZhciBXZT1FKG9lLEs/InkiOiJ4Iik7RmUudG9wPUs/V2UremUudG9wOnplLnRvcCxGZS5sZWZ0PUs/emUubGVmdDpXZSt6ZS5sZWZ0fWVsc2UgRmU9emU7ZWxzZSBpZihyKE8pJiZPIT09IiMiKXt2YXIgeWU9TShPKTtpZigheWUpcmV0dXJuO0ZlPSQoeWUsb2UpfXRlJiYoRmUudG9wKz10ZS50b3AsRmUubGVmdCs9dGUubGVmdCksZGUmJihGZS50b3A9TWF0aC5tYXgoMCxGZS50b3AtQShkZSkuaGVpZ2h0KSk7dmFyIGVlPXEob2UpLGFlPWVlLnZpZXdwb3J0LHZlPWVlLnNpemU7aWYoRmUudG9wPUs/TWF0aC5tYXgoMCxNYXRoLm1pbih2ZS5oZWlnaHQtYWUuaGVpZ2h0LEZlLnRvcCkpOkUob2UsInkiKSxGZS5sZWZ0PWZlP01hdGgubWF4KDAsTWF0aC5taW4odmUud2lkdGgtYWUud2lkdGgsRmUubGVmdCkpOkUob2UsIngiKSx0aGlzLmhvb2soQiwiYmVmb3JlIixGZSwkZSk9PT0hMSl7Z2Uub3B0cz1udWxsO3JldHVybn1nZS5wb3M9RmUsdGhpcy5zdGFydChCKSx0aGlzLmJpbmQoITEsITApfX19LEQucHJvdG90eXBlLnRvVG9wPWZ1bmN0aW9uKE8sWil7dGhpcy50byhPLHQoe30sWnx8e30se3ZlcnRpY2FsOiEwLGhvcml6b250YWw6ITF9KSl9LEQucHJvdG90eXBlLnRvTGVmdD1mdW5jdGlvbihPLFope3RoaXMudG8oTyx0KHt9LFp8fHt9LHt2ZXJ0aWNhbDohMSxob3Jpem9udGFsOiEwfSkpfSxELnByb3RvdHlwZS50b0VsZW1lbnQ9ZnVuY3Rpb24oTyxaKXt2YXIgWT10aGlzLiRlbDshZXx8IVl8fHRoaXMudG8oJChPLFkpLFp8fHt9KX0sRC5wcm90b3R5cGUuc3RvcD1mdW5jdGlvbihPKXtPPT09dm9pZCAwJiYoTz0hMSk7dmFyIFo9dGhpcyxZPVouJGVsLG9lPVouY3R4LGdlPW9lLnBvczshWXx8IW9lLnByb2dyZXNzfHwoRC5jYWYob2UuaWQpLG9lLnByb2dyZXNzPSExLG9lLnN0YXJ0PTAsb2UuaWQ9MCxPJiZnZSYmKFQoWSxnZS5sZWZ0LCJ4IiksVChZLGdlLnRvcCwieSIpKSx0aGlzLmNvbXBsZXRlKCkpfSxELnByb3RvdHlwZS51cGRhdGU9ZnVuY3Rpb24oTyl7aWYodGhpcy4kZWwpe3ZhciBaPXQoe30sdGhpcy5vcHRzLE8pO3RoaXMuc3RvcCgpLHRoaXMudW5iaW5kKCEwLCEwKSx0aGlzLm9wdHM9Wix0aGlzLmJpbmQoITAsITEpfX0sRC5wcm90b3R5cGUuZGVzdHJveT1mdW5jdGlvbigpe3RoaXMuJGVsJiYodGhpcy5zdG9wKCksdGhpcy51bmJpbmQoITAsITApLHRoaXMuJGVsPW51bGwpfSxELnByb3RvdHlwZS5vbkJlZm9yZT1mdW5jdGlvbihPLFope3JldHVybiEwfSxELnByb3RvdHlwZS5vblN0ZXA9ZnVuY3Rpb24oTyl7fSxELnByb3RvdHlwZS5vbkFmdGVyPWZ1bmN0aW9uKE8sWil7fSxELnByb3RvdHlwZS5vbkNhbmNlbD1mdW5jdGlvbigpe30sRC5wcm90b3R5cGUub25Db21wbGV0ZT1mdW5jdGlvbihPKXt9LEQucHJvdG90eXBlLnN0YXJ0PWZ1bmN0aW9uKE8pe3ZhciBaPXRoaXMuY3R4O1oub3B0cz1PLFoucHJvZ3Jlc3M9ITAsWi5lYXNpbmc9cyhPLmVhc2luZyk/Ty5lYXNpbmc6bVtPLmVhc2luZ107dmFyIFk9dGhpcy4kZWwsb2U9e3RvcDpFKFksInkiKSxsZWZ0OkUoWSwieCIpfTtaLnN0YXJ0UG9zPW9lLFouaWQ9RC5yYWYodGhpcy5sb29wKX0sRC5wcm90b3R5cGUuY29tcGxldGU9ZnVuY3Rpb24oKXt2YXIgTz10aGlzLFo9Ty4kZWwsWT1PLmN0eCxvZT1ZLmhhc2gsZ2U9WS5jYW5jZWwsYmU9WS5vcHRzLCRlPVkucG9zLEI9WS4kdHJpZ2dlcjtpZighKCFafHwhYmUpKXtpZihvZSE9bnVsbCYmb2UhPT13aW5kb3cubG9jYXRpb24uaGFzaCl7dmFyIFA9YmUudXBkYXRlVVJMO2UmJmEmJlAhPT0hMSYmd2luZG93Lmhpc3RvcnlbUD09PSJyZXBsYWNlIj8icmVwbGFjZVN0YXRlIjoicHVzaFN0YXRlIl0obnVsbCwiIixvZSl9dGhpcy51bmJpbmQoITEsITApLFkub3B0cz1udWxsLFkuJHRyaWdnZXI9bnVsbCxnZT90aGlzLmhvb2soYmUsImNhbmNlbCIpOnRoaXMuaG9vayhiZSwiYWZ0ZXIiLCRlLEIpLHRoaXMuaG9vayhiZSwiY29tcGxldGUiLGdlKX19LEQucHJvdG90eXBlLmhvb2s9ZnVuY3Rpb24oTyxaKXtmb3IodmFyIFk9W10sb2U9MjtvZTxhcmd1bWVudHMubGVuZ3RoO29lKyspWVtvZS0yXT1hcmd1bWVudHNbb2VdO3ZhciBnZSxiZT1PW1pdLCRlLEI7cmV0dXJuIHMoYmUpJiYoJGU9YmUuYXBwbHkodGhpcyxZLmNvbmNhdChbdGhpc10pKSksQj0oZ2U9dGhpcylbIm9uIisoWlswXS50b1VwcGVyQ2FzZSgpK1ouc2xpY2UoMSkpXS5hcHBseShnZSxZKSwkZSE9PXZvaWQgMD8kZTpCfSxELnByb3RvdHlwZS5iaW5kPWZ1bmN0aW9uKE8sWil7dmFyIFk9dGhpcyxvZT1ZLiRlbCxnZT1ZLmN0eC5vcHRzO29lJiYoTyYmcmUob2UsY2UsdGhpcy5oYW5kbGVDbGljaywhMSksWiYmcmUob2Usa2UsdGhpcy5oYW5kbGVTdG9wLGdlP2dlLmNhbmNlbGxhYmxlOiEwKSl9LEQucHJvdG90eXBlLnVuYmluZD1mdW5jdGlvbihPLFope3ZhciBZPXRoaXMsb2U9WS4kZWwsZ2U9WS5jdHgub3B0cztvZSYmKE8mJmoob2UsY2UsdGhpcy5oYW5kbGVDbGljaywhMSksWiYmaihvZSxrZSx0aGlzLmhhbmRsZVN0b3AsZ2U/Z2UuY2FuY2VsbGFibGU6ITApKX0sRC5yYWY9YyxELmNhZj1oLER9KSgpO3JldHVybiBXfSl9KTt2YXIgdGYsbTUsSjM9YigoKT0+e0QyZSgpO2s2KCk7dXIoKTt2MygpO0UkKCk7YzIoKTtIJCgpO0RpKCk7SiQoKTt1MygpO3RBKCk7Z2xlKCk7S3UoKTtnNigpO3ZjZSgpO3ljZSgpO1RBKCk7a2NlKCk7dGY9VTEoQUEoKSwxKSxtNT17T2JqZWN0TWFwOkp1LFN0cmluZ21hcDplZixGYXN0TWFwOlEzfX0pO3ZhciBScj17fTtHZShScix7Y3NzRm9yRGVza3RvcDooKT0+bUJ0LGNzc0Zvck5vdGVib29rOigpPT5nQnQsY3NzRm9yUGhhYmxldDooKT0+dkJ0LGNzc0ZvclBob25lOigpPT55QnQsY3NzRm9yVGFibGV0OigpPT5iQnQsZGVza3RvcDooKT0+REEsbm90ZWJvb2s6KCk9PkVBLHBoYWJsZXQ6KCk9PklBLHBob25lOigpPT5OQSx0YWJsZXQ6KCk9PlBBfSk7dmFyIERBLEVBLFBBLElBLE5BLG1CdCxnQnQsYkJ0LHZCdCx5QnQsRkE9YigoKT0+e2VsKCk7ZHIoKTtEQT0xNjAwLEVBPTEyNDAsUEE9MTAyNCxJQT02MDAsTkE9NDAwLG1CdD10PT5xdChgCiAgICBAY29udGFpbmVyIHdjY1Rvb2xzVmlld3BvcnQgKG1pbi13aWR0aDogJHtEQX1weCkgewogICAgICAke3QuY3NzVGV4dH0KICAgIH0KICAgIEBtZWRpYSAobWluLXdpZHRoOiAke0RBfXB4KSB7CiAgICAgICR7dC5jc3NUZXh0fQogICAgfQogIGApLGdCdD10PT5xdChgCiAgICBAY29udGFpbmVyIHdjY1Rvb2xzVmlld3BvcnQgKG1heC13aWR0aDogJHtFQX1weCkgewogICAgICAke3QuY3NzVGV4dH0KICAgIH0KICAgIEBtZWRpYSAobWF4LXdpZHRoOiAke0VBfXB4KSB7CiAgICAgICR7dC5jc3NUZXh0fQogICAgfQogIGApLGJCdD10PT5xdChgCiAgICBAY29udGFpbmVyIHdjY1Rvb2xzVmlld3BvcnQgKG1heC13aWR0aDogJHtQQX1weCkgewogICAgICAke3QuY3NzVGV4dH0KICAgIH0KICAgIEBtZWRpYSAobWF4LXdpZHRoOiAke1BBfXB4KSB7CiAgICAgICR7dC5jc3NUZXh0fQogICAgfQogIGApLHZCdD10PT5xdChgCiAgICBAY29udGFpbmVyIHdjY1Rvb2xzVmlld3BvcnQgKG1heC13aWR0aDogJHtJQX1weCkgewogICAgICAke3QuY3NzVGV4dH0KICAgIH0KICAgIEBtZWRpYSAobWF4LXdpZHRoOiAke0lBfXB4KSB7CiAgICAgICR7dC5jc3NUZXh0fQogICAgfQogIGApLHlCdD10PT5xdChgCiAgICBAY29udGFpbmVyIHdjY1Rvb2xzVmlld3BvcnQgKG1heC13aWR0aDogJHtOQX1weCkgewogICAgICAke3QuY3NzVGV4dH0KICAgIH0KICAgIEBtZWRpYSAobWF4LXdpZHRoOiAke05BfXB4KSB7CiAgICAgICR7dC5jc3NUZXh0fQogICAgfQogIGApfSk7dmFyIHJmLFNjZT1iKCgpPT57SjMoKTtyZj1jbGFzc3tkb210b29sc0luc3RhbmNlO3Njcm9sbENhbGxiYWNrcz1bXTtsZW5pc0luc3RhbmNlPW51bGw7aGFuZGxlTmF0aXZlU2Nyb2xsPWU9Pnt0aGlzLmV4ZWN1dGVTY3JvbGxDYWxsYmFja3MoKX07aGFuZGxlTGVuaXNTY3JvbGw9ZT0+e3RoaXMuZXhlY3V0ZVNjcm9sbENhbGxiYWNrcygpfTtjb25zdHJ1Y3RvcihlKXt0aGlzLmRvbXRvb2xzSW5zdGFuY2U9ZSx0aGlzLmF0dGFjaE5hdGl2ZVNjcm9sbExpc3RlbmVyKCl9c3dlZXRTY3JvbGxlcj1uZXcgdGYuZGVmYXVsdCh7fSk7YXN5bmMgdG9FbGVtZW50KGUsYSl7dGhpcy5zd2VldFNjcm9sbGVyLnRvRWxlbWVudChlLGEpLGF3YWl0IGR0LmRlbGF5Rm9yKGEuZHVyYXRpb24pfWFzeW5jIGRldGVjdE5hdGl2ZVNtb290aFNjcm9sbCgpe2xldCBlPUJlLmRlZmVyKCksYT0xMDAsaT0zLHI9Ljc1LHM9W107ZnVuY3Rpb24gbihkKXtzLnB1c2goZC5kZWx0YVkpLHMubGVuZ3RoPj1hJiYod2luZG93LnJlbW92ZUV2ZW50TGlzdGVuZXIoIndoZWVsIixuKSxvKCkpfWZ1bmN0aW9uIG8oKXtsZXQgZD1zLmxlbmd0aC0xLGM9MDtmb3IobGV0IGw9MDtsPGQ7bCsrKU1hdGguYWJzKHNbbCsxXS1zW2xdKTw9aSYmYysrO2MvZD49cj8oY29uc29sZS5sb2coIlNtb290aCBzY3JvbGxpbmcgZGV0ZWN0ZWQuIiksZS5yZXNvbHZlKCEwKSk6KGNvbnNvbGUubG9nKCJTbW9vdGggc2Nyb2xsaW5nIE5PVCBkZXRlY3RlZC4iKSxlLnJlc29sdmUoITEpKX1yZXR1cm4gd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoIndoZWVsIixuKSxlLnByb21pc2V9YXN5bmMgZW5hYmxlTGVuaXNTY3JvbGwoZSl7bGV0IGE9bmV3IGY1KHthdXRvUmFmOiEwfSk7aWYoZT8uZGlzYWJsZU9uTmF0aXZlU21vb3RoU2Nyb2xsJiZhd2FpdCB0aGlzLmRldGVjdE5hdGl2ZVNtb290aFNjcm9sbCgpKXthLmRlc3Ryb3koKTtyZXR1cm59dGhpcy5sZW5pc0luc3RhbmNlPWEsdGhpcy5kZXRhY2hOYXRpdmVTY3JvbGxMaXN0ZW5lcigpLHRoaXMuYXR0YWNoTGVuaXNTY3JvbGxMaXN0ZW5lcigpO2xldCBpPWEuZGVzdHJveS5iaW5kKGEpO2EuZGVzdHJveT0oKT0+e2koKSx0aGlzLmRldGFjaExlbmlzU2Nyb2xsTGlzdGVuZXIoKSx0aGlzLmF0dGFjaE5hdGl2ZVNjcm9sbExpc3RlbmVyKCksdGhpcy5sZW5pc0luc3RhbmNlPW51bGx9fW9uU2Nyb2xsKGUpe3RoaXMuc2Nyb2xsQ2FsbGJhY2tzLnB1c2goZSl9ZXhlY3V0ZVNjcm9sbENhbGxiYWNrcygpe3RoaXMuc2Nyb2xsQ2FsbGJhY2tzLmZvckVhY2goZT0+e3RyeXtlKCl9Y2F0Y2goYSl7Y29uc29sZS5lcnJvcigiRXJyb3IgaW4gc2Nyb2xsIGNhbGxiYWNrOiIsYSl9fSl9YXR0YWNoTmF0aXZlU2Nyb2xsTGlzdGVuZXIoKXt3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigic2Nyb2xsIix0aGlzLmhhbmRsZU5hdGl2ZVNjcm9sbCl9ZGV0YWNoTmF0aXZlU2Nyb2xsTGlzdGVuZXIoKXt3aW5kb3cucmVtb3ZlRXZlbnRMaXN0ZW5lcigic2Nyb2xsIix0aGlzLmhhbmRsZU5hdGl2ZVNjcm9sbCl9YXR0YWNoTGVuaXNTY3JvbGxMaXN0ZW5lcigpe3RoaXMubGVuaXNJbnN0YW5jZSYmdGhpcy5sZW5pc0luc3RhbmNlLm9uKCJzY3JvbGwiLHRoaXMuaGFuZGxlTGVuaXNTY3JvbGwpfWRldGFjaExlbmlzU2Nyb2xsTGlzdGVuZXIoKXt0aGlzLmxlbmlzSW5zdGFuY2UmJnRoaXMubGVuaXNJbnN0YW5jZS5vZmYoInNjcm9sbCIsdGhpcy5oYW5kbGVMZW5pc1Njcm9sbCl9fX0pO3ZhciBzZixDY2U9YigoKT0+e2VsKCk7SjMoKTtzZj1jbGFzc3tkb210b29sc1JlZjtnb0JyaWdodEJvb2xlYW49ITE7cHJlZmVycmVkQ29sb3JTY2hlbWVNZWRpYU1hdGNoPXdpbmRvdy5tYXRjaE1lZGlhKCIocHJlZmVycy1jb2xvci1zY2hlbWU6IGxpZ2h0KSIpO3RoZW1lT2JzZXJ2YWJsZT1uZXcgQXQucnhqcy5SZXBsYXlTdWJqZWN0KDEpO2NvbnN0cnVjdG9yKGUpe3RoaXMuZG9tdG9vbHNSZWY9ZSx0aGlzLmdvQnJpZ2h0Qm9vbGVhbj10aGlzLnByZWZlcnJlZENvbG9yU2NoZW1lTWVkaWFNYXRjaC5tYXRjaGVzLHRoaXMucHJlZmVycmVkQ29sb3JTY2hlbWVNZWRpYU1hdGNoLmFkZEV2ZW50TGlzdGVuZXIoImNoYW5nZSIsYT0+e3RoaXMuZ29CcmlnaHRCb29sZWFuPWEubWF0Y2hlcyx0aGlzLnVwZGF0ZUFsbENvbm5lY3RlZEVsZW1lbnRzKCl9KSx0aGlzLnVwZGF0ZUFsbENvbm5lY3RlZEVsZW1lbnRzKCl9YXN5bmMgZW5hYmxlQXV0b21hdGljR2xvYmFsVGhlbWVDaGFuZ2UoKXtkb2N1bWVudC5ib2R5JiZkb2N1bWVudC5ib2R5LnN0eWxlJiZ0aGlzLnRoZW1lT2JzZXJ2YWJsZS5zdWJzY3JpYmUoe25leHQ6ZT0+e2RvY3VtZW50LmJvZHkuc3R5bGUuYmFja2dyb3VuZD1lPyIjZmZmIjoiIzAwMCJ9fSl9YXN5bmMgdXBkYXRlQWxsQ29ubmVjdGVkRWxlbWVudHMoKXt0aGlzLnRoZW1lT2JzZXJ2YWJsZS5uZXh0KHRoaXMuZ29CcmlnaHRCb29sZWFuKX1nb0JyaWdodCgpe3RoaXMuZ29CcmlnaHRCb29sZWFuPSEwLHRoaXMudXBkYXRlQWxsQ29ubmVjdGVkRWxlbWVudHMoKX1nb0RhcmsoKXt0aGlzLmdvQnJpZ2h0Qm9vbGVhbj0hMSx0aGlzLnVwZGF0ZUFsbENvbm5lY3RlZEVsZW1lbnRzKCl9dG9nZ2xlRGFya0JyaWdodCgpe3RoaXMuZ29CcmlnaHRCb29sZWFuPSF0aGlzLmdvQnJpZ2h0Qm9vbGVhbix0aGlzLnVwZGF0ZUFsbENvbm5lY3RlZEVsZW1lbnRzKCl9fX0pO3ZhciBPQSxuZixfY2U9YigoKT0+e0ozKCk7KGZ1bmN0aW9uKHQpe3RbdC5CYWNrc3BhY2U9OF09IkJhY2tzcGFjZSIsdFt0LlRhYj05XT0iVGFiIix0W3QuRW50ZXI9MTNdPSJFbnRlciIsdFt0LlNoaWZ0PTE2XT0iU2hpZnQiLHRbdC5DdHJsPTE3XT0iQ3RybCIsdFt0LkFsdD0xOF09IkFsdCIsdFt0LlBhdXNlQnJlYWs9MTldPSJQYXVzZUJyZWFrIix0W3QuQ2Fwc0xvY2s9MjBdPSJDYXBzTG9jayIsdFt0LkVzY2FwZT0yN109IkVzY2FwZSIsdFt0LlNwYWNlPTMyXT0iU3BhY2UiLHRbdC5QYWdlVXA9MzNdPSJQYWdlVXAiLHRbdC5QYWdlRG93bj0zNF09IlBhZ2VEb3duIix0W3QuRW5kPTM1XT0iRW5kIix0W3QuSG9tZT0zNl09IkhvbWUiLHRbdC5MZWZ0QXJyb3c9MzddPSJMZWZ0QXJyb3ciLHRbdC5VcEFycm93PTM4XT0iVXBBcnJvdyIsdFt0LlJpZ2h0QXJyb3c9MzldPSJSaWdodEFycm93Iix0W3QuRG93bkFycm93PTQwXT0iRG93bkFycm93Iix0W3QuSW5zZXJ0PTQ1XT0iSW5zZXJ0Iix0W3QuRGVsZXRlPTQ2XT0iRGVsZXRlIix0W3QuWmVybz00OF09Ilplcm8iLHRbdC5DbG9zZWRQYXJlbj00OF09IkNsb3NlZFBhcmVuIix0W3QuT25lPTQ5XT0iT25lIix0W3QuRXhjbGFtYXRpb25NYXJrPTQ5XT0iRXhjbGFtYXRpb25NYXJrIix0W3QuVHdvPTUwXT0iVHdvIix0W3QuQXRTaWduPTUwXT0iQXRTaWduIix0W3QuVGhyZWU9NTFdPSJUaHJlZSIsdFt0LlBvdW5kU2lnbj01MV09IlBvdW5kU2lnbiIsdFt0Lkhhc2g9NTFdPSJIYXNoIix0W3QuRm91cj01Ml09IkZvdXIiLHRbdC5Eb2xsYXJTaWduPTUyXT0iRG9sbGFyU2lnbiIsdFt0LkZpdmU9NTNdPSJGaXZlIix0W3QuUGVyY2VudFNpZ249NTNdPSJQZXJjZW50U2lnbiIsdFt0LlNpeD01NF09IlNpeCIsdFt0LkNhcmV0PTU0XT0iQ2FyZXQiLHRbdC5IYXQ9NTRdPSJIYXQiLHRbdC5TZXZlbj01NV09IlNldmVuIix0W3QuQW1wZXJzYW5kPTU1XT0iQW1wZXJzYW5kIix0W3QuRWlnaHQ9NTZdPSJFaWdodCIsdFt0LlN0YXI9NTZdPSJTdGFyIix0W3QuQXN0ZXJpaz01Nl09IkFzdGVyaWsiLHRbdC5OaW5lPTU3XT0iTmluZSIsdFt0Lk9wZW5QYXJlbj01N109Ik9wZW5QYXJlbiIsdFt0LkE9NjVdPSJBIix0W3QuQj02Nl09IkIiLHRbdC5DPTY3XT0iQyIsdFt0LkQ9NjhdPSJEIix0W3QuRT02OV09IkUiLHRbdC5GPTcwXT0iRiIsdFt0Lkc9NzFdPSJHIix0W3QuSD03Ml09IkgiLHRbdC5JPTczXT0iSSIsdFt0Lko9NzRdPSJKIix0W3QuSz03NV09IksiLHRbdC5MPTc2XT0iTCIsdFt0Lk09NzddPSJNIix0W3QuTj03OF09Ik4iLHRbdC5PPTc5XT0iTyIsdFt0LlA9ODBdPSJQIix0W3QuUT04MV09IlEiLHRbdC5SPTgyXT0iUiIsdFt0LlM9ODNdPSJTIix0W3QuVD04NF09IlQiLHRbdC5VPTg1XT0iVSIsdFt0LlY9ODZdPSJWIix0W3QuVz04N109IlciLHRbdC5YPTg4XT0iWCIsdFt0Llk9ODldPSJZIix0W3QuWj05MF09IloiLHRbdC5MZWZ0V2luZG93S2V5PTkxXT0iTGVmdFdpbmRvd0tleSIsdFt0LlJpZ2h0V2luZG93S2V5PTkyXT0iUmlnaHRXaW5kb3dLZXkiLHRbdC5TZWxlY3RLZXk9OTNdPSJTZWxlY3RLZXkiLHRbdC5OdW1wYWQwPTk2XT0iTnVtcGFkMCIsdFt0Lk51bXBhZDE9OTddPSJOdW1wYWQxIix0W3QuTnVtcGFkMj05OF09Ik51bXBhZDIiLHRbdC5OdW1wYWQzPTk5XT0iTnVtcGFkMyIsdFt0Lk51bXBhZDQ9MTAwXT0iTnVtcGFkNCIsdFt0Lk51bXBhZDU9MTAxXT0iTnVtcGFkNSIsdFt0Lk51bXBhZDY9MTAyXT0iTnVtcGFkNiIsdFt0Lk51bXBhZDc9MTAzXT0iTnVtcGFkNyIsdFt0Lk51bXBhZDg9MTA0XT0iTnVtcGFkOCIsdFt0Lk51bXBhZDk9MTA1XT0iTnVtcGFkOSIsdFt0Lk11bHRpcGx5PTEwNl09Ik11bHRpcGx5Iix0W3QuQWRkPTEwN109IkFkZCIsdFt0LlN1YnRyYWN0PTEwOV09IlN1YnRyYWN0Iix0W3QuRGVjaW1hbFBvaW50PTExMF09IkRlY2ltYWxQb2ludCIsdFt0LkRpdmlkZT0xMTFdPSJEaXZpZGUiLHRbdC5GMT0xMTJdPSJGMSIsdFt0LkYyPTExM109IkYyIix0W3QuRjM9MTE0XT0iRjMiLHRbdC5GND0xMTVdPSJGNCIsdFt0LkY1PTExNl09IkY1Iix0W3QuRjY9MTE3XT0iRjYiLHRbdC5GNz0xMThdPSJGNyIsdFt0LkY4PTExOV09IkY4Iix0W3QuRjk9MTIwXT0iRjkiLHRbdC5GMTA9MTIxXT0iRjEwIix0W3QuRjExPTEyMl09IkYxMSIsdFt0LkYxMj0xMjNdPSJGMTIiLHRbdC5OdW1Mb2NrPTE0NF09Ik51bUxvY2siLHRbdC5TY3JvbGxMb2NrPTE0NV09IlNjcm9sbExvY2siLHRbdC5TZW1pQ29sb249MTg2XT0iU2VtaUNvbG9uIix0W3QuRXF1YWxzPTE4N109IkVxdWFscyIsdFt0LkNvbW1hPTE4OF09IkNvbW1hIix0W3QuRGFzaD0xODldPSJEYXNoIix0W3QuUGVyaW9kPTE5MF09IlBlcmlvZCIsdFt0LlVuZGVyU2NvcmU9MTg5XT0iVW5kZXJTY29yZSIsdFt0LlBsdXNTaWduPTE4N109IlBsdXNTaWduIix0W3QuRm9yd2FyZFNsYXNoPTE5MV09IkZvcndhcmRTbGFzaCIsdFt0LlRpbGRlPTE5Ml09IlRpbGRlIix0W3QuR3JhdmVBY2NlbnQ9MTkyXT0iR3JhdmVBY2NlbnQiLHRbdC5PcGVuQnJhY2tldD0yMTldPSJPcGVuQnJhY2tldCIsdFt0LkNsb3NlZEJyYWNrZXQ9MjIxXT0iQ2xvc2VkQnJhY2tldCIsdFt0LlF1b3RlPTIyMl09IlF1b3RlIn0pKE9BfHwoT0E9e30pKTtuZj1jbGFzc3tkb21Ob2RlO21hcENvbWJvc1RvSGFuZGxlcnM9bmV3IE1hcDtwcmVzc2VkS2V5cz1uZXcgU2V0O2NvbnN0cnVjdG9yKGUpe3RoaXMuZG9tTm9kZT1lLHRoaXMuc3RhcnRMaXN0ZW5pbmcoKX1rZXlFbnVtPU9BO29uKGUpe2xldCBhPW5ldyBBdC5yeGpzLlN1YmplY3Q7cmV0dXJuIHRoaXMucmVnaXN0ZXJLZXlzKGUsYSksYX10cmlnZ2VyS2V5UHJlc3MoZSl7Zm9yKGxldCBhIG9mIGUpdGhpcy5wcmVzc2VkS2V5cy5hZGQoYSk7dGhpcy5jaGVja01hdGNoaW5nS2V5Ym9hcmRTdWJqZWN0cygpO2ZvcihsZXQgYSBvZiBlKXRoaXMucHJlc3NlZEtleXMuZGVsZXRlKGEpfXN0YXJ0TGlzdGVuaW5nKCl7dGhpcy5kb21Ob2RlLmFkZEV2ZW50TGlzdGVuZXIoImtleWRvd24iLHRoaXMuaGFuZGxlS2V5RG93biksdGhpcy5kb21Ob2RlLmFkZEV2ZW50TGlzdGVuZXIoImtleXVwIix0aGlzLmhhbmRsZUtleVVwKX1zdG9wTGlzdGVuaW5nKCl7dGhpcy5kb21Ob2RlLnJlbW92ZUV2ZW50TGlzdGVuZXIoImtleWRvd24iLHRoaXMuaGFuZGxlS2V5RG93biksdGhpcy5kb21Ob2RlLnJlbW92ZUV2ZW50TGlzdGVuZXIoImtleXVwIix0aGlzLmhhbmRsZUtleVVwKX1jbGVhcigpe3RoaXMuc3RvcExpc3RlbmluZygpLHRoaXMubWFwQ29tYm9zVG9IYW5kbGVycy5jbGVhcigpLHRoaXMucHJlc3NlZEtleXMuY2xlYXIoKX1oYW5kbGVLZXlEb3duPWU9Pnt0aGlzLnByZXNzZWRLZXlzLmFkZChlLmtleUNvZGUpLHRoaXMuY2hlY2tNYXRjaGluZ0tleWJvYXJkU3ViamVjdHMoZSl9O2NoZWNrTWF0Y2hpbmdLZXlib2FyZFN1YmplY3RzKGUpe3RoaXMubWFwQ29tYm9zVG9IYW5kbGVycy5mb3JFYWNoKChhLGkpPT57dGhpcy5hcmVBbGxLZXlzUHJlc3NlZChpKSYmYS5uZXh0KGUpfSl9aGFuZGxlS2V5VXA9ZT0+e3RoaXMucHJlc3NlZEtleXMuZGVsZXRlKGUua2V5Q29kZSl9O2FyZUFsbEtleXNQcmVzc2VkKGUpe2xldCBhPSEwO3JldHVybiBlLmZvckVhY2goaT0+e3RoaXMucHJlc3NlZEtleXMuaGFzKGkpfHwoYT0hMSl9KSxhfXJlZ2lzdGVyS2V5cyhlLGEpe2lmKCF0aGlzLm1hcENvbWJvc1RvSGFuZGxlcnMuaGFzKGUpKXRoaXMubWFwQ29tYm9zVG9IYW5kbGVycy5zZXQoZSxhKTtlbHNlIHJldHVybiB0aGlzLm1hcENvbWJvc1RvSGFuZGxlcnMuZ2V0KGUpfX19KTt2YXIgRzIsZWw9YigoKT0+e0ozKCk7RkEoKTtTY2UoKTtLdSgpO0NjZSgpO19jZSgpO0cyPWNsYXNzIHR7c3RhdGljIGluaXRpYWxpemF0aW9uUHJvbWlzZT1udWxsO3N0YXRpYyBhc3luYyBzZXR1cERvbVRvb2xzKGU9e30pe3JldHVybiFlLmlnbm9yZUdsb2JhbCYmdC5pbml0aWFsaXphdGlvblByb21pc2U/YXdhaXQgdC5pbml0aWFsaXphdGlvblByb21pc2U6ZS5pZ25vcmVHbG9iYWw/bmV3IHQoZSk6KHQuaW5pdGlhbGl6YXRpb25Qcm9taXNlPShhc3luYygpPT57bGV0IGE7aWYoZ2xvYmFsVGhpcy5kZWVzRG9tVG9vbHMpYT1nbG9iYWxUaGlzLmRlZXNEb21Ub29scztlbHNle2dsb2JhbFRoaXMuZGVlc0RvbVRvb2xzPW5ldyB0KGUpLGE9Z2xvYmFsVGhpcy5kZWVzRG9tVG9vbHM7bGV0IGk9KCk9PnsoZG9jdW1lbnQucmVhZHlTdGF0ZT09PSJpbnRlcmFjdGl2ZSJ8fGRvY3VtZW50LnJlYWR5U3RhdGU9PT0iY29tcGxldGUiKSYmKGEuZWxlbWVudHMuaGVhZEVsZW1lbnQ9ZG9jdW1lbnQucXVlcnlTZWxlY3RvcigiaGVhZCIpLGEuZWxlbWVudHMuYm9keUVsZW1lbnQ9ZG9jdW1lbnQucXVlcnlTZWxlY3RvcigiYm9keSIpLGEua2V5Ym9hcmQ9bmV3IG5mKGRvY3VtZW50LmJvZHkpLGEuZG9tUmVhZHkucmVzb2x2ZSgpKX07ZG9jdW1lbnQucmVhZHlTdGF0ZT09PSJpbnRlcmFjdGl2ZSJ8fGRvY3VtZW50LnJlYWR5U3RhdGU9PT0iY29tcGxldGUiP2koKTpkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCJyZWFkeXN0YXRlY2hhbmdlIixpKSxhLmRvbVRvb2xzUmVhZHkucmVzb2x2ZSgpfXJldHVybiBhd2FpdCBhLmRvbVRvb2xzUmVhZHkucHJvbWlzZSxhfSkoKSxhd2FpdCB0LmluaXRpYWxpemF0aW9uUHJvbWlzZSl9c3RhdGljIGdldEdsb2JhbERvbVRvb2xzU3luYygpe2lmKCFnbG9iYWxUaGlzLmRlZXNEb21Ub29scyl0aHJvdyBuZXcgRXJyb3IoIllvdSB0cmllZCB0byBhY2Nlc3MgZG9tdG9vbHMgc3luY2hyb25vdXNseSB0b28gZWFybHkiKTtyZXR1cm4gZ2xvYmFsVGhpcy5kZWVzRG9tVG9vbHN9ZWxlbWVudHM9e2hlYWRFbGVtZW50Om51bGwsYm9keUVsZW1lbnQ6bnVsbH07d2Vic2V0dXA9bmV3IHU1KHttZXRhT2JqZWN0Ont0aXRsZToiIn19KTtzbWFydHN0YXRlPW5ldyBHbi5TbWFydHN0YXRlO2RvbVRvb2xzU3RhdGVQYXJ0PXRoaXMuc21hcnRzdGF0ZS5nZXRTdGF0ZVBhcnQoImRvbXRvb2xzIix7dmlydHVhbFZpZXdwb3J0OiJuYXRpdmUiLGp3dDpudWxsfSk7cm91dGVyPW5ldyBXbi5TbWFydFJvdXRlcih7ZGVidWc6ITF9KTtjb252ZW5pZW5jZT17dHlwZWRyZXF1ZXN0OmxhLHNtYXJ0ZGVsYXk6ZHQsc21hcnRqc29uOkMxLHNtYXJ0dXJsOllufTtkZWVzQ29tbXM9bmV3IF82LkRlZXNDb21tcztzY3JvbGxlcj1uZXcgcmYodGhpcyk7dGhlbWVNYW5hZ2VyPW5ldyBzZih0aGlzKTtrZXlib2FyZD1udWxsO2RvbVRvb2xzUmVhZHk9QmUuZGVmZXIoKTtkb21SZWFkeT1CZS5kZWZlcigpO2dsb2JhbFN0eWxlc1JlYWR5PUJlLmRlZmVyKCk7Y29uc3RydWN0b3IoZSl7fXJ1bk9uY2VUcmFja2VyU3RyaW5nTWFwPW5ldyBtNS5TdHJpbmdtYXA7cnVuT25jZVJlc3VsdE1hcD1uZXcgbTUuRmFzdE1hcDtydW5PbmNlRXJyb3JNYXA9bmV3IG01LkZhc3RNYXA7YXN5bmMgcnVuT25jZShlLGEpe2xldCBpPWAke2V9K3J1bm5pbmdDaGVja2A7aWYoIXRoaXMucnVuT25jZVRyYWNrZXJTdHJpbmdNYXAuY2hlY2tTdHJpbmcoZSkpe3RoaXMucnVuT25jZVRyYWNrZXJTdHJpbmdNYXAuYWRkU3RyaW5nKGUpLHRoaXMucnVuT25jZVRyYWNrZXJTdHJpbmdNYXAuYWRkU3RyaW5nKGkpO3RyeXtsZXQgcj1hd2FpdCBhKCk7dGhpcy5ydW5PbmNlUmVzdWx0TWFwLmFkZFRvTWFwKGUscil9Y2F0Y2gocil7dGhpcy5ydW5PbmNlRXJyb3JNYXAuYWRkVG9NYXAoZSxyKX1maW5hbGx5e3RoaXMucnVuT25jZVRyYWNrZXJTdHJpbmdNYXAucmVtb3ZlU3RyaW5nKGkpfX1yZXR1cm4gYXdhaXQgdGhpcy5ydW5PbmNlVHJhY2tlclN0cmluZ01hcC5yZWdpc3RlclVudGlsVHJ1ZShyPT4hci5pbmNsdWRlcyhpKSwoKT0+e2xldCByPXRoaXMucnVuT25jZUVycm9yTWFwLmdldEJ5S2V5KGUpO2lmKHIpdGhyb3cgcjtyZXR1cm4gdGhpcy5ydW5PbmNlUmVzdWx0TWFwLmdldEJ5S2V5KGUpfSl9YXN5bmMgc2V0R2xvYmFsU3R5bGVzKGUpe2F3YWl0IHRoaXMuZG9tUmVhZHkucHJvbWlzZTtsZXQgYT1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJzdHlsZSIpO2EudHlwZT0idGV4dC9jc3MiLGEuYXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUoZSkpLHRoaXMuZWxlbWVudHMuaGVhZEVsZW1lbnQuYXBwZW5kQ2hpbGQoYSl9YXN5bmMgc2V0RXh0ZXJuYWxTY3JpcHQoZSl7YXdhaXQgdGhpcy5kb21SZWFkeS5wcm9taXNlO2xldCBhPUJlLmRlZmVyKCksaT1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJzY3JpcHQiKTtpLnNyYz1lLGkuYWRkRXZlbnRMaXN0ZW5lcigibG9hZCIsZnVuY3Rpb24oKXthLnJlc29sdmUoKX0pLChkb2N1bWVudC5oZWFkfHxkb2N1bWVudC5ib2R5KS5hcHBlbmQoaSksYXdhaXQgYS5wcm9taXNlfWFzeW5jIHNldEV4dGVybmFsQ3NzKGUpe2xldCBhPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImxpbmsiKTthLnJlbD0ic3R5bGVzaGVldCIsYS5jcm9zc09yaWdpbj0iYW5vbnltb3VzIixhLmhyZWY9ZSxkb2N1bWVudC5oZWFkLmFwcGVuZChhKX1hc3luYyBzZXRXZWJzaXRlSW5mbyhlKXthd2FpdCB0aGlzLndlYnNldHVwLnNldHVwKGUpLGF3YWl0IHRoaXMud2Vic2V0dXAucmVhZHlQcm9taXNlfX19KTt2YXIgb2YsVGNlLExjZT1iKCgpPT57ZWwoKTtkcigpO29mPSgoKT0+e2xldCB0PW5hdmlnYXRvci51c2VyQWdlbnQuaW5kZXhPZigiTWFjIE9TIFgiKT09PS0xP1FgYC5jc3NUZXh0OiIiO3JldHVybiBRYAogICAgLyogd2lkdGggKi8KICAgIDo6LXdlYmtpdC1zY3JvbGxiYXIgewogICAgICB3aWR0aDogMHB4OwogICAgfQogICAgYm9keSB7CiAgICAgIHNjcm9sbGJhci13aWR0aDogbm9uZTsKICAgIH0KICBgLmNzc1RleHR9KSgpLFRjZT1RYAogIC8qCiAgQGZvbnQtZmFjZSB7CiAgICBmb250LWZhbWlseTogJ01hdGVyaWFsIEljb25zJzsKICAgIGZvbnQtc3R5bGU6IG5vcm1hbDsKICAgIGZvbnQtd2VpZ2h0OiA0MDA7CiAgICBzcmM6IHVybChodHRwczovL2ZvbnRzLmdzdGF0aWMuY29tL3MvbWF0ZXJpYWxpY29ucy92NDIvZmxVaFJxNnR6WmNsUUVKLVZkZy1JdWlhRHNOY0loUTh0US53b2ZmMikKICAgICAgZm9ybWF0KCd3b2ZmMicpOwogIH0gKi8KCiAgLyogZ2xvYmFsIGJvZHkgc3R5bGVzICovCiAgYm9keSB7CiAgICBtYXJnaW46IDBweDsKICAgIGZvbnQtZmFtaWx5OiAnR2Vpc3QgU2FucycsICdJbnRlcicsIHNhbnMtc2VyaWY7CiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94OwogIH0KCiAgLyogc2Nyb2xsIGJhciBzdHlsZXMgKi8KICAke3F0KG9mKX0KYC5jc3NUZXh0fSk7dmFyIHYxPXt9O0dlKHYxLHtzZXR1cDooKT0+TUJ0LHN0YXRpY1N0eWxlczooKT0+eEJ0LHN0eWxlczooKT0+d0J0fSk7dmFyIHhCdCx3QnQsTUJ0LCRjZT1iKCgpPT57SjMoKTtlbCgpO0xjZSgpO2RyKCk7eEJ0PVFgCiAgKiB7CiAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kIDAuMXMsIGNvbG9yIDAuMXM7CiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94OwogIH0KCiAgOmhvc3QgewogICAgYm94LXNpemluZzogYm9yZGVyLWJveDsKICAgIGZvbnQtZmFtaWx5OiAnR2Vpc3QgU2FucycsICdJbnRlcicsIHNhbnMtc2VyaWY7CiAgfQoKICAke3F0KG9mKX0KYCx3QnQ9d2AKICA8c3R5bGU+CiAgICAqIHsKICAgICAgdHJhbnNpdGlvbjogYmFja2dyb3VuZCAwLjFzLCBjb2xvciAwLjFzOwogICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94OwogICAgfQoKICAgIDpob3N0IHsKICAgICAgZm9udC1mYW1pbHk6ICdHZWlzdCBTYW5zJywgJ0ludGVyJywgc2Fucy1zZXJpZjsKICAgIH0KCiAgICAke29mfQogIDwvc3R5bGU+CmAsTUJ0PWFzeW5jKHQsZT17fSk9PntsZXQgYT1hd2FpdCBHMi5zZXR1cERvbVRvb2xzKGUpO3JldHVybiBhLnJ1bk9uY2UoImVsZW1lbnRCYXNpY1NldHVwIixhc3luYygpPT57YS5zZXRHbG9iYWxTdHlsZXMoVGNlKX0pLGF9fSk7dmFyIGxmPXt9O0dlKGxmLHtjc3NHcmlkQ29sdW1uczooKT0+ekJ0fSk7dmFyIHpCdCxBY2U9YigoKT0+e3pCdD0odCxlKT0+e2xldCBhPSIiO2ZvcihsZXQgaT0wO2k8dDtpKyspYSs9YCBjYWxjKCgxMDAlLyR7dH0pIC0gKCR7ZSoodC0xKX1weC8ke3R9KSlgO3JldHVybiBhfX0pO3ZhciBNdD17fTtHZShNdCx7U3dlZXRTY3JvbGw6KCk9PlJBLmRlZmF1bHQsc21hcnRkZWxheTooKT0+ZHQsc21hcnRtYXJrZG93bjooKT0+WDMsc21hcnRwcm9taXNlOigpPT5CZSxzbWFydHJvdXRlcjooKT0+V24sc21hcnRyeDooKT0+QXQsc21hcnRzdGF0ZTooKT0+R24sc21hcnRzdHJpbmc6KCk9PmsyLHNtYXJ0dXJsOigpPT5Zbix0eXBlZHJlcXVlc3Q6KCk9PmxhfSk7dmFyIFJBLERjZT1iKCgpPT57dXIoKTtFJCgpO2MyKCk7UkE9VTEoQUEoKSwxKTtKJCgpO0gkKCk7RGkoKTt1MygpO3RBKCk7azYoKX0pO3ZhciBydD17fTtHZShydCx7RG9tVG9vbHM6KCk9PkcyLFR5cGVkUmVxdWVzdDooKT0+ejYsYnJlYWtwb2ludHM6KCk9PlJyLGNzczooKT0+bGYsZWxlbWVudEJhc2ljOigpPT52MSxwbHVnaW5zOigpPT5NdH0pO3ZhciBUdD1iKCgpPT57TEcoKTskY2UoKTtGQSgpO0FjZSgpO2VsKCk7azYoKTtLdSgpO0RjZSgpfSk7dmFyIEJBLEtuLEhBPWIoKCk9PntCQT1VMSh3ZCgpLDEpO0RpKCk7ZHIoKTtURygpO1R0KCk7S249e2NzczpRLHVuc2FmZUNTUzpxdCxMaXRFbGVtZW50OnRzLHByb3BlcnR5Okl9fSk7dmFyIGNmLFBjZT1iKCgpPT57ZHIoKTtIQSgpO1R0KCk7Y2Y9Y2xhc3MgdHtzdGF0aWMgaW5zdGFuY2U9bnVsbDtzdGF0aWMgZ2V0U2luZ2xldG9uKCl7cmV0dXJuIHQuaW5zdGFuY2V8fCh0Lmluc3RhbmNlPW5ldyB0KSx0Lmluc3RhbmNlfWRvbXRvb2xzUHJvbWlzZT1HMi5zZXR1cERvbVRvb2xzKCk7Z29CcmlnaHQ9ITE7YmRWYXJUcmlwbGV0U3RvcmU9W107Y29uc3RydWN0b3IoKXt0aGlzLmRvbXRvb2xzUHJvbWlzZS50aGVuKGFzeW5jIGU9PntlLnRoZW1lTWFuYWdlci50aGVtZU9ic2VydmFibGUuc3Vic2NyaWJlKGFzeW5jIGE9Pnt0aGlzLmdvQnJpZ2h0PWEsYXdhaXQgZS5kb21SZWFkeS5wcm9taXNlO2ZvcihsZXQgaSBvZiB0aGlzLmJkVmFyVHJpcGxldFN0b3JlKWRvY3VtZW50LmJvZHkuc3R5bGUuc2V0UHJvcGVydHkoaS5jc3NWYXJOYW1lLHRoaXMuZ29CcmlnaHQ/aS5icmlnaHRWYWx1ZTppLmRhcmtWYWx1ZSl9KX0pfWdldCBkZWZhdWx0U3R5bGVzKCl7cmV0dXJuIHYxLnN0YXRpY1N0eWxlc31jc3NGb3JEZXNrdG9wKGUpe3JldHVybiBxdChSci5jc3NGb3JEZXNrdG9wKGUpKX1jc3NGb3JOb3RlYm9vayhlKXtyZXR1cm4gcXQoUnIuY3NzRm9yTm90ZWJvb2soZSkpfWNzc0ZvclRhYmxldChlKXtyZXR1cm4gcXQoUnIuY3NzRm9yVGFibGV0KGUpKX1jc3NGb3JQaGFibGV0KGUpe3JldHVybiBxdChSci5jc3NGb3JQaGFibGV0KGUpKX1jc3NGb3JQaG9uZShlKXtyZXR1cm4gcXQoUnIuY3NzRm9yUGhvbmUoZSkpfWJkVGhlbWUoZSxhKXtsZXQgaSxyO0cyLmdldEdsb2JhbERvbVRvb2xzU3luYygpP3I9RzIuZ2V0R2xvYmFsRG9tVG9vbHNTeW5jKCkudGhlbWVNYW5hZ2VyLmdvQnJpZ2h0Qm9vbGVhbj9lOmE6cj1hO2xldCBzPXRoaXMuYmRWYXJUcmlwbGV0U3RvcmUuZmluZChuPT5uLmRhcmtWYWx1ZT09PWEmJm4uYnJpZ2h0VmFsdWU9PT1lKTtpZihzKWk9cy5jc3NWYXJOYW1lO2Vsc2V7bGV0IG49e2Nzc1Zhck5hbWU6YC0tJHtCQS51bmkoKX1gLGJyaWdodFZhbHVlOmUsZGFya1ZhbHVlOmF9O3RoaXMuYmRWYXJUcmlwbGV0U3RvcmUucHVzaChuKSx0aGlzLmRvbXRvb2xzUHJvbWlzZS50aGVuKGFzeW5jIG89Pnthd2FpdCBvLmRvbVJlYWR5LnByb21pc2UsZG9jdW1lbnQuYm9keS5zdHlsZS5zZXRQcm9wZXJ0eShuLmNzc1Zhck5hbWUscil9KSxpPW4uY3NzVmFyTmFtZX1yZXR1cm4gS24udW5zYWZlQ1NTKGB2YXIoJHtpfSwgJHtyfSlgKX1jc3NHcmlkQ29sdW1ucz0oZSxhKT0+e2xldCBpPSIiO2ZvcihsZXQgcj0wO3I8ZTtyKyspaSs9YCBjYWxjKCgxMDAlLyR7ZX0pIC0gKCR7YSooZS0xKX1weC8ke2V9KSlgO3JldHVybiBLbi51bnNhZmVDU1MoaSl9fX0pO3ZhciBxQSxrQnQsVkEsU0J0LEljZSxkZixTcyxDQnQsX0J0LE5jZT1iKCgpPT57VGkoKTtxQT1TeW1ib2wuZm9yKCIiKSxrQnQ9dD0+e2lmKHQ/LnI9PT1xQSlyZXR1cm4gdD8uXyRsaXRTdGF0aWMkfSxWQT10PT4oe18kbGl0U3RhdGljJDp0LHI6cUF9KSxTQnQ9KHQsLi4uZSk9Pih7XyRsaXRTdGF0aWMkOmUucmVkdWNlKChhLGkscik9PmErKHM9PntpZihzLl8kbGl0U3RhdGljJCE9PXZvaWQgMClyZXR1cm4gcy5fJGxpdFN0YXRpYyQ7dGhyb3cgRXJyb3IoYFZhbHVlIHBhc3NlZCB0byAnbGl0ZXJhbCcgZnVuY3Rpb24gbXVzdCBiZSBhICdsaXRlcmFsJyByZXN1bHQ6ICR7c30uIFVzZSAndW5zYWZlU3RhdGljJyB0byBwYXNzIG5vbi1saXRlcmFsIHZhbHVlcywgYnV0CiAgICAgICAgICAgIHRha2UgY2FyZSB0byBlbnN1cmUgcGFnZSBzZWN1cml0eS5gKX0pKGkpK3RbcisxXSx0WzBdKSxyOnFBfSksSWNlPW5ldyBNYXAsZGY9dD0+KGUsLi4uYSk9PntsZXQgaT1hLmxlbmd0aCxyLHMsbj1bXSxvPVtdLGQsYz0wLGg9ITE7Zm9yKDtjPGk7KXtmb3IoZD1lW2NdO2M8aSYmKHM9YVtjXSwocj1rQnQocykpIT09dm9pZCAwKTspZCs9citlWysrY10saD0hMDtjIT09aSYmby5wdXNoKHMpLG4ucHVzaChkKSxjKyt9aWYoYz09PWkmJm4ucHVzaChlW2ldKSxoKXtsZXQgbD1uLmpvaW4oIiQkbGl0JCQiKTsoZT1JY2UuZ2V0KGwpKT09PXZvaWQgMCYmKG4ucmF3PW4sSWNlLnNldChsLGU9bikpLGE9b31yZXR1cm4gdChlLC4uLmEpfSxTcz1kZih3KSxDQnQ9ZGYoSXcpLF9CdD1kZihOdyl9KTt2YXIgRmNlPWIoKCk9PntOY2UoKX0pO3ZhciBCcixYMSxoaSxDcz1iKCgpPT57QnI9e0FUVFJJQlVURToxLENISUxEOjIsUFJPUEVSVFk6MyxCT09MRUFOX0FUVFJJQlVURTo0LEVWRU5UOjUsRUxFTUVOVDo2fSxYMT10PT4oLi4uZSk9Pih7XyRsaXREaXJlY3RpdmUkOnQsdmFsdWVzOmV9KSxoaT1jbGFzc3tjb25zdHJ1Y3RvcihlKXt9Z2V0IF8kQVUoKXtyZXR1cm4gdGhpcy5fJEFNLl8kQVV9XyRBVChlLGEsaSl7dGhpcy5fJEN0PWUsdGhpcy5fJEFNPWEsdGhpcy5fJENpPWl9XyRBUyhlLGEpe3JldHVybiB0aGlzLnVwZGF0ZShlLGEpfXVwZGF0ZShlLGEpe3JldHVybiB0aGlzLnJlbmRlciguLi5hKX19fSk7dmFyIHRsLGc1LE9jZT1iKCgpPT57VGkoKTtDcygpO3RsPWNsYXNzIGV4dGVuZHMgaGl7Y29uc3RydWN0b3IoZSl7aWYoc3VwZXIoZSksdGhpcy5pdD1TMSxlLnR5cGUhPT1Cci5DSElMRCl0aHJvdyBFcnJvcih0aGlzLmNvbnN0cnVjdG9yLmRpcmVjdGl2ZU5hbWUrIigpIGNhbiBvbmx5IGJlIHVzZWQgaW4gY2hpbGQgYmluZGluZ3MiKX1yZW5kZXIoZSl7aWYoZT09PVMxfHxlPT1udWxsKXJldHVybiB0aGlzLl90PXZvaWQgMCx0aGlzLml0PWU7aWYoZT09PWcxKXJldHVybiBlO2lmKHR5cGVvZiBlIT0ic3RyaW5nIil0aHJvdyBFcnJvcih0aGlzLmNvbnN0cnVjdG9yLmRpcmVjdGl2ZU5hbWUrIigpIGNhbGxlZCB3aXRoIGEgbm9uLXN0cmluZyB2YWx1ZSIpO2lmKGU9PT10aGlzLml0KXJldHVybiB0aGlzLl90O3RoaXMuaXQ9ZTtsZXQgYT1bZV07cmV0dXJuIGEucmF3PWEsdGhpcy5fdD17XyRsaXRUeXBlJDp0aGlzLmNvbnN0cnVjdG9yLnJlc3VsdFR5cGUsc3RyaW5nczphLHZhbHVlczpbXX19fTt0bC5kaXJlY3RpdmVOYW1lPSJ1bnNhZmVIVE1MIix0bC5yZXN1bHRUeXBlPTE7ZzU9WDEodGwpfSk7dmFyIFJjZT1iKCgpPT57T2NlKCl9KTt2YXIgcGUsakE9YigoKT0+e3BlPXQ9PihlLGEpPT57YSE9PXZvaWQgMD9hLmFkZEluaXRpYWxpemVyKCgpPT57Y3VzdG9tRWxlbWVudHMuZGVmaW5lKHQsZSl9KTpjdXN0b21FbGVtZW50cy5kZWZpbmUodCxlKX19KTt2YXIgQmNlPWIoKCk9PntqQSgpfSk7ZnVuY3Rpb24gSih0KXtyZXR1cm4gSSh7Li4udCxzdGF0ZTohMCxhdHRyaWJ1dGU6ITF9KX12YXIgSGNlPWIoKCk9PntnNygpO30pO2Z1bmN0aW9uIFRCdCh0KXtyZXR1cm4oZSxhKT0+e2xldCBpPXR5cGVvZiBlPT0iZnVuY3Rpb24iP2U6ZVthXTtPYmplY3QuYXNzaWduKGksdCl9fXZhciBxY2U9YigoKT0+e30pO3ZhciBwaSxhbD1iKCgpPT57cGk9KHQsZSxhKT0+KGEuY29uZmlndXJhYmxlPSEwLGEuZW51bWVyYWJsZT0hMCxSZWZsZWN0LmRlY29yYXRlJiZ0eXBlb2YgZSE9Im9iamVjdCImJk9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LGUsYSksYSl9KTtmdW5jdGlvbiBVQSh0LGUpe3JldHVybihhLGkscik9PntsZXQgcz1uPT5uLnJlbmRlclJvb3Q/LnF1ZXJ5U2VsZWN0b3IodCk/P251bGw7aWYoZSl7bGV0e2dldDpuLHNldDpvfT10eXBlb2YgaT09Im9iamVjdCI/YTpyPz8oKCk9PntsZXQgZD1TeW1ib2woKTtyZXR1cm57Z2V0KCl7cmV0dXJuIHRoaXNbZF19LHNldChjKXt0aGlzW2RdPWN9fX0pKCk7cmV0dXJuIHBpKGEsaSx7Z2V0KCl7bGV0IGQ9bi5jYWxsKHRoaXMpO3JldHVybiBkPT09dm9pZCAwJiYoZD1zKHRoaXMpLChkIT09bnVsbHx8dGhpcy5oYXNVcGRhdGVkKSYmby5jYWxsKHRoaXMsZCkpLGR9fSl9cmV0dXJuIHBpKGEsaSx7Z2V0KCl7cmV0dXJuIHModGhpcyl9fSl9fXZhciBWY2U9YigoKT0+e2FsKCk7fSk7ZnVuY3Rpb24gV0EodCl7cmV0dXJuKGUsYSk9PnBpKGUsYSx7Z2V0KCl7cmV0dXJuKHRoaXMucmVuZGVyUm9vdD8/KExCdD8/PWRvY3VtZW50LmNyZWF0ZURvY3VtZW50RnJhZ21lbnQoKSkpLnF1ZXJ5U2VsZWN0b3JBbGwodCl9fSl9dmFyIExCdCxqY2U9YigoKT0+e2FsKCk7fSk7ZnVuY3Rpb24gR0EodCl7cmV0dXJuKGUsYSk9PnBpKGUsYSx7YXN5bmMgZ2V0KCl7cmV0dXJuIGF3YWl0IHRoaXMudXBkYXRlQ29tcGxldGUsdGhpcy5yZW5kZXJSb290Py5xdWVyeVNlbGVjdG9yKHQpPz9udWxsfX0pfXZhciBVY2U9YigoKT0+e2FsKCk7fSk7ZnVuY3Rpb24gJEJ0KHQpe3JldHVybihlLGEpPT57bGV0e3Nsb3Q6aSxzZWxlY3RvcjpyfT10Pz97fSxzPSJzbG90IisoaT9gW25hbWU9JHtpfV1gOiI6bm90KFtuYW1lXSkiKTtyZXR1cm4gcGkoZSxhLHtnZXQoKXtsZXQgbj10aGlzLnJlbmRlclJvb3Q/LnF1ZXJ5U2VsZWN0b3Iocyksbz1uPy5hc3NpZ25lZEVsZW1lbnRzKHQpPz9bXTtyZXR1cm4gcj09PXZvaWQgMD9vOm8uZmlsdGVyKGQ9PmQubWF0Y2hlcyhyKSl9fSl9fXZhciBXY2U9YigoKT0+e2FsKCk7fSk7ZnVuY3Rpb24gQUJ0KHQpe3JldHVybihlLGEpPT57bGV0e3Nsb3Q6aX09dD8/e30scj0ic2xvdCIrKGk/YFtuYW1lPSR7aX1dYDoiOm5vdChbbmFtZV0pIik7cmV0dXJuIHBpKGUsYSx7Z2V0KCl7cmV0dXJuIHRoaXMucmVuZGVyUm9vdD8ucXVlcnlTZWxlY3RvcihyKT8uYXNzaWduZWROb2Rlcyh0KT8/W119fSl9fXZhciBHY2U9YigoKT0+e2FsKCk7fSk7dmFyIFljZT1iKCgpPT57akEoKTtnNygpO0hjZSgpO3FjZSgpO1ZjZSgpO2pjZSgpO1VjZSgpO1djZSgpO0djZSgpfSk7dmFyIFpjZSxoZix4ZSxYY2U9YigoKT0+e0hBKCk7WmNlPWZ1bmN0aW9uKHQsZSxhLGkscixzKXtmdW5jdGlvbiBuKHgpe2lmKHghPT12b2lkIDAmJnR5cGVvZiB4IT0iZnVuY3Rpb24iKXRocm93IG5ldyBUeXBlRXJyb3IoIkZ1bmN0aW9uIGV4cGVjdGVkIik7cmV0dXJuIHh9Zm9yKHZhciBvPWkua2luZCxkPW89PT0iZ2V0dGVyIj8iZ2V0IjpvPT09InNldHRlciI/InNldCI6InZhbHVlIixjPSFlJiZ0P2kuc3RhdGljP3Q6dC5wcm90b3R5cGU6bnVsbCxoPWV8fChjP09iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoYyxpLm5hbWUpOnt9KSxsLGY9ITEsZz1hLmxlbmd0aC0xO2c+PTA7Zy0tKXt2YXIgeT17fTtmb3IodmFyIHYgaW4gaSl5W3ZdPXY9PT0iYWNjZXNzIj97fTppW3ZdO2Zvcih2YXIgdiBpbiBpLmFjY2Vzcyl5LmFjY2Vzc1t2XT1pLmFjY2Vzc1t2XTt5LmFkZEluaXRpYWxpemVyPWZ1bmN0aW9uKHgpe2lmKGYpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGFkZCBpbml0aWFsaXplcnMgYWZ0ZXIgZGVjb3JhdGlvbiBoYXMgY29tcGxldGVkIik7cy5wdXNoKG4oeHx8bnVsbCkpfTt2YXIgbT0oMCxhW2ddKShvPT09ImFjY2Vzc29yIj97Z2V0OmguZ2V0LHNldDpoLnNldH06aFtkXSx5KTtpZihvPT09ImFjY2Vzc29yIil7aWYobT09PXZvaWQgMCljb250aW51ZTtpZihtPT09bnVsbHx8dHlwZW9mIG0hPSJvYmplY3QiKXRocm93IG5ldyBUeXBlRXJyb3IoIk9iamVjdCBleHBlY3RlZCIpOyhsPW4obS5nZXQpKSYmKGguZ2V0PWwpLChsPW4obS5zZXQpKSYmKGguc2V0PWwpLChsPW4obS5pbml0KSkmJnIudW5zaGlmdChsKX1lbHNlKGw9bihtKSkmJihvPT09ImZpZWxkIj9yLnVuc2hpZnQobCk6aFtkXT1sKX1jJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoYyxpLm5hbWUsaCksZj0hMH0saGY9ZnVuY3Rpb24odCxlLGEpe2Zvcih2YXIgaT1hcmd1bWVudHMubGVuZ3RoPjIscj0wO3I8ZS5sZW5ndGg7cisrKWE9aT9lW3JdLmNhbGwodCxhKTplW3JdLmNhbGwodCk7cmV0dXJuIGk/YTp2b2lkIDB9LHhlPSgoKT0+e2xldCB0PUtuLkxpdEVsZW1lbnQsZSxhPVtdLGk9W10scixzPVtdLG49W107cmV0dXJuIGNsYXNzIGV4dGVuZHMgdHtzdGF0aWN7bGV0IGQ9dHlwZW9mIFN5bWJvbD09ImZ1bmN0aW9uIiYmU3ltYm9sLm1ldGFkYXRhP09iamVjdC5jcmVhdGUodFtTeW1ib2wubWV0YWRhdGFdPz9udWxsKTp2b2lkIDA7ZT1bS24ucHJvcGVydHkoe3R5cGU6Qm9vbGVhbn0pXSxyPVtLbi5wcm9wZXJ0eSgpXSxaY2UodGhpcyxudWxsLGUse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJnb0JyaWdodCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6Yz0+ImdvQnJpZ2h0ImluIGMsZ2V0OmM9PmMuZ29CcmlnaHQsc2V0OihjLGgpPT57Yy5nb0JyaWdodD1ofX0sbWV0YWRhdGE6ZH0sYSxpKSxaY2UodGhpcyxudWxsLHIse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJkb210b29scyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6Yz0+ImRvbXRvb2xzImluIGMsZ2V0OmM9PmMuZG9tdG9vbHMsc2V0OihjLGgpPT57Yy5kb210b29scz1ofX0sbWV0YWRhdGE6ZH0scyxuKSxkJiZPYmplY3QuZGVmaW5lUHJvcGVydHkodGhpcyxTeW1ib2wubWV0YWRhdGEse2VudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwLHZhbHVlOmR9KX0jZT1oZih0aGlzLGEsITEpO2dldCBnb0JyaWdodCgpe3JldHVybiB0aGlzLiNlfXNldCBnb0JyaWdodChkKXt0aGlzLiNlPWR9ZG9tdG9vbHNQcm9taXNlPWhmKHRoaXMsaSk7I3Q9aGYodGhpcyxzLHZvaWQgMCk7Z2V0IGRvbXRvb2xzKCl7cmV0dXJuIHRoaXMuI3R9c2V0IGRvbXRvb2xzKGQpe3RoaXMuI3Q9ZH1yeFN1YnNjcmlwdGlvbnM9KGhmKHRoaXMsbiksW10pO3RoZW1lU3Vic2NyaXB0aW9uO2VsZW1lbnREb21SZWFkeURlZmVycmVkPXJ0LnBsdWdpbnMuc21hcnRwcm9taXNlLmRlZmVyKCk7ZWxlbWVudERvbVJlYWR5PXRoaXMuZWxlbWVudERvbVJlYWR5RGVmZXJyZWQucHJvbWlzZTtjb25zdHJ1Y3RvcihkPXt9KXtzdXBlcigpLHRoaXMuZG9tdG9vbHNQcm9taXNlPXJ0LmVsZW1lbnRCYXNpYy5zZXR1cCh0aGlzLGQpLHRoaXMuZG9tdG9vbHNQcm9taXNlLnRoZW4oYz0+e3RoaXMuZG9tdG9vbHM9Y30pfWFzeW5jIGNvbm5lY3RlZENhbGxiYWNrKCl7c3VwZXIuY29ubmVjdGVkQ2FsbGJhY2soKTtsZXQgZD1hd2FpdCB0aGlzLmRvbXRvb2xzUHJvbWlzZTt0aGlzLnRoZW1lU3Vic2NyaXB0aW9uPWQudGhlbWVNYW5hZ2VyLnRoZW1lT2JzZXJ2YWJsZS5zdWJzY3JpYmUoYz0+e3RoaXMuZ29CcmlnaHQ9Yyx0aGlzLnRoZW1lQ2hhbmdlZCYmdGhpcy50aGVtZUNoYW5nZWQoYyl9KSx0aGlzLnJ4U3Vic2NyaXB0aW9ucy5wdXNoKHRoaXMudGhlbWVTdWJzY3JpcHRpb24pO2ZvcihsZXQgYyBvZiB0aGlzLnN0YXJ0dXBGdW5jdGlvbnMpYXdhaXQgYygpO3RoaXMuZGlzcGF0Y2hFdmVudChuZXcgQ3VzdG9tRXZlbnQoImRlZXNFbGVtZW50Q29ubmVjdGVkIikpfWZpcnN0VXBkYXRlZChkKXtzdXBlci5maXJzdFVwZGF0ZWQoZCksdGhpcy5lbGVtZW50RG9tUmVhZHlEZWZlcnJlZC5yZXNvbHZlKCl9c3RhcnR1cEZ1bmN0aW9ucz1bXTtyZWdpc3RlclN0YXJ0dXBGdW5jdGlvbihkKXt0aGlzLnN0YXJ0dXBGdW5jdGlvbnMucHVzaChkKX1nYXJiYWdlRnVuY3Rpb25zPVtdO3JlZ2lzdGVyR2FyYmFnZUZ1bmN0aW9uKGQpe3RoaXMuZ2FyYmFnZUZ1bmN0aW9ucy5wdXNoKGQpfWFzeW5jIGRpc2Nvbm5lY3RlZENhbGxiYWNrKCl7YXdhaXQgdGhpcy5kb210b29sc1Byb21pc2Usc3VwZXIuZGlzY29ubmVjdGVkQ2FsbGJhY2soKTtmb3IobGV0IGQgb2YgdGhpcy5yeFN1YnNjcmlwdGlvbnMpZC51bnN1YnNjcmliZSgpO2ZvcihsZXQgZCBvZiB0aGlzLmdhcmJhZ2VGdW5jdGlvbnMpYXdhaXQgZCgpO3RoaXMuZGlzcGF0Y2hFdmVudChuZXcgQ3VzdG9tRXZlbnQoImRlZXNFbGVtZW50RGlzY29ubmVjdGVkIikpfX19KSgpfSk7dmFyIERCdCxLY2UsWUEsRUJ0LFBCdCxJQnQsTkJ0LEZCdCxaQSxRY2UsX3MsUmksT0J0LGI1LFhBLHY1LEtBLGlsPWIoKCk9PntUaSgpOyh7STpEQnR9PUZ3KSxLY2U9dD0+dCxZQT10PT50PT09bnVsbHx8dHlwZW9mIHQhPSJvYmplY3QiJiZ0eXBlb2YgdCE9ImZ1bmN0aW9uIixFQnQ9e0hUTUw6MSxTVkc6MixNQVRITUw6M30sUEJ0PSh0LGUpPT5lPT09dm9pZCAwP3Q/Ll8kbGl0VHlwZSQhPT12b2lkIDA6dD8uXyRsaXRUeXBlJD09PWUsSUJ0PXQ9PnQ/Ll8kbGl0VHlwZSQ/LmghPW51bGwsTkJ0PXQ9PnQ/Ll8kbGl0RGlyZWN0aXZlJCE9PXZvaWQgMCxGQnQ9dD0+dD8uXyRsaXREaXJlY3RpdmUkLFpBPXQ9PnQuc3RyaW5ncz09PXZvaWQgMCxRY2U9KCk9PmRvY3VtZW50LmNyZWF0ZUNvbW1lbnQoIiIpLF9zPSh0LGUsYSk9PntsZXQgaT10Ll8kQUEucGFyZW50Tm9kZSxyPWU9PT12b2lkIDA/dC5fJEFCOmUuXyRBQTtpZihhPT09dm9pZCAwKXtsZXQgcz1pLmluc2VydEJlZm9yZShRY2UoKSxyKSxuPWkuaW5zZXJ0QmVmb3JlKFFjZSgpLHIpO2E9bmV3IERCdChzLG4sdCx0Lm9wdGlvbnMpfWVsc2V7bGV0IHM9YS5fJEFCLm5leHRTaWJsaW5nLG49YS5fJEFNLG89biE9PXQ7aWYobyl7bGV0IGQ7YS5fJEFRPy4odCksYS5fJEFNPXQsYS5fJEFQIT09dm9pZCAwJiYoZD10Ll8kQVUpIT09bi5fJEFVJiZhLl8kQVAoZCl9aWYocyE9PXJ8fG8pe2xldCBkPWEuXyRBQTtmb3IoO2QhPT1zOyl7bGV0IGM9S2NlKGQpLm5leHRTaWJsaW5nO0tjZShpKS5pbnNlcnRCZWZvcmUoZCxyKSxkPWN9fX1yZXR1cm4gYX0sUmk9KHQsZSxhPXQpPT4odC5fJEFJKGUsYSksdCksT0J0PXt9LGI1PSh0LGU9T0J0KT0+dC5fJEFIPWUsWEE9dD0+dC5fJEFILHY1PXQ9Pnt0Ll8kQVIoKSx0Ll8kQUEucmVtb3ZlKCl9LEtBPXQ9Pnt0Ll8kQVIoKX19KTtmdW5jdGlvbiBSQnQodCl7dGhpcy5fJEFOIT09dm9pZCAwPyhwZih0aGlzKSx0aGlzLl8kQU09dCxKY2UodGhpcykpOnRoaXMuXyRBTT10fWZ1bmN0aW9uIEJCdCh0LGU9ITEsYT0wKXtsZXQgaT10aGlzLl8kQUgscj10aGlzLl8kQU47aWYociE9PXZvaWQgMCYmci5zaXplIT09MClpZihlKWlmKEFycmF5LmlzQXJyYXkoaSkpZm9yKGxldCBzPWE7czxpLmxlbmd0aDtzKyspeTUoaVtzXSwhMSkscGYoaVtzXSk7ZWxzZSBpIT1udWxsJiYoeTUoaSwhMSkscGYoaSkpO2Vsc2UgeTUodGhpcyx0KX12YXIgeTUscGYsSmNlLEhCdCxxYSx1Zj1iKCgpPT57aWwoKTtDcygpO0NzKCk7eTU9KHQsZSk9PntsZXQgYT10Ll8kQU47aWYoYT09PXZvaWQgMClyZXR1cm4hMTtmb3IobGV0IGkgb2YgYSlpLl8kQU8/LihlLCExKSx5NShpLGUpO3JldHVybiEwfSxwZj10PT57bGV0IGUsYTtkb3tpZigoZT10Ll8kQU0pPT09dm9pZCAwKWJyZWFrO2E9ZS5fJEFOLGEuZGVsZXRlKHQpLHQ9ZX13aGlsZShhPy5zaXplPT09MCl9LEpjZT10PT57Zm9yKGxldCBlO2U9dC5fJEFNO3Q9ZSl7bGV0IGE9ZS5fJEFOO2lmKGE9PT12b2lkIDApZS5fJEFOPWE9bmV3IFNldDtlbHNlIGlmKGEuaGFzKHQpKWJyZWFrO2EuYWRkKHQpLEhCdChlKX19O0hCdD10PT57dC50eXBlPT1Cci5DSElMRCYmKHQuXyRBUD8/PUJCdCx0Ll8kQVE/Pz1SQnQpfSxxYT1jbGFzcyBleHRlbmRzIGhpe2NvbnN0cnVjdG9yKCl7c3VwZXIoLi4uYXJndW1lbnRzKSx0aGlzLl8kQU49dm9pZCAwfV8kQVQoZSxhLGkpe3N1cGVyLl8kQVQoZSxhLGkpLEpjZSh0aGlzKSx0aGlzLmlzQ29ubmVjdGVkPWUuXyRBVX1fJEFPKGUsYT0hMCl7ZSE9PXRoaXMuaXNDb25uZWN0ZWQmJih0aGlzLmlzQ29ubmVjdGVkPWUsZT90aGlzLnJlY29ubmVjdGVkPy4oKTp0aGlzLmRpc2Nvbm5lY3RlZD8uKCkpLGEmJih5NSh0aGlzLGUpLHBmKHRoaXMpKX1zZXRWYWx1ZShlKXtpZihaQSh0aGlzLl8kQ3QpKXRoaXMuXyRDdC5fJEFJKGUsdGhpcyk7ZWxzZXtsZXQgYT1bLi4udGhpcy5fJEN0Ll8kQUhdO2FbdGhpcy5fJENpXT1lLHRoaXMuXyRDdC5fJEFJKGEsdGhpcywwKX19ZGlzY29ubmVjdGVkKCl7fXJlY29ubmVjdGVkKCl7fX19KTt2YXIgZmY9YigoKT0+e3VmKCl9KTt2YXIgUUEsZTZlLHFCdCx0NmU9YigoKT0+e2RyKCk7ZmYoKTtRQT1jbGFzcyBleHRlbmRzIHFhe3Byb21pc2U7aGFzUHJvbWlzZVNldHRsZWQ9ITE7cmVuZGVyKGUpe3JldHVybiB0aGlzLnByb21pc2UhPT1lJiYodGhpcy5wcm9taXNlPWUsdGhpcy5pc0Nvbm5lY3RlZCYmdGhpcy5oYW5kbGVQcm9taXNlKGUpKSxnMX1oYW5kbGVQcm9taXNlKGUpe3RoaXMuaGFzUHJvbWlzZVNldHRsZWQ9ITEsZS50aGVuKGE9Pnt0aGlzLnByb21pc2U9PT1lJiYhdGhpcy5oYXNQcm9taXNlU2V0dGxlZCYmKHRoaXMuc2V0VmFsdWUoYSksdGhpcy5oYXNQcm9taXNlU2V0dGxlZD0hMCl9KS5jYXRjaChhPT57dGhpcy5wcm9taXNlPT09ZSYmIXRoaXMuaGFzUHJvbWlzZVNldHRsZWQmJih0aGlzLnNldFZhbHVlKGEpLHRoaXMuaGFzUHJvbWlzZVNldHRsZWQ9ITApfSl9ZGlzY29ubmVjdGVkKCl7dGhpcy5oYXNQcm9taXNlU2V0dGxlZD0hMH1yZWNvbm5lY3RlZCgpe3RoaXMuaGFzUHJvbWlzZVNldHRsZWR8fHRoaXMuaGFuZGxlUHJvbWlzZSh0aGlzLnByb21pc2UpfX0sZTZlPVgxKFFBKSxxQnQ9dD0+ZTZlKHQoKSl9KTt2YXIgSkEsVkJ0LGE2ZT1iKCgpPT57ZHIoKTtmZigpO0RpKCk7SkE9Y2xhc3MgZXh0ZW5kcyBxYXtvYnNlcnZhYmxlO3N1Yj1udWxsO3JlbmRlcihlKXtyZXR1cm4gdGhpcy5vYnNlcnZhYmxlIT09ZSYmKHRoaXMuc3ViPy51bnN1YnNjcmliZSgpLHRoaXMub2JzZXJ2YWJsZT1lLHRoaXMuaXNDb25uZWN0ZWQmJnRoaXMuc3Vic2NyaWJlKGUpKSxnMX1zdWJzY3JpYmUoZSl7dGhpcy5zdWI9ZS5zdWJzY3JpYmUoYT0+e3RoaXMuc2V0VmFsdWUoYSl9KX1kaXNjb25uZWN0ZWQoKXt0aGlzLnN1Yj8udW5zdWJzY3JpYmUoKX1yZWNvbm5lY3RlZCgpe3RoaXMuc3Vic2NyaWJlKHRoaXMub2JzZXJ2YWJsZSl9fSxWQnQ9WDEoSkEpfSk7dmFyIGVELGk2ZSxyNmU9YigoKT0+e2RyKCk7ZmYoKTtEaSgpO2VEPWNsYXNzIGV4dGVuZHMgcWF7b2JzZXJ2YWJsZTt0ZW1wbGF0ZUZuO3N1Yj1udWxsO3JlbmRlcihlLGEpe3JldHVybih0aGlzLm9ic2VydmFibGUhPT1lfHx0aGlzLnRlbXBsYXRlRm4hPT1hKSYmKHRoaXMuc3ViPy51bnN1YnNjcmliZSgpLHRoaXMub2JzZXJ2YWJsZT1lLHRoaXMudGVtcGxhdGVGbj1hLHRoaXMuaXNDb25uZWN0ZWQmJnRoaXMuc3RhcnRTdWJzY3JpcHRpb24oKSksZzF9c3RhcnRTdWJzY3JpcHRpb24oKXt0aGlzLnN1Yj10aGlzLm9ic2VydmFibGUuc3Vic2NyaWJlKGU9PntsZXQgYT10aGlzLnRlbXBsYXRlRm4oZSk7dGhpcy5zZXRWYWx1ZShhKX0pfWRpc2Nvbm5lY3RlZCgpe3RoaXMuc3ViPy51bnN1YnNjcmliZSgpfXJlY29ubmVjdGVkKCl7dGhpcy5zdGFydFN1YnNjcmlwdGlvbigpfX0saTZlPVgxKGVEKX0pO3ZhciB0RCxGMCxPMCxhRD1iKCgpPT57dEQ9YXN5bmModCxlKT0+e2ZvciBhd2FpdChsZXQgYSBvZiB0KWlmKGF3YWl0IGUoYSk9PT0hMSlyZXR1cm59LEYwPWNsYXNze2NvbnN0cnVjdG9yKGUpe3RoaXMuRz1lfWRpc2Nvbm5lY3QoKXt0aGlzLkc9dm9pZCAwfXJlY29ubmVjdChlKXt0aGlzLkc9ZX1kZXJlZigpe3JldHVybiB0aGlzLkd9fSxPMD1jbGFzc3tjb25zdHJ1Y3Rvcigpe3RoaXMuWT12b2lkIDAsdGhpcy5aPXZvaWQgMH1nZXQoKXtyZXR1cm4gdGhpcy5ZfXBhdXNlKCl7dGhpcy5ZPz89bmV3IFByb21pc2UoZT0+dGhpcy5aPWUpfXJlc3VtZSgpe3RoaXMuWj8uKCksdGhpcy5ZPXRoaXMuWj12b2lkIDB9fX0pO3ZhciBzNmUsbjZlLG1mLGlELG82ZT1iKCgpPT57VGkoKTtpbCgpO3VmKCk7YUQoKTtDcygpO3M2ZT10PT4hWUEodCkmJnR5cGVvZiB0LnRoZW49PSJmdW5jdGlvbiIsbjZlPTEwNzM3NDE4MjMsbWY9Y2xhc3MgZXh0ZW5kcyBxYXtjb25zdHJ1Y3Rvcigpe3N1cGVyKC4uLmFyZ3VtZW50cyksdGhpcy5fJEN3dD1uNmUsdGhpcy5fJENidD1bXSx0aGlzLl8kQ0s9bmV3IEYwKHRoaXMpLHRoaXMuXyRDWD1uZXcgTzB9cmVuZGVyKC4uLmUpe3JldHVybiBlLmZpbmQoYT0+IXM2ZShhKSk/P2cxfXVwZGF0ZShlLGEpe2xldCBpPXRoaXMuXyRDYnQscj1pLmxlbmd0aDt0aGlzLl8kQ2J0PWE7bGV0IHM9dGhpcy5fJENLLG49dGhpcy5fJENYO3RoaXMuaXNDb25uZWN0ZWR8fHRoaXMuZGlzY29ubmVjdGVkKCk7Zm9yKGxldCBvPTA7bzxhLmxlbmd0aCYmIShvPnRoaXMuXyRDd3QpO28rKyl7bGV0IGQ9YVtvXTtpZighczZlKGQpKXJldHVybiB0aGlzLl8kQ3d0PW8sZDtvPHImJmQ9PT1pW29dfHwodGhpcy5fJEN3dD1uNmUscj0wLFByb21pc2UucmVzb2x2ZShkKS50aGVuKGFzeW5jIGM9Pntmb3IoO24uZ2V0KCk7KWF3YWl0IG4uZ2V0KCk7bGV0IGg9cy5kZXJlZigpO2lmKGghPT12b2lkIDApe2xldCBsPWguXyRDYnQuaW5kZXhPZihkKTtsPi0xJiZsPGguXyRDd3QmJihoLl8kQ3d0PWwsaC5zZXRWYWx1ZShjKSl9fSkpfXJldHVybiBnMX1kaXNjb25uZWN0ZWQoKXt0aGlzLl8kQ0suZGlzY29ubmVjdCgpLHRoaXMuXyRDWC5wYXVzZSgpfXJlY29ubmVjdGVkKCl7dGhpcy5fJENLLnJlY29ubmVjdCh0aGlzKSx0aGlzLl8kQ1gucmVzdW1lKCl9fSxpRD1YMShtZil9KTt2YXIgbDZlPWIoKCk9PntvNmUoKX0pO3ZhciBybCxqQnQsYzZlPWIoKCk9PntUaSgpO3VmKCk7YUQoKTtDcygpO3JsPWNsYXNzIGV4dGVuZHMgcWF7Y29uc3RydWN0b3IoKXtzdXBlciguLi5hcmd1bWVudHMpLHRoaXMuXyRDSz1uZXcgRjAodGhpcyksdGhpcy5fJENYPW5ldyBPMH1yZW5kZXIoZSxhKXtyZXR1cm4gZzF9dXBkYXRlKGUsW2EsaV0pe2lmKHRoaXMuaXNDb25uZWN0ZWR8fHRoaXMuZGlzY29ubmVjdGVkKCksYT09PXRoaXMuXyRDSilyZXR1cm4gZzE7dGhpcy5fJENKPWE7bGV0IHI9MCx7XyRDSzpzLF8kQ1g6bn09dGhpcztyZXR1cm4gdEQoYSxhc3luYyBvPT57Zm9yKDtuLmdldCgpOylhd2FpdCBuLmdldCgpO2xldCBkPXMuZGVyZWYoKTtpZihkIT09dm9pZCAwKXtpZihkLl8kQ0ohPT1hKXJldHVybiExO2khPT12b2lkIDAmJihvPWkobyxyKSksZC5jb21taXRWYWx1ZShvLHIpLHIrK31yZXR1cm4hMH0pLGcxfWNvbW1pdFZhbHVlKGUsYSl7dGhpcy5zZXRWYWx1ZShlKX1kaXNjb25uZWN0ZWQoKXt0aGlzLl8kQ0suZGlzY29ubmVjdCgpLHRoaXMuXyRDWC5wYXVzZSgpfXJlY29ubmVjdGVkKCl7dGhpcy5fJENLLnJlY29ubmVjdCh0aGlzKSx0aGlzLl8kQ1gucmVzdW1lKCl9fSxqQnQ9WDEocmwpfSk7dmFyIHJELGQ2ZT1iKCgpPT57Q3MoKTtjNmUoKTtpbCgpO3JEPVgxKGNsYXNzIGV4dGVuZHMgcmx7Y29uc3RydWN0b3IodCl7aWYoc3VwZXIodCksdC50eXBlIT09QnIuQ0hJTEQpdGhyb3cgRXJyb3IoImFzeW5jQXBwZW5kIGNhbiBvbmx5IGJlIHVzZWQgaW4gY2hpbGQgZXhwcmVzc2lvbnMiKX11cGRhdGUodCxlKXtyZXR1cm4gdGhpcy5fJEN0dD10LHN1cGVyLnVwZGF0ZSh0LGUpfWNvbW1pdFZhbHVlKHQsZSl7ZT09PTAmJktBKHRoaXMuXyRDdHQpO2xldCBhPV9zKHRoaXMuXyRDdHQpO1JpKGEsdCl9fSl9KTt2YXIgaDZlPWIoKCk9PntkNmUoKX0pO3ZhciBzRCxwNmU9YigoKT0+e1RpKCk7Q3MoKTtpbCgpO3NEPVgxKGNsYXNzIGV4dGVuZHMgaGl7Y29uc3RydWN0b3IoKXtzdXBlciguLi5hcmd1bWVudHMpLHRoaXMua2V5PVMxfXJlbmRlcih0LGUpe3JldHVybiB0aGlzLmtleT10LGV9dXBkYXRlKHQsW2UsYV0pe3JldHVybiBlIT09dGhpcy5rZXkmJihiNSh0KSx0aGlzLmtleT1lKSxhfX0pfSk7dmFyIHU2ZT1iKCgpPT57cDZlKCl9KTt2YXIgZjZlLG5ELG02ZT1iKCgpPT57VGkoKTtDcygpO2lsKCk7ZjZlPSh0LGUsYSk9PntsZXQgaT1uZXcgTWFwO2ZvcihsZXQgcj1lO3I8PWE7cisrKWkuc2V0KHRbcl0scik7cmV0dXJuIGl9LG5EPVgxKGNsYXNzIGV4dGVuZHMgaGl7Y29uc3RydWN0b3IodCl7aWYoc3VwZXIodCksdC50eXBlIT09QnIuQ0hJTEQpdGhyb3cgRXJyb3IoInJlcGVhdCgpIGNhbiBvbmx5IGJlIHVzZWQgaW4gdGV4dCBleHByZXNzaW9ucyIpfWR0KHQsZSxhKXtsZXQgaTthPT09dm9pZCAwP2E9ZTplIT09dm9pZCAwJiYoaT1lKTtsZXQgcj1bXSxzPVtdLG49MDtmb3IobGV0IG8gb2YgdClyW25dPWk/aShvLG4pOm4sc1tuXT1hKG8sbiksbisrO3JldHVybnt2YWx1ZXM6cyxrZXlzOnJ9fXJlbmRlcih0LGUsYSl7cmV0dXJuIHRoaXMuZHQodCxlLGEpLnZhbHVlc311cGRhdGUodCxbZSxhLGldKXtsZXQgcj1YQSh0KSx7dmFsdWVzOnMsa2V5czpufT10aGlzLmR0KGUsYSxpKTtpZighQXJyYXkuaXNBcnJheShyKSlyZXR1cm4gdGhpcy51dD1uLHM7bGV0IG89dGhpcy51dD8/PVtdLGQ9W10sYyxoLGw9MCxmPXIubGVuZ3RoLTEsZz0wLHk9cy5sZW5ndGgtMTtmb3IoO2w8PWYmJmc8PXk7KWlmKHJbbF09PT1udWxsKWwrKztlbHNlIGlmKHJbZl09PT1udWxsKWYtLTtlbHNlIGlmKG9bbF09PT1uW2ddKWRbZ109UmkocltsXSxzW2ddKSxsKyssZysrO2Vsc2UgaWYob1tmXT09PW5beV0pZFt5XT1SaShyW2ZdLHNbeV0pLGYtLSx5LS07ZWxzZSBpZihvW2xdPT09blt5XSlkW3ldPVJpKHJbbF0sc1t5XSksX3ModCxkW3krMV0scltsXSksbCsrLHktLTtlbHNlIGlmKG9bZl09PT1uW2ddKWRbZ109UmkocltmXSxzW2ddKSxfcyh0LHJbbF0scltmXSksZi0tLGcrKztlbHNlIGlmKGM9PT12b2lkIDAmJihjPWY2ZShuLGcseSksaD1mNmUobyxsLGYpKSxjLmhhcyhvW2xdKSlpZihjLmhhcyhvW2ZdKSl7bGV0IHY9aC5nZXQobltnXSksbT12IT09dm9pZCAwP3Jbdl06bnVsbDtpZihtPT09bnVsbCl7bGV0IHg9X3ModCxyW2xdKTtSaSh4LHNbZ10pLGRbZ109eH1lbHNlIGRbZ109UmkobSxzW2ddKSxfcyh0LHJbbF0sbSksclt2XT1udWxsO2crK31lbHNlIHY1KHJbZl0pLGYtLTtlbHNlIHY1KHJbbF0pLGwrKztmb3IoO2c8PXk7KXtsZXQgdj1fcyh0LGRbeSsxXSk7UmkodixzW2ddKSxkW2crK109dn1mb3IoO2w8PWY7KXtsZXQgdj1yW2wrK107diE9PW51bGwmJnY1KHYpfXJldHVybiB0aGlzLnV0PW4sYjUodCxkKSxnMX19KX0pO3ZhciBnNmU9YigoKT0+e202ZSgpfSk7dmFyIFZhPXt9O0dlKFZhLHthc3luY0FwcGVuZDooKT0+ckQsa2V5ZWQ6KCk9PnNELHJlcGVhdDooKT0+bkQscmVzb2x2ZTooKT0+ZTZlLHJlc29sdmVFeGVjOigpPT5xQnQsc3Vic2NyaWJlOigpPT5WQnQsc3Vic2NyaWJlV2l0aFRlbXBsYXRlOigpPT5pNmUsdW50aWw6KCk9PmlEfSk7dmFyIGI2ZT1iKCgpPT57dDZlKCk7YTZlKCk7cjZlKCk7bDZlKCk7aDZlKCk7dTZlKCk7ZzZlKCl9KTt2YXIgeDU9e307R2UoeDUse0RlZXNFbGVtZW50OigpPT54ZSxjc3M6KCk9PlEsY3NzTWFuYWdlcjooKT0+cCxjdXN0b21FbGVtZW50OigpPT5wZSxkaXJlY3RpdmVzOigpPT5WYSxkb210b29sczooKT0+cnQsaHRtbDooKT0+dyxwcm9wZXJ0eTooKT0+SSxxdWVyeTooKT0+VUEscXVlcnlBbGw6KCk9PldBLHF1ZXJ5QXN5bmM6KCk9PkdBLHJlbmRlcjooKT0+cm4sc3RhdGU6KCk9Pkosc3RhdGljOigpPT5Tcyx1bnNhZmVDU1M6KCk9PnF0LHVuc2FmZUhUTUw6KCk9Pmc1LHVuc2FmZVN0YXRpYzooKT0+VkF9KTt2YXIgcCx1ZT1iKCgpPT57UGNlKCk7ZHIoKTtGY2UoKTtSY2UoKTtCY2UoKTtZY2UoKTtUdCgpO1hjZSgpO2I2ZSgpO3A9Y2YuZ2V0U2luZ2xldG9uKCl9KTtmdW5jdGlvbiBVQnQodCxlKXtsZXQgYT1yMlt0XTtyZXR1cm4gdHlwZW9mIGE9PSJvYmplY3QiJiZlP2FbZV18fCJhdXRvIjp0eXBlb2YgYT09Im51bWJlciI/YToiYXV0byJ9dmFyIHIyLFdCdCxnZixoMSx1aT1iKCgpPT57cjI9e2Jhc2U6e2NvbnRlbnQ6ImF1dG8iLGlucHV0RWxlbWVudHM6MX0sZml4ZWQ6e2FwcEJhcjoxMCxzaWRlTWVudToxMCxtb2JpbGVOYXY6MjUwfSxiYWNrZHJvcDp7ZHJvcGRvd246MTk5OSxtb2RhbDoyOTk5LGNvbnRleHRNZW51OjM5OTl9LG92ZXJsYXk6e2Ryb3Bkb3duOjJlMyxtb2RhbDozZTMsY29udGV4dE1lbnU6NGUzLHRvYXN0OjVlM30sbW9kYWxEcm9wZG93bjozNTAwLHd5c2l3eWdNZW51czo0NTAwfTtXQnQ9eyJkZWVzLW1vZGFsIjpyMi5vdmVybGF5Lm1vZGFsLCJkZWVzLXdpbmRvd2xheWVyIjpyMi5vdmVybGF5LmRyb3Bkb3duLCJkZWVzLWNvbnRleHRtZW51IjpyMi5vdmVybGF5LmNvbnRleHRNZW51LCJkZWVzLXRvYXN0IjpyMi5vdmVybGF5LnRvYXN0LCJkZWVzLWFwcHVpLW1haW5tZW51IjpyMi5maXhlZC5hcHBCYXIsImRlZXMtbW9iaWxlbmF2aWdhdGlvbiI6cjIuZml4ZWQubW9iaWxlTmF2LCJkZWVzLXNsYXNoLW1lbnUiOnIyLnd5c2l3eWdNZW51cywiZGVlcy1mb3JtYXR0aW5nLW1lbnUiOnIyLnd5c2l3eWdNZW51c30sZ2Y9Y2xhc3MgdHtzdGF0aWMgaW5zdGFuY2U7YWN0aXZlRWxlbWVudHM9bmV3IFNldDtlbGVtZW50WkluZGV4TWFwPW5ldyBXZWFrTWFwO2N1cnJlbnRaSW5kZXg9MWUzO2NvbnN0cnVjdG9yKCl7fXN0YXRpYyBnZXRJbnN0YW5jZSgpe3JldHVybiB0Lmluc3RhbmNlfHwodC5pbnN0YW5jZT1uZXcgdCksdC5pbnN0YW5jZX1nZXROZXh0WkluZGV4KCl7cmV0dXJuIHRoaXMuY3VycmVudFpJbmRleCs9MTAsdGhpcy5jdXJyZW50WkluZGV4fXJlZ2lzdGVyKGUsYSl7dGhpcy5hY3RpdmVFbGVtZW50cy5hZGQoZSksdGhpcy5lbGVtZW50WkluZGV4TWFwLnNldChlLGEpfXVucmVnaXN0ZXIoZSl7dGhpcy5hY3RpdmVFbGVtZW50cy5kZWxldGUoZSksdGhpcy5lbGVtZW50WkluZGV4TWFwLmRlbGV0ZShlKSx0aGlzLmFjdGl2ZUVsZW1lbnRzLnNpemU9PT0wJiYodGhpcy5jdXJyZW50WkluZGV4PTFlMyl9Z2V0RWxlbWVudFpJbmRleChlKXtyZXR1cm4gdGhpcy5lbGVtZW50WkluZGV4TWFwLmdldChlKX1nZXRBY3RpdmVDb3VudCgpe3JldHVybiB0aGlzLmFjdGl2ZUVsZW1lbnRzLnNpemV9Z2V0Q3VycmVudFpJbmRleCgpe3JldHVybiB0aGlzLmN1cnJlbnRaSW5kZXh9Y2xlYXIoKXt0aGlzLmFjdGl2ZUVsZW1lbnRzLmNsZWFyKCksdGhpcy5lbGVtZW50WkluZGV4TWFwPW5ldyBXZWFrTWFwLHRoaXMuY3VycmVudFpJbmRleD0xZTN9Z2V0QWN0aXZlRWxlbWVudHNJbk9yZGVyKCl7cmV0dXJuIEFycmF5LmZyb20odGhpcy5hY3RpdmVFbGVtZW50cykuc29ydCgoZSxhKT0+e2xldCBpPXRoaXMuZWxlbWVudFpJbmRleE1hcC5nZXQoZSl8fDAscj10aGlzLmVsZW1lbnRaSW5kZXhNYXAuZ2V0KGEpfHwwO3JldHVybiBpLXJ9KX19LGgxPWdmLmdldEluc3RhbmNlKCl9KTt2YXIgUW4sQ2UscWU9YigoKT0+e3VlKCk7UW49e2NvbG9yczp7bGlnaHQ6e2JnUHJpbWFyeToiI2ZmZmZmZiIsYmdTZWNvbmRhcnk6IiNmYWZhZmEiLGJnVGVydGlhcnk6IiNmNGY0ZjUiLHRleHRQcmltYXJ5OiIjMDkwOTBiIix0ZXh0U2Vjb25kYXJ5OiIjMzc0MTUxIix0ZXh0TXV0ZWQ6IiM3MTcxN2EiLGJvcmRlckRlZmF1bHQ6IiNlNWU3ZWIiLGJvcmRlclN1YnRsZToiI2Y0ZjRmNSIsYm9yZGVyU3Ryb25nOiIjZDFkNWRiIixhY2NlbnRQcmltYXJ5OiIjM2I4MmY2IixhY2NlbnRTdWNjZXNzOiIjMjJjNTVlIixhY2NlbnRXYXJuaW5nOiIjZjU5ZTBiIixhY2NlbnRFcnJvcjoiI2VmNDQ0NCJ9LGRhcms6e2JnUHJpbWFyeToiIzA5MDkwYiIsYmdTZWNvbmRhcnk6IiMwYTBhMGEiLGJnVGVydGlhcnk6IiMxODE4MWIiLHRleHRQcmltYXJ5OiIjZmFmYWZhIix0ZXh0U2Vjb25kYXJ5OiIjZDRkNGQ4Iix0ZXh0TXV0ZWQ6IiNhMWExYWEiLGJvcmRlckRlZmF1bHQ6IiMyNzI3MmEiLGJvcmRlclN1YnRsZToiIzFhMWExYSIsYm9yZGVyU3Ryb25nOiIjM2YzZjQ2IixhY2NlbnRQcmltYXJ5OiIjM2I4MmY2IixhY2NlbnRTdWNjZXNzOiIjMjJjNTVlIixhY2NlbnRXYXJuaW5nOiIjZjU5ZTBiIixhY2NlbnRFcnJvcjoiI2VmNDQ0NCJ9fSxzcGFjaW5nOnt4czoiNHB4IixzbToiOHB4IixtZDoiMTJweCIsbGc6IjE2cHgiLHhsOiIyNHB4IiwiMnhsIjoiMzJweCIsIjN4bCI6IjQ4cHgifSxyYWRpdXM6e3hzOiIycHgiLHNtOiI0cHgiLG1kOiI2cHgiLGxnOiI4cHgiLHhsOiIxMnB4IixmdWxsOiI5OTlweCJ9LHNoYWRvd3M6e3hzOiIwIDFweCAycHggMCByZ2IoMCAwIDAgLyAwLjA1KSIsc206IjAgMXB4IDNweCByZ2JhKDAsIDAsIDAsIDAuMSkiLG1kOiIwIDJweCA4cHggcmdiYSgwLCAwLCAwLCAwLjE1KSIsbGc6IjAgNHB4IDEycHggcmdiYSgwLCAwLCAwLCAwLjE1KSJ9LHRyYW5zaXRpb25zOntmYXN0OiIwLjFzIixkZWZhdWx0OiIwLjE1cyIsc2xvdzoiMC4ycyIsc2xvd2VyOiIwLjNzIn0sY29udHJvbEhlaWdodHM6e3NtOiIzMnB4IixtZDoiMzZweCIsbGc6IjQwcHgiLHhsOiI0OHB4In19LENlPVFgCiAgOmhvc3QgewogICAgLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICAgICogU3BhY2luZyBTY2FsZQogICAgICogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwogICAgLS1kZWVzLXNwYWNpbmcteHM6IDRweDsKICAgIC0tZGVlcy1zcGFjaW5nLXNtOiA4cHg7CiAgICAtLWRlZXMtc3BhY2luZy1tZDogMTJweDsKICAgIC0tZGVlcy1zcGFjaW5nLWxnOiAxNnB4OwogICAgLS1kZWVzLXNwYWNpbmcteGw6IDI0cHg7CiAgICAtLWRlZXMtc3BhY2luZy0yeGw6IDMycHg7CiAgICAtLWRlZXMtc3BhY2luZy0zeGw6IDQ4cHg7CgogICAgLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICAgICogQm9yZGVyIFJhZGl1cyBTY2FsZQogICAgICogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwogICAgLS1kZWVzLXJhZGl1cy14czogMnB4OwogICAgLS1kZWVzLXJhZGl1cy1zbTogNHB4OwogICAgLS1kZWVzLXJhZGl1cy1tZDogNnB4OwogICAgLS1kZWVzLXJhZGl1cy1sZzogOHB4OwogICAgLS1kZWVzLXJhZGl1cy14bDogMTJweDsKICAgIC0tZGVlcy1yYWRpdXMtZnVsbDogOTk5cHg7CgogICAgLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICAgICogU2hhZG93IEVsZXZhdGlvbiBTY2FsZQogICAgICogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwogICAgLS1kZWVzLXNoYWRvdy14czogMCAxcHggMnB4IDAgcmdiKDAgMCAwIC8gMC4wNSk7CiAgICAtLWRlZXMtc2hhZG93LXNtOiAwIDFweCAzcHggcmdiYSgwLCAwLCAwLCAwLjEpOwogICAgLS1kZWVzLXNoYWRvdy1tZDogMCAycHggOHB4IHJnYmEoMCwgMCwgMCwgMC4xNSk7CiAgICAtLWRlZXMtc2hhZG93LWxnOiAwIDRweCAxMnB4IHJnYmEoMCwgMCwgMCwgMC4xNSk7CgogICAgLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICAgICogVHJhbnNpdGlvbiBEdXJhdGlvbiBTY2FsZQogICAgICogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwogICAgLS1kZWVzLXRyYW5zaXRpb24tZmFzdDogMC4xczsKICAgIC0tZGVlcy10cmFuc2l0aW9uLWRlZmF1bHQ6IDAuMTVzOwogICAgLS1kZWVzLXRyYW5zaXRpb24tc2xvdzogMC4yczsKICAgIC0tZGVlcy10cmFuc2l0aW9uLXNsb3dlcjogMC4zczsKCiAgICAvKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgICAgKiBDb250cm9sIEhlaWdodCBTY2FsZQogICAgICogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwogICAgLS1kZWVzLWNvbnRyb2wtaGVpZ2h0LXNtOiAzMnB4OwogICAgLS1kZWVzLWNvbnRyb2wtaGVpZ2h0LW1kOiAzNnB4OwogICAgLS1kZWVzLWNvbnRyb2wtaGVpZ2h0LWxnOiA0MHB4OwogICAgLS1kZWVzLWNvbnRyb2wtaGVpZ2h0LXhsOiA0OHB4OwogIH0KYH0pO3ZhciB2NmU9YigoKT0+e30pO3ZhciBvRD1iKCgpPT57QmkoKTtCaSgpfSk7dmFyIHk2ZT1iKCgpPT57fSk7dmFyIHg2ZT1iKCgpPT57fSk7dmFyIHc2ZT1iKCgpPT57fSk7dmFyIE02ZT1iKCgpPT57fSk7dmFyIGxEPXt9O3ZhciBjRD1iKCgpPT57eTZlKCk7eDZlKCk7dzZlKCk7TTZlKCl9KTt2YXIgejZlPWIoKCk9PntjRCgpO2JmKCl9KTt2YXIgazZlPWIoKCk9PntCaSgpfSk7dmFyIFM2ZT1iKCgpPT57fSk7dmFyIEM2ZT1iKCgpPT57QmkoKX0pO3ZhciBfNmU9YigoKT0+e0JpKCl9KTt2YXIgVDZlPWIoKCk9Pnt9KTt2YXIgTDZlPWIoKCk9Pnt9KTt2YXIgJDZlPWIoKCk9Pnt9KTt2YXIgZEQ9e307dmFyIHZmPWIoKCk9PntrNmUoKTtTNmUoKTtDNmUoKTtfNmUoKTtUNmUoKTtMNmUoKTskNmUoKX0pO3ZhciBBNmU9YigoKT0+e3ZmKCk7b0QoKX0pO3ZhciBENmU9YigoKT0+e2JmKCk7dmYoKX0pO3ZhciBFNmU9YigoKT0+e30pO3ZhciBQNmU9YigoKT0+e30pO3ZhciBoRD17fTt2YXIgYmY9YigoKT0+e3Y2ZSgpO29EKCk7ejZlKCk7QTZlKCk7RDZlKCk7RTZlKCk7UDZlKCl9KTt2YXIgSTZlPWIoKCk9Pnt9KTt2YXIgTjZlPWIoKCk9Pnt9KTt2YXIgcEQ9e307dmFyIEY2ZT1iKCgpPT57STZlKCk7TjZlKCl9KTt2YXIgTzZlPWIoKCk9Pnt9KTt2YXIgUjZlPWIoKCk9Pnt9KTt2YXIgdUQ9e307dmFyIEI2ZT1iKCgpPT57TzZlKCk7UjZlKCl9KTt2YXIgZkQ9e307dmFyIEg2ZT1iKCgpPT57fSk7dmFyIG1EPWIoKCk9PntCaSgpfSk7dmFyIHE2ZT1iKCgpPT57QmkoKX0pO3ZhciBWNmU9YigoKT0+e21EKCl9KTt2YXIgZ0Q9e307dmFyIGo2ZT1iKCgpPT57bUQoKTtxNmUoKTtWNmUoKX0pO3ZhciBVNmU9YigoKT0+e30pO3ZhciBXNmU9YigoKT0+e30pO3ZhciBiRD17fTt2YXIgRzZlPWIoKCk9PntVNmUoKTtXNmUoKX0pO3ZhciB2RD1iKCgpPT57fSk7dmFyIHlELFk2ZT1iKCgpPT57dkQoKTt5RD1jbGFzc3t9fSk7dmFyIFo2ZT1iKCgpPT57fSk7dmFyIFg2ZT1iKCgpPT57fSk7dmFyIEs2ZT1iKCgpPT57fSk7dmFyIFE2ZT1iKCgpPT57fSk7dmFyIEo2ZT1iKCgpPT57fSk7dmFyIGU1ZT1iKCgpPT57fSk7dmFyIHQ1ZT1iKCgpPT57fSk7dmFyIGE1ZT1iKCgpPT57fSk7dmFyIGk1ZT1iKCgpPT57fSk7dmFyIHI1ZT1iKCgpPT57fSk7dmFyIHlmPXt9O0dlKHlmLHtJQ25hbWVEZXNjcmlwdG9yOigpPT55RH0pO3ZhciBzNWU9YigoKT0+e3ZEKCk7WTZlKCk7WjZlKCk7WDZlKCk7SzZlKCk7UTZlKCk7SjZlKCk7ZTVlKCk7dDVlKCk7YTVlKCk7aTVlKCk7cjVlKCl9KTt2YXIgeEQ9YigoKT0+e30pO3ZhciBuNWU9YigoKT0+e3hEKCl9KTt2YXIgd0Q9e307dmFyIG81ZT1iKCgpPT57bjVlKCk7eEQoKX0pO3ZhciBNRD17fTt2YXIgbDVlPWIoKCk9Pnt9KTt2YXIgYzVlPWIoKCk9Pnt9KTt2YXIgZDVlPWIoKCk9Pnt9KTt2YXIgaDVlPWIoKCk9Pnt9KTt2YXIgekQ9e307dmFyIHA1ZT1iKCgpPT57YzVlKCk7ZDVlKCk7aDVlKCl9KTt2YXIgdTVlPWIoKCk9Pnt9KTt2YXIga0Q9e307R2Uoa0Qse2J1c2luZXNzOigpPT5oRCxjb2RlOigpPT5wRCxjb250YWluZXI6KCk9PnVELGNvbnRlbnQ6KCk9PmdELGRhdGFiYXNlOigpPT5sRCxkZXNjcmlwdG9yczooKT0+ZkQsZmluYW5jZTooKT0+ZEQsZ2VuZXJhbDooKT0+YkQsbmV0d29yazooKT0+eWYsc2FhczooKT0+d0Qsc3RvcmFnZTooKT0+TUQsd2Vic2l0ZTooKT0+ekR9KTt2YXIgQmk9YigoKT0+e2JmKCk7RjZlKCk7QjZlKCk7Y0QoKTtINmUoKTt2ZigpO2o2ZSgpO0c2ZSgpO3M1ZSgpO281ZSgpO2w1ZSgpO3A1ZSgpO3U1ZSgpfSk7dmFyIHMyPWIoKCk9PntjMigpO0JpKCl9KTt2YXIgZjVlLG01ZT1iKCgpPT57dWUoKTtzMigpO24yKCk7ZjVlPSgpPT53YAo8c3R5bGU+CiAgLndpdGhNYXJnaW4gewogICAgZGlzcGxheTogYmxvY2s7CiAgICBtYXJnaW46IDIwcHg7CiAgfQogIC5kZW1vLWNvbnRhaW5lciB7CiAgICBkaXNwbGF5OiBmbGV4OwogICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgIGdhcDogMjBweDsKICAgIHBhZGRpbmc6IDIwcHg7CiAgICBtaW4taGVpZ2h0OiA0MDBweDsKICB9CiAgLmRlbW8tYXJlYSB7CiAgICBwYWRkaW5nOiA0MHB4OwogICAgYm9yZGVyLXJhZGl1czogOHB4OwogICAgdGV4dC1hbGlnbjogY2VudGVyOwogICAgY3Vyc29yOiBjb250ZXh0LW1lbnU7CiAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kIDAuMnM7CiAgfQogIC5kZW1vLWFyZWE6aG92ZXIgewogICAgYmFja2dyb3VuZDogcmdiYSgwLCAwLCAwLCAwLjAyKTsKICB9Cjwvc3R5bGU+CjxkaXYgY2xhc3M9ImRlbW8tY29udGFpbmVyIj4KICA8ZGVlcy1wYW5lbCBoZWFkaW5nPSJCYXNpYyBDb250ZXh0IE1lbnUgd2l0aCBOZXN0ZWQgU3VibWVudXMiPgogICAgPGRpdiBjbGFzcz0iZGVtby1hcmVhIiBAY29udGV4dG1lbnU9JHt0PT57VXQub3BlbkNvbnRleHRNZW51V2l0aE9wdGlvbnModCxbe25hbWU6IkZpbGUiLGljb25OYW1lOiJmaWxlVGV4dCIsYWN0aW9uOmFzeW5jKCk9Pnt9LHN1Ym1lbnU6W3tuYW1lOiJOZXciLGljb25OYW1lOiJmaWxlUGx1cyIsc2hvcnRjdXQ6IkNtZCtOIixhY3Rpb246YXN5bmMoKT0+Y29uc29sZS5sb2coIk5ldyBmaWxlIil9LHtuYW1lOiJPcGVuIixpY29uTmFtZToiZm9sZGVyT3BlbiIsc2hvcnRjdXQ6IkNtZCtPIixhY3Rpb246YXN5bmMoKT0+Y29uc29sZS5sb2coIk9wZW4gZmlsZSIpfSx7bmFtZToiU2F2ZSIsaWNvbk5hbWU6InNhdmUiLHNob3J0Y3V0OiJDbWQrUyIsYWN0aW9uOmFzeW5jKCk9PmNvbnNvbGUubG9nKCJTYXZlIil9LHtkaXZpZGVyOiEwfSx7bmFtZToiRXhwb3J0IGFzIFBERiIsaWNvbk5hbWU6ImRvd25sb2FkIixhY3Rpb246YXN5bmMoKT0+Y29uc29sZS5sb2coIkV4cG9ydCBQREYiKX0se25hbWU6IkV4cG9ydCBhcyBIVE1MIixpY29uTmFtZToiY29kZSIsYWN0aW9uOmFzeW5jKCk9PmNvbnNvbGUubG9nKCJFeHBvcnQgSFRNTCIpfV19LHtuYW1lOiJFZGl0IixpY29uTmFtZToiZWRpdDMiLGFjdGlvbjphc3luYygpPT57fSxzdWJtZW51Olt7bmFtZToiQ3V0IixpY29uTmFtZToic2Npc3NvcnMiLHNob3J0Y3V0OiJDbWQrWCIsYWN0aW9uOmFzeW5jKCk9PmNvbnNvbGUubG9nKCJDdXQiKX0se25hbWU6IkNvcHkiLGljb25OYW1lOiJjb3B5IixzaG9ydGN1dDoiQ21kK0MiLGFjdGlvbjphc3luYygpPT5jb25zb2xlLmxvZygiQ29weSIpfSx7bmFtZToiUGFzdGUiLGljb25OYW1lOiJjbGlwYm9hcmQiLHNob3J0Y3V0OiJDbWQrViIsYWN0aW9uOmFzeW5jKCk9PmNvbnNvbGUubG9nKCJQYXN0ZSIpfSx7ZGl2aWRlcjohMH0se25hbWU6IkZpbmQiLGljb25OYW1lOiJzZWFyY2giLHNob3J0Y3V0OiJDbWQrRiIsYWN0aW9uOmFzeW5jKCk9PmNvbnNvbGUubG9nKCJGaW5kIil9LHtuYW1lOiJSZXBsYWNlIixpY29uTmFtZToicmVwZWF0IixzaG9ydGN1dDoiQ21kK0giLGFjdGlvbjphc3luYygpPT5jb25zb2xlLmxvZygiUmVwbGFjZSIpfV19LHtuYW1lOiJWaWV3IixpY29uTmFtZToiZXllIixhY3Rpb246YXN5bmMoKT0+e30sc3VibWVudTpbe25hbWU6Ilpvb20gSW4iLGljb25OYW1lOiJ6b29tSW4iLHNob3J0Y3V0OiJDbWQrKyIsYWN0aW9uOmFzeW5jKCk9PmNvbnNvbGUubG9nKCJab29tIGluIil9LHtuYW1lOiJab29tIE91dCIsaWNvbk5hbWU6Inpvb21PdXQiLHNob3J0Y3V0OiJDbWQrLSIsYWN0aW9uOmFzeW5jKCk9PmNvbnNvbGUubG9nKCJab29tIG91dCIpfSx7bmFtZToiUmVzZXQgWm9vbSIsaWNvbk5hbWU6Im1heGltaXplMiIsc2hvcnRjdXQ6IkNtZCswIixhY3Rpb246YXN5bmMoKT0+Y29uc29sZS5sb2coIlJlc2V0IHpvb20iKX0se2RpdmlkZXI6ITB9LHtuYW1lOiJGdWxsIFNjcmVlbiIsaWNvbk5hbWU6Im1heGltaXplIixzaG9ydGN1dDoiRjExIixhY3Rpb246YXN5bmMoKT0+Y29uc29sZS5sb2coIkZ1bGwgc2NyZWVuIil9XX0se2RpdmlkZXI6ITB9LHtuYW1lOiJTZXR0aW5ncyIsaWNvbk5hbWU6InNldHRpbmdzIixhY3Rpb246YXN5bmMoKT0+Y29uc29sZS5sb2coIlNldHRpbmdzIil9LHtuYW1lOiJIZWxwIixpY29uTmFtZToiaGVscENpcmNsZSIsYWN0aW9uOmFzeW5jKCk9Pnt9LHN1Ym1lbnU6W3tuYW1lOiJEb2N1bWVudGF0aW9uIixpY29uTmFtZToiYm9vayIsYWN0aW9uOmFzeW5jKCk9PmNvbnNvbGUubG9nKCJEb2N1bWVudGF0aW9uIil9LHtuYW1lOiJLZXlib2FyZCBTaG9ydGN1dHMiLGljb25OYW1lOiJrZXlib2FyZCIsYWN0aW9uOmFzeW5jKCk9PmNvbnNvbGUubG9nKCJTaG9ydGN1dHMiKX0se2RpdmlkZXI6ITB9LHtuYW1lOiJBYm91dCIsaWNvbk5hbWU6ImluZm8iLGFjdGlvbjphc3luYygpPT5jb25zb2xlLmxvZygiQWJvdXQiKX1dfV0pfX0+CiAgICAgIDxoMz5SaWdodC1jbGljayBhbnl3aGVyZSBpbiB0aGlzIGFyZWE8L2gzPgogICAgICA8cD5BIGNvbnRleHQgbWVudSB3aXRoIG5lc3RlZCBzdWJtZW51cyB3aWxsIGFwcGVhcjwvcD4KICAgIDwvZGl2PgogIDwvZGVlcy1wYW5lbD4KICA8ZGVlcy1wYW5lbCBoZWFkaW5nPSJDb21wb25lbnQtU3BlY2lmaWMgQ29udGV4dCBNZW51Ij4KICAgIDxkZWVzLWJ1dHRvbiBzdHlsZT0ibWFyZ2luOiAyMHB4OyIgQGNvbnRleHRtZW51PSR7dD0+e1V0Lm9wZW5Db250ZXh0TWVudVdpdGhPcHRpb25zKHQsW3tuYW1lOiJCdXR0b24gQWN0aW9ucyIsaWNvbk5hbWU6Im1vdXNlUG9pbnRlciIsYWN0aW9uOmFzeW5jKCk9Pnt9LHN1Ym1lbnU6W3tuYW1lOiJDbGljayIsaWNvbk5hbWU6Im1vdXNlIixhY3Rpb246YXN5bmMoKT0+Y29uc29sZS5sb2coIkNsaWNrIGFjdGlvbiIpfSx7bmFtZToiRG91YmxlIENsaWNrIixpY29uTmFtZToiemFwIixhY3Rpb246YXN5bmMoKT0+Y29uc29sZS5sb2coIkRvdWJsZSBjbGljayIpfSx7bmFtZToiTG9uZyBQcmVzcyIsaWNvbk5hbWU6ImNsb2NrIixhY3Rpb246YXN5bmMoKT0+Y29uc29sZS5sb2coIkxvbmcgcHJlc3MiKX1dfSx7bmFtZToiQnV0dG9uIFN0YXRlIixpY29uTmFtZToidG9nZ2xlTGVmdCIsYWN0aW9uOmFzeW5jKCk9Pnt9LHN1Ym1lbnU6W3tuYW1lOiJFbmFibGUiLGljb25OYW1lOiJjaGVja0NpcmNsZSIsYWN0aW9uOmFzeW5jKCk9PmNvbnNvbGUubG9nKCJFbmFibGUiKX0se25hbWU6IkRpc2FibGUiLGljb25OYW1lOiJ4Q2lyY2xlIixhY3Rpb246YXN5bmMoKT0+Y29uc29sZS5sb2coIkRpc2FibGUiKX0se2RpdmlkZXI6ITB9LHtuYW1lOiJTaG93IixpY29uTmFtZToiZXllIixhY3Rpb246YXN5bmMoKT0+Y29uc29sZS5sb2coIlNob3ciKX0se25hbWU6IkhpZGUiLGljb25OYW1lOiJleWVPZmYiLGFjdGlvbjphc3luYygpPT5jb25zb2xlLmxvZygiSGlkZSIpfV19LHtkaXZpZGVyOiEwfSx7bmFtZToiRGlzYWJsZWQgQWN0aW9uIixpY29uTmFtZToiYmFuIixkaXNhYmxlZDohMCxhY3Rpb246YXN5bmMoKT0+Y29uc29sZS5sb2coIlRoaXMgc2hvdWxkIG5vdCBydW4iKX0se25hbWU6IlByb3BlcnRpZXMiLGljb25OYW1lOiJzZXR0aW5ncyIsYWN0aW9uOmFzeW5jKCk9PmNvbnNvbGUubG9nKCJCdXR0b24gcHJvcGVydGllcyIpfV0pfX0+UmlnaHQtY2xpY2sgb24gdGhpcyBidXR0b248L2RlZXMtYnV0dG9uPgogIDwvZGVlcy1wYW5lbD4KCiAgPGRlZXMtcGFuZWwgaGVhZGluZz0iQWR2YW5jZWQgQ29udGV4dCBNZW51IEV4YW1wbGUiPgogICAgPGRpdiBjbGFzcz0iZGVtby1hcmVhIiBAY29udGV4dG1lbnU9JHt0PT57VXQub3BlbkNvbnRleHRNZW51V2l0aE9wdGlvbnModCxbe25hbWU6IkZvcm1hdCIsaWNvbk5hbWU6InR5cGUiLGFjdGlvbjphc3luYygpPT57fSxzdWJtZW51Olt7bmFtZToiQm9sZCIsaWNvbk5hbWU6ImJvbGQiLHNob3J0Y3V0OiJDbWQrQiIsYWN0aW9uOmFzeW5jKCk9PmNvbnNvbGUubG9nKCJCb2xkIil9LHtuYW1lOiJJdGFsaWMiLGljb25OYW1lOiJpdGFsaWMiLHNob3J0Y3V0OiJDbWQrSSIsYWN0aW9uOmFzeW5jKCk9PmNvbnNvbGUubG9nKCJJdGFsaWMiKX0se25hbWU6IlVuZGVybGluZSIsaWNvbk5hbWU6InVuZGVybGluZSIsc2hvcnRjdXQ6IkNtZCtVIixhY3Rpb246YXN5bmMoKT0+Y29uc29sZS5sb2coIlVuZGVybGluZSIpfSx7ZGl2aWRlcjohMH0se25hbWU6IkZvbnQgU2l6ZSIsaWNvbk5hbWU6InR5cGUiLGFjdGlvbjphc3luYygpPT5jb25zb2xlLmxvZygiRm9udCBzaXplIG1lbnUiKX0se25hbWU6IkZvbnQgQ29sb3IiLGljb25OYW1lOiJwYWxldHRlIixhY3Rpb246YXN5bmMoKT0+Y29uc29sZS5sb2coIkZvbnQgY29sb3IgbWVudSIpfV19LHtuYW1lOiJUcmFuc2Zvcm0iLGljb25OYW1lOiJzaHVmZmxlIixhY3Rpb246YXN5bmMoKT0+e30sc3VibWVudTpbe25hbWU6IlRvIFVwcGVyY2FzZSIsaWNvbk5hbWU6ImFycm93VXAiLGFjdGlvbjphc3luYygpPT5jb25zb2xlLmxvZygiVXBwZXJjYXNlIil9LHtuYW1lOiJUbyBMb3dlcmNhc2UiLGljb25OYW1lOiJhcnJvd0Rvd24iLGFjdGlvbjphc3luYygpPT5jb25zb2xlLmxvZygiTG93ZXJjYXNlIil9LHtuYW1lOiJDYXBpdGFsaXplIixpY29uTmFtZToidHlwZSIsYWN0aW9uOmFzeW5jKCk9PmNvbnNvbGUubG9nKCJDYXBpdGFsaXplIil9XX0se2RpdmlkZXI6ITB9LHtuYW1lOiJEZWxldGUiLGljb25OYW1lOiJ0cmFzaDIiLGFjdGlvbjphc3luYygpPT5jb25zb2xlLmxvZygiRGVsZXRlIil9XSl9fT4KICAgICAgPGgzPkFkdmFuY2VkIE5lc3RlZCBNZW51IEV4YW1wbGU8L2gzPgogICAgICA8cD5UaGlzIHNob3dzIGRlZXBseSBuZXN0ZWQgc3VibWVudXMgYW5kIHZhcmlvdXMgZm9ybWF0dGluZyBvcHRpb25zPC9wPgogICAgPC9kaXY+CiAgPC9kZWVzLXBhbmVsPgogIAogIDxkZWVzLXBhbmVsIGhlYWRpbmc9IlN0YXRpYyBDb250ZXh0IE1lbnUgKEFsd2F5cyBWaXNpYmxlKSI+CiAgICA8ZGVlcy1jb250ZXh0bWVudQogICAgICBjbGFzcz0id2l0aE1hcmdpbiIKICAgICAgLm1lbnVJdGVtcz0ke1t7bmFtZToiUHJvamVjdCIsaWNvbk5hbWU6ImZvbGRlciIsYWN0aW9uOmFzeW5jKCk9Pnt9LHN1Ym1lbnU6W3tuYW1lOiJOZXcgUHJvamVjdCIsaWNvbk5hbWU6ImZvbGRlclBsdXMiLHNob3J0Y3V0OiJDbWQrU2hpZnQrTiIsYWN0aW9uOmFzeW5jKCk9PmNvbnNvbGUubG9nKCJOZXcgcHJvamVjdCIpfSx7bmFtZToiT3BlbiBQcm9qZWN0IixpY29uTmFtZToiZm9sZGVyT3BlbiIsc2hvcnRjdXQ6IkNtZCtTaGlmdCtPIixhY3Rpb246YXN5bmMoKT0+Y29uc29sZS5sb2coIk9wZW4gcHJvamVjdCIpfSx7ZGl2aWRlcjohMH0se25hbWU6IlJlY2VudCBQcm9qZWN0cyIsaWNvbk5hbWU6ImNsb2NrIixhY3Rpb246YXN5bmMoKT0+e30sc3VibWVudTpbe25hbWU6IlByb2plY3QgQWxwaGEiLGFjdGlvbjphc3luYygpPT5jb25zb2xlLmxvZygiT3BlbiBBbHBoYSIpfSx7bmFtZToiUHJvamVjdCBCZXRhIixhY3Rpb246YXN5bmMoKT0+Y29uc29sZS5sb2coIk9wZW4gQmV0YSIpfSx7bmFtZToiUHJvamVjdCBHYW1tYSIsYWN0aW9uOmFzeW5jKCk9PmNvbnNvbGUubG9nKCJPcGVuIEdhbW1hIil9XX1dfSx7bmFtZToiVG9vbHMiLGljb25OYW1lOiJ0b29sIixhY3Rpb246YXN5bmMoKT0+e30sc3VibWVudTpbe25hbWU6IlRlcm1pbmFsIixpY29uTmFtZToidGVybWluYWwiLHNob3J0Y3V0OiJDbWQrVCIsYWN0aW9uOmFzeW5jKCk9PmNvbnNvbGUubG9nKCJUZXJtaW5hbCIpfSx7bmFtZToiQ29uc29sZSIsaWNvbk5hbWU6Im1vbml0b3IiLHNob3J0Y3V0OiJDbWQrSyIsYWN0aW9uOmFzeW5jKCk9PmNvbnNvbGUubG9nKCJDb25zb2xlIil9LHtkaXZpZGVyOiEwfSx7bmFtZToiRXh0ZW5zaW9ucyIsaWNvbk5hbWU6InBhY2thZ2UiLGFjdGlvbjphc3luYygpPT5jb25zb2xlLmxvZygiRXh0ZW5zaW9ucyIpfV19LHtkaXZpZGVyOiEwfSx7bmFtZToiUHJlZmVyZW5jZXMiLGljb25OYW1lOiJzbGlkZXJzIixhY3Rpb246YXN5bmMoKT0+Y29uc29sZS5sb2coIlByZWZlcmVuY2VzIil9XX0KICAgID48L2RlZXMtY29udGV4dG1lbnU+CiAgPC9kZWVzLXBhbmVsPgo8L2Rpdj4KYH0pO3ZhciB3NSxUcyxmaSxMcz1iKCgpPT57dWUoKTt1aSgpO3c1PWZ1bmN0aW9uKHQsZSxhLGkscixzKXtmdW5jdGlvbiBuKHgpe2lmKHghPT12b2lkIDAmJnR5cGVvZiB4IT0iZnVuY3Rpb24iKXRocm93IG5ldyBUeXBlRXJyb3IoIkZ1bmN0aW9uIGV4cGVjdGVkIik7cmV0dXJuIHh9Zm9yKHZhciBvPWkua2luZCxkPW89PT0iZ2V0dGVyIj8iZ2V0IjpvPT09InNldHRlciI/InNldCI6InZhbHVlIixjPSFlJiZ0P2kuc3RhdGljP3Q6dC5wcm90b3R5cGU6bnVsbCxoPWV8fChjP09iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoYyxpLm5hbWUpOnt9KSxsLGY9ITEsZz1hLmxlbmd0aC0xO2c+PTA7Zy0tKXt2YXIgeT17fTtmb3IodmFyIHYgaW4gaSl5W3ZdPXY9PT0iYWNjZXNzIj97fTppW3ZdO2Zvcih2YXIgdiBpbiBpLmFjY2Vzcyl5LmFjY2Vzc1t2XT1pLmFjY2Vzc1t2XTt5LmFkZEluaXRpYWxpemVyPWZ1bmN0aW9uKHgpe2lmKGYpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGFkZCBpbml0aWFsaXplcnMgYWZ0ZXIgZGVjb3JhdGlvbiBoYXMgY29tcGxldGVkIik7cy5wdXNoKG4oeHx8bnVsbCkpfTt2YXIgbT0oMCxhW2ddKShvPT09ImFjY2Vzc29yIj97Z2V0OmguZ2V0LHNldDpoLnNldH06aFtkXSx5KTtpZihvPT09ImFjY2Vzc29yIil7aWYobT09PXZvaWQgMCljb250aW51ZTtpZihtPT09bnVsbHx8dHlwZW9mIG0hPSJvYmplY3QiKXRocm93IG5ldyBUeXBlRXJyb3IoIk9iamVjdCBleHBlY3RlZCIpOyhsPW4obS5nZXQpKSYmKGguZ2V0PWwpLChsPW4obS5zZXQpKSYmKGguc2V0PWwpLChsPW4obS5pbml0KSkmJnIudW5zaGlmdChsKX1lbHNlKGw9bihtKSkmJihvPT09ImZpZWxkIj9yLnVuc2hpZnQobCk6aFtkXT1sKX1jJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoYyxpLm5hbWUsaCksZj0hMH0sVHM9ZnVuY3Rpb24odCxlLGEpe2Zvcih2YXIgaT1hcmd1bWVudHMubGVuZ3RoPjIscj0wO3I8ZS5sZW5ndGg7cisrKWE9aT9lW3JdLmNhbGwodCxhKTplW3JdLmNhbGwodCk7cmV0dXJuIGk/YTp2b2lkIDB9LGZpPSgoKT0+e2xldCB0PVtwZSgiZGVlcy13aW5kb3dsYXllciIpXSxlLGE9W10saSxyPXhlLHMsbj1bXSxvPVtdLGQsYz1bXSxoPVtdLGwsZj1bXSxnPVtdLHksdj1bXSxtPVtdO3ZhciB4PWNsYXNzIGV4dGVuZHMgcntzdGF0aWN7aT10aGlzfXN0YXRpY3tsZXQgTT10eXBlb2YgU3ltYm9sPT0iZnVuY3Rpb24iJiZTeW1ib2wubWV0YWRhdGE/T2JqZWN0LmNyZWF0ZShyW1N5bWJvbC5tZXRhZGF0YV0/P251bGwpOnZvaWQgMDtzPVtKKCldLGQ9W0ooKV0sbD1bSigpXSx5PVtJKHt0eXBlOkJvb2xlYW59KV0sdzUodGhpcyxudWxsLHMse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJvcHRpb25zIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpTPT4ib3B0aW9ucyJpbiBTLGdldDpTPT5TLm9wdGlvbnMsc2V0OihTLEYpPT57Uy5vcHRpb25zPUZ9fSxtZXRhZGF0YTpNfSxuLG8pLHc1KHRoaXMsbnVsbCxkLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiYmFja2Ryb3BaSW5kZXgiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOlM9PiJiYWNrZHJvcFpJbmRleCJpbiBTLGdldDpTPT5TLmJhY2tkcm9wWkluZGV4LHNldDooUyxGKT0+e1MuYmFja2Ryb3BaSW5kZXg9Rn19LG1ldGFkYXRhOk19LGMsaCksdzUodGhpcyxudWxsLGwse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJjb250ZW50WkluZGV4IixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpTPT4iY29udGVudFpJbmRleCJpbiBTLGdldDpTPT5TLmNvbnRlbnRaSW5kZXgsc2V0OihTLEYpPT57Uy5jb250ZW50WkluZGV4PUZ9fSxtZXRhZGF0YTpNfSxmLGcpLHc1KHRoaXMsbnVsbCx5LHtraW5kOiJhY2Nlc3NvciIsbmFtZToidmlzaWJsZSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6Uz0+InZpc2libGUiaW4gUyxnZXQ6Uz0+Uy52aXNpYmxlLHNldDooUyxGKT0+e1MudmlzaWJsZT1GfX0sbWV0YWRhdGE6TX0sdixtKSx3NShudWxsLGU9e3ZhbHVlOml9LHQse2tpbmQ6ImNsYXNzIixuYW1lOmkubmFtZSxtZXRhZGF0YTpNfSxudWxsLGEpLHg9aT1lLnZhbHVlLE0mJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShpLFN5bWJvbC5tZXRhZGF0YSx7ZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITAsdmFsdWU6TX0pfXN0YXRpYyBkZW1vPSgpPT53YDxkZWVzLXdpbmRvd2xheWVyPjwvZGVlcy13aW5kb3dsYXllcj5gO3N0YXRpYyBkZW1vR3JvdXBzPVsiT3ZlcmxheSJdO3N0YXRpYyBhc3luYyBjcmVhdGVBbmRTaG93KE0pe2xldCBTPXJ0LkRvbVRvb2xzLmdldEdsb2JhbERvbVRvb2xzU3luYygpLEY9bmV3IHg7cmV0dXJuIEYub3B0aW9ucz17Li4uRi5vcHRpb25zLC4uLk19LGRvY3VtZW50LmJvZHkuYXBwZW5kKEYpLGF3YWl0IFMuY29udmVuaWVuY2Uuc21hcnRkZWxheS5kZWxheUZvcigwKSxGLnNob3coKSxGfSNlPVRzKHRoaXMsbix7Ymx1cjohMX0pO2dldCBvcHRpb25zKCl7cmV0dXJuIHRoaXMuI2V9c2V0IG9wdGlvbnMoTSl7dGhpcy4jZT1NfSN0PShUcyh0aGlzLG8pLFRzKHRoaXMsYywxZTMpKTtnZXQgYmFja2Ryb3BaSW5kZXgoKXtyZXR1cm4gdGhpcy4jdH1zZXQgYmFja2Ryb3BaSW5kZXgoTSl7dGhpcy4jdD1NfSNhPShUcyh0aGlzLGgpLFRzKHRoaXMsZiwxMDAxKSk7Z2V0IGNvbnRlbnRaSW5kZXgoKXtyZXR1cm4gdGhpcy4jYX1zZXQgY29udGVudFpJbmRleChNKXt0aGlzLiNhPU19I2k9KFRzKHRoaXMsZyksVHModGhpcyx2LCExKSk7Z2V0IHZpc2libGUoKXtyZXR1cm4gdGhpcy4jaX1zZXQgdmlzaWJsZShNKXt0aGlzLiNpPU19Y29uc3RydWN0b3IoKXtzdXBlcigpLFRzKHRoaXMsbSkscnQuZWxlbWVudEJhc2ljLnNldHVwKCl9cmVuZGVyKCl7cmV0dXJuIHdgCiAgICAgICR7cnQuZWxlbWVudEJhc2ljLnN0eWxlc30KICAgICAgPHN0eWxlPgogICAgICAgIC53aW5kb3dPdmVybGF5IHsKICAgICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjJzOwogICAgICAgICAgd2lsbC1jaGFuZ2U6IHRyYW5zZm9ybTsKICAgICAgICAgIHBvc2l0aW9uOiBmaXhlZDsKICAgICAgICAgIHRvcDogMHB4OwogICAgICAgICAgbGVmdDogMHB4OwogICAgICAgICAgaGVpZ2h0OiAxMDB2aDsKICAgICAgICAgIHdpZHRoOiAxMDB2dzsKICAgICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgICBiYWNrZ3JvdW5kOiByZ2JhKDAsIDAsIDAsIDAuMCk7CiAgICAgICAgICBiYWNrZHJvcC1maWx0ZXI6IGJyaWdodG5lc3MoMSkgJHt0aGlzLm9wdGlvbnMuYmx1cj8iYmx1cigwcHgpIjoiIn07CiAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTsKICAgICAgICAgIHotaW5kZXg6ICR7dGhpcy5iYWNrZHJvcFpJbmRleH07CiAgICAgICAgfQogICAgICAgIC5zbG90Q29udGVudCB7CiAgICAgICAgICBwb3NpdGlvbjogZml4ZWQ7CiAgICAgICAgICBoZWlnaHQ6IDEwMHZoOwogICAgICAgICAgd2lkdGg6IDEwMHZ3OwogICAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOwogICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICAgIHotaW5kZXg6ICR7dGhpcy5jb250ZW50WkluZGV4fTsKICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lOwogICAgICAgIH0KICAgICAgICAKICAgICAgICAuc2xvdENvbnRlbnQgPiAqIHsKICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBhdXRvOwogICAgICAgIH0KICAgICAgICAKICAgICAgICAudmlzaWJsZSB7CiAgICAgICAgICBiYWNrZ3JvdW5kOiByZ2JhKDAsIDAsIDAsIDAuMik7CiAgICAgICAgICBiYWNrZHJvcC1maWx0ZXI6IGJyaWdodG5lc3MoMC45KSAke3RoaXMub3B0aW9ucy5ibHVyPyJibHVyKDJweCkiOiIifTsKICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBhbGw7CiAgICAgICAgfQogICAgICA8L3N0eWxlPgogICAgICA8ZGl2IEBjbGljaz0ke3RoaXMuZGlzcGF0Y2hDbGlja2VkfSBjbGFzcz0id2luZG93T3ZlcmxheSAke3RoaXMudmlzaWJsZT8idmlzaWJsZSI6bnVsbH0iPgogICAgICA8L2Rpdj4KICAgICAgPGRpdiBjbGFzcz0ic2xvdENvbnRlbnQiPgogICAgICAgIDxzbG90Pjwvc2xvdD4KICAgICAgPC9kaXY+CiAgICBgfWZpcnN0VXBkYXRlZCgpe3NldFRpbWVvdXQoKCk9Pnt0aGlzLnZpc2libGU9ITB9LDEwMCl9ZGlzcGF0Y2hDbGlja2VkKCl7dGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBDdXN0b21FdmVudCgiY2xpY2tlZCIpKX10b2dnbGVWaXNpYmlsaXR5KCl7dGhpcy52aXNpYmxlPSF0aGlzLnZpc2libGV9Z2V0Q29udGVudFpJbmRleCgpe3JldHVybiB0aGlzLmNvbnRlbnRaSW5kZXh9YXN5bmMgc2hvdygpe2xldCBNPWF3YWl0IHRoaXMuZG9tdG9vbHNQcm9taXNlO3RoaXMuYmFja2Ryb3BaSW5kZXg9aDEuZ2V0TmV4dFpJbmRleCgpLHRoaXMuY29udGVudFpJbmRleD1oMS5nZXROZXh0WkluZGV4KCksaDEucmVnaXN0ZXIodGhpcyx0aGlzLmJhY2tkcm9wWkluZGV4KSxhd2FpdCBNLmNvbnZlbmllbmNlLnNtYXJ0ZGVsYXkuZGVsYXlGb3IoMCksdGhpcy52aXNpYmxlPSEwfWFzeW5jIGhpZGUoKXthd2FpdChhd2FpdCB0aGlzLmRvbXRvb2xzUHJvbWlzZSkuY29udmVuaWVuY2Uuc21hcnRkZWxheS5kZWxheUZvcigwKSx0aGlzLnZpc2libGU9ITF9YXN5bmMgZGVzdHJveSgpe2xldCBNPWF3YWl0IHRoaXMuZG9tdG9vbHNQcm9taXNlO2F3YWl0IHRoaXMuaGlkZSgpLGF3YWl0IE0uY29udmVuaWVuY2Uuc21hcnRkZWxheS5kZWxheUZvcigzMDApLGgxLnVucmVnaXN0ZXIodGhpcyksdGhpcy5yZW1vdmUoKX1zdGF0aWN7VHMoaSxhKX19O3JldHVybiB4PWl9KSgpfSk7ZnVuY3Rpb24gU0QodCxlKXsoZT09bnVsbHx8ZT50Lmxlbmd0aCkmJihlPXQubGVuZ3RoKTtmb3IodmFyIGE9MCxpPUFycmF5KGUpO2E8ZTthKyspaVthXT10W2FdO3JldHVybiBpfWZ1bmN0aW9uIFlCdCh0KXtpZihBcnJheS5pc0FycmF5KHQpKXJldHVybiB0fWZ1bmN0aW9uIFpCdCh0KXtpZihBcnJheS5pc0FycmF5KHQpKXJldHVybiBTRCh0KX1mdW5jdGlvbiBYQnQodCxlKXtpZighKHQgaW5zdGFuY2VvZiBlKSl0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgY2FsbCBhIGNsYXNzIGFzIGEgZnVuY3Rpb24iKX1mdW5jdGlvbiBnNWUodCxlKXtmb3IodmFyIGE9MDthPGUubGVuZ3RoO2ErKyl7dmFyIGk9ZVthXTtpLmVudW1lcmFibGU9aS5lbnVtZXJhYmxlfHwhMSxpLmNvbmZpZ3VyYWJsZT0hMCwidmFsdWUiaW4gaSYmKGkud3JpdGFibGU9ITApLE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LHY1ZShpLmtleSksaSl9fWZ1bmN0aW9uIEtCdCh0LGUsYSl7cmV0dXJuIGUmJmc1ZSh0LnByb3RvdHlwZSxlKSxhJiZnNWUodCxhKSxPYmplY3QuZGVmaW5lUHJvcGVydHkodCwicHJvdG90eXBlIix7d3JpdGFibGU6ITF9KSx0fWZ1bmN0aW9uIHhmKHQsZSl7dmFyIGE9dHlwZW9mIFN5bWJvbDwidSImJnRbU3ltYm9sLml0ZXJhdG9yXXx8dFsiQEBpdGVyYXRvciJdO2lmKCFhKXtpZihBcnJheS5pc0FycmF5KHQpfHwoYT1DRCh0KSl8fGUmJnQmJnR5cGVvZiB0Lmxlbmd0aD09Im51bWJlciIpe2EmJih0PWEpO3ZhciBpPTAscj1mdW5jdGlvbigpe307cmV0dXJue3M6cixuOmZ1bmN0aW9uKCl7cmV0dXJuIGk+PXQubGVuZ3RoP3tkb25lOiEwfTp7ZG9uZTohMSx2YWx1ZTp0W2krK119fSxlOmZ1bmN0aW9uKGQpe3Rocm93IGR9LGY6cn19dGhyb3cgbmV3IFR5cGVFcnJvcihgSW52YWxpZCBhdHRlbXB0IHRvIGl0ZXJhdGUgbm9uLWl0ZXJhYmxlIGluc3RhbmNlLgpJbiBvcmRlciB0byBiZSBpdGVyYWJsZSwgbm9uLWFycmF5IG9iamVjdHMgbXVzdCBoYXZlIGEgW1N5bWJvbC5pdGVyYXRvcl0oKSBtZXRob2QuYCl9dmFyIHMsbj0hMCxvPSExO3JldHVybntzOmZ1bmN0aW9uKCl7YT1hLmNhbGwodCl9LG46ZnVuY3Rpb24oKXt2YXIgZD1hLm5leHQoKTtyZXR1cm4gbj1kLmRvbmUsZH0sZTpmdW5jdGlvbihkKXtvPSEwLHM9ZH0sZjpmdW5jdGlvbigpe3RyeXtufHxhLnJldHVybj09bnVsbHx8YS5yZXR1cm4oKX1maW5hbGx5e2lmKG8pdGhyb3cgc319fX1mdW5jdGlvbiBtdCh0LGUsYSl7cmV0dXJuKGU9djVlKGUpKWluIHQ/T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsZSx7dmFsdWU6YSxlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMH0pOnRbZV09YSx0fWZ1bmN0aW9uIFFCdCh0LGUpe2lmKHR5cGVvZiBlIT0iZnVuY3Rpb24iJiZlIT09bnVsbCl0aHJvdyBuZXcgVHlwZUVycm9yKCJTdXBlciBleHByZXNzaW9uIG11c3QgZWl0aGVyIGJlIG51bGwgb3IgYSBmdW5jdGlvbiIpO3QucHJvdG90eXBlPU9iamVjdC5jcmVhdGUoZSYmZS5wcm90b3R5cGUse2NvbnN0cnVjdG9yOnt2YWx1ZTp0LHdyaXRhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMH19KSxPYmplY3QuZGVmaW5lUHJvcGVydHkodCwicHJvdG90eXBlIix7d3JpdGFibGU6ITF9KSxlJiZ3Zih0LGUpfWZ1bmN0aW9uIEpCdCh0KXtpZih0eXBlb2YgU3ltYm9sPCJ1IiYmdFtTeW1ib2wuaXRlcmF0b3JdIT1udWxsfHx0WyJAQGl0ZXJhdG9yIl0hPW51bGwpcmV0dXJuIEFycmF5LmZyb20odCl9ZnVuY3Rpb24gZUh0KHQsZSl7dmFyIGE9dD09bnVsbD9udWxsOnR5cGVvZiBTeW1ib2w8InUiJiZ0W1N5bWJvbC5pdGVyYXRvcl18fHRbIkBAaXRlcmF0b3IiXTtpZihhIT1udWxsKXt2YXIgaSxyLHMsbixvPVtdLGQ9ITAsYz0hMTt0cnl7aWYocz0oYT1hLmNhbGwodCkpLm5leHQsZT09PTApe2lmKE9iamVjdChhKSE9PWEpcmV0dXJuO2Q9ITF9ZWxzZSBmb3IoOyEoZD0oaT1zLmNhbGwoYSkpLmRvbmUpJiYoby5wdXNoKGkudmFsdWUpLG8ubGVuZ3RoIT09ZSk7ZD0hMCk7fWNhdGNoKGgpe2M9ITAscj1ofWZpbmFsbHl7dHJ5e2lmKCFkJiZhLnJldHVybiE9bnVsbCYmKG49YS5yZXR1cm4oKSxPYmplY3QobikhPT1uKSlyZXR1cm59ZmluYWxseXtpZihjKXRocm93IHJ9fXJldHVybiBvfX1mdW5jdGlvbiB0SHQoKXt0aHJvdyBuZXcgVHlwZUVycm9yKGBJbnZhbGlkIGF0dGVtcHQgdG8gZGVzdHJ1Y3R1cmUgbm9uLWl0ZXJhYmxlIGluc3RhbmNlLgpJbiBvcmRlciB0byBiZSBpdGVyYWJsZSwgbm9uLWFycmF5IG9iamVjdHMgbXVzdCBoYXZlIGEgW1N5bWJvbC5pdGVyYXRvcl0oKSBtZXRob2QuYCl9ZnVuY3Rpb24gYUh0KCl7dGhyb3cgbmV3IFR5cGVFcnJvcihgSW52YWxpZCBhdHRlbXB0IHRvIHNwcmVhZCBub24taXRlcmFibGUgaW5zdGFuY2UuCkluIG9yZGVyIHRvIGJlIGl0ZXJhYmxlLCBub24tYXJyYXkgb2JqZWN0cyBtdXN0IGhhdmUgYSBbU3ltYm9sLml0ZXJhdG9yXSgpIG1ldGhvZC5gKX1mdW5jdGlvbiBiNWUodCxlKXt2YXIgYT1PYmplY3Qua2V5cyh0KTtpZihPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKXt2YXIgaT1PYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKHQpO2UmJihpPWkuZmlsdGVyKGZ1bmN0aW9uKHIpe3JldHVybiBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKHQscikuZW51bWVyYWJsZX0pKSxhLnB1c2guYXBwbHkoYSxpKX1yZXR1cm4gYX1mdW5jdGlvbiBOZSh0KXtmb3IodmFyIGU9MTtlPGFyZ3VtZW50cy5sZW5ndGg7ZSsrKXt2YXIgYT1hcmd1bWVudHNbZV0hPW51bGw/YXJndW1lbnRzW2VdOnt9O2UlMj9iNWUoT2JqZWN0KGEpLCEwKS5mb3JFYWNoKGZ1bmN0aW9uKGkpe210KHQsaSxhW2ldKX0pOk9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JzP09iamVjdC5kZWZpbmVQcm9wZXJ0aWVzKHQsT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcnMoYSkpOmI1ZShPYmplY3QoYSkpLmZvckVhY2goZnVuY3Rpb24oaSl7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsaSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGEsaSkpfSl9cmV0dXJuIHR9ZnVuY3Rpb24gd2YodCxlKXtyZXR1cm4gd2Y9T2JqZWN0LnNldFByb3RvdHlwZU9mP09iamVjdC5zZXRQcm90b3R5cGVPZi5iaW5kKCk6ZnVuY3Rpb24oYSxpKXtyZXR1cm4gYS5fX3Byb3RvX189aSxhfSx3Zih0LGUpfWZ1bmN0aW9uIE1mKHQsZSl7cmV0dXJuIFlCdCh0KXx8ZUh0KHQsZSl8fENEKHQsZSl8fHRIdCgpfWZ1bmN0aW9uIEhpKHQpe3JldHVybiBaQnQodCl8fEpCdCh0KXx8Q0QodCl8fGFIdCgpfWZ1bmN0aW9uIGlIdCh0LGUpe2lmKHR5cGVvZiB0IT0ib2JqZWN0Inx8IXQpcmV0dXJuIHQ7dmFyIGE9dFtTeW1ib2wudG9QcmltaXRpdmVdO2lmKGEhPT12b2lkIDApe3ZhciBpPWEuY2FsbCh0LGV8fCJkZWZhdWx0Iik7aWYodHlwZW9mIGkhPSJvYmplY3QiKXJldHVybiBpO3Rocm93IG5ldyBUeXBlRXJyb3IoIkBAdG9QcmltaXRpdmUgbXVzdCByZXR1cm4gYSBwcmltaXRpdmUgdmFsdWUuIil9cmV0dXJuKGU9PT0ic3RyaW5nIj9TdHJpbmc6TnVtYmVyKSh0KX1mdW5jdGlvbiB2NWUodCl7dmFyIGU9aUh0KHQsInN0cmluZyIpO3JldHVybiB0eXBlb2YgZT09InN5bWJvbCI/ZTplKyIifWZ1bmN0aW9uIHpmKHQpeyJAYmFiZWwvaGVscGVycyAtIHR5cGVvZiI7cmV0dXJuIHpmPXR5cGVvZiBTeW1ib2w9PSJmdW5jdGlvbiImJnR5cGVvZiBTeW1ib2wuaXRlcmF0b3I9PSJzeW1ib2wiP2Z1bmN0aW9uKGUpe3JldHVybiB0eXBlb2YgZX06ZnVuY3Rpb24oZSl7cmV0dXJuIGUmJnR5cGVvZiBTeW1ib2w9PSJmdW5jdGlvbiImJmUuY29uc3RydWN0b3I9PT1TeW1ib2wmJmUhPT1TeW1ib2wucHJvdG90eXBlPyJzeW1ib2wiOnR5cGVvZiBlfSx6Zih0KX1mdW5jdGlvbiBDRCh0LGUpe2lmKHQpe2lmKHR5cGVvZiB0PT0ic3RyaW5nIilyZXR1cm4gU0QodCxlKTt2YXIgYT17fS50b1N0cmluZy5jYWxsKHQpLnNsaWNlKDgsLTEpO3JldHVybiBhPT09Ik9iamVjdCImJnQuY29uc3RydWN0b3ImJihhPXQuY29uc3RydWN0b3IubmFtZSksYT09PSJNYXAifHxhPT09IlNldCI/QXJyYXkuZnJvbSh0KTphPT09IkFyZ3VtZW50cyJ8fC9eKD86VWl8SSludCg/Ojh8MTZ8MzIpKD86Q2xhbXBlZCk/QXJyYXkkLy50ZXN0KGEpP1NEKHQsZSk6dm9pZCAwfX1mdW5jdGlvbiBZMigpe1kyPWZ1bmN0aW9uKHIscyl7cmV0dXJuIG5ldyBhKHIsdm9pZCAwLHMpfTt2YXIgdD1SZWdFeHAucHJvdG90eXBlLGU9bmV3IFdlYWtNYXA7ZnVuY3Rpb24gYShyLHMsbil7dmFyIG89UmVnRXhwKHIscyk7cmV0dXJuIGUuc2V0KG8sbnx8ZS5nZXQocikpLHdmKG8sYS5wcm90b3R5cGUpfWZ1bmN0aW9uIGkocixzKXt2YXIgbj1lLmdldChzKTtyZXR1cm4gT2JqZWN0LmtleXMobikucmVkdWNlKGZ1bmN0aW9uKG8sZCl7dmFyIGM9bltkXTtpZih0eXBlb2YgYz09Im51bWJlciIpb1tkXT1yW2NdO2Vsc2V7Zm9yKHZhciBoPTA7cltjW2hdXT09PXZvaWQgMCYmaCsxPGMubGVuZ3RoOyloKys7b1tkXT1yW2NbaF1dfXJldHVybiBvfSxPYmplY3QuY3JlYXRlKG51bGwpKX1yZXR1cm4gUUJ0KGEsUmVnRXhwKSxhLnByb3RvdHlwZS5leGVjPWZ1bmN0aW9uKHIpe3ZhciBzPXQuZXhlYy5jYWxsKHRoaXMscik7aWYocyl7cy5ncm91cHM9aShzLHRoaXMpO3ZhciBuPXMuaW5kaWNlcztuJiYobi5ncm91cHM9aShuLHRoaXMpKX1yZXR1cm4gc30sYS5wcm90b3R5cGVbU3ltYm9sLnJlcGxhY2VdPWZ1bmN0aW9uKHIscyl7aWYodHlwZW9mIHM9PSJzdHJpbmciKXt2YXIgbj1lLmdldCh0aGlzKTtyZXR1cm4gdFtTeW1ib2wucmVwbGFjZV0uY2FsbCh0aGlzLHIscy5yZXBsYWNlKC9cJDwoW14+XSspKD58JCkvZyxmdW5jdGlvbihkLGMsaCl7aWYoaD09PSIiKXJldHVybiBkO3ZhciBsPW5bY107cmV0dXJuIEFycmF5LmlzQXJyYXkobCk/IiQiK2wuam9pbigiJCIpOnR5cGVvZiBsPT0ibnVtYmVyIj8iJCIrbDoiIn0pKX1pZih0eXBlb2Ygcz09ImZ1bmN0aW9uIil7dmFyIG89dGhpcztyZXR1cm4gdFtTeW1ib2wucmVwbGFjZV0uY2FsbCh0aGlzLHIsZnVuY3Rpb24oKXt2YXIgZD1hcmd1bWVudHM7cmV0dXJuIHR5cGVvZiBkW2QubGVuZ3RoLTFdIT0ib2JqZWN0IiYmKGQ9W10uc2xpY2UuY2FsbChkKSkucHVzaChpKGQsbykpLHMuYXBwbHkodGhpcyxkKX0pfXJldHVybiB0W1N5bWJvbC5yZXBsYWNlXS5jYWxsKHRoaXMscixzKX0sWTIuYXBwbHkodGhpcyxhcmd1bWVudHMpfWZ1bmN0aW9uIHo1KHQpe3JldHVybiBuZXcgUHJveHkodCx7Z2V0OmZ1bmN0aW9uKGEsaSl7cmV0dXJuIGkgaW4gYT9hW2ldOmFbUzJdfX0pfWZ1bmN0aW9uIFVxdCh0KXt2YXIgZT15MS5xdWVyeVNlbGVjdG9yKCJzY3JpcHRbIit0KyJdIik7aWYoZSlyZXR1cm4gZS5nZXRBdHRyaWJ1dGUodCl9ZnVuY3Rpb24gV3F0KHQpe3JldHVybiB0PT09IiI/ITA6dD09PSJmYWxzZSI/ITE6dD09PSJ0cnVlIj8hMDp0fWZ1bmN0aW9uIEdxdCh0KXtyZXR1cm4gUzUucHVzaCh0KSxmdW5jdGlvbigpe1M1LnNwbGljZShTNS5pbmRleE9mKHQpLDEpfX1mdW5jdGlvbiBZcXQodCl7aWYoISghdHx8ISRzKSl7dmFyIGU9eTEuY3JlYXRlRWxlbWVudCgic3R5bGUiKTtlLnNldEF0dHJpYnV0ZSgidHlwZSIsInRleHQvY3NzIiksZS5pbm5lckhUTUw9dDtmb3IodmFyIGE9eTEuaGVhZC5jaGlsZE5vZGVzLGk9bnVsbCxyPWEubGVuZ3RoLTE7cj4tMTtyLS0pe3ZhciBzPWFbcl0sbj0ocy50YWdOYW1lfHwiIikudG9VcHBlckNhc2UoKTtbIlNUWUxFIiwiTElOSyJdLmluZGV4T2Yobik+LTEmJihpPXMpfXJldHVybiB5MS5oZWFkLmluc2VydEJlZm9yZShlLGkpLHR9fWZ1bmN0aW9uIGw4ZSgpe2Zvcih2YXIgdD0xMixlPSIiO3QtLSA+MDspZSs9WnF0W01hdGgucmFuZG9tKCkqNjJ8MF07cmV0dXJuIGV9ZnVuY3Rpb24gbmwodCl7Zm9yKHZhciBlPVtdLGE9KHR8fFtdKS5sZW5ndGg+Pj4wO2EtLTspZVthXT10W2FdO3JldHVybiBlfWZ1bmN0aW9uIEJEKHQpe3JldHVybiB0LmNsYXNzTGlzdD9ubCh0LmNsYXNzTGlzdCk6KHQuZ2V0QXR0cmlidXRlKCJjbGFzcyIpfHwiIikuc3BsaXQoIiAiKS5maWx0ZXIoZnVuY3Rpb24oZSl7cmV0dXJuIGV9KX1mdW5jdGlvbiBjOGUodCl7cmV0dXJuIiIuY29uY2F0KHQpLnJlcGxhY2UoLyYvZywiJmFtcDsiKS5yZXBsYWNlKC8iL2csIiZxdW90OyIpLnJlcGxhY2UoLycvZywiJiMzOTsiKS5yZXBsYWNlKC88L2csIiZsdDsiKS5yZXBsYWNlKC8+L2csIiZndDsiKX1mdW5jdGlvbiBYcXQodCl7cmV0dXJuIE9iamVjdC5rZXlzKHR8fHt9KS5yZWR1Y2UoZnVuY3Rpb24oZSxhKXtyZXR1cm4gZSsiIi5jb25jYXQoYSwnPSInKS5jb25jYXQoYzhlKHRbYV0pLCciICcpfSwiIikudHJpbSgpfWZ1bmN0aW9uIENmKHQpe3JldHVybiBPYmplY3Qua2V5cyh0fHx7fSkucmVkdWNlKGZ1bmN0aW9uKGUsYSl7cmV0dXJuIGUrIiIuY29uY2F0KGEsIjogIikuY29uY2F0KHRbYV0udHJpbSgpLCI7Iil9LCIiKX1mdW5jdGlvbiBIRCh0KXtyZXR1cm4gdC5zaXplIT09SHIuc2l6ZXx8dC54IT09SHIueHx8dC55IT09SHIueXx8dC5yb3RhdGUhPT1Ici5yb3RhdGV8fHQuZmxpcFh8fHQuZmxpcFl9ZnVuY3Rpb24gS3F0KHQpe3ZhciBlPXQudHJhbnNmb3JtLGE9dC5jb250YWluZXJXaWR0aCxpPXQuaWNvbldpZHRoLHI9e3RyYW5zZm9ybToidHJhbnNsYXRlKCIuY29uY2F0KGEvMiwiIDI1NikiKX0scz0idHJhbnNsYXRlKCIuY29uY2F0KGUueCozMiwiLCAiKS5jb25jYXQoZS55KjMyLCIpICIpLG49InNjYWxlKCIuY29uY2F0KGUuc2l6ZS8xNiooZS5mbGlwWD8tMToxKSwiLCAiKS5jb25jYXQoZS5zaXplLzE2KihlLmZsaXBZPy0xOjEpLCIpICIpLG89InJvdGF0ZSgiLmNvbmNhdChlLnJvdGF0ZSwiIDAgMCkiKSxkPXt0cmFuc2Zvcm06IiIuY29uY2F0KHMsIiAiKS5jb25jYXQobiwiICIpLmNvbmNhdChvKX0sYz17dHJhbnNmb3JtOiJ0cmFuc2xhdGUoIi5jb25jYXQoaS8yKi0xLCIgLTI1NikiKX07cmV0dXJue291dGVyOnIsaW5uZXI6ZCxwYXRoOmN9fWZ1bmN0aW9uIFFxdCh0KXt2YXIgZT10LnRyYW5zZm9ybSxhPXQud2lkdGgsaT1hPT09dm9pZCAwP0FEOmEscj10LmhlaWdodCxzPXI9PT12b2lkIDA/QUQ6cixuPXQuc3RhcnRDZW50ZXJlZCxvPW49PT12b2lkIDA/ITE6bixkPSIiO3JldHVybiBvJiZDNWU/ZCs9InRyYW5zbGF0ZSgiLmNvbmNhdChlLngvZW8taS8yLCJlbSwgIikuY29uY2F0KGUueS9lby1zLzIsImVtKSAiKTpvP2QrPSJ0cmFuc2xhdGUoY2FsYygtNTAlICsgIi5jb25jYXQoZS54L2VvLCJlbSksIGNhbGMoLTUwJSArICIpLmNvbmNhdChlLnkvZW8sImVtKSkgIik6ZCs9InRyYW5zbGF0ZSgiLmNvbmNhdChlLngvZW8sImVtLCAiKS5jb25jYXQoZS55L2VvLCJlbSkgIiksZCs9InNjYWxlKCIuY29uY2F0KGUuc2l6ZS9lbyooZS5mbGlwWD8tMToxKSwiLCAiKS5jb25jYXQoZS5zaXplL2VvKihlLmZsaXBZPy0xOjEpLCIpICIpLGQrPSJyb3RhdGUoIi5jb25jYXQoZS5yb3RhdGUsImRlZykgIiksZH1mdW5jdGlvbiBkOGUoKXt2YXIgdD1RNWUsZT1KNWUsYT1ldC5jc3NQcmVmaXgsaT1ldC5yZXBsYWNlbWVudENsYXNzLHI9SnF0O2lmKGEhPT10fHxpIT09ZSl7dmFyIHM9bmV3IFJlZ0V4cCgiXFwuIi5jb25jYXQodCwiXFwtIiksImciKSxuPW5ldyBSZWdFeHAoIlxcLS0iLmNvbmNhdCh0LCJcXC0iKSwiZyIpLG89bmV3IFJlZ0V4cCgiXFwuIi5jb25jYXQoZSksImciKTtyPXIucmVwbGFjZShzLCIuIi5jb25jYXQoYSwiLSIpKS5yZXBsYWNlKG4sIi0tIi5jb25jYXQoYSwiLSIpKS5yZXBsYWNlKG8sIi4iLmNvbmNhdChpKSl9cmV0dXJuIHJ9ZnVuY3Rpb24gcUQoKXtldC5hdXRvQWRkQ3NzJiYhaDhlJiYoWXF0KGQ4ZSgpKSxoOGU9ITApfWZ1bmN0aW9uIHRWdCh0KXskcyYmKF9mP3NldFRpbWVvdXQodCwwKTpwOGUucHVzaCh0KSl9ZnVuY3Rpb24gQzUodCl7dmFyIGU9dC50YWcsYT10LmF0dHJpYnV0ZXMsaT1hPT09dm9pZCAwP3t9OmEscj10LmNoaWxkcmVuLHM9cj09PXZvaWQgMD9bXTpyO3JldHVybiB0eXBlb2YgdD09InN0cmluZyI/YzhlKHQpOiI8Ii5jb25jYXQoZSwiICIpLmNvbmNhdChYcXQoaSksIj4iKS5jb25jYXQocy5tYXAoQzUpLmpvaW4oIiIpLCI8LyIpLmNvbmNhdChlLCI+Iil9ZnVuY3Rpb24gZjhlKHQsZSxhKXtpZih0JiZ0W2VdJiZ0W2VdW2FdKXJldHVybntwcmVmaXg6ZSxpY29uTmFtZTphLGljb246dFtlXVthXX19ZnVuY3Rpb24gbThlKHQpe3JldHVybiBIaSh0KS5sZW5ndGghPT0xP251bGw6dC5jb2RlUG9pbnRBdCgwKS50b1N0cmluZygxNil9ZnVuY3Rpb24gZzhlKHQpe3JldHVybiBPYmplY3Qua2V5cyh0KS5yZWR1Y2UoZnVuY3Rpb24oZSxhKXt2YXIgaT10W2FdLHI9ISFpLmljb247cmV0dXJuIHI/ZVtpLmljb25OYW1lXT1pLmljb246ZVthXT1pLGV9LHt9KX1mdW5jdGlvbiBqRCh0LGUpe3ZhciBhPWFyZ3VtZW50cy5sZW5ndGg+MiYmYXJndW1lbnRzWzJdIT09dm9pZCAwP2FyZ3VtZW50c1syXTp7fSxpPWEuc2tpcEhvb2tzLHI9aT09PXZvaWQgMD8hMTppLHM9ZzhlKGUpO3R5cGVvZiBxaS5ob29rcy5hZGRQYWNrPT0iZnVuY3Rpb24iJiYhcj9xaS5ob29rcy5hZGRQYWNrKHQsZzhlKGUpKTpxaS5zdHlsZXNbdF09TmUoTmUoe30scWkuc3R5bGVzW3RdfHx7fSkscyksdD09PSJmYXMiJiZqRCgiZmEiLGUpfWZ1bmN0aW9uIHNWdCh0KXtyZXR1cm5+anF0LmluZGV4T2YodCl9ZnVuY3Rpb24gblZ0KHQsZSl7dmFyIGE9ZS5zcGxpdCgiLSIpLGk9YVswXSxyPWEuc2xpY2UoMSkuam9pbigiLSIpO3JldHVybiBpPT09dCYmciE9PSIiJiYhc1Z0KHIpP3I6bnVsbH1mdW5jdGlvbiBHRCh0LGUpe3JldHVybih2OGVbdF18fHt9KVtlXX1mdW5jdGlvbiBvVnQodCxlKXtyZXR1cm4oeThlW3RdfHx7fSlbZV19ZnVuY3Rpb24gQjAodCxlKXtyZXR1cm4oTThlW3RdfHx7fSlbZV19ZnVuY3Rpb24gazhlKHQpe3JldHVybiB4OGVbdF18fHtwcmVmaXg6bnVsbCxpY29uTmFtZTpudWxsfX1mdW5jdGlvbiBsVnQodCl7dmFyIGU9dzhlW3RdLGE9R0QoImZhcyIsdCk7cmV0dXJuIGV8fChhP3twcmVmaXg6ImZhcyIsaWNvbk5hbWU6YX06bnVsbCl8fHtwcmVmaXg6bnVsbCxpY29uTmFtZTpudWxsfX1mdW5jdGlvbiB0bygpe3JldHVybiBXRH1mdW5jdGlvbiBjVnQodCl7dmFyIGU9UzIsYT1iOGUucmVkdWNlKGZ1bmN0aW9uKGkscil7cmV0dXJuIGlbcl09IiIuY29uY2F0KGV0LmNzc1ByZWZpeCwiLSIpLmNvbmNhdChyKSxpfSx7fSk7cmV0dXJuIFc1ZS5mb3JFYWNoKGZ1bmN0aW9uKGkpeyh0LmluY2x1ZGVzKGFbaV0pfHx0LnNvbWUoZnVuY3Rpb24ocil7cmV0dXJuIHJWdFtpXS5pbmNsdWRlcyhyKX0pKSYmKGU9aSl9KSxlfWZ1bmN0aW9uIFRmKHQpe3ZhciBlPWFyZ3VtZW50cy5sZW5ndGg+MSYmYXJndW1lbnRzWzFdIT09dm9pZCAwP2FyZ3VtZW50c1sxXTp7fSxhPWUuZmFtaWx5LGk9YT09PXZvaWQgMD9TMjphLHI9UnF0W2ldW3RdO2lmKGk9PT1NNSYmIXQpcmV0dXJuImZhZCI7dmFyIHM9cjhlW2ldW3RdfHxyOGVbaV1bcl0sbj10IGluIHFpLnN0eWxlcz90Om51bGwsbz1zfHxufHxudWxsO3JldHVybiBvfWZ1bmN0aW9uIGRWdCh0KXt2YXIgZT1bXSxhPW51bGw7cmV0dXJuIHQuZm9yRWFjaChmdW5jdGlvbihpKXt2YXIgcj1uVnQoZXQuY3NzUHJlZml4LGkpO3I/YT1yOmkmJmUucHVzaChpKX0pLHtpY29uTmFtZTphLHJlc3Q6ZX19ZnVuY3Rpb24gQzhlKHQpe3JldHVybiB0LnNvcnQoKS5maWx0ZXIoZnVuY3Rpb24oZSxhLGkpe3JldHVybiBpLmluZGV4T2YoZSk9PT1hfSl9ZnVuY3Rpb24gTGYodCl7dmFyIGU9YXJndW1lbnRzLmxlbmd0aD4xJiZhcmd1bWVudHNbMV0hPT12b2lkIDA/YXJndW1lbnRzWzFdOnt9LGE9ZS5za2lwTG9va3VwcyxpPWE9PT12b2lkIDA/ITE6YSxyPW51bGwscz1DOGUodC5maWx0ZXIoZnVuY3Rpb24oZyl7cmV0dXJuIF84ZS5pbmNsdWRlcyhnKX0pKSxuPUM4ZSh0LmZpbHRlcihmdW5jdGlvbihnKXtyZXR1cm4hXzhlLmluY2x1ZGVzKGcpfSkpLG89cy5maWx0ZXIoZnVuY3Rpb24oZyl7cmV0dXJuIHI9ZywhVDVlLmluY2x1ZGVzKGcpfSksZD1NZihvLDEpLGM9ZFswXSxoPWM9PT12b2lkIDA/bnVsbDpjLGw9Y1Z0KHMpLGY9TmUoTmUoe30sZFZ0KG4pKSx7fSx7cHJlZml4OlRmKGgse2ZhbWlseTpsfSl9KTtyZXR1cm4gTmUoTmUoTmUoe30sZiksZlZ0KHt2YWx1ZXM6dCxmYW1pbHk6bCxzdHlsZXM6XzUsY29uZmlnOmV0LGNhbm9uaWNhbDpmLGdpdmVuUHJlZml4OnJ9KSksaFZ0KGkscixmKSl9ZnVuY3Rpb24gaFZ0KHQsZSxhKXt2YXIgaT1hLnByZWZpeCxyPWEuaWNvbk5hbWU7aWYodHx8IWl8fCFyKXJldHVybntwcmVmaXg6aSxpY29uTmFtZTpyfTt2YXIgcz1lPT09ImZhIj9rOGUocik6e30sbj1CMChpLHIpO3JldHVybiByPXMuaWNvbk5hbWV8fG58fHIsaT1zLnByZWZpeHx8aSxpPT09ImZhciImJiFfNS5mYXImJl81LmZhcyYmIWV0LmF1dG9GZXRjaFN2ZyYmKGk9ImZhcyIpLHtwcmVmaXg6aSxpY29uTmFtZTpyfX1mdW5jdGlvbiBmVnQodCl7dmFyIGU9dC52YWx1ZXMsYT10LmZhbWlseSxpPXQuY2Fub25pY2FsLHI9dC5naXZlblByZWZpeCxzPXI9PT12b2lkIDA/IiI6cixuPXQuc3R5bGVzLG89bj09PXZvaWQgMD97fTpuLGQ9dC5jb25maWcsYz1kPT09dm9pZCAwP3t9OmQsaD1hPT09TTUsbD1lLmluY2x1ZGVzKCJmYS1kdW90b25lIil8fGUuaW5jbHVkZXMoImZhZCIpLGY9Yy5mYW1pbHlEZWZhdWx0PT09ImR1b3RvbmUiLGc9aS5wcmVmaXg9PT0iZmFkInx8aS5wcmVmaXg9PT0iZmEtZHVvdG9uZSI7aWYoIWgmJihsfHxmfHxnKSYmKGkucHJlZml4PSJmYWQiKSwoZS5pbmNsdWRlcygiZmEtYnJhbmRzIil8fGUuaW5jbHVkZXMoImZhYiIpKSYmKGkucHJlZml4PSJmYWIiKSwhaS5wcmVmaXgmJnBWdC5pbmNsdWRlcyhhKSl7dmFyIHk9T2JqZWN0LmtleXMobykuZmluZChmdW5jdGlvbihtKXtyZXR1cm4gdVZ0LmluY2x1ZGVzKG0pfSk7aWYoeXx8Yy5hdXRvRmV0Y2hTdmcpe3ZhciB2PUxIdC5nZXQoYSkuZGVmYXVsdFNob3J0UHJlZml4SWQ7aS5wcmVmaXg9dixpLmljb25OYW1lPUIwKGkucHJlZml4LGkuaWNvbk5hbWUpfHxpLmljb25OYW1lfX1yZXR1cm4oaS5wcmVmaXg9PT0iZmEifHxzPT09ImZhIikmJihpLnByZWZpeD10bygpfHwiZmFzIiksaX1mdW5jdGlvbiBiVnQodCxlKXt2YXIgYT1lLm1peG91dHNUbztyZXR1cm4gVDhlPXQsb2w9e30sT2JqZWN0LmtleXMobGwpLmZvckVhY2goZnVuY3Rpb24oaSl7Z1Z0LmluZGV4T2YoaSk9PT0tMSYmZGVsZXRlIGxsW2ldfSksVDhlLmZvckVhY2goZnVuY3Rpb24oaSl7dmFyIHI9aS5taXhvdXQ/aS5taXhvdXQoKTp7fTtpZihPYmplY3Qua2V5cyhyKS5mb3JFYWNoKGZ1bmN0aW9uKG4pe3R5cGVvZiByW25dPT0iZnVuY3Rpb24iJiYoYVtuXT1yW25dKSx6ZihyW25dKT09PSJvYmplY3QiJiZPYmplY3Qua2V5cyhyW25dKS5mb3JFYWNoKGZ1bmN0aW9uKG8pe2Fbbl18fChhW25dPXt9KSxhW25dW29dPXJbbl1bb119KX0pLGkuaG9va3Mpe3ZhciBzPWkuaG9va3MoKTtPYmplY3Qua2V5cyhzKS5mb3JFYWNoKGZ1bmN0aW9uKG4pe29sW25dfHwob2xbbl09W10pLG9sW25dLnB1c2goc1tuXSl9KX1pLnByb3ZpZGVzJiZpLnByb3ZpZGVzKGxsKX0pLGF9ZnVuY3Rpb24gWUQodCxlKXtmb3IodmFyIGE9YXJndW1lbnRzLmxlbmd0aCxpPW5ldyBBcnJheShhPjI/YS0yOjApLHI9MjtyPGE7cisrKWlbci0yXT1hcmd1bWVudHNbcl07dmFyIHM9b2xbdF18fFtdO3JldHVybiBzLmZvckVhY2goZnVuY3Rpb24obil7ZT1uLmFwcGx5KG51bGwsW2VdLmNvbmNhdChpKSl9KSxlfWZ1bmN0aW9uIEgwKHQpe2Zvcih2YXIgZT1hcmd1bWVudHMubGVuZ3RoLGE9bmV3IEFycmF5KGU+MT9lLTE6MCksaT0xO2k8ZTtpKyspYVtpLTFdPWFyZ3VtZW50c1tpXTt2YXIgcj1vbFt0XXx8W107ci5mb3JFYWNoKGZ1bmN0aW9uKHMpe3MuYXBwbHkobnVsbCxhKX0pfWZ1bmN0aW9uIGFvKCl7dmFyIHQ9YXJndW1lbnRzWzBdLGU9QXJyYXkucHJvdG90eXBlLnNsaWNlLmNhbGwoYXJndW1lbnRzLDEpO3JldHVybiBsbFt0XT9sbFt0XS5hcHBseShudWxsLGUpOnZvaWQgMH1mdW5jdGlvbiBaRCh0KXt0LnByZWZpeD09PSJmYSImJih0LnByZWZpeD0iZmFzIik7dmFyIGU9dC5pY29uTmFtZSxhPXQucHJlZml4fHx0bygpO2lmKGUpcmV0dXJuIGU9QjAoYSxlKXx8ZSxmOGUoTDhlLmRlZmluaXRpb25zLGEsZSl8fGY4ZShxaS5zdHlsZXMsYSxlKX1mdW5jdGlvbiAkZih0LGUpe3JldHVybiBPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiYWJzdHJhY3QiLHtnZXQ6ZX0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJodG1sIix7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHQuYWJzdHJhY3QubWFwKGZ1bmN0aW9uKGkpe3JldHVybiBDNShpKX0pfX0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJub2RlIix7Z2V0OmZ1bmN0aW9uKCl7aWYoJHMpe3ZhciBpPXkxLmNyZWF0ZUVsZW1lbnQoImRpdiIpO3JldHVybiBpLmlubmVySFRNTD10Lmh0bWwsaS5jaGlsZHJlbn19fSksdH1mdW5jdGlvbiBNVnQodCl7dmFyIGU9dC5jaGlsZHJlbixhPXQubWFpbixpPXQubWFzayxyPXQuYXR0cmlidXRlcyxzPXQuc3R5bGVzLG49dC50cmFuc2Zvcm07aWYoSEQobikmJmEuZm91bmQmJiFpLmZvdW5kKXt2YXIgbz1hLndpZHRoLGQ9YS5oZWlnaHQsYz17eDpvL2QvMix5Oi41fTtyLnN0eWxlPUNmKE5lKE5lKHt9LHMpLHt9LHsidHJhbnNmb3JtLW9yaWdpbiI6IiIuY29uY2F0KGMueCtuLngvMTYsImVtICIpLmNvbmNhdChjLnkrbi55LzE2LCJlbSIpfSkpfXJldHVyblt7dGFnOiJzdmciLGF0dHJpYnV0ZXM6cixjaGlsZHJlbjplfV19ZnVuY3Rpb24gelZ0KHQpe3ZhciBlPXQucHJlZml4LGE9dC5pY29uTmFtZSxpPXQuY2hpbGRyZW4scj10LmF0dHJpYnV0ZXMscz10LnN5bWJvbCxuPXM9PT0hMD8iIi5jb25jYXQoZSwiLSIpLmNvbmNhdChldC5jc3NQcmVmaXgsIi0iKS5jb25jYXQoYSk6cztyZXR1cm5be3RhZzoic3ZnIixhdHRyaWJ1dGVzOntzdHlsZToiZGlzcGxheTogbm9uZTsifSxjaGlsZHJlbjpbe3RhZzoic3ltYm9sIixhdHRyaWJ1dGVzOk5lKE5lKHt9LHIpLHt9LHtpZDpufSksY2hpbGRyZW46aX1dfV19ZnVuY3Rpb24ga1Z0KHQpe3ZhciBlPVsiYXJpYS1sYWJlbCIsImFyaWEtbGFiZWxsZWRieSIsInRpdGxlIiwicm9sZSJdO3JldHVybiBlLnNvbWUoZnVuY3Rpb24oYSl7cmV0dXJuIGEgaW4gdH0pfWZ1bmN0aW9uIFhEKHQpe3ZhciBlPXQuaWNvbnMsYT1lLm1haW4saT1lLm1hc2sscj10LnByZWZpeCxzPXQuaWNvbk5hbWUsbj10LnRyYW5zZm9ybSxvPXQuc3ltYm9sLGQ9dC5tYXNrSWQsYz10LmV4dHJhLGg9dC53YXRjaGFibGUsbD1oPT09dm9pZCAwPyExOmgsZj1pLmZvdW5kP2k6YSxnPWYud2lkdGgseT1mLmhlaWdodCx2PVtldC5yZXBsYWNlbWVudENsYXNzLHM/IiIuY29uY2F0KGV0LmNzc1ByZWZpeCwiLSIpLmNvbmNhdChzKToiIl0uZmlsdGVyKGZ1bmN0aW9uKF8pe3JldHVybiBjLmNsYXNzZXMuaW5kZXhPZihfKT09PS0xfSkuZmlsdGVyKGZ1bmN0aW9uKF8pe3JldHVybiBfIT09IiJ8fCEhX30pLmNvbmNhdChjLmNsYXNzZXMpLmpvaW4oIiAiKSxtPXtjaGlsZHJlbjpbXSxhdHRyaWJ1dGVzOk5lKE5lKHt9LGMuYXR0cmlidXRlcykse30seyJkYXRhLXByZWZpeCI6ciwiZGF0YS1pY29uIjpzLGNsYXNzOnYscm9sZTpjLmF0dHJpYnV0ZXMucm9sZXx8ImltZyIsdmlld0JveDoiMCAwICIuY29uY2F0KGcsIiAiKS5jb25jYXQoeSl9KX07IWtWdChjLmF0dHJpYnV0ZXMpJiYhYy5hdHRyaWJ1dGVzWyJhcmlhLWhpZGRlbiJdJiYobS5hdHRyaWJ1dGVzWyJhcmlhLWhpZGRlbiJdPSJ0cnVlIiksbCYmKG0uYXR0cmlidXRlc1tSMF09IiIpO3ZhciB4PU5lKE5lKHt9LG0pLHt9LHtwcmVmaXg6cixpY29uTmFtZTpzLG1haW46YSxtYXNrOmksbWFza0lkOmQsdHJhbnNmb3JtOm4sc3ltYm9sOm8sc3R5bGVzOk5lKHt9LGMuc3R5bGVzKX0pLE09aS5mb3VuZCYmYS5mb3VuZD9hbygiZ2VuZXJhdGVBYnN0cmFjdE1hc2siLHgpfHx7Y2hpbGRyZW46W10sYXR0cmlidXRlczp7fX06YW8oImdlbmVyYXRlQWJzdHJhY3RJY29uIix4KXx8e2NoaWxkcmVuOltdLGF0dHJpYnV0ZXM6e319LFM9TS5jaGlsZHJlbixGPU0uYXR0cmlidXRlcztyZXR1cm4geC5jaGlsZHJlbj1TLHguYXR0cmlidXRlcz1GLG8/elZ0KHgpOk1WdCh4KX1mdW5jdGlvbiAkOGUodCl7dmFyIGU9dC5jb250ZW50LGE9dC53aWR0aCxpPXQuaGVpZ2h0LHI9dC50cmFuc2Zvcm0scz10LmV4dHJhLG49dC53YXRjaGFibGUsbz1uPT09dm9pZCAwPyExOm4sZD1OZShOZSh7fSxzLmF0dHJpYnV0ZXMpLHt9LHtjbGFzczpzLmNsYXNzZXMuam9pbigiICIpfSk7byYmKGRbUjBdPSIiKTt2YXIgYz1OZSh7fSxzLnN0eWxlcyk7SEQocikmJihjLnRyYW5zZm9ybT1RcXQoe3RyYW5zZm9ybTpyLHN0YXJ0Q2VudGVyZWQ6ITAsd2lkdGg6YSxoZWlnaHQ6aX0pLGNbIi13ZWJraXQtdHJhbnNmb3JtIl09Yy50cmFuc2Zvcm0pO3ZhciBoPUNmKGMpO2gubGVuZ3RoPjAmJihkLnN0eWxlPWgpO3ZhciBsPVtdO3JldHVybiBsLnB1c2goe3RhZzoic3BhbiIsYXR0cmlidXRlczpkLGNoaWxkcmVuOltlXX0pLGx9ZnVuY3Rpb24gU1Z0KHQpe3ZhciBlPXQuY29udGVudCxhPXQuZXh0cmEsaT1OZShOZSh7fSxhLmF0dHJpYnV0ZXMpLHt9LHtjbGFzczphLmNsYXNzZXMuam9pbigiICIpfSkscj1DZihhLnN0eWxlcyk7ci5sZW5ndGg+MCYmKGkuc3R5bGU9cik7dmFyIHM9W107cmV0dXJuIHMucHVzaCh7dGFnOiJzcGFuIixhdHRyaWJ1dGVzOmksY2hpbGRyZW46W2VdfSksc31mdW5jdGlvbiBRRCh0KXt2YXIgZT10WzBdLGE9dFsxXSxpPXQuc2xpY2UoNCkscj1NZihpLDEpLHM9clswXSxuPW51bGw7cmV0dXJuIEFycmF5LmlzQXJyYXkocyk/bj17dGFnOiJnIixhdHRyaWJ1dGVzOntjbGFzczoiIi5jb25jYXQoZXQuY3NzUHJlZml4LCItIikuY29uY2F0KFJELkdST1VQKX0sY2hpbGRyZW46W3t0YWc6InBhdGgiLGF0dHJpYnV0ZXM6e2NsYXNzOiIiLmNvbmNhdChldC5jc3NQcmVmaXgsIi0iKS5jb25jYXQoUkQuU0VDT05EQVJZKSxmaWxsOiJjdXJyZW50Q29sb3IiLGQ6c1swXX19LHt0YWc6InBhdGgiLGF0dHJpYnV0ZXM6e2NsYXNzOiIiLmNvbmNhdChldC5jc3NQcmVmaXgsIi0iKS5jb25jYXQoUkQuUFJJTUFSWSksZmlsbDoiY3VycmVudENvbG9yIixkOnNbMV19fV19Om49e3RhZzoicGF0aCIsYXR0cmlidXRlczp7ZmlsbDoiY3VycmVudENvbG9yIixkOnN9fSx7Zm91bmQ6ITAsd2lkdGg6ZSxoZWlnaHQ6YSxpY29uOm59fWZ1bmN0aW9uIF9WdCh0LGUpeyFhOGUmJiFldC5zaG93TWlzc2luZ0ljb25zJiZ0JiZjb25zb2xlLmVycm9yKCdJY29uIHdpdGggbmFtZSAiJy5jb25jYXQodCwnIiBhbmQgcHJlZml4ICInKS5jb25jYXQoZSwnIiBpcyBtaXNzaW5nLicpKX1mdW5jdGlvbiBKRCh0LGUpe3ZhciBhPWU7cmV0dXJuIGU9PT0iZmEiJiZldC5zdHlsZURlZmF1bHQhPT1udWxsJiYoZT10bygpKSxuZXcgUHJvbWlzZShmdW5jdGlvbihpLHIpe2lmKGE9PT0iZmEiKXt2YXIgcz1rOGUodCl8fHt9O3Q9cy5pY29uTmFtZXx8dCxlPXMucHJlZml4fHxlfWlmKHQmJmUmJktEW2VdJiZLRFtlXVt0XSl7dmFyIG49S0RbZV1bdF07cmV0dXJuIGkoUUQobikpfV9WdCh0LGUpLGkoTmUoTmUoe30sQ1Z0KSx7fSx7aWNvbjpldC5zaG93TWlzc2luZ0ljb25zJiZ0P2FvKCJtaXNzaW5nSWNvbkFic3RyYWN0Iil8fHt9Ont9fSkpfSl9ZnVuY3Rpb24gRThlKHQpe3ZhciBlPXQuZ2V0QXR0cmlidXRlP3QuZ2V0QXR0cmlidXRlKFIwKTpudWxsO3JldHVybiB0eXBlb2YgZT09InN0cmluZyJ9ZnVuY3Rpb24gTFZ0KHQpe3ZhciBlPXQuZ2V0QXR0cmlidXRlP3QuZ2V0QXR0cmlidXRlKEVEKTpudWxsLGE9dC5nZXRBdHRyaWJ1dGU/dC5nZXRBdHRyaWJ1dGUoUEQpOm51bGw7cmV0dXJuIGUmJmF9ZnVuY3Rpb24gJFZ0KHQpe3JldHVybiB0JiZ0LmNsYXNzTGlzdCYmdC5jbGFzc0xpc3QuY29udGFpbnMmJnQuY2xhc3NMaXN0LmNvbnRhaW5zKGV0LnJlcGxhY2VtZW50Q2xhc3MpfWZ1bmN0aW9uIEFWdCgpe2lmKGV0LmF1dG9SZXBsYWNlU3ZnPT09ITApcmV0dXJuIERmLnJlcGxhY2U7dmFyIHQ9RGZbZXQuYXV0b1JlcGxhY2VTdmddO3JldHVybiB0fHxEZi5yZXBsYWNlfWZ1bmN0aW9uIERWdCh0KXtyZXR1cm4geTEuY3JlYXRlRWxlbWVudE5TKCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIsdCl9ZnVuY3Rpb24gRVZ0KHQpe3JldHVybiB5MS5jcmVhdGVFbGVtZW50KHQpfWZ1bmN0aW9uIFA4ZSh0KXt2YXIgZT1hcmd1bWVudHMubGVuZ3RoPjEmJmFyZ3VtZW50c1sxXSE9PXZvaWQgMD9hcmd1bWVudHNbMV06e30sYT1lLmNlRm4saT1hPT09dm9pZCAwP3QudGFnPT09InN2ZyI/RFZ0OkVWdDphO2lmKHR5cGVvZiB0PT0ic3RyaW5nIilyZXR1cm4geTEuY3JlYXRlVGV4dE5vZGUodCk7dmFyIHI9aSh0LnRhZyk7T2JqZWN0LmtleXModC5hdHRyaWJ1dGVzfHxbXSkuZm9yRWFjaChmdW5jdGlvbihuKXtyLnNldEF0dHJpYnV0ZShuLHQuYXR0cmlidXRlc1tuXSl9KTt2YXIgcz10LmNoaWxkcmVufHxbXTtyZXR1cm4gcy5mb3JFYWNoKGZ1bmN0aW9uKG4pe3IuYXBwZW5kQ2hpbGQoUDhlKG4se2NlRm46aX0pKX0pLHJ9ZnVuY3Rpb24gUFZ0KHQpe3ZhciBlPSIgIi5jb25jYXQodC5vdXRlckhUTUwsIiAiKTtyZXR1cm4gZT0iIi5jb25jYXQoZSwiRm9udCBBd2Vzb21lIGZvbnRhd2Vzb21lLmNvbSAiKSxlfWZ1bmN0aW9uIEk4ZSh0KXt0KCl9ZnVuY3Rpb24gTjhlKHQsZSl7dmFyIGE9dHlwZW9mIGU9PSJmdW5jdGlvbiI/ZTpBZjtpZih0Lmxlbmd0aD09PTApYSgpO2Vsc2V7dmFyIGk9SThlO2V0Lm11dGF0ZUFwcHJvYWNoPT09RnF0JiYoaT1Kbi5yZXF1ZXN0QW5pbWF0aW9uRnJhbWV8fEk4ZSksaShmdW5jdGlvbigpe3ZhciByPUFWdCgpLHM9dEUuYmVnaW4oIm11dGF0ZSIpO3QubWFwKHIpLHMoKSxhKCl9KX19ZnVuY3Rpb24gRjhlKCl7YUU9ITB9ZnVuY3Rpb24gaUUoKXthRT0hMX1mdW5jdGlvbiBPOGUodCl7aWYoUzVlJiZldC5vYnNlcnZlTXV0YXRpb25zKXt2YXIgZT10LnRyZWVDYWxsYmFjayxhPWU9PT12b2lkIDA/QWY6ZSxpPXQubm9kZUNhbGxiYWNrLHI9aT09PXZvaWQgMD9BZjppLHM9dC5wc2V1ZG9FbGVtZW50c0NhbGxiYWNrLG49cz09PXZvaWQgMD9BZjpzLG89dC5vYnNlcnZlTXV0YXRpb25zUm9vdCxkPW89PT12b2lkIDA/eTE6bztFZj1uZXcgUzVlKGZ1bmN0aW9uKGMpe2lmKCFhRSl7dmFyIGg9dG8oKTtubChjKS5mb3JFYWNoKGZ1bmN0aW9uKGwpe2lmKGwudHlwZT09PSJjaGlsZExpc3QiJiZsLmFkZGVkTm9kZXMubGVuZ3RoPjAmJiFFOGUobC5hZGRlZE5vZGVzWzBdKSYmKGV0LnNlYXJjaFBzZXVkb0VsZW1lbnRzJiZuKGwudGFyZ2V0KSxhKGwudGFyZ2V0KSksbC50eXBlPT09ImF0dHJpYnV0ZXMiJiZsLnRhcmdldC5wYXJlbnROb2RlJiZldC5zZWFyY2hQc2V1ZG9FbGVtZW50cyYmbihbbC50YXJnZXRdLCEwKSxsLnR5cGU9PT0iYXR0cmlidXRlcyImJkU4ZShsLnRhcmdldCkmJn5WcXQuaW5kZXhPZihsLmF0dHJpYnV0ZU5hbWUpKWlmKGwuYXR0cmlidXRlTmFtZT09PSJjbGFzcyImJkxWdChsLnRhcmdldCkpe3ZhciBmPUxmKEJEKGwudGFyZ2V0KSksZz1mLnByZWZpeCx5PWYuaWNvbk5hbWU7bC50YXJnZXQuc2V0QXR0cmlidXRlKEVELGd8fGgpLHkmJmwudGFyZ2V0LnNldEF0dHJpYnV0ZShQRCx5KX1lbHNlICRWdChsLnRhcmdldCkmJnIobC50YXJnZXQpfSl9fSksJHMmJkVmLm9ic2VydmUoZCx7Y2hpbGRMaXN0OiEwLGF0dHJpYnV0ZXM6ITAsY2hhcmFjdGVyRGF0YTohMCxzdWJ0cmVlOiEwfSl9fWZ1bmN0aW9uIElWdCgpe0VmJiZFZi5kaXNjb25uZWN0KCl9ZnVuY3Rpb24gTlZ0KHQpe3ZhciBlPXQuZ2V0QXR0cmlidXRlKCJzdHlsZSIpLGE9W107cmV0dXJuIGUmJihhPWUuc3BsaXQoIjsiKS5yZWR1Y2UoZnVuY3Rpb24oaSxyKXt2YXIgcz1yLnNwbGl0KCI6Iiksbj1zWzBdLG89cy5zbGljZSgxKTtyZXR1cm4gbiYmby5sZW5ndGg+MCYmKGlbbl09by5qb2luKCI6IikudHJpbSgpKSxpfSx7fSkpLGF9ZnVuY3Rpb24gRlZ0KHQpe3ZhciBlPXQuZ2V0QXR0cmlidXRlKCJkYXRhLXByZWZpeCIpLGE9dC5nZXRBdHRyaWJ1dGUoImRhdGEtaWNvbiIpLGk9dC5pbm5lclRleHQhPT12b2lkIDA/dC5pbm5lclRleHQudHJpbSgpOiIiLHI9TGYoQkQodCkpO3JldHVybiByLnByZWZpeHx8KHIucHJlZml4PXRvKCkpLGUmJmEmJihyLnByZWZpeD1lLHIuaWNvbk5hbWU9YSksci5pY29uTmFtZSYmci5wcmVmaXh8fChyLnByZWZpeCYmaS5sZW5ndGg+MCYmKHIuaWNvbk5hbWU9b1Z0KHIucHJlZml4LHQuaW5uZXJUZXh0KXx8R0Qoci5wcmVmaXgsbThlKHQuaW5uZXJUZXh0KSkpLCFyLmljb25OYW1lJiZldC5hdXRvRmV0Y2hTdmcmJnQuZmlyc3RDaGlsZCYmdC5maXJzdENoaWxkLm5vZGVUeXBlPT09Tm9kZS5URVhUX05PREUmJihyLmljb25OYW1lPXQuZmlyc3RDaGlsZC5kYXRhKSkscn1mdW5jdGlvbiBPVnQodCl7dmFyIGU9bmwodC5hdHRyaWJ1dGVzKS5yZWR1Y2UoZnVuY3Rpb24oYSxpKXtyZXR1cm4gYS5uYW1lIT09ImNsYXNzIiYmYS5uYW1lIT09InN0eWxlIiYmKGFbaS5uYW1lXT1pLnZhbHVlKSxhfSx7fSk7cmV0dXJuIGV9ZnVuY3Rpb24gUlZ0KCl7cmV0dXJue2ljb25OYW1lOm51bGwscHJlZml4Om51bGwsdHJhbnNmb3JtOkhyLHN5bWJvbDohMSxtYXNrOntpY29uTmFtZTpudWxsLHByZWZpeDpudWxsLHJlc3Q6W119LG1hc2tJZDpudWxsLGV4dHJhOntjbGFzc2VzOltdLHN0eWxlczp7fSxhdHRyaWJ1dGVzOnt9fX19ZnVuY3Rpb24gUjhlKHQpe3ZhciBlPWFyZ3VtZW50cy5sZW5ndGg+MSYmYXJndW1lbnRzWzFdIT09dm9pZCAwP2FyZ3VtZW50c1sxXTp7c3R5bGVQYXJzZXI6ITB9LGE9RlZ0KHQpLGk9YS5pY29uTmFtZSxyPWEucHJlZml4LHM9YS5yZXN0LG49T1Z0KHQpLG89WUQoInBhcnNlTm9kZUF0dHJpYnV0ZXMiLHt9LHQpLGQ9ZS5zdHlsZVBhcnNlcj9OVnQodCk6W107cmV0dXJuIE5lKHtpY29uTmFtZTppLHByZWZpeDpyLHRyYW5zZm9ybTpIcixtYXNrOntpY29uTmFtZTpudWxsLHByZWZpeDpudWxsLHJlc3Q6W119LG1hc2tJZDpudWxsLHN5bWJvbDohMSxleHRyYTp7Y2xhc3NlczpzLHN0eWxlczpkLGF0dHJpYnV0ZXM6bn19LG8pfWZ1bmN0aW9uIEI4ZSh0KXt2YXIgZT1ldC5hdXRvUmVwbGFjZVN2Zz09PSJuZXN0Ij9SOGUodCx7c3R5bGVQYXJzZXI6ITF9KTpSOGUodCk7cmV0dXJufmUuZXh0cmEuY2xhc3Nlcy5pbmRleE9mKHM4ZSk/YW8oImdlbmVyYXRlTGF5ZXJzVGV4dCIsdCxlKTphbygiZ2VuZXJhdGVTdmdSZXBsYWNlbWVudE11dGF0aW9uIix0LGUpfWZ1bmN0aW9uIEhWdCgpe3JldHVybltdLmNvbmNhdChIaShHNWUpLEhpKFg1ZSkpfWZ1bmN0aW9uIEg4ZSh0KXt2YXIgZT1hcmd1bWVudHMubGVuZ3RoPjEmJmFyZ3VtZW50c1sxXSE9PXZvaWQgMD9hcmd1bWVudHNbMV06bnVsbDtpZighJHMpcmV0dXJuIFByb21pc2UucmVzb2x2ZSgpO3ZhciBhPXkxLmRvY3VtZW50RWxlbWVudC5jbGFzc0xpc3QsaT1mdW5jdGlvbihsKXtyZXR1cm4gYS5hZGQoIiIuY29uY2F0KGU4ZSwiLSIpLmNvbmNhdChsKSl9LHI9ZnVuY3Rpb24obCl7cmV0dXJuIGEucmVtb3ZlKCIiLmNvbmNhdChlOGUsIi0iKS5jb25jYXQobCkpfSxzPWV0LmF1dG9GZXRjaFN2Zz9IVnQoKTpUNWUuY29uY2F0KE9iamVjdC5rZXlzKEJWdCkpO3MuaW5jbHVkZXMoImZhIil8fHMucHVzaCgiZmEiKTt2YXIgbj1bIi4iLmNvbmNhdChzOGUsIjpub3QoWyIpLmNvbmNhdChSMCwiXSkiKV0uY29uY2F0KHMubWFwKGZ1bmN0aW9uKGgpe3JldHVybiIuIi5jb25jYXQoaCwiOm5vdChbIikuY29uY2F0KFIwLCJdKSIpfSkpLmpvaW4oIiwgIik7aWYobi5sZW5ndGg9PT0wKXJldHVybiBQcm9taXNlLnJlc29sdmUoKTt2YXIgbz1bXTt0cnl7bz1ubCh0LnF1ZXJ5U2VsZWN0b3JBbGwobikpfWNhdGNoe31pZihvLmxlbmd0aD4wKWkoInBlbmRpbmciKSxyKCJjb21wbGV0ZSIpO2Vsc2UgcmV0dXJuIFByb21pc2UucmVzb2x2ZSgpO3ZhciBkPXRFLmJlZ2luKCJvblRyZWUiKSxjPW8ucmVkdWNlKGZ1bmN0aW9uKGgsbCl7dHJ5e3ZhciBmPUI4ZShsKTtmJiZoLnB1c2goZil9Y2F0Y2goZyl7YThlfHxnLm5hbWU9PT0iTWlzc2luZ0ljb24iJiZjb25zb2xlLmVycm9yKGcpfXJldHVybiBofSxbXSk7cmV0dXJuIG5ldyBQcm9taXNlKGZ1bmN0aW9uKGgsbCl7UHJvbWlzZS5hbGwoYykudGhlbihmdW5jdGlvbihmKXtOOGUoZixmdW5jdGlvbigpe2koImFjdGl2ZSIpLGkoImNvbXBsZXRlIikscigicGVuZGluZyIpLHR5cGVvZiBlPT0iZnVuY3Rpb24iJiZlKCksZCgpLGgoKX0pfSkuY2F0Y2goZnVuY3Rpb24oZil7ZCgpLGwoZil9KX0pfWZ1bmN0aW9uIHFWdCh0KXt2YXIgZT1hcmd1bWVudHMubGVuZ3RoPjEmJmFyZ3VtZW50c1sxXSE9PXZvaWQgMD9hcmd1bWVudHNbMV06bnVsbDtCOGUodCkudGhlbihmdW5jdGlvbihhKXthJiZOOGUoW2FdLGUpfSl9ZnVuY3Rpb24gVlZ0KHQpe3JldHVybiBmdW5jdGlvbihlKXt2YXIgYT1hcmd1bWVudHMubGVuZ3RoPjEmJmFyZ3VtZW50c1sxXSE9PXZvaWQgMD9hcmd1bWVudHNbMV06e30saT0oZXx8e30pLmljb24/ZTpaRChlfHx7fSkscj1hLm1hc2s7cmV0dXJuIHImJihyPShyfHx7fSkuaWNvbj9yOlpEKHJ8fHt9KSksdChpLE5lKE5lKHt9LGEpLHt9LHttYXNrOnJ9KSl9fWZ1bmN0aW9uIFhWdCh0KXt2YXIgZT10LnJlcGxhY2UocThlLCIiKTtyZXR1cm4gbThlKEhpKGUpWzBdfHwiIil9ZnVuY3Rpb24gS1Z0KHQpe3ZhciBlPXQuZ2V0UHJvcGVydHlWYWx1ZSgiZm9udC1mZWF0dXJlLXNldHRpbmdzIikuaW5jbHVkZXMoInNzMDEiKSxhPXQuZ2V0UHJvcGVydHlWYWx1ZSgiY29udGVudCIpLGk9YS5yZXBsYWNlKHE4ZSwiIikscj1pLmNvZGVQb2ludEF0KDApLHM9cj49VjhlWzBdJiZyPD1WOGVbMV0sbj1pLmxlbmd0aD09PTI/aVswXT09PWlbMV06ITE7cmV0dXJuIHN8fG58fGV9ZnVuY3Rpb24gUVZ0KHQsZSl7dmFyIGE9dC5yZXBsYWNlKC9eWyciXXxbJyJdJC9nLCIiKS50b0xvd2VyQ2FzZSgpLGk9cGFyc2VJbnQoZSkscj1pc05hTihpKT8ibm9ybWFsIjppO3JldHVybihyRVthXXx8e30pW3JdfHxaVnRbYV19ZnVuY3Rpb24gVThlKHQsZSl7dmFyIGE9IiIuY29uY2F0KE5xdCkuY29uY2F0KGUucmVwbGFjZSgiOiIsIi0iKSk7cmV0dXJuIG5ldyBQcm9taXNlKGZ1bmN0aW9uKGkscil7aWYodC5nZXRBdHRyaWJ1dGUoYSkhPT1udWxsKXJldHVybiBpKCk7dmFyIHM9bmwodC5jaGlsZHJlbiksbj1zLmZpbHRlcihmdW5jdGlvbihrKXtyZXR1cm4gay5nZXRBdHRyaWJ1dGUoREQpPT09ZX0pWzBdLG89Sm4uZ2V0Q29tcHV0ZWRTdHlsZSh0LGUpLGQ9by5nZXRQcm9wZXJ0eVZhbHVlKCJmb250LWZhbWlseSIpLGM9ZC5tYXRjaChIcXQpLGg9by5nZXRQcm9wZXJ0eVZhbHVlKCJmb250LXdlaWdodCIpLGw9by5nZXRQcm9wZXJ0eVZhbHVlKCJjb250ZW50Iik7aWYobiYmIWMpcmV0dXJuIHQucmVtb3ZlQ2hpbGQobiksaSgpO2lmKGMmJmwhPT0ibm9uZSImJmwhPT0iIil7dmFyIGY9by5nZXRQcm9wZXJ0eVZhbHVlKCJjb250ZW50IiksZz1RVnQoZCxoKSx5PVhWdChmKSx2PWNbMF0uc3RhcnRzV2l0aCgiRm9udEF3ZXNvbWUiKSxtPUtWdChvKSx4PUdEKGcseSksTT14O2lmKHYpe3ZhciBTPWxWdCh5KTtTLmljb25OYW1lJiZTLnByZWZpeCYmKHg9Uy5pY29uTmFtZSxnPVMucHJlZml4KX1pZih4JiYhbSYmKCFufHxuLmdldEF0dHJpYnV0ZShFRCkhPT1nfHxuLmdldEF0dHJpYnV0ZShQRCkhPT1NKSl7dC5zZXRBdHRyaWJ1dGUoYSxNKSxuJiZ0LnJlbW92ZUNoaWxkKG4pO3ZhciBGPVJWdCgpLF89Ri5leHRyYTtfLmF0dHJpYnV0ZXNbRERdPWUsSkQoeCxnKS50aGVuKGZ1bmN0aW9uKGspe3ZhciBOPVhEKE5lKE5lKHt9LEYpLHt9LHtpY29uczp7bWFpbjprLG1hc2s6UzhlKCl9LHByZWZpeDpnLGljb25OYW1lOk0sZXh0cmE6Xyx3YXRjaGFibGU6ITB9KSksTD15MS5jcmVhdGVFbGVtZW50TlMoImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiwic3ZnIik7ZT09PSI6OmJlZm9yZSI/dC5pbnNlcnRCZWZvcmUoTCx0LmZpcnN0Q2hpbGQpOnQuYXBwZW5kQ2hpbGQoTCksTC5vdXRlckhUTUw9Ti5tYXAoZnVuY3Rpb24oQSl7cmV0dXJuIEM1KEEpfSkuam9pbihgCmApLHQucmVtb3ZlQXR0cmlidXRlKGEpLGkoKX0pLmNhdGNoKHIpfWVsc2UgaSgpfWVsc2UgaSgpfSl9ZnVuY3Rpb24gSlZ0KHQpe3JldHVybiBQcm9taXNlLmFsbChbVThlKHQsIjo6YmVmb3JlIiksVThlKHQsIjo6YWZ0ZXIiKV0pfWZ1bmN0aW9uIGVqdCh0KXtyZXR1cm4gdC5wYXJlbnROb2RlIT09ZG9jdW1lbnQuaGVhZCYmIX5PcXQuaW5kZXhPZih0LnRhZ05hbWUudG9VcHBlckNhc2UoKSkmJiF0LmdldEF0dHJpYnV0ZShERCkmJighdC5wYXJlbnROb2RlfHx0LnBhcmVudE5vZGUudGFnTmFtZSE9PSJzdmciKX1mdW5jdGlvbiBXOGUodCl7dmFyIGU9YXJndW1lbnRzLmxlbmd0aD4xJiZhcmd1bWVudHNbMV0hPT12b2lkIDA/YXJndW1lbnRzWzFdOiExO2lmKCRzKXt2YXIgYTtpZihlKWE9dDtlbHNlIGlmKGV0LnNlYXJjaFBzZXVkb0VsZW1lbnRzRnVsbFNjYW4pYT10LnF1ZXJ5U2VsZWN0b3JBbGwoIioiKTtlbHNle3ZhciBpPW5ldyBTZXQscj14Zihkb2N1bWVudC5zdHlsZVNoZWV0cyksczt0cnl7Zm9yKHIucygpOyEocz1yLm4oKSkuZG9uZTspe3ZhciBuPXMudmFsdWU7dHJ5e3ZhciBvPXhmKG4uY3NzUnVsZXMpLGQ7dHJ5e2ZvcihvLnMoKTshKGQ9by5uKCkpLmRvbmU7KXt2YXIgYz1kLnZhbHVlLGg9YWp0KGMuc2VsZWN0b3JUZXh0KSxsPXhmKGgpLGY7dHJ5e2ZvcihsLnMoKTshKGY9bC5uKCkpLmRvbmU7KXt2YXIgZz1mLnZhbHVlO2kuYWRkKGcpfX1jYXRjaCh2KXtsLmUodil9ZmluYWxseXtsLmYoKX19fWNhdGNoKHYpe28uZSh2KX1maW5hbGx5e28uZigpfX1jYXRjaCh2KXtldC5zZWFyY2hQc2V1ZG9FbGVtZW50c1dhcm5pbmdzJiZjb25zb2xlLndhcm4oIkZvbnQgQXdlc29tZTogY2Fubm90IHBhcnNlIHN0eWxlc2hlZXQ6ICIuY29uY2F0KG4uaHJlZiwiICgiKS5jb25jYXQodi5tZXNzYWdlLGApCklmIGl0IGRlY2xhcmVzIGFueSBGb250IEF3ZXNvbWUgQ1NTIHBzZXVkby1lbGVtZW50cywgdGhleSB3aWxsIG5vdCBiZSByZW5kZXJlZCBhcyBTVkcgaWNvbnMuIEFkZCBjcm9zc29yaWdpbj0iYW5vbnltb3VzIiB0byB0aGUgPGxpbms+LCBlbmFibGUgc2VhcmNoUHNldWRvRWxlbWVudHNGdWxsU2NhbiBmb3Igc2xvd2VyIGJ1dCBtb3JlIHRob3JvdWdoIERPTSBwYXJzaW5nLCBvciBzdXBwcmVzcyB0aGlzIHdhcm5pbmcgYnkgc2V0dGluZyBzZWFyY2hQc2V1ZG9FbGVtZW50c1dhcm5pbmdzIHRvIGZhbHNlLmApKX19fWNhdGNoKHYpe3IuZSh2KX1maW5hbGx5e3IuZigpfWlmKCFpLnNpemUpcmV0dXJuO3ZhciB5PUFycmF5LmZyb20oaSkuam9pbigiLCAiKTt0cnl7YT10LnF1ZXJ5U2VsZWN0b3JBbGwoeSl9Y2F0Y2h7fX1yZXR1cm4gbmV3IFByb21pc2UoZnVuY3Rpb24odixtKXt2YXIgeD1ubChhKS5maWx0ZXIoZWp0KS5tYXAoSlZ0KSxNPXRFLmJlZ2luKCJzZWFyY2hQc2V1ZG9FbGVtZW50cyIpO0Y4ZSgpLFByb21pc2UuYWxsKHgpLnRoZW4oZnVuY3Rpb24oKXtNKCksaUUoKSx2KCl9KS5jYXRjaChmdW5jdGlvbigpe00oKSxpRSgpLG0oKX0pfSl9fWZ1bmN0aW9uIFo4ZSh0KXt2YXIgZT1hcmd1bWVudHMubGVuZ3RoPjEmJmFyZ3VtZW50c1sxXSE9PXZvaWQgMD9hcmd1bWVudHNbMV06ITA7cmV0dXJuIHQuYXR0cmlidXRlcyYmKHQuYXR0cmlidXRlcy5maWxsfHxlKSYmKHQuYXR0cmlidXRlcy5maWxsPSJibGFjayIpLHR9ZnVuY3Rpb24gbmp0KHQpe3JldHVybiB0LnRhZz09PSJnIj90LmNoaWxkcmVuOlt0XX12YXIgeTVlLF9ELHg1ZSx3NWUsTTVlLHJIdCx6NWUsazVlLEpuLHkxLFM1ZSxrZixOWTEsJHMsQzVlLFRELHNIdCxuSHQsXzVlLG9IdCxUNWUsUzIsTTUsTDVlLCQ1ZSxBNWUsRDVlLEU1ZSxQNWUsSTVlLE41ZSxGNWUsTzVlLFI1ZSxCNWUsSDVlLHE1ZSxWNWUsajVlLFU1ZSxsSHQsY0h0LGRIdCxoSHQscEh0LHVIdCxmSHQsbUh0LGdIdCxiSHQsdkh0LHlIdCx4SHQsd0h0LE1IdCx6SHQsa0h0LFNIdCxDSHQsVzVlLEZZMSxfSHQsVEh0LExIdCwkSHQsRzVlLFk1ZSxBSHQsREh0LEVIdCxQSHQsSUh0LE9ZMSxOSHQsRkh0LE9IdCxaNWUsTEQsU2YsUkh0LEJIdCxISHQscUh0LFZIdCxqSHQsVUh0LFdIdCxHSHQsWUh0LFpIdCxYSHQsS0h0LFFIdCxKSHQsZXF0LHRxdCxhcXQsaXF0LHJxdCxzcXQsbnF0LG9xdCxscXQsY3F0LGRxdCxocXQscHF0LHVxdCxmcXQsbXF0LGdxdCxicXQsdnF0LHlxdCx4cXQsd3F0LE1xdCx6cXQsUlkxLGtxdCxTcXQsQ3F0LF9xdCxCWTEsVHF0LExxdCwkRCwkcXQsWDVlLEFxdCxLNWUsRHF0LEVxdCxQcXQsSXF0LEFzLEFELFE1ZSxKNWUsUjAsREQsTnF0LEVELFBELGU4ZSxGcXQsT3F0LHQ4ZSxhOGUsaThlLFJxdCxJRCxyOGUsTkQsRkQsT0QsSFkxLEJxdCxzOGUsSHF0LHFxdCxxWTEsVnF0LFJELGpxdCxrNSxvOGUsc2wsZXQsUzUsZW8sSHIsWnF0LEpxdCxoOGUsZVZ0LERzLHFpLHA4ZSx1OGUsX2YsYVZ0LFZELFVELFZpLFZZMSxqWTEsXzUsaVZ0LGI4ZSxyVnQsV0QsdjhlLHk4ZSx4OGUsdzhlLE04ZSx6OGUsUzhlLF84ZSxwVnQsdVZ0LG1WdCxUOGUsb2wsbGwsZ1Z0LEw4ZSx2VnQseVZ0LHhWdCxMYSx3VnQsS0QsQ1Z0LEE4ZSxlRSxUNSxUVnQsRDhlLHRFLEFmLERmLGFFLEVmLEJWdCxqVnQsVVZ0LFdWdCxHVnQsWVZ0LHE4ZSxWOGUsajhlLHJFLFpWdCx0anQsYWp0LGlqdCxHOGUscmp0LFk4ZSxzanQsc0Usb2p0LGxqdCxjanQsZGp0LGhqdCxwanQsdWp0LGZqdCxtanQsZ2p0LGJqdCxuRSx2anQseWp0LHhqdCxuOGUsWDhlPWIoKCk9Pnt5NWU9ZnVuY3Rpb24oKXt9LF9EPXt9LHg1ZT17fSx3NWU9bnVsbCxNNWU9e21hcms6eTVlLG1lYXN1cmU6eTVlfTt0cnl7dHlwZW9mIHdpbmRvdzwidSImJihfRD13aW5kb3cpLHR5cGVvZiBkb2N1bWVudDwidSImJih4NWU9ZG9jdW1lbnQpLHR5cGVvZiBNdXRhdGlvbk9ic2VydmVyPCJ1IiYmKHc1ZT1NdXRhdGlvbk9ic2VydmVyKSx0eXBlb2YgcGVyZm9ybWFuY2U8InUiJiYoTTVlPXBlcmZvcm1hbmNlKX1jYXRjaHt9ckh0PV9ELm5hdmlnYXRvcnx8e30sejVlPXJIdC51c2VyQWdlbnQsazVlPXo1ZT09PXZvaWQgMD8iIjp6NWUsSm49X0QseTE9eDVlLFM1ZT13NWUsa2Y9TTVlLE5ZMT0hIUpuLmRvY3VtZW50LCRzPSEheTEuZG9jdW1lbnRFbGVtZW50JiYhIXkxLmhlYWQmJnR5cGVvZiB5MS5hZGRFdmVudExpc3RlbmVyPT0iZnVuY3Rpb24iJiZ0eXBlb2YgeTEuY3JlYXRlRWxlbWVudD09ImZ1bmN0aW9uIixDNWU9fms1ZS5pbmRleE9mKCJNU0lFIil8fH5rNWUuaW5kZXhPZigiVHJpZGVudC8iKSxzSHQ9L2ZhKGt8a2R8c3xyfGx8dHxkfGRyfGRsfGR0fGJ8c2xyfHNscHJ8d3NifHRsfG5zfG5kc3xlc3xndHxqcnxqZnJ8amRyfHVzYnx1ZnNifHVkc2J8Y3J8c3N8c3J8c2x8c3R8c2RzfHNkcnxzZGx8c2R0KT9bXC1cIF0vLG5IdD0vRm9udCA/QXdlc29tZSA/KFs1NjcgXSopKFNvbGlkfFJlZ3VsYXJ8TGlnaHR8VGhpbnxEdW90b25lfEJyYW5kc3xGcmVlfFByb3xTaGFycCBEdW90b25lfFNoYXJwfEtpdHxOb3Rkb2cgRHVvfE5vdGRvZ3xDaGlzZWx8RXRjaHxHcmFwaGl0ZXxUaHVtYnByaW50fEplbGx5IEZpbGx8SmVsbHkgRHVvfEplbGx5fFV0aWxpdHl8VXRpbGl0eSBGaWxsfFV0aWxpdHkgRHVvfFNsYWIgUHJlc3N8U2xhYnxXaGl0ZWJvYXJkKT8uKi9pLF81ZT17Y2xhc3NpYzp7ZmE6InNvbGlkIixmYXM6InNvbGlkIiwiZmEtc29saWQiOiJzb2xpZCIsZmFyOiJyZWd1bGFyIiwiZmEtcmVndWxhciI6InJlZ3VsYXIiLGZhbDoibGlnaHQiLCJmYS1saWdodCI6ImxpZ2h0IixmYXQ6InRoaW4iLCJmYS10aGluIjoidGhpbiIsZmFiOiJicmFuZHMiLCJmYS1icmFuZHMiOiJicmFuZHMifSxkdW90b25lOntmYToic29saWQiLGZhZDoic29saWQiLCJmYS1zb2xpZCI6InNvbGlkIiwiZmEtZHVvdG9uZSI6InNvbGlkIixmYWRyOiJyZWd1bGFyIiwiZmEtcmVndWxhciI6InJlZ3VsYXIiLGZhZGw6ImxpZ2h0IiwiZmEtbGlnaHQiOiJsaWdodCIsZmFkdDoidGhpbiIsImZhLXRoaW4iOiJ0aGluIn0sc2hhcnA6e2ZhOiJzb2xpZCIsZmFzczoic29saWQiLCJmYS1zb2xpZCI6InNvbGlkIixmYXNyOiJyZWd1bGFyIiwiZmEtcmVndWxhciI6InJlZ3VsYXIiLGZhc2w6ImxpZ2h0IiwiZmEtbGlnaHQiOiJsaWdodCIsZmFzdDoidGhpbiIsImZhLXRoaW4iOiJ0aGluIn0sInNoYXJwLWR1b3RvbmUiOntmYToic29saWQiLGZhc2RzOiJzb2xpZCIsImZhLXNvbGlkIjoic29saWQiLGZhc2RyOiJyZWd1bGFyIiwiZmEtcmVndWxhciI6InJlZ3VsYXIiLGZhc2RsOiJsaWdodCIsImZhLWxpZ2h0IjoibGlnaHQiLGZhc2R0OiJ0aGluIiwiZmEtdGhpbiI6InRoaW4ifSxzbGFiOnsiZmEtcmVndWxhciI6InJlZ3VsYXIiLGZhc2xyOiJyZWd1bGFyIn0sInNsYWItcHJlc3MiOnsiZmEtcmVndWxhciI6InJlZ3VsYXIiLGZhc2xwcjoicmVndWxhciJ9LHRodW1icHJpbnQ6eyJmYS1saWdodCI6ImxpZ2h0IixmYXRsOiJsaWdodCJ9LHdoaXRlYm9hcmQ6eyJmYS1zZW1pYm9sZCI6InNlbWlib2xkIixmYXdzYjoic2VtaWJvbGQifSxub3Rkb2c6eyJmYS1zb2xpZCI6InNvbGlkIixmYW5zOiJzb2xpZCJ9LCJub3Rkb2ctZHVvIjp7ImZhLXNvbGlkIjoic29saWQiLGZhbmRzOiJzb2xpZCJ9LGV0Y2g6eyJmYS1zb2xpZCI6InNvbGlkIixmYWVzOiJzb2xpZCJ9LGdyYXBoaXRlOnsiZmEtdGhpbiI6InRoaW4iLGZhZ3Q6InRoaW4ifSxqZWxseTp7ImZhLXJlZ3VsYXIiOiJyZWd1bGFyIixmYWpyOiJyZWd1bGFyIn0sImplbGx5LWZpbGwiOnsiZmEtcmVndWxhciI6InJlZ3VsYXIiLGZhamZyOiJyZWd1bGFyIn0sImplbGx5LWR1byI6eyJmYS1yZWd1bGFyIjoicmVndWxhciIsZmFqZHI6InJlZ3VsYXIifSxjaGlzZWw6eyJmYS1yZWd1bGFyIjoicmVndWxhciIsZmFjcjoicmVndWxhciJ9LHV0aWxpdHk6eyJmYS1zZW1pYm9sZCI6InNlbWlib2xkIixmYXVzYjoic2VtaWJvbGQifSwidXRpbGl0eS1kdW8iOnsiZmEtc2VtaWJvbGQiOiJzZW1pYm9sZCIsZmF1ZHNiOiJzZW1pYm9sZCJ9LCJ1dGlsaXR5LWZpbGwiOnsiZmEtc2VtaWJvbGQiOiJzZW1pYm9sZCIsZmF1ZnNiOiJzZW1pYm9sZCJ9fSxvSHQ9e0dST1VQOiJkdW90b25lLWdyb3VwIixTV0FQX09QQUNJVFk6InN3YXAtb3BhY2l0eSIsUFJJTUFSWToicHJpbWFyeSIsU0VDT05EQVJZOiJzZWNvbmRhcnkifSxUNWU9WyJmYS1jbGFzc2ljIiwiZmEtZHVvdG9uZSIsImZhLXNoYXJwIiwiZmEtc2hhcnAtZHVvdG9uZSIsImZhLXRodW1icHJpbnQiLCJmYS13aGl0ZWJvYXJkIiwiZmEtbm90ZG9nIiwiZmEtbm90ZG9nLWR1byIsImZhLWNoaXNlbCIsImZhLWV0Y2giLCJmYS1ncmFwaGl0ZSIsImZhLWplbGx5IiwiZmEtamVsbHktZmlsbCIsImZhLWplbGx5LWR1byIsImZhLXNsYWIiLCJmYS1zbGFiLXByZXNzIiwiZmEtdXRpbGl0eSIsImZhLXV0aWxpdHktZHVvIiwiZmEtdXRpbGl0eS1maWxsIl0sUzI9ImNsYXNzaWMiLE01PSJkdW90b25lIixMNWU9InNoYXJwIiwkNWU9InNoYXJwLWR1b3RvbmUiLEE1ZT0iY2hpc2VsIixENWU9ImV0Y2giLEU1ZT0iZ3JhcGhpdGUiLFA1ZT0iamVsbHkiLEk1ZT0iamVsbHktZHVvIixONWU9ImplbGx5LWZpbGwiLEY1ZT0ibm90ZG9nIixPNWU9Im5vdGRvZy1kdW8iLFI1ZT0ic2xhYiIsQjVlPSJzbGFiLXByZXNzIixINWU9InRodW1icHJpbnQiLHE1ZT0idXRpbGl0eSIsVjVlPSJ1dGlsaXR5LWR1byIsajVlPSJ1dGlsaXR5LWZpbGwiLFU1ZT0id2hpdGVib2FyZCIsbEh0PSJDbGFzc2ljIixjSHQ9IkR1b3RvbmUiLGRIdD0iU2hhcnAiLGhIdD0iU2hhcnAgRHVvdG9uZSIscEh0PSJDaGlzZWwiLHVIdD0iRXRjaCIsZkh0PSJHcmFwaGl0ZSIsbUh0PSJKZWxseSIsZ0h0PSJKZWxseSBEdW8iLGJIdD0iSmVsbHkgRmlsbCIsdkh0PSJOb3Rkb2ciLHlIdD0iTm90ZG9nIER1byIseEh0PSJTbGFiIix3SHQ9IlNsYWIgUHJlc3MiLE1IdD0iVGh1bWJwcmludCIsekh0PSJVdGlsaXR5IixrSHQ9IlV0aWxpdHkgRHVvIixTSHQ9IlV0aWxpdHkgRmlsbCIsQ0h0PSJXaGl0ZWJvYXJkIixXNWU9W1MyLE01LEw1ZSwkNWUsQTVlLEQ1ZSxFNWUsUDVlLEk1ZSxONWUsRjVlLE81ZSxSNWUsQjVlLEg1ZSxxNWUsVjVlLGo1ZSxVNWVdLEZZMT0oVEQ9e30sbXQobXQobXQobXQobXQobXQobXQobXQobXQobXQoVEQsUzIsbEh0KSxNNSxjSHQpLEw1ZSxkSHQpLCQ1ZSxoSHQpLEE1ZSxwSHQpLEQ1ZSx1SHQpLEU1ZSxmSHQpLFA1ZSxtSHQpLEk1ZSxnSHQpLE41ZSxiSHQpLG10KG10KG10KG10KG10KG10KG10KG10KG10KFRELEY1ZSx2SHQpLE81ZSx5SHQpLFI1ZSx4SHQpLEI1ZSx3SHQpLEg1ZSxNSHQpLHE1ZSx6SHQpLFY1ZSxrSHQpLGo1ZSxTSHQpLFU1ZSxDSHQpKSxfSHQ9e2NsYXNzaWM6ezkwMDoiZmFzIiw0MDA6ImZhciIsbm9ybWFsOiJmYXIiLDMwMDoiZmFsIiwxMDA6ImZhdCJ9LGR1b3RvbmU6ezkwMDoiZmFkIiw0MDA6ImZhZHIiLDMwMDoiZmFkbCIsMTAwOiJmYWR0In0sc2hhcnA6ezkwMDoiZmFzcyIsNDAwOiJmYXNyIiwzMDA6ImZhc2wiLDEwMDoiZmFzdCJ9LCJzaGFycC1kdW90b25lIjp7OTAwOiJmYXNkcyIsNDAwOiJmYXNkciIsMzAwOiJmYXNkbCIsMTAwOiJmYXNkdCJ9LHNsYWI6ezQwMDoiZmFzbHIifSwic2xhYi1wcmVzcyI6ezQwMDoiZmFzbHByIn0sd2hpdGVib2FyZDp7NjAwOiJmYXdzYiJ9LHRodW1icHJpbnQ6ezMwMDoiZmF0bCJ9LG5vdGRvZzp7OTAwOiJmYW5zIn0sIm5vdGRvZy1kdW8iOns5MDA6ImZhbmRzIn0sZXRjaDp7OTAwOiJmYWVzIn0sZ3JhcGhpdGU6ezEwMDoiZmFndCJ9LGNoaXNlbDp7NDAwOiJmYWNyIn0samVsbHk6ezQwMDoiZmFqciJ9LCJqZWxseS1maWxsIjp7NDAwOiJmYWpmciJ9LCJqZWxseS1kdW8iOns0MDA6ImZhamRyIn0sdXRpbGl0eTp7NjAwOiJmYXVzYiJ9LCJ1dGlsaXR5LWR1byI6ezYwMDoiZmF1ZHNiIn0sInV0aWxpdHktZmlsbCI6ezYwMDoiZmF1ZnNiIn19LFRIdD17IkZvbnQgQXdlc29tZSA3IEZyZWUiOns5MDA6ImZhcyIsNDAwOiJmYXIifSwiRm9udCBBd2Vzb21lIDcgUHJvIjp7OTAwOiJmYXMiLDQwMDoiZmFyIixub3JtYWw6ImZhciIsMzAwOiJmYWwiLDEwMDoiZmF0In0sIkZvbnQgQXdlc29tZSA3IEJyYW5kcyI6ezQwMDoiZmFiIixub3JtYWw6ImZhYiJ9LCJGb250IEF3ZXNvbWUgNyBEdW90b25lIjp7OTAwOiJmYWQiLDQwMDoiZmFkciIsbm9ybWFsOiJmYWRyIiwzMDA6ImZhZGwiLDEwMDoiZmFkdCJ9LCJGb250IEF3ZXNvbWUgNyBTaGFycCI6ezkwMDoiZmFzcyIsNDAwOiJmYXNyIixub3JtYWw6ImZhc3IiLDMwMDoiZmFzbCIsMTAwOiJmYXN0In0sIkZvbnQgQXdlc29tZSA3IFNoYXJwIER1b3RvbmUiOns5MDA6ImZhc2RzIiw0MDA6ImZhc2RyIixub3JtYWw6ImZhc2RyIiwzMDA6ImZhc2RsIiwxMDA6ImZhc2R0In0sIkZvbnQgQXdlc29tZSA3IEplbGx5Ijp7NDAwOiJmYWpyIixub3JtYWw6ImZhanIifSwiRm9udCBBd2Vzb21lIDcgSmVsbHkgRmlsbCI6ezQwMDoiZmFqZnIiLG5vcm1hbDoiZmFqZnIifSwiRm9udCBBd2Vzb21lIDcgSmVsbHkgRHVvIjp7NDAwOiJmYWpkciIsbm9ybWFsOiJmYWpkciJ9LCJGb250IEF3ZXNvbWUgNyBTbGFiIjp7NDAwOiJmYXNsciIsbm9ybWFsOiJmYXNsciJ9LCJGb250IEF3ZXNvbWUgNyBTbGFiIFByZXNzIjp7NDAwOiJmYXNscHIiLG5vcm1hbDoiZmFzbHByIn0sIkZvbnQgQXdlc29tZSA3IFRodW1icHJpbnQiOnszMDA6ImZhdGwiLG5vcm1hbDoiZmF0bCJ9LCJGb250IEF3ZXNvbWUgNyBOb3Rkb2ciOns5MDA6ImZhbnMiLG5vcm1hbDoiZmFucyJ9LCJGb250IEF3ZXNvbWUgNyBOb3Rkb2cgRHVvIjp7OTAwOiJmYW5kcyIsbm9ybWFsOiJmYW5kcyJ9LCJGb250IEF3ZXNvbWUgNyBFdGNoIjp7OTAwOiJmYWVzIixub3JtYWw6ImZhZXMifSwiRm9udCBBd2Vzb21lIDcgR3JhcGhpdGUiOnsxMDA6ImZhZ3QiLG5vcm1hbDoiZmFndCJ9LCJGb250IEF3ZXNvbWUgNyBDaGlzZWwiOns0MDA6ImZhY3IiLG5vcm1hbDoiZmFjciJ9LCJGb250IEF3ZXNvbWUgNyBXaGl0ZWJvYXJkIjp7NjAwOiJmYXdzYiIsbm9ybWFsOiJmYXdzYiJ9LCJGb250IEF3ZXNvbWUgNyBVdGlsaXR5Ijp7NjAwOiJmYXVzYiIsbm9ybWFsOiJmYXVzYiJ9LCJGb250IEF3ZXNvbWUgNyBVdGlsaXR5IER1byI6ezYwMDoiZmF1ZHNiIixub3JtYWw6ImZhdWRzYiJ9LCJGb250IEF3ZXNvbWUgNyBVdGlsaXR5IEZpbGwiOns2MDA6ImZhdWZzYiIsbm9ybWFsOiJmYXVmc2IifX0sTEh0PW5ldyBNYXAoW1siY2xhc3NpYyIse2RlZmF1bHRTaG9ydFByZWZpeElkOiJmYXMiLGRlZmF1bHRTdHlsZUlkOiJzb2xpZCIsc3R5bGVJZHM6WyJzb2xpZCIsInJlZ3VsYXIiLCJsaWdodCIsInRoaW4iLCJicmFuZHMiXSxmdXR1cmVTdHlsZUlkczpbXSxkZWZhdWx0Rm9udFdlaWdodDo5MDB9XSxbImR1b3RvbmUiLHtkZWZhdWx0U2hvcnRQcmVmaXhJZDoiZmFkIixkZWZhdWx0U3R5bGVJZDoic29saWQiLHN0eWxlSWRzOlsic29saWQiLCJyZWd1bGFyIiwibGlnaHQiLCJ0aGluIl0sZnV0dXJlU3R5bGVJZHM6W10sZGVmYXVsdEZvbnRXZWlnaHQ6OTAwfV0sWyJzaGFycCIse2RlZmF1bHRTaG9ydFByZWZpeElkOiJmYXNzIixkZWZhdWx0U3R5bGVJZDoic29saWQiLHN0eWxlSWRzOlsic29saWQiLCJyZWd1bGFyIiwibGlnaHQiLCJ0aGluIl0sZnV0dXJlU3R5bGVJZHM6W10sZGVmYXVsdEZvbnRXZWlnaHQ6OTAwfV0sWyJzaGFycC1kdW90b25lIix7ZGVmYXVsdFNob3J0UHJlZml4SWQ6ImZhc2RzIixkZWZhdWx0U3R5bGVJZDoic29saWQiLHN0eWxlSWRzOlsic29saWQiLCJyZWd1bGFyIiwibGlnaHQiLCJ0aGluIl0sZnV0dXJlU3R5bGVJZHM6W10sZGVmYXVsdEZvbnRXZWlnaHQ6OTAwfV0sWyJjaGlzZWwiLHtkZWZhdWx0U2hvcnRQcmVmaXhJZDoiZmFjciIsZGVmYXVsdFN0eWxlSWQ6InJlZ3VsYXIiLHN0eWxlSWRzOlsicmVndWxhciJdLGZ1dHVyZVN0eWxlSWRzOltdLGRlZmF1bHRGb250V2VpZ2h0OjQwMH1dLFsiZXRjaCIse2RlZmF1bHRTaG9ydFByZWZpeElkOiJmYWVzIixkZWZhdWx0U3R5bGVJZDoic29saWQiLHN0eWxlSWRzOlsic29saWQiXSxmdXR1cmVTdHlsZUlkczpbXSxkZWZhdWx0Rm9udFdlaWdodDo5MDB9XSxbImdyYXBoaXRlIix7ZGVmYXVsdFNob3J0UHJlZml4SWQ6ImZhZ3QiLGRlZmF1bHRTdHlsZUlkOiJ0aGluIixzdHlsZUlkczpbInRoaW4iXSxmdXR1cmVTdHlsZUlkczpbXSxkZWZhdWx0Rm9udFdlaWdodDoxMDB9XSxbImplbGx5Iix7ZGVmYXVsdFNob3J0UHJlZml4SWQ6ImZhanIiLGRlZmF1bHRTdHlsZUlkOiJyZWd1bGFyIixzdHlsZUlkczpbInJlZ3VsYXIiXSxmdXR1cmVTdHlsZUlkczpbXSxkZWZhdWx0Rm9udFdlaWdodDo0MDB9XSxbImplbGx5LWR1byIse2RlZmF1bHRTaG9ydFByZWZpeElkOiJmYWpkciIsZGVmYXVsdFN0eWxlSWQ6InJlZ3VsYXIiLHN0eWxlSWRzOlsicmVndWxhciJdLGZ1dHVyZVN0eWxlSWRzOltdLGRlZmF1bHRGb250V2VpZ2h0OjQwMH1dLFsiamVsbHktZmlsbCIse2RlZmF1bHRTaG9ydFByZWZpeElkOiJmYWpmciIsZGVmYXVsdFN0eWxlSWQ6InJlZ3VsYXIiLHN0eWxlSWRzOlsicmVndWxhciJdLGZ1dHVyZVN0eWxlSWRzOltdLGRlZmF1bHRGb250V2VpZ2h0OjQwMH1dLFsibm90ZG9nIix7ZGVmYXVsdFNob3J0UHJlZml4SWQ6ImZhbnMiLGRlZmF1bHRTdHlsZUlkOiJzb2xpZCIsc3R5bGVJZHM6WyJzb2xpZCJdLGZ1dHVyZVN0eWxlSWRzOltdLGRlZmF1bHRGb250V2VpZ2h0OjkwMH1dLFsibm90ZG9nLWR1byIse2RlZmF1bHRTaG9ydFByZWZpeElkOiJmYW5kcyIsZGVmYXVsdFN0eWxlSWQ6InNvbGlkIixzdHlsZUlkczpbInNvbGlkIl0sZnV0dXJlU3R5bGVJZHM6W10sZGVmYXVsdEZvbnRXZWlnaHQ6OTAwfV0sWyJzbGFiIix7ZGVmYXVsdFNob3J0UHJlZml4SWQ6ImZhc2xyIixkZWZhdWx0U3R5bGVJZDoicmVndWxhciIsc3R5bGVJZHM6WyJyZWd1bGFyIl0sZnV0dXJlU3R5bGVJZHM6W10sZGVmYXVsdEZvbnRXZWlnaHQ6NDAwfV0sWyJzbGFiLXByZXNzIix7ZGVmYXVsdFNob3J0UHJlZml4SWQ6ImZhc2xwciIsZGVmYXVsdFN0eWxlSWQ6InJlZ3VsYXIiLHN0eWxlSWRzOlsicmVndWxhciJdLGZ1dHVyZVN0eWxlSWRzOltdLGRlZmF1bHRGb250V2VpZ2h0OjQwMH1dLFsidGh1bWJwcmludCIse2RlZmF1bHRTaG9ydFByZWZpeElkOiJmYXRsIixkZWZhdWx0U3R5bGVJZDoibGlnaHQiLHN0eWxlSWRzOlsibGlnaHQiXSxmdXR1cmVTdHlsZUlkczpbXSxkZWZhdWx0Rm9udFdlaWdodDozMDB9XSxbInV0aWxpdHkiLHtkZWZhdWx0U2hvcnRQcmVmaXhJZDoiZmF1c2IiLGRlZmF1bHRTdHlsZUlkOiJzZW1pYm9sZCIsc3R5bGVJZHM6WyJzZW1pYm9sZCJdLGZ1dHVyZVN0eWxlSWRzOltdLGRlZmF1bHRGb250V2VpZ2h0OjYwMH1dLFsidXRpbGl0eS1kdW8iLHtkZWZhdWx0U2hvcnRQcmVmaXhJZDoiZmF1ZHNiIixkZWZhdWx0U3R5bGVJZDoic2VtaWJvbGQiLHN0eWxlSWRzOlsic2VtaWJvbGQiXSxmdXR1cmVTdHlsZUlkczpbXSxkZWZhdWx0Rm9udFdlaWdodDo2MDB9XSxbInV0aWxpdHktZmlsbCIse2RlZmF1bHRTaG9ydFByZWZpeElkOiJmYXVmc2IiLGRlZmF1bHRTdHlsZUlkOiJzZW1pYm9sZCIsc3R5bGVJZHM6WyJzZW1pYm9sZCJdLGZ1dHVyZVN0eWxlSWRzOltdLGRlZmF1bHRGb250V2VpZ2h0OjYwMH1dLFsid2hpdGVib2FyZCIse2RlZmF1bHRTaG9ydFByZWZpeElkOiJmYXdzYiIsZGVmYXVsdFN0eWxlSWQ6InNlbWlib2xkIixzdHlsZUlkczpbInNlbWlib2xkIl0sZnV0dXJlU3R5bGVJZHM6W10sZGVmYXVsdEZvbnRXZWlnaHQ6NjAwfV1dKSwkSHQ9e2NoaXNlbDp7cmVndWxhcjoiZmFjciJ9LGNsYXNzaWM6e2JyYW5kczoiZmFiIixsaWdodDoiZmFsIixyZWd1bGFyOiJmYXIiLHNvbGlkOiJmYXMiLHRoaW46ImZhdCJ9LGR1b3RvbmU6e2xpZ2h0OiJmYWRsIixyZWd1bGFyOiJmYWRyIixzb2xpZDoiZmFkIix0aGluOiJmYWR0In0sZXRjaDp7c29saWQ6ImZhZXMifSxncmFwaGl0ZTp7dGhpbjoiZmFndCJ9LGplbGx5OntyZWd1bGFyOiJmYWpyIn0sImplbGx5LWR1byI6e3JlZ3VsYXI6ImZhamRyIn0sImplbGx5LWZpbGwiOntyZWd1bGFyOiJmYWpmciJ9LG5vdGRvZzp7c29saWQ6ImZhbnMifSwibm90ZG9nLWR1byI6e3NvbGlkOiJmYW5kcyJ9LHNoYXJwOntsaWdodDoiZmFzbCIscmVndWxhcjoiZmFzciIsc29saWQ6ImZhc3MiLHRoaW46ImZhc3QifSwic2hhcnAtZHVvdG9uZSI6e2xpZ2h0OiJmYXNkbCIscmVndWxhcjoiZmFzZHIiLHNvbGlkOiJmYXNkcyIsdGhpbjoiZmFzZHQifSxzbGFiOntyZWd1bGFyOiJmYXNsciJ9LCJzbGFiLXByZXNzIjp7cmVndWxhcjoiZmFzbHByIn0sdGh1bWJwcmludDp7bGlnaHQ6ImZhdGwifSx1dGlsaXR5OntzZW1pYm9sZDoiZmF1c2IifSwidXRpbGl0eS1kdW8iOntzZW1pYm9sZDoiZmF1ZHNiIn0sInV0aWxpdHktZmlsbCI6e3NlbWlib2xkOiJmYXVmc2IifSx3aGl0ZWJvYXJkOntzZW1pYm9sZDoiZmF3c2IifX0sRzVlPVsiZmFrIiwiZmEta2l0IiwiZmFrZCIsImZhLWtpdC1kdW90b25lIl0sWTVlPXtraXQ6e2Zhazoia2l0IiwiZmEta2l0Ijoia2l0In0sImtpdC1kdW90b25lIjp7ZmFrZDoia2l0LWR1b3RvbmUiLCJmYS1raXQtZHVvdG9uZSI6ImtpdC1kdW90b25lIn19LEFIdD1bImtpdCJdLERIdD0ia2l0IixFSHQ9ImtpdC1kdW90b25lIixQSHQ9IktpdCIsSUh0PSJLaXQgRHVvdG9uZSIsT1kxPW10KG10KHt9LERIdCxQSHQpLEVIdCxJSHQpLE5IdD17a2l0OnsiZmEta2l0IjoiZmFrIn0sImtpdC1kdW90b25lIjp7ImZhLWtpdC1kdW90b25lIjoiZmFrZCJ9fSxGSHQ9eyJGb250IEF3ZXNvbWUgS2l0Ijp7NDAwOiJmYWsiLG5vcm1hbDoiZmFrIn0sIkZvbnQgQXdlc29tZSBLaXQgRHVvdG9uZSI6ezQwMDoiZmFrZCIsbm9ybWFsOiJmYWtkIn19LE9IdD17a2l0OntmYWs6ImZhLWtpdCJ9LCJraXQtZHVvdG9uZSI6e2Zha2Q6ImZhLWtpdC1kdW90b25lIn19LFo1ZT17a2l0OntraXQ6ImZhayJ9LCJraXQtZHVvdG9uZSI6eyJraXQtZHVvdG9uZSI6ImZha2QifX0sU2Y9e0dST1VQOiJkdW90b25lLWdyb3VwIixTV0FQX09QQUNJVFk6InN3YXAtb3BhY2l0eSIsUFJJTUFSWToicHJpbWFyeSIsU0VDT05EQVJZOiJzZWNvbmRhcnkifSxSSHQ9WyJmYS1jbGFzc2ljIiwiZmEtZHVvdG9uZSIsImZhLXNoYXJwIiwiZmEtc2hhcnAtZHVvdG9uZSIsImZhLXRodW1icHJpbnQiLCJmYS13aGl0ZWJvYXJkIiwiZmEtbm90ZG9nIiwiZmEtbm90ZG9nLWR1byIsImZhLWNoaXNlbCIsImZhLWV0Y2giLCJmYS1ncmFwaGl0ZSIsImZhLWplbGx5IiwiZmEtamVsbHktZmlsbCIsImZhLWplbGx5LWR1byIsImZhLXNsYWIiLCJmYS1zbGFiLXByZXNzIiwiZmEtdXRpbGl0eSIsImZhLXV0aWxpdHktZHVvIiwiZmEtdXRpbGl0eS1maWxsIl0sQkh0PSJjbGFzc2ljIixISHQ9ImR1b3RvbmUiLHFIdD0ic2hhcnAiLFZIdD0ic2hhcnAtZHVvdG9uZSIsakh0PSJjaGlzZWwiLFVIdD0iZXRjaCIsV0h0PSJncmFwaGl0ZSIsR0h0PSJqZWxseSIsWUh0PSJqZWxseS1kdW8iLFpIdD0iamVsbHktZmlsbCIsWEh0PSJub3Rkb2ciLEtIdD0ibm90ZG9nLWR1byIsUUh0PSJzbGFiIixKSHQ9InNsYWItcHJlc3MiLGVxdD0idGh1bWJwcmludCIsdHF0PSJ1dGlsaXR5IixhcXQ9InV0aWxpdHktZHVvIixpcXQ9InV0aWxpdHktZmlsbCIscnF0PSJ3aGl0ZWJvYXJkIixzcXQ9IkNsYXNzaWMiLG5xdD0iRHVvdG9uZSIsb3F0PSJTaGFycCIsbHF0PSJTaGFycCBEdW90b25lIixjcXQ9IkNoaXNlbCIsZHF0PSJFdGNoIixocXQ9IkdyYXBoaXRlIixwcXQ9IkplbGx5Iix1cXQ9IkplbGx5IER1byIsZnF0PSJKZWxseSBGaWxsIixtcXQ9Ik5vdGRvZyIsZ3F0PSJOb3Rkb2cgRHVvIixicXQ9IlNsYWIiLHZxdD0iU2xhYiBQcmVzcyIseXF0PSJUaHVtYnByaW50Iix4cXQ9IlV0aWxpdHkiLHdxdD0iVXRpbGl0eSBEdW8iLE1xdD0iVXRpbGl0eSBGaWxsIix6cXQ9IldoaXRlYm9hcmQiLFJZMT0oTEQ9e30sbXQobXQobXQobXQobXQobXQobXQobXQobXQobXQoTEQsQkh0LHNxdCksSEh0LG5xdCkscUh0LG9xdCksVkh0LGxxdCksakh0LGNxdCksVUh0LGRxdCksV0h0LGhxdCksR0h0LHBxdCksWUh0LHVxdCksWkh0LGZxdCksbXQobXQobXQobXQobXQobXQobXQobXQobXQoTEQsWEh0LG1xdCksS0h0LGdxdCksUUh0LGJxdCksSkh0LHZxdCksZXF0LHlxdCksdHF0LHhxdCksYXF0LHdxdCksaXF0LE1xdCkscnF0LHpxdCkpLGtxdD0ia2l0IixTcXQ9ImtpdC1kdW90b25lIixDcXQ9IktpdCIsX3F0PSJLaXQgRHVvdG9uZSIsQlkxPW10KG10KHt9LGtxdCxDcXQpLFNxdCxfcXQpLFRxdD17Y2xhc3NpYzp7ImZhLWJyYW5kcyI6ImZhYiIsImZhLWR1b3RvbmUiOiJmYWQiLCJmYS1saWdodCI6ImZhbCIsImZhLXJlZ3VsYXIiOiJmYXIiLCJmYS1zb2xpZCI6ImZhcyIsImZhLXRoaW4iOiJmYXQifSxkdW90b25lOnsiZmEtcmVndWxhciI6ImZhZHIiLCJmYS1saWdodCI6ImZhZGwiLCJmYS10aGluIjoiZmFkdCJ9LHNoYXJwOnsiZmEtc29saWQiOiJmYXNzIiwiZmEtcmVndWxhciI6ImZhc3IiLCJmYS1saWdodCI6ImZhc2wiLCJmYS10aGluIjoiZmFzdCJ9LCJzaGFycC1kdW90b25lIjp7ImZhLXNvbGlkIjoiZmFzZHMiLCJmYS1yZWd1bGFyIjoiZmFzZHIiLCJmYS1saWdodCI6ImZhc2RsIiwiZmEtdGhpbiI6ImZhc2R0In0sc2xhYjp7ImZhLXJlZ3VsYXIiOiJmYXNsciJ9LCJzbGFiLXByZXNzIjp7ImZhLXJlZ3VsYXIiOiJmYXNscHIifSx3aGl0ZWJvYXJkOnsiZmEtc2VtaWJvbGQiOiJmYXdzYiJ9LHRodW1icHJpbnQ6eyJmYS1saWdodCI6ImZhdGwifSxub3Rkb2c6eyJmYS1zb2xpZCI6ImZhbnMifSwibm90ZG9nLWR1byI6eyJmYS1zb2xpZCI6ImZhbmRzIn0sZXRjaDp7ImZhLXNvbGlkIjoiZmFlcyJ9LGdyYXBoaXRlOnsiZmEtdGhpbiI6ImZhZ3QifSxqZWxseTp7ImZhLXJlZ3VsYXIiOiJmYWpyIn0sImplbGx5LWZpbGwiOnsiZmEtcmVndWxhciI6ImZhamZyIn0sImplbGx5LWR1byI6eyJmYS1yZWd1bGFyIjoiZmFqZHIifSxjaGlzZWw6eyJmYS1yZWd1bGFyIjoiZmFjciJ9LHV0aWxpdHk6eyJmYS1zZW1pYm9sZCI6ImZhdXNiIn0sInV0aWxpdHktZHVvIjp7ImZhLXNlbWlib2xkIjoiZmF1ZHNiIn0sInV0aWxpdHktZmlsbCI6eyJmYS1zZW1pYm9sZCI6ImZhdWZzYiJ9fSxMcXQ9e2NsYXNzaWM6WyJmYXMiLCJmYXIiLCJmYWwiLCJmYXQiLCJmYWQiXSxkdW90b25lOlsiZmFkciIsImZhZGwiLCJmYWR0Il0sc2hhcnA6WyJmYXNzIiwiZmFzciIsImZhc2wiLCJmYXN0Il0sInNoYXJwLWR1b3RvbmUiOlsiZmFzZHMiLCJmYXNkciIsImZhc2RsIiwiZmFzZHQiXSxzbGFiOlsiZmFzbHIiXSwic2xhYi1wcmVzcyI6WyJmYXNscHIiXSx3aGl0ZWJvYXJkOlsiZmF3c2IiXSx0aHVtYnByaW50OlsiZmF0bCJdLG5vdGRvZzpbImZhbnMiXSwibm90ZG9nLWR1byI6WyJmYW5kcyJdLGV0Y2g6WyJmYWVzIl0sZ3JhcGhpdGU6WyJmYWd0Il0samVsbHk6WyJmYWpyIl0sImplbGx5LWZpbGwiOlsiZmFqZnIiXSwiamVsbHktZHVvIjpbImZhamRyIl0sY2hpc2VsOlsiZmFjciJdLHV0aWxpdHk6WyJmYXVzYiJdLCJ1dGlsaXR5LWR1byI6WyJmYXVkc2IiXSwidXRpbGl0eS1maWxsIjpbImZhdWZzYiJdfSwkRD17Y2xhc3NpYzp7ZmFiOiJmYS1icmFuZHMiLGZhZDoiZmEtZHVvdG9uZSIsZmFsOiJmYS1saWdodCIsZmFyOiJmYS1yZWd1bGFyIixmYXM6ImZhLXNvbGlkIixmYXQ6ImZhLXRoaW4ifSxkdW90b25lOntmYWRyOiJmYS1yZWd1bGFyIixmYWRsOiJmYS1saWdodCIsZmFkdDoiZmEtdGhpbiJ9LHNoYXJwOntmYXNzOiJmYS1zb2xpZCIsZmFzcjoiZmEtcmVndWxhciIsZmFzbDoiZmEtbGlnaHQiLGZhc3Q6ImZhLXRoaW4ifSwic2hhcnAtZHVvdG9uZSI6e2Zhc2RzOiJmYS1zb2xpZCIsZmFzZHI6ImZhLXJlZ3VsYXIiLGZhc2RsOiJmYS1saWdodCIsZmFzZHQ6ImZhLXRoaW4ifSxzbGFiOntmYXNscjoiZmEtcmVndWxhciJ9LCJzbGFiLXByZXNzIjp7ZmFzbHByOiJmYS1yZWd1bGFyIn0sd2hpdGVib2FyZDp7ZmF3c2I6ImZhLXNlbWlib2xkIn0sdGh1bWJwcmludDp7ZmF0bDoiZmEtbGlnaHQifSxub3Rkb2c6e2ZhbnM6ImZhLXNvbGlkIn0sIm5vdGRvZy1kdW8iOntmYW5kczoiZmEtc29saWQifSxldGNoOntmYWVzOiJmYS1zb2xpZCJ9LGdyYXBoaXRlOntmYWd0OiJmYS10aGluIn0samVsbHk6e2ZhanI6ImZhLXJlZ3VsYXIifSwiamVsbHktZmlsbCI6e2ZhamZyOiJmYS1yZWd1bGFyIn0sImplbGx5LWR1byI6e2ZhamRyOiJmYS1yZWd1bGFyIn0sY2hpc2VsOntmYWNyOiJmYS1yZWd1bGFyIn0sdXRpbGl0eTp7ZmF1c2I6ImZhLXNlbWlib2xkIn0sInV0aWxpdHktZHVvIjp7ZmF1ZHNiOiJmYS1zZW1pYm9sZCJ9LCJ1dGlsaXR5LWZpbGwiOntmYXVmc2I6ImZhLXNlbWlib2xkIn19LCRxdD1bImZhLXNvbGlkIiwiZmEtcmVndWxhciIsImZhLWxpZ2h0IiwiZmEtdGhpbiIsImZhLWR1b3RvbmUiLCJmYS1icmFuZHMiLCJmYS1zZW1pYm9sZCJdLFg1ZT1bImZhIiwiZmFzIiwiZmFyIiwiZmFsIiwiZmF0IiwiZmFkIiwiZmFkciIsImZhZGwiLCJmYWR0IiwiZmFiIiwiZmFzcyIsImZhc3IiLCJmYXNsIiwiZmFzdCIsImZhc2RzIiwiZmFzZHIiLCJmYXNkbCIsImZhc2R0IiwiZmFzbHIiLCJmYXNscHIiLCJmYXdzYiIsImZhdGwiLCJmYW5zIiwiZmFuZHMiLCJmYWVzIiwiZmFndCIsImZhanIiLCJmYWpmciIsImZhamRyIiwiZmFjciIsImZhdXNiIiwiZmF1ZHNiIiwiZmF1ZnNiIl0uY29uY2F0KFJIdCwkcXQpLEFxdD1bInNvbGlkIiwicmVndWxhciIsImxpZ2h0IiwidGhpbiIsImR1b3RvbmUiLCJicmFuZHMiLCJzZW1pYm9sZCJdLEs1ZT1bMSwyLDMsNCw1LDYsNyw4LDksMTBdLERxdD1LNWUuY29uY2F0KFsxMSwxMiwxMywxNCwxNSwxNiwxNywxOCwxOSwyMF0pLEVxdD1bImF3IiwiZnciLCJwdWxsLWxlZnQiLCJwdWxsLXJpZ2h0Il0sUHF0PVtdLmNvbmNhdChIaShPYmplY3Qua2V5cyhMcXQpKSxBcXQsRXF0LFsiMnhzIiwieHMiLCJzbSIsImxnIiwieGwiLCIyeGwiLCJiZWF0IiwiYm9yZGVyIiwiZmFkZSIsImJlYXQtZmFkZSIsImJvdW5jZSIsImZsaXAtYm90aCIsImZsaXAtaG9yaXpvbnRhbCIsImZsaXAtdmVydGljYWwiLCJmbGlwIiwiaW52ZXJzZSIsImxheWVycyIsImxheWVycy1ib3R0b20tbGVmdCIsImxheWVycy1ib3R0b20tcmlnaHQiLCJsYXllcnMtY291bnRlciIsImxheWVycy10ZXh0IiwibGF5ZXJzLXRvcC1sZWZ0IiwibGF5ZXJzLXRvcC1yaWdodCIsImxpIiwicHVsbC1lbmQiLCJwdWxsLXN0YXJ0IiwicHVsc2UiLCJyb3RhdGUtMTgwIiwicm90YXRlLTI3MCIsInJvdGF0ZS05MCIsInJvdGF0ZS1ieSIsInNoYWtlIiwic3Bpbi1wdWxzZSIsInNwaW4tcmV2ZXJzZSIsInNwaW4iLCJzdGFjay0xeCIsInN0YWNrLTJ4Iiwic3RhY2siLCJ1bCIsIndpZHRoLWF1dG8iLCJ3aWR0aC1maXhlZCIsU2YuR1JPVVAsU2YuU1dBUF9PUEFDSVRZLFNmLlBSSU1BUlksU2YuU0VDT05EQVJZXSkuY29uY2F0KEs1ZS5tYXAoZnVuY3Rpb24odCl7cmV0dXJuIiIuY29uY2F0KHQsIngiKX0pKS5jb25jYXQoRHF0Lm1hcChmdW5jdGlvbih0KXtyZXR1cm4idy0iLmNvbmNhdCh0KX0pKSxJcXQ9eyJGb250IEF3ZXNvbWUgNSBGcmVlIjp7OTAwOiJmYXMiLDQwMDoiZmFyIn0sIkZvbnQgQXdlc29tZSA1IFBybyI6ezkwMDoiZmFzIiw0MDA6ImZhciIsbm9ybWFsOiJmYXIiLDMwMDoiZmFsIn0sIkZvbnQgQXdlc29tZSA1IEJyYW5kcyI6ezQwMDoiZmFiIixub3JtYWw6ImZhYiJ9LCJGb250IEF3ZXNvbWUgNSBEdW90b25lIjp7OTAwOiJmYWQifX0sQXM9Il9fX0ZPTlRfQVdFU09NRV9fXyIsQUQ9MTYsUTVlPSJmYSIsSjVlPSJzdmctaW5saW5lLS1mYSIsUjA9ImRhdGEtZmEtaTJzdmciLEREPSJkYXRhLWZhLXBzZXVkby1lbGVtZW50IixOcXQ9ImRhdGEtZmEtcHNldWRvLWVsZW1lbnQtcGVuZGluZyIsRUQ9ImRhdGEtcHJlZml4IixQRD0iZGF0YS1pY29uIixlOGU9ImZvbnRhd2Vzb21lLWkyc3ZnIixGcXQ9ImFzeW5jIixPcXQ9WyJIVE1MIiwiSEVBRCIsIlNUWUxFIiwiU0NSSVBUIl0sdDhlPVsiOjpiZWZvcmUiLCI6OmFmdGVyIiwiOmJlZm9yZSIsIjphZnRlciJdLGE4ZT0oZnVuY3Rpb24oKXt0cnl7cmV0dXJuITB9Y2F0Y2h7cmV0dXJuITF9fSkoKTtpOGU9TmUoe30sXzVlKTtpOGVbUzJdPU5lKE5lKE5lKE5lKHt9LHsiZmEtZHVvdG9uZSI6ImR1b3RvbmUifSksXzVlW1MyXSksWTVlLmtpdCksWTVlWyJraXQtZHVvdG9uZSJdKTtScXQ9ejUoaThlKSxJRD1OZSh7fSwkSHQpO0lEW1MyXT1OZShOZShOZShOZSh7fSx7ZHVvdG9uZToiZmFkIn0pLElEW1MyXSksWjVlLmtpdCksWjVlWyJraXQtZHVvdG9uZSJdKTtyOGU9ejUoSUQpLE5EPU5lKHt9LCREKTtORFtTMl09TmUoTmUoe30sTkRbUzJdKSxPSHQua2l0KTtGRD16NShORCksT0Q9TmUoe30sVHF0KTtPRFtTMl09TmUoTmUoe30sT0RbUzJdKSxOSHQua2l0KTtIWTE9ejUoT0QpLEJxdD1zSHQsczhlPSJmYS1sYXllcnMtdGV4dCIsSHF0PW5IdCxxcXQ9TmUoe30sX0h0KSxxWTE9ejUocXF0KSxWcXQ9WyJjbGFzcyIsImRhdGEtcHJlZml4IiwiZGF0YS1pY29uIiwiZGF0YS1mYS10cmFuc2Zvcm0iLCJkYXRhLWZhLW1hc2siXSxSRD1vSHQsanF0PVtdLmNvbmNhdChIaShBSHQpLEhpKFBxdCkpLGs1PUpuLkZvbnRBd2Vzb21lQ29uZmlnfHx7fTt5MSYmdHlwZW9mIHkxLnF1ZXJ5U2VsZWN0b3I9PSJmdW5jdGlvbiImJihuOGU9W1siZGF0YS1mYW1pbHktcHJlZml4IiwiZmFtaWx5UHJlZml4Il0sWyJkYXRhLWNzcy1wcmVmaXgiLCJjc3NQcmVmaXgiXSxbImRhdGEtZmFtaWx5LWRlZmF1bHQiLCJmYW1pbHlEZWZhdWx0Il0sWyJkYXRhLXN0eWxlLWRlZmF1bHQiLCJzdHlsZURlZmF1bHQiXSxbImRhdGEtcmVwbGFjZW1lbnQtY2xhc3MiLCJyZXBsYWNlbWVudENsYXNzIl0sWyJkYXRhLWF1dG8tcmVwbGFjZS1zdmciLCJhdXRvUmVwbGFjZVN2ZyJdLFsiZGF0YS1hdXRvLWFkZC1jc3MiLCJhdXRvQWRkQ3NzIl0sWyJkYXRhLXNlYXJjaC1wc2V1ZG8tZWxlbWVudHMiLCJzZWFyY2hQc2V1ZG9FbGVtZW50cyJdLFsiZGF0YS1zZWFyY2gtcHNldWRvLWVsZW1lbnRzLXdhcm5pbmdzIiwic2VhcmNoUHNldWRvRWxlbWVudHNXYXJuaW5ncyJdLFsiZGF0YS1zZWFyY2gtcHNldWRvLWVsZW1lbnRzLWZ1bGwtc2NhbiIsInNlYXJjaFBzZXVkb0VsZW1lbnRzRnVsbFNjYW4iXSxbImRhdGEtb2JzZXJ2ZS1tdXRhdGlvbnMiLCJvYnNlcnZlTXV0YXRpb25zIl0sWyJkYXRhLW11dGF0ZS1hcHByb2FjaCIsIm11dGF0ZUFwcHJvYWNoIl0sWyJkYXRhLWtlZXAtb3JpZ2luYWwtc291cmNlIiwia2VlcE9yaWdpbmFsU291cmNlIl0sWyJkYXRhLW1lYXN1cmUtcGVyZm9ybWFuY2UiLCJtZWFzdXJlUGVyZm9ybWFuY2UiXSxbImRhdGEtc2hvdy1taXNzaW5nLWljb25zIiwic2hvd01pc3NpbmdJY29ucyJdXSxuOGUuZm9yRWFjaChmdW5jdGlvbih0KXt2YXIgZT1NZih0LDIpLGE9ZVswXSxpPWVbMV0scj1XcXQoVXF0KGEpKTtyIT1udWxsJiYoazVbaV09cil9KSk7bzhlPXtzdHlsZURlZmF1bHQ6InNvbGlkIixmYW1pbHlEZWZhdWx0OlMyLGNzc1ByZWZpeDpRNWUscmVwbGFjZW1lbnRDbGFzczpKNWUsYXV0b1JlcGxhY2VTdmc6ITAsYXV0b0FkZENzczohMCxzZWFyY2hQc2V1ZG9FbGVtZW50czohMSxzZWFyY2hQc2V1ZG9FbGVtZW50c1dhcm5pbmdzOiEwLHNlYXJjaFBzZXVkb0VsZW1lbnRzRnVsbFNjYW46ITEsb2JzZXJ2ZU11dGF0aW9uczohMCxtdXRhdGVBcHByb2FjaDoiYXN5bmMiLGtlZXBPcmlnaW5hbFNvdXJjZTohMCxtZWFzdXJlUGVyZm9ybWFuY2U6ITEsc2hvd01pc3NpbmdJY29uczohMH07azUuZmFtaWx5UHJlZml4JiYoazUuY3NzUHJlZml4PWs1LmZhbWlseVByZWZpeCk7c2w9TmUoTmUoe30sbzhlKSxrNSk7c2wuYXV0b1JlcGxhY2VTdmd8fChzbC5vYnNlcnZlTXV0YXRpb25zPSExKTtldD17fTtPYmplY3Qua2V5cyhvOGUpLmZvckVhY2goZnVuY3Rpb24odCl7T2JqZWN0LmRlZmluZVByb3BlcnR5KGV0LHQse2VudW1lcmFibGU6ITAsc2V0OmZ1bmN0aW9uKGEpe3NsW3RdPWEsUzUuZm9yRWFjaChmdW5jdGlvbihpKXtyZXR1cm4gaShldCl9KX0sZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHNsW3RdfX0pfSksT2JqZWN0LmRlZmluZVByb3BlcnR5KGV0LCJmYW1pbHlQcmVmaXgiLHtlbnVtZXJhYmxlOiEwLHNldDpmdW5jdGlvbihlKXtzbC5jc3NQcmVmaXg9ZSxTNS5mb3JFYWNoKGZ1bmN0aW9uKGEpe3JldHVybiBhKGV0KX0pfSxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gc2wuY3NzUHJlZml4fX0pLEpuLkZvbnRBd2Vzb21lQ29uZmlnPWV0O1M1PVtdO2VvPUFELEhyPXtzaXplOjE2LHg6MCx5OjAscm90YXRlOjAsZmxpcFg6ITEsZmxpcFk6ITF9O1pxdD0iMDEyMzQ1Njc4OWFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6QUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVoiO0pxdD1gOnJvb3QsIDpob3N0IHsKICAtLWZhLWZvbnQtc29saWQ6IG5vcm1hbCA5MDAgMWVtLzEgJ0ZvbnQgQXdlc29tZSA3IEZyZWUnOwogIC0tZmEtZm9udC1yZWd1bGFyOiBub3JtYWwgNDAwIDFlbS8xICdGb250IEF3ZXNvbWUgNyBGcmVlJzsKICAtLWZhLWZvbnQtbGlnaHQ6IG5vcm1hbCAzMDAgMWVtLzEgJ0ZvbnQgQXdlc29tZSA3IFBybyc7CiAgLS1mYS1mb250LXRoaW46IG5vcm1hbCAxMDAgMWVtLzEgJ0ZvbnQgQXdlc29tZSA3IFBybyc7CiAgLS1mYS1mb250LWR1b3RvbmU6IG5vcm1hbCA5MDAgMWVtLzEgJ0ZvbnQgQXdlc29tZSA3IER1b3RvbmUnOwogIC0tZmEtZm9udC1kdW90b25lLXJlZ3VsYXI6IG5vcm1hbCA0MDAgMWVtLzEgJ0ZvbnQgQXdlc29tZSA3IER1b3RvbmUnOwogIC0tZmEtZm9udC1kdW90b25lLWxpZ2h0OiBub3JtYWwgMzAwIDFlbS8xICdGb250IEF3ZXNvbWUgNyBEdW90b25lJzsKICAtLWZhLWZvbnQtZHVvdG9uZS10aGluOiBub3JtYWwgMTAwIDFlbS8xICdGb250IEF3ZXNvbWUgNyBEdW90b25lJzsKICAtLWZhLWZvbnQtYnJhbmRzOiBub3JtYWwgNDAwIDFlbS8xICdGb250IEF3ZXNvbWUgNyBCcmFuZHMnOwogIC0tZmEtZm9udC1zaGFycC1zb2xpZDogbm9ybWFsIDkwMCAxZW0vMSAnRm9udCBBd2Vzb21lIDcgU2hhcnAnOwogIC0tZmEtZm9udC1zaGFycC1yZWd1bGFyOiBub3JtYWwgNDAwIDFlbS8xICdGb250IEF3ZXNvbWUgNyBTaGFycCc7CiAgLS1mYS1mb250LXNoYXJwLWxpZ2h0OiBub3JtYWwgMzAwIDFlbS8xICdGb250IEF3ZXNvbWUgNyBTaGFycCc7CiAgLS1mYS1mb250LXNoYXJwLXRoaW46IG5vcm1hbCAxMDAgMWVtLzEgJ0ZvbnQgQXdlc29tZSA3IFNoYXJwJzsKICAtLWZhLWZvbnQtc2hhcnAtZHVvdG9uZS1zb2xpZDogbm9ybWFsIDkwMCAxZW0vMSAnRm9udCBBd2Vzb21lIDcgU2hhcnAgRHVvdG9uZSc7CiAgLS1mYS1mb250LXNoYXJwLWR1b3RvbmUtcmVndWxhcjogbm9ybWFsIDQwMCAxZW0vMSAnRm9udCBBd2Vzb21lIDcgU2hhcnAgRHVvdG9uZSc7CiAgLS1mYS1mb250LXNoYXJwLWR1b3RvbmUtbGlnaHQ6IG5vcm1hbCAzMDAgMWVtLzEgJ0ZvbnQgQXdlc29tZSA3IFNoYXJwIER1b3RvbmUnOwogIC0tZmEtZm9udC1zaGFycC1kdW90b25lLXRoaW46IG5vcm1hbCAxMDAgMWVtLzEgJ0ZvbnQgQXdlc29tZSA3IFNoYXJwIER1b3RvbmUnOwogIC0tZmEtZm9udC1zbGFiLXJlZ3VsYXI6IG5vcm1hbCA0MDAgMWVtLzEgJ0ZvbnQgQXdlc29tZSA3IFNsYWInOwogIC0tZmEtZm9udC1zbGFiLXByZXNzLXJlZ3VsYXI6IG5vcm1hbCA0MDAgMWVtLzEgJ0ZvbnQgQXdlc29tZSA3IFNsYWIgUHJlc3MnOwogIC0tZmEtZm9udC13aGl0ZWJvYXJkLXNlbWlib2xkOiBub3JtYWwgNjAwIDFlbS8xICdGb250IEF3ZXNvbWUgNyBXaGl0ZWJvYXJkJzsKICAtLWZhLWZvbnQtdGh1bWJwcmludC1saWdodDogbm9ybWFsIDMwMCAxZW0vMSAnRm9udCBBd2Vzb21lIDcgVGh1bWJwcmludCc7CiAgLS1mYS1mb250LW5vdGRvZy1zb2xpZDogbm9ybWFsIDkwMCAxZW0vMSAnRm9udCBBd2Vzb21lIDcgTm90ZG9nJzsKICAtLWZhLWZvbnQtbm90ZG9nLWR1by1zb2xpZDogbm9ybWFsIDkwMCAxZW0vMSAnRm9udCBBd2Vzb21lIDcgTm90ZG9nIER1byc7CiAgLS1mYS1mb250LWV0Y2gtc29saWQ6IG5vcm1hbCA5MDAgMWVtLzEgJ0ZvbnQgQXdlc29tZSA3IEV0Y2gnOwogIC0tZmEtZm9udC1ncmFwaGl0ZS10aGluOiBub3JtYWwgMTAwIDFlbS8xICdGb250IEF3ZXNvbWUgNyBHcmFwaGl0ZSc7CiAgLS1mYS1mb250LWplbGx5LXJlZ3VsYXI6IG5vcm1hbCA0MDAgMWVtLzEgJ0ZvbnQgQXdlc29tZSA3IEplbGx5JzsKICAtLWZhLWZvbnQtamVsbHktZmlsbC1yZWd1bGFyOiBub3JtYWwgNDAwIDFlbS8xICdGb250IEF3ZXNvbWUgNyBKZWxseSBGaWxsJzsKICAtLWZhLWZvbnQtamVsbHktZHVvLXJlZ3VsYXI6IG5vcm1hbCA0MDAgMWVtLzEgJ0ZvbnQgQXdlc29tZSA3IEplbGx5IER1byc7CiAgLS1mYS1mb250LWNoaXNlbC1yZWd1bGFyOiBub3JtYWwgNDAwIDFlbS8xICdGb250IEF3ZXNvbWUgNyBDaGlzZWwnOwogIC0tZmEtZm9udC11dGlsaXR5LXNlbWlib2xkOiBub3JtYWwgNjAwIDFlbS8xICdGb250IEF3ZXNvbWUgNyBVdGlsaXR5JzsKICAtLWZhLWZvbnQtdXRpbGl0eS1kdW8tc2VtaWJvbGQ6IG5vcm1hbCA2MDAgMWVtLzEgJ0ZvbnQgQXdlc29tZSA3IFV0aWxpdHkgRHVvJzsKICAtLWZhLWZvbnQtdXRpbGl0eS1maWxsLXNlbWlib2xkOiBub3JtYWwgNjAwIDFlbS8xICdGb250IEF3ZXNvbWUgNyBVdGlsaXR5IEZpbGwnOwp9Cgouc3ZnLWlubGluZS0tZmEgewogIGJveC1zaXppbmc6IGNvbnRlbnQtYm94OwogIGRpc3BsYXk6IHZhcigtLWZhLWRpc3BsYXksIGlubGluZS1ibG9jayk7CiAgaGVpZ2h0OiAxZW07CiAgb3ZlcmZsb3c6IHZpc2libGU7CiAgdmVydGljYWwtYWxpZ246IC0wLjEyNWVtOwogIHdpZHRoOiB2YXIoLS1mYS13aWR0aCwgMS4yNWVtKTsKfQouc3ZnLWlubGluZS0tZmEuZmEtMnhzIHsKICB2ZXJ0aWNhbC1hbGlnbjogMC4xZW07Cn0KLnN2Zy1pbmxpbmUtLWZhLmZhLXhzIHsKICB2ZXJ0aWNhbC1hbGlnbjogMGVtOwp9Ci5zdmctaW5saW5lLS1mYS5mYS1zbSB7CiAgdmVydGljYWwtYWxpZ246IC0wLjA3MTQyODU3MTRlbTsKfQouc3ZnLWlubGluZS0tZmEuZmEtbGcgewogIHZlcnRpY2FsLWFsaWduOiAtMC4yZW07Cn0KLnN2Zy1pbmxpbmUtLWZhLmZhLXhsIHsKICB2ZXJ0aWNhbC1hbGlnbjogLTAuMjVlbTsKfQouc3ZnLWlubGluZS0tZmEuZmEtMnhsIHsKICB2ZXJ0aWNhbC1hbGlnbjogLTAuMzEyNWVtOwp9Ci5zdmctaW5saW5lLS1mYS5mYS1wdWxsLWxlZnQsCi5zdmctaW5saW5lLS1mYSAuZmEtcHVsbC1zdGFydCB7CiAgZmxvYXQ6IGlubGluZS1zdGFydDsKICBtYXJnaW4taW5saW5lLWVuZDogdmFyKC0tZmEtcHVsbC1tYXJnaW4sIDAuM2VtKTsKfQouc3ZnLWlubGluZS0tZmEuZmEtcHVsbC1yaWdodCwKLnN2Zy1pbmxpbmUtLWZhIC5mYS1wdWxsLWVuZCB7CiAgZmxvYXQ6IGlubGluZS1lbmQ7CiAgbWFyZ2luLWlubGluZS1zdGFydDogdmFyKC0tZmEtcHVsbC1tYXJnaW4sIDAuM2VtKTsKfQouc3ZnLWlubGluZS0tZmEuZmEtbGkgewogIHdpZHRoOiB2YXIoLS1mYS1saS13aWR0aCwgMmVtKTsKICBpbnNldC1pbmxpbmUtc3RhcnQ6IGNhbGMoLTEgKiB2YXIoLS1mYS1saS13aWR0aCwgMmVtKSk7CiAgaW5zZXQtYmxvY2stc3RhcnQ6IDAuMjVlbTsgLyogc3luY2luZyB2ZXJ0aWNhbCBhbGlnbm1lbnQgd2l0aCBXZWIgRm9udCByZW5kZXJpbmcgKi8KfQoKLmZhLWxheWVycy1jb3VudGVyLCAuZmEtbGF5ZXJzLXRleHQgewogIGRpc3BsYXk6IGlubGluZS1ibG9jazsKICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgdGV4dC1hbGlnbjogY2VudGVyOwp9CgouZmEtbGF5ZXJzIHsKICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7CiAgaGVpZ2h0OiAxZW07CiAgcG9zaXRpb246IHJlbGF0aXZlOwogIHRleHQtYWxpZ246IGNlbnRlcjsKICB2ZXJ0aWNhbC1hbGlnbjogLTAuMTI1ZW07CiAgd2lkdGg6IHZhcigtLWZhLXdpZHRoLCAxLjI1ZW0pOwp9Ci5mYS1sYXllcnMgLnN2Zy1pbmxpbmUtLWZhIHsKICBpbnNldDogMDsKICBtYXJnaW46IGF1dG87CiAgcG9zaXRpb246IGFic29sdXRlOwogIHRyYW5zZm9ybS1vcmlnaW46IGNlbnRlciBjZW50ZXI7Cn0KCi5mYS1sYXllcnMtdGV4dCB7CiAgbGVmdDogNTAlOwogIHRvcDogNTAlOwogIHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUsIC01MCUpOwogIHRyYW5zZm9ybS1vcmlnaW46IGNlbnRlciBjZW50ZXI7Cn0KCi5mYS1sYXllcnMtY291bnRlciB7CiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tZmEtY291bnRlci1iYWNrZ3JvdW5kLWNvbG9yLCAjZmYyNTNhKTsKICBib3JkZXItcmFkaXVzOiB2YXIoLS1mYS1jb3VudGVyLWJvcmRlci1yYWRpdXMsIDFlbSk7CiAgYm94LXNpemluZzogYm9yZGVyLWJveDsKICBjb2xvcjogdmFyKC0tZmEtaW52ZXJzZSwgI2ZmZik7CiAgbGluZS1oZWlnaHQ6IHZhcigtLWZhLWNvdW50ZXItbGluZS1oZWlnaHQsIDEpOwogIG1heC13aWR0aDogdmFyKC0tZmEtY291bnRlci1tYXgtd2lkdGgsIDVlbSk7CiAgbWluLXdpZHRoOiB2YXIoLS1mYS1jb3VudGVyLW1pbi13aWR0aCwgMS41ZW0pOwogIG92ZXJmbG93OiBoaWRkZW47CiAgcGFkZGluZzogdmFyKC0tZmEtY291bnRlci1wYWRkaW5nLCAwLjI1ZW0gMC41ZW0pOwogIHJpZ2h0OiB2YXIoLS1mYS1yaWdodCwgMCk7CiAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7CiAgdG9wOiB2YXIoLS1mYS10b3AsIDApOwogIHRyYW5zZm9ybTogc2NhbGUodmFyKC0tZmEtY291bnRlci1zY2FsZSwgMC4yNSkpOwogIHRyYW5zZm9ybS1vcmlnaW46IHRvcCByaWdodDsKfQoKLmZhLWxheWVycy1ib3R0b20tcmlnaHQgewogIGJvdHRvbTogdmFyKC0tZmEtYm90dG9tLCAwKTsKICByaWdodDogdmFyKC0tZmEtcmlnaHQsIDApOwogIHRvcDogYXV0bzsKICB0cmFuc2Zvcm06IHNjYWxlKHZhcigtLWZhLWxheWVycy1zY2FsZSwgMC4yNSkpOwogIHRyYW5zZm9ybS1vcmlnaW46IGJvdHRvbSByaWdodDsKfQoKLmZhLWxheWVycy1ib3R0b20tbGVmdCB7CiAgYm90dG9tOiB2YXIoLS1mYS1ib3R0b20sIDApOwogIGxlZnQ6IHZhcigtLWZhLWxlZnQsIDApOwogIHJpZ2h0OiBhdXRvOwogIHRvcDogYXV0bzsKICB0cmFuc2Zvcm06IHNjYWxlKHZhcigtLWZhLWxheWVycy1zY2FsZSwgMC4yNSkpOwogIHRyYW5zZm9ybS1vcmlnaW46IGJvdHRvbSBsZWZ0Owp9CgouZmEtbGF5ZXJzLXRvcC1yaWdodCB7CiAgdG9wOiB2YXIoLS1mYS10b3AsIDApOwogIHJpZ2h0OiB2YXIoLS1mYS1yaWdodCwgMCk7CiAgdHJhbnNmb3JtOiBzY2FsZSh2YXIoLS1mYS1sYXllcnMtc2NhbGUsIDAuMjUpKTsKICB0cmFuc2Zvcm0tb3JpZ2luOiB0b3AgcmlnaHQ7Cn0KCi5mYS1sYXllcnMtdG9wLWxlZnQgewogIGxlZnQ6IHZhcigtLWZhLWxlZnQsIDApOwogIHJpZ2h0OiBhdXRvOwogIHRvcDogdmFyKC0tZmEtdG9wLCAwKTsKICB0cmFuc2Zvcm06IHNjYWxlKHZhcigtLWZhLWxheWVycy1zY2FsZSwgMC4yNSkpOwogIHRyYW5zZm9ybS1vcmlnaW46IHRvcCBsZWZ0Owp9CgouZmEtMXggewogIGZvbnQtc2l6ZTogMWVtOwp9CgouZmEtMnggewogIGZvbnQtc2l6ZTogMmVtOwp9CgouZmEtM3ggewogIGZvbnQtc2l6ZTogM2VtOwp9CgouZmEtNHggewogIGZvbnQtc2l6ZTogNGVtOwp9CgouZmEtNXggewogIGZvbnQtc2l6ZTogNWVtOwp9CgouZmEtNnggewogIGZvbnQtc2l6ZTogNmVtOwp9CgouZmEtN3ggewogIGZvbnQtc2l6ZTogN2VtOwp9CgouZmEtOHggewogIGZvbnQtc2l6ZTogOGVtOwp9CgouZmEtOXggewogIGZvbnQtc2l6ZTogOWVtOwp9CgouZmEtMTB4IHsKICBmb250LXNpemU6IDEwZW07Cn0KCi5mYS0yeHMgewogIGZvbnQtc2l6ZTogY2FsYygxMCAvIDE2ICogMWVtKTsgLyogY29udmVydHMgYSAxMHB4IHNpemUgaW50byBhbiBlbS1iYXNlZCB2YWx1ZSB0aGF0J3MgcmVsYXRpdmUgdG8gdGhlIHNjYWxlJ3MgMTZweCBiYXNlICovCiAgbGluZS1oZWlnaHQ6IGNhbGMoMSAvIDEwICogMWVtKTsgLyogc2V0cyB0aGUgbGluZS1oZWlnaHQgb2YgdGhlIGljb24gYmFjayB0byB0aGF0IG9mIGl0J3MgcGFyZW50ICovCiAgdmVydGljYWwtYWxpZ246IGNhbGMoKDYgLyAxMCAtIDAuMzc1KSAqIDFlbSk7IC8qIHZlcnRpY2FsbHkgY2VudGVycyB0aGUgaWNvbiB0YWtpbmcgaW50byBhY2NvdW50IHRoZSBzdXJyb3VuZGluZyB0ZXh0J3MgZGVzY2VuZGVyICovCn0KCi5mYS14cyB7CiAgZm9udC1zaXplOiBjYWxjKDEyIC8gMTYgKiAxZW0pOyAvKiBjb252ZXJ0cyBhIDEycHggc2l6ZSBpbnRvIGFuIGVtLWJhc2VkIHZhbHVlIHRoYXQncyByZWxhdGl2ZSB0byB0aGUgc2NhbGUncyAxNnB4IGJhc2UgKi8KICBsaW5lLWhlaWdodDogY2FsYygxIC8gMTIgKiAxZW0pOyAvKiBzZXRzIHRoZSBsaW5lLWhlaWdodCBvZiB0aGUgaWNvbiBiYWNrIHRvIHRoYXQgb2YgaXQncyBwYXJlbnQgKi8KICB2ZXJ0aWNhbC1hbGlnbjogY2FsYygoNiAvIDEyIC0gMC4zNzUpICogMWVtKTsgLyogdmVydGljYWxseSBjZW50ZXJzIHRoZSBpY29uIHRha2luZyBpbnRvIGFjY291bnQgdGhlIHN1cnJvdW5kaW5nIHRleHQncyBkZXNjZW5kZXIgKi8KfQoKLmZhLXNtIHsKICBmb250LXNpemU6IGNhbGMoMTQgLyAxNiAqIDFlbSk7IC8qIGNvbnZlcnRzIGEgMTRweCBzaXplIGludG8gYW4gZW0tYmFzZWQgdmFsdWUgdGhhdCdzIHJlbGF0aXZlIHRvIHRoZSBzY2FsZSdzIDE2cHggYmFzZSAqLwogIGxpbmUtaGVpZ2h0OiBjYWxjKDEgLyAxNCAqIDFlbSk7IC8qIHNldHMgdGhlIGxpbmUtaGVpZ2h0IG9mIHRoZSBpY29uIGJhY2sgdG8gdGhhdCBvZiBpdCdzIHBhcmVudCAqLwogIHZlcnRpY2FsLWFsaWduOiBjYWxjKCg2IC8gMTQgLSAwLjM3NSkgKiAxZW0pOyAvKiB2ZXJ0aWNhbGx5IGNlbnRlcnMgdGhlIGljb24gdGFraW5nIGludG8gYWNjb3VudCB0aGUgc3Vycm91bmRpbmcgdGV4dCdzIGRlc2NlbmRlciAqLwp9CgouZmEtbGcgewogIGZvbnQtc2l6ZTogY2FsYygyMCAvIDE2ICogMWVtKTsgLyogY29udmVydHMgYSAyMHB4IHNpemUgaW50byBhbiBlbS1iYXNlZCB2YWx1ZSB0aGF0J3MgcmVsYXRpdmUgdG8gdGhlIHNjYWxlJ3MgMTZweCBiYXNlICovCiAgbGluZS1oZWlnaHQ6IGNhbGMoMSAvIDIwICogMWVtKTsgLyogc2V0cyB0aGUgbGluZS1oZWlnaHQgb2YgdGhlIGljb24gYmFjayB0byB0aGF0IG9mIGl0J3MgcGFyZW50ICovCiAgdmVydGljYWwtYWxpZ246IGNhbGMoKDYgLyAyMCAtIDAuMzc1KSAqIDFlbSk7IC8qIHZlcnRpY2FsbHkgY2VudGVycyB0aGUgaWNvbiB0YWtpbmcgaW50byBhY2NvdW50IHRoZSBzdXJyb3VuZGluZyB0ZXh0J3MgZGVzY2VuZGVyICovCn0KCi5mYS14bCB7CiAgZm9udC1zaXplOiBjYWxjKDI0IC8gMTYgKiAxZW0pOyAvKiBjb252ZXJ0cyBhIDI0cHggc2l6ZSBpbnRvIGFuIGVtLWJhc2VkIHZhbHVlIHRoYXQncyByZWxhdGl2ZSB0byB0aGUgc2NhbGUncyAxNnB4IGJhc2UgKi8KICBsaW5lLWhlaWdodDogY2FsYygxIC8gMjQgKiAxZW0pOyAvKiBzZXRzIHRoZSBsaW5lLWhlaWdodCBvZiB0aGUgaWNvbiBiYWNrIHRvIHRoYXQgb2YgaXQncyBwYXJlbnQgKi8KICB2ZXJ0aWNhbC1hbGlnbjogY2FsYygoNiAvIDI0IC0gMC4zNzUpICogMWVtKTsgLyogdmVydGljYWxseSBjZW50ZXJzIHRoZSBpY29uIHRha2luZyBpbnRvIGFjY291bnQgdGhlIHN1cnJvdW5kaW5nIHRleHQncyBkZXNjZW5kZXIgKi8KfQoKLmZhLTJ4bCB7CiAgZm9udC1zaXplOiBjYWxjKDMyIC8gMTYgKiAxZW0pOyAvKiBjb252ZXJ0cyBhIDMycHggc2l6ZSBpbnRvIGFuIGVtLWJhc2VkIHZhbHVlIHRoYXQncyByZWxhdGl2ZSB0byB0aGUgc2NhbGUncyAxNnB4IGJhc2UgKi8KICBsaW5lLWhlaWdodDogY2FsYygxIC8gMzIgKiAxZW0pOyAvKiBzZXRzIHRoZSBsaW5lLWhlaWdodCBvZiB0aGUgaWNvbiBiYWNrIHRvIHRoYXQgb2YgaXQncyBwYXJlbnQgKi8KICB2ZXJ0aWNhbC1hbGlnbjogY2FsYygoNiAvIDMyIC0gMC4zNzUpICogMWVtKTsgLyogdmVydGljYWxseSBjZW50ZXJzIHRoZSBpY29uIHRha2luZyBpbnRvIGFjY291bnQgdGhlIHN1cnJvdW5kaW5nIHRleHQncyBkZXNjZW5kZXIgKi8KfQoKLmZhLXdpZHRoLWF1dG8gewogIC0tZmEtd2lkdGg6IGF1dG87Cn0KCi5mYS1mdywKLmZhLXdpZHRoLWZpeGVkIHsKICAtLWZhLXdpZHRoOiAxLjI1ZW07Cn0KCi5mYS11bCB7CiAgbGlzdC1zdHlsZS10eXBlOiBub25lOwogIG1hcmdpbi1pbmxpbmUtc3RhcnQ6IHZhcigtLWZhLWxpLW1hcmdpbiwgMi41ZW0pOwogIHBhZGRpbmctaW5saW5lLXN0YXJ0OiAwOwp9Ci5mYS11bCA+IGxpIHsKICBwb3NpdGlvbjogcmVsYXRpdmU7Cn0KCi5mYS1saSB7CiAgaW5zZXQtaW5saW5lLXN0YXJ0OiBjYWxjKC0xICogdmFyKC0tZmEtbGktd2lkdGgsIDJlbSkpOwogIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICB0ZXh0LWFsaWduOiBjZW50ZXI7CiAgd2lkdGg6IHZhcigtLWZhLWxpLXdpZHRoLCAyZW0pOwogIGxpbmUtaGVpZ2h0OiBpbmhlcml0Owp9CgovKiBIZWFkcyBVcDogQm9yZGVyZWQgSWNvbnMgd2lsbCBub3QgYmUgc3VwcG9ydGVkIGluIHRoZSBmdXR1cmUhCiAgLSBUaGlzIGZlYXR1cmUgd2lsbCBiZSBkZXByZWNhdGVkIGluIHRoZSBuZXh0IG1ham9yIHJlbGVhc2Ugb2YgRm9udCBBd2Vzb21lICh2OCkhCiAgLSBZb3UgbWF5IGNvbnRpbnVlIHRvIHVzZSBpdCBpbiB0aGlzIHZlcnNpb24gKnY3KSwgYnV0IGl0IHdpbGwgbm90IGJlIHN1cHBvcnRlZCBpbiBGb250IEF3ZXNvbWUgdjguCiovCi8qIE5vdGVzOgoqIC0tQHt2LiRjc3MtcHJlZml4fS1ib3JkZXItd2lkdGggPSAxLzE2IGJ5IGRlZmF1bHQgKHRvIHJlbmRlciBhcyB+MXB4IGJhc2VkIG9uIGEgMTZweCBkZWZhdWx0IGZvbnQtc2l6ZSkKKiAtLUB7di4kY3NzLXByZWZpeH0tYm9yZGVyLXBhZGRpbmcgPQogICoqIDMvMTYgZm9yIHZlcnRpY2FsIHBhZGRpbmcgKHRvIGdpdmUgfjJweCBvZiB2ZXJ0aWNhbCB3aGl0ZXNwYWNlIGFyb3VuZCBhbiBpY29uIGNvbnNpZGVyaW5nIGl0J3MgdmVydGljYWwgYWxpZ25tZW50KQogICoqIDQvMTYgZm9yIGhvcml6b250YWwgcGFkZGluZyAodG8gZ2l2ZSB+NHB4IG9mIGhvcml6b250YWwgd2hpdGVzcGFjZSBhcm91bmQgYW4gaWNvbikKKi8KLmZhLWJvcmRlciB7CiAgYm9yZGVyLWNvbG9yOiB2YXIoLS1mYS1ib3JkZXItY29sb3IsICNlZWUpOwogIGJvcmRlci1yYWRpdXM6IHZhcigtLWZhLWJvcmRlci1yYWRpdXMsIDAuMWVtKTsKICBib3JkZXItc3R5bGU6IHZhcigtLWZhLWJvcmRlci1zdHlsZSwgc29saWQpOwogIGJvcmRlci13aWR0aDogdmFyKC0tZmEtYm9yZGVyLXdpZHRoLCAwLjA2MjVlbSk7CiAgYm94LXNpemluZzogdmFyKC0tZmEtYm9yZGVyLWJveC1zaXppbmcsIGNvbnRlbnQtYm94KTsKICBwYWRkaW5nOiB2YXIoLS1mYS1ib3JkZXItcGFkZGluZywgMC4xODc1ZW0gMC4yNWVtKTsKfQoKLmZhLXB1bGwtbGVmdCwKLmZhLXB1bGwtc3RhcnQgewogIGZsb2F0OiBpbmxpbmUtc3RhcnQ7CiAgbWFyZ2luLWlubGluZS1lbmQ6IHZhcigtLWZhLXB1bGwtbWFyZ2luLCAwLjNlbSk7Cn0KCi5mYS1wdWxsLXJpZ2h0LAouZmEtcHVsbC1lbmQgewogIGZsb2F0OiBpbmxpbmUtZW5kOwogIG1hcmdpbi1pbmxpbmUtc3RhcnQ6IHZhcigtLWZhLXB1bGwtbWFyZ2luLCAwLjNlbSk7Cn0KCi5mYS1iZWF0IHsKICBhbmltYXRpb24tbmFtZTogZmEtYmVhdDsKICBhbmltYXRpb24tZGVsYXk6IHZhcigtLWZhLWFuaW1hdGlvbi1kZWxheSwgMHMpOwogIGFuaW1hdGlvbi1kaXJlY3Rpb246IHZhcigtLWZhLWFuaW1hdGlvbi1kaXJlY3Rpb24sIG5vcm1hbCk7CiAgYW5pbWF0aW9uLWR1cmF0aW9uOiB2YXIoLS1mYS1hbmltYXRpb24tZHVyYXRpb24sIDFzKTsKICBhbmltYXRpb24taXRlcmF0aW9uLWNvdW50OiB2YXIoLS1mYS1hbmltYXRpb24taXRlcmF0aW9uLWNvdW50LCBpbmZpbml0ZSk7CiAgYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogdmFyKC0tZmEtYW5pbWF0aW9uLXRpbWluZywgZWFzZS1pbi1vdXQpOwp9CgouZmEtYm91bmNlIHsKICBhbmltYXRpb24tbmFtZTogZmEtYm91bmNlOwogIGFuaW1hdGlvbi1kZWxheTogdmFyKC0tZmEtYW5pbWF0aW9uLWRlbGF5LCAwcyk7CiAgYW5pbWF0aW9uLWRpcmVjdGlvbjogdmFyKC0tZmEtYW5pbWF0aW9uLWRpcmVjdGlvbiwgbm9ybWFsKTsKICBhbmltYXRpb24tZHVyYXRpb246IHZhcigtLWZhLWFuaW1hdGlvbi1kdXJhdGlvbiwgMXMpOwogIGFuaW1hdGlvbi1pdGVyYXRpb24tY291bnQ6IHZhcigtLWZhLWFuaW1hdGlvbi1pdGVyYXRpb24tY291bnQsIGluZmluaXRlKTsKICBhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiB2YXIoLS1mYS1hbmltYXRpb24tdGltaW5nLCBjdWJpYy1iZXppZXIoMC4yOCwgMC44NCwgMC40MiwgMSkpOwp9CgouZmEtZmFkZSB7CiAgYW5pbWF0aW9uLW5hbWU6IGZhLWZhZGU7CiAgYW5pbWF0aW9uLWRlbGF5OiB2YXIoLS1mYS1hbmltYXRpb24tZGVsYXksIDBzKTsKICBhbmltYXRpb24tZGlyZWN0aW9uOiB2YXIoLS1mYS1hbmltYXRpb24tZGlyZWN0aW9uLCBub3JtYWwpOwogIGFuaW1hdGlvbi1kdXJhdGlvbjogdmFyKC0tZmEtYW5pbWF0aW9uLWR1cmF0aW9uLCAxcyk7CiAgYW5pbWF0aW9uLWl0ZXJhdGlvbi1jb3VudDogdmFyKC0tZmEtYW5pbWF0aW9uLWl0ZXJhdGlvbi1jb3VudCwgaW5maW5pdGUpOwogIGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IHZhcigtLWZhLWFuaW1hdGlvbi10aW1pbmcsIGN1YmljLWJlemllcigwLjQsIDAsIDAuNiwgMSkpOwp9CgouZmEtYmVhdC1mYWRlIHsKICBhbmltYXRpb24tbmFtZTogZmEtYmVhdC1mYWRlOwogIGFuaW1hdGlvbi1kZWxheTogdmFyKC0tZmEtYW5pbWF0aW9uLWRlbGF5LCAwcyk7CiAgYW5pbWF0aW9uLWRpcmVjdGlvbjogdmFyKC0tZmEtYW5pbWF0aW9uLWRpcmVjdGlvbiwgbm9ybWFsKTsKICBhbmltYXRpb24tZHVyYXRpb246IHZhcigtLWZhLWFuaW1hdGlvbi1kdXJhdGlvbiwgMXMpOwogIGFuaW1hdGlvbi1pdGVyYXRpb24tY291bnQ6IHZhcigtLWZhLWFuaW1hdGlvbi1pdGVyYXRpb24tY291bnQsIGluZmluaXRlKTsKICBhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiB2YXIoLS1mYS1hbmltYXRpb24tdGltaW5nLCBjdWJpYy1iZXppZXIoMC40LCAwLCAwLjYsIDEpKTsKfQoKLmZhLWZsaXAgewogIGFuaW1hdGlvbi1uYW1lOiBmYS1mbGlwOwogIGFuaW1hdGlvbi1kZWxheTogdmFyKC0tZmEtYW5pbWF0aW9uLWRlbGF5LCAwcyk7CiAgYW5pbWF0aW9uLWRpcmVjdGlvbjogdmFyKC0tZmEtYW5pbWF0aW9uLWRpcmVjdGlvbiwgbm9ybWFsKTsKICBhbmltYXRpb24tZHVyYXRpb246IHZhcigtLWZhLWFuaW1hdGlvbi1kdXJhdGlvbiwgMXMpOwogIGFuaW1hdGlvbi1pdGVyYXRpb24tY291bnQ6IHZhcigtLWZhLWFuaW1hdGlvbi1pdGVyYXRpb24tY291bnQsIGluZmluaXRlKTsKICBhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiB2YXIoLS1mYS1hbmltYXRpb24tdGltaW5nLCBlYXNlLWluLW91dCk7Cn0KCi5mYS1zaGFrZSB7CiAgYW5pbWF0aW9uLW5hbWU6IGZhLXNoYWtlOwogIGFuaW1hdGlvbi1kZWxheTogdmFyKC0tZmEtYW5pbWF0aW9uLWRlbGF5LCAwcyk7CiAgYW5pbWF0aW9uLWRpcmVjdGlvbjogdmFyKC0tZmEtYW5pbWF0aW9uLWRpcmVjdGlvbiwgbm9ybWFsKTsKICBhbmltYXRpb24tZHVyYXRpb246IHZhcigtLWZhLWFuaW1hdGlvbi1kdXJhdGlvbiwgMXMpOwogIGFuaW1hdGlvbi1pdGVyYXRpb24tY291bnQ6IHZhcigtLWZhLWFuaW1hdGlvbi1pdGVyYXRpb24tY291bnQsIGluZmluaXRlKTsKICBhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiB2YXIoLS1mYS1hbmltYXRpb24tdGltaW5nLCBsaW5lYXIpOwp9CgouZmEtc3BpbiB7CiAgYW5pbWF0aW9uLW5hbWU6IGZhLXNwaW47CiAgYW5pbWF0aW9uLWRlbGF5OiB2YXIoLS1mYS1hbmltYXRpb24tZGVsYXksIDBzKTsKICBhbmltYXRpb24tZGlyZWN0aW9uOiB2YXIoLS1mYS1hbmltYXRpb24tZGlyZWN0aW9uLCBub3JtYWwpOwogIGFuaW1hdGlvbi1kdXJhdGlvbjogdmFyKC0tZmEtYW5pbWF0aW9uLWR1cmF0aW9uLCAycyk7CiAgYW5pbWF0aW9uLWl0ZXJhdGlvbi1jb3VudDogdmFyKC0tZmEtYW5pbWF0aW9uLWl0ZXJhdGlvbi1jb3VudCwgaW5maW5pdGUpOwogIGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IHZhcigtLWZhLWFuaW1hdGlvbi10aW1pbmcsIGxpbmVhcik7Cn0KCi5mYS1zcGluLXJldmVyc2UgewogIC0tZmEtYW5pbWF0aW9uLWRpcmVjdGlvbjogcmV2ZXJzZTsKfQoKLmZhLXB1bHNlLAouZmEtc3Bpbi1wdWxzZSB7CiAgYW5pbWF0aW9uLW5hbWU6IGZhLXNwaW47CiAgYW5pbWF0aW9uLWRpcmVjdGlvbjogdmFyKC0tZmEtYW5pbWF0aW9uLWRpcmVjdGlvbiwgbm9ybWFsKTsKICBhbmltYXRpb24tZHVyYXRpb246IHZhcigtLWZhLWFuaW1hdGlvbi1kdXJhdGlvbiwgMXMpOwogIGFuaW1hdGlvbi1pdGVyYXRpb24tY291bnQ6IHZhcigtLWZhLWFuaW1hdGlvbi1pdGVyYXRpb24tY291bnQsIGluZmluaXRlKTsKICBhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiB2YXIoLS1mYS1hbmltYXRpb24tdGltaW5nLCBzdGVwcyg4KSk7Cn0KCkBtZWRpYSAocHJlZmVycy1yZWR1Y2VkLW1vdGlvbjogcmVkdWNlKSB7CiAgLmZhLWJlYXQsCiAgLmZhLWJvdW5jZSwKICAuZmEtZmFkZSwKICAuZmEtYmVhdC1mYWRlLAogIC5mYS1mbGlwLAogIC5mYS1wdWxzZSwKICAuZmEtc2hha2UsCiAgLmZhLXNwaW4sCiAgLmZhLXNwaW4tcHVsc2UgewogICAgYW5pbWF0aW9uOiBub25lICFpbXBvcnRhbnQ7CiAgICB0cmFuc2l0aW9uOiBub25lICFpbXBvcnRhbnQ7CiAgfQp9CkBrZXlmcmFtZXMgZmEtYmVhdCB7CiAgMCUsIDkwJSB7CiAgICB0cmFuc2Zvcm06IHNjYWxlKDEpOwogIH0KICA0NSUgewogICAgdHJhbnNmb3JtOiBzY2FsZSh2YXIoLS1mYS1iZWF0LXNjYWxlLCAxLjI1KSk7CiAgfQp9CkBrZXlmcmFtZXMgZmEtYm91bmNlIHsKICAwJSB7CiAgICB0cmFuc2Zvcm06IHNjYWxlKDEsIDEpIHRyYW5zbGF0ZVkoMCk7CiAgfQogIDEwJSB7CiAgICB0cmFuc2Zvcm06IHNjYWxlKHZhcigtLWZhLWJvdW5jZS1zdGFydC1zY2FsZS14LCAxLjEpLCB2YXIoLS1mYS1ib3VuY2Utc3RhcnQtc2NhbGUteSwgMC45KSkgdHJhbnNsYXRlWSgwKTsKICB9CiAgMzAlIHsKICAgIHRyYW5zZm9ybTogc2NhbGUodmFyKC0tZmEtYm91bmNlLWp1bXAtc2NhbGUteCwgMC45KSwgdmFyKC0tZmEtYm91bmNlLWp1bXAtc2NhbGUteSwgMS4xKSkgdHJhbnNsYXRlWSh2YXIoLS1mYS1ib3VuY2UtaGVpZ2h0LCAtMC41ZW0pKTsKICB9CiAgNTAlIHsKICAgIHRyYW5zZm9ybTogc2NhbGUodmFyKC0tZmEtYm91bmNlLWxhbmQtc2NhbGUteCwgMS4wNSksIHZhcigtLWZhLWJvdW5jZS1sYW5kLXNjYWxlLXksIDAuOTUpKSB0cmFuc2xhdGVZKDApOwogIH0KICA1NyUgewogICAgdHJhbnNmb3JtOiBzY2FsZSgxLCAxKSB0cmFuc2xhdGVZKHZhcigtLWZhLWJvdW5jZS1yZWJvdW5kLCAtMC4xMjVlbSkpOwogIH0KICA2NCUgewogICAgdHJhbnNmb3JtOiBzY2FsZSgxLCAxKSB0cmFuc2xhdGVZKDApOwogIH0KICAxMDAlIHsKICAgIHRyYW5zZm9ybTogc2NhbGUoMSwgMSkgdHJhbnNsYXRlWSgwKTsKICB9Cn0KQGtleWZyYW1lcyBmYS1mYWRlIHsKICA1MCUgewogICAgb3BhY2l0eTogdmFyKC0tZmEtZmFkZS1vcGFjaXR5LCAwLjQpOwogIH0KfQpAa2V5ZnJhbWVzIGZhLWJlYXQtZmFkZSB7CiAgMCUsIDEwMCUgewogICAgb3BhY2l0eTogdmFyKC0tZmEtYmVhdC1mYWRlLW9wYWNpdHksIDAuNCk7CiAgICB0cmFuc2Zvcm06IHNjYWxlKDEpOwogIH0KICA1MCUgewogICAgb3BhY2l0eTogMTsKICAgIHRyYW5zZm9ybTogc2NhbGUodmFyKC0tZmEtYmVhdC1mYWRlLXNjYWxlLCAxLjEyNSkpOwogIH0KfQpAa2V5ZnJhbWVzIGZhLWZsaXAgewogIDUwJSB7CiAgICB0cmFuc2Zvcm06IHJvdGF0ZTNkKHZhcigtLWZhLWZsaXAteCwgMCksIHZhcigtLWZhLWZsaXAteSwgMSksIHZhcigtLWZhLWZsaXAteiwgMCksIHZhcigtLWZhLWZsaXAtYW5nbGUsIC0xODBkZWcpKTsKICB9Cn0KQGtleWZyYW1lcyBmYS1zaGFrZSB7CiAgMCUgewogICAgdHJhbnNmb3JtOiByb3RhdGUoLTE1ZGVnKTsKICB9CiAgNCUgewogICAgdHJhbnNmb3JtOiByb3RhdGUoMTVkZWcpOwogIH0KICA4JSwgMjQlIHsKICAgIHRyYW5zZm9ybTogcm90YXRlKC0xOGRlZyk7CiAgfQogIDEyJSwgMjglIHsKICAgIHRyYW5zZm9ybTogcm90YXRlKDE4ZGVnKTsKICB9CiAgMTYlIHsKICAgIHRyYW5zZm9ybTogcm90YXRlKC0yMmRlZyk7CiAgfQogIDIwJSB7CiAgICB0cmFuc2Zvcm06IHJvdGF0ZSgyMmRlZyk7CiAgfQogIDMyJSB7CiAgICB0cmFuc2Zvcm06IHJvdGF0ZSgtMTJkZWcpOwogIH0KICAzNiUgewogICAgdHJhbnNmb3JtOiByb3RhdGUoMTJkZWcpOwogIH0KICA0MCUsIDEwMCUgewogICAgdHJhbnNmb3JtOiByb3RhdGUoMGRlZyk7CiAgfQp9CkBrZXlmcmFtZXMgZmEtc3BpbiB7CiAgMCUgewogICAgdHJhbnNmb3JtOiByb3RhdGUoMGRlZyk7CiAgfQogIDEwMCUgewogICAgdHJhbnNmb3JtOiByb3RhdGUoMzYwZGVnKTsKICB9Cn0KLmZhLXJvdGF0ZS05MCB7CiAgdHJhbnNmb3JtOiByb3RhdGUoOTBkZWcpOwp9CgouZmEtcm90YXRlLTE4MCB7CiAgdHJhbnNmb3JtOiByb3RhdGUoMTgwZGVnKTsKfQoKLmZhLXJvdGF0ZS0yNzAgewogIHRyYW5zZm9ybTogcm90YXRlKDI3MGRlZyk7Cn0KCi5mYS1mbGlwLWhvcml6b250YWwgewogIHRyYW5zZm9ybTogc2NhbGUoLTEsIDEpOwp9CgouZmEtZmxpcC12ZXJ0aWNhbCB7CiAgdHJhbnNmb3JtOiBzY2FsZSgxLCAtMSk7Cn0KCi5mYS1mbGlwLWJvdGgsCi5mYS1mbGlwLWhvcml6b250YWwuZmEtZmxpcC12ZXJ0aWNhbCB7CiAgdHJhbnNmb3JtOiBzY2FsZSgtMSwgLTEpOwp9CgouZmEtcm90YXRlLWJ5IHsKICB0cmFuc2Zvcm06IHJvdGF0ZSh2YXIoLS1mYS1yb3RhdGUtYW5nbGUsIDApKTsKfQoKLnN2Zy1pbmxpbmUtLWZhIC5mYS1wcmltYXJ5IHsKICBmaWxsOiB2YXIoLS1mYS1wcmltYXJ5LWNvbG9yLCBjdXJyZW50Q29sb3IpOwogIG9wYWNpdHk6IHZhcigtLWZhLXByaW1hcnktb3BhY2l0eSwgMSk7Cn0KCi5zdmctaW5saW5lLS1mYSAuZmEtc2Vjb25kYXJ5IHsKICBmaWxsOiB2YXIoLS1mYS1zZWNvbmRhcnktY29sb3IsIGN1cnJlbnRDb2xvcik7CiAgb3BhY2l0eTogdmFyKC0tZmEtc2Vjb25kYXJ5LW9wYWNpdHksIDAuNCk7Cn0KCi5zdmctaW5saW5lLS1mYS5mYS1zd2FwLW9wYWNpdHkgLmZhLXByaW1hcnkgewogIG9wYWNpdHk6IHZhcigtLWZhLXNlY29uZGFyeS1vcGFjaXR5LCAwLjQpOwp9Cgouc3ZnLWlubGluZS0tZmEuZmEtc3dhcC1vcGFjaXR5IC5mYS1zZWNvbmRhcnkgewogIG9wYWNpdHk6IHZhcigtLWZhLXByaW1hcnktb3BhY2l0eSwgMSk7Cn0KCi5zdmctaW5saW5lLS1mYSBtYXNrIC5mYS1wcmltYXJ5LAouc3ZnLWlubGluZS0tZmEgbWFzayAuZmEtc2Vjb25kYXJ5IHsKICBmaWxsOiBibGFjazsKfQoKLnN2Zy1pbmxpbmUtLWZhLmZhLWludmVyc2UgewogIGZpbGw6IHZhcigtLWZhLWludmVyc2UsICNmZmYpOwp9CgouZmEtc3RhY2sgewogIGRpc3BsYXk6IGlubGluZS1ibG9jazsKICBoZWlnaHQ6IDJlbTsKICBsaW5lLWhlaWdodDogMmVtOwogIHBvc2l0aW9uOiByZWxhdGl2ZTsKICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlOwogIHdpZHRoOiAyLjVlbTsKfQoKLmZhLWludmVyc2UgewogIGNvbG9yOiB2YXIoLS1mYS1pbnZlcnNlLCAjZmZmKTsKfQoKLnN2Zy1pbmxpbmUtLWZhLmZhLXN0YWNrLTF4IHsKICAtLWZhLXdpZHRoOiAxLjI1ZW07CiAgaGVpZ2h0OiAxZW07CiAgd2lkdGg6IHZhcigtLWZhLXdpZHRoKTsKfQouc3ZnLWlubGluZS0tZmEuZmEtc3RhY2stMnggewogIC0tZmEtd2lkdGg6IDIuNWVtOwogIGhlaWdodDogMmVtOwogIHdpZHRoOiB2YXIoLS1mYS13aWR0aCk7Cn0KCi5mYS1zdGFjay0xeCwKLmZhLXN0YWNrLTJ4IHsKICBpbnNldDogMDsKICBtYXJnaW46IGF1dG87CiAgcG9zaXRpb246IGFic29sdXRlOwogIHotaW5kZXg6IHZhcigtLWZhLXN0YWNrLXotaW5kZXgsIGF1dG8pOwp9YDtoOGU9ITE7ZVZ0PXttaXhvdXQ6ZnVuY3Rpb24oKXtyZXR1cm57ZG9tOntjc3M6ZDhlLGluc2VydENzczpxRH19fSxob29rczpmdW5jdGlvbigpe3JldHVybntiZWZvcmVET01FbGVtZW50Q3JlYXRpb246ZnVuY3Rpb24oKXtxRCgpfSxiZWZvcmVJMnN2ZzpmdW5jdGlvbigpe3FEKCl9fX19LERzPUpufHx7fTtEc1tBc118fChEc1tBc109e30pLERzW0FzXS5zdHlsZXN8fChEc1tBc10uc3R5bGVzPXt9KSxEc1tBc10uaG9va3N8fChEc1tBc10uaG9va3M9e30pLERzW0FzXS5zaGltc3x8KERzW0FzXS5zaGltcz1bXSk7cWk9RHNbQXNdLHA4ZT1bXSx1OGU9ZnVuY3Rpb24oKXt5MS5yZW1vdmVFdmVudExpc3RlbmVyKCJET01Db250ZW50TG9hZGVkIix1OGUpLF9mPTEscDhlLm1hcChmdW5jdGlvbihlKXtyZXR1cm4gZSgpfSl9LF9mPSExOyRzJiYoX2Y9KHkxLmRvY3VtZW50RWxlbWVudC5kb1Njcm9sbD8vXmxvYWRlZHxeYy86L15sb2FkZWR8Xml8XmMvKS50ZXN0KHkxLnJlYWR5U3RhdGUpLF9mfHx5MS5hZGRFdmVudExpc3RlbmVyKCJET01Db250ZW50TG9hZGVkIix1OGUpKTthVnQ9ZnVuY3Rpb24oZSxhKXtyZXR1cm4gZnVuY3Rpb24oaSxyLHMsbil7cmV0dXJuIGUuY2FsbChhLGkscixzLG4pfX0sVkQ9ZnVuY3Rpb24oZSxhLGkscil7dmFyIHM9T2JqZWN0LmtleXMoZSksbj1zLmxlbmd0aCxvPXIhPT12b2lkIDA/YVZ0KGEscik6YSxkLGMsaDtmb3IoaT09PXZvaWQgMD8oZD0xLGg9ZVtzWzBdXSk6KGQ9MCxoPWkpO2Q8bjtkKyspYz1zW2RdLGg9byhoLGVbY10sYyxlKTtyZXR1cm4gaH07VUQ9MSxWaT0yLFZZMT1bW1ZpLFkyKC9wYXRoIG9wYWNpdHk9IihbXiJdKikiLipkPSIoW14iXSopIi4qcGF0aC4qZD0iKFteIl0qKSIvLHtkMjoyLGQxOjN9KV0sW1ZpLFkyKC9wYXRoIG9wYWNpdHk9IihbXiJdKikiLipkPSIoW14iXSopIi8se2QyOjJ9KV0sW1VELFkyKC9wYXRoIGZpbGw9ImN1cnJlbnRDb2xvciIuKmQ9IihbXiJdKykiLyx7ZDE6MX0pXV0salkxPVtbVmksWTIoL3BhdGggY2xhc3M9IihbXiJdKnNlY29uZGFyeVteIl0qKSIuKmQ9IihbXiJdKykiLipwYXRoIGNsYXNzPSIoW14iXSpwcmltYXJ5W14iXSopIi4qZD0iKFteIl0rKSIvLHthdHRyMjoxLGQyOjIsYXR0cjE6MyxkMTo0fSldLFtWaSxZMigvcGF0aCBjbGFzcz0iKFteIl0qcHJpbWFyeVteIl0qKSIuKmQ9IihbXiJdKykiLipwYXRoIGNsYXNzPSIoW14iXSpzZWNvbmRhcnlbXiJdKikiLipkPSIoW14iXSspIi8se2F0dHIxOjEsZDE6MixhdHRyMjozLGQyOjR9KV0sW1ZpLFkyKC9wYXRoIGNsYXNzPSIoW14iXSpwcmltYXJ5W14iXSopIi4qZD0iKFteIl0rKSIvLHthdHRyMToxLGQxOjJ9KV0sW1ZpLFkyKC9wYXRoIGNsYXNzPSIoW14iXSpzZWNvbmRhcnlbXiJdKikiLipkPSIoW14iXSspIi8se2F0dHIyOjEsZDI6Mn0pXSxbVmksWTIoL3BhdGggZD0iKFteIl0rKSIuKmNsYXNzPSIoW14iXSpzZWNvbmRhcnlbXiJdKikiLipwYXRoIGQ9IihbXiJdKykiLipjbGFzcz0iKFteIl0qcHJpbWFyeVteIl0qKSIvLHtkMjoxLGF0dHIyOjIsZDE6MyxhdHRyMTo0fSldLFtWaSxZMigvcGF0aCBkPSIoW14iXSspIi4qY2xhc3M9IihbXiJdKnByaW1hcnlbXiJdKikiLipwYXRoIGQ9IihbXiJdKykiLipjbGFzcz0iKFteIl0qc2Vjb25kYXJ5W14iXSopIi8se2QxOjEsYXR0cjE6MixkMjozLGF0dHIyOjR9KV0sW1ZpLFkyKC9wYXRoIGQ9IihbXiJdKykiLipjbGFzcz0iKFteIl0qcHJpbWFyeVteIl0qKSIvLHtkMToxLGF0dHIxOjJ9KV0sW1ZpLFkyKC9wYXRoIGQ9IihbXiJdKykiLipjbGFzcz0iKFteIl0qc2Vjb25kYXJ5W14iXSopIi8se2QyOjEsYXR0cjI6Mn0pXSxbVmksWTIoL3BhdGggZD0iKFteIl0rKSIuKnBhdGggZD0iKFteIl0rKSIvLHtkMToxLGQyOjJ9KV0sW1VELFkyKC9wYXRoIGQ9IihbXiJdKykiLyx7ZDE6MX0pXSxbVUQsWTIoL3BhdGggc3R5bGU9IihbXiJdKykiLipkPSIoW14iXSspIi8se2F0dHIxOjEsZDE6Mn0pXV0sXzU9cWkuc3R5bGVzLGlWdD1xaS5zaGltcyxiOGU9T2JqZWN0LmtleXMoRkQpLHJWdD1iOGUucmVkdWNlKGZ1bmN0aW9uKHQsZSl7cmV0dXJuIHRbZV09T2JqZWN0LmtleXMoRkRbZV0pLHR9LHt9KSxXRD1udWxsLHY4ZT17fSx5OGU9e30seDhlPXt9LHc4ZT17fSxNOGU9e307ejhlPWZ1bmN0aW9uKCl7dmFyIGU9ZnVuY3Rpb24ocyl7cmV0dXJuIFZEKF81LGZ1bmN0aW9uKG4sbyxkKXtyZXR1cm4gbltkXT1WRChvLHMse30pLG59LHt9KX07djhlPWUoZnVuY3Rpb24ocixzLG4pe2lmKHNbM10mJihyW3NbM11dPW4pLHNbMl0pe3ZhciBvPXNbMl0uZmlsdGVyKGZ1bmN0aW9uKGQpe3JldHVybiB0eXBlb2YgZD09Im51bWJlciJ9KTtvLmZvckVhY2goZnVuY3Rpb24oZCl7cltkLnRvU3RyaW5nKDE2KV09bn0pfXJldHVybiByfSkseThlPWUoZnVuY3Rpb24ocixzLG4pe2lmKHJbbl09bixzWzJdKXt2YXIgbz1zWzJdLmZpbHRlcihmdW5jdGlvbihkKXtyZXR1cm4gdHlwZW9mIGQ9PSJzdHJpbmcifSk7by5mb3JFYWNoKGZ1bmN0aW9uKGQpe3JbZF09bn0pfXJldHVybiByfSksTThlPWUoZnVuY3Rpb24ocixzLG4pe3ZhciBvPXNbMl07cmV0dXJuIHJbbl09bixvLmZvckVhY2goZnVuY3Rpb24oZCl7cltkXT1ufSkscn0pO3ZhciBhPSJmYXIiaW4gXzV8fGV0LmF1dG9GZXRjaFN2ZyxpPVZEKGlWdCxmdW5jdGlvbihyLHMpe3ZhciBuPXNbMF0sbz1zWzFdLGQ9c1syXTtyZXR1cm4gbz09PSJmYXIiJiYhYSYmKG89ImZhcyIpLHR5cGVvZiBuPT0ic3RyaW5nIiYmKHIubmFtZXNbbl09e3ByZWZpeDpvLGljb25OYW1lOmR9KSx0eXBlb2Ygbj09Im51bWJlciImJihyLnVuaWNvZGVzW24udG9TdHJpbmcoMTYpXT17cHJlZml4Om8saWNvbk5hbWU6ZH0pLHJ9LHtuYW1lczp7fSx1bmljb2Rlczp7fX0pO3g4ZT1pLm5hbWVzLHc4ZT1pLnVuaWNvZGVzLFdEPVRmKGV0LnN0eWxlRGVmYXVsdCx7ZmFtaWx5OmV0LmZhbWlseURlZmF1bHR9KX07R3F0KGZ1bmN0aW9uKHQpe1dEPVRmKHQuc3R5bGVEZWZhdWx0LHtmYW1pbHk6ZXQuZmFtaWx5RGVmYXVsdH0pfSksejhlKCk7UzhlPWZ1bmN0aW9uKCl7cmV0dXJue3ByZWZpeDpudWxsLGljb25OYW1lOm51bGwscmVzdDpbXX19O184ZT1YNWUuY29uY2F0KEc1ZSk7cFZ0PVc1ZS5maWx0ZXIoZnVuY3Rpb24odCl7cmV0dXJuIHQhPT1TMnx8dCE9PU01fSksdVZ0PU9iamVjdC5rZXlzKCREKS5maWx0ZXIoZnVuY3Rpb24odCl7cmV0dXJuIHQhPT1TMn0pLm1hcChmdW5jdGlvbih0KXtyZXR1cm4gT2JqZWN0LmtleXMoJERbdF0pfSkuZmxhdCgpO21WdD0oZnVuY3Rpb24oKXtmdW5jdGlvbiB0KCl7WEJ0KHRoaXMsdCksdGhpcy5kZWZpbml0aW9ucz17fX1yZXR1cm4gS0J0KHQsW3trZXk6ImFkZCIsdmFsdWU6ZnVuY3Rpb24oKXtmb3IodmFyIGE9dGhpcyxpPWFyZ3VtZW50cy5sZW5ndGgscj1uZXcgQXJyYXkoaSkscz0wO3M8aTtzKyspcltzXT1hcmd1bWVudHNbc107dmFyIG49ci5yZWR1Y2UodGhpcy5fcHVsbERlZmluaXRpb25zLHt9KTtPYmplY3Qua2V5cyhuKS5mb3JFYWNoKGZ1bmN0aW9uKG8pe2EuZGVmaW5pdGlvbnNbb109TmUoTmUoe30sYS5kZWZpbml0aW9uc1tvXXx8e30pLG5bb10pLGpEKG8sbltvXSk7dmFyIGQ9RkRbUzJdW29dO2QmJmpEKGQsbltvXSksejhlKCl9KX19LHtrZXk6InJlc2V0Iix2YWx1ZTpmdW5jdGlvbigpe3RoaXMuZGVmaW5pdGlvbnM9e319fSx7a2V5OiJfcHVsbERlZmluaXRpb25zIix2YWx1ZTpmdW5jdGlvbihhLGkpe3ZhciByPWkucHJlZml4JiZpLmljb25OYW1lJiZpLmljb24/ezA6aX06aTtyZXR1cm4gT2JqZWN0LmtleXMocikubWFwKGZ1bmN0aW9uKHMpe3ZhciBuPXJbc10sbz1uLnByZWZpeCxkPW4uaWNvbk5hbWUsYz1uLmljb24saD1jWzJdO2Fbb118fChhW29dPXt9KSxoLmxlbmd0aD4wJiZoLmZvckVhY2goZnVuY3Rpb24obCl7dHlwZW9mIGw9PSJzdHJpbmciJiYoYVtvXVtsXT1jKX0pLGFbb11bZF09Y30pLGF9fV0pfSkoKSxUOGU9W10sb2w9e30sbGw9e30sZ1Z0PU9iamVjdC5rZXlzKGxsKTtMOGU9bmV3IG1WdCx2VnQ9ZnVuY3Rpb24oKXtldC5hdXRvUmVwbGFjZVN2Zz0hMSxldC5vYnNlcnZlTXV0YXRpb25zPSExLEgwKCJub0F1dG8iKX0seVZ0PXtpMnN2ZzpmdW5jdGlvbigpe3ZhciBlPWFyZ3VtZW50cy5sZW5ndGg+MCYmYXJndW1lbnRzWzBdIT09dm9pZCAwP2FyZ3VtZW50c1swXTp7fTtyZXR1cm4gJHM/KEgwKCJiZWZvcmVJMnN2ZyIsZSksYW8oInBzZXVkb0VsZW1lbnRzMnN2ZyIsZSksYW8oImkyc3ZnIixlKSk6UHJvbWlzZS5yZWplY3QobmV3IEVycm9yKCJPcGVyYXRpb24gcmVxdWlyZXMgYSBET00gb2Ygc29tZSBraW5kLiIpKX0sd2F0Y2g6ZnVuY3Rpb24oKXt2YXIgZT1hcmd1bWVudHMubGVuZ3RoPjAmJmFyZ3VtZW50c1swXSE9PXZvaWQgMD9hcmd1bWVudHNbMF06e30sYT1lLmF1dG9SZXBsYWNlU3ZnUm9vdDtldC5hdXRvUmVwbGFjZVN2Zz09PSExJiYoZXQuYXV0b1JlcGxhY2VTdmc9ITApLGV0Lm9ic2VydmVNdXRhdGlvbnM9ITAsdFZ0KGZ1bmN0aW9uKCl7d1Z0KHthdXRvUmVwbGFjZVN2Z1Jvb3Q6YX0pLEgwKCJ3YXRjaCIsZSl9KX19LHhWdD17aWNvbjpmdW5jdGlvbihlKXtpZihlPT09bnVsbClyZXR1cm4gbnVsbDtpZih6ZihlKT09PSJvYmplY3QiJiZlLnByZWZpeCYmZS5pY29uTmFtZSlyZXR1cm57cHJlZml4OmUucHJlZml4LGljb25OYW1lOkIwKGUucHJlZml4LGUuaWNvbk5hbWUpfHxlLmljb25OYW1lfTtpZihBcnJheS5pc0FycmF5KGUpJiZlLmxlbmd0aD09PTIpe3ZhciBhPWVbMV0uaW5kZXhPZigiZmEtIik9PT0wP2VbMV0uc2xpY2UoMyk6ZVsxXSxpPVRmKGVbMF0pO3JldHVybntwcmVmaXg6aSxpY29uTmFtZTpCMChpLGEpfHxhfX1pZih0eXBlb2YgZT09InN0cmluZyImJihlLmluZGV4T2YoIiIuY29uY2F0KGV0LmNzc1ByZWZpeCwiLSIpKT4tMXx8ZS5tYXRjaChCcXQpKSl7dmFyIHI9TGYoZS5zcGxpdCgiICIpLHtza2lwTG9va3VwczohMH0pO3JldHVybntwcmVmaXg6ci5wcmVmaXh8fHRvKCksaWNvbk5hbWU6QjAoci5wcmVmaXgsci5pY29uTmFtZSl8fHIuaWNvbk5hbWV9fWlmKHR5cGVvZiBlPT0ic3RyaW5nIil7dmFyIHM9dG8oKTtyZXR1cm57cHJlZml4OnMsaWNvbk5hbWU6QjAocyxlKXx8ZX19fX0sTGE9e25vQXV0bzp2VnQsY29uZmlnOmV0LGRvbTp5VnQscGFyc2U6eFZ0LGxpYnJhcnk6TDhlLGZpbmRJY29uRGVmaW5pdGlvbjpaRCx0b0h0bWw6QzV9LHdWdD1mdW5jdGlvbigpe3ZhciBlPWFyZ3VtZW50cy5sZW5ndGg+MCYmYXJndW1lbnRzWzBdIT09dm9pZCAwP2FyZ3VtZW50c1swXTp7fSxhPWUuYXV0b1JlcGxhY2VTdmdSb290LGk9YT09PXZvaWQgMD95MTphOyhPYmplY3Qua2V5cyhxaS5zdHlsZXMpLmxlbmd0aD4wfHxldC5hdXRvRmV0Y2hTdmcpJiYkcyYmZXQuYXV0b1JlcGxhY2VTdmcmJkxhLmRvbS5pMnN2Zyh7bm9kZTppfSl9O0tEPXFpLnN0eWxlcztDVnQ9e2ZvdW5kOiExLHdpZHRoOjUxMixoZWlnaHQ6NTEyfTtBOGU9ZnVuY3Rpb24oKXt9LGVFPWV0Lm1lYXN1cmVQZXJmb3JtYW5jZSYma2YmJmtmLm1hcmsmJmtmLm1lYXN1cmU/a2Y6e21hcms6QThlLG1lYXN1cmU6QThlfSxUNT0nRkEgIjcuMi4wIicsVFZ0PWZ1bmN0aW9uKGUpe3JldHVybiBlRS5tYXJrKCIiLmNvbmNhdChUNSwiICIpLmNvbmNhdChlLCIgYmVnaW5zIikpLGZ1bmN0aW9uKCl7cmV0dXJuIEQ4ZShlKX19LEQ4ZT1mdW5jdGlvbihlKXtlRS5tYXJrKCIiLmNvbmNhdChUNSwiICIpLmNvbmNhdChlLCIgZW5kcyIpKSxlRS5tZWFzdXJlKCIiLmNvbmNhdChUNSwiICIpLmNvbmNhdChlKSwiIi5jb25jYXQoVDUsIiAiKS5jb25jYXQoZSwiIGJlZ2lucyIpLCIiLmNvbmNhdChUNSwiICIpLmNvbmNhdChlLCIgZW5kcyIpKX0sdEU9e2JlZ2luOlRWdCxlbmQ6RDhlfSxBZj1mdW5jdGlvbigpe307RGY9e3JlcGxhY2U6ZnVuY3Rpb24oZSl7dmFyIGE9ZVswXTtpZihhLnBhcmVudE5vZGUpaWYoZVsxXS5mb3JFYWNoKGZ1bmN0aW9uKHIpe2EucGFyZW50Tm9kZS5pbnNlcnRCZWZvcmUoUDhlKHIpLGEpfSksYS5nZXRBdHRyaWJ1dGUoUjApPT09bnVsbCYmZXQua2VlcE9yaWdpbmFsU291cmNlKXt2YXIgaT15MS5jcmVhdGVDb21tZW50KFBWdChhKSk7YS5wYXJlbnROb2RlLnJlcGxhY2VDaGlsZChpLGEpfWVsc2UgYS5yZW1vdmUoKX0sbmVzdDpmdW5jdGlvbihlKXt2YXIgYT1lWzBdLGk9ZVsxXTtpZih+QkQoYSkuaW5kZXhPZihldC5yZXBsYWNlbWVudENsYXNzKSlyZXR1cm4gRGYucmVwbGFjZShlKTt2YXIgcj1uZXcgUmVnRXhwKCIiLmNvbmNhdChldC5jc3NQcmVmaXgsIi0uKiIpKTtpZihkZWxldGUgaVswXS5hdHRyaWJ1dGVzLmlkLGlbMF0uYXR0cmlidXRlcy5jbGFzcyl7dmFyIHM9aVswXS5hdHRyaWJ1dGVzLmNsYXNzLnNwbGl0KCIgIikucmVkdWNlKGZ1bmN0aW9uKG8sZCl7cmV0dXJuIGQ9PT1ldC5yZXBsYWNlbWVudENsYXNzfHxkLm1hdGNoKHIpP28udG9TdmcucHVzaChkKTpvLnRvTm9kZS5wdXNoKGQpLG99LHt0b05vZGU6W10sdG9Tdmc6W119KTtpWzBdLmF0dHJpYnV0ZXMuY2xhc3M9cy50b1N2Zy5qb2luKCIgIikscy50b05vZGUubGVuZ3RoPT09MD9hLnJlbW92ZUF0dHJpYnV0ZSgiY2xhc3MiKTphLnNldEF0dHJpYnV0ZSgiY2xhc3MiLHMudG9Ob2RlLmpvaW4oIiAiKSl9dmFyIG49aS5tYXAoZnVuY3Rpb24obyl7cmV0dXJuIEM1KG8pfSkuam9pbihgCmApO2Euc2V0QXR0cmlidXRlKFIwLCIiKSxhLmlubmVySFRNTD1ufX07YUU9ITE7RWY9bnVsbDtCVnQ9cWkuc3R5bGVzO2pWdD1mdW5jdGlvbihlKXt2YXIgYT1hcmd1bWVudHMubGVuZ3RoPjEmJmFyZ3VtZW50c1sxXSE9PXZvaWQgMD9hcmd1bWVudHNbMV06e30saT1hLnRyYW5zZm9ybSxyPWk9PT12b2lkIDA/SHI6aSxzPWEuc3ltYm9sLG49cz09PXZvaWQgMD8hMTpzLG89YS5tYXNrLGQ9bz09PXZvaWQgMD9udWxsOm8sYz1hLm1hc2tJZCxoPWM9PT12b2lkIDA/bnVsbDpjLGw9YS5jbGFzc2VzLGY9bD09PXZvaWQgMD9bXTpsLGc9YS5hdHRyaWJ1dGVzLHk9Zz09PXZvaWQgMD97fTpnLHY9YS5zdHlsZXMsbT12PT09dm9pZCAwP3t9OnY7aWYoZSl7dmFyIHg9ZS5wcmVmaXgsTT1lLmljb25OYW1lLFM9ZS5pY29uO3JldHVybiAkZihOZSh7dHlwZToiaWNvbiJ9LGUpLGZ1bmN0aW9uKCl7cmV0dXJuIEgwKCJiZWZvcmVET01FbGVtZW50Q3JlYXRpb24iLHtpY29uRGVmaW5pdGlvbjplLHBhcmFtczphfSksWEQoe2ljb25zOnttYWluOlFEKFMpLG1hc2s6ZD9RRChkLmljb24pOntmb3VuZDohMSx3aWR0aDpudWxsLGhlaWdodDpudWxsLGljb246e319fSxwcmVmaXg6eCxpY29uTmFtZTpNLHRyYW5zZm9ybTpOZShOZSh7fSxIciksciksc3ltYm9sOm4sbWFza0lkOmgsZXh0cmE6e2F0dHJpYnV0ZXM6eSxzdHlsZXM6bSxjbGFzc2VzOmZ9fSl9KX19LFVWdD17bWl4b3V0OmZ1bmN0aW9uKCl7cmV0dXJue2ljb246VlZ0KGpWdCl9fSxob29rczpmdW5jdGlvbigpe3JldHVybnttdXRhdGlvbk9ic2VydmVyQ2FsbGJhY2tzOmZ1bmN0aW9uKGEpe3JldHVybiBhLnRyZWVDYWxsYmFjaz1IOGUsYS5ub2RlQ2FsbGJhY2s9cVZ0LGF9fX0scHJvdmlkZXM6ZnVuY3Rpb24oZSl7ZS5pMnN2Zz1mdW5jdGlvbihhKXt2YXIgaT1hLm5vZGUscj1pPT09dm9pZCAwP3kxOmkscz1hLmNhbGxiYWNrLG49cz09PXZvaWQgMD9mdW5jdGlvbigpe306cztyZXR1cm4gSDhlKHIsbil9LGUuZ2VuZXJhdGVTdmdSZXBsYWNlbWVudE11dGF0aW9uPWZ1bmN0aW9uKGEsaSl7dmFyIHI9aS5pY29uTmFtZSxzPWkucHJlZml4LG49aS50cmFuc2Zvcm0sbz1pLnN5bWJvbCxkPWkubWFzayxjPWkubWFza0lkLGg9aS5leHRyYTtyZXR1cm4gbmV3IFByb21pc2UoZnVuY3Rpb24obCxmKXtQcm9taXNlLmFsbChbSkQocixzKSxkLmljb25OYW1lP0pEKGQuaWNvbk5hbWUsZC5wcmVmaXgpOlByb21pc2UucmVzb2x2ZSh7Zm91bmQ6ITEsd2lkdGg6NTEyLGhlaWdodDo1MTIsaWNvbjp7fX0pXSkudGhlbihmdW5jdGlvbihnKXt2YXIgeT1NZihnLDIpLHY9eVswXSxtPXlbMV07bChbYSxYRCh7aWNvbnM6e21haW46dixtYXNrOm19LHByZWZpeDpzLGljb25OYW1lOnIsdHJhbnNmb3JtOm4sc3ltYm9sOm8sbWFza0lkOmMsZXh0cmE6aCx3YXRjaGFibGU6ITB9KV0pfSkuY2F0Y2goZil9KX0sZS5nZW5lcmF0ZUFic3RyYWN0SWNvbj1mdW5jdGlvbihhKXt2YXIgaT1hLmNoaWxkcmVuLHI9YS5hdHRyaWJ1dGVzLHM9YS5tYWluLG49YS50cmFuc2Zvcm0sbz1hLnN0eWxlcyxkPUNmKG8pO2QubGVuZ3RoPjAmJihyLnN0eWxlPWQpO3ZhciBjO3JldHVybiBIRChuKSYmKGM9YW8oImdlbmVyYXRlQWJzdHJhY3RUcmFuc2Zvcm1Hcm91cGluZyIse21haW46cyx0cmFuc2Zvcm06bixjb250YWluZXJXaWR0aDpzLndpZHRoLGljb25XaWR0aDpzLndpZHRofSkpLGkucHVzaChjfHxzLmljb24pLHtjaGlsZHJlbjppLGF0dHJpYnV0ZXM6cn19fX0sV1Z0PXttaXhvdXQ6ZnVuY3Rpb24oKXtyZXR1cm57bGF5ZXI6ZnVuY3Rpb24oYSl7dmFyIGk9YXJndW1lbnRzLmxlbmd0aD4xJiZhcmd1bWVudHNbMV0hPT12b2lkIDA/YXJndW1lbnRzWzFdOnt9LHI9aS5jbGFzc2VzLHM9cj09PXZvaWQgMD9bXTpyO3JldHVybiAkZih7dHlwZToibGF5ZXIifSxmdW5jdGlvbigpe0gwKCJiZWZvcmVET01FbGVtZW50Q3JlYXRpb24iLHthc3NlbWJsZXI6YSxwYXJhbXM6aX0pO3ZhciBuPVtdO3JldHVybiBhKGZ1bmN0aW9uKG8pe0FycmF5LmlzQXJyYXkobyk/by5tYXAoZnVuY3Rpb24oZCl7bj1uLmNvbmNhdChkLmFic3RyYWN0KX0pOm49bi5jb25jYXQoby5hYnN0cmFjdCl9KSxbe3RhZzoic3BhbiIsYXR0cmlidXRlczp7Y2xhc3M6WyIiLmNvbmNhdChldC5jc3NQcmVmaXgsIi1sYXllcnMiKV0uY29uY2F0KEhpKHMpKS5qb2luKCIgIil9LGNoaWxkcmVuOm59XX0pfX19fSxHVnQ9e21peG91dDpmdW5jdGlvbigpe3JldHVybntjb3VudGVyOmZ1bmN0aW9uKGEpe3ZhciBpPWFyZ3VtZW50cy5sZW5ndGg+MSYmYXJndW1lbnRzWzFdIT09dm9pZCAwP2FyZ3VtZW50c1sxXTp7fSxyPWkudGl0bGUscz1yPT09dm9pZCAwP251bGw6cixuPWkuY2xhc3NlcyxvPW49PT12b2lkIDA/W106bixkPWkuYXR0cmlidXRlcyxjPWQ9PT12b2lkIDA/e306ZCxoPWkuc3R5bGVzLGw9aD09PXZvaWQgMD97fTpoO3JldHVybiAkZih7dHlwZToiY291bnRlciIsY29udGVudDphfSxmdW5jdGlvbigpe3JldHVybiBIMCgiYmVmb3JlRE9NRWxlbWVudENyZWF0aW9uIix7Y29udGVudDphLHBhcmFtczppfSksU1Z0KHtjb250ZW50OmEudG9TdHJpbmcoKSx0aXRsZTpzLGV4dHJhOnthdHRyaWJ1dGVzOmMsc3R5bGVzOmwsY2xhc3NlczpbIiIuY29uY2F0KGV0LmNzc1ByZWZpeCwiLWxheWVycy1jb3VudGVyIildLmNvbmNhdChIaShvKSl9fSl9KX19fX0sWVZ0PXttaXhvdXQ6ZnVuY3Rpb24oKXtyZXR1cm57dGV4dDpmdW5jdGlvbihhKXt2YXIgaT1hcmd1bWVudHMubGVuZ3RoPjEmJmFyZ3VtZW50c1sxXSE9PXZvaWQgMD9hcmd1bWVudHNbMV06e30scj1pLnRyYW5zZm9ybSxzPXI9PT12b2lkIDA/SHI6cixuPWkuY2xhc3NlcyxvPW49PT12b2lkIDA/W106bixkPWkuYXR0cmlidXRlcyxjPWQ9PT12b2lkIDA/e306ZCxoPWkuc3R5bGVzLGw9aD09PXZvaWQgMD97fTpoO3JldHVybiAkZih7dHlwZToidGV4dCIsY29udGVudDphfSxmdW5jdGlvbigpe3JldHVybiBIMCgiYmVmb3JlRE9NRWxlbWVudENyZWF0aW9uIix7Y29udGVudDphLHBhcmFtczppfSksJDhlKHtjb250ZW50OmEsdHJhbnNmb3JtOk5lKE5lKHt9LEhyKSxzKSxleHRyYTp7YXR0cmlidXRlczpjLHN0eWxlczpsLGNsYXNzZXM6WyIiLmNvbmNhdChldC5jc3NQcmVmaXgsIi1sYXllcnMtdGV4dCIpXS5jb25jYXQoSGkobykpfX0pfSl9fX0scHJvdmlkZXM6ZnVuY3Rpb24oZSl7ZS5nZW5lcmF0ZUxheWVyc1RleHQ9ZnVuY3Rpb24oYSxpKXt2YXIgcj1pLnRyYW5zZm9ybSxzPWkuZXh0cmEsbj1udWxsLG89bnVsbDtpZihDNWUpe3ZhciBkPXBhcnNlSW50KGdldENvbXB1dGVkU3R5bGUoYSkuZm9udFNpemUsMTApLGM9YS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtuPWMud2lkdGgvZCxvPWMuaGVpZ2h0L2R9cmV0dXJuIFByb21pc2UucmVzb2x2ZShbYSwkOGUoe2NvbnRlbnQ6YS5pbm5lckhUTUwsd2lkdGg6bixoZWlnaHQ6byx0cmFuc2Zvcm06cixleHRyYTpzLHdhdGNoYWJsZTohMH0pXSl9fX0scThlPW5ldyBSZWdFeHAoJyInLCJ1ZyIpLFY4ZT1bMTEwNTkyMCwxMTEyMzE5XSxqOGU9TmUoTmUoTmUoTmUoe30se0ZvbnRBd2Vzb21lOntub3JtYWw6ImZhcyIsNDAwOiJmYXMifX0pLFRIdCksSXF0KSxGSHQpLHJFPU9iamVjdC5rZXlzKGo4ZSkucmVkdWNlKGZ1bmN0aW9uKHQsZSl7cmV0dXJuIHRbZS50b0xvd2VyQ2FzZSgpXT1qOGVbZV0sdH0se30pLFpWdD1PYmplY3Qua2V5cyhyRSkucmVkdWNlKGZ1bmN0aW9uKHQsZSl7dmFyIGE9ckVbZV07cmV0dXJuIHRbZV09YVs5MDBdfHxIaShPYmplY3QuZW50cmllcyhhKSlbMF1bMV0sdH0se30pO3RqdD1mdW5jdGlvbihlKXtyZXR1cm4hIWUmJnQ4ZS5zb21lKGZ1bmN0aW9uKGEpe3JldHVybiBlLmluY2x1ZGVzKGEpfSl9LGFqdD1mdW5jdGlvbihlKXtpZighZSlyZXR1cm5bXTt2YXIgYT1uZXcgU2V0LGk9ZS5zcGxpdCgvLCg/IVteKCldKlwpKS8pLm1hcChmdW5jdGlvbihkKXtyZXR1cm4gZC50cmltKCl9KTtpPWkuZmxhdE1hcChmdW5jdGlvbihkKXtyZXR1cm4gZC5pbmNsdWRlcygiKCIpP2Q6ZC5zcGxpdCgiLCIpLm1hcChmdW5jdGlvbihjKXtyZXR1cm4gYy50cmltKCl9KX0pO3ZhciByPXhmKGkpLHM7dHJ5e2ZvcihyLnMoKTshKHM9ci5uKCkpLmRvbmU7KXt2YXIgbj1zLnZhbHVlO2lmKHRqdChuKSl7dmFyIG89dDhlLnJlZHVjZShmdW5jdGlvbihkLGMpe3JldHVybiBkLnJlcGxhY2UoYywiIil9LG4pO28hPT0iIiYmbyE9PSIqIiYmYS5hZGQobyl9fX1jYXRjaChkKXtyLmUoZCl9ZmluYWxseXtyLmYoKX1yZXR1cm4gYX07aWp0PXtob29rczpmdW5jdGlvbigpe3JldHVybnttdXRhdGlvbk9ic2VydmVyQ2FsbGJhY2tzOmZ1bmN0aW9uKGEpe3JldHVybiBhLnBzZXVkb0VsZW1lbnRzQ2FsbGJhY2s9VzhlLGF9fX0scHJvdmlkZXM6ZnVuY3Rpb24oZSl7ZS5wc2V1ZG9FbGVtZW50czJzdmc9ZnVuY3Rpb24oYSl7dmFyIGk9YS5ub2RlLHI9aT09PXZvaWQgMD95MTppO2V0LnNlYXJjaFBzZXVkb0VsZW1lbnRzJiZXOGUocil9fX0sRzhlPSExLHJqdD17bWl4b3V0OmZ1bmN0aW9uKCl7cmV0dXJue2RvbTp7dW53YXRjaDpmdW5jdGlvbigpe0Y4ZSgpLEc4ZT0hMH19fX0saG9va3M6ZnVuY3Rpb24oKXtyZXR1cm57Ym9vdHN0cmFwOmZ1bmN0aW9uKCl7TzhlKFlEKCJtdXRhdGlvbk9ic2VydmVyQ2FsbGJhY2tzIix7fSkpfSxub0F1dG86ZnVuY3Rpb24oKXtJVnQoKX0sd2F0Y2g6ZnVuY3Rpb24oYSl7dmFyIGk9YS5vYnNlcnZlTXV0YXRpb25zUm9vdDtHOGU/aUUoKTpPOGUoWUQoIm11dGF0aW9uT2JzZXJ2ZXJDYWxsYmFja3MiLHtvYnNlcnZlTXV0YXRpb25zUm9vdDppfSkpfX19fSxZOGU9ZnVuY3Rpb24oZSl7dmFyIGE9e3NpemU6MTYseDowLHk6MCxmbGlwWDohMSxmbGlwWTohMSxyb3RhdGU6MH07cmV0dXJuIGUudG9Mb3dlckNhc2UoKS5zcGxpdCgiICIpLnJlZHVjZShmdW5jdGlvbihpLHIpe3ZhciBzPXIudG9Mb3dlckNhc2UoKS5zcGxpdCgiLSIpLG49c1swXSxvPXMuc2xpY2UoMSkuam9pbigiLSIpO2lmKG4mJm89PT0iaCIpcmV0dXJuIGkuZmxpcFg9ITAsaTtpZihuJiZvPT09InYiKXJldHVybiBpLmZsaXBZPSEwLGk7aWYobz1wYXJzZUZsb2F0KG8pLGlzTmFOKG8pKXJldHVybiBpO3N3aXRjaChuKXtjYXNlImdyb3ciOmkuc2l6ZT1pLnNpemUrbzticmVhaztjYXNlInNocmluayI6aS5zaXplPWkuc2l6ZS1vO2JyZWFrO2Nhc2UibGVmdCI6aS54PWkueC1vO2JyZWFrO2Nhc2UicmlnaHQiOmkueD1pLngrbzticmVhaztjYXNlInVwIjppLnk9aS55LW87YnJlYWs7Y2FzZSJkb3duIjppLnk9aS55K287YnJlYWs7Y2FzZSJyb3RhdGUiOmkucm90YXRlPWkucm90YXRlK287YnJlYWt9cmV0dXJuIGl9LGEpfSxzanQ9e21peG91dDpmdW5jdGlvbigpe3JldHVybntwYXJzZTp7dHJhbnNmb3JtOmZ1bmN0aW9uKGEpe3JldHVybiBZOGUoYSl9fX19LGhvb2tzOmZ1bmN0aW9uKCl7cmV0dXJue3BhcnNlTm9kZUF0dHJpYnV0ZXM6ZnVuY3Rpb24oYSxpKXt2YXIgcj1pLmdldEF0dHJpYnV0ZSgiZGF0YS1mYS10cmFuc2Zvcm0iKTtyZXR1cm4gciYmKGEudHJhbnNmb3JtPVk4ZShyKSksYX19fSxwcm92aWRlczpmdW5jdGlvbihlKXtlLmdlbmVyYXRlQWJzdHJhY3RUcmFuc2Zvcm1Hcm91cGluZz1mdW5jdGlvbihhKXt2YXIgaT1hLm1haW4scj1hLnRyYW5zZm9ybSxzPWEuY29udGFpbmVyV2lkdGgsbj1hLmljb25XaWR0aCxvPXt0cmFuc2Zvcm06InRyYW5zbGF0ZSgiLmNvbmNhdChzLzIsIiAyNTYpIil9LGQ9InRyYW5zbGF0ZSgiLmNvbmNhdChyLngqMzIsIiwgIikuY29uY2F0KHIueSozMiwiKSAiKSxjPSJzY2FsZSgiLmNvbmNhdChyLnNpemUvMTYqKHIuZmxpcFg/LTE6MSksIiwgIikuY29uY2F0KHIuc2l6ZS8xNiooci5mbGlwWT8tMToxKSwiKSAiKSxoPSJyb3RhdGUoIi5jb25jYXQoci5yb3RhdGUsIiAwIDApIiksbD17dHJhbnNmb3JtOiIiLmNvbmNhdChkLCIgIikuY29uY2F0KGMsIiAiKS5jb25jYXQoaCl9LGY9e3RyYW5zZm9ybToidHJhbnNsYXRlKCIuY29uY2F0KG4vMiotMSwiIC0yNTYpIil9LGc9e291dGVyOm8saW5uZXI6bCxwYXRoOmZ9O3JldHVybnt0YWc6ImciLGF0dHJpYnV0ZXM6TmUoe30sZy5vdXRlciksY2hpbGRyZW46W3t0YWc6ImciLGF0dHJpYnV0ZXM6TmUoe30sZy5pbm5lciksY2hpbGRyZW46W3t0YWc6aS5pY29uLnRhZyxjaGlsZHJlbjppLmljb24uY2hpbGRyZW4sYXR0cmlidXRlczpOZShOZSh7fSxpLmljb24uYXR0cmlidXRlcyksZy5wYXRoKX1dfV19fX19LHNFPXt4OjAseTowLHdpZHRoOiIxMDAlIixoZWlnaHQ6IjEwMCUifTtvanQ9e2hvb2tzOmZ1bmN0aW9uKCl7cmV0dXJue3BhcnNlTm9kZUF0dHJpYnV0ZXM6ZnVuY3Rpb24oYSxpKXt2YXIgcj1pLmdldEF0dHJpYnV0ZSgiZGF0YS1mYS1tYXNrIikscz1yP0xmKHIuc3BsaXQoIiAiKS5tYXAoZnVuY3Rpb24obil7cmV0dXJuIG4udHJpbSgpfSkpOlM4ZSgpO3JldHVybiBzLnByZWZpeHx8KHMucHJlZml4PXRvKCkpLGEubWFzaz1zLGEubWFza0lkPWkuZ2V0QXR0cmlidXRlKCJkYXRhLWZhLW1hc2staWQiKSxhfX19LHByb3ZpZGVzOmZ1bmN0aW9uKGUpe2UuZ2VuZXJhdGVBYnN0cmFjdE1hc2s9ZnVuY3Rpb24oYSl7dmFyIGk9YS5jaGlsZHJlbixyPWEuYXR0cmlidXRlcyxzPWEubWFpbixuPWEubWFzayxvPWEubWFza0lkLGQ9YS50cmFuc2Zvcm0sYz1zLndpZHRoLGg9cy5pY29uLGw9bi53aWR0aCxmPW4uaWNvbixnPUtxdCh7dHJhbnNmb3JtOmQsY29udGFpbmVyV2lkdGg6bCxpY29uV2lkdGg6Y30pLHk9e3RhZzoicmVjdCIsYXR0cmlidXRlczpOZShOZSh7fSxzRSkse30se2ZpbGw6IndoaXRlIn0pfSx2PWguY2hpbGRyZW4/e2NoaWxkcmVuOmguY2hpbGRyZW4ubWFwKFo4ZSl9Ont9LG09e3RhZzoiZyIsYXR0cmlidXRlczpOZSh7fSxnLmlubmVyKSxjaGlsZHJlbjpbWjhlKE5lKHt0YWc6aC50YWcsYXR0cmlidXRlczpOZShOZSh7fSxoLmF0dHJpYnV0ZXMpLGcucGF0aCl9LHYpKV19LHg9e3RhZzoiZyIsYXR0cmlidXRlczpOZSh7fSxnLm91dGVyKSxjaGlsZHJlbjpbbV19LE09Im1hc2stIi5jb25jYXQob3x8bDhlKCkpLFM9ImNsaXAtIi5jb25jYXQob3x8bDhlKCkpLEY9e3RhZzoibWFzayIsYXR0cmlidXRlczpOZShOZSh7fSxzRSkse30se2lkOk0sbWFza1VuaXRzOiJ1c2VyU3BhY2VPblVzZSIsbWFza0NvbnRlbnRVbml0czoidXNlclNwYWNlT25Vc2UifSksY2hpbGRyZW46W3kseF19LF89e3RhZzoiZGVmcyIsY2hpbGRyZW46W3t0YWc6ImNsaXBQYXRoIixhdHRyaWJ1dGVzOntpZDpTfSxjaGlsZHJlbjpuanQoZil9LEZdfTtyZXR1cm4gaS5wdXNoKF8se3RhZzoicmVjdCIsYXR0cmlidXRlczpOZSh7ZmlsbDoiY3VycmVudENvbG9yIiwiY2xpcC1wYXRoIjoidXJsKCMiLmNvbmNhdChTLCIpIiksbWFzazoidXJsKCMiLmNvbmNhdChNLCIpIil9LHNFKX0pLHtjaGlsZHJlbjppLGF0dHJpYnV0ZXM6cn19fX0sbGp0PXtwcm92aWRlczpmdW5jdGlvbihlKXt2YXIgYT0hMTtKbi5tYXRjaE1lZGlhJiYoYT1Kbi5tYXRjaE1lZGlhKCIocHJlZmVycy1yZWR1Y2VkLW1vdGlvbjogcmVkdWNlKSIpLm1hdGNoZXMpLGUubWlzc2luZ0ljb25BYnN0cmFjdD1mdW5jdGlvbigpe3ZhciBpPVtdLHI9e2ZpbGw6ImN1cnJlbnRDb2xvciJ9LHM9e2F0dHJpYnV0ZVR5cGU6IlhNTCIscmVwZWF0Q291bnQ6ImluZGVmaW5pdGUiLGR1cjoiMnMifTtpLnB1c2goe3RhZzoicGF0aCIsYXR0cmlidXRlczpOZShOZSh7fSxyKSx7fSx7ZDoiTTE1Ni41LDQ0Ny43bC0xMi42LDI5LjVjLTE4LjctOS41LTM1LjktMjEuMi01MS41LTM0LjlsMjIuNy0yMi43QzEyNy42LDQzMC41LDE0MS41LDQ0MCwxNTYuNSw0NDcuN3ogTTQwLjYsMjcySDguNSBjMS40LDIxLjIsNS40LDQxLjcsMTEuNyw2MS4xTDUwLDMyMS4yQzQ1LjEsMzA1LjUsNDEuOCwyODksNDAuNiwyNzJ6IE00MC42LDI0MGMxLjQtMTguOCw1LjItMzcsMTEuMS01NC4xbC0yOS41LTEyLjYgQzE0LjcsMTk0LjMsMTAsMjE2LjcsOC41LDI0MEg0MC42eiBNNjQuMywxNTYuNWM3LjgtMTQuOSwxNy4yLTI4LjgsMjguMS00MS41TDY5LjcsOTIuM2MtMTMuNywxNS42LTI1LjUsMzIuOC0zNC45LDUxLjUgTDY0LjMsMTU2LjV6IE0zOTcsNDE5LjZjLTEzLjksMTItMjkuNCwyMi4zLTQ2LjEsMzAuNGwxMS45LDI5LjhjMjAuNy05LjksMzkuOC0yMi42LDU2LjktMzcuNkwzOTcsNDE5LjZ6IE0xMTUsOTIuNCBjMTMuOS0xMiwyOS40LTIyLjMsNDYuMS0zMC40bC0xMS45LTI5LjhjLTIwLjcsOS45LTM5LjgsMjIuNi01Ni44LDM3LjZMMTE1LDkyLjR6IE00NDcuNywzNTUuNWMtNy44LDE0LjktMTcuMiwyOC44LTI4LjEsNDEuNSBsMjIuNywyMi43YzEzLjctMTUuNiwyNS41LTMyLjksMzQuOS01MS41TDQ0Ny43LDM1NS41eiBNNDcxLjQsMjcyYy0xLjQsMTguOC01LjIsMzctMTEuMSw1NC4xbDI5LjUsMTIuNiBjNy41LTIxLjEsMTIuMi00My41LDEzLjYtNjYuOEg0NzEuNHogTTMyMS4yLDQ2MmMtMTUuNyw1LTMyLjIsOC4yLTQ5LjIsOS40djMyLjFjMjEuMi0xLjQsNDEuNy01LjQsNjEuMS0xMS43TDMyMS4yLDQ2MnogTTI0MCw0NzEuNGMtMTguOC0xLjQtMzctNS4yLTU0LjEtMTEuMWwtMTIuNiwyOS41YzIxLjEsNy41LDQzLjUsMTIuMiw2Ni44LDEzLjZWNDcxLjR6IE00NjIsMTkwLjhjNSwxNS43LDguMiwzMi4yLDkuNCw0OS4yaDMyLjEgYy0xLjQtMjEuMi01LjQtNDEuNy0xMS43LTYxLjFMNDYyLDE5MC44eiBNOTIuNCwzOTdjLTEyLTEzLjktMjIuMy0yOS40LTMwLjQtNDYuMWwtMjkuOCwxMS45YzkuOSwyMC43LDIyLjYsMzkuOCwzNy42LDU2LjkgTDkyLjQsMzk3eiBNMjcyLDQwLjZjMTguOCwxLjQsMzYuOSw1LjIsNTQuMSwxMS4xbDEyLjYtMjkuNUMzMTcuNywxNC43LDI5NS4zLDEwLDI3Miw4LjVWNDAuNnogTTE5MC44LDUwIGMxNS43LTUsMzIuMi04LjIsNDkuMi05LjRWOC41Yy0yMS4yLDEuNC00MS43LDUuNC02MS4xLDExLjdMMTkwLjgsNTB6IE00NDIuMyw5Mi4zTDQxOS42LDExNWMxMiwxMy45LDIyLjMsMjkuNCwzMC41LDQ2LjEgbDI5LjgtMTEuOUM0NzAsMTI4LjUsNDU3LjMsMTA5LjQsNDQyLjMsOTIuM3ogTTM5Nyw5Mi40bDIyLjctMjIuN2MtMTUuNi0xMy43LTMyLjgtMjUuNS01MS41LTM0LjlsLTEyLjYsMjkuNSBDMzcwLjQsNzIuMSwzODQuNCw4MS41LDM5Nyw5Mi40eiJ9KX0pO3ZhciBuPU5lKE5lKHt9LHMpLHt9LHthdHRyaWJ1dGVOYW1lOiJvcGFjaXR5In0pLG89e3RhZzoiY2lyY2xlIixhdHRyaWJ1dGVzOk5lKE5lKHt9LHIpLHt9LHtjeDoiMjU2IixjeToiMzY0IixyOiIyOCJ9KSxjaGlsZHJlbjpbXX07cmV0dXJuIGF8fG8uY2hpbGRyZW4ucHVzaCh7dGFnOiJhbmltYXRlIixhdHRyaWJ1dGVzOk5lKE5lKHt9LHMpLHt9LHthdHRyaWJ1dGVOYW1lOiJyIix2YWx1ZXM6IjI4OzE0OzI4OzI4OzE0OzI4OyJ9KX0se3RhZzoiYW5pbWF0ZSIsYXR0cmlidXRlczpOZShOZSh7fSxuKSx7fSx7dmFsdWVzOiIxOzA7MTsxOzA7MTsifSl9KSxpLnB1c2gobyksaS5wdXNoKHt0YWc6InBhdGgiLGF0dHJpYnV0ZXM6TmUoTmUoe30scikse30se29wYWNpdHk6IjEiLGQ6Ik0yNjMuNywzMTJoLTE2Yy02LjYsMC0xMi01LjQtMTItMTJjMC03MSw3Ny40LTYzLjksNzcuNC0xMDcuOGMwLTIwLTE3LjgtNDAuMi01Ny40LTQwLjJjLTI5LjEsMC00NC4zLDkuNi01OS4yLDI4LjcgYy0zLjksNS0xMS4xLDYtMTYuMiwyLjRsLTEzLjEtOS4yYy01LjYtMy45LTYuOS0xMS44LTIuNi0xNy4yYzIxLjItMjcuMiw0Ni40LTQ0LjcsOTEuMi00NC43YzUyLjMsMCw5Ny40LDI5LjgsOTcuNCw4MC4yIGMwLDY3LjYtNzcuNCw2My41LTc3LjQsMTA3LjhDMjc1LjcsMzA2LjYsMjcwLjMsMzEyLDI2My43LDMxMnoifSksY2hpbGRyZW46YT9bXTpbe3RhZzoiYW5pbWF0ZSIsYXR0cmlidXRlczpOZShOZSh7fSxuKSx7fSx7dmFsdWVzOiIxOzA7MDswOzA7MTsifSl9XX0pLGF8fGkucHVzaCh7dGFnOiJwYXRoIixhdHRyaWJ1dGVzOk5lKE5lKHt9LHIpLHt9LHtvcGFjaXR5OiIwIixkOiJNMjMyLjUsMTM0LjVsNywxNjhjMC4zLDYuNCw1LjYsMTEuNSwxMiwxMS41aDljNi40LDAsMTEuNy01LjEsMTItMTEuNWw3LTE2OGMwLjMtNi44LTUuMi0xMi41LTEyLTEyLjVoLTIzIEMyMzcuNywxMjIsMjMyLjIsMTI3LjcsMjMyLjUsMTM0LjV6In0pLGNoaWxkcmVuOlt7dGFnOiJhbmltYXRlIixhdHRyaWJ1dGVzOk5lKE5lKHt9LG4pLHt9LHt2YWx1ZXM6IjA7MDsxOzE7MDswOyJ9KX1dfSkse3RhZzoiZyIsYXR0cmlidXRlczp7Y2xhc3M6Im1pc3NpbmcifSxjaGlsZHJlbjppfX19fSxjanQ9e2hvb2tzOmZ1bmN0aW9uKCl7cmV0dXJue3BhcnNlTm9kZUF0dHJpYnV0ZXM6ZnVuY3Rpb24oYSxpKXt2YXIgcj1pLmdldEF0dHJpYnV0ZSgiZGF0YS1mYS1zeW1ib2wiKSxzPXI9PT1udWxsPyExOnI9PT0iIj8hMDpyO3JldHVybiBhLnN5bWJvbD1zLGF9fX19LGRqdD1bZVZ0LFVWdCxXVnQsR1Z0LFlWdCxpanQscmp0LHNqdCxvanQsbGp0LGNqdF07YlZ0KGRqdCx7bWl4b3V0c1RvOkxhfSk7aGp0PUxhLm5vQXV0byxwanQ9TGEuY29uZmlnLHVqdD1MYS5saWJyYXJ5LGZqdD1MYS5kb20sbWp0PUxhLnBhcnNlLGdqdD1MYS5maW5kSWNvbkRlZmluaXRpb24sYmp0PUxhLnRvSHRtbCxuRT1MYS5pY29uLHZqdD1MYS5sYXllcix5anQ9TGEudGV4dCx4anQ9TGEuY291bnRlcn0pO3ZhciB3anQsb0UsSzhlLFE4ZSxKOGUsZWRlLGxFLHRkZSxhZGUsaWRlLHJkZSxzZGUsbmRlLG9kZSxsZGUsY2RlLGRkZSxoZGUscGRlLHVkZSxmZGUsbWRlLGdkZSxiZGUsdmRlLHlkZSx4ZGUsd2RlLE1kZSxjRSx6ZGUsa2RlLFNkZSxDZGUsX2RlLFRkZSxMZGUsJGRlLEFkZSxEZGUsRWRlLFBkZSxJZGUsTmRlLEZkZSxPZGUsUmRlLEJkZSxIZGUsZEUscWRlLFZkZSxqZGUsVWRlLFdkZSxHZGUsWWRlLFpkZSxYZGUsS2RlLFFkZSxKZGUsZTdlLHQ3ZSxhN2UsaTdlLHI3ZSxzN2UsbjdlLG83ZSxsN2UsaEUsYzdlLGQ3ZSxoN2UscDdlLHU3ZSxmN2UsbTdlLGc3ZSxiN2UsdjdlLHk3ZSx4N2UsdzdlLE03ZSx6N2UsazdlLFM3ZSxDN2UsXzdlLFQ3ZSxMN2UsJDdlLEE3ZSxEN2UsRTdlLFA3ZSxJN2UsTjdlLEY3ZSxPN2UsUjdlLEI3ZSxIN2UscTdlLFY3ZSxqN2UsVTdlLFc3ZSxHN2UsWTdlLFo3ZSxJZixYN2UsSzdlLHBFLFE3ZSxKN2UsZWhlLHVFLHRoZSxhaGUsUGYsaWhlLHJoZSxmRSxzaGUsbmhlLG9oZSxsaGUsY2hlLG1FLGRoZSxoaGUscGhlLHVoZSxmaGUsbWhlLGdoZSxiaGUsdmhlLHloZSxnRSx4aGUsd2hlLE1oZSx6aGUsa2hlLFNoZSxDaGUsX2hlLFRoZSxiRSxMaGUsJGhlLEFoZSxEaGUsRWhlLFBoZSxJaGUsTmhlLHZFLEZoZSxPaGUsUmhlLHlFLEJoZSxIaGUscWhlLFZoZSxqaGUsVWhlLFdoZSxHaGUsWWhlLFpoZSxYaGUsS2hlLFFoZSxKaGUsZXBlLHRwZSxhcGUsaXBlLHJwZSxzcGUsbnBlLG9wZSxscGUsY3BlLGRwZSxocGUscHBlLHhFLHVwZSxmcGUsbXBlLGdwZSxicGUsdnBlLHlwZSx3RSx4cGUsd3BlLE1wZSx6cGUsa3BlLFNwZSxDcGUsX3BlLFRwZSxMcGUsJHBlLEFwZSxEcGUsRXBlLFBwZSxJcGUsTnBlLEZwZSxPcGUsUnBlLEJwZSxIcGUscXBlLFZwZSxqcGUsVXBlLFdwZSxHcGUsWXBlLFpwZSxYcGUsS3BlLFFwZSxKcGUsZTllLHQ5ZSxhOWUsaTllLHI5ZSxzOWUsbjllLG85ZSxOZixsOWUsYzllLGQ5ZSxoOWUscDllLE1FLHU5ZSxmOWUsbTllLEZmLGc5ZSxiOWUsdjllLHk5ZSx4OWUsdzllLHpFLE05ZSx6OWUsazllLFM5ZSxDOWUsXzllLFQ5ZSxMOWUsJDllLEE5ZSxEOWUsRTllLFA5ZSxJOWUsTjllLEY5ZSxMNSxPOWUsUjllLEI5ZSxIOWUscTllLFY5ZSxqOWUsVTllLFc5ZSxHOWUsWTllLFo5ZSxYOWUsSzllLFE5ZSxKOWUsZXVlLHR1ZSxhdWUsaXVlLHJ1ZSxzdWUsbnVlLG91ZSxsdWUsY3VlLGR1ZSxodWUscHVlLHV1ZSxmdWUsbXVlLGd1ZSxidWUsdnVlLHl1ZSx4dWUsd3VlLE11ZSxrRSx6dWUsa3VlLFN1ZSxDdWUsX3VlLFR1ZSxMdWUsJHVlLEF1ZSxEdWUsRXVlLFB1ZSxJdWUsTnVlLEZ1ZSxTRSxPdWUsUnVlLEJ1ZSxIdWUscXVlLFZ1ZSxDRSxqdWUsVXVlLFd1ZSxHdWUsWXVlLFp1ZSxYdWUsS3VlLFF1ZSxKdWUsZWZlLHRmZSxhZmUsaWZlLHJmZSxzZmUsbmZlLG9mZSxsZmUsY2ZlLGRmZSxoZmUscGZlLHVmZSxmZmUsbWZlLGdmZSxiZmUsX0UsT2YsdmZlLHlmZSx4ZmUsd2ZlLE1mZSx6ZmUsa2ZlLFNmZSxDZmUsX2ZlLFRmZSxMZmUsVEUsJGZlLEFmZSxEZmUsRWZlLFBmZSxJZmUsTmZlLEZmZSxSZixPZmUsUmZlLEJmZSxIZmUscWZlLFZmZSxqZmUsVWZlLFdmZSxHZmUsWWZlLFpmZSxYZmUsTEUsS2ZlLFFmZSxKZmUsZW1lLHRtZSxhbWUsaW1lLHJtZSxzbWUsbm1lLG9tZSxsbWUsY21lLGRtZSxobWUscG1lLHVtZSwkRSxmbWUsbW1lLGdtZSxBRSxibWUsdm1lLHltZSx4bWUsQmYsd21lLERFLE1tZSx6bWUsa21lLFNtZSxDbWUsX21lLEVFLFRtZSxMbWUsJG1lLEFtZSxEbWUsRW1lLFBtZSxJbWUsTm1lLEZtZSxPbWUsUm1lLEJtZSxIbWUscW1lLFZtZSxqbWUsVW1lLFdtZSxHbWUsWW1lLFptZSxYbWUsS21lLFFtZSxQRSxKbWUsZWdlLHRnZSxhZ2UsaWdlLHJnZSxzZ2UsbmdlLElFLG9nZSxsZ2UsY2dlLGRnZSxoZ2UscGdlLHVnZSxmZ2UsbWdlLGdnZSxiZ2UsdmdlLHlnZSx4Z2UsTkUsd2dlLE1nZSx6Z2Usa2dlLFNnZSxDZ2UsX2dlLFRnZSxMZ2UsJGdlLEFnZSxEZ2UsRWdlLFBnZSxJZ2UsRkUsTmdlLEZnZSxPZ2UsUmdlLEJnZSxIZ2UscWdlLFZnZSxqZ2UsVWdlLFdnZSxHZ2UsWWdlLFpnZSxIZixYZ2UsS2dlLFFnZSxKZ2UsZWJlLHRiZSxhYmUsaWJlLHJiZSxzYmUsT0UsbmJlLG9iZSxsYmUsY2JlLGRiZSxoYmUscGJlLHViZSxmYmUsbWJlLGdiZSxiYmUsdmJlLHliZSx4YmUsd2JlLE1iZSx6YmUsa2JlLFNiZSxDYmUsX2JlLFRiZSxMYmUsJGJlLEFiZSxEYmUsRWJlLFBiZSxJYmUsTmJlLEZiZSxPYmUsUmJlLEJiZSxIYmUscWJlLFZiZSxSRSxqYmUsVWJlLFdiZSxHYmUsWWJlLEJFLFpiZSxYYmUsS2JlLFFiZSxKYmUsZXZlLE1qdCx0dmU9YigoKT0+e3dqdD0iZmFiIixvRT17cHJlZml4OiJmYWIiLGljb25OYW1lOiJzcXVhcmUtZ2l0aHViIixpY29uOls0NDgsNTEyLFsiZ2l0aHViLXNxdWFyZSJdLCJmMDkyIiwiTTQ0OCA5NmMwLTM1LjMtMjguNy02NC02NC02NEw2NCAzMkMyOC43IDMyIDAgNjAuNyAwIDk2TDAgNDE2YzAgMzUuMyAyOC43IDY0IDY0IDY0bDMyMCAwYzM1LjMgMCA2NC0yOC43IDY0LTY0bDAtMzIwek0yNjUuOCA0MDcuN2MwLTEuOCAwLTYgLjEtMTEuNiAuMS0xMS40IC4xLTI4LjggLjEtNDMuNyAwLTE1LjYtNS4yLTI1LjUtMTEuMy0zMC43IDM3LTQuMSA3Ni05LjIgNzYtNzMuMSAwLTE4LjItNi41LTI3LjMtMTcuMS0zOSAxLjctNC4zIDcuNC0yMi0xLjctNDUtMTMuOS00LjMtNDUuNyAxNy45LTQ1LjcgMTcuOS0yNi42LTcuNS01Ni42LTcuNS04My4yIDAgMCAwLTMxLjgtMjIuMi00NS43LTE3LjktOS4xIDIyLjktMy41IDQwLjYtMS43IDQ1LTEwLjYgMTEuNy0xNS42IDIwLjgtMTUuNiAzOSAwIDYzLjYgMzcuMyA2OSA3NC4zIDczLjEtNC44IDQuMy05LjEgMTEuNy0xMC42IDIyLjMtOS41IDQuMy0zMy44IDExLjctNDguMy0xMy45LTkuMS0xNS44LTI1LjUtMTcuMS0yNS41LTE3LjEtMTYuMi0uMi0xLjEgMTAuMi0xLjEgMTAuMiAxMC44IDUgMTguNCAyNC4yIDE4LjQgMjQuMiA5LjcgMjkuNyA1Ni4xIDE5LjcgNTYuMSAxOS43IDAgOSAuMSAyMS43IC4xIDMwLjYgMCA0LjggLjEgOC42IC4xIDEwIDAgNC4zLTMgOS41LTExLjUgOC02Ni0yMi4xLTExMi4yLTg0LjktMTEyLjItMTU4LjMgMC05MS44IDcwLjItMTYxLjUgMTYyLTE2MS41UzM4OCAxNjUuNiAzODggMjU3LjRjLjEgNzMuNC00NC43IDEzNi4zLTExMC43IDE1OC4zLTguNCAxLjUtMTEuNS0zLjctMTEuNS04em0tOTAuNS01NC44Yy0uMi0xLjUgMS4xLTIuOCAzLTMuMiAxLjktLjIgMy43IC42IDMuOSAxLjkgLjMgMS4zLTEgMi42LTMgMy0xLjkgLjQtMy43LS40LTMuOS0xLjd6bS05LjEgMy4yYy0yLjIgLjItMy43LS45LTMuNy0yLjQgMC0xLjMgMS41LTIuNCAzLjUtMi40IDEuOS0uMiAzLjcgLjkgMy43IDIuNCAwIDEuMy0xLjUgMi40LTMuNSAyLjR6bS0xNC4zLTIuMmMtMS45LS40LTMuMi0xLjktMi44LTMuMnMyLjQtMS45IDQuMS0xLjVjMiAuNiAzLjMgMi4xIDIuOCAzLjQtLjQgMS4zLTIuNCAxLjktNC4xIDEuM3ptLTEyLjUtNy4zYy0xLjUtMS4zLTEuOS0zLjItLjktNC4xIC45LTEuMSAyLjgtLjkgNC4zIC42IDEuMyAxLjMgMS44IDMuMyAuOSA0LjEtLjkgMS4xLTIuOCAuOS00LjMtLjZ6bS04LjUtMTBjLTEuMS0xLjUtMS4xLTMuMiAwLTMuOSAxLjEtLjkgMi44LS4yIDMuNyAxLjMgMS4xIDEuNSAxLjEgMy4zIDAgNC4xLS45IC42LTIuNiAwLTMuNy0xLjV6bS02LjMtOC44Yy0xLjEtMS4zLTEuMy0yLjgtLjQtMy41IC45LS45IDIuNC0uNCAzLjUgLjYgMS4xIDEuMyAxLjMgMi44IC40IDMuNS0uOSAuOS0yLjQgLjQtMy41LS42em0tNi02LjRjLTEuMy0uNi0xLjktMS43LTEuNS0yLjYgLjQtLjYgMS41LS45IDIuOC0uNCAxLjMgLjcgMS45IDEuOCAxLjUgMi42LS40IC45LTEuNyAxLjEtMi44IC40eiJdfSxLOGU9b0UsUThlPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6InRoaW5rLXBlYWtzIixpY29uOls1NzYsNTEyLFtdLCJmNzMxIiwiTTQ2NS40IDQwOS40bDg3LjEtMTUwLjItMzItLjMtNTUuMSA5NS0yMDYuMi0zNTMuOS0yMzYuMiA0MDcuNCAzMiAuMyAyMDQuMi0zNTIuMSAyMDYuMiAzNTMuOHpNMTEwLjEgMzY1LjNsMzIuMSAwIDExNy40LTIwMi41IDIwMy40IDM0OS4xIDMyLjUgLjEtMjM1LjgtNDA0LjYtMTQ5LjYgMjU3Ljl6Il19LEo4ZT17cHJlZml4OiJmYWIiLGljb25OYW1lOiJnb29nbGUtZHJpdmUiLGljb246WzUxMiw1MTIsW10sImYzYWEiLCJNMzM5IDMxNC45TDE3NS40IDMyIDMzNi42IDMyIDUwMC4yIDMxNC45IDMzOSAzMTQuOXpNMjAxLjUgMzM4LjVsLTgwLjYgMTQxLjUgMzEwLjUgMCA4MC42LTE0MS41LTMxMC41IDB6TTE1NC4xIDY3LjRMMCAzMzguNSA4MC42IDQ4MCAyMzcgMjA4LjggMTU0LjEgNjcuNHoiXX0sZWRlPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImF1dG9wcmVmaXhlciIsaWNvbjpbNjQwLDUxMixbXSwiZjQxYyIsIk0zMTguNCAxNmwtMTYxIDQ4MCA3Ny41IDAgMjUuNC04MS40IDExOS41IDAgMjUuMiA4MS40IDc3LjUgMC0xNjQuMS00ODB6TTI3OC4xIDM1Ny45bDQxLjItMTMwLjQgMS41IDAgNDAuOSAxMzAuNC04My42IDB6TTY0MCA0MDVMNjMwIDM3My42IDQ2Mi4xIDM1OCA0ODEuNSA0MTQuNSA2NDAgNDA1ek0xNzcuOSAzNThMMTAgMzczLjcgMCA0MDUgMTU4LjUgNDE0LjQgMTc3LjkgMzU4eiJdfSxsRT17cHJlZml4OiJmYWIiLGljb25OYW1lOiJzcXVhcmUtdmlhZGVvIixpY29uOls0NDgsNTEyLFsidmlhZGVvLXNxdWFyZSJdLCJmMmFhIiwiTTQ0OCA5NmMwLTM1LjMtMjguNy02NC02NC02NEw2NCAzMkMyOC43IDMyIDAgNjAuNyAwIDk2TDAgNDE2YzAgMzUuMyAyOC43IDY0IDY0IDY0bDMyMCAwYzM1LjMgMCA2NC0yOC43IDY0LTY0bDAtMzIwek0xMTguMyAzODEuMmMtNjgtNzMuNi0xOS44LTE5Ni4xIDgxLjItMTk2LjEgMTMuMyAwIDI2LjYgMi4xIDM5LjEgNi43LTQuMyA4LjQtNy4zIDE3LjYtOC40IDI3LjEtOS43LTQuMS0yMC4yLTYtMzAuNy02LTQ4LjggMC04NC42IDQxLjctODQuNiA4OC45IDAgNDMgMjguNSA3OC43IDY5LjUgODUuOSA2MS41LTI0IDcyLjktMTE3LjYgNzIuOS0xNzUgMC03LjMgMC0xNC44LS42LTIyLjEtMTEuMi0zMi45LTI2LjYtNjQuNi00NC4yLTk0LjUgMjcuMSAxOC4zIDQxLjkgNjIuNSA0NC4yIDk0LjFsMCAuNGM3LjcgMjIuNSAxMS44IDQ2LjIgMTEuOCA3MCAwIDU0LjEtMjEuOSA5OS02OC4zIDEyOC4ybC0yLjQgLjJjNTAgMSA4Ni4yLTM4LjYgODYuMi04Ny4yIDAtMTIuMi0yLjEtMjQuMy02LjktMzUuNyA5LjUtMS45IDE4LjUtNS42IDI2LjQtMTAuNSAxNS4zIDM2LjYgMTIuNiA4Ny4zLTIyLjggMTI1LjYtNDIuNCA0Ni4yLTEyMCA0Ni42LTE2Mi40IDB6TTI3NC42IDIxNy42YzIxLjktMTIgNDkuNi0zMC43IDYyLjMtNTMgMS41LTMgNC4xLTguNiA0LjUtMTItMTIuNSAyNy45LTQ0LjIgNDkuOC03My45IDU2LjctNC43LTcuMy03LjUtMTUuNS03LjUtMjQuMyAwLTEwLjMgNS4yLTI0LjEgMTIuOS0zMS42IDguMy03LjkgMTgtMTAuOSAyNy45LTE0LjEgMTYtNS4xIDMyLjUtMTAuMyA0NC41LTM1LjkgMzIuNSA0Ni4yIDEzLjEgMTMwLjMtMzYuMyAxMzAuMy0xMy4zIDAtMjUuMS03LjEtMzQuNC0xNi4xeiJdfSx0ZGU9bEUsYWRlPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImNwYW5lbCIsaWNvbjpbNjQwLDUxMixbXSwiZjM4OCIsIk0yMTAuMyAyMjAuMmMtNS42LTI0LjgtMjYuOS00MS4yLTUxLTQxLjJsLTM3IDBjLTcuMSAwLTEyLjUgNC41LTE0LjMgMTAuOUw3My4xIDMyMCA5Ny44IDMxOS45YzYuOCAwIDEyLjMtNC41IDE0LjItMTAuN2wyNS44LTk1LjcgMTkuOCAwYzguNCAwIDE2LjIgNS42IDE4LjMgMTQuOCAyLjUgMTAuOS01LjkgMjIuNi0xOC4zIDIyLjZsLTEwLjMgMGMtNyAwLTEyLjUgNC42LTE0LjMgMTAuOGwtNi40IDIzLjggMzIgMGMzNy4yIDAgNTguMy0zNi4yIDUxLjctNjUuM3ptLTE1Ni41IDI4bDE4LjYgMGM2LjkgMCAxMi40LTQuNCAxNC4zLTEwLjlsNi4yLTIzLjYtNDAgMEMzMCAyMTMuNyA5IDIyNy44IDEuNyAyNTQuOC03IDI4OC42IDE4LjUgMzIwIDUyIDMyMGwxMi40IDAgNy4xLTI2LjFjMS4yLTQuNC0yLjItOC4zLTYuNC04LjNsLTExLjMgMGMtMjQuNyAwLTI0LjktMzcuNCAwLTM3LjR6bTI0Ny41LTM0LjhsLTc3LjkgMC0zLjUgMTMuNGMtMi40IDkuNiA0LjUgMTguNSAxNC4yIDE4LjVsNTcuNSAwYzQgMCAyLjQgNC4zIDIuMSA1LjNsLTguNiAzMS44Yy0uNCAxLjQtLjkgNS4zLTUuNSA1LjNsLTM0LjkgMGMtNS4zIDAtNS4zLTcuOSAwLTcuOWwyMS42IDBjNi44IDAgMTIuMy00LjYgMTQuMi0xMC44bDMuNS0xMy4yLTQ4LjQgMGMtMzkuMiAwLTQzLjYgNjMuOC0uNyA2My44bDU3LjUgLjJjMTEuMiAwIDIwLjYtNy4yIDIzLjQtMTcuOGwxNC01MS44YzQuOC0xOS4yLTkuNy0zNi44LTI4LjUtMzYuOHpNNjMzLjEgMTc5bC0xOC45IDBjLTQuOSAwLTkuMiAzLjItMTAuNCA3LjlMNTY4LjIgMzIwYzIwLjcgMCAzOS44LTEzLjggNDQuOS0zNC41bDI2LjUtOTguMmMxLjItNC4zLTItOC4zLTYuNS04LjN6TTM5Ni44IDIxMy43bDAgLjEtNDguMyAwLTI2LjIgOThjLTEuMiA0LjQgMi4yIDguMyA2LjQgOC4zbDE4LjkgMGM0LjggMCA5LjItMyAxMC40LTcuOGwxNy4yLTY0IDE5LjggMGMxMi41IDAgMjEuNCAxMS44IDE4LjEgMjMuNGwtMTAuNiA0MGMtMS4yIDQuMyAxLjkgOC4zIDYuNCA4LjNsMTkuMSAwYzQuNiAwIDkuMS0yLjkgMTAuMy03LjhsOC44LTMzLjFjOS0zMy4xLTE1LjktNjUuNC01MC4zLTY1LjR6bTk4LjMgNzQuNmMtMy42IDAtNi0zLjQtNS4xLTYuN2w4LTMwYy45LTMuOSAzLjctNiA3LjgtNmwzMi45IDBjMi42IDAgNC42IDIuNCAzLjkgNS4xbC0uNyAyLjZjLS42IDItMS45IDMtMy45IDNsLTIxLjYgMGMtNyAwLTEyLjYgNC42LTE0LjIgMTAuOGwtMy41IDEzIDUzLjQgMGMxMC41IDAgMjAuMy02LjYgMjMuMi0xNy42bDMuMi0xMmM0LjktMTkuMS05LjMtMzYuOC0yOC4zLTM2LjhsLTQ3LjMgMGMtMTcuOSAwLTMzLjggMTItMzguNiAyOS42bC0xMC44IDQwYy01IDE3LjcgOC4zIDM2LjcgMjguMyAzNi43bDY2LjcgMGM2LjggMCAxMi4zLTQuNSAxNC4yLTEwLjdsNS43LTIxLTczLjMgMHoiXX0saWRlPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6Im1lbmRlbGV5IixpY29uOls2NDAsNTEyLFtdLCJmN2IzIiwiTTYyNC42IDMyNS4yYy0xMi4zLTEyLjQtMjkuNy0xOS4yLTQ4LjQtMTcuMi00My4zLTEtNDkuNy0zNC45LTM3LjUtOTguOCAyMi44LTU3LjUtMTQuOS0xMzEuNS04Ny40LTEzMC44LTc3LjQgLjctODEuNyA4Mi0xMzAuOSA4Mi00OC4xIDAtNTQtODEuMy0xMzAuOS04Mi03Mi45LS44LTExMC4xIDczLjMtODcuNCAxMzAuOCAxMi4yIDYzLjkgNS44IDk3LjgtMzcuNSA5OC44LTIxLjItMi4zLTM3IDYuNS01MyAyMi41LTE5LjkgMTkuNy0xOS4zIDk0LjggNDIuNiAxMDIuNiA0Ny4xIDUuOSA4MS42LTQyLjkgNjEuMi04Ny44LTQ3LjMtMTAzLjcgMTg1LjktMTA2LjEgMTQ2LjUtOC4yLS4xIC4xLS4yIC4yLS4zIC40LTI2LjggNDIuOCA2LjggOTcuNCA1OC44IDk1LjIgNTIuMSAyLjEgODUuNC01Mi42IDU4LjgtOTUuMi0uMS0uMi0uMi0uMy0uMy0uNC0zOS40LTk3LjkgMTkzLjgtOTUuNSAxNDYuNSA4LjItNC42IDEwLTYuNyAyMS4zLTUuNyAzMyA0LjkgNTMuNCA2OC43IDc0LjEgMTA0LjkgMzUuMiAxNy44LTE0LjggMjMuMS02NS42IDAtODguM3pNMzIwLjcgMzA2LjFsLS42IDBjLTQzLjQgMC02Mi44LTM3LjUtNjIuOC02Mi44IDAtMzQuNyAyOC4yLTYyLjggNjIuOC02Mi44bC42IDBjMzQuNyAwIDYyLjggMjguMSA2Mi44IDYyLjggMCAyNS0xOS4yIDYyLjgtNjIuOCA2Mi44eiJdfSxyZGU9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiZHJhZnQyZGlnaXRhbCIsaWNvbjpbNTEyLDUxMixbXSwiZjM5NiIsIk00OTYgMzk4LjFsLTE0NC04Mi4yIDAgNjQuNy05MS4zIDBjMzAuOC0zNSA4MS44LTk1LjkgMTExLjgtMTQ5LjMgMzUuMi02Mi42IDE2LjEtMTIzLjQtMTIuOC0xNTMuMy00LjQtNC42LTYyLjItNjIuOS0xNjYtNDEuMi01OS4xIDEyLjQtODkuNCA0My40LTEwNC4zIDY3LjMtMTMuMSAyMC45LTE3IDM5LjgtMTguMiA0Ny43LTUuNSAzMyAxOS40IDY3LjEgNTYuNyA2Ny4xIDMxLjcgMCA1Ny4zLTI1LjcgNTcuMy01Ny40IDAtMjcuMS0xOS43LTUyLjEtNDgtNTYuOCAxLjgtNy4zIDE3LjctMjEuMSAyNi4zLTI0LjcgNDEuMS0xNy4zIDc4IDUuMiA4My4zIDMzLjUgOC4zIDQ0LjMtMzcuMSA5MC40LTY5LjcgMTI3LjYtNzYuNiA4Ny0xNDIuOCAxNTUuNy0xNjEuMSAxNzQuOGwzMzYtLjEgMCA2NC4yIDE0NC04MS45ek0zODUuOSAzNzFsNDcuMSAyNy4yLTQ3LjEgMjcuMiAwLTU0LjR6TTEwNS40IDE2MS40YTIyLjQgMjIuNCAwIDEgMSA0NC44IDAgMjIuNCAyMi40IDAgMSAxIC00NC44IDB6TTk4LjUgMzgwLjVjMjUuNi0yNy40IDk3LjctMTA0LjcgMTUwLjgtMTY5LjkgMzUuMS00My4xIDQwLjMtODIuNCAyOC40LTExMi43LTcuNC0xOC44LTE3LjUtMzAuMi0yNC4zLTM1LjcgNDUuMyAyLjEgNjggMjMuNCA4Mi4yIDM4LjMgMCAwIDQyLjQgNDguMiA1LjggMTEzLjMtMzcgNjUuOS0xMTAuOSAxNDcuNS0xMjguNSAxNjYuN2wtMTE0LjQgMHoiXX0sc2RlPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6InJlcGx5ZCIsaWNvbjpbNDQ4LDUxMixbXSwiZjNlNiIsIk0zMjAgNDgwbC0xOTIgMEM1Ny42IDQ4MCAwIDQyMi40IDAgMzUyTDAgMTYwQzAgODkuNiA1Ny42IDMyIDEyOCAzMmwxOTIgMGM3MC40IDAgMTI4IDU3LjYgMTI4IDEyOGwwIDE5MmMwIDcwLjQtNTcuNiAxMjgtMTI4IDEyOHpNMTkzLjQgMjczLjJjLTYuMS0yLTExLjYtMy4xLTE2LjQtMy4xLTcuMiAwLTEzLjUgMS45LTE4LjkgNS42cy05LjYgOS0xMi44IDE1LjhsLTEuMSAwLTQuMi0xOC4zLTI4IDAgMCAxMzguOSAzNi4xIDAgMC04OS43YzEuNS01LjQgNC40LTkuOCA4LjctMTMuMnM5LjgtNS4xIDE2LjItNS4xYzQuNiAwIDkuOCAxIDE1LjYgMy4xbDQuOC0zNHpNMzA4LjYgMzc2LjZjLTMuMiAyLjQtNy43IDQuOC0xMy43IDcuMXMtMTIuOCAzLjUtMjAuNCAzLjVjLTEyLjIgMC0yMS4xLTMtMjYuNS04LjktNS41LTUuOS04LjUtMTQuNy05LTI2LjRsODMuMyAwYy45LTQuOCAxLjYtOS40IDIuMS0xMy45IC41LTQuNCAuNy04LjYgLjctMTIuNSAwLTEwLjctMS42LTE5LjctNC43LTI2LjktMy4yLTcuMi03LjMtMTMtMTIuNS0xNy4yLTUuMi00LjMtMTEuMS03LjMtMTcuOC05LjItNi43LTEuOC0xMy41LTIuOC0yMC42LTIuOC0yMS4xIDAtMzcuNSA2LjEtNDkuMiAxOC4zcy0xNy41IDMwLjUtMTcuNSA1NWMwIDIyLjggNS4yIDQwLjcgMTUuNiA1My43IDEwLjQgMTMuMSAyNi44IDE5LjYgNDkuMiAxOS42IDEwLjcgMCAyMC45LTEuNSAzMC40LTQuNnMxNy4xLTYuOCAyMi42LTExLjJsLTEyLTIzLjZ6bS0yMS44LTcwLjNjMy44IDUuNCA1LjMgMTMuMSA0LjYgMjMuMWwtNTEuNyAwYy45LTkuNCAzLjctMTcgOC4yLTIyLjZzMTEuNS04LjUgMjEtOC41YzguMi0uMSAxNC4xIDIuNiAxNy45IDh6bTc5LjkgMi41YzQuMSAzLjkgOS40IDUuOCAxNi4xIDUuOCA3IDAgMTIuNi0xLjkgMTYuNy01LjhzNi4xLTkuMSA2LjEtMTUuNi0yLTExLjYtNi4xLTE1LjQtOS42LTUuNy0xNi43LTUuN2MtNi43IDAtMTIgMS45LTE2LjEgNS43cy02LjEgOC45LTYuMSAxNS40IDIgMTEuNyA2LjEgMTUuNnptMCAxMDAuNWM0LjEgMy45IDkuNCA1LjggMTYuMSA1LjggNyAwIDEyLjYtMS45IDE2LjctNS44czYuMS05LjEgNi4xLTE1LjYtMi0xMS42LTYuMS0xNS40LTkuNi01LjctMTYuNy01LjdjLTYuNyAwLTEyIDEuOS0xNi4xIDUuN3MtNi4xIDguOS02LjEgMTUuNGMwIDYuNiAyIDExLjcgNi4xIDE1LjZ6Il19LG5kZT17cHJlZml4OiJmYWIiLGljb25OYW1lOiJlbXBpcmUiLGljb246WzUxMiw1MTIsW10sImYxZDEiLCJNMjk1LjYgNTQuMmMtMTAuOC0yLjItMjIuMS0zLjMtMzMuNS0zLjZsMC0xOC4yYzc4LjEgMi4yIDE0Ni4xIDQ0IDE4NC42IDEwNi42bC0xNS44IDkuMWMtNi4xLTkuNy0xMi43LTE4LjgtMjAuMi0yNy4xbC0xOCAxNS41Yy0yNi0yOS42LTYxLjQtNTAuNy0xMDEuOS01OC40bDQuOC0yMy45ek02MS40IDMyMi40bDIzLTcuN2MtNi40LTE4LjMtMTAtMzguMi0xMC01OC43czMuMy00MC40IDkuNy01OC43bC0yMi43LTcuN2MzLjYtMTAuOCA4LjMtMjEuMyAxMy42LTMxbC0xNS44LTkuMUM0MiAxODEgMzIuMSAyMTcuNSAzMi4xIDI1NnMxMCA3NSAyNy4xIDEwNi42TDc1IDM1My41Yy01LjMtMTAtOS43LTIwLjMtMTMuNi0zMS4xek0yMjEuMSA0MzRjLTQwLjQtOC03NS44LTI5LjEtMTAxLjktNTguN2wtMTggMTUuOGMtNy41LTguNi0xNC40LTE3LjctMjAuMi0yNy40bC0xNiA5LjRjMzguNSA2Mi4zIDEwNi44IDEwNC4zIDE4NC45IDEwNi42bDAtMTguM2MtMTEuMy0uMy0yMi43LTEuNy0zMy41LTMuNmw0LjctMjMuOHpNMTAxLjMgMTIwLjlsMTggMTUuNWMyNi0yOS42IDYxLjQtNTAuNyAxMDEuOS01OC40bC00LjctMjMuOGMxMC44LTIuMiAyMi4xLTMuMyAzMy41LTMuNmwwLTE4LjJDMTcxLjkgMzQuNiAxMDMuOSA3Ni40IDY1LjQgMTM5bDE1LjggOS4xYzYtOS43IDEyLjYtMTguOSAyMC4xLTI3LjJ6TTQxMC43IDM5MS4xbC0xOC0xNS44Yy0yNiAyOS42LTYxLjQgNTAuNy0xMDEuOSA1OC43bDQuNyAyMy44Yy0xMC44IDEuOS0yMi4xIDMuMy0zMy41IDMuNmwwIDE4LjNjNzguMS0yLjIgMTQ2LjQtNDQuMyAxODQuOS0xMDYuNmwtMTYuMS05LjRjLTUuNyA5LjctMTIuNiAxOC44LTIwLjEgMjcuNHpNOCAyNTZhMjQ4IDI0OCAwIDEgMSA0OTYgMCAyNDggMjQ4IDAgMSAxIC00OTYgMHptNDgzLjggMGEyMzUuOCAyMzUuOCAwIDEgMCAtNDcxLjYgMCAyMzUuOCAyMzUuOCAwIDEgMCA0NzEuNiAwem0tMzktMTA2LjZMNDM3IDE1OC41YzUuMyA5LjcgMTAgMjAuMiAxMy42IDMxbC0yMi43IDcuN2M2LjQgMTguMyA5LjcgMzguMiA5LjcgNTguN3MtMy42IDQwLjQtMTAgNTguN2wyMyA3LjdjLTMuOSAxMC44LTguMyAyMS0xMy42IDMxbDE1LjggOS4xQzQ3MCAzMzEgNDc5LjkgMjk0LjUgNDc5LjkgMjU2cy05LjktNzUtMjcuMS0xMDYuNnptLTE4MyAxNzcuN2MxNi4zLTMuMyAzMC40LTExLjYgNDAuNy0yMy41bDUxLjIgNDQuOGMxMS45LTEzLjYgMjEuMy0yOS4zIDI3LjEtNDYuOGwtNjQuMi0yMi4xYzIuNS03LjUgMy45LTE1LjIgMy45LTIzLjVzLTEuNC0xNi4xLTMuOS0yMy41bDY0LjUtMjIuMWMtNi4xLTE3LjQtMTUuNS0zMy4yLTI3LjQtNDYuOGwtNTEuMiA0NC44Yy0xMC4yLTExLjktMjQuNC0yMC41LTQwLjctMjMuOGwxMy4zLTY2LjRjLTguNi0xLjktMTcuNy0yLjgtMjcuMS0yLjhzLTE4LjUgLjgtMjcuMSAyLjhsMTMuMyA2Ni40Yy0xNi4zIDMuMy0zMC40IDExLjktNDAuNyAyMy44bC01MS4yLTQ0LjhjLTExLjkgMTMuNi0yMS4zIDI5LjMtMjcuNCA0Ni44bDY0LjUgMjIuMWMtMi41IDcuNS0zLjkgMTUuMi0zLjkgMjMuNXMxLjQgMTYuMSAzLjkgMjMuNWwtNjQuMiAyMi4xYzUuOCAxNy40IDE1LjIgMzMuMiAyNy4xIDQ2LjhsNTEuMi00NC44YzEwLjIgMTEuOSAyNC40IDIwLjIgNDAuNyAyMy41bC0xMy4zIDY2LjdjOC42IDEuNyAxNy43IDIuOCAyNy4xIDIuOHMxOC41LTEuMSAyNy4xLTIuOGwtMTMuMy02Ni43eiJdfSxvZGU9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiYWNjZXNzaWJsZS1pY29uIixpY29uOls0NDgsNTEyLFs2MjEwN10sImYzNjgiLCJNNDIzLjkgMjU1LjhMNDExIDQxMy4xYy0zLjMgNDAuNy02My45IDM1LjEtNjAuNi00LjlsMTAtMTIyLjUtNDEuMSAyLjNjMTAuMSAyMC43IDE1LjggNDMuOSAxNS44IDY4LjUgMCA0MS4yLTE2LjEgNzguNy00Mi4zIDEwNi41bC0zOS4zLTM5LjNjNTcuOS02My43IDEzLjEtMTY3LjItNzQtMTY3LjItMjUuOSAwLTQ5LjUgOS45LTY3LjIgMjZMNzMgMjQzLjJjMjItMjAuNyA1MC4xLTM1LjEgODEuNC00MC4ybDc1LjMtODUuNy00Mi42LTI0LjgtNTEuNiA0NkMxMDUuNSAxNjUuMyA2NC45IDEyMCA5NSA5My4xbDY4LTYwLjdjOS44LTguOCAyNC4xLTEwLjIgMzUuNS0zLjYgMCAwIDEzOS4zIDgwLjkgMTM5LjUgODEuMSAxNi4yIDEwLjEgMjAuNyAzNiA2LjEgNTIuNmwtNTguNCA2Ni41IDEwNi4xLTUuOWMxOC41LTEuMSAzMy42IDE0LjQgMzIuMSAzMi43ek0zNTkgMTAxLjhBNTAuOSA1MC45IDAgMSAwIDM1OSAwIDUwLjkgNTAuOSAwIDEgMCAzNTkgMTAxLjh6TTE3OS42IDQ1Ni41Yy04MC42IDAtMTI3LjQtOTAuNi04Mi43LTE1Ni4xTDU3LjIgMjYwLjdDMzYuNCAyODcgMjQgMzIwLjMgMjQgMzU2LjQgMjQgNDg3LjEgMTc0LjcgNTU3LjggMjc1LjQgNDc4LjlsLTM5LjctMzkuN2MtMTYgMTAuOS0zNS4zIDE3LjMtNTYuMSAxNy4zeiJdfSxsZGU9e3ByZWZpeDoiZmFiIixpY29uTmFtZToicXVvcmEiLGljb246WzQ0OCw1MTIsW10sImYyYzQiLCJNNDQwLjcgMzg2LjdsLTI5LjMgMGMtMS41IDEzLjUtMTAuNSAzMC44LTMzIDMwLjgtMjAuNSAwLTM1LjMtMTQuMi00OS41LTM1LjggNDQuMi0zNC4yIDc0LjctODcuNSA3NC43LTE1MyAuMS0xMTcuNS05Ni42LTE5Ni43LTE5OC40LTE5Ni43LTk5LjcgMC0xOTcuNyA3OS43LTE5Ny43IDE5Ni43IDAgMTM0LjEgMTMxLjMgMjIxLjYgMjQ5IDE4OSAxOS43IDMzLjYgNDUuNyA2Mi4zIDk1LjIgNjIuMyA4MS44IDAgOTAuOC03NS4zIDg5LTkzLjN6TTI5Ny4yIDMyOS4yYy0xOS41LTI5LjItNDMuNy01Mi4yLTkxLjUtNTIuMi0zMC41IDAtNTQuMyAxMC02OSAyMi44bDEyLjIgMjQuM2M2LjItMyAxMy00IDE5LjgtNCAzNS41IDAgNTMuNyAzMC44IDY5LjIgNjEuMy0xMCAzLTIwLjcgNC4yLTMyLjcgNC4yLTc1IDAtMTA3LjUtNTMtMTA3LjUtMTU2LjcgMC0xMDQuNCAzMi41LTE1Ny45IDEwNy41LTE1Ny45IDc2LjIgMCAxMDguNyA1My41IDEwOC43IDE1Ny43IC4xIDQxLjgtNS40IDc1LjYtMTYuNyAxMDAuNXoiXX0sY2RlPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImNjLWpjYiIsaWNvbjpbNTc2LDUxMixbXSwiZjI0YiIsIk00MzEuNSAyNDQuM2wwLTMyLjNjNDEuMiAwIDM4LjUgLjIgMzguNSAuMiA3LjMgMS4zIDEzLjMgNy4zIDEzLjMgMTYgMCA4LjgtNiAxNC41LTEzLjMgMTUuOC0xLjIgLjQtMy4zIC4zLTM4LjUgLjN6bTQyLjggMjAuMmMtMi44LS43LTMuMy0uNS00Mi44LS41bDAgMzVjMzkuNiAwIDQwIC4yIDQyLjgtLjUgNy41LTEuNSAxMy41LTggMTMuNS0xNyAwLTguNy02LTE1LjUtMTMuNS0xN3pNNTc2IDgwbDAgMzUyYzAgMjYuNS0yMS41IDQ4LTQ4IDQ4TDQ4IDQ4MGMtMjYuNSAwLTQ4LTIxLjUtNDgtNDhMMCA4MEMwIDUzLjUgMjEuNSAzMiA0OCAzMmw0ODAgMGMyNi41IDAgNDggMjEuNSA0OCA0OHpNMTgyIDE5Mi4zbC01NyAwYzAgNjcuMSAxMC43IDEwOS43LTM1LjggMTA5LjctMTkuNSAwLTM4LjgtNS43LTU3LjItMTQuOGwwIDI4YzMwIDguMyA2OCA4LjMgNjggOC4zIDk3LjkgMCA4Mi00Ny43IDgyLTEzMS4yem0xNzguNSA0LjVjLTYzLjQtMTYtMTY1LTE0LjktMTY1IDU5LjMgMCA3Ny4xIDEwOC4yIDczLjYgMTY1IDU5LjJsMC0yOC4zQzMxMi45IDMxMS43IDI1MyAzMDkgMjUzIDI1NnM1OS44LTU1LjYgMTA3LjUtMzEuMmwwLTI4ek01NDQgMjg2LjVjMC0xOC41LTE2LjUtMzAuNS0zOC0zMmwwLS44YzE5LjUtMi43IDMwLjMtMTUuNSAzMC4zLTMwLjIgMC0xOS0xNS43LTMwLTM3LTMxIDAgMCA2LjMtLjMtMTIwLjMtLjNsMCAxMjcuNSAxMjIuNyAwYzI0LjMgLjEgNDIuMy0xMi45IDQyLjMtMzMuMnoiXX0sZGRlPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImZlZG9yYSIsaWNvbjpbNDQ4LDUxMixbXSwiZjc5OCIsIk0wIDI1NS44Qy4xIDEzMi4yIDEwMC4zIDMyIDIyNCAzMlM0NDggMTMyLjMgNDQ4IDI1NiAzNDcuOCA0NzkuOSAyMjQuMSA0ODBMNTAuOSA0ODBDMjIuOCA0ODAgLjEgNDU3LjMgMCA0MjkuMmwwIDAgMC0xNzMuNCAwIDB6bTM0Mi42LTYzLjFjMC0zOS43LTM1LjYtNjguNS03My4yLTY4LjUtMzQuOSAwLTY1LjggMjYuMy03MC4xIDU5LjktLjIgMy44LS40IDUtLjQgOC41LS4xIDIxLjEgMCA0Mi44LS44IDY0LjQgLjkgMjYuMSAxIDUyLjEgMCA3Ni42IDAgMjcuMS0xOS40IDQ1LjUtNDQuNyA0NS41cy00NS44LTIwLjItNDUuOC00NS41Yy41LTI3LjcgMjIuNi00NS4zIDQ4LjUtNDYuMWwuMiAwIDI2LjMtLjIgMC0zNy4zLTI2LjMgLjJjLTQ3LjEtLjQtODQuNiAzNi41LTg1LjkgODMuNCAwIDQ1LjYgMzcuNSA4Mi45IDgzIDgyLjkgNDMgMCA3OC43LTMzLjYgODIuNi03NS42bC4yLTUzLjUgMzIuNi0uM2MyNS4zIC4yIDI1LTM3LjgtLjItMzcuM2wtMzIuNCAuM2MwLTYuNCAuMS0xMi44IC4xLTE5LjIgLjEtMTIuNyAuMS0yNS40LS4xLTM4LjIgLjEtMTYuNSAxNS44LTMxLjIgMzMuMi0zMS4yIDE3LjUgMCAzNS45IDguNyAzNS45IDMxLjIgMCAzLjItLjEgNS4xLS4zIDYuMy0xLjkgMTAuNSA1LjIgMjAuNCAxNS43IDIxLjkgMTAuNiAxLjUgMjAuMi02LjEgMjEuMi0xNi42IC42LTQuMiAuNy03LjkgLjctMTEuNnoiXX0saGRlPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImR1b2xpbmdvIixpY29uOls1NzYsNTEyLFtdLCJlODEyIiwiTTUwNC4zIDIzMC41YzEwLjQgODguNS00My40IDE3Mi4xLTEyOC4yIDE5OXMtMTc2LjYtMTAuMy0yMTguOS04OC43Yy03MiAzLTEzNy40LTM5LjgtMTYzLjItMTA1LjUtMi42LTYuNi0xLjktMTQgMS45LTE5LjlzMTAuMi05LjcgMTcuMi0xMC4xbDk2LjEtNi0yMy44LTc1LjljLTYuMy0yMC0yLjItNDEuOSAxMS01OC4zczMzLjctMjUgNTQuNS0yM2M1Mi4yIDUgODYuOCA0LjggMTA0LS42UzMwMCAxNi43IDMzOS0xNi45YzE1LjktMTMuNyAzNy43LTE4LjUgNTcuOC0xMi43czM2LjEgMjEuMyA0Mi40IDQxLjRMNDYyLjggODcgNTQzLjYgMzcuM2M2LTMuNyAxMy40LTQuMyAxOS45LTEuNnMxMS4zIDguMyAxMi45IDE1LjJjMTYuMiA2OC4yLTEyLjQgMTQwLjMtNzIuMSAxNzkuNXpNMjU4LjUgNDc1LjlsMCAwYzE1LjEgNy41IDIxLjUgMjUuOCAxNC4yIDQxcy0yNS40IDIxLjktNDAuNyAxNC45bC00My45LTIxYy0xNS4xLTcuNS0yMS41LTI1LjgtMTQuMi00MXMyNS40LTIxLjkgNDAuNy0xNC45bDQzLjggMjF6TTU2NC42IDM0NS43YzE0LjggOC40IDIwIDI3LjMgMTEuNiA0Mi4ybC0yMy45IDQyLjRjLTguNyAxNC4zLTI3LjEgMTkuMi00MS42IDEwLjlzLTE5LjktMjYuNi0xMi00MS40bDIzLjktNDIuNGM0LTcuMSAxMC43LTEyLjQgMTguNi0xNC42czE2LjMtMS4yIDIzLjQgMi45eiJdfSxwZGU9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiZmlyc3RkcmFmdCIsaWNvbjpbMzg0LDUxMixbXSwiZjNhMSIsIk0zODQgMTkybC02NCAwIDAgMTI4LTEyOCAwIDAgMTI4LTE5MiAwIDAtMjUuNiAxNjYuNCAwIDAtMTI4IDEyOCAwIDAtMTI4IDg5LjYgMCAwIDI1LjZ6bS0yNS42IDM4LjRsMCAxMjgtMTI4IDAgMCAxMjgtMTY2LjQgMCAwIDI1LjYgMTkyIDAgMC0xMjggMTI4IDAgMC0xNTMuNi0yNS42IDB6bTI1LjYgMTkybC04OS42IDAgMCA4OS42IDI1LjYgMCAwLTY0IDY0IDAgMC0yNS42ek0wIDBsMCAzODQgMTI4IDAgMC0xMjggMTI4IDAgMC0xMjggMTI4IDAgMC0xMjgtMzg0IDB6Il19LHVkZT17cHJlZml4OiJmYWIiLGljb25OYW1lOiJmcmVlYnNkIixpY29uOls0NDgsNTEyLFtdLCJmM2E0IiwiTTMwMy43IDk2LjJjMTEuMS0xMS4xIDExNS41LTc3IDEzOS4yLTUzLjIgMjMuNyAyMy43LTQyLjEgMTI4LjEtNTMuMiAxMzkuMnMtMzkuNCAuOS02My4xLTIyLjljLTIzLjgtMjMuNy0zNC4xLTUyLTIyLjktNjMuMXpNMTA5LjkgNjguMUM3My42IDQ3LjUgMjIgMjQuNiA1LjYgNDEuMS0xMSA1Ny43IDEyLjcgMTEwLjUgMzMuNSAxNDYuOCA1MiAxMTQuNiA3OC4zIDg3LjUgMTA5LjkgNjguMXpNNDA2LjcgMTc0YzMuMyAxMS4zIDIuNyAyMC43LTIuNyAyNi4xLTIwLjMgMjAuMy04Ny41LTI3LTEwOS4zLTcwLjEtMTgtMzIuMy0xMS4xLTUzLjQgMTQuOS00OC43IDUuNy0zLjYgMTIuMy03LjYgMTkuNi0xMS42LTI5LjgtMTUuNS02My42LTI0LjMtOTkuNS0yNC4zLTExOS4xIDAtMjE1LjYgOTYuNS0yMTUuNiAyMTUuNiAwIDExOSA5Ni41IDIxNS42IDIxNS42IDIxNS42UzQ0NS4zIDM4MC4xIDQ0NS4zIDI2MWMwLTM4LjQtMTAuMS03NC41LTI3LjctMTA1LjgtMy45IDctNy42IDEzLjMtMTAuOSAxOC44eiJdfSxmZGU9e3ByZWZpeDoiZmFiIixpY29uTmFtZToib2R5c2VlIixpY29uOls1MTIsNTEyLFtdLCJlNWM2IiwiTTQwNi43IDQ2M2MtNDIuMyAzMC44LTk0LjQgNDktMTUwLjcgNDktMTExLjEgMC0yMDUuNy03MC44LTI0MS4xLTE2OS44IDIuNCAxLjcgNS45IDMuNiA3LjkgNC40IDE2LjMgNy40IDQwLjEtNS40IDYyLjktMjguNyA2LjktNi45IDE0LjQtMTIuNCAyMi44LTE3LjMgMTguMy0xMS45IDM3LjYtMjAuOCA1OC40LTI3LjIgMCAwIDIyLjMgMzQuMiA0My4xIDc0LjhzLTIyLjMgNTQtMjcuMiA1NGMtLjMgMC0uOCAwLTEuNS0uMS0xMS0uNS03MC0zLTU2IDUxLjEgMTQuOSA1Ny40IDk3LjUgMzYuNiAxMzkuNiA4LjlzMzEuNy0xMTguMyAzMS43LTExOC4zYzQxLjEtNi40IDU0IDM3LjEgNTcuOSA1OS40IC44IDQuNiAxLjEgOS45IDEuNCAxNS41IDEuMSAyMS4yIDIuMyA0NS42IDM1LjMgNDYuNCA1LjMgMCAxMC42LS44IDE1LjUtMmwwLS4xem0tOTUuMy0yMy43Yy0yLS41LTMuNS0yLjUtMy01IDEtMi41IDMtMy41IDUtM3MzLjUgMyAzIDUtMi41IDMuNS01IDN6bS0yMDctOTUuNmMxLjUtLjUgMy41IDEgNCAzIDAgMi0xIDQtMyA0LTEuNSAuNS0zLjUtMS00LTMtLjUtMS41IDEtMy41IDMtNHpNNDUxLjggNDIxYzM3LjUtNDQuNiA2MC4yLTEwMi4yIDYwLjItMTY1IDAtNjcuNS0yNi4xLTEyOC45LTY4LjgtMTc0LjctLjEgMjMuNS02LjEgNDguMi0xNi44IDY5LjItMTEuOSAyMC4zLTQ5IDU4LjktNjkuOCA3OC43LS43IC4zLTEuMSAuOS0xLjUgMS40LS4yIC4yLS4zIC40LS41IC42LTUgNi45LTQgMTYuOCAzIDIxLjggMjEuMyAxNS44IDU2LjQgNDUuNiA1OS40IDcyLjggMy41IDM0LjkgMjcuOSA3NS42IDM0LjIgODYuMiAuOCAxLjMgMS4zIDIuMSAxLjQgMi40IDAgMi4yLS40IDQuMy0uOCA2LjVsMCAuMXpNMzkwLjcgMjUxYy0uNSAzIDEgNS45IDQgNi40czUuOS0xIDYuNC00LTEtNS45LTQtNi40Yy0zLTEtNS45IDEtNi40IDR6bTYxLjQtNjAuOWwtMTEuNCA1LjQtMyAxMi45LTUuNC0xMS40LTEyLjktMyAxMS40LTUuNCAzLTEyLjkgNS40IDExLjQgMTIuOSAzek0zOTUuNSA0MS4zYy0xNi4yIDguMi0yMi4xIDMyLjgtMjkgNjEuNC0uMyAxLjQtLjcgMi44LTEgNC4yLTkuNSAzOC41LTMwLjYgMzcuNi00MS43IDM3LjItMS4xIDAtMi0uMS0yLjktLjEtNS4xIDAtNi00LTguOS0xNy4xLTIuNi0xMi4xLTYuOS0zMi0xNy45LTYzLjYtMjIuNy02NS44LTgyLjctNDkuNC0xMjguMi0yMi4yLTU1LjMgMzMuMS0zNC40IDEwMS45LTE5LjggMTQ5LjQgLjcgMi4yIDEuNCA0LjQgMiA2LjYtNCA0LTEzLjggNy41LTI2IDExLjktMTIuMSA0LjMtMjYuNiA5LjUtNDAuMyAxNi45LTMzLjkgMTgtNzAuMyA0OS03OS44IDYyLjYtMS4zLTEwLjctMi0yMS41LTItMzIuNSAwLTE0MS40IDExNC42LTI1NiAyNTYtMjU2IDUxLjQgMCA5OS40IDE1LjIgMTM5LjUgNDEuM3pNNTguOSAxODkuNmMtMS41LTItNC41LTMtNi40LTEuNXMtMyA0LjUtMS41IDYuNCA0LjUgMyA2LjQgMS41YzIuNS0xLjUgMy00LjUgMS41LTYuNHpNMzI3LjMgNjQuOWMyLTEuNSA1LS41IDYuNCAxLjUgMS41IDIuNSAxIDUuNC0xLjUgNi40LTIgMS41LTUgLjUtNi40LTEuNXMtLjUtNSAxLjUtNi40ek05NS4xIDEwNWMtLjUgMS41IC41IDMgMiAzIDEuNSAuNSAzLS41IDMtMiAuNS0xLjUtLjUtMy0yLTNzLTMgLjUtMyAyem04NC43LS41Yy0zLjUtNDMuMSAzNy4xLTU0IDM3LjEtNTQgNDQuMS0xNS40IDU2IDUuOSA2Ni40IDM3LjZzMyA0Mi42LTM4LjYgNTguOS02MS45LTQuNS02NC45LTQyLjZsMCAuMXptODkuNiAxNC45bDEgMGMyLjUgMCA1LTIgNS01IDItNi45IDEtMTQuNC0yLTIwLjgtMS41LTItNC0zLjUtNi40LTIuNS0zIDEtNC41IDQtMy41IDYuOSAyIDQuNSAzIDkuOSAxLjUgMTQuOS0uNSAzIDEuNSA1LjkgNC41IDYuNGwtLjEgLjF6bS05LjktNDEuNmMtMiAwLTQtMS01LTNzLTItMy41LTMtNWMtMi0yLTItNS40IDAtNy40czUuNC0yIDcuNCAwYzIgMi41IDMuNSA1IDUgNy40cy41IDUuOS0yLjUgNy40Yy0uNiAwLTEgLjItMS4zIC4zLS4yIC4xLS40IC4yLS42IC4ybDAgLjF6Il19LG1kZT17cHJlZml4OiJmYWIiLGljb25OYW1lOiJnZy1jaXJjbGUiLGljb246WzUxMiw1MTIsW10sImYyNjEiLCJNMjU3LjUgOGEyNDggMjQ4IDAgMSAwIDAgNDk2IDI0OCAyNDggMCAxIDAgMC00OTZ6TTIwOCAzODIuOGwtMTI1LjctMTI1LjcgMTI1LjctMTI1LjcgMzUuMiAzNS40LTI0LjIgMjQuMi0xMS4xLTExLjEtNzcuMiA3Ny4yIDc3LjIgNzcuMiAyNi42LTI2LjYtNTMuMS01Mi45IDI0LjQtMjQuNCA3Ny4yIDc3LjItNzUgNzUuMnptOTktMi4ybC0zNS4yLTM1LjIgMjQuMS0yNC40IDExLjEgMTEuMSA3Ny4yLTc3LjItNzcuMi03Ny4yLTI2LjUgMjYuNSA1My4xIDUyLjktMjQuNCAyNC40LTc3LjItNzcuMiA3NS03NSAxMjUuNyAxMjUuNy0xMjUuNyAxMjUuNnoiXX0sZ2RlPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImNsb3VkZmxhcmUiLGljb246WzY0MCw1MTIsW10sImUwN2QiLCJNNDA3LjkgMzE5LjlMMTc3LjEgMzE3Yy0uNyAwLTEuNC0uMi0yLS41cy0xLjItLjgtMS42LTEuNGMtLjQtLjYtLjctMS4zLS43LTJzMC0xLjQgLjItMi4xYy40LTEuMSAxLjEtMi4xIDIuMS0yLjhzMi4xLTEuMiAzLjMtMS4ybDIzMi45LTIuOWMyNy42LTEuMyA1Ny41LTIzLjYgNjgtNTAuOGwxMy4zLTM0LjVjLjQtLjkgLjUtMS45IC41LTIuOSAwLS41LS4xLTEuMS0uMi0xLjYtNy40LTMyLjItMjUtNjEuMS01MC4zLTgyLjNzLTU2LjctMzMuNy04OS43LTM1LjUtNjUuNiA3LjMtOTMgMjUuNy00OCA0NS4zLTU4LjggNzYuNWMtMTEuMy04LjUtMjQuOS0xMy4zLTM5LTEzLjdzLTI4IDMuNS0zOS44IDExLjQtMjAuOCAxOS4xLTI1LjkgMzIuMy01LjkgMjcuNi0yLjQgNDEuM2MtNTIuMyAxLjUtOTQuMiA0NC4xLTk0LjIgOTYuNSAwIDQuNyAuMyA5LjMgMSAxNCAuMiAxLjEgLjcgMi4xIDEuNSAyLjhzMS45IDEuMSAyLjkgMS4xbDQyNi4xIC4xYzAgMCAuMSAwIC4xIDAgMS4yIDAgMi4zLS40IDMuMy0xLjFzMS42LTEuNyAyLTIuOWwzLjMtMTEuM2MzLjktMTMuNCAyLjQtMjUuOC00LjEtMzQuOS02LTguNC0xNi4xLTEzLjMtMjguMi0xMy45em0xMDUuOS05OC44Yy0yLjEgMC00LjMgLjEtNi40IC4yLS44IC4xLTEuNSAuMy0yLjEgLjhzLTEgMS4xLTEuMyAxLjhsLTkuMSAzMS4yYy0zLjkgMTMuNC0yLjQgMjUuOCA0LjEgMzQuOSA2IDguNCAxNi4xIDEzLjMgMjguMiAxMy45bDQ5LjIgMi45Yy43IDAgMS40IC4yIDIgLjVzMS4xIC44IDEuNSAxLjRjLjQgLjYgLjcgMS4zIC44IDJzMCAxLjUtLjIgMi4xYy0uNCAxLjEtMS4xIDIuMS0yLjEgMi44cy0yLjEgMS4yLTMuMyAxLjJsLTUxLjEgMi45Yy0yNy44IDEuMy01Ny43IDIzLjYtNjguMSA1MC44bC0zLjcgOS42Yy0uMiAuNC0uMiAuOC0uMiAxLjNzLjIgLjggLjQgMS4yIC42IC43IC45IC45IC44IC4zIDEuMiAuM2MwIDAgLjEgMCAuMSAwbDE3NS45IDBjMSAwIDItLjMgMi44LS45czEuNC0xLjUgMS43LTIuNGMzLjEtMTEuMSA0LjctMjIuNSA0LjctMzQgMC02OS4zLTU2LjUtMTI1LjUtMTI2LjEtMTI1LjV6Il19LGJkZT17cHJlZml4OiJmYWIiLGljb25OYW1lOiJoYWNrZXJyYW5rIixpY29uOls1MTIsNTEyLFtdLCJmNWY3IiwiTTQ3Ny45IDEyOEM0NjMuNCAxMDMgMjg1LjUgMCAyNTYuNSAwcy0yMDYuOSAxMDIuOC0yMjEuMyAxMjgtMTQuNSAyMzAuOCAwIDI1NiAxOTIuNCAxMjggMjIxLjMgMTI4IDIwNi44LTEwMi45IDIyMS4zLTEyOCAxNC41LTIzMSAwLTI1NnpNMzE2LjUgNDE0LjJjLTQgMC00MC45LTM1LjgtMzgtMzguNyAuOS0uOSA2LjMtMS41IDE3LjUtMS44IDAtMjYuMiAuNi02OC42IC45LTg2LjMgMC0yLS40LTMuNC0uNC01LjhsLTc5LjkgMGMwIDcuMS0uNSAzNi4yIDEuNCA3Mi45IC4yIDQuNS0xLjYgNi01LjcgNS45LTEwLjEgMC0yMC4zLS4xLTMwLjQtLjEtNC4xIDAtNS45LTEuNS01LjctNi4xIC45LTMzLjQgMy04NC0uMi0yMTIuN2wwLTMuMmMtOS43LS40LTE2LjQtMS0xNy4zLTEuOC0yLjktMi45IDM0LjUtMzguNyAzOC41LTM4LjdzNDEuMiAzNS44IDM4LjMgMzguN2MtLjkgLjktNy45IDEuNS0xNi44IDEuOGwwIDMuMmMtMi40IDI1LjgtMiA3OS42LTIuNiAxMDUuNGw4MC4zIDBjMC00LjYgLjQtMzQuNy0xLjItODMuNi0uMS0zLjQgMS01LjIgNC4yLTUuMiAxMS4xLS4xIDIyLjItLjEgMzMuMi0uMSAzLjUgMCA0LjYgMS43IDQuNSA1LjQtMy43IDE5MS4zLS43IDE3Ny45LS43IDIxMC4zIDguOSAuNCAxNi44IDEgMTcuNyAxLjggMi45IDIuOS0zMy42IDM4LjctMzcuNiAzOC43bDAgMHoiXX0sdmRlPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6InNreWF0bGFzIixpY29uOls2NDAsNTEyLFtdLCJmMjE2IiwiTTY0MCAzMjkuM2MwIDY1LjktNTIuNSAxMTQuNC0xMTcuNSAxMTQuNC0xNjUuOSAwLTE5Ni42LTI0OS43LTM1OS43LTI0OS43LTE0Ni45IDAtMTQ3LjEgMjEyLjIgNS42IDIxMi4yIDQyLjUgMCA5MC45LTE3LjggMTI1LjMtNDIuNSA1LjYtNC4xIDE2LjktMTYuMyAyMi44LTE2LjNzMTAuOSA1IDEwLjkgMTAuOWMwIDcuOC0xMy4xIDE5LjEtMTguNyAyNC4xLTQwLjkgMzUuNi0xMDAuMyA2MS4yLTE1NC43IDYxLjItODMuNCAuMS0xNTQtNTktMTU0LTE0NC45UzY3LjUgMTQ5LjYgMTUyLjggMTQ5LjZjMTg1LjMgMCAyMjIuNSAyNDUuOSAzNjEuOSAyNDUuOSA5OS45IDAgOTQuOC0xMzkuNyAzLjQtMTM5LjctMTcuNSAwLTM1IDExLjYtNDYuOSAxMS42LTguNCAwLTE1LjktNy4yLTE1LjktMTUuNiAwLTExLjYgNS4zLTIzLjcgNS4zLTM2LjMgMC02Ni42LTUwLjktMTE0LjctMTE2LjktMTE0LjctNTMuMSAwLTgwIDM2LjktODguOCAzNi45LTYuMiAwLTExLjItNS0xMS4yLTExLjIgMC01LjYgNC4xLTEwLjMgNy44LTE0LjQgMjUuMy0yOC44IDY0LjctNDMuNyAxMDIuOC00My43IDc5LjQgMCAxMzkuMSA1OC40IDEzOS4xIDEzNy44IDAgNi45LS4zIDEzLjctMS4yIDIwLjYgMTEuOS0zLjEgMjQuMS00LjcgMzUuOS00LjcgNjAuNyAwIDExMS45IDQ1LjMgMTExLjkgMTA3LjJ6Il19LHlkZT17cHJlZml4OiJmYWIiLGljb25OYW1lOiJkZXNrcHJvIixpY29uOls0NDgsNTEyLFtdLCJmMzhmIiwiTTEyMiA0MDYuMmw4NCAwYzIzLjEgMCA0My45LTMuNSA2Mi42LTEwLjcgMTguNy03LjEgMzQuNy0xNy4xIDQ4LTMwLjEgMTMuMy0xMy40IDIzLjYtMjkuMiAzMC43LTQ3LjUgMy45LTkuNiA2LjgtMTkuOCA4LjYtMzAuNmw3My43IDBjLTIuNSAyMS4zLTcuNyA0MS4zLTE1LjUgNjAtMTEuMSAyNy4yLTI2LjkgNTAuOC00Ny4zIDcwLjktMjAgMTkuNi00NC4yIDM0LjgtNzIuNiA0NS40cy02MCAxNi05NC43IDE2bC0xNDkuOCAuMiAwLTE5Mi40IDcyLjMtLjIgMCAxMTguOHpNMTk5LjQgMzJjMzQuNyAwIDY2LjIgNS40IDk0LjcgMTYgMjguNSAxMC43IDUyLjkgMjYuMSA3My4zIDQ2LjIgMjAuNCAxOS42IDM2LjIgNDMuMiA0Ny4zIDcwLjkgNy41IDE4LjMgMTIuNCAzOC4xIDE0LjkgNTkuM2wtNzMuNy0uMWMtMS45LTEwLjUtNC43LTIwLjUtOC42LTI5LjktNy4xLTE4LjctMTcuMy0zNC41LTMwLjctNDcuNS0xMy4zLTEzLjQtMjkuMy0yMy42LTQ4LTMwLjgtMTguNi03LjEtMzkuNS0xMC43LTYyLjctMTAuN2wtODQgMCAwIDExOC44LTcyLjIgLjIgMC0xOTIuMyAxNDkuNy0uMXoiXX0seGRlPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6InJlc29sdmluZyIsaWNvbjpbNTEyLDUxMixbXSwiZjNlNyIsIk0yODkuMiAyNzguMmM0Ni0xMy4zIDQ5LjYtMjMuNSA0NC00My40TDMyMiAxOTUuNWMtNi4xLTIwLjktMTguNC0yOC4xLTcxLjEtMTIuOGwtMTg4LjIgNTQuMSAyOC42IDk4LjYgMTk3LjktNTcuMnpNMjU2LjUgOEMxMzkuNCA4IDQxLjIgODguNyAxNS4yIDE5Ny41bDIyMS45LTYzLjljMzQuOC0xMC4yIDU0LjItMTEuNyA3OS4zLTguMiAzNi4zIDYuMSA1Mi43IDI1IDYxLjQgNTUuMmwxMC43IDM3LjhjOC4yIDI4LjEgMSA1MC42LTIzLjUgNzMuNi0xOS40IDE3LjQtMzEuMiAyNC41LTYxLjQgMzMuMmwtOTIuNiAyNi42IDIyMC40IDI3LjEgOS43IDM0LjItNDguMSAxMy4zLTI4Ni44LTM3LjMgMjMgODAuMkMxNjYgNDkxLjMgMjA5LjUgNTA0IDI1NS41IDUwNCAzOTIuNSA1MDQgNTA0IDM5Mi42IDUwNCAyNTUuNyA1MDUgMTE5LjQgMzkzLjUgOCAyNTYuNSA4ek00Ni4zIDM4OC42TDggMjU2LjhjMCA0OC41IDE0LjMgOTMuNCAzOC4zIDEzMS44eiJdfSx3ZGU9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiYmxhY2tiZXJyeSIsaWNvbjpbNTEyLDUxMixbXSwiZjM3YiIsIk0xNjYgMTE2LjljMCAyMy40LTE2LjQgNDkuMS03Mi41IDQ5LjFsLTcwLjEgMCAyMS04OC44IDY3LjggMGM0Mi4xIDAgNTMuOCAyMy4zIDUzLjggMzkuN3pNMjkyLjIgNzcuMmwtNjcuOCAwLTE4LjcgODguOCA3MC4xIDBjNTMuOCAwIDcwLjEtMjUuNyA3MC4xLTQ5LjEgLjEtMTYuNC0xMS42LTM5LjctNTMuNy0zOS43ek04OC44IDIwOC4xbC02Ny44IDAtMjEgODguOCA3MC4xIDBjNTYuMSAwIDcyLjUtMjMuNCA3Mi41LTQ5LjEgMC0xNi4zLTExLjctMzkuNy01My44LTM5Ljd6bTE4MC4xIDBsLTY3LjggMC0xOC43IDg4LjggNzAuMSAwYzUzLjggMCA3MC4xLTIzLjQgNzAuMS00OS4xIDAtMTYuMy0xMS43LTM5LjctNTMuNy0zOS43em0xODkuMy01My44bC02Ny44IDAtMTguNyA4OC44IDcwLjEgMGM1My44IDAgNzAuMS0yMy40IDcwLjEtNDkuMSAuMS0xNi4zLTExLjYtMzkuNy01My43LTM5Ljd6bS0yOCAxMzcuOWwtNjcuOCAwLTE4LjcgODguOCA3MC4xIDBjNTYuMSAwIDcwLjEtMjMuNCA3MC4xLTQ5LjEgMC0xNi4zLTExLjYtMzkuNy01My43LTM5Ljd6TTI0MC44IDM0NmwtNjcuOCAwLTE4LjcgODguOCA3MC4xIDBjNTYuMSAwIDcwLjEtMjUuNyA3MC4xLTQ5LjEgLjEtMTYuMy0xMS42LTM5LjctNTMuNy0zOS43eiJdfSxNZGU9e3ByZWZpeDoiZmFiIixpY29uTmFtZToic3RyaXBlLXMiLGljb246WzM4NCw1MTIsW10sImY0MmEiLCJNMTU1LjYgMTU0LjZjMC0yMi4zIDE4LjYtMzAuOSA0OC40LTMwLjkgNDMuNCAwIDk4LjUgMTMuMyAxNDEuOSAzNi43bDAtMTM0LjNjLTQ3LjMtMTguOS05NC41LTI2LjEtMTQxLjgtMjYuMS0xMTUuNyAwLTE5Mi44IDYwLjQtMTkyLjggMTYxLjQgMCAxNTcuOSAyMTYuOCAxMzIuMyAyMTYuOCAyMDAuNCAwIDI2LjQtMjIuOSAzNC45LTU0LjcgMzQuOS00Ny4yIDAtMTA4LjItMTkuNS0xNTYuMS00NS41bDAgMTI4LjVjNDkuMyAyMS4zIDEwMi4zIDMyLjMgMTU2IDMyLjQgMTE4LjYgMCAyMDAuMy01MSAyMDAuMy0xNTMuNiAwLTE3MC4yLTIxOC0xMzkuNy0yMTgtMjAzLjl6Il19LGNFPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6InNxdWFyZS1iZWhhbmNlIixpY29uOls0NDgsNTEyLFsiYmVoYW5jZS1zcXVhcmUiXSwiZjFiNSIsIk0xNTUuMyAzMTguNGMxNy4yIDAgMzEuMi02LjEgMzEuMi0yNS40IDAtMTkuNy0xMS43LTI3LjQtMzAuMy0yNy41bC00NiAwIDAgNTIuOSA0NS4xIDB6bS01LjQtMTI5LjZsLTM5LjYgMCAwIDQ0LjggNDIuNyAwYzE1LjEgMCAyNS44LTYuNiAyNS44LTIyLjkgMC0xNy43LTEzLjctMjEuOS0yOC45LTIxLjl6bTEyOS41IDc0LjhsNjIuMiAwYy0xLjctMTguNS0xMS4zLTI5LjctMzAuNS0yOS43LTE4LjMgMC0zMC41IDExLjQtMzEuNyAyOS43ek0zODQgMzJMNjQgMzJDMjguNyAzMiAwIDYwLjcgMCA5NkwwIDQxNmMwIDM1LjMgMjguNyA2NCA2NCA2NGwzMjAgMGMzNS4zIDAgNjQtMjguNyA2NC02NGwwLTMyMGMwLTM1LjMtMjguNy02NC02NC02NHpNMzQ5LjUgMTg1bC03Ny44IDAgMC0xOC45IDc3LjggMCAwIDE4Ljl6TTE5My43IDI0My43YzIzLjYgNi43IDM1IDI3LjUgMzUgNTEuNiAwIDM5LTMyLjcgNTUuNy02Ny42IDU1LjlsLTkzLjEgMCAwLTE5MiA5MC41IDBjMzIuOSAwIDYxLjQgOS4zIDYxLjQgNDcuNSAwIDE5LjMtOSAyOC44LTI2LjIgMzd6bTExOC43LTM4LjZjNDMuNSAwIDY3LjYgMzQuMyA2Ny42IDc1LjQgMCAxLjYtLjEgMy4zLS4yIDUgMCAuOC0uMSAxLjUtLjEgMi4ybC0xMDAuMiAwYzAgMjIuMiAxMS43IDM1LjMgMzQuMSAzNS4zIDExLjYgMCAyNi41LTYuMiAzMC4yLTE4LjFsMzMuNyAwYy0xMC40IDMxLjktMzEuOSA0Ni44LTY1LjEgNDYuOC00My44IDAtNzEuMS0yOS43LTcxLjEtNzMgMC00MS44IDI4LjctNzMuNiA3MS4xLTczLjZ6Il19LHpkZT1jRSxrZGU9e3ByZWZpeDoiZmFiIixpY29uTmFtZToic2VydmljZXN0YWNrIixpY29uOls1MTIsNTEyLFtdLCJmM2VjIiwiTTk2IDIxNmM4MS43IDEwLjIgMjczLjcgMTAyLjMgMzA0IDIzMkw4IDQ0OGM5OS41LTguMSAxODQuNS0xMzcgODgtMjMyek0xMjggNjRjMzIuMyAzNS42IDQ3LjcgODMuOSA0Ni40IDEzMy42IDgyLjkgMzMuNyAyMDcuMyAxMjMuNyAyMzMuNiAyNTAuNGw5NiAwQzQ2My4zIDIzMS45IDIzMC44IDc5LjUgMTI4IDY0eiJdfSxTZGU9e3ByZWZpeDoiZmFiIixpY29uTmFtZToicm9ja2V0Y2hhdCIsaWNvbjpbNTc2LDUxMixbXSwiZjNlOCIsIk0yODQuNSAyMjQuOGMtNi43IDAtMTMuMyAyLjEtMTguOSA1LjhzLTkuOSA5LjEtMTIuNSAxNS40LTMuMiAxMy4xLTEuOSAxOS43IDQuNiAxMi43IDkuNCAxNy40IDEwLjkgOCAxNy41IDkuMyAxMy41IC42IDE5LjctMiAxMS41LTcgMTUuMy0xMi42IDUuNy0xMi4yIDUuNy0xOC45YzAtOS4xLTMuNy0xNy44LTEwLjEtMjQuMnMtMTUuMS0xMC0yNC4yLTkuOXptLTExMC40IDBjLTYuNyAwLTEzLjMgMi4xLTE4LjkgNS44cy05LjkgOS4xLTEyLjUgMTUuNC0zLjIgMTMuMS0xLjkgMTkuNyA0LjYgMTIuNyA5LjQgMTcuNCAxMC45IDggMTcuNSA5LjMgMTMuNSAuNiAxOS43LTIgMTEuNS03IDE1LjMtMTIuNiA1LjctMTIuMiA1LjctMTguOWMwLTkuMS0zLjctMTcuOC0xMC4xLTI0LjJzLTE1LjEtMTAtMjQuMi0xMGwwIDB6bTIyMC45IDBhMzQuMSAzNC4xIDAgMSAwIC40IDY4LjIgMzQuMSAzNC4xIDAgMSAwIC0uNC02OC4yem0xNTMuOC01NS4zYy0xNS41LTI0LjItMzcuMy00NS42LTY0LjctNjMuNi01Mi45LTM0LjgtMTIyLjQtNTQtMTk1LjctNTQtMjQuMiAwLTQ4LjMgMi4xLTcyIDYuNC0xNC45LTE0LjMtMzEuNS0yNi42LTQ5LjUtMzYuNi02Ni44LTMzLjMtMTI1LjYtMjAuOS0xNTUuMy0xMC4yLTIuMyAuOC00LjMgMi4xLTUuOSAzLjlzLTIuNyAzLjktMy4zIDYuMi0uNSA0LjcgLjEgNy4xIDEuOCA0LjQgMy41IDYuMUMyNyA1Ni41IDYxLjYgOTkuMyA1My4xIDEzOC4zIDIwIDE3Mi4yIDIgMjEzIDIgMjU1LjYgMiAyOTkgMjAgMzM5LjggNTMuMSAzNzMuNyA2MS42IDQxMi43IDI3IDQ1NS42IDYgNDc3LjIgNC4zIDQ3OSAzLjIgNDgxLjEgMi41IDQ4My40cy0uNyA0LjctLjEgNyAxLjcgNC41IDMuMyA2LjIgMy42IDMuMSA1LjkgMy45YzI5LjcgMTAuNyA4OC41IDIzLjEgMTU1LjMtMTAuMiAxOC0xMCAzNC43LTIyLjMgNDkuNS0zNi42IDIzLjggNC4zIDQ3LjkgNi40IDcyIDYuNCA3My4zIDAgMTQyLjgtMTkuMiAxOTUuNy01NCAyNy40LTE4IDQ5LjEtMzkuNCA2NC43LTYzLjYgMTcuMy0yNi45IDI2LjEtNTUuOSAyNi4xLTg2LjEgMC0zMS04LjgtNjAtMjYuMS04Ni45bDAgMHpNMjg1LjQgNDA5LjljLTMwLjIgLjEtNjAuMy0zLjgtODkuNC0xMS41bC0yMC4xIDE5LjRjLTExLjIgMTAuNy0yMy42IDIwLTM3LjEgMjcuNi0xNi40IDguMi0zNC4yIDEzLjMtNTIuNSAxNC45IDEtMS44IDEuOS0zLjYgMi44LTUuNCAyMC4yLTM3LjEgMjUuNi03MC41IDE2LjMtMTAwLjEtMzMtMjYtNTIuOC01OS4yLTUyLjgtOTUuNCAwLTgzLjEgMTA0LjMtMTUwLjUgMjMyLjgtMTUwLjVzMjMyLjkgNjcuNCAyMzIuOSAxNTAuNWMwIDgzLjEtMTA0LjMgMTUwLjUtMjMyLjkgMTUwLjV6Il19LENkZT17cHJlZml4OiJmYWIiLGljb25OYW1lOiJyZWJlbCIsaWNvbjpbNTEyLDUxMixbXSwiZjFkMCIsIk0yNTYuOSA1MDRjLTEzOS4zIDAtMjQ3LjUtMTE2LjItMjQzLjMtMjU0LjEgMi44LTc5LjIgNDMuMi0xNTIuMiAxMTYuNS0yMDAuNCAuMyAwIDEuOS0uNiAxLjEgLjgtNS44IDUuNS0xMTEuMyAxMjkuOC0xNC4xIDIyNi40IDQ5LjggNDkuNSA5MCAyLjUgOTAgMi41IDM4LjUtNTAuMS0uNi0xMjUuOS0uNi0xMjUuOS0xMC0yNC45LTQ1LjctNDAuMS00NS43LTQwLjFsMjguOC0zMS44YzI0LjQgMTAuNSA0My4yIDM4LjcgNDMuMiAzOC43IC44LTI5LjYtMjEuOS02MS40LTIxLjktNjEuNEwyNTUuNSA4IDI5OS44IDU4LjFjLTIwLjUgMjguOC0yMS45IDYyLjYtMjEuOSA2Mi42IDEzLjgtMjMgNDMuNS0zOS4zIDQzLjUtMzkuM2wyOC41IDMxLjhjLTI3LjQgOC45LTQ1LjQgMzkuOS00NS40IDM5LjktMTUuOCAyOC41LTI3LjEgODkuNCAuNiAxMjcuMyAzMi40IDQ0LjYgODcuNy0yLjggODcuNy0yLjggMTAyLjctOTEuOS0xMC41LTIyNS0xMC41LTIyNS02LjEtNS41IC44LTIuOCAuOC0yLjggNTAuMSAzNi41IDExNC42IDg0LjQgMTE2LjIgMjA0LjggMiAxNDUuNi05OS45IDI0OS40LTI0Mi40IDI0OS40eiJdfSxfZGU9e3ByZWZpeDoiZmFiIixpY29uTmFtZToic3F1YXJlLXdlYi1hd2Vzb21lIixpY29uOls0NDgsNTEyLFtdLCJlNjgzIiwiTTY0IDMyQzI4LjcgMzIgMCA2MC43IDAgOTZMMCA0MTZjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMzIwIDBjMzUuMyAwIDY0LTI4LjcgNjQtNjRsMC0zMjBjMC0zNS4zLTI4LjctNjQtNjQtNjRMNjQgMzJ6TTIzNSAxNzcuNmw1MyA0Ni40IDUyLjItMTAuNGMtMi42LTMuOS00LjItOC41LTQuMi0xMy42IDAtMTMuMyAxMC43LTI0IDI0LTI0czI0IDEwLjcgMjQgMjRjMCAxMy0xMC4zIDIzLjYtMjMuMiAyNEwzMDQuNSAzNDkuMWMtNS4yIDExLjUtMTYuNiAxOC45LTI5LjIgMTguOWwtMTAyLjYgMGMtMTIuNiAwLTI0LTcuNC0yOS4yLTE4LjlMODcuMiAyMjRjLTEyLjktLjQtMjMuMi0xMS0yMy4yLTI0IDAtMTMuMyAxMC43LTI0IDI0LTI0czI0IDEwLjcgMjQgMjRjMCA1LTEuNSA5LjctNC4yIDEzLjZMMTYwIDIyNCAyMTMuMSAxNzcuNmMtOC45LTQuMS0xNS0xMy4xLTE1LTIzLjYgMC0xNC40IDExLjYtMjYgMjYtMjZzMjYgMTEuNiAyNiAyNmMwIDEwLjUtNi4yIDE5LjUtMTUuMSAyMy42eiJdfSxUZGU9e3ByZWZpeDoiZmFiIixpY29uTmFtZToibGlua3RyZWUiLGljb246WzQ0OCw1MTIsW10sImU3ZDgiLCJNMTYgMTczLjRsMTI1LjggMC04OS40LTg1LjQgNDkuNS01MSA4NS4yIDg3LjggMC0xMjQuOCA3My45IDAgMCAxMjQuOCA4NS4yLTg3LjYgNDkuNCA1MC44LTg5LjQgODUuMiAxMjUuNyAwIDAgNzAuNS0xMjYuNCAwIDkwIDg3LjYtNDkuMyA0OS44LTEyMi4yLTEyMy0xMjIuMiAxMjMtNDkuNS00OS42IDkwLTg3LjYtMTI2LjQgMCAwLTcwLjV6TTE4Ni45IDM0NC44bDczLjkgMCAwIDE2Ny4yLTczLjkgMCAwLTE2Ny4yeiJdfSxMZGU9e3ByZWZpeDoiZmFiIixpY29uTmFtZToic2ltcGx5YnVpbHQiLGljb246WzUxMiw1MTIsW10sImYyMTUiLCJNNDgxLjYgNjRsLTEwNiAwQzM2MS4xIDY0IDM0OSA3NS44IDM0OSA5MC4zbDAgMzkuNi0xODUuMyAwIDAtMzkuNmMwLTE0LjUtMTItMjYuMy0yNi42LTI2LjNsLTEwNiAwQzE2LjUgNjQgNC43IDc1LjggNC43IDkwLjNsMCAzMzEuNGMwIDE0LjUgMTEuOCAyNi4zIDI2LjYgMjYuM2w0NTAuNCAwYzE0LjggMCAyNi42LTExLjggMjYuNi0yNi4zbDAtMzMxLjRjLS4yLTE0LjUtMTItMjYuMy0yNi43LTI2LjN6TTE1MC41IDIyMi43YTY2LjUgNjYuNSAwIDEgMSAtLjMgMTMzLjEgNjYuNSA2Ni41IDAgMSAxIC4zLTEzMy4xem0yMTEuOSAuMWE2Ni41IDY2LjUgMCAxIDEgLjMgMTMyLjkgNjYuNSA2Ni41IDAgMSAxIC0uMy0xMzIuOXoiXX0sJGRlPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6InN0dWJiZXIiLGljb246WzQ0OCw1MTIsW10sImU1YzciLCJNMTM2LjUgMjk0LjJsNTguOCAyMi45YzkuMS0zNi44IDI1LjQtNjEuMSA1NS02MS4xIDQ5LjQgMCA3MS40IDYzLjYgMTQyLjQgNjMuNiAxNS42IDAgMzUuOS0yLjggNTUuMy0xMy4zbDAgNjEuN2MwIDYxLjgtNTAuNCAxMTItMTEyLjMgMTEyTDAgNDgwIDQxLjggNDI0IDAgMzY4IDQxLjcgMzEyIDAgMjU2LjEgNDEuOCAyMDAuMSAwIDE0NC4xIDQxLjggODggMCAzMiAzMzUuNyAzMkMzOTcuNiAzMiA0NDggODIuMyA0NDggMTQ0LjFsMCA1MS4zYy05LjIgMzYuMy0yNS45IDYwLjYtNTUgNjAuNi00OS42IDAtNzEuNi02My41LTE0Mi40LTYzLjUtMzUuOSAwLTk1LjIgMTQuNi0xMTQuMSAxMDEuNmwwIC4xeiJdfSxBZGU9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiYXBwZXIiLGljb246WzY0MCw1MTIsW10sImYzNzEiLCJNNDIuMSAyMzkuMWMyMi4yIDAgMjkgMi44IDMzLjUgMTQuNmwuOCAwIDAtMjIuOWMwLTExLjMtNC44LTE1LjQtMTcuOS0xNS40LTExLjMgMC0xNC40IDIuNS0xNS4xIDEyLjhsLTM4LjYgMGMuMy0xMy45IDEuNS0xOS4xIDUuOC0yNC40IDcuMy04LjggMTguOS0xMS44IDQ2LjEtMTEuOCAzMyAwIDQ3LjEgNSA1My45IDE4LjkgMiA0LjMgNCAxNS42IDQgMjMuN2wwIDc2LjMtMzguMyAwIDEuMy0xOS4xLTEgMGMtNS4zIDE1LjYtMTMuNiAyMC40LTM1LjUgMjAuNC0zMC4zIDAtNDEuMS0xMC4xLTQxLjEtMzcuMyAwLTI1LjIgMTIuMy0zNS44IDQyLjEtMzUuOHptMTcuMSA0OC4xYzEzLjEgMCAxNi45LTMgMTYuOS0xMy40IDAtOS4xLTQuMy0xMS42LTE5LjYtMTEuNi0xMy4xIDAtMTcuOSAzLTE3LjkgMTIuMS0uMSAxMC40IDMuNyAxMi45IDIwLjYgMTIuOXpNMTM3IDE5Mi4zbDM4LjMgMC0xLjUgMjAuNiAuOCAwYzkuMS0xNy4xIDE1LjktMjAuOSAzNy41LTIwLjkgMTQuNCAwIDI0LjcgMyAzMS41IDkuMSA5LjggOC42IDEyLjggMjAuNCAxMi44IDQ4LjEgMCAzMC0zIDQzLjEtMTIuMSA1Mi45LTYuOCA3LjMtMTYuNCAxMC4xLTMzLjIgMTAuMS0yMC40IDAtMjkuMi01LjUtMzMuOC0yMS4ybC0uOCAwIDAgNzAuMy0zOS41IDAgMC0xNjl6TTIxNy45IDI1M2MwLTI3LjUtMy4zLTMyLjUtMjAuNy0zMi41LTE2LjkgMC0yMC43IDUtMjAuNyAyOC43IDAgMjggMy41IDMzLjUgMjEuMiAzMy41IDE2LjQgMCAyMC4yLTUuNiAyMC4yLTI5Ljd6bTU3LjktNjAuN2wzOC4zIDAtMS41IDIwLjYgLjggMGM5LjEtMTcuMSAxNS45LTIwLjkgMzcuNS0yMC45IDE0LjQgMCAyNC43IDMgMzEuNSA5LjEgOS44IDguNiAxMi44IDIwLjQgMTIuOCA0OC4xIDAgMzAtMyA0My4xLTEyLjEgNTIuOS02LjggNy4zLTE2LjQgMTAuMS0zMy4zIDEwLjEtMjAuNCAwLTI5LjItNS41LTMzLjgtMjEuMmwtLjggMCAwIDcwLjMtMzkuNSAwIDAtMTY5IC4xIDB6TTM1Ni43IDI1M2MwLTI3LjUtMy4zLTMyLjUtMjAuNy0zMi41LTE2LjkgMC0yMC43IDUtMjAuNyAyOC43IDAgMjggMy41IDMzLjUgMjEuMiAzMy41IDE2LjQgMCAyMC4yLTUuNiAyMC4yLTI5Ljd6bTUzLjgtMy44YzAtMjUuNCAzLjMtMzcuOCAxMi4zLTQ1LjggOC44LTguMSAyMi4yLTExLjMgNDUuMS0xMS4zIDQyLjggMCA1NS43IDEyLjggNTUuNyA1NS43bDAgMTEuMS03NS4zIDBjLS4zIDItLjMgNC0uMyA0LjggMCAxNi45IDQuNSAyMS45IDIwLjEgMjEuOSAxMy45IDAgMTcuOS0zIDE3LjktMTMuOWwzNy41IDAgMCAyLjNjMCA5LjgtMi41IDE4LjktNi44IDI0LjctNy4zIDkuOC0xOS42IDEzLjYtNDQuMyAxMy42LTI3LjUgMC00MS42LTMuMy01MC42LTEyLjMtOC41LTguNS0xMS4zLTIxLjMtMTEuMy01MC44em03Ni40LTExLjZjLS4zLTEuOC0uMy0zLjMtLjMtMy44IDAtMTIuMy0zLjMtMTQuNi0xOS42LTE0LjYtMTQuNCAwLTE3LjEgMy0xOC4xIDE1LjFsLS4zIDMuMyAzOC4zIDB6bTU1LjYtNDUuM2wzOC4zIDAtMS44IDE5LjkgLjcgMGM2LjgtMTQuOSAxNC40LTIwLjIgMjkuNy0yMC4yIDEwLjggMCAxOS4xIDMuMyAyMy40IDkuMyA1LjMgNy4zIDYuOCAxNC40IDYuOCAzNCAwIDEuNSAwIDUgLjIgOS4zbC0zNSAwYy4zLTEuOCAuMy0zLjMgLjMtNCAwLTE1LjQtMi0xOS40LTEwLjMtMTkuNC02LjMgMC0xMC44IDMuMy0xMy4xIDkuMy0xIDMtMSA0LjMtMSAxMi4zbDAgNjgtMzguMyAwIDAtMTE4LjUgLjEgMHoiXX0sRGRlPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6Imdvb2dsZS1zY2hvbGFyIixpY29uOls1MTIsNTEyLFtdLCJlNjNiIiwiTTM5MC45IDI5OC41czAgLjEgLjEgLjFjOS4yIDE5LjQgMTQuNCA0MS4xIDE0LjQgNjQtLjEgODIuNS02Ni45IDE0OS40LTE0OS40IDE0OS40UzEwNi43IDQ0NS4xIDEwNi43IDM2Mi43YzAtMjIuOSA1LjItNDQuNiAxNC40LTY0IDEuNy0zLjYgMy42LTcuMiA1LjYtMTAuNyA0LjQtNy42IDkuNC0xNC43IDE1LTIxLjMgMjcuNC0zMi42IDY4LjUtNTMuMyAxMTQuNC01My4zIDMzLjYgMCA2NC42IDExLjEgODkuNiAyOS45IDkuMSA2LjkgMTcuNCAxNC43IDI0LjggMjMuNSA1LjYgNi42IDEwLjYgMTMuOCAxNSAyMS4zIDIgMy40IDMuOCA3IDUuNSAxMC41bC0uMS0uMXptMjYuNC0xOC44Yy0zMC4xLTU4LjQtOTEtOTguNC0xNjEuMy05OC40cy0xMzEuMiA0MC0xNjEuMyA5OC40bC05NC43LTc3IDI1Ni0yMDIuNyAyNTYgMjAyLjctOTQuNyA3Ny4xIDAtLjF6Il19LEVkZT17cHJlZml4OiJmYWIiLGljb25OYW1lOiJ5YXJuIixpY29uOls1MTIsNTEyLFtdLCJmN2UzIiwiTTQwMS45IDM0NS4yYy0zOSA5LjMtNDguNCAzMi4xLTEwNCA0Ny40IDAgMC0yLjcgNC0xMC40IDUuOC0xMy40IDMuMy02My45IDYtNjguNSA2LjEtMTIuNCAuMS0xOS45LTMuMi0yMi04LjItNi40LTE1LjMgOS4yLTIyIDkuMi0yMi04LjEtNS05LTkuOS05LjgtOC4xLTIuNCA1LjgtMy42IDIwLjEtMTAuMSAyNi41LTguOCA4LjktMjUuNSA1LjktMzUuMyAuOC0xMC44LTUuNyAuOC0xOS4yIC44LTE5LjJzLTUuOCAzLjQtMTAuNS0zLjZjLTYtOS4zLTE3LjEtMzcuMyAxMS41LTYyLTEuMy0xMC4xLTQuNi01My43IDQwLjYtODUuNiAwIDAtMjAuNi0yMi44LTEyLjktNDMuMyA1LTEzLjQgNy0xMy4zIDguNi0xMy45IDUuNy0yLjIgMTEuMy00LjYgMTUuNC05LjEgMjAuNi0yMi4yIDQ2LjgtMTggNDYuOC0xOHMxMi40LTM3LjggMjMuOS0zMC40YzMuNSAyLjMgMTYuMyAzMC42IDE2LjMgMzAuNnMxMy42LTcuOSAxNS4xLTVjOC4yIDE2IDkuMiA0Ni41IDUuNiA2NS4xLTYuMSAzMC42LTIxLjQgNDcuMS0yNy42IDU3LjUtMS40IDIuNCAxNi41IDEwIDI3LjggNDEuMyAxMC40IDI4LjYgMS4xIDUyLjcgMi44IDU1LjMgLjggMS40IDEzLjcgLjggMzYuNC0xMy4yIDEyLjgtNy45IDI4LjEtMTYuOSA0NS40LTE3IDE2LjctLjUgMTcuNiAxOS4yIDQuOSAyMi4yek04IDI1NmEyNDggMjQ4IDAgMSAxIDQ5NiAwIDI0OCAyNDggMCAxIDEgLTQ5NiAwem00MTYuNyA3NS4yYy0xLjctMTMuNi0xMy4yLTIzLTI4LTIyLjgtMjIgLjMtNDAuNSAxMS43LTUyLjggMTkuMi00LjggMy04LjkgNS4yLTEyLjQgNi44IDMuMS00NC41LTIyLjUtNzMuMS0yOC43LTc5LjQgNy44LTExLjMgMTguNC0yNy44IDIzLjQtNTMuMiA0LjMtMjEuNyAzLTU1LjUtNi45LTc0LjUtMS42LTMuMS03LjQtMTEuMi0yMS03LjQtOS43LTIwLTEzLTIyLjEtMTUuNi0yMy44LTEuMS0uNy0yMy42LTE2LjQtNDEuNCAyOC0xMi4yIC45LTMxLjMgNS4zLTQ3LjUgMjIuOC0yIDIuMi01LjkgMy44LTEwLjEgNS40bC4xIDBjLTguNCAzLTEyLjMgOS45LTE2LjkgMjIuMy02LjUgMTcuNCAuMiAzNC42IDYuOCA0NS43LTE3LjggMTUuOS0zNyAzOS44LTM1LjcgODIuNS0zNCAzNi0xMS44IDczLTUuNiA3OS42LTEuNiAxMS4xIDMuNyAxOS40IDEyIDIzLjggMTIuNiA2LjcgMzAuMyA5LjYgNDMuOSAyLjggNC45IDUuMiAxMy44IDEwLjEgMzAgMTAuMSA2LjggMCA1OC0yLjkgNzIuNi02LjUgNi44LTEuNiAxMS41LTQuNSAxNC42LTcuMSA5LjgtMy4xIDM2LjgtMTIuMyA2Mi4yLTI4LjcgMTgtMTEuNyAyNC4yLTE0LjIgMzcuNi0xNy40IDEyLjktMy4yIDIxLTE1LjEgMTkuNC0yOC4yeiJdfSxQZGU9e3ByZWZpeDoiZmFiIixpY29uTmFtZToic3RhY2stb3ZlcmZsb3ciLGljb246WzM4NCw1MTIsW10sImYxNmMiLCJNMjkxIDMxMWwtMTk1LjctNDEuMy04LjIgMzkuMyAxOTUuNyA0MSA4LjItMzl6bTUxLTg3TDE4OC41IDk1LjcgMTYzIDEyNi41IDMxNi41IDI1NC44IDM0MiAyMjR6bS0zMS4yIDM5LjdMMTI5LjUgMTc5IDExMi44IDIxNS41IDI5NCAzMDAgMzEwLjggMjYzLjd6TTI2Mi4zIDMybC0zMiAyNCAxMTkuMyAxNjAuMyAzMi0yNC0xMTkuMy0xNjAuM3ptMjAuNSAzMjhsLTIwMCAwIDAgMzkuNyAyMDAgMCAwLTM5Ljd6bTM5LjcgODBsLTI3OS41IDAgMC0xMjAtNDAgMCAwIDE2MCAzNTkuNSAwIDAtMTYwLTQwIDAgMCAxMjB6Il19LElkZT17cHJlZml4OiJmYWIiLGljb25OYW1lOiJibHVldG9vdGgiLGljb246WzM4NCw1MTIsW10sImYyOTMiLCJNMjYwLjYgMTcxLjFsLTQyLjkgNDIuOS0uMy04NiA0My4yIDQzLjF6TTIxNy40IDM5MC45bDQzLjEtNDMuMS00Mi45LTQyLjktLjIgODZ6TTM4NCAyNTkuNEMzODQgNDY1IDMxMi4xIDUxMiAxOTguOSA1MTJTMCA0NjUgMCAyNTkuNCA4My40IDAgMTk2LjYgMCAzODQgNTMuOSAzODQgMjU5LjR6bS0xNTguNSAwbDc5LjQtODguNi0xMjUuMS0xMzQuMyAwIDE3Ni45LTczLjgtNzMuOC0yNyAyNi45IDkyLjcgOTMtOTIuNyA5MyAyNi45IDI2LjkgNzMuOC03My44IDIuMyAxNzAgMTI3LjQtMTI3LjUtODMuOS04OC43eiJdfSxOZGU9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiY3JlYXRpdmUtY29tbW9ucy1uYy1qcCIsaWNvbjpbNTEyLDUxMixbXSwiZjRlYSIsIk0yNTUuNyA4QzExMS42IDggOCAxMjQuOCA4IDI1NiA4IDM5Mi40IDExOS44IDUwNCAyNTUuNyA1MDQgMzg1LjkgNTA0IDUwNCA0MDMuMiA1MDQgMjU2IDUwNCAxMTcuMiAzOTYuNSA4IDI1NS43IDh6bS42IDQ1MC43Yy0xMTIgMC0yMDMuNi05Mi41LTIwMy42LTIwMi43IDAtMjEuMSAzLTQxLjIgOS02MC4zbDEyNyA1Ni41LTI3LjkgMCAwIDM4LjYgNTguMSAwIDUuNyAxMS44IDAgMTguNy02My44IDAgMCAzOC43IDYzLjggMCAwIDU2IDYxLjcgMCAwLTU2IDY0LjIgMCAwLTM1LjcgODEgMzYuMWMtMS41IDIuMi01Ny4xIDk4LjMtMTc1LjIgOTguM3ptODcuNi0xMzcuM2wtNTcuNiAwIDAtMTguNyAyLjktNS42IDU0LjcgMjQuM3ptNi41LTUxLjRsMC0xNy44LTM4LjYgMCA2My0xMTYtNjUuOCAwLTQzLjQgOTYtMjMtMTAuMi0zOS42LTg1LjctNjUuOCAwIDI3LjMgNTEtODEuOS0zNi41YzI3LjgtNDQuMSA4Mi42LTk4LjEgMTczLjctOTguMSAxMTIuOCAwIDIwMyA5MCAyMDMgMjAzLjQgMCAyMS0yLjcgNDAuNi03LjkgNTlMMzUwLjQgMjcweiJdfSxGZGU9e3ByZWZpeDoiZmFiIixpY29uTmFtZToicmVkZGl0IixpY29uOls1MTIsNTEyLFtdLCJmMWExIiwiTTAgMjU2QzAgMTE0LjYgMTE0LjYgMCAyNTYgMFM1MTIgMTE0LjYgNTEyIDI1NiAzOTcuNCA1MTIgMjU2IDUxMkwzNy4xIDUxMmMtMTMuNyAwLTIwLjUtMTYuNS0xMC45LTI2LjJMNzUgNDM3QzI4LjcgMzkwLjcgMCAzMjYuNyAwIDI1NnpNMzQ5LjYgMTUzLjZjMjMuNiAwIDQyLjctMTkuMSA0Mi43LTQyLjdzLTE5LjEtNDIuNy00Mi43LTQyLjdjLTIwLjYgMC0zNy44IDE0LjYtNDEuOCAzNC0zNC41IDMuNy02MS40IDMzLTYxLjQgNjguNGwwIC4yYy0zNy41IDEuNi03MS44IDEyLjMtOTkgMjkuMS0xMC4xLTcuOC0yMi44LTEyLjUtMzYuNS0xMi41LTMzIDAtNTkuOCAyNi44LTU5LjggNTkuOCAwIDI0IDE0LjEgNDQuNiAzNC40IDU0LjEgMiA2OS40IDc3LjYgMTI1LjIgMTcwLjYgMTI1LjJzMTY4LjctNTUuOSAxNzAuNi0xMjUuM2MyMC4yLTkuNiAzNC4xLTMwLjIgMzQuMS01NCAwLTMzLTI2LjgtNTkuOC01OS44LTU5LjgtMTMuNyAwLTI2LjMgNC42LTM2LjQgMTIuNC0yNy40LTE3LTYyLjEtMjcuNy0xMDAtMjkuMWwwLS4yYzAtMjUuNCAxOC45LTQ2LjUgNDMuNC00OS45IDQuNCAxOC44IDIxLjMgMzIuOCA0MS41IDMyLjhsLjEgLjJ6TTE3Ny4xIDI0Ni45YzE2LjcgMCAyOS41IDE3LjYgMjguNSAzOS4zcy0xMy41IDI5LjYtMzAuMyAyOS42LTMxLjQtOC44LTMwLjQtMzAuNSAxNS40LTM4LjMgMzIuMS0zOC4zbC4xLS4xem0xOTAuMSAzOC4zYzEgMjEuNy0xMy43IDMwLjUtMzAuNCAzMC41cy0yOS4zLTcuOS0zMC4zLTI5LjYgMTEuOC0zOS4zIDI4LjUtMzkuMyAzMS4yIDE2LjYgMzIuMSAzOC4zbC4xIC4xem0tNDguMSA1Ni43Yy0xMC4zIDI0LjYtMzQuNiA0MS45LTYzIDQxLjlzLTUyLjctMTcuMy02My00MS45Yy0xLjItMi45IC44LTYuMiAzLjktNi41IDE4LjQtMS45IDM4LjMtMi45IDU5LjEtMi45czQwLjcgMSA1OS4xIDIuOWMzLjEgLjMgNS4xIDMuNiAzLjkgNi41eiJdfSxPZGU9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiY29ubmVjdGRldmVsb3AiLGljb246WzU3Niw1MTIsW10sImYyMGUiLCJNNTUwLjggMjQxbC01MC4xLTg2LjhjMS4xLTIuMSAxLjktNC42IDEuOS03LjIgMC04LTYuNy0xNC43LTE0LjctMTVMNDMyLjQgMzYuMWMuNS0xLjYgMS4xLTMuMiAxLjEtNC44IDAtOC42LTctMTUuMy0xNS4zLTE1LjMtNC44IDAtOC44IDIuMS0xMS44IDUuNmwtMTA2LjYgMGMtMi43LTMuNS02LjctNS42LTExLjUtNS42cy04LjggMi4xLTExLjUgNS42bC0xMDYuMSAwYy0yLjktMy41LTctNS42LTExLjgtNS42LTguMyAwLTE1LjMgNi43LTE1LjMgMTUuMyAwIDEuNiAuNSAzLjUgMS4xIDQuOGwtNTYgOTcuMmMtNS40IDIuNC05LjEgNy41LTkuMSAxMy43IDAgLjUgLjMgMS4xIC4zIDEuNkwyNi42IDI0MC43Yy03LjIgMS4zLTEyLjYgNy41LTEyLjYgMTUgMCA3LjIgNS4xIDEzLjQgMTIuMSAxNWw1NS4yIDk1LjRjLS41IDEuNi0uOCAyLjktLjggNC44IDAgNy4yIDUuMSAxMy40IDEyLjEgMTQuN2w1MS43IDg5LjdjLS41IDEuNi0xLjEgMy41LTEuMSA1LjQgMCA4LjYgNyAxNS4zIDE1LjMgMTUuMyA0LjggMCA4LjgtMi4xIDExLjUtNS40bDEwNi45IDBjMi43IDMuMiA3IDUuNCAxMS41IDUuNHM4LjgtMi4xIDExLjUtNS40bDEwNy4xIDBjMi43IDIuOSA2LjcgNC44IDExIDQuOCA4LjYgMCAxNS4zLTcgMTUuMy0xNS4zIDAtMS42LS4zLTIuOS0uOC00LjNsNTEuNy05MC4zYzctMS4zIDEyLjEtNy41IDEyLjEtMTQuNyAwLTEuNi0uMy0zLjItLjgtNC44bDU0LjktOTUuNGM3LTEuMyAxMi4zLTcuNSAxMi4zLTE1IDAtNy4yLTUuMS0xMy40LTExLjgtMTQuN3ptLTM5NyAyMDkuN2wtNDMuNy03NS44IDQzLjcgMCAwIDc1Ljh6bTAtODMuOGwtNDMuNyAwYy0uMy0xLjEtLjgtMi4xLTEuMy0zLjJsNDUtNDcuNCAwIDUwLjZ6bTAtNjIuNGwtNTAuNCA1My4zYy0xLjMtLjUtMi43LTEuMy00LTEuNkw0My43IDI1OS44Yy41LTEuMyAuNS0yLjcgLjUtNHMwLTIuNC0uMy0zLjVsNTItOTBjMi43LS4zIDUuNC0xLjEgNy44LTIuN2w1MC4xIDUyIDAgOTIuOXptMC0xMDIuM0wxMDggMTU0LjhjMS4zLTIuMSAyLjEtNC44IDIuMS03LjggMC0uMy0uMy0uOC0uMy0xLjFsNDMuOS0xNS44IDAgNzIuMXptMC04MC42bC00My43IDE1LjggNDMuNy03NS41IDAgNTkuN3ptMzI2LjUgMzkuMWwuOCAxLjMtMzUuNCAxNjcuMS02My44LTY3LjIgOTgtMTAxLjUgLjMgLjN6TTI5Mi4xIDM1NS4xbDExLjUgMTEuOC0yMi44IDAgMTEuMy0xMS44em0tLjMtMTEuM2wtODMuMy04NS40IDc5LjYtODQuNCA4MyA4Ny42LTc5LjMgODIuMnptNS40IDUuOWw3OS4zLTgyLjIgNjcuNSA3MS4zLTUuOSAyOC4xLTEyNCAwLTE2LjktMTcuMXpNNDEwLjcgNDQuNGMxLjEgLjUgMi4xIDEuMSAzLjUgMS4zbDU3LjkgMTAwLjcgMCAuNWMwIDIuOSAuOCA1LjYgMi4xIDcuOGwtOTcuNSAxMDEuMi04My04Ny42IDExNy4xLTEyNHptLTkuMS0yLjFsLTExMy42IDEyMC4zLTU3LjEtNjAuMyAxNjYuMy02MCA0LjMgMHptLTEyMy41IDBjMi43IDIuNyA2LjIgNC4zIDEwLjIgNC4zczcuNS0xLjYgMTAuMi00LjNsNzUgMC0xNDguNCA1My42LTUwLjktNTMuNiAxMDMuOSAwek0xNjEuOSA0Ny45bDEuMS0yLjFjLjktLjIgMS44LS41IDIuNy0uOGw1MS4yIDUzLjgtNTQuOSAxOS44IDAtNzAuN3ptMCA3OS4zbDYwLjgtMjIgNTkuNyA2My4yLTc5LjYgODQuMS00MS00Mi4xIDAtODMuM3ptMCA5Mi43bDM2LjQgMzcuOC0zNi40IDM4LjMgMC03Ni4xem0wIDg3LjlsNDIuMS00NC41IDgyLjggODYtMTcuMSAxNy43LTEwNy43IDAgMC01OS4yem03IDE2Mi4xYy0xLjYtMS42LTMuNS0yLjctNS45LTMuNWwtMS4xLTEuNiAwLTg5LjcgOTkuOSAwLTkxLjYgOTQuOC0xLjMgMHptMTI5LjkgMGMtMi43LTIuNC02LjQtNC4zLTEwLjQtNC4zcy03LjggMS45LTEwLjQgNC4zbC05Ni40IDAgOTEuNi05NC44IDM4LjMgMCA5MS42IDk0LjgtMTA0LjIgMHptMTIwLTExLjhsLTQuMyA3LjVjLTEuMyAuMy0yLjQgLjgtMy41IDEuM2wtODkuMi05MS45IDExNC40IDAtMTcuNCA4M3ptMTIuOS0yMi4ybDEyLjktNjAuOCAyMiAwLTM0LjggNjAuOHptMzQuOC02OC44bC0yMC40IDAgNC42LTIxLjIgMTcuMSAxOC4yYy0uNSAuOC0xLjEgMS45LTEuMyAyLjl6bTY2LjItMTA3LjRsLTU1LjQgOTYuN2MtMS4zIC41LTIuNyAxLjEtNCAxLjlsLTIwLjYtMjIgMzQuNi0xNjMuOSA0NS44IDc5LjNjLS4zIDEuMy0uOCAyLjctLjggNC4zIDAgMS4zIC4zIDIuNCAuNSAzLjd6Il19LFJkZT17cHJlZml4OiJmYWIiLGljb25OYW1lOiJyZXNlYXJjaGdhdGUiLGljb246WzQ0OCw1MTIsW10sImY0ZjgiLCJNMCAzMmwwIDQ0OCA0NDggMCAwLTQ0OC00NDggMHpNMjYyLjIgMzY2LjRjLTYuNiAzLTMzLjIgNi01MC0xNC4yLTkuMi0xMC42LTI1LjMtMzMuMy00Mi4yLTYzLjYtOC45IDAtMTQuNyAwLTIxLjQtLjZsMCA0Ni40YzAgMjMuNSA2IDIxLjIgMjUuOCAyMy45bDAgOC4xYy02LjktLjMtMjMuMS0uOC0zNS42LS44LTEzLjEgMC0yNi4xIC42LTMzLjYgLjhsMC04LjFjMTUuNS0yLjkgMjItMS4zIDIyLTIzLjlsMC0xMDkuNGMwLTIyLjYtNi40LTIxLTIyLTIzLjlsMC04LjFjMjUuOCAxIDUzLjEtLjYgNzAuOS0uNiAzMS43IDAgNTUuOSAxNC40IDU1LjkgNDUuNiAwIDIxLjEtMTYuNyA0Mi4yLTM5LjIgNDcuNSAxMy42IDI0LjIgMzAgNDUuNiA0Mi4yIDU4LjkgNy4yIDcuOCAxNy4yIDE0LjcgMjcuMiAxNC43bDAgNy4zem0yMi45LTEzNWMtMjMuMyAwLTMyLjItMTUuNy0zMi4yLTMyLjJsMC0zMi4yYzAtMTIuMiA4LjgtMzAuNCAzNC0zMC40czMwLjQgMTcuOSAzMC40IDE3LjlsLTEwLjcgNy4ycy01LjUtMTIuNS0xOS43LTEyLjVjLTcuOSAwLTE5LjcgNy4zLTE5LjcgMTkuN2wwIDI2LjhjMCAxMy40IDYuNiAyMy4zIDE3LjkgMjMuMyAxNC4xIDAgMjEuNS0xMC45IDIxLjUtMjYuOGwtMTcuOSAwIDAtMTAuNyAzMC40IDBjMCAyMC41IDQuNyA0OS45LTM0IDQ5Ljl6TTE2OC42IDI3Ni4xYy05LjQgMC0xMy42LS4zLTIwLS44bDAtNjkuN2M2LjQtLjYgMTUtLjYgMjIuNS0uNiAyMy4zIDAgMzcuMiAxMi4yIDM3LjIgMzQuNSAwIDIxLjktMTUgMzYuNi0zOS43IDM2LjZ6Il19LEJkZT17cHJlZml4OiJmYWIiLGljb25OYW1lOiJzaWduYWwtbWVzc2VuZ2VyIixpY29uOls1MTIsNTEyLFtdLCJlNjYzIiwiTTI1NiAwYy0xMy4zIDAtMjYuMyAxLTM5LjEgM2wzLjcgMjMuN0MyMzIuMSAyNC45IDI0NCAyNCAyNTYgMjRzMjMuOSAuOSAzNS40IDIuN0wyOTUuMSAzQzI4Mi4zIDEgMjY5LjMgMCAyNTYgMHptNjAuOCA3LjNsLTUuNyAyMy4zYzIzLjQgNS43IDQ1LjQgMTQuOSA2NS40IDI3LjFsMTIuNS0yMC41Yy0yMi4xLTEzLjQtNDYuNC0yMy42LTcyLjItMjkuOXptNzYuNCA2MS42YzE5LjEgMTQgMzYgMzAuOSA1MC4xIDUwLjFsMTkuNC0xNC4yQzQ0NyA4My42IDQyOC40IDY1IDQwNy4zIDQ5LjVMMzkzLjEgNjguOHptODEuNyA1NC4ybC0yMC41IDEyLjVjMTIuMiAyMCAyMS40IDQyIDI3LjEgNjUuNGwyMy4zLTUuN2MtNi4zLTI1LjgtMTYuNS01MC4xLTI5LjktNzIuMnptMTAuNSA5Ny41YzEuOCAxMS41IDIuNyAyMy40IDIuNyAzNS40cy0uOSAyMy45LTIuNyAzNS40bDIzLjcgMy43YzEuOS0xMi43IDMtMjUuOCAzLTM5LjFzLTEtMjYuMy0zLTM5LjFsLTIzLjcgMy43em0tMzEgMTU1LjlsMjAuNSAxMi41YzEzLjQtMjIuMSAyMy42LTQ2LjQgMjkuOS03Mi4ybC0yMy4zLTUuN2MtNS43IDIzLjQtMTQuOSA0NS40LTI3LjEgNjUuNHptOC4yIDMwLjhsLTE5LjQtMTQuMmMtMTQgMTkuMS0zMC45IDM2LTUwLjEgNTAuMWwxNC4yIDE5LjRjMjEuMS0xNS41IDM5LjgtMzQuMSA1NS4yLTU1LjJ6bS04Ni4xIDQ3Yy0yMCAxMi4yLTQyIDIxLjQtNjUuNCAyNy4xbDUuNyAyMy4zYzI1LjgtNi4zIDUwLjEtMTYuNSA3Mi4yLTI5LjlsLTEyLjUtMjAuNXpNMjk1LjEgNTA5bC0zLjctMjMuN0MyNzkuOSA0ODcuMSAyNjggNDg4IDI1NiA0ODhzLTIzLjktLjktMzUuNC0yLjdMMjE2LjkgNTA5YzEyLjcgMS45IDI1LjggMyAzOS4xIDNzMjYuMy0xIDM5LjEtM3ptLTk0LjEtMjcuNmMtMTcuNi00LjMtMzQuNC0xMC42LTUwLjEtMTguNmwtNy44LTQtMzIuOCA3LjcgNS41IDIzLjQgMjQuMy01LjdjMTcuNCA4LjkgMzUuOSAxNS44IDU1LjMgMjAuNWw1LjctMjMuM3pNOTUuNCA0OTQuNkw5MCA0NzEuMyA0OC4zIDQ4MWMtMTAuNCAyLjQtMTkuNy02LjktMTcuMy0xNy4zbDkuNy00MS42LTIzLjQtNS41LTkuNyA0MS42QzEuMiA0ODYgMjYgNTEwLjggNTMuOCA1MDQuNGw0MS42LTkuN3ptLTUwLTkyLjlsNy43LTMyLjgtNC03LjhjLTgtMTUuNy0xNC4zLTMyLjUtMTguNi01MC4xTDcuMyAzMTYuN0MxMiAzMzYuMSAxOC45IDM1NC43IDI3LjcgMzcybC01LjcgMjQuMyAyMy40IDUuNXpNMyAyOTUuMWwyMy43LTMuN0MyNC45IDI3OS45IDI0IDI2OCAyNCAyNTZzLjktMjMuOSAyLjctMzUuNEwzIDIxNi45QzEgMjI5LjcgMCAyNDIuNyAwIDI1NnMxIDI2LjMgMyAzOS4xem0yNy42LTk0LjFjNS43LTIzLjQgMTQuOS00NS40IDI3LjEtNjUuNEwzNy4yIDEyMy4xYy0xMy40IDIyLjEtMjMuNiA0Ni40LTI5LjkgNzIuMmwyMy4zIDUuN3ptMTguOS05Ni4ybDE5LjQgMTQuMmMxNC0xOS4xIDMwLjktMzYgNTAuMS01MC4xTDEwNC43IDQ5LjVDODMuNiA2NSA2NSA4My42IDQ5LjUgMTA0Ljd6bTg2LjEtNDdjMjAtMTIuMiA0Mi0yMS40IDY1LjQtMjcuMUwxOTUuMiA3LjNjLTI1LjggNi4zLTUwLjEgMTYuNS03Mi4yIDI5LjlsMTIuNSAyMC41ek0yNTYgNDY0YzExNC45IDAgMjA4LTkzLjEgMjA4LTIwOFMzNzAuOSA0OCAyNTYgNDggNDggMTQxLjEgNDggMjU2YzAgMzYuNCA5LjQgNzAuNyAyNS44IDEwMC41IDEuNiAyLjkgMi4xIDYuMiAxLjQgOS40bC0yMS42IDkyLjUgOTIuNS0yMS42YzMuMi0uNyA2LjUtLjIgOS40IDEuNCAyOS44IDE2LjUgNjQgMjUuOCAxMDAuNSAyNS44eiJdfSxIZGU9e3ByZWZpeDoiZmFiIixpY29uTmFtZToieGluZyIsaWNvbjpbMzg0LDUxMixbXSwiZjE2OCIsIk0xNjIuNyAyMTBjLTEuOCAzLjMtMjUuMiA0NC40LTcwLjEgMTIzLjUtNC45IDguMy0xMC44IDEyLjUtMTcuNyAxMi41TDkuOCAzNDZjLTcuNyAwLTEyLjEtNy41LTguNS0xNC40bDY5LTEyMS4zYy4yIDAgLjItLjEgMC0uM0wyNi40IDEzNC40Yy00LjMtNy44IC4zLTE0LjEgOC41LTE0LjFsNjUuMSAwYzcuMyAwIDEzLjMgNC4xIDE4IDEyLjJMMTYyLjcgMjEwek0zODIuNiA0Ni4xbC0xNDQgMjUzIDAgLjMgOTEuNiAxNjYuNmMzLjkgNy4xIC4yIDE0LjEtOC41IDE0LjFsLTY1LjIgMGMtNy42IDAtMTMuNi00LTE4LTEyLjJMMTQ2LjEgMjk5LjRjMy4zLTUuOCA1MS41LTkwLjggMTQ0LjgtMjU1LjIgNC42LTguMSAxMC40LTEyLjIgMTcuNS0xMi4ybDY1LjcgMGM4IDAgMTIuMyA2LjcgOC41IDE0LjF6Il19LGRFPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6InNxdWFyZS1qcyIsaWNvbjpbNDQ4LDUxMixbImpzLXNxdWFyZSJdLCJmM2I5IiwiTTQ0OCA5NmMwLTM1LjMtMjguNy02NC02NC02NEw2NCAzMkMyOC43IDMyIDAgNjAuNyAwIDk2TDAgNDE2YzAgMzUuMyAyOC43IDY0IDY0IDY0bDMyMCAwYzM1LjMgMCA2NC0yOC43IDY0LTY0bDAtMzIwek0xODAuOSA0NDQuOWMtMzMuNyAwLTUzLjItMTcuNC02My4yLTM4LjVMMTUyIDM4NS43YzYuNiAxMS43IDEyLjYgMjEuNiAyNy4xIDIxLjYgMTMuOCAwIDIyLjYtNS40IDIyLjYtMjYuNWwwLTE0My4xIDQyLjEgMCAwIDE0My43YzAgNDMuNi0yNS42IDYzLjUtNjIuOSA2My41em04NS44LTQzTDMwMSAzODIuMWM5IDE0LjcgMjAuOCAyNS42IDQxLjUgMjUuNiAxNy40IDAgMjguNi04LjcgMjguNi0yMC44IDAtMTQuNC0xMS40LTE5LjUtMzAuNy0yOGwtMTAuNS00LjVjLTMwLjQtMTIuOS01MC41LTI5LjItNTAuNS02My41IDAtMzEuNiAyNC4xLTU1LjYgNjEuNi01NS42IDI2LjggMCA0NiA5LjMgNTkuOCAzMy43TDM2OCAyOTBjLTcuMi0xMi45LTE1LTE4LTI3LjEtMTgtMTIuMyAwLTIwLjEgNy44LTIwLjEgMTggMCAxMi42IDcuOCAxNy43IDI1LjkgMjUuNmwxMC41IDQuNWMzNS44IDE1LjMgNTUuOSAzMSA1NS45IDY2LjIgMCAzNy44LTI5LjggNTguNi02OS43IDU4LjYtMzkuMSAwLTY0LjQtMTguNi03Ni43LTQzeiJdfSxxZGU9ZEUsVmRlPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImZvbnRpY29ucyIsaWNvbjpbNDQ4LDUxMixbXSwiZjI4MCIsIk0wIDMybDAgNDQ4IDQ0OCAwIDAtNDQ4LTQ0OCAwek0xODcgMTcyLjljLTE4LjQgMC0xOSA5LjktMTkgMjcuNGwwIDIzLjNjMCAyLjQtMy41IDQuNC0uNiA0LjRsNjcuNCAwLTExLjEgMzcuMy01NS43IDAgMCAxMTIuOWMwIDUuOC0yIDYuNyAzLjIgNy4zbDQzLjUgNC4xIDAgMjUuMS0xMzAuNyAwIDAtMjUuNyAyMS4zLTJjNS4yLS42IDYuNy0yLjMgNi43LTcuOWwwLTExMS40YzAtMi4zLTIuOS0yLjMtNS44LTIuM2wtMjIuMiAwIDAtMzcuNCAyOCAwIDAtMjFjMC00OS42IDI2LjUtNzAgNzcuMy03MCAzNC4xIDAgNjQuNyA4LjIgNjQuNyA1Mi44bC01MC43IDYuMWMuMy0xOC43LTQuNC0yMy0xNi4zLTIzem03NC4zIDI0MS44bDAtMjUuMSAyMC40LTIuNmM1LjItLjYgNy42LTEuNyA3LjYtNy4zbDAtMTA3LjljMC00LjEtMi45LTYuNy02LjctNy45bC0yNC4yLTYuNCA2LjctMjkuNSA4MC4yIDAgMCAxNTEuN2MwIDUuOC0yLjYgNi40IDIuOSA3LjNsMTUuNyAyLjYgMCAyNS4xLTEwMi42IDB6bTgwLjgtMjU1LjVsOSAzMy4yLTcuMyA3LjMtMzEuMi0xNi42LTMxLjIgMTYuNi03LjMtNy4zIDktMzMuMi0yMS44LTI0LjIgMy41LTkuNiAyNy43IDAgMTUuNS0yOCA5LjMgMCAxNS41IDI4IDI3LjcgMCAzLjUgOS42LTIxLjkgMjQuMnoiXX0samRlPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6InVwcyIsaWNvbjpbMzg0LDUxMixbXSwiZjdlMCIsIk0xMDMuMiAzMDNjLTUuMiAzLjYtMzIuNiAxMy4xLTMyLjYtMTlsMC0xMDQtMzIuNyAwIDAgMTAyLjZjMCA3NC45IDgwLjIgNTEuMSA5Ny45IDM5bDAtMTQxLjYtMzIuNiAwIDAgMTIzek00IDc0LjhMNCAyOTUuN2MwIDEwMy43IDc0LjkgMTM1LjIgMTg3LjcgMTg0LjEgMTEyLjQtNDguOSAxODcuNy04MC4yIDE4Ny43LTE4NC4xbDAtMjIwLjlDMjYzLjEgMTMuMiA5Ny42IDI1LjIgNCA3NC44ek0zNjIuMSAyOTUuN2MwIDg2LjYtNTMuMiAxMTMuNi0xNzAuNCAxNjUuMy0xMTcuNS01MS44LTE3MC41LTc4LjctMTcwLjUtMTY1LjNsMC0xMjYuNGMxMDIuMy05My44IDIzMS42LTEwMCAzNDAuOS04OS44bDAgMjE2LjJ6TTE1Mi41IDE4OC4zbDAgMjEyLjggMzIuNyAwIDAtNjguN2MyNC40IDcuMyA3MS43LTIuNiA3MS43LTc4LjUgMC05Ny40LTgwLjctODAuOS0xMDQuNC02NS42em0zMi43IDExNy4zbDAtMTAwLjNjOC40LTQuMiAzOC40LTEyLjcgMzguNCA0OS4zIDAgNjcuOS0zNi40IDUxLjgtMzguNCA1MXptNzkuMS04Ni40Yy4xIDQ3LjMgNTEuNiA0Mi41IDUyLjIgNzAuNCAuNiAyMy41LTMwLjQgMjMtNTAuOCA0LjlsMCAzMC4xYzM2LjIgMjEuNSA4MS45IDguMSA4My4yLTMzLjUgMS43LTUxLjUtNTQuMS00Ni42LTUzLjQtNzMuMiAuNi0yMC4zIDMwLjYtMjAuNSA0OC41LTIuMmwwLTI4LjRjLTI4LjUtMjItNzkuOS05LjItNzkuNyAzMS45eiJdfSxVZGU9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiYW1hem9uLXBheSIsaWNvbjpbNjQwLDUxMixbXSwiZjQyYyIsIk0xNCAzMjUuM2MyLjMtNC4yIDUuMi00LjkgOS43LTIuNSAxMC40IDUuNiAyMC42IDExLjQgMzEuMiAxNi43IDQwLjYgMjAuMiA4My4zIDM1LjggMTI3LjQgNDYuMyAyMC44IDUgNDEuOSA5IDYzLjIgMTEuOCAzMS41IDQuMiA2My4yIDYgOTUgNS4yIDE3LjQtLjQgMzQuOC0xLjggNTIuMS0zLjggNTYuMi02LjYgMTExLjEtMjEgMTYzLjMtNDIuOCAyLjktMS4yIDUuOS0yIDkuMS0xLjIgNi43IDEuOCA5IDkgNC4xIDEzLjktMyAyLjctNi4yIDUuMi05LjYgNy40LTMwLjcgMjEuMS02NC4yIDM2LjQtOTkuNiA0Ny45LTI0LjUgNy45LTQ5LjYgMTMuOC03NS4xIDE3LjYtMTcuNiAyLjctMzUuNCA0LjMtNTMuMiA0LjgtLjggMC0xLjcgLjItMi41IC4zbC0yMS4xIDBjLS44LS4xLTEuNy0uMi0yLjUtLjMtMy42LS4yLTcuMi0uMy0xMC43LS40LTE2LjktLjgtMzMuNy0yLjUtNTAuNC01LjMtMjcuNC00LjUtNTQuMy0xMS41LTgwLjQtMjAuOS01My43LTE5LjQtMTAzLjEtNDguOS0xNDUuNi04Ny0xLjgtMS42LTMtMy44LTQuNC01LjdsMC0yek0xNzIgNjUuMWwtNC4zIC42Yy0xMy44IDEuNy0yNi44IDYuOS0zOCAxNS4xLTIuNCAxLjctNC42IDMuNS03LjEgNS40LS4yLS40LS4zLS45LS40LTEuNC0uNC0yLjctLjgtNS41LTEuMy04LjItLjctNC42LTMtNi42LTcuNi02LjZsLTExLjUgMGMtNi45IDAtOC4yIDEuMy04LjIgOC4ybDAgMjA5LjNjMCAxIDAgMiAuMSAzIC4yIDMgMiA0LjkgNC45IDUgNyAuMSAxNC4xIC4xIDIxLjEgMCAyLjkgMCA0LjctMiA1LTUgLjEtMSAuMS0yIC4xLTNsMC03Mi40YzEuMSAuOSAxLjcgMS40IDIuMiAxLjkgMTcuOSAxNC45IDM4LjUgMTkuOCA2MSAxNS40IDIwLjQtNCAzNC42LTE2LjUgNDMuOC0zNC45IDctMTMuOSA5LjktMjguNyAxMC4zLTQ0LjEgLjUtMTcuMS0xLjItMzMuOS04LjEtNDkuOC04LjUtMTkuNi0yMi42LTMyLjUtNDMuOS0zNi45LTMuMi0uNy02LjUtMS05LjgtMS41LTIuOC0uMS01LjUtLjEtOC4zLS4xek0xMjQuNiAxMDdjLS4xLS43IC4xLTEuMyAuNC0xLjlzLjgtMS4xIDEuMy0xLjRjMTMuNy05LjUgMjguOC0xNC41IDQ1LjYtMTMuMiAxNC45IDEuMSAyNy4xIDguNCAzMy41IDI1LjkgMy45IDEwLjcgNC45IDIxLjggNC45IDMzIDAgMTAuNC0uOCAyMC42LTQgMzAuNi02LjggMjEuMy0yMi40IDI5LjQtNDIuNiAyOC41LTE0LS42LTI2LjItNi0zNy40LTEzLjktLjYtLjMtMS0uOC0xLjMtMS40cy0uNC0xLjItLjQtMS45Yy4xLTE0LjEgMC0yOC4xIDAtNDIuMnMuMS0yOCAwLTQyLjF6TTMzMC4zIDY1LjFjLTEgLjEtMiAuMy0yLjkgLjQtOS43IC40LTE5LjQgMS44LTI4LjkgNC4xLTYuMSAxLjYtMTIgMy44LTE3LjkgNS44LTMuNiAxLjItNS40IDMuOC01LjMgNy43IC4xIDMuMy0uMSA2LjYgMCA5LjkgLjEgNC44IDIuMSA2LjEgNi44IDQuOSA3LjgtMiAxNS42LTQuMiAyMy41LTUuNyAxMi4zLTIuMyAyNC43LTMuMyAzNy4yLTEuNCA2LjUgMSAxMi42IDIuOSAxNi44IDguNCAzLjcgNC44IDUuMSAxMC41IDUuMyAxNi40IC4zIDguMyAuMiAxNi42IC4zIDI0LjkgMCAuNS0uMSAuOS0uMiAxLjQtLjUtLjEtLjkgMC0xLjMtLjEtMTAuNS0yLjYtMjEuMi00LjItMzItNC45LTExLjMtLjYtMjIuNSAuMS0zMy4zIDMuOS0xMi45IDQuNS0yMy4zIDEyLjMtMjkuNCAyNC45LTQuNyA5LjgtNS40IDIwLjItMy45IDMwLjcgMiAxNCA5IDI0LjggMjEuNCAzMS43IDExLjkgNi42IDI0LjggNy40IDM3LjkgNS40IDE1LjEtMi4zIDI4LjUtOC43IDQwLjMtMTguNCAuNS0uNCAxLS44IDEuNi0xLjEgLjYgMy44IDEuMSA3LjQgMS44IDExIC42IDMuMSAyLjUgNS4xIDUuNCA1LjIgNS40IC4xIDEwLjkgLjEgMTYuMyAwIDEuMyAwIDIuNS0uNSAzLjQtMS40czEuNC0yLjEgMS41LTMuM2MuMS0uOSAuMS0xLjkgLjEtMi44bDAtMTA2YzAtNC4zLS4zLTguNi0uOS0xMi45LTEuOS0xMi45LTcuNC0yMy41LTE5LTMwLjQtNi43LTQtMTQuMS02LTIxLjgtNy4xLTMuNi0uNS03LjItLjgtMTAuOC0xLjMtMy45IC4xLTcuOSAuMS0xMS45IC4xem0zNSAxMjcuN2MwIC42LS4xIDEuMi0uMyAxLjdzLS43IDEtMS4yIDEuM2MtMTEuMiA4LjEtMjMuNSAxMy41LTM3LjQgMTQuOS01LjcgLjYtMTEuNCAuNC0xNi44LTEuOC0zLTEuMS01LjYtMi45LTcuOC01LjJzLTMuNy01LjEtNC42LTguMWMtMi02LjMtMi0xMy4xLS4xLTE5LjQgMi41LTguMyA4LjQtMTMgMTYuNC0xNS42IDgtMi40IDE2LjUtMy4yIDI0LjgtMi4yIDguNCAuNyAxNi42IDIuMyAyNSAzLjQgMS42IC4yIDIuMSAxIDIuMSAyLjYtLjEgNC44IDAgOS41IDAgMTQuM3MtLjIgOS40LS4xIDE0LjF6TTYyNS4yIDMyMi4yYy0xLTUtNC44LTYuOS05LjEtOC4zLTYuOC0yLjEtMTMuOS0zLjUtMjEtMy45LTEzLjEtMS4xLTI2LjMtLjUtMzkuMiAxLjktMTQuMyAyLjctMjcuOSA3LjMtNDAgMTUuNi0xLjQgLjktMi43IDIuMS0zLjcgMy41LS40IC42LS42IDEuMy0uNyAxLjlzMCAxLjQgLjIgMi4xYy40IDEuNSAyLjEgMS45IDMuNiAxLjggLjcgMCAxLjUgMCAyLjItLjEgNy44LS44IDE1LjUtMS43IDIzLjMtMi41IDExLjQtMS4xIDIyLjktMS44IDM0LjMtLjkgNC45IC40IDkuNyAxLjMgMTQuNCAyLjcgNS4xIDEuNCA3LjQgNS4yIDcuNiAxMC40IC40IDgtMS40IDE1LjctMy41IDIzLjMtNC4xIDE1LjQtMTAgMzAuMy0xNS44IDQ1LjEtLjQgMS0uOCAyLTEgMy0uNSAyLjkgMS4yIDQuOCA0LjEgNC4xIDEuOC0uNCAzLjQtMS4zIDQuOC0yLjUgNC41LTQuMiA4LjgtOC43IDEyLjctMTMuNCAxMi44LTE2LjQgMjAuMy0zNS4zIDI0LjctNTUuNiAuOC0zLjYgMS40LTcuMyAyLjEtMTAuOWwwLTE3LjN6TTQ5My4xIDE5OWMtMTIuOS0zNS43LTI1LjgtNzEuNC0zOC43LTEwNy4yLTItNS43LTQuMi0xMS4zLTYuMy0xNi45LTEuMS0yLjktMy4yLTQuOC02LjQtNC44LTcuNi0uMS0xNS4yLS4yLTIyLjktLjEtMi41IDAtMy43IDItMy4yIDQuNSAuNSAyLjEgMS4xIDQuMSAxLjkgNi4xIDE5LjYgNDguNSAzOS4zIDk3IDU5LjEgMTQ1LjUgMS43IDQuMSAyLjEgNy42IC4yIDExLjgtMy4zIDcuMy01LjkgMTUtOS4zIDIyLjMtMyA2LjUtOCAxMS40LTE1LjIgMTMuMy01IDEuMy0xMC4yIDEuNy0xNS40IDEuMS0yLjUtLjItNS0uOC03LjUtMS0zLjQtLjItNS4xIDEuMy01LjIgNC44LS4xIDMuMy0uMSA2LjYgMCA5LjkgLjEgNS41IDIgOCA3LjQgOC45IDUuNiAxLjEgMTEuMiAxLjggMTYuOSAyIDE3LjEgLjQgMzAuNy02LjUgMzkuNS0yMS40IDMuNS01LjkgNi42LTEyIDkuMi0xOC40IDIzLjctNTkuOCA0Ny4yLTExOS43IDcwLjYtMTc5LjYgLjctMS44IDEuMy0zLjYgMS42LTUuNSAuNC0yLjgtLjktNC40LTMuNy00LjQtNi42LS4xLTEzLjMgMC0xOS45IDAtMS43LS4xLTMuNCAuMy00LjcgMS4zcy0yLjQgMi4zLTMgMy45Yy0uNSAxLjQtMS4xIDIuNy0xLjYgNC4xbC0zNC44IDEwMGMtMi41IDcuMi01LjEgMTQuNS03LjcgMjIuMi0uNC0xLjEtLjYtMS43LS45LTIuNHoiXX0sV2RlPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6InBhbmRvcmEiLGljb246WzM4NCw1MTIsW10sImU3ZGEiLCJNMjAxLjMgMzJMMCAzMiAwIDQ4MCAxMjAuMiA0ODBjMTEuMiAwIDIwLjMtOS4xIDIwLjMtMjAuM2wwLTg2LjEgMzAuMSAwYzE0Ny4xIDAgMjA3LjMtODIuOSAyMDcuMy0xNzkuOSAwLTExOS43LTkwLjktMTYxLjgtMTc2LjUtMTYxLjh6Il19LEdkZT17cHJlZml4OiJmYWIiLGljb25OYW1lOiJvcGVuaWQiLGljb246WzQ0OCw1MTIsW10sImYxOWIiLCJNMjcxLjUgNDMybC02OCAzMkM4OC41IDQ1My43IDAgMzkyLjUgMCAzMTguMiAwIDI0Ni43IDgyLjUgMTg3LjIgMTkxLjcgMTczLjlsMCA0M2MtNzEuNSAxMi41LTEyNCA1My0xMjQgMTAxLjMgMCA1MSA1OC41IDkzLjMgMTM1LjcgMTAzbDAtMzQwIDY4LTMzLjIgMCAzODQgLjEgMHpNNDQ4IDI5MWwtMTMxLjMtMjguNSAzNi44LTIwLjdjLTE5LjUtMTEuNS00My41LTIwLTcwLTI0LjhsMC00M2M0Ni4yIDUuNSA4Ny43IDE5LjUgMTIwLjMgMzkuM2wzNS0xOS44IDkuMiA5Ny41eiJdfSxZZGU9e3ByZWZpeDoiZmFiIixpY29uTmFtZToidnNjbyIsaWNvbjpbNTEyLDUxMixbXSwiZTdkZCIsIk0zNTcuNiAyNTZjMC0yNy4xLTEwLjYtNTIuNS0yOS43LTcxLjdzLTQ0LjYtMjkuNy03MS43LTI5LjdsLS4xIDBjLTI3LjEgMC01Mi42IDEwLjYtNzEuNyAyOS43cy0yOS43IDQ0LjYtMjkuNyA3MS43YzAgMjcuMSAxMC42IDUyLjUgMjkuNyA3MS43IDE5LjIgMTkuMiA0NC42IDI5LjcgNzEuNyAyOS43bC4xIDBjMjcuMSAwIDUyLjYtMTAuNiA3MS43LTI5LjcgMTkuMi0xOS4yIDI5LjctNDQuNiAyOS43LTcxLjd6TTE3Ni4zIDQ4Mi4xYzIzIDguMSA0NyAxMi42IDcxLjYgMTMuNGwwLTU5LjFjLTE3LjEtLjctMzMuNS0zLjgtNDktOC45bC0yMi42IDU0LjZ6bTEzNy01NC42Yy0xNS41IDUuMS0zMiA4LjItNDkgOC45bDAgNTkuMWMyNC42LS44IDQ4LjYtNS4zIDcxLjYtMTMuNGwtMjIuNi01NC42ek05Mi41IDQzMS4yYzIwLjIgMTguOSA0My4zIDM0IDY4LjcgNDVsMjIuNS01NC41Yy0xOC4zLTcuOS0zNS4xLTE4LjgtNDkuOC0zMS45TDkyLjUgNDMxLjJ6bTI4NS45LTQxLjRjLTE0LjYgMTMuMi0zMS40IDI0LTQ5LjggMzEuOWwyMi41IDU0LjVjMjUuNC0xMSA0OC40LTI2LjEgNjguNy00NWwtNDEuNC00MS40ek0xNDUuNCAzNzguMmMxMy42IDEyLjEgMjkgMjEuOSA0NS44IDI5IDE4IDcuNiAzNy4xIDEyIDU2LjcgMTIuOWwwLTQ2LjhjLTI2LjQtMS44LTUwLjMtMTIuMy02OS4xLTI4LjZsLTMzLjQgMzMuNHptMTg4LTMzLjRjLTE4LjggMTYuMy00Mi43IDI2LjgtNjkuMSAyOC42bDAgNDYuOGMxOS42LS45IDM4LjctNS4zIDU2LjctMTIuOSAxNi44LTcuMSAzMi4yLTE2LjkgNDUuOC0yOWwtMzMuNC0zMy40ek0zOC41IDM1Ni42YzEwLjcgMjMuMiAyNSA0NC4zIDQyLjUgNjMuMWw0MS4zLTQxLjNjLTEyLjQtMTMuNC0yMi45LTI4LjYtMzAuOS00NS4yTDM4LjUgMzU2LjZ6bTM4Mi40LTIzLjVjLTggMTYuNi0xOC41IDMxLjktMzAuOSA0NS4ybDQxLjMgNDEuM2MxNy41LTE4LjcgMzEuOC0zOS45IDQyLjUtNjMuMWwtNTIuOS0yMy41em0tMzMxLTY5YzEuMSAxOC44IDUuNCAzNy4yIDEyLjggNTQuNSA3LjUgMTcuOCAxOCAzNCAzMS4yIDQ4LjJsMzMuNS0zMy41Yy0xNi40LTE4LjgtMjYuOS00Mi44LTI4LjctNjkuMmwtNDguOCAwem0yODMuNyAwYy0xLjggMjYuNC0xMi4zIDUwLjQtMjguNyA2OS4ybDMzLjUgMzMuNWMxMy4xLTE0LjIgMjMuNi0zMC40IDMxLjItNDguMiA3LjMtMTcuNCAxMS42LTM1LjcgMTIuNy01NC41bC00OC43IDB6bS0zNTcuMSAwYy45IDI2LjcgNi4xIDUyLjcgMTUuNiA3Ny41TDg1IDMxOC4yYy02LjQtMTctMTAuMy0zNS4xLTExLjMtNTRsLTU3LjEgMHptNDIyLjEgMGMtMSAxOC45LTUgMzcuMS0xMS4zIDU0bDUyLjggMjMuNWM5LjUtMjQuOCAxNC43LTUwLjggMTUuNi03Ny41bC01Ny4xIDB6TTMyLjEgMTcwLjRjLTkuNSAyNC44LTE0LjcgNTAuOC0xNS42IDc3LjVsNTcuMSAwYzEtMTguOSA1LTM3LjEgMTEuMy01NEwzMi4xIDE3MC40em0xMDEuNy0yNS4yYy0xMy4xIDE0LjItMjMuNiAzMC40LTMxLjIgNDguMi03LjMgMTcuNC0xMS42IDM1LjctMTIuOCA1NC41bDQ4LjggMGMxLjgtMjYuNCAxMi4zLTUwLjQgMjguNy02OS4ybC0zMy41LTMzLjV6bTIxMS4xIDMzLjVjMTYuNCAxOC44IDI2LjkgNDIuOCAyOC43IDY5LjJsNDguNyAwYy0xLjEtMTguOC01LjQtMzcuMi0xMi43LTU0LjUtNy41LTE3LjgtMTgtMzQtMzEuMi00OC4ybC0zMy41IDMzLjV6bTgyLjQgMTUuMmM2LjQgMTcgMTAuMyAzNS4xIDExLjMgNTRsNTcuMSAwYy0uOS0yNi43LTYuMS01Mi43LTE1LjYtNzcuNWwtNTIuOCAyMy41ek04MSA5Mi4zQzYzLjQgMTExIDQ5LjIgMTMyLjIgMzguNSAxNTUuNGw1Mi45IDIzLjVjOC0xNi42IDE4LjUtMzEuOSAzMC45LTQ1LjJMODEgOTIuM3ptMzA5IDQxLjNjMTIuNCAxMy40IDIyLjkgMjguNiAzMC45IDQ1LjJsNTIuOS0yMy41Yy0xMC43LTIzLjItMjUtNDQuMy00Mi41LTYzLjFMMzkwIDEzMy43ek0yNDggOTEuOGMtMTkuNiAuOS0zOC43IDUuMy01Ni43IDEyLjktMTYuOCA3LjEtMzIuMiAxNi45LTQ1LjggMjlsMzMuNCAzMy40YzE4LjgtMTYuMyA0Mi43LTI2LjggNjkuMS0yOC42bDAtNDYuN3ptMTYuMyA0Ni43YzI2LjQgMS44IDUwLjMgMTIuMyA2OS4xIDI4LjZsMzMuNC0zMy40Yy0xMy42LTEyLjEtMjktMjEuOS00NS44LTI5LTE4LTcuNi0zNy4xLTEyLTU2LjctMTIuOWwwIDQ2Ljd6TTE2MS4yIDM1LjhjLTI1LjQgMTEtNDguNCAyNi4xLTY4LjcgNDVsNDEuNCA0MS40YzE0LjctMTMuMiAzMS40LTI0IDQ5LjgtMzEuOUwxNjEuMiAzNS44ek0zMjguNiA5MC4zYzE4LjMgNy45IDM1LjEgMTguOCA0OS44IDMxLjlsNDEuNC00MS40Yy0yMC4yLTE4LjktNDMuMy0zNC02OC43LTQ1TDMyOC42IDkwLjN6TTI0OCAxNi40Yy0yNC42IC44LTQ4LjYgNS4zLTcxLjYgMTMuNGwyMi42IDU0LjZjMTUuNS01LjEgMzItOC4yIDQ5LTguOWwwLTU5LjF6bTE2LjMgNTkuMWMxNy4xIC43IDMzLjUgMy44IDQ5IDguOWwyMi42LTU0LjZjLTIzLTguMS00Ny0xMi42LTcxLjYtMTMuNGwwIDU5LjF6TTUxMi4yIDI2NC4ybC0uMiAwQzUwNy44IDM5OSAzOTkuMiA1MDcuNyAyNjQuMyA1MTEuOWwwIC4xLTE2LjMgMCAwLS4xQzExMy4xIDUwNy43IDQuNSAzOTkgLjIgMjY0LjFsLS4yIDAgMC0xNi4zIC4yIDBDNC41IDExMyAxMTMuMSA0LjMgMjQ4IC4xbDAtLjEgMTYuMyAwIDAgLjFDMzk5LjIgNC4zIDUwNy44IDExMyA1MTIgMjQ3LjlsLjIgMCAwIDE2LjN6Il19LFpkZT17cHJlZml4OiJmYWIiLGljb25OYW1lOiJnbG9iYWxlYWtzIixpY29uOls0NDgsNTEyLFtdLCJlODVkIiwiTTQxMS4yIDMyLjJjMjAuMiAwIDM2LjggMTYuNiAzNi44IDM2LjlsMCAzNzMuOGMwIDIwLjItMTYuNiAzNi45LTM2LjggMzYuOWwtOTQuNCAwIDI4LTc5LjRjMy4xLTguOC0xLjYtMTguNy0xMC40LTIxLjgtMS42LS41LTIuNi0xLTQuMi0xcy0zLjYgMC01LjIgLjVjLTUuMiAxLTkuOSA1LjItMTEuOSAxMC45bC02LjIgMTYuNiAwLTY3LjVjMC0xMC45LTcuOC0xOS43LTE4LjItMjEuOGwtNy4yIDBjLS41IDAtMSAwLTEuNiAuNS0uNSAwLTEgLjUtMS42IC41LTIuNiAxLTUuMiAyLjYtNy4yIDQuMWwwLTQuMWMwLTUuNy0yLjYtMTAuNC01LjctMTRsLTEtMWMtMS0xLTIuNi0yLjEtNC4yLTIuNmwwLTI2LjVjMC01LjItNC4xLTkuMy05LjMtOS4zbC0zOS45IDBjLTYuNyAwLTExLjQtNy4zLTguMy0xMy41TDI4My4xIDg0LjFjMTQuNS0zMS4xIDQ1LjYtNTEuNCA4MC40LTUxLjlsNDcuNyAwem0tMTY2IDBjMTcuNiAwIDMwLjEgMTYuMSAyOCAzMi4yLTIuNiAzLjYtNC43IDcuOC02LjIgMTAuOUwxODYuNiAyNDEuNWMtOC44IDE4LjcgNC4yIDQwIDI0LjQgNDBsMzAuNiAwIDAgMTYuMWMtNy44IDMuMS0xMyAxMC45LTEzIDE5LjdsMCAzLjZjLTMuNi0zLjYtOC44LTUuNy0xNC41LTUuNy0xMS45IDAtMjEuOCA5LjktMjEuOCAyMS44bDAgMTkuMi0zLjEgMGMtOS4zIDAtMTcuMSA3LjgtMTcuMSAxNy4xbDAgMTA1LjktOTUuNCAwYy00MiAwLTcyLjYtNDAuNS02MS4yLTgxLjUgMS0zLjEgNC4yLTUuMiA3LjMtNC43bDIxLjIgMGMyNC40IDAgNDQuNi0yMC4yIDQ0LjYtNDUuMmwwLTQuMmMwLTI0LjktMTkuNy00NS4yLTQ0LjYtNDUuMi0uNSAwLTEtLjUtMS0xbDguOC0zMi43YzIuMS02LjItMi42LTExLjktOC44LTExLjlsLTMzLjIgMGMtNi43IDAtMTEuNC03LjMtOC4zLTEzLjVMNzYuNyA4NC43YzE2LjEtMzIuMiA0OC4yLTUyLjQgODQtNTIuNGw4NC41IDB6TTEzMy43IDE0NC40Yy0xMC40IDAtMTguNyA4LjMtMTguNyAxOC43IDAgOS45IDguMyAxOC43IDE4LjcgMTguNyAxMC40IDAgMTguNy04LjMgMTguNy0xOC43cy04LjMtMTguNy0xOC43LTE4Ljd6bTIwMi44IDBhMTguNiAxOC42IDAgMSAwIC0uMiAzNy4yIDE4LjYgMTguNiAwIDEgMCAuMi0zNy4yeiJdfSxYZGU9e3ByZWZpeDoiZmFiIixpY29uTmFtZToidmVubW8iLGljb246WzY0MCw1MTIsW10sImU4NWEiLCJNNjcuOCAyMDIuN2MyLjQgNSAzLjkgMTEgMy45IDE5LjggMCAxNi4yLTExLjUgMzkuOC0yMC43IDU0LjlsLTkuOS03OS43LTQxIDMuOSAxOC44IDExMiA0Ni45IDBjMjAuNS0yNi45IDQ1LjgtNjUuMyA0NS44LTk0LjggMC05LjMtMS45LTE2LjYtNi4zLTIzLjdsLTM3LjQgNy41em0xMTMtNy4xYy00Mi44IDAtNjMuNSAzNy02My41IDcxLjkgMCAyNi45IDEyLjggNDguNSA0OC40IDQ4LjUgMTQgMCAyOC41LTMgMzcuOC03LjVsNS0zMy42Yy0xMy4yIDYuNy0yMy4zIDkuMy0zMy45IDkuMy05LjcgMC0xNy4xLTUuMi0xNy4xLTE4LjMgMjItLjIgNjAtOS4zIDYwLTM4LjggMC0xOC4zLTEzLjItMzEuNS0zNi43LTMxLjVsMCAwem0tMjIuNSA0OC45YzEuMS0xMi45IDExLTIyIDE4LjYtMjIgNC4zIDAgOCAyLjYgOCA3LjcgMCAxMC44LTE5IDE0LjItMjYuNiAxNC4ybDAgMHptMTUwLjItNDguOWMtMTUuMyAwLTI2LjEgNS44LTM0LjMgMTEuMmwtLjQtOS4zLTM0LjggMC0xOC40IDExNi4xIDQwLjIgMCAxMi43LTgxLjRjMy41LTEuNyA4LjYtNC4xIDEzLjgtNC4xIDMuOSAwIDcuMSAxLjMgNy4xIDYuNSAwIDIuMi0uNyA2LS45IDhsLTExLjIgNzEuMSA0MCAwIDEyLjMtNzcuNWMuNy00LjEgMS4zLTEwLjMgMS4zLTE0LjYgMC0xNS41LTcuMS0yNS45LTI3LjQtMjUuOXptMTgzLjIgMGMtMTQuOSAwLTI1LjcgNC41LTM3LjIgMTIuNy00LjEtNy4zLTEyLjMtMTIuNy0yNC44LTEyLjctMTQuNSAwLTI1LjMgNS44LTMzLjMgMTEuNmwtMS4xLTkuNy0zNC40IDAtMTguNCAxMTYuMSA0MC4yIDAgMTIuOC04MS40YzMuNS0xLjcgOC42LTQuMSAxMy44LTQuMSAzLjkgMCA3LjEgMS4zIDcuMSA3LjEgMCAxLjUtLjQgMy45LS42IDUuOGwtMTEuNCA3Mi42IDQwIDAgMTIuNy04MS40YzMuNy0xLjkgOC42LTQuMSAxMy42LTQuMSAzLjkgMCA3LjEgMS4zIDcuMSA3LjEgMCAxLjUtLjQgMy45LS43IDUuOGwtMTEuNCA3Mi42IDQwIDAgMTIuMy03Ny41Yy43LTQuMSAxLjMtMTAuMyAxLjMtMTQuNiAwLTE1LjUtNy4xLTI1LjktMjcuNy0yNS45bDAgMHptMTAyLjIgMGMtNDQuNyAwLTY0LjIgMzQuMy02NC4yIDcwLjkgMCAyNy44IDExLjIgNTAgNDUuMSA1MCA0NS44IDAgNjUtMzcuNSA2NS03My43IDAtMjcuNC0xMi4zLTQ3LjItNDYtNDcuMnptLTEzLjQgOTBjLTcuMSAwLTEwLjEtNi43LTEwLjEtMTcuNSAwLTE0LjIgMy4yLTQyIDE5LTQyIDcuMSAwIDkuNSA2LjUgOS41IDE1LjkgMCAxNC4yLTMuNSA0My41LTE4LjQgNDMuNXoiXX0sS2RlPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6InVidW50dSIsaWNvbjpbNTc2LDUxMixbXSwiZjdkZiIsIk00NjkuMiA3NWMwLTIwLjEtOC0zOS4zLTIyLjItNTMuNXMtMzMuNC0yMi4yLTUzLjUtMjIuMi0zOS4zIDgtNTMuNSAyMi4yLTIyLjIgMzMuNC0yMi4yIDUzLjVjMCAyMC4xIDggMzkuMyAyMi4xIDUzLjVzMzMuNCAyMi4xIDUzLjUgMjIuMSAzOS4zLTggNTMuNS0yMi4xIDIyLjEtMzMuNCAyMi4xLTUzLjVsLjEgMHptLTMxNSAxNjUuN2E3NS42IDc1LjYgMCAxIDAgLTE1MS4yIDAgNzUuNiA3NS42IDAgMSAwIDE1MS4yIDB6TTU3IDM0NmMxOC42IDQ2LjkgNTEgODcgOTMgMTE1LjFzOTEuNSA0Mi42IDE0MiA0MS43Yy0xNC43LTE4LjYtMjIuOS00MS41LTIzLjItNjUuMi02LjgtLjktMTMuMy0yLjEtMTkuNS0zLjQtMjYuOC01LjctNTEuOS0xNy4zLTczLjYtMzRzLTM5LjMtMzguMS01MS43LTYyLjVjLTIwLjkgOS45LTQ0LjUgMTIuOC02Ny4xIDguMmwuMSAuMXptMzk1LjEgODkuOGE3NS42IDc1LjYgMCAxIDAgLTE1MS4yIDAgNzUuNiA3NS42IDAgMSAwIDE1MS4yIDB6TTQ0NCAzNTEuNmMxOC41IDE0LjggMzEuNiAzNS4yIDM3LjIgNTguMiAzMy4zLTQxLjMgNTIuNi05Mi4yIDU0LjgtMTQ1LjJzLTEyLjUtMTA1LjQtNDIuMi0xNDkuNGMtOC42IDIxLjUtMjQgMzkuNi00My44IDUxLjYgMTUuNCAyOC42IDIyLjkgNjAuOCAyMS45IDkzLjJzLTEwLjcgNjQtMjggOTEuNmwuMSAwek0xMDEuMSAxMzUuNGMxMi40IDIuNyAyNC4zIDcuNSAzNS4xIDE0LjMgMTYuNi0yNC4yIDM4LjktNDQuMSA2NC44LTU4UzI1NS44IDcwLjQgMjg1LjIgNzBjLjItNS45IC45LTExLjkgMi0xNy43IDMuNi0xNi43IDExLjEtMzIuMyAyMS44LTQ1LjUtNDcuNy0zLjgtOTUuNCA2LTEzNy42IDI4LjVTOTQuMyA5MS43IDcwLjggMTMzLjRjMi43LS4yIDUuMy0uMyA4LS4zIDcuNSAwIDE1IC44IDIyLjQgMi4zbC0uMSAweiJdfSxRZGU9e3ByZWZpeDoiZmFiIixpY29uTmFtZToidmlhY29pbiIsaWNvbjpbMzg0LDUxMixbXSwiZjIzNyIsIk0zODQgMzJsLTY0IDAtODAuNyAxOTItOTQuNSAwLTgwLjgtMTkyLTY0IDAgNDggMTEyLTQ4IDAgMCA0OCA2OC41IDAgMTMuOCAzMi04Mi4zIDAgMCA0OCAxMDIuOCAwIDg5LjIgMjA4IDg5LjItMjA4IDEwMi44IDAgMC00OC04Mi4zIDAgMTMuOC0zMiA2OC41IDAgMC00OC00OCAwIDQ4LTExMnpNMTkyIDMzNmwtMjctNjQgNTQgMC0yNyA2NHoiXX0sSmRlPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6InpoaWh1IixpY29uOls2NDAsNTEyLFtdLCJmNjNmIiwiTTE3MC41IDE0OC4xbDAgMjE3LjUgMjMuNCAwIDcuNyAyNi40IDQyLTI2LjQgNDkuNSAwIDAtMjE3LjUtMTIyLjcgMHptOTcuOCAxOTMuOWwtMjcuOSAwLTI3LjkgMTcuNS01LjEtMTcuNS0xMS45IDAgMC0xNzAuMyA3Mi44IDAgMCAxNzAuM3pNMTQ5LjggMjQ3LjdsLTUyLjMgMGMxLjctMjcuMSAyLjItNTEuNiAyLjItNzMuNWw1MS4yIDBzMi0yMi42LTguNi0yMi4zbC04OC41IDBjMy41LTEzLjEgNy45LTI2LjcgMTMuMS00MC43IDAgMC0yNC4xIDAtMzIuMyAyMS42LTMuNCA4LjktMTMuMiA0My4xLTMwLjcgNzguMSA1LjktLjYgMjUuNC0xLjIgMzYuOC0yMi4yIDIuMS01LjkgMi41LTYuNyA1LjEtMTQuNWwyOC45IDBjMCAxMC41LTEuMiA2Ni45LTEuNyA3My40bC01Mi4zIDBjLTExLjcgMC0xNS42IDIzLjYtMTUuNiAyMy42bDY1LjYgMGMtNC40IDQ5LjktMjggOTEuOS03MC44IDEyNS4xIDIwLjUgNS45IDQwLjktLjkgNTEtOS45IDAgMCAyMy0yMC45IDM1LjYtNjkuM2w1NCA2NC45czcuOS0yNi45LTEuMi00MGMtNy42LTguOS0yOC4xLTMzLjEtMzYuOC00MS44TDg3LjkgMzEyYzQuNC0xNCA3LTI3LjYgNy45LTQwLjdsNjEuNiAwcy0uMS0yMy42LTcuNi0yMy42bDAgMHptNDEyLTEuNmMyMC44LTI1LjYgNDUtNTguNiA0NS01OC42cy0xOC42LTE0LjgtMjcuNC00LjFjLTYgOC4yLTM2LjggNDguMi0zNi44IDQ4LjJsMTkuMiAxNC40ek00MTEuOCAxODdjLTktOC4yLTI1LjkgMi4xLTI1LjkgMi4xczM5LjUgNTUgNDEuMSA1Ny40bDE5LjUtMTMuN3MtMjUuNy0zNy42LTM0LjctNDUuOWwwIDAgMCAwek02NDAgMjU4LjRjLTE5LjggMC0xMzAuOSAuOS0xMzEuMSAuOWwwLTEwMWM0LjggMCAxMi40LS40IDIyLjgtMS4yIDQwLjktMi40IDcwLjEtNCA4Ny44LTQuOCAwIDAgMTIuMi0yNy4yLS42LTMzLjQtMy4xLTEuMi0yMy4yIDQuNi0yMy4yIDQuNnMtMTY1LjIgMTYuNS0yMzIuNCAxOGMxLjYgOC44IDcuNiAxNy4xIDE1LjggMTkuNiAxMy4zIDMuNSAyMi43IDEuNyA0OS4yIC45IDI0LjgtMS42IDQzLjctMi40IDU2LjUtMi40bDAgOTkuOC0xMzMuNSAwczIuOCAyMi4zIDI1LjUgMjIuOWwxMDcuOSAwIDAgNzAuOWMwIDE0LTExLjIgMjItMjQuNSAyMS4xLTE0LjEgLjEtMjYuMS0xLjEtNDEuNy0xLjggMiA0IDYuMyAxNC40IDE5LjMgMjEuOCA5LjkgNC44IDE2LjIgNi42IDI2IDYuNiAyOS42IDAgNDUuNy0xNy4zIDQ0LjktNDUuM2wwLTczLjMgMTIyLjQgMGM5LjcgMCA4LjctMjMuOCA4LjctMjMuOGwwIDB6Il19LGU3ZT17cHJlZml4OiJmYWIiLGljb25OYW1lOiJ5YW5kZXgiLGljb246WzI1Niw1MTIsW10sImY0MTMiLCJNMTUzLjEgMzE1LjhMNjUuNyA1MTIgMiA1MTIgOTggMzAyLjJDNTIuOSAyNzkuMyAyMi44IDIzNy44IDIyLjggMTYxLjEgMjIuNyA1My43IDkwLjggMCAxNzEuNyAwbDgyLjMgMCAwIDUxMi01NS4xIDAgMC0xOTYuMi00NS44IDB6TTE5OC45IDQ2LjVsLTI5LjQgMGMtNDQuNCAwLTg3LjQgMjkuNC04Ny40IDExNC42IDAgODIuMyAzOS40IDEwOC44IDg3LjQgMTA4LjhsMjkuNCAwIDAtMjIzLjR6Il19LHQ3ZT17cHJlZml4OiJmYWIiLGljb25OYW1lOiJwaXhpdiIsaWNvbjpbNDQ4LDUxMixbXSwiZTY0MCIsIk05NiAzMkM0MyAzMiAwIDc1IDAgMTI4TDAgMzg0YzAgNTMgNDMgOTYgOTYgOTZsMjU2IDBjNTMgMCA5Ni00MyA5Ni05NmwwLTI1NmMwLTUzLTQzLTk2LTk2LTk2TDk2IDMyem03Ny43IDIxNy4zYTYwLjEgNjAuMSAwIDEgMCAxMjAuMyAwIDYwLjEgNjAuMSAwIDEgMCAtMTIwLjMgMHpNMTE5LjEgMzg3LjhjLS4zLS44LS41LTEuNy0uNS0yLjZsMC0yNDQuM2MwLTEuOCAuNy0zLjYgMi00LjlzMy0yIDQuOS0ybDE2LjkgMGMxLjIgMCAyLjMgLjMgMy4zIC44czEuOSAxLjMgMi41IDIuM2wxNCAyMS44YzE5LjctMTUuNiA0NC41LTI1IDcxLjYtMjUgNjMuNiAwIDExNS4yIDUxLjYgMTE1LjIgMTE1LjJTMjk3LjUgMzY0LjUgMjMzLjggMzY0LjVjLTIyIDAtNDIuNi02LjItNjAuMS0xNi45bDAgMzcuNmMwIC45LS4yIDEuOC0uNSAyLjZzLS45IDEuNi0xLjUgMi4yLTEuNCAxLjEtMi4yIDEuNS0xLjcgLjUtMi42IC41bC00MS4zIDBjLS45IDAtMS44LS4yLTIuNi0uNXMtMS42LS45LTIuMi0xLjUtMS4xLTEuNC0xLjUtMi4yeiJdfSxhN2U9e3ByZWZpeDoiZmFiIixpY29uTmFtZToib3BlbmFpIixpY29uOls1MTIsNTEyLFtdLCJlN2NmIiwiTTE5Ni40IDE4NS44bDAtNDguNmMwLTQuMSAxLjUtNy4yIDUuMS05LjJsOTcuOC01Ni4zYzEzLjMtNy43IDI5LjItMTEuMyA0NS42LTExLjMgNjEuNCAwIDEwMC40IDQ3LjYgMTAwLjQgOTguMyAwIDMuNiAwIDcuNy0uNSAxMS44TDM0My4zIDExMS4xYy02LjEtMy42LTEyLjMtMy42LTE4LjQgMEwxOTYuNCAxODUuOHpNNDI0LjcgMzc1LjJsMC0xMTYuMmMwLTcuMi0zLjEtMTIuMy05LjItMTUuOUwyODcgMTY4LjQgMzI5IDE0NC4zYzMuNi0yIDYuNy0yIDEwLjIgMEw0MzcgMjAwLjdjMjguMiAxNi40IDQ3LjEgNTEuMiA0Ny4xIDg1IDAgMzguOS0yMyA3NC44LTU5LjQgODkuNmwwIDB6TTE2Ni4yIDI3Mi44bC00Mi0yNC42Yy0zLjYtMi01LjEtNS4xLTUuMS05LjJsMC0xMTIuNmMwLTU0LjggNDItOTYuMyA5OC44LTk2LjMgMjEuNSAwIDQxLjUgNy4yIDU4LjQgMjBMMTc1LjQgMTA4LjVjLTYuMSAzLjYtOS4yIDguNy05LjIgMTUuOWwwIDE0OC41IDAgMHptOTAuNCA1Mi4ybC02MC4yLTMzLjggMC03MS43IDYwLjItMzMuOCA2MC4yIDMzLjggMCA3MS43LTYwLjIgMzMuOHptMzguNyAxNTUuN2MtMjEuNSAwLTQxLjUtNy4yLTU4LjQtMjBsMTAwLjktNTguNGM2LjEtMy42IDkuMi04LjcgOS4yLTE1LjlsMC0xNDguNSA0Mi41IDI0LjZjMy42IDIgNS4xIDUuMSA1LjEgOS4ybDAgMTEyLjZjMCA1NC44LTQyLjUgOTYuMy05OS4zIDk2LjNsMCAwek0xNzMuOCAzNjYuNUw3Ni4xIDMxMC4yYy0yOC4yLTE2LjQtNDcuMS01MS4yLTQ3LjEtODUgMC0zOS40IDIzLjYtNzQuOCA1OS45LTg5LjZsMCAxMTYuN2MwIDcuMiAzLjEgMTIuMyA5LjIgMTUuOWwxMjggNzQuMi00MiAyNC4xYy0zLjYgMi02LjcgMi0xMC4yIDB6bS01LjYgODRjLTU3LjkgMC0xMDAuNC00My41LTEwMC40LTk3LjMgMC00LjEgLjUtOC4yIDEtMTIuM2wxMDAuOSA1OC40YzYuMSAzLjYgMTIuMyAzLjYgMTguNCAwbDEyOC41LTc0LjIgMCA0OC42YzAgNC4xLTEuNSA3LjItNS4xIDkuMmwtOTcuOCA1Ni4zYy0xMy4zIDcuNy0yOS4yIDExLjMtNDUuNiAxMS4zbDAgMHptMTI3IDYwLjljNjIgMCAxMTMuNy00NCAxMjUuNC0xMDIuNCA1Ny4zLTE0LjkgOTQuMi02OC42IDk0LjItMTIzLjQgMC0zNS44LTE1LjQtNzAuNy00My05NS43IDIuNi0xMC44IDQuMS0yMS41IDQuMS0zMi4zIDAtNzMuMi01OS40LTEyOC0xMjgtMTI4LTEzLjggMC0yNy4xIDItNDAuNCA2LjctMjMtMjIuNS01NC44LTM2LjktODkuNi0zNi45LTYyIDAtMTEzLjcgNDQtMTI1LjQgMTAyLjQtNTcuMyAxNC44LTk0LjIgNjguNi05NC4yIDEyMy40IDAgMzUuOCAxNS40IDcwLjcgNDMgOTUuNy0yLjYgMTAuOC00LjEgMjEuNS00LjEgMzIuMyAwIDczLjIgNTkuNCAxMjggMTI4IDEyOCAxMy44IDAgMjcuMS0yIDQwLjQtNi43IDIzIDIyLjUgNTQuOCAzNi45IDg5LjYgMzYuOXoiXX0saTdlPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6InNpdGgiLGljb246WzQ0OCw1MTIsW10sImY1MTIiLCJNMCAzMmw2OS43IDExOC44LTU4LjktMTEuNSA2OS44IDkxYy0zIDE3LTMgMzQuNCAwIDUxLjRsLTY5LjggOTEgNTguOS0xMS41LTY5LjcgMTE4LjggMTE4LjgtNjkuNy0xMS41IDU4LjkgOTEtNjkuOGMxNyAzIDM0LjUgMyA1MS41IDBsOTEgNjkuOC0xMS41LTU4LjkgMTE4LjcgNjkuNy02OS43LTExOC44IDU4LjkgMTEuNS02OS44LTkxYzMtMTcgMy0zNC40IDAtNTEuNGw2OS44LTkxLTU4LjkgMTEuNSA2OS43LTExOC44LTExOC43IDY5LjcgMTEuNS01OC45LTkxLjEgNjkuOWMtOC41LTEuNS0xNy4xLTIuMy0yNS43LTIuM3MtMTcuMiAuOC0yNS43IDIuM0wxMDcuMiA0Mi44IDExOC44IDEwMS43IDAgMzJ6TTIyNCAzODAuMmExMjQuMiAxMjQuMiAwIDEgMSAwLTI0OC40IDEyNC4yIDEyNC4yIDAgMSAxIDAgMjQ4LjR6bTAtMjExLjhhODcuNiA4Ny42IDAgMSAwIDAgMTc1LjEgODcuNiA4Ny42IDAgMSAwIDAtMTc1LjF6Il19LHI3ZT17cHJlZml4OiJmYWIiLGljb25OYW1lOiJqdWxpYSIsaWNvbjpbNjQwLDUxMixbXSwiZTg1MiIsIk0xMjQgNDA2LjVjMCAxNi4xLTEuOCAyOS4xLTUuNCAzOXMtOC44IDE3LjYtMTUuNSAyMy4xLTE0LjcgOS4xLTI0LjEgMTEtMTkuOCAyLjgtMzEuMiAyLjhjLTE1LjUgMC0yNy4zLTIuNC0zNS41LTcuM1MwIDQ2NC41IDAgNDU3LjdjMC01LjYgMi4zLTEwLjQgNi45LTE0LjNzMTAuOC01LjggMTguNS01LjhjNS44IDAgMTAuNCAxLjYgMTMuOSA0LjdzNi4zIDYuMiA4LjYgOS4zYzIuNiAzLjQgNC44IDUuNiA2LjUgNi44czMuNCAxLjcgNC44IDEuN2MzLjEgMCA1LjQtMS44IDctNS40czIuNC0xMC43IDIuNC0yMS4ybDAtMTk4LjcgNTUuNC0xNS4yIDAgMTg2Ljl6bTc4LjktMTgxLjZsMCAxMjcuOWMwIDMuNiAuNyA2LjkgMi4xIDEwczMuMyA1LjggNS43IDguMSA1LjIgNC4xIDguNSA1LjQgNi43IDIuMSAxMC40IDIuMWM0LjIgMCA4LjktMi4zIDE0LjctNi40IDkuMi02LjQgMTQuNy0xMC45IDE0LjctMTYuMWwwLTEzMSA1NS4xIDAgMCAxODEuNi01NS4xIDAgMC0xNi45Yy03LjMgNi4xLTE1IDExLTIzLjIgMTQuN3MtMTYuMiA1LjYtMjMuOSA1LjZjLTkgMC0xNy40LTEuNS0yNS4xLTQuNXMtMTQuNS03LTIwLjMtMTIuMi0xMC40LTExLjItMTMuNy0xOC4xYy0zLjMtNi45LTUtMTQuMy01LTIyLjJsMC0xMjcuOSA1NS4xIDB6TTM5MS40IDQwNi41bC01NC45IDAgMC0yNTQuNiA1NC45LTE1LjIgMCAyNjkuOHptMjIuOS0xNzEuN2w1NS4xLTE1LjIgMCAxODYuOS01NS4xIDAgMC0xNzEuN3ptMTcwLjMgNzcuOWMtNS4zIDIuMy0xMC43IDQuOS0xNi4xIDcuOXMtMTAuMyA2LjItMTQuNyA5LjgtOCA3LjMtMTAuOCAxMS40LTQuMSA4LjItNC4xIDEyLjZjMCAzLjQgLjQgNi42IDEuMyA5LjhzMi4xIDUuOCAzLjggOC4xIDMuNCA0LjEgNS4zIDUuNCA0IDIuMSA2LjMgMi4xYzQuNSAwIDkuMS0xLjQgMTMuNy00LjFzOS43LTYuMiAxNS40LTEwLjRsMC01Mi41ek02NDAgNDA2LjVsLTU1LjQgMCAwLTE0LjVjLTMuMSAyLjYtNiA1LTguOSA3LjFzLTYuMiA0LjEtOS44IDUuNy03LjcgMi45LTEyLjIgMy44Yy00LjUgLjktOS44IDEuMy0xNS45IDEuMy04LjQgMC0xNS45LTEuMi0yMi42LTMuNi02LjctMi40LTEyLjQtNS43LTE3LTkuOXMtOC4zLTkuMS0xMC44LTE0LjljLTIuNS01LjctMy44LTEyLTMuOC0xOC43IDAtNi45IDEuMy0xMy4yIDQtMTguOSAyLjctNS42IDYuMy0xMC43IDEwLjktMTUuMiA0LjYtNC41IDkuOS04LjUgMTYuMS0xMi4xczEyLjctNi44IDE5LjctOS44IDE0LjMtNS43IDIxLjktOC4yIDE1LjEtNC45IDIyLjUtNy4xbDYtMS41IDAtMTcuOWMwLTExLjYtMi4yLTE5LjgtNi42LTI0LjdzLTEwLjQtNy4zLTE3LjgtNy4zYy04LjcgMC0xNC44IDIuMS0xOC4xIDYuM3MtNS4xIDkuMy01LjEgMTUuMmMwIDMuNC0uNCA2LjctMS4xIDkuOS0uNyAzLjItMiA2LTMuNyA4LjVzLTQuMyA0LjQtNy42IDUuOGMtMy4zIDEuNS03LjUgMi4yLTEyLjUgMi4yLTcuNyAwLTE0LTIuMi0xOC45LTYuNi00LjgtNC40LTcuMy0xMC03LjMtMTYuOCAwLTYuMyAyLjEtMTIuMSA2LjQtMTcuNSA0LjMtNS40IDEwLTEwIDE3LjMtMTMuOSA3LjMtMy45IDE1LjYtNi45IDI1LjEtOS4yczE5LjYtMy40IDMwLjItMy40YzEzLjEgMCAyNC4zIDEuMiAzMy43IDMuNXMxNy4yIDUuNyAyMy4zIDEwIDEwLjYgOS42IDEzLjUgMTUuNyA0LjQgMTMgNC40IDIwLjZsMCAxMzYuMXpNNjAgMTcyLjlhMzcuNCAzNy40IDAgMSAxIDc0LjkgMCAzNy40IDM3LjQgMCAxIDEgLTc0LjkgMHpNNDUyLjIgOTVhMzcuNCAzNy40IDAgMSAxIDc0LjkgMCAzNy40IDM3LjQgMCAxIDEgLTc0LjkgMHptNDUgNzcuOWEzNy40IDM3LjQgMCAxIDEgNzQuOSAwIDM3LjQgMzcuNCAwIDEgMSAtNzQuOSAwem0tODkuOSAwYTM3LjQgMzcuNCAwIDEgMSA3NC45IDAgMzcuNCAzNy40IDAgMSAxIC03NC45IDB6Il19LHM3ZT17cHJlZml4OiJmYWIiLGljb25OYW1lOiJuZmMtZGlyZWN0aW9uYWwiLGljb246WzUxMiw1MTIsW10sImU1MzAiLCJNMjExLjggNDg4LjZjMS42IDIuNSAyLjEgNS42IDEuNCA4LjUtLjYgMi45LTIuNCA1LjUtNC45IDcuMS0yLjYgMS42LTUuNiAyLjEtOC42IDEuNS02MS40LTEzLjktMTE1LjYtNDkuOS0xNTIuMi0xMDEuMlMtNS40IDI5MC4zIDEuNiAyMjcuN2M3LTYyLjcgMzYuOC0xMjAuNSA4My43LTE2Mi41IDQ2LjktNDIgMTA3LjctNjUuMiAxNzAuNy02NS4yIDEuNSAwIDIuMSAuMyA0LjMgLjkgMS40IC42IDEuOCAxLjQgMy43IDIuNSAxLjEgMS4xIDEuOSAyLjMgMi41IDMuNyAuNSAxLjQgLjggMi44IC44IDQuM2wwIDEwMSAyNC41LTI1LjljMS0xLjEgMi4yLTIgMy42LTIuNiAxLjMtLjYgMi44LS45IDQuMy0xIDEuNS0uMSAyLjkgLjIgNC4zIC43czIuNyAxLjMgMy44IDIuNGMxIDEgMS45IDIuMiAyLjUgMy42IC42IDEuMyAxIDIuOCAxIDQuM3MtLjIgMy0uNyA0LjNjLS42IDEuNC0xLjQgMi42LTIuNCAzLjdsLTQ0IDQ2LjZjLTEuMSAxLjEtMi4zIDItMy43IDIuNi0xLjUgLjYtMyAuOS01LjQgLjktLjYgMC0yLjItLjMtMy42LS45cy0yLjctMS41LTMuNy0yLjZsLTQ0LjEtNDYuNmMtMi0yLjItMy4xLTUuMS0zLTguMSAwLTMgMS4zLTYuNyAzLjUtNy45IDIuMi0yLjEgNS4xLTMuMiA4LjEtMy4xIDMgLjEgNS44IDEuMyA3LjkgMy41bDI0LjUgMjYgMC04OS41Yy01Ni40IDIuOC0xMDkuOCAyNS44LTE1MC41IDY1LTQwLjYgMzkuMS02NS43IDkxLjctNzAuNiAxNDcuOVMzNC40IDM0OC4xIDY3LjcgMzkzLjdjMzIuNCA0NS41IDgyIDc3LjUgMTM3IDg5LjkgMi45IC43IDUuNSAyLjUgNy4xIDV6TTE3MS40IDEyNi4xYy0uOCAxLjMtMS45IDIuNC0zLjEgMy4yLTIwLjUgMTMuOS0zNy4yIDMyLjYtNDguOCA1NC41cy0xNy43IDQ2LjMtMTcuNyA3MS4xIDYuMSA0OS4yIDE3LjcgNzAuMmMxMS42IDIyLjggMjguMyA0MS41IDQ4LjggNTUuNCAyLjUgMS43IDQuMiA0LjMgNC43IDcuMyAuNiAyLjktLjkgNi0xLjcgOC40LTEuNyAyLjUtNS4yIDQuMi03LjMgMy45LTIuOSAxLjQtNiAuOC04LjQtLjktMjMuNi0xNi00Mi44LTM3LjUtNTYuMS02Mi43LTEzLjMtMjUuMS0yMC4zLTUzLjEtMjAuMy04MS42IDAtMjguNCA3LTU2LjUgMjAuMy04MS42IDEzLjMtMjUuMiAzMi41LTQ2LjcgNTYuMS02Mi43IDEuMi0uOCAyLjYtMS40IDQtMS44IDEuNS0uMyAzLS4zIDQuNSAwIDEuNCAuMiAyLjggLjggNC4xIDEuNnMyLjMgMS45IDMuMiAzLjFjLjggMS4yIDEuNCAyLjYgMS43IDQuMXMuMyAzIDAgNC40Yy0uMyAxLjUtLjggMi45LTEuNyA0LjF6TTM0MC45IDM4My41Yy44LTEuMiAxLjktMi4zIDIuMi0zLjFsMC0uMWMyMS4zLTE0IDM4LTMyLjcgNDkuNi01NC42IDExLjUtMjEuOCAxNy41LTQ2LjIgMTcuNS03MC45cy02LTQ5LjEtMTcuNS03MWMtMTEuNi0yMi43LTI4LjMtNDAuNS00OS42LTU0LjUtLjMtLjgtMS40LTEuOS0yLjItMy4xLS44LTEuMy0xLjQtMi43LTEuNi00LjEtMS4yLTEuNS0uMy0zIDAtNC40IC4zLTEuNSAuOS0yLjkgMS43LTQuMSAuOS0xLjIgMS4xLTIuMyAzLjItMy4xIDEuMi0uOCAyLjYtMS4zIDQuMS0xLjZzMi45LS4zIDQuNCAwIDIuOCAuOSA0LjEgMS44YzIzLjQgMTYgNDIuNyAzNy41IDU1LjkgNjIuNiAxMy4zIDI1LjEgMTkuNCA1My4xIDE5LjQgODEuNSAwIDI4LjUtNi4xIDU2LjUtMTkuNCA4MS42LTEzLjIgMjUuMS0zMi41IDQ2LjYtNTUuOSA2Mi42LTEuMyAuOS0yLjYgMS41LTQuMSAxLjhzLTIuOSAuMy00LjQgMC0yLjktMS43LTQuMS0xLjZjLTIuMS0uOC0yLjMtMS45LTMuMi0zLjEtLjgtMS4yLTEuNC0yLjYtMS43LTQuMS0uMy0xLjQtMS4yLTIuOSAwLTQuNCAuMi0xLjQgLjgtMi44IDEuNi00LjF6TTMxMi4zIDYuM2M1Ni4yIDEyLjcgMTA2LjQgNDQgMTQyLjcgODguNyAzMC40IDM3LjYgNDkuNiA4MyA1NS4zIDEzMSA1LjYgNDgtMi40IDk2LjctMjMuMiAxNDAuMy0yMC45IDQzLjYtNTMuNiA4MC41LTk0LjUgMTA2LjMtNDAuOSAyNS43LTg4LjIgMzkuNC0xMzYuNiAzOS40LTEuNSAwLTIuOS0uMy00LjMtLjktMS40LS41LTIuNi0xLjQtMy43LTIuNC0xLjktMS4xLTEuOS0yLjMtMi40LTMuNy0uNi0xLjQtLjktMi44LS45LTQuM2wwLTk5LjItMjQuNSAyNmMtMi4xIDIuMi00LjkgMi42LTcuOSAzLjYtMyAuMS01LjktMS4xLTguMS00LTIuMi0xLjItMy41LTQtMy41LTctLjEtMyAxLTUuOSAzLTguMWw0NC4xLTQ2LjZjMS4zLTIuMiA1LjEtMy40IDcuMy0zLjQgNCAwIDYuOSAxLjIgOS4xIDMuNGw0NCA0Ni42YzIuMSAyLjIgMy4yIDUuMSAzLjEgOC4xcy0xLjQgNS44LTMuNSA3Yy0yLjIgMi45LTUuMSA0LjEtOC4xIDQtMy0xLTUuOS0xLjQtNy45LTMuNmwtMjQuNS0yNS45IDAgODcuNWM1Ni40LTIuOCAxMDkuOC0yNS44IDE1MC41LTY1IDQwLjctNDAgNjUuOC05MS43IDcwLjctMTQ3LjkgNC44LTU3LjEtMTAuOC0xMTIuMy00NC4xLTE1Ny45LTMzLjMtNDUuNi04Mi03Ny41LTEzNy04OS45LTEuNS0uMy0yLjgtLjktNC4xLTEuOC0xLjItLjktMi4yLTEuOS0zLTMuMi0uOC0xLjItMi4yLTIuNi0xLjYtNC4xLS4yLTEuNS0uMi0zIC4xLTQuNCAuNC0xLjQgMS0yLjggMS44LTQgLjktMS4yIDItMi4yIDMuMi0zIDEuMy0uOCAyLjctMS4zIDQuMS0xLjYgMS41LS4zIDMtLjIgNC40IC4xem00MC44IDI0OS44YzAgMzEuNC0xNy41IDYxLjEtNDkuMyA4My41LTIuMSAxLjUtNC44IDIuMy03LjQgMi0yLjctLjItNS4yLTEuMy03LTMuMmwtNzAuMS02OS44Yy0yLjItMi4xLTQuMi01LTMuNC04IDAtMyAxLjItNS45IDMuMy04IDIuMi0yLjEgNS0zLjMgOC0zLjNzNS45IDEuMiA4IDMuM2w2My4xIDYyLjhjMjAuOC0xNy4xIDMyLjItMzcuOSAzMi4yLTU5LjMgMC0yMy45LTE0LjEtNDctMzkuNy02NS4xLTIuNS0xLjctNC4xLTQuMy00LjYtNy4zLS41LTIuOSAuMS02IDEuOS04LjQgMS43LTIuNSA0LjMtNC4xIDcuMy00LjYgMi45LS41IDYgLjEgOC40IDEuOSAzMS44IDIyLjQgNDkuMyA1Mi4xIDQ5LjMgODMuNXpNMjE2LjcgMzQxLjVjLTMgLjUtNi0uMi04LjUtMS45LTMxLjctMjIuNC01MC4xLTUyLjEtNTAuMS04My41czE4LjQtNjEuMSA1MC4xLTgzLjVjMi4yLTEuNiA0LjktMi4zIDcuNS0yLjEgMi43IC4zIDUuMSAxLjQgNyAzLjNsNzAuMSA2OS44YzIuMSAyLjEgMy4zIDUgMy4zIDhzLTIgNS44LTMuMyA4Yy0yLjEgMi4xLTUgMy4zLTcuOSAzLjMtMyAwLTYuOC0xLjItOC0zLjNsLTYzLjEtNjIuOWMtMjAuOSAxNy4zLTMyLjIgMzgtMzIuMiA1OS40IDAgMjMgMTQuMSA0NyAzOS43IDY1IDIuNCAxLjggNC4xIDQuNCA0LjYgNy40IC41IDIuOS0uMiA1LjktMS45IDguNC0xLjcgMi40LTQuNCA0LjEtNy4zIDQuNnoiXX0sbjdlPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImNyZWF0aXZlLWNvbW1vbnMtYnkiLGljb246WzUxMiw1MTIsW10sImY0ZTciLCJNMzIyLjkgMTk0LjRsMCAxMDEuNC0yOC4zIDAgMCAxMjAuNS03Ny4xIDAgMC0xMjAuNC0yOC4zIDAgMC0xMDEuNWMwLTQuNCAxLjYtOC4yIDQuNi0xMS4zIDMuMS0zLjEgNi45LTQuNyAxMS4zLTQuN2wxMDEuOSAwYzQuMSAwIDcuOCAxLjYgMTEuMSA0LjcgMy4xIDMuMiA0LjggNi45IDQuOCAxMS4zem0tMzIuNS02NC41YTM0LjUgMzQuNSAwIDEgMSAtNjkgLjggMzQuNSAzNC41IDAgMSAxIDY5LS44ek0yNTUuNiA4QzM5Ny40IDggNTA0IDExOC4xIDUwNCAyNTYgNTA0IDQwMy4xIDM4NS41IDUwNCAyNTUuNiA1MDQgMTIxLjYgNTA0IDggMzk0LjUgOCAyNTYgOCAxMjMuMSAxMTIuNyA4IDI1NS42IDh6bS44IDQ0LjdjLTExOC4yIDAtMjAzLjcgOTcuOS0yMDMuNyAyMDMuMyAwIDEwOS44IDkxLjIgMjAyLjggMjAzLjcgMjAyLjggMTAzLjIgMCAyMDIuOC04MS4xIDIwMi44LTIwMi44IC4xLTExMy44LTkwLjItMjAzLjMtMjAyLjgtMjAzLjN6Il19LG83ZT17cHJlZml4OiJmYWIiLGljb25OYW1lOiJ1bWJyYWNvIixpY29uOls1MTIsNTEyLFtdLCJmOGU4IiwiTTI1Ni4zIDhhMjQ4IDI0OCAwIDEgMCAtLjcgNDk2IDI0OCAyNDggMCAxIDAgLjctNDk2em0xNDUgMjY2Yy0uOCAyNy4xLTUuNCA0OC44LTE0IDY1cy0yMy4xIDI3LjktNDMuNSAzNWMtMjAuNCA3LjEtNDguOSAxMC42LTg1LjQgMTAuNWwtNC42IDBjLTM2LjUgLjEtNjUtMy4zLTg1LjQtMTAuNXMtMzQuOS0xOC44LTQzLjUtMzVjLTguNi0xNi4yLTEzLjItMzcuOS0xNC02NS0uNy0xMC4yLS43LTIwLjUgMC0zMC43IC40LTE0LjcgMS42LTI5LjMgMy42LTQzLjkgMS45LTEzLjQgMy42LTIyLjYgNS40LTMyIDEtNC45IDEuMy02LjQgMS44LTguNCAuMy0xLjEgLjktMi4xIDEuOC0yLjhzMi0xLjEgMy4xLTEuMWwuNyAwIDMyIDVjMS4yIC4yIDIuMiAuOCAzIDEuN3MxLjIgMi4xIDEuMiAzLjNjMCAuMyAwIC41IDAgLjhsLTEuNyA4LjhjLTEuNiA4LjgtMy4yIDIwLjEtNC44IDMzLjctMS43IDE0LTIuNSAyOC4xLTIuNiA0Mi4yLS4yIDI3IDIuNSA0Ni45IDguMSA1OS44IDIuOCA2LjQgNy4yIDEyIDEyLjYgMTYuNHMxMS45IDcuNCAxOC43IDguOGMxOC44IDQgMzguMSA1LjcgNTcuMyA1LjFsMTAuMyAwYzE5LjIgLjYgMzguNS0xLjIgNTcuMy01LjIgNi44LTEuNCAxMy4yLTQuNSAxOC42LTguOHM5LjctMTAgMTIuNS0xNi40YzUuNy0xMi45IDguNC0zMi45IDguMS01OS44LS4xLTE0LjEtMS0yOC4yLTIuNi00Mi4xLTEuNy0xMy42LTMuMy0yNC44LTQuOS0zMy43bC0xLjctOC44YzAtLjMgMC0uNSAwLS44IDAtMS4yIC40LTIuNCAxLjItMy4zczEuOC0xLjUgMy0xLjdsMzItNSAuOCAwYzEuMSAwIDIuMiAuNCAzLjEgMS4xczEuNSAxLjcgMS44IDIuOGMuNiAyIC44IDMuNiAxLjggOC40IDEuOCA5LjYgMy41IDE4LjggNS40IDMyIDIgMTQuNiAzLjIgMjkuMiAzLjYgNDMuOSAuNyAxMC4yIC43IDIwLjUgMCAzMC43bDAgMHoiXX0sbDdlPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6Imhvb2xpIixpY29uOls2NDAsNTEyLFtdLCJmNDI3IiwiTTE0NC41IDM1MmwzOC4zIC44Yy0xMy4yLTQuNi0yNi0xMC4yLTM4LjMtMTYuOGwwIDE2em01Ny43LTUuM2wwIDUuMy0xOS40IC44YzM2LjUgMTIuNSA2OS45IDE0LjIgOTQuNyA3LjItMTkuOSAuMi00NS44LTIuNi03NS4zLTEzLjN6TTYxMS4xIDIzMS41YzE1LjkgMCAyOC45LTEyLjkgMjguOS0yOC45cy0xMi45LTI0LjUtMjguOS0yNC41Yy0xNS45IDAtMjguOSA4LjYtMjguOSAyNC41czEyLjkgMjguOSAyOC45IDI4Ljl6TTU4Mi4xIDM1Mmw1Ny45IDAgMC0xMTAuNS01Ny45IDAgMCAxMTAuNXptLTczLjcgMGw1Ny45IDAgMC0xOTUuMy01Ny45IDI3LjMgMCAxNjh6bS0zMS0xMTkuNGMtMTguMi0xOC4yLTUwLjQtMTcuMS01MC40LTE3LjFzLTMyLjMtMS4xLTUwLjQgMTcuMWMtMTguMiAxOC4yLTE2LjggMzMuOS0xNi44IDUyLjZzLTEuNCAzNC4zIDE2LjggNTIuNSA1MC40IDE3LjEgNTAuNCAxNy4xIDMyLjMgMS4xIDUwLjQtMTcuMWMxOC4yLTE4LjIgMTYuOC0zMy44IDE2LjgtNTIuNS0uMS0xOC44IDEuMy0zNC41LTE2LjgtNTIuNnptLTM5LjggNzEuOWMwIDMuNi0xLjggMTIuNS0xMC43IDEyLjVzLTEwLjctOC45LTEwLjctMTIuNWwwLTQwLjRjMC04LjcgNy4zLTEwLjkgMTAuNy0xMC45czEwLjcgMi4xIDEwLjcgMTAuOWwwIDQwLjR6TTMzMS40IDIzMi42Yy0xOC4yLTE4LjItNTAuNC0xNy4xLTUwLjQtMTcuMXMtMzIuMi0xLjEtNTAuNCAxNy4xYy0xLjkgMS45LTMuNyAzLjktNS4zIDYtMzguMi0yOS42LTcyLjUtNDYuNS0xMDIuMS02MS4xbDAtMjAuNy0yMi41IDEwLjZjLTU0LjQtMjIuMS04OS0xOC4yLTk3LjMgLjEgMCAwLTI0LjkgMzIuOCA2MS44IDExMC44bDAgNzMuNyA1Ny45IDAgMC0yOC42Yy02LjUtNC4yLTEzLTguNy0xOS40LTEzLjYtMTQuOC0xMS4yLTI3LjQtMjEuNi0zOC40LTMxLjRsMC0zMWMxMy4xIDE0LjcgMzAuNSAzMS40IDUzLjQgNTAuM2w0LjUgMy42IDAtMjkuOGMwLTYuOSAxLjctMTguMiAxMC44LTE4LjJzMTAuNiA2LjkgMTAuNiAxNWwwIDQ4LjdjMTggMTIuMiAzNy4zIDIyLjEgNTcuNyAyOS42bDAtOTMuOWMwLTE4LjctMTMuNC0zNy40LTQwLjYtMzcuNC0xNS44LS4xLTMwLjUgOC4yLTM4LjUgMjEuOWwwLTU0LjNjNDEuOSAyMC45IDgzLjkgNDYuNSA5OS45IDU4LjMtMTAuMiAxNC42LTkuMyAyOC4xLTkuMyA0My43IDAgMTguNy0xLjQgMzQuMyAxNi44IDUyLjVzNTAuNCAxNy4xIDUwLjQgMTcuMSAzMi4zIDEuMSA1MC40LTE3LjFjMTguMi0xOC4yIDE2LjctMzMuOCAxNi43LTUyLjUgMC0xOC41IDEuNS0zNC4yLTE2LjctNTIuM3pNNjUuMiAxODRsMCA2My4zYy00OC43LTU0LjUtMzguOS03Ni0zNS4yLTc5LjEgMTMuNS0xMS40IDM3LjUtOCA2NC40IDIuMUw2NS4yIDE4NHpNMjkxLjcgMzA0LjVjMCAzLjYtMS44IDEyLjUtMTAuNyAxMi41cy0xMC43LTguOS0xMC43LTEyLjVsMC00MC40YzAtOC43IDcuMy0xMC45IDEwLjctMTAuOXMxMC43IDIuMSAxMC43IDEwLjlsMCA0MC40eiJdfSxoRT17cHJlZml4OiJmYWIiLGljb25OYW1lOiJzcXVhcmUtZ2l0IixpY29uOls0NDgsNTEyLFsiZ2l0LXNxdWFyZSJdLCJmMWQyIiwiTTEyMC44IDMzNS41Yy01LjktLjQtMTIuNi0uOC0yMC4yLTEuMy0zLjMgNC4xLTYuNiA4LjQtNi42IDEzLjUgMCAxOC41IDY1LjUgMTguNSA2NS41LTEuNSAwLTguMy03LjQtOC43LTM4LjgtMTAuN2wuMSAwem03LjgtMTE3LjljLTMyLjMgMC0zMy43IDQ0LjUtLjcgNDQuNSAzMi41IDAgMzEuNy00NC41IC43LTQ0LjV6TTM4NCAzMkw2NCAzMkMyOC43IDMyIDAgNjAuNyAwIDk2TDAgNDE2YzAgMzUuMyAyOC43IDY0IDY0IDY0bDMyMCAwYzM1LjMgMCA2NC0yOC43IDY0LTY0bDAtMzIwYzAtMzUuMy0yOC43LTY0LTY0LTY0ek0yNDMuOSAxNzIuMmMtMTQuNSAwLTIyLjktOC40LTIyLjktMjIuOXM4LjQtMjIuMyAyMi45LTIyLjNjMTQuNyAwIDIzLjEgNy44IDIzLjEgMjIuM3MtOC40IDIyLjktMjMuMSAyMi45ek0xNDkuNiAxOTVsNDkuNSAwIDAgMjEuNi0yMy40IDEuOGM0LjYgNS44IDkuNCAxNCA5LjQgMjUuNyAwIDQ4LjctNTcuMiA0Ny4yLTc0LjIgNDIuNGwtOC40IDEzLjRjNSAuMyA5LjggLjYgMTQuMyAuOCA1Ni4zIDMuMiA4MC41IDQuNiA4MC41IDM4LjUgMCAyOS4yLTI1LjcgNDUuNy02OS45IDQ1LjctNDYgMC02My41LTExLjYtNjMuNS0zMS43IDAtMTEuNCA1LjEtMTcuNSAxNC0yNS45LTguNC0zLjUtMTEuMi05LjktMTEuMi0xNi44IDAtOS42IDcuNC0xNi4zIDIzLTMwLjZsLjItLjJjLTEyLjQtNi4xLTIxLjgtMTkuMy0yMS44LTM4LjEgMC01MS42IDU2LjYtNTMuMyA4MS42LTQ2LjhsLS4xIC4yek0yNzAuNSAzMDMuMWwxMyAxLjggMCAyMC4xLTcyLjQgMCAwLTIwLjFjMi43LS40IDUtLjcgNi45LS45IDkuOS0xLjIgMTAuMS0xLjMgMTAuMS02bDAtNzQuN2MwLTQuNC0uOS00LjctMTAuMS03LjgtMS45LS43LTQuMi0xLjQtNi45LTIuNGwyLjgtMjAuNiA1Mi42IDAgMCAxMDUuNWMwIDQuMSAuMiA0LjYgNC4xIDUuMWwtLjEgMHptMTA2LjYtMTAuNEwzODQgMzE1Yy0xMC45IDUuNC0yNi45IDEwLjItNDEuNCAxMC4yLTMwLjIgMC00MS43LTEyLjItNDEuNy00MC45bDAtNjYuNmMwLS44IDAtMS40LS4yLTEuOC0uOC0xLjItNC4yLS43LTE5LjYtLjdsMC0yMi42YzIyLjMtMi41IDMxLjItMTMuNyAzNC00MS40bDI0LjIgMGMwIDMzLjMtLjYgMzggLjcgMzguNiAuMyAuMSAuNyAwIDEuMyAwbDM1LjggMCAwIDI1LjQtMzcuOCAwIDAgNjEuNmMtLjIgNi4zLS45IDMwLjQgMzcuOSAxNS45bC0uMSAweiJdfSxjN2U9aEUsZDdlPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6Im9kbm9rbGFzc25pa2kiLGljb246WzMyMCw1MTIsW10sImYyNjMiLCJNMjc1LjEgMzM0Yy0yNy40IDE3LjQtNjUuMSAyNC4zLTkwIDI2LjlsMjAuOSAyMC42IDc2LjMgNzYuM2MyNy45IDI4LjYtMTcuNSA3My4zLTQ1LjcgNDUuNy0xOS4xLTE5LjQtNDcuMS00Ny40LTc2LjMtNzYuNkw4NCA1MDMuNGMtMjguMiAyNy41LTczLjYtMTcuNi00NS40LTQ1LjcgMTkuNC0xOS40IDQ3LjEtNDcuNCA3Ni4zLTc2LjNsMjAuNi0yMC42Yy0yNC42LTIuNi02Mi45LTkuMS05MC42LTI2LjktMzIuNi0yMS00Ni45LTMzLjMtMzQuMy01OSA3LjQtMTQuNiAyNy43LTI2LjkgNTQuNi01LjcgMCAwIDM2LjMgMjguOSA5NC45IDI4LjlTMjU1IDI2OS4yIDI1NSAyNjkuMmMyNi45LTIxLjEgNDcuMS04LjkgNTQuNiA1LjcgMTIuNCAyNS43LTEuOSAzOC0zNC41IDU5LjF6bTE0LjYtMjA0LjdhMTI5LjcgMTI5LjcgMCAxIDEgLTI1OS40IC40IDEyOS43IDEyOS43IDAgMSAxIDI1OS40LS40em0tMTkzLjQgLjRhNjMuNyA2My43IDAgMSAwIDEyNy40LS40IDYzLjcgNjMuNyAwIDEgMCAtMTI3LjQgLjR6Il19LGg3ZT17cHJlZml4OiJmYWIiLGljb25OYW1lOiJkcnVwYWwiLGljb246WzM4NCw1MTIsW10sImYxYTkiLCJNMjcyLjMgMTA4LjFDMjM2LjUgNzIuNSAyMDIuNSAzOC40IDE5Mi40IDAgMTgyLjQgMzguNCAxNDguMSA3Mi41IDExMi40IDEwOC4xIDU4LjggMTYxLjctMS45IDIyMi40LTEuOSAzMTMuNC00LjMgNDIwLjcgODAuOCA1MDkuNiAxODguMSA1MTJzMTk2LjItODIuOCAxOTguNS0xOTAuMWMuMS0yLjggLjEtNS42IDAtOC41IDAtOTEuMS02MC44LTE1MS43LTExNC4zLTIwNS4zek05OCAzMzEuMWMtNS45IDcuNS0xMSAxNS42LTE1LjIgMjQuMi0uMyAuNy0uOCAxLjMtMS4zIDEuOHMtMS4yIC44LTIgMWwtMS43IDBjLTQuMyAwLTkuMi04LjUtOS4yLTguNS0xLjMtMi0yLjUtNC4yLTMuNy02LjRsLS44LTEuOGMtMTEuMi0yNS43LTEuNS02Mi4zLTEuNS02Mi4zIDQuOC0xNy44IDEyLjctMzQuNyAyMy4yLTQ5LjkgNi40LTkuNiAxMy41LTE4LjkgMjEtMjcuN2w5LjIgOS4yIDQzLjUgNDQuNGMuOCAuOSAxLjMgMi4xIDEuMyAzLjNzLS41IDIuNC0xLjMgMy4zTDExNC4xIDMxMi4zIDk4IDMzMS4xem05Ni42IDEyNy4zYy0xMi45LS4xLTI1LjYtMy45LTM2LjQtMTFzLTE5LjQtMTcuMS0yNC42LTI4LjktNy0yNC45LTUtMzcuNyA3LjYtMjQuNyAxNi4yLTM0LjRjMTQuMi0xNi45IDMxLjUtMzMuNSA1MC4zLTU1LjMgMjIuMyAyMy44IDM2LjkgNDAuMSA1MS4yIDU4IDEuMSAxLjQgMi4xIDIuOSAzIDQuNCA3LjggMTEuMSAxMiAyNC40IDEyIDM4IDAgOC44LTEuNyAxNy40LTUgMjUuNXMtOC4yIDE1LjUtMTQuNCAyMS43LTEzLjUgMTEuMS0yMS42IDE0LjUtMTYuNyA1LjEtMjUuNSA1LjFsLS4yIDB6TTMyMC43IDM1MS42Yy0uNCAxLjQtMS4yIDIuNi0yLjMgMy42cy0yLjQgMS42LTMuOCAxLjhsLTEuMyAwYy0yLjYtLjktNC45LTIuNy02LjMtNS4xLTExLjYtMTcuNS0yNC45LTMzLjktMzkuNS00OWwtMTcuOC0xOC40LTU5LjEtNjEuM2MtMTIuNC0xMS41LTI0LjItMjMuNi0zNS40LTM2LjMtLjMtLjUtLjYtLjktLjktMS40LTItMi44LTMuNi01LjktNC43LTkuMmwwLTEuOGMtLjgtNS0uNC0xMC4xIDEuMi0xNXM0LjQtOS4yIDgtMTIuN2MxMS40LTExLjQgMjMtMjMgMzMuOC0zNC45IDEyIDEzLjMgMjQuOCAyNiAzNy40IDM4LjYgMjUuOCAyNCA0OS4xIDUwLjUgNjkuNiA3OS4xIDE3LjMgMjQuNSAyNi43IDUzLjggMjcgODMuOC0uMSAxMi45LTIuMiAyNS44LTYgMzguMnoiXX0scDdlPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImJsb2dnZXItYiIsaWNvbjpbNDQ4LDUxMixbXSwiZjM3ZCIsIk00NDYuNiAyMjIuN2MtMS44LTgtNi44LTE1LjQtMTIuNS0xOC41LTEuOC0xLTEzLTIuMi0yNS0yLjctMjAuMS0uOS0yMi4zLTEuMy0yOC43LTUtMTAuMS01LjktMTIuOC0xMi4zLTEyLjktMjkuNS0uMS0zMy0xMy44LTYzLjctNDAuOS05MS4zLTE5LjMtMTkuNy00MC45LTMzLTY1LjUtNDAuNS01LjktMS44LTE5LjEtMi40LTYzLjMtMi45LTY5LjQtLjgtODQuOCAuNi0xMDguNCAxMC00My41IDE3LjItNzQuNyA1My44LTg2LjEgMTAwLjYtMi4xIDguOC0yLjYgMjIuOS0zLjEgMTAzLjktLjYgMTAxLjUgLjEgMTE2LjQgNi40IDEzNi41IDE1LjYgNDkuNiA1OS45IDg2LjMgMTA0LjQgOTQuMyAxNC44IDIuNyAxOTcuMyAzLjMgMjE2IC44IDMyLjUtNC40IDU4LTE3LjUgODEuOS00MS45IDE3LjMtMTcuNyAyOC4xLTM2LjggMzUuMi02Mi4xIDQuOS0xNy42IDQuNS0xNDIuOCAyLjUtMTUxLjd6TTEyNC41IDE1OS4xYzcuOC03LjkgMTAtOC4yIDU4LjgtOC4yIDQzLjkgMCA0NS40IC4xIDUxLjggMy40IDkuMyA0LjcgMTMuNCAxMS4zIDEzLjQgMjEuOSAwIDkuNS0zLjggMTYuMi0xMi4zIDIxLjYtNC42IDIuOS03LjMgMy4xLTUwLjMgMy4zLTI2LjUgLjItNDcuNy0uNC01MC44LTEuMi0xNi42LTQuNy0yMi44LTI4LjUtMTAuNi00MC44ek0zMTYuMyAzNTguOWwtMTQuOSAyLjQtNzcuNSAuOWMtNjguMSAuOC04Ny4zLS40LTkwLjktMi03LjEtMy4xLTEzLjgtMTEuNy0xNC45LTE5LjQtMS4xLTcuMyAyLjYtMTcuMyA4LjItMjIuNCA3LjEtNi40IDEwLjItNi42IDk3LjMtNi43IDg5LjYtLjEgODkuMS0uMSA5Ny42IDcuOCAxMi4xIDExLjMgOS41IDMxLjItNC45IDM5LjR6Il19LHU3ZT17cHJlZml4OiJmYWIiLGljb25OYW1lOiJpbnZpc2lvbiIsaWNvbjpbNDQ4LDUxMixbXSwiZjdiMCIsIk00MDcuNCAzMkw0MC42IDMyQzE4LjIgMzIgMCA1MC4yIDAgNzIuNkwwIDQzOS40QzAgNDYxLjggMTguMiA0ODAgNDAuNiA0ODBsMzY2LjggMGMyMi40IDAgNDAuNi0xOC4yIDQwLjYtNDAuNmwwLTM2Ni44QzQ0OCA1MC4yIDQyOS44IDMyIDQwNy40IDMyek0xNzYuMSAxNDUuNmMuNCAyMy40LTIyLjQgMjcuMy0yNi42IDI3LjQtMTQuOSAwLTI3LjEtMTItMjcuMS0yNyAuMS0zNS4yIDUzLjEtMzUuNSA1My43LS40ek0zMzIuOCAzNzdjLTY1LjYgMC0zNC4xLTc0LTI1LTEwNi42IDE0LjEtNDYuNC00NS4yLTU5LTU5LjkgLjdsLTI1LjggMTAzLjMtNDUuMSAwIDguMS0zMi41Yy0zMS41IDUxLjgtOTQuNiA0NC40LTk0LjYtNC4zIC4xLTE0LjMgLjktMTQgMjMtMTA0LjFsLTMxLjggMCA5LjctMzUuNiA3Ni40IDBjLTMzLjYgMTMzLjctMzIuNiAxMjYuOS0zMi45IDEzOC4yIDAgMjAuOSA0MC45IDEzLjUgNTcuNC0yMy4ybDE5LjgtNzkuNC0zMi4zIDAgOS43LTM1LjYgNjguOCAwLTguOSA0MC41YzQwLjUtNzUuNSAxMjcuOS00Ny44IDEwMS44IDM4LTE0LjIgNTEuMS0xNC42IDUwLjctMTQuOSA1OC44IDAgMTUuNSAxNy41IDIyLjYgMzEuOC0xNi45TDM4NiAzMjVjLTEwLjUgMzYuNy0yOS40IDUyLTUzLjIgNTJ6Il19LGY3ZT17cHJlZml4OiJmYWIiLGljb25OYW1lOiJmYWNlYm9vay1mIixpY29uOlszMjAsNTEyLFtdLCJmMzllIiwiTTgwIDI5OS4zbDAgMjEyLjcgMTE2IDAgMC0yMTIuNyA4Ni41IDAgMTgtOTcuOC0xMDQuNSAwIDAtMzQuNmMwLTUxLjcgMjAuMy03MS41IDcyLjctNzEuNSAxNi4zIDAgMjkuNCAuNCAzNyAxLjJsMC04OC43QzI5MS40IDQgMjU2LjQgMCAyMzYuMiAwIDEyOS4zIDAgODAgNTAuNSA4MCAxNTkuNGwwIDQyLjEtNjYgMCAwIDk3LjggNjYgMHoiXX0sbTdlPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImNlbnRvcyIsaWNvbjpbNDQ4LDUxMixbXSwiZjc4OSIsIk0yODkuNiA5Ny41bDMxLjYgMzEuNy03Ni4zIDc2LjUgMC0xMDguMiA0NC43IDB6TTEyNy4yIDEyOS4ybDc2LjMgNzYuNSAwLTEwOC4yLTQ0LjcgMC0zMS42IDMxLjd6bTQxLjUtNDEuNmw0NC43IDAgMCAxMjcuOSAxMC44IDEwLjggMTAuOC0xMC44IDAtMTI3LjkgNDQuNyAwLTU1LjUtNTUuNi01NS41IDU1LjZ6bTI2LjIgMTY4LjFsLTEwLjgtMTAuOC0xMjguNiAwIDAtNDQuOC01NS41IDU1LjYgNTUuNSA1NS42IDAtNDQuOCAxMjguNiAwIDEwLjgtMTAuOHpNMjc0LjIgMjM1bDEwNy45IDAgMC00NC44LTMxLjYtMzEuNy03Ni4zIDc2LjV6bTE3My4zIDIwLjdsLTU1LjUtNTUuNiAwIDQ0LjgtMTI3LjcgMC0xMC44IDEwLjggMTAuOCAxMC44IDEyNy43IDAgMCA0NC44IDU1LjUtNTUuNnpNNjUuNCAxNzYuMmwzMi41LTMxLjcgOTAuMyA5MC41IDE1LjMgMCAwLTE1LjMtOTAuMy05MC41IDMxLjYtMzEuNy03OS40IDAgMCA3OC43ek0zODIuMSA5Ny41bC03OC41IDAgMzEuNiAzMS43LTkwLjMgOTAuNSAwIDE1LjMgMTUuMyAwIDkwLjMtOTAuNSAzMS42IDMxLjcgMC03OC43ek0yMDMuNSA0MTMuOWwwLTEwOC4xLTc2LjMgNzYuNSAzMS42IDMxLjcgNDQuNyAwIDAtLjF6TTY1LjQgMjM1bDEwOC44IDAtNzYuMy03Ni41LTMyLjUgMzEuNyAwIDQ0Ljh6TTM4Mi4xIDMzNS4ybC0zMS42IDMxLjctOTAuMy05MC41LTE1LjMgMCAwIDE1LjMgOTAuMyA5MC41LTMxLjYgMzEuNyA3OC41IDAgMC03OC43em0wLTU4LjhsLTEwNy45IDAgNzYuMyA3Ni41IDMxLjYtMzEuNyAwLTQ0Ljh6TTMyMS4yIDM4Mi4ybC03Ni4zLTc2LjUgMCAxMDguMSA0NC43IDAgMzEuNi0zMS42ek05Ny45IDM1Mi45bDc2LjMtNzYuNS0xMDguOCAwIDAgNDQuOCAzMi41IDMxLjd6bTE4MS44IDcwLjlsLTQ0LjcgMCAwLTEyNy45LTEwLjgtMTAuOC0xMC44IDEwLjggMCAxMjcuOS00NC43IDAgNTUuNSA1NS42IDU1LjUtNTUuNnpNMTEzLjIgMzgyLjJsOTAuMy05MC41IDAtMTUuMy0xNS4zIDAtOTAuMyA5MC41LTMyLjUtMzEuNyAwIDc4LjcgNzkuNCAwLTMxLjYtMzEuN3oiXX0sZzdlPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6InNjYWxld2F5IixpY29uOls0NDgsNTEyLFtdLCJlODU5IiwiTTI0My40IDExNy4zbC04NC4zIDBjLTE4LjUgMi4xLTMyLjcgMTcuNS0zMy40IDM2bDAgMTIxLjljMCA4LjIgMy4yIDE1LjMgOC41IDIwLjdzMTIuNSA4LjYgMjAuNiA4LjZjMTYgMCAyOS4yLTEzLjIgMjkuMi0yOS4ybDAtNzcuNGMwLTEyLjEgMTAtMjIuMSAyMi4xLTIyLjFsMzguMSAwYzguMiAwIDE1LjMtMy4yIDIwLjYtOC42czguNS0xMi44IDguNS0yMWMwLTE2LTEzLjktMjguOS0yOS45LTI4Ljl6TTIwNS4zIDM5NS40bDg0LjMgMGMxOC41LTIuMSAzMi43LTE3LjUgMzMuNC0zNmwwLTEyMS45YzAtOC4yLTMuMi0xNS4zLTguNS0yMC43cy0xMi41LTguNi0yMC42LTguNmMtMTYgMC0yOS4yIDEzLjItMjkuMiAyOS4ybDAgNzcuNGMwIDEyLjEtMTAgMjIuMS0yMi4xIDIyLjFsLTM4LjEgMGMtOC4yIDAtMTUuMyAzLjItMjAuNiA4LjZzLTguNSAxMi44LTguNSAyMWMuNCAxNiAxMy45IDI4LjkgMjkuOSAyOC45ek0xMDQuMyAwTDI1Ny42IDBjMTAxIDAgMTgyLjUgODEuNiAxODIuMSAxODIuOWwwIDI0Mi44Yy00LjYgNDYtNDIgODIuNC04OC4yIDg2LjNMMTkwIDUxMkM4OS4zIDUxMiA3LjUgNDMwIDcuNSAzMjkuMUw3LjUgOTdjMC01My41IDQzLjQtOTcgOTYuOC05N3pNMzgxLjcgMTgyLjljMC02OC41LTU1LjktMTI0LjQtMTI0LjItMTI0LjRsLTE1MyAwQzgzLjMgNTguNSA2Ni4yIDc1LjYgNjYuMiA5N2wwIDIzMi4xYzAgNjguOCA1NS41IDEyNC40IDEyNC4yIDEyNC40bDE1OC43IDBjMTYuNy0yLjEgMjkuOS0xNSAzMi43LTMxLjRsMC0yMzkuMnoiXX0sYjdlPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImNjLWFtYXpvbi1wYXkiLGljb246WzU3Niw1MTIsW10sImY0MmQiLCJNMTI0LjcgMjAxLjhjLjEtMTEuOCAwLTIzLjUgMC0zNS4zbDAtMzUuM2MwLTEuMyAuNC0yIDEuNC0yLjcgMTEuNS04IDI0LjEtMTIuMSAzOC4yLTExLjEgMTIuNSAuOSAyMi43IDcgMjguMSAyMS43IDMuMyA4LjkgNC4xIDE4LjIgNC4xIDI3LjcgMCA4LjctLjcgMTcuMy0zLjQgMjUuNi01LjcgMTcuOC0xOC43IDI0LjctMzUuNyAyMy45LTExLjctLjUtMjEuOS01LTMxLjQtMTEuNy0uOS0uOC0xLjQtMS42LTEuMy0yLjh6bTE1NC45IDE0LjZjNC42IDEuOCA5LjMgMiAxNC4xIDEuNSAxMS42LTEuMiAyMS45LTUuNyAzMS4zLTEyLjUgLjktLjYgMS4zLTEuMyAxLjMtMi41LS4xLTMuOSAwLTcuOSAwLTExLjggMC00LS4xLTggMC0xMiAwLTEuNC0uNC0yLTEuOC0yLjItNy0uOS0xMy45LTIuMi0yMC45LTIuOS03LS42LTE0LS4zLTIwLjggMS45LTYuNyAyLjItMTEuNyA2LjItMTMuNyAxMy4xLTEuNiA1LjQtMS42IDEwLjggLjEgMTYuMiAxLjYgNS41IDUuMiA5LjIgMTAuNCAxMS4yek01NzYgODBsMCAzNTJjMCAyNi41LTIxLjUgNDgtNDggNDhMNDggNDgwYy0yNi41IDAtNDgtMjEuNS00OC00OEwwIDgwQzAgNTMuNSAyMS41IDMyIDQ4IDMybDQ4MCAwYzI2LjUgMCA0OCAyMS41IDQ4IDQ4ek0zNjguNSAxMDMuOWMuNCAxLjcgLjkgMy40IDEuNiA1LjEgMTYuNSA0MC42IDMyLjkgODEuMyA0OS41IDEyMS45IDEuNCAzLjUgMS43IDYuNCAuMiA5LjktMi44IDYuMi00LjkgMTIuNi03LjggMTguNy0yLjYgNS41LTYuNyA5LjUtMTIuNyAxMS4yLTQuMiAxLjEtOC41IDEuMy0xMi45IC45LTIuMS0uMi00LjItLjctNi4zLS44LTIuOC0uMi00LjIgMS4xLTQuMyA0LS4xIDIuOC0uMSA1LjYgMCA4LjMgLjEgNC42IDEuNiA2LjcgNi4yIDcuNSA0LjcgLjggOS40IDEuNiAxNC4yIDEuNyAxNC4zIC4zIDI1LjctNS40IDMzLjEtMTcuOSAyLjktNC45IDUuNi0xMC4xIDcuNy0xNS40IDE5LjgtNTAuMSAzOS41LTEwMC4zIDU5LjItMTUwLjUgLjYtMS41IDEuMS0zIDEuMy00LjYgLjQtMi40LS43LTMuNi0zLjEtMy43LTUuNi0uMS0xMS4xIDAtMTYuNyAwLTMuMSAwLTUuMyAxLjQtNi40IDQuMy0uNCAxLjEtLjkgMi4zLTEuMyAzLjRsLTI5LjEgODMuN2MtMi4xIDYuMS00LjIgMTIuMS02LjUgMTguNi0uNC0uOS0uNi0xLjQtLjgtMS45LTEwLjgtMjkuOS0yMS42LTU5LjktMzIuNC04OS44LTEuNy00LjctMy41LTkuNS01LjMtMTQuMi0uOS0yLjUtMi43LTQtNS40LTQtNi40LS4xLTEyLjgtLjItMTkuMi0uMS0yLjIgMC0zLjMgMS42LTIuOCAzLjd6TTI0Mi40IDIwNmMxLjcgMTEuNyA3LjYgMjAuOCAxOCAyNi42IDkuOSA1LjUgMjAuNyA2LjIgMzEuNyA0LjYgMTIuNy0xLjkgMjMuOS03LjMgMzMuOC0xNS41IC40LS4zIC44LS42IDEuNC0xIC41IDMuMiAuOSA2LjIgMS41IDkuMiAuNSAyLjYgMi4xIDQuMyA0LjUgNC40IDQuNiAuMSA5LjEgLjEgMTMuNyAwIDIuMy0uMSAzLjgtMS42IDQtMy45IC4xLS44IC4xLTEuNiAuMS0yLjNsMC04OC44YzAtMy42LS4yLTcuMi0uNy0xMC44LTEuNi0xMC44LTYuMi0xOS43LTE1LjktMjUuNC01LjYtMy4zLTExLjgtNS0xOC4yLTUuOS0zLS40LTYtLjctOS4xLTEuMWwtMTAgMGMtLjggLjEtMS42IC4zLTIuNSAuMy04LjIgLjQtMTYuMyAxLjQtMjQuMiAzLjUtNS4xIDEuMy0xMCAzLjItMTUgNC45LTMgMS00LjUgMy4yLTQuNCA2LjUgLjEgMi44LS4xIDUuNiAwIDguMyAuMSA0LjEgMS44IDUuMiA1LjcgNC4xIDYuNS0xLjcgMTMuMS0zLjUgMTkuNy00LjggMTAuMy0xLjkgMjAuNy0yLjcgMzEuMS0xLjIgNS40IC44IDEwLjUgMi40IDE0LjEgNyAzLjEgNCA0LjIgOC44IDQuNCAxMy43IC4zIDYuOSAuMiAxMy45IC4zIDIwLjggMCAuNC0uMSAuNy0uMiAxLjItLjQgMC0uOCAwLTEuMS0uMS04LjgtMi4xLTE3LjctMy42LTI2LjgtNC4xLTkuNS0uNS0xOC45IC4xLTI3LjkgMy4yLTEwLjggMy44LTE5LjUgMTAuMy0yNC42IDIwLjgtNC4xIDguMy00LjYgMTctMy40IDI1Ljh6TTk4LjcgMTA2LjlsMCAxNzUuM2MwIC44IDAgMS43IC4xIDIuNSAuMiAyLjUgMS43IDQuMSA0LjEgNC4yIDUuOSAuMSAxMS44IC4xIDE3LjcgMCAyLjUgMCA0LTEuNyA0LjEtNC4xIC4xLS44IC4xLTEuNyAuMS0yLjVsMC02MC43Yy45IC43IDEuNCAxLjIgMS45IDEuNiAxNSAxMi41IDMyLjIgMTYuNiA1MS4xIDEyLjkgMTcuMS0zLjQgMjguOS0xMy45IDM2LjctMjkuMiA1LjgtMTEuNiA4LjMtMjQuMSA4LjctMzcgLjUtMTQuMy0xLTI4LjQtNi44LTQxLjctNy4xLTE2LjQtMTguOS0yNy4zLTM2LjctMzAuOS0yLjctLjYtNS41LS44LTguMi0xLjJsLTcgMGMtMS4yIC4yLTIuNCAuMy0zLjYgLjUtMTEuNyAxLjQtMjIuMyA1LjgtMzEuOCAxMi43LTIgMS40LTMuOSAzLTUuOSA0LjUtLjEtLjUtLjMtLjgtLjQtMS4yLS40LTIuMy0uNy00LjYtMS4xLTYuOS0uNi0zLjktMi41LTUuNS02LjQtNS42bC05LjcgMGMtNS45LS4xLTYuOSAxLTYuOSA2Ljh6TTQ5My42IDMzOWMtMi43LS43LTUuMSAwLTcuNiAxLTQzLjkgMTguNC04OS41IDMwLjItMTM2LjggMzUuOC0xNC41IDEuNy0yOS4xIDIuOC00My43IDMuMi0yNi42IC43LTUzLjItLjgtNzkuNi00LjMtMTcuOC0yLjQtMzUuNS01LjctNTMtOS45LTM3LTguOS03Mi43LTIxLjctMTA2LjctMzguOC04LjgtNC40LTE3LjQtOS4zLTI2LjEtMTQtMy44LTIuMS02LjItMS41LTguMiAyLjFsMCAxLjdjMS4yIDEuNiAyLjIgMy40IDMuNyA0LjggMzYgMzIuMiA3Ni42IDU2LjUgMTIyIDcyLjkgMjEuOSA3LjkgNDQuNCAxMy43IDY3LjMgMTcuNSAxNCAyLjMgMjggMy44IDQyLjIgNC41IDMgLjEgNiAuMiA5IC40IC43IDAgMS40IC4yIDIuMSAuM2wxNy43IDBjLjctLjEgMS40LS4zIDIuMS0uMyAxNC45LS40IDI5LjgtMS44IDQ0LjYtNCAyMS40LTMuMiA0Mi40LTguMSA2Mi45LTE0LjcgMjkuNi05LjYgNTcuNy0yMi40IDgzLjQtNDAuMSAyLjgtMS45IDUuNy0zLjggOC02LjIgNC4zLTQuNCAyLjMtMTAuNC0zLjMtMTEuOXpNNTQ0IDMxMS4zYy0uOC00LjItNC01LjgtNy42LTctNS43LTEuOS0xMS42LTIuOC0xNy42LTMuMy0xMS0uOS0yMi0uNC0zMi44IDEuNi0xMiAyLjItMjMuNCA2LjEtMzMuNSAxMy4xLTEuMiAuOC0yLjQgMS44LTMuMSAzLS42IC45LS43IDIuMy0uNSAzLjQgLjMgMS4zIDEuNyAxLjYgMyAxLjUgLjYgMCAxLjIgMCAxLjgtLjFsMTkuNS0yLjFjOS42LS45IDE5LjItMS41IDI4LjgtLjggNC4xIC4zIDguMSAxLjIgMTIgMi4yIDQuMyAxLjEgNi4yIDQuNCA2LjQgOC43IC4zIDYuNy0xLjIgMTMuMS0yLjkgMTkuNS0zLjUgMTIuOS04LjMgMjUuNC0xMy4zIDM3LjgtLjMgLjgtLjcgMS43LS44IDIuNS0uNCAyLjUgMSA0IDMuNCAzLjUgMS40LS4zIDMtMS4xIDQtMi4xIDMuNy0zLjYgNy41LTcuMiAxMC42LTExLjIgMTAuNy0xMy44IDE3LTI5LjYgMjAuNy00Ni42IC43LTMgMS4yLTYuMSAxLjctOS4xIC4yLTQuNyAuMi05LjYgLjItMTQuNXoiXX0sdjdlPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImViYXkiLGljb246WzY0MCw1MTIsW10sImY0ZjQiLCJNNjA2LjUgMTg5LjVsLTU0LjggMTA5LjktNTQuOS0xMDkuOS0zNy41IDAgMTAuOSAyMC42Yy0xMS41LTE5LTM1LjktMjYtNjMuMy0yNi0zMS44IDAtNjcuOSA4LjctNzEuNSA0My4xbDMzLjcgMGMxLjQtMTMuOCAxNS43LTIxLjggMzUtMjEuOCAyNiAwIDQxIDkuNiA0MSAzM2wwIDMuNGMtMTIuNyAwLTI4IC4xLTQxLjcgLjQtNDIuNCAuOS02OS42IDEwLTc2LjcgMzQuNCAxLTUuMiAxLjUtMTAuNiAxLjUtMTYuMiAwLTUyLjEtMzkuNy03Ni4yLTc1LjQtNzYuMi0yMS4zIDAtNDMgNS41LTU4LjcgMjQuMmwwLTgwLjYtMzIuMSAwIDAgMTY5LjVjMCAxMC4zLS42IDIyLjktMS4xIDMzLjFsMzEuNSAwYy43LTYuMyAxLjEtMTIuOSAxLjEtMTkuNSAxMy42IDE2LjYgMzUuNCAyNC45IDU4LjcgMjQuOSAzNi45IDAgNjQuOS0yMS45IDczLjMtNTQuMi0uNSAyLjgtLjcgNS44LS43IDkgMCAyNC4xIDIxLjEgNDUgNjAuNiA0NSAyNi42IDAgNDUuOC01LjcgNjEuOS0yNS41IDAgNi42IC4zIDEzLjMgMS4xIDIwLjJsMjkuOCAwYy0uNy04LjItMS0xNy41LTEtMjYuOGwwLTY1LjZjMC05LjMtMS43LTE3LjItNC44LTIzLjhsNjEuNSAxMTYuMS0yOC41IDU0LjEgMzUuOSAwIDk5LjItMTk0LjgtMzQgMHpNMjQ0LjIgMzEzLjhjLTI5LjYgMC01MC4yLTIxLjUtNTAuMi01My44IDAtMzIuNCAyMC42LTUzLjggNTAuMi01My44IDI5LjggMCA1MC4yIDIxLjQgNTAuMiA1My44IDAgMzIuMy0yMC40IDUzLjgtNTAuMiA1My44em0yMDAuOS00Ny4zYzAgMzAtMTcuOSA0OC40LTUxLjYgNDguNC0yNS4xIDAtMzUtMTMuNC0zNS0yNS44IDAtMTkuMSAxOC4xLTI0LjQgNDcuMi0yNS4zIDEzLjEtLjUgMjcuNi0uNiAzOS40LS42bDAgMy4zek0zMy4yIDI2OC4xbDEyOC44IDAgMC04LjVjMC01MS43LTMzLjEtNzUuNC03OC40LTc1LjQtNTYuOCAwLTgzIDMwLjgtODMgNzcuNiAwIDQyLjUgMjUuMyA3NCA4Mi41IDc0IDMxLjQgMCA2OC0xMS43IDc0LjQtNDYuMWwtMzMuMSAwYy0xMiAzNS44LTg3LjcgMzYuNy05MS4yLTIxLjZ6bTk1LTIxLjRsLTk0LjQgMGM2LjktNTYuNiA5Mi4xLTU0LjcgOTQuNCAweiJdfSx5N2U9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiY29udGFvIixpY29uOls1MTIsNTEyLFtdLCJmMjZkIiwiTTQ1LjQgMzA1YzE0LjQgNjcuMSAyNi40IDEyOSA2OC4yIDE3NUwzNCA0ODBjLTE4LjcgMC0zNC0xNS4yLTM0LTM0TDAgNjZDMCA0Ny4zIDE1LjIgMzIgMzQgMzJsNTcuNyAwYy0xMy44IDEyLjYtMjYuMSAyNy4yLTM2LjkgNDMuNi00NS40IDcwLTI3IDE0Ni44LTkuNCAyMjkuNHpNNDc4IDMybC05MC4yIDBjMjEuNCAyMS40IDM5LjIgNDkuNSA1Mi43IDg0LjFMMzAzLjQgMTQ1LjRjLTE0LjktMjktMzcuOC01My4zLTgyLjYtNDMuOS0yNC42IDUuMy00MSAxOS4zLTQ4LjMgMzQuNi04LjggMTguNy0xMy4yIDM5LjggOC4yIDE0MC4zIDIxLjEgMTAwLjIgMzMuNyAxMTcuNyA0OS41IDEzMS4yIDEyLjkgMTEuMSAzMy40IDE3IDU4LjMgMTEuNyA0NC41LTkuNCA1NS43LTQwLjcgNTcuNC03My4ybDEzNy40LTI5LjZjMy4yIDcxLjUtMTguNyAxMjUuMi01Ny40IDE2My42bDUyLjEgMGMxOC43IDAgMzQtMTUuMiAzNC0zNEw1MTIgNjZjMC0xOC44LTE1LjItMzQtMzQtMzR6Il19LHg3ZT17cHJlZml4OiJmYWIiLGljb25OYW1lOiJlbGxvIixpY29uOls1MTIsNTEyLFtdLCJmNWYxIiwiTTI1NiA4YTI0OCAyNDggMCAxIDAgMCA0OTYgMjQ4IDI0OCAwIDEgMCAwLTQ5NnpNMzk5LjggMjkzLjJDMzgzLjMgMzU4LjUgMzIzLjggNDA0LjggMjU2IDQwNC44UzEyOC43IDM1OC41IDExMi4yIDI5My4yYy0xLjYtNy40IDIuNS0xNS43IDkuOS0xNy40czE1LjcgMi41IDE3LjQgOS45YzE0IDUyLjkgNjIgOTAuMSAxMTYuNiA5MC4xczEwMi41LTM3LjIgMTE2LjYtOTAuMWMxLjctNy40IDkuOS0xMi40IDE3LjQtOS45IDcuNCAxLjcgMTIuNCA5LjkgOS45IDE3LjR6Il19LHc3ZT17cHJlZml4OiJmYWIiLGljb25OYW1lOiJzaXN0cml4IixpY29uOls0NDgsNTEyLFtdLCJmM2VlIiwiTTQ0OCA0NDlMMzAxLjIgMzAwLjJjMjAtMjcuOSAzMS45LTYyLjIgMzEuOS05OS4yIDAtOTMuMS03NC43LTE2OC45LTE2Ni41LTE2OC45LTkxLjktLjEtMTY2LjYgNzUuNy0xNjYuNiAxNjguOFM3NC43IDM2OS44IDE2Ni41IDM2OS44YzM5LjggMCA3Ni4zLTE0LjIgMTA1LTM3LjlMNDE3LjUgNDgwIDQ0OCA0NDl6TTE2Ni41IDMzMC44Yy03MC42IDAtMTI4LjEtNTguMy0xMjguMS0xMjkuOVM5NS45IDcxIDE2Ni41IDcxIDI5NC42IDEyOS4zIDI5NC42IDIwMC45IDIzNy4yIDMzMC44IDE2Ni41IDMzMC44eiJdfSxNN2U9e3ByZWZpeDoiZmFiIixpY29uTmFtZToicGVyaXNjb3BlIixpY29uOls0NDgsNTEyLFtdLCJmM2RhIiwiTTM3MCA2My42Yy0zOC42LTQxLTg5LjUtNjMuNi0xNDMuNC02My42LTExNC43IDAtMjA4LjEgOTYuMi0yMDguMSAyMTQuNCAwIDc1LjEgNTcuOCAxNTkuOCA4Mi43IDE5Mi43IDM2LjYgNDguNCA5MS40IDEwNC45IDEyNS40IDEwNC45IDQxLjYgMCAxMTIuOS05NC4yIDEyMC45LTEwNSAyNC42LTMzLjEgODItMTE4LjMgODItMTkyLjYgMC01Ni41LTIxLjEtMTEwLjEtNTkuNS0xNTAuOHpNMjI2LjYgNDkzLjljLTQyLjUgMC0xOTAtMTY3LjMtMTkwLTI3OS40IDAtMTA3LjQgODMuOS0xOTYuMyAxOTAtMTk2LjMgMTAwLjggMCAxODQuNyA4OSAxODQuNyAxOTYuMyAuMSAxMTIuMS0xNDcuNCAyNzkuNC0xODQuNyAyNzkuNHpNMzM4IDIwNi44YzAgNTkuMS01MS4xIDEwOS43LTExMC44IDEwOS43LTEwMC42IDAtMTUwLjctMTA4LjItOTIuOS0xODEuOGwwIC40YzAgMjQuNSAyMC4xIDQ0LjQgNDQuOCA0NC40czQ0LjgtMTkuOSA0NC44LTQ0LjRjMC0xOC4yLTExLjEtMzMuOC0yNi45LTQwLjcgNzYuNi0xOS4yIDE0MSAzOS4zIDE0MSAxMTIuNHoiXX0sejdlPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImV4cGVkaXRlZHNzbCIsaWNvbjpbNTEyLDUxMixbXSwiZjIzZSIsIk0yNTYgNDMuNGEyMTIuNiAyMTIuNiAwIDEgMCAwIDQyNS4yIDIxMi42IDIxMi42IDAgMSAwIDAtNDI1LjJ6TTE1OC42IDE3Ni4zYzAtNTMuNyA0My43LTk3LjQgOTcuNC05Ny40czk3LjQgNDMuNyA5Ny40IDk3LjRsMCAyNi42YzAgNS0zLjkgOC45LTguOSA4LjlsLTE3LjcgMGMtNSAwLTguOS0zLjktOC45LTguOWwwLTI2LjZjMC04Mi4xLTEyNC04Mi4xLTEyNCAwbDAgMjYuNmMwIDUtMy45IDguOS04LjkgOC45bC0xNy43IDBjLTUgMC04LjktMy45LTguOS04LjlsMC0yNi42IC4yIDB6TTM5Ny43IDM4MGMwIDkuNy04IDE3LjctMTcuNyAxNy43bC0yNDggMGMtOS43IDAtMTcuNy04LTE3LjctMTcuN2wwLTE0MS43YzAtOS43IDgtMTcuNyAxNy43LTE3LjdsMjQ4IDBjOS43IDAgMTcuNyA4IDE3LjcgMTcuN2wwIDE0MS43em0tMjQ4LTEzNy4zbDAgMTMyLjljMCAyLjUtMS45IDQuNC00LjQgNC40bC04LjkgMGMtMi41IDAtNC40LTEuOS00LjQtNC40bDAtMTMyLjljMC0yLjUgMS45LTQuNCA0LjQtNC40bDguOSAwYzIuNSAwIDQuNCAxLjkgNC40IDQuNHptMTQxLjcgNDguN2MwIDEzLTcuMiAyNC40LTE3LjcgMzAuNGwwIDMxLjZjMCA1LTMuOSA4LjktOC45IDguOWwtMTcuNyAwYy01IDAtOC45LTMuOS04LjktOC45bDAtMzEuNmMtMTAuNS02LjEtMTcuNy0xNy40LTE3LjctMzAuNCAwLTE5LjcgMTUuOC0zNS40IDM1LjQtMzUuNHMzNS41IDE1LjggMzUuNSAzNS40ek0yNTYgOGEyNDggMjQ4IDAgMSAwIDAgNDk2IDI0OCAyNDggMCAxIDAgMC00OTZ6bTAgMTcuN2EyMzAuMyAyMzAuMyAwIDEgMSAwIDQ2MC42IDIzMC4zIDIzMC4zIDAgMSAxIDAtNDYwLjZ6Il19LGs3ZT17cHJlZml4OiJmYWIiLGljb25OYW1lOiJuYXBzdGVyIixpY29uOls1MTIsNTEyLFtdLCJmM2QyIiwiTTMwNi4zIDM3My42Yy0xNC4yIDEzLjYtMzEuMyAyNC4xLTUwLjQgMzAuNS0xOS02LjQtMzYuMi0xNi45LTUwLjMtMzAuNWwxMDAuNyAwem00NC0xOTkuNmMyMC0xNi45IDQzLjYtMjkuMiA2OS42LTM2LjJsMCAxNjEuMmMwIDIxOS40LTMyOCAyMTcuNi0zMjggLjNsMC0xNjEuNmMyNS45IDYuOSA0OS42IDE5LjYgNjkuNSAzNi40IDU2LjgtNDAgMTMyLjUtMzkuOSAxODguOS0uMXpNMTQxLjUgMTE1LjVjNjQuNC02MCAxNjQuMy02MC4xIDIyOC45LS4yLTcuMSAzLjUtMTMuOSA3LjMtMjAuNiAxMS41LTU4LjctMzAuNS0xMjkuMi0zMC40LTE4Ny45IC4xLTYuMy00LTEzLjktOC4yLTIwLjQtMTEuNHpNNTEuOCA5My4ybDAgNjkuM2MtNTguNCAzNi41LTU4LjQgMTIxLjEgLjEgMTU4LjMgMjYuNCAyNDUuMSAzODEuNyAyNDAuMyA0MDcuNiAxLjVsLjMtMS43YzU4LjctMzYuMyA1OC45LTEyMS43IC4yLTE1OC4ybDAtNjkuMmMtMTcuMyAuNS0zNCAzLTUwLjEgNy40LTgyLTkxLjUtMjI1LjUtOTEuNS0zMDcuNSAuMS0xNi4zLTQuNC0zMy4xLTctNTAuNi03LjV6TTI2Ny4yIDM1MnMzNi0uMyA2MS4zLTEuNWMxMC4yLS41IDIxLjEtNCAyNS41LTYuNSAyNi4zLTE1LjEgMjUuNC0zOS4yIDI2LjItNDcuNC03OS41LS42LTk5LjktMy45LTExMyA1NS40ek0xMzEuNyAyOTYuN2MuOCA4LjItLjEgMzIuMyAyNi4yIDQ3LjQgNC40IDIuNSAxNS4yIDYgMjUuNSA2LjUgMjUuMyAxLjEgNjEuMyAxLjUgNjEuMyAxLjUtMTMuMi01OS40LTMzLjctNTYuMS0xMTMtNTUuNHpNMzAwLjggNDIwLjFjLTMuMi01LjMtNi45LTcuMy02LjktNy4zLTI0LjggNy4zLTUyLjIgNi45LTc1LjkgMCAwIDAtMi45IDEuNS02LjQgNi42LTIuOCA0LjEtMy43IDkuNi0zLjcgOS42IDI5LjEgMTcuNiA2Ny4xIDE3LjYgOTYuMiAwLS4xLS4xLS4zLTQtMy4zLTguOXoiXX0sUzdlPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImRlbGljaW91cyIsaWNvbjpbNDQ4LDUxMixbXSwiZjFhNSIsIk00NDYuNiA2OGMtLjQtMS41LS45LTMtMS40LTQuNS0uOS0yLjUtMi00LjgtMy4zLTcuMS0xLjQtMi40LTMtNC44LTQuNy02LjktMi4xLTIuNS00LjQtNC44LTYuOS02LjgtMS4xLS45LTIuMi0xLjctMy4zLTIuNS0xLjMtLjktMi42LTEuNy00LTIuNC0xLjgtMS0zLjYtMS44LTUuNS0yLjUtMS43LS43LTMuNS0xLjMtNS40LTEuNy0zLjgtMS03LjktMS41LTEyLTEuNWwtMzUyIDBDMjEuNiAzMiAuMSA1My41IC4xIDgwbDAgMzUyYzAgNC4xIC41IDguMiAxLjUgMTIgMiA3LjcgNS44IDE0LjYgMTEgMjAuMyAxIDEuMSAyLjEgMi4yIDMuMyAzLjMgNS43IDUuMiAxMi42IDkgMjAuMyAxMSAzLjggMSA3LjkgMS41IDEyIDEuNWwzNTIgMGMyNi41IDAgNDgtMjEuNSA0OC00OGwwLTM1Mi4xYy0uMS00LjEtLjYtOC4yLTEuNi0xMnpNNDE2LjEgNDMyYzAgOC44LTcuMiAxNi0xNiAxNmwtMTc2IDAgMC0xOTItMTkyIDAgMC0xNzZjMC04LjggNy4yLTE2IDE2LTE2bDE3NiAwIDAgMTkyIDE5MiAwIDAgMTc2eiJdfSxDN2U9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiZ3VpbGRlZCIsaWNvbjpbNDQ4LDUxMixbXSwiZTA3ZSIsIk00NDMuOSA2NEw1IDY0YzAgMTAzLjMgMjIuMiAxODAuMSA0My40IDIyMi40IDY0LjEgMTI3LjggMTc2IDE2MS42IDE3Ny4zIDE2MS42IDU1LjctMjAuNSAxMDQuNS01Ni4zIDE0MC42LTEwMy41IDI1LjktMzMuOSA1My4xLTg3LjIgNjUuOS0xNDUuOGwtMjU5LjkgMGM0LjEgMzYuNCAyMi4yIDY3LjkgNDUuMSA4Ni45bDg4LjYgMGMtMTcgMjguMi00OC4yIDU0LjQtODAuNSA2OS41LTMxLjItMTMuMy02OS4xLTQ2LjUtOTYuNS05OC40LTI2LjctNTMuOC0yNy4xLTEwNS45LTI3LjEtMTA1LjlsMzM2LjEgMGM0LTI4LjggNS45LTU3LjkgNS45LTg2Ljl6Il19LF83ZT17cHJlZml4OiJmYWIiLGljb25OYW1lOiJvYnNpZGlhbiIsaWNvbjpbMzg0LDUxMixbXSwiZTg3OSIsIk0xNDIuMyAzMjAuM2MzNi4xLTguMiA3MC4zLTExIDEwMS4zIC43IDMxLjggMTEuOSA2MS43IDM5LjYgODYuNyA5Ni04LjEgMTcuNy0xMi40IDM2LjktMTQuNyA1My44LTMuMSAyMi45LTI1LjQgNDAuNy00Ny43IDM0LjYtMzEuNy04LjctNjguMy0yMi4zLTEwMS4zLTI0LjktNC40LS4zLTUwLjYtMy44LTUwLjYtMy44LTEuNy0uMS0zLjQtLjQtNS4xLS44IDMxLjUtNjQuMiAzOC4yLTExNS4xIDMxLjMtMTU1LjR6TTU1IDIxOS41YzIyLjMgMTQuOCA0OS41IDM3LjggNjQuMSA3My42IDE2LjEgMzkuNCAxNy44IDk1LjctMjEuNiAxNzYuMS0xLS44LTIuMS0xLjctMy0yLjdMNy40IDM3Ni44Yy05LjUtOS44LTEyLjEtMjQuNC02LjUtMzYuOSAuNi0xLjMgNDQuNi05OC4zIDU0LjEtMTIwLjR6bTI2NC4zLTkxLjNjNC45IDYuMiA3LjQgMTQgNy40IDIxLjkgLjEgMjAuOCAxLjggNjMuNiAxMy4zIDkxLjIgMTEuMiAyNi44IDMxLjggNTUuOCA0Mi41IDcwIDQuMSA1LjUgNC44IDEyLjkgMS4zIDE4LjctNy42IDEyLjgtMjIuNiAzNy41LTQzLjggNjkuMi0uMyAuNC0uNiAuOS0uOCAxLjMtMjUuMi01Mi4yLTU1LjktODAuNy05MC40LTkzLjYtOS42LTMuNi0xOS41LTYtMjkuNC03LjMtMTcuOC00NS44LTIzLjItNzkuNy0yMi0xMDYuNCAxLjItMjcuNCA5LjItNDcuOCAxOC4yLTY2LjMgOC45LTE4LjEgMTkuOC0zNS45IDI0LjktNTUuNyAzLjItMTIuNSA0LjItMjUuOCAxLjctNDAuOWw3Ny4xIDk4ek0xODQuMiAxNC4xYzEwLjMtOS4yIDI0LjYtMTAuOCAzNi4zLTUuNSA5LjYgMjQuNiA5LjcgNDIuOCA1LjYgNTguOC00LjYgMTcuOC0xNC4xIDMzLTIzLjkgNTIuOC05LjYgMTkuNS0xOC40IDQyLTE5LjcgNzIuMy0xLjIgMjcuOSA0LjEgNjEuOSAyMC40IDEwNS44LTIxLS42LTQyLjUgMi42LTYzLjcgNy40LTEuNy02LjQtMy44LTEyLjQtNi4xLTE4LjItMTcuMy00Mi4yLTQ5LjktNjcuOS03NC4xLTgzLjMgMy4xLTE4LjcgOC4yLTU1LjQgMTEuNi03Ny41IDEuMi03LjYgNC45LTE0LjYgMTAuNy0xOS44TDE4NC4yIDE0LjF6Il19LFQ3ZT17cHJlZml4OiJmYWIiLGljb25OYW1lOiJ4Ym94IixpY29uOls1MTIsNTEyLFtdLCJmNDEyIiwiTTM2OS45IDMxOC4yYzQ0LjMgNTQuMyA2NC43IDk4LjggNTQuNCAxMTguNy03LjkgMTUuMS01Ni43IDQ0LjYtOTIuNiA1NS45LTI5LjYgOS4zLTY4LjQgMTMuMy0xMDAuNCAxMC4yLTM4LjItMy43LTc2LjktMTcuNC0xMTAuMS0zOS0yNy45LTE4LjItMzQuMi0yNS43LTM0LjItNDAuNiAwLTI5LjkgMzIuOS04Mi4zIDg5LjItMTQyLjEgMzItMzMuOSA3Ni41LTczLjcgODEuNC03Mi42IDkuNCAyLjEgODQuMyA3NS4xIDExMi4zIDEwOS41ek0xODguNiAxNDMuOGMtMjkuNy0yNi45LTU4LjEtNTMuOS04Ni40LTYzLjQtMTUuMi01LjEtMTYuMy00LjgtMjguNyA4LjEtMjkuMiAzMC40LTUzLjUgNzkuNy02MC4zIDEyMi40LTUuNCAzNC4yLTYuMSA0My44LTQuMiA2MC41IDUuNiA1MC41IDE3LjMgODUuNCA0MC41IDEyMC45IDkuNSAxNC42IDEyLjEgMTcuMyA5LjMgOS45LTQuMi0xMS0uMy0zNy41IDkuNS02NCAxNC4zLTM5IDUzLjktMTEyLjkgMTIwLjMtMTk0LjR6bTMxMS42IDYzLjVjLTE2LjktODAtNjcuNS0xMzAuMy03NC42LTEzMC4zLTcuMyAwLTI0LjIgNi41LTM2IDEzLjktMjMuMyAxNC41LTQxIDMxLjQtNjQuMyA1Mi44IDQyLjQgNTMuMyAxMDIuMiAxMzkuNCAxMjIuOSAyMDIuMyA2LjggMjAuNyA5LjcgNDEuMSA3LjQgNTIuMy0xLjcgOC41LTEuNyA4LjUgMS40IDQuNiA2LjEtNy43IDE5LjktMzEuMyAyNS40LTQzLjUgNy40LTE2LjIgMTUtNDAuMiAxOC42LTU4LjcgNC4zLTIyLjUgMy45LTcwLjgtLjgtOTMuNHpNMTQxLjMgNDNjNDcuNy0yLjUgMTA5LjcgMzQuNSAxMTQuMyAzNS40IC43IC4xIDEwLjQtNC4yIDIxLjYtOS43IDYzLjktMzEuMSA5NC0yNS44IDEwNy40LTI1LjItNjMuOS0zOS4zLTE1Mi43LTUwLTIzMy45LTExLjctMjMuNCAxMS4xLTI0IDExLjktOS40IDExLjJ6Il19LEw3ZT17cHJlZml4OiJmYWIiLGljb25OYW1lOiJ1bnRhcHBkIixpY29uOls2NDAsNTEyLFtdLCJmNDA1IiwiTTQwMS41IDQ5LjlDMzIxLjcgMjEwIDMxNi45IDIwMi40IDMxMy42IDIyMy4xbC01LjIgMzIuOGMtMS45IDEyLTYuNiAyMy41LTEzLjcgMzMuNEwxNDUuOCA0OTcuMWMtNy42IDEwLjYtMjAuNCAxNi4yLTMzLjQgMTQuNi00MC4zLTUtNzcuOC0zMi4yLTk1LjMtNjguNS01LjctMTEuOC00LjUtMjUuOCAzLjEtMzYuNEwxNjkuMSAxOTguOWM3LjEtOS45IDE2LjQtMTggMjcuMi0yMy43bDI5LjMtMTUuNWMxOC41LTkuOCA5LjctMTEuOSAxMzUuNi0xMzguOSAxLTQuOCAxLTcuMyAzLjYtOCAzLS43IDYuNi0xIDYuMy00LjZsLS40LTQuNmMtLjItMS45IDEuMy0zLjYgMy4yLTMuNiA0LjUtLjEgMTMuMiAxLjIgMjUuNiAxMCAxMi4zIDguOSAxNi40IDE2LjggMTcuNyAyMS4xIC42IDEuOC0uNiAzLjctMi40IDQuMmwtNC41IDEuMWMtMy40IC45LTIuNSA0LjQtMi4zIDcuNCAuMSAyLjgtMi4zIDMuNi02LjUgNi4xek0yMzAuMyAzNi40YzMuNCAuOSAyLjUgNC40IDIuMyA3LjQtLjIgMi43IDIuMSAzLjUgNi40IDYgNy45IDE1LjkgMTUuMyAzMC41IDIyLjIgNDQgLjcgMS4zIDIuMyAxLjUgMy4zIC41IDExLjItMTIgMjQuNi0yNi4yIDQwLjUtNDIuNiAxLjMtMS40IDEuNC0zLjUgLjEtNC45LTgtOC4yLTE2LjUtMTYuOS0yNS42LTI2LjEtMS00LjctMS03LjMtMy42LTgtMy0uOC02LjYtMS02LjMtNC42IC4zLTMuMyAxLjQtOC4xLTIuOC04LjItNC41LS4xLTEzLjIgMS4xLTI1LjYgMTAtMTIuMyA4LjktMTYuNCAxNi44LTE3LjcgMjEuMS0xLjQgNC4yIDMuNiA0LjYgNi44IDUuNHpNNjIwLjIgNDA2LjdMNDcxLjQgMTk4LjhjLTEzLjItMTguNS0yNi42LTIzLjQtNTYuNC0zOS4xLTExLjItNS45LTE0LjItMTAuOS0zMC41LTI4LjktMS0xLjEtMi45LS45LTMuNiAuNS00Ni4zIDg4LjgtNDcuMSA4Mi44LTQ5IDk0LjgtMS43IDEwLjctMS4zIDIwIC4zIDI5LjggMS45IDEyIDYuNiAyMy41IDEzLjcgMzMuNEw0OTQuOCA0OTcuMmM3LjYgMTAuNiAyMC4yIDE2LjIgMzMuMSAxNC43IDQwLjMtNC45IDc4LTMyIDk1LjctNjguNiA1LjQtMTEuOSA0LjMtMjUuOS0zLjQtMzYuNnoiXX0sJDdlPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6Imdvb2dsZS1wbHVzLWciLGljb246WzY0MCw1MTIsW10sImYwZDUiLCJNMzg2LjMgMjI4LjVjMS44IDkuNyAzLjEgMTkuNCAzLjEgMzIgMCAxMDkuOC03My42IDE4Ny41LTE4NC40IDE4Ny41LTEwNi4xIDAtMTkyLTg1LjktMTkyLTE5MlM5OC45IDY0IDIwNSA2NGM1MS45IDAgOTUuMSAxOC45IDEyOC42IDUwLjNsLTUyLjEgNTBjLTE0LjEtMTMuNi0zOS0yOS42LTc2LjUtMjkuNi02NS41IDAtMTE4LjkgNTQuMi0xMTguOSAxMjEuM1MxMzkuNSAzNzcuMyAyMDUgMzc3LjNjNzYgMCAxMDQuNS01NC43IDEwOS04Mi44bC0xMDkgMCAwLTY2IDE4MS4zIDAgMCAwem0xODUuNCA2LjRsMC01NS43LTU2IDAgMCA1NS43LTU1LjcgMCAwIDU2IDU1LjcgMCAwIDU1LjcgNTYgMCAwLTU1LjcgNTUuNyAwIDAtNTYtNTUuNyAweiJdfSxBN2U9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiZ2l0aHViLWFsdCIsaWNvbjpbNTEyLDUxMixbXSwiZjExMyIsIk0yMDIuMSAzMjguN2MwIDIwLjktMTAuOSA1NS4xLTM2LjcgNTUuMXMtMzYuNy0zNC4yLTM2LjctNTUuMSAxMC45LTU1LjEgMzYuNy01NS4xIDM2LjcgMzQuMiAzNi43IDU1LjF6TTQ5NiAyNzguMmMwIDMxLjktMy4yIDY1LjctMTcuNSA5NS0zNy45IDc2LjYtMTQyLjEgNzQuOC0yMTYuNyA3NC44LTc1LjggMC0xODYuMiAyLjctMjI1LjYtNzQuOC0xNC42LTI5LTIwLjItNjMuMS0yMC4yLTk1IDAtNDEuOSAxMy45LTgxLjUgNDEuNS0xMTMuNi01LjItMTUuOC03LjctMzIuNC03LjctNDguOCAwLTIxLjUgNC45LTMyLjMgMTQuNi01MS44IDQ1LjMgMCA3NC4zIDkgMTA4LjggMzYgMjktNi45IDU4LjgtMTAgODguNy0xMCAyNyAwIDU0LjIgMi45IDgwLjQgOS4yIDM0LTI2LjcgNjMtMzUuMiAxMDcuOC0zNS4yIDkuOCAxOS41IDE0LjYgMzAuMyAxNC42IDUxLjggMCAxNi40LTIuNiAzMi43LTcuNyA0OC4yIDI3LjUgMzIuNCAzOSA3Mi4zIDM5IDExNC4yem0tNjQuMyA1MC41YzAtNDMuOS0yNi43LTgyLjYtNzMuNS04Mi42LTE4LjkgMC0zNyAzLjQtNTYgNi0xNC45IDIuMy0yOS44IDMuMi00NS4xIDMuMi0xNS4yIDAtMzAuMS0uOS00NS4xLTMuMi0xOC43LTIuNi0zNy02LTU2LTYtNDYuOCAwLTczLjUgMzguNy03My41IDgyLjYgMCA4Ny44IDgwLjQgMTAxLjMgMTUwLjQgMTAxLjNsNDguMiAwYzcwLjMgMCAxNTAuNi0xMy40IDE1MC42LTEwMS4zem0tODIuNi01NS4xYy0yNS44IDAtMzYuNyAzNC4yLTM2LjcgNTUuMXMxMC45IDU1LjEgMzYuNyA1NS4xIDM2LjctMzQuMiAzNi43LTU1LjEtMTAuOS01NS4xLTM2LjctNTUuMXoiXX0sRDdlPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImdldC1wb2NrZXQiLGljb246WzQ0OCw1MTIsW10sImYyNjUiLCJNNDA3LjYgNjRsLTM2NyAwQzE4LjUgNjQgMCA4Mi41IDAgMTA0LjZMMCAyMzkuOEMwIDM2NC41IDk5LjcgNDY0IDIyNC4yIDQ2NCAzNDguMiA0NjQgNDQ4IDM2NC41IDQ0OCAyMzkuOGwwLTEzNS4yQzQ0OCA4Mi4yIDQzMC4zIDY0IDQwNy42IDY0em0tMTYyIDI2OC41Yy0xMi40IDExLjgtMzEuNCAxMS4xLTQyLjQgMC0xMTMuNy0xMDguOS0xMTQuOS0xMDUuMS0xMTQuOS0xMjMuMiAwLTE2LjkgMTMuOC0zMC43IDMwLjctMzAuNyAxNyAwIDE2LjEgMy44IDEwNS4yIDg5LjMgOTAuNi04Ni45IDg4LjYtODkuMyAxMDUuNS04OS4zczMwLjcgMTMuOCAzMC43IDMwLjdjMCAxNy44LTIuOSAxNS43LTExNC44IDEyMy4yeiJdfSxFN2U9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiZ2xpZGUiLGljb246WzQ0OCw1MTIsW10sImYyYTUiLCJNMjUyLjggMTQ4LjZjMCA4LjgtMS42IDE3LjctMy40IDI2LjQtNS44IDI3LjgtMTEuNiA1NS44LTE3LjMgODMuNi0xLjQgNi4zLTguMyA0LjktMTMuNyA0LjktMjMuOCAwLTMwLjUtMjYtMzAuNS00NS41IDAtMjkuMyAxMS4yLTY4LjEgMzguNS04My4xIDQuMy0yLjUgOS4yLTQuMiAxNC4xLTQuMiAxMS40IDAgMTIuMyA4LjMgMTIuMyAxNy45ek00NDggODBsMCAzNTJjMCAyNi41LTIxLjUgNDgtNDggNDhMNDggNDgwYy0yNi41IDAtNDgtMjEuNS00OC00OEwwIDgwQzAgNTMuNSAyMS41IDMyIDQ4IDMybDM1MiAwYzI2LjUgMCA0OCAyMS41IDQ4IDQ4ek0zODQgMjY3YzAtNS4xLTIwLjgtMzcuNy0yNS41LTM5LjUtMi4yLS45LTcuMi0yLjMtOS42LTIuMy0yMy4xIDAtMzguNyAxMC41LTU4LjIgMjEuNWwtLjUtLjVjNC4zLTI5LjQgMTQuNi01Ny4yIDE0LjYtODcuNCAwLTQ0LjYtMjMuOC02Mi43LTY3LjUtNjIuNy03MS43IDAtMTA4IDcwLjgtMTA4IDEyMy41IDAgNTQuNyAzMiA4NSA4Ni4zIDg1IDcuNSAwIDYuOS0uNiA2LjkgMi4zLTEwLjUgODAuMy01Ni41IDgyLjktNTYuNSA1OC45IDAtMjQuNCAyOC0zNi41IDI4LjMtMzgtLjItNy42LTI5LjMtMTcuMi0zNi43LTE3LjItMjEuMSAwLTMyLjcgMzMtMzIuNyA1MC42IDAgMzIuMyAyMC40IDU0LjcgNTMuMyA1NC43IDQ4LjIgMCA4My40LTQ5LjcgOTQuMy05MS43IDkuNC0zNy43IDctMzkuNCAxMi4zLTQyLjEgMjAtMTAuMSAzNS44LTE2LjggNTguNC0xNi44IDExLjEgMCAxOSAyLjMgMzYuNyA1LjIgMS44IC4xIDQuMS0xLjcgNC4xLTMuNXoiXX0sUDdlPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImJpdHkiLGljb246WzUxMiw1MTIsW10sImYzN2EiLCJNODYuNSA2Ny4yYzk1LjQtODkuMiAyNDYuMS05MS4yIDM0My4xIDMuOCAxNC4zIDE0LjEtNi40IDM3LjEtMjIuNCAyMS41LTg0LjgtODIuNC0yMTUuOC04MC4zLTI5OC45LTMuMi0xNi4zIDE1LjEtMzYuNS04LjMtMjEuOC0yMi4xem05OC45IDQxOC42YzE5LjMgNS43IDI5LjMtMjMuNiA3LjktMzAtMTEyLjItMzMuOS0xNzUuOC0xNDkuNy0xNDcuNS0yNjEgNS0xOS42LTI0LjktMjguMS0zMC4yLTcuMS0zMi4xIDEyNy40IDQxLjEgMjU5LjggMTY5LjggMjk4LjF6bTE0OC4xLTJjMTIxLjktNDAuMiAxOTIuOS0xNjYuOSAxNjQuNC0yOTEtNC41LTE5LjctMzQuOS0xMy44LTMwIDcuOSAyNC4yIDEwNy43LTM3LjEgMjE3LjktMTQzLjIgMjUzLjQtMjEuMiA3LTEwLjQgMzYgOC44IDI5Ljd6bS02Mi45LTc5bC4yLTcxLjhjMC04LjItNi42LTE0LjgtMTQuOC0xNC44cy0xNC44IDYuNy0xNC44IDE0LjhsLS4yIDcxLjhjMCA4LjIgNi42IDE0LjggMTQuOCAxNC44czE0LjgtNi42IDE0LjgtMTQuOHptNzEtMjY5YzIuMSA5MC45IDQuNyAxMzEuOS04NS41IDEzMi41LTkyLjUtLjctODYuOS00NC4zLTg1LjUtMTMyLjUgMC0yMS44LTMyLjUtMTkuNi0zMi41IDBsMCA3MS42YzAgNjkuMyA2MC43IDkwLjkgMTE4IDkwLjEgNTcuMyAuOCAxMTgtMjAuOCAxMTgtOTAuMWwwLTcxLjZjMC0xOS42LTMyLjUtMjEuOC0zMi41IDB6Il19LEk3ZT17cHJlZml4OiJmYWIiLGljb25OYW1lOiJ3cGV4cGxvcmVyIixpY29uOls1MTIsNTEyLFtdLCJmMmRlIiwiTTAgMjU2YTI1NiAyNTYgMCAxIDEgNTEyIDAgMjU2IDI1NiAwIDEgMSAtNTEyIDB6bTQ4MCAwYTIyNCAyMjQgMCAxIDAgLTQ0OCAwIDIyNCAyMjQgMCAxIDAgNDQ4IDB6TTE2MC45IDEyNC42bDg2LjkgMzcuMS0zNy4xIDg2LjktODYuOS0zNy4xIDM3LjEtODYuOXptMTEwIDE2OS4xbDQ2LjYgOTQtMTQuNiAwLTUwLTEwMC00OC45IDEwMC0xNCAwIDUxLjEtMTA2LjktMjIuMy05LjQgNi0xNCA2OC42IDI5LjEtNiAxNC4zLTE2LjUtNy4xek0yNTkuMSAxNzcuNGw2OC42IDI5LjQtMjkuNCA2OC4zLTY4LjMtMjkuMSAyOS4xLTY4LjZ6bTgwLjMgNDIuOWw1NC42IDIzLjEtMjMuNCA1NC4zLTU0LjMtMjMuMSAyMy4xLTU0LjN6Il19LE43ZT17cHJlZml4OiJmYWIiLGljb25OYW1lOiJtZWdhcG9ydCIsaWNvbjpbNTEyLDUxMixbXSwiZjVhMyIsIk0yMjIuNSAyMDkuNmwwIDY2LjIgMzMuNSAzMy41IDMzLjMtMzMuMyAwLTY2LjQtMzMuNC0zMy40LTMzLjQgMzMuNHpNMjU2IDhhMjQ4IDI0OCAwIDEgMCAwIDQ5NiAyNDggMjQ4IDAgMSAwIDAtNDk2ek00MDEuMSA0MjIuNGwtMjYuMSAxOS4yLTI2LTE5LjIgMC02NS41LTMzLjQtMzMuNC0zMy40IDMzLjQgMCA2NS41LTI2LjIgMTkuMi0yNi4xLTE5LjIgMC02NS41LTMzLjQtMzMuNC0zMy41IDMzLjQgMCA2NS41LTI2LjEgMTkuMi0yNi4xLTE5LjIgMC04NyA1OS41LTU5LjUgMC04Ny45IDU5LjUtNTkuNSAwLTc1LjYgMjYuMS0xOS4yIDI2LjEgMTkuMiAwIDc1LjYgNTkuNSA1OS41IDAgODcuNiA1OS43IDU5LjcgMCA4Ny4xLS4xIDB6Il19LEY3ZT17cHJlZml4OiJmYWIiLGljb25OYW1lOiJsZWV0Y29kZSIsaWNvbjpbNDQ4LDUxMixbXSwiZTg2YSIsIk0yMzUuNCA5LjNDMjQ2LjUtMi41IDI2NS4xLTMuMiAyNzcgNy45czEyLjUgMjkuOCAxLjQgNDEuNmwtNDMgNDZjMjEuNSAzLjMgNDIuMSAxMS44IDU5LjEgMjUuNmw3NC42IDYwLjNjMTIuNiAxMC4yIDE0LjYgMjguOCA0LjQgNDEuNHMtMjguNyAxNC42LTQxLjQgNC40bC03NC42LTYwLjNjLTI2LjItMjEuMS03MS45LTE4LjItOTQuNSA1LjlMODEgMjYxYy0yMS41IDIzLTE5LjEgNjAgNS42IDg0LjJsOTEuMiA4OS40YzI0LjkgMjQgNjUuNiAyNCA5MC4xLS40bDUxLjEtNTFjMTEuNS0xMS41IDMwLjEtMTEuNSA0MS42IC4xczExLjQgMzAuMi0uMSA0MS43bC01MS4xIDUxYy00Ny4xIDQ3LjEtMTI0IDQ3LjctMTcxLjkgMS42bC05Mi05MC4yQy0xLjQgMzQxLjMtNiAyNjcuOSAzOCAyMjAuN0wyMzUuNCA5LjN6TTQxMS43IDI3My4yYzE2LjIgMCAyOS40IDEzLjIgMjkuNCAyOS41cy0xMy4yIDI5LjUtMjkuNCAyOS41bC0yMTYuOSAwYy0xNi4yIDAtMjkuNC0xMy4yLTI5LjQtMjkuNXMxMy4yLTI5LjUgMjkuNC0yOS41bDIxNi45IDB6Il19LE83ZT17cHJlZml4OiJmYWIiLGljb25OYW1lOiJtZGIiLGljb246WzU3Niw1MTIsW10sImY4Y2EiLCJNMTcuNCAxNjAuNGwtMTAuNCAxOTEuNiA0My45IDAgNS42LTc5LjggMjcuOSA3OS44IDQ0LjcgMCAyNS41LTc3LjQgNC44IDc3LjQgNDUuNSAwLTEyLjgtMTkxLjYtNDUuNSAwLTQwLjcgMTE3LjMtNDIuMy0xMTcuMy00Ni4zIDB6bTI4MSAwbC00Ny45IDAgMCAxOTEuNiA0Ny45IDBzOTUgLjggOTQuMi05NS44Yy0uOC05NC4yLTk0LjItOTUuOC05NC4yLTk1LjhsMCAwem0tMS4yIDE0Ni41bDAtMTAyLjFzNDYgNC4zIDQ2LjggNTAuNi00Ni44IDUxLjUtNDYuOCA1MS41bDAgMHptMjM4LjMtNzQuMmM3LjItMTEuNCAxMC0yNSA4LTM4LjMtNS4zLTM1LjgtNTUuMS0zNC4zLTU1LjEtMzQuM2wtNTEuOSAwIDAgMTkxLjYgNDUuNSAwczg3IDQuOCA4Ny02My44YzAtNDMuMS0zMy41LTU1LjEtMzMuNS01NS4xbDAgMHptLTUxLjktMzEuOXMxMy42LTEuNiAxNiA5LjZjMS40IDYuNy00IDEyLTQgMTJsLTEyIDAgMC0yMS42em0tLjEgMTA5LjVsLjEtMjQuOSAwLTE4LjIgLjEgMHM0MS42LTQuNyA0MS4yIDIyLjRjLS4zIDI1LjctNDEuMyAyMC43LTQxLjMgMjAuN2wwIDB6Il19LFI3ZT17cHJlZml4OiJmYWIiLGljb25OYW1lOiJwYWdlNCIsaWNvbjpbNTEyLDUxMixbXSwiZjNkNyIsIk0yNTYgNTA0QzExOSA1MDQgOCAzOTMgOCAyNTZTMTE5IDggMjU2IDhjMjAuOSAwIDQxLjMgMi42IDYwLjcgNy41TDUwLjMgMzkyIDI1NiAzOTIgMjU2IDUwNHptMC0xNDMuNmwwLTIxMy42LTE0OS40IDIxMy42IDE0OS40IDB6TTM1MiAzOTJsMCA5Mi43YzQ1LjctMTkuMiA4NC41LTUxLjcgMTExLjQtOTIuN0wzNTIgMzkyem01Ny40LTEzOC4ybC0yMS4yIDguNCAyMS4yIDguMyAwLTE2Ljd6bS0yMC4zIDU0LjVjLTYuNyAwLTggNi4zLTggMTIuOWwwIDcuNyAxNi4yIDAgMC0xMGMwLTUuOS0yLjMtMTAuNi04LjItMTAuNnpNNTA0IDI1NmMwIDM3LjMtOC4yIDcyLjctMjMgMTA0LjRsLTEyOSAwIDAtMzMzLjFDNDQxLjMgNjQuOCA1MDQgMTUzLjEgNTA0IDI1NnpNMzY4LjQgMTQzLjZsNjguMiAwIDAtNDcuNi0xMy45IDAgMCAzMi42LTEzLjkgMCAwLTI5LjYtMTMuOSAwIDAgMjkuNi0xMi43IDAgMC0zMi42LTEzLjkgMCAwIDQ3LjYgLjEgMHptNjguMSAxODUuM2wtMjYuNSAwIDAtMTFjMC0xNS40LTUuNi0yNS4yLTIwLjktMjUuMi0xNS40IDAtMjAuNyAxMC42LTIwLjcgMjUuOWwwIDI1LjMgNjguMiAwIDAtMTUtLjEgMHptMC0xMDNsLTY4LjIgMjkuNyAwIDEyLjQgNjguMiAyOS41IDAtMTYuNi0xNC40LTUuNyAwLTI2LjUgMTQuNC01LjkgMC0xNi45em0tNC44LTY4LjVsLTM1LjYgMCAwIDI2LjYgMTMuOSAwIDAtMTIuMiAxMSAwYzguNiAxNS44IDEuMyAzNS4zLTE4LjYgMzUuMy0yMi41IDAtMjguMy0yNS4zLTE1LjUtMzcuN2wtMTEuNi0xMC42Yy0xNi4yIDE3LjUtMTIuMiA2My45IDI3LjEgNjMuOSAzNCAwIDQ0LjctMzUuOSAyOS4zLTY1LjN6Il19LEI3ZT17cHJlZml4OiJmYWIiLGljb25OYW1lOiJ0aGUtcmVkLXlldGkiLGljb246WzUxMiw1MTIsW10sImY2OWQiLCJNNDg4LjcgMjQxLjdsMjAuNyA3LjFjLTkuNi0yMy45LTIzLjktMzctMzEuNy00NC44bDcuMS0xOC4yYy4yIDAgMTIuMy0yNy44LTIuNS0zMC43LS42LTExLjMtNi42LTI3LTE4LjQtMjctNy42LTEwLjYtMTcuNy0xMi4zLTMwLjctNS45LTkuMSA0LjQtMTcuNiAxMC0yNS4zIDE2LjUtNS4zLTYuNC0zIC40LTMtMjkuOC0zNy4xLTI0LjMtNDUuNC0xMS43LTc0LjggM2wuNSAuNWMtMjItNy43LTQ1LjEtMTIuMi02OC40LTEzLjMtNS41LTguNy0xOC42LTE5LjEtMjUuMS0yNS4xbDI0LjggNy4xYy01LjUtNS41LTI2LjgtMTIuOS0zNC4yLTE1LjIgMTguMi00LjEgMjkuOC0yMC44IDQyLjUtMzMtMzQuOS0xMC4xLTY3LjktNS45LTk3LjkgMTEuOGwxMi00NC4yLTEuOC0uNWMtMzEuNiAyNC4yLTMzIDQxLjktMzMuNyA0NS41LS45LTIuNC02LjMtMTkuNi0xNS4yLTI3LTMuMyA4LjEtMy41IDE3LjEtLjUgMjUuMyAzIDguNCA1LjkgMTQuOCA4LjQgMTguOS0xNi0zLjMtMjguMy00LjktNDkuMiAwbC0zLjcgMCAzMyAxNC4zYy0yMC4yIDE4LjktMzYuMSA0MS45LTQ2LjcgNjcuNGwtMS43IDguNCAxLjcgMS43IDcuNi00LjdjLTMuMyAxMS42LTUuMyAxOS40LTYuNiAyNS44LTEwLjkgMTIuMi0yMC4yIDI1LjgtMjcuOCA0MC4zLTE1IDEtMzEuOCAxMC44LTQwLjMgMTQuM2wzIDMuNCAyOC44IDFjLS41IDEtLjcgMi4yLTEuMiAzLjItNy4zIDYuNC0zOS44IDM3LjctMzMgODAuN2wyMC4yLTIyLjRjLjUgMS43IC43IDMuNCAxLjIgNS4yIDAgMjUuNSAuNCA4OS42IDY0LjkgMTUwLjUgNDMuNiA0MCA5NiA2MC4yIDE1Ny41IDYwLjIgMTIxLjcgMCAyMjMtODcuMyAyMjMtMjExLjUgNi44LTkuNy0xLjIgMyAxNi43LTI1LjFsMTMgMTQuMyAyLjUtLjVjLTEuOC0xMS43LTQuOC0yMy4xLTguOS0zNC4yLTEuNS00LjgtMy44LTkuMy02LjgtMTMuM2wwIDB6TTM5OC41IDExMS4ybC0uNSAyMS45YzUuNSAxOC4xIDE2LjkgMTcuMiAyMi40IDE3LjJsLTMuNC00LjcgMjIuNC01LjRjLTkgLjUtMTggLjUtMjcgMCAxMi44LTIuMSAzMy4zLTI5IDQzLTExLjMgMy40IDcuNiA2LjQgMTcuMiA5LjMgMjcuOGwxLjctNS45Yy0xLjMtNS0xLjgtMTAuMS0xLjctMTUuMiA1LjQgLjUgOC44IDMuNCA5LjMgMTAuMSAuNSA2LjQgMS43IDE0LjggMy40IDI1LjNsNC43LTExLjNjNC42IDAgNC41LTMuNi0yLjUgMjAuNy0yMC45LTguNy0zNS4xLTguNC00Ni41LTguNGwxOC4yLTE2Yy0yNS4zIDguMi0zMyAxMC44LTU0LjggMjAuOS0xLjEtNS40LTUtMTMuNS0xNi0xOS45LTMuMiAzLjgtMi44IC45LS43IDE0LjhsLTIuNSAwYy0xLjItOC4yLTQuMS0xNi04LjQtMjMuMWw0LjItMy40YzguNC03LjEgMTEuOC0xNC4zIDEwLjYtMjEuOS0uNS02LjQtNS40LTEzLjUtMTMuNS0yMC43IDUuNi0zLjQgMTUuMi0uNCAyOC4zIDguNXptLTM5LjYtMTAuMWMyLjcgMS45IDExLjQgNS40IDE4LjkgMTcuMiA0LjIgOC40IDQgOS44IDMuNCAxMS4xLS41IDIuNC0uNSA0LjMtMyA3LjEtMS43IDIuNS01LjQgNC43LTExLjggNy42LTcuNi0xMy0xNi41LTIzLjYtMjcuOC0zMS4ybDIwLjMtMTEuOHptLTI2Ny40IDQybDEuMi0xLjdjMS4yLTIuOSA0LjItNy42IDkuMy0xNS4ybDIuNS0zLjQtMTMgMTIuMyA1LjQtNC43LTEwLjEgOS4zLTQuMiAxLjJjMTIuMy0yNC4xIDIzLjEtNDEuMyAzMi41LTUwLjIgOS4zLTkuMyAxNi0xNiAyMC4yLTE5LjRsLTYuNCAxLjJjLTExLjMtNC4yLTE5LjQtNy4xLTI0LjgtOC40IDIuNS0uNSAzLjctLjUgMy4yLS41IDEwLjMgMCAxNy41IC41IDIwLjkgMS4yIDUuMiAxLjcgMTAuNiAyLjUgMTYgMi41bC41LTEuNy04LjQtMzUuOCAxMy41IDI5YzIuOC00LjQgNC44LTkuMiA1LjktMTQuMyAxLjctNi40IDUuNC0xMyAxMC4xLTE5LjRzNy42LTEwLjYgOS4zLTExLjNjLTIuNiA4LjMtNC43IDE2LjgtNi40IDI1LjNsLTEuNyA3LjEtLjUgNC43IDIuNSAyLjVjMjEuOS0xMy41IDQ1LjUtMTkuNCA3MS4zLTE4LjlsMjEuMSAuNWMtMTEuOCAxMy41LTI3LjggMjEuOS00OC41IDI0LjgtNy43IDEuNC0xNS42IDIuNC0yMy40IDIuOWwtLjItLjUtMi41LTEuMmMtNC44LTEtOS43LS4zLTE0IDItMi41LS4yLTQuOS0uNS03LjEtLjdsLTIuNSAxLjcgLjUgMS4yYzIgLjIgMy45IC41IDYuMiAuN2wtMiAzLjQgMy40LS41LTEwLjYgMTEuM2MtNC4yIDMtNS40IDYuNC00LjIgOS4zbDUuNC0zLjQgMS4yIDBjNi4xLTguMiAxNS4yLTEzLjYgMjUuMy0xNS4ybDAtM2M2LjQgLjUgMTMgMSAxOS40IDEuMiA2LjQgMCA4LjQgLjUgNS40IDEuMiA3LjIgNCAxNC4xIDguNiAyMC43IDEzLjUgMTMuNSAxMC4xIDIzLjYgMjEuOSAzMCAzNS40IDguOCAxOC4yIDEzLjUgMzcuMSAxMy41IDU2LjYgMCA5LjUtMSAxOS0zIDI4LjMtMy41IDE1LjktOC45IDMxLjMtMTYgNDZsMi41IC41YzE4LjItMTkuNyA0MS45LTE2IDQ5LjItMTZsLTYuNCA1LjkgMjIuNCAxNy43LTEuNyAzMC43Yy01LjQtMTIuMy0xNi41LTIxLjEtMzMtMjcuOCAxNi41IDE0LjggMjMuNiAyMS4xIDIxLjkgMjAuMi00LjgtMi44LTMuNS0xLjktMTAuOC0zLjcgNC4xIDQuMSAxNy41IDE4LjggMTguMiAyMC43bC4yIC4yLS4yIC4yYzAgMS44IDEuNi0xLjItMTQgMjIuOS03NS4yLTE1LjMtMTA2LjMtNDIuNy0xNDEuMi02My4ybDExLjggMS4yYy0xMS44LTE4LjUtMTUuNi0xNy43LTM4LjQtMjYuMWwxMC42LTguNGMtOC44LTMtMTguMi0zLTI4LjMgLjVsNy42LTEwLjYtMS4yLTEuN2MtMTQuOSA0LjMtMTkuOCA5LjItMjIuNiAxMS4zLTEuMS01LjUtMi44LTEyLjQtMTIuMy0yOC44bC0xLjIgMjctMTMuMi01YzEuNS0yNS4yIDUuNC01MC41IDEzLjItNzQuNnpNMzY4IDQ3My4xYy00OS45IDI1LTU2LjEgMjIuNC01OSAyMy45LTI5LjgtMTEuOC01MC45LTMxLjctNjMuNS01OC44bDMwIDE2LjVjLTkuOC05LjMtMTguMy0xNi41LTM4LjQtNDQuM2wxMS44IDIzLjEtMTcuNy03LjZjMTQuMiAyMS4xIDIzLjUgNTEuNyA2Ni42IDczLjUtMTIwLjggMjQuMi0xOTktNzIuMS0yMDAuOS03NC4zIDExLjEgOS4yIDIyLjkgMTcuNSAzNS40IDI0LjggMy40IDEuNyA3LjEgMi41IDEwLjEgMS4ybC0xNi0yMC43YzkuMiA0LjIgOS41IDQuNSA2OS4xIDI5LTQyLjUtMjAuNy03My44LTQwLjgtOTMuMi02MC4yLS41IDYuNC0xLjIgMTAuMS0xLjIgMTAuMSA4LjcgNy4zIDE1LjggMTYuNCAyMC43IDI2LjYtMzktMTguOS01Ny42LTQ3LjYtNzEuMy04Mi42IDQ5LjkgNTUuMSAxMTguOSAzNy41IDEyMC41IDM3LjEgMzQuOCAxNi40IDY5LjkgMjMuNiAxMTMuOSAxMC42IDMuMyAwIDIwLjMgMTcgMjUuMyAzOS4xbDQuMi0zLTIuNS0yMy42YzkgOSAyNC45IDIyLjYgMzQuNCAxMy0xNS42LTUuMy0yMy41LTkuNS0yOS41LTMxLjcgNC42IDQuMiA3LjYgOSAyNy44IDE1bDEuMi0xLjItMTAuNS0xNC4yYzExLjctNC44LTMuNSAxIDMyLTEwLjggNC4zIDM0LjMgOSA0OS4yIC43IDg5LjV6TTQ4My4zIDI1OC43bC0yLjUgLjUgMyA5LjNjLTMuNSA1LjktMjMuNyA0NC4zLTcxLjYgNzkuNy0zOS41IDI5LjgtNzYuNiAzOS4xLTgwLjkgNDAuM2wtNy42LTcuMS0xLjIgMyAxNC4zIDE2LTcuMS00LjcgMy40IDQuMi0xLjIgMC0yMS45LTEzLjUgOS4zIDI2LjYtMTktMjcuOS0xLjIgMi41IDcuNiAyOWMtNi4xLTguMi0yMS0zMi42LTU2LjgtMzkuNmwzMi41IDIxLjJjLTMxLjIgNC43LTYzIDIuNS05My4yLTYuNC00LjItMS4yLTguOS0yLjUtMTMuNS00LjJsMS4yLTMtNDQuOC0yMi40IDI2LjEgMjIuNGMtNTcuNyA5LjEtMTEzLTI1LjQtMTI2LjQtODMuNEwyOS4zIDI4NC44IDcgMzA3LjFjMTkuNS01Ny41IDI1LjYtNTcuOSA1MS40LTcwLjEtOS4xLTUuMy0xLjYtMy4zLTM4LjQtOS4zIDE1LjgtNS44IDMzLTE1LjQgNzMgNS4yIDEuMi0uNyAyLjQtMS4zIDMuNy0xLjcgLjYtMy4yIC40LS44IDEtMTEuOCAzLjkgMTAgMy42IDguNyAzIDkuM2wxLjcgLjVjMTIuNy02LjUgOC45LTQuNSAxNy04LjlsLTUuNCAxMy41IDIyLjMtNS44LTguNCA4LjQgMi41IDIuNWM0LjUtMS44IDMwLjMgMy40IDQwLjggMTZsLTIzLjYtMi41YzM5LjQgMjMgNTEuNSA1NCA1NS44IDY5LjZsMS43LTEuMmMtMi44LTIyLjMtMTIuNC0zMy45LTE2LTQwLjEgNC4yIDUgMzkuMiAzNC42IDExMC40IDQ2LTExLjMtLjUtMjMuMSA1LjQtMzQuOSAxOC45bDQ2LjctMjAuMi05LjMgMjEuOWM3LjYtMTAuMSAxNC44LTIzLjYgMjEuMi0zOS42bDAtLjUgMS4yLTMtMS4yIDE2YzEzLjUtNDEuOCAyNS4zLTc4LjUgMzUuNC0xMDkuN2wxMy41LTI3LjggMC0yLTUuNC00LjIgMTAuMSAwIDUuOSA0LjIgMi41LTEuMi0zLjQtMTYgMTIuMyAxOC45IDQxLjgtMjAuMi0xNC44IDEzIC41IDIuOSAxNy43LS41YzExLjEgLjQgMjIuMSAxLjggMzMgNC4ybC0yMy42IDIuNS0xLjIgMyAyNi42IDIzLjFjOS45IDkuOSAxOC45IDIwLjYgMjcgMzItMTEuMi0zLjMtMTAuMy0zLjQtMjEuMi0zLjRsMTIuMyAzMi41LTguOS0xMi44em0tNi4xLTcxLjNsLTMuOSAxMy0xNC4zLTExLjggMTguMi0xLjJ6bS0yNTQuOCA3LjFjMS43IDEwLjYgNC43IDE3LjcgOC44IDIxLjktOS4zIDYuNi0yNy41IDEzLjktNDYuNSAxNmwuNSAxLjJjOC4zIDEuMyAxNi45IC40IDI0LjgtMi41bC03LjEgMTNjNC4yLTEuNyAxMC4xLTcuMSAxNy43LTE0LjggMTEuOS01LjUgMTIuNy01LjEgMjAuMi0xNi0xMi43LTYuNC0xNS43LTEzLjctMTguNC0xOC44em0zLjctMTAyLjNjLTYuNC0zLjQtMTAuNiAzLTEyLjMgMTguOXMyLjUgMjkuNSAxMS44IDM5LjYgMTguMiAxMC42IDI2LjEgMyAzLjQtMjMuNi0xMS4zLTQ3LjdjLTMuNS01LjctOC40LTEwLjUtMTQuMy0xMy44bDAgMHptLTQuNyA0Ni4zYzUuNCAyLjIgMTAuNSAxLjkgMTIuMy0xMC42bDAtNC43LTEuMiAuNWMtNC4zLTMuMS0yLjUtNC41LTEuNy02LjJsLjUtLjVjLS45LTEuMi01LTguMS0xMi41IDQuNy0uNS0xMy41IC41LTIxLjkgMy0yNC44IDEuMi0yLjUgNC43LTEuMiAxMS4zIDQuMiA2LjQgNS40IDExLjMgMTYgMTUuMiAzMi41IDYuNSAyOC0xOS44IDI2LjItMjYuOSA0Ljl6bS00NS01LjVjMS42IC4zIDkuMy0xLjEgOS4zLTE0LjhsLS41IDBjLTUuNC0xLjEtMi4yLTUuNS0uNy01LjktMS43LTMtMy40LTQuMi01LjQtNC43LTguMSAwLTExLjYgMTIuNy04LjEgMjEuMiAuNSAxLjEgMS4zIDIgMi4yIDIuOHMyIDEuMiAzLjIgMS40bDAgMHptNDAuMS01MC4xbC0yLjUgLjUgLjUgM2M5LjEtLjUgMTguMSAxLjUgMjYuMSA1LjktMi41LTUuNS0xMC0xNC4zLTI4LjMtMTQuM2wuNSAyLjUgMy43IDIuNHptLTcxLjggNDkuNGMyMS43IDE2LjggMTYuNSAyMS40IDQ2LjUgMjMuNmwtMi45LTQuN2M4LjQtNy4yIDEzLjctMTcuMyAxNC44LTI4LjMgMS43LTE2LTEuMi0yOS41LTguOC00MS4zbDEzLTcuNmMwLS4zIDAtLjYtLjEtLjlzLS4yLS42LS40LS44Yy0yLjItLjktNC42LTEuMi03LS45cy00LjYgMS4yLTYuNSAyLjZjLTEyLjcgNi43LTI4IDIwLjktMjkgMjIuNC0xLjcgMS43LTMuNCA1LjktNS40IDEzLjUtMS45IDcuNy0yLjkgMTUuNi0yLjkgMjMuNi00LjctOC0xMC41LTYuNC0xOS45LTUuOWw3LjEgNy42Yy0xNi41IDAtMjMuMyAxNS40LTIzLjYgMTYgNi44IDAgNC42LTcuNiAzMC0xMi4zLTQuMy02LjMtMy4zLTUtNC45LTYuNnptMTguNy0xOC43YzEuMi03LjYgMy40LTEzIDYuNC0xNy4yIDUuNC02LjQgMTAuNi0xMC4xIDE2LTExLjggNC4yLTEuNyA3LjEgMS4yIDEwLjEgOS4zIDIuNSA4LjIgMy41IDE2LjggMyAyNS4zLS41IDkuMy0zLjQgMTcuMi04LjQgMjMuMS0yLjkgMy40LTUuNCA1LjktNi40IDcuNi0zLjggLjQtNy42IC4yLTExLjMtLjVsLTcuMS0zLjQtNS40LTYuNGMuOC0xMCAxLjMtMTguOCAzLjEtMjZ6bTQyIDU2LjFjLTM0LjggMTQuNC0zNC43IDE0LTM2LjEgMTQuMy0yMC44IDQuNy0xOS0yNC40LTE4LjktMjQuOGw1LjktMS4yLS41LTIuNWMtMjAuMi0yLjYtMzEgNC4yLTMyLjUgNC45IC41IC41IDMgMy40IDUuOSA5LjMgNC4yLTYuNCA4LjgtMTAuMSAxNS4yLTEwLjYtMS43IDExLjItMS4yIDIyLjcgMS43IDMzLjcgLjEgLjUgMi42IDE3LjQgMjcuNSAyNC4xIDExLjMgMyAyNyAxLjIgNDguOS01LjRsLTkuMiAuNWMtNC4yLTE0LjgtNi40LTI0LjgtNS45LTI5LjUgMTEuMy04LjggMjEuOS0xMS4zIDMwLjctNy42bDIuNSAwLTExLjgtNy42LTcuMSAuNWMtNS45IDEuMi0xMi4zIDQuMi0xOS40IDguNGwzLjEtNi41eiJdfSxIN2U9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiamlyYSIsaWNvbjpbNTEyLDUxMixbXSwiZjdiMSIsIk00OTguNSAyNDEuN2MtNzIuOS03Mi43LTE2OS40LTE2OS45LTI0MS41LTI0MS43LTE2NS41IDE2NC45LTI0Mi41IDI0MS43LTI0Mi41IDI0MS43LTcuOSA3LjktNy45IDIwLjcgMCAyOC43IDEzMi44IDEzMi4zIDYxLjggNjEuNSAyNDIuNSAyNDEuNiAzNzkuNC0zNzggMTUuNy0xNi43IDI0MS41LTI0MS43IDgtNy45IDgtMjAuNyAwLTI4LjZ6TTI1NyAzMzEuN2wtNzYtNzUuNyA3Ni03NS43IDc2IDc1LjctNzYgNzUuN3oiXX0scTdlPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImZlZGV4IixpY29uOls2NDAsNTEyLFtdLCJmNzk3IiwiTTU4NiAyODQuNWw1My4zLTU5LjktNjIuNCAwLTIxLjcgMjQuOC0yMi41LTI0LjgtMTE4LjcgMCAwLTE2IDU2LjEgMCAwLTQ4LjEtMTUxLjIgMCAwIDc1LjUtLjUgMGMtOS42LTExLTIxLjUtMTQuOC0zNS40LTE0LjgtMjguNCAwLTQ5LjggMTkuNC01Ny4zIDQ0LjktMTgtNTkuNC05Ny40LTU3LjYtMTIxLjktMTRsMC0yNC4yLTU0LjggMCAwLTI2LjIgNjAgMCAwLTQxLjEtMTA5IDAgMCAxODQuNCA0OSAwIDAtNzcuNSA0OC45IDBjLTEuNSA1LjctMi4zIDExLjgtMi4zIDE4LjIgMCA3My4xIDEwMi42IDkxLjQgMTMwLjIgMjMuN2wtNDIgMGMtMTQuNyAyMC45LTQ1LjggOC45LTQ1LjgtMTQuNmw4NS41IDBjMy43IDMwLjUgMjcuNCA1Ni45IDYwLjEgNTYuOSAxNC4xIDAgMjctNi45IDM0LjktMTguNmwuNSAwIDAgMTEuOSAyMTIuMiAwIDIyLjEtMjUgMjIuMyAyNSA2NC40IDAtNTQtNjAuNXpNMTM5LjMgMjY3LjljNi4xLTI2LjMgNDEuNy0yNS42IDQ2LjUgMGwtNDYuNSAwem0xNTMuNCA0OC45Yy0zNC42IDAtMzQtNjIuOCAwLTYyLjggMzIuNiAwIDM0LjUgNjIuOCAwIDYyLjh6bTE2Ny44IDE5LjFsLTk0LjQgMCAwLTE2Ni41IDk1IDAgMCAzMC4yLTU2LjEgMCAwIDMzLjkgNTUuNSAwIDAgMjguMS01Ni4xIDAgMCA0NC43IDU2LjEgMCAwIDI5LjZ6bS00NS45LTM5LjhsMC0yNC40IDU2LjEgMCAwLTQ0IDUwLjcgNTctNTAuNyA1NyAwLTQ1LjYtNTYuMSAwem0xMzguNiAxMC4zbC0yNi4xIDI5LjUtMzguMSAwIDQ1LjYtNTEuMi00NS42LTUxLjIgMzkuNyAwIDI2LjYgMjkuMyAyNS42LTI5LjMgMzguNSAwLTQ1LjQgNTEgNDYgNTEuNC00MC41IDAtMjYuMy0yOS41eiJdfSxWN2U9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiZXZlcm5vdGUiLGljb246WzM4NCw1MTIsW10sImY4MzkiLCJNMTIxLjEgMTMyLjJjMS42IDIyLjMtMTcuNiAyMS42LTIxLjYgMjEuNi02OC45IDAtNzMuNi0xLTgzLjYgMy4zLS42IC4yLS43IDAtLjQtLjRMMTI0LjEgNDYuNGMuNC0uNCAuNi0uMiAuNCAuNC00LjQgMTAtMy40IDE1LjEtMy40IDg1LjR6bTc5IDMwOGMtMTQuNy0zNy4xIDEzLTc2LjkgNTIuNS03Ni42IDE3LjUgMCAyMi42IDIzLjIgNy45IDMxLjQtNi4yIDMuMy0yNC45IDEuNy0yNS4xIDE5LjIgMCAxNy4xIDE5LjcgMjUgMzEuMiAyNC45IDYgMCAxMS45LTEuMiAxNy41LTMuNXMxMC42LTUuNyAxNC44LTkuOSA3LjYtOS4zIDkuOS0xNC44IDMuNS0xMS41IDMuNS0xNy41bDAtLjFjMC0xMS42LTcuOC00Ny4yLTQ3LjUtNTUuMy03LjctMS41LTY1LTYuMy02OC40LTUwLjUtMy43IDE2LjktMTcuNCA2My41LTQzLjEgNjkuMS04LjcgMS45LTY5LjcgNy42LTExMi45LTM2LjggMCAwLTE4LjYtMTUuMi0yOC4yLTU4LTMuNC0xNS43LTkuMy0zOS43LTExLjEtNjIgMC0xOCAxMS4xLTMwLjQgMjUuMS0zMi4yIDgxIDAgOTAgMi4zIDEwMS03LjggOS44LTkuMiA3LjgtMTUuNSA3LjgtMTAyLjggMS04LjMgNy44LTMwLjggNTMuNC0yNC4xIDYgLjkgMzEuOSA0LjIgMzcuNSAzMC42TDI5MCA3NC44YzIwLjQgMy43IDcwLjkgNyA4MC42IDU3LjkgMjIuNyAxMjEuMSA4LjkgMjM4LjUgNy44IDIzOC41LTE2IDExNC40LTExMS4xIDEwOC45LTExMS4xIDEwOC45LTE5LS4yLTU0LjItOS40LTY3LjMtMzkuOGwwIDB6TTI4MSAyMzUuNGMtMSAxLjktMi4yIDYgLjkgNyAxNC4xIDQuOSAzOS44IDYuOCA0NS45IDUuNSAzLjEtLjIgMy4xLTQuNCAyLjUtNi42LTMuNS0yMS44LTQwLjgtMjYuNS00OS4yLTUuOWwwIDB6Il19LGo3ZT17cHJlZml4OiJmYWIiLGljb25OYW1lOiJ1c2IiLGljb246WzY0MCw1MTIsW10sImYyODciLCJNNjMzLjUgMjU2YzAgMy4xLTEuNyA2LjEtNC41IDcuNUw1MzkuOSAzMTdjLTEuNCAuOC0yLjggMS40LTQuNSAxLjQtMS40IDAtMy4xLS4zLTQuNS0xLjEtMi44LTEuNy00LjUtNC41LTQuNS03LjhsMC0zNS42LTIzMC43IDBjMjUuMyAzOS42IDQwLjUgMTA2LjkgNjkuNiAxMDYuOWwyNi43IDAgMC0yNi44YzAtNSAzLjktOC45IDguOS04LjlsODkuMSAwYzUgMCA4LjkgMy45IDguOSA4LjlsMCA4OS4xYzAgNS0zLjkgOC45LTguOSA4LjlsLTg5LjEgMGMtNSAwLTguOS0zLjktOC45LTguOWwwLTI2LjctMjYuNyAwYy03NS40IDAtODEuMS0xNDIuNS0xMjQuNy0xNDIuNWwtMTAwLjMgMGMtOC4xIDMwLjYtMzUuOSA1My41LTY5IDUzLjUtMzkuMy0uMS03MS4zLTMyLjEtNzEuMy03MS40czMyLTcxLjMgNzEuMy03MS4zYzMzLjEgMCA2MSAyMi44IDY5IDUzLjUgMzkuMSAwIDQzLjkgOS41IDc0LjYtNjAuNCA0MC4xLTg5LjEgNTguMS04Mi4xIDEwOC45LTgyLjEgNy41LTIwLjkgMjctMzUuNiA1MC40LTM1LjYgMjkuNSAwIDUzLjUgMjMuOSA1My41IDUzLjVzLTIzLjkgNTMuNS01My41IDUzLjVjLTIzLjQgMC00Mi45LTE0LjgtNTAuNC0zNS42bC0yOS44IDBjLTI5LjEgMC00NC4zIDY3LjQtNjkuNiAxMDYuOWwzMDIuMSAwIDAtMzUuNmMwLTMuMyAxLjctNi4xIDQuNS03LjhzNi40LTEuNCA4LjkgLjNMNjI5IDI0OC44YzIuOCAxLjEgNC41IDQuMSA0LjUgNy4yeiJdfSxVN2U9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiYW5ncnljcmVhdGl2ZSIsaWNvbjpbNjQwLDUxMixbXSwiZjM2ZSIsIk02NDAgMjM4LjJsLTMuMiAyOC4yLTM0LjUgMi4zLTIgMTguMSAzNC41LTIuMy0zLjIgMjguMi0zNC40IDIuMi0yLjMgMjAuMSAzNC40LTIuMi0zIDI2LjEtNjQuNyA0LjEgMTIuNy0xMTMuMi00Ny4zIDExNS40LTMxLjkgMi0yMy44LTExNy44IDMwLjMtMiAxMy42IDc5LjQgMzEuNy04Mi40IDkzLjEtNi4yek00MjYuOCAzNzEuNWwyOC4zLTEuOCAxMi45LTEyMC4xLTI4LjQgMS45LTEyLjggMTIwek0xNjIgMzg4LjFsLTE5LjQtMzYtMy41IDM3LjQtMjguMiAxLjcgMi43LTI5LjFjLTExIDE4LTMyIDM0LjMtNTYuOSAzNS44LTMyLjggMi01OS43LTIwLjktNTYuNC01OC4yIDIuNi0yOS4zIDI2LjctNjIuOCA2Ny41LTY1LjQgMzcuNy0yLjQgNDcuNiAyMy4yIDUxLjMgMjguOGwyLjgtMzAuOCAzOC45LTIuNWMyMC4xLTEuMyAzOC43IDMuNyA0Mi41IDIzLjdsMi42LTI2LjYgNjQuOC00LjItMi43IDI3LjktMzYuNCAyLjQtMS43IDE3LjkgMzYuNC0yLjMtMi43IDI3LjktMzYuNCAyLjMtMS45IDE5LjkgMzYuMy0yLjMtMi4xIDIwLjggNTUtMTE3LjIgMjMuOC0xLjYgMzIuMSAxMTAuNiA4LjktODUuNi0yMi4zIDEuNCAyLjktMjcuOSA3NS00LjktMyAyOC0yNC4zIDEuNi05LjcgOTEuOS01OCAzLjctNC4zLTE1LjYtMzkuNCAyLjUtOCAxNi4zLTEyNi4yIDcuN3ptLTQ0LjMtNzAuMmwtMjYuNCAxLjdjLTYuNy0xMi40LTE0LjQtMTYuNi0yNi4zLTE1LjgtMTkgMS4yLTMzLjMgMTcuNS0zNC42IDMzLjMtMS40IDE2IDcuMyAzMi41IDI4LjcgMzEuMiAxMi44LS44IDIxLjMtOC42IDI4LjktMTguOWwyNy0xLjcgMi43LTI5Ljh6bTU2LjEtNy43YzEuMi0xMi45LTcuNi0xMy42LTI2LjEtMTIuNEwxNDUgMzI2LjNjMTQuMi0uOSAyNy41LTIuMSAyOC44LTE2LjF6TTE5NC45IDM4MWw1LjgtNjBjLTUgMTMuNS0xNC43IDIxLjEtMjcuOSAyNi42TDE5NC45IDM4MXptMTM1LjQtNDVsLTcuOS0zNy44LTE1LjggMzkuMyAyMy43LTEuNXpNMTYwLjIgMjYxLjRsLTQuMy0xNy41LTM5LjYgMi42LTguMSAxOC4yLTMxLjkgMi4xIDU3LTEyMS45IDIzLjktMS42IDMwLjcgMTAyIDkuOS0xMDQuNyAyNy0xLjggMzcuOCA2My42IDYuNS02Ni42IDI4LjUtMS45LTQgNDEuMmM3LjQtMTMuNSAyMi45LTQ0LjcgNjMuNi00Ny41IDQwLjUtMi44IDUyLjQgMjkuMyA1My40IDMwLjNsMy4zLTMyIDM5LjMtMi43YzEyLjctLjkgMjcuOCAuMyAzNi4zIDkuN2wtNC40LTExLjkgMzIuMi0yLjIgMTIuOSA0My4yIDIzLTQ1LjcgMzEtMi4yLTQzLjYgNzguNC00LjggNDQuMy0yOC40IDEuOSA0LjgtNDQuMy0xNS44LTQzYzEgMjIuMy05LjIgNDAuMS0zMiA0OS42bDI1LjIgMzguOC0zNi40IDIuNC0xOS4yLTM2LjgtNCAzOC4zLTI4LjQgMS45IDMuMy0zMS41Yy02LjcgOS4zLTE5LjcgMzUuNC01OS42IDM4LTI2LjIgMS43LTQ1LjYtMTAuMy01NS40LTM5LjJsLTQgNDAuMy0yNSAxLjYtMzcuNi02My4zLTYuMyA2Ni4yLTU2LjggMy43em0yNzYuNi04Mi4xYzEwLjItLjcgMTcuNS0yLjEgMjEuNi00LjMgNC41LTIuNCA3LTYuNCA3LjYtMTIuMSAuNi01LjMtLjYtOC44LTMuNC0xMC40LTMuNi0yLjEtMTAuNi0yLjgtMjIuOS0ybC0yLjkgMjguOHpNMzI3LjcgMjE0YzUuNiA1LjkgMTIuNyA4LjUgMjEuMyA3LjkgNC43LS4zIDkuMS0xLjggMTMuMy00LjEgNS41LTMgMTAuNi04IDE1LjEtMTQuM2wtMzQuMiAyLjMgMi40LTIzLjkgNjMuMS00LjMgMS4yLTEyLTMxLjIgMi4xYy00LjEtMy43LTcuOC02LjYtMTEuMS04LjEtNC0xLjctOC4xLTIuOC0xMi4yLTIuNS04IC41LTE1LjMgMy42LTIyIDkuMi03LjcgNi40LTEyIDE0LjUtMTIuOSAyNC40LTEuMSA5LjYgMS40IDE3LjMgNy4yIDIzLjN6bS0yMDEuMyA4LjJsMjMuOC0xLjYtOC4zLTM3LjYtMTUuNSAzOS4yeiJdfSxXN2U9e3ByZWZpeDoiZmFiIixpY29uTmFtZToibWl6dW5pIixpY29uOls1MTIsNTEyLFtdLCJmM2NjIiwiTTI1NiA4YTI0OCAyNDggMCAxIDAgMCA0OTYgMjQ4IDI0OCAwIDEgMCAwLTQ5NnpNMTc2IDM1OS45Yy0zMS40IDEwLjYtNTguOCAyNy4zLTgwIDQ4LjJMOTYgMTM2YzAtMjIuMSAxNy45LTQwIDQwLTQwczQwIDE3LjkgNDAgNDBsMCAyMjMuOXpNMjk2IDM1MGMtMTIuOS0yLTI2LjItMy4xLTM5LjgtMy4xLTEzLjggMC0yNy4yIDEuMS00MC4yIDMuMWwwLTIxNGMwLTIyLjEgMTcuOS00MCA0MC00MHM0MCAxNy45IDQwIDQwbDAgMjE0em0xMjAgNTcuN2MtMjEuMi0yMC44LTQ4LjYtMzcuNC04MC00OEwzMzYgMTM2YzAtMjIuMSAxNy45LTQwIDQwLTQwczQwIDE3LjkgNDAgNDBsMCAyNzEuN3oiXX0sRzdlPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6Iml0Y2gtaW8iLGljb246WzUxMiw1MTIsW10sImY4M2EiLCJNNzEuOSAzNC44QzUwLjIgNDcuNyA3LjQgOTYuOCA3IDEwOS43bDAgMjEuM2MwIDI3LjEgMjUuMyA1MC44IDQ4LjIgNTAuOCAyNy42IDAgNTAuNS0yMi44IDUwLjUtNTAgMCAyNy4xIDIyLjIgNTAgNDkuOCA1MHM0OS0yMi44IDQ5LTUwYzAgMjcuMSAyMy42IDUwIDUxLjIgNTBsLjUgMGMyNy42IDAgNTEuMi0yMi44IDUxLjItNTAgMCAyNy4xIDIxLjUgNTAgNDkgNTBzNDkuOC0yMi44IDQ5LjgtNTBjMCAyNy4xIDIzIDUwIDUwLjUgNTAgMjMgMCA0OC4zLTIzLjggNDguMy01MC44bDAtMjEuM2MtLjQtMTIuOS00My4yLTYyLjEtNjQuOS03NS02Ny40LTIuMy0xMTQuMi0yLjctMTg0LTIuN1M5MS4xIDMzLjEgNzEuOSAzNC44ek0yMDQuMiAxNjkuMmMtMjIgMzguNC03Ny45IDM4LjctOTkuOCAuMi0xMy4yIDIzLjEtNDMuMiAzMi4xLTU2IDI3LjctMy45IDQwLjItMTMuNyAyMzcuMSAxNy43IDI2OS4yIDgwIDE4LjcgMzAyLjEgMTguMSAzNzkuOCAwIDMxLjYtMzIuMyAyMS4zLTIzMiAxNy43LTI2OS4yLTEyLjkgNC40LTQyLjktNC42LTU2LTI3LjctMjIgMzguNS03Ny44IDM4LjEtOTkuOC0uMi03LjEgMTIuNS0yMyAyOC45LTUxLjggMjguOS0xMC40IC4zLTIwLjgtMi4yLTI5LjktNy4zcy0xNi43LTEyLjYtMjEuOS0yMS42bDAgMHptLTQxLjYgNTMuOGMxNi41IDAgMzEuMSAwIDQ5LjIgMTkuOCAyOS4zLTMgNTguOS0zIDg4LjIgMCAxOC4yLTE5LjcgMzIuOC0xOS43IDQ5LjItMTkuNyA1Mi4zIDAgNjUuMiA3Ny41IDgzLjkgMTQ0LjQgMTcuMyA2Mi4yLTUuNSA2My43LTM0IDYzLjctNDIuMS0xLjYtNjUuNS0zMi4yLTY1LjUtNjIuOC0zOS4zIDYuNC0xMDEuOSA4LjgtMTU1LjYgMCAwIDMwLjYtMjMuMyA2MS4yLTY1LjUgNjIuOC0yOC40LS4xLTUxLjItMS42LTMzLjktNjMuNyAxOC43LTY3IDMxLjYtMTQ0LjQgODMuOS0xNDQuNGwwLS4xek0yNTYgMjcwLjhzLTQ0LjQgNDAuOC01Mi40IDU1LjJsMjktMS4yIDAgMjUuM2MwIDEuNSAyMS4zIC4yIDIzLjMgLjIgMTEuNiAuNSAyMy4zIDEgMjMuMy0uMmwwLTI1LjMgMjkgMS4yYy04LTE0LjUtNTIuNC01NS4yLTUyLjQtNTUuMmwuMSAweiJdfSxZN2U9e3ByZWZpeDoiZmFiIixpY29uTmFtZToid2luZG93cyIsaWNvbjpbNDQ4LDUxMixbXSwiZjE3YSIsIk0wIDkzLjdsMTgzLjYtMjUuMyAwIDE3Ny40LTE4My42IDAgMC0xNTIuMXpNMCA0MTguM2wxODMuNiAyNS4zIDAtMTc1LjItMTgzLjYgMCAwIDE0OS45em0yMDMuOCAyOGwyNDQuMiAzMy43IDAtMjExLjYtMjQ0LjIgMCAwIDE3Ny45em0wLTM4MC42bDAgMTgwLjEgMjQ0LjIgMCAwLTIxMy44LTI0NC4yIDMzLjd6Il19LFo3ZT17cHJlZml4OiJmYWIiLGljb25OYW1lOiJzdHVtYmxldXBvbiIsaWNvbjpbNTEyLDUxMixbXSwiZjFhNCIsIk01MDIuOSAyNjZsMCA2OS43YzAgNjIuMS01MC4zIDExMi40LTExMi40IDExMi40LTYxLjggMC0xMTIuNC00OS44LTExMi40LTExMS4zbDAtNzAuMiAzNC4zIDE2IDUxLjEtMTUuMiAwIDcwLjZjMCAxNC43IDEyIDI2LjUgMjYuNyAyNi41UzQxNyAzNTIuNyA0MTcgMzM4bDAtNzIgODUuOSAwek0yNzguMiAyMDcuOGwzNC4zIDE2IDUxLjEtMTUuMiAwLTM1LjZjMC02MC41LTUxLjEtMTA5LTExMi4xLTEwOS02MC44IDAtMTEyLjEgNDguMi0xMTIuMSAxMDguMmwwIDE2Mi40YzAgMTQuOS0xMiAyNi43LTI2LjcgMjYuN1M4NiAzNDkuNSA4NiAzMzQuNmwwLTY4LjYtODYgMCAwIDY5LjdjMCA2MiA1MC4zIDExMi4zIDExMi40IDExMi4zIDYxLjYgMCAxMTIuNC00OS41IDExMi40LTExMC44bDAtMTYwLjNjMC0xNC43IDEyLTI2LjcgMjYuNy0yNi43czI2LjcgMTIgMjYuNyAyNi43bDAgMzAuOXoiXX0sSWY9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiZ29vZ2xlIixpY29uOls1MTIsNTEyLFtdLCJmMWEwIiwiTTUwMCAyNjEuOEM1MDAgNDAzLjMgNDAzLjEgNTA0IDI2MCA1MDQgMTIyLjggNTA0IDEyIDM5My4yIDEyIDI1NlMxMjIuOCA4IDI2MCA4YzY2LjggMCAxMjMgMjQuNSAxNjYuMyA2NC45bC02Ny41IDY0LjljLTg4LjMtODUuMi0yNTIuNS0yMS4yLTI1Mi41IDExOC4yIDAgODYuNSA2OS4xIDE1Ni42IDE1My43IDE1Ni42IDk4LjIgMCAxMzUtNzAuNCAxNDAuOC0xMDYuOWwtMTQwLjggMCAwLTg1LjMgMjM2LjEgMGMyLjMgMTIuNyAzLjkgMjQuOSAzLjkgNDEuNHoiXX0sWDdlPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImRpc2NvcmQiLGljb246WzU3Niw1MTIsW10sImYzOTIiLCJNNDkyLjUgNjkuOGMtLjItLjMtLjQtLjYtLjgtLjctMzguMS0xNy41LTc4LjQtMzAtMTE5LjctMzcuMS0uNC0uMS0uOCAwLTEuMSAuMXMtLjYgLjQtLjggLjhjLTUuNSA5LjktMTAuNSAyMC4yLTE0LjkgMzAuNi00NC42LTYuOC04OS45LTYuOC0xMzQuNCAwLTQuNS0xMC41LTkuNS0yMC43LTE1LjEtMzAuNi0uMi0uMy0uNS0uNi0uOC0uOHMtLjctLjItMS4xLS4yYy00MS4zIDcuMS04MS42IDE5LjYtMTE5LjcgMzcuMS0uMyAuMS0uNiAuNC0uOCAuNy03Ni4yIDExMy44LTk3LjEgMjI0LjktODYuOSAzMzQuNSAwIC4zIC4xIC41IC4yIC44cy4zIC40IC41IC42YzQ0LjQgMzIuOSA5NCA1OCAxNDYuOCA3NC4yIC40IC4xIC44IC4xIDEuMSAwcy43LS40IC45LS43YzExLjMtMTUuNCAyMS40LTMxLjggMzAtNDguOCAuMS0uMiAuMi0uNSAuMi0uOHMwLS41LS4xLS44LS4yLS41LS40LS42LS40LS4zLS43LS40Yy0xNS44LTYuMS0zMS4yLTEzLjQtNDUuOS0yMS45LS4zLS4yLS41LS40LS43LS42cy0uMy0uNi0uMy0uOSAwLS42IC4yLS45IC4zLS41IC42LS43YzMuMS0yLjMgNi4yLTQuNyA5LjEtNy4xIC4zLS4yIC42LS40IC45LS40cy43IDAgMSAuMWM5Ni4yIDQzLjkgMjAwLjQgNDMuOSAyOTUuNSAwIC4zLS4xIC43LS4yIDEtLjJzLjcgLjIgLjkgLjRjMi45IDIuNCA2IDQuOSA5LjEgNy4yIC4yIC4yIC40IC40IC42IC43cy4yIC42IC4yIC45LS4xIC42LS4zIC45LS40IC41LS42IC42Yy0xNC43IDguNi0zMCAxNS45LTQ1LjkgMjEuOC0uMiAuMS0uNSAuMi0uNyAuNHMtLjMgLjQtLjQgLjctLjEgLjUtLjEgLjggLjEgLjUgLjIgLjhjOC44IDE3IDE4LjggMzMuMyAzMCA0OC44IC4yIC4zIC42IC42IC45IC43cy44IC4xIDEuMSAwYzUyLjktMTYuMiAxMDIuNi00MS4zIDE0Ny4xLTc0LjIgLjItLjIgLjQtLjQgLjUtLjZzLjItLjUgLjItLjhjMTIuMy0xMjYuOC0yMC41LTIzNi45LTg2LjktMzM0LjV6bS0zMDIgMjY3LjdjLTI5IDAtNTIuOC0yNi42LTUyLjgtNTkuMnMyMy40LTU5LjIgNTIuOC01OS4yYzI5LjcgMCA1My4zIDI2LjggNTIuOCA1OS4yIDAgMzIuNy0yMy40IDU5LjItNTIuOCA1OS4yem0xOTUuNCAwYy0yOSAwLTUyLjgtMjYuNi01Mi44LTU5LjJzMjMuNC01OS4yIDUyLjgtNTkuMmMyOS43IDAgNTMuMyAyNi44IDUyLjggNTkuMiAwIDMyLjctMjMuMiA1OS4yLTUyLjggNTkuMnoiXX0sSzdlPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImhhY2tlci1uZXdzIixpY29uOls0NDgsNTEyLFtdLCJmMWQ0IiwiTTAgMzJsMCA0NDggNDQ4IDAgMC00NDgtNDQ4IDB6TTIxLjIgMjI5LjJsLS4yIDBjLjEtLjEgLjItLjMgLjMtLjQgMCAuMSAwIC4zLS4xIC40em0yMTggNTMuOWwwIDEwMC45LTMxLjQgMCAwLTEwMi43LTc5LjgtMTUzLjMgMzcuMyAwYzUyLjUgOTguMyA0OS4yIDEwMS4yIDU5LjMgMTI1LjYgMTIuMy0yNyA1LjgtMjQuNCA2MC42LTEyNS42bDM0LjggMC04MC44IDE1NS4xeiJdfSxwRT17cHJlZml4OiJmYWIiLGljb25OYW1lOiJlbGV2ZW50eSIsaWNvbjpbNjQwLDUxMixbIjExdHkiXSwiZTdkNiIsIk02MTUuMyAxNjguNWMyLjMgMCA0LjYgLjcgNi42IDIuMiAxLjkgMS40IDMuMSAzLjMgMy44IDUgMS40IDMuMyAxLjggNy4zIDEuOCAxMS4zIDAgMi4yLS4zIDQuOS0uNyA3LjZsMCAuNC01MC45IDI2NC45IDAgMGMtNCAyMi4xLTguNSAzOS40LTEzLjYgNTEuNy01IDEyLjEtMTAuOSAyMS42LTE4LjYgMjdsMCAwYy03LjUgNS4zLTE2LjkgNy43LTI3LjYgOGwtMyAwYy0xNiAwLTI5LjMtNC4yLTM2LjktMTQuOC0uMS0uMS0uMS0uMS0uMi0uMi0uMS0uMi0uMy0uNC0uNS0uNmwwIDBjLTEuOC0yLjQtMi41LTUuMi0yLjktNy40LS41LTIuOC0uNy02LjEtLjctOS44IDAtNy4zIC42LTEzLjUgMi4xLTE4LjIgMS40LTQuNCA0LjgtMTAuNCAxMi4yLTEwLjRsMS4zIC4xYy4yIDAgLjQgLjEgLjUgLjEgLjMgLjEgLjYgLjEgLjggLjIgLjYgLjEgMS4zIC4zIDIuMiAuNmw3LjYgMi4yIC4xIDAgNy42IDIuMWMuOSAuMiAxLjcgLjQgMi4yIC41IC40IC4xIC42IC4xIC43IC4xIDAgMCAuMSAwIC4yLS4xIC4xLS4xIC40LS4yIC44LS42IC45LS45IDIuMi0yLjYgMy42LTUuNyAyLjYtNS44IDQuMi0xNC43IDQuMi0yNy40IDAtLjctLjMtMy40LTEuMy04LjktLjktNS4xLTIuMy0xMi4yLTQuMi0yMS4xbC01Ni0yMzIuOS0uMS0uNCAwLS4zYy0uNC0yLjctLjctNS4zLS43LTcuMyAwLTMuNyAuNC03LjUgMS43LTEwLjYgLjctMS42IDEuOC0zLjQgMy41LTQuOSAxLjktMS41IDQuMi0yLjMgNi41LTIuM2wzNC42IDBjNC42IDAgOC43IDEuNyAxMS45IDVsMS4zIDEuNWMxLjIgMS42IDIgMy40IDIuNyA1LjIgLjkgMi40IDEuNSA1LjEgMiA4LjFsMzAuNCAxNjEuMiAyMy44LTE2MGMuOC01LjggMi4yLTExLjQgNS4xLTE1LjEgMy0zLjggNy4yLTUuOCAxMi01LjhsMjQgMHpNMzc1LjEgMzQuNmMyLjYgMCA1LjEgLjcgNy40IDIuMyAyLjIgMS41IDMuNyAzLjYgNC43IDUuNyAxLjkgNCAyLjUgOS4xIDIuNSAxNC41bDAgMTExLjJjMCAuMSAwIC4yIDAgLjNsMzIuNCAwYzIuNSAwIDUgLjYgNy4yIDIuMSAyLjIgMS40IDMuNyAzLjQgNC44IDUuNSAyIDMuOSAyLjYgOC44IDIuNiAxMy45bDAgMTUuNGMwIDUtLjYgOS44LTIuNiAxMy43LTEuMSAyLTIuNiA0LTQuOCA1LjQtMi4yIDEuNC00LjcgMi03LjEgMmwtMzIuNSAwIDAgMTQ1LjhjMCAxMC44IC43IDE5LjUgMiAyNi4yIDEuNCA2LjkgMy4xIDEwLjkgNC43IDEyLjkgMS4yIDEuNSAyLjIgMi41IDMuMSAzLjJsMi4yIDEuNCAuMSAuMSAyLjkgLjhjMS4yIC4yIDIuNiAuMyA0LjMgLjNsMjAuMyAwYzQuNSAwIDguOSAxLjcgMTEuOCA1LjggMi42IDMuNiAzLjMgOC4xIDMuMyAxMi4ybDAgMTcuMmMwIDQuNS0uOCA5LjMtMy40IDEzLjEtMyA0LjItNy41IDYtMTIuMyA2bDAgMC0yOS4xIC4xYy04IDAtMTUtLjYtMjEuMi0xLjctNi43LTEuMy0xMy40LTQuMS0yMC4xLTguMS03LjItNC40LTEzLTEwLjMtMTcuNS0xNy44LTQuNS03LjUtNy45LTE3LjUtMTAuNS0yOS41LTIuNi0xMi4yLTMuOS0yNi42LTMuOS00M2wwLTE0NC45LTEzLjQgMGMtMi40IDAtNC45LS42LTcuMS0yLTIuMi0xLjQtMy43LTMuNC00LjgtNS40LTItMy45LTIuNi04LjctMi42LTEzLjdsMC0xNS40YzAtNS4xIC42LTEwIDIuNi0xMy45IDEuMS0yLjEgMi42LTQgNC44LTUuNSAyLjItMS41IDQuNy0yLjEgNy4yLTIuMWwxMy40IDAgMC0uNiA1LjItMTExLjIgMC0uMSAuMy0zLjljLjUtMy44IDEuMy03LjQgMi43LTEwLjMgMi4xLTQuMiA2LTcuOSAxMS44LTcuOWwyOC42IDB6bS0yNjggMTEuN2MxLjggLjMgMy42IC45IDUuMyAyLjEgMi4xIDEuNSAzLjUgMy41IDQuNCA1LjQgMS43IDMuNyAyLjMgOC40IDIuMyAxMy4ybDAgMzc3LjhjMCA2LjctLjYgMTIuNi0yLjQgMTcuMS0uOSAyLjMtMi4zIDQuNy00LjQgNi41LTIuMyAyLTUuMSAzLTguMSAzbC00My43IDBjLTMgMC01LjgtMS4xLTguMS0zLjEtMi4xLTEuOS0zLjQtNC4zLTQuMi02LjUtMS43LTQuNS0yLjMtMTAuMy0yLjMtMTdsMC0zMTUuOGMtNC44IDEuMi04LjcgMi4yLTExLjUgMi45LTEuOSAuNS0zLjQgLjgtNC40IDEuMS0uNSAuMS0uOSAuMi0xLjIgLjMtLjEgMC0uMyAuMS0uNSAuMS0uMSAwLS4yIDAtLjMgLjEgMCAwLS4yIDAtLjMgMCAwIDAtLjIgMC0uNCAwbDAgMGMtLjEgMC0uMyAwLS40IDAtLjEgMC0uMiAwLS4yIDAtMi4yIC4xLTQuNS0uNC02LjYtMS43LTIuMy0xLjQtMy44LTMuNC00LjctNS4zLTEuOC0zLjctMi4zLTguNC0yLjMtMTNsMC0yNy40YzAtNC40IC43LTguOCAyLjYtMTIuNCAyLjEtMy45IDUuNS02LjYgOS44LTcuNmw3NS41LTE5LjVjMS40LS40IDIuOS0uNSA0LjQtLjVsMS44IC4xem0xNDMuOC0uNWMxLjggLjMgMy42IC45IDUuMiAyLjEgMi4xIDEuNSAzLjUgMy41IDQuNCA1LjQgMS43IDMuNyAyLjIgOC40IDIuMiAxMy4ybDAgMzc3LjhjMCA2LjctLjYgMTIuNi0yLjQgMTcuMS0uOSAyLjMtMi4zIDQuNy00LjQgNi41LTIuMyAyLTUuMSAzLTguMSAzbC00My43IDBjLTMgMC01LjgtMS4xLTguMS0zLjEtMi4xLTEuOS0zLjQtNC4zLTQuMi02LjUtMS43LTQuNS0yLjMtMTAuMy0yLjMtMTdsMC0zMTUuOGMtNC44IDEuMi04LjcgMi4yLTExLjUgMi45LTEuOSAuNS0zLjQgLjgtNC40IDEuMS0uNSAuMS0uOSAuMi0xLjIgLjMtLjEgMC0uMyAuMS0uNSAuMS0uMSAwLS4yIDAtLjMgLjEtLjEgMC0uMiAwLS4zIDAgMCAwLS4yIDAtLjQgMGwwIDBjLS4xIDAtLjIgMC0uMyAwLS4xIDAtLjIgMC0uMyAwLTIuMiAuMS00LjUtLjQtNi42LTEuNy0yLjMtMS40LTMuOC0zLjQtNC43LTUuMy0xLjgtMy43LTIuMy04LjMtMi4zLTEzbDAtMjcuNGMwLTQuNCAuNy04LjcgMi42LTEyLjQgMi4xLTMuOSA1LjUtNi42IDkuOC03LjZsNzUuNC0xOS40YzEuNC0uNCAyLjktLjUgNC40LS41bDEuOCAuMXoiXX0sUTdlPXBFLEo3ZT17cHJlZml4OiJmYWIiLGljb25OYW1lOiJ0ZWFtc3BlYWsiLGljb246WzU3Niw1MTIsW10sImY0ZjkiLCJNMTUyLjggMzcuMmMtMzIuMiAzOC4xLTU2LjEgODIuNi02OS45IDEzMC41IDAgLjItLjEgLjMtLjEgLjUtMzkuMyAxNi4yLTY2LjggNTQuOC02Ni44IDk5LjggMCA1OS42IDQ4LjQgMTA4IDEwOCAxMDhzMTA4LTQ4LjQgMTA4LTEwOGMwLTUzLjUtMzguOS05Ny45LTkwLTEwNi41IDE1LjctNDEuOCA0MC40LTc5LjYgNzIuMy0xMTAuNyAxLjgtMS42IDQtMi42IDYuMy0zLjEgMzcuMi0xMS41IDc2LjctMTMuMyAxMTQuOC01LjIgMTE5LjMgMjUuMSAxOTguNiAxMzguMiAxODEuNyAyNTguOC04LjQgNjIuNi0zOC42IDExMi43LTg3LjcgMTUxLjQtNTAuMSAzOS43LTEwNy41IDU0LjMtMTcwLjIgNTIuMmwtMjQtMWMxMi40IDIuOCAyNSA0LjkgMzcuNiA2LjMgNDAuNyA0LjIgODEuNCAyLjEgMTIwLjEtMTIuNSA5NC0zNS41IDE0OS4zLTEwMi4zIDE2Mi45LTIwMi41IDQuOC01Mi42LTUuOC0xMDUuNC0zMC44LTE1Mi03MC40LTEzMS45LTIzNC4yLTE4MS42LTM2Ni0xMTEuMi0yLjQgMS40LTQuNSAzLjEtNi4zIDUuMmwuMSAwek0zMDkuNCA0MzMuOWMtMi4xIDExLjUtNC4yIDIxLjktMTQuNiAzMS4zIDUzLjItMSAxMjMuMi0yOS4yIDE2MS44LTk3LjEgMzkuNy02OS45IDM3LjYtMTM5LjktNi4zLTIwNy44LTM2LjUtNTUuMy04OS44LTgyLjQtMTU2LjYtODYuNiAxLjUgMi4zIDMuMiA0LjQgNS4yIDYuM2w1LjIgNi4zYzI1LjEgMzEuMyAzNy42IDY3LjkgNDIuOCAxMDcuNSAyLjEgMTUuNy0xIDMwLjMtMTMuNiA0MS44LTQuMiAzLjEtNS4yIDYuMy00LjIgMTAuNGw3LjMgMTcuNyAyOS4zIDU0LjNjNS4yIDExLjUgNC4yIDE5LjgtNi4zIDI4LjItMy4yIDIuNS02LjcgNC42LTEwLjQgNi4zbC0xOC44IDguNCAzLjEgMTMuNmMzLjEgNi4zIDEgMTIuNS0zLjEgMTcuNy0yLjUgMi40LTMuOCA1LjktMy4xIDkuNCAyLjEgMTEuNS0yLjEgMTkuOC0xMi41IDI1LjEtMi4xIDEtNC4yIDUuMi01LjIgNy4zbDAtLjF6bS0xMzMuNi0zLjFjMTYuNyAxMS41IDM0LjUgMjAuOSA1My4yIDI2LjEgMjQgNS4yIDQxLjgtNi4zIDQ0LjktMzAuMyAxLTguNCA1LjItMTQuNiAxMi41LTE3LjcgNy4zLTQuMiA4LjQtNy4zIDIuMS0xMy42bC05LjQtOC40IDEzLjYtNC4yYzYuMy0yLjEgNy4zLTUuMiA1LjItMTEuNS0xLjQtMy0yLjQtNi4yLTMuMS05LjQtMy4xLTE0LjYtMi4xLTE1LjcgMTEuNS0xOC44IDguNC0zLjEgMTUuNy02LjMgMjEuOS0xMi41IDMuMS0yLjEgMy4xLTQuMiAxLTguNGwtMTYuNy0zMC4zYy0xLTEuOS0yLjEtMy44LTMuMS01LjctNi40LTExLjctMTMtMjMuNi0xNS43LTM3LjEtMi4xLTkuNC0xLTE3LjcgOC40LTI0IDUuMi00LjIgOC40LTkuNCA4LjQtMTYuNy0uNC0xMC4xLTEuNS0yMC4zLTMuMS0zMC4zLTYuMy0zNy42LTIzLTY4LjktNTEuMi05NS01LjItNC4yLTkuNC02LjMtMTYuNy00LjJsLTM1LjYgMTIuNyA2IDMuNmM2LjMgMy43IDEyLjIgNy4zIDE3IDEyLjEgMzAuMyAyNi4xIDQxLjggNjEuNiA0NS45IDEwMC4yIDEgOC40IDAgMTYuNy03LjMgMjEuOS04LjQgNS4yLTEwLjQgMTIuNS03LjMgMjAuOSA0LjkgMTMuMiAxMC40IDI2IDE2LjcgMzguNkwyOTEuNiAzMThjLTYuMyA4LjQtMTMuNiAxMS41LTIxLjkgMTQuNi0xMi41IDMuMS0xNC42IDcuMy0xMC40IDIwLjkgLjYgMS41IDEuNCAyLjggMi4xIDQuMiAyLjEgNS4yIDEgOC40LTQuMiAxMC40bC0xMi41IDMuMSA1LjIgNC4yIDQuMiA0LjJjNC4yIDUuMiA0LjIgOC40LTIuMSAxMC40LTcuMyA0LjItMTEuNSA5LjQtMTEuNSAxNy43IDAgMTIuNS03LjMgMTkuOC0xOC44IDI0LTMuOCAxLTcuNiAxLjUtMTEuNSAxbC0zNC41LTIuMSAuMSAuMnoiXX0sZWhlPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6InN1cHBsZSIsaWNvbjpbNjQwLDUxMixbXSwiZjNmOSIsIk02NDAgMjYyLjVjMCA2NC4xLTEwOSAxMTYuMS0yNDMuNSAxMTYuMS0yNC44IDAtNDguNi0xLjgtNzEuMS01IDcuNyAuNCAxNS41IC42IDIzLjQgLjYgMTM0LjUgMCAyNDMuNS01Ni45IDI0My41LTEyNy4xIDAtMjkuNC0xOS4xLTU2LjQtNTEuMi03OCA2MCAyMS4xIDk4LjkgNTUuMSA5OC45IDkzLjR6TTQ3LjcgMjI3LjljLS4xLTcwLjIgMTA4LjgtMTI3LjMgMjQzLjMtMTI3LjYgNy45IDAgMTUuNiAuMiAyMy4zIC41LTIyLjUtMy4yLTQ2LjMtNC45LTcxLTQuOS0xMzQuNSAuNC0yNDMuNCA1Mi42LTI0My4zIDExNi43IC4xIDM4LjMgMzkuMSA3Mi4zIDk5LjMgOTMuMy0zMi4zLTIxLjUtNTEuNS00OC42LTUxLjYtNzh6bTYwLjIgMzkuOVMxMTguNCAyODEgMTM3LjIgMjgxYzE3LjkgMCAyOC40LTExLjUgMjguNC0yNS4xIDAtMjgtNDAuMi0yNS4xLTQwLjItMzkuNyAwLTUuNCA1LjMtOS4xIDEyLjUtOS4xIDUuNyAwIDExLjMgMi42IDExLjMgNi42bDAgMy45IDE0LjIgMCAwLTcuOWMwLTEyLjEtMTUuNC0xNi44LTI1LjQtMTYuOC0xNi41IDAtMjguNSAxMC4yLTI4LjUgMjQuMSAwIDI2LjYgNDAuMiAyNS40IDQwLjIgMzkuOSAwIDYuNi01LjggMTAuMS0xMi4zIDEwLjEtMTEuOSAwLTIwLjctMTAuMS0yMC43LTEwLjFsLTguOCAxMC45em0xMjAuOC03My42bDAgNTQuNGMwIDExLjMtNy4xIDE3LjgtMTcuOCAxNy44cy0xNy44LTYuNS0xNy44LTE3LjdsMC01NC41LTE1LjggMCAwIDU1YzAgMTguOSAxMy40IDMxLjkgMzMuNyAzMS45IDIwLjEgMCAzMy40LTEzIDMzLjQtMzEuOWwwLTU1LTE1LjcgMHptMzQuNCA4NS40bDE1LjggMCAwLTI5LjUgMTUuNSAwYzE2IDAgMjcuMi0xMS41IDI3LjItMjguMXMtMTEuMi0yNy44LTI3LjItMjcuOGwtMzkuMSAwIDAgMTMuNCA3LjggMCAwIDcyem0xNS44LTQzbDAtMjkuMSAxMi45IDBjOC43IDAgMTMuNyA1LjcgMTMuNyAxNC40IDAgOC45LTUuMSAxNC43LTE0IDE0LjdsLTEyLjYgMHptNTcgNDNsMTUuOCAwIDAtMjkuNSAxNS41IDBjMTYgMCAyNy4yLTExLjUgMjcuMi0yOC4xcy0xMS4yLTI3LjgtMjcuMi0yNy44bC0zOS4xIDAgMCAxMy40IDcuOCAwIDAgNzJ6bTE1LjctNDNsMC0yOS4xIDEyLjkgMGM4LjcgMCAxMy43IDUuNyAxMy43IDE0LjQgMCA4LjktNSAxNC43LTE0IDE0LjdsLTEyLjYgMHptNTcuMSAzNC44YzAgNS44IDIuNCA4LjIgOC4yIDguMmwzNy42IDBjNS44IDAgOC4yLTIuNCA4LjItOC4ybDAtMTMtMTQuMyAwIDAgNS4yYzAgMS43LTEgMi42LTIuNiAyLjZsLTE4LjYgMGMtMS43IDAtMi42LTEtMi42LTIuNmwwLTYxLjJjMC01LjctMi40LTguMi04LjItOC4ybC0xNS40IDAgMCAxMy40IDUuMiAwYzEuNyAwIDIuNiAxIDIuNiAyLjZsMCA2MS4yLS4xIDB6bTYzLjQgMGMwIDUuOCAyLjQgOC4yIDguMiA4LjJsMzguNyAwYzUuNyAwIDguMi0yLjQgOC4yLTguMmwwLTEzLTE0LjMgMCAwIDUuMmMwIDEuNy0xIDIuNi0yLjYgMi42bC0xOS43IDBjLTEuNyAwLTIuNi0xLTIuNi0yLjZsMC0yMC4zIDI3LjcgMCAwLTEzLjQtMjcuNyAwIDAtMjIuNCAxOS4yIDBjMS43IDAgMi42IDEgMi42IDIuNmwwIDUuMiAxNC4yIDAgMC0xM2MwLTUuNy0yLjUtOC4yLTguMi04LjJsLTUxLjYgMCAwIDEzLjQgNy44IDAgMCA2My45IC4xIDB6bTU4LjktNzZsMCA1LjkgMS42IDAgMC01LjkgMi43IDAgMC0xLjItNyAwIDAgMS4yIDIuNyAwem01LjctMS4ybDAgNy4xIDEuNSAwIDAtNS43IDIuMyA1LjcgMS4zIDAgMi4zLTUuNyAwIDUuNyAxLjUgMCAwLTcuMS0yLjMgMC0yLjEgNS4xLTIuMS01LjEtMi40IDB6Il19LHVFPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6InNxdWFyZS10d2l0dGVyIixpY29uOls0NDgsNTEyLFsidHdpdHRlci1zcXVhcmUiXSwiZjA4MSIsIk02NCAzMkMyOC43IDMyIDAgNjAuNyAwIDk2TDAgNDE2YzAgMzUuMyAyOC43IDY0IDY0IDY0bDMyMCAwYzM1LjMgMCA2NC0yOC43IDY0LTY0bDAtMzIwYzAtMzUuMy0yOC43LTY0LTY0LTY0TDY0IDMyek0zNTEuMyAxOTkuM2MwIDg2LjctNjYgMTg2LjYtMTg2LjYgMTg2LjYtMzcuMiAwLTcxLjctMTAuOC0xMDAuNy0yOS40IDUuMyAuNiAxMC40IC44IDE1LjggLjggMzAuNyAwIDU4LjktMTAuNCA4MS40LTI4LTI4LjgtLjYtNTMtMTkuNS02MS4zLTQ1LjUgMTAuMSAxLjUgMTkuMiAxLjUgMjkuNi0xLjItMzAtNi4xLTUyLjUtMzIuNS01Mi41LTY0LjRsMC0uOGM4LjcgNC45IDE4LjkgNy45IDI5LjYgOC4zLTktNi0xNi40LTE0LjEtMjEuNS0yMy42cy03LjgtMjAuMi03LjctMzFjMC0xMi4yIDMuMi0yMy40IDguOS0zMy4xIDMyLjMgMzkuOCA4MC44IDY1LjggMTM1LjIgNjguNi05LjMtNDQuNSAyNC04MC42IDY0LTgwLjYgMTguOSAwIDM1LjkgNy45IDQ3LjkgMjAuNyAxNC44LTIuOCAyOS04LjMgNDEuNi0xNS44LTQuOSAxNS4yLTE1LjIgMjgtMjguOCAzNi4xIDEzLjItMS40IDI2LTUuMSAzNy44LTEwLjItOC45IDEzLjEtMjAuMSAyNC43LTMyLjkgMzQgLjIgMi44IC4yIDUuNyAuMiA4LjV6Il19LHRoZT11RSxhaGU9e3ByZWZpeDoiZmFiIixpY29uTmFtZToidmltIixpY29uOls1MTIsNTEyLFtdLCJlODhhIiwiTTMwMy4zIDU0LjVsMC0xMi4zIDQtMy43IDcuOS03LjIgMy41LTMuMiAxNjggMCAxNS4xIDE1LjEgMCAzOC45LTMuNSAzLjYtODAuOSA4Mi45IDg2LjkgODYuOS05MS4yIDkxLjIgOC45IDAgNy42LTguMyAxLS45YzEuMS0uOCAyLjUtMS4yIDMuOS0xLjJsMjguOSAwIDEuNSAuMmMxLjUgLjQgMi44IDEuMiAzLjggMi41bDcuNiAxMC4yYzEuMyAxLjcgMS42IDMuOSAxIDUuOWwtMjIuMyA3Mi41IDEuMiAwYzIuMiAwIDQuMiAxLjEgNS41IDIuOXMxLjUgNC4xIC43IDYuMUw0NTkgNDQ1Yy0xIDIuNi0zLjQgNC4yLTYuMiA0LjJsLTQwLjQgMGMtMi4xIDAtNC4xLTEtNS4zLTIuN3MtMS42LTMuOS0xLTUuOWwyMC02My4yLTIyLjIgMC0xNi4yIDUwLjdjMi4xIC4xIDQuMSAxLjEgNS4zIDIuOSAxLjIgMS44IDEuNCA0LjIgLjYgNi4ybC0zLjMgNy45Yy0xIDIuNS0zLjUgNC4xLTYuMSA0LjFsLTM2LjggMGMtMi4xIDAtNC4xLTEtNS40LTIuN3MtMS42LTMuOS0xLTUuOWwxMC0zMi4xLTIzLjkgMjMuOGMuMyAxLjIgLjMgMi41LS4xIDMuOGwtMi45IDguNmMtLjkgMi43LTMuNCA0LjUtNi4zIDQuNWwtNy40IDAtNTQuNiA1NC42LTgzLjgtODMuOC0zMS42IDMyLjUtMy42IDMuNy00OS4yIDAtMi44LTEuN2MtOC44LTUuMS0xNC44LTguNS0xNy45LTEwLjNsMC0xMjkuMy01OC41LTU4LjUgMi42LTIuNiA1NS45LTU2IDAtOTkuNC0xMi42IDAtMTAuOC0xMC44LTMuNi0zLjYgMC00MC43IDMuMi0zLjUgNy45LTguNSAzLjctMy45IDE2Ni42IDAgOCA4IDI3LjQtMjcuNCA0Ni40IDQ2LjR6bS0yNTEtNS42bDAgMzAuMyA5LjQgNy44IDE4LjkgMCAwIDM0Ny45IDExLjQgMTAuMyAzOC4yIDAgOTEtOTNjMC0uNCAuMS0uOCAuMi0xLjFsMi42LTEwLjVjLjctMi45IDMuNC01IDYuNC01bDcuMSAwIDE1LjUtMTUuOS0yLTJjLTEuOC0xLjgtMi40LTQuNS0xLjUtNi45bDYuOS0xOS4zYy40LTEuMSAxLjEtMiAxLjktMi44bDYuOS01LjljMS4yLTEgMi44LTEuNiA0LjMtMS42bDE5LjcgMCAxLjMgLjJjLjEgMCAuMSAuMSAuMiAuMWwxOTkuMi0yMDMuNSAwLTI4LjctOC4yLTcuNC0xNTYuMiAwLTcuOCA3LjggMCAzMC41IDguMiA3LjQgMjEgMC0xNDcgMTQ2LjQgMC0xNDYuNiAxNi45IDAgOC43LTguNyAwLTI3LjctNy40LTkuOS0xNTcuNiAwLTggOHpNMjI3LjYgMzUyLjdsMTQuOCAwLTMxLjggOTAuOSA0NS4zIDAgMy05LjYtMTIuNSAwIDMxLjUtOTEuOS00Ny42IDAtMi42IDEwLjV6bTEzNi45IDFsLTE2LjQgMC0xMC41LTEwLjgtMzUuOCAwLTMuMyA5LjggMTEuOCAwLTMwLjUgODkuOSAzOC4xIDAgMi45LTguNi04LjggMCAyMC02MyAzNy44IDAtMjIuMyA3MS42IDM2LjggMCAzLjMtNy45LTguOCAwIDIwLjMtNjQgMzYuMSAwLTIyLjcgNzEuOSA0MC40IDAgMy4zLTguNi0xMC4yIDAgMjUtODEuMS03LjUtMTAuMi0yOC45IDAtOS41IDEwLjUtMTcuNCAwLTkuOS0xMC44LTIzLjMgMC05LjggMTEuMnpNMjYyLjUgMjkzLjZsLTYuOSAxOS4zIDUuMyA1LjMgMjEuMyAwIDUuNi01LjYgNS45LTIwLjMtNC42LTQuNi0xOS43IDAtNi45IDUuOXoiXX0sUGY9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiZm9udC1hd2Vzb21lIixpY29uOls1MTIsNTEyLFs2MjUwMSw2MjY5NCwiZm9udC1hd2Vzb21lLWZsYWciLCJmb250LWF3ZXNvbWUtbG9nby1mdWxsIl0sImYyYjQiLCJNOTEuNyA5NkMxMDYuMyA4Ni44IDExNiA3MC41IDExNiA1MiAxMTYgMjMuMyA5Mi43IDAgNjQgMFMxMiAyMy4zIDEyIDUyYzAgMTYuNyA3LjggMzEuNSAyMCA0MWwwIDQxOSA2NCAwIDAtNjQgMzczLjYgMGMxNC42IDAgMjYuNC0xMS44IDI2LjQtMjYuNCAwLTMuNy0uOC03LjMtMi4zLTEwLjdMNDMyIDI3MiA0OTMuNyAxMzMuMWMxLjUtMy40IDIuMy03IDIuMy0xMC43IDAtMTQuNi0xMS44LTI2LjQtMjYuNC0yNi40TDkxLjcgOTZ6Il19LGloZT1QZixyaGU9UGYsZkU9e3ByZWZpeDoiZmFiIixpY29uTmFtZToid2lyc2luZGhhbmR3ZXJrIixpY29uOls0NDgsNTEyLFsid3NoIl0sImUyZDAiLCJNMTguOSA0NzkuOGw4My40IDAgMC0xMTItODMuNCA0NyAwIDY1em0zMjkgMGw4Mi40IDAgMC02NS04Mi40LTQ3IDAgMTEyem0wLTQ0OGwwIDIxOS44LTEyMy42LTcyLjQtMTIxLjcgNzIuNCAwLTIxOS44LTgzLjcgMCAwIDM2MC44IDIwNS40LTEyMi4zIDIwNiAxMjIuMyAwLTM2MC44LTgyLjMgMHoiXX0sc2hlPWZFLG5oZT17cHJlZml4OiJmYWIiLGljb25OYW1lOiJ6b29tIixpY29uOls2NDAsNTEyLFtdLCJlODdiIiwiTTEzNC4yIDMyNi42bC0xMTQuNCAwYy04IDAtMTUuMi00LjgtMTguMy0xMi4yUy4xIDI5OC42IDUuOCAyOTIuOWw3OS4zLTc5LjMtNTYuOCAwQzEyLjcgMjEzLjYgMCAyMDEgMCAxODUuNGwxMDUuNSAwYzggMCAxNS4yIDQuOCAxOC4zIDEyLjJzMS40IDE1LjktNC4zIDIxLjZsLTc5LjMgNzkuMyA2NS43IDBjMTUuNiAwIDI4LjMgMTIuNiAyOC4zIDI4LjN6TTY0MCAyMzguM2MwLTMwLjQtMjQuNy01NS4xLTU1LjEtNTUuMS0xNi4yIDAtMzAuOSA3LjEtNDEgMTguMy0xMC4xLTExLjItMjQuNy0xOC4zLTQxLTE4LjMtMzAuNCAwLTU1LjEgMjQuNy01NS4xIDU1LjFsMCA4OC4zYzE1LjYgMCAyOC4zLTEyLjcgMjguMy0yOC4zbDAtNjBjMC0xNC44IDEyLTI2LjggMjYuOC0yNi44czI2LjggMTIgMjYuOCAyNi44bDAgNjBjMCAxNS42IDEyLjYgMjguMyAyOC4zIDI4LjNsMC04OC4zYzAtMTQuOCAxMi0yNi44IDI2LjgtMjYuOHMyNi44IDEyIDI2LjggMjYuOGwwIDYwYzAgMTUuNiAxMi42IDI4LjMgMjguMyAyOC4zbDAtODguM3pNMjg4LjIgMjU2YTcyLjggNzIuOCAwIDEgMSAxNDUuNSAwIDcyLjggNzIuOCAwIDEgMSAtMTQ1LjUgMHptMTE3LjMgMGE0NC41IDQ0LjUgMCAxIDAgLTg5IDAgNDQuNSA0NC41IDAgMSAwIDg5IDB6bS0yNzQuMSAwYTcyLjggNzIuOCAwIDEgMSAxNDUuNSAwIDcyLjggNzIuOCAwIDEgMSAtMTQ1LjUgMHptMTE3LjMgMGE0NC41IDQ0LjUgMCAxIDAgLTg5IDAgNDQuNSA0NC41IDAgMSAwIDg5IDB6Il19LG9oZT17cHJlZml4OiJmYWIiLGljb25OYW1lOiJjb25mbHVlbmNlIixpY29uOls1MTIsNTEyLFtdLCJmNzhkIiwiTTIuOCA0MTIuMmMtNC41IDcuNi0yLjEgMTcuNSA1LjUgMjIuMmwxMDUuOSA2NS4yYzcuNyA0LjcgMTcuNyAyLjQgMjIuNC01LjMgMC0uMSAuMS0uMiAuMS0uMiA2Ny4xLTExMi4yIDgwLjUtOTUuOSAyODAuOS0uNyA4LjEgMy45IDE3LjggLjQgMjEuNy03LjcgLjEtLjEgLjEtLjMgLjItLjRsNTAuNC0xMTQuMWMzLjYtOC4xLS4xLTE3LjYtOC4xLTIxLjMtMjIuMi0xMC40LTY2LjItMzEuMi0xMDUuOS01MC4zLTI0Ny45LTEyMC42LTMzMC44IDQ1LjctMzczLjEgMTEyLjZ6TTUxMC4yIDEwMC4xYzQuNS03LjYgMi4xLTE3LjUtNS41LTIyLjJMMzk4LjkgMTIuOGMtNy41LTUtMTcuNi0zLjEtMjIuNiA0LjQtLjIgLjMtLjQgLjYtLjYgMS02Ny4zIDExMi42LTgxLjEgOTUuNi0yODAuNiAuOS04LjEtMy45LTE3LjgtLjQtMjEuNyA3LjctLjEgLjEtLjEgLjMtLjIgLjRMMjIuNyAxNDEuM2MtMy42IDguMSAuMSAxNy42IDguMSAyMS4zIDIyLjIgMTAuNCA2Ni4zIDMxLjIgMTA2IDUwLjQgMjQ4IDEyMCAzMzAuOC00NS40IDM3My40LTExMi45eiJdfSxsaGU9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiZGlnZyIsaWNvbjpbNTEyLDUxMixbXSwiZjFhNiIsIk04MS43IDE3Mi4zbC04MS43IDAgMCAxNzQuNCAxMzIuNyAwIDAtMjUwLjctNTEgMCAwIDc2LjN6bTAgMTMzLjRsLTMwLjggMCAwLTkyLjMgMzAuOCAwIDAgOTIuM3pNMzc4LjkgMTcyLjNsMCAxNzQuNCA4MS44IDAgMCAyOC41LTgxLjggMCAwIDQwLjggMTMzLjEgMCAwLTI0My43LTEzMy4xIDB6bTgxLjggMTMzLjRsLTMwLjggMCAwLTkyLjMgMzAuOCAwIDAgOTIuM3ptLTIzNS42IDQxbDgyLjEgMCAwIDI4LjUtODIuMSAwIDAgNDAuOCAxMzMuMyAwIDAtMjQzLjctMTMzLjMgMCAwIDE3NC40em01MS4yLTEzMy4zbDMwLjggMCAwIDkyLjMtMzAuOCAwIDAtOTIuM3pNMTUzLjMgOTZsNTEuMyAwIDAgNTEtNTEuMyAwIDAtNTF6bTAgNzYuM2w1MS4zIDAgMCAxNzQuNC01MS4zIDAgMC0xNzQuNHoiXX0sY2hlPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6InRocmVhZHMiLGljb246WzQ0OCw1MTIsW10sImU2MTgiLCJNMzMxLjUgMjM1LjdjMi4yIC45IDQuMiAxLjkgNi4zIDIuOCAyOS4yIDE0LjEgNTAuNiAzNS4yIDYxLjggNjEuNCAxNS43IDM2LjUgMTcuMiA5NS44LTMwLjMgMTQzLjItMzYuMiAzNi4yLTgwLjMgNTIuNS0xNDIuNiA1M2wtLjMgMGMtNzAuMi0uNS0xMjQuMS0yNC4xLTE2MC40LTcwLjItMzIuMy00MS00OC45LTk4LjEtNDkuNS0xNjkuNmwwLS41QzE3IDE4NC4zIDMzLjYgMTI3LjIgNjUuOSA4Ni4yIDEwMi4yIDQwLjEgMTU2LjIgMTYuNSAyMjYuNCAxNmwuMyAwYzcwLjMgLjUgMTI0LjkgMjQgMTYyLjMgNjkuOSAxOC40IDIyLjcgMzIgNTAgNDAuNiA4MS43bC00MC40IDEwLjhjLTcuMS0yNS44LTE3LjgtNDcuOC0zMi4yLTY1LjQtMjkuMi0zNS44LTczLTU0LjItMTMwLjUtNTQuNi01NyAuNS0xMDAuMSAxOC44LTEyOC4yIDU0LjQtMjYuMiAzMy4zLTM5LjggODEuNS00MC4zIDE0My4yIC41IDYxLjcgMTQuMSAxMDkuOSA0MC4zIDE0My4zIDI4IDM1LjYgNzEuMiA1My45IDEyOC4yIDU0LjQgNTEuNC0uNCA4NS40LTEyLjYgMTEzLjctNDAuOSAzMi4zLTMyLjIgMzEuNy03MS44IDIxLjQtOTUuOS02LjEtMTQuMi0xNy4xLTI2LTMxLjktMzQuOS0zLjcgMjYuOS0xMS44IDQ4LjMtMjQuNyA2NC44LTE3LjEgMjEuOC00MS40IDMzLjYtNzIuNyAzNS4zLTIzLjYgMS4zLTQ2LjMtNC40LTYzLjktMTYtMjAuOC0xMy44LTMzLTM0LjgtMzQuMy01OS4zLTIuNS00OC4zIDM1LjctODMgOTUuMi04Ni40IDIxLjEtMS4yIDQwLjktLjMgNTkuMiAyLjgtMi40LTE0LjgtNy4zLTI2LjYtMTQuNi0zNS4yLTEwLTExLjctMjUuNi0xNy43LTQ2LjItMTcuOGwtLjcgMGMtMTYuNiAwLTM5IDQuNi01My4zIDI2LjNsLTM0LjQtMjMuNmMxOS4yLTI5LjEgNTAuMy00NS4xIDg3LjgtNDUuMWwuOCAwYzYyLjYgLjQgOTkuOSAzOS41IDEwMy43IDEwNy43bC0uMiAuMiAuMSAwem0tMTU2IDY4LjhjMS4zIDI1LjEgMjguNCAzNi44IDU0LjYgMzUuMyAyNS42LTEuNCA1NC42LTExLjQgNTkuNS03My4yLTEzLjItMi45LTI3LjgtNC40LTQzLjQtNC40LTQuOCAwLTkuNiAuMS0xNC40IC40LTQyLjkgMi40LTU3LjIgMjMuMi01Ni4yIDQxLjhsLS4xIC4xeiJdfSxtRT17cHJlZml4OiJmYWIiLGljb25OYW1lOiJ3cHJlc3NyIixpY29uOls1MTIsNTEyLFsicmVuZGFjdCJdLCJmM2U0IiwiTTI1NiA4YTI0OCAyNDggMCAxIDAgMCA0OTYgMjQ4IDI0OCAwIDEgMCAwLTQ5NnpNNDI3LjMgMTY2LjZjLTE1LjIgMzQuNS0zMC40IDY5LTQ1LjYgMTAzLjUtMi40IDUuNS02LjkgOC4yLTEzIDguMi0yMyAwLTQ2IC4xLTY5IDAtNS4xIDAtOC4yIDEuOS0xMC4zIDYuNy0xMC4yIDIzLjYtMjAuNiA0Ny0zMSA3MC41LTEuNSAzLjUtNC4xIDUuMy03LjkgNS4zLTQ1LjkgMC05MS45IDAtMTM3LjggMC0zLjEgMC01LjYtMS4xLTcuNy0zLjQtMTEuMi0xMi4zLTIyLjUtMjQuNi0zMy43LTM2LjktMi43LTMtMi44LTYuMi0xLjItOS43IDguNy0xOS41IDE3LjMtMzkuMSAyNS45LTU4LjcgMTIuOS0yOS40IDI1LjktNTguNyAzOC43LTg4LjEgMS43LTMuOSA0LjMtNS43IDguNS01LjcgMTQuMiAuMSAyOC41IDAgNDIuNyAwIDYuMiAwIDkuMiA0LjggNi43IDEwLjYtMTMuNiAzMC44LTI3LjIgNjEuNi00MC43IDkyLjMtNS43IDEzLTExLjQgMjYtMTcuMSAzOS0zLjkgOSA3LjEgMTIgMTEgNS42IC4yLS40LTEuNCA0LjIgMzAtNjcuNyAxLjQtMy4xIDMuNC00LjQgNi44LTQuNCAxNS4yIC4xIDMwLjQgMCA0NS42IDAgNS42IDAgNy45IDMuNiA1LjcgOC43LTguMyAxOS0xNi43IDM3LjktMjUgNTYuOS01IDExLjQgOC4xIDEyLjUgMTEuMyA1LjMgMC0uMSAyNy45LTYzLjMgMzIuMi03My4yIDItNC42IDUuNC02LjUgMTAuMy02LjUgMjYuNCAuMSA1Mi45IDAgNzkuMyAwIDEyLjQgMCAxMy45LTEzLjYgMy45LTEzLjYtMjUuMyAwLTUwLjUgMC03NS44IDAtNi4zIDAtNy44LTIuNS01LjMtOC4zIDUuOC0xMy4xIDExLjYtMjYuMSAxNy4zLTM5LjIgMS43LTQgNC41LTUuOCA4LjgtNS44IDIzLjEgLjEgMjYgMCAxMzAuOCAwIDYuMSAwIDggMi44IDUuNiA4LjN6Il19LGRoZT1tRSxoaGU9e3ByZWZpeDoiZmFiIixpY29uTmFtZToieW9hc3QiLGljb246WzQ0OCw1MTIsW10sImYyYjEiLCJNOTEuMyA3NmwxODYgMC03IDE4LjktMTc5IDBjLTM5LjcgMC03MS45IDMxLjYtNzEuOSA3MC4zbDAgMjA1LjRjMCAzNS40IDI0LjkgNzAuMyA4NCA3MC4zbDAgMTkuMS0xMi4xIDBDNDEuMiA0NjAgMCA0MTkuOCAwIDM3MC41TDAgMTY1LjJDMCAxMTUuOSA0MC43IDc2IDkxLjMgNzZ6TTMyMC40IDIwbDY2LjUgMGMtMTQzLjggMzc4LjEtMTQ1LjcgMzk4LjktMTg0LjcgNDM5LjMtMjAuOCAyMS42LTQ5LjMgMzEuNy03OC4zIDMyLjdsMC01MS4xYzQ5LjItNy43IDY0LjYtNDkuOSA2NC42LTc1LjMgMC0yMC4xIC42LTEyLjYtODIuMS0yMjMuMmw2MS40IDAgNTAuNCAxNTYuNiAxMDIuMi0yNzl6TTQ0OCAxNjEuNWwwIDI5OC41LTIxNCAwYzYuNi05LjYgMTAuNy0xNi4zIDEyLjEtMTkuNGwxODIuNSAwIDAtMjc5LjFjMC0zMi41LTE3LjEtNTEuOS00OC4yLTYyLjlMMzg3LjEgODFjNDEuNyAxMy42IDYwLjkgNDMuMSA2MC45IDgwLjV6Il19LHBoZT17cHJlZml4OiJmYWIiLGljb25OYW1lOiJuaW1ibHIiLGljb246WzM4NCw1MTIsW10sImY1YTgiLCJNMjQ2LjYgMzUzLjNhMjcgMjcgMCAxIDEgMC01NCAyNyAyNyAwIDEgMSAwIDU0em0tNzkuNC0yN2EyNy4xIDI3LjEgMCAxIDEgLTU0LjMgMCAyNy4xIDI3LjEgMCAxIDEgNTQuMyAwek0xOTEuOCAxNTlDMTU3IDE1OSA4OS40IDE3OC44IDU5LjIgMjI3TDE0IDAgMTQgMzM1LjVDMTQgNDMzLjEgOTMuNiA1MTIgMTkxLjggNTEyUzM2OS41IDQzMyAzNjkuNSAzMzUuNSAyOTAuMSAxNTkgMTkxLjggMTU5em0wIDMwOC4xYy03My4zIDAtMTMyLjUtNTguOS0xMzIuNS0xMzEuNnM1OS4yLTEzMS42IDEzMi41LTEzMS42IDEzMi41IDU4LjkgMTMyLjUgMTMxLjUtNTkuMyAxMzEuNi0xMzIuNSAxMzEuNmwwIC4xeiJdfSx1aGU9e3ByZWZpeDoiZmFiIixpY29uTmFtZToicGl4ZWxmZWQiLGljb246WzUxMiw1MTIsW10sImU3ZGIiLCJNMjU2IDBhMjU2IDI1NiAwIDEgMSAwIDUxMiAyNTYgMjU2IDAgMSAxIDAtNTEyek0yMzUuNyAzMTEuOWw0NyAwYzQ0LjIgMCA4MC4xLTM0LjkgODAuMS03OHMtMzUuOS03OC04MC4xLTc4bC02Ny44IDBjLTI1LjUgMC00Ni4yIDIwLjEtNDYuMiA0NWwwIDE3NS4xIDY3LTY0LjF6Il19LGZoZT17cHJlZml4OiJmYWIiLGljb25OYW1lOiJ5YWhvbyIsaWNvbjpbNTEyLDUxMixbXSwiZjE5ZSIsIk0yMjMuOCAxNDEuMWwtNTYuNyAxNDMuMi01Ni0xNDMuMi05Ni4xIDAgMTA1LjggMjQ5LjEtMzguNiA4OS44IDk0LjIgMCAxNDAuOS0zMzguOS05My42IDB6TTMyOS4yIDI3Ni45YTU4LjIgNTguMiAwIDEgMCAwIDExNi40IDU4LjIgNTguMiAwIDEgMCAwLTExNi40ek0zOTQuNyAzMmwtOTMgMjIzLjUgMTA0LjggMCA5Mi42LTIyMy41LTEwNC40IDB6Il19LG1oZT17cHJlZml4OiJmYWIiLGljb25OYW1lOiJibHVlc2t5IixpY29uOls1NzYsNTEyLFtdLCJlNjcxIiwiTTQwNy44IDI5NC43Yy0zLjMtLjQtNi43LS44LTEwLTEuMyAzLjQgLjQgNi43IC45IDEwIDEuM3pNMjg4IDIyNy4xQzI2MS45IDE3Ni40IDE5MC45IDgxLjkgMTI0LjkgMzUuMyA2MS42LTkuNCAzNy41LTEuNyAyMS42IDUuNSAzLjMgMTMuOCAwIDQxLjkgMCA1OC40UzkuMSAxOTQgMTUgMjEzLjljMTkuNSA2NS43IDg5LjEgODcuOSAxNTMuMiA4MC43IDMuMy0uNSA2LjYtLjkgMTAtMS40LTMuMyAuNS02LjYgMS0xMCAxLjQtOTMuOSAxNC0xNzcuMyA0OC4yLTY3LjkgMTY5LjkgMTIwLjMgMTI0LjYgMTY0LjgtMjYuNyAxODcuNy0xMDMuNCAyMi45IDc2LjcgNDkuMiAyMjIuNSAxODUuNiAxMDMuNCAxMDIuNC0xMDMuNCAyOC4xLTE1Ni02NS44LTE2OS45LTMuMy0uNC02LjctLjgtMTAtMS4zIDMuNCAuNCA2LjcgLjkgMTAgMS4zIDY0LjEgNy4xIDEzMy42LTE1LjEgMTUzLjItODAuNyA1LjktMTkuOSAxNS0xMzguOSAxNS0xNTUuNXMtMy4zLTQ0LjctMjEuNi01Mi45Yy0xNS44LTcuMS00MC0xNC45LTEwMy4yIDI5LjgtNjYuMSA0Ni42LTEzNy4xIDE0MS4xLTE2My4yIDE5MS44eiJdfSxnaGU9e3ByZWZpeDoiZmFiIixpY29uTmFtZToic2NyaWJkIixpY29uOlszODQsNTEyLFtdLCJmMjhhIiwiTTQyLjYgMjUyLjdjLTE2LjEtMTktMjQuNy00NS45LTI0LjgtNzkuOSAwLTEwMC40IDc1LjItMTUzLjEgMTY3LjItMTUzLjEgOTguNi0xLjYgMTU2LjggNDkgMTg0LjMgNzAuNmwtNTAuNSA3Mi4xLTM3LjMtMjQuNiAyNi45LTM4LjZjLTM2LjUtMjQtNzkuNC0zNi41LTEyMy0zNS44LTUwLjctLjgtMTExLjcgMjcuMi0xMTEuNyA3Ni4yIDAgMTguNyAxMS4yIDIwLjcgMjguNiAxNS42IDIzLjMtNS4zIDQxLjkgLjYgNTUuOCAxNCAyNi40IDI0LjMgMjMuMiA2Ny42LS43IDkxLjktMjkuMiAyOS41LTg1LjIgMjcuMy0xMTQuOC04LjR6bTMxNy43IDUuOWMtMTUuNS0xOC44LTM4LjktMjkuNC02My4yLTI4LjYtMzguMS0yLTcxLjEgMjgtNzAuNSA2Ny4yLS43IDE2LjggNiAzMyAxOC40IDQ0LjMgMTQuMSAxMy45IDMzIDE5LjcgNTYuMyAxNC40IDE3LjQtNS4xIDI4LjYtMy4xIDI4LjYgMTUuNiAwIDQuMy0uNSA4LjUtMS40IDEyLjctMTYuNyA0MC45LTU5LjUgNjQuNC0xMjEuNCA2NC40LTUxLjkgLjItMTAyLjQtMTYuNC0xNDQuMS00Ny4zbDMzLjctMzkuNC0zNS42LTI3LjQtNjAuOCA3MS44IDE1LjQgMTMuOGM1Mi41IDQ2LjggMTIwLjQgNzIuNSAxOTAuNyA3Mi4yIDUxLjQgMCA5NC40LTEwLjUgMTMzLjYtNDQuMSA1Ny4xLTUxLjQgNTQuMi0xNDkuMiAyMC4zLTE4OS42eiJdfSxiaGU9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiY3JlYXRpdmUtY29tbW9ucy1wZCIsaWNvbjpbNTEyLDUxMixbXSwiZjRlYyIsIk0yNTYgOGEyNDggMjQ4IDAgMSAwIDAgNDk2IDI0OCAyNDggMCAxIDAgMC00OTZ6bTAgNDQ5LjVjLTEzOS4yIDAtMjM1LjgtMTM4LTE5MC4yLTI2Ny45bDc4LjggMzUuMWMtMi4xIDEwLjUtMy4zIDIxLjUtMy4zIDMyLjkgMCA5OSA3My45IDEyNi45IDEyMC40IDEyNi45IDIyLjkgMCA1My41LTYuNyA3OS40LTI5LjVMMzA1IDMxMS4xYy01LjUgNi4zLTE3LjYgMTYuNy0zNi4zIDE2LjctMzcuOCAwLTUzLjctMzkuOS01My45LTcxLjkgMjMwLjQgMTAyLjYgMjE2LjUgOTYuNSAyMTcuOSA5Ni44LTM0LjMgNjIuNC0xMDAuNiAxMDQuOC0xNzYuNyAxMDQuOHptMTk0LjItMTUwbC0yMjQtMTAwYzE4LjgtMzQgNTQuOS0zMC43IDc0LjctMTFsNDAuNC00MS42Yy0yNy4xLTIzLjMtNTgtMjcuNS03OC4xLTI3LjUtNDcuNCAwLTgwLjkgMjAuNS0xMDAuNyA1MS42TDg3LjYgMTQ1LjZjMzYuMS01NC45IDk4LjEtOTEuMiAxNjguNS05MS4yIDExMS4xIDAgMjAxLjUgOTAuNCAyMDEuNSAyMDEuNSAwIDE4LTIuNCAzNS40LTYuOCA1Mi0uMy0uMS0uNC0uMi0uNi0uNHoiXX0sdmhlPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImVhcmx5YmlyZHMiLGljb246WzUxMiw1MTIsW10sImYzOWEiLCJNMzI5LjMgNDcuNWMxLjItMTMgMjEuMy0xNCAzNi42LTguNyAuOSAuMyAyNi4yIDkuNyAxOSAxNS4yLTI3LjktNy40LTU2LjQgMTguMi01NS42LTYuNXptLTIwMSA2LjljMzAuNy04LjEgNjIgMjAgNjEuMS03LjEtMS4zLTE0LjItMjMuNC0xNS4zLTQwLjItOS42LTEgLjMtMjguNyAxMC41LTIwLjkgMTYuN3pNMzM1LjUgMTYwYTE2IDE2IDAgMSAwIDAgMzIgMTYgMTYgMCAxIDAgMC0zMnptLTE1OS43IDBhMTYgMTYgMCAxIDAgMCAzMiAxNiAxNiAwIDEgMCAwLTMyek00OTQuMyAzMjMuMmMtOS45IDI0LTQwLjcgMTEtNjMuOS0xLjItMTMuNSA2OS4xLTU4LjEgMTExLjQtMTI2LjMgMTI0LjIgLjMgLjktMi0uMSAyNCAxIDMzLjYgMS40IDYzLjgtMy4xIDk3LjQtOC0xOS44LTEzLjgtMTEuNC0zNy4xLTkuOC0zOC4xIDEuNC0uOSAxNC43IDEuNyAyMS42IDExLjUgOC42LTEyLjUgMjguNC0xNC44IDMwLjItMTMuNiAxLjYgMS4xIDYuNiAyMC45LTYuOSAzNC42IDQuNy0uOSA4LjItMS42IDkuOC0yLjEgMi42LS44IDE3LjcgMTEuMyAzLjEgMTMuMy0xNC4zIDIuMy0yMi42IDUuMS00Ny4xIDEwLjgtNDUuOSAxMC43LTg1LjkgMTEuOC0xMTcuNyAxMi44bDEgMTEuNmMzLjggMTguMS0yMy40IDI0LjMtMjcuNiA2LjIgLjggMTcuOS0yNy4xIDIxLjgtMjguNC0xbC0uNSA1LjNjLS43IDE4LjQtMjguNCAxNy45LTI4LjMtLjYtNy41IDEzLjUtMjguMSA2LjgtMjYuNC04LjVsMS4yLTEyLjRjLTM2LjcgLjktNTkuNyAzLjEtNjEuOCAzLjEtMjAuOSAwLTIwLjktMzEuNiAwLTMxLjYgMi40IDAgMjcuNyAxLjMgNjMuMiAyLjgtNjEuMS0xNS41LTEwMy43LTU1LTExNC45LTExOC4yLTI1IDEyLjgtNTcuNSAyNi44LTY4LjIgLjgtMTAuNS0yNS40IDIxLjUtNDIuNiA2Ni44LTczLjQgLjctNi42IDEuNi0xMy4zIDIuNy0xOS44LTE0LjQtMTkuNi0xMS42LTM2LjMtMTYuMS02MC40LTE2LjggMi40LTIzLjItOS4xLTIzLjYtMjMuMSAuMy03LjMgMi4xLTE0LjkgMi40LTE1LjQgMS4xLTEuOCAxMC4xLTIgMTIuNy0yLjYgNi0zMS43IDUwLjYtMzMuMiA5MC45LTM0LjUgMTkuNy0yMS44IDQ1LjItNDEuNSA4MC45LTQ4LjMtMTUuMy0xOS40LTMuNC0zOS45LTIuNC00MC40IDEuNy0uOCAyMS4yIDQuMyAyNi4zIDIzLjIgNS4yLTguOCAxOC4zLTExLjQgMTkuNi0xMC43IDEuMSAuNiA2LjQgMTUtNC45IDI1LjkgNDAuMyAzLjUgNzIuMiAyNC43IDk2IDUwLjcgMzYuMSAxLjUgNzEuOCA1LjkgNzcuMSAzNCAyLjcgLjYgMTEuNiAuOCAxMi43IDIuNiAuMyAuNSAyLjEgOC4xIDIuNCAxNS40LS41IDEzLjktNi44IDI1LjQtMjMuNiAyMy4xLTMuMiAxNy4zLTIuNyAzMi45LTguNyA0Ny43IDIuNCAxMS43IDQgMjMuOCA0LjggMzYuNCAzNyAyNS40IDcwLjMgNDIuNSA2MC4zIDY2Ljl6TTIyMy41IDE1OS45Yy45LTQ0LTM3LjktNDIuMi03OC42LTQwLjMtMjEuNyAxLTM4LjkgMS45LTQ1LjUgMTMuOS0xMS40IDIwLjkgNS45IDkyLjkgMjMuMiAxMDEuMiA5LjggNC43IDczLjQgNy45IDg2LjMtNy4xIDguMi05LjQgMTUtNDkuNCAxNC42LTY3Ljd6bTUyIDU4LjNjLTQuMy0xMi40LTYtMzAuMS0xNS4zLTMyLjctMi0uNS05LS41LTExIDAtMTAgMi44LTEwLjggMjIuMS0xNyAzNy4yIDE1LjQgMCAxOS4zIDkuNyAyMy43IDkuNyA0LjMgMCA2LjMtMTEuMyAxOS42LTE0LjJ6bTEzNS43LTg0LjdjLTYuNi0xMi4xLTI0LjgtMTIuOS00Ni41LTEzLjktNDAuMi0xLjktNzguMi0zLjgtNzcuMyA0MC4zLS41IDE4LjMgNSA1OC4zIDEzLjIgNjcuOCAxMyAxNC45IDc2LjYgMTEuOCA4Ni4zIDcuMSAxNS44LTcuNiAzNi41LTc4LjkgMjQuMy0xMDEuM3oiXX0seWhlPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6InN5bWZvbnljYXN0cyIsaWNvbjpbNTc2LDUxMixbXSwiZThhYiIsIk0yOTMuOCAzNDIuNWMzLjQtMS41IDYuOC0xLjUgMTAuMiAwbDU0LjIgMjIuNmMyLjYgLjkgNC43IDIuNiA2LjIgNC44czIuMyA0LjggMi4zIDcuNmMwIDE5LjQtMy42IDM3LjItMTAuNyA1My40LTYuMiAxMy42LTE0LjUgMjUuNC0yNC44IDM1LjYtOC43IDguNS0xNy43IDE0LjYtMjcuMSAxOC40LTMuNCAxLjUtNi44IDEuNS0xMC4yIDAtMTAuNy00LjMtMjAuNi0xMS4zLTI5LjctMjAuOS0xMC0xMC40LTE3LjgtMjIuNS0yMy41LTM2LjQtNi40LTE1LjYtOS42LTMyLjMtOS42LTUwIDAtMi44IC43LTUuNCAyLjItNy42IDEuNS0yLjMgMy42LTMuOSA2LjItNC44bDU0LjItMjIuNnpNNDc5LjcgNDgzLjhhNzAuMSA3MC4xIDAgMSAxIDAtMTQwLjIgNzAuMSA3MC4xIDAgMSAxIDAgMTQwLjJ6TTI0NC42IDM3Ny42YzAgMTUuMyAyLjYgMjkuNyA3LjkgNDMuMiA0LjkgMTIuNCAxMS42IDIzLjMgMjAuMSAzMi41IDguMSA4LjkgMTYuOSAxNS4zIDI2LjMgMTkuMiA5LjItMy44IDE3LjgtMTAgMjUuNy0xOC43IDguNy05LjIgMTUuNC0xOS45IDIwLjMtMzIuMiA1LjUtMTMuNyA4LjItMjguNCA4LjItNDQuMWwtNTQuMi0yMi42LTU0LjIgMjIuNnptMjM1LjEtMjAuM2E1Ni41IDU2LjUgMCAxIDAgMCAxMTMgNTYuNSA1Ni41IDAgMSAwIDAtMTEzem0tMzUyLjggMi4zYzQuMSAwIDcuNiAxLjMgMTAuNCAzLjkgMi44IDIuNiA0LjIgNS45IDQuMiA5LjZsMCAxNi40IDMxLjEtMTkuMmMxLjUtMS4xIDMuMi0xLjcgNS4xLTEuNyAyLjQgMCA0LjYgLjggNi4zIDIuNXMyLjcgMy44IDIuNyA2LjJsMCA3Mi42YzAgMi42LS45IDQuOC0yLjcgNi41cy0zLjkgMi41LTYuMyAyLjVjLTEuOSAwLTMuNi0uNi01LjEtMS43bC0zMS4xLTE5LjIgMCAxNi40YzAgMy44LTEuNCA3LTQuMiA5LjZzLTYuMyA0LTEwLjQgNGwtODguMiAwYy00LjEgMC03LjYtMS4zLTEwLjUtNHMtNC4yLTUuOC00LjItOS42bDAtODEuM2MwLTMuOCAxLjQtNyA0LjItOS42czYuMy0zLjkgMTAuNS0zLjlsODguMiAwem0xNzIgOTcuOGMtMTEuMy03LTIwLjQtMTYuNC0yNy40LTI4LjMtNy41LTEyLjQtMTEuOS0yNi42LTEzLTQyLjRsNDAuNC0xNyAwIDg3LjZ6TTM3LjUgMzczLjRsMCA4MC44Yy4yIC4yIC42IC4zIDEuMiAuM2w4OC4yIDBjLjQgMCAuNy0uMSAxLjEtLjNsMC04MC44Yy0uMi0uMi0uNi0uMy0xLjItLjNsLTg4LjEgMGMtLjQgMC0uOCAuMS0xLjIgLjN6bTQxOC40IDUuMWMyLjMtMS4zIDQuNS0xLjMgNi44IDBsNDkuOCAzMC4yYzIuMyAxLjMgMy40IDMuMyAzLjQgNS45cy0xLjEgNC42LTMuNCA1LjlsLTQ5LjggMjguNmMtMi4zIDEuMy00LjUgMS4zLTYuOCAwcy0zLjQtMy4zLTMuNC01LjlsMC01OC44YzAtMi42IDEuMS00LjYgMy40LTUuOXpNMTQxLjUgNDA1LjVsMCAxNi40IDMxLjcgMTkuOCAwLTU2LTMxLjcgMTkuOHpNNDUxLjEgNS4yYzM1LjgtMS4yIDYyLjkgMTUuMSA2My44IDQwLjggLjQgMTAuOS01LjkgMzIuMi0yNy44IDMzLTE2LjMgLjYtMjcuNi05LjItMjguMS0yNC4xLS4yLTUuNCAxLjItMTAuMiA0LjktMTUuOCAzLjYtNy4xIDQuNC03LjkgNC4zLTExLS4zLTkuNC0xNC41LTkuNy0xOC4zLTkuNS01MyAxLjgtNjYuOSA3My4zLTc4LjIgMTMxLjVsLTUuNiAzMC43YzMwLjUgNC41IDUyLjItMSA2NC4yLTguOCAxNy0xMS00LjgtMjIuNC0yLTM1IDIuOC0xMi44IDE0LjQtMTkgMjMuNy0xOS4yIDEyLjktLjMgMjIuMiAxMy4xIDIxLjkgMjYuNy0uNSAyMi42LTMwLjQgNTMuNi05MC4yIDUyLjMtNy4zLS4yLTE0LS43LTIwLjItMS40bC0xMS4zIDYyLjNjLTMgMTQtNi4zIDI5LjUtMTAuNyA0NS44bDIwNCAwIC45IC4xYy4zIC4xIC42IC4xIC44IC4yIDIuMiAuNiA0IDIuNSA0LjUgNC44IC42IDIuOC0xIDYtMy43IDcuMi0uNSAuMi0xLjEgLjQtMS43IC41LS4zIDAtLjYgMC0uOSAuMWwtNTE1LjMgMGMtLjctLjEtLjkgMC0xLjctLjItMi41LS43LTQuNC0zLjEtNC42LTUuNy0uMi0yLjMgMS00LjYgMy01LjggLjctLjUgMS42LS44IDIuNC0uOSAuMyAwIC42IDAgLjgtLjFsNDguNCAwYy0xNy4yLTE2LjgtMjAtMzcuMi0xNi01MC41IDUuNC0xNy42IDE5LjQtMjAuOSAzMy0xNi43IDE0LjYgNC41IDIwLjMgMjIuMyAxNi4yIDM2LS41IDEuNS0xLjIgMy45LTIuOCA3LjItMS43IDMuOC00LjggNy4xLTYuMiAxMS41LTEuNSA0LjkgLjcgOS4xIDQuNSAxMi42bDU4LjkgMGM0LjItNCA3LjQtOSA5LjEtMTQuNiA1LjMtMTctNS41LTI4LjktMTAtMzMuNWwtMjEuNy0yMy4yYy05LjktMTEuMS0zMS43LTQxLjktMjEuMS03Ni41IDQuMS0xMy40IDEyLjgtMjcuNSAyNS4zLTM2LjkgMjYuNS0xOS43IDU1LjMtMjMgODIuNy0xNS4xIDM1LjUgMTAuMiA1Mi41IDMzLjcgNzQuNiA1MS44IDEyLjQtMzYuMyAyOS41LTcxLjkgNTUuMy0xMDEuOSAyMy4zLTI3LjMgNTQuNi00Ny4xIDkwLjQtNDguM3pNMjI5LjYgMTIxLjNjLTIyLjItNi0zNS43LS45LTQ1LjIgMTEuMi0xMS4zIDE0LjMtNy41IDMyLjggMy4zIDQzLjdsMTggMTkuOWMyMiAyNS41IDM0LjEgNDUuMyAyOS42IDcyLTIuMiAxMy4xLTguNSAyNS4yLTE3LjkgMzUuM2w1NC4yIDBjMS01LjEgMi0xMC40IDMuMS0xNS44bDMuNi0yMS45YzUuOS0yOS40IDEyLjQtNjIuMiAyMi4zLTk0LjgtMjQuMS0xOC4xLTM4LjUtNDAuNy03MC45LTQ5LjV6Il19LGdFPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6InNxdWFyZS1vZG5va2xhc3NuaWtpIixpY29uOls0NDgsNTEyLFsib2Rub2tsYXNzbmlraS1zcXVhcmUiXSwiZjI2NCIsIk0yMjQgMTM3LjFjLTUuNC0uMy0xMC44IC42LTE1LjkgMi40cy05LjcgNC44LTEzLjYgOC41LTcgOC4yLTkuMiAxMy4yLTMuMiAxMC4zLTMuMiAxNS43IDEuMSAxMC44IDMuMiAxNS43IDUuMyA5LjUgOS4yIDEzLjIgOC42IDYuNiAxMy42IDguNSAxMC41IDIuNyAxNS45IDIuNGM1LjQgLjMgMTAuOC0uNiAxNS45LTIuNHM5LjctNC44IDEzLjYtOC41IDctOC4yIDkuMi0xMy4yIDMuMi0xMC4zIDMuMi0xNS43LTEuMS0xMC44LTMuMi0xNS43LTUuMy05LjUtOS4yLTEzLjItOC42LTYuNi0xMy42LTguNS0xMC41LTIuNy0xNS45LTIuNHpNMzg0IDMyTDY0IDMyQzI4LjcgMzIgMCA2MC43IDAgOTZMMCA0MTZjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMzIwIDBjMzUuMyAwIDY0LTI4LjcgNjQtNjRsMC0zMjBjMC0zNS4zLTI4LjctNjQtNjQtNjR6TTIyNCAyNThhODEgODEgMCAxIDEgMC0xNjIuMSA4MSA4MSAwIDEgMSAwIDE2Mi4xem01OS4zIDYuMmMxNi44LTEzLjIgMjkuNS01LjUgMzQuMSAzLjYgNy44IDE2LTEuMSAyMy43LTIxLjUgMzctMTcuMSAxMC45LTQwLjcgMTUuMi01Ni4yIDE2LjhsMTMgMTIuOSA0Ny43IDQ3LjdjMTcuNCAxNy45LTExIDQ1LjgtMjguNiAyOC42LTEyLTEyLjItMjkuNS0yOS43LTQ3LjctNDcuOWwtNDcuNyA0Ny45Yy0xNy43IDE3LjItNDYtMTEtMjguNC0yOC42IDMuNy0zLjcgNy45LTcuOSAxMi41LTEyLjUgMTAuNC0xMC40IDIyLjYtMjIuNyAzNS4yLTM1LjJsMTIuOS0xMi45Yy0xNS40LTEuNi0zOS4zLTUuNy01Ni42LTE2LjgtMjAuMy0xMy4zLTI5LjMtMjAuOS0yMS40LTM3IDQuNi05LjEgMTcuMy0xNi44IDM0LjEtMy42IDAgMCAyMi43IDE4IDU5LjMgMThzNTkuMy0xOCA1OS4zLTE4eiJdfSx4aGU9Z0Usd2hlPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6Im1hcmtkb3duIixpY29uOls2NDAsNTEyLFtdLCJmNjBmIiwiTTU5My44IDU5LjFsLTU0Ny42IDBDMjAuNyA1OS4xIDAgNzkuOCAwIDEwNS4yTDAgNDA2LjdjMCAyNS41IDIwLjcgNDYuMiA0Ni4yIDQ2LjJsNTQ3LjcgMGMyNS41IDAgNDYuMi0yMC43IDQ2LjEtNDYuMWwwLTMwMS42YzAtMjUuNC0yMC43LTQ2LjEtNDYuMi00Ni4xek0zMzguNSAzNjAuNmwtNjEuNSAwIDAtMTIwLTYxLjUgNzYuOS02MS41LTc2LjkgMCAxMjAtNjEuNyAwIDAtMjA5LjIgNjEuNSAwIDYxLjUgNzYuOSA2MS41LTc2LjkgNjEuNSAwIDAgMjA5LjIgLjIgMHptMTM1LjMgMy4xbC05Mi4zLTEwNy43IDYxLjUgMCAwLTEwNC42IDYxLjUgMCAwIDEwNC42IDYxLjUgMC05Mi4yIDEwNy43eiJdfSxNaGU9e3ByZWZpeDoiZmFiIixpY29uTmFtZToidHlwbzMiLGljb246WzQ0OCw1MTIsW10sImY0MmIiLCJNMTc4LjcgNzguNGMwLTI0LjcgNS40LTMyLjQgMTMuOS0zOS40LTY5LjUgOC41LTE0OS4zIDM0LTE3Ni4zIDY2LjQtNS40IDcuNy05LjMgMjAuOC05LjMgMzcuMSAwIDEwMy41IDEwNi44IDMzNy41IDE4NC4xIDMzNy41IDM2LjMgMCA5Ny4zLTU5LjUgMTQ2LjctMTM5LTcgMi4zLTExLjYgMi4zLTE4LjUgMi4zLTU3LjIgMC0xNDAuNi0xOTguNS0xNDAuNi0yNjQuOXpNMzAxLjUgMzJjLTMwLjEgMC00MS43IDUuNC00MS43IDM2LjMgMCA2Ni40IDUzLjggMTk4LjUgMTAxLjcgMTk4LjUgMjYuMyAwIDc4LjgtOTkuNyA3OC44LTE4Mi4zIDAtNDAuOS02Ny01Mi41LTEzOC44LTUyLjV6Il19LHpoZT17cHJlZml4OiJmYWIiLGljb25OYW1lOiJqb29tbGEiLGljb246WzQ0OCw1MTIsW10sImYxYWEiLCJNLjYgOTIuMWMwLTMzLjMgMjYuOC02MC4xIDU5LjgtNjAuMSAzMCAwIDU0LjUgMjEuOSA1OS4yIDUwLjIgMzIuNi03LjYgNjcuMSAuNiA5Ni41IDMwbC00NC4zIDQ0LjNjLTIwLjUtMjAuNS00Mi42LTE2LjMtNTUuNC0zLjUtMTQuMyAxNC4zLTE0LjMgMzcuOSAwIDUyLjJsOTkuNSA5OS41LTQ0IDQ0LjNjLTg3LjctODcuMi00OS43LTQ5LjctOTkuOC05OS43LTI2LjgtMjYuNS0zNS02NC44LTI0LjgtOTguOS0yNi45LTUuOC00Ni43LTI5LjctNDYuNy01OC4zek0xMzAuMSAyMDguNWw0NC4zIDQ0LjNjMTAtMTAgODkuNy04OS43IDk5LjctOTkuOCAxNC4zLTE0LjMgMzcuNi0xNC4zIDUxLjkgMCAxMi44IDEyLjggMTcgMzUtMy41IDU1LjRsNDQgNDQuM2MzMS4yLTMxLjIgMzguNS02Ny42IDI4LjktMTAxLjIgMjkuMi00LjEgNTEuOS0yOS4yIDUxLjktNTkuNSAwLTMzLjItMjYuOC02MC4xLTU5LjgtNjAuMS0zMC4zIDAtNTUuNCAyMi41LTU5LjUgNTEuNi0zMy44LTkuOS03MS43LTEuNS05OC4zIDI1LjEtMTguMyAxOS4xLTcxLjEgNzEuNS05OS42IDk5Ljl6TTM5Ni40IDM2MC43YzguMi0zMi43LS45LTY4LjUtMjYuMy05My45LTExLjgtMTIuMiA1IDQuNy05OS41LTk5LjdsLTQ0LjMgNDQuMyA5OS43IDk5LjdjMTQuMyAxNC4zIDE0LjMgMzcuNiAwIDUxLjktMTIuOCAxMi44LTM1IDE3LTU1LjQtMy41bC00NCA0NC4zYzI3LjYgMzAuMiA2OCAzOC44IDEwMi43IDI4IDUuNSAyNy40IDI5LjcgNDguMSA1OC45IDQ4LjEgMzMgMCA1OS44LTI2LjggNTkuOC02MC4xIDAtMzAuMi0yMi41LTU1LTUxLjYtNTkuMXptLTg0LjMtNTMuMWwtNDQtNDQuM2MtODcgODYuNC01MC40IDUwLjQtOTkuNyA5OS44LTE0LjMgMTQuMy0zNy42IDE0LjMtNTEuOSAwLTEzLjEtMTMuNC0xNi45LTM1LjMgMy4yLTU1LjRsLTQ0LTQ0LjNjLTMwLjIgMzAuMi0zOCA2NS4yLTI5LjUgOTguMy0yNi43IDYtNDYuMiAyOS45LTQ2LjIgNTguMiAwIDMzLjMgMjYuOCA2MC4xIDU5LjggNjAuMSAyOC42IDAgNTIuNS0xOS44IDU4LjYtNDYuNyAzMi43IDguMiA2OC41LS42IDk0LjItMjYgMzIuMS0zMiAxMi4yLTEyLjQgOTkuNS05OS43eiJdfSxraGU9e3ByZWZpeDoiZmFiIixpY29uTmFtZToid2VpeGluIixpY29uOls1NzYsNTEyLFtdLCJmMWQ3IiwiTTM4NS4yIDE2Ny42YzYuNCAwIDEyLjYgLjMgMTguOCAxLjEtMTYuNi03OC40LTEwMC43LTEzNi43LTE5Ni4zLTEzNi43LTEwNy4yIDAtMTk0LjcgNzIuOC0xOTQuNyAxNjUuNCAwIDUzLjQgMjkuMyA5Ny41IDc3LjkgMTMxLjZsLTE5LjMgNTguNiA2OC0zNC4xYzI0LjQgNC44IDQzLjggOS43IDY4LjIgOS43IDYuMiAwIDEyLjEtLjMgMTguMy0uOC00LTEyLjktNi4yLTI2LjYtNi4yLTQwLjgtLjEtODQuOSA3Mi45LTE1NCAxNjUuMy0xNTR6TTI4MC43IDExNC43YzE0LjUgMCAyNC4yIDkuNyAyNC4yIDI0LjQgMCAxNC41LTkuNyAyNC4yLTI0LjIgMjQuMi0xNC44IDAtMjkuMy05LjctMjkuMy0yNC4yIC4xLTE0LjcgMTQuNi0yNC40IDI5LjMtMjQuNHpNMTQ0LjMgMTYzLjNjLTE0LjUgMC0yOS4zLTkuNy0yOS4zLTI0LjIgMC0xNC44IDE0LjgtMjQuNCAyOS4zLTI0LjQgMTQuOCAwIDI0LjQgOS43IDI0LjQgMjQuNCAwIDE0LjYtOS42IDI0LjItMjQuNCAyNC4yek01NjMgMzE5LjRjMC03Ny45LTc3LjktMTQxLjMtMTY1LjQtMTQxLjMtOTIuNyAwLTE2NS40IDYzLjQtMTY1LjQgMTQxLjNTMzA1IDQ2MC43IDM5Ny42IDQ2MC43YzE5LjMgMCAzOC45LTUuMSA1OC42LTkuOWw1My40IDI5LjMtMTQuOC00OC42QzUzNCA0MDIuMSA1NjMgMzYzLjIgNTYzIDMxOS40ek0zNDMuOSAyOTQuOWMtOS43IDAtMTkuMy05LjctMTkuMy0xOS42IDAtOS43IDkuNy0xOS4zIDE5LjMtMTkuMyAxNC44IDAgMjQuNCA5LjcgMjQuNCAxOS4zIDAgMTAtOS43IDE5LjYtMjQuNCAxOS42em0xMDcuMSAwYy05LjcgMC0xOS4zLTkuNy0xOS4zLTE5LjYgMC05LjcgOS43LTE5LjMgMTkuMy0xOS4zIDE0LjUgMCAyNC40IDkuNyAyNC40IDE5LjMgLjEgMTAtOS45IDE5LjYtMjQuNCAxOS42eiJdfSxTaGU9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiZ3J1bnQiLGljb246WzM4NCw1MTIsW10sImYzYWQiLCJNNjEuNiAxODkuM2MtMS4xIDEwIDUuMiAxOS4xIDUuMiAxOS4xIC43LTcuNSAyLjItMTIuOCA0LTE2LjYgLjQgMTAuMyAzLjIgMjMuNSAxMi44IDM0LjEgNi45IDcuNiAzNS42IDIzLjMgNTQuOSA2LjEgMSAyLjQgMi4xIDUuMyAzIDguNSAyLjkgMTAuMy0yLjcgMjUuMy0yLjcgMjUuM3MxNS4xLTE3LjEgMTMuOS0zMi41YzEwLjgtLjUgMjEuNC04LjQgMjEuMS0xOS41IDAgMC0xOC45IDEwLjQtMzUuNS04LjgtOS43LTExLjItNDAuOS00Mi04My4xLTMxLjggNC4zIDEgOC45IDIuNCAxMy41IDQuMWwtLjEgMGMtNC4yIDItNi41IDcuMS03IDEyem0yOC4zLTEuOGMxOS41IDExIDM3LjQgMjUuNyA0NC45IDM3LTUuNyAzLjMtMjEuNyAxMC40LTM4LTEuNy0xMC4zLTcuNi05LjgtMjYuMi02LjktMzUuM3pNMjMyIDIzMy4zYy0xLjIgMTUuNSAxMy45IDMyLjUgMTMuOSAzMi41cy01LjYtMTUtMi43LTI1LjNjLjktMy4yIDItNiAzLTguNSAxOS4zIDE3LjMgNDggMS41IDU0LjgtNi4xIDkuNi0xMC42IDEyLjMtMjMuOCAxMi44LTM0LjEgMS44IDMuOCAzLjQgOS4xIDQgMTYuNiAwIDAgNi40LTkuMSA1LjItMTkuMS0uNi01LTIuOS0xMC03LTExLjhsLS4xIDBjNC42LTEuOCA5LjItMy4yIDEzLjUtNC4xLTQyLjMtMTAuMi03My40IDIwLjYtODMuMSAzMS44LTE2LjcgMTkuMi0zNS41IDguOC0zNS41IDguOC0uMiAxMC45IDEwLjQgMTguOSAyMS4yIDE5LjN6bTYyLjctNDUuOGMzIDkuMSAzLjQgMjcuNy03IDM1LjQtMTYuMyAxMi4xLTMyLjIgNS0zNy45IDEuNiA3LjUtMTEuNCAyNS40LTI2IDQ0LjktMzd6bS0xMzQuNCAyMzFsLTI5LjQgMGMtNS41IDAtOC4yIDEuNi05LjUgMi45LTEuOSAyLTIuMiA0LjctLjkgOC4xIDMuNSA5LjEgMTEuNCAxNi41IDEzLjcgMTguNiAzLjEgMi43IDcuNSA0LjMgMTEuOCA0LjMgNC40IDAgOC4zLTEuNyAxMS00LjYgNy41LTguMiAxMS45LTE3LjEgMTMtMTkuOCAuNi0xLjUgMS4zLTQuNS0uOS02LjgtMS44LTEuOC00LjctMi43LTguOC0yLjd6TTM0OS41IDMxNy4zYy0yLjQgMTcuOS0xMyAzMy44LTI0LjYgNDMuNy0zLjEtMjIuNy0zLjctNTUuNS0zLjctNjIuNCAwLTE0LjcgOS41LTI0LjUgMTIuMi0yNi4xIDIuNS0xLjUgNS40LTMgOC4zLTQuNiAxOC05LjYgNDAuNC0yMS42IDQwLjQtNDMuNyAwLTE2LjItOS4zLTIzLjItMTUuNC0yNy44LS44LS42LTEuNS0xLjEtMi4yLTEuNy0yLjEtMS43LTMuNy0zLTQuMy00LjQtNC40LTkuOC0zLjYtMzQuMi0xLjctMzcuNiAuNi0uNiAxNi43LTIwLjkgMTEuOC0zOS4yLTItNy40LTYuOS0xMy4zLTE0LjEtMTctNS4zLTIuNy0xMS45LTQuMi0xOS41LTQuNS0uMS0yLS41LTMuOS0uOS01LjktLjYtMi42LTEuMS01LjMtLjktOC4xIC40LTQuNyAuOC05IDIuMi0xMS4zIDguNC0xMy4zIDI4LjgtMTcuNiAyOS0xNy42bDEyLjMtMi40LTguMS05LjVjLS4xLS4yLTE3LjMtMTcuNS00Ni4zLTE3LjUtNy45IDAtMTYgMS4zLTI0LjEgMy45LTI0LjIgNy44LTQyLjkgMzAuNS00OS40IDM5LjMtMy4xLTEtNi4zLTEuOS05LjYtMi43LTQuMi0xNS44IDktMzguNSA5LTM4LjVzLTEzLjYtMy0zMy43IDE1LjJjLTIuNi02LjUtOC4xLTIwLjUtMS44LTM3LjItMjkuNSAxMC40LTM2LjkgMjYuMy0zOS4xIDQwLjctNy42LTUuNC02LjctMjMuMS03LjItMjcuNi03LjUgLjktMjkuMiAyMS45LTI4LjIgNDguMy0yIC41LTMuOSAxLjEtNS45IDEuNy02LjUtOC44LTI1LjEtMzEuNS00OS40LTM5LjMtNy45LTIuMi0xNi0zLjUtMjMuOS0zLjUtMjkgMC00Ni4xIDE3LjMtNDYuMyAxNy41bC04LjEgOS40IDEyLjMgMi40Yy4yIDAgMjAuNiA0LjMgMjkgMTcuNiAxLjQgMi4yIDEuOCA2LjYgMi4yIDExLjMgLjIgMi44LS40IDUuNS0uOSA4LjEtLjQgMS45LS44IDMuOS0uOSA1LjktNy43IC4zLTE0LjIgMS44LTE5LjUgNC41LTcuMiAzLjctMTIuMSA5LjYtMTQuMSAxNy01IDE4LjIgMTEuMiAzOC41IDExLjggMzkuMiAxLjkgMy40IDIuNyAyNy44LTEuNyAzNy42LS42IDEuNC0yLjIgMi43LTQuMyA0LjQtLjcgLjUtMS40IDEuMS0yLjIgMS43LTYuMSA0LjYtMTUuNCAxMS43LTE1LjQgMjcuOCAwIDIyLjEgMjIuNCAzNC4xIDQwLjQgNDMuNyAzIDEuNiA1LjggMy4xIDguMyA0LjYgMi43IDEuNiAxMi4yIDExLjQgMTIuMiAyNi4xIDAgNi45LS42IDM5LjctMy43IDYyLjQtMTEuNi05LjktMjIuMi0yNS45LTI0LjYtNDMuOCAwIDAtMjkuMiAyMi42LTIwLjYgNzAuOCA1LjIgMjkuNSAyMy4yIDQ2LjEgNDcgNTQuNyA4LjggMTkuMSAyOS40IDQ1LjcgNjcuMyA0OS42IDE0LjQgMTEuOCAzNC40IDE5LjUgNjMuNiAxOS41bC4yIDBjMjkuMSAwIDQ5LjEtNy43IDYzLjYtMTkuNSAzNy45LTMuOSA1OC41LTMwLjUgNjcuMy00OS42IDIzLjgtOC43IDQxLjctMjUuMiA0Ny01NC43IDguMi00OC40LTIxLjEtNzAuOS0yMS4xLTcwLjl6TTMwNiAzNy43YzUuNi0xLjggMTEuNi0yLjcgMTcuNy0yLjcgMTEgMCAxOS45IDMgMjQuNyA1LTMuMSAxLjQtNi40IDMuMi05LjcgNS4zLTIuNC0uNC01LjYtLjgtOS4yLS44LTEwLjUgMC0yMC41IDMuMS0yOC43IDguOS0xMi4zIDguNy0xOCAxNi45LTIwLjcgMjIuNC0yLjItMS4zLTQuNS0yLjUtNy4xLTMuNy0xLjYtLjgtMy4xLTEuNS00LjctMi4yIDYuMS05LjEgMTkuOS0yNi41IDM3LjctMzIuMnptMjEgMTguMmMtLjggMS0xLjYgMi4xLTIuMyAzLjItMy4zIDUuMi0zLjkgMTEuNi00LjQgMTcuOC0uNSA2LjQtMS4xIDEyLjUtNC40IDE3LTQuMiAuOC04LjEgMS43LTExLjUgMi43LTIuMy0zLjEtNS42LTctMTAuNS0xMS4yIDEuNC00LjggNS41LTE2LjEgMTMuNS0yMi41IDUuNi00LjMgMTIuMi02LjcgMTkuNi03ek00NS45IDQ1LjNjLTMuMy0yLjItNi42LTQtOS43LTUuMyA0LjgtMiAxMy43LTUgMjQuNy01IDYuMSAwIDEyIC45IDE3LjcgMi43IDE3LjggNS44IDMxLjYgMjMuMiAzNy43IDMyLjEtMS42IC43LTMuMiAxLjQtNC44IDIuMi0yLjUgMS4yLTQuOSAyLjUtNy4xIDMuNy0yLjYtNS40LTguMy0xMy43LTIwLjctMjIuNC04LjMtNS44LTE4LjItOC45LTI4LjgtOC45LTMuNCAuMS02LjYgLjUtOSAuOXpNOTAuNiA4NS40Yy00LjkgNC4yLTguMyA4LTEwLjUgMTEuMi0zLjQtLjktNy4zLTEuOS0xMS41LTIuNy0zLjMtNC40LTMuOC0xMC41LTQuMy0xNi45LS41LTYuMi0xLjEtMTIuNi00LjQtMTcuOC0uNy0xLjEtMS41LTIuMi0yLjMtMy4yIDcuNCAuMyAxNCAyLjYgMTkuNSA3IDggNi4zIDEyLjEgMTcuNiAxMy41IDIyLjR6TTU4LjQgMjU5LjljLTIuNy0xLjYtNS42LTMuMS04LjQtNC42LTE0LjktOC0zMC4yLTE2LjMtMzAuMi0zMC41IDAtMTEuMSA0LjMtMTQuNiA4LjktMTguMmwuNS0uNGMuNy0uNiAxLjQtMS4yIDIuMi0xLjgtLjkgNy4yLTEuOSAxMy4zLTIuNyAxNC45IDAgMCAxMi4xLTE1IDE1LjctNDQuMyAxLjQtMTEuNS0xLjEtMzQuMy01LjEtNDMgLjIgNC45IDAgOS44LS4zIDE0LjQtLjQtLjgtLjgtMS42LTEuMy0yLjItMy4yLTQtMTEuOC0xNy41LTkuNC0yNi42IC45LTMuNSAzLjEtNiA2LjctNy44IDMuOC0xLjkgOC44LTIuOSAxNS4xLTIuOSAxMi4zIDAgMjUuOSAzLjcgMzIuOSA2IDI1LjEgOCA1NS40IDMwLjkgNjQuMSAzNy43IC4yIC4yIC40IC4zIC40IC4zbDUuNiAzLjktMy41LTUuOGMtLjItLjMtMTkuMS0zMS40LTUzLjItNDYuNSAyLTIuOSA3LjQtOC4xIDIxLjYtMTUuMSAyMS40LTEwLjUgNDYuNS0xNS44IDc0LjMtMTUuOCAyNy45IDAgNTIuOSA1LjMgNzQuMyAxNS44IDE0LjIgNi45IDE5LjYgMTIuMiAyMS42IDE1LjEtMzQgMTUuMS01Mi45IDQ2LjItNTMuMSA0Ni41bC0zLjUgNS44IDUuNi0zLjlzLjItLjEgLjQtLjNjOC43LTYuOCAzOS0yOS44IDY0LjEtMzcuNyA3LTIuMiAyMC42LTYgMzIuOS02IDYuMyAwIDExLjMgMSAxNS4xIDIuOSAzLjUgMS44IDUuNyA0LjQgNi43IDcuOCAyLjUgOS4xLTYuMSAyMi42LTkuNCAyNi42LS41IC42LS45IDEuMy0xLjMgMi4yLS4zLTQuNi0uNS05LjUtLjMtMTQuNC00IDguOC02LjUgMzEuNS01LjEgNDMgMy42IDI5LjMgMTUuNyA0NC4zIDE1LjcgNDQuMy0uOC0xLjYtMS44LTcuNy0yLjctMTQuOSAuNyAuNiAxLjUgMS4yIDIuMiAxLjhsLjUgLjRjNC42IDMuNyA4LjkgNy4xIDguOSAxOC4yIDAgMTQuMi0xNS40IDIyLjUtMzAuMiAzMC41LTIuOSAxLjUtNS43IDMuMS04LjQgNC42LTguNyA1LTE4IDE2LjctMTkuMSAzNC4yLS45IDE0LjYgLjkgNDkuOSAzLjQgNzUuOS0xMi40IDQuOC0yNi43IDYuNC0zOS43IDYuOC0yLTQuMS0zLjktOC41LTUuNS0xMy4xLS43LTItMTkuNi01MS4xLTI2LjQtNjIuMiA1LjUgMzkgMTcuNSA3My43IDIzLjUgODkuNi0zLjUtLjUtNy4zLS43LTExLjctLjdsLTExNyAwYy00LjQgMC04LjMgLjMtMTEuNyAuNyA2LTE1LjkgMTguMS01MC42IDIzLjUtODkuNi02LjggMTEuMi0yNS43IDYwLjMtMjYuNCA2Mi4yLTEuNiA0LjYtMy41IDktNS41IDEzLjEtMTMtLjQtMjcuMi0yLTM5LjctNi44IDIuNS0yNiA0LjMtNjEuMiAzLjQtNzUuOS0uOS0xNy40LTEwLjMtMjkuMi0xOS0zNC4yek0zNS4xIDQwNC42Yy0xMi4xLTIwLTguNy01NC4xLTMuNy01OS4xIDEwLjkgMzQuNCA0Ny4yIDQ0LjMgNzQuNCA0NS40LTIuNyA0LjItNS4yIDcuNi03IDEwbC0xLjQgMS40Yy03LjIgNy44LTguNiAxOC41LTQuMSAzMS44LTIyLjctLjEtNDYuMy05LjgtNTguMi0yOS41em00NS43IDQzLjVjNiAxLjEgMTIuMiAxLjkgMTguNiAyLjQgMy41IDggNy40IDE1LjkgMTIuMyAyMy4xLTE0LjQtNS45LTI0LjQtMTYtMzAuOS0yNS41em0xMTEuNSA1MC4xYy02MC42LS4xLTc4LjMtNDUuOC04NC45LTY0LjctMy43LTEwLjUtMy40LTE4LjIgLjktMjMuMSAyLjktMy4zIDkuNS03LjIgMjQuNi03LjJsMTE4LjggMGMxNS4xIDAgMjEuOCAzLjkgMjQuNiA3LjIgNC4yIDQuOCA0LjUgMTIuNiAuOSAyMy4xLTYuNiAxOC44LTI0LjMgNjQuNi04NC45IDY0Ljd6bTgwLjYtMjQuNmM0LjktNy4yIDguOC0xNS4xIDEyLjMtMjMuMSA2LjQtLjUgMTIuNi0xLjMgMTguNi0yLjQtNi41IDkuNS0xNi41IDE5LjYtMzAuOSAyNS41em03Ni42LTY5Yy0xMiAxOS43LTM1LjYgMjkuMy01OC4xIDI5LjcgNC41LTEzLjMgMy4xLTI0LjEtNC4xLTMxLjgtLjQtLjUtLjktMS0xLjQtMS41LTEuOC0yLjQtNC4zLTUuOC03LTEwIDI3LjItMS4yIDYzLjUtMTEgNzQuNC00NS40IDUgNSA4LjQgMzkuMS0zLjggNTl6TTE5Mi4yIDE4Ny43bC4yIDBjMTIuNy0uMSAyNy4yLTE3LjggMjcuMi0xNy44LTkuOSA2LTE4LjggOC4xLTI3LjMgOC4zLTguNS0uMi0xNy40LTIuMy0yNy4zLTguMyAwIDAgMTQuNSAxNy42IDI3LjIgMTcuOHptNjEuNyAyMzAuN2wtMjkuNCAwYy00LjIgMC03LjIgLjktOC45IDIuNy0yLjIgMi4zLTEuNSA1LjItLjkgNi43IDEgMi42IDUuNSAxMS4zIDEzIDE5LjMgMi43IDIuOSA2LjYgNC41IDExIDQuNXM4LjctMS42IDExLjgtNC4yYzIuMy0yIDEwLjItOS4yIDEzLjctMTguMSAxLjMtMy4zIDEtNi0uOS03LjktMS4zLTEuMy00LTIuOS05LjQtM3oiXX0sQ2hlPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6InN1cHBvcnRub3ciLGljb246WzY0MCw1MTIsW10sImU4MzMiLCJNMCAxOTEuOWwyMDMuOS0uMWMxLjgtLjYgMi41LTkuNSAzLjItMTIuMiAzLjMtMTMuNSA4LjQtMjYuNCAxNC44LTM4LjdsLTE2MC4yIDAgMC00OC4yIDIzNC41IDAgMCAzOWMtNTEuMiAzNi4xLTU2LjQgOTIuNi0yMy42IDE0My45IDMzLjEgNTEuNyA5My40IDg4LjEgMTQ5LjUgMTEwLjUgNjcuOC0yNS4yIDE2NC45LTg5LjkgMTY5LjQtMTY5LjYgMy4xLTU1LjMtNDIuMi0xMDEuOC05OC43LTkxLjgtNDEuNSA3LjQtNjIuMSA0Ni43LTU0LjggODYuNGwtNDguMiAwYy03LjMtNTYuNiAyMi44LTExMi42IDc4LjQtMTMwLjMgNzguNy0yNS4xIDE1OS41IDI4IDE3MC40IDEwOC44IDE1LjIgMTEyLjMtOTUuNSAxOTkuOS0xODguMSAyMzcuOC00LjQgMS44LTI0LjQgMTAuMS0yNy41IDEwLjFsLTI4MC4zIDAgMC00OC4yIDE3OC41IDAtMzguMS0yOC45LTIzLjItMjIuMS0xOTguMyAwIDAtNDguMiAxNjMuMSAwYy03LjEtMTEuNi0xMi4zLTI0LjMtMTYuMS0zNy40LS43LTIuNS0yLjEtMTItMy44LTEyLjZsLTIwNC45LS4xIDAtNDguMiAwIDB6Il19LF9oZT17cHJlZml4OiJmYWIiLGljb25OYW1lOiJyb2Nrcm1zIixpY29uOls1MTIsNTEyLFtdLCJmM2U5IiwiTTI1NiA4YTI0OCAyNDggMCAxIDAgMCA0OTYgMjQ4IDI0OCAwIDEgMCAwLTQ5NnpNNDEzLjQgNDI3LjVsLTkwIDAtMTEyLTEzMS4zYy0xNy45LTIwLjQtMy45LTU2LjEgMjYuNi01Ni4xbDc1LjMgMC04NC42LTk5LjMtODQuMyA5OC45LTkwIDAgMTQ3LjEtMTcyLjVjMTQuNC0xOC40IDQxLjMtMTcuMyA1NC41IDBMNDEzLjcgMjUyLjNjMTkgMjIuOCAyIDU3LjItMjcuNiA1Ni4xLS42IDAtNzQuMiAuMi03NC4yIC4yTDQxMy40IDQyNy41eiJdfSxUaGU9e3ByZWZpeDoiZmFiIixpY29uTmFtZToidW5zcGxhc2giLGljb246WzQ0OCw1MTIsW10sImUwN2MiLCJNNDQ4IDIzMC4ybDAgMjQ5LjgtNDQ4IDAgMC0yNDkuOCAxNDEuMSAwIDAgMTI0LjkgMTY1LjcgMCAwLTEyNC45IDE0MS4xIDB6TTMwNi45IDMybC0xNjUuNyAwIDAgMTI0LjkgMTY1LjcgMCAwLTEyNC45eiJdfSxiRT17cHJlZml4OiJmYWIiLGljb25OYW1lOiJzcXVhcmUtaW5zdGFncmFtIixpY29uOls0NDgsNTEyLFsiaW5zdGFncmFtLXNxdWFyZSJdLCJlMDU1IiwiTTE5NC40IDIxMS43YTUzLjMgNTMuMyAwIDEgMCA1OS4yIDg4LjYgNTMuMyA1My4zIDAgMSAwIC01OS4yLTg4LjZ6bTE0Mi4zLTY4LjRjLTUuMi01LjItMTEuNS05LjMtMTguNC0xMi0xOC4xLTcuMS01Ny42LTYuOC04My4xLTYuNS00LjEgMC03LjkgLjEtMTEuMiAuMXMtNy4yIDAtMTEuNC0uMWMtMjUuNS0uMy02NC44LS43LTgyLjkgNi41LTYuOSAyLjctMTMuMSA2LjgtMTguNCAxMnMtOS4zIDExLjUtMTIgMTguNGMtNy4xIDE4LjEtNi43IDU3LjctNi41IDgzLjIgMCA0LjEgLjEgNy45IC4xIDExLjFzMCA3LS4xIDExLjFjLS4yIDI1LjUtLjYgNjUuMSA2LjUgODMuMiAyLjcgNi45IDYuOCAxMy4xIDEyIDE4LjRzMTEuNSA5LjMgMTguNCAxMmMxOC4xIDcuMSA1Ny42IDYuOCA4My4xIDYuNSA0LjEgMCA3LjktLjEgMTEuMi0uMXM3LjIgMCAxMS40IC4xYzI1LjUgLjMgNjQuOCAuNyA4Mi45LTYuNSA2LjktMi43IDEzLjEtNi44IDE4LjQtMTJzOS4zLTExLjUgMTItMTguNGM3LjItMTggNi44LTU3LjQgNi41LTgzIDAtNC4yLS4xLTguMS0uMS0xMS40czAtNy4xIC4xLTExLjRjLjMtMjUuNSAuNy02NC45LTYuNS04My0yLjctNi45LTYuOC0xMy4xLTEyLTE4LjRsMCAuMnptLTY3LjEgNDQuNWMxOC4xIDEyLjEgMzAuNiAzMC45IDM0LjkgNTIuMnMtLjIgNDMuNS0xMi4zIDYxLjZjLTYgOS0xMy43IDE2LjYtMjIuNiAyMi42cy0xOSAxMC4xLTI5LjYgMTIuMmMtMjEuMyA0LjItNDMuNS0uMi02MS42LTEyLjNzLTMwLjYtMzAuOS0zNC45LTUyLjIgLjItNDMuNSAxMi4yLTYxLjYgMzAuOS0zMC42IDUyLjItMzQuOSA0My41IC4yIDYxLjYgMTIuMmwuMSAwem0yOS4yLTEuM2MtMy4xLTIuMS01LjYtNS4xLTcuMS04LjZzLTEuOC03LjMtMS4xLTExLjEgMi42LTcuMSA1LjItOS44IDYuMS00LjUgOS44LTUuMiA3LjYtLjQgMTEuMSAxLjEgNi41IDMuOSA4LjYgNyAzLjIgNi44IDMuMiAxMC42YzAgMi41LS41IDUtMS40IDcuM3MtMi40IDQuNC00LjEgNi4yLTMuOSAzLjItNi4yIDQuMi00LjggMS41LTcuMyAxLjVjLTMuOCAwLTcuNS0xLjEtMTAuNi0zLjJsLS4xIDB6TTQ0OCA5NmMwLTM1LjMtMjguNy02NC02NC02NEw2NCAzMkMyOC43IDMyIDAgNjAuNyAwIDk2TDAgNDE2YzAgMzUuMyAyOC43IDY0IDY0IDY0bDMyMCAwYzM1LjMgMCA2NC0yOC43IDY0LTY0bDAtMzIwek0zNTcgMzg5Yy0xOC43IDE4LjctNDEuNCAyNC42LTY3IDI1LjktMjYuNCAxLjUtMTA1LjYgMS41LTEzMiAwLTI1LjYtMS4zLTQ4LjMtNy4yLTY3LTI1LjlzLTI0LjYtNDEuNC0yNS44LTY3Yy0xLjUtMjYuNC0xLjUtMTA1LjYgMC0xMzIgMS4zLTI1LjYgNy4xLTQ4LjMgMjUuOC02N3M0MS41LTI0LjYgNjctMjUuOGMyNi40LTEuNSAxMDUuNi0xLjUgMTMyIDAgMjUuNiAxLjMgNDguMyA3LjEgNjcgMjUuOHMyNC42IDQxLjQgMjUuOCA2N2MxLjUgMjYuMyAxLjUgMTA1LjQgMCAxMzEuOS0xLjMgMjUuNi03LjEgNDguMy0yNS44IDY3bDAgLjF6Il19LExoZT1iRSwkaGU9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiZmlyc3Qtb3JkZXItYWx0IixpY29uOls1MTIsNTEyLFtdLCJmNTBhIiwiTTI1NiA4YTI0OCAyNDggMCAxIDAgMCA0OTYgMjQ4IDI0OCAwIDEgMCAwLTQ5NnptMCA3LjhhMjQwLjIgMjQwLjIgMCAxIDEgMCA0ODAuNCAyNDAuMiAyNDAuMiAwIDEgMSAwLTQ4MC40em0wIDIwLjVhMjE5LjcgMjE5LjcgMCAxIDAgMCA0MzkuNCAyMTkuNyAyMTkuNyAwIDEgMCAwLTQzOS40em0wIDguMmEyMTEuNSAyMTEuNSAwIDEgMSAwIDQyMyAyMTEuNSAyMTEuNSAwIDEgMSAwLTQyM3ptMTg2LjIgMjYwYy00LjQgMTcuMS0xMS4yIDMzLjUtMjAuMSA0OC43bC03NC4xLTM1LjkgNjEuNSA1NC44Yy0xMC42IDE0LjEtMjMuMiAyNi42LTM3LjIgMzcuM2wtNTQuOC02MS42IDM1LjkgNzQuM2MtMTUuMiA5LTMxLjYgMTUuOC00OC42IDIwLjJsLTI3LjMtNzguNSA0LjggODIuOWMtOC42IDEuMi0xNy40IDEuOC0yNi4zIDEuOHMtMTcuNy0uNi0yNi4zLTEuOGw0LjgtODIuNS0yNy4yIDc4Yy0xNy4xLTQuNS0zMy40LTExLjMtNDguNy0yMC4ybDM1LjktNzQuMy01NC45IDYxLjZjLTE0LTEwLjctMjYuNi0yMy4yLTM3LjItMzcuM2w2MS42LTU0LjktNzQuMyAzNS45QzgwLjcgMzM4IDc0IDMyMS43IDY5LjUgMzA0LjZsNzcuOC0yNy4xLTgyLjIgNC44Yy0xLjItOC42LTEuOC0xNy4zLTEuOC0yNi4yIDAtOSAuNi0xNy44IDEuOC0yNi41bDgyLjQgNC44LTc3LjktMjcuMmM0LjUtMTcuMSAxMS4zLTMzLjUgMjAuMi00OC43bDc0LjIgMzUuOS02MS41LTU0LjljMTAuNy0xNCAyMy4yLTI2LjYgMzcuMy0zNy4ybDU0LjggNjEuNS0zNS44LTc0LjJjMTUuMi04LjkgMzEuNi0xNS43IDQ4LjYtMjAuMWwyNi45IDc3LjItNC43LTgxLjZjOC42LTEuMiAxNy40LTEuOCAyNi4zLTEuOHMxNy43IC42IDI2LjMgMS44bC00LjcgODIuMiAyNy03Ny44YzE3LjMgNC41IDMzLjYgMTEuNCA0OC42IDIwLjJsLTM1LjggNzQuMSA1NC43LTYxLjVjMTQuMSAxMC43IDI2LjYgMjMuMiAzNy4yIDM3LjJsLTYxLjQgNTQuOCA3NC4xLTM1LjljOC45IDE1LjIgMTUuNyAzMS42IDIwLjIgNDguNmwtNzcuOCAyNy4xIDgyLjItNC43YzEuMiA4LjcgMS44IDE3LjUgMS44IDI2LjUgMCA4LjktLjYgMTcuNi0xLjggMjYuMmwtODIuMS00LjcgNzcuNyAyNy4xeiJdfSxBaGU9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiZnVsY3J1bSIsaWNvbjpbMjU2LDUxMixbXSwiZjUwYiIsIk02My44IDE2NC4xTDI4LjQgMjA3LjctNyAxNjQuMSAyOC40IDEyMC42IDYzLjggMTY0LjF6TTExMi4yIDBsLTIwLjUgMTk4LjItNTEgNTcuOCA1MSA1Ny44IDIwLjUgMTk4LjIgMC0yMTEuMS00MS4xLTQ0LjkgNDEuMS00NC45IDAtMjExLjF6bTc5LjcgMTY0LjFsMzUuNCA0My42IDM1LjQtNDMuNi0zNS40LTQzLjUtMzUuNCA0My41em0tNDguNSA0N2w0MS4xIDQ0LjktNDEuMSA0NC45IDAgMjExLjEgMjAuNi0xOTguMiA1MS01Ny44LTUxLTU3LjgtMjAuNi0xOTguMiAwIDIxMS4xeiJdfSxEaGU9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiYXJjaC1saW51eCIsaWNvbjpbNTc2LDUxMixbXSwiZTg2NyIsIk0yODguNy03LjhjLTI0LjEgNTktMzguNiA5Ny43LTY1LjQgMTU1IDE2LjQgMTcuNCAzNi42IDM3LjYgNjkuNCA2MC41LTM1LjItMTQuNS01OS4yLTI4LjktNzcuMi00NC0zNC4zIDcxLjYtODguMSAxNzMuNS0xOTcuMiAzNjkuNCA4NS43LTQ5LjUgMTUyLjItODAgMjE0LjEtOTEuNi0yLjctMTEuNC00LjEtMjMuOC00LTM2LjdsLjEtMi43YzEuNC01NC45IDI5LjktOTcuMiA2My44LTk0LjRzNjAuMiA0OS44IDU4LjggMTA0LjdjLS4zIDEwLjMtMS40IDIwLjItMy40IDI5LjQgNjEuMiAxMiAxMjcgNDIuNCAyMTEuNiA5MS4yLTE2LjctMzAuNy0zMS42LTU4LjMtNDUuOC04NC43LTIyLjQtMTcuNC00NS43LTM5LjktOTMuMy02NC40IDMyLjcgOC41IDU2LjMgMTguMyA3NC41IDI5LjMtMTQ0LjUtMjY5LjEtMTU2LjItMzA0LjgtMjA1LjgtNDIxLjF6Il19LEVoZT17cHJlZml4OiJmYWIiLGljb25OYW1lOiJmZWRpdmVyc2UiLGljb246WzU3Niw1MTIsW10sImU4NjUiLCJNMzk0LjggNTI2LjlhNTQgNTQgMCAxIDEgNS44LTEwNy44IDU0IDU0IDAgMSAxIC01LjggMTA3Ljh6bS01MC4xLTgwLjZjLTUuNSAxMC45LTcuNCAyMy4zLTUuNiAzNS40TDE2OC43IDQ1NC40YzUuNS0xMC45IDcuNS0yMy4zIDUuNy0zNS40bDE3MC4zIDI3LjN6TTExMi43IDQ4MS42YTU0IDU0IDAgMSAxIDUuOS0xMDcuOCA1NCA1NCAwIDEgMSAtNS45IDEwNy44em0yNTcuNy02MS40Yy0xMC45IDUuNi0xOS43IDE0LjQtMjUuNCAyNS4zbC03MC42LTcwLjkgMzMuNi0xNyA2Mi40IDYyLjd6TTQ4Ni4xIDI2MWM4LjcgOC42IDE5LjggMTQuMyAzMS45IDE2LjRMNDM5LjQgNDMwLjhjLTguNy04LjYtMTkuOC0xNC4zLTMxLjktMTYuNEw0ODYuMSAyNjF6TTM3Ni43IDIxOS4zbDMwLjUgMTk1LjFjLTEyLjEtMS45LTI0LjUtLjEtMzUuNCA1LjNsLTMyLjItMjA2LjMgMzcuMiA2ek0zNTAuNCAzMjguOUwxNzQuMiA0MTguMmMtMi0xMi4xLTcuNi0yMy4yLTE2LjItMzJsMTg2LjYtOTQuNiA1LjggMzcuMnptLTE1Mi43LTIybC00MC4zIDc4LjdjLTguNy04LjYtMTkuOC0xNC4zLTMxLjktMTYuM2w0NS42LTg5IDI2LjYgMjYuN3pNMTI0LjcgMzY5Yy0xMi4xLTEuOC0yNC40IC4yLTM1LjQgNS42TDYyLjcgMjA0LjNjMTIuMSAxLjggMjQuNS0uMSAzNS40LTUuNkwxMjQuNyAzNjl6bTE0Ny4xLTQ3LjhsLTMzLjYgMTctMTM5LjQtMTM5LjljMTAuOS01LjYgMTkuNy0xNC40IDI1LjQtMjUuM0wyNzEuOCAzMjEuMnptMTk3LjUtOTIuOGMyIDEyLjEgNy42IDIzLjIgMTYuMiAzMS45bC04OS4zIDQ1LjItNS44LTM3LjIgNzguOS00MHptNTUuNiA0NC4zYTU0IDU0IDAgMSAxIDUuOS0xMDcuOCA1NCA1NCAwIDEgMSAtNS45IDEwNy44ek0yODQuNiA1OC43YzguNyA4LjYgMTkuOCAxNC4zIDMxLjggMTYuM2wtOTUuMyAxODYuMS0yNi42LTI2LjcgOTAtMTc1Ljh6TTQ3NC45IDE5Mi4xYy01LjUgMTAuOS03LjUgMjMuMy01LjcgMzUuM2wtMjA2LjQtMzMuMSAxNy4yLTMzLjUgMTk1IDMxLjN6TTY4LjcgMTk5LjZBNTQgNTQgMCAxIDEgNzQuNiA5MS44IDU0IDU0IDAgMSAxIDY4LjcgMTk5LjZ6bTQzMi0zMy40Yy0xMC45IDUuNi0xOS43IDE0LjQtMjUuNCAyNS4zTDM1My41IDY5LjNjMTAuOS01LjYgMTkuNy0xNC40IDI1LjQtMjUuM0w1MDAuNiAxNjYuMnpNMjI5LjMgMTUyLjZsLTE3LjIgMzMuNS04Ny40LTE0YzUuNC0xMC45IDcuNC0yMy4zIDUuNS0zNS40bDk5IDE1Ljl6bTEzOS41IDE1LjlsLTM3LjItNi0xMy42LTg3LjJjMTIuMSAxLjcgMjQuNS0uMyAzNS4zLTUuOWwxNS41IDk5LjF6TTI2Ny44IDI2LjJjMiAxMi4xIDcuNiAyMy4yIDE2LjIgMzEuOWwtMTUzLjkgNzhjLTItMTIuMS03LjYtMjMuMi0xNi4yLTMxLjlsMTUzLjktNzh6bTU1LjYgNDQuM2E1NCA1NCAwIDEgMSA1LjgtMTA3LjggNTQgNTQgMCAxIDEgLTUuOCAxMDcuOHoiXX0sUGhlPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImJyYXZlLXJldmVyc2UiLGljb246WzQ0OCw1MTIsW10sImU2M2QiLCJNMjk4LjUgMGMzIDAgNS44IDEuMyA3LjggMy42bDM4LjEgNDRjLjUtLjEgMS0uMiAxLjUtLjMgOS4yLTEuNiAxOC42LTIuMiAyNy43LTEuMiAxMS42IDEuNCAyMS41IDUuNCAyOC45IDEyLjkgNy43IDcuOCAxNS40IDE1LjggMjIuNiAyMy42IDIuNSAyLjcgNC45IDUuMiA2LjkgNy40IC43IC44IDEuNCAxLjUgMS45IDIgMy40IDMuNyA0LjIgOC4xIDIuNyAxMS45bC05LjggMjQuNiAxMy4xIDM4LjFjLjcgMiAuOCA0LjEgLjIgNi4yLS4xIC40LS4xIC40LS41IDIuMWwtMS41IDUuOGMtMS42IDYuMy0zLjUgMTMuMy01LjQgMjAuOS01LjYgMjEuNi0xMS4yIDQzLjItMTYuNCA2My40LTEyLjkgNDkuOS0yMS40IDgyLjctMjMuNCA5MC45LTExLjEgNDQuNS0xOS45IDYwLTQ4LjMgODAuMy0yNC45IDE3LjgtNzYuOCA1My42LTg2LjggNjAtMSAuNi0yIDEuMy0zLjQgMi4zLS41IC40LTMuMiAyLjItMy45IDIuNy00LjkgMy4zLTguMyA1LjUtMTIuMSA3LjMtNC43IDIuMi05LjMgMy41LTEzLjkgMy41cy05LjEtMS4yLTEzLjktMy41Yy0zLjctMS44LTcuMi0zLjktMTIuMS03LjMtLjgtLjUtMy40LTIuNC0zLjktMi43LTEuNC0xLTIuNS0xLjctMy40LTIuMy0xMC02LjQtNjEuOS00Mi4xLTg2LjgtNjAtMjguNC0yMC40LTM3LjItMzUuOC00OC4zLTgwLjMtMi04LjItMTAuNS00MS0yMy4zLTkwLjUtNS4zLTIwLjYtMTAuOS00Mi4yLTE2LjUtNjMuOC0yLTcuNi0zLjgtMTQuNi01LjQtMjAuOWwtMS41LTUuOC0uNS0yLjFjLS41LTItLjQtNC4yIC4yLTYuMmwxMy4xLTM4LjEtOS45LTI0LjVjLTEuNS0zLjgtLjctOC4yIDItMTEuMiAxLjItMS4zIDEuOC0yIDIuNi0yLjggMi0yLjIgNC40LTQuNyA2LjktNy40IDcuMy03LjcgMTUtMTUuNyAyMi43LTIzLjUgNy40LTcuNSAxNy4zLTExLjYgMjguOS0xMi45IDkuMS0xLjEgMTguNS0uNSAyNy43IDEuMiAuNSAuMSAxIC4yIDEuNSAuM2wzOC4xLTQ0YzItMi40IDQuOC0zLjcgNy44LTMuN2wxNDggMHptLTQuNyAyMS4xbC0xMzguNiAwLTM5LjEgNDUuMWMtMi42IDMtNi43IDQuMy0xMC42IDMuMi0uMi0uMS0uNy0uMi0xLjUtLjQtMS4zLS4zLTIuOS0uNi00LjUtLjktNy40LTEuMy0xNC45LTEuOC0yMS43LTEtNy4zIC45LTEzIDMuMi0xNi42IDYuOS03LjYgNy43LTE1LjIgMTUuNi0yMi4zIDIzLjMtMS43IDEuOC0zLjMgMy41LTQuOCA1LjFsOC44IDIyYzEgMi40IDEgNSAuMiA3LjVMMjkuNyAxNzAuNmMuNCAxLjQgLjUgMS45IDEuMiA0LjggMS42IDYuMyAzLjUgMTMuMyA1LjQgMjAuOSA1LjYgMjEuNiAxMS4yIDQzLjIgMTYuNCA2My40IDEyLjkgNTAgMjEuNCA4Mi44IDIzLjQgOTEgMTAuMSA0MC4xIDE2LjQgNTEuMyA0MC4yIDY4LjMgMjQuNiAxNy42IDc2LjMgNTMuMiA4NS45IDU5LjMgMS4yIC44IDIuNSAxLjYgNCAyLjcgLjYgLjQgMy4yIDIuMiAzLjkgMi43IDQgMi44IDYuNyA0LjQgOS4yIDUuNiAyLjIgMSAzLjkgMS41IDUuMSAxLjVzMi45LS41IDUuMS0xLjVjMi41LTEuMiA1LjItMi44IDkuMi01LjYgLjctLjUgMy4zLTIuMyAzLjktMi43IDEuNi0xLjEgMi44LTEuOSA0LTIuNyA5LjYtNi4xIDYxLjMtNDEuNyA4NS45LTU5LjMgMjMuOC0xNy4xIDMwLjItMjguMiA0MC4xLTY4LjMgMi4xLTguMyAxMC41LTQxLjEgMjMuMy05MC43IDUuMy0yMC42IDEwLjktNDIuMiAxNi41LTYzLjggMi03LjYgMy44LTE0LjYgNS40LTIwLjkgLjctMi45IC45LTMuNCAxLjItNC44bC0xMy4zLTM4LjhjLS44LTIuNC0uOC01LjEgLjItNy41bDguOC0yMmMtMS41LTEuNi0zLjEtMy4zLTQuOC01LjEtNy4yLTcuNi0xNC43LTE1LjUtMjIuMy0yMy4zLTMuNy0zLjctOS4zLTYtMTYuNi02LjktNi44LS44LTE0LjQtLjMtMjEuNyAxLTEuNyAuMy0zLjIgLjYtNC41IC45LS44IC4yLTEuMyAuMy0xLjUgLjQtMy44IDEuMS03LjktLjItMTAuNi0zLjJMMjkzLjggMjEuMXpNMjI0LjUgMzE2YzIuOCAwIDIwLjkgNi41IDM1LjQgMTQuMXMyNSAxMyAyOC4zIDE1LjIgMS4zIDYuMi0xLjcgOC40LTQ0LjEgMzQuNi00OC4xIDM4LjItOS44IDkuNS0xMy44IDkuNS05LjgtNS45LTEzLjgtOS41LTQ1LjEtMzYtNDguMS0zOC4yLTUuMS02LjItMS43LTguNCAxMy45LTcuNSAyOC4zLTE1LjIgMzIuNS0xNC4xIDM1LjQtMTQuMWwtLjIgMHptLjEtMjMwLjdjLjcgMCA4LjggLjIgMjAuNSA0LjIgMTIuMyA0LjIgMjUuNyA5LjQgMzEuOSA5LjRzNTEuOS04LjkgNTEuOS04LjkgNTQuMiA2Ni43IDU0LjIgODEtNi44IDE4LTEzLjcgMjUuNC0zNi44IDM5LjgtNDAuNyA0My45LTExLjkgMTAuNS03LjEgMjEuOCAxMS43IDI1LjggMy45IDQwLjQtMjEgMjQuNC0yOS40IDIyLjgtMjguNC0xMi4yLTM1LjctMTcuMS0zMC41LTI0LjMtMzAuNS0zMS44IDI0LTIwLjggMjguNC0yMy45IDI0LjctMTQuOCAyNS4xLTE5LjQgLjMtNi01LjctMTcuNC0xNi43LTI2LjctMTQuOS0zNi44IDE5LjEtMTUuNCAzMS41LTIwLjIgMzYuMi0xMy43IDM5LjItMTUuMSAyLjItMi43LTYuOC0zLjYtMzQuNi00LjMtNDYuMS0xLjEtMzEuMiA4LjItMzIuOCAxMC45LTMgMi43LTEuNCAxMS44IDEwLjEgNTIuOCAxMC45IDYwLjYgMi40IDEyLjktNS44IDE0LjgtMjIuMSA1LjItMjYuOCA1LjItMTguNi0zLjMtMjYuOC01LjItNi42LTctNS44LTE0LjggOS4zLTUxLjUgMTAuOS02MC42IC4yLTkuMi0xLjQtMTEuOC0yMS4zLTcuNi0zMi44LTEwLjktMzcuMSAuMi00Ni4xIDEuMS05LjggMi4yLTYuOCAzLjYgMjYuOCAxMC40IDM5LjIgMTUuMSAyOS43IDEwIDMxLjUgMjAuMi05IDI1LjQtMTQuOSAzNi44LTYuMSAxMi44LTUuNyAxNy40IDIwLjYgMTYuNCAyNS4xIDE5LjQgMjguNCAxNi40IDI4LjQgMjMuOS0yMy4yIDI3LTMwLjUgMzEuOC0yNy4yIDE1LjQtMzUuNyAxNy4xLTIxLjctOC4yLTI5LjQtMjIuOC0uOC0yOS4xIDMuOS00MC40LTMuMy0xNy43LTcuMS0yMS44LTMzLjgtMzYuNS00MC43LTQzLjktMTMuNy0xMS4yLTEzLjctMjUuNCA1NC4yLTgxIDU0LjItODEgNDUuOCA4LjkgNTEuOSA4LjkgMTkuNS01LjIgMzEuOS05LjQgMjAuNi00LjIgMjAuNi00LjJsLS4zIDB6Il19LEloZT17cHJlZml4OiJmYWIiLGljb25OYW1lOiJhdmlhbmV4IixpY29uOls1MTIsNTEyLFtdLCJmMzc0IiwiTTQ1My4yIDMybC0zMTIgMEMxMDIuMyAzMiA2NSA2My4yIDU3LjkgMTAxLjdMMS4zIDQxMC4zQy01LjggNDQ4LjggMjAgNDgwIDU5IDQ4MGwzMTIgMGMzOC45IDAgNzYuMi0zMS4yIDgzLjMtNjkuN0w1MTEgMTAxLjhDNTE4IDYzLjIgNDkyLjIgMzIgNDUzLjIgMzJ6TTM5NSAzNzkuM2wtMzIgMTMuNS0xMTUuNC0xMTBjLTE0LjcgMTAtMjkuMiAxOS41LTQxLjcgMjcuMWwyMi4xIDY0LjItMTcuOSAxMi43LTQwLjYtNjEtNTIuNC00OC4xIDE1LjctMTUuNCA1OCAzMS4xYzkuMy0xMC41IDIwLjgtMjIuNiAzMi44LTM0LjlsLTIwLjUtMjkuNi02OC44LTk5LjggMTguOC0yOC45IDguOS00LjggMTAzLjEgMTEyLjQgNC45IDQuNWMxOS40LTE4LjggMzMuOC0zMi40IDMzLjgtMzIuNCA3LjctNi41IDIxLjUtMi45IDMwLjcgNy45IDkgMTAuNSAxMC42IDI0LjcgMi43IDMxLjMtMS44IDEuMy0xNS41IDExLjQtMzUuMyAyNS42bDQuNSA3LjMgOTQuOSAxMTkuNC02LjMgNy45eiJdfSxOaGU9e3ByZWZpeDoiZmFiIixpY29uTmFtZToibnM4IixpY29uOls2NDAsNTEyLFtdLCJmM2Q1IiwiTTEwNC4zIDI2OS4ybDI2LjEgMCAwLTI2LjItMjYuMSAwIDAgMjYuMnpNMTU2LjggMjQzbC0uMS0yNi4yIDAtLjljLS4yLTEwLjQtNC40LTIwLjMtMTEuOS0yNy42cy0xNy41LTExLjMtMjcuOS0xMS4xLTIwLjMgNC40LTI3LjYgMTEuOC0xMS4zIDE3LjUtMTEuMiAyNy45bDAgLjIgMjYuNCAwIDAtLjJjLjEtMy40IDEuNS02LjYgMy45LTlzNS43LTMuNyA5LjEtMy43IDYuNyAxLjMgOS4xIDMuNyAzLjggNS42IDMuOSA5bDAgMjYuMiAyNi4zIDB6bTUyLjQgMjUuOGMwIDEyLTIuNCAyMy44LTYuOSAzNC45cy0xMS4zIDIxLjEtMTkuNyAyOS42LTE4LjUgMTUuMi0yOS42IDE5LjctMjIuOSA2LjktMzQuOSA2LjlsLS42IDBjLTI0LjIgMC00Ny4zLTkuNi02NC40LTI2LjdTMjYuMyAyOTMgMjYuMyAyNjguOGwtMjYuMyAwIDAgLjJjMCAxNS40IDMuMSAzMC43IDkgNDQuOXMxNC42IDI3LjIgMjUuNSAzOC4xIDIzLjkgMTkuNSAzOC4xIDI1LjQgMjkuNSA4LjkgNDQuOSA4LjlsLjggMGMxNS40IDAgMzAuNy0zIDQ0LjktOXMyNy4yLTE0LjYgMzguMS0yNS41IDE5LjUtMjMuOCAyNS40LTM4LjEgOC45LTI5LjUgOC45LTQ0LjlsMC0yNi0yNi4zIDAgMCAyNnptLTE1Ny4yIDBjLjEgMTcuMyA3IDMzLjkgMTkuMiA0Ni4xczI4LjggMTkuMSA0Ni4xIDE5LjEgMzMuOS02LjkgNDYuMS0xOS4xIDE5LjItMjguOCAxOS4yLTQ2LjFsLTI2LjMgMGMtLjIgMTAuMi00LjQgMjAtMTEuNyAyNy4ycy0xNy4xIDExLjItMjcuNCAxMS4yLTIwLjEtNC0yNy40LTExLjItMTEuNS0xNi45LTExLjctMjcuMmwwLTI2LTI2LjMgMCAwLTI2LjZjLjMtMTcuMyA3LjQtMzMuOCAxOS43LTQ1LjhzMjktMTguOCA0Ni4zLTE4LjYgMzMuOCA3LjIgNDUuOSAxOS41IDE4LjkgMjguOSAxOC45IDQ2LjJsMCAyNS4zIDI2LjMgMCAwLTI1LjNjMC0yNC4zLTkuNy00Ny43LTI2LjktNjQuOXMtNDAuNS0yNi45LTY0LjktMjYuOS00Ny43IDkuNy02NC45IDI2LjktMjYuOSA0MC41LTI2LjkgNjQuOWwwIDI1LjQgMjYuMyAwIDAgMjZ6bTQxOC40LTcxLjJjMTMuNyAwIDI0LjYgNi42IDMwLjEgMTguM2wuNyAxLjUgMjMuMi0xMS41LS42LTEuNGMtOC0xOS4zLTI4LjUtMzEuMy01My40LTMxLjMtMjMuMSAwLTQzLjYgMTEuNC01MSAyOC40LS4xIDI2LjktLjIgMjMuOSAwIDI0LjggNC43IDExIDE0LjYgMTkuNCAyOC43IDI0LjIgNi41IDIgMTMuMSAzLjMgMTkuOCA0IDUuNSAuNyAxMC42IDEuNCAxNS44IDMuMSA2LjQgMi4xIDEwLjUgNS4zIDEyLjggOS44bDAgOS45Yy0zLjcgNy41LTEzLjggMTIuMy0yNS44IDEyLjMtMTQuMyAwLTI2LTYuOS0zMS45LTE5bC0uNy0xLjUtMjMgMTEuNSAuNiAxLjRjNy45IDE5LjQgMjkuNiAzMiA1NS4zIDMyIDIzLjYgMCA0NC42LTExLjQgNTIuMy0yOC40bC4yLTI1LjktLjItLjdjLTQuOS0xMS0xNS4yLTE5LjYtMjguOS0yNC4yLTcuNy0yLjctMTQuMy0zLjYtMjAuNy00LjQtNS0uNS0xMC0xLjUtMTQuOC0yLjktNi4zLTEuOS0xMC40LTUuMS0xMi42LTkuNmwwLTguNGMzLjQtNy40IDEyLjktMTIuMSAyNC4yLTEyLjFsMCAwek0yODcuNiAzMTEuM2wyNi4xIDAgMC02OC40LTI2LjEgMCAwIDY4LjR6TTYzOS44IDI1OGMtMi45LTYuMy04LjMtMTItMTUuNC0xNi43IDUuNi0zLjggMTAuMS05LjEgMTMtMTUuM2wuMi0yNS4zLS4yLS43Yy03LjQtMTYtMjYuNy0yNi43LTQ4LjItMjYuN1M1NDguNSAxODQgNTQxLjEgMjAwbC0uMiAyNS4zIC4yIC43YzIuOSA2LjEgNy40IDExLjQgMTMgMTUuMy03LjIgNC43LTEyLjUgMTAuNS0xNS40IDE2LjdsLS4yIDI4LjkgLjIgLjdjNy42IDE2IDI3LjkgMjYuNyA1MC42IDI2LjdzNDMuMS0xMC43IDUwLjYtMjYuN2wuMi0yOC45LS4yLS43em0tNzMuMi01MC44YzMuNi02LjMgMTIuNi0xMC41IDIyLjYtMTAuNXMxOSA0LjIgMjIuNiAxMC41bDAgMTMuN2MtMy41IDYuMi0xMi42IDEwLjMtMjIuNiAxMC4zcy0xOS4xLTQuMi0yMi42LTEwLjNsMC0xMy43em00Ny4zIDcyLjJjLTMuOCA2LjYtMTMuMyAxMC45LTI0LjcgMTAuOS0xMS4xIDAtMjEtNC40LTI0LjctMTAuOWwwLTE2LjJjMy43LTYuMyAxMy41LTEwLjUgMjQuNy0xMC41IDExLjMgMCAyMC45IDQuMSAyNC43IDEwLjVsMCAxNi4yek0zNzYuNCAyNjZsLTU5LjgtODkuNy0yOSAwIDAgNDAuNiAyNi41IDAgMCAuNCA2Mi41IDk0LjEgMjUuNyAwIDAtMTM1LjEtMjUuOSAwIDAgODkuN3oiXX0sdkU9e3ByZWZpeDoiZmFiIixpY29uTmFtZToic3F1YXJlLXBpbnRlcmVzdCIsaWNvbjpbNDQ4LDUxMixbInBpbnRlcmVzdC1zcXVhcmUiXSwiZjBkMyIsIk0zODQgMzJMNjQgMzJDMjguNyAzMiAwIDYwLjcgMCA5NkwwIDQxNmMwIDM1LjMgMjguNyA2NCA2NCA2NGw3Mi42IDAtMi4yLS44Yy01LjQtNDguMS0zLjEtNTcuNSAxNS43LTEzNC43IDMuOS0xNiA4LjUtMzUgMTMuOS01Ny45IDAgMC03LjMtMTQuOC03LjMtMzYuNSAwLTcwLjcgNzUuNS03OCA3NS41LTI1IDAgMTMuNS01LjQgMzEuMS0xMS4yIDQ5LjgtMy4zIDEwLjYtNi42IDIxLjUtOS4xIDMyLTUuNyAyNC41IDEyLjMgNDQuNCAzNi40IDQ0LjQgNDMuNyAwIDc3LjItNDYgNzcuMi0xMTIuNCAwLTU4LjgtNDIuMy05OS45LTEwMi42LTk5LjktNjkuOSAwLTExMC45IDUyLjQtMTEwLjkgMTA2LjYgMCAyMS4xIDguMiA0My43IDE4LjMgNTYgMiAyLjQgMi4zIDQuNSAxLjcgNy0xLjEgNC43LTMuMSAxMi45LTQuNyAxOS4yLTEgNC0xLjggNy4zLTIuMSA4LjYtMS4xIDQuNS0zLjUgNS41LTguMiAzLjMtMzAuNi0xNC4zLTQ5LjgtNTkuMS00OS44LTk1LjEgMC03Ny41IDU2LjItMTQ4LjYgMTYyLjItMTQ4LjYgODUuMiAwIDE1MS40IDYwLjcgMTUxLjQgMTQxLjggMCA4NC42LTUzLjMgMTUyLjctMTI3LjQgMTUyLjctMjQuOSAwLTQ4LjMtMTIuOS01Ni4zLTI4LjIgMCAwLTEyLjMgNDYuOS0xNS4zIDU4LjQtNSAxOS4zLTE3LjYgNDIuOS0yNy40IDU5LjNMMzg0IDQ4MGMzNS4zIDAgNjQtMjguNyA2NC02NGwwLTMyMGMwLTM1LjMtMjguNy02NC02NC02NHoiXX0sRmhlPXZFLE9oZT17cHJlZml4OiJmYWIiLGljb25OYW1lOiJibHVldG9vdGgtYiIsaWNvbjpbMjU2LDUxMixbXSwiZjI5NCIsIk0xNjQuOSAyNjBMMjU3LjUgMTU2LjcgMTExLjYgMCAxMTEuNiAyMDYuMyAyNS40IDEyMC4yLTYgMTUxLjYgMTAyLjEgMjYwLTYgMzY4LjQgMjUuNCAzOTkuOCAxMTEuNiAzMTMuNyAxMTQuMyA1MTIgMjYyLjggMzYzLjQgMTY0LjkgMjYwem00MC45LTEwM2wtNTAgNTAtLjMtMTAwLjMgNTAuMyA1MC4zem0tNTAgMTU2bDUwIDUwLTUwLjMgNTAuMyAuMy0xMDAuM3oiXX0sUmhlPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImdyaXBmaXJlIixpY29uOlszMjAsNTEyLFtdLCJmM2FjIiwiTTgwLjUgMzAxLjRjMC03My44IDEwNS4xLTEyMi41IDEwNS4xLTIwMyAwLTQ3LjEtMzQtODgtMzkuMS05MC40IC40IDMuMyAuNiA2LjcgLjYgMTAgMCA5Mi4xLTE0Ny4xIDE1My45LTE0Ny4xIDI2OC42IDAgNDkuOCAzMi4yIDc5LjIgNjYuNSAxMDguMyA2NS4xIDQ2LjcgNzguMSA3MS40IDc4LjEgODYuNiAwIDEwLjEtNC44IDE3LTQuOCAyMi4zIDEzLjEtMTYuNyAxNy40LTMxLjkgMTcuNS00Ni40IDAtMjkuNi0yMS43LTU2LjMtNDQuMi04Ni41LTE2LTIyLjMtMzIuNi00Mi42LTMyLjYtNjkuNXptMjA1LjMtMzljLTEyLjEtNjYuOC03OC0xMjQuNC05NC43LTEzMC45bDQgNy4yYzIuNCA1LjEgMy40IDEwLjkgMy40IDE3LjEgMCA0NC43LTU0LjIgMTExLjItNTYuNiAxMTYuNy0yLjIgNS4xLTMuMiAxMC41LTMuMiAxNS44IDAgMjAuMSAxNS4yIDQyLjEgMTcuOSA0Mi4xIDIuNCAwIDU2LjYtNTUuNCA1OC4xLTg3LjcgNi40IDExLjcgOS4xIDIyLjYgOS4xIDMzLjQgMCA0MS4yLTQxLjggOTYuOS00MS44IDk2LjkgMCAxMS42IDMxLjkgNTMuMiAzNS41IDUzLjIgMSAwIDIuMi0xLjQgMy4yLTIuNCAzNy45LTM5LjMgNjcuMy04NSA2Ny4zLTEzNi44IDAtOC0uNy0xNi4yLTIuMi0yNC42eiJdfSx5RT17cHJlZml4OiJmYWIiLGljb25OYW1lOiJzcXVhcmUtZ29vZ2xlLXBsdXMiLGljb246WzQ0OCw1MTIsWyJnb29nbGUtcGx1cy1zcXVhcmUiXSwiZjBkNCIsIk00NDggOTZjMC0zNS4zLTI4LjctNjQtNjQtNjRMNjQgMzJDMjguNyAzMiAwIDYwLjcgMCA5NkwwIDQxNmMwIDM1LjMgMjguNyA2NCA2NCA2NGwzMjAgMGMzNS4zIDAgNjQtMjguNyA2NC02NGwwLTMyMHpNNjQgMjU2YzAtNTUuMyA0NC43LTEwMCAxMDAtMTAwIDI3IDAgNDkuNSA5LjggNjcgMjYuMmwtMjcuMSAyNi4xYy03LjQtNy4xLTIwLjMtMTUuNC0zOS44LTE1LjQtMzQuMSAwLTYxLjkgMjguMi02MS45IDYzLjIgMCAzNC45IDI3LjggNjMuMiA2MS45IDYzLjIgMzkuNiAwIDU0LjQtMjguNSA1Ni44LTQzLjFsLTU2LjkgMCAwLTM0LjQgOTQuNCAwYzEgNSAxLjYgMTAuMSAxLjYgMTYuNiAwIDU3LjEtMzguMyA5Ny42LTk2IDk3LjYtNTUuMyAwLTEwMC00NC43LTEwMC0xMDB6bTI5MSAxOC4ybDAgMjktMjkuMiAwIDAtMjktMjkgMCAwLTI5LjIgMjkgMCAwLTI5IDI5LjIgMCAwIDI5IDI5IDAgMCAyOS4yLTI5IDB6Il19LEJoZT15RSxIaGU9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiZ2l0ZWUiLGljb246WzUxMiw1MTIsW10sImU4NjMiLCJNMjU2IDUxMmEyNTYgMjU2IDAgMSAxIDAtNTEyIDI1NiAyNTYgMCAxIDEgMCA1MTJ6TTM4NS42IDExMy44bDAgMC0xNzcgMGMtNTIuNCAwLTk0LjggNDIuNC05NC44IDk0LjhsMCAxNzdjMCA3IDUuNyAxMi42IDEyLjYgMTIuNmwxODYuNSAwYzQ3LjEgMCA4NS4zLTM4LjIgODUuMy04NS4zbDAtNzIuN2MwLTctNS43LTEyLjYtMTIuNi0xMi42bC0xNDUuNCAwYy03IDAtMTIuNiA1LjctMTIuNiAxMi42bDAgMzEuNmMwIDYuNiA1LjEgMTIuMSAxMS42IDEyLjZsMSAwIDg4LjUgMGM2LjYgMCAxMi4xIDUuMSAxMi42IDExLjZsMCAxIDAgNi4zYzAgMjAuOS0xNyAzNy45LTM3LjkgMzcuOWwtMTIwLjEgMGMtNyAwLTEyLjYtNS43LTEyLjYtMTIuNmwwLTEyMC4xYzAtMjAuNCAxNi4xLTM3LjEgMzYuNC0zNy45bDEuNiAwIDE3NyAwYzcgMCAxMi42LTUuNyAxMi42LTEyLjZsMC0zMS42YzAtNy01LjYtMTIuNi0xMi42LTEyLjZ6Il19LHFoZT17cHJlZml4OiJmYWIiLGljb25OYW1lOiJ4bXBwIixpY29uOls1NzYsNTEyLFtdLCJlODY0IiwiTTAgNDcuMmMzLjUgMTM3LjEgMTE3LjEgMjc4LjYgMjUyLjkgMzU2LjctMzEuNSAyNS02Ny4yIDQ0LjEtMTA2LjIgNTMuOWwwIDUuNGM1Ni40LTIuMyA5OC4xLTIwLjEgMTQxLjMtNDAuNyA2NS43IDM0LjYgMTIyLjIgMzkuOSAxNDEuNCA0MC43bDAtNS40Yy0zOS05LjgtNzQuNy0yOC44LTEwNi4yLTUzLjggMTM1LjctNzguMiAyNDkuMy0yMTkuOCAyNTIuOC0zNTYuOC01OC40IDI1LjctMTE5LjEgNDQuMi0xODAuMSA2Mi4zbDAgMGMzLjQgNTktMjAuMiAxNzAuNC0xMDcuOSAyNjIuMy04OC40LTkyLjMtMTExLjItMjA0LjEtMTA3LjgtMjYyLjNsMCAwQzExNy43IDkyLjYgNTkuMyA3MC4yIDAgNDcuMnpNOTMuOSA5N2w3My42IDIxLjhDMTY1LjQgMjE2IDIyNi44IDM1OCAzNDEuMyA0MzIuMiAxOTAuNSAzNzYuOSA4OS45IDIxNS43IDkzLjkgOTd6bTM4OC4zIDBjMy4zIDk5LTY1LjYgMjI0LjctMTcxLjcgMjk2LjQtNC43LTQuMS05LjMtOC40LTEzLjgtMTIuNyA3Ny04MC4yIDExMy4yLTE4Ni4zIDExMS45LTI2MS45TDQ4Mi4xIDk3ek0yNjQuNSA0MTAuNWMzIDEuNiA1LjkgMy4yIDguOSA0LjctMTIuNSA2LjQtMjUuNCAxMi4xLTM4LjYgMTcgMTAuMy02LjcgMjAuMi0xMy45IDI5LjctMjEuN3oiXX0sVmhlPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImFwcC1zdG9yZSIsaWNvbjpbNTEyLDUxMixbXSwiZjM2ZiIsIk0yNTUuOSAxMjAuOWw5LjEtMTUuN2M1LjYtOS44IDE4LjEtMTMuMSAyNy45LTcuNXMxMy4xIDE4LjEgNy41IDI3LjlsLTg3LjUgMTUxLjUgNjMuMyAwYzIwLjUgMCAzMiAyNC4xIDIzLjEgNDAuOGwtMTg1LjUgMGMtMTEuMyAwLTIwLjQtOS4xLTIwLjQtMjAuNHM5LjEtMjAuNCAyMC40LTIwLjRsNTIgMCA2Ni42LTExNS40LTIwLjgtMzYuMWMtNS42LTkuOC0yLjMtMjIuMiA3LjUtMjcuOSA5LjgtNS42IDIyLjItMi4zIDI3LjkgNy41bDguOSAxNS43em0tNzguNyAyMThsLTE5LjYgMzRjLTUuNiA5LjgtMTguMSAxMy4xLTI3LjkgNy41cy0xMy4xLTE4LjEtNy41LTI3LjlsMTQuNi0yNS4yYzE2LjQtNS4xIDI5LjgtMS4yIDQwLjQgMTEuNnptMTY4LjktNjEuN2w1My4xIDBjMTEuMyAwIDIwLjQgOS4xIDIwLjQgMjAuNFM0MTAuNSAzMTggMzk5LjIgMzE4bC0yOS41IDAgMTkuOSAzNC41YzUuNiA5LjggMi4zIDIyLjItNy41IDI3LjktOS44IDUuNi0yMi4yIDIuMy0yNy45LTcuNS0zMy41LTU4LjEtNTguNy0xMDEuNi03NS40LTEzMC42LTE3LjEtMjkuNS00LjktNTkuMSA3LjItNjkuMSAxMy40IDIzIDMzLjQgNTcuNyA2MC4xIDEwNHpNMjU2IDhhMjQ4IDI0OCAwIDEgMCAwIDQ5NiAyNDggMjQ4IDAgMSAwIDAtNDk2ek00MCAyNTZhMjE2IDIxNiAwIDEgMSA0MzIgMCAyMTYgMjE2IDAgMSAxIC00MzIgMHoiXX0samhlPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6IndpeCIsaWNvbjpbNjQwLDUxMixbXSwiZjVjZiIsIk0zOTMuNCAxMzEuN2MwIDEzIDIuMSAzMi43LTI4LjcgNDMuOC05LjUgMy40LTE2IDkuNy0xNiA5LjcgMC0zMSA0LjctNDIuMiAxNy40LTQ4LjkgOS44LTUuMSAyNy4yLTQuNiAyNy4yLTQuNnpNMjc3LjYgMTY3LjJsLTM0LjIgMTMyLjctMjguNS0xMDguNmMtNy43LTMyLTIwLjgtNDguNS00OC40LTQ4LjUtMjcuNCAwLTQwLjcgMTYuMi00OC40IDQ4LjVMODkuNSAyOTkuOSA1NS4zIDE2Ny4yQzQ5LjcgMTQwLjUgMjMuOSAxMjkgMCAxMzJMNjUuNiAzNzkuOXMyMS42IDEuNiAzMi41LTRjMTQuMi03LjIgMjEtMTIuOCAyOS42LTQ2LjYgNy43LTMwLjEgMjkuMS0xMTguNCAzMS4xLTEyNC43IDQuOC0xNC45IDExLjEtMTMuOCAxNS40IDAgMiA2LjMgMjMuNSA5NC42IDMxLjEgMTI0LjcgOC42IDMzLjcgMTUuNCAzOS4zIDI5LjYgNDYuNiAxMC44IDUuNSAzMi41IDQgMzIuNSA0TDMzMi45IDEzMmMtMjQuNC0zLjEtNDkuOCA4LjktNTUuMyAzNS4zem0xMTUuOCA1LjJzLTQuMSA2LjMtMTMuNSAxMS42Yy02IDMuNC0xMS44IDUuNi0xOCA4LjYtMTUuMSA3LjMtMTMuMiAxMy45LTEzLjIgMzUuMmwwIDE1Mi4xczE2LjYgMi4xIDI3LjQtMy40YzEzLjktNy4xIDE3LjEtMTQgMTcuMy00NC44bDAtMTUwLjMgMCAwIDAtOXptMTYzLjQgODQuMUw2NDAgMTMyLjhzLTM1LjEtNi01Mi41IDkuOGMtMTMuMyAxMi4xLTI0LjQgMjkuNi01NC4yIDcyLjUtLjUgLjctNi4zIDEwLjUtMTMuMSAwLTI5LjMtNDIuMi00MC44LTYwLjMtNTQuMi03Mi41LTE3LjQtMTUuOC01Mi41LTkuOC01Mi41LTkuOGw4My4yIDEyMy43LTgzIDEyMy40czM2LjYgNC42IDU0LTExLjJjMTEuNS0xMC41IDE3LjYtMjAuNCA1Mi41LTcwLjcgNi44LTEwLjUgMTIuNi0uOCAxMy4xIDAgMjkuNCA0Mi40IDM5LjIgNTguMSA1My4xIDcwLjcgMTcuNCAxNS44IDUzLjMgMTEuMiA1My4zIDExLjJsLTgzLTEyMy40eiJdfSxVaGU9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiaW50ZXJjb20iLGljb246WzQ0OCw1MTIsW10sImY3YWYiLCJNMzkyIDMyTDU2IDMyQzI1LjEgMzIgMCA1Ny4xIDAgODhMMCA0MjRjMCAzMC45IDI1LjEgNTYgNTYgNTZsMzM2IDBjMzAuOSAwIDU2LTI1LjEgNTYtNTZsMC0zMzZjMC0zMC45LTI1LjEtNTYtNTYtNTZ6TTI4My43IDExNC4xYzAtMTkuOCAyOS45LTE5LjggMjkuOSAwbDAgMTk5LjVjMCAxOS44LTI5LjkgMTkuOC0yOS45IDBsMC0xOTkuNXptLTc0LjYtNy41YzAtMTkuOCAyOS45LTE5LjggMjkuOSAwbDAgMjE2LjVjMCAxOS44LTI5LjkgMTkuOC0yOS45IDBsMC0yMTYuNXptLTc0LjcgNy41YzAtMTkuOCAyOS45LTE5LjggMjkuOSAwbDAgMTk5LjVjMCAxOS44LTI5LjkgMTkuOC0yOS45IDBsMC0xOTkuNXpNNTkuNyAxNDRjMC0xOS44IDI5LjktMTkuOCAyOS45IDBsMCAxMzQuM2MwIDE5LjgtMjkuOSAxOS44LTI5LjkgMGwwLTEzNC4zek0zODMuMSAzNzEuOGMtNzIuOCA2My0yNDEuNyA2NS40LTMxOC4xIDAtMTUtMTIuOCA0LjQtMzUuNSAxOS40LTIyLjcgNjUuOSA1NS4zIDIxNi4xIDUzLjkgMjc5LjMgMCAxNC45LTEyLjkgMzQuMyA5LjggMTkuNCAyMi43em01LjItOTMuNWMwIDE5LjgtMjkuOSAxOS44LTI5LjkgMGwwLTEzNC4zYzAtMTkuOCAyOS45LTE5LjggMjkuOSAwbDAgMTM0LjN6Il19LFdoZT17cHJlZml4OiJmYWIiLGljb25OYW1lOiJyZWFjdGV1cm9wZSIsaWNvbjpbNTc2LDUxMixbXSwiZjc1ZCIsIk0yNTAuNyAyMTEuN2w1LjgtNC4xIDUuOCA0LjEtMi4xLTYuOCA1LjctNC4zLTcuMS0uMS0yLjMtNi44LTIuMyA2LjgtNy4yIC4xIDUuNyA0LjMtMiA2Ljh6bTYzLjcgMGw1LjgtNC4xIDUuOCA0LjEtMi4xLTYuOCA1LjctNC4zLTcuMi0uMS0yLjMtNi44LTIuMyA2LjgtNy4yIC4xIDUuNyA0LjMtMS45IDYuOHptLTkxLjMgNTAuNWwtMy40IDBjLTQuOCAwLTMuOCA0LTMuOCAxMi4xIDAgNC43LTIuMyA2LjEtNS44IDYuMXMtNS44LTEuNC01LjgtNi4xbDAtMzYuNmMwLTQuNyAyLjMtNi4xIDUuOC02LjFzNS44IDEuNCA1LjggNi4xYzAgNy4yLS43IDEwLjUgMy44IDEwLjVsMy40IDBjNC43LS4xIDMuOC0zLjkgMy44LTEyLjMgMC05LjktNi43LTE0LjEtMTYuOC0xNC4xbC0uMiAwYy0xMC4xIDAtMTYuOCA0LjItMTYuOCAxNC4xbDAgNDAuMWMwIDEwLjQgNi43IDE0LjEgMTYuOCAxNC4xbC4yIDBjMTAuMSAwIDE2LjgtMy44IDE2LjgtMTQuMSAwLTkuOSAxLjEtMTMuOC0zLjgtMTMuOHptLTgwLjcgMTcuNGwtMTQuNyAwIDAtMTkuMyAxMS40IDBjMi41IDAgMy44LTEuMyAzLjgtMy44bDAtMi4xYzAtMi41LTEuMy0zLjgtMy44LTMuOGwtMTEuNCAwIDAtMTguMyAxNC40IDBjMi41IDAgMy44LTEuMyAzLjgtMy44bDAtMi4xYzAtMi41LTEuMy0zLjgtMy44LTMuOGwtMjEuNyAwYy0yLjQtLjEtMy43IDEuMy0zLjcgMy44bDAgNTkuMWMwIDIuNSAxLjMgMy44IDMuOCAzLjhsMjEuOSAwYzIuNSAwIDMuOC0xLjMgMy44LTMuOGwwLTIuMWMwLTIuNS0xLjMtMy44LTMuOC0zLjh6bS00Mi0xOC41YzQuNi0yIDcuMy02IDcuMy0xMi40bDAtMTEuOWMwLTEwLjEtNi43LTE0LjEtMTYuOC0xNC4xbC0xMy40IDBjLTIuNSAwLTMuOCAxLjMtMy44IDMuOGwwIDU5LjFjMCAyLjUgMS4zIDMuOCAzLjggMy44bDMuNCAwYzIuNSAwIDMuOC0xLjMgMy44LTMuOGwwLTIyLjkgNS42IDAgNy40IDIzLjVjLjIgMSAuOCAxLjggMS42IDIuNHMxLjggLjkgMi43IC44bDMuMyAwYzIuOCAwIDQtMS44IDMuMi00LjRsLTguMS0yMy45em0tMy44LTE0YzAgNC44LTIuNSA2LjEtNi4xIDYuMWwtNS44IDAgMC0yMC45IDUuOCAwYzMuNiAwIDYuMSAxLjMgNi4xIDYuMWwwIDguN3pNMTc2LjEgMjI2Yy0uMS0uNS0uMi0xLS40LTEuNHMtLjYtLjgtMS0xLjEtLjgtLjYtMS4zLS43LTEtLjItMS41LS4xbC02LjkgMGMtLjUgMC0xIDAtMS40IC4ycy0uOSAuNC0xLjMgLjctLjcgLjctLjkgMS4xLS40IC45LS40IDEuNGwtMTEgNTkuMmMtLjUgMi43IC45IDQuMSAzLjQgNC4xbDMgMGMuNSAuMSAxIDAgMS41LS4ycy45LS40IDEuMy0uNyAuNy0uNyAuOS0xLjIgLjQtLjkgLjQtMS40bDEuOC0xMS4zIDEyLjIgMCAxLjggMTEuM2MwIC41IC4yIDEgLjQgMS40cy41IC45IC45IDEuMiAuOCAuNiAxLjMgLjcgMSAuMiAxLjUgLjJsMy41IDBjMi42IDAgMy45LTEuNCAzLjQtNC4xTDE3Ni4xIDIyNnptLTEyLjMgMzkuM2w0LjctMjkuNyA0LjcgMjkuNy05LjQgMHptODkuMyAyMC4ybDAtNTMuMiA3LjUgMGMyLjUgMCAzLjgtMS4zIDMuOC0zLjhsMC0yLjFjMC0yLjUtMS4zLTMuOC0zLjgtMy44bC0yNS44IDBjLTIuNSAwLTMuOCAxLjMtMy44IDMuOGwwIDIuMWMwIDIuNSAxLjMgMy44IDMuOCAzLjhsNy4zIDAgMCA1My4yYzAgMi41IDEuMyAzLjggMy44IDMuOGwzLjQgMGMyLjUgMCAzLjgtMS4zIDMuOC0zLjhsMCAwem0yNDgtLjhsLTE5LjQgMCAwLTI2LjcgMTYuMSAwYy4zIDAgLjUgMCAuOC0uMXMuNS0uMiAuNy0uNCAuMy0uNCAuNC0uNyAuMS0uNSAuMS0uOGwwLS44YzAtLjMgMC0uNS0uMS0uOHMtLjItLjUtLjQtLjctLjQtLjMtLjctLjQtLjUtLjEtLjgtLjFsLTE2LjEgMCAwLTI1LjggMTkuMSAwYy4zIDAgLjUgMCAuOC0uMXMuNS0uMiAuNy0uNCAuMy0uNCAuNC0uNyAuMS0uNSAuMS0uOGwwLS44YzAtLjMgMC0uNS0uMS0uOHMtLjItLjUtLjQtLjctLjQtLjMtLjctLjQtLjUtLjEtLjgtLjFsLTIyLjIgMGMtLjMtLjEtLjUtLjEtLjggMHMtLjUgLjItLjcgLjQtLjMgLjQtLjQgLjctLjEgLjUtLjEgLjhsMCA2M2MwIC4zIDAgLjUgLjEgLjhzLjIgLjUgLjQgLjYgLjQgLjMgLjcgLjQgLjUgLjEgLjggLjFsMjIuNSAwYy4zIDAgLjUgMCAuOC0uMXMuNS0uMiAuNy0uNCAuMy0uNCAuNC0uNiAuMS0uNSAuMS0uOGwwLS44YzAtLjMgMC0uNS0uMS0uOHMtLjItLjUtLjQtLjctLjQtLjMtLjctLjQtLjUtLjEtLjgtLjFsMCAwek00MDggMjIxLjhsLS44IDBjLTEwLjEgMC0xNS4zIDQuNy0xNS4zIDE0LjFsMCA0MC4xYzAgOS4zIDUuMiAxNC4xIDE1LjMgMTQuMWwuOCAwYzEwLjEgMCAxNS4zLTQuOCAxNS4zLTE0LjFsMC00MC4xYzAtOS40LTUuMi0xNC4xLTE1LjMtMTQuMWwwIDB6bTEwLjIgNTIuNGMtLjEgOC0zIDExLjEtMTAuNSAxMS4xcy0xMC41LTMuMS0xMC41LTExLjFsMC0zNi42YzAtNy45IDMtMTEuMSAxMC41LTExLjFzMTAuNSAzLjIgMTAuNSAxMS4xbDAgMzYuNnptLTQ2LjUtMTQuNWM2LjEtMS42IDkuMi02LjEgOS4yLTEzLjNsMC05LjdjMC05LjQtNS4yLTE0LjEtMTUuMy0xNC4xbC0xMy43IDBjLS4zIDAtLjUgMC0uOCAuMXMtLjUgLjItLjcgLjQtLjMgLjQtLjQgLjYtLjEgLjUtLjEgLjhsMCA2M2MwIC4zIDAgLjUgLjEgLjhzLjIgLjUgLjQgLjYgLjQgLjMgLjcgLjQgLjUgLjEgLjggLjFsMS4yIDBjLjMgMCAuNSAwIC44LS4xcy41LS4yIC42LS40IC4zLS40IC40LS42IC4xLS41IC4xLS44bDAtMjYuOSAxMS42IDAgMTAuNCAyNy4yYy4yIC41IC41IC45IC45IDEuMXMuOSAuNCAxLjQgLjRsMS41IDBjMS40IDAgMi0xIDEuNS0yLjNsLTEwLjYtMjcuM3ptLTYuNC0zLjlsLTEwLjIgMCAwLTI4LjUgMTAuMiAwYzcuNSAwIDEwLjUgMy4xIDEwLjUgMTEuMWwwIDYuNGMwIDcuOC0zIDExLTEwLjUgMTFsMCAwem04NS45LTMzLjFsLTEzLjcgMGMtLjMtLjEtLjUtLjEtLjggMHMtLjUgLjItLjcgLjQtLjMgLjQtLjQgLjctLjEgLjUtLjEgLjhsMCA2M2MwIC4zIDAgLjUgLjEgLjhzLjIgLjUgLjQgLjYgLjQgLjMgLjcgLjQgLjUgLjEgLjggLjFsMS4yIDBjLjMgMCAuNSAwIC44LS4xcy41LS4yIC42LS40IC4zLS40IC40LS42IC4xLS41IC4xLS44bDAtMjYuMSAxMC42IDBjMTAuMSAwIDE1LjMtNC44IDE1LjMtMTQuMWwwLTEwLjVjMC05LjQtNS4yLTE0LjEtMTUuMy0xNC4xem0xMC4yIDIyLjhjMCA3LjktMyAxMS4xLTEwLjUgMTEuMWwtMTAuMiAwIDAtMjkuMiAxMC4yIDBjNy41LS4xIDEwLjUgMy4xIDEwLjUgMTFsMCA3LjF6TTI1OS42IDMwOGwtMi4zLTYuOC0yLjMgNi44LTcuMSAuMSA1LjcgNC4zLTIuMSA2LjggNS44LTQuMSA1LjggNC4xLTIuMS02LjggNS43LTQuMy03LjEtLjF6TTQ4Ny4yIDE3MS45Yy0xMS43LTQuNC0yMy41LTguMS0zNS42LTExLjMgMTkuNi03OCAxMS42LTEzNC43LTIyLjMtMTUzLjktMzQuNS0xOS40LTg1LjkgNC4zLTEzOC4yIDU1LjIgMy40IDMuMyA2LjggNi43IDEwLjIgMTAuMiA4Mi41LTgwIDExOS42LTUzLjUgMTIwLjktNTIuOCAyMi40IDEyLjcgMzYgNTUuOCAxNS41IDEzNy44LTI3LjgtNi40LTU2LjEtMTAuNy04NC42LTEzLTcxLjktMTAwLjUtMTQwLjYtMTQyLjEtMTgyLjItMTQyLjEtMzAuOCAwLTQzLjggMjEtNDcuNiAyNy43LTE4LjEgMzItMTMuMyA4NC4yIC4xIDEzMy44LTcwLjUgMjAuMy0xMjAuNyA1NC4xLTEyMC4zIDk1IC41IDU5LjYgMTAzLjIgODcuOCAxMjIuMSA5Mi44LTIwLjUgODEuOS0xMC4xIDEzNS42IDIyLjMgMTUzLjkgMjggMTUuOCA3NS4xIDYgMTM4LjItNTUuMi0zLjQtMy4zLTYuOC02LjctMTAuMi0xMC4yLTgyLjUgODAtMTE5LjcgNTMuNS0xMjAuOSA1Mi44LTIyLjMtMTIuNi0zNi01NS42LTE1LjUtMTM3LjkgMTIuNCAyLjkgNDEuOCA5LjUgODQuNiAxMyA3MS45IDEwMC40IDE0MC42IDE0MiAxODIuMSAxNDIgMzAuOCAwIDQzLjgtMjEgNDcuNi0yNy43IDE4LTMxLjkgMTMuMy04NC4xLS4xLTEzMy44IDE1Mi4zLTQzLjggMTU2LjItMTMwLjIgMzMuOS0xNzYuM2wwIDB6TTEzNiAzNi44YzIuOS01LjEgMTEuOS0yMC4zIDM0LjktMjAuMyAzNi44IDAgOTguOCAzOS42IDE2My4zIDEyNi4yLTMxLjMtMS44LTYyLjctMS41LTkzLjkgLjkgMTMtMTguMyAyNy4xLTM1LjggNDIuMi01Mi40LTMuNC0zLjUtNi44LTYuOS0xMC4yLTEwLjItMTguMyAyMC4yLTM1LjMgNDEuNy01MC43IDY0LjItMjguNSAyLjctNTYuNyA3LjYtODQuNCAxNC42LS4yLTEuNC0yNC4zLTgyLjItMS4yLTEyM2wwIDB6TTQ0MC44IDQ3NS4xYy0yLjkgNS4xLTExLjggMjAuMy0zNC45IDIwLjMtMzYuNyAwLTk4LjctMzkuNC0xNjMuMy0xMjYuMiAzMS4zIDEuOCA2Mi43IDEuNSA5My45LS45LTEzIDE4LjMtMjcuMSAzNS44LTQyLjIgNTIuNCAzLjQgMy41IDYuOCA2LjkgMTAuMiAxMC4yIDE4LjQtMjAuMiAzNS4zLTQxLjcgNTAuNy02NC4yIDQ3LjMtNC43IDgwLjMtMTMuNSA4NC40LTE0LjYgMjIuNyA4NC40IDQuNSAxMTcgMS4yIDEyM3ptOS4xLTEzOC42Yy0zLjYtMTEuOS03LjctMjQuMS0xMi40LTM2LjQtMi4xIDAtNC4yLS41LTYuMS0xLjVzLTMuNS0yLjQtNC42LTQuMmwtLjEgLjFjLTEuNiAxLjUtMy40IDIuNy01LjQgMy42IDUuNyAxNC4zIDEwLjYgMjguNCAxNC43IDQyLjItMjMuNyA2LTQ3LjcgMTAuMy03MiAxMyAzLjUtNS4zIDE3LjItMjYuMiAzMi4yLTU0LjItMi4xLS44LTQuMi0xLjktNi0zLjItMS4xIDEuMi0zLjYgNC4yLTEwLjkgNC4yLTYuMiAxMS4yLTE3LjQgMzAuOS0zMy45IDU1LjItMzcuNCAzLjMtNzUgMy42LTExMi40IDEtNy45LTExLjItMjEuNS0zMS4xLTM2LjgtNTcuOC0xLS40LTItLjktMy0xLjUtMS45IDEuNi0zLjkgMy4yLTEyLjYgMy4yIDYuMyAxMS4yIDE3LjUgMzAuNyAzMy44IDU0LjYtMjQuMy0yLjMtNDguNC02LjItNzIuMi0xMS43IDMuOS0xNCA4LjYtMjguMyAxNC4xLTQyLjktMy4yIDAtNS40IC4yLTguNC0xLTIuMiAuOC00LjYgMS4xLTYuOSAxLTQuOSAxMy40LTkuMSAyNi41LTEyLjcgMzkuNC0xNTkuOS00Mi42LTE0MC4zLTEyMy42LTEuNS0xNjQgMy42IDExLjkgNy43IDI0LjEgMTIuNCAzNi40IDEwLjQgMCAxMi45IDMuNCAxNC40IDUuMyAuNy0uOCAxLjQtMS42IDIuMy0yLjItNS44LTE0LjctMTAuOS0yOS4yLTE1LjItNDMuMyA3LTEuOCAzMi40LTguNCA3Mi0xMy0xNS45IDI0LjMtMjYuNyA0My45LTMyLjggNTUuMyAzLjEgMS44IDUuMyA0LjYgNi40IDggMi41LTMuNyA2LjEtNi42IDEwLjItOC40IDYuNS0xMS43IDE3LjktMzEuOSAzNC44LTU2LjkgMzcuNC0zLjMgNzUtMy42IDExMi40LTEgMzEuNSA0NC42IDI4LjkgNDguMSA0Mi41IDY0LjUgMi42LTMuNSA2LjMtNiAxMC40LTcuNC02LjQtMTEuNC0xNy42LTMxLTM0LjMtNTUuNSA0MC40IDQuMSA2NSAxMCA3Mi4yIDExLjctNCAxNC40LTguOSAyOS4yLTE0LjYgNDQuMiAyLjUgMSA0LjggMi40IDYuOCA0LjNsLjEgLjFjMS0xLjUgMi4zLTIuOCAzLjgtMy44czMuMy0xLjYgNS4xLTEuOGM0LjktMTMuNCA5LjItMjYuNiAxMi44LTM5LjUgMTEuNyAzLjEgMjMuMiA2LjggMzQuNSAxMSAxMDYuMSAzOS45IDc0IDg3LjkgNzIuNiA5MC40LTE5LjggMzUuMS04MC4xIDU1LjItMTA1LjcgNjIuNXptLTExNC40LTExNGwtMS4yIDBjLS4zIDAtLjUgMC0uOCAuMXMtLjUgLjItLjYgLjQtLjMgLjQtLjQgLjYtLjEgLjUtLjEgLjhsMCA0OS44YzAgNy45LTIuNiAxMS4xLTEwLjEgMTEuMXMtMTAuMS0zLjEtMTAuMS0xMS4xbDAtNDkuOGMwLS4zIDAtLjUtLjEtLjhzLS4yLS41LS40LS43LS40LS4zLS43LS40LS41LS4xLS44LS4xbC0xLjIgMGMtLjMgMC0uNSAwLS44IC4xcy0uNSAuMi0uNyAuNC0uMyAuNC0uNCAuNi0uMSAuNS0uMSAuOGwwIDUxLjVjMCA5LjYgNSAxNC4xIDE1LjEgMTQuMWwuNCAwYzEwLjEgMCAxNS4xLTQuNiAxNS4xLTE0LjFsMC01MS41YzAtLjMtLjEtLjUtLjItLjhzLS4zLS41LS41LS42LS40LS4zLS43LS40LS41LS4xLS44LS4xek0zMjEuOCAzMDhsLTIuMy02LjgtMi4zIDYuOC03LjEgLjEgNS43IDQuMy0yLjEgNi44IDUuOC00LjEgNS44IDQuMS0yLjEtNi44IDUuNy00LjMtNy4xLS4xem0tMzEuMSA3LjRsLTIuMy02LjgtMi4zIDYuOC03LjEgLjEgNS43IDQuMy0yLjEgNi44IDUuOC00LjEgNS44IDQuMS0yLjEtNi44IDUuNy00LjMtNy4xLS4xem01LjEtMzAuOGwtMTkuNCAwIDAtMjYuNyAxNi4xIDBjLjMgMCAuNSAwIC44LS4xcy41LS4yIC43LS40IC4zLS40IC40LS43IC4xLS41IC4xLS44bDAtLjhjMC0uMyAwLS41LS4xLS44cy0uMi0uNS0uNC0uNy0uNC0uMy0uNy0uNC0uNS0uMS0uOC0uMWwtMTYuMSAwIDAtMjUuOCAxOS4xIDBjLjMgMCAuNSAwIC44LS4xcy41LS4yIC43LS40IC4zLS40IC40LS43IC4xLS41IC4xLS44bDAtLjhjMC0uMyAwLS41LS4xLS44cy0uMi0uNS0uNC0uNy0uNC0uMy0uNy0uNC0uNS0uMS0uOC0uMWwtMjIuMiAwYy0uMyAwLS41IDAtLjggLjFzLS41IC4yLS43IC40LS4zIC40LS40IC42LS4xIC41LS4xIC44bDAgNjNjMCAuMyAwIC41IC4xIC44cy4yIC41IC40IC42IC40IC4zIC43IC40IC41IC4xIC44IC4xbDIyLjUgMGMuMyAwIC41IDAgLjgtLjFzLjUtLjIgLjctLjQgLjMtLjQgLjQtLjcgLjEtLjUgLjEtLjhsMC0uOGMwLS4zIDAtLjYtLjEtLjhzLS4yLS41LS40LS43LS40LS40LS43LS40LS41LS4xLS44LS4xbDAgMHptLTcuNC05OS40bC0yLjMgNi44LTcuMSAuMSA1LjcgNC4zLTIuMSA2LjggNS44LTQuMSA1LjggNC4xLTIuMS02LjggNS43LTQuMy03LjEtLjEtMi4zLTYuOHoiXX0sR2hlPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6IndhemUiLGljb246WzUxMiw1MTIsW10sImY4M2YiLCJNNTAyLjYgMjAxLjdjMTQuNSA4NS45LTMwLjkgMTY3LjktMTEzLjIgMjA4LjEgMTMgMzQuMS0xMi40IDcwLjItNDguMyA3MC4yLTEzLjIgMC0yNi01LjEtMzUuNi0xNC4ycy0xNS4zLTIxLjYtMTYtMzQuOGMtNi40IC4yLTY0LjIgMC03Ni4zLS42LS4zIDYuOC0xLjkgMTMuNS00LjcgMTkuNnMtNi45IDExLjctMTEuOSAxNi4zLTEwLjggOC4yLTE3LjIgMTAuNS0xMy4yIDMuNC0xOS45IDMuMWMtMzMuOS0xLjQtNTgtMzQuOC00Ny02Ny45LTM3LjItMTMuMS03Mi41LTM0LjktOTkuNi03MC44LTEzLTE3LjMtLjUtNDEuOCAyMC44LTQxLjggNDYuMyAwIDMyLjItNTQuMiA0My4yLTExMC4zIDE4LjQtOTMuOSAxMTYuOC0xNTcuMSAyMTEuNy0xNTcuMSAxMDIuNSAwIDE5Ny4yIDcwLjcgMjE0LjEgMTY5Ljd6TTM3My45IDM4OC4zYzQyLTE5LjIgODEuMy01Ni43IDk2LjMtMTAyLjEgNDAuNS0xMjMuMS02NC4yLTIyOC0xODEuNy0yMjgtODMuNCAwLTE3MC4zIDU1LjQtMTg2LjEgMTM2LTkuNSA0OC45IDUgMTMxLjQtNjguNyAxMzEuNCAyNC45IDMzLjEgNTguMyA1Mi42IDkzLjcgNjQgMjQuNy0yMS44IDYzLjktMTUuNSA3OS44IDE0LjMgMTQuMiAxIDc5LjIgMS4yIDg3LjkgLjggMy41LTYuOSA4LjUtMTIuOSAxNC43LTE3LjVzMTMuMi03LjkgMjAuOC05LjUgMTUuNC0xLjQgMjIuOSAuNCAxNC41IDUuMyAyMC41IDEwLjJ6TTIwNS41IDE4Ny4xYzAtMzQuNyA1MC44LTM0LjcgNTAuOCAwcy01MC44IDM0LjctNTAuOCAwem0xMTYuNiAwYzAtMzQuNyA1MC45LTM0LjcgNTAuOSAwcy01MC45IDM0LjgtNTAuOSAwek0xOTkuNSAyNTcuOGMtMy40LTE2LjkgMjIuMi0yMi4yIDI1LjYtNS4ybC4xIC4zYzQuMSAyMS40IDI5LjggNDQgNjQuMSA0My4xIDM1LjctLjkgNTkuMy0yMi4yIDY0LjEtNDIuOCA0LjUtMTYuMSAyOC42LTEwLjQgMjUuNSA2LTUuMiAyMi4yLTMxLjIgNjItOTEuNSA2Mi45LTQyLjYgMC04MC45LTI3LjgtODcuOS02NC4ybDAgMHoiXX0sWWhlPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImNyZWF0aXZlLWNvbW1vbnMtcmVtaXgiLGljb246WzUxMiw1MTIsW10sImY0ZWUiLCJNMjU1LjYgOEMzOTcuNCA4IDUwNCAxMTguMSA1MDQgMjU2IDUwNCA0MDMuMSAzODUuNSA1MDQgMjU1LjYgNTA0IDEyMS42IDUwNCA4IDM5NC41IDggMjU2IDggMTIzLjEgMTEyLjcgOCAyNTUuNiA4em0uOCA0NC43Yy0xMTguMiAwLTIwMy43IDk3LjktMjAzLjcgMjAzLjMgMCAxMDkuOCA5MS4yIDIwMi44IDIwMy43IDIwMi44IDEwMy4yIDAgMjAyLjgtODEuMSAyMDIuOC0yMDIuOCAuMS0xMTMuOC05MC4yLTIwMy4zLTIwMi44LTIwMy4zek00MTguMSAyNjAuNGw0LjkgMi4yIDAgNzBjLTcuMiAzLjYtNjMuNCAyNy41LTY3LjMgMjguOC02LjUtMS44LTExMy43LTQ2LjgtMTM3LjMtNTYuMmwtNjQuMiAyNi42LTYzLjMtMjcuNSAwLTYzLjggNTkuMy0yNC44Yy0uNy0uNy0uNCA1LS40LTcwLjRsNjcuMy0yOS43IDE1MS45IDYyLjkgMCA2MS42IDQ5LjEgMjAuM3ptLTcwLjQgODEuNWwwLTQzLjgtLjQgMCAwLTEuOC0xMTMuOC00Ni41IDAgNDUuMiAxMTMuOCA0Ni45IDAtLjQgLjQgLjR6bTcuNS01Ny42bDM5LjktMTYuNC0zNi44LTE1LjUtMzkgMTYuNCAzNS45IDE1LjV6bTUyLjMgMzguMWwwLTQzLTQ0LjMgMTguNiAwIDQzLjQgNDQuMy0xOXoiXX0sWmhlPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImJhbmRjYW1wIixpY29uOls1MTIsNTEyLFtdLCJmMmQ1IiwiTTI1NiA4YTI0OCAyNDggMCAxIDAgMCA0OTYgMjQ4IDI0OCAwIDEgMCAwLTQ5NnptNDguMiAzMjYuMWwtMTgxIDAgODQuNy0xNTYuMSAxODEgMC04NC43IDE1Ni4xeiJdfSxYaGU9e3ByZWZpeDoiZmFiIixpY29uTmFtZToic3F1YXJlLXdlYi1hd2Vzb21lLXN0cm9rZSIsaWNvbjpbNDQ4LDUxMixbXSwiZTY4NCIsIk02NCA2NEM0Ni4zIDY0IDMyIDc4LjMgMzIgOTZsMCAzMjBjMCAxNy43IDE0LjMgMzIgMzIgMzJsMzIwIDBjMTcuNyAwIDMyLTE0LjMgMzItMzJsMC0zMjBjMC0xNy43LTE0LjMtMzItMzItMzJMNjQgNjR6TTAgOTZDMCA2MC43IDI4LjcgMzIgNjQgMzJsMzIwIDBjMzUuMyAwIDY0IDI4LjcgNjQgNjRsMCAzMjBjMCAzNS4zLTI4LjcgNjQtNjQgNjRMNjQgNDgwYy0zNS4zIDAtNjQtMjguNy02NC02NEwwIDk2em0yMzUgODEuNmw1MyA0Ni40IDUyLjItMTAuNGMtMi42LTMuOS00LjItOC41LTQuMi0xMy42IDAtMTMuMyAxMC43LTI0IDI0LTI0czI0IDEwLjcgMjQgMjRjMCAxMy0xMC4zIDIzLjYtMjMuMiAyNEwzMDQuNSAzNDkuMWMtNS4yIDExLjUtMTYuNiAxOC45LTI5LjIgMTguOWwtMTAyLjYgMGMtMTIuNiAwLTI0LTcuNC0yOS4yLTE4LjlMODcuMiAyMjRjLTEyLjktLjQtMjMuMi0xMS0yMy4yLTI0IDAtMTMuMyAxMC43LTI0IDI0LTI0czI0IDEwLjcgMjQgMjRjMCA1LTEuNSA5LjctNC4yIDEzLjZMMTYwIDIyNCAyMTMuMSAxNzcuNmMtOC45LTQuMS0xNS0xMy4xLTE1LTIzLjYgMC0xNC40IDExLjYtMjYgMjYtMjZzMjYgMTEuNiAyNiAyNmMwIDEwLjUtNi4yIDE5LjUtMTUuMSAyMy42eiJdfSxLaGU9e3ByZWZpeDoiZmFiIixpY29uTmFtZToidmltZW8tdiIsaWNvbjpbNDQ4LDUxMixbXSwiZjI3ZCIsIk00NDcuOCAxNTMuNmMtMiA0My42LTMyLjQgMTAzLjMtOTEuNCAxNzkuMS02MC45IDc5LjItMTEyLjQgMTE4LjgtMTU0LjYgMTE4LjgtMjYuMSAwLTQ4LjItMjQuMS02Ni4zLTcyLjMtMzUuMi0xMjkuMi01MC4yLTIwNC45LTc5LjMtMjA0LjktMy40IDAtMTUuMSA3LjEtMzUuMiAyMS4xTDAgMTY4LjJjNTEuNi00NS4zIDEwMC45LTk1LjcgMTMxLjgtOTguNSAzNC45LTMuNCA1Ni4zIDIwLjUgNjQuNCA3MS41IDI4LjcgMTgxLjUgNDEuNCAyMDguOSA5My42IDEyNi43IDE4LjctMjkuNiAyOC44LTUyLjEgMzAuMi02Ny42IDQuOC00NS45LTM1LjgtNDIuOC02My4zLTMxIDIyLTcyLjEgNjQuMS0xMDcuMSAxMjYuMi0xMDUuMSA0NS44IDEuMiA2Ny41IDMxLjEgNjQuOSA4OS40eiJdfSxRaGU9e3ByZWZpeDoiZmFiIixpY29uTmFtZToic3RyYXZhIixpY29uOlszODQsNTEyLFtdLCJmNDI4IiwiTTE1OC40IDBMNyAyOTIgOTYuMiAyOTIgMTU4LjQgMTc1LjkgMjIwLjEgMjkyIDMwOC42IDI5MiAxNTguNCAwek0zMDguNiAyOTJsLTQzLjkgODguMi00NC42LTg4LjItNjcuNiAwIDExMi4yIDIyMCAxMTEuNS0yMjAtNjcuNiAweiJdfSxKaGU9e3ByZWZpeDoiZmFiIixpY29uTmFtZToidW5pcmVnaXN0cnkiLGljb246WzM4NCw1MTIsW10sImY0MDQiLCJNMTkyIDQ4MGMzOS41IDAgNzYuMi0xMS44IDEwNi44LTMyLjJsLTIxMy41IDBDMTE1LjggNDY4LjIgMTUyLjUgNDgwIDE5MiA0ODB6TTEwMi45IDI4Ni45bDAtMTIuNC0xMDIuOSAwIDAgMTIuNGMwIDIuNSAwIDUgLjEgNy40bDEwMy4xIDBjLS4yLTIuNC0uMy00LjktLjMtNy40em0yMC41IDU3bC0xMTQuOSAwYzIuNiA4LjUgNS44IDE2LjggOS42IDI0LjhsMTM4LjMgMGMtMTIuOS01LjctMjQuMS0xNC4yLTMzLTI0Ljh6bS0xNy43LTM0LjdsLTEwNC40IDBjLjkgNy42IDIuMiAxNSAzLjkgMjIuM2wxMDkuNyAwYy00LTYuOS03LjItMTQuNC05LjItMjIuM3ptLTIuOC02OS4zbC0xMDIuOSAwIDAgMTcuMyAxMDIuOSAwIDAtMTcuM3ptMC0xNzMuMmwtMTAyLjkgMCAwIDQuOSAxMDIuOSAwIDAtNC45em0wLTM0LjdsLTEwMi45IDAgMCAyLjUgMTAyLjkgMCAwLTIuNXptMCA2OS4zbC0xMDIuOSAwIDAgNy40IDEwMi45IDAgMC03LjR6bTAgMTA0bC0xMDIuOSAwIDAgMTQuOCAxMDIuOSAwIDAtMTQuOHptMC02OS4zbC0xMDIuOSAwIDAgOS45IDEwMi45IDAgMC05Ljl6bTAgMzQuNmwtMTAyLjkgMCAwIDEyLjQgMTAyLjkgMCAwLTEyLjR6TTI2OS4xIDMzMS41bDEwOS43IDBjMS44LTcuMyAzLjEtMTQuNyAzLjktMjIuM2wtMTA0LjQgMGMtMi4xIDcuOS01LjIgMTUuNC05LjIgMjIuM3ptMTItMTg1LjdsMTAyLjkgMCAwLTkuOC0xMDIuOSAwIDAgOS44em0wIDM3LjJsMTAyLjkgMCAwLTEyLjQtMTAyLjkgMCAwIDEyLjR6bTAtNzQuM2wxMDIuOSAwIDAtNy40LTEwMi45IDAgMCA3LjR6bTAtNzYuN2wwIDIuNSAxMDIuOSAwIDAtMi41LTEwMi45IDB6TTc4LjEgNDQyLjlsMjI3LjcgMGMxMS44LTguNyAyMi43LTE4LjYgMzIuMi0yOS43bC0yOTMuMSAwYzkuNiAxMSAyMS40IDIxIDMzLjIgMjkuN3ptMjAzLTM3MS4zbDEwMi45IDAgMC00LjktMTAyLjkgMCAwIDQuOXptMCAxNDguNWwxMDIuOSAwIDAtMTQuOC0xMDIuOSAwIDAgMTQuOHpNMzguOCA0MDUuN2wzMDUuMyAwYzYuNy04LjUgMTIuNi0xNy42IDE3LjgtMjcuMkwyMyAzNzguNWM1LjIgOS42IDkuMiAxOC43IDE1LjggMjcuMnptMTg4LjgtMzcuMWwxMzkuNCAwYzMuNy04IDUuOC0xNi4yIDguNS0yNC44bC0xMTUgMGMtOC44IDEwLjctMjAuMSAxOS4yLTMyLjkgMjQuOHptNTMuNS04MS43YzAgMi41LS4xIDUtLjQgNy40bDEwMy4xIDBjLjEtMi41IC4yLTQuOSAuMi03LjRsMC0xMi40LTEwMi45IDAgMCAxMi40em0wLTI5LjdsMTAyLjkgMCAwLTE3LjMtMTAyLjkgMCAwIDE3LjN6Il19LGVwZT17cHJlZml4OiJmYWIiLGljb25OYW1lOiJjYy1kaW5lcnMtY2x1YiIsaWNvbjpbNTc2LDUxMixbXSwiZjI0YyIsIk0yMzkuNyA3OS45YTE3NS44IDE3NS44IDAgMSAwIDAgMzUxLjYgMTc1LjggMTc1LjggMCAxIDAgMC0zNTEuNnpNMTk5LjggMzU5LjVjLTQxLjctMTUuOS03MS40LTU2LjQtNzEuNC0xMDMuOHMyOS43LTg3LjkgNzEuNC0xMDQuMWwwIDIwNy45em03OS44IC4zbDAtMjA4LjJjNDEuNyAxNi4yIDcxLjQgNTYuNyA3MS40IDEwNC4xcy0yOS43IDg3LjktNzEuNCAxMDQuMXpNNTI4IDMyTDQ4IDMyQzIxLjUgMzIgMCA1My41IDAgODBMMCA0MzJjMCAyNi41IDIxLjUgNDggNDggNDhsNDgwIDBjMjYuNSAwIDQ4LTIxLjUgNDgtNDhsMC0zNTJjMC0yNi41LTIxLjUtNDgtNDgtNDh6TTMyOS43IDQ0OGwtOTAuMyAwQzEzMy4yIDQ0OCA0NS42IDM2Mi41IDQ1LjYgMjU3LjggNDUuNiAxNDMuMiAxMzMuMiA2NCAyMzkuNCA2NGw5MC4zIDBjMTA1IDAgMjAwLjcgNzkuMiAyMDAuNyAxOTMuOCAwIDEwNC43LTk1LjcgMTkwLjItMjAwLjcgMTkwLjJ6Il19LHRwZT17cHJlZml4OiJmYWIiLGljb25OYW1lOiJrdWJlcm5ldGVzIixpY29uOls1MTIsNTEyLFtdLCJlODU3IiwiTTI1NiAzMTYuMWMzLjUtLjEgNy4yIDIgOC45IDUuMUwyOTMgMzcxLjdjLTMuNiAxLjItNy4zIDIuMy0xMS4yIDMuMS0yMS40IDQuOS00Mi43IDMuNC02Mi0zLjJsMjcuOS01MC40YzEuNy0zLjEgNC45LTUgOC4yLTUuMXptNTAuNS0yMy40bDU3LjIgOS43Yy04LjQgMjMuNS0yNC40IDQzLjktNDUuOCA1Ny41bC0yMi4yLTUzLjZjLTItNC43IC4xLTEwLjQgNC44LTEyLjYgMS45LS45IDQuMS0xLjMgNi0uOXptLTg5LjEgNy43Yy41IDIuMSAuMyA0LjItLjUgNmwtMjEuOCA1My4zYy0yMC41LTEzLjItMzYuOS0zMi45LTQ1LjctNTcuMWw1Ni43LTkuNmM1LjEtLjkgMTAuMSAyLjQgMTEuMyA3LjV6bTU4LjgtNDFsLTMuOSAxNy4xLTE1LjggNy42LTE1LjktNy43LTQtMTcuMSAxMS0xMy43IDE3LjcgMCAxMSAxMy43em0tNzMuNy0xNi43YzMuOSAzLjQgNC40IDkuNSAxLjIgMTMuNi0xLjMgMS43LTMuMSAyLjgtNSAzLjNsLTU1LjMgMTYuMmMtMi44LTI1LjcgMy4zLTUwLjcgMTYuMS03MS42bDQzLjEgMzguNnptMTUwLjctMzguNWM2LjQgMTAuNCAxMS4yIDIyIDE0LjEgMzQuNiAyLjkgMTIuNCAzLjYgMjQuOCAyLjQgMzYuOGwtNTUuNi0xNmMtNS0xLjQtOC4xLTYuNy02LjktMTEuNyAuNS0yLjEgMS42LTMuOCAzLjEtNS4xbDQyLjktMzguNXptLTExMy44IDQuNGMtLjIgNS4yLTQuNyA5LjQtOS45IDkuNC0yLjEgMC00LjEtLjctNS43LTEuOGwtNDcuMy0zMy40YzE0LjUtMTQuMyAzMy4xLTI0LjggNTQuNS0yOS43IDMuOS0uOSA3LjgtMS42IDExLjctMmwtMy4zIDU3LjZ6bTMwLjgtNTcuNmMyNSAzLjEgNDguMSAxNC40IDY1LjggMzEuN2wtNDcuMSAzMy4yYy00LjIgMy0xMCAyLjMtMTMuMy0xLjgtMS4zLTEuNy0yLTMuNi0yLjEtNS42bC0zLjMtNTcuNXpNMjU0LjUtMS4zYzUuOS0uMyAxMS43IC45IDE3IDMuNEw0NTUgODkuN2M0LjcgMi4zIDguOSA1LjYgMTIuMiA5LjdzNS42IDguOCA2LjggMTMuOWw0NS4zIDE5Ni45YzEuMiA1LjEgMS4yIDEwLjQgMCAxNS41cy0zLjUgOS45LTYuOCAxMy45TDM4NS42IDQ5Ny42Yy0zLjMgNC4xLTcuNSA3LjQtMTIuMiA5LjZzLTEwIDMuNC0xNS4yIDMuNGwtMjAzLjYgMGMtNS4zIDAtMTAuNS0xLjItMTUuMi0zLjRzLTguOS01LjUtMTIuMi05LjZMLjIgMzM5LjdjLS43LS45LTEuNC0xLjgtMi0yLjgtMi42LTMuOS00LjMtOC4zLTUuMS0xMi45cy0uNy05LjMgLjMtMTMuOEwzOC43IDExMy40YzEuMi01LjEgMy41LTkuOSA2LjgtMTMuOXM3LjUtNy40IDEyLjItOS43TDI0MS4xIDIuMWM0LjItMiA4LjgtMy4yIDEzLjQtMy40em0xLjggNjdjLTYuMSAwLTExIDUuNS0xMSAxMi4yIDAgLjEgMCAuMiAwIC4zIDAgLjktLjEgMiAwIDIuOCAuMSAzLjkgMSA2LjkgMS41IDEwLjQgLjkgNy43IDEuNyAxNCAxLjIgMTkuOS0uNSAyLjItMi4xIDQuMy0zLjYgNS43bC0uMiA0LjZjLTYuNiAuNS0xMy4yIDEuNi0xOS44IDMuMS0yOC41IDYuNS01My4xIDIxLjEtNzEuOCA0MS0xLjItLjgtMy4zLTIuMy00LTIuOC0yIC4zLTQgLjktNi41LS42LTQuOS0zLjMtOS40LTcuOS0xNC44LTEzLjQtMi41LTIuNi00LjMtNS4xLTcuMi03LjctLjctLjYtMS43LTEuNC0yLjQtMi0yLjMtMS44LTUtMi44LTcuNy0yLjktMy40LS4xLTYuNiAxLjItOC44IDMuOS0zLjggNC43LTIuNSAxMiAyLjcgMTYuMiAuMSAwIC4xIC4xIC4yIC4xIC43IC42IDEuNiAxLjMgMi4zIDEuOCAzLjEgMi4zIDYgMy41IDkuMSA1LjMgNi42IDQuMSAxMiA3LjQgMTYuMyAxMS41IDEuNyAxLjggMiA0LjkgMi4yIDYuM2wzLjUgMy4yYy0xOC44IDI4LjQtMjcuNiA2My40LTIyLjQgOTkuMWwtNC42IDEuM2MtMS4yIDEuNi0yLjkgNC00LjcgNC43LTUuNiAxLjgtMTIgMi40LTE5LjcgMy4zLTMuNiAuMy02LjcgLjEtMTAuNSAuOC0uOCAuMi0yIC40LTIuOSAuN2wtLjEgMC0uMiAuMWMtNi41IDEuNi0xMC43IDcuNS05LjMgMTMuNCAxLjMgNS45IDcuNyA5LjQgMTQuMiA4bC4yIDBjLjEgMCAuMS0uMSAuMi0uMSAuOS0uMiAyLjEtLjQgMi44LS42IDMuOC0xIDYuNS0yLjUgOS44LTMuOCA3LjMtMi42IDEzLjMtNC44IDE5LjItNS42IDIuNC0uMiA1IDEuNSA2LjMgMi4ybDQuOC0uOGMxMSAzNC4xIDM0LjEgNjEuNyA2My4zIDc5LjFsLTIgNC44Yy43IDEuOSAxLjUgNC40IDEgNi4yLTIuMSA1LjUtNS44IDExLjQtOS45IDE3LjktMiAzLTQuMSA1LjMtNS45IDguOC0uNCAuOC0xIDIuMS0xLjQgMy0yLjggNi0uOCAxMyA0LjcgMTUuNiA1LjUgMi42IDEyLjItLjEgMTUuMi02LjJsMCAwYy40LS45IDEtMiAxLjQtMi44IDEuNi0zLjYgMi4xLTYuNiAzLjItMTAuMSAyLjktNy4zIDQuNS0xNC45IDguNS0xOS43IDEuMS0xLjMgMi45LTEuOCA0LjgtMi4zbDIuNS00LjVjMjUuNSA5LjggNTQgMTIuNCA4Mi41IDUuOSA2LjUtMS41IDEyLjgtMy40IDE4LjgtNS43IC43IDEuMiAyIDMuNiAyLjMgNC4yIDEuOSAuNiAzLjkgLjkgNS42IDMuNCAzIDUuMSA1IDExLjIgNy41IDE4LjUgMS4xIDMuNCAxLjYgNi41IDMuMiAxMC4xIC40IC44IDEgMiAxLjQgMi44IDIuOSA2LjEgOS43IDguOCAxNS4yIDYuMiA1LjQtMi42IDcuNS05LjYgNC43LTE1LjYtLjQtLjktMS0yLjEtMS40LTMtMS44LTMuNC0zLjktNS43LTUuOS04LjctNC4yLTYuNS03LjYtMTEuOS05LjgtMTcuNC0uOS0yLjggLjItNC42IC44LTYuNS0uNC0uNS0xLjMtMy4yLTEuOC00LjQgMzAuNC0xNy45IDUyLjgtNDYuNiA2My4zLTc5LjYgMS40IC4yIDMuOSAuNyA0LjcgLjggMS43LTEuMSAzLjItMi41IDYuMi0yLjMgNS45IC44IDExLjkgMyAxOS4yIDUuNiAzLjQgMS4zIDYuMSAyLjggOS44IDMuOCAuOCAuMiAxLjkgLjQgMi44IC42IC4xIDAgLjEgMCAuMiAuMWwuMiAwYzYuNSAxLjQgMTIuOC0yLjIgMTQuMi04cy0yLjgtMTEuOC05LjMtMTMuNGMtLjktLjItMi4zLS42LTMuMi0uNy0zLjgtLjctNi45LS41LTEwLjUtLjgtNy43LS44LTE0LTEuNC0xOS43LTMuMi0yLjMtLjktNC0zLjctNC44LTQuOGwtNC40LTEuM2MyLjMtMTYuNiAxLjctMzMuOS0yLjMtNTEuMy00LTE3LjUtMTEuMS0zMy41LTIwLjYtNDcuNiAxLjEtMSAzLjMtMi45IDMuOS0zLjUgLjItMiAwLTQgMi4xLTYuMiA0LjMtNC4xIDkuOC03LjQgMTYuMy0xMS41IDMuMS0xLjggNi0zIDkuMS01LjMgLjctLjUgMS43LTEuMyAyLjQtMS45IDUuMy00LjIgNi41LTExLjQgMi43LTE2LjJzLTExLjEtNS4yLTE2LjQtMWMtLjcgLjYtMS44IDEuNC0yLjQgMi0yLjkgMi41LTQuOCA1LTcuMiA3LjctNS40IDUuNS05LjkgMTAuMS0xNC44IDEzLjQtMi4xIDEuMi01LjMgLjgtNi43IC43bC00LjIgM2MtMjMuOC0yNS01Ni4yLTQxLTkxLjItNDQuMS0uMS0xLjUtLjItNC4xLS4yLTQuOS0xLjQtMS40LTMuMi0yLjUtMy42LTUuNS0uNS01LjkgLjMtMTIuMyAxLjMtMTkuOSAuNS0zLjYgMS40LTYuNiAxLjUtMTAuNCAwLS45IDAtMi4yIDAtMy4xIDAtNi43LTQuOS0xMi4yLTExLTEyLjJ6Il19LGFwZT17cHJlZml4OiJmYWIiLGljb25OYW1lOiJwaW50ZXJlc3QiLGljb246WzUxMiw1MTIsW10sImYwZDIiLCJNNTA0IDI1NmMwIDEzNy0xMTEgMjQ4LTI0OCAyNDgtMjUuNiAwLTUwLjItMy45LTczLjQtMTEuMSAxMC4xLTE2LjUgMjUuMi00My41IDMwLjgtNjUgMy0xMS42IDE1LjQtNTkgMTUuNC01OSA4LjEgMTUuNCAzMS43IDI4LjUgNTYuOCAyOC41IDc0LjggMCAxMjguNy02OC44IDEyOC43LTE1NC4zIDAtODEuOS02Ni45LTE0My4yLTE1Mi45LTE0My4yLTEwNyAwLTE2My45IDcxLjgtMTYzLjkgMTUwLjEgMCAzNi40IDE5LjQgODEuNyA1MC4zIDk2LjEgNC43IDIuMiA3LjIgMS4yIDguMy0zLjMgLjgtMy40IDUtMjAuMyA2LjktMjguMSAuNi0yLjUgLjMtNC43LTEuNy03LjEtMTAuMS0xMi41LTE4LjMtMzUuMy0xOC4zLTU2LjYgMC01NC43IDQxLjQtMTA3LjYgMTEyLTEwNy42IDYwLjkgMCAxMDMuNiA0MS41IDEwMy42IDEwMC45IDAgNjcuMS0zMy45IDExMy42LTc4IDExMy42LTI0LjMgMC00Mi42LTIwLjEtMzYuNy00NC44IDctMjkuNSAyMC41LTYxLjMgMjAuNS04Mi42IDAtMTktMTAuMi0zNC45LTMxLjQtMzQuOS0yNC45IDAtNDQuOSAyNS43LTQ0LjkgNjAuMiAwIDIyIDcuNCAzNi44IDcuNCAzNi44cy0yNC41IDEwMy44LTI5IDEyMy4yQzE2MS41IDQzNy4yIDE2My41IDQ2Ny40IDE2NS42IDQ4NyA3My40IDQ1MC45IDggMzYxLjEgOCAyNTYgOCAxMTkgMTE5IDggMjU2IDhTNTA0IDExOSA1MDQgMjU2eiJdfSxpcGU9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiYWxnb2xpYSIsaWNvbjpbNTEyLDUxMixbXSwiZjM2YyIsIk0yNTYgMGMtMTM5LjkgMC0yNTQgMTEyLjctMjU2IDI1Mi4xLTIgMTQxLjUgMTEyLjkgMjU4LjcgMjU0LjUgMjU5LjUgNDMuNyAuMyA4NS45LTEwLjQgMTIzLjMtMzAuNyAzLjYtMiA0LjItNyAxLjEtOS43bC0yNC0yMS4yYy00LjktNC4zLTExLjgtNS41LTE3LjgtMy0yNi4xIDExLjEtNTQuNSAxNi44LTgzLjcgMTYuNC0xMTQuNC0xLjUtMjA2LjktOTYuNi0yMDUuMS0yMTEgMS44LTExMi45IDk0LjMtMjA0LjIgMjA3LjctMjA0LjJsMjA3LjcgMCAwIDM2OS0xMTcuOC0xMDQuN2MtMy44LTMuNC05LjctMi43LTEyLjcgMS4zLTE4LjkgMjUtNDkuNyA0MC42LTgzLjkgMzguMi00Ny41LTMuMy04NS45LTQxLjUtODkuNS04OC45LTQuMi01Ni42IDQwLjYtMTAzLjkgOTYuMy0xMDMuOSA1MC40IDAgOTEuOSAzOC44IDk2LjIgODggLjQgNC40IDIuNCA4LjUgNS43IDExLjRsMzAuNyAyNy4yYzMuNSAzLjEgOSAxLjIgOS45LTMuNCAyLjItMTEuOCAzLTI0LjIgMi4xLTM2LjgtNC45LTcyLTYzLjMtMTMwLTEzNS40LTEzNC40LTgyLjctNS4xLTE1MS44IDU5LjUtMTU0IDE0MC42LTIuMSA3OC45IDYyLjYgMTQ3IDE0MS42IDE0OC43IDMzIC43IDYzLjYtOS42IDg4LjMtMjcuNkw0OTUgNTA5LjRjNi42IDUuOCAxNyAxLjIgMTctNy43bDAtNDkyYzAtNS40LTQuNC05LjctOS43LTkuN0wyNTYgMHoiXX0scnBlPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6InN0YWNrcGF0aCIsaWNvbjpbNDQ4LDUxMixbXSwiZjg0MiIsIk0yNDQuNiAyMzIuNGMwIDguNS00LjMgMjAuNS0yMS4zIDIwLjVsLTE5LjYgMCAwLTQxLjUgMTkuNiAwYzE3LjEgMCAyMS4zIDEyLjQgMjEuMyAyMXpNNDQ4IDMybDAgNDQ4LTQ0OCAwIDAtNDQ4IDQ0OCAwek0xNTEuMyAyODcuOGMwLTIxLjItMTIuMS0zNC41LTQ2LjctNDQuOC0yMC42LTcuNC0yNi0xMC45LTI2LTE4LjZzNy0xNC42IDIwLjQtMTQuNmMxNC4xIDAgMjAuOCA4LjQgMjAuOCAxOC40bDMwLjcgMCAuMi0uNmMuNS0xOS42LTE1LjEtNDEuNi01MS4xLTQxLjYtMjMuNCAwLTUyLjYgMTAuOC01Mi42IDM4LjMgMCAxOS40IDkuMiAzMS4zIDUwLjcgNDQuNCAxNy4zIDYuMiAyMS45IDEwLjQgMjEuOSAxOS41IDAgMTUuMi0xOS4xIDE0LjItMTkuNSAxNC4yLTIwLjQgMC0yNS43LTkuMS0yNS43LTIxLjlsLTMwLjggMC0uMiAuNmMtLjcgMzEuMyAyOC40IDQ1LjIgNTYuNiA0NS4yIDMwIDAgNTEuMS0xMy42IDUxLjEtMzguM3ptMTI1LjQtNTUuNmMwLTI1LjMtMTguNC00NS41LTUzLjQtNDUuNWwtNTEuOCAwIDAgMTM4LjIgMzIuMiAwIDAtNDcuNCAxOS42IDBjMzAuMyAwIDUzLjQtMTYgNTMuNC00NS40ek0yOTcuOSAzMjVsNDkuMS0xMzguMi0zMS4xIDAtNDcuOSAxMzguMiAyOS45IDB6TTQwNC41IDE4Ni44bC0zMS4xIDAtNDcuOSAxMzguMiAyOS45IDAgNDkuMS0xMzguMnoiXX0sc3BlPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6Im9jdG9wdXMtZGVwbG95IixpY29uOls1MTIsNTEyLFtdLCJlMDgyIiwiTTQ1NS43IDM0OS4yYy00NS45LTM5LjEtMzYuNy03Ny45LTE2LjEtMTI4LjEgMzUuNy04Ny0yMy41LTE4Ni45LTEwOS42LTIxMi44LTkyLjktMjcuOS0xOTUuNyAxNi0yMzAuMyAxMDguOC04LjcgMjMuNS0xMi41IDQ4LjUtMTEgNzMuNSAxLjcgMjkuNSAxNC43IDUzIDI0LjEgODAuMyAxNy4yIDUwLjItMjguMSA5Mi43LTY2LjcgMTE3LjYtNDYuOCAzMC4yLTM2LjMgMzkuOS04LjQgNDEuOSAyMy40IDEuNyA0NC41LTQuNSA2NS4zLTE1IDkuMi00LjYgNDAuNy0xOC45IDQ1LjEtMjguNi0xMi4yIDI2LjYtMzcgNzIuNy0yMS41IDEwMi4xIDE5LjEgMzYuMiA2Ny4xLTMxLjggNzYuNy00NS44IDguNi0xMi42IDQzLTgxLjMgNjMuNi00Ni45IDE4LjkgMzEuNCA4LjYgNzYuNCAzNS43IDEwNC42IDMyLjkgMzQuMiA1MS4yLTE4LjMgNTEuNC00NC4yIC4yLTE2LjQtNi4xLTk1LjkgMjkuOS01OS45IDIxLjQgMjEuNCA1Mi45IDcxLjIgODguNiA2NyAzOC43LTQuNS0yMi4xLTY4LTI4LjMtNzguNyA1LjQgNC4zIDUzLjcgMzQuMSA1My44IDkuNSAuMS0xOC44LTMwLjEtMzQuNy00Mi41LTQ1LjN6Il19LG5wZT17cHJlZml4OiJmYWIiLGljb25OYW1lOiJ5YW1tZXIiLGljb246WzUxMiw1MTIsW10sImY4NDAiLCJNNTAwLjcgMTU5LjVjLS40LTEuOC0xLjItMy40LTIuMy00LjhzLTIuNS0yLjYtNC4xLTMuNWMtMy4xLTEuNi02LjctMi0xMC4xLTEuMWwtMjYuNCA2LjYgMC0uMi0yMi4zIDUuOC0xLjIgLjMtLjYtMi4yYy0xNS41LTU4LjMtNDUtMTExLjktODYuMS0xNTYuMi0yLjYtMi43LTYuMS00LjItOS44LTQuM3MtNy4zIDEuMy0xMCAzLjhsLTEwMi45IDEwMi43LTE5OS45IDBjLTYuNiAwLTEyLjkgMi42LTE3LjYgNy4zUzAgMTI0LjggMCAxMzEuNGwwIDI0OUMwIDM4NyAyLjYgMzkzLjMgNy4zIDM5OHMxMSA3LjMgMTcuNiA3LjNMMjI1IDQwNS4zIDMyOC4xIDUwOGMyLjYgMi42IDYgNCA5LjcgNHM3LjEtMS40IDkuNy00Yy4xLS4xIC4yLS4zIC40LS40IDI5LjMtMzEuNSA1Mi44LTY3LjggNjkuNi0xMDcuNCA2LjktMTYuNSAxMi43LTMzLjUgMTcuMy01MC44bDAgMCAyMC40IDUuMyAwLS4xIDI4LjMgNy4zYy45IC4yIDEuNyAuNCAyLjYgLjUgMS40IC4yIDIuOCAuMiA0LjEtLjEgMi41LS41IDQuOC0xLjcgNi43LTMuNHMzLjItNCAzLjgtNi41YzE1LjItNjMuNCAxNS4yLTEyOS42IC4xLTE5M2wwIDB6TTMzNy4xIDI0LjdsMCAwIDAgMCAwIDB6TTIyNi45IDE4OS44bC01Mi42IDkxLjNjLTEgMS43LTEuNSAzLjctMS41IDUuN2wwIDQ2LjJjMCA1LjgtMi4zIDExLjQtNi41IDE1LjZzLTkuNyA2LjQtMTUuNiA2LjRsLTMuNCAwYy01LjggMC0xMS40LTIuMy0xNS42LTYuNHMtNi41LTkuNy02LjUtMTUuNmwwLTQ1LjdjMC0xLjktLjUtMy44LTEuNC01LjVMNzIuMyAxODkuNmMtMS45LTMuNC0yLjgtNy4xLTIuOC0xMXMxLjEtNy42IDMtMTAuOSA0LjctNi4xIDguMS04IDcuMS0yLjkgMTEtMi45bDMuMyAwYzQgMCA4IDEuMSAxMS41IDMuMnM2LjMgNS4xIDguMSA4LjdsMzYuNCA3MC4zIDM3LjUtNzAuNWMxLjgtMy41IDQuNi02LjQgNy45LTguNHM3LjItMy4yIDExLjEtMy4yIDcuOCAuOSAxMS4yIDIuOCA2LjMgNC43IDguMiA4LjFjMiAzLjMgMyA3LjEgMyAxMXMtMSA3LjctMyAxMWwwIDB6TTMzNy4xIDI0LjdjMzUuOSA0MC42IDYxLjkgODkgNzUuOCAxNDEuM2wuNiAyLTExNC4xIDI5LjYgMC02Ni4xYzAtNi42LTIuNy0xMi45LTcuMy0xNy42cy0xMS03LjMtMTcuNi03LjNsLTE5LjQgMCA4Mi4xLTgxLjh6TTM5Ny42IDM5MmwwIDAgMCAwYy0xNC43IDM0LjgtMzUuMSA2Ny02MC4yIDk1LjJsLTgyLjItODEuOSAxOS4yIDBjNi42IDAgMTIuOS0yLjYgMTcuNi03LjNzNy4zLTExIDcuMy0xNy42bDAtNjYuMiAxMTQuNiAyOS45Yy00LjQgMTYuMy05LjggMzIuMy0xNi4zIDQ3LjlsMCAwem04NC01Mi40bDAgMC01MC42LTEzLjEtMTMxLjctMzQuMyAwLTcyLjUgMTE5LjctMzEgNC41LTEuMmMyOS45LTcuNyA0OS4yLTEyLjggNTguMS0xNS4xIDEyIDU1LjEgMTIgMTEyLjEgMCAxNjcuMnoiXX0sb3BlPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6Im1vZHgiLGljb246WzQ0OCw1MTIsW10sImYyODUiLCJNMzU2IDI0MS44bDM2LjcgMjMuNyAwIDIxNC41LTEzMy04My44IDk2LjMtMTU0LjR6TTQ0MCA3NWwtMjEzLjcgMC0yMyAzNy44IDE1My41IDk2LjUgODMuMi0xMzQuM3pNMzUxIDIxNy44bC0yOTUuOC0xODUuOCAwIDIxNC41IDQ2IDI5IDI0OS44LTU3Ljd6TTk3IDI5NC4yTDggNDM3IDIyMS43IDQzNyAzNDYuNyAyMzYuNSA5NyAyOTQuMnoiXX0sbHBlPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6InNxdWFyZS10aHJlYWRzIixpY29uOls0NDgsNTEyLFtdLCJlNjE5IiwiTTY0IDMyQzI4LjcgMzIgMCA2MC43IDAgOTZMMCA0MTZjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMzIwIDBjMzUuMyAwIDY0LTI4LjcgNjQtNjRsMC0zMjBjMC0zNS4zLTI4LjctNjQtNjQtNjRMNjQgMzJ6TTI5NC4yIDI0NC4zYzE5LjUgOS4zIDMzLjcgMjMuNSA0MS4yIDQwLjkgMTAuNCAyNC4zIDExLjQgNjMuOS0yMC4yIDk1LjQtMjQuMiAyNC4xLTUzLjUgMzUtOTUuMSAzNS4zbC0uMiAwYy00Ni44LS4zLTgyLjgtMTYuMS0xMDYuOS00Ni44LTIxLjUtMjcuMy0zMi42LTY1LjQtMzMtMTEzLjFsMC0uMmMuNC00Ny43IDExLjUtODUuNyAzMy0xMTMuMSAyNC4yLTMwLjcgNjAuMi00Ni41IDEwNi45LTQ2LjhsLjIgMGM0Ni45IC4zIDgzLjMgMTYgMTA4LjIgNDYuNiAxMi4zIDE1LjEgMjEuMyAzMy4zIDI3IDU0LjRsLTI2LjkgNy4yYy00LjctMTcuMi0xMS45LTMxLjktMjEuNC00My42LTE5LjQtMjMuOS00OC43LTM2LjEtODctMzYuNC0zOCAuMy02Ni44IDEyLjUtODUuNSAzNi4yLTE3LjUgMjIuMy0yNi42IDU0LjQtMjYuOSA5NS41IC4zIDQxLjEgOS40IDczLjMgMjYuOSA5NS41IDE4LjcgMjMuOCA0Ny40IDM2IDg1LjUgMzYuMiAzNC4zLS4zIDU2LjktOC40IDc1LjgtMjcuMyAyMS41LTIxLjUgMjEuMS00Ny45IDE0LjItNjQtNC05LjQtMTEuNC0xNy4zLTIxLjMtMjMuMy0yLjQgMTgtNy45IDMyLjItMTYuNSA0My4yLTExLjQgMTQuNS0yNy43IDIyLjQtNDguNCAyMy41LTE1LjcgLjktMzAuOC0yLjktNDIuNi0xMC43LTEzLjktOS4yLTIyLTIzLjItMjIuOS0zOS41LTEuNy0zMi4yIDIzLjgtNTUuMyA2My41LTU3LjYgMTQuMS0uOCAyNy4zLS4yIDM5LjUgMS45LTEuNi05LjktNC45LTE3LjctOS44LTIzLjQtNi43LTcuOC0xNy4xLTExLjgtMzAuOC0xMS45bC0uNCAwYy0xMSAwLTI2IDMuMS0zNS42IDE3LjZsLTIzLTE1LjhjMTIuOC0xOS40IDMzLjYtMzAuMSA1OC41LTMwLjFsLjYgMGM0MS44IC4zIDY2LjYgMjYuMyA2OS4xIDcxLjggMS40IC42IDIuOCAxLjIgNC4yIDEuOWwuMSAuNXptLTcxLjggNjcuNWMxNy0uOSAzNi40LTcuNiAzOS43LTQ4LjgtOC44LTEuOS0xOC42LTIuOS0yOS0yLjktMy4yIDAtNi40IC4xLTkuNiAuMy0yOC42IDEuNi0zOC4xIDE1LjUtMzcuNCAyNy45IC45IDE2LjcgMTkgMjQuNSAzNi40IDIzLjZsLS4xLS4xeiJdfSxjcGU9e3ByZWZpeDoiZmFiIixpY29uTmFtZToib2xkLXJlcHVibGljIixpY29uOls1MTIsNTEyLFtdLCJmNTEwIiwiTTI0My44IDEwLjJjNy41LS4zIDE1LS4zIDIyLjUtLjEgMy42IC4xIDcuMiAuNCAxMC44IC43IDQuOSAuMyA5LjggMSAxNC43IDEuNiAyLjkgLjQgNS44IDEgOC43IDEuNSA3LjkgMS4zIDE1LjcgMy4zIDIzLjQgNS40IDEyLjIgMy41IDI0LjIgNy45IDM1LjggMTMuMiAyNi42IDEyLjIgNTAuOSAyOS4yIDcxLjYgNDkuOSAyMCAyMC4xIDM2LjcgNDMuNSA0OC45IDY5LjIgMS4xIDIuNiAyLjQgNS4xIDMuNSA3LjcgMi44IDYuNCA1LjQgMTMgNy42IDE5LjYgNC4xIDEyLjMgNy4zIDI1IDkuNCAzNy44IC42IDMuMSAxIDYuMyAxLjQgOS41IC41IDMuOCAuOSA3LjcgMS4yIDExLjYgLjggOC4zIC44IDE2LjcgLjggMjUuMS0uMSA1LS4zIDkuOS0uNyAxNC45LS4yIDMuNC0uNSA2LjgtMSAxMC4xLS40IDIuNy0uNiA1LjUtMS4xIDguMi0uOSA1LjEtMS43IDEwLjMtMi45IDE1LjQtNC4xIDE4LjUtMTAuMyAzNi42LTE4LjUgNTMuNi0xNS44IDMyLjgtMzguOCA2Mi4yLTY3LjEgODUuMS0xNy4zIDE0LjEtMzYuNCAyNS45LTU2LjkgMzQuOS02LjIgMi43LTEyLjUgNS4zLTE4LjkgNy40LTMuNSAxLjItNyAyLjQtMTAuNiAzLjQtNi42IDEuOS0xMy4zIDMuNi0yMCA1LTQuNyAuOS05LjMgMS43LTE0IDIuNS01LjMgLjctMTAuNSAxLjQtMTUuOCAxLjctNi43IC43LTEzLjQgLjgtMjAuMSAuOC02LjggMC0xMy42LS4xLTIwLjQtLjgtMy4zLS4yLTYuNi0uNS05LjgtMS0yLjctLjQtNS41LS42LTguMi0xLjEtNC4xLS43LTguMi0xLjQtMTIuNC0yLjItNC4yLS45LTguNS0xLjktMTIuNy0zLTguNi0yLjItMTcuMS01LTI1LjQtOC4xLTEwLjUtNC4xLTIwLjgtOC43LTMwLjYtMTQuMi0yLjEtMS4yLTQuMy0yLjMtNi40LTMuNi0xMS4yLTYuNi0yMS45LTE0LjEtMzEuOS0yMi4zLTM0LjctMjguNC02MS40LTY2LjQtNzYuNC0xMDguNy0zLjEtOC43LTUuNy0xNy42LTcuOC0yNi43LTEuNS02LjItMi41LTEyLjQtMy42LTE4LjctLjQtMi4zLS42LTQuNy0xLTcuMS0uNi00LS44LTgtMS4yLTExLjktLjgtOS41LS43LTE5LS41LTI4LjUgLjEtMy41IC4zLTcgLjctMTAuNSAuMy0zLjIgLjUtNi40IC45LTkuNSAuNC0yLjggLjctNS42IDEuMi04LjQgLjctMy45IDEuMy03LjkgMi4xLTExLjggMy40LTE2LjUgOC41LTMyLjcgMTUuMy00OC4yIDEuMi0yLjkgMi42LTUuNyAzLjktOC42IDguMS0xNi43IDE3LjktMzIuNiAyOS41LTQ3LjEgMjAtMjUuNCA0NS4xLTQ2LjcgNzMuMy02Mi41IDcuNS00LjIgMTUuMi04IDIzLjEtMTEuNCAxNS44LTYuOSAzMi40LTEyIDQ5LjMtMTUuNCAzLjUtLjcgNy0xLjIgMTAuNi0xLjggMi42LS41IDUuMy0uNyA3LjktMS4xIDMuNS0uNSA3LjEtLjcgMTAuNi0xIDIuNS0uMiA0LjktLjQgNy40LS41em04LjYgMjQuNGMtOS4yIC4xLTE4LjQgMS0yNy42IDIuMi03LjMgMS4xLTE0LjUgMi42LTIxLjcgNC4zLTEzLjkgMy41LTI3LjUgOC4zLTQwLjUgMTQuNC0xMC41IDUtMjAuNiAxMC43LTMwLjIgMTcuMi00LjIgMi45LTguNCA1LjgtMTIuMyA5LTUuMSA0LTEwIDguMi0xNC43IDEyLjYtMi41IDIuMi00LjggNC43LTcuMiA3LjEtMjguMiAyOC44LTQ4LjQgNjUuNC01Ny41IDEwNC43LTIgOC40LTMuNSAxNy00LjQgMjUuNi0xLjEgOC45LTEuNCAxNy45LTEuNCAyNi44IC4xIDcuMSAuNCAxNC4zIDEuMiAyMS40IC42IDcuMSAxLjkgMTQuMiAzLjIgMjEuMiAxLjEgNC42IDIgOS4zIDMuMyAxMy45IDYuMyAyMy40IDE2LjUgNDUuNyAzMC4xIDY1LjggOC42IDEzIDE4LjggMjQuOSAzMCAzNS44IDE2LjMgMTUuOCAzNSAyOSA1NS4zIDM5LjIgNy4zIDMuNSAxNC43IDYuOSAyMi4zIDkuNiA1IDEuOCAxMC4xIDMuNiAxNS4yIDUgMTEuMyAzLjIgMjIuOCA1LjYgMzQuNCA3LjEgMi45IC4zIDUuOCAuNiA4LjcgLjkgMTMuOCAxLjEgMjcuNyAxIDQxLjUtLjQgNC40LS42IDguOS0xIDEzLjMtMS44IDMuNi0uNyA3LjMtMS4yIDEwLjktMi4xIDQuMS0xIDguMy0xLjkgMTIuNC0zLjEgMjYuNS03LjMgNTEuNi0xOS43IDczLjYtMzYuMiAxNS44LTExLjggMzAtMjUuOCA0Mi4xLTQxLjMgMy4zLTQgNi4yLTguMyA5LjEtMTIuNiAzLjQtNS4xIDYuNi0xMC4yIDkuNi0xNS41IDIuNC00LjQgNC43LTguOSA3LTEzLjQgNS43LTEyLjEgMTAuMy0yNC42IDEzLjgtMzcuNSAyLjYtMTAgNC43LTIwLjIgNS45LTMwLjQgMS44LTEzLjUgMS45LTI3LjEgMS4zLTQwLjctLjMtMy45LS43LTcuOC0xLTExLjctMi4yLTE5LjEtNi44LTM3LjktMTMuOC01NS44LTYtMTUuMS0xMy41LTI5LjYtMjIuNi00My4xLTEyLjctMTguOC0yOC4yLTM1LjctNDYtNDkuOC0yNS0yMC01NC41LTM0LjUtODUuNi00Mi4xLTcuOC0xLjktMTUuNy0zLjMtMjMuNi00LjQtMy45LS42LTcuOC0uOC0xMS44LTEuMi03LjQtLjYtMTQuOC0uNy0yMi4yLS42ek0xNDcuMyA4My41YzEzLjMtOC45IDI4LjEtMTUuNCA0My4zLTIwLjItMy4yIDEuOC02LjQgMy40LTkuNSA1LjMtMTEuMiA2LjctMjEuNSAxNC45LTMwLjQgMjQuNS02LjggNy40LTEyLjggMTUuNy0xNyAyNC45LTMuMyA2LjktNS42IDE0LjItNi45IDIxLjctLjkgNC44LTEuMyA5LjgtMS4yIDE0LjggLjEgMTMuNyA0LjQgMjcuMSAxMS4zIDM4LjggNS45IDEwLjIgMTMuNiAxOS4zIDIyLjQgMjcuMyA0LjkgNC40IDEwLjIgOC4xIDE1IDEyLjYgMi4zIDIuMiA0LjUgNC40IDYuNCA2LjkgMi42IDMuMyA0LjkgNyA2IDExLjEgLjkgMyAuNyA2LjIgLjcgOS4zIDAgNC4xIDAgOC4yIDAgMTIuMyAuMSAzLjUgMCA3LjEgLjEgMTAuNiAuMSAyLjQgMCA0LjggLjEgNy4xIC4yIDUuOCAuMSAxMS41IC4xIDE3LjMgLjEgMi45IDAgNS44IC4xIDguNyAwIDEuNiAuMSAzLjMgMCA0LjktLjkgLjEtMS44IC4yLTIuNyAuMi0xMSAwLTIxLjktMi42LTMyLTYuOS02LTIuNy0xMS44LTUuOS0xNy4xLTkuOC01LjgtNC4yLTExLjEtOS0xNS44LTE0LjMtNi41LTcuMi0xMi0xNS40LTE2LjYtMjMuOS0xLjEtMi0yLjItNC0zLjItNi4xLTEuMi0yLjYtMi42LTUuMS0zLjctNy44LTQtOS43LTYuNi0xOS45LTguMS0zMC4zLS41LTQuNC0xLjEtOC45LTEuMi0xMy4zLS43LTE1LjcgLjgtMzEuNiA0LjctNDYuOCAyLjEtOC4yIDQuOC0xNi4yIDguMy0yMy44IDYuMy0xNC4yIDE1LjMtMjcuMiAyNi4zLTM4LjIgNi4zLTYuMiAxMy4xLTExLjggMjAuNS0xNi43ek0zMjIuNyA2My40YzIuNyAuNyA1LjQgMS43IDguMSAyLjcgNi40IDIuMyAxMi43IDQuOCAxOC43IDggMTMuMSA2LjQgMjUuMyAxNC44IDM1LjggMjUgMTAuMiAxMCAxOC43IDIxLjYgMjUuMSAzNC4zIDEuMyAyLjcgMi42IDUuNSAzLjggOC4zIDYuMyAxNS4xIDEwIDMxLjMgMTEuMiA0Ny42IC40IDQuNSAuNCA5LjEgLjUgMTMuNiAuMSAxMS42LTEuNSAyMy4zLTQuMyAzNC41LTIgNy4zLTQuMyAxNC41LTcuOSAyMS4yLTMuMiA2LjYtNi43IDEzLjItMTAuOCAxOS4yLTYuOSAxMC41LTE1LjYgMTkuOS0yNS44IDI3LjItMTAuNSA3LjYtMjIuNiAxMy0zNS40IDE1LjQtMy41IC43LTcuMSAxLjEtMTAuNyAxLjItMS44IC4xLTMuNyAuMi01LjYtLjEtLjMtMi4xIDAtNC4zIDAtNi41IDAtMy43IC4xLTcuNCAuMS0xMS4yIC4yLTcgMC0xNC4xIC4yLTIxLjEgMC0yLjQgMC00LjggMC03LjEgLjItNS4xIDAtMTAuMSAuMS0xNS4yIC4xLTMtLjItNiAuNS05IC43LTIuNSAxLjgtNC45IDMuMS03LjEgNC41LTcuMyAxMS4xLTEzIDE3LjctMTguMyA1LjQtNC4yIDEwLjUtOC44IDE1LTEzLjggNy43LTguNCAxNC4yLTE3LjkgMTguOC0yOC4zIDIuNS01LjkgNC41LTEyLjEgNS41LTE4LjUgLjktNC40IDEuMS04LjggMS0xMy4zIDAtNy44LTEuNC0xNS42LTMuNi0yMy4yLTEuOC01LjctNC4zLTExLjItNy4xLTE2LjQtMy45LTYuOS04LjYtMTMuMy0xNC0xOS4yLTkuOS0xMC44LTIxLjgtMTkuOS0zNC42LTI3LjEtMS44LTEtMy44LTEuOC01LjYtM3pNMjIxLjkgMTIxLjljMS0xLjIgMi0yLjMgMy4xLTMuNC0uNiAuOS0xLjMgMS44LTIgMi43LTMuMSAzLjktNS41IDguMy03IDEzLjEtLjkgMy4zLTEuNyA2LjYtMS43IDEwLS4xIDIuNS0uMSA1LjEgLjMgNy42IDEuMSA3LjYgNC4zIDE0LjkgOC44IDIxLjEgMiAyLjcgNC4yIDUuMyA2LjkgNy4zIDEuNiAxLjMgMy41IDIuMSA1LjMgMyAzLjEgMS43IDYuMyAzLjIgOS4xIDUuNSAyLjcgMi4xIDQuNiA1LjMgNC40IDguOCAwIDczLjcgMCAxNDcuMyAwIDIyMSAwIDEuNC0uMSAyLjcgMCA0IC4xIDEuNSAuOCAyLjggMS41IDQuMSAuOSAxLjcgMS44IDMuMyAzLjIgNC42IC45IC44IDIgMS40IDMuMiAxLjIgMS41LS4yIDIuNy0xLjQgMy40LTIuNiAxLTEuNSAxLjctMy4yIDIuMy00LjkgLjgtMi4xIC40LTQuNCAuNS02LjYgLjEtNCAwLTguMSAuMS0xMi4xIDAtNS45IDAtMTEuOCAuMS0xNy43IC4xLTMuNiAwLTcuMiAuMS0xMC45IC4yLTQgMC04LjEgLjEtMTIuMSAwLTYgMC0xMiAuMS0xOCAuMS0zLjYgMC03LjIgLjEtMTAuOSAuMS0zLjkgMC03LjkgLjEtMTEuOCAwLTYgMC0xMiAuMS0xOCAuMi0zLjkgMC03LjkgLjItMTEuOCAuMyAxLjQgLjEgMi45IC4yIDQuNCAuMiAzLjYgLjQgNy4yIC44IDEwLjggLjMgMy40IC40IDYuOSAuOSAxMC4zIC40IDMuMSAuNSA2LjIgMSA5LjMgLjYgNC4xIC45IDguMiAxLjUgMTIuMyAxLjUgOSAyLjggMTguMSA1LjEgMjcgMS4xIDQuOCAyLjQgOS42IDQgMTQuMyAyLjUgNy45IDUuNyAxNS43IDEwLjMgMjIuNiAxLjcgMi42IDMuOSA1IDYuMSA3LjIgLjMgLjIgLjYgLjUgLjkgLjcgLjYgLjMgMS4zLS4xIDEuNy0uNiAuNy0uOSAxLjItMS45IDEuNy0yLjkgNC4xLTcuOCA4LjItMTUuNiAxMi4zLTIzLjMgLjctMS4zIDEuNC0yLjYgMi42LTMuNiAxLjgtMS42IDMuOC0yLjcgNi0zLjYgMi45LTEuMiA1LjktMi4yIDktMi40IDYuNi0uNiAxMy4xIC43IDE5LjYgMS44IDMuNyAuNiA3LjQgMS4yIDExLjEgMS40IDMuNyAuMSA3LjUgLjEgMTEuMi0uMyA4LjYtLjkgMTctMyAyNC45LTYuMiA1LjMtMi4yIDEwLjUtNC44IDE1LjMtNy45IDExLjUtNy4yIDIxLjUtMTYuNiAzMC0yNyAxLjItMS40IDIuMi0yLjkgMy41LTQuMy0xLjIgMy4yLTIuNyA2LjQtNC4yIDkuNS0xLjMgMi45LTIuOCA1LjYtNC4zIDguNC01LjIgOS42LTExIDE4LjktMTcuOCAyNy41LTQgNS4yLTguNSAxMC4xLTEzLjMgMTQuNi02LjYgNi4xLTE0LjEgMTEuNC0yMi40IDE0LjgtOC4yIDMuNC0xNy4zIDQuNi0yNi4xIDMuMy0zLjYtLjYtNy0xLjctMTAuNC0yLjktMi44LTEtNS40LTIuNC04LTMuNy0zLjQtMS43LTYuNi0zLjgtOS43LTYuMSAyLjcgMy4xIDUuNyA1LjkgOC43IDguNiA0LjMgMy44IDguNyA3LjMgMTMuNiAxMC4yIDQgMi41IDguMyA0LjQgMTIuOCA1LjUgMS41IC40IDMgLjUgNC41IC42LTEuMyAxLjEtMi42IDItNCAzLTkuNiA2LjUtMjAgMTEuOS0zMC43IDE2LjQtMjAuOSA4LjctNDMuMiAxNC02NS43IDE1LjMtNC43IC4yLTkuMyAuNC0xNCAuNC01LS4xLTEwLS4xLTE0LjktLjctMTEuMi0uOC0yMi4zLTIuNy0zMy4yLTUuNC0xMC40LTIuNy0yMC42LTYuMS0zMC4zLTEwLjYtOC43LTMuOS0xNy4xLTguNC0yNS0xMy44LTEuOC0xLjMtMy43LTIuNS01LjQtNC4xIDYuNi0xLjIgMTMtMy40IDE5LTYuNSA1LjctMi45IDExLTYuNyAxNS42LTExLjEgMi4yLTIuMiA0LjMtNC42IDYuMi03LjEtMy40IDIuMS02LjkgNC4yLTEwLjYgNS44LTQuNCAyLjItOS4xIDMuOC0xMy44IDUtNS43IDEuNS0xMS43IDEuNy0xNy42IDEuMS04LjEtMS0xNS45LTQuMy0yMi41LTktNC4zLTIuOS04LjItNi40LTEyLTEwLjEtOS45LTEwLjItMTguMi0yMS44LTI1LjctMzMuOS0zLjktNi4zLTcuNS0xMi43LTExLjEtMTkuMi0xLTItMi4xLTQuMS0zLjItNi4xIDIuOCAyLjkgNS42IDYgOC40IDguOSAxOS4yIDE5LjIgMzcuNiAzMi4zIDUzLjcgMzUuNSAzLjEgLjcgNi4zIC41IDkuNSAuOCAyLjggLjMgNS42IC4yIDguMyAuMyA1IC4xIDEwLjEgMCAxNS4yLS4yIDMuNi0uMiA3LjMtLjcgMTAuOS0xLjEgMi4xLS4yIDQuMS0uNyA2LjEtMS4yIDMuOS0xIDguMS0xIDExLjggLjYgNC44IDEuOCA4LjQgNS42IDExLjQgOS43IDIuMiAzIDQuMSA2LjIgNS43IDkuNiAxLjIgMi40IDIuNSA0LjggMy42IDcuMyAxIDIuMiAyLjIgNC40IDMuNCA2LjUgLjcgMSAxLjQgMi4yIDIuNiAyLjYgMS4xLS44IDEuNy0xLjkgMi4zLTMgMi4xLTQuMiAzLjQtOC42IDQuOS0xMyAyLTYuNiAzLjgtMTMuMyA1LjItMjAgMi4yLTkuMyAzLjItMTguNyA0LjUtMjguMSAuNi00IC44LTggMS4zLTEyIC45LTEwLjYgMS45LTIxLjMgMi4yLTMxLjkgLjEtMS45IC4yLTMuNyAuMy01LjYgMC00LjMgLjItOC43IC4yLTEzIDAtMi40IDAtNC44IDAtNy4xIDAtNS4xLS4yLTEwLjEtLjItMTUuMi0uMi02LjYtLjctMTMuMi0xLjMtMTkuOC0uNy01LjktMS41LTExLjgtMy4xLTE3LjUtMi03LjctNS42LTE1LTkuOC0yMS44LTMuMi01LjEtNi44LTkuOS0xMS4xLTE0LTMuOS0zLjktOC42LTcuMS0xMy45LTguNC0xLjUtLjQtMy4xLS40LTQuNi0uNiAuMS0zIC43LTUuOSAxLjMtOC44IDEuNi03LjcgMy44LTE1LjMgNi44LTIyLjYgMS41LTQgMy40LTcuOSA1LjQtMTEuNyAzLjQtNi42IDcuNi0xMi44IDEyLjUtMTguNXptMzEuMyAxLjdjLjQtLjEgLjctLjEgMS4xLS4yIC4yIDEuOCAuMSAzLjYgLjEgNS40bDAgMzguMWMwIDEuNyAuMSAzLjUtLjIgNS4yLS40IDAtLjcgMC0xLjEgMC0uOS0zLjgtMS43LTcuNi0yLjYtMTEuMy0uNC0xLjUtLjYtMy4xLTEuMS00LjYtMS43LS4yLTMuNC0uMi01LjItLjItNS4xIDAtMTAuMSAwLTE1LjIgMC0xLjcgMC0zLjMgLjEtNSAwIDAtLjQtLjMtLjkgLjItMS4yIDEuMy0uNyAyLjctLjkgNC4xLTEuNCAzLjQtMS4xIDYuOS0yLjIgMTAuMy0zLjMgMS40LS41IDIuOS0uNyA0LjItMS41IDAtLjYgMC0xLjEgMC0xLjctMS4yLS42LTIuNS0uOS0zLjgtMS4zLTMuMS0xLTYuMy0yLTkuNC0zLTEuOC0uNi0zLjctMS01LjQtMS44IDAtLjQtLjEtLjctLjEtMS4xIDUuMS0uMiAxMC4yIC4xIDE1LjMtLjEgMy40LS4xIDYuNyAuMSAxMC4xLS4xIC4xLS40IC4zLS44IC40LTEuMiAxLjEtNC45IDIuMy05LjggMy40LTE0Ljd6bTYtLjJjLjQgMCAuNyAuMSAxLjEgLjIgMSAzLjggMS43IDcuOCAyLjcgMTEuNiAuNCAxLjQgLjYgMi45IDEgNC4zIDIuNSAuMiA1LjEgMCA3LjYgMCA1LjIgLjEgMTAuMyAuMSAxNS41IC4xIC44IDAgMS41IDAgMi4zIC4xIDAgLjQtLjEgLjctLjEgMS4xLTEuOCAuOC0zLjggMS4yLTUuNyAxLjktMy43IDEuMi03LjUgMi40LTExLjIgMy42LS42IC4yLTEuMSAuNC0xLjcgLjYtLjIgLjYtLjIgMS4xLS4xIDEuNyAuOSAuNSAxLjggLjggMi44IDEuMSA0LjkgMS41IDkuNyAzLjEgMTQuNiA0LjYgLjQgLjEgLjggLjMgMS4xIC41IC40IC4zIC4yIC44IC4yIDEuMi0xLjcgLjEtMy4zIDAtNSAwLTUuMiAwLTEwLjMgMC0xNS41IDAtMS42IDAtMy4yIDAtNC44IC4yLS41IDEuNy0uNyAzLjQtMS4yIDUuMS0uOSAzLjYtMS41IDcuMi0yLjUgMTAuOC0uNCAwLS43IDAtMS4xIC4xLS4zLTEuNy0uMi0zLjUtLjItNS4ybDAtMzguMWMwLTEuOC0uMS0zLjYgLjEtNS40em0tMTg2IDQ1YzEuMS0yLjIgMi4xLTQuNCAzLjQtNi41LTEuOCA3LjYtMi45IDE1LjMtMy42IDIzLS44IDcuNy0uOCAxNS41LS41IDIzLjIgMS4xIDE5LjkgNS41IDM5LjggMTQuMiA1Ny45IDMgNiA2LjQgMTEuOCAxMC41IDE3LjEgNi4xIDcuNSAxMi41IDE0LjggMTkuOCAyMS4xIDQuOCA0LjEgMTAgNy44IDE1LjUgMTAuOCAzLjMgMS43IDYuNSAzLjQgOS45IDQuNyA1IDIgMTAuMiAzLjYgMTUuNCA0LjkgMy44IDEgNy44IDEuNCAxMS41IDIuNyA1IDEuNiA5LjUgNC42IDEzIDguNCA0LjkgNS4yIDguMSAxMS45IDEwLjIgMTguNyAxIDIuOSAxLjYgNS45IDIuMiA4LjkgLjIgLjggLjIgMS41IC4yIDIuMy02LjUgMi44LTEzLjMgNS4xLTIwLjMgNi4yLTQuMSAuOC04LjMgMS0xMi41IDEuMS0xMC4yIC4yLTIwLjUtMS44LTMwLjEtNS4xLTMuNy0xLjQtNy41LTIuOS0xMS00LjctOC4xLTMuOC0xNS42LTguNy0yMi41LTE0LjUtMi45LTIuNi01LjgtNS4xLTguNC04LTkuMi05LjgtMTYuMy0yMS40LTIxLjgtMzMuNy0yLjQtNS41LTQuNi0xMS4yLTYuNC0xNy0xLjItMy45LTIuNC03LjktMy4zLTExLjktLjctMi45LTEuMi01LjktMS45LTguOS0uNS0yLjEtLjctNC4zLTEtNi41LS44LTUuNC0xLjMtMTAuOS0xLjMtMTYuNCAuMS02LjIgLjItMTIuNCAxLjEtMTguNSAuNC0yLjkgLjctNS43IDEuMi04LjYgMS01LjcgMi4xLTExLjQgMy43LTE2LjkgMy4xLTExLjYgNy41LTIzIDEyLjctMzMuOHptMzYzLjctNi40YzEuMSAxLjcgMS45IDMuNSAyLjggNS4zIDIuMSA0LjUgNC4yIDguOSA2IDEzLjUgNy42IDE4LjggMTIuMyAzOC44IDEzIDU5IDAgMS44IC4xIDMuNSAuMSA1LjMgLjEgOS42LTEuMyAxOS4xLTMuMiAyOC41LS43IDMuNi0xLjUgNy4yLTIuNiAxMC43LTQgMTQuNy0xMCAyOS0xOC40IDQxLjgtOC4yIDEyLjYtMTkgMjMuNS0zMS44IDMxLjQtNS43IDMuNi0xMS44IDYuNi0xOCA5LjItNS44IDIuMi0xMS43IDQtMTcuOCA1LjEtNi40IDEtMTIuOSAxLjUtMTkuNCAxLjItNy45LS41LTE1LjgtMi4xLTIzLjItNC44LTEuOS0uOC0zLjktMS41LTUuOC0yLjMtLjItMS41IC4yLTMgLjUtNC41IDEuMi01LjcgMy0xMS40IDUuNy0xNi42IDIuNC00LjUgNS41LTguNyA5LjUtMTEuOSAyLjQtMi4xIDUuMi0zLjYgOC4yLTQuOCAzLjYtMS41IDcuNS0yIDExLjItMi44IDcuMi0xLjcgMTQuNC0zLjkgMjEuMi03IDEwLjMtNC43IDE5LjctMTEuNCAyNy42LTE5LjUgMS42LTEuNiAzLjItMy4yIDQuNy00LjkgMy40LTMuOCA2LjctNy42IDkuOC0xMS41IDcuNS0xMC4xIDEyLjgtMjEuNiAxNi43LTMzLjUgMS42LTUuMyAzLjItMTAuNiA0LjItMTYuMSAuNi0yLjkgMS01LjggMS41LTguNyAuOS02LjEgMS42LTEyLjIgMS43LTE4LjQgLjEtNi42IC4xLTEzLjMtLjUtMTkuOS0uNy04LTEuOS0xNi0zLjctMjMuOHoiXX0sZHBlPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6InN1c2UiLGljb246WzY0MCw1MTIsW10sImY3ZDYiLCJNNjA0LjUgMjEwYTEwLjQgMTAuNCAwIDEgMSAtMTEuNC0xNy40IDEwLjQgMTAuNCAwIDEgMSAxMS40IDE3LjR6TTYyMSAxODcuMmEzOC41IDM4LjUgMCAxIDEgLTc1IDE3LjYgMzguNSAzOC41IDAgMSAxIDc1LTE3LjZ6TTQzMy43IDMzNi43YzMuMiA0LjYgNS44IDkgNy4zIDEzLjQgMSAzLjEgMi40IDcuMyA1LjUgOC45IC4yIC4xIC4zIC4yIC41IC4yIDUuNyAyLjEgMjAuMyAxLjcgMjAuMyAxLjdsMjYuOCAwYzIuMyAwIDIyLjQgMCAyMS45LTIuMy0yLjQtMTAuOC0xNC45LTEyLjctMjQuNC0xOC4zLTguNy01LjItMTctMTEuMS0yMC44LTIxLjMtMi01LjItLjgtMTcuNCAyLjYtMjEuOCAyLjUtMy4yIDYuMS01LjMgMTAtNi4yIDQuMy0uOSA4LjgtLjEgMTMuMSAuMyA1LjMgLjUgMTAuNiAxLjUgMTUuOSAyLjIgMTAuMyAxLjMgMjAuNiAxLjkgMzEgMS42IDE3LjEtLjUgMzQuMi0zLjIgNTAuNC04LjcgMTEuMy0zLjggMjIuNC04LjkgMzItMTYuMSAxMC45LTguMSA4LjEtNy40LTMtNi4yLTEzLjMgMS40LTI2LjYgMS42LTM5LjkgLjgtMTIuNC0uNy0yNC43LTIuMi0zNS45LTcuOS04LjgtNC42LTE2LjQtOS4xLTIzLjQtMTYuMi0xLTEuMS0xLjctNC4yIC4yLTYuMiAxLjktMS45IDUuOC0uOCA3IC4yIDEyLjIgMTAuMiAzMC41IDE4LjYgNDkuMyAxOS41IDEwLjIgLjUgMjAuMSAuNyAzMC40IC4zIDUuMS0uMiAxMi44LS4yIDE3LjktLjMgMi42IDAgOS44IC43IDExLjItMi4xIC40LS44IC40LTEuOCAuMy0yLjctMS41LTQwLjktNC41LTg2LjktNDcuMy0xMDYuNS0zMS45LTE0LjYtNzkuNy0zNy4yLTk5LjktNDYuNi00LjctMi4yLTEwLjIgMS4zLTEwLjIgNi41IDAgMTMuNiAuNyAzMy4zIC43IDUxLjEtOS43LTkuOS0yNi0xNi4xLTM4LjQtMjEuOC0xNC4xLTYuNS0yOC43LTEyLTQzLjUtMTYuNi0yOS44LTkuMi02MC43LTE0LjktOTEuNy0xOC0zNS4yLTMuNS03MS0xLjgtMTA1LjcgNS4zLTU2LjkgMTIuMi0xMTMuMSAzOS43LTE1NS43IDc5LjgtMjYuMSAyNC42LTQ2LjYgNTkuNy00OCA5NS4yLTIgNTAuMyAxMi4xIDc3LjMgMzggMTA1LjIgNDEuMyA0NC40IDEzMC4yIDUwLjYgMTY2LjItMiAxNi4yLTIzLjcgMTkuNy01NS44IDgtODItMTEuOC0yNi4yLTM4LjgtNDUuMS02Ny40LTQ2LTIyLjItLjctNDUuOSAxMC42LTU0LjUgMzEuMS02LjUgMTUuNy0yLjggMzUuMSA5IDQ3LjMgNC42IDQuOCAxMC45IDguNyAxNy43IDcuMSA0LS45IDcuNC0zLjkgOC04IC45LTYtNC40LTkuOS03LjYtMTQuNS01LjgtOC4zLTQuNy0yMC45IDIuNy0yNy45IDYuMi02IDE1LjMtNy44IDIzLjktNy43IDggMCAxNi4yIDEuNCAyMy4xIDUuNSA5LjcgNS43IDE2LjIgMTYuMiAxOC40IDI3LjIgNi43IDMzLTIwLjIgNTkuOS01Ni42IDYyLTE4LjYgMS4xLTM3LjYtMy44LTUyLjEtMTUuNS0zNi45LTI5LjgtNDUuOS05MC4zLTMuOC0xMjIuNyA0MC0zMC43IDkwLjQtMjIuOCAxMjAuMi02LjggMjMuOCAxMi44IDQxLjUgMzMuNiA1NSA1Ni43IDYuNyAxMS42IDEyLjUgMjMuNyAxNy44IDM2LjEgNS4xIDExLjggOS45IDIzLjggMjAuMiAzMi41IDYuOCA1LjggMTUuMiA1LjYgMjQuMSA1LjZsNTAuOCAwYzYuOSAwIDUuMi00LjYgMi4yLTcuNy02LjctNi45LTE2LjQtOC40LTI1LjQtMTAuOS0yMC41LTUuNi0xOC40LTMyLjgtMTIuNy0zMi44IDE4LjMgMCAxOC45IC42IDM0LjkgLjMgMjMuMi0uMyAzMC4yLTEuNyA0OC4zIDUgOS43IDMuNiAxOSAxMy4xIDI1LjEgMjEuN3oiXX0saHBlPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImFwcC1zdG9yZS1pb3MiLGljb246WzQ0OCw1MTIsW10sImYzNzAiLCJNNDAwIDMyTDQ4IDMyQzIxLjUgMzIgMCA1My41IDAgODBMMCA0MzJjMCAyNi41IDIxLjUgNDggNDggNDhsMzUyIDBjMjYuNSAwIDQ4LTIxLjUgNDgtNDhsMC0zNTJjMC0yNi41LTIxLjUtNDgtNDgtNDh6TTEyNyAzODQuNWMtNS41IDkuNi0xNy44IDEyLjgtMjcuMyA3LjMtOS42LTUuNS0xMi44LTE3LjgtNy4zLTI3LjNsMTQuMy0yNC43YzE2LjEtNC45IDI5LjMtMS4xIDM5LjYgMTEuNEwxMjcgMzg0LjV6bTEzOC45LTUzLjlMODQgMzMwLjZjLTExIDAtMjAtOS0yMC0yMHM5LTIwIDIwLTIwbDUxIDAgNjUuNC0xMTMuMi0yMC41LTM1LjRjLTUuNS05LjYtMi4yLTIxLjggNy4zLTI3LjMgOS42LTUuNSAyMS44LTIuMiAyNy4zIDcuM2w4LjkgMTUuNCA4LjktMTUuNGM1LjUtOS42IDE3LjgtMTIuOCAyNy4zLTcuMyA5LjYgNS41IDEyLjggMTcuOCA3LjMgMjcuM2wtODUuOCAxNDguNiA2Mi4xIDBjMjAuMiAwIDMxLjUgMjMuNyAyMi43IDQwem05OC4xIDBsLTI5IDAgMTkuNiAzMy45YzUuNSA5LjYgMi4yIDIxLjgtNy4zIDI3LjMtOS42IDUuNS0yMS44IDIuMi0yNy4zLTcuMy0zMi45LTU2LjktNTcuNS05OS43LTc0LTEyOC4xLTE2LjctMjktNC44LTU4IDcuMS02Ny44IDEzLjEgMjIuNyAzMi43IDU2LjcgNTguOSAxMDJsNTIgMGMxMSAwIDIwIDkgMjAgMjAgMCAxMS4xLTkgMjAtMjAgMjB6Il19LHBwZT17cHJlZml4OiJmYWIiLGljb25OYW1lOiJ1bHRyYWx5dGljcy15b2xvIixpY29uOls1MTIsNTEyLFtdLCJlODZmIiwiTTM4My41IDEwLjhjNjEuOC0uMiAxMTIuMyA1MC42IDExMi4zIDExMi45LS4yIDIuNyAwIDAtLjEgMy4zbC4zIC4zYy0xLjUgODkuOS01MyAxNjguNC0xMjcuNCAyMDguNWwwIDUyLjhjMCA2Mi42LTUxLjEgMTEzLjUtMTEzLjcgMTEyLjktNjItLjYtMTExLjQtNTIuMi0xMTEuNC0xMTQuM2wwLTUxLjJjLTQwLjctMjEuOS03NC41LTU1LjItOTctOTUuNiAyMy4yIDE2LjUgNTEuNyAyNiA4MiAyNS45IDc4LjYtLjIgMTQyLjItNjQgMTQyLjMtMTQyLjUgLjEtNjIuMyA1MC41LTExMi43IDExMi45LTExMi45em0tMjU1IDIyNS44YTExMi45IDExMi45IDAgMSAxIDAtMjI1LjggMTEyLjkgMTEyLjkgMCAxIDEgMCAyMjUuOHoiXX0seEU9e3ByZWZpeDoiZmFiIixpY29uTmFtZToic3F1YXJlLWRyaWJiYmxlIixpY29uOls0NDgsNTEyLFsiZHJpYmJibGUtc3F1YXJlIl0sImYzOTciLCJNMTY1LjkgMTMyLjVjLTM4LjMgMTgtNjYuOCA1My4zLTc1LjcgOTUuNyA2LjEgLjEgNjIuNCAuMyAxMjYuNC0xNi43LTIyLjctNDAuMi00Ny4xLTc0LjEtNTAuNy03OXptMjYuMS05LjFjMy44IDUuMSAyOC42IDM4LjkgNTEgODAgNDguNi0xOC4zIDY5LjEtNDUuOSA3MS42LTQ5LjQtMzMuNi0yOS44LTc5LjMtNDEuMS0xMjIuNi0zMC42ek0yNzcuNCAzODJjLTItMTItMTAtNTMuOC0yOS4yLTEwMy42LTU1LjEgMTguOC05My44IDU2LjQtMTA4LjEgODUuNiA0MC41IDMxLjYgOTMuMyAzNi43IDEzNy4zIDE4ek0yMjcuOCAyMzIuNkMxNTkuNiAyNTMgOTMuNCAyNTIuMiA4Ny40IDI1MmwwIDQuMmMwIDM1LjEgMTMuMyA2Ny4xIDM1LjEgOTEuNCAyMi4yLTM3LjkgNjcuMS03Ny45IDExNi41LTkxLjgtMy40LTcuOC03LjItMTUuNS0xMS4xLTIzLjJsLS4xIDB6bTcyLjUgMTM2LjljMzAuNy0yMC43IDUyLjUtNTMuNiA1OC42LTkxLjYtNC42LTEuNS00Mi4zLTEyLjctODUuMS01LjggMTcuOSA0OS4xIDI1LjEgODkuMSAyNi41IDk3LjR6bS0zNC44LTExOWM0NS41LTUuNyA5MC43IDMuNCA5NS4yIDQuNC0uMy0zMi4zLTExLjgtNjEuOS0zMC45LTg1LjEtMi45IDMuOS0yNS44IDMzLjItNzYuMyA1My45IDQuOCA5LjggOC4zIDE3LjggMTIgMjYuOHpNMzg0IDMyTDY0IDMyQzI4LjcgMzIgMCA2MC43IDAgOTZMMCA0MTZjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMzIwIDBjMzUuMyAwIDY0LTI4LjcgNjQtNjRsMC0zMjBjMC0zNS4zLTI4LjctNjQtNjQtNjR6TTIyNCA5NmExNjAgMTYwIDAgMSAxIDAgMzIwIDE2MCAxNjAgMCAxIDEgMC0zMjB6Il19LHVwZT14RSxmcGU9e3ByZWZpeDoiZmFiIixpY29uTmFtZToidWlraXQiLGljb246WzQ0OCw1MTIsW10sImY0MDMiLCJNNDQzLjkgMTI4bDAgMjU2LTIyNS45IDEyOC0yMTgtMTI4IDAtMjE0LjMgODcuNiA0NS4xIDAgMTE3IDEzMy41IDc1LjUgMTM1LjgtNzUuNSAwLTE1MS0xMDEuMS01Ny42IDg3LjYtNTMuMSAxMDAuNSA1Ny45ek0zMDguNiA0OS4xbC04NC44LTQ5LjEtODguNiA1NC44IDg2IDQ3LjMgODcuNC01M3oiXX0sbXBlPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6InN1cGVycG93ZXJzIixpY29uOls0NDgsNTEyLFtdLCJmMmRkIiwiTTQ0OCAzMmMtODMuMyAxMS0xNjYuOCAyMi0yNTAgMzMtOTIgMTIuNS0xNjMuMyA4Ni43LTE2OSAxODAtMy4zIDU1LjUgMTggMTA5LjUgNTcuOCAxNDguMkwwIDQ4MGM4My4zLTExIDE2Ni41LTIyIDI0OS44LTMzIDkxLjgtMTIuNSAxNjMuMy04Ni44IDE2OC43LTE3OS44IDMuNS01NS41LTE4LTEwOS41LTU3LjctMTQ4LjJMNDQ4IDMyek0zNjguMyAyNjQuM2MtNC4yIDc5LjUtNzQgMTM5LjItMTUyLjggMTM0LjUtNzkuNS00LjctMTQwLjctNzEtMTM2LjMtMTUxIDQuNS03OS4yIDc0LjMtMTM5LjMgMTUzLTEzNC41IDc5LjMgNC43IDE0MC41IDcxIDEzNi4xIDE1MXoiXX0sZ3BlPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6InlvdXR1YmUiLGljb246WzU3Niw1MTIsWzYxODAyXSwiZjE2NyIsIk01NDkuNyAxMjQuMUM1NDMuNSAxMDAuNCA1MjQuOSA4MS44IDUwMS40IDc1LjUgNDU4LjkgNjQgMjg4LjEgNjQgMjg4LjEgNjRTMTE3LjMgNjQgNzQuNyA3NS41QzUxLjIgODEuOCAzMi43IDEwMC40IDI2LjQgMTI0LjEgMTUgMTY3IDE1IDI1Ni40IDE1IDI1Ni40czAgODkuNCAxMS40IDEzMi4zYzYuMyAyMy42IDI0LjggNDEuNSA0OC4zIDQ3LjggNDIuNiAxMS41IDIxMy40IDExLjUgMjEzLjQgMTEuNXMxNzAuOCAwIDIxMy40LTExLjVjMjMuNS02LjMgNDItMjQuMiA0OC4zLTQ3LjggMTEuNC00Mi45IDExLjQtMTMyLjMgMTEuNC0xMzIuM3MwLTg5LjQtMTEuNC0xMzIuM3pNMjMyLjIgMzM3LjZsMC0xNjIuNCAxNDIuNyA4MS4yLTE0Mi43IDgxLjJ6Il19LGJwZT17cHJlZml4OiJmYWIiLGljb25OYW1lOiJlbWJlciIsaWNvbjpbNjQwLDUxMixbXSwiZjQyMyIsIk02MzkuOSAyNTQuNmMtMS4xLTEwLjctMTAuNy02LjgtMTAuNy02LjhzLTE1LjYgMTIuMS0yOS4zIDEwLjdjLTEzLjctMS4zLTkuNC0zMi05LjQtMzJzMy0yOC4xLTUuMS0zMC40Yy04LjEtMi40LTE4IDcuMy0xOCA3LjNzLTEyLjQgMTMuNy0xOC4zIDMxLjJsLTEuNiAuNXMxLjktMzAuNi0uMy0zNy42Yy0xLjYtMy41LTE2LjQtMy4yLTE4LjggM3MtMTQuMiA0OS4yLTE1IDY3LjJjMCAwLTIzLjEgMTkuNi00My4zIDIyLjhzLTI1LTkuNC0yNS05LjQgNTQuOC0xNS4zIDUyLjktNTkuMS00NC4yLTI3LjYtNDktMjRjLTQuNiAzLjUtMjkuNCAxOC40LTM2LjYgNTkuNy0uMiAxLjQtLjcgNy41LS43IDcuNXMtMjEuMiAxNC4yLTMzIDE4YzAgMCAzMy01NS42LTcuMy04MC45LTExLjQtNi44LTIxLjMtLjUtMjcuMiA1LjMgMTMuNi0xNy4zIDQ2LjQtNjQuMiAzNi45LTEwNS4yLTUuOC0yNC40LTE4LTI3LjEtMjkuMi0yMy4xLTE3IDYuNy0yMy41IDE2LjctMjMuNSAxNi43cy0yMiAzMi0yNy4xIDc5LjUtMTIuNiAxMDUuMS0xMi42IDEwNS4xLTEwLjUgMTAuMi0yMC4yIDEwLjctNS40LTI4LjctNS40LTI4LjcgNy41LTQ0LjYgNy01Mi4xLTEuMS0xMS42LTkuOS0xNC4yYy04LjktMi43LTE4LjUgOC42LTE4LjUgOC42cy0yNS41IDM4LjctMjcuNyA0NC42bC0xLjMgMi40LTEuMy0xLjZzMTgtNTIuNyAuOC01My41LTI4LjUgMTguOC0yOC41IDE4LjgtMTkuNiAzMi44LTIwLjQgMzYuNWwtMS4zLTEuNnM4LjEtMzguMiA2LjQtNDcuNmMtMS42LTkuNC0xMC41LTcuNS0xMC41LTcuNXMtMTEuMy0xLjMtMTQuMiA1LjktMTMuNyA1NS4zLTE1IDcwLjdjMCAwLTI4LjIgMjAuMi00Ni44IDIwLjQtMTguNSAuMy0xNi43LTExLjgtMTYuNy0xMS44czY4LTIzLjMgNDkuNC02OS4yYy04LjMtMTEuOC0xOC0xNS41LTMxLjctMTUuMy0xMy43IC4zLTMwLjMgOC42LTQxLjMgMzMuMy01LjMgMTEuOC02LjggMjMtNy44IDMxLjUgMCAwLTEyLjMgMi40LTE4LjgtMi45cy0xMCAwLTEwIDAtMTEuMiAxNC0uMSAxOC4zIDI4LjEgNi4xIDI4LjEgNi4xYzEuNiA3LjUgNi4yIDE5LjUgMTkuNiAyOS43IDIwLjIgMTUuMyA1OC44LTEuMyA1OC44LTEuM2wxNS45LTguOHMuNSAxNC42IDEyLjEgMTYuNyAxNi40IDEgMzYuNS00Ny45YzExLjgtMjUgMTIuNi0yMy42IDEyLjYtMjMuNmwxLjMtLjNzLTkuMSA0Ni44LTUuNiA1OS43QzE4Ny43IDMxOS40IDIwMyAzMTggMjAzIDMxOHM4LjMgMi40IDE1LTIxLjIgMTkuNi00OS45IDE5LjYtNDkuOWwxLjYgMHMtNS42IDQ4LjEgMyA2My43IDMwLjkgNS4zIDMwLjkgNS4zIDE1LjYtNy44IDE4LTEwLjJjMCAwIDE4LjUgMTUuOCA0NC42IDEyLjkgNTguMy0xMS41IDc5LjEtMjUuOSA3OS4xLTI1LjlzMTAgMjQuNCA0MS4xIDI2LjdjMzUuNSAyLjcgNTQuOC0xOC42IDU0LjgtMTguNnMtLjMgMTMuNSAxMi4xIDE4LjYgMjAuNy0yMi44IDIwLjctMjIuOGwyMC43LTU3LjIgMS45IDBzMS4xIDM3LjMgMjEuNSA0My4yIDQ3LTEzLjcgNDctMTMuNyA2LjQtMy41IDUuMy0xNC4zem0tNTc4IDUuM2MuOC0zMiAyMS44LTQ1LjkgMjktMzkgNy4zIDcgNC42IDIyLTkuMSAzMS40LTEzLjcgOS41LTE5LjkgNy42LTE5LjkgNy42ek0zMzQuNyAxMzYuMXMxOS4xLTQ5LjcgMjMuNi0yNS41LTQwIDk2LjItNDAgOTYuMmMuNS0xNi4yIDE2LjQtNzAuNyAxNi40LTcwLjd6bTIyLjggMTM4LjRjLTEyLjYgMzMtNDMuMyAxOS42LTQzLjMgMTkuNnMtMy41LTExLjggNi40LTQ0LjkgMzMuMy0yMC4yIDMzLjMtMjAuMiAxNi4yIDEyLjQgMy42IDQ1LjV6bTg0LjYtMTQuNnMtMy0xMC41IDguMS0zMC42YzExLTIwLjIgMTkuNi05LjEgMTkuNi05LjFzOS40IDEwLjItMS4zIDI1LjUtMjYuNCAxNC4yLTI2LjQgMTQuMnoiXX0sdnBlPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImJvb3RzdHJhcCIsaWNvbjpbNTc2LDUxMixbXSwiZjgzNiIsIk0zMzMuNSAyMDEuNGMwLTIyLjEtMTUuNi0zNC4zLTQzLTM0LjNsLTUwLjQgMCAwIDcxLjIgNDIuNSAwYzMyLjgtLjEgNTAuOS0xMy4zIDUwLjktMzYuOXpNNTE3IDE4OC42Yy05LjUtMzAuOS0xMC45LTY4LjgtOS44LTk4LjEgMS4xLTMwLjUtMjIuNy01OC41LTU0LjctNTguNUwxMjMuNyAzMmMtMzIuMSAwLTU1LjggMjguMS01NC43IDU4LjUgMSAyOS4zLS4zIDY3LjItOS44IDk4LjEtOS42IDMxLTI1LjcgNTAuNi01Mi4yIDUzLjFsMCAyOC41YzI2LjQgMi41IDQyLjYgMjIuMSA1Mi4yIDUzLjEgOS41IDMwLjkgMTAuOSA2OC44IDkuOCA5OC4xLTEuMSAzMC41IDIyLjcgNTguNSA1NC43IDU4LjVsMzI4LjcgMGMzMi4xIDAgNTUuOC0yOC4xIDU0LjctNTguNS0xLTI5LjMgLjMtNjcuMiA5LjgtOTguMSA5LjYtMzEgMjUuNy01MC42IDUyLjEtNTMuMWwwLTI4LjVjLTI2LjMtMi41LTQyLjUtMjIuMS01Mi01My4xek0zMDAuMiAzNzUuMWwtOTcuOSAwIDAtMjM4LjMgOTcuNCAwYzQzLjMgMCA3MS43IDIzLjQgNzEuNyA1OS40IDAgMjUuMy0xOS4xIDQ3LjktNDMuNSA1MS44bDAgMS4zYzMzLjIgMy42IDU1LjUgMjYuNiA1NS41IDU4LjMgMCA0Mi4xLTMxLjMgNjcuNS04My4yIDY3LjV6bS0xMC0xMDguN2wtNTAuMSAwIDAgNzguNCA1Mi4zIDBjMzQuMiAwIDUyLjMtMTMuNyA1Mi4zLTM5LjUgMC0yNS43LTE4LjYtMzguOS01NC41LTM4Ljl6Il19LHlwZT17cHJlZml4OiJmYWIiLGljb25OYW1lOiJpdHVuZXMiLGljb246WzQ0OCw1MTIsW10sImYzYjQiLCJNMjIzLjYgODAuM2ExNzEuMyAxNzEuMyAwIDEgMCAuMiAzNDIuNSAxNzEuMyAxNzEuMyAwIDEgMCAtLjItMzQyLjV6bTc5LjQgMjQwYy0zLjIgMTMuNi0xMy41IDIxLjItMjcuMyAyMy44LTEyLjEgMi4yLTIyLjIgMi44LTMxLjktNS0xMS44LTEwLTEyLTI2LjQtMS40LTM2LjggOC40LTggMjAuMy05LjYgMzgtMTIuOCAzLS41IDUuNi0xLjIgNy43LTMuNyAzLjItMy42IDIuMi0yIDIuMi04MC44IDAtNS42LTIuNy03LjEtOC40LTYuMS00IC43LTkxLjkgMTcuMS05MS45IDE3LjEtNSAxLjEtNi43IDIuNi02LjcgOC4zIDAgMTE2LjEgLjUgMTEwLjgtMS4yIDExOC41LTIuMSA5LTcuNiAxNS44LTE0LjkgMTkuNi04LjMgNC42LTIzLjQgNi42LTMxLjQgNS4yLTIxLjQtNC0yOC45LTI4LjctMTQuNC00Mi45IDguNC04IDIwLjMtOS42IDM4LTEyLjggMy0uNSA1LjYtMS4yIDcuNy0zLjcgNS01LjcgLjktMTI3IDIuNi0xMzMuNyAuNC0yLjYgMS41LTQuOCAzLjUtNi40IDIuMS0xLjcgNS44LTIuNyA2LjctMi43IDEwMS0xOSAxMTMuMy0yMS40IDExNS4xLTIxLjQgNS43LS40IDkgMyA5IDguNy0uMSAxNzAuNiAuNCAxNjEuNC0xIDE2Ny42ek0zNDUuMiAzMkwxMDIuOCAzMkM0NS45IDMyIDAgNzcuOSAwIDEzNC44TDAgMzc3LjJDMCA0MzQuMSA0NS45IDQ4MCAxMDIuOCA0ODBsMjQyLjQgMGM1NyAwIDEwMi44LTQ1LjkgMTAyLjgtMTAyLjhsMC0yNDIuNEM0NDggNzcuOSA0MDIuMSAzMiAzNDUuMiAzMnpNMjIzLjYgNTlhMTkyLjUgMTkyLjUgMCAxIDEgMCAzODUgMTkyLjUgMTkyLjUgMCAxIDEgMC0zODV6Il19LHdFPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6InNxdWFyZS14aW5nIixpY29uOls0NDgsNTEyLFsieGluZy1zcXVhcmUiXSwiZjE2OSIsIk00NDggOTZjMC0zNS4zLTI4LjctNjQtNjQtNjRMNjQgMzJDMjguNyAzMiAwIDYwLjcgMCA5NkwwIDQxNmMwIDM1LjMgMjguNyA2NCA2NCA2NGwzMjAgMGMzNS4zIDAgNjQtMjguNyA2NC02NGwwLTMyMHpNOTMuOCAzMjAuMmMtNS41IDAtOC43LTUuMy02LTEwLjNsNDkuMy04Ni43Yy4xIDAgLjEtLjEgMC0uMmwtMzEuNC01NGMtMy01LjYgLjItMTAuMSA2LTEwLjFsNDYuNiAwYzUuMiAwIDkuNSAyLjkgMTIuOSA4LjdsMzEuOSA1NS4zYy0xLjMgMi4zLTE4IDMxLjctNTAuMSA4OC4yLTMuNSA2LjItNy43IDkuMS0xMi42IDkuMWwtNDYuNiAwem0xNjMuNS0zMy40bDAgLjIgNjUuNSAxMTljMi44IDUuMSAuMSAxMC4xLTYgMTAuMWwtNDYuNiAwYy01LjUgMC05LjctMi45LTEyLjktOC43bC02Ni0xMjAuM2MxLjgtMy4yIDIyLjktNDAuNCA2My4zLTExMS42IDExLjctMjAuNyAyNS4xLTQ0LjMgNDAuMS03MC44IDMuMy01LjggNy40LTguNyAxMi41LTguN2w0Ni45IDBjNS43LS4xIDguOCA0LjcgNiAxMEwyNTcuMyAyODYuOHoiXX0seHBlPXdFLHdwZT17cHJlZml4OiJmYWIiLGljb25OYW1lOiJjc3MzLWFsdCIsaWNvbjpbMzg0LDUxMixbXSwiZjM4YiIsIk0wIDMyTDM0LjkgNDI3LjggMTkyIDQ4MCAzNDkuMSA0MjcuOCAzODQgMzIgMCAzMnptMzEzLjEgODBsLTQuOCA0Ny4zLTExNS4zIDQ5LjMtLjMgLjEgMTExLjUgMC0xMi44IDE0Ni42LTk4LjIgMjguNy05OC44LTI5LjItNi40LTczLjkgNDguOSAwIDMuMiAzOC4zIDUyLjYgMTMuMyA1NC43LTE1LjQgMy43LTYxLjYtMTY2LjMtLjUgMC0uMS0uMiAuMS0zLjYtNDYuMyAxMTIuMS00Ni43IDYuNS0yLjctMTIyLjkgMC01LjgtNDcuMyAyNDIuMiAweiJdfSxNcGU9e3ByZWZpeDoiZmFiIixpY29uTmFtZToic3F1YXJlc3BhY2UiLGljb246WzUxMiw1MTIsW10sImY1YmUiLCJNMTg2LjEgMzQzLjNjLTkuNyA5LjctOS43IDI1LjMgMCAzNC45czI1LjMgOS42IDM0LjkgMEwzNzguMyAyMjEuMWMxOS4zLTE5LjMgNTAuNi0xOS4zIDY5LjkgMHMxOS4zIDUwLjYgMCA2OS45TDI5NCA0NDUuMWMxOS4zIDE5LjMgNTAuNSAxOS4zIDY5LjggMGwwIDAgMTE5LjMtMTE5LjJjMzguNi0zOC42IDM4LjYtMTAxLjEgMC0xMzkuNy0zOC42LTM4LjYtMTAxLjItMzguNi0xMzkuNyAwTDE4Ni4xIDM0My4zek00MzAuNyAyMzguNWMtOS43LTkuNy0yNS4zLTkuNy0zNC45IDBMMjM4LjUgMzk1LjdjLTE5LjMgMTkuMy01MC41IDE5LjMtNjkuOCAwbDAgMGMtOS42LTkuNi0yNS4zLTkuNy0zNC45IDBsMCAwYy05LjcgOS42LTkuNyAyNS4zIDAgMzQuOWwwIDBjMzguNiAzOC42IDEwMS4xIDM4LjYgMTM5LjcgMEw0MzAuNyAyNzMuNWM5LjYtOS43IDkuNi0yNS4zIDAtMzQuOXptLTI2MiA4Ny4zTDMyNS45IDE2OC43YzkuNi05LjYgOS42LTI1LjMgMC0zNC45LTkuNi05LjYtMjUuMy05LjYtMzQuOSAwTDEzMy43IDI5MC45Yy0xOS4zIDE5LjMtNTAuNiAxOS4zLTY5LjkgMGwwIDBjLTE5LjMtMTkuMy0xOS4zLTUwLjUgMC02OS44bDAgMCAxNTQuMi0xNTQuMmMtMTkuMy0xOS4zLTUwLjUtMTkuMy02OS44IDBsMCAwLTExOS4yIDExOS4zYy0zOC42IDM4LjYtMzguNiAxMDEuMSAwIDEzOS43IDM4LjYgMzguNiAxMDEuMSAzOC42IDEzOS43IDB6TTgxLjMgMjczLjVjOS42IDkuNiAyNS4zIDkuNiAzNC45IDBMMjczLjUgMTE2LjNjMTkuMy0xOS4zIDUwLjYtMTkuMyA2OS44IDBsMCAwYzkuNyA5LjYgMjUuMyA5LjYgMzQuOSAwczkuNi0yNS4zIDAtMzQuOWMtMzguNi0zOC42LTEwMS4xLTM4LjYtMTM5LjcgMEw4MS4zIDIzOC41Yy05LjYgOS42LTkuNiAyNS4zIDAgMzQuOWwwIDB6Il19LHpwZT17cHJlZml4OiJmYWIiLGljb25OYW1lOiJ0cmVsbG8iLGljb246WzQ0OCw1MTIsW10sImYxODEiLCJNMzkyLjMgMzJMNTYuMSAzMmMtMzEgMC01Ni4xIDI1LjEtNTYuMSA1Ni0uMSAwIDAtNCAwIDMzNiAwIDMwLjkgMjUuMSA1NiA1NiA1NmwzMzYuMiAwYzMwLjgtLjIgNTUuNy0yNS4yIDU1LjctNTZsMC0zMzZjLjEtMzAuOC0yNC44LTU1LjgtNTUuNi01NnpNMTk3IDM3MS4zYy0uMiAxNC43LTEyLjEgMjYuNi0yNi45IDI2LjZsLTgyLjcgMGMtMTQuOCAuMS0yNi45LTExLjgtMjctMjYuNmwwLTI1NC4yYzAtMTQuOCAxMi0yNi45IDI2LjktMjYuOWw4Mi45IDBjMTQuOCAwIDI2LjkgMTIgMjYuOSAyNi45bDAgMjU0LjItLjEgMHptMTkzLjEtMTEyYzAgMTQuOC0xMiAyNi45LTI2LjkgMjYuOWwtODEgMGMtMTQuOCAwLTI2LjktMTItMjYuOS0yNi45bDAtMTQyLjFjMC0xNC44IDEyLTI2LjkgMjYuOC0yNi45bDgxLjEgMGMxNC44IDAgMjYuOSAxMiAyNi45IDI2LjlsMCAxNDIuMXoiXX0sa3BlPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6InZpYWRlbyIsaWNvbjpbNDQ4LDUxMixbXSwiZjJhOSIsIk0yNzYuNCAxNTAuNWwwIC43Yy0xNy45LTUyLjYtNDIuNi0xMDMuNC03MC44LTE1MS4yIDQzLjMgMjkuMiA2NyAxMDAgNzAuOCAxNTAuNXptMzIuNyAxMjEuN2M3LjYgMTguMiAxMSAzNy41IDExIDU3IDAgNzcuNy01Ny44IDE0MS0xMzcuOCAxMzkuNGwzLjgtLjNjNzQuMi00Ni43IDEwOS4zLTExOC42IDEwOS4zLTIwNS4xIDAtMzguMS02LjUtNzUuOS0xOC45LTExMiAxIDExLjcgMSAyMy43IDEgMzUuNCAwIDkxLjgtMTguMSAyNDEuNi0xMTYuNiAyODAtNjUuNy0xMS40LTExMS4zLTY4LjYtMTExLjMtMTM3LjQgMC03NS42IDU3LjQtMTQyLjMgMTM1LjQtMTQyLjMgMTYuOCAwIDMzLjcgMy4xIDQ5LjEgOS42IDEuNy0xNS4xIDYuNS0yOS45IDEzLjQtNDMuMy0xOS45LTcuMi00MS4yLTEwLjctNjIuNS0xMC43LTE2MS41IDAtMjM4LjcgMTk1LjktMTI5LjkgMzEzLjcgNjcuOSA3NC42IDE5MiA3My45IDI1OS44IDAgNTYuNi02MS4zIDYwLjktMTQyLjQgMzYuNC0yMDEtMTIuNyA4LTI3LjEgMTMuOS00Mi4yIDE3ek00MTguMyAxMS43Yy0zMSA2Ni41LTgxLjMgNDcuMi0xMTUuOCA4MC4xLTEyLjQgMTItMjAuNiAzNC0yMC42IDUwLjUgMCAxNC4xIDQuNSAyNy4xIDEyIDM4LjggNDcuNC0xMSA5OC4zLTQ2IDExOC4yLTkwLjctLjcgNS41LTQuOCAxNC40LTcuMiAxOS4yLTIwLjMgMzUuNy02NC42IDY1LjYtOTkuNyA4NC45IDE0LjggMTQuNCAzMy43IDI1LjggNTUgMjUuOCA3OSAwIDExMC4xLTEzNC42IDU4LjEtMjA4LjZ6Il19LFNwZT17cHJlZml4OiJmYWIiLGljb25OYW1lOiJzZWFyY2hlbmdpbiIsaWNvbjpbNDQ4LDUxMixbXSwiZjNlYiIsIk0yMTQuNiAxMzAuM2wtNjcuMiAyOC4yIDAtMTE1LjMtNTQuNyAxOTAuMyA1NC43LTI0LjIgMCAxMzAuMyA2Ny4yLTIwOS4zek0xMzEuNCAzMy42bC0xLjMgNC43LTE1LjIgNTIuOUM3NC42IDEwNi43IDQ2IDE0NS44IDQ2IDE5MS41IDQ2IDI0My44IDgwLjMgMjg3LjQgMTI5LjQgMjk3bDAgNTMuNkM1MS41IDM0MC4xLTYgMjcyLjQtNiAxOTEuNi02IDExMS4xIDUzLjggNDQuNCAxMzEuNCAzMy42ek00NDIuOCA0ODAuOGMtMTEuMiAxMS4yLTIzLjEgMTIuMy0yOC42IDEwLjUtNS40LTEuOC0yNy4xLTE5LjktNjAuNC00NC40LTMzLjMtMjQuNi0zMy42LTM1LjctNDMtNTYuNy05LjQtMjAuOS0zMC40LTQyLjYtNTcuNS01Mi40bC05LjctMTQuN2MtMjQuNyAxNi45LTUzIDI2LjktODEuMyAyOC43bDIuMS02LjYgMTUuOS00OS41YzQ2LjUtMTEuOSA4MC45LTU0IDgwLjktMTA0LjIgMC01NC41LTM4LjQtMTAyLjEtOTYtMTA3LjFsMC01Mi4xYzgzLjIgNS4xIDE0OC44IDc0LjUgMTQ4LjggMTU5LjMgMCAzMy42LTExLjIgNjQuNy0yOSA5MC40bDE0LjYgOS42YzkuOCAyNy4xIDMxLjUgNDggNTIuNCA1Ny40czMyLjIgOS43IDU2LjggNDNjMjQuNiAzMy4yIDQyLjcgNTQuOSA0NC41IDYwLjNzLjcgMTcuMy0xMC41IDI4LjV6bS05LjktMTcuOWMwLTQuNC0zLjYtOC04LThzLTggMy42LTggOCAzLjYgOCA4IDggOC0zLjYgOC04eiJdfSxDcGU9e3ByZWZpeDoiZmFiIixpY29uTmFtZToidW5yZWFsLWVuZ2luZSIsaWNvbjpbNTEyLDUxMixbXSwiZTg1YyIsIk0yNTYgNTEyYTI1NiAyNTYgMCAxIDAgMC01MTIgMjU2IDI1NiAwIDEgMCAwIDUxMnptNjUuNS0xMTMuN2wtMjUuMS0yOC4zLTQyLjQgNDIuNmMtMjQuMS0uMy00Ny45LTYuMi02OS4zLTE3LjJzLTQwLjEtMjYuOS01NC41LTQ2LjNjNC41IDEuNCA5LjIgMi4zIDEzLjkgMi42IDYuOSAuMSAxNC41LTIuNCAxNC41LTE0LjFsMC0xMTUuMWMuMS0zLS41LTUuOS0xLjctOC42cy0zLjEtNS01LjQtNi45LTUtMy4xLTcuOS0zLjctNS45LS41LTguOCAuMmMtMTkuNiA0LjUtMzUuMyA1My41LTM1LjMgNTMuNS0uMi0yMi42IDQuNS00NSAxMy44LTY1LjZzMjMtMzkgNDAuMS01My44YzIyLjUtMTkuNSA1MC4xLTMyLjIgNzkuNi0zNi43LTIxLjQgMTIuMi0zMy41IDMyLjEtMzMuNSA0OC45IDAgMjYuOSAxNi4yIDIzLjYgMjEgMTkuN2wwIDE1NS4zYy44IDEuOSAxLjkgMy44IDMuMiA1LjUgMi4xIDMgNSA1LjQgOC4yIDdzNi45IDIuNSAxMC41IDIuNWMxNi4yIDAgMzcuMy0xOC41IDM3LjMtMTguNWwwLTEyNS43YzAtMTIuOC05LjYtMjguMi0xOS4zLTMzLjUgMCAwIDE3LjktMy4yIDMxLjcgNy40IDIuNi0zLjIgNS4zLTYuMiA4LjItOS4xIDMyLjItMzEuNiA2Mi41LTQwLjYgODcuNy00NS4xIDAgMC00NS45IDM2LjEtNDUuOSA4NC41IDAgMzYgLjkgMTIzLjggLjkgMTIzLjggMTcgMTYuNCA0Mi40LTcuMyA2NS4yLTMwLjgtNC40IDIxLjMtMjQgNzUuOS04Ni42IDEwNS40eiJdfSxfcGU9e3ByZWZpeDoiZmFiIixpY29uTmFtZToicGF5cGFsIixpY29uOlszODQsNTEyLFtdLCJmMWVkIiwiTTExMS45IDI5NS45Yy0zLjUgMTkuMi0xNy40IDEwOC43LTIxLjUgMTM0LS4zIDEuOC0xIDIuNS0zIDIuNWwtNzQuNiAwYy03LjYgMC0xMy4xLTYuNi0xMi4xLTEzLjlMNTkuMyA0Ni42YzEuNS05LjYgMTAuMS0xNi45IDIwLTE2LjkgMTUyLjMgMCAxNjUuMS0zLjcgMjA0IDExLjQgNjAuMSAyMy4zIDY1LjYgNzkuNSA0NCAxNDAuMy0yMS41IDYyLjYtNzIuNSA4OS41LTE0MC4xIDkwLjMtNDMuNCAuNy02OS41LTctNzUuMyAyNC4yek0zNTcuNiAxNTJjLTEuOC0xLjMtMi41LTEuOC0zIDEuMy0yIDExLjQtNS4xIDIyLjUtOC44IDMzLjYtMzkuOSAxMTMuOC0xNTAuNSAxMDMuOS0yMDQuNSAxMDMuOS02LjEgMC0xMC4xIDMuMy0xMC45IDkuNC0yMi42IDE0MC40LTI3LjEgMTY5LjctMjcuMSAxNjkuNy0xIDcuMSAzLjUgMTIuOSAxMC42IDEyLjlsNjMuNSAwYzguNiAwIDE1LjctNi4zIDE3LjQtMTQuOSAuNy01LjQtMS4xIDYuMSAxNC40LTkxLjMgNC42LTIyIDE0LjMtMTkuNyAyOS4zLTE5LjcgNzEgMCAxMjYuNC0yOC44IDE0Mi45LTExMi4zIDYuNS0zNC44IDQuNi03MS40LTIzLjgtOTIuNnoiXX0sVHBlPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6InNxdWFyZS1ibHVlc2t5IixpY29uOls0NDgsNTEyLFtdLCJlNmEzIiwiTTY0IDMyQzI4LjcgMzIgMCA2MC43IDAgOTZMMCA0MTZjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMzIwIDBjMzUuMyAwIDY0LTI4LjcgNjQtNjRsMC0zMjBjMC0zNS4zLTI4LjctNjQtNjQtNjRMNjQgMzJ6TTIyNCAyNDcuNGMxNC41LTMwIDU0LTg1LjggOTAuNy0xMTMuMyAyNi41LTE5LjkgNjkuMy0zNS4yIDY5LjMgMTMuNyAwIDkuOC01LjYgODIuMS04LjkgOTMuOC0xMS40IDQwLjgtNTMgNTEuMi05MCA0NC45IDY0LjcgMTEgODEuMiA0Ny41IDQ1LjYgODQtNjcuNSA2OS4zLTk3LTE3LjQtMTA0LjYtMzkuNmwtLjMtLjljLS45LTIuNi0xLjQtNC4xLTEuOC00LjFzLS45IDEuNS0xLjggNC4xYy0uMSAuMy0uMiAuNi0uMyAuOS03LjYgMjIuMi0zNy4xIDEwOC44LTEwNC42IDM5LjYtMzUuNS0zNi41LTE5LjEtNzMgNDUuNi04NC0zNyA2LjMtNzguNi00LjEtOTAtNDQuOS0zLjMtMTEuNy04LjktODQtOC45LTkzLjggMC00OC45IDQyLjktMzMuNSA2OS4zLTEzLjcgMzYuNyAyNy41IDc2LjIgODMuNCA5MC43IDExMy4zeiJdfSxMcGU9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiZC1hbmQtZC1iZXlvbmQiLGljb246WzY0MCw1MTIsW10sImY2Y2EiLCJNMzEzLjggMjQxLjVjMTMuOCAwIDIxLTEwLjEgMjQuOC0xNy45LTEtMS4xLTUtNC4yLTcuNC02LjYtMi40IDQuMy04LjIgMTAuNy0xMy45IDEwLjctMTAuMiAwLTE1LjQtMTQuNy0zLjItMjYuNi0uNS0uMi00LjMtMS44LTggMi40IDAtMyAxLTUuMSAyLjEtNi42LTMuNSAxLjMtOS44IDUuNi0xMS40IDcuOSAuMi01LjggMS42LTcuNSAuNi05bC0uMi0uMnMtOC41IDUuNi05LjMgMTQuN2MwIDAgMS4xLTEuNiAyLjEtMS45IC42LS4zIDEuMyAwIC42IDEuOS0uMiAuNi01LjggMTUuNyA1LjEgMjYtLjYtMS42LTEuOS03LjYgMi40LTEuOS0uMyAuMSA1LjggNy4xIDE1LjcgNy4xem01Mi40LTIxLjFjMC00LTQuOS00LjQtNS42LTQuNSAyIDMuOSAuOSA3LjUgLjIgOSAyLjUtLjQgNS40LTEuNiA1LjQtNC41em0xMC4zIDUuMmMwLTYuNC02LjItMTEuNC0xMy41LTEwLjcgOCAxLjMgNS42IDEzLjgtNSAxMS40IDMuNy0yLjYgMy4yLTkuOS0xLjMtMTIuNSAxLjQgNC4yLTMgOC4yLTcuNCA0LjYtMi40LTEuOS04LTYuNi0xMC42LTguNi0yLjQtMi4xLTUuNS0xLTYuNi0xLjgtMS4zLTEuMS0uNS0zLjgtMi4yLTUtMS42LS44LTMtLjMtNC44LTEtMS42LS42LTIuNy0xLjktMi42LTMuNS0yLjUgNC40IDMuNCA2LjMgNC41IDguNSAxIDEuOS0uOCA0LjggNCA4LjUgMTQuOCAxMS42IDkuMSA4IDEwLjQgMTguMSAuNiA0LjMgNC4yIDYuNyA2LjQgNy40LTIuMS0xLjktMi45LTYuNCAwLTkuMyAwIDEzLjkgMTkuMiAxMy4zIDIzLjEgNi40LTIuNCAxLjEtNy0uMi05LTEuOSA3LjcgMSAxNC4yLTQuMSAxNC42LTEwLjZ6bS0zOS40LTE4LjRjMiAuOCAxLjYgLjcgNi40IDQuNSAxMC4yLTI0LjUgMjEuNy0xNS43IDIyLTE1LjUgMi4yLTEuOSA5LjgtMy44IDEzLjgtMi43LTIuNC0yLjctNy41LTYuMi0xMy4zLTYuMi00LjcgMC03LjQgMi4yLTggMS4zLS44LTEuNCAzLjItMy40IDMuMi0zLjQtNS40IC4yLTkuNiA2LjctMTEuMiA1LjktMS4xLS41IDEuNC0zLjcgMS40LTMuNy01LjEgMi45LTkuMyA5LjEtMTAuMiAxMyA0LjYtNS44IDEzLjgtOS44IDE5LjctOS0xMC41IC41LTE5LjUgOS43LTIzLjggMTUuOHptMjQyLjUgNTEuOWMtMjAuNyAwLTQwIDEuMy01MC4zIDIuMWw3LjQgOC4yIDAgNzcuMi03LjQgOC4yYzEwLjQgLjggMzAuOSAyLjEgNTEuNiAyLjEgNDIuMSAwIDU5LjEtMjAuNyA1OS4xLTQ4LjkgMC0yOS4zLTIzLjItNDguOS02MC40LTQ4Ljl6bS0xNS4xIDc1LjZsMC01My4zYzMwLjEtMy4zIDQ2LjggMy44IDQ2LjggMjYuMyAwIDI1LjYtMjEuNCAzMC4yLTQ2LjggMjd6TTMwMS42IDE4MWMtMS0zLjQtLjItNi45IDEuMS05LjQgMSAzIDIuNiA2LjQgNy41IDktLjUtMi40LS4yLTUuNiAuNS04LTEuNC01LjQgMi4xLTkuOSA2LjQtOS45IDYuOSAwIDguNSA4LjggNC43IDE0LjQgMi4xIDMuMiA1LjUgNS42IDcuNyA3LjggMy4yLTMuNyA1LjUtOS41IDUuNS0xMy44IDAtOC4yLTUuNS0xNS45LTE2LjctMTYuNS0yMC0uOS0yMC4yIDE2LjYtMjAgMTguOSAuNSA1LjIgMy40IDcuOCAzLjMgNy41em0tLjQgNmMtLjUgMS44LTcgMy43LTEwLjIgNi45IDQuOC0xIDctLjIgNy44IDEuOCAuNSAxLjQtLjIgMy40LS41IDUuNiAxLjYtMS44IDctNS41IDExLTYuMi0xLS4zLTMuNC0uOC00LjMtLjggMi45LTMuNCA5LjMtNC41IDEyLjgtMy43LTIuMi0uMi02LjcgMS4xLTguNSAyLjYgMS42IC4zIDMgLjYgNC4zIDEuMS0yLjEgLjgtNC44IDMuNC01LjggNi4xIDctNSAxMy4xIDUuMiA3IDguMiAuOCAuMiAyLjcgMCAzLjUtLjUtLjMgMS4xLTEuOSAzLTMgMy40IDIuOSAwIDctMS45IDguMi00LjYgMCAwLTEuOCAuNi0yLjYtLjJzLjMtNC4zIC4zLTQuM2MtMi4zIDIuOS0zLjQtMS4zLTEuMy00LjItMS0uMy0zLjUtLjYtNC42LS41IDMuMi0xLjEgMTAuNC0xLjggMTEuMi0uMyAuNiAxLjEtMSAzLjQtMSAzLjQgNC0uNSA4LjMgMS4xIDYuNyA1LjEgMi45LTEuNCA1LjUtNS45IDQuOC0xMC40LS4zIDEtMS42IDIuNC0yLjkgMi43IC4yLTEuNC0xLTIuMi0xLjktMi42IDEuNy05LjYtMTQuNi0xNC4yLTE0LjEtMjMuOS0xIDEuMy0xLjggNS0uOCA3LjEgMi43IDMuMiA4LjcgNi43IDEwLjEgMTIuMi0yLjYtNi40LTE1LjEtMTEuNC0xNC42LTIwLjItMS42IDEuNi0yLjYgNy44LTEuMyAxMSAyLjQgMS40IDQuNSAzLjggNC44IDYuMS0yLjItNS4xLTExLjQtNi4xLTEzLjktMTIuMi0uNiAyLjItLjMgNSAxIDYuNyAwIDAtMi4yLS44LTctLjYgMS43IC42IDUuMSAzLjUgNC44IDUuMnptMjUuOSA3LjRjLTIuNyAwLTMuNS0yLjEtNC4yLTQuMyAzLjMgMS4zIDQuMiA0LjMgNC4yIDQuM3ptMzguOSAzLjdsLTEtLjZjLTEuMS0xLTIuOS0xLjQtNC43LTEuNC0yLjkgMC01LjggMS4zLTcuNSAzLjQtLjggLjgtMS40IDEuOC0yLjEgMi42bDAgMTUuN2MzLjUgMi42IDcuMS0yLjkgMy03LjIgMS41IC4zIDQuNiAyLjcgNS4xIDMuMiAwIDAgMi42LS41IDUtLjUgMi4xIDAgMy45IC4zIDUuNiAxLjFsMC0xOC40Yy0xLjEgLjUtMi4yIDEtMi43IDEuNGwtLjcgLjd6TTc5LjkgMzA1LjljMTcuMi00LjYgMTYuMi0xOCAxNi4yLTE5LjkgMC0yMC42LTI0LjEtMjUtMzctMjVsLTU2LjEgMCA4LjMgOC42IDAgMjkuNS0xMS4zIDAgMTEuNCAxNC42IDAgMzIuMy04LjQgOC42YzYxLjcgMCA3My44IDEuNSA4Ni40LTUuOSA2LjctNCA5LjktOS44IDkuOS0xNy42IDAtNS4xIDIuNi0xOC44LTE5LjQtMjUuMnpNMzguNiAyNzguNGMyMCAwIDI5LjYtLjggMjkuNiA5LjFsMCAzYzAgMTIuMS0xOSA4LjgtMjkuNiA4LjhsMC0yMC45em0wIDU5LjJsMC0yMi42YzEyLjIgMCAzMi43LTIuMyAzMi43IDguOGwwIDQuNSAuMiAwYzAgMTEuMi0xMi41IDkuMy0zMi45IDkuM3ptMTAxLjItMTkuM2wyMy4xIC4yIDAtLjIgMTQuMS0yMS4yLTM3LjIgMCAwLTE0LjkgNTIuNCAwLTE0LjEtMjEgMC0uMi03My41IC4yIDcuNCA4LjIgMCA3Ny4xLTcuNCA4LjIgODEuMiAwIDE0LjEtMjEuMi02MC4xIC4yIDAtMTUuNHptMjE0LjctNjAuMWMtNzMuOSAwLTc3LjUgOTkuMy0uMyA5OS4zIDc3LjkgMCA3NC4xLTk5LjMgLjMtOTkuM3ptLS4zIDc3LjVjLTM3LjQgMC0zNi45LTU1LjMgLjItNTUuMyAzNi44IC4xIDM4LjggNTUuMy0uMiA1NS4zem0tOTEuMy04LjNsNDQuMS02Ni4yLTQxLjcgMCA2LjEgNy4yLTIwLjUgMzcuMi0uMyAwLTIxLTM3LjIgNi40LTcuMi00NC45IDAgNDQuMSA2NS44IC4yIDE5LjQtNy43IDguMiA0Mi42IDAtNy4yLTguMi0uMi0xOXpNMjM0LjUgMTc2LjFjMS42IDEuMyAyLjkgMi40IDIuOSA2LjZsMCAzOC44YzAgNC4yLS44IDUuMy0yLjcgNi40LS4xIC4xLTcuNSA0LjUtNy45IDQuNmwzNS4xIDBjMTAgMCAxNy40LTEuNSAyNi04LjYtLjYtNSAuMi05LjUgLjgtMTIgMC0uMi0xLjggMS40LTIuNyAzLjUgMC01LjcgMS42LTE1LjQgOS42LTIwLjUtLjEgMC0zLjctLjgtOSAxLjEgMi0zLjEgMTAtNy45IDEwLjQtNy45LTguMi0yNi0zOC0yMi45LTMyLjItMjIuOS0zMC45IDAtMzIuNiAuMy0zOS45LTQgLjEgLjggLjUgOC4yIDkuNiAxNC45em0yMS41IDUuNWM0LjYgMCAyMy4xLTMuMyAyMy4xIDE3LjMgMCAyMC43LTE4LjQgMTcuMy0yMy4xIDE3LjNsMC0zNC42em0yMjguOSA3OS42bDcgOC4zIDAgNDIuNS0uMyAwYy01LjQtMTQuNC00Mi4zLTQxLjUtNDUuMi01MC45bC0zMS42IDAgNy40IDguNSAwIDc2LjktNy4yIDguMyAzOSAwLTcuNC04LjIgMC00Ny40IC4zIDBjMy43IDEwLjYgNDQuNSA0Mi45IDQ4LjUgNTUuNmwyMS4zIDAgMC04NS4yIDcuNC04LjMtMzkuMi0uMXpNMzc4LjIgMTY1LjFjLTMyLjIgMC0zMi44IC4yLTM5LjktNCAuMSAuNyAuNSA4LjMgOS42IDE0LjkgMy4xIDIgMi45IDQuMyAyLjkgOS41IDEuOC0xLjEgMy44LTIuMiA2LjEtMy0xLjEgMS4xLTIuNyAyLjctMy41IDQuNSAxLTEuMSA3LjUtNS4xIDE0LjYtMy41LTEuNiAuMy00IDEuMS02LjEgMi45IC4xIDAgMi4xLTEuMSA3LjUtLjNsMC00LjNjNC43IDAgMjMuMS0zLjQgMjMuMSAxNy4zIDAgMjAuNS0xOC41IDE3LjMtMTkuNyAxNy4zIDUuNyA0LjQgNS44IDEyIDIuMiAxNi4zbC4zIDBjMzMuNCAwIDM2LjctMjcuMyAzNi43LTM0IDAtMy44LTEuMS0zMi0zMy44LTMzLjZ6Il19LCRwZT17cHJlZml4OiJmYWIiLGljb25OYW1lOiJtaWNyb3NvZnQiLGljb246WzQ0OCw1MTIsW10sImYzY2EiLCJNMCAzMmwyMTQuNiAwIDAgMjE0LjYtMjE0LjYgMCAwLTIxNC42em0yMzMuNCAwbDIxNC42IDAgMCAyMTQuNi0yMTQuNiAwIDAtMjE0LjZ6TTAgMjY1LjRsMjE0LjYgMCAwIDIxNC42LTIxNC42IDAgMC0yMTQuNnptMjMzLjQgMGwyMTQuNiAwIDAgMjE0LjYtMjE0LjYgMCAwLTIxNC42eiJdfSxBcGU9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiZmx5IixpY29uOlszMjAsNTEyLFtdLCJmNDE3IiwiTTE2NS45IDQyNy44YzEyLjkgMTEuNyAzMy43IDMzLjMgMzMuMiA1MC43IDAgLjgtLjEgMS42LS4xIDIuNS0xLjggMTkuOC0xOC44IDMxLjEtMzkuMSAzMS0yNS0uMS0zOS45LTE2LjgtMzguNy0zNS44IDEtMTYuMiAyMC41LTM2LjcgMzIuNC00Ny42IDIuMy0yLjEgMi43LTIuNyA1LjYtMy42IDMuNCAwIDMuOSAuMyA2LjcgMi44ek0zMDAgNjcuM2MtMTYuMy0yNS43LTM4LjYtNDAuNi02My4zLTUyLjEtMjUuNS0xMC43LTU0LjYtMTUuNC03Ni42LTE1LjItNDQuMSAwLTcxLjIgMTMuMi04MS4xIDE3LjMtNTMuNiAyNy45LTg0LjQgNjkuOS04Mi45IDE0MS4zIDcuMSA4Mi4yIDk3IDE3NiAxNTUuOCAyMzMuOCAxLjcgMS42IDQuNSA0LjUgNi4yIDUuMWwzLjMgLjFjMi4xLS43IDEuOC0uNSAzLjUtMi4xIDUyLjMtNDkuMiAxNDAuNy0xNDUuOCAxNTUuOS0yMTUuNyA3LTM5LjIgMy4xLTcyLjUtMjAuOC0xMTIuNXpNMTU0LjkgMzUxLjljLTI4LTUxLjEtNjUuMi0xMzAuNy02OS4zLTE4OS0zLjQtNDcuNSAxMS40LTEzMS4yIDY5LjMtMTM2LjdsMCAzMjUuN3pNMjk2LjggMTgwYy0xNi40IDU2LjgtNzcuMyAxMjgtMTE4LjkgMTcwLjMgMjcuOC01MS45IDY1LjItMTMzLjMgNjcuMi0xOTEuOSAxLjYtNDUuOS05LjgtMTA1LjgtNDgtMTMxLjQgODguOCAxOC4zIDExNS41IDk4LjEgOTkuNyAxNTN6Il19LERwZT17cHJlZml4OiJmYWIiLGljb25OYW1lOiJjYy1zdHJpcGUiLGljb246WzU3Niw1MTIsW10sImYxZjUiLCJNNDkyLjQgMjIwLjhjLTguOSAwLTE4LjcgNi43LTE4LjcgMjIuN2wzNi43IDBjMC0xNi05LjMtMjIuNy0xOC0yMi43ek0zNzUgMjIzLjRjLTguMiAwLTEzLjMgMi45LTE3IDdsLjIgNTIuOGMzLjUgMy43IDguNSA2LjcgMTYuOCA2LjcgMTMuMSAwIDIxLjktMTQuMyAyMS45LTMzLjQgMC0xOC42LTktMzMuMi0yMS45LTMzLjF6TTUyOCAzMkw0OCAzMkMyMS41IDMyIDAgNTMuNSAwIDgwTDAgNDMyYzAgMjYuNSAyMS41IDQ4IDQ4IDQ4bDQ4MCAwYzI2LjUgMCA0OC0yMS41IDQ4LTQ4bDAtMzUyYzAtMjYuNS0yMS41LTQ4LTQ4LTQ4ek0xMjIuMiAyODEuMWMwIDI1LjYtMjAuMyA0MC4xLTQ5LjkgNDAuMy0xMi4yIDAtMjUuNi0yLjQtMzguOC04LjFsMC0zMy45YzEyIDYuNCAyNy4xIDExLjMgMzguOSAxMS4zIDcuOSAwIDEzLjYtMi4xIDEzLjYtOC43IDAtMTctNTQtMTAuNi01NC00OS45IDAtMjUuMiAxOS4yLTQwLjIgNDgtNDAuMiAxMS44IDAgMjMuNSAxLjggMzUuMyA2LjVsMCAzMy40Yy0xMC44LTUuOC0yNC41LTkuMS0zNS4zLTkuMS03LjUgMC0xMi4xIDIuMi0xMi4xIDcuNyAwIDE2IDU0LjMgOC40IDU0LjMgNTAuN3pNMTkxIDIyNC41bC0yNyAwIDAgNTAuNWMwIDIwLjkgMjIuNSAxNC40IDI3IDEyLjZsMCAyOC45Yy00LjcgMi42LTEzLjMgNC43LTI0LjkgNC43LTIxLjEgMC0zNi45LTE1LjUtMzYuOS0zNi41bC4yLTExMy45IDM0LjctNy40IDAgMzAuOCAyNi45IDAgMCAzMC4zem03NCAyLjRjLTQuNS0xLjUtMTguNy0zLjYtMjcuMSA3LjRsMCA4NC40LTM1LjUgMCAwLTEyNC41IDMwLjcgMCAyLjIgMTAuNWM4LjMtMTUuMyAyNC45LTEyLjIgMjkuNi0xMC41bC4xIDAgMCAzMi43em00NC4xIDkxLjhsLTM1LjcgMCAwLTEyNC41IDM1LjcgMCAwIDEyNC41em0wLTE0Mi45bC0zNS43IDcuNiAwLTI4LjkgMzUuNy03LjYgMCAyOC45em03NC4xIDE0NS41Yy0xMi40IDAtMjAtNS4zLTI1LjEtOWwtLjEgNDAuMi0zNS41IDcuNSAwLTE2NS44IDMxLjMgMCAxLjggOC44YzQuOS00LjUgMTMuOS0xMS4xIDI3LjgtMTEuMSAyNC45IDAgNDguNCAyMi41IDQ4LjQgNjMuOCAwIDQ1LjEtMjMuMiA2NS41LTQ4LjYgNjUuNnptMTYwLjQtNTEuNWwtNjkuNSAwYzEuNiAxNi42IDEzLjggMjEuNSAyNy42IDIxLjUgMTQuMSAwIDI1LjItMyAzNC45LTcuOWwwIDI4LjZjLTkuNyA1LjMtMjIuNCA5LjItMzkuNCA5LjItMzQuNiAwLTU4LjgtMjEuNy01OC44LTY0LjUgMC0zNi4yIDIwLjUtNjQuOSA1NC4zLTY0LjkgMzMuNyAwIDUxLjMgMjguNyA1MS4zIDY1LjEgMCAzLjUtLjMgMTAuOS0uNCAxMi45eiJdfSxFcGU9e3ByZWZpeDoiZmFiIixpY29uTmFtZToid29yZHByZXNzLXNpbXBsZSIsaWNvbjpbNTEyLDUxMixbXSwiZjQxMSIsIk0yNTYgOGEyNDggMjQ4IDAgMSAwIDAgNDk2IDI0OCAyNDggMCAxIDAgMC00OTZ6TTMzIDI1NmMwLTMyLjMgNi45LTYzIDE5LjMtOTAuN0wxNTguNyA0NTYuN0M4NC4zIDQyMC41IDMzIDM0NC4yIDMzIDI1NnpNMjU2IDQ3OWMtMjEuOSAwLTQzLTMuMi02My05LjFsNjYuOS0xOTQuNCA2OC41IDE4Ny44Yy41IDEuMSAxIDIuMSAxLjYgMy4xLTIzLjEgOC4xLTQ4IDEyLjYtNzQgMTIuNnptMzAuNy0zMjcuNWMxMy40LS43IDI1LjUtMi4xIDI1LjUtMi4xIDEyLTEuNCAxMC42LTE5LjEtMS40LTE4LjQgMCAwLTM2LjEgMi44LTU5LjQgMi44LTIxLjkgMC01OC43LTIuOC01OC43LTIuOC0xMi0uNy0xMy40IDE3LjctMS40IDE4LjQgMCAwIDExLjQgMS40IDIzLjQgMi4xbDM0LjcgOTUuMi00OC44IDE0Ni4zLTgxLjItMjQxLjVjMTMuNC0uNyAyNS41LTIuMSAyNS41LTIuMSAxMi0xLjQgMTAuNi0xOS4xLTEuNC0xOC40IDAgMC0zNi4xIDIuOC01OS40IDIuOC00LjIgMC05LjEtLjEtMTQuNC0uMyAzOS45LTYwLjUgMTA4LjQtMTAwLjUgMTg2LjMtMTAwLjUgNTggMCAxMTAuOSAyMi4yIDE1MC42IDU4LjUtMS0uMS0xLjktLjItMi45LS4yLTIxLjkgMC0zNy40IDE5LjEtMzcuNCAzOS42IDAgMTguNCAxMC42IDMzLjkgMjEuOSA1Mi4zIDguNSAxNC44IDE4LjQgMzMuOSAxOC40IDYxLjUgMCAxOS4xLTcuMyA0MS4yLTE3IDcyLjFsLTIyLjIgNzQuMy04MC43LTIzOS42em04MS40IDI5Ny4ybDY4LjEtMTk2LjljMTIuNy0zMS44IDE3LTU3LjIgMTctNzkuOSAwLTguMi0uNS0xNS44LTEuNS0yMi45IDE3LjQgMzEuOCAyNy4zIDY4LjIgMjcuMyAxMDcgMCA4Mi4zLTQ0LjYgMTU0LjEtMTEwLjkgMTkyLjd6Il19LFBwZT17cHJlZml4OiJmYWIiLGljb25OYW1lOiJzZWxsc3kiLGljb246WzY0MCw1MTIsW10sImYyMTMiLCJNNTQwIDIzNy4zYzMuMS0xMi4zIDQuMy0yNC44IDQuMy0zNy40IDAtOTIuNS03NS40LTE2Ny45LTE2Ny45LTE2Ny45LTc3LjIgMC0xNDQuNiA1My0xNjMgMTI3LjgtMTUuMy0xMy4yLTM0LjktMjAuNS01NS4yLTIwLjUtNDYuMyAwLTg0IDM3LjctODQgODQgMCA3LjQgLjkgMTUgMy4xIDIyLjQtNDIuOSAyMC4yLTcwLjggNjMuNy03MC44IDExMS4yIDAgNjggNTUuNSAxMjMuMiAxMjMuMiAxMjMuMmwzODEuMiAwYzY3LjcgMCAxMjMuMi01NS4yIDEyMy4yLTEyMy4yIDAtNTYuNC0zOC45LTEwNi05NC4xLTExOS41ek0yMDAuMiA0MDEuNmMwIDguMy03IDE1LjMtMTUuMyAxNS4zbC0zMC45IDBjLTguMyAwLTE1LjMtNy0xNS4zLTE1LjNsMC0xMTAuOWMwLTguMyA3LTE1LjMgMTUuMy0xNS4zbDMwLjkgMGM4LjMgMCAxNS4zIDcgMTUuMyAxNS4zbDAgMTEwLjl6bTg5LjUgMGMwIDguMy03IDE1LjMtMTUuMyAxNS4zbC0zMC45IDBjLTguMyAwLTE1LjMtNy0xNS4zLTE1LjNsMC0xMzEuNWMwLTguMyA3LTE1LjMgMTUuMy0xNS4zbDMwLjkgMGM4LjMgMCAxNS4zIDcgMTUuMyAxNS4zbDAgMTMxLjV6bTg5LjUgMGMwIDguMy03IDE1LjMtMTUuMyAxNS4zbC0zMSAwYy04LjMgMC0xNS4zLTctMTUuMy0xNS4zbDAtMTYyLjdjMC04LjMgNy0xNS4zIDE1LjMtMTUuM2wzMSAwYzguMyAwIDE1LjMgNyAxNS4zIDE1LjNsMCAxNjIuN3ptODcgMGMwIDguMy03IDE1LjMtMTUuMyAxNS4zbC0yOC41IDBjLTguMyAwLTE1LjMtNy0xNS4zLTE1LjNsMC0yMjQuNmMwLTguNiA3LTE1LjYgMTUuMy0xNS42bDI4LjUgMGM4LjMgMCAxNS4zIDcgMTUuMyAxNS42bDAgMjI0LjZ6Il19LElwZT17cHJlZml4OiJmYWIiLGljb25OYW1lOiJkYXNoY3ViZSIsaWNvbjpbNDQ4LDUxMixbXSwiZjIxMCIsIk0zMjYuOSAxMDRsLTIxNi4yIDBjLTUxLjEgMC05MS4yIDQzLjMtOTEuMiA5My41bDAgMjI5LjVjMCA1MC41IDQwLjEgODUgOTEuMiA4NWwyMjcuMiAwYzUxLjEgMCA5MS4yLTM0LjUgOTEuMi04NWwwLTQyNy0xMDIuMiAxMDR6TTE1NC4yIDQxNi41Yy0xNy43IDAtMzIuNC0xNS4xLTMyLjQtMzIuOGwwLTE0Mi45YzAtMTcuNyAxNC43LTMyLjUgMzIuNC0zMi41bDE0MC43IDBjMTcuNyAwIDMyIDE0LjggMzIgMzIuNWwwIDEyMy41IDUxLjEgNTIuMy0yMjMuOCAwIDAtLjF6Il19LE5wZT17cHJlZml4OiJmYWIiLGljb25OYW1lOiJnaXR0ZXIiLGljb246WzM4NCw1MTIsW10sImY0MjYiLCJNNjYuNCAzMjIuNWwtNTAuNCAwIDAtMzIyLjUgNTAuNCAwIDAgMzIyLjV6TTE2Ni45IDc2LjFsLTUwLjQgMCAwIDQzNS45IDUwLjQgMCAwLTQzNS45em0xMDAuNiAwbC01MC40IDAgMCA0MzUuOSA1MC40IDAgMC00MzUuOXpNMzY4IDc2bC01MC40IDAgMCAyNDcgNTAuNCAwIDAtMjQ3eiJdfSxGcGU9e3ByZWZpeDoiZmFiIixpY29uTmFtZToid29sZi1wYWNrLWJhdHRhbGlvbiIsaWNvbjpbNDQ4LDUxMixbXSwiZjUxNCIsIk0yMzYuMiA0NzEuNWwxMC42IDE1LjggNS4zLTEyLjMgNS4zIDcgMCAyOS45YzIxLjEtNy45IDIxLjEtNjYuOSAyNS41LTk3LjIgNC42LTMxLjktLjktOTIuOCA4MS40LTE0OS4xLTguOS0yMy42LTEyLTQ5LjQtMi42LTgwIDI3LjkgMy40IDUzLjkgMTAuNiA2My4zIDU0LjFsLTMwLjMgOC40YzExLjEgMjMgMTcgNDYuOCAxMy4yIDcyLjFsLTI3LjMtNy02LjIgMzMuNC0xOC41LTctOC44IDMzLjQtMTkuNC03IDI2LjQgMjEuMSA4LjgtMjguMiAyNC42IDUuMiA3LTM1LjYgMjYuNCAxNC41Yy4yLTIwIDctNTguMS04LjgtODQuNWwyNi40IDUuM2M0LTIyLjEtMi40LTM5LjItNy45LTU2LjdsMjIuNCA5LjdjLS40LTI1LjEtMjkuOS01Ni44LTYxLjYtNTguNS0yMC4yLTEuMS01Ni43LTI1LjItNTQuMS01MS45IDItMTkuOSAxNy40LTQyLjYgNDMuMS00OS43LTQ0IDM2LjUtOS43IDY3LjMgNS4zIDczLjUgNC40LTExLjQgMTcuNS02OS4xIDAtMTMwLjItNDAuNCAyMi45LTg5LjcgNjUuMS05My4yIDE0Ny44bC01OCAzOC43LTMuNSA5My4yIDEwNy4zLTU5LjggNyA3LTE3LjYgMy41LTQ0IDM4LjctMTUuOC01LjMtMjguMSA0OS4zLTMuNSAxMTkuNiAyMS4xIDE1LjgtMzIuNSAxNS44LTMyLjYtMTUuOCAyMS4xLTE1LjgtMy41LTExOS42LTI4LjItNDkuMy0xNS44IDUuMy00NC0zOC43LTE3LjYtMy41IDctNyAxMDcuMyA1OS44LTMuNS05My4zLTU4LjEtMzguN2MtMy41LTgyLjgtNTIuNy0xMjUtOTMuMi0xNDcuOS0xNy41IDYxLjEtNC40IDExOC44IDAgMTMwLjIgMTUtNi4yIDQ5LjMtMzcgNS4zLTczLjUgMjUuNyA3LjEgNDEuMSAyOS44IDQzLjEgNDkuNyAyLjYgMjYuNy0zMy45IDUwLjgtNTQuMSA1MS45LTMxLjcgMS43LTYxLjIgMzMuNC02MS42IDU4LjVsMjIuNC05LjdDMTMuNCAyMjQuNyA3IDI0MS44IDExIDI2My45bDI2LjQtNS4zYy0xNS44IDI2LjQtOS4xIDY0LjQtOC44IDg0LjRsMjYuNC0xNC41IDcgMzUuNiAyNC42LTUuMyA4LjggMjguMiAyNi40LTIxLjEtMTkuNCA3LTguOC0zMy40LTE4LjUgNy02LjItMzMuNC0yNy4zIDdDMzggMjk0LjggNDMuOCAyNzEgNTUgMjQ4bC0zMC4zLTguNGM5LjQtNDMuNSAzNS41LTUwLjggNjMuMy01NC4xIDkuNCAzMC42IDYuMiA1Ni41LTIuNiA4MC4xIDgyLjMgNTYuMyA3Ni44IDExNy4yIDgxLjQgMTQ5LjEgNC40IDMwLjMgNC40IDg5LjMgMjUuNSA5Ny4ybDAtMjkuOCA1LjMtNyA1LjMgMTIuMyAxMC42LTE1LjggMTEuNCAyMS4xIDExLjQtMjEuMSAwIDB6bTc5LjItOTVMMjk5LjUgMzY2YzcuNS00LjQgMTMuOC04LjQgMTkuNC0xMi4zLS42IDcuMi0uMyAxMy44LTMuNSAyMi44bDAgMHptMjguMi00OS4zYy0uNCAxMC45LS45IDIxLjctMS44IDMxLjctNy44LTEuOS0xNS42LTMuOC0yMS4xLTcgOC4yLTcuOSAxNS42LTE2LjMgMjIuOS0yNC43bDAgMHptMjQuNiA1LjNjMC0xMy40LTIuMS0yNC4yLTUuMy0zMy40LTUuNSA5LjUtMTEuNyAxOC42LTE4LjUgMjcuM2wyMy44IDYuMnptMy41LTgwLjljMTkuNCAxMi44IDI3LjggMzMuNyAyOS45IDU2LjMtMTIuMy00LjUtMjQuNi05LjMtMzctMTAuNiA1LjEtMTIgNi42LTI4LjEgNy00NS43bDAgMHptLTEuOC00NS43Yy44IDE0LjMgMS44IDI4LjggMS44IDQyLjIgMTkuMi04LjEgMjkuOC05LjcgNDQtMTQuMS0xMC42LTE5LTI3LjItMjUuNS00NS44LTI4LjJsMCAwek0xMzQuMiAzNzYuNUwxNTAgMzY2Yy03LjUtNC40LTEzLjgtOC40LTE5LjQtMTIuMyAuNiA3LjMgLjMgMTMuOSAzLjUgMjIuOWwwIDB6TTEwNiAzMjcuM2MuNCAxMC45IC45IDIxLjcgMS44IDMxLjcgNy44LTEuOSAxNS42LTMuOCAyMS4xLTctOC4yLTcuOS0xNS42LTE2LjMtMjIuOS0yNC43em0tMjQuNiA1LjNjMC0xMy40IDItMjQuMiA1LjMtMzMuNCA1LjUgOS41IDExLjcgMTguNiAxOC41IDI3LjNsLTIzLjggNi4yem0tMy41LTgwLjljLTE5LjQgMTIuOC0yNy44IDMzLjctMjkuOSA1Ni4zIDEyLjMtNC41IDI0LjYtOS4zIDM3LTEwLjYtNS0xMi02LjYtMjguMS03LTQ1LjdsLS4xIDB6bTEuOC00NS43Yy0uOCAxNC4zLTEuOCAyOC44LTEuOCA0Mi4yLTE5LjItOC4xLTI5LjgtOS43LTQ0LTE0LjEgMTAuNi0xOSAyNy4yLTI1LjUgNDUuOC0yOC4xeiJdfSxPcGU9e3ByZWZpeDoiZmFiIixpY29uTmFtZToibGFzdGZtIixpY29uOls1MTIsNTEyLFtdLCJmMjAyIiwiTTIyNS44IDM2Ny4xbC0xOC44LTUxcy0zMC41IDM0LTc2LjIgMzRjLTQwLjUgMC02OS4yLTM1LjItNjkuMi05MS41IDAtNzIuMSAzNi40LTk3LjkgNzIuMS05Ny45IDY2LjUgMCA3NC44IDUzLjMgMTAwLjkgMTM0LjkgMTguOCA1Ni45IDU0IDEwMi42IDE1NS40IDEwMi42IDcyLjcgMCAxMjItMjIuMyAxMjItODAuOSAwLTcyLjktNjIuNy04MC42LTExNS05Mi4xLTI1LjgtNS45LTMzLjQtMTYuNC0zMy40LTM0IDAtMTkuOSAxNS44LTMxLjcgNDEuNi0zMS43IDI4LjIgMCA0My40IDEwLjYgNDUuNyAzNS44bDU4LjYtN2MtNC43LTUyLjgtNDEuMS03NC41LTEwMC45LTc0LjUtNTIuOCAwLTEwNC40IDE5LjktMTA0LjQgODMuOSAwIDM5LjkgMTkuNCA2NS4xIDY4IDc2LjggNDQuOSAxMC42IDc5LjggMTMuOCA3OS44IDQ1LjcgMCAyMS43LTIxLjEgMzAuNS02MSAzMC41LTU5LjIgMC04My45LTMxLjEtOTcuOS03My45LTMyLTk2LjgtNDMuNi0xNjMtMTYxLjMtMTYzLTg2LjEgMC0xMzEuOCA1NC41LTEzMS44IDE0Ny4yIDAgODkuMSA0NS43IDEzNy4yIDEyNy45IDEzNy4yIDY2LjIgMCA5Ny45LTMxLjEgOTcuOS0zMS4xeiJdfSxScGU9e3ByZWZpeDoiZmFiIixpY29uTmFtZToic2hvcHdhcmUiLGljb246WzUxMiw1MTIsW10sImY1YjUiLCJNNDAzLjUgNDU1LjRjLTQyLjYgMzEuNy05NC40IDQ4LjctMTQ3LjUgNDguNi0xMzcuMiAwLTI0OC0xMTEtMjQ4LTI0OCAwLTEzNy4yIDExMS0yNDggMjQ4LTI0OCA2MS4yLS4xIDEyMC4yIDIyLjYgMTY1LjcgNjMuNSAuNiAuNSAuOSAxLjIgMS4xIDEuOXMuMSAxLjUtLjMgMi4yLS44IDEuMy0xLjUgMS42LTEuNCAuNS0yLjIgLjRjLTE4LjgtMi41LTM3LjctMy43LTU2LjctMy43LTEyOS40IDAtMjIyLjQgNTMuNS0yMjIuNCAxNTUuNCAwIDEwOSA5Mi4xIDE0NS45IDE3Ni44IDE3OC43IDMzLjYgMTMgNjUuNCAyNS40IDg3IDQxLjYgLjQgLjMgLjggLjggMS4xIDEuM3MuNCAxIC40IDEuNi0uMSAxLjEtLjQgMS42LS42IC45LTEuMSAxLjNsLS4xIDB6TTUwMyAyMzMuMWMtLjEtLjktLjUtMS44LTEuMy0yLjQtNTEuOC00My05My42LTYwLjUtMTQ0LjUtNjAuNS04NC4xIDAtODAuMyA1Mi4yLTgwLjMgNTMuNiAwIDQyLjYgNTIuMSA2MiAxMTIuMyA4NC41IDMxLjEgMTEuNiA2My4yIDIzLjYgOTIuNyAzOS45IC40IC4yIC45IC40IDEuNCAuNHMxIDAgMS41LS4yIC45LS40IDEuMy0uOCAuNi0uOCAuOC0xLjJjMTQuMS0zNiAxOS41LTc0LjggMTYtMTEzLjN6Il19LEJwZT17cHJlZml4OiJmYWIiLGljb25OYW1lOiJibG9nZ2VyIixpY29uOls0NDgsNTEyLFtdLCJmMzdjIiwiTTE2Mi40IDE5NmM0LjgtNC45IDYuMi01LjEgMzYuNC01LjEgMjcuMiAwIDI4LjEgLjEgMzIuMSAyLjEgNS44IDIuOSA4LjMgNyA4LjMgMTMuNiAwIDUuOS0yLjQgMTAtNy42IDEzLjQtMi44IDEuOC00LjUgMS45LTMxLjEgMi4xLTE2LjQgLjEtMjkuNS0uMi0zMS41LS44LTEwLjMtMi45LTE0LjEtMTcuNy02LjYtMjUuM3ptNjEuNCA5NC41Yy01My45IDAtNTUuOCAuMi02MC4yIDQuMS0zLjUgMy4xLTUuNyA5LjQtNS4xIDEzLjkgLjcgNC43IDQuOCAxMC4xIDkuMiAxMiAyLjIgMSAxNC4xIDEuNyA1Ni4zIDEuMmw0Ny45LS42IDkuMi0xLjVjOS01LjEgMTAuNS0xNy40IDMuMS0yNC40LTUuMy00LjctNS00LjctNjAuNC00Ljd6TTQ0Ny4yIDQyMC42Yy0zLjUgMjguNC0yMyA1MC40LTUxLjEgNTcuNS03LjIgMS44LTkuNyAxLjktMTcyLjkgMS44LTE1Ny44IDAtMTY1LjktLjEtMTcyLTEuOC04LjQtMi4yLTE1LjYtNS41LTIyLjMtMTAtNS42LTMuOC0xMy45LTExLjgtMTctMTYuNC0zLjgtNS42LTguMi0xNS4zLTEwLTIyUzAgNDIwLjMgMCAyNTYuM2MwLTE2My4xIDAtMTY2LjYgMS44LTE3My43IDYuMy0yNC43IDI1LjktNDMuNiA1MS4yLTQ5LjIgNy4zLTEuNiAzMzIuMS0xLjkgMzQwLS4zIDIxLjIgNC4zIDM3LjkgMTcuMSA0Ny42IDM2LjQgNy43IDE1LjMgNy0xLjUgNy4zIDE4MC42IC4yIDExNS44IDAgMTY0LjUtLjcgMTcwLjV6TTM2MS44IDIzNS40Yy0xLjEtNS00LjItOS42LTcuNy0xMS41LTEuMS0uNi04LTEuMy0xNS41LTEuNy0xMi40LS42LTEzLjgtLjgtMTcuOC0zLjEtNi4yLTMuNi03LjktNy42LTgtMTguMyAwLTIwLjQtOC41LTM5LjQtMjUuMy01Ni41LTEyLTEyLjItMjUuMy0yMC41LTQwLjYtMjUuMS0zLjYtMS4xLTExLjgtMS41LTM5LjItMS44LTQyLjktLjUtNTIuNSAuNC02Ny4xIDYuMi0yNyAxMC43LTQ2LjMgMzMuNC01My40IDYyLjQtMS4zIDUuNC0xLjYgMTQuMi0xLjkgNjQuMy0uNCA2Mi44IDAgNzIuMSA0IDg0LjUgOS43IDMwLjcgMzcuMSA1My40IDY0LjYgNTguNCA5LjIgMS43IDEyMi4yIDIuMSAxMzMuNyAuNSAyMC4xLTIuNyAzNS45LTEwLjggNTAuNy0yNS45IDEwLjctMTAuOSAxNy40LTIyLjggMjEuOC0zOC41IDMuMi0xMC45IDIuOS04OC40IDEuNy05My45eiJdfSxIcGU9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiZWRnZSIsaWNvbjpbNTEyLDUxMixbXSwiZjI4MiIsIk0xMjAuMSAzNy40YzQxLTI1LjIgODcuNi0zOC4yIDEzNC45LTM3LjQgMTY4IDAgMjU3IDEyMy44IDI1NyAyMTkuNS0uMSAzMi43LTEzIDYzLjktMzUuOSA4Ny4yLTIyLjkgMjMuMi01NCAzNi41LTg2LjcgMzctNzUuMiAwLTkxLjUtMjMuMS05MS41LTMyIDAtMy44IDEuMi02LjIgNC44LTkuNGwxLTEuMiAuNC0xLjZjMTAuNS0xMS41IDE1LjktMjYuMiAxNS45LTQxLjYgMC03OC43LTgyLjItMTQyLjctMTg0LTE0Mi43LTM3LjUtLjMtNzQuNSA4LjktMTA3LjUgMjYuOSAyNy01Ny41IDgyLjctOTcuNiA5MS4zLTEwMy44IC44LS42IC4zLS44IC4zLS44em0xNS42IDMxOC4xYy0xLjQgMzAgNC42IDYwIDE2LjQgODcuMiAxMy42IDI2LjQgMzIuNyA1MSA1Ni41IDY5LjMtNTkuNS0xMS41LTExMS41LTQzLjktMTQ5LjQtODkuMy0zOC4xLTQ2LjQtNTkuMi0xMDQuMy01OS4yLTE2NC44IDAtNTEuMiA2Mi40LTk0LjQgMTM2LTk0LjQgMzYuNi0uNiA3Mi40IDEwLjkgMTAxLjggMzIuN2wtMy42IDEuMmMtNTEuNSAxNy42LTk4LjUgOTAuNy05OC41IDE1OC4xek00NjkuOCA0MDBsLS43IC4xYy0xMS44IDE4LjgtMjUuOSAzNS4xLTQyLjIgNDkuNS0zMC44IDI4LTY4LjEgNDUuNS0xMDguOCA0OS45LTE4LjYgLjMtMzYuOC0zLjItNTMuOC0xMS40LTI1LjYtMTAuMy00Ny4xLTMwLTYxLjYtNTMtMTQuNC0yMy45LTIxLjEtNTEuNy0xOS03OS42LS42LTIwLjEgNS40LTQwLjMgMTUtNTguMiAxMy45IDMzLjEgMzcuNSA2MS4zIDY3LjYgODAuOHM2NS41IDI5LjUgMTAxLjQgMjguNmMzMSAuMyA2Mi4xLTYuNyA5MC4yLTIwLjVsMS45LS45YzMuOS0yLjMgNy43LTMuOSAxMS42IDAgNC41IDQuOSAxLjggOS4yLTEuMiAxNC0uMiAuMi0uMyAuNS0uNCAuN3oiXX0scXBlPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImlveGhvc3QiLGljb246WzY0MCw1MTIsW10sImYyMDgiLCJNNjE2IDE2MGwtNjcuMyAwQzUxMS4yIDcwLjcgNDIyLjkgOCAzMjAgOCAxODMgOCA3MiAxMTkgNzIgMjU2IDcyIDI3Mi40IDczLjYgMjg4LjUgNzYuNyAzMDRMMjQgMzA0Yy0xMy4zIDAtMjQgMTAuOC0yNCAyNCAwIDEzLjMgMTAuNyAyNCAyNCAyNGw2Ny4zIDBjMzcuNSA4OS4zIDEyNS44IDE1MiAyMjguNyAxNTIgMTM3IDAgMjQ4LTExMSAyNDgtMjQ4IDAtMTYuNC0xLjYtMzIuNS00LjctNDhsNTIuNyAwYzEzLjMgMCAyNC0xMC44IDI0LTI0IDAtMTMuMy0xMC43LTI0LTI0LTI0em0tOTYgOTZjMCAxMTAuNS04OS41IDIwMC0yMDAgMjAwLTc1LjcgMC0xNDEuNi00Mi0xNzUuNS0xMDRMNDI0IDM1MmMxMy4zIDAgMjQtMTAuOCAyNC0yNCAwLTEzLjMtMTAuNy0yNC0yNC0yNGwtMjk4LjIgMGMtMy44LTE1LjQtNS44LTMxLjQtNS44LTQ4IDAtMTEwLjUgODkuNS0yMDAgMjAwLTIwMCA3NS43IDAgMTQxLjYgNDIgMTc1LjUgMTA0TDIxNiAxNjBjLTEzLjMgMC0yNCAxMC44LTI0IDI0IDAgMTMuMyAxMC43IDI0IDI0IDI0bDI5OC4yIDBjMy44IDE1LjQgNS44IDMxLjQgNS44IDQ4ek0yMTYgMjMybDIwOCAwYzEzLjMgMCAyNCAxMC43IDI0IDI0IDAgMTMuMi0xMC43IDI0LTI0IDI0bC0yMDggMGMtMTMuMyAwLTI0LTEwLjctMjQtMjQgMC0xMy4yIDEwLjctMjQgMjQtMjR6Il19LFZwZT17cHJlZml4OiJmYWIiLGljb25OYW1lOiJzY2hsaXgiLGljb246WzQ0OCw1MTIsW10sImYzZWEiLCJNMzUwLjUgMTU3LjdsLTU0LjItNDYuMSA3My40LTM5IDc4LjMgNDQuMi05Ny41IDQwLjl6TTE5MiAxMjIuMWw0NS43LTI4LjIgMzQuNyAzNC42LTU1LjQgMjktMjUtMzUuNHptLTY1LjEgNi42bDMxLjktMjIuMSAxNy4yIDI4LjQtMzYuNyAyMi41LTEyLjQtMjguOHptLTIzLjMgODguMmwtOC44LTM0LjggMjkuNi0xOC4zIDEzLjEgMzUuMy0zMy45IDE3Ljh6TTgyLjQgMTMzLjJsMjMuOS0xOC4xIDguOSAyNC0yNi43IDE4LjMtNi4xLTI0LjJ6TTU5IDIwNi41bC0zLjYtMjguNCAyMi4zLTE1LjUgNi4xIDI4LjctMjQuOCAxNS4yek0yOC40IDIyMy4xbDIwLjgtMTIuOCAzLjMgMzMuNC0yMi45IDEyLTEuMi0zMi42ek0xLjQgMjY4TDIwLjYgMjU3LjggMjEgMjk2IDAgMzA0LjggMS40IDI2OHptNTkuMSA1OS4zbC0yOC4zIDguMy0xLjYtNDYuOCAyNS4xLTEwLjcgNC44IDQ5LjJ6TTk5IDI2My4ybC0zMS4xIDEzLTUuMi00MC44IDI3LjQtMTQuNCA4LjkgNDIuMnpNMTIzLjIgMzc3bC00MS42IDUuOS04LjEtNjMuNSAzNS4yLTEwLjggMTQuNSA2OC40em0yOC41LTEzOS45bDIxLjIgNTcuMS00Ni4yIDEzLjYtMTMuNy01NC4xIDM4LjctMTYuNnptODUuNyAyMzAuNWwtNzAuOS0zLjMtMjQuMy05NS44IDU1LjItOC42IDQwIDEwNy43ek0xNTIuNSAxODcuOWw0Mi4yLTIyLjQgMjggNDUuOS01MC44IDIxLjMtMTkuNC00NC44em00MSA5NC45bDYxLjMtMTguNyA1Mi44IDg2LjYtNzkuOCAxMS4zLTM0LjMtNzkuMnptNTEuNC04NS42bDY3LjMtMjguOCA2NS41IDY1LjQtODguNiAyNi4yLTQ0LjItNjIuOHoiXX0sanBlPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImQtYW5kLWQiLGljb246WzU3Niw1MTIsW10sImYzOGQiLCJNODIuOSA5OC45Yy0uNi0xNy4yIDItMzMuOCAxMi43LTQ4LjIgLjMgNy40IDEuMiAxNC41IDQuMiAyMS42IDUuOS0yNy41IDE5LjctNDkuMyA0Mi4zLTY1LjUtMS45IDUuOS0zLjUgMTEuOC0zIDE3LjcgOC43LTcuNCAxOC44LTE3LjggNDQuNC0yMi43IDE0LjctMi44IDI5LjctMiA0Mi4xIDEgMzguNSA5LjMgNjEgMzQuMyA2OS43IDcyLjMgNS4zIDIzLjEgLjcgNDUtOC4zIDY2LjQtNS4yIDEyLjQtMTIgMjQuNC0yMC43IDM1LjEtMi0xLjktMy45LTMuOC01LjgtNS42LTQyLjgtNDAuOC0yNi44LTI1LjItMzcuNC0zNy40LTEuMS0xLjItMS0yLjItLjEtMy42IDguMy0xMy41IDExLjgtMjguMiAxMC00NC0xLjEtOS44LTQuMy0xOC45LTExLjMtMjYuMi0xNC41LTE1LjMtMzkuMi0xNS01My41IC42LTExLjQgMTIuNS0xNC4xIDI3LjQtMTAuOSA0My42IC4yIDEuMyAuNCAyLjcgMCAzLjktMy40IDEzLjctNC42IDI3LjYtMi41IDQxLjYgLjEgLjUgLjEgMS4xIC4xIDEuNiAwIC4zLS4xIC41LS4yIDEuMS0yMS44LTExLTM2LTI4LjMtNDMuMi01Mi4yLTguMyAxNy44LTExLjEgMzUuNS02LjYgNTQuMS0xNS42LTE1LjItMjEuMy0zNC4zLTIyLTU1LjJ6TTU1Mi41IDIyMi4xYy0xMS42LTExLjYtMjUtMjAuNC00MC4xLTI2LjYtMTIuOC01LjItMjYtNy45LTM5LjktNy4xLTEwIC42LTE5LjYgMy4xLTI5IDYuNC0yLjUgLjktNS4xIDEuNi03LjcgMi4yLTQuOSAxLjItNy4zLTMuMS00LjctNi44IDMuMi00LjYgMy40LTQuMiAxNS0xMiAuNi0uNCAxLjItLjggMi4yLTEuNWwtMi41IDBjLS42IDAtMS4yIC4yLTEuOSAuMy0xOS4zIDMuMy0zMC43IDE1LjUtNDguOSAyOS42LTEwLjQgOC4xLTEzLjggMy44LTEyLS41IDEuNC0zLjUgMy4zLTYuNyA1LjEtMTAgMS0xLjggMi4zLTMuNCAzLjUtNS4xLS4yLS4yLS41LS4zLS43LS41LTI3IDE4LjMtNDYuNyA0Mi40LTU3LjcgNzMuMyAuMyAuMyAuNyAuNiAxIC45IC4zLS42IC41LTEuMiAuOS0xLjcgMTAuNC0xMi4xIDIyLjgtMjEuOCAzNi42LTI5LjggMTguMi0xMC42IDM3LjUtMTguMyA1OC43LTIwLjIgNC4zLS40IDguNy0uMSAxMy4xLS4xLTEuOCAuNy0zLjUgLjktNS4zIDEuMS0xOC41IDIuNC0zNS41IDktNTEuNSAxOC41LTMwLjIgMTcuOS01NC41IDQyLjItNzUuMSA3MC40LS4zIC40LS40IC45LS43IDEuMyAxNC41IDUuMyAyNCAxNy4zIDM2LjEgMjUuNiAuMi0uMSAuMy0uMiAuNC0uNGwxLjItMi43YzEyLjItMjYuOSAyNy01Mi4zIDQ2LjctNzQuNSAxNi43LTE4LjggMzgtMjUuMyA2Mi41LTIwIDUuOSAxLjMgMTEuNCA0LjQgMTcuMiA2LjggMi4zLTEuNCA1LjEtMy4yIDgtNC43IDguNC00LjMgMTcuNC03IDI2LjctOSAxNC43LTMuMSAyOS41LTQuOSA0NC41LTEuM2wwLS41Yy0uNS0uNC0xLjItLjgtMS43LTEuNHpNMzE3LjEgMzk3LjZjLTM5LjQtMzMtMjIuOC0xOS41LTQyLjctMzUuNi0uOCAuOSAwLS4yLTEuOSAzLTExLjIgMTkuMS0yNS41IDM1LjMtNDQgNDcuNi0xMC4zIDYuOC0yMS41IDExLjgtMzQuMSAxMS44LTIxLjYgMC0zOC4yLTkuNS00OS40LTI3LjgtMTItMTkuNS0xMy4zLTQwLjctOC4yLTYyLjYgNy44LTMzLjggMzAuMS01NS4yIDM4LjYtNjQuMy0xOC43LTYuMi0zMyAxLjctNDYuNCAxMy45IC44LTEzLjkgNC4zLTI2LjIgMTEuOC0zNy4zLTI0LjMgMTAuNi00NS45IDI1LTY0LjggNDMuOS0uMy01LjggNS40LTQzLjcgNS42LTQ0LjcgLjMtMi43LS42LTUuMy0zLTcuNC0yNC4yIDI0LjctNDQuNSA1MS44LTU2LjEgODQuNiA3LjQtNS45IDE0LjktMTEuNCAyMy42LTE2LjItOC4zIDIyLjMtMTkuNiA1Mi44LTcuOCAxMDEuMSA0LjYgMTkgMTEuOSAzNi44IDI0LjEgNTIuMyAyLjkgMy43IDYuMyA2LjkgOS41IDEwLjMgLjItLjIgLjQtLjMgLjYtLjUtMS40LTctMi4yLTE0LjEtMS41LTIxLjkgMi4yIDMuMiAzLjkgNiA1LjkgOC42IDEyLjYgMTYgMjguNyAyNy40IDQ3LjIgMzUuNiAyNSAxMS4zIDUxLjEgMTMuMyA3Ny45IDguNiA1NC45LTkuNyA5MC43LTQ4LjYgMTE2LTk4LjggMS0xLjggLjYtMi45LS45LTQuMnptMTcyLTQ2LjRjLTkuNS0zLjEtMjIuMi00LjItMjguNy0yLjkgOS45IDQgMTQuMSA2LjYgMTguOCAxMiAxMi42IDE0LjQgMTAuNCAzNC43LTUuNCA0NS42LTExLjcgOC4xLTI0LjkgMTAuNS0zOC45IDkuMS0xLjItLjEtMi4zLS40LTMtLjYgMi44LTMuNyA2LTcgOC4xLTEwLjggOS40LTE2LjggNS40LTQyLjEtOC43LTU2LjEtMi4xLTIuMS00LjYtMy45LTctNS45LS4zIDEuMy0uMSAyLjEgLjEgMi44IDQuMiAxNi42LTguMSAzMi40LTI0LjggMzEuOC03LjYtLjMtMTMuOS0zLjgtMTkuNi04LjUtMTkuNS0xNi4xLTM5LjEtMzIuMS01OC41LTQ4LjMtNS45LTQuOS0xMi41LTguMS0yMC4xLTguNy00LjYtLjQtOS4zLS42LTEzLjktLjktNS45LS40LTguOC0yLjgtMTAuNC04LjQtLjktMy40LTEuNS02LjgtMi4yLTEwLjItMS41LTguMS02LjItMTMtMTQuMy0xNC4yLTQuNC0uNy04LjktMS0xMy4zLTEuNS0xMy0xLjQtMTkuOC03LjQtMjIuNi0yMC4zLTUgMTEtMS42IDIyLjQgNy4zIDI5LjkgNC41IDMuOCA5LjMgNy4zIDEzLjggMTEuMiA0LjYgMy44IDcuNCA4LjcgNy45IDE0LjggLjQgNC43IC44IDkuNSAxLjggMTQuMSAyLjIgMTAuNiA4LjkgMTguNCAxNyAyNS4xIDE2LjUgMTMuNyAzMyAyNy4zIDQ5LjUgNDEuMSAxNy45IDE1IDEzLjkgMzIuOCAxMyA1Ni0uOSAyMi45IDEyLjIgNDIuOSAzMy41IDUxLjIgMSAuNCAyIC42IDMuNiAxLjEtMTUuNy0xOC4yLTEwLjEtNDQuMSAuNy01Mi4zIC4zIDIuMiAuNCA0LjMgLjkgNi40IDkuNCA0NC4xIDQ1LjQgNjQuMiA4NSA1Ni45IDE2LTIuOSAzMC42LTguOSA0Mi45LTE5LjggMi0xLjggMy43LTQuMSA1LjktNi41LTE5LjMgNC42LTM1LjggLjEtNTAuOS0xMC42IC43LS4zIDEuMy0uMyAxLjktLjMgMjEuMyAxLjggNDAuNi0zLjQgNTctMTcuNCAxOS41LTE2LjYgMjYuNi00Mi45IDE3LjQtNjYtOC4zLTIwLjEtMjMuNi0zMi4zLTQzLjgtMzguOXpNOTkuOCAxNzkuM2MtNS4zLTkuMi0xMy4yLTE1LjYtMjIuMS0yMS4zIDEzLjctLjUgMjYuNiAuMiAzOS42IDMuNy03LTEyLjItOC41LTI0LjctNS0zOC43IDUuMyAxMS45IDEzLjcgMjAuMSAyMy42IDI2LjggMTkuNyAxMy4yIDM1LjcgMTkuNiA0Ni43IDMwLjIgMy40IDMuMyA2LjMgNy4xIDkuNiAxMC45LS44LTIuMS0xLjQtNC4xLTIuMi02LTUtMTAuNi0xMy0xOC42LTIyLjYtMjUtMS44LTEuMi0yLjgtMi41LTMuNC00LjUtMy4zLTEyLjUtMy0yNS4xLS43LTM3LjYgMS01LjUgMi44LTEwLjkgNC41LTE2LjMgLjgtMi40IDIuMy00LjYgNC02LjYgLjYgNi45IDAgMjUuNSAxOS42IDQ2IDEwLjggMTEuMyAyMi40IDIxLjkgMzMuOSAzMi43IDkgOC41IDE4LjMgMTYuNyAyNS41IDI2LjggMS4xIDEuNiAyLjIgMy4zIDMuOCA0LjctNS0xMy0xNC4yLTI0LjEtMjQuMi0zMy44LTkuNi05LjMtMTkuNC0xOC40LTI5LjItMjcuNC0zLjMtMy00LjYtNi43LTUuMS0xMC45LTEuMi0xMC40IDAtMjAuNiA0LjMtMzAuMiAuNS0xIDEuMS0yIDEuOS0zLjMgLjUgNC4yIC42IDcuOSAxLjQgMTEuNiA0LjggMjMuMSAyMC40IDM2LjMgNDkuMyA2My41IDEwIDkuNCAxOS4zIDE5LjIgMjUuNiAzMS42IDQuOCA5LjMgNy4zIDE5IDUuNyAyOS42LS4xIC42IC41IDEuNyAxLjEgMiA2LjIgMi42IDEwIDYuOSA5LjcgMTQuMyA3LjctMi42IDEyLjUtOCAxNi40LTE0LjUgNC4yIDIwLjItOS4xIDUwLjMtMjcuMiA1OC43IC40LTQuNSA1LTIzLjQtMTYuNS0yNy43LTYuOC0xLjMtMTIuOC0xLjMtMjIuOS0yLjEgNC43LTkgMTAuNC0yMC42IC41LTIyLjQtMjQuOS00LjYtNTIuOCAxLjktNTcuOCA0LjYgOC4yIC40IDE2LjMgMSAyMy41IDMuMy0yIDYuNS00IDEyLjctNS44IDE4LjktMS45IDYuNSAyLjEgMTQuNiA5LjMgOS42IDEuMi0uOSAyLjMtMS45IDMuMy0yLjctMy4xIDE3LjktMi45IDE1LjktMi44IDE4LjMgLjMgMTAuMiA5LjUgNy44IDE1LjcgNy4zLTIuNSAxMS44LTI5LjUgMjcuMy00NS40IDI1LjggNy00LjcgMTIuNy0xMC4zIDE1LjktMTcuOS02LjUgLjgtMTIuOSAxLjYtMTkuMiAyLjRsLS4zLS45YzQuNy0zLjQgOC03LjggMTAuMi0xMy4xIDguNy0yMS4xLTMuNi0zOC0yNS0zOS45LTkuMS0uOC0xNy44IC44LTI1LjkgNS41IDYuMi0xNS42IDE3LjItMjYuNiAzMi42LTM0LjUtMTUuMi00LjMtOC45LTIuNy0yNC42LTYuMyAxNC42LTkuMyAzMC4yLTEzLjIgNDYuNS0xNC42LTUuMi0zLjItNDguMS0zLjYtNzAuMiAyMC45IDcuOSAxLjQgMTUuNSAyLjggMjMuMiA0LjItMjMuOCA3LTQ0IDE5LjctNjIuNCAzNS42IDEuMS00LjggMi43LTkuNSAzLjMtMTQuMyAuNi00LjUgLjgtOS4yIC4xLTEzLjYtMS41LTkuNC04LjktMTUuMS0xOS43LTE2LjMtNy45LS45LTE1LjYgLjEtMjMuMyAxLjMtLjkgLjEtMS43IC4zLTIuOSAwIDE1LjgtMTQuOCAzNi0yMS43IDUzLjEtMzMuNSA2LTQuNSA2LjgtOC4yIDMtMTQuOXptMTI4LjQgMjYuOGMzLjMgMTYgMTIuNiAyNS41IDIzLjggMjQuMy00LjYtMTEuMy0xMi4xLTE5LjUtMjMuOC0yNC4zeiJdfSxVcGU9e3ByZWZpeDoiZmFiIixpY29uTmFtZToidnVlanMiLGljb246WzQ0OCw1MTIsW10sImY0MWYiLCJNMzU2LjkgNjQuM2wtNzYuOSAwLTU2IDg4LjYtNDgtODguNi0xNzYgMCAyMjQgMzgzLjcgMjI0LTM4My43LTkxLjEgMHpNNTUuNyA5Ni4zbDUzLjggMCAxMTQuNSAxOTguMiAxMTQuNC0xOTguMiA1My44IDAtMTY4LjIgMjg4LjItMTY4LjMtMjg4LjJ6Il19LFdwZT17cHJlZml4OiJmYWIiLGljb25OYW1lOiJtZXRhIixpY29uOls2NDAsNTEyLFtdLCJlNDliIiwiTTY0MCAzMTcuOWMwIDkxLjMtMzkuNCAxNDguNS0xMTAuMyAxNDguNS02Mi42IDAtOTUuOC0zNC42LTE1Ni45LTEzNi42bC0zMS40LTUyLjZjLTguMy0xMi41LTE0LjUtMjQuMi0yMS4yLTM1LTIwLjEgMzMuOC00Ny4xIDgzLTQ3LjEgODMtNjcgMTE2LjYtMTA0LjYgMTQxLjItMTU2LjkgMTQxLjItNzIuOCAwLTExNi4yLTU3LjMtMTE2LjItMTQ1LjkgMC0xNDMgNzkuOC0yNzguMSAxODMuOS0yNzguMSA1MC4yIDAgOTMuOCAyNC43IDE0NC44IDg5LjUgMzcuMS01MC4xIDc4LjEtODkuNSAxMzAuNi04OS41IDk5LjEgMCAxODAuNyAxMjUuNyAxODAuNyAyNzUuNXpNMjg3LjQgMTkyLjJjLTQyLjktNjIuMS03MC45LTgwLjUtMTA0LjQtODAuNS02MS45IDAtMTEzLjggMTA2LjEtMTEzLjggMjEwIDAgNDguNSAxOC41IDc1LjcgNDkuNiA3NS43IDMwLjIgMCA0OS0xOSAxMDMuMi0xMDMuOCAwIDAgMjQuNy0zOS4xIDY1LjQtMTAxLjR6TTUzMS4yIDM5Ny40YzMyLjIgMCA0Ni45LTI3LjUgNDYuOS03NC45IDAtMTI0LjItNTQuMy0yMjUuNC0xMjMuMi0yMjUuNC0zMy4yIDAtNjEuMSAyNS45LTk0LjkgNzggOS40IDEzLjggMTkuMSAyOSAyOS4zIDQ1LjRsMzcuNSA2Mi40YzU4LjcgOTQuMSA3My41IDExNC41IDEwNC40IDExNC41eiJdfSxHcGU9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiY3JlYXRpdmUtY29tbW9ucy1zaGFyZSIsaWNvbjpbNTEyLDUxMixbXSwiZjRmMiIsIk0yNTUuNiA4QzM5Ny40IDggNTA0IDExOC4xIDUwNCAyNTYgNTA0IDQwMy4xIDM4NS41IDUwNCAyNTUuNiA1MDQgMTIxLjYgNTA0IDggMzk0LjUgOCAyNTYgOCAxMjMuMSAxMTIuNyA4IDI1NS42IDh6bS44IDQ0LjdjLTExOC4yIDAtMjAzLjcgOTcuOS0yMDMuNyAyMDMuMyAwIDEwOS44IDkxLjIgMjAyLjggMjAzLjcgMjAyLjggMTAzLjIgMCAyMDIuOC04MS4xIDIwMi44LTIwMi44IC4xLTExMy44LTkwLjItMjAzLjMtMjAyLjgtMjAzLjN6bTEwMSAxMzIuNGM3LjggMCAxMy43IDYuMSAxMy43IDEzLjdsMCAxODIuNWMwIDcuNy02LjEgMTMuNy0xMy43IDEzLjdsLTEzNS4xIDBjLTcuNyAwLTEzLjctNi0xMy43LTEzLjdsMC01NC01NCAwYy03LjggMC0xMy43LTYtMTMuNy0xMy43bDAtMTgyLjVjMC04LjIgNi42LTEyLjcgMTIuNC0xMy43bDEzNi40IDBjNy43IDAgMTMuNyA2IDEzLjcgMTMuN2wwIDU0IDU0IDB6TTE2Ny45IDMwMC4zbDQwLjcgMCAwLTEwMS40YzAtNy40IDUuOC0xMi42IDEyLTEzLjdsNTUuOCAwIDAtNDAuMy0xMDguNSAwIDAgMTU1LjR6bTE3Ni4yLTg4LjFsLTEwOC41IDAgMCAxNTUuNCAxMDguNSAwIDAtMTU1LjR6Il19LFlwZT17cHJlZml4OiJmYWIiLGljb25OYW1lOiJzdHVkaW92aW5hcmkiLGljb246WzUxMiw1MTIsW10sImYzZjgiLCJNNDgwLjcgMTg3LjdsNC4yIDI4IDAgMjgtMjUuMSA0NC4xLTM5LjggNzguNC01Ni4xIDY3LjUtNzkuMSAzNy44LTE3LjcgMjQuNS03LjcgMTItOS42IDRzMTcuMy02My42IDE5LjQtNjMuNiAyMC4zIC43IDIwLjMgLjdsNjYuNy0zOC42LTkyLjUgMjYuMS01NS45IDM2LjgtMjIuOCAyOC02LjYgMS40IDIwLjgtNzMuNiA2LjktNS41IDIwLjcgMTIuOSA4OC4zLTQ1LjIgNTYuOC01MS41IDE0LjgtNjguNC0xMjUuNCAyMy4zIDE1LjItMTguMi0xNzMuNC01My4zIDgxLjktMTAuNS0xNjYtMTIyLjkgMTE0LjkgMTguMS0xMDEuMy0xMDggMjUyLjkgMTI2LjYtMzEuNS0zOCAxMjQuNCA3NC40LTE0My4zLTk5IDE4LjcgMzguNC00OS42LTE4LjEtNDUuNS04NC4zIDE5NC42IDEyMi00Mi45LTU1LjggMTA4IDk2LjQgMTItOC45LTIxLTE2LjQgNC4yLTM3LjggMzcuOC0xMC40IDI5LjIgMjQuNyAxMS41IDQuMi03IDYuMiA4LjUgMTItMTMuMSA3LjQtMTAuMyAyMC4yIDEwLjUgMjMuOXoiXX0sWnBlPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImJpdGJ1Y2tldCIsaWNvbjpbNTEyLDUxMixbNjE4MTBdLCJmMTcxIiwiTTIyLjIgMzJjLTIuMSAwLTQuMiAuNC02LjEgMS4xcy0zLjcgMS45LTUuMiAzLjQtMi43IDMuMi0zLjUgNS4xLTEuMyA0LTEuMyA2LjFjMCAuOSAuMSAxLjkgLjIgMi44TDc0LjEgNDYyLjdjLjggNS4xIDMuNCA5LjcgNy4zIDEzczguOCA1LjIgMTQgNS4ybDMyNS43IDBjMy44IC4xIDcuNS0xLjMgMTAuNS0zLjdzNC45LTUuOSA1LjUtOS43TDUwNSA1MC43Yy43LTQuMi0uMy04LjQtMi44LTExLjlzLTYuMi01LjctMTAuNC02LjRjLS45LS4xLTEuOS0uMi0yLjgtLjJMMjIuMiAzMnpNMzA4LjEgMzI5LjhsLTEwNCAwLTI4LjEtMTQ3IDE1Ny4zIDAtMjUuMiAxNDd6Il19LFhwZT17cHJlZml4OiJmYWIiLGljb25OYW1lOiJ2ayIsaWNvbjpbNDQ4LDUxMixbXSwiZjE4OSIsIk0zMS41IDYzLjVDMCA5NSAwIDE0NS43IDAgMjQ3TDAgMjY1QzAgMzY2LjMgMCA0MTcgMzEuNSA0NDguNVMxMTMuNyA0ODAgMjE1IDQ4MGwxNy45IDBjMTAxLjQgMCAxNTIuMSAwIDE4My41LTMxLjVTNDQ4IDM2Ni4zIDQ0OCAyNjVsMC0xNy45YzAtMTAxLjQgMC0xNTIuMS0zMS41LTE4My41UzMzNC4zIDMyIDIzMyAzMkwyMTUgMzJDMTEzLjcgMzIgNjMgMzIgMzEuNSA2My41ek03NS42IDE2OC4zbDUxLjEgMGMxLjcgODUuNSAzOS40IDEyMS43IDY5LjMgMTI5LjJsMC0xMjkuMiA0OC4yIDAgMCA3My43YzI5LjUtMy4yIDYwLjUtMzYuOCA3MC45LTczLjdsNDguMiAwYy0zLjkgMTkuMi0xMS44IDM3LjMtMjMuMSA1My4zcy0yNS43IDI5LjUtNDIuNSAzOS42YzE4LjcgOS4zIDM1LjIgMjIuNCA0OC40IDM4LjVzMjIuOSAzNC45IDI4LjMgNTVsLTUzIDBjLTQuOS0xNy41LTE0LjgtMzMuMS0yOC42LTQ1cy0zMC43LTE5LjQtNDguNy0yMS42bDAgNjYuNi01LjggMGMtMTAyLjEgMC0xNjAuMy03MC0xNjIuOC0xODYuNXoiXX0sS3BlPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImdpdGh1YiIsaWNvbjpbNTEyLDUxMixbXSwiZjA5YiIsIk0xNzMuOSAzOTcuNGMwIDItMi4zIDMuNi01LjIgMy42LTMuMyAuMy01LjYtMS4zLTUuNi0zLjYgMC0yIDIuMy0zLjYgNS4yLTMuNiAzLS4zIDUuNiAxLjMgNS42IDMuNnptLTMxLjEtNC41Yy0uNyAyIDEuMyA0LjMgNC4zIDQuOSAyLjYgMSA1LjYgMCA2LjItMnMtMS4zLTQuMy00LjMtNS4yYy0yLjYtLjctNS41IC4zLTYuMiAyLjN6bTQ0LjItMS43Yy0yLjkgLjctNC45IDIuNi00LjYgNC45IC4zIDIgMi45IDMuMyA1LjkgMi42IDIuOS0uNyA0LjktMi42IDQuNi00LjYtLjMtMS45LTMtMy4yLTUuOS0yLjl6TTI1Mi44IDhjLTEzOC43IDAtMjQ0LjggMTA1LjMtMjQ0LjggMjQ0IDAgMTEwLjkgNjkuOCAyMDUuOCAxNjkuNSAyMzkuMiAxMi44IDIuMyAxNy4zLTUuNiAxNy4zLTEyLjEgMC02LjItLjMtNDAuNC0uMy02MS40IDAgMC03MCAxNS04NC43LTI5LjggMCAwLTExLjQtMjkuMS0yNy44LTM2LjYgMCAwLTIyLjktMTUuNyAxLjYtMTUuNCAwIDAgMjQuOSAyIDM4LjYgMjUuOCAyMS45IDM4LjYgNTguNiAyNy41IDcyLjkgMjAuOSAyLjMtMTYgOC44LTI3LjEgMTYtMzMuNy01NS45LTYuMi0xMTIuMy0xNC4zLTExMi4zLTExMC41IDAtMjcuNSA3LjYtNDEuMyAyMy42LTU4LjktMi42LTYuNS0xMS4xLTMzLjMgMi42LTY3LjkgMjAuOS02LjUgNjkgMjcgNjkgMjcgMjAtNS42IDQxLjUtOC41IDYyLjgtOC41czQyLjggMi45IDYyLjggOC41YzAgMCA0OC4xLTMzLjYgNjktMjcgMTMuNyAzNC43IDUuMiA2MS40IDIuNiA2Ny45IDE2IDE3LjcgMjUuOCAzMS41IDI1LjggNTguOSAwIDk2LjUtNTguOSAxMDQuMi0xMTQuOCAxMTAuNSA5LjIgNy45IDE3IDIyLjkgMTcgNDYuNCAwIDMzLjctLjMgNzUuNC0uMyA4My42IDAgNi41IDQuNiAxNC40IDE3LjMgMTIuMSAxMDAtMzMuMiAxNjcuOC0xMjguMSAxNjcuOC0yMzkgMC0xMzguNy0xMTIuNS0yNDQtMjUxLjItMjQ0ek0xMDUuMiAzNTIuOWMtMS4zIDEtMSAzLjMgLjcgNS4yIDEuNiAxLjYgMy45IDIuMyA1LjIgMSAxLjMtMSAxLTMuMy0uNy01LjItMS42LTEuNi0zLjktMi4zLTUuMi0xem0tMTAuOC04LjFjLS43IDEuMyAuMyAyLjkgMi4zIDMuOSAxLjYgMSAzLjYgLjcgNC4zLS43IC43LTEuMy0uMy0yLjktMi4zLTMuOS0yLS42LTMuNi0uMy00LjMgLjd6bTMyLjQgMzUuNmMtMS42IDEuMy0xIDQuMyAxLjMgNi4yIDIuMyAyLjMgNS4yIDIuNiA2LjUgMSAxLjMtMS4zIC43LTQuMy0xLjMtNi4yLTIuMi0yLjMtNS4yLTIuNi02LjUtMXptLTExLjQtMTQuN2MtMS42IDEtMS42IDMuNiAwIDUuOXM0LjMgMy4zIDUuNiAyLjNjMS42LTEuMyAxLjYtMy45IDAtNi4yLTEuNC0yLjMtNC0zLjMtNS42LTJ6Il19LFFwZT17cHJlZml4OiJmYWIiLGljb25OYW1lOiJjb2RpZXBpZSIsaWNvbjpbNTEyLDUxMixbXSwiZjI4NCIsIk00NDIuNSAyMDIuOWMzMC43IDAgMzMuNSA1My4xLS4zIDUzLjFsLTEwLjggMCAwIDQ0LjMtMjYuNiAwIDAtOTcuNCAzNy43IDB6TTQ5MiAzNTIuNkM0NDkuOSA0NDQuNSAzNzAuNCA1MDQgMjY4IDUwNCAxMzEgNTA0IDIwIDM5MyAyMCAyNTZTMTMxIDggMjY4IDhjOTcuNCAwIDE3Mi44IDUzLjcgMjE4LjIgMTM4LjRMMzAwLjIgMjU1LjIgNDkyIDM1Mi42em0tMzguNSAxMi41bC02MC4zLTMwLjdjLTI3LjEgNDQuMy03MC40IDcxLjQtMTIyLjQgNzEuNC04Mi41IDAtMTQ5LjItNjYuNy0xNDkuMi0xNDguOSAwLTgyLjUgNjYuNy0xNDkuMiAxNDkuMi0xNDkuMiA0OC40IDAgODguOSAyMy41IDExNi45IDYzLjRsNTkuNS0zNC42QzQwNi41IDczLjkgMzQyLjUgMzYuNSAyNjggMzYuNSAxNDYuOCAzNi41IDQ4LjUgMTM0LjggNDguNSAyNTZTMTQ2LjggNDc1LjUgMjY4IDQ3NS41Yzc4LjYgMCAxNDYuNS00Mi4xIDE4NS41LTExMC40eiJdfSxKcGU9e3ByZWZpeDoiZmFiIixpY29uTmFtZToicGllZC1waXBlciIsaWNvbjpbNDQ4LDUxMixbXSwiZjJhZSIsIk00NDAuMiAyMy4yYy0yNi43IDYuOC02OC4xIDI4LjUtMTE0LjYgNjcuNS0zMC45LTE3LjUtNjUuOC0yNi43LTEwMS40LTI2LjctMTE0LjkgMC0yMDggOTMuMS0yMDggMjA4czkzLjEgMjA4IDIwOCAyMDggMjA4LTkzLjEgMjA4LTIwOGMuMS01NC4xLTIxLTEwNi4xLTU4LjctMTQ0LjgtNi42IDguNS0xMi4zIDE3LjctMTcgMjcuNCAyOC45IDMyLjMgNDQuOCA3NC4xIDQ0LjkgMTE3LjQgMCA5Ny43LTc5LjQgMTc3LjEtMTc3LjEgMTc3LjEtMzAuOCAwLTYxLTguMS04Ny42LTIzLjQgODIuOS0xMDcuMyAxNTAuOC0zNy44IDE4NC4zLTIyNi42IDUuOC0zMi42IDI4LTk0LjMgMTI2LjItMTYwLjIgOC4xLTUuNCAyLjQtMTguMS03LTE1Ljd6TTEwOS4zIDQwNi40Qzg5LjggMzg5LjggNzQuMiAzNjkuMiA2My41IDM0NnMtMTYuMy00OC41LTE2LjMtNzRjMC05Ny43IDc5LjQtMTc3LjEgMTc3LjEtMTc3LjEgMjYuNiAwIDUyLjggNi4xIDc2LjYgMTcuOC02NiA2Mi4xLTEyNi45IDE1Mi45LTE5MS42IDI5My44eiJdfSxlOWU9e3ByZWZpeDoiZmFiIixpY29uTmFtZToicmFzcGJlcnJ5LXBpIixpY29uOls0NDgsNTEyLFtdLCJmN2JiIiwiTTM5Mi41IDIzMi41bC0zLjctNi41Yy4xLTQ2LjQtMjEuNC02NS4zLTQ2LjUtNzkuNyA3LjYtMiAxNS40LTMuNiAxNy42LTEzLjIgMTMuMS0zLjMgMTUuOC05LjQgMTcuMS0xNS44IDMuNC0yLjMgMTQuOC04LjcgMTMuNi0xOS43IDYuNC00LjQgMTAtMTAuMSA4LjEtMTguMSA2LjktNy41IDguNy0xMy43IDUuOC0xOS40IDguMy0xMC4zIDQuNi0xNS42IDEuMS0yMC45IDYuMi0xMS4yIC43LTIzLjItMTYuNi0yMS4yLTYuOS0xMC4xLTIxLjktNy44LTI0LjItNy44LTIuNi0zLjItNi02LTE2LjUtNC43LTYuOC02LjEtMTQuNC01LTIyLjMtMi4xLTkuMy03LjMtMTUuNS0xLjQtMjIuNiAuOC0xMS4zLTMuNi0xMy45IDEuMy0xOS40IDMuNC0xMi4zLTIuNi0xNi4xIDMtMjIgOC45bC02LjktLjFjLTE4LjYgMTAuOC0yNy44IDMyLjgtMzEuMSA0NC4xLTMuMy0xMS4zLTEyLjUtMzMuMy0zMS4xLTQ0LjFsLTYuOSAuMWMtNS45LTUuOS05LjctMTEuNS0yMi04LjktNS42LTItOC4xLTctMTkuNC0zLjQtNC42LTEuNC04LjktNC40LTEzLjktNC4zLTIuNiAuMS01LjUgMS04LjcgMy41LTcuOS0zLTE1LjUtNC0yMi4zIDIuMS0xMC41LTEuMy0xNCAxLjQtMTYuNSA0LjctMi4zIDAtMTcuMy0yLjMtMjQuMiA3LjgtMTcuMy0yLTIyLjcgMTAtMTYuNSAyMS4yLTMuNSA1LjQtNy4yIDEwLjcgMS4xIDIwLjktMi45IDUuNy0xLjEgMTEuOSA1LjggMTkuNC0xLjggOCAxLjggMTMuNyA4LjEgMTguMS0xLjIgMTEgMTAuMiAxNy40IDEzLjYgMTkuNyAxLjMgNi40IDQgMTIuNCAxNy4xIDE1LjggMi4yIDkuNSAxMCAxMS4yIDE3LjYgMTMuMi0yNS4xIDE0LjQtNDYuNiAzMy4zLTQ2LjUgNzkuN2wtMy43IDYuNWMtMjguOCAxNy4yLTU0LjcgNzIuNy0xNC4yIDExNy43IDIuNiAxNC4xIDcuMSAyNC4yIDExIDM1LjQgNS45IDQ1LjIgNDQuNSA2Ni4zIDU0LjYgNjguOCAxNC45IDExLjIgMzAuOCAyMS44IDUyLjIgMjkuMiAyMC4zIDIwLjYgNDIuMyAyOC40IDY0LjMgMjguNGwxIDBjMjIuMSAwIDQ0LTcuOCA2NC4yLTI4LjQgMjEuNS03LjQgMzcuMy0xOCA1Mi4yLTI5LjIgMTAuMi0yLjUgNDguNy0yMy42IDU0LjYtNjguOCAzLjktMTEuMiA4LjQtMjEuMyAxMS0zNS40IDQwLjYtNDUuMSAxNC43LTEwMC41LTE0LTExNy43em0tMjIuMi04Yy0xLjUgMTguNy05OC45LTY1LjEtODIuMS02Ny45IDQ1LjctNy41IDgzLjYgMTkuMiA4Mi4xIDY3Ljl6bS00MyA5My4xYy0yNC41IDE1LjgtNTkuOCA1LjYtNzguOC0yMi44cy0xNC42LTY0LjIgOS45LTgwIDU5LjgtNS42IDc4LjggMjIuOCAxNC42IDY0LjItOS45IDgwek0yNTkuNCAyOS4zYy44IDQuMiAxLjggNi44IDIuOSA3LjYgNS40LTUuOCA5LjgtMTEuNyAxNi44LTE3LjMgMCAzLjMtMS43IDYuOCAyLjUgOS40IDMuNy01IDguOC05LjUgMTUuNS0xMy4zLTMuMiA1LjYtLjYgNy4zIDEuMiA5LjYgNS4xLTQuNCAxMC04LjggMTkuNC0xMi4zLTIuNiAzLjEtNi4yIDYuMi0yLjQgOS44IDUuMy0zLjMgMTAuNi02LjYgMjMuMS04LjktMi44IDMuMS04LjcgNi4zLTUuMSA5LjQgNi42LTIuNSAxNC00LjQgMjIuMS01LjQtMy45IDMuMi03LjEgNi4zLTMuOSA4LjggNy4xLTIuMiAxNi45LTUuMSAyNi40LTIuNmwtNiA2LjFjLS43IC44IDE0LjEgLjYgMjMuOSAuOC0zLjYgNS03LjIgOS43LTkuMyAxOC4yIDEgMSA1LjggLjQgMTAuNCAwLTQuNyA5LjktMTIuOCAxMi4zLTE0LjcgMTYuNiAyLjkgMi4yIDYuOCAxLjYgMTEuMiAuMS0zLjQgNi45LTEwLjQgMTEuNy0xNiAxNy4zIDEuNCAxIDMuOSAxLjYgOS43IC45LTUuMiA1LjUtMTEuNCAxMC41LTE4LjggMTUgMS4zIDEuNSA1LjggMS41IDEwIDEuNi02LjcgNi41LTE1LjMgOS45LTIzLjQgMTQuMiA0IDIuNyA2LjkgMi4xIDEwIDIuMS01LjcgNC43LTE1LjQgNy4xLTI0LjQgMTAgMS43IDIuNyAzLjQgMy40IDcuMSA0LjEtOS41IDUuMy0yMy4yIDIuOS0yNyA1LjYgLjkgMi43IDMuNiA0LjQgNi43IDUuOC0xNS40IC45LTU3LjMtLjYtNjUuNC0zMi4zIDE1LjctMTcuMyA0NC40LTM3LjUgOTMuNy02Mi42LTM4LjQgMTIuOC03MyAzMC0xMDIgNTMuNS0zNC4zLTE1LjktMTAuOC01NS45IDUuOC03MS44ek0yMjUgMTQzLjljMjQuMi0uMyA1NC4xIDE3LjggNTQgMzQuNy0uMSAxNS0yMSAyNy4xLTUzLjggMjYuOS0zMi4xLS40LTUzLjctMTUuMi01My42LTI5LjggMC0xMS45IDI2LjItMzIuNSA1My40LTMxLjh6TTEwMiAxMzEuMWMzLjctLjcgNS40LTEuNSA3LjEtNC4xLTktMi44LTE4LjctNS4zLTI0LjQtMTAgMy4xIDAgNiAuNyAxMC0yLjEtOC4xLTQuMy0xNi43LTcuNy0yMy40LTE0LjIgNC4yLS4xIDguNyAwIDEwLTEuNi03LjQtNC41LTEzLjYtOS41LTE4LjgtMTUgNS44IC43IDguMyAuMSA5LjctLjktNS42LTUuNi0xMi43LTEwLjQtMTYtMTcuMyA0LjMgMS41IDguMyAyIDExLjItLjEtMS45LTQuMi0xMC02LjctMTQuNy0xNi42IDQuNiAuNCA5LjQgMSAxMC40IDAtMi4xLTguNS01LjgtMTMuMy05LjMtMTguMiA5LjgtLjEgMjQuNiAwIDIzLjktLjhsLTYtNi4xYzkuNS0yLjUgMTkuMyAuNCAyNi40IDIuNiAzLjItMi41LS4xLTUuNi0zLjktOC44IDguMSAxLjEgMTUuNCAyLjkgMjIuMSA1LjQgMy41LTMuMS0yLjMtNi4zLTUuMS05LjQgMTIuNSAyLjMgMTcuOCA1LjYgMjMuMSA4LjkgMy44LTMuNiAuMi02LjctMi40LTkuOCA5LjQgMy40IDE0LjMgNy45IDE5LjQgMTIuMyAxLjctMi4zIDQuNC00IDEuMi05LjYgNi43IDMuOCAxMS44IDguMyAxNS41IDEzLjMgNC4xLTIuNiAyLjUtNi4yIDIuNS05LjQgNyA1LjYgMTEuNCAxMS41IDE2LjggMTcuMyAxLjEtLjggMi0zLjQgMi45LTcuNiAxNi42IDE1LjkgNDAuMSA1NS45IDYgNzEuOC0yOS0yMy41LTYzLjYtNDAuNy0xMDItNTMuNSA0OS4zIDI1IDc4IDQ1LjMgOTMuNyA2Mi42LTggMzEuOC01MCAzMy4yLTY1LjQgMzIuMyAzLjEtMS40IDUuOC0zLjIgNi43LTUuOC00LTIuOC0xNy42LS40LTI3LjItNS42em02MC4xIDI0LjFjMTYuOCAyLjgtODAuNiA4Ni41LTgyLjEgNjcuOS0xLjUtNDguNyAzNi41LTc1LjUgODIuMS02Ny45ek01OC43IDM0MmMtMjMuNy0xOC44LTMxLjMtNzMuNyAxMi42LTk4LjMgMjYuNS03IDkgMTA3LjgtMTIuNiA5OC4zem05MSA5OC4yYy0xMy4zIDcuOS00NS44IDQuNy02OC44LTI3LjktMTUuNS0yNy40LTEzLjUtNTUuMi0yLjYtNjMuNCAxNi4zLTkuOCA0MS41IDMuNCA2MC45IDI1LjYgMTYuOSAyMCAyNC42IDU1LjMgMTAuNSA2NS43ek0xMjMuMyAzMjAuNWMtMjQuNS0xNS44LTI4LjktNTEuNi05LjktODBzNTQuMy0zOC42IDc4LjgtMjIuOCAyOC45IDUxLjYgOS45IDgwYy0xOS4xIDI4LjQtNTQuNCAzOC42LTc4LjggMjIuOHpNMjI1LjUgNDk2Yy0yOS40IDEuMi01OC4yLTIzLjctNTcuOC0zMi4zLS40LTEyLjcgMzUuOC0yMi42IDU5LjMtMjIgMjMuNy0xIDU1LjYgNy41IDU1LjcgMTguOSAuNSAxMS0yOC44IDM1LjktNTcuMiAzNS40em01OC45LTEyNC45Yy4yIDI5LjctMjYuMiA1My44LTU4LjggNTRzLTU5LjItMjMuOC01OS40LTUzLjRsMC0uNmMtLjItMjkuNyAyNi4yLTUzLjggNTguOC01NHM1OS4yIDIzLjggNTkuNCA1My40bDAgLjZ6bTgyLjIgNDIuN2MtMjUuMyAzNC42LTU5LjYgMzUuOS03Mi4zIDI2LjMtMTMuMy0xMi40LTMuMi01MC45IDE1LjEtNzIgMjAuOS0yMy4zIDQzLjMtMzguNSA1OC45LTI2LjYgMTAuNSAxMC4zIDE2LjcgNDkuMS0xLjcgNzIuM3ptMjIuOS03My4yYy0yMS41IDkuNC0zOS0xMDUuMy0xMi42LTk4LjMgNDMuOSAyNC43IDM2LjMgNzkuNiAxMi42IDk4LjN6Il19LHQ5ZT17cHJlZml4OiJmYWIiLGljb25OYW1lOiJjc3MzIixpY29uOls1MTIsNTEyLFtdLCJmMTNjIiwiTTQ4MCAzMmwtNjQgMzY4LTIyMy4zIDgwLTE5Mi43LTgwIDE5LjYtOTQuOCA4MiAwLTggNDAuNiAxMTYuNCA0NC40IDEzNC4xLTQ0LjQgMTguOC05Ny4xLTMzMy40IDAgMTYtODIgMzMzLjcgMCAxMC41LTUyLjctMzMzLjQgMCAxNi4zLTgyIDQwNy40IDB6Il19LGE5ZT17cHJlZml4OiJmYWIiLGljb25OYW1lOiJodWJzcG90IixpY29uOls0NDgsNTEyLFtdLCJmM2IyIiwiTTIzNS44IDIxMS42Yy0yNS4xIDIzLjctNDAuOCA1Ny4zLTQwLjggOTQuNiAwIDI5LjMgOS43IDU2LjMgMjYgNzhMMTcxLjUgNDM0Yy00LjQtMS42LTkuMS0yLjUtMTQtMi41LTEwLjggMC0yMC45IDQuMi0yOC41IDExLjhzLTExLjggMTcuOC0xMS44IDI4LjYgNC4yIDIwLjkgMTEuOCAyOC41IDE3LjggMTEuNiAyOC41IDExLjZjMTAuOCAwIDIwLjktMy45IDI4LjYtMTEuNiA3LjYtNy42IDExLjgtMTcuOCAxMS44LTI4LjUgMC00LjItLjYtOC4yLTEuOS0xMi4xbDUwLTUwLjJjMjIgMTYuOSA0OS40IDI2LjkgNzkuMyAyNi45IDcxLjkgMCAxMzAtNTguMyAxMzAtMTMwLjIgMC02NS4yLTQ3LjctMTE5LjItMTEwLjItMTI4LjdsMC02MS42YzE3LjUtNy40IDI4LjItMjMuOCAyOC4yLTQyLjkgMC0yNi4xLTIwLjktNDcuOS00Ny00Ny45UzI3OS42IDQ3IDI3OS42IDczLjFjMCAxOS4xIDEwLjcgMzUuNSAyOC4yIDQyLjlsMCA2MS4yYy0xNS4yIDIuMS0yOS42IDYuNy00Mi43IDEzLjYtMjcuNi0yMC45LTExNy41LTg1LjctMTY4LjktMTI0LjggMS4yLTQuNCAyLTkgMi0xMy44IDAtMjguOC0yMy41LTUyLjItNTIuNC01Mi4yLTI4LjggMC01Mi4yIDIzLjQtNTIuMiA1Mi4yIDAgMjguOSAyMy40IDUyLjMgNTIuMiA1Mi4zIDkuOCAwIDE4LjktMi45IDI2LjgtNy42TDIzNS44IDIxMS42em04OS41IDI1LjZhNjkgNjkgMCAxIDEgMCAxMzggNjkgNjkgMCAxIDEgMC0xMzh6Il19LGk5ZT17cHJlZml4OiJmYWIiLGljb25OYW1lOiJjbXBsaWQiLGljb246WzY0MCw1MTIsW10sImUzNjAiLCJNMjI2LjEgMzg4LjJjMC0uNy0uMi0xLjUtLjYtMi4xcy0xLTEuMS0xLjctMS40Yy0uNS0uMi0xLjEtLjQtMS42LS40bC0xNDkuNiAwYy0zLjEgMC02LjItLjgtOC45LTIuMnMtNS4xLTMuNS02LjktNi4xLTIuOS01LjUtMy4zLTguNiAwLTYuMiAxLjEtOS4xTDgxLjYgMjU1LjdjMi03LjIgNi4yLTEzLjUgMTItMTguMnMxMi45LTcuNCAyMC40LTcuOGwxNDguNiAwYzEuNS0uMSAyLjktLjYgNC0xLjZzMi0yLjIgMi40LTMuNmwxMC44LTQxLjFjLjQtMSAuMy0yLS4xLTIuOXMtMS4yLTEuNi0yLjEtMmMtLjQtLjItLjktLjMtMS40LS4zLS4xIDAtLjEgMC0uMiAwbC0xNDguNSAwYy0yMi4yIDEuMi00My40IDkuMi02MC44IDIzcy0zMCAzMi43LTM2LjIgNTQuMUwzLjUgMzU4LjhjLTMuMiA4LjctNC4yIDE4LTMgMjcuMXM0LjYgMTcuOSA5LjkgMjUuNSAxMi4zIDEzLjggMjAuNSAxOCAxNy4zIDYuNSAyNi41IDYuNmMxIDAgMS45IDAgMi45LS4xbDE0OC42IDBjMS41LS4xIDIuOS0uNyA0LTEuNnMyLTIuMiAyLjQtMy42bDEwLjctNDEuMWMuMi0uNSAuMy0uOSAuMy0xLjR6bTgwLjUtMzA3Yy4yLS40IC4zLS45IC4zLTEuNCAwLS41LS4xLTEtLjMtMS41cy0uNS0uOS0uOC0xLjItLjgtLjYtMS4yLS44LTEtLjMtMS41LS4zbC00MS4yIDBjLTEuNSAuMS0yLjkgLjYtNCAxLjZzLTIgMi4yLTIuNCAzLjZsLTIxLjMgODAuOSA1MS4xIDAgMjEuNC04MC45em0tMTI2LjMgMjg3bDUxLjEgMCAzMi0xMjIuNi01MS4xIDAtMzIgMTIyLjZ6TTUxMS45IDc5LjdjMC0xLS41LTEuOS0xLjItMi42cy0xLjctMS4xLTIuNi0xLjFjLS4xIDAtLjEgMC0uMiAwbC00MSAwYy0xLjUgLjEtMi45IC42LTQuMSAxLjVzLTIgMi4yLTIuNSAzLjZMMzY4LjkgNDMwLjZjLS4yIC40LS4zIC45LS4zIDEuMyAwIDEgLjQgMiAxLjEgMi43czEuNyAxLjEgMi43IDEuMWw0MS4yIDBjMS41LS4xIDIuOS0uNiA0LTEuNnMyLTIuMiAyLjQtMy42TDUxMS41IDgxLjJjLjItLjUgLjMtMSAuMy0xLjV6TTMyNC42IDM4NC41bC00MSAwYy0xLjUgLjEtMi45IC43LTQgMS42cy0yIDIuMi0yLjQgMy42bC0xMC43IDQxLjFjLS4yIC40LS4zIC45LS4zIDEuNCAwIC41IC4xIDEgLjMgMS41cy41IC45IC44IDEuMiAuOCAuNiAxLjIgLjggMSAuMyAxLjUgLjNjLjEgMCAuMiAwIC4zIDBsNDAuOSAwYzEuNS0uMSAyLjktLjYgNC0xLjZzMi0yLjIgMi40LTMuNmwxMC44LTQxLjFjLjItLjYgLjMtMS4yIC4zLTEuOHMtLjMtMS4yLS42LTEuNy0uOC0uOS0xLjMtMS4yLTEuMi0uNC0xLjgtLjRjLS4xIDAtLjIgMC0uMyAwbDAgMHpNNjM2IDc2LjFsLTQxIDBjLTEuNSAuMS0yLjkgLjYtNCAxLjVzLTIgMi4yLTIuNCAzLjZMNDk3LjEgNDMwLjZjLS4yIC40LS4yIC45LS4yIDEuMyAwIDEgLjQgMiAxLjEgMi43czEuNyAxLjEgMi43IDEuMWw0MS4xIDBjMS41LS4xIDIuOS0uNiA0LTEuNnMyLTIuMiAyLjQtMy42TDYzOS43IDgxLjJjLjItLjUgLjMtMSAuMy0xLjUtLjEtMS0uNS0xLjktMS4yLTIuNXMtMS42LTEtMi42LTFjLS4xIDAtLjEgMC0uMiAwbDAtLjF6TTM3MS42IDIyNS4ybDEwLjgtNDEuMWMuMi0uNCAuMi0uOSAuMi0xLjQgMC0xLS40LTItMS4xLTIuN3MtMS43LTEuMS0yLjctMS4xbC00MS4zIDBjLTEuNSAuMS0yLjkgLjctNCAxLjZzLTIgMi4yLTIuNCAzLjZsLTEwLjggNDEuMWMtLjIgLjUtLjMgMS0uMyAxLjVsMCAuMmMuMSAxIC41IDEuOCAxLjIgMi41czEuNiAxIDIuNiAxYy4xIDAgLjIgMCAuMyAwbDQxLjEgMGMxLjUtLjEgMi45LS42IDQtMS42czItMi4yIDIuNC0zLjZ6Il19LHI5ZT17cHJlZml4OiJmYWIiLGljb25OYW1lOiJkeWFsb2ciLGljb246WzQ0OCw1MTIsW10sImYzOTkiLCJNMTYgMzJsMCAxMTkuMiA2NCAwIDAtNTUuMiAxMDcuMiAwQzMwMC42IDk2IDM2OCAxNzYuMiAzNjggMjU1LjkgMzY4IDMzMiAzMDkuNCA0MTYgMTg3LjIgNDE2bC0xNzEuMiAwIDAgNjQgMTcxLjIgMEMzNDcuOSA0ODAgNDMyIDM2Ny4zIDQzMiAyNTUuOSA0MzIgMTk3LjIgNDA5LjkgMTQyLjUgMzY5LjcgMTAxLjYgMzI0LjkgNTYgMjYxLjcgMzIgMTg3LjIgMzJMMTYgMzJ6Il19LHM5ZT17cHJlZml4OiJmYWIiLGljb25OYW1lOiJlbGVtZW50b3IiLGljb246WzUxMiw1MTIsW10sImY0MzAiLCJNLjUgMjU2YzAgMTQxIDExMy42IDI1NSAyNTQuNiAyNTUgMTQyIDAgMjU2LTExNCAyNTYtMjU1IDAtMTQwLTExNC0yNTMuOS0yNTYtMjUzLjktMTQxIDAtMjU0LjYgMTEzLjktMjU0LjYgMjUzLjl6TTE5Mi4xIDE1MGwwIDIxMy00MyAwIDAtMjEzIDQzIDB6bTQyIDBsMTI4IDAgMCA0My0xMjggMCAwLTQzem0xMjggODVsMCA0My0xMjggMCAwLTQzIDEyOCAwem0tMTI4IDg1bDEyOCAwIDAgNDMtMTI4IDAgMC00M3oiXX0sbjllPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImZpcnN0LW9yZGVyIixpY29uOls0NDgsNTEyLFtdLCJmMmIwIiwiTTEzLjMgMjI5LjJjLjEtLjEgLjItLjMgLjMtLjQgMCAuMSAwIC4zLS4xIC40bC0uMiAwek0yMjQuNCA5Ni42Yy03LjEgMC0xNC42IC42LTIxLjQgMS43bDMuNyA2Ny40LTIyLTY0Yy0xNC4zIDMuNy0yNy43IDkuNC00MCAxNi42bDI5LjQgNjEuNC00NS4xLTUwLjljLTExLjQgOC45LTIxLjcgMTkuMS0zMC42IDMwLjlsNTAuNiA0NS40LTYxLjEtMjkuN2MtNy4xIDEyLjMtMTIuOSAyNS43LTE2LjYgNDBsNjQuMyAyMi42LTY4LTRjLS45IDcuMS0xLjQgMTQuNi0xLjQgMjJzLjYgMTQuNiAxLjQgMjEuN2w2Ny43LTQtNjQgMjIuNmMzLjcgMTQuMyA5LjQgMjcuNyAxNi42IDQwLjNMMTQ5IDMwNi45IDk4LjEgMzUyYzguOSAxMS43IDE5LjEgMjIuMyAzMC45IDMwLjlsNDQuOS01MC45LTI5LjUgNjEuNGMxMi4zIDcuNCAyNS43IDEzLjEgNDAgMTYuOWwyMi4zLTY0LjYtNCA2OGM3LjEgMS4xIDE0LjYgMS43IDIxLjcgMS43IDcuNCAwIDE0LjYtLjYgMjEuNy0xLjdsLTQtNjguNiAyMi42IDY1LjFjMTQuMy00IDI3LjctOS40IDQwLTE2LjlsLTI5LjQtNjEuMyA0NC45IDUwLjljMTEuNy04LjkgMjItMTkuMSAzMC42LTMwLjlsLTUwLjYtNDUuMSA2MS4xIDI5LjRjNy4xLTEyLjMgMTIuOS0yNS43IDE2LjYtNDAuM2wtNjQtMjIuMyA2Ny40IDRjMS4xLTcuMSAxLjQtMTQuMyAxLjQtMjEuN3MtLjMtMTQuOS0xLjQtMjJsLTY3LjcgNCA2NC0yMi4zYy0zLjctMTQuMy05LjEtMjgtMTYuNi00MC4zbC02MC45IDI5LjcgNTAuNi00NS40Yy04LjktMTEuNy0xOS4xLTIyLTMwLjYtMzAuOWwtNDUuMSA1MC45IDI5LjQtNjEuMWMtMTIuMy03LjQtMjUuNy0xMy4xLTQwLTE2LjlsLTIyLjMgNjQuMyA0LTY3LjdjLTcuMS0xLjItMTQuMy0xLjctMjEuNy0xLjd6TTQ0My44IDEyOEw0NDMuOCAzODQgMjI0LjQgNTEyIDUgMzg0IDUgMTI4IDIyNC40IDAgNDQzLjggMTI4em0tMTcuMSAxMC4zbC0yMDIuMy0xMTcuNC0yMDIuMyAxMTcuNCAwIDIzNS4xIDIwMi4zIDExNy43IDIwMi4zLTExNy43IDAtMjM1LjF6TTIyNC40IDM3LjFsMTg3LjcgMTA5LjQgMCAyMTguOS0xODcuNyAxMDkuNS0xODcuNy0xMDkuNSAwLTIxOC44IDE4Ny43LTEwOS41em0wIDUwLjljLTkyLjMgMC0xNjYuOSA3NS4xLTE2Ni45IDE2OCAwIDkyLjYgNzQuNiAxNjcuNyAxNjYuOSAxNjcuNyA5MiAwIDE2Ni45LTc1LjEgMTY2LjktMTY3LjcgMC05Mi45LTc0LjktMTY4LTE2Ni45LTE2OHoiXX0sbzllPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImRyaWJiYmxlIixpY29uOls1MTIsNTEyLFtdLCJmMTdkIiwiTTI1NiA4YTI0OCAyNDggMCAxIDAgMCA0OTYgMjQ4IDI0OCAwIDEgMCAwLTQ5NnpNNDIwIDEyMi40YzI5LjUgMzYgNDcuNCA4MiA0Ny44IDEzMi03LTEuNS03Ny0xNS43LTE0Ny41LTYuOC01LjgtMTQtMTEuMi0yNi40LTE4LjYtNDEuNiA3OC4zLTMyIDExMy44LTc3LjUgMTE4LjMtODMuNXpNMzk2LjQgOTcuOWMtMy44IDUuNC0zNS43IDQ4LjMtMTExIDc2LjUtMzQuNy02My44LTczLjItMTE2LjItNzktMTI0IDY3LjItMTYuMiAxMzggMS4zIDE5MC4xIDQ3LjV6TTE2NS45IDY0LjZjNS42IDcuNyA0My40IDYwLjEgNzguNSAxMjIuNS05OS4xIDI2LjMtMTg2LjQgMjUuOS0xOTUuOCAyNS44IDEzLjctNjUuNyA1OC0xMjAuNCAxMTcuMy0xNDguM3pNNDQuMiAyNTYuM2MwLTIuMiAwLTQuMyAuMS02LjUgOS4zIC4yIDExMS45IDEuNSAyMTcuNy0zMC4xIDYuMSAxMS45IDExLjkgMjMuOSAxNy4yIDM1LjktNzYuNiAyMS42LTE0Ni4yIDgzLjUtMTgwLjUgMTQyLjMtMzMuOC0zNy42LTU0LjUtODcuMi01NC41LTE0MS42ek0xMjYgNDIzLjRjMjIuMS00NS4yIDgyLjItMTAzLjYgMTY3LjYtMTMyLjggMjkuNyA3Ny4zIDQyIDE0Mi4xIDQ1LjIgMTYwLjYtNjguMSAyOS0xNTAgMjEuMS0yMTIuOC0yNy45em0yNDguNCA4LjVjLTIuMi0xMi45LTEzLjQtNzQuOS00MS4yLTE1MSA2Ni40LTEwLjYgMTI0LjcgNi44IDEzMS45IDkuMS05LjQgNTguOS00My4zIDEwOS44LTkwLjggMTQyeiJdfSxOZj17cHJlZml4OiJmYWIiLGljb25OYW1lOiJsaW5rZWRpbiIsaWNvbjpbNDQ4LDUxMixbXSwiZjA4YyIsIk00MTYgMzJMMzEuOSAzMkMxNC4zIDMyIDAgNDYuNSAwIDY0LjNMMCA0NDcuN0MwIDQ2NS41IDE0LjMgNDgwIDMxLjkgNDgwTDQxNiA0ODBjMTcuNiAwIDMyLTE0LjUgMzItMzIuM2wwLTM4My40QzQ0OCA0Ni41IDQzMy42IDMyIDQxNiAzMnpNMTM1LjQgNDE2bC02Ni40IDAgMC0yMTMuOCA2Ni41IDAgMCAyMTMuOC0uMSAwek0xMDIuMiA5NmEzOC41IDM4LjUgMCAxIDEgMCA3NyAzOC41IDM4LjUgMCAxIDEgMC03N3pNMzg0LjMgNDE2bC02Ni40IDAgMC0xMDRjMC0yNC44LS41LTU2LjctMzQuNS01Ni43LTM0LjYgMC0zOS45IDI3LTM5LjkgNTQuOWwwIDEwNS44LTY2LjQgMCAwLTIxMy44IDYzLjcgMCAwIDI5LjIgLjkgMGM4LjktMTYuOCAzMC42LTM0LjUgNjIuOS0zNC41IDY3LjIgMCA3OS43IDQ0LjMgNzkuNyAxMDEuOWwwIDExNy4yeiJdfSxsOWU9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiY2MtcGF5cGFsIixpY29uOls1NzYsNTEyLFtdLCJmMWY0IiwiTTE4Ni4zIDI1OC4yYzAgMTIuMi05LjcgMjEuNS0yMiAyMS41LTkuMiAwLTE2LTUuMi0xNi0xNSAwLTEyLjIgOS41LTIyIDIxLjctMjIgOS4zIDAgMTYuMyA1LjcgMTYuMyAxNS41ek04MC41IDIwOS43bC00LjcgMGMtMS41IDAtMyAxLTMuMiAyLjdsLTQuMyAyNi43IDguMi0uM2MxMSAwIDE5LjUtMS41IDIxLjUtMTQuMiAyLjMtMTMuNC02LjItMTQuOS0xNy41LTE0Ljl6bTI4NCAwbC00LjUgMGMtMS44IDAtMyAxLTMuMiAyLjdsLTQuMiAyNi43IDgtLjNjMTMgMCAyMi0zIDIyLTE4LS4xLTEwLjYtOS42LTExLjEtMTguMS0xMS4xek01NzYgODBsMCAzNTJjMCAyNi41LTIxLjUgNDgtNDggNDhMNDggNDgwYy0yNi41IDAtNDgtMjEuNS00OC00OEwwIDgwQzAgNTMuNSAyMS41IDMyIDQ4IDMybDQ4MCAwYzI2LjUgMCA0OCAyMS41IDQ4IDQ4ek0xMjguMyAyMTUuNGMwLTIxLTE2LjItMjgtMzQuNy0yOGwtNDAgMGMtMi41IDAtNSAyLTUuMiA0LjdMMzIgMjk0LjJjLS4zIDIgMS4yIDQgMy4yIDRsMTkgMGMyLjcgMCA1LjItMi45IDUuNS01LjdsNC41LTI2LjZjMS03LjIgMTMuMi00LjcgMTgtNC43IDI4LjYgMCA0Ni4xLTE3IDQ2LjEtNDUuOHptODQuMiA4LjhsLTE5IDBjLTMuOCAwLTQgNS41LTQuMiA4LjItNS44LTguNS0xNC4yLTEwLTIzLjctMTAtMjQuNSAwLTQzLjIgMjEuNS00My4yIDQ1LjIgMCAxOS41IDEyLjIgMzIuMiAzMS43IDMyLjIgOSAwIDIwLjItNC45IDI2LjUtMTEuOS0uNSAxLjUtMSA0LjctMSA2LjIgMCAyLjMgMSA0IDMuMiA0bDE3LjIgMGMyLjcgMCA1LTIuOSA1LjUtNS43bDEwLjItNjQuM2MuMy0xLjktMS4yLTMuOS0zLjItMy45ek0yNTMgMzIyLjFsNjMuNy05Mi42Yy41LS41IC41LTEgLjUtMS43IDAtMS43LTEuNS0zLjUtMy4yLTMuNWwtMTkuMiAwYy0xLjcgMC0zLjUgMS00LjUgMi41bC0yNi41IDM5LTExLTM3LjVjLS44LTIuMi0zLTQtNS41LTRsLTE4LjcgMGMtMS43IDAtMy4yIDEuOC0zLjIgMy41IDAgMS4yIDE5LjUgNTYuOCAyMS4yIDYyLjEtMi43IDMuOC0yMC41IDI4LjYtMjAuNSAzMS42IDAgMS44IDEuNSAzLjIgMy4yIDMuMmwxOS4yIDBjMS44LS4xIDMuNS0xLjEgNC41LTIuNnpNNDEyLjMgMjE1LjRjMC0yMS0xNi4yLTI4LTM0LjctMjhsLTM5LjcgMGMtMi43IDAtNS4yIDItNS41IDQuN2wtMTYuMiAxMDJjLS4yIDIgMS4zIDQgMy4yIDRsMjAuNSAwYzIgMCAzLjUtMS41IDQtMy4ybDQuNS0yOWMxLTcuMiAxMy4yLTQuNyAxOC00LjcgMjguNCAwIDQ1LjktMTcgNDUuOS00NS44em04NC4yIDguOGwtMTkgMGMtMy44IDAtNCA1LjUtNC4zIDguMi01LjUtOC41LTE0LTEwLTIzLjctMTAtMjQuNSAwLTQzLjIgMjEuNS00My4yIDQ1LjIgMCAxOS41IDEyLjIgMzIuMiAzMS43IDMyLjIgOS4zIDAgMjAuNS00LjkgMjYuNS0xMS45LS4zIDEuNS0xIDQuNy0xIDYuMiAwIDIuMyAxIDQgMy4yIDRsMTcuMyAwYzIuNyAwIDUtMi45IDUuNS01LjdsMTAuMi02NC4zYy4zLTEuOS0xLjItMy45LTMuMi0zLjl6TTU0NCAxOTAuOWMwLTItMS41LTMuNS0zLjItMy41bC0xOC41IDBjLTEuNSAwLTMgMS4yLTMuMiAyLjdsLTE2LjIgMTA0LS4zIC41YzAgMS44IDEuNSAzLjUgMy41IDMuNWwxNi41IDBjMi41IDAgNS0yLjkgNS4yLTUuN2wxNi4yLTEwMS4yIDAtLjN6bS05MCA1MS44Yy0xMi4yIDAtMjEuNyA5LjctMjEuNyAyMiAwIDkuNyA3IDE1IDE2LjIgMTUgMTIgMCAyMS43LTkuMiAyMS43LTIxLjUgLjEtOS44LTYuOS0xNS41LTE2LjItMTUuNXoiXX0sYzllPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImRobCIsaWNvbjpbNjQwLDUxMixbXSwiZjc5MCIsIk0yMzggMzAxLjJsNTguNyAwIDIyLjMtMzAuMi01OC43IDAtMjIuMyAzMC4yek0wIDI4Mi45bDAgNi40IDgxLjggMCA0LjctNi40LTg2LjUgMHpNMTcyLjkgMjcxYy04LjcgMC02LTMuNi00LjYtNS41IDIuOC0zLjggNy42LTEwLjQgMTAuNC0xNC4xczIuOC01LjktMi44LTUuOWwtNTEgMC00MS4xIDU1LjggMTAwLjEgMGMzMy4xIDAgNTEuNS0yMi41IDU3LjItMzAuM2wtNjguMiAwem0zMTcuNS02LjlsMzkuMy01My40LTYyLjIgMC0zOS4zIDUzLjQgNjIuMiAwek05NS4zIDI3MWwtOTUuMyAwIDAgNi40IDkwLjYgMCA0LjctNi40em0xMTEtMjYuNmMtMi44IDMuOC03LjUgMTAuNC0xMC4zIDE0LjItMS40IDItNC4xIDUuNSA0LjYgNS41bDQ1LjYgMHM3LjMtMTAgMTMuNS0xOC40YzguNC0xMS40IC43LTM1LTI5LjItMzVsLTExNy45IDAtMjAuNCAyNy44IDExMS40IDBjNS42IDAgNS41IDIuMiAyLjcgNS45ek0wIDMwMS4ybDczLjEgMCA0LjctNi40LTc3LjggMCAwIDYuNHptMzIzIDBsNTguNyAwIDIyLjMtMzAuMi01OC43IDBjLS4xIDAtMjIuMyAzMC4yLTIyLjMgMzAuMnptMjIyIC4xbDk1IDAgMC02LjQtOTAuMyAwLTQuNyA2LjR6TTU2Ny4zIDI3MWwtNC43IDYuNCA3Ny40IDAgMC02LjQtNzIuNyAwem0tMTMuNSAxOC4zbDg2LjIgMCAwLTYuNC04MS41IDAtNC43IDYuNHpNMzg5LjYgMjEwLjdsLTIyLjUgMzAuNi0yNi4yIDAgMjIuNS0zMC42LTU4LjcgMC0zOS4zIDUzLjQgMTQzLjYgMCAzOS4zLTUzLjQtNTguNyAwek00MjMuMSAyNzFzLTQuMyA1LjktNi40IDguN2MtNy40IDEwLS45IDIxLjYgMjMuMiAyMS42bDk0LjMgMCAyMi4zLTMwLjMtMTMzLjQgMHoiXX0sZDllPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6InRleCIsaWNvbjpbNjQwLDUxMixbXSwiZTdmZiIsIk02MjAuOCA5NS40Yy0zMC44IC40LTQyLjEgMTYuNi00Ny43IDI0LjVsLS4xIC4xLTU1LjcgODAuNSA4Mi44IDEyMS4xYzcuNSAxMC42IDExLjMgMTIuNSAzNS40IDEyLjVsMCA5LjFjLTkuMS0uNy0yOC0uNy0zNy43LS43LTEyLjQgMC0zMC44IDAtNDIuOSAuN2wwLTkuMWMxMy4yLS44IDE2LjYtNy4zIDE2LjYtMTAuMiAwLTEuMSAwLTIuMy0zLTYuNGwtNjUuNS05Ni4zLTYwLjIgODcuOWMtMS45IDIuNy0zLjggNS40LTMuOCAxMC4yIDAgNi4xIDMuNCAxMy42IDE1IDE0LjdsMCA5LjFjLTkuNC0uNy0yNy4xLS43LTM3LjItLjdsLTIuOCAwLTExLjcgODIuNi0xOTUuOSAwIDAtOS4xYzI2LjcgMCAzMC45IDAgMzAuOS0xNi45bDAtMjAzLjJjMC0xNi45LTQuMy0xNi45LTMwLjktMTYuOWwwLTEwLjMgMTkuOCAwYy00LjgtNjEuMS0xMC44LTcxLjctNjgtNzEuOGwtMjAuNyAwYy02LjggMS41LTYuOCA2LjEtNi44IDE0LjRsMCAyMDVjMCAxMy42IDEuMSAxNy44IDMyLjQgMTcuOGwxMC41IDAgMCA5LjEtLjQgMGMtMTcuOS0uMy0zNi43LS43LTU0LjktLjdzLTM2LjkgLjMtNTQuOCAuN2wtLjYgMCAwLTkuMSAxMC43IDBjMzEuNyAwIDMyLjgtNC4xIDMyLjgtMTcuOGwwLTIwNWMwLTguNyAwLTEzLjItNy4yLTE0LjNsLTIwLjggMGMtNTguNCAwLTYzLjcgMTAuOS02OC42IDczLjNsLTYuOCAwIDYuMy04My4zIDIxNy41IDAgNi4xIDgxLjggMTY0LjEgMCA5IDgzLjMtNi44IDBjLTUuMy00OS44LTEyLjEtNzMtNzAuMy03M2wtNTEuNSAwYy0xNSAwLTE1LjggMS45LTE1LjggMTQuNmwwIDkzLjMgMzUuNSAwYzM1LjUgMCAzOC45LTEyLjggMzguOS00NGw2IDAgMCA5Ny45LTYgMGMwLTMxLjgtMy40LTQ0LjgtMzguOS00NC44bC0zNS41IDAgMCAxMDUuMmMwIDEzIC43IDE0LjggMTUuOCAxNC44bDUyLjIgMGM2MS4xIDAgNjkuOS0yNS44IDc3LjQtNzMuNi03LjcgMC0xNi4zIC4yLTIyLjIgLjdsMC05LjFjNy4yIDAgMzEuNy0uNCA0Ny44LTIzLjhsNjUuNS05NS43LTcyLjctMTA2LjdjLTguMy0xMS43LTE1LjEtMTIuNS0zNS44LTEyLjVsMC05LjFjOS4xIC43IDI3LjkgLjcgMzcuNyAuNyAxMi40IDAgMzAuOCAwIDQyLjktLjdsMCA5LjFjLTEyLjUgLjQtMTYuNiA2LjgtMTYuNiAxMC4yIDAgMS4xIC40IDIuMyAzIDYuNGw1NS43IDgxLjYgNDkuNy03Mi4xYzIuNy0zLjcgNC41LTYuOCA0LjUtMTEuMyAwLTYuMS0zLTEzLjYtMTUtMTQuOGwwLTkuMWM5LjQgLjcgMjQuOCAuNyAzNy4yIC43IDkgMCAyMy4zIDAgMzItLjdsMCA5LjF6Il19LGg5ZT17cHJlZml4OiJmYWIiLGljb25OYW1lOiJjbGF1ZGUiLGljb246WzUxMiw1MTIsW10sImU4NjEiLCJNMTAwLjQgMzQwLjVsMTAwLjctNTYuNSAxLjctNC45LTEuNy0yLjctNC45IDAtMTYuOC0xLTU3LjUtMS42LTQ5LjktMi4xLTQ4LjMtMi42LTEyLjItMi42LTExLjQtMTUgMS4yLTcuNSAxMC4yLTYuOSAxNC43IDEuM2MxOC45IDEuMyA0NS45IDMuMSA4MSA1LjZsMzUuMiAyLjEgNTIuMiA1LjQgOC4zIDAgMS4yLTMuNC0yLjgtMi4xLTIuMi0yLjEtNTAuMy0zNC4xLTU0LjQtMzYtMjguNS0yMC43LTE1LjQtMTAuNS03LjgtOS44LTMuNC0yMS41IDE0LTE1LjQgMTguOCAxLjMgNC44IDEuMyAxOSAxNC43IDQwLjcgMzEuNSA1My4xIDM5LjEgNy44IDYuNSAzLjEtMi4yIC40LTEuNi0zLjUtNS44LTI4LjktNTIuMi0zMC44LTUzLjEtMTMuNy0yMi0zLjYtMTMuMmMtMS4zLTUuNC0yLjItMTAtMi4yLTE1LjVsMTUuOS0yMS42IDguOC0yLjggMjEuMiAyLjggOC45IDcuOCAxMy4yIDMwLjIgMjEuNCA0Ny41IDMzLjIgNjQuNiA5LjcgMTkuMiA1LjIgMTcuOCAxLjkgNS40IDMuNCAwIDAtMy4xIDIuNy0zNi40IDUtNDQuNyA0LjktNTcuNSAxLjctMTYuMiA4LTE5LjQgMTUuOS0xMC41IDEyLjQgNS45IDEwLjIgMTQuNy0xLjQgOS41LTYuMSAzOS41LTExLjkgNjEuOS03LjggNDEuNSA0LjUgMCA1LjItNS4yIDIxLTI3LjggMzUuMi00NC4xIDE1LjUtMTcuNSAxOC4xLTE5LjMgMTEuNi05LjIgMjIgMCAxNi4yIDI0LjEtNy4zIDI0LjktMjIuNyAyOC43LTE4LjggMjQuNC0yNyAzNi4zLTE2LjggMjkgMS42IDIuMyA0LS40IDYwLjktMTMgMzIuOS01LjkgMzkuMy02LjcgMTcuOCA4LjMgMS45IDguNC03IDE3LjItNDIgMTAuNC00OS4yIDkuOC03My4zIDE3LjMtLjkgLjcgMSAxLjMgMzMgMy4xIDE0LjEgLjggMzQuNiAwIDY0LjQgNC44IDE2LjggMTEuMSAxMC4xIDEzLjYtMS43IDEwLjQtMjUuOSAxMy4yYy0xNS41LTMuNy01NC40LTEyLjktMTE2LjYtMjcuN2wtMjgtNy0zLjkgMCAwIDIuMyAyMy4zIDIyLjggNDIuNyAzOC42IDUzLjUgNDkuOCAyLjcgMTIuMy02LjkgOS43LTcuMy0xLTQ3LTM1LjQtMTguMS0xNS45LTQxLjEtMzQuNi0yLjcgMCAwIDMuNiA5LjUgMTMuOSA1MCA3NS4yIDIuNiAyMy0zLjYgNy41LTEzIDQuNS0xNC4yLTIuNi0yOS4zLTQxLjEtMzAuMi00Ni4zLTI0LjQtNDEuNS0zIDEuNy0xNC40IDE1NC44LTYuNyA3LjktMTUuNSA1LjktMTMtOS44LTYuOS0xNS45IDYuOS0zMS41IDguMy00MS4xIDYuNy0zMi43IDYuMS00MC42IDMuNi0xMy41LS4yLS45LTMgLjQtMzAuNiA0Mi00Ni41IDYyLjktMzYuOCAzOS40LTguOCAzLjUtMTUuMy03LjkgMS40LTE0LjEgOC41LTEyLjYgNTAuOS02NC44IDMwLjctNDAuMiAxOS44LTIzLjItLjEtMy40LTEuMiAwLTEzNS4zIDg3LjgtMjQuMSAzLjEtMTAuNC05LjcgMS4zLTE1LjkgNC45LTUuMiA0MC43LTI4LS4xIC4xIDAgLjF6Il19LHA5ZT17cHJlZml4OiJmYWIiLGljb25OYW1lOiJzaG9waWZ5IixpY29uOls0NDgsNTEyLFtdLCJlMDU3IiwiTTM4OC41IDEwNC4xYy0uMi0xLjEtLjctMi4xLTEuNS0yLjhzLTEuOC0xLjItMi45LTEuMmMtMiAwLTM3LjItLjgtMzcuMi0uOHMtMjEuNi0yMC44LTI5LjYtMjguOGwwIDQzMi43IDEyNS43LTMxLjJzLTU0LTM2NS41LTU0LjQtMzY3Ljl6TTI4OC45IDcwLjVjLTEuOS02LjEtNC4zLTExLjktNy4yLTE3LjYtMTAuNC0yMC0yNi0zMC45LTQ0LjQtMzAuOS0xLjMgMC0yLjcgLjEtNCAuNC0uNC0uOC0xLjItMS4yLTEuNi0yLTgtOC44LTE4LjQtMTIuOC0zMC44LTEyLjQtMjQgLjgtNDggMTgtNjcuMiA0OC44LTEzLjYgMjEuNi0yNCA0OC44LTI2LjggNzAuMS0yNy42IDguNC00Ni44IDE0LjQtNDcuMiAxNC44LTE0IDQuNC0xNC40IDQuOC0xNiAxOC0xLjIgMTAtMzggMjkxLjgtMzggMjkxLjhsMzAyLjYgNTIuNSAwLTQzOC4zYy0xLjUgLjEtMi45IC4yLTQuNCAuNCAwIDAtNS42IDEuNi0xNC44IDQuNHpNMjMzLjYgODcuN2MtMTYgNC44LTMzLjYgMTAuNC01MC44IDE1LjYgNC44LTE4LjggMTQuNC0zNy42IDI1LjYtNTAgNC40LTQuNCAxMC40LTkuNiAxNy4yLTEyLjggNi44IDE0LjQgOC40IDM0IDggNDcuMnpNMjAwLjggMjQuNGM1LS4yIDEwIDEuMSAxNC40IDMuNi02LjQgMy4yLTEyLjggOC40LTE4LjggMTQuNC0xNS4yIDE2LjQtMjYuOCA0Mi0zMS42IDY2LjUtMTQuNCA0LjQtMjguOCA4LjgtNDIgMTIuOCA4LjgtMzguNCA0MS4yLTk2LjQgNzgtOTcuMnpNMTU0LjQgMjQ0LjZjMS42IDI1LjYgNjkuMiAzMS4yIDczLjIgOTEuNyAyLjggNDcuNi0yNS4yIDgwLjEtNjUuNiA4Mi41LTQ4LjggMy4yLTc1LjYtMjUuNi03NS42LTI1LjZsMTAuNC00NHMyNi44IDIwLjQgNDguNCAxOC44YzE0LS44IDE5LjItMTIuNCAxOC44LTIwLjQtMi0zMy42LTU3LjItMzEuNi02MC44LTg2LjktMy4yLTQ2LjQgMjcuMi05My4zIDk0LjUtOTcuNyAyNi0xLjYgMzkuMiA0LjggMzkuMiA0LjhsLTE1LjIgNTcuNnMtMTcuMi04LTM3LjYtNi40Yy0yOS42IDItMzAgMjAuOC0yOS42IDI1LjZ6TTI0OS42IDgyLjljMC0xMi0xLjYtMjkuMi03LjItNDMuNiAxOC40IDMuNiAyNy4yIDI0IDMxLjIgMzYuNC03LjIgMi0xNS4yIDQuNC0yNCA3LjJ6Il19LE1FPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6InNxdWFyZS1yZWRkaXQiLGljb246WzQ0OCw1MTIsWyJyZWRkaXQtc3F1YXJlIl0sImYxYTIiLCJNNjQgMzJsMzIwIDBjMzUuMyAwIDY0IDI4LjcgNjQgNjRsMCAzMjBjMCAzNS4zLTI4LjcgNjQtNjQgNjRMNjQgNDgwYy0zNS4zIDAtNjQtMjguNy02NC02NEwwIDk2QzAgNjAuNyAyOC43IDMyIDY0IDMyek0zMDUuOSAxNjYuNGMyMC42IDAgMzcuMy0xNi43IDM3LjMtMzcuM3MtMTYuNy0zNy4zLTM3LjMtMzcuM2MtMTggMC0zMy4xIDEyLjgtMzYuNiAyOS44LTMwLjIgMy4yLTUzLjggMjguOC01My44IDU5LjlsMCAuMmMtMzIuOCAxLjQtNjIuOCAxMC43LTg2LjYgMjUuNS04LjgtNi44LTE5LjktMTAuOS0zMi0xMC45LTI4LjkgMC01Mi4zIDIzLjQtNTIuMyA1Mi4zIDAgMjEgMTIuMyAzOSAzMC4xIDQ3LjQgMS43IDYwLjcgNjcuOSAxMDkuNiAxNDkuMyAxMDkuNnMxNDcuNi00OC45IDE0OS4zLTEwOS43YzE3LjctOC40IDI5LjktMjYuNCAyOS45LTQ3LjMgMC0yOC45LTIzLjQtNTIuMy01Mi4zLTUyLjMtMTIgMC0yMyA0LTMxLjkgMTAuOC0yNC0xNC45LTU0LjMtMjQuMi04Ny41LTI1LjRsMC0uMWMwLTIyLjIgMTYuNS00MC43IDM3LjktNDMuNyAzLjkgMTYuNSAxOC43IDI4LjcgMzYuMyAyOC43bC4yLS4yek0xNTUgMjQ4LjFjMTQuNiAwIDI1LjggMTUuNCAyNSAzNC40cy0xMS44IDI1LjktMjYuNSAyNS45LTI3LjUtNy43LTI2LjYtMjYuNyAxMy41LTMzLjUgMjguMS0zMy41bDAtLjF6bTE2Ni40IDMzLjVjLjkgMTktMTIgMjYuNy0yNi42IDI2LjdzLTI1LjYtNi45LTI2LjUtMjUuOSAxMC4zLTM0LjQgMjUtMzQuNCAyNy4zIDE0LjYgMjguMSAzMy41bDAgLjF6bS00Mi4xIDQ5LjZjLTkgMjEuNS0zMC4zIDM2LjctNTUuMSAzNi43cy00Ni4xLTE1LjEtNTUuMS0zNi43Yy0xLjEtMi42IC43LTUuNCAzLjQtNS43IDE2LjEtMS42IDMzLjUtMi41IDUxLjctMi41czM1LjYgLjkgNTEuNyAyLjVjMi43IC4zIDQuNSAzLjEgMy40IDUuN3oiXX0sdTllPU1FLGY5ZT17cHJlZml4OiJmYWIiLGljb25OYW1lOiJjcmVhdGl2ZS1jb21tb25zLW5jIixpY29uOls1MTIsNTEyLFtdLCJmNGU4IiwiTTI1NS42IDhDMzk1LjQgOCA1MDQgMTE1LjkgNTA0IDI1NiA1MDQgNDAzLjIgMzg1LjUgNTA0IDI1NS42IDUwNCAxMjEuMSA1MDQgOCAzOTMuMiA4IDI1NiA4IDEyMy4xIDExMi43IDggMjU1LjYgOHpNNjMuOCAxODkuMWMtNy40IDIwLjQtMTEuMSA0Mi43LTExLjEgNjYuOSAwIDExMC45IDkyLjEgMjAyLjQgMjAzLjcgMjAyLjQgMTIyLjQgMCAxNzcuMi0xMDEuOCAxNzguNS0xMDQuMWwtOTMuNC00MS42Yy03LjcgMzcuMS00MS4yIDUzLTY4LjIgNTUuNGwwIDM4LjEtMjguOCAwIDAtMzguMmMtMjcuNS0uMy01Mi42LTEwLjItNzUuMy0yOS43bDM0LjEtMzQuNWMzMS43IDI5LjQgODYuNCAzMS44IDg2LjQtMi4yIDAtNi4yLTIuMi0xMS4yLTYuNi0xNS4xLTE0LjItNi0xLjgtLjEtMjE5LjMtOTcuNHpNMjU2LjQgNTIuM0MyMTggNTIuMyAxNDQgNjEgODUuOSAxNDUuM2w5NC44IDQyLjVjMTAtMzEuMyA0MC40LTQyLjkgNjMuOC00NC4zbDAtMzguMSAyOC44IDAgMCAzOC4xYzIyLjcgMS4yIDQzLjQgOC45IDYyIDIzTDMwMyAxOTkuN2MtNDIuNy0yOS45LTgzLjUtOC03MCAxMS4xIDUzLjQgMjQuMSA0My44IDE5LjggOTMgNDEuNmwxMjcuMSA1Ni43YzQuMS0xNy40IDYuMi0zNS4xIDYuMi01My4xIDAtNTctMTkuOC0xMDUtNTkuMy0xNDMuOS0zOS4zLTM5LjktODcuMi01OS44LTE0My42LTU5Ljh6Il19LG05ZT17cHJlZml4OiJmYWIiLGljb25OYW1lOiJnYWxhY3RpYy1yZXB1YmxpYyIsaWNvbjpbNTEyLDUxMixbXSwiZjUwYyIsIk0yNTYgOGEyNDggMjQ4IDAgMSAxIDAgNDk2IDI0OCAyNDggMCAxIDEgMC00OTZ6bTAgMTYuNWEyMzEuNSAyMzEuNSAwIDEgMCAwIDQ2Mi45IDIzMS41IDIzMS41IDAgMSAwIDAtNDYyLjl6bTI3LjYgMjEuOGwwIDI0LjZjMzAuMyA0LjUgNTkgMTYuMyA4My42IDM0LjVsMTcuNC0xNy40Yy0yOC43LTIyLjEtNjMuMy0zNi45LTEwMS00MS44em0tNTUuNCAuMWMtMzcuNiA0LjktNzIuMiAxOS44LTEwMC45IDQxLjlsMTcuMyAxNy40IC4xIDBjMjQuMS0xNy44IDUyLjYtMzAuMSA4My41LTM0LjdsMC0yNC41em0xMi4yIDUwLjJsMCA4Mi45Yy0xMCAyLTE5LjQgNS45LTI3LjcgMTEuNGwtNTguNi01OC42LTIxLjkgMjEuOSA1OC43IDU4LjdjLTUuNSA4LjItOS40IDE3LjYtMTEuNSAyNy42bC04Mi45IDAgMCAzMSA4Mi45IDBjMiAxMCA2IDE5LjMgMTEuNSAyNy41bC01OC43IDU4LjcgMjEuOSAyMS45IDU4LjYtNTguNmM4LjQgNS42IDE3LjggOS41IDI3LjcgMTEuNWwwIDgyLjkgMzEgMCAwLTgyLjljMTAtMiAxOS40LTYuMSAyNy42LTExLjVsNTguNyA1OC43IDIxLjktMjEuOS01OC43LTU4LjdjNS41LTguMiA5LjUtMTcuNSAxMS41LTI3LjVsODIuOSAwIDAtMzEtODIuOSAwYy0yLTEwLTYtMTkuNC0xMS41LTI3LjZsNTguNy01OC43LTIxLjktMjEuOS01OC43IDU4LjdjLTguMi01LjUtMTcuNi05LjUtMjcuNi0xMS41bDAtODIuOS0zMSAwem0xODMuMiAzMC43bC0xNy40IDE3LjRjMTguMyAyNC42IDMwLjIgNTMuNCAzNC43IDgzLjdsMjQuNiAwYy01LTM3LjctMTkuOC03Mi4zLTQxLjktMTAxem0tMzM1LjYgLjFjLTIyLjEgMjguNy0zNi45IDYzLjMtNDEuOCAxMDAuOWwyNC42IDBjNC42LTMxIDE2LjgtNTkuNCAzNC42LTgzLjVMODguMiAxMjcuNHpNNDYuMyAyODMuN2M0LjkgMzcuNiAxOS43IDcyLjIgNDEuOCAxMDAuOWwxNy40LTE3LjRDODcuNyAzNDMuMSA3NS42IDMxNC42IDcxIDI4My43bC0yNC42IDAgMCAwem0zOTQuNyAwYy00LjYgMzEtMTYuOCA1OS41LTM0LjcgODMuNmwxNy40IDE3LjRjMjIuMS0yOC43IDM3LTYzLjMgNDEuOS0xMDFsLTI0LjYgMHpNMTQ0LjcgNDA2LjRsLTE3LjQgMTcuNGMyOC43IDIyLjEgNjMuMyAzNyAxMDEgNDEuOWwwLTI0LjZjLTMxLTQuNi01OS41LTE2LjgtODMuNi0zNC42em0yMjIuNSAwYy0yNC4xIDE3LjgtNTIuNiAzMC4xLTgzLjYgMzQuN2wwIDI0LjZjMzcuNy00LjkgNzIuMi0xOS44IDEwMS00MS44bC0xNy4zLTE3LjQtLjEgMHoiXX0sRmY9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiZmFjZWJvb2siLGljb246WzUxMiw1MTIsWzYyZTNdLCJmMDlhIiwiTTUxMiAyNTZDNTEyIDExNC42IDM5Ny40IDAgMjU2IDBTMCAxMTQuNiAwIDI1NkMwIDM3NiA4Mi43IDQ3Ni44IDE5NC4yIDUwNC41bDAtMTcwLjMtNTIuOCAwIDAtNzguMiA1Mi44IDAgMC0zMy43YzAtODcuMSAzOS40LTEyNy41IDEyNS0xMjcuNSAxNi4yIDAgNDQuMiAzLjIgNTUuNyA2LjRsMCA3MC44Yy02LS42LTE2LjUtMS0yOS42LTEtNDIgMC01OC4yIDE1LjktNTguMiA1Ny4ybDAgMjcuOCA4My42IDAtMTQuNCA3OC4yLTY5LjMgMCAwIDE3NS45QzQxMy44IDQ5NC44IDUxMiAzODYuOSA1MTIgMjU2eiJdfSxnOWU9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiZ2l0bGFiIixpY29uOls1MTIsNTEyLFtdLCJmMjk2IiwiTTUwNCAyMDQuNmwtLjctMS44LTY5LjctMTgxLjhjLTEuNC0zLjYtMy45LTYuNi03LjItOC42LTIuNC0xLjYtNS4xLTIuNS04LTIuOHMtNS43IC4xLTguNCAxLjEtNS4xIDIuNy03LjEgNC44Yy0xLjkgMi4xLTMuMyA0LjctNC4xIDcuNGwtNDcgMTQ0LTE5MC41IDAtNDcuMS0xNDRjLS44LTIuOC0yLjItNS4zLTQuMS03LjQtMi0yLjEtNC40LTMuNy03LjEtNC44LTIuNi0xLTUuNS0xLjQtOC40LTEuMXMtNS42IDEuMi04IDIuOGMtMy4yIDItNS44IDUuMS03LjIgOC42TDkuOCAyMDIuOCA5IDIwNC42Yy0xMCAyNi4yLTExLjMgNTUtMy41IDgyIDcuNyAyNi45IDI0IDUwLjcgNDYuNCA2Ny42bC4zIC4yIC42IC40IDEwNiA3OS41YzM4LjUgMjkuMSA2Ni43IDUwLjMgODQuNiA2My45IDMuNyAxLjkgOC4zIDQuMyAxMyA0LjNzOS4zLTIuNCAxMy00LjNjMTcuOS0xMy41IDQ2LjEtMzQuOSA4NC42LTYzLjlsMTA2LjctNzkuOSAuMy0uM2MyMi40LTE2LjkgMzguNy00MC42IDQ1LjYtNjcuNSA4LjYtMjcgNy40LTU1LjgtMi42LTgyeiJdfSxiOWU9e3ByZWZpeDoiZmFiIixpY29uTmFtZToicXEiLGljb246WzQ0OCw1MTIsW10sImYxZDYiLCJNNDM0LjEgNDIwLjRjLTExLjUgMS40LTQ0LjktNTIuNy00NC45LTUyLjcgMCAzMS4zLTE2LjEgNzIuMi01MSAxMDEuOCAxNi44IDUuMiA1NC44IDE5LjIgNDUuOCAzNC40LTcuMyAxMi4zLTEyNS41IDcuOS0xNTkuNiA0LTM0LjEgMy44LTE1Mi4zIDguMy0xNTkuNi00LTktMTUuMiAyOC45LTI5LjIgNDUuOC0zNC40LTM0LjktMjkuNS01MS4xLTcwLjQtNTEuMS0xMDEuOCAwIDAtMzMuMyA1NC4xLTQ0LjkgNTIuNy01LjQtLjYtMTIuNC0yOS42IDkuMy05OS43IDEwLjMtMzMgMjItNjAuNSA0MC4xLTEwNS44LTMuMS0xMTYuOSA0NS4yLTIxNSAxNjAuMy0yMTUgMTEzLjcgMCAxNjMuMiA5Ni4xIDE2MC4zIDIxNSAxOC4xIDQ1LjIgMjkuOSA3Mi45IDQwLjEgMTA1LjggMjEuOCA3MC4xIDE0LjcgOTkuMSA5LjMgOTkuN3oiXX0sdjllPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6InN0cmlwZSIsaWNvbjpbNjQwLDUxMixbXSwiZjQyOSIsIk0xNjUgMTQ0LjdsLTQzLjMgOS4yLS4yIDE0Mi40YzAgMjYuMyAxOS44IDQzLjMgNDYuMSA0My4zIDE0LjYgMCAyNS4zLTIuNyAzMS4yLTUuOWwwLTMzLjhjLTUuNyAyLjMtMzMuNyAxMC41LTMzLjctMTUuN2wwLTYzLjIgMzMuNyAwIDAtMzcuOC0zMy43IDAtLjEtMzguNXptODkuMSA1MS42bC0yLjctMTMuMS0zOC40IDAgMCAxNTMuMiA0NC4zIDAgMC0xMDMuMWMxMC41LTEzLjggMjguMi0xMS4xIDMzLjktOS4zbDAtNDAuOGMtNi0yLjEtMjYuNy02LTM3LjEgMTMuMXpNMzQ2LjQgMTI0bC00NC42IDkuNSAwIDM2LjIgNDQuNi05LjUgMC0zNi4yek00NC45IDIyOC4zYzAtNi45IDUuOC05LjYgMTUuMS05LjcgMTMuNSAwIDMwLjcgNC4xIDQ0LjIgMTEuNGwwLTQxLjhjLTE0LjctNS44LTI5LjQtOC4xLTQ0LjEtOC4xLTM2IDAtNjAgMTguOC02MCA1MC4yIDAgNDkuMiA2Ny41IDQxLjIgNjcuNSA2Mi40IDAgOC4yLTcuMSAxMC45LTE3IDEwLjktMTQuNyAwLTMzLjctNi4xLTQ4LjYtMTQuMmwwIDQwYzE2LjUgNy4xIDMzLjIgMTAuMSA0OC41IDEwLjEgMzYuOSAwIDYyLjMtMTUuOCA2Mi4zLTQ3LjggMC01Mi45LTY3LjktNDMuNC02Ny45LTYzLjR6TTY0MCAyNjEuNmMwLTQ1LjUtMjItODEuNC02NC4yLTgxLjRzLTY3LjkgMzUuOS02Ny45IDgxLjFjMCA1My41IDMwLjMgNzguMiA3My41IDc4LjIgMjEuMiAwIDM3LjEtNC44IDQ5LjItMTEuNWwwLTMzLjRjLTEyLjEgNi4xLTI2IDkuOC00My42IDkuOC0xNy4zIDAtMzIuNS02LjEtMzQuNS0yNi45bDg2LjkgMGMuMi0yLjMgLjYtMTEuNiAuNi0xNS45em0tODcuOS0xNi44YzAtMjAgMTIuMy0yOC40IDIzLjQtMjguNCAxMC45IDAgMjIuNSA4LjQgMjIuNSAyOC40bC00NS45IDB6TTQzOS4yIDE4MC4yYy0xNy40IDAtMjguNiA4LjItMzQuOCAxMy45bC0yLjMtMTEtMzkuMSAwIDAgMjA0LjggNDQuNC05LjQgLjEtNTAuMmM2LjQgNC43IDE1LjkgMTEuMiAzMS40IDExLjIgMzEuOCAwIDYwLjgtMjMuMiA2MC44LTc5LjYgLjEtNTEuNi0yOS4zLTc5LjctNjAuNS03OS43ek00MjguNiAzMDIuN2MtMTAuNCAwLTE2LjYtMy44LTIwLjktOC40bC0uMy02NmM0LjYtNS4xIDExLTguOCAyMS4yLTguOCAxNi4yIDAgMjcuNCAxOC4yIDI3LjQgNDEuNCAuMSAyMy45LTEwLjkgNDEuOC0yNy40IDQxLjh6TTMwMS45IDMzNi40bDQ0LjYgMCAwLTE1My4yLTQ0LjYgMCAwIDE1My4yeiJdfSx5OWU9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiZGFpbHltb3Rpb24iLGljb246WzQ0OCw1MTIsW10sImUwNTIiLCJNMjk4LjkgMjY3Yy03LjQtNC4yLTE1LjgtNi4zLTI0LjQtNi4yLTEzLjIgMC0yNC40IDQuNC0zMy40IDEzLjNzLTEzLjYgMjAtMTMuNiAzMy40YzAgMTQuMSA0LjQgMjUuNiAxMy4zIDM0LjZzMjAgMTMuNCAzMy40IDEzLjRjMTMuNyAwIDI1LTQuNiAzNC4xLTEzLjhTMzIyIDMyMS4xIDMyMiAzMDcuNWMwLTguMi0yLjEtMTYuMy02LjEtMjMuNS00LTcuMS05LjgtMTMtMTctMTd6TTAgMzJsMCA0NDggNDQ4IDAgMC00NDgtNDQ4IDB6TTM3NC43IDQwNS4zbC01My4xIDAgMC0yMy45LS43IDBjLTEwLjUgMTcuNS0yOS4xIDI2LjItNTUuOCAyNi4yLTE4LjQgMC0zNC43LTQuNC00OC45LTEzLjEtMTQuMS04LjYtMjUuNS0yMS0zMi45LTM1LjgtNy43LTE1LjEtMTEuNi0zMi4xLTExLjYtNTAuOSAwLTE4LjQgMy45LTM1LjEgMTEuOC01MC4yIDcuNS0xNC43IDE4LjktMjcuMSAzMi45LTM1LjggMTQuMS04LjcgMzAtMTMuMSA0Ny43LTEzLjEgMTAuMi0uMSAyMC4yIDEuNiAyOS43IDUuMiA4LjkgMy41IDE3LjIgOS4xIDI1IDE3bDAtNzcuOSA1NS44LTEyLjEgMCAyNjQuNHoiXX0seDllPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6InN0ZWFtIixpY29uOls1MTIsNTEyLFtdLCJmMWI2IiwiTTUwNCAyNTZjMCAxMzctMTExLjIgMjQ4LTI0OC40IDI0OC0xMTMuOCAwLTIwOS42LTc2LjMtMjM5LTE4MC40bDk1LjIgMzkuM2M2LjQgMzIuMSAzNC45IDU2LjQgNjguOSA1Ni40IDM5LjIgMCA3MS45LTMyLjQgNzAuMi03My41bDg0LjUtNjAuMmM1Mi4xIDEuMyA5NS44LTQwLjkgOTUuOC05My41IDAtNTEuNi00Mi05My41LTkzLjctOTMuNXMtOTMuNyA0Mi05My43IDkzLjVsMCAxLjItNTkuMiA4NS43Yy0xNS41LS45LTMwLjcgMy40LTQzLjUgMTIuMUw4IDIzNi4xQzE4LjIgMTA4LjQgMTI1LjEgOCAyNTUuNiA4IDM5Mi44IDggNTA0IDExOSA1MDQgMjU2ek0xNjMuNyAzODQuM2wtMzAuNS0xMi42YzUuNiAxMS42IDE1LjMgMjAuOCAyNy4yIDI1LjggMjYuOSAxMS4yIDU3LjgtMS42IDY5LTI4LjQgNS40LTEzIDUuNS0yNy4zIC4xLTQwLjNTMjE0IDMwNS42IDIwMSAzMDAuMmMtMTIuOS01LjQtMjYuNy01LjItMzguOS0uNmwzMS41IDEzYzE5LjggOC4yIDI5LjIgMzAuOSAyMC45IDUwLjctOC4zIDE5LjktMzEgMjkuMi01MC44IDIxek0zMzcuNSAxMjkuOGE2Mi4zIDYyLjMgMCAxIDEgMCAxMjQuNiA2Mi4zIDYyLjMgMCAxIDEgMC0xMjQuNnptLjEgMTA5YTQ2LjggNDYuOCAwIDEgMCAwLTkzLjYgNDYuOCA0Ni44IDAgMSAwIDAgOTMuNnoiXX0sdzllPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6InZlbm1vLXYiLGljb246WzUxMiw1MTIsW10sImU4NWIiLCJNNDY2LjUgMTQuOGMxNy40IDI4LjcgMjUuMyA1OC4yIDI1LjMgOTUuNSAwIDExOS0xMDEuOSAyNzMuNS0xODQuNyAzODIuMWwtMTg4LjkgMC03NS44LTQ1MS41IDE2NS40LTE1LjcgNDAuMSAzMjEuM2MzNy40LTYwLjggODMuNi0xNTYuMyA4My42LTIyMS40IDAtMzUuNi02LjEtNTkuOS0xNS43LTc5LjlMNDY2LjUgMTQuOHoiXX0sekU9e3ByZWZpeDoiZmFiIixpY29uTmFtZToic25hcGNoYXQiLGljb246WzUxMiw1MTIsWzYyMTI0LCJzbmFwY2hhdC1naG9zdCJdLCJmMmFiIiwiTTQ5Ny4xIDM2Ni42Yy0zLjQtOS4yLTkuOC0xNC4xLTE3LjEtMTguMi0xLjQtLjgtMi42LTEuNS0zLjctMS45LTIuMi0xLjEtNC40LTIuMi02LjYtMy40LTIyLjgtMTIuMS00MC42LTI3LjMtNTMtNDUuNC0zLjUtNS4xLTYuNi0xMC41LTkuMS0xNi4xLTEuMS0zLTEtNC43LS4yLTYuMyAuOC0xLjIgMS43LTIuMiAyLjktMyAzLjktMi42IDgtNS4yIDEwLjctNyA0LjktMy4yIDguOC01LjcgMTEuMi03LjQgOS40LTYuNSAxNS45LTEzLjUgMjAtMjEuMyAyLjktNS40IDQuNS0xMS4zIDQuOS0xNy40cy0uNi0xMi4yLTIuOC0xNy44Yy02LjItMTYuMy0yMS42LTI2LjQtNDAuMy0yNi40LTMuOSAwLTcuOSAuNC0xMS43IDEuMi0xIC4yLTIuMSAuNS0zLjEgLjcgLjItMTEuMi0uMS0yMi45LTEuMS0zNC41LTMuNS00MC44LTE3LjgtNjIuMS0zMi43LTc5LjItOS41LTEwLjctMjAuNy0xOS43LTMzLjItMjYuNy0yMi42LTEyLjktNDguMi0xOS40LTc2LjEtMTkuNHMtNTMuNCA2LjUtNzYgMTkuNGMtMTIuNSA3LTIzLjcgMTYuMS0zMy4zIDI2LjgtMTQuOSAxNy0yOS4yIDM4LjQtMzIuNyA3OS4yLTEgMTEuNi0xLjIgMjMuNC0xLjEgMzQuNS0xLS4zLTItLjUtMy4xLS43LTMuOS0uOC03LjgtMS4yLTExLjctMS4yLTE4LjcgMC0zNC4xIDEwLjEtNDAuMyAyNi40LTIuMiA1LjctMy4yIDExLjgtMi44IDE3LjhzMiAxMiA0LjkgMTcuNGM0LjEgNy44IDEwLjcgMTQuNyAyMCAyMS4zIDIuNSAxLjcgNi40IDQuMiAxMS4yIDcuNCAyLjYgMS43IDYuNSA0LjIgMTAuMyA2LjcgMS4zIC45IDIuNCAyIDMuMyAzLjMgLjggMS42IC44IDMuNC0uNCA2LjYtMi41IDUuNS01LjUgMTAuOC04LjkgMTUuOC0xMi4xIDE3LjctMjkuNCAzMi42LTUxLjQgNDQuNi0xMS43IDYuMi0yMy45IDEwLjMtMjkgMjQuMy0zLjkgMTAuNS0xLjMgMjIuNSA4LjUgMzIuNiAzLjYgMy44IDcuOCA2LjkgMTIuNCA5LjQgOS42IDUuMyAxOS44IDkuMyAzMC4zIDEyLjEgMi4yIC42IDQuMyAxLjUgNi4xIDIuNyAzLjYgMy4xIDMuMSA3LjkgNy44IDE0LjggMi40IDMuNiA1LjQgNi43IDkgOS4xIDEwIDYuOSAyMS4zIDcuNCAzMy4yIDcuOCAxMC44IC40IDIzIC45IDM2LjkgNS41IDUuOCAxLjkgMTEuOCA1LjYgMTguNyA5LjkgMTYuNyAxMC4zIDM5LjYgMjQuMyA3Ny44IDI0LjNzNjEuMy0xNC4xIDc4LjEtMjQuNGM2LjktNC4yIDEyLjktNy45IDE4LjUtOS44IDEzLjktNC42IDI2LjItNS4xIDM2LjktNS41IDExLjktLjUgMjMuMi0uOSAzMy4yLTcuOCA0LjItMi45IDcuNy02LjcgMTAuMi0xMS4yIDMuNC01LjggMy40LTkuOSA2LjYtMTIuOCAxLjgtMS4yIDMuNy0yLjEgNS44LTIuNiAxMC43LTIuOCAyMS02LjkgMzAuOC0xMi4yIDQuOS0yLjYgOS4zLTYuMSAxMy0xMC4ybC4xLS4yYzkuMi05LjkgMTEuNS0yMS41IDcuOC0zMS44em0tMzQgMTguM2MtMjAuNyAxMS41LTM0LjUgMTAuMi00NS4zIDE3LjEtOS4xIDUuOS0zLjcgMTguNS0xMC4zIDIzLjEtOC4xIDUuNi0zMi4yLS40LTYzLjIgOS45LTI1LjYgOC41LTQyIDMyLjgtODggMzIuOHMtNjItMjQuMy04OC4xLTMyLjljLTMxLTEwLjMtNTUuMS00LjItNjMuMi05LjktNi42LTQuNi0xLjItMTcuMi0xMC4zLTIzLjEtMTAuNy02LjktMjQuNS01LjctNDUuMy0xNy4xLTEzLjItNy4zLTUuNy0xMS44LTEuMy0xMy45IDc1LjEtMzYuNCA4Ny4xLTkyLjYgODcuNy05Ni43IC42LTUgMS40LTktNC4yLTE0LjEtNS40LTUtMjkuMi0xOS43LTM1LjgtMjQuMy0xMC45LTcuNi0xNS43LTE1LjMtMTIuMi0yNC42IDIuNS02LjUgOC41LTguOSAxNC45LTguOSAyIDAgNCAuMiA2IC43IDEyIDIuNiAyMy43IDguNiAzMC40IDEwLjIgLjggLjIgMS42IC4zIDIuNSAuMyAzLjYgMCA0LjktMS44IDQuNi01LjktLjgtMTMuMS0yLjYtMzguNy0uNi02Mi42IDIuOC0zMi45IDEzLjQtNDkuMiAyNi02My42IDYuMS02LjkgMzQuNS0zNyA4OC45LTM3UzMzOSA3NC4yIDM0NSA4MS4xYzEyLjYgMTQuNCAyMy4yIDMwLjcgMjYgNjMuNiAyLjEgMjMuOSAuMyA0OS41LS42IDYyLjYtLjMgNC4zIDEgNS45IDQuNiA1LjkgLjggMCAxLjctLjEgMi41LS4zIDYuNy0xLjYgMTguNC03LjYgMzAuNC0xMC4yIDItLjQgNC0uNyA2LS43IDYuNCAwIDEyLjQgMi41IDE0LjkgOC45IDMuNSA5LjQtMS4yIDE3LTEyLjIgMjQuNi02LjYgNC42LTMwLjQgMTkuMy0zNS44IDI0LjMtNS42IDUuMS00LjggOS4xLTQuMiAxNC4yIC41IDQuMiAxMi41IDYwLjQgODcuNyA5Ni43IDQuNCAyLjIgMTEuOSA2LjctMS4zIDE0LjF6Il19LE05ZT16RSx6OWU9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiZ2FsYWN0aWMtc2VuYXRlIixpY29uOls1MTIsNTEyLFtdLCJmNTBkIiwiTTI0OS45IDMzLjVsMCAyNi4xYy0xMy42IDIwLjYtMjMuOSAxMDguNi0yNC41IDIxNS4zIDExLjctMTUuNiAxOS4xLTMzLjMgMTkuMS00OC4ybDAtMTYuOWMwLTUuMyAuOC0xMC41IDIuMi0xNS42IC42LTIuMSAxLjQtNC4xIDIuNi01LjhzMy40LTMuOCA2LjctMy44IDUuNCAyLjEgNi43IDMuOGMxLjIgMS44IDIgMy43IDIuNiA1LjggMS40IDUuMSAyLjIgMTAuMyAyLjIgMTUuNmwwIDE2LjljMCAxNC45IDcuNCAzMi42IDE5LjEgNDguMi0uNi0xMDYuOC0xMC45LTE5NC43LTI0LjUtMjE1LjNsMC0yNi4xLTEyLjMgMHpNMjIzLjUgMTgxLjNjLTkuNSAyLjEtMTguNyA1LjItMjcuNSA5LjEgOC45IDE2LjEgOS44IDMyLjYgMS43IDM3LjMtOCA0LjYtMjEuOC00LjItMzEuNC0xOS44LTExLjYgOC44LTIxLjkgMTkuMy0zMC42IDMxLjEgMTQuNyA5LjYgMjIuOSAyMi45IDE4LjMgMzAuNy00LjUgNy43LTIwIDcuMS0zNS41LTEtNS44IDEzLjItOS43IDI3LjUtMTEuNiA0Mi40IDkuNyAuMiAxOC43IDIuNCAyNi4yIDYgMTcuOC0uMyAzMi44LTIgNDAuNS00LjIgNS42LTI2LjQgMjMtNDguMiA0Ni4zLTU5LjUgLjctMjUuNiAxLjktNDkuNyAzLjUtNzIuMXptNjUgMGMxLjYgMjIuNCAyLjcgNDYuNSAzLjUgNzIuMSAyMy4zIDExLjMgNDAuOCAzMy4yIDQ2LjMgNTkuNSA3LjcgMi4zIDIyLjcgMy45IDQwLjUgNC4yIDcuNS0zLjcgMTYuNS01LjggMjYuMi02LTEuOS0xNC45LTUuOS0yOS4yLTExLjctNDIuNC0xNS40IDguMS0zMC45IDguNy0zNS41IDEtNC42LTcuNyAzLjYtMjEuMSAxOC4zLTMwLjctOC43LTExLjgtMTktMjIuMy0zMC42LTMxLjEtOS41IDE1LjYtMjMuNCAyNC40LTMxLjQgMTkuOC04LjEtNC42LTcuMi0yMS4yIDEuNy0zNy4zLTguOC0zLjktMTgtNy0yNy40LTkuMXpNMjU2IDE4OS45Yy0zLjIgMC01LjkgOC44LTYuMSAxOS45bDAgMCAwIDE2LjljMCA0MS40LTQ5IDk1LTkzLjUgOTUtNTIgMC0xMjIuOC0xLjQtMTU2LjQgMjkuMmwwIDIuNWM5LjQgMTcuMSAyMC42IDMzLjIgMzMuMiA0OCAxMi41LTIxLjEgNTEuNi00MSAxMDgtNDEuNCA0NS43IDEgNzkgMjAuMyA5MC44IDQwLjkgMCAwIDAgMCAwIC4xIDcuNyAyLjEgMTUuOCAzLjIgMjQgMy4yIDguMiAwIDE2LjQtMS4xIDI0LTMuMiAwIDAgMCAwIDAtLjEgMTEuNy0yMC41IDQ1LjEtMzkuOCA5MC44LTQwLjkgNTYuNCAuNCA5NS41IDIwLjMgMTA4IDQxLjQgMTIuNi0xNC44IDIzLjgtMzAuOSAzMy4yLTQ4bDAtMi41Yy0zMy42LTMwLjYtMTA0LjQtMjkuMi0xNTYuNC0yOS4yLTQ0LjUgMC05My41LTUzLjYtOTMuNS05NWwwLTE2LjktLjEgMGMtLjItMTEuMS0yLjktMTkuOS02LjEtMTkuOXptMCAxNzcuOWE0MC42IDQwLjYgMCAxIDEgMC04MS4zIDQwLjYgNDAuNiAwIDEgMSAwIDgxLjN6bTAtNzMuNmEzMyAzMyAwIDEgMCAwIDY1LjkgMzMgMzMgMCAxIDAgMC02NS45em0wIDU5LjhhMjYuOCAyNi44IDAgMSAxIDAtNTMuNiAyNi44IDI2LjggMCAxIDEgMCA1My42em0tMTE0LjggMTNjLTEwLjIgLjEtMjEuNiAuNC0zMC41IDEuNyAuNCA0LjQgMS41IDE4LjYgNy4xIDI5LjggOS4xLTIuNiAxOC40LTMuOSAyNy42LTMuOSA0MS4zIC45IDcxLjUgMzQuNCA3OC4zIDc0LjVsLjEgNC43YzEwLjQgMS45IDIxLjIgMi45IDMyLjIgMi45IDExIDAgMjEuOC0xIDMyLjItMi45bC4xLTQuN2M2LjgtNDAuMSAzNy03My41IDc4LjMtNzQuNSA5LjMgMCAxOC41IDEuMyAyNy42IDMuOSA1LjYtMTEuMSA2LjctMjUuMyA3LjEtMjkuOC04LjktMS4zLTIwLjMtMS42LTMwLjUtMS43LTE4LjggLjQtMzUuMiA0LjItNDguNiA5LjctMTIuNSAxNi0yOS4yIDMwLTQ5LjYgMzMuMS0uMSAwLS4yIDAtLjMgMCAwIDAtLjEgMC0uMiAuMS01LjIgMS4xLTEwLjYgMS42LTE2LjIgMS42LTUuNSAwLTEwLjktLjUtMTYuMi0xLjYtLjEgMC0uMSAwLS4yLS4xLS4xIDAtLjIgMC0uMyAwLTIwLjQtMy0zNy0xNy00OS42LTMzLjEtMTMuNC01LjUtMjkuOS05LjItNDguNi05Ljd6Il19LGs5ZT17cHJlZml4OiJmYWIiLGljb25OYW1lOiJwaG9lbml4LWZyYW1ld29yayIsaWNvbjpbNjQwLDUxMixbXSwiZjNkYyIsIk0yMTIuOSAzNDQuM2MzLjgtLjEgMjIuOC0xLjQgMjUuNi0yLjItMi40LTIuNi00My42LTEtNjgtNDkuNi00LjMtOC42LTcuNS0xNy42LTYuNC0yNy42IDIuOS0yNS41IDMyLjktMzAgNTItMTguNSAzNiAyMS42IDYzLjMgOTEuMyAxMTMuNyA5Ny41IDM3IDQuNSA4NC42LTE3IDEwOC4yLTQ1LjQtLjYtLjEtLjgtLjItMS0uMS0uNCAuMS0uOCAuMi0xLjEgLjMtMzMuMyAxMi4xLTk0LjMgOS43LTEzNC43LTE0LjgtMzcuNi0yMi44LTUzLjEtNTguNy01MS44LTc0LjYgMS44LTIxLjMgMjIuOS0yMy4yIDM1LjktMTkuNiAxNC40IDMuOSAyNC40IDE3LjYgMzguOSAyNy40IDE1LjYgMTAuNCAzMi45IDEzLjcgNTEuMyAxMC4zIDE0LjktMi43IDM0LjQtMTIuMyAzNi41LTE0LjUtMS4xLS4xLTEuOC0uMS0yLjUtLjItNi4yLS42LTEyLjQtLjgtMTguNS0xLjctMTExLjItMTYuNS0xMjguOS0xNjMuNi0yNTIuNS0xNzMuMS00NC4zLTMuNC05OS40IDguMS0xMzYuMyAzNS0uOCAuNi0xLjUgMS4yLTIuMiAxLjggLjEgLjIgLjEgLjMgLjIgLjUgLjggMCAxLjYtLjEgMi40LS4yIDYuMy0xIDEyLjUtLjggMTguNyAuMyAyMy44IDQuMyA0Ny43IDIzLjEgNTUuOSA3Ni41IDUuMyAzNC4zLS43IDUwLjggOCA4Ni4xIDE5IDc3LjEgOTEgMTA3LjYgMTI3LjcgMTA2LjR6TTc1LjMgNjQuOWMtLjktMS0uOS0xLjItMS4zLTIgMTIuMS0yLjYgMjQuMi00LjEgMzYuNi00LjgtMS4xIDE0LjctMjIuMiAyMS4zLTM1LjMgNi44ek0yNzIuMiA0MTUuNGMtNDIuOCAxLjItOTItMjYuNy0xMjMuNS02MS40LTQuNi01LTE2LjgtMjAuMi0xOC42LTIzLjRsLjQtLjRjNi42IDQuMSAyNS43IDE4LjYgNTQuOCAyNyAyNC4yIDcgNDguMSA2LjMgNzEuNi0zLjMgMjIuNy05LjMgNDEtLjUgNDMuMSAyLjktMTguNSAzLjgtMjAuMSA0LjQtMjQgNy45LTUuMSA0LjQtNC42IDExLjcgNyAxNy4yIDI2LjIgMTIuNCA2My0yLjggOTcuMiAyNS40IDIuNCAyIDguMSA3LjggMTAuMSAxMC43LS4xIC4yLS4zIC4zLS40IC41LTQuOC0xLjUtMTYuNC03LjUtNDAuMi05LjMtMjQuNy0yLTQ2LjMgNS4zLTc3LjUgNi4yek00NDcgMTYzLjRjMTYuNC01LjIgNDEuMy0xMy40IDY2LjUtMy4zIDE2LjEgNi41IDI2LjIgMTguNyAzMi4xIDM0LjYgMy41IDkuNCA1LjEgMTkuNyA1LjEgMjguNy0uMiAwLS40IDAtLjYgLjEtLjItLjQtLjQtLjktLjUtMS4zLTUtMjItMjkuOS00My44LTY3LjYtMjkuOS01MC4yIDE4LjYtMTMwLjQgOS43LTE3Ni45LTQ4LS43LS45LTIuNC0xLjctMS4zLTMuMiAuMS0uMiAyLjEgLjYgMyAxLjMgMTguMSAxMy40IDM4LjMgMjEuOSA2MC4zIDI2LjIgMzAuNSA2LjEgNTQuNiAyLjkgNzkuOS01LjJ6TTU0OS43IDI4MC45Yy0zMi40IC4yLTMzLjggNTAuMS0xMDMuNiA2NC40LTE4LjIgMy43LTM4LjcgNC42LTQ0LjkgNC4ybDAtLjRjMi44LTEuNSAxNC43LTIuNiAyOS43LTE2LjYgNy45LTcuMyAxNS4zLTE1LjEgMjIuOC0yMi45IDE5LjUtMjAuMiA0MS40LTQyLjIgODEuOS0zOSAyMy4xIDEuOCAyOS4zIDguMiAzNi4xIDEyLjcgLjMgLjIgLjQgLjUgLjcgLjktLjUgMC0uNyAuMS0uOSAwLTctMi43LTE0LjMtMy4zLTIxLjgtMy4zem0tMTIuMy0yNC4xYy0uMSAuMi0uMSAuNC0uMiAuNi0yOC45LTQuNC00OC03LjktNjguNSA0LTE3IDkuOS0zMS40IDIwLjUtNjIgMjQuNC0yNy4xIDMuNC00NS4xIDIuNC02Ni4xLTgtLjMtLjItLjYtLjQtMS0uNiAwLS4yIC4xLS4zIC4xLS41IDI0LjkgMy44IDM2LjQgNS4xIDU1LjUtNS44IDIyLjMtMTIuOSA0MC4xLTI2LjYgNzEuMy0zMSAyOS42LTQuMSA1MS4zIDIuNSA3MC45IDE2Ljl6TTI2OC42IDk3LjNjLS42LS42LTEuMS0xLjItMi4xLTIuMyA3LjYgMCAyOS43LTEuMiA1My40IDguNCAxOS43IDggMzIuMiAyMSA1MC4yIDMyLjkgMTEuMSA3LjMgMjMuNCA5LjMgMzYuNCA4LjEgNC4zLS40IDguNS0xLjIgMTIuOC0xLjcgLjQtLjEgLjkgMCAxLjUgLjMtLjYgLjQtMS4yIC45LTEuOCAxLjItOC4xIDQtMTYuNyA2LjMtMjUuNiA3LjEtMjYuMSAyLjYtNTAuMy0zLjctNzMuNC0xNS40LTE5LjMtOS45LTM2LjQtMjIuOS01MS40LTM4LjZ6TTY0MCAzMzUuN2MtMy41IDMuMS0yMi43IDExLjYtNDIuNyA1LjMtMTIuMy0zLjktMTkuNS0xNC45LTMxLjYtMjQuMS0xMC03LjYtMjAuOS03LjktMjguMS04LjQgLjYtLjggLjktMS4yIDEuMi0xLjQgMTQuOC05LjIgMzAuNS0xMi4yIDQ3LjMtNi41IDEyLjUgNC4yIDE5LjIgMTMuNSAzMC40IDI0LjIgMTAuOCAxMC40IDIxIDkuOSAyMy4xIDEwLjUgLjEtLjEgLjIgMCAuNCAuNHptLTIxMi41IDEzN2MyLjIgMS4yIDEuNiAxLjUgMS41IDItMTguNS0xLjQtMzMuOS03LjYtNDYuOC0yMi4yLTIxLjgtMjQuNy00MS43LTI3LjktNDguNi0yOS43IC41LS4yIC44LS40IDEuMS0uNCAxMy4xIC4xIDI2LjEgLjcgMzguOSAzLjkgMjUuMyA2LjQgMzUgMjUuNCA0MS42IDM1LjMgMy4yIDQuOCA3LjMgOC4zIDEyLjMgMTEuMXoiXX0sUzllPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImdpdCIsaWNvbjpbNTEyLDUxMixbXSwiZjFkMyIsIk0yMTYuMyAxNTguNGwtNzkuMyAwYy00MC0xMC41LTEzMC41LTcuOC0xMzAuNSA3NC44IDAgMzAuMSAxNSA1MS4yIDM1IDYxLTI1LjEgMjMtMzcgMzMuOC0zNyA0OS4yIDAgMTEgNC41IDIxLjEgMTcuOSAyNi44LTE0LjMgMTMuNC0yMi40IDIzLjEtMjIuNCA0MS40IDAgMzIuMSAyOCA1MC44IDEwMS42IDUwLjggNzAuOCAwIDExMS44LTI2LjQgMTExLjgtNzMuMiAwLTU4LjctNDUuMi01Ni41LTE1MS42LTYzbDEzLjQtMjEuNmMyNy4zIDcuNiAxMTguNyAxMCAxMTguNy02Ny45IDAtMTguNy03LjctMzEuNy0xNS00MS4xbDM3LjQtMi44IDAtMzQuNXpNMTUyLjkgNDAwLjNjMCAzMi4xLTEwNC45IDMyLjEtMTA0LjkgMi40IDAtOC4xIDUuMy0xNSAxMC42LTIxLjUgNzcuNyA1LjMgOTQuMyAzLjQgOTQuMyAxOS4xek0xMDIuMSAyNjUuN2MtNTIuOCAwLTUwLjUtNzEuMiAxLjItNzEuMiA0OS41IDAgNTAuOCA3MS4yLTEuMiA3MS4yek0yMzUuNCAzNjYuMmwwLTMyLjFjMjYuNy0zLjcgMjcuMi0yIDI3LjItMTFsMC0xMTkuNWMwLTguNS0yLjEtNy40LTI3LjItMTYuM2w0LjUtMzIuOSA4NC4yIDAgMCAxNjguN2MwIDYuNSAuNCA3LjMgNi41IDguMWwyMC43IDIuOCAwIDMyLjEtMTE1LjkgMHptNTIuNS0yNDQuM2MtMjMuMiAwLTM2LjYtMTMuNC0zNi42LTM2LjZzMTMuNC0zNS44IDM2LjYtMzUuOGMyMy42IDAgMzcgMTIuNiAzNyAzNS44cy0xMy40IDM2LjYtMzcgMzYuNnpNNTEyIDM1MC41Yy0xNy41IDguNS00My4xIDE2LjMtNjYuMyAxNi4zLTQ4LjQgMC02Ni43LTE5LjUtNjYuNy02NS41bDAtMTA2LjVjMC01LjQgMS00LjEtMzEuNy00LjFsMC0zNi4yYzM1LjgtNC4xIDUwLTIyIDU0LjUtNjYuM2wzOC42IDBjMCA2NS44LTEuMyA2MS44IDMuMyA2MS44bDU3LjMgMCAwIDQwLjYtNjAuNiAwIDAgOTcuMWMwIDYuOS00LjkgNTEuNCA2MC42IDI2LjhsMTEgMzUuOHoiXX0sQzllPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6Im9wdGluLW1vbnN0ZXIiLGljb246WzU3Niw1MTIsW10sImYyM2MiLCJNNTcyLjggNDIxLjRjNS42LTkuNSA0LjctMTUuMi01LjQtMTEuNi0zLTQuOS03LTkuNS0xMS4xLTEzLjggMi45LTkuNy0uNy0xNC4yLTEwLjgtOS4yLTQuNi0zLjItMTAuMy02LjUtMTUuOS05LjIgMC0xNS4xLTExLjYtMTEuNi0xNy42LTUuNy0xMC40LTEuNS0xOC43LS4zLTI2LjggNS43IC4zLTYuNSAuMy0xMyAuMy0xOS43IDEyLjYgMCA0MC4yLTExIDQ1LjktMzYuMiAxLjQtNi44IDEuNi0xMy44LS4zLTIxLjktMy0xMy41LTE0LjMtMjEuMy0yNS4xLTI1LjctLjgtNS45LTcuNi0xNC4zLTE0LjktMTUuOXMtMTIuNCA0LjktMTQuMSAxMC4zYy04LjUgMC0xOS4yIDIuOC0yMS4xIDguNC01LjQtLjUtMTEuMS0xLjQtMTYuOC0xLjkgMi43LTEuOSA1LjQtMy41IDguNC00LjYgNS40LTkuMiAxNC42LTExLjQgMjUuNy0xMS42bDAtMi44YzE5LjUtLjUgNDMtNS45IDUzLjgtMTguMSAxMi43LTEzLjggMTQuNi0zNy4zIDEyLjQtNTUuMS0yLjQtMTcuMy05LjctMzcuNi0yNC42LTQ4LjEtOC40LTUuOS0yMS42LS44LTIyLjcgOS41LTIuMiAxOS42IDEuMiAzMC0zOC42IDI1LjEtMTAuMy0yMy44LTI0LjYtNDQuNi00Mi43LTYwLTY5LjYtNTkuNy0xNjcuNy01My44LTI0NC4yLTM3LjYgMTkuNyA0LjYgNDEuMSA4LjYgNTkuNyAxNi41LTI2LjIgMi40LTUyLjcgMTEuMy03Ni4yIDIzLjItMzIuOCAxNy00NCAyOS45LTU2LjcgNDIuNCAxNC45LTIuMiAyOC45LTUuMSA0My44LTMuOC05LjcgNS40LTE4LjQgMTIuMi0yNi41IDIwLTI1LjggLjktMjMuOC01LjMtMjYuMi0yNS45LTEuMS0xMC41LTE0LjMtMTUuNC0yMi43LTkuNy0yOC4xIDE5LjktMzMuNSA3OS45LTEyLjIgMTAzLjUgMTAuOCAxMi4yIDM1LjEgMTcuMyA1NC45IDE3LjgtLjMgMS4xLS4zIDEuOS0uMyAyLjcgMTAuOCAuNSAxOS41IDIuNyAyNC42IDExLjYgMyAxLjEgNS43IDIuNyA4LjEgNC42LTUuNCAuNS0xMS4xIDEuNC0xNi41IDEuOS0zLjMtNi42LTEzLjctOC4xLTIxLjEtOC4xLTEuNi01LjctNi41LTEyLjItMTQuMS0xMC4zLTYuOCAxLjktMTQuMSAxMC0xNC45IDE1LjktMjIuNSA5LjUtMzAuMSAyNi44LTI1LjEgNDcuNiA1LjMgMjQuOCAzMyAzNi4yIDQ1LjkgMzYuMmwwIDE5LjdjLTYuNi01LTE0LjMtNy41LTI2LjgtNS43LTUuNS01LjUtMTcuMy0xMC4xLTE3LjMgNS43LTUuOSAyLjctMTEuNCA1LjktMTUuOSA5LjItOS44LTQuOS0xMy42LTEuNy0xMS4xIDkuMi00LjEgNC4zLTcuOCA4LjYtMTEuMSAxMy44LTEwLjItMy43LTExIDIuMi01LjQgMTEuNi0xLjEgMy41LTEuNiA3LTEuOSAxMC44LS41IDMxLjYgNDQuNiA2NCA3My41IDY1LjEgMTcuMyAuNSAzNC42LTguNCA0My0yMy41IDExMy4yIDQuOSAyMjYuNyA0LjEgMzQwLjIgMCA4LjEgMTUuMSAyNS40IDI0LjMgNDIuNyAyMy41IDI5LjItMS4xIDc0LjMtMzMuNSA3My41LTY1LjEgLjItMy43LS43LTcuMi0xLjctMTAuN3pNNDk5IDE2Ny40YzEuMS0zIDIuNC04LjQgMi40LTE0LjYgMC01LjkgNi44LTguMSAxNC4xLS44IDExLjEgMTEuNiAxNC45IDQwLjUgMTMuOCA1MS4xLTQuMS0xMy42LTEzLTI5LTMwLjMtMzUuN3ptLTQuNiA2LjdjMTkuNSA2LjIgMjguNiAyNy42IDI5LjcgNDguOS0xLjEgMi43LTMgNS40LTQuOSA3LjYtNS43IDUuOS0xNS40IDEwLTI2LjIgMTIuMiA0LjMtMjEuMyAuMy00Ny4zLTEyLjctNjMgNC45LS44IDEwLjktMi40IDE0LjEtNS43em0tMjQuMSA2LjhjMTMuOCAxMS45IDIwIDM5LjIgMTQuMSA2My41LTQuMSAuNS04LjEgLjgtMTEuNiAuOC0xLjktMjEuOS02LjgtNDQtMTQuMy02NC42IDMuNyAuMyA4LjEgLjMgMTEuOCAuM3pNNDcuNyAyMDNjLTEuMS0xMC41IDIuNC0zOS41IDEzLjgtNTEuMSA3LTcuMyAxNC4xLTUuMSAxNC4xIC44IDAgNi4yIDEuNCAxMS42IDIuNCAxNC42LTE3LjMgNi44LTI2LjIgMjIuMi0zMC4zIDM1Ljd6bTkuNyAyNy42Yy0xLjktMi4yLTMuNS00LjktNC45LTcuNiAxLjQtMjEuMyAxMC4zLTQyLjcgMjkuNy00OC45IDMuMiAzLjIgOS4yIDQuOSAxNC4xIDUuNy0xMyAxNS43LTE3IDQxLjYtMTIuNyA2My0xMC44LTIuMi0yMC41LTYtMjYuMi0xMi4yem00Ny45IDE0LjZjLTQuMSAwLTguMS0uMy0xMi43LS44LTQuNi0xOC42LTEuOS0zOC45IDUuNC01M2wwIC4zIDEyLjItNS4xYzQuOS0xLjkgOS43LTMuOCAxNC45LTQuOS0xMC43IDE5LjctMTcuNCA0MS4zLTE5LjggNjMuNXptMTg0LTEwLjVhNzYuMSA3Ni4xIDAgMSAxIDAtMTUyLjIgNzYuMSA3Ni4xIDAgMSAxIDAgMTUyLjJ6bTExNS42IDIyLjFjLS4zIDE3LjgtNyA0OC45LTIzIDU3LTEzLjIgNi42LTYuNS03LjUtMTYuNS01OC4xIDEzLjMgLjMgMjYuNiAuMyAzOS41IDEuMXptLTU0LTEuNmMuOCA0LjkgMy44IDQwLjMtMS42IDQxLjktMTEuNiAzLjUtNDAgNC4zLTUxLjEtMS4xLTQuMS0zLTQuNi0zNS45LTQuMy00MS4xbDAgLjNjMTguOS0uMyAzOC4xLS4zIDU3IDB6TTI3OC41IDMwOWMtMTMgMy41LTQxLjYgNC4xLTU0LjYtMS42LTYuNS0yLjctMy44LTQyLjQtMS45LTUxLjYgMTkuMi0uNSAzOC40LS41IDU3LjgtLjhsMCAuM2MxLjEgOC4zIDMuMyA1MS4yLTEuMyA1My43ek0xNzIgMjU3LjljMTIuMi0uOCAyNC42LTEuNCAzNi44LTEuNi0yLjQgMTUuNC0zIDQzLjUtNC45IDUyLjItMS4xIDYuOC00LjMgNi44LTkuNyA0LjMtMjEuOS05LjgtMjcuNi0zNS4yLTIyLjItNTQuOXptLTM1LjQgMzEuM2M3LjgtMS4xIDE1LjctMS45IDIzLjUtMi43IDEuNiA2LjIgMy44IDExLjkgNyAxNy42IDEwIDE3IDQ0IDM1LjcgNDUuMSA3IDYuMiAxNC45IDQwLjggMTIuMiA1NC45IDEwLjggMTUuNy0xLjQgMjMuOC0xLjQgMjYuOC0xNC4zIDEyLjQgNC4zIDMwLjggNC4xIDQ0IDMgMTEuMy0uOCAyMC44LS41IDI0LjYtOC45IDEuMSA1LjEgMS45IDExLjYgNC42IDE2LjggMTAuOCAyMS4zIDM3LjMgMS40IDQ2LjgtMzEuNiA4LjYgLjggMTcuNiAxLjkgMjYuNSAyLjctLjQgMS4zLTMuOCA3LjMgNy4zIDExLjYtNDcuNiA0Ny05NS43IDg3LjgtMTYzLjIgMTA3LTYzLjItMjAuOC0xMTIuMS01OS41LTE1NS45LTEwNi41IDkuNi0zLjQgMTAuNC04LjggOC0xMi41ek0xMTUgNDYxLjdjLTMuOCAxNy44LTIxLjkgMjkuNy0zOS43IDI4LjktMTkuMi0uOC00Ni41LTE3LTU5LjItMzYuNS0yLjctMzEuMSA0My44LTYxLjMgNjYuMi01NC42IDE0LjkgNC4zIDI3LjggMzAuOCAzMy41IDU0IDAgMy0uMyA1LjctLjggOC4yem0tOC43LTY2Yy0uNS0xMy41LS41LTI3LS4zLTQwLjVsLjMgMGMyLjctMS42IDUuNy0zLjggNy44LTYuNSA2LjUtMS42IDEzLTUuMSAxNS4xLTkuMiAzLjMtNy4xLTctNy41LTUuNC0xMi40IDIuNy0xLjEgNS43LTIuMiA3LjgtMy41IDI5LjIgMjkuMiA1OC42IDU2LjUgOTcuMyA3Ny0zNi44IDExLjMtNzIuNCAyNy42LTEwNS45IDQ3LTEuMi0xOC42LTcuNy0zNS45LTE2LjctNTEuOXptMzM3LjYgNjQuNmMtMTAzIDMuNS0yMDYuMiA0LjEtMzA5LjQgMCAwIC4zIDAgLjMtLjMgLjNsMC0uMyAuMyAwYzM1LjEtMjEuNiA3Mi4yLTM5LjIgMTEyLjQtNTAuOCAxMS42IDUuMSAyMyA5LjUgMzQuOSAxMy4yIDIuMiAuOCAyLjIgLjggNC4zIDAgMTQuMy00LjEgMjguNC05LjIgNDIuMi0xNS40IDQxLjUgMTEuNyA3OC44IDMxLjcgMTE1LjYgNTN6bTEwLjUtMTIuNGMtMzUuOS0xOS41LTczLTM1LjktMTExLjktNDcuNiAzOC4xLTIwIDcxLjktNDcuMyAxMDMuNS03Ni43IDIuMiAxLjQgNC42IDIuNCA3LjYgMy4yIDAgLjggLjMgMS45IC41IDIuNC00LjYgMi43LTcuOCA2LjItNS45IDEwLjMgMi4yIDMuOCA4LjYgNy42IDE1LjEgOC45IDIuNCAyLjcgNS4xIDUuMSA4LjEgNi44IDAgMTMuOC0uMyAyNy42LS44IDQxLjNsLjMtLjNjLTkuMyAxNS45LTE1LjUgMzctMTYuNSA1MS43em0xMDUuOSA2LjJjLTEyLjcgMTkuNS00MCAzNS43LTU5LjIgMzYuNS0xOS4zIC45LTQwLjUtMTMuMi00MC41LTM3IDUuNy0yMy4yIDE4LjktNDkuNyAzMy41LTU0IDIyLjctNi45IDY5LjIgMjMuNCA2Ni4yIDU0LjV6TTM3My4xIDc1LjJjLTMuOC03Mi4xLTEwMC44LTc5LjctMTI2LTIzLjUgNDQuNi0yNC4zIDkwLjMtMTUuNyAxMjYgMjMuNXpNNzUgNDA3LjFjLTE1LjcgMS42LTQ5LjUgMjUuNC00OS41IDQzLjIgMCAxMS42IDE1LjcgMTkuNSAzMi4yIDE0LjkgMTIuMi0zLjIgMzEuMS0xNy42IDM1LjktMjcuMyA2LTExLjYtMy43LTMyLjctMTguNi0zMC44ek0yOTAuOSAyMzAuOWMyOC42IDAgNTEuOS0yMS42IDUxLjktNDguNCAwLTM2LjEtNDAuNS01OC4xLTcyLjItNDQuMyA5LjUgMyAxNi41IDExLjYgMTYuNSAyMS42IDAgMjMuMy0zMy4zIDMyLTQ2LjUgMTEuMy03LjMgMzQuMSAxOS40IDU5LjggNTAuMyA1OS44ek02OC4yIDQ3NC4xYy41IDYuNSAxMi4yIDEyLjcgMjEuNiA5LjUgNi44LTIuNyAxNC42LTEwLjUgMTcuMy0xNi4yIDMtNy0xLjEtMjAtOS43LTE4LjQtOC45IDEuNi0yOS43IDE2LjctMjkuMiAyNS4xem00MzMuMi02N2MtMTQuOS0xLjktMjQuNiAxOS4yLTE4LjkgMzAuOCA0LjkgOS43IDI0LjEgMjQuMSAzNi4yIDI3LjMgMTYuNSA0LjYgMzIuMi0zLjIgMzIuMi0xNC45IDAtMTcuOC0zMy44LTQxLjYtNDkuNS00My4yek00NzkgNDQ5Yy04LjQtMS42LTEyLjQgMTEuMy05LjUgMTguNCAyLjQgNS43IDEwLjMgMTMuNSAxNy4zIDE2LjIgOS4yIDMuMiAyMS4xLTMgMjEuMy05LjUgLjktOC40LTIwLjItMjMuNS0yOS4xLTI1LjF6Il19LF85ZT17cHJlZml4OiJmYWIiLGljb25OYW1lOiJqZW5raW5zIixpY29uOls0NDgsNTEyLFtdLCJmM2I2IiwiTTQ1NS40IDQyNWMtMS40LTExLjItMTktMjMuMS0yOC4yLTMxLjktNS4xLTUtMjktMjMuMS0zMC40LTI5LjktMS40LTYuNiA5LjctMjEuNSAxMy4zLTI4LjkgNS4xLTEwLjcgOC44LTIzLjcgMTEuMy0zMi42IDE4LjgtNjYuMSAyMC43LTE1Ni45LTYuMi0yMTEuMi0xMC4yLTIwLjYtMzguNi00OS01Ni40LTYyLjUtNDItMzEuNy0xMTkuNi0zNS4zLTE3MC4xLTE2LjYtMTQuMSA1LjItMjcuOCA5LjgtNDAuMSAxNy4xLTMzLjEgMTkuNC02OC4zIDMyLjUtNzguMSA3MS42LTI0LjIgMTAuOC0zMS41IDQxLjgtMzAuMyA3Ny44IC4yIDcgNC4xIDE1LjggMi43IDIyLjQtLjcgMy4zLTUuMiA3LjYtNi4xIDkuOC0xMS42IDI3LjctMi4zIDY0IDExLjEgODMuNyA4LjEgMTEuOSAyMS41IDIyLjQgMzkuMiAyNS4yIC43IDEwLjYgMy4zIDE5LjcgOC4yIDMwLjQgMy4xIDYuOCAxNC43IDE5IDEwLjQgMjcuNy0yLjIgNC40LTIxIDEzLjgtMjcuMyAxNy42LTIxLjEgMTIuNS0zNi40IDIwLjMtNTUuOSAzNC4zLTEyLjYgOS0zMi4zIDEwLjItMjkuMiAzMS4xIDIuMSAxNC4xIDEwLjEgMzEuNiAxNC43IDQ1LjggLjcgMiAxLjQgNC4xIDIuMSA2bDQyMiAwYzQuOS0xNS4zIDkuNy0zMC45IDE0LjYtNDcuMiAzLjQtMTEuNCAxMC4yLTI3LjggOC43LTM5Ljd6TTE3NC4yIDMzLjdjMS44LS41IDMuNCAuNyA0LjkgMi40LS4yIDUuMi01LjQgNS4xLTguOSA2LjgtNS40IDYuNy0xMy40IDkuOC0yMCAxNy4yLTYuOCA3LjUtMTQuNCAyNy43LTIzLjQgMzAtNC41IDEuMS05LjctLjgtMTMuNi0uNS0xMC40IC43LTE3LjcgNi0yOC4zIDcuNSAxMy42LTI5LjkgNTYuMS01NCA4OS4zLTYzLjR6TTY5LjQgMTI3LjNjMTMuNS0xNC45IDMyLjEtMjQuMSA1NC44LTI1LjkgMTEuNyAyOS43LTguNCA2NS0uOSA5Ny42IDIuMyA5LjkgMTAuMiAyNS40LTIuNCAyNS43IC4zLTI4LjMtMzQuOC00Ni4zLTYxLjMtMjkuNi0xLjgtMjEuNS00LjktNTEuNyA5LjgtNjcuOHptMzYuNyAyMDAuMmMtMS00LjEtMi43LTEyLjktMi4zLTE1LjEgMS42LTguNyAxNy4xLTEyLjUgMTEtMjQuNy0xMS4zLS4xLTEzLjggMTAuMi0yNC4xIDExLjMtMjYuNyAyLjYtNDUuNi0zNS40LTQ0LjQtNTguNCAxLTE5LjUgMTcuNi0zOC4yIDQwLjEtMzUuOCAxNiAxLjggMjEuNCAxOS4yIDI0LjUgMzQuNyA5LjIgLjUgMjIuNS0uNCAyNi45LTcuNi0uNi0xNy41LTguOC0zMS42LTguMi00Ny43IDEtMzAuMyAxNy41LTU3LjYgNC44LTg3LjQgMTMuNi0zMC45IDUzLjUtNTUuMyA4My4xLTcwIDM2LjYtMTguMyA5NC45LTMuNyAxMjkuMyAxNS44IDE5LjcgMTEuMSAzNC40IDMyLjcgNDguMyA1MC43LTE5LjUtNS44LTM2LjEgNC4yLTMzLjEgMjAuMyAxNi4zLTE0LjkgNDQuMi0uMiA1Mi41IDE2LjQgNy45IDE1LjggNy44IDM5LjMgOSA2Mi44IDIuOSA1Ny0xMC40IDExNS45LTM5LjEgMTU3LjEtNy43IDExLTE0LjEgMjMtMjQuOSAzMC42LTI2IDE4LjItNjUuNCAzNC43LTk5LjIgMjMuNC00NC43LTE1LTY1LTQ0LjgtODkuNS03OC44IC43IDE4LjcgMTMuOCAzNC4xIDI2LjggNDguNCAxMS4zIDEyLjUgMjUgMjYuNiAzOS43IDMyLjQtMTIuMy0yLjktMzEuMS0zLjgtMzYuMiA3LjItMjguNi0xLjktNTUuMS00LjgtNjguNy0yNC4yLTEwLjYtMTUuNC0yMS40LTQxLjQtMjYuMy02MS40em0yMjIgMTI0LjFjNC4xLTMgMTEuMS0yLjkgMTcuNC0zLjYtNS40LTIuNy0xMy0zLjctMTkuMy0yLjItLjEtNC4yLTItNi44LTMuMi0xMC4yIDEwLjYtMy44IDM1LjUtMjguNSA0OS42LTIwLjMgNi43IDMuOSA5LjUgMjYuMiAxMC4xIDM3IC40IDktLjggMTgtNC41IDIyLjgtMTguOC0uNi0zNS44LTIuOC01MC43LTcgLjktNi4xLTEtMTIuMSAuNi0xNi41em0tMTcuMi0yMGMtMTYuOCAuOC0yNi0xLjItMzguMy0xMC44IC4yLS44IDEuNC0uNSAxLjUtMS40IDE4IDggNDAuOC0zLjMgNTktNC45LTcuOSA1LjEtMTQuNiAxMS42LTIyLjIgMTcuMXptLTEyLjEgMzMuMmMtMS42LTkuNC0zLjUtMTItMi44LTIwLjIgMjUtMTYuNiAyOS43IDI4LjYgMi44IDIwLjJ6TTE5NC4zIDQzOC42Yy0xMS42LS43LTQ4LjEtMTQtMzguNS0yMy43IDkuNCA2LjUgMjcuNSA0LjkgNDEuMyA3LjMgLjggNC40LTIuOCAxMC4yLTIuOCAxNi40ek0yNiA0OTcuMWMtNC4zLTEyLjctOS4yLTI1LjEtMTQuOC0zNi45IDMwLjgtMjMuOCA2NS4zLTQ4LjkgMTAyLjItNjMuNSAyLjgtMS4xIDIzLjIgMjUuNCAyNi4yIDI3LjYgMTYuNSAxMS43IDM3IDIxIDU2LjIgMzAuMiAxLjIgOC44IDMuOSAyMC4yIDguNyAzNS41IC43IDIuMyAxLjQgNC43IDIuMiA3LjJsLTE4MC43IDAgMC0uMXptMjQwLjYgNS43bC0uOCAwYy4zLS4yIC41LS40IC44LS41bDAgLjV6bTcuNS01LjdjMi4xLTEuNCA0LjMtMi44IDYuNC00LjMgMS4xIDEuNCAyLjIgMi44IDMuMiA0LjNsLTkuNiAwem0xNS4xLTI0LjdjLTEwLjggNy4zLTIwLjYgMTguMy0zMy4zIDI1LjItNiAzLjMtMjcgMTEuNy0zMy40IDEwLjItMy42LS44LTMuOS01LjMtNS40LTkuNS0zLjEtOS0xMC4xLTIzLjQtMTAuOC0zNy0uOC0xNy4yLTIuNS00NiAxNi00Mi40IDE0LjkgMi45IDMyLjMgOS43IDQzLjkgMTYuMSA3LjEgMy45IDExLjEgOC42IDIxLjkgOS41LS4xIDEuNC0uMSAyLjgtLjIgNC4zLTUuOSAzLjktMTUuMyAzLjgtMjEuOCA3LjEgOS41IC40IDE3IDIuNyAyMy41IDUuOS0uMSAzLjQtLjMgNy0uNCAxMC42em01My40IDI0LjdsLTE0IDBjLS4xLTMuMi0yLjgtNS44LTYuMS01LjhzLTUuOSAyLjYtNi4xIDUuOGwtMTcuNCAwYy0yLjgtNC40LTUuNy04LjYtOC45LTEyLjUgMi4xLTIuMiA0LTQuNyA2LTYuOSA5IDMuNyAxNC44LTQuOSAyMS43LTQuMiA3LjkgLjggMTQuMiAxMS43IDI1LjQgMTFsLS42IDEyLjZ6bTguNyAwYy4yLTQgLjQtNy44IC42LTExLjUgMTUuNi03LjMgMjkgMS4zIDM1LjcgMTEuNWwtMzYuMyAwem04My40LTM3Yy0yLjMgMTEuMi01LjggMjQtOS45IDM3LjEtLjItLjEtLjQtLjEtLjYtLjFsLTI3LjkgMGMuNi0xLjEgMS4yLTIuMiAxLjktMy4zLTIuNi02LjEtOS04LjctMTAuOS0xNS41IDEyLjEtMjIuNyA2LjUtOTMuNC0yNC4yLTc4LjUgNC4zLTYuMyAxNS42LTExLjUgMjAuOC0xOS4zIDEzIDEwLjQgMjAuOCAyMC4zIDMzLjIgMzEuNCA2LjggNiAyMCAxMy4zIDIxLjQgMjMuMSAuOCA1LjUtMi42IDE4LjktMy44IDI1LjF6TTE5MC41IDEzMC41YzUuNC0xNC45IDI3LjItMzQuNyA0NS0zMiA3LjcgMS4yIDE4IDguMiAxMi4yIDE3LjctMzAuMi03LTQ1LjIgMTIuNi01NC40IDMzLjEtOC4xLTItNC45LTEzLjEtMi44LTE4Ljh6bTE4NC4xIDYzLjFjOC4yLTMuNiAyMi40LS43IDI5LjYtNS4zLTQuMi0xMS41LTEwLjMtMjEuNC05LjMtMzcuNyAuNSAwIDEgMCAxLjQgLjEgNi44IDE0LjIgMTIuNyAyOS4yIDIxLjQgNDEuNy01LjcgMTMuNS00My42IDI1LjQtNDMuMSAxLjJ6bS05Ni44IDIuN2MtNi44LTEwLjktMTktMzIuNS0xNC41LTQ1LjMgNi41IDExLjkgOC42IDI0LjQgMTcuOCAzMy4zIDQuMSA0IDEyLjIgOSA4LjIgMjAuMi0uOSAyLjctNy44IDguNi0xMS43IDkuNy0xNC40IDQuMy00Ny45IC45LTM2LjYtMTcuMSAxMS45IC43IDI3LjkgNy44IDM2LjgtLjh6bTI3LjMgNzBjMy44IDYuNiAxLjQgMTguNyAxMi4xIDIwLjYgMjAuMiAzLjQgNDMuNi0xMi4zIDU4LjEtMTcuOCA5LTE1LjItLjgtMjAuNy04LjktMzAuNS0xNi42LTIwLTM4LjgtNDQuOC0zOC03NC43IDYuNy00LjkgNy4zIDcuNCA4LjIgOS43IDguNyAyMC4zIDMwLjQgNDYuMiA0Ni4zIDYzLjUgMy45IDQuMyAxMC4zIDguNCAxMSAxMS4yIDIuMSA4LjItNS40IDE4LTQuNSAyMy41LTIxLjcgMTMuOS00NS44IDI5LjEtODEuNCAyNS42LTcuNC02LjctMTAuMy0yMS40LTIuOS0zMS4xem0tMjAxLjMtOS4yYy02LjgtMy45LTguNC0yMS0xNi40LTIxLjQtMTEuNC0uNy05LjMgMjIuMi05LjMgMzUuNS03LjgtNy4xLTkuMi0yOS4xLTMuNS00MC4zLTYuNi0zLjItOS41IDMuNi0xMy4xIDUuOSA0LjctMzQuMSA0OS44LTE1LjggNDIuMyAyMC4zem0yOTkuNiAyOC44Yy0xMC4xIDE5LjItMjQuNCA0MC40LTU0IDQxLS42LTYuMi0xLjEtMTUuNiAwLTE5LjQgMjIuNy0yLjIgMzYuNi0xMy43IDU0LTIxLjZ6TTI2MS41IDI5OC4zYzE4LjkgOS45IDUzLjYgMTEgNzkuMyAxMC4yIDEuNCA1LjYgMS4zIDEyLjYgMS40IDE5LjQtMzMgMS44LTcyLTYuNC04MC43LTI5LjZ6TTM1My43IDM0NWMtMS43IDQuMy01LjMgOS4zLTkuOCAxMS4xLTEyLjEgNC45LTQ1LjYgOC43LTYyLjQtLjMtMTAuNy01LjctMTcuNS0xOC41LTIzLjQtMjYtMi44LTMuNi0xNi45LTEyLjktLjItMTIuOSAxMy4xIDMyLjcgNTggMjkgOTUuOCAyOC4xeiJdfSxUOWU9e3ByZWZpeDoiZmFiIixpY29uTmFtZToic2xpZGVzaGFyZSIsaWNvbjpbNTEyLDUxMixbXSwiZjFlNyIsIk0xODcuOSAxNTMuN2MtMzQgMC02MS43IDI1LjctNjEuNyA1Ny43IDAgMzEuNyAyNy43IDU3LjcgNjEuNyA1Ny43czYxLjctMjYgNjEuNy01Ny43YzAtMzItMjcuNy01Ny43LTYxLjctNTcuN3ptMTQzLjQgMGMtMzQgMC02MS43IDI1LjctNjEuNyA1Ny43IDAgMzEuNyAyNy43IDU3LjcgNjEuNyA1Ny43IDM0LjMgMCA2MS43LTI2IDYxLjctNTcuNyAuMS0zMi0yNy40LTU3LjctNjEuNy01Ny43em0xNTYuNiA5MGwtNiA0LjMgMC0xOTguM2MwLTI3LjQtMjAuNi00OS43LTQ2LTQ5LjdMNzYuOCAwYy0yNS40IDAtNDYgMjIuMy00NiA0OS43bDAgMTk4LjNjLTItMS40LTQuMy0yLjktNi4zLTQuMy0xNS4xLTEwLjYtMjUuMSA0LTE2IDE3LjcgMTguMyAyMi42IDUzLjEgNTAuMyAxMDYuMyA3Mi01Ni4zIDE5MS43IDEzNy40IDIyMi4zIDEzNC4zIDEyNC4xIDAtLjcgLjMtNTYuNiAuMy05Ni42IDUuMSAxLjEgOS40IDIuMyAxMy43IDMuMSAwIDM5LjcgLjMgOTIuOCAuMyA5My41LTMuMSA5OC4zIDE5MC42IDY3LjcgMTM0LjMtMTI0IDUzLjEtMjEuNyA4OC00OS40IDEwNi4zLTcyIDkuMS0xMy44LS45LTI4LjMtMTYuMS0xNy44em0tMzAuNSAxOS4yYy02OC45IDM3LjQtMTI4LjMgMzEuMS0xNjAuNiAyOS43LTIzLjctLjktMzIuNiA5LjEtMzMuNyAyNC45LTEwLjMtNy43LTE4LjYtMTUuNS0yMC4zLTE3LjEtNS4xLTUuNC0xMy43LTgtMjcuMS03LjctMzEuNyAxLjEtODkuNyA3LjQtMTU3LjQtMjhsMC0xOTIuNGMwLTM0LjkgOC45LTQ1LjcgNDAuNi00NS43bDMxNy43IDBjMzAuMyAwIDQwLjkgMTIuOSA0MC45IDQ1LjdsMCAxOTAuNi0uMSAweiJdfSxMOWU9e3ByZWZpeDoiZmFiIixpY29uTmFtZToidWJlciIsaWNvbjpbNDQ4LDUxMixbXSwiZjQwMiIsIk00MTQuMSAzMkwzMy45IDMyQzE1LjIgMzIgMCA0Ny4yIDAgNjUuOUwwIDQ0NmMwIDE4LjggMTUuMiAzNCAzMy45IDM0TDQxNCA0ODBjMTguNyAwIDMzLjktMTUuMiAzMy45LTMzLjlsMC0zODAuMkM0NDggNDcuMiA0MzIuOCAzMiA0MTQuMSAzMnpNMjM3LjYgMzkxLjFDMTYzIDM5OC42IDk2LjQgMzQ0LjIgODguOSAyNjkuNmw5NC40IDAgMCAyMC40YzAgMy43IDMgNi44IDYuOCA2LjhsNjcuOSAwYzMuNyAwIDYuOC0zIDYuOC02LjhsMC02Ny45YzAtMy43LTMtNi44LTYuOC02LjhsLTY3LjkgMGMtMy43IDAtNi44IDMtNi44IDYuOGwwIDIwLjQtOTQuNCAwYzctNjkuNCA2NS40LTEyMi4yIDEzNS4xLTEyMi4yczEyOC4xIDUyLjggMTM1LjEgMTIyLjJjNy41IDc0LjUtNDYuOSAxNDEuMS0xMjEuNSAxNDguNnoiXX0sJDllPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImRpZ2l0YWwtb2NlYW4iLGljb246WzUxMiw1MTIsW10sImYzOTEiLCJNODcgNDgxLjhsNzMuNyAwIDAtNzMuNi03My43IDAgMCA3My42ek0yNS40IDM0Ni42bDAgNjEuNiA2MS42IDAgMC02MS42LTYxLjYgMHpNNDkxLjYgMTc2LjlDNDY4LjYgMTAyLjcgNDA5LjIgNDMuNiAzMzUgMjAuMyAxNjQuOS0zMi44IDggOTMuNyA4IDI1NS45bDk1LjggMGMwLTEwMS44IDEwMS0xODAuNSAyMDguMS0xNDEuNyAzOS43IDE0LjMgNzEuNSA0Ni4xIDg1LjggODUuNyAzOS4xIDEwNy0zOS43IDIwNy44LTE0MS40IDIwOGwwIC4zLS4zIDAgMCA5NS44YzE2Mi42IDAgMjg4LjgtMTU2LjggMjM1LjYtMzI3LjF6bS0yMzUuMyAyMzFsMC05NS4zLTk1LjYgMCAwIDk1LjYgOTUuMyAwIDAtLjMgLjMgMHoiXX0sQTllPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6InNvdW5kY2xvdWQiLGljb246WzY0MCw1MTIsW10sImYxYmUiLCJNNjQwLjIgMjk4LjZjLTEuMyAyMy4xLTExLjUgNDQuOC0yOC40IDYwLjVzLTM5LjIgMjQuNC02Mi4zIDI0LjFsLTIxOCAwYy00LjggMC05LjQtMi0xMi44LTUuNHMtNS4zLTgtNS4zLTEyLjhsMC0yMzQuOGMtLjItNCAuOS04IDMuMS0xMS40czUuMy02LjEgOS03LjdjMCAwIDIwLjEtMTMuOSA2Mi4zLTEzLjkgMjUuOCAwIDUxLjEgNi45IDczLjMgMjAuMSAxNy4zIDEwLjIgMzIuMyAyMy44IDQ0LjEgNDAuMXMyMCAzNC44IDI0LjIgNTQuNGM3LjUtMi4xIDE1LjMtMy4yIDIzLjEtMy4yIDExLjctLjEgMjMuMyAyLjIgMzQuMiA2LjdzMjAuNSAxMS4zIDI4LjcgMTkuNyAxNC42IDE4LjMgMTguOSAyOS4zIDYuMyAyMi42IDUuOSAzNC4zem0tMzU0LTE1My41Yy4xLTEgMC0yLS4zLTIuOXMtLjgtMS44LTEuNS0yLjYtMS41LTEuMy0yLjQtMS43Yy0xLjgtLjgtNC0uOC01LjggMC0uOSAuNC0xLjcgMS0yLjQgMS43cy0xLjIgMS42LTEuNSAyLjYtLjQgMS45LS4zIDIuOWMtNiA3OC45LTEwLjYgMTUyLjkgMCAyMzEuNiAuMiAxLjcgMSAzLjMgMi4zIDQuNSAyLjYgMi40IDYuOCAyLjQgOS40IDAgMS4zLTEuMiAyLjEtMi44IDIuMy00LjUgMTEuMy03OS40IDYuNi0xNTIgMC0yMzEuNmwuMiAwem0tNDQgMjcuM2MtLjItMS44LTEuMS0zLjUtMi40LTQuN3MtMy4xLTEuOS01LTEuOS0zLjYgLjctNSAxLjktMi4yIDIuOS0yLjQgNC43Yy03LjkgNjcuOS03LjkgMTM2LjUgMCAyMDQuNCAuMyAxLjggMS4yIDMuNCAyLjUgNC41czMuMSAxLjggNC44IDEuOCAzLjUtLjYgNC44LTEuOCAyLjItMi44IDIuNS00LjVjOC44LTY3LjggOC44LTEzNi41IC4xLTIwNC40bC4xIDB6bS00NC4zLTYuOWMtLjItMS44LTEtMy40LTIuMy00LjZzLTMtMS44LTQuOC0xLjgtMy41IC43LTQuOCAxLjgtMi4xIDIuOC0yLjMgNC42Yy02LjcgNzItMTAuMiAxMzkuMyAwIDIxMS4xIDAgMS45IC43IDMuNyAyLjEgNXMzLjEgMi4xIDUgMi4xIDMuNy0uNyA1LTIuMSAyLjEtMy4xIDIuMS01YzEwLjUtNzIuOCA3LjMtMTM4LjIgLjEtMjExLjFsLS4xIDB6bS00NCAyMC42YzAtMS45LS44LTMuOC0yLjEtNS4ycy0zLjItMi4xLTUuMi0yLjEtMy44IC44LTUuMiAyLjEtMi4xIDMuMi0yLjEgNS4yYy04LjEgNjMuMy04LjEgMTI3LjUgMCAxOTAuOCAuMiAxLjggMSAzLjQgMi40IDQuNnMzLjEgMS45IDQuOCAxLjkgMy41LS43IDQuOC0xLjkgMi4yLTIuOCAyLjQtNC42YzguOC02My4zIDguOS0xMjcuNSAuMy0xOTAuOGwtLjEgMHptLTQ0LjUgNDcuNmMwLTEuOS0uOC0zLjgtMi4xLTUuMXMtMy4yLTIuMS01LjEtMi4xLTMuOCAuOC01LjEgMi4xLTIuMSAzLjItMi4xIDUuMWMtMTAuNSA0OS4yLTUuNSA5My45IC40IDE0My42IC4zIDEuNiAxLjEgMy4xIDIuMyA0LjJzMi44IDEuNyA0LjUgMS43IDMuMi0uNiA0LjUtMS43IDIuMS0yLjUgMi4zLTQuMmM2LjYtNTAuNCAxMS42LTk0LjEgLjQtMTQzLjZ6bS00NC4xLTcuNWMtLjItMS44LTEuMS0zLjUtMi40LTQuOHMtMy4yLTEuOS01LTEuOS0zLjYgLjctNSAxLjktMi4yIDIuOS0yLjQgNC44Yy05LjMgNTAuMi02LjIgOTQuNCAuMyAxNDQuNSAuNyA3LjYgMTMuNiA3LjUgMTQuNCAwIDcuMi01MC45IDEwLjUtOTMuOCAuMy0xNDQuNWwtLjIgMHpNMjAuNyAyNTAuOGMtLjItMS44LTEuMS0zLjUtMi40LTQuOHMtMy4yLTEuOS01LTEuOS0zLjYgLjctNSAxLjktMi4zIDIuOS0yLjQgNC44Yy04LjUgMzMuNy01LjkgNjEuNiAuNiA5NS40IC4yIDEuNyAxIDMuMyAyLjMgNC40czIuOSAxLjggNC43IDEuOCAzLjQtLjYgNC43LTEuOCAyLjEtMi43IDIuMy00LjRjNy41LTM0LjUgMTEuMi02MS44IC40LTk1LjRsLS4yIDB6Il19LEQ5ZT17cHJlZml4OiJmYWIiLGljb25OYW1lOiJzcXVhcmUtZmlnbWEiLGljb246WzQ0OCw1MTIsW10sImU3ZTQiLCJNMzg0IDMyYzM1LjMgMCA2NCAyOC43IDY0IDY0bDAgMzIwYzAgMzUuMy0yOC43IDY0LTY0IDY0TDY0IDQ4MGMtMzUuMyAwLTY0LTI4LjctNjQtNjRMMCA5NkMwIDYwLjcgMjguNyAzMiA2NCAzMmwzMjAgMHpNMTczLjcgOTZjLTMzIDAtNTkuOCAyNi44LTU5LjggNTkuOCAwIDIxIDEwLjggMzkuNCAyNy4yIDUwLjEtMTYuNCAxMC43LTI3LjIgMjkuMS0yNy4yIDUwLjFzMTAuOCAzOS41IDI3LjIgNTAuMWMtMTYuNCAxMC43LTI3LjIgMjkuMS0yNy4yIDUwLjEgMCAzMy4xIDI3LjEgNTkuOCA2MC4xIDU5LjggMzMuMiAwIDYwLjYtMjYuOSA2MC42LTYwLjNsMC01NS43YzEwLjYgOS44IDI0LjggMTUuOCA0MC40IDE1LjhsMS4xIDBjMzMgMCA1OS44LTI2LjggNTkuOC01OS44IDAtMjEtMTAuOC0zOS41LTI3LjItNTAuMSAxNi40LTEwLjcgMjcuMi0yOS4xIDI3LjItNTAuMSAwLTMzLTI2LjgtNTkuOC01OS44LTU5LjhMMTczLjcgOTZ6bTQxLjYgMjE5LjhsMCAzOS45YzAgMjIuNi0xOC42IDQxLTQxLjMgNDEtMjIuNCAwLTQwLjctMTguMi00MC43LTQwLjUgMC0yMi4zIDE4LjEtNDAuNCA0MC4zLTQwLjRsNDEuNyAwem0wLTEwMC4zbDAgODAuOS00MS43IDBjLTIyLjMtLjEtNDAuMy0xOC4yLTQwLjMtNDAuNSAwLTIyLjMgMTguMS00MC41IDQwLjUtNDAuNWw0MS42IDB6bTYwLjggMGMyMi4zIDAgNDAuNSAxOC4xIDQwLjUgNDAuNXMtMTguMSA0MC41LTQwLjUgNDAuNWwtMS4xIDBjLTIyLjMgMC00MC40LTE4LjEtNDAuNC00MC41czE4LjEtNDAuNSA0MC40LTQwLjVsMS4xIDB6bS02MC44LTE5LjNsLTQxLjYgMGMtMjIuMyAwLTQwLjUtMTguMS00MC41LTQwLjRzMTguMS00MC41IDQwLjUtNDAuNWw0MS42IDAgMCA4MC45em02MC44LTgwLjljMjIuMyAwIDQwLjUgMTguMSA0MC41IDQwLjVzLTE4LjEgNDAuNC00MC41IDQwLjRsLTQxLjUgMCAwLTgwLjkgNDEuNSAweiJdfSxFOWU9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiY3JlYXRpdmUtY29tbW9ucy1zYSIsaWNvbjpbNTEyLDUxMixbXSwiZjRlZiIsIk0yNTUuNiA4QzM5Ny40IDggNTA0IDExOC4xIDUwNCAyNTYgNTA0IDQwMy4xIDM4NS41IDUwNCAyNTUuNiA1MDQgMTIxLjYgNTA0IDggMzk0LjUgOCAyNTYgOCAxMjMuMSAxMTIuNyA4IDI1NS42IDh6bS44IDQ0LjdjLTExOC4yIDAtMjAzLjcgOTcuOS0yMDMuNyAyMDMuMyAwIDEwOS44IDkxLjIgMjAyLjggMjAzLjcgMjAyLjggMTAzLjIgMCAyMDIuOC04MS4xIDIwMi44LTIwMi44IC4xLTExMy44LTkwLjItMjAzLjMtMjAyLjgtMjAzLjN6TTE0NS43IDIyMWMxMy04My45IDgwLjUtOTUuNyAxMDguOS05NS43IDk5LjggMCAxMjcuNSA4Mi41IDEyNy41IDEzNC4yIDAgNjMuNi00MSAxMzIuOS0xMjguOSAxMzIuOS0zOC45IDAtOTkuMS0yMC0xMDkuNC05N2w2Mi41IDBjMS41IDMwLjEgMTkuNiA0NS4yIDU0LjUgNDUuMiAyMy4zIDAgNTgtMTguMiA1OC04Mi44IDAtODIuNS00OS4xLTgwLjYtNTYuNy04MC42LTMzLjEgMC01MS43IDE0LjYtNTUuOCA0My44bDE4LjIgMC00OS4yIDQ5LjItNDktNDkuMiAxOS40IDB6Il19LFA5ZT17cHJlZml4OiJmYWIiLGljb25OYW1lOiJjaHJvbWUiLGljb246WzUxMiw1MTIsW10sImYyNjgiLCJNMCAyNTZjMC00Ni42IDEyLjUtOTAuNCAzNC4zLTEyOC45TDE0NC4xIDMxOC4zYzIxLjkgMzkuMiA2My44IDY1LjcgMTExLjkgNjUuNyAxNC4zIDAgMjcuMS0yLjMgNDAuOC02LjZMMjIwLjUgNTA5LjZDOTUuOSA0OTIuMyAwIDM4NS4zIDAgMjU2em0zNjUuMSA2NS42YzEyLjMtMTkuMiAxOC45LTQyLjUgMTguOS02NS42IDAtMzguMi0xNi44LTcyLjUtNDMuMy05NmwxNTIuNyAwYzEyIDI5LjYgMTguNiA2Mi4xIDE4LjYgOTYgMCAxNDEuNC0xMTQuNiAyNTUuMS0yNTYgMjU2TDM2NS4xIDMyMS42ek00NzcuOCAxMjhMMjU2IDEyOGMtNjIuOSAwLTExMy43IDQ0LjEtMTI1LjUgMTAyLjdMNTQuMiA5OC41QzEwMSAzOC41IDE3NCAwIDI1NiAwIDM1MC44IDAgNDMzLjUgNTEuNSA0NzcuOCAxMjh6TTM0NCAyNTZhODggODggMCAxIDEgLTE3NiAwIDg4IDg4IDAgMSAxIDE3NiAweiJdfSxJOWU9e3ByZWZpeDoiZmFiIixpY29uTmFtZToidHJhZGUtZmVkZXJhdGlvbiIsaWNvbjpbNTEyLDUxMixbXSwiZjUxMyIsIk0yNTYgOC44YTI0Ny4yIDI0Ny4yIDAgMSAwIDAgNDk0LjQgMjQ3LjIgMjQ3LjIgMCAxIDAgMC00OTQuNHptMCAxMS42YTIzNS42IDIzNS42IDAgMSAxIDAgNDcxLjIgMjM1LjYgMjM1LjYgMCAxIDEgMC00NzEuMnpNNDExLjEgMTYzLjFsMC00Ni44LTE5My44IDAgMCA4MS43LTE1NS4xIDAgMzYuNyA0NiAxMTcuNyAwIDAgMTk2LjggNDguOCAwIDAtMTk1LjggODMuMyAwIDAtNDctODMuMyAwIDAtMzQuOCAxNDUuNyAwIDAtLjF6bS03My4zIDQ1LjFsMCAyMy45LTgyLjkgMCAwIDE5Ny40LTI2LjggMCAwLTE5Ny40LTEyMy44IDAtMjAuMS0yMy45IDE0My45IDAgMC04MC42IDE3MS44IDAgMCAyNC40LTE0NSAwIDAgNTYuMiA4Mi45IDB6bS0xNjEuMy02OWwtMTIuNC0yMC43IDIuMSAyMy44LTIzLjUgNS40IDIzLjMgNS40LTIuMSAyNCAxMi4zLTIwLjUgMjIuMiA5LjUtMTUuNy0xOC4xIDE1LjgtMTguMS0yMiA5LjN6bS0yOS42LTE5LjdsOS4zLTExLjUtMTIuNyA1LjktOC0xMi40IDEuNyAxMy45LTE0LjMgMy44IDEzLjcgMi43LS44IDE0LjcgNi44LTEyLjIgMTMuOCA1LjMtOS41LTEwLjJ6TTMxMi4zIDI2NC43bC0xMy4xIDUuNi03LjMtMTIuMiAxLjMgMTQuMi0xMy45IDMuMiAxMy45IDMuMi0xLjIgMTQuMiA3LjMtMTIuMiAxMy4xIDUuNS05LjQtMTAuNyA5LjMtMTAuOHptMTA2LjktNzcuMmwtMjAuOSA5LjEtMTItMTkuNiAyLjIgMjIuNy0yMi4zIDUuNCAyMi4yIDQuOS0xLjggMjIuOSAxMS41LTE5LjYgMjEuMiA4LjgtMTUuMS0xNyAxNS0xNy42ek0yNTYgMjkuOWEyMjYuMSAyMjYuMSAwIDEgMCAwIDQ1Mi4yIDIyNi4xIDIyNi4xIDAgMSAwIDAtNDUyLjJ6TTM1MC42IDE5NmwwIDUxLTgzLjMgMCAwIDE5NS43LTUyLjcgMCAwLTE5Ni44LTExNi43IDAtNDAtNDkuOSAxNTcuNCAwIDAtODEuNiAxOTcuOCAwIDAgNTAuNy0xNDUuNyAwIDAgMzAuOSA4My4yIDB6TTI1NiA0My4yYzYwLjMgMCAxMTQuOCAyNSAxNTMuNiA2NS4ybC0xOTkuMSAwIDAgODEuNi0xNTcuNCAwQzgxLjEgMTA0LjggMTYxLjQgNDMuMiAyNTYgNDMuMnptMCA0MjcuMWMtMTE3LjkgMC0yMTMuNi05NS42LTIxMy42LTIxMy41IDAtMjEuMiAzLjEtNDEuOCA4LjktNjEuMWw0My44IDU2LjMgMTE0LjcgMCAwIDE5Ni44IDY0LjYgMCAwLTE5NS44IDgzLjMgMCAwLTYyLjctODMuMiAwIDAtMTkuMiAxNDUuNiAwIDAtNTAuOGMzMC44IDM3IDQ5LjMgODQuNiA0OS4zIDEzNi41IC4xIDExNy45LTk1LjUgMjEzLjUtMjEzLjQgMjEzLjV6TTE4Ni44IDI3NWwtMTEtMjEuNCAxLjcgMjQuNS0yMy43IDMuOSAyMy44IDUuOS0zLjcgMjMuOCAxMy0yMC45IDIxLjUgMTAuOC0xNS44LTE4LjggMTYuOS0xNy4xLTIyLjcgOS4zeiJdfSxOOWU9e3ByZWZpeDoiZmFiIixpY29uTmFtZToidmFhZGluIixpY29uOls0NDgsNTEyLFtdLCJmNDA4IiwiTTIyNC41IDE0MC43QzIyNiAxMjMuMSAyMjkuNCA4OCAyNzQuMyA4OGw5OC42IDBjMjAuNyAwIDMyLjEtNy44IDMyLjEtMjEuNmwwLTEyLjNjMC0xMi4yIDkuMy0yMi4xIDIxLjUtMjIuMVM0NDggNDEuOSA0NDggNTQuMWwwIDM2LjVjMCA0Mi45LTIxLjUgNjItNjYuOCA2MmwtMTAwLjUgMGMtMzAuMSAwLTMzIDE0LjctMzMgMjcuMSAwIDEuMy0uMSAyLjUtLjIgMy43LS43IDEyLjMtMTAuOSAyMi4yLTIzLjQgMjIuMnMtMjIuNy05LjgtMjMuNC0yMi4yYy0uMS0xLjItLjItMi40LS4yLTMuNyAwLTEyLjMtMy0yNy4xLTMzLTI3LjFsLTEwMC43IDBDMjEuNSAxNTIuNiAwIDEzMy41IDAgOTAuNkwwIDU0LjFDMCA0MS45IDkuNCAzMiAyMS42IDMyczIxLjUgOS45IDIxLjUgMjIuMWwwIDEyLjNDNDMuMSA4MC4yIDU0LjUgODggNzUuMiA4OGw5OC42IDBjNDQuOCAwIDQ4LjMgMzUuMSA0OS44IDUyLjdsLjkgMHpNMjI0IDQ1NmMxMS41IDAgMjEuNC03IDI1LjctMTYuMyAxLjEtMS44IDk3LjEtMTY5LjYgOTguMi0xNzEuNCAxMS45LTE5LjYtMy4yLTQ0LjMtMjcuMi00NC4zLTEzLjkgMC0yMy4zIDYuNC0yOS44IDIwLjNMMjI0IDM2MiAxNTcuMSAyNDQuM2MtNi40LTEzLjktMTUuOS0yMC4zLTI5LjgtMjAuMy0yNCAwLTM5LjEgMjQuNi0yNy4yIDQ0LjMgMS4xIDEuOSA5Ny4xIDE2OS42IDk4LjIgMTcxLjQgNC4zIDkuMyAxNC4yIDE2LjMgMjUuNyAxNi4zeiJdfSxGOWU9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiZGV2aWFudGFydCIsaWNvbjpbMzIwLDUxMixbXSwiZjFiZCIsIk0zMjAgOTMuMmwtOTguMiAxNzkuMSA3LjQgOS41IDkwLjggMCAwIDEyNy43LTE2MC45IDAtMTMuNSA5LjItNDMuNyA4NGMtLjMgMC04LjYgOC42LTkuMiA5LjJsLTkyLjcgMCAwLTkzLjIgOTMuMi0xNzkuNC03LjQtOS4yLTg1LjggMCAwLTEyNy42IDE1NiAwIDEzLjUtOS4yIDQzLjctODRjLjMgMCA4LjYtOC42IDkuMi05LjJsOTcuNiAwIDAgOTMuMXoiXX0sTDU9e3ByZWZpeDoiZmFiIixpY29uTmFtZToibWVkaXVtIixpY29uOls0NDgsNTEyLFs2MjQwNywibWVkaXVtLW0iXSwiZjIzYSIsIk0zNjkuNCAzMmM0My40IDAgNzguNiAzNS4yIDc4LjYgNzguNmwwIDgzLjhjLTEuOS0uMS0zLjgtLjItNS43LS4ybC0uNCAwYy0xMCAwLTIyLjMgMi40LTMxLjEgNi44LTEwIDQuNi0xOC43IDExLjUtMjYgMjAuNi0xMS44IDE0LjYtMTguOSAzNC4zLTIwLjYgNTYuNC0uMSAuNy0uMSAxLjMtLjIgMnMtLjEgMS4yLS4xIDEuOWMtLjEgMS4yLS4xIDIuNC0uMSAzLjYgMCAxLjktLjEgMy44IDAgNS44IDEuMiA1MC4xIDI4LjIgOTAuMiA3Ni4zIDkwLjIgMi43IDAgNS4zLS4xIDcuOS0uNGwwIDIwLjRjMCA0My40LTM1LjIgNzguNi03OC42IDc4LjZMNzguNiA0ODBDMzUuMiA0ODAgMCA0NDQuOCAwIDQwMS40TDAgMTEwLjZDMCA2Ny4yIDM1LjIgMzIgNzguNiAzMmwyOTAuOCAwek04Mi4zIDEzOC45bC4zIC4xYzEzLjIgMyAxOS44IDcuNCAxOS44IDIzLjRsMCAxODcuMmMwIDE2LTYuNyAyMC40LTE5LjkgMjMuNGwtLjMgLjEgMCAyLjggNTIuOCAwIDAtMi44LS4zLS4xYy0xMy4yLTMtMTkuOS03LjQtMTkuOS0yMy40bDAtMTc2LjMgODYuMSAyMDIuNSA0LjkgMCA4OC42LTIwOC4yIDAgMTg2LjZjLTEuMSAxMi42LTcuOCAxNi41LTE5LjcgMTkuMmwtLjMgLjEgMCAyLjcgOTEuOSAwIDAtMi43LS4zLS4xYy0xMS45LTIuNy0xOC43LTYuNi0xOS45LTE5LjJsLS4xLTE5MS44IC4xIDBjMC0xNiA2LjctMjAuNCAxOS45LTIzLjRsLjMtLjEgMC0yLjctNzIuMiAwLTY3IDE1Ny40LTY3LTE1Ny40LTc3LjggMCAwIDIuN3pNNDQ4IDM0MC4zYy0yNS4xLTcuNC00My0zNS4xLTQxLjItNjcuOGwwIDAgNDEuMSAwIDAgNjcuOHptLTYuNC0xMzUuNmMyLjMgMCA0LjQgLjMgNi40IC45bDAgNTcuNC00MC4yIDBjMS41LTMzLjYgMTMuNi01Ny45IDMzLjgtNTguM3oiXX0sTzllPUw1LFI5ZT17cHJlZml4OiJmYWIiLGljb25OYW1lOiJvcGVuY2FydCIsaWNvbjpbNjQwLDUxMixbXSwiZjIzZCIsIk0zMzEuOCA0NDAuNGE0NS44IDQ1LjggMCAxIDEgOTEuNSAuMyA0NS44IDQ1LjggMCAxIDEgLTkxLjUtLjN6TTE2OS40IDM5NC45YTQ1LjcgNDUuNyAwIDEgMCAuMyA5MS4zIDQ1LjcgNDUuNyAwIDEgMCAtLjMtOTEuM3ptMjkxLjctMjcwYy0zMDIuMiAwLTM3OS4yLTEyLjgtNDYxLjEtOTkuMiAzNC40IDUxLjcgNTMuMyAxNDguOSAzNzMuMSAxNDQuMiAzMzMuMy01IDEzMCA4Ni4xIDcwLjggMTg4LjkgMTg2LjctMTY2LjcgMzE5LjQtMjMzLjkgMTcuMi0yMzMuOXoiXX0sQjllPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6InktY29tYmluYXRvciIsaWNvbjpbNDQ4LDUxMixbXSwiZjIzYiIsIk00NDggMzJsMCA0NDgtNDQ4IDAgMC00NDggNDQ4IDB6TTIzNiAyODcuNWw3Ny41LTE0NS41LTMyLjcgMC00NS44IDkxYy00LjcgOS4zLTkgMTguMy0xMi44IDI2LjhsLTEyLjItMjYuOC00NS4yLTkxLTM1IDAgNzYuNyAxNDMuOCAwIDk0LjUgMjkuNSAwIDAtOTIuOHoiXX0sSDllPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImxpbmUiLGljb246WzUxMiw1MTIsW10sImYzYzAiLCJNMzExIDE5Ni44bDAgODEuM2MwIDIuMS0xLjYgMy43LTMuNyAzLjdsLTEzIDBjLTEuMyAwLTIuNC0uNy0zLTEuNUwyNTQgMjMwIDI1NCAyNzguMmMwIDIuMS0xLjYgMy43LTMuNyAzLjdsLTEzIDBjLTIuMSAwLTMuNy0xLjYtMy43LTMuN2wwLTgxLjNjMC0yLjEgMS42LTMuNyAzLjctMy43bDEyLjkgMGMxLjEgMCAyLjQgLjYgMyAxLjZsMzcuMyA1MC4zIDAtNDguMmMwLTIuMSAxLjYtMy43IDMuNy0zLjdsMTMgMGMyLjEtLjEgMy44IDEuNiAzLjggMy41bDAgLjF6bS05My43LTMuN2wtMTMgMGMtMi4xIDAtMy43IDEuNi0zLjcgMy43bDAgODEuM2MwIDIuMSAxLjYgMy43IDMuNyAzLjdsMTMgMGMyLjEgMCAzLjctMS42IDMuNy0zLjdsMC04MS4zYzAtMS45LTEuNi0zLjctMy43LTMuN3ptLTMxLjQgNjguMWwtMzUuNiAwIDAtNjQuNGMwLTIuMS0xLjYtMy43LTMuNy0zLjdsLTEzIDBjLTIuMSAwLTMuNyAxLjYtMy43IDMuN2wwIDgxLjNjMCAxIC4zIDEuOCAxIDIuNSAuNyAuNiAxLjUgMSAyLjUgMWw1Mi4yIDBjMi4xIDAgMy43LTEuNiAzLjctMy43bDAtMTNjMC0xLjktMS42LTMuNy0zLjUtMy43bC4xIDB6bTE5My43LTY4LjFsLTUyLjMgMGMtMS45IDAtMy43IDEuNi0zLjcgMy43bDAgODEuM2MwIDEuOSAxLjYgMy43IDMuNyAzLjdsNTIuMiAwYzIuMSAwIDMuNy0xLjYgMy43LTMuN2wwLTEzLjFjMC0yLjEtMS42LTMuNy0zLjctMy43bC0zNS41IDAgMC0xMy42IDM1LjUgMGMyLjEgMCAzLjctMS42IDMuNy0zLjdsMC0xMy4xYzAtMi4xLTEuNi0zLjctMy43LTMuN2wtMzUuNSAwIDAtMTMuNyAzNS41IDBjMi4xIDAgMy43LTEuNiAzLjctMy43bDAtMTNjLS4xLTEuOS0xLjctMy43LTMuNy0zLjdsLjEgMHpNNTEyIDkzLjRsMCAzMjZjLS4xIDUxLjItNDIuMSA5Mi43LTkzLjQgOTIuNmwtMzI2IDBDNDEuNCA1MTEuOS0uMSA0NjkuOCAwIDQxOC42bDAtMzI2Qy4xIDQxLjQgNDIuMi0uMSA5My40IDBsMzI2IDBjNTEuMiAuMSA5Mi43IDQyLjEgOTIuNiA5My40ek00NDEuNiAyMzMuNWMwLTgzLjQtODMuNy0xNTEuMy0xODYuNC0xNTEuM1M2OC44IDE1MC4xIDY4LjggMjMzLjVjMCA3NC43IDY2LjMgMTM3LjQgMTU1LjkgMTQ5LjMgMjEuOCA0LjcgMTkuMyAxMi43IDE0LjQgNDIuMS0uOCA0LjctMy44IDE4LjQgMTYuMSAxMC4xczEwNy4zLTYzLjIgMTQ2LjUtMTA4LjJjMjctMjkuNyAzOS45LTU5LjggMzkuOS05My4xbDAtLjJ6Il19LHE5ZT17cHJlZml4OiJmYWIiLGljb25OYW1lOiJhbWlsaWEiLGljb246WzQ0OCw1MTIsW10sImYzNmQiLCJNMjQwLjIgMzJjLTYxLjkgMC0xMzEuNSAxNi45LTE4NC4yIDU1LjQtNS4xIDMuMS05LjEgOS4yLTcuMiAxOS40IDEuMSA1LjEgNS4xIDI3LjQgMTAuMiAzOS42IDQuMSAxMC4yIDE0LjIgMTAuMiAyMC4zIDYuMSAzMi41LTIyLjMgOTYuNS00Ny43IDE1Mi4zLTQ3LjcgNTcuOSAwIDU4LjkgMjguNCA1OC45IDczLjFsMCAzOC41QzIwMy4xIDIyNy43IDc4LjMgMjUxIDQ2LjggMjY0LjIgMTEuMyAyODAuNSAxNi40IDM1Ny43IDE2LjQgMzc2UzMxLjYgNDgwIDE0MS4zIDQ4MGM0Ny44IDAgMTEzLjctMjAuNyAxNTMuMy00Mi4xbDAgMjUuNGMwIDMgMi4xIDguMiA2LjEgOS4xIDMuMSAxIDUwLjcgMiA1OS45IDJzNjIuNSAuMyA2Ni41LS43YzQuMS0xIDUuMS02LjEgNS4xLTkuMWwwLTI5Ni42Yy0uMS04MC4zLTU3LjktMTM2LTE5Mi0xMzZ6bTUwLjIgMzQ4Yy0yMS40IDEzLjItNDguNyAyNC40LTc5LjEgMjQuNC01Mi44IDAtNTguOS0zMy41LTU5LTQ0LjcgMC0xMi4yLTMtNDIuNyAxOC4zLTUyLjkgMjQuMy0xMy4yIDc1LjEtMjkuNCAxMTkuOC0zMy41bDAgMTA2Ljd6Il19LFY5ZT17cHJlZml4OiJmYWIiLGljb25OYW1lOiJhc3ltbWV0cmlrIixpY29uOls1NzYsNTEyLFtdLCJmMzcyIiwiTTUxNy41IDMwOS4yYzM4LjgtNDAgNTguMS04MCA1OC41LTExNi4xIC44LTY1LjUtNTkuNC0xMTguMi0xNjkuNC0xMzUtMTI4LjctMTkuNy0yODguNSAxNS41LTQwNi42IDgyLjQgNTItMjYuNSAxMTAuNi00OC4yIDE3MC43LTU4LjIgNzQuNS0yMC41IDE1My0yNS40IDIyMS4zLTE0LjggMTUyLjUgMjMuOCAxOTYuOCAxMjcuNSA5OC44IDIzMS43LTEwLjIgMTAuOC0yMiAyMS4xLTM1IDMwLjZMMzA0LjkgMTAzLjQgMTE0LjcgMzg4LjljLTY1LjYtMjkuNC03Ni41LTkwLjItMTkuMS0xNTEuMiAyMC44LTIyLjIgNDguMy00MS45IDc5LjUtNTguMSAyMC0xMi4yIDM5LjctMjIuNiA2Mi0zMC43LTY1LjEgMjAuMy0xMjIuNyA1Mi45LTE2MS42IDkyLjktMjcuNyAyOC42LTQxLjQgNTcuMS00MS43IDgyLjktLjUgMzUuMSAyMy40IDY1LjEgNjguNCA4M2wtMzQuNSA1MS43IDEwMS42IDAgMjItMzQuNGMyMi4yIDEgNDUuMyAwIDY4LjYtMi43bC0yMi44IDM3LjEgMTM1LjUgMC0zMi42LTUzLjFjMTguNi01LjMgMzYuOS0xMS41IDU0LjUtMTguN2w0NS45IDcxLjggMTAxLjYgMC03My40LTExMC40YzE4LjUtMTIuMSAzNS0yNS41IDQ4LjktMzkuOHpNMzI5LjkgMzg5LjdsLTI1LTQwLjYtMzIuNyA1My4zYy0yMy40IDMuNS00Ni43IDUuMS02OS4yIDQuNGwxMDEuOS0xNTkuMyA3OC43IDEyM2MtMTcuMiA3LjQtMzUuMyAxMy45LTUzLjcgMTkuMnoiXX0sajllPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6InBoYWJyaWNhdG9yIixpY29uOls1MTIsNTEyLFtdLCJmM2RiIiwiTTMzMS4xIDI2Mi4xbC0uMS0xM3MyMS43LTE5LjggMjEuMS0yMS4ybC05LjUtMjBjLS42LTEuNC0yOS41LS41LTI5LjUtLjVsLTkuNC05LjNzLjItMjguNS0xLjItMjkuMWwtMjAuMS05LjJjLTEuNC0uNi0yMC43IDIxLTIwLjcgMjFsLTEzLjEtLjJzLTIwLjUtMjEuNC0yMS45LTIwLjhsLTIwIDguM2MtMS40IC41IC4yIDI4LjkgLjIgMjguOWwtOS4xIDkuMXMtMjkuMi0uOS0yOS43IC40TDE2MCAyMjYuM2MtLjYgMS40IDIxIDIxIDIxIDIxbC4xIDEyLjlTMTU5LjQgMjgwIDE2MCAyODEuNGw5LjUgMjBjLjYgMS40IDI5LjUgLjUgMjkuNSAuNWw5LjQgOS4zcy0uMiAzMS44IDEuMiAzMi4zbDIwLjEgOC4zYzEuNCAuNiAyMC43LTIzLjUgMjAuNy0yMy41bDEzLjEgLjJzMjAuNSAyMy44IDIxLjggMjMuM2wyMC03LjVjMS40LS42LS4yLTMyLjEtLjItMzIuMWw5LjEtOS4xczI5LjIgLjkgMjkuNy0uNWw4LjEtMTkuOGMuNy0xLjEtMjAuOS0yMC43LTIwLjktMjAuN3ptLTQ0LjktOC43Yy43IDE3LjEtMTIuOCAzMS42LTMwLjEgMzIuNHMtMzIuMS0xMi41LTMyLjgtMjkuNiAxMi44LTMxLjYgMzAuMS0zMi4zYzE3LjMtLjggMzIuMSAxMi41IDMyLjggMjkuNXptMjAxLjItMzcuOWwtOTctOTctLjEgLjFjLTc1LjEtNzMuMy0xOTUuNC03Mi44LTI2OS44IDEuNi01MC45IDUxLTI3LjggMjcuOS05NS43IDk1LjMtMjIuMyAyMi4zLTIyLjMgNTguNyAwIDgxIDY5LjkgNjkuNCA0Ni40IDQ2IDk3LjQgOTdsLjEtLjFjNzUuMSA3My4zIDE5NS40IDcyLjkgMjY5LjgtMS42IDUxLTUwLjkgMjcuOS0yNy45IDk1LjMtOTUuMyAyMi4zLTIyLjMgMjIuMy01OC43IDAtODF6TTM2My41IDE0OC4yYTE1Mi4zIDE1Mi4zIDAgMSAxIC0yMTUgMjE1LjYgMTUyLjMgMTUyLjMgMCAxIDEgMjE1LTIxNS42eiJdfSxVOWU9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiYm90cyIsaWNvbjpbNjQwLDUxMixbXSwiZTM0MCIsIk04Ni4zIDE5Ny44Yy04LS4xLTE1LjkgMS43LTIzLjEgNS4xcy0xMy41IDguNi0xOC40IDE0LjlsMC02MS45YzAtMi4yLS45LTQuMy0yLjQtNS44cy0zLjYtMi40LTUuOC0yLjRsLTI4LjQgMGMtMi4yIDAtNC4zIC45LTUuOCAyLjRTMCAxNTMuOCAwIDE1NkwwIDMzMy42YzAgMS4xIC4yIDIuMSAuNiAzLjFzMSAxLjkgMS44IDIuNyAxLjcgMS40IDIuNyAxLjggMi4xIC42IDMuMSAuNmwyOC40IDBjMS4xIDAgMi4xLS4yIDMuMS0uNnMxLjktMSAyLjctMS44IDEuNC0xLjcgMS44LTIuNyAuNi0yLjEgLjYtMy4xbDAtOC4xYzExLjYgMTMuNCAyNS45IDE5LjggNDEuNiAxOS44IDM0LjYgMCA2MS45LTI2LjIgNjEuOS03My44IDAtNDUuOS0yNy03My42LTYxLjktNzMuNnpNNzEuNSAzMDUuN2MtOS42IDAtMjEuMi00LjktMjYuNy0xMi41bDAtNDNjNS41LTcuNiAxNy4yLTEyLjggMjYuNy0xMi44IDE3LjcgMCAzMS4xIDEzLjEgMzEuMSAzNCAwIDIxLjItMTMuNCAzNC4zLTMxLjEgMzQuM3ptMTU2LjQtNTlhMTcuNCAxNy40IDAgMSAwIDAgMzQuOCAxNy40IDE3LjQgMCAxIDAgMC0zNC44em00Ni4xLTkwbDAtNDQuN2MyLjgtMS4yIDUuMi0zLjMgNi42LTZzMS45LTUuOCAxLjMtOC45LTIuMi01LjctNC42LTcuNy01LjQtMy04LjQtMy02LjEgMS4xLTguNCAzLTQgNC43LTQuNiA3LjctLjEgNi4xIDEuMyA4LjkgMy44IDQuOCA2LjYgNmwwIDQ0LjdjLTI4IDEuMy01NC40IDEzLjYtNzMuNiAzNC4xcy0yOS41IDQ3LjctMjguOCA3NS44IDEyLjMgNTQuNyAzMi40IDc0LjMgNDcgMzAuNiA3NS4xIDMwLjYgNTUtMTEgNzUuMS0zMC42IDMxLjctNDYuMyAzMi40LTc0LjMtOS43LTU1LjMtMjguOC03NS44LTQ1LjUtMzIuOC03My42LTM0LjF6bTg2IDEwNy40YzAgMzAuNS00MC44IDU1LjMtOTEuMSA1NS4zcy05MS4xLTI0LjctOTEuMS01NS4zIDQwLjgtNTUuMyA5MS4xLTU1LjMgOTEuMSAyNC43IDkxLjEgNTUuM2wwIDB6bS01MC4yIDE3LjRjMy40IDAgNi44LTEgOS43LTIuOXM1LjEtNC42IDYuNC03LjggMS43LTYuNyAxLTEwLjEtMi4zLTYuNS00LjgtOC45LTUuNS00LjEtOC45LTQuOC02LjktLjMtMTAuMSAxLTUuOSAzLjUtNy44IDYuNC0yLjkgNi4yLTIuOSA5LjdjMCA0LjYgMS44IDkgNS4xIDEyLjNzNy43IDUuMSAxMi4zIDUuMWwwIDB6bTI3MC45LTMxYy0xNC44LTIuNi0yMi40LTMuOC0yMi40LTkuOSAwLTUuNSA3LjMtOS45IDE3LjctOS45IDEyLjIgLjEgMjQuMiAzLjYgMzQuNSAxMC4xIDEuOCAxLjIgNCAxLjYgNi4yIDEuMXM0LTEuNyA1LjEtMy42Yy4xLS4xIC4xLS4yIC4yLS4zbDguNi0xNC45YzEuMS0xLjkgMS40LTQuMSAuOC02LjFzLTEuOS0zLjktMy43LTVjLTE1LjctOS40LTMzLjctMTQuMy01Mi0xNC4xLTM5IDAtNjAuMiAyMS41LTYwLjIgNDYuMiAwIDM2LjMgMzMuNyA0MS45IDU3LjYgNDUuNiAxMy40IDIuMyAyNC4xIDQuNCAyNC4xIDExIDAgNi40LTUuNSAxMC44LTE4LjkgMTAuOC0xMy42IDAtMzEtNi4yLTQyLjYtMTMuNi0uOS0uNi0xLjktMS0zLTEuMnMtMi4xLS4yLTMuMiAuMS0yLjEgLjctMi45IDEuMy0xLjYgMS40LTIuMiAyLjNjMCAuMS0uMSAuMS0uMSAuMmwtMTAuMiAxNi45Yy0xLjEgMS44LTEuNCA0LTEgNnMxLjcgMy45IDMuNSA1YzE1LjIgMTAuMyAzNy43IDE2LjcgNTkuNCAxNi43IDQwLjQgMCA2NC0xOS44IDY0LTQ2LjUgMC0zOC4xLTM1LjUtNDMuOS01OS4zLTQ4LjN6bS05NS45IDYwLjhjLS41LTItMS44LTMuNy0zLjYtNC44cy0zLjktMS41LTUuOS0xLjFjLTEuNCAuMy0yLjggLjQtNC4yIC40LTcuOCAwLTEyLjUtNi4xLTEyLjUtMTQuMmwwLTUxLjIgMjAuMyAwYzIuMiAwIDQuMi0uOSA1LjgtMi40czIuNC0zLjYgMi40LTUuOGwwLTIyLjdjMC0yLjItLjktNC4yLTIuNC01LjhzLTMuNi0yLjQtNS44LTIuNGwtMjAuMyAwIDAtMzAuMmMwLTIuMi0uOS00LjItMi40LTUuOHMtMy42LTIuNC01LjgtMi40bC0yOC4yIDBjLTIuMiAwLTQuMiAuOS01LjggMi40cy0yLjQgMy42LTIuNCA1LjhsMCAzMC4yLTE1LjEgMGMtMS4xIDAtMi4xIC4yLTMuMSAuNnMtMS45IDEtMi42IDEuOC0xLjQgMS43LTEuOCAyLjYtLjYgMi0uNiAzLjFsMCAyMi43YzAgMS4xIC4yIDIuMSAuNiAzLjFzMSAxLjkgMS44IDIuNiAxLjcgMS40IDIuNiAxLjggMiAuNiAzLjEgLjZsMTUuMSAwIDAgNjMuN2MwIDI3IDE1LjQgNDEuMyA0My45IDQxLjMgMTIuMiAwIDIxLjQtMi4yIDI3LjYtNS40IDEuNi0uOCAyLjktMi4yIDMuNy0zLjlzLjktMy42IC41LTUuNGwtNS0xOS4zeiJdfSxXOWU9e3ByZWZpeDoiZmFiIixpY29uTmFtZToidmluZSIsaWNvbjpbMzg0LDUxMixbXSwiZjFjYSIsIk0zODQgMjU0LjdsMCA1Mi4xYy0xOC40IDQuMi0zNi45IDYuMS01Mi4xIDYuMS0zNi45IDc3LjQtMTAzIDE0My44LTEyNS4xIDE1Ni4yLTE0IDcuOS0yNy4xIDguNC00Mi43LS44LTI3LjEtMTYuMy0xMjkuOS0xMDAuNi0xNjQuMS0zNjUuNmw3NC41IDBjMTguNyAxNTkuMSA2NC41IDI0MC43IDExNC44IDMwMS44IDI3LjktMjcuOSA1NC44LTY1LjEgNzUuNi0xMDYuOS00OS44LTI1LjMtODAuMS04MC45LTgwLjEtMTQ1LjYgMC02NS42IDM3LjctMTE1LjEgMTAyLjItMTE1LjEgMTE0LjkgMCAxMDYuMiAxMjcuOSA4MS42IDE4MS41IDAgMC00Ni40IDkuMi02My41LTIwLjUgMy40LTExLjMgOC4yLTMwLjggOC4yLTQ4LjUgMC0zMS4zLTExLjMtNDYuNi0yOC40LTQ2LjYtMTguMiAwLTMwLjggMTcuMS0zMC44IDUwIC4xIDc5LjIgNTkuNCAxMTguNyAxMjkuOSAxMDEuOXoiXX0sRzllPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6Im1lZHJ0IixpY29uOls1NzYsNTEyLFtdLCJmM2M4IiwiTTEyOS43IDI1NmMwIDEyMS44IDgzLjkgMjIyLjggMTkzLjUgMjQxLjEtMTguNyA0LjUtMzguMiA2LjktNTguMiA2LjktMTM3LjYgMC0yNDktMTExLTI0OS0yNDhTMTI3LjQgOCAyNjQuOSA4YzIwLjEgMCAzOS42IDIuNCA1OC4yIDYuOS0xMDkuNiAxOC4zLTE5My40IDExOS4zLTE5My40IDI0MS4xek00MjcuMSAzNTYuM2MtNzcuNyA1NS40LTE3OS42IDQ3LjUtMjQwLjQtMTQuNiA1LjUgMTQuMSAxMi43IDI3LjcgMjEuNyA0MC41IDYxLjYgODguMiAxODIuNCAxMDkuMyAyNjkuNyA0N3MxMDguMS0xODQuMyA0Ni41LTI3Mi42Yy05LTEyLjktMTkuMy0yNC4zLTMwLjUtMzQuMiAzNy40IDc4LjggMTAuNyAxNzguNS02NyAyMzMuOXptLTIxOC44LTI0NGMtMS40IDEtMi43IDIuMS00IDMuMSA2NC4zLTE3LjggMTM1LjkgNCAxNzguOSA2MC41IDM1LjcgNDcgNDIuOSAxMDYuNiAyNC40IDE1OCA1Ni43LTU2LjIgNjcuNi0xNDIuMSAyMi4zLTIwMS44LTUwLTY1LjUtMTQ5LjEtNzQuNC0yMjEuNi0xOS44ek0zMTIgMjI0Yy00LjQgMC04LTMuNi04LThsMC00MGMwLTQuNC0zLjYtOC04LThsLTQ4IDBjLTQuNCAwLTggMy42LTggOGwwIDQwYzAgNC40LTMuNiA4LTggOGwtNDAgMGMtNC40IDAtOCAzLjYtOCA4bDAgNDhjMCA0LjQgMy42IDggOCA4bDQwIDBjNC40IDAgOCAzLjYgOCA4bDAgNDBjMCA0LjQgMy42IDggOCA4bDQ4IDBjNC40IDAgOC0zLjYgOC04bDAtNDBjMC00LjQgMy42LTggOC04bDQwIDBjNC40IDAgOC0zLjYgOC04bDAtNDhjMC00LjQtMy42LTgtOC04bC00MCAweiJdfSxZOWU9e3ByZWZpeDoiZmFiIixpY29uTmFtZToib3NpIixpY29uOls1MTIsNTEyLFtdLCJmNDFhIiwiTTggMjY2LjRjMi4zLTEzNS44IDk3LjQtMjMyLjQgMjEzLjgtMjQ4LjEgMTM4LjgtMTguNiAyNTUuNiA3NS44IDI3OCAyMDEuMSAyMS4zIDExOC44LTQ0IDIzMC0xNTEuNiAyNzQtOS4zIDMuOC0xNC40IDEuNy0xOC03LjctMTcuOC00Ni4zLTM1LjYtOTIuNi01My40LTEzOS0zLjEtOC4xLTEtMTMuMiA3LTE2LjggMjQuMi0xMSAzOS4zLTI5LjQgNDMuMy01NS44IDEuNS05LjcgMS0xOS42LTEuNS0yOS4xcy02LjktMTguNC0xMi45LTI2LjEtMTMuNi0xNC4xLTIyLjItMTguOC0xOC4xLTcuNS0yNy45LTguM2MtMzktMy40LTcxLjggMjMuNy03Ny41IDU5LjctNS4yIDMzIDExLjEgNjMuNyA0MS45IDc3LjcgOS42IDQuNCAxMS41IDguNiA3LjggMTguNC0xNy45IDQ2LjYtMzUuOCA5My4yLTUzLjcgMTM5LjktMi42IDYuOS04LjMgOS4zLTE1LjUgNi41LTUyLjYtMjAuMy0xMDEuNC02MS0xMzAuOC0xMTktMjQuOS00OS4yLTI1LjItODcuNy0yNi44LTEwOC43em0yMC45LTEuOWMuNCA2LjYgLjYgMTQuMyAxLjMgMjIuMSA2LjMgNzEuOSA0OS42IDE0My41IDEzMSAxODMuMSAzLjIgMS41IDQuNCAuOCA1LjYtMi4zIDE0LjktMzkuMSAyOS45LTc4LjIgNDUtMTE3LjMgMS4zLTMuMyAuNi00LjgtMi40LTYuNy0zMS42LTE5LjktNDcuMy00OC41LTQ1LjYtODYgMS0yMS42IDkuMy00MC41IDIzLjgtNTYuMyAzMC0zMi43IDc3LTM5LjggMTE1LjUtMTcuNiAxNS42IDkgMjguMiAyMi4zIDM2LjIgMzguNHMxMS4yIDM0LjIgOSA1MmMtMy42IDMwLjYtMTkuMyA1My45LTQ1LjcgNjkuOC0yLjcgMS42LTMuNSAyLjktMi4zIDYgMTUuMiAzOS4yIDMwLjMgNzguNCA0NS4yIDExNy43IDEuMiAzLjEgMi40IDMuOCA1LjYgMi4zIDM1LjUtMTYuNiA2NS4yLTQwLjMgODguMS03MiAzNC44LTQ4LjIgNDkuMS0xMDEuOSA0Mi4zLTE2MS0xMy43LTExNy41LTExOS40LTIxNC44LTI1NS41LTE5OC0xMDYuMSAxMy0xOTUuMyAxMDIuNS0xOTcuMSAyMjUuOHoiXX0sWjllPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImdnIixpY29uOls1MTIsNTEyLFtdLCJmMjYwIiwiTTE3OS4yIDIzMC40bDEwMi40IDEwMi40LTEwMi40IDEwMi40LTE3OS4yLTE3OS4yIDE3OS4yLTE3OS4yIDQ0LjggNDQuOC0yNS42IDI1LjYtMTkuMi0xOS4yLTEyOCAxMjggMTI4IDEyOCA1MS41LTUxLjUtNzcuMS03Ni41IDI1LjYtMjUuNnpNMzMyLjggNzYuOGwtMTAyLjQgMTAyLjQgMTAyLjQgMTAyLjQgMjUuNi0yNS42LTc3LjEtNzYuNSA1MS41LTUxLjUgMTI4IDEyOC0xMjggMTI4LTE5LjItMTkuMi0yNS42IDI1LjYgNDQuOCA0NC44IDE3OS4yLTE3OS4yLTE3OS4yLTE3OS4yeiJdfSxYOWU9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiYnV5c2VsbGFkcyIsaWNvbjpbNDQ4LDUxMixbXSwiZjIwZCIsIk0yMjQgMTUwLjdsNDIuOSAxNjAuNy04NS44IDAgNDIuOS0xNjAuN3pNNDQ4IDgwbDAgMzUyYzAgMjYuNS0yMS41IDQ4LTQ4IDQ4TDQ4IDQ4MGMtMjYuNSAwLTQ4LTIxLjUtNDgtNDhMMCA4MEMwIDUzLjUgMjEuNSAzMiA0OCAzMmwzNTIgMGMyNi41IDAgNDggMjEuNSA0OCA0OHpNMzgyLjcgNDA1LjNsLTk0LjUtMjk4LjctMTI4LjQgMC05NC41IDI5OC43IDkwLjcgMCAxMTEuNy05MS42IDI0LjIgOTEuNiA5MC44IDB6Il19LEs5ZT17cHJlZml4OiJmYWIiLGljb25OYW1lOiJnb29nbGUtcGx1cyIsaWNvbjpbNTEyLDUxMixbXSwiZjJiMyIsIk0yNTYgOGEyNDggMjQ4IDAgMSAwIDAgNDk2IDI0OCAyNDggMCAxIDAgMC00OTZ6TTE4NS4zIDM4MGMtMzIuOSAwLTY0LjQtMTMuMS04Ny43LTM2LjNzLTM2LjMtNTQuOC0zNi4zLTg3LjcgMTMuMS02NC40IDM2LjMtODcuNyA1NC44LTM2LjMgODcuNy0zNi4zYzMxLjMgMCA2MC4xIDExIDgzIDMyLjNsLTMzLjYgMzIuNmMtMTMuMi0xMi45LTMxLjMtMTkuMS00OS40LTE5LjEtNDIuOSAwLTc3LjIgMzUuNS03Ny4yIDc4LjFTMTQyLjMgMzM0IDE4NS4zIDMzNGMzMi42IDAgNjQuOS0xOS4xIDcwLjEtNTMuM2wtNzAuMSAwIDAtNDIuNiAxMTYuOSAwYzEuMyA2LjggMS45IDEzLjggMS45IDIwLjcgMCA3MC44LTQ3LjUgMTIxLjItMTE4LjggMTIxLjJ6TTQxNS41IDI3My44bDAgMzUuNS0zNS41IDAgMC0zNS41LTM1LjUgMCAwLTM1LjUgMzUuNSAwIDAtMzUuNSAzNS41IDAgMCAzNS41IDM1LjIgMCAwIDM1LjUtMzUuMiAweiJdfSxROWU9e3ByZWZpeDoiZmFiIixpY29uTmFtZToic2NyZWVucGFsIixpY29uOls1MTIsNTEyLFtdLCJlNTcwIiwiTTI3OC42IDIyLjVhMjIuNSAyMi41IDAgMSAxIC00NSAwIDIyLjUgMjIuNSAwIDEgMSA0NSAwek0xOTguNyAyNTlhNTcuNCA1Ny40IDAgMSAxIDExNC44IDAgNTcuNCA1Ny40IDAgMSAxIC0xMTQuOCAwem0xMzguNiA5MWMyMi4zLTE5LjkgMzYuNS00Ny4zIDM5LjktNzdsMTE5LjUgMGMtMy41IDYxLjQtMzAuNCAxMTkuMi03NS4yIDE2MS40LTQ0LjcgNDIuMi0xMDMuOSA2NS44LTE2NS40IDY1LjhTMTM1LjQgNDc2LjYgOTAuNyA0MzQuNEM0NS45IDM5Mi4yIDE5LjEgMzM0LjQgMTUuNSAyNzNsMTE5LjcgMGMzLjQgMjkuNyAxNy42IDU3LjEgMzkuOSA3N3M1MS4yIDMwLjkgODEuMSAzMC45YzI5IDAgNTguNy0xMSA4MS4xLTMwLjl6TTI4LjMgMTQxLjdhMjIuNSAyMi41IDAgMSAxIDQ1LTEuNCAyMi41IDIyLjUgMCAxIDEgLTQ1IDEuNHptNDU1LjYtLjdhMjIuNCAyMi40IDAgMSAxIC00NC45IDAgMjIuNCAyMi40IDAgMSAxIDQ0LjkgMHpNMzE4IDk1LjNjLTE3LjMgMTMuOC0zOS4yIDIyLjgtNjEuOSAyMi44cy00NC42LTktNjEuOS0yMi44Yy0xNy4zLTE0LjctMjguOC0zNS4xLTMyLjQtNTcuNSAxNS4xLTYuNCAzMC44LTExLjMgNDYuOS0xNC41IDAgMTIuNiA1IDI0LjYgMTMuOSAzMy41czIwLjkgMTMuOSAzMy41IDEzLjkgMjQuNi01IDMzLjUtMTMuOSAxMy45LTIwLjkgMTMuOS0zMy41YzE2LjEgMy4yIDMxLjggOC4xIDQ2LjkgMTQuNS0zLjYgMjIuNC0xNS4xIDQyLjgtMzIuNCA1Ny41ek04Mi45IDIzMWMtMjEuNCA3LjYtNDQuNyA3LjQtNjUuOS0uNiAyLTE2LjMgNS42LTMyLjMgMTAuOC00Ny45IDUuNCAzLjEgMTEuMyA1LjEgMTcuNSA2IDYuMiAuOCAxMi40IC40IDE4LjUtMS4yIDYtMS43IDExLjYtNC40IDE2LjYtOC4yczkuMS04LjUgMTIuMi0xMy45IDUuMS0xMS40IDYtMTcuNWMuOC02LjIgLjQtMTIuNS0xLjItMTguNXMtNC40LTExLjYtOC4yLTE2LjZjLTMuOC00LjktOC41LTkuMS0xMy45LTEyLjIgMTAuOC0xMi4zIDIyLjktMjMuNSAzNi0zMy4zIDE3LjYgMTQuMyAyOS41IDM0LjUgMzMuNiA1Ni44cy4xIDQ1LjQtMTEuMiA2NWMtMTEuNCAxOS42LTI5LjQgMzQuNS01MC43IDQyLjF6bTM0Ni40IC4xYy0yMS4zLTcuNi0zOS4zLTIyLjYtNTAuNy00Mi4yLTExLjMtMTkuNi0xNS4yLTQyLjctMTEuMS02NSA0LjEtMjIuMiAxNi00Mi40IDMzLjUtNTYuNyAxMy4xIDkuOCAyNS4yIDIxIDM2IDMzLjMtMTAuNyA2LjQtMTguNCAxNi43LTIxLjUgMjguOC0zLjIgMTItMi4zIDI0LjggNC44IDM1LjYgNi4yIDEwLjggMTYuNCAxOC43IDI4LjQgMjJzMjQuOSAxLjcgMzUuNy00LjNjNS4zIDE1LjUgOC45IDMxLjYgMTAuOSA0Ny44LTIyLjEgOC4xLTQ0LjYgOC4zLTY2IC43eiJdfSxKOWU9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiYml0Y29pbiIsaWNvbjpbNTEyLDUxMixbXSwiZjM3OSIsIk04IDI1NmEyNDggMjQ4IDAgMSAxIDQ5NiAwIDI0OCAyNDggMCAxIDEgLTQ5NiAwem0zNTQuMy0zNS4zYzQuOS0zMy0yMC4yLTUwLjctNTQuNi02Mi42bDExLjEtNDQuNy0yNy4yLTYuOC0xMC45IDQzLjVjLTcuMi0xLjgtMTQuNS0zLjUtMjEuOC01LjFsMTAuOS00My44LTI3LjItNi44LTExLjIgNDQuN2MtNS45LTEuMy0xMS43LTIuNy0xNy40LTQuMWwwLS4xLTM3LjUtOS40LTcuMiAyOS4xczIwLjIgNC42IDE5LjggNC45YzExIDIuOCAxMyAxMCAxMi43IDE1LjhsLTEyLjcgNTAuOWMuOCAuMiAxLjcgLjUgMi44IC45LS45LS4yLTEuOS0uNS0yLjktLjdsLTE3LjggNzEuM2MtMS4zIDMuMy00LjggOC40LTEyLjUgNi41IC4zIC40LTE5LjgtNC45LTE5LjgtNC45bC0xMy41IDMxLjEgMzUuNCA4LjhjNi42IDEuNyAxMyAzLjQgMTkuNCA1bC0xMS4zIDQ1LjIgMjcuMiA2LjggMTEuMi00NC43YzcuMiAyIDE0LjQgMy44IDIxLjcgNS42bC0xMS4xIDQ0LjUgMjcuMiA2LjggMTEuMy00NS4xYzQ2LjQgOC44IDgxLjMgNS4yIDk2LTM2LjcgMTEuOC0zMy44LS42LTUzLjMtMjUtNjYgMTcuOC00LjEgMzEuMi0xNS44IDM0LjctMzkuOXptLTYyLjIgODcuMmMtOC40IDMzLjgtNjUuMyAxNS41LTgzLjggMTAuOWwxNC45LTU5LjljMTguNCA0LjYgNzcuNiAxMy43IDY4LjggNDl6bTguNC04Ny43Yy03LjcgMzAuNy01NSAxNS4xLTcwLjQgMTEuM2wxMy41LTU0LjNjMTUuNCAzLjggNjQuOCAxMSA1Ni44IDQzeiJdfSxldWU9e3ByZWZpeDoiZmFiIixpY29uTmFtZToic3dpZnQiLGljb246WzQ0OCw1MTIsW10sImY4ZTEiLCJNNDQ4IDE1Ni4xYzAtNC41LS4xLTktLjItMTMuNS0uMS05LjktMS0xOS43LTIuNi0yOS40LTEuNy05LjctNC44LTE5LjItOS4yLTI4LTktMTcuNy0yMy40LTMyLjEtNDEuMi00MS4xLTguOC00LjUtMTguMy03LjYtMjgtOS4yLTkuNy0xLjYtMTkuNi0yLjUtMjkuNC0yLjYtNC41LS4xLTktLjItMTMuNS0uMkwxMjQuMSAzMmMtNC41IDAtOSAuMS0xMy41IC4yLTIuNCAuMS00LjkgLjItNy40IC4zLTcuNCAuMy0xNC44IDEuMS0yMi4xIDIuMy03LjMgMS4zLTE0LjQgMy4zLTIxLjIgNi4xLTIuMyAxLTQuNiAyLTYuOCAzLjEtNi42IDMuNC0xMi44IDcuNS0xOC40IDEyLjMtMS45IDEuNi0zLjcgMy4zLTUuNCA1LTcgNy0xMi45IDE1LTE3LjQgMjMuOC00LjQgOC44LTcuNiAxOC4zLTkuMiAyOC0xLjYgOS43LTIuNCAxOS42LTIuNSAyOS40LS4xIDQuNS0uMiA5LS4yIDEzLjVMMCAzNTUuOWMwIDQuNSAuMSA5IC4yIDEzLjUgLjEgOS45IDEgMTkuNyAyLjYgMjkuNCAxLjcgOS43IDQuOCAxOS4yIDkuMiAyOCA5IDE3LjcgMjMuNCAzMi4xIDQxLjEgNDEuMSA4LjggNC40IDE4LjMgNy41IDI4IDkuMiA5LjcgMS42IDE5LjYgMi41IDI5LjQgMi42IDQuNSAuMSA5IC4yIDEzLjUgLjJsMTk5LjggMGM0LjUgMCA5LS4xIDEzLjUtLjIgOS45LS4xIDE5LjctMSAyOS40LTIuNiA5LjctMS43IDE5LjItNC44IDI4LTkuMiAxNy43LTkgMzIuMS0yMy40IDQxLjEtNDEuMiA0LjQtOC44IDcuNi0xOC4zIDkuMi0yOCAxLjYtOS43IDIuNS0xOS42IDIuNi0yOS40IC4xLTQuNSAuMi05IC4yLTEzLjVsMC0xODMuOGMwLTUuNCAwLTEwLjcgMC0xNnptLTY5LjkgMjQxYy0yMC0zOC45LTU3LjItMjkuMy03Ni4zLTE5LjUtMS43IDEtMy41IDItNS4yIDNsLS40IC4yYy0zOS41IDIxLTkyLjUgMjIuNS0xNDUuOC0uNC00My40LTE4LjgtODAuMS01MC4zLTEwNS4zLTkwLjQgMTIuMyA5LjEgMjUuNCAxNi45IDM5LjIgMjMuNCA1Ni40IDI2LjQgMTEzIDI0LjUgMTUzIDAtNTctNDMuOC0xMDQuNi0xMDEtMTQxLjEtMTQ3LjItNy04LjEtMTMuMi0xNi44LTE4LjgtMjUuOSA0My43IDQwIDExMi43IDkwLjIgMTM3LjUgMTA0LjEtNTIuNi01NS41LTk4LjktMTIzLjktOTYuNy0xMjEuNyA4Mi44IDgzLjQgMTU5LjIgMTMwLjYgMTU5LjIgMTMwLjYgMi45IDEuNiA1IDIuOCA2LjcgNCAxLjYtNC4xIDMtOC4yIDQuMi0xMi41IDEzLjItNDguMy0xLjctMTAzLjYtMzUuMy0xNDkuMiA3Ni44IDQ2LjEgMTIyLjIgMTMzLjcgMTAzLjYgMjA3LjgtLjQgMS43LTEgMy40LTEuNCA1LjEgMzguNSA0Ny40IDI4IDk4LjIgMjMuMSA4OC42bDAgMHoiXX0sdHVlPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImZpbGVzLXBpbndoZWVsIixpY29uOls1MTIsNTEyLFtdLCJlNjlmIiwiTTI1My41IDI0Ni40TDEzNy4yIDEzMC4yYy0uNi0uNi0xLTEuMy0xLjQtMnMtLjUtMS42LS41LTIuNCAuMi0xLjYgLjUtMi40IC44LTEuNCAxLjQtMkwyNTMuNiA1LjFjLjktLjkgMi0xLjUgMy4yLTEuN3MyLjUtLjEgMy42IC4zIDIuMSAxLjMgMi44IDIuMyAxLjEgMi4yIDEuMSAzLjVsMCAyMzIuNWMwIDEuMy0uMyAyLjUtMSAzLjZzLTEuNyAxLjktMi45IDIuNC0yLjUgLjYtMy43IC4zLTIuNC0uOS0zLjItMS45em00MC4zLTQuNGwwLTEzNC40YzAtLjggLjEtMS42IC41LTIuNHMuOC0xLjUgMS4zLTIuMSAxLjMtMS4xIDItMS40IDEuNi0uNSAyLjQtLjVsMTM0LjQgMGMxLjIgMCAyLjUgLjQgMy41IDEuMXMxLjggMS43IDIuMyAyLjggLjYgMi40IC4zIDMuNi0uOSAyLjMtMS43IDMuMkwzMDQuMyAyNDYuNGMtLjkgLjgtMiAxLjQtMy4yIDEuNnMtMi40IC4xLTMuNS0uNC0yLjEtMS4zLTIuOC0yLjMtMS4xLTIuMi0xLjEtMy40bC4xIC4xem0zMC42IDM1Yy0xLjIgMC0yLjUtLjMtMy41LTFzLTEuOS0xLjYtMi40LTIuOC0uNi0yLjQtLjQtMy42IC44LTIuMyAxLjctMy4yTDQwNCAxODIuMmMuNi0uNiAxLjMtMSAyLTEuNHMxLjYtLjUgMi40LS41IDEuNiAuMiAyLjQgLjUgMS40IC44IDIgMS40bDg0LjQgODQuMmMuOSAuOSAxLjUgMiAxLjcgMy4ycy4xIDIuNS0uMyAzLjYtMS4zIDIuMS0yLjMgMi44LTIuMiAxLjEtMy41IDEuMWwtMTY4LjUgMCAuMS0uMXptOTAuNyAxMzFsLTk1LjMtOTUuMmMtLjktLjktMS41LTItMS43LTMuMnMtLjEtMi41IC40LTMuNyAxLjMtMi4xIDIuNC0yLjggMi4zLTEgMy41LTFsOTUuMiAwYzEuNyAwIDMuMiAuNyA0LjQgMS44czEuOCAyLjggMS44IDQuNGwwIDk1LjNjMCAxLjItLjQgMi41LTEuMSAzLjVzLTEuNyAxLjgtMi44IDIuMy0yLjQgLjYtMy42IC4zLTIuMy0uOS0zLjItMS43ek0xNi44IDMwMi4xbDIxNi45IDBjMS4yIDAgMi41IC40IDMuNSAxLjFzMS44IDEuNyAyLjMgMi44IC42IDIuNCAuMyAzLjYtLjggMi4zLTEuNyAzLjJMMTI5LjcgNDIxLjJjLS42IC42LTEuMyAxLTIgMS40cy0xLjYgLjUtMi40IC41LTEuNi0uMi0yLjQtLjUtMS40LS44LTItMS40TDEyLjMgMzEyLjhjLS45LS45LTEuNS0yLTEuNy0zLjJzLS4xLTIuNSAuNC0zLjYgMS4zLTIuMSAyLjMtMi44IDIuMy0xIDMuNS0xbDAtLjF6TTI2NC4zIDQ2NS4zYzAgLjgtLjIgMS42LS41IDIuNHMtLjggMS41LTEuNCAyLTEuMyAxLTIgMS40LTEuNiAuNS0yLjQgLjVsLTEyOCAwYy0xLjIgMC0yLjUtLjQtMy41LTEuMXMtMS44LTEuNy0yLjMtMi44LS42LTIuNC0uMy0zLjYgLjgtMi4zIDEuNy0zLjJsMTI4LTEyOGMuOS0uOSAyLTEuNSAzLjItMS43czIuNS0uMSAzLjYgLjMgMi4xIDEuMyAyLjggMi4zIDEuMSAyLjIgMS4xIDMuNWwwIDEyOHptNDAtMTMyLjVsODIuOCA4Mi43Yy42IC42IDEgMS4zIDEuNCAycy41IDEuNiAuNSAyLjQtLjIgMS42LS41IDIuNC0uOCAxLjQtMS40IDJMMzA0LjMgNTA3Yy0uOSAuOS0yIDEuNS0zLjIgMS43cy0yLjUgLjEtMy42LS4zLTIuMS0xLjMtMi44LTIuMy0xLjEtMi4yLTEuMS0zLjVsMC0xNjUuNGMwLTEuMiAuNC0yLjUgMS4xLTMuNXMxLjctMS44IDIuOC0yLjMgMi40LS42IDMuNi0uMyAyLjMgLjggMy4yIDEuN3pNNzkgMTIyLjRjMC0xLjIgLjMtMi41IDEtMy41czEuNy0xLjggMi44LTIuMyAyLjQtLjYgMy42LS40IDIuMyAuOCAzLjIgMS43TDIzOC4xIDI2Ni40Yy45IC45IDEuNSAyIDEuNyAzLjJzLjEgMi41LS4zIDMuNi0xLjMgMi4xLTIuMyAyLjgtMi4yIDEuMS0zLjUgMS4xbC0xNDguNCAwYy0xLjcgMC0zLjItLjctNC40LTEuOHMtMS44LTIuOC0xLjgtNC40bDAtMTQ4LjQtLjEtLjF6Il19LGF1ZT17cHJlZml4OiJmYWIiLGljb25OYW1lOiJsYXJhdmVsIixpY29uOls1MTIsNTEyLFtdLCJmM2JkIiwiTTUwNC42IDExNS44Yy0uMS0uMi0uMi0uNS0uMy0uNy0uMS0uNC0uMy0uOC0uNS0xLjItLjItLjItLjMtLjUtLjUtLjctLjItLjMtLjUtLjYtLjctLjktLjItLjItLjUtLjQtLjgtLjYtLjMtLjItLjYtLjUtLjktLjdMNDA0LjYgNTUuNWMtMS4yLS43LTIuNi0xLjEtNC0xLjFzLTIuOCAuNC00IDEuMUwzMDAuMyAxMTFjLS4zIC4yLS42IC40LS45IC43LS4zIC4yLS41IC40LS44IC42LS4zIC4zLS41IC42LS43IC45LS4yIC4yLS40IC40LS41IC43LS4yIC40LS40IC44LS41IDEuMi0uMSAuMi0uMiAuNC0uMyAuNy0uMiAuNy0uMyAxLjQtLjMgMi4xbDAgMTA1LjItODAuMiA0Ni4yIDAtMjA1LjljMC0uNy0uMS0xLjQtLjMtMi4xLS4xLS4yLS4yLS40LS4zLS43LS4xLS40LS4zLS44LS41LTEuMi0uMS0uMy0uNC0uNS0uNS0uNy0uMi0uMy0uNS0uNi0uNy0uOS0uMi0uMi0uNS0uNC0uOC0uNi0uMy0uMi0uNi0uNS0uOS0uN0wxMTUuOCAxLjFjLTEuMi0uNy0yLjYtMS4xLTQtMS4xcy0yLjggLjQtNCAxLjFMMTEuNSA1Ni41Yy0uMyAuMi0uNiAuNC0uOSAuNy0uMyAuMi0uNSAuNC0uOCAuNi0uMyAuMy0uNSAuNi0uNyAuOS0uMiAuMy0uNCAuNS0uNiAuNy0uMiAuNC0uNCAuOC0uNSAxLjItLjEgLjItLjIgLjQtLjMgLjctLjIgLjctLjMgMS40LS4zIDIuMWwwIDMyOS43YzAgMS40IC40IDIuOCAxLjEgNHMxLjcgMi4yIDIuOSAyLjlMMjA0IDUxMC45Yy40IC4yIC45IC40IDEuMyAuNSAuMiAuMSAuNCAuMiAuNiAuMyAxLjMgLjQgMi44IC40IDQuMSAwIC4yLS4xIC40LS4yIC42LS4yIC41LS4yIDEtLjMgMS40LS42TDQwNC42IDQwMC4xYzEuMi0uNyAyLjItMS43IDIuOS0yLjlzMS4xLTIuNiAxLjEtNGwwLTEwNS4zIDkyLjItNTMuMWMxLjItLjcgMi4yLTEuNyAyLjktM3MxLjEtMi42IDEuMS00bDAtMTA5LjhjMC0uNy0uMS0xLjQtLjItMi4xek0xMTEuOCAxNy4zbDgwLjIgNDYuMS04MC4yIDQ2LjItODAuMi00Ni4yIDgwLjItNDYuMnptODguMiA2MGwwIDIwMS4zYy0zMy4yIDE5LjEtNTkuOSAzNC41LTgwLjIgNDYuMmwwLTIwMS4zQzE1MyAxMDQuNCAxNzkuNyA4OSAyMDAgNzcuM3ptMCA0MTIuOEwyMy41IDM4OC41IDIzLjUgNzcuM2MyMC4zIDExLjcgNDcuMSAyNy4xIDgwLjIgNDYuMmwwIDIxNS4yYzAgLjMgLjEgLjYgLjEgLjkgMCAuNCAuMSAuOCAuMiAxLjIgLjEgLjMgLjIgLjYgLjQgLjkgLjEgLjMgLjMgLjcgLjQgMSAuMiAuMyAuNCAuNSAuNiAuOCAuMiAuMyAuNCAuNiAuNyAuOCAuMiAuMiAuNSAuNCAuOCAuNiAuMyAuMiAuNiAuNSAuOSAuN2w5Mi4yIDUyLjIgLjEgOTIuNHptOC0xMDYuMkwxMjggMzM4LjZjNTQuNy0zMS41IDExMy41LTY1LjMgMTc2LjMtMTAxLjVsODAuMSA0Ni4xQzM1NSAzMDAgMjk2LjIgMzMzLjUgMjA4IDM4My45em0xODQuNSA0LjZsLTE3Ni41IDEwMS42IDAtOTIuM0MzMTcuNCAzNDAgMzc2LjIgMzA2LjQgMzkyLjUgMjk3bDAgOTEuNHptMC0xMTkuMWMtMjAuMy0xMS42LTQ3LjEtMjctODAuMi00Ni4xbDAtOTEuNGMyMC4zIDExLjcgNDcuMSAyNy4xIDgwLjIgNDYuMmwwIDkxLjN6bTgtMTA1LjNsLTgwLjItNDYuMiA4MC4yLTQ2LjIgODAuMiA0Ni4xLTgwLjIgNDYuMnptOCAxMDUuM2wwLTkxLjNjMzMuMi0xOS4xIDYwLTM0LjUgODAuMy00Ni4ybDAgOTEuNC04MC4zIDQ2LjJ6Il19LGl1ZT17cHJlZml4OiJmYWIiLGljb25OYW1lOiJ3cGZvcm1zIixpY29uOls0NDgsNTEyLFtdLCJmMjk4IiwiTTQ0OCA3NS4ybDAgMzYxLjdjMCAyNC4zLTE5IDQzLjItNDMuMiA0My4ybC0zNjEuNiAwQzE5LjMgNDgwIDAgNDYxLjQgMCA0MzYuOEwwIDc1LjJDMCA1MS4xIDE4LjggMzIgNDMuMiAzMmwzNjEuNyAwYzI0IDAgNDMuMSAxOC44IDQzLjEgNDMuMnpNNDEwLjcgNDM2LjhsMC0zNjEuNmMwLTMtMi42LTUuOC01LjgtNS44bC05LjMgMC0xMTAuMyA3NC42LTYxLjMtNDkuOS02MS4yIDQ5LjktMTEwLjMtNzQuNy05LjMgMGMtMy4yIDAtNS44IDIuOC01LjggNS44bDAgMzYxLjdjMCAzIDIuNiA1LjggNS44IDUuOGwzNjEuNyAwYzMuMiAuMSA1LjgtMi43IDUuOC01Ljh6TTE1MC4yIDE4NmwwIDM3LTczLjUgMCAwLTM3IDczLjUgMHptMCA3NC40bDAgMzcuMy03My41IDAgMC0zNy4zIDczLjUgMHptMTEuMS0xNDcuM2w1NC00My43LTExOC41IDAgNjQuNSA0My43em0yMTAgNzIuOWwwIDM3LTE5NiAwIDAtMzcgMTk2IDB6bTAgNzQuNGwwIDM3LjMtMTk2IDAgMC0zNy4zIDE5NiAwek0yODYuNyAxMTMuMWw2NC41LTQzLjctMTE4LjQgMCA1My45IDQzLjd6TTM3MS4zIDMzNWwwIDM3LjMtOTkuNCAwIDAtMzcuMyA5OS40IDB6Il19LHJ1ZT17cHJlZml4OiJmYWIiLGljb25OYW1lOiJzcGVha2VyLWRlY2siLGljb246WzUxMiw1MTIsW10sImY4M2MiLCJNMjEzLjkgMjk2TDEwMCAyOTZjLTI2LjUgMC01Mi0xMC41LTcwLjctMjkuM1MwIDIyMi41IDAgMTk2IDEwLjUgMTQ0IDI5LjMgMTI1LjMgNzMuNSA5NiAxMDAgOTZsMTMyLjggMGMxMC42IDAgMjAuOCA0LjIgMjguMyAxMS43czExLjcgMTcuNyAxMS43IDI4LjMtNC4yIDIwLjgtMTEuNyAyOC4zLTE3LjcgMTEuNy0yOC4zIDExLjdMOTggMTc2Yy0yNi41IDAtMjYuNCA0MCAwIDQwbDExMy44IDBjMjYuNSAwIDUyIDEwLjUgNzAuNyAyOS4zczI5LjMgNDQuMiAyOS4zIDcwLjctMTAuNSA1Mi0yOS4zIDcwLjctNDQuMiAyOS4zLTcwLjcgMjkuM0w0MCA0MTZjLTEwLjYgMC0yMC44LTQuMi0yOC4zLTExLjdTMCAzODYuNiAwIDM3NiA0LjIgMzU1LjIgMTEuNyAzNDcuNyAyOS40IDMzNiA0MCAzMzZsMTczLjkgMGMyNi41IDAgMjYuNS00MCAwLTQwek0yOTggNDE2YzEzLjUtOS4yIDI1LTIxIDMzLjgtMzQuN3MxNC43LTI5LjIgMTcuMy00NS4zbDY0LjYgMGMyLjYgMCA1LjItLjYgNy42LTEuNnM0LjYtMi41IDYuNC00LjQgMy4zLTQuMSA0LjItNi41IDEuNS01IDEuNC03LjZsMC0xMjBjMC0yLjYtLjUtNS4yLTEuNC03LjZzLTIuNC00LjYtNC4yLTYuNS00LTMuMy02LjQtNC40LTUtMS42LTcuNi0xLjZsLTExNy4yIDBjOS43LTExLjEgMTUtMjUuMyAxNS00MHMtNS4zLTI4LjktMTUtNDBsMTM2LjkgMGM0My40IDAgNzguNiAzNS44IDc4LjYgODBsMCAxNjBjMCA0NC4yLTM1LjIgODAtNzguNiA4MEwyOTggNDE2eiJdfSxzdWU9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiZmxpY2tyIixpY29uOls0NDgsNTEyLFtdLCJmMTZlIiwiTTQwMCAzMkw0OCAzMkMyMS41IDMyIDAgNTMuNSAwIDgwTDAgNDMyYzAgMjYuNSAyMS41IDQ4IDQ4IDQ4bDM1MiAwYzI2LjUgMCA0OC0yMS41IDQ4LTQ4bDAtMzUyYzAtMjYuNS0yMS41LTQ4LTQ4LTQ4ek0xNDQuNSAxOTJhNjMuNSA2My41IDAgMSAxIDAgMTI3IDYzLjUgNjMuNSAwIDEgMSAwLTEyN3ptMTU5IDBhNjMuNSA2My41IDAgMSAxIDAgMTI3IDYzLjUgNjMuNSAwIDEgMSAwLTEyN3oiXX0sbnVlPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImNjLXZpc2EiLGljb246WzU3Niw1MTIsW10sImYxZjAiLCJNNDcwLjEgMjMxLjNzNy42IDM3LjIgOS4zIDQ1bC0zMy40IDBjMy4zLTguOSAxNi00My41IDE2LTQzLjUtLjIgLjMgMy4zLTkuMSA1LjMtMTQuOWwyLjggMTMuNHpNNTc2IDgwbDAgMzUyYzAgMjYuNS0yMS41IDQ4LTQ4IDQ4TDQ4IDQ4MGMtMjYuNSAwLTQ4LTIxLjUtNDgtNDhMMCA4MEMwIDUzLjUgMjEuNSAzMiA0OCAzMmw0ODAgMGMyNi41IDAgNDggMjEuNSA0OCA0OHpNMTUyLjUgMzMxLjJsNjMuMi0xNTUuMi00Mi41IDAtMzkuMyAxMDYtNC4zLTIxLjUtMTQtNzEuNGMtMi4zLTkuOS05LjQtMTIuNy0xOC4yLTEzLjFsLTY0LjcgMC0uNyAzLjFjMTUuOCA0IDI5LjkgOS44IDQyLjIgMTcuMWwzNS44IDEzNSA0Mi41IDB6bTk0LjQgLjJsMjUuMi0xNTUuNC00MC4yIDAtMjUuMSAxNTUuNCA0MC4xIDB6bTEzOS45LTUwLjhjLjItMTcuNy0xMC42LTMxLjItMzMuNy00Mi4zLTE0LjEtNy4xLTIyLjctMTEuOS0yMi43LTE5LjIgLjItNi42IDcuMy0xMy40IDIzLjEtMTMuNCAxMy4xLS4zIDIyLjcgMi44IDI5LjkgNS45bDMuNiAxLjcgNS41LTMzLjZjLTcuOS0zLjEtMjAuNS02LjYtMzYtNi42LTM5LjcgMC02Ny42IDIxLjItNjcuOCA1MS40LS4zIDIyLjMgMjAgMzQuNyAzNS4yIDQyLjIgMTUuNSA3LjYgMjAuOCAxMi42IDIwLjggMTkuMy0uMiAxMC40LTEyLjYgMTUuMi0yNC4xIDE1LjItMTYgMC0yNC42LTIuNS0zNy43LTguM2wtNS4zLTIuNS01LjYgMzQuOWM5LjQgNC4zIDI2LjggOC4xIDQ0LjggOC4zIDQyLjIgLjEgNjkuNy0yMC44IDcwLTUzek01MjggMzMxLjRsLTMyLjQtMTU1LjQtMzEuMSAwYy05LjYgMC0xNi45IDIuOC0yMSAxMi45bC01OS43IDE0Mi41IDQyLjIgMHM2LjktMTkuMiA4LjQtMjMuM2w1MS42IDBjMS4yIDUuNSA0LjggMjMuMyA0LjggMjMuM2wzNy4yIDB6Il19LG91ZT17cHJlZml4OiJmYWIiLGljb25OYW1lOiJ1cHdvcmsiLGljb246WzY0MCw1MTIsW10sImU2NDEiLCJNNDkzLjkgMjk1LjZjLTUwLjMgMC04My41LTM4LjktOTIuOC01My45IDExLjktOTUuMyA0Ni44LTEyNS40IDkyLjgtMTI1LjQgNDUuNSAwIDgwLjkgMzYuNCA4MC45IDg5LjdzLTM1LjQgODkuNy04MC45IDg5LjdsMC0uMXptMC0yMzcuOGMtODEuOSAwLTEyNy44IDUzLjQtMTQxIDEwOC40LTE0LjktMjgtMjUuOS02NS41LTM0LjUtMTAwLjNsLTExMy4yIDAgMCAxNDFjMCA1MS4xLTIzLjMgODktNjguOCA4OXMtNzEuNi0zNy44LTcxLjYtODlsLjUtMTQxLTY1LjMgMCAwIDE0MWMwIDQxLjEgMTMuMyA3OC40IDM3LjYgMTA1LjEgMjUgMjcuNSA1OS4yIDQxLjggOTguOCA0MS44IDc4LjggMCAxMzMuOC02MC40IDEzMy44LTE0Ni45bDAtOTQuOGM4LjIgMzEuMiAyNy44IDkxLjEgNjUuMyAxNDMuNmwtMzUgMTk5LjQgNjYuNCAwIDIzLjEtMTQxLjNjNy42IDYuMyAxNS43IDEyIDI0LjIgMTcgMjIuMiAxNCA0Ny43IDIxLjkgNzMuOSAyMi44IDAgMCA0IC4yIDYuMSAuMiA4MS4yIDAgMTQ1LjktNjIuOSAxNDUuOS0xNDcuOFM1NzUuMyA1Ny45IDQ5NC4xIDU3LjlsLS4yLS4xeiJdfSxsdWU9e3ByZWZpeDoiZmFiIixpY29uTmFtZToia2FrYW8tdGFsayIsaWNvbjpbNTc2LDUxMixbXSwiZTdkNyIsIk0yODggMi41YzE1OS4xIDAgMjg4IDEwMS43IDI4OCAyMjcuMSAwIDEyNS40LTEyOC45IDIyNy4xLTI4OCAyMjcuMS0xNy41IDAtMzQuNi0xLjItNTEuMi0zLjYtMTYuNiAxMS43LTExMi42IDc5LjEtMTIxLjcgODAuNCAwIDAtMy43IDEuNC02LjktLjRzLTIuNi02LjctMi42LTYuN0MxMDYuNiA1MTkuOCAxMzAuNiA0MzcuMiAxMzUgNDIxLjkgNTMuOSAzODEuOCAwIDMxMC42IDAgMjI5LjUgMCAxMDQuMSAxMjguOSAyLjUgMjg4IDIuNXpNODYuMiAxNjEuN2MtOSAwLTE2LjMgNy4zLTE2LjMgMTYuM3M3LjMgMTYuMyAxNi4zIDE2LjNsMjUuOSAwIDAgOTguN2MwIDguOCA3LjUgMTUuOSAxNi42IDE1LjlzMTYuNi03LjEgMTYuNi0xNS45bDAtOTguNyAyNS45IDBjOSAwIDE2LjMtNy4zIDE2LjMtMTYuM3MtNy4zLTE2LjMtMTYuMy0xNi4zbC04NS4xIDB6bTE0MC44IDBjLTEwLjggLjItMTkuMyA4LjQtMjIuMSAxNi40TDE2NS4yIDI4Mi43Yy01IDE1LjctLjYgMjEuNSAzLjkgMjMuNiAzLjIgMS41IDYuOSAyLjMgMTAuNiAyLjMgNi45IDAgMTIuMi0yLjggMTMuOC03LjNsOC4yLTIxLjYgNTAuNyAwIDguMiAyMS41YzEuNiA0LjUgNi45IDcuMyAxMy44IDcuMyAzLjcgMCA3LjMtLjggMTAuNi0yLjMgNC42LTIuMSA5LTcuOSAzLjktMjMuNkwyNDkuMiAxNzguMWMtMi44LTgtMTEuMy0xNi4yLTIyLjItMTYuNHptMTgwLjkgMGMtOS4yIDAtMTYuNiA3LjUtMTYuNiAxNi42bDAgMTEzLjdjMCA5LjIgNy41IDE2LjYgMTYuNiAxNi42czE2LjYtNy41IDE2LjYtMTYuNmwwLTM2LjIgNS44LTUuOCAzOC45IDUxLjZjMy4yIDQuMiA4IDYuNiAxMy4zIDYuNiAzLjYgMCA3LjEtMS4xIDEwLTMuMyAzLjUtMi43IDUuOC02LjYgNi40LTExcy0uNS04LjgtMy4yLTEyLjNsLTQwLjktNTQuMiAzNy45LTM3LjhjMi42LTIuNiAzLjktNi4yIDMuNy0xMC4xLS4yLTMuOS0yLTcuNi00LjktMTAuNS0zLjEtMy4xLTcuMy00LjktMTEuNC00LjktMy42IDAtNi44IDEuMy05LjIgMy43bC00Ni4zIDQ2LjQgMC0zNS43YzAtOS4yLTcuNS0xNi42LTE2LjYtMTYuNnptLTkxLjMgMGMtOS4zIDAtMTYuOSA3LjUtMTYuOSAxNi42bDAgMTEyLjhjMCA4LjQgNy4xIDE1LjIgMTUuOSAxNS4zbDUzLjMgMGM4LjggMCAxNS45LTYuOSAxNS45LTE1LjNzLTcuMi0xNS4yLTE1LjktMTUuMmwtMzUuMyAwIDAtOTcuNmMwLTkuMi03LjYtMTYuNi0xNy0xNi42em0tNzMgODguNmwtMzMuMiAwIDE2LjYtNDcuMSAxNi42IDQ3LjF6Il19LGN1ZT17cHJlZml4OiJmYWIiLGljb25OYW1lOiJmbHV0dGVyIixpY29uOls0NDgsNTEyLFtdLCJlNjk0IiwiTTQyOS41IDIzNi4zTDI5MS43IDM3NC4xIDQyOS41IDUxMiAyNzIgNTEyYy0zNi4xLTM2LjEtODIuMS04Mi4xLTEzNy45LTEzNy45bDEzNy45LTEzNy44IDE1Ny41IDB6TTI3MiAwTDE2IDI1NiA5NC44IDMzNC44IDQyOS41IDAgMjcyIDB6Il19LGR1ZT17cHJlZml4OiJmYWIiLGljb25OYW1lOiJidWZmZXIiLGljb246WzQ0OCw1MTIsW10sImY4MzciLCJNNDI4LjIgMzgwLjdMMjMxLjcgNDc4LjVjLTIuMyAxLTQuOCAxLjUtNy4zIDEuNXMtNS0uNS03LjMtMS41TDIwLjUgMzgwLjdjLTQtMi00LTUuMyAwLTcuM0w2Ny42IDM1MGMyLjMtMSA0LjgtMS41IDcuMy0xLjVzNSAuNSA3LjMgMS41bDEzNC44IDY3YzIuMyAxIDQuOCAxLjUgNy4zIDEuNXM1LS41IDcuMy0xLjVsMTM0LjgtNjdjMi4zLTEgNC44LTEuNSA3LjMtMS41czUgLjUgNy4zIDEuNWw0Ny4xIDIzLjRjNCAyIDQgNS4yIDAgNy4yem0wLTEzNi41bC00Ny4xLTIzLjRjLTIuMy0xLTQuOC0xLjUtNy4zLTEuNXMtNSAuNS03LjMgMS41TDIzMS43IDI4Ny44Yy0yLjMgMS00LjggMS41LTcuMyAxLjVzLTUtLjUtNy4zLTEuNUw4Mi4zIDIyMC43Yy0yLjMtMS00LjgtMS41LTcuMy0xLjVzLTUgLjUtNy4zIDEuNUwyMC41IDI0NC4xYy00IDItNCA1LjMgMCA3LjNsMTk2LjUgOTcuOGMyLjMgMSA0LjggMS41IDcuMyAxLjVzNS0uNSA3LjMtMS41bDE5Ni41LTk3LjhjNC0yIDQtNS4zIDAtNy4zek0yMC41IDEzMC40TDIxNyAyMjAuN2M0LjcgMS45IDEwIDEuOSAxNC43IDBsMTk2LjUtOTAuM2M0LTEuOSA0LTQuOSAwLTYuN0wyMzEuNyAzMy40Yy00LjctMS45LTEwLTEuOS0xNC43IDBMMjAuNSAxMjMuN2MtNCAxLjgtNCA0LjkgMCA2Ljd6Il19LGh1ZT17cHJlZml4OiJmYWIiLGljb25OYW1lOiJncmF0aXBheSIsaWNvbjpbNTEyLDUxMixbXSwiZjE4NCIsIk0yNTYgMGEyNTYgMjU2IDAgMSAwIDAgNTEyIDI1NiAyNTYgMCAxIDAgMC01MTJ6TTM3NC4zIDIzMy43TDI1Ny43IDM5MS4zIDE0MS4zIDIzMy43Yy05LTEyLjMtMTkuNy01MiAxNC03NC4zIDI5LTE4LjcgNTYuNC00LjMgNzAuNyAxMi4zIDE2LjQgMTguNSA0OC4xIDE3LjQgNjMuNyAwIDE0LjMtMTYuNiA0MS43LTMxIDcwLjMtMTIuMyAzNCAyMi4zIDIzLjMgNjEuOSAxNC4yIDc0LjN6Il19LHB1ZT17cHJlZml4OiJmYWIiLGljb25OYW1lOiJnb29nbGUtcGF5IixpY29uOls2NDAsNTEyLFtdLCJlMDc5IiwiTTEwNS43IDIxNWwwIDQxLjIgNTcuMSAwYy0xLjIgNi42LTMuNiAxMi45LTcuMiAxOC41cy04LjQgMTAuNC0xMy45IDE0LjFjLTkuNSA2LjYtMjEuNyAxMC4zLTM2IDEwLjMtMjcuNiAwLTUwLjktMTguOS01OS4zLTQ0LjItNC40LTEzLjMtNC40LTI3LjcgMC00MSA4LjQtMjUuNSAzMS43LTQ0LjQgNTkuMy00NC40IDcuNS0uMSAxNC45IDEuMiAyMS45IDRzMTMuMyA2LjkgMTguNiAxMi4xTDE3Ni41IDE1NWMtMTkuMS0xOC4xLTQ0LjQtMjguMS03MC43LTI3LjgtMTkuNyAuMS0zOC45IDUuNy01NS42IDE2LjFzLTMwLjEgMjUuMy0zOC44IDQzQzMuOSAyMDEuMiAwIDIxNy43IDAgMjM0LjRzMy45IDMzLjIgMTEuMyA0OC4xbDAgLjJjOC43IDE3LjcgMjIuMSAzMi41IDM4LjggNDNzMzUuOSAxNiA1NS42IDE2YzI4LjUgMCA1Mi41LTkuNSA3MC0yNS45IDIwLTE4LjYgMzEuNC00Ni4yIDMxLjQtNzguOSAwLTcuMy0uNi0xNC42LTEuOC0yMS44bC05OS43IDB6bTM4OS40LTRjLTEwLjEtOS40LTIzLjktMTQuMS00MS40LTE0LjEtMjIuNSAwLTM5LjMgOC4zLTUwLjUgMjQuOUw0MjQuMSAyMzVjNy42LTExLjMgMTguMS0xNyAzMS4zLTE3IDguNCAwIDE2LjUgMy4yIDIyLjcgOC44IDMgMi42IDUuNSA1LjkgNy4xIDkuNnMyLjUgNy42IDIuNSAxMS43bDAgNS41Yy05LjEtNS4xLTIwLjYtNy44LTM0LjYtNy44LTE2LjQgMC0yOS42IDMuOS0zOS41IDExLjhzLTE0LjggMTguMy0xNC44IDMxLjZjLS4yIDUuOSAxIDExLjggMy40IDE3LjJzNiAxMC4yIDEwLjUgMTQuMWM5LjIgOC4zIDIxIDEyLjUgMzQuOCAxMi41IDE2LjMgMCAyOS4yLTcuMyAzOS0yMS45bDEgMCAwIDE3LjcgMjIuNiAwIDAtNzguN2MuMS0xNi42LTQuOS0yOS43LTE1LTM5em0tMTkuMiA4OS4zYy0zLjUgMy41LTcuNiA2LjMtMTIuMiA4LjJzLTkuNSAyLjktMTQuNCAyLjljLTYuNyAuMS0xMy4xLTIuMS0xOC4zLTYuMi0yLjQtMS44LTQuNC00LjItNS43LTYuOXMtMi01LjctMi04LjdjMC03IDMuMi0xMi44IDkuNS0xNy40czE0LjUtNyAyNC4xLTdjMTMuMi0uMiAyMy41IDIuOCAzMC44IDguOCAwIDEwLjEtNCAxOC45LTExLjcgMjYuNHptLTkzLjctMTQyYy01LjMtNS4zLTExLjYtOS41LTE4LjYtMTIuM3MtMTQuNC00LjItMjEuOS00bC02Mi43IDAgMCAxODYuNyAyMy42IDAgMC03NS42IDM5IDBjMTYgMCAyOS41LTUuNCA0MC41LTE1LjkgLjktLjkgMS44LTEuOCAyLjYtMi43IDkuNi0xMC41IDE0LjgtMjQuNCAxNC4zLTM4LjZzLTYuNi0yNy43LTE2LjktMzcuNmwwIDB6bS0xNi42IDYyLjJjLTMgMy4yLTYuNiA1LjctMTAuNiA3LjRzLTguNCAyLjUtMTIuNyAyLjNsLTM5LjYgMCAwLTY1LjIgMzkuNiAwYzguNSAwIDE2LjYgMy4zIDIyLjYgOS4yIDYuMSA2LjEgOS42IDE0LjMgOS44IDIzcy0zLjEgMTctOSAyMy4zbDAgMHpNNjE0LjMgMjAxbC0zNi41IDkxLjctLjUgMC0zNy40LTkxLjctMjUuNyAwIDUxLjggMTE5LjYtMjkuNCA2NC4zIDI0LjMgMCA3OS0xODMuOS0yNS43IDB6Il19LHV1ZT17cHJlZml4OiJmYWIiLGljb25OYW1lOiJhcHBsZSIsaWNvbjpbMzg0LDUxMixbXSwiZjE3OSIsIk0zMTkuMSAyNjguN2MtLjItMzYuNyAxNi40LTY0LjQgNTAtODQuOC0xOC44LTI2LjktNDcuMi00MS43LTg0LjctNDQuNi0zNS41LTIuOC03NC4zIDIwLjctODguNSAyMC43LTE1IDAtNDkuNC0xOS43LTc2LjQtMTkuNy01NS44IC45LTExNS4xIDQ0LjUtMTE1LjEgMTMzLjIgMCAyNi4yIDQuOCA1My4zIDE0LjQgODEuMiAxMi44IDM2LjcgNTkgMTI2LjcgMTA3LjIgMTI1LjIgMjUuMi0uNiA0My0xNy45IDc1LjgtMTcuOSAzMS44IDAgNDguMyAxNy45IDc2LjQgMTcuOSA0OC42LS43IDkwLjQtODIuNSAxMDIuNi0xMTkuMy02NS4yLTMwLjctNjEuNy05MC02MS43LTkxLjl6TTI2Mi41IDEwNC41YzI3LjMtMzIuNCAyNC44LTYxLjkgMjQtNzIuNS0yNC4xIDEuNC01MiAxNi40LTY3LjkgMzQuOS0xNy41IDE5LjgtMjcuOCA0NC4zLTI1LjYgNzEuOSAyNi4xIDIgNDkuOS0xMS40IDY5LjUtMzQuM3oiXX0sZnVlPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6InR1bWJsciIsaWNvbjpbMzIwLDUxMixbXSwiZjE3MyIsIk0zMDkuOSA0ODAuM2MtMTMuNiAxNC41LTUwIDMxLjctOTcuNCAzMS43LTEyMC44IDAtMTQ3LTg4LjgtMTQ3LTE0MC42bDAtMTQ0LTQ3LjUgMGMtNS41IDAtMTAtNC41LTEwLTEwbDAtNjhjMC03LjIgNC41LTEzLjYgMTEuMy0xNiA2Mi0yMS44IDgxLjUtNzYgODQuMy0xMTcuMSAuOC0xMSA2LjUtMTYuMyAxNi4xLTE2LjNsNzAuOSAwYzUuNSAwIDEwIDQuNSAxMCAxMGwwIDExNS4yIDgzIDBjNS41IDAgMTAgNC40IDEwIDkuOWwwIDgxLjdjMCA1LjUtNC41IDEwLTEwIDEwbC04My40IDAgMCAxMzMuMmMwIDM0LjIgMjMuNyA1My42IDY4IDM1LjggNC44LTEuOSA5LTMuMiAxMi43LTIuMiAzLjUgLjkgNS44IDMuNCA3LjQgNy45bDIyIDY0LjNjMS44IDUgMy4zIDEwLjYtLjQgMTQuNXoiXX0sbXVlPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6InBob2VuaXgtc3F1YWRyb24iLGljb246WzUxMiw1MTIsW10sImY1MTEiLCJNOTYgNjMuNGM0Ni41LTM2LjEgMTA1LjYtNTYuMSAxNjQuNS01NC42IDI5LjYtLjQgNTkuMSA1LjQgODYuOSAxNS4zLTI0LjEtNC42LTQ5LTYuMy03My40LTIuNS00Mi45IDUuMy04MyAyNy4yLTExMS44IDU5LjIgNS43LTEgMTAuOC0zLjcgMTYtNS45IDE4LjEtNy45IDM3LjUtMTMuMyA1Ny4yLTE0LjggMTkuNy0yLjEgMzkuNi0uNCA1OS4zIDEuOS0xNC40IDIuOC0yOS4xIDQuNi00MyA5LjYtMzQuNCAxMS4xLTY1LjMgMzMuMi04Ni4zIDYyLjYtMTMuOCAxOS43LTIzLjYgNDIuOS0yNC43IDY3LjEtLjQgMTYuNSA1LjIgMzQuOCAxOS44IDQ0IDExLjIgNi44IDI0LjYgOS4yIDM3LjUgNi43IDE1LjQtMi41IDMwLjEtOC42IDQzLjYtMTYuMyAxMS41LTYuOCAyMi43LTE0LjYgMzItMjQuMyAzLjgtMy4yIDIuNS04LjQgMi42LTEyLjgtMi4xLS4zLTQuNC0xLjEtNi4zIC4zLTExLjQgNi4zLTIzLjQgMTEuNC0zNS44IDE1LjQtMjAgNi4yLTQyLjIgOC41LTYyLjEgLjggMTIuOCAxLjcgMjYuMSAuMyAzNy43LTUuNCAyMC4yLTkuNyAzNi44LTI1LjIgNTQuNC0zOC44IDI3LjctMjEuMyA1Ny41LTM5LjkgODguOS01NS4zIDI1LjctMTIgNTIuOS0yMi44IDgxLjYtMjQuMS0xNS42IDEzLjctMzIuMSAyNi41LTQ2LjggNDEuNC0xNC41IDE0LTI3LjUgMjkuNS00MC4xIDQ1LjItMy41IDQuNi05IDYuOS0xMy42IDEwLjItMjIuNCAxNS00MC4zIDM1LjgtNTEuOSA2MC4xLTkuMyAxOS43LTE0LjUgNDEuOS0xMS44IDYzLjYgMS45IDEzLjcgOC43IDI3LjYgMjAuOSAzNC45IDEyLjkgOCAyOSA4LjEgNDMuNSA1LjEgMzIuOC03LjQgNjEuNC0yOC45IDgxLTU1LjggMjAuNC0yNy41IDMwLjUtNjIuMiAyOS4yLTk2LjMtLjUtNy41LTEuNi0xNS0xLjctMjIuNSA4IDE5LjUgMTQuOCAzOS43IDE2LjYgNjAuOCAyIDE0LjMgLjcgMjguOC0xLjYgNDIuOS0xLjkgMTEtNS43IDIxLjUtNy44IDMyLjQgMjAuNC0yMi45IDM0LTUwLjkgMzkuMy04MS4xIDUuNi0zNS41IC43LTcxLjktMTQuMi0xMDQuNiAyMC44IDMyIDMyLjMgNjkuNiAzNS43IDEwNy41IC41IDEyLjcgLjUgMjUuNSAwIDM4LjItMi44IDM0LjMtMTIuOSA2Ny42LTI5LjYgOTcuOC0yNi4xIDQ3LjMtNjggODUuNi0xMTcuMiAxMDgtNzguMyAzNi4yLTE3NC43IDMxLjMtMjQ4LTE0LjctMzktMjMuOC03MC42LTU4LTkxLjQtOTguNy0xNC43LTI4LjktMjMuMy02MC41LTI1LjQtOTIuOWwwLTMxLjNDMy45IDE3MiA0MC45IDEwNS44IDk2IDYzLjR6bTIyMiA4MC4zYzUuNS0uOSAxMC44LTIuNCAxNi00LjUgNS0xLjggOS4yLTUuOSAxMC4zLTExLjItOSA1LTE4IDkuOS0yNi4zIDE1Ljd6Il19LGd1ZT17cHJlZml4OiJmYWIiLGljb25OYW1lOiJjZW50ZXJjb2RlIixpY29uOls1MTIsNTEyLFtdLCJmMzgwIiwiTTIwMS44IDI1NC44YTY0LjEgNjQuMSAwIDEgMSAxMjcuNCAxMy44IDY0LjEgNjQuMSAwIDEgMSAtMTI3LjQtMTMuOHptNDEuNiAyNDguOUM5Ni43IDQ5Ni04LjIgMzY1LjUgMTAuMSAyMjQuMyAyMS4zIDEzNy43IDc1LjkgNjcuNCAxNDkuMiAzMi4zIDMxMC4yLTQ0LjggNDk4LjkgNjkuNyA1MDMuOSAyNDguOSA1MDggMzk1LjkgMzg1LjUgNTExLjEgMjQzLjQgNTAzLjd6bTE3OS45LTE4MGMyNy45LTExOC0xNjAuNS0yMDUuOS0yMzcuMi0yMzQuMi01Ny41IDU2LjMtNjkuMSAxODguNi0zMy44IDM0NC40IDY4LjggMTUuOCAxNjkuMS0yNi40IDI3MS0xMTAuMnoiXX0sYnVlPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImRlYmlhbiIsaWNvbjpbNDQ4LDUxMixbXSwiZTYwYiIsIk0zODAuNCAyNDUuNmMzLTcuNiA1LjUtMTQgNS4yLTI0LjRsLTQuMyA5YzQuNC0xMy4yIDQtMjcuMSAzLjYtNDAuNC0uMi02LS4zLTExLjggMC0xNy40bC0xLjgtLjVjLTEuNS00NS4yLTQwLjYtOTMuMS03NS4zLTEwOS40LTMwLTEzLjgtNzYuMS0xNi4yLTk3LjMtNS44IDEuMy0xLjEgNC4yLTIgNi44LTIuN2wuMy0uMWMzLjMtMSA2LTEuNyA0LTIuOS0xOS4yIDEuOS0yNC45IDUuNS0zMS4xIDkuNGwtLjEgMGMtNC42IDIuOS05LjUgNi0yMC4zIDguNy0zLjUgMy40IDEuNyAyIDUuOCAuOXM3LjItMS45LS4xIDIuNGMtMy41IDEtNi42IDEuMy05LjYgMS42bC0uMSAwYy04LjMgLjgtMTUuOCAxLjYtMzAuNyAxNyAuOCAxLjMgMy40LS4yIDUuMy0xLjNsLjEtLjFjMi4zLTEuNCAzLjQtMi0xLjcgNC40LTE5LjEtMi40LTYwLjMgNDMuNy02OS4xIDU5bDQuNiAuOGMtMy4yIDgtNi44IDE0LjgtMTAgMjAuOC00LjMgOC4xLTcuOSAxNC45LTguNyAyMS4zLS4zIDUuMS0xIDExLTEuNyAxNy4zLS4xIDEtLjIgMi0uMyAzbC0uMSAuNmMtMyAyNy4zLTYuNyA2MC44IDMuOSA3M2wtMS4zIDEzYy42IDEuMiAxLjEgMi4zIDEuNiAzLjUgLjIgLjQgLjQgLjggLjUgMS4xIDEgMi4xIDIgNC4yIDMuMyA2LjJsLTMgLjJjNyAyMi4xIDEwLjggMjIuNSAxNS4xIDIyLjkgNC40IC40IDkuMyAuOSAxOC43IDI0LjItMi43LS45LTUuNS0xLjktOS40LTcuMi0uNSA0LjEgNS44IDE2LjMgMTMuMSAyNS44bC0zLjEgMy42YzIuMSAzLjcgNC44IDYuMiA3LjYgOC44IDEgLjkgMi4xIDEuOSAzLjEgMi45LTExLjktNi41IDMuMiAxMy43IDExLjkgMjUuMiAuOCAxLjEgMS41IDIgMi4yIDIuOSAxLjQgMS45IDIuNSAzLjQgMi45IDQuMWwyLjQtNC4yYy0uMyA2LjEgNC4zIDEzLjkgMTMuMSAyNC43bDcuMy0uM2MzIDYgMTQgMTYuNyAyMC43IDE3LjJsLTQuNCA1LjhjOC4xIDIuNiAxMC4zIDQuMyAxMi43IDYuMiAyLjYgMi4xIDUuNCA0LjMgMTYuMSA4LjFsLTQuMi03LjRjMy41IDMgNi4yIDUuOSA4LjggOC43bC4xIC4xYzUuMiA1LjYgOS45IDEwLjYgMTkuNyAxNS4zIDEwLjcgMy43IDE2LjYgNC43IDIyLjcgNS44IC4zIDAgLjYgLjEgLjkgLjEgNS40IC44IDExLjIgMS44IDIwLjggNC41LTEuMS0uMS0yLjItLjEtMy4zLS4xLTIuMy0uMS00LjctLjEtNy0uMS0xNC40LS4yLTI5LjItLjQtNDIuNy01LjItOTYuNi0yNS43LTE4NC45LTEzOS0xNzguNC0yNTUuNi0uNi05LjktLjMtMjAuOSAwLTMwLjcgLjQtMTMuNSAuNy0yNC44LTEuNi0yOC4zbDEtMy4xYzUuMy0xNy40IDExLjctMzguMiAyMy44LTYyLjhsLS4xLS4yIDAtLjFjLjQgLjQgMy40IDMuNCA4LjgtNS44IC44LTEuOCAxLjYtMy43IDIuNC01LjYgLjUtMS4xIC45LTIuMiAxLjQtMy4yIDIuNS02LjEgNS4xLTEyLjMgOC40LTE3LjlsMi42LS42YzEuNy0xMC4xIDE3LTIzLjggMjkuOC0zNS4ybDEuMS0xYzUuNy01LjEgMTAuNy05LjcgMTMuNi0xMy4xbC43IDQuNGMxNy0xNS45IDQ0LjYtMjcuNSA2NS42LTM2LjRsLjUtLjJjNC44LTIgOS4zLTMuOSAxMy4zLTUuNy0zLjQgMy44IDIuMiAyLjcgMTAgMSA0LjgtMSAxMC40LTIuMSAxNS4zLTIuNGwtMy45IDIuMWMtMi43IDEuNC01LjQgMi44LTggNC42IDguMS0yIDExLjctMS40IDE1LjctLjhsLjMgMGMzLjUgLjYgNy4zIDEuMiAxNC42IC4yLTUuNiAuOC0xMi4zIDMtMTEuMiAzLjggNy45IC45IDEyLjgtLjEgMTcuMi0xbC4yIDBjNS41LTEuMSAxMC4zLTIgMTkuMyAuOWwtMS00LjhjNy4zIDIuNiAxMi43IDQuMyAxNy41IDUuOGwuNSAuMWMxMCAzIDE3LjYgNS4zIDM0LjIgMTQuMSAzLjIgLjIgNS4zLS41IDcuNC0xLjJsLjEgMGMzLjYtMS4xIDctMi4xIDE1LjIgMS4yIC4zIC41IC41IDEgLjcgMS40IC4xIC4yIC4yIC41IC4zIC43bDAgLjFjMSAyLjYgMS44IDQuNiAxNC42IDEyLjEgMS43LS43LTIuNy00LjctNi40LTguMmwtLjEtLjFjLS4yLS4xLS4zLS4zLS41LS40IDMyLjIgMTcuMyA2Ny4zIDU0LjEgNzggOTMuNS02LTExLjEtNS4yLTUuNS00LjMgLjUgLjYgNCAxLjIgOC4xLS4yIDcuNSA0LjUgMTIuMSA4LjEgMjQuNSAxMC40IDM3LjRsLS44LTIuOS0uMS0uM2MtMy4zLTExLjktOS42LTM0LjMtMTkuOS00OS4zLS40IDQuMy0yLjggMy45LTUuMiAzLjVsLS4xIDBjLTMuMy0uNi02LjItMS4xLTEuOSAxMi42IDIuNiAzLjggMy4xIDIuNCAzLjUgMS4xIC41LTEuNSAuOS0yLjcgNC43IDUuMiAuMSA0LjEgMSA4LjIgMi4xIDEyLjdsLjEgLjZjLjEgLjMgLjEgLjUgLjIgLjhsLjEgLjZjLjYgMi42IDEuMyA1LjQgMS44IDguNC0xLjEtLjItMi4zLTIuMi0zLjQtNC4yLTEuNC0yLjQtMi44LTQuNy0zLjctMy4yIDIuNCAxMS41IDYuNSAxNy40IDggMTguMy0uMyAuNi0uNiAuNy0xLjEgLjctLjggMC0xLjggLjEtMS45IDUuMyAuNyAxMy43IDMuMyAxMi41IDUuMyAxMS42IC42LS4zIDEuMi0uNiAxLjctLjQtLjYgMi41LTEuNiA1LjEtMi43IDcuOS0yLjggNy4xLTYgMTUuNC0zLjQgMjYuMS0uOC0zLTItNi0zLjEtOC45bC0uMS0uNGMtLjItLjUtLjQtMS0uNi0xLjUtLjMtLjgtLjYtMS42LS45LTIuMy0uNiA0LjQtLjMgNy43LS4xIDEwLjZsMCAuN2MuNCA1LjMgLjcgMTAtMyAxOS45IDQuMy0xNC4yIDMuOC0yNi45LS4yLTIwLjggMSAxMC45LTMuNyAyMC40LTggMjguOWwtLjEgLjJjLTMuNiA3LjEtNi44IDEzLjUtNS45IDE5LjNsLTUuMi03LjFjLTcuNSAxMC45LTcgMTMuMy02LjUgMTUuNWwwIC4xYy41IDEuOSAxIDMuOC0zLjQgMTAuOCAxLjctMi45IDEuMy0zLjYgMS00LjItLjQtLjgtLjctMS41IDEuNy01LjEtMS42IC4xLTUuNSAzLjktMTAuMSA4LjUtMy45IDMuOS04LjUgOC40LTEyLjggMTEuOC0zNy41IDMwLjEtODIuMyAzNC0xMjUuNiAxNy44IC4yLTEtLjItMi4xLTMuMS00LjEtMzYuOC0yOC4yLTU4LjUtNTIuMS01MC45LTEwNy41IDIuMS0xLjYgMy42LTUuOCA1LjMtMTAuOGwuMi0uNCAuMS0uMyAwLS4xYzIuOS04LjQgNi41LTE4LjggMTQuMy0yMy44IDcuOC0xNy4zIDMxLjMtMzMuMyA1Ni40LTMzLjcgMjUuNi0xLjQgNDcuMiAxMy43IDU4LjEgMjcuOS0xOS44LTE4LjQtNTIuMS0yNC03OS43LTEwLjQtMjguMiAxMi43LTQ1IDQzLjgtNDIuNSA3NC43IC4zLS40IC42LS42IC45LS44bC4yLS4yYy42LS41IDEuMS0uOSAxLjQtMy4zLS45IDYwLjIgNjQuOCAxMDQuMyAxMTIuMSA4MmwuNiAxLjNjMTIuNy0zLjUgMTUuOS02LjUgMjAuMy0xMC43bC4xLS4xYzIuMi0yLjEgNC43LTQuNSA4LjktNy4zLS4zIC43LTEuMyAxLjctMi40IDIuNy0yLjIgMi4xLTQuNiA0LjUtMS42IDQuNiA1LTEuMyAxOC41LTEzLjQgMjguNS0yMi4zIC42LS41IDEuMi0xIDEuNy0xLjUgMS41LTEuMyAyLjgtMi41IDQtMy42bC4zLS4zYzEuOS00LjIgMS42LTUuNiAxLjMtN2wwLS4xYy0uNC0xLjYtLjgtMy4zIDIuNC05LjZsNy4zLTMuN2MuOC0yLjEgMS41LTQuMSAyLjItNiAuMi0uNiAuNS0xLjIgLjctMS44bC0uNC0uMi0uMS0uMXpNMjQ4IDMzNC4xYy02LTMtMTMuNy04LjktMTQuOC0xMS40bC0uNCAuM2MtLjMgLjYtLjUgMS4zLS4yIDIuMi0xMi4yLTUuNy0yMy40LTE0LjMtMzIuNi0yNC45IDQuOSA3LjEgMTAuMSAxNC4xIDE3IDE5LjUtNi45LTIuMy0xNS4xLTExLjgtMjEuNi0xOS4zbC0uMS0uMWMtNC4zLTUtNy45LTkuMS05LjctOS41IDE5LjggMzUuNSA4MC41IDYyLjMgMTEyLjMgNDktMTQuNyAuNS0zMy40IC4zLTQ5LjktNS44em03OS4zLTExOS43bC0uMS0uMmMtLjUtMS41LTEuMS0zLjEtMS43LTMuNCAxLjQtNS44IDUuNC0xMC43IDQuNCA0LjYtMSAzLjgtMS44IDEuNS0yLjYtMXptLTQuMiAyMi4yYy0xLjMgNy45LTUgMTUuNS0xMC4xIDIyLjUgLjItMi0xLjItMi40LTIuNi0yLjgtMi45LS44LTUuOS0xLjYgNS42LTE2LjEtLjUgMS45LTIuMSA0LjYtMy43IDcuM2wtLjMgLjRjLTMuNiA1LjktNi43IDExIDQgNC4zbDEtMS44YzIuNi00LjUgNS04LjggNi0xMy44bC4xIDB6bS01NS42IDMzLjljNy4xIC42IDE0LjEgLjYgMjEtMS4xLTIuNSAyLjQtNS4yIDQuOC04LjMgNy4yLTExLjEtMS43LTIxLjItNi0xMi43LTYuMXptLTkyLjYgMTEuNmMzLjYgNy4xIDYuNCAxMS41IDkgMTUuN2wuMSAuMmMyLjMgMy43IDQuNCA3LjEgNi44IDExLjctNS4xLTQuMi04LjctOS41LTEyLjUtMTVsLS4zLS41Yy0xLjQtMi4xLTIuOC00LjItNC40LTYuMmwxLjItNS45IC4xIDB6bTcuNS05LjZjMS42IDMuMyAzLjIgNi40IDUuNyA5LjFsMi42IDcuNy0xLjMtMi4xYy0zLjItNS4zLTYuMy0xMC42LTgtMTYuN2wxIDJ6bTIzOC45LTQxLjZjLTIuMyAxNy40LTcuNyAzNC42LTE2IDUwLjMgNy42LTE0LjkgMTIuNS0zMC45IDE0LjgtNDcuMmwxLjItMy4xek0zNS44IDExMC42Yy40IC44IDEuNCAuNSAyLjMgLjMgMS45LS41IDMuNi0uOS0uMSA3LjYtLjUgLjMtMSAuNy0xLjUgMS0xLjQgLjktMi44IDEuOS0zLjkgMyAxLjktMy44IDMuNS03LjQgMy4yLTExLjl6TTI1LjUgMTUyLjNjLS43IDMuNy0xLjUgNy45LTMuNCAxMy45IC4yLTEuOSAwLTMuNS0uMi00LjlsMC0uMWMtLjQtMy40LS43LTYuMyA0LjMtMTIuOC0uMyAxLjItLjUgMi41LS43IDMuOGwwIC4xeiJdfSx2dWU9e3ByZWZpeDoiZmFiIixpY29uTmFtZToibWFzdG9kb24iLGljb246WzQ0OCw1MTIsW10sImY0ZjYiLCJNNDMzIDE3OS4xYzAtOTcuMi02My43LTEyNS43LTYzLjctMTI1LjctNjIuNS0yOC43LTIyOC42LTI4LjQtMjkwLjUgMCAwIDAtNjMuNyAyOC41LTYzLjcgMTI1LjcgMCAxMTUuNy02LjYgMjU5LjQgMTA1LjYgMjg5LjEgNDAuNSAxMC43IDc1LjMgMTMgMTAzLjMgMTEuNCA1MC44LTIuOCA3OS4zLTE4LjEgNzkuMy0xOC4xbC0xLjctMzYuOXMtMzYuMyAxMS40LTc3LjEgMTAuMWMtNDAuNC0xLjQtODMtNC40LTg5LjYtNTQtLjYtNC42LS45LTkuMy0uOS0xMy45IDg1LjYgMjAuOSAxNTguNyA5LjEgMTc4LjcgNi43IDU2LjEtNi43IDEwNS00MS4zIDExMS4yLTcyLjkgOS44LTQ5LjggOS0xMjEuNSA5LTEyMS41ek0zNTcuOSAzMDQuM2wtNDYuNiAwIDAtMTE0LjJjMC00OS43LTY0LTUxLjYtNjQgNi45bDAgNjIuNS00Ni4zIDAgMC02Mi41YzAtNTguNS02NC01Ni42LTY0LTYuOWwwIDExNC4yLTQ2LjcgMGMwLTEyMi4xLTUuMi0xNDcuOSAxOC40LTE3NSAyNS45LTI4LjkgNzkuOC0zMC44IDEwMy44IDYuMWwxMS42IDE5LjUgMTEuNi0xOS41YzI0LjEtMzcuMSA3OC4xLTM0LjggMTAzLjgtNi4xIDIzLjcgMjcuMyAxOC40IDUzIDE4LjQgMTc1bDAgMHoiXX0seXVlPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6InNrZXRjaCIsaWNvbjpbNTEyLDUxMixbXSwiZjdjNiIsIk0yNy44IDE2Mi4ybC0xOC41IDI0LjkgOTAuNSAwIDYuOS0xMzAuNy03OC45IDEwNS44ek0zOTYuNiA0NS43TDI2OCAzMiA0MDMuNyAxNzkuMiAzOTYuNiA0NS43ek0xMTIuNSAyMTguM2wtMTEuMi0yMi05MS4xIDAgMjI0LjkgMjYxLjctMTIyLjYtMjM5Ljd6bTItMzEuMmwyODQgMEMzNDAuNiAxMjQuMyAyOTMuMyA3Mi45IDI1Ni42IDMzTDExNC41IDE4Ny4xem0yOTcuMyA5LjFsLTEzMy45IDI2MS44IDIyNC44LTI2MS43LTkwLjkgMCAwLS4xek00MTUuNyA2OWwtOS40LTEyLjYgLjkgMTcuMyA2LjEgMTEzLjQgOTAuMyAwLTg3LjktMTE4LjF6TTExMy44IDkzLjVMMTA5LjIgMTc5LjEgMjQ1IDMyIDExNi40IDQ1LjcgMTEzLjggOTMuNXpNNDAxLjUgMTk2LjJsLTI5MCAwYzE4LjIgMzUuNiA2Ni42IDEzMC4yIDE0NS4xIDI4My44TDQwMS41IDE5Ni4yeiJdfSx4dWU9e3ByZWZpeDoiZmFiIixpY29uTmFtZToid2ViLWF3ZXNvbWUiLGljb246WzY0MCw1MTIsW10sImU2ODIiLCJNMzcyLjIgNTJjMCAyMC45LTEyLjQgMzktMzAuMiA0Ny4yTDQ0OCAxOTIgNTUyLjQgMTcxLjFjLTUuMy03LjctOC40LTE3LjEtOC40LTI3LjEgMC0yNi41IDIxLjUtNDggNDgtNDhzNDggMjEuNSA0OCA0OGMwIDI2LTIwLjYgNDcuMS00Ni40IDQ4TDQ4MSA0NDIuM2MtMTAuMyAyMy0zMy4yIDM3LjctNTguNCAzNy43bC0yMDUuMiAwYy0yNS4yIDAtNDgtMTQuOC01OC40LTM3LjdMNDYuNCAxOTJDMjAuNiAxOTEuMSAwIDE3MCAwIDE0NCAwIDExNy41IDIxLjUgOTYgNDggOTZzNDggMjEuNSA0OCA0OGMwIDEwLjEtMy4xIDE5LjQtOC40IDI3LjFMMTkyIDE5MiAyOTguMSA5OS4xYy0xNy43LTguMy0zMC0yNi4zLTMwLTQ3LjEgMC0yOC43IDIzLjMtNTIgNTItNTJzNTIgMjMuMyA1MiA1MmwuMSAweiJdfSx3dWU9e3ByZWZpeDoiZmFiIixpY29uTmFtZToic2FzcyIsaWNvbjpbNjQwLDUxMixbXSwiZjQxZSIsIk0zMDEuOCAzNzguOWwwIDB6bTI0OS4xLTg3Yy0yMC4xIDAtNDAgNC42LTU4IDEzLjUtNS45LTExLjktMTItMjIuMy0xMy0zMC4xLTEuMi05LjEtMi41LTE0LjUtMS4xLTI1LjNzNy43LTI2LjEgNy42LTI3LjItMS40LTYuNi0xNC4zLTYuNy0yNCAyLjUtMjUuMyA1LjljLTIuMyA2LjItNC4xIDEyLjYtNS4zIDE5LjEtMi4zIDExLjctMjUuOCA1My41LTM5LjEgNzUuMy00LjQtOC41LTguMS0xNi04LjktMjItMS4yLTkuMS0yLjUtMTQuNS0xLjEtMjUuM3M3LjctMjYuMSA3LjYtMjcuMi0xLjQtNi42LTE0LjMtNi43LTI0IDIuNS0yNS4zIDUuOS0yLjcgMTEuNC01LjMgMTkuMS0zMy45IDc3LjMtNDIuMSA5NS40Yy00LjIgOS4yLTcuOCAxNi42LTEwLjQgMjEuNi0uNCAuOC0uNyAxLjMtLjkgMS43IC4zLS41IC41LTEgLjUtLjgtMi4yIDQuMy0zLjUgNi43LTMuNSA2LjdsMCAuMWMtMS43IDMuMi0zLjYgNi4xLTQuNSA2LjEtLjYgMC0xLjktOC40IC4zLTE5LjkgNC43LTI0LjIgMTUuOC02MS44IDE1LjctNjMuMS0uMS0uNyAyLjEtNy4yLTcuMy0xMC43LTkuMS0zLjMtMTIuNCAyLjItMTMuMiAyLjJzLTEuNCAyLTEuNCAyIDEwLjEtNDIuNC0xOS40LTQyLjRjLTE4LjQgMC00NCAyMC4yLTU2LjYgMzguNS03LjkgNC4zLTI1IDEzLjYtNDMgMjMuNS02LjkgMy44LTE0IDcuNy0yMC43IDExLjQtLjUtLjUtLjktMS0xLjQtMS41LTM1LjgtMzguMi0xMDEuOS02NS4yLTk5LjEtMTE2LjUgMS0xOC43IDcuNS02Ny44IDEyNy4xLTEyNy40IDk4LTQ4LjggMTc2LjMtMzUuNCAxODkuOC01LjYgMTkuNCA0Mi41LTQxLjkgMTIxLjYtMTQzLjcgMTMzLTM4LjggNC4zLTU5LjItMTAuNy02NC4zLTE2LjMtNS4zLTUuOS02LjEtNi4yLTguMS01LjEtMy4zIDEuOC0xLjIgNyAwIDEwLjEgMyA3LjkgMTUuNSAyMS45IDM2LjggMjguOSAxOC43IDYuMSA2NC4yIDkuNSAxMTkuMi0xMS44IDYxLjgtMjMuOCAxMDkuOS05MC4xIDk1LjgtMTQ1LjYtMTQuNC01Ni40LTEwNy45LTc0LjktMTk2LjMtNDMuNS01Mi43IDE4LjctMTA5LjcgNDguMS0xNTAuNyA4Ni40LTQ4LjcgNDUuNi01Ni41IDg1LjMtNTMuMyAxMDEuOSAxMS40IDU4LjkgOTIuNiA5Ny4zIDEyNS4xIDEyNS43LTEuNiAuOS0zLjEgMS43LTQuNSAyLjUtMTYuMyA4LjEtNzguMiA0MC41LTkzLjcgNzQuNy0xNy41IDM4LjggMi45IDY2LjYgMTYuMyA3MC40IDQxLjggMTEuNiA4NC42LTkuMyAxMDcuNi00My42czIwLjItNzkuMSA5LjYtOTkuNWMtLjEtLjMtLjMtLjUtLjQtLjggNC4yLTIuNSA4LjUtNSAxMi44LTcuNSA4LjMtNC45IDE2LjQtOS40IDIzLjUtMTMuMy00IDEwLjgtNi45IDIzLjgtOC40IDQyLjYtMS44IDIyIDcuMyA1MC41IDE5LjEgNjEuNyA1LjIgNC45IDExLjUgNSAxNS40IDUgMTMuOCAwIDIwLTExLjQgMjYuOS0yNSA4LjUtMTYuNiAxNi0zNS45IDE2LTM1LjlzLTkuNCA1Mi4yIDE2LjMgNTIuMmM5LjQgMCAxOC44LTEyLjEgMjMtMTguM2wwIC4xcy4yLS40IC43LTEuMmMxLTEuNSAxLjUtMi40IDEuNS0yLjRsMC0uM2MzLjgtNi41IDEyLjEtMjEuNCAyNC42LTQ2IDE2LjItMzEuOCAzMS43LTcxLjUgMzEuNy03MS41IDEuNSA4LjcgMy42IDE3LjMgNi4yIDI1LjggMi44IDkuNSA4LjcgMTkuOSAxMy40IDMwLTMuOCA1LjItNi4xIDguMi02LjEgOC4yIDAgLjEgMCAuMSAuMSAuMi0zIDQtNi40IDguMy05LjkgMTIuNS0xMi44IDE1LjItMjggMzIuNi0zMCAzNy42LTIuNCA1LjktMS44IDEwLjMgMi44IDEzLjcgMy40IDIuNiA5LjQgMyAxNS43IDIuNSAxMS41LS44IDE5LjYtMy42IDIzLjUtNS40IDcuMi0yLjYgMTQtNi4xIDIwLjItMTAuNiAxMi41LTkuMiAyMC4xLTIyLjQgMTkuNC0zOS44LS40LTkuNi0zLjUtMTkuMi03LjMtMjguMiAxLjEtMS42IDIuMy0zLjMgMy40LTUgMTkuOC0yOC45IDM1LjEtNjAuNiAzNS4xLTYwLjYgMS41IDguNyAzLjYgMTcuMyA2LjIgMjUuOCAyLjQgOC4xIDcuMSAxNyAxMS40IDI1LjctMTguNiAxNS4xLTMwLjEgMzIuNi0zNC4xIDQ0LjEtNy40IDIxLjMtMS42IDMwLjkgOS4zIDMzLjEgNC45IDEgMTEuOS0xLjMgMTcuMS0zLjUgNy43LTIuNiAxNS02LjMgMjEuNi0xMS4xIDEyLjUtOS4yIDI0LjYtMjIuMSAyMy44LTM5LjYtLjMtNy45LTIuNS0xNS44LTUuNC0yMy40IDE1LjctNi42IDM2LjEtMTAuMiA2Mi4xLTcuMiA1NS43IDYuNSA2Ni42IDQxLjMgNjQuNSA1NS44cy0xMy44IDIyLjYtMTcuNyAyNS01LjEgMy4zLTQuOCA1LjFjLjUgMi42IDIuMyAyLjUgNS42IDEuOSA0LjYtLjggMjkuMi0xMS44IDMwLjMtMzguNyAxLjYtMzQtMzEuMS03MS40LTg5LTcxLjFsMCAwek0xMjEuOCA0MzYuNmMtMTguNCAyMC4xLTQ0LjIgMjcuNy01NS4zIDIxLjMtMTEuOS02LjktNy4yLTM2LjUgMTUuNS01Ny45IDEzLjgtMTMgMzEuNi0yNSA0My40LTMyLjQgMi43LTEuNiA2LjYtNCAxMS40LTYuOSAuOC0uNSAxLjItLjcgMS4yLS43IC45LS42IDEuOS0xLjEgMi45LTEuNyA4LjMgMzAuNCAuMyA1Ny4yLTE5LjEgNzguM2wwIDB6bTEzNC40LTkxLjRjLTYuNCAxNS43LTE5LjkgNTUuNy0yOC4xIDUzLjYtNy0xLjgtMTEuMy0zMi4zLTEuNC02Mi4zIDUtMTUuMSAxNS42LTMzLjEgMjEuOS00MC4xIDEwLjEtMTEuMyAyMS4yLTE0LjkgMjMuOC0xMC40IDMuNSA1LjktMTIuMiA0OS40LTE2LjIgNTkuMnptMTExIDUzYy0yLjcgMS40LTUuMiAyLjMtNi40IDEuNi0uOS0uNSAxLjEtMi40IDEuMS0yLjRzMTMuOS0xNC45IDE5LjQtMjEuN2MzLjItNCA2LjktOC43IDEwLjktMTMuOSAwIC41IC4xIDEgLjEgMS42LS4xIDE3LjktMTcuMyAzMC0yNS4xIDM0LjhsMCAwem04NS42LTE5LjVjLTItMS40LTEuNy02LjEgNS0yMC43IDIuNi01LjcgOC42LTE1LjMgMTktMjQuNSAxLjIgMy41IDEuOCA3LjEgMS45IDEwLjgtLjEgMjIuNS0xNi4yIDMwLjktMjUuOSAzNC40bDAgMHoiXX0sTXVlPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6InRocmVlbWEiLGljb246WzM4NCw1MTIsW10sImU4NWYiLCJNODcuNCA0NDUuMWMxOC41IDAgMzMuNSAxNSAzMy41IDMzLjRTMTA1LjkgNTEyIDg3LjQgNTEyIDU0IDQ5NyA1NCA0NzguNSA2OSA0NDUuMSA4Ny40IDQ0NS4xem0xMDkuMiAwYzE4LjUgMCAzMy41IDE1IDMzLjUgMzMuNHMtMTUgMzMuNS0zMy41IDMzLjUtMzMuNC0xNS0zMy40LTMzLjUgMTUtMzMuNCAzMy40LTMzLjR6bTEwOS4zIDBjMTguNSAwIDMzLjUgMTUgMzMuNSAzMy40cy0xNSAzMy41LTMzLjUgMzMuNS0zMy41LTE1LTMzLjUtMzMuNSAxNS0zMy40IDMzLjUtMzMuNHpNMTkyLjMgLjNjMTA5LjggMCAxOTkuMiA4OS4zIDE5OS4yIDE5OS4xUzMwMi4yIDM5OC41IDE5Mi40IDM5OC41Yy00MC41IDAtNzguMS0xMi4xLTEwOS42LTMyLjlsLTc2LjUgMjQuNSAyNC44LTc0QzcuMyAyODMuNC02LjggMjQzLTYuOCAxOTkuNC02LjggODkuNyA4Mi41IC4zIDE5Mi4zIC4zem0uMSA5My43Yy0zMS42IDAtNTcuMyAyNS44LTU3LjMgNTcuM2wwIDI2LjctMS44IDBjLTEwIDAtMTggOC0xOCAxOGwwIDcyLjNjMCAxMCA4IDE4IDE4IDE4bDExOC4xIDBjMTAgMCAxOC04IDE4LTE4bC4xIDAgMC03Mi4zYzAtMTAtOC4xLTE4LTE4LTE4bC0xLjggMCAwLTI2LjdjMC0zMS42LTI1LjgtNTcuMy01Ny4zLTU3LjN6bS0uMSAyMy41YzE4LjYgMCAzMy44IDE1LjEgMzMuOCAzMy44bDAgMjYuNy02Ny42IDAgMC0yNi43YzAtMTguNiAxNS4xLTMzLjggMzMuOC0zMy44eiJdfSxrRT17cHJlZml4OiJmYWIiLGljb25OYW1lOiJzcXVhcmUtd2hhdHNhcHAiLGljb246WzQ0OCw1MTIsWyJ3aGF0c2FwcC1zcXVhcmUiXSwiZjQwYyIsIk05Mi4xIDI1NC42YzAgMjQuOSA3IDQ5LjIgMjAuMiA3MC4xbDMuMSA1LTEzLjMgNDguNiA0OS45LTEzLjEgNC44IDIuOWMyMC4yIDEyIDQzLjQgMTguNCA2Ny4xIDE4LjRsLjEgMGM3Mi42IDAgMTMzLjMtNTkuMSAxMzMuMy0xMzEuOCAwLTM1LjItMTUuMi02OC4zLTQwLjEtOTMuMi0yNS0yNS01OC0zOC43LTkzLjItMzguNy03Mi43IDAtMTMxLjggNTkuMS0xMzEuOSAxMzEuOHpNMjc0LjggMzMwYy0xMi42IDEuOS0yMi40IC45LTQ3LjUtOS45LTM2LjgtMTUuOS02MS44LTUxLjUtNjYuOS01OC43LS40LS42LS43LS45LS44LTEuMS0yLTIuNi0xNi4yLTIxLjUtMTYuMi00MSAwLTE4LjQgOS0yNy45IDEzLjItMzIuMyAuMy0uMyAuNS0uNSAuNy0uOCAzLjYtNCA3LjktNSAxMC42LTUgMi42IDAgNS4zIDAgNy42IC4xbC44IDBjMi4zIDAgNS4yIDAgOC4xIDYuOCAxLjIgMi45IDMgNy4zIDQuOSAxMS44IDMuMyA4IDYuNyAxNi4zIDcuMyAxNy42IDEgMiAxLjcgNC4zIC4zIDYuOS0zLjQgNi44LTYuOSAxMC40LTkuMyAxMy0zLjEgMy4yLTQuNSA0LjctMi4zIDguNiAxNS4zIDI2LjMgMzAuNiAzNS40IDUzLjkgNDcuMSA0IDIgNi4zIDEuNyA4LjYtMSAyLjMtMi42IDkuOS0xMS42IDEyLjUtMTUuNSAyLjYtNCA1LjMtMy4zIDguOS0yczIzLjEgMTAuOSAyNy4xIDEyLjljLjggLjQgMS41IC43IDIuMSAxIDIuOCAxLjQgNC43IDIuMyA1LjUgMy42IC45IDEuOSAuOSA5LjktMi40IDE5LjEtMy4zIDkuMy0xOS4xIDE3LjctMjYuNyAxOC44ek00NDggOTZjMC0zNS4zLTI4LjctNjQtNjQtNjRMNjQgMzJDMjguNyAzMiAwIDYwLjcgMCA5NkwwIDQxNmMwIDM1LjMgMjguNyA2NCA2NCA2NGwzMjAgMGMzNS4zIDAgNjQtMjguNyA2NC02NGwwLTMyMHpNMTQ4LjEgMzkzLjlMNjQgNDE2IDg2LjUgMzMzLjhjLTEzLjktMjQtMjEuMi01MS4zLTIxLjItNzkuMyAuMS04Ny40IDcxLjItMTU4LjUgMTU4LjYtMTU4LjUgNDIuNCAwIDgyLjIgMTYuNSAxMTIuMiA0Ni41IDI5LjkgMzAgNDcuOSA2OS44IDQ3LjkgMTEyLjIgMCA4Ny40LTcyLjcgMTU4LjUtMTYwLjEgMTU4LjUtMjYuNiAwLTUyLjctNi43LTc1LjgtMTkuM3oiXX0senVlPWtFLGt1ZT17cHJlZml4OiJmYWIiLGljb25OYW1lOiJza3lwZSIsaWNvbjpbNDQ4LDUxMixbXSwiZjE3ZSIsIk00MjQuNyAyOTkuOGMyLjktMTQgNC43LTI4LjkgNC43LTQzLjggMC0xMTMuNS05MS45LTIwNS4zLTIwNS4zLTIwNS4zLTE0LjkgMC0yOS43IDEuNy00My44IDQuNy0xOS0xNC43LTQyLjYtMjMuNC02OC4zLTIzLjQtNjEuOCAwLTExMiA1MC4yLTExMiAxMTIgMCAyNS43IDguNyA0OS4zIDIzLjMgNjguMi0yLjkgMTQtNC43IDI4LjktNC43IDQzLjggMCAxMTMuNSA5MS45IDIwNS4zIDIwNS4zIDIwNS4zIDE0LjkgMCAyOS43LTEuNyA0My44LTQuNyAxOSAxNC42IDQyLjYgMjMuMyA2OC4yIDIzLjMgNjEuOCAwIDExMi01MC4yIDExMi0xMTIgLjEtMjUuNi04LjYtNDkuMi0yMy4yLTY4LjF6TTIzMC4xIDM5MS4zYy02NS42IDAtMTIwLjUtMjkuMi0xMjAuNS02NSAwLTE2IDktMzAuNiAyOS41LTMwLjYgMzEuMiAwIDM0LjEgNDQuOSA4OC4xIDQ0LjkgMjUuNyAwIDQyLjMtMTEuNCA0Mi4zLTI2LjMgMC0xOC43LTE2LTIxLjYtNDItMjgtNjIuNS0xNS40LTExNy44LTIyLTExNy44LTg3LjIgMC01OS4yIDU4LjYtODEuMSAxMDkuMS04MS4xIDU1LjEgMCAxMTAuOCAyMS45IDExMC44IDU1LjQgMCAxNi45LTExLjQgMzEuOC0zMC4zIDMxLjgtMjguMyAwLTI5LjItMzMuNS03NS0zMy41LTI1LjcgMC00MiA3LTQyIDIyLjUgMCAxOS44IDIwLjggMjEuOCA2OS4xIDMzIDQxLjQgOS4zIDkwLjcgMjYuOCA5MC43IDc3LjYgMCA1OS4xLTU3LjEgODYuNS0xMTIgODYuNXoiXX0sU3VlPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImFuZ3VsYXIiLGljb246WzQ0OCw1MTIsW10sImY0MjAiLCJNMTg1LjcgMjY4LjFsNzYuMiAwLTM4LjEtOTEuNi0zOC4xIDkxLjZ6TTIyMy44IDMyTDE2IDEwNi40IDQ3LjggMzgyLjEgMjIzLjggNDgwIDM5OS44IDM4Mi4xIDQzMS42IDEwNi40IDIyMy44IDMyek0zNTQgMzczLjhsLTQ4LjYgMC0yNi4yLTY1LjQtMTEwLjYgMC0yNi4yIDY1LjQtNDguNyAwIDEzMC4xLTI5Mi4zIDEzMC4yIDI5Mi4zeiJdfSxDdWU9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiY2lyY2xlLXp1bGlwIixpY29uOls1MTIsNTEyLFtdLCJlODUxIiwiTTI1NiA1MTJhMjU2IDI1NiAwIDEgMSAwLTUxMiAyNTYgMjU2IDAgMSAxIDAgNTEyek0yNDMuNSAyNDBjMS4yLTEuOS0uOS00LjItMi42LTIuOGwtODkgNzkuNWMtOS4yIDcuMi0xNS4yIDE5LjEtMTUuMiAzMi41IDAgMjEuOSAxNiAzOS44IDM1LjcgMzkuOGwxNjcuMyAwYzE5LjYgMCAzNS43LTE3LjkgMzUuNy0zOS44IDAtMjEuOS0xNi4xLTM5LjctMzUuNy0zOS44bC0xMjYuNiAwYy0xLjkgMC0zLTIuMy0yLjEtNC4xTDI0My41IDI0MHpNMTcyLjQgMTIzLjFjLTE5LjYgMC0zNS43IDE3LjktMzUuNyAzOS44czE2IDM5LjggMzUuNyAzOS44bDEyNi42IDBjMS45IDAgMy4xIDIuMiAyLjIgNC4xTDI2OC41IDI3MmMtMS4yIDEuOSAuOSA0LjIgMi42IDIuOGw4OS03OS41YzkuMi03LjIgMTUuMi0xOS4xIDE1LjItMzIuNSAwLTIxLjktMTYtMzkuNy0zNS43LTM5LjhsLTE2Ny4zIDB6Il19LF91ZT17cHJlZml4OiJmYWIiLGljb25OYW1lOiJvcGVuc3VzZSIsaWNvbjpbNjQwLDUxMixbXSwiZTYyYiIsIk00NzEuMSAxMDIuN3MtLjMgMTguMy0uMyAyMC4zYy05LjEtMy03NC40LTI0LjEtMTM1LjctMjYuMy01MS45LTEuOC0xMjIuOC00LjMtMjIzIDU3LjMtMTkuNCAxMi40LTczLjkgNDYuMS05OS42IDEwOS43LTUuNSAxMy4zLTEyLjYgNDMuMy01LjUgNzEuNCAzLjMgMTIuOCA4LjkgMjQuOSAxNi41IDM1LjcgMTcuNCAyNSA0Ni42IDQxLjYgNzguMSA0NC40IDQ0LjQgMy45IDc4LjEtMTYgOTAtNTMuMyA4LjItMjUuOCAwLTYzLjYtMzEuNS04Mi45LTI1LjYtMTUuNy01My4zLTEyLjEtNjkuMi0xLjYtMTMuOSA5LjItMjEuOCAyMy41LTIxLjYgMzkuMiAuMyAyNy44IDI0LjMgNDIuNiA0MS41IDQyLjYgNS40IDAgMTAuNy0uOSAxNS44LTIuNyA2LjUtMS44IDEzLjMtNi41IDEzLjMtMTQuOSAwLTEyLjEtMTEuNi0xNC44LTE2LjgtMTMuOS0yLjkgLjUtNC41IDItMTEuOCAyLjQtMi0uMi0xMi0zLjEtMTItMTRsMC0uMWMuMi0xMi4zIDEzLjItMTggMjUuNS0xNi45IDMyLjMgMi44IDQ3LjcgNDAuNyAyOC41IDY1LjctMTguMyAyMy43LTc2LjYgMjMuMi05OS43LTIwLjQtMjYtNDkuMiAxMi43LTExMS4yIDg3LTk4LjQgMzMuMiA1LjcgODMuNiAzNS41IDEwMi40IDEwNC4zbDQ1LjkgMGMtNS43LTE3LjYtOC45LTY4LjMgNDIuNy02OC4zIDU2LjcgMCA2My45IDM5LjkgNzkuOCA2OC4zbDQ4LjYgMGMtMTIuOC0xOC4zLTIxLjctMzguNy0xOC45LTU1LjggNS42LTMzLjggMzkuNy0xOC40IDgyLjQtMTcuNCA2Ni41IC40IDEwMi4xLTI3IDEwMy4xLTI4IDMuNy0zLjEgNi41LTE1LjggNy0xNy43IDEuMy01LjEtMy4yLTIuNC0zLjItMi40LTguNyA1LjItMzAuNSAxNS4yLTUwLjkgMTUuNi0yNS4zIC41LTc2LjItMjUuNC04MS42LTI4LjItLjMtLjQgLjEgMS4yLTExLTI1LjUgODguNCA1OC4zIDExOC4zIDQwLjUgMTQ1LjIgMjEuNyAuOC0uNiA0LjMtMi45IDMuNi01LjctMTMuOC00OC4xLTIyLjQtNjIuNy0zNC41LTY5LjYtMzctMjEuNi0xMjUtMzQuNy0xMjkuMi0zNS4zIC4xLS4xLS45LS4zLS45IC43em02MC40IDcyLjhhMzcuNiAzNy42IDAgMSAxIDc1LjIgMi42IDM3LjYgMzcuNiAwIDEgMSAtNzUuMi0yLjZ6bTM4LjYtMjUuM2MtMy42LS4zLTcuMSAuMS0xMC41IDEuMnMtNi41IDIuOS05LjIgNS4zLTQuOCA1LjMtNi4zIDguNS0yLjQgNi43LTIuNSAxMC4zIC41IDcuMSAxLjggMTAuNCAzLjMgNi4zIDUuOCA4LjkgNS41IDQuNSA4LjggNS45IDYuOSAyIDEwLjQgMS45YzMuNiAuMyA3LjEtLjEgMTAuNS0xLjJzNi41LTIuOSA5LjItNS4zIDQuOC01LjMgNi4zLTguNSAyLjQtNi43IDIuNS0xMC4zLS41LTcuMS0xLjgtMTAuNC0zLjMtNi4zLTUuOC04LjktNS41LTQuNS04LjgtNS45LTYuOS0yLTEwLjQtMS45em00LjMgMjguOGMtMTUuNCAwLTE1LjQtMTUuNiAwLTE1LjZzMTUuNCAxNS42IDAgMTUuNnoiXX0sVHVlPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImRyb3Bib3giLGljb246WzU3Niw1MTIsW10sImYxNmIiLCJNMjg4LjQgMTE2LjNsLTEzMiA4NC4zIDEzMiA4NC4zLTEzMiA4NC4zLTEzMi40LTg1LjEgMTMyLjMtODQuMy0xMzIuMy04My41IDEzMi4zLTg0LjMgMTMyLjEgODQuM3pNMTU1LjYgMzk1LjdsMTMyLTg0LjMgMTMyIDg0LjMtMTMyIDg0LjMtMTMyLTg0LjN6TTI4OC40IDI4NC4xbDEzMi04NC4zLTEzMi04My42IDEzMS4zLTg0LjIgMTMyLjMgODQuMy0xMzIuMyA4NC4zIDEzMi4zIDg0LjItMTMyLjMgODQuMy0xMzEuMy04NXoiXX0sTHVlPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImRlZXplciIsaWNvbjpbNTEyLDUxMixbXSwiZTA3NyIsIk0xNC44IDEwMS4xQzYuNiAxMDEuMSAwIDEyNy42IDAgMTYwLjNzNi42IDU5LjIgMTQuOCA1OS4yIDE0LjgtMjYuNSAxNC44LTU5LjItNi42LTU5LjItMTQuOC01OS4yek00NDguNyA0MC45Yy03LjcgMC0xNC41IDE3LjEtMTkuNCA0NC4xLTcuNy00Ni43LTIwLjItNzctMzQuMi03Ny0xNi44IDAtMzEuMSA0Mi45LTM4IDEwNS40LTYuNi00NS40LTE2LjgtNzQuMi0yOC4zLTc0LjItMTYuMSAwLTI5LjYgNTYuOS0zNC43IDEzNi4yLTkuNC00MC44LTIzLjItNjYuMy0zOC4zLTY2LjNzLTI4LjggMjUuNS0zOC4zIDY2LjNjLTUuMS03OS4zLTE4LjYtMTM2LjItMzQuNy0xMzYuMi0xMS41IDAtMjEuNyAyOC44LTI4LjMgNzQuMi02LjYtNjIuNS0yMS4yLTEwNS40LTM3LjgtMTA1LjQtMTQgMC0yNi41IDMwLjQtMzQuMiA3Ny00LjgtMjctMTEuNy00NC4xLTE5LjQtNDQuMS0xNC4zIDAtMjYgNTkuMi0yNiAxMzIuMVM0OSAzMDUuMiA2My4zIDMwNS4yYzUuOSAwIDExLjUtOS45IDE1LjgtMjYuOCA2LjkgNjEuNyAyMS4yIDEwNC4xIDM4IDEwNC4xIDEzIDAgMjQuNS0yNS41IDMyLjEtNjUuNiA1LjQgNzYuMyAxOC42IDEzMC40IDM0LjIgMTMwLjQgOS43IDAgMTguNi0yMS40IDI1LjMtNTYuNCA3LjkgNzIuMiAyNi4zIDEyMi43IDQ3LjcgMTIyLjdzMzkuNS01MC41IDQ3LjctMTIyLjdjNi42IDM1IDE1LjYgNTYuNCAyNS4zIDU2LjQgMTUuNiAwIDI4LjgtNTQuMSAzNC4yLTEzMC40IDcuNyA0MC4xIDE5LjQgNjUuNiAzMi4xIDY1LjYgMTYuNiAwIDMwLjktNDIuMyAzOC0xMDQuMSA0LjMgMTYuOCA5LjcgMjYuOCAxNS44IDI2LjggMTQuMyAwIDI2LTU5LjIgMjYtMTMyLjFTNDYzIDQwLjkgNDQ4LjcgNDAuOXptNDguNSA2MC4yYy04LjIgMC0xNC44IDI2LjUtMTQuOCA1OS4yczYuNiA1OS4yIDE0LjggNTkuMiAxNC44LTI2LjUgMTQuOC01OS4yLTYuNi01OS4yLTE0LjgtNTkuMnoiXX0sJHVlPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImNyZWF0aXZlLWNvbW1vbnMtc2FtcGxpbmciLGljb246WzUxMiw1MTIsW10sImY0ZjAiLCJNMjU1LjYgOEMzOTcuNCA4IDUwNCAxMTguMSA1MDQgMjU2IDUwNCA0MDMuMSAzODUuNSA1MDQgMjU1LjYgNTA0IDEyMS42IDUwNCA4IDM5NC41IDggMjU2IDggMTIzLjEgMTEyLjcgOCAyNTUuNiA4em0uOCA0NC43Yy0xMTguMiAwLTIwMy43IDk3LjktMjAzLjcgMjAzLjMgMCAxMDkuOCA5MS4yIDIwMi44IDIwMy43IDIwMi44IDEwMy4yIDAgMjAyLjgtODEuMSAyMDIuOC0yMDIuOCAuMS0xMTMuOC05MC4yLTIwMy4zLTIwMi44LTIwMy4zem0zLjYgNTMuMmMyLjgtLjMgMTEuNSAxIDExLjUgMTEuNWw2LjYgMTA3LjIgNC45LTU5LjNjMC02IDQuNy0xMC42IDEwLjYtMTAuNnMxMC42IDQuNyAxMC42IDEwLjZjMCAyLjUtLjUtNS43IDUuNyA4MS41bDUuOC02NC4yYy4zLTIuOSAyLjktOS4zIDEwLjItOS4zIDMuOCAwIDkuOSAyLjMgMTAuNiA4LjlsMTEuNSA5Ni41IDUuMy0xMi44YzEuOC00LjQgNS4yLTYuNiAxMC4yLTYuNmw1OCAwIDAgMjEuMy01MC45IDAtMTguMiA0NC4zYy0zLjkgOS45LTE5LjUgOS4xLTIwLjgtMy4xbC00LTMxLjktNy41IDkyLjZjLS4zIDMtMyA5LjMtMTAuMiA5LjMtMyAwLTkuOC0yLjEtMTAuNi05LjMgMC0xLjkgLjYgNS44LTYuMi03Ny45bC01LjMgNzIuMmMtMS4xIDQuOC00LjggOS4zLTEwLjYgOS4zLTIuOSAwLTkuOC0yLTEwLjYtOS4zIDAtMS45IC41IDYuNy01LjgtODcuN0wyNTUgMzgzLjljMCA2LjMtMy42IDEyLjQtMTAuNiAxMi40LTUuMiAwLTEwLjYtNC4xLTEwLjYtMTJMMjI4IDI5Ni42Yy01LjggOTIuNS01LjMgODQtNS4zIDg1LjktMS4xIDQuOC00LjggOS4zLTEwLjYgOS4zLTMgMC05LjgtMi4xLTEwLjYtOS4zIDAtLjctLjQtMS4xLS40LTIuNmwtNi4yLTg4LjYtNC45IDU2LjdjLS43IDYuNS02LjcgOS4zLTEwLjYgOS4zLTUuOCAwLTkuNi00LjEtMTAuNi04LjlMMTU3LjcgMjcyYy0yIDQtMy41IDguNC0xMS4xIDguNGwtNTEuNCAwIDAtMjEuMyA0NC44IDAgMTMuNy0yNy45YzQuNC05LjkgMTguMi03LjIgMTkuOSAyLjdsMy4xIDIwLjQgOC40LTk3LjljMC02IDQuOC0xMC42IDEwLjYtMTAuNiAuNSAwIDEwLjYtLjIgMTAuNiAxMi40bDQuOSA2OS4xIDYuNi05Mi42YzAtMTAuMSA5LjUtMTAuNiAxMC4yLTEwLjYgLjYgMCAxMC42IC43IDEwLjYgMTAuNmw1LjMgODAuNiA2LjItOTcuOWMuMS0xLjEtLjYtMTAuMyA5LjktMTEuNXoiXX0sQXVlPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImplZGktb3JkZXIiLGljb246WzQ0OCw1MTIsW10sImY1MGUiLCJNMzk4LjkgMzczLjZjOTUuOS0xMjIuMSAxNy4yLTIzMy4xIDE3LjItMjMzLjEgNDUuNCA4NS44LTQxLjQgMTcwLjUtNDEuNCAxNzAuNSAxMDUtMTcxLjUtNjAuNS0yNzEuNS02MC41LTI3MS41IDk2LjkgNzIuNy0xMC4xIDE5MC43LTEwLjEgMTkwLjcgODUuOCAxNTguNC02OC42IDIzMC4xLTY4LjYgMjMwLjFzLS40LTE2LjktMi4yLTg1LjdjNC4zIDQuNSAzNC41IDM2LjIgMzQuNSAzNi4ybC0yNC4yLTQ3LjQgNjIuNi05LjEtNjIuNi05LjEgMjAuMi01NS41LTMxLjQgNDUuOWMtMi4yLTg3LjctNy44LTMwNS4xLTcuOS0zMDYuOSAwIDEtNS42IDIxOS03LjkgMzA2LjlsLTMxLjQtNDUuOSAyMC4yIDU1LjUtNjIuNiA5LjEgNjIuNiA5LjEtMjQuMiA0Ny40IDM0LjUtMzYuMmMtMS44IDY4LjgtMi4yIDg1LjctMi4yIDg1LjdTNTkuMSAzODguNiAxNDQuOSAyMzAuMmMwIDAtMTA3LTExOC4xLTEwLjEtMTkwLjcgMCAwLTE2NS41IDk5LjktNjAuNSAyNzEuNSAwIDAtODYuOC04NC44LTQxLjQtMTcwLjUgMCAwLTc4LjcgMTExIDE3LjIgMjMzLjEgMCAwLTI2LjItMTYuMS00OS40LTc3LjcgMCAwIDE2LjkgMTgzLjMgMjIyIDE4NS43bDQuMSAwYzIwNS0yLjQgMjIyLTE4NS43IDIyMi0xODUuNy0yMy42IDYxLjUtNDkuOSA3Ny43LTQ5LjkgNzcuN3oiXX0sRHVlPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6InItcHJvamVjdCIsaWNvbjpbNTc2LDUxMixbXSwiZjRmNyIsIk01NzguNSAyMjYuNkM1NzguNSAxMTkuMSA0NDguNCAzMiAyODggMzJTLTIuNSAxMTkuMS0yLjUgMjI2LjZjMCA5NS44IDEwMy4zIDE3NS40IDIzOS40IDE5MS41bDAgNjEuOSA5OS4xIDAgMC02MS41YzI0LjMtMi43IDQ3LjYtNy40IDY5LjQtMTMuOWw0MC4xIDc1LjQgMTEyIDAtNjcuNC0xMTMuN2M1NC41LTM1LjQgODguNC04NC45IDg4LjQtMTM5Ljd6TTExMS43IDI0MS4xYzAtNzMuNSA5OC45LTEzMyAyMjAuOC0xMzNzMjExLjkgNDAuNyAyMTEuOSAxMzNjMCA1MC4xLTI2LjUgODUtNzAuMyAxMDYuNC0yLjQtMS42LTQuNy0yLjktNi40LTMuNy0xMC4yLTUuMi0yNy44LTEwLjUtMjcuOC0xMC41czg2LjYtNi40IDg2LjYtOTIuNy05MC42LTg3LjktOTAuNi04Ny45bC0xOTkgMCAwIDIwOC4zYy03NC4xLTIxLjUtMTI1LjItNjcuMS0xMjUuMi0xMTkuOXptMjI1LjEgMzguM2wwLTU1LjZjNTcuOCAwIDg3LjgtNi44IDg3LjggMjcuMyAwIDM2LjUtMzguMiAyOC4zLTg3LjggMjguM3ptLS45IDcyLjVsMjYuNiAwYzEwLjggMCAxOC45IDExLjcgMjQgMTkuMi0xNi4xIDEuOS0zMyAyLjgtNTAuNiAyLjlsMC0yMi4xeiJdfSxFdWU9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiaW5zdGFsb2QiLGljb246WzUxMiw1MTIsW10sImUwODEiLCJNMTUzLjYgNDgwbDIzMy43IDAgMTE1LjQtMjA0LjItMjk4LjMgNTcuNC01MC44IDE0Ni44ek01MDUgMjQwLjFMMzg3LjQgMzIgMTU1LjkgMzIgMzYwLjUgMjY3LjkgNTA1IDI0MC4xek0xMjQuNiA0OC44TDcuNSAyNTYgMTIzLjUgNDYxLjIgMjI1LjkgMTY1LjYgMTI0LjYgNDguOHoiXX0sUHVlPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImNhbmFkaWFuLW1hcGxlLWxlYWYiLGljb246WzUxMiw1MTIsW10sImY3ODUiLCJNMzgzLjggMzUxLjdjMi41LTIuNSAxMDUuMi05Mi40IDEwNS4yLTkyLjRsLTE3LjUtNy41Yy0xMC00LjktNy40LTExLjUtNS0xNy40IDIuNC03LjYgMjAuMS02Ny4zIDIwLjEtNjcuM3MtNDcuNyAxMC01Ny43IDEyLjVjLTcuNSAyLjQtMTAtMi41LTEyLjUtNy41cy0xNS0zMi40LTE1LTMyLjQtNTIuNiA1OS45LTU1LjEgNjIuM2MtMTAgNy41LTIwLjEgMC0xNy42LTEwIDAtMTAgMjcuNi0xMjkuNiAyNy42LTEyOS42cy0zMC4xIDE3LjQtNDAuMSAyMi40Yy03LjUgNS0xMi42IDUtMTcuNi01LTUuMS03LjUtNDIuNy03OS44LTQyLjctNzkuOHMtMzcuNSA3Mi4zLTQyLjUgNzkuOGMtNSAxMC0xMCAxMC0xNy42IDUtMTAtNS00MC4xLTIyLjQtNDAuMS0yMi40UzE4My4zIDE4MiAxODMuMyAxOTJjMi41IDEwLTcuNSAxNy41LTE3LjYgMTAtMi41LTIuNS01NS4xLTYyLjMtNTUuMS02Mi4zcy0xMi41IDI3LjMtMTUgMzIuMy01IDkuOS0xMi41IDcuNUM3MyAxNzcgMjUuNCAxNjcgMjUuNCAxNjdTNDMgMjI2LjcgNDUuNSAyMzQuM2MyLjQgNiA1IDEyLjUtNSAxNy40TDIzIDI1OS4zczEwMi42IDg5LjkgMTA1LjIgOTIuNGM1LjEgNSAxMCA3LjUgNS4xIDIyLjUtNS4xIDE1LTEwLjEgMzUuMS0xMC4xIDM1LjFzOTUuMi0yMC4xIDEwNS4zLTIyLjZjOC43LS45IDE4LjMgMi41IDE4LjMgMTIuNVMyNDEgNTEyIDI0MSA1MTJsMzAgMHMtNS44LTEwMi43LTUuOC0xMTIuOCA5LjUtMTMuNCAxOC40LTEyLjVjMTAgMi41IDEwNS4yIDIyLjYgMTA1LjIgMjIuNnMtNS0yMC4xLTEwLTM1LjEgMC0xNy41IDUtMjIuNXoiXX0sSXVlPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImV0aGVyZXVtIixpY29uOlszMjAsNTEyLFtdLCJmNDJlIiwiTTMxMS45IDI2MC44TDE2MCAzNTMuNiA4IDI2MC44IDE2MCAwIDMxMS45IDI2MC44ek0xNjAgMzgzLjRMOCAyOTAuNiAxNjAgNTEyIDMxMiAyOTAuNiAxNjAgMzgzLjR6Il19LE51ZT17cHJlZml4OiJmYWIiLGljb25OYW1lOiJob3V6eiIsaWNvbjpbNDQ4LDUxMixbXSwiZjI3YyIsIk0yNzYgMzMwLjdsLTEwNC42IDAgMCAxNDkuMy0xNTQuMyAwIDAtNDQ4IDEwOS41IDAgMCAxMDQuNSAzMDUuMSA4NS42IDAgMjU3LjktMTU1LjcgMCAwLTE0OS4zeiJdfSxGdWU9e3ByZWZpeDoiZmFiIixpY29uTmFtZToidmliZXIiLGljb246WzUxMiw1MTIsW10sImY0MDkiLCJNNDQ0LjMgNDkuOWMtMTIuNy0xMS43LTY0LjEtNDktMTc4LjctNDkuNSAwIDAtMTM1LjEtOC4xLTIwMC45IDUyLjMtMzYuNiAzNi42LTQ5LjUgOTAuMy01MC45IDE1Ni44cy0zLjEgMTkxLjEgMTE3IDIyNC45bC4xIDAtLjEgNTEuNnMtLjggMjAuOSAxMyAyNS4xYzE2LjYgNS4yIDI2LjQtMTAuNyA0Mi4zLTI3LjggOC43LTkuNCAyMC43LTIzLjIgMjkuOC0zMy43IDgyLjIgNi45IDE0NS4zLTguOSAxNTIuNS0xMS4yIDE2LjYtNS40IDExMC41LTE3LjQgMTI1LjctMTQyIDE1LjgtMTI4LjYtNy42LTIwOS44LTQ5LjgtMjQ2LjV6TTQ1OC4yIDI4N2MtMTIuOSAxMDQtODkgMTEwLjYtMTAzIDExNS4xLTYgMS45LTYxLjUgMTUuNy0xMzEuMiAxMS4yIDAgMC01MiA2Mi43LTY4LjIgNzktNS4zIDUuMy0xMS4xIDQuOC0xMS01LjcgMC02LjkgLjQtODUuNyAuNC04NS43bDAgMEM0My40IDM3Mi43IDQ5LjQgMjY2LjYgNTAuNSAyMTEuMXMxMS42LTEwMSA0Mi42LTEzMS42YzU1LjctNTAuNSAxNzAuNC00MyAxNzAuNC00MyA5Ni45IC40IDE0My4zIDI5LjYgMTU0LjEgMzkuNCAzNS43IDMwLjYgNTMuOSAxMDMuOCA0MC42IDIxMS4xem0tMTM5LTgwLjhjLjQgOC42LTEyLjUgOS4yLTEyLjkgLjYtMS4xLTIyLTExLjQtMzIuNy0zMi42LTMzLjktOC42LS41LTcuOC0xMy40IC43LTEyLjkgMjcuOSAxLjUgNDMuNCAxNy41IDQ0LjggNDYuMnptMjAuMyAxMS4zYzEtNDIuNC0yNS41LTc1LjYtNzUuOC03OS4zLTguNS0uNi03LjYtMTMuNSAuOS0xMi45IDU4IDQuMiA4OC45IDQ0LjEgODcuOCA5Mi41LS4xIDguNi0xMy4xIDguMi0xMi45LS4zem00NyAxMy40Yy4xIDguNi0xMi45IDguNy0xMi45IC4xLS42LTgxLjUtNTQuOS0xMjUuOS0xMjAuOC0xMjYuNC04LjUtLjEtOC41LTEyLjkgMC0xMi45IDczLjcgLjUgMTMzIDUxLjQgMTMzLjcgMTM5LjJ6TTM3NS4yIDMyOWwwIC4yYy0xMC44IDE5LTMxIDQwLTUxLjggMzMuM2wtLjItLjNjLTIxLjEtNS45LTcwLjgtMzEuNS0xMDIuMi01Ni41LTE2LjItMTIuOC0zMS0yNy45LTQyLjQtNDIuNC0xMC4zLTEyLjktMjAuNy0yOC4yLTMwLjgtNDYuNi0yMS4zLTM4LjUtMjYtNTUuNy0yNi01NS43LTYuNy0yMC44IDE0LjItNDEgMzMuMy01MS44bC4yIDBjOS4yLTQuOCAxOC0zLjIgMjMuOSAzLjkgMCAwIDEyLjQgMTQuOCAxNy43IDIyLjEgNSA2LjggMTEuNyAxNy43IDE1LjIgMjMuOCA2LjEgMTAuOSAyLjMgMjItMy43IDI2LjZsLTEyIDkuNmMtNi4xIDQuOS01LjMgMTQtNS4zIDE0czE3LjggNjcuMyA4NC4zIDg0LjNjMCAwIDkuMSAuOCAxNC01LjNsOS42LTEyYzQuNi02IDE1LjctOS44IDI2LjYtMy43IDE0LjcgOC4zIDMzLjQgMjEuMiA0NS44IDMyLjkgNyA1LjcgOC42IDE0LjQgMy44IDIzLjZ6Il19LFNFPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImtpY2tzdGFydGVyIixpY29uOls0NDgsNTEyLFsic3F1YXJlLWtpY2tzdGFydGVyIl0sImYzYmIiLCJNNjQgMzJDMjguNyAzMiAwIDYwLjcgMCA5NkwwIDQxNmMwIDM1LjMgMjguNyA2NCA2NCA2NGwzMjAgMGMzNS4zIDAgNjQtMjguNyA2NC02NGwwLTMyMGMwLTM1LjMtMjguNy02NC02NC02NEw2NCAzMnpNMzIwLjggMjMzbC0yMy4zIDIzLjEgMjMuMyAyMi45YzI0LjEgMjMuOSAyNC4xIDYzIDAgODYuOXMtNjMuNCAyMy45LTg3LjYgMGwtOC41LTguNGMtMTEuMyAxNi0yOS43IDI2LjUtNTAuOSAyNi41LTM0LjEgMC02MS45LTI3LjUtNjEuOS02MS40bDAtMTMzLjJjMC0zMy44IDI3LjctNjEuNCA2MS45LTYxLjQgMjEuMSAwIDM5LjYgMTAuNSA1MC45IDI2LjVsOC41LTguNGMyNC4xLTIzLjkgNjMuNC0yMy45IDg3LjYgMHMyNC4xIDYzIDAgODYuOXoiXX0sT3VlPVNFLFJ1ZT17cHJlZml4OiJmYWIiLGljb25OYW1lOiJzcG90aWZ5IixpY29uOls1MTIsNTEyLFtdLCJmMWJjIiwiTTI1NiA4YTI0OCAyNDggMCAxIDAgMCA0OTYgMjQ4IDI0OCAwIDEgMCAwLTQ5NnpNMzU2LjcgMzcyLjljLTQuMiAwLTYuOC0xLjMtMTAuNy0zLjYtNjIuNC0zNy42LTEzNS0zOS4yLTIwNi43LTI0LjUtMy45IDEtOSAyLjYtMTEuOSAyLjYtOS43IDAtMTUuOC03LjctMTUuOC0xNS44IDAtMTAuMyA2LjEtMTUuMiAxMy42LTE2LjggODEuOS0xOC4xIDE2NS42LTE2LjUgMjM3IDI2LjIgNi4xIDMuOSA5LjcgNy40IDkuNyAxNi41cy03LjEgMTUuNC0xNS4yIDE1LjR6bTI2LjktNjUuNmMtNS4yIDAtOC43LTIuMy0xMi4zLTQuMi02Mi41LTM3LTE1NS43LTUxLjktMjM4LjYtMjkuNC00LjggMS4zLTcuNCAyLjYtMTEuOSAyLjYtMTAuNyAwLTE5LjQtOC43LTE5LjQtMTkuNHM1LjItMTcuOCAxNS41LTIwLjdjMjcuOC03LjggNTYuMi0xMy42IDk3LjgtMTMuNiA2NC45IDAgMTI3LjYgMTYuMSAxNzcgNDUuNSA4LjEgNC44IDExLjMgMTEgMTEuMyAxOS43LS4xIDEwLjgtOC41IDE5LjUtMTkuNCAxOS41em0zMS03Ni4yYy01LjIgMC04LjQtMS4zLTEyLjktMy45LTcxLjItNDIuNS0xOTguNS01Mi43LTI4MC45LTI5LjctMy42IDEtOC4xIDIuNi0xMi45IDIuNi0xMy4yIDAtMjMuMy0xMC4zLTIzLjMtMjMuNiAwLTEzLjYgOC40LTIxLjMgMTcuNC0yMy45IDM1LjItMTAuMyA3NC42LTE1LjIgMTE3LjUtMTUuMiA3MyAwIDE0OS41IDE1LjIgMjA1LjQgNDcuOCA3LjggNC41IDEyLjkgMTAuNyAxMi45IDIyLjYgMCAxMy42LTExIDIzLjMtMjMuMiAyMy4zeiJdfSxCdWU9e3ByZWZpeDoiZmFiIixpY29uTmFtZToibGVhbnB1YiIsaWNvbjpbNTc2LDUxMixbXSwiZjIxMiIsIk0zODYuNiAxMTEuNWwxNS4xIDI0OS0xMS0uM2MtMzYuMi0uOC03MS42IDguOC0xMDIuNyAyOC0zMS0xOS4yLTY2LjQtMjgtMTAyLjctMjgtNDUuNiAwLTgyLjEgMTAuNy0xMjMuNSAyNy43TDkzLjIgMTI5LjZjMjguNS0xMS44IDYxLjUtMTguMSA5Mi4yLTE4LjEgNDEuMiAwIDczLjggMTMuMiAxMDIuNyA0Mi41IDI3LjctMjguMyA1OS00MS43IDk4LjUtNDIuNXpNNTY5LjIgNDQ4Yy0yNS41IDAtNDcuNS01LjItNzAuNS0xNS42LTM0LjMtMTUuNi03MC0yNS0xMDcuOS0yNS0zOSAwLTc0LjkgMTIuOS0xMDIuNyA0MC42LTI3LjctMjcuNy02My43LTQwLjYtMTAyLjctNDAuNi0zNy45IDAtNzMuNiA5LjMtMTA3LjkgMjUtMjIuMiA5LjktNDQuNyAxNS42LTY5LjIgMTUuNkw3IDQ0OCA0OS42IDk4LjljMzkuMy0yMi4yIDg3LTM0LjkgMTMyLjMtMzQuOSAzNy4xIDAgNzUuMiA3LjcgMTA2LjIgMjkuMSAzMS0yMS40IDY5LjItMjkuMSAxMDYuMi0yOS4xIDQ1LjMgMCA5MyAxMi42IDEzMi4zIDM0LjlMNTY5LjIgNDQ4em0tNDMuNC00NC43TDQ5MS44IDEyM2MtMzAuNy0xNC02Ny4yLTIxLjQtMTAxLTIxLjQtMzguNCAwLTc0LjQgMTIuMS0xMDIuNyAzOC43LTI4LjMtMjYuNi02NC4yLTM4LjctMTAyLjctMzguNy0zMy44IDAtNzAuMyA3LjQtMTAxIDIxLjRsLTM0IDI4MC4yYzQ3LjItMTkuNSA4Mi45LTMzLjUgMTM1LTMzLjUgMzcuNiAwIDcwLjggOS42IDEwMi43IDI5LjYgMzEuOC0yMCA2NS4xLTI5LjYgMTAyLjctMjkuNiA1Mi4yIDAgODcuOCAxNCAxMzUgMzMuNXoiXX0sSHVlPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImphdmEiLGljb246WzM4NCw1MTIsW10sImY0ZTQiLCJNMjc3LjggMzEyLjljOS44LTYuNyAyMy40LTEyLjUgMjMuNC0xMi41cy0zOC43IDctNzcuMiAxMC4yYy00Ny4xIDMuOS05Ny43IDQuNy0xMjMuMSAxLjMtNjAuMS04IDMzLTMwLjEgMzMtMzAuMXMtMzYuMS0yLjQtODAuNiAxOWMtNTIuNSAyNS40IDEzMCAzNyAyMjQuNSAxMi4xem0tODUuNC0zMi4xYy0xOS00Mi43LTgzLjEtODAuMiAwLTE0NS44IDEwMy43LTgxLjggNTAuNS0xMzUgNTAuNS0xMzUgMjEuNSA4NC41LTc1LjYgMTEwLjEtMTEwLjcgMTYyLjYtMjMuOSAzNS45IDExLjcgNzQuNCA2MC4yIDExOC4yek0zMDcgMTA0LjZjLjEgMC0xNzUuMiA0My44LTkxLjUgMTQwLjIgMjQuNyAyOC40LTYuNSA1NC02LjUgNTRzNjIuNy0zMi40IDMzLjktNzIuOUMyMTYgMTg4LjEgMTk1LjQgMTY5LjMgMzA3IDEwNC42em0tNi4xIDI3MC41Yy0uNSAxLTEuMiAxLjgtMiAyLjYgMTI4LjMtMzMuNyA4MS4xLTExOC45IDE5LjgtOTcuMy0zLjMgMS4yLTYuMiAzLjQtOC4yIDYuMyAzLjYtMS4zIDcuMy0yLjMgMTEtMyAzMS02LjUgNzUuNSA0MS41LTIwLjYgOTEuNHpNMzQ4IDQzNy40czE0LjUgMTEuOS0xNS45IDIxLjJjLTU3LjkgMTcuNS0yNDAuOCAyMi44LTI5MS42IC43LTE4LjMtNy45IDE2LTE5IDI2LjgtMjEuMyAxMS4yLTIuNCAxNy43LTIgMTcuNy0yLTIwLjMtMTQuMy0xMzEuMyAyOC4xLTU2LjQgNDAuMiAyMDQuMiAzMy4yIDM3Mi40LTE0LjkgMzE5LjQtMzguOHpNMTI0LjUgMzk2Yy03OC43IDIyIDQ3LjkgNjcuNCAxNDguMSAyNC41LTkuOC0zLjgtMTkuMi04LjQtMjguMi0xMy44LTQ0LjcgOC41LTY1LjQgOS4xLTEwNiA0LjUtMzMuNS0zLjgtMTMuOS0xNS4yLTEzLjktMTUuMnptMTc5LjggOTcuMmMtNzguNyAxNC44LTE3NS44IDEzLjEtMjMzLjMgMy42IDAtLjEgMTEuOCA5LjcgNzIuNCAxMy42IDkyLjIgNS45IDIzMy44LTMuMyAyMzcuMS00Ni45IDAgMC02LjQgMTYuNS03Ni4yIDI5Ljd6TTI2MC43IDM1M2MtNTkuMiAxMS40LTkzLjUgMTEuMS0xMzYuOCA2LjYtMzMuNS0zLjUtMTEuNi0xOS43LTExLjYtMTkuNy04Ni44IDI4LjggNDguMiA2MS40IDE2OS41IDI1LjktNy44LTIuOC0xNS03LjEtMjEuMS0xMi44eiJdfSxxdWU9e3ByZWZpeDoiZmFiIixpY29uTmFtZToibmZjLXN5bWJvbCIsaWNvbjpbNTEyLDUxMixbXSwiZTUzMSIsIk0zNjAuOSAzMi40YzcuNy0xLjMgMTUuNyAuNSAyMS4yIDUgODQuMSA1OC43IDEyOS45IDEzNi4zIDEyOS45IDIxNy43IDAgODMuMS00NS44IDE2MC44LTEyOS45IDIxOS41LTQuOCA0LTExLjcgNS45LTE4LjYgNS4zLTctLjYtMTMuNS0zLjYtMTguNC04LjVMMTYxLjcgMjg4LjdjLTUuNi01LjUtOC43LTEzLTkuNi0yMC45IDAtNy44IDQtMTUuMyA5LjUtMjAuOSA1LjYtNS41IDEzLjEtOC43IDIwLjktOC43IDcuOSAwIDE1LjQgMy4xIDIwLjkgOC42TDM2OC41IDQxMS4yYzU0LjYtNDQuNyA4NC4zLTk5LjIgODQuMy0xNTYuMSAwLTYxLjYtMzYuOS0xMjIuMi0xMDMuOS0xNjkuMy02LjQtNC41LTEwLjgtMTEuNC0xMi4xLTE5LjEtMS40LTcuNyAuNC0xNS43IDUtMjIuMSA0LjUtNi40IDExLjQtMTAuOCAxOS4xLTEyLjF6bS0yMDYgNDQ3LjJjLTcuNyAxLjMtMTUuNi0uNS0yMi4xLTUtODMuMS01OC43LTEyOS0xMzYuNC0xMjktMjE5LjUgMC04MS40IDQ1LjgtMTU5IDEyOS0yMTcuNyA1LjctNCAxMi42LTUuOSAxOS42LTUuMyA2LjkgLjYgMTMuNCAzLjYgMTguMyA4LjVMMzU0LjEgMjIzLjNjNS42IDUuNSA4LjcgMTMgOC43IDIwLjkgLjEgNi45LTMgMTUuMy04LjYgMjAuOS01LjUgNS41LTEzIDguNy0yMC45IDguNy03LjggMC0xNi4yLTMuMS0yMC45LTguNkwxNDcuMyAxMDAuN2MtNTQuNiA0NS4yLTg0LjMgOTkuMi04NC4zIDE1NC40IDAgNjMuNCAzNi45IDEyNCAxMDMuMSAxNzEuMSA3LjMgNC42IDExLjYgMTEuNCAxMyAxOS4yIDEuMyA3LjctLjUgMTUuNy01IDIyLjFzLTExLjQgMTAuNy0xOS4yIDEyLjF6Il19LFZ1ZT17cHJlZml4OiJmYWIiLGljb25OYW1lOiJ3b2R1IixpY29uOls2NDAsNTEyLFtdLCJlMDg4IiwiTTE3OC40IDMzOS43bC0zNy4zIDAtMjguOS0xMTYuMi0uNSAwLTI4LjUgMTE2LjItMzggMC00NS4yLTE3MC44IDM3LjUgMCAyNyAxMTYuMiAuNSAwIDI5LjctMTE2LjIgMzUuMiAwIDI5LjIgMTE3LjcgLjUgMCAyOC0xMTcuNyAzNi44IDAtNDUuOSAxNzAuOHptOTMtMTI3YzM5IDAgNjQuMSAyNS44IDY0LjEgNjUuMyAwIDM5LjItMjUuMSA2NS02NC4xIDY1LTM4LjcgMC02My45LTI1LjgtNjMuOS02NSAwLTM5LjUgMjUuMS02NS4zIDYzLjktNjUuM3ptMCAxMDQuOGMyMy4yIDAgMzAuMS0xOS45IDMwLjEtMzkuNSAwLTE5LjktNi45LTM5LjctMzAuMS0zOS43LTI3LjcgMC0yOS45IDE5LjktMjkuOSAzOS43IDAgMTkuNiA2LjkgMzkuNSAyOS45IDM5LjV6bTE2My43IDYuNWwtLjUgMGMtNy45IDEzLjQtMjEuOCAxOS4xLTM3LjUgMTkuMS0zNy4zIDAtNTUuNS0zMi01NS41LTY2LjIgMC0zMy4yIDE4LjQtNjQuMSA1NC44LTY0LjEgMTQuNiAwIDI4LjkgNi4yIDM2LjggMTguNGwuMiAwIDAtNjIuMiAzNCAwIDAgMTcwLjgtMzIuMyAwIDAtMTUuOHptLTI5LjctODUuNmMtMjIuMiAwLTI5LjkgMTkuMS0yOS45IDM5LjUgMCAxOS40IDguOCAzOS43IDI5LjkgMzkuNyAyMi41IDAgMjkuMi0xOS42IDI5LjItMzkuOSAwLTIwLjEtNy4yLTM5LjItMjkuMi0zOS4yek01OTMgMzM5LjdsLTMyLjMgMCAwLTE3LjItLjcgMGMtOC42IDEzLjktMjMuNCAyMC42LTM3LjggMjAuNi0zNi4xIDAtNDUuMi0yMC4zLTQ1LjItNTAuOWwwLTc2LjEgMzQgMCAwIDY5LjhjMCAyMC4zIDYgMzAuNCAyMS44IDMwLjQgMTguNCAwIDI2LjMtMTAuMyAyNi4zLTM1LjRsMC02NC44IDM0IDAgMCAxMjMuNnptOS41LTM2LjhsMzcuNSAwIDAgMzYuOC0zNy41IDAgMC0zNi44eiJdfSxDRT17cHJlZml4OiJmYWIiLGljb25OYW1lOiJzcXVhcmUtc3RlYW0iLGljb246WzQ0OCw1MTIsWyJzdGVhbS1zcXVhcmUiXSwiZjFiNyIsIk0xNjUuNiAzMDkuMWMxOC42IDcuNyAyNy4zIDI4LjkgMTkuNiA0Ny40cy0yOSAyNy4yLTQ3LjYgMTkuNGwtMjguNS0xMS44YzUgMTAuNiAxMy44IDE5LjQgMjUuNCAyNC4yIDI1LjIgMTAuNSA1NC4xLTEuNCA2NC42LTI2LjUgNS4xLTEyLjEgNS4xLTI1LjUgLjEtMzcuNy01LjEtMTIuMS0xNC41LTIxLjYtMjYuNy0yNi43LTEyLjEtNS0yNS00LjgtMzYuNC0uNWwyOS41IDEyLjJ6TTQ0OCA5NmMwLTM1LjMtMjguNy02NC02NC02NEw2NCAzMkMyOC43IDMyIDAgNjAuNyAwIDk2bDAgMTQ0LjcgMTE2LjYgNDguMWMxMi04LjIgMjYuMi0xMi4xIDQwLjctMTEuM2w1NS40LTgwLjIgMC0xLjFjMC00OC4yIDM5LjMtODcuNSA4Ny42LTg3LjVzODcuNiAzOS4zIDg3LjYgODcuNWMwIDQ5LjItNDAuOSA4OC43LTg5LjYgODcuNWwtNzkgNTYuM2MxLjYgMzguNS0yOS4xIDY4LjgtNjUuNyA2OC44LTMxLjggMC01OC41LTIyLjctNjQuNS01Mi43TDAgMzE5LjIgMCA0MTZjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMzIwIDBjMzUuMyAwIDY0LTI4LjcgNjQtNjRsMC0zMjB6TTI0MS45IDE5Ni4yYTU4LjQgNTguNCAwIDEgMCAxMTYuOCAwIDU4LjQgNTguNCAwIDEgMCAtMTE2LjggMHptMTAyLjQtLjFhNDMuOSA0My45IDAgMSAxIC04Ny44IDAgNDMuOSA0My45IDAgMSAxIDg3LjggMHoiXX0sanVlPUNFLFV1ZT17cHJlZml4OiJmYWIiLGljb25OYW1lOiJjcmVhdGl2ZS1jb21tb25zLW5jLWV1IixpY29uOls1MTIsNTEyLFtdLCJmNGU5IiwiTTI1NS43IDhDMTExLjYgOCA4IDEyNC44IDggMjU2IDggMzkyLjMgMTE5LjcgNTA0IDI1NS43IDUwNCAzODUuOSA1MDQgNTA0IDQwMy4xIDUwNCAyNTYgNTA0IDExNyAzOTYuNCA4IDI1NS43IDh6bS42IDQ1MC43Yy0xMTIgMC0yMDMuNi05Mi41LTIwMy42LTIwMi43IDAtMjMuMiAzLjctNDUuMiAxMC45LTY2bDY1LjcgMjkuMS00LjcgMCAwIDI5LjUgMjMuMyAwYzAgNi4yLS40IDMuMi0uNCAxOS41bC0yMi44IDAgMCAyOS41IDI3IDBjMTEuNCA2NyA2Ny4yIDEwMS4zIDEyNC42IDEwMS4zIDI2LjYgMCA1MC42LTcuOSA2NC44LTE1LjhsLTEwLTQ2LjFjLTguNyA0LjYtMjguMiAxMC44LTQ3LjMgMTAuOC0yOC4yIDAtNTguMS0xMC45LTY3LjMtNTAuMmw5MC4zIDAgMTI4LjMgNTYuOGMtMS41IDIuMS01Ni4yIDEwNC4zLTE3OC44IDEwNC4zek0yMzkuNiAyNjguMWwtLjUtLjQgLjkgLjQtLjQgMHptNzcuMi0xOS41bDMuNyAwIDAtMjkuNS03MC4zIDAtMjguNi0xMi42YzIuNS01LjUgNS40LTEwLjUgOC44LTE0LjMgMTIuOS0xNS44IDMxLjEtMjIuNCA1MS4xLTIyLjQgMTguMyAwIDM1LjMgNS40IDQ2LjEgMTBsMTEuNi00Ny4zYy0xNS02LjYtMzctMTIuNC02Mi4zLTEyLjQtMzkgMC03Mi4yIDE1LjgtOTUuOSA0Mi4zLTUuMyA2LjEtOS44IDEyLjktMTMuOSAyMC4xTDg1LjUgMTQ2LjRjNjQuNi05Ni44IDE1Ny43LTkzLjYgMTcwLjctOTMuNiAxMTMgMCAyMDMgOTAuMiAyMDMgMjAzLjQgMCAxOC43LTIuMSAzNi4zLTYuMyA1Mi45TDMxNi44IDI0OC42eiJdfSxXdWU9e3ByZWZpeDoiZmFiIixpY29uTmFtZToibnBtIixpY29uOls1NzYsNTEyLFtdLCJmM2Q0IiwiTTI4OCAyODhsLTMyIDAgMC02NCAzMiAwIDAgNjR6TTU3NiAxNjBsMCAxOTItMjg4IDAgMCAzMi0xMjggMCAwLTMyLTE2MCAwIDAtMTkyIDU3NiAwek0xNjAgMTkybC0xMjggMCAwIDEyOCA2NCAwIDAtOTYgMzIgMCAwIDk2IDMyIDAgMC0xMjh6bTE2MCAwbC0xMjggMCAwIDE2MCA2NCAwIDAtMzIgNjQgMCAwLTEyOHptMjI0IDBsLTE5MiAwIDAgMTI4IDY0IDAgMC05NiAzMiAwIDAgOTYgMzIgMCAwLTk2IDMyIDAgMCA5NiAzMiAwIDAtMTI4eiJdfSxHdWU9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiY2xvdWRzY2FsZSIsaWNvbjpbNDQ4LDUxMixbXSwiZjM4MyIsIk0zMTguMSAxNTRsLTkuNCA3LjZjLTIyLjUtMTkuMy01MS41LTMzLjYtODMuMy0zMy42LTcxLjYgMC0xMjkuNCA2MC44LTEyOS40IDEzMi4zIDAgNi42IC40IDEzLjEgMS40IDE5LjQtMi01NiA0MS44LTk3LjQgOTIuNi05Ny40IDI0LjIgMCA0Ni4yIDkuNCA2Mi42IDI0LjdsLTI1LjIgMjAuNGMtOC4zLS45LTE2LjggMS44LTIzLjEgOC4xLTExLjEgMTEtMTEuMSAyOC45IDAgNDAgMTEuMSAxMSAyOC45IDExIDQwIDAgNi4zLTYuMyA5LTE0LjkgOC4xLTIzLjFsNzUuMi04OC44YzYuMy02LjUtMy4zLTE1LjktOS41LTkuNnpNMjEzLjcgMjQ2LjVhMTQgMTQgMCAxIDEgMjAuNiAxOSAxNCAxNCAwIDEgMSAtMjAuNi0xOXpNMjI0IDMyYTIyNCAyMjQgMCAxIDAgMCA0NDggMjI0IDIyNCAwIDEgMCAwLTQ0OHptMCA2NGExNjAgMTYwIDAgMSAxIDAgMzIwIDE2MCAxNjAgMCAxIDEgMC0zMjB6Il19LFl1ZT17cHJlZml4OiJmYWIiLGljb25OYW1lOiJ0aGVtZWNvIixpY29uOls0NDgsNTEyLFtdLCJmNWM2IiwiTTIwMi45IDguNGM5LjktNS43IDI2LTUuOCAzNi0uMkw0MzAgMTE1LjljMTAgNS42IDE4IDE5LjQgMTggMzAuOUw0NDggMzY0YzAgMTEuNC04LjEgMjUuMy0xOCAzMUwyMzguOCA1MDMuN2MtOS45IDUuNy0yNiA1LjYtMzUuOC0uMkwxNy45IDM5NS4xQzggMzg5LjMgMCAzNzUuNCAwIDM2NEwwIDE0Ni43YzAtMTEuNCA4LTI1LjQgMTcuOS0zMS4xTDIwMi45IDguNHpNMTI1LjUgMjA4LjNjLTE1LjkgMC0zMS45IC4xLTQ3LjggLjFsMCAxMDEuNCAxOS4xIDAgMC0yOS44IDI4LjcgMGM0OS43IDAgNDkuNi03MS43IDAtNzEuN3pNMjY1LjYgMzA4LjZsLTMwLjctMzQuNmMzNy03LjUgMzQuOC02NS4yLTEwLjktNjUuNS0xNi4xIDAtMzIuMi0uMS00OC4zLS4xbDAgMTAxLjYgMTkuMSAwIDAtMzMuOSAxOC40IDAgMjkuNiAzMy45IDIyLjggMCAwLTEuM3ptLTQxLjYtODIuM2MyMy4zIDAgMjMuMyAzMi41IDAgMzIuNWwtMjkuMSAwIDAtMzIuNSAyOS4xIDB6bS05NS42LTEuNmMyMS4yIDAgMjEuMSAzOC45IDAgMzguOWwtMzIuMyAwIDAtMzguOCAzMi4zIDB6bTE5Mi42LTE4LjJjLTY4LjUgMC03MSAxMDUuOCAwIDEwNS44IDY5LjUgMCA2OS40LTEwNS44IDAtMTA1Ljh6bTAgMTcuNGM0NC4xIDAgNDQuOCA3MC45IDAgNzAuOXMtNDQuNC03MC45IDAtNzAuOXoiXX0sWnVlPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6Imdvb2dsZS1wbGF5IixpY29uOls0NDgsNTEyLFtdLCJmM2FiIiwiTTI5My42IDIzNC4zTDcyLjkgMTMgMzUzLjcgMTc0LjIgMjkzLjYgMjM0LjN6TTE1LjMgMEMyLjMgNi44LTYuNCAxOS4yLTYuNCAzNS4zbDAgNDQxLjNjMCAxNi4xIDguNyAyOC41IDIxLjcgMzUuM0wyNzEuOSAyNTUuOSAxNS4zIDB6TTQ0MC41IDIyNS42bC01OC45LTM0LjEtNjUuNyA2NC41IDY1LjcgNjQuNSA2MC4xLTM0LjFjMTgtMTQuMyAxOC00Ni41LTEuMi02MC44ek03Mi45IDQ5OUwzNTMuNyAzMzcuOCAyOTMuNiAyNzcuNyA3Mi45IDQ5OXoiXX0sWHVlPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImtvcnZ1ZSIsaWNvbjpbNDQ4LDUxMixbXSwiZjQyZiIsIk0zODcuNiAzNGwtMzI3IDBDMjcuOSAzNCAxLjEgNjAuOCAxLjEgOTMuNWwwIDMyNy4xYzAgMzIuNiAyNi44IDU5LjQgNTkuNSA1OS40bDMyNy4xIDBjMzMgMCA1OS41LTI2LjggNTkuNS01OS41bDAtMzI3QzQ0Ny4xIDYwLjggNDIwLjMgMzQgMzg3LjYgMzR6TTg4LjIgMTIwLjhsOTYgMCAwIDExNiA2MS44LTExNiAxMTAuOSAwLTgxLjIgMTMyLTE4Ny41IDAgMC0xMzJ6TTI1MCAzOTIuOWwtNjUuNy0xMTMuNiAwIDExMy42LTk2IDAgMC0xMzAuOCAxOTEuNSAwIDg4LjYgMTMwLjgtMTE4LjQgMHoiXX0sS3VlPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6InczYyIsaWNvbjpbNjQwLDUxMixbXSwiZTdkZSIsIk0xMDUuMiAzMDUuM2wzMC45LTEwNC43YzcuOS0yNi43IDguNi00MC42IC4yLTY4LjhsLTEwLjEtMzMuOSA0NC4xIDAgNjEgMjA3LjQgNDUuNy0xNTUuNWMxMy4zLTQ1LjMgMjEuMS01MS45IDU5LjQtNTEuOWwxMzIuOCAwYy0yNC4yIDQyLjktNDkuMyA4NS4yLTczLjkgMTI3LjkgMi42IC44IDUuMiAxLjggNy43IDIuOCAxNy4zIDcuMSAzMi4yIDE5LjQgNDIgMzUuNSAxMS4yIDE4LjUgMTYuOCA0MC4yIDE2LjggNjUuMiAwIDMwLjgtOC4yIDU2LjgtMjQuNiA3Ny44LTE0LjUgMTguNi0zNSAyOS41LTU4LjIgMzEuMiAwIC4zLTUuMiAuNC01LjggLjQtMzkuNy0uMS03MC44LTMyLjEtODMuMS02OC43bDQyLjkgMGMzLjUgNS4zIDYuOCAxMC43IDExLjIgMTUuNSA4LjEgNy4zIDE4LjUgMTAuOSAyOS4zIDExLjEgMTMuMSAwIDIzLjMtOS4xIDI5LjktMTkuOCA4LjEtMTMuMiAxMi4yLTI5IDEyLjItNDcuNSAwLTEzLjEtMS44LTI0LjMtNS4zLTMzLjYtLjktMi4zLTEuOS00LjUtMy02LjYtMS40LTIuNi0yLjktNS4xLTQuNy03LjQtMTAuMS0xMy4yLTI5LjMtMTkuNy00Ny41LTE5LjhsLTI4LjIgMCA3MC4zLTEyMi0zNS42IDBjLTQzLjEgMC0zNS45LTUuNC01MC40IDQzLjNsLTc1LjcgMjU1LjMtNC4yIDAtNjMuMS0yMTEuMS02My4xIDIxMS4xLTQuMiAwLTEwMS0zNDAuNyA0NC4yIDAgNjEgMjA3LjR6TTQ2NyAzMzUuN2MuMyAuNiAxMS4zIDIwLjMgMTguMyAzMC4zIDcuMSAxMC4xIDE5LjggMjAuOSAyNC44IDI0LjZzMTkuMSAxMi41IDM0LjMgMTMuOWMxNS4yIDEuNSAyMy4zIC4yIDM4LjctNi42IDE1LjQtNi44IDI3LjktMjAuNCAzNC45LTI4LjEgNi45LTcuNiAxNy45LTI3LjMgMTguMi0yNy43bDMuMyAxNi44YzEuNyA5LTEgMjMuNy00LjEgMzAtNC4zIDguNi03LjYgMTMuNS0xNCAyMC4zLTYuMSA2LjUtMTYuNyAxMy41LTIxLjMgMTYuNC00LjYgMi45LTIzLjEgMTUuMS01MC4xIDEwLjNzLTQ0LjctMjUuOS01My45LTM4LjJjLTkuOC0xMy4yLTE2LjctMjguMy0xOS0zMy4yLTMuOC04LjQtOS45LTI4LjItMTAuMS0yOC44em0xNjkuNy0yMThjMy4zIDIwLjMtLjEgMjguNy05LjEgNDZsLTEyLjcgMjQuMmMtLjMtLjYtMTAtMjAuNy0yNS45LTMxLjktMTMuNi05LjYtMjIuNS0xMS43LTM2LjMtOC44LTE3LjggMy43LTM4IDI1LTQ2LjggNTEuMi0xMC41IDMxLjQtMTAuNyA0Ni42LTExIDYwLjYtLjYgMjIuNCAyLjkgMzUuNiAyLjkgMzUuNnMtMTUuNC0yOC41LTE1LjItNzAuMWMuMS0yOS43IDQuOC01Ni43IDE4LjUtODMuMyAxMi4xLTIzLjQgMzAuMS0zNy40IDQ2LjEtMzkuMSAxNi41LTEuNyAyOS42IDYuMyAzOS43IDE0LjkgMTAuNiA5IDIxLjMgMjguOCAyMS4zIDI4LjhsMjQuOS00OS44IDMuNiAyMS44eiJdfSxRdWU9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiZ3JhdiIsaWNvbjpbNTEyLDUxMixbXSwiZjJkNiIsIk0zMDIuNiAyMTAuNmM0LjUgNC41IDQuNSAxMi4zIDAgMTYuOGwtMTAgMTBjLTQuNSA0LjktMTIuMyA0LjktMTcuMSAwbC0xMC44LTEwLjhjLTQuNS00LjktNC41LTEyLjMgMC0xNy4xbDEwLTEwYzQuNS00LjUgMTIuMy00LjUgMTcuMSAwbDEwLjggMTEuMXptLTMxLjItMjAuM2E3LjcgNy43IDAgMSAwIC0xMC42LTExIDcuNyA3LjcgMCAxIDAgMTAuNiAxMXptLTI2LjggNS41YTcuNSA3LjUgMCAxIDAgMTAuNyAxMC41IDcuNSA3LjUgMCAxIDAgLTEwLjctMTAuNXpNMzE5LjQgMTgyYy0yMC41LTE0LjktMzQuOS00NC42LTEyLjMtNzAuMyAyMi4zLTI1LjcgNDItMTcuOCA2MS43IC44IDEyLjMgMTEuNyAzMC4yIDI1LjcgMTcuOCA0OS44LTEyLjkgMjQuMy00Ni42IDM0LjMtNjcuMiAxOS43em00OS4yLTQ1LjljLTkuMi0xMC4zLTI0LjEgNy4xLTE2IDE2LjYgNy42IDkuMyAzMy4xIDIuNSAxNi0xNi42ek0wIDI1NmEyNTYgMjU2IDAgMSAxIDUxMiAwIDI1NiAyNTYgMCAxIDEgLTUxMiAwem00NDMuNyA0NGMyLjYtMTYuNi0yMC45LTE3LjEtMjYtMjYuNS0xNC0yNC45LTI4LjYtMzgtNTYuMy0zMS40IDEyLTguMyAyNC4zLTYuMyAyNC4zLTYuMyAuMy02LjYgMC0xMy40LTkuNy0yNS43IDQtMTIuOSAuMy0yMy4xIC4zLTIzLjEgMTYtOC45IDI3LjctMjUuMiAzMC00NC42IDMuNy0zMi0xOS40LTYxLjEtNTEuNC02NC44LTIyLjgtMi42LTQ1LjEgNy45LTU2LjEgMjYuNS0yMy45IDQxLjQgMS40IDczLjIgMjMuMSA4NC0xNC45LTEuNC0zNS40LTEyLjMtNDEuNC0zNS40LTYuOC0yNi41IDIuOS01MS40IDkuMi02My40IDAgMC00LjUtNi04LjMtOS4yIDAgMC0xNC4yIDAtMjUuNCA1LjUgMTIuMy0xNS43IDI2LTE0LjkgMjYtMTQuOSAwLTYuNi0uNi0xNS40LTMuNy0yMi4zLTUuNi0xMS40LTI0LjYtMTMuMy0zMi43IDIuOSAuMS0uMiAuMy0uNCAuNC0uNS01LjIgMTIuMy0xLjEgNTcuNyAxNy40IDkwLTIuNiAxLjQtOS40IDYuMy0xMy40IDEwLjMtMjIuMyAxMC01OCA2Mi4yLTU4IDYyLjItMjkuMSAxMS4xLTc5LjcgNTIuNS03Mi45IDgyLjMgLjMgMy4xIDEuNCA1LjcgMy4xIDcuNy0yLjkgMi4zLTUuNyA1LjItOC42IDguNi0xMi4zIDE0LjItNS41IDM2LjMgMTguMyAyNS4yIDE2LjMtNy40IDMwLjYtMjAuOSAzNy41LTMxLjQgMCAwLTUuNy01LjItMTYuOC00LjUgMjguNi02LjggMzUuNC05LjcgNDcuNy05LjQgOC4zIDQgOC4zLTM1LjQgOC4zLTM1LjQgMC0xNS4yLTIuMy0zMi0xMS41LTQyLjggMTIuOSAxMi42IDMwIDMzLjggMjguOSA2Mi42LS44IDE4LjktMTUuNyAyMy43LTE1LjcgMjMuNy05LjQgMTcuMS00NC42IDY4LTMxLjQgMTA5LjQgMCAwLTEwLTE1LjQtMTAuNS0yMi44LTE4IDIwLTQ4IDU0LTI1LjQgNjYuNiAyNy41IDE1LjIgMTEyLjMtOTEuNSAxMzAuMy0xNDYuOSAzNS43LTIxLjUgNTcuMi00OC44IDY2LTY3LjEgMjIuNyA0NC45IDk4LjQgOTcuNSAxMDQuNCA2MC45eiJdfSxKdWU9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiYXdzIixpY29uOls2NDAsNTEyLFtdLCJmMzc1IiwiTTE4MC40IDIwM2MtLjcgMjIuNiAxMC42IDMyLjcgMTAuOSAzOS0uMSAxLjMtLjYgMi41LTEuMyAzLjZzLTEuNyAyLTIuOCAyLjZsLTEyLjggOWMtMS43IDEuMi0zLjYgMS44LTUuNiAxLjktLjQgMC04LjIgMS44LTIwLjUtMjUuNi03LjUgOS40LTE3IDE2LjktMjcuOSAyMnMtMjIuNyA3LjctMzQuNyA3LjVjLTE2LjMgLjktNjAuNC05LjItNTguMS01Ni4yLTEuNi0zOC4zIDM0LjEtNjIuMSA3MC45LTYwIDcuMSAwIDIxLjYgLjQgNDcgNi4zbDAtMTUuNmMyLjctMjYuNS0xNC43LTQ3LTQ0LjgtNDMuOS0yLjQgMC0xOS40LS41LTQ1LjggMTAuMS03LjQgMy40LTguMyAyLjgtMTAuOCAyLjgtNy40IDAtNC40LTIxLjUtMi45LTI0LjIgNS4yLTYuNCAzNS45LTE4LjQgNjUuOS0xOC4yIDIwLjEtMS44IDQwLjEgNC40IDU1LjcgMTcuMyA2LjMgNy4xIDExLjIgMTUuNCAxNC4yIDI0LjRzNC4yIDE4LjUgMy41IDI4bDAgNjkuM3pNOTQgMjM1LjRjMzIuNC0uNSA0Ni4yLTIwIDQ5LjMtMzAuNSAyLjUtMTAuMSAyLjEtMTYuNCAyLjEtMjcuNC05LjctMi4zLTIzLjYtNC45LTM5LjYtNC45LTE1LjItMS4xLTQyLjggNS42LTQxLjcgMzIuMy0xLjIgMTYuOCAxMS4xIDMxLjQgMzAgMzAuNXptMTcwLjkgMjMuMWMtNy45IC43LTExLjUtNC45LTEyLjctMTAuNEwyMDIuNCA4My40Yy0xLTIuOC0xLjYtNS42LTEuOS04LjYtLjItMS4yIC4xLTIuNCAuOC0zLjRzMS44LTEuNiAzLTEuOGMuMiAwLTIuMSAwIDIyLjIgMCA4LjgtLjkgMTEuNiA2IDEyLjYgMTAuNEwyNzQuOSAyMjAuOCAzMDguMSA4MGMuNS0zLjIgMi45LTExLjEgMTIuOC0xMC4ybDE3LjIgMGMyLjItLjIgMTEuMS0uNSAxMi43IDEwLjRMMzg0LjEgMjIyLjcgNDIxIDgwLjFjLjUtMi4yIDIuNy0xMS40IDEyLjctMTAuNGwxOS43IDBjLjktLjEgNi4yLS44IDUuMyA4LjYtLjQgMS44IDMuNC0xMC43LTUyLjggMTY5LjktMS4xIDUuNS00LjggMTEuMS0xMi43IDEwLjRsLTE4LjcgMGMtMTAuOSAxLjItMTIuNS05LjctMTIuNy0xMC43bC0zMy4yLTEzNy4xLTMyLjggMTM3Yy0uMiAxLjEtMS43IDExLjktMTIuNyAxMC43bC0xOC4zIDAgMCAwem0yNzMuNSA1LjZjLTUuOSAwLTMzLjktLjMtNTcuNC0xMi4zLTIuMy0xLTQuMy0yLjYtNS43LTQuOHMtMi4xLTQuNi0yLjEtNy4xbDAtMTAuN2MwLTguNSA2LjItNi45IDguOC01LjkgMTAgNC4xIDE2LjUgNy4xIDI4LjggOS42IDM2LjcgNy41IDUyLjgtMi4zIDU2LjctNC41IDEzLjItNy44IDE0LjItMjUuNyA1LjMtMzQuOS0xMC41LTguOC0xNS41LTkuMS01My4xLTIxLTQuNi0xLjMtNDMuNy0xMy42LTQzLjgtNTIuNC0uNi0yOC4yIDI1LTU2LjIgNjkuNS01NiAxMi43IDAgNDYuNCA0LjEgNTUuNiAxNS42IDEuNCAyLjEgMiA0LjYgMS45IDdsMCAxMC4xYzAgNC40LTEuNiA2LjctNC45IDYuNy03LjctLjktMjEuNC0xMS4yLTQ5LjItMTAuOC02LjktLjQtMzkuOSAuOS0zOC40IDI1LS40IDE5IDI2LjYgMjYuMSAyOS43IDI2LjkgMzYuNSAxMSA0OC42IDEyLjggNjMuMSAyOS42IDE3LjEgMjIuMiA3LjkgNDguMyA0LjMgNTUuNC0xOS4xIDM3LjUtNjguNCAzNC40LTY5LjMgMzQuNHptNDAuMiAxMDQuOWMtNzAgNTEuNy0xNzEuNyA3OS4yLTI1OC41IDc5LjItMTE3LjEgLjgtMjMwLjMtNDIuMy0zMTcuMy0xMjAuNy02LjUtNS45LS44LTE0IDcuMi05LjUgOTYuNSA1NS4yIDIwNS43IDg0LjIgMzE2LjkgODQuMSA4My0uNCAxNjUuMS0xNy4zIDI0MS42LTQ5LjUgMTEuOC01IDIxLjggNy44IDEwLjEgMTYuNHptMjkuMi0zMy4zYy05LTExLjUtNTkuMy01LjQtODEuOC0yLjctNi44IC44LTcuOS01LjEtMS44LTkuNSA0MC4xLTI4LjIgMTA1LjktMjAuMSAxMTMuNC0xMC42IDcuNSA5LjUtMi4xIDc1LjQtMzkuNiAxMDYuOS01LjggNC45LTExLjMgMi4zLTguNy00LjEgOC40LTIxLjMgMjcuNC02OC41IDE4LjQtODB6Il19LGVmZT17cHJlZml4OiJmYWIiLGljb25OYW1lOiJnbGlkZS1nIixpY29uOls0NDgsNTEyLFtdLCJmMmE2IiwiTTQwNy4xIDIxMS4yYy0zLjUtMS40LTExLjYtMy44LTE1LjQtMy44LTM3LjEgMC02Mi4yIDE2LjgtOTMuNSAzNC41bC0uOS0uOWM3LTQ3LjMgMjMuNS05MS45IDIzLjUtMTQwLjQgMC03MS41LTM4LjItMTAwLjYtMTA4LjQtMTAwLjYtMTE1LjEgMC0xNzMuNCAxMTMuNy0xNzMuNCAxOTguNCAwIDg3LjkgNTEuMyAxMzYuNiAxMzguNiAxMzYuNiAxMiAwIDExLTEgMTEgMy44LTE2LjkgMTI4LjktOTAuOCAxMzMuMS05MC44IDk0LjYgMC0zOS4yIDQ1LTU4LjYgNDUuNS02MS0uMy0xMi4yLTQ3LTI3LjYtNTguOS0yNy42LTMzLjkgLjEtNTIuNCA1MS4yLTUyLjQgNzkuMyAwIDUxLjkgMzIuOCA4Ny45IDg1LjUgODcuOSA3Ny40IDAgMTM0LTc3LjggMTUxLjQtMTQ1LjQgMTUuMS02MC41IDExLjItNjMuMyAxOS43LTY3LjYgMzIuMi0xNi4yIDU3LjUtMjcgOTMuOC0yNyAxNy44IDAgMzAuNSAzLjcgNTguOSA4LjQgMi45IDAgNi43LTIuOSA2LjctNS44IDAtOC0zMy40LTYwLjUtNDAuOS02My40ek0yMzEuOCAxMjYuOGMtOS4zIDQ0LjctMTguNiA4OS42LTI3LjggMTM0LjMtMi4zIDEwLjItMTMuMyA3LjgtMjIgNy44LTM4LjMgMC00OS00MS44LTQ5LTczLjEgMC00NyAxOC0xMDkuMyA2MS44LTEzMy40IDctNC4xIDE0LjgtNi43IDIyLjYtNi43IDE4LjYgMCAyMCAxMy4zIDIwIDI4LjctLjEgMTQuMy0yLjcgMjguNS01LjYgNDIuNHoiXX0sdGZlPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImpzZmlkZGxlIixpY29uOls1NzYsNTEyLFtdLCJmMWNjIiwiTTUxMS4xIDIzNy41Yy00LjctMi42LTUuNy01LjctNi40LTEwLjgtMi40LTE2LjUtMy41LTMzLjYtOS4xLTQ5LjEtMzUuOS0xMDAtMTU0LTE0My40LTI0Ni44LTkxLjYtMjcuNCAxNS4yLTQ5IDM2LjQtNjUuNSA2My45LTMuMi0xLjUtNS41LTIuNy03LjgtMy43LTMwLjEtMTIuNC01OS0xMC4xLTg1LjMgOS4yLTI1LjUgMTguNy0zNi40IDQ0LjUtMzIuNyA3Ni40IC40IDMtMiA3LjYtNC41IDkuNS0zOS43IDMwLTU2IDc4LjEtNDEuOSAxMjQuNiAxMy44IDQ1LjYgNTcuNSA3OS44IDEwNS42IDgxLjQgMzAuMyAxIDYwLjYgLjUgOTEgLjUgODQgMCAxNjguMSAuNSAyNTIuMS0uNSA1Mi43LS42IDk2LjEtMzYuOSAxMDguMi04Ny4zIDExLjUtNDguMS0xMS4xLTk3LjMtNTYuOC0xMjIuNnptMjEuMSAxNTYuOWMtMTguMiAyMi40LTQyLjMgMzUuMy03MS4zIDM1LjctNTYuOSAuOC0xMTMuOCAuMi0xNzAuNyAuMiAwIC43LTE2MyAuMi0xNjMuNyAuMi00My45LS4zLTc2LjctMTkuOC05NS4yLTYwLTE4LjktNDEuMi00LTkwLjggMzQuMi0xMTYuMSA5LjItNi4xIDEyLjUtMTEuNiAxMC4xLTIzLjEtNS41LTI2LjQgNC41LTQ4IDI2LjQtNjMgMjMtMTUuNyA0Ny40LTE2LjEgNzItMy4xIDEwLjMgNS40IDE0LjYgMTEuNiAyMi4yLTIuNSAxNC4yLTI2LjQgMzQuNi00Ni43IDYwLjctNjEuMyA5Ny41LTU0LjQgMjI4LjQgNy42IDIzMC4yIDEzMi43IC4xIDguMiAyLjQgMTIuNCA5LjggMTUuOSA1Ny42IDI2LjggNzQuNSA5Ni4xIDM1LjEgMTQ0LjV6bS04Ny44LTgwLjVjLTUuOCAzMS4yLTM0LjYgNTUuMS02Ni43IDU1LjEtMTcgMC0zMi4xLTYuNS00NC4xLTE3LjctMjcuNy0yNS43LTcxLjEtNzUtOTUuOS05My40LTIwLjEtMTQuOS00Mi0xMi4zLTYwLjMgMy44LTUwIDQ0LjEgMTUuOSAxMjEuOCA2Ny4xIDc3LjIgNC41LTQgNy44LTkuNSAxMi43LTEyLjggOC4yLTUuNSAyMC44LS45IDEzLjIgMTAuNi0xNy40IDI2LjMtNDkuMyAzOC4yLTc4LjkgMjkuMy0yOC45LTguNy00OC44LTM2LTQ4LjYtNzAuMiAxLjItMjIuNSAxMi40LTQzLjEgMzUuNC01NiAyMi42LTEyLjYgNDYuNC0xMy4xIDY3IDIuNSA1MC44IDM4LjUgNzUuNiA4MS43IDEwNy4zIDEwMS4yIDI0LjYgMTUuMSA1NC4zIDcuNCA2OC44LTE3LjUgMjguOC00OS4yLTM0LjYtMTA1LTc4LjktNjMuNS00IDMuNy02LjkgOC45LTExLjQgMTEuNy0xMSA2LjgtMTcuMy00LjEtMTIuOC0xMC40IDIwLjctMjguNiA1MC41LTQwLjQgODMuMy0yOC4yIDMxLjQgMTEuNyA0OS4xIDQ0LjQgNDIuOCA3OC4yeiJdfSxhZmU9e3ByZWZpeDoiZmFiIixpY29uTmFtZToia2V5YmFzZSIsaWNvbjpbNDQ4LDUxMixbXSwiZjRmNSIsIk0yODYuMiA0MTlhMTggMTggMCAxIDAgMCAzNiAxOCAxOCAwIDEgMCAwLTM2ek0zOTguMSAyNzEuNGMtOS41LTE0LjYtMzkuNC01Mi40LTg3LjMtNzMuNy02LjEtMi43LTEyLjItNS4xLTE4LjQtNy4zIDQuMS05LjkgNi0yMC42IDUuOC0zMS40cy0yLjctMjEuMy03LjItMzEuMS0xMC45LTE4LjUtMTguOS0yNS43LTE3LjQtMTIuNi0yNy42LTE2Yy0xMi40LTQuMS0yMy4zLTYtMzIuNC01LjgtLjYtMi0xLjktMTEgOS40LTM1bC0yMi45LTEzLjUtNS41IDcuNmMtOC43IDEyLjEtMTYuOSAyMy42LTI0LjMgMzQuOS0yLjctLjYtNS41LTEuMS04LjMtMS4yLTQxLjUtMi40LTM5LTIuMy00MS4xLTIuMy01MC42IDAtNTAuOCA1Mi4xLTUwLjggNDUuOWwtMi40IDM2LjdjLTEuNiAyNyAxOS44IDUwLjIgNDcuNiA1MS44bDguOSAuNUMxMDYgMjE1LjUgOTAuNCAyMjcuNSA3Ni42IDI0MS40IDE0IDMwNC43IDE0IDM3NCAxNCA0MjkuOGwwIDMzLjYgMjMuMy0yOS44YzMuMSAxMy4xIDggMjUuOCAxNC42IDM3LjYgNS44IDEwLjEgMTQuOSA5LjQgMTkuNiA3LjMgNC4yLTEuOSAxMC02LjkgMy44LTIwLjEtOC0xNi44LTEzLjMtMzQuNy0xNS44LTUzLjFsNDYuOC01OS44LTI0LjcgNzQuMWM1OC4yLTQyLjQgMTU3LjQtNjEuOCAyMzYuMi0zOC42IDM0LjIgMTAuMSA2Ny40IC43IDg0LjctMjMuOCAuNy0xIDEuMi0yLjIgMS44LTMuMiAxLjggOS40IDIuNyAxOC45IDIuOCAyOC40IDAgMjMuMy0zLjcgNTIuOS0xNC45IDgxLjYtMi41IDYuNSAxLjggMTQuNSA4LjYgMTUuNyA3LjQgMS42IDE1LjMtMy4xIDE4LjQtMTEuMSA5LjYtMjUuNSAxNC42LTU0LjYgMTQuNi04Ni4yIDAtMzguNi0xMy03Ny41LTM1LjktMTEwLjl6TTE0Mi40IDEyOC42bC0xNS43LS45LTEuNCAyMS44IDEzLjEgLjhjLS42IDYuNS0uNSAxMy4xIC4zIDE5LjZsLTIyLjQtMS4zYy0xLjYtLjEtMy4yLS41LTQuNy0xLjFzLTIuOC0xLjYtMy45LTIuOC0xLjktMi42LTIuNS00LjEtLjgtMy4xLS43LTQuN0wxMDcgMTE5YzEtMTIuMiAxMy45LTExLjMgMTMuMy0xMS4zbDI5LjEgMS43Yy0yLjggNi4yLTUuMSAxMi42LTcgMTkuMnpNMjkwLjggMzAwLjhjLTIuMSAxLjYtNC44IDIuNC03LjUgMi4ycy01LjEtMS41LTYuOS0zLjVsLTkuNy0xMS41LTM0LjQgMjdjLTEuNiAxLjMtMy43IDEuOS01LjggMS43cy00LTEuMi01LjMtMi44bC0xNS44LTE4LjZjLTEuMi0xLjYtMS43LTMuNS0xLjUtNS40czEuMy0zLjcgMi44LTQuOWwzNC42LTI3LjItMTQuMS0xNi43LTE3LjEgMTMuNWMtMS42IDEuMi0zLjUgMS44LTUuNSAxLjZzLTMuOC0xLjEtNS4xLTIuNmMwIDAtMy43LTQuNC0zLjgtNC41LTEuMi0xLjYtMS43LTMuNS0xLjUtNS41czEuMy0zLjcgMi44LTQuOUwyMTQgMjI1LjJzLTE4LjUtMjItMTguNi0yMi4xYy0uOC0xLTEuMy0yLjEtMS43LTMuM3MtLjQtMi41LS4zLTMuNyAuNi0yLjQgMS4yLTMuNSAxLjUtMiAyLjUtMi44YzIuMS0xLjcgNC44LTIuNCA3LjQtMi4yczUuMSAxLjUgNi45IDMuNmw4MS4xIDk2LjNjLjggMSAxLjMgMi4xIDEuNyAzLjNzLjQgMi41IC4zIDMuNy0uNiAyLjUtMS4yIDMuNS0xLjUgMi4xLTIuNSAyLjh6TTE4Ny40IDQxOWExOCAxOCAwIDEgMCAwIDM2IDE4IDE4IDAgMSAwIDAtMzZ6Il19LGlmZT17cHJlZml4OiJmYWIiLGljb25OYW1lOiJsdW1vbi1kcm9wIixpY29uOls1NzYsNTEyLFtdLCJlN2UzIiwiTTQ4MCAzMmM1MyAwIDk2IDQzIDk2IDk2bDAgMjI0YzAgNTMtNDMgOTYtOTYgOTZMOTYgNDQ4Yy01MyAwLTk2LTQzLTk2LTk2TDAgMTI4QzAgNzUgNDMgMzIgOTYgMzJsMzg0IDB6TTMwMi40IDExNC43Yy05LjgtMTYuNC0yMC41LTE2LjQtMjkuNiAwbC02OC45IDExNGMtMTAuNyAxNS42LTE2LjQgMzIuOC0xNi40IDUyLjUgMCA1MC45IDQ0LjMgOTQuMyAxMDAuMSA5NC4zIDU1IDAgMTAwLjktNDMuNSAxMDAuOS05NC4zIDAtMTkuNy02LjYtMzcuOC0xNy4yLTUyLjVsLTY4LjktMTE0eiJdfSxyZmU9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiZm9yZ2VqbyIsaWNvbjpbMzIwLDUxMixbXSwiZTg2MCIsIk0yNjEuNSAxLjJjMzQgMCA2MS42IDI3LjYgNjEuNiA2MS42cy0yNy42IDYxLjYtNjEuNiA2MS42Yy0yMyAwLTQzLjEtMTIuNy01My43LTMxLjRsLTI4LjUgMGMtMjQgMC00NyA5LjUtNjQgMjYuNXMtMjYuNSA0MC0yNi41IDY0bDAgNDMuNWMyNi0xOS41IDU3LjctMzAuMiA5MC42LTMwLjJsMjguNSAwYzEwLjYtMTguNyAzMC42LTMxLjQgNTMuNy0zMS40IDM0IDAgNjEuNiAyNy42IDYxLjYgNjEuNnMtMjcuNiA2MS42LTYxLjYgNjEuNmMtMjMgMC00My4xLTEyLjctNTMuNy0zMS40bC0yOC41IDBjLTI0IDAtNDcgOS41LTY0IDI2LjVzLTI2LjUgNDAtMjYuNSA2NGwwIDQ3LjhjMTguNyAxMC42IDMxLjQgMzAuNiAzMS40IDUzLjYgMCAzNC0yNy42IDYxLjYtNjEuNiA2MS42Uy0zIDQ4My4yLTMgNDQ5LjJjMC0yMyAxMi43LTQzLjEgMzEuNC01My42bDAtMjEyYzAtNDAgMTUuOS03OC40IDQ0LjItMTA2LjdzNjYuNy00NC4yIDEwNi43LTQ0LjJsMjguNSAwYzEwLjYtMTguNyAzMC42LTMxLjQgNTMuNy0zMS40ek01OC42IDQyMy45Yy0xNCAwLTI1LjMgMTEuMy0yNS4zIDI1LjNzMTEuMyAyNS40IDI1LjMgMjUuNCAyNS40LTExLjQgMjUuNC0yNS40LTExLjQtMjUuMy0yNS40LTI1LjN6TTI2MS41IDIwMS43YTI1LjQgMjUuNCAwIDEgMCAwIDUwLjcgMjUuNCAyNS40IDAgMSAwIDAtNTAuN3ptMC0xNjQuMmEyNS40IDI1LjQgMCAxIDAgMCA1MC43IDI1LjQgMjUuNCAwIDEgMCAwLTUwLjd6Il19LHNmZT17cHJlZml4OiJmYWIiLGljb25OYW1lOiJwb3N0Z3Jlc3FsIixpY29uOls1MTIsNTEyLFtdLCJlODU4IiwiTTIxOS44IDE3MS4zYzMuOSAuNSAxMy4xIDIuNyAxMi4zIDguNS0uOCA1LjktOS4yIDkuMS0xNC4yIDguNC00LjctLjctMTMuMi02LjEtMTIuMy0xMi4xbC4zLTIuMWM0LjIgMCA4LjMtMy41IDEzLjktMi43em0xNjguMS0zLjRjMTAuOCAyLjYtMS4xIDEzLjUtNi44IDE0LjMtNC4zIC42LTEyLjEtMi4yLTEyLjgtNy40LTEtNy40IDE1LjctNy45IDE5LjctNi45em0tMjItMTQwLjhjMzUuNy0uMyA4MS4zIDkuNCAxMTQuMyA1MS43IDcuMiA5LjIgMTAgMjQgOS43IDQwLjktLjggNDkuNi0yNiAxMjkuNC03MC43IDE5Ny40IDQuNSAyLjkgMTcuNiA3LjQgNTEuMSAuNSA1LjYtMS4yIDEyLjctMi4yIDE3LjYgMS42IDE4LjIgMTMuOS0xOS42IDM1LjEtMjguNCAzOS4yLTEzLjIgNi4yLTM0LjggOS41LTUxLjIgOC43LTIuMS0uMi00LjMtLjItNi4zLS42LTUuMS0xLjEtNy40LTEtOC4zLS43LTEuMSAuMy0xLjQgMi45LTEuNiAzLjgtMi44IDI0LjktNy43IDY0LjctMTAuNyA4Mi0yLjggMTYuMy03LjcgMjkuMy0xNy4yIDM5LjItOS41IDkuOS0yMi44IDE1LjctNDAuNiAxOS41LTIyLjMgNC44LTM3LjktLjEtNDguNy05LjEtMTAuMy04LjctMTUuMi0yMC40LTE4LTI3LjQtMS44LTQuNS0zLTExLjUtNC0xOS44LTIuMy0xOS44LTMuMy01MC40LTMtODMuMy0yNC42IDIyLjEtNTUgMTcuMi02OC4yIDEzLjktMTAuNS0yLjYtMzMtMTYuMS0xNy41LTI4LjcgMTEuOS05LjcgMzAuMy01LjUgNDIuMi0xNSAyLjQtMS45IDExLjQtMTAuNiAxMS40LTEzLjUtMTAtLjMtMTkuNi0yLjktMjguMS03LjUtMTMuNSAxNC41LTI2LjQgMjkuNS0zOS4zIDQ0LjYtOC4zIDkuOS0xNy40IDE1LjgtMjcuNCAxNi4yLTkuOSAuNC0xOC43LTQuNi0yNi4xLTExLjgtNy4zLTcuMS0xNC4xLTE3LjItMjAuNC0yOS0xOS0zNS41LTMzLjItODYuMS00Mi4zLTEyNi40LTYtMjYuNy05LjYtNDkuMS0xMC4xLTU5LTIuMi00NC4zIDgtNzQuMSAyNi05My4yIDE3LjktMTkgNDIuNC0yNiA2Ni4xLTI3LjQgMzUuNi0yIDcxIDguNSA4Ni42IDEzLjhsNSAxLjhjMTUuOS0xMC44IDM2LjEtMTcuNCA2MS43LTE3IDEzLjIgLjIgMjUuNSAyLjIgMzYuNyA0LjIgMTguNi03LjEgMzkuOC05LjUgNTkuNC05Ljd6bS05NiAyMC41Yy0yNC43LS40LTQyLjkgNi41LTU2LjYgMTYuOC0uOCAuNi0xLjggMS0yLjggMS4yLTE0LjQgMTEuOC0yMy45IDI4LTMwLjMgNDQuOC03LjIgMTkuMS0xMCAzOC41LTExLjEgNTEuNSA3LjYtNC4zIDE3LjktOC43IDI4LjctMTEuMiAxMC41LTIuNCAyMi40LTMuMiAzMi43IC44IDEwLjkgNC4yIDE5IDEzLjMgMjIuMiAyOC4xIDcuNSAzNC43IDYuNyA1OC4yIDIuNyA3NS45LTQuOCAyMS0xNi44IDM5LjUtMjEuOSA2MC40IDMuNS0uOSA3LjEtLjYgOS44IC4xbDcuMiAyLjljNy43IDQuNCAxMi44IDEzIDE0IDIxLjcgMiA2IC4xIDE0LjMgMCAyMC42IDYuNyAxNi4zIDcuMiAzNi4xIDYuNyA1My4zLS43IDI1LTEgNDAuMiAzLjIgNTEuNyAyLjkgNy45IDQuNyAxNi40IDEwLjQgMjIuOCAyLjYgMyA2LjEgNS41IDEwLjkgNi44IDE4LjUgNS4xIDQ0LTQuNyA1Ni42LTE4LjIgNy43LTguMiAxMi4zLTE5LjMgMTMuNC0zMy45IDEuMS0xMy42IDQuMi0yNy42IDYuMy00MS4xbDIuOS04LjhjMS43LTE0LjggMy40LTI5LjYgNS00NC40LS40LTkuMSAuOS0xNi4xIDMuOS0yMS41IDMuMS01LjcgNy42LTguOSAxMS44LTEwLjggMS44LS44IDMuOS0xLjIgNS42LTItMS42LTIuNC0zLjYtNC42LTUuMy02LjgtOC4yLTEwLjQtMTMuMy0yMi4zLTE5LjctMzMuOC04LjUtMTUuMi0yMy44LTQyLjItMzAuMS02Ny41LTQuMS0xNi40LTQuOS0zNC41IDYtNDcgOS44LTExLjIgMjYuOS0xNS41IDUxLjktMTMtMy40LTEwLTExLjQtMjcuNS0yNC44LTQ0LjctMTgtMjMtNDUuNy00NS45LTg1LjctNTMuMS03LjMtLjktMTUuMi0xLjUtMjMuNi0xLjd6bS0zMi4yIDI4MmMtOCAuNy0xNS41IDE4LjItMjEuNyAyMy4xLTYuMiA0LjktMTQuNSA3LjYtMzAgMTAuNy00LjUgLjktNy43IDEuOS05LjcgMi44IDIyLjMgMTUuOCA1OC4zIDMuMiA3Mi42LTE2LjggMS43LTIuNCAyLjEtNiAuNS0xMC4yLTEuNy00LjUtNi40LTEwLjEtMTEuOS05LjZ6TTExNy42IDQ5LjJjLTIxLjYgMS4yLTQyIDcuNS01Ni40IDIyLjgtMTQuNCAxNS4yLTI0LjIgNDAuNi0yMi4xIDgyLjUgLjQgOC41IDMuOCAzMCA5LjggNTYuNiA4LjkgMzkuOCAyMy43IDkwLjMgNDAuNiAxMjIuMiA2IDExLjEgMTcuNCAzMyAzMi44IDMyLjMgNC40LS4yIDEwLjEtMi44IDE3LTExIDEyLjYtMTQuOCAyNS4yLTI5LjUgMzguNS00My43LTE3LjktMTUuNC0yOC41LTQwLjMtMjQuOC02Ny4yIDMuNC0yNC4zIC41LTQ4LjIgMS4yLTcyLjUgLjQtMTEuOSAyLjMtMzguNyAxMi42LTY1LjggNS45LTE1LjUgMTQuNS0zMS4zIDI3LjQtNDQuMi0xNi40LTUuNC00Ny4xLTEzLjUtNzYuNi0xMS45ek00MDUuMSAzMjguOWMtMy44IDEuMS02LjcgMi4yLTguNyA1LjgtMS4zIDIuNC0yLjUgNi43LTIuMiAxNC4yIDQuOCAzLjkgMTQuMSAzLjMgMTkuOCAzLjIgMTMuOS0uMiAyOS45LTMuMSAzOS4zLTcuNSA3LjktMy43IDE0LjctOC4zIDE5LTEyLjItMzguMiA3LjctNTUuNCAyLjEtNjMuMi00LjgtMS4zIC40LTIuOSAuOS0zLjkgMS4yek0yMjUuMyAxNjQuOWMtMTUuNC01LjktMzUuNCAxLjgtNDguOSA5LjQtMy42IDItNi41IDQtNy45IDUuMiAuNCA4LjggMi44IDM2LjEtMS40IDY2LjMtNS4xIDM2LjYgMjEuNyA2Ni42IDUyLjUgNjYuNyA1LjEtMjAuOCAxNy0zOS4yIDIxLjgtNjAuMSAzLjUtMTUuMyA0LjUtMzYuNi0yLjctNjkuNy0yLjMtMTAuNS03LjQtMTUuNC0xMy40LTE3Ljd6TTM3MC4xIDQyLjJjLTE1LjItLjItMjguOCAxLjctMzkuMiAzLjggMjYgMTEuOCA0NS42IDI5LjcgNTkuNiA0Ny42IDE3LjQgMjIuMiAyNi4zIDQ0LjEgMjkgNTUgLjcgMi43IDEuMyA1LjcgLjUgOC40IC42IDE4LjktNCAzMS4zLTQuNiA0OS4yLS40IDEyLjkgMi45IDI4LjEgMy43IDQ0LjcgLjggMTUuNy0xIDMyLjUtMTEuMiA0OS41IC44IDEgMS42IDIuMSAyLjQgMy4xIDI2LjgtNDIuMiA0Ni04OC42IDU2LjMtMTI4LjUgNS41LTIxLjQgOC40LTQwLjcgOC43LTU2LjEgLjItMTUuMi0yLTI1LjQtNS44LTMwLjQtMjguMy0zNi4xLTY2LjgtNDUuOC05OS4zLTQ2LjJ6bTM1LjYgMTE5LjVjLTI1LjMtMy4yLTM3LjMgMS41LTQyLjggNy43LTYgNi44LTYuOCAxOC41LTIuOSAzNC4xIDUuNyAyMi42IDIwLjEgNDguNiAyOC43IDY0IDMuNiA2LjQgNi40IDEzLjEgMTAgMTkuNCA1LjUtMTEuNyA2LjYtMjMuNSA2LTM1LjUtLjctMTUtNC4yLTMwLjMtMy43LTQ1LjhsLjQtNy40YzEuMi0xNC4zIDQuMS0yNC42IDQuMi0zNi41eiJdfSxuZmU9e3ByZWZpeDoiZmFiIixpY29uTmFtZToid2VlYmx5IixpY29uOls1MTIsNTEyLFtdLCJmNWNjIiwiTTQyNS4xIDY1LjhjLTM5LjkgMC03My4zIDI1LjctODMuNyA2NC4zLTE4LjItNTguMS02NS41LTY0LjMtODUtNjQuMy0xOS44IDAtNjYuOCA2LjMtODUuMyA2NC4zLTEwLjQtMzguNi00My40LTY0LjMtODMuNy02NC4zLTQ5IDAtODcuNSAzMy45LTg3LjUgNzcuMiAwIDI5IDQuMiAzMy4zIDc3LjIgMjMzLjUgMjIuNCA2MC42IDY3LjggNjkuNCA5Mi43IDY5LjQgMzkuMiAwIDcwLTE5LjUgODUuOS01NCAxNS45IDM0LjggNDYuNyA1NC4zIDg1LjkgNTQuMyAyNSAwIDcwLjQtOS4xIDkyLjctNjkuNyA3Ni42LTIwOC42IDc3LjUtMjA1LjYgNzcuNS0yMjcuMiAuNi00OC4zLTM2LTgzLjUtODYuOS04My41em0yNi4zIDExNC44TDM4NS45IDM1Ny4xYy03LjkgMjEuNS0yMS4yIDM3LjItNDYuMiAzNy4yLTIzLjQgMC0zNy40LTEyLjQtNDQtMzMuOWwtMzkuMy0xMTcuNC0xIDAtMzkuMyAxMTcuNGMtNyAyMS41LTIwLjkgMzMuNi00NCAzMy42LTI1IDAtMzguMy0xNS43LTQ2LjItMzcuMkw2MC45IDE4MS42Yy01LjQtMTQuOC03LjktMjMuOS03LjktMzQuNSAwLTE2LjMgMTUuOC0yOS40IDM4LjMtMjkuNCAxOC43IDAgMzIgMTEuOCAzNi4xIDI5LjFsNDQgMTM5LjggMSAwIDQ0LjctMTM2LjhjNi0xOS43IDE2LjUtMzIuMSAzOS0zMi4xczMyLjkgMTIuMSAzOSAzMi4xbDQ0LjcgMTM2LjggMSAwIDQ0LTEzOS44YzQuMS0xNy4yIDE3LjQtMjkuMSAzNi4xLTI5LjEgMjIuMiAwIDM4LjMgMTMuMyAzOC4zIDM1LjctLjMgNy45LTQuMSAxNi03LjYgMjcuMnoiXX0sb2ZlPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImRvY2tlciIsaWNvbjpbNjQwLDUxMixbXSwiZjM5NSIsIk0zNDkuOSAyMzYuM2wtNjYuMSAwIDAtNTkuNCA2Ni4xIDAgMCA1OS40em0wLTIwNC4zbC02Ni4xIDAgMCA2MC43IDY2LjEgMCAwLTYwLjd6bTc4LjIgMTQ0LjhsLTY2LjEgMCAwIDU5LjQgNjYuMSAwIDAtNTkuNHpNMjcxLjggMTA0LjdsLTY2LjEgMCAwIDYwLjEgNjYuMSAwIDAtNjAuMXptNzguMSAwbC02Ni4xIDAgMCA2MC4xIDY2LjEgMCAwLTYwLjF6bTI3Ni44IDEwMGMtMTQuNC05LjctNDcuNi0xMy4yLTczLjEtOC40LTMuMy0yNC0xNi43LTQ0LjktNDEuMS02My43bC0xNC05LjMtOS4zIDE0Yy0xOC40IDI3LjgtMjMuNCA3My42LTMuNyAxMDMuOC04LjcgNC43LTI1LjggMTEuMS00OC40IDEwLjdsLTQzNC43IDBjLTguNyA1MC44IDUuOCAxMTYuOCA0NCAxNjIuMSAzNy4xIDQzLjkgOTIuNyA2Ni4yIDE2NS40IDY2LjIgMTU3LjQgMCAyNzMuOS03Mi41IDMyOC40LTIwNC4yIDIxLjQgLjQgNjcuNiAuMSA5MS4zLTQ1LjIgMS41LTIuNSA2LjYtMTMuMiA4LjUtMTcuMWwtMTMuMy04Ljl6TTExNS42IDE3Ni44bC02NiAwIDAgNTkuNCA2Ni4xIDAgMC01OS40LS4xIDB6bTc4LjEgMGwtNjYuMSAwIDAgNTkuNCA2Ni4xIDAgMC01OS40em03OC4xIDBsLTY2LjEgMCAwIDU5LjQgNjYuMSAwIDAtNTkuNHptLTc4LjEtNzIuMWwtNjYuMSAwIDAgNjAuMSA2Ni4xIDAgMC02MC4xeiJdfSxsZmU9e3ByZWZpeDoiZmFiIixpY29uTmFtZToibWFnZW50byIsaWNvbjpbNDQ4LDUxMixbXSwiZjNjNCIsIk00NDUuOSAxMjcuOWwwIDI1Ni4xLTYzLjQgMzYuNSAwLTI1NS44LTE1OC41LTkxLjYtMTU4LjYgOTEuNiAuNCAyNTUuOS02My4zLTM2LjYgMC0yNTUuOSAyMjEuOS0xMjguMSAyMjEuNSAxMjcuOXpNMjU1LjggNDIwLjVsLTMxLjYgMTguNC0zMS44LTE4LjIgMC0yNTYtNjMuMyAzNi42IC4xIDI1NS45IDk0LjkgNTQuOSA5NS4xLTU0LjkgMC0yNTYtNjMuNC0zNi42IDAgMjU1Ljl6Il19LGNmZT17cHJlZml4OiJmYWIiLGljb25OYW1lOiJ0b3ItYnJvd3NlciIsaWNvbjpbNTEyLDUxMixbXSwiZTgzOCIsIk0yNTYuNSA0NjUuNGwwLTMxYzk4LjMtLjMgMTc3LjktODAgMTc3LjktMTc4LjRTMzU0LjggNzcuOSAyNTYuNSA3Ny42bDAtMzFDMzcyIDQ2LjggNDY1LjQgMTQwLjUgNDY1LjQgMjU2UzM3MiA0NjUuMiAyNTYuNSA0NjUuNHptMC0xMDguNmM1NS40LS4zIDEwMC4zLTQ1LjMgMTAwLjMtMTAwLjhTMzEyIDE1NS41IDI1Ni41IDE1NS4ybDAtMzFjNzIuNiAuMyAxMzEuNCA1OS4yIDEzMS40IDEzMS44UzMyOS4xIDM4Ny42IDI1Ni41IDM4Ny44bDAtMzF6bTAtMTU1LjFjMjkuNyAuMyA1My44IDI0LjUgNTMuOCA1NC4zcy0yNCA1NC01My44IDU0LjNsMC0xMDguNnpNMCAyNTZhMjU2IDI1NiAwIDEgMCA1MTIgMCAyNTYgMjU2IDAgMSAwIC01MTIgMHoiXX0sZGZlPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImdpdC1hbHQiLGljb246WzQ0OCw1MTIsW10sImY4NDEiLCJNNDM5LjYgMjM2LjFMMjQ0IDQwLjVDMjM4LjYgMzUgMjMxLjIgMzIgMjIzLjYgMzJzLTE1IDMtMjAuNCA4LjRsLTQwLjcgNDAuNiA1MS41IDUxLjVjMjcuMS05LjEgNTIuNyAxNi44IDQzLjQgNDMuN2w0OS43IDQ5LjdjMzQuMi0xMS44IDYxLjIgMzEgMzUuNSA1Ni43LTI2LjUgMjYuNS03MC4yLTIuOS01Ni0zNy4zbC00Ni4zLTQ2LjMgMCAxMjEuOWMyNS4zIDEyLjUgMjIuMyA0MS44IDkuMSA1NS02LjQgNi40LTE1LjIgMTAuMS0yNC4zIDEwLjFzLTE3LjgtMy42LTI0LjMtMTAuMWMtMTcuNi0xNy42LTExLjEtNDYuOSAxMS4yLTU2bDAtMTIzYy0yMC44LTguNS0yNC42LTMwLjctMTguNi00NUwxNDIuNiAxMDEgOC41IDIzNS4xQzMgMjQwLjYgMCAyNDcuOSAwIDI1NS41czMgMTUgOC41IDIwLjRMMjA0LjEgNDcxLjZjNS40IDUuNCAxMi43IDguNCAyMC40IDguNHMxNS0zIDIwLjQtOC40TDQzOS42IDI3Ni45YzUuNC01LjQgOC40LTEyLjggOC40LTIwLjRzLTMtMTUtOC40LTIwLjR6Il19LGhmZT17cHJlZml4OiJmYWIiLGljb25OYW1lOiJmaXJlZm94LWJyb3dzZXIiLGljb246WzUxMiw1MTIsW10sImUwMDciLCJNMTMwLjIgMTI3LjVsMCAwem0zNTEuNCA0NS40Yy0xMC42LTI1LjUtMzIuMS01My00OC45LTYxLjcgMTMuNyAyNi45IDIxLjcgNTMuOSAyNC43IDc0IDAgLjEgMCAuMyAuMSAuNC0yNy42LTY4LjgtNzQuNC05Ni41LTExMi42LTE1Ni44LTE1LTIzLjctMTAuOS0yNS4yLTEzLjEtMjQuN2wtLjEgLjFjLTQ2LjcgMjYtNzUuMyA3OC40LTgyLjYgMTIyLjctMTYuNiAuOS0zMi45IDUtNDcuOSAxMi4xLTEuNCAuNi0yLjUgMS43LTMuMSAzcy0uOSAyLjgtLjYgNC4zYy4yIC44IC42IDEuNiAxLjEgMi4zczEuMiAxLjMgMS45IDEuNyAxLjYgLjcgMi40IC44IDEuNyAwIDIuNS0uM2wuNS0uMmMxNS41LTcuMyAzMi40LTExLjIgNDkuNS0xMS4zIDYyLjgtLjYgOTcuMiA0NCAxMDcuNiA2Mi4zLTEzLTkuMi0zNi40LTE4LjItNTguOC0xNC4zIDg3LjcgNDMuOSA2NC4yIDE5NC41LTU3LjQgMTg5LjItNTkuNS0yLjYtOTcuMS01MS0xMDAuNS05MC44IDAgMCAxMS4yLTQxLjkgODAuNi00MS45IDcuNSAwIDI4LjktMjAuOSAyOS4zLTI3LS4xLTItNDIuNS0xOC45LTU5LjEtMzUuMi04LjgtOC43LTEzLjEtMTIuOS0xNi44LTE2LjEtMi0xLjctNC4xLTMuMy02LjMtNC44LTUuNi0xOS41LTUuOC00MC0uNy01OS42LTI1LjEgMTEuNC00NC42IDI5LjQtNTguNyA0NS40bC0uMSAwYy05LjctMTIuMi05LTUyLjYtOC40LTYxLjEtLjEtLjUtNy4yIDMuNy04LjIgNC4zLTguNiA2LjEtMTYuNSAxMi45LTIzLjggMjAuNC0xNi4zIDE2LjYtNDQuMSA1MC4yLTU1LjUgMTAxLjItNC41IDIwLjQtNi44IDQ0LjQtNi44IDUyLjMgMCAxMzQuNyAxMDkuMiAyNDMuOSAyNDMuOSAyNDMuOSAxMjAuNiAwIDIyMy04Ny4yIDI0MC40LTIwMi42IDExLjYtNzYuNy0xNC43LTEzMS4xLTE0LjctMTMyeiJdfSxwZmU9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiY2xvdWRzbWl0aCIsaWNvbjpbNTEyLDUxMixbXSwiZjM4NCIsIk01MTIgMjI3LjZMNTEyIDI4NC41IDI4NC40IDUxMiAyMjcuNiA1MTIgMCAyODQuNCAwIDIyNy42IDIyNy42IDAgMjg0LjUgMCA1MTIgMjI3LjZ6bS0yNTYgMTYyYzE3LjggLjUgMzUuNi0yLjYgNTIuMi05LjFzMzEuOC0xNi4yIDQ0LjYtMjguNyAyMy0yNy4zIDI5LjktNDMuOCAxMC41LTM0LjEgMTAuNS01Mi0zLjYtMzUuNS0xMC41LTUyLTE3LjEtMzEuMy0yOS45LTQzLjgtMjgtMjIuMi00NC42LTI4LjctMzQuNC05LjYtNTIuMi05LjFjLTE3LjgtLjUtMzUuNiAyLjYtNTIuMiA5LjFzLTMxLjggMTYuMy00NC42IDI4LjctMjMgMjcuMy0yOS45IDQzLjgtMTAuNSAzNC4xLTEwLjUgNTIgMy42IDM1LjUgMTAuNSA1MiAxNy4xIDMxLjMgMjkuOSA0My44IDI4IDIyLjIgNDQuNiAyOC43IDM0LjQgOS42IDUyLjIgOS4xeiJdfSx1ZmU9e3ByZWZpeDoiZmFiIixpY29uTmFtZToid2l6YXJkcy1vZi10aGUtY29hc3QiLGljb246WzY0MCw1MTIsW10sImY3MzAiLCJNMjE5LjIgMzQ1LjdjLTEuOSAxLjQtMTEuMSA4LjQtLjMgMjMuNiA0LjYgNi40IDE0LjEgMTIuOCAyMS43IDYuNiA2LjUtNC45IDcuNC0xMi45IC4zLTIzLTUuNS03LjgtMTQuMy0xMi45LTIxLjctNy4xem0zMzYuOCA3NS45Yy0uMyAxLjctLjYgMS43IC44IDAgMi4xLTQuMiA0LjItMTAuMiA1LTE5LjkgMy4xLTM4LjUtNDAuMy03MS41LTEwMS4zLTc4LTU0LjctNi0xMjQuNCA5LjItMTg4LjggNjAuNWwtLjMgMS42YzIuNiA1IDUgMTAuNyAzLjQgMjEuMmwuOCAuM2M2My45LTU4LjQgMTMxLjItNzcuMiAxODQuNC03My44IDU4LjQgMy43IDEwMCAzNCAxMDAgNjguMSAwIDEwLTIuNiAxNS43LTMuOSAyMC4yek0zOTIuMyAyNDAuNGMuOCA3LjEgNC4yIDEwLjIgOS4yIDEwLjUgNS41IC4zIDkuNC0yLjYgMTAuNS02LjYgLjgtMy40IDIuMS0yOS44IDIuMS0yOS44UzQwMi44IDIyMSAzOTkuMSAyMjVjLTMuNyAzLjctNy4zIDguNC02LjggMTUuNXptLTUwLTE1MS4xYy0yMDQuNSAwLTMyOS4yIDEzNy41LTM0MS41IDE1MS45LTEgLjUtMS4zIC44IC44IDEuMyA2MC41IDE2LjUgMTU1LjggODEuMiAxOTYuMSAyMDIuMmwxIC4zYzU1LjItNjkuOSAxNDAuOS0xMjguMSAyMzctMTI4LjEgODAuOSAwIDEzMC4yIDQyLjIgMTMwLjIgODAuNCAwIDE4LjMtNi42IDMzLjUtMjIuMyA0Ni4zIDAgMS0uMiAuOCAuOCAuOCAxNC43LTEwLjcgMjcuNS0yOC44IDI3LjUtNDguMiAwLTIyLjgtMTIuMS0zOC4yLTEyLjEtMzguMiA3LjEgNy4xIDEwLjcgMTYuMiAxMC43IDE2LjIgNS44LTQwLjkgMjctNjIuMyAyNy02Mi4zLTIuNC05LjctNi44LTE3LjgtNi44LTE3LjggNy42IDguMSAxNC40IDI3LjUgMTQuNCA0MS40IDAgMTAuNS0zLjQgMjIuOC0xMi42IDMxLjlsLjMgLjVjOC4xLTUgMTYuNS0xNi44IDE2LjUtMzggMC0xNS43LTQuNy0yNS45LTQuNy0yNS45IDUuOC01LjIgMTEuMy05LjIgMTYtMTEuOCAuOCAzLjQgMi4xIDkuNyAyLjQgMTQuOSAwIDEgLjggMS44IDEgMCAuOC01LjgtLjMtMTYuMi0uMy0xNi41IDYtMy4xIDkuNy00LjUgOS43LTQuNS0xNS43LTExMC4zLTE0NC0xOTYuOS0yOTEuMi0xOTYuOXpNMjQzIDM3OC45Yy0xMS4xIDktMjQuMiA0LjEtMzAuNi00LjItNy40LTkuNi02LjgtMjQuMSA0LjItMzIuNSAxNC44LTExLjQgMjcuMS0uNSAzMS4yIDUuNSAuMyAuNCAxMi4xIDE2LjYtNC43IDMxLjJ6bTIuMS0xMzYuNGw5LjQtMTcuOCAxMS44IDcxLTEyLjYgNi0yNC42LTI4LjggMTQuMS0yNi43IDMuNyA0LjQtMS44LTguMXptMTguNiAxMTcuNmwtLjMtLjNjMi00LjEtMi41LTYuNi0xNy41LTMxLjctMS4zLTIuNC0zLjEtMi45LTQuNC0yLjZsLS4zLS41YzcuOS01LjggMTUuNC0xMC4yIDI1LjQtMTUuN2wuNSAuM2MxLjMgMS44IDIuMSAyLjkgMy40IDQuN2wtLjMgLjVjLTEtLjMtMi40LS44LTUuMiAuMy0yLjEgLjgtNy45IDMuNy0xMi4zIDcuNmwwIDEuM2MxLjYgMi40IDMuOSA2LjYgNS44IDkuN2wuMyAwYzEwLTYuMyA3LjYtNC41IDExLjUtNy45bC4zIDBjLjUgMS44IC41IDEuOCAxLjggNS41bC0uMyAuM2MtMy4xIC42LTQuNyAuMy0xMS41IDUuNWwwIC4zYzkuNSAxNyAxMSAxNi44IDEyLjYgMTZsLjMgLjNjLTIuMyAxLjYtNi4zIDQuMi05LjcgNi42ek0zMTkgMzI3LjZjLTMuMSAxLjYtNiAyLjktMTAgNWwtLjMtLjNjMS4zLTIuNiAxLjItMi43LTExLjgtMzIuNWwtLjMtLjNjLS4yIDAtOC45IDMuNy0xMCA3LjNsLS41IDAtMS01LjggLjMtLjVjNy4zLTQuNiAyNS41LTExLjYgMjcuOC0xMi42bC41IC4zIDMuMSA1LS4zIC41Yy0zLjUtMS44LTcuNCAuOC0xMi4zIDIuNmwwIC4zYzEyLjMgMzIgMTIuNyAzMC42IDE0LjcgMzAuNmwwIC4yem00NC44LTE2LjVjLTQuMiAxLTUuMiAxLjMtOS43IDIuOWwtLjMtLjMgLjUtNC41Yy0xLTMuNC0zLjEtMTEuNS0zLjctMTMuNmwtLjMtLjNjLTMuNCAuOC04LjkgMi42LTEyLjggMy45bC0uMyAuM2MuOCAyLjYgMy4xIDkuOSA0LjIgMTMuOSAuOCAyLjQgMS44IDIuOSAyLjkgMy4xbDAgLjVjLTMuNyAxLTcuMSAyLjYtMTAuMiAzLjlsLS4zLS4zYzEtMS4zIDEtMi45IC4zLTUtMS0zLjEtOC4xLTIzLjgtOS4yLTI3LjItLjUtMS44LTEuNi0zLjEtMi42LTMuMWwwLS41YzMuMS0xIDYtMi4xIDEwLjctMy40bC4zIC4zLS4zIDQuN2MxLjMgMy45IDIuNCA3LjYgMy4xIDkuN2wuMyAwYzMuOS0xLjMgOS40LTIuOSAxMi44LTMuOWwuMy0uMy0yLjYtOS40Yy0uNS0xLjgtMS0zLjQtMi42LTMuOWwwLS4zYzQuNC0xIDcuMy0xLjggMTAuNy0yLjRsLjMgLjNjLTEgMS4zLTEgMi45LS41IDQuNCAxLjYgNi4zIDQuNyAyMC40IDYuMyAyNi41IC41IDIuNiAxLjggMy40IDIuNiAzLjl6bTMyLjItNi44bC0uMyAuM2MtNC43IC41LTE0LjEgMi40LTIyLjUgNC4ybC0uMy0uMyAuOC00LjJjLTEuNi03LjktMy40LTE4LjYtNS0yNi4yLS4zLTEuOC0uOC0yLjktMi42LTMuN2wuOC0uNWM5LjItMS42IDIwLjItMi40IDI0LjktMi42bC4zIC4zYy41IDIuNCAuOCAzLjEgMS42IDUuNWwtLjMgLjNjLTEuMS0xLjEtMy4zLTMuMi0xNi4yLS44bC0uMyAuM2MuMyAxLjYgMSA2LjYgMS42IDkuOWwuMyAuM2M5LjUtMS43IDQuOC0uMSAxMC43LTIuNGwuMyAwYzAgMS42LS4zIDEuOC0uMyA1LjJsLS4zIDBjLTQuOC0xLTIuMi0uOS0xMC4yIDBsLS4zIC4zYy4zIDIuMSAxLjYgOS40IDIuMSAxMi42bC4zIC4zYzEuMiAuNCAxNC4yLS42IDE2LjItNC43bC4zIDBjLS41IDIuNC0xIDQuMi0xLjYgNnptMTAuNy00NC41Yy00LjUgMi40LTguMSAyLjktMTEgMi45LS4yIDAtMTEuNCAxLjEtMTcuNS0xMC02LjctMTAuOC0xLTI1LjIgNS41LTMxLjcgOC44LTguMSAyMy40LTEwLjEgMjguNS0xNyA4LTEwLjMtMTMtMjIuMy0yOS42LTUuOGwtMi42LTIuOSA1LjItMTYuMmMyNS42LTEuNiA0NS4yLTMgNTAgMTYuMiAuOCAzLjEgMCA5LjQtLjMgMTIuMSAwIDIuNi0xLjggMTguOC0yLjEgMjMtLjUgNC4yLS44IDE4LjMtLjggMjAuNyAuMyAyLjQgLjUgNC4yIDEuNiA1LjUgMS42IDEuOCA1LjggMS44IDUuOCAxLjhsLS44IDQuN2MtMTEuOC0xLjEtMTAuMy0uNi0yMC40LTEtMy4yLTUuMS0yLjItMy4zLTQuMi03LjkgMCAwLTQuMiAzLjktNy4zIDUuNXpNNDQzLjkgMjgxYy02LjQtMTAuNi0xOS44LTcuMi0yMS43IDUuNS0yLjYgMTcuMSAxNC4zIDE5LjggMjAuNyAxMC4ybC4zIC4zYy0uNSAxLjgtMS44IDYtMS44IDYuM2wtLjUgLjVjLTEwLjMgNi45LTI4LjUtMi41LTI1LjctMTguNiAxLjktMTAuOSAxNC40LTE4LjkgMjguOC05LjlsLjMgLjVjMCAxLjEtLjMgMy40LS4zIDUuM3ptNS44LTg3LjdsMC02LjZjLjcgMCAxOS42IDMuMyAyNy44IDcuM2wtMS42IDE3LjVzMTAuMi05LjQgMTUuNC0xMC43YzUuMi0xLjYgMTQuOSA3LjMgMTQuOSA3LjNsLTExLjMgMTEuM2MtMTIuMS02LjQtMTkuNi0uMS0yMC43IC44LTUuMyAzOC43LTguNiA0Mi4yIDQuNCA0Ni4xbC0uNSA0LjdjLTE3LjYtNC4zLTE4LjUtNC41LTM2LjktNy4zbC44LTQuN2M3LjMgMCA3LjUtNS4zIDcuNi02LjggMCAwIDUtNTMuMiA1LTU1LjMgMC0yLjktNS0zLjctNS0zLjd6bTExIDExNC40Yy04LjEtMi4xLTE0LjEtMTEtMTAuNy0yMC43IDMuMS05LjQgMTIuMy0xMi4zIDE4LjktMTAuMiA5LjIgMi42IDEyLjggMTEuOCAxMC43IDE5LjQtMi42IDguOS05LjQgMTMuOS0xOC45IDExLjV6bTQyLjIgOS43Yy0yLjQtLjUtNy4xLTIuNC04LjYtMi45bDAtLjMgMS42LTEuOGMuNi04LjIgLjYtNy4zIC4zLTcuNi00LjgtMS44LTYuNy0yLjQtNy4xLTIuNC0xLjMgMS44LTIuOSA0LjUtMy43IDUuNWwtLjggMy40IDAgLjNjLTEuMy0uMy0zLjktMS4zLTYtMS42bDAtLjMgMi42LTEuOGMzLjQtNC43IDEwLTE0LjEgMTMuOS0yMC4ybDAtMi4xIC41LS4zYzIuMSAuOCA1LjUgMi4xIDcuNiAyLjkgLjUgLjUgLjItMS45LTEgMjUuMS0uMiAxLjggMCAyLjYgLjggMy45em0tNC43LTg5LjhjMTEuMy0xOC4zIDMwLjgtMTYuMiAzNC0zLjRsNy42LTI2LjJjMi4zLTYuMi0yLjgtOS45LTQuNS0xMS4zbDEuOC0zLjdjMTIuMiAxMC40IDE2LjQgMTQgMjIuNSAyMC40LTI1LjkgNzMuMS0zMC44IDgwLjgtMjQuNiA4NC4zbC0xLjggNC40Yy02LjQtMy4zLTguOS00LjQtMTcuOC04LjZsMi4xLTYuOGMtLjMtLjMtMy45IDMuOS05LjcgMy43LTE5LjEtMS4zLTIyLjktMzEuNy05LjctNTIuOXptMjkuMyA3OS4zYzAtNS43LTYuMy03LjktNy45LTUuMi0xLjMgMi4xIDEgNSAyLjkgOC40IDEuNiAyLjYgMi42IDYuMyAxIDkuNC0yLjYgNi4zLTEyLjQgNS4zLTE1LjQtLjggMC0uNy0uMyAuMSAxLjgtNC43bC44LS4zYy0uNiA1LjcgNi4xIDkuNiA4LjQgNSAxLTIuMS0uNS01LjUtMi4xLTguNC0xLjYtMi42LTMuNy02LjMtMS44LTkuNyAyLjctNS4xIDExLjMtNC41IDE0LjcgMi40bDAgLjUtMi40IDMuNHptMjEuMiAxMy40Yy0yLTMuMy0uOS0yLjEtNC41LTQuN2wtLjMgMGMtMi40IDQuMi01LjggMTAuNS04LjYgMTYuMi0xLjMgMi40LTEgMy40LS44IDMuOWwtLjMgLjMtNS44LTQuNCAuMy0uMyAyLjEtMS4zYzMuMS01LjggNi42LTEyLjEgOS4yLTE3bDAtLjNjLTIuNi0yLTEuMi0xLjUtNi0xLjhsMC0uMyAzLjEtMy40IC4zIDBjMy43IDIuNCAxMCA2LjggMTIuMyA4LjlsLjMgLjMtMS4zIDMuOXpNNTc1LjggMjc2bC0yLjktMi45Yy44LTIuNCAxLjgtNSAyLjEtNy42IC43LTkuNy0xMS41LTExLjgtMTEuNS01IDAgNSA3LjkgMTkuNCA3LjkgMjcuOCAwIDEwLjItNS44IDE1LjctMTMuOSAxNi41LTguNCAuOC0yMC4yLTEwLjUtMjAuMi0xMC41bDUtMTQuNCAyLjkgMi4xYy0zIDE3LjggMTcuNyAyMC40IDEzLjMgNS4yLTEuMS00LTE4LjctMzQuMiAyLjEtMzguMiAxMy42LTIuNCAyMyAxNi41IDIzIDE2LjVMNTc1LjggMjc2em0zNS42LTEwLjJjLTExLTMwLjQtNjAuNS0xMjcuNS0xOTItMTI5LjYtNTMuNC0xLTk0LjMgMTUuNC0xMzIuOCAzOGw4NS42LTkuMi05MS40IDIwLjcgMjUuMSAxOS42LTMuOS0xNi41YzcuNS0xLjcgMzkuMS04LjUgNjYuOC04LjlsLTIyLjMgODAuNGMxMy42LS43IDE5LTkgMTkuNi0yMi44bDUtMSAuMyAyNi43Yy0yMi41IDMuMi0zNy4zIDYuNy00OS41IDkuOWwxMy4xLTQzLjItNjEuNS0zNi43IDIuNCA4LjEgMTAuMiA1YzYuMyAxOC42IDE5LjQgNTYuNiAyMC40IDU4LjcgMiA0LjMgMy4yIDUuOCAxMiA0LjVsMS4xIDVjLTE2LjEgNC45LTIzLjcgNy42LTM5IDE0LjRsLTIuNC00LjdjNC40LTIuOSA4LjctMy45IDUuNS0xMi44LTIzLjctNjIuNS0yMS41LTU4LjEtMjIuOC01OS40bDIuNC00LjQgMzMuNSA2Ny4zYy0zLjgtMTEuOSAxLjcgMS43LTMzLTc4LjhsLTQxLjkgODguNSA0LjctMTMuOS0zNS45LTQyLjIgMjcuOCA5My41LTExLjggOC40Yy0xMTEuOS0xMDEuNy0xMDUuOC05OC40LTExMy43LTk4LjctNS41LS4zLTEzLjYgNS41LTEzLjYgNS41bC01LTZjMzAuNi0yMy41IDMxLjYtMjQuMyA1OC40LTQyLjdsNC4yIDcuMXMtNS44IDQuMi03LjkgNy4xYy01LjkgOS4zIDEuNyAxMy4zIDYxLjggNzUuN2wtMTguOC01OC45IDM5LjgtMTAuMiAyNS43IDMwLjYgNC40LTEyLjMtNS0yNC42IDEzLjEtMy40IC41IDMuMSAzLjctMTAuNS05NC4zIDI5LjMgMTEuMy01LTEzLjYtNDIuNCAxNy4zLTkuMiAzMC4xIDM2LjEgMjguNS0xMy4xYy0xLjQtNy41LTIuNS0xNC41LTQuNy0xOS42bDE3LjMgMTMuOSA0LjctMi4xLTU5LjItNDIuNyAyMy4xIDExLjVjMTktNi4xIDI1LjItNy41IDMyLjItOS43bDIuNiAxMWMtMTIuNiAxMi42IDEuNCAxNi44IDYuNSAxOS40bC0xMy42LTYxIDEyIDI4LjNjNC4yLTEuMyA3LjMtMi4xIDcuMy0yLjFsMi42IDguNnMtMy4xIDEtNi4zIDIuMWw4LjkgMjEgMzMuOC02NS43LTIwLjcgNjFjNDIuNC0yNC4xIDgxLjQtMzYuNyAxMzItMzUuOSA2NyAxIDE2Ny4zIDQwLjggMTk5LjggMTM5LjggLjggMi4xIDAgMi42LS44IC4zem0tNDA4LTExMy40czEuOC0uNSA0LjItMS4zbDkuNCA3LjZjLS40IDAtMy40LS4zLTExLjMgMi40bC0yLjQtOC42em0xNDMuOCAzOC41Yy0xLjYtLjYtMjYuNS00LjgtMzMuMyAyMC43bDIxLjcgMTcgMTEuNS0zNy43ek0zMTguNCA2Ny4xYy01OC40IDAtMTA2LjEgMTItMTE1IDE0LjRsMCAuOGM4LjQgMi4xIDE0LjQgNC4yIDIxLjIgMTEuOGwxLjYgLjNjNi42LTEuOCA0OS0xMy45IDExMC4yLTEzLjkgMTgwLjIgMCAzMDEuNyAxMTYuOCAzMDEuNyAyMjMuNGwwIDEwYzAgMS4zIC44IDIuNiAxLjEgLjUgLjUtMi4xIC44LTguNiAuOC0xOS42IC4zLTgzLjgtOTYuNi0yMjcuNi0zMjEuNi0yMjcuNnpNNTI5LjUgMjM2LjhjMS4zLTUuOCAwLTEyLjMtNy4zLTEzLjEtOS42LTEuMS0xNi4xIDIzLjgtMTcgMzMuNS0uOCA1LjUtMS4zIDE0LjkgNiAxNC45IDQuNyAwIDkuNy0uOSAxOC4zLTM1LjR6TTQ2OCAyNzkuN2MtMi42LS44LTkuNC0uOC0xMi42IDEwLjUtMS44IDYuOCAuNSAxMy40IDYgMTQuNyAzLjcgMS4xIDguOSAuNSAxMS44LTEwLjcgMi42LTkuOS0xLjgtMTMuNi01LjItMTQuNHptMjMgMjFjMS44IC41IDMuMSAxIDUuOCAxLjggMC0xLjggLjUtOC40IC44LTEyLjEtMSAxLjMtNS41IDguMS02LjYgMTBsMCAuM3oiXX0sZmZlPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImNyZWF0aXZlLWNvbW1vbnMtbmQiLGljb246WzUxMiw1MTIsW10sImY0ZWIiLCJNMjU1LjYgOEMzOTcuNCA4IDUwNCAxMTguMSA1MDQgMjU2IDUwNCA0MDMuMSAzODUuNSA1MDQgMjU1LjYgNTA0IDEyMS42IDUwNCA4IDM5NC41IDggMjU2IDggMTIzLjEgMTEyLjcgOCAyNTUuNiA4em0uOCA0NC43Yy0xMTguMiAwLTIwMy43IDk3LjktMjAzLjcgMjAzLjMgMCAxMDkuOCA5MS4yIDIwMi44IDIwMy43IDIwMi44IDEwMy4yIDAgMjAyLjgtODEuMSAyMDIuOC0yMDIuOCAuMS0xMTMuOC05MC4yLTIwMy4zLTIwMi44LTIwMy4zem05NCAxNDQuM2wwIDQyLjUtMTgwLjMgMCAwLTQyLjUgMTgwLjMgMHptMCA3OS44bDAgNDIuNS0xODAuMyAwIDAtNDIuNSAxODAuMyAweiJdfSxtZmU9e3ByZWZpeDoiZmFiIixpY29uTmFtZToidXNwcyIsaWNvbjpbNTEyLDUxMixbXSwiZjdlMSIsIk00MjguMyAyNDEuN2MyNS44LTQxLjMgMTUuMi00OC44LTExLjctNDguOGwtMjcgMGMtLjEgMC0xLjUtMS40LTEwLjkgOC0xMS4yIDUuNi0zNy45IDYuMy0zNy45IDguNyAwIDQuNSA3MC4zLTMuMSA4OC4xIDAgOS41IDEuNS0xLjUgMjAuNC00LjQgMzItLjUgNC41IDIuNCAyLjMgMy44IC4xek0zMTYuMiAyNjQuM2M2NC0yMS4zIDk3LjMtMjMuOSAxMDItMjYuMiA0LjQtMi45LTQuNC02LjYtMjYuMi01LjgtNTEuNyAyLjItMTM3LjYgMzcuMS0xNzIuNiA1My45bC0zMC43LTkzLjMgMTk2LjYgMGMtMi43LTI4LjItMTUyLjktMjIuNi0zMzcuOS0yMi42TC01IDQxNS44YzE5Ni40LTk3LjMgMjU4LjktMTMwLjMgMzIxLjItMTUxLjV6TTYyLjcgOTZjMjUzLjMgNTMuNyAzMzAgNjUuNyAzMzIuMSA4NS4yIDM2LjQgMCA0NS45IDAgNTIuNCA2LjYgMjEuMSAxOS43LTE0LjYgNjcuNy0xNC42IDY3LjctNC40IDIuOS00MDYuNCAxNjAuMi00MDYuNCAxNjAuMkw0NDkuMyA0MTUuNyA1MTcgOTYgNjIuNyA5NnoiXX0sZ2ZlPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6InNxdWFyZS1sZXR0ZXJib3hkIixpY29uOls0NDgsNTEyLFtdLCJlNjJlIiwiTTM4NCAzMmMzNS4zIDAgNjQgMjguNyA2NCA2NGwwIDMyMGMwIDM1LjMtMjguNyA2NC02NCA2NEw2NCA0ODBjLTM1LjMgMC02NC0yOC43LTY0LTY0TDAgOTZDMCA2MC43IDI4LjcgMzIgNjQgMzJsMzIwIDB6TTEwNS4xIDE4N0M2Ni40IDE4NyAzNSAyMTguMyAzNSAyNTdzMzEuNCA3MCA3MC4xIDcwYzI0LjggMCA0Ni41LTEyLjggNTktMzIuMmwuNS0uNy0uNC0uNmMtNi41LTEwLjYtMTAuMi0yMy4xLTEwLjItMzYuNSAwLTEzLjYgMy45LTI2LjMgMTAuNi0zNy4xLTEyLjQtMTkuOC0zNC40LTMyLjktNTkuNS0zMi45ek0yMjQgMTg3Yy0yNC44IDAtNDYuNSAxMi44LTU5IDMyLjJsLS41IC43IC40IC42YzYuNSAxMC42IDEwLjIgMjMuMSAxMC4yIDM2LjUgMCAxMy42LTMuOSAyNi4zLTEwLjYgMzcuMSAxMi40IDE5LjcgMzQuNCAzMi45IDU5LjUgMzIuOSAyNC44IDAgNDYuNS0xMi44IDU5LTMyLjJsLjUtLjctLjQtLjZjLTYuNS0xMC42LTEwLjItMjMuMS0xMC4yLTM2LjUgMC0xMy42IDMuOS0yNi4zIDEwLjYtMzcuMS0xMi40LTE5LjctMzQuNC0zMi45LTU5LjUtMzIuOXptMTE4LjkgMGMtMjQuOCAwLTQ2LjUgMTIuOC01OSAzMi4ybC0uNSAuNyAuNCAuNmM2LjUgMTAuNiAxMC4yIDIzLjEgMTAuMiAzNi41IDAgMTMuNi0zLjkgMjYuMy0xMC42IDM3LjEgMTIuNCAxOS44IDM0LjQgMzIuOSA1OS41IDMyLjkgMzguNyAwIDcwLjEtMzEuMyA3MC4xLTcwcy0zMS40LTcwLTcwLjEtNzB6Il19LGJmZT17cHJlZml4OiJmYWIiLGljb25OYW1lOiJtYW5kYWxvcmlhbiIsaWNvbjpbMzg0LDUxMixbXSwiZjUwZiIsIk0yMDAuNiA1MTEuOWMtMS0zLjMtMS43LTE1LjgtMS40LTI0LjYgLjYtMTUuOSAxLTI0LjcgMS40LTI4LjggLjYtNi4yIDIuOS0yMC43IDMuMy0yMS40IC42LTEgLjQtMjcuOS0uMi0zMy4xLS4zLTIuNi0uNi0xMS45LS43LTIwLjctLjEtMTYuNS0uNS0yMC4xLTIuNy0yNC44LTEuMS0yLjMtMS4yLTMuOC0xLTExLjQgLjItNC4yIC4xLTguNS0uMy0xMi43LTItMTMtMy41LTI3LjctMy4yLTMzLjlzLjQtNy4xIDIuMS05LjdjMy4xLTQuNyA2LjUtMTQgOC42LTIzLjMgMi4zLTkuOSAzLjktMTcuMiA0LjYtMjAuNyAxLjEtNS4xIDIuNi0xMC4xIDQuNC0xNS4xIDIuMy02LjIgMi41LTE1LjQgLjQtMTUuNC0uMyAwLTEuNCAxLjItMi40IDIuN3MtNC44IDQuOC04LjMgNy40Yy04LjQgNi4xLTExLjcgOS40LTEyLjcgMTIuNnMtMSA3LjItLjIgNy44Yy4zIC4yIDEuMyAyLjQgMi4xIDQuOSAxLjYgNSAxLjkgMTAuMyAuNyAxNS40LS40IDEuOC0xIDUuNS0xLjUgOC4ycy0xIDYuNS0xLjMgOC4yYy0uMiAxLjUtLjcgMy0xLjUgNC4zLTEgMS0xLjEgLjktMi4xLS41LS43LTEuNS0xLjItMy4xLTEuNC00LjctLjItMS43LTEuNi03LjEtMy4xLTExLjktMy4zLTEwLjktMy41LTE2LjItMS0yMSAuOC0xLjQgMS40LTMgMS43LTQuNiAwLTIuNC0yLjItNS4zLTcuNC05LjktNy02LjItOC42LTcuOS0xMC4yLTExLjMtMS43LTMuNi0zLjEtNC4xLTQuNS0xLjUtMS44IDMtMi42IDkuMS0zIDIybC0uMyAxMi4yIDIgMi4yYzMuMiAzLjcgMTIuMSAxNi41IDEzLjggMTkuOCAzLjQgNi43IDQuMyAxMS43IDQuNCAyMy42czEgMjIuOCAyIDI0LjdjLjQgLjcgLjUgMS40IC4zIDEuNXMuNCAyLjEgMS4zIDQuM2MxIDIuOSAxLjcgNS45IDIuMSA5IC40IDMuNSAuOSA3IDEuNyAxMC40IDIuMiA5LjYgMi44IDE0LjEgMi40IDIwLjEtLjIgMy4zLS41IDExLjEtLjcgMTcuMy0xLjMgNDEuOC0xLjggNTgtMiA2MS4yLS4xIDItLjQgMTEuNS0uNiAyMS4xLS40IDE2LjMtMS4zIDI3LjQtMi40IDI4LjYtLjYgLjctOC4xLTQuOS0xMi41LTkuNS0zLjgtMy45LTQtNC44LTIuOC05LjkgLjctMyAyLjMtMTguMyAzLjMtMzIuNiAuNC00LjggLjgtMTAuNSAxLTEyLjcgLjgtOS40IDEuNy0yMC4zIDIuNi0zNC44IC42LTguNSAxLjMtMTYuNCAxLjctMTcuN3MuOS05LjkgMS4xLTE5LjFsLjQtMTYuOC0yLjMtNC4zYy0xLjctMy4zLTQuOS02LjktMTMuMi0xNS4zLTYtNi4xLTExLjgtMTIuMy0xMi45LTEzLjhsLTItMi44IC44LTEwLjljMS4xLTE1LjcgMS4xLTQ4LjYgMC01OS4xbC0uOS04LjctMy4zLTQuNWMtNS45LTguMS01LjgtNy43LTYuMi0zMy4zLS4xLTYuMS0uNC0xMS41LS42LTEyLjEtLjgtMS45LTMtMi43LTguNS0zLTguOS0uNi0xMS0xLjktMjMuOC0xNC42LTYuMi02LTEyLjMtMTItMTMuOC0xMy4yLTIuOC0yLjQtMi44LTItLjYtOS42bDEuNC00LjYtMS43LTNjLS44LTEuNC0xLjYtMi44LTIuNi00LjEtMS4zLTEuNS01LjUtMTAuOS02LTEzLjUtLjItLjctLjItMS40LS4xLTIuMXMuNS0xLjMgLjktMS44YzIuMi0yLjkgMy40LTUuNyA0LjUtMTAuNyAyLjMtMTEuMiA3LjctMjYuMSAxMC42LTI5LjIgMy4yLTMuNSA3LjctMSA5LjQgNSAxLjMgNC44IDEuNCA5LjggLjEgMTguNi0uNSAzLjctLjkgNy40LTEgMTEuMSAwIDQgLjIgNC43IDIuMyA3LjQgMy4zIDQuNCA3LjcgNy40IDE1LjIgMTAuNSAxLjcgLjcgMy4zIDEuNyA0LjcgMi44IDExLjIgMTAuNyAxOC42IDE2LjIgMjIuOSAxNi45IDUuMiAuOCA4IDQuNSAxMCAxMy40IDEuMyA1LjcgNCAxMS4xIDUuNSAxMS4xIDEuMi0uMiAyLjMtLjcgMy4zLTEuNCAyLTEuMiAyLjItMS43IDIuMi00LjItLjMtNi0uOS0xMS45LTItMTcuOC0uNC0xLjctLjgtNC4xLS45LTUuNHMtLjYtMy44LTEtNS43Yy0yLjYtMTEuMi0zLjYtMTUuNS00LjEtMTYtMS42LTItNC4xLTEwLjItNC45LTE1LjktMS42LTExLjEtNC0xNC4yLTEyLjktMTcuNC00LjktMS44LTkuNC00LjUtMTMuMy03LjktMS4yLTEtNC0zLjItNi40LTUuMXMtNC40LTMuNS00LjYtMy44Yy0uOC0uNy0xLjctMS40LTIuNy0yLTYuMi00LjItOC44LTctMTEuMy0xMmwtMi40LTVjLS4xLTguNy0uMy0xNy4zLS40LTI2bDYuOS02LjZjNC0zLjggOC41LTcuNCAxMC42LTguNCAzLjMtMS43IDQuNC0xLjkgMTEuNC0yIDguNS0uMiAxMC4xIDAgMTEuNyAxLjZzMS40IDYuNC0uMyA4LjVjLS42IC43LTEuMSAxLjUtMS4zIDIuMyAwIC42LTIuNiA0LjktNS40IDktMS4xIDIuMi0xLjkgNC41LTIuNCA2LjggMjAuNCAxMy40IDIxLjYgMy44IDE0LjEgMjlsMTEuNCAyLjVjMy4xLTguNyA2LjUtMTcuMyA4LjYtMjYuMiAuMy03LjYtMTItNC4yLTE1LjQtOC43LTIuMy01LjkgMy4xLTE0LjIgNi4xLTE5LjIgMS42LTIuMyA2LjYtNC43IDguOC00LjEgLjkgLjIgNC4yLS40IDcuNC0xLjMgMi41LS44IDUtMS4zIDcuNS0xLjcgMi0uMiA0LjEtLjcgNi0xLjMgMy43LTEuMSA0LjUtMS4yIDYuMy0uNCAxLjkgLjYgMy44IDEuMSA1LjggMS40IDIuMSAuMyA0LjEgLjkgNiAxLjkgMS42IC45IDMuMyAxLjcgNSAyLjIgMi41IC43IDMgLjYgNy0xLjdMMjI2IDUuNCAyMzYuNyA1YzEwLjQtLjQgMTAuOC0uNSAxNS4zLTIuN0wyNTYuNSAwIDI1OSAxLjRjMS44IDEgMy4xIDIuNyA0LjkgNiAyLjQgNC41IDIuNCA0LjYgMS40IDcuNC0uOSAyLjQtLjkgMy4zLS4xIDYuNCAuNSAyIDEuMiA0IDIuMSA1LjkgLjYgMS4zIDEuMSAyLjYgMS4zIDQgLjMgNC4zIDAgNS4zLTIuNCA2LjktMi4yIDEuNS03IDcuOS03IDkuMy0uMiAxLS42IDItMS4xIDMtNSAxMS41LTYuOCAxMy42LTE0LjMgMTctOS4yIDQuMi0xMi4zIDUuMi0xNi4yIDUuMi0zLjEgMC00IC4yLTQuNSAxLjMtMS4yIDEuNC0yLjUgMi43LTQuMSAzLjctMS44IDEuMi0zLjMgMi45LTQuNCA0LjgtLjUgMS4yLTEuNCAyLjItMi41IDIuOS0uOSAuNC0xLjggMS0yLjUgMS43LTIuMiAxLjktNC42IDMuNy03IDUuNC0zLjMgMi4zLTYuOSA1LTcuOSA2LS43IC43LTEuNSAxLjMtMi40IDEuNy0uOCAuNC0xLjYgLjktMi4xIDEuNi0xLjMgMS40LTEuNSAyLjEtMS4xIDQuNiAuMyAyIC44IDQgMS40IDUuOSAxLjMgMy44IDEuMyA3LjkgMCAxMC42cy0uOSA2LjcgMS40IDkuNmMyIDIuNiAyLjIgNC42IC43IDguOC0uOCAyLjktMS4xIDUuOS0xLjEgOC45IDAgNC45IC4yIDYuMyAxLjUgOC40czEuOCAyLjUgMy4yIDIuM2MyLS4yIDIuMy0xLjEgNC43LTEyLjEgMi4yLTEwIDMuNy0xMS45IDEzLjgtMTcuMSAyLjktMS41IDcuNS00IDEwLTUuNHM2LjgtMy43IDkuNC00LjljNS45LTIuNiAxMS4yLTYuNiAxNS4yLTExLjcgNy4xLTguOCAxMC0xNi4yIDEyLjgtMzMuMyAuNC0yLjggMS4zLTUuNCAyLjktNy43IDEuNC0yLjIgMi40LTQuNyAyLjktNy4zIDEtNS4zIDIuOS05LjEgNS42LTExLjUgNC43LTQuMiA2LTEuMSA0LjYgMTAuOS0uNSAzLjktMS4xIDEwLjMtMS40IDE0LjRsLS42IDcuNGMzIDIuNyA1LjkgNS41IDguOSA4LjJsLjEgOC40Yy4xIDQuNiAuNSA5LjUgLjkgMTAuOWwuOCAyLjUtNi40IDYuM2MtOC41IDguMy0xMi45IDEzLjktMTYuOCAyMS42LTEuOCAzLjUtMy43IDcuMS00LjQgOC0yLjIgMy4xLTYuNSAxMy04LjggMjAuM2wtMi4zIDcuMi03IDYuNWMtMy44IDMuNi04IDcuMi05LjIgOC4yLTMgMi4zLTQuMyA1LjEtNC4zIDEwLS4xIDIuNSAuNCA1IDEuNiA3LjMgLjggMS42IDEuNSAzLjIgMi4xIDQuOCAuMyAxIC45IDIgMS42IDIuOSAxLjQgMS42IDEuOSAxNi4xIC44IDIzLjItLjcgNC41LTMuNiAxMi00LjcgMTItMS44IDAtNC4xIDkuMy01LjEgMjAuNy0uMiAyLS42IDUuOS0xIDguN3MtMSAxMC0xLjQgMTZjLS44IDEyLjItLjIgMTguOCAyIDIzLjIgMy40IDYuNyAuNSAxMi43LTExIDIyLjhsLTQgMy41IC4xIDUuMmMuMSAzIC40IDYgMS4xIDguOSA0LjYgMTYgNC43IDE2LjkgNC40IDM3LjEtLjUgMjYuNC0uMyA0MC4zIC42IDQ0LjIgLjUgMi4zIC45IDQuNiAxLjEgNyAuMiAyIC43IDUuMyAxLjEgNy40IC41IDIuMyAuOCAxMSAuOCAyMi43bDAgMTkuMS0xLjggMi42Yy0yLjcgMy45LTE1LjEgMTMuNS0xNS41IDEyLjNsLjEgMHptMjkuNS00NS4xYy0uMi0uMy0uMy02LjktLjMtMTQuNiAwLTE0LjEtLjktMjcuNS0yLjMtMzQuNC0uNC0yLS44LTkuNy0uOS0xNy4xLS4yLTExLjktMS40LTI0LjQtMi42LTI2LjQtLjctMS4xLTMtMTcuNy0zLTIxLjMgMC00LjIgMS02IDUuMy05LjFzNC45LTMuMSA1LjUtLjdjLjMgMS4xIDEuNCA1LjYgMi42IDEwIDMuOSAxNS4xIDQuMSAxNi4zIDQgMjEuNy0uMSA1LjgtLjEgNi4xLTEuNyAxNy43LTEgNy4xLTEuMiAxMi40LTEgMjguNCAuMiAxOS40LS42IDM1LjctMiA0MS4zLS43IDIuOC0yLjggNS41LTMuNCA0LjRsLS4xIDB6bS03MS0zNy42Yy0uOC0zLjYtMS4zLTcuMi0xLjctMTAuOHMtMS03LjItMS43LTEwLjhjLS41LTIuMS0uOS00LjMtMS02LjUtLjMtMy4yLS45LTcuNS0xLjMtOS41LTEtNC44LTMuMy0xOS40LTMuNC0yMS4xIDAtLjctLjMtNC0uNy03LjQtLjctNi4yLS44LTI3LjctLjItMjguMyAxLTEgNi42IDIuOCAxMS4zIDcuNGw1LjMgNS4zLS40IDYuNWMtLjIgMy42LS42IDEwLjItLjggMTQuOC0uNSAxMy4zLS43IDguNy0xLjYgMjguNC0uOCAxNy40LTEuOSAzMS4zLTIuNiAzMi0uMSAuMS0uMiAuMS0uMiAuMnMtLjIgMC0uMyAwLS4yIDAtLjMtLjEtLjEtLjEtLjItLjJsMCAwek03MiAxNjIuNmMyMS4xIDEyLjggMTcuOCAxNC4yIDI4LjUgMTcuNyAxMyA0LjMgMTguOSA3LjEgMjMuMiAxNi45LTQzLjcgMzYuMS02OSA1Ny45LTc2LjcgNzAuOS0zMSA1Mi02IDEwMS42IDYyLjggODcuMi0xNC4yIDI5LjItNzggMjguNi05OC43LTQuOS0yNC43LTQwLTIyLjEtMTE4LjMgNjEtMTg3LjdsMCAwem0yMTAuOCAxNzljNTYuNyA2LjkgODIuMy0zNy43IDQ2LjUtODkuMiAwIDAtMjYuOS0yOS4zLTY0LjMtNjggMy0xNS41IDkuNS0zMi4xIDMwLjYtNTMuOCA4OS4yIDYzLjUgOTIgMTQxLjYgOTIuNSAxNDkuNCA0LjMgNzAuNi03OC43IDkxLjItMTA1LjMgNjEuN2wwIDB6Il19LF9FPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6InNsYWNrIixpY29uOls0NDgsNTEyLFs2MjQ0Nywic2xhY2staGFzaCJdLCJmMTk4IiwiTTk0LjEgMzE1LjFjMCAyNS45LTIxLjIgNDcuMS00Ny4xIDQ3LjFTMCAzNDEgMCAzMTUuMSAyMS4yIDI2OCA0Ny4xIDI2OGw0Ny4xIDAgMCA0Ny4xem0yMy43IDBjMC0yNS45IDIxLjItNDcuMSA0Ny4xLTQ3LjFTMjEyIDI4OS4yIDIxMiAzMTUuMWwwIDExNy44YzAgMjUuOS0yMS4yIDQ3LjEtNDcuMSA0Ny4xcy00Ny4xLTIxLjItNDcuMS00Ny4xbDAtMTE3Ljh6bTQ3LjEtMTg5Yy0yNS45IDAtNDcuMS0yMS4yLTQ3LjEtNDcuMVMxMzkgMzIgMTY0LjkgMzIgMjEyIDUzLjIgMjEyIDc5LjFsMCA0Ny4xLTQ3LjEgMHptMCAyMy43YzI1LjkgMCA0Ny4xIDIxLjIgNDcuMSA0Ny4xUzE5MC44IDI0NCAxNjQuOSAyNDRMNDcuMSAyNDRDMjEuMiAyNDQgMCAyMjIuOCAwIDE5Ni45czIxLjItNDcuMSA0Ny4xLTQ3LjFsMTE3LjggMHptMTg5IDQ3LjFjMC0yNS45IDIxLjItNDcuMSA0Ny4xLTQ3LjFTNDQ4IDE3MSA0NDggMTk2LjkgNDI2LjggMjQ0IDQwMC45IDI0NGwtNDcuMSAwIDAtNDcuMXptLTIzLjcgMGMwIDI1LjktMjEuMiA0Ny4xLTQ3LjEgNDcuMVMyMzYgMjIyLjggMjM2IDE5Ni45bDAtMTE3LjhDMjM2IDUzLjIgMjU3LjIgMzIgMjgzLjEgMzJzNDcuMSAyMS4yIDQ3LjEgNDcuMWwwIDExNy44em0tNDcuMSAxODljMjUuOSAwIDQ3LjEgMjEuMiA0Ny4xIDQ3LjFTMzA5IDQ4MCAyODMuMSA0ODAgMjM2IDQ1OC44IDIzNiA0MzIuOWwwLTQ3LjEgNDcuMSAwem0wLTIzLjdjLTI1LjkgMC00Ny4xLTIxLjItNDcuMS00Ny4xUzI1Ny4yIDI2OCAyODMuMSAyNjhsMTE3LjggMGMyNS45IDAgNDcuMSAyMS4yIDQ3LjEgNDcuMXMtMjEuMiA0Ny4xLTQ3LjEgNDcuMWwtMTE3LjggMHoiXX0sT2Y9X0UsdmZlPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImFuZ2VsbGlzdCIsaWNvbjpbMzg0LDUxMixbXSwiZjIwOSIsIk0zMTUuNiAyMTUuNGMxMS43LTMyLjYgNDUuNC0xMjYuOSA0NS40LTE1Ny4xIDAtMjYuNi0xNS43LTQ4LjktNDMuNy00OC45LTQ0LjYgMC04NC42IDEzMS43LTk3LjEgMTYzLjEtOS43LTI4LjUtNTUuMS0xNzIuNS05NS4xLTE3Mi41LTMxLjEgMC00NS43IDIyLjktNDUuNyA1MS43IDAgMzUuMyAzNC4yIDEyNi44IDQ2LjYgMTYyLTYuMy0yLjMtMTMuMS00LjMtMjAtNC4zLTIzLjQgMC00OC4zIDI5LjEtNDguMyA1Mi42IDAgOC45IDQuOSAyMS40IDggMjkuNy0zNi45IDEwLTUxLjEgMzQuNi01MS4xIDcxLjctLjEgNzIuMiA2OC4zIDE0OC42IDE2NC41IDE0OC42IDExOCAwIDE5MS40LTg4LjYgMTkxLjQtMjAyLjkgMC00My4xLTYuOS04Mi01NC45LTkzLjd6TTI4MC4yIDEwOGM0LTEyLjMgMjEuMS02NC4zIDM3LjEtNjQuMyA4LjYgMCAxMC45IDguOSAxMC45IDE2IDAgMTkuMS0zOC42IDEyNC42LTQ3LjEgMTQ4bC0zNC02IDMzLjEtOTMuN3pNMTEwLjggNDguM2MwLTExLjkgMTQuNS00NS43IDQ2LjMgNDcuMWwzNC42IDEwMC4zYy0xNS42LTEuMy0yNy43LTMtMzUuNCAxLjQtMTAuOS0yOC44LTQ1LjUtMTE5LjctNDUuNS0xNDguOHpNMTA4LjUgMjQ0YzI5LjMgMCA2Ny4xIDk0LjYgNjcuMSAxMDcuNCAwIDUuMS00LjkgMTEuNC0xMC42IDExLjQtMjAuOSAwLTc2LjktNzYuOS03Ni45LTk3LjcgLjEtNy43IDEyLjctMjEuMSAyMC40LTIxLjF6TTI5Mi44IDQzMC4zYy0yOS4xIDMyLTY2LjMgNDguNi0xMDkuNyA0OC42LTU5LjQgMC0xMDYuMy0zMi42LTEyOC45LTg4LjMtMTcuMS00My40IDMuOC02OC4zIDIwLjYtNjguMyAxMS40IDAgNTQuMyA2MC4zIDU0LjMgNzMuMSAwIDQuOS03LjcgOC4zLTExLjcgOC4zLTE2LjEgMC0yMi40LTE1LjUtNTEuMS01MS40LTI5LjcgMjkuNyAyMC41IDg2LjkgNTguMyA4Ni45IDI2LjEgMCA0My4xLTI0LjIgMzgtNDIgMy43IDAgOC4zIC4zIDExLjctLjYgMS4xIDI3LjEgOS4xIDU5LjQgNDEuNyA2MS43IDAtLjkgMi03LjEgMi03LjQgMC0xNy40LTEwLjYtMzIuNi0xMC42LTUwLjMgMC0yOC4zIDIxLjctNTUuNyA0My43LTcxLjcgOC02IDE3LjctOS43IDI3LjEtMTMuMSA5LjctMy43IDIwLTggMjcuNC0xNS40LTEuMS0xMS4yLTUuNy0yMS4xLTE2LjktMjEuMS0yNy43IDAtMTIwLjYgNC0xMjAuNi0zOS43IDAtNi43IC4xLTEzLjEgMTcuNC0xMy4xIDMyLjMgMCAxMTQuMyA4IDEzOC4zIDI5LjEgMTguMSAxNi4xIDI0LjMgMTEzLjItMzEgMTc0Ljd6bS05OC42LTEyNmM5LjcgMy4xIDE5LjcgNCAyOS43IDYtNy40IDUuNC0xNCAxMi0yMC4zIDE5LjEtMi44LTguNS02LjItMTYuOC05LjQtMjUuMXoiXX0seWZlPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImFuZHJvaWQiLGljb246WzU3Niw1MTIsW10sImYxN2IiLCJNNDIwLjUgMjUzLjlhMjQgMjQgMCAxIDEgMCA0OCAyNCAyNCAwIDEgMSAwLTQ4em0tMjY1LjEgMGEyNCAyNCAwIDEgMSAwIDQ4IDI0IDI0IDAgMSAxIDAtNDh6bTI3My43LTk2LjVsNDcuOS04M2MuOC0xLjEgMS4zLTIuNCAxLjUtMy44cy4yLTIuNy0uMS00LjEtLjktMi42LTEuNy0zLjctMS44LTItMy0yLjctMi41LTEuMS0zLjktMS4zLTIuNyAwLTQgLjQtMi41IDEuMS0zLjYgMS45LTEuOSAyLTIuNSAzLjJsLTQ4LjUgODQuMWMtMzguOC0xNy40LTgwLjgtMjYuNC0xMjMuMy0yNi40cy04NC41IDktMTIzLjMgMjYuNEwxMTYuMiA2NC40Yy0uNi0xLjItMS41LTIuMy0yLjUtMy4ycy0yLjMtMS41LTMuNi0xLjktMi43LS41LTQtLjQtMi43IC42LTMuOSAxLjMtMi4yIDEuNi0zIDIuNy0xLjQgMi40LTEuNyAzLjctLjMgMi43LS4xIDQuMSAuOCAyLjYgMS41IDMuOGw0Ny45IDgzQzY0LjUgMjAyLjIgOC4yIDI4NS41IDAgMzg0bDU3NiAwYy04LjItOTguNS02NC41LTE4MS44LTE0Ni45LTIyNi42eiJdfSx4ZmU9e3ByZWZpeDoiZmFiIixpY29uTmFtZToibWVldHVwIixpY29uOls1NzYsNTEyLFtdLCJmMmUwIiwiTTEzMS4xIDQxNC4zYzEuMSA1LjctMi4zIDExLjEtOCAxMi4zLTUuNCAxLjEtMTAuOS0yLjMtMTItOC0xLjEtNS40IDIuMy0xMS4xIDcuNy0xMi4zczExLjEgMi4zIDEyLjMgOHptMTQzLjEgNzEuNGMtNi4zIDQuNi04IDEzLjQtMy43IDIwIDQuNiA2LjYgMTMuNCA4LjMgMjAgMy43IDYuMy00LjYgOC0xMy40IDMuNC0yMC00LjItNi41LTEzLjEtOC4zLTE5LjctMy43em0tODYtNDYyLjNhMTEuOCAxMS44IDAgMSAwIC00LjktMjMgMTEuOCAxMS44IDAgMSAwIDQuOSAyM3pNNjYuNSAyMjYuM2EyMi4yIDIyLjIgMCAxIDAgLTI0LjcgMzYuOSAyMi4yIDIyLjIgMCAxIDAgMjQuNy0zNi45em0yNzItMTcwLjlhMjIuMSAyMi4xIDAgMSAwIC0yMi40LTM4IDIyLjEgMjIuMSAwIDEgMCAyMi40IDM4em0tMTkxLjEgNThhMTYuOSAxNi45IDAgMSAwIC0xOC44LTI4IDE2LjkgMTYuOSAwIDEgMCAxOC44IDI4em0zNzIuMyAxNTZjLTcuNCAxLjctMTIuMyA5LjEtMTAuNiAxNi45IDEuNCA3LjQgOC45IDEyLjMgMTYuMyAxMC42IDcuNC0xLjQgMTIuMy04LjkgMTAuNi0xNi42LTEuNS03LjQtOC45LTEyLjMtMTYuMy0xMC45em0zOS43LTU2LjhhMTAuMSAxMC4xIDAgMSAwIC0xOS44IDQuMyAxMC4xIDEwLjEgMCAxIDAgMTkuOC00LjN6bS04MC4zLTczLjdhMTguOCAxOC44IDAgMSAwIDIwLjcgMzEuMyAxOC44IDE4LjggMCAxIDAgLTIwLjctMzEuM3ptLTYuMyAxMzkuNGMyNi4zIDQzLjEgMTUuMSAxMDAtMjYuMyAxMjkuMS0xNy40IDEyLjMtMzcuMSAxNy43LTU2LjkgMTcuMS0xMiA0Ny4xLTY5LjQgNjQuNi0xMDUuMSAzMi42LTEuMSAuOS0yLjYgMS43LTMuNyAyLjktMzkuMSAyNy4xLTkyLjMgMTcuNC0xMTkuNC0yMi4zLTkuNy0xNC4zLTE0LjYtMzAuNi0xNS4xLTQ2LjktNjUuNC0xMC45LTkwLTk0LTQxLjEtMTM5LjctMjguMy00Ni45IC42LTEwNy40IDUzLjQtMTE0LjkgMjUuMS02Ni4yIDEwNy42LTk3LjYgMTYzLjYtNTQuMiA2Ny40LTIyLjMgMTM2LjMgMjkuNCAxMzAuOSAxMDEuMSA0MS4xIDEyLjYgNTIuOCA2Ni45IDE5LjcgOTUuMnptLTcwIDc0LjNjLTMuMS0yMC42LTQwLjktNC42LTQzLjEtMjcuMS0zLjEtMzIgNDMuNy0xMDEuMSA0MC0xMjgtMy40LTI0LTE5LjQtMjkuMS0zMy40LTI5LjQtMTMuNC0uMy0xNi45IDItMjEuNCA0LjYtMi45IDEuNy02LjYgNC45LTExLjctLjMtNi4zLTYtMTEuMS0xMS43LTE5LjQtMTIuOS0xMi4zLTItMTcuNyAyLTI2LjYgOS43LTMuNCAyLjktMTIgMTIuOS0yMCA5LjEtMy40LTEuNy0xNS40LTcuNy0yNC0xMS40LTE2LjMtNy4xLTQwIDQuNi00OC42IDIwLTEyLjkgMjIuOS0zOCAxMTMuMS00MS43IDEyNS4xLTguNiAyNi42IDEwLjkgNDguNiAzNi45IDQ3LjEgMTEuMS0uNiAxOC4zLTQuNiAyNS40LTE3LjQgNC03LjQgNDEuNy0xMDcuNyA0NC42LTExMi42IDItMy40IDguOS04IDE0LjYtNS4xIDUuNyAzLjEgNi45IDkuNCA2IDE1LjEtMS4xIDkuNy0yOCA3MC45LTI4LjkgNzcuNy0zLjQgMjIuOSAyNi45IDI2LjYgMzguNiA0IDMuNy03LjEgNDUuNy05Mi42IDQ5LjQtOTguMyA0LjMtNi4zIDcuNC04LjMgMTEuNy04IDMuMSAwIDguMyAuOSA3LjEgMTAuOS0xLjQgOS40LTM1LjEgNzIuMy0zOC45IDg3LjctNC42IDIwLjYgNi42IDQxLjQgMjQuOSA1MC42IDExLjQgNS43IDYyLjUgMTUuNyA1OC41LTExLjF6bTUuNyA5Mi4zYTIzLjMgMjMuMyAwIDEgMCAyNi4yIDM4LjQgMjMuMyAyMy4zIDAgMSAwIC0yNi4yLTM4LjR6Il19LHdmZT17cHJlZml4OiJmYWIiLGljb25OYW1lOiJmb250aWNvbnMtZmkiLGljb246WzM4NCw1MTIsW10sImYzYTIiLCJNMTE0LjQgMjI0bDkyLjQgMC0xNS4yIDUxLjItNzYuNCAwIDAgMTU3LjhjMCA4LTIuOCA5LjIgNC40IDEwbDU5LjYgNS42IDAgMzQuNC0xNzkuMiAwIDAtMzUuMiAyOS4yLTIuOGM3LjItLjggOS4yLTMuMiA5LjItMTAuOGwwLTE1NS44YzAtMy4yLTQtMy4yLTgtMy4ybC0zMC40IDAgMC01MS4yIDM4LjQgMCAwLTI4LjhjMC02OCAzNi40LTk2IDEwNi05NiA0Ni44IDAgODguOCAxMS4yIDg4LjggNzIuNEwxNjMuNiAxODBjLjQtMjUuNi02LTMxLjYtMjIuNC0zMS42LTI1LjIgMC0yNiAxMy42LTI2IDM3LjZsMCAzMmMwIDMuMi00LjggNi0uOCA2ek0zODQgNDgzbC0xNDAuOCAwIDAtMzQuNCAyOC0zLjZjNy4yLS44IDEwLjQtMi40IDEwLjQtMTBsMC0xNDhjMC01LjYtNC05LjItOS4yLTEwLjhsLTMzLjItOC44IDkuMi00MC40IDExMCAwIDAgMjA4YzAgOC0zLjYgOC44IDQgMTBsMjEuNiAzLjYgMCAzNC40ek0zNTQgMTM1LjhsMTIuNCA0NS42LTEwIDEwLTQyLjgtMjIuOC00Mi44IDIyLjgtMTAtMTAgMTIuNC00NS42LTMwLTM2LjQgNC44LTEwIDM4IDAgMjEuMi0zOC40IDEyLjggMCAyMS4yIDM4LjQgMzggMCA0LjggMTMuMi0zMCAzMy4yeiJdfSxNZmU9e3ByZWZpeDoiZmFiIixpY29uTmFtZToicGFsZmVkIixpY29uOls1NzYsNTEyLFtdLCJmM2Q4IiwiTTM4NC45IDE5My45YzAtNDcuNC01NS4yLTQ0LjItOTUuNC0yOS44LTEuMyAzOS40LTIuNSA4MC43LTMgMTE5LjggLjcgMi44IDIuNiA2LjIgMTUuMSA2LjIgMzYuOCAwIDgzLjQtNDIuOCA4My4zLTk2LjJ6TTE5MC40IDI2Ni4xYy4yIDAgNi41LTIuNyAxMS4yLTIuNyAyNi42IDAgMjAuNyA0NC4xLTE0LjQgNDQuMS0yMS41IDAtMzcuMS0xOC4xLTM3LjEtNDMgMC00MiA0Mi45LTk1LjYgMTAwLjctMTI2LjUgMS0xMi40IDMtMjIgMTAuNS0yOC4yIDExLjItOSAyNi42LTMuNSAyOS41IDExLjEgNzIuMi0yMi4yIDEzNS4yIDEgMTM1LjIgNzIgMCA3Ny45LTc5LjMgMTUyLjYtMTQwLjEgMTM4LjItLjEgMzkuNCAuOSA3NC40IDIuNyAxMDBsMCAuMmMuMiAzLjQgLjYgMTIuNS01LjMgMTkuMS05LjYgMTAuNi0zMy40IDEwLTM2LjQtMjIuMy00LjEtNDQuNCAuMi0yMDYuMSAxLjQtMjQyLjUtMjEuNSAxNS01OC41IDUwLjMtNTguNSA3NS45IC4yIDIuNSAuNCA0IC42IDQuNnpNOCAxODEuMXMtLjEgMzcuNCAzOC40IDM3LjRsMzAgMCAyMi40IDIxNy4yczAgNDQuMyA0NC43IDQ0LjNsMjg4LjkgMHM0NC43LS40IDQ0LjctNDQuM2wyMi40LTIxNy4yIDMwIDBzMzguNCAxLjIgMzguNC0zNy40YzAgMCAuMS0zNy40LTM4LjQtMzcuNGwtMzAuMSAwYy03LjMtMjUuNi0zMC4yLTc0LjMtMTE5LjQtNzQuM2wtMjggMCAwLTE5LjFzLTIuNy0xOC40LTIxLjEtMTguNGwtODUuOCAwUzIyNCAzMS45IDIyNCA1MC4zbDAgMTkuMS0yOC4xIDBzLTEwNSA0LjItMTIwLjUgNzQuM2wtMjkgMFM4IDE0Mi41IDggMTgxLjF6Il19LHpmZT17cHJlZml4OiJmYWIiLGljb25OYW1lOiJ3cGJlZ2lubmVyIixpY29uOls1MTIsNTEyLFtdLCJmMjk3IiwiTTQ2My4yIDMyMi40YzU2LjIgNjQuMyA0LjIgMTU3LjYtOTEuOSAxNTcuNi0zOS42IDAtNzguOC0xNy43LTEwMC4xLTUwLTYuOSAuNC0yMi43IC40LTI5LjYgMC0yMS40IDMyLjQtNjAuNiA1MC0xMDAuMSA1MC05NS41IDAtMTQ4LjMtOTMtOTEuOS0xNTcuNi03OS4xLTEzMS45IDMxLjMtMjkwLjQgMjA2LjgtMjkwLjQgMTc1LjYgMCAyODUuOSAxNTguNiAyMDYuOCAyOTAuNHptLTMzOS42LTgzbDQxLjUgMCAwLTU4LjEtNDEuNSAwIDAgNTguMXptMjE3LjIgODYuMWwwLTIzLjhjLTYwLjUgMjAuOS0xMzIuNCA5LjItMTg3LjYtMzRsLjIgMjQuOWM1MS4xIDQ2LjQgMTMxLjcgNTcuOSAxODcuMyAzMi45ek0xOTAgMjM5LjRsMTY2LjEgMCAwLTU4LjEtMTY2LjEgMCAwIDU4LjF6Il19LGtmZT17cHJlZml4OiJmYWIiLGljb25OYW1lOiJkaWFzcG9yYSIsaWNvbjpbNDQ4LDUxMixbXSwiZjc5MSIsIk0yMTkuNyAzNTQuNmMtMS40IDAtODggMTE5LjktODguNyAxMTkuOVM0NC40IDQxNCA0NCA0MTMuMyAxMzAuNiAyODcuNSAxMzAuNiAyODUuOGMwLTIuMi0xMjkuNi00NC0xMzcuNi00Ny4xLTEuMy0uNSAzMS40LTEwMS44IDMxLjctMTAyLjEgLjYtLjcgMTQ0LjQgNDcgMTQ1LjUgNDcgLjQgMCAuOS0uNiAxLTEuMyAuNC0yIDEtMTQ4LjYgMS43LTE0OS42IC44LTEuMiAxMDQuNS0uNyAxMDUuMS0uMyAxLjUgMSAzLjUgMTU2LjEgNi4xIDE1Ni4xIDEuNCAwIDEzOC43LTQ3IDEzOS4zLTQ2LjMgLjggLjkgMzEuOSAxMDIuMiAzMS41IDEwMi42LS45IC45LTE0MC4yIDQ3LjEtMTQwLjYgNDguOC0uMyAxLjQgODIuOCAxMjIuMSA4Mi41IDEyMi45cy04NS41IDYzLjUtODYuMyA2My41Yy0xLS4yLTg5LTEyNS41LTkwLjktMTI1LjVsMCAweiJdfSxTZmU9e3ByZWZpeDoiZmFiIixpY29uTmFtZToicHJvZHVjdC1odW50IixpY29uOls1MTIsNTEyLFtdLCJmMjg4IiwiTTMyNi4zIDIxOC44YzAgMjAuNS0xNi43IDM3LjItMzcuMiAzNy4ybC03MC4zIDAgMC03NC40IDcwLjMgMGMyMC41IDAgMzcuMiAxNi43IDM3LjIgMzcuMnpNOCAyNTZhMjQ4IDI0OCAwIDEgMSA0OTYgMCAyNDggMjQ4IDAgMSAxIC00OTYgMHptMzY3LjktMzcuMmMwLTQ3LjktMzguOS04Ni44LTg2LjgtODYuOGwtMTE5LjkgMCAwIDI0OCA0OS42IDAgMC03NC40IDcwLjMgMGM0Ny45IDAgODYuOC0zOC45IDg2LjgtODYuOHoiXX0sQ2ZlPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6InNxdWFyZS11cHdvcmsiLGljb246WzQ0OCw1MTIsW10sImU2N2MiLCJNNTYgMzJsMzM2IDBjMzAuOSAwIDU2IDI1LjEgNTYgNTZsMCAzMzZjMCAzMC45LTI1LjEgNTYtNTYgNTZMNTYgNDgwYy0zMC45IDAtNTYtMjUuMS01Ni01NkwwIDg4QzAgNTcuMSAyNS4xIDMyIDU2IDMyek0yNzAuOSAyNzQuMmM2LjYtNTIuOSAyNS45LTY5LjUgNTEuNC02OS41IDI1LjMgMCA0NC45IDIwLjIgNDQuOSA0OS43cy0xOS43IDQ5LjctNDQuOSA0OS43Yy0yNy45IDAtNDYuMy0yMS41LTUxLjQtMjkuOXptLTI2LjctNDEuOGMtOC4yLTE1LjUtMTQuMy0zNi4zLTE5LjItNTUuNmwtNjIuOSAwIDAgNzguMWMwIDI4LjQtMTIuOSA0OS40LTM4LjIgNDkuNFM4NC4xIDI4My40IDg0LjEgMjU1bC4zLTc4LjEtMzYuMiAwIDAgNzguMWMwIDIyLjggNy40IDQzLjUgMjAuOSA1OC4yIDEzLjkgMTUuMiAzMi44IDIzLjIgNTQuOCAyMy4yIDQzLjcgMCA3NC4yLTMzLjUgNzQuMi04MS41bDAtNTIuNWM0LjYgMTcuMyAxNS40IDUwLjUgMzYuMiA3OS43bC0xOS4zIDExMC41IDM2LjggMCAxMi44LTc4LjRjNC4yIDMuNSA4LjcgNi42IDEzLjQgOS40IDEyLjMgNy44IDI2LjQgMTIuMiA0MC45IDEyLjZsMy40IDBjNDUuMSAwIDgwLjktMzQuOSA4MC45LTgxLjlzLTM1LjktODIuMi04MC45LTgyLjJjLTQ1LjQgMC03MC45IDI5LjctNzguMSA2MC4xbDAgLjJ6Il19LF9mZT17cHJlZml4OiJmYWIiLGljb25OYW1lOiJjdXR0bGVmaXNoIixpY29uOls0NDgsNTEyLFtdLCJmMzhjIiwiTTM0OCAzMDUuNWMtMTcuNSAzMS42LTU3LjQgNTQuNS05NiA1NC41LTU2LjYgMC0xMDQtNDcuNC0xMDQtMTA0czQ3LjQtMTA0IDEwNC0xMDRjMzguNiAwIDc4LjUgMjIuOSA5NiA1NC41IDEzLjctNTAuOSA0MS43LTkzLjMgODctMTE3LjgtNDUuMy00OS42LTExMC41LTgwLjctMTgzLTgwLjctMTM3IDAtMjQ4IDExMS0yNDggMjQ4UzExNSA1MDQgMjUyIDUwNGM3Mi41IDAgMTM3LjctMzEuMSAxODMtODAuNy00NS4zLTI0LjUtNzMuMy02Ni45LTg3LTExNy44eiJdfSxUZmU9e3ByZWZpeDoiZmFiIixpY29uTmFtZToibWVkYXBwcyIsaWNvbjpbMzIwLDUxMixbXSwiZjNjNiIsIk0xMTguMyAyMzguNGMzLjUtMTIuNSA2LjktMzMuNiAxMy4yLTMzLjYgOC4zIDEuOCA5LjYgMjMuNCAxOC42IDM2LjYgNC42LTIzLjUgNS4zLTg1LjEgMTQuMS04Ni43IDktLjcgMTkuNyA2Ni41IDIyIDc3LjUgOS45IDQuMSA0OC45IDYuNiA0OC45IDYuNiAxLjkgNy4zLTI0IDcuNi00MCA3LjgtNC42IDE0LjgtNS40IDI3LjctMTEuNCAyOC00LjcgLjItOC4yLTI4LjgtMTcuNS00OS42bC05LjQgNjUuNWMtNC40IDEzLTE1LjUtMjIuNS0yMS45LTM5LjMtMy4zLS4xLTYyLjQtMS42LTQ3LjYtNy44bDMxLTV6TTIyOCA0NDhjMjEuMiAwIDIxLjItMzIgMC0zMkw5MiA0MTZjLTIxLjIgMC0yMS4yIDMyIDAgMzJsMTM2IDB6bS0yNCA2NGMyMS4yIDAgMjEuMi0zMiAwLTMybC04OCAwYy0yMS4yIDAtMjEuMiAzMiAwIDMybDg4IDB6bTM0LjItMTQxLjVjMy4yLTE4LjkgNS4yLTM2LjQgMTEuOS00OC44IDcuOS0xNC43IDE2LjEtMjguMSAyNC00MSAyNC42LTQwLjQgNDUuOS03NS4yIDQ1LjktMTI1LjUgMC04NS42LTcxLjgtMTU1LjItMTYwLTE1NS4yUzAgNjkuNiAwIDE1NS4yYzAgNTAuMiAyMS4zIDg1LjEgNDUuOSAxMjUuNSA3LjkgMTIuOSAxNiAyNi4zIDI0IDQxIDYuNyAxMi41IDguNyAyOS44IDExLjkgNDguOSAzLjUgMjEgMzYuMSAxNS43IDMyLjYtNS4xLTMuNi0yMS43LTUuNi00MC43LTE1LjMtNTguNi0zMi42LTYwLjQtNjYuMS05NS42LTY2LjEtMTUxLjcgMC02Ny45IDU3LTEyMy4yIDEyNy0xMjMuMlMyODcgODcuMyAyODcgMTU1LjJjMCA1Ni4xLTMzLjUgOTEuMy02Ni4xIDE1MS42LTkuNyAxOC0xMS43IDM3LjQtMTUuMyA1OC42LTMuNCAyMC42IDI5IDI2LjQgMzIuNiA1LjF6Il19LExmZT17cHJlZml4OiJmYWIiLGljb25OYW1lOiJwaXgiLGljb246WzUxMiw1MTIsW10sImU0M2EiLCJNMjQyLjQgMjkyLjVjNS40LTUuNCAxNC43LTUuNCAyMC4xIDBsNzcgNzdjMTQuMiAxNC4yIDMzLjEgMjIgNTMuMSAyMmwxNS4xIDAtOTcuMSA5Ny4xYy0zMC4zIDI5LjUtNzkuNSAyOS41LTEwOS44IDBsLTk3LjUtOTcuNCA5LjMgMGMyMCAwIDM4LjktNy44IDUzLjEtMjJsNzYuNy03Ni43em0yMC4xLTczLjZjLTYuNCA1LjUtMTQuNiA1LjYtMjAuMSAwbC03Ni43LTc2LjdjLTE0LjItMTUuMS0zMy4xLTIyLTUzLjEtMjJsLTkuMyAwIDk3LjQtOTcuNGMzMC40LTMwLjMgNzkuNi0zMC4zIDEwOS45IDBsOTcuMiA5Ny4xLTE1LjIgMGMtMjAgMC0zOC45IDcuOC01My4xIDIybC03NyA3N3pNMTEyLjYgMTQyLjdjMTMuOCAwIDI2LjUgNS42IDM3LjEgMTUuNGw3Ni43IDc2LjdjNy4yIDYuMyAxNi42IDEwLjggMjYuMSAxMC44IDkuNCAwIDE4LjgtNC41IDI2LTEwLjhsNzctNzdjOS44LTkuNyAyMy4zLTE1LjMgMzcuMS0xNS4zbDM3LjcgMCA1OC4zIDU4LjNjMzAuMyAzMC4zIDMwLjMgNzkuNSAwIDEwOS44bC01OC4zIDU4LjMtMzcuNyAwYy0xMy44IDAtMjcuMy01LjYtMzcuMS0xNS40bC03Ny03N2MtMTMuOS0xMy45LTM4LjItMTMuOS01Mi4xIC4xbC03Ni43IDc2LjZjLTEwLjYgOS44LTIzLjMgMTUuNC0zNy4xIDE1LjRsLTMxLjggMC01OC01OGMtMzAuMy0zMC4zLTMwLjMtNzkuNSAwLTEwOS44bDU4LTU4LjEgMzEuOCAweiJdfSxURT17cHJlZml4OiJmYWIiLGljb25OYW1lOiJzcXVhcmUtdHVtYmxyIixpY29uOls0NDgsNTEyLFsidHVtYmxyLXNxdWFyZSJdLCJmMTc0IiwiTTQ0OCA5NmMwLTM1LjMtMjguNy02NC02NC02NEw2NCAzMkMyOC43IDMyIDAgNjAuNyAwIDk2TDAgNDE2YzAgMzUuMyAyOC43IDY0IDY0IDY0bDMyMCAwYzM1LjMgMCA2NC0yOC43IDY0LTY0bDAtMzIwek0yNTYuOCA0MTZjLTc1LjUgMC05MS45LTU1LjUtOTEuOS04Ny45bDAtOTAtMjkuNyAwYy0zLjQgMC02LjItMi44LTYuMi02LjJsMC00Mi41YzAtNC41IDIuOC04LjUgNy4xLTEwIDM4LjgtMTMuNyA1MC45LTQ3LjUgNTIuNy03My4yIC41LTYuOSA0LjEtMTAuMiAxMC0xMC4ybDQ0LjMgMGMzLjQgMCA2LjIgMi44IDYuMiA2LjJsMCA3MiA1MS45IDBjMy40IDAgNi4yIDIuOCA2LjIgNi4ybDAgNTEuMWMwIDMuNC0yLjggNi4yLTYuMiA2LjJsLTUyLjEgMCAwIDgzLjNjMCAyMS40IDE0LjggMzMuNSA0Mi41IDIyLjQgMy0xLjIgNS42LTIgOC0xLjQgMi4yIC41IDMuNiAyLjEgNC42IDQuOUwzMTggMzg3LjFjMSAzLjIgMiA2LjctLjMgOS4xLTguNSA5LjEtMzEuMiAxOS44LTYwLjkgMTkuOHoiXX0sJGZlPVRFLEFmZT17cHJlZml4OiJmYWIiLGljb25OYW1lOiJyZWFjdCIsaWNvbjpbNTEyLDUxMixbXSwiZjQxYiIsIk00MTguMiAxNzcuMmMtNS40LTEuOC0xMC44LTMuNS0xNi4yLTUuMSAuOS0zLjcgMS43LTcuNCAyLjUtMTEuMSAxMi4zLTU5LjYgNC4yLTEwNy41LTIzLjEtMTIzLjMtMjYuMy0xNS4xLTY5LjIgLjYtMTEyLjYgMzguNC00LjMgMy43LTguNSA3LjYtMTIuNSAxMS41LTIuNy0yLjYtNS41LTUuMi04LjMtNy43LTQ1LjUtNDAuNC05MS4xLTU3LjQtMTE4LjQtNDEuNS0yNi4yIDE1LjItMzQgNjAuMy0yMyAxMTYuNyAxLjEgNS42IDIuMyAxMS4xIDMuNyAxNi43LTYuNCAxLjgtMTIuNyAzLjgtMTguNiA1LjktNTMuNCAxOC41LTkxLjcgNDcuNy05MS43IDc3LjkgMCAzMS4yIDQwLjggNjIuNSA5Ni4zIDgxLjUgNC41IDEuNSA5IDMgMTMuNiA0LjMtMS41IDYtMi44IDExLjktNCAxOC0xMC41IDU1LjUtMi4zIDk5LjUgMjMuOSAxMTQuNiAyNyAxNS42IDcyLjQtLjQgMTE2LjYtMzkuMSAzLjUtMy4xIDctNi4zIDEwLjUtOS43IDQuNCA0LjMgOSA4LjQgMTMuNiAxMi40IDQyLjggMzYuOCA4NS4xIDUxLjcgMTExLjIgMzYuNiAyNy0xNS42IDM1LjgtNjIuOSAyNC40LTEyMC41LS45LTQuNC0xLjktOC45LTMtMTMuNSAzLjItLjkgNi4zLTEuOSA5LjQtMi45IDU3LjctMTkuMSA5OS41LTUwIDk5LjUtODEuNyAwLTMwLjMtMzkuNC01OS43LTkzLjgtNzguNHpNMjgyLjkgOTIuM2MzNy4yLTMyLjQgNzEuOS00NS4xIDg3LjctMzYgMTYuOSA5LjcgMjMuNCA0OC45IDEyLjggMTAwLjQtLjcgMy40LTEuNCA2LjctMi4zIDEwLTIyLjItNS00NC43LTguNi02Ny4zLTEwLjYtMTMtMTguNi0yNy4yLTM2LjQtNDIuNi01My4xIDMuOS0zLjcgNy43LTcuMiAxMS43LTEwLjd6TTE2Ny4yIDMwNy41YzUuMSA4LjcgMTAuMyAxNy40IDE1LjggMjUuOS0xNS42LTEuNy0zMS4xLTQuMi00Ni40LTcuNSA0LjQtMTQuNCA5LjktMjkuMyAxNi4zLTQ0LjUgNC42IDguOCA5LjMgMTcuNSAxNC4zIDI2LjF6TTEzNi45IDE4Ny4yYzE0LjQtMy4yIDI5LjctNS44IDQ1LjYtNy44LTUuMyA4LjMtMTAuNSAxNi44LTE1LjQgMjUuNC00LjkgOC41LTkuNyAxNy4yLTE0LjIgMjYtNi4zLTE0LjktMTEuNi0yOS41LTE2LTQzLjZ6bTI3LjQgNjguOWM2LjYtMTMuOCAxMy44LTI3LjMgMjEuNC00MC42czE1LjgtMjYuMiAyNC40LTM4LjljMTUtMS4xIDMwLjMtMS43IDQ1LjktMS43czMxIC42IDQ1LjkgMS43YzguNSAxMi42IDE2LjYgMjUuNSAyNC4zIDM4LjdzMTQuOSAyNi43IDIxLjcgNDAuNGMtNi43IDEzLjgtMTMuOSAyNy40LTIxLjYgNDAuOC03LjYgMTMuMy0xNS43IDI2LjItMjQuMiAzOS0xNC45IDEuMS0zMC40IDEuNi00Ni4xIDEuNnMtMzAuOS0uNS00NS42LTEuNGMtOC43LTEyLjctMTYuOS0yNS43LTI0LjYtMzlzLTE0LjgtMjYuOC0yMS41LTQwLjZ6bTE4MC42IDUxLjJjNS4xLTguOCA5LjktMTcuNyAxNC42LTI2LjcgNi40IDE0LjUgMTIgMjkuMiAxNi45IDQ0LjMtMTUuNSAzLjUtMzEuMiA2LjItNDcgOCA1LjQtOC40IDEwLjUtMTcgMTUuNS0yNS42em0xNC40LTc2LjVjLTQuNy04LjgtOS41LTE3LjYtMTQuNS0yNi4yLTQuOS04LjUtMTAtMTYuOS0xNS4zLTI1LjIgMTYuMSAyIDMxLjUgNC43IDQ1LjkgOC00LjYgMTQuOC0xMCAyOS4yLTE2LjEgNDMuNHpNMjU2LjIgMTE4LjNjMTAuNSAxMS40IDIwLjQgMjMuNCAyOS42IDM1LjgtMTkuOC0uOS0zOS43LS45LTU5LjUgMCA5LjgtMTIuOSAxOS45LTI0LjkgMjkuOS0zNS44ek0xNDAuMiA1N2MxNi44LTkuOCA1NC4xIDQuMiA5My40IDM5IDIuNSAyLjIgNSA0LjYgNy42IDctMTUuNSAxNi43LTI5LjggMzQuNS00Mi45IDUzLjEtMjIuNiAyLTQ1IDUuNS02Ny4yIDEwLjQtMS4zLTUuMS0yLjQtMTAuMy0zLjUtMTUuNS05LjQtNDguNC0zLjItODQuOSAxMi42LTk0ek0xMTUuNyAzMjAuNmMtNC4yLTEuMi04LjMtMi41LTEyLjQtMy45LTIxLjMtNi43LTQ1LjUtMTcuMy02My0zMS4yLTEwLjEtNy0xNi45LTE3LjgtMTguOC0yOS45IDAtMTguMyAzMS42LTQxLjcgNzcuMi01Ny42IDUuNy0yIDExLjUtMy44IDE3LjMtNS41IDYuOCAyMS43IDE1IDQzIDI0LjUgNjMuNi05LjYgMjAuOS0xNy45IDQyLjUtMjQuOCA2NC41em0xMTYuNiA5OGMtMTYuNSAxNS4xLTM1LjYgMjcuMS01Ni40IDM1LjMtMTEuMSA1LjMtMjMuOSA1LjgtMzUuMyAxLjMtMTUuOS05LjItMjIuNS00NC41LTEzLjUtOTIgMS4xLTUuNiAyLjMtMTEuMiAzLjctMTYuNyAyMi40IDQuOCA0NSA4LjEgNjcuOSA5LjggMTMuMiAxOC43IDI3LjcgMzYuNiA0My4yIDUzLjQtMy4yIDMuMS02LjQgNi4xLTkuNiA4Ljl6bTI0LjUtMjQuM2MtMTAuMi0xMS0yMC40LTIzLjItMzAuMy0zNi4zIDkuNiAuNCAxOS41IC42IDI5LjUgLjYgMTAuMyAwIDIwLjQtLjIgMzAuNC0uNy05LjIgMTIuNy0xOS4xIDI0LjgtMjkuNiAzNi40em0xMzAuNyAzMGMtLjkgMTIuMi02LjkgMjMuNi0xNi41IDMxLjMtMTUuOSA5LjItNDkuOC0yLjgtODYuNC0zNC4yLTQuMi0zLjYtOC40LTcuNS0xMi43LTExLjUgMTUuMy0xNi45IDI5LjQtMzQuOCA0Mi4yLTUzLjYgMjIuOS0xLjkgNDUuNy01LjQgNjguMi0xMC41IDEgNC4xIDEuOSA4LjIgMi43IDEyLjIgNC45IDIxLjYgNS43IDQ0LjEgMi41IDY2LjN6bTE4LjItMTA3LjVjLTIuOCAuOS01LjYgMS44LTguNSAyLjYtNy0yMS44LTE1LjYtNDMuMS0yNS41LTYzLjggOS42LTIwLjQgMTcuNy00MS40IDI0LjUtNjIuOSA1LjIgMS41IDEwLjIgMy4xIDE1IDQuNyA0Ni42IDE2IDc5LjMgMzkuOCA3OS4zIDU4IDAgMTkuNi0zNC45IDQ0LjktODQuOCA2MS40ek0yNTYgMzAxLjhhNDUuOCA0NS44IDAgMSAwIDAtOTEuNiA0NS44IDQ1LjggMCAxIDAgMCA5MS42eiJdfSxEZmU9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiaHVnZ2luZy1mYWNlIixpY29uOls1NzYsNTEyLFtdLCJlODY5IiwiTTI4Ni44IDguMmMxMzAgMCAyMzUuNCAxMDUuOCAyMzUuNCAyMzYuMyAwIDE3LjctMS45IDM1LTUuNiA1MS43LTEuNCA2LjUtMy4xIDEyLjgtNS4xIDE5LjEgNi41LS42IDEzIC42IDE4LjcgMy41IDEyLjYgNi41IDIwLjIgMjEuNyAxOC4yIDM1LjctLjcgNC45LTIuNCA5LjQtNC44IDEzLjUgNS4yIDQuMiA5IDEwLjEgMTAuOCAxNy4xIDEuNCA1LjUgMi45IDE3LjEtNC44IDI4LjkgNS44IDkuMiA2LjYgMjAuNiAyLjIgMzAuNi02LjIgMTQuMS0yMS43IDI1LjMtNTEuNyAzNy4zLTMyLjUgMTMtNjcuMSAyMS45LTEwMi4zIDIxLjktMzIgMC01NS45LTguOS03MS0yNi40LTEzIDIuMi0yNi4zIDMuNC00MCAzLjQtMTIuNyAwLTI1LjItMS0zNy4zLTIuOS0xNS4xIDE3LjItMzguOCAyNS45LTcwLjYgMjUuOS0zNS4xIDAtNzAtOS0xMDIuNC0yMS45LTMwLTEyLTQ1LjUtMjMuMS01MS43LTM3LjMtNC40LTkuOS0zLjYtMjEuNCAyLjItMzAuNi03LjctMTEuOS02LjMtMjMuNC00LjgtMjguOSAxLjgtNyA1LjctMTIuOSAxMC44LTE3LjEtMi41LTQuMS00LjEtOC42LTQuOC0xMy41LTEuNS0xMC40IDItMjAuNyA5LjctMjkuMiA2LjEtNi43IDE1LjEtMTAuMyAyNC4yLTEwLjItMS45LTYuMS0zLjYtMTIuNC01LTE4LjctMy43LTE2LjctNS43LTM0LTUuNy01MS44IDAtMTMwLjUgMTA1LjQtMjM2LjMgMjM1LjQtMjM2LjN6TTExNy41IDMxMWMtMTMtOC4yLTIyLjEtMy42LTE5IDEzLjRzNTcuMiA1OC4yIDUyIDY3LjJjLTUuMiA4LjgtMjMuNS0xMC4xLTIzLjgtMTAuNSAwIDAtNTguMi01My4xLTcwLjgtMzkuMy0xMi42IDEzLjggOS42IDI1LjQgNDEuMyA0NC43czM0LjIgMjQuNCAyOS43IDMxLjctNzQuNS01Mi04MS4xLTI2LjhjLTYuNSAyNS4xIDcxLjQgMzIuNCA2Ni43IDQ5LjgtNC44IDE3LjQtNTQuOS0zMi44LTY1LjItMTMuMy0xMC4zIDE5LjYgNzAuOCA0Mi42IDcxLjQgNDIuNyAyNi4yIDYuOCA5Mi42IDIxLjMgMTE1LjktMTIuOSAxNi43LTI0LjYgMTUuNi00My4xLTcuNC02Ni4xcy0zNi4zLTU2LjctMzYuMy01Ni43YzAtLjItNS0xOS41LTE2LjMtMTcuOC0xMS40IDEuOC0xOS43IDMxIDQuMSA0OC45IDIzLjggMTcuOS00LjcgMzAtMTMuOSAxMy4zLTkuMi0xNi44LTM0LjItNTkuOS00Ny4xLTY4LjJ6bTM2MC42IDEzLjRjMy4xLTE3LTYuMS0yMS42LTE5LTEzLjQtMTMgOC4zLTM3LjkgNTEuNC00Ny4xIDY4LjJzLTM3LjcgNC42LTEzLjktMTMuMyAxNS40LTQ3LjEgNC4xLTQ4LjktMTYuMyAxNy44LTE2LjMgMTcuOGMtLjEgLjItMTMuNCAzMy43LTM2LjMgNTYuNy0yMi45IDIzLTI0LjEgNDEuNS03LjQgNjYuMSAyMy4yIDM0LjIgODkuNyAxOS43IDExNS45IDEyLjkgMS41LS40IDgxLjYtMjMuMyA3MS40LTQyLjctMTAuMy0xOS41LTYwLjQgMzAuNi02NS4zIDEzLjMtNC44LTE3LjMgNzMuMi0yNC42IDY2LjctNDkuOC02LjYtMjUuMS03Ni42IDM0LjEtODEuMSAyNi44LTQuNS03LjMtMi0xMi40IDI5LjctMzEuNyAzMS43LTE5LjMgNTQtMzAuOSA0MS4zLTQ0LjctMTIuNy0xMy44LTcwLjggMzkuMy03MC44IDM5LjMtLjQgLjQtMTguNiAxOS4zLTIzLjggMTAuNS01LjMtOC45IDQ4LjktNTAuMSA1Mi02Ny4yek0yODYuOCAzMi42Yy0xMTYuNiAwLTIxMS4xIDk0LjktMjExLjEgMjExLjkgMCAxNy4xIDIgMzMuOCA1LjggNDkuNyAwLS4xIC4xLS4xIC4yLS4yIDYuMS03LjQgMTQuOS0xMS40IDI0LjctMTEuNCAxNy43IDAgMzEuMSAxMS45IDQxLjUgMjQuOSA2LjgtOS40IDE3LjEtMTUgMjcuOS0xNSAyMC43IDAgMzMuMiAxOC4xIDM3LjkgMzQuMyAyLjMgNS41IDEzLjYgMzAuNSAzMC40IDQ3LjQgMjUuNyAyNS44IDMyLjIgNTIuNCAxOS40IDgwLjkgMTYgMS44IDMyLjggMS43IDQ5LjItLjMtMTIuNS0yOC40LTYtNTQuOSAxOS42LTgwLjYgMTYuOS0xNi45IDI4LjEtNDEuOSAzMC41LTQ3LjQgNC43LTE2LjIgMTcuMi0zNC4zIDM3LjktMzQuMyAxMC45IDAgMjEuMiA1LjYgMjcuOSAxNSAxMC40LTEzIDIzLjgtMjQuOSA0MS41LTI0LjkgOC43IDAgMTYuNiAzLjEgMjIuNSA4LjkgNS0yMiA2LjQtNDUuOCA0LjEtNjguNy0xMC44LTEwNi45LTEwMC43LTE5MC4zLTIxMC0xOTAuM3ptMS41IDIzNC4yYzQzLjYgMCA3OS00MiA3OS0xNC41IDAgMjcuNC0xOS4yIDgwLjktNzguOCA4MC45LTE5LjIgMC0zNC4yLTUuNS00NS44LTEzLjktMjMuMi0xOS40LTMzLjQtNDguMi0zMy40LTY2LjkgMC0yNy40IDM1LjQgMTQuNSA3OSAxNC41em0tMTMuMyAyNWMtOC4yIDIuNC0xNS41IDYuOC0yMS41IDEyLjYgMjIgMTIuOCA1MC40IDEyLjkgNzEuNy0xLjMtNS41LTQuOS0xMi04LjctMTkuMS0xMS01LjEtMS42LTEwLjQgMTUuOC0xNiAxNS44LTUuMiAwLTEwLjMtMTcuNi0xNS4xLTE2LjJ6TTE0Ny4xIDIxNS41YTE5LjggMTkuOCAwIDEgMSAwLTM5LjYgMTkuOCAxOS44IDAgMSAxIDAgMzkuNnptMjgyLjQgMGExOS44IDE5LjggMCAxIDEgMC0zOS42IDE5LjggMTkuOCAwIDEgMSAwIDM5LjZ6bS0yNDQtNTUuNGM3LjktMTQuOSAyNi4zLTIwLjUgNDEuMS0xMi42czIwLjQgMjYuNCAxMi42IDQxLjJjLTMuNyA3LTE1LjUtNC40LTIyLjQtMS45LTcuNyAyLjctMTAuOCAxOC43LTE4LjYgMTQuNi0xNC44LTcuOS0yMC40LTI2LjQtMTIuNi00MS4yem0xNjQuNC0xMi42YzE0LjgtNy45IDMzLjItMi4zIDQxLjEgMTIuNnMyLjIgMzMuMy0xMi42IDQxLjJjLTcuOCA0LjItMTAuOS0xMS44LTE4LjctMTQuNi02LjktMi40LTE4LjcgOS0yMi40IDEuOS03LjktMTQuOS0yLjItMzMuMyAxMi42LTQxLjJ6Il19LEVmZT17cHJlZml4OiJmYWIiLGljb25OYW1lOiJqeGwiLGljb246WzQ0OCw1MTIsW10sImU2N2IiLCJNNDEyLjIgMzJMMzUuOCAzMkMxNiAzMiAwIDQ4IDAgNjcuOEwwIDQ0NC4yQzAgNDY0IDE2IDQ4MCAzNS44IDQ4MGwzNzYuNCAwYzE5LjggMCAzNS44LTE2IDM1LjgtMzUuOGwwLTM3Ni40QzQ0OCA0OCA0MzIgMzIgNDEyLjIgMzJ6TTM3OC42IDMzMy43YzAgNDAuMi0zMi42IDcyLjgtNzIuOCA3Mi44bC0yMzUuNiAwYzAtNDAuMiAzMi42LTcyLjggNzIuOC03Mi44bDIzNS42IDB6bTAtMTEzLjljMCA0MC4yLTMyLjYgNzIuOC03Mi44IDcyLjhsLTIzNS42IDBjMC00MC4yIDMyLjYtNzIuOCA3Mi44LTcyLjhsMjM1LjYgMHptMC0xMTMuOWMwIDQwLjItMzIuNiA3Mi44LTcyLjggNzIuOGwtMjM1LjYgMGMwLTQwLjIgMzIuNi03Mi44IDcyLjgtNzIuOGwyMzUuNiAweiJdfSxQZmU9e3ByZWZpeDoiZmFiIixpY29uTmFtZToic3F1YXJlLWxpbmtlZGluIixpY29uOls0NDgsNTEyLFtdLCJlN2QwIiwiTTY0IDMyQzI4LjcgMzIgMCA2MC43IDAgOTZMMCA0MTZjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMzIwIDBjMzUuMyAwIDY0LTI4LjcgNjQtNjRsMC0zMjBjMC0zNS4zLTI4LjctNjQtNjQtNjRMNjQgMzJ6bTUgMTcwLjJsNjYuNSAwIDAgMjEzLjgtNjYuNSAwIDAtMjEzLjh6bTcxLjctNjcuN2EzOC41IDM4LjUgMCAxIDEgLTc3IDAgMzguNSAzOC41IDAgMSAxIDc3IDB6TTMxNy45IDQxNmwwLTEwNGMwLTI0LjgtLjUtNTYuNy0zNC41LTU2LjctMzQuNiAwLTM5LjkgMjctMzkuOSA1NC45bDAgMTA1LjgtNjYuNCAwIDAtMjEzLjggNjMuNyAwIDAgMjkuMiAuOSAwYzguOS0xNi44IDMwLjYtMzQuNSA2Mi45LTM0LjUgNjcuMiAwIDc5LjcgNDQuMyA3OS43IDEwMS45bDAgMTE3LjItNjYuNCAweiJdfSxJZmU9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiY3NzIixpY29uOls0NDgsNTEyLFtdLCJlNmEyIiwiTTM3Ni4zIDMyTDAgMzIgMCA0MDguM2MwIDE5IDcuNiAzNy4yIDIxIDUwLjdzMzEuNyAyMSA1MC43IDIxbDMwNC42IDBjMTkgMCAzNy4yLTcuNiA1MC43LTIxczIxLTMxLjcgMjEtNTAuN2wwLTMwNC42YzAtMTktNy42LTM3LjItMjEtNTAuN3MtMzEuNy0yMS01MC43LTIxek0zMzIuNCA0MzEuNGMtNy43LTguNS0xMS43LTIwLjctMTItMzYuNmwzMS4zIDBjLjIgMTQuMSA1LjEgMjEuMSAxNC44IDIxLjFjNC45IDAgOC40LTEuNiAxMC41LTQuN2MyLTMuMSAzLTggMy0xNC44YzAtNS40LTEuMy05LjktNC0xMy40Yy0zLjUtNC4yLTguMS03LjUtMTMuMi05LjVMMzUxLjIgMzY4Yy0xMC4zLTQuOS0xNy44LTEwLjgtMjIuNS0xNy42Yy00LjUtNi44LTYuNy0xNi4zLTYuNy0yOC40YzAtMTMuNiA0LTI0LjYgMTEuOC0zMy4xYzguMS04LjUgMTkuMS0xMi43IDMzLjItMTIuN2MxMy42IDAgMjQuMSA0LjIgMzEuNSAxMi41YzcuNSA4LjQgMTEuNSAyMC4zIDExLjggMzUuOWwtMzAuMSAwYy4yLTUuMS0uOS0xMC4yLTMtMTQuOGMtMS43LTMuNC01LTUuMS0xMC01LjFjLTguOCAwLTEzLjIgNS4yLTEzLjIgMTUuN2MwIDUuMyAxLjEgOS40IDMuMiAxMi42YzMuMSAzLjUgNyA2LjIgMTEuNCA3LjhsMTEuMSA0LjljMTEuNSA1LjMgMTkuNyAxMS43IDI0LjggMTkuNGM1LjEgNy43IDcuNiAxOCA3LjYgMzFjMCAxNS41LTQgMjcuNC0xMi4zIDM1LjdjLTguMiA4LjMtMTkuNSAxMi41LTM0LjEgMTIuNXMtMjUuNi00LjItMzMuNC0xMi43em0tMTAxIDBjLTcuNy04LjUtMTEuNy0yMC43LTEyLTM2LjZsMzEuMyAwYy4yIDE0LjEgNS4xIDIxLjEgMTQuOCAyMS4xYzQuOSAwIDguNC0xLjYgMTAuNC00LjdjMi0zLjEgMy04IDMtMTQuOGMwLTUuNC0xLjMtOS45LTMuOS0xMy40Yy0zLjUtNC4yLTguMS03LjUtMTMuMi05LjVMMjUwLjIgMzY4Yy0xMC4zLTQuOS0xNy44LTEwLjgtMjIuNS0xNy42Yy00LjUtNi44LTYuNy0xNi4zLTYuNy0yOC40YzAtMTMuNiA0LTI0LjYgMTEuOC0zMy4xYzguMS04LjUgMTkuMS0xMi43IDMzLjItMTIuN2MxMy42IDAgMjQuMSA0LjIgMzEuNCAxMi41YzcuNiA4LjQgMTEuNSAyMC4zIDExLjkgMzUuOWwtMzAuMSAwYy4yLTUuMS0uOS0xMC4yLTMtMTQuOGMtMS43LTMuNC01LTUuMS0xMC01LjFjLTguOCAwLTEzLjIgNS4yLTEzLjIgMTUuN2MwIDUuMyAxLjEgOS40IDMuMiAxMi42YzMuMSAzLjUgNyA2LjIgMTEuNCA3LjhsMTEuMSA0LjljMTEuNSA1LjMgMTkuNyAxMS43IDI0LjggMTkuNGM1LjEgNy43IDcuNiAxOCA3LjYgMzFjMCAxNS41LTQuMSAyNy40LTEyLjMgMzUuN3MtMTkuNSAxMi41LTM0LjEgMTIuNXMtMjUuNi00LjItMzMuNC0xMi43em0tMTA1LjYgMS4xYy04LjQtNy43LTEyLjUtMTkuMi0xMi41LTM0LjVsMC03NS40YzAtMTUuMiA0LjQtMjYuNyAxMy4yLTM0LjZjOC45LTcuOCAyMC43LTExLjggMzUuMi0xMS44YzE0LjEgMCAyNS4yIDQgMzMuNCAxMmM4LjMgOCAxMi41IDIwIDEyLjUgMzUuOWwwIDYtMzMuMSAwIDAtNS44YzAtNi4xLTEuMy0xMC43LTQtMTMuNmMtMS4xLTEuNS0yLjYtMi43LTQuMy0zLjVzLTMuNS0xLjItNS40LTEuMWMtNS40IDAtOS4yIDEuOC0xMS40IDUuNmMtMi4zIDUuMi0zLjMgMTAuOC0zIDE2LjRsMCA2NS41YzAgMTMuNyA0LjggMjAuNiAxNC40IDIwLjhjNC41IDAgNy45LTEuNiAxMC4yLTQuOGMyLjUtNC4xIDMuNy04LjggMy41LTEzLjZsMC00LjkgMzMuMSAwIDAgNS4xYzAgMTAuNi0yLjEgMTkuNS02LjIgMjYuNmMtNCA2LjktOS45IDEyLjUtMTcuMSAxNmMtNy43IDMuNy0xNi4xIDUuNS0yNC42IDUuM2MtMTQuMiAwLTI1LjUtMy45LTMzLjgtMTEuNnoiXX0sTmZlPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6Imhhc2hub2RlIixpY29uOls1MTIsNTEyLFtdLCJlNDk5IiwiTTM1LjcgMTcxLjFjLTQ2LjkgNDYtNDYuOSAxMjIuOSAwIDE2OS44TDE3MS42IDQ3Ni44YzQ2IDQ2LjkgMTIyLjkgNDYuOSAxNjkuOCAwTDQ3Ny4zIDM0MC45YzQ2LjktNDYuOSA0Ni45LTEyMy44IDAtMTY5LjhMMzQxLjQgMzUuMmMtNDYuOS00Ni45LTEyMy44LTQ2LjktMTY5LjggMEwzNS43IDE3MS4xek0xOTYgMTk2LjVhODQuNSA4NC41IDAgMSAxIDEyMCAxMTkgODQuNSA4NC41IDAgMSAxIC0xMjAtMTE5eiJdfSxGZmU9e3ByZWZpeDoiZmFiIixpY29uTmFtZToicmVkZGl0LWFsaWVuIixpY29uOls1MTIsNTEyLFtdLCJmMjgxIiwiTTM3MyAxMzguNmMtMjUuMiAwLTQ2LjMtMTcuNS01MS45LTQxLTMwLjYgNC4zLTU0LjIgMzAuNy01NC4yIDYyLjRsMCAuMmM0Ny40IDEuOCA5MC42IDE1LjEgMTI0LjkgMzYuMyAxMi42LTkuNyAyOC40LTE1LjUgNDUuNS0xNS41IDQxLjMgMCA3NC43IDMzLjQgNzQuNyA3NC43IDAgMjkuOC0xNy40IDU1LjUtNDIuNyA2Ny41LTIuNCA4Ni44LTk3IDE1Ni42LTIxMy4yIDE1Ni42UzQ1LjUgNDEwLjEgNDMgMzIzLjRjLTI1LjQtMTEuOS00My0zNy43LTQzLTY3LjcgMC00MS4zIDMzLjQtNzQuNyA3NC43LTc0LjcgMTcuMiAwIDMzIDUuOCA0NS43IDE1LjYgMzQtMjEuMSA3Ni44LTM0LjQgMTIzLjctMzYuNGwwLS4zYzAtNDQuMyAzMy43LTgwLjkgNzYuOC04NS41IDQuOS0yNC4yIDI2LjMtNDIuNCA1Mi4xLTQyLjQgMjkuNCAwIDUzLjMgMjMuOSA1My4zIDUzLjNzLTIzLjkgNTMuMy01My4zIDUzLjN6TTE1Ny41IDI1NS4zYy0yMC45IDAtMzguOSAyMC44LTQwLjIgNDcuOXMxNy4xIDM4LjEgMzggMzguMSAzNi42LTkuOCAzNy44LTM2LjktMTQuNy00OS4xLTM1LjctNDkuMWwuMSAwek0zOTUgMzAzLjFjLTEuMi0yNy4xLTE5LjItNDcuOS00MC4yLTQ3LjlzLTM2LjkgMjItMzUuNyA0OS4xIDE2LjkgMzYuOSAzNy44IDM2LjkgMzkuMy0xMSAzOC0zOC4xbC4xIDB6bS02MC4xIDcwLjhjMS41LTMuNi0xLTcuNy00LjktOC4xLTIzLTIuMy00Ny45LTMuNi03My44LTMuNnMtNTAuOCAxLjMtNzMuOCAzLjZjLTMuOSAuNC02LjQgNC41LTQuOSA4LjEgMTIuOSAzMC44IDQzLjMgNTIuNCA3OC43IDUyLjRzNjUuOC0yMS42IDc4LjctNTIuNHoiXX0sUmY9e3ByZWZpeDoiZmFiIixpY29uTmFtZToidGlrdG9rIixpY29uOls0NDgsNTEyLFtdLCJlMDdiIiwiTTQ0OC41IDIwOS45Yy00NCAuMS04Ny0xMy42LTEyMi44LTM5LjJsMCAxNzguN2MwIDMzLjEtMTAuMSA2NS40LTI5IDkyLjZzLTQ1LjYgNDgtNzYuNiA1OS42LTY0LjggMTMuNS05Ni45IDUuMy02MC45LTI1LjktODIuNy01MC44LTM1LjMtNTYtMzktODguOSAyLjktNjYuMSAxOC42LTk1LjIgNDAtNTIuNyA2OS42LTY3LjcgNjIuOS0yMC41IDk1LjctMTZsMCA4OS45Yy0xNS00LjctMzEuMS00LjYtNDYgLjRzLTI3LjkgMTQuNi0zNyAyNy4zLTE0IDI4LjEtMTMuOSA0My45IDUuMiAzMSAxNC41IDQzLjcgMjIuNCAyMi4xIDM3LjQgMjYuOSAzMS4xIDQuOCA0Ni0uMSAyOC0xNC40IDM3LjItMjcuMSAxNC4yLTI4LjEgMTQuMi00My44bDAtMzQ5LjQgODggMGMtLjEgNy40IC42IDE0LjkgMS45IDIyLjIgMy4xIDE2LjMgOS40IDMxLjkgMTguNyA0NS43czIxLjMgMjUuNiAzNS4yIDM0LjZjMTkuOSAxMy4xIDQzLjIgMjAuMSA2NyAyMC4xbDAgODcuNHoiXX0sT2ZlPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6IndvcmRwcmVzcyIsaWNvbjpbNTEyLDUxMixbXSwiZjE5YSIsIk02MS43IDE2OS40bDEwMS41IDI3OGMtNzEtMzQuNC0xMTkuOS0xMDcuMi0xMTkuOS0xOTEuNCAwLTMwLjkgNi42LTYwLjEgMTguNC04Ni42em0zMzcuOSA3NS45YzAtMjYuMy05LjQtNDQuNS0xNy41LTU4LjctMTAuOC0xNy41LTIwLjktMzIuNC0yMC45LTQ5LjkgMC0xOS42IDE0LjgtMzcuOCAzNS43LTM3LjggLjkgMCAxLjggLjEgMi44IC4yLTM3LjktMzQuNy04OC4zLTU1LjktMTQzLjctNTUuOS03NC4zIDAtMTM5LjcgMzguMS0xNzcuOCA5NS45IDUgLjIgOS43IC4zIDEzLjcgLjMgMjIuMiAwIDU2LjctMi43IDU2LjctMi43IDExLjUtLjcgMTIuOCAxNi4yIDEuNCAxNy41IDAgMC0xMS41IDEuMy0yNC4zIDJsNzcuNSAyMzAuNCA0Ni42LTEzOS42LTMzLjEtOTAuOGMtMTEuNS0uNy0yMi4zLTItMjIuMy0yLTExLjUtLjctMTAuMS0xOC4yIDEuMy0xNy41IDAgMCAzNS4xIDIuNyA1NiAyLjcgMjIuMiAwIDU2LjctMi43IDU2LjctMi43IDExLjUtLjcgMTIuOCAxNi4yIDEuNCAxNy41IDAgMC0xMS41IDEuMy0yNC4zIDJsNzYuOSAyMjguNyAyMS4yLTcwLjljOS0yOS40IDE2LTUwLjUgMTYtNjguN3pNMjU5LjcgMjc0LjZMMTk1LjkgNDYwLjFjMTkuMSA1LjYgMzkuMiA4LjcgNjAuMSA4LjcgMjQuOCAwIDQ4LjUtNC4zIDcwLjYtMTIuMS0uNi0uOS0xLjEtMS45LTEuNS0yLjlMMjU5LjcgMjc0LjZ6bTE4My0xMjAuN2MuOSA2LjggMS40IDE0IDEuNCAyMS45IDAgMjEuNi00IDQ1LjgtMTYuMiA3Ni4ybC02NSAxODcuOWM2My4zLTM2LjkgMTA1LjgtMTA1LjQgMTA1LjgtMTgzLjkgMC0zNy05LjQtNzEuOC0yNi0xMDIuMXpNOCAyNTZhMjQ4IDI0OCAwIDEgMSA0OTYgMCAyNDggMjQ4IDAgMSAxIC00OTYgMHptNDg0LjYgMGEyMzYuNiAyMzYuNiAwIDEgMCAtNDczLjIgMCAyMzYuNiAyMzYuNiAwIDEgMCA0NzMuMiAweiJdfSxSZmU9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiaWRlYWwiLGljb246WzUxMiw1MTIsW10sImUwMTMiLCJNOTMuOCAxNjUuNWE0OS4xIDQ5LjEgMCAxIDAgMCA5OC4xIDQ5LjEgNDkuMSAwIDEgMCAwLTk4LjF6TTU0LjMgNDI1LjhsNzguOSAwIDAtMTQwLjUtNzguOSAwIDAgMTQwLjV6TTIwNS44IDIxNC4yYzAtMjAtMTAtMjIuNS0xOC43LTIyLjVsLTE0IDAgMCA0NS44IDE0IDBjOS43IDAgMTguNy0yLjggMTguNy0yMy4zem0yMDEuNyA0NmwwLTkxLjMgMjIuOCAwIDAgNjguNiAzMy43IDBDNDU0LjYgMTEzLjEgMzU2LjggODYuMiAyNjcuOCA4Ni4ybC05NC44IDAgMCA4Mi44IDE0IDBjMjUuNiAwIDQxLjUgMTcuNCA0MS41IDQ1LjMgMCAyOC44LTE1LjUgNDYtNDEuNSA0NmwtMTQgMCAwIDE2NS42IDk0LjggMGMxNDQuNiAwIDE5NC45LTY3LjIgMTk2LjctMTY1LjZsLTU3LjEgMHptLTEwOS44IDBsLTU2LjIgMCAwLTkxLjIgNTQuNCAwIDAgMjIuNy0zMS43IDAgMCAxMC42IDMwIDAgMCAyMi43LTMwIDAgMCAxMi41IDMzLjUgMCAwIDIyLjd6bTc0LjcgMGwtNS4yLTE3LjctMjkuNyAwLTUuMiAxNy43LTIzLjcgMCAyNy41LTkxLjMgMzIuMyAwIDI3LjUgOTEuMy0yMy43IDB6TTI2Ny44IDMyTC4xIDMyIC4xIDQ4MCAyNjcuOCA0ODBjMTYxLjggMCAyNTEtNzkuNyAyNTEtMjI0LjUgMC04My41LTMyLjYtMjIzLjUtMjUxLTIyMy41em0wIDQyNi45bC0yNDYuNiAwIDAtNDA1LjkgMjQ2LjYgMGMxNDIuMSAwIDIyOS45IDY0LjYgMjI5LjkgMjAyLjQgMCAxMzQuMS04MSAyMDMuNC0yMjkuOSAyMDMuNHptODMuOS0yNjQuOWwtNy41IDI1LjggMTYuNCAwLTcuNS0yNS44LTEuNCAweiJdfSxCZmU9e3ByZWZpeDoiZmFiIixpY29uTmFtZToicGllZC1waXBlci1wcCIsaWNvbjpbNDQ4LDUxMixbXSwiZjFhNyIsIk0yMDUuMyAxNzQuNmMwIDIxLjEtMTQuMiAzOC4xLTMxLjcgMzguMS03LjEgMC0xMi44LTEuMi0xNy4yLTMuN2wwLTY4YzQuNC0yLjcgMTAuMS00LjIgMTcuMi00LjIgMTcuNSAwIDMxLjcgMTYuOSAzMS43IDM3Ljh6bTUyLjYgNjdjLTcuMSAwLTEyLjggMS41LTE3LjIgNC4ybDAgNjhjNC40IDIuNSAxMC4xIDMuNyAxNy4yIDMuNyAxNy40IDAgMzEuNy0xNi45IDMxLjctMzcuOCAwLTIxLjEtMTQuMy0zOC4xLTMxLjctMzguMXpNNDQ4IDgwbDAgMzUyYzAgMjYuNS0yMS41IDQ4LTQ4IDQ4TDQ4IDQ4MGMtMjYuNSAwLTQ4LTIxLjUtNDgtNDhMMCA4MEMwIDUzLjUgMjEuNSAzMiA0OCAzMmwzNTIgMGMyNi41IDAgNDggMjEuNSA0OCA0OHpNMTg1IDI1NS4xYzQxIDAgNzQuMi0zNS42IDc0LjItNzkuNlMyMjYgOTUuOSAxODUgOTUuOWMtMTIgMC0yNC4xIDMuMi0zNC42IDguOGwtNDUuNyAwIDAgMjA2LjMgNTEuOC0xMC4xIDAtNTAuNmM4LjYgMy4xIDE4LjEgNC44IDI4LjUgNC44em0xNTguNCAyNS4zYzAtNDQtMzMuMi03OS42LTczLjktNzkuNi0zLjIgMC02LjQgLjItOS42IC43LTMuNyAxMi41LTEwLjEgMjMuOC0xOS4yIDMzLjQtMTMuOCAxNS0zMi4yIDIzLjgtNTEuOCAyNC44bDAgMTU2LjMgNTEuOC0xMC4xIDAtNTAuNmM4LjYgMy4yIDE4LjIgNC43IDI4LjcgNC43IDQwLjggMCA3NC0zNS42IDc0LTc5LjZ6Il19LEhmZT17cHJlZml4OiJmYWIiLGljb25OYW1lOiJ1c3N1bm5haCIsaWNvbjpbNTEyLDUxMixbXSwiZjQwNyIsIk00OTYuOSAyNjguMWMwIDYzLjktMjUuNCAxMjUuMi03MC42IDE3MC4zUzMxOS45IDUwOSAyNTYgNTA5IDEzMC44IDQ4My41IDg1LjcgNDM4LjQgMTUuMSAzMzEuOSAxNS4xIDI2OGMwLTYzLjkgMjUuNC0xMjUuMiA3MC42LTE3MC40UzE5Mi4yIDI3LjEgMjU2LjEgMjcuMSAzODEuMyA1Mi40IDQyNi41IDk3LjYgNDk3IDIwNC4xIDQ5NyAyNjhsLS4xIC4xek0zOS41IDI2OGMtLjYgMjguOCA0LjUgNTcuNSAxNS4xIDg0LjNzMjYuNCA1MS4yIDQ2LjYgNzEuOCA0NC4yIDM3IDcwLjggNDguMSA1NS4xIDE2LjkgODMuOSAxNi45IDU3LjQtNS44IDgzLjktMTYuOSA1MC42LTI3LjUgNzAuOC00OC4xIDM2LTQ1IDQ2LjYtNzEuOCAxNS43LTU1LjUgMTUuMS04NC4zYy42LTI4LjgtNC41LTU3LjUtMTUuMS04NC4zcy0yNi40LTUxLjItNDYuNi03MS44LTQ0LjItMzctNzAuOC00OC4xLTU1LjEtMTYuOS04My45LTE2LjktNTcuNCA1LjgtODMuOSAxNi45LTUwLjYgMjcuNS03MC44IDQ4LjEtMzYgNDUtNDYuNiA3MS44LTE1LjcgNTUuNS0xNS4xIDg0LjN6bTM4NS45IDYzLjNjLTEyLjcgMC0yMS42LTEuOS0yNi43LTUuOS01LjUtNC4zLTguMi0xMi4zLTguMi0yMy44bDAtOTYuNWMwLTYuNS01LjItMjAuMi0xNS43LTQxLjIgNyAwIDE3LTkuMSAzMC0yNy4ybDAgMTQ3LjhjMCAxMSAyLjQgMTkuNCA3IDI1LjMgMy43IDQuNyAxMC4xIDguOSAxOSAxMi42IDEuMiAuNCAyLjYgLjkgNC4xIDEuNCAyLjkgLjkgNi4zIDIuMSAxMC4zIDMuNS0xLjggMi43LTguMyA0LTE5LjkgNGwuMSAwem0tMjE5IDBjLTEuMyAyLjQtMy42IDUuNS02LjggOS40bC0xOC41IDIyLjVjLTEtNi4xLTQtMTMtOS4zLTIwLjZzLTkuNy0xMS40LTEzLjQtMTEuNGwtODkuOCAwYzMuMy01LjMgNC45LTguOCA0LjktMTAuOHMtLjgtNS4zLTIuNC05LjdjLTEuNS00LjQtMi40LTguNS0yLjQtMTIuNCAwLTcuNCAyLjEtMTMuOSA2LjMtMTkuM2wyMC0yNS42LTcuMS0xNy43IDE2LjEtMTkuOCA2LjcgMTYuOCA4LTEwLjNjLTEuOCA2LjQtMi42IDEyLjMtMi42IDE3LjcgMCA0LjIgMi44IDEzLjMgOC4zIDI3LjNsMTYuMiA0MC43IDE3LjcgMGMyLjggLjQgNy43IDUgMTQuNiAxMy45IDEuOCAyLjQgNC4zIDUuOCA3LjcgMTAuMiAxLjQgMS45IDIuOSAzLjkgNC42IDYuMSAxLjMtMi4zIDItNC42IDItNy4xIDAtMi0xLjMtNi42LTQtMTMuNEwxNzggMzA0LjFjLTQtMTAuNi02LjEtMTcuNy02LjEtMjEuMyAwLTYuMyAxLjktMTIuMyA1LjgtMTcuOSAuNS0uNiAxLTEuMyAxLjUtMS45IDQuNC01LjYgOC44LTExLjEgMTMuMy0xNi41LTEuMSA0LjYtMS43IDguNy0xLjcgMTIgMCAzLjcgMS43IDkuOSA1LjEgMTguOGw3LjkgMjAuNGMxLjkgNC43IDMgOC4yIDMuNyAxMC4zbDI1LjkgMC0uOS0yLjZjLTEuNC0zLjktNC03LTcuNy05LjNsMTUuNi0yMC4xIDEyLjMgMzIgMTMuNCAwLTYuMS0xNS44Yy0xLjUtMy45LTQtNy03LjctOS4zbDE1LjctMjAuMSAxNy4zIDQ1LjIgMTMuNCAwLTExLjQtMjkuNGMtMS41LTMuOS00LTctNy43LTkuM2wxNS42LTIwIDIyLjQgNTguNyAyNi4yIDBjMS41IDAgMy0xLjEgNC41LTMuMXMyLjItNC4xIDIuMi02LjNsMC05My41YzAtNi41LTQuNS0yMC4zLTEzLjctNDEuMiA1LjQgMCAxNC4xLTkuMSAyNi4yLTI3LjJsMCAxNjMuNWMwIDcuMiAuNiAxMiAxLjcgMTQuNiAxLjYgMy40IDUuMyA2LjIgMTEuMSA4LjItMy45IDUuNi04LjcgOC41LTE0LjUgOC41bC0xNTQuOCAwLS4xLS4yem0tOTgtNDRjLTIuNy02LjctNC0xMS43LTQtMTUtLjYgMS4yLTIuNCAzLjctNS40IDcuNi0xLjQgMS45LTIuMiAzLjctMi4yIDUuMyAwIDIuNiAuOCA1LjcgMi4yIDkuM2w1LjYgMTMuOWM1IDAgOSAwIDExLjktLjFsLTguMi0yMC45IC4xLS4xem0xMy41LTcyLjRjLTMtNS4yLTctOS4zLTExLjktMTEuOS0zLjUtMS45LTUuMy00LjMtNS4zLTcuNCAwLTIuNCA0LjYtOC42IDE0LTE4LjMgLjIgMy44IDEuOSA3LjYgNC45IDExLjIgMy4xIDMuNiA0LjYgNyA0LjYgMTAuMSAwIDIuNi0yLjEgOC02LjIgMTYuM2wtLjEgMHptLTI3LjYgMGMtMy01LjItNy05LjMtMTEuOS0xMS45LTMuNS0xLjktNS4zLTQuMy01LjMtNy40IDAtMi40IDQuNi04LjYgMTQtMTguMyAuMiAzLjggMS45IDcuNiA0LjkgMTEuMiAzLjEgMy42IDQuNiA3IDQuNiAxMC4xIDAgMi42LTIuMSA4LTYuMiAxNi4zbC0uMSAwem04NyAyNy41Yy0zLTUuMi03LTkuMy0xMS45LTExLjktMy41LTEuOS01LjMtNC4zLTUuMy03LjQgMC0yLjQgNC42LTguNiAxNC0xOC4zIC4yIDMuOCAxLjkgNy42IDQuOSAxMS4yIDMuMSAzLjYgNC42IDcgNC42IDEwLjEgMCAyLjYtMi4xIDgtNi4yIDE2LjNsLS4xIDB6Il19LHFmZT17cHJlZml4OiJmYWIiLGljb25OYW1lOiJmb3J0LWF3ZXNvbWUtYWx0IixpY29uOls1MTIsNTEyLFtdLCJmM2EzIiwiTTIwOCAyMzcuNGwtMjIuMiAwYy0yLjEgMC0zLjcgMS42LTMuNyAzLjdsMCA1MS43YzAgMi4xIDEuNiAzLjcgMy43IDMuN2wyMi4yIDBjMi4xIDAgMy43LTEuNiAzLjctMy43bDAtNTEuN2MwLTIuMS0xLjYtMy43LTMuNy0zLjd6bTExOC4yIDBsLTIyLjIgMGMtMi4xIDAtMy43IDEuNi0zLjcgMy43bDAgNTEuN2MwIDIuMSAxLjYgMy43IDMuNyAzLjdsMjIuMiAwYzIuMSAwIDMuNy0xLjYgMy43LTMuN2wwLTUxLjdjLS4xLTIuMS0xLjctMy43LTMuNy0zLjd6bTEzMi0xMjUuMWMtMi4zLTMuMi00LjYtNi40LTcuMS05LjUtOS44LTEyLjUtMjAuOC0yNC0zMi44LTM0LjQtNC41LTMuOS05LjEtNy42LTEzLjktMTEuMi0xLjYtMS4yLTMuMi0yLjMtNC44LTMuNS0yNy42LTE5LjYtNTkuMy0zMy43LTkzLjYtNDAuNy0xNi4yLTMuMy0zMi45LTUtNTAtNXMtMzMuOSAxLjctNTAgNWMtMzQuMyA3LjEtNjYgMjEuMi05My4zIDQwLjgtMS42IDEuMS0zLjIgMi4zLTQuOCAzLjUtNC44IDMuNi05LjQgNy4zLTEzLjkgMTEuMi0zIDIuNi01LjkgNS4zLTguOCA4cy01LjcgNS41LTguNCA4LjRjLTUuNSA1LjctMTAuNyAxMS44LTE1LjYgMTgtMi40IDMuMS00LjggNi4zLTcuMSA5LjUtMjguOSA0MC42LTQ1LjggOTAuMS00NS44IDE0My42IDAgMiAuMSA0IC4xIDYgLjEgLjcgLjEgMS4zIC4xIDIgLjEgMS4zIC4xIDIuNyAuMiA0IDAgLjggLjEgMS41IC4xIDIuMyAwIDEuMyAuMSAyLjUgLjIgMy43IC4xIC44IC4xIDEuNiAuMiAyLjQgLjEgMS4xIC4yIDIuMyAuMyAzLjUgMCAuOCAuMSAxLjYgLjIgMi40IC4xIDEuMiAuMyAyLjQgLjQgMy42IC4xIC44IC4yIDEuNSAuMyAyLjMgLjEgMS4zIC4zIDIuNiAuNSAzLjkgLjEgLjYgLjIgMS4zIC4zIDEuOWwuOSA1LjdjLjEgLjYgLjIgMS4xIC4zIDEuNyAuMyAxLjMgLjUgMi43IC44IDQgLjIgLjggLjMgMS42IC41IDIuNCAuMiAxIC41IDIuMSAuNyAzLjIgLjIgLjkgLjQgMS43IC42IDIuNiAuMiAxIC40IDIgLjcgMyAuMiAuOSAuNSAxLjggLjcgMi43IC4zIDEgLjUgMS45IC44IDIuOSAuMyAuOSAuNSAxLjggLjggMi43IC4yIC45IC41IDEuOSAuOCAyLjhzLjUgMS44IC44IDIuN2MuMyAxIC42IDEuOSAuOSAyLjggLjYgMS42IDEuMSAzLjMgMS43IDQuOSAuNCAxIC43IDEuOSAxIDIuOCAuMyAxIC43IDIgMS4xIDMgLjMgLjggLjYgMS41IC45IDIuM2wxLjIgM2MuMyAuNyAuNiAxLjUgLjkgMi4yIC40IDEgLjkgMiAxLjMgM2wuOSAyLjFjLjUgMSAuOSAyIDEuNCAzIC4zIC43IC42IDEuMyAuOSAyIC41IDEgMSAyLjEgMS41IDMuMSAuMiAuNiAuNSAxLjEgLjggMS43IC42IDEuMSAxLjEgMi4yIDEuNyAzLjMgLjEgLjIgLjIgLjMgLjMgLjUgMi4yIDQuMSA0LjQgOC4yIDYuOCAxMi4yIC4yIC40IC41IC44IC43IDEuMiAuNyAxLjEgMS4zIDIuMiAyIDMuMyAuMyAuNSAuNiAuOSAuOSAxLjQgLjYgMS4xIDEuMyAyLjEgMiAzLjIgLjMgLjUgLjYgLjkgLjkgMS40IC43IDEuMSAxLjQgMi4xIDIuMSAzLjIgLjIgLjQgLjUgLjggLjggMS4yIC43IDEuMSAxLjUgMi4yIDIuMyAzLjMgLjIgLjIgLjMgLjUgLjUgLjcgMzcuNSA1MS43IDk0LjQgODguNSAxNjAgOTkuNCAuOSAuMSAxLjcgLjMgMi42IC40IDEgLjIgMi4xIC40IDMuMSAuNXMxLjkgLjMgMi44IC40YzEgLjIgMiAuMyAzIC40IC45IC4xIDEuOSAuMiAyLjkgLjNzMS45IC4yIDIuOSAuMyAyLjEgLjIgMy4xIC4zYy45IC4xIDEuOCAuMSAyLjcgLjIgMS4xIC4xIDIuMyAuMSAzLjQgLjIgLjggMCAxLjcgLjEgMi41IC4xIDEuMyAwIDIuNiAuMSAzLjkgLjEgLjcgLjEgMS40IC4xIDIuMSAuMSAyIC4xIDQgLjEgNiAuMXM0LS4xIDYtLjFjLjcgMCAxLjQtLjEgMi4xLS4xIDEuMyAwIDIuNiAwIDMuOS0uMSAuOCAwIDEuNy0uMSAyLjUtLjEgMS4xLS4xIDIuMy0uMSAzLjQtLjIgLjkgMCAxLjgtLjEgMi43LS4yIDEtLjEgMi4xLS4yIDMuMS0uM3MxLjktLjIgMi45LS4zYy45LS4xIDEuOS0uMiAyLjktLjNzMi0uMyAzLS40IDEuOS0uMyAyLjgtLjRjMS0uMiAyLjEtLjMgMy4xLS41IC45LS4xIDEuNy0uMyAyLjYtLjQgNjUuNi0xMSAxMjIuNS00Ny43IDE2MC4xLTEwMi40IC4yLS4yIC4zLS41IC41LS43IC44LTEuMSAxLjUtMi4yIDIuMy0zLjMgLjItLjQgLjUtLjggLjgtMS4yIC43LTEuMSAxLjQtMi4xIDIuMS0zLjIgLjMtLjUgLjYtLjkgLjktMS40IC42LTEuMSAxLjMtMi4xIDItMy4yIC4zLS41IC42LS45IC45LTEuNCAuNy0xLjEgMS4zLTIuMiAyLTMuMyAuMi0uNCAuNS0uOCAuNy0xLjIgMi40LTQgNC42LTguMSA2LjgtMTIuMiAuMS0uMiAuMi0uMyAuMy0uNSAuNi0xLjEgMS4xLTIuMiAxLjctMy4zIC4yLS42IC41LTEuMSAuOC0xLjcgLjUtMSAxLTIuMSAxLjUtMy4xIC4zLS43IC42LTEuMyAuOS0yIC41LTEgMS0yIDEuNC0zbC45LTIuMWMuNS0xIC45LTIgMS4zLTMgLjMtLjcgLjYtMS41IC45LTIuMmwxLjItM2MuMy0uOCAuNi0xLjUgLjktMi4zIC40LTEgLjctMiAxLjEtM3MuNy0xLjkgMS0yLjhjLjYtMS42IDEuMi0zLjMgMS43LTQuOSAuMy0xIC42LTEuOSAuOS0yLjhzLjUtMS44IC44LTIuN2MuMi0uOSAuNS0xLjkgLjgtMi44cy42LTEuOCAuOC0yLjdjLjMtMSAuNS0xLjkgLjgtMi45IC4yLS45IC41LTEuOCAuNy0yLjcgLjItMSAuNS0yIC43LTMgLjItLjkgLjQtMS43IC42LTIuNiAuMi0xIC41LTIuMSAuNy0zLjIgLjItLjggLjMtMS42IC41LTIuNCAuMy0xLjMgLjYtMi43IC44LTQgLjEtLjYgLjItMS4xIC4zLTEuN2wuOS01LjdjLjEtLjYgLjItMS4zIC4zLTEuOSAuMS0xLjMgLjMtMi42IC41LTMuOSAuMS0uOCAuMi0xLjUgLjMtMi4zIC4xLTEuMiAuMy0yLjQgLjQtMy42IDAtLjggLjEtMS42IC4yLTIuNCAuMS0xLjEgLjItMi4zIC4zLTMuNSAuMS0uOCAuMS0xLjYgLjItMi40IC4xIDEuNyAuMSAuNSAuMi0uNyAwLS44IC4xLTEuNSAuMS0yLjMgLjEtMS4zIC4yLTIuNyAuMi00IC4xLS43IC4xLTEuMyAuMS0yIC4xLTIgLjEtNCAuMS02IDAtNTMuNS0xNi45LTEwMy00NS44LTE0My43ek00NDggMzcxLjVjLTkuNCAxNS41LTIwLjYgMjkuOS0zMy42IDQyLjktMjAuNiAyMC42LTQ0LjUgMzYuNy03MS4yIDQ4LTEzLjkgNS44LTI4LjIgMTAuMy00Mi45IDEzLjJsMC03NS44YzAtNTguNi04OC42LTU4LjYtODguNiAwbDAgNzUuOGMtMTQuNy0yLjktMjktNy4zLTQyLjktMTMuMi0yNi43LTExLjMtNTAuNi0yNy40LTcxLjItNDgtMTMtMTMtMjQuMi0yNy40LTMzLjYtNDIuOWwwLTcxLjNjMC0yLjEgMS42LTMuNyAzLjctMy43bDIyLjEgMGMyLjEgMCAzLjcgMS42IDMuNyAzLjdsMCAyNS44IDI5LjYgMCAwLTE0NGMwLTIuMSAxLjYtMy43IDMuNy0zLjdsMjIuMSAwYzIuMSAwIDMuNyAxLjYgMy43IDMuN2wwIDI1LjkgMjkuNSAwIDAtMjUuOWMwLTIuMSAxLjYtMy43IDMuNy0zLjdsMjIuMiAwYzIuMSAwIDMuNyAxLjYgMy43IDMuN2wwIDI1LjkgMjkuNSAwIDAtMjUuOWMwLTQuOCA2LjUtMy43IDkuNS0zLjdsMC05MC4yYy00LjQtMi03LjQtNi43LTcuNC0xMS41IDAtMTYuOCAyNS40LTE2LjggMjUuNCAwIDAgNC44LTMgOS40LTcuNCAxMS41bDAgMy45YzYuMy0xLjQgMTIuNy0yLjMgMTkuMi0yLjMgOS40IDAgMTguNCAzLjUgMjYuMyAzLjUgNy4yIDAgMTUuMi0zLjUgMTkuNC0zLjUgMi4xIDAgMy43IDEuNiAzLjcgMy43bDAgNDguNGMwIDUuNi0xOC43IDYuNS0yMi40IDYuNS04LjYgMC0xNi42LTMuNS0yNS40LTMuNS03IDAtMTQuMSAxLjItMjAuOCAyLjhsMCAzMC43YzMgMCA5LjUtMS4xIDkuNSAzLjdsMCAyNS45IDI5LjUgMCAwLTI1LjljMC0yLjEgMS42LTMuNyAzLjctMy43bDIyLjIgMGMyLjEgMCAzLjcgMS42IDMuNyAzLjdsMCAyNS45IDI5LjUgMCAwLTI1LjljMC0yLjEgMS42LTMuNyAzLjctMy43bDIyLjEgMGMyLjEgMCAzLjcgMS42IDMuNyAzLjdsMCAxNDQgMjkuNSAwIDAtMjUuOGMwLTIuMSAxLjYtMy43IDMuNy0zLjdsMjIuMiAwYzIuMSAwIDMuNyAxLjYgMy43IDMuN2wwIDcxLjN6Il19LFZmZT17cHJlZml4OiJmYWIiLGljb25OYW1lOiJidXJvbW9iZWxleHBlcnRlIixpY29uOls0NDgsNTEyLFtdLCJmMzdmIiwiTTAgMzJsMCAxMjggMTI4IDAgMC0xMjgtMTI4IDB6TTEyMCAxNTJsLTExMiAwIDAtMTEyIDExMiAwIDAgMTEyek0xNjAgMzJsMCAxMjggMTI4IDAgMC0xMjgtMTI4IDB6TTI4MCAxNTJsLTExMiAwIDAtMTEyIDExMiAwIDAgMTEyek0zMjAgMzJsMCAxMjggMTI4IDAgMC0xMjgtMTI4IDB6TTQ0MCAxNTJsLTExMiAwIDAtMTEyIDExMiAwIDAgMTEyek0wIDE5MmwwIDEyOCAxMjggMCAwLTEyOC0xMjggMHpNMTIwIDMxMmwtMTEyIDAgMC0xMTIgMTEyIDAgMCAxMTJ6bTQwLTEyMGwwIDEyOCAxMjggMCAwLTEyOC0xMjggMHpNMjgwIDMxMmwtMTEyIDAgMC0xMTIgMTEyIDAgMCAxMTJ6bTQwLTEyMGwwIDEyOCAxMjggMCAwLTEyOC0xMjggMHpNNDQwIDMxMmwtMTEyIDAgMC0xMTIgMTEyIDAgMCAxMTJ6TTAgMzUybDAgMTI4IDEyOCAwIDAtMTI4LTEyOCAwek0xMjAgNDcybC0xMTIgMCAwLTExMiAxMTIgMCAwIDExMnptNDAtMTIwbDAgMTI4IDEyOCAwIDAtMTI4LTEyOCAwek0yODAgNDcybC0xMTIgMCAwLTExMiAxMTIgMCAwIDExMnptNDAtMTIwbDAgMTI4IDEyOCAwIDAtMTI4LTEyOCAweiJdfSxqZmU9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiYmlsaWJpbGkiLGljb246WzUxMiw1MTIsW10sImUzZDkiLCJNNDg4LjYgMTA0LjFjMTYuNyAxOC4xIDI0LjQgMzkuNyAyMy4zIDY1LjdsMCAyMDIuNGMtLjQgMjYuNC05LjIgNDguMS0yNi41IDY1LjEtMTcuMiAxNy0zOS4xIDI1LjktNjUuNSAyNi43TDkyIDQ2NGMtMjYuNC0uOC00OC4yLTkuOC02NS4zLTI3LjItMTcuMS0xNy40LTI2LTQwLjMtMjYuNy02OC42TDAgMTY5LjhjLjgtMjYgOS43LTQ3LjYgMjYuNy02NS43IDE3LjEtMTYuMyAzOC44LTI1LjMgNjUuMy0yNi4xbDI5LjQgMC0yNS40LTI1LjhjLTUuNy01LjctOC42LTEzLTguNi0yMS44czIuOS0xNi4xIDguNi0yMS44IDEzLTguNiAyMS45LTguNiAxNi4xIDIuOSAyMS45IDguNmw3My4zIDY5LjQgODggMCA3NC41LTY5LjRDMzgxLjcgMi45IDM4OS4yIDAgMzk4IDBzMTYuMSAyLjkgMjEuOSA4LjZjNS43IDUuNyA4LjYgMTMgOC42IDIxLjhzLTIuOSAxNi4xLTguNiAyMS44TDM5NC42IDc4IDQyMy45IDc4YzI2LjQgLjggNDggOS44IDY0LjcgMjYuMXptLTM4LjggNjkuN2MtLjQtOS42LTMuNy0xNy40LTEwLjctMjMuNS01LjItNi4xLTE0LTkuNC0yMi43LTkuOGwtMzIwLjQgMGMtOS42IC40LTE3LjQgMy43LTIzLjYgOS44LTYuMSA2LjEtOS40IDEzLjktOS44IDIzLjVsMCAxOTQuNGMwIDkuMiAzLjMgMTcgOS44IDIzLjVzMTQuNCA5LjggMjMuNiA5LjhsMzIwLjQgMGM5LjIgMCAxNy0zLjMgMjMuMy05LjhzOS43LTE0LjMgMTAuMS0yMy41bDAtMTk0LjR6TTE4NS41IDIxNi41YzYuMyA2LjMgOS43IDE0LjEgMTAuMSAyMy4ybDAgMzMuM2MtLjQgOS4yLTMuNyAxNi45LTkuOCAyMy4yLTYuMiA2LjMtMTQgOS41LTIzLjYgOS41cy0xNy41LTMuMi0yMy42LTkuNS05LjQtMTQtOS44LTIzLjJsMC0zMy4zYy40LTkuMSAzLjgtMTYuOSAxMC4xLTIzLjJzMTMuMi05LjYgMjMuMy0xMGM5LjIgLjQgMTcgMy43IDIzLjMgMTB6bTE5MS41IDBjNi4zIDYuMyA5LjcgMTQuMSAxMC4xIDIzLjJsMCAzMy4zYy0uNCA5LjItMy43IDE2LjktOS44IDIzLjJzLTE0IDkuNS0yMy42IDkuNS0xNy40LTMuMi0yMy42LTkuNWMtNy02LjMtOS40LTE0LTkuNy0yMy4ybDAtMzMuM2MuMy05LjEgMy43LTE2LjkgMTAtMjMuMnMxNC4xLTkuNiAyMy4zLTEwYzkuMiAuNCAxNyAzLjcgMjMuMyAxMHoiXX0sVWZlPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6Im5lb3MiLGljb246WzQ0OCw1MTIsW10sImY2MTIiLCJNMzgzLjggNTEybC05NS4xIDAtMTA4LjItMTU0LjUgMCA5MS4xLTg2LjQgNjMuNC05Ny43IDAgMC00ODIuMiA0MC41LTI5LjggMTA4IDAgMTIzLjcgMTc2LjEgMC0xMTIuNyA4Ni40LTYzLjQgOTcuNyAwIDAgNDYxLjUtNjguOSA1MC41ek03LjIgMzUuM2wwIDQ2MC43IDcyLTUyLjkgMC0yNDkuMSAyMTUuNSAzMDcuNiA4NC44IDAgNTIuNC0zOC4yLTc4LjMgMC0zMTYuMS00NTAuNS0zMC4yIDIyLjN6TTg5LjcgNTAxLjlsODAtNTguOCAwLTEwMS03OS44LTExNC40IDAgMjIwLjktNzIuNiA1My4zIDcyLjMgMCAwIDB6TTQ5IDEwLjhsMzEwLjYgNDQyLjYgODIuNCAwIDAtNDQyLjYtNzkuOCAwIDAgMzE3LjYtMjIyLjktMzE3LjYtOTAuMyAwek0yNzkuNCAxOTEuNmw3MiAxMDIuOCAwLTI3OC41LTcyIDUzIDAgMTIyLjd6Il19LFdmZT17cHJlZml4OiJmYWIiLGljb25OYW1lOiJkZXYiLGljb246WzQ0OCw1MTIsW10sImY2Y2MiLCJNMTIwLjEgMjA4LjNjLTMuOS0yLjktNy44LTQuMy0xMS42LTQuM2wtMTcuNCAwIDAgMTA0LjUgMTcuNCAwYzMuOSAwIDcuOC0xLjQgMTEuNi00LjNzNS44LTcuMyA1LjgtMTMuMWwwLTY5LjdjMC01LjgtMi0xMC4yLTUuOC0xMy4xek00MDQuMSAzMkw0My45IDMyQzE5LjcgMzIgLjEgNTEuNiAwIDc1LjhMMCA0MzYuMkMuMSA0NjAuNCAxOS43IDQ4MCA0My45IDQ4MGwzNjAuMiAwYzI0LjIgMCA0My44LTE5LjYgNDMuOS00My44bDAtMzYwLjRDNDQ3LjkgNTEuNiA0MjguMyAzMiA0MDQuMSAzMnpNMTU0LjIgMjkxLjJjMCAxOC44LTExLjYgNDcuMy00OC40IDQ3LjNsLTQ2LjQgMCAwLTE2NS41IDQ3LjQgMGMzNS40IDAgNDcuNCAyOC41IDQ3LjQgNDcuM2wwIDcwLjl6bTEwMC43LTg4LjdsLTUzLjMgMCAwIDM4LjQgMzIuNiAwIDAgMjkuNi0zMi42IDAgMCAzOC40IDUzLjMgMCAwIDI5LjYtNjIuMiAwYy0xMS4yIC4zLTIwLjQtOC41LTIwLjctMTkuN2wwLTEyNS4xYy0uMy0xMS4xIDguNi0yMC40IDE5LjctMjAuN2w2My4yIDAgMCAyOS41ek0zNTguNSAzMTcuOGMtMTMuMiAzMC43LTM2LjggMjQuNi00Ny40IDBsLTM4LjUtMTQ0LjggMzIuNiAwIDI5LjcgMTEzLjcgMjkuNi0xMTMuNyAzMi42IDAtMzguNSAxNDQuOHoiXX0sR2ZlPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImhvdGphciIsaWNvbjpbNTEyLDUxMixbXSwiZjNiMSIsIk0zNjEuOCAwYzAgMTMxLjYtODAuNyAxNzYuOC0xNDAuMiAyMDkuNC0uNiAuMy0xLjEgLjYtMS42IC45LTUzLjggMzAuMi04OC43IDQ5LjgtODkuNiAxMjJsLTk4LjEgMGMwLTEzMS41IDgwLjctMTc2LjcgMTQwLjItMjA5LjMgNTQuOC0yOS44IDkwLjMtNTAgOTAuMy0xMjNsOTkgMHpNMzAxLjMgMzAyLjZjNTQuOC0yOS44IDkwLjMtNTAgOTAuMy0xMjNsOTggMGMwIDEzMS42LTgwLjcgMTc2LjctMTQwLjIgMjA5LjQtNTQuOCAyOS44LTkwLjMgNTAtOTAuMyAxMjNsLTk4IDBjMC0xMzEuNiA4MC43LTE3Ni44IDE0MC4yLTIwOS40eiJdfSxZZmU9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiZG9jaHViIixpY29uOls0NDgsNTEyLFtdLCJmMzk0IiwiTTQxMy45IDE2MEwyNzIgMTYwIDI3MiAxOS42IDQxMy45IDE2MHpNMzIwIDE5MmwwIDEzMGMwIDY2LjgtMzYuNSAxMDAuMS0xMTMuMyAxMDAuMWwtOTQuNyAwIDAtMzM3LjMgOTQuNyAwYzEyIDAgMjMuMSAuOCAzMy4xIDIuNWwwLTg0QzIyOC45IDEuMSAyMTcuNCAwIDIwNS4yIDBMMTYgMCAxNiA1MTIgMjA1LjIgNTEyQzM0NS43IDUxMiA0MTYgNDQ3LjQgNDE2IDMxOC4xbDAtMTI2LjEtOTYgMHoiXX0sWmZlPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6InZpbWVvIixpY29uOls0NDgsNTEyLFtdLCJmNDBhIiwiTTQwMy4yIDMyTDQ0LjggMzJDMjAuMSAzMiAwIDUyLjEgMCA3Ni44TDAgNDM1LjJDMCA0NTkuOSAyMC4xIDQ4MCA0NC44IDQ4MGwzNTguNCAwYzI0LjcgMCA0NC44LTIwLjEgNDQuOC00NC44bDAtMzU4LjRDNDQ4IDUyLjEgNDI3LjkgMzIgNDAzLjIgMzJ6TTM3NyAxODAuOGMtMS40IDMxLjUtMjMuNCA3NC43LTY2IDEyOS40LTQ0IDU3LjItODEuMyA4NS44LTExMS43IDg1LjgtMTguOSAwLTM0LjgtMTcuNC00Ny45LTUyLjMtMjUuNS05My4zLTM2LjQtMTQ4LTU3LjQtMTQ4LTIuNCAwLTEwLjkgNS4xLTI1LjQgMTUuMkw1My40IDE5MS4zYzM3LjMtMzIuOCA3Mi45LTY5LjIgOTUuMi03MS4yIDI1LjItMi40IDQwLjcgMTQuOCA0Ni41IDUxLjcgMjAuNyAxMzEuMiAyOS45IDE1MSA2Ny42IDkxLjYgMTMuNS0yMS40IDIwLjgtMzcuNyAyMS44LTQ4LjkgMy41LTMzLjItMjUuOS0zMC45LTQ1LjgtMjIuNCAxNS45LTUyLjEgNDYuMy03Ny40IDkxLjItNzYgMzMuMyAuOSA0OSAyMi41IDQ3LjEgNjQuN3oiXX0sWGZlPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6Im1heGNkbiIsaWNvbjpbNTEyLDUxMixbXSwiZjEzNiIsIk00NjEuMSA0NDIuN2wtOTcuNCAwIDUxLjktMjQyLjdjMi4zLTEwLjIgLjktMTkuNS00LjQtMjUuNy01LTYuMS0xMy43LTkuNi0yNC4yLTkuNmwtNDkuMyAwLTU5LjUgMjc4LTk3LjQgMCA1OS41LTI3OC04My40IDAtNTkuNSAyNzgtOTcuNCAwIDU5LjUtMjc4LTQ0LjYtOTUuNCAzNzIuMSAwYzM5LjQgMCA3NS4zIDE2LjMgOTguMyA0NC45IDIzLjMgMjguNiAzMS44IDY3LjQgMjMuNiAxMDUuOUw0NjEuMSA0NDIuN3oiXX0sTEU9e3ByZWZpeDoiZmFiIixpY29uTmFtZToic3F1YXJlLWZvbnQtYXdlc29tZS1zdHJva2UiLGljb246WzQ0OCw1MTIsWyJmb250LWF3ZXNvbWUtYWx0Il0sImYzNWMiLCJNNjQgNjRDNDYuMyA2NCAzMiA3OC4zIDMyIDk2bDAgMzIwYzAgMTcuNyAxNC4zIDMyIDMyIDMybDMyMCAwYzE3LjcgMCAzMi0xNC4zIDMyLTMybDAtMzIwYzAtMTcuNy0xNC4zLTMyLTMyLTMyTDY0IDY0ek0wIDk2QzAgNjAuNyAyOC43IDMyIDY0IDMybDMyMCAwYzM1LjMgMCA2NCAyOC43IDY0IDY0bDAgMzIwYzAgMzUuMy0yOC43IDY0LTY0IDY0TDY0IDQ4MGMtMzUuMyAwLTY0LTI4LjctNjQtNjRMMCA5NnptMTU0IDU4YzAgOS4zLTQuOCAxNy40LTEyLjEgMjJsMTg4LjkgMGM3LjMgMCAxMy4yIDUuOSAxMy4yIDEzLjIgMCAxLjgtLjQgMy43LTEuMSA1LjRMMzEyIDI2NCAzNDIuOSAzMzMuNGMuOCAxLjcgMS4xIDMuNSAxLjEgNS40IDAgNy4zLTUuOSAxMy4yLTEzLjIgMTMuMmwtMTg2LjggMCAwIDMyLTMyIDAgMC0yMDkuNWMtNi4xLTQuOC0xMC0xMi4yLTEwLTIwLjUgMC0xNC40IDExLjYtMjYgMjYtMjZzMjYgMTEuNiAyNiAyNnoiXX0sS2ZlPUxFLFFmZT17cHJlZml4OiJmYWIiLGljb25OYW1lOiJzcGVha2FwIixpY29uOls0NDgsNTEyLFtdLCJmM2YzIiwiTTY0LjQgMzkxLjhDLTE1IDMwMy42LTcuNiAxNjcuNCA4MS4xIDg3LjZzMjI0LjgtNzMgMzA0LjIgMTUuMiA3MiAyMjQuNC0xNi42IDMwNC4xYy0xOC43IDE2LjkgNjQgNDMuMSA0MiA1Mi4zLTgyLjEgMzQuMi0yNTMuOSAzNS0zNDYuMi02Ny41bDAgMHpNMjc3LjcgMTgwLjJsMzguNS00MC45Yy05LjYtOC45LTMyLTI2LjgtNzYuMi0yNy42LTUyLjMtLjktOTUuOSAyOC4zLTk2LjggODAtLjIgMTEuMyAuMyAzNi43IDI5LjQgNTQuOCAzNC41IDIxLjQgODYuNSAyMS41IDg2IDUyLjMtLjQgMjEuMy0yNi40IDI1LjgtMzguNiAyNS42LTMgMC0zMC4yLS41LTQ3LjYtMjQuNmwtNDAgNDIuNmMyOC4yIDI3IDU5IDMyLjYgODMuNSAzMyAxMC4yIC4yIDk2LjQgLjMgOTcuOC04MSAuMy0xNS44LTIuMS0zOS43LTI4LjktNTYuNi0zNC40LTIxLjYtODUtMTkuNC04NC40LTQ5LjcgLjQtMjMuMyAzMS0yNS40IDM3LjUtMjUuMyAuNCAwIDI2LjYgLjMgMzkuNiAxNy40bDAgMHoiXX0sSmZlPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImZhbnRhc3ktZmxpZ2h0LWdhbWVzIixpY29uOls1MTIsNTEyLFtdLCJmNmRjIiwiTTI1NiAzMi45TDMyLjkgMjU2IDI1NiA0NzkuMSA0NzkuMSAyNTYgMjU2IDMyLjl6TTg4LjMgMjU1LjhjMi0yIDExLjktMTIuMyA5Ni41LTk3LjUgNDEuNC00MS44IDg2LjItNDMuOCAxMTkuOC0xOC43IDI0LjYgMTguNCA2Mi4xIDU4LjkgNjIuMSA1OSAuNyAuNyAxLjEgMi45IC42IDMuNC0xMS4zIDExLjgtMjIuNyAyMy41LTMzLjUgMzQuNy0zNC4yLTMyLjMtNDAuNS0zOC4yLTQ4LjUtNDQtMTcuOC0xMi43LTQxLjQtMTAuMS01NyA1LjEtMi4yIDIuMS0xLjggMy40IC4xIDUuNCAyLjkgMi45IDI4LjEgMjguMyAzNS4xIDM1LjgtMTEuOSAxMS42LTIzLjcgMjMtMzUuNyAzNC43LTEyLTEyLjUtMjQuNS0yNS41LTM2LjUtMzguMS0yMS40IDIxLjEtNDEuNyA0MS4xLTYxLjggNjFMODguMyAyNTUuOHpNMzIzLjIgMzU3LjRjLTM1LjUgMzUuNC03OC4xIDM4LjEtMTA3IDIwLjUtMjIuMS0xMy41LTM5LjQtMzIuMS03Mi45LTY2LjggMTItMTIuNCAyMy44LTI0LjQgMzUuNC0zNi4zIDMzIDMxLjkgMzcuMSAzNiA0NC43IDQyLjEgMTguNSAxNC43IDQyLjUgMTMuNyA1OS4zLTEuOCAzLjctMy40IDMuNy0zLjYgLjEtNy4yLTEwLjYtMTAuNy0yMS4yLTIxLjQtMzEuOC0zMi4yLTEuMy0xLjMtMy0yLjUtLjgtNC43IDEwLjgtMTAuNyAyMS41LTIxLjUgMzIuMi0zMi4zIC4zLS4zIC42LS40IDEuOS0xLjEgMTIuNCAxMi45IDI0LjkgMjUuOSAzNy4yIDM4LjggMjEtMjAuNyA0MS4yLTQwLjcgNjEuMy02MC40IDEzLjcgMTMuNCAyNy4xIDI2LjYgNDAuOSA0MC0yMC4yIDIwLjktODEuNyA4Mi43LTEwMC41IDEwMS41ek0yNTYgMEwwIDI1NiAyNTYgNTEyIDUxMiAyNTYgMjU2IDB6TTE2IDI1NkwyNTYgMTYgNDk2IDI1NiAyNTYgNDk2IDE2IDI1NnoiXX0sZW1lPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImxpbnV4IixpY29uOls0NDgsNTEyLFtdLCJmMTdjIiwiTTIyMC45IDEyMy4zYzEgLjUgMS44IDEuNyAzIDEuNyAxLjEgMCAyLjgtLjQgMi45LTEuNSAuMi0xLjQtMS45LTIuMy0zLjItMi45LTEuNy0uNy0zLjktMS01LjUtLjEtLjQgLjItLjggLjctLjYgMS4xIC4zIDEuMyAyLjMgMS4xIDMuNCAxLjd6TTE5OSAxMjVjMS4yIDAgMi0xLjIgMy0xLjcgMS4xLS42IDMuMS0uNCAzLjUtMS42IC4yLS40LS4yLS45LS42LTEuMS0xLjYtLjktMy44LS42LTUuNSAuMS0xLjMgLjYtMy40IDEuNS0zLjIgMi45IC4xIDEgMS44IDEuNSAyLjggMS40ek00MjAgNDAzLjhjLTMuNi00LTUuMy0xMS42LTcuMi0xOS43LTEuOC04LjEtMy45LTE2LjgtMTAuNS0yMi40LTEuMy0xLjEtMi42LTIuMS00LTIuOS0xLjMtLjgtMi43LTEuNS00LjEtMiA5LjItMjcuMyA1LjYtNTQuNS0zLjctNzkuMS0xMS40LTMwLjEtMzEuMy01Ni40LTQ2LjUtNzQuNC0xNy4xLTIxLjUtMzMuNy00MS45LTMzLjQtNzIgLjUtNDUuOSA1LjEtMTMxLjItNzUuOC0xMzEuMy0xMDIuNC0uMi03Ni44IDEwMy40LTc3LjkgMTM1LjItMS43IDIzLjQtNi40IDQxLjgtMjIuNSA2NC43LTE4LjkgMjIuNS00NS41IDU4LjgtNTguMSA5Ni43LTYgMTcuOS04LjggMzYuMS02LjIgNTMuMy02LjUgNS44LTExLjQgMTQuNy0xNi42IDIwLjItNC4yIDQuMy0xMC4zIDUuOS0xNyA4LjNzLTE0IDYtMTguNSAxNC41Yy0yLjEgMy45LTIuOCA4LjEtMi44IDEyLjQgMCAzLjkgLjYgNy45IDEuMiAxMS44IDEuMiA4LjEgMi41IDE1LjcgLjggMjAuOC01LjIgMTQuNC01LjkgMjQuNC0yLjIgMzEuNyAzLjggNy4zIDExLjQgMTAuNSAyMC4xIDEyLjMgMTcuMyAzLjYgNDAuOCAyLjcgNTkuMyAxMi41IDE5LjggMTAuNCAzOS45IDE0LjEgNTUuOSAxMC40IDExLjYtMi42IDIxLjEtOS42IDI1LjktMjAuMiAxMi41LS4xIDI2LjMtNS40IDQ4LjMtNi42IDE0LjktMS4yIDMzLjYgNS4zIDU1LjEgNC4xIC42IDIuMyAxLjQgNC42IDIuNSA2LjdsMCAuMWM4LjMgMTYuNyAyMy44IDI0LjMgNDAuMyAyMyAxNi42LTEuMyAzNC4xLTExIDQ4LjMtMjcuOSAxMy42LTE2LjQgMzYtMjMuMiA1MC45LTMyLjIgNy40LTQuNSAxMy40LTEwLjEgMTMuOS0xOC4zIC40LTguMi00LjQtMTcuMy0xNS41LTI5Ljd6TTIyMy44IDg3LjNjOS44LTIyLjIgMzQuMi0yMS44IDQ0LS40IDYuNSAxNC4yIDMuNiAzMC45LTQuMyA0MC40LTEuNi0uOC01LjktMi42LTEyLjYtNC45IDEuMS0xLjIgMy4xLTIuNyAzLjktNC42IDQuOC0xMS44LS4yLTI3LTkuMS0yNy4zLTcuMy0uNS0xMy45IDEwLjgtMTEuOCAyMy00LjEtMi05LjQtMy41LTEzLTQuNC0xLTYuOS0uMy0xNC42IDIuOS0yMS44ek0xODMuMSA3NS44YzEwLjEgMCAyMC44IDE0LjIgMTkuMSAzMy41LTMuNSAxLTcuMSAyLjUtMTAuMiA0LjYgMS4yLTguOS0zLjMtMjAuMS05LjYtMTkuNi04LjQgLjctOS44IDIxLjItMS44IDI4LjEgMSAuOCAxLjktLjItNS45IDUuNS0xNS42LTE0LjYtMTAuNS01Mi4xIDguNC01Mi4xem0tMTMuNiA2MC43YzYuMi00LjYgMTMuNi0xMCAxNC4xLTEwLjUgNC43LTQuNCAxMy41LTE0LjIgMjcuOS0xNC4yIDcuMSAwIDE1LjYgMi4zIDI1LjkgOC45IDYuMyA0LjEgMTEuMyA0LjQgMjIuNiA5LjMgOC40IDMuNSAxMy43IDkuNyAxMC41IDE4LjItMi42IDcuMS0xMSAxNC40LTIyLjcgMTguMS0xMS4xIDMuNi0xOS44IDE2LTM4LjIgMTQuOS0zLjktLjItNy0xLTkuNi0yLjEtOC0zLjUtMTIuMi0xMC40LTIwLTE1LTguNi00LjgtMTMuMi0xMC40LTE0LjctMTUuMy0xLjQtNC45IDAtOSA0LjItMTIuM3ptMy4zIDMzNGMtMi43IDM1LjEtNDMuOSAzNC40LTc1LjMgMTgtMjkuOS0xNS44LTY4LjYtNi41LTc2LjUtMjEuOS0yLjQtNC43LTIuNC0xMi43IDIuNi0yNi40bDAtLjJjMi40LTcuNiAuNi0xNi0uNi0yMy45LTEuMi03LjgtMS44LTE1IC45LTIwIDMuNS02LjcgOC41LTkuMSAxNC44LTExLjMgMTAuMy0zLjcgMTEuOC0zLjQgMTkuNi05LjkgNS41LTUuNyA5LjUtMTIuOSAxNC4zLTE4IDUuMS01LjUgMTAtOC4xIDE3LjctNi45IDguMSAxLjIgMTUuMSA2LjggMjEuOSAxNmwxOS42IDM1LjZjOS41IDE5LjkgNDMuMSA0OC40IDQxIDY4Ljl6bS0xLjQtMjUuOWMtNC4xLTYuNi05LjYtMTMuNi0xNC40LTE5LjYgNy4xIDAgMTQuMi0yLjIgMTYuNy04LjkgMi4zLTYuMiAwLTE0LjktNy40LTI0LjktMTMuNS0xOC4yLTM4LjMtMzIuNS0zOC4zLTMyLjUtMTMuNS04LjQtMjEuMS0xOC43LTI0LjYtMjkuOXMtMy0yMy4zLS4zLTM1LjJjNS4yLTIyLjkgMTguNi00NS4yIDI3LjItNTkuMiAyLjMtMS43IC44IDMuMi04LjcgMjAuOC04LjUgMTYuMS0yNC40IDUzLjMtMi42IDgyLjQgLjYtMjAuNyA1LjUtNDEuOCAxMy44LTYxLjUgMTItMjcuNCAzNy4zLTc0LjkgMzkuMy0xMTIuNyAxLjEgLjggNC42IDMuMiA2LjIgNC4xIDQuNiAyLjcgOC4xIDYuNyAxMi42IDEwLjMgMTIuNCAxMCAyOC41IDkuMiA0Mi40IDEuMiA2LjItMy41IDExLjItNy41IDE1LjktOSA5LjktMy4xIDE3LjgtOC42IDIyLjMtMTUgNy43IDMwLjQgMjUuNyA3NC4zIDM3LjIgOTUuNyA2LjEgMTEuNCAxOC4zIDM1LjUgMjMuNiA2NC42IDMuMy0uMSA3IC40IDEwLjkgMS40IDEzLjgtMzUuNy0xMS43LTc0LjItMjMuMy04NC45LTQuNy00LjYtNC45LTYuNi0yLjYtNi41IDEyLjYgMTEuMiAyOS4yIDMzLjcgMzUuMiA1OSAyLjggMTEuNiAzLjMgMjMuNyAuNCAzNS43IDE2LjQgNi44IDM1LjkgMTcuOSAzMC43IDM0LjgtMi4yLS4xLTMuMiAwLTQuMiAwIDMuMi0xMC4xLTMuOS0xNy42LTIyLjgtMjYuMS0xOS42LTguNi0zNi04LjYtMzguMyAxMi41LTEyLjEgNC4yLTE4LjMgMTQuNy0yMS40IDI3LjMtMi44IDExLjItMy42IDI0LjctNC40IDM5LjktLjUgNy43LTMuNiAxOC02LjggMjktMzIuMSAyMi45LTc2LjcgMzIuOS0xMTQuMyA3LjJ6bTI1Ny40LTExLjVjLS45IDE2LjgtNDEuMiAxOS45LTYzLjIgNDYuNS0xMy4yIDE1LjctMjkuNCAyNC40LTQzLjYgMjUuNXMtMjYuNS00LjgtMzMuNy0xOS4zYy00LjctMTEuMS0yLjQtMjMuMSAxLjEtMzYuMyAzLjctMTQuMiA5LjItMjguOCA5LjktNDAuNiAuOC0xNS4yIDEuNy0yOC41IDQuMi0zOC43IDIuNi0xMC4zIDYuNi0xNy4yIDEzLjctMjEuMSAuMy0uMiAuNy0uMyAxLS41IC44IDEzLjIgNy4zIDI2LjYgMTguOCAyOS41IDEyLjYgMy4zIDMwLjctNy41IDM4LjQtMTYuMyA5LS4zIDE1LjctLjkgMjIuNiA1LjEgOS45IDguNSA3LjEgMzAuMyAxNy4xIDQxLjYgMTAuNiAxMS42IDE0IDE5LjUgMTMuNyAyNC42ek0xNzMuNCAxNDguN2MyIDEuOSA0LjcgNC41IDggNy4xIDYuNiA1LjIgMTUuOCAxMC42IDI3LjMgMTAuNiAxMS42IDAgMjIuNS01LjkgMzEuOC0xMC44IDQuOS0yLjYgMTAuOS03IDE0LjgtMTAuNHM1LjktNi4zIDMuMS02LjYtMi42IDIuNi02IDUuMWMtNC40IDMuMi05LjcgNy40LTEzLjkgOS44LTcuNCA0LjItMTkuNSAxMC4yLTI5LjkgMTAuMnMtMTguNy00LjgtMjQuOS05LjdjLTMuMS0yLjUtNS43LTUtNy43LTYuOS0xLjUtMS40LTEuOS00LjYtNC4zLTQuOS0xLjQtLjEtMS44IDMuNyAxLjcgNi41eiJdfSx0bWU9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiY290dG9uLWJ1cmVhdSIsaWNvbjpbNTEyLDUxMixbXSwiZjg5ZSIsIk00NzQuMyAzMzAuNEM0NTAuNiA0MjIuMyAzODAuMSA0NzUgMjcyLjQgNDc4LjhsMC00OS4yYzAtNDggMjYuNC03NC40IDc0LjQtNzQuNCA2MiAwIDk5LjItMzcuMiA5OS4yLTk5LjIgMC02MS40LTM2LjUtOTguMy05Ny40LTk5LjEtMzMtNjkuMy0xNDYuNS02NC43LTE3Ny4yIDAtNjAuOSAuOC05Ny40IDM3LjctOTcuNCA5OS4xIDAgNjIuMSAzNy4zIDk5LjQgOTkuNCA5OS40IDQ4IDAgNzQuNiAyNi4yIDc0LjYgNzQuNGwwIDQ5LjJjLTEzNC40LTUtMjExLjEtODUuMS0yMTEuMS0yMjMgMC0xNDEuOCA4MS40LTIyMy4yIDIyMy4yLTIyMy4yIDExNC44IDAgMTg5LjggNTMuMiAyMTQuNyAxNDguOGwyNS4zIDBDNDczLjkgNzEuNSAzODguMiA4IDI1OS44IDggMTA1IDggMTIgMTAxLjIgMTIgMjU1LjggMTIgNDExLjEgMTA1LjIgNTA0LjMgMjU5LjggNTA0IDM4OC4xIDUwNCA0NzMuNyA0NDAuMiA0OTkuNSAzMzAuNGwtMjUuMiAwek0zNTcgMTgyLjNjNDEuNCAzLjQgNjQuMiAyOSA2NC4yIDczLjcgMCA0OC0yNi40IDc0LjQtNzQuNCA3NC40LTI4LjYgMC00OS4zLTkuNi02MS42LTI3LjMgODMuMS0xNi41IDc1LjYtOTkuNyA3MS44LTEyMC43em0tODEuNyA5Ny40Yy0yLjUtMTAuMy0xNi4zLTg3IDU2LjItOTcgMi4zIDEwLjEgMTYuNSA4Ny4xLTU2LjMgOTdsMCAwek0yNjAgMTMyYzI4LjYgMCA0OSA5LjcgNjEuNCAyNy42LTI4LjQgNS41LTQ5LjQgMjAuNi02MS42IDQzLjQtMTIuMi0yMi45LTMzLjItMzgtNjEuNi00My40IDEyLjQtMTcuNyAzMy4zLTI3LjQgNjEuNi0yNy40bC4yLS4zem0tNzEuNSA1MC43YzczLjIgMTAuNiA1OC45IDg2LjggNTYuNSA5Ny03Mi40LTkuOC01OS04Ny01Ni4yLTk3bC0uMiAwek0xNzMuMiAzMzAuNGMtNDggMC03NC40LTI2LjQtNzQuNC03NC40IDAtNDQuNCAyMi45LTcwIDY0LjItNzMuNy02LjggMzcuMi0xLjQgMTA2LjUgNzEuNiAxMjAuNy0xMi4xIDE3LjYtMzIuOCAyNy4zLTYxLjEgMjcuM2wtLjMgMHptNTMuMiAxMi40YzE0LjMtNy42IDI2LTE5LjMgMzMuNi0zMy41IDcuOCAxNC41IDE5LjMgMjUuNSAzMy44IDMzLjUtMTQuNCA3LjYtMjYuMSAxOS40LTMzLjYgMzMuOC04LTE0LjUtMTkuMS0yNi4yLTMzLjYtMzMuOGwtLjMgMHoiXX0sYW1lPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6Imdvb2dsZS13YWxsZXQiLGljb246WzQ0OCw1MTIsW10sImYxZWUiLCJNMTU2LjggMTI2LjhjMzcuNiA2MC42IDY0LjIgMTEzLjEgODQuMyAxNjIuNS04LjMgMzMuOC0xOC44IDY2LjUtMzEuMyA5OC4zLTEzLjItNTIuMy0yNi41LTEwMS4zLTU2LTE0OC41IDYuNS0zNi40IDIuMy03My42IDMtMTEyLjN6TTEwOS4zIDIwMGwtOTMuMiAwYy02LjUgMC0xMC41IDcuNS02LjUgMTIuNyA0Mi4yIDU0LjMgNzEuNyAxMTcuOCA5MS43IDE4Ny4zbDEwMy41IDBjLTE2LjItNjkuNy0zOC43LTEzMy43LTgyLjUtMTkzLjUtMy00LTgtNi41LTEzLTYuNXptNDcuOC04OGM2OC41IDEwOCAxMzAgMjM0LjUgMTM4LjIgMzY4TDQwOSA0ODBjLTEyLTEzOC02OC40LTI2NS0xNDMuMi0zNjhsLTEwOC43IDB6TTQwOC45IDQzLjVjLTEuOC02LjgtOC4yLTExLjUtMTUuMi0xMS41bC04OC4zIDBjLTUuMyAwLTkgNS03LjggMTAuMyAxMy4yIDQ2LjUgMjIuMyA5NS41IDI2LjUgMTQ2IDQ4LjIgODYuMiA3OS43IDE3OC4zIDkwLjYgMjcwLjggMTUuOC02MC41IDI1LjMtMTMzLjUgMjUuMy0yMDMgMC03My42LTEyLjEtMTQ1LjEtMzEuMS0yMTIuNnoiXX0saW1lPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImZvdXJzcXVhcmUiLGljb246WzM4NCw1MTIsW10sImYxODAiLCJNMzMxLjEgM0w1Ny45IDNDMjAuNCAzIDggMzEuMyA4IDQ5LjFMOCA0ODIuOWMwIDIwLjMgMTIuMSAyNy43IDE4LjIgMzAuMSA2LjIgMi41IDIyLjggNC42IDMyLjktNy4xIDEyOC45LTE0OS40IDEzMS4xLTE1MS45IDEzMS4xLTE1MS45IDMuMS0zLjQgMy40LTMuMSA2LjgtMy4xbDgzLjQgMGMzNS4xIDAgNDAuNi0yNS4yIDQ0LjMtMzkuN2w0OC42LTI0M0MzODEuOCAyNS44IDM3MS4xIDMgMzMxLjEgM3pNMzE0LjggNzYuOGwtMTEuNCA1OS43Yy0xLjIgNi41LTkuNSAxMy4yLTE2LjkgMTMuMmwtMTA2LjQgMGMtMTIgMC0yMC42IDguMy0yMC42IDIwLjNsMCAxM2MwIDEyIDguNiAyMC42IDIwLjYgMjAuNmw5MC40IDBjOC4zIDAgMTYuNiA5LjIgMTQuOCAxOC4yLTEuOCA4LjktMTAuNSA1My44LTExLjQgNTguOC0uOSA0LjktNi44IDEzLjUtMTYuOSAxMy41bC03My41IDBjLTEzLjUgMC0xNy4yIDEuOC0yNi41IDEyLjYgMCAwLTguOSAxMS40LTg5LjUgMTA4LjMtLjkgLjktMS44IC42LTEuOC0uM2wwLTMzOC44YzAtNy43IDYuOC0xNi42IDE2LjYtMTYuNmwyMTkgMGM4LjIgMCAxNS42IDcuNyAxMy41IDE3LjV6Il19LHJtZT17cHJlZml4OiJmYWIiLGljb25OYW1lOiJzaGlydHNpbmJ1bGsiLGljb246WzQ0OCw1MTIsW10sImYyMTQiLCJNMTAwIDQxMC4zbDMwLjYgMTMuNCA0LjQtOS45LTMwLjYtMTMuNC00LjQgOS45em0zOS40IDE3LjVsMzAuNiAxMy40IDQuNC05LjktMzAuNi0xMy40LTQuNCA5Ljl6bTE3Mi4xLTE0bDQuNCA5LjkgMzAuNi0xMy40LTQuNC05LjktMzAuNiAxMy40ek0xNzkuMSA0NDVsMzAuMyAxMy43IDQuNC05LjktMzAuMy0xMy40LTQuNCA5LjZ6TTYwLjQgMzkyLjhsMzAuNiAxMy40IDQuNC05LjYtMzAuNi0xMy43LTQuNCA5Ljl6bTIxMS40IDM4LjVsNC40IDkuOSAzMC42LTEzLjQtNC40LTkuOS0zMC42IDEzLjR6bS0zOS4zIDE3LjVsNC40IDkuOSAzMC42LTEzLjctNC40LTkuNi0zMC42IDEzLjR6bTExOC40LTUyLjJsNC40IDkuNiAzMC42LTEzLjQtNC40LTkuOS0zMC42IDEzLjd6TTE3MCA0Ni42bC0zMy41IDAgMCAxMC41IDMzLjUgMCAwLTEwLjV6bS00Ny4yIDBsLTMzLjYgMCAwIDEwLjUgMzMuNSAwIC4xLTEwLjV6bS00Ny4zIDBsLTMzLjIgMCAwIDEwLjUgMzMuMyAwLS4xLTEwLjV6bTE0MS41IDBsLTMzLjIgMCAwIDEwLjUgMzMuMiAwIDAtMTAuNXptOTQuNSAwbC0zMy41IDAgMCAxMC41IDMzLjUgMCAwLTEwLjV6bTQ3LjMgMGwtMzMuNSAwIDAgMTAuNSAzMy41IDAgMC0xMC41em0tOTQuNiAwbC0zMy4yIDAgMCAxMC41IDMzLjIgMCAwLTEwLjV6bTE0MS41IDBsLTMzLjMgMCAwIDEwLjUgMzMuMyAwIDAtMTAuNXpNNTIuOCAzNTEuMWwtMTAuOCAwIDAgMzMuNSAxMC44IDAgMC0zMy41em03MC0yMTUuOWwtMzMuNiAwIDAgMTAuNSAzMy41IDAgLjEtMTAuNXptLTcwIDEwLjZsMjIuOCAwIDAtMTAuNS0zMy42IDAgMCAzMy41IDEwLjggMCAwLTIzek0yMjEuNyAzNzQuNGE5MS4zIDkxLjMgMCAxIDAgMC0xODIuNiA5MS4zIDkxLjMgMCAxIDAgMCAxODIuNnpNMTczLjUgMjYzLjNjMC0yNS40IDI5LjUtMzEuOCA0OS42LTMxLjggMTYuOSAwIDI5LjIgNS44IDQ0LjMgMTJsLTguOCAxNi45LS45IDBjLTYuNC05LjktMjQuOC0xMy4xLTM1LjYtMTMuMS05IDAtMjkuOCAxLjgtMjkuOCAxNC45IDAgMjEuNiA3OC41LTEwLjIgNzguNSAzNy45IDAgMjUuNC0zMS41IDMxLjItNTEgMzEuMi0xOC4xIDAtMzIuNC0yLjktNDcuMi0xMi4ybDktMTguNCAuOSAwYzYuMSAxMi4yIDIzLjYgMTQuOSAzNS45IDE0LjkgOC43IDAgMzIuNy0xLjIgMzIuNy0xNC4zIDAtMjYuMS03Ny42IDYuMy03Ny42LTM4ek01Mi44IDE3OC40bC0xMC44IDAgMCAzMy42IDEwLjggMCAwLTMzLjZ6TTM5NS4yIDM4NC42bDEwLjggMCAwLTMzLjUtMTAuOCAwIDAgMzMuNXpNNTIuOCAzMDcuOWwtMTAuOCAwIDAgMzMuNSAxMC44IDAgMC0zMy41ek0wIDMuN2wwIDQwNiAyMjEuNyA5OC42IDIyNi4zLTk4LjYgMC00MDYtNDQ4IDB6TTQxOC44IDM5MC44bC0xOTYuOCA4NS43LTE5Mi44LTg1LjcgMC0yNzAuMSAzODkuNyAwIDAgMjcwLjEtLjEgMHptMC0yOTkuM2wtMzg5LjYgMCAwLTU4LjYgMzg5LjcgMCAwIDU4LjYtLjEgMHpNNTIuOCAyMjEuNmwtMTAuOCAwIDAgMzMuNSAxMC44IDAgMC0zMy41em0wIDQzLjJsLTEwLjggMCAwIDMzLjUgMTAuOCAwIDAtMzMuNXpNMTcwIDEzNS4ybC0zMy41IDAgMCAxMC41IDMzLjUgMCAwLTEwLjV6TTM5NS4yIDI5OC4zbDEwLjggMCAwLTMzLjUtMTAuOCAwIDAgMzMuNXptMC00My4ybDEwLjggMCAwLTMzLjUtMTAuOCAwIDAgMzMuNXpNMjE3IDEzNS4ybC0zMy4yIDAgMCAxMC41IDMzLjIgMCAwLTEwLjV6TTM5NS4yIDIxMmwxMC44IDAgMC0zMy41LTEwLjggMCAwIDMzLjV6bTAgMTI5LjVsMTAuOCAwIDAtMzMuNS0xMC44IDAgMCAzMy41em0tMTMxLTIwNi4zbC0zMy4yIDAgMCAxMC41IDMzLjIgMCAwLTEwLjV6bTQ3LjMgMGwtMzMuNSAwIDAgMTAuNSAzMy41IDAgMC0xMC41em04My43IDMzLjZsMTAuOCAwIDAtMzMuNS0zMy41IDAgMCAxMC41IDIyLjggMC0uMSAyM3ptLTM2LjQtMzMuNmwtMzMuNSAwIDAgMTAuNSAzMy41IDAgMC0xMC41eiJdfSxzbWU9e3ByZWZpeDoiZmFiIixpY29uTmFtZToibWludGJpdCIsaWNvbjpbNTEyLDUxMixbXSwiZTYyZiIsIk03My4yIDUxMmwwLTczLjEgMjkyLjUgMCAwLTczLjIgNzMuMiAwIDAtMTQ2LjMgNzMuMSAwIDAtMjE5LjQtMjE5LjQgMCAwIDczLjEtMTQ2LjMgMCAwIDczLjItNzMuMSAwIDAgMjkyLjYtNzMuMiAwIDAgNzMuMSA3My4yIDB6bTczLjEtMjE5LjRsNzMuMiAwIDAgNzMuMS03My4yIDAgMC03My4xem03My4yLTczLjFsNzMuMSAwIDAgNzMuMS03My4yIDAgMC03My4yIC4xIC4xem03My4xIDBsMC03My4yIDczLjIgMCAwIDczLjEtNzMuMiAwIDAgLjF6TTM2NS43IDczLjFsNzMuMiAwIDAgNzMuMi03My4yIDAgMC03My4yeiJdfSxubWU9e3ByZWZpeDoiZmFiIixpY29uTmFtZToienVsaXAiLGljb246WzQ0OCw1MTIsW10sImU4NTMiLCJNNDI0IDk5YzAgMjIuNi0xMC4xIDQyLjYtMjUuNSA1NC44TDI0OS4zIDI4Ny43Yy0yLjggMi40LTYuNC0xLjUtNC40LTQuN2w1NC43LTExMC4xYzEuNS0zLjEtLjUtNi45LTMuNi02LjlMODMuOCAxNjZDNTAuOSAxNjYgMjQgMTM1LjkgMjQgOTkgMjQgNjIuMSA1MC45IDMyIDgzLjggMzJsMjgwLjQgMEMzOTcuMSAzMiA0MjQgNjIuMSA0MjQgOTl6TTgzLjggNDgwbDI4MC40IDBjMzIuOSAwIDU5LjgtMzAuMiA1OS44LTY3cy0yNi45LTY3LTU5LjgtNjdsLTIxMi4zIDBjLTMuMSAwLTUuMS0zLjgtMy42LTYuOUwyMDMuMSAyMjljMi0zLjItMS42LTcuMS00LjQtNC43TDQ5LjUgMzU4LjJDMzQuMSAzNzAuNCAyNCAzOTAuNCAyNCA0MTMgMjQgNDQ5LjggNTAuOSA0ODAgODMuOCA0ODB6Il19LG9tZT17cHJlZml4OiJmYWIiLGljb25OYW1lOiJzdGF5bGlua2VkIixpY29uOls0NDgsNTEyLFtdLCJmM2Y1IiwiTTM4Ni43IDI5Mi41bDIuNyAyLjctMTcwLTE2Ny4zYy0zLjUtMy41LTkuNy0zLjctMTMuOC0uNUwxNDguMyAxNzFjLTQuMiAzLjItNC42IDguNy0xLjEgMTIuMmw2OC4xIDY0LjNjMy42IDMuNSA5LjkgMy43IDE0IC41bC4xLS4xYzQuMS0zLjIgMTAuNC0zIDE0IC41bDg0IDgxLjNjMy42IDMuNSAzLjIgOS0uOSAxMi4ybC05My4yIDc0Yy00LjIgMy4zLTEwLjUgMy4xLTE0LjItLjRMNjcuMiAyNjhjLTMuNS0zLjUtOS43LTMuNy0xMy45LS41TDcuNSAzMDIuNGMtNC4yIDMuMi00LjcgOC43LTEuMiAxMi4yTDIxNSA1MTAuN3M3LjQgNi44IDE3LjMtLjhMNDMwLjMgMzQ2YzQtMy4yIDQuNC04LjcgLjctMTIuMmwtNDQuMy00MS4zem01NC41LTgzLjRMMjMwLjcgMi41Yy0xLjUtMS4yLTgtNS41LTE2LjMgMS4xTDcuNiAxNjUuN2MtNC4yIDMuMi00LjggOC43LTEuMiAxMi4ybDQyLjMgNDEuNyAxNzEuNyAxNjUuMWMzLjcgMy41IDEwLjEgMy43IDE0LjMgLjRsNTAuMi0zOC44LS4zLS4zIDcuNy02YzQuMi0zLjIgNC42LTguNyAuOS0xMi4ybC01Ny4xLTU0LjRjLTMuNi0zLjUtMTAtMy43LTE0LjItLjVsLS4xIC4xYy00LjIgMy4yLTEwLjUgMy4xLTE0LjItLjRMMTEzIDE4MC44Yy0zLjYtMy41LTMuMS04LjkgMS4xLTEyLjJsOTIuMi03MS41YzQuMS0zLjIgMTAuMy0zIDEzLjkgLjVsMTYwLjQgMTU5YzMuNyAzLjUgMTAgMy43IDE0LjEgLjVsNDUuOC0zNS44YzQuMS0zLjIgNC40LTguNyAuNy0xMi4yeiJdfSxsbWU9e3ByZWZpeDoiZmFiIixpY29uTmFtZToid2ViZmxvdyIsaWNvbjpbNjQwLDUxMixbXSwiZTY1YyIsIk02NDAgNjRsLTIwNC4yIDM5OS4yLTE5MS44IDAgODUuNS0xNjUuNS0zLjggMEMyNTUuMSAzODkuMyAxNDkuOSA0NDkuNSAwIDQ2My4yTDAgMzAwLjFzOTUuOS01LjcgMTUyLjMtNjQuOWwtMTUyLjMgMCAwLTE3MS4yIDE3MS4xIDAgMCAxNDAuOCAzLjggMCA3MC0xNDAuOCAxMjkuNCAwIDAgMTM5LjkgMy44IDAgNzIuNi0xMzkuOSAxODkuMyAweiJdfSxjbWU9e3ByZWZpeDoiZmFiIixpY29uTmFtZToicmVucmVuIixpY29uOls1MTIsNTEyLFtdLCJmMThiIiwiTTIxNCAxNjkuMUMyMTQgMjc5LjUgMTUzIDM3NC41IDY2LjQgNDE2LjUgMzAgMzczLjIgOCAzMTcuNyA4IDI1Ni42IDggMTMzLjkgOTcuMSAzMi4yIDIxNCAxMi41bDAgMTU2LjZ6TTI1NSA1MDRjLTQyLjkgMC04My4zLTExLTExOC41LTMwLjQgNTcuMi0zNi4xIDEwMy40LTkwLjcgMTE4LjUtMTU0LjYgMTUuNSA2My45IDYxLjcgMTE4LjUgMTE4LjggMTU0LjctMzUuMSAxOS4zLTc1LjUgMzAuMy0xMTguOCAzMC4zem0xOTAuNi04Ny41QzM1OSAzNzQuNSAyOTggMjc5LjYgMjk4IDE2OS4xbDAtMTU2LjZjMTE2LjkgMTkuNyAyMDYgMTIxLjQgMjA2IDI0NC4xIDAgNjEuMS0yMiAxMTYuNi01OC40IDE1OS45eiJdfSxkbWU9e3ByZWZpeDoiZmFiIixpY29uTmFtZToia28tZmkiLGljb246WzUxMiw1MTIsW10sImU4NTYiLCJNMjQ5LjggNzVjODkuOCAwIDExMyAxLjEgMTQ2LjMgNC40IDc4LjEgNy44IDEyMy42IDU2IDEyMy42IDEyNS4ybDAgOC45YzAgNjQuMy00Ny4xIDExNi45LTExMC44IDEyMi40LTUgMTYuNi0xMi44IDMzLjItMjMuMyA0OS45LTI0LjQgMzcuNy03My4xIDg1LjMtMTYyLjkgODUuM2wtMTcuNyAwYy03My4xIDAtMTI5LjctMzEuNi0xNjMuNS04OS4yLTI5LjktNTAuNC0zMy44LTEwNi40LTMzLjgtMTgxLjIgMC03My43IDQ0LjQtMTEzLjYgOTYuNC0xMjAuMiAzOS4zLTUgODguMS01LjUgMTQ1LjctNS41em0wIDQxLjZjLTYwLjQgMC0xMDMuNiAuNS0xMzYuMyA1LjUtNDYgNi43LTY0LjMgMzIuNy02NC4zIDc5LjJsLjIgMjUuN2MxLjIgNTcuMyA3LjEgOTcuMSAyNy41IDEzNC41IDI2LjYgNDkuMyA3NC44IDY4LjIgMTI5LjcgNjguMmwxNy4yIDBjNzIgMCAxMDctMzQuOSAxMjYuMy02NS40IDkuNC0xNS41IDE3LjctMzIuNyAyMi4yLTU0LjNsMy4zLTEzLjggMTkuOSAwYzQ0LjMgMCA4Mi42LTM2IDgyLjYtODJsMC04LjNjMC01MS41LTMyLjItNzguNy04OC4xLTg1LjMtMzEuNi0yLjgtNTAuNC0zLjktMTQwLjItMy45ek0yNjcgMTY5LjJjMzguMiAwIDY0LjggMzEuNiA2NC44IDY3IDAgMzIuNy0xOC4zIDYxLTQyLjEgODMuMS0xNSAxNS0zOS4zIDMwLjUtNTUuOSA0MC41LTQuNCAyLjgtMTAgNC40LTE2LjcgNC40LTUuNSAwLTEwLjUtMS43LTE1LjUtNC40LTE2LjYtMTAtNDEtMjUuNS01Ni41LTQwLjUtMjEuOC0yMC44LTM5LjItNDYuOS00MS4zLTc3bC0uMi02LjFjMC0zNS41IDI1LjUtNjcgNjQuMy02NyAyMi43IDAgMzguOCAxMS42IDQ5LjMgMjcuNyAxMS42LTE2LjEgMjcuMi0yNy43IDQ5LjktMjcuN3ptMTIyLjUtMy45YzI4LjMgMCA0My44IDE2LjYgNDMuOCA0My4ycy0xNS41IDQyLjctNDMuOCA0Mi43Yy04LjkgMC0xMy44LTUtMTMuOC0xMS43bDAtNjIuNmMwLTYuNyA1LTExLjYgMTMuOC0xMS42eiJdfSxobWU9e3ByZWZpeDoiZmFiIixpY29uTmFtZToicmV2IixpY29uOls0NDgsNTEyLFtdLCJmNWIyIiwiTTE1OC43IDI3NC45YTY1LjYgNjUuNiAwIDEgMSAxMzEuMiAwIDY1LjYgNjUuNiAwIDEgMSAtMTMxLjIgMHptMjcwLjctNS4xbC0uMSAwYy0uNy0yOS4zLTcuNy01OC4yLTIwLjUtODQuNnMtMzEuMi00OS43LTUzLjgtNjguNEwzMDkuNiAxNDNjMjIgMTQuMiA0MC4xIDMzLjggNTIuNyA1Ni44czE5LjEgNDguOCAxOS4xIDc1LjFjMCA4Ni42LTcwLjUgMTU3LjEtMTU3LjEgMTU3LjFTNjcuMiAzNjEuNSA2Ny4yIDI3NC45YzAtODEuOSA2My0xNDkuMyAxNDMtMTU2LjRsMCAzOS4xIDEwOC44LTYyLjgtMTA4LjgtNjIuOCAwIDM4LjNjLTEwNi43IDcuMi0xOTEgOTYtMTkxIDIwNC42IDAgMTExLjYgODkuMSAyMDIuMyAyMDAuMSAyMDVsMCAuMSAyMTAuMiAwIDAtMjEwLjJ6Il19LHBtZT17cHJlZml4OiJmYWIiLGljb25OYW1lOiJrZXljZG4iLGljb246WzUxMiw1MTIsW10sImYzYmEiLCJNNjMuOCA0MDkuM2w2MC41LTU5YzMyLjEgNDIuOCA3MS4xIDY2IDEyNi42IDY3LjQgMzAuNSAuNyA2MC4zLTcgODYuNC0yMi40IDUuMSA1LjMgMTguNSAxOS41IDIwLjkgMjItMzIuMiAyMC43LTY5LjYgMzEuMS0xMDguMSAzMC4yLTQzLjMtMS4xLTg0LjYtMTYuNy0xMTcuNy00NC40IC4zLS42LTM4LjIgMzcuNS0zOC42IDM3LjkgOS41IDI5LjgtMTMuMSA2Mi40LTQ2LjMgNjIuNC0yNi44LS4xLTQ3LjUtMjEuNy00Ny41LTQ4LjUgMC0zNC4zIDMzLjEtNTYuNiA2My44LTQ1LjZ6TTQxOC43IDE1Ni45YzE5LjEgMzEuMyAyOS42IDY3LjQgMjguNyAxMDQtMS4xIDQ0LjgtMTkgODcuNS00OC42IDEyMSAuMyAuMyAyMy44IDI1LjIgMjQuMSAyNS41IDkuNi0xLjMgMTkuMiAyIDI1LjkgOS4xIDExLjMgMTIgMTAuOSAzMC45LTEuMSA0Mi40LTEyIDExLjMtMzAuOSAxMC45LTQyLjQtMS4xLTYuNy03LTkuNC0xNi44LTcuNi0yNi4zLTI0LjktMjYuNi00NC40LTQ3LjItNDQuNC00Ny4yIDQyLjctMzQuMSA2My4zLTc5LjYgNjQuNC0xMjQuMiAuNy0yOC45LTcuMi01Ny4yLTIxLjEtODIuMmwyMi4xLTIxek0xMDQgNTMuMWM2LjcgNyA5LjQgMTYuOCA3LjYgMjYuM2w0NS45IDQ4LjFjLTQuNyAzLjgtMTMuMyAxMC40LTIyLjggMjEuMy0yNS40IDI4LjUtMzkuNiA2NC44LTQwLjcgMTAyLjktLjcgMjguOSA2LjEgNTcuMiAyMCA4Mi40TDkyIDM1NS42Yy0xOS4zLTMxLjYtMjguOS02Ny43LTI3LjgtMTA0LjcgMS00NC42IDE4LjMtODcuNiA0Ny41LTEyMS4xTDg2LjQgMTAzLjRjLTkuNiAxLjMtMTkuMi0yLTI1LjktOS4xLTExLjMtMTItMTAuOS0zMC45IDEuMS00Mi40IDExLjktMTEuMiAzMC42LTEwLjkgNDIuNCAxLjJ6TTQ2NC45IDhjMjYgMCA0Ny4xIDIyLjQgNDcuMSA0OC4zUzQ5MC45IDEwNCA0NjQuOSAxMDRjLTYuMyAuMS0xNC0xLjEtMTUuOS0xLjhsLTYyLjkgNTkuN2MtMzIuNy00My42LTc2LjctNjUuOS0xMjYuOS02Ny4yLTMwLjUtLjctNjAuMyA2LjgtODYuMiAyMi40bC0yMS4xLTIyQzE4NC4xIDc0LjMgMjIxLjUgNjQgMjYwIDY0LjkgMzAzLjMgNjYgMzQ0LjYgODEuNiAzNzcuNyAxMDkuNWw0MS4xLTM4LjZjLTEuNS00LjctMi4yLTkuNi0yLjItMTQuNS0uMS0yNi43IDIyLjMtNDguNCA0OC4zLTQ4LjR6TTI1Ni43IDExMy40YzUuNSAwIDEwLjkgLjQgMTYuNCAxLjEgNzguMSA5LjggMTMzLjQgODEuMSAxMjMuOCAxNTkuMS05LjggNzguMS04MS4xIDEzMy40LTE1OS4xIDEyMy44LTc4LjEtOS44LTEzMy40LTgxLjEtMTIzLjgtMTU5LjIgOS4zLTcyLjQgNzAuMS0xMjQuNiAxNDIuNy0xMjQuOHptLTU5IDExOS40Yy42IDIyLjcgMTIuMiA0MS44IDMyLjQgNTIuMmwtMTEgNTEuNyA3My43IDAtMTEtNTEuN2MyMC4xLTEwLjkgMzIuMS0yOSAzMi40LTUyLjItLjQtMzIuOC0yNS44LTU3LjUtNTguMy01OC4zLTMyLjEgLjgtNTcuMyAyNC44LTU4LjIgNTguM3oiXX0sdW1lPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImhpcmUtYS1oZWxwZXIiLGljb246WzUxMiw1MTIsW10sImYzYjAiLCJNNDQzLjEgMEw3MS45IDBDNjcuOSAzNy4zIDM3LjQgNjcuOCAwIDcxLjdMMCA0NDMuMmMzNy40IDQuOSA2NiAzMi40IDcxLjkgNjguOGwzNzIuMiAwYzMtMzYuNCAzMi41LTY1LjggNjcuOS02OS44bDAtMzcwLjVDNDc1LjYgNjUuOCA0NDcgMzYuNCA0NDMuMSAwem0tMzcgNDA0LjljLTM2LjMgMC0xOC44LTItNTUuMS0yLTM1LjggMC0yMSAyLTU2LjEgMi01LjkgMC00LjktOC4yIDAtOS44IDIyLjgtNy42IDIyLjktMTAuMiAyNC42LTEyLjggMTAuNC0xNS42IDUuOS04MyA1LjktMTEzIDAtNS4zLTYuNC0xMi44LTEzLjgtMTIuOGwtMTExLjIgMGMtNy40IDAtMTMuOCA3LjUtMTMuOCAxMi44IDAgMzAtNC41IDk3LjQgNS45IDExMyAxLjcgMi41IDEuOCA1LjIgMjQuNiAxMi44IDQuOSAxLjYgNiA5LjggMCA5LjgtMzUuMSAwLTIwLjMtMi01Ni4xLTItMzYuMyAwLTE4LjggMi01NS4xIDItNy45IDAtNS44LTEwLjggMC0xMC44IDEwLjItMy40IDEzLjUtMy41IDIxLjctMTMuOCA3LjctMTIuOSA3LjktNDQuNCA3LjktMTI3LjhsMC0xMDEuMmMwLTIyLjItMTIuMi0yOC4zLTI4LjYtMzIuNC04LjgtMi4yLTQtMTEuOCAxLTExLjggMzYuNSAwIDIwLjYgMiA1Ny4xIDIgMzIuNyAwIDE2LjUtMiA0OS4yLTIgMy4zIDAgOC41IDguMyAxIDEwLjgtNC45IDEuNi0yNy42IDMuNy0yNy42IDM5LjMgMCA0NS42LS4yIDU1LjggMSA2OC44IDAgMS4zIDIuMyAxMi44IDEyLjggMTIuOGwxMDkuMiAwYzEwLjUgMCAxMi44LTExLjUgMTIuOC0xMi44IDEuMi0xMyAxLTIzLjIgMS02OC44IDAtMzUuNi0yMi43LTM3LjctMjcuNi0zOS4zLTcuNS0yLjUtMi4zLTEwLjggMS0xMC44IDMyLjcgMCAxNi41IDIgNDkuMiAyIDM2LjUgMCAyMC42LTIgNTcuMS0yIDQuOSAwIDkuOSA5LjYgMSAxMS44LTE2LjQgNC4xLTI4LjYgMTAuMy0yOC42IDMyLjRsMCAxMDEuMmMwIDgzLjQgLjEgMTE0LjkgNy45IDEyNy44IDguMiAxMC4yIDExLjQgMTAuNCAyMS43IDEzLjggNS44IDAgNy44IDEwLjggMCAxMC44eiJdfSwkRT17cHJlZml4OiJmYWIiLGljb25OYW1lOiJzcXVhcmUtaGFja2VyLW5ld3MiLGljb246WzQ0OCw1MTIsWyJoYWNrZXItbmV3cy1zcXVhcmUiXSwiZjNhZiIsIk00NDggOTZjMC0zNS4zLTI4LjctNjQtNjQtNjRMNjQgMzJDMjguNyAzMiAwIDYwLjcgMCA5NkwwIDQxNmMwIDM1LjMgMjguNyA2NCA2NCA2NGwzMjAgMGMzNS4zIDAgNjQtMjguNyA2NC02NGwwLTMyMHpNMjEgMjI5LjJzLjEtLjEgLjEtLjIgLjEtLjIgLjItLjJjMCAuMSAwIC4zLS4xIC40bC0uMiAwek0yMzkuMiAzODRsLTMxLjQgMCAwLTEwMi43LTc5LjgtMTUzLjMgMzcuMyAwYzQxLjUgNzcuNyA0OC4xIDk1LjggNTQuMSAxMTIgMS42IDQuMyAzLjEgOC41IDUuMiAxMy42IDMuMi03IDUuMS0xMS45IDcuMS0xNy4zIDUuOS0xNS4zIDEyLjgtMzMuMiA1My41LTEwOC4zbDM0LjggMC04MC44IDE1NS4xIDAgMTAwLjl6Il19LGZtZT0kRSxtbWU9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiY3JlYXRpdmUtY29tbW9ucy1wZC1hbHQiLGljb246WzUxMiw1MTIsW10sImY0ZWQiLCJNMjU1LjYgOEMxMTIuNyA4IDggMTIzLjEgOCAyNTYgOCAzOTQuNSAxMjEuNiA1MDQgMjU1LjYgNTA0IDM4NS41IDUwNCA1MDQgNDAzLjEgNTA0IDI1NiA1MDQgMTE4LjEgMzk3LjQgOCAyNTUuNiA4em0uOCA0NTAuOGMtMTEyLjUgMC0yMDMuNy05My0yMDMuNy0yMDIuOCAwLTEwNS40IDg1LjUtMjAzLjMgMjAzLjctMjAzLjMgMTEyLjYgMCAyMDIuOSA4OS41IDIwMi44IDIwMy4zIDAgMTIxLjctOTkuNiAyMDIuOC0yMDIuOCAyMDIuOHpNMzI0LjcgMTg2bC01My4yIDAgMCAxMzcuMiA1My4yIDBjMjEuNCAwIDcwLTUuMSA3MC02OC42IDAtNjMuNC00OC42LTY4LjYtNzAtNjguNnptLjggMTA4LjVsLTE5LjkgMCAwLTc5LjcgMTkuNC0uMWMzLjggMCAzNS0yLjEgMzUgMzkuOSAwIDI0LjYtMTAuNSAzOS45LTM0LjUgMzkuOXpNMjExLjcgMTg2bC02OC4yIDAgMCAxMzcuMyAzNC42IDAgMC00NC4zIDI3IDBjNTQuMSAwIDU3LjEtMzcuNSA1Ny4xLTQ2LjUgMC0zMS0xNi44LTQ2LjUtNTAuNS00Ni41em0tNC45IDY3LjNsLTI5LjIgMCAwLTQxLjYgMjguMyAwYzMwLjkgMCAyOC44IDQxLjYgLjkgNDEuNnoiXX0sZ21lPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6Im9yY2lkIixpY29uOls1MTIsNTEyLFtdLCJmOGQyIiwiTTI5NC43IDE4OC4ybC00NS45IDAgMCAxNTMuOCA0Ny41IDBjNjcuNiAwIDgzLjEtNTEuMyA4My4xLTc2LjkgMC00MS42LTI2LjUtNzYuOS04NC43LTc2Ljl6TTI1NiA4YTI0OCAyNDggMCAxIDAgMCA0OTYgMjQ4IDI0OCAwIDEgMCAwLTQ5NnpNMTc1LjIgMzY4LjhsLTI5LjggMCAwLTIwNy41IDI5LjggMCAwIDIwNy41ek0xNjAuMyA5OC41YTE5LjYgMTkuNiAwIDEgMSAwIDM5LjIgMTkuNiAxOS42IDAgMSAxIDAtMzkuMnpNMzAwIDM2OWwtODEgMCAwLTIwNy43IDgwLjYgMGM3Ni43IDAgMTEwLjQgNTQuOCAxMTAuNCAxMDMuOSAwIDUzLjMtNDEuNyAxMDMuOS0xMTAgMTAzLjl6Il19LEFFPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImJvYXJkLWdhbWUtZ2VlayIsaWNvbjpbNjQwLDUxMixbImJnZyJdLCJlODU1IiwiTTE2OC44IDE2OC4zbDMwLjEtOC4yLTEyLjMgOTguOCAxNi43IDE2LjEtMzguOSA5MS4yLTExMS44IDQxLjItNTIuNi0xMzEuOCAxNy43LTE3LTEwLjUtODQuMyAxOTEuMi03MC4zLTI5LjUgNjQuM3ptMTgwLjYgMTYuNWMxMS42IDAgMTkgNy40IDE5IDE3LjlsMCAzMS41YzAgOS43LTYuMyAxOC45LTE5LjUgMjIuMSAxMy4xIDMuMSAyMC41IDEyIDIwLjUgMjEuNGwwIDMwLjljMCAxMS4xLTcuNCAxOC4xLTE5IDE4LjFsLTg5LjEgMCAwLTE0MS44IDg4IDB6TTI5OCAyOTkuOGwzMyAwYzEuNSAwIDIuMS0xIDIuMS0yLjFsMC0yNi45YzAtMS0uNi0yLjMtMi4xLTIuM2wtMzMgMCAwIDMxLjN6bTAtNTcuM2wzMyAwYzEuNSAwIDIuMS0xLjEgMi4xLTIuM2wwLTI0LjhjMC0xLS42LTIuMy0yLjEtMi4zbC0zMyAwIDAgMjkuNHptMjA0LjEtMjcuMmwtNjUuNiAwYy0xIDAtMi4xIDEuMS0yLjEgMi4zbDAgNzYuMWMwIDEuMyAxIDIuMSAyLjEgMi4xbDI5LjcgMGMxLjUgMCAyLjMtLjggMi4zLTIuMWwwLTI0LTE5LjMgMCAxMi44LTMwIDQwLjEgMCAwIDcwLjhjMCA5LjItNy4yIDE2LjItMTYuMyAxNi4ybC03MS41IDBjLTkuMSAwLTE2LjUtNy0xNi41LTE2LjJsMC0xMDkuN2MwLTguNiA3LjQtMTYgMTYuNS0xNmw4Ny44IDAgMCAzMC41em0xMzIuNiAwbC02NS42IDBjLTEuMSAwLTIuMSAxLjEtMi4xIDIuM2wwIDc2LjFjMCAxLjMgMSAyLjEgMi4xIDIuMWwyOS42IDBjMS41IDAgMi4zLS44IDIuMy0yLjFsMC0yNC0xOS4yIDAgMTIuOC0zMCA0MC4xIDAgMCA3MC44YzAgOS4yLTcuMiAxNi4yLTE2LjMgMTYuMmwtNzEuNSAwYy05LjEgMC0xNi41LTYuOS0xNi41LTE2LjJsMC0xMDkuN2MwLTguNiA3LjQtMTYgMTYuNS0xNmw4Ny44IDAgMCAzMC41eiJdfSxibWU9QUUsdm1lPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImJlaGFuY2UiLGljb246WzU3Niw1MTIsW10sImYxYjQiLCJNMjMyIDIzNy4yYzMxLjgtMTUuMiA0OC40LTM4LjIgNDguNC03NCAwLTcwLjYtNTIuNi04Ny44LTExMy4zLTg3LjhsLTE2Ny4xIDAgMCAzNTQuNCAxNzEuOCAwYzY0LjQgMCAxMjQuOS0zMC45IDEyNC45LTEwMi45IDAtNDQuNS0yMS4xLTc3LjQtNjQuNy04OS43ek03Ny45IDEzNS45bDczLjEgMGMyOC4xIDAgNTMuNCA3LjkgNTMuNCA0MC41IDAgMzAuMS0xOS43IDQyLjItNDcuNSA0Mi4ybC03OSAwIDAtODIuN3ptODMuMyAyMzMuN2wtODMuMyAwIDAtOTcuNiA4NC45IDBjMzQuMyAwIDU2IDE0LjMgNTYgNTAuNiAwIDM1LjgtMjUuOSA0Ny01Ny42IDQ3ek01MTkuNyAxMjguOWwtMTQzLjcgMCAwLTM0LjkgMTQzLjcgMCAwIDM0Ljl6TTU3NiAzMDUuMmMwLTc1LjktNDQuNC0xMzkuMi0xMjQuOS0xMzkuMi03OC4yIDAtMTMxLjMgNTguOC0xMzEuMyAxMzUuOCAwIDc5LjkgNTAuMyAxMzQuNyAxMzEuMyAxMzQuNyA2MS4zIDAgMTAxLTI3LjYgMTIwLjEtODYuM2wtNjIuMiAwYy02LjcgMjEuOS0zNC4zIDMzLjUtNTUuNyAzMy41LTQxLjMgMC02My0yNC4yLTYzLTY1LjNsMTg1LjEgMGMuMy00LjIgLjYtOC43IC42LTEzLjJ6TTM5MC40IDI3NGMyLjMtMzMuNyAyNC43LTU0LjggNTguNS01NC44IDM1LjQgMCA1My4yIDIwLjggNTYuMiA1NC44bC0xMTQuNyAweiJdfSx5bWU9e3ByZWZpeDoiZmFiIixpY29uTmFtZToibW9uZXJvIixpY29uOls1MTIsNTEyLFtdLCJmM2QwIiwiTTM2MCAzODRsMTA4LjQgMEM0MjUgNDU1LjkgMzQ2LjEgNTA0IDI1NiA1MDRTODcgNDU1LjkgNDMuNiAzODRsMTA4LjQgMCAwLTEyNy44IDEwNCAxMDQuOCAxMDQtMTA1IDAgMTI4ek05NiAzMzZsMC0yMDggMTU5LjQgMTU5LjQgMTYwLjYtMTU5LjQgMCAyMDggNzQuOCAwYzguNS0yNS4xIDEzLjItNTIgMTMuMi04MCAwLTEzNy0xMTEtMjQ4LTI0OC0yNDhTOCAxMTkgOCAyNTZjMCAyOCA0LjYgNTQuOSAxMy4yIDgwTDk2IDMzNnoiXX0seG1lPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImZpZ21hIixpY29uOlszODQsNTEyLFtdLCJmNzk5IiwiTTE0IDk1LjhDMTQgNDIuOSA1Ni45IDAgMTA5LjggMEwyNzQuMiAwYzUyLjkgMCA5NS44IDQyLjkgOTUuOCA5NS44IDAgMzMuNS0xNy4yIDYzLTQzLjIgODAuMSAyNiAxNy4xIDQzLjIgNDYuNiA0My4yIDgwLjEgMCA1Mi45LTQyLjkgOTUuOC05NS44IDk1LjhsLTIuMSAwYy0yNC44IDAtNDcuNC05LjQtNjQuNC0yNC45bDAgODguM2MwIDUzLjYtNDQgOTYuOC05Ny40IDk2LjgtNTIuOCAwLTk2LjMtNDIuOC05Ni4zLTk1LjggMC0zMy41IDE3LjItNjMgNDMuMi04MC4xLTI2LTE3LjEtNDMuMi00Ni42LTQzLjItODAuMXMxNy4yLTYzIDQzLjItODAuMUMzMS4yIDE1OC44IDE0IDEyOS4zIDE0IDk1Ljh6bTE2Mi4zIDk1LjhsLTY2LjUgMGMtMzUuNiAwLTY0LjQgMjguOC02NC40IDY0LjQgMCAzNS40IDI4LjYgNjQuMiA2NCA2NC40bDY2LjkgMCAwLTEyOC44ek0yMDcuNyAyNTZjMCAzNS42IDI4LjggNjQuNCA2NC40IDY0LjRsMi4xIDBjMzUuNiAwIDY0LjQtMjguOCA2NC40LTY0LjRzLTI4LjgtNjQuNC02NC40LTY0LjRsLTIuMSAwYy0zNS42IDAtNjQuNCAyOC44LTY0LjQgNjQuNHptLTk3LjkgOTUuOGwtLjQgMGMtMzUuNCAuMi02NCAyOS02NCA2NC40czI5LjIgNjQuNCA2NC45IDY0LjRjMzYuMyAwIDY2LTI5LjQgNjYtNjUuNWwwLTYzLjQtNjYuNSAwem0wLTMyMC40Yy0zNS42IDAtNjQuNCAyOC44LTY0LjQgNjQuNHMyOC44IDY0LjQgNjQuNCA2NC40bDY2LjUgMCAwLTEyOC44LTY2LjUgMHptOTcuOSAxMjguOGw2Ni41IDBjMzUuNiAwIDY0LjQtMjguOCA2NC40LTY0LjRzLTI4LjgtNjQuNC02NC40LTY0LjRsLTY2LjUgMCAwIDEyOC44eiJdfSxCZj17cHJlZml4OiJmYWIiLGljb25OYW1lOiJpbnN0YWdyYW0iLGljb246WzQ0OCw1MTIsW10sImYxNmQiLCJNMjI0LjMgMTQxYTExNSAxMTUgMCAxIDAgLS42IDIzMCAxMTUgMTE1IDAgMSAwIC42LTIzMHptLS42IDQwLjRhNzQuNiA3NC42IDAgMSAxIC42IDE0OS4yIDc0LjYgNzQuNiAwIDEgMSAtLjYtMTQ5LjJ6bTkzLjQtNDUuMWEyNi44IDI2LjggMCAxIDEgNTMuNiAwIDI2LjggMjYuOCAwIDEgMSAtNTMuNiAwem0xMjkuNyAyNy4yYy0xLjctMzUuOS05LjktNjcuNy0zNi4yLTkzLjktMjYuMi0yNi4yLTU4LTM0LjQtOTMuOS0zNi4yLTM3LTIuMS0xNDcuOS0yLjEtMTg0LjkgMC0zNS44IDEuNy02Ny42IDkuOS05My45IDM2LjFzLTM0LjQgNTgtMzYuMiA5My45Yy0yLjEgMzctMi4xIDE0Ny45IDAgMTg0LjkgMS43IDM1LjkgOS45IDY3LjcgMzYuMiA5My45czU4IDM0LjQgOTMuOSAzNi4yYzM3IDIuMSAxNDcuOSAyLjEgMTg0LjkgMCAzNS45LTEuNyA2Ny43LTkuOSA5My45LTM2LjIgMjYuMi0yNi4yIDM0LjQtNTggMzYuMi05My45IDIuMS0zNyAyLjEtMTQ3LjggMC0xODQuOHpNMzk5IDM4OGMtNy44IDE5LjYtMjIuOSAzNC43LTQyLjYgNDIuNi0yOS41IDExLjctOTkuNSA5LTEzMi4xIDlzLTEwMi43IDIuNi0xMzIuMS05Yy0xOS42LTcuOC0zNC43LTIyLjktNDIuNi00Mi42LTExLjctMjkuNS05LTk5LjUtOS0xMzIuMXMtMi42LTEwMi43IDktMTMyLjFjNy44LTE5LjYgMjIuOS0zNC43IDQyLjYtNDIuNiAyOS41LTExLjcgOTkuNS05IDEzMi4xLTlzMTAyLjctMi42IDEzMi4xIDljMTkuNiA3LjggMzQuNyAyMi45IDQyLjYgNDIuNiAxMS43IDI5LjUgOSA5OS41IDkgMTMyLjFzMi43IDEwMi43LTkgMTMyLjF6Il19LHdtZT17cHJlZml4OiJmYWIiLGljb25OYW1lOiJwZXJieXRlIixpY29uOls0NDgsNTEyLFtdLCJlMDgzIiwiTTMwNS4zIDI4NC42bC01OC43IDAgMCA5OC43IDU4LjcgMGMxNi4zIDAgMjktNC42IDM4LjItMTMuOHMxMy44LTIxLjIgMTMuOC0zNi4xYzAtMTQuNi00LjctMjYuMy0xNC0zNS4zcy0yMi0xMy41LTM3LjktMTMuNXpNMTQ5LjQgMTI4LjdsLTU4LjcgMCAwIDk4LjcgNTguNyAwYzE2LjMgMCAyOS00LjYgMzguMi0xMy44czEzLjgtMjEuMiAxMy44LTM2LjFjMC0xNC42LTQuNy0yNi4zLTE0LTM1LjNzLTIyLTEzLjUtMzcuOS0xMy41ek0zNjYuNiAzMkw4MS40IDMyYy0yMS42IDAtNDIuMiA4LjYtNTcuNSAyMy45UzAgOTEuOCAwIDExMy40TDAgMzk4LjZjMCAyMS42IDguNiA0Mi4yIDIzLjkgNTcuNVM1OS44IDQ4MCA4MS40IDQ4MGwyODUuMyAwYzIxLjYgMCA0Mi4yLTguNiA1Ny41LTIzLjlTNDQ4IDQyMC4yIDQ0OCAzOTguNmwwLTI4NS4zYzAtMjEuNi04LjYtNDIuMi0yMy45LTU3LjVTMzg4LjIgMzIgMzY2LjYgMzJ6bTYzLjYgMzY2LjZjMCAxNi45LTYuNyAzMy0xOC43IDQ1cy0yOC4xIDE4LjYtNDUgMTguN2wtMjg1LjMgMGMtMTYuOSAwLTMzLTYuNy00NS0xOC43cy0xOC42LTI4LjEtMTguNy00NWwwLTI4NS4zYzAtMTYuOSA2LjctMzMgMTguNy00NXMyOC4xLTE4LjYgNDUtMTguN2wyODUuMyAwYzE2LjkgMCAzMyA2LjcgNDUgMTguN3MxOC42IDI4LjEgMTguNyA0NWwwIDI4NS4zem0tMTI1LTI2OS45bC01OC43IDAgMCA5OC43IDU4LjcgMGMxNi4zIDAgMjktNC42IDM4LjItMTMuOHMxMy44LTIxLjIgMTMuOC0zNi4xYzAtMTQuNi00LjctMjYuMy0xNC0zNS4zcy0yMi0xMy41LTM3LjktMTMuNXoiXX0sREU9e3ByZWZpeDoiZmFiIixpY29uTmFtZToic3F1YXJlLXZpbWVvIixpY29uOls0NDgsNTEyLFsidmltZW8tc3F1YXJlIl0sImYxOTQiLCJNNDQ4IDk2YzAtMzUuMy0yOC43LTY0LTY0LTY0TDY0IDMyQzI4LjcgMzIgMCA2MC43IDAgOTZMMCA0MTZjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMzIwIDBjMzUuMyAwIDY0LTI4LjcgNjQtNjRsMC0zMjB6TTMxOC41IDMwOS41Yy00My41IDU2LjUtODAuMyA4NC44LTExMC40IDg0LjgtMTguNyAwLTM0LjQtMTcuMi00Ny4zLTUxLjYtMy44LTEzLjktNy4zLTI2LjktMTAuNS0zOS0xOC4yLTY4LjMtMjguNi0xMDcuNC00Ni4yLTEwNy40LTIuNCAwLTEwLjggNS0yNS4xIDE1LjFMNjQgMTkyYzctNi4xIDEzLjktMTIuNCAyMC42LTE4LjUgMjkuMS0yNi4zIDU1LjYtNTAuMyA3My41LTUxLjkgMjQuOS0yLjQgNDAuMiAxNC42IDQ2IDUxLjEgMjAuNSAxMjkuNiAyOS42IDE0OS4yIDY2LjggOTAuNSAxMy40LTIxLjIgMjAuNi0zNy4yIDIxLjUtNDguMyAzLjQtMzIuOC0yNS42LTMwLjYtNDUuMi0yMi4yIDE1LjctNTEuNSA0NS44LTc2LjUgOTAuMS03NS4xIDMyLjkgMSA0OC40IDIyLjQgNDYuNSA2NC0xLjQgMzEuMS0yMy4yIDczLjgtNjUuMyAxMjcuOXoiXX0sTW1lPURFLHptZT17cHJlZml4OiJmYWIiLGljb25OYW1lOiJwdXNoZWQiLGljb246WzQ0OCw1MTIsW10sImYzZTEiLCJNNDE1LjEgMTExLjlsLTk4LjUtOSAxNC0zMy40YzEwLjQtMjMuNS0xMC44LTQwLjQtMjguNy0zN0wzMC42IDc2LjljLTE1LjEgMi43LTI2IDE4LjMtMjEuNCAzNi42TDExNC4zIDQ2MS44YzYuNSAyMS4zIDM2LjcgMjQuMiA0Ny43IDdMMTk3LjMgMzg4IDQzMi41IDE1Ni43YzE2LjQtMTYuOCA0LjMtNDIuOS0xNy40LTQ0Ljh6TTMwNS43IDUzLjZjNS4xLS43IDcuNSAyLjUgNS4yIDcuNGwtMTYuOCAzOS45LTE3Ny40LTE2LjMgMTg5LTMxek0zMC44IDEwNy45Yy0zLjEtNS4xIDEtMTAgNi4xLTkuMWwyNDguNyAyMi43LTk2LjkgMjMwLjctMTU3LjktMjQ0LjN6TTE0NC4xIDQ1Ni40Yy0yLjYgNC03LjkgMy4xLTkuNC0xLjJMNTEuNiAxNzkuNyAxNzkuMyAzNzcuM2MtNyAxNS0zNS4yIDc5LjEtMzUuMiA3OS4xek00MTYuOSAxNDEuOWwtMTk4LjcgMTk1LjQgODkuNy0yMTMuNyAxMDYuNCA5LjdjNCAxLjEgNS43IDUuMyAyLjYgOC42eiJdfSxrbWU9e3ByZWZpeDoiZmFiIixpY29uTmFtZToibWl4Y2xvdWQiLGljb246WzY0MCw1MTIsW10sImYyODkiLCJNMjEzIDM0Ni42bC0zMy4yIDAgMC0xNTEuNSA2LjItMjEuNi0xMC43IDAtMzguMSAxNzMuMS02MSAwLTM4LjQtMTczLjEtMTAuNSAwIDUuOSAyMS42IDAgMTUxLjUtMzMuMiAwIDAtMTgxLjYgNjUuNyAwIDM2LjYgMTczLjEgOC41IDAgMzYuNi0xNzMuMSA2NS43IDAgMCAxODEuNnptMzMxLjUtNjNsLTg2IDYyLjEgMC0zOC4xIDcyLjktNTEuOC03Mi45LTUxLjggMC0zOC4xIDg2IDYyLjMgOS4zIDAgODYuMy02Mi4zIDAgMzguMS03My4xIDUxLjggNzMuMSA1MS44IDAgMzguMS04Ni4zLTYyLjEtOS4zIDB6TTQzMC4yIDI3Mi4zbC0xODIgMCAwLTMzLjEgMTgyIDAgMCAzMy4xeiJdfSxTbWU9e3ByZWZpeDoiZmFiIixpY29uTmFtZToieWFuZGV4LWludGVybmF0aW9uYWwiLGljb246WzMyMCw1MTIsW10sImY0MTQiLCJNMTI5LjUgNTEybDAtMTY2LjEtMTExLTI5Ny45IDU1LjggMCA4MS44IDIyOS43IDk0LjEtMjc3LjcgNTEuMyAwLTEyMC43IDM0Ny44IDAgMTY0LjItNTEuMyAweiJdfSxDbWU9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiaGl2ZSIsaWNvbjpbNTEyLDUxMixbXSwiZTA3ZiIsIk0yNjAuNCAyNTQuOUwxMzEuNSAzMy4xYy0uMi0uMy0uNS0uNi0uOC0uOHMtLjctLjMtMS4xLS4zLS44IC4xLTEuMSAuMy0uNiAuNS0uOCAuOEwuMyAyNTQuOWMtLjIgLjMtLjMgLjctLjMgMS4xcy4xIC44IC4zIDEuMUwxMjkuMSA0NzguOWMuMiAuMyAuNSAuNiAuOCAuOHMuNyAuMyAxLjEgLjMgLjgtLjEgMS4xLS4zIC42LS41IC44LS44TDI2MC40IDI1Ny4xYy4yLS4zIC4zLS43IC4zLTEuMXMtLjEtLjgtLjMtMS4xem0zOS4xLTI1LjdjLjIgLjMgLjUgLjYgLjggLjhzLjcgLjMgMS4xIC4zbDY2LjUgMGMuNCAwIC44LS4xIDEuMS0uM3MuNi0uNSAuOC0uOCAuMy0uNyAuMy0xLjEtLjEtLjgtLjMtMS4xTDI1OS4xIDMzLjFjLS4yLS4zLS41LS42LS44LS44cy0uNy0uMy0xLjEtLjNsLTY2LjUgMGMtLjQgMC0uOCAuMS0xLjEgLjNzLS42IC41LS44IC44LS4zIC43LS4zIDEuMSAuMSAuOCAuMyAxLjFMMjk5LjQgMjI5LjJ6bTIxMi4zIDI1LjdMMzg0LjkgMzMuMWMtLjItLjMtLjUtLjYtLjgtLjhzLS43LS4zLTEuMS0uM2wtNjYuNiAwYy0uNCAwLS44IC4xLTEuMSAuM3MtLjYgLjUtLjggLjgtLjMgLjctLjMgMS4xIC4xIC44IC4zIDEuMUw0NDAuNyAyNTYgMzE0LjUgNDc2LjdjLS4yIC4zLS4zIC43LS4zIDEuMXMuMSAuOCAuMyAxLjEgLjUgLjYgLjggLjggLjcgLjMgMS4xIC4zbDY2LjYgMGMuNCAwIC44LS4xIDEuMS0uM3MuNi0uNSAuOC0uOEw1MTEuNyAyNTcuMWMuMi0uMyAuMy0uNyAuMy0xLjFzLS4xLS44LS4zLTEuMXpNMzY2IDI4NC45bC02Ni41IDBjLS40IDAtLjggLjEtMS4xIC4zcy0uNiAuNS0uOCAuOEwxODguOCA0NzYuN2MtLjIgLjMtLjMgLjctLjMgMS4xcy4xIC44IC4zIDEuMSAuNSAuNiAuOCAuOCAuNyAuMyAxLjEgLjNsNjYuNSAwYy40IDAgLjgtLjEgMS4xLS4zcy42LS41IC44LS44TDM2Ny45IDI4OC4zYy4yLS4zIC4zLS43IC4zLTEuMXMtLjEtLjgtLjMtMS4xLS41LS42LS44LS44LS43LS4zLTEuMS0uM3oiXX0sX21lPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImNyZWF0aXZlLWNvbW1vbnMtemVybyIsaWNvbjpbNTEyLDUxMixbXSwiZjRmMyIsIk0yNTUuNiA4QzM5Ny40IDggNTA0IDExOC4xIDUwNCAyNTYgNTA0IDQwMy4xIDM4NS41IDUwNCAyNTUuNiA1MDQgMTIxLjYgNTA0IDggMzk0LjUgOCAyNTYgOCAxMjMuMSAxMTIuNyA4IDI1NS42IDh6bS44IDQ0LjdjLTExOC4yIDAtMjAzLjcgOTcuOS0yMDMuNyAyMDMuMyAwIDEwOS44IDkxLjIgMjAyLjggMjAzLjcgMjAyLjggMTAzLjIgMCAyMDIuOC04MS4xIDIwMi44LTIwMi44IC4xLTExMy44LTkwLjItMjAzLjMtMjAyLjgtMjAzLjN6bS0uNCA2MC41Yy04MS45IDAtMTAyLjUgNzcuMy0xMDIuNSAxNDIuOFMxNzQuMSAzOTguOCAyNTYgMzk4LjggMzU4LjUgMzIxLjUgMzU4LjUgMjU2IDMzNy45IDExMy4yIDI1NiAxMTMuMnptMCA1My45YzMuMyAwIDYuNCAuNSA5LjIgMS4yIDUuOSA1LjEgOC44IDEyLjEgMy4xIDIxLjlMMjEzLjggMjkwLjRjLTEuNy0xMi43LTEuOS0yNS4xLTEuOS0zNC40IDAtMjguOCAyLTg4LjkgNDQuMS04OC45em00MC44IDQ2LjJjMi45IDE1LjQgMy4zIDMxLjQgMy4zIDQyLjcgMCAyOC45LTIgODguOS00NC4xIDg4LjktMTMuNSAwLTMyLjYtNy43LTIwLjEtMjYuNGw2MC45LTEwNS4yeiJdfSxFRT17cHJlZml4OiJmYWIiLGljb25OYW1lOiJzcXVhcmUtc25hcGNoYXQiLGljb246WzQ0OCw1MTIsWyJzbmFwY2hhdC1zcXVhcmUiXSwiZjJhZCIsIk0zODQgMzJMNjQgMzJjLTE3IDAtMzMuMyA2LjctNDUuMyAxOC43UzAgNzkgMCA5NkwwIDQxNmMwIDE3IDYuNyAzMy4zIDE4LjcgNDUuM1M0NyA0ODAgNjQgNDgwbDMyMCAwYzE3IDAgMzMuMy02LjcgNDUuMy0xOC43UzQ0OCA0MzMgNDQ4IDQxNmwwLTMyMGMwLTE3LTYuNy0zMy4zLTE4LjctNDUuM1M0MDEgMzIgMzg0IDMyem0tMy45IDMxOS4zbC0uMSAuMWMtMi41IDIuOC01LjQgNS4xLTguNyA2LjgtNi41IDMuNi0xMy40IDYuMy0yMC42IDguMi0xLjQgLjQtMi43IDEtMy45IDEuOC0yLjIgMS45LTIuMSA0LjYtNC40IDguNi0xLjcgMy00IDUuNS02LjggNy41LTYuNyA0LjYtMTQuMiA0LjktMjIuMiA1LjItNy4yIC4zLTE1LjQgLjYtMjQuNyAzLjctMy44IDEuMi03LjggMy43LTEyLjQgNi41LTExLjMgNi45LTI2LjcgMTYuNC01Mi4zIDE2LjRzLTQwLjktOS40LTUyLjEtMTYuM2MtNC43LTIuOS04LjctNS40LTEyLjUtNi42LTkuMy0zLjEtMTcuNS0zLjQtMjQuNy0zLjctOC0uMy0xNS41LS42LTIyLjItNS4yLTIuNC0xLjYtNC40LTMuNy02LTYuMS0zLjItNC42LTIuOS03LjgtNS4zLTkuOS0xLjMtLjgtMi42LTEuNS00LjEtMS44LTcuMS0xLjktMTMuOS00LjYtMjAuMy04LjEtMy4xLTEuNi01LjktMy44LTguMy02LjMtNi42LTYuOC04LjMtMTQuOC01LjctMjEuOCAzLjQtOS4zIDExLjYtMTIuMSAxOS40LTE2LjMgMTQuOC04IDI2LjMtMTguMSAzNC40LTI5LjkgMi4zLTMuMyA0LjMtNi45IDYtMTAuNiAuOC0yLjIgLjgtMy4zIC4yLTQuNC0uNi0uOS0xLjMtMS42LTIuMi0yLjItMi41LTEuNy01LjEtMy40LTYuOS00LjUtMy4zLTIuMS01LjktMy44LTcuNS01LTYuMy00LjQtMTAuNi05LTEzLjQtMTQuMi0xLjktMy42LTMtNy42LTMuMy0xMS42cy40LTguMSAxLjktMTEuOWM0LjEtMTAuOSAxNC41LTE3LjcgMjctMTcuNyAyLjYgMCA1LjMgLjMgNy44IC44IC43IC4yIDEuNCAuMyAyIC41LS4xLTcuNCAuMS0xNS40IC43LTIzLjEgMi40LTI3LjMgMTEuOS00MS42IDIxLjktNTMgNi40LTcuMiAxMy45LTEzLjIgMjIuMy0xNy45IDE1LjEtOC42IDMyLjItMTMgNTAuOS0xM3MzNS44IDQuNCA1MC45IDEzYzguMyA0LjcgMTUuOSAxMC44IDIyLjIgMTcuOSAxMCAxMS40IDE5LjUgMjUuNyAyMS45IDUzIC42IDcuNyAuOSAxNS40IC43IDIzLjEgLjctLjIgMS40LS4zIDIuMS0uNSAyLjYtLjYgNS4yLS44IDcuOC0uOCAxMi41IDAgMjIuOCA2LjggMjcgMTcuNyAxLjUgMy44IDIuMSA3LjkgMS45IDExLjlzLTEuNCA4LTMuMyAxMS42Yy0yLjcgNS4yLTcuMSA5LjktMTMuNCAxNC4yLTEuNyAxLjItNC4zIDIuOS03LjUgNS0xLjggMS4yLTQuNSAyLjktNy4yIDQuNy0uOCAuNS0xLjQgMS4yLTEuOSAyLS41IDEtLjUgMi4yIC4yIDQuMiAxLjcgMy44IDMuNyA3LjQgNi4xIDEwLjggOC4zIDEyLjEgMjAuMiAyMi4zIDM1LjUgMzAuNCAxLjUgLjggMyAxLjUgNC40IDIuMyAuNyAuMyAxLjYgLjggMi41IDEuMyA0LjkgMi43IDkuMiA2IDExLjUgMTIuMiAyLjUgNi45IDEgMTQuNy01LjIgMjEuM3ptLTE2LjctMTguNWMtNTAuMy0yNC4zLTU4LjMtNjEuOS01OC43LTY0LjctLjQtMy40LS45LTYgMi44LTkuNSAzLjYtMy4zIDE5LjUtMTMuMiAyNC0xNi4zIDcuMy01LjEgMTAuNS0xMC4yIDguMi0xNi41LTEuNy00LjMtNS43LTYtMTAtNi0xLjMgMC0yLjcgLjItNCAuNC04IDEuNy0xNS44IDUuOC0yMC40IDYuOS0uNSAuMS0xLjEgLjItMS43IC4yLTIuNCAwLTMuMy0xLjEtMy4xLTQgLjYtOC44IDEuOC0yNS45IC40LTQxLjktMS45LTIyLTktMzIuOS0xNy40LTQyLjYtNC4xLTQuNi0yMy4xLTI0LjctNTkuNS0yNC43cy01NS40IDIwLjEtNTkuNSAyNC44Yy04LjQgOS43LTE1LjUgMjAuNi0xNy40IDQyLjYtMS40IDE2LS4xIDMzLjEgLjQgNDEuOSAuMiAyLjgtLjcgNC0zLjEgNC0uNiAwLTEuMS0uMS0xLjctLjItNC41LTEuMS0xMi4zLTUuMS0yMC4zLTYuOS0xLjMtLjMtMi42LS40LTQtLjQtNC4zIDAtOC4zIDEuNi0xMCA2LTIuNCA2LjMgLjggMTEuNCA4LjIgMTYuNSA0LjQgMy4xIDIwLjQgMTMgMjQgMTYuMyAzLjcgMy40IDMuMiA2LjEgMi44IDkuNS0uNCAyLjgtOC40IDQwLjQtNTguNyA2NC43LTIuOSAxLjQtOCA0LjQgLjkgOS4zIDEzLjkgNy42IDIzLjEgNi44IDMwLjMgMTEuNCA2LjEgMy45IDIuNSAxMi40IDYuOSAxNS40IDUuNSAzLjggMjEuNi0uMyA0Mi4zIDYuNiAxNy40IDUuNyAyOC4xIDIyIDU5IDIyczQxLjgtMTYuMyA1OC45LTIyYzIwLjgtNi45IDM2LjktMi44IDQyLjMtNi42IDQuNC0zLjEgLjgtMTEuNSA2LjktMTUuNCA3LjItNC42IDE2LjQtMy44IDMwLjMtMTEuNSA4LjgtNC45IDMuOC03LjkgLjktOS40eiJdfSxUbWU9RUUsTG1lPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6InRoZW1laXNsZSIsaWNvbjpbNTEyLDUxMixbXSwiZjJiMiIsIk0yMDggODguM2MwLTEwIDYuMy0yMS43IDE3LjctMjEuNyAxMS4xIDAgMTcuNyAxMS43IDE3LjcgMjEuNyAwIDEwLjMtNi42IDIxLjctMTcuNyAyMS43LTExLjQgMC0xNy43LTExLjQtMTcuNy0yMS43em0zMDQgMTYwYzAgMzYtMTEuNCAxMDIuMy0zNi4zIDEyOS43LTIyLjkgMjQuOS04Ny40IDYxLjEtMTIwLjkgNzAuNmwtMS4xIC4zIDAgMzIuNmMwIDE2LjMtMTIuNiAzMC42LTI5LjEgMzAuNi0xMCAwLTE5LjQtNS43LTI0LjYtMTQuMy01LjQgOC42LTE0LjkgMTQuMy0yNC45IDE0LjNzLTE5LjQtNS43LTI0LjktMTQuM2MtNS4xIDguNi0xNC42IDE0LjMtMjQuNiAxNC4zLTEwLjMgMC0xOS40LTUuNy0yNC45LTE0LjMtNS4xIDguNi0xNC42IDE0LjMtMjQuNiAxNC4zLTE4LjkgMC0yOS40LTE1LjctMjkuNC0zMi45LTE2LjMgMTIuMy0zNS43IDE5LjQtNTYuNiAxOS40LTIyIDAtNDMuNC04LjMtNjAuMy0yMi45IDEwLjMtLjMgMjAuNi0yLjMgMzAuMy01LjctMjAuOS01LjctMzkuNC0xOC45LTUyLTM2LjMgMjEuNCA0LjYgNDYuMiAxLjcgNjcuMS0xMS4xLTIyLTIyLTU2LjYtNTguOS02OC42LTg3LjQtNS43LTEzLjQtNi45LTMxLjQtNi45LTQ1LjcgMC00OS43IDIwLjMtMTYwIDg2LjMtMTYwIDEwLjYgMCAxOC45IDQuOSAyMy4xIDE0LjkgMy43LTUuNCA3LjctMTAuNSAxMi0xNS40IDItMi42IDUuNy01LjQgNy4xLTguMyA4LTEyLjYgMTEuNy0yMS4xIDIxLjctMzQgMzIuMy00MS4xIDgxLjctNjkuNCAxMzQuOS02OS40IDYgMCAxMiAuMyAxNy43IDEuMSAxMC45LTExLjcgMjYtMTguMyA0MS43LTE4LjMgMTQuNiAwIDI5LjcgNiA0MCAxNi4zIC45IC45IDEuNCAyLjMgMS40IDMuNCAwIDMuNy0xMC4zIDEzLjQtMTIuOSAxNi4zIDQuMyAxLjQgMTUuNyA2LjkgMTUuNyAxMiAwIDIuOS0yLjkgNS4xLTQuNiA3LjEgMzEuNCAyNy43IDQ5LjQgNjcuMSA1Ni4zIDEwOCA0LjMtNS4xIDEwLjMtOC42IDE3LjEtOC42IDEwLjYgMCAyMC45IDcuMSAyOC42IDE0IDIwLjkgMTguNiAyNS43IDUzLjEgMjUuNyA3OS43ek0xODggODkuNGMwIDE4LjMgMTIuNiAzNy4xIDMyLjMgMzcuMXMzMi4zLTE4LjkgMzIuMy0zNy4xYzAtMTgtMTIuNi0zNi45LTMyLjMtMzYuOVMxODggNzEuNCAxODggODkuNHpNMjM3LjcgMTk0YzAtMTkuNyAzLjctMzkuMSA4LjYtNTguMy01MiA3OS41LTEzLjUgMTg0LjYgNjguOSAxODQuNiAyMS40IDAgNDIuNi03LjcgNjAtMjAgMi03LjQgMy43LTE0LjkgMy43LTIyLjYgMC0xNC4zLTYuMy0yMS40LTIwLjYtMjEuNC00LjYgMC05LjEgLjktMTMuNCAxLjctNjMuMyAxMi43LTEwNy4xIDMuNy0xMDcuMS02NHpNMTk2LjYgNDQ4LjljMC0xMS4xLTguOS0yMC45LTIwLjMtMjAuOXMtMjAgOS43LTIwIDIwLjlsMCAzMi42YzAgMTEuMSA4LjYgMjEuMSAyMCAyMS4xczIwLjMtOS43IDIwLjMtMjEuMWwwLTMyLjZ6bTQ5LjEgMGMwLTExLjEtOC42LTIwLjktMjAtMjAuOXMtMjAuMyA5LjctMjAuMyAyMC45bDAgMzIuNmMwIDExLjEgOC45IDIxLjEgMjAuMyAyMS4xczIwLTEwIDIwLTIxLjFsMC0zMi42em00OS43IDBjMC0xMS4xLTguOS0yMC45LTIwLjMtMjAuOXMtMjAuMyA5LjctMjAuMyAyMC45bDAgMzIuNmMwIDExLjEgOC45IDIxLjEgMjAuMyAyMS4xczIwLjMtOS43IDIwLjMtMjEuMWwwLTMyLjZ6bTQ5LjcgMGMwLTExLjEtOC45LTIwLjktMjAuMy0yMC45cy0yMC4zIDkuNy0yMC4zIDIwLjlsMCAzMi42YzAgMTEuMSA4LjkgMjEuMSAyMC4zIDIxLjFzMjAuMy0xMCAyMC4zLTIxLjFsMC0zMi42ek00MjEuNyAyODZjLTMwLjkgNTkuMS05MC4zIDEwMi42LTE1OC42IDEwMi42LTk2LjYgMC0xNjAuNi04NC42LTE2MC42LTE3Ni42IDAtMTYuOSAyLTMzLjQgNi00OS43LTIwIDMzLjctMjkuNyA3Mi42LTI5LjcgMTExLjQgMCA2MC4zIDI0LjkgMTIxLjcgNzEuNCAxNjAuOSA1LjEtOS43IDE0LjktMTYuMyAyNi0xNi4zIDEwIDAgMTkuNCA1LjcgMjQuNiAxNC4zIDUuNC04LjYgMTQuNi0xNC4zIDI0LjktMTQuMyAxMCAwIDE5LjQgNS43IDI0LjYgMTQuMyA1LjQtOC42IDE0LjktMTQuMyAyNC45LTE0LjNzMTkuNCA1LjcgMjQuOSAxNC4zYzUuMS04LjYgMTQuNi0xNC4zIDI0LjYtMTQuMyAxMC45IDAgMjAuOSA2LjYgMjUuNyAxNiA0My40LTM2LjMgNjguNi05MiA3MS40LTE0OC4zem0xMC42LTk5LjdjMC01My43LTM0LjYtMTA1LjctOTIuNi0xMDUuNy0zMC4zIDAtNTguNiAxNS4xLTc4LjkgMzYuOS0yMCA2Ni40LTI3LjQgMTM2LjYgNDEuNCAxMzYuNiAyOC44IDAgOTcuNC0yOC41IDg0LjMgMzYuOSAyOC45LTI2IDQ1LjctNjUuNyA0NS43LTEwNC42eiJdfSwkbWU9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiZGFydC1sYW5nIixpY29uOls1MTIsNTEyLFtdLCJlNjkzIiwiTTM3OC42IDc4LjljLTIuOC0uMS01LjYtLjItOC41LS4ybC0yNjQuMSAwIDE0My4yLTcyYzcuNC00LjQgMTguOC02LjcgMzAuNC02LjcgMTMuNSAwIDI5LjQgOS4yIDM3IDE2LjhsNjIgNjIgMCAuMXpNMTA3LjMgOTYuNWwyNjIuOCAwYzE2IDAgMjUuNCAxLjQgMzUuNCA5LjNsMTA2LjUgMTA2LjQgMCAyMDguOC03OS4zIC43LTMyNS40LTMyNS4yek05Ni41IDM3M2wwLTI2Mi4yIDMyMy44IDMyMy44IC43IDc3LjQtMjEyLjIgMC05OC4xLTk4LjJDOTkuNCA0MDIuNSA5Ni41IDM5OC41IDk2LjUgMzczek03OC43IDEwNS4zbDAgMjY3LjdjMCAzLjMgLjEgNi4zIC4yIDkuMWwtNjItNjJDNi41IDMwOS4zIDAgMjk0LjMgMCAyNzkuNiAwIDI3Mi44IDMuOSAyNjIuMSA2LjcgMjU2bDcyLTE1MC43eiJdfSxBbWU9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiZGVwbG95ZG9nIixpY29uOls1MTIsNTEyLFtdLCJmMzhlIiwiTTM4Mi4yIDEzNmw1MS43IDAgMCAyMzkuNi01MS43IDAgMC0yMC43Yy0xOS44IDI0LjgtNTIuOCAyNC4xLTczLjggMTQuNy0yNi4yLTExLjctNDQuMy0zOC4xLTQ0LjMtNzEuOCAwLTI5LjggMTQuOC01Ny45IDQzLjMtNzAuOCAyMC4yLTkuMSA1Mi43LTEwLjYgNzQuOCAxMi45bDAtMTAzLjl6TTMxNy41IDI5Ny44YTMzLjIgMzMuMiAwIDEgMCA2Ni40IDEgMzMuMiAzMy4yIDAgMSAwIC02Ni40LTF6TTE4OC41IDEzNmw1MS43IDAgMCAyMzkuNi01MS43IDAgMC0yMC43Yy0xOS44IDI0LjgtNTIuOCAyNC4xLTczLjggMTQuNy0yNi4yLTExLjctNDQuMy0zOC4xLTQ0LjMtNzEuOCAwLTI5LjggMTQuOC01Ny45IDQzLjMtNzAuOCAyMC4yLTkuMSA1Mi43LTEwLjYgNzQuOCAxMi45bDAtMTAzLjl6TTEyMy44IDI5Ny44YTMzLjIgMzMuMiAwIDEgMCA2Ni40IDEgMzMuMiAzMy4yIDAgMSAwIC02Ni40LTF6TTQ0OCA5NmMxNy41IDAgMzIgMTQuNCAzMiAzMmwwIDI1NmMwIDE3LjUtMTQuNCAzMi0zMiAzMkw2NCA0MTZjLTE3LjUgMC0zMi0xNC40LTMyLTMybDAtMjU2YzAtMTcuNSAxNC40LTMyIDMyLTMybDM4NCAwem0wLTMyTDY0IDY0QzI4LjggNjQgMCA5Mi44IDAgMTI4TDAgMzg0YzAgMzUuMiAyOC44IDY0IDY0IDY0bDM4NCAwYzM1LjIgMCA2NC0yOC44IDY0LTY0bDAtMjU2YzAtMzUuMi0yOC44LTY0LTY0LTY0eiJdfSxEbWU9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiZmxpcGJvYXJkIixpY29uOls0NDgsNTEyLFtdLCJmNDRkIiwiTTAgMzJsMCA0NDggNDQ4IDAgMC00NDgtNDQ4IDB6TTM1OC40IDIxMS4ybC04OS42IDAgMCA4OS42LTg5LjYgMCAwIDg5LjYtODkuNiAwIDAtMjY4LjggMjY4LjggMCAwIDg5LjZ6Il19LEVtZT17cHJlZml4OiJmYWIiLGljb25OYW1lOiJidXktbi1sYXJnZSIsaWNvbjpbNTc2LDUxMixbXSwiZjhhNiIsIk0yODguMiAzMkMxMzMuNSAzMiA4IDEzMi4zIDggMjU2UzEzMy41IDQ4MCAyODguMiA0ODAgNTY4LjQgMzc5LjcgNTY4LjQgMjU2IDQ0Mi45IDMyIDI4OC4yIDMyek0yMDIuOCAzODkuMmwtMTM4LjUgMS40IDc3LjItMjkwLjcgMTMzLjQgMGM2My4yIDAgODQuOSAyOC42IDc4IDcyLjgtLjQgMi4zLS45IDQuNi0xLjUgNi45LTUuNi0xLjMtMTEuNC0xLjktMTcuMi0xLjktNDIuMyAwLTc2LjcgMzMuOS03Ni43IDc1LjcgMCAzNy4xIDI3LjEgNjggNjIuOSA3NC41LTE4LjIgMzcuMi01Ni4yIDYwLjktMTE3LjcgNjEuNXpNMzU4LjIgMjA3LjFsMzIgMC0yMi4yIDkwLjMtMzUuNCAwLTExLjItMzUuNi03LjggMzUuNi0zNy44IDAgMjYuNi05MC4zIDMxLjMgMCAxNSAzNi44IDkuNC0zNi44ek01MDQuMSAzODkuMmwtMTk3LjEgMCAxNS44LTYxLjJjMy44IC42IDcuNiAuOCAxMS41IC44IDQyLjMgMCA3Ni43LTMzLjkgNzYuNy03NS42IDAtMzIuNi0yMS02MC41LTUwLjQtNzEuMWwyMS4zLTgyLjQgOTIuNSAwLTUzIDIwNS40IDEwMy45IDAtMjEuMiA4NC4xek0yMTEuOSAyNjkuNGwtMjQuNyAwLTEzLjggNTYuNSAyNC43IDBjMTYuMSAwIDMyLjEtMy4yIDM3LjktMjYuNiA1LjYtMjIuMy04LTI5LjgtMjQuMS0yOS44ek0yMzMuMiAxNzBsLTIxLjMgMC0xMS43IDQ3LjcgMjEuNCAwYzE4IDAgMzUuNC0xNC42IDM5LjItMzAuMSA0LjYtMTguOS05LjUtMTcuNi0yNy42LTE3LjZ6Il19LFBtZT17cHJlZml4OiJmYWIiLGljb25OYW1lOiJ3YXRjaG1hbi1tb25pdG9yaW5nIixpY29uOls1MTIsNTEyLFtdLCJlMDg3IiwiTTI1NiAxNmEyNDAgMjQwIDAgMSAwIDAgNDgwIDI0MCAyNDAgMCAxIDAgMC00ODB6TTEyMS43IDQyOS4xYy01MS42LTQwLjItODQuOS0xMDIuOC04NC45LTE3My4xIDAtMjEuNyAzLjItNDMuMyA5LjYtNjQuMWwxMDIuOS0xNy45LS4xIDExLTEzLjkgMnMtLjEgMTIuNS0uMSAxOS41YzAgMiAuNCA0IDEuMiA1LjhzMi4xIDMuNCAzLjcgNC42bDkuNSA3LjQtMjcuNyAyMDQuOXpNMjI3LjQgMTQ1LjlsOC41LTcuNnM2LjktNS40LS4xLTkuM2MtNy4yLTQtMzkuNS0zNC41LTM5LjUtMzQuNS01LjMtNS41LTguMy03LjMtMTUuNSAwIDAgMC0zMi4zIDMwLjUtMzkuNSAzNC41LTcuMSA0LS4xIDkuMy0uMSA5LjNsOC41IDcuNiAwIDQuNC03My41LTE5LjJjMzkuNi01Ni45IDEwNS41LTk0LjMgMTgwLTk0LjMgMzEuMyAwIDYyLjIgNi43IDkwLjYgMTkuNnM1My44IDMxLjggNzQuMyA1NS40bC0xOTMuNSAzNy43IDAtMy42em0zNC4xIDMyOS4zbC0zMy45LTI1MC45IDkuNS03LjRjMS42LTEuMiAyLjgtMi44IDMuNy00LjZzMS4zLTMuOCAxLjItNS44YzAtNy0uMS0xOS41LS4xLTE5LjVsLTEzLjktMi0uMS0xMC41IDI0MS43IDMxLjRjMy45IDE2LjQgNS44IDMzLjMgNS44IDUwLjEgMCAxMTkuMS05NS40IDIxNi4yLTIxMy44IDIxOS4xeiJdfSxJbWU9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiaGlwcyIsaWNvbjpbNjQwLDUxMixbXSwiZjQ1MiIsIk0yNTEuNiAxNTcuNmMwLTEuOS0uOS0yLjgtMi44LTIuOGwtNDAuOSAwYy0xLjYgMC0yLjcgMS40LTIuNyAyLjhsMCAyMDEuOGMwIDEuNCAxLjEgMi44IDIuNyAyLjhsNDAuOSAwYzEuOSAwIDIuOC0uOSAyLjgtMi44bDAtMjAxLjh6TTE1Ni41IDE2OGMtMTYuMS0xMS44LTM2LjMtMTcuOS02MC4zLTE4LTE4LjEtLjEtMzQuNiAzLjctNDkuOCAxMS40bDAtODEuMmMwLTEuOC0uOS0yLjctMi44LTIuN2wtNDAuOSAwQy45IDc3LjUgMCA3OC40IDAgODAuMkwwIDM1OS40YzAgMS45IC45IDIuOCAyLjcgMi44bDQxIDBjMS45IDAgMi44LS45IDIuOC0yLjhsMC0xMzYuMWMwLS44LTIuOC0yNyA0NS44LTI3IDQ4LjUgMCA0NS44IDI2LjEgNDUuOCAyN2wwIDEyMi42YzAgOSA3LjMgMTYuMyAxNi40IDE2LjNsMjcuMyAwYzEuOCAwIDIuNy0uOSAyLjctMi44bDAtMTM2LjFjMC0yMy40LTkuMy00MS44LTI4LTU1LjN6TTYzNC45IDI3OC4xYy02LjgtMTUuNy0xOC40LTI3LTM0LjktMzQuMWwtNTcuNi0yNS4zYy04LjYtMy42LTkuMi0xMS4yLTIuNi0xNi4xIDcuNC01LjUgNDQuMy0xMy45IDg0IDYuOCAxLjcgMSA0LS4zIDQtMi40bDAtNDQuN2MwLTEuMy0uNi0yLjEtMS45LTIuNi0xNy43LTYuNi0zNi4xLTkuOS01NS4xLTkuOS0yNi41IDAtNDUuMyA1LjgtNTguNSAxNS40LS41IC40LTI4LjQgMjAtMjIuNyA1My43IDMuNCAxOS42IDE1LjggMzQuMiAzNy4yIDQzLjZMNTgwLjQgMjg2YzExLjYgNS4xIDE1LjIgMTMuMyAxMi4yIDIxLjItMy43IDkuMS0xMy4yIDEzLjYtMzYuNSAxMy42LTI0LjMgMC00NC43LTguOS01OC40LTE5LjEtMi4xLTEuNC00LjQgLjItNC40IDIuM2wwIDM0LjRjMCAxMC40IDQuOSAxNy4zIDE0LjYgMjAuNyAxNS42IDUuNSAzMS42IDguMiA0OC4yIDguMiAxMi43IDAgMjUuOC0xLjIgMzYuMy00LjMgLjctLjMgMzYtOC45IDQ1LjYtNDUuOCAzLjUtMTMuNSAyLjQtMjYuNS0zLjEtMzkuMXpNMzc2LjIgMTQ5LjhjLTMxLjcgMC0xMDQuMiAyMC4xLTEwNC4yIDEwMy41bDAgMTgzLjVjMCAuOCAuNiAyLjcgMi43IDIuN2w0MC45IDBjMS45IDAgMi44LS45IDIuOC0yLjdsMC04OC44YzE2LjUgMTIuNyAzNS44IDE5LjEgNTcuNyAxOS4xIDYwLjUgMCAxMDguNy00OC41IDEwOC43LTEwOC43IC4xLTYwLjMtNDguMi0xMDguNi0xMDguNi0xMDguNnptMCA0Ni42YTYyLjIgNjIuMiAwIDEgMSAwIDEyNC4zIDYyLjIgNjIuMiAwIDEgMSAwLTEyNC4zek0yMjguMyA3Mi41Yy0xNS45IDAtMjguOCAxMi45LTI4LjkgMjguOSAwIDE1LjYgMTIuNyAyOC45IDI4LjkgMjguOXMyOC45LTEzLjEgMjguOS0yOC45YzAtMTYuMi0xMy0yOC45LTI4LjktMjguOXoiXX0sTm1lPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImNsb3VkdmVyc2lmeSIsaWNvbjpbNjQwLDUxMixbXSwiZjM4NSIsIk0xNjAuNiAzMDRjOC4yIDY4LjUgNjcuNCAxMTUuNSAxNDYgMTExLjMgNTEuMiA0My4zIDEzNi44IDQ1LjggMTg2LjQtNS42IDY5LjIgMS4xIDExOC41LTQ0LjYgMTMxLjUtOTkuNSAxNC44LTYyLjUtMTguMi0xMzIuNS05Mi4xLTE1NS4xLTMzLTg4LjEtMTMxLjQtMTAxLjUtMTg2LjUtODUtNTcuMyAxNy4zLTg0LjMgNTMuMi05OS4zIDEwOS43LTcuOCAyLjctMjYuNSA4LjktNDUgMjQuMSAxMS43IDAgMTUuMiA4LjkgMTUuMiAxOS41bDAgMjAuNGMwIDEwLjctOC43IDE5LjUtMTkuNSAxOS41bC0yMC4yIDBjLTEwLjcgMC0xOS41LTYtMTkuNS0xNi43bDAtNi42LTQ2LjggMGMtMy44IDAtMTAuOCA0LjMtMTAuOCAxMS45bDAgNDAuNGMwIDYuNCA1LjMgMTEuOCAxMS43IDExLjhsNDguOSAwIDAtLjF6TTM4OCAzMTJjLTEwLjcgNDYuMyAyMS43IDcyLjQgNTUuMyA4Ni44LTEwNy4yIDMzLjgtMTcxLjYtNTAuOC0xMzUuMy0xMTAuOC0zMy4yIDIxLjYtMzMuNyA3MS4yLTI5LjIgOTIuOS0xNy45LTEyLjQtNTMuOC0zMi40LTU3LjQtNzkuOC0zLTM5LjkgMjEuNS03NS43IDU3LTkzLjkgMzAuNi0xNS44IDEwMy41LTguNSAxMzMuNiA0MC44LTE0LjEtNDgtNTMuOC03MC4xLTEwMS44LTc0LjggMzAuOS0zMC43IDY0LjQtNTAuMyAxMTQuMi00My43IDY5LjggOS4zIDEzMy4yIDgyLjggNjcuNyAxNTAuNSAzNS0xNi4zIDQ4LjctNTQuNCA0Ny41LTc2LjlsMTAuNSAxOS42YzExLjggMjIgMTUuMiA0Ny42IDkuNCA3Mi05LjIgMzktNDAuNiA2OC44LTc5LjcgNzYuNS0zMi4xIDYuMy04My4xLTUuMS05MS44LTU5LjJ6TTE0MCAyMDhsLTM5LjggMGMtOC45IDAtMTYuMi03LjMtMTYuMi0xNi4ybDAtMzkuNmMwLTguOSA3LjMtMTYuMiAxNi4yLTE2LjJsMzkuOCAwYzguOSAwIDE2LjIgNy4zIDE2LjIgMTYuMmwwIDM5LjZjMCA4LjktNy4zIDE2LjItMTYuMiAxNi4yek0yMi4xIDE2OGMtNS42IDAtMTAuMS00LjUtMTAuMS0xMC4xbDAtMjcuOGMwLTUuNiA0LjUtMTAuMSAxMC4xLTEwLjFsMjcuNyAwYzUuNSAwIDEwLjEgNC41IDEwLjEgMTAuMWwwIDI3LjhjMCA1LjYtNC41IDEwLjEtMTAuMSAxMC4xbC0yNy43IDB6TTE4MCAxNDIuN2wwLTIxLjRjMC01LjEgNC4yLTkuMyA5LjMtOS4zbDIxLjQgMGM1LjEgMCA5LjMgNC4yIDkuMyA5LjNsMCAyMS40YzAgNS4xLTQuMiA5LjMtOS4zIDkuM2wtMjEuNCAwYy01LjEgMC05LjMtNC4yLTkuMy05LjN6TTY4IDIzNS41bDAgMjVjMCA2LjMtNS4xIDExLjUtMTEuNCAxMS41bC0yNS4yIDBjLTYuMyAwLTExLjQtNS4yLTExLjQtMTEuNWwwLTI1YzAtNi4zIDUuMS0xMS41IDExLjQtMTEuNWwyNS4xIDBjNi40IDAgMTEuNSA1LjIgMTEuNSAxMS41eiJdfSxGbWU9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiZ29vZHJlYWRzIixpY29uOls0NDgsNTEyLFtdLCJmM2E4IiwiTTI5OS45IDE5MS4yYzUuMSAzNy4zLTQuNyA3OS0zNS45IDEwMC43LTIyLjMgMTUuNS01Mi44IDE0LjEtNzAuOCA1LjctMzcuMS0xNy4zLTQ5LjUtNTguNi00Ni44LTk3LjIgNC4zLTYwLjkgNDAuOS04Ny45IDc1LjMtODcuNSA0Ni45LS4yIDcxLjggMzEuOCA3OC4yIDc4LjN6TTQ0OCA4OGwwIDMzNmMwIDMwLjktMjUuMSA1Ni01NiA1Nkw1NiA0ODBjLTMwLjkgMC01Ni0yNS4xLTU2LTU2TDAgODhDMCA1Ny4xIDI1LjEgMzIgNTYgMzJsMzM2IDBjMzAuOSAwIDU2IDI1LjEgNTYgNTZ6TTMzMCAzMTMuMnMtLjEtMzQtLjEtMjE3LjNsLTI5IDAgMCA0MC4zYy0uOCAuMy0xLjItLjUtMS42LTEuMi05LjYtMjAuNy0zNS45LTQ2LjMtNzYtNDYtNTEuOSAuNC04Ny4yIDMxLjItMTAwLjYgNzcuOC00LjMgMTQuOS01LjggMzAuMS01LjUgNDUuNiAxLjcgNzcuOSA0NS4xIDExNy44IDExMi40IDExNS4yIDI4LjktMS4xIDU0LjUtMTcgNjktNDUuMiAuNS0xIDEuMS0xLjkgMS43LTIuOSAuMiAuMSAuNCAuMSAuNiAuMiAuMyAzLjggLjIgMzAuNyAuMSAzNC41LS4yIDE0LjgtMiAyOS41LTcuMiA0My41LTcuOCAyMS0yMi4zIDM0LjctNDQuNSAzOS41LTE3LjggMy45LTM1LjYgMy44LTUzLjItMS4yLTIxLjUtNi4xLTM2LjUtMTktNDEuMS00MS44LS4zLTEuNi0xLjMtMS4zLTIuMy0xLjNsLTI2LjggMGMuOCAxMC42IDMuMiAyMC4zIDguNSAyOS4yIDI0LjIgNDAuNSA4Mi43IDQ4LjUgMTI4LjIgMzcuNCA0OS45LTEyLjMgNjcuMy01NC45IDY3LjQtMTA2LjN6Il19LE9tZT17cHJlZml4OiJmYWIiLGljb25OYW1lOiJ0aWRhbCIsaWNvbjpbNjQwLDUxMixbXSwiZTdkYyIsIk0xMDcuMiA0OGwtMS4zIDBjLTMyLjMgMzMuMS02NS40IDY1LjUtOTggOTguNS0yLjYgMi44LTYuMSA1LjEtNy45IDguNiAzNS42IDM1LjQgNzEgNzEgMTA2LjYgMTA2LjQgMzUuNC0zNS4zIDcwLjctNzAuOCAxMDYuMS0xMDYuMWwwLTEuMy03My4yLTczLjJDMTI4LjggNjkuOCAxMTcuMyA1OS42IDEwNy4yIDQ4em0yMTMuNSAwbC0xLjMgMGMtMzQuOSAzNi4xLTcxLjUgNzEtMTA2LjMgMTA3LjIgMzUuOSAzNS4xIDcxIDcxIDEwNi43IDEwNi4zIDM0LjMtMzQuMSA2OC40LTY4LjQgMTAyLjYtMTAyLjQgMS41LTEuNSAzLjMtMi44IDQuMS00LjgtMzQuNi0zMy44LTY4LjQtNjguMi0xMDIuNi0xMDIuMS0xLjMtMS4zLTIuMy0yLjYtMy4zLTQuMXptMjEzLjUgMGwtMS4zIDBjLTE3LjIgMTgtMzUuMSAzNS4zLTUyLjYgNTMtMTcuOSAxNy43LTM1LjQgMzUuNy01My41IDUzLjMgLjggMi4zIDMgMy42IDQuNiA1LjVMNTMzLjMgMjYxLjVjMzYuMS0zNC45IDcwLjgtNzEuMiAxMDYuNy0xMDYuMS0uNS0yLjItMi42LTMuNS00LTVMNTU1LjggNzAuMmMtNy4xLTcuNC0xNC45LTE0LjItMjEuNS0yMi4yek0zMTkuNiAyNjEuN2MtMzQuOSAzNS4xLTcwIDcwLTEwNC45IDEwNC45LS4zIC43LS43IDEuNy0xIDIuMyAyNCAyMy43IDQ3LjcgNDcuNSA3MS41IDcxLjMgMTEuOCAxMS4zIDIyLjggMjMuNSAzNC45IDM0LjQgOC40LTcuNCAxNi40LTE2LjQgMjQuNy0yNC4zIDI1LjUtMjUuMyA1MS01MSA3Ni41LTc2LjMgMS44LTIuMiA0LjMtMy42IDUuNS02LjMtMzUuNC0zNC45LTcwLjUtNzAuMi0xMDUuNi0xMDUuNGwtMS41LS43eiJdfSxSbWU9e3ByZWZpeDoiZmFiIixpY29uTmFtZToidW5pdHkiLGljb246WzQ0OCw1MTIsW10sImUwNDkiLCJNMjQzLjYgOTEuNmw4MC4xIDQ2LjhjMi45IDEuNiAzIDYuMiAwIDcuOGwtOTUuMiA1NS42Yy0yLjkgMS43LTYuMyAxLjYtOSAwbC05NS4yLTU1LjZjLTIuOS0xLjYtMy02LjMgMC03LjhsODAuMS00Ni44IDAtOTEuNi0yMDQuNCAxMTkuNCAwIDIzOC44IDc4LjQtNDUuOCAwLTkzLjZjLS4xLTMuMyAzLjgtNS43IDYuNy0zLjlsOTUuMiA1NS42YzIuOSAxLjcgNC41IDQuNyA0LjUgNy44bDAgMTExLjJjLjEgMy4zLTMuOCA1LjctNi43IDMuOUw5OCAzNDYuOCAxOS42IDM5Mi42IDIyNCA1MTIgNDI4LjQgMzkyLjYgMzUwIDM0Ni44IDI2OS45IDM5My42Yy0yLjggMS43LTYuOC0uNS02LjctMy45bDAtMTExLjJjMC0zLjMgMS44LTYuMyA0LjUtNy44TDM2Mi45IDIxNWMyLjgtMS43IDYuOCAuNSA2LjcgMy45bDAgOTMuNiA3OC40IDQ1LjggMC0yMzguOC0yMDQuNC0xMTkuNCAwIDkxLjZ6Il19LEJtZT17cHJlZml4OiJmYWIiLGljb25OYW1lOiJ0ZW5jZW50LXdlaWJvIixpY29uOlszMjAsNTEyLFtdLCJmMWQ1IiwiTTQwLjUgNDk1LjhjMS40IDE5LjktMjcuNiAyMi4yLTI5LjcgMi45LTExLjYtMTI5LjkgMzEuMS0yMzkuNSAxMDEuNC0zMTMuMi0xNS42LTM0IDkuMi03Ny4xIDUwLjYtNzcuMSAzMC4zIDAgNTUuMSAyNC42IDU1LjEgNTUuMSAwIDQ0LTQ5LjUgNzAuOC04Ni45IDQ1LjEtNjUuNyA3MS4zLTEwMS40IDE2OS44LTkwLjUgMjg3LjJ6TTE2MC4yIC4xYy0xMjUuOSAwLTIwNC4zIDEzNC4yLTE0OC4zIDI0Mi4zIDguNyAxNy40IDM1LjMgNC41IDI2LjMtMTMuNC00Ni4zLTkyLjYgMjEtMTk5LjIgMTIyLTE5OS4yIDc1LjQgMCAxMzYuOSA2MS40IDEzNi45IDEzNi45IDAgOTAuOC04Ni45IDE1My45LTE2Ny43IDEzMy4xLTE5LjEtNC4xLTI1LjYgMjQuNC02LjYgMjkuMSAxMTAuNyAyMy4yIDIwNC02MCAyMDQtMTYyLjMgMC05MS45LTc0LjYtMTY2LjUtMTY2LjYtMTY2LjV6Il19LEhtZT17cHJlZml4OiJmYWIiLGljb25OYW1lOiJmcmVlLWNvZGUtY2FtcCIsaWNvbjpbNTc2LDUxMixbXSwiZjJjNSIsIk05Ny40IDk2LjJjMTAuNC0xMC42IDE2LTE3LjEgMTYtMjEuOSAwLTIuOC0xLjktNS41LTMuOC03LjQtMi40LTEuOC01LjQtMi44LTguNC0yLjgtOC41IDAtMjAuOSA4LjgtMzUuOCAyNS43LTQxLjUgNDcuMy02Mi43IDkzLjEtNjEuOCAxNjAuNlMyMSAzNjcuMyA1Ny42IDQxMi4yYzE4LjggMjMuNiAzMy4yIDM1LjggNDMuNSAzNS44IDMuMi0uMyA2LjEtMS42IDguNC0zLjggMS45LTIuOCAzLjgtNS42IDMuOC04LjQgMC01LjYtMy45LTEyLjItMTMuMi0yMC42LTQ0LjUtNDIuMy02Ny4zLTk3LTY3LjUtMTY1LS4yLTYxLjQgMjEuNi0xMTIuNCA2NC44LTE1NHpNMjM5LjYgNDIwLjFjLjYgLjQgLjkgLjYgLjkgLjZsLS45LS42em05My44IC42bC4yLS4xYy0uMiAuMS0uMyAuMi0uMiAuMXptMy4xLTE1OC4yYy0xNi4yLTQuMiA1MC40LTgyLjktNjguMS0xNzcuMiAwIDAgMTUuNSA0OS40LTYyLjggMTU5LjYtNzQuMyAxMDQuNCAyMy41IDE2OC43IDM0IDE3NS4yLTYuNy00LjMtNDcuNC0zNS43IDkuNi0xMjguNiAxMS0xOC4zIDI1LjUtMzQuOSA0My41LTcyLjIgMCAwIDE1LjkgMjIuNCA3LjYgNzEuMS0xMi41IDczLjYgNTMuOCA1Mi41IDU0LjggNTMuNSAyMi44IDI2LjgtMTcuNyA3My41LTIxLjYgNzYuNiA1LjUtMy43IDExNy43LTc4IDMzLTE4OC4xLTYgNi0xMy44IDM0LjItMzAgMzAuMXpNNTExIDg5LjdjLTE0LjktMTYuOS0yNy40LTI1LjctMzUuOS0yNS43LTMgLjEtNS45IDEuMS04LjQgMi44LTEuOSAxLjktMy44IDQuNy0zLjggNy40IDAgNC44IDUuNiAxMS4zIDE2IDIxLjkgNDMuMiA0MS42IDY1IDkyLjYgNjQuOCAxNTQuMS0uMiA2OC0yMyAxMjIuNi02Ny41IDE2NS05LjMgOC40LTEzLjIgMTQuOS0xMy4yIDIwLjYgMCAyLjcgMS45IDUuNiAzLjggOC40IDIuMyAyLjIgNS4yIDMuNiA4LjQgMy44IDEwLjMgMCAyNC43LTEyLjEgNDMuNS0zNS44IDM2LjYtNDQuOSA1My4xLTk0LjQgNTQuMS0xNjEuOVM1NTIuNSAxMzcgNTExIDg5Ljd6Il19LHFtZT17cHJlZml4OiJmYWIiLGljb25OYW1lOiJ4LXR3aXR0ZXIiLGljb246WzQ0OCw1MTIsW10sImU2MWIiLCJNMzU3LjIgNDhMNDI3LjggNDggMjczLjYgMjI0LjIgNDU1IDQ2NCAzMTMgNDY0IDIwMS43IDMxOC42IDc0LjUgNDY0IDMuOCA0NjQgMTY4LjcgMjc1LjUtNS4yIDQ4IDE0MC40IDQ4IDI0MC45IDE4MC45IDM1Ny4yIDQ4ek0zMzIuNCA0MjEuOGwzOS4xIDAtMjUyLjQtMzMzLjgtNDIgMCAyNTUuMyAzMzMuOHoiXX0sVm1lPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6InN0aWNrZXItbXVsZSIsaWNvbjpbNTc2LDUxMixbXSwiZjNmNyIsIk01NjEuNyAxOTkuNmwwIDB6bS02LjItNzcuNGMtNy43LTIyLjMtNS4xLTcuMi0xMy40LTM2LjktMS42LTYuNS0zLjYtMTQuNS02LjItMjAtNC40LTguNy00LjYtNy41LTQuNi05LjUgMC01LjMgMzAuNy00NS4zIDE5LTQ2LjktNS43LS42LTEyLjIgMTEuNi0yMC42IDE3LTguNiA0LjItOCA1LTEwLjMgNS0yLjYgMC01LjctMy02LjItNS0yLTUuNyAxLjktMjUuOS0zLjYtMjUuOS0zLjYgMC0xMi4zIDI0LjgtMTcgMjUuOC01LjIgMS4zLTI3LjktMTEuNC03NS4xIDE4LTI1LjMgMTMuMi04Ni45IDY1LjItODcgNjUuMy02LjcgNC43LTIwIDQuNy0zNS41IDE2LTQ0LjQgMzAuMS0xMDkuNiA5LjQtMTEwLjcgOS0xMTAuNi0yNi44LTEyOC0xNS4yLTE1OSAxMS41LTIwLjggMTcuOS0yMy43IDM2LjUtMjQuMiAzOC45LTQuMiAyMC40IDUuMiA0OC4zIDYuNyA2NC4zIDEuOCAxOS4zLTIuNyAxNy43IDcuNyA5OC4zIC41IDEgNC4xIDAgNS4xIDEuNSAwIDguNC0zLjggMTIuMS00LjEgMTMtMS41IDQuNS0xLjUgMTAuNSAwIDE2IDIuMyA4LjIgOC4yIDM3LjIgOC4yIDQ2LjkgMCA0MS44IC40IDQ0IDIuNiA0OS40IDMuOSAxMCAxMi41IDkuMSAxNyAxMiAzLjEgMy41LS41IDguNSAxIDEyLjUgLjUgMiAzLjYgNCA2LjIgNSA5LjIgMy42IDI3IC4zIDI5LjktMi41IDEuNi0xLjUgLjUtNC41IDMuMS01IDUuMSAwIDEwLjgtLjUgMTQuNC0yLjUgNS4xLTIuNSA0LjEtNiAxLjUtMTAuNS0uNC0uOC03LTEzLjMtOS44LTE2LTIuMS0yLTUuMS0zLTcuMi00LjUtNS44LTQuOS0xMC4zLTE5LjQtMTAuMy0xOS41LTQuNi0xOS40LTEwLjMtNDYuMy00LjEtNjYuOCA0LjYtMTcuMiAzOS41LTg3LjcgMzkuNi04Ny44IDQuMS02LjUgMTctMTEuNSAyNy4zLTcgNiAxLjkgMTkuMyAyMiA2NS40IDMwLjkgNDcuOSA4LjcgOTcuNC0yIDExMi4yLTIgMi44IDItMS45IDEzLS41IDM4LjkgMCAyNi40LS40IDEzLjctNC4xIDI5LjktMi4yIDkuNyAzLjQgMjMuMi0xLjUgNDYuOS0xLjQgOS44LTkuOSAzMi43LTguMiA0My40IC41IDEgMSAyIDEuNSAzLjUgLjUgNC41IDEuNSA4LjUgNC42IDEwIDcuMyAzLjYgMTItMy41IDkuOCAxMS41LS43IDMuMS0yLjYgMTIgMS41IDE1IDQuNCAzLjcgMzAuNiAzLjQgMzYuNSAuNSAyLjYtMS41IDEuNi00LjUgNi40LTcuNCAxLjktLjkgMTEuMy0uNCAxMS4zLTYuNSAuMy0xLjgtOS4yLTE5LjktOS4zLTIwLTIuNi0zLjUtOS4yLTQuNS0xMS4zLTgtNi45LTEwLjEtMS43LTUyLjYgLjUtNTkuNCAzLTExIDUuNi0yMi40IDguNy0zMi40IDExLTQyLjUgMTAuMy01MC42IDE2LjUtNjguMyAuOC0xLjggNi40LTIzLjEgMTAuMy0yOS45IDkuMy0xNyAyMS43LTMyLjQgMzMuNS00Ny40IDE4LTIyLjkgMzQtNDYuOSA1Mi02OS44IDYuMS03IDguMi0xMy43IDE4LTggMTAuOCA1LjcgMjEuNiA3IDMxLjkgMTcgMTQuNiAxMi44IDEwLjIgMTguMiAxMS44IDIyLjkgMS41IDUgNy43IDEwLjUgMTQuOSA5LjUgMTAuNC0yIDEzLTIuNSAxMy40LTIuNSAyLjYtLjUgNS43LTUgNy4yLTggMy4xLTUuNSA3LjItOSA3LjItMTYuNSAwLTcuNy0uNC0yLjgtMjAuNi01Mi45eiJdfSxqbWU9e3ByZWZpeDoiZmFiIixpY29uTmFtZToidHdpdGNoIixpY29uOls0NDgsNTEyLFtdLCJmMWU4IiwiTTM1OS40IDEwMy41bC0zOC42IDAgMCAxMDkuNyAzOC42IDAgMC0xMDkuN3pNMjUzLjIgMTAzbC0zOC42IDAgMCAxMDkuOCAzOC42IDAgMC0xMDkuOHpNODkgMGwtOTYuNSA5MS40IDAgMzI5LjIgMTE1LjggMCAwIDkxLjQgOTYuNS05MS40IDc3LjMgMCAxNzMuOC0xNjQuNiAwLTI1Ni0zNjYuOSAwek00MTcuMyAyMzcuOGwtNzcuMiA3My4xLTc3LjIgMC02Ny42IDY0IDAtNjQtODYuOSAwIDAtMjc0LjMgMzA4LjkgMCAwIDIwMS4yeiJdfSxVbWU9e3ByZWZpeDoiZmFiIixpY29uTmFtZToia2lja3N0YXJ0ZXItayIsaWNvbjpbNDQ4LDUxMixbXSwiZjNiYyIsIk0zNTYuNyAyNTYuMmw0MC44LTQwLjVjNDIuMi00MS45IDQyLjItMTEwLjMgMC0xNTIuMXMtMTExLTQxLjktMTUzLjIgMEwyMjkuMyA3OC40QzIwOS42IDUwLjMgMTc3LjEgMzIgMTQwLjIgMzIgODAuNSAzMiAzMiA4MC4yIDMyIDEzOS41bDAgMjMzYzAgNTkuNCA0OC41IDEwNy41IDEwOC4yIDEwNy41IDM3LjEgMCA2OS4zLTE4LjMgODktNDYuNGwxNC45IDE0LjdjNDIuMiA0MS45IDExMSA0MS45IDE1My4yIDBzNDIuMi0xMTAuMyAwLTE1Mi4xbC00MC44LTQwIC4xIDB6Il19LFdtZT17cHJlZml4OiJmYWIiLGljb25OYW1lOiJjcml0aWNhbC1yb2xlIixpY29uOls0NDgsNTEyLFtdLCJmNmM5IiwiTTIyNS44IDBjLjMgLjIgMjE2LjYgMTI0LjUgMjE3LjEgMTI0LjcgMyAxLjIgMy43IDMuNSAzLjcgNi42LS4xIDgzLjQtLjEgMTY2LjkgMCAyNTAuNCAuMSAxLjItLjIgMi40LS44IDMuNHMtMS41IDEuOS0yLjYgMi40Yy0yMS40IDEyLTIwNy45IDExOC4zLTIxOC45IDEyNC42bC0zIDBjLTc5LjMtNDUuNy0yMTguMy0xMjUuNC0yMTguNC0xMjUuNS0uNi0uMy0xLjEtLjctMS40LTEuM3MtLjUtMS4yLS40LTEuOWMwLS45IDAtMjI1LjktLjEtMjUzLjEtLjEtMSAuMi0yIC43LTIuOXMxLjMtMS42IDIuMi0yQzI3LjIgMTEyLjEgMjEzLjIgNiAyMjQuMSAwbDEuOCAwek0yMTUuNCAyMC40bC0uMi0uMmMtNjQuNyAzNi45LTEyOS41IDczLjctMTk0LjIgMTEwLjYgMCAuMSAuMSAuMiAuMSAuNEw1MiAxNDIuOWMtNy43IDYtOC4zIDYtMTAuNiA1LjEtLjEgMC0yNC4yLTkuMy0yNi44LTEwbDAgMjMwLjRjLjktMS40IDY0LjEtMTEwLjkgNjQuMS0xMTEgMS42LTIuOCAzLTEuOSA5LjEtMS41IDEuNCAuMSAxLjUgLjIgLjggMS40LTQxLjIgNzEuMy0zNi40IDYzLTY3LjUgMTE2LjktLjggMS40LS42IDEuMSAxLjIgMS4xbDE4Ni41IDBjMS40IDAgMS43LS4yIDEuNy0xLjZsMC04LjljMC0xLjMgMi40LS44LTE4LjQtMS03LjUtLjEtMTQuMS0zLjItMjEuNC0xMi43LTcuNC05LjctMTQuNi0xOS40LTIxLjgtMjkuMi0yLjMtMy4xLTMuNC0yLjQtMTYuOC0yLjQtMS44IDAtMS44IDAtMS44IDEuOCAuMyAyNi4yIC4yIDI1LjMgMSAzMi43IC41IDQuNCAyLjIgNC4yIDkuNyA0LjggMy4xIC4zIDMuOSA0LjEgLjUgNC45LTEuNiAuNC0zMS42IC41LTMzLjctLjEtLjUtLjEtMS0uNS0xLjMtLjlzLS41LTEtLjQtMS42IC4zLTEuMSAuNi0xLjUgLjktLjcgMS40LS44YzMuMy0uOCA2LjIgLjggNi43LTQuNCAxLjMtMTMuNyAxLjItOSAxLjEtNzkuNCAwLTEwLjgtLjQtMTIuNi01LjQtMTMuNi0xLjItLjItMy41LS4yLTQuNy0uNi0yLjktMS0yLTQuOCAxLjgtNC44IDMzLjcgMCA0Ni4xLTEuMSA1Ni4xIDQuOSA3LjcgNC42IDEyIDExLjUgMTIuNSAyMC40IC45IDE0LjYtNi41IDIyLjMtMTUgMzIuNi0uMiAuMS0uMyAuMy0uNCAuNXMtLjEgLjQtLjEgLjYgMCAuNCAuMSAuNiAuMiAuNCAuNCAuNWMyLjYgMy4yIDUgNi42IDcuNyA5LjggMjcuNiAzMy4yIDI0LjEgMzAuNSA0MS4zIDMzLjEgLjkgLjEgMS0uNCAxLTEuMmwwLTExYzAtMSAuMy0xLjQgMS40LTEuMyA3LjggMS4yIDE1LjggMS4xIDIzLjYtLjMgMS4xLS4xIDEuNSAuMiAxLjUgMS4zIDAgLjEgLjkgMjYuNyAuOSAyNi44IDAgMS41IC43IDEuNiAxLjkgMS42bDE4Ni43IDBjLTI3LjItNDctNTQuMi05NC04MS4yLTE0MC44IDIuMy0uNy0uNCAwIDYuNy0xLjQgMi0uNCAyLjEtLjQgMy4xIDEuNCA3LjMgMTIuNiA3Ny4zIDEzNCA3Ny40IDEzNC4xbDAtMjMwLjRjLTEuNyAuNS0xMDMuMyAzOC43LTEwNS44IDM5LjctMS4xIC40LTEuNSAuMi0xLjktLjktLjYtMS45LTEuMy0zLjgtMi4xLTUuNi0uMy0uOC0uMS0xLjEgLjYtMS40IC4xIDAgOTUuNS0zNS44IDEwMy0zOC44LTY1LjQtMzcuNi0xMzAuNi03NS0xOTYtMTEyLjZsODYuOCAxNTAuNC0uMyAuM2MtOS42LS45LTEwLjUtMS42LTExLjgtMy45LTEtMS43LTczLjUtMTI3LjctODItMTQyLjItOS4xIDE0LjctODMuNiAxNDYuMi04NS40IDE0Ni4zLTIuOSAuMi01LjkgLjEtOS4yIC4xIDI4LjgtNDkuOCA1Ny42LTk5LjUgODYuMi0xNDlsMCAwem01MS45IDEyOS45YzEuOS0uMSAzLjctLjQgNS41LS44IDEuNy0uMyAyLjUgLjIgMi42IDEuOSAwIC4xIC4xIDE5LjEtLjkgMjAuNXMtMS45IDEuMi0yLjYtLjJjLTUtOS43IDYuMi05LjctMzkuMS0xMi0uNyAwLTEgLjItMSAuOSAwIC4xIDMuNyAxMjIgMy43IDEyMi4xIDAgLjkgLjUgMS4yIDEuMiAxLjUgMyAxLjIgNS45IDIuNSA4LjcgNCA3LjMgNC4zIDExLjQgMTAuOCAxMi40IDE5LjMgMS40IDExLjgtMi44IDM1LjgtMzIuMiAzNy4xLTIuOCAuMS0yOC4zIDEuMS0zNC4xLTIzLjMtNC43LTE5LjMgOC4zLTMyLjcgMTkuOS0zNi40IC42LS4xIDEuMi0uNCAxLjUtLjlzLjUtMS4xIC41LTEuN2MuMS01LjYgMy0xMDcuMSAzLjctMTIxLjMgMC0xLjEtLjYtMS4yLTEuNC0xLjEtMzIuMyAuNS0zNi43LS4zLTQwLjIgOC41LTIuNCA2LjItNC4xIDEuMy00IC4yIDEuMS02IDIuMi0xMiAzLjMtMTggLjQtMi4xIDEuNC0yLjYgMy40LTEuOSA1LjYgMi4xIDYuNyAxLjcgMzcuMiAxLjkgMS43IDAgMS44LS4xIDEuOC0xLjggLjctMjcuNSAuNi0yMi42IDEtMjkuNiAuMS0uNi0uMS0xLjItLjMtMS43cy0uNy0uOS0xLjMtMS4xYy01LjYtMi45LTguOC03LjYtOC45LTEzLjktLjQtMTQuOCAxNy43LTIxLjcgMjcuNC0xMS41IDYuOCA3LjIgNS44IDE4LjktMi41IDI0LjItLjggLjQtMS40IDEuMS0xLjggMS44cy0uNiAxLjYtLjQgMi41YzAgLjYtLjEtNC4zIDEgMzAgMCAuOSAuNCAxLjEgMS4yIDEuMSAuMSAwIDIzLS4xIDM0LjUtLjRsMC0uMXpNNjguMyAxNDEuN2MxOS44LTQuNSAzMi43LS42IDUyLjUgMS43IDIuOCAuMyAzLjcgMS4yIDMuNiA0LS4yIDUtMS4yIDIyLjMtMS4yIDIzLjEgMCAuNS0uMiAxLS41IDEuNHMtLjcgLjctMS4yIC45Yy00LjEgMS43LTMuNi00LjQtNC03LjMtMy4xLTIyLjQtNzMuOS0zMi43LTc0LjYgMjUuNC0uMyAyMy45IDE3IDUzLjYgNTQuMSA1MC45IDI3LjItMiAxOS0yMC4yIDI0LjgtMjAuNSAuNC0uMSAuOSAwIDEuMyAuMXMuOCAuNCAxLjEgLjcgLjUgLjcgLjYgMS4yIC4xIC45IDAgMS4zYy0xLjggMTAuOC0zLjQgMTktMy40IDE5LjItMS41IDkuMi04Ni43IDIyLjEtOTMuNC00Mi4xLTIuNy0yNS44IDEwLjQtNTMuNCA0MC4zLTYwLjJ6bTgwIDg3LjdsLTE5LjUgMGMtLjYgMC0xLjItLjEtMS42LS40cy0uOC0uOC0xLTEuNGMyLjQtMy44IDUuOSAuOSA1LjktNi4xLS4xLTI1LjggLjItMzggLjItNDAuMSAwLTMuNC0uNS00LjYtMy4zLTQuOS03LS43LTMuMS0zLjQtMS4xLTMuNCAxMS44LS4xIDIyLjYtLjIgMzAgLjcgOC44IDEuMSAxNi43IDEyLjYgNy45IDIyLjYtMiAyLjItNCA0LjQtNi4xIDYuNyAxIDEuMiA2LjkgOC44IDE3LjMgMTkuNyAyLjcgMi44IDYuMiAzLjUgOS45IDMuMSAuNiAwIDEuMS0uMiAxLjUtLjZzLjctLjkgLjctMS41Yy4zLTMuNCAuMyA0LjcgLjQtNDAuNiAwLTUuNi0uMy02LjYtMy4yLTYuOC00LS40LTQtMi4zLS43LTMuNGwxOS4xLS4xYy4zIDAgNC41IC41IDEgMy40IDAgMC0uMiAwLS4yIDAtMy42IC4zLTMuOSAxLTQgNC42LS4zIDQzLjkgLjEgNDAuMiAuNCA0Mi44IC4xIC44IC4zIDIuMiA1LjEgMi4xIDIuNSAwIDMuOSAzLjQgMCAzLjQtMTAuNCAuMS0yMC43IDAtMzEuMSAuMS0xMC43IDAtMTMuNS02LjItMjQuMi0yMC44LTEuNi0yLjItOC4zLTIuNC04LjItLjQgLjkgMTYuNSAwIDE3LjggNCAxNy43IDQuOC0uMSA0LjcgMy42IC44IDMuNWwuMSAwem0yNzUtMTAuMWMtMS4yIDcuMSAuMiAxMC40LTUuMyAxMC4zLTYxLjUtLjQtNDcuOC0uMi01MC43LS4zLTEuMi0uMS0yLjQtLjQtMy42LS43LTIuNS0uNiAxLjUtMS4yLS40LTUuNi0xLjQtMy40LTIuOC02LjgtNC4xLTEwLjItLjEtLjQtLjQtLjgtLjctMS4xcy0uOC0uNC0xLjMtLjRjLTQuOS0uMi05LjctLjItMTQuNiAuMS0uMyAwLS42IC4yLS45IC4zcy0uNSAuNC0uNyAuN2MtMS42IDMuNi0zLjEgNy4zLTQuNSAxMS0xLjMgMy4yIDcuOSAxLjMgMTIuMiAyLjIgMyAuNiA0LjUgMy43IC43IDMuN2wtMjYuNCAwYy0yLjkgMC0zLjEtMy4yLS43LTMuMiAxLjIgLjEgMi40LS4yIDMuNS0uOXMxLjktMS41IDIuNC0yLjZjMS41LTMgMi44LTYgNC4xLTkuMSAxOC4yLTQyLjEgMTcuMS00MC4yIDE4LjQtNDEuNiAuMi0uMiAuNC0uNCAuNy0uNnMuNi0uMiAuOC0uMiAuNiAuMSAuOCAuMiAuNSAuMyAuNyAuNmMyLjkgMy4zIDE4LjQgNDQuNyAyMy42IDUxLjkgMiAyLjcgNS43IDIgNi40IDIgMy42IC4xIDQtMS4xIDQuMS00LjMgLjEtMS45IC4xIDEuMiAuMS00MS4yIDAtNC41LTIuNC0zLjctNS42LTQuMy0uMyAwLTIuNi0uNi0uMS0zLjEgLjItLjItLjktLjIgMjEuNy0uMiAyLjMgMCA1LjMgMi44LTEuMiAzLjQtLjQgMC0uNyAwLTEuMSAuMnMtLjYgLjMtLjkgLjYtLjQgLjYtLjYgLjktLjIgLjctLjEgMS4xYy0uMSAxLjYtLjIgMzguOSAuMyA0MS4yIC4yIC43IC42IDEuNCAxLjIgMS44czEuMyAuNyAyLjEgLjZjMTMuMyAuNCAxNC45IC40IDE2LTMuNCAxLjctNS44IDQuMS0yLjUgMy43LS4ybDAgLjF6TTMxOC42IDI4My42Yy00LjIgMC00LjQtMy40LS42LTMuNCAzNS45LS4yIDI4LjEgLjQgMzcuMi0uNiAxLjctLjIgMi40IC4yIDIuMyAxLjktLjMgMy40LS42IDYuOC0xIDEwLjItLjIgMi4yLTMuMiAyLjYtMy40LS4yLS40LTUuMy0yLjItNC41LTE1LjYtNS4xLTEuNi0uMS0xLjYgMC0xLjYgMS41bDAgMTYuMWMwIDEuNyAwIDEuNiAxLjYgMS41IDMuMS0uMiAxMC4zIC4zIDE1LjctMS41IC41LS4yIDMuMy0xLjggMy4xIDEuOCAwIC4yLS44IDEwLjQtMS4yIDExLjQtLjUgMS4zLTEuOSAxLjUtMi42IC4zLTEuMi0yIDAtNS4xLTMuNy01LjMtMTUuNC0uOS0xMi45LTIuNS0xMi45IDYgMCAxMi4zLS44IDE2LjEgMy45IDE2LjIgMTYuNiAuNSAxNC40IDAgMTYuNC01LjcgLjgtMi40IDMuNS0xLjggMy4yIC42LS40IDMuMi0uOCA2LjQtMS4yIDkuNiAwIC40LS4yIDIuNC00LjcgMi40LTM3LjItLjEtMzQuNS0uMi0zNS4yLS4zLTIuNy0uNS0yLjItMyAuMi0zLjQgMS4xLS4yIDQgLjUgNC4yLTIuNiAyLjQtNTYuMi0uMS01MS4zLTMuOS01MS4zbDAgMHptLS40LTEwOS41YzIuNSAuNiAzLjEgMS44IDMgNC42LS4zIDUuMy0uMyA5LS42IDkuNy0uNyAyLjItMy4xIDIuMS0zLjMtLjMtLjQtNC44LTMtNy44LTcuNi05LjEtMjYuMy03LjctMzIuOCAxNS41LTI3LjIgMzAuMiA1LjkgMTUuNCAyMiAxNS45IDI4LjkgMTMuOCA1LjktMS45IDUuOS02LjUgNi45LTcuNiAxLjItMS4zIDIuMi0xLjggMy4xIDEuMSAwIC4xIC42IDExLjktNiAxMi43LTEuNiAuMi0xOS40IDMuNy0zMi43LTMuNC0yMS0xMS4yLTE2LjctMzUuNS02LjktNDUuMyAxNC0xNC4xIDM5LjktNy4xIDQyLjMtNi41bDAgMHpNMjg5LjggMjgwLjFjMy4zIDAgMy43IDMgLjIgMy40LTIuNiAuMy01LS40LTUgNS41IDAgMi0uMiAyOSAuNCA0MS40IC4xIDIuMyAxLjIgMy41IDMuNCAzLjcgMjIgMS4yIDE1LTEuNyAxOC44LTYuMyAxLjgtMi4yIDIuOCAuOCAyLjggMS4xIC4zIDEzLjYtNCAxMi40LTUuMiAxMi40bC0zOC4yLS4yYy0xLjktLjItMi4xLTMtLjQtMy40IDItLjUgNC45IC40IDUuMS0yLjggMS0xNS45IC42LTQ0LjYgLjMtNDcuOC0uMy0zLjgtMi44LTMuMy01LjctMy43LTIuNS0uNC0yLTMuMiAuMy0zLjIgMS40IDAgMTggMCAyMy4xIDB6bS0zMS42LTU3LjhjLjEgNC4xIDIuOSAzLjUgNiAzLjYgMi42IC4xIDIuNSAzLjQtLjEgMy40LTYuNSAwLTEzLjcgMC0yMS42LS4xLTMuOCAwLTMuNC0zLjQgMC0zLjQgNC41IDAgMy4yIDEuNiAzLjQtNDUuNSAwLTUuMS0zLjMtMy41LTQuNy00LjItMi42LTEuMi0xLjQtMy4xIC40LTMuMiAxLjMgMCAyMC4yLS40IDIxLjIgLjJzMS45IDEuNi0uNCAyLjljLTEgLjUtMy45LS4zLTQuMiAyLjUgMCAuMi0uOCAxLjYtLjEgNDMuOGwwIDB6TTIyMS4zIDQ5Ni42Yy41IC4zIDEgLjUgMS42IC41czEuMS0uMiAxLjYtLjVjMTctOS44IDE4Mi0xMDMuNiAxOTcuNC0xMTIuNS0uMS0uNCAxMS4zLS4yLTE4MS41LS4zLTEuMiAwLTEuNiAuNC0xLjUgMS42IDAgLjEgMS4zIDQ0LjUgMS4yIDUwLjQtLjEgMi42LS42IDUuMi0xLjQgNy43LS42IDEuOCAuNC0uNS0xMy41IDMyLjItLjcgMS43LTEgMi4yLTItLjEtNC4yLTEwLjMtOC4zLTIwLjctMTIuNi0zMS0xLjUtMy40LTIuMi03LjEtMi0xMC44IC4yLTIuNSAuOC0xNi4xIDEuNS00OCAwLTEuOSAwLTItMi0ybC0xODMgMGMyLjYgMS42IDE3OC4zIDEwMi42IDE5NiAxMTIuOGwuMSAwek0xMzAuNCAzMDcuOWMwIDIuNCAuNCAyLjggMi44IDMgMTEuNSAxLjIgMjEgMy43IDI1LjYtNy4zIDYtMTQuNSAyLjctMzQuNC0xMi41LTM4LjgtMi0uNi0xNi0yLjgtMTUuOSAxLjUgMCA4IDAgMTEuNiAwIDQxLjZ6bTEwNS44LTE1YzAgMi4xIDEuMSAzOC43IDEuMSAzOS4xIC4zIDkuOS0yNS42IDUuOC0yNS4yLTIuNiAuMS0yIDEuNC0zNy40IDEuMS0zOS40LTE0LjEgNy40LTE0LjQgNDAuMiA2LjQgNDguOCA0IDEuNyA4LjQgMS45IDEyLjUgLjZzNy42LTQgOS45LTcuN2M0LjktNy44IDYuOC0yOS41LTUuNC0zOS0uMSAuMS0uMiAuMS0uNCAuMWwwIDB6bS0xMi4zLTE5OGMtOS44IDAtOS43IDE0LjgtLjEgMTQuOXMxMC4xLTE0LjkgLjEtMTQuOWwwIDB6TTE0My43IDE5OC42YzAgMS44IC40IDIuNCAyLjIgMi42IDEzLjYgMS40IDEyLjUtMTEgMTIuMi0xMy40LTEuNy0xMS4yLTE0LjQtMTAuMi0xNC40LTcuOCAwIDQuNSAwIDEzLjcgMCAxOC42ek0zNTYgMjA1bC02LjEtMTUuOGMtMi4yIDUuNS00LjIgMTAuNi02LjIgMTUuOGwxMi4zIDB6Il19LEdtZT17cHJlZml4OiJmYWIiLGljb25OYW1lOiJzdGVhbS1zeW1ib2wiLGljb246WzQ0OCw1MTIsW10sImYzZjYiLCJNMjczLjUgMTc3LjVhNjEgNjEgMCAxIDEgMTIyIDAgNjEgNjEgMCAxIDEgLTEyMiAwem0xNzQuNSAuMmMwIDYzLTUxIDExMy44LTExMy43IDExMy44TDIyNSAzNzEuM2MtNCA0My00MC41IDc2LjgtODQuNSA3Ni44LTQwLjUgMC03NC43LTI4LjgtODMtNjdMMCAzNTggMCAyNTAuNyA5Ny4yIDI5MGMxNS4xLTkuMiAzMi4yLTEzLjMgNTItMTEuNWw3MS0xMDEuN0MyMjAuNyAxMTQuNSAyNzEuNyA2NCAzMzQuMiA2NCAzOTcgNjQgNDQ4IDExNSA0NDggMTc3Ljd6TTIwMyAzNjNjMC0zNC43LTI3LjgtNjIuNS02Mi41LTYyLjUtNC41IDAtOSAuNS0xMy41IDEuNWwyNiAxMC41YzI1LjUgMTAuMiAzOCAzOSAyNy43IDY0LjUtMTAuMiAyNS41LTM5LjIgMzgtNjQuNyAyNy41LTEwLjItNC0yMC41LTguMy0zMC43LTEyLjIgMTAuNSAxOS43IDMxLjIgMzMuMiA1NS4yIDMzLjIgMzQuNyAwIDYyLjUtMjcuOCA2Mi41LTYyLjV6TTQxMC41IDE3Ny43YTc2LjQgNzYuNCAwIDEgMCAtMTUyLjggMCA3Ni40IDc2LjQgMCAxIDAgMTUyLjggMHoiXX0sWW1lPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6Im1haWxjaGltcCIsaWNvbjpbNDQ4LDUxMixbXSwiZjU5ZSIsIk0zMzEgMjQzLjVjMy4xLS40IDYuMi0uNCA5LjMgMCAxLjctMy44IDItMTAuNCAuNS0xNy42LTIuMi0xMC43LTUuMy0xNy4xLTExLjUtMTYuMXMtNi41IDguNy00LjIgMTkuNGMxLjMgNiAzLjUgMTEuMSA2IDE0LjNsMCAwek0yNzcuNCAyNTJjNC41IDIgNy4yIDMuMyA4LjMgMi4xIDEuOS0xLjktMy41LTkuNC0xMi4xLTEzLjEtNS0yLjEtMTAuNC0yLjgtMTUuOC0yLjJzLTEwLjUgMi43LTE0LjggNS44Yy0zIDIuMi01LjggNS4yLTUuNCA3LjEgLjkgMy43IDEwLTIuNyAyMi42LTMuNSA3LS40IDEyLjggMS44IDE3LjMgMy43bDAgMHptLTkgNS4xYy05LjEgMS40LTE1IDYuNS0xMy41IDEwLjEgLjkgLjMgMS4yIC44IDUuMi0uOCA2LTIuMyAxMi40LTIuOSAxOC43LTEuOSAyLjkgLjMgNC4zIC41IDQuOS0uNSAxLjUtMi4yLTUuNy04LTE1LjQtNi45bDAgMHptNTQuMiAxNy4xYzMuNC02LjktMTAuOS0xMy45LTE0LjMtN3MxMC45IDEzLjkgMTQuMyA3bDAgMHptMTUuNy0yMC41Yy03LjctLjEtOCAxNS44LS4zIDE1LjlzOC0xNS44IC4zLTE2bDAgMHpNMTE5LjUgMzMyLjdjLTEuMyAuMy02IDEuNS04LjUtMi4zLTUuMi04IDExLjEtMjAuNCAzLTM1LjgtOS4xLTE3LjUtMjcuOC0xMy41LTM1LTUuNS04LjcgOS42LTguNyAyMy41LTUgMjQuMSA0LjMgLjYgNC4xLTYuNSA3LjQtMTEuNiAuOS0xLjQgMi4xLTIuNiAzLjUtMy42czMtMS42IDQuNi0yIDMuNC0uNCA1IDAgMy4zIDEgNC43IDEuOWMxMS42IDcuNiAxLjQgMTcuOCAyLjMgMjguNiAxLjQgMTYuNyAxOC40IDE2LjQgMjEuNiA5IC4yLS40IC4zLS44IC4zLTEuMnMtLjItLjgtLjUtMS4xYzAgLjkgLjctMS4zLTMuNC0uNGwwIDB6bTI5OS43LTE3LjFjLTMuMy0xMS43LTIuNi05LjItNi44LTIwLjUgMi40LTMuNyAxNS4zLTI0LTMuMS00My4zLTEwLjQtMTAuOS0zMy45LTE2LjUtNDEuMS0xOC41LTEuNS0xMS40IDQuNi01OC43LTIxLjUtODMgMjAuOC0yMS42IDMzLjgtNDUuMyAzMy43LTY1LjctLjEtMzkuMi00OC4yLTUxLTEwNy40LTI2LjVsLTEyLjUgNS4zYy0uMSAwLTIyLjctMjIuMy0yMy4xLTIyLjYtNjcuNS01OC45LTI3OC44IDE3NS45LTIxMS4zIDIzMi45bDE0LjggMTIuNWMtNCAxMC43LTUuNCAyMi4yLTQuMSAzMy41IDMuNCAzMy40IDM2IDYwLjQgNjcuNSA2MC40IDU3LjcgMTMzLjEgMjY3LjkgMTMzLjMgMzIyLjMgMyAxLjctNC41IDkuMS0yNC42IDkuMS00Mi40cy0xMC4xLTI1LjMtMTYuNS0yNS4zbDAgMHptLTMxNiA0OC4yYy0yMi44LS42LTQ3LjUtMjEuMS00OS45LTQ1LjUtNi4yLTYxLjMgNzQuMy03NS4zIDg0LTEyLjMgNC41IDI5LjYtNC43IDU4LjUtMzQuMSA1Ny44bDAgMHpNODQuNyAyNDkuNmMtMTUuMiAzLTI4LjUgMTEuNS0zNi43IDIzLjUtNC45LTQuMS0xNC0xMi0xNS42LTE1LTEzLTI0LjggMTQuMi03MyAzMy4zLTEwMC4yIDQ3LjEtNjcuMiAxMjAuOS0xMTguMSAxNTUtMTA4LjkgNS41IDEuNiAyMy45IDIyLjkgMjMuOSAyMi45cy0zNC4xIDE4LjktNjUuOCA0NS4zQzEzNi4yIDE1MCAxMDQgMTk3LjcgODQuNyAyNDkuNnpNMzIzLjYgMzUwLjdzLTM1LjcgNS4zLTY5LjUtNy4xYzYuMi0yMC4yIDI3IDYuMSA5Ni40LTEzLjggMTUuMy00LjQgMzUuNC0xMyA1MS0yNS40IDMuNCA3LjggNS44IDE1LjkgNy4xIDI0LjMgMy43LS43IDE0LjItLjUgMTEuNCAxOC4xLTMuMyAxOS45LTExLjcgMzYtMjUuOSA1MC44LTguOSA5LjYtMTkuNCAxNy41LTMxLjIgMjMuMy02LjUgMy40LTEzLjMgNi4zLTIwLjMgOC42LTUzLjUgMTcuNS0xMDguMy0xLjctMTI2LTQzLTEuNC0zLjEtMi42LTYuNC0zLjYtOS43LTcuNS0yNy4yLTEuMS01OS44IDE4LjgtODAuNCAxLjItMS4zIDIuNS0yLjkgMi41LTQuOC0uMi0xLjctLjgtMy4zLTEuOS00LjUtNy0xMC4xLTMxLjItMjcuNC0yNi4zLTYwLjggMy41LTI0IDI0LjUtNDAuOSA0NC4xLTM5LjlsNSAuM2M4LjUgLjUgMTUuOSAxLjYgMjIuOSAxLjkgMTEuNyAuNSAyMi4yLTEuMiAzNC42LTExLjYgNC4yLTMuNSA3LjYtNi41IDEzLjMtNy41IDIuMy0uNiA0LjctLjcgNy0uM3M0LjYgMS4yIDYuNiAyLjVjMTAgNi42IDExLjQgMjIuNyAxMS45IDM0LjUgLjMgNi43IDEuMSAyMyAxLjQgMjcuNiAuNiAxMC43IDMuNCAxMi4yIDkuMSAxNCAzLjIgMSA2LjIgMS44IDEwLjUgMy4xIDEzLjIgMy43IDIxIDcuNSAyNiAxMi4zIDIuNSAyLjUgNC4yIDUuOCA0LjcgOS4zIDEuNiAxMS40LTguOCAyNS40LTM2LjMgMzguMi00Ni43IDIxLjctOTMuNyAxNC40LTEwMC41IDEzLjctMjAuMi0yLjctMzEuNiAyMy4zLTE5LjUgNDEuMSAyMi42IDMzLjQgMTIyLjQgMjAgMTUxLjQtMjEuNCAuNy0xIC4xLTEuNi0uNy0xLTQxLjggMjguNi05Ny4xIDM4LjItMTI4LjUgMjYtNC44LTEuOC0xNC43LTYuNC0xNS45LTE2LjcgNDMuNiAxMy41IDcxIC43IDcxIC43czItMi44LS42LTIuNXpNMTcxLjcgMTU3LjVjMTYuNy0xOS40IDM3LjQtMzYuMiA1NS44LTQ1LjYgLjEtLjEgLjMtLjEgLjUtLjFzLjMgLjEgLjQgLjIgLjIgLjMgLjIgLjQgMCAuMy0uMSAuNWMtMS41IDIuNy00LjMgOC4zLTUuMiAxMi43IDAgLjEgMCAuMyAwIC40cy4yIC4zIC4zIC40IC4zIC4xIC40IC4xIC4zIDAgLjQtLjFjMTEuNS03LjggMzEuNS0xNi4yIDQ5LTE3LjMgLjIgMCAuMyAwIC41IC4xcy4yIC4yIC4zIC40IC4xIC4zIDAgLjUtLjEgLjMtLjMgLjRjLTIuOSAyLjItNS41IDQuOC03LjcgNy43LS4xIC4xLS4xIC4yLS4xIC40czAgLjMgLjEgLjQgLjIgLjIgLjMgLjMgLjIgLjEgLjQgLjFjMTIuMyAuMSAyOS43IDQuNCA0MSAxMC43IC44IC40IC4yIDEuOS0uNiAxLjctNjkuNS0xNS45LTEyMy4xIDE4LjUtMTM0LjUgMjYuOC0uMiAuMS0uMyAuMS0uNSAuMXMtLjMtLjEtLjUtLjItLjItLjMtLjItLjUgLjEtLjQgLjItLjVsLS4xIDB6Il19LFptZT17cHJlZml4OiJmYWIiLGljb25OYW1lOiJsdW1vbiIsaWNvbjpbNjQwLDUxMixbXSwiZTdlMiIsIk00NTIuNSAyMjMuNWM5LjggMCAxNi41IDYuMyAxNi41IDE2LjZsMCAzMS44YzAgMTAuMy02LjYgMTYuNi0xNi42IDE2LjZsLTU2LjIgMGMtOS44IDAtMTYuNS02LjMtMTYuNS0xNi42bDAtMzEuOGMwLTEwLjMgNi43LTE2LjYgMTYuNS0xNi42bDU2LjMgMHptLTI1LjcgMTMuMWMtMS41LTIuNi0zLjItMi42LTQuNiAwbC0xMC43IDE3LjZjLTEuNyAyLjQtMi42IDUuMS0yLjYgOC4yIDAgNy45IDYuOSAxNC42IDE1LjYgMTQuNiA4LjUgMCAxNS42LTYuNyAxNS42LTE0LjYgMC0zLTEtNS44LTIuNy04LjJsLTEwLjctMTcuNnpNODUuOCAyMjMuOGMxIDAgMS41IC42IDEuNSAxLjVsMCA1MC4zIDY0LjYgMGMxIDAgMS42IC42IDEuNiAxLjVsMCA5LjdjMCAuOS0uNiAxLjUtMS42IDEuNWwtNzguNCAwYy0xIDAtMS42LS42LTEuNi0xLjVsMC02MS40YzAtLjkgLjYtMS41IDEuNi0xLjVsMTIuMyAwem04OC4zIDBjMSAwIDEuNSAuNiAxLjUgMS41bDAgNDVjMCA0IDIgNS4yIDUuNyA1LjJsNDYuOSAwYzMuOCAwIDUuNy0xLjMgNS43LTUuMmwwLTQ1YzAtLjkgLjUtMS41IDEuNS0xLjVsMTIuMyAwYzEgMCAxLjYgLjYgMS42IDEuNWwwIDQ2YzAgMTAuNS01LjMgMTYuOC0xNy42IDE2LjhsLTU0IDBjLTEyLjMgMC0xNy42LTYuMy0xNy42LTE2LjhsMC00NmMwLS45IC42LTEuNSAxLjYtMS41bDEyLjMgMHptMTA4LjIgMGMxIDAgMS42IC41IDIuMiAxLjRsMzAuNSA0Ni40IDEuNCAwIDMwLjUtNDYuNGMuNi0uOSAxLjItMS40IDIuMi0xLjRsMTggMGMxIDAgMS41IC42IDEuNSAxLjVsMCA2MS40YzAgLjktLjUgMS41LTEuNSAxLjVsLTEyLjMgMGMtMSAwLTEuNi0uNi0xLjYtMS41bDAtNDMuOC0xLjEgMC0yOC43IDQzLjhjLS42IC45LTEuMyAxLjUtMi40IDEuNWwtMTAuNyAwYy0xIDAtMS43LS42LTIuMy0xLjVsLTI4LjctNDMuOC0xLjEgMCAwIDQzLjhjMCAuOS0uNSAxLjUtMS41IDEuNWwtMTIuMyAwYy0xIDAtMS42LS42LTEuNi0xLjVsMC02MS40YzAtLjkgLjYtMS41IDEuNi0xLjVsMTcuOSAwem0yMTQuNCAwYy45IDAgMS4zIC40IDIuMiAxLjFsNTIuNyA0Ni4zIDEuMyAwIDAtNDZjMC0uOSAuNi0xLjUgMS42LTEuNWwxMi4zIDBjMSAwIDEuNiAuNiAxLjYgMS41bDAgNjEuNGMwIC45LS42IDEuNS0xLjYgMS41bC0xNC40IDBjLTEgMC0xLjQtLjQtMi4zLTEuMWwtNTIuNi00Ni4zLTEuNCAwIDAgNDZjMCAuOS0uNSAxLjUtMS41IDEuNWwtMTIuMyAwYy0xIDAtMS42LS42LTEuNi0xLjVsMC02MS40YzAtLjkgLjYtMS41IDEuNi0xLjVsMTQuNCAwek0zMjAgMTE0LjFjODcuOSAwIDE2Ny43IDE1LjcgMjI1LjUgNDFsMi43IDEuMkM1ODcuMSAxNzMuOCA2NDAgMjA2LjUgNjQwIDI1NnMtNTIuOSA4Mi4yLTkxLjggOTkuNmwtMi43IDEuMmMtNTcuOCAyNS40LTEzNy42IDQxLTIyNS41IDQxLTc2LjIgMC0xNTUuMS0xMC41LTIyNS41LTQxLTM5LjYtMTcuNC05NC41LTUwLjMtOTQuNS0xMDAuOHM1NC45LTgzLjUgOTQuNS0xMDAuOGM3MC40LTMwLjUgMTQ5LjMtNDEgMjI1LjUtNDF6bS04OC45IDIyOWMyMC4zIDI5IDUyLjggNDkuNiA4OC45IDQ5LjYgMzYuMiAwIDY4LjctMjAuNiA4OS00OS43bC0xNzcuOSAuMXptLTk2LjEgMGM0My4zIDI5LjcgOTYuNyA0My41IDE0OC40IDQ4LTI0LjItOS4xLTQ0LjQtMjYuNy01OC42LTQ4LjFsLTg5LjkgMHptMjgwLjMtLjFjLTE0LjIgMjEuNC0zNC40IDM5LjEtNTguNiA0OC4xIDUxLjgtNC41IDEwNS4zLTE4LjMgMTQ4LjYtNDguMmwtOTAgMHptLTMzNy40IC4xYzQ0LjEgMjMuMSA5My43IDM1LjQgMTQyLjcgNDIuNi0zMy40LTguNi02Ni41LTIxLjktOTQuNC00Mi42bC00OC4zIDB6bTQzNi4yLS4yYy0yNy45IDIwLjgtNjEuMSAzNC4yLTk0LjYgNDIuOCA0Ny4zLTYuOSA4OS42LTE4LjUgMTIzLjktMzMuNmwxLjctLjhjNi4xLTIuNyAxMS45LTUuNSAxNy40LTguNGwtNDguNSAwek01MjAgMTczLjZjMTAuNyA4LjcgMTkuOCAxOC4xIDI3IDI4LjIgLjQgLjYgLjUgMS4zIC4xIDJzLTEgMS0xLjcgMWwtMS42IDBjLS42IDAtMS4yLS4zLTEuNS0uOC03LjktMTAuOS0xOC4yLTIxLjEtMzAuNi0zMC40bC05My41IDBjNS40IDguOCA5LjkgMTguNSAxMy40IDI4LjYgLjIgLjYgLjEgMS4yLS4yIDEuN3MtLjkgLjgtMS42IC44bC0xLjQgMGMtLjggMC0xLjUtLjUtMS44LTEuMy0zLjgtMTAuNy04LjctMjAuOC0xNC41LTI5LjlsLTE4NC4zIC4xYy01LjggOS4xLTEwLjcgMTkuMS0xNC40IDI5LjgtLjMgLjgtMSAxLjMtMS44IDEuM2wtMS40IDBjLS42IDAtMS4yLS4zLTEuNi0uOHMtLjUtMS4xLS4yLTEuN2MzLjUtMTAuMiA4LTE5LjcgMTMuNC0yOC42bC05My42IDBjLTEyLjMgOS4zLTIyLjYgMTkuNC0zMC40IDMwLjMtLjQgLjUtLjkgLjgtMS41IC44bC0xLjYgMGMtLjcgMC0xLjQtLjQtMS43LTFzLS4zLTEuNCAuMS0yYzcuNi0xMC41IDE2LjctMTkuOSAyNi44LTI4bC01MSAwYy0yOC45IDE2LjYtNjIgNDMuMy02My41IDc5LjdsNDQuNyAwYy41IDAgMSAuMiAxLjMgLjZzLjYgLjggLjYgMS4zbDAgMS4zYzAgMS4xLS45IDEuOS0xLjkgMS45bC00NC43IDBDNi44IDI5NSA0MCAzMjEuNyA2OSAzMzguM2w1MC45IDBjLTEwLjMtOC40LTE5LjEtMTcuNC0yNi4xLTI3bC0uOC0xLjFjLS40LS42LS41LTEuMy0uMS0yczEtMSAxLjctMWwxLjYgMCAuMiAwYy41IC4xIDEgLjMgMS4zIC44IDcuOSAxMC45IDE4LjEgMjEgMzAuNSAzMC4zbDkzLjYgMGMtNS4zLTguOC05LjgtMTguNC0xMy40LTI4LjUtLjItLjYtLjEtMS4yIC4yLTEuN3MuOS0uOCAxLjYtLjhsMS40IDAgLjIgMGMuNyAuMSAxLjQgLjYgMS43IDEuMyAzLjggMTAuNyA4LjYgMjAuNyAxNC40IDI5LjhsMTg0LjUtLjFjNS44LTkuMSAxMC42LTE5LjEgMTQuNC0yOS43bC4xLS4xYy4zLS43IDEtMS4xIDEuNy0xLjFsMS40IDBjLjYgMCAxLjIgLjMgMS42IC44cy41IDEuMiAuMiAxLjdjLTMuNSAxMC4xLTggMTkuNy0xMy4zIDI4LjVsOTMuNyAwYzEyLjMtOS4zIDIyLjUtMTkuNCAzMC4zLTMwLjJsLjEtLjJjLjQtLjQgLjktLjYgMS40LS42bDEuNiAwYy43IDAgMS40IC40IDEuNyAxcy4zIDEuNC0uMSAyYy03LjEgMTAtMTYuMSAxOS4zLTI2LjcgMjcuOWw1MS4xIDBjMjguOC0xNi42IDYxLjgtNDMuMyA2My40LTc5LjZsLTQ0LjcgMGMtMSAwLTEuOS0uOS0xLjktMS45bDAtMS4zYzAtMS4xIC45LTEuOSAxLjktMS45bDQ0LjcgMGMtMS42LTM2LjUtMzQuOS02My4zLTYzLjktNzkuOWwtNTAuOSAwek0yMjAuNSAxMjYuMmMtNDkuMSA3LjEtOTguNyAxOS41LTE0MyA0Mi43bDQ4LjQgMGMyNy45LTIwLjggNjEtMzQuMSA5NC41LTQyLjd6bTYyLjgtNS40Yy01MS44IDQuNS0xMDUuMiAxOC4zLTE0OC42IDQ4LjFsOTAgMGMxNC4yLTIxLjQgMzQuNC0zOSA1OC42LTQ4LjF6bTM2LjYtMS42Yy0zNi4yIDAtNjguNyAyMC42LTg5IDQ5LjdsMTc3LjktLjFjLTIwLjMtMjkuMS01Mi43LTQ5LjYtODguOS00OS42em0zNi42IDEuNmMyNC4yIDkuMSA0NC40IDI2LjYgNTguNSA0OGw4OS44IDBjLTQzLjMtMjkuNy05Ni42LTQzLjUtMTQ4LjMtNDh6bTYyLjggNS40YzMzLjQgOC41IDY2LjQgMjEuOSA5NC4zIDQyLjVsNDguMyAwYy00NC4xLTIzLjEtOTMuNi0zNS40LTE0Mi42LTQyLjV6Il19LFhtZT17cHJlZml4OiJmYWIiLGljb25OYW1lOiJudXRyaXRpb25peCIsaWNvbjpbNDQ4LDUxMixbXSwiZjNkNiIsIk0xMTIgOC4xUzI0NS40LS4xIDIzMyAxMTIuNWMwIDAgMTkuMS03NC45IDEwMy00MC42IDAgMC0xNy43IDc0LTg4IDU2IDAgMCAxNC42LTU0LjYgNjYuMS01Ni42IDAgMC0zOS45LTEwLjMtODIuMSA0OC44IDAgMC0xOS44LTk0LjUtOTMuNi05OS43IDAgMCA3NS4yIDE5LjQgNzcuNiAxMDcuNSAwIC4xLTEwNi40IDctMTA0LTExOS44ek00MjQgMzIzLjdjMCA0OC41LTkuNyA5NS4zLTMyIDEzMi4zLTQyLjIgMzAuOS0xMDUgNDgtMTY4IDQ4LTYyLjkgMC0xMjUuOC0xNy4xLTE2OC00OC0yMi4zLTM3LTMyLTgzLjgtMzItMTMyLjMgMC00OC40IDE3LjctOTQuNyA0MC0xMzEuNyA0Mi4yLTMwLjkgOTcuMS00OC42IDE2MC00OC42IDYzIDAgMTE3LjggMTcuNiAxNjAgNDguNiAyMi4zIDM3IDQwIDgzLjMgNDAgMTMxLjd6TTE0NCA0MjhhMjggMjggMCAxIDAgLTU2IDAgMjggMjggMCAxIDAgNTYgMHptMC02Ni4yYTI4IDI4IDAgMSAwIC01NiAwIDI4IDI4IDAgMSAwIDU2IDB6bTAtNjYuMmEyOCAyOCAwIDEgMCAtNTYgMCAyOCAyOCAwIDEgMCA1NiAwek0yMTYgNDI4YTI4IDI4IDAgMSAwIC01NiAwIDI4IDI4IDAgMSAwIDU2IDB6bTAtNjYuMmEyOCAyOCAwIDEgMCAtNTYgMCAyOCAyOCAwIDEgMCA1NiAwem0wLTY2LjJhMjggMjggMCAxIDAgLTU2IDAgMjggMjggMCAxIDAgNTYgMHpNMjg4IDQyOGEyOCAyOCAwIDEgMCAtNTYgMCAyOCAyOCAwIDEgMCA1NiAwem0wLTY2LjJhMjggMjggMCAxIDAgLTU2IDAgMjggMjggMCAxIDAgNTYgMHptMC02Ni4yYTI4IDI4IDAgMSAwIC01NiAwIDI4IDI4IDAgMSAwIDU2IDB6TTM2MCA0MjhhMjggMjggMCAxIDAgLTU2IDAgMjggMjggMCAxIDAgNTYgMHptMC02Ni4yYTI4IDI4IDAgMSAwIC01NiAwIDI4IDI4IDAgMSAwIDU2IDB6bTAtNjYuMmEyOCAyOCAwIDEgMCAtNTYgMCAyOCAyOCAwIDEgMCA1NiAwek0zODQgMjU2Yy00LjgtMjIuMy03LjQtMzYuOS0xNi01Ni0zOC44LTE5LjktOTAuNS0zMi0xNDQtMzJTMTE4LjggMTgwLjEgODAgMjAwYy04LjggMTkuNS0xMS4yIDMzLjktMTYgNTYgNDIuMi03LjkgOTguNy0xNC44IDE2MC0xNC44czExNy44IDYuOSAxNjAgMTQuOHoiXX0sS21lPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImNyZWF0aXZlLWNvbW1vbnMtc2FtcGxpbmctcGx1cyIsaWNvbjpbNTEyLDUxMixbXSwiZjRmMSIsIk0yNTUuNiA4QzM5Ny40IDggNTA0IDExOC4xIDUwNCAyNTYgNTA0IDQwMy4xIDM4NS41IDUwNCAyNTUuNiA1MDQgMTIxLjYgNTA0IDggMzk0LjUgOCAyNTYgOCAxMjMuMSAxMTIuNyA4IDI1NS42IDh6bS44IDQ0LjdjLTExOC4yIDAtMjAzLjcgOTcuOS0yMDMuNyAyMDMuMyAwIDEwOS44IDkxLjIgMjAyLjggMjAzLjcgMjAyLjggMTAzLjIgMCAyMDIuOC04MS4xIDIwMi44LTIwMi44IC4xLTExMy44LTkwLjItMjAzLjMtMjAyLjgtMjAzLjN6bTEwNyAyMDUuNmMtNC43IDAtOSAyLjgtMTAuNyA3LjJsLTQgOS41LTExLTkyLjhjLTEuNy0xMy45LTIyLTEzLjQtMjMuMSAuNGwtNC4zIDUxLjQtNS4yLTY4LjhjLTEuMS0xNC4zLTIyLjEtMTQuMi0yMy4yIDBsLTMuNSA0NC45LTUuOS05NC4zYy0uOS0xNC41LTIyLjMtMTQuNC0yMy4yIDBsLTUuMSA4My43LTQuMy02Ni4zYy0uOS0xNC40LTIyLjItMTQuNC0yMy4yIDBsLTUuMyA4MC4yLTQuMS01N2MtMS4xLTE0LjMtMjItMTQuMy0yMy4yLS4ybC03LjcgODkuOC0xLjgtMTIuMmMtMS43LTExLjQtMTcuMS0xMy42LTIyLTMuM2wtMTMuMiAyNy43LTQzLjkgMCAwIDIzLjIgNTEuMyAwYzQuNCAwIDguNC0yLjUgMTAuNC02LjRsMTAuNyA3My4xYzIgMTMuNSAyMS45IDEzIDIzLjEtLjdsMy44LTQzLjYgNS43IDc4LjNjMS4xIDE0LjQgMjIuMyAxNC4yIDIzLjItLjFsNC42LTcwLjQgNC44IDczLjNjLjkgMTQuNCAyMi4zIDE0LjQgMjMuMi0uMWw0LjktODAuNSA0LjUgNzEuOGMuOSAxNC4zIDIyLjEgMTQuNSAyMy4yIC4ybDQuNi01OC42IDQuOSA2NC40YzEuMSAxNC4zIDIyIDE0LjIgMjMuMSAuMWw2LjgtODMgMi43IDIyLjNjMS40IDExLjggMTcuNyAxNC4xIDIyLjMgMy4xbDE4LTQzLjQgNTAuNSAwIDAtMjMuMi01OC40IC4zem0tNzggNS4ybC0yMS45IDAgMCAyMS45YzAgNC4xLTMuMyA3LjUtNy41IDcuNS00LjEgMC03LjUtMy4zLTcuNS03LjVsMC0yMS45LTIxLjkgMGMtNC4xIDAtNy41LTMuMy03LjUtNy41IDAtNC4xIDMuNC03LjUgNy41LTcuNWwyMS45IDAgMC0yMS45YzAtNC4xIDMuNC03LjUgNy41LTcuNXM3LjUgMy4zIDcuNSA3LjVsMCAyMS45IDIxLjkgMGM0LjEgMCA3LjUgMy4zIDcuNSA3LjUgMCA0LjEtMy40IDcuNS03LjUgNy41eiJdfSxRbWU9e3ByZWZpeDoiZmFiIixpY29uTmFtZToicmVkaGF0IixpY29uOls1MTIsNTEyLFtdLCJmN2JjIiwiTTM0MS41IDI4NS42YzMzLjcgMCA4Mi4zLTYuOSA4Mi4zLTQ3IC4yLTYuNyAuOS0xLjgtMjAuOS05Ni4yLTQuNi0xOS4xLTguNy0yNy44LTQyLjMtNDQuNi0yNi4xLTEzLjMtODIuOS0zNS40LTk5LjctMzUuNC0xNS43IDAtMjAuMiAyMC4yLTM4LjkgMjAuMi0xOCAwLTMxLjMtMTUuMS00OC4xLTE1LjEtMTYuMSAwLTI2LjcgMTEtMzQuOCAzMy42LTI3LjUgNzcuNi0yNi4zIDc0LjMtMjYuMSA3OC4zIDAgMjQuOCA5Ny42IDEwNi4xIDIyOC41IDEwNi4xek00MjkgMjU0LjhjNC43IDIyIDQuNyAyNC4zIDQuNyAyNy4yIDAgMzcuNy00Mi4zIDU4LjYtOTggNTguNi0xMjUuNyAuMS0yMzUuOS03My42LTIzNS45LTEyMi4zIDAtNi44IDEuNC0xMy41IDQuMS0xOS43LTQ1LjIgMi4zLTEwMy44IDEwLjMtMTAzLjggNjIgMCA4NC43IDIwMC42IDE4OSAzNTkuNSAxODkgMTIxLjggMCAxNTIuNS01NS4xIDE1Mi41LTk4LjYgMC0zNC4yLTI5LjYtNzMtODIuOS05Ni4yeiJdfSxQRT17cHJlZml4OiJmYWIiLGljb25OYW1lOiJzcXVhcmUtcGllZC1waXBlciIsaWNvbjpbNDQ4LDUxMixbInBpZWQtcGlwZXItc3F1YXJlIl0sImUwMWUiLCJNMzIuMSA0MTlsLTMyIDYwLjIgLjgtMzI4Qy45IDg1LjMgNTQuMSAzMiAxMjAuMSAzMmwzMjcuMiAwQzM1NC4zIDYwLjkgMjU3LjQgMTI2LjIgMTkzLjQgMjAwLjYgMTIyLjggMjgyIDgyLjcgMzM4IDMyLjEgNDE5em00MTYtMzg3UzMwNS4zIDk4LjggMjYxLjcgMTk5LjFjLTIzLjIgNTMuNi0yOC45IDExOC4xLTcxIDE1OC42LTI4LjkgMjcuOC02OS44IDM4LjItMTA1LjMgNTYuMy0yMy4yIDEyLTY2LjQgNDAuNS04NC45IDY2bDMyOC40IDBjNjYgMCAxMTkuMy01My4zIDExOS4zLTExOS4yLS4xIDAtLjEtMzI4LjgtLjEtMzI4Ljh6Il19LEptZT1QRSxlZ2U9e3ByZWZpeDoiZmFiIixpY29uTmFtZToid2hhdHNhcHAiLGljb246WzQ0OCw1MTIsW10sImYyMzIiLCJNMzgwLjkgOTcuMWMtNDEuOS00Mi05Ny43LTY1LjEtMTU3LTY1LjEtMTIyLjQgMC0yMjIgOTkuNi0yMjIgMjIyIDAgMzkuMSAxMC4yIDc3LjMgMjkuNiAxMTFMMCA0ODAgMTE3LjcgNDQ5LjFjMzIuNCAxNy43IDY4LjkgMjcgMTA2LjEgMjdsLjEgMGMxMjIuMyAwIDIyNC4xLTk5LjYgMjI0LjEtMjIyIDAtNTkuMy0yNS4yLTExNS02Ny4xLTE1N3ptLTE1NyAzNDEuNmMtMzMuMiAwLTY1LjctOC45LTk0LTI1LjdsLTYuNy00LTY5LjggMTguMyAxOC42LTY4LjEtNC40LTdjLTE4LjUtMjkuNC0yOC4yLTYzLjMtMjguMi05OC4yIDAtMTAxLjcgODIuOC0xODQuNSAxODQuNi0xODQuNSA0OS4zIDAgOTUuNiAxOS4yIDEzMC40IDU0LjFzNTYuMiA4MS4yIDU2LjEgMTMwLjVjMCAxMDEuOC04NC45IDE4NC42LTE4Ni42IDE4NC42ek0zMjUuMSAzMDAuNWMtNS41LTIuOC0zMi44LTE2LjItMzcuOS0xOC01LjEtMS45LTguOC0yLjgtMTIuNSAyLjhzLTE0LjMgMTgtMTcuNiAyMS44Yy0zLjIgMy43LTYuNSA0LjItMTIgMS40LTMyLjYtMTYuMy01NC0yOS4xLTc1LjUtNjYtNS43LTkuOCA1LjctOS4xIDE2LjMtMzAuMyAxLjgtMy43IC45LTYuOS0uNS05LjdzLTEyLjUtMzAuMS0xNy4xLTQxLjJjLTQuNS0xMC44LTkuMS05LjMtMTIuNS05LjUtMy4yLS4yLTYuOS0uMi0xMC42LS4ycy05LjcgMS40LTE0LjggNi45Yy01LjEgNS42LTE5LjQgMTktMTkuNCA0Ni4zczE5LjkgNTMuNyAyMi42IDU3LjRjMi44IDMuNyAzOS4xIDU5LjcgOTQuOCA4My44IDM1LjIgMTUuMiA0OSAxNi41IDY2LjYgMTMuOSAxMC43LTEuNiAzMi44LTEzLjQgMzcuNC0yNi40czQuNi0yNC4xIDMuMi0yNi40Yy0xLjMtMi41LTUtMy45LTEwLjUtNi42eiJdfSx0Z2U9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiaW1kYiIsaWNvbjpbNDQ4LDUxMixbXSwiZjJkOCIsIk04OS41IDMyMy42bC0zNS42IDAgMC0xMzcuNCAzNS42IDAgMCAxMzcuNHptNjYuNi03My4xbDkuMS02NC4zIDQ2LjMgMCAwIDEzNy40LTMxIDAgMC05Mi43LTEzLjQgOTIuNy0yMS4zIDAtMTMtOTAuNy0uMSA5MC43LTMxLjIgMCAwLTEzNy40IDQ2LjEgMGMuNSA4LjMgMi44IDE4LjEgNC4zIDI5LjRsNC4yIDM0Ljl6bTY3LjYgNzMuMWwwLTEzNy40IDI2LjYgMGMxNyAwIDI3IC45IDMzIDIuNCA2LjEgMS43IDEwLjcgNC4yIDEzLjkgNy45IDMuMSAzLjMgNS4xIDYuNiA1LjggMTIgLjkgNC40IDEuNCAxMy4xIDEuNCAyNi4ybDAgNDguMmMwIDEyLjMtLjcgMjAuNS0xLjkgMjQuNy0xLjEgNC4xLTMuMSA3LjQtNiA5LjctMi44IDIuNC02LjQgNC4xLTEwLjcgNS00LjIgLjgtMTAuNiAxLjMtMTkuMSAxLjNsLTQzIDB6bTM1LjUtMTEzLjlsMCA4OS40YzUuMSAwIDguMy0xIDkuNC0yLjMgMS4xLTIgMS44LTcuNiAxLjgtMTYuN2wwLTUzLjNjMC02LjItLjEtMTAuMi0uNy0xMi0uMy0xLjgtMS4yLTMtMi42LTQuNy0xLjQgMC00LjEtLjQtNy45LS40em01Ny4zIDExMy45bDAtMTM3LjQgMzQuMSAwIDAgNDMuOWMyLjktMi40IDYuMS00LjkgOS41LTYuNiAzLjYtMS41IDguOC0yLjQgMTIuOC0yLjQgNC44IDAgOC45IC44IDEyLjMgMi4yIDMuNCAxLjUgNiAzLjUgOCA2LjIgMS43IDIuNiAyLjcgNS4zIDMuMSA3LjggLjQgMi42LS4yIDgtLjIgMTYuMmwwIDM4LjZjMCA4LjIgLjIgMTQuMy0uOCAxOC40LTEuMSA0LTMuOCA3LjYtNy44IDkuNi00LjEgMy45LTguOSA1LjMtMTQuNiA1LjMtNCAwLTkuMi0uOS0xMi43LTIuNS0zLjUtMS44LTYuNy00LjUtOS42LThsLTIuMSA4LjctMzIgMHptNDUuMS0yMC43Yy43LTEuOCAxLTYgMS0xMi41bDAtMzUuNGMwLTUuNi0uMy05LjUtMS4xLTExLjItLjctMS45LTMuNy0yLjctNS44LTIuNy0yIDAtMy40IC44LTQuMSAyLjMtLjYgMS41LTEgNS40LTEgMTEuNmwwIDM2LjRjMCA2LjEgLjQgMTAgMS4yIDExLjYgLjYgMS43IDIuMSAyLjUgNC4xIDIuNSAyLjIgMCA0LjItLjggNS43LTIuNnpNNDE4LjQgMzJjMTUuNyAxLjIgMjguNyAxNS4yIDI4LjcgMzEuOWwwIDM4NC4yYzAgMTYuNC0xMS45IDMwLjQtMjguMiAzMS0uMyAwLS41IC45LS44IC45TDI5LjkgNDgwYy0uMyAwLS42LS45LS44LS4xLTE1LjctMS40LTI3LjktMTMuOC0yOS0zMC4yTDAgNjEuOEMxLjEgNDUuOSAxMy44IDMzLjEgMzAuMyAzMS4xbDM4Ny40IDBjLjIgMCAuNSAuOSAuNyAuOXpNMzAuMyA0MS4zQzE5IDQyIDEwIDUxIDkuMyA2Mi40bDAgMzg3LjNjLjQgNS40IDIuNyAxMC41IDYuNCAxNC4zIDMuOCAzLjkgOC44IDYuMyAxNC4yIDYuN2wzODguMiAwYzExLjUtMSAyMC42LTExLjYgMjAuNi0yMi42bDAtMzg0LjJjMC01LjctMi4xLTExLjMtNi0xNS41cy05LjMtNi44LTE1LTcuMmwtMzg3LjQgMHoiXX0sYWdlPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6InB5dGhvbiIsaWNvbjpbNDQ4LDUxMixbXSwiZjNlMiIsIk00MzkuOCAyMDAuNWMtNy43LTMwLjktMjIuMy01NC4yLTUzLjQtNTQuMmwtNDAuMSAwIDAgNDcuNGMwIDM2LjgtMzEuMiA2Ny44LTY2LjggNjcuOGwtMTA2LjggMGMtMjkuMiAwLTUzLjQgMjUtNTMuNCA1NC4zbDAgMTAxLjhjMCAyOSAyNS4yIDQ2IDUzLjQgNTQuMyAzMy44IDkuOSA2Ni4zIDExLjcgMTA2LjggMCAyNi45LTcuOCA1My40LTIzLjUgNTMuNC01NC4zbDAtNDAuNy0xMDYuNyAwIDAtMTMuNiAxNjAuMiAwYzMxLjEgMCA0Mi42LTIxLjcgNTMuNC01NC4yIDExLjItMzMuNSAxMC43LTY1LjcgMC0xMDguNnpNMjg2LjIgNDQ0LjdhMjAuNCAyMC40IDAgMSAxIDAtNDAuNyAyMC40IDIwLjQgMCAxIDEgMCA0MC43ek0xNjcuOCAyNDguMWwxMDYuOCAwYzI5LjcgMCA1My40LTI0LjUgNTMuNC01NC4zbDAtMTAxLjljMC0yOS0yNC40LTUwLjctNTMuNC01NS42LTM1LjgtNS45LTc0LjctNS42LTEwNi44IC4xLTQ1LjIgOC01My40IDI0LjctNTMuNCA1NS42bDAgNDAuNyAxMDYuOSAwIDAgMTMuNi0xNDcgMGMtMzEuMSAwLTU4LjMgMTguNy02Ni44IDU0LjItOS44IDQwLjctMTAuMiA2Ni4xIDAgMTA4LjYgNy42IDMxLjYgMjUuNyA1NC4yIDU2LjggNTQuMmwzNi43IDAgMC00OC44YzAtMzUuMyAzMC41LTY2LjQgNjYuOC02Ni40ek0xNjEuMiA2NC43YTIwLjQgMjAuNCAwIDEgMSAwIDQwLjggMjAuNCAyMC40IDAgMSAxIDAtNDAuOHoiXX0saWdlPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImNhc2gtYXBwIixpY29uOls0NDgsNTEyLFtdLCJlN2Q0IiwiTTQ0MC4zIDk2LjljLTkuNC0yNi41LTMwLjMtNDcuNC01Ni44LTU3LTI0LjEtNy45LTQ2LjMtNy45LTkxLjYtNy45TDE1NiAzMmMtNDQuOCAwLTY3LjIgMC05MS4zIDcuNS0yNi41IDkuNi00Ny40IDMwLjUtNTcgNTctNy43IDI0LjMtNy43IDQ2LjctNy43IDkxLjdMMCAzMjMuOGMwIDQ1LjIgMCA2Ny40IDcuNSA5MS41IDkuNiAyNi41IDMwLjUgNDcuNCA1NyA1NyAyNC4zIDcuNyA0Ni43IDcuNyA5MS42IDcuN2wxMzUuNyAwYzQ1IDAgNjcuNCAwIDkxLjYtNy43IDI2LjUtOS42IDQ3LjQtMzAuNSA1Ny01NyA3LjctMjQuMyA3LjctNDYuNyA3LjctOTEuNWwwLTEzNS41YzAtNDUgMC02Ny40LTcuNy05MS41ek0zMjMuMSAxODUuNGwtMjUuOCAyMS4xYy0yLjMgMS45LTUuNSAxLjUtNy4zLS45LTEzLjItMTYuMi0zMy43LTI1LjQtNTYuMS0yNS40LTI1IDAtNDAuNiAxMC45LTQwLjYgMjYuMi0uNCAxMi44IDExLjcgMTkuNiA0OS4xIDI3LjcgNDcuMiAxMCA2OC43IDI5LjcgNjguNyA2Mi43IDAgNDEuNC0zMy43IDcxLjktODYuNCA3NS4zbC01LjEgMjQuNWMtLjQgMi4zLTIuNiA0LjEtNS4xIDQuMWwtNDAuNiAwYy0zLjQgMC01LjgtMy4yLTUuMS02LjRsNi40LTI3LjNjLTI2LTcuNS00Ny4yLTIyLTU5LjMtMzkuNy0xLjUtMi4zLTEuMS01LjMgMS4xLTdsMjguMi0yMmMyLjMtMS45IDUuOC0xLjMgNy41IDEuMSAxNC45IDIwLjkgMzggMzMuMyA2NS43IDMzLjMgMjUgMCA0My44LTEyLjIgNDMuOC0yOS43IDAtMTMuNC05LjQtMTkuNi00MS4yLTI2LjItNTQuMi0xMS43LTc1LjgtMzEuOC03NS44LTY0LjkgMC0zOC40IDMyLjItNjcuMiA4MC45LTcxbDUuMy0yNS40Yy40LTIuMyAyLjYtNC4xIDUuMS00LjFsMzkuOSAwYzMuMiAwIDUuOCAzIDUuMSA2LjJsLTYuMiAyOC40YzIwLjkgNi40IDM4IDE3LjkgNDguNyAzMi4yIDEuNyAyLjEgMS4zIDUuMy0uOSA3eiJdfSxyZ2U9e3ByZWZpeDoiZmFiIixpY29uTmFtZToicGludGVyZXN0LXAiLGljb246WzM4NCw1MTIsW10sImYyMzEiLCJNMjA0IDYuNWMtMTAyLjYgMC0yMDQgNjguNC0yMDQgMTc5LjEgMCA3MC40IDM5LjYgMTEwLjQgNjMuNiAxMTAuNCA5LjkgMCAxNS42LTI3LjYgMTUuNi0zNS40IDAtOS4zLTIzLjctMjkuMS0yMy43LTY3LjggMC04MC40IDYxLjItMTM3LjQgMTQwLjQtMTM3LjQgNjguMSAwIDExOC41IDM4LjcgMTE4LjUgMTA5LjggMCA1My4xLTIxLjMgMTUyLjctOTAuMyAxNTIuNy0yNC45IDAtNDYuMi0xOC00Ni4yLTQzLjggMC0zNy44IDI2LjQtNzQuNCAyNi40LTExMy40IDAtNjYuMi05My45LTU0LjItOTMuOSAyNS44IDAgMTYuOCAyLjEgMzUuNCA5LjYgNTAuNy0xMy44IDU5LjQtNDIgMTQ3LjktNDIgMjA5LjEgMCAxOC45IDIuNyAzNy41IDQuNSA1Ni40IDMuNCAzLjggMS43IDMuNCA2LjkgMS41IDUwLjQtNjkgNDguNi04Mi41IDcxLjQtMTcyLjggMTIuMyAyMy40IDQ0LjEgMzYgNjkuMyAzNiAxMDYuMiAwIDE1My45LTEwMy41IDE1My45LTE5Ni44IDAtOTkuMy04NS44LTE2NC4xLTE4MC0xNjQuMXoiXX0sc2dlPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6IndobWNzIixpY29uOls0NDgsNTEyLFtdLCJmNDBkIiwiTTQ0OCAxNjFsMC0yMS4zLTI4LjUtOC44LTIuMi0xMC40IDIwLjEtMjAuNy0xMC40LTE5LjQtMjkgNy41LTcuMi03LjUgNy41LTI4LjItMTkuMS0xMS42LTIxLjMgMjEtMTAuNy0zLjItNy0yNi40LTIyLjYgMC02LjIgMjYuNC0xMi4xIDMuMi0xOS43LTIxLTE5LjQgMTEgOC4xIDI3LjctOC4xIDguNC0yOC41LTcuNS0xMSAxOS4xIDIwLjcgMjEtMi45IDEwLjQtMjguNSA3LjgtLjMgMjEuNyAyOC44IDcuNSAyLjQgMTIuMS0yMC4xIDE5LjkgMTAuNCAxOC41IDI5LjYtNy41IDcuMiA4LjYtOC4xIDI2LjkgMTkuOSAxMS42IDE5LjQtMjAuNCAxMS42IDIuOSA2LjcgMjguNSAyMi42IC4zIDYuNy0yOC44IDExLjYtMy41IDIwLjcgMjEuNiAyMC40LTEyLjEtOC44LTI4IDcuOC04LjEgMjguOCA4LjggMTAuMy0yMC4xLTIwLjktMTguOCAyLjItMTIuMSAyOS4xLTd6TTMyOC44IDkyLjZhNTYuOCA1Ni44IDAgMSAxIDAgMTEzLjYgNTYuOCA1Ni44IDAgMSAxIDAtMTEzLjZ6bTcyLjMgMTMwbDQ2LjkgMTQuNSAwIDM5LjktNTUuMSAxMy40LTQuMSAyMi43IDM4LjkgMzUuMy0xOS4yIDM3LjktNTQtMTYuNy0xNC42IDE1LjIgMTYuNyA1Mi41LTM4LjMgMjIuNy0zOC45LTQwLjUtMjEuNyA2LjYtMTIuNiA1NC00Mi40LS41LTEyLjYtNTMuNi0yMS43LTUuNi0zNi40IDM4LjQtMzcuNC0yMS43IDE1LjItNTAuNS0xMy43LTE2LjEtNTUuNSAxNC4xLTE5LjctMzQuOCAzNy45LTM3LjQtNC44LTIyLjgtNTQtMTQuMSAuNS00MC45IDUzLjUtMTQuNyA1LjctMTkuNy0zOC45LTM5LjQgMjAuNy0zNS44IDUzLjYgMTQuMSAxNS4yLTE1LjctMTUuMi01MiAzNi40LTIwLjcgMzYuOCAzOS40IDIyLjctNi4xIDExLjYtNTIgNDIuNCAwIDExLjYgNDUuOS0yMi42LTUuOS02LjMtMS43LTMuMyA1LjctMTEgMTkuMS0zLjMgNS42IDQuNiA0LjYgMTcuMiAxNy40LS4zIDEtMjMuOCA2LjUtNi4yIDEuN2MwIDMuMi0uMSA5LjYtLjMgMTkuMy00Ny41IDEwLjQtODMuMyA1Mi44LTgzLjMgMTAzLjUgMCA1OC4zIDQ3LjMgMTA1LjcgMTA1LjcgMTA1LjcgNTAuNSAwIDkyLjctMzUuNCAxMDMuMi04Mi44IDkuOSAuMSAxNi42IC4yIDIwLjEgLjNsMS42LTYuNyA1LjYtMjQgMS45LS42IDE3LjEgMTcuOCA0LjcgNC45IDUuOC0zLjQgMjAuNC0xMi4xIDUuOC0zLjUtMi02LjUtNi44LTIxLjJ6Il19LG5nZT17cHJlZml4OiJmYWIiLGljb25OYW1lOiJqb2dldCIsaWNvbjpbNTEyLDUxMixbXSwiZjNiNyIsIk0zODYuMSA0NUMzNDUuNiAxOS45IDMwMC42IDggMjU2LjIgOCAxNzMgOCA5MS44IDQ5LjkgNDQuOSAxMjUuOS0yNyAyNDIuNSA5LjMgMzk1LjIgMTI1LjkgNDY3LjFzMjY5LjMgMzUuNiAzNDEuMi04MC45QzUzOSAyNjkuNiA1MDIuNyAxMTYuOCAzODYuMSA0NXptNTEuOCAzMjMuMmMtNDAuNCA2NS41LTExMC40IDEwMS41LTE4MiAxMDEuNS02LjggMC0xMy42LS40LTIwLjQtMS05LTEzLjYtMTkuOS0zMy4zLTIzLjctNDIuNC01LjctMTMuNy0yNy4yLTQ1LjYgMzEuMi02Ny4xIDUxLjctMTkuMSAxNzYuNy0xNi41IDIwOC44LTE3LjYtNCA5LTguNiAxNy45LTEzLjkgMjYuNnpNMjM3LjEgMjgxLjljLTU1LjUtMS40LTgxLjctMjAuOC01OC41LTQ4LjJzNTEuMS00MC43IDY4LjktNTEuMmMxNy45LTEwLjUgMjcuMy0zMy43LTIzLjYtMjkuNy0xMjguNiA4LjctMTY3LjMgOTkuMy0xNzguMyAxNDAuMi04LjgtNDkuNy0uMS0xMDIuNyAyOC41LTE0OS4xIDYxLjktMTAwLjUgMTkzLjUtMTMxLjcgMjk0LTY5LjggNzQuOCA0Ni4xIDExMS4yIDEzMC45IDk5LjMgMjEyLjctMjQuOS0uNS0xNzkuMy0zLjYtMjMwLjMtNC45em0xODMuOC01NC44Yy0yMi43LTYtNTcgMTEuMy04Ni43IDI3LjItMjkuNyAxNS44LTMxLjEgOC4yLTMxLjEgOC4yczQwLjItMjguMSA1MC43LTM0LjUgMzEuOS0xNCAxMy40LTI0LjZjLTMuMi0xLjgtNi43LTIuNy0xMC40LTIuNy0xNy44IDAtNDEuNSAxOC43LTY3LjUgMzUuNi0zMS41IDIwLjUtNjUuMyAzMS4zLTY1LjMgMzEuM0wzOTMuNSAyNjYgNDQwIDI0Mi42czMuNi05LjUtMTkuMS0xNS41eiJdfSxJRT17cHJlZml4OiJmYWIiLGljb25OYW1lOiJzcXVhcmUteW91dHViZSIsaWNvbjpbNDQ4LDUxMixbNjE3OTgsInlvdXR1YmUtc3F1YXJlIl0sImY0MzEiLCJNMjgyIDI1Ni4ybC05NS4yLTU0LjEgMCAxMDguMiA5NS4yLTU0LjF6TTM4NCAzMkw2NCAzMkMyOC43IDMyIDAgNjAuNyAwIDk2TDAgNDE2YzAgMzUuMyAyOC43IDY0IDY0IDY0bDMyMCAwYzM1LjMgMCA2NC0yOC43IDY0LTY0bDAtMzIwYzAtMzUuMy0yOC43LTY0LTY0LTY0em0xNC40IDEzNi4xYzcuNiAyOC42IDcuNiA4OC4yIDcuNiA4OC4yczAgNTkuNi03LjYgODguMWMtNC4yIDE1LjgtMTYuNSAyNy43LTMyLjIgMzEuOS0yOC4zIDcuNy0xNDIuMiA3LjctMTQyLjIgNy43cy0xMTMuOSAwLTE0Mi4yLTcuNmMtMTUuNy00LjItMjgtMTYuMS0zMi4yLTMxLjktNy42LTI4LjYtNy42LTg4LjItNy42LTg4LjJzMC01OS43IDcuNi04OC4yYzQuMi0xNS44IDE2LjUtMjguMiAzMi4yLTMyLjQgMjguMy03LjcgMTQyLjItNy43IDE0Mi4yLTcuN3MxMTMuOSAwIDE0Mi4yIDcuN2MxNS43IDQuMiAyOCAxNi42IDMyLjIgMzIuNHoiXX0sb2dlPUlFLGxnZT17cHJlZml4OiJmYWIiLGljb25OYW1lOiJhdGxhc3NpYW4iLGljb246WzUxMiw1MTIsW10sImY3N2IiLCJNMTUyLjIgMjM2LjRjLTcuNy04LjItMTkuNy03LjctMjQuOCAyLjhMMS42IDQ5MC4yYy01IDEwIDIuNCAyMS43IDEzLjQgMjEuN2wxNzUgMGM1LjggLjEgMTEtMy4yIDEzLjQtOC40IDM3LjktNzcuOCAxNS4xLTE5Ni4zLTUxLjItMjY3LjF6TTI0NC40IDguMWMtMTIyLjMgMTkzLjQtOC41IDM0OC42IDY1IDQ5NS41IDIuNSA1LjEgNy43IDguNCAxMy40IDguNEw0OTcgNTEyYzExLjIgMCAxOC40LTExLjggMTMuNC0yMS43IDAgMC0yMzQuNS00NzAuNi0yNDAuNC00ODIuMy01LjMtMTAuNi0xOC44LTEwLjgtMjUuNiAuMXoiXX0sY2dlPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6InBpZWQtcGlwZXItaGF0IixpY29uOls2NDAsNTEyLFtdLCJmNGU1IiwiTTY0MCAyNC45Yy04MC44IDUzLjYtODkuNCA5Mi41LTk2LjQgMTA0LjQtNi43IDEyLjItMTEuNyA2MC4zLTIzLjMgODMuNi0xMS43IDIzLjYtNTQuMiA0Mi4yLTY2LjEgNTAtMTEuNyA3LjgtMjguMyAzOC4xLTQxLjkgNjQuMi0xMDguMS00LjQtMTY3LjQgMzguOC0yNTkuMiA5My42IDI5LjQtOS43IDQzLjMtMTYuNyA0My4zLTE2LjcgOTQuMi0zNiAxMzkuMy02OC4zIDI4MS4xLTQ5LjIgMS4xIDAgMS45IC42IDIuOCAuOCAzLjkgMi4yIDUuMyA2LjkgMy4xIDEwLjhsLTUzLjkgOTUuOGMtMi41IDQuNy03LjggNy4yLTEzLjEgNi4xLTEyNi44LTIzLjgtMjI2LjkgMTcuMy0zMTguOSAxOC42LTczLjQgMS4xLTk3LjUtMzMuNS05Ny41LTM1LjEgMC0xLjEgLjYtMS43IDEuNy0xLjcgMCAwIDM4LjMgMCAxMDMuMS0xNS4zIDczLjYtMTQwLjMgMTM5LjItMTg5LjQgMjEwLjYtMTg5LjQgMCAwIDcxLjcgMCA5MC42IDYxLjkgMjIuOC0zOS43IDI4LjMtNDkuMiAyOC4zLTQ5LjIgNS4zLTkuNCAzNS03Ny4yIDg2LjQtMTQxLjQgNTEuNS02NCA5MC40LTc5LjkgMTE5LjMtOTEuOHoiXX0sZGdlPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImludGVybmV0LWV4cGxvcmVyIixpY29uOls1MTIsNTEyLFtdLCJmMjZiIiwiTTQ4My4xIDE1OS43YzEwLjktMjQuNiAyMS40LTYwLjQgMjEuNC04Ny45IDAtNzIuNy03OS42LTk4LjQtMjA5LjctMzguNi0xMDcuNi03LjItMjExLjIgNzMuNy0yMzcuMSAxODYuNSAzMC45LTM0LjkgNzguMy04Mi4zIDEyMi0xMDEuMi01NC4zIDQ4LjMtMTAwLjYgMTA5LjQtMTM1LjcgMTczLjItMjAuNyAzNy45LTQ0IDk5LjItNDQgMTQ1IDAgOTguNiA5Mi45IDg2LjUgMTgwLjMgNDIgMzEuNCAxNS40IDY2LjYgMTUuNiAxMDEuNyAxNS42IDk3LjEgMCAxODQuMi01NC4zIDIxNi44LTE0NmwtMTIwLjggMGMtNTIuNSA4OC42LTE5Ni44IDUzLTE5Ni44LTQ3LjRsMzI4LjggMGM2LjQtNDMuNi0xLjctOTUuNy0yNi45LTE0MS4yek02NC42IDM0Ni45QzgyLjMgMzk4IDExOC4zIDQ0Mi43IDE2NC44IDQ3MC4yIDc2LjEgNTE5LjEtOC40IDQ5OS4zIDY0LjYgMzQ2Ljl6TTE4MC41IDIzOGMyLTU1LjIgNTAuMy05NC45IDEwNC05NC45IDUzLjQgMCAxMDIgMzkuNyAxMDQgOTQuOWwtMjA4IDB6TTM2NS4xIDUwLjRjMjEuNC0xMC4zIDQ4LjYtMjIgNzIuNi0yMiAzMS40IDAgNTQuMyAyMS43IDU0LjMgNTMuNyAwIDIwLTcuNCA0OS0xNC42IDY3LjktMjYuMy00Mi4zLTY2LTgxLjYtMTEyLjMtOTkuNnoiXX0saGdlPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImFpcmJuYiIsaWNvbjpbNDQ4LDUxMixbXSwiZjgzNCIsIk0yMjQuNSAzNzMuMWMtMjUuMi0zMS43LTQwLjEtNTkuNC00NS04My4yLTIyLjUtODggMTEyLjYtODggOTAuMSAwLTUuNCAyNC4yLTIwLjMgNTItNDUgODMuMmwtLjEgMHptMTM4LjIgNzMuMmMtNDIuMSAxOC4zLTgzLjctMTAuOS0xMTkuMy01MC41IDEwMy45LTEzMC4xIDQ2LjEtMjAwLTE4LjgtMjAwLTU0LjkgMC04NS4yIDQ2LjUtNzMuMyAxMDAuNSA2LjkgMjkuMiAyNS4yIDYyLjQgNTQuNCA5OS41LTMyLjUgMzYtNjAuNSA1Mi43LTg1LjIgNTQuOS01MCA3LjQtODkuMS00MS4xLTcxLjMtOTEuMSAxNS4xLTM5LjIgMTExLjctMjMxLjIgMTE1LjktMjQxLjYgMTUuOC0zMC4xIDI1LjYtNTcuNCA1OS40LTU3LjQgMzIuMyAwIDQzLjQgMjUuOSA2MC40IDU5LjkgMzYgNzAuNiA4OS40IDE3Ny41IDExNC44IDIzOS4xIDEzLjIgMzMuMS0xLjQgNzEuMy0zNyA4Ni42em00Ny0xMzYuMWMtMTI4LjktMjc0LjMtMTM2LTI3OC4yLTE4NS4xLTI3OC4yLTQ1LjUgMC02NC45IDMxLjctODQuNyA3Mi44LTEwNi4yIDIxMi4zLTExNi40IDI0Mi40LTExNy4zIDI0NS0yNS4yIDY5LjMgMjYuNyAxMzAuMiA4OS42IDEzMC4yIDIxLjcgMCA2MC42LTYuMSAxMTIuNC02Mi40IDU4LjcgNjMuOCAxMDEuMyA2Mi40IDExMi40IDYyLjQgNjIuOSAuMSAxMTQuOS02MC45IDg5LjYtMTMwLjIgMC0zLjktMTYuOC0zOC45LTE2LjgtMzkuNmwwIDB6Il19LHBnZT17cHJlZml4OiJmYWIiLGljb25OYW1lOiJqcyIsaWNvbjpbNDQ4LDUxMixbXSwiZjNiOCIsIk0wIDMybDAgNDQ4IDQ0OCAwIDAtNDQ4LTQ0OCAwek0yNDMuOCAzODEuNGMwIDQzLjYtMjUuNiA2My41LTYyLjkgNjMuNS0zMy43IDAtNTMuMi0xNy40LTYzLjItMzguNUwxNTIgMzg1LjdjNi42IDExLjcgMTIuNiAyMS42IDI3LjEgMjEuNiAxMy44IDAgMjIuNi01LjQgMjIuNi0yNi41bDAtMTQzLjEgNDIuMSAwIDAgMTQzLjd6bTk5LjYgNjMuNWMtMzkuMSAwLTY0LjQtMTguNi03Ni43LTQzTDMwMSAzODIuMWM5IDE0LjcgMjAuOCAyNS42IDQxLjUgMjUuNiAxNy40IDAgMjguNi04LjcgMjguNi0yMC44IDAtMTQuNC0xMS40LTE5LjUtMzAuNy0yOGwtMTAuNS00LjVjLTMwLjQtMTIuOS01MC41LTI5LjItNTAuNS02My41IDAtMzEuNiAyNC4xLTU1LjYgNjEuNi01NS42IDI2LjggMCA0NiA5LjMgNTkuOCAzMy43TDM2OCAyOTBjLTcuMi0xMi45LTE1LTE4LTI3LjEtMTgtMTIuMyAwLTIwLjEgNy44LTIwLjEgMTggMCAxMi42IDcuOCAxNy43IDI1LjkgMjUuNmwxMC41IDQuNWMzNS44IDE1LjMgNTUuOSAzMSA1NS45IDY2LjIgMCAzNy44LTI5LjggNTguNi02OS43IDU4LjZ6Il19LHVnZT17cHJlZml4OiJmYWIiLGljb25OYW1lOiJxdWluc2NhcGUiLGljb246WzUxMiw1MTIsW10sImY0NTkiLCJNMzEzLjcgNDc0LjZsLTEgMGMtNDEuOSAwLTgyLjEtMTYuNy0xMTEuOC00Ni4zcy00Ni4zLTY5LjktNDYuMy0xMTEuOCAxNi43LTgyLjEgNDYuMy0xMTEuOCA2OS45LTQ2LjMgMTExLjgtNDYuM2M5NC45IDAgMTY4LjIgODMuMSAxNTcgMTc2LjYgNCA1LjEgOC4yIDkuNiAxMS4yIDE1LjMgMTMuNC0zMC4zIDIwLjMtNjIuNCAyMC4zLTk3LjcgMC0xMzUuMS0xMDkuNS0yNDQuNi0yNDQuNi0yNDQuNlMxMi4xIDExNy41IDEyLjEgMjUyLjYgMTIxLjYgNDk3LjIgMjU2LjYgNDk3LjJjMjMuOCAuMiA0Ny42LTMuMiA3MC40LTEwLjEtNS4yLTMuNS04LjktOC4xLTEzLjMtMTIuNXptNzguMy0xNjlhOTkuMiA5OS4yIDAgMSAwIDAgMTk4LjQgOTkuMiA5OS4yIDAgMSAwIDAtMTk4LjR6Il19LGZnZT17cHJlZml4OiJmYWIiLGljb25OYW1lOiJhZHZlcnNhbCIsaWNvbjpbNTEyLDUxMixbXSwiZjM2YSIsIk00ODIuMSAzMkwyOC43IDMyQzUuOCAzMiAwIDM3LjkgMCA2MC45TDAgNDUxLjFDMCA0NzQuNCA1LjggNDgwIDI4LjcgNDgwbDQ1My40IDBjMjQuNCAwIDI5LjktNS4yIDI5LjktMjkuN2wwLTM4OC4xYzAtMjQuNi01LjQtMzAuMi0yOS45LTMwLjJ6TTE3OC40IDIyMC4zYy0yNy41LTIwLjItNzIuMS04LjctODQuMiAyMy40LTQuMyAxMS4xLTkuMyA5LjUtMTcuNSA4LjMtOS43LTEuNS0xNy4yLTMuMi0yMi41LTUuNS0yOC44LTExLjQgOC42LTU1LjMgMjQuOS02NC4zIDQxLjEtMjEuNCA4My40LTIyLjIgMTI1LjMtNC44IDQwLjkgMTYuOCAzNC41IDU5LjIgMzQuNSAxMjguNSAyLjcgMjUuOC00LjMgNTguMyA5LjMgODguOCAxLjkgNC40IC40IDcuOS0yLjcgMTAuNy04LjQgNi43LTM5LjMgMi4yLTQ2LjYtNy40LTEuOS0yLjItMS44LTMuNi0zLjktNi4yLTMuNi0zLjktNy4zLTIuMi0xMS45IDEtNTcuNCAzNi40LTE0MC4zIDIxLjQtMTQ3LTQzLjMtMy4xLTI5LjMgMTIuNC01Ny4xIDM5LjYtNzEgMzguMi0xOS41IDExMi4yLTExLjggMTE0LTMwLjkgMS4xLTEwLjItMS45LTIwLjEtMTEuMy0yNy4zem0yODYuNyAyMjJjMCAxNS4xLTExLjEgOS45LTE3LjggOS45bC0zOTQuOSAwYy03LjQgMC0xOC4yIDQuOC0xNy44LTEwLjcgLjQtMTMuOSAxMC41LTkuMSAxNy4xLTkuMSAxMzIuMy0uNCAyNjQuNS0uNCAzOTYuOCAwIDYuOCAwIDE2LjYtNC40IDE2LjYgOS45em0zLjgtMzQwLjVsMCAyOTFjMCA1LjctLjcgMTMuOS04LjEgMTMuOS0xMi40LS40LTI3LjUgNy4xLTM2LjEtNS42LTUuOC04LjctNy44LTQtMTIuNC0xLjItNTMuNCAyOS43LTEyOC4xIDcuMS0xNDQuNC04NS4yLTYuMS0zMy40LS43LTY3LjEgMTUuNy0xMDAgMTEuOC0yMy45IDU2LjktNzYuMSAxMzYuMS0zMC41bDAtNzFjMC0yNi4yLS4xLTI2LjIgMjYtMjYuMiAzLjEgMCA2LjYgLjQgOS43IDAgMTAuMS0uOCAxMy42IDQuNCAxMy42IDE0LjMtLjEgLjItLjEgLjMtLjEgLjV6TTQxNy40IDMzNC4xYy0xOS41IDQ3LjYtNzIuOSA0My4zLTkwIDUuMi0xNS4xLTMzLjMtMTUuNS02OC4yIC40LTEwMS41IDE2LjMtMzQuMSA1OS43LTM1LjcgODEuNS00LjggMjAuNiAyOC44IDE0LjkgODQuNiA4LjEgMTAxLjF6TTEyMi42IDM2OS40Yy03LjUtMS4zLTMzLTMuMy0zMy43LTI3LjgtLjQtMTMuOSA3LjgtMjMgMTkuOC0yNS44IDI0LjQtNS45IDQ5LjMtOS45IDczLjctMTQuNyA4LjktMiA3LjQgNC40IDcuOCA5LjUgMS40IDMzLTI2LjEgNTkuMi02Ny42IDU4Ljh6Il19LG1nZT17cHJlZml4OiJmYWIiLGljb25OYW1lOiJjcmVhdGl2ZS1jb21tb25zIixpY29uOls1MTIsNTEyLFtdLCJmMjVlIiwiTTI1My44IDIxNC45bC0zMy4yIDE3LjNjLTkuNC0xOS42LTI1LjItMTkuOS0yNy41LTE5LjktMjIuMSAwLTMzLjIgMTQuNi0zMy4yIDQzLjggMCAyMy42IDkuMiA0My44IDMzLjIgNDMuOCAxNC41IDAgMjQuNi03LjEgMzAuNi0yMS4zbDMwLjYgMTUuNWMtNi4yIDExLjUtMjUuNyAzOS02NS4xIDM5LTIyLjYgMC03NC0xMC4zLTc0LTc3IDAtNTguNyA0My03Ny4xIDcyLjYtNzcuMSAzMC43IDAgNTIuNyAxMS45IDY2IDM1Ljl6bTE0MyAwbC0zMi44IDE3LjNjLTkuNS0xOS44LTI1LjctMTkuOS0yNy45LTE5LjktMjIuMSAwLTMzLjIgMTQuNi0zMy4yIDQzLjggMCAyMy41IDkuMiA0My44IDMzLjIgNDMuOCAxNC40IDAgMjQuNi03LjEgMzAuNS0yMS4zbDMxIDE1LjVjLTIuMSAzLjgtMjEuNCAzOS02NS4xIDM5LTIyLjcgMC03NC05LjktNzQtNzcgMC01OC43IDQzLTc3LjEgNzIuNi03Ny4xIDMwLjcgMCA1Mi42IDExLjkgNjUuNiAzNS45ek0yNTUuNiA4QzExMi43IDggOCAxMjMuMSA4IDI1Ni4xIDggMzk0LjUgMTIxLjYgNTA0LjEgMjU1LjYgNTA0LjEgMzg1LjUgNTA0LjEgNTA0IDQwMy4yIDUwNCAyNTYuMSA1MDQgMTE4LjIgMzk3LjQgOCAyNTUuNiA4em0uOSA0NTAuOGMtMTEyLjUgMC0yMDMuNy05My0yMDMuNy0yMDIuOCAwLTEwNS40IDg1LjQtMjAzLjMgMjAzLjctMjAzLjMgMTEyLjUgMCAyMDIuOCA4OS41IDIwMi44IDIwMy4zIDAgMTIxLjctOTkuNyAyMDIuOC0yMDIuOCAyMDIuOHoiXX0sZ2dlPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6Im5vdGlvbiIsaWNvbjpbNTEyLDUxMixbXSwiZTdkOSIsIk05NC45IDEwMC4yYzE0LjkgMTIuMSAyMC41IDExLjIgNDguNiA5LjNMNDA3LjggOTMuNmM1LjYgMCAuOS01LjYtLjktNi41TDM2Mi45IDU1LjRjLTguNC02LjUtMTkuNi0xNC00MS4xLTEyLjFMNjUuOSA2MS45Yy05LjMgLjktMTEuMiA1LjYtNy41IDkuM2wzNi40IDI4Ljl6bTE1LjkgNjEuNmwwIDI3OC4xYzAgMTQuOSA3LjUgMjAuNSAyNC4zIDE5LjZsMjkwLjUtMTYuOGMxNi44LS45IDE4LjctMTEuMiAxOC43LTIzLjNsMC0yNzYuMmMwLTEyLjEtNC43LTE4LjctMTUtMTcuN0wxMjUuNyAxNDMuMWMtMTEuMiAuOS0xNC45IDYuNS0xNC45IDE4Ljd6bTI4Ni43IDE0LjljMS45IDguNCAwIDE2LjgtOC40IDE3LjhsLTE0IDIuOCAwIDIwNS4zYy0xMi4yIDYuNS0yMy40IDEwLjMtMzIuNyAxMC4zLTE1IDAtMTguNy00LjctMjkuOS0xOC43bC05MS41LTE0My43IDAgMTM5IDI5IDYuNXMwIDE2LjgtMjMuNCAxNi44bC02NC40IDMuN2MtMS45LTMuNyAwLTEzLjEgNi41LTE0LjlsMTYuOC00LjcgMC0xODMuOC0yMy4zLTEuOWMtMS45LTguNCAyLjgtMjAuNSAxNS45LTIxLjVsNjkuMS00LjcgOTUuMyAxNDUuNiAwLTEyOC44LTI0LjMtMi44Yy0xLjktMTAuMyA1LjYtMTcuNyAxNC45LTE4LjdsNjQuNS0zLjh6TTQ0LjQgMzYuN0wzMTAuNiAxNy4xYzMyLjctMi44IDQxLjEtLjkgNjEuNiAxNGw4NSA1OS43YzE0IDEwLjMgMTguNyAxMy4xIDE4LjcgMjQuM2wwIDMyNy42YzAgMjAuNS03LjUgMzIuNy0zMy42IDM0LjVMMTMzLjIgNDk1LjhjLTE5LjYgLjktMjktMS45LTM5LjItMTQuOUwzMS40IDM5OS43Yy0xMS4yLTE0LjktMTUuOS0yNi4xLTE1LjktMzkuMmwwLTI5MS4yYzAtMTYuOCA3LjUtMzAuOCAyOC45LTMyLjd6Il19LGJnZT17cHJlZml4OiJmYWIiLGljb25OYW1lOiJjaHJvbWVjYXN0IixpY29uOls1MTIsNTEyLFtdLCJmODM4IiwiTTQ0OCA2NEw2NC4yIDY0Yy0yMy42IDAtNDIuNyAxOS4xLTQyLjcgNDIuN2wwIDYzLjkgNDIuNyAwIDAtNjMuOSAzODMuOCAwIDAgMjk4LjYtMTQ5LjIgMCAwIDQyLjcgMTQ5LjQgMGMyMy42IDAgNDIuNy0xOS4xIDQyLjctNDIuN2wwLTI5OC42QzQ5MC45IDgzLjEgNDcxLjYgNjQgNDQ4IDY0ek0yMS41IDM4My42bDAgNjMuOSA2My45IDBjMC0zNS4zLTI4LjYtNjMuOS02My45LTYzLjl6bTAtODVsMCA0Mi40YzU4LjkgMCAxMDYuNiA0OC4xIDEwNi42IDEwN2w0Mi43IDBjLjEtODIuNC02Ni45LTE0OS4zLTE0OS4zLTE0OS40ek0yMTMuNiA0NDhsNDIuNyAwQzI1NS44IDMxOC41IDE1MSAyMTMuNyAyMS41IDIxMy40bDAgNDIuNGMxMDYtLjIgMTkyIDg2LjIgMTkyLjEgMTkyLjJ6Il19LHZnZT17cHJlZml4OiJmYWIiLGljb25OYW1lOiJ1bHRyYWx5dGljcy1odWIiLGljb246WzUxMiw1MTIsW10sImU4NmUiLCJNMTMwLjQgMTZjNjAuOSAwIDExMC40IDQ5LjUgMTEwLjQgMTEwLjRsMCAyNC45YzQuOC0uNyA5LjctMSAxNC42LTEgODguMS0uMiAxNjUuMSA0OSAyMDUuNCAxMjEuMi0yMi44LTE2LjItNTAuNy0yNS40LTgwLjQtMjUuMy03Ny4xIC4yLTEzOS41IDYyLjYtMTM5LjYgMTM5LjQtLjEgNjAuOS00OS41IDExMC4zLTExMC43IDExMC41LTYwLjYgLjItMTEwLjItNDkuNS0xMTAuMi0xMTAuNSAuMi0yLjYgMCAwIC4xLTMuMmwwLTI1NkMyMC4xIDY1LjUgNjkuNSAxNiAxMzAuNCAxNnpNMzgwLjMgNDk2YTExMC40IDExMC40IDAgMSAxIDAtMjIwLjkgMTEwLjQgMTEwLjQgMCAxIDEgMCAyMjAuOXoiXX0seWdlPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6Indpa2lwZWRpYS13IixpY29uOls2NDAsNTEyLFtdLCJmMjY2IiwiTTY0MCA1MS4ybC0uMyAxMi4yYy0yOC4xIC44LTQ1IDE1LjgtNTUuOCA0MC4zLTI1IDU3LjgtMTAzLjMgMjQwLTE1NS4zIDM1OC42bC0xMy42IDAtODEuOS0xOTMuMWMtMzIuNSA2My42LTY4LjMgMTMwLTk5LjIgMTkzLjEtLjMgLjMtMTUgMC0xNS0uMy00Ni45LTEwOS43LTk2LjEtMjE4LjYtMTQzLjEtMzI4LjYtMTEuNC0yNi43LTQ5LjQtNzAtNzUuNi02OS43IDAtMy4xLS4zLTEwLS4zLTE0LjJsMTYxLjkgMCAwIDEzLjljLTE5LjIgMS4xLTUyLjggMTMuMy00My4zIDM0LjIgMjEuOSA0OS43IDEwMy42IDI0MC4zIDEyNS42IDI4OC42IDE1LTI5LjcgNTcuOC0xMDkuMiA3NS4zLTE0Mi44LTEzLjktMjguMy01OC42LTEzMy45LTcyLjgtMTYwLTkuNy0xNy44LTM2LjEtMTkuNC01NS44LTE5LjdsMC0xMy45IDE0Mi41IC4zIDAgMTMuMWMtMTkuNCAuNi0zOC4xIDcuOC0yOS40IDI2LjEgMTguOSA0MCAzMC42IDY4LjEgNDguMSAxMDQuNyA1LjYtMTAuOCAzNC43LTY5LjQgNDguMS0xMDAuOCA4LjktMjAuNi0zLjktMjguNi0zOC42LTI5LjQgLjMtMy42IDAtMTAuMyAuMy0xMy42IDQ0LjQtLjMgMTExLjEtLjMgMTIzLjEtLjZsMCAxMy42QzQ2Mi40IDY0IDQzOS4xIDc2IDQyNi44IDk0LjlMMzY3LjYgMjE3LjdjNi40IDE2LjEgNjMuMyAxNDIuOCA2OS4yIDE1Ni43TDU1OS4yIDkxLjhjLTguNi0yMy4xLTM2LjQtMjguMS00Ny4yLTI4LjNsMC0xMy45IDEyNy44IDEuMSAuMiAuNXoiXX0seGdlPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6InNpdHJveCIsaWNvbjpbNDQ4LDUxMixbXSwiZTQ0YSIsIk0yMTIuNCAwbDAgMCAyMzUuNiAwIDAgMTI4LTM4NCAwQzY0IDU3LjYgMTQxLjggLjUgMjEyLjQgMHptMjQuOCAxOTJsMCAwYzY5LjkgLjUgMTQ2LjcgNTcuNiAxNDYuNyAxMjhsLTE3My4yIDAgMCAwQzE0MC45IDMxOS42IDY0IDI2Mi40IDY0IDE5MmwxNzMuMyAwem0tMS43IDMyMGM3MC43LS41IDE0OC40LTU3LjYgMTQ4LjQtMTI4bC0zODQgMCAwIDEyOCAyMzUuNiAwIDAgMHoiXX0sTkU9e3ByZWZpeDoiZmFiIixpY29uTmFtZToic3F1YXJlLWdpdGxhYiIsaWNvbjpbNDQ4LDUxMixbImdpdGxhYi1zcXVhcmUiXSwiZTVhZSIsIk0wIDk2TDAgNDE2YzAgMzUuMyAyOC43IDY0IDY0IDY0bDMyMCAwYzM1LjMgMCA2NC0yOC43IDY0LTY0bDAtMzIwYzAtMzUuMy0yOC43LTY0LTY0LTY0TDY0IDMyQzI4LjcgMzIgMCA2MC43IDAgOTZ6bTMzNy41IDEyLjVsNDQuNiAxMTYuNCAuNCAxLjJjNS42IDE2LjggNy4yIDM1LjIgMi4zIDUyLjUtNSAxNy4yLTE1LjQgMzIuNC0yOS44IDQzLjNsLS4yIC4xLTY4LjQgNTEuMi01NC4xIDQwLjljLS41IC4yLTEuMSAuNS0xLjcgLjgtMiAxLTQuNCAyLTYuNyAyLTMgMC02LjgtMS44LTguMy0yLjhsLTU0LjItNDAuOS02Ny45LTUwLjktLjQtLjMtLjItLjFjLTE0LjMtMTAuOC0yNC44LTI2LTI5LjctNDMuM3MtNC4yLTM1LjcgMi4yLTUyLjVsLjUtMS4yIDQ0LjctMTE2LjRjLjktMi4zIDIuNS00LjMgNC41LTUuNiAxLjYtMSAzLjQtMS42IDUuMi0xLjggMS4zLS43IDIuMS0uNCAzLjQgLjEgLjYgLjIgMS4yIC41IDIgLjcgMSAuNCAxLjYgLjkgMi40IDEuNSAuNiAuNCAxLjIgMSAyLjEgMS41IDEuMiAxLjQgMi4yIDMgMi43IDQuOGwyOS4yIDkyLjIgMTIyLjkgMCAzMC4yLTkyLjJjLjUtMS44IDEuNC0zLjQgMi42LTQuOHMyLjgtMi40IDQuNS0zLjFjMS43LS42IDMuNi0uOSA1LjQtLjdzMy42IC44IDUuMiAxLjhjMiAxLjMgMy43IDMuMyA0LjYgNS42eiJdfSx3Z2U9TkUsTWdlPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6InNob2VsYWNlIixpY29uOls1MTIsNTEyLFtdLCJlNjBjIiwiTTQwNS4yIDMzMWMyLjItMS4xIDQuNC0yLjMgNi41LTMuN2w4LjMtNC44YzEuNS0xLjEgNC40LTMuNCA4LjctNi43bC41LS41YzMuNC0zLjQgNy4yLTUgMTEuMy00LjkgMS44IDAgMy45IC41IDYuNCAxLjVsMzEtMjcuNWMuOS0uNyAxLjctMS4zIDIuNi0xLjhsLjIgMGMzLjMtMS45IDYtMS44IDguMiAuNCAzLjkgMi4xIDQuMiA1LjYgLjkgMTAuNkw0NTcuMiAzMjJjLjIgLjUgLjQgMSAuNCAxLjUgLjUgMi4yIC4zIDQuNC0uNSA2LjYtLjcgMS41LTEuOCAyLjktMy4xIDQuMi0xLjQgMS40LTIuNyAyLjgtNC4yIDQuMkw0MzEgMzUyLjJjLTEuNyAxLjItMy40IDIuMy01LjEgMy4zLTIuMSAxLjMtNC4zIDIuNS02LjYgMy42LTEgLjQtMS45IC45LTIuOSAxLjMtNS45IDIuNS0xMS45IDQuMi0xOC4yIDUtMi45IDI0LjUtMTEuMyA0Ny4xLTI1LjEgNjcuOC0xNy41IDI1LjctNDEuNCA0NS40LTcxLjggNTguOC0zMC4yIDEzLjUtNjMgMjAuMi05OC4yIDIwLjItNDguNi0uNS04OC0xMS40LTExOC4yLTMyLjgtMzUuMS0yNS01Mi42LTU3LjktNTIuNi05OS4xbDAtNS42YzEuMi0yOC4xIDkuNS01NC42IDI0LjgtNzkuOCAxNS4xLTI0LjkgMzcuMS00MS43IDY2LjEtNTAuNSAxNC45LTQuNCAyOS45LTYuNiA0NS02LjYgMTUuNSAwIDMxLjYgMi45IDQ4LjEgOC42czM1LjIgMTUuNSA1NS45IDI5LjVsNTQuMSAzNi4zYzE1LjEgOS44IDI4LjggMTYuNSA0MS4yIDIwLTIuNi0yNS4xLTExLjctNDYuNi0yNy4zLTY0LjUtMTUuNy0xOC4xLTM1LjYtMzEuMy01OS45LTM5LjdMMjU3IDIyMGMtMjEuNC03LjUtMzcuMy0xNC45LTQ3LjctMjIuMi0yOC4yLTE5LjEtNDMuOC00NS4yLTQ3LTc4LjVsLS41LTkuOGMwLTMyLjEgMTMtNTguOSAzOS04MC41IDIzLTE5LjMgNTAuNi0yOSA4Mi41LTI5IDI0IDAgNDUuNiA2LjkgNjQuNyAyMC44IDE5LjIgMTQgMzAuMSAzMy44IDMyLjYgNTkuNGwuNSAxMGMwIDE4LjYtNC44IDM0LjUtMTQuNCA0Ny43LTkuOCAxMy4yLTE4LjUgMTkuOS0yNiAxOS45LTEuNi0uMS0zLjEtLjMtNC41LS42bC0zNCAzMmMtNS41IDMtOS4yIDIuNS0xMS4xLTEuNi0xLjktMi4yLTEuOC00LjkgLjUtOC4ybC4yLS4yYy41LS43IDEuMi0xLjUgMi0yLjRsMzEuNi0zMGMtLjQtMS41LS42LTMuMS0uNi00LjggMC00LjEgMS42LTcuNiA0LjktMTAuNCAxMy44LTEyLjQgMjAuOC0yNi43IDIwLjgtNDIuOCAwLTE2LTYuMS0yOS41LTE4LjItNDAuNHMtMjguNy0xNi41LTQ5LjctMTYuOGMtMjYuMiAwLTQ3LjggNy45LTY0LjcgMjMuN1MxOTIuNiA4OS45IDE5Mi42IDExMmMwIDE3LjggNi45IDMzLjkgMjAuNiA0OC4zIDEzLjYgMTQuMiAzNC42IDI1LjQgNjMgMzMuNSAzOS44IDExLjUgNzAuMiAzMSA5MS4zIDU4LjMgMTguNyAyNC4yIDI5LjEgNTEuMyAzMS4zIDgxLjQgMi4yLS43IDQuMy0xLjUgNi41LTIuNmwtLjEgLjF6TTI5NC40IDE3OC43YzAgMS4xIC42IDEuNiAxLjggMS42IC4xIDAgOS43LTguOSAyOC44LTI2LjYgMC0yLjQtNS4xIC45LTE1LjMgMTAtMTAuMiA5LjItMTUuMyAxNC4yLTE1LjMgMTQuOWwwIC4xem04IDYuNGMwLTEtLjUtMS41LTEuNS0xLjUtMS4xIDAtMi4xIC41LTIuOSAxLjYtMS45LS4xLTMuMyAuMS00LjIgLjctLjQgLjItLjUgLjUtLjUgLjcgMCAuNyAuNSAxLjMgMS41IDEuNmwzLjMgMGMyLjktMS4xIDQuNC0yLjIgNC40LTMuM2wtLjEgLjJ6TTMyNSAxNjUuMmMwLTIuOC0xLjYtMi44LTQuOSAwLTEuNiAxLjUtMy42IDMuNS02IDYuMi0uOCAuNi0yLjYgMi4yLTUuMyA0LjktMi44IDIuOS00LjIgNC43LTQuMiA1LjNsLjIgMS4zYy43IC4yIDEuMiAuNCAxLjUgLjQgLjEgMCAzLjMtMi45IDkuNS04LjdzOS4zLTguOSA5LjMtOS4zbC0uMS0uMXptMTU5LjcgMTIwbC0zMC42IDI3YzEuOCAxIDMuMiAyLjQgNCA0LjJsMzAuMi0yN2MuMi0xLjIgLjEtMi4yLS41LTIuOS0uNi0uNS0xLjYtLjktMy4xLTEuM3ptLTEuNi0uOWwtLjctLjctMjcgMjEuOSAxLjYgMiAyNi0yMy4xIC4xLS4xek0zNjYuOSAzNjMuOWMtOC0yLjEtMTUuNC00LjYtMjIuMi03LjUtMTUuMy02LjItMzQuMy0xNy01Ny0zMi40bC0zNy40LTI1LjNjLTE1LjgtMTAuMS0zMC4yLTE3LjYtNDMuMi0yMi42LTEzLjEtNC45LTI2LTcuMy0zOC42LTcuM2wtNS41IDBjLTMyLjIgMS43LTU3LjIgMTMuOC03NSAzNi4yLTE2LjYgMjAuOC0yNSA0NS4zLTI1IDczLjYgMCAzMS44IDEyLjggNTYuNyAzOC4yIDc0LjcgMjUuNCAxOC4xIDYwLjIgMjcuMSAxMDQuNCAyNy4xIDM0LjcgMCA2NC02LjIgODcuOC0xOC42IDIzLjctMTIuNCA0Mi4xLTI4LjggNTUuMi00OS4yIDkuOC0xNS41IDE1LjktMzEuOCAxOC4yLTQ4LjhsLjEgLjF6Il19LHpnZT17cHJlZml4OiJmYWIiLGljb25OYW1lOiJvcGVuc3RyZWV0bWFwIixpY29uOls1MTIsNTEyLFtdLCJlODZiIiwiTTYxIDQ5OC43Yy03LjEtMS44LTEwLjgtNC43LTI5LjYtMjMuNi0yMi41LTIyLjQtMjMuOS0yNC42LTIzLjktMzYuMyAwLTEzLTMuOS04LjQgNjcuOS04MC4zIDcyLjUtNzIuNyA2OC43LTY5LjUgODEuOS02OS41IDYuMSAwIDcuNiAuNCAxMi41IDIuOGw1LjYgMi44YzExLjctMTEuNyAyMy40LTIzLjQgMzUuMS0zNS4xbC00LjQtNi45Yy04LjYtMTMuMy0xNi42LTMyLjgtMjAuMy00OC45LTEwLjItNDUuNCAuOC05My4zIDI5LjgtMTI5LjcgNTAuMS02Mi44IDE0MC4xLTc2LjcgMjA2LjYtMzIgMzYuNSAyNC41IDYwLjMgNjIuNSA2NyAxMDcgMS40IDkuNCAxLjQgMzEuOCAwIDQxLjgtNC45IDM0LjYtMTkuNyA2NC00NC40IDg4LjctMTIuNyAxMi43LTIzIDIwLjEtMzkuMiAyOC4yLTE5LjMgOS43LTM1LjcgMTQuMy01OCAxNi4xLTMxLjcgMi42LTY2LjktNi4xLTkzLjgtMjMuNGwtNi45LTQuNGMtMTEuNyAxMS43LTIzLjQgMjMuNC0zNS4xIDM1LjFsMi44IDUuNmMyLjUgNC45IDIuOCA2LjQgMi44IDEyLjUgMCAxMy4xIDMuMSA5LjQtNjkgODEuNS01NS42IDU1LjUtNjQuMSA2My43LTY4LjQgNjUuNy01LjUgMi41LTEzLjkgMy40LTE5IDIuMXpNMzU5LjQgMjk2LjljNDAuMS03LjMgNzUuMS0zNCA5Mi43LTcwLjcgMjgtNTguNCA5LjItMTI3LTQ0LjgtMTYzLjMtMTIuOS04LjctMzAuOC0xNi00Ny43LTE5LjQtMTEuNy0yLjQtMzYuNC0yLjEtNDguNiAuNS0xOC4yIDMuOS0zNC45IDExLjEtNDkuNCAyMS40LTguOSA2LjQtMjMuNyAyMS4xLTI5LjkgMjkuOS0zNC42IDQ5LTMxLjUgMTE0LjEgNy43IDE1OS4zIDIwLjEgMjMuMiA0Ny44IDM4LjQgNzguNiA0MyAxMC4yIDEuNSAzMSAxLjIgNDEuNS0uOHptLTM1LjUtMTcuNGMtMTMuOC0yLjItMjUuNi01LjctMzUuMS0xMC41bC01LjQtMi43IDAtNDkuOS05LjUgMGMtOC4yIDAtMTkuNSAxLjYtMjcuNyA0LTEuMSAuMy0xLjUgMS42LTEuNyA0LjhsLS4zIDQuNC00LjEtNy44Yy05LTE3LjItMTIuMi0zMC43LTEyLjItNTEuNCAwLTE2IDEuMS0yMy40IDUuNi0zNi4zIDIuNC02LjggOC4yLTE4LjkgMTAuOC0yMi4zIDEuMS0xLjUgMS4yLTEuMSAxLjMgMy4zbDAgNWMxOC44LS4yIDM3LjYtLjMgNTYuNC0uNSAuMi00LjcgLjMtOS41IC41LTE0LjJsLTE5IDAgMC0zMSAzLjQtMS43YzUuNi0yLjggMTUuOS02LjcgMjEuNy04LjIgMy0uOCA2LjEtMS42IDYuOS0xLjggMS4yLS40IDEuMyAuMSAuNyAzLjMtMS4yIDYuMS0uOSAyMyAuNSAyOSAyLjggMTEuOSA5LjggMjAuNyAxOS4yIDI0LjMgNS42IDIuMSAxNi4zIDIuNiAyMi41IC45IDUuOS0xLjYgMTIuNS02LjQgMTUuOS0xMS41IDUtNy41IDYuNy0xNC4xIDcuMi0yNy4xbC40LTExLjQgNyAzLjZjOCA0LjIgMTcuOCAxMS4yIDI0LjkgMTggNC44IDQuNiA1IDQuOCA1IDkuMmwwIDQuNS0xOC45IDAgMCAxNC42IDM1IDBjMS4zIDIuNiAyLjUgNS4yIDMuOCA3LjdsLTkuNyAwYy02LjcgMC0xMi43IC42LTE5LjQgMS45bC05LjcgMS45IDAgNy4xYzAgMy45IC4yIDcuMSAuMyA3LjFzNC4xLS44IDguNy0xLjcgOC43LTEuNyA5LjEtMS43Yy40IDAgLjggMTEuMyAuOCAyNS44bDAgMjUuOGMtNi4yIC4yLTEyLjMgLjMtMTguNSAuNS0uMiA0LjctLjMgOS40LS41IDE0LjIgMTMuNSAuMiAyNyAuMyA0MC40IC41LTEgMi4zLTIgNC41LTMgNi44bC0xMC43IC4xYy05LjkgLjEtMTEuMSAuMi0xNS42IDIuNS0xMS44IDUuOC0xOC4xIDE4LjktMTguMyAzNy45bC0uMSA5LjMtNS44IDNjLTUgMi42LTIyLjYgOS0yNC45IDktLjUgMC0uOC0xMi0uOC0zMC42bDAtMzAuNi05LjQgMGMtNiAwLTEyLjQgLjYtMTcuOSAxLjctMTIuNiAyLjYtMTEuNSAxLjctMTEuNSA5LjUgMCA1IC4zIDYuOCAxLjEgNi44IC42IDAgNC42LS44IDguOC0xLjdzOC0xLjcgOC4zLTEuNyAuNiAxMSAuNiAyNC41bDAgMjQuNS03LjUtLjFjLTQuMS0uMS04LjUtLjMtOS43LS41em0tMzkuNC03MS42YzguOS0zLjkgMTUuNi0xMi45IDE4LjMtMjQuNCAxLjYtNi45IDEuNy0yMi42IDAtMzAuMi0yLjUtMTItOS42LTIxLjEtMTkuMy0yNC44LTYuOS0yLjYtMTguNC0yLjYtMjUuMyAwLTkuNyAzLjctMTYuNCAxMi44LTE5LjIgMjUuNi0xLjYgNy41LTEuNiAyMS40IDAgMjguOSAyLjYgMTIuNSAxMC41IDIyLjMgMjAuNiAyNS42IDcgMi4zIDE4LjkgMiAyNC45LS43em0tMTkuOS0xNC41Yy0zLjUtMy01LjItOC45LTUuOC0yMC42LS42LTEwLjUgLjYtMjEuMyAyLjktMjYgMi00LjMgNS44LTYuNCAxMC40LTYgNy40IC44IDEwLjMgNi41IDExLjEgMjIuNSAuOSAxNi43LTEuOSAyOC45LTcgMzEuMy0zLjkgMS44LTguNiAxLjMtMTEuNi0xLjJ6bTk0LjkgMTUuMWMxNS00LjYgMjIuOC0yMC4xIDIxLjktNDMuNS0uOC0xOS45LTcuOS0zMi4xLTIxLjUtMzcuMi01LjctMi4xLTE4LTEuOC0yNCAuNS05LjYgMy43LTE2LjQgMTIuNC0xOS4zIDI0LjctMiA4LjYtMS4zIDI4IDEuMyAzNS4yIDQgMTEuMyAxMS42IDE4LjcgMjEuNCAyMSA1LjggMS40IDE0LjQgMSAyMC4zLS44em0tMTYuNy0xNC4yYy01LTIuNy03LjMtMTMuMi02LjUtMzAuMSAuNi0xMi44IDEuNS0xNi43IDQuOC0yMC40IDQuNy01LjMgMTMuNi0zLjggMTYuNyAyLjggMy40IDcuMyA0IDMwLjEgMSA0MC4yLTEuNyA1LjctNS4yIDguOC0xMC4xIDguNy0yIDAtNC42LS42LTUuOC0xLjN6bS04NS4yIDUxLjVjLTcuMy03LjYtOS45LTExLjQtOC40LTExLjkgMi45LS45IDEzLjktMy4xIDE0LjItMi44IC4yIC4yIC4yIDQuOSAuMSAxMC40bC0uMiAxMC4xLTUuNi01Ljl6bTE1Ni40LTEuMmMuNy02IDMuMS0xMS41IDUuNy0xMy4yIDIuOS0xLjggNi40LTIuNiA4LTEuNyAxLjIgLjcgLjkgMS41LTIuNCA1LjktMi4xIDIuOC01LjYgNy03LjggOS40bC00IDQuMyAuNS00Ljd6TTQzOC40IDE2MWwuMS0zMi45IDIuNiA3LjdjNS4xIDE1LjMgNi45IDMxLjggNS4xIDQ2LjYtMS40IDExLjYtMS40IDExLjUtNC45IDExLjVsLTMgMCAuMS0zMi45ek0zNDQgMTA2LjJjLTIuNi0xLTUuMy00LjgtNi41LTktMS4yLTQtMS41LTI4LjUtLjQtMzMuNSAuNi0zIC45LTMuMiAzLjgtMy4yIDYuMiAwIDE4LjMgMiAxOC43IDMuMSAuMiAuNiAuNyA0LjkgMSA5LjUgLjcgOS43LS43IDIzLjItMi44IDI3LjYtMi40IDUuMS04LjUgNy41LTEzLjcgNS4zem0tOTQuMy0yLjRjLjQtLjggMy43LTQuNiA3LjMtOC40bDYuNS02LjljMCA1LjYgMCAxMS4yIC4xIDE2LjhsLTcuMyAwYy02LjcgMC03LjMtLjEtNi41LTEuNXptMzQuNCAzNDEuN2MtMjQtNi45LTQzLjktMTIuOS00NC4yLTEzLjEtLjUtLjYgMjQuMy04OC41IDI1LjMtODkuNiAuNS0uNSA4NS40IDIzLjMgODguOSAyNC45IDEuMiAuNi0uMSA1LjgtMTAuNiA0Mi40LTYuNiAyMy0xMi40IDQzLjItMTIuOCA0NXMtMS40IDMuMi0xLjkgMy4xLTIwLjctNS44LTQ0LjctMTIuN3pNMzQyLjggNDU2YzAtMS4xIDI0LjctODcuMyAyNS4xLTg3LjYgLjktLjcgODcuMS0yNC43IDg3LjQtMjQuNCAuNCAuNC0yNC4xIDg3LjMtMjQuNyA4Ny45LS40IC4zLTgzLjIgMjQtODUuOCAyNC41LTEuMSAuMi0xLjkgLjEtMS45LS40ek0xOTkuNiA0MTcuNWMxNy0xNy4xIDMyLjItMzIuNyAzMy43LTM0LjcgMy40LTQuNSA4LjItMTQuOCA5LjUtMjAuNSAuNS0yLjQgMS4xLTcuMSAxLjItMTAuNWwuMi02LjIgMy43LTFjMi0uNiAzLjgtLjkgNC0uNyAuNSAuNS0yNC4zIDg3LTI1LjEgODcuOC0uNCAuMy0xMy42IDQuMy0yOS40IDguOGwtMjguNyA4LjIgMzEtMzEuMXptMTY2LjktNjEuNmMtLjItLjMtLjctMi0xLjItMy43bC0uOS0zLjIgMy4yLS41YzI3LTQuNiA1NS45LTE3LjMgNzguNy0zNC41IDMuMy0yLjUgNS4xLTMuNCA1LjMtMi43IDEuMSAzLjMgNS41IDE5LjEgNS40IDE5LjMtLjcgLjctOTAuMiAyNS44LTkwLjUgMjUuNHpNNjIuOSAzMjkuOGMtMS0uOC0yMy44LTc3LjktMjUuNS04Ni40LS4zLTEuNyAzLS45IDQzLjggMTAuOCA0Mi43IDEyLjIgNDQuMiAxMi43IDQ0LjggMTQuOSAuNSAyIC4yIDIuNi0yLjUgNC41LTEuNyAxLjItMTUuNSAxNC42LTMwLjcgMjkuOHMtMjcuOCAyNy42LTI4IDI3LjYtMS4xLS41LTEuOC0xLjF6bTE2LjUtODguMmMtMjMuOS02LjktNDMuNS0xMi42LTQzLjYtMTIuNi0uMy0uMiAyNS4zLTg5LjMgMjUuOS04OS44IC40LS40IDg5LjEgMjQuNCA5MCAyNS4yIC4yIC4yLTUuNCAyMC41LTEyLjQgNDUuMS0xMS42IDQwLjctMTIuOSA0NC44LTE0LjUgNDQuNy0xIDAtMjEuMy01LjctNDUuMi0xMi42em01OS42IDEwLjhjLjItLjYgNC4zLTE0LjUgOC45LTMwLjlsOC41LTI5LjcgMS4xIDYuNWMxLjkgMTEuMiA1LjMgMjMuOSA5LjMgMzUuMSAyLjEgNS45IDMuOCAxMC45IDMuNiAxMXMtNi43IDItMTQuNSA0LjMtMTQuOSA0LjItMTUuOCA0LjVjLTEuMSAuMy0xLjUgLjEtMS4yLS43ek0xMDYgMTM5LjFjLTIzLjktNi45LTQzLjctMTIuOC00My45LTEzLjItLjgtMS4zLTI1LjEtODctMjQuNy04Ny40IC41LS41IDg2LjggMjQuMyA4Ny42IDI1LjEgLjkgMSAyNS44IDg4LjIgMjUuMSA4OC0uMyAwLTIwLjEtNS43LTQ0LTEyLjZ6bTQzLjItMzQuNUMxMzYuNSA2MCAxMzkgNjguOCAxMzcuMiA2Mi41bDM0LjEtOS43YzE4LjgtNS40IDM0LjctOS45IDM1LjQtMTAuMnMtMS42IDIuOC01LjIgNi44Yy0xOS4xIDIxLjMtMzEuNSA0NC0zOS40IDcxLjktMS41IDUuMi0yLjcgMTAuMy0yLjcgMTEuMyAwIDUuOS0yLjMtLjUtMTAuMi0yOHoiXX0sa2dlPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6InNlbGxjYXN0IixpY29uOls0NDgsNTEyLFtdLCJmMmRhIiwiTTM1My41IDMyTDk0LjggMzJDNDIuNyAzMiAuMSA3NC42IC4xIDEyNi42bDAgMjU4LjdDLjEgNDM3LjQgNDIuNyA0ODAgOTQuOCA0ODBsMjU4LjcgMGM1Mi4xIDAgOTQuNy00Mi42IDk0LjctOTQuNmwwLTI1OC44YzAtNTItNDIuNi05NC42LTk0LjctOTQuNnptLTUwIDMxNi40Yy0yNy45IDQ4LjItODkuOSA2NC45LTEzOC4yIDM3LjItMjIuOSAzOS44LTU0LjkgOC42LTQyLjMtMTMuMmwxNS43LTI3LjJjNS45LTEwLjMgMTkuMi0xMy45IDI5LjUtNy45IDE4LjYgMTAuOC0uMS0uMSAxOC41IDEwLjcgMjcuNiAxNS45IDYzLjQgNi4zIDc5LjQtMjEuMyAxNS45LTI3LjYgNi4zLTYzLjQtMjEuMy03OS40LTE3LjgtMTAuMi0uNi0uNC0xOC42LTEwLjYtMjQuNi0xNC4yLTMuNC01MS45IDIxLjYtMzcuNSAxOC42IDEwLjgtLjEtLjEgMTguNSAxMC43IDQ4LjQgMjggNjUuMSA5MC4zIDM3LjIgMTM4LjV6bTIxLjgtMjA4LjhjLTE3IDI5LjUtMTYuMyAyOC44LTE5IDMxLjUtNi41IDYuNS0xNi4zIDguNy0yNi41IDMuNi0xOC42LTEwLjggLjEgLjEtMTguNS0xMC43LTI3LjYtMTUuOS02My40LTYuMy03OS40IDIxLjNzLTYuMyA2My40IDIxLjMgNzkuNGMwIDAgMTguNSAxMC42IDE4LjYgMTAuNiAyNC42IDE0LjIgMy40IDUxLjktMjEuNiAzNy41LTE4LjYtMTAuOCAuMSAuMS0xOC41LTEwLjctNDguMi0yNy44LTY0LjktOTAuMS0zNy4xLTEzOC40IDI3LjktNDguMiA4OS45LTY0LjkgMTM4LjItMzcuMmw0LjgtOC40YzE0LjMtMjQuOSA1Mi0zLjMgMzcuNyAyMS41eiJdfSxTZ2U9e3ByZWZpeDoiZmFiIixpY29uTmFtZToibWl4IixpY29uOls0NDgsNTEyLFtdLCJmM2NiIiwiTTAgNjRMMCA0MTIuOWMwIDU2LjIgODggNTguMSA4OCAwbDAtMjM4LjZjNy45LTUyLjkgODgtNTAuNCA4OCA2LjVsMCAxNzUuM2MwIDU3LjkgOTYgNTggOTYgMEwyNzIgMjQwYzUuMy01NC43IDg4LTUyLjUgODggNC4zbDAgMjMuOGMwIDU5LjkgODggNTYuNiA4OCAwTDQ0OCA2NCAwIDY0eiJdfSxDZ2U9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiY2MtYXBwbGUtcGF5IixpY29uOls1NzYsNTEyLFtdLCJmNDE2IiwiTTMwMi4yIDIxOC40YzAgMTcuMi0xMC41IDI3LjEtMjkgMjcuMWwtMjQuMyAwIDAtNTQuMiAyNC40IDBjMTguNCAwIDI4LjkgOS44IDI4LjkgMjcuMXpNMzQ5LjcgMjgxYzAgOC4zIDcuMiAxMy43IDE4LjUgMTMuNyAxNC40IDAgMjUuMi05LjEgMjUuMi0yMS45bDAtNy43LTIzLjUgMS41Yy0xMy4zIC45LTIwLjIgNS44LTIwLjIgMTQuNHpNNTc2IDc5bDAgMzUyYzAgMjYuNS0yMS41IDQ4LTQ4IDQ4TDQ4IDQ3OWMtMjYuNSAwLTQ4LTIxLjUtNDgtNDhMMCA3OUMwIDUyLjUgMjEuNSAzMSA0OCAzMWw0ODAgMGMyNi41IDAgNDggMjEuNSA0OCA0OHpNMTI3LjggMTk3LjJjOC40IC43IDE2LjgtNC4yIDIyLjEtMTAuNCA1LjItNi40IDguNi0xNSA3LjctMjMuNy03LjQgLjMtMTYuNiA0LjktMjEuOSAxMS4zLTQuOCA1LjUtOC45IDE0LjQtNy45IDIyLjh6bTYwLjYgNzQuNWMtLjItLjItMTkuNi03LjYtMTkuOC0zMC0uMi0xOC43IDE1LjMtMjcuNyAxNi0yOC4yLTguOC0xMy0yMi40LTE0LjQtMjcuMS0xNC43LTEyLjItLjctMjIuNiA2LjktMjguNCA2LjktNS45IDAtMTQuNy02LjYtMjQuMy02LjQtMTIuNSAuMi0yNC4yIDcuMy0zMC41IDE4LjYtMTMuMSAyMi42LTMuNCA1NiA5LjMgNzQuNCA2LjIgOS4xIDEzLjcgMTkuMSAyMy41IDE4LjcgOS4zLS40IDEzLTYgMjQuMi02IDExLjMgMCAxNC41IDYgMjQuMyA1LjkgMTAuMi0uMiAxNi41LTkuMSAyMi44LTE4LjIgNi45LTEwLjQgOS44LTIwLjQgMTAtMjF6bTEzNS40LTUzLjRjMC0yNi42LTE4LjUtNDQuOC00NC45LTQ0LjhsLTUxLjIgMCAwIDEzNi40IDIxLjIgMCAwLTQ2LjYgMjkuMyAwYzI2LjggMCA0NS42LTE4LjQgNDUuNi00NXptOTAgMjMuN2MwLTE5LjctMTUuOC0zMi40LTQwLTMyLjQtMjIuNSAwLTM5LjEgMTIuOS0zOS43IDMwLjVsMTkuMSAwYzEuNi04LjQgOS40LTEzLjkgMjAtMTMuOSAxMyAwIDIwLjIgNiAyMC4yIDE3LjJsMCA3LjUtMjYuNCAxLjZjLTI0LjYgMS41LTM3LjkgMTEuNi0zNy45IDI5LjEgMCAxNy43IDEzLjcgMjkuNCAzMy40IDI5LjQgMTMuMyAwIDI1LjYtNi43IDMxLjItMTcuNGwuNCAwIDAgMTYuNCAxOS42IDAgMC02OCAuMSAwek01MTYgMjEwLjlsLTIxLjUgMC0yNC45IDgwLjYtLjQgMC0yNC45LTgwLjYtMjIuMyAwIDM1LjkgOTkuMy0xLjkgNmMtMy4yIDEwLjItOC41IDE0LjItMTcuOSAxNC4yLTEuNyAwLTQuOS0uMi02LjItLjNsMCAxNi40YzEuMiAuNCA2LjUgLjUgOC4xIC41IDIwLjcgMCAzMC40LTcuOSAzOC45LTMxLjhMNTE2IDIxMC45eiJdfSxfZ2U9e3ByZWZpeDoiZmFiIixpY29uTmFtZToic29sYW5hIixpY29uOls1MTIsNTEyLFtdLCJlODVlIiwiTTUxMC41IDM4NS4ybC04NC45IDg4LjdjLTEuOCAxLjktNC4xIDMuNS02LjYgNC41cy01LjIgMS42LTcuOSAxLjZMOC45IDQ4MGMtMS45IDAtMy44LS41LTUuNC0xLjZzLTIuOS0yLjUtMy42LTQuMi0xLTMuNi0uNy01LjUgMS4yLTMuNiAyLjUtNC45bDg0LjktODguN2MxLjgtMS45IDQuMS0zLjUgNi41LTQuNXM1LjEtMS42IDcuOC0xLjZsNDAyLjQgMGMxLjkgMCAzLjggLjUgNS40IDEuNnMyLjkgMi41IDMuNiA0LjIgMSAzLjYgLjcgNS41LTEuMiAzLjYtMi41IDQuOXpNNDI1LjcgMjA2LjZjLTEuOC0xLjktNC4xLTMuNS02LjYtNC41cy01LjItMS42LTcuOS0xLjZsLTQwMi40IDBjLTEuOSAwLTMuOCAuNS01LjQgMS42cy0yLjkgMi41LTMuNiA0LjItMSAzLjYtLjcgNS41IDEuMiAzLjYgMi41IDQuOWw4NC45IDg4LjdjMS44IDEuOSA0LjEgMy41IDYuNSA0LjVzNS4xIDEuNiA3LjggMS42bDQwMi40IDBjMS45IDAgMy44LS41IDUuNC0xLjZzMi45LTIuNSAzLjYtNC4yIDEtMy42IC43LTUuNS0xLjItMy42LTIuNS00LjlsLTg0LjktODguN3pNOC45IDE0Mi45bDQwMi40IDBjMi43IDAgNS40LS41IDcuOS0xLjZzNC43LTIuNiA2LjYtNC41bDg0LjktODguN2MxLjMtMS40IDIuMi0zLjEgMi41LTQuOXMuMS0zLjctLjctNS41LTItMy4yLTMuNi00LjItMy41LTEuNi01LjQtMS42TDEwMSAzMmMtMi43IDAtNS40IC41LTcuOCAxLjZzLTQuNyAyLjYtNi41IDQuNUwxLjcgMTI2LjhjLTEuMyAxLjQtMi4yIDMuMS0yLjUgNC45cy0uMSAzLjcgLjcgNS41IDIgMy4yIDMuNiA0LjIgMy41IDEuNiA1LjQgMS42eiJdfSxUZ2U9e3ByZWZpeDoiZmFiIixpY29uTmFtZToidHlwZXNjcmlwdCIsaWNvbjpbNDQ4LDUxMixbXSwiZTg0MCIsIk0xNi44IDMybDQxNC40IDBjOS4zIDAgMTYuOCA3LjUgMTYuOCAxNi44bDAgNDE0LjRjMCA5LjMtNy41IDE2LjgtMTYuOCAxNi44TDE2LjggNDgwQzcuNSA0ODAgMCA0NzIuNSAwIDQ2My4yTDAgNDguOEMwIDM5LjUgNy41IDMyIDE2LjggMzJ6TTI0OSAyNzAuM2wwLTM2LjctMTU5LjQgMCAwIDM2LjcgNTYuOSAwIDAgMTYzLjYgNDUuMyAwIDAtMTYzLjYgNTcuMiAwem0xOC4xIDE1OS4zYzcuMyAzLjcgMTUuOSA2LjUgMjUuOSA4LjRzMjAuNSAyLjggMzEuNSAyLjhjMTAuOCAwIDIxLTEgMzAuNy0zLjFzMTguMi01LjQgMjUuNS0xMC4xIDEzLjEtMTAuOSAxNy40LTE4LjQgNi40LTE3IDYuNC0yOC4yYzAtOC4xLTEuMi0xNS4yLTMuNy0yMS4zcy01LjktMTEuNS0xMC41LTE2LjMtMTAuMS05LTE2LjUtMTIuOC0xMy43LTcuMy0yMS43LTEwLjdjLTUuOS0yLjQtMTEuMi00LjgtMTUuOS03LjFzLTguNy00LjYtMTEuOS03LTUuOC00LjktNy42LTcuNS0yLjctNS43LTIuNy05YzAtMy4xIC44LTUuOCAyLjQtOC4zczMuOC00LjYgNi43LTYuNCA2LjUtMy4xIDEwLjctNC4xIDguOS0xLjUgMTQuMS0xLjVjMy43IDAgNy43IC4zIDExLjkgLjhzOC40IDEuNCAxMi42IDIuNiA4LjMgMi42IDEyLjMgNC40IDcuNyAzLjggMTEgNi4xbDAtNDEuOGMtNi44LTIuNi0xNC4zLTQuNS0yMi40LTUuOHMtMTcuNC0xLjktMjcuOS0xLjljLTEwLjcgMC0yMC44IDEuMS0zMC40IDMuNHMtMTggNS44LTI1LjIgMTAuNy0xMyAxMS0xNy4yIDE4LjUtNi4zIDE2LjUtNi4zIDI2LjljMCAxMy4zIDMuOSAyNC43IDExLjYgMzQuMXMxOS41IDE3LjQgMzUuMiAyMy45YzYuMiAyLjUgMTEuOSA1IDE3LjMgNy40czEwIDQuOSAxMy44IDcuNSA3IDUuNCA5LjIgOC41IDMuNCA2LjYgMy40IDEwLjVjMCAyLjktLjcgNS42LTIuMSA4cy0zLjUgNC42LTYuNCA2LjQtNi40IDMuMi0xMC43IDQuMy05LjMgMS41LTE1IDEuNWMtOS43IDAtMTkuNC0xLjctMjguOS01LjFzLTE4LjQtOC41LTI2LjYtMTUuM2wwIDQ0Ljd6Il19LExnZT17cHJlZml4OiJmYWIiLGljb25OYW1lOiJicmF2ZSIsaWNvbjpbNDQ4LDUxMixbXSwiZTYzYyIsIk0xNDUuNiAwbDE1NyAwIDQ0LjcgNTAuOHMzOS4zLTEwLjkgNTcuOCA3LjYgMzMuOCAzNC45IDMzLjggMzQuOWwtMTIgMjkuNSAxNS4zIDQzLjdzLTQ0LjkgMTcwLjItNTAuMSAxOTFjLTEwLjQgNDAuOS0xNy40IDU2LjgtNDYuOSA3Ny41cy04Mi45IDU2LjgtOTEuNiA2Mi4yYy0xLjkgMS4yLTMuOSAyLjUtNS45IDMuOS03LjUgNS4xLTE1LjggMTAuOC0yMy41IDEwLjhzLTE2LjEtNS43LTIzLjUtMTAuOGMtMi0xLjQtNC0yLjgtNS45LTMuOS04LjctNS41LTYyLjEtNDEuNS05MS42LTYyLjJzLTM2LjUtMzYuNi00Ni45LTc3LjVjLTUuMy0yMC44LTUwLjEtMTkxLTUwLjEtMTkxTDIxLjUgMTIyLjggOS4zIDkzLjNzMTUuMy0xNi40IDMzLjgtMzQuOSA1Ny44LTcuNiA1Ny44LTcuNkwxNDUuNiAwem03OC41IDQwNy42YzMuNyAwIDguOS00LjcgMTMtOC40IC42LS41IDEuMi0xLjEgMS43LTEuNSA0LjItMy43IDQ3LjgtMzcuNSA1MS0zOS44czUuNC02LjUgMS45LTguN2MtMi44LTEuNy0xMC01LjUtMjAuMy0xMC44LTMtMS42LTYuMy0zLjItOS43LTUtMTUuNC04LTM0LjUtMTQuNy0zNy41LTE0LjdzLTIyLjEgNi44LTM3LjUgMTQuN2MtMy41IDEuOC02LjcgMy41LTkuNyA1LTEwLjMgNS4zLTE3LjYgOS4xLTIwLjMgMTAuOC0zLjYgMi4yLTEuNCA2LjQgMS45IDguN3M0Ni44IDM2LjEgNTEgMzkuOGMuNSAuNSAxLjEgMSAxLjcgMS41IDQuMSAzLjcgOS4zIDguNCAxMyA4LjRsLS4yIDB6bTAtMTY1LjdjNC43IDAgMTcuNi0zIDI2LjQtNWwyLS41YzcuOC0xLjggNy4zLTYuMyA2LjQtMTMtLjEtLjgtLjItMS42LS4zLTIuNC0uNi02LjEtNS44LTMzLjEtOS4xLTUwLjMtMS4xLTUuOC0yLTEwLjUtMi40LTEyLjktMS41LTguMS0uNi05LjQgLjctMTEuMyAuMi0uMyAuNS0uNyAuNy0xLjEgMS40LTIuMyAxNi02LjIgMjcuOS05LjUgMi41LS43IDQuOC0xLjMgNi45LTEuOSAxMC42LTMgMzIuNC0uNiA0NC4yIC42IDEuOCAuMiAzLjQgLjQgNC43IC41IDkuNiAuOSAxMC40IDIuMyA3LjIgMy44LTIuMyAxLjEtMTYuMiA2LjMtMjguNyAxMC45LTQuNyAxLjgtOS4yIDMuNS0xMi44IDQuOC0xLjUgLjUtMyAxLjEtNC41IDEuNy0xMi41IDQuNi0yNy4yIDEwLTI4LjkgMTkuNC0xLjUgOC4zIDUuMiAxOS45IDExLjMgMzAuMyAxLjYgMi44IDMuMiA1LjUgNC42IDguMSA2LjMgMTEuOSA2LjUgMTMuMyA2LjEgMTguMS0uNCAzLjktMTQuNSAxMi43LTIyLjQgMTcuNi0xLjggMS4xLTMuMyAyLjEtNC4yIDIuNy0uOCAuNS0yLjEgMS40LTMuOCAyLjQtOC42IDUuMi0yNi4zIDE2LTI2LjMgMjIuNSAwIDcuOCAyNC42IDI4LjEgMzIuNCAzMy4yczI4LjkgMTYuMSAzNy45IDE3LjggMjMtOC41IDMxLjItMjMuOGM3LjctMTQuNCAxLjctMjguNS0zLjItNDBsLS45LTIuMmMtNC41LTEwLjYgMS45LTE3IDYuMi0yMS4zIC41LS41IDEtMSAxLjQtMS40bDQzLTQ1LjdjMS4zLTEuMyAyLjUtMi42IDMuNy0zLjggNS44LTUuNyAxMC44LTEwLjUgMTAuOC0yMi44IDAtMTQuOS01Ny41LTg0LjUtNTcuNS04NC41cy00OC41IDkuMy01NS4xIDkuM2MtNS4yIDAtMTUuMy0zLjUtMjUuOC03LjEtMi43LS45LTUuNC0xLjktOC0yLjctMTMtNC4zLTIxLjgtNC40LTIxLjgtNC40cy04LjcgMC0yMS44IDQuNGMtMi43IC45LTUuNCAxLjgtOCAyLjctMTAuNSAzLjYtMjAuNiA3LjEtMjUuOCA3LjEtNi41IDAtNTUuMS05LjMtNTUuMS05LjNzLTU3LjUgNjkuNi01Ny41IDg0LjVjMCAxMi4zIDQuOSAxNy4xIDEwLjggMjIuOCAxLjIgMS4yIDIuNSAyLjQgMy43IDMuOGw0My4xIDQ1LjhjLjQgLjUgLjkgLjkgMS40IDEuNCA0LjMgNC4zIDEwLjYgMTAuNyA2LjIgMjEuM2wtLjkgMi4yYy00LjkgMTEuNS0xMSAyNS42LTMuMiA0MCA4LjIgMTUuMyAyMi4yIDI1LjUgMzEuMiAyMy44czMwLjEtMTIuNyAzNy45LTE3LjggMzIuNC0yNS40IDMyLjQtMzMuMmMwLTYuNS0xNy43LTE3LjMtMjYuMy0yMi41LTEuNy0xLTMuMS0xLjktMy44LTIuNC0uOS0uNi0yLjQtMS41LTQuMi0yLjctNy45LTQuOS0yMi0xMy43LTIyLjQtMTcuNi0uNC00LjgtLjMtNi4yIDYuMS0xOC4xIDEuMy0yLjUgMi45LTUuMyA0LjYtOC4xIDYtMTAuNCAxMi44LTIyIDExLjMtMzAuMy0xLjctOS40LTE2LjQtMTQuOC0yOC45LTE5LjQtMS42LS42LTMuMS0xLjEtNC41LTEuNy0zLjYtMS40LTguMS0zLjEtMTIuOC00LjhsLS4xIDBjLTEyLjUtNC43LTI2LjQtOS45LTI4LjctMTAuOS0zLjItMS41LTIuMy0yLjggNy4yLTMuOCAxLjMtLjEgMi45LS4zIDQuNy0uNSAxMS44LTEuMyAzMy42LTMuNiA0NC4yLS42IDIuMSAuNiA0LjQgMS4yIDYuOSAxLjkgMTEuOSAzLjIgMjYuNSA3LjIgMjcuOSA5LjUgLjIgLjQgLjUgLjcgLjcgMS4xIDEuMyAxLjkgMi4yIDMuMiAuNyAxMS4zLS40IDIuNC0xLjMgNy4xLTIuNCAxMi45LTMuMyAxNy4yLTguNSA0NC4yLTkuMSA1MC4zLS4xIC44LS4yIDEuNy0uMyAyLjQtLjggNi43LTEuNCAxMS4yIDYuNCAxM2wyIC41YzguOCAyIDIxLjggNSAyNi40IDVsMC0uMXoiXX0sJGdlPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImV0c3kiLGljb246WzM4NCw1MTIsW10sImYyZDciLCJNMzg0IDM0OGMtMS44IDEwLjctMTMuOCAxMTAtMTUuNSAxMzItMTE3LjktNC4zLTIxOS45LTQuNy0zNjguNSAwbDAtMjUuNWM0NS41LTguOSA2MC42LTggNjEtMzUuMiAxLjgtNzIuMyAzLjUtMjQ0LjEgMC0zMjItMS0yOC41LTEyLjEtMjYuOC02MS0zNkwwIDM1LjhjNzMuOSAyLjQgMjU1LjkgOC42IDM2My0zLjgtMy41IDM4LjItNy44IDEyNi41LTcuOCAxMjYuNWwtMjMuMiAwQzMyMC45IDExNS43IDMxMy4yIDY4IDI3Ny4zIDY4bC0xMzcgMGMtMTAuMiAwLTEwLjcgMy41LTEwLjcgOS44bDAgMTYzLjhjNTggLjUgODguNS0yLjUgODguNS0yLjUgMjkuOC0xIDI3LjYtOC41IDQwLjctNjUuM2wyNS44IDBjLTQuNCAxMDEuNC0zLjkgNjEuOC0xLjggMTYwLjNMMjU3IDMzNGMtOS4yLTQwLjEtOS4xLTYxLTM5LjUtNjEuNSAwIDAtMjEuNS0yLTg4LTJsMCAxMzljMCAyNiAxNC4zIDM4LjMgNDQuMyAzOC4zbDg5LjMgMGM2My42IDAgNjYuNi0yNSA5OC43LTk5LjhsMjIuMiAweiJdfSxBZ2U9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiYnRjIixpY29uOlszODQsNTEyLFtdLCJmMTVhIiwiTTMxMC40IDI0Mi42YzI3LjctMTQuMiA0NS40LTM5LjQgNDEuMy04MS4zLTUuNC01Ny40LTUyLjUtNzYuNi0xMTQuOC04MS45bDAtNzkuNC00OC41IDAgMCA3Ny4yYy0xMi42IDAtMjUuNSAuMy0zOC40IC42bDAtNzcuOC00OC41IDAgMCA3OS40Yy0xNy44IC41LTM4LjYgLjMtOTcuNCAwbDAgNTEuN2MzOC4zLS43IDU4LjQtMy4xIDYzIDIxLjRsMCAyMTcuNGMtMi45IDE5LjUtMTguNSAxNi43LTUzLjMgMTYuMUw0IDQ0My43Yzg4LjUgMCA5Ny40IC4zIDk3LjQgLjNsMCA2OCA0OC41IDAgMC02Ny4xYzEzLjIgLjMgMjYuMiAuMyAzOC40IC4zbDAgNjYuNyA0OC41IDAgMC02OGM4MS4zLTQuNCAxMzUuNi0yNC45IDE0Mi45LTEwMS41IDUuNy02MS40LTIzLjMtODguOS02OS4zLTk5Ljl6TTE1MC44IDEzNC42YzI3LjQgMCAxMTMuMS04LjUgMTEzLjEgNDguNSAwIDU0LjUtODUuNyA0OC4yLTExMy4xIDQ4LjJsMC05Ni43em0wIDI1MS44bDAtMTA2LjVjMzIuOCAwIDEzMy4xLTkuMSAxMzMuMSA1My4zIDAgNjAuMi0xMDAuNCA1My4zLTEzMy4xIDUzLjN6Il19LERnZT17cHJlZml4OiJmYWIiLGljb25OYW1lOiJhZG4iLGljb246WzUxMiw1MTIsW10sImYxNzAiLCJNMjU2IDE2Ny41bDY0LjkgOTguOC0xMjkuOCAwIDY0LjktOTguOHpNOCAyNTZhMjQ4IDI0OCAwIDEgMSA0OTYgMCAyNDggMjQ4IDAgMSAxIC00OTYgMHptMzk2LjIgODIuN2wtMTQ4LjItMjIzLjItMTQ4LjIgMjIzLjIgMzAuNCAwIDMzLjYtNTEuNyAxNjguNiAwIDMzLjYgNTEuNyAzMC4yIDB6Il19LEVnZT17cHJlZml4OiJmYWIiLGljb25OYW1lOiJzcXVhcmUteC10d2l0dGVyIixpY29uOls0NDgsNTEyLFtdLCJlNjFhIiwiTTY0IDMyQzI4LjcgMzIgMCA2MC43IDAgOTZMMCA0MTZjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMzIwIDBjMzUuMyAwIDY0LTI4LjcgNjQtNjRsMC0zMjBjMC0zNS4zLTI4LjctNjQtNjQtNjRMNjQgMzJ6bTI5Ny4xIDg0bC0xMDMuOCAxMTguNiAxMjIuMSAxNjEuNC05NS42IDAtNzQuOC05Ny45LTg1LjcgOTcuOS00Ny41IDAgMTExLTEyNi45LTExNy4xLTE1My4xIDk4IDAgNjcuNyA4OS41IDc4LjItODkuNSA0Ny41IDB6TTMyMy4zIDM2Ny42bC0xNjkuOS0yMjQuNy0yOC4zIDAgMTcxLjggMjI0LjcgMjYuNCAweiJdfSxQZ2U9e3ByZWZpeDoiZmFiIixpY29uTmFtZToic3F1YXJlLWZvbnQtYXdlc29tZSIsaWNvbjpbNDQ4LDUxMixbXSwiZTVhZCIsIk02NCAzMkMyOC43IDMyIDAgNjAuNyAwIDk2TDAgNDE2YzAgMzUuMyAyOC43IDY0IDY0IDY0bDMyMCAwYzM1LjMgMCA2NC0yOC43IDY0LTY0bDAtMzIwYzAtMzUuMy0yOC43LTY0LTY0LTY0TDY0IDMyem05MCAxMjJjMCA5LjMtNC44IDE3LjQtMTIuMSAyMmwxODguOSAwYzcuMyAwIDEzLjIgNS45IDEzLjIgMTMuMiAwIDEuOC0uNCAzLjctMS4xIDUuNEwzMTIgMjY0IDM0Mi45IDMzMy40Yy43IDEuNyAxLjEgMy41IDEuMSA1LjQgMCA3LjMtNS45IDEzLjItMTMuMiAxMy4ybC0xODYuOCAwIDAgMzItMzIgMCAwLTIwOS41Yy02LjEtNC44LTEwLTEyLjItMTAtMjAuNSAwLTE0LjQgMTEuNi0yNiAyNi0yNnMyNiAxMS42IDI2IDI2eiJdfSxJZ2U9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiZm9ydW1iZWUiLGljb246WzQ0OCw1MTIsW10sImYyMTEiLCJNNS44IDMwOS43QzIgMjkyLjcgMCAyNzUuNSAwIDI1OC4zIDAgMTM1IDk5LjggMzUgMjIzLjEgMzUgMjM5LjcgMzUgMjU2LjQgMzcgMjcyLjQgNDAuNSAxNDkgODcuNSA1MS45IDE4NiA1LjggMzA5Ljd6TTM5OC43IDEyMC41Yy0xMy43LTE3LjUtMjkuNy0zMi43LTQ3LjgtNDUuMy0xNDkuNiA0NC4zLTI2Ni4zIDE2Mi4xLTMwOS43IDMxMiAxMi41IDE4LjEgMjggMzUuNiA0NS4yIDQ5IDQzLjEtMTUxLjMgMTYxLjItMjcxLjcgMzEyLjMtMzE1Ljd6bTE1LjggMjUyLjdjMTUuMi0yNS4xIDI1LjQtNTMuNyAyOS41LTgyLjgtNzkuNCA0Mi45LTE0NSAxMTAuNi0xODcuNiAxOTAuMyAzMC00LjQgNTguOS0xNS4zIDg0LjYtMzEuMyAzNSAxMy4xIDcwLjkgMjQuMyAxMDcgMzMuNi05LjMtMzYuNS0yMC40LTc0LjUtMzMuNS0xMDkuOHptMjkuNy0xNDUuNWMtMi42LTE5LjUtNy45LTM4LjctMTUuOC01Ni44LTEzNy45IDQ1LjgtMjQ2LjQgMTU2LjYtMjkxLjMgMjk1LjEgMTguMSA3LjYgMzcgMTIuNSA1Ni42IDE1LjIgNDYuMy0xMTQuMSAxMzYuOC0yMDYuOCAyNTAuNS0yNTMuNXoiXX0sRkU9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiNDItZ3JvdXAiLGljb246WzY0MCw1MTIsWyJpbm5vc29mdCJdLCJlMDgwIiwiTTMyMCA5NmwwIDMyMGMyMSAwIDQxLjgtNC4xIDYxLjItMTIuMnMzNy0xOS44IDUxLjktMzQuNyAyNi42LTMyLjUgMzQuNy01MS45IDEyLjItNDAuMiAxMi4yLTYxLjItNC4xLTQxLjgtMTIuMi02MS4yLTE5LjgtMzcuMS0zNC43LTUxLjktMzIuNS0yNi42LTUxLjktMzQuNy00MC4yLTEyLjItNjEuMi0xMi4yek0wIDI1NkwxNjAgNDE2IDMyMCAyNTYgMTYwIDk2IDAgMjU2em00ODAgMGMwIDIxIDQuMSA0MS44IDEyLjIgNjEuMnMxOS44IDM3IDM0LjcgNTEuOSAzMi41IDI2LjYgNTEuOSAzNC43IDQwLjIgMTIuMiA2MS4yIDEyLjJsMC0zMjBjLTQyLjQgMC04My4xIDE2LjktMTEzLjEgNDYuOVM0ODAgMjEzLjYgNDgwIDI1NnoiXX0sTmdlPUZFLEZnZT17cHJlZml4OiJmYWIiLGljb25OYW1lOiJzdHVtYmxldXBvbi1jaXJjbGUiLGljb246WzUxMiw1MTIsW10sImYxYTMiLCJNMjY0IDhhMjQ4IDI0OCAwIDEgMCAwIDQ5NiAyNDggMjQ4IDAgMSAwIDAtNDk2em0wIDE3Ny41Yy05LjggMC0xNy44IDgtMTcuOCAxNy44bDAgMTA2LjljMCA0MC45LTMzLjkgNzMuOS03NC45IDczLjktNDEuNCAwLTc0LjktMzMuNS03NC45LTc0LjlsMC00Ni41IDU3LjMgMCAwIDQ1LjhjMCAxMCA4IDE3LjggMTcuOCAxNy44czE3LjgtNy45IDE3LjgtMTcuOGwwLTEwOC40YzAtNDAgMzQuMi03Mi4xIDc0LjctNzIuMSA0MC43IDAgNzQuNyAzMi4zIDc0LjcgNzIuNmwwIDIzLjctMzQuMSAxMC4xLTIyLjktMTAuNyAwLTIwLjZjLjEtOS42LTcuOS0xNy42LTE3LjctMTcuNnpNNDMxLjYgMzA5LjFjMCA0MS40LTMzLjUgNzQuOS03NC45IDc0LjktNDEuMiAwLTc0LjktMzMuMi03NC45LTc0LjJsMC00Ni44IDIyLjkgMTAuNyAzNC4xLTEwLjEgMCA0Ny4xYzAgOS44IDggMTcuNiAxNy44IDE3LjZzMTcuOC03LjkgMTcuOC0xNy42bDAtNDggNTcuMyAwYy0uMSA0NS45LS4xIDQ2LjQtLjEgNDYuNHoiXX0sT2dlPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6InN5bWZvbnkiLGljb246WzUxMiw1MTIsW10sImY4M2QiLCJNMjU2IDhhMjQ4IDI0OCAwIDEgMCAwIDQ5NiAyNDggMjQ4IDAgMSAwIDAtNDk2ek0zODkuNyAxNTEuNWMtMTEuNSAuNC0xOS40LTYuNC0xOS44LTE2LjktLjMtOS4yIDYuNy0xMy40IDYuNS0xOC45LS4yLTYuNS0xMC4yLTYuOC0xMi45LTYuNy0zOS44IDEuMy00OC42IDU3LTU4LjkgMTEzLjggMjEuNCAzLjIgMzYuNi0uNyA0NS4xLTYuMiAxMi03LjctMy4zLTE1LjctMS40LTI0LjYgNC0xOC4yIDMyLjYtMTkgMzIgNS4zLS40IDE3LjktMjUuOSA0MS44LTc3LjYgMzUuNy0xMC44IDU5LjUtMTguNCAxMTUtNTguMiAxNjEuNy0yOSAzNC41LTU4LjQgMzkuOC03MS42IDQwLjMtMjQuNiAuOS00MS0xMi4zLTQxLjYtMjkuOC0uNi0xNyAxNC40LTI2LjMgMjQuMy0yNi42IDIxLjktLjggMzAuMSAyNS43IDE0LjkgMzQtMTIuMSA5LjcgLjEgMTIuNiAyLjEgMTIuNiAxMC40LS40IDE3LjMtNS41IDIyLjItOSAyNC0yMCAzMy4yLTU0LjkgNDUuNC0xMTguMyA4LjItNDkuNyAxNy03OCAxOC4yLTgyLTE2LjktMTIuNy0yNy4xLTI4LjYtNDkuOC0zNC43LTE1LjYtNC4yLTI1LjEtLjYtMzEuOCA3LjgtNy45IDEwLTUuMyAyMyAyLjQgMzAuN2wxMi42IDE0YzE1LjUgMTcuOSAyNCAzMS45IDIwLjggNTAuNi01LjEgMjkuOS00MC43IDUyLjktODIuOSAzOS45LTM2LTExLjEtNDIuNy0zNi42LTM4LjQtNTAuNiA3LjUtMjQuMiA0Mi40LTExLjcgMzQuNiAxMy42LTIuOCA4LjYtNC45IDguNy02LjMgMTMuMS00LjYgMTQuOCA0MS44IDI4LjQgNTEtMS40IDQuNS0xNC41LTUuMy0yMS43LTIyLjItMzkuOS0yOC41LTMxLjctMTYtNjUuNSAyLjktNzkuNyA1Mi44LTM5LjQgMTAwLjUgMTcuNSAxMTAuNiAyNS44IDM3LjItMTA5IDEwMC41LTEwNS41IDEwMi40LTEwNS41IDI1LjItLjggNDQuMiAxMC42IDQ0LjggMjguNiAuMiA3LjctNC4yIDIyLjYtMTkuNSAyMy4xeiJdfSxSZ2U9e3ByZWZpeDoiZmFiIixpY29uTmFtZToic2FsZXNmb3JjZSIsaWNvbjpbNjQwLDUxMixbXSwiZjgzYiIsIk0yNDkuNCAyNDUuNmwtMjYuNCAwYy43LTUuMiAzLjMtMTQuMSAxMy42LTE0LjEgNi44IDAgMTIgMy44IDEyLjcgMTQuMXpNMzg2IDIzMS44Yy0uNSAwLTE0LjEtMS44LTE0LjEgMjBzMTMuNiAyMCAxNC4xIDIwYzEzIDAgMTQuMS0xMy41IDE0LjEtMjAgMC0yMS44LTEzLjctMjAtMTQuMS0yMHpNMTQyLjggMjU1LjVjLTEuMSAuOS0yIDItMi41IDMuMnMtLjggMi43LS43IDRjMCA0LjggMi4xIDYuMSAzLjMgNyA0LjcgMy43IDE1LjEgMi4xIDIwLjkgMWwwLTE2LjljLTUuMy0xLjEtMTYuNy0yLTIwLjkgMS42ek02NDAuNSAyMzJjMCA4Ny42LTgwIDE1NC40LTE2NS40IDEzNi40LTE4LjQgMzMtNzAuNyA3MC44LTEzMi4yIDQxLjYtNDEuMiA5Ni0xNzcuOSA5Mi4yLTIxMy44LTUuMi0xMTkuNyAyMy45LTE3OC44LTEzOC40LTc1LjMtMTk5LjMtMzQuOC03OS40IDIyLjYtMTczLjYgMTE0LjMtMTczLjYgMTkuMSAwIDM3LjkgNC40IDU1IDEyLjlzMzIgMjAuNyA0My42IDM1LjhjMjAuNy0yMS40IDQ5LjQtMzQuOCA4MS4xLTM0LjggNDIuMyAwIDc5IDIzLjUgOTguOCA1OC42IDkyLjgtNDAuNyAxOTMuOCAyOC4yIDE5My44IDEyNy41ek0xMjAuOSAyNjMuOGMwLTExLjgtMTEuNy0xNS4yLTE3LjktMTcuMi01LjMtMi4xLTEzLjQtMy41LTEzLjQtOC45IDAtOS41IDE3LTYuNyAyNS4yLTIuMSAwIDAgMS4yIC43IDEuNi0uNSAuMi0uNyAyLjQtNi42IDIuNi03LjMgLjEtLjMgLjEtLjYtLjEtLjhzLS40LS41LS42LS42Yy0xMi4zLTcuNi00MC43LTguNS00MC43IDEyLjcgMCAxMi41IDExLjUgMTUuNCAxNy45IDE3LjIgNC43IDEuNiAxMy4yIDMgMTMuMiA4LjcgMCA0LTMuNSA3LjEtOS4yIDcuMS02LjkgMC0xMy41LTIuMi0xOS02LjMtLjUtLjItMS40LS43LTEuNiAuN2wtMi40IDcuNWMtLjUgLjkgLjIgMS4yIC4yIDEuNCAxLjggMS40IDEwLjMgNi42IDIyLjggNi42IDEzLjIgMCAyMS40LTcuMSAyMS40LTE4LjFsMCAwem0zMi00Mi42Yy0xMC4xIDAtMTguNyAzLjItMjEuNCA1LjItLjEgLjEtLjIgLjItLjMgLjNzLS4xIC4yLS4xIC40IDAgLjMgMCAuNCAuMSAuMyAuMiAuNGwyLjYgNy4xYy4xIC4yIC4yIC41IC41IC42cy41IC4yIC43IC4xYy42IDAgNi44LTQgMTYuOS00IDQgMCA3LjEgLjcgOS4yIDIuNCAzLjYgMi44IDMuMSA4LjMgMy4xIDEwLjYtNC44LS4zLTE5LjEtMy40LTI5LjQgMy44LTIuMyAxLjYtNC4zIDMuOC01LjUgNi4zcy0xLjkgNS40LTEuOCA4LjJjMCA1LjkgMS41IDEwLjQgNi42IDE0LjQgMTIuMiA4LjIgMzYuMyAyIDM4LjEgMS40IDEuNi0uMyAzLjUtLjcgMy41LTEuOWwwLTMzLjljMC00LjYgLjMtMjEuNi0yMi44LTIxLjZsMCAuMXptNDYuNi0yMWMwLS4yIDAtLjMtLjEtLjVzLS4xLS4zLS4zLS40LS4yLS4yLS40LS4zLS4zLS4xLS41LS4xbC05LjggMGMtLjIgMC0uMyAwLS41IC4xcy0uMyAuMS0uNCAuMy0uMiAuMi0uMyAuNC0uMSAuMy0uMSAuNWwwIDc5YzAgLjIgMCAuMyAuMSAuNXMuMSAuMyAuMyAuNCAuMiAuMiAuNCAuMyAuMyAuMSAuNSAuMWw5LjkgMGMuMiAwIC4zIDAgLjUtLjFzLjMtLjEgLjQtLjMgLjItLjIgLjMtLjQgLjEtLjMgLjEtLjVsLS4xLTc5em01NS43IDI4LjljLTIuMS0yLjMtNi44LTcuNS0xNy42LTcuNS0zLjUgMC0xNC4yIC4yLTIwLjcgOC45LTYuNCA3LjYtNi42IDE4LjEtNi42IDIxLjQgMCAzLjEgLjIgMTQuMyA3LjEgMjEuMiAyLjYgMi45IDkuMSA4LjIgMjIuOCA4LjIgMTAuOCAwIDE2LjUtMi4zIDE4LjYtMy44IC41LS4yIC43LS43IC4yLTEuOWwtMi4zLTYuOGMtLjEtLjMtLjMtLjUtLjYtLjZzLS41LS4yLS44LS4xYy0yLjYgLjktNi4zIDIuOC0xNS4zIDIuOC0xNy40IDAtMTYuOC0xNC43LTE2LjktMTYuN2wzNy4yIDBjLjMgMCAuNS0uMSAuNy0uM3MuNC0uNCAuNC0uN2MtLjMgMCAyLjEtMTQuNy02LjEtMjQuMmwwIDB6bTM2LjcgNTIuN2MxMy4yIDAgMjEuNC03LjEgMjEuNC0xOC4xIDAtMTEuOC0xMS43LTE1LjItMTcuOS0xNy4yLTQuMS0xLjctMTMuNC0zLjQtMTMuNC04LjkgMC0zLjggMy4zLTYuNCA4LjUtNi40IDUuOCAuMSAxMS41IDEuNiAxNi43IDQuMiAwIDAgMS4yIC43IDEuNi0uNSAuMi0uNyAyLjQtNi42IDIuNi03LjMgLjEtLjMgLjEtLjYtLjEtLjhzLS40LS41LS42LS42Yy03LjktNC45LTE2LjctNC45LTIwLjItNC45LTEyIDAtMjAuNSA3LjMtMjAuNSAxNy42IDAgMTIuNSAxMS41IDE1LjQgMTcuOSAxNy4yIDYuMSAyIDEzLjIgMy4zIDEzLjIgOC43IDAgNC0zLjUgNy4xLTkuMiA3LjEtNi45IDAtMTMuNS0yLjItMTktNi40LS4xLS4xLS4zLS4yLS41LS4ycy0uNCAwLS41IC4xLS4zIC4yLS40IC4zLS4yIC4zLS4yIC41bC0yLjMgNy41Yy0uNSAuOSAuMiAxLjIgLjIgMS40IDEuNyAxLjQgMTAuMyA2LjYgMjIuOCA2LjZsMCAwek0zNTcuNiAyMjRjMC0uNy0uMi0xLjItMS4yLTEuMmwtMTEuOCAwYzAtLjEgLjktOC45IDQuNS0xMi41IDQuMi00LjIgMTEuOC0xLjYgMTItMS42IDEuMiAuNSAxLjQgMCAxLjYtLjVsMi44LTcuOGMuNy0uOSAwLTEuMi0uMi0xLjQtNS4xLTItMTcuNC0yLjktMjQuNSA0LjItNS41IDUuNS03IDEzLjktOCAxOS41bC04LjUgMGMtLjMgMC0uNiAuMi0uOCAuNHMtLjMgLjUtLjQgLjhsLTEuNCA3LjhjMCAuNyAuMiAxLjIgMS4yIDEuMmw4LjIgMGMtOC41IDQ3LjktOC43IDUwLjItMTAuMyA1NS41LTEuMSAzLjYtMy4zIDYuOS01LjkgNy44LS4xIDAtMy45IDEuNy05LjYtLjIgMCAwLS45LS41LTEuNCAuNy0uMiAuNy0yLjYgNi44LTIuOCA3LjVzMCAxLjQgLjUgMS40YzUuMSAyIDEzIDEuOCAxNy45IDAgNi4zLTIuMyA5LjctNy45IDExLjUtMTIuOSAyLjgtNy43IDIuOC05LjggMTEuOC01OS43bDEyLjIgMGMuMyAwIC42LS4yIC44LS40cy4zLS41IC40LS44bDEuNC03Ljh6TTQxMSAyNDBjLS42LTEuNy01LjEtMTguMS0yNS4yLTE4LjEtMTUuMiAwLTIzIDEwLTI1LjIgMTguMS0xIDMtMy4yIDE0IDAgMjMuNSAuMSAuMyA0LjQgMTguMSAyNS4yIDE4LjEgMTUgMCAyMi45LTkuNiAyNS4yLTE4LjEgMy4yLTkuNiAxLTIwLjUgMC0yMy41em00NS40LTE2LjdjLTUtMS43LTE2LjYtMS45LTIyLjEgNS40bDAtNC41YzAtLjIgMC0uMy0uMS0uNXMtLjEtLjMtLjMtLjQtLjItLjItLjQtLjMtLjMtLjEtLjUtLjFsLTkuNCAwYy0uMiAwLS4zIDAtLjUgLjFzLS4zIC4xLS40IC4zLS4yIC4yLS4zIC40LS4xIC4zLS4xIC41bDAgNTUuM2MwIC4yIDAgLjMgLjEgLjVzLjEgLjMgLjMgLjQgLjIgLjIgLjQgLjMgLjMgLjEgLjUgLjFsOS42IDBjLjIgMCAuMyAwIC41LS4xcy4zLS4xIC40LS4zIC4yLS4yIC4zLS40IC4xLS4zIC4xLS41bDAtMjcuOGMwLTIuOSAuMS0xMS40IDQuNS0xNS4xIDQuOS00LjkgMTItMy40IDEzLjQtMy4xIC4zIDAgLjYtLjEgLjgtLjNzLjQtLjQgLjYtLjdjMS4yLTIuNiAyLjItNS4zIDMuMS04IC4xLS4zIC4xLS41IDAtLjhzLS4zLS41LS41LS42bDAgMHptNDYuOCA1NC4xbC0yLjEtNy4zYy0uNS0xLjItMS40LS43LTEuNC0uNy00LjIgMS44LTEwLjEgMS45LTExLjMgMS45LTQuNiAwLTE3LjItMS4xLTE3LjItMTkuOCAwLTYuMiAxLjgtMTkuOCAxNi41LTE5LjggMy45LS4xIDcuOCAuNSAxMS41IDEuNiAwIDAgLjkgLjUgMS4yLS43IC45LTIuNiAxLjYtNC41IDIuNi03LjUgLjItLjktLjUtMS4yLS43LTEuMi0xMS42LTMuOS0yMi4zLTIuNS0yNy44IDAtMS42IC43LTE2LjIgNi41LTE2LjIgMjcuNSAwIDIuOS0uNiAzMC4xIDI4LjkgMzAuMSA1LjMgMCAxMC42LTEgMTUuNS0yLjggLjItLjIgLjQtLjQgLjUtLjZzLjEtLjUgMC0uOGwwIDB6bTUzLjktMzkuNWMtLjgtMy01LjQtMTYuMi0yMi4zLTE2LjItMTYgMC0yMy41IDEwLjEtMjUuNiAxOC42LTEuMiAzLjgtMS43IDcuOC0xLjcgMTEuOCAwIDI1LjkgMTguOCAyOS40IDI5LjkgMjkuNCAxMC44IDAgMTYuNS0yLjMgMTguNi0zLjggLjUtLjIgLjctLjcgLjItMS45bC0yLjQtNi44Yy0uMS0uMy0uMy0uNS0uNi0uNnMtLjYtLjItLjgtLjFjLTIuNiAuOS02LjMgMi44LTE1LjMgMi44LTE3LjQgMC0xNi45LTE0LjctMTYuOS0xNi43bDM3LjIgMGMuMyAwIC41LS4xIC43LS4zcy40LS40IC40LS43Yy0uMiAwIC45LTcuMS0xLjQtMTUuNWwwIDB6bS0yMy4zLTYuNGMtMTAuMyAwLTEzIDktMTMuNiAxNC4xbDI2LjQgMGMtLjktMTEuOS03LjYtMTQuMS0xMi43LTE0LjFsMCAweiJdfSxCZ2U9e3ByZWZpeDoiZmFiIixpY29uTmFtZToic291cmNldHJlZSIsaWNvbjpbNDQ4LDUxMixbXSwiZjdkMyIsIk00MjcuNCAyMDNjMC0xMTIuMS05MC45LTIwMy0yMDMtMjAzLTExMi4xLS4yLTIwMyA5MC42LTIwMy4yIDIwMi42LS4xIDQzIDEzLjUgODQuOCAzOC43IDExOS42czYwLjkgNjAuNiAxMDEuOCA3My44bDAgMTAxLjdjMCAzLjggMS41IDcuNCA0LjIgMTAuMXM2LjMgNC4yIDEwLjEgNC4ybDk2LjQgMGMzLjggMCA3LjQtMS41IDEwLjEtNC4yczQuMi02LjMgNC4yLTEwLjFsMC0xMDEuNmM0MC44LTEzLjIgNzYuNS0zOSAxMDEuNy03My43czM4LjktNzYuNSAzOS0xMTkuNHptLTI3MS42IDBjMC05MC44IDEzNy4zLTkwLjggMTM3LjMgMC0uMSA4OS45LTEzNy4zIDkxLTEzNy4zIDB6Il19LEhnZT17cHJlZml4OiJmYWIiLGljb25OYW1lOiJsaW5rZWRpbi1pbiIsaWNvbjpbNDQ4LDUxMixbXSwiZjBlMSIsIk0xMDAuMyA0NDhsLTkyLjkgMCAwLTI5OS4xIDkyLjkgMCAwIDI5OS4xek01My44IDEwOC4xQzI0LjEgMTA4LjEgMCA4My41IDAgNTMuOCAwIDM5LjUgNS43IDI1LjkgMTUuOCAxNS44czIzLjgtMTUuOCAzOC0xNS44IDI3LjkgNS43IDM4IDE1LjggMTUuOCAyMy44IDE1LjggMzhjMCAyOS43LTI0LjEgNTQuMy01My44IDU0LjN6TTQ0Ny45IDQ0OGwtOTIuNyAwIDAtMTQ1LjZjMC0zNC43LS43LTc5LjItNDguMy03OS4yLTQ4LjMgMC01NS43IDM3LjctNTUuNyA3Ni43bDAgMTQ4LjEtOTIuOCAwIDAtMjk5LjEgODkuMSAwIDAgNDAuOCAxLjMgMGMxMi40LTIzLjUgNDIuNy00OC4zIDg3LjktNDguMyA5NCAwIDExMS4zIDYxLjkgMTExLjMgMTQyLjNsMCAxNjQuMy0uMSAweiJdfSxxZ2U9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiaHRtbDUiLGljb246WzM4NCw1MTIsW10sImYxM2IiLCJNMCAzMkwzNC45IDQyNy44IDE5MS41IDQ4MCAzNDkuMSA0MjcuOCAzODQgMzIgMCAzMnpNMzA4LjIgMTU5LjlsLTE4My44IDAgNC4xIDQ5LjQgMTc1LjYgMC0xMy42IDE0OC40LTk3LjkgMjcgMCAuMy0xLjEgMC05OC43LTI3LjMtNi03NS44IDQ3LjcgMCAzLjUgMzguMSA1My41IDE0LjUgNTMuNy0xNC41IDYtNjIuMi0xNjYuOSAwLTEyLjgtMTQ1LjYgMjQxLjEgMC00LjQgNDcuN3oiXX0sVmdlPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6InJ1c3QiLGljb246WzUxMiw1MTIsW10sImUwN2EiLCJNNTA4LjUgMjQ5LjhsLTIxLjgtMTMuNWMtLjItMi0uMy0zLjktLjUtNS45bDE4LjctMTcuNWMuOS0uOSAxLjYtMS45IDItMy4xcy41LTIuNSAuMi0zLjctLjgtMi40LTEuNi0zLjMtMS44LTEuNy0zLTIuMWwtMjQtOWMtLjUtMS45LTEuMS0zLjgtMS43LTUuNmwxNS0yMC44Yy43LTEgMS4yLTIuMiAxLjMtMy40czAtMi41LS41LTMuNy0xLjItMi4yLTIuMi0yLjktMi4xLTEuMy0zLjQtMS41bC0yNS40LTQuMmMtLjktMS43LTEuOC0zLjQtMi43LTUuMmwxMC43LTIzLjRjLjUtMS4xIC43LTIuNCAuNi0zLjZzLS41LTIuNC0xLjItMy41LTEuNi0xLjktMi44LTIuNS0yLjQtLjgtMy42LS44bC0yNS44IC45Yy0xLjItMS41LTIuNC0yLjktMy42LTQuNEw0MzkgODEuOGMuMy0xLjIgLjMtMi41LS4xLTMuN3MtMS0yLjMtMS45LTMuMi0yLTEuNS0zLjItMS45LTIuNS0uNC0zLjctLjFMNDA1IDc4LjljLTEuNC0xLjItMi45LTIuNC00LjQtMy42bC45LTI1LjhjLjEtMS4zLS4yLTIuNS0uOC0zLjZzLTEuNC0yLjEtMi41LTIuOC0yLjItMS4xLTMuNS0xLjItMi41IC4xLTMuNyAuNkwzNjcuNyA1My4yYy0xLjctLjktMy40LTEuOC01LjEtMi43bC00LjItMjUuNGMtLjItMS4yLS43LTIuNC0xLjUtMy40cy0xLjgtMS43LTIuOS0yLjItMi40LS43LTMuNy0uNS0yLjQgLjYtMy40IDEuM0wzMjYgMzUuM2MtMS45LS42LTMuOC0xLjEtNS42LTEuN2wtOS0yNGMtLjQtMS4yLTEuMi0yLjItMi4xLTNzLTIuMS0xLjQtMy4zLTEuNi0yLjUtLjItMy43IC4yLTIuMyAxLjEtMy4xIDJMMjgxLjYgMjUuOWMtMi0uMi0zLjktLjQtNS45LS41TDI2Mi4zIDMuNWMtLjctMS4xLTEuNi0xLjktMi43LTIuNnMtMi4zLS45LTMuNi0uOS0yLjUgLjMtMy42IC45LTIgMS41LTIuNyAyLjZMMjM2LjIgMjUuM2MtMiAuMi0zLjkgLjMtNS45IC42TDIxMi45IDcuMWMtLjktLjktMS45LTEuNi0zLjEtMnMtMi41LS41LTMuNy0uMi0yLjQgLjgtMy4zIDEuNi0xLjcgMS44LTIuMSAzbC05IDI0Yy0xLjkgLjYtMy44IDEuMS01LjcgMS43bC0yMC44LTE1Yy0xLS43LTIuMi0xLjItMy40LTEuM3MtMi41IDAtMy43IC41LTIuMiAxLjItMi45IDIuMi0xLjMgMi4xLTEuNSAzLjRsLTQuMiAyNS40Yy0xLjcgLjktMy40IDEuOC01LjIgMi43TDEyMC45IDQyLjZjLTEuMS0uNS0yLjQtLjctMy43LS42cy0yLjUgLjUtMy41IDEuMi0xLjkgMS43LTIuNSAyLjgtLjggMi40LS44IDMuNmwuOSAyNS44Yy0xLjUgMS4yLTMgMi40LTQuNCAzLjZMODEuOCA3M2MtMS4yLS4zLTIuNS0uMy0zLjcgLjFzLTIuMyAxLTMuMiAxLjktMS41IDItMS45IDMuMi0uNCAyLjUtLjEgMy43TDc4LjkgMTA3Yy0xLjIgMS40LTIuNCAyLjktMy42IDQuNGwtMjUuOC0uOWMtMS4zIDAtMi41IC4yLTMuNiAuOHMtMi4xIDEuNC0yLjggMi40LTEuMSAyLjItMS4yIDMuNSAuMSAyLjUgLjYgMy42bDEwLjcgMjMuNGMtLjkgMS43LTEuOCAzLjQtMi43IDUuMmwtMjUuNCA0LjFjLTEuMiAuMi0yLjQgLjctMy40IDEuNXMtMS43IDEuOC0yLjIgMi45LS43IDIuNC0uNSAzLjcgLjYgMi40IDEuMyAzLjRsMTUgMjAuOGMtLjYgMS45LTEuMSAzLjgtMS43IDUuN2wtMjQgOWMtMS4yIC40LTIuMiAxLjItMyAyLjFzLTEuNCAyLjEtMS42IDMuMy0uMiAyLjUgLjIgMy43IDEuMSAyLjMgMiAzLjFsMTguNyAxNy41Yy0uMiAyLS40IDMuOS0uNiA1LjlMMy41IDI0OS44Yy0xLjEgLjctMS45IDEuNi0yLjYgMi43cy0uOSAyLjMtLjkgMy42IC4zIDIuNSAuOSAzLjYgMS41IDIgMi42IDIuN2wyMS44IDEzLjVjLjIgMiAuMyAzLjkgLjYgNS45TDcuMSAyOTkuMWMtLjkgLjktMS42IDEuOS0yIDMuMXMtLjUgMi41LS4yIDMuNyAuOCAyLjQgMS42IDMuMyAxLjggMS43IDMgMi4xbDI0IDljLjYgMS45IDEuMSAzLjggMS43IDUuNmwtMTUgMjAuOGMtLjcgMS0xLjIgMi4yLTEuMyAzLjRzMCAyLjUgLjUgMy43IDEuMiAyLjIgMi4yIDIuOSAyLjEgMS4zIDMuNCAxLjVsMjUuNCA0LjJjLjkgMS43IDEuOCAzLjQgMi43IDUuMUw0Mi42IDM5MS4xYy0uNSAxLjEtLjcgMi40LS42IDMuNnMuNSAyLjUgMS4yIDMuNWMuNyAxLjEgMS42IDEuOSAyLjcgMi41czIuNCAuOCAzLjYgLjhsMjUuOC0uOWMxLjIgMS41IDIuNCAyLjkgMy42IDQuNEw3MyA0MzAuMmMtLjMgMS4yLS4zIDIuNSAuMSAzLjdzMSAyLjMgMS45IDMuMiAyIDEuNSAzLjIgMS45IDIuNSAuNCAzLjcgLjFsMjUuMi01LjljMS41IDEuMiAyLjkgMi40IDQuNCAzLjZsLS45IDI1LjhjMCAxLjMgLjIgMi41IC44IDMuNnMxLjQgMi4xIDIuNSAyLjggMi4yIDEuMSAzLjUgMS4yIDIuNS0uMSAzLjYtLjZsMjMuNC0xMC43YzEuNyAuOSAzLjQgMS44IDUuMSAyLjdsNC4yIDI1LjRjLjIgMS4yIC43IDIuNCAxLjUgMy40czEuOCAxLjggMi45IDIuMiAyLjQgLjcgMy43IC41IDIuNC0uNiAzLjQtMS4zbDIwLjgtMTVjMS45IC42IDMuOCAxLjEgNS42IDEuN2w5IDI0Yy40IDEuMiAxLjIgMi4yIDIuMSAzczIuMSAxLjQgMy4zIDEuNiAyLjUgLjIgMy43LS4yIDIuMy0xLjEgMy4xLTJsMTcuNS0xOC43YzIgLjIgMy45IC40IDUuOSAuNmwxMy41IDIxLjhjLjcgMS4xIDEuNiAxLjkgMi43IDIuNnMyLjMgLjkgMy42IC45IDIuNS0uMyAzLjYtLjkgMi0xLjUgMi43LTIuNmwxMy41LTIxLjhjMi0uMiAzLjktLjMgNS45LS42bDE3LjUgMTguN2MuOSAuOSAxLjkgMS42IDMuMSAyczIuNSAuNSAzLjcgLjIgMi40LS44IDMuMy0xLjYgMS43LTEuOCAyLjEtM2w5LTI0YzEuOS0uNiAzLjgtMS4xIDUuNi0xLjdsMjAuOCAxNWMxIC43IDIuMiAxLjIgMy40IDEuM3MyLjUgMCAzLjctLjUgMi4yLTEuMiAyLjktMi4yIDEuMy0yLjEgMS41LTMuNGw0LjItMjUuNGMxLjctLjkgMy40LTEuOCA1LjEtMi43bDIzLjQgMTAuN2MxLjEgLjUgMi40IC43IDMuNiAuNnMyLjQtLjUgMy41LTEuMiAxLjktMS42IDIuNS0yLjggLjgtMi40IC44LTMuNmwtLjktMjUuOGMxLjUtMS4yIDIuOS0yLjQgNC40LTMuNmwyNS4yIDUuOWMxLjIgLjMgMi41IC4zIDMuNy0uMXMyLjMtMSAzLjItMS45IDEuNS0yIDEuOS0zLjIgLjQtMi41IC4xLTMuN0w0MzMuMSA0MDVjMS4yLTEuNCAyLjQtMi45IDMuNi00LjRsMjUuOCAuOWMxLjMgLjEgMi41LS4yIDMuNi0uOHMyLjEtMS40IDIuOC0yLjVjLjctMSAxLjEtMi4yIDEuMi0zLjVzLS4xLTIuNS0uNi0zLjZsLTEwLjctMjMuNGMuOS0xLjcgMS44LTMuNCAyLjctNS4xbDI1LjQtNC4yYzEuMi0uMiAyLjQtLjcgMy40LTEuNXMxLjgtMS44IDIuMi0yLjkgLjctMi40IC41LTMuNy0uNi0yLjQtMS4zLTMuNGwtMTUtMjAuOGMuNi0xLjkgMS4xLTMuOCAxLjctNS42bDI0LTljMS4yLS40IDIuMi0xLjIgMy0yLjFzMS40LTIuMSAxLjYtMy4zIC4yLTIuNS0uMi0zLjctMS4xLTIuMy0yLTMuMWwtMTguNy0xNy41Yy4yLTEuOSAuNC0zLjkgLjYtNS45bDIxLjgtMTMuNWMxLjEtLjcgMS45LTEuNiAyLjYtMi43cy45LTIuMyAuOS0zLjYtLjMtMi41LS45LTMuNi0xLjUtMi0yLjYtMi43bDAgMHptLTE1MSAxMjkuMWMtMy42LS44LTcuNC0uMS0xMC41IDEuOXMtNS4zIDUuMi02IDguOGwtNy42IDM1LjdjLTI0LjYgMTEuMS01MS4zIDE2LjgtNzguMyAxNi43cy01My42LTYuMS03OC4xLTE3LjRsLTcuNi0zNS43Yy0uNC0xLjgtMS4xLTMuNS0yLjEtNXMtMi40LTIuOC0zLjktMy44LTMuMi0xLjctNS0yLTMuNi0uMy01LjQgLjFsLTMxLjUgNi44Yy01LjgtNi0xMS4zLTEyLjUtMTYuMy0xOS4ybDE1My4yIDBjMS43IDAgMi45LS4zIDIuOS0xLjlsMC01NC4yYzAtMS42LTEuMi0xLjktMi45LTEuOWwtNDQuOCAwIDAtMzQuNCA0OC41IDBjNC40IDAgMjMuNyAxLjMgMjkuOCAyNS45IDEuOSA3LjUgNi4yIDMyLjEgOS4xIDQwIDIuOSA4LjggMTQuNiAyNi41IDI3LjEgMjYuNWw3OSAwYy01LjMgNy4xLTExLjEgMTMuOC0xNy4zIDIwLjFsLTMyLjEtNi45em0yNS44IDM0LjVjMCAzLS45IDYtMi42IDguNXMtNCA0LjUtNi44IDUuNi01LjggMS41LTguOCAuOS01LjctMi03LjgtNC4yLTMuNi00LjgtNC4yLTcuOC0uMy02IC44LTguOCAzLjEtNS4yIDUuNi02LjkgNS40LTIuNiA4LjUtMi42bC40IDBjNCAuMSA3LjcgMS44IDEwLjUgNC42czQuMyA2LjcgNC4zIDEwLjZsLjEgMHptLTIyNS42LS43YzAgMy0uOSA2LTIuNiA4LjVzLTQuMSA0LjUtNi44IDUuNi01LjggMS41LTguOCAuOS01LjctMi03LjgtNC4yLTMuNi00LjgtNC4yLTcuOC0uMy02IC45LTguOCAzLjEtNS4yIDUuNi02LjggNS40LTIuNiA4LjUtMi42bC41IDBjNCAuMSA3LjcgMS44IDEwLjUgNC42czQuMyA2LjcgNC4zIDEwLjZsLjEgMHpNNjkuNiAyMzQuMmwzMi44LTE0LjZjMS43LS43IDMuMi0xLjggNC40LTMuMXMyLjItMi45IDIuOS00LjYgMS0zLjUgLjktNS4zLS41LTMuNi0xLjItNS4zbC02LjgtMTUuMiAyNi42IDAgMCAxMTkuNy01My42IDBjLTYuNi0yMy4yLTguNy00Ny42LTYuMS03MS42ek01OC4zIDE5OC4xYzAtMiAuNC00IDEuMi01LjhzMS45LTMuNSAzLjMtNC45IDMuMS0yLjUgNC45LTMuMyAzLjgtMS4yIDUuOC0xLjJsLjUgMGMzIC4xIDUuOSAxIDguMyAyLjhzNC4zIDQuMSA1LjQgNi45IDEuMyA1LjggLjcgOC44LTIuMSA1LjYtNC4zIDcuNy00LjkgMy41LTcuOCA0LjEtNiAuMi04LjctLjktNS4xLTMuMS02LjgtNS42LTIuNS01LjQtMi41LTguNGwwIDB6bTE1NS4yIDI0LjVsMC0zNS4zIDYzLjMgMGMzLjMgMCAyMy4xIDMuOCAyMy4xIDE4LjYgMCAxMi4zLTE1LjIgMTYuNy0yNy43IDE2LjdsLTU4LjcgMHpNMzk5IDMwNi43Yy05LjggMS4xLTIwLjYtNC4xLTIyLTEwLjEtNS44LTMyLjUtMTUuNC0zOS40LTMwLjYtNTEuNCAxOC45LTEyIDM4LjUtMjkuNiAzOC41LTUzLjMgMC0yNS41LTE3LjUtNDEuNi0yOS40LTQ5LjUtMTYuOC0xMS0zNS4zLTEzLjItNDAuMy0xMy4ybC0xOTguOSAwYzI3LjUtMzAuNyA2NC40LTUxLjUgMTA0LjktNTkuMmwyMy41IDI0LjZjMS4zIDEuMyAyLjggMi40IDQuNCAzLjFzMy41IDEuMSA1LjMgMS4yIDMuNi0uMyA1LjMtLjkgMy4yLTEuNyA0LjYtMi45bDI2LjMtMjVjMjYuOCA1IDUyLjEgMTUuOCA3NC4zIDMxLjZzNDAuNiAzNi4yIDU0LjEgNTkuOWwtMTggNDAuNmMtMS41IDMuNC0xLjUgNy4yLS4yIDEwLjZzMy45IDYuMiA3LjMgNy43bDM0LjYgMTUuM2MxLjEgMTAuOCAxLjIgMjEuNyAuNCAzMi41bC0xOS4zIDBjLTEuOSAwLTIuNyAxLjMtMi43IDMuMWwwIDguOGMwIDIwLjgtMTEuNyAyNS4zLTIyIDI2LjV6TTI0MCA2MC4yYzAtNCAxLjYtNy45IDQuNS0xMC43czYuNy00LjUgMTAuNy00LjVsLjQgMGMzIC4xIDUuOSAxIDguNCAyLjhzNC4zIDQuMSA1LjQgNi45IDEuMyA1LjggLjcgOC44LTIuMSA1LjYtNC4zIDcuNy00LjkgMy41LTcuOCA0LTYgLjItOC43LS45LTUuMS0zLjEtNi44LTUuNi0yLjUtNS40LTIuNS04LjR6TTQzNi44IDIxNGMtMiAwLTQtLjQtNS44LTEuMnMtMy41LTEuOS00LjktMy4zLTIuNS0zLjEtMy4zLTQuOS0xLjItMy44LTEuMi01LjggLjQtNCAxLjItNS44IDEuOS0zLjUgMy4zLTQuOSAzLjEtMi41IDQuOS0zLjMgMy44LTEuMiA1LjgtMS4ybC40IDBjNCAuMSA3LjkgMS43IDEwLjcgNC42czQuNCA2LjggNC4zIDEwLjgtMS43IDcuOS00LjYgMTAuNy02LjggNC40LTEwLjggNC4zeiJdfSxqZ2U9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiaG9ybmJpbGwiLGljb246WzUxMiw1MTIsW10sImY1OTIiLCJNNzYuOCAzNzAuM2MxIDcuOC0uNCAxNS44LTQuMSAyMi44cy05LjYgMTIuNi0xNi43IDE2LjEtMTUuMSA0LjctMjIuOSAzLjMtMTUtNS4xLTIwLjYtMTAuNy05LjItMTIuOS0xMC41LTIwLjcgMC0xNS44IDMuNi0yMi45IDkuMy0xMi44IDE2LjMtMTYuNSAxNS01IDIyLjktMy45Yy03OC4zLTExMS4zIDUyLTE5MC41IDUyLTE5MC41LTUuOSA0My04LjIgOTEuMi04LjIgOTEuMi02Ny4zIDQxLjUgLjkgNjQuMSAzOS44IDcyLjkgOS45IDI3IDI3LjggNTAuMiA1MS40IDY2LjdzNTEuNiAyNS4zIDgwLjMgMjUuM2MxLjkgMCAzLjgtLjIgNS43LS4zbC4xIDE4LjljLTk5LjIgMS40LTE1OC43LTI5LjEtMTg4LjktNTEuNnptMTA4LTMyNy43Yy45LTcuMi0uMi0xNC42LTMuNC0yMS4yLTMtNi4yLTcuNi0xMS41LTEzLjQtMTUuM3MtMTIuNS01LjktMTkuNC02LjItMTMuOCAxLjQtMTkuOCA0LjctMTEuMSA4LjMtMTQuNSAxNC4zLTUuMiAxMi44LTUgMTkuNyAyLjIgMTMuNyA1LjkgMTkuNSA4LjkgMTAuNiAxNS4xIDEzLjYgMTMuMSA0LjQgMjAgMy45Yy0yMi42IDI5LjktNTMuOCA4OS42LTUyLjQgMTkwbDIxLjgtLjJjMC0uOS0uMS0xLjgtLjEtMi43IDAtMjggOC40LTU1LjMgMjQuMS03OC41czM3LjktNDEuMiA2My44LTUxLjZjOC0zNy43IDMwLjctMTE0LjMgNzMuOC00NC4zIDAgMCA0OC4xIDIuNCA5MS4yIDguMiAwIDAtNzcuOC0xMjgtMTg3LjYtNTQuMWwwIDB6TTQ4OSAxNzYuOGM2LjMtMyAxMS43LTcuNyAxNS41LTEzLjZzNS45LTEyLjcgNi4xLTE5LjgtMS42LTE0LTUuMi0yMC04LjctMTEtMTQuOS0xNC4zLTEzLjItNC44LTIwLjItNC40LTEzLjggMi44LTE5LjUgNi45LTEwLjIgOS42LTEzIDE2LjEtMy43IDEzLjYtMi43IDIwLjVjLTMxLjctMjEuOS04OS44LTQ5LjEtMTgzLjQtNDcuN2wuMSAyMi41YzIuNy0uMiA1LjQtLjQgOC4xLS40IDI4LjEgMCA1NS42IDguNSA3OC45IDI0LjNzNDEuMiAzOC4zIDUxLjYgNjQuNWMzOS4xIDkgMTA1LjEgMzEuNiAzOC41IDcyLjUgMCAwLTIuMyA0OC4xLTguMiA5MS4yIDAgMCAxMzMuNC04MS4yIDQ5LTE5NC42IDYuNiAuNiAxMy4zLS42IDE5LjMtMy41bDAgMHpNMzc0LjQgNDM2LjJjMjEuNC0zMi41IDQ2LjQtODkuNyA0NS4xLTE3OS43bC0xOS41IC4xYy4xIDIuMSAuMyA0LjEgLjMgNi4yIDAgMjguNi04LjggNTYuNS0yNS4xIDgwcy0zOS41IDQxLjQtNjYuMyA1MS40Yy04LjkgMzktMzEuNCAxMDYuNy03Mi44IDM5LjUgMCAwLTQ4LjEtMi4zLTkxLjItOC4yIDAgMCA3OS45IDEzMS4zIDE5MS45IDUxIC4zIDQuOSAxLjUgOS42IDMuNiAxNCAyLjkgNi4xIDcuNSAxMS40IDEzLjEgMTUuMXMxMi4yIDYgMTkgNi40IDEzLjYtMS4xIDE5LjYtNC4yIDExLjEtNy44IDE0LjctMTMuNiA1LjYtMTIuNCA1LjctMTkuMi0xLjUtMTMuNS00LjgtMTkuNC04LjItMTAuOS0xNC4xLTE0LjMtMTIuNi01LjItMTkuNC01LjFsMC0uMXoiXX0sVWdlPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6InBocCIsaWNvbjpbNjQwLDUxMixbXSwiZjQ1NyIsIk0zMjAgMTA0LjVjMTcxLjQgMCAzMDMuMiA3Mi4yIDMwMy4yIDE1MS41UzQ5MS4zIDQwNy41IDMyMCA0MDcuNUMxNDguNiA0MDcuNSAxNi44IDMzNS4zIDE2LjggMjU2UzE0OC43IDEwNC41IDMyMCAxMDQuNXptMC0xNi44QzE0My4zIDg3LjcgMCAxNjMgMCAyNTZTMTQzLjMgNDI0LjMgMzIwIDQyNC4zIDY0MCAzNDkgNjQwIDI1NiA0OTYuNyA4Ny43IDMyMCA4Ny43ek0yMTguMiAyNDIuNWMtNy45IDQwLjUtMzUuOCAzNi4zLTcwLjEgMzYuM2wxMy43LTcwLjZjMzggMCA2My44LTQuMSA1Ni40IDM0LjN6TTk3LjQgMzUwLjNsMzYuNyAwIDguNy00NC44YzQxLjEgMCA2Ni42IDMgOTAuMi0xOS4xIDI2LjEtMjQgMzIuOS02Ni43IDE0LjMtODguMS05LjctMTEuMi0yNS4zLTE2LjctNDYuNS0xNi43bC03MC43IDAtMzIuNyAxNjguN3pNMjgzLjEgMTM2LjdsMzYuNSAwLTguNyA0NC44YzMxLjUgMCA2MC43LTIuMyA3NC44IDEwLjcgMTQuOCAxMy42IDcuNyAzMS04LjMgMTEzLjFsLTM3IDBjMTUuNC03OS40IDE4LjMtODYgMTIuNy05Mi01LjQtNS44LTE3LjctNC42LTQ3LjQtNC42bC0xOC44IDk2LjYtMzYuNSAwIDMyLjctMTY4LjZ6TTUwNSAyNDIuNWMtOCA0MS4xLTM2LjcgMzYuMy03MC4xIDM2LjNsMTMuNy03MC42YzM4LjIgMCA2My44LTQuMSA1Ni40IDM0LjN6TTM4NC4yIDM1MC4zbDM2LjggMCA4LjctNDQuOGM0My4yIDAgNjcuMSAyLjUgOTAuMi0xOS4xIDI2LjEtMjQgMzIuOS02Ni43IDE0LjMtODguMS05LjctMTEuMi0yNS4zLTE2LjctNDYuNS0xNi43bC03MC43IDAtMzIuOCAxNjguN3oiXX0sV2dlPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImRpc3F1cyIsaWNvbjpbNTc2LDUxMixbXSwiZTdkNSIsIk0yOTAuMiA1MTJjLTYyLjYgMC0xMTkuOS0yMi45LTE2NC4yLTYwLjhMMTcgNDY2LjEgNTkuMSAzNjIuMmMtMTQuNy0zMi40LTIyLjktNjguMy0yMi45LTEwNi4yIDAtMTQxLjQgMTEzLjctMjU2IDI1NC0yNTYgMTQwLjMgMCAyNTQgMTE0LjYgMjU0IDI1NiAwIDE0MS40LTExMy43IDI1Ni0yNTQgMjU2ek00MjguOSAyNTUuM2wwLS43QzQyOC45IDE4MC43IDM3Ni44IDEyOCAyODcgMTI4bC05NyAwIDAgMjU2IDk1LjYgMGM5MC41IDAgMTQzLjQtNTQuOSAxNDMuNC0xMjguN3pNMjg4IDMyMS4xbC0yOC40IDAgMC0xMzAuMiAyOC40IDBjNDEuNyAwIDY5LjMgMjMuOCA2OS4zIDY0LjdsMCAuN2MwIDQxLjMtMjcuNyA2NC43LTY5LjMgNjQuN3oiXX0sR2dlPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6IjUwMHB4IixpY29uOlszODQsNTEyLFtdLCJmMjZlIiwiTTcxLjggMzQ0LjNjLTYuNS0xNC4yLTYuOS0xOC4zIDcuNC0yMy4xIDI1LjYtOCA4IDkuMiA0My4yIDQ5LjJsLjMgMCAwLTkzLjljMS4yLTUwLjIgNDQtOTIuMiA5Ny43LTkyLjIgNTMuOSAwIDk3LjcgNDMuNSA5Ny43IDk2LjggMCA2My40LTYwLjggMTEzLjItMTI4LjUgOTMuMy0xMC41LTQuMi0yLjEtMzEuNyA4LjUtMjguNiA1MyAwIDg5LjQtMTAuMSA4OS40LTY0LjQgMC02MS03Ny4xLTg5LjYtMTE2LjktNDQuNi0yMy41IDI2LjQtMTcuNiA0Mi4xLTE3LjYgMTU3LjYgNTAuNyAzMSAxMTguMyAyMiAxNjAuNC0yMC4xIDI0LjgtMjQuOCAzOC41LTU4IDM4LjUtOTMgMC0zNS4yLTEzLjgtNjguMi0zOC44LTkzLjMtMjQuOC0yNC44LTU3LjgtMzguNS05My4zLTM4LjVTMTUxIDE2My4zIDEyNi4zIDE4OGMtLjMgLjMtMTYgMTYuNS0yMS4yIDIzLjlsLS41IC42Yy0zLjMgNC43LTYuMyA5LjEtMjAuMSA2LjEtNi45LTEuNy0xNC4zLTUuOC0xNC4zLTExLjhMNzAuMiAyMGMwLTUgMy45LTEwLjUgMTAuNS0xMC41TDMyMiA5LjVjOC4zIDAgOC4zIDExLjYgOC4zIDE1LjEgMCAzLjkgMCAxNS4xLTguMyAxNS4xbC0yMjMuMiAwIDAgMTMyLjkgLjMgMGMxMDQuMi0xMDkuOCAyODIuOC0zNiAyODIuOCAxMDguOSAwIDE3OC4xLTI0NC44IDIyMC4zLTMxMC4xIDYyLjh6TTEzNS4xIDgzLjVjLS41IDQuMiA0LjYgMjQuNSAxNC42IDIwLjYgMTI0LjgtNDcuNSAyMDIuOCA0MC40IDIwOS40IDQwLjQgNC44IDAgMjIuOC0xNS4zIDE0LjMtMjIuOC05My4yLTg5LTIzNC41LTU3LTIzOC4zLTM4LjJ6TTM2MS41IDQxNC43Yy0xMTAgMTA5LjktMjk5IDYwLjgtMzMyLTEwNC4yIDAtMTIuMi0zMC40LTcuNC0yOC45IDMuMyAyNCAxNzMuNCAyNDYgMjU2LjkgMzgxLjYgMTIxLjMgNi45LTcuOC0xMi42LTI4LjQtMjAuNy0yMC40ek0xODIuMSAzMDYuNmMwIDQgNC4zIDcuMyA1LjUgOC41IDMgMyA2LjEgNC40IDguNSA0LjQgMy44IDAgMi42IC4yIDIyLjMtMTkuNSAxOS42IDE5LjMgMTkuMSAxOS41IDIyLjMgMTkuNSA1LjQgMCAxOC41LTEwLjQgMTAuNy0xOC4ybC0xNy4zLTE3LjMgMTguMi0xOC4yYzYuMy02LjgtMTAuMS0yMS44LTE2LjItMTUuN0wyMTguMiAyNjhjLTE4LjYtMTguOC0xOC40LTE5LjUtMjEuNS0xOS41LTUgMC0xOCAxMS43LTEyLjQgMTcuM0wyMDIuNSAyODRjLTE4LjEgMTcuOS0yMC40IDE5LjItMjAuNCAyMi42eiJdfSxZZ2U9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiYWZmaWxpYXRldGhlbWUiLGljb246WzUxMiw1MTIsW10sImYzNmIiLCJNMTU5LjcgMjM3LjRDMTA4LjQgMzA4LjMgNDMuMSAzNDguMiAxNCAzMjYuNi0xNS4yIDMwNC45IDIuOCAyMzAgNTQuMiAxNTkuMSAxMDUuNSA4OC4yIDE3MC44IDQ4LjMgMTk5LjkgNjkuOXMxMS4xIDk2LjYtNDAuMiAxNjcuNXptMzUxLjItNTcuM2MtNzMuOCAxMjMuNC0xOTEuOSAxODcuNy0yNjQuNSAxNDMuNi0yNS0xNS4yLTQxLjMtNDEuMi00OS03My44LTMzLjYgNjQuOC05Mi44IDExMy44LTE2NC4xIDEzMy4yIDQ5LjggNTkuMyAxMjQuMSA5Ni45IDIwNyA5Ni45IDE1MCAwIDI3MS42LTEyMy4xIDI3MS42LTI3NC45IC4xLTguNS0uMy0xNi44LTEtMjV6Il19LFpnZT17cHJlZml4OiJmYWIiLGljb25OYW1lOiJyZWQtcml2ZXIiLGljb246WzQ0OCw1MTIsW10sImYzZTMiLCJNMzUzLjIgMzJMOTQuOCAzMkM0Mi40IDMyIDAgNzQuNCAwIDEyNi44TDAgMzg1LjJDMCA0MzcuNiA0Mi40IDQ4MCA5NC44IDQ4MGwyNTguNCAwYzUyLjQgMCA5NC44LTQyLjQgOTQuOC05NC44bDAtMjU4LjRDNDQ4IDc0LjQgNDA1LjYgMzIgMzUzLjIgMzJ6TTE0NC45IDIwMC45bDAgNTYuM2MwIDI3LTIxLjkgNDguOS00OC45IDQ4LjlsMC0xNTQuMmMwLTEzLjIgMTAuNy0yMy45IDIzLjktMjMuOWwxNTQuMiAwYzAgMjctMjEuOSA0OC45LTQ4LjkgNDguOWwtNTYuMyAwYy0xMi4zLS42LTI0LjYgMTEuNi0yNCAyNHptMTc2LjMgNzJsLTU2LjMgMGMtMTIuMy0uNi0yNC42IDExLjYtMjQgMjRsMCA1Ni4zYzAgMjctMjEuOSA0OC45LTQ4LjkgNDguOWwwLTE1NC4yYzAtMTMuMiAxMC43LTIzLjkgMjMuOS0yMy45bDE1NC4yIDBjMCAyNy0yMS45IDQ4LjktNDguOSA0OC45eiJdfSxIZj17cHJlZml4OiJmYWIiLGljb25OYW1lOiJ0d2l0dGVyIixpY29uOls1MTIsNTEyLFtdLCJmMDk5IiwiTTQ1OS40IDE1MS43Yy4zIDQuNSAuMyA5LjEgLjMgMTMuNiAwIDEzOC43LTEwNS42IDI5OC42LTI5OC42IDI5OC42LTU5LjUgMC0xMTQuNy0xNy4yLTE2MS4xLTQ3LjEgOC40IDEgMTYuNiAxLjMgMjUuMyAxLjMgNDkuMSAwIDk0LjItMTYuNiAxMzAuMy00NC44LTQ2LjEtMS04NC44LTMxLjItOTguMS03Mi44IDYuNSAxIDEzIDEuNiAxOS44IDEuNiA5LjQgMCAxOC44LTEuMyAyNy42LTMuNi00OC4xLTkuNy04NC4xLTUyLTg0LjEtMTAzbDAtMS4zYzE0IDcuOCAzMC4yIDEyLjcgNDcuNCAxMy4zLTI4LjMtMTguOC00Ni44LTUxLTQ2LjgtODcuNCAwLTE5LjUgNS4yLTM3LjQgMTQuMy01MyA1MS43IDYzLjcgMTI5LjMgMTA1LjMgMjE2LjQgMTA5LjgtMS42LTcuOC0yLjYtMTUuOS0yLjYtMjQgMC01Ny44IDQ2LjgtMTA0LjkgMTA0LjktMTA0LjkgMzAuMiAwIDU3LjUgMTIuNyA3Ni43IDMzLjEgMjMuNy00LjUgNDYuNS0xMy4zIDY2LjYtMjUuMy03LjggMjQuNC0yNC40IDQ0LjgtNDYuMSA1Ny44IDIxLjEtMi4zIDQxLjYtOC4xIDYwLjQtMTYuMi0xNC4zIDIwLjgtMzIuMiAzOS4zLTUyLjYgNTQuM3oiXX0sWGdlPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImZvcnQtYXdlc29tZSIsaWNvbjpbNTEyLDUxMixbXSwiZjI4NiIsIk00ODkuNSAyODcuOWwtMjcuNCAwYy0yLjYgMC00LjYgMi00LjYgNC42bDAgMzItMzYuNiAwIDAtMTc4LjNjMC0yLjYtMi00LjYtNC42LTQuNmwtMjcuNCAwYy0yLjYgMC00LjYgMi00LjYgNC42bDAgMzItMzYuNiAwIDAtMzJjMC0yLjYtMi00LjYtNC42LTQuNmwtMjcuNCAwYy0yLjYgMC00LjYgMi00LjYgNC42bDAgMzItMzYuNiAwIDAtMzJjMC02LTgtNC42LTExLjctNC42bDAtMzhjOC4zLTIgMTcuMS0zLjQgMjUuNy0zLjQgMTAuOSAwIDIwLjkgNC4zIDMxLjQgNC4zIDQuNiAwIDI3LjctMS4xIDI3LjctOGwwLTYwYzAtMi42LTItNC42LTQuNi00LjYtNS4xIDAtMTUuMSA0LjMtMjQgNC4zLTkuNyAwLTIwLjktNC4zLTMyLjYtNC4zLTggMC0xNiAxLjEtMjMuNyAyLjlsMC00LjljNS40LTIuNiA5LjEtOC4zIDkuMS0xNC4zIDAtMjAuNy0zMS40LTIwLjgtMzEuNCAwIDAgNiAzLjcgMTEuNyA5LjEgMTQuM2wwIDExMS43Yy0zLjcgMC0xMS43LTEuNC0xMS43IDQuNmwwIDMyLTM2LjYgMCAwLTMyYzAtMi42LTItNC42LTQuNi00LjZsLTI3LjQgMGMtMi42IDAtNC42IDItNC42IDQuNmwwIDMyLTM2LjMgMCAwLTMyYzAtMi42LTItNC42LTQuNi00LjZsLTI3LjQgMGMtMi42IDAtNC42IDItNC42IDQuNmwwIDE3OC4zLTM2LjYgMCAwLTMyYzAtMi42LTItNC42LTQuNi00LjZsLTI3LjQgMGMtMi42IDAtNC42IDItNC42IDQuNmwwIDIxOS41IDE4Mi45IDAgMC05NmMwLTcyLjYgMTA5LjctNzIuNiAxMDkuNyAwbDAgOTYgMTgyLjkgMCAwLTIxOS41Yy4xLTIuNi0xLjktNC42LTQuNS00LjZ6bS0yODguMS00LjVjMCAyLjYtMiA0LjYtNC42IDQuNmwtMjcuNCAwYy0yLjYgMC00LjYtMi00LjYtNC42bDAtNjRjMC0yLjYgMi00LjYgNC42LTQuNmwyNy40IDBjMi42IDAgNC42IDIgNC42IDQuNmwwIDY0em0xNDYuNCAwYzAgMi42LTIgNC42LTQuNiA0LjZsLTI3LjQgMGMtMi42IDAtNC42LTItNC42LTQuNmwwLTY0YzAtMi42IDItNC42IDQuNi00LjZsMjcuNCAwYzIuNiAwIDQuNiAyIDQuNiA0LjZsMCA2NHoiXX0sS2dlPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6Im1peGVyIixpY29uOls0NDgsNTEyLFtdLCJlMDU2IiwiTTgyLjYgNzYuMWMtMy44LTUuMS04LjctOS40LTE0LjItMTIuNXMtMTEuNy01LjEtMTguMS01LjctMTIuOCAuMS0xOC44IDIuMi0xMS42IDUuMy0xNi4zIDkuNmMtMTcuNiAxNi4yLTE5IDQzLjUtNC44IDYyLjhsOTEuOCAxMjMtOTIuMyAxMjQuMWMtMTQuMiAxOS4zLTEzLjEgNDYuNiA0LjcgNjIuOCA0LjcgNC4zIDEwLjMgNy42IDE2LjMgOS42czEyLjUgMi44IDE4LjggMi4yIDEyLjUtMi41IDE4LjEtNS43IDEwLjQtNy40IDE0LjItMTIuNUwyMTAuOSAyNjIuN2MxLjUtMi4xIDIuMy00LjYgMi4zLTcuMXMtLjgtNS0yLjMtNy4xTDgyLjYgNzYuMXpNNDM4LjIgMzc5LjZsLTkyLjMtMTI0LjEgOTEuOC0xMjNjMTQuMi0xOS4yIDEyLjgtNDYuNi00LjctNjIuOC00LjctNC4zLTEwLjMtNy42LTE2LjMtOS42cy0xMi41LTIuOC0xOC44LTIuMi0xMi41IDIuNS0xOC4xIDUuNy0xMC40IDcuNC0xNC4yIDEyLjVsLTEyOCAxNzIuMWMtMS41IDIuMS0yLjMgNC42LTIuMyA3LjFzLjggNSAyLjMgNy4xTDM2NiA0MzUuOWMzLjggNS4xIDguNyA5LjQgMTQuMiAxMi41czExLjcgNS4xIDE4LjEgNS43IDEyLjgtLjEgMTguOC0yLjIgMTEuNi01LjMgMTYuMy05LjZjMTcuOC0xNi4yIDE5LTQzLjUgNC43LTYyLjh6Il19LFFnZT17cHJlZml4OiJmYWIiLGljb25OYW1lOiJseWZ0IixpY29uOls1MTIsNTEyLFtdLCJmM2MzIiwiTTAgODEuMWw3Ny44IDAgMCAyMDguN2MwIDMzLjEgMTUgNTIuOCAyNy4yIDYxLTEyLjcgMTEuMS01MS4yIDIwLjktODAuMi0yLjgtMTctMTQtMjQuOC0zNy4zLTI0LjgtNTlMMCA4MS4xek00ODUuOSAyNTQuNmwwLTIyIDIzLjggMCAwLTc2LjgtMjYuMSAwYy0xMC4xLTQ2LjMtNTEuMi04MC43LTEwMC4zLTgwLjctNTYuNiAwLTEwMi43IDQ2LTEwMi43IDEwMi43bDAgMTc5LjJjMTYgMi4zIDM1LjQtLjMgNTEuNy0xNCAxNy4xLTE0IDI0LjgtMzcuMiAyNC44LTU5bDAtNi43IDM4LjggMCAwLTc2LjgtMzguOCAwIDAtMjMuM2MwLTM0LjYgNTIuMi0zNC42IDUyLjIgMGwwIDc3LjFjMCA1Ni42IDQ2IDEwMi43IDEwMi43IDEwMi43bDAtNzYuNWMtMTQuNSAwLTI2LjEtMTEuNy0yNi4xLTI1Ljl6bS0yOTQuMy05OWwwIDExM2MwIDE1LjQtMjMuOCAxNS40LTIzLjggMGwwLTExMy03Ni44IDAgMCAxMzIuN2MwIDIzLjggOCA1NCA0NSA2My45IDM3IDkuOCA1OC4yLTEwLjYgNTguMi0xMC42LTIuMSAxMy40LTE0LjUgMjMuMy0zNC45IDI1LjMtMTUuNSAxLjYtMzUuMi0zLjYtNDUtNy44bDAgNzAuM2MyNS4xIDcuNSA1MS41IDkuOCA3Ny42IDQuNyA0Ny4xLTkuMSA3Ni44LTQ4LjQgNzYuOC0xMDAuOGwwLTE3OC4yLTc3LjEgMCAwIC41eiJdfSxKZ2U9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiYXBwbGUtcGF5IixpY29uOls2NDAsNTEyLFtdLCJmNDE1IiwiTTExNi45IDE1OC41Yy03LjUgOC45LTE5LjUgMTUuOS0zMS41IDE0LjktMS41LTEyIDQuNC0yNC44IDExLjMtMzIuNiA3LjUtOS4xIDIwLjYtMTUuNiAzMS4zLTE2LjEgMS4yIDEyLjQtMy43IDI0LjctMTEuMSAzMy44em0xMC45IDE3LjJjLTE3LjQtMS0zMi4zIDkuOS00MC41IDkuOS04LjQgMC0yMS05LjQtMzQuOC05LjEtMTcuOSAuMy0zNC41IDEwLjQtNDMuNiAyNi41LTE4LjggMzIuMy00LjkgODAgMTMuMyAxMDYuMyA4LjkgMTMgMTkuNSAyNy4zIDMzLjUgMjYuOCAxMy4zLS41IDE4LjUtOC42IDM0LjUtOC42IDE2LjEgMCAyMC44IDguNiAzNC44IDguNCAxNC41LS4zIDIzLjYtMTMgMzIuNS0yNiAxMC4xLTE0LjggMTQuMy0yOS4xIDE0LjUtMjkuOS0uMy0uMy0yOC0xMC45LTI4LjMtNDIuOS0uMy0yNi44IDIxLjktMzkuNSAyMi45LTQwLjMtMTIuNS0xOC42LTMyLTIwLjYtMzguOC0yMS4xem0xMDAuNC0zNi4ybDAgMTk0LjkgMzAuMyAwIDAtNjYuNiA0MS45IDBjMzguMyAwIDY1LjEtMjYuMyA2NS4xLTY0LjNzLTI2LjQtNjQtNjQuMS02NGwtNzMuMiAwek0yNTguNSAxNjVsMzQuOSAwYzI2LjMgMCA0MS4zIDE0IDQxLjMgMzguNnMtMTUgMzguOC00MS40IDM4LjhsLTM0LjggMCAwLTc3LjR6TTQyMC43IDMzNS45YzE5IDAgMzYuNi05LjYgNDQuNi0yNC45bC42IDAgMCAyMy40IDI4IDAgMC05N2MwLTI4LjEtMjIuNS00Ni4zLTU3LjEtNDYuMy0zMi4xIDAtNTUuOSAxOC40LTU2LjggNDMuNmwyNy4zIDBjMi4zLTEyIDEzLjQtMTkuOSAyOC42LTE5LjkgMTguNSAwIDI4LjkgOC42IDI4LjkgMjQuNWwwIDEwLjgtMzcuOCAyLjNjLTM1LjEgMi4xLTU0LjEgMTYuNS01NC4xIDQxLjUgLjEgMjUuMiAxOS43IDQyIDQ3LjggNDJ6bTguMi0yMy4xYy0xNi4xIDAtMjYuNC03LjgtMjYuNC0xOS42IDAtMTIuMyA5LjktMTkuNCAyOC44LTIwLjVsMzMuNi0yLjEgMCAxMWMwIDE4LjItMTUuNSAzMS4yLTM2IDMxLjJ6bTEwMi41IDc0LjZjMjkuNSAwIDQzLjQtMTEuMyA1NS41LTQ1LjRsNTMuMS0xNDktMzAuOCAwLTM1LjYgMTE1LjEtLjYgMC0zNS42LTExNS4xLTMxLjYgMCA1MS4yIDE0MS45LTIuOCA4LjZjLTQuNiAxNC42LTEyLjEgMjAuMy0yNS41IDIwLjMtMi40IDAtNy0uMy04LjktLjVsMCAyMy40YzEuOCAuNCA5LjMgLjcgMTEuNiAuN3oiXX0sZWJlPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImFydHN0YXRpb24iLGljb246WzUxMiw1MTIsW10sImY3N2EiLCJNMi4xIDM3Ny40bDQzIDc0LjNjNC4zIDguNSAxMC44IDE1LjcgMTguOSAyMC43czE3LjQgNy42IDI3IDcuNmwyODUuNCAwLTU5LjItMTAyLjYtMzE1LjEgMHpNNTAxLjkgMzUwTDMzNS43IDU5LjNjLTQuNC04LjItMTAuOS0xNS4xLTE4LjktMjBTMjk5LjcgMzIgMjkwLjQgMzJsLTg4LjQgMCAyNTcuMyA0NDcuNiA0MC43LTcwLjVjMS45LTMuMiAyMS0yOS43IDItNTkuMXpNMjc1LjIgMzA0LjVsLTExNS41LTIwMC0xMTUuNSAyMDAgMjMxIDB6Il19LHRiZT17cHJlZml4OiJmYWIiLGljb25OYW1lOiJub2RlLWpzIixpY29uOls0NDgsNTEyLFtdLCJmM2QzIiwiTTIyNC41IDUwOGMtNi43IDAtMTMuNS0xLjgtMTkuNC01LjJsLTYxLjctMzYuNWMtOS4yLTUuMi00LjctNy0xLjctOCAxMi4zLTQuMyAxNC44LTUuMiAyNy45LTEyLjcgMS40LS44IDMuMi0uNSA0LjYgLjRsNDcuNCAyOC4xYzEuNyAxIDQuMSAxIDUuNyAwTDQxMiAzNjcuNWMxLjctMSAyLjgtMyAyLjgtNWwwLTIxMy4yYzAtMi4xLTEuMS00LTIuOS01LjFMMjI3LjMgMzcuN2MtMS43LTEtNC0xLTUuNyAwTDM3LjEgMTQ0LjNjLTEuOCAxLTIuOSAzLTIuOSA1LjFsMCAyMTMuMWMwIDIgMS4xIDQgMi45IDQuOWw1MC42IDI5LjJjMjcuNSAxMy43IDQ0LjMtMi40IDQ0LjMtMTguN2wwLTIxMC40YzAtMyAyLjQtNS4zIDUuNC01LjNsMjMuNCAwYzIuOSAwIDUuNCAyLjMgNS40IDUuM2wwIDIxMC41YzAgMzYuNi0yMCA1Ny42LTU0LjcgNTcuNi0xMC43IDAtMTkuMSAwLTQyLjUtMTEuNkwyMC42IDM5Ni4xYy0xMi02LjktMTkuNC0xOS44LTE5LjQtMzMuN2wwLTIxMy4xYzAtMTMuOCA3LjQtMjYuOCAxOS40LTMzLjdMMjA1LjEgOWMxMS43LTYuNiAyNy4yLTYuNiAzOC44IDBMNDI4LjYgMTE1LjdjMTIgNi45IDE5LjQgMTkuOCAxOS40IDMzLjdsMCAyMTMuMWMwIDEzLjgtNy40IDI2LjctMTkuNCAzMy43TDI0My45IDUwMi44Yy01LjkgMy40LTEyLjYgNS4yLTE5LjQgNS4yek0zNzMuNiAyOTcuOWMwLTM5LjktMjctNTAuNS04My43LTU4LTU3LjQtNy42LTYzLjItMTEuNS02My4yLTI0LjkgMC0xMS4xIDQuOS0yNS45IDQ3LjQtMjUuOSAzNy45IDAgNTEuOSA4LjIgNTcuNyAzMy44IC41IDIuNCAyLjcgNC4yIDUuMiA0LjJsMjQgMGMxLjUgMCAyLjktLjYgMy45LTEuN3MxLjUtMi42IDEuNC00LjFjLTMuNy00NC4xLTMzLTY0LjYtOTIuMi02NC42LTUyLjcgMC04NC4xIDIyLjItODQuMSA1OS41IDAgNDAuNCAzMS4zIDUxLjYgODEuOCA1Ni42IDYwLjUgNS45IDY1LjIgMTQuOCA2NS4yIDI2LjcgMCAyMC42LTE2LjYgMjkuNC01NS41IDI5LjQtNDguOSAwLTU5LjYtMTIuMy02My4yLTM2LjYtLjQtMi42LTIuNi00LjUtNS4zLTQuNWwtMjMuOSAwYy0zIDAtNS4zIDIuNC01LjMgNS4zIDAgMzEuMSAxNi45IDY4LjIgOTcuOCA2OC4yIDU4LjQtLjEgOTItMjMuMiA5Mi02My40eiJdfSxhYmU9e3ByZWZpeDoiZmFiIixpY29uTmFtZToidW5jaGFydGVkIixpY29uOls0NDgsNTEyLFtdLCJlMDg0IiwiTTE3MS44IDIzMi44YzEuMSAwIDIuMS0uMyAzLS45czEuNi0xLjQgMi0yLjRjMi4yLTkuOCA3LjQtMTguNiAxNC45LTI1LjMgMS4yLS44IDEuNy0yLjUgMS43LTQuMS0uMS0uNy0uMy0xLjMtLjYtMS45cy0uOS0xLjEtMS40LTEuNEw3NC41IDEyOC41IDE0OS4xIDg1YzEuNS0uOCAyLjctMiAzLjYtMy41czEuNC0zLjEgMS40LTQuOGMwLTEuNy0uNC0zLjQtMS4zLTQuOXMtMi4yLTIuNy0zLjctMy40TDEyNi43IDU1LjZjLTEuNS0uOC0zLjEtMS4yLTQuOC0xLjJzLTMuMyAuNC00LjggMS4yTDE3IDExMy42Yy0xLjUgLjgtMi43IDItMy42IDMuNXMtMS40IDMuMS0xLjQgNC44TDEyIDIzN2MwIDEuNyAuNCAzLjQgMS4zIDQuOXMyLjIgMi43IDMuNyAzLjRsMjIuNCAxMi44YzEuNSAuOSAzLjIgMS4zIDUgMS4yIDIuNCAuMSA0LjgtLjggNi42LTIuNSAxLjgtMS45IDIuOC00LjQgMi45LTdsMC04NS4zIDExNS45IDY3LjljLjYgLjMgMS40IC40IDIuMSAuNHpNMzIzLjQgMzc3LjdjLTEuNyAuMS0zLjQgLjUtNSAxLjJsLTc0LjUgNDMuMSAwLTEzNC4yYzAtMi45LTIuOS01LjgtNi4yLTQuNi05LjQgMi44LTE5LjUgMy0yOSAuNC0uNy0uMi0xLjUtLjItMi4yLS4xcy0xLjQgLjQtMiAuOS0xLjEgMS0xLjQgMS43LS41IDEuNC0uNSAyLjFsMCAxMzMuMy03NC41LTQzLjFjLTEuNS0uOS0zLjItMS4zLTUtMS4yLTIuNSAwLTQuOSAxLTYuNyAyLjhzLTIuOCA0LjItMi44IDYuN2wwIDI2LjFjMCAxLjcgLjQgMy40IDEuMyA0LjlzMi4yIDIuNyAzLjcgMy40bDEwMC4yIDU3LjZjMS41IC45IDMuMiAxLjMgNSAxLjIgMS43IDAgMy40LS40IDUtMS4ybDEwMC4yLTU3LjZjMS41LS44IDIuNy0yIDMuNi0zLjVzMS40LTMuMSAxLjQtNC44bDAtMjYuMWMtLjgtNC42LTUuNC05LjEtMTAuNC05LjF6TTI4Ni4xIDc4YTIzIDIzIDAgMSAwIDAtNDYgMjMgMjMgMCAxIDAgMCA0NnptNjMuNi0xMC4xYTIzIDIzIDAgMSAwIDAgNDYgMjMgMjMgMCAxIDAgMC00NnptNjMuMiA4My43YTIzIDIzIDAgMSAwIDAtNDYgMjMgMjMgMCAxIDAgMCA0NnptLTYzLjItOS4yYTIzIDIzIDAgMSAwIDAgNDYgMjMgMjMgMCAxIDAgMC00NnptLTYzLjYgODMuMmM0LjUgMCA5LTEuMyAxMi44LTMuOXM2LjctNi4xIDguNS0xMC4zIDIuMi04LjggMS4zLTEzLjMtMy4xLTguNi02LjMtMTEuOC03LjMtNS40LTExLjgtNi4zLTkuMS0uNC0xMy4zIDEuMy03LjggNC43LTEwLjMgOC41LTMuOSA4LjItMy45IDEyLjhjMCAzIC42IDYgMS44IDguOHMyLjkgNS4zIDUgNy41IDQuNyAzLjggNy41IDUgNS44IDEuOCA4LjggMS44bDAgMHpNMjI0IDI2MmM0LjUgMCA5LTEuNCAxMi44LTMuOXM2LjctNi4xIDguNS0xMC4zIDIuMi04LjggMS4zLTEzLjMtMy4xLTguNi02LjMtMTEuOC03LjMtNS40LTExLjgtNi4zLTkuMS0uNC0xMy4zIDEuMy03LjggNC43LTEwLjMgOC41LTMuOSA4LjItMy45IDEyLjhjMCAzIC42IDYgMS43IDguOHMyLjggNS4zIDUgNy41IDQuNyAzLjggNy41IDUgNS44IDEuOCA4LjggMS44bDAgMHptMTg4LjktODIuNGMtNC42IDAtOSAxLjMtMTIuOCAzLjlzLTYuNyA2LjEtOC41IDEwLjMtMi4yIDguOC0xLjMgMTMuMyAzLjEgOC42IDYuMyAxMS44IDcuMyA1LjQgMTEuOCA2LjMgOS4xIC40IDEzLjMtMS4zIDcuOC00LjcgMTAuMy04LjUgMy45LTguMiAzLjktMTIuOGMwLTYuMS0yLjQtMTEuOS02LjctMTYuM3MtMTAuMi02LjctMTYuMy02LjdsMCAwem0wIDcyLjNjLTQuNiAwLTkgMS4zLTEyLjggMy45cy02LjcgNi4xLTguNSAxMC4zLTIuMiA4LjgtMS4zIDEzLjMgMy4xIDguNiA2LjMgMTEuOCA3LjMgNS40IDExLjggNi4zIDkuMSAuNCAxMy4zLTEuMyA3LjgtNC43IDEwLjMtOC41IDMuOS04LjIgMy45LTEyLjhjMC02LjEtMi40LTExLjktNi43LTE2LjNzLTEwLjItNi43LTE2LjMtNi43bDAgMHoiXX0saWJlPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6InBsYXlzdGF0aW9uIixpY29uOls1NzYsNTEyLFtdLCJmM2RmIiwiTTU3MSAzNzIuM2MtMTEuMyAxNC4yLTM4LjggMjQuMy0zOC44IDI0LjNsLTIwNS4xIDczLjYgMC01NC4zIDE1MC45LTUzLjhjMTcuMS02LjEgMTkuOC0xNC44IDUuOC0xOS40LTEzLjktNC42LTM5LjEtMy4zLTU2LjIgMi45bC0xMDAuNSAzNS41IDAtNTYuNGMyMy4yLTcuOCA0Ny4xLTEzLjYgNzUuNy0xNi44IDQwLjktNC41IDkwLjkgLjYgMTMwLjIgMTUuNSA0NC4yIDE0IDQ5LjIgMzQuNyAzOCA0OC45ek0zNDYuNiAyNzkuOGwwLTEzOWMwLTE2LjMtMy0zMS4zLTE4LjMtMzUuNi0xMS43LTMuOC0xOSA3LjEtMTkgMjMuNGwwIDM0Ny45LTkzLjgtMjkuOCAwLTQxNC43YzM5LjkgNy40IDk4IDI0LjkgMTI5LjIgMzUuNCA3OS41IDI3LjMgMTA2LjQgNjEuMyAxMDYuNCAxMzcuOCAwIDc0LjUtNDYgMTAyLjgtMTA0LjUgNzQuNnpNNDMuMyA0MTAuMmMtNDUuNC0xMi44LTUzLTM5LjUtMzIuMy01NC44IDE5LjEtMTQuMiA1MS43LTI0LjkgNTEuNy0yNC45bDEzNC41LTQ3LjggMCA1NC41LTk2LjggMzQuNmMtMTcuMSA2LjEtMTkuNyAxNC44LTUuOCAxOS40czM5LjEgMy4zIDU2LjItMi45bDQ2LjQtMTYuOSAwIDQ4LjhjLTUxLjYgOS4zLTEwMS40IDcuMy0xNTMuOS0xMHoiXX0scmJlPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6Im1pY3JvYmxvZyIsaWNvbjpbNDQ4LDUxMixbXSwiZTAxYSIsIk0zOTkuOCAzNjIuMmMyOS41LTM0LjcgNDcuMS03OC4zIDQ3LjEtMTI1LjggMC0xMTMtOTkuNi0yMDQuNC0yMjIuNS0yMDQuNFMyIDEyMy41IDIgMjM2LjQgMTAxLjYgNDQwLjkgMjI0LjUgNDQwLjljMjcgMCA1My45LTQuNSA3OS40LTEzLjQgMS40LS41IDMtLjUgNC41LS4xczIuNyAxLjQgMy42IDIuNmMxOC42IDI1LjEgNDcuNiA0Mi43IDc5LjkgNDkuOSAxLjEgLjIgMi4zIDAgMy4zLS42czEuNy0xLjYgMS45LTIuOGMuMS0uNiAuMS0xLjMgMC0xLjlzLS40LTEuMi0uOC0xLjdjLTEyLjMtMTYtMTguNy0zNS44LTE4LTU2czguNC0zOS41IDIxLjctNTQuN2wtLjIgLjF6TTMzMCAyMTIuNGwtNTcuMyA0My41IDIwLjggNjguOWMuNCAxLjMgLjQgMi43LS4xIDRzLTEuMiAyLjQtMi4zIDMuMi0yLjQgMS4yLTMuOCAxLjItMi43LS40LTMuOC0xLjJsLTU5LjEtNDEtNTkuMSA0MS4xYy0xLjEgLjgtMi40IDEuMi0zLjggMS4ycy0yLjctLjQtMy44LTEuMi0xLjktMS45LTIuMy0zLjItLjUtMi43LS4xLTRsMjAuOC02OC45LTU3LjMtNDMuNWMtMS4xLS44LTEuOS0xLjktMi4zLTMuMnMtLjQtMi43IDAtNCAxLjItMi40IDIuMy0zLjIgMi40LTEuMyAzLjctMS4zbDcxLjktMS41IDIzLjctNjcuOWMuNC0xLjMgMS4zLTIuNCAyLjQtMy4yczIuNC0xLjIgMy44LTEuMiAyLjcgLjQgMy44IDEuMiAxLjkgMS45IDIuNCAzLjJsMjMuNyA2Ny45IDcxLjkgMS41YzEuNCAwIDIuNyAuNCAzLjggMS4yczEuOSAxLjkgMi4zIDMuMiAuNCAyLjcgMCA0LTEuMiAyLjQtMi4zIDMuM2wwIDB6Il19LHNiZT17cHJlZml4OiJmYWIiLGljb25OYW1lOiJnaXRrcmFrZW4iLGljb246WzU3Niw1MTIsW10sImYzYTYiLCJNNTU3LjcgMTE4LjFjLTIuMy02LjEtOS4zLTkuMi0xNS4zLTYuNi01LjcgMi40LTguNSA4LjktNi4zIDE0LjYgMTAuOSAyOSAxNi45IDYwLjUgMTYuOSA5My4zIDAgMTM0LjYtMTAwLjMgMjQ1LjctMjMwLjIgMjYyLjdsMC0xMjMuN2M3LjktMS41IDE1LjUtMy42IDIzLTYuMmwwIDEwNGMxMDYuNy0yNS45IDE4NS45LTEyMi4xIDE4NS45LTIzNi44IDAtOTEuOC01MC44LTE3MS44LTEyNS44LTIxMy4zLTUuNy0zLjItMTMtLjktMTUuOSA1LTIuNyA1LjUtLjYgMTIuMiA0LjcgMTUuMSA2Ny45IDM3LjYgMTEzLjkgMTEwIDExMy45IDE5My4yIDAgOTMuMy01Ny45IDE3My4xLTEzOS44IDIwNS40bDAtOTIuMmMxNC4yLTQuNSAyNC45LTE3LjcgMjQuOS0zMy41IDAtMTMuMS02LjgtMjQuNC0xNy4zLTMwLjUgOC4zLTc5LjUgNDQuNS01OC42IDQ0LjUtODMuOWwwLTE0LjdjMC0zOC04Ny45LTE2MS44LTEyOS0xNjQuNy0yLjUtLjItNS0uMi03LjYgMC00MS4yIDMtMTI5LjEgMTI2LjctMTI5LjEgMTY0LjdsMCAxNC44YzAgMjUuMyAzNi4zIDQuMyA0NC41IDgzLjktMTAuNiA2LjEtMTcuMyAxNy40LTE3LjMgMzAuNSAwIDE1LjggMTAuNiAyOSAyNC44IDMzLjVsMCA5Mi4yYy04MS45LTMyLjItMTM5LjgtMTEyLTEzOS44LTIwNS40IDAtODMuMSA0Ni0xNTUuNSAxMTMuOS0xOTMuMiA1LjQtMyA3LjQtOS42IDQuNy0xNS4xLTIuOS01LjktMTAuMS04LjItMTUuOS01LTc1IDQxLjUtMTI1LjggMTIxLjUtMTI1LjggMjEzLjMgMCAxMTQuNyA3OS4yIDIxMC44IDE4NS45IDIzNi44bDAtMTA0YzcuNiAyLjUgMTUuMSA0LjYgMjMgNi4ybDAgMTIzLjdjLTEyOS44LTE3LTIzMC4yLTEyOC4xLTIzMC4yLTI2Mi43IDAtMzIuOCA2LTY0LjMgMTYuOS05My4zIDIuMi01LjgtLjYtMTIuMi02LjMtMTQuNi02LTIuNi0xMyAuNC0xNS4zIDYuNi0xMS44IDMxLjUtMTguMyA2NS42LTE4LjMgMTAxLjMgMCAxNTUuMSAxMjIuNiAyODEuNiAyNzYuMyAyODcuOGwwLTE0NS45YzYuOCAuNCAxNSAuNSAyMy40IDBsMCAxNDUuOGMxNTMuNy02LjEgMjc2LjMtMTMyLjYgMjc2LjMtMjg3LjcgMC0zNS43LTYuNS02OS44LTE4LjMtMTAxLjR6TTM1Ny45IDMyMi45YTIzLjcgMjMuNyAwIDEgMSAwLTQ3LjQgMjMuNyAyMy43IDAgMSAxIDAgNDcuNHpNMjE4LjEgMjc1LjRhMjMuNyAyMy43IDAgMSAxIDAgNDcuNCAyMy43IDIzLjcgMCAxIDEgMC00Ny40eiJdfSxPRT17cHJlZml4OiJmYWIiLGljb25OYW1lOiJ0ZWxlZ3JhbSIsaWNvbjpbNTEyLDUxMixbNjI0NjIsInRlbGVncmFtLXBsYW5lIl0sImYyYzYiLCJNMjU2IDhhMjQ4IDI0OCAwIDEgMCAwIDQ5NiAyNDggMjQ4IDAgMSAwIDAtNDk2ek0zNzEgMTc2LjdjLTMuNyAzOS4yLTE5LjkgMTM0LjQtMjguMSAxNzguMy0zLjUgMTguNi0xMC4zIDI0LjgtMTYuOSAyNS40LTE0LjQgMS4zLTI1LjMtOS41LTM5LjMtMTguNy0yMS44LTE0LjMtMzQuMi0yMy4yLTU1LjMtMzcuMi0yNC41LTE2LjEtOC42LTI1IDUuMy0zOS41IDMuNy0zLjggNjcuMS02MS41IDY4LjMtNjYuNyAuMi0uNyAuMy0zLjEtMS4yLTQuNHMtMy42LS44LTUuMS0uNWMtMi4yIC41LTM3LjEgMjMuNS0xMDQuNiA2OS4xLTkuOSA2LjgtMTguOSAxMC4xLTI2LjkgOS45LTguOS0uMi0yNS45LTUtMzguNi05LjEtMTUuNS01LTI3LjktNy43LTI2LjgtMTYuMyAuNi00LjUgNi43LTkgMTguNC0xMy43IDcyLjMtMzEuNSAxMjAuNS01Mi4zIDE0NC42LTYyLjMgNjguOS0yOC42IDgzLjItMzMuNiA5Mi41LTMzLjggMi4xIDAgNi42IC41IDkuNiAyLjkgMiAxLjcgMy4yIDQuMSAzLjUgNi43IC41IDMuMiAuNiA2LjUgLjQgOS44eiJdfSxuYmU9T0Usb2JlPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6InVsdHJhbHl0aWNzIixpY29uOls1MTIsNTEyLFtdLCJlODZkIiwiTTM5MS40IDM5LjdjNjUuOC0uMiAxMTguNiA1MS44IDEyMC40IDExNi42IC43IDI2LjQtMS41IDU0LjEtMy44IDc0LjEtMTcuMiAxNDguNi0xMjIuNCAyNDItMjUyLjQgMjQyLTk1LjQtLjEtMTc5LjQtNTIuNy0yMjMuMi0xMzAuNiAyNC40IDE3LjQgNTQuNSAyNy40IDg3LjYgMjcuNCA4My4yIC4xIDE1MS40LTY3LjQgMTUxLjItMTUwbC4xLTYwLjZjLS4yLTY1LjcgNTMuOS0xMTkgMTIwLjEtMTE4Ljl6TTExOS45IDEwMC4yYzY2LjIgMCAxMTkuOSA1My4zIDExOS45IDExOVMxODYuMSAzMzguMyAxMTkuOSAzMzguMyAwIDI4NSAwIDIxOS4zYzAtNjUuNyA1My43LTExOSAxMTkuOS0xMTl6Il19LGxiZT17cHJlZml4OiJmYWIiLGljb25OYW1lOiJpdHVuZXMtbm90ZSIsaWNvbjpbMzg0LDUxMixbXSwiZjNiNSIsIk0zODEuOSAzODguMmMtNi40IDI3LjQtMjcuMiA0Mi44LTU1LjEgNDgtMjQuNSA0LjUtNDQuOSA1LjYtNjQuNS0xMC4yLTIzLjktMjAuMS0yNC4yLTUzLjQtMi43LTc0LjQgMTctMTYuMiA0MC45LTE5LjUgNzYuOC0yNS44IDYtMS4xIDExLjItMi41IDE1LjYtNy40IDYuNC03LjIgNC40LTQuMSA0LjQtMTYzLjIgMC0xMS4yLTUuNS0xNC4zLTE3LTEyLjMtOC4yIDEuNC0xODUuNyAzNC42LTE4NS43IDM0LjYtMTAuMiAyLjItMTMuNCA1LjItMTMuNCAxNi43IDAgMjM0LjcgMS4xIDIyMy45LTIuNSAyMzkuNS00LjIgMTguMi0xNS40IDMxLjktMzAuMiAzOS41LTE2LjggOS4zLTQ3LjIgMTMuNC02My40IDEwLjQtNDMuMi04LjEtNTguNC01OC0yOS4xLTg2LjYgMTctMTYuMiA0MC45LTE5LjUgNzYuOC0yNS44IDYtMS4xIDExLjItMi41IDE1LjYtNy40IDEwLjEtMTEuNSAxLjgtMjU2LjYgNS4yLTI3MC4yIC44LTUuMiAzLTkuNiA3LjEtMTIuOSA0LjItMy41IDExLjgtNS41IDEzLjQtNS41IDIwNC0zOC4yIDIyOC45LTQzLjEgMjMyLjQtNDMuMSAxMS41LS44IDE4LjEgNiAxOC4xIDE3LjYgLjIgMzQ0LjUgMS4xIDMyNi0xLjggMzM4LjV6Il19LGNiZT17cHJlZml4OiJmYWIiLGljb25OYW1lOiJsZXNzIixpY29uOls2NDAsNTEyLFtdLCJmNDFkIiwiTTYxMy4yIDIxOWMwLTIwLjUgMy4yLTMyLjYgMy4yLTU0LjYgMC0zNC4yLTEyLjYtNDUuMi00MC41LTQ1LjJsLTIwLjUgMCAwIDI0LjIgNi4zIDBjMTQuMiAwIDE3LjMgNC43IDE3LjMgMjIuMSAwIDE2LjMtMS42IDMyLjYtMS42IDUxLjUgMCAyNC4yIDcuOSAzMy42IDIzLjYgMzcuM2wwIDEuNmMtMTUuOCAzLjctMjMuNiAxMy4xLTIzLjYgMzcuMyAwIDE4LjkgMS42IDM0LjIgMS42IDUxLjUgMCAxNy45LTMuNyAyMi42LTE3LjMgMjIuNmwwIC41LTYuMyAwIDAgMjUuMiAyMC41IDBjMjcuOCAwIDQwLjUtMTEgNDAuNS00NS4yIDAtMjIuNi0zLjItMzQuMi0zLjItNTQuNiAwLTExIDYuOC0yMi42IDI3LjMtMjMuNmwwLTI3LjNjLTIwLjUtLjctMjcuMy0xMi4zLTI3LjMtMjMuM3pNNTA3LjYgMjUxYy0xNS44LTYuMy0zMC41LTEwLTMwLjUtMjAuNSAwLTcuOSA2LjMtMTIuNiAxNy45LTEyLjZzMjIuMSA0LjcgMzMuNiAxMy4xbDIxLTI3LjhjLTEzLjEtMTAtMzEtMjAuNS01NS4yLTIwLjUtMzUuNyAwLTU5LjkgMjAuNS01OS45IDQ5LjQgMCAyNS43IDIyLjYgMzguOSA0MS41IDQ2LjIgMTYuMyA2LjMgMzIuMSAxMS42IDMyLjEgMjIuMSAwIDcuOS02LjMgMTMuMS0yMC41IDEzLjEtMTMuMSAwLTI2LjMtNS4zLTQwLjUtMTYuM2wtMjEgMzAuNWMxNS44IDEzLjEgMzkuOSAyMi4xIDU5LjkgMjIuMSA0MiAwIDY0LjYtMjIuMSA2NC42LTUxcy0yMi41LTQxLTQzLTQ3Ljh6TTE0OC43IDMxMC40Yy0zLjcgMC04LjQtMy4yLTguNC0xMy4xbDAtMTc4LjItNzQuNiAwYy0yOC40IDAtNDEgMTEtNDEgNDUuMiAwIDIyLjYgMy4yIDM1LjIgMy4yIDU0LjYgMCAxMS02LjggMjIuNi0yNy4zIDIzLjZsMCAyNy4zYzIwLjUgLjUgMjcuMyAxMi4xIDI3LjMgMjMuMSAwIDE5LjQtMy4yIDMxLTMuMiA1My42IDAgMzQuMiAxMi42IDQ1LjIgNDAuNSA0NS4ybDIwLjUgMCAwLTI0LjItNi4zIDBjLTEzLjEgMC0xNy4zLTUuMy0xNy4zLTIyLjZzMS42LTMyLjEgMS42LTUxLjVjMC0yNC4yLTcuOS0zMy42LTIzLjYtMzcuM2wwLTEuNmMxNS44LTMuNyAyMy42LTEzLjEgMjMuNi0zNy4zIDAtMTguOS0xLjYtMzQuMi0xLjYtNTEuNXMzLjctMjIuMSAxNy4zLTIyLjFsMTQuMSAwIDAgMTUwLjhjMCAzMi4xIDExIDUzLjEgNDMuMSA1My4xIDEwIDAgMTcuOS0xLjYgMjMuNi0zLjdsLTUuMy0zNC4yYy0zLjEgLjgtNC42IC44LTYuMiAuOHpNMzgwLjQgMjUxYy0xNi4zLTYuMy0zMS0xMC0zMS0yMC41IDAtNy45IDYuMy0xMi42IDE3LjktMTIuNnMyMi4xIDQuNyAzMy42IDEzLjFsMjEtMjcuOGMtMTMuMS0xMC0zMS0yMC41LTU1LjItMjAuNS0zNS43IDAtNTkuOSAyMC41LTU5LjkgNDkuNCAwIDI1LjcgMjIuNiAzOC45IDQxLjUgNDYuMiAxNi4zIDYuMyAzMi4xIDExLjYgMzIuMSAyMi4xIDAgNy45LTYuMyAxMy4xLTIwLjUgMTMuMS0xMy4xIDAtMjYuMy01LjMtNDAuNS0xNi4zbC0yMC41IDMwLjVjMTUuOCAxMy4xIDM5LjkgMjIuMSA1OS45IDIyLjEgNDIgMCA2NC42LTIyLjEgNjQuNi01MSAuMS0yOC45LTIyLjUtNDEtNDMtNDcuOHptLTE1NS02OC44Yy0zOC40IDAtNzUuMSAzMi4xLTc0LjEgODIuNSAwIDUyIDM0LjIgODIuNSA3OS4zIDgyLjUgMTguOSAwIDM5LjktNi44IDU2LjItMTcuOUwyNzEgMzAxLjVjLTExLjYgNi44LTIyLjYgMTAtMzQuMiAxMC0yMSAwLTM3LjMtMTAtNDEuNS0zNC4ybDk1LjIgMGMuNS0zLjcgMS42LTExIDEuNi0xOS40IC42LTQyLjYtMjIuNi03NS43LTY2LjctNzUuN3ptLTMwIDY2LjJjMy4yLTIxIDE1LjgtMzEgMzAuNS0zMSAxOC45IDAgMjYuMyAxMy4xIDI2LjMgMzFsLTU2LjggMHoiXX0sZGJlPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImZpcmVmb3giLGljb246WzUxMiw1MTIsW10sImYyNjkiLCJNNTAzLjUgMjQxLjVjLS4xLTEuNi0uMi0zLjEtLjItNC43bDAtLjEtLjQtNC43IDAtLjFjLTEuMy0xMy45LTMuNy0yNy43LTcuMy00MS4yIDAtLjEgMC0uMS0uMS0uMmwtMS4xLTRjLS4xLS4yLS4xLS41LS4yLS42LS40LTEuMi0uNy0yLjUtMS4xLTMuNy0uMS0uMi0uMS0uNi0uMi0uOC0uNC0xLjItLjctMi40LTEuMS0zLjUtLjEtLjQtLjItLjYtLjQtMS0uNC0xLjItLjctMi4zLTEuMi0zLjVsLS40LTEuMWMtLjQtMS4xLS44LTIuMy0xLjItMy40LS4xLS4zLS4yLS43LS40LTEtLjUtMS4xLS44LTIuMy0xLjMtMy40LS4xLS4yLS4yLS42LS40LS44LS41LTEuMi0xLTIuMy0xLjQtMy41IDAtLjEtLjEtLjItLjEtLjQtMS42LTMuOC0zLjItNy43LTUtMTEuNGwtLjQtLjdjLS41LTEtLjgtMS44LTEuMy0yLjYtLjItLjUtLjUtMS4xLS43LTEuNi0uNC0uOC0uOC0xLjYtMS4yLTIuNC0uNC0uNi0uNi0xLjItMS0xLjhzLS44LTEuNC0xLjItMi4zYy0uNC0uNi0uNy0xLjMtMS4xLTEuOXMtLjgtMS40LTEuMi0yLjJjLS40LS43LS44LTEuNC0xLjItMi0uNC0uNy0uOC0xLjMtMS4yLTJzLS44LTEuMy0xLjItMi0uOC0xLjMtMS4yLTEuOS0uOC0xLjQtMS4zLTIuMmMtLjQtLjYtLjgtMS4yLTEuMi0xLjhsLTEuNC0yLjFjLS40LS42LS44LTEuMi0xLjItMS44LS41LS43LTEuMS0xLjYtMS42LTIuMy0uNC0uNS0uNy0xLjEtMS4xLTEuNmwtMS44LTIuNWMtLjQtLjUtLjYtLjgtMS0xLjMtMS0xLjMtMS44LTIuNS0yLjgtMy43LTcuMi05LjQtMTUtMTguMy0yMy41LTI2LjYtNS43LTYtMTEuOC0xMS41LTE4LjMtMTYuNy00LTMuNS04LjItNi43LTEyLjUtOS44LTcuNy01LjgtMTYtMTAuOC0yNC42LTE1LjEtMi40LTEuMy00LjgtMi41LTcuMi0zLjctMTcuNy04LjYtMzYuMy0xNS4yLTU1LjQtMTkuNi0xLjktLjQtMy44LS44LTUuNi0xLjJsLS4xIDBjLTEtLjEtMS44LS40LTIuOC0uNS0xMi41LTIuNC0yNS4yLTMuNy0zOC00bC0xMC42IDBjLTE1LjMgLjItMzAuNSAxLjktNDUuNSA1LTMzLjYgNy4xLTYzLjIgMjEuMi04Mi45IDM5LTEuMSAxLTEuOSAxLjctMi40IDIuMmwtLjUgLjUgLjEgMGMwIDAgLjEgMCAuMSAwczAtLjEgMC0uMWwtLjEgLjFjLjEtLjEgLjEtLjEgLjItLjEgMTQuNi04LjggMzQuOS0xNiA0OS40LTE5LjZsNS45LTEuNGMuNC0uMSAuOC0uMSAxLjItLjIgMS43LS40IDMuNC0uNyA1LjItMS4xIC4yIDAgLjYtLjEgLjgtLjEgNjQuMi0xMS43IDEzMi42IDcuNSAxODAuMiA1MyAxMC4zIDkuOCAxOS4zIDIwLjggMjYuOSAzMi44IDMwLjQgNDkuMiAyNy41IDExMS4xIDMuOCAxNDcuNi0zNC40IDUzLTExMS40IDcxLjMtMTU5IDI0LjgtMTYtMTUuNS0yNS4yLTM2LjctMjUuNi01OS0uMi0xMC43IDItMjEuMiA2LjItMzEgMS43LTMuOCAxMy4xLTI1LjcgMTguMi0yNC42LTEzLjEtMi44LTM3LjUgMi42LTU0LjcgMjguMi0xNS40IDIyLjktMTQuNSA1OC4yLTUgODMuMy02LTEyLjQtMTAuMS0yNS42LTEyLjEtMzkuMi0xMi4yLTgyLjYgNDMuMy0xNTMgOTQuMy0xNzAuNS0yNy41LTI0LTk2LjUtMjIuMy0xNDcuNyAxNS40LTI5LjkgMjItNTEuMiA1My4yLTYyLjUgOTAuNCAxLjctMjAuOSA5LjYtNTIuMSAyNS44LTgzLjktMTcuMiA4LjktMzkgMzctNDkuOCA2Mi45LTE1LjYgMzcuNC0yMSA4Mi4yLTE2LjEgMTI0LjggLjQgMy4yIC43IDYuNCAxLjEgOS42IDE5LjkgMTE3LjEgMTIyIDIwNi40IDI0NC44IDIwNi40IDEzNy4xIDAgMjQ4LjMtMTExLjIgMjQ4LjMtMjQ4LjQtLjEtNC41LS4yLTkuMS0uNS0xMy41eiJdfSxoYmU9e3ByZWZpeDoiZmFiIixpY29uTmFtZToia2FnZ2xlIixpY29uOlszMjAsNTEyLFtdLCJmNWZhIiwiTTMwNC4yIDUwMS41TDE1OC40IDMyMC4zIDI5OC4yIDE4NWMyLjYtMi43IDEuNy0xMC41LTUuMy0xMC41bC02OS4yIDBjLTMuNSAwLTcgMS44LTEwLjUgNS4zbC0xMzIuMyAxMzMuNyAwLTMwNmMwLTUtMi41LTcuNS03LjUtNy41TDIxLjUgMEMxNi41IDAgMTQgMi41IDE0IDcuNWwwIDQ5N2MwIDUgMi41IDcuNSA3LjUgNy41bDUxLjkgMGM1IDAgNy41LTIuNSA3LjUtNy41bDAtMTA5IDMwLjgtMjkuMyAxMTAuNSAxNDAuNmMzIDMuNSA2LjUgNS4zIDEwLjUgNS4zbDY2LjkgMGMzLjUgMCA1LjUtMSA2LTNsLTEuNC03LjZ6Il19LHBiZT17cHJlZml4OiJmYWIiLGljb25OYW1lOiJmYWNlYm9vay1tZXNzZW5nZXIiLGljb246WzUxMiw1MTIsW10sImYzOWYiLCJNMjU2LjYgOGMtMTQwIDAtMjQ4LjYgMTAyLjMtMjQ4LjYgMjQwLjYgMCA3Mi4zIDI5LjcgMTM0LjggNzguMSAxNzcuOSA4LjMgNy41IDYuNiAxMS45IDggNTguMiAuMSAzLjIgMSA2LjQgMi42IDkuMnMzLjkgNS4yIDYuNyA2LjkgNS45IDIuOCA5LjEgMyA2LjUtLjMgOS41LTEuNkMxNzQuOSA0NzkgMTc1LjYgNDc3LjIgMTg0LjYgNDc5LjYgMzM3LjggNTIxLjggNTA0IDQyMy43IDUwNCAyNDguNiA1MDQgMTEwLjMgMzk2LjYgOCAyNTYuNiA4ek00MDUuOCAxOTMuMWwtNzMgMTE1LjZjLTIuOCA0LjMtNi40IDguMS0xMC42IDExcy05LjEgNC44LTE0LjEgNS44LTEwLjMgLjgtMTUuMy0uNC05LjctMy40LTEzLjgtNi40bC01OC4xLTQzLjVjLTIuNi0xLjktNS44LTMtOS0zcy02LjQgMS4xLTkgM2wtNzguNCA1OS40Yy0xMC41IDcuOS0yNC4yLTQuNi0xNy4xLTE1LjdsNzMtMTE1LjZjMi44LTQuMyA2LjQtOC4xIDEwLjYtMTFzOS4xLTQuOCAxNC4xLTUuOCAxMC4zLS44IDE1LjMgLjQgOS43IDMuNCAxMy45IDYuNGw1OC4xIDQzLjVjMi42IDEuOSA1LjggMyA5IDNzNi40LTEuMSA5LTNsNzguNC01OS40YzEwLjQtOCAyNC4xIDQuNSAxNy4xIDE1LjZ6Il19LHViZT17cHJlZml4OiJmYWIiLGljb25OYW1lOiJhdWRpYmxlIixpY29uOls2NDAsNTEyLFtdLCJmMzczIiwiTTY0MCAxOTkuOWwwIDU0LTMyMCAyMDAtMzIwLTE5OS45IDAtNTQgMzIwIDIwMCAzMjAtMjAwLjF6bS0xOTQuNSA3Mmw0Ny4xLTI5LjRjLTM3LjItNTUuOC0xMDAuNy05Mi42LTE3Mi43LTkyLjZzLTEzNS41IDM2LjctMTcyLjYgOTIuNGwuMyAwYzIuNS0yLjMgNS4xLTQuNSA3LjctNi43IDg5LjctNzQuNCAyMTkuNC01OC4xIDI5MC4yIDM2LjN6TTIyNS40IDI5MC43YzE2LjktMTEuOSAzNi41LTE4LjcgNTcuNC0xOC43IDM0LjQgMCA2NS4yIDE4LjQgODYuNCA0Ny42bDQ1LjQtMjguNGMtMjAuOS0yOS45LTU1LjYtNDkuNS05NC44LTQ5LjUtMzguOSAwLTczLjQgMTkuNC05NC40IDQ5ek0xMDMuNiAxNjEuMUMyMzUuNCA1Ni44IDQyMS44IDg0LjcgNTIxLjEgMjIzLjJsLjcgMSA0OC44LTMwLjRjLTUzLjUtODEuNy0xNDUuOC0xMzUuNy0yNTAuNy0xMzUuNy0xMDMuNSAwLTE5Ni42IDUzLjUtMjUwLjUgMTM1LjYgOS45LTEwLjUgMjIuNy0yMy41IDM0LjItMzIuNnoiXX0sZmJlPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6InBhdHJlb24iLGljb246WzUxMiw1MTIsW10sImYzZDkiLCJNNDkwIDE1My44Yy0uMS02NS40LTUxLTExOS0xMTAuNy0xMzguMy03NC4yLTI0LTE3Mi0yMC41LTI0Mi45IDEyLjktODUuOCA0MC41LTExMi44IDEyOS4zLTExMy44IDIxNy44LS44IDcyLjggNi40IDI2NC40IDExNC42IDI2NS44IDgwLjMgMSA5Mi4zLTEwMi41IDEyOS41LTE1Mi4zIDI2LjQtMzUuNSA2MC41LTQ1LjUgMTAyLjQtNTUuOSA3Mi0xNy44IDEyMS4xLTc0LjcgMTIxLTE1MGwtLjEgMHoiXX0sbWJlPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6InZudiIsaWNvbjpbNjQwLDUxMixbXSwiZjQwYiIsIk0xMDQuOSAzNTJjLTM0LjEgMC00Ni40LTMwLjQtNDYuNC0zMC40TDIuNiAyMTAuMVMtNy44IDE5MiAxMyAxOTJsMzIuOCAwYzEwLjQgMCAxMy4yIDguNyAxOC44IDE4LjFsMzYuNyA3NC41czUuMiAxMy4xIDIxLjEgMTMuMSAyMS4xLTEzLjEgMjEuMS0xMy4xbDM2LjctNzQuNWM1LjYtOS41IDguNC0xOC4xIDE4LjgtMTguMWwzMi44IDBjMjAuOCAwIDEwLjQgMTguMSAxMC40IDE4LjFMMTg2LjQgMzIxLjZTMTc0LjIgMzUyIDE0MCAzNTJsLTM1LjEgMHptMzk1IDBjLTM0LjEgMC00Ni40LTMwLjQtNDYuNC0zMC40TDM5Ny42IDIxMC4xUzM4Ny4yIDE5MiA0MDggMTkybDMyLjggMGMxMC40IDAgMTMuMiA4LjcgMTguOCAxOC4xbDM2LjcgNzQuNXM1LjIgMTMuMSAyMS4xIDEzLjEgMjEuMS0xMy4xIDIxLjEtMTMuMWwzNi44LTc0LjVjNS42LTkuNSA4LjQtMTguMSAxOC44LTE4LjFsMzIuOSAwYzIwLjggMCAxMC40IDE4LjEgMTAuNCAxOC4xTDU4MS41IDMyMS42UzU2OS4zIDM1MiA1MzUuMSAzNTJsLTM1LjIgMHpNMzM3LjYgMTkyYzM0LjEgMCA0Ni40IDMwLjQgNDYuNCAzMC40bDU1LjkgMTExLjVTNDUwLjMgMzUyIDQyOS41IDM1MmwtMzIuOCAwYy0xMC40IDAtMTMuMi04LjctMTguOC0xOC4xbC0zNi43LTc0LjVzLTUuMi0xMy4xLTIxLjEtMTMuMS0yMS4xIDEzLjEtMjEuMSAxMy4xbC0zNi43IDc0LjVjLTUuNiA5LjQtOC40IDE4LjEtMTguOCAxOC4xbC0zMi45IDBjLTIwLjggMC0xMC40LTE4LjEtMTAuNC0xOC4xbDU1LjktMTExLjVTMjY4LjMgMTkyIDMwMi41IDE5MmwzNS4xIDB6Il19LGdiZT17cHJlZml4OiJmYWIiLGljb25OYW1lOiJwYWdlbGluZXMiLGljb246WzM4NCw1MTIsW10sImYxOGMiLCJNMzg0LjEgMzEyLjdjLTU1LjEgMTM2LjctMTg3LjEgNTQtMTg3LjEgNTQtNDAuNSA4MS44LTEwNy40IDEzNC40LTE4NC42IDEzNC43LTE2LjEgMC0xNi42LTI0LjQgMC0yNC40IDY0LjQtLjMgMTIwLjUtNDIuNyAxNTcuMi0xMTAuMS00MS4xIDE1LjktMTE4LjYgMjcuOS0xNjEuNi04Mi4yIDEwOS00NC45IDE1OS4xIDExLjIgMTc4LjMgNDUuNSA5LjktMjQuNCAxNy01MC45IDIxLjYtNzkuNyAwIDAtMTM5LjcgMjEuOS0xNDkuNS05OC4xIDExOS4xLTQ3LjkgMTUyLjYgNzYuNyAxNTIuNiA3Ni43IDEuNi0xNi43IDMuMy01Mi42IDMuMy01My40IDAgMC0xMDYuMy03My43LTM4LjEtMTY1LjIgMTI0LjYgNDMgNjEuNCAxNjIuNCA2MS40IDE2Mi40IC41IDEuNiAuNSAyMy44IDAgMzMuNCAwIDAgNDUuMi04OSAxMzYuNC01Ny41LTQuMiAxMzQtMTQxLjkgMTA2LjQtMTQxLjkgMTA2LjQtNC40IDI3LjQtMTEuMiA1My40LTIwIDc3LjUgMCAwIDgzLTkxLjggMTcyLTIweiJdfSxiYmU9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiYW1hem9uIixpY29uOls0NDgsNTEyLFtdLCJmMjcwIiwiTTI1Ny43IDE2Mi43Yy00OC43IDEuOC0xNjkuNSAxNS41LTE2OS41IDExNy41IDAgMTA5LjUgMTM4LjMgMTE0IDE4My41IDQzLjIgNi41IDEwLjIgMzUuNCAzNy41IDQ1LjMgNDYuOGw1Ni44LTU2cy0zMi4zLTI1LjMtMzIuMy01Mi44bDAtMTQ3LjFDMzQxLjUgODkgMzE3IDMyIDIyOS4yIDMyIDE0MS4yIDMyIDk0LjUgODcgOTQuNSAxMzYuM2w3My41IDYuOGMxNi4zLTQ5LjUgNTQuMi00OS41IDU0LjItNDkuNSA0MC43LS4xIDM1LjUgMjkuOCAzNS41IDY5LjF6bTAgODYuOGMwIDgwLTg0LjIgNjgtODQuMiAxNy4yIDAtNDcuMiA1MC41LTU2LjcgODQuMi01Ny44bDAgNDAuNnpNMzkzLjcgNDEzYy03LjcgMTAtNzAgNjctMTc0LjUgNjdTMzQuNyA0MDguNSAxMC4yIDM3OWMtNi44LTcuNyAxLTExLjMgNS41LTguMyA3My4zIDQ0LjUgMTg3LjggMTE3LjggMzcyLjUgMzAuMyA3LjUtMy43IDEzLjMgMiA1LjUgMTJ6bTM5LjggMi4yYy02LjUgMTUuOC0xNiAyNi44LTIxLjIgMzEtNS41IDQuNS05LjUgMi43LTYuNS0zLjhzMTkuMy00Ni41IDEyLjctNTVjLTYuNS04LjMtMzctNC4zLTQ4LTMuMi0xMC44IDEtMTMgMi0xNC0uMy0yLjMtNS43IDIxLjctMTUuNSAzNy41LTE3LjUgMTUuNy0xLjggNDEtLjggNDYgNS43IDMuNyA1LjEgMCAyNy4xLTYuNSA0My4xeiJdfSx2YmU9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiZW52aXJhIixpY29uOls0NDgsNTEyLFtdLCJmMjk5IiwiTTAgMzJjNDc3LjYgMCAzNjYuNiAzMTcuMyAzNjcuMSAzNjYuM2w4MC45IDgxLjctMjYgMC03MC40LTcxLjJDMzEyLjYgNDEzIDIyNy4yIDQ0My4zIDEzNy4yIDM3MS44IDQ3IDMwMC4zIDUyIDIxNC43IDAgMzJ6TTc5LjcgNzhjLTQ5LjctMjMuNS01LjIgOS4yLTUuMiA5LjIgNDUuMiAzMS4yIDY2IDczLjcgOTAuMiAxMTkuOSAzMS41IDYwLjIgNzkgMTM5LjcgMTQ0LjIgMTY3LjcgNjUgMjggMzQuMiAxMi41IDYtOC41LTI4LjItMjEuMi02OC4yLTg3LTkxLTEzMC4yLTMxLjctNjAtNjEtMTE4LjYtMTQ0LjItMTU4LjF6Il19LHliZT17cHJlZml4OiJmYWIiLGljb25OYW1lOiJsaW5vZGUiLGljb246WzQ0OCw1MTIsW10sImYyYjgiLCJNMzY2LjMgMTg2LjlsLTU5LjUgMzYuOS0uOCAzNi45LTI5LjMtMTkuMy0zOS40IDI0LjNjMi4yIDU1LjIgMi41IDU5LjMgMi41IDU5LjVsLTk3LjIgNjUuNC0xNS4xLTEwNC43IDEwOC4xLTYyLTQwLjItMjYtNzUuNCAzOC41LTIxLTE0My4zIDEyOS00OS40LTkxLjMtNDMuNi0xMjUuNyAzOS40IDI3LjcgMTM0LjkgNDEuOSAzMi43LTMxLjggMTUuMSAyMC45IDEwMS40IDI5LjMgMjcuNy0yMC45IDEyLjYgMTYuOCA3OC44IDY2LjIgNjkuNmMtMTAuOC03NC44LTExLjctNzguNi0xMS43LTc4LjhsNzcuOS01NS4zQzI0NCAzNjUuNCAyNDIuMyAzNjcgMjQyLjMgMzY3bC44IDI0LjMgMzMuNSAyOC41LS44LTc3LjEgNDYuOS0zMy41IDI2LjgtMTguNC0yLjUgMzYgMjUuMSAxNy42IDYuNy03NC42IDU4LjctNDMuNi03MS4yLTM5LjR6Il19LHhiZT17cHJlZml4OiJmYWIiLGljb25OYW1lOiJhY2N1c29mdCIsaWNvbjpbNjQwLDUxMixbXSwiZjM2OSIsIk0zMjIuMSAyNTJsMC0xLTUxLjItNjUuOHMtMTIgMS42LTI1IDE1LjFjLTkgOS4zLTI0Mi4xIDIzOS4xLTI0My40IDI0MC45LTcgMTAgMS42IDYuOCAxNS43IDEuNyAuOCAwIDExNC41LTM2LjYgMTE0LjUtMzYuNiAuNS0uNi0uMS0uMSAuNi0uNi0uNC01LjEtLjgtMjYuMi0xLTI3LjctLjYtNS4yIDIuMi02LjkgNy04LjlsOTIuNi0zMy44Yy42LS44IDg4LjUtODEuNyA5MC4yLTgzLjN6TTQ4Mi4yIDM3Mi4xYzEzLjMgMTYuMSAyMC43IDEzLjMgMzAuOCA5LjMgMy4yLTEuMiAxMTUuNC00Ny42IDExNy44LTQ4LjkgOC00LjMtMS43LTE2LjctNy4yLTIzLjQtMi4xLTIuNS0yMDUuMS0yNDUuNi0yMDcuMi0yNDguMy05LjctMTIuMi0xNC4zLTEyLjktMzguNC0xMi44LTEwLjIgMC0xMDYuOCAuNS0xMTYuNSAuNi0xOS4yIC4xLTMyLjktLjMtMTkuMiAxNi45IDcuNyA5LjUgMjM0LjIgMjk5LjcgMjM5LjkgMzA2LjZ6bTE1Mi43IDEuNmMtMi4zLS4zLTI0LjYtNC43LTM4LTcuMiAwIDAtMTE1IDUwLjQtMTE3LjUgNTEuNi0xNiA3LjMtMjYuOS0zLjItMzYuNy0xNC42bC01Ny4xLTc0Yy01LjQtLjktNjAuNC05LjYtNjUuMy05LjMtMy4xIC4yLTkuNiAuOC0xNC40IDIuOS00LjkgMi4xLTE0NS4yIDUyLjgtMTUwLjIgNTQuNy01LjEgMi0xMS40IDMuNi0xMS4xIDcuNiAuMiAyLjUgMiAyLjYgNC42IDMuNSAyLjcgLjggMzAwLjkgNjcuNiAzMDggNjkuMSAxNS42IDMuMyAzOC41IDEwLjUgNTMuNiAxLjcgMi4xLTEuMiAxMjMuOC03Ni40IDEyNS44LTc3LjggNS40LTQgNC4zLTYuOC0xLjctOC4yeiJdfSx3YmU9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiZXJsYW5nIixpY29uOls2NDAsNTEyLFtdLCJmMzlkIiwiTTg3LjIgNTMuNWwtODcuMiAwIDAgNDA1IDEwMC40IDBjLTQ5LjctNTIuNi03OC44LTEyNS4zLTc4LjctMjEyLjEtLjEtNzYuNyAyNC0xNDIuNyA2NS41LTE5Mi45em0yMzguMiA5LjdjLTQ1LjkgLjEtODUuMSAzMy41LTg5LjIgODMuMmwxNjkuOSAwYy0xLjEtNDkuNy0zNC41LTgzLjEtODAuNy04My4yem0yMzAuNy05LjZsLjMgMC0uMS0uMS0uMiAuMXptLjMgMGMzMS40IDQyLjcgNDguNyA5Ny41IDQ2LjIgMTYyLjcgLjUgNiAuNSAxMS43IDAgMjQuMWwtMzcyLjQgMGMtLjIgMTA5LjcgMzguOSAxOTQuOSAxMzguNiAxOTUuMyA2OC41LS4zIDExOC01MSAxNTEuOS0xMDYuMWw5Ni40IDQ4LjJjLTE3LjQgMzAuOS0zNi41IDU3LjgtNTcuOSA4MC44bDgwLjggMCAwLTQwNS04My42IDB6Il19LE1iZT17cHJlZml4OiJmYWIiLGljb25OYW1lOiJ1bmlzb24iLGljb246WzUxMiw1MTIsW10sImU4NTQiLCJNNDM1LjEgMTYxLjdhMTMuOSAxMy45IDAgMSAxIDE5LjYtMTkuNyAxMy45IDEzLjkgMCAxIDEgLTE5LjYgMTkuN3pNMzY5LjcgOTcuOGMxMC40IDIuMSAyMC42IDUuMiAzMC40IDkuMiA2LjggMi44IDEwLjEgMTAuOCA3LjMgMTcuNy0yLjggNi43LTEwLjkgMTAuMS0xNy42IDcuMy04LjMtMy40LTE2LjgtNS44LTI1LjctNy44LTguNi0xLjctMTcuMy0yLjUtMjYtMi41LTE5LjMgMC0zNy4xLTEwLjMtNDYuNy0yNy04LjctMTUuMS0yMC42LTI4LjktMzQuNy0zOS43LTU5LjEtNDUuNS0xNDMuOC0zNC4zLTE4OS4yIDI1LTIuNiAzLjMtNi41IDUuMy0xMC43IDUuMy03LjQgMC0xMy41LTYuMS0xMy41LTEzLjUgMC0zLjIgMS4yLTYuMyAzLjItOC44IDEyLjktMTYuNyAyOC45LTMwLjcgNDcuMS00MS4yIDc3LjQtNDQuOCAxNzYuNC0xOC4yIDIyMS4xIDU5LjQgNC4zIDguMiAxMy43IDEzLjMgMjIuOCAxMy41IDEwLjggMCAyMS42IDEgMzIuMiAzLjF6TTM1IDI3MGM0LjYtOC4yIDQuNi0xOC4yIDAtMjYuNC0yMS45LTM2LjUtMjcuMy04Mi4zLTE2LjMtMTIzLjIgMS42LTUuOSA2LjktMTAgMTMtMTAgOC43IDAgMTUuMyA4LjcgMTMgMTctOS41IDM1LjQtMy40IDcxIDEzLjcgMTAyLjkgOS4zIDE2LjUgOS4zIDM2LjcgMCA1My4xLTguNyAxNS43LTE0LjggMzIuNC0xNy4yIDUwLjMtOS43IDczLjkgNDIuMyAxNDEuNyAxMTYuMiAxNTEuNCA3LjMgMSAxMi42IDcuOSAxMS42IDE1LjItMSA3LjMtNy44IDEyLjYtMTUuMSAxMS42LTIxLjEtMi44LTQxLjQtOS43LTU5LjgtMjAuMy03NS42LTQzLjYtMTA0LjktMTQ1LjgtNTkuMi0yMjEuNXpNMjE2LjkgNTA5Yy03LjQgMi0xNS4xLTIuNC0xNy4xLTkuOHMyLjUtMTUgOS45LTE2LjljOC41LTIuMiAxNy40IDQuNSAxNy40IDEzLjQgMCA2LjItNC4yIDExLjYtMTAuMiAxMy4zem0xMjIuMy05MWMtOS41IDAtMTguNCA1LTIzLjIgMTMuMi00LjkgOS40LTExLjcgMTguMi0xOC43IDI2LjJsMCAwYy03LjEgOC0xNC44IDE1LjItMjMuMiAyMS43LTUuOSA0LjUtMTQuNCAzLjQtMTktMi41cy0zLjQtMTQuNCAyLjUtMTguOWM3LTUuNCAxMy41LTExLjUgMTkuNC0xOC4xbDAgMGM1LjktNi42IDExLjEtMTMuOCAxNS41LTIxLjYgOS43LTE2LjcgMjcuNS0yNyA0Ni44LTI3IDE3LjggMCAzNS40LTMuNSA1MS44LTEwLjMgNjguMy0yOC4zIDEwMS4xLTEwOC4zIDczLjItMTc2LjUtLjYtMS42LTEtMy4zLTEtNSAwLTcuNCA2LjEtMTMuNSAxMy41LTEzLjUgNS40IDAgMTAuMyAzLjIgMTIuNCA4LjIgOC4yIDE5LjcgMTIuNCA0MC44IDEyLjQgNjIuMSAwIDg5LjUtNzIuNyAxNjIuMS0xNjIuNCAxNjIuMWwwIDB6bS0xMy4xLTI2OGMzLjktLjQgNy45LS42IDExLjktLjYgNTkuMyAwIDEwOC4yIDQ4LjcgMTA4LjIgMTA3LjhTMzk3LjMgMzY1IDMzOCAzNjVjLTQgMC03LjktLjItMTEuOC0uNi0yMi4yLTEuNy00My4zIDEwLjQtNTIuOSAzMC40LTE3LjIgMzkuMS01Ni4yIDY0LjUtOTkuMSA2NC41LTU5LjMgMC0xMDguMi00OC43LTEwOC4yLTEwNy44IDAtMjMuMiA3LjUtNDUuNyAyMS40LTY0LjMgMTIuMi0xOC4zIDEyLjEtNDIuMy0uNC02MC41LTEzLjYtMTguNS0yMC45LTQwLjgtMjAuOS02My43IDAtNTkuMSA0OC44LTEwNy44IDEwOC4yLTEwNy44IDQyLjggMCA4MS44IDI1LjQgOTkgNjQuNCA5LjYgMjAgMzAuNyAzMi4xIDUyLjkgMzAuNHpNMTA2LjggMzkzLjRjMTQuNCAyNS4yIDQxLjEgNDAuOCA2OS44IDQwLjggNDQuMiAwIDgwLjYtMzYuOCA4MC42LTgxLjZzLTM2LjQtODEuNi04MC42LTgxLjZjLTE0LjIgMC0yOC4xIDMuOC00MC4zIDEwLjktMzguMyAyMi40LTUxLjYgNzIuNy0yOS41IDExMS40ek0yNjggMjk4YzE0LjQgMjUuMiA0MS4xIDQwLjggNjkuOCA0MC44IDQ0LjIgMCA4MC42LTM2LjggODAuNi04MS42cy0zNi40LTgxLjYtODAuNi04MS42Yy0xNC4yIDAtMjguMSAzLjgtNDAuMyAxMC45LTM4LjMgMjIuNC01MS42IDcyLjctMjkuNSAxMTEuNHptLTkxLjItNTQuNmM0NC4yIDAgODAuNS0zNi44IDgwLjUtODEuNnMtMzYuNC04MS42LTgwLjYtODEuNi04MC42IDM2LjgtODAuNiA4MS42YzAgNDQuNyAzNi40IDgxLjYgODAuNiA4MS42eiJdfSx6YmU9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiY2MtZGlzY292ZXIiLGljb246WzU3Niw1MTIsW10sImYxZjIiLCJNNTIwLjQgMTk2LjFjMC03LjktNS41LTEyLjEtMTUuNi0xMi4xbC00LjkgMCAwIDI0LjkgNC43IDBjMTAuMyAwIDE1LjgtNC40IDE1LjgtMTIuOHpNNTI4IDMyTDQ4IDMyQzIxLjUgMzIgMCA1My41IDAgODBMMCA0MzJjMCAyNi41IDIxLjUgNDggNDggNDhsNDgwIDBjMjYuNSAwIDQ4LTIxLjUgNDgtNDhsMC0zNTJjMC0yNi41LTIxLjUtNDgtNDgtNDh6TTQ4My45IDE3MC45YzIyLjYgMCA1Mi45LTQuMSA1Mi45IDI0LjQgMCAxMi42LTYuNiAyMC43LTE4LjcgMjMuMmwyNS44IDM0LjQtMTkuNiAwLTIyLjItMzIuOC0yLjIgMCAwIDMyLjgtMTYgMCAwLTgyek00MjggMTcxbDQ1LjMgMCAwIDE0LTI5LjMgMCAwIDE4LjIgMjguMyAwIDAgMTMuOC0yOC4zIDAgMCAyMi4yIDI5LjMgMCAwIDEzLjgtNDUuMyAwIDAtODJ6bS02OC43IDBsMjEuOSA1NS4yIDIyLjItNTUuMiAxNy41IDAtMzUuNSA4NC4yLTguNiAwLTM1LTg0LjIgMTcuNSAwem0tNTUuOSA4Ni4yYTQ0LjYgNDQuNiAwIDEgMSAwLTg5LjIgNDQuNiA0NC42IDAgMSAxIDAgODkuMnptLTQ5LjMtODMuMWwwIDE5Yy0yMC4xLTIwLjEtNDYuOC00LjctNDYuOCAxOSAwIDI1IDI3LjUgMzguNSA0Ni44IDE5LjJsMCAxOWMtMjkuNyAxNC4zLTYzLjMtNS43LTYzLjMtMzguMiAwLTMxLjIgMzMuMS01MyA2My4zLTM4em0tOTcuMiA2Ni4zYzExLjQgMCAyMi40LTE1LjMtMy4zLTI0LjQtMTUtNS41LTIwLjItMTEuNC0yMC4yLTIyLjcgMC0yMy4yIDMwLjYtMzEuNCA0OS43LTE0LjNsLTguNCAxMC44Yy0xMC40LTExLjYtMjQuOS02LjItMjQuOSAyLjUgMCA0LjQgMi43IDYuOSAxMi4zIDEwLjMgMTguMiA2LjYgMjMuNiAxMi41IDIzLjYgMjUuNiAwIDI5LjUtMzguOCAzNy40LTU2LjYgMTEuM2wxMC4zLTkuOWMzLjcgNy4xIDkuOSAxMC44IDE3LjUgMTAuOHpNNTUuNCAyNTNsLTIzLjQgMCAwLTgyIDIzLjQgMGMyNi4xIDAgNDQuMSAxNyA0NC4xIDQxLjEgMCAxOC41LTEzLjIgNDAuOS00NC4xIDQwLjl6bTY3LjUgMGwtMTYgMCAwLTgyIDE2IDAgMCA4MnpNNTQ0IDQzM2MwIDguMi02LjggMTUtMTUgMTVsLTQwMSAwYzE4OS42LTM1LjYgMzgyLjctMTM5LjIgNDE2LTE2MGwwIDE0NXpNNzQuMSAxOTEuNmMtNS4yLTQuOS0xMS42LTYuNi0yMS45LTYuNmwtNC4yIDAgMCA1NC4yIDQuMiAwYzEwLjMgMCAxNy0yIDIxLjktNi40IDUuNy01LjIgOC45LTEyLjggOC45LTIwLjdzLTMuMi0xNS41LTguOS0yMC41eiJdfSxrYmU9e3ByZWZpeDoiZmFiIixpY29uTmFtZToic2FmYXJpIixpY29uOls1MTIsNTEyLFtdLCJmMjY3IiwiTTI3NC43IDI3NC43TDIzNy4zIDIzNy4zIDE2NiAzNDYgMjc0LjcgMjc0Ljd6TTI1NiA4YTI0OCAyNDggMCAxIDAgMCA0OTYgMjQ4IDI0OCAwIDEgMCAwLTQ5NnpNNDExLjggMTgyLjhsMTQuOC02LjFjMS0uNCAyLS42IDMuMS0uNnMyLjEgLjIgMy4xIC42IDEuOCAxIDIuNiAxLjcgMS4zIDEuNiAxLjcgMi42IC42IDIgLjYgMy4xLS4yIDIuMS0uNiAzLjEtMSAxLjktMS43IDIuNi0xLjYgMS4zLTIuNiAxLjdMNDE4IDE5Ny42Yy0yIC44LTQuMiAuOC02LjEgMHMtMy41LTIuNC00LjMtNC4zLS44LTQuMiAwLTYuMSAyLjQtMy41IDQuMy00LjN6TTMxNC40IDk0bDYuMS0xNC44Yy44LTIgMi40LTMuNSA0LjMtNC4zczQuMi0uOCA2LjEgMCAzLjUgMi40IDQuMyA0LjMgLjggNC4yIDAgNi4xbC02LjEgMTQuOGMtLjggMi0yLjQgMy41LTQuMyA0LjNzLTQuMiAuOC02LjEgMGMtMS0uNC0xLjktMS0yLjYtMS43cy0xLjMtMS42LTEuNy0yLjYtLjYtMi0uNi0zLjEgLjItMi4xIC42LTMuMXpNMjU2IDYwYzIuMSAwIDQuMiAuOCA1LjcgMi4zUzI2NCA2NS45IDI2NCA2OGwwIDE2YzAgMi4xLS44IDQuMi0yLjMgNS43cy0zLjUgMi4zLTUuNyAyLjMtNC4yLS44LTUuNy0yLjMtMi4zLTMuNS0yLjMtNS43bDAtMTZjMC0yLjEgLjgtNC4yIDIuMy01LjdTMjUzLjkgNjAgMjU2IDYwek0xODEgNzQuOWMxLS40IDItLjYgMy4xLS42czIuMSAuMiAzLjEgLjYgMS45IDEgMi42IDEuNyAxLjMgMS42IDEuNyAyLjZMMTk3LjYgOTRjLjQgMSAuNyAyIC43IDMuMXMtLjIgMi4xLS42IDMuMS0xIDEuOS0xLjcgMi42LTEuNiAxLjQtMi42IDEuOC0yIC42LTMuMSAuNi0yLjEtLjItMy4xLS42LTEuOS0xLTIuNi0xLjgtMS4zLTEuNy0xLjctMi43bC02LjEtMTQuOGMtLjgtMi0uOC00LjIgMC02LjFzMi40LTMuNSA0LjMtNC4zem0tNjMuNiA0Mi41YzEuNS0xLjUgMy41LTIuMyA1LjctMi4zczQuMiAuOCA1LjcgMi4zTDE0MCAxMjguN2MxLjUgMS41IDIuMyAzLjUgMi4zIDUuNnMtLjggNC4xLTIuMyA1LjZjLTEuNSAxLjUtMy41IDIuMy01LjcgMi4zcy00LjItLjgtNS43LTIuM2wtMTEuMy0xMS4zYy0xLjUtMS41LTIuMy0zLjUtMi4zLTUuNnMuOC00LjEgMi4zLTUuNmwwIDB6TTYwIDI1NmMwLTIuMSAuOC00LjIgMi4zLTUuN1M2NS45IDI0OCA2OCAyNDhsMTYgMGMyLjEgMCA0LjIgLjggNS43IDIuM3MyLjMgMy41IDIuMyA1LjctLjggNC4yLTIuMyA1LjctMy41IDIuMy01LjcgMi4zbC0xNiAwYy0yLjEgMC00LjItLjgtNS43LTIuM1M2MCAyNTguMSA2MCAyNTZ6bTQwLjIgNzMuMmwtMTQuOCA2LjFjLTEgLjQtMiAuNi0zLjEgLjZzLTIuMS0uMi0zLjEtLjYtMS45LTEtMi42LTEuNy0xLjMtMS42LTEuNy0yLjYtLjYtMi0uNi0zLjEgLjItMi4xIC42LTMuMSAxLTEuOSAxLjctMi42IDEuNi0xLjMgMi42LTEuN0w5NCAzMTQuNGMyLS44IDQuMi0uOCA2LjEgMHMzLjUgMi40IDQuMyA0LjMgLjggNC4yIDAgNi4xLTIuNCAzLjUtNC4zIDQuM3ptNC4zLTEzNmMtLjQgMS0xIDEuOS0xLjcgMi42cy0xLjYgMS4zLTIuNiAxLjctMiAuNi0zLjEgLjYtMi4xLS4yLTMuMS0uNmwtMTQuOC02LjFjLTItLjgtMy41LTIuNC00LjMtNC4zcy0uOC00LjIgMC02LjEgMi40LTMuNSA0LjMtNC4zIDQuMi0uOCA2LjEgMGwxNC44IDYuMWMyIC44IDMuNSAyLjQgNC4zIDQuM3MuOCA0LjIgMCA2LjFsMCAwek0xOTcuNiA0MThsLTYuMSAxNC44Yy0uNCAxLTEgMS45LTEuNyAyLjZzLTEuNiAxLjMtMi42IDEuNy0yIC42LTMuMSAuNi0yLjEtLjItMy4xLS42LTEuOS0xLTIuNi0xLjctMS4zLTEuNi0xLjctMi42LS42LTItLjYtMy4xIC4yLTIuMSAuNi0zLjFsNi4xLTE0LjhjLjQtMSAxLTEuOSAxLjctMi43czEuNi0xLjQgMi42LTEuOCAyLS42IDMuMS0uNiAyLjEgLjIgMy4xIC42IDEuOSAxIDIuNiAxLjggMS4zIDEuNyAxLjcgMi42IC42IDIgLjYgMy4xLS4yIDIuMS0uNyAzLjF6TTI2NCA0NDRjMCAyLjEtLjggNC4yLTIuMyA1LjdzLTMuNSAyLjMtNS43IDIuMy00LjItLjgtNS43LTIuMy0yLjMtMy41LTIuMy01LjdsMC0xNmMwLTIuMSAuOC00LjIgMi4zLTUuN3MzLjUtMi4zIDUuNy0yLjMgNC4yIC44IDUuNyAyLjMgMi4zIDMuNSAyLjMgNS43bDAgMTZ6bTY3LTYuOWMtMSAuNC0yIC42LTMuMSAuNnMtMi4xLS4yLTMuMS0uNi0xLjktMS0yLjYtMS43LTEuMy0xLjYtMS43LTIuNkwzMTQuNCA0MThjLS44LTItLjgtNC4yIDAtNi4xczIuNC0zLjUgNC4zLTQuMyA0LjItLjggNi4xIDAgMy41IDIuNCA0LjMgNC4zbDYuMSAxNC44Yy44IDIgLjggNC4yIDAgNi4xcy0yLjQgMy41LTQuMyA0LjN6bTYzLjYtNDIuNWMtMS41IDEuNS0zLjUgMi4zLTUuNyAyLjNzLTQuMi0uOC01LjctMi4zTDM3MiAzODMuM2MtMS41LTEuNS0yLjMtMy41LTIuMy01LjZzLjgtNC4xIDIuMy01LjYgMy41LTIuMyA1LjctMi4zIDQuMiAuOCA1LjcgMi4zbDExLjMgMTEuM2MxLjUgMS41IDIuMyAzLjUgMi4zIDUuNnMtLjggNC4xLTIuMyA1LjZsMCAwek0yODYuMiAyODYuMkwxMTAuMyA0MDEuNyAyMjUuOCAyMjUuOCA0MDEuNyAxMTAuMyAyODYuMiAyODYuMnpNNDM3LjEgMzMxYy0uOCAyLTIuNCAzLjUtNC4zIDQuM3MtNC4yIC44LTYuMSAwbC0xNC44LTYuMWMtMi0uOC0zLjUtMi40LTQuMy00LjNzLS44LTQuMiAwLTYuMWMuNC0xIDEtMS45IDEuNy0yLjZzMS42LTEuMyAyLjYtMS43IDItLjYgMy4xLS42IDIuMSAuMiAzLjEgLjZsMTQuOCA2LjFjMiAuOCAzLjUgMi40IDQuMyA0LjNzLjggNC4yIDAgNi4xem02LjktNjdsLTE2IDBjLTIuMSAwLTQuMi0uOC01LjctMi4zcy0yLjMtMy41LTIuMy01LjcgLjgtNC4yIDIuMy01LjcgMy41LTIuMyA1LjctMi4zbDE2IDBjMi4xIDAgNC4yIC44IDUuNyAyLjNzMi4zIDMuNSAyLjMgNS43LS44IDQuMi0yLjMgNS43LTMuNSAyLjMtNS43IDIuM3oiXX0sU2JlPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6InNwYWNlLWF3ZXNvbWUiLGljb246WzUxMiw1MTIsW10sImU1YWMiLCJNOTYgMjU2bDMyIDAgMCAyNTYtMTI4IDAgMC0xNjAgMzIgMCAwLTMyIDMyIDAgMC0zMiAzMiAwIDAtMzJ6bTQxNiA5NmwwIDE2MC0xMjggMCAwLTI1NiAzMiAwIDAgMzIgMzIgMCAwIDMyIDMyIDAgMCAzMiAzMiAwek0zMjAgNjRsMzIgMCAwIDM4NC0zMiAwIDAtMzItMTI4IDAgMCAzMi0zMiAwIDAtMzg0IDMyIDAgMC0zMiAzMiAwIDAtMzIgNjQgMCAwIDMyIDMyIDAgMCAzMnptLTMyIDY0bC02NCAwIDAgNjQgNjQgMCAwLTY0eiJdfSxDYmU9e3ByZWZpeDoiZmFiIixpY29uTmFtZToibm9kZSIsaWNvbjpbNjQwLDUxMixbXSwiZjQxOSIsIk0zMTYuMyA0NTJjLTIuMSAwLTQuMi0uNi02LjEtMS42TDI5MSA0MzljLTIuOS0xLjYtMS41LTIuMi0uNS0yLjUgMy44LTEuMyA0LjYtMS42IDguNy00IC40LS4yIDEtLjEgMS40IC4xbDE0LjggOC44Yy41IC4zIDEuMyAuMyAxLjggMEwzNzUgNDA4Yy41LS4zIC45LS45IC45LTEuNmwwLTY2LjdjMC0uNy0uMy0xLjMtLjktMS42bC01Ny44LTMzLjNjLS41LS4zLTEuMi0uMy0xLjggMGwtNTcuOCAzMy4zYy0uNiAuMy0uOSAxLS45IDEuNmwwIDY2LjdjMCAuNiAuNCAxLjIgLjkgMS41bDE1LjggOS4xYzguNiA0LjMgMTMuOS0uOCAxMy45LTUuOGwwLTY1LjljMC0uOSAuNy0xLjcgMS43LTEuN2w3LjMgMGMuOSAwIDEuNyAuNyAxLjcgMS43bDAgNjUuOWMwIDExLjUtNi4yIDE4LTE3LjEgMTgtMy4zIDAtNiAwLTEzLjMtMy42bC0xNS4yLTguN2MtMy43LTIuMi02LjEtNi4yLTYuMS0xMC41bDAtNjYuN2MwLTQuMyAyLjMtOC40IDYuMS0xMC41bDU3LjgtMzMuNGMzLjctMi4xIDguNS0yLjEgMTIuMSAwbDU3LjggMzMuNGMzLjcgMi4yIDYuMSA2LjIgNi4xIDEwLjVsMCA2Ni43YzAgNC4zLTIuMyA4LjQtNi4xIDEwLjVsLTU3LjggMzMuNGMtMS43IDEuMS0zLjggMS43LTYgMS43ek0zNjMgMzg2LjJjMC0xMi41LTguNC0xNS44LTI2LjItMTguMi0xOC0yLjQtMTkuOC0zLjYtMTkuOC03LjggMC0zLjUgMS41LTguMSAxNC44LTguMSAxMS45IDAgMTYuMyAyLjYgMTguMSAxMC42IC4yIC44IC44IDEuMyAxLjYgMS4zbDcuNSAwYy41IDAgLjktLjIgMS4yLS41IC4zLS40IC41LS44IC40LTEuMy0xLjItMTMuOC0xMC4zLTIwLjItMjguOC0yMC4yLTE2LjUgMC0yNi4zIDctMjYuMyAxOC42IDAgMTIuNyA5LjggMTYuMSAyNS42IDE3LjcgMTguOSAxLjkgMjAuNCA0LjYgMjAuNCA4LjMgMCA2LjUtNS4yIDkuMi0xNy40IDkuMi0xNS4zIDAtMTguNy0zLjgtMTkuOC0xMS40LS4xLS44LS44LTEuNC0xLjctMS40bC03LjUgMGMtLjkgMC0xLjcgLjctMS43IDEuNyAwIDkuNyA1LjMgMjEuMyAzMC42IDIxLjMgMTguNSAwIDI5LTcuMiAyOS0xOS44em01NC41LTUwLjFjMCA2LjEtNSAxMS4xLTExLjEgMTEuMXMtMTEuMS01LTExLjEtMTEuMWMwLTYuMyA1LjItMTEuMSAxMS4xLTExLjEgNi0uMSAxMS4xIDQuOCAxMS4xIDExLjF6bS0xLjggMGMwLTUuMi00LjItOS4zLTkuNC05LjMtNS4xIDAtOS4zIDQuMS05LjMgOS4zczQuMiA5LjQgOS4zIDkuNGM1LjItLjEgOS40LTQuMyA5LjQtOS40em0tNC41IDYuMmwtMi42IDBjLS4xLS42LS41LTMuOC0uNS0zLjktLjItLjctLjQtMS4xLTEuMy0xLjFsLTIuMiAwIDAgNS0yLjQgMCAwLTEyLjUgNC4zIDBjMS41IDAgNC40IDAgNC40IDMuMyAwIDIuMy0xLjUgMi44LTIuNCAzLjEgMS43IC4xIDEuOCAxLjIgMi4xIDIuOCAuMSAxIC4zIDIuNyAuNiAzLjN6bS0yLjgtOC44YzAtMS43LTEuMi0xLjctMS44LTEuN2wtMiAwIDAgMy41IDEuOSAwYzEuNiAwIDEuOS0xLjEgMS45LTEuOHpNMTM3LjMgMTkxYzAtMi43LTEuNC01LjEtMy43LTYuNEw3Mi4zIDE0OS4zYy0xLS42LTIuMi0uOS0zLjQtMWwtLjYgMGMtMS4yIDAtMi4zIC40LTMuNCAxTDMuNyAxODQuNkMxLjQgMTg1LjkgMCAxODguNCAwIDE5MWwuMSA5NWMwIDEuMyAuNyAyLjUgMS44IDMuMnMyLjUgLjcgMy43IDBMNDIgMjY4LjNjMi4zLTEuNCAzLjctMy44IDMuNy02LjRsMC00NC40YzAtMi42IDEuNC01LjEgMy43LTYuNGwxNS41LTguOWMxLjItLjcgMi40LTEgMy43LTFzMi42IC4zIDMuNyAxbDE1LjUgOC45YzIuMyAxLjMgMy43IDMuOCAzLjcgNi40bDAgNDQuNGMwIDIuNiAxLjQgNS4xIDMuNyA2LjRsMzYuNCAyMC45YzEuMSAuNyAyLjYgLjcgMy43IDAgMS4xLS42IDEuOC0xLjkgMS44LTMuMmwuMi05NXpNNDcyLjUgODcuM2wwIDE3Ni40YzAgMi42LTEuNCA1LjEtMy43IDYuNGwtNjEuMyAzNS40Yy0yLjMgMS4zLTUuMSAxLjMtNy40IDBsLTYxLjMtMzUuNGMtMi4zLTEuMy0zLjctMy44LTMuNy02LjRsMC03MC44YzAtMi42IDEuNC01LjEgMy43LTYuNGw2MS4zLTM1LjRjMi4zLTEuMyA1LjEtMS4zIDcuNCAwbDE1LjMgOC44YzEuNyAxIDMuOS0uMyAzLjktMi4ybDAtOTRjMC0yLjggMy00LjYgNS41LTMuMmwzNi41IDIwLjRjMi4zIDEuMiAzLjggMy43IDMuOCA2LjR6bS00NiAxMjguOWMwLS43LS40LTEuMy0uOS0xLjZsLTIxLTEyLjJjLS42LS4zLTEuMy0uMy0xLjkgMGwtMjEgMTIuMmMtLjYgLjMtLjkgLjktLjkgMS42bDAgMjQuM2MwIC43IC40IDEuMyAuOSAxLjZsMjEgMTIuMWMuNiAuMyAxLjMgLjMgMS44IDBsMjEtMTIuMWMuNi0uMyAuOS0uOSAuOS0xLjZsMC0yNC4zIC4xIDB6bTIwOS44LS43YzIuMy0xLjMgMy43LTMuOCAzLjctNi40bDAtMTcuMWMwLTIuNi0xLjQtNS4xLTMuNy02LjRsLTYwLjktMzUuNGMtMi4zLTEuMy01LjEtMS4zLTcuNCAwbC02MS4zIDM1LjRjLTIuMyAxLjMtMy43IDMuOC0zLjcgNi40bDAgNzAuOGMwIDIuNyAxLjQgNS4xIDMuNyA2LjRsNjAuOSAzNC43YzIuMiAxLjMgNSAxLjMgNy4zIDBsMzYuOC0yMC41YzIuNS0xLjQgMi41LTUgMC02LjRMNTUwIDI0MS42Yy0xLjItLjctMS45LTEuOS0xLjktMy4ybDAtMjIuMmMwLTEuMyAuNy0yLjUgMS45LTMuMmwxOS4yLTExLjFjMS4xLS43IDIuNi0uNyAzLjcgMEw1OTIuMSAyMTNjMS4xIC43IDEuOSAxLjkgMS45IDMuMmwwIDE3LjRjMCAyLjggMy4xIDQuNiA1LjYgMy4ybDM2LjctMjEuM3pNNTU5IDIxOWMtLjQgLjMtLjcgLjctLjcgMS4ybDAgMTMuNmMwIC41IC4zIDEgLjcgMS4ybDExLjggNi44Yy40IC4zIDEgLjMgMS40IDBMNTg0IDIzNWMuNC0uMyAuNy0uNyAuNy0xLjJsMC0xMy42YzAtLjUtLjMtMS0uNy0xLjJsLTExLjgtNi44Yy0uNC0uMy0xLS4zLTEuNCAwTDU1OSAyMTl6TTMwNC44IDI2Mi41bDAtNzAuNGMwLTIuNi0xLjYtNS4xLTMuOS02LjRsLTYxLjEtMzUuMmMtMi4xLTEuMi01LTEuNC03LjQgMGwtNjEuMSAzNS4yYy0yLjMgMS4zLTMuOSAzLjctMy45IDYuNGwwIDcwLjRjMCAyLjggMS45IDUuMiA0IDYuNGw2MS4yIDM1LjJjMi40IDEuNCA1LjIgMS4zIDcuNCAwbDYxLTM1LjJjMS44LTEgMy4xLTIuNyAzLjYtNC43IC4xLS41IC4yLTEuMSAuMi0xLjd6TTIzMC41IDEzNy42bC0uOCAuNSAxLjEgMC0uMy0uNXptNzYuMiAxMzAuMmwtLjQtLjcgMCAuOSAuNC0uMnoiXX0sX2JlPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImNvZGVwZW4iLGljb246WzUxMiw1MTIsW10sImYxY2IiLCJNNTAyLjMgMTU5LjdsLTIzNC0xNTZjLTgtNC45LTE2LjUtNS0yNC42IDBsLTIzNCAxNTZjLTYgNC05LjcgMTEuMS05LjcgMTguM0wwIDMzNGMwIDcuMSAzLjcgMTQuMyA5LjcgMTguM2wyMzQgMTU2YzggNC45IDE2LjUgNSAyNC42IDBsMjM0LTE1NmM2LTQgOS43LTExLjEgOS43LTE4LjNsMC0xNTZjMC03LjEtMy43LTE0LjMtOS43LTE4LjN6TTI3OCA2My4xbDE3Mi4zIDExNC45LTc2LjkgNTEuNC05NS40LTYzLjcgMC0xMDIuNnptLTQ0IDBMMjM0IDE2NS43IDEzOC42IDIyOS40IDYxLjcgMTc4IDIzNCA2My4xek00NCAyMTkuMUw5OS4xIDI1NiA0NCAyOTIuOCA0NCAyMTkuMXpNMjM0IDQ0OC44TDYxLjcgMzM0IDEzOC42IDI4Mi42IDIzNCAzNDYuMyAyMzQgNDQ4Ljh6TTI1NiAzMDhsLTc3LjctNTIgNzcuNy01MiA3Ny43IDUyLTc3LjcgNTJ6bTIyIDE0MC45bDAtMTAyLjYgOTUuNC02My43IDc2LjkgNTEuNC0xNzIuMyAxMTQuOXptMTkwLTE1NmwtNTUuMS0zNi45IDU1LjEtMzYuOSAwIDczLjd6Il19LFRiZT17cHJlZml4OiJmYWIiLGljb25OYW1lOiJyYXZlbHJ5IixpY29uOls1MTIsNTEyLFtdLCJmMmQ5IiwiTTQ5OC42IDIzNC4yYy0xLjItMTAuMy0xLjctMjAuOC0zLjctMzEtMi41LTEyLjQtNS43LTI0LjYtOS42LTM2LjYtNi44LTIwLjktMTcuMi00MC4zLTMwLjktNTcuNS01LjktNy42LTEyLjEtMTQuOC0xOC44LTIxLjctMTQuMS0xNC0zMC0yNi4xLTQ3LjEtMzYuMS0xNy44LTEwLjYtMzYuOC0xOC45LTU2LjctMjQuNy0xMS0zLjEtMjIuMy01LjQtMzMuNS03LjYtNi44LTEuMy0xMy43LTEuNy0yMC42LTIuNS0uMyAwLS42LS40LS45LS42LTEwLjggMC0yMS41IDAtMzIuMyAwLTIuNCAuNC00LjggLjktNy4yIDEuMi0xMS42IDEuMi0yMy4xIDMuNi0zNC4zIDcuMS0xMy44IDQuMS0yNy4xIDkuNi0zOS44IDE2LjQtMTMuMyA3LTI2LjEgMTUuMS0zOC4xIDI0LjItNi4yIDQuNi0xMi4zIDkuNC0xOCAxNC41LTEwLjIgOS4yLTIwLjQgMTguNC0yOS45IDI4LjMtMTIuOCAxMy4zLTI0LjEgMjguMS0zMy42IDQ0LTguNiAxNC0xNS41IDI5LTIwLjUgNDQuNi03LjIgMjIuNy0xMC4zIDQ2LjYtOS4yIDcwLjMgLjYgMTMuNSAyIDI2LjkgNC40IDQwLjIgMy40IDE4LjQgOSAzNi4zIDE2LjcgNTMuMyAxMy42IDI5LjIgMzIuMSA1MS41IDUwLjQgNjcuOSAxMi44IDExLjYgMjYuOCAyMS45IDQxLjggMzAuNiAxNy43IDEwLjQgMzYuNCAxOC45IDU1LjkgMjUuMyAxMy4zIDQuMyAyNi45IDcuNiA0MC42IDkuOCA2LjEgMSAxMi4zIDEuMyAxOC40IDEuOSAuNCAuMSAuOCAuMyAxLjIgLjZsMzIuMyAwYzIuNS0uNCA1LS45IDcuNS0xLjEgMTYuMy0xLjMgMzIuMS01LjMgNDcuNS0xMC43IDE3LjItNS45IDMzLjctMTMuOSA0OS0yMy44IDkuNy02LjQgMTkuNC0xMy4xIDI4LjctMjAuMSA1LjgtNC4zIDExLTkuNSAxNi4zLTE0LjUgNC0zLjcgNy44LTcuNiAxMS41LTExLjUgMTItMTIuNyAyMi42LTI2LjYgMzEuNC00MS42IDkuNS0xNiAxNy40LTMyLjkgMjIuMy01MC45IDIuOS0xMC40IDQuOS0yMSA3LTMxLjcgMS01LjMgMS4zLTEwLjcgMS45LTE2LjEgMC0uMyAuNC0uNiAuNi0uOWwwLTM3LjFjLS4yLS42LS40LTEuMi0uNi0xLjh6bS0xNjEuMS0xLjJzLTE2LjYtMy0yOC41LTNjLTI3LjIgMC0zMy42IDE0LjktMzMuNiAzN2wwIDkzLjctNzMuNSAwIDAtMTkwLjcgNzMuNSAwIDAgMzEuOWM4LjktMjYuOCAyNi44LTM2LjIgNjItMzYuMmwwIDY3LjN6Il19LExiZT17cHJlZml4OiJmYWIiLGljb25OYW1lOiJhbGlwYXkiLGljb246WzQ0OCw1MTIsW10sImY2NDIiLCJNMzc3LjcgMzJMNzAuMyAzMkMzMS40IDMyIDAgNjMuNCAwIDEwMi4zTDAgNDA5LjdDMCA0NDguNiAzMS40IDQ4MCA3MC4zIDQ4MGwzMDcuNSAwYzM4LjUgMCA2OS44LTMxLjEgNzAuMy02OS42LTQ2LTI1LjYtMTEwLjYtNjAuMy0xNzEuNi04OC40LTMyLjEgNDQtODQuMSA4MS0xNDguNiA4MS03MC42IDAtOTMuNy00NS4zLTk3LTc2LjQtNC0zOSAxNC45LTgxLjUgOTkuNS04MS41IDM1LjQgMCA3OS40IDEwLjIgMTI3LjEgMjUgMTYuNS0zMC4xIDI2LjUtNjAuMyAyNi41LTYwLjNsLTE3OC4yIDAgMC0xNi43IDkyLjEgMCAwLTMxLjItMTA5LjQgMCAwLTE5IDEwOS40IDAgMC01MC40IDUwLjkgMCAwIDUwLjQgMTA5LjQgMCAwIDE5LTEwOS40IDAgMCAzMS4yIDg4LjggMHMtMTUuMiA0Ni42LTM4LjMgOTAuOWM0OC45IDE2LjcgMTAwIDM2IDE0OC42IDUyLjdsMC0yMzQuNGMuMi0zOC43LTMxLjItNzAuMy02OS45LTcwLjN6TTQ3LjMgMzIzYzEgMjAuMiAxMC4yIDUzLjcgNjkuOSA1My43IDUyLjEgMCA5Mi42LTM5LjcgMTE3LjktNzIuOS00NC42LTE4LjctODQuNS0zMS40LTEwOS40LTMxLjQtNjcuNCAwLTc5LjQgMzMuMS03OC40IDUwLjZ6Il19LCRiZT17cHJlZml4OiJmYWIiLGljb25OYW1lOiJjYy1hbWV4IixpY29uOls1NzYsNTEyLFtdLCJmMWYzIiwiTTAgNDMyYzAgMjYuNSAyMS41IDQ4IDQ4IDQ4bDQ4MCAwYzI2LjUgMCA0OC0yMS41IDQ4LTQ4bDAtMS4xLTYxLjcgMC0zMS45LTM1LjEtMzEuOSAzNS4xLTIwMy43IDAgMC0xNjMuOC02NS44IDAgODEuNy0xODQuNyA3OC42IDAgMjguMSA2My4yIDAtNjMuMiA5Ny4yIDAgMTYuOSA0Ny42IDE3LTQ3LjYgNzUuNSAwIDAtMi40YzAtMjYuNS0yMS41LTQ4LTQ4LTQ4TDQ4IDMyQzIxLjUgMzIgMCA1My41IDAgODBMMCA0MzJ6bTQ0MC40LTIxLjdsNDIuMi00Ni4zIDQyIDQ2LjMgNTEuNCAwLTY4LTcyLjEgNjgtNzIuMS01MC42IDAtNDIgNDYuNy00MS41LTQ2LjctNTEuNCAwIDY3LjUgNzIuNS02Ny40IDcxLjYgMC0zMy4xLTgzIDAgMC0yMi4yIDgwLjkgMCAwLTMyLjMtODAuOSAwIDAtMjIuNCA4MyAwIDAtMzMuMS0xMjIgMCAwIDE0My4yIDE3MS44IDB6bTk2LjMtNzJsMzkuMyA0MS45IDAtODMuMy0zOS4zIDQxLjR6bS0zNi4zLTkybDM2LjktMTAwLjYgMCAxMDAuNiAzOC43IDAgMC0xNDMuMy02MC4yIDAtMzIuMiA4OS4zLTMxLjktODkuMy02MS4yIDAgMCAxNDMuMS02My4yLTE0My4xLTUxLjIgMC02Mi40IDE0My4zIDQzIDAgMTEuOS0yOC43IDY1LjkgMCAxMiAyOC43IDgyLjcgMCAwLTEwMC4zIDM2LjggMTAwLjMgMzQuNCAwek0yODIgMTg1LjRsMTkuNS00Ni45IDE5LjQgNDYuOS0zOC45IDB6Il19LEFiZT17cHJlZml4OiJmYWIiLGljb25OYW1lOiJwaWVkLXBpcGVyLWFsdCIsaWNvbjpbNTc2LDUxMixbXSwiZjFhOCIsIk0yNDQgMjQ2Yy0zLjItMi02LjMtMi45LTEwLjEtMi45LTYuNiAwLTEyLjYgMy4yLTE5LjMgMy43bDEuNyA0LjkgMjcuNy01Ljd6TTM3OS45IDQ0My45Yy0xOSAwLTY0LjEgOS41LTc5LjkgMTkuOGw2LjkgNDUuMWMzNS43IDYuMSA3MC4xIDMuNiAxMDYtOS44LTQuOC0xMC0yMy41LTU1LjEtMzMtNTUuMXpNMzQwLjggMTc3YzYuNiAyLjggMTEuNSA5LjIgMjIuNyAyMi4xIDItMS40IDcuNS01LjIgNy41LTguNiAwLTQuOS0xMS44LTEzLjItMTMuMi0yMyAxMS4yLTUuNyAyNS4yLTYgMzcuNi04LjkgNjguMS0xNi40IDExNi4zLTUyLjkgMTQ2LjgtMTE2LjcgNi4xLTEyLjYgMTEuOC0yNS44IDEyLjQtMzkuOWwtMiAyLjZjLTI4LjQgNTAtMzMgNjMuMi04MS4zIDEwMC0zMS45IDI0LjQtNjkuMiA0MC4yLTEwNi42IDU0LjZsLTYuMy0uMyAwLTIxLjhjLTE5LjYgMS42LTE5LjctMTQuNi0zMS42LTIzLTE4LjcgMjAuNi0zMS42IDQwLjgtNTguOSA1MS4xLTEyLjcgNC44LTE5LjYgMTAtMjUuOSAyMS44IDM0LjktMTYuNCA5MS4yLTEzLjUgOTguOC0xMHpNNTU1LjUgMGwtLjYgMS4xLS4zIC45IC42LS42IC4zLTEuNHpNNDk2LjMgMzgyLjFjLTMzLjktNTYuOS03NS4zLTExOC40LTE1MC0xMTUuNWwtLjMtNmMtMS4xLTEzLjUgMzIuOCAzLjIgMzUuMS0zMWwtMTQuNCA3LjJjLTE5LjgtNDUuNy04LjYtNTQuMy02NS41LTU0LjMtMTQuNyAwLTI2LjcgMS43LTQxLjQgNC42IDIuOSAxOC42IDIuMiAzNi43LTEwLjkgNTAuM2wxOS41IDUuNWMtMS43IDMuMi0yLjkgNi4zLTIuOSA5LjggMCAyMSA0Mi44IDIuOSA0Mi44IDMzLjYgMCAxOC40LTM2LjggNjAuMS01NC45IDYwLjEtOCAwLTUzLjctNTAtNTMuNC02MC4xbC4zLTQuNiA1Mi4zLTExLjVjMTMtMi42IDEyLjMtMjIuNy0yLjktMjIuNy0zLjcgMC00My4xIDkuMi00OS40IDEwLjYtMi01LjItNy41LTE0LjEtMTMuOC0xNC4xLTMuMiAwLTYuMyAzLjItOS41IDQtOS4yIDIuNi0zMSAyLjktMjEuNSAyMC4xTDE1LjkgMjk4LjVjLTUuNSAxLjEtOC45IDYuMy04LjkgMTEuOCAwIDYgNS41IDEwLjkgMTEuNSAxMC45IDggMCAxMzEuMy0yOC40IDE0Ny40LTMyLjIgMi42IDMuMiA0LjYgNi4zIDcuOCA4LjYgMjAuMSAxNC40IDU5LjggODUuOSA3Ni40IDg1LjkgMjQuMSAwIDU4LTIyLjQgNzEuMy00MS45IDMuMi00LjMgNi45LTcuNSAxMi40LTYuOSAuNiAxMy44LTMxLjYgMzQuMi0zMyA0My43LTEuNCAxMC4yLTEgMzUuMi0uMyA0MS4xIDI2LjcgOC4xIDUyLTMuNiA3Ny45LTIuOSA0LjMtMjEgMTAuNi00MS45IDkuOC02My41bC0uMy05LjVjLTEuNC0zNC4yLTEwLjktMzguNS0zNC44LTU4LjYtMS4xLTEuMS0yLjYtMi42LTMuNy00IDIuMi0xLjQgMS4xLTEgNC42LTEuNyA4OC41IDAgNTYuMyAxODMuNiAxMTEuNSAyMjkuOSAzMy4xLTE1IDcyLjUtMjcuOSAxMDMuNS00Ny4yLTI5LTI1LjYtNTIuNi00NS43LTcyLjctNzkuOXpNMzAwLjEgNDI4LjJsMCAyNy4yIDExLjgtMy40LTIuOS0yMy44LTguOSAwek0yMzEuNCAyNzcuOGwyNC4xIDYxLjIgMjEtMTMuOC0zMS4zLTUwLjktMTMuOCAzLjV6bTg0LjQgMTU0LjlsMiAxMi40YzktMS41IDU4LjQtNi42IDU4LjQtMTQuMSAwLTEuNC0uNi0zLjItLjktNC42LTI2LjggMC0zNi45IDMuOC01OS41IDYuM3oiXX0sRGJlPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImxldHRlcmJveGQiLGljb246WzY0MCw1MTIsW10sImU2MmQiLCJNNTIxLjMgMTI4QzU4Ni45IDEyOCA2NDAgMTgxLjEgNjQwIDI0Ni42UzU4Ni45IDM2NS4yIDUyMS4zIDM2NS4yYy00Mi41IDAtNzkuNy0yMi4zLTEwMC43LTU1LjggMTEuNC0xOC4yIDE4LTM5LjcgMTgtNjIuOHMtNi42LTQ0LjYtMTgtNjIuOGwuOC0xLjJjMjAuOC0zMi4zIDU2LjgtNTMuOSA5Ny45LTU0LjZsMiAwek0zMjAgMTI4YzQyLjUgMCA3OS43IDIyLjMgMTAwLjcgNTUuOC0xMS40IDE4LjItMTggMzkuNy0xOCA2Mi44czYuNiA0NC42IDE4IDYyLjhsLS44IDEuMmMtMjAuOCAzMi4zLTU2LjggNTMuOS05Ny45IDU0LjZsLTIgMGMtNDIuNSAwLTc5LjctMjIuMy0xMDAuNy01NS44IDExLjQtMTguMiAxOC0zOS43IDE4LTYyLjhzLTYuNi00NC42LTE4LTYyLjhsLjgtMS4yYzIwLjgtMzIuMyA1Ni44LTUzLjkgOTcuOS01NC42bDIgMHptLTIwMS4zIDBjNDIuNSAwIDc5LjcgMjIuMyAxMDAuNyA1NS44LTExLjQgMTguMi0xOCAzOS43LTE4IDYyLjhzNi42IDQ0LjYgMTggNjIuOGwtLjggMS4yYy0yMC44IDMyLjMtNTYuOCA1My45LTk3LjkgNTQuNmwtMiAwQzUzLjEgMzY1LjEgMCAzMTIuMSAwIDI0Ni42UzUzLjEgMTI4IDExOC43IDEyOHoiXX0sRWJlPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6Im9wZXJhIixpY29uOls1MTIsNTEyLFtdLCJmMjZhIiwiTTMyMS45IDMyLjdjLTE3MC4yIDAtMjUyLjYgMjIzLjgtMTQ3LjUgMzU1LjEgMzYuNSA0NS40IDg4LjYgNzUuNiAxNDcuNSA3NS42IDM2LjMgMCA3MC4zLTExLjEgOTkuNC0zMC40LTQzLjggMzkuMi0xMDEuOSA2My0xNjUuMyA2My0zLjkgMC04IDAtMTEuOS0uMy0xMzEuNS02LjEtMjM2LjEtMTE0LjYtMjM2LjEtMjQ3LjcgMC0xMzcgMTExLTI0OCAyNDgtMjQ4bC44IDBjNjMuMSAuMyAxMjAuNyAyNC4xIDE2NC40IDYzLjEtMjktMTkuNC02My4xLTMwLjQtOTkuMy0zMC40ek00MjMuNyA0MzAuNGMtNDAuOSAyNC43LTkwLjcgMjMuNi0xMzItNS44IDU2LjItMjAuNSA5Ny43LTkxLjYgOTcuNy0xNzYuNiAwLTg0LjctNDEuMi0xNTUuOC05Ny40LTE3Ni42IDQxLjgtMjkuMiA5MS4yLTMwLjMgMTMyLjktNSAxMDUuOSA5OC43IDEwNS41IDI2NS43LTEuMiAzNjR6Il19LFBiZT17cHJlZml4OiJmYWIiLGljb25OYW1lOiJ3ZWlibyIsaWNvbjpbNTEyLDUxMixbXSwiZjE4YSIsIk00MDcgMTc3LjZjNy42LTI0LTEzLjQtNDYuOC0zNy40LTQxLjctMjIgNC44LTI4LjgtMjguMS03LjEtMzIuOCA1MC4xLTEwLjkgOTIuMyAzNy4xIDc2LjUgODQuOC02LjggMjEuMi0zOC44IDEwLjgtMzItMTAuM3pNMjE0LjggNDQ2LjdjLTEwNi4zIDAtMjE0LjgtNTEuNC0yMTQuOC0xMzYuMyAwLTQ0LjMgMjgtOTUuNCA3Ni4zLTE0My43IDk5LjctOTkuNyAyMDMuMi0xMDAuOSAxNzMuNi01LjctNCAxMy4xIDEyLjMgNS43IDEyLjMgNiA3OS41LTMzLjYgMTQwLjUtMTYuOCAxMTQgNTEuNC0zLjcgOS40IDEuMSAxMC45IDguMyAxMy4xIDEzNS43IDQyLjMgMzQuOCAyMTUuMi0xNjkuNyAyMTUuMnpNMzU4LjUgMzAwLjRjLTUuNC01NS43LTc4LjUtOTQtMTYzLjQtODUuNy04NC44IDguNi0xNDguOCA2MC4zLTE0My40IDExNnM3OC41IDk0IDE2My40IDg1LjdjODQuOC04LjYgMTQ4LjgtNjAuMyAxNDMuNC0xMTZ6TTM0Ny45IDM1LjFjLTI1LjkgNS42LTE2LjggNDMuNyA4LjMgMzguMyA3Mi4zLTE1LjIgMTM0LjggNTIuOCAxMTEuNyAxMjQtNy40IDI0LjIgMjkuMSAzNyAzNy40IDEyIDMxLjktOTkuOC01NS4xLTE5NS45LTE1Ny40LTE3NC4zem0tNzguNSAzMTFjLTE3LjEgMzguOC02Ni44IDYwLTEwOS4xIDQ2LjMtNDAuOC0xMy4xLTU4LTUzLjQtNDAuMy04OS43IDE3LjctMzUuNCA2My4xLTU1LjQgMTAzLjQtNDUuMSA0MiAxMC44IDYzLjEgNTAuMiA0NiA4OC41em0tODYuMy0zMGMtMTIuOS01LjQtMzAgLjMtMzggMTIuOS04LjMgMTIuOS00LjMgMjggOC42IDM0IDEzLjEgNiAzMC44IC4zIDM5LjEtMTIuOSA4LTEzLjEgMy43LTI4LjMtOS43LTM0em0zMi42LTEzLjRjLTUuMS0xLjctMTEuNCAuNi0xNC4zIDUuNC0yLjkgNS4xLTEuNCAxMC42IDMuNyAxMi45IDUuMSAyIDExLjctLjMgMTQuNi01LjQgMi44LTUuMiAxLjEtMTAuOS00LTEyLjl6Il19LEliZT17cHJlZml4OiJmYWIiLGljb25OYW1lOiJyZWFkbWUiLGljb246WzU3Niw1MTIsW10sImY0ZDUiLCJNNTI4LjMgNDYuNWwtMTM5LjggMGMtNDguMSAwLTg5LjkgMzMuMy0xMDAuNCA4MC4zLTEwLjYtNDctNTIuMy04MC4zLTEwMC40LTgwLjNMNDggNDYuNUMyMS41IDQ2LjUgMCA2OCAwIDk0LjVMMCAzNDAuM2MwIDI2LjUgMjEuNSA0OCA0OCA0OGw4OS43IDBjMTAyLjIgMCAxMzIuNyAyNC40IDE0Ny4zIDc1IC43IDIuOCA1LjIgMi44IDYgMCAxNC43LTUwLjYgNDUuMi03NSAxNDcuMy03NWw4OS43IDBjMjYuNSAwIDQ4LTIxLjUgNDgtNDhsMC0yNDUuN2MwLTI2LjQtMjEuMy00Ny45LTQ3LjctNDguMXpNMjQyIDMxMS45YzAgMS45LTEuNSAzLjUtMy41IDMuNWwtMTYwLjMgMGMtMS45IDAtMy41LTEuNS0zLjUtMy41bDAtMjIuOWMwLTEuOSAxLjUtMy41IDMuNS0zLjVsMTYwLjQgMGMxLjkgMCAzLjUgMS41IDMuNSAzLjVsMCAyMi45LS4xIDB6bTAtNjAuOWMwIDEuOS0xLjUgMy41LTMuNSAzLjVsLTE2MC4zIDBjLTEuOSAwLTMuNS0xLjUtMy41LTMuNWwwLTIyLjljMC0xLjkgMS41LTMuNSAzLjUtMy41bDE2MC40IDBjMS45IDAgMy41IDEuNSAzLjUgMy41bDAgMjIuOS0uMSAwem0wLTYwLjljMCAxLjktMS41IDMuNS0zLjUgMy41bC0xNjAuMyAwYy0xLjkgMC0zLjUtMS41LTMuNS0zLjVsMC0yMi45YzAtMS45IDEuNS0zLjUgMy41LTMuNWwxNjAuNCAwYzEuOSAwIDMuNSAxLjUgMy41IDMuNWwwIDIyLjktLjEgMHpNNTAxLjMgMzExLjhjMCAxLjktMS41IDMuNS0zLjUgMy41bC0xNjAuMyAwYy0xLjkgMC0zLjUtMS41LTMuNS0zLjVsMC0yMi45YzAtMS45IDEuNS0zLjUgMy41LTMuNWwxNjAuNCAwYzEuOSAwIDMuNSAxLjUgMy41IDMuNWwwIDIyLjktLjEgMHptMC02MC45YzAgMS45LTEuNSAzLjUtMy41IDMuNWwtMTYwLjMgMGMtMS45IDAtMy41LTEuNS0zLjUtMy41bDAtMjIuOWMwLTEuOSAxLjUtMy41IDMuNS0zLjVsMTYwLjQgMGMxLjkgMCAzLjUgMS41IDMuNSAzLjVsMCAyMi45LS4xIDB6bTAtNjAuOWMwIDEuOS0xLjUgMy41LTMuNSAzLjVsLTE2MC4zIDBjLTEuOSAwLTMuNS0xLjUtMy41LTMuNWwwLTIyLjhjMC0xLjkgMS41LTMuNSAzLjUtMy41bDE2MC40IDBjMS45IDAgMy41IDEuNSAzLjUgMy41bDAgMjIuOC0uMSAweiJdfSxOYmU9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiZ29sYW5nIixpY29uOls2NDAsNTEyLFtdLCJlNDBmIiwiTTQwMC4xIDE5NC44Yy0xMC45IDIuOC0xOS45IDQuMy0yOS4xIDcuNi03LjMgMS45LTE0LjcgMy45LTIzLjIgNi4xbC0uNiAuMWMtNC4yIDEuMi00LjYgMS4zLTguNS0zLjItNC43LTUuMy04LjEtOC43LTE0LjYtMTEuOS0xOS43LTkuNi0zOC43LTYuOC01Ni40IDQuNy0yMS4yIDEzLjctMzIuMSAzNC0zMS44IDU5LjIgLjMgMjUgMTcuNCA0NS41IDQxLjIgNDguOSAyMiAyLjggMzkuOC00LjYgNTMuOC0yMC41IDIuMS0yLjYgNC01LjMgNi4xLTguMyAuOC0xIDEuNS0yLjEgMi4zLTMuM2wtNjAuMSAwYy02LjUgMC04LjEtNC01LjktOS4zIDQtOS43IDExLjUtMjUuOSAxNS45LTM0IC45LTEuOCAzLjEtNS44IDYuOS01LjhsMTAxLjEgMGM0LjUtMTMuNCAxMS44LTI2LjkgMjEuNi0zOS43IDIyLjctMjkuOSA0OS4zLTQ1LjUgODcuMi01MiAzMS44LTUuNiA2MS43LTIuNSA4OC45IDE1LjkgMjQuNiAxNi44IDM5LjggMzkuNiA0My45IDY5LjUgNS4zIDQyLjEtNi45IDc2LjMtMzYuNyAxMDUuNi0xOS43IDIwLjktNDQuOSAzNC03My45IDM5LjktNS42IDEtMTEuMSAxLjUtMTYuNSAyLTIuOSAuMi01LjcgLjUtOC41IC44LTI4LjMtLjYtNTQuMi04LjctNzYtMjcuNC0xNS4zLTEzLjMtMjUuOS0yOS42LTMxLjEtNDguNS0zLjcgNy4zLTggMTQuNC0xNCAyMS4xLTIxLjYgMjkuNi01MC45IDQ4LTg3LjkgNTIuOS0zMC42IDQuMS01OC45LTEuOC04My45LTIwLjUtMjMtMTcuNS0zNi4xLTQwLjUtMzkuNS02OS4yLTQuMS0zNCA1LjktNjUuNCAyNi40LTkxLjMgMjIuMi0yOSA1MS41LTQ3LjQgODcuMy01My45IDI5LjMtNi4yIDU3LjMtMS45IDgyLjYgMTUuMyAxNi41IDEwLjkgMjguMyAyNS44IDM2LjEgNDMuOSAxLjkgMi44IC42IDQuNC0zLjEgNS4zek00OC4zIDIwMC40Yy0xLjMgMC0xLjYtLjYtLjktMS42bDYuNi04LjRjLjYtLjkgMi4yLTEuNSAzLjQtMS41bDExMS4zIDBjMS4yIDAgMS41IC45IC45IDEuOGwtNS4zIDguMWMtLjYgMS0yLjIgMS45LTMuMSAxLjlsLTExMi44LS4zek0xLjIgMjI5LjFjLTEuMiAwLTEuNi0uNy0uOS0xLjZsNi41LTguNGMuNi0uOSAyLjItMS42IDMuNC0xLjZsMTQyLjEgMGMxLjIgMCAxLjggMSAxLjUgMS45bC0yLjUgNy41Yy0uMyAxLjItMS41IDEuOS0yLjggMS45TDEuMiAyMjkuMXptNzQuNSAyNi44Yy0uNiAuOS0uMyAxLjggLjkgMS44bDY4IC4zYy45IDAgMi4yLS45IDIuMi0yLjFsLjYtNy41YzAtMS4zLS42LTIuMi0xLjktMi4ybC02Mi4zIDBjLTEuMiAwLTIuNSAuOS0zLjEgMS45bC00LjQgNy44em01MDEuNS0xOGMtLjItMi42LS4zLTQuOC0uNy03LTUuNi0zMC44LTM0LTQ4LjMtNjMuNi00MS40LTI5IDYuNS00Ny43IDI0LjktNTQuNSA1NC4yLTUuNiAyNC4zIDYuMiA0OC45IDI4LjYgNTguOSAxNy4yIDcuNSAzNC4zIDYuNiA1MC44LTEuOSAyNC42LTEzLjYgMzgtMzIuNyAzOS42LTU5LjUtLjEtMS4yLS4xLTIuMy0uMi0zLjN6Il19LEZiZT17cHJlZml4OiJmYWIiLGljb25OYW1lOiJzdGFjay1leGNoYW5nZSIsaWNvbjpbNDQ4LDUxMixbXSwiZjE4ZCIsIk0xOC4xIDMzMi4zbDQxMi43IDAgMCAyMmMwIDM3LjctMjkuMyA2OC02NS4zIDY4bC0xOSAwLTg2LjggODkuNyAwLTg5LjctMTc2LjMgMGMtMzYgMC02NS4zLTMwLjMtNjUuMy02OGwwLTIyem0wLTIzLjZsNDEyLjcgMCAwLTg1LTQxMi43IDAgMCA4NXptMC0xMDkuNGw0MTIuNyAwIDAtODUtNDEyLjcgMCAwIDg1ek0zNjUuNCAwTDgzLjQgMGMtMzYgMC02NS4zIDMwLjMtNjUuMyA2Ny43bDAgMjIuMyA0MTIuNyAwIDAtMjIuM0M0MzAuNyAzMC4zIDQwMS40IDAgMzY1LjQgMHoiXX0sT2JlPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6Imd1bHAiLGljb246WzI1Niw1MTIsW10sImYzYWUiLCJNMjEwIDM5MS4xbC0xNC4xIDI0LjYtNC42IDgwLjJjMCA4LjktMjguMyAxNi4xLTYzLjEgMTYuMXMtNjMuMS03LjItNjMuMS0xNi4xbC01LjgtNzkuNC0xNC45LTI1LjRjNDEuMiAxNy4zIDEyNiAxNi43IDE2NS42IDB6TTE0IDEzNy44TDI3LjYgMjYzLjNjNS45LTIwIDIwLjgtNDcgNDAtNTUuMiA2LjMtMi43IDEyLjctMi43IDE4LjcgLjkgNS4yIDMgOS42IDkuMyAxMC4xIDExLjggMS4yIDYuNS0yIDkuMS00LjUgOS4xLTMgMC01LjMtNC42LTYuOC03LjMtNC4xLTcuMy0xMC4zLTcuNi0xNi45LTIuOC02LjkgNS0xMi45IDEzLjQtMTcuMSAyMC43LTUuMSA4LjgtOS40IDE4LjUtMTIgMjguMi0xLjUgNS42LTIuOSAxNC42LS42IDE5LjkgMSAyLjIgMi41IDMuNiA0LjkgMy42IDUgMCAxMi4zLTYuNiAxNS44LTEwLjEgNC41LTQuNSAxMC4zLTExLjUgMTIuNS0xNmw1LjItMTUuNWMyLjYtNi44IDkuOS01LjYgOS45IDAgMCAxMC4yLTMuNyAxMy42LTEwIDM0LjctNS44IDE5LjUtNy42IDI1LjgtNy42IDI1LjgtLjcgMi44LTMuNCA3LjUtNi4zIDcuNS0xLjIgMC0yLjEtLjQtMi42LTEuMi0xLTEuNC0uOS01LjMtLjgtNi4zIC4yLTMuMiA2LjMtMjIuMiA3LjMtMjUuMi0yIDIuMi00LjEgNC40LTYuNCA2LjYtNS40IDUuMS0xNC4xIDExLjgtMjEuNSAxMS44LTMuNCAwLTUuNi0uOS03LjctMi40bDcuNiA3OS42YzIgNSAzOS4yIDE3LjEgODguMiAxNy4xIDQ5LjEgMCA4Ni4zLTEyLjIgODguMi0xNy4xbDEwLjktOTQuNmMtNS43IDUuMi0xMi4zIDExLjYtMTkuNiAxNC44LTUuNCAyLjMtMTcuNCAzLjgtMTcuNC01LjcgMC01LjIgOS4xLTE0LjggMTQuNC0yMS41IDEuNC0xLjcgNC43LTUuOSA0LjctOC4xIDAtMi45LTYtMi4yLTExLjcgMi41LTMuMiAyLjctNi4yIDYuMy04LjcgOS43LTQuMyA2LTYuNiAxMS4yLTguNSAxNS41LTYuMiAxNC4yLTQuMSA4LjYtOS4xIDIyLTUgMTMuMy00LjIgMTEuOC01LjIgMTQtLjkgMS45LTIuMiAzLjUtNCA0LjUtMS45IDEtNC41IC45LTYuMS0uMy0uOS0uNi0xLjMtMS45LTEuMy0zLjcgMC0uOSAuMS0xLjggLjMtMi43IDEuNS02LjEgNy44LTE4LjEgMTUtMzQuMyAxLjYtMy43IDEtMi42IC44LTIuMy02LjIgNi0xMC45IDguOS0xNC40IDEwLjUtNS44IDIuNi0xMyAyLjYtMTQuNS00LjEtLjEtLjQtLjEtLjgtLjItMS4yLTExLjggOS4yLTI0LjMgMTEuNy0yMC04LjEtNC42IDguMi0xMi42IDE0LjktMjIuNCAxNC45LTQuMSAwLTcuMS0xLjQtOC42LTUuMS0yLjMtNS41IDEuMy0xNC45IDQuNi0yMy44IDEuNy00LjUgNC05LjkgNy4xLTE2LjIgMS42LTMuNCA0LjItNS40IDcuNi00LjUgLjYgLjIgMS4xIC40IDEuNiAuNyAyLjYgMS44IDEuNiA0LjUgLjMgNy4yLTMuOCA3LjUtNy4xIDEzLTkuMyAyMC44LS45IDMuMy0yIDkgMS41IDkgMi40IDAgNC43LS44IDYuOS0yLjQgNC42LTMuNCA4LjMtOC41IDExLjEtMTMuNSAyLTMuNiA0LjQtOC4zIDUuNi0xMi4zIC41LTEuNyAxLjEtMy4zIDEuOC00LjggMS4xLTIuNSAyLjYtNS4xIDUuMi01LjEgMS4zIDAgMi40IC41IDMuMiAxLjUgMS43IDIuMiAxLjMgNC41IC40IDYuOS0yIDUuNi00LjcgMTAuNi02LjkgMTYuNy0xLjMgMy41LTIuNyA4LTIuNyAxMS43IDAgMy40IDMuNyAyLjYgNi44IDEuMiAyLjQtMS4xIDQuOC0yLjggNi44LTQuNSAxLjItNC45IC45LTMuOCAyNi40LTY4LjIgMS4zLTMuMyAzLjctNC43IDYuMS00LjcgMS4yIDAgMi4yIC40IDMuMiAxLjEgMS43IDEuMyAxLjcgNC4xIDEgNi4yLS43IDEuOS0uNiAxLjMtNC41IDEwLjUtNS4yIDEyLjEtOC42IDIwLjgtMTMuMiAzMS45LTEuOSA0LjYtNy43IDE4LjktOC43IDIyLjMtLjYgMi4yLTEuMyA1LjggMSA1LjggNS40IDAgMTkuMy0xMy4xIDIzLjEtMTcgLjItLjMgLjUtLjQgLjktLjYgLjYtMS45IDEuMi0zLjcgMS43LTUuNSAxLjQtMy44IDIuNy04LjIgNS4zLTExLjMgLjgtMSAxLjctMS42IDIuNy0xLjYgMi44IDAgNC4yIDEuMiA0LjIgNCAwIDEuMS0uNyA1LjEtMS4xIDYuMiAxLjQtMS41IDIuOS0zIDQuNS00LjUgMTUtMTMuOSAyNS43LTYuOCAyNS43IC4yIDAgNy40LTguOSAxNy43LTEzLjggMjMuNC0xLjYgMS45LTQuOSA1LjQtNSA2LjQgMCAxLjMgLjkgMS44IDIuMiAxLjggMiAwIDYuNC0zLjUgOC00LjcgNS0zLjkgMTEuOC05LjkgMTYuNi0xNC4xbDE0LjgtMTM2LjhjLTMwLjUgMTcuMS0xOTcuNiAxNy4yLTIyOC4zIC4yem0yMjkuNy04LjVjMCAyMS0yMzEuMiAyMS0yMzEuMiAwIDAtOC44IDUxLjgtMTUuOSAxMTUuNi0xNS45IDkgMCAxNy44IC4xIDI2LjMgLjRMMTY3IDY1LjEgMjI4LjMgLjZjMS40LTEuNCA1LjgtLjIgOS45IDMuNXM2LjYgNy45IDUuMyA5LjNsLS4xIC4xLTU3LjMgNjAuNS0xMCA0MC43YzM5LjkgMi42IDY3LjYgOC4xIDY3LjYgMTQuNnptLTY5LjQgNC42YzAtLjgtLjktMS41LTIuNS0yLjFsLS4yIC44YzAgMS4zLTUgMi40LTExLjEgMi40cy0xMS4xLTEuMS0xMS4xLTIuNGMwLS4xIDAtLjIgLjEtLjNsLjItLjdjLTEuOCAuNi0zIDEuNC0zIDIuMyAwIDIuMSA2LjIgMy43IDEzLjcgMy43IDcuNyAuMSAxMy45LTEuNiAxMy45LTMuN3oiXX0sUmJlPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6InllbHAiLGljb246WzM4NCw1MTIsW10sImYxZTkiLCJNNDIuOSAyNDAuM2w5OS42IDQ4LjZjMTkuMiA5LjQgMTYuMiAzNy41LTQuNSA0Mi43TDMwLjUgMzU4LjVjLTMuMiAuOC02LjQgLjktOS42IC4zcy02LjItMS44LTguOS0zLjctNC45LTQuMy02LjYtNy4xLTIuNy01LjktMy4xLTkuMmMtMy4zLTI4LjgtLjItNTcuOSA5LTg1LjMgMS0zLjEgMi43LTUuOSA0LjktOC4zczQuOS00LjIgNy45LTUuNSA2LjItMS44IDkuNS0xLjggNi40IC45IDkuMyAyLjN6bTQ0IDIzOS4zYzIzLjggMTYuMyA1MC45IDI3LjMgNzkuNCAzMi4xIDMuMiAuNiA2LjUgLjQgOS42LS40czYuMS0yLjMgOC42LTQuNCA0LjYtNC42IDYtNy41IDIuMy02LjEgMi40LTkuNGwzLjktMTEwLjhjLjctMjEuMy0yNS41LTMxLjktMzkuOC0xNi4xTDgyLjggNDQ1LjVjLTIuMiAyLjQtMy44IDUuMy00LjggOC40cy0xLjMgNi40LS45IDkuNiAxLjUgNi4zIDMuMSA5LjEgMy45IDUuMiA2LjYgN2wwIDB6TTIzMi4yIDM2OS43bDU4LjggOTRjMS43IDIuOCA0IDUuMSA2LjggNi45czUuOCAzIDkgMy41IDYuNSAuMyA5LjctLjUgNi4xLTIuNCA4LjYtNC40YzIyLjMtMTguNCA0MC4zLTQxLjUgNTIuNy02Ny42IDEuNC0yLjkgMi4xLTYuMSAyLjItOS40cy0uNi02LjUtMS45LTkuNC0zLjItNS43LTUuNi03LjgtNS4yLTMuOS04LjMtNC45TDI1OC43IDMzNS43Yy0yMC4zLTYuNS0zNy44IDE1LjgtMjYuNSAzMy45ek0zODAuNiAyMzcuNGMtMTEuNS0yNi41LTI4LjctNTAuMi01MC40LTY5LjMtMi40LTIuMS01LjMtMy43LTguNC00LjdzLTYuNC0xLjItOS42LS44LTYuMyAxLjUtOS4xIDMuMi01LjEgNC02LjkgNi43bC02MiA5MS45Yy0xMS45IDE3LjcgNC43IDQwLjYgMjUuMiAzNC43TDM2NiAyNjguNmMzLjEtLjkgNi0yLjUgOC41LTQuNnM0LjUtNC43IDUuOC03LjcgMi4xLTYuMiAyLjItOS40LS42LTYuNS0xLjktOS41bDAgMHpNNjIuMSAzMC4yYy0yLjggMS40LTUuNCAzLjMtNy40IDUuN3MtMy42IDUuMi00LjUgOC4yLTEuMiA2LjItLjkgOS4zIDEuMyA2LjEgMi45IDguOUwxNTYuMyAyNDIuNmMxMS43IDIwLjIgNDIuNiAxMS45IDQyLjYtMTEuNGwwLTIwOC4zYzAtMy4xLS42LTYuMy0xLjgtOS4ycy0zLjEtNS41LTUuNC03LjYtNS0zLjgtOC00LjgtNi4xLTEuNC05LjMtMS4yYy0zOSAzLjEtNzcgMTMuMy0xMTIuMyAzMC4xeiJdfSxCYmU9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiZ29mb3JlIixpY29uOls0NDgsNTEyLFtdLCJmM2E3IiwiTTM0OCAzMTkuOGwtMTMuMiAwIDAgMzQuN2MtMjQuNSAyMy4xLTU2LjMgMzUuOC04OS45IDM1LjgtNzMuMiAwLTEzMi40LTYwLjItMTMyLjQtMTM0LjQgMC03NC4xIDU5LjItMTM0LjQgMTMyLjQtMTM0LjQgMzUuMyAwIDY4LjYgMTQgOTMuNiAzOS40bDYyLjMtNjMuM2MtNDEuOC00Mi4zLTk3LjEtNjUuNi0xNTYuMS02NS42LTEyMi43IDAtMjIwLjcgMTAwLjYtMjIwLjcgMjI0IDAgMTIyLjUgOTcgMjI0IDIyMC43IDIyNCA2My4yIDAgMTI0LjUtMjYuMiAxNzEtODIuNS0yLTI3LjYtMTMuNC03Ny43LTY3LjctNzcuN3pNMzM1LjkgMjA3LjNsLTEwNi4zIDAgMCA4OSAxMTguNCAwYzMzLjUgMCA2MC41IDE1LjEgNzYgNDEuOGwwLTMwLjZjMC02NS4yLTQwLjQtMTAwLjItODguMS0xMDAuMnoiXX0sSGJlPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImF2aWF0byIsaWNvbjpbNjQwLDUxMixbXSwiZjQyMSIsIk0xMDcuMiAyODMuNWwtMTktNDEuOC01Mi4xIDAtMTkgNDEuOC0xNy4xIDAgNjIuMi0xMzEuNCA2Mi4yIDEzMS40LTE3LjIgMHptLTQ1LTk4LjFsLTE5LjYgNDIuNSAzOS4yIDAtMTkuNi00Mi41ek0xNzQuOSAyODcuOGwtNjIuMi0xMzEuNCAxNy4xIDAgNDUuMSA5NiA0NS4xLTk2IDE3IDAtNjIuMSAxMzEuNHptODAuNi00LjNsMC0xMjcuMSAxNS41IDAgMCAxMjcuMS0xNS41IDB6TTQ2NC42IDE2Ny45bDAgMTE1LjYtMTcuMyAwIDAtMTE1LjYtNDEuMiAwIDAtMTEuNSA5OS42IDAgMCAxMS41LTQxLjEgMHpNNjQwIDIxOC44YzAgOS4yLTEuNyAxNy44LTUuMSAyNS44cy04LjIgMTUuMS0xNC4yIDIxLjEtMTMuMSAxMC44LTIxLjEgMTQuMi0xNi42IDUuMS0yNS44IDUuMS0xNy44LTEuNy0yNS44LTUuMS0xNS4xLTguMi0yMS4xLTE0LjItMTAuOC0xMy0xNC4yLTIxLjFjLTMuNC04LTUuMS0xNi42LTUuMS0yNS44czEuNy0xNy44IDUuMS0yNS44IDguMi0xNS4xIDE0LjItMjEuMSAxMy04LjQgMjEuMS0xMS45YzgtMy40IDE2LjYtNS4xIDI1LjgtNS4xczE3LjggMS43IDI1LjggNS4xIDE1LjEgNS44IDIxLjEgMTEuOWM2IDYgMTAuNyAxMy4xIDE0LjIgMjEuMSAzLjQgOCA1LjEgMTYuNiA1LjEgMjUuOHptLTE1LjUgMGMwLTcuMy0xLjMtMTQtMy45LTIwLjNzLTYuMi0xMS43LTEwLjgtMTYuMy0xMC04LjItMTYuMi0xMC45LTEyLjgtNC0xOS44LTQtMTMuNiAxLjMtMTkuOCA0LTExLjYgNi4zLTE2LjIgMTAuOS04LjIgMTAtMTAuOCAxNi4zLTMuOSAxMy4xLTMuOSAyMC4zYzAgNy4zIDEuMyAxNCAzLjkgMjAuM3M2LjIgMTEuNyAxMC44IDE2LjMgMTAgOC4yIDE2LjIgMTAuOSAxMi44IDQgMTkuOCA0IDEzLjYtMS4zIDE5LjgtNCAxMS42LTYuMyAxNi4yLTEwLjkgOC4yLTEwIDEwLjgtMTYuMyAzLjktMTMuMSAzLjktMjAuM3ptLTk0LjggOTYuN2wwLTYuMyA4OC45LTEwLTI0Mi45IDEzLjRjLjYtMi4yIDEuMS00LjYgMS40LTcuMiAuMy0yIC41LTQuMiAuNi02LjVsNjQuOC04LjEtNjQuOSAxLjljMC0uNC0uMS0uNy0uMS0xLjEtMi44LTE3LjItMjUuNS0yMy43LTI1LjUtMjMuN2wtMS4xLTI2LjMgMjMuOCAwIDE5IDQxLjggMTcuMSAwLTYyLjItMTMxLjQtNjIuMiAxMzEuNCAxNy4xIDAgMTktNDEuOCAyMy42IDAtMS4xIDI2LjRzLTIyLjcgNi41LTI1LjUgMjMuN2MtLjEgLjMtLjEgLjctLjEgMS4xbC02NC45LTEuOSA2NC44IDguMWMuMSAyLjMgLjMgNC40IC42IDYuNSAuMyAyLjYgLjggNSAxLjQgNy4ybC0yNDIuOS0xMy41IDg4LjkgMTAgMCA2LjNjLTUuOSAuOS0xMC41IDYtMTAuNSAxMi4yIDAgNi44IDUuNiAxMi40IDEyLjQgMTIuNHMxMi40LTUuNiAxMi40LTEyLjRjMC02LjItNC42LTExLjMtMTAuNS0xMi4ybDAtNS44IDgwLjMgOSAwIDUuNGMtNS43IDEuMS05LjkgNi4yLTkuOSAxMi4xIDAgNi44IDUuNiAxMC4yIDEyLjQgMTAuMnMxMi40LTMuNCAxMi40LTEwLjJjMC02LTQuMy0xMS05LjktMTIuMWwwLTQuOSAyOC40IDMuMiAwIDIzLjctNS45IDAgMCAxMy45IDUuOSAwIDAtNi42IDUgMCAwIDYuNiA1LjkgMCAwLTEzLjgtNS45IDAgMC0yMy4yIDM4LjMgNC4zYzguMSAxMS40IDE5IDEzLjYgMTkgMTMuNmwtLjEgNi43LTUuMSAuMi0uMSAxMi4xIDQuMSAwIC4xLTUgNS4yIDAgLjEgNSA0LjEgMC0uMS0xMi4xLTUuMS0uMi0uMS02LjdzMTAuOS0yLjEgMTktMTMuNmwzOC4zLTQuMyAwIDIzLjItNS45IDAgMCAxMy44IDUuOSAwIDAtNi42IDUgMCAwIDYuNiA1LjkgMCAwLTEzLjgtNS45IDAgMC0yMy43IDI4LjQtMy4yIDAgNC45Yy01LjcgMS4xLTkuOSA2LjItOS45IDEyLjEgMCA2LjggNS42IDEwLjIgMTIuNCAxMC4yczEyLjQtMy40IDEyLjQtMTAuMmMwLTYtNC4zLTExLTkuOS0xMi4xbDAtNS40IDgwLjMtOSAwIDUuOGMtNS45IC45LTEwLjUgNi0xMC41IDEyLjIgMCA2LjggNS42IDEyLjQgMTIuNCAxMi40czEyLjQtNS42IDEyLjQtMTIuNGMtLjItNi4zLTQuNy0xMS40LTEwLjctMTIuM3pNMzI4LjkgMjI3LjlsMTkuNi00Mi41IDE5LjYgNDIuNS0xNy45IDAtMS43LTQwLjMtMS43IDQwLjMtMTcuOSAweiJdfSxxYmU9e3ByZWZpeDoiZmFiIixpY29uTmFtZToicGFkbGV0IixpY29uOls2NDAsNTEyLFtdLCJlNGEwIiwiTTI5Ny45IDBsLjEgMGM3LjYgLjEgMTQuNCA0LjcgMTcuNSAxMS44bDEzMiAzMDguNSAuMy0uMSAuMiAuNC0yLjggMTAtNDIuOSAxNThjLTMuNyAxNi4yLTE5LjcgMjYuMy0zNS44IDIyLjZsLTY4LjQtMTUuNi02OC41IDE1LjZjLTE2LjEgMy43LTMyLjEtNi40LTM1LjgtMjIuNmwtNDIuOS0xNTgtMi43LTEwIC4xLS40IDEzMi4xLTMwOC40YzMtNyA5LjktMTEuNiAxNy41LTExLjh6TTE2MC4xIDMyMi4xbDEzMSAzOS4xIDYuOSAxMjIuNSA3LjktMTIxLjUgMTMwLjYtMzkuMyAuMi0uMS0xMzEgMjUuMS04LjYtMzIwLjItNS4yIDMyMC4yLTEzMS44LTI1Ljh6TTQyNiAyMjIuNmw5NC40LTQxIDczLjggMC0xNTcgMjQ3LjYgMzEuNi0xMDktNDIuOC05Ny42em0xNzEuNS00MS4ybDQxLjQgNzYuMmM0IDcuNS0zLjkgMTUuOS0xMS42IDEyLjJsLTQ3LjYtMjIuNyAxNy44LTY1Ljd6TTEyNy4zIDMxOC41TDE1OC43IDQzMCAxLjYgMTU0LjVjLTUuOS0xMC40IDUuNS0yMiAxNS45LTE2LjJsMTUxLjggODQuMi00Mi4xIDk2eiJdfSxWYmU9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiZWRnZS1sZWdhY3kiLGljb246WzQ0OCw1MTIsW10sImUwNzgiLCJNLTYgMjI4LjJsLjQtLjVjMCAuMiAwIC4zLS4xIC41bC0uMyAwem00NjAuNiAxNS41YzAtNDQtNy44LTg0LjUtMjguOC0xMjIuNC00MS03My40LTExMy42LTExMy4zLTE5OC42LTExMy4zLTEzOS45LS4zLTIxOC4zIDEwNS4yLTIzMi44IDIxOS43IDQyLjQtNjEuMyAxMTcuMS0xMjEuNCAyMjAuNC0xMjUgMCAwIDEwOS43IDAgOTkuNCAxMDVsLTE3NS44IDBjNi40LTM3LjQgMTguNS01OSAzNC4zLTc4LjktNzUgMzQuOS0xMjEuOCA5Ni4xLTEyMC44IDE4OC4zIC44IDcxLjUgNTAuMSAxNDQuOCAxMjAuOCAxNzIgODMuNCAzMS44IDE5Mi44IDcuMiAyNDAuMS0yMS4zbDAtMTA0LjRjLTgwLjkgNTYuNS0yNzAuOSA2MC45LTI3Mi4zLTY3LjZsMzE0LjEgMCAwLTUyLjF6Il19LFJFPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6InNxdWFyZS1sYXN0Zm0iLGljb246WzQ0OCw1MTIsWyJsYXN0Zm0tc3F1YXJlIl0sImYyMDMiLCJNNDQ4IDk2YzAtMzUuMy0yOC43LTY0LTY0LTY0TDY0IDMyQzI4LjcgMzIgMCA2MC43IDAgOTZMMCA0MTZjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMzIwIDBjMzUuMyAwIDY0LTI4LjcgNjQtNjRsMC0zMjB6TTIxMC43IDI4MC44Yy0xLjgtNS41LTMuNC0xMC44LTUtMTUuOS0xMi45LTQxLjktMjEtNjguNC01OC02OC40LTIyLjQgMC00NS4xIDE2LjEtNDUuMSA2MS4yIDAgMzUuMiAxOCA1Ny4yIDQzLjMgNTcuMiAyOC42IDAgNDcuNi0yMS4zIDQ3LjYtMjEuM2wxMS43IDMxLjlzLTE5LjggMTkuNC02MS4yIDE5LjRjLTUxLjMgMC03OS45LTMwLjEtNzkuOS04NS44IDAtNTcuOSAyOC42LTkyIDgyLjUtOTIgNjcuOSAwIDc5LjMgMzUuMyA5Ni40IDg4LjQgMS40IDQuNCAyLjkgOC45IDQuNCAxMy41IDguOCAyNi44IDI0LjIgNDYuMiA2MS4yIDQ2LjIgMjQuOSAwIDM4LjEtNS41IDM4LjEtMTkuMSAwLTE3LjUtMTYuOS0yMS4yLTQwLTI2LjQtMy4yLS43LTYuNS0xLjQtOS45LTIuMi0zMC40LTcuMy00Mi41LTIzLjEtNDIuNS00OCAwLTQwIDMyLjMtNTIuNCA2NS4yLTUyLjQgMzcuNCAwIDYwLjEgMTMuNiA2MyA0Ni42bC0zNi43IDQuNGMtMS41LTE1LjgtMTEtMjIuNC0yOC42LTIyLjQtMTYuMSAwLTI2IDcuMy0yNiAxOS44IDAgMTEgNC44IDE3LjYgMjAuOSAyMS4zIDIuMiAuNSA0LjUgMSA2LjcgMS40IDMxLjEgNi41IDY1LjEgMTMuNyA2NS4xIDU2LjEgLjEgMzYuNy0zMC43IDUwLjYtNzYuMSA1MC42LTYzLjQgMC04NS40LTI4LjYtOTcuMS02NC4xeiJdfSxqYmU9UkUsVWJlPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6Imdvb2RyZWFkcy1nIixpY29uOlszMjAsNTEyLFtdLCJmM2E5IiwiTTEwLjggNDAzLjNsMi44IDBjMTIuNyAwIDI1LjUgMCAzOC4yIC4xIDEuNiAwIDMuMS0uNCAzLjYgMi4xIDcuMSAzNC45IDMwIDU0LjYgNjIuOSA2My45IDI2LjkgNy42IDU0LjEgNy44IDgxLjMgMS44IDMzLjgtNy40IDU2LTI4LjMgNjgtNjAuNCA4LTIxLjUgMTAuNy00My44IDExLTY2LjUgLjEtNS44IC4zLTQ3LS4yLTUyLjhsLS45LS4zYy0uOCAxLjUtMS43IDIuOS0yLjUgNC40LTIyLjEgNDMuMS02MS4zIDY3LjQtMTA1LjQgNjkuMS0xMDMgNC0xNjkuNC01Ny0xNzItMTc2LjItLjUtMjMuNyAxLjgtNDYuOSA4LjMtNjkuNyAyMC42LTcxLjEgNzQuNi0xMTguMiAxNTMuOS0xMTguOCA2MS4zLS40IDEwMS41IDM4LjcgMTE2LjIgNzAuMyAuNSAxLjEgMS4zIDIuMyAyLjQgMS45bDAtNjEuNiA0NC4zIDBjMCAyODAuMyAuMSAzMzIuMiAuMSAzMzIuMi0uMSA3OC41LTI2LjcgMTQzLjctMTAzIDE2Mi4yLTY5LjUgMTYuOS0xNTkgNC44LTE5Ni01Ny4yLTgtMTMuNS0xMS44LTI4LjMtMTMtNDQuNXpNMTU3LjEgMzYuNWMtNTIuNS0uNS0xMDguNSA0MC43LTExNSAxMzMuOC00LjEgNTkgMTQuOCAxMjIuMiA3MS41IDE0OC42IDI3LjYgMTIuOSA3NC4zIDE1IDEwOC4zLTguNyA0Ny42LTMzLjIgNjIuNy05NyA1NC44LTE1NC05LjctNzEuMS00Ny44LTEyMC0xMTkuNi0xMTkuN3oiXX0sV2JlPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImNjLW1hc3RlcmNhcmQiLGljb246WzU3Niw1MTIsW10sImYxZjEiLCJNNDgyLjkgNDEwLjNjMCA2LjgtNC42IDExLjctMTEuMiAxMS43LTYuOCAwLTExLjItNS4yLTExLjItMTEuN3M0LjQtMTEuNyAxMS4yLTExLjdjNi42IDAgMTEuMiA1LjIgMTEuMiAxMS43ek0xNzIuMSAzOTguNmMtNy4xIDAtMTEuMiA1LjItMTEuMiAxMS43UzE2NSA0MjIgMTcyLjEgNDIyYzYuNSAwIDEwLjktNC45IDEwLjktMTEuNy0uMS02LjUtNC40LTExLjctMTAuOS0xMS43em0xMTcuNS0uM2MtNS40IDAtOC43IDMuNS05LjUgOC43bDE5LjEgMGMtLjktNS43LTQuNC04LjctOS42LTguN3ptMTA3LjggLjNjLTYuOCAwLTEwLjkgNS4yLTEwLjkgMTEuN3M0LjEgMTEuNyAxMC45IDExLjcgMTEuMi00LjkgMTEuMi0xMS43YzAtNi41LTQuNC0xMS43LTExLjItMTEuN3ptMTA1LjkgMjYuMWMwIC4zIC4zIC41IC4zIDEuMSAwIC4zLS4zIC41LS4zIDEuMS0uMyAuMy0uMyAuNS0uNSAuOC0uMyAuMy0uNSAuNS0xLjEgLjUtLjMgLjMtLjUgLjMtMS4xIC4zLS4zIDAtLjUgMC0xLjEtLjMtLjMgMC0uNS0uMy0uOC0uNS0uMy0uMy0uNS0uNS0uNS0uOC0uMy0uNS0uMy0uOC0uMy0xLjEgMC0uNSAwLS44IC4zLTEuMSAwLS41IC4zLS44IC41LTEuMSAuMy0uMyAuNS0uMyAuOC0uNSAuNS0uMyAuOC0uMyAxLjEtLjMgLjUgMCAuOCAwIDEuMSAuMyAuNSAuMyAuOCAuMyAxLjEgLjVzLjIgLjYgLjUgMS4xem0tMi4yIDEuNGMuNSAwIC41LS4zIC44LS4zIC4zLS4zIC4zLS41IC4zLS44czAtLjUtLjMtLjhjLS4zIDAtLjUtLjMtMS4xLS4zbC0xLjYgMCAwIDMuNSAuOCAwIDAtMS40IC4zIDAgMS4xIDEuNCAuOCAwLTEuMS0xLjN6TTU3NiA4MWwwIDM1MmMwIDI2LjUtMjEuNSA0OC00OCA0OEw0OCA0ODFjLTI2LjUgMC00OC0yMS41LTQ4LTQ4TDAgODFDMCA1NC41IDIxLjUgMzMgNDggMzNsNDgwIDBjMjYuNSAwIDQ4IDIxLjUgNDggNDh6TTY0IDIyMC42YzAgNzYuNSA2Mi4xIDEzOC41IDEzOC41IDEzOC41IDI3LjIgMCA1My45LTguMiA3Ni41LTIzLjEtNzIuOS01OS4zLTcyLjQtMTcxLjIgMC0yMzAuNS0yMi42LTE1LTQ5LjMtMjMuMS03Ni41LTIzLjEtNzYuNC0uMS0xMzguNSA2Mi0xMzguNSAxMzguMnpNMjg4IDMyOS40YzcwLjUtNTUgNzAuMi0xNjIuMiAwLTIxNy41LTcwLjIgNTUuMy03MC41IDE2Mi42IDAgMjE3LjV6TTE0NS43IDQwNS43YzAtOC43LTUuNy0xNC40LTE0LjctMTQuNy00LjYgMC05LjUgMS40LTEyLjggNi41LTIuNC00LjEtNi41LTYuNS0xMi4yLTYuNS0zLjggMC03LjYgMS40LTEwLjYgNS40bDAtNC40LTguMiAwIDAgMzYuNyA4LjIgMGMwLTE4LjktMi41LTMwLjIgOS0zMC4yIDEwLjIgMCA4LjIgMTAuMiA4LjIgMzAuMmw3LjkgMGMwLTE4LjMtMi41LTMwLjIgOS0zMC4yIDEwLjIgMCA4LjIgMTAgOC4yIDMwLjJsOC4yIDAgMC0yMy0uMiAwek0xOTAuNiAzOTJsLTcuOSAwIDAgNC40Yy0yLjctMy4zLTYuNS01LjQtMTEuNy01LjQtMTAuMyAwLTE4LjIgOC4yLTE4LjIgMTkuMyAwIDExLjIgNy45IDE5LjMgMTguMiAxOS4zIDUuMiAwIDktMS45IDExLjctNS40bDAgNC42IDcuOSAwIDAtMzYuOHptNDAuNSAyNS42YzAtMTUtMjIuOS04LjItMjIuOS0xNS4yIDAtNS43IDExLjktNC44IDE4LjUtMS4xbDMuMy02LjVjLTkuNC02LjEtMzAuMi02LTMwLjIgOC4yIDAgMTQuMyAyMi45IDguMyAyMi45IDE1IDAgNi4zLTEzLjUgNS44LTIwLjcgLjhsLTMuNSA2LjNjMTEuMiA3LjYgMzIuNiA2IDMyLjYtNy41em0zNS40IDkuM2wtMi4yLTYuOGMtMy44IDIuMS0xMi4yIDQuNC0xMi4yLTQuMWwwLTE2LjYgMTMuMSAwIDAtNy40LTEzLjEgMCAwLTExLjItOC4yIDAgMCAxMS4yLTcuNiAwIDAgNy4zIDcuNiAwIDAgMTYuN2MwIDE3LjYgMTcuMyAxNC40IDIyLjYgMTAuOXptMTMuMy0xMy40bDI3LjUgMGMwLTE2LjItNy40LTIyLjYtMTcuNC0yMi42LTEwLjYgMC0xOC4yIDcuOS0xOC4yIDE5LjMgMCAyMC41IDIyLjYgMjMuOSAzMy44IDE0LjJsLTMuOC02Yy03LjggNi40LTE5LjYgNS44LTIxLjktNC45ek0zMzguOSAzOTJjLTQuNi0yLTExLjYtMS44LTE1LjIgNC40bDAtNC40LTguMiAwIDAgMzYuNyA4LjIgMCAwLTIwLjdjMC0xMS42IDkuNS0xMC4xIDEyLjgtOC40bDIuNC03LjZ6bTEwLjYgMTguM2MwLTExLjQgMTEuNi0xNS4xIDIwLjctOC40bDMuOC02LjVjLTExLjYtOS4xLTMyLjctNC4xLTMyLjcgMTUgMCAxOS44IDIyLjQgMjMuOCAzMi43IDE1bC0zLjgtNi41Yy05LjIgNi41LTIwLjcgMi42LTIwLjctOC42ek00MTYuMiAzOTJsLTguMiAwIDAgNC40Yy04LjMtMTEtMjkuOS00LjgtMjkuOSAxMy45IDAgMTkuMiAyMi40IDI0LjcgMjkuOSAxMy45bDAgNC42IDguMiAwIDAtMzYuOHptMzMuNyAwYy0yLjQtMS4yLTExLTIuOS0xNS4yIDQuNGwwLTQuNC03LjkgMCAwIDM2LjcgNy45IDAgMC0yMC43YzAtMTEgOS0xMC4zIDEyLjgtOC40bDIuNC03LjZ6bTQwLjMtMTQuOWwtNy45IDAgMCAxOS4zYy04LjItMTAuOS0yOS45LTUuMS0yOS45IDEzLjkgMCAxOS40IDIyLjUgMjQuNiAyOS45IDEzLjlsMCA0LjYgNy45IDAgMC01MS43em03LjYtNzUuMWwwIDQuNiAuOCAwIDAtNC42IDEuOSAwIDAtLjgtNC42IDAgMCAuOCAxLjkgMHptNi42IDEyMy44YzAtLjUgMC0xLjEtLjMtMS42LS4zLS4zLS41LS44LS44LTEuMXMtLjgtLjUtMS4xLS44Yy0uNSAwLTEuMS0uMy0xLjYtLjMtLjMgMC0uOCAuMy0xLjQgLjMtLjUgLjMtLjggLjUtMS4xIC44LS41IC4zLS44IC44LS44IDEuMS0uMyAuNS0uMyAxLjEtLjMgMS42IDAgLjMgMCAuOCAuMyAxLjQgMCAuMyAuMyAuOCAuOCAxLjEgLjMgLjMgLjUgLjUgMS4xIC44IC41IC4zIDEuMSAuMyAxLjQgLjMgLjUgMCAxLjEgMCAxLjYtLjMgLjMtLjMgLjgtLjUgMS4xLS44cy41LS44IC44LTEuMWMuMy0uNiAuMy0xLjEgLjMtMS40em0zLjItMTI0LjdsLTEuNCAwLTEuNiAzLjUtMS42LTMuNS0xLjQgMCAwIDUuNCAuOCAwIDAtNC4xIDEuNiAzLjUgMS4xIDAgMS40LTMuNSAwIDQuMSAxLjEgMCAwLTUuNHptNC40LTgwLjVjMC03Ni4yLTYyLjEtMTM4LjMtMTM4LjUtMTM4LjMtMjcuMiAwLTUzLjkgOC4yLTc2LjUgMjMuMSA3Mi4xIDU5LjMgNzMuMiAxNzEuNSAwIDIzMC41IDIyLjYgMTUgNDkuNSAyMy4xIDc2LjUgMjMuMSA3Ni40IC4xIDEzOC41LTYxLjkgMTM4LjUtMTM4LjR6Il19LEdiZT17cHJlZml4OiJmYWIiLGljb25OYW1lOiJkaXNjb3Vyc2UiLGljb246WzQ0OCw1MTIsW10sImYzOTMiLCJNMjI1LjkgMzJDMTAzLjMgMzIgMCAxMzAuNSAwIDI1Mi4xIDAgMjU2IC4xIDQ4MCAuMSA0ODBsMjI1LjgtLjJDMzQ4LjYgNDc5LjggNDQ4IDM3Ny41IDQ0OCAyNTUuOVMzNDguNiAzMiAyMjUuOSAzMnpNMjI0IDM4NGMtMTkuNCAwLTM3LjktNC4zLTU0LjQtMTIuMUw4OC41IDM5MiAxMTEuNCAzMTdjLTkuOC0xOC4xLTE1LjQtMzguOS0xNS40LTYxIDAtNzAuNyA1Ny4zLTEyOCAxMjgtMTI4czEyOCA1Ny4zIDEyOCAxMjgtNTcuMyAxMjgtMTI4IDEyOHoiXX0sWWJlPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImJsYWNrLXRpZSIsaWNvbjpbNDQ4LDUxMixbXSwiZjI3ZSIsIk0wIDMybDAgNDQ4IDQ0OCAwIDAtNDQ4LTQ0OCAwek0zMTYuNSAzNTcuMmwtOTIuNSA4OC43LTkyLjUtODguNyA2NC41LTE4NC02NC41LTg2LjYgMTg0LjkgMC02NC40IDg2LjYgNjQuNSAxODR6Il19LEJFPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6InNxdWFyZS1mYWNlYm9vayIsaWNvbjpbNDQ4LDUxMixbImZhY2Vib29rLXNxdWFyZSJdLCJmMDgyIiwiTTY0IDMyQzI4LjcgMzIgMCA2MC43IDAgOTZMMCA0MTZjMCAzNS4zIDI4LjcgNjQgNjQgNjRsOTguMiAwIDAtMTQ1LjgtNTIuOCAwIDAtNzguMiA1Mi44IDAgMC0zMy43YzAtODcuMSAzOS40LTEyNy41IDEyNS0xMjcuNSAxNi4yIDAgNDQuMiAzLjIgNTUuNyA2LjRsMCA3MC44Yy02LS42LTE2LjUtMS0yOS42LTEtNDIgMC01OC4yIDE1LjktNTguMiA1Ny4ybDAgMjcuOCA4My42IDAtMTQuNCA3OC4yLTY5LjMgMCAwIDE0NS44IDEyOSAwYzM1LjMgMCA2NC0yOC43IDY0LTY0bDAtMzIwYzAtMzUuMy0yOC43LTY0LTY0LTY0TDY0IDMyeiJdfSxaYmU9QkUsWGJlPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImJhdHRsZS1uZXQiLGljb246WzUxMiw1MTIsW10sImY4MzUiLCJNNDQ4LjggMjI1LjZjMjYuOSAuMiAzNS42LTcuNCAzOC45LTEyLjQgMTIuNS0xNi4zLTcuMS00Ny42LTUyLjgtNzEuMyAxNy44LTMzLjYgMzAuMS02My43IDM2LjMtODUuMyAzLjQtMTEuOCAxLjEtMTkgLjUtMjAuMy0xLjcgMTAuNS0xNS44IDQ4LjUtNDguMiAxMDAtMjUtMTEuMi01Ni41LTIwLjEtOTMuOC0yMy44LTguOS0xNi45LTM0LjktNjMuOS02MC41LTg4LjktMTYuOC0xNi41LTMwLjMtMjIuNi00MC44LTIzLjVsMCAwYy0xMy44LTEuNi0yMi43IDUuOC0yNy40IDExLTE3LjIgMTguNS0yNC4zIDQ4LjktMjUgODQuMS03LjItMTIuMy0xNy4yLTI0LjYtMjguNS0yNS45bC0uMiAwYy0yMC43LTMuNS0zOC40IDI5LjItMzYgODEuMy0zOC40IDEuNC03MSA1LjgtOTMgMTEuMi05LjkgMi40LTE2LjIgNy4zLTE3LjggOS43IDEtLjQgMjIuNC05LjIgMTExLjYtOS4yIDUuMiA1MyAyOS44IDEwMS44IDI2IDkzLjItOS43IDE1LjQtMzguMiA2Mi40LTQ3LjMgOTcuNy01LjkgMjIuOS00LjQgMzcuNiAuMiA0Ny4xIDUuNiAxMi44IDE2LjQgMTYuNyAyMy4yIDE4LjMgMjUgNS43IDU1LjQtMy42IDg2LjctMjEuMS03LjUgMTIuOC0xMy45IDI4LjUtOS4xIDM5LjMgNy4zIDE5LjYgNDQuNSAxOC43IDg4LjQtOS40IDIwLjIgMzIuMiA0MC4xIDU3LjkgNTUuNyA3NC4xIDIuNiAyLjggNS41IDUuMiA4LjggNy4xIDUuMSAzLjIgOC42IDMuNCA4LjYgMy40LTguMi02LjctMzQtMzgtNjIuNS05MS44IDIyLjItMTYgNDUuNy0zOC45IDY3LjUtNjkuMyAxMjIuOCA0LjYgMTQzLjMtMjQuOCAxNDgtMzEuNiAxNC43LTE5LjkgMy40LTU3LjQtNTcuMy05My43ek0zNzEgMzMxLjhjMjMuOC0zNy43IDMwLjMtNjcuOCAyOS40LTkyLjMgMjcuOSAxNy42IDQ3LjIgMzcuNiA0OS4xIDU4LjggMS4xIDEyLjktOC4xIDI5LjEtNzguNSAzMy41ek0yMTcuMSAzODcuN2M5LjgtNi4yIDE5LjUtMTMuMSAyOS4yLTIwLjUgNi43IDEzLjMgMTMuNiAyNi4xIDIwLjYgMzguMi00MC42IDIxLjktNjguOCAxMi44LTQ5LjgtMTcuN3ptMjE1LTE3MS4zYy0xMC4zLTUuMy0yMS4yLTEwLjMtMzIuNC0xNSA3LjktMTIuMSAxNS41LTI0LjQgMjIuNy0zNi45IDM5LjEgMjQuMSA0NS45IDUzLjIgOS42IDUxLjl6TTI3OS40IDM5OGMtNS41LTExLjQtMTEtMjMuNS0xNi41LTM2LjQgNDMuMiAxLjMgNjIuNC0xOC43IDYzLjMtMjAuNCAwIC4xLTI1IDE1LjYtNjIuNSAxMi4yIDMwLjYtMjUuNiA1OS4xLTUzLjcgODUuMS04NCA4LjctMTAuMiAxNy0yMC42IDI0LjktMzEuMS0uNC0uMy0xLjUtMy0xNi41LTEyLTUxLjcgNjAuMy0xMDIuMyA5OC0xMzIuOCAxMTUuOS0yMC42LTExLjItNDAuOC0zMS44LTU1LjctNjEuNS0yMC0zOS45LTMwLTgyLjQtMzEuNi0xMTYuMSAxMi4zIC45IDI1LjMgMi4yIDM4LjggMy45LTIyLjMgMzYuOC0xNC40IDYzLTEzLjUgNjQuMiAwLS4xLTEtMjkuMiAyMC4xLTU5LjYgOSA1Mi41IDI0IDEwMy44IDQ0LjcgMTUyLjggLjktLjQgMS44IC45IDE4LjctOC4yLTI2LjMtNzQuNS0zMy44LTEzOC4yLTM0LTE3My40IDIwLTEyLjQgNDguMi0xOS44IDgxLjYtMTcuOCA0NC42IDIuNyA4Ni40IDE1LjIgMTE2LjMgMzAuNy03LjEgMTAuNC0xNC45IDIxLjMtMjMuMyAzMi41LTIwLjctMzcuNy00Ny4zLTQzLjktNDguOS00My43IC4xIDAgMjUuOSAxNC4xIDQxLjUgNDcuMi0zNy41LTEzLjgtNzYuMS0yNC40LTExNS4zLTMxLjctMTMuMS0yLjQtMjYuMi00LjQtMzkuNC02LS4xIC40LTEuOCAxLjgtMi4yIDIwLjMgNzcuOSAxNC41IDEzNi42IDM5LjkgMTY3LjIgNTcuMiAuNyAyMy42LTcgNTEuNi0yNS40IDc5LjYtMjQuNiAzNy4zLTU2LjQgNjcuMi04NC44IDg1LjR6bTI3LjQtMjg3Yy00NC42LTEuNy03My42IDcuNC05NC43IDIwLjcgMi01Mi4zIDIxLjMtNzYuNCAzOC4yLTc1LjMgMTYuOS00LjIgNTQuOSA1Mi4yIDU2LjUgNTQuNnptLTEzMC43IDMuMWMuNSAxMi4xIDEuNiAyNC42IDMuMiAzNy4zLTE0LjYtLjktMjguNy0xLjMtNDIuNC0xLjMtLjEgMy4yLS4xLTUxIDI0LjctNDkuNmwuMSAwYzUuOCAxLjEgMTAuNiA2LjkgMTQuNCAxMy42em0tMjguMSAxNjJjMjAuOCAzOS43IDQzLjMgNjAuNiA2NS4zIDcyLjMtNDYuOCAyNC44LTc3LjUgMjAtODQuOSA0LjUtLjItLjItMTEuMS0xNS4zIDE5LjctNzYuOGwwIDB6Il19LEtiZT17cHJlZml4OiJmYWIiLGljb25OYW1lOiJiaW1vYmplY3QiLGljb246WzQ0OCw1MTIsW10sImYzNzgiLCJNNDE2IDMyTDMyIDMyQzE0LjQgMzIgMCA0Ni40IDAgNjRMMCA0NDhjMCAxNy42IDE0LjQgMzIgMzIgMzJsMzg0IDBjMTcuNiAwIDMyLTE0LjQgMzItMzJsMC0zODRjMC0xNy42LTE0LjQtMzItMzItMzJ6TTM1MiAyODkuNGMwIDQ5LjQtMTEuNCA4Mi42LTEwMy44IDgyLjZsLTE2LjkgMGMtNDQuMSAwLTYyLjQtMTQuOS03MC40LTM4LjhsLS45IDAgMCAzNC44LTY0IDAgMC0yMzIgNjQgMCAwIDc0LjcgMS4xIDBjNC42LTMwLjUgMzkuNy0zOC44IDY5LjctMzguOGwxNy4zIDBjOTIuNCAwIDEwMy44IDMzLjEgMTAzLjggODIuNWwwIDM1IC4xIDB6bS02NC0yOC45bDAgMjIuOWMwIDIxLjctMy40IDMzLjgtMzguNCAzMy44bC00NS4zIDBjLTI4LjkgMC00NC4xLTYuNS00NC4xLTM1LjdsMC0xOWMwLTI5LjMgMTUuMi0zNS43IDQ0LjEtMzUuN2w0NS4zIDBjMzUtLjIgMzguNCAxMiAzOC40IDMzLjd6Il19LFFiZT17cHJlZml4OiJmYWIiLGljb25OYW1lOiJzdmVsdGUiLGljb246WzQ0OCw1MTIsW10sImU4NjgiLCJNMjAyLjEgMjYuNGM2Ni44LTQyLjYgMTU5LjMtMjIuNyAyMDYuMSA0NC4zIDExLjEgMTUuNSAxOSAzMy4xIDIzLjIgNTEuOHM0LjcgMzcuOSAxLjMgNTYuN2MtMy4yIDE4LTEwLjEgMzUuMS0yMC4xIDUwLjMgMTQuNiAyNy45IDE5LjYgNjAgMTQgOTEtMy4zIDE4LjQtMTAuNCAzNi0yMC45IDUxLjVzLTI0LjEgMjguNy0zOS45IDM4LjdMMjQ4LjMgNDg1LjZjLTY2LjggNDIuNi0xNTkuMyAyMi43LTIwNi4xLTQ0LjItMTEuMS0xNS41LTE5LTMzLjItMjMuMi01MS44cy00LjctMzcuOS0xLjMtNTYuN2MzLjItMTggMTAuMS0zNS4xIDIwLjEtNTAuMy0xNC43LTI3LjktMTkuNi02MC0xNC05MS4xIDMuMy0xOC40IDEwLjQtMzYgMjAuOS01MS41czI0LjEtMjguNyAzOS45LTM4LjdMMjAyLjEgMjYuNHpNMzE1LjYgNjcuMmMtMTcuOS02LjYtMzcuNC03LjYtNTUuOS0yLjgtOC40IDIuMy0xNi41IDUuOC0yMy44IDEwLjVMMTE4LjUgMTQ5LjdjLTkuNSA2LTE3LjcgMTMuOS0yNCAyMy4zUzg0IDE5Mi44IDgyIDIwMy45Yy0yIDExLjMtMS43IDIyLjkgLjggMzQuMXM3LjMgMjEuOCAxMy45IDMxLjJjMTAuOSAxNS43IDI2LjMgMjcuNiA0NC4yIDM0LjNzMzcuNCA3LjYgNTUuOSAyLjhjOC40LTIuMyAxNi41LTUuOCAyMy44LTEwLjVsNDQuOC0yOC42YzIuMi0xLjQgNC43LTIuNSA3LjItMy4yIDUuNi0xLjQgMTEuNC0xLjIgMTYuOCAuOHMxMCA1LjYgMTMuMyAxMC4zYzIgMi44IDMuNSA2IDQuMiA5LjRzLjkgNi45IC4zIDEwLjNjLS42IDMuMy0xLjkgNi41LTMuOCA5LjMtMS45IDIuOC00LjQgNS4yLTcuMiA3TDE3OC44IDM4Ni4xYy0yLjIgMS40LTQuNyAyLjUtNy4yIDMuMi01LjYgMS40LTExLjQgMS4yLTE2LjgtLjhzLTEwLTUuNi0xMy4zLTEwLjNjLTMuNi01LjEtNS4zLTExLjItNC43LTE3LjRsLjQtNC40LTQuMy0xLjNjLTE2LjUtNS0zMi4xLTEyLjctNDUuOS0yMi45bC02LTQuNC0yLjIgNi43Yy0xLjIgMy42LTIuMSA3LjMtMi44IDExLTIgMTEuMy0xLjcgMjIuOSAuOCAzNC4xczcuMyAyMS44IDEzLjkgMzEuMWMxMC45IDE1LjcgMjYuMyAyNy42IDQ0LjIgMzQuM3MzNy40IDcuNiA1NS44IDIuOGM4LjQtMi4zIDE2LjUtNS44IDIzLjktMTAuNWwxMTcuMy03NC44YzkuNS02IDE3LjctMTMuOSAyNC0yMy4zczEwLjYtMTkuOSAxMi42LTMxYzItMTEuMyAxLjgtMjIuOS0uOC0zNC4xcy03LjMtMjEuOC0xNC0zMS4xYy0xMC45LTE1LjctMjYuMy0yNy42LTQ0LjItMzQuM3MtMzcuNC03LjYtNTUuOS0yLjhjLTguNCAyLjMtMTYuNSA1LjgtMjMuOCAxMC41TDE4NSAyNDQuOGMtMi4yIDEuNC00LjYgMi41LTcuMiAzLjItNS42IDEuNC0xMS41IDEuMi0xNi44LS44cy0xMC01LjYtMTMuMy0xMC4zYy0yLTIuOC0zLjQtNi00LjItOS40cy0uOS02LjktLjItMTAuM2MuNi0zLjMgMS45LTYuNSAzLjgtOS4zczQuNC01LjIgNy4yLTdsMTE3LjQtNzQuOGMyLjItMS40IDQuNy0yLjUgNy4yLTMuMiA1LjYtMS40IDExLjQtMS4xIDE2LjggLjlzMTAgNS42IDEzLjMgMTAuM2MzLjYgNS4xIDUuMiAxMS4zIDQuNyAxNy40bC0uNCA0LjQgNC40IDEuM2MxNi41IDUgMzIgMTIuOCA0NS45IDIzbDYgNC40IDIuMi02LjhjMS4yLTMuNiAyLjEtNy4zIDIuOC0xMSAyLTExLjMgMS44LTIyLjktLjgtMzQuMXMtNy4zLTIxLjgtMTQtMzEuMWMtMTAuOS0xNS43LTI2LjMtMjcuNi00NC4yLTM0LjN6Il19LEpiZT17cHJlZml4OiJmYWIiLGljb25OYW1lOiJzcXVhcmUtZGVza3BybyIsaWNvbjpbNDQ4LDUxMixbXSwiZTg0NCIsIk00MDguOCAzMkM0MzAuNCAzMiA0NDggNDkuNiA0NDggNzEuMmwwIDM2OS42YzAgMjEuNi0xNy42IDM5LjItMzkuMiAzOS4yTDM5LjIgNDgwQzE3LjYgNDgwIDAgNDYyLjQgMCA0NDAuOEwwIDcxLjJDMCA0OS42IDE3LjYgMzIgMzkuMiAzMmwzNjkuNiAwek0xMTAuOSAyNzQuMWwwIDExNC40IDg5LjEtLjFjMjAuNiAwIDM5LjQtMy4yIDU2LjMtOS41czMxLjMtMTUuNCA0My4yLTI3YzEyLjItMTEuOSAyMS42LTI2IDI4LjItNDIuMSA0LjYtMTEuMSA3LjctMjMgOS4yLTM1LjdsLTQzLjggMGMtMS4xIDYuNC0yLjggMTIuNC01LjEgMTguMi00LjIgMTAuOS0xMC4zIDIwLjMtMTguMiAyOC4yLTcuOSA3LjctMTcuNCAxMy43LTI4LjYgMTcuOS0xMS4xIDQuMy0yMy41IDYuNC0zNy4zIDYuNGwtNTAgMCAwLTcwLjYtNDMgLjF6bTAtMTUxLjRsMCAxMTQuNCA0My0uMSAwLTcwLjcgNTAgMGMxMy43IDAgMjYuMiAyLjEgMzcuMyA2LjQgMTEuMSA0LjMgMjAuNiAxMC4zIDI4LjYgMTguMyA3LjkgNy43IDE0IDE3LjEgMTguMiAyOC4yIDIuMyA1LjYgNCAxMS41IDUuMSAxNy44bDQzLjkgLjFjLTEuNC0xMi42LTQuNC0yNC40LTguOS0zNS4zLTYuNi0xNi40LTE2LTMwLjUtMjguMS00Mi4yLTEyLjEtMTEuOS0yNi43LTIxLjEtNDMuNi0yNy41LTE2LjktNi40LTM1LjctOS41LTU2LjMtOS41bC04OSAuMXoiXX0sZXZlPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6InRhaWx3aW5kLWNzcyIsaWNvbjpbNjQwLDUxMixbXSwiZTg2NiIsIk0zMjAgNjRjLTg1LjMgMC0xMzguNyA0Mi43LTE2MCAxMjggMzItNDIuNyA2OS4zLTU4LjcgMTEyLTQ4IDI0LjMgNi4xIDQxLjcgMjMuOCA2MSA0My4zIDMxLjQgMzEuOCA2Ny43IDY4LjcgMTQ3IDY4LjcgODUuMyAwIDEzOC43LTQyLjcgMTYwLTEyOC0zMiA0Mi43LTY5LjMgNTguNy0xMTIgNDgtMjQuMy02LjEtNDEuNy0yMy44LTYxLTQzLjMtMzEuNC0zMS44LTY3LjctNjguNy0xNDctNjguN3pNMTYwIDI1NmMtODUuMyAwLTEzOC43IDQyLjctMTYwIDEyOCAzMi00Mi43IDY5LjMtNTguNyAxMTItNDggMjQuMyA2LjEgNDEuNyAyMy44IDYxIDQzLjMgMzEuNCAzMS44IDY3LjcgNjguNyAxNDcgNjguNyA4NS4zIDAgMTM4LjctNDIuNyAxNjAtMTI4LTMyIDQyLjctNjkuMyA1OC43LTExMiA0OC0yNC4zLTYuMS00MS43LTIzLjgtNjEtNDMuMy0zMS40LTMxLjgtNjcuNy02OC43LTE0Ny02OC43eiJdfSxNanQ9e2ZhU3F1YXJlR2l0aHViOm9FLGZhR2l0aHViU3F1YXJlOks4ZSxmYVRoaW5rUGVha3M6UThlLGZhR29vZ2xlRHJpdmU6SjhlLGZhQXV0b3ByZWZpeGVyOmVkZSxmYVNxdWFyZVZpYWRlbzpsRSxmYVZpYWRlb1NxdWFyZTp0ZGUsZmFDcGFuZWw6YWRlLGZhTWVuZGVsZXk6aWRlLGZhRHJhZnQyZGlnaXRhbDpyZGUsZmFSZXBseWQ6c2RlLGZhRW1waXJlOm5kZSxmYUFjY2Vzc2libGVJY29uOm9kZSxmYVF1b3JhOmxkZSxmYUNjSmNiOmNkZSxmYUZlZG9yYTpkZGUsZmFEdW9saW5nbzpoZGUsZmFGaXJzdGRyYWZ0OnBkZSxmYUZyZWVic2Q6dWRlLGZhT2R5c2VlOmZkZSxmYUdnQ2lyY2xlOm1kZSxmYUNsb3VkZmxhcmU6Z2RlLGZhSGFja2VycmFuazpiZGUsZmFTa3lhdGxhczp2ZGUsZmFEZXNrcHJvOnlkZSxmYVJlc29sdmluZzp4ZGUsZmFCbGFja2JlcnJ5OndkZSxmYVN0cmlwZVM6TWRlLGZhU3F1YXJlQmVoYW5jZTpjRSxmYUJlaGFuY2VTcXVhcmU6emRlLGZhU2VydmljZXN0YWNrOmtkZSxmYVJvY2tldGNoYXQ6U2RlLGZhUmViZWw6Q2RlLGZhU3F1YXJlV2ViQXdlc29tZTpfZGUsZmFMaW5rdHJlZTpUZGUsZmFTaW1wbHlidWlsdDpMZGUsZmFTdHViYmVyOiRkZSxmYUFwcGVyOkFkZSxmYUdvb2dsZVNjaG9sYXI6RGRlLGZhWWFybjpFZGUsZmFTdGFja092ZXJmbG93OlBkZSxmYUJsdWV0b290aDpJZGUsZmFDcmVhdGl2ZUNvbW1vbnNOY0pwOk5kZSxmYVJlZGRpdDpGZGUsZmFDb25uZWN0ZGV2ZWxvcDpPZGUsZmFSZXNlYXJjaGdhdGU6UmRlLGZhU2lnbmFsTWVzc2VuZ2VyOkJkZSxmYVhpbmc6SGRlLGZhU3F1YXJlSnM6ZEUsZmFKc1NxdWFyZTpxZGUsZmFGb250aWNvbnM6VmRlLGZhVXBzOmpkZSxmYUFtYXpvblBheTpVZGUsZmFQYW5kb3JhOldkZSxmYU9wZW5pZDpHZGUsZmFWc2NvOllkZSxmYUdsb2JhbGVha3M6WmRlLGZhVmVubW86WGRlLGZhVWJ1bnR1OktkZSxmYVZpYWNvaW46UWRlLGZhWmhpaHU6SmRlLGZhWWFuZGV4OmU3ZSxmYVBpeGl2OnQ3ZSxmYU9wZW5haTphN2UsZmFTaXRoOmk3ZSxmYUp1bGlhOnI3ZSxmYU5mY0RpcmVjdGlvbmFsOnM3ZSxmYUNyZWF0aXZlQ29tbW9uc0J5Om43ZSxmYVVtYnJhY286bzdlLGZhSG9vbGk6bDdlLGZhU3F1YXJlR2l0OmhFLGZhR2l0U3F1YXJlOmM3ZSxmYU9kbm9rbGFzc25pa2k6ZDdlLGZhRHJ1cGFsOmg3ZSxmYUJsb2dnZXJCOnA3ZSxmYUludmlzaW9uOnU3ZSxmYUZhY2Vib29rRjpmN2UsZmFDZW50b3M6bTdlLGZhU2NhbGV3YXk6ZzdlLGZhQ2NBbWF6b25QYXk6YjdlLGZhRWJheTp2N2UsZmFDb250YW86eTdlLGZhRWxsbzp4N2UsZmFTaXN0cml4Onc3ZSxmYVBlcmlzY29wZTpNN2UsZmFFeHBlZGl0ZWRzc2w6ejdlLGZhTmFwc3RlcjprN2UsZmFEZWxpY2lvdXM6UzdlLGZhR3VpbGRlZDpDN2UsZmFPYnNpZGlhbjpfN2UsZmFYYm94OlQ3ZSxmYVVudGFwcGQ6TDdlLGZhR29vZ2xlUGx1c0c6JDdlLGZhR2l0aHViQWx0OkE3ZSxmYUdldFBvY2tldDpEN2UsZmFHbGlkZTpFN2UsZmFCaXR5OlA3ZSxmYVdwZXhwbG9yZXI6STdlLGZhTWVnYXBvcnQ6TjdlLGZhTGVldGNvZGU6RjdlLGZhTWRiOk83ZSxmYVBhZ2U0OlI3ZSxmYVRoZVJlZFlldGk6QjdlLGZhSmlyYTpIN2UsZmFGZWRleDpxN2UsZmFFdmVybm90ZTpWN2UsZmFVc2I6ajdlLGZhQW5ncnljcmVhdGl2ZTpVN2UsZmFNaXp1bmk6VzdlLGZhSXRjaElvOkc3ZSxmYVdpbmRvd3M6WTdlLGZhU3R1bWJsZXVwb246WjdlLGZhR29vZ2xlOklmLGZhRGlzY29yZDpYN2UsZmFIYWNrZXJOZXdzOks3ZSxmYUVsZXZlbnR5OnBFLGZhMTF0eTpRN2UsZmFUZWFtc3BlYWs6SjdlLGZhU3VwcGxlOmVoZSxmYVNxdWFyZVR3aXR0ZXI6dUUsZmFUd2l0dGVyU3F1YXJlOnRoZSxmYVZpbTphaGUsZmFGb250QXdlc29tZTpQZixmYUZvbnRBd2Vzb21lRmxhZzppaGUsZmFGb250QXdlc29tZUxvZ29GdWxsOnJoZSxmYVdpcnNpbmRoYW5kd2VyazpmRSxmYVdzaDpzaGUsZmFab29tOm5oZSxmYUNvbmZsdWVuY2U6b2hlLGZhRGlnZzpsaGUsZmFUaHJlYWRzOmNoZSxmYVdwcmVzc3I6bUUsZmFSZW5kYWN0OmRoZSxmYVlvYXN0OmhoZSxmYU5pbWJscjpwaGUsZmFQaXhlbGZlZDp1aGUsZmFZYWhvbzpmaGUsZmFCbHVlc2t5Om1oZSxmYVNjcmliZDpnaGUsZmFDcmVhdGl2ZUNvbW1vbnNQZDpiaGUsZmFFYXJseWJpcmRzOnZoZSxmYVN5bWZvbnljYXN0czp5aGUsZmFTcXVhcmVPZG5va2xhc3NuaWtpOmdFLGZhT2Rub2tsYXNzbmlraVNxdWFyZTp4aGUsZmFNYXJrZG93bjp3aGUsZmFUeXBvMzpNaGUsZmFKb29tbGE6emhlLGZhV2VpeGluOmtoZSxmYUdydW50OlNoZSxmYVN1cHBvcnRub3c6Q2hlLGZhUm9ja3JtczpfaGUsZmFVbnNwbGFzaDpUaGUsZmFTcXVhcmVJbnN0YWdyYW06YkUsZmFJbnN0YWdyYW1TcXVhcmU6TGhlLGZhRmlyc3RPcmRlckFsdDokaGUsZmFGdWxjcnVtOkFoZSxmYUFyY2hMaW51eDpEaGUsZmFGZWRpdmVyc2U6RWhlLGZhQnJhdmVSZXZlcnNlOlBoZSxmYUF2aWFuZXg6SWhlLGZhTnM4Ok5oZSxmYVNxdWFyZVBpbnRlcmVzdDp2RSxmYVBpbnRlcmVzdFNxdWFyZTpGaGUsZmFCbHVldG9vdGhCOk9oZSxmYUdyaXBmaXJlOlJoZSxmYVNxdWFyZUdvb2dsZVBsdXM6eUUsZmFHb29nbGVQbHVzU3F1YXJlOkJoZSxmYUdpdGVlOkhoZSxmYVhtcHA6cWhlLGZhQXBwU3RvcmU6VmhlLGZhV2l4OmpoZSxmYUludGVyY29tOlVoZSxmYVJlYWN0ZXVyb3BlOldoZSxmYVdhemU6R2hlLGZhQ3JlYXRpdmVDb21tb25zUmVtaXg6WWhlLGZhQmFuZGNhbXA6WmhlLGZhU3F1YXJlV2ViQXdlc29tZVN0cm9rZTpYaGUsZmFWaW1lb1Y6S2hlLGZhU3RyYXZhOlFoZSxmYVVuaXJlZ2lzdHJ5OkpoZSxmYUNjRGluZXJzQ2x1YjplcGUsZmFLdWJlcm5ldGVzOnRwZSxmYVBpbnRlcmVzdDphcGUsZmFBbGdvbGlhOmlwZSxmYVN0YWNrcGF0aDpycGUsZmFPY3RvcHVzRGVwbG95OnNwZSxmYVlhbW1lcjpucGUsZmFNb2R4Om9wZSxmYVNxdWFyZVRocmVhZHM6bHBlLGZhT2xkUmVwdWJsaWM6Y3BlLGZhU3VzZTpkcGUsZmFBcHBTdG9yZUlvczpocGUsZmFVbHRyYWx5dGljc1lvbG86cHBlLGZhU3F1YXJlRHJpYmJibGU6eEUsZmFEcmliYmJsZVNxdWFyZTp1cGUsZmFVaWtpdDpmcGUsZmFTdXBlcnBvd2VyczptcGUsZmFZb3V0dWJlOmdwZSxmYUVtYmVyOmJwZSxmYUJvb3RzdHJhcDp2cGUsZmFJdHVuZXM6eXBlLGZhU3F1YXJlWGluZzp3RSxmYVhpbmdTcXVhcmU6eHBlLGZhQ3NzM0FsdDp3cGUsZmFTcXVhcmVzcGFjZTpNcGUsZmFUcmVsbG86enBlLGZhVmlhZGVvOmtwZSxmYVNlYXJjaGVuZ2luOlNwZSxmYVVucmVhbEVuZ2luZTpDcGUsZmFQYXlwYWw6X3BlLGZhU3F1YXJlQmx1ZXNreTpUcGUsZmFEQW5kREJleW9uZDpMcGUsZmFNaWNyb3NvZnQ6JHBlLGZhRmx5OkFwZSxmYUNjU3RyaXBlOkRwZSxmYVdvcmRwcmVzc1NpbXBsZTpFcGUsZmFTZWxsc3k6UHBlLGZhRGFzaGN1YmU6SXBlLGZhR2l0dGVyOk5wZSxmYVdvbGZQYWNrQmF0dGFsaW9uOkZwZSxmYUxhc3RmbTpPcGUsZmFTaG9wd2FyZTpScGUsZmFCbG9nZ2VyOkJwZSxmYUVkZ2U6SHBlLGZhSW94aG9zdDpxcGUsZmFTY2hsaXg6VnBlLGZhREFuZEQ6anBlLGZhVnVlanM6VXBlLGZhTWV0YTpXcGUsZmFDcmVhdGl2ZUNvbW1vbnNTaGFyZTpHcGUsZmFTdHVkaW92aW5hcmk6WXBlLGZhQml0YnVja2V0OlpwZSxmYVZrOlhwZSxmYUdpdGh1YjpLcGUsZmFDb2RpZXBpZTpRcGUsZmFQaWVkUGlwZXI6SnBlLGZhUmFzcGJlcnJ5UGk6ZTllLGZhQ3NzMzp0OWUsZmFIdWJzcG90OmE5ZSxmYUNtcGxpZDppOWUsZmFEeWFsb2c6cjllLGZhRWxlbWVudG9yOnM5ZSxmYUZpcnN0T3JkZXI6bjllLGZhRHJpYmJibGU6bzllLGZhTGlua2VkaW46TmYsZmFDY1BheXBhbDpsOWUsZmFEaGw6YzllLGZhVGV4OmQ5ZSxmYUNsYXVkZTpoOWUsZmFTaG9waWZ5OnA5ZSxmYVNxdWFyZVJlZGRpdDpNRSxmYVJlZGRpdFNxdWFyZTp1OWUsZmFDcmVhdGl2ZUNvbW1vbnNOYzpmOWUsZmFHYWxhY3RpY1JlcHVibGljOm05ZSxmYUZhY2Vib29rOkZmLGZhR2l0bGFiOmc5ZSxmYVFxOmI5ZSxmYVN0cmlwZTp2OWUsZmFEYWlseW1vdGlvbjp5OWUsZmFTdGVhbTp4OWUsZmFWZW5tb1Y6dzllLGZhU25hcGNoYXQ6ekUsZmFTbmFwY2hhdEdob3N0Ok05ZSxmYUdhbGFjdGljU2VuYXRlOno5ZSxmYVBob2VuaXhGcmFtZXdvcms6azllLGZhR2l0OlM5ZSxmYU9wdGluTW9uc3RlcjpDOWUsZmFKZW5raW5zOl85ZSxmYVNsaWRlc2hhcmU6VDllLGZhVWJlcjpMOWUsZmFEaWdpdGFsT2NlYW46JDllLGZhU291bmRjbG91ZDpBOWUsZmFTcXVhcmVGaWdtYTpEOWUsZmFDcmVhdGl2ZUNvbW1vbnNTYTpFOWUsZmFDaHJvbWU6UDllLGZhVHJhZGVGZWRlcmF0aW9uOkk5ZSxmYVZhYWRpbjpOOWUsZmFEZXZpYW50YXJ0OkY5ZSxmYU1lZGl1bTpMNSxmYU1lZGl1bU06TzllLGZhT3BlbmNhcnQ6UjllLGZhWUNvbWJpbmF0b3I6QjllLGZhTGluZTpIOWUsZmFBbWlsaWE6cTllLGZhQXN5bW1ldHJpazpWOWUsZmFQaGFicmljYXRvcjpqOWUsZmFCb3RzOlU5ZSxmYVZpbmU6VzllLGZhTWVkcnQ6RzllLGZhT3NpOlk5ZSxmYUdnOlo5ZSxmYUJ1eXNlbGxhZHM6WDllLGZhR29vZ2xlUGx1czpLOWUsZmFTY3JlZW5wYWw6UTllLGZhQml0Y29pbjpKOWUsZmFTd2lmdDpldWUsZmFGaWxlc1BpbndoZWVsOnR1ZSxmYUxhcmF2ZWw6YXVlLGZhV3Bmb3JtczppdWUsZmFTcGVha2VyRGVjazpydWUsZmFGbGlja3I6c3VlLGZhQ2NWaXNhOm51ZSxmYVVwd29yazpvdWUsZmFLYWthb1RhbGs6bHVlLGZhRmx1dHRlcjpjdWUsZmFCdWZmZXI6ZHVlLGZhR3JhdGlwYXk6aHVlLGZhR29vZ2xlUGF5OnB1ZSxmYUFwcGxlOnV1ZSxmYVR1bWJscjpmdWUsZmFQaG9lbml4U3F1YWRyb246bXVlLGZhQ2VudGVyY29kZTpndWUsZmFEZWJpYW46YnVlLGZhTWFzdG9kb246dnVlLGZhU2tldGNoOnl1ZSxmYVdlYkF3ZXNvbWU6eHVlLGZhU2Fzczp3dWUsZmFUaHJlZW1hOk11ZSxmYVNxdWFyZVdoYXRzYXBwOmtFLGZhV2hhdHNhcHBTcXVhcmU6enVlLGZhU2t5cGU6a3VlLGZhQW5ndWxhcjpTdWUsZmFDaXJjbGVadWxpcDpDdWUsZmFPcGVuc3VzZTpfdWUsZmFEcm9wYm94OlR1ZSxmYURlZXplcjpMdWUsZmFDcmVhdGl2ZUNvbW1vbnNTYW1wbGluZzokdWUsZmFKZWRpT3JkZXI6QXVlLGZhUlByb2plY3Q6RHVlLGZhSW5zdGFsb2Q6RXVlLGZhQ2FuYWRpYW5NYXBsZUxlYWY6UHVlLGZhRXRoZXJldW06SXVlLGZhSG91eno6TnVlLGZhVmliZXI6RnVlLGZhS2lja3N0YXJ0ZXI6U0UsZmFTcXVhcmVLaWNrc3RhcnRlcjpPdWUsZmFTcG90aWZ5OlJ1ZSxmYUxlYW5wdWI6QnVlLGZhSmF2YTpIdWUsZmFOZmNTeW1ib2w6cXVlLGZhV29kdTpWdWUsZmFTcXVhcmVTdGVhbTpDRSxmYVN0ZWFtU3F1YXJlOmp1ZSxmYUNyZWF0aXZlQ29tbW9uc05jRXU6VXVlLGZhTnBtOld1ZSxmYUNsb3Vkc2NhbGU6R3VlLGZhVGhlbWVjbzpZdWUsZmFHb29nbGVQbGF5Olp1ZSxmYUtvcnZ1ZTpYdWUsZmFXM2M6S3VlLGZhR3JhdjpRdWUsZmFBd3M6SnVlLGZhR2xpZGVHOmVmZSxmYUpzZmlkZGxlOnRmZSxmYUtleWJhc2U6YWZlLGZhTHVtb25Ecm9wOmlmZSxmYUZvcmdlam86cmZlLGZhUG9zdGdyZXNxbDpzZmUsZmFXZWVibHk6bmZlLGZhRG9ja2VyOm9mZSxmYU1hZ2VudG86bGZlLGZhVG9yQnJvd3NlcjpjZmUsZmFHaXRBbHQ6ZGZlLGZhRmlyZWZveEJyb3dzZXI6aGZlLGZhQ2xvdWRzbWl0aDpwZmUsZmFXaXphcmRzT2ZUaGVDb2FzdDp1ZmUsZmFDcmVhdGl2ZUNvbW1vbnNOZDpmZmUsZmFVc3BzOm1mZSxmYVNxdWFyZUxldHRlcmJveGQ6Z2ZlLGZhTWFuZGFsb3JpYW46YmZlLGZhU2xhY2s6X0UsZmFTbGFja0hhc2g6T2YsZmFBbmdlbGxpc3Q6dmZlLGZhQW5kcm9pZDp5ZmUsZmFNZWV0dXA6eGZlLGZhRm9udGljb25zRmk6d2ZlLGZhUGFsZmVkOk1mZSxmYVdwYmVnaW5uZXI6emZlLGZhRGlhc3BvcmE6a2ZlLGZhUHJvZHVjdEh1bnQ6U2ZlLGZhU3F1YXJlVXB3b3JrOkNmZSxmYUN1dHRsZWZpc2g6X2ZlLGZhTWVkYXBwczpUZmUsZmFQaXg6TGZlLGZhU3F1YXJlVHVtYmxyOlRFLGZhVHVtYmxyU3F1YXJlOiRmZSxmYVJlYWN0OkFmZSxmYUh1Z2dpbmdGYWNlOkRmZSxmYUp4bDpFZmUsZmFTcXVhcmVMaW5rZWRpbjpQZmUsZmFDc3M6SWZlLGZhSGFzaG5vZGU6TmZlLGZhUmVkZGl0QWxpZW46RmZlLGZhVGlrdG9rOlJmLGZhV29yZHByZXNzOk9mZSxmYUlkZWFsOlJmZSxmYVBpZWRQaXBlclBwOkJmZSxmYVVzc3VubmFoOkhmZSxmYUZvcnRBd2Vzb21lQWx0OnFmZSxmYUJ1cm9tb2JlbGV4cGVydGU6VmZlLGZhQmlsaWJpbGk6amZlLGZhTmVvczpVZmUsZmFEZXY6V2ZlLGZhSG90amFyOkdmZSxmYURvY2h1YjpZZmUsZmFWaW1lbzpaZmUsZmFNYXhjZG46WGZlLGZhU3F1YXJlRm9udEF3ZXNvbWVTdHJva2U6TEUsZmFGb250QXdlc29tZUFsdDpLZmUsZmFTcGVha2FwOlFmZSxmYUZhbnRhc3lGbGlnaHRHYW1lczpKZmUsZmFMaW51eDplbWUsZmFDb3R0b25CdXJlYXU6dG1lLGZhR29vZ2xlV2FsbGV0OmFtZSxmYUZvdXJzcXVhcmU6aW1lLGZhU2hpcnRzaW5idWxrOnJtZSxmYU1pbnRiaXQ6c21lLGZhWnVsaXA6bm1lLGZhU3RheWxpbmtlZDpvbWUsZmFXZWJmbG93OmxtZSxmYVJlbnJlbjpjbWUsZmFLb0ZpOmRtZSxmYVJldjpobWUsZmFLZXljZG46cG1lLGZhSGlyZUFIZWxwZXI6dW1lLGZhU3F1YXJlSGFja2VyTmV3czokRSxmYUhhY2tlck5ld3NTcXVhcmU6Zm1lLGZhQ3JlYXRpdmVDb21tb25zUGRBbHQ6bW1lLGZhT3JjaWQ6Z21lLGZhQm9hcmRHYW1lR2VlazpBRSxmYUJnZzpibWUsZmFCZWhhbmNlOnZtZSxmYU1vbmVybzp5bWUsZmFGaWdtYTp4bWUsZmFJbnN0YWdyYW06QmYsZmFQZXJieXRlOndtZSxmYVNxdWFyZVZpbWVvOkRFLGZhVmltZW9TcXVhcmU6TW1lLGZhUHVzaGVkOnptZSxmYU1peGNsb3VkOmttZSxmYVlhbmRleEludGVybmF0aW9uYWw6U21lLGZhSGl2ZTpDbWUsZmFDcmVhdGl2ZUNvbW1vbnNaZXJvOl9tZSxmYVNxdWFyZVNuYXBjaGF0OkVFLGZhU25hcGNoYXRTcXVhcmU6VG1lLGZhVGhlbWVpc2xlOkxtZSxmYURhcnRMYW5nOiRtZSxmYURlcGxveWRvZzpBbWUsZmFGbGlwYm9hcmQ6RG1lLGZhQnV5TkxhcmdlOkVtZSxmYVdhdGNobWFuTW9uaXRvcmluZzpQbWUsZmFIaXBzOkltZSxmYUNsb3VkdmVyc2lmeTpObWUsZmFHb29kcmVhZHM6Rm1lLGZhVGlkYWw6T21lLGZhVW5pdHk6Um1lLGZhVGVuY2VudFdlaWJvOkJtZSxmYUZyZWVDb2RlQ2FtcDpIbWUsZmFYVHdpdHRlcjpxbWUsZmFTdGlja2VyTXVsZTpWbWUsZmFUd2l0Y2g6am1lLGZhS2lja3N0YXJ0ZXJLOlVtZSxmYUNyaXRpY2FsUm9sZTpXbWUsZmFTdGVhbVN5bWJvbDpHbWUsZmFNYWlsY2hpbXA6WW1lLGZhTHVtb246Wm1lLGZhTnV0cml0aW9uaXg6WG1lLGZhQ3JlYXRpdmVDb21tb25zU2FtcGxpbmdQbHVzOkttZSxmYVJlZGhhdDpRbWUsZmFTcXVhcmVQaWVkUGlwZXI6UEUsZmFQaWVkUGlwZXJTcXVhcmU6Sm1lLGZhV2hhdHNhcHA6ZWdlLGZhSW1kYjp0Z2UsZmFQeXRob246YWdlLGZhQ2FzaEFwcDppZ2UsZmFQaW50ZXJlc3RQOnJnZSxmYVdobWNzOnNnZSxmYUpvZ2V0Om5nZSxmYVNxdWFyZVlvdXR1YmU6SUUsZmFZb3V0dWJlU3F1YXJlOm9nZSxmYUF0bGFzc2lhbjpsZ2UsZmFQaWVkUGlwZXJIYXQ6Y2dlLGZhSW50ZXJuZXRFeHBsb3JlcjpkZ2UsZmFBaXJibmI6aGdlLGZhSnM6cGdlLGZhUXVpbnNjYXBlOnVnZSxmYUFkdmVyc2FsOmZnZSxmYUNyZWF0aXZlQ29tbW9uczptZ2UsZmFOb3Rpb246Z2dlLGZhQ2hyb21lY2FzdDpiZ2UsZmFVbHRyYWx5dGljc0h1Yjp2Z2UsZmFXaWtpcGVkaWFXOnlnZSxmYVNpdHJveDp4Z2UsZmFTcXVhcmVHaXRsYWI6TkUsZmFHaXRsYWJTcXVhcmU6d2dlLGZhU2hvZWxhY2U6TWdlLGZhT3BlbnN0cmVldG1hcDp6Z2UsZmFTZWxsY2FzdDprZ2UsZmFNaXg6U2dlLGZhQ2NBcHBsZVBheTpDZ2UsZmFTb2xhbmE6X2dlLGZhVHlwZXNjcmlwdDpUZ2UsZmFCcmF2ZTpMZ2UsZmFFdHN5OiRnZSxmYUJ0YzpBZ2UsZmFBZG46RGdlLGZhU3F1YXJlWFR3aXR0ZXI6RWdlLGZhU3F1YXJlRm9udEF3ZXNvbWU6UGdlLGZhRm9ydW1iZWU6SWdlLGZhNDJHcm91cDpGRSxmYUlubm9zb2Z0Ok5nZSxmYVN0dW1ibGV1cG9uQ2lyY2xlOkZnZSxmYVN5bWZvbnk6T2dlLGZhU2FsZXNmb3JjZTpSZ2UsZmFTb3VyY2V0cmVlOkJnZSxmYUxpbmtlZGluSW46SGdlLGZhSHRtbDU6cWdlLGZhUnVzdDpWZ2UsZmFIb3JuYmlsbDpqZ2UsZmFQaHA6VWdlLGZhRGlzcXVzOldnZSxmYTUwMHB4OkdnZSxmYUFmZmlsaWF0ZXRoZW1lOllnZSxmYVJlZFJpdmVyOlpnZSxmYVR3aXR0ZXI6SGYsZmFGb3J0QXdlc29tZTpYZ2UsZmFNaXhlcjpLZ2UsZmFMeWZ0OlFnZSxmYUFwcGxlUGF5OkpnZSxmYUFydHN0YXRpb246ZWJlLGZhTm9kZUpzOnRiZSxmYVVuY2hhcnRlZDphYmUsZmFQbGF5c3RhdGlvbjppYmUsZmFNaWNyb2Jsb2c6cmJlLGZhR2l0a3Jha2VuOnNiZSxmYVRlbGVncmFtOk9FLGZhVGVsZWdyYW1QbGFuZTpuYmUsZmFVbHRyYWx5dGljczpvYmUsZmFJdHVuZXNOb3RlOmxiZSxmYUxlc3M6Y2JlLGZhRmlyZWZveDpkYmUsZmFLYWdnbGU6aGJlLGZhRmFjZWJvb2tNZXNzZW5nZXI6cGJlLGZhQXVkaWJsZTp1YmUsZmFQYXRyZW9uOmZiZSxmYVZudjptYmUsZmFQYWdlbGluZXM6Z2JlLGZhQW1hem9uOmJiZSxmYUVudmlyYTp2YmUsZmFMaW5vZGU6eWJlLGZhQWNjdXNvZnQ6eGJlLGZhRXJsYW5nOndiZSxmYVVuaXNvbjpNYmUsZmFDY0Rpc2NvdmVyOnpiZSxmYVNhZmFyaTprYmUsZmFTcGFjZUF3ZXNvbWU6U2JlLGZhTm9kZTpDYmUsZmFDb2RlcGVuOl9iZSxmYVJhdmVscnk6VGJlLGZhQWxpcGF5OkxiZSxmYUNjQW1leDokYmUsZmFQaWVkUGlwZXJBbHQ6QWJlLGZhTGV0dGVyYm94ZDpEYmUsZmFPcGVyYTpFYmUsZmFXZWlibzpQYmUsZmFSZWFkbWU6SWJlLGZhR29sYW5nOk5iZSxmYVN0YWNrRXhjaGFuZ2U6RmJlLGZhR3VscDpPYmUsZmFZZWxwOlJiZSxmYUdvZm9yZTpCYmUsZmFBdmlhdG86SGJlLGZhUGFkbGV0OnFiZSxmYUVkZ2VMZWdhY3k6VmJlLGZhU3F1YXJlTGFzdGZtOlJFLGZhTGFzdGZtU3F1YXJlOmpiZSxmYUdvb2RyZWFkc0c6VWJlLGZhQ2NNYXN0ZXJjYXJkOldiZSxmYURpc2NvdXJzZTpHYmUsZmFCbGFja1RpZTpZYmUsZmFTcXVhcmVGYWNlYm9vazpCRSxmYUZhY2Vib29rU3F1YXJlOlpiZSxmYUJhdHRsZU5ldDpYYmUsZmFCaW1vYmplY3Q6S2JlLGZhU3ZlbHRlOlFiZSxmYVNxdWFyZURlc2twcm86SmJlLGZhVGFpbHdpbmRDc3M6ZXZlfX0pO3ZhciB6anQsSEUsYXZlLGl2ZSxxRSxydmUsRDUsc3ZlLG52ZSxvdmUsbHZlLFZFLGN2ZSxkdmUsaHZlLEU1LHB2ZSxqRSx1dmUsVUUsZnZlLG12ZSxndmUsYnZlLFdFLHZ2ZSxHRSx5dmUsWUUseHZlLFpFLHd2ZSxYRSxNdmUsS0UsenZlLFFFLGt2ZSxTdmUsSkUsQ3ZlLGVQLF92ZSx0UCxUdmUsYVAsTHZlLCR2ZSxpUCxBdmUsclAsRHZlLHNQLEV2ZSxuUCxQdmUsb1AsSXZlLE52ZSxGdmUscWYsT3ZlLFJ2ZSxCdmUsSHZlLHF2ZSxWdmUsanZlLFV2ZSxWZixXdmUsR3ZlLGxQLFl2ZSxadmUsWHZlLEt2ZSxRdmUsSnZlLGV5ZSx0eWUsY1AsYXllLGl5ZSxyeWUsY2wsc3llLG55ZSxkUCxveWUsbHllLGhQLGN5ZSxYZixkeWUsaHllLGpmLHB5ZSx1eWUscFAsZnllLG15ZSxneWUsdVAsYnllLGZQLHZ5ZSxVZix5eWUseHllLG1QLHd5ZSxnUCxNeWUsenllLGt5ZSxiUCxTeWUsdlAsQ3llLHlQLF95ZSx4UCxUeWUsTHllLCR5ZSxBeWUsd1AsRHllLEV5ZSxNUCxQeWUsSXllLHpQLE55ZSxGeWUsa1AsT3llLFJ5ZSxCeWUsJDUsSHllLHF5ZSxWeWUsUDUsanllLFV5ZSxXeWUsU1AsR3llLFl5ZSxDUCxaeWUsX1AsWHllLEE1LEt5ZSxReWUsSnllLFRQLGV4ZSxXZix0eGUsYXhlLGl4ZSxyeGUsTFAsc3hlLEdmLG54ZSxveGUsJFAsbHhlLEFQLGN4ZSxkeGUsRFAsaHhlLEVQLHB4ZSxZZix1eGUsZnhlLG14ZSxJNSxneGUsYnhlLHZ4ZSx5eGUsUFAseHhlLElQLHd4ZSxOUCxNeGUsRlAsenhlLE9QLGt4ZSxSUCxTeGUsWmYsQ3hlLF94ZSxUeGUsTHhlLEJQLCR4ZSxIUCxBeGUscVAsRHhlLFZQLEV4ZSxQeGUsSXhlLE54ZSxGeGUsT3hlLFJ4ZSxqUCxCeGUsVVAsSHhlLHF4ZSxXUCxWeGUsR1AsanhlLFlQLFV4ZSxLZixXeGUsWlAsR3hlLFl4ZSxYUCxaeGUsS1AsWHhlLEt4ZSxReGUsUVAsSnhlLGV3ZSxKUCx0d2UsYXdlLGl3ZSxyd2UsZUksc3dlLHRJLG53ZSxhSSxvd2UsbHdlLGN3ZSxpSSxkd2UsckksaHdlLHNJLHB3ZSx1d2UsbkksZndlLG9JLG13ZSxnd2UsbEksYndlLHZ3ZSx5d2Usa2p0LHh3ZT1iKCgpPT57emp0PSJmYXIiLEhFPXtwcmVmaXg6ImZhciIsaWNvbk5hbWU6InNxdWFyZS1taW51cyIsaWNvbjpbNDQ4LDUxMixbNjE3NjcsIm1pbnVzLXNxdWFyZSJdLCJmMTQ2IiwiTTY0IDgwYy04LjggMC0xNiA3LjItMTYgMTZsMCAzMjBjMCA4LjggNy4yIDE2IDE2IDE2bDMyMCAwYzguOCAwIDE2LTcuMiAxNi0xNmwwLTMyMGMwLTguOC03LjItMTYtMTYtMTZMNjQgODB6TTAgOTZDMCA2MC43IDI4LjcgMzIgNjQgMzJsMzIwIDBjMzUuMyAwIDY0IDI4LjcgNjQgNjRsMCAzMjBjMCAzNS4zLTI4LjcgNjQtNjQgNjRMNjQgNDgwYy0zNS4zIDAtNjQtMjguNy02NC02NEwwIDk2ek0xMzYgMjMybDE3NiAwYzEzLjMgMCAyNCAxMC43IDI0IDI0cy0xMC43IDI0LTI0IDI0bC0xNzYgMGMtMTMuMyAwLTI0LTEwLjctMjQtMjRzMTAuNy0yNCAyNC0yNHoiXX0sYXZlPUhFLGl2ZT17cHJlZml4OiJmYXIiLGljb25OYW1lOiJjYWxlbmRhci1jaGVjayIsaWNvbjpbNDQ4LDUxMixbXSwiZjI3NCIsIk0zMjggMGMxMy4zIDAgMjQgMTAuNyAyNCAyNGwwIDQwIDMyIDBjMzUuMyAwIDY0IDI4LjcgNjQgNjRsMCAyODhjMCAzNS4zLTI4LjcgNjQtNjQgNjRMNjQgNDgwYy0zNS4zIDAtNjQtMjguNy02NC02NEwwIDEyOEMwIDkyLjcgMjguNyA2NCA2NCA2NGwzMiAwIDAtNDBjMC0xMy4zIDEwLjctMjQgMjQtMjRzMjQgMTAuNyAyNCAyNGwwIDQwIDE2MCAwIDAtNDBjMC0xMy4zIDEwLjctMjQgMjQtMjR6TTY0IDExMmMtOC44IDAtMTYgNy4yLTE2IDE2bDAgMjg4YzAgOC44IDcuMiAxNiAxNiAxNmwzMjAgMGM4LjggMCAxNi03LjIgMTYtMTZsMC0yODhjMC04LjgtNy4yLTE2LTE2LTE2TDY0IDExMnptMjMwLjcgNjUuOWM3LjgtMTAuNyAyMi44LTEzLjEgMzMuNS01LjMgMTAuNyA3LjggMTMuMSAyMi44IDUuMyAzMy41TDIxMS40IDM3NC4xYy00LjEgNS43LTEwLjUgOS4zLTE3LjUgOS44LTcgLjUtMTMuOS0yLTE4LjgtNi45bC01NS45LTU1LjljLTkuNC05LjQtOS40LTI0LjYgMC0zMy45czI0LjYtOS40IDMzLjkgMGwzNiAzNiAxMDUuNi0xNDUuMnoiXX0scUU9e3ByZWZpeDoiZmFyIixpY29uTmFtZToiZmFjZS1raXNzIixpY29uOls1MTIsNTEyLFsxMjg1MzUsImtpc3MiXSwiZjU5NiIsIk00NjQgMjU2YTIwOCAyMDggMCAxIDAgLTQxNiAwIDIwOCAyMDggMCAxIDAgNDE2IDB6TTAgMjU2YTI1NiAyNTYgMCAxIDEgNTEyIDAgMjU2IDI1NiAwIDEgMSAtNTEyIDB6bTI0MCAwbDMyIDBjMjYuNSAwIDQ4IDIxLjUgNDggNDggMCAxMi4zLTQuNiAyMy41LTEyLjIgMzIgNy42IDguNSAxMi4yIDE5LjcgMTIuMiAzMiAwIDI2LjUtMjEuNSA0OC00OCA0OGwtMzIgMGMtOC44IDAtMTYtNy4yLTE2LTE2czcuMi0xNiAxNi0xNmwxNiAwYzguOCAwIDE2LTcuMiAxNi0xNnMtNy4yLTE2LTE2LTE2bC0xNiAwYy04LjggMC0xNi03LjItMTYtMTZzNy4yLTE2IDE2LTE2bDE2IDBjOC44IDAgMTYtNy4yIDE2LTE2cy03LjItMTYtMTYtMTZsLTE2IDBjLTguOCAwLTE2LTcuMi0xNi0xNnM3LjItMTYgMTYtMTZ6bS05Ni00OGEzMiAzMiAwIDEgMSA2NCAwIDMyIDMyIDAgMSAxIC02NCAwem0xOTItMzJhMzIgMzIgMCAxIDEgMCA2NCAzMiAzMiAwIDEgMSAwLTY0eiJdfSxydmU9cUUsRDU9e3ByZWZpeDoiZmFyIixpY29uTmFtZToicGFzdGUiLGljb246WzUxMiw1MTIsWyJmaWxlLWNsaXBib2FyZCJdLCJmMGVhIiwiTTY0IDQ4bDIyNCAwYzguOCAwIDE2IDcuMiAxNiAxNmwwIDQ4IDQ4IDAgMC00OGMwLTM1LjMtMjguNy02NC02NC02NEw2NCAwQzI4LjcgMCAwIDI4LjcgMCA2NEwwIDM4NGMwIDM1LjMgMjguNyA2NCA2NCA2NGwxMTIgMCAwLTQ4LTExMiAwYy04LjggMC0xNi03LjItMTYtMTZMNDggNjRjMC04LjggNy4yLTE2IDE2LTE2em0xNzYgNzJjMC0xMy4zLTEwLjctMjQtMjQtMjRMMTA0IDk2Yy0xMy4zIDAtMjQgMTAuNy0yNCAyNHMxMC43IDI0IDI0IDI0bDEwNS42IDBjOC44LTguNiAxOS0xNS44IDMwLjItMjEuMSAuMS0uOSAuMi0xLjkgLjItMi45ek00NDggNDY0bC0xNjAgMGMtOC44IDAtMTYtNy4yLTE2LTE2bDAtMjI0YzAtOC44IDcuMi0xNiAxNi0xNmwxMDEuNSAwYzQuMiAwIDguMyAxLjcgMTEuMyA0LjdsNTguNSA1OC41YzMgMyA0LjcgNy4xIDQuNyAxMS4zTDQ2NCA0NDhjMCA4LjgtNy4yIDE2LTE2IDE2ek0yMjQgMjI0bDAgMjI0YzAgMzUuMyAyOC43IDY0IDY0IDY0bDE2MCAwYzM1LjMgMCA2NC0yOC43IDY0LTY0bDAtMTY1LjVjMC0xNy02LjctMzMuMy0xOC43LTQ1LjNsLTU4LjUtNTguNWMtMTItMTItMjguMy0xOC43LTQ1LjMtMTguN0wyODggMTYwYy0zNS4zIDAtNjQgMjguNy02NCA2NHoiXX0sc3ZlPUQ1LG52ZT17cHJlZml4OiJmYXIiLGljb25OYW1lOiJoYW5kLXBvaW50LWxlZnQiLGljb246WzUxMiw1MTIsW10sImYwYTUiLCJNNjQgMTI4bDE3Ny42IDBjLTEgNS4yLTEuNiAxMC41LTEuNiAxNmwwIDE2LTE3NiAwYy04LjggMC0xNi03LjItMTYtMTZzNy4yLTE2IDE2LTE2em0yMjQgMTZjMC0xNy43IDE0LjMtMzIgMzItMzJsMjQgMGM2Ni4zIDAgMTIwIDUzLjcgMTIwIDEyMGwwIDQ4YzAgNTIuNS0zMy43IDk3LjEtODAuNyAxMTMuNCAuNS0zLjEgLjctNi4yIC43LTkuNCAwLTIwLTkuMi0zNy45LTIzLjYtNDkuNyA0LjktOSA3LjYtMTkuNCA3LjYtMzAuMyAwLTE1LjEtNS4zLTI5LTE0LTQwIDguOC0xMSAxNC0yNC45IDE0LTQwbDAtNDBjMC0xMy4zLTEwLjctMjQtMjQtMjRzLTI0IDEwLjctMjQgMjRsMCA0MGMwIDguOC03LjIgMTYtMTYgMTZzLTE2LTcuMi0xNi0xNmwwLTgwem0zMi04MGwwIDBjLTE4IDAtMzQuNiA2LTQ4IDE2TDY0IDgwQzI4LjcgODAgMCAxMDguNyAwIDE0NHMyOC43IDY0IDY0IDY0bDgyIDBjLTEuMyA1LjEtMiAxMC41LTIgMTYgMCAyNS4zIDE0LjcgNDcuMiAzNiA1Ny42LTIuNiA3LTQgMTQuNS00IDIyLjQgMCAyMCA5LjIgMzcuOSAyMy42IDQ5LjctNC45IDktNy42IDE5LjQtNy42IDMwLjMgMCAzNS4zIDI4LjcgNjQgNjQgNjRsODggMGM5Mi44IDAgMTY4LTc1LjIgMTY4LTE2OGwwLTQ4YzAtOTIuOC03NS4yLTE2OC0xNjgtMTY4bC0yNCAwek0yNTYgNDAwYy04LjggMC0xNi03LjItMTYtMTZzNy4yLTE2IDE2LTE2bDY0IDBjOC44IDAgMTYgNy4yIDE2IDE2cy03LjIgMTYtMTYgMTZsLTY0IDB6TTI0MCAyMjRjMCA1LjUgLjcgMTAuOSAyIDE2bC0zNCAwYy04LjggMC0xNi03LjItMTYtMTZzNy4yLTE2IDE2LTE2bDMyIDAgMCAxNnptMjQgNjRsNDAgMGM4LjggMCAxNiA3LjIgMTYgMTZzLTcuMiAxNi0xNiAxNmwtNjQgMGMtOC44IDAtMTYtNy4yLTE2LTE2czcuMi0xNiAxNi0xNmwyNCAweiJdfSxvdmU9e3ByZWZpeDoiZmFyIixpY29uTmFtZToiZmlsZS1leGNlbCIsaWNvbjpbMzg0LDUxMixbXSwiZjFjMyIsIk02NCA0OGwxMTIgMCAwIDg4YzAgMzkuOCAzMi4yIDcyIDcyIDcybDg4IDAgMCAyNDBjMCA4LjgtNy4yIDE2LTE2IDE2TDY0IDQ2NGMtOC44IDAtMTYtNy4yLTE2LTE2TDQ4IDY0YzAtOC44IDcuMi0xNiAxNi0xNnpNMjI0IDY3LjlsOTIuMSA5Mi4xLTY4LjEgMGMtMTMuMyAwLTI0LTEwLjctMjQtMjRsMC02OC4xek02NCAwQzI4LjcgMCAwIDI4LjcgMCA2NEwwIDQ0OGMwIDM1LjMgMjguNyA2NCA2NCA2NGwyNTYgMGMzNS4zIDAgNjQtMjguNyA2NC02NGwwLTI2MS41YzAtMTctNi43LTMzLjMtMTguNy00NS4zTDI0Mi43IDE4LjdDMjMwLjcgNi43IDIxNC41IDAgMTk3LjUgMEw2NCAwem05OS4yIDI2NS42Yy04LTEwLjYtMjMtMTIuOC0zMy42LTQuOHMtMTIuOCAyMy00LjggMzMuNkwxNjIgMzQ0IDEyNC44IDM5My42Yy04IDEwLjYtNS44IDI1LjYgNC44IDMzLjZzMjUuNiA1LjggMzMuNi00LjhMMTkyIDM4NCAyMjAuOCA0MjIuNGM4IDEwLjYgMjMgMTIuOCAzMy42IDQuOHMxMi44LTIzIDQuOC0zMy42TDIyMiAzNDQgMjU5LjIgMjk0LjRjOC0xMC42IDUuOC0yNS42LTQuOC0zMy42cy0yNS42LTUuOC0zMy42IDQuOEwxOTIgMzA0IDE2My4yIDI2NS42eiJdfSxsdmU9e3ByZWZpeDoiZmFyIixpY29uTmFtZToiZW52ZWxvcGUiLGljb246WzUxMiw1MTIsWzEyODM4Niw5OTkzLDYxNDQzXSwiZjBlMCIsIk02MS40IDY0QzI3LjUgNjQgMCA5MS41IDAgMTI1LjQgMCAxMjYuMyAwIDEyNy4xIC4xIDEyOEwwIDEyOCAwIDM4NGMwIDM1LjMgMjguNyA2NCA2NCA2NGwzODQgMGMzNS4zIDAgNjQtMjguNyA2NC02NGwwLTI1Ni0uMSAwYzAtLjkgLjEtMS43IC4xLTIuNiAwLTMzLjktMjcuNS02MS40LTYxLjQtNjEuNEw2MS40IDY0ek00NjQgMTkyLjNMNDY0IDM4NGMwIDguOC03LjIgMTYtMTYgMTZMNjQgNDAwYy04LjggMC0xNi03LjItMTYtMTZsMC0xOTEuNyAxNTQuOCAxMTcuNGMzMS40IDIzLjkgNzQuOSAyMy45IDEwNi40IDBMNDY0IDE5Mi4zek00OCAxMjUuNEM0OCAxMTggNTQgMTEyIDYxLjQgMTEybDM4OS4yIDBjNy40IDAgMTMuNCA2IDEzLjQgMTMuNCAwIDQuMi0yIDguMi01LjMgMTAuN0wyODAuMiAyNzEuNWMtMTQuMyAxMC44LTM0LjEgMTAuOC00OC40IDBMNTMuMyAxMzYuMWMtMy4zLTIuNS01LjMtNi41LTUuMy0xMC43eiJdfSxWRT17cHJlZml4OiJmYXIiLGljb25OYW1lOiJzcXVhcmUtY2FyZXQtZG93biIsaWNvbjpbNDQ4LDUxMixbImNhcmV0LXNxdWFyZS1kb3duIl0sImYxNTAiLCJNMzg0IDQzMmM4LjggMCAxNi03LjIgMTYtMTZsMC0zMjBjMC04LjgtNy4yLTE2LTE2LTE2TDY0IDgwYy04LjggMC0xNiA3LjItMTYgMTZsMCAzMjBjMCA4LjggNy4yIDE2IDE2IDE2bDMyMCAwem02NC0xNmMwIDM1LjMtMjguNyA2NC02NCA2NEw2NCA0ODBjLTM1LjMgMC02NC0yOC43LTY0LTY0TDAgOTZDMCA2MC43IDI4LjcgMzIgNjQgMzJsMzIwIDBjMzUuMyAwIDY0IDI4LjcgNjQgNjRsMCAzMjB6TTIyNCAzNTJjLTYuNyAwLTEzLTIuOC0xNy42LTcuN2wtMTA0LTExMmMtNi41LTctOC4yLTE3LjItNC40LTI1LjlTMTEwLjUgMTkyIDEyMCAxOTJsMjA4IDBjOS41IDAgMTguMiA1LjcgMjIgMTQuNHMyLjEgMTguOS00LjQgMjUuOWwtMTA0IDExMmMtNC41IDQuOS0xMC45IDcuNy0xNy42IDcuN3oiXX0sY3ZlPVZFLGR2ZT17cHJlZml4OiJmYXIiLGljb25OYW1lOiJ0cnVjayIsaWNvbjpbNTc2LDUxMixbMTI4NjY2LDk5NTFdLCJmMGQxIiwiTTY0IDgwYy04LjggMC0xNiA3LjItMTYgMTZsMCAyODhjMCA4LjggNy4yIDE2IDE2IDE2bDMuMyAwYzEwLjQtMzYuOSA0NC40LTY0IDg0LjctNjRzNzQuMiAyNy4xIDg0LjcgNjRsMTAyLjYgMGM0LjktMTcuNCAxNS4xLTMyLjcgMjguNy00My45TDM2OCA5NmMwLTguOC03LjItMTYtMTYtMTZMNjQgODB6bTMuMyAzNjhMNjQgNDQ4Yy0zNS4zIDAtNjQtMjguNy02NC02NEwwIDk2QzAgNjAuNyAyOC43IDMyIDY0IDMybDI4OCAwYzM1LjMgMCA2NCAyOC43IDY0IDY0bDAgMzIgNTUuNCAwYzE3IDAgMzMuMyA2LjcgNDUuMyAxOC43bDQwLjYgNDAuNmMxMiAxMiAxOC43IDI4LjMgMTguNyA0NS4zTDU3NiAzODRjMCAzNS4zLTI4LjcgNjQtNjQgNjRsLTMuMyAwYy0xMC40IDM2LjktNDQuNCA2NC04NC43IDY0cy03NC4yLTI3LjEtODQuNy02NGwtMTAyLjYgMGMtMTAuNCAzNi45LTQ0LjQgNjQtODQuNyA2NHMtNzQuMi0yNy4xLTg0LjctNjR6TTQxNiAyNTZsMTEyIDAgMC0yMy40YzAtNC4yLTEuNy04LjMtNC43LTExLjNsLTQwLjYtNDAuNmMtMy0zLTcuMS00LjctMTEuMy00LjdsLTU1LjQgMCAwIDgwem0wIDQ4bDAgMzIuNGMyLjYtLjIgNS4zLS40IDgtLjQgNDAuMyAwIDc0LjIgMjcuMSA4NC43IDY0bDMuMyAwYzguOCAwIDE2LTcuMiAxNi0xNmwwLTgwLTExMiAwek0xNTIgNDY0YTQwIDQwIDAgMSAwIDAtODAgNDAgNDAgMCAxIDAgMCA4MHptMjcyIDBhNDAgNDAgMCAxIDAgMC04MCA0MCA0MCAwIDEgMCAwIDgweiJdfSxodmU9e3ByZWZpeDoiZmFyIixpY29uTmFtZToiYmVsbCIsaWNvbjpbNDQ4LDUxMixbMTI4Mjc2LDYxNjAyXSwiZjBmMyIsIk0yMjQgMGMtMTMuMyAwLTI0IDEwLjctMjQgMjRsMCA5LjdDMTE4LjYgNDUuMyA1NiAxMTUuNCA1NiAyMDBsMCAxNC41YzAgMzcuNy0xMCA3NC43LTI5IDEwNy4zTDUuMSAzNTkuMkMxLjggMzY1IDAgMzcxLjUgMCAzNzguMiAwIDM5OS4xIDE2LjkgNDE2IDM3LjggNDE2bDM3Mi40IDBjMjAuOSAwIDM3LjgtMTYuOSAzNy44LTM3LjggMC02LjctMS44LTEzLjMtNS4xLTE5TDQyMSAzMjEuN2MtMTktMzIuNi0yOS02OS42LTI5LTEwNy4zbDAtMTQuNWMwLTg0LjYtNjIuNi0xNTQuNy0xNDQtMTY2LjNsMC05LjdjMC0xMy4zLTEwLjctMjQtMjQtMjR6TTM5Mi40IDM2OGwtMzM2LjkgMCAxMi45LTIyLjFDOTEuNyAzMDYgMTA0IDI2MC42IDEwNCAyMTQuNWwwLTE0LjVjMC02Ni4zIDUzLjctMTIwIDEyMC0xMjBzMTIwIDUzLjcgMTIwIDEyMGwwIDE0LjVjMCA0Ni4yIDEyLjMgOTEuNSAzNS41IDEzMS40TDM5Mi40IDM2OHpNMTU2LjEgNDY0YzkuOSAyOCAzNi42IDQ4IDY3LjkgNDhzNTgtMjAgNjcuOS00OGwtMTM1LjggMHoiXX0sRTU9e3ByZWZpeDoiZmFyIixpY29uTmFtZToibWVzc2FnZSIsaWNvbjpbNTEyLDUxMixbImNvbW1lbnQtYWx0Il0sImYyN2EiLCJNMjAzLjcgNTEyLjlzMCAwIDAgMGwtMzcuOCAyNi43Yy03LjMgNS4yLTE2LjkgNS44LTI0LjkgMS43UzEyOCA1MjkgMTI4IDUyMGwwLTcyLTMyIDBjLTUzIDAtOTYtNDMtOTYtOTZMMCAxMjhDMCA3NSA0MyAzMiA5NiAzMmwzMjAgMGM1MyAwIDk2IDQzIDk2IDk2bDAgMjI0YzAgNTMtNDMgOTYtOTYgOTZsLTEyMC40IDAtOTEuOSA2NC45em02NC4zLTEwNC4xYzguMS01LjcgMTcuOC04LjggMjcuNy04LjhMNDE2IDQwMGMyNi41IDAgNDgtMjEuNSA0OC00OGwwLTIyNGMwLTI2LjUtMjEuNS00OC00OC00OEw5NiA4MGMtMjYuNSAwLTQ4IDIxLjUtNDggNDhsMCAyMjRjMCAyNi41IDIxLjUgNDggNDggNDhsNTYgMGMxMC40IDAgMTkuMyA2LjYgMjIuNiAxNS45IC45IDIuNSAxLjQgNS4yIDEuNCA4LjFsMCA0OS43YzMyLjctMjMuMSA2My4zLTQ0LjcgOTEuOS02NC45eiJdfSxwdmU9RTUsakU9e3ByZWZpeDoiZmFyIixpY29uTmFtZToiZmFjZS1kaXp6eSIsaWNvbjpbNTEyLDUxMixbImRpenp5Il0sImY1NjciLCJNNDY0IDI1NmEyMDggMjA4IDAgMSAwIC00MTYgMCAyMDggMjA4IDAgMSAwIDQxNiAwek0wIDI1NmEyNTYgMjU2IDAgMSAxIDUxMiAwIDI1NiAyNTYgMCAxIDEgLTUxMiAwek0xMzQuMSAxNTMuOWwyNS45IDI1LjkgMjUuOS0yNS45YzcuOC03LjggMjAuNS03LjggMjguMyAwczcuOCAyMC41IDAgMjguM2wtMjUuOSAyNS45IDI1LjkgMjUuOWM3LjggNy44IDcuOCAyMC41IDAgMjguM3MtMjAuNSA3LjgtMjguMyAwbC0yNS45LTI1LjktMjUuOSAyNS45Yy03LjggNy44LTIwLjUgNy44LTI4LjMgMHMtNy44LTIwLjUgMC0yOC4zbDI1LjktMjUuOS0yNS45LTI1LjljLTcuOC03LjgtNy44LTIwLjUgMC0yOC4zczIwLjUtNy44IDI4LjMgMHptMTkyIDBsMjUuOSAyNS45IDI1LjktMjUuOWM3LjgtNy44IDIwLjUtNy44IDI4LjMgMHM3LjggMjAuNSAwIDI4LjNsLTI1LjkgMjUuOSAyNS45IDI1LjljNy44IDcuOCA3LjggMjAuNSAwIDI4LjNzLTIwLjUgNy44LTI4LjMgMGwtMjUuOS0yNS45LTI1LjkgMjUuOWMtNy44IDcuOC0yMC41IDcuOC0yOC4zIDBzLTcuOC0yMC41IDAtMjguM2wyNS45LTI1LjktMjUuOS0yNS45Yy03LjgtNy44LTcuOC0yMC41IDAtMjguM3MyMC41LTcuOCAyOC4zIDB6TTI1NiAyODhhNjQgNjQgMCAxIDEgMCAxMjggNjQgNjQgMCAxIDEgMC0xMjh6Il19LHV2ZT1qRSxVRT17cHJlZml4OiJmYXIiLGljb25OYW1lOiJjYWxlbmRhci1kYXlzIixpY29uOls0NDgsNTEyLFsiY2FsZW5kYXItYWx0Il0sImYwNzMiLCJNMTIwIDBjMTMuMyAwIDI0IDEwLjcgMjQgMjRsMCA0MCAxNjAgMCAwLTQwYzAtMTMuMyAxMC43LTI0IDI0LTI0czI0IDEwLjcgMjQgMjRsMCA0MCAzMiAwYzM1LjMgMCA2NCAyOC43IDY0IDY0bDAgMjg4YzAgMzUuMy0yOC43IDY0LTY0IDY0TDY0IDQ4MGMtMzUuMyAwLTY0LTI4LjctNjQtNjRMMCAxMjhDMCA5Mi43IDI4LjcgNjQgNjQgNjRsMzIgMCAwLTQwYzAtMTMuMyAxMC43LTI0IDI0LTI0ek0zODQgNDMyYzguOCAwIDE2LTcuMiAxNi0xNmwwLTY0LTg4IDAgMCA4MCA3MiAwem0xNi0xMjhsMC04MC04OCAwIDAgODAgODggMHptLTEzNiAwbDAtODAtODAgMCAwIDgwIDgwIDB6bS0xMjggMGwwLTgwLTg4IDAgMCA4MCA4OCAwek00OCAzNTJsMCA2NGMwIDguOCA3LjIgMTYgMTYgMTZsNzIgMCAwLTgwLTg4IDB6bTEzNiAwbDAgODAgODAgMCAwLTgwLTgwIDB6TTEyMCAxMTJsLTU2IDBjLTguOCAwLTE2IDcuMi0xNiAxNmwwIDQ4IDM1MiAwIDAtNDhjMC04LjgtNy4yLTE2LTE2LTE2bC0yNjQgMHoiXX0sZnZlPVVFLG12ZT17cHJlZml4OiJmYXIiLGljb25OYW1lOiJoYW5kLXBvaW50LXVwIixpY29uOlszODQsNTEyLFs5NzU3XSwiZjBhNiIsIk02NCA2NGwwIDE3Ny42YzUuMi0xIDEwLjUtMS42IDE2LTEuNmwxNiAwIDAtMTc2YzAtOC44LTcuMi0xNi0xNi0xNlM2NCA1NS4yIDY0IDY0ek04MCAyODhjLTE3LjcgMC0zMiAxNC4zLTMyIDMybDAgMjRjMCA2Ni4zIDUzLjcgMTIwIDEyMCAxMjBsNDggMGM1Mi41IDAgOTcuMS0zMy43IDExMy40LTgwLjctMy4xIC41LTYuMiAuNy05LjQgLjctMjAgMC0zNy45LTkuMi00OS43LTIzLjYtOSA0LjktMTkuNCA3LjYtMzAuMyA3LjYtMTUuMSAwLTI5LTUuMy00MC0xNC0xMSA4LjgtMjQuOSAxNC00MCAxNGwtNDAgMGMtMTMuMyAwLTI0LTEwLjctMjQtMjRzMTAuNy0yNCAyNC0yNGw0MCAwYzguOCAwIDE2LTcuMiAxNi0xNnMtNy4yLTE2LTE2LTE2bC04MCAwek0wIDMyMGwwIDBjMC0xOCA2LTM0LjYgMTYtNDhMMTYgNjRDMTYgMjguNyA0NC43IDAgODAgMHM2NCAyOC43IDY0IDY0bDAgODJjNS4xLTEuMyAxMC41LTIgMTYtMiAyNS4zIDAgNDcuMiAxNC43IDU3LjYgMzYgNy0yLjYgMTQuNS00IDIyLjQtNCAyMCAwIDM3LjkgOS4yIDQ5LjcgMjMuNiA5LTQuOSAxOS40LTcuNiAzMC4zLTcuNiAzNS4zIDAgNjQgMjguNyA2NCA2NGwwIDg4YzAgOTIuOC03NS4yIDE2OC0xNjggMTY4bC00OCAwQzc1LjIgNTEyIDAgNDM2LjggMCAzNDRsMC0yNHptMzM2LTY0YzAtOC44LTcuMi0xNi0xNi0xNnMtMTYgNy4yLTE2IDE2bDAgNjRjMCA4LjggNy4yIDE2IDE2IDE2czE2LTcuMiAxNi0xNmwwLTY0ek0xNjAgMjQwYzUuNSAwIDEwLjkgLjcgMTYgMmwwLTM0YzAtOC44LTcuMi0xNi0xNi0xNnMtMTYgNy4yLTE2IDE2bDAgMzIgMTYgMHptNjQgMjRsMCA0MGMwIDguOCA3LjIgMTYgMTYgMTZzMTYtNy4yIDE2LTE2bDAtNjRjMC04LjgtNy4yLTE2LTE2LTE2cy0xNiA3LjItMTYgMTZsMCAyNHoiXX0sZ3ZlPXtwcmVmaXg6ImZhciIsaWNvbk5hbWU6ImhhbmQtbGl6YXJkIixpY29uOls1MTIsNTEyLFtdLCJmMjU4IiwiTTcyIDExMmMtMTMuMyAwLTI0IDEwLjctMjQgMjRzMTAuNyAyNCAyNCAyNGwxNjggMGMzNS4zIDAgNjQgMjguNyA2NCA2NHMtMjguNyA2NC02NCA2NGwtMTA0IDBjLTEzLjMgMC0yNCAxMC43LTI0IDI0czEwLjcgMjQgMjQgMjRsMTUyIDBjNC41IDAgOC45IDEuMyAxMi43IDMuNmw2NCA0MGM3IDQuNCAxMS4zIDEyLjEgMTEuMyAyMC40bDAgMjRjMCAxMy4zLTEwLjcgMjQtMjQgMjRzLTI0LTEwLjctMjQtMjRsMC0xMC43LTQ2LjktMjkuMy0xNDUuMSAwYy0zOS44IDAtNzItMzIuMi03Mi03MnMzMi4yLTcyIDcyLTcybDEwNCAwYzguOCAwIDE2LTcuMiAxNi0xNnMtNy4yLTE2LTE2LTE2TDcyIDIwOGMtMzkuOCAwLTcyLTMyLjItNzItNzJTMzIuMiA2NCA3MiA2NGwyMDkuNiAwYzQ2LjcgMCA5MC45IDIxLjUgMTE5LjcgNTguM2w3OC40IDEwMC4xYzIwLjkgMjYuNyAzMi4zIDU5LjcgMzIuMyA5My43TDUxMiA0MjRjMCAxMy4zLTEwLjcgMjQtMjQgMjRzLTI0LTEwLjctMjQtMjRsMC0xMDcuOWMwLTIzLjItNy44LTQ1LjgtMjIuMS02NC4xTDM2My41IDE1MS45Yy0xOS43LTI1LjItNDkuOS0zOS45LTgxLjktMzkuOUw3MiAxMTJ6Il19LGJ2ZT17cHJlZml4OiJmYXIiLGljb25OYW1lOiJzcXVhcmUtZnVsbCIsaWNvbjpbNTEyLDUxMixbMTI4OTk3LDEyODk5OCwxMjg5OTksMTI5ZTMsMTI5MDAxLDEyOTAwMiwxMjkwMDMsMTEwMzUsMTEwMzZdLCJmNDVjIiwiTTQ0OCA0OGM4LjggMCAxNiA3LjIgMTYgMTZsMCAzODRjMCA4LjgtNy4yIDE2LTE2IDE2TDY0IDQ2NGMtOC44IDAtMTYtNy4yLTE2LTE2TDQ4IDY0YzAtOC44IDcuMi0xNiAxNi0xNmwzODQgMHpNNjQgMEMyOC43IDAgMCAyOC43IDAgNjRMMCA0NDhjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMzg0IDBjMzUuMyAwIDY0LTI4LjcgNjQtNjRsMC0zODRjMC0zNS4zLTI4LjctNjQtNjQtNjRMNjQgMHoiXX0sV0U9e3ByZWZpeDoiZmFyIixpY29uTmFtZToiY2lyY2xlLXBhdXNlIixpY29uOls1MTIsNTEyLFs2MjA5MiwicGF1c2UtY2lyY2xlIl0sImYyOGIiLCJNMjU2IDQ4YTIwOCAyMDggMCAxIDEgMCA0MTYgMjA4IDIwOCAwIDEgMSAwLTQxNnptMCA0NjRhMjU2IDI1NiAwIDEgMCAwLTUxMiAyNTYgMjU2IDAgMSAwIDAgNTEyek0yMjQgMTg0YzAtMTMuMy0xMC43LTI0LTI0LTI0cy0yNCAxMC43LTI0IDI0bDAgMTQ0YzAgMTMuMyAxMC43IDI0IDI0IDI0czI0LTEwLjcgMjQtMjRsMC0xNDR6bTExMiAwYzAtMTMuMy0xMC43LTI0LTI0LTI0cy0yNCAxMC43LTI0IDI0bDAgMTQ0YzAgMTMuMyAxMC43IDI0IDI0IDI0czI0LTEwLjcgMjQtMjRsMC0xNDR6Il19LHZ2ZT1XRSxHRT17cHJlZml4OiJmYXIiLGljb25OYW1lOiJoYXJkLWRyaXZlIixpY29uOls0NDgsNTEyLFsxMjg0MzYsImhkZCJdLCJmMGEwIiwiTTY0IDgwYy04LjggMC0xNiA3LjItMTYgMTZsMCAxNjJjNS4xLTEuMyAxMC41LTIgMTYtMmwzMjAgMGM1LjUgMCAxMC45IC43IDE2IDJsMC0xNjJjMC04LjgtNy4yLTE2LTE2LTE2TDY0IDgwek00OCAzMjBsMCA5NmMwIDguOCA3LjIgMTYgMTYgMTZsMzIwIDBjOC44IDAgMTYtNy4yIDE2LTE2bDAtOTZjMC04LjgtNy4yLTE2LTE2LTE2TDY0IDMwNGMtOC44IDAtMTYgNy4yLTE2IDE2ek0wIDMyMEwwIDk2QzAgNjAuNyAyOC43IDMyIDY0IDMybDMyMCAwYzM1LjMgMCA2NCAyOC43IDY0IDY0bDAgMzIwYzAgMzUuMy0yOC43IDY0LTY0IDY0TDY0IDQ4MGMtMzUuMyAwLTY0LTI4LjctNjQtNjRsMC05NnptMjE2IDQ4YTI0IDI0IDAgMSAxIDQ4IDAgMjQgMjQgMCAxIDEgLTQ4IDB6bTEyMC0yNGEyNCAyNCAwIDEgMSAwIDQ4IDI0IDI0IDAgMSAxIDAtNDh6Il19LHl2ZT1HRSxZRT17cHJlZml4OiJmYXIiLGljb25OYW1lOiJmaWxlLXppcHBlciIsaWNvbjpbMzg0LDUxMixbImZpbGUtYXJjaGl2ZSJdLCJmMWM2IiwiTTY0IDQ4bDExMiAwIDAgODhjMCAzOS44IDMyLjIgNzIgNzIgNzJsODggMCAwIDI0MGMwIDguOC03LjIgMTYtMTYgMTZMNjQgNDY0Yy04LjggMC0xNi03LjItMTYtMTZMNDggNjRjMC04LjggNy4yLTE2IDE2LTE2ek0yMjQgNjcuOWw5Mi4xIDkyLjEtNjguMSAwYy0xMy4zIDAtMjQtMTAuNy0yNC0yNGwwLTY4LjF6TTY0IDBDMjguNyAwIDAgMjguNyAwIDY0TDAgNDQ4YzAgMzUuMyAyOC43IDY0IDY0IDY0bDI1NiAwYzM1LjMgMCA2NC0yOC43IDY0LTY0bDAtMjYxLjVjMC0xNy02LjctMzMuMy0xOC43LTQ1LjNMMjQyLjcgMTguN0MyMzAuNyA2LjcgMjE0LjUgMCAxOTcuNSAwTDY0IDB6TTgwIDEwNGMwIDEzLjMgMTAuNyAyNCAyNCAyNGwxNiAwYzEzLjMgMCAyNC0xMC43IDI0LTI0cy0xMC43LTI0LTI0LTI0bC0xNiAwYy0xMy4zIDAtMjQgMTAuNy0yNCAyNHptMCA4MGMwIDEzLjMgMTAuNyAyNCAyNCAyNGwzMiAwYzEzLjMgMCAyNC0xMC43IDI0LTI0cy0xMC43LTI0LTI0LTI0bC0zMiAwYy0xMy4zIDAtMjQgMTAuNy0yNCAyNHptNjQgNTZsLTMyIDBjLTE3LjcgMC0zMiAxNC4zLTMyIDMybDAgNDhjMCAyNi41IDIxLjUgNDggNDggNDhzNDgtMjEuNSA0OC00OGwwLTQ4YzAtMTcuNy0xNC4zLTMyLTMyLTMyem0tMTYgNjRhMTYgMTYgMCAxIDEgMCAzMiAxNiAxNiAwIDEgMSAwLTMyeiJdfSx4dmU9WUUsWkU9e3ByZWZpeDoiZmFyIixpY29uTmFtZToiZmxvcHB5LWRpc2siLGljb246WzQ0OCw1MTIsWzEyODE5MCwxMjg0MjYsInNhdmUiXSwiZjBjNyIsIk02NCA4MGMtOC44IDAtMTYgNy4yLTE2IDE2bDAgMzIwYzAgOC44IDcuMiAxNiAxNiAxNmwzMjAgMGM4LjggMCAxNi03LjIgMTYtMTZsMC0yNDIuN2MwLTQuMi0xLjctOC4zLTQuNy0xMS4zTDMyMCA4Ni42IDMyMCAxNzZjMCAxNy43LTE0LjMgMzItMzIgMzJsLTE2MCAwYy0xNy43IDAtMzItMTQuMy0zMi0zMmwwLTk2LTMyIDB6bTgwIDBsMCA4MCAxMjggMCAwLTgwLTEyOCAwek0wIDk2QzAgNjAuNyAyOC43IDMyIDY0IDMybDI0Mi43IDBjMTcgMCAzMy4zIDYuNyA0NS4zIDE4LjdMNDI5LjMgMTI4YzEyIDEyIDE4LjcgMjguMyAxOC43IDQ1LjNMNDQ4IDQxNmMwIDM1LjMtMjguNyA2NC02NCA2NEw2NCA0ODBjLTM1LjMgMC02NC0yOC43LTY0LTY0TDAgOTZ6TTE2MCAzMjBhNjQgNjQgMCAxIDEgMTI4IDAgNjQgNjQgMCAxIDEgLTEyOCAweiJdfSx3dmU9WkUsWEU9e3ByZWZpeDoiZmFyIixpY29uTmFtZToiZmFjZS1ncmluLXRvbmd1ZS1zcXVpbnQiLGljb246WzUxMiw1MTIsWzEyODU0MSwiZ3Jpbi10b25ndWUtc3F1aW50Il0sImY1OGEiLCJNNDY0IDI1NmMwLTExNC45LTkzLjEtMjA4LTIwOC0yMDhTNDggMTQxLjEgNDggMjU2YzAgNzUuOSA0MC43IDE0Mi40IDEwMS41IDE3OC43LTMuNi0xMC45LTUuNS0yMi42LTUuNS0zNC43bDAtMzcuNWMtMTAuMi0xMi42LTE4LjMtMjYuOS0yMy44LTQyLjQtNC4xLTExLjYgNy44LTIxLjQgMTkuNi0xNy44IDM0LjcgMTAuNiA3NC4yIDE2LjUgMTE2LjEgMTYuNSA0MiAwIDgxLjUtNiAxMTYuMy0xNi42IDExLjgtMy42IDIzLjcgNi4xIDE5LjYgMTcuOC01LjUgMTUuNi0xMy42IDI5LjktMjMuOCA0Mi41bDAgMzcuNWMwIDEyLjEtMS45IDIzLjgtNS41IDM0LjcgNjAuOC0zNi4zIDEwMS41LTEwMi43IDEwMS41LTE3OC43ek0wIDI1NmEyNTYgMjU2IDAgMSAxIDUxMiAwIDI1NiAyNTYgMCAxIDEgLTUxMiAwem0xMjUuOC03NS43Yy02LjItNS4yLTcuNi0xNC4zLTMuMS0yMS4xczEzLjMtOS4yIDIwLjYtNS41bDc5LjYgNDBjNS40IDIuNyA4LjggOC4yIDguOCAxNC4zcy0zLjQgMTEuNi04LjggMTQuM2wtNzkuNiA0MGMtNy4zIDMuNi0xNi4xIDEuMy0yMC42LTUuNXMtMy4xLTE1LjkgMy4xLTIxLjFMMTU5IDIwOCAxMjUuOCAxODAuM3ptMjYzLjYtMjEuMWM0LjUgNi44IDMuMSAxNS45LTMuMSAyMS4xTDM1MyAyMDggMzg2LjIgMjM1LjdjNi4yIDUuMiA3LjYgMTQuMyAzLjEgMjEuMXMtMTMuMyA5LjItMjAuNiA1LjVsLTc5LjYtNDBjLTUuNC0yLjctOC44LTguMi04LjgtMTQuM3MzLjQtMTEuNiA4LjgtMTQuM2w3OS42LTQwYzcuMy0zLjYgMTYuMS0xLjMgMjAuNiA1LjV6TTMyMCA0MTZsMC0zNy40YzAtMTQuNy0xMS45LTI2LjYtMjYuNi0yNi42bC0yIDBjLTExLjMgMC0yMS4xIDcuOS0yMy42IDE4LjktMi44IDEyLjYtMjAuOCAxMi42LTIzLjYgMC0yLjUtMTEuMS0xMi4zLTE4LjktMjMuNi0xOC45bC0yIDBjLTE0LjcgMC0yNi42IDExLjktMjYuNiAyNi42bDAgMzcuNGMwIDM1LjMgMjguNyA2NCA2NCA2NHM2NC0yOC43IDY0LTY0eiJdfSxNdmU9WEUsS0U9e3ByZWZpeDoiZmFyIixpY29uTmFtZToiY2FtZXJhIixpY29uOls1MTIsNTEyLFs2MjI1OCwiY2FtZXJhLWFsdCJdLCJmMDMwIiwiTTE5My4xIDMyYy0xOC43IDAtMzYuMiA5LjQtNDYuNiAyNC45TDEyMC41IDk2IDY0IDk2QzI4LjcgOTYgMCAxMjQuNyAwIDE2MEwwIDQxNmMwIDM1LjMgMjguNyA2NCA2NCA2NGwzODQgMGMzNS4zIDAgNjQtMjguNyA2NC02NGwwLTI1NmMwLTM1LjMtMjguNy02NC02NC02NGwtNTYuNSAwLTI2LTM5LjFDMzU1LjEgNDEuNCAzMzcuNiAzMiAzMTguOSAzMkwxOTMuMSAzMnptLTYuNyA1MS42YzEuNS0yLjIgNC0zLjYgNi43LTMuNmwxMjUuNyAwYzIuNyAwIDUuMiAxLjMgNi43IDMuNmwzMy4yIDQ5LjhjNC41IDYuNyAxMS45IDEwLjcgMjAgMTAuN2w2OS4zIDBjOC44IDAgMTYgNy4yIDE2IDE2bDAgMjU2YzAgOC44LTcuMiAxNi0xNiAxNkw2NCA0MzJjLTguOCAwLTE2LTcuMi0xNi0xNmwwLTI1NmMwLTguOCA3LjItMTYgMTYtMTZsNjkuMyAwYzggMCAxNS41LTQgMjAtMTAuN2wzMy4yLTQ5Ljh6TTI1NiAzODRhMTEyIDExMiAwIDEgMCAwLTIyNCAxMTIgMTEyIDAgMSAwIDAgMjI0ek0xOTIgMjcyYTY0IDY0IDAgMSAxIDEyOCAwIDY0IDY0IDAgMSAxIC0xMjggMHoiXX0senZlPUtFLFFFPXtwcmVmaXg6ImZhciIsaWNvbk5hbWU6ImZhY2UtZ3Jpbi1zdGFycyIsaWNvbjpbNTEyLDUxMixbMTI5MzIxLCJncmluLXN0YXJzIl0sImY1ODciLCJNMCAyNTZjMC0yOS42IDUtNTcuOSAxNC4yLTg0LjRsMTcuMyAxNi45LTQuNiAyN2MtNC4yIDI0LjQgNS42IDQ2LjIgMjIgNTkuOSA5LjggMTA1LjggOTguOCAxODguNyAyMDcuMSAxODguN3MxOTcuNC04Mi44IDIwNy4xLTE4OC42YzE2LjQtMTMuNyAyNi4xLTM1LjQgMjItNTkuOWwtNC42LTI3IDE3LjMtMTYuOWM5LjIgMjYuNCAxNC4yIDU0LjggMTQuMiA4NC40IDAgMTQxLjQtMTE0LjYgMjU2LTI1NiAyNTZTMCAzOTcuNCAwIDI1NnpNMjU2IDQ4Yy0xNS4yIDAtMzAgMS42LTQ0LjMgNC43TDIwMS40IDMxLjhDMTk3IDIzIDE5MS4xIDE1LjggMTg0LjIgMTAuMiAyMDcgMy42IDIzMS4xIDAgMjU2IDBzNDkgMy42IDcxLjggMTAuMkMzMjAuOSAxNS44IDMxNSAyMyAzMTAuNiAzMS44TDMwMC4zIDUyLjdDMjg2IDQ5LjYgMjcxLjIgNDggMjU2IDQ4ek0zNzIuMiAzMDIuM2MxMS44LTMuNiAyMy43IDYuMSAxOS42IDE3LjgtMTkuOCA1NS45LTczLjEgOTYtMTM1LjggOTYtNjIuNyAwLTExNi00MC0xMzUuOC05NS45LTQuMS0xMS42IDcuOC0yMS40IDE5LjYtMTcuOCAzNC43IDEwLjYgNzQuMiAxNi41IDExNi4xIDE2LjUgNDIgMCA4MS41LTYgMTE2LjMtMTYuNnpNMzUzLjcgNTMuMWM1LjktMTEuOSAyMi44LTExLjkgMjguNyAwbDIzLjMgNDcuMiA1MiA3LjZjMTMuMSAxLjkgMTguNCAxOCA4LjkgMjcuM2wtMzcuNyAzNi43IDguOSA1MS44YzIuMiAxMy4xLTExLjUgMjMtMjMuMiAxNi45TDM2OCAyMTYgMzIxLjUgMjQwLjVjLTExLjcgNi4yLTI1LjUtMy44LTIzLjItMTYuOWw4LjktNTEuOC0zNy43LTM2LjdjLTkuNS05LjMtNC4zLTI1LjQgOC45LTI3LjNsNTItNy42IDIzLjMtNDcuMnptLTE5NS4zIDBsMjMuMyA0Ny4yIDUyIDcuNmMxMy4xIDEuOSAxOC40IDE4IDguOSAyNy4zbC0zNy43IDM2LjcgOC45IDUxLjhjMi4yIDEzLjEtMTEuNSAyMy0yMy4yIDE2LjlMMTQ0IDIxNiA5Ny41IDI0MC41Yy0xMS43IDYuMi0yNS41LTMuOC0yMy4yLTE2LjlsOC45LTUxLjgtMzcuNy0zNi43Yy05LjUtOS4zLTQuMy0yNS40IDguOS0yNy4zbDUyLTcuNiAyMy4zLTQ3LjJjNS45LTExLjkgMjIuOC0xMS45IDI4LjcgMHoiXX0sa3ZlPVFFLFN2ZT17cHJlZml4OiJmYXIiLGljb25OYW1lOiJleWUiLGljb246WzU3Niw1MTIsWzEyODA2NV0sImYwNmUiLCJNMjg4IDgwQzIyMi44IDgwIDE2OS4yIDEwOS42IDEyOC4xIDE0Ny43IDg5LjYgMTgzLjUgNjMgMjI2IDQ5LjQgMjU2IDYzIDI4NiA4OS42IDMyOC41IDEyOC4xIDM2NC4zIDE2OS4yIDQwMi40IDIyMi44IDQzMiAyODggNDMyczExOC44LTI5LjYgMTU5LjktNjcuN0M0ODYuNCAzMjguNSA1MTMgMjg2IDUyNi42IDI1NiA1MTMgMjI2IDQ4Ni40IDE4My41IDQ0Ny45IDE0Ny43IDQwNi44IDEwOS42IDM1My4yIDgwIDI4OCA4MHpNOTUuNCAxMTIuNkMxNDIuNSA2OC44IDIwNy4yIDMyIDI4OCAzMnMxNDUuNSAzNi44IDE5Mi42IDgwLjZjNDYuOCA0My41IDc4LjEgOTUuNCA5MyAxMzEuMSAzLjMgNy45IDMuMyAxNi43IDAgMjQuNi0xNC45IDM1LjctNDYuMiA4Ny43LTkzIDEzMS4xLTQ3LjEgNDMuNy0xMTEuOCA4MC42LTE5Mi42IDgwLjZTMTQyLjUgNDQzLjIgOTUuNCAzOTkuNGMtNDYuOC00My41LTc4LjEtOTUuNC05My0xMzEuMS0zLjMtNy45LTMuMy0xNi43IDAtMjQuNiAxNC45LTM1LjcgNDYuMi04Ny43IDkzLTEzMS4xek0yODggMzM2YzQ0LjIgMCA4MC0zNS44IDgwLTgwIDAtMjkuNi0xNi4xLTU1LjUtNDAtNjkuMy0xLjQgNTkuNy00OS42IDEwNy45LTEwOS4zIDEwOS4zIDEzLjggMjMuOSAzOS43IDQwIDY5LjMgNDB6bS03OS42LTg4LjRjMi41IC4zIDUgLjQgNy42IC40IDM1LjMgMCA2NC0yOC43IDY0LTY0IDAtMi42LS4yLTUuMS0uNC03LjYtMzcuNCAzLjktNjcuMiAzMy43LTcxLjEgNzEuMXptNDUuNi0xMTVjMTAuOC0zIDIyLjItNC41IDMzLjktNC41IDguOCAwIDE3LjUgLjkgMjUuOCAyLjYgLjMgLjEgLjUgLjEgLjggLjIgNTcuOSAxMi4yIDEwMS40IDYzLjcgMTAxLjQgMTI1LjIgMCA3MC43LTU3LjMgMTI4LTEyOCAxMjgtNjEuNiAwLTExMy00My41LTEyNS4yLTEwMS40LTEuOC04LjYtMi44LTE3LjUtMi44LTI2LjYgMC0xMSAxLjQtMjEuOCA0LTMyIC4yLS43IC4zLTEuMyAuNS0xLjkgMTEuOS00My40IDQ2LjEtNzcuNiA4OS41LTg5LjV6Il19LEpFPXtwcmVmaXg6ImZhciIsaWNvbk5hbWU6ImZhY2Utc2FkLXRlYXIiLGljb246WzUxMiw1MTIsWzEyODU0Niwic2FkLXRlYXIiXSwiZjViNCIsIk00NjQgMjU2YzAtMTE0LjktOTMuMS0yMDgtMjA4LTIwOFM0OCAxNDEuMSA0OCAyNTZjMCA0MS44IDEyLjMgODAuNyAzMy42IDExMy4zIDguMiA0NC43IDQ3LjMgNzguNiA5NC4zIDc4LjcgMjQuNyAxMC4zIDUxLjcgMTYgODAuMSAxNiAxMTQuOSAwIDIwOC05My4xIDIwOC0yMDh6TTI4OCAzNTJjLTUuNSAwLTEwLjkgLjYtMTYgMS44IDAtLjYgMC0xLjIgMC0xLjggMC0xNi4yLTQtMzEuNS0xMS4xLTQ0LjkgOC43LTIgMTcuOC0zLjEgMjcuMS0zLjEgNDAuMiAwIDc1LjcgMTkuOCA5Ny41IDUwIDcuNyAxMC44IDUuMyAyNS44LTUuNSAzMy41cy0yNS44IDUuMy0zMy41LTUuNWMtMTMuMS0xOC4yLTM0LjQtMzAtNTguNS0zMHpNMCAyNTZhMjU2IDI1NiAwIDEgMSA1MTIgMCAyNTYgMjU2IDAgMSAxIC01MTIgMHptMTc2LTgwYTMyIDMyIDAgMSAxIDAgNjQgMzIgMzIgMCAxIDEgMC02NHptMTI4IDMyYTMyIDMyIDAgMSAxIDY0IDAgMzIgMzIgMCAxIDEgLTY0IDB6TTE4NS40IDI3Ni44YzYuNSA3LjggMTIuNiAxNi4xIDE4LjMgMjQuNiA5IDEzLjQgMjAuMyAzMC4yIDIwLjMgNDcuNCAwIDI4LjMtMjEuNSA1MS4yLTQ4IDUxLjJzLTQ4LTIyLjktNDgtNTEuMmMwLTE3LjIgMTEuMi0zNCAyMC4zLTQ3LjQgNS43LTguNSAxMS45LTE2LjcgMTguMy0yNC42IDIuNC0yLjkgNS43LTQuOCA5LjQtNC44czcgMS45IDkuNCA0Ljh6Il19LEN2ZT1KRSxlUD17cHJlZml4OiJmYXIiLGljb25OYW1lOiJzaGFyZS1mcm9tLXNxdWFyZSIsaWNvbjpbNTc2LDUxMixbNjE1MDksInNoYXJlLXNxdWFyZSJdLCJmMTRkIiwiTTQyNS41IDdjLTYuOS02LjktMTcuMi04LjktMjYuMi01LjJTMzg0LjUgMTQuMyAzODQuNSAyNGwwIDU2LTQ4IDBjLTg4LjQgMC0xNjAgNzEuNi0xNjAgMTYwIDAgNDYuNyAyMC43IDgwLjQgNDMuNiAxMDMuNCA4LjEgOC4yIDE2LjUgMTQuOSAyNC4zIDIwLjQgOS4yIDYuNSAyMS43IDUuNyAzMC4xLTEuOXMxMC4yLTIwIDQuNS0yOS44Yy0zLjYtNi4zLTYuNS0xNC45LTYuNS0yNi43IDAtMzYuMiAyOS4zLTY1LjUgNjUuNS02NS41bDQ2LjUgMCAwIDU2YzAgOS43IDUuOCAxOC41IDE0LjggMjIuMnMxOS4zIDEuNyAyNi4yLTUuMmwxMzYtMTM2YzkuNC05LjQgOS40LTI0LjYgMC0zMy45TDQyNS41IDd6bTcgOTdsMC0yMi4xIDc4LjEgNzguMS03OC4xIDc4LjEgMC0yMi4xYzAtMTMuMy0xMC43LTI0LTI0LTI0TDMzOCAxOTJjLTUwLjkgMC05My45IDMzLjUtMTA4LjMgNzkuNi0zLjMtOS40LTUuMi0xOS44LTUuMi0zMS42IDAtNjEuOSA1MC4xLTExMiAxMTItMTEybDcyIDBjMTMuMyAwIDI0LTEwLjcgMjQtMjR6bS0zMjAtOGMtNDQuMiAwLTgwIDM1LjgtODAgODBsMCAyNTZjMCA0NC4yIDM1LjggODAgODAgODBsMjU2IDBjNDQuMiAwIDgwLTM1LjggODAtODBsMC0yNGMwLTEzLjMtMTAuNy0yNC0yNC0yNHMtMjQgMTAuNy0yNCAyNGwwIDI0YzAgMTcuNy0xNC4zIDMyLTMyIDMybC0yNTYgMGMtMTcuNyAwLTMyLTE0LjMtMzItMzJsMC0yNTZjMC0xNy43IDE0LjMtMzIgMzItMzJsMjQgMGMxMy4zIDAgMjQtMTAuNyAyNC0yNHMtMTAuNy0yNC0yNC0yNGwtMjQgMHoiXX0sX3ZlPWVQLHRQPXtwcmVmaXg6ImZhciIsaWNvbk5hbWU6Im5vdGUtc3RpY2t5IixpY29uOls0NDgsNTEyLFs2MjAyNiwic3RpY2t5LW5vdGUiXSwiZjI0OSIsIk0yNDAgNDMyTDY0IDQzMmMtOC44IDAtMTYtNy4yLTE2LTE2TDQ4IDk2YzAtOC44IDcuMi0xNiAxNi0xNmwzMjAgMGM4LjggMCAxNiA3LjIgMTYgMTZsMCAxNzYtODggMGMtMzkuOCAwLTcyIDMyLjItNzIgNzJsMCA4OHpNMzgwLjEgMzIwTDI4OCA0MTIuMSAyODggMzQ0YzAtMTMuMyAxMC43LTI0IDI0LTI0bDY4LjEgMHpNMCA0MTZjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMTk3LjUgMGMxNyAwIDMzLjMtNi43IDQ1LjMtMTguN0w0MjkuMyAzMzguN2MxMi0xMiAxOC43LTI4LjMgMTguNy00NS4zTDQ0OCA5NmMwLTM1LjMtMjguNy02NC02NC02NEw2NCAzMkMyOC43IDMyIDAgNjAuNyAwIDk2TDAgNDE2eiJdfSxUdmU9dFAsYVA9e3ByZWZpeDoiZmFyIixpY29uTmFtZToiaGFuZC1iYWNrLWZpc3QiLGljb246WzM4NCw1MTIsWyJoYW5kLXJvY2siXSwiZjI1NSIsIk05NiA0MDBjLTE3LjcgMC0zMiAxNC4zLTMyIDMybDAgNDhjMCAxNy43IDE0LjMgMzIgMzIgMzJsMjI0IDBjMTcuNyAwIDMyLTE0LjMgMzItMzJsMC00OGMwLTE3LjctMTQuMy0zMi0zMi0zMkw5NiA0MDB6TTczLjIgMzUybDY0LjYgMC03OS41LTg4LjNDNTEuNyAyNTYuMyA0OCAyNDYuOCA0OCAyMzYuOUw0OCAyMDRjMC0xNi4xIDExLjktMjkuNSAyNy40LTMxLjcgMTEuOC0xLjcgMjAuNi0xMS44IDIwLjYtMjMuOEw5NiA3MmMwLTEzLjMgMTAuNy0yNCAyNC0yNCA3LjIgMCAxMy42IDMuMSAxOCA4LjEgNC42IDUuMiAxMS4xIDguMSAxOCA4LjFzMTMuNC0zIDE4LTguMWM0LjQtNSAxMC44LTguMSAxOC04LjEgOC41IDAgMTUuOSA0LjQgMjAuMiAxMS4xIDYuOSAxMC43IDIwLjkgMTQuMiAzMiA4IDMuNS0xLjkgNy40LTMuMSAxMS44LTMuMSAxMC42IDAgMTkuNyA2LjkgMjIuOCAxNi42IDMuOCAxMS43IDE1LjkgMTguNyAyOCAxNiAxLjctLjQgMy40LS42IDUuMi0uNiAxMy4zIDAgMjQgMTAuNyAyNCAyNGwwIDkyLjJjMCAxNC40LTMuNSAyOC41LTEwLjIgNDEuMmwtNTIuMiA5OC42IDU0LjMgMCA0MC4zLTc2LjJjMTAuNC0xOS42IDE1LjgtNDEuNSAxNS44LTYzLjZsMC05Mi4yYzAtMzguNC0zMC4xLTY5LjgtNjguMS03MS45LTEyLjktMTkuMy0zNC45LTMyLjEtNTkuOS0zMi4xLTUuNyAwLTExLjIgLjctMTYuNSAxLjktMTIuNy0xMS4xLTI5LjMtMTcuOS00Ny41LTE3LjktMTMuMSAwLTI1LjQgMy41LTM2IDkuNi0xMC42LTYuMS0yMi45LTkuNi0zNi05LjYtMzkuOCAwLTcyIDMyLjItNzIgNzJsMCA1OC43QzE5LjcgMTQzIDAgMTcxLjIgMCAyMDRsMCAzMi45YzAgMjEuNyA4IDQyLjcgMjIuNiA1OC45TDczLjIgMzUyeiJdfSxMdmU9YVAsJHZlPXtwcmVmaXg6ImZhciIsaWNvbk5hbWU6ImNoZXNzLXF1ZWVuIixpY29uOls1MTIsNTEyLFs5ODE5XSwiZjQ0NSIsIk0zMjUuMyA5MC44YzkuMS00LjggMjAuNi0zLjMgMjguMiA0LjNsMzkuOCAzOS44IDMuNyAzLjNjOS4xIDcuMSAyMC45IDEwIDMyLjQgNy43bDQ2LjQtOS4zIDMuNS0uNGM4LS40IDE1LjggMy4yIDIwLjYgOS44IDUuNSA3LjYgNi4xIDE3LjYgMS42IDI1LjhsLTExMi42IDIwMi42IDUxLjUgNzAuOSAxLjggMi43YzQgNi42IDYuMiAxNC4yIDYuMiAyMiAwIDIzLjMtMTguOSA0Mi4xLTQyLjEgNDIuMWwtMjk5LjggMGMtMjEuOCAwLTM5LjgtMTYuNi00MS45LTM3LjhsLS4yLTQuMyAuMS0zLjNjLjYtNy43IDMuNC0xNS4xIDcuOS0yMS40bDUxLjUtNzAuOS0xMTIuNS0yMDIuNmMtNC41LTguMi0zLjktMTguMyAxLjYtMjUuOHMxNC45LTExLjIgMjQuMS05LjRsNDYuNCA5LjNjMTMuMSAyLjYgMjYuNy0xLjUgMzYuMS0xMC45TDE1OS41IDk1IDE2MyA5Mi4yYzguNi01LjggMjAuMS01LjYgMjguNSAxLjFsNDAgMzIgMi44IDIuMWMxNC40IDkuNiAzMy41IDguOSA0Ny4yLTIuMWw0MC0zMiAzLjgtMi41ek0xNjQuNyA0MDBsLTQ2LjYgNjQgMjc2LjcgMC00Ni42LTY0LTE4My42IDB6TTMxMS41IDE2Mi44Yy0zMC4xIDI0LjEtNzIuMSAyNS42LTEwMy44IDQuNWwtNi4yLTQuNS0yMy4zLTE4LjYtMjQuNiAyNC42Yy0xOS44IDE5LjgtNDcuNyAyOC45LTc1LjEgMjQuOGw4OC4xIDE1OC41IDE3OS44IDAgODgtMTU4LjVjLTI1LjcgMy44LTUxLjctMy45LTcxLjEtMjFsLTQtMy43LTI0LjYtMjQuNi0yMy4yIDE4LjZ6TTI1Ni41IDcyYTQwIDQwIDAgMSAxIDAtODAgNDAgNDAgMCAxIDEgMCA4MHoiXX0saVA9e3ByZWZpeDoiZmFyIixpY29uTmFtZToiZmFjZS1ncmluLXRlYXJzIixpY29uOls2NDAsNTEyLFsxMjg1MTQsImdyaW4tdGVhcnMiXSwiZjU4OCIsIk01MDQuMSAzNTNDNTEyLjkgMzY3LjIgNTI1LjMgMzc5IDUzOS44IDM4Ny4yIDQ5NS4xIDQ2MiA0MTMuNCA1MTIgMzIwIDUxMlMxNDQuOSA0NjIgMTAwLjIgMzg3LjJjMTQuNi04LjIgMjYuOS0yMCAzNS44LTM0LjMgMzQuOSA2NiAxMDQuMiAxMTEgMTg0LjEgMTExczE0OS4yLTQ1IDE4NC4xLTExMXptMTYuNC0xNTIuNUM0OTYuMiAxMTIuNiA0MTUuNyA0OCAzMjAgNDhTMTQzLjggMTEyLjYgMTE5LjUgMjAwLjVjLTEwLjYtNC44LTIyLjctNi44LTM1LjQtNWwtMTMuNCAxLjlDOTcuMiA4NC4zIDE5OC44IDAgMzIwIDBTNTQyLjggODQuMyA1NjkuMyAxOTcuNGwtMTMuNC0xLjljLTEyLjctMS44LTI0LjggLjItMzUuNCA1ek00NTUuOCAzMjBjLTE5LjggNTUuOS03My4xIDk2LTEzNS44IDk2LTYyLjcgMC0xMTYtNDAtMTM1LjgtOTUuOS00LjEtMTEuNiA3LjgtMjEuNCAxOS42LTE3LjggMzQuNyAxMC42IDc0LjIgMTYuNSAxMTYuMSAxNi41IDQyIDAgODEuNS02IDExNi4zLTE2LjYgMTEuOC0zLjYgMjMuNyA2LjEgMTkuNiAxNy44ek0yMTIgMjA4bDAgOGMwIDExLTkgMjAtMjAgMjBzLTIwLTktMjAtMjBsMC04YzAtMzcuNiAzMC40LTY4IDY4LTY4czY4IDMwLjQgNjggNjhsMCA4YzAgMTEtOSAyMC0yMCAyMHMtMjAtOS0yMC0yMGwwLThjMC0xNS41LTEyLjUtMjgtMjgtMjhzLTI4IDEyLjUtMjggMjh6bTE4OC0yOGMtMTUuNSAwLTI4IDEyLjUtMjggMjhsMCA4YzAgMTEtOSAyMC0yMCAyMHMtMjAtOS0yMC0yMGwwLThjMC0zNy42IDMwLjQtNjggNjgtNjhzNjggMzAuNCA2OCA2OGwwIDhjMCAxMS05IDIwLTIwIDIwcy0yMC05LTIwLTIwbDAtOGMwLTE1LjUtMTIuNS0yOC0yOC0yOHpNNjQwIDMwMC42YzAgMjguNC0yMyA1MS40LTUxLjQgNTEuNC0yNS42IDAtNDcuMy0xOC44LTUwLjktNDQuMUw1MzEgMjYxLjFjLTEuNS0xMC42IDcuNS0xOS42IDE4LjEtMTguMWw0Ni43IDYuN2MyNS4zIDMuNiA0NC4xIDI1LjMgNDQuMSA1MC45em0tNjQwIDBjMC0yNS42IDE4LjgtNDcuMyA0NC4xLTUwLjlMOTAuOSAyNDNjMTAuNi0xLjUgMTkuNiA3LjUgMTguMSAxOC4xbC02LjcgNDYuN0M5OC43IDMzMy4yIDc3IDM1MiA1MS40IDM1MiAyMyAzNTIgMCAzMjkgMCAzMDAuNnoiXX0sQXZlPWlQLHJQPXtwcmVmaXg6ImZhciIsaWNvbk5hbWU6InBlbi10by1zcXVhcmUiLGljb246WzUxMiw1MTIsWyJlZGl0Il0sImYwNDQiLCJNNDQxIDU4LjlMNDUzLjEgNzFjOS40IDkuNCA5LjQgMjQuNiAwIDMzLjlMNDI0IDEzNC4xIDM3Ny45IDg4IDQwNyA1OC45YzkuNC05LjQgMjQuNi05LjQgMzMuOSAwek0yMDkuOCAyNTYuMkwzNDQgMTIxLjkgMzkwLjEgMTY4IDI1NS44IDMwMi4yYy0yLjkgMi45LTYuNSA1LTEwLjQgNi4xbC01OC41IDE2LjcgMTYuNy01OC41YzEuMS0zLjkgMy4yLTcuNSA2LjEtMTAuNHpNMzczLjEgMjVMMTc1LjggMjIyLjJjLTguNyA4LjctMTUgMTkuNC0xOC4zIDMxLjFsLTI4LjYgMTAwYy0yLjQgOC40LS4xIDE3LjQgNi4xIDIzLjZzMTUuMiA4LjUgMjMuNiA2LjFsMTAwLTI4LjZjMTEuOC0zLjQgMjIuNS05LjcgMzEuMS0xOC4zTDQ4NyAxMzguOWMyOC4xLTI4LjEgMjguMS03My43IDAtMTAxLjhMNDc0LjkgMjVDNDQ2LjgtMy4xIDQwMS4yLTMuMSAzNzMuMSAyNXpNODggNjRDMzkuNCA2NCAwIDEwMy40IDAgMTUyTDAgNDI0YzAgNDguNiAzOS40IDg4IDg4IDg4bDI3MiAwYzQ4LjYgMCA4OC0zOS40IDg4LTg4bDAtMTEyYzAtMTMuMy0xMC43LTI0LTI0LTI0cy0yNCAxMC43LTI0IDI0bDAgMTEyYzAgMjIuMS0xNy45IDQwLTQwIDQwTDg4IDQ2NGMtMjIuMSAwLTQwLTE3LjktNDAtNDBsMC0yNzJjMC0yMi4xIDE3LjktNDAgNDAtNDBsMTEyIDBjMTMuMyAwIDI0LTEwLjcgMjQtMjRzLTEwLjctMjQtMjQtMjRMODggNjR6Il19LER2ZT1yUCxzUD17cHJlZml4OiJmYXIiLGljb25OYW1lOiJmYWNlLWdyaW4tYmVhbS1zd2VhdCIsaWNvbjpbNTc2LDUxMixbMTI4NTE3LCJncmluLWJlYW0tc3dlYXQiXSwiZjU4MyIsIk01MzAuMiAxNS45Yy04LjgtMTAuNy0xOC41LTIwLjktMjktMzAtMy0yLjYtNy40LTIuNi0xMC40IDAtMTAuNSA5LjEtMjAuMSAxOS4zLTI5IDMwLTE0LjcgMTcuOC0yOS44IDQwLjEtMjkuOCA2NC4xIDAgMzYuNCAyNy42IDY0IDY0IDY0czY0LTI3LjYgNjQtNjRjMC0yNC0xNS4yLTQ2LjMtMjkuOC02NC4xem0tMTMyIDguOUMzNjQuOCA4LjkgMzI3LjQgMCAyODggMCAxNDYuNiAwIDMyIDExNC42IDMyIDI1NlMxNDYuNiA1MTIgMjg4IDUxMiA1NDQgMzk3LjQgNTQ0IDI1NmMwLTI0LjQtMy40LTQ4LTkuOC03MC40LTExLjkgNC4yLTI0LjcgNi40LTM4LjIgNi40LTMuNCAwLTYuOC0uMS0xMC4yLS40IDYuNiAyMC4zIDEwLjIgNDEuOSAxMC4yIDY0LjQgMCAxMTQuOS05My4xIDIwOC0yMDggMjA4UzgwIDM3MC45IDgwIDI1NiAxNzMuMSA0OCAyODggNDhjMzQuOCAwIDY3LjUgOC41IDk2LjMgMjMuNiAxLjQtMTcuNCA2LjktMzMuMSAxMy44LTQ2Ljh6TTQyMy44IDMyMGM0LjEtMTEuNi03LjgtMjEuNC0xOS42LTE3LjgtMzQuOCAxMC42LTc0LjMgMTYuNi0xMTYuMyAxNi42LTQxLjkgMC04MS40LTYtMTE2LjEtMTYuNS0xMS44LTMuNi0yMy43IDYuMS0xOS42IDE3LjggMTkuOCA1NS45IDczLjEgOTUuOSAxMzUuOCA5NS45IDYyLjcgMCAxMTYtNDAuMSAxMzUuOC05NnpNMTgwIDIwOGMwLTE1LjUgMTIuNS0yOCAyOC0yOHMyOCAxMi41IDI4IDI4bDAgOGMwIDExIDkgMjAgMjAgMjBzMjAtOSAyMC0yMGwwLThjMC0zNy42LTMwLjQtNjgtNjgtNjhzLTY4IDMwLjQtNjggNjhsMCA4YzAgMTEgOSAyMCAyMCAyMHMyMC05IDIwLTIwbDAtOHptMTg4LTI4YzE1LjUgMCAyOCAxMi41IDI4IDI4bDAgOGMwIDExIDkgMjAgMjAgMjBzMjAtOSAyMC0yMGwwLThjMC0zNy42LTMwLjQtNjgtNjgtNjhzLTY4IDMwLjQtNjggNjhsMCA4YzAgMTEgOSAyMCAyMCAyMHMyMC05IDIwLTIwbDAtOGMwLTE1LjUgMTIuNS0yOCAyOC0yOHoiXX0sRXZlPXNQLG5QPXtwcmVmaXg6ImZhciIsaWNvbk5hbWU6ImNsb2NrIixpY29uOls1MTIsNTEyLFsxMjgzMzksImNsb2NrLWZvdXIiXSwiZjAxNyIsIk00NjQgMjU2YTIwOCAyMDggMCAxIDEgLTQxNiAwIDIwOCAyMDggMCAxIDEgNDE2IDB6TTAgMjU2YTI1NiAyNTYgMCAxIDAgNTEyIDAgMjU2IDI1NiAwIDEgMCAtNTEyIDB6TTIzMiAxMjBsMCAxMzZjMCA4IDQgMTUuNSAxMC43IDIwbDk2IDY0YzExIDcuNCAyNS45IDQuNCAzMy4zLTYuN3M0LjQtMjUuOS02LjctMzMuM0wyODAgMjQzLjIgMjgwIDEyMGMwLTEzLjMtMTAuNy0yNC0yNC0yNHMtMjQgMTAuNy0yNCAyNHoiXX0sUHZlPW5QLG9QPXtwcmVmaXg6ImZhciIsaWNvbk5hbWU6ImZhY2UtbGF1Z2gtd2luayIsaWNvbjpbNTEyLDUxMixbImxhdWdoLXdpbmsiXSwiZjU5YyIsIk00NjQgMjU2YTIwOCAyMDggMCAxIDAgLTQxNiAwIDIwOCAyMDggMCAxIDAgNDE2IDB6TTAgMjU2YTI1NiAyNTYgMCAxIDEgNTEyIDAgMjU2IDI1NiAwIDEgMSAtNTEyIDB6bTExOC4zIDU4LjJjLTQuMi0xMy43IDcuMS0yNi4yIDIxLjQtMjYuMmwyMzIuNiAwYzE0LjMgMCAyNS42IDEyLjUgMjEuNCAyNi4yLTE4IDU4LjktNzIuOSAxMDEuOC0xMzcuNyAxMDEuOFMxMzYuMyAzNzMuMSAxMTguMyAzMTQuMnpNMTQ0IDE5MmEzMiAzMiAwIDEgMSA2NCAwIDMyIDMyIDAgMSAxIC02NCAwem0xNjQgOGMwIDExLTkgMjAtMjAgMjBzLTIwLTktMjAtMjBjMC0zMy4xIDI2LjktNjAgNjAtNjBsMTYgMGMzMy4xIDAgNjAgMjYuOSA2MCA2MCAwIDExLTkgMjAtMjAgMjBzLTIwLTktMjAtMjAtOS0yMC0yMC0yMGwtMTYgMGMtMTEgMC0yMCA5LTIwIDIweiJdfSxJdmU9b1AsTnZlPXtwcmVmaXg6ImZhciIsaWNvbk5hbWU6InBhcGVyLXBsYW5lIixpY29uOls1NzYsNTEyLFs2MTkxM10sImYxZDgiLCJNMjkwLjUgMjg3LjdMNDkxLjQgODYuOSAzNTkgNDU2LjMgMjkwLjUgMjg3Ljd6TTQ1Ny40IDUzTDI1Ni42IDI1My44IDg4IDE4NS4zIDQ1Ny40IDUzek0zOC4xIDIxNi44bDIwNS44IDgzLjYgODMuNiAyMDUuOGM1LjMgMTMuMSAxOC4xIDIxLjcgMzIuMyAyMS43IDE0LjcgMCAyNy44LTkuMiAzMi44LTIzLjFMNTcwLjYgOGMzLjUtOS44IDEtMjAuNi02LjMtMjhzLTE4LjItOS44LTI4LTYuM0wzOS40IDE1MS43Yy0xMy45IDUtMjMuMSAxOC4xLTIzLjEgMzIuOCAwIDE0LjIgOC42IDI3IDIxLjcgMzIuM3oiXX0sRnZlPXtwcmVmaXg6ImZhciIsaWNvbk5hbWU6ImhlYXJ0IixpY29uOls1MTIsNTEyLFsxMjgxNTMsMTI4MTU0LDEyODE1NSwxMjgxNTYsMTI4NDIwLDEyOTI5MywxMjkyOTQsMTI5NTA1LDk4MjksMTAwODQsNjE1NzhdLCJmMDA0IiwiTTM3OC45IDgwYy0yNy4zIDAtNTMgMTMuMS02OSAzNS4ybC0zNC40IDQ3LjZjLTQuNSA2LjItMTEuNyA5LjktMTkuNCA5LjlzLTE0LjktMy43LTE5LjQtOS45bC0zNC40LTQ3LjZjLTE2LTIyLjEtNDEuNy0zNS4yLTY5LTM1LjItNDcgMC04NS4xIDM4LjEtODUuMSA4NS4xIDAgNDkuOSAzMiA5OC40IDY4LjEgMTQyLjMgNDEuMSA1MCA5MS40IDk0IDEyNS45IDEyMC4zIDMuMiAyLjQgNy45IDQuMiAxNCA0LjJzMTAuOC0xLjggMTQtNC4yYzM0LjUtMjYuMyA4NC44LTcwLjQgMTI1LjktMTIwLjMgMzYuMi00My45IDY4LjEtOTIuNCA2OC4xLTE0Mi4zIDAtNDctMzguMS04NS4xLTg1LjEtODUuMXpNMjcxIDg3LjFjMjUtMzQuNiA2NS4yLTU1LjEgMTA3LjktNTUuMSA3My41IDAgMTMzLjEgNTkuNiAxMzMuMSAxMzMuMSAwIDY4LjYtNDIuOSAxMjguOS03OS4xIDE3Mi44LTQ0LjEgNTMuNi05Ny4zIDEwMC4xLTEzMy44IDEyNy45LTEyLjMgOS40LTI3LjUgMTQuMS00My4xIDE0LjFzLTMwLjgtNC43LTQzLjEtMTQuMUMxNzYuNCA0MzggMTIzLjIgMzkxLjUgNzkuMSAzMzggNDIuOSAyOTQuMSAwIDIzMy43IDAgMTY1LjEgMCA5MS42IDU5LjYgMzIgMTMzLjEgMzIgMTc1LjggMzIgMjE2IDUyLjUgMjQxIDg3LjFsMTUgMjAuNyAxNS0yMC43eiJdfSxxZj17cHJlZml4OiJmYXIiLGljb25OYW1lOiJmb250LWF3ZXNvbWUiLGljb246WzUxMiw1MTIsWzYyNTAxLDYyNjk0LCJmb250LWF3ZXNvbWUtZmxhZyIsImZvbnQtYXdlc29tZS1sb2dvLWZ1bGwiXSwiZjJiNCIsIk05MS43IDk2QzEwNi4zIDg2LjggMTE2IDcwLjUgMTE2IDUyIDExNiAyMy4zIDkyLjcgMCA2NCAwUzEyIDIzLjMgMTIgNTJjMCAxNi43IDcuOCAzMS41IDIwIDQxbDAgNDE5IDQ4IDAgMC02NCAzODkuNiAwYzE0LjYgMCAyNi40LTExLjggMjYuNC0yNi40IDAtMy43LS44LTcuMy0yLjMtMTAuN0w0MzIgMjcyIDQ5My43IDEzMy4xYzEuNS0zLjQgMi4zLTcgMi4zLTEwLjcgMC0xNC42LTExLjgtMjYuNC0yNi40LTI2LjRMOTEuNyA5NnpNODAgNDAwbDAtMjU2IDM1Ni40IDAtNDguMiAxMDguNWMtNS41IDEyLjQtNS41IDI2LjYgMCAzOUw0MzYuNCA0MDAgODAgNDAweiJdfSxPdmU9cWYsUnZlPXFmLEJ2ZT17cHJlZml4OiJmYXIiLGljb25OYW1lOiJjbG9uZSIsaWNvbjpbNTEyLDUxMixbXSwiZjI0ZCIsIk0yODggNDY0TDY0IDQ2NGMtOC44IDAtMTYtNy4yLTE2LTE2bDAtMjI0YzAtOC44IDcuMi0xNiAxNi0xNmw0OCAwIDAtNDgtNDggMGMtMzUuMyAwLTY0IDI4LjctNjQgNjRMMCA0NDhjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMjI0IDBjMzUuMyAwIDY0LTI4LjcgNjQtNjRsMC00OC00OCAwIDAgNDhjMCA4LjgtNy4yIDE2LTE2IDE2ek0yMjQgMzA0Yy04LjggMC0xNi03LjItMTYtMTZsMC0yMjRjMC04LjggNy4yLTE2IDE2LTE2bDIyNCAwYzguOCAwIDE2IDcuMiAxNiAxNmwwIDIyNGMwIDguOC03LjIgMTYtMTYgMTZsLTIyNCAwem0tNjQtMTZjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMjI0IDBjMzUuMyAwIDY0LTI4LjcgNjQtNjRsMC0yMjRjMC0zNS4zLTI4LjctNjQtNjQtNjRMMjI0IDBjLTM1LjMgMC02NCAyOC43LTY0IDY0bDAgMjI0eiJdfSxIdmU9e3ByZWZpeDoiZmFyIixpY29uTmFtZToiZm9sZGVyLW9wZW4iLGljb246WzU3Niw1MTIsWzEyODE5NCwxMjg0NDksNjE3MTddLCJmMDdjIiwiTTk3LjUgNDAwbDUwLTE2MCAzNzkuNCAwLTUwIDE2MC0zNzkuNCAwem0xOTAuNyA0OEw0NzcgNDQ4YzIxIDAgMzkuNi0xMy42IDQ1LjgtMzMuN2w1MC0xNjBjOS43LTMwLjktMTMuNC02Mi4zLTQ1LjgtNjIuM2wtMzc5LjQgMGMtMjEgMC0zOS42IDEzLjYtNDUuOCAzMy43TDgwLjIgMjk0LjQgODAuMiA5NmMwLTguOCA3LjItMTYgMTYtMTZsMTM4LjcgMGMzLjUgMCA2LjggMS4xIDkuNiAzLjJMMjgyLjkgMTEyYzEzLjggMTAuNCAzMC43IDE2IDQ4IDE2bDExNy4zIDBjOC44IDAgMTYgNy4yIDE2IDE2bDQ4IDBjMC0zNS4zLTI4LjctNjQtNjQtNjRMMzMwLjkgODBjLTYuOSAwLTEzLjctMi4yLTE5LjItNi40TDI3My4zIDQ0LjhDMjYyLjIgMzYuNSAyNDguOCAzMiAyMzQuOSAzMkw5Ni4yIDMyYy0zNS4zIDAtNjQgMjguNy02NCA2NGwwIDI4OGMwIDM1LjMgMjguNyA2NCA2NCA2NGwxOTIgMHoiXX0scXZlPXtwcmVmaXg6ImZhciIsaWNvbk5hbWU6IndpbmRvdy1taW5pbWl6ZSIsaWNvbjpbNTEyLDUxMixbMTI4NDY5XSwiZjJkMSIsIk0wIDQyNGMwLTEzLjMgMTAuNy0yNCAyNC0yNGw0NjQgMGMxMy4zIDAgMjQgMTAuNyAyNCAyNHMtMTAuNyAyNC0yNCAyNEwyNCA0NDhjLTEzLjMgMC0yNC0xMC43LTI0LTI0eiJdfSxWdmU9e3ByZWZpeDoiZmFyIixpY29uTmFtZToic3Rhci1oYWxmIixpY29uOls1NzYsNTEyLFs2MTczMV0sImYwODkiLCJNMjg1LjctMTUuOGMxMC44IDIuNiAxOC40IDEyLjIgMTguNCAyMy4zbDAgMzg3LjFjMCA5LTUuMSAxNy4zLTEzLjEgMjEuNEwxNDMuOCA0OTFjLTggNC4xLTE3LjcgMy4zLTI1LTJzLTExLTE0LjItOS42LTIzLjJMMTM0LjQgMzA1LjkgMjAgMTkxLjRjLTYuNC02LjQtOC42LTE1LjgtNS44LTI0LjRzMTAuMS0xNC45IDE5LjEtMTYuM0wxOTMuMSAxMjUuMyAyNTguOC0zLjNjNS05LjkgMTYuMi0xNSAyNy0xMi40ek0yNTYuMSAxMDcuNEwyMzAuMyAxNThjLTMuNSA2LjgtMTAgMTEuNi0xNy42IDEyLjhsLTEyNS41IDIwIDg5LjggODkuOWM1LjQgNS40IDcuOSAxMy4xIDYuNyAyMC43bC0xOS44IDEyNS41IDkyLjItNDYuOSAwLTI3Mi42eiJdfSxqdmU9e3ByZWZpeDoiZmFyIixpY29uTmFtZToiYWxhcm0tY2xvY2siLGljb246WzUxMiw1MTIsWzkyMDBdLCJmMzRlIiwiTTQwMi42IDUwLjJjLTUuNCAxLjctMTEuMyAxLjgtMTYuMi0uOS01LjgtMy4yLTExLjgtNi4yLTE3LjgtOC45LTEwLjQtNC43LTEzLjctMTguMy00LjEtMjQuNiAxNS05LjkgMzMtMTUuNyA1Mi4zLTE1LjcgNTIuNiAwIDk1LjIgNDIuNiA5NS4yIDk1LjIgMCAxMy4yLTIuNyAyNS44LTcuNiAzNy4zLTQuNSAxMC41LTE4LjQgOS44LTI0LjkgLjQtMy44LTUuNS03LjgtMTAuOC0xMi0xNi0zLjUtNC40LTQuNS0xMC4yLTMuOC0xNS44IC4yLTEuOSAuNC0zLjkgLjQtNS45IDAtMjYuMS0yMS4yLTQ3LjItNDcuMi00Ny4yLTQuOSAwLTkuNyAuOC0xNC4yIDIuMnpNMzIuNSAxMzIuOWMtNi41IDkuNC0yMC41IDEwLjEtMjQuOS0uNC00LjktMTEuNS03LjYtMjQuMS03LjYtMzcuMyAwLTUyLjYgNDIuNi05NS4yIDk1LjItOTUuMiAxOS4zIDAgMzcuMyA1LjggNTIuMyAxNS43IDkuNiA2LjMgNi4zIDE5LjktNC4xIDI0LjYtNi4xIDIuOC0xMiA1LjctMTcuOCA4LjktNC45IDIuNy0xMC45IDIuNi0xNi4yIC45LTQuNS0xLjQtOS4yLTIuMi0xNC4yLTIuMi0yNi4xIDAtNDcuMiAyMS4yLTQ3LjIgNDcuMiAwIDIgLjEgNCAuNCA1LjkgLjcgNS42LS4zIDExLjQtMy44IDE1LjgtNC4yIDUuMi04LjIgMTAuNS0xMiAxNnpNNDMyIDI4OGExNzYgMTc2IDAgMSAwIC0zNTIgMCAxNzYgMTc2IDAgMSAwIDM1MiAwek0zOTYuNSA0NjIuNUMzNTguMSA0OTMuNCAzMDkuMiA1MTIgMjU2IDUxMnMtMTAyLjEtMTguNi0xNDAuNS00OS41TDczIDUwNWMtOS40IDkuNC0yNC42IDkuNC0zMy45IDBzLTkuNC0yNC42IDAtMzMuOWw0Mi41LTQyLjVDNTAuNiAzOTAuMSAzMiAzNDEuMiAzMiAyODggMzIgMTY0LjMgMTMyLjMgNjQgMjU2IDY0UzQ4MCAxNjQuMyA0ODAgMjg4YzAgNTMuMi0xOC42IDEwMi4xLTQ5LjUgMTQwLjVMNDczIDQ3MWM5LjQgOS40IDkuNCAyNC42IDAgMzMuOXMtMjQuNiA5LjQtMzMuOSAwbC00Mi41LTQyLjV6TTI4MCAxODRsMCA5NC4xIDQxIDQxYzkuNCA5LjQgOS40IDI0LjYgMCAzMy45cy0yNC42IDkuNC0zMy45IDBsLTQ4LTQ4Yy00LjUtNC41LTctMTAuNi03LTE3bDAtMTA0YzAtMTMuMyAxMC43LTI0IDI0LTI0czI0IDEwLjcgMjQgMjR6Il19LFV2ZT17cHJlZml4OiJmYXIiLGljb25OYW1lOiJuZXdzcGFwZXIiLGljb246WzUxMiw1MTIsWzEyODI0MF0sImYxZWEiLCJNMTY4IDgwYy0xMy4zIDAtMjQgMTAuNy0yNCAyNGwwIDMwNGMwIDguNC0xLjQgMTYuNS00LjEgMjRMNDQwIDQzMmMxMy4zIDAgMjQtMTAuNyAyNC0yNGwwLTMwNGMwLTEzLjMtMTAuNy0yNC0yNC0yNEwxNjggODB6TTcyIDQ4MGMtMzkuOCAwLTcyLTMyLjItNzItNzJMMCAxMTJDMCA5OC43IDEwLjcgODggMjQgODhzMjQgMTAuNyAyNCAyNGwwIDI5NmMwIDEzLjMgMTAuNyAyNCAyNCAyNHMyNC0xMC43IDI0LTI0bDAtMzA0YzAtMzkuOCAzMi4yLTcyIDcyLTcybDI3MiAwYzM5LjggMCA3MiAzMi4yIDcyIDcybDAgMzA0YzAgMzkuOC0zMi4yIDcyLTcyIDcyTDcyIDQ4MHpNMTkyIDE1MmMwLTEzLjMgMTAuNy0yNCAyNC0yNGw0OCAwYzEzLjMgMCAyNCAxMC43IDI0IDI0bDAgNDhjMCAxMy4zLTEwLjcgMjQtMjQgMjRsLTQ4IDBjLTEzLjMgMC0yNC0xMC43LTI0LTI0bDAtNDh6bTE1MiAyNGw0OCAwYzEzLjMgMCAyNCAxMC43IDI0IDI0cy0xMC43IDI0LTI0IDI0bC00OCAwYy0xMy4zIDAtMjQtMTAuNy0yNC0yNHMxMC43LTI0IDI0LTI0ek0yMTYgMjU2bDE3NiAwYzEzLjMgMCAyNCAxMC43IDI0IDI0cy0xMC43IDI0LTI0IDI0bC0xNzYgMGMtMTMuMyAwLTI0LTEwLjctMjQtMjRzMTAuNy0yNCAyNC0yNHptMCA4MGwxNzYgMGMxMy4zIDAgMjQgMTAuNyAyNCAyNHMtMTAuNyAyNC0yNCAyNGwtMTc2IDBjLTEzLjMgMC0yNC0xMC43LTI0LTI0czEwLjctMjQgMjQtMjR6Il19LFZmPXtwcmVmaXg6ImZhciIsaWNvbk5hbWU6Imhvc3BpdGFsIixpY29uOls1NzYsNTEyLFsxMjc5NzMsNjI1ODksImhvc3BpdGFsLWFsdCIsImhvc3BpdGFsLXdpZGUiXSwiZjBmOCIsIk0xNzYgMGMtMzUuMyAwLTY0IDI4LjctNjQgNjRsMCA0OC00OCAwYy0zNS4zIDAtNjQgMjguNy02NCA2NEwwIDQ0OGMwIDM1LjMgMjguNyA2NCA2NCA2NGw0NDggMGMzNS4zIDAgNjQtMjguNyA2NC02NGwwLTI3MmMwLTM1LjMtMjguNy02NC02NC02NGwtNDggMCAwLTQ4YzAtMzUuMy0yOC43LTY0LTY0LTY0TDE3NiAwek0xNjAgNjRjMC04LjggNy4yLTE2IDE2LTE2bDIyNCAwYzguOCAwIDE2IDcuMiAxNiAxNmwwIDcyYzAgMTMuMyAxMC43IDI0IDI0IDI0bDcyIDBjOC44IDAgMTYgNy4yIDE2IDE2bDAgMjcyYzAgOC44LTcuMiAxNi0xNiAxNmwtMTc2IDAgMC04MGMwLTE3LjctMTQuMy0zMi0zMi0zMmwtMzIgMGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJsMCA4MC0xNzYgMGMtOC44IDAtMTYtNy4yLTE2LTE2bDAtMjcyYzAtOC44IDcuMi0xNiAxNi0xNmw3MiAwYzEzLjMgMCAyNC0xMC43IDI0LTI0bDAtNzJ6TTExMiAyMjRjLTguOCAwLTE2IDcuMi0xNiAxNmwwIDMyYzAgOC44IDcuMiAxNiAxNiAxNmwzMiAwYzguOCAwIDE2LTcuMiAxNi0xNmwwLTMyYzAtOC44LTcuMi0xNi0xNi0xNmwtMzIgMHpNOTYgMzM2bDAgMzJjMCA4LjggNy4yIDE2IDE2IDE2bDMyIDBjOC44IDAgMTYtNy4yIDE2LTE2bDAtMzJjMC04LjgtNy4yLTE2LTE2LTE2bC0zMiAwYy04LjggMC0xNiA3LjItMTYgMTZ6bTMyMCAwbDAgMzJjMCA4LjggNy4yIDE2IDE2IDE2bDMyIDBjOC44IDAgMTYtNy4yIDE2LTE2bDAtMzJjMC04LjgtNy4yLTE2LTE2LTE2bC0zMiAwYy04LjggMC0xNiA3LjItMTYgMTZ6bTE2LTExMmMtOC44IDAtMTYgNy4yLTE2IDE2bDAgMzJjMCA4LjggNy4yIDE2IDE2IDE2bDMyIDBjOC44IDAgMTYtNy4yIDE2LTE2bDAtMzJjMC04LjgtNy4yLTE2LTE2LTE2bC0zMiAwek0yNjQgMTA0bDAgMzItMzIgMGMtOC44IDAtMTYgNy4yLTE2IDE2bDAgMTZjMCA4LjggNy4yIDE2IDE2IDE2bDMyIDAgMCAzMmMwIDguOCA3LjIgMTYgMTYgMTZsMTYgMGM4LjggMCAxNi03LjIgMTYtMTZsMC0zMiAzMiAwYzguOCAwIDE2LTcuMiAxNi0xNmwwLTE2YzAtOC44LTcuMi0xNi0xNi0xNmwtMzIgMCAwLTMyYzAtOC44LTcuMi0xNi0xNi0xNmwtMTYgMGMtOC44IDAtMTYgNy4yLTE2IDE2eiJdfSxXdmU9VmYsR3ZlPVZmLGxQPXtwcmVmaXg6ImZhciIsaWNvbk5hbWU6ImNpcmNsZS1zdG9wIixpY29uOls1MTIsNTEyLFs2MjA5NCwic3RvcC1jaXJjbGUiXSwiZjI4ZCIsIk0yNTYgNDhhMjA4IDIwOCAwIDEgMSAwIDQxNiAyMDggMjA4IDAgMSAxIDAtNDE2em0wIDQ2NGEyNTYgMjU2IDAgMSAwIDAtNTEyIDI1NiAyNTYgMCAxIDAgMCA1MTJ6TTE2MCAxOTJsMCAxMjhjMCAxNy43IDE0LjMgMzIgMzIgMzJsMTI4IDBjMTcuNyAwIDMyLTE0LjMgMzItMzJsMC0xMjhjMC0xNy43LTE0LjMtMzItMzItMzJsLTEyOCAwYy0xNy43IDAtMzIgMTQuMy0zMiAzMnptNDggMTEybDAtOTYgOTYgMCAwIDk2LTk2IDB6Il19LFl2ZT1sUCxadmU9e3ByZWZpeDoiZmFyIixpY29uTmFtZToib2JqZWN0LXVuZ3JvdXAiLGljb246WzY0MCw1MTIsW10sImYyNDgiLCJNNDguMiA2Ni44Yy0uMS0uOC0uMi0xLjctLjItMi41bDAtLjJjMC04LjggNy4yLTE2IDE2LTE2IC45IDAgMS45IC4xIDIuOCAuMiA3LjUgMS4zIDEzLjIgNy45IDEzLjIgMTUuOCAwIDguOC03LjIgMTYtMTYgMTYtNy45IDAtMTQuNS01LjctMTUuOC0xMy4yek0wIDY0YzAgMjYuOSAxNi41IDQ5LjkgNDAgNTkuM2wwIDEwNS4zYy0yMy41IDkuNS00MCAzMi41LTQwIDU5LjMgMCAzNS4zIDI4LjcgNjQgNjQgNjQgMjYuOSAwIDQ5LjktMTYuNSA1OS4zLTQwbDIwMS4zIDBjOS41IDIzLjUgMzIuNSA0MCA1OS4zIDQwIDM1LjMgMCA2NC0yOC43IDY0LTY0IDAtMjYuOS0xNi41LTQ5LjktNDAtNTkuM2wwLTEwNS4zYzIzLjUtOS41IDQwLTMyLjUgNDAtNTkuMyAwLTM1LjMtMjguNy02NC02NC02NC0yNi45IDAtNDkuOSAxNi41LTU5LjMgNDBMMTIzLjMgNDBDMTEzLjkgMTYuNSA5MC45IDAgNjQgMCAyOC43IDAgMCAyOC43IDAgNjR6bTM2OCAwYTE2IDE2IDAgMSAxIDMyIDAgMTYgMTYgMCAxIDEgLTMyIDB6TTMyNC43IDg4YzYuNSAxNiAxOS4zIDI4LjkgMzUuMyAzNS4zbDAgMTA1LjNjLTE2IDYuNS0yOC45IDE5LjMtMzUuMyAzNS4zbC0yMDEuMyAwYy02LjUtMTYtMTkuMy0yOC45LTM1LjMtMzUuM2wwLTEwNS4zYzE2LTYuNSAyOC45LTE5LjMgMzUuMy0zNS4zbDIwMS4zIDB6TTM4NCAyNzJhMTYgMTYgMCAxIDEgMCAzMiAxNiAxNiAwIDEgMSAwLTMyek04MCAyODhjMCA3LjktNS43IDE0LjUtMTMuMiAxNS44LS44IC4xLTEuNyAuMi0yLjUgLjJsLS4yIDBjLTguOCAwLTE2LTcuMi0xNi0xNiAwLS45IC4xLTEuOSAuMi0yLjggMS4zLTcuNSA3LjktMTMuMiAxNS44LTEzLjIgOC44IDAgMTYgNy4yIDE2IDE2em00MzYuNy00MGM2LjUgMTYgMTkuMyAyOC45IDM1LjMgMzUuM2wwIDEwNS4zYy0xNiA2LjUtMjguOSAxOS4zLTM1LjMgMzUuM2wtMjAxLjMgMGMtNi41LTE2LTE5LjMtMjguOS0zNS4zLTM1LjNsMC0yMC43LTQ4IDAgMCAyMC43Yy0yMy41IDkuNS00MCAzMi41LTQwIDU5LjMgMCAzNS4zIDI4LjcgNjQgNjQgNjQgMjYuOSAwIDQ5LjktMTYuNSA1OS4zLTQwbDIwMS4zIDBjOS41IDIzLjUgMzIuNSA0MCA1OS4zIDQwIDM1LjMgMCA2NC0yOC43IDY0LTY0IDAtMjYuOS0xNi41LTQ5LjktNDAtNTkuM2wwLTEwNS4zYzIzLjUtOS41IDQwLTMyLjUgNDAtNTkuMyAwLTM1LjMtMjguNy02NC02NC02NC0yNi45IDAtNDkuOSAxNi41LTU5LjMgNDBsLTUyLjcgMCAwIDkuNmMxMC43IDEwLjkgMTkuMSAyMy45IDI0LjYgMzguNGwyOCAwem01OS4zLThhMTYgMTYgMCAxIDEgMC0zMiAxNiAxNiAwIDEgMSAwIDMyek0yNzEuOCA0NTAuN2ExNiAxNiAwIDEgMSAtMzEuNS01LjUgMTYgMTYgMCAxIDEgMzEuNSA1LjV6bTMwMS41IDEzYy03LjUtMS4zLTEzLjItNy45LTEzLjItMTUuOCAwLTguOCA3LjItMTYgMTYtMTYgNy45IDAgMTQuNSA1LjcgMTUuOCAxMy4ybDAgLjFjLjEgLjkgLjIgMS44IC4yIDIuNyAwIDguOC03LjIgMTYtMTYgMTYtLjkgMC0xLjktLjEtMi44LS4yeiJdfSxYdmU9e3ByZWZpeDoiZmFyIixpY29uTmFtZToiY29tbWVudCIsaWNvbjpbNTEyLDUxMixbMTI4NDg5LDYxNjY5XSwiZjA3NSIsIk01MS45IDM4NC45QzE5LjMgMzQ0LjYgMCAyOTQuNCAwIDI0MCAwIDEwNy41IDExNC42IDAgMjU2IDBTNTEyIDEwNy41IDUxMiAyNDAgMzk3LjQgNDgwIDI1NiA0ODBjLTM2LjUgMC03MS4yLTcuMi0xMDIuNi0yMEwzNyA1MDkuOWMtMy43IDEuNi03LjUgMi4xLTExLjUgMi4xLTE0LjEgMC0yNS41LTExLjQtMjUuNS0yNS41IDAtNC4zIDEuMS04LjUgMy4xLTEyLjJsNDguOC04OS40em0zNy4zLTMwLjJjMTIuMiAxNS4xIDE0LjEgMzYuMSA0LjggNTMuMmwtMTggMzMuMSA1OC41LTI1LjFjMTEuOC01LjEgMjUuMi01LjIgMzcuMS0uMyAyNS43IDEwLjUgNTQuMiAxNi40IDg0LjMgMTYuNCAxMTcuOCAwIDIwOC04OC44IDIwOC0xOTJTMzczLjggNDggMjU2IDQ4IDQ4IDEzNi44IDQ4IDI0MGMwIDQyLjggMTUuMSA4Mi40IDQxLjIgMTE0Ljd6Il19LEt2ZT17cHJlZml4OiJmYXIiLGljb25OYW1lOiJjaGVzcy1wYXduIixpY29uOlszODQsNTEyLFs5ODIzXSwiZjQ0MyIsIk0xOTItMzJjNjYuMyAwIDEyMCA1My43IDEyMCAxMjAgMCAyNy42LTkuMyA1Mi45LTI0LjkgNzMuMiA5LjggMyAxNi45IDEyLjEgMTYuOSAyMi44IDAgMTMuMy0xMC43IDI0LTI0IDI0bC0uNiAwIDI0LjYgMTYwIDUzLjYgNjdjNi43IDguNCAxMC40IDE4LjggMTAuNCAyOS42IDAgMjYuMi0yMS4yIDQ3LjQtNDcuNCA0Ny40TDYzLjQgNTEyYy0yNi4yIDAtNDcuNC0yMS4yLTQ3LjQtNDcuNCAwLTEwLjggMy43LTIxLjIgMTAuNC0yOS42bDUzLjYtNjcgMjQuNi0xNjAtLjYgMGMtMTMuMyAwLTI0LTEwLjctMjQtMjQgMC0xMC44IDcuMS0xOS44IDE2LjktMjIuOC0xNS42LTIwLjMtMjQuOS00NS42LTI0LjktNzMuMiAwLTY2LjMgNTMuNy0xMjAgMTIwLTEyMHpNMTE1LjkgNDAwbC01MS4yIDY0IDI1NC43IDAtNTEuMi02NC0xNTIuMiAwem0zNi4yLTE4NC43bC0yMSAxMzYuNyAxMjEuOSAwLTIxLTEzNi43LTEuMS03LjMtNzcuNiAwLTEuMSA3LjN6TTE5MiAxNmE3MiA3MiAwIDEgMCAwIDE0NCA3MiA3MiAwIDEgMCAwLTE0NHoiXX0sUXZlPXtwcmVmaXg6ImZhciIsaWNvbk5hbWU6ImNhbGVuZGFyLXBsdXMiLGljb246WzQ0OCw1MTIsW10sImYyNzEiLCJNMTIwIDBjMTMuMyAwIDI0IDEwLjcgMjQgMjRsMCA0MCAxNjAgMCAwLTQwYzAtMTMuMyAxMC43LTI0IDI0LTI0czI0IDEwLjcgMjQgMjRsMCA0MCAzMiAwYzM1LjMgMCA2NCAyOC43IDY0IDY0bDAgMjg4YzAgMzUuMy0yOC43IDY0LTY0IDY0TDY0IDQ4MGMtMzUuMyAwLTY0LTI4LjctNjQtNjRMMCAxMjhDMCA5Mi43IDI4LjcgNjQgNjQgNjRsMzIgMCAwLTQwYzAtMTMuMyAxMC43LTI0IDI0LTI0em0wIDExMmwtNTYgMGMtOC44IDAtMTYgNy4yLTE2IDE2bDAgMjg4YzAgOC44IDcuMiAxNiAxNiAxNmwzMjAgMGM4LjggMCAxNi03LjIgMTYtMTZsMC0yODhjMC04LjgtNy4yLTE2LTE2LTE2bC0yNjQgMHptMTA0IDY0YzEzLjMgMCAyNCAxMC43IDI0IDI0bDAgNDggNDggMGMxMy4zIDAgMjQgMTAuNyAyNCAyNHMtMTAuNyAyNC0yNCAyNGwtNDggMCAwIDQ4YzAgMTMuMy0xMC43IDI0LTI0IDI0cy0yNC0xMC43LTI0LTI0bDAtNDgtNDggMGMtMTMuMyAwLTI0LTEwLjctMjQtMjRzMTAuNy0yNCAyNC0yNGw0OCAwIDAtNDhjMC0xMy4zIDEwLjctMjQgMjQtMjR6Il19LEp2ZT17cHJlZml4OiJmYXIiLGljb25OYW1lOiJjbGlwYm9hcmQiLGljb246WzM4NCw1MTIsWzEyODIwM10sImYzMjgiLCJNMjMyIDk2bC04MCAwYy0xMy4zIDAtMjQtMTAuNy0yNC0yNHMxMC43LTI0IDI0LTI0bDgwIDBjMTMuMyAwIDI0IDEwLjcgMjQgMjRzLTEwLjcgMjQtMjQgMjR6bTAgNDhjMzcuMSAwIDY3LjYtMjggNzEuNi02NEwzMjAgODBjOC44IDAgMTYgNy4yIDE2IDE2bDAgMzUyYzAgOC44LTcuMiAxNi0xNiAxNkw2NCA0NjRjLTguOCAwLTE2LTcuMi0xNi0xNkw0OCA5NmMwLTguOCA3LjItMTYgMTYtMTZsMTYuNCAwYzQgMzYgMzQuNSA2NCA3MS42IDY0bDgwIDB6TTI5MS45IDMyQzI3OSAxMi43IDI1NyAwIDIzMiAwTDE1MiAwYy0yNSAwLTQ3IDEyLjctNTkuOSAzMkw2NCAzMkMyOC43IDMyIDAgNjAuNyAwIDk2TDAgNDQ4YzAgMzUuMyAyOC43IDY0IDY0IDY0bDI1NiAwYzM1LjMgMCA2NC0yOC43IDY0LTY0bDAtMzUyYzAtMzUuMy0yOC43LTY0LTY0LTY0bC0yOC4xIDB6Il19LGV5ZT17cHJlZml4OiJmYXIiLGljb25OYW1lOiJ0aHVtYnMtZG93biIsaWNvbjpbNTEyLDUxMixbMTI4MDc4LDYxNTc2XSwiZjE2NSIsIk0zNjAgMzJsNy40IC40YzM1IDMuNiA2Mi41IDMyLjIgNjQuNCA2Ny43IDE3LjggMTEuOCAzMC4xIDMxLjQgMzIgNTMuOWwuMiA2YzAgNS43LS43IDExLjItMiAxNi41IDEwLjIgMTEuNSAxNi44IDI2LjMgMTcuOCA0Mi43bC4yIDQuOGMwIDEzLjItMy42IDI1LjQtOS44IDM2IDQuOSA4LjQgOC4yIDE3LjkgOS4zIDI4bC40IDhjMCAzNy4zLTI4LjMgNjcuOS02NC42IDcxLjZsLTcuNCAuNC0xMDkuNyAwIDE0LjEgMzAgMy4xIDcuNmMxMi41IDM1LjctMS44IDc1LjUtMzQuMiA5NWwtNy4yIDMuOWMtMzcuNSAxNy42LTgxLjcgMy42LTEwMi42LTMxLjJsLS42LS45LTIuNy01LS42LTEuMi0zMC4xLTY0Yy05LjQgMTcuOC0yOCAyOS45LTQ5LjUgMjkuOWwtMzIgMGMtMzAuOSAwLTU2LTI1LjEtNTYtNTZMMCAxNTJjMC0zMC45IDI1LjEtNTYgNTYtNTZsMzIgMGMxMi40IDAgMjMuOSA0LjEgMzMuMiAxMSAxMy4yLTIxLjQgMzItMzkuNCA1NS01MS42bDEyLjItNi41IC43LS4zIDYuNi0zLjIgLjctLjMgNy4xLTNjMTYuNy02LjYgMzQuNS05LjkgNTIuNi05LjlMMzYwIDMyek0yNTUuOSA4MGMtMTIgMC0yMy45IDIuMy0zNS4xIDYuNmwtNC43IDItNS4zIDIuNiAwIDAtMTIuMiA2LjVjLTI5LjIgMTUuNS00OC4zIDQ0LjktNTAuNyA3Ny42bC0uMiA4IDAgMTEyLjkgLjEgNC4xYy41IDguMiAyLjUgMTYuMiA2IDIzLjdsNTYuOCAxMjAuOSAyLjEgMy44YzguNCAxMy43IDI2IDE5LjEgNDAuOCAxMi4ybDIuOS0xLjZjMTMtNy44IDE4LjctMjMuNyAxMy43LTM4bC0xLjItMy0zMC4yLTY0LjJjLTMuNS03LjQtMi45LTE2LjEgMS41LTIzLjFzMTItMTEuMSAyMC4yLTExLjFsMTQ3LjUgMCAyLjQtLjFjMTEuMy0xLjEgMjAuMy0xMC4xIDIxLjQtMjEuNGwuMS0yLjVjMC03LjEtMy4xLTEzLjUtOC4yLTE4LTUuMi00LjYtOC4yLTExLjEtOC4yLTE4czMtMTMuNCA4LjItMThjNC40LTMuOSA3LjQtOS4zIDgtMTUuM2wuMi0yLjdjMC04LjQtNC40LTE1LjktMTEuMi0yMC4yLTEwLjctNi45LTE0LjItMjAuOS04LTMyIDEuNS0yLjYgMi41LTUuNiAyLjktOC42bC4yLTMuMmMwLTEwLjYtNi45LTE5LjYtMTYuNi0yMi44LTExLjctMy44LTE4LjctMTUuOS0xNi0yOCAuMi0uOSAuMy0xLjggLjQtMi42bC4yLTIuNmMwLTEyLjQtOS41LTIyLjYtMjEuNi0yMy44TDM2MCA4MCAyNTUuOSA4MHpNNTYgMTQ0Yy00LjQgMC04IDMuNi04IDhsMCAyMjRjMCA0LjQgMy42IDggOCA4bDMyIDBjNC40IDAgOC0zLjYgOC04bDAtMjI0YzAtNC40LTMuNi04LTgtOGwtMzIgMHoiXX0sdHllPXtwcmVmaXg6ImZhciIsaWNvbk5hbWU6ImlkLWJhZGdlIixpY29uOlszODQsNTEyLFtdLCJmMmMxIiwiTTI1NiA0OGwwIDE2YzAgMTcuNy0xNC4zIDMyLTMyIDMybC02NCAwYy0xNy43IDAtMzItMTQuMy0zMi0zMmwwLTE2LTY0IDBjLTguOCAwLTE2IDcuMi0xNiAxNmwwIDM4NGMwIDguOCA3LjIgMTYgMTYgMTZsMjU2IDBjOC44IDAgMTYtNy4yIDE2LTE2bDAtMzg0YzAtOC44LTcuMi0xNi0xNi0xNmwtNjQgMHpNMCA2NEMwIDI4LjcgMjguNyAwIDY0IDBMMzIwIDBjMzUuMyAwIDY0IDI4LjcgNjQgNjRsMCAzODRjMCAzNS4zLTI4LjcgNjQtNjQgNjRMNjQgNTEyYy0zNS4zIDAtNjQtMjguNy02NC02NEwwIDY0ek0xNjAgMzIwbDY0IDBjNDQuMiAwIDgwIDM1LjggODAgODAgMCA4LjgtNy4yIDE2LTE2IDE2TDk2IDQxNmMtOC44IDAtMTYtNy4yLTE2LTE2IDAtNDQuMiAzNS44LTgwIDgwLTgwem0tMjQtOTZhNTYgNTYgMCAxIDEgMTEyIDAgNTYgNTYgMCAxIDEgLTExMiAweiJdfSxjUD17cHJlZml4OiJmYXIiLGljb25OYW1lOiJzcXVhcmUtY2hlY2siLGljb246WzQ0OCw1MTIsWzk3NDUsOTk4OSw2MTUxMCwiY2hlY2stc3F1YXJlIl0sImYxNGEiLCJNMzg0IDMyYzM1LjMgMCA2NCAyOC43IDY0IDY0bDAgMzIwYzAgMzUuMy0yOC43IDY0LTY0IDY0TDY0IDQ4MGMtMzUuMyAwLTY0LTI4LjctNjQtNjRMMCA5NkMwIDYwLjcgMjguNyAzMiA2NCAzMmwzMjAgMHpNNjQgODBjLTguOCAwLTE2IDcuMi0xNiAxNmwwIDMyMGMwIDguOCA3LjIgMTYgMTYgMTZsMzIwIDBjOC44IDAgMTYtNy4yIDE2LTE2bDAtMzIwYzAtOC44LTcuMi0xNi0xNi0xNkw2NCA4MHptMjMwLjcgODkuOWM3LjgtMTAuNyAyMi44LTEzLjEgMzMuNS01LjMgMTAuNyA3LjggMTMuMSAyMi44IDUuMyAzMy41TDIxMS40IDM2Ni4xYy00LjEgNS43LTEwLjUgOS4zLTE3LjUgOS44LTcgLjUtMTMuOS0yLTE4LjgtNi45bC01NS45LTU1LjljLTkuNC05LjQtOS40LTI0LjYgMC0zMy45czI0LjYtOS40IDMzLjkgMGwzNiAzNiAxMDUuNi0xNDUuMnoiXX0sYXllPWNQLGl5ZT17cHJlZml4OiJmYXIiLGljb25OYW1lOiJjaGVzcy1iaXNob3AiLGljb246WzMyMCw1MTIsWzk4MjFdLCJmNDNhIiwiTTIxNiAwYzEzLjMgMCAyNCAxMC43IDI0IDI0cy0xMC43IDI0LTI0IDI0bC0xNiAwIDgxLjggOTguMWMyNC43IDI5LjYgMzguMiA2NyAzOC4yIDEwNS42IDAgNDMuNy0xNy40IDg1LjctNDguMyAxMTYuNmwtOC42IDguNiA0Ni41IDU4LjJjNi43IDguNCAxMC40IDE4LjggMTAuNCAyOS42IDAgMjYuMi0yMS4yIDQ3LjQtNDcuNCA0Ny40TDQ3LjQgNTEyQzIxLjIgNTEyIDAgNDkwLjggMCA0NjQuNiAwIDQ1My45IDMuNyA0NDMuNCAxMC40IDQzNWw0Ni41LTU4LjItOC42LTguNkMxNy40IDMzNy40IDAgMjk1LjQgMCAyNTEuNyAwIDIxMy4xIDEzLjUgMTc1LjggMzguMiAxNDYuMUwxMjAgNDggMTA0IDQ4QzkwLjcgNDggODAgMzcuMyA4MCAyNFM5MC43IDAgMTA0IDBMMjE2IDB6TTk0LjQgNDA2LjhsLTQ1LjcgNTcuMiAyMjIuNyAwLTQ1LjctNTcuMS01LjUtNi45LTEyMC4zIDAtNS41IDYuOHpNMTU2LjkgNzguN0w3NS4xIDE3Ni44Yy0xNS4zIDE4LjQtMjQuNiA0MS0yNi43IDY0LjdMNDggMjUxLjdjMCAzMSAxMi4zIDYwLjcgMzQuMiA4Mi43bDE3LjcgMTcuNyAxMjAuMiAwYzYuMi02LjIgMTIuMS0xMi4xIDE3LjgtMTcuNyAyMS45LTIxLjkgMzQuMi01MS42IDM0LjItODIuNmwtLjQtMTAuMmMtMS41LTE3LTYuNy0zMy4zLTE1LjItNDhMMjA5IDI0MWMtOS40IDkuNC0yNC42IDkuNC0zMy45IDBzLTkuNC0yNC42IDAtMzMuOWw1MS44LTUxLjgtNjMuNy03Ni41LTMuMS0zLjgtMy4xIDMuOHoiXX0scnllPXtwcmVmaXg6ImZhciIsaWNvbk5hbWU6ImVudmVsb3BlLW9wZW4iLGljb246WzUxMiw1MTIsWzYyMTM1XSwiZjJiNiIsIk01MTIgNDE2YzAgMzUuMy0yOC41IDY0LTYzLjkgNjRMNjQgNDgwYy0zNS40IDAtNjQtMjguNy02NC02NEwwIDE2NGMuMS0xNS41IDcuOC0zMCAyMC41LTM4LjhMMjA2LTIuN2MzMC4xLTIwLjcgNjkuOC0yMC43IDk5LjkgMEw0OTEuNSAxMjUuMmMxMi44IDguOCAyMC40IDIzLjMgMjAuNSAzOC44bDAgMjUyek02NCA0MzJsMzg0LjEgMGM4LjggMCAxNS45LTcuMSAxNS45LTE2bDAtMTkxLjctMTU0LjggMTE3LjRjLTMxLjQgMjMuOS03NC45IDIzLjktMTA2LjQgMEw0OCAyMjQuMyA0OCA0MTZjMCA4LjkgNy4yIDE2IDE2IDE2ek00NjMuNiAxNjQuNEwyNzguNyAzNi44Yy0xMy43LTkuNC0zMS43LTkuNC00NS40IDBMNDguNCAxNjQuNCAyMzEuOCAzMDMuNWMxNC4zIDEwLjggMzQuMSAxMC44IDQ4LjQgMEw0NjMuNiAxNjQuNHoiXX0sY2w9e3ByZWZpeDoiZmFyIixpY29uTmFtZToiY2lyY2xlLXhtYXJrIixpY29uOls1MTIsNTEyLFs2MTUzMiwidGltZXMtY2lyY2xlIiwieG1hcmstY2lyY2xlIl0sImYwNTciLCJNMjU2IDQ4YTIwOCAyMDggMCAxIDEgMCA0MTYgMjA4IDIwOCAwIDEgMSAwLTQxNnptMCA0NjRhMjU2IDI1NiAwIDEgMCAwLTUxMiAyNTYgMjU2IDAgMSAwIDAgNTEyek0xNjcgMTY3Yy05LjQgOS40LTkuNCAyNC42IDAgMzMuOWw1NSA1NS01NSA1NWMtOS40IDkuNC05LjQgMjQuNiAwIDMzLjlzMjQuNiA5LjQgMzMuOSAwbDU1LTU1IDU1IDU1YzkuNCA5LjQgMjQuNiA5LjQgMzMuOSAwczkuNC0yNC42IDAtMzMuOWwtNTUtNTUgNTUtNTVjOS40LTkuNCA5LjQtMjQuNiAwLTMzLjlzLTI0LjYtOS40LTMzLjkgMGwtNTUgNTUtNTUtNTVjLTkuNC05LjQtMjQuNi05LjQtMzMuOSAweiJdfSxzeWU9Y2wsbnllPWNsLGRQPXtwcmVmaXg6ImZhciIsaWNvbk5hbWU6InNxdWFyZS1jYXJldC11cCIsaWNvbjpbNDQ4LDUxMixbImNhcmV0LXNxdWFyZS11cCJdLCJmMTUxIiwiTTY0IDgwYy04LjggMC0xNiA3LjItMTYgMTZsMCAzMjBjMCA4LjggNy4yIDE2IDE2IDE2bDMyMCAwYzguOCAwIDE2LTcuMiAxNi0xNmwwLTMyMGMwLTguOC03LjItMTYtMTYtMTZMNjQgODB6TTAgOTZDMCA2MC43IDI4LjcgMzIgNjQgMzJsMzIwIDBjMzUuMyAwIDY0IDI4LjcgNjQgNjRsMCAzMjBjMCAzNS4zLTI4LjcgNjQtNjQgNjRMNjQgNDgwYy0zNS4zIDAtNjQtMjguNy02NC02NEwwIDk2em0yMjQgNjRjNi43IDAgMTMgMi44IDE3LjYgNy43bDEwNCAxMTJjNi41IDcgOC4yIDE3LjIgNC40IDI1LjlTMzM3LjUgMzIwIDMyOCAzMjBsLTIwOCAwYy05LjUgMC0xOC4yLTUuNy0yMi0xNC40cy0yLjEtMTguOSA0LjQtMjUuOWwxMDQtMTEyYzQuNS00LjkgMTAuOS03LjcgMTcuNi03Ljd6Il19LG95ZT1kUCxseWU9e3ByZWZpeDoiZmFyIixpY29uTmFtZToiZmlsZS1pbWFnZSIsaWNvbjpbMzg0LDUxMixbMTI4NDQzXSwiZjFjNSIsIk0xNzYgNDhMNjQgNDhjLTguOCAwLTE2IDcuMi0xNiAxNmwwIDM4NGMwIDguOCA3LjIgMTYgMTYgMTZsMjU2IDBjOC44IDAgMTYtNy4yIDE2LTE2bDAtMjQwLTg4IDBjLTM5LjggMC03Mi0zMi4yLTcyLTcybDAtODh6TTMxNi4xIDE2MEwyMjQgNjcuOSAyMjQgMTM2YzAgMTMuMyAxMC43IDI0IDI0IDI0bDY4LjEgMHpNMCA2NEMwIDI4LjcgMjguNyAwIDY0IDBMMTk3LjUgMGMxNyAwIDMzLjMgNi43IDQ1LjMgMTguN0wzNjUuMyAxNDEuM2MxMiAxMiAxOC43IDI4LjMgMTguNyA0NS4zTDM4NCA0NDhjMCAzNS4zLTI4LjcgNjQtNjQgNjRMNjQgNTEyYy0zNS4zIDAtNjQtMjguNy02NC02NEwwIDY0ek0yNTkuNCA0MzJsLTEzNC44IDBjLTE1LjggMC0yOC42LTEyLjgtMjguNi0yOC42IDAtNi40IDIuMS0xMi41IDYtMTcuNmw2Ny42LTg2LjlDMTc1IDI5MiAxODMuMyAyODggMTkyIDI4OHMxNyA0IDIyLjQgMTAuOUwyODIgMzg1LjljMy45IDUgNiAxMS4yIDYgMTcuNiAwIDE1LjgtMTIuOCAyOC42LTI4LjYgMjguNnpNMTEyIDIyNGEzMiAzMiAwIDEgMSAwIDY0IDMyIDMyIDAgMSAxIDAtNjR6Il19LGhQPXtwcmVmaXg6ImZhciIsaWNvbk5hbWU6InNxdWFyZS1jYXJldC1yaWdodCIsaWNvbjpbNDQ4LDUxMixbImNhcmV0LXNxdWFyZS1yaWdodCJdLCJmMTUyIiwiTTQwMCA5NmMwLTguOC03LjItMTYtMTYtMTZMNjQgODBjLTguOCAwLTE2IDcuMi0xNiAxNmwwIDMyMGMwIDguOCA3LjIgMTYgMTYgMTZsMzIwIDBjOC44IDAgMTYtNy4yIDE2LTE2bDAtMzIwek0zODQgMzJjMzUuMyAwIDY0IDI4LjcgNjQgNjRsMCAzMjBjMCAzNS4zLTI4LjcgNjQtNjQgNjRMNjQgNDgwYy0zNS4zIDAtNjQtMjguNy02NC02NEwwIDk2QzAgNjAuNyAyOC43IDMyIDY0IDMybDMyMCAwek0zMjAgMjU2YzAgNi43LTIuOCAxMy03LjcgMTcuNmwtMTEyIDEwNGMtNyA2LjUtMTcuMiA4LjItMjUuOSA0LjRTMTYwIDM2OS41IDE2MCAzNjBsMC0yMDhjMC05LjUgNS43LTE4LjIgMTQuNC0yMnMxOC45LTIuMSAyNS45IDQuNGwxMTIgMTA0YzQuOSA0LjUgNy43IDEwLjkgNy43IDE3LjZ6Il19LGN5ZT1oUCxYZj17cHJlZml4OiJmYXIiLGljb25OYW1lOiJzdW4iLGljb246WzU3Niw1MTIsWzk3MjhdLCJmMTg1IiwiTTI4OC0zMmM4IDAgMTUuNCA0IDE5LjkgMTAuNmw1OC44IDg3LjQgMTAzLjQtMjAuMmM3LjgtMS41IDE1LjkgLjkgMjEuNiA2LjZzOC4xIDEzLjggNi42IDIxLjZMNDc4IDE3Ny4zIDU2NS40IDIzNi4xQzU3MiAyNDAuNSA1NzYgMjQ4IDU3NiAyNTZzLTQgMTUuNC0xMC42IDE5LjlMNDc4IDMzNC43IDQ5OC4yIDQzOGMxLjUgNy44LS45IDE1LjktNi42IDIxLjZzLTEzLjggOC4xLTIxLjYgNi42TDM2Ni43IDQ0NiAzMDcuOSA1MzMuNEMzMDMuNCA1NDAgMjk2IDU0NCAyODggNTQ0cy0xNS40LTQtMTkuOS0xMC42TDIwOS4zIDQ0NiAxMDUuOSA0NjYuMmMtNy44IDEuNS0xNS45LS45LTIxLjYtNi42cy04LjEtMTMuOC02LjYtMjEuNkw5OCAzMzQuNyAxMC42IDI3NS45QzQgMjcxLjQgMCAyNjQgMCAyNTZzNC0xNS40IDEwLjYtMTkuOUw5OCAxNzcuMyA3Ny44IDczLjljLTEuNS03LjggLjktMTUuOSA2LjYtMjEuNnMxMy44LTguMSAyMS42LTYuNmwxMDMuMyAyMC4yIDU4LjgtODcuNCAxLjgtMi4zQzI3NC40LTI5IDI4MS0zMiAyODgtMzJ6bS00Ny44IDEzOGMtNS40IDgtMTUgMTItMjQuNSAxMC4ybC04NC0xNi40IDE2LjQgODRjMS44IDkuNS0yLjIgMTkuMS0xMC4yIDI0LjVMNjcgMjU2IDEzOCAzMDMuOGM4IDUuNCAxMiAxNSAxMC4yIDI0LjVsLTE2LjQgODQgODQtMTYuNCAzLjUtLjRjOC4zLS40IDE2LjMgMy42IDIxIDEwLjZsNDcuOCA3MSA0Ny44LTcxIDIuMi0yLjhjNS42LTYuMSAxNC05IDIyLjMtNy4zbDg0IDE2LjQtMTYuNC04NGMtMS44LTkuNSAyLjItMTkuMSAxMC4yLTI0LjVsNzEtNDcuOC03MS00Ny44Yy04LTUuNC0xMi0xNS0xMC4yLTI0LjVsMTYuNC04NC04NCAxNi40Yy05LjUgMS44LTE5LjEtMi4yLTI0LjUtMTAuMmwtNDcuOC03MS00Ny44IDcxek0yODggMzc2YTEyMCAxMjAgMCAxIDEgMC0yNDAgMTIwIDEyMCAwIDEgMSAwIDI0MHptMC0xOTJhNzIgNzIgMCAxIDAgMCAxNDQgNzIgNzIgMCAxIDAgMC0xNDR6Il19LGR5ZT17cHJlZml4OiJmYXIiLGljb25OYW1lOiJpbWFnZSIsaWNvbjpbNDQ4LDUxMixbXSwiZjAzZSIsIk02NCA4MGMtOC44IDAtMTYgNy4yLTE2IDE2bDAgMzIwYzAgOC44IDcuMiAxNiAxNiAxNmwzMjAgMGM4LjggMCAxNi03LjIgMTYtMTZsMC0zMjBjMC04LjgtNy4yLTE2LTE2LTE2TDY0IDgwek0wIDk2QzAgNjAuNyAyOC43IDMyIDY0IDMybDMyMCAwYzM1LjMgMCA2NCAyOC43IDY0IDY0bDAgMzIwYzAgMzUuMy0yOC43IDY0LTY0IDY0TDY0IDQ4MGMtMzUuMyAwLTY0LTI4LjctNjQtNjRMMCA5NnptMTI4IDMyYTMyIDMyIDAgMSAxIDAgNjQgMzIgMzIgMCAxIDEgMC02NHptMTM2IDcyYzguNSAwIDE2LjQgNC41IDIwLjcgMTEuOGw4MCAxMzZjNC40IDcuNCA0LjQgMTYuNiAuMSAyNC4xUzM1Mi42IDM4NCAzNDQgMzg0bC0yNDAgMGMtOC45IDAtMTcuMi01LTIxLjMtMTIuOXMtMy41LTE3LjUgMS42LTI0LjhsNTYtODBjNC41LTYuNCAxMS44LTEwLjIgMTkuNy0xMC4yczE1LjIgMy44IDE5LjcgMTAuMmwxNy4yIDI0LjYgNDYuNS03OWM0LjMtNy4zIDEyLjItMTEuOCAyMC43LTExLjh6Il19LGh5ZT17cHJlZml4OiJmYXIiLGljb25OYW1lOiJsaWdodGJ1bGIiLGljb246WzM4NCw1MTIsWzEyODE2MV0sImYwZWIiLCJNMjk2LjUgMjkxLjFDMzIxIDI2NS4yIDMzNiAyMzAuNCAzMzYgMTkyIDMzNiAxMTIuNSAyNzEuNSA0OCAxOTIgNDhTNDggMTEyLjUgNDggMTkyYzAgMzguNCAxNSA3My4yIDM5LjUgOTkuMSAyMS4zIDIyLjQgNDQuOSA1NCA1My4zIDkyLjlsMTAyLjQgMGM4LjQtMzkgMzItNzAuNSA1My4zLTkyLjl6bTM0LjggMzNDMzA3LjcgMzQ5IDI4OCAzNzkuNCAyODggNDEzLjdsMCAxOC4zYzAgNDQuMi0zNS44IDgwLTgwIDgwbC0zMiAwYy00NC4yIDAtODAtMzUuOC04MC04MGwwLTE4LjNDOTYgMzc5LjQgNzYuMyAzNDkgNTIuNyAzMjQuMSAyMCAyODkuNyAwIDI0My4yIDAgMTkyIDAgODYgODYgMCAxOTIgMFMzODQgODYgMzg0IDE5MmMwIDUxLjItMjAgOTcuNy01Mi43IDEzMi4xek0xNDQgMTg0YzAgMTMuMy0xMC43IDI0LTI0IDI0cy0yNC0xMC43LTI0LTI0YzAtNDguNiAzOS40LTg4IDg4LTg4IDEzLjMgMCAyNCAxMC43IDI0IDI0cy0xMC43IDI0LTI0IDI0Yy0yMi4xIDAtNDAgMTcuOS00MCA0MHoiXX0samY9e3ByZWZpeDoiZmFyIixpY29uTmFtZToiYWRkcmVzcy1jYXJkIixpY29uOls1NzYsNTEyLFs2MjE0MCwiY29udGFjdC1jYXJkIiwidmNhcmQiXSwiZjJiYiIsIk01MTIgODBjOC44IDAgMTYgNy4yIDE2IDE2bDAgMzIwYzAgOC44LTcuMiAxNi0xNiAxNkw2NCA0MzJjLTguOCAwLTE2LTcuMi0xNi0xNkw0OCA5NmMwLTguOCA3LjItMTYgMTYtMTZsNDQ4IDB6TTY0IDMyQzI4LjcgMzIgMCA2MC43IDAgOTZMMCA0MTZjMCAzNS4zIDI4LjcgNjQgNjQgNjRsNDQ4IDBjMzUuMyAwIDY0LTI4LjcgNjQtNjRsMC0zMjBjMC0zNS4zLTI4LjctNjQtNjQtNjRMNjQgMzJ6TTIwOCAyNDhhNTYgNTYgMCAxIDAgMC0xMTIgNTYgNTYgMCAxIDAgMCAxMTJ6bS0zMiA0MGMtNDQuMiAwLTgwIDM1LjgtODAgODAgMCA4LjggNy4yIDE2IDE2IDE2bDE5MiAwYzguOCAwIDE2LTcuMiAxNi0xNiAwLTQ0LjItMzUuOC04MC04MC04MGwtNjQgMHpNMzc2IDE0NGMtMTMuMyAwLTI0IDEwLjctMjQgMjRzMTAuNyAyNCAyNCAyNGw4MCAwYzEzLjMgMCAyNC0xMC43IDI0LTI0cy0xMC43LTI0LTI0LTI0bC04MCAwem0wIDk2Yy0xMy4zIDAtMjQgMTAuNy0yNCAyNHMxMC43IDI0IDI0IDI0bDgwIDBjMTMuMyAwIDI0LTEwLjcgMjQtMjRzLTEwLjctMjQtMjQtMjRsLTgwIDB6Il19LHB5ZT1qZix1eWU9amYscFA9e3ByZWZpeDoiZmFyIixpY29uTmFtZToiZmFjZS1tZWgiLGljb246WzUxMiw1MTIsWzEyODUyOCwibWVoIl0sImYxMWEiLCJNNDY0IDI1NmEyMDggMjA4IDAgMSAxIC00MTYgMCAyMDggMjA4IDAgMSAxIDQxNiAwek0yNTYgMGEyNTYgMjU2IDAgMSAwIDAgNTEyIDI1NiAyNTYgMCAxIDAgMC01MTJ6TTE3NiAyNDBhMzIgMzIgMCAxIDAgMC02NCAzMiAzMiAwIDEgMCAwIDY0em0xOTItMzJhMzIgMzIgMCAxIDAgLTY0IDAgMzIgMzIgMCAxIDAgNjQgMHpNMTg0IDMyMGMtMTMuMyAwLTI0IDEwLjctMjQgMjRzMTAuNyAyNCAyNCAyNGwxNDQgMGMxMy4zIDAgMjQtMTAuNyAyNC0yNHMtMTAuNy0yNC0yNC0yNGwtMTQ0IDB6Il19LGZ5ZT1wUCxteWU9e3ByZWZpeDoiZmFyIixpY29uTmFtZToibWFwIixpY29uOls1MTIsNTEyLFsxMjg1MDYsNjIwNzJdLCJmMjc5IiwiTTUxMiA0OGMwLTguMy00LjMtMTYtMTEuMy0yMC40cy0xNS45LTQuOC0yMy4zLTEuMUwzNTIuNSA4OC4xIDE4MCAyOS40Yy0xMy43LTQuNy0yOC43LTMuOC00MS45IDIuM0wxMy44IDkwLjNDNS40IDk0LjIgMCAxMDIuNyAwIDExMkwwIDQ2NGMwIDguMiA0LjIgMTUuOSAxMS4xIDIwLjNzMTUuNiA0LjkgMjMuMSAxLjRsMTI3LjMtNTkuOSAxNzAuNyA1Ni45YzEzLjcgNC42IDI4LjUgMy43IDQxLjYtMi41bDEyNC40LTU4LjVjOC40LTQgMTMuOC0xMi40IDEzLjgtMjEuN2wwLTM1MnpNMTQ0IDgyLjFsMCAyOTktOTYgNDUuMiAwLTI5OSA5Ni00NS4yem00OCAzMDMuM2wwLTMwMS4xIDEyOCA0My41IDAgMzAwLjMtMTI4LTQyLjd6TTM2OCAxMzRsOTYtNDcuNCAwIDI5OC4yLTk2IDQ1LjIgMC0yOTZ6Il19LGd5ZT17cHJlZml4OiJmYXIiLGljb25OYW1lOiJoYW5kLXBvaW50LWRvd24iLGljb246WzM4NCw1MTIsW10sImYwYTciLCJNNjQgNDQ4bDAtMTc3LjZjNS4yIDEgMTAuNSAxLjYgMTYgMS42bDE2IDAgMCAxNzZjMCA4LjgtNy4yIDE2LTE2IDE2cy0xNi03LjItMTYtMTZ6TTgwIDIyNGMtMTcuNyAwLTMyLTE0LjMtMzItMzJsMC0yNGMwLTY2LjMgNTMuNy0xMjAgMTIwLTEyMGw0OCAwYzUyLjUgMCA5Ny4xIDMzLjcgMTEzLjQgODAuNy0zLjEtLjUtNi4yLS43LTkuNC0uNy0yMCAwLTM3LjkgOS4yLTQ5LjcgMjMuNi05LTQuOS0xOS40LTcuNi0zMC4zLTcuNi0xNS4xIDAtMjkgNS4zLTQwIDE0LTExLTguOC0yNC45LTE0LTQwLTE0bC00MCAwYy0xMy4zIDAtMjQgMTAuNy0yNCAyNHMxMC43IDI0IDI0IDI0bDQwIDBjOC44IDAgMTYgNy4yIDE2IDE2cy03LjIgMTYtMTYgMTZsLTgwIDB6TTAgMTkybDAgMGMwIDE4IDYgMzQuNiAxNiA0OGwwIDIwOGMwIDM1LjMgMjguNyA2NCA2NCA2NHM2NC0yOC43IDY0LTY0bDAtODJjNS4xIDEuMyAxMC41IDIgMTYgMiAyNS4zIDAgNDcuMi0xNC43IDU3LjYtMzYgNyAyLjYgMTQuNSA0IDIyLjQgNCAyMCAwIDM3LjktOS4yIDQ5LjctMjMuNiA5IDQuOSAxOS40IDcuNiAzMC4zIDcuNiAzNS4zIDAgNjQtMjguNyA2NC02NGwwLTg4QzM4NCA3NS4yIDMwOC44IDAgMjE2IDBMMTY4IDBDNzUuMiAwIDAgNzUuMiAwIDE2OGwwIDI0em0zMzYgNjRjMCA4LjgtNy4yIDE2LTE2IDE2cy0xNi03LjItMTYtMTZsMC02NGMwLTguOCA3LjItMTYgMTYtMTZzMTYgNy4yIDE2IDE2bDAgNjR6TTE2MCAyNzJjNS41IDAgMTAuOS0uNyAxNi0ybDAgMzRjMCA4LjgtNy4yIDE2LTE2IDE2cy0xNi03LjItMTYtMTZsMC0zMiAxNiAwem02NC0yNGwwLTQwYzAtOC44IDcuMi0xNiAxNi0xNnMxNiA3LjIgMTYgMTZsMCA2NGMwIDguOC03LjIgMTYtMTYgMTZzLTE2LTcuMi0xNi0xNmwwLTI0eiJdfSx1UD17cHJlZml4OiJmYXIiLGljb25OYW1lOiJmYWNlLW1laC1ibGFuayIsaWNvbjpbNTEyLDUxMixbMTI4NTY2LCJtZWgtYmxhbmsiXSwiZjVhNCIsIk0yNTYgNDhhMjA4IDIwOCAwIDEgMCAwIDQxNiAyMDggMjA4IDAgMSAwIDAtNDE2ek01MTIgMjU2YTI1NiAyNTYgMCAxIDEgLTUxMiAwIDI1NiAyNTYgMCAxIDEgNTEyIDB6TTE0NCAyMDhhMzIgMzIgMCAxIDEgNjQgMCAzMiAzMiAwIDEgMSAtNjQgMHptMTkyLTMyYTMyIDMyIDAgMSAxIDAgNjQgMzIgMzIgMCAxIDEgMC02NHoiXX0sYnllPXVQLGZQPXtwcmVmaXg6ImZhciIsaWNvbk5hbWU6ImZhY2UtZ3Jpbi10b25ndWUiLGljb246WzUxMiw1MTIsWzEyODUzOSwiZ3Jpbi10b25ndWUiXSwiZjU4OSIsIk00NjQgMjU2YzAtMTE0LjktOTMuMS0yMDgtMjA4LTIwOFM0OCAxNDEuMSA0OCAyNTZjMCA3NC4xIDM4LjggMTM5LjIgOTcuMSAxNzYtLjctNS4yLTEuMS0xMC42LTEuMS0xNmwwLTUzLjVjLTEwLjItMTIuNi0xOC4zLTI2LjktMjMuOC00Mi40LTQuMS0xMS42IDcuOC0yMS40IDE5LjYtMTcuOCAzNC43IDEwLjYgNzQuMiAxNi41IDExNi4xIDE2LjUgNDIgMCA4MS41LTYgMTE2LjMtMTYuNiAxMS44LTMuNiAyMy43IDYuMSAxOS42IDE3LjgtNS41IDE1LjYtMTMuNiAyOS45LTIzLjggNDIuNWwwIDUzLjVjMCA1LjQtLjQgMTAuOC0xLjEgMTYgNTguNC0zNi44IDk3LjEtMTAxLjkgOTcuMS0xNzZ6bTQ4IDBjMCAxMTYuMy03Ny42IDIxNC42LTE4My45IDI0NS43LTE5LjUgMTYuNC00NC42IDI2LjMtNzIuMSAyNi4zcy01Mi42LTkuOS03Mi4xLTI2LjNDNzcuNiA0NzAuNiAwIDM3Mi4zIDAgMjU2IDAgMTE0LjYgMTE0LjYgMCAyNTYgMFM1MTIgMTE0LjYgNTEyIDI1NnpNMTc2IDE3NmEzMiAzMiAwIDEgMSAwIDY0IDMyIDMyIDAgMSAxIDAtNjR6bTEyOCAzMmEzMiAzMiAwIDEgMSA2NCAwIDMyIDMyIDAgMSAxIC02NCAwem0xNiAyMDhsMC0zNy40YzAtMTQuNy0xMS45LTI2LjYtMjYuNi0yNi42bC0yIDBjLTExLjMgMC0yMS4xIDcuOS0yMy42IDE4LjktMi44IDEyLjYtMjAuOCAxMi42LTIzLjYgMC0yLjUtMTEuMS0xMi4zLTE4LjktMjMuNi0xOC45bC0yIDBjLTE0LjcgMC0yNi42IDExLjktMjYuNiAyNi42bDAgMzcuNGMwIDM1LjMgMjguNyA2NCA2NCA2NHM2NC0yOC43IDY0LTY0eiJdfSx2eWU9ZlAsVWY9e3ByZWZpeDoiZmFyIixpY29uTmFtZToiZnV0Ym9sIixpY29uOls1MTIsNTEyLFs5OTE3LCJmdXRib2wtYmFsbCIsInNvY2Nlci1iYWxsIl0sImYxZTMiLCJNMzg3IDIyOC4zYy00LjQtMi44LTcuNi03LTkuMi0xMS45cy0xLjQtMTAuMiAuNS0xNUw0MTEuNiAxMThjLTE5LjktMjIuNC00NC42LTQwLjUtNzIuNC01Mi43bC02OS4xIDU3LjZjLTQgMy4zLTkgNS4xLTE0LjEgNS4xcy0xMC4yLTEuOC0xNC4xLTUuMUwxNzIuOCA2NS4zYy0yNy44IDEyLjItNTIuNSAzMC4zLTcyLjQgNTIuN2wzMy40IDgzLjRjMS45IDQuOCAyLjEgMTAuMSAuNSAxNXMtNC45IDkuMS05LjIgMTEuOUw0OSAyNzYuMmMzIDMwLjkgMTIuNyA1OS43IDI3LjYgODUuMmw4OS43LTZjNS4yLS4zIDEwLjMgMS4xIDE0LjUgNC4yczcuMiA3LjQgOC40IDEyLjVsMjIgODcuMmMxNC40IDMuMiAyOS40IDQuOCA0NC44IDQuOHMzMC4zLTEuNyA0NC44LTQuOGwyMi04Ny4yYzEuMy01IDQuMi05LjQgOC40LTEyLjVzOS4zLTQuNSAxNC41LTQuMmw4OS43IDZjMTUtMjUuNCAyNC43LTU0LjMgMjcuNi04NS4xTDM4NyAyMjguM3pNMjU2IDBhMjU2IDI1NiAwIDEgMSAwIDUxMiAyNTYgMjU2IDAgMSAxIDAtNTEyem02MiAyMjFjOC40IDYuMSAxMS45IDE2LjkgOC43IDI2LjhsLTE4LjMgNTYuM2MtMy4yIDkuOS0xMi40IDE2LjYtMjIuOCAxNi42bC01OS4yIDBjLTEwLjQgMC0xOS42LTYuNy0yMi44LTE2LjZsLTE4LjMtNTYuM2MtMy4yLTkuOSAuMy0yMC43IDguNy0yNi44bDQ3LjktMzQuOGM4LjQtNi4xIDE5LjgtNi4xIDI4LjIgMEwzMTggMjIxeiJdfSx5eWU9VWYseHllPVVmLG1QPXtwcmVmaXg6ImZhciIsaWNvbk5hbWU6ImZhY2Utc3VycHJpc2UiLGljb246WzUxMiw1MTIsWzEyODU1OCwic3VycHJpc2UiXSwiZjVjMiIsIk00NjQgMjU2YTIwOCAyMDggMCAxIDAgLTQxNiAwIDIwOCAyMDggMCAxIDAgNDE2IDB6TTAgMjU2YTI1NiAyNTYgMCAxIDEgNTEyIDAgMjU2IDI1NiAwIDEgMSAtNTEyIDB6bTE3Ni04MGEzMiAzMiAwIDEgMSAwIDY0IDMyIDMyIDAgMSAxIDAtNjR6bTEyOCAzMmEzMiAzMiAwIDEgMSA2NCAwIDMyIDMyIDAgMSAxIC02NCAwem0tNDggODBhNjQgNjQgMCAxIDEgMCAxMjggNjQgNjQgMCAxIDEgMC0xMjh6Il19LHd5ZT1tUCxnUD17cHJlZml4OiJmYXIiLGljb25OYW1lOiJmb2xkZXIiLGljb246WzUxMiw1MTIsWzEyODE5MywxMjg0NDcsNjE3MTYsImZvbGRlci1ibGFuayJdLCJmMDdiIiwiTTY0IDQwMGwzODQgMGM4LjggMCAxNi03LjIgMTYtMTZsMC0yNDBjMC04LjgtNy4yLTE2LTE2LTE2bC0xNDkuMyAwYy0xNy4zIDAtMzQuMi01LjYtNDgtMTZMMjEyLjMgODMuMmMtMi44LTIuMS02LjEtMy4yLTkuNi0zLjJMNjQgODBjLTguOCAwLTE2IDcuMi0xNiAxNmwwIDI4OGMwIDguOCA3LjIgMTYgMTYgMTZ6bTM4NCA0OEw2NCA0NDhjLTM1LjMgMC02NC0yOC43LTY0LTY0TDAgOTZDMCA2MC43IDI4LjcgMzIgNjQgMzJsMTM4LjcgMGMxMy44IDAgMjcuMyA0LjUgMzguNCAxMi44bDM4LjQgMjguOGM1LjUgNC4yIDEyLjMgNi40IDE5LjIgNi40TDQ0OCA4MGMzNS4zIDAgNjQgMjguNyA2NCA2NGwwIDI0MGMwIDM1LjMtMjguNyA2NC02NCA2NHoiXX0sTXllPWdQLHp5ZT17cHJlZml4OiJmYXIiLGljb25OYW1lOiJjbG91ZCIsaWNvbjpbNTc2LDUxMixbOTcyOV0sImYwYzIiLCJNODAgMTkyYzAtODguNCA3MS42LTE2MCAxNjAtMTYwIDQ3LjEgMCA4OS40IDIwLjQgMTE4LjcgNTIuNyAxMC42LTMuMSAyMS44LTQuNyAzMy4zLTQuNyA2Ni4zIDAgMTIwIDUzLjcgMTIwIDEyMCAwIDEzLjItMi4xIDI1LjktNi4xIDM3LjggNDEuNiAyMS4xIDcwLjEgNjQuMyA3MC4xIDExNC4yIDAgNzAuNy01Ny4zIDEyOC0xMjggMTI4bC0zMDQgMGMtNzkuNSAwLTE0NC02NC41LTE0NC0xNDQgMC01Ni44IDMyLjktMTA1LjkgODAuNy0xMjkuNC0uNC00LjgtLjctOS43LS43LTE0LjZ6TTI0MCA4MGMtNjEuOSAwLTExMiA1MC4xLTExMiAxMTIgMCA4LjQgLjkgMTYuNiAyLjcgMjQuNSAyLjcgMTIuMS00LjMgMjQuMy0xNi4xIDI4LjEtMzguNyAxMi40LTY2LjYgNDguNy02Ni42IDkxLjQgMCA1MyA0MyA5NiA5NiA5NmwzMDQgMGM0NC4yIDAgODAtMzUuOCA4MC04MCAwLTM3LjQtMjUuNy02OC45LTYwLjUtNzcuNi03LjUtMS45LTEzLjYtNy4yLTE2LjUtMTQuM3MtMi4xLTE1LjIgMi0yMS43YzctMTEuMSAxMS0yNC4yIDExLTM4LjMgMC0zOS44LTMyLjItNzItNzItNzItMTEuMSAwLTIxLjUgMi41LTMwLjggNi45LTEwLjUgNS0yMy4xIDEuNy0yOS44LTcuOC0yMC4zLTI4LjYtNTMuNy00Ny4xLTkxLjMtNDcuMXoiXX0sa3llPXtwcmVmaXg6ImZhciIsaWNvbk5hbWU6ImNpcmNsZSIsaWNvbjpbNTEyLDUxMixbMTI4MzA4LDEyODMwOSwxMjg5OTIsMTI4OTkzLDEyODk5NCwxMjg5OTUsMTI4OTk2LDk2NzksOTg5OCw5ODk5LDExMDQ0LDYxNzA4LDYxOTE1XSwiZjExMSIsIk00NjQgMjU2YTIwOCAyMDggMCAxIDAgLTQxNiAwIDIwOCAyMDggMCAxIDAgNDE2IDB6TTAgMjU2YTI1NiAyNTYgMCAxIDEgNTEyIDAgMjU2IDI1NiAwIDEgMSAtNTEyIDB6Il19LGJQPXtwcmVmaXg6ImZhciIsaWNvbk5hbWU6ImZhY2UtZ3Jpbi1zcXVpbnQiLGljb246WzUxMiw1MTIsWzEyODUxOCwiZ3Jpbi1zcXVpbnQiXSwiZjU4NSIsIk00NjQgMjU2YTIwOCAyMDggMCAxIDAgLTQxNiAwIDIwOCAyMDggMCAxIDAgNDE2IDB6TTAgMjU2YTI1NiAyNTYgMCAxIDEgNTEyIDAgMjU2IDI1NiAwIDEgMSAtNTEyIDB6bTM3Mi4yIDQ2LjNjMTEuOC0zLjYgMjMuNyA2LjEgMTkuNiAxNy44LTE5LjggNTUuOS03My4xIDk2LTEzNS44IDk2LTYyLjcgMC0xMTYtNDAtMTM1LjgtOTUuOS00LjEtMTEuNiA3LjgtMjEuNCAxOS42LTE3LjggMzQuNyAxMC42IDc0LjIgMTYuNSAxMTYuMSAxNi41IDQyIDAgODEuNS02IDExNi4zLTE2LjZ6bS0yNDkuNi0xNDNjNC41LTYuOCAxMy4zLTkuMiAyMC42LTUuNWw3OS42IDQwYzUuNCAyLjcgOC44IDguMiA4LjggMTQuM3MtMy40IDExLjYtOC44IDE0LjNsLTc5LjYgNDBjLTcuMyAzLjYtMTYuMSAxLjMtMjAuNi01LjVzLTMuMS0xNS45IDMuMS0yMS4xTDE1OSAyMDggMTI1LjggMTgwLjNjLTYuMi01LjItNy42LTE0LjMtMy4xLTIxLjF6bTI2My42IDIxLjFMMzUzIDIwOCAzODYuMiAyMzUuN2M2LjIgNS4yIDcuNiAxNC4zIDMuMSAyMS4xcy0xMy4zIDkuMi0yMC42IDUuNWwtNzkuNi00MGMtNS40LTIuNy04LjgtOC4yLTguOC0xNC4zczMuNC0xMS42IDguOC0xNC4zbDc5LjYtNDBjNy4zLTMuNiAxNi4xLTEuMyAyMC42IDUuNXMzLjEgMTUuOS0zLjEgMjEuMXoiXX0sU3llPWJQLHZQPXtwcmVmaXg6ImZhciIsaWNvbk5hbWU6ImNpcmNsZS11c2VyIixpY29uOls1MTIsNTEyLFs2MjE0MiwidXNlci1jaXJjbGUiXSwiZjJiZCIsIk00MDYuNSAzOTkuNkMzODcuNCAzNTIuOSAzNDEuNSAzMjAgMjg4IDMyMGwtNjQgMGMtNTMuNSAwLTk5LjQgMzIuOS0xMTguNSA3OS42LTM1LjYtMzcuMy01Ny41LTg3LjktNTcuNS0xNDMuNiAwLTExNC45IDkzLjEtMjA4IDIwOC0yMDhzMjA4IDkzLjEgMjA4IDIwOGMwIDU1LjctMjEuOSAxMDYuMi01Ny41IDE0My42em0tNDAuMSAzMi43QzMzNC40IDQ1Mi40IDI5Ni42IDQ2NCAyNTYgNDY0cy03OC40LTExLjYtMTEwLjUtMzEuN2M3LjMtMzYuNyAzOS43LTY0LjMgNzguNS02NC4zbDY0IDBjMzguOCAwIDcxLjIgMjcuNiA3OC41IDY0LjN6TTI1NiA1MTJhMjU2IDI1NiAwIDEgMCAwLTUxMiAyNTYgMjU2IDAgMSAwIDAgNTEyem0wLTI3MmE0MCA0MCAwIDEgMSAwLTgwIDQwIDQwIDAgMSAxIDAgODB6bS04OC00MGE4OCA4OCAwIDEgMCAxNzYgMCA4OCA4OCAwIDEgMCAtMTc2IDB6Il19LEN5ZT12UCx5UD17cHJlZml4OiJmYXIiLGljb25OYW1lOiJyZWN0YW5nbGUtbGlzdCIsaWNvbjpbNTEyLDUxMixbImxpc3QtYWx0Il0sImYwMjIiLCJNNjQgMTEyYy04LjggMC0xNiA3LjItMTYgMTZsMCAyNTZjMCA4LjggNy4yIDE2IDE2IDE2bDM4NCAwYzguOCAwIDE2LTcuMiAxNi0xNmwwLTI1NmMwLTguOC03LjItMTYtMTYtMTZMNjQgMTEyek0wIDEyOEMwIDkyLjcgMjguNyA2NCA2NCA2NGwzODQgMGMzNS4zIDAgNjQgMjguNyA2NCA2NGwwIDI1NmMwIDM1LjMtMjguNyA2NC02NCA2NEw2NCA0NDhjLTM1LjMgMC02NC0yOC43LTY0LTY0TDAgMTI4ek0xNjAgMzIwYTMyIDMyIDAgMSAxIC02NCAwIDMyIDMyIDAgMSAxIDY0IDB6bS0zMi05NmEzMiAzMiAwIDEgMSAwLTY0IDMyIDMyIDAgMSAxIDAgNjR6bTEwNC01NmwxNjAgMGMxMy4zIDAgMjQgMTAuNyAyNCAyNHMtMTAuNyAyNC0yNCAyNGwtMTYwIDBjLTEzLjMgMC0yNC0xMC43LTI0LTI0czEwLjctMjQgMjQtMjR6bTAgMTI4bDE2MCAwYzEzLjMgMCAyNCAxMC43IDI0IDI0cy0xMC43IDI0LTI0IDI0bC0xNjAgMGMtMTMuMyAwLTI0LTEwLjctMjQtMjRzMTAuNy0yNCAyNC0yNHoiXX0sX3llPXlQLHhQPXtwcmVmaXg6ImZhciIsaWNvbk5hbWU6ImhhbmQiLGljb246WzUxMiw1MTIsWzEyOTMwNiw5OTk1LCJoYW5kLXBhcGVyIl0sImYyNTYiLCJNMjU2LjUgMGMtMjUuMyAwLTQ3LjIgMTQuNy01Ny42IDM2LTctMi42LTE0LjUtNC0yMi40LTQtMzUuMyAwLTY0IDI4LjctNjQgNjRsMCAxNjUuNS0yLjctMi43Yy0yNS0yNS02NS41LTI1LTkwLjUgMHMtMjUgNjUuNSAwIDkwLjVMMTA3IDQzN2M0OCA0OCAxMTMuMSA3NSAxODEgNzVsMTYuNSAwYzEuNSAwIDMtLjEgNC41LS40IDkxLjctNi4yIDE2NS03OS40IDE3MS4xLTE3MS4xIC4zLTEuNSAuNC0zIC40LTQuNWwwLTE3NmMwLTM1LjMtMjguNy02NC02NC02NC01LjUgMC0xMC45IC43LTE2IDJsMC0yYzAtMzUuMy0yOC43LTY0LTY0LTY0LTcuOSAwLTE1LjQgMS40LTIyLjQgNC0xMC40LTIxLjMtMzIuMy0zNi01Ny42LTM2em0tMTYgOTYuMWwwLS4xIDAtMzJjMC04LjggNy4yLTE2IDE2LTE2czE2IDcuMiAxNiAxNmwwIDE2OGMwIDEzLjMgMTAuNyAyNCAyNCAyNHMyNC0xMC43IDI0LTI0bDAtMTM2YzAtOC44IDcuMi0xNiAxNi0xNnMxNiA3LjIgMTYgMTZsMCAxMzZjMCAxMy4zIDEwLjcgMjQgMjQgMjRzMjQtMTAuNyAyNC0yNGwwLTcyYzAtOC44IDcuMi0xNiAxNi0xNnMxNiA3LjIgMTYgMTZsMCAxNzIuOWMtLjEgLjYtLjEgMS4zLS4yIDEuOS0zLjQgNjkuNy01OS4zIDEyNS42LTEyOSAxMjktLjYgMC0xLjMgLjEtMS45IC4yTDI4OCA0NjRDMjMyLjkgNDY0IDE4MCA0NDIuMSAxNDEgNDAzLjFMNTMuMiAzMTUuM2MtNi4yLTYuMi02LjItMTYuNCAwLTIyLjZzMTYuNC02LjIgMjIuNiAwbDQzLjcgNDMuN2M2LjkgNi45IDE3LjIgOC45IDI2LjIgNS4yczE0LjgtMTIuNSAxNC44LTIyLjJsMC0yMjMuNGMwLTguOCA3LjItMTYgMTYtMTYgOC44IDAgMTYgNy4xIDE2IDE1LjlsMCAxMzYuMWMwIDEzLjMgMTAuNyAyNCAyNCAyNHMyNC0xMC43IDI0LTI0bDAtMTM1Ljl6Il19LFR5ZT14UCxMeWU9e3ByZWZpeDoiZmFyIixpY29uTmFtZToidGh1bWJzLXVwIixpY29uOls1MTIsNTEyLFsxMjgwNzcsNjE1NzVdLCJmMTY0IiwiTTE3MS41IDM4LjhDMTkyLjMgNCAyMzYuNS0xMCAyNzQgNy42bDcuMiAzLjhDMzE2IDMyLjMgMzMwIDc2LjUgMzEyLjQgMTE0bDAgMC0xNC4xIDMwIDEwOS43IDAgNy40IC40YzM2LjMgMy43IDY0LjYgMzQuNCA2NC42IDcxLjYgMCAxMy4yLTMuNiAyNS40LTkuOCAzNiA2LjEgMTAuNiA5LjcgMjIuOCA5LjggMzYgMCAxOC4zLTYuOSAzNC44LTE4IDQ3LjUgMS4zIDUuMyAyIDEwLjggMiAxNi41IDAgMjUuMS0xMi45IDQ3LTMyLjIgNTkuOS0xLjkgMzUuNS0yOS40IDY0LjItNjQuNCA2Ny43bC03LjQgLjQtMTA0LjEgMGMtMTggMC0zNS45LTMuNC01Mi42LTkuOWwtNy4xLTMtLjctLjMtNi42LTMuMi0uNy0uMy0xMi4yLTYuNWMtMTIuMy02LjUtMjMuMy0xNC43LTMyLjktMjQuMS00LjEgMjYuOS0yNy4zIDQ3LjQtNTUuMyA0Ny40bC0zMiAwYy0zMC45IDAtNTYtMjUuMS01Ni01NkwwIDIwMGMwLTMwLjkgMjUuMS01NiA1Ni01NmwzMiAwYzEwLjggMCAyMC45IDMuMSAyOS41IDguNWw1MC4xLTEwNi41IC42LTEuMiAyLjctNSAuNi0uOXpNNTYgMTkyYy00LjQgMC04IDMuNi04IDhsMCAyMjRjMCA0LjQgMy42IDggOCA4bDMyIDBjNC40IDAgOC0zLjYgOC04bDAtMjI0YzAtNC40LTMuNi04LTgtOGwtMzIgMHpNMjUzLjYgNTFjLTE0LjgtNi45LTMyLjMtMS42LTQwLjcgMTJsLTIuMiA0LTU2LjggMTIwLjljLTMuNSA3LjUtNS41IDE1LjUtNiAyMy43bC0uMSA0LjIgMCAxMTIuOSAuMiA3LjljMi40IDMyLjcgMjEuNCA2Mi4xIDUwLjcgNzcuN2wxMS41IDYuMSA2LjMgMy4xYzEyLjQgNS42IDI1LjggOC41IDM5LjQgOC41bDEwNC4xIDAgMi40LS4xYzEyLjEtMS4yIDIxLjYtMTEuNSAyMS42LTIzLjlsLS4yLTIuNmMtLjEtLjktLjItMS43LS40LTIuNi0yLjctMTIuMSA0LjMtMjQuMiAxNi0yOCA5LjctMy4xIDE2LjYtMTIuMiAxNi42LTIyLjggMC00LjMtMS4xLTguMi0zLjEtMTEuOC02LjMtMTEuMS0yLjgtMjUuMiA4LTMyIDYuOC00LjMgMTEuMi0xMS44IDExLjItMjAuMiAwLTcuMS0zLjEtMTMuNS04LjItMTgtNS4yLTQuNi04LjItMTEuMS04LjItMThzMy0xMy40IDguMi0xOGM1LjEtNC41IDguMi0xMC45IDguMi0xOGwtLjEtMi40Yy0xLjEtMTEuMy0xMC4xLTIwLjMtMjEuNC0yMS40bC0yLjQtLjEtMTQ3LjUgMGMtOC4yIDAtMTUuOC00LjItMjAuMi0xMS4xLTQuNC02LjktNS0xNS43LTEuNS0yMy4xTDI2OSA5My42YzctMTUgMS40LTMyLjctMTIuNS00MUwyNTMuNiA1MXoiXX0sJHllPXtwcmVmaXg6ImZhciIsaWNvbk5hbWU6ImJ1aWxkaW5nIixpY29uOlszODQsNTEyLFsxMjc5NzAsNjE2ODddLCJmMWFkIiwiTTY0IDQ4Yy04LjggMC0xNiA3LjItMTYgMTZsMCAzODRjMCA4LjggNy4yIDE2IDE2IDE2bDgwIDAgMC04MGMwLTE3LjcgMTQuMy0zMiAzMi0zMmwzMiAwYzE3LjcgMCAzMiAxNC4zIDMyIDMybDAgODAgODAgMGM4LjggMCAxNi03LjIgMTYtMTZsMC0zODRjMC04LjgtNy4yLTE2LTE2LTE2TDY0IDQ4ek0wIDY0QzAgMjguNyAyOC43IDAgNjQgMEwzMjAgMGMzNS4zIDAgNjQgMjguNyA2NCA2NGwwIDM4NGMwIDM1LjMtMjguNyA2NC02NCA2NEw2NCA1MTJjLTM1LjMgMC02NC0yOC43LTY0LTY0TDAgNjR6bTk2IDQ4YzAtOC44IDcuMi0xNiAxNi0xNmwzMiAwYzguOCAwIDE2IDcuMiAxNiAxNmwwIDMyYzAgOC44LTcuMiAxNi0xNiAxNmwtMzIgMGMtOC44IDAtMTYtNy4yLTE2LTE2bDAtMzJ6TTI0MCA5NmwzMiAwYzguOCAwIDE2IDcuMiAxNiAxNmwwIDMyYzAgOC44LTcuMiAxNi0xNiAxNmwtMzIgMGMtOC44IDAtMTYtNy4yLTE2LTE2bDAtMzJjMC04LjggNy4yLTE2IDE2LTE2ek05NiAyNDBjMC04LjggNy4yLTE2IDE2LTE2bDMyIDBjOC44IDAgMTYgNy4yIDE2IDE2bDAgMzJjMCA4LjgtNy4yIDE2LTE2IDE2bC0zMiAwYy04LjggMC0xNi03LjItMTYtMTZsMC0zMnptMTQ0LTE2bDMyIDBjOC44IDAgMTYgNy4yIDE2IDE2bDAgMzJjMCA4LjgtNy4yIDE2LTE2IDE2bC0zMiAwYy04LjggMC0xNi03LjItMTYtMTZsMC0zMmMwLTguOCA3LjItMTYgMTYtMTZ6Il19LEF5ZT17cHJlZml4OiJmYXIiLGljb25OYW1lOiJjaGVzcy1yb29rIixpY29uOlszODQsNTEyLFs5ODIwXSwiZjQ0NyIsIk0zNTIgMGMxNy43IDAgMzIgMTQuMyAzMiAzMmwwIDEzOC43YzAgMTMuOC00LjUgMjcuMy0xMi44IDM4LjRsLTM1LjIgNDYuOSAwIDExMiA0MC44IDY4LjFjNC43IDcuOCA3LjIgMTYuNyA3LjIgMjUuOCAwIDI3LjctMjIuNCA1MC4xLTUwLjEgNTAuMUw1MC4xIDUxMmMtMjcuNyAwLTUwLjEtMjIuNC01MC4xLTUwLjEgMC05LjEgMi41LTE4IDcuMi0yNS44TDQ4IDM2OCA0OCAyNTYgMTIuOCAyMDkuMUM0LjUgMTk4IDAgMTg0LjUgMCAxNzAuN0wwIDMyQzAgMTQuMyAxNC4zIDAgMzIgMEwzNTIgMHpNNDguMyA0NjAuOGwtLjMgMS4xYzAgMS4yIDEgMi4xIDIuMSAyLjFsMjgzLjggMGMxLjIgMCAyLjEtMSAyLjEtMi4xbC0uMy0xLjEtMzYuNS02MC44LTIxNC40IDAtMzYuNSA2MC44ek00OCAxNzAuN2MwIDIuNiAuNiA1LjEgMS44IDcuNGwxLjQgMi4yIDAgMCAzNS4yIDQ2LjkgOS42IDEyLjggMCAxMTIgMTkyIDAgMC0xMTIgOS42LTEyLjggMzUuMi00Ni45IDAgMCAxLjQtMi4yYzEuMi0yLjMgMS44LTQuOCAxLjgtNy40bDAtMTIyLjctNjQgMCAwIDI0YzAgMTMuMy0xMC43IDI0LTI0IDI0cy0yNC0xMC43LTI0LTI0bDAtMjQtNjQgMCAwIDI0YzAgMTMuMy0xMC43IDI0LTI0IDI0cy0yNC0xMC43LTI0LTI0bDAtMjQtNjQgMCAwIDEyMi43eiJdfSx3UD17cHJlZml4OiJmYXIiLGljb25OYW1lOiJjaXJjbGUtcXVlc3Rpb24iLGljb246WzUxMiw1MTIsWzYyMTA4LCJxdWVzdGlvbi1jaXJjbGUiXSwiZjA1OSIsIk00NjQgMjU2YTIwOCAyMDggMCAxIDAgLTQxNiAwIDIwOCAyMDggMCAxIDAgNDE2IDB6TTAgMjU2YTI1NiAyNTYgMCAxIDEgNTEyIDAgMjU2IDI1NiAwIDEgMSAtNTEyIDB6bTI1Ni04MGMtMTcuNyAwLTMyIDE0LjMtMzIgMzIgMCAxMy4zLTEwLjcgMjQtMjQgMjRzLTI0LTEwLjctMjQtMjRjMC00NC4yIDM1LjgtODAgODAtODBzODAgMzUuOCA4MCA4MGMwIDQ3LjItMzYgNjcuMi01NiA3NC41bDAgMy44YzAgMTMuMy0xMC43IDI0LTI0IDI0cy0yNC0xMC43LTI0LTI0bDAtOC4xYzAtMjAuNSAxNC44LTM1LjIgMzAuMS00MC4yIDYuNC0yLjEgMTMuMi01LjUgMTguMi0xMC4zIDQuMy00LjIgNy43LTEwIDcuNy0xOS42IDAtMTcuNy0xNC4zLTMyLTMyLTMyek0yMjQgMzY4YTMyIDMyIDAgMSAxIDY0IDAgMzIgMzIgMCAxIDEgLTY0IDB6Il19LER5ZT13UCxFeWU9e3ByZWZpeDoiZmFyIixpY29uTmFtZToiZmlsZSIsaWNvbjpbMzg0LDUxMixbMTI4MTk2LDEyODQ1OSw2MTQ2Ml0sImYxNWIiLCJNMTc2IDQ4TDY0IDQ4Yy04LjggMC0xNiA3LjItMTYgMTZsMCAzODRjMCA4LjggNy4yIDE2IDE2IDE2bDI1NiAwYzguOCAwIDE2LTcuMiAxNi0xNmwwLTI0MC04OCAwYy0zOS44IDAtNzItMzIuMi03Mi03MmwwLTg4ek0zMTYuMSAxNjBMMjI0IDY3LjkgMjI0IDEzNmMwIDEzLjMgMTAuNyAyNCAyNCAyNGw2OC4xIDB6TTAgNjRDMCAyOC43IDI4LjcgMCA2NCAwTDE5Ny41IDBjMTcgMCAzMy4zIDYuNyA0NS4zIDE4LjdMMzY1LjMgMTQxLjNjMTIgMTIgMTguNyAyOC4zIDE4LjcgNDUuM0wzODQgNDQ4YzAgMzUuMy0yOC43IDY0LTY0IDY0TDY0IDUxMmMtMzUuMyAwLTY0LTI4LjctNjQtNjRMMCA2NHoiXX0sTVA9e3ByZWZpeDoiZmFyIixpY29uTmFtZToiZmFjZS1zYWQtY3J5IixpY29uOls1MTIsNTEyLFsxMjg1NTcsInNhZC1jcnkiXSwiZjViMyIsIk00MDAgNDA2LjFMNDAwIDI4OGMwLTEzLjMtMTAuNy0yNC0yNC0yNHMtMjQgMTAuNy0yNCAyNGwwIDE1Mi42Yy0yOC43IDE1LTYxLjQgMjMuNC05NiAyMy40cy02Ny4zLTguNS05Ni0yMy40TDE2MCAyODhjMC0xMy4zLTEwLjctMjQtMjQtMjRzLTI0IDEwLjctMjQgMjRsMCAxMTguMUM3Mi42IDM2OC4yIDQ4IDMxNSA0OCAyNTYgNDggMTQxLjEgMTQxLjEgNDggMjU2IDQ4czIwOCA5My4xIDIwOCAyMDhjMCA1OS0yNC42IDExMi4yLTY0IDE1MC4xek0yNTYgNTEyYTI1NiAyNTYgMCAxIDAgMC01MTIgMjU2IDI1NiAwIDEgMCAwIDUxMnpNMTUyIDE5NmwxNiAwYzExIDAgMjAgOSAyMCAyMHM5IDIwIDIwIDIwIDIwLTkgMjAtMjBjMC0zMy4xLTI2LjktNjAtNjAtNjBsLTE2IDBjLTMzLjEgMC02MCAyNi45LTYwIDYwIDAgMTEgOSAyMCAyMCAyMHMyMC05IDIwLTIwIDktMjAgMjAtMjB6bTE3MiAyMGMwLTExIDktMjAgMjAtMjBsMTYgMGMxMSAwIDIwIDkgMjAgMjBzOSAyMCAyMCAyMCAyMC05IDIwLTIwYzAtMzMuMS0yNi45LTYwLTYwLTYwbC0xNiAwYy0zMy4xIDAtNjAgMjYuOS02MCA2MCAwIDExIDkgMjAgMjAgMjBzMjAtOSAyMC0yMHpNMjA4IDMzNmwwIDMyYzAgMjYuNSAyMS41IDQ4IDQ4IDQ4czQ4LTIxLjUgNDgtNDhsMC0zMmMwLTI2LjUtMjEuNS00OC00OC00OHMtNDggMjEuNS00OCA0OHoiXX0sUHllPU1QLEl5ZT17cHJlZml4OiJmYXIiLGljb25OYW1lOiJjYWxlbmRhci1taW51cyIsaWNvbjpbNDQ4LDUxMixbXSwiZjI3MiIsIk0xMjAgMGMxMy4zIDAgMjQgMTAuNyAyNCAyNGwwIDQwIDE2MCAwIDAtNDBjMC0xMy4zIDEwLjctMjQgMjQtMjRzMjQgMTAuNyAyNCAyNGwwIDQwIDMyIDBjMzUuMyAwIDY0IDI4LjcgNjQgNjRsMCAyODhjMCAzNS4zLTI4LjcgNjQtNjQgNjRMNjQgNDgwYy0zNS4zIDAtNjQtMjguNy02NC02NEwwIDEyOEMwIDkyLjcgMjguNyA2NCA2NCA2NGwzMiAwIDAtNDBjMC0xMy4zIDEwLjctMjQgMjQtMjR6bTAgMTEybC01NiAwYy04LjggMC0xNiA3LjItMTYgMTZsMCAyODhjMCA4LjggNy4yIDE2IDE2IDE2bDMyMCAwYzguOCAwIDE2LTcuMiAxNi0xNmwwLTI4OGMwLTguOC03LjItMTYtMTYtMTZsLTI2NCAwem0zMiAxMzZsMTQ0IDBjMTMuMyAwIDI0IDEwLjcgMjQgMjRzLTEwLjcgMjQtMjQgMjRsLTE0NCAwYy0xMy4zIDAtMjQtMTAuNy0yNC0yNHMxMC43LTI0IDI0LTI0eiJdfSx6UD17cHJlZml4OiJmYXIiLGljb25OYW1lOiJmYWNlLXRpcmVkIixpY29uOls1MTIsNTEyLFsxMjg1NTUsInRpcmVkIl0sImY1YzgiLCJNNDY0IDI1NmEyMDggMjA4IDAgMSAwIC00MTYgMCAyMDggMjA4IDAgMSAwIDQxNiAwek0wIDI1NmEyNTYgMjU2IDAgMSAxIDUxMiAwIDI1NiAyNTYgMCAxIDEgLTUxMiAwem0xNzYuNSA2NC4zQzE5Ni4xIDMwMi4xIDIyMy44IDI4OCAyNTYgMjg4czU5LjkgMTQuMSA3OS41IDMyLjNjMTkgMTcuOCAzMi41IDQxLjcgMzIuNSA2My43IDAgNS40LTIuNyAxMC40LTcuMiAxMy40cy0xMC4yIDMuNC0xNS4yIDEuM2wtMTcuMi03LjVjLTIyLjgtMTAtNDcuNS0xNS4xLTcyLjQtMTUuMXMtNDkuNiA1LjItNzIuNCAxNS4xbC0xNy4yIDcuNWMtNC45IDIuMi0xMC43IDEuNy0xNS4yLTEuM3MtNy4yLTgtNy4yLTEzLjRjMC0yMiAxMy41LTQ1LjkgMzIuNS02My43ek0xMjIuNiAxNTkuMmM0LjUtNi44IDEzLjMtOS4yIDIwLjYtNS41bDc5LjYgNDBjNS40IDIuNyA4LjggOC4yIDguOCAxNC4zcy0zLjQgMTEuNi04LjggMTQuM2wtNzkuNiA0MGMtNy4zIDMuNi0xNi4xIDEuMy0yMC42LTUuNXMtMy4xLTE1LjkgMy4xLTIxLjFMMTU5IDIwOCAxMjUuOCAxODAuM2MtNi4yLTUuMi03LjYtMTQuMy0zLjEtMjEuMXptMjYzLjYgMjEuMUwzNTMgMjA4IDM4Ni4yIDIzNS43YzYuMiA1LjIgNy42IDE0LjMgMy4xIDIxLjFzLTEzLjMgOS4yLTIwLjYgNS41bC03OS42LTQwYy01LjQtMi43LTguOC04LjItOC44LTE0LjNzMy40LTExLjYgOC44LTE0LjNsNzkuNi00MGM3LjMtMy42IDE2LjEtMS4zIDIwLjYgNS41czMuMSAxNS45LTMuMSAyMS4xeiJdfSxOeWU9elAsRnllPXtwcmVmaXg6ImZhciIsaWNvbk5hbWU6ImhhbmQtcG9pbnQtcmlnaHQiLGljb246WzUxMiw1MTIsW10sImYwYTQiLCJNNDQ4IDEyOGwtMTc3LjYgMGMxIDUuMiAxLjYgMTAuNSAxLjYgMTZsMCAxNiAxNzYgMGM4LjggMCAxNi03LjIgMTYtMTZzLTcuMi0xNi0xNi0xNnpNMjI0IDE0NGMwLTE3LjctMTQuMy0zMi0zMi0zMmwtMjQgMGMtNjYuMyAwLTEyMCA1My43LTEyMCAxMjBsMCA0OGMwIDUyLjUgMzMuNyA5Ny4xIDgwLjcgMTEzLjQtLjUtMy4xLS43LTYuMi0uNy05LjQgMC0yMCA5LjItMzcuOSAyMy42LTQ5LjctNC45LTktNy42LTE5LjQtNy42LTMwLjMgMC0xNS4xIDUuMy0yOSAxNC00MC04LjgtMTEtMTQtMjQuOS0xNC00MGwwLTQwYzAtMTMuMyAxMC43LTI0IDI0LTI0czI0IDEwLjcgMjQgMjRsMCA0MGMwIDguOCA3LjIgMTYgMTYgMTZzMTYtNy4yIDE2LTE2bDAtODB6TTE5MiA2NGwwIDBjMTggMCAzNC42IDYgNDggMTZsMjA4IDBjMzUuMyAwIDY0IDI4LjcgNjQgNjRzLTI4LjcgNjQtNjQgNjRsLTgyIDBjMS4zIDUuMSAyIDEwLjUgMiAxNiAwIDI1LjMtMTQuNyA0Ny4yLTM2IDU3LjYgMi42IDcgNCAxNC41IDQgMjIuNCAwIDIwLTkuMiAzNy45LTIzLjYgNDkuNyA0LjkgOSA3LjYgMTkuNCA3LjYgMzAuMyAwIDM1LjMtMjguNyA2NC02NCA2NGwtODggMEM3NS4yIDQ0OCAwIDM3Mi44IDAgMjgwbDAtNDhDMCAxMzkuMiA3NS4yIDY0IDE2OCA2NGwyNCAwem02NCAzMzZjOC44IDAgMTYtNy4yIDE2LTE2cy03LjItMTYtMTYtMTZsLTY0IDBjLTguOCAwLTE2IDcuMi0xNiAxNnM3LjIgMTYgMTYgMTZsNjQgMHptMTYtMTc2YzAgNS41LS43IDEwLjktMiAxNmwzNCAwYzguOCAwIDE2LTcuMiAxNi0xNnMtNy4yLTE2LTE2LTE2bC0zMiAwIDAgMTZ6bS0yNCA2NGwtNDAgMGMtOC44IDAtMTYgNy4yLTE2IDE2czcuMiAxNiAxNiAxNmw2NCAwYzguOCAwIDE2LTcuMiAxNi0xNnMtNy4yLTE2LTE2LTE2bC0yNCAweiJdfSxrUD17cHJlZml4OiJmYXIiLGljb25OYW1lOiJjaXJjbGUtdXAiLGljb246WzUxMiw1MTIsWzYxNDY3LCJhcnJvdy1hbHQtY2lyY2xlLXVwIl0sImYzNWIiLCJNMjU2IDQ4YTIwOCAyMDggMCAxIDEgMCA0MTYgMjA4IDIwOCAwIDEgMSAwLTQxNnptMCA0NjRhMjU2IDI1NiAwIDEgMCAwLTUxMiAyNTYgMjU2IDAgMSAwIDAgNTEyem0xMS4zLTM4Ny4zYy02LjItNi4yLTE2LjQtNi4yLTIyLjYgMGwtMTA0IDEwNGMtNC42IDQuNi01LjkgMTEuNS0zLjUgMTcuNHM4LjMgOS45IDE0LjggOS45bDcyIDAgMCAxMDRjMCAxMy4zIDEwLjcgMjQgMjQgMjRsMTYgMGMxMy4zIDAgMjQtMTAuNyAyNC0yNGwwLTEwNCA3MiAwYzYuNSAwIDEyLjMtMy45IDE0LjgtOS45czEuMS0xMi45LTMuNS0xNy40bC0xMDQtMTA0eiJdfSxPeWU9a1AsUnllPXtwcmVmaXg6ImZhciIsaWNvbk5hbWU6ImhhbmQtc2Npc3NvcnMiLGljb246WzUxMiw1MTIsW10sImYyNTciLCJNLjIgMjc2LjNjLTEuMi0zNS4zIDI2LjQtNjUgNjEuNy02Ni4ybDMuMy0uMS04LjItMS44QzIyLjUgMjAwLjUgLjcgMTY2LjMgOC4zIDEzMS44UzUwLjIgNzUuNSA4NC43IDgzLjJsMTczIDM4LjNjMi4zLTIuOSA0LjYtNS43IDcuMS04LjVsMTguNC0yMC4zQzI5OS45IDc0LjUgMzIzLjUgNjQgMzQ4LjMgNjRsMTAuMiAwYzU0LjEgMCAxMDQuMSAyOC43IDEzMS4zIDc1LjRsMS41IDIuNmMxMy42IDIzLjIgMjAuNyA0OS43IDIwLjcgNzYuNkw1MTIgMzQ0YzAgNjYuMy01My43IDEyMC0xMjAgMTIwbC0xMDQgMGMtMzUuMyAwLTY0LTI4LjctNjQtNjQgMC0yLjggLjItNS42IC41LTguMy0xOS40LTExLTMyLjUtMzEuOC0zMi41LTU1LjcgMC0uOCAwLTEuNiAwLTIuNEw2Ni40IDMzOGMtMzUuMyAxLjItNjUtMjYuNC02Ni4yLTYxLjd6bTYzLjQtMTguMmMtOC44IC4zLTE1LjcgNy43LTE1LjQgMTYuNnM3LjcgMTUuNyAxNi41IDE1LjRsMTYxLjUtNS42YzkuOC0uMyAxOC43IDUuMyAyMi43IDE0LjJzMi4yIDE5LjMtNC41IDI2LjRjLTIuOCAyLjktNC40IDYuNy00LjQgMTEgMCA4LjggNy4yIDE2IDE2IDE2IDkuMSAwIDE3LjQgNS4xIDIxLjUgMTMuM3MzLjIgMTcuOS0yLjMgMjUuMWMtMiAyLjctMy4yIDYtMy4yIDkuNiAwIDguOCA3LjIgMTYgMTYgMTZsMTA0IDBjMzkuOCAwIDcyLTMyLjIgNzItNzJsMC0xMjUuNGMwLTE4LjQtNC45LTM2LjUtMTQuMi01Mi40bC0xLjUtMi42Yy0xOC42LTMyLTUyLjgtNTEuNi04OS44LTUxLjZsLTEwLjIgMGMtMTEuMyAwLTIyIDQuOC0yOS42IDEzLjFsMCAwLTE4LjQgMjAuM2MtLjYgLjYtMS4xIDEuMy0xLjcgMS45bDU3IDEzLjJjOC42IDIgMTQgMTAuNiAxMiAxOS4ycy0xMC42IDE0LTE5LjIgMTJMMjYyLjggMTcxLjggNzQuMyAxMzBjLTguNi0xLjktMTcuMiAzLjUtMTkuMSAxMi4yczMuNSAxNy4yIDEyLjIgMTkuMWwxODcuNSA0MS42YzEwLjIgMi4zIDE3LjggMTAuOSAxOC43IDIxLjRsLjEgMWMuNiA2LjYtMS41IDEzLjEtNS44IDE4LjFzLTEwLjYgNy45LTE3LjIgOC4yTDYzLjYgMjU4LjF6Il19LEJ5ZT17cHJlZml4OiJmYXIiLGljb25OYW1lOiJnZW0iLGljb246WzUxMiw1MTIsWzEyODE0Ml0sImYzYTUiLCJNMTY4LjUgNzJsODcuNSA5MyA4Ny41LTkzLTE3NSAwek0zODMuOSA5OS4xbC03Mi4zIDc2LjkgMTI5IDAtNTYuNi03Ni45em01MCAxMjQuOUw3OC4xIDIyNCAyNTYgNDIwLjMgNDMzLjkgMjI0ek03MS41IDE3NmwxMjkgMC03Mi4zLTc2LjktNTYuNiA3Ni45em00MzQuMyA0MC4xbC0yMzIgMjU2Yy00LjUgNS0xMSA3LjktMTcuOCA3LjlzLTEzLjItMi45LTE3LjgtNy45bC0yMzItMjU2Yy03LjctOC41LTguMy0yMS4yLTEuNS0zMC40bDExMi0xNTJjNC41LTYuMSAxMS43LTkuOCAxOS4zLTkuOGwyNDAgMGM3LjYgMCAxNC44IDMuNiAxOS4zIDkuOGwxMTIgMTUyYzYuOCA5LjIgNi4xIDIxLjktMS41IDMwLjR6Il19LCQ1PXtwcmVmaXg6ImZhciIsaWNvbk5hbWU6InJlY3RhbmdsZS14bWFyayIsaWNvbjpbNTEyLDUxMixbNjIxNjQsInJlY3RhbmdsZS10aW1lcyIsInRpbWVzLXJlY3RhbmdsZSIsIndpbmRvdy1jbG9zZSJdLCJmNDEwIiwiTTY0IDExMmMtOC44IDAtMTYgNy4yLTE2IDE2bDAgMjU2YzAgOC44IDcuMiAxNiAxNiAxNmwzODQgMGM4LjggMCAxNi03LjIgMTYtMTZsMC0yNTZjMC04LjgtNy4yLTE2LTE2LTE2TDY0IDExMnpNMCAxMjhDMCA5Mi43IDI4LjcgNjQgNjQgNjRsMzg0IDBjMzUuMyAwIDY0IDI4LjcgNjQgNjRsMCAyNTZjMCAzNS4zLTI4LjcgNjQtNjQgNjRMNjQgNDQ4Yy0zNS4zIDAtNjQtMjguNy02NC02NEwwIDEyOHptMzM0LjEgNDkuOWM5LjQgOS40IDkuNCAyNC42IDAgMzMuOWwtNDQuMSA0NC4xIDQ0LjEgNDQuMWM5LjQgOS40IDkuNCAyNC42IDAgMzMuOXMtMjQuNiA5LjQtMzMuOSAwbC00NC4xLTQ0LjEtNDQuMSA0NC4xYy05LjQgOS40LTI0LjYgOS40LTMzLjkgMHMtOS40LTI0LjYgMC0zMy45bDQ0LjEtNDQuMS00NC4xLTQ0LjFjLTkuNC05LjQtOS40LTI0LjYgMC0zMy45czI0LjYtOS40IDMzLjkgMGw0NC4xIDQ0LjEgNDQuMS00NC4xYzkuNC05LjQgMjQuNi05LjQgMzMuOSAweiJdfSxIeWU9JDUscXllPSQ1LFZ5ZT0kNSxQNT17cHJlZml4OiJmYXIiLGljb25OYW1lOiJ0cmFzaC1jYW4iLGljb246WzQ0OCw1MTIsWzYxNDYwLCJ0cmFzaC1hbHQiXSwiZjJlZCIsIk0xNjYuMi0xNmMtMTMuMyAwLTI1LjMgOC4zLTMwIDIwLjhMMTIwIDQ4IDI0IDQ4QzEwLjcgNDggMCA1OC43IDAgNzJTMTAuNyA5NiAyNCA5Nmw0MDAgMGMxMy4zIDAgMjQtMTAuNyAyNC0yNHMtMTAuNy0yNC0yNC0yNGwtOTYgMC0xNi4yLTQzLjJDMzA3LjEtNy43IDI5NS4yLTE2IDI4MS44LTE2TDE2Ni4yLTE2ek0zMiAxNDRsMCAzMDRjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMjU2IDBjMzUuMyAwIDY0LTI4LjcgNjQtNjRsMC0zMDQtNDggMCAwIDMwNGMwIDguOC03LjIgMTYtMTYgMTZMOTYgNDY0Yy04LjggMC0xNi03LjItMTYtMTZsMC0zMDQtNDggMHptMTYwIDcyYzAtMTMuMy0xMC43LTI0LTI0LTI0cy0yNCAxMC43LTI0IDI0bDAgMTc2YzAgMTMuMyAxMC43IDI0IDI0IDI0czI0LTEwLjcgMjQtMjRsMC0xNzZ6bTExMiAwYzAtMTMuMy0xMC43LTI0LTI0LTI0cy0yNCAxMC43LTI0IDI0bDAgMTc2YzAgMTMuMyAxMC43IDI0IDI0IDI0czI0LTEwLjcgMjQtMjRsMC0xNzZ6Il19LGp5ZT1QNSxVeWU9e3ByZWZpeDoiZmFyIixpY29uTmFtZToibGlmZS1yaW5nIixpY29uOls1MTIsNTEyLFtdLCJmMWNkIiwiTTM4NS4xIDQxOS4xQzM0OS43IDQ0Ny4yIDMwNC44IDQ2NCAyNTYgNDY0cy05My43LTE2LjgtMTI5LjEtNDQuOWw4MC40LTgwLjRjMTQuMyA4LjQgMzEgMTMuMyA0OC44IDEzLjNzMzQuNS00LjggNDguOC0xMy4zbDgwLjQgODAuNHptNjguMSAuMkM0ODkuOSAzNzQuOSA1MTIgMzE4LjEgNTEyIDI1NlM0ODkuOSAxMzcuMSA0NTMuMiA5Mi43TDQ2NSA4MWM5LjQtOS40IDkuNC0yNC42IDAtMzMuOXMtMjQuNi05LjQtMzMuOSAwTDQxOS4zIDU4LjhDMzc0LjkgMjIuMSAzMTguMSAwIDI1NiAwUzEzNy4xIDIyLjEgOTIuNyA1OC44TDgxIDQ3Yy05LjQtOS40LTI0LjYtOS40LTMzLjkgMFMzNy43IDcxLjYgNDcgODFMNTguOCA5Mi43QzIyLjEgMTM3LjEgMCAxOTMuOSAwIDI1NlMyMi4xIDM3NC45IDU4LjggNDE5LjNMNDcgNDMxYy05LjQgOS40LTkuNCAyNC42IDAgMzMuOXMyNC42IDkuNCAzMy45IDBsMTEuOC0xMS44QzEzNy4xIDQ4OS45IDE5My45IDUxMiAyNTYgNTEyczExOC45LTIyLjEgMTYzLjMtNTguOEw0MzEgNDY1YzkuNCA5LjQgMjQuNiA5LjQgMzMuOSAwczkuNC0yNC42IDAtMzMuOWwtMTEuOC0xMS44em0tMzQuMS0zNC4xbC04MC40LTgwLjRjOC40LTE0LjMgMTMuMy0zMSAxMy4zLTQ4LjhzLTQuOC0zNC41LTEzLjMtNDguOGw4MC40LTgwLjRDNDQ3LjIgMTYyLjMgNDY0IDIwNy4yIDQ2NCAyNTZzLTE2LjggOTMuNy00NC45IDEyOS4xek0zODUuMSA5Mi45bC04MC40IDgwLjRjLTE0LjMtOC40LTMxLTEzLjMtNDguOC0xMy4zcy0zNC41IDQuOC00OC44IDEzLjNMMTI2LjkgOTIuOUMxNjIuMyA2NC44IDIwNy4yIDQ4IDI1NiA0OHM5My43IDE2LjggMTI5LjEgNDQuOXpNMTczLjMgMzA0LjhMOTIuOSAzODUuMUM2NC44IDM0OS43IDQ4IDMwNC44IDQ4IDI1NnMxNi44LTkzLjcgNDQuOS0xMjkuMWw4MC40IDgwLjRjLTguNCAxNC4zLTEzLjMgMzEtMTMuMyA0OC44czQuOCAzNC41IDEzLjMgNDguOHpNMjA4IDI1NmE0OCA0OCAwIDEgMSA5NiAwIDQ4IDQ4IDAgMSAxIC05NiAweiJdfSxXeWU9e3ByZWZpeDoiZmFyIixpY29uTmFtZToiY29weXJpZ2h0IixpY29uOls1MTIsNTEyLFsxNjldLCJmMWY5IiwiTTI1NiA0OGEyMDggMjA4IDAgMSAxIDAgNDE2IDIwOCAyMDggMCAxIDEgMC00MTZ6bTAgNDY0YTI1NiAyNTYgMCAxIDAgMC01MTIgMjU2IDI1NiAwIDEgMCAwIDUxMnpNMjA1LjEgMzA2LjljLTI4LjEtMjguMS0yOC4xLTczLjcgMC0xMDEuOHM3My43LTI4LjEgMTAxLjggMGM5LjQgOS40IDI0LjYgOS40IDMzLjkgMHM5LjQtMjQuNiAwLTMzLjljLTQ2LjktNDYuOS0xMjIuOC00Ni45LTE2OS43IDBzLTQ2LjkgMTIyLjggMCAxNjkuNyAxMjIuOCA0Ni45IDE2OS43IDBjOS40LTkuNCA5LjQtMjQuNiAwLTMzLjlzLTI0LjYtOS40LTMzLjkgMGMtMjguMSAyOC4xLTczLjcgMjguMS0xMDEuOCAweiJdfSxTUD17cHJlZml4OiJmYXIiLGljb25OYW1lOiJjaXJjbGUtbGVmdCIsaWNvbjpbNTEyLDUxMixbNjE4NDAsImFycm93LWFsdC1jaXJjbGUtbGVmdCJdLCJmMzU5IiwiTTQ4IDI1NmEyMDggMjA4IDAgMSAxIDQxNiAwIDIwOCAyMDggMCAxIDEgLTQxNiAwem00NjQgMGEyNTYgMjU2IDAgMSAwIC01MTIgMCAyNTYgMjU2IDAgMSAwIDUxMiAwek0xMjQuNyAyNDQuN2MtNi4yIDYuMi02LjIgMTYuNCAwIDIyLjZsMTA0IDEwNGM0LjYgNC42IDExLjUgNS45IDE3LjQgMy41czkuOS04LjMgOS45LTE0LjhsMC03MiAxMDQgMGMxMy4zIDAgMjQtMTAuNyAyNC0yNGwwLTE2YzAtMTMuMy0xMC43LTI0LTI0LTI0bC0xMDQgMCAwLTcyYzAtNi41LTMuOS0xMi4zLTkuOS0xNC44cy0xMi45LTEuMS0xNy40IDMuNWwtMTA0IDEwNHoiXX0sR3llPVNQLFl5ZT17cHJlZml4OiJmYXIiLGljb25OYW1lOiJjYWxlbmRhciIsaWNvbjpbNDQ4LDUxMixbMTI4MTk3LDEyODE5OF0sImYxMzMiLCJNMTIwIDBjMTMuMyAwIDI0IDEwLjcgMjQgMjRsMCA0MCAxNjAgMCAwLTQwYzAtMTMuMyAxMC43LTI0IDI0LTI0czI0IDEwLjcgMjQgMjRsMCA0MCAzMiAwYzM1LjMgMCA2NCAyOC43IDY0IDY0bDAgMjg4YzAgMzUuMy0yOC43IDY0LTY0IDY0TDY0IDQ4MGMtMzUuMyAwLTY0LTI4LjctNjQtNjRMMCAxMjhDMCA5Mi43IDI4LjcgNjQgNjQgNjRsMzIgMCAwLTQwYzAtMTMuMyAxMC43LTI0IDI0LTI0em0wIDExMmwtNTYgMGMtOC44IDAtMTYgNy4yLTE2IDE2bDAgNDggMzUyIDAgMC00OGMwLTguOC03LjItMTYtMTYtMTZsLTI2NCAwek00OCAyMjRsMCAxOTJjMCA4LjggNy4yIDE2IDE2IDE2bDMyMCAwYzguOCAwIDE2LTcuMiAxNi0xNmwwLTE5Mi0zNTIgMHoiXX0sQ1A9e3ByZWZpeDoiZmFyIixpY29uTmFtZToiZmFjZS1mcm93bi1vcGVuIixpY29uOls1MTIsNTEyLFsxMjg1NTAsImZyb3duLW9wZW4iXSwiZjU3YSIsIk00NjQgMjU2YTIwOCAyMDggMCAxIDAgLTQxNiAwIDIwOCAyMDggMCAxIDAgNDE2IDB6TTAgMjU2YTI1NiAyNTYgMCAxIDEgNTEyIDAgMjU2IDI1NiAwIDEgMSAtNTEyIDB6TTE4Mi40IDM4Mi41Yy0xMi40IDUuMi0yNi41LTQuMS0yMS4xLTE2LjQgMTYtMzYuNiA1Mi40LTYyLjEgOTQuOC02Mi4xczc4LjggMjUuNiA5NC44IDYyLjFjNS40IDEyLjMtOC43IDIxLjYtMjEuMSAxNi40LTIyLjQtOS41LTQ3LjQtMTQuOC03My43LTE0LjhzLTUxLjMgNS4zLTczLjcgMTQuOHpNMTQ0IDIwOGEzMiAzMiAwIDEgMSA2NCAwIDMyIDMyIDAgMSAxIC02NCAwem0xOTItMzJhMzIgMzIgMCAxIDEgMCA2NCAzMiAzMiAwIDEgMSAwLTY0eiJdfSxaeWU9Q1AsX1A9e3ByZWZpeDoiZmFyIixpY29uTmFtZToiY2hhcnQtYmFyIixpY29uOls1MTIsNTEyLFsiYmFyLWNoYXJ0Il0sImYwODAiLCJNNDggNTZjMC0xMy4zLTEwLjctMjQtMjQtMjRTMCA0Mi43IDAgNTZMMCA0MDBjMCA0NC4yIDM1LjggODAgODAgODBsNDA4IDBjMTMuMyAwIDI0LTEwLjcgMjQtMjRzLTEwLjctMjQtMjQtMjRMODAgNDMyYy0xNy43IDAtMzItMTQuMy0zMi0zMkw0OCA1NnptMTA0IDcybDIwOCAwYzEzLjMgMCAyNC0xMC43IDI0LTI0cy0xMC43LTI0LTI0LTI0TDE1MiA4MGMtMTMuMyAwLTI0IDEwLjctMjQgMjRzMTAuNyAyNCAyNCAyNHptMCA2NGMtMTMuMyAwLTI0IDEwLjctMjQgMjRzMTAuNyAyNCAyNCAyNGwxNDQgMGMxMy4zIDAgMjQtMTAuNyAyNC0yNHMtMTAuNy0yNC0yNC0yNGwtMTQ0IDB6bTAgMTEyYy0xMy4zIDAtMjQgMTAuNy0yNCAyNHMxMC43IDI0IDI0IDI0bDI3MiAwYzEzLjMgMCAyNC0xMC43IDI0LTI0cy0xMC43LTI0LTI0LTI0bC0yNzIgMHoiXX0sWHllPV9QLEE1PXtwcmVmaXg6ImZhciIsaWNvbk5hbWU6ImhvdXNlIixpY29uOls1MTIsNTEyLFsxMjc5NjgsNjM0OTgsNjM1MDAsImhvbWUiLCJob21lLWFsdCIsImhvbWUtbGctYWx0Il0sImYwMTUiLCJNMjQwIDYuMWM5LjEtOC4yIDIyLjktOC4yIDMyIDBsMjMyIDIwOGM5LjkgOC44IDEwLjcgMjQgMS44IDMzLjlzLTI0IDEwLjctMzMuOSAxLjhsLTgtNy4yIDAgMjA1LjNjMCAzNS4zLTI4LjcgNjQtNjQgNjRsLTI4OCAwYy0zNS4zIDAtNjQtMjguNy02NC02NGwwLTIwNS4zLTggNy4yYy05LjkgOC44LTI1IDgtMzMuOS0xLjhzLTgtMjUgMS44LTMzLjlMMjQwIDYuMXptMTYgNTAuMUw5NiAxOTkuNyA5NiA0NDhjMCA4LjggNy4yIDE2IDE2IDE2bDQ4IDAgMC0xMDRjMC0zOS44IDMyLjItNzIgNzItNzJsNDggMGMzOS44IDAgNzIgMzIuMiA3MiA3MmwwIDEwNCA0OCAwYzguOCAwIDE2LTcuMiAxNi0xNmwwLTI0OC4zLTE2MC0xNDMuNHpNMjA4IDQ2NGw5NiAwIDAtMTA0YzAtMTMuMy0xMC43LTI0LTI0LTI0bC00OCAwYy0xMy4zIDAtMjQgMTAuNy0yNCAyNGwwIDEwNHoiXX0sS3llPUE1LFF5ZT1BNSxKeWU9QTUsVFA9e3ByZWZpeDoiZmFyIixpY29uTmFtZToiZmFjZS1mcm93biIsaWNvbjpbNTEyLDUxMixbOTc4NSwiZnJvd24iXSwiZjExOSIsIk00NjQgMjU2YTIwOCAyMDggMCAxIDAgLTQxNiAwIDIwOCAyMDggMCAxIDAgNDE2IDB6TTAgMjU2YTI1NiAyNTYgMCAxIDEgNTEyIDAgMjU2IDI1NiAwIDEgMSAtNTEyIDB6TTMzNC43IDM4NC42QzMxOS43IDM2OSAyOTMuNiAzNTIgMjU2IDM1MnMtNjMuNyAxNy03OC43IDMyLjZjLTkuMiA5LjYtMjQuNCA5LjktMzMuOSAuN3MtOS45LTI0LjQtLjctMzMuOWMyMi4xLTIzIDYwLTQ3LjQgMTEzLjMtNDcuNHM5MS4yIDI0LjQgMTEzLjMgNDcuNGM5LjIgOS42IDguOSAyNC44LS43IDMzLjlzLTI0LjggOC45LTMzLjktLjd6TTE0NCAyMDhhMzIgMzIgMCAxIDEgNjQgMCAzMiAzMiAwIDEgMSAtNjQgMHptMTkyLTMyYTMyIDMyIDAgMSAxIDAgNjQgMzIgMzIgMCAxIDEgMC02NHoiXX0sZXhlPVRQLFdmPXtwcmVmaXg6ImZhciIsaWNvbk5hbWU6InVzZXIiLGljb246WzQ0OCw1MTIsWzEyODEwMCw2MjE0NCw2MjQ3MCwidXNlci1hbHQiLCJ1c2VyLWxhcmdlIl0sImYwMDciLCJNMTQ0IDEyOGE4MCA4MCAwIDEgMSAxNjAgMCA4MCA4MCAwIDEgMSAtMTYwIDB6bTIwOCAwYTEyOCAxMjggMCAxIDAgLTI1NiAwIDEyOCAxMjggMCAxIDAgMjU2IDB6TTQ4IDQ4MGMwLTcwLjcgNTcuMy0xMjggMTI4LTEyOGw5NiAwYzcwLjcgMCAxMjggNTcuMyAxMjggMTI4bDAgOGMwIDEzLjMgMTAuNyAyNCAyNCAyNHMyNC0xMC43IDI0LTI0bDAtOGMwLTk3LjItNzguOC0xNzYtMTc2LTE3NmwtOTYgMEM3OC44IDMwNCAwIDM4Mi44IDAgNDgwbDAgOGMwIDEzLjMgMTAuNyAyNCAyNCAyNHMyNC0xMC43IDI0LTI0bDAtOHoiXX0sdHhlPVdmLGF4ZT1XZixpeGU9e3ByZWZpeDoiZmFyIixpY29uTmFtZToic25vd2ZsYWtlIixpY29uOls1MTIsNTEyLFsxMDA1MiwxMDA1NF0sImYyZGMiLCJNMjgwLjEtOGMwLTEzLjMtMTAuNy0yNC0yNC0yNHMtMjQgMTAuNy0yNCAyNGwwIDc4LjEtMjMtMjNjLTkuNC05LjQtMjQuNi05LjQtMzMuOSAwcy05LjQgMjQuNiAwIDMzLjlsNTcgNTcgMCA3Ni41LTY2LjItMzguMi0yMC45LTc3LjhjLTMuNC0xMi44LTE2LjYtMjAuNC0yOS40LTE3Uzk1LjIgOTggOTguNyAxMTAuOGw4LjQgMzEuNS02Ny42LTM5QzI4IDk2LjYgMTMuMyAxMDAuNSA2LjcgMTEyUzQgMTM4LjIgMTUuNSAxNDQuOGw2Ny42IDM5LTMxLjUgOC40Yy0xMi44IDMuNC0yMC40IDE2LjYtMTcgMjkuNHMxNi42IDIwLjQgMjkuNCAxN2w3Ny44LTIwLjkgNjYuMiAzOC4yLTY2LjIgMzguMi03Ny44LTIwLjljLTEyLjgtMy40LTI2IDQuMi0yOS40IDE3czQuMiAyNiAxNyAyOS40bDMxLjUgOC40LTY3LjYgMzlDNCAzNzMuOCAuMSAzODguNSA2LjcgNDAwczIxLjMgMTUuNCAzMi44IDguOGw2Ny42LTM5LTguNCAzMS41Yy0zLjQgMTIuOCA0LjIgMjYgMTcgMjkuNHMyNi00LjIgMjkuNC0xN2wyMC45LTc3LjggNjYuMi0zOC4yIDAgNzYuNS01NyA1N2MtOS40IDkuNC05LjQgMjQuNiAwIDMzLjlzMjQuNiA5LjQgMzMuOSAwbDIzLTIzIDAgNzguMWMwIDEzLjMgMTAuNyAyNCAyNCAyNHMyNC0xMC43IDI0LTI0bDAtNzguMSAyMyAyM2M5LjQgOS40IDI0LjYgOS40IDMzLjkgMHM5LjQtMjQuNiAwLTMzLjlsLTU3LTU3IDAtNzYuNSA2Ni4yIDM4LjIgMjAuOSA3Ny44YzMuNCAxMi44IDE2LjYgMjAuNCAyOS40IDE3czIwLjQtMTYuNiAxNy0yOS40bC04LjQtMzEuNSA2Ny42IDM5YzExLjUgNi42IDI2LjIgMi43IDMyLjgtOC44czIuNy0yNi4yLTguOC0zMi44bC02Ny42LTM5IDMxLjUtOC40YzEyLjgtMy40IDIwLjQtMTYuNiAxNy0yOS40cy0xNi42LTIwLjQtMjkuNC0xN2wtNzcuOCAyMC45LTY2LjItMzguMiA2Ni4yLTM4LjIgNzcuOCAyMC45YzEyLjggMy40IDI2LTQuMiAyOS40LTE3cy00LjItMjYtMTctMjkuNGwtMzEuNS04LjQgNjcuNi0zOWMxMS41LTYuNiAxNS40LTIxLjMgOC44LTMyLjhzLTIxLjMtMTUuNC0zMi44LTguOGwtNjcuNiAzOSA4LjQtMzEuNWMzLjQtMTIuOC00LjItMjYtMTctMjkuNHMtMjYgNC4yLTI5LjQgMTdsLTIwLjkgNzcuOC02Ni4yIDM4LjIgMC03Ni41IDU3LTU3YzkuNC05LjQgOS40LTI0LjYgMC0zMy45cy0yNC42LTkuNC0zMy45IDBsLTIzIDIzIDAtNzguMXoiXX0scnhlPXtwcmVmaXg6ImZhciIsaWNvbk5hbWU6ImJvb2ttYXJrIixpY29uOlszODQsNTEyLFsxMjgyNzgsNjE1OTFdLCJmMDJlIiwiTTAgNjRDMCAyOC43IDI4LjcgMCA2NCAwTDMyMCAwYzM1LjMgMCA2NCAyOC43IDY0IDY0bDAgNDE3LjFjMCAyNS42LTI4LjUgNDAuOC00OS44IDI2LjZMMTkyIDQxMi44IDQ5LjggNTA3LjdDMjguNSA1MjEuOSAwIDUwNi42IDAgNDgxLjFMMCA2NHpNNjQgNDhjLTguOCAwLTE2IDcuMi0xNiAxNmwwIDM4Ny4yIDExNy40LTc4LjJjMTYuMS0xMC43IDM3LjEtMTAuNyA1My4yIDBMMzM2IDQ1MS4yIDMzNiA2NGMwLTguOC03LjItMTYtMTYtMTZMNjQgNDh6Il19LExQPXtwcmVmaXg6ImZhciIsaWNvbk5hbWU6InNxdWFyZS1jYXJldC1sZWZ0IixpY29uOls0NDgsNTEyLFsiY2FyZXQtc3F1YXJlLWxlZnQiXSwiZjE5MSIsIk00OCA0MTZjMCA4LjggNy4yIDE2IDE2IDE2bDMyMCAwYzguOCAwIDE2LTcuMiAxNi0xNmwwLTMyMGMwLTguOC03LjItMTYtMTYtMTZMNjQgODBjLTguOCAwLTE2IDcuMi0xNiAxNmwwIDMyMHptMTYgNjRjLTM1LjMgMC02NC0yOC43LTY0LTY0TDAgOTZDMCA2MC43IDI4LjcgMzIgNjQgMzJsMzIwIDBjMzUuMyAwIDY0IDI4LjcgNjQgNjRsMCAzMjBjMCAzNS4zLTI4LjcgNjQtNjQgNjRMNjQgNDgwem02NC0yMjRjMC02LjcgMi44LTEzIDcuNy0xNy42bDExMi0xMDRjNy02LjUgMTcuMi04LjIgMjUuOS00LjRTMjg4IDE0Mi41IDI4OCAxNTJsMCAyMDhjMCA5LjUtNS43IDE4LjItMTQuNCAyMnMtMTguOSAyLjEtMjUuOS00LjRsLTExMi0xMDRjLTQuOS00LjUtNy43LTEwLjktNy43LTE3LjZ6Il19LHN4ZT1MUCxHZj17cHJlZml4OiJmYXIiLGljb25OYW1lOiJoYW5kc2hha2UiLGljb246WzY0MCw1MTIsWzEyOTMwOSw2MjY2MiwiaGFuZHNoYWtlLWFsdCIsImhhbmRzaGFrZS1zaW1wbGUiXSwiZjJiNSIsIk01OTguMSA3NS40YzEwLjctNy44IDEzLjEtMjIuOCA1LjMtMzMuNXMtMjIuOC0xMy4xLTMzLjUtNS4zbC03NC41IDU0LjItOS45LTYuNkM0NjUuOCA3MSA0NDIuNiA2NCA0MTguOSA2NGwtNTkuMiAwLS40IDAtMTQzLjYgMGMtMjYuNyAwLTUyLjUgOC45LTczLjQgMjUuMUw3MC4xIDM2LjZjLTEwLjctNy44LTI1LjctNS40LTMzLjUgNS4zcy01LjQgMjUuNyA1LjMgMzMuNWw4OCA2NGM5LjYgNi45IDIyLjcgNS45IDMxLjEtMi40bDMuOS0zLjljMTMuNS0xMy41IDMxLjgtMjEuMSA1MC45LTIxLjFsNDYuMyAwLTkxLjcgOTEuN2MtMTUuNiAxNS42LTE1LjYgNDAuOSAwIDU2LjZsLjggLjhDMjE4IDMwOCAyOTQgMzA4IDM0MC45IDI2MS4xbDI3LjEtMjcuMSA5Ny44IDk3LjhjMTUuNiAxNS42IDE1LjYgNDAuOSAwIDU2LjZsLTkuOCA5LjgtMzEtMzFjLTkuNC05LjQtMjQuNi05LjQtMzMuOSAwcy05LjQgMjQuNiAwIDMzLjlsMjggMjhjLTE3LjUgMTAuNC0zNy4yIDE2LjctNTcuNiAxOC41TDMxMyAzOTljLTkuNC05LjQtMjQuNi05LjQtMzMuOSAwcy05LjQgMjQuNiAwIDMzLjlsMTUgMTUtMy44IDBjLTM2LjEgMC03MC43LTE0LjMtOTYuMi0zOS44TDY1IDI3OWMtOS40LTkuNC0yNC42LTkuNC0zMy45IDBzLTkuNCAyNC42IDAgMzMuOUwxNjAuMiA0NDIuMWMzNC41IDM0LjUgODEuMyA1My45IDEzMC4xIDUzLjlsNTEuOCAwIDEgMSAxLTEgNS43IDBjNDguOCAwIDk1LjYtMTkuNCAxMzAuMS01My45bDE5LjktMTkuOWMxLjItMS4yIDIuMy0yLjMgMy40LTMuNSAuNy0uNSAxLjMtMS4xIDEuOS0xLjdMNjA5IDMxM2M5LjQtOS40IDkuNC0yNC42IDAtMzMuOXMtMjQuNi05LjQtMzMuOSAwbC01My44IDUzLjhjLTQuMi0xMi44LTExLjMtMjQuOS0yMS41LTM1LjFMMzg1IDE4M2MtOS40LTkuNC0yNC42LTkuNC0zMy45IDBsLTQ0LjEgNDQuMWMtMjYuNSAyNi41LTY4LjUgMjgtOTYuNyA0LjZsOTguNy05OC43YzEzLjQtMTMuNCAzMS42LTIxIDUwLjYtMjEuMWw4LjUgMCAuMiAwIDUwLjggMGMxNC4yIDAgMjguMSA0LjIgMzkuOSAxMi4xTDQ4Mi43IDE0MGM4LjQgNS42IDE5LjMgNS4zIDI3LjQtLjZsODgtNjR6Il19LG54ZT1HZixveGU9R2YsJFA9e3ByZWZpeDoiZmFyIixpY29uTmFtZToiZmFjZS1zbWlsZS13aW5rIixpY29uOls1MTIsNTEyLFsxMjg1MjEsInNtaWxlLXdpbmsiXSwiZjRkYSIsIk00NjQgMjU2YTIwOCAyMDggMCAxIDAgLTQxNiAwIDIwOCAyMDggMCAxIDAgNDE2IDB6TTAgMjU2YTI1NiAyNTYgMCAxIDEgNTEyIDAgMjU2IDI1NiAwIDEgMSAtNTEyIDB6bTE3Ny4zIDYzLjRDMTkyLjMgMzM1IDIxOC40IDM1MiAyNTYgMzUyczYzLjctMTcgNzguNy0zMi42YzkuMi05LjYgMjQuNC05LjkgMzMuOS0uN3M5LjkgMjQuNCAuNyAzMy45Yy0yMi4xIDIzLTYwIDQ3LjQtMTEzLjMgNDcuNHMtOTEuMi0yNC40LTExMy4zLTQ3LjRjLTkuMi05LjYtOC45LTI0LjggLjctMzMuOXMyNC44LTguOSAzMy45IC43ek0xNDQgMjA4YTMyIDMyIDAgMSAxIDY0IDAgMzIgMzIgMCAxIDEgLTY0IDB6bTE2NCA4YzAgMTEtOSAyMC0yMCAyMHMtMjAtOS0yMC0yMGMwLTMzLjEgMjYuOS02MCA2MC02MGwxNiAwYzMzLjEgMCA2MCAyNi45IDYwIDYwIDAgMTEtOSAyMC0yMCAyMHMtMjAtOS0yMC0yMC05LTIwLTIwLTIwbC0xNiAwYy0xMSAwLTIwIDktMjAgMjB6Il19LGx4ZT0kUCxBUD17cHJlZml4OiJmYXIiLGljb25OYW1lOiJmYWNlLWdyaW4tc3F1aW50LXRlYXJzIixpY29uOls1MTIsNTEyLFsxMjkzMTUsImdyaW4tc3F1aW50LXRlYXJzIl0sImY1ODYiLCJNNDAzLjEgNDAzLjFjNjcuMi02Ny4yIDc4LjgtMTY4LjkgMzQuOS0yNDhsMzYuNy01LjJjNC41LS42IDguOC0xLjYgMTMuMS0yLjggNDQuNiA5NC45IDI3LjcgMjExLjUtNTAuNyAyOTBzLTE5NS4xIDk1LjMtMjkwIDUwLjdjMS4yLTQuMiAyLjEtOC42IDIuOC0xMy4xbDUuMi0zNi43Yzc5LjEgNDMuOSAxODAuOCAzMi4zIDI0OC0zNC45ek03NSA3NWM3OC40LTc4LjQgMTk1LjEtOTUuMyAyOTAtNTAuNy0xLjIgNC4yLTIuMSA4LjYtMi44IDEzLjFsLTUuMiAzNi43Yy03OS4xLTQzLjktMTgwLjgtMzIuMy0yNDggMzQuOXMtNzguOCAxNjguOS0zNC45IDI0OGwtMzYuNyA1LjJjLTQuNSAuNi04LjggMS42LTEzLjEgMi44LTQ0LjYtOTQuOS0yNy43LTIxMS41IDUwLjctMjkwek0zNzAuOSAyMDYuNWM1LjgtMTAuOSAyMS4xLTEyLjQgMjYuNC0xLjMgMjUuNiA1My41IDE2LjIgMTE5LjYtMjguMiAxNjMuOS00NC4zIDQ0LjMtMTEwLjMgNTMuNy0xNjMuOCAyOC4yLTExLjEtNS4zLTkuNi0yMC42IDEuMy0yNi40IDMyLTE3LjEgNjQuMi00MC44IDkzLjgtNzAuNCAyOS43LTI5LjcgNTMuNC02MS45IDcwLjUtOTR6TTkzLjMgMjgxLjljLTEuNy04IDIuOS0xNS45IDEwLjYtMTguNGw4NC42LTI4YzUuNy0xLjkgMTIuMS0uNCAxNi4zIDMuOXM1LjggMTAuNiAzLjkgMTYuM2wtMjggODQuNmMtMi42IDcuNy0xMC41IDEyLjMtMTguNCAxMC42cy0xMy40LTktMTIuNy0xNy4xbDMuOS00My4xLTQzLjEgMy45Yy04LjEgLjctMTUuNS00LjctMTcuMS0xMi43ek0yOTQuNiAxMTAuNGwtMy45IDQzLjEgNDMuMS0zLjljOC4xLS43IDE1LjUgNC43IDE3LjEgMTIuN3MtMi45IDE1LjktMTAuNiAxOC40bC04NC42IDI4Yy01LjcgMS45LTEyLjEgLjQtMTYuMy0zLjlzLTUuOC0xMC42LTMuOS0xNi4zbDI4LTg0LjZjMi42LTcuNyAxMC41LTEyLjMgMTguNC0xMC42czEzLjQgOSAxMi43IDE3LjF6TTUxMiA1MS40YzAgMjUuNi0xOC44IDQ3LjMtNDQuMSA1MC45TDQyMS4xIDEwOWMtMTAuNiAxLjUtMTkuNi03LjUtMTguMS0xOC4xbDYuNy00Ni43QzQxMy4zIDE4LjggNDM1IDAgNDYwLjYgMCA0ODkgMCA1MTIgMjMgNTEyIDUxLjR6TTQ0LjEgNDA5LjdMOTAuOSA0MDNjMTAuNi0xLjUgMTkuNiA3LjUgMTguMSAxOC4xbC02LjcgNDYuN0M5OC43IDQ5My4yIDc3IDUxMiA1MS40IDUxMiAyMyA1MTIgMCA0ODkgMCA0NjAuNiAwIDQzNSAxOC44IDQxMy4zIDQ0LjEgNDA5Ljd6Il19LGN4ZT1BUCxkeGU9e3ByZWZpeDoiZmFyIixpY29uTmFtZToiZmlsZS1hdWRpbyIsaWNvbjpbMzg0LDUxMixbXSwiZjFjNyIsIk02NCA0OGwxMTIgMCAwIDg4YzAgMzkuOCAzMi4yIDcyIDcyIDcybDg4IDAgMCAyNDBjMCA4LjgtNy4yIDE2LTE2IDE2TDY0IDQ2NGMtOC44IDAtMTYtNy4yLTE2LTE2TDQ4IDY0YzAtOC44IDcuMi0xNiAxNi0xNnpNMjI0IDY3LjlsOTIuMSA5Mi4xLTY4LjEgMGMtMTMuMyAwLTI0LTEwLjctMjQtMjRsMC02OC4xek02NCAwQzI4LjcgMCAwIDI4LjcgMCA2NEwwIDQ0OGMwIDM1LjMgMjguNyA2NCA2NCA2NGwyNTYgMGMzNS4zIDAgNjQtMjguNyA2NC02NGwwLTI2MS41YzAtMTctNi43LTMzLjMtMTguNy00NS4zTDI0Mi43IDE4LjdDMjMwLjcgNi43IDIxNC41IDAgMTk3LjUgMEw2NCAwek0yMjEuOSAyNjcuNmMtNC43IDEwLS4zIDIxLjkgOS43IDI2LjYgMTkuMiA4LjkgMzIuNCAyOC4zIDMyLjQgNTAuOHMtMTMuMiA0MS45LTMyLjQgNTAuOGMtMTAgNC43LTE0LjQgMTYuNi05LjcgMjYuNnMxNi42IDE0LjQgMjYuNiA5LjdDMjgxLjIgNDE2LjggMzA0IDM4My42IDMwNCAzNDVzLTIyLjgtNzEuOS01NS42LTg3LjFjLTEwLTQuNy0yMS45LS4zLTI2LjYgOS43ek0xMDQgMzA1Yy0xMy4zIDAtMjQgMTAuNy0yNCAyNGwwIDMyYzAgMTMuMyAxMC43IDI0IDI0IDI0bDE2IDAgMjcuMiAzNGMzIDMuOCA3LjYgNiAxMi41IDZsLjMgMGM4LjggMCAxNi03LjIgMTYtMTZsMC0xMjhjMC04LjgtNy4yLTE2LTE2LTE2bC0uMyAwYy00LjkgMC05LjUgMi4yLTEyLjUgNmwtMjcuMiAzNC0xNiAwek0yMjMuMyAzNzNjOS45LTUuNCAxNi43LTE2IDE2LjctMjguMXMtNi43LTIyLjctMTYuNy0yOC4xYy03LjgtNC4yLTE1LjMgMy4zLTE1LjMgMTIuMWwwIDMyYzAgOC44IDcuNiAxNi4zIDE1LjMgMTIuMXoiXX0sRFA9e3ByZWZpeDoiZmFyIixpY29uTmFtZToiY2FsZW5kYXIteG1hcmsiLGljb246WzQ0OCw1MTIsWyJjYWxlbmRhci10aW1lcyJdLCJmMjczIiwiTTEyMCAwYzEzLjMgMCAyNCAxMC43IDI0IDI0bDAgNDAgMTYwIDAgMC00MGMwLTEzLjMgMTAuNy0yNCAyNC0yNHMyNCAxMC43IDI0IDI0bDAgNDAgMzIgMGMzNS4zIDAgNjQgMjguNyA2NCA2NGwwIDI4OGMwIDM1LjMtMjguNyA2NC02NCA2NEw2NCA0ODBjLTM1LjMgMC02NC0yOC43LTY0LTY0TDAgMTI4QzAgOTIuNyAyOC43IDY0IDY0IDY0bDMyIDAgMC00MGMwLTEzLjMgMTAuNy0yNCAyNC0yNHptMCAxMTJsLTU2IDBjLTguOCAwLTE2IDcuMi0xNiAxNmwwIDI4OGMwIDguOCA3LjIgMTYgMTYgMTZsMzIwIDBjOC44IDAgMTYtNy4yIDE2LTE2bDAtMjg4YzAtOC44LTcuMi0xNi0xNi0xNmwtMjY0IDB6bTE3MS45IDkyLjFjOS40IDkuNCA5LjQgMjQuNiAwIDMzLjlsLTMzLjkgMzMuOSAzMy45IDMzLjljOS40IDkuNCA5LjQgMjQuNiAwIDMzLjlzLTI0LjYgOS40LTMzLjkgMGwtMzMuOS0zMy45LTMzLjkgMzMuOWMtOS40IDkuNC0yNC42IDkuNC0zMy45IDBzLTkuNC0yNC42IDAtMzMuOWwzMy45LTMzLjktMzMuOS0zMy45Yy05LjQtOS40LTkuNC0yNC42IDAtMzMuOXMyNC42LTkuNCAzMy45IDBsMzMuOSAzMy45IDMzLjktMzMuOWM5LjQtOS40IDI0LjYtOS40IDMzLjkgMHoiXX0saHhlPURQLEVQPXtwcmVmaXg6ImZhciIsaWNvbk5hbWU6ImNpcmNsZS1kb3duIixpY29uOls1MTIsNTEyLFs2MTQ2NiwiYXJyb3ctYWx0LWNpcmNsZS1kb3duIl0sImYzNTgiLCJNMjU2IDQ2NGEyMDggMjA4IDAgMSAxIDAtNDE2IDIwOCAyMDggMCAxIDEgMCA0MTZ6TTI1NiAwYTI1NiAyNTYgMCAxIDAgMCA1MTIgMjU2IDI1NiAwIDEgMCAwLTUxMnpNMjQ0LjcgMzg3LjNjNi4yIDYuMiAxNi40IDYuMiAyMi42IDBsMTA0LTEwNGM0LjYtNC42IDUuOS0xMS41IDMuNS0xNy40UzM2Ni41IDI1NiAzNjAgMjU2bC03MiAwIDAtMTA0YzAtMTMuMy0xMC43LTI0LTI0LTI0bC0xNiAwYy0xMy4zIDAtMjQgMTAuNy0yNCAyNGwwIDEwNC03MiAwYy02LjUgMC0xMi4zIDMuOS0xNC44IDkuOXMtMS4xIDEyLjkgMy41IDE3LjRsMTA0IDEwNHoiXX0scHhlPUVQLFlmPXtwcmVmaXg6ImZhciIsaWNvbk5hbWU6ImZpbGUtbGluZXMiLGljb246WzM4NCw1MTIsWzEyODQ0MSwxMjg0NjIsNjE2ODYsImZpbGUtYWx0IiwiZmlsZS10ZXh0Il0sImYxNWMiLCJNNjQgNDhsMTEyIDAgMCA4OGMwIDM5LjggMzIuMiA3MiA3MiA3Mmw4OCAwIDAgMjQwYzAgOC44LTcuMiAxNi0xNiAxNkw2NCA0NjRjLTguOCAwLTE2LTcuMi0xNi0xNkw0OCA2NGMwLTguOCA3LjItMTYgMTYtMTZ6TTIyNCA2Ny45bDkyLjEgOTIuMS02OC4xIDBjLTEzLjMgMC0yNC0xMC43LTI0LTI0bDAtNjguMXpNNjQgMEMyOC43IDAgMCAyOC43IDAgNjRMMCA0NDhjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMjU2IDBjMzUuMyAwIDY0LTI4LjcgNjQtNjRsMC0yNjEuNWMwLTE3LTYuNy0zMy4zLTE4LjctNDUuM0wyNDIuNyAxOC43QzIzMC43IDYuNyAyMTQuNSAwIDE5Ny41IDBMNjQgMHptNTYgMjU2Yy0xMy4zIDAtMjQgMTAuNy0yNCAyNHMxMC43IDI0IDI0IDI0bDE0NCAwYzEzLjMgMCAyNC0xMC43IDI0LTI0cy0xMC43LTI0LTI0LTI0bC0xNDQgMHptMCA5NmMtMTMuMyAwLTI0IDEwLjctMjQgMjRzMTAuNyAyNCAyNCAyNGwxNDQgMGMxMy4zIDAgMjQtMTAuNyAyNC0yNHMtMTAuNy0yNC0yNC0yNGwtMTQ0IDB6Il19LHV4ZT1ZZixmeGU9WWYsbXhlPXtwcmVmaXg6ImZhciIsaWNvbk5hbWU6ImNvbW1lbnRzIixpY29uOls1NzYsNTEyLFsxMjg0OTAsNjE2NzBdLCJmMDg2IiwiTTc2LjIgMjU4LjdjNi4xLTE1LjIgNC0zMi42LTUuNi00NS45LTE0LjUtMjAuMS0yMi42LTQzLjctMjIuNi02OC44IDAtNjYuOCA2MC41LTEyOCAxNDQtMTI4czE0NCA2MS4yIDE0NCAxMjgtNjAuNSAxMjgtMTQ0IDEyOGMtMTUuOSAwLTMxLjEtMi4zLTQ1LjMtNi41LTEwLjMtMy4xLTIxLjQtMi41LTMxLjQgMS41bC01MC40IDIwLjIgMTEuNC0yOC41ek0wIDE0NGMwIDM1LjggMTEuNiA2OS4xIDMxLjcgOTYuOEwxLjkgMzE1LjJjLTEuMyAzLjItMS45IDYuNi0xLjkgMTAgMCAxNC44IDEyIDI2LjggMjYuOCAyNi44IDMuNCAwIDYuOC0uNyAxMC0xLjlsOTYuMy0zOC41YzE4LjYgNS41IDM4LjQgOC40IDU4LjkgOC40IDEwNiAwIDE5Mi03OC44IDE5Mi0xNzZTMjk4LTMyIDE5Mi0zMiAwIDQ2LjggMCAxNDR6TTM4NCA1MTJjMjAuNiAwIDQwLjMtMyA1OC45LTguNGw5Ni4zIDM4LjVjMy4yIDEuMyA2LjYgMS45IDEwIDEuOSAxNC44IDAgMjYuOC0xMiAyNi44LTI2LjggMC0zLjQtLjctNi44LTEuOS0xMGwtMjkuNy03NC40YzIwLTI3LjggMzEuNy02MS4xIDMxLjctOTYuOCAwLTgyLjQtNjEuNy0xNTEuNS0xNDUtMTcwLjctMS42IDE2LjMtNS4xIDMxLjktMTAuMSA0Ni45IDYzLjkgMTQuOCAxMDcuMiA2Ny4zIDEwNy4yIDEyMy45IDAgMjUuMS04LjEgNDguNy0yMi42IDY4LjgtOS42IDEzLjMtMTEuNyAzMC42LTUuNiA0NS45bDExLjQgMjguNS01MC40LTIwLjJjLTEwLTQtMjEuMS00LjUtMzEuNC0xLjUtMTQuMiA0LjItMjkuNCA2LjUtNDUuMyA2LjUtNzIuMiAwLTEyNy4xLTQ1LjctMTQwLjctMTAxLjItMTUuNiAzLjItMzEuNyA1LTQ4LjEgNS4yIDE2LjQgODEuOSA5NC43IDE0NCAxODguOCAxNDR6Il19LEk1PXtwcmVmaXg6ImZhciIsaWNvbk5hbWU6ImNpcmNsZS1jaGVjayIsaWNvbjpbNTEyLDUxMixbNjE1MzMsImNoZWNrLWNpcmNsZSJdLCJmMDU4IiwiTTI1NiA1MTJhMjU2IDI1NiAwIDEgMSAwLTUxMiAyNTYgMjU2IDAgMSAxIDAgNTEyem0wLTQ2NGEyMDggMjA4IDAgMSAwIDAgNDE2IDIwOCAyMDggMCAxIDAgMC00MTZ6bTcwLjcgMTIxLjljNy44LTEwLjcgMjIuOC0xMy4xIDMzLjUtNS4zIDEwLjcgNy44IDEzLjEgMjIuOCA1LjMgMzMuNUwyNDMuNCAzNjYuMWMtNC4xIDUuNy0xMC41IDkuMy0xNy41IDkuOC03IC41LTEzLjktMi0xOC44LTYuOWwtNTUuOS01NS45Yy05LjQtOS40LTkuNC0yNC42IDAtMzMuOXMyNC42LTkuNCAzMy45IDBsMzYgMzYgMTA1LjYtMTQ1LjJ6Il19LGd4ZT1JNSxieGU9e3ByZWZpeDoiZmFyIixpY29uTmFtZToibW9vbiIsaWNvbjpbNTEyLDUxMixbMTI3NzY5LDkyMTRdLCJmMTg2IiwiTTIzOS4zIDQ4LjdjLTEwNy4xIDguNS0xOTEuMyA5OC4xLTE5MS4zIDIwNy4zIDAgMTE0LjkgOTMuMSAyMDggMjA4IDIwOCAzMy4zIDAgNjQuNy03LjggOTIuNi0yMS43LTEwMy40LTIzLjQtMTgwLjYtMTE1LjgtMTgwLjYtMjI2LjMgMC02NS44IDI3LjQtMTI1LjEgNzEuMy0xNjcuM3pNMCAyNTZjMC0xNDEuNCAxMTQuNi0yNTYgMjU2LTI1NiAxOS40IDAgMzguNCAyLjIgNTYuNyA2LjMgOS45IDIuMiAxNy4zIDEwLjUgMTguNSAyMC41cy00IDE5LjgtMTMuMSAyNC40Yy02MC42IDMwLjItMTAyLjEgOTIuNy0xMDIuMSAxNjQuOCAwIDEwMS42IDgyLjQgMTg0IDE4NCAxODQgNSAwIDkuOS0uMiAxNC44LS42IDEwLjEtLjggMTkuNiA0LjggMjMuOCAxNC4xczIgMjAuMS01LjMgMjcuMUMzODcuMyA0ODQuOCAzMjQuOCA1MTIgMjU2IDUxMiAxMTQuNiA1MTIgMCAzOTcuNCAwIDI1NnoiXX0sdnhlPXtwcmVmaXg6ImZhciIsaWNvbk5hbWU6ImNsb3NlZC1jYXB0aW9uaW5nIixpY29uOls1MTIsNTEyLFtdLCJmMjBhIiwiTTQ0OCAxMTJjOC44IDAgMTYgNy4yIDE2IDE2bDAgMjU2YzAgOC44LTcuMiAxNi0xNiAxNkw2NCA0MDBjLTguOCAwLTE2LTcuMi0xNi0xNmwwLTI1NmMwLTguOCA3LjItMTYgMTYtMTZsMzg0IDB6TTY0IDY0QzI4LjcgNjQgMCA5Mi43IDAgMTI4TDAgMzg0YzAgMzUuMyAyOC43IDY0IDY0IDY0bDM4NCAwYzM1LjMgMCA2NC0yOC43IDY0LTY0bDAtMjU2YzAtMzUuMy0yOC43LTY0LTY0LTY0TDY0IDY0em04OCAxNDRsMzIgMGM0LjQgMCA4IDMuNiA4IDggMCAxMy4zIDEwLjcgMjQgMjQgMjRzMjQtMTAuNyAyNC0yNGMwLTMwLjktMjUuMS01Ni01Ni01NmwtMzIgMGMtMzAuOSAwLTU2IDI1LjEtNTYgNTZsMCA4MGMwIDMwLjkgMjUuMSA1NiA1NiA1NmwzMiAwYzMwLjkgMCA1Ni0yNS4xIDU2LTU2IDAtMTMuMy0xMC43LTI0LTI0LTI0cy0yNCAxMC43LTI0IDI0YzAgNC40LTMuNiA4LTggOGwtMzIgMGMtNC40IDAtOC0zLjYtOC04bDAtODBjMC00LjQgMy42LTggOC04em0xNjggOGMwLTQuNCAzLjYtOCA4LThsMzIgMGM0LjQgMCA4IDMuNiA4IDggMCAxMy4zIDEwLjcgMjQgMjQgMjRzMjQtMTAuNyAyNC0yNGMwLTMwLjktMjUuMS01Ni01Ni01NmwtMzIgMGMtMzAuOSAwLTU2IDI1LjEtNTYgNTZsMCA4MGMwIDMwLjkgMjUuMSA1NiA1NiA1NmwzMiAwYzMwLjkgMCA1Ni0yNS4xIDU2LTU2IDAtMTMuMy0xMC43LTI0LTI0LTI0cy0yNCAxMC43LTI0IDI0YzAgNC40LTMuNiA4LTggOGwtMzIgMGMtNC40IDAtOC0zLjYtOC04bDAtODB6Il19LHl4ZT17cHJlZml4OiJmYXIiLGljb25OYW1lOiJpbWFnZXMiLGljb246WzU3Niw1MTIsW10sImYzMDIiLCJNNDgwIDgwYzguOCAwIDE2IDcuMiAxNiAxNmwwIDI1NmMwIDguOC03LjIgMTYtMTYgMTZsLTMyMCAwYy04LjggMC0xNi03LjItMTYtMTZsMC0yNTZjMC04LjggNy4yLTE2IDE2LTE2bDMyMCAwek0xNjAgMzJjLTM1LjMgMC02NCAyOC43LTY0IDY0bDAgMjU2YzAgMzUuMyAyOC43IDY0IDY0IDY0bDMyMCAwYzM1LjMgMCA2NC0yOC43IDY0LTY0bDAtMjU2YzAtMzUuMy0yOC43LTY0LTY0LTY0TDE2MCAzMnptODAgMTEyYTMyIDMyIDAgMSAwIC02NCAwIDMyIDMyIDAgMSAwIDY0IDB6bTE0MC43IDMuOGMtNC4zLTcuMy0xMi4yLTExLjgtMjAuNy0xMS44cy0xNi40IDQuNS0yMC43IDExLjhsLTQ2LjUgNzktMTcuMi0yNC42Yy00LjUtNi40LTExLjgtMTAuMi0xOS43LTEwLjJzLTE1LjIgMy44LTE5LjcgMTAuMmwtNTYgODBjLTUuMSA3LjMtNS44IDE2LjktMS42IDI0LjhTMTkxLjEgMzIwIDIwMCAzMjBsMjQwIDBjOC42IDAgMTYuNi00LjYgMjAuOC0xMi4xczQuMi0xNi43LS4xLTI0LjFsLTgwLTEzNnpNNDggMTUyYzAtMTMuMy0xMC43LTI0LTI0LTI0UzAgMTM4LjcgMCAxNTJMMCA0NDhjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMzYwIDBjMTMuMyAwIDI0LTEwLjcgMjQtMjRzLTEwLjctMjQtMjQtMjRMNjQgNDY0Yy04LjggMC0xNi03LjItMTYtMTZsMC0yOTZ6Il19LFBQPXtwcmVmaXg6ImZhciIsaWNvbk5hbWU6ImNpcmNsZS1yaWdodCIsaWNvbjpbNTEyLDUxMixbNjE4MzgsImFycm93LWFsdC1jaXJjbGUtcmlnaHQiXSwiZjM1YSIsIk00NjQgMjU2YTIwOCAyMDggMCAxIDEgLTQxNiAwIDIwOCAyMDggMCAxIDEgNDE2IDB6TTAgMjU2YTI1NiAyNTYgMCAxIDAgNTEyIDAgMjU2IDI1NiAwIDEgMCAtNTEyIDB6bTM4Ny4zIDExLjNjNi4yLTYuMiA2LjItMTYuNCAwLTIyLjZsLTEwNC0xMDRjLTQuNi00LjYtMTEuNS01LjktMTcuNC0zLjVTMjU2IDE0NS41IDI1NiAxNTJsMCA3Mi0xMDQgMGMtMTMuMyAwLTI0IDEwLjctMjQgMjRsMCAxNmMwIDEzLjMgMTAuNyAyNCAyNCAyNGwxMDQgMCAwIDcyYzAgNi41IDMuOSAxMi4zIDkuOSAxNC44czEyLjkgMS4xIDE3LjQtMy41bDEwNC0xMDR6Il19LHh4ZT1QUCxJUD17cHJlZml4OiJmYXIiLGljb25OYW1lOiJpZC1jYXJkIixpY29uOls1NzYsNTEyLFs2MjE0NywiZHJpdmVycy1saWNlbnNlIl0sImYyYzIiLCJNNDggNDE2bDAtMjU2IDQ4MCAwIDAgMjU2YzAgOC44LTcuMiAxNi0xNiAxNmwtMTkyIDBjMC00NC4yLTM1LjgtODAtODAtODBsLTY0IDBjLTQ0LjIgMC04MCAzNS44LTgwIDgwbC0zMiAwYy04LjggMC0xNi03LjItMTYtMTZ6TTY0IDMyQzI4LjcgMzIgMCA2MC43IDAgOTZMMCA0MTZjMCAzNS4zIDI4LjcgNjQgNjQgNjRsNDQ4IDBjMzUuMyAwIDY0LTI4LjcgNjQtNjRsMC0zMjBjMC0zNS4zLTI4LjctNjQtNjQtNjRMNjQgMzJ6TTIwOCAzMTJhNTYgNTYgMCAxIDAgMC0xMTIgNTYgNTYgMCAxIDAgMCAxMTJ6TTM3NiAyMDhjLTEzLjMgMC0yNCAxMC43LTI0IDI0czEwLjcgMjQgMjQgMjRsODAgMGMxMy4zIDAgMjQtMTAuNyAyNC0yNHMtMTAuNy0yNC0yNC0yNGwtODAgMHptMCA5NmMtMTMuMyAwLTI0IDEwLjctMjQgMjRzMTAuNyAyNCAyNCAyNGw4MCAwYzEzLjMgMCAyNC0xMC43IDI0LTI0cy0xMC43LTI0LTI0LTI0bC04MCAweiJdfSx3eGU9SVAsTlA9e3ByZWZpeDoiZmFyIixpY29uTmFtZToiY2lyY2xlLXBsYXkiLGljb246WzUxMiw1MTIsWzYxNDY5LCJwbGF5LWNpcmNsZSJdLCJmMTQ0IiwiTTI1NiA0OGEyMDggMjA4IDAgMSAxIDAgNDE2IDIwOCAyMDggMCAxIDEgMC00MTZ6bTAgNDY0YTI1NiAyNTYgMCAxIDAgMC01MTIgMjU2IDI1NiAwIDEgMCAwIDUxMnpNMjEyLjUgMTQ3LjVjLTcuNC00LjUtMTYuNy00LjctMjQuMy0uNVMxNzYgMTU5LjMgMTc2IDE2OGwwIDE3NmMwIDguNyA0LjcgMTYuNyAxMi4zIDIwLjlzMTYuOCA0LjEgMjQuMy0uNWwxNDQtODhjNy4xLTQuNCAxMS41LTEyLjEgMTEuNS0yMC41cy00LjQtMTYuMS0xMS41LTIwLjVsLTE0NC04OHpNMjk4IDI1NmwtNzQgNDUuMiAwLTkwLjQgNzQgNDUuMnoiXX0sTXhlPU5QLEZQPXtwcmVmaXg6ImZhciIsaWNvbk5hbWU6ImZhY2UtbGF1Z2gtYmVhbSIsaWNvbjpbNTEyLDUxMixbMTI4NTEzLCJsYXVnaC1iZWFtIl0sImY1OWEiLCJNNDY0IDI1NmEyMDggMjA4IDAgMSAwIC00MTYgMCAyMDggMjA4IDAgMSAwIDQxNiAwek0wIDI1NmEyNTYgMjU2IDAgMSAxIDUxMiAwIDI1NiAyNTYgMCAxIDEgLTUxMiAwem0xMTguMyA1OC4yYy00LjItMTMuNyA3LjEtMjYuMiAyMS40LTI2LjJsMjMyLjYgMGMxNC4zIDAgMjUuNiAxMi41IDIxLjQgMjYuMi0xOCA1OC45LTcyLjkgMTAxLjgtMTM3LjcgMTAxLjhTMTM2LjMgMzczLjEgMTE4LjMgMzE0LjJ6TTE3NiAxODBjLTE1LjUgMC0yOCAxMi41LTI4IDI4bDAgOGMwIDExLTkgMjAtMjAgMjBzLTIwLTktMjAtMjBsMC04YzAtMzcuNiAzMC40LTY4IDY4LTY4czY4IDMwLjQgNjggNjhsMCA4YzAgMTEtOSAyMC0yMCAyMHMtMjAtOS0yMC0yMGwwLThjMC0xNS41LTEyLjUtMjgtMjgtMjh6bTEzMiAyOGwwIDhjMCAxMS05IDIwLTIwIDIwcy0yMC05LTIwLTIwbDAtOGMwLTM3LjYgMzAuNC02OCA2OC02OHM2OCAzMC40IDY4IDY4bDAgOGMwIDExLTkgMjAtMjAgMjBzLTIwLTktMjAtMjBsMC04YzAtMTUuNS0xMi41LTI4LTI4LTI4cy0yOCAxMi41LTI4IDI4eiJdfSx6eGU9RlAsT1A9e3ByZWZpeDoiZmFyIixpY29uTmFtZToiYWRkcmVzcy1ib29rIixpY29uOls1MTIsNTEyLFs2MjEzOCwiY29udGFjdC1ib29rIl0sImYyYjkiLCJNMzg0IDQ4YzguOCAwIDE2IDcuMiAxNiAxNmwwIDM4NGMwIDguOC03LjIgMTYtMTYgMTZMOTYgNDY0Yy04LjggMC0xNi03LjItMTYtMTZMODAgNjRjMC04LjggNy4yLTE2IDE2LTE2bDI4OCAwek05NiAwQzYwLjcgMCAzMiAyOC43IDMyIDY0bDAgMzg0YzAgMzUuMyAyOC43IDY0IDY0IDY0bDI4OCAwYzM1LjMgMCA2NC0yOC43IDY0LTY0bDAtMzg0YzAtMzUuMy0yOC43LTY0LTY0LTY0TDk2IDB6TTI0MCAyNDhhNTYgNTYgMCAxIDAgMC0xMTIgNTYgNTYgMCAxIDAgMCAxMTJ6bS0zMiA0MGMtNDQuMiAwLTgwIDM1LjgtODAgODAgMCA4LjggNy4yIDE2IDE2IDE2bDE5MiAwYzguOCAwIDE2LTcuMiAxNi0xNiAwLTQ0LjItMzUuOC04MC04MC04MGwtNjQgMHpNNTEyIDgwYzAtOC44LTcuMi0xNi0xNi0xNnMtMTYgNy4yLTE2IDE2bDAgNjRjMCA4LjggNy4yIDE2IDE2IDE2czE2LTcuMiAxNi0xNmwwLTY0ek00OTYgMTkyYy04LjggMC0xNiA3LjItMTYgMTZsMCA2NGMwIDguOCA3LjIgMTYgMTYgMTZzMTYtNy4yIDE2LTE2bDAtNjRjMC04LjgtNy4yLTE2LTE2LTE2em0xNiAxNDRjMC04LjgtNy4yLTE2LTE2LTE2cy0xNiA3LjItMTYgMTZsMCA2NGMwIDguOCA3LjIgMTYgMTYgMTZzMTYtNy4yIDE2LTE2bDAtNjR6Il19LGt4ZT1PUCxSUD17cHJlZml4OiJmYXIiLGljb25OYW1lOiJob3VyZ2xhc3MiLGljb246WzM4NCw1MTIsWzkyMDMsNjIwMzIsImhvdXJnbGFzcy1lbXB0eSJdLCJmMjU0IiwiTTI0IDBDMTAuNyAwIDAgMTAuNyAwIDI0UzEwLjcgNDggMjQgNDhsOCAwIDAgMTljMCA0MC4zIDE2IDc5IDQ0LjUgMTA3LjVsODEuNSA4MS41LTgxLjUgODEuNUM0OCAzNjYgMzIgNDA0LjcgMzIgNDQ1bDAgMTktOCAwYy0xMy4zIDAtMjQgMTAuNy0yNCAyNHMxMC43IDI0IDI0IDI0bDMzNiAwYzEzLjMgMCAyNC0xMC43IDI0LTI0cy0xMC43LTI0LTI0LTI0bC04IDAgMC0xOWMwLTQwLjMtMTYtNzktNDQuNS0xMDcuNWwtODEuNS04MS41IDgxLjUtODEuNUMzMzYgMTQ2IDM1MiAxMDcuMyAzNTIgNjdsMC0xOSA4IDBjMTMuMyAwIDI0LTEwLjcgMjQtMjRTMzczLjMgMCAzNjAgMEwyNCAwek0xOTIgMjg5LjlsODEuNSA4MS41QzI5MyAzOTEgMzA0IDQxNy40IDMwNCA0NDVsMCAxOS0yMjQgMCAwLTE5YzAtMjcuNiAxMS01NCAzMC41LTczLjVMMTkyIDI4OS45em0wLTY3LjlsLTgxLjUtODEuNUM5MSAxMjEgODAgOTQuNiA4MCA2N2wwLTE5IDIyNCAwIDAgMTljMCAyNy42LTExIDU0LTMwLjUgNzMuNUwxOTIgMjIyLjF6Il19LFN4ZT1SUCxaZj17cHJlZml4OiJmYXIiLGljb25OYW1lOiJoZWFkcGhvbmVzIixpY29uOls0NDgsNTEyLFsxMjc5MTEsNjI4NjMsImhlYWRwaG9uZXMtYWx0IiwiaGVhZHBob25lcy1zaW1wbGUiXSwiZjAyNSIsIk00OCAyMjRjMC05Ny4yIDc4LjgtMTc2IDE3Ni0xNzZzMTc2IDc4LjggMTc2IDE3NmwwIDQ0LjhjLTE0LjEtOC4yLTMwLjUtMTIuOC00OC0xMi44bC0xNiAwYy0yNi41IDAtNDggMjEuNS00OCA0OGwwIDEyOGMwIDI2LjUgMjEuNSA0OCA0OCA0OGwxNiAwYzUzIDAgOTYtNDMgOTYtOTZsMC0xNjBDNDQ4IDEwMC4zIDM0Ny43IDAgMjI0IDBTMCAxMDAuMyAwIDIyNEwwIDM4NGMwIDUzIDQzIDk2IDk2IDk2bDE2IDBjMjYuNSAwIDQ4LTIxLjUgNDgtNDhsMC0xMjhjMC0yNi41LTIxLjUtNDgtNDgtNDhsLTE2IDBjLTE3LjUgMC0zMy45IDQuNy00OCAxMi44TDQ4IDIyNHptMCAxMjhjMC0yNi41IDIxLjUtNDggNDgtNDhsMTYgMCAwIDEyOC0xNiAwYy0yNi41IDAtNDgtMjEuNS00OC00OGwwLTMyem0zNTIgMGwwIDMyYzAgMjYuNS0yMS41IDQ4LTQ4IDQ4bC0xNiAwIDAtMTI4IDE2IDBjMjYuNSAwIDQ4IDIxLjUgNDggNDh6Il19LEN4ZT1aZixfeGU9WmYsVHhlPXtwcmVmaXg6ImZhciIsaWNvbk5hbWU6ImZpbGUtcG93ZXJwb2ludCIsaWNvbjpbMzg0LDUxMixbXSwiZjFjNCIsIk02NCA0OGwxMTIgMCAwIDg4YzAgMzkuOCAzMi4yIDcyIDcyIDcybDg4IDAgMCAyNDBjMCA4LjgtNy4yIDE2LTE2IDE2TDY0IDQ2NGMtOC44IDAtMTYtNy4yLTE2LTE2TDQ4IDY0YzAtOC44IDcuMi0xNiAxNi0xNnpNMjI0IDY3LjlsOTIuMSA5Mi4xLTY4LjEgMGMtMTMuMyAwLTI0LTEwLjctMjQtMjRsMC02OC4xek02NCAwQzI4LjcgMCAwIDI4LjcgMCA2NEwwIDQ0OGMwIDM1LjMgMjguNyA2NCA2NCA2NGwyNTYgMGMzNS4zIDAgNjQtMjguNyA2NC02NGwwLTI2MS41YzAtMTctNi43LTMzLjMtMTguNy00NS4zTDI0Mi43IDE4LjdDMjMwLjcgNi43IDIxNC41IDAgMTk3LjUgMEw2NCAwem04OCAyNTZjLTEzLjMgMC0yNCAxMC43LTI0IDI0bDAgMTI4YzAgMTMuMyAxMC43IDI0IDI0IDI0czI0LTEwLjcgMjQtMjRsMC0xNiAyOCAwYzM3LjYgMCA2OC0zMC40IDY4LTY4cy0zMC40LTY4LTY4LTY4bC01MiAwem01MiA4OGwtMjggMCAwLTQwIDI4IDBjMTEgMCAyMCA5IDIwIDIwcy05IDIwLTIwIDIweiJdfSxMeGU9e3ByZWZpeDoiZmFyIixpY29uTmFtZToid2luZG93LW1heGltaXplIixpY29uOls1MTIsNTEyLFsxMjg0NzBdLCJmMmQwIiwiTTQ4IDIyNGwwIDE2MGMwIDguOCA3LjIgMTYgMTYgMTZsMzg0IDBjOC44IDAgMTYtNy4yIDE2LTE2bDAtMTYwLTQxNiAwek0wIDEyOEMwIDkyLjcgMjguNyA2NCA2NCA2NGwzODQgMGMzNS4zIDAgNjQgMjguNyA2NCA2NGwwIDI1NmMwIDM1LjMtMjguNyA2NC02NCA2NEw2NCA0NDhjLTM1LjMgMC02NC0yOC43LTY0LTY0TDAgMTI4eiJdfSxCUD17cHJlZml4OiJmYXIiLGljb25OYW1lOiJjb21tZW50LWRvdHMiLGljb246WzUxMiw1MTIsWzEyODE3Miw2MjA3NSwiY29tbWVudGluZyJdLCJmNGFkIiwiTTAgMjQwYzAgNTQuNCAxOS4zIDEwNC42IDUxLjkgMTQ0LjlMMy4xIDQ3NC4zYy0yIDMuNy0zLjEgNy45LTMuMSAxMi4yIDAgMTQuMSAxMS40IDI1LjUgMjUuNSAyNS41IDQgMCA3LjgtLjYgMTEuNS0yLjFMMTUzLjQgNDYwYzMxLjQgMTIuOSA2Ni4xIDIwIDEwMi42IDIwIDE0MS40IDAgMjU2LTEwNy41IDI1Ni0yNDBTMzk3LjQgMCAyNTYgMCAwIDEwNy41IDAgMjQwek05NCA0MDcuOWM5LjMtMTcuMSA3LjQtMzguMS00LjgtNTMuMi0yNi4xLTMyLjMtNDEuMi03MS45LTQxLjItMTE0LjcgMC0xMDMuMiA5MC4yLTE5MiAyMDgtMTkyczIwOCA4OC44IDIwOCAxOTItOTAuMiAxOTItMjA4IDE5MmMtMzAuMiAwLTU4LjctNS45LTg0LjMtMTYuNC0xMS45LTQuOS0yNS4zLTQuOC0zNy4xIC4zTDc2IDQ0MC45IDk0IDQwNy45ek0xNDQgMjcyYTMyIDMyIDAgMSAwIDAtNjQgMzIgMzIgMCAxIDAgMCA2NHptMTQ0LTMyYTMyIDMyIDAgMSAwIC02NCAwIDMyIDMyIDAgMSAwIDY0IDB6bTgwIDMyYTMyIDMyIDAgMSAwIDAtNjQgMzIgMzIgMCAxIDAgMCA2NHoiXX0sJHhlPUJQLEhQPXtwcmVmaXg6ImZhciIsaWNvbk5hbWU6ImZhY2UtZ3Jpbi10b25ndWUtd2luayIsaWNvbjpbNTEyLDUxMixbMTI4NTQwLCJncmluLXRvbmd1ZS13aW5rIl0sImY1OGIiLCJNMzY2LjkgNDMyYy44LTUuMiAxLjEtMTAuNiAxLjEtMTZsMC01My41YzEwLjItMTIuNiAxOC4zLTI2LjkgMjMuOC00Mi41IDQuMS0xMS42LTcuOC0yMS40LTE5LjYtMTcuOC0zNC44IDEwLjYtNzQuMyAxNi42LTExNi4zIDE2LjYtNDEuOSAwLTgxLjQtNi0xMTYuMS0xNi41LTExLjgtMy42LTIzLjcgNi4xLTE5LjYgMTcuOCA1LjUgMTUuNSAxMy42IDI5LjkgMjMuOCA0Mi40bDAgNTMuNWMwIDUuNCAuNCAxMC44IDEuMSAxNi01OC40LTM2LjgtOTcuMS0xMDEuOS05Ny4xLTE3NiAwLTExNC45IDkzLjEtMjA4IDIwOC0yMDhzMjA4IDkzLjEgMjA4IDIwOGMwIDc0LjEtMzguOCAxMzkuMi05Ny4xIDE3NnptLTM4LjggNjkuN0M0MzQuNCA0NzAuNiA1MTIgMzcyLjMgNTEyIDI1NiA1MTIgMTE0LjYgMzk3LjQgMCAyNTYgMFMwIDExNC42IDAgMjU2QzAgMzcyLjMgNzcuNiA0NzAuNiAxODMuOSA1MDEuNyAyMDMuNCA1MTguMSAyMjguNSA1MjggMjU2IDUyOHM1Mi42LTkuOSA3Mi4xLTI2LjN6TTMyMCAzNzguNmwwIDM3LjRjMCAzNS4zLTI4LjcgNjQtNjQgNjRzLTY0LTI4LjctNjQtNjRsMC0zNy40YzAtMTQuNyAxMS45LTI2LjYgMjYuNi0yNi42bDIgMGMxMS4zIDAgMjEuMSA3LjkgMjMuNiAxOC45IDIuOCAxMi42IDIwLjggMTIuNiAyMy42IDAgMi41LTExLjEgMTIuMy0xOC45IDIzLjYtMTguOWwyIDBjMTQuNyAwIDI2LjYgMTEuOSAyNi42IDI2LjZ6TTEzMiAyMzJjMC0xMSA5LTIwIDIwLTIwbDE2IDBjMTEgMCAyMCA5IDIwIDIwczkgMjAgMjAgMjAgMjAtOSAyMC0yMGMwLTMzLjEtMjYuOS02MC02MC02MGwtMTYgMGMtMzMuMSAwLTYwIDI2LjktNjAgNjAgMCAxMSA5IDIwIDIwIDIwczIwLTkgMjAtMjB6bTIyOC40LTI0YTI0IDI0IDAgMSAwIC00OCAwIDI0IDI0IDAgMSAwIDQ4IDB6TTI4OCAyMDhhNDggNDggMCAxIDEgOTYgMCA0OCA0OCAwIDEgMSAtOTYgMHptMTI4IDBhODAgODAgMCAxIDAgLTE2MCAwIDgwIDgwIDAgMSAwIDE2MCAweiJdfSxBeGU9SFAscVA9e3ByZWZpeDoiZmFyIixpY29uTmFtZToiaG91cmdsYXNzLWhhbGYiLGljb246WzM4NCw1MTIsWyJob3VyZ2xhc3MtMiJdLCJmMjUyIiwiTTAgMjRDMCAxMC43IDEwLjcgMCAyNCAwTDM2MCAwYzEzLjMgMCAyNCAxMC43IDI0IDI0cy0xMC43IDI0LTI0IDI0bC04IDAgMCAxOWMwIDQwLjMtMTYgNzktNDQuNSAxMDcuNWwtODEuNSA4MS41IDgxLjUgODEuNUMzMzYgMzY2IDM1MiA0MDQuNyAzNTIgNDQ1bDAgMTkgOCAwYzEzLjMgMCAyNCAxMC43IDI0IDI0cy0xMC43IDI0LTI0IDI0TDI0IDUxMmMtMTMuMyAwLTI0LTEwLjctMjQtMjRzMTAuNy0yNCAyNC0yNGw4IDAgMC0xOWMwLTQwLjMgMTYtNzkgNDQuNS0xMDcuNWw4MS41LTgxLjUtODEuNS04MS41QzQ4IDE0NiAzMiAxMDcuMyAzMiA2N2wwLTE5LTggMEMxMC43IDQ4IDAgMzcuMyAwIDI0ek0xMTAuNSAzNzEuNWMtMy45IDMuOS03LjUgOC4xLTEwLjcgMTIuNWwxODQuNCAwYy0zLjItNC40LTYuOC04LjYtMTAuNy0xMi41bC04MS41LTgxLjUtODEuNSA4MS41ek04MC44IDQzMmMtLjUgNC4zLS44IDguNi0uOCAxM2wwIDE5IDIyNCAwIDAtMTljMC00LjQtLjMtOC43LS44LTEzTDgwLjggNDMyek0yNTQuMSAxNjBsLTEyNC4xIDAgNjIuMSA2Mi4xIDYyLjEtNjIuMXptMzkuNy00OEMzMDAuNCA5OC4xIDMwNCA4Mi43IDMwNCA2N2wwLTE5LTIyNCAwIDAgMTljMCAxNS43IDMuNiAzMS4xIDEwLjIgNDVsMjAzLjUgMHoiXX0sRHhlPXFQLFZQPXtwcmVmaXg6ImZhciIsaWNvbk5hbWU6ImNyZWRpdC1jYXJkIixpY29uOls1MTIsNTEyLFsxMjgxNzksNjIwODMsImNyZWRpdC1jYXJkLWFsdCJdLCJmMDlkIiwiTTQ0OCAxMTJjOC44IDAgMTYgNy4yIDE2IDE2bDAgMzItNDE2IDAgMC0zMmMwLTguOCA3LjItMTYgMTYtMTZsMzg0IDB6bTE2IDExMmwwIDE2MGMwIDguOC03LjIgMTYtMTYgMTZMNjQgNDAwYy04LjggMC0xNi03LjItMTYtMTZsMC0xNjAgNDE2IDB6TTY0IDY0QzI4LjcgNjQgMCA5Mi43IDAgMTI4TDAgMzg0YzAgMzUuMyAyOC43IDY0IDY0IDY0bDM4NCAwYzM1LjMgMCA2NC0yOC43IDY0LTY0bDAtMjU2YzAtMzUuMy0yOC43LTY0LTY0LTY0TDY0IDY0ek04MCAzNDRjMCAxMy4zIDEwLjcgMjQgMjQgMjRsNDggMGMxMy4zIDAgMjQtMTAuNyAyNC0yNHMtMTAuNy0yNC0yNC0yNGwtNDggMGMtMTMuMyAwLTI0IDEwLjctMjQgMjR6bTE0NCAwYzAgMTMuMyAxMC43IDI0IDI0IDI0bDY0IDBjMTMuMyAwIDI0LTEwLjcgMjQtMjRzLTEwLjctMjQtMjQtMjRsLTY0IDBjLTEzLjMgMC0yNCAxMC43LTI0IDI0eiJdfSxFeGU9VlAsUHhlPXtwcmVmaXg6ImZhciIsaWNvbk5hbWU6ImhhbmQtc3BvY2siLGljb246WzUxMiw1MTIsWzEyODQwNl0sImYyNTkiLCJNMTM4LjMgODAuOGMtOS4yLTMzLjggMTAuNS02OC44IDQ0LjMtNzguNCAzNC05LjYgNjkuNCAxMC4yIDc5IDQ0LjJMMjkxLjkgMTUzLjcgMzA1LjEgODRjNi42LTM0LjcgNDAuMS01Ny41IDc0LjgtNTAuOSAzMS40IDYgNTMgMzMuOSA1MiA2NC45IDEwLTIuNiAyMC44LTIuOCAzMS41LS4xIDM0LjMgOC42IDU1LjEgNDMuMyA0Ni42IDc3LjZMNDU0LjcgMzk3LjJDNDM3LjggNDY0LjcgMzc3LjIgNTEyIDMwNy42IDUxMmwtMzMuNyAwYy01Ni45IDAtMTEyLjItMTktMTU3LjItNTMuOWwtOTItNzEuNmMtMjcuOS0yMS43LTMyLjktNjEuOS0xMS4yLTg5LjhzNjEuOS0zMi45IDg5LjgtMTEuMmwxNyAxMy4yLTUxLjgtMTMxLjJjLTEzLTMyLjkgMy4yLTcwLjEgMzYtODMgMTEuMS00LjQgMjIuNy01LjQgMzMuNy0zLjd6bTc3LjEtMjEuMmMtMi40LTguNS0xMS4yLTEzLjQtMTkuNy0xMXMtMTMuNCAxMS4yLTExIDE5LjdsNTQuOCAxODIuNGMzLjUgMTIuMy0zLjMgMjUuMi0xNS40IDI5LjNzLTI1LjMtMi0zMC0xMy45TDE0Mi45IDEzOC4xYy0zLjItOC4yLTEyLjUtMTIuMy0yMC44LTlzLTEyLjMgMTIuNS05IDIwLjhsNzMuMyAxODUuNmMxMiAzMC4zLTIzLjcgNTctNDkuNCAzN0w3My44IDMyMy40Yy03LTUuNC0xNy00LjItMjIuNSAyLjhzLTQuMiAxNyAyLjggMjIuNWw5MiA3MS42YzM2LjUgMjguNCA4MS40IDQzLjggMTI3LjcgNDMuOGwzMy43IDBjNDcuNSAwIDg5LTMyLjQgMTAwLjUtNzguNWw1NS40LTIyMS42YzIuMS04LjYtMy4xLTE3LjMtMTEuNi0xOS40cy0xNy4zIDMuMS0xOS40IDExLjZsLTI2IDEwNGMtMi45IDExLjctMTMuNCAxOS45LTI1LjUgMTkuOS0xNi41IDAtMjguOS0xNS0yNS44LTMxLjJMMzgzLjcgOTljMS43LTguNy00LTE3LjEtMTIuNy0xOC43UzM1NCA4NC4zIDM1Mi4zIDkzTDMyMC41IDI2MGMtMi4yIDExLjYtMTIuNCAyMC0yNC4yIDIwLTExIDAtMjAuNy03LjMtMjMuNy0xNy45TDIxNS40IDU5LjZ6Il19LEl4ZT17cHJlZml4OiJmYXIiLGljb25OYW1lOiJiZWxsLXNsYXNoIixpY29uOls1NzYsNTEyLFsxMjgyNzcsNjE5NDNdLCJmMWY2IiwiTTQxLTI0LjljLTkuNC05LjQtMjQuNi05LjQtMzMuOSAwUy0yLjMtLjMgNyA5LjFsNTI4IDUyOGM5LjQgOS40IDI0LjYgOS40IDMzLjkgMHM5LjQtMjQuNiAwLTMzLjlsLTg3LjgtODcuOGMxNy41LTMuMyAzMC44LTE4LjcgMzAuOC0zNy4xIDAtNi43LTEuOC0xMy4zLTUuMS0xOUw0ODUgMzIxLjdjLTE5LTMyLjYtMjktNjkuNi0yOS0xMDcuM2wwLTE0LjVjMC04NC42LTYyLjYtMTU0LjctMTQ0LTE2Ni4zbDAtOS43YzAtMTMuMy0xMC43LTI0LTI0LTI0cy0yNCAxMC43LTI0IDI0bDAgOS43Yy00Mi4yIDYtNzkuNCAyNy44LTEwNS40IDU5LjFMNDEtMjQuOXpNMTkyLjggMTI2LjlDMjE0LjcgOTguNCAyNDkuMiA4MCAyODggODAgMzU0LjMgODAgNDA4IDEzMy43IDQwOCAyMDBsMCAxNC41YzAgNDYuMiAxMi4zIDkxLjUgMzUuNSAxMzEuNGwxMi45IDIyLjEtMjIuNiAwLTI0MS4xLTI0MS4xek0xMzIuNSAzNDUuOWMxOS41LTMzLjQgMzEuMy03MC43IDM0LjYtMTA5bC00Ni43LTQ2LjdjLS4yIDMuMy0uMyA2LjYtLjMgOS45bDAgMTQuNWMwIDM3LjctMTAgNzQuNy0yOSAxMDcuM0w2OS4xIDM1OS4yYy0zLjQgNS44LTUuMSAxMi4zLTUuMSAxOSAwIDIwLjkgMTYuOSAzNy44IDM3LjggMzcuOGwyNDQuNCAwLTQ4LTQ4LTE3OC42IDAgMTIuOS0yMi4xek0yMjAuMSA0NjRjOS45IDI4IDM2LjYgNDggNjcuOSA0OHM1OC0yMCA2Ny45LTQ4bC0xMzUuOCAweiJdfSxOeGU9e3ByZWZpeDoiZmFyIixpY29uTmFtZToic3RhciIsaWNvbjpbNTc2LDUxMixbMTEwODgsNjE0NDZdLCJmMDA1IiwiTTI4OC4xLTMyYzkgMCAxNy4zIDUuMSAyMS40IDEzLjFMMzgzIDEyNS4zIDU0Mi45IDE1MC43YzguOSAxLjQgMTYuMyA3LjcgMTkuMSAxNi4zcy41IDE4LTUuOCAyNC40TDQ0MS43IDMwNS45IDQ2NyA0NjUuOGMxLjQgOC45LTIuMyAxNy45LTkuNiAyMy4ycy0xNyA2LjEtMjUgMkwyODguMSA0MTcuNiAxNDMuOCA0OTFjLTggNC4xLTE3LjcgMy4zLTI1LTJzLTExLTE0LjItOS42LTIzLjJMMTM0LjQgMzA1LjkgMjAgMTkxLjRjLTYuNC02LjQtOC42LTE1LjgtNS44LTI0LjRzMTAuMS0xNC45IDE5LjEtMTYuM2wxNTkuOS0yNS40IDczLjYtMTQ0LjJjNC4xLTggMTIuNC0xMy4xIDIxLjQtMTMuMXptMCA3Ni44TDIzMC4zIDE1OGMtMy41IDYuOC0xMCAxMS42LTE3LjYgMTIuOGwtMTI1LjUgMjAgODkuOCA4OS45YzUuNCA1LjQgNy45IDEzLjEgNi43IDIwLjdsLTE5LjggMTI1LjUgMTEzLjMtNTcuNmM2LjgtMy41IDE0LjktMy41IDIxLjggMGwxMTMuMyA1Ny42LTE5LjgtMTI1LjVjLTEuMi03LjYgMS4zLTE1LjMgNi43LTIwLjdsODkuOC04OS45LTEyNS41LTIwYy03LjYtMS4yLTE0LjEtNi0xNy42LTEyLjhMMjg4LjEgNDQuOHoiXX0sRnhlPXtwcmVmaXg6ImZhciIsaWNvbk5hbWU6ImZsYWciLGljb246WzQ0OCw1MTIsWzEyNzk4OCw2MTcyNV0sImYwMjQiLCJNNDggMjRDNDggMTAuNyAzNy4zIDAgMjQgMFMwIDEwLjcgMCAyNEwwIDQ4OGMwIDEzLjMgMTAuNyAyNCAyNCAyNHMyNC0xMC43IDI0LTI0bDAtMTAwIDgwLjMtMjAuMWM0MS4xLTEwLjMgODQuNi01LjUgMTIyLjUgMTMuNCA0NC4yIDIyLjEgOTUuNSAyNC44IDE0MS43IDcuNGwzNC43LTEzYzEyLjUtNC43IDIwLjgtMTYuNiAyMC44LTMwbDAtMjc5LjdjMC0yMy0yNC4yLTM4LTQ0LjgtMjcuN2wtOS42IDQuOGMtNDYuMyAyMy4yLTEwMC44IDIzLjItMTQ3LjEgMC0zNS4xLTE3LjYtNzUuNC0yMi0xMTMuNS0xMi41TDQ4IDUyIDQ4IDI0em0wIDc3LjVsOTYuNi0yNC4yYzI3LTYuNyA1NS41LTMuNiA4MC40IDguOCA1NC45IDI3LjQgMTE4LjcgMjkuNyAxNzUgNi44bDAgMjQxLjgtMjQuNCA5LjFjLTMzLjcgMTIuNi03MS4yIDEwLjctMTAzLjQtNS40LTQ4LjItMjQuMS0xMDMuMy0zMC4xLTE1NS42LTE3LjFsLTY4LjYgMTcuMiAwLTIzN3oiXX0sT3hlPXtwcmVmaXg6ImZhciIsaWNvbk5hbWU6ImxlbW9uIixpY29uOls0NDgsNTEyLFsxMjc4MTldLCJmMDk0IiwiTTM2OCA4MGMtMy4yIDAtNi4yIC40LTguOSAxLjMtMTkuMSA1LjUtNDYuMSAxMC43LTc0LjMgMy4zLTU3LjQtMTQuOS0xMjQuNiA3LjQtMTc0LjcgNTcuNVMzNy43IDI1OS40IDUyLjYgMzE2LjhjNy4zIDI4LjIgMi4yIDU1LjItMy4zIDc0LjMtLjggMi44LTEuMyA1LjgtMS4zIDguOSAwIDE3LjcgMTQuMyAzMiAzMiAzMiAzLjIgMCA2LjItLjQgOC45LTEuMyAxOS4xLTUuNSA0Ni4xLTEwLjcgNzQuMy0zLjMgNTcuNCAxNC45IDEyNC42LTcuNCAxNzQuNy01Ny41czcyLjQtMTE3LjMgNTcuNS0xNzQuN2MtNy4zLTI4LjItMi4yLTU1LjIgMy4zLTc0LjMgLjgtMi44IDEuMy01LjggMS4zLTguOSAwLTE3LjctMTQuMy0zMi0zMi0zMnptMC00OGM0NC4yIDAgODAgMzUuOCA4MCA4MCAwIDcuNy0xLjEgMTUuMi0zLjEgMjIuMy00LjYgMTUuOC03LjEgMzIuOS0zIDQ4LjkgMjAuMSA3Ny42LTEwLjkgMTYxLjUtNzAgMjIwLjdzLTE0My4xIDkwLjItMjIwLjcgNzBjLTE2LTQuMS0zMy0xLjYtNDguOSAzLTcuMSAyLTE0LjYgMy4xLTIyLjMgMy4xLTQ0LjIgMC04MC0zNS44LTgwLTgwIDAtNy43IDEuMS0xNS4yIDMuMS0yMi4zIDQuNi0xNS44IDcuMS0zMi45IDMtNDguOS0yMC4xLTc3LjYgMTAuOS0xNjEuNSA3MC0yMjAuN1MyMTkuMyAxOCAyOTYuOCAzOC4xYzE2IDQuMSAzMyAxLjYgNDguOS0zIDcuMS0yIDE0LjYtMy4xIDIyLjMtMy4xek0yNDYuNyAxNjdjLTUyIDE1LjItOTYuNSA1OS43LTExMS43IDExMS43LTMuNyAxMi43LTE3LjEgMjAtMjkuOCAxNi4zUzg1LjIgMjc4IDg5IDI2NS4zYzE5LjgtNjcuNyA3Ni42LTEyNC41IDE0NC4zLTE0NC4zIDEyLjctMy43IDI2LjEgMy42IDI5LjggMTYuM3MtMy42IDI2LjEtMTYuMyAyOS44eiJdfSxSeGU9e3ByZWZpeDoiZmFyIixpY29uTmFtZToid2luZG93LXJlc3RvcmUiLGljb246WzU3Niw1MTIsW10sImYyZDIiLCJNNTEyIDgwTDIyNCA4MGMtOC44IDAtMTYgNy4yLTE2IDE2bDAgMTYtNDggMCAwLTE2YzAtMzUuMyAyOC43LTY0IDY0LTY0bDI4OCAwYzM1LjMgMCA2NCAyOC43IDY0IDY0bDAgMTkyYzAgMzUuMy0yOC43IDY0LTY0IDY0bC00OCAwIDAtNDggNDggMGM4LjggMCAxNi03LjIgMTYtMTZsMC0xOTJjMC04LjgtNy4yLTE2LTE2LTE2ek0zNjggMjg4bC0zMjAgMCAwIDEyOGMwIDguOCA3LjIgMTYgMTYgMTZsMjg4IDBjOC44IDAgMTYtNy4yIDE2LTE2bDAtMTI4ek02NCAxNjBsMjg4IDBjMzUuMyAwIDY0IDI4LjcgNjQgNjRsMCAxOTJjMCAzNS4zLTI4LjcgNjQtNjQgNjRMNjQgNDgwYy0zNS4zIDAtNjQtMjguNy02NC02NEwwIDIyNGMwLTM1LjMgMjguNy02NCA2NC02NHoiXX0salA9e3ByZWZpeDoiZmFyIixpY29uTmFtZToiZmFjZS1ncmluLWhlYXJ0cyIsaWNvbjpbNTEyLDUxMixbMTI4NTI1LCJncmluLWhlYXJ0cyJdLCJmNTg0IiwiTTQ2NCAyNTZjMCAxMTQuOS05My4xIDIwOC0yMDggMjA4UzQ4IDM3MC45IDQ4IDI1NmMwLTMuNSAuMS03LjEgLjMtMTAuNi0xNC0xMy45LTI5LjctMzMuMS0zOS4zLTU2LjctNS44IDIxLjQtOC45IDQ0LTguOSA2Ny4zIDAgMTQxLjQgMTE0LjYgMjU2IDI1NiAyNTZTNTEyIDM5Ny40IDUxMiAyNTZjMC0yMy4zLTMuMS00NS45LTguOS02Ny4zLTkuNiAyMy43LTI1LjQgNDIuOC0zOS4zIDU2LjcgLjIgMy41IC4zIDcgLjMgMTAuNnpNMzY4IDU4LjljMTEuNy02IDI0LjUtOS42IDM3LjctMTAuNi00Mi4xLTMwLjQtOTMuOC00OC4zLTE0OS43LTQ4LjNTMTQ4LjQgMTcuOSAxMDYuMyA0OC4zYzEzLjIgMSAyNiA0LjYgMzcuNyAxMC42IDEzLjgtNy4xIDI5LjMtMTAuOSA0NS4xLTEwLjlsMi45IDBjOC45IDAgMTcuNiAxLjIgMjUuOCAzLjUgMTIuNC0yLjMgMjUuMi0zLjUgMzguMi0zLjVzMjUuOCAxLjIgMzguMiAzLjVjOC4yLTIuMyAxNi45LTMuNSAyNS44LTMuNWwyLjkgMGMxNS44IDAgMzEuMyAzLjggNDUuMSAxMC45em00LjIgMjQzLjRjLTM0LjggMTAuNi03NC4zIDE2LjYtMTE2LjMgMTYuNi00MS45IDAtODEuNC02LTExNi4xLTE2LjUtMTEuOC0zLjYtMjMuNyA2LjEtMTkuNiAxNy44IDE5LjggNTUuOSA3My4xIDk1LjkgMTM1LjggOTUuOSA2Mi43IDAgMTE2LTQwLjEgMTM1LjgtOTYgNC4xLTExLjYtNy44LTIxLjQtMTkuNi0xNy44ek0zMjIuOSA5NkwzMjAgOTZjLTI2LjUgMC00OCAyMS41LTQ4IDQ4IDAgNTMuNCA2Ni45IDk1LjcgODkgMTA4LjIgNC40IDIuNSA5LjYgMi41IDE0IDAgMjIuMS0xMi41IDg5LTU0LjggODktMTA4LjIgMC0yNi41LTIxLjUtNDgtNDgtNDhsLTIuOSAwYy0xMy41IDAtMjYuNSA1LjQtMzYgMTQuOWwtOS4xIDkuMS05LjEtOS4xYy05LjUtOS41LTIyLjUtMTQuOS0zNi0xNC45em0tMTg4IDE0LjljLTkuNS05LjUtMjIuNS0xNC45LTM2LTE0LjlMOTYgOTZjLTI2LjUgMC00OCAyMS41LTQ4IDQ4IDAgNTMuNCA2Ni45IDk1LjcgODkgMTA4LjIgNC40IDIuNSA5LjYgMi41IDE0IDAgMjIuMS0xMi41IDg5LTU0LjggODktMTA4LjIgMC0yNi41LTIxLjUtNDgtNDgtNDhsLTIuOSAwYy0xMy41IDAtMjYuNSA1LjQtMzYgMTQuOWwtOS4xIDkuMS05LjEtOS4xeiJdfSxCeGU9alAsVVA9e3ByZWZpeDoiZmFyIixpY29uTmFtZToiZmFjZS1raXNzLWJlYW0iLGljb246WzUxMiw1MTIsWzEyODUzNywia2lzcy1iZWFtIl0sImY1OTciLCJNNDY0IDI1NmEyMDggMjA4IDAgMSAwIC00MTYgMCAyMDggMjA4IDAgMSAwIDQxNiAwek0wIDI1NmEyNTYgMjU2IDAgMSAxIDUxMiAwIDI1NiAyNTYgMCAxIDEgLTUxMiAwem0yNDAgMTZsMzIgMGMyNi41IDAgNDggMjEuNSA0OCA0OCAwIDEyLjMtNC42IDIzLjUtMTIuMiAzMiA3LjYgOC41IDEyLjIgMTkuNyAxMi4yIDMyIDAgMjYuNS0yMS41IDQ4LTQ4IDQ4bC0zMiAwYy04LjggMC0xNi03LjItMTYtMTZzNy4yLTE2IDE2LTE2bDE2IDBjOC44IDAgMTYtNy4yIDE2LTE2cy03LjItMTYtMTYtMTZsLTE2IDBjLTguOCAwLTE2LTcuMi0xNi0xNnM3LjItMTYgMTYtMTZsMTYgMGM4LjggMCAxNi03LjIgMTYtMTZzLTcuMi0xNi0xNi0xNmwtMTYgMGMtOC44IDAtMTYtNy4yLTE2LTE2czcuMi0xNiAxNi0xNnptLTY0LTkyYy0xNS41IDAtMjggMTIuNS0yOCAyOGwwIDhjMCAxMS05IDIwLTIwIDIwcy0yMC05LTIwLTIwbDAtOGMwLTM3LjYgMzAuNC02OCA2OC02OHM2OCAzMC40IDY4IDY4bDAgOGMwIDExLTkgMjAtMjAgMjBzLTIwLTktMjAtMjBsMC04YzAtMTUuNS0xMi41LTI4LTI4LTI4em0xMzIgMjhsMCA4YzAgMTEtOSAyMC0yMCAyMHMtMjAtOS0yMC0yMGwwLThjMC0zNy42IDMwLjQtNjggNjgtNjhzNjggMzAuNCA2OCA2OGwwIDhjMCAxMS05IDIwLTIwIDIwcy0yMC05LTIwLTIwbDAtOGMwLTE1LjUtMTIuNS0yOC0yOC0yOHMtMjggMTIuNS0yOCAyOHoiXX0sSHhlPVVQLHF4ZT17cHJlZml4OiJmYXIiLGljb25OYW1lOiJmaWxlLXBkZiIsaWNvbjpbNTc2LDUxMixbXSwiZjFjMSIsIk0yMDggNDhMOTYgNDhjLTguOCAwLTE2IDcuMi0xNiAxNmwwIDM4NGMwIDguOCA3LjIgMTYgMTYgMTZsODAgMCAwIDQ4LTgwIDBjLTM1LjMgMC02NC0yOC43LTY0LTY0TDMyIDY0QzMyIDI4LjcgNjAuNyAwIDk2IDBMMjI5LjUgMGMxNyAwIDMzLjMgNi43IDQ1LjMgMTguN0wzOTcuMyAxNDEuM2MxMiAxMiAxOC43IDI4LjMgMTguNyA0NS4zbDAgMTQ5LjUtNDggMCAwLTEyOC04OCAwYy0zOS44IDAtNzItMzIuMi03Mi03MmwwLTg4ek0zNDguMSAxNjBMMjU2IDY3LjkgMjU2IDEzNmMwIDEzLjMgMTAuNyAyNCAyNCAyNGw2OC4xIDB6TTI0MCAzODBsMzIgMGMzMy4xIDAgNjAgMjYuOSA2MCA2MHMtMjYuOSA2MC02MCA2MGwtMTIgMCAwIDI4YzAgMTEtOSAyMC0yMCAyMHMtMjAtOS0yMC0yMGwwLTEyOGMwLTExIDktMjAgMjAtMjB6bTMyIDgwYzExIDAgMjAtOSAyMC0yMHMtOS0yMC0yMC0yMGwtMTIgMCAwIDQwIDEyIDB6bTk2LTgwbDMyIDBjMjguNyAwIDUyIDIzLjMgNTIgNTJsMCA2NGMwIDI4LjctMjMuMyA1Mi01MiA1MmwtMzIgMGMtMTEgMC0yMC05LTIwLTIwbDAtMTI4YzAtMTEgOS0yMCAyMC0yMHptMzIgMTI4YzYuNiAwIDEyLTUuNCAxMi0xMmwwLTY0YzAtNi42LTUuNC0xMi0xMi0xMmwtMTIgMCAwIDg4IDEyIDB6bTc2LTEwOGMwLTExIDktMjAgMjAtMjBsNDggMGMxMSAwIDIwIDkgMjAgMjBzLTkgMjAtMjAgMjBsLTI4IDAgMCAyNCAyOCAwYzExIDAgMjAgOSAyMCAyMHMtOSAyMC0yMCAyMGwtMjggMCAwIDQ0YzAgMTEtOSAyMC0yMCAyMHMtMjAtOS0yMC0yMGwwLTEyOHoiXX0sV1A9e3ByZWZpeDoiZmFyIixpY29uTmFtZToiZmFjZS1ncmluLXdpZGUiLGljb246WzUxMiw1MTIsWzEyODUxNSwiZ3Jpbi1hbHQiXSwiZjU4MSIsIk00NjQgMjU2YTIwOCAyMDggMCAxIDAgLTQxNiAwIDIwOCAyMDggMCAxIDAgNDE2IDB6TTAgMjU2YTI1NiAyNTYgMCAxIDEgNTEyIDAgMjU2IDI1NiAwIDEgMSAtNTEyIDB6bTM3Mi4yIDQ2LjNjMTEuOC0zLjYgMjMuNyA2LjEgMTkuNiAxNy44LTE5LjggNTUuOS03My4xIDk2LTEzNS44IDk2LTYyLjcgMC0xMTYtNDAtMTM1LjgtOTUuOS00LjEtMTEuNiA3LjgtMjEuNCAxOS42LTE3LjggMzQuNyAxMC42IDc0LjIgMTYuNSAxMTYuMSAxNi41IDQyIDAgODEuNS02IDExNi4zLTE2LjZ6TTIyNCAxOTJjMCAzNS4zLTE0LjMgNjQtMzIgNjRzLTMyLTI4LjctMzItNjQgMTQuMy02NCAzMi02NCAzMiAyOC43IDMyIDY0em05NiA2NGMtMTcuNyAwLTMyLTI4LjctMzItNjRzMTQuMy02NCAzMi02NCAzMiAyOC43IDMyIDY0LTE0LjMgNjQtMzIgNjR6Il19LFZ4ZT1XUCxHUD17cHJlZml4OiJmYXIiLGljb25OYW1lOiJmYWNlLWxhdWdoLXNxdWludCIsaWNvbjpbNTEyLDUxMixbImxhdWdoLXNxdWludCJdLCJmNTliIiwiTTQ2NCAyNTZhMjA4IDIwOCAwIDEgMCAtNDE2IDAgMjA4IDIwOCAwIDEgMCA0MTYgMHpNMCAyNTZhMjU2IDI1NiAwIDEgMSA1MTIgMCAyNTYgMjU2IDAgMSAxIC01MTIgMHptMTI1LjIgNzYuNGMtNi41LTE0IDUtMjguNCAyMC40LTI4LjRsMjIwLjggMGMxNS40IDAgMjYuOCAxNC40IDIwLjQgMjguNC0yMi44IDQ5LjQtNzIuOCA4My42LTEzMC44IDgzLjZzLTEwNy45LTM0LjItMTMwLjgtODMuNnptLTIuNi0xNzMuMmM0LjUtNi44IDEzLjMtOS4yIDIwLjYtNS41bDc5LjYgNDBjNS40IDIuNyA4LjggOC4yIDguOCAxNC4zcy0zLjQgMTEuNi04LjggMTQuM2wtNzkuNiA0MGMtNy4zIDMuNi0xNi4xIDEuMy0yMC42LTUuNXMtMy4xLTE1LjkgMy4xLTIxLjFMMTU5IDIwOCAxMjUuOCAxODAuM2MtNi4yLTUuMi03LjYtMTQuMy0zLjEtMjEuMXptMjYzLjYgMjEuMUwzNTMgMjA4IDM4Ni4yIDIzNS43YzYuMiA1LjIgNy42IDE0LjMgMy4xIDIxLjFzLTEzLjMgOS4yLTIwLjYgNS41bC03OS42LTQwYy01LjQtMi43LTguOC04LjItOC44LTE0LjNzMy40LTExLjYgOC44LTE0LjNsNzkuNi00MGM3LjMtMy42IDE2LjEtMS4zIDIwLjYgNS41czMuMSAxNS45LTMuMSAyMS4xeiJdfSxqeGU9R1AsWVA9e3ByZWZpeDoiZmFyIixpY29uTmFtZToiZmFjZS1raXNzLXdpbmstaGVhcnQiLGljb246WzY0MCw1MTIsWzEyODUzNiwia2lzcy13aW5rLWhlYXJ0Il0sImY1OTgiLCJNMzg2IDQzOS41Yy0yOS4yIDE1LjYtNjIuNSAyNC41LTk4IDI0LjUtMTE0LjkgMC0yMDgtOTMuMS0yMDgtMjA4UzE3My4yIDQ4IDI4OCA0OGMxMTMuMiAwIDIwNS4yIDkwLjQgMjA3LjkgMjAyLjkgMTQuMyAxLjUgMjguNiA2IDQxLjkgMTMuNyAyIDEuMiA0IDIuNCA1LjkgMy43IC4yLTQuMSAuMy04LjIgLjMtMTIuMyAwLTE0MS40LTExNC42LTI1Ni0yNTYtMjU2UzMyIDExNC42IDMyIDI1NiAxNDYuNiA1MTIgMjg4IDUxMmM0MS40IDAgODAuNS05LjggMTE1LjEtMjcuMy01LjgtMTIuOS0xMi0yOC41LTE3LjItNDUuMnpNMjU2IDI4OGMwIDguOCA3LjIgMTYgMTYgMTZsMTYgMGM4LjggMCAxNiA3LjIgMTYgMTZzLTcuMiAxNi0xNiAxNmwtMTYgMGMtOC44IDAtMTYgNy4yLTE2IDE2czcuMiAxNiAxNiAxNmwxNiAwYzguOCAwIDE2IDcuMiAxNiAxNnMtNy4yIDE2LTE2IDE2bC0xNiAwYy04LjggMC0xNiA3LjItMTYgMTZzNy4yIDE2IDE2IDE2bDMyIDBjMjYuNSAwIDQ4LTIxLjUgNDgtNDggMC0xMi4zLTQuNi0yMy41LTEyLjItMzIgNy42LTguNSAxMi4yLTE5LjcgMTIuMi0zMiAwLTI2LjUtMjEuNS00OC00OC00OGwtMzIgMGMtOC44IDAtMTYgNy4yLTE2IDE2em0tNDgtNDhhMzIgMzIgMCAxIDAgMC02NCAzMiAzMiAwIDEgMCAwIDY0em0xNTItNDRsMTYgMGMxMSAwIDIwIDkgMjAgMjBzOSAyMCAyMCAyMCAyMC05IDIwLTIwYzAtMzMuMS0yNi45LTYwLTYwLTYwbC0xNiAwYy0zMy4xIDAtNjAgMjYuOS02MCA2MCAwIDExIDkgMjAgMjAgMjBzMjAtOSAyMC0yMCA5LTIwIDIwLTIwek01NDIuOCAzNTBjLTIuMi0xOC4zLTEyLjktMzQuNi0yOC45LTQzLjgtMjguMS0xNi4yLTYzLjktNi42LTgwLjEgMjEuNWwtMi43IDQuNmMtMjQuNSA0Mi41IDcuOSAxMTcuOSAyNC40IDE1MC44IDUuMSAxMC4xIDE1LjUgMTYuMSAyNi44IDE1LjUgMzYuNy0yLjIgMTE4LjItMTEuNyAxNDIuOC01NC4ybDIuNy00LjZjMTYuMi0yOC4xIDYuNi02My45LTIxLjUtODAuMS0xNi05LjItMzUuNC0xMC40LTUyLjQtMy4xbC05LjggNC4yLTEuMy0xMC42eiJdfSxVeGU9WVAsS2Y9e3ByZWZpeDoiZmFyIixpY29uTmFtZToiY29weSIsaWNvbjpbNDQ4LDUxMixbXSwiZjBjNSIsIk0zODQgMzM2bC0xOTIgMGMtOC44IDAtMTYtNy4yLTE2LTE2bDAtMjU2YzAtOC44IDcuMi0xNiAxNi0xNmwxMzMuNSAwYzQuMiAwIDguMyAxLjcgMTEuMyA0LjdsNTguNSA1OC41YzMgMyA0LjcgNy4xIDQuNyAxMS4zTDQwMCAzMjBjMCA4LjgtNy4yIDE2LTE2IDE2ek0xOTIgMzg0bDE5MiAwYzM1LjMgMCA2NC0yOC43IDY0LTY0bDAtMTk3LjVjMC0xNy02LjctMzMuMy0xOC43LTQ1LjNMMzcwLjcgMTguN0MzNTguNyA2LjcgMzQyLjUgMCAzMjUuNSAwTDE5MiAwYy0zNS4zIDAtNjQgMjguNy02NCA2NGwwIDI1NmMwIDM1LjMgMjguNyA2NCA2NCA2NHpNNjQgMTI4Yy0zNS4zIDAtNjQgMjguNy02NCA2NEwwIDQ0OGMwIDM1LjMgMjguNyA2NCA2NCA2NGwxOTIgMGMzNS4zIDAgNjQtMjguNyA2NC02NGwwLTE2LTQ4IDAgMCAxNmMwIDguOC03LjIgMTYtMTYgMTZMNjQgNDY0Yy04LjggMC0xNi03LjItMTYtMTZsMC0yNTZjMC04LjggNy4yLTE2IDE2LTE2bDE2IDAgMC00OC0xNiAweiJdfSxXeGU9e3ByZWZpeDoiZmFyIixpY29uTmFtZToiY2hlc3Mta2luZyIsaWNvbjpbNDQ4LDUxMixbOTgxOF0sImY0M2YiLCJNMjI0LTMyYzEzLjMgMCAyNCAxMC43IDI0IDI0bDAgNDAgNDggMGMxMy4zIDAgMjQgMTAuNyAyNCAyNHMtMTAuNyAyNC0yNCAyNGwtNDggMCAwIDgwIDE2MS44IDBjMjEuMSAwIDM4LjIgMTcuMSAzOC4yIDM4LjIgMCA2LjQtMS42IDEyLjctNC43IDE4LjNMMzU3LjIgMzc0LjUgNDA1LjYgNDM1YzYuNyA4LjQgMTAuNCAxOC44IDEwLjQgMjkuNiAwIDI2LjItMjEuMiA0Ny40LTQ3LjQgNDcuNEw3OS40IDUxMmMtMjYuMiAwLTQ3LjQtMjEuMi00Ny40LTQ3LjQgMC0xMC44IDMuNy0yMS4yIDEwLjQtMjkuNkw5MC44IDM3NC41IDQuNyAyMTYuNkMxLjYgMjEwLjkgMCAyMDQuNiAwIDE5OC4yIDAgMTc3LjEgMTcuMSAxNjAgMzguMiAxNjBsMTYxLjggMCAwLTgwLTQ4IDBjLTEzLjMgMC0yNC0xMC43LTI0LTI0czEwLjctMjQgMjQtMjRsNDggMCAwLTQwYzAtMTMuMyAxMC43LTI0IDI0LTI0ek0xMzEuOCA0MDBsLTMuNiA0LjQtNDcuNiA1OS42IDI4Ni42IDAtNDcuNi01OS42LTMuNi00LjQtMTg0LjMgMHptMS4xLTQ4LjVsLjMgLjUgMTgxLjYgMCAuMy0uNSA3OC4zLTE0My41LTMzOC43IDAgNzguMyAxNDMuNXoiXX0sWlA9e3ByZWZpeDoiZmFyIixpY29uTmFtZToic3F1YXJlLXBsdXMiLGljb246WzQ0OCw1MTIsWzYxODQ2LCJwbHVzLXNxdWFyZSJdLCJmMGZlIiwiTTY0IDgwYy04LjggMC0xNiA3LjItMTYgMTZsMCAzMjBjMCA4LjggNy4yIDE2IDE2IDE2bDMyMCAwYzguOCAwIDE2LTcuMiAxNi0xNmwwLTMyMGMwLTguOC03LjItMTYtMTYtMTZMNjQgODB6TTAgOTZDMCA2MC43IDI4LjcgMzIgNjQgMzJsMzIwIDBjMzUuMyAwIDY0IDI4LjcgNjQgNjRsMCAzMjBjMCAzNS4zLTI4LjcgNjQtNjQgNjRMNjQgNDgwYy0zNS4zIDAtNjQtMjguNy02NC02NEwwIDk2ek0yMDAgMzQ0bDAtNjQtNjQgMGMtMTMuMyAwLTI0LTEwLjctMjQtMjRzMTAuNy0yNCAyNC0yNGw2NCAwIDAtNjRjMC0xMy4zIDEwLjctMjQgMjQtMjRzMjQgMTAuNyAyNCAyNGwwIDY0IDY0IDBjMTMuMyAwIDI0IDEwLjcgMjQgMjRzLTEwLjcgMjQtMjQgMjRsLTY0IDAgMCA2NGMwIDEzLjMtMTAuNyAyNC0yNCAyNHMtMjQtMTAuNy0yNC0yNHoiXX0sR3hlPVpQLFl4ZT17cHJlZml4OiJmYXIiLGljb25OYW1lOiJmaWxlLWNvZGUiLGljb246WzM4NCw1MTIsW10sImYxYzkiLCJNNjQgNDhsMTEyIDAgMCA4OGMwIDM5LjggMzIuMiA3MiA3MiA3Mmw4OCAwIDAgMjQwYzAgOC44LTcuMiAxNi0xNiAxNkw2NCA0NjRjLTguOCAwLTE2LTcuMi0xNi0xNkw0OCA2NGMwLTguOCA3LjItMTYgMTYtMTZ6TTIyNCA2Ny45bDkyLjEgOTIuMS02OC4xIDBjLTEzLjMgMC0yNC0xMC43LTI0LTI0bDAtNjguMXpNNjQgMEMyOC43IDAgMCAyOC43IDAgNjRMMCA0NDhjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMjU2IDBjMzUuMyAwIDY0LTI4LjcgNjQtNjRsMC0yNjEuNWMwLTE3LTYuNy0zMy4zLTE4LjctNDUuM0wyNDIuNyAxOC43QzIzMC43IDYuNyAyMTQuNSAwIDE5Ny41IDBMNjQgMHpNMTcwLjIgMjk1LjZjOC42LTEwLjEgNy41LTI1LjItMi42LTMzLjhzLTI1LjItNy41LTMzLjggMi42bC00OCA1NmMtNy43IDktNy43IDIyLjIgMCAzMS4ybDQ4IDU2YzguNiAxMC4xIDIzLjggMTEuMiAzMy44IDIuNnMxMS4yLTIzLjggMi42LTMzLjhsLTM0LjYtNDAuNCAzNC42LTQwLjR6bTgwLTMxLjJjLTguNi0xMC4xLTIzLjgtMTEuMi0zMy44LTIuNnMtMTEuMiAyMy44LTIuNiAzMy44bDM0LjYgNDAuNC0zNC42IDQwLjRjLTguNiAxMC4xLTcuNSAyNS4yIDIuNiAzMy44czI1LjIgNy41IDMzLjgtMi42bDQ4LTU2YzcuNy05IDcuNy0yMi4yIDAtMzEuMmwtNDgtNTZ6Il19LFhQPXtwcmVmaXg6ImZhciIsaWNvbk5hbWU6ImZhY2UtZ3Jpbi13aW5rIixpY29uOls1MTIsNTEyLFsiZ3Jpbi13aW5rIl0sImY1OGMiLCJNNDY0IDI1NmEyMDggMjA4IDAgMSAwIC00MTYgMCAyMDggMjA4IDAgMSAwIDQxNiAwek0wIDI1NmEyNTYgMjU2IDAgMSAxIDUxMiAwIDI1NiAyNTYgMCAxIDEgLTUxMiAwem0zNzIuMiA0Ni4zYzExLjgtMy42IDIzLjcgNi4xIDE5LjYgMTcuOC0xOS44IDU1LjktNzMuMSA5Ni0xMzUuOCA5Ni02Mi43IDAtMTE2LTQwLTEzNS44LTk1LjktNC4xLTExLjYgNy44LTIxLjQgMTkuNi0xNy44IDM0LjcgMTAuNiA3NC4yIDE2LjUgMTE2LjEgMTYuNSA0MiAwIDgxLjUtNiAxMTYuMy0xNi42ek0xNDQgMjA4YTMyIDMyIDAgMSAxIDY0IDAgMzIgMzIgMCAxIDEgLTY0IDB6bTE2NCA4YzAgMTEtOSAyMC0yMCAyMHMtMjAtOS0yMC0yMGMwLTMzLjEgMjYuOS02MCA2MC02MGwxNiAwYzMzLjEgMCA2MCAyNi45IDYwIDYwIDAgMTEtOSAyMC0yMCAyMHMtMjAtOS0yMC0yMC05LTIwLTIwLTIwbC0xNiAwYy0xMSAwLTIwIDktMjAgMjB6Il19LFp4ZT1YUCxLUD17cHJlZml4OiJmYXIiLGljb25OYW1lOiJtb25leS1iaWxsLTEiLGljb246WzUxMiw1MTIsWyJtb25leS1iaWxsLWFsdCJdLCJmM2QxIiwiTTExMiAxMTJjMCAzNS4zLTI4LjcgNjQtNjQgNjRsMCAxNjBjMzUuMyAwIDY0IDI4LjcgNjQgNjRsMjg4IDBjMC0zNS4zIDI4LjctNjQgNjQtNjRsMC0xNjBjLTM1LjMgMC02NC0yOC43LTY0LTY0bC0yODggMHpNMCAxMjhDMCA5Mi43IDI4LjcgNjQgNjQgNjRsMzg0IDBjMzUuMyAwIDY0IDI4LjcgNjQgNjRsMCAyNTZjMCAzNS4zLTI4LjcgNjQtNjQgNjRMNjQgNDQ4Yy0zNS4zIDAtNjQtMjguNy02NC02NEwwIDEyOHptMjU2IDE2YTExMiAxMTIgMCAxIDEgMCAyMjQgMTEyIDExMiAwIDEgMSAwLTIyNHptLTE2IDQ0Yy0xMSAwLTIwIDktMjAgMjAgMCA5LjcgNi45IDE3LjcgMTYgMTkuNmwwIDQ4LjQtNCAwYy0xMSAwLTIwIDktMjAgMjBzOSAyMCAyMCAyMGw0OCAwYzExIDAgMjAtOSAyMC0yMHMtOS0yMC0yMC0yMGwtNCAwIDAtNjhjMC0xMS05LTIwLTIwLTIwbC0xNiAweiJdfSxYeGU9S1AsS3hlPXtwcmVmaXg6ImZhciIsaWNvbk5hbWU6ImV5ZS1zbGFzaCIsaWNvbjpbNTc2LDUxMixbXSwiZjA3MCIsIk00MS0yNC45Yy05LjQtOS40LTI0LjYtOS40LTMzLjkgMFMtMi4zLS4zIDcgOS4xbDUyOCA1MjhjOS40IDkuNCAyNC42IDkuNCAzMy45IDBzOS40LTI0LjYgMC0zMy45bC05Ni40LTk2LjRjMi43LTIuNCA1LjQtNC44IDgtNy4yIDQ2LjgtNDMuNSA3OC4xLTk1LjQgOTMtMTMxLjEgMy4zLTcuOSAzLjMtMTYuNyAwLTI0LjYtMTQuOS0zNS43LTQ2LjItODcuNy05My0xMzEuMS00Ny4xLTQzLjctMTExLjgtODAuNi0xOTIuNi04MC42LTU2LjggMC0xMDUuNiAxOC4yLTE0NiA0NC4yTDQxLTI0Ljl6TTE3Ni45IDExMS4xYzMyLjEtMTguOSA2OS4yLTMxLjEgMTExLjEtMzEuMSA2NS4yIDAgMTE4LjggMjkuNiAxNTkuOSA2Ny43IDM4LjUgMzUuNyA2NS4xIDc4LjMgNzguNiAxMDguMy0xMy42IDMwLTQwLjIgNzIuNS03OC42IDEwOC4zLTMuMSAyLjgtNi4yIDUuNi05LjQgOC40TDM5My44IDMyOGMxNC0yMC41IDIyLjItNDUuMyAyMi4yLTcyIDAtNzAuNy01Ny4zLTEyOC0xMjgtMTI4LTI2LjcgMC01MS41IDguMi03MiAyMi4ybC0zOS4xLTM5LjF6bTE4MiAxODJsLTEwOC0xMDhjMTEuMS01LjggMjMuNy05LjEgMzcuMS05LjEgNDQuMiAwIDgwIDM1LjggODAgODAgMCAxMy40LTMuMyAyNi05LjEgMzcuMXpNMTAzLjQgMTczLjJsLTM0LTM0Yy0zMi42IDM2LjgtNTUgNzUuOC02Ni45IDEwNC41LTMuMyA3LjktMy4zIDE2LjcgMCAyNC42IDE0LjkgMzUuNyA0Ni4yIDg3LjcgOTMgMTMxLjEgNDcuMSA0My43IDExMS44IDgwLjYgMTkyLjYgODAuNiAzNy4zIDAgNzEuMi03LjkgMTAxLjUtMjAuNkwzNTIuMiA0MjJjLTIwIDYuNC00MS40IDEwLTY0LjIgMTAtNjUuMiAwLTExOC44LTI5LjYtMTU5LjktNjcuNy0zOC41LTM1LjctNjUuMS03OC4zLTc4LjYtMTA4LjMgMTAuNC0yMy4xIDI4LjYtNTMuNiA1NC04Mi44eiJdfSxReGU9e3ByZWZpeDoiZmFyIixpY29uTmFtZToiZmlsZS13b3JkIixpY29uOlszODQsNTEyLFtdLCJmMWMyIiwiTTY0IDQ4bDExMiAwIDAgODhjMCAzOS44IDMyLjIgNzIgNzIgNzJsODggMCAwIDI0MGMwIDguOC03LjIgMTYtMTYgMTZMNjQgNDY0Yy04LjggMC0xNi03LjItMTYtMTZMNDggNjRjMC04LjggNy4yLTE2IDE2LTE2ek0yMjQgNjcuOWw5Mi4xIDkyLjEtNjguMSAwYy0xMy4zIDAtMjQtMTAuNy0yNC0yNGwwLTY4LjF6TTY0IDBDMjguNyAwIDAgMjguNyAwIDY0TDAgNDQ4YzAgMzUuMyAyOC43IDY0IDY0IDY0bDI1NiAwYzM1LjMgMCA2NC0yOC43IDY0LTY0bDAtMjYxLjVjMC0xNy02LjctMzMuMy0xOC43LTQ1LjNMMjQyLjcgMTguN0MyMzAuNyA2LjcgMjE0LjUgMCAxOTcuNSAwTDY0IDB6bTcxLjMgMjc0LjJjLTMuMi0xMi45LTE2LjItMjAuNy0yOS4xLTE3LjVTODUuNSAyNzMgODguNyAyODUuOGwzMiAxMjhjMi41IDEwLjIgMTEuNCAxNy41IDIxLjkgMTguMXMyMC4xLTUuNyAyMy44LTE1LjVsMjUuNS02OC4xIDI1LjUgNjguMWMzLjcgOS44IDEzLjMgMTYuMSAyMy44IDE1LjVzMTkuNC03LjkgMjEuOS0xOC4xbDMyLTEyOGMzLjItMTIuOS00LjYtMjUuOS0xNy41LTI5LjFzLTI1LjkgNC42LTI5LjEgMTcuNWwtMTMuMyA1My4yLTIwLjktNTUuOEMyMTEgMjYyLjIgMjAyIDI1NiAxOTIgMjU2cy0xOSA2LjItMjIuNSAxNS42bC0yMC45IDU1LjgtMTMuMy01My4yeiJdfSxRUD17cHJlZml4OiJmYXIiLGljb25OYW1lOiJmYWNlLWFuZ3J5IixpY29uOls1MTIsNTEyLFsxMjg1NDQsImFuZ3J5Il0sImY1NTYiLCJNMjU2IDQ4YTIwOCAyMDggMCAxIDEgMCA0MTYgMjA4IDIwOCAwIDEgMSAwLTQxNnptMCA0NjRhMjU2IDI1NiAwIDEgMCAwLTUxMiAyNTYgMjU2IDAgMSAwIDAgNTEyem0wLTE0NGMyNC4xIDAgNDUuNCAxMS44IDU4LjUgMzAgNy43IDEwLjggMjIuNyAxMy4yIDMzLjUgNS41czEzLjItMjIuNyA1LjUtMzMuNWMtMjEuNy0zMC4yLTU3LjMtNTAtOTcuNS01MHMtNzUuNyAxOS44LTk3LjUgNTBjLTcuNyAxMC44LTUuMyAyNS44IDUuNSAzMy41czI1LjggNS4zIDMzLjUtNS41YzEzLjEtMTguMiAzNC40LTMwIDU4LjUtMzB6bS04MC05NmMxNy43IDAgMzItMTQuMyAzMi0zMmwwLS4zIDkuNyAzLjJjMTAuNSAzLjUgMjEuOC0yLjIgMjUuMy0xMi42cy0yLjItMjEuOC0xMi42LTI1LjNsLTk2LTMyYy0xMC41LTMuNS0yMS44IDIuMi0yNS4zIDEyLjZzMi4yIDIxLjggMTIuNiAyNS4zbDI4LjkgOS42Yy00LjEgNS40LTYuNiAxMi4xLTYuNiAxOS40IDAgMTcuNyAxNC4zIDMyIDMyIDMyem0xOTItMzJjMC03LjMtMi40LTE0LTYuNi0xOS40bDI4LjktOS42YzEwLjUtMy41IDE2LjEtMTQuOCAxMi42LTI1LjNzLTE0LjgtMTYuMS0yNS4zLTEyLjZsLTk2IDMyYy0xMC41IDMuNS0xNi4xIDE0LjgtMTIuNiAyNS4zczE0LjggMTYuMSAyNS4zIDEyLjZsOS43LTMuMiAwIC4zYzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJ6Il19LEp4ZT1RUCxld2U9e3ByZWZpeDoiZmFyIixpY29uTmFtZToiY2hlc3Mta25pZ2h0IixpY29uOls0NDgsNTEyLFs5ODIyXSwiZjQ0MSIsIk0yMzItMzJjMTEwLjUgMCAyMDAgODkuNSAyMDAgMjAwbDAgMTI3LjdjMCAxOC45LTYuMSAzNy4xLTE3LjIgNTIuMmwtNS4xIDYuMi0zNi4zIDQwLjcgMzIuMSA0MC4yYzYuNyA4LjQgMTAuNCAxOC44IDEwLjQgMjkuNmwtLjIgNC44Yy0yLjQgMjMuOS0yMi42IDQyLjUtNDcuMSA0Mi41bC0yODkuMiAwLTQuOC0uMmMtMjMuOS0yLjQtNDIuNS0yMi42LTQyLjUtNDcuMSAwLTEwLjggMy43LTIxLjIgMTAuNC0yOS42bDM3LjYtNDcgMC0yNC4zYzAtMjQuMyAxMC4xLTQ3LjYgMjcuOC02NC4ybDYzLjUtNTkuNS0xNy40IDAtLjIgLjJjLTIwLjMgMjAuMy00OS42IDI4LjItNzcuMSAyMS4xbC01LjUtMS42Yy0zMC45LTEwLjMtNTIuMy0zOC01NC45LTcwLjFsLS4yLTYuNCAwLTEuNGMwLTE5LjcgNy4xLTM4LjggMTkuOS01My44bDc2LjEtODguOCAwLTQ3LjEgLjEtMi41QzExMy40LTIyLjYgMTIzLjYtMzIgMTM2LTMybDk2IDB6TTgwLjcgNDY0bDI4Ni42IDAtMzguNC00OC0yMDkuOSAwLTM4LjQgNDh6TTE2MCA0OGMwIDUuNy0yLjEgMTEuMy01LjggMTUuNkw3Mi4zIDE1OS4xQzY3IDE2NS40IDY0IDE3My40IDY0IDE4MS43bDAgMS40IC40IDUuMmMxLjkgMTEuOSAxMC4zIDIxLjkgMjEuOSAyNS44bDQuNSAxLjFjMTAuNSAxLjkgMjEuMy0xLjQgMjktOWw3LjItNy4yIDMuNy0zYzMuOS0yLjYgOC41LTQgMTMuMy00bDg4IDBjOS44IDAgMTguNyA2IDIyLjMgMTUuMnMxLjMgMTkuNi01LjkgMjYuM2wtMTA3LjggMTAxYy04LjEgNy42LTEyLjcgMTguMS0xMi43IDI5LjJsMCA0LjMgMjA1LjIgMCA0MC43LTQ1LjggMi4zLTIuOGM1LjEtNi44IDcuOC0xNS4yIDcuOC0yMy43TDM4NCAxNjhjMC04My45LTY4LjEtMTUyLTE1Mi0xNTJsLTcyIDAgMCAzMnptMzIgNzJhMjQgMjQgMCAxIDEgMC00OCAyNCAyNCAwIDEgMSAwIDQ4eiJdfSxKUD17cHJlZml4OiJmYXIiLGljb25OYW1lOiJmYWNlLWdyaW4tYmVhbSIsaWNvbjpbNTEyLDUxMixbMTI4NTE2LCJncmluLWJlYW0iXSwiZjU4MiIsIk00NjQgMjU2YTIwOCAyMDggMCAxIDAgLTQxNiAwIDIwOCAyMDggMCAxIDAgNDE2IDB6TTAgMjU2YTI1NiAyNTYgMCAxIDEgNTEyIDAgMjU2IDI1NiAwIDEgMSAtNTEyIDB6bTM3Mi4yIDQ2LjNjMTEuOC0zLjYgMjMuNyA2LjEgMTkuNiAxNy44LTE5LjggNTUuOS03My4xIDk2LTEzNS44IDk2LTYyLjcgMC0xMTYtNDAtMTM1LjgtOTUuOS00LjEtMTEuNiA3LjgtMjEuNCAxOS42LTE3LjggMzQuNyAxMC42IDc0LjIgMTYuNSAxMTYuMSAxNi41IDQyIDAgODEuNS02IDExNi4zLTE2LjZ6TTE3NiAxODBjLTE1LjUgMC0yOCAxMi41LTI4IDI4bDAgOGMwIDExLTkgMjAtMjAgMjBzLTIwLTktMjAtMjBsMC04YzAtMzcuNiAzMC40LTY4IDY4LTY4czY4IDMwLjQgNjggNjhsMCA4YzAgMTEtOSAyMC0yMCAyMHMtMjAtOS0yMC0yMGwwLThjMC0xNS41LTEyLjUtMjgtMjgtMjh6bTEzMiAyOGwwIDhjMCAxMS05IDIwLTIwIDIwcy0yMC05LTIwLTIwbDAtOGMwLTM3LjYgMzAuNC02OCA2OC02OHM2OCAzMC40IDY4IDY4bDAgOGMwIDExLTkgMjAtMjAgMjBzLTIwLTktMjAtMjBsMC04YzAtMTUuNS0xMi41LTI4LTI4LTI4cy0yOCAxMi41LTI4IDI4eiJdfSx0d2U9SlAsYXdlPXtwcmVmaXg6ImZhciIsaWNvbk5hbWU6ImhhbmQtcGVhY2UiLGljb246WzQ0OCw1MTIsWzk5OTZdLCJmMjViIiwiTTIxOSAxLjRjLTM1LjItMy43LTY2LjYgMjEuOC03MC4zIDU3bC02LjQgNjAuNi0xNy40LTQ5LjRDMTEzLjIgMzYuMyA3Ni42IDE4LjggNDMuMyAzMC41Uy03LjYgNzguOCA0LjEgMTEyLjFMNTYuOSAyNjIuMkM0MS43IDI3Ni43IDMyLjIgMjk3LjMgMzIuMiAzMjBsMCAyNGMwIDkyLjggNzUuMiAxNjggMTY4IDE2OGw0OCAwYzkyLjggMCAxNjgtNzUuMiAxNjgtMTY4bDAtMTIwYzAtMzUuMy0yOC43LTY0LTY0LTY0LTcuOSAwLTE1LjQgMS40LTIyLjQgNC0xMC40LTIxLjMtMzIuMy0zNi01Ny42LTM2LS43IDAtMS41IDAtMi4yIDBsNS45LTU2LjNjMy43LTM1LjItMjEuOC02Ni42LTU3LTcwLjN6bS0uMiAxNTUuNGMtNi42IDEwLjEtMTAuNSAyMi4yLTEwLjUgMzUuMmwwIDQ4YzAgLjcgMCAxLjQgMCAyLTUuMS0xLjMtMTAuNS0yLTE2LTJsLTcuNCAwLTUuNC0xNS4zIDE3LTE2MS4zYy45LTguOCA4LjgtMTUuMiAxNy42LTE0LjJzMTUuMiA4LjggMTQuMiAxNy42bC05LjUgOTAuMXpNNzkuNiA4NS42bDU0LjMgMTU0LjQtMjEuNyAwYy00IDAtOCAuMy0xMS45IC45TDQ5LjQgOTYuMmMtMi45LTguMyAxLjUtMTcuNSA5LjgtMjAuNHMxNy41IDEuNSAyMC40IDkuOHpNMjU2LjIgMTkyYzAtOC44IDcuMi0xNiAxNi0xNnMxNiA3LjIgMTYgMTZsMCA0OGMwIDguOC03LjIgMTYtMTYgMTZzLTE2LTcuMi0xNi0xNmwwLTQ4em0zOC40IDEwOGMxMC40IDIxLjMgMzIuMyAzNiA1Ny42IDM2IDUuNSAwIDEwLjktLjcgMTYtMmwwIDEwYzAgNjYuMy01My43IDEyMC0xMjAgMTIwbC00OCAwYy02Ni4zIDAtMTIwLTUzLjctMTIwLTEyMGwwLTI0YzAtMTcuNyAxNC4zLTMyIDMyLTMybDgwIDBjOC44IDAgMTYgNy4yIDE2IDE2cy03LjIgMTYtMTYgMTZsLTQwIDBjLTEzLjMgMC0yNCAxMC43LTI0IDI0czEwLjcgMjQgMjQgMjRsNDAgMGMzNS4zIDAgNjQtMjguNyA2NC02NCAwLS43IDAtMS40IDAtMiA1LjEgMS4zIDEwLjUgMiAxNiAyIDcuOSAwIDE1LjQtMS40IDIyLjQtNHptNzMuNi0yOGMwIDguOC03LjIgMTYtMTYgMTZzLTE2LTcuMi0xNi0xNmwwLTQ4YzAtOC44IDcuMi0xNiAxNi0xNnMxNiA3LjIgMTYgMTZsMCA0OHoiXX0saXdlPXtwcmVmaXg6ImZhciIsaWNvbk5hbWU6ImNvbXBhc3MiLGljb246WzUxMiw1MTIsWzEyOTUxN10sImYxNGUiLCJNNDY0IDI1NmEyMDggMjA4IDAgMSAwIC00MTYgMCAyMDggMjA4IDAgMSAwIDQxNiAwek0wIDI1NmEyNTYgMjU2IDAgMSAxIDUxMiAwIDI1NiAyNTYgMCAxIDEgLTUxMiAwem0zMDYuNyA2OS4xTDE2Mi40IDM4MC42Yy0xOS40IDcuNS0zOC41LTExLjYtMzEtMzFsNTUuNS0xNDQuM2MzLjMtOC41IDkuOS0xNS4xIDE4LjQtMTguNGwxNDQuMy01NS41YzE5LjQtNy41IDM4LjUgMTEuNiAzMSAzMUwzMjUuMSAzMDYuN2MtMy4zIDguNS05LjkgMTUuMS0xOC40IDE4LjR6TTI4OCAyNTZhMzIgMzIgMCAxIDAgLTY0IDAgMzIgMzIgMCAxIDAgNjQgMHoiXX0scndlPXtwcmVmaXg6ImZhciIsaWNvbk5hbWU6InNxdWFyZSIsaWNvbjpbNDQ4LDUxMixbOTYzMiw5NzIzLDk3MjQsNjE1OTBdLCJmMGM4IiwiTTM4NCA4MGM4LjggMCAxNiA3LjIgMTYgMTZsMCAzMjBjMCA4LjgtNy4yIDE2LTE2IDE2TDY0IDQzMmMtOC44IDAtMTYtNy4yLTE2LTE2TDQ4IDk2YzAtOC44IDcuMi0xNiAxNi0xNmwzMjAgMHpNNjQgMzJDMjguNyAzMiAwIDYwLjcgMCA5NkwwIDQxNmMwIDM1LjMgMjguNyA2NCA2NCA2NGwzMjAgMGMzNS4zIDAgNjQtMjguNyA2NC02NGwwLTMyMGMwLTM1LjMtMjguNy02NC02NC02NEw2NCAzMnoiXX0sZUk9e3ByZWZpeDoiZmFyIixpY29uTmFtZToiZmFjZS1ncmluIixpY29uOls1MTIsNTEyLFsxMjg1MTIsImdyaW4iXSwiZjU4MCIsIk00NjQgMjU2YTIwOCAyMDggMCAxIDAgLTQxNiAwIDIwOCAyMDggMCAxIDAgNDE2IDB6TTAgMjU2YTI1NiAyNTYgMCAxIDEgNTEyIDAgMjU2IDI1NiAwIDEgMSAtNTEyIDB6bTM3Mi4yIDQ2LjNjMTEuOC0zLjYgMjMuNyA2LjEgMTkuNiAxNy44LTE5LjggNTUuOS03My4xIDk2LTEzNS44IDk2LTYyLjcgMC0xMTYtNDAtMTM1LjgtOTUuOS00LjEtMTEuNiA3LjgtMjEuNCAxOS42LTE3LjggMzQuNyAxMC42IDc0LjIgMTYuNSAxMTYuMSAxNi41IDQyIDAgODEuNS02IDExNi4zLTE2LjZ6TTE0NCAyMDhhMzIgMzIgMCAxIDEgNjQgMCAzMiAzMiAwIDEgMSAtNjQgMHptMTkyLTMyYTMyIDMyIDAgMSAxIDAgNjQgMzIgMzIgMCAxIDEgMC02NHoiXX0sc3dlPWVJLHRJPXtwcmVmaXg6ImZhciIsaWNvbk5hbWU6ImZhY2Utc21pbGUiLGljb246WzUxMiw1MTIsWzEyODU3OCwic21pbGUiXSwiZjExOCIsIk00NjQgMjU2YTIwOCAyMDggMCAxIDAgLTQxNiAwIDIwOCAyMDggMCAxIDAgNDE2IDB6TTAgMjU2YTI1NiAyNTYgMCAxIDEgNTEyIDAgMjU2IDI1NiAwIDEgMSAtNTEyIDB6bTE3Ny4zIDYzLjRDMTkyLjMgMzM1IDIxOC40IDM1MiAyNTYgMzUyczYzLjctMTcgNzguNy0zMi42YzkuMi05LjYgMjQuNC05LjkgMzMuOS0uN3M5LjkgMjQuNCAuNyAzMy45Yy0yMi4xIDIzLTYwIDQ3LjQtMTEzLjMgNDcuNHMtOTEuMi0yNC40LTExMy4zLTQ3LjRjLTkuMi05LjYtOC45LTI0LjggLjctMzMuOXMyNC44LTguOSAzMy45IC43ek0xNDQgMjA4YTMyIDMyIDAgMSAxIDY0IDAgMzIgMzIgMCAxIDEgLTY0IDB6bTE5Mi0zMmEzMiAzMiAwIDEgMSAwIDY0IDMyIDMyIDAgMSAxIDAtNjR6Il19LG53ZT10SSxhST17cHJlZml4OiJmYXIiLGljb25OYW1lOiJmYWNlLXNtaWxlLWJlYW0iLGljb246WzUxMiw1MTIsWzEyODUyMiwic21pbGUtYmVhbSJdLCJmNWI4IiwiTTQ2NCAyNTZhMjA4IDIwOCAwIDEgMCAtNDE2IDAgMjA4IDIwOCAwIDEgMCA0MTYgMHpNMCAyNTZhMjU2IDI1NiAwIDEgMSA1MTIgMCAyNTYgMjU2IDAgMSAxIC01MTIgMHptMTc3LjMgNjMuNEMxOTIuMyAzMzUgMjE4LjQgMzUyIDI1NiAzNTJzNjMuNy0xNyA3OC43LTMyLjZjOS4yLTkuNiAyNC40LTkuOSAzMy45LS43czkuOSAyNC40IC43IDMzLjljLTIyLjEgMjMtNjAgNDcuNC0xMTMuMyA0Ny40cy05MS4yLTI0LjQtMTEzLjMtNDcuNGMtOS4yLTkuNi04LjktMjQuOCAuNy0zMy45czI0LjgtOC45IDMzLjkgLjd6TTE3NiAxODBjLTE1LjUgMC0yOCAxMi41LTI4IDI4bDAgOGMwIDExLTkgMjAtMjAgMjBzLTIwLTktMjAtMjBsMC04YzAtMzcuNiAzMC40LTY4IDY4LTY4czY4IDMwLjQgNjggNjhsMCA4YzAgMTEtOSAyMC0yMCAyMHMtMjAtOS0yMC0yMGwwLThjMC0xNS41LTEyLjUtMjgtMjgtMjh6bTEzMiAyOGwwIDhjMCAxMS05IDIwLTIwIDIwcy0yMC05LTIwLTIwbDAtOGMwLTM3LjYgMzAuNC02OCA2OC02OHM2OCAzMC40IDY4IDY4bDAgOGMwIDExLTkgMjAtMjAgMjBzLTIwLTktMjAtMjBsMC04YzAtMTUuNS0xMi41LTI4LTI4LTI4cy0yOCAxMi41LTI4IDI4eiJdfSxvd2U9YUksbHdlPXtwcmVmaXg6ImZhciIsaWNvbk5hbWU6ImZvbGRlci1jbG9zZWQiLGljb246WzUxMiw1MTIsW10sImUxODUiLCJNNDQ4IDQwMEw2NCA0MDBjLTguOCAwLTE2LTcuMi0xNi0xNmwwLTE0NCA0MTYgMCAwIDE0NGMwIDguOC03LjIgMTYtMTYgMTZ6bTE2LTIwOGwtNDE2IDAgMC05NmMwLTguOCA3LjItMTYgMTYtMTZsMTM4LjcgMGMzLjUgMCA2LjggMS4xIDkuNiAzLjJMMjUwLjcgMTEyYzEzLjggMTAuNCAzMC43IDE2IDQ4IDE2TDQ0OCAxMjhjOC44IDAgMTYgNy4yIDE2IDE2bDAgNDh6TTY0IDQ0OGwzODQgMGMzNS4zIDAgNjQtMjguNyA2NC02NGwwLTI0MGMwLTM1LjMtMjguNy02NC02NC02NEwyOTguNyA4MGMtNi45IDAtMTMuNy0yLjItMTkuMi02LjRMMjQxLjEgNDQuOEMyMzAgMzYuNSAyMTYuNSAzMiAyMDIuNyAzMkw2NCAzMkMyOC43IDMyIDAgNjAuNyAwIDk2TDAgMzg0YzAgMzUuMyAyOC43IDY0IDY0IDY0eiJdfSxjd2U9e3ByZWZpeDoiZmFyIixpY29uTmFtZToia2V5Ym9hcmQiLGljb246WzU3Niw1MTIsWzllM10sImYxMWMiLCJNNjQgMTEyYy04LjggMC0xNiA3LjItMTYgMTZsMCAyNTZjMCA4LjggNy4yIDE2IDE2IDE2bDQ0OCAwYzguOCAwIDE2LTcuMiAxNi0xNmwwLTI1NmMwLTguOC03LjItMTYtMTYtMTZMNjQgMTEyek0wIDEyOEMwIDkyLjcgMjguNyA2NCA2NCA2NGw0NDggMGMzNS4zIDAgNjQgMjguNyA2NCA2NGwwIDI1NmMwIDM1LjMtMjguNyA2NC02NCA2NEw2NCA0NDhjLTM1LjMgMC02NC0yOC43LTY0LTY0TDAgMTI4ek0xNzYgMzIwbDIyNCAwYzguOCAwIDE2IDcuMiAxNiAxNmwwIDE2YzAgOC44LTcuMiAxNi0xNiAxNmwtMjI0IDBjLTguOCAwLTE2LTcuMi0xNi0xNmwwLTE2YzAtOC44IDcuMi0xNiAxNi0xNnptLTcyLTcyYzAtOC44IDcuMi0xNiAxNi0xNmwxNiAwYzguOCAwIDE2IDcuMiAxNiAxNmwwIDE2YzAgOC44LTcuMiAxNi0xNiAxNmwtMTYgMGMtOC44IDAtMTYtNy4yLTE2LTE2bDAtMTZ6bTE2LTk2bDE2IDBjOC44IDAgMTYgNy4yIDE2IDE2bDAgMTZjMCA4LjgtNy4yIDE2LTE2IDE2bC0xNiAwYy04LjggMC0xNi03LjItMTYtMTZsMC0xNmMwLTguOCA3LjItMTYgMTYtMTZ6bTY0IDk2YzAtOC44IDcuMi0xNiAxNi0xNmwxNiAwYzguOCAwIDE2IDcuMiAxNiAxNmwwIDE2YzAgOC44LTcuMiAxNi0xNiAxNmwtMTYgMGMtOC44IDAtMTYtNy4yLTE2LTE2bDAtMTZ6bTE2LTk2bDE2IDBjOC44IDAgMTYgNy4yIDE2IDE2bDAgMTZjMCA4LjgtNy4yIDE2LTE2IDE2bC0xNiAwYy04LjggMC0xNi03LjItMTYtMTZsMC0xNmMwLTguOCA3LjItMTYgMTYtMTZ6bTY0IDk2YzAtOC44IDcuMi0xNiAxNi0xNmwxNiAwYzguOCAwIDE2IDcuMiAxNiAxNmwwIDE2YzAgOC44LTcuMiAxNi0xNiAxNmwtMTYgMGMtOC44IDAtMTYtNy4yLTE2LTE2bDAtMTZ6bTE2LTk2bDE2IDBjOC44IDAgMTYgNy4yIDE2IDE2bDAgMTZjMCA4LjgtNy4yIDE2LTE2IDE2bC0xNiAwYy04LjggMC0xNi03LjItMTYtMTZsMC0xNmMwLTguOCA3LjItMTYgMTYtMTZ6bTY0IDk2YzAtOC44IDcuMi0xNiAxNi0xNmwxNiAwYzguOCAwIDE2IDcuMiAxNiAxNmwwIDE2YzAgOC44LTcuMiAxNi0xNiAxNmwtMTYgMGMtOC44IDAtMTYtNy4yLTE2LTE2bDAtMTZ6bTE2LTk2bDE2IDBjOC44IDAgMTYgNy4yIDE2IDE2bDAgMTZjMCA4LjgtNy4yIDE2LTE2IDE2bC0xNiAwYy04LjggMC0xNi03LjItMTYtMTZsMC0xNmMwLTguOCA3LjItMTYgMTYtMTZ6bTY0IDk2YzAtOC44IDcuMi0xNiAxNi0xNmwxNiAwYzguOCAwIDE2IDcuMiAxNiAxNmwwIDE2YzAgOC44LTcuMiAxNi0xNiAxNmwtMTYgMGMtOC44IDAtMTYtNy4yLTE2LTE2bDAtMTZ6bTE2LTk2bDE2IDBjOC44IDAgMTYgNy4yIDE2IDE2bDAgMTZjMCA4LjgtNy4yIDE2LTE2IDE2bC0xNiAwYy04LjggMC0xNi03LjItMTYtMTZsMC0xNmMwLTguOCA3LjItMTYgMTYtMTZ6Il19LGlJPXtwcmVmaXg6ImZhciIsaWNvbk5hbWU6ImZhY2Utcm9sbGluZy1leWVzIixpY29uOls1MTIsNTEyLFsxMjg1ODAsIm1laC1yb2xsaW5nLWV5ZXMiXSwiZjVhNSIsIk0yNTYgNDhhMjA4IDIwOCAwIDEgMSAwIDQxNiAyMDggMjA4IDAgMSAxIDAtNDE2em0wIDQ2NGEyNTYgMjU2IDAgMSAwIDAtNTEyIDI1NiAyNTYgMCAxIDAgMCA1MTJ6TTE3NiAzNzZjMCAxMy4zIDEwLjcgMjQgMjQgMjRsMTEyIDBjMTMuMyAwIDI0LTEwLjcgMjQtMjRzLTEwLjctMjQtMjQtMjRsLTExMiAwYy0xMy4zIDAtMjQgMTAuNy0yNCAyNHpNMTYwIDI2NGMtMjIuMSAwLTQwLTE3LjktNDAtNDAgMC05LjUgMy4zLTE4LjEgOC44LTI1IDMuMiAxNC4zIDE2IDI1IDMxLjIgMjVzMjgtMTAuNyAzMS4yLTI1YzUuNSA2LjggOC44IDE1LjUgOC44IDI1IDAgMjIuMS0xNy45IDQwLTQwIDQwem0wIDQwYTgwIDgwIDAgMSAwIDAtMTYwIDgwIDgwIDAgMSAwIDAgMTYwem0xOTItNDBjLTIyLjEgMC00MC0xNy45LTQwLTQwIDAtOS41IDMuMy0xOC4xIDguOC0yNSAzLjIgMTQuMyAxNiAyNSAzMS4yIDI1czI4LTEwLjcgMzEuMi0yNWM1LjUgNi44IDguOCAxNS41IDguOCAyNSAwIDIyLjEtMTcuOSA0MC00MCA0MHptMCA0MGE4MCA4MCAwIDEgMCAwLTE2MCA4MCA4MCAwIDEgMCAwIDE2MHoiXX0sZHdlPWlJLHJJPXtwcmVmaXg6ImZhciIsaWNvbk5hbWU6ImZhY2UtZ3JpbWFjZSIsaWNvbjpbNTEyLDUxMixbMTI4NTU2LCJncmltYWNlIl0sImY1N2YiLCJNMjU2IDQ4YTIwOCAyMDggMCAxIDAgMCA0MTYgMjA4IDIwOCAwIDEgMCAwLTQxNnpNNTEyIDI1NmEyNTYgMjU2IDAgMSAxIC01MTIgMCAyNTYgMjU2IDAgMSAxIDUxMiAwek0xNTIgMzUyYzAgMTEuOSA4LjYgMjEuOCAyMCAyMy43bDAtNDcuM2MtMTEuNCAxLjktMjAgMTEuOC0yMCAyMy43em04NCAyNGwwLTQ4LTI0IDAgMCA0OCAyNCAwem02NCAwbDAtNDgtMjQgMCAwIDQ4IDI0IDB6bTQwLS4zYzExLjQtMS45IDIwLTExLjggMjAtMjMuN3MtOC42LTIxLjgtMjAtMjMuN2wwIDQ3LjN6TTE3NiAyODhsMTYwIDBjMzUuMyAwIDY0IDI4LjcgNjQgNjRzLTI4LjcgNjQtNjQgNjRsLTE2MCAwYy0zNS4zIDAtNjQtMjguNy02NC02NHMyOC43LTY0IDY0LTY0em0wLTExMmEzMiAzMiAwIDEgMSAwIDY0IDMyIDMyIDAgMSAxIDAtNjR6bTEyOCAzMmEzMiAzMiAwIDEgMSA2NCAwIDMyIDMyIDAgMSAxIC02NCAweiJdfSxod2U9ckksc0k9e3ByZWZpeDoiZmFyIixpY29uTmFtZToiY2lyY2xlLWRvdCIsaWNvbjpbNTEyLDUxMixbMTI4MjgwLCJkb3QtY2lyY2xlIl0sImYxOTIiLCJNMjU2IDUxMmEyNTYgMjU2IDAgMSAxIDAtNTEyIDI1NiAyNTYgMCAxIDEgMCA1MTJ6bTAtNDY0YTIwOCAyMDggMCAxIDAgMCA0MTYgMjA4IDIwOCAwIDEgMCAwLTQxNnptMCAzMDRhOTYgOTYgMCAxIDEgMC0xOTIgOTYgOTYgMCAxIDEgMCAxOTJ6Il19LHB3ZT1zSSx1d2U9e3ByZWZpeDoiZmFyIixpY29uTmFtZToib2JqZWN0LWdyb3VwIixpY29uOls1NzYsNTEyLFtdLCJmMjQ3IiwiTTQwIDY0YTI0IDI0IDAgMSAxIDQ4IDAgMjQgMjQgMCAxIDEgLTQ4IDB6bTQ4IDU5LjNjMTYtNi41IDI4LjktMTkuMyAzNS4zLTM1LjNsMzI5LjMgMGM2LjUgMTYgMTkuMyAyOC45IDM1LjMgMzUuM2wwIDI2NS4zYy0xNiA2LjUtMjguOSAxOS4zLTM1LjMgMzUuM2wtMzI5LjMgMGMtNi41LTE2LTE5LjMtMjguOS0zNS4zLTM1LjNsMC0yNjUuM3pNNTEyIDBjLTI2LjkgMC00OS45IDE2LjUtNTkuMyA0MEwxMjMuMyA0MEMxMTMuOSAxNi41IDkwLjkgMCA2NCAwIDI4LjcgMCAwIDI4LjcgMCA2NCAwIDkwLjkgMTYuNSAxMTMuOSA0MCAxMjMuM2wwIDI2NS4zYy0yMy41IDkuNS00MCAzMi41LTQwIDU5LjMgMCAzNS4zIDI4LjcgNjQgNjQgNjQgMjYuOSAwIDQ5LjktMTYuNSA1OS4zLTQwbDMyOS4zIDBjOS41IDIzLjUgMzIuNSA0MCA1OS4zIDQwIDM1LjMgMCA2NC0yOC43IDY0LTY0IDAtMjYuOS0xNi41LTQ5LjktNDAtNTkuM2wwLTI2NS4zYzIzLjUtOS41IDQwLTMyLjUgNDAtNTkuMyAwLTM1LjMtMjguNy02NC02NC02NHpNNDg4IDY0YTI0IDI0IDAgMSAxIDQ4IDAgMjQgMjQgMCAxIDEgLTQ4IDB6TTY0IDQyNGEyNCAyNCAwIDEgMSAwIDQ4IDI0IDI0IDAgMSAxIDAtNDh6bTQyNCAyNGEyNCAyNCAwIDEgMSA0OCAwIDI0IDI0IDAgMSAxIC00OCAwek0xOTIgMTc2bDg4IDAgMCA1Ni04OCAwIDAtNTZ6bS04LTQwYy0xNy43IDAtMzIgMTQuMy0zMiAzMmwwIDcyYzAgMTcuNyAxNC4zIDMyIDMyIDMybDEwNCAwYzE3LjcgMCAzMi0xNC4zIDMyLTMybDAtNzJjMC0xNy43LTE0LjMtMzItMzItMzJsLTEwNCAwem03MiAxODRsMCAyNGMwIDE3LjcgMTQuMyAzMiAzMiAzMmwxMDQgMGMxNy43IDAgMzItMTQuMyAzMi0zMmwwLTcyYzAtMTcuNy0xNC4zLTMyLTMyLTMybC0yNCAwYzAgMTQuNi0zLjkgMjguMi0xMC43IDQwbDI2LjcgMCAwIDU2LTg4IDAgMC0xNi40Yy0yLjYgLjMtNS4zIC40LTggLjRsLTMyIDB6Il19LG5JPXtwcmVmaXg6ImZhciIsaWNvbk5hbWU6ImZhY2UtZmx1c2hlZCIsaWNvbjpbNTEyLDUxMixbMTI4NTYzLCJmbHVzaGVkIl0sImY1NzkiLCJNNDY0IDI1NmEyMDggMjA4IDAgMSAxIC00MTYgMCAyMDggMjA4IDAgMSAxIDQxNiAwek0yNTYgMGEyNTYgMjU2IDAgMSAwIDAgNTEyIDI1NiAyNTYgMCAxIDAgMC01MTJ6TTE2MCAyNDhhMjQgMjQgMCAxIDAgMC00OCAyNCAyNCAwIDEgMCAwIDQ4em0yMTYtMjRhMjQgMjQgMCAxIDAgLTQ4IDAgMjQgMjQgMCAxIDAgNDggMHpNMTkyIDM1MmMtMTMuMyAwLTI0IDEwLjctMjQgMjRzMTAuNyAyNCAyNCAyNGwxMjggMGMxMy4zIDAgMjQtMTAuNyAyNC0yNHMtMTAuNy0yNC0yNC0yNGwtMTI4IDB6TTE2MCAxNzZhNDggNDggMCAxIDEgMCA5NiA0OCA0OCAwIDEgMSAwLTk2em0wIDEyOGE4MCA4MCAwIDEgMCAwLTE2MCA4MCA4MCAwIDEgMCAwIDE2MHptMTQ0LTgwYTQ4IDQ4IDAgMSAxIDk2IDAgNDggNDggMCAxIDEgLTk2IDB6bTEyOCAwYTgwIDgwIDAgMSAwIC0xNjAgMCA4MCA4MCAwIDEgMCAxNjAgMHoiXX0sZndlPW5JLG9JPXtwcmVmaXg6ImZhciIsaWNvbk5hbWU6InN0YXItaGFsZi1zdHJva2UiLGljb246WzU3Niw1MTIsWyJzdGFyLWhhbGYtYWx0Il0sImY1YzAiLCJNMzA5LjUtMTguOWMtNC4xLTgtMTIuNC0xMy4xLTIxLjQtMTMuMXMtMTcuMyA1LjEtMjEuNCAxMy4xTDE5My4xIDEyNS4zIDMzLjIgMTUwLjdjLTguOSAxLjQtMTYuMyA3LjctMTkuMSAxNi4zcy0uNSAxOCA1LjggMjQuNGwxMTQuNCAxMTQuNS0yNS4yIDE1OS45Yy0xLjQgOC45IDIuMyAxNy45IDkuNiAyMy4yczE2LjkgNi4xIDI1IDJMMjg4LjEgNDE3LjYgNDMyLjQgNDkxYzggNC4xIDE3LjcgMy4zIDI1LTJzMTEtMTQuMiA5LjYtMjMuMkw0NDEuNyAzMDUuOSA1NTYuMSAxOTEuNGM2LjQtNi40IDguNi0xNS44IDUuOC0yNC40cy0xMC4xLTE0LjktMTkuMS0xNi4zTDM4MyAxMjUuMyAzMDkuNS0xOC45ek0yNjQuMSA5MS44bDAgMjg0LjEtMTAwLjEgNTAuOSAxOS44LTEyNS41YzEuMi03LjYtMS4zLTE1LjMtNi43LTIwLjdsLTg5LjgtODkuOSAxMjUuNS0yMGM3LjYtMS4yIDE0LjEtNiAxNy42LTEyLjhsMzMuOC02Ni4yem00OCAyODQuMWwwLTI4NC4xIDMzLjggNjYuMmMzLjUgNi44IDEwIDExLjYgMTcuNiAxMi44bDEyNS41IDIwLTg5LjggODkuOWMtNS40IDUuNC03LjkgMTMuMS02LjcgMjAuN2wxOS44IDEyNS41LTEwMC4xLTUwLjl6Il19LG13ZT1vSSxnd2U9e3ByZWZpeDoiZmFyIixpY29uTmFtZToiZmlsZS12aWRlbyIsaWNvbjpbMzg0LDUxMixbXSwiZjFjOCIsIk02NCA0OGwxMTIgMCAwIDg4YzAgMzkuOCAzMi4yIDcyIDcyIDcybDg4IDAgMCAyNDBjMCA4LjgtNy4yIDE2LTE2IDE2TDY0IDQ2NGMtOC44IDAtMTYtNy4yLTE2LTE2TDQ4IDY0YzAtOC44IDcuMi0xNiAxNi0xNnpNMjI0IDY3LjlsOTIuMSA5Mi4xLTY4LjEgMGMtMTMuMyAwLTI0LTEwLjctMjQtMjRsMC02OC4xek02NCAwQzI4LjcgMCAwIDI4LjcgMCA2NEwwIDQ0OGMwIDM1LjMgMjguNyA2NCA2NCA2NGwyNTYgMGMzNS4zIDAgNjQtMjguNyA2NC02NGwwLTI2MS41YzAtMTctNi43LTMzLjMtMTguNy00NS4zTDI0Mi43IDE4LjdDMjMwLjcgNi43IDIxNC41IDAgMTk3LjUgMEw2NCAwek04MCAyODhsMCA5NmMwIDE3LjcgMTQuMyAzMiAzMiAzMmw5NiAwYzE3LjcgMCAzMi0xNC4zIDMyLTMybDAtMjQgMzUgMzVjMy4yIDMuMiA3LjUgNSAxMiA1IDkuNCAwIDE3LTcuNiAxNy0xN2wwLTk0LjFjMC05LjQtNy42LTE3LTE3LTE3LTQuNSAwLTguOCAxLjgtMTIgNWwtMzUgMzUgMC0yNGMwLTE3LjctMTQuMy0zMi0zMi0zMmwtOTYgMGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJ6Il19LGxJPXtwcmVmaXg6ImZhciIsaWNvbk5hbWU6ImZhY2UtbGF1Z2giLGljb246WzUxMiw1MTIsWyJsYXVnaCJdLCJmNTk5IiwiTTQ2NCAyNTZhMjA4IDIwOCAwIDEgMCAtNDE2IDAgMjA4IDIwOCAwIDEgMCA0MTYgMHpNMCAyNTZhMjU2IDI1NiAwIDEgMSA1MTIgMCAyNTYgMjU2IDAgMSAxIC01MTIgMHptMTE4LjMgNTguMmMtNC4yLTEzLjcgNy4xLTI2LjIgMjEuNC0yNi4ybDIzMi42IDBjMTQuMyAwIDI1LjYgMTIuNSAyMS40IDI2LjItMTggNTguOS03Mi45IDEwMS44LTEzNy43IDEwMS44UzEzNi4zIDM3My4xIDExOC4zIDMxNC4yek0xNDQgMTkyYTMyIDMyIDAgMSAxIDY0IDAgMzIgMzIgMCAxIDEgLTY0IDB6bTE5Mi0zMmEzMiAzMiAwIDEgMSAwIDY0IDMyIDMyIDAgMSAxIDAtNjR6Il19LGJ3ZT1sSSx2d2U9e3ByZWZpeDoiZmFyIixpY29uTmFtZToiaGFuZC1wb2ludGVyIixpY29uOls0NDgsNTEyLFtdLCJmMjVhIiwiTTE2MCA2NGMwLTguOCA3LjItMTYgMTYtMTZzMTYgNy4yIDE2IDE2bDAgMTM2YzAgMTAuMyA2LjYgMTkuNSAxNi40IDIyLjhzMjAuNi0uMSAyNi44LTguM2MzLTMuOSA3LjYtNi40IDEyLjgtNi40IDguOCAwIDE2IDcuMiAxNiAxNiAwIDEwLjMgNi42IDE5LjUgMTYuNCAyMi44czIwLjYtLjEgMjYuOC04LjNjMy0zLjkgNy42LTYuNCAxMi44LTYuNCA3LjggMCAxNC4zIDUuNiAxNS43IDEzIDEuNiA4LjIgNy4zIDE1LjEgMTUuMSAxOHMxNi43IDEuNiAyMy4zLTMuNmMyLjctMi4xIDYuMS0zLjQgOS45LTMuNCA4LjggMCAxNiA3LjIgMTYgMTZsMCAxMjBjMCAzOS44LTMyLjIgNzItNzIgNzJsLTExNi42IDBjLTM3LjQgMC03Mi40LTE4LjctOTMuMi00OS45TDUwLjcgMzEyLjljLTQuOS03LjQtMi45LTE3LjMgNC40LTIyLjJzMTcuMy0yLjkgMjIuMiA0LjRMMTE2IDM1My4yYzUuOSA4LjggMTYuOCAxMi43IDI2LjkgOS43czE3LTEyLjQgMTctMjNMMTYwIDY0ek0xNzYgMGMtMzUuMyAwLTY0IDI4LjctNjQgNjRsMCAxOTcuN0M5MS4yIDIzOCA1NS41IDIzMi44IDI4LjUgMjUwLjctLjkgMjcwLjQtOC45IDMxMC4xIDEwLjggMzM5LjVMNzguMyA0NDAuOGMyOS43IDQ0LjUgNzkuNiA3MS4yIDEzMy4xIDcxLjJMMzI4IDUxMmM2Ni4zIDAgMTIwLTUzLjcgMTIwLTEyMGwwLTEyMGMwLTM1LjMtMjguNy02NC02NC02NC00LjUgMC04LjggLjUtMTMgMS4zLTExLjctMTUuNC0zMC4yLTI1LjMtNTEtMjUuMy02LjkgMC0xMy41IDEuMS0xOS43IDMuMS0xMS42LTE2LjQtMzAuNy0yNy4xLTUyLjMtMjcuMS0yLjcgMC01LjQgLjItOCAuNUwyNDAgNjRjMC0zNS4zLTI4LjctNjQtNjQtNjR6bTQ4IDMwNGMwLTguOC03LjItMTYtMTYtMTZzLTE2IDcuMi0xNiAxNmwwIDk2YzAgOC44IDcuMiAxNiAxNiAxNnMxNi03LjIgMTYtMTZsMC05NnptNDgtMTZjLTguOCAwLTE2IDcuMi0xNiAxNmwwIDk2YzAgOC44IDcuMiAxNiAxNiAxNnMxNi03LjIgMTYtMTZsMC05NmMwLTguOC03LjItMTYtMTYtMTZ6bTgwIDE2YzAtOC44LTcuMi0xNi0xNi0xNnMtMTYgNy4yLTE2IDE2bDAgOTZjMCA4LjggNy4yIDE2IDE2IDE2czE2LTcuMiAxNi0xNmwwLTk2eiJdfSx5d2U9e3ByZWZpeDoiZmFyIixpY29uTmFtZToicmVnaXN0ZXJlZCIsaWNvbjpbNTEyLDUxMixbMTc0XSwiZjI1ZCIsIk0yNTYgNDhhMjA4IDIwOCAwIDEgMSAwIDQxNiAyMDggMjA4IDAgMSAxIDAtNDE2em0wIDQ2NGEyNTYgMjU2IDAgMSAwIDAtNTEyIDI1NiAyNTYgMCAxIDAgMCA1MTJ6TTIwMCAxNDRjLTEzLjMgMC0yNCAxMC43LTI0IDI0bDAgMTc2YzAgMTMuMyAxMC43IDI0IDI0IDI0czI0LTEwLjcgMjQtMjRsMC01NiAzNC40IDAgNDEgNjguM2M2LjggMTEuNCAyMS42IDE1IDMyLjkgOC4yczE1LTIxLjYgOC4yLTMyLjlsLTMwLjItNTAuM2MyNC42LTExLjUgNDEuNi0zNi40IDQxLjYtNjUuMyAwLTM5LjgtMzIuMi03Mi03Mi03MmwtODAgMHptNzIgOTZsLTQ4IDAgMC00OCA1NiAwYzEzLjMgMCAyNCAxMC43IDI0IDI0cy0xMC43IDI0LTI0IDI0bC04IDB6Il19LGtqdD17ZmFTcXVhcmVNaW51czpIRSxmYU1pbnVzU3F1YXJlOmF2ZSxmYUNhbGVuZGFyQ2hlY2s6aXZlLGZhRmFjZUtpc3M6cUUsZmFLaXNzOnJ2ZSxmYVBhc3RlOkQ1LGZhRmlsZUNsaXBib2FyZDpzdmUsZmFIYW5kUG9pbnRMZWZ0Om52ZSxmYUZpbGVFeGNlbDpvdmUsZmFFbnZlbG9wZTpsdmUsZmFTcXVhcmVDYXJldERvd246VkUsZmFDYXJldFNxdWFyZURvd246Y3ZlLGZhVHJ1Y2s6ZHZlLGZhQmVsbDpodmUsZmFNZXNzYWdlOkU1LGZhQ29tbWVudEFsdDpwdmUsZmFGYWNlRGl6enk6akUsZmFEaXp6eTp1dmUsZmFDYWxlbmRhckRheXM6VUUsZmFDYWxlbmRhckFsdDpmdmUsZmFIYW5kUG9pbnRVcDptdmUsZmFIYW5kTGl6YXJkOmd2ZSxmYVNxdWFyZUZ1bGw6YnZlLGZhQ2lyY2xlUGF1c2U6V0UsZmFQYXVzZUNpcmNsZTp2dmUsZmFIYXJkRHJpdmU6R0UsZmFIZGQ6eXZlLGZhRmlsZVppcHBlcjpZRSxmYUZpbGVBcmNoaXZlOnh2ZSxmYUZsb3BweURpc2s6WkUsZmFTYXZlOnd2ZSxmYUZhY2VHcmluVG9uZ3VlU3F1aW50OlhFLGZhR3JpblRvbmd1ZVNxdWludDpNdmUsZmFDYW1lcmE6S0UsZmFDYW1lcmFBbHQ6enZlLGZhRmFjZUdyaW5TdGFyczpRRSxmYUdyaW5TdGFyczprdmUsZmFFeWU6U3ZlLGZhRmFjZVNhZFRlYXI6SkUsZmFTYWRUZWFyOkN2ZSxmYVNoYXJlRnJvbVNxdWFyZTplUCxmYVNoYXJlU3F1YXJlOl92ZSxmYU5vdGVTdGlja3k6dFAsZmFTdGlja3lOb3RlOlR2ZSxmYUhhbmRCYWNrRmlzdDphUCxmYUhhbmRSb2NrOkx2ZSxmYUNoZXNzUXVlZW46JHZlLGZhRmFjZUdyaW5UZWFyczppUCxmYUdyaW5UZWFyczpBdmUsZmFQZW5Ub1NxdWFyZTpyUCxmYUVkaXQ6RHZlLGZhRmFjZUdyaW5CZWFtU3dlYXQ6c1AsZmFHcmluQmVhbVN3ZWF0OkV2ZSxmYUNsb2NrOm5QLGZhQ2xvY2tGb3VyOlB2ZSxmYUZhY2VMYXVnaFdpbms6b1AsZmFMYXVnaFdpbms6SXZlLGZhUGFwZXJQbGFuZTpOdmUsZmFIZWFydDpGdmUsZmFGb250QXdlc29tZTpxZixmYUZvbnRBd2Vzb21lRmxhZzpPdmUsZmFGb250QXdlc29tZUxvZ29GdWxsOlJ2ZSxmYUNsb25lOkJ2ZSxmYUZvbGRlck9wZW46SHZlLGZhV2luZG93TWluaW1pemU6cXZlLGZhU3RhckhhbGY6VnZlLGZhQWxhcm1DbG9jazpqdmUsZmFOZXdzcGFwZXI6VXZlLGZhSG9zcGl0YWw6VmYsZmFIb3NwaXRhbEFsdDpXdmUsZmFIb3NwaXRhbFdpZGU6R3ZlLGZhQ2lyY2xlU3RvcDpsUCxmYVN0b3BDaXJjbGU6WXZlLGZhT2JqZWN0VW5ncm91cDpadmUsZmFDb21tZW50Olh2ZSxmYUNoZXNzUGF3bjpLdmUsZmFDYWxlbmRhclBsdXM6UXZlLGZhQ2xpcGJvYXJkOkp2ZSxmYVRodW1ic0Rvd246ZXllLGZhSWRCYWRnZTp0eWUsZmFTcXVhcmVDaGVjazpjUCxmYUNoZWNrU3F1YXJlOmF5ZSxmYUNoZXNzQmlzaG9wOml5ZSxmYUVudmVsb3BlT3BlbjpyeWUsZmFDaXJjbGVYbWFyazpjbCxmYVRpbWVzQ2lyY2xlOnN5ZSxmYVhtYXJrQ2lyY2xlOm55ZSxmYVNxdWFyZUNhcmV0VXA6ZFAsZmFDYXJldFNxdWFyZVVwOm95ZSxmYUZpbGVJbWFnZTpseWUsZmFTcXVhcmVDYXJldFJpZ2h0OmhQLGZhQ2FyZXRTcXVhcmVSaWdodDpjeWUsZmFTdW46WGYsZmFJbWFnZTpkeWUsZmFMaWdodGJ1bGI6aHllLGZhQWRkcmVzc0NhcmQ6amYsZmFDb250YWN0Q2FyZDpweWUsZmFWY2FyZDp1eWUsZmFGYWNlTWVoOnBQLGZhTWVoOmZ5ZSxmYU1hcDpteWUsZmFIYW5kUG9pbnREb3duOmd5ZSxmYUZhY2VNZWhCbGFuazp1UCxmYU1laEJsYW5rOmJ5ZSxmYUZhY2VHcmluVG9uZ3VlOmZQLGZhR3JpblRvbmd1ZTp2eWUsZmFGdXRib2w6VWYsZmFGdXRib2xCYWxsOnl5ZSxmYVNvY2NlckJhbGw6eHllLGZhRmFjZVN1cnByaXNlOm1QLGZhU3VycHJpc2U6d3llLGZhRm9sZGVyOmdQLGZhRm9sZGVyQmxhbms6TXllLGZhQ2xvdWQ6enllLGZhQ2lyY2xlOmt5ZSxmYUZhY2VHcmluU3F1aW50OmJQLGZhR3JpblNxdWludDpTeWUsZmFDaXJjbGVVc2VyOnZQLGZhVXNlckNpcmNsZTpDeWUsZmFSZWN0YW5nbGVMaXN0OnlQLGZhTGlzdEFsdDpfeWUsZmFIYW5kOnhQLGZhSGFuZFBhcGVyOlR5ZSxmYVRodW1ic1VwOkx5ZSxmYUJ1aWxkaW5nOiR5ZSxmYUNoZXNzUm9vazpBeWUsZmFDaXJjbGVRdWVzdGlvbjp3UCxmYVF1ZXN0aW9uQ2lyY2xlOkR5ZSxmYUZpbGU6RXllLGZhRmFjZVNhZENyeTpNUCxmYVNhZENyeTpQeWUsZmFDYWxlbmRhck1pbnVzOkl5ZSxmYUZhY2VUaXJlZDp6UCxmYVRpcmVkOk55ZSxmYUhhbmRQb2ludFJpZ2h0OkZ5ZSxmYUNpcmNsZVVwOmtQLGZhQXJyb3dBbHRDaXJjbGVVcDpPeWUsZmFIYW5kU2Npc3NvcnM6UnllLGZhR2VtOkJ5ZSxmYVJlY3RhbmdsZVhtYXJrOiQ1LGZhUmVjdGFuZ2xlVGltZXM6SHllLGZhVGltZXNSZWN0YW5nbGU6cXllLGZhV2luZG93Q2xvc2U6VnllLGZhVHJhc2hDYW46UDUsZmFUcmFzaEFsdDpqeWUsZmFMaWZlUmluZzpVeWUsZmFDb3B5cmlnaHQ6V3llLGZhQ2lyY2xlTGVmdDpTUCxmYUFycm93QWx0Q2lyY2xlTGVmdDpHeWUsZmFDYWxlbmRhcjpZeWUsZmFGYWNlRnJvd25PcGVuOkNQLGZhRnJvd25PcGVuOlp5ZSxmYUNoYXJ0QmFyOl9QLGZhQmFyQ2hhcnQ6WHllLGZhSG91c2U6QTUsZmFIb21lOkt5ZSxmYUhvbWVBbHQ6UXllLGZhSG9tZUxnQWx0Okp5ZSxmYUZhY2VGcm93bjpUUCxmYUZyb3duOmV4ZSxmYVVzZXI6V2YsZmFVc2VyQWx0OnR4ZSxmYVVzZXJMYXJnZTpheGUsZmFTbm93Zmxha2U6aXhlLGZhQm9va21hcms6cnhlLGZhU3F1YXJlQ2FyZXRMZWZ0OkxQLGZhQ2FyZXRTcXVhcmVMZWZ0OnN4ZSxmYUhhbmRzaGFrZTpHZixmYUhhbmRzaGFrZUFsdDpueGUsZmFIYW5kc2hha2VTaW1wbGU6b3hlLGZhRmFjZVNtaWxlV2luazokUCxmYVNtaWxlV2luazpseGUsZmFGYWNlR3JpblNxdWludFRlYXJzOkFQLGZhR3JpblNxdWludFRlYXJzOmN4ZSxmYUZpbGVBdWRpbzpkeGUsZmFDYWxlbmRhclhtYXJrOkRQLGZhQ2FsZW5kYXJUaW1lczpoeGUsZmFDaXJjbGVEb3duOkVQLGZhQXJyb3dBbHRDaXJjbGVEb3duOnB4ZSxmYUZpbGVMaW5lczpZZixmYUZpbGVBbHQ6dXhlLGZhRmlsZVRleHQ6ZnhlLGZhQ29tbWVudHM6bXhlLGZhQ2lyY2xlQ2hlY2s6STUsZmFDaGVja0NpcmNsZTpneGUsZmFNb29uOmJ4ZSxmYUNsb3NlZENhcHRpb25pbmc6dnhlLGZhSW1hZ2VzOnl4ZSxmYUNpcmNsZVJpZ2h0OlBQLGZhQXJyb3dBbHRDaXJjbGVSaWdodDp4eGUsZmFJZENhcmQ6SVAsZmFEcml2ZXJzTGljZW5zZTp3eGUsZmFDaXJjbGVQbGF5Ok5QLGZhUGxheUNpcmNsZTpNeGUsZmFGYWNlTGF1Z2hCZWFtOkZQLGZhTGF1Z2hCZWFtOnp4ZSxmYUFkZHJlc3NCb29rOk9QLGZhQ29udGFjdEJvb2s6a3hlLGZhSG91cmdsYXNzOlJQLGZhSG91cmdsYXNzRW1wdHk6U3hlLGZhSGVhZHBob25lczpaZixmYUhlYWRwaG9uZXNBbHQ6Q3hlLGZhSGVhZHBob25lc1NpbXBsZTpfeGUsZmFGaWxlUG93ZXJwb2ludDpUeGUsZmFXaW5kb3dNYXhpbWl6ZTpMeGUsZmFDb21tZW50RG90czpCUCxmYUNvbW1lbnRpbmc6JHhlLGZhRmFjZUdyaW5Ub25ndWVXaW5rOkhQLGZhR3JpblRvbmd1ZVdpbms6QXhlLGZhSG91cmdsYXNzSGFsZjpxUCxmYUhvdXJnbGFzczI6RHhlLGZhQ3JlZGl0Q2FyZDpWUCxmYUNyZWRpdENhcmRBbHQ6RXhlLGZhSGFuZFNwb2NrOlB4ZSxmYUJlbGxTbGFzaDpJeGUsZmFTdGFyOk54ZSxmYUZsYWc6RnhlLGZhTGVtb246T3hlLGZhV2luZG93UmVzdG9yZTpSeGUsZmFGYWNlR3JpbkhlYXJ0czpqUCxmYUdyaW5IZWFydHM6QnhlLGZhRmFjZUtpc3NCZWFtOlVQLGZhS2lzc0JlYW06SHhlLGZhRmlsZVBkZjpxeGUsZmFGYWNlR3JpbldpZGU6V1AsZmFHcmluQWx0OlZ4ZSxmYUZhY2VMYXVnaFNxdWludDpHUCxmYUxhdWdoU3F1aW50Omp4ZSxmYUZhY2VLaXNzV2lua0hlYXJ0OllQLGZhS2lzc1dpbmtIZWFydDpVeGUsZmFDb3B5OktmLGZhQ2hlc3NLaW5nOld4ZSxmYVNxdWFyZVBsdXM6WlAsZmFQbHVzU3F1YXJlOkd4ZSxmYUZpbGVDb2RlOll4ZSxmYUZhY2VHcmluV2luazpYUCxmYUdyaW5XaW5rOlp4ZSxmYU1vbmV5QmlsbDE6S1AsZmFNb25leUJpbGxBbHQ6WHhlLGZhRXllU2xhc2g6S3hlLGZhRmlsZVdvcmQ6UXhlLGZhRmFjZUFuZ3J5OlFQLGZhQW5ncnk6SnhlLGZhQ2hlc3NLbmlnaHQ6ZXdlLGZhRmFjZUdyaW5CZWFtOkpQLGZhR3JpbkJlYW06dHdlLGZhSGFuZFBlYWNlOmF3ZSxmYUNvbXBhc3M6aXdlLGZhU3F1YXJlOnJ3ZSxmYUZhY2VHcmluOmVJLGZhR3Jpbjpzd2UsZmFGYWNlU21pbGU6dEksZmFTbWlsZTpud2UsZmFGYWNlU21pbGVCZWFtOmFJLGZhU21pbGVCZWFtOm93ZSxmYUZvbGRlckNsb3NlZDpsd2UsZmFLZXlib2FyZDpjd2UsZmFGYWNlUm9sbGluZ0V5ZXM6aUksZmFNZWhSb2xsaW5nRXllczpkd2UsZmFGYWNlR3JpbWFjZTpySSxmYUdyaW1hY2U6aHdlLGZhQ2lyY2xlRG90OnNJLGZhRG90Q2lyY2xlOnB3ZSxmYU9iamVjdEdyb3VwOnV3ZSxmYUZhY2VGbHVzaGVkOm5JLGZhRmx1c2hlZDpmd2UsZmFTdGFySGFsZlN0cm9rZTpvSSxmYVN0YXJIYWxmQWx0Om13ZSxmYUZpbGVWaWRlbzpnd2UsZmFGYWNlTGF1Z2g6bEksZmFMYXVnaDpid2UsZmFIYW5kUG9pbnRlcjp2d2UsZmFSZWdpc3RlcmVkOnl3ZX19KTt2YXIgU2p0LHd3ZSxNd2UsendlLGt3ZSxTd2UsQ3dlLF93ZSxUd2UsTHdlLCR3ZSxRZixBd2UsRHdlLEV3ZSxQd2UsY0ksSXdlLGRJLE53ZSxGd2UsT3dlLGhJLFJ3ZSxCd2UsSHdlLHF3ZSxRNSxWd2UsandlLHBJLFV3ZSxXd2UsR3dlLFl3ZSxad2UsWHdlLEt3ZSxRd2UsdUksSndlLGVNZSx0TWUsZkksYU1lLGlNZSxyTWUsc01lLG5NZSxKNSxvTWUsbUksbE1lLGNNZSxKZixkTWUsaE1lLGdJLHBNZSxiSSx1TWUsZk1lLHZJLG1NZSx5SSxnTWUseEksYk1lLHZNZSx5TWUseE1lLHdNZSxNTWUsek1lLHdJLGtNZSxTTWUsQ01lLF9NZSxNSSxUTWUsTE1lLCRNZSxBTWUsRE1lLEVNZSxlbSxQTWUsSU1lLE5NZSx0bSxGTWUsT01lLFJNZSx6SSxCTWUsSE1lLHFNZSxWTWUsa0ksak1lLFptLFVNZSxYbSxXTWUsR01lLFNJLFlNZSxDSSxaTWUsWE1lLGFtLEtNZSxRTWUsSk1lLGV6ZSx0emUsYXplLGl6ZSxyemUsS20sZTgsc3plLG56ZSxfSSxvemUsbHplLE41LGN6ZSxkemUsaHplLFRJLHB6ZSx1emUsZnplLExJLG16ZSwkSSxnemUsYnplLHZ6ZSx5emUsQUkseHplLHd6ZSxNemUsREksenplLEVJLGt6ZSxTemUsQ3plLF96ZSxpbSxUemUsTHplLCR6ZSxBemUsRHplLEV6ZSxQemUsUEksSXplLE56ZSxGemUsT3plLFJ6ZSxJSSxCemUsSHplLEY1LHF6ZSxWemUsanplLFV6ZSxXemUsR3plLHJtLFl6ZSxaemUsWHplLEt6ZSxRemUsTkksSnplLGVrZSx0a2UsYWtlLGlrZSxya2UsRkksc2tlLG5rZSxva2UsbGtlLE9JLGNrZSxka2UsaGtlLFJJLHBrZSx1a2UsQkksZmtlLEhJLG1rZSxna2UscUksYmtlLHZrZSxWSSx5a2UsakkseGtlLHdrZSx0OCxNa2UsYTgsemtlLGtrZSxzbSxTa2UsQ2tlLF9rZSxVSSxUa2UsTGtlLFdJLCRrZSxBa2UsRGtlLEVrZSxHSSxQa2UsSWtlLE5rZSxGa2UsT2tlLFlJLFJrZSxCa2UsSGtlLHFrZSxaSSxWa2UsWEksamtlLFVrZSxXa2UsR2tlLFlrZSxLSSxaa2UsWGtlLEtrZSxRa2UsUUksSmtlLGVTZSxKSSx0U2UsZU4sYVNlLGlTZSxyU2Usc1NlLG5TZSxvU2UsdE4sbFNlLGNTZSxkU2UsaFNlLHBTZSxhTix1U2UsZlNlLG1TZSxnU2UsaU4sYlNlLHJOLHZTZSxRbSxKbSxzTix5U2Usbk4seFNlLHdTZSxNU2UsZjgsb04selNlLGtTZSxTU2UsQ1NlLF9TZSxUU2UsbE4sTFNlLGVnLCRTZSxBU2UsRFNlLEVTZSxQU2UsY04sSVNlLGROLE5TZSxGU2UsT1NlLFJTZSxoTixCU2Usbm0sSFNlLHFTZSxWU2UscE4salNlLFVTZSxXU2UsR1NlLHVOLFlTZSxaU2UsWFNlLEtTZSxmTixRU2UsSlNlLGVDZSx0Q2UsYUNlLGlDZSxyQ2Usc0NlLG5DZSxvQ2UsbENlLGNDZSxkQ2UsbU4saENlLHBDZSx1Q2UsZkNlLG1DZSxnQ2UsYkNlLGdOLHZDZSx5Q2UseENlLGRsLHdDZSxNQ2UsekNlLGtDZSxTQ2UsYk4sQ0NlLHZOLF9DZSx5TixUQ2UseE4sTENlLHdOLCRDZSxpOCxBQ2UsTU4sRENlLHpOLEVDZSxrTixQQ2UsSUNlLE5DZSxGQ2UsU04sT0NlLFJDZSxDTixCQ2UsSENlLF9OLHFDZSxWQ2UsakNlLFVDZSxUTixXQ2UsR0NlLFlDZSxMTixaQ2UsWENlLE81LEtDZSxRQ2UsSkNlLGVfZSx0X2UsYV9lLCROLGlfZSxBTixyX2Usc19lLG5fZSxETixvX2UsbF9lLGNfZSxFTixkX2UsUE4saF9lLG9tLHBfZSx1X2UsZl9lLG1fZSxnX2UsYl9lLHZfZSx5X2UseF9lLHdfZSxNX2Usel9lLGtfZSxTX2UsUjUsQ19lLF9fZSxUX2UsTF9lLCRfZSxBX2UsRF9lLEVfZSxJTixQX2UsSV9lLE5fZSxGX2UsT19lLFJfZSxCX2UsSF9lLHFfZSxWX2UsTk4sal9lLFVfZSxXX2UsR19lLFlfZSxaX2UsWF9lLEZOLEtfZSxPTixRX2UsSl9lLFJOLGVUZSx0VGUsYVRlLGlUZSxCTixyVGUsc1RlLG5UZSxITixvVGUscU4sbFRlLGNUZSxWTixkVGUsaFRlLHBUZSx1VGUsak4sZlRlLG1UZSxnVGUsdGcsYlRlLHZUZSx5VGUsVU4seFRlLHdUZSxNVGUselRlLGtUZSxXTixTVGUsQ1RlLF9UZSxUVGUsTFRlLEdOLCRUZSxBVGUsRFRlLFlOLEVUZSxQVGUsbG0sSVRlLE5UZSxGVGUsT1RlLFpOLFJUZSxCVGUsSFRlLFhOLHFUZSxLTixWVGUsalRlLFVUZSxXVGUscjgsR1RlLFFOLFlUZSxaVGUsWFRlLEtUZSxRVGUsSk4sSlRlLGVGLGVMZSx0Rix0TGUsYUxlLGNtLGlMZSxyTGUsYUYsc0xlLGRtLG5MZSxvTGUsbExlLGNMZSxkTGUsaExlLHBMZSx1TGUsaUYsZkxlLG1MZSxnTGUsYkxlLHZMZSxyRix5TGUseExlLHdMZSxzRixNTGUsbkYsekxlLG9GLGtMZSxTTGUsQ0xlLF9MZSxUTGUsTExlLCRMZSxsRixBTGUsRExlLEVMZSxQTGUsY0YsSUxlLE5MZSxGTGUsT0xlLFJMZSxCTGUsZEYsSExlLHFMZSxoRixWTGUsakxlLHBGLFVMZSxXTGUsR0xlLFlMZSx1RixaTGUsWExlLEtMZSxmRixRTGUsbUYsSkxlLGUkZSx0JGUsYSRlLGdGLGkkZSxyJGUscyRlLG4kZSxvJGUsYkYsbCRlLHZGLGMkZSx5RixkJGUsaCRlLHhGLHAkZSx3Rix1JGUsZiRlLG0kZSxnJGUsYiRlLHYkZSx5JGUseCRlLHckZSxNJGUseiRlLGhtLGskZSxTJGUsZmwsQyRlLF8kZSxUJGUscG0sTCRlLCQkZSxBJGUsRCRlLEUkZSxQJGUsSSRlLE1GLE4kZSx6RixGJGUsTyRlLFIkZSxrRixCJGUsU0YsSCRlLHEkZSx1bSxWJGUsaiRlLFUkZSxXJGUsaGwsRyRlLFkkZSxaJGUsWCRlLEskZSxRJGUsSiRlLENGLGVBZSx0QWUsYUFlLGlBZSxfRixyQWUsc0FlLG5BZSxvQWUsbEFlLGNBZSxkQWUsVEYsaEFlLHBBZSx1QWUsZkFlLG1BZSxnQWUsTEYsYkFlLGFnLCRGLHZBZSx5QWUseEFlLEFGLHdBZSxERixNQWUsekFlLGtBZSxFRixTQWUsQ0FlLFBGLF9BZSxUQWUsTEFlLCRBZSxJRixBQWUsREFlLEVBZSxQQWUsSUFlLE5BZSxORixGQWUsT0FlLGlnLFJBZSxCQWUsRkYsSEFlLHFBZSxWQWUsQjUsakFlLFVBZSxXQWUsR0FlLEg1LFlBZSxaQWUsWEFlLEtBZSxRQWUsSkFlLE9GLGVEZSxmbSx0RGUsYURlLGlEZSxSRixyRGUsc0RlLG5EZSxvRGUsbERlLGNEZSxkRGUsQkYsaERlLHJnLHBEZSx1RGUsZkRlLEhGLG1EZSxxRixnRGUsYkRlLFZGLHZEZSxxNSx5RGUseERlLHdEZSxNRGUsekRlLGtEZSxTRGUsQ0RlLF9EZSxqRixURGUsTERlLCREZSxBRGUsbW0sRERlLEVEZSxVRixQRGUsSURlLE5EZSxXRixGRGUsT0RlLFJEZSxHRixCRGUsSERlLHFEZSxWRGUsakRlLFVEZSxXRGUsR0RlLFlEZSxZRixaRGUsWkYsWERlLEtEZSxRRGUsSkRlLGVFZSx0RWUsYUVlLFhGLGlFZSxyRWUsc0VlLEtGLG5FZSxvRWUsUUYsbEVlLEpGLGNFZSxlTyxkRWUsaEVlLHBFZSx0Tyx1RWUsYU8sZkVlLGlPLG1FZSxnRWUsck8sYkVlLHNPLHZFZSxuTyx5RWUseEVlLG9PLHdFZSxNRWUsekVlLGtFZSxTRWUsQ0VlLF9FZSxURWUsTEVlLCRFZSxsTyxBRWUsY08sREVlLGRPLEVFZSxQRWUsc2csSUVlLGhPLE5FZSxGRWUsT0VlLHBPLFJFZSxCRWUsdU8sSEVlLHM4LHFFZSxWRWUsakVlLGZPLFVFZSxtTyxXRWUsR0VlLGdPLFlFZSxiTyxaRWUsdk8sWEVlLEtFZSxRRWUsSkVlLGVQZSx5Tyx0UGUseE8sYVBlLGlQZSxyUGUsc1BlLHdPLG5QZSxvUGUsbFBlLE1PLGNQZSxkUGUsaFBlLHpPLHBQZSx1UGUsZlBlLG1QZSxrTyxnUGUsYlBlLFNPLHZQZSx5UGUseFBlLENPLHdQZSxNUGUselBlLF9PLGtQZSxUTyxTUGUsZ20sQ1BlLF9QZSxUUGUsTE8sTFBlLCRQZSxBUGUsJE8sRFBlLEVQZSxQUGUsQU8sSVBlLE5QZSxGUGUsT1BlLFJQZSxCUGUsSFBlLHFQZSxWUGUsalBlLFVQZSxXUGUsRE8sR1BlLG5nLFlQZSxFTyxaUGUsWFBlLEtQZSxRUGUsUE8sSlBlLGVJZSx0SWUsYUllLGlJZSxySWUsc0llLFY1LG5JZSxvSWUsbEllLGNJZSxuOCxkSWUsSU8saEllLHBJZSx1SWUsTk8sZkllLG1JZSxGTyxnSWUsYkllLHZJZSx5SWUseEllLE9PLHdJZSxSTyxNSWUsekllLGtJZSxCTyxTSWUsQ0llLF9JZSxITyxUSWUsTEllLCRJZSxBSWUsREllLEVJZSxQSWUscU8sSUllLG9nLE5JZSxGSWUsT0llLFZPLFJJZSxCSWUsak8sSEllLFVPLHFJZSxWSWUsakllLFdPLFVJZSxHTyxXSWUsWU8sR0llLFlJZSxaTyxaSWUsWEllLEtJZSxRSWUsWE8sSkllLGo1LGVOZSx0TmUsYU5lLGlOZSxLTyxyTmUsUU8sc05lLG5OZSxvTmUsbE5lLEpPLGNOZSxVNSxkTmUsaE5lLHBOZSxlUix1TmUsZk5lLG1OZSxnTmUsdFIsYk5lLGFSLHZOZSx5TmUseE5lLGlSLHdOZSxyUixNTmUsek5lLHNSLGtOZSxuUixTTmUsb1IsQ05lLGxSLF9OZSxUTmUsTE5lLCROZSxjUixBTmUsRE5lLEVOZSxQTmUsSU5lLE5OZSxGTmUsT05lLGRSLFJOZSxoUixCTmUsSE5lLHFOZSxWTmUscFIsak5lLFVOZSxibSxXTmUsR05lLFlOZSxaTmUsWE5lLEtOZSxRTmUsVzUsSk5lLGVGZSx0RmUsYUZlLGlGZSxyRmUsc0ZlLG5GZSxvRmUsbEZlLGNGZSxkRmUsaEZlLHZtLHBGZSx1RmUsZkZlLG1GZSxnRmUsYkZlLHVSLHZGZSxmUix5RmUseEZlLHdGZSx5bSxNRmUsekZlLGtGZSxtUixTRmUseG0sQ0ZlLF9GZSxURmUsTEZlLGxnLHdtLCRGZSxBRmUsZ1IsREZlLEVGZSxQRmUsSUZlLGJSLE5GZSxGRmUsdlIsT0ZlLFJGZSx5UixCRmUsSEZlLHFGZSxWRmUsakZlLFVGZSxNbSxXRmUsR0ZlLHhSLFlGZSxaRmUsWEZlLEtGZSxRRmUsSkZlLGVPZSx0T2Usd1IsYU9lLGlPZSxNUixyT2UselIsc09lLG5PZSxpbyxvT2UsbE9lLGNPZSxkT2Usa1IsaE9lLHBPZSx1T2UsZk9lLFNSLG1PZSxDUixnT2Usem0sYk9lLHZPZSx5T2UsX1IseE9lLGNnLHdPZSxNT2UsVFIsek9lLGttLGtPZSxTT2UsQ09lLF9PZSxUT2UsTE9lLG84LCRPZSxBT2UsTFIsRE9lLEVPZSxQT2UsJFIsSU9lLEFSLE5PZSxHNSxGT2UsT09lLFJPZSxCT2UsSE9lLHFPZSxWT2UsRFIsak9lLFVPZSxFUixXT2UsUFIsR09lLElSLFlPZSxaT2UsWE9lLEtPZSxRT2UsSk9lLE5SLGVSZSx0UmUsYVJlLGlSZSxyUmUsRlIsc1JlLE9SLG5SZSxSUixvUmUsbFJlLGNSZSxTbSxkUmUsaFJlLHBSZSx1UmUsZlJlLEJSLG1SZSxIUixnUmUsYlJlLHZSZSx5UmUscVIseFJlLFZSLHdSZSxNUmUsQ20selJlLGtSZSxTUmUsQ1JlLF9SZSxqUixUUmUsTFJlLFVSLCRSZSxXUixBUmUsRFJlLEVSZSxQUmUsSVJlLE5SZSxGUmUsT1JlLFJSZSxCUmUsR1IsSFJlLHFSZSxWUmUsalJlLF9tLFVSZSxXUmUsR1JlLFlSZSxZUixaUmUsWFJlLFpSLEtSZSxRUmUsSlJlLGVCZSxYUix0QmUsYUJlLGlCZSxsOCxyQmUsc0JlLFRtLG5CZSxvQmUsS1IsbEJlLGNCZSxkQmUsaEJlLHBCZSxRUix1QmUsZkJlLEpSLG1CZSxlQixnQmUsYkJlLHZCZSx5QmUseEJlLHRCLHdCZSxhQixNQmUsaUIsekJlLGtCZSxTQmUsQ0JlLHJCLF9CZSxUQmUsc0IsTEJlLCRCZSxBQmUsbkIsREJlLEVCZSxMbSxQQmUsSUJlLG9CLE5CZSxsQixGQmUsY0IsT0JlLGRnLGRCLFJCZSxoQixCQmUsSEJlLHFCZSxWQmUsakJlLFVCZSwkbSxXQmUsR0JlLFlCZSxwQixaQmUsWEJlLEtCZSxBbSxRQmUsSkJlLGVIZSx0SGUsRG0sYUhlLGlIZSxySGUsc0hlLHVCLG5IZSxmQixvSGUsbEhlLGNIZSxkSGUsaEhlLEVtLHBIZSx1SGUsZkhlLG1IZSxnSGUsYkhlLFBtLHZIZSx5SGUseEhlLG1CLHdIZSxNSGUsekhlLGtIZSxnQixTSGUsQ0hlLF9IZSxUSGUsTEhlLCRIZSxiQixBSGUsREhlLEVIZSxQSGUsdkIsSUhlLE5IZSxZNSxGSGUsT0hlLFJIZSx5QixCSGUsSEhlLHFIZSxWSGUsakhlLFVIZSxXSGUsR0hlLFlIZSx4QixaSGUsWEhlLHdCLEtIZSxRSGUsSkhlLE1CLGVxZSx0cWUsYXFlLGlxZSxycWUsekIsc3FlLGhnLGtCLG5xZSxvcWUsbHFlLGNxZSxkcWUsU0IsaHFlLHBxZSx1cWUsZnFlLG1xZSxDQixncWUsYnFlLHZxZSx5cWUseHFlLEltLHdxZSxNcWUsenFlLGtxZSxTcWUsX0IsQ3FlLFRCLF9xZSxUcWUsTHFlLE5tLCRxZSxBcWUsRHFlLExCLEVxZSwkQixQcWUsSXFlLE5xZSxGcWUsT3FlLFJxZSxBQixCcWUsSHFlLERCLHFxZSxFQixWcWUsUEIsanFlLFVxZSxJQixXcWUsTkIsR3FlLFlxZSxacWUsWHFlLEtxZSxRcWUsSnFlLGVWZSx0VmUsRkIsYVZlLGlWZSxGbSxyVmUsc1ZlLE9CLG5WZSxvVmUsbFZlLFJCLGNWZSxkVmUsaFZlLHBWZSxCQix1VmUsZlZlLG1WZSxnVmUsYlZlLEhCLHZWZSx5VmUseFZlLE9tLHdWZSxNVmUselZlLGtWZSxTVmUsQ1ZlLFJtLF9WZSxUVmUsTFZlLHFCLCRWZSxWQixBVmUsRFZlLEVWZSxQVmUsakIsSVZlLFVCLE5WZSxGVmUsV0IsT1ZlLFJWZSxHQixCVmUsSFZlLHFWZSxWVmUsWUIsalZlLFVWZSxXVmUsR1ZlLGM4LFlWZSxwZyxaVmUsWFZlLEtWZSxRVmUsWkIsSlZlLFhCLGVqZSx0amUsYWplLGlqZSxaNSxyamUsc2plLG5qZSxYNSxvamUsbGplLGNqZSxLQixkamUsaGplLEJtLHBqZSx1amUsZmplLG1qZSxRQixnamUsYmplLHZqZSxKQix5amUseGplLHdqZSxNamUsemplLGVILGtqZSxIbSxTamUsQ2plLF9qZSxUamUsTGplLCRqZSx0SCxBamUsYUgsRGplLGlILEVqZSxQamUsckgsSWplLHVnLHNILE5qZSxGamUsT2plLG5ILFJqZSxCamUsZmcsb0gsSGplLHFqZSxWamUsamplLHBsLFVqZSxXamUsR2plLFlqZSxsSCxaamUsWGplLEtqZSxjSCxRamUsSmplLGVVZSx0VWUsZEgsYVVlLGlVZSxyVWUsc1VlLG5VZSxxbSxvVWUsbFVlLGQ4LGNVZSxoSCxkVWUscEgsaFVlLHBVZSx1VWUsZlVlLHVILG1VZSxnVWUsYlVlLHZVZSxmSCx5VWUseFVlLHdVZSxtSCxNVWUselVlLGtVZSxTVWUsZ0gsQ1VlLF9VZSxUVWUsYkgsTFVlLCRVZSxBVWUsaDgsRFVlLEVVZSx2SCxQVWUseUgsSVVlLHhILE5VZSx3SCxGVWUsT1VlLE1ILFJVZSxCVWUsSFVlLHFVZSxWVWUsalVlLHpILFVVZSxXVWUsa0gsR1VlLFlVZSxTSCxaVWUsWFVlLEtVZSxDSCxRVWUsSlVlLGVXZSx0V2UsYVdlLHVsLGlXZSxyV2Usc1dlLG5XZSxvV2UsbFdlLGNXZSxkV2UsaFdlLHBXZSx1V2UsZldlLG1XZSxnV2UsYldlLHZXZSx5V2UsX0gseFdlLHdXZSxNV2UseldlLFRILGtXZSxTV2UsQ1dlLEs1LF9XZSxUV2UsTFdlLCRXZSxBV2UsTEgsRFdlLHA4LEVXZSxQV2UsSVdlLCRILE5XZSxGV2UsT1dlLFJXZSxBSCxCV2UsSFdlLERILHFXZSxWV2UsaldlLEVILFVXZSxXV2UsUEgsR1dlLElILFlXZSxaV2UsWFdlLEtXZSxRV2UsTkgsSldlLGVHZSx0R2UsRkgsYUdlLGlHZSxyR2Usc0dlLG5HZSxvR2UsbEdlLE9ILGNHZSxSSCxkR2UsQkgsaEdlLFZtLHBHZSx1R2UsSEgsZkdlLHFILG1HZSxWSCxnR2UsYkdlLHZHZSx5R2UseEdlLHdHZSxqSCxNR2UsVUgsekdlLGtHZSxTR2UsQ0dlLF9HZSxXSCxUR2UsR0gsTEdlLFlILCRHZSxaSCxBR2UsREdlLEVHZSxQR2UsWEgsSUdlLE5HZSxqbSxGR2UsT0dlLEtILFJHZSxCR2UsSEdlLHFHZSxRSCxWR2UsakdlLFVHZSxXR2UsSkgsR0dlLG1sLFlHZSxaR2UsZXEsWEdlLHRxLEtHZSxRR2UsSkdlLFVtLGVZZSx0WWUsYVllLGFxLGlZZSxpcSxyWWUscnEsc1llLHNxLG5ZZSxvWWUsbFllLGNZZSxkWWUsaFllLHBZZSxXbSx1WWUsZlllLG1ZZSxnWWUsYlllLG5xLHZZZSx5WWUseFllLHdZZSxNWWUselllLG9xLGtZZSxTWWUsbHEsQ1llLF9ZZSxHbSxUWWUsTFllLCRZZSx1OCxBWWUsRFllLEVZZSxjcSxQWWUsZHEsSVllLE5ZZSxGWWUsT1llLFJZZSxocSxCWWUsSFllLHFZZSxWWWUsalllLFltLFVZZSxXWWUsR1llLFlZZSxaWWUscHEsWFllLHVxLEtZZSxRWWUsZnEsSlllLG1xLGVaZSxncSx0WmUsYnEsYVplLGlaZSx2cSxyWmUsc1plLG5aZSxvWmUsbFplLGNaZSxDanQsZFplPWIoKCk9PntTanQ9ImZhcyIsd3dlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6IjAiLGljb246WzMyMCw1MTIsW10sIjMwIiwiTTAgMTkyQzAgMTAzLjYgNzEuNiAzMiAxNjAgMzJzMTYwIDcxLjYgMTYwIDE2MGwwIDEyOGMwIDg4LjQtNzEuNiAxNjAtMTYwIDE2MFMwIDQwOC40IDAgMzIwTDAgMTkyek0xNjAgOTZjLTUzIDAtOTYgNDMtOTYgOTZsMCAxMjhjMCA1MyA0MyA5NiA5NiA5NnM5Ni00MyA5Ni05NmwwLTEyOGMwLTUzLTQzLTk2LTk2LTk2eiJdfSxNd2U9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiMSIsaWNvbjpbMjU2LDUxMixbXSwiMzEiLCJNMzIgMzJDMTQuMyAzMiAwIDQ2LjMgMCA2NFMxNC4zIDk2IDMyIDk2bDY0IDAgMCAzMjAtNjQgMGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJzMTQuMyAzMiAzMiAzMmwxOTIgMGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMmwtNjQgMCAwLTM1MmMwLTE3LjctMTQuMy0zMi0zMi0zMkwzMiAzMnoiXX0sendlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6IjIiLGljb246WzM4NCw1MTIsW10sIjMyIiwiTTQ4IDY0YzAtMTcuNyAxNC4zLTMyIDMyLTMybDE3MSAwYzYwLjIgMCAxMDkgNDguOCAxMDkgMTA5IDAgNDMuOC0yNi4yIDgzLjMtNjYuNCAxMDAuNGwtMTM5LjEgNTlDMTE5IDMxNS40IDk2IDM1MC4yIDk2IDM4OC43bDAgMjcuMyAyMjQgMGMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMkw2NCA0ODBjLTE3LjcgMC0zMi0xNC4zLTMyLTMybDAtNTkuM2MwLTY0LjIgMzguNC0xMjIuMiA5Ny41LTE0Ny4zbDEzOS4xLTU5YzE2LjYtNy4xIDI3LjQtMjMuNCAyNy40LTQxLjQgMC0yNC45LTIwLjItNDUtNDUtNDVMODAgOTZDNjIuMyA5NiA0OCA4MS43IDQ4IDY0eiJdfSxrd2U9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiMyIsaWNvbjpbMzIwLDUxMixbXSwiMzMiLCJNODAgMjg4Yy0xNy43IDAtMzItMTQuMy0zMi0zMnMxNC4zLTMyIDMyLTMybDExMiAwYzM1LjMgMCA2NC0yOC43IDY0LTY0cy0yOC43LTY0LTY0LTY0TDMyIDk2QzE0LjMgOTYgMCA4MS43IDAgNjRTMTQuMyAzMiAzMiAzMmwxNjAgMGM3MC43IDAgMTI4IDU3LjMgMTI4IDEyOCAwIDM4LjItMTYuOCA3Mi41LTQzLjMgOTYgMjYuNiAyMy41IDQzLjMgNTcuOCA0My4zIDk2IDAgNzAuNy01Ny4zIDEyOC0xMjggMTI4TDMyIDQ4MGMtMTcuNyAwLTMyLTE0LjMtMzItMzJzMTQuMy0zMiAzMi0zMmwxNjAgMGMzNS4zIDAgNjQtMjguNyA2NC02NHMtMjguNy02NC02NC02NEw4MCAyODh6Il19LFN3ZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiI0IixpY29uOlszODQsNTEyLFtdLCIzNCIsIk02NCA2NGMwLTE3LjctMTQuMy0zMi0zMi0zMlMwIDQ2LjMgMCA2NEwwIDI4OGMwIDM1LjMgMjguNyA2NCA2NCA2NGwxOTIgMCAwIDk2YzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJsMC05NiAzMiAwYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMybC0zMiAwIDAtMjI0YzAtMTcuNy0xNC4zLTMyLTMyLTMycy0zMiAxNC4zLTMyIDMybDAgMjI0LTE5MiAwIDAtMjI0eiJdfSxDd2U9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiNSIsaWNvbjpbMzIwLDUxMixbXSwiMzUiLCJNMCA2NEMwIDQ2LjMgMTQuMyAzMiAzMiAzMmwyMjQgMGMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMmwtMTkyIDAgMCAxMTIgMTIwIDBjNzUuMSAwIDEzNiA2MC45IDEzNiAxMzZTMjU5LjEgNDgwIDE4NCA0ODBMMzIgNDgwYy0xNy43IDAtMzItMTQuMy0zMi0zMnMxNC4zLTMyIDMyLTMybDE1MiAwYzM5LjggMCA3Mi0zMi4yIDcyLTcycy0zMi4yLTcyLTcyLTcyTDMyIDI3MmMtMTcuNyAwLTMyLTE0LjMtMzItMzJMMCA2NHoiXX0sX3dlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6IjYiLGljb246WzM4NCw1MTIsW10sIjM2IiwiTTI1NiAzMmMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMmwtODggMGMtNDguNiAwLTg4IDM5LjQtODggODhsMCAzMi4yYzIyLjktMTUuMyA1MC40LTI0LjIgODAtMjQuMmw0OCAwYzc5LjUgMCAxNDQgNjQuNSAxNDQgMTQ0UzI4Ny41IDQ4MCAyMDggNDgwbC00OCAwQzgwLjUgNDgwIDE2IDQxNS41IDE2IDMzNmwwLTE1MkMxNiAxMDAuMSA4NC4xIDMyIDE2OCAzMmw4OCAwek04MCAzMzZjMCA0NC4yIDM1LjggODAgODAgODBsNDggMGM0NC4yIDAgODAtMzUuOCA4MC04MHMtMzUuOC04MC04MC04MGwtNDggMGMtNDQuMiAwLTgwIDM1LjgtODAgODB6Il19LFR3ZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiI3IixpY29uOlszMjAsNTEyLFtdLCIzNyIsIk0wIDY0QzAgNDYuMyAxNC4zIDMyIDMyIDMybDI1NiAwYzExLjUgMCAyMiA2LjEgMjcuNyAxNi4xczUuNyAyMi4yLS4xIDMyLjFsLTIyNCAzODRjLTguOSAxNS4zLTI4LjUgMjAuNC00My44IDExLjVzLTIwLjQtMjguNS0xMS41LTQzLjhMMjMyLjMgOTYgMzIgOTZDMTQuMyA5NiAwIDgxLjcgMCA2NHoiXX0sTHdlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6IjgiLGljb246WzMyMCw1MTIsW10sIjM4IiwiTTMwNCAxNjBjMC03MC43LTU3LjMtMTI4LTEyOC0xMjhsLTMyIDBjLTcwLjcgMC0xMjggNTcuMy0xMjggMTI4IDAgMzQuNiAxMy43IDY2IDM2IDg5LTMxLjUgMjMuMy01MiA2MC44LTUyIDEwMyAwIDcwLjcgNTcuMyAxMjggMTI4IDEyOGw2NCAwYzcwLjcgMCAxMjgtNTcuMyAxMjgtMTI4IDAtNDIuMi0yMC41LTc5LjctNTItMTAzIDIyLjMtMjMgMzYtNTQuNCAzNi04OXpNMTc2LjEgMjg4bDE1LjkgMGMzNS4zIDAgNjQgMjguNyA2NCA2NHMtMjguNyA2NC02NCA2NGwtNjQgMGMtMzUuMyAwLTY0LTI4LjctNjQtNjRzMjguNy02NCA2NC02NGw0OC4xIDB6bTAtNjRMMTQ0IDIyNGMtMzUuMyAwLTY0LTI4LjctNjQtNjQgMC0zNS4zIDI4LjctNjQgNjQtNjRsMzIgMGMzNS4zIDAgNjQgMjguNyA2NCA2NCAwIDM1LjMtMjguNiA2NC02NCA2NHoiXX0sJHdlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6IjkiLGljb246WzM4NCw1MTIsW10sIjM5IiwiTTIwOCAzMjBjMjkuNiAwIDU3LjEtOC45IDgwLTI0LjJsMCAzMi4yYzAgNDguNi0zOS40IDg4LTg4IDg4TDk2IDQxNmMtMTcuNyAwLTMyIDE0LjMtMzIgMzJzMTQuMyAzMiAzMiAzMmwxMDQgMGM4My45IDAgMTUyLTY4LjEgMTUyLTE1MmwwLTE1Mi4xQzM1MS45IDk2LjQgMjg3LjUgMzIgMjA4IDMybC00OCAwQzgwLjUgMzIgMTYgOTYuNSAxNiAxNzZTODAuNSAzMjAgMTYwIDMyMGw0OCAwem04MC0xNDRjMCA0NC4yLTM1LjggODAtODAgODBsLTQ4IDBjLTQ0LjIgMC04MC0zNS44LTgwLTgwczM1LjgtODAgODAtODBsNDggMGM0NC4yIDAgODAgMzUuOCA4MCA4MHoiXX0sUWY9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZG9sbGFyLXNpZ24iLGljb246WzMyMCw1MTIsWzEyODE3OCw2MTc4MSwiZG9sbGFyIiwidXNkIl0sIjI0IiwiTTEzNiAyNGMwLTEzLjMgMTAuNy0yNCAyNC0yNHMyNCAxMC43IDI0IDI0bDAgNDAgNTYgMGMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMmwtMTE0LjkgMGMtMjQuOSAwLTQ1LjEgMjAuMi00NS4xIDQ1LjEgMCAyMi41IDE2LjUgNDEuNSAzOC43IDQ0LjdsOTEuNiAxMy4xYzUzLjggNy43IDkzLjcgNTMuNyA5My43IDEwOCAwIDYwLjMtNDguOSAxMDkuMS0xMDkuMSAxMDkuMWwtMTAuOSAwIDAgNDBjMCAxMy4zLTEwLjcgMjQtMjQgMjRzLTI0LTEwLjctMjQtMjRsMC00MC03MiAwYy0xNy43IDAtMzItMTQuMy0zMi0zMnMxNC4zLTMyIDMyLTMybDEzMC45IDBjMjQuOSAwIDQ1LjEtMjAuMiA0NS4xLTQ1LjEgMC0yMi41LTE2LjUtNDEuNS0zOC43LTQ0LjdsLTkxLjYtMTMuMUM1NS45IDI3My41IDE2IDIyNy40IDE2IDE3My4xIDE2IDExMi45IDY0LjkgNjQgMTI1LjEgNjRsMTAuOSAwIDAtNDB6Il19LEF3ZT1RZixEd2U9UWYsRXdlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImRvZyIsaWNvbjpbNTc2LDUxMixbMTI4MDIxXSwiZjZkMyIsIk0zMiAxMTJjMTYuNiAwIDMwLjIgMTIuNiAzMS44IDI4LjdsLjMgNi42QzY1LjggMTYzLjQgNzkuNCAxNzYgOTYgMTc2bDE3OS4xIDAgMTQwLjkgNjAuNCAwIDI0My42YzAgMTcuNy0xNC4zIDMyLTMyIDMybC0zMiAwYy0xNy43IDAtMzItMTQuMy0zMi0zMmwwLTEzMS4zQzI5NiAzNjEgMjY4LjggMzY4IDI0MCAzNjhzLTU2LTctODAtMTkuM0wxNjAgNDgwYzAgMTcuNy0xNC4zIDMyLTMyIDMybC0zMiAwYy0xNy43IDAtMzItMTQuMy0zMi0zMmwwLTI0NS42Yy0zNy4zLTEzLjItNjQtNDguNi02NC05MC40IDAtMTcuNyAxNC4zLTMyIDMyLTMyek0zNTUuOC0zMmM3LjcgMCAxNC45IDMuNiAxOS42IDkuOEwzOTIgMCA0NDQuMSAwYzEyLjcgMCAyNC45IDUuMSAzMy45IDE0LjFMNDk2IDMyIDU1MiAzMmMxMy4zIDAgMjQgMTAuNyAyNCAyNGwwIDI0YzAgNDQuMi0zNS44IDgwLTgwIDgwbC02NCAwLTcgMjgtMTI0LjctNTMuNCAzMS42LTE0Ny4yQzMzNC4zLTIzLjkgMzQ0LjItMzIgMzU1LjgtMzJ6TTQ0OCA0NGEyMCAyMCAwIDEgMCAwIDQwIDIwIDIwIDAgMSAwIDAtNDB6Il19LFB3ZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJ0cnVjay1tb3ZpbmciLGljb246WzY0MCw1MTIsW10sImY0ZGYiLCJNNjQgMzJDMjguNyAzMiAwIDYwLjcgMCA5NkwwIDQyNGMwIDQ4LjYgMzkuNCA4OCA4OCA4OCAyNS4yIDAgNDgtMTAuNiA2NC0yNy42IDE2IDE3IDM4LjggMjcuNiA2NCAyNy42IDQwLjMgMCA3NC4yLTI3LjEgODQuNy02NGwxMzQuNiAwYzEwLjQgMzYuOSA0NC40IDY0IDg0LjcgNjQgNDMgMCA3OC45LTMwLjkgODYuNS03MS43IDIwLTEwLjggMzMuNS0zMiAzMy41LTU2LjNsMC0xNDYuN2MwLTE3LTYuNy0zMy4zLTE4LjctNDUuM0w1NzYgMTQ2LjdjLTEyLTEyLTI4LjMtMTguNy00NS4zLTE4LjdsLTUwLjcgMCAwLTMyYzAtMzUuMy0yOC43LTY0LTY0LTY0TDY0IDMyek00ODAgMTkybDUwLjcgMCA0NS4zIDQ1LjMgMCA1MC43LTk2IDAgMC05NnpNODggMzg0YTQwIDQwIDAgMSAxIDAgODAgNDAgNDAgMCAxIDEgMC04MHptMzkyIDQwYTQwIDQwIDAgMSAxIDgwIDAgNDAgNDAgMCAxIDEgLTgwIDB6TTIxNiAzODRhNDAgNDAgMCAxIDEgMCA4MCA0MCA0MCAwIDEgMSAwLTgweiJdfSxjST17cHJlZml4OiJmYXMiLGljb25OYW1lOiJyb3RhdGUiLGljb246WzUxMiw1MTIsWzEyODI2MCwic3luYy1hbHQiXSwiZjJmMSIsIk00ODAuMSAxOTJsNy45IDBjMTMuMyAwIDI0LTEwLjcgMjQtMjRsMC0xNDRjMC05LjctNS44LTE4LjUtMTQuOC0yMi4yUzQ3Ny45IC4yIDQ3MSA3TDQxOS4zIDU4LjhDMzc1IDIyLjEgMzE4IDAgMjU2IDAgMTI3IDAgMjAuMyA5NS40IDIuNiAyMTkuNSAuMSAyMzcgMTIuMiAyNTMuMiAyOS43IDI1NS43czMzLjctOS43IDM2LjItMjcuMUM3OS4yIDEzNS41IDE1OS4zIDY0IDI1NiA2NCAzMDAuNCA2NCAzNDEuMiA3OSAzNzMuNyAxMDQuM0wzMjcgMTUxYy02LjkgNi45LTguOSAxNy4yLTUuMiAyNi4yUzMzNC4zIDE5MiAzNDQgMTkybDEzNi4xIDB6bTI5LjQgMTAwLjVjMi41LTE3LjUtOS43LTMzLjctMjcuMS0zNi4ycy0zMy43IDkuNy0zNi4yIDI3LjFjLTEzLjMgOTMtOTMuNCAxNjQuNS0xOTAuMSAxNjQuNS00NC40IDAtODUuMi0xNS0xMTcuNy00MC4zTDE4NSAzNjFjNi45LTYuOSA4LjktMTcuMiA1LjItMjYuMlMxNzcuNyAzMjAgMTY4IDMyMEwyNCAzMjBjLTEzLjMgMC0yNCAxMC43LTI0IDI0TDAgNDg4YzAgOS43IDUuOCAxOC41IDE0LjggMjIuMlMzNC4xIDUxMS44IDQxIDUwNWw1MS44LTUxLjhDMTM3IDQ4OS45IDE5NCA1MTIgMjU2IDUxMiAzODUgNTEyIDQ5MS43IDQxNi42IDUwOS40IDI5Mi41eiJdfSxJd2U9Y0ksZEk9e3ByZWZpeDoiZmFzIixpY29uTmFtZToic3F1YXJlLW1pbnVzIixpY29uOls0NDgsNTEyLFs2MTc2NywibWludXMtc3F1YXJlIl0sImYxNDYiLCJNNjQgMzJDMjguNyAzMiAwIDYwLjcgMCA5NkwwIDQxNmMwIDM1LjMgMjguNyA2NCA2NCA2NGwzMjAgMGMzNS4zIDAgNjQtMjguNyA2NC02NGwwLTMyMGMwLTM1LjMtMjguNy02NC02NC02NEw2NCAzMnptNzIgMjAwbDE3NiAwYzEzLjMgMCAyNCAxMC43IDI0IDI0cy0xMC43IDI0LTI0IDI0bC0xNzYgMGMtMTMuMyAwLTI0LTEwLjctMjQtMjRzMTAuNy0yNCAyNC0yNHoiXX0sTndlPWRJLEZ3ZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJhbGlnbi1qdXN0aWZ5IixpY29uOls0NDgsNTEyLFtdLCJmMDM5IiwiTTQ0OCA2NGMwLTE3LjctMTQuMy0zMi0zMi0zMkwzMiAzMkMxNC4zIDMyIDAgNDYuMyAwIDY0UzE0LjMgOTYgMzIgOTZsMzg0IDBjMTcuNyAwIDMyLTE0LjMgMzItMzJ6bTAgMjU2YzAtMTcuNy0xNC4zLTMyLTMyLTMyTDMyIDI4OGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJzMTQuMyAzMiAzMiAzMmwzODQgMGMxNy43IDAgMzItMTQuMyAzMi0zMnpNMCAxOTJjMCAxNy43IDE0LjMgMzIgMzIgMzJsMzg0IDBjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJMMzIgMTYwYy0xNy43IDAtMzIgMTQuMy0zMiAzMnpNNDQ4IDQ0OGMwLTE3LjctMTQuMy0zMi0zMi0zMkwzMiA0MTZjLTE3LjcgMC0zMiAxNC4zLTMyIDMyczE0LjMgMzIgMzIgMzJsMzg0IDBjMTcuNyAwIDMyLTE0LjMgMzItMzJ6Il19LE93ZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJjYWxlbmRhci1jaGVjayIsaWNvbjpbNDQ4LDUxMixbXSwiZjI3NCIsIk0zMjAgMGMxNy43IDAgMzIgMTQuMyAzMiAzMmwwIDMyIDMyIDBjMzUuMyAwIDY0IDI4LjcgNjQgNjRsMCAyODhjMCAzNS4zLTI4LjcgNjQtNjQgNjRMNjQgNDgwYy0zNS4zIDAtNjQtMjguNy02NC02NEwwIDEyOEMwIDkyLjcgMjguNyA2NCA2NCA2NGwzMiAwIDAtMzJjMC0xNy43IDE0LjMtMzIgMzItMzJzMzIgMTQuMyAzMiAzMmwwIDMyIDEyOCAwIDAtMzJjMC0xNy43IDE0LjMtMzIgMzItMzJ6bTIyIDE2MS43Yy0xMC43LTcuOC0yNS43LTUuNC0zMy41IDUuM0wxODkuMSAzMzEuMiAxMzcgMjc5LjFjLTkuNC05LjQtMjQuNi05LjQtMzMuOSAwcy05LjQgMjQuNiAwIDMzLjlsNzIgNzJjNSA1IDExLjkgNy41IDE4LjggN3MxMy40LTQuMSAxNy41LTkuOEwzNDcuMyAxOTUuMmM3LjgtMTAuNyA1LjQtMjUuNy01LjMtMzMuNXoiXX0saEk9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZmFjZS1raXNzIixpY29uOls1MTIsNTEyLFsxMjg1MzUsImtpc3MiXSwiZjU5NiIsIk0yNTYgNTEyYTI1NiAyNTYgMCAxIDAgMC01MTIgMjU2IDI1NiAwIDEgMCAwIDUxMnpNMjQwIDI4OGwzMiAwYzI2LjUgMCA0OCAyMS41IDQ4IDQ4IDAgMTIuMy00LjYgMjMuNS0xMi4yIDMyIDcuNiA4LjUgMTIuMiAxOS43IDEyLjIgMzIgMCAyNi41LTIxLjUgNDgtNDggNDhsLTMyIDBjLTguOCAwLTE2LTcuMi0xNi0xNnM3LjItMTYgMTYtMTZsMTYgMGM4LjggMCAxNi03LjIgMTYtMTZzLTcuMi0xNi0xNi0xNmwtMTYgMGMtOC44IDAtMTYtNy4yLTE2LTE2czcuMi0xNiAxNi0xNmwxNiAwYzguOCAwIDE2LTcuMiAxNi0xNnMtNy4yLTE2LTE2LTE2bC0xNiAwYy04LjggMC0xNi03LjItMTYtMTZzNy4yLTE2IDE2LTE2em0tOTYtODBhMzIgMzIgMCAxIDEgNjQgMCAzMiAzMiAwIDEgMSAtNjQgMHptMTkyLTMyYTMyIDMyIDAgMSAxIDAgNjQgMzIgMzIgMCAxIDEgMC02NHoiXX0sUndlPWhJLEJ3ZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJraXRjaGVuLXNldCIsaWNvbjpbNTc2LDUxMixbXSwiZTUxYSIsIk0yNDAgMTQ0YTk2IDk2IDAgMSAwIC0xOTIgMCA5NiA5NiAwIDEgMCAxOTIgMHptNDQuNCAzMkMyNjkuOSAyNDAuMSAyMTIuNSAyODggMTQ0IDI4OCA2NC41IDI4OCAwIDIyMy41IDAgMTQ0UzY0LjUgMCAxNDQgMGM2OC41IDAgMTI1LjkgNDcuOSAxNDAuNCAxMTJsNzEuOCAwYzguOC05LjggMjEuNi0xNiAzNS44LTE2bDEwNCAwYzI2LjUgMCA0OCAyMS41IDQ4IDQ4cy0yMS41IDQ4LTQ4IDQ4bC0xMDQgMGMtMTQuMiAwLTI3LTYuMi0zNS44LTE2bC03MS44IDB6TTE0NCA4MGE2NCA2NCAwIDEgMSAwIDEyOCA2NCA2NCAwIDEgMSAwLTEyOHpNNDAwIDI0MGMxMy4zIDAgMjQgMTAuNyAyNCAyNGwwIDggOTYgMGMxMy4zIDAgMjQgMTAuNyAyNCAyNHMtMTAuNyAyNC0yNCAyNGwtMjQwIDBjLTEzLjMgMC0yNC0xMC43LTI0LTI0czEwLjctMjQgMjQtMjRsOTYgMCAwLThjMC0xMy4zIDEwLjctMjQgMjQtMjR6TTI4OCA0NjRsMC0xMTIgMjI0IDAgMCAxMTJjMCAyNi41LTIxLjUgNDgtNDggNDhsLTEyOCAwYy0yNi41IDAtNDgtMjEuNS00OC00OHpNNDggMzIwbDEyOCAwYzI2LjUgMCA0OCAyMS41IDQ4IDQ4cy0yMS41IDQ4LTQ4IDQ4bC0xNiAwYzAgMTcuNy0xNC4zIDMyLTMyIDMybC02NCAwYy0xNy43IDAtMzItMTQuMy0zMi0zMmwwLTgwYzAtOC44IDcuMi0xNiAxNi0xNnptMTI4IDY0YzguOCAwIDE2LTcuMiAxNi0xNnMtNy4yLTE2LTE2LTE2bC0xNiAwIDAgMzIgMTYgMHpNMjQgNDY0bDE3NiAwYzEzLjMgMCAyNCAxMC43IDI0IDI0cy0xMC43IDI0LTI0IDI0TDI0IDUxMmMtMTMuMyAwLTI0LTEwLjctMjQtMjRzMTAuNy0yNCAyNC0yNHoiXX0sSHdlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImRuYSIsaWNvbjpbMzg0LDUxMixbMTI5NTE2XSwiZjQ3MSIsIk0zNTIgMGMxNy43IDAgMzIgMTQuMyAzMiAzMiAwIDU3LjgtMjQuNCAxMDQuOC01Ny40IDE0NC41LTI0LjEgMjguOS01My44IDU1LjEtODMuNiA3OS41IDI5LjggMjQuNSA1OS41IDUwLjYgODMuNiA3OS41IDMzIDM5LjYgNTcuNCA4Ni43IDU3LjQgMTQ0LjUgMCAxNy43LTE0LjMgMzItMzIgMzJzLTMyLTE0LjMtMzItMzJMNjQgNDgwYzAgMTcuNy0xNC4zIDMyLTMyIDMyUzAgNDk3LjcgMCA0ODBDMCA0MjIuMiAyNC40IDM3NS4yIDU3LjQgMzM1LjUgODEuNSAzMDYuNiAxMTEuMiAyODAuNSAxNDEgMjU2IDExMS4yIDIzMS41IDgxLjUgMjA1LjQgNTcuNCAxNzYuNSAyNC40IDEzNi44IDAgODkuOCAwIDMyIDAgMTQuMyAxNC4zIDAgMzIgMFM2NCAxNC4zIDY0IDMybDI1NiAwYzAtMTcuNyAxNC4zLTMyIDMyLTMyek0yODMuNSAzODRsLTE4Mi45IDBjLTguMiAxMC41LTE1LjEgMjEuMS0yMC42IDMybDIyNC4yIDBjLTUuNi0xMC45LTEyLjUtMjEuNS0yMC42LTMyek0yMzggMzM2Yy0xNC4zLTEzLTI5LjgtMjUuOC00Ni0zOS0xNi4yIDEzLjEtMzEuNyAyNi00NiAzOWw5MiAwek0xMDAuNSAxMjhsMTgyLjkgMGM4LjItMTAuNSAxNS4xLTIxLjEgMjAuNi0zMkw3OS45IDk2YzUuNiAxMC45IDEyLjUgMjEuNSAyMC42IDMyek0xNDYgMTc2YzE0LjMgMTMgMjkuOCAyNS44IDQ2IDM5IDE2LjItMTMuMSAzMS43LTI2IDQ2LTM5bC05MiAweiJdfSxxd2U9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiY2hpbGQtcmVhY2hpbmciLGljb246WzM4NCw1MTIsW10sImU1OWQiLCJNMjU2IDY0YTY0IDY0IDAgMSAwIC0xMjggMCA2NCA2NCAwIDEgMCAxMjggMHpNMTUyLjkgMTY5LjNjLTIzLjctOC40LTQ0LjUtMjQuMy01OC44LTQ1LjhMNzQuNiA5NC4yQzY0LjggNzkuNSA0NSA3NS42IDMwLjMgODUuNFMxMS42IDExNSAyMS40IDEyOS44TDQwLjkgMTU5YzE4LjEgMjcuMSA0Mi44IDQ4LjQgNzEuMSA2Mi40TDExMiA0ODBjMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMmwwLTk2IDMyIDAgMCA5NmMwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMybDAtMjU4LjRjMjkuMS0xNC4yIDU0LjQtMzYuMiA3Mi43LTY0LjJsMTguMi0yNy45YzkuNi0xNC44IDUuNC0zNC42LTkuNC00NC4zcy0zNC42LTUuNS00NC4zIDkuNEwyOTEgMTIyLjRjLTIxLjggMzMuNC01OC45IDUzLjYtOTguOCA1My42LTEyLjYgMC0yNC45LTItMzYuNi01LjgtLjktLjMtMS44LS43LTIuNy0uOXoiXX0sUTU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToicGFzdGUiLGljb246WzUxMiw1MTIsWyJmaWxlLWNsaXBib2FyZCJdLCJmMGVhIiwiTTY0IDBDMjguNyAwIDAgMjguNyAwIDY0TDAgMzg0YzAgMzUuMyAyOC43IDY0IDY0IDY0bDExMiAwIDAtMjI0YzAtNjEuOSA1MC4xLTExMiAxMTItMTEybDY0IDAgMC00OGMwLTM1LjMtMjguNy02NC02NC02NEw2NCAwek0yNDggMTEybC0xNDQgMGMtMTMuMyAwLTI0LTEwLjctMjQtMjRzMTAuNy0yNCAyNC0yNGwxNDQgMGMxMy4zIDAgMjQgMTAuNyAyNCAyNHMtMTAuNyAyNC0yNCAyNHptNDAgNDhjLTM1LjMgMC02NCAyOC43LTY0IDY0bDAgMjI0YzAgMzUuMyAyOC43IDY0IDY0IDY0bDE2MCAwYzM1LjMgMCA2NC0yOC43IDY0LTY0bDAtMTY1LjVjMC0xNy02LjctMzMuMy0xOC43LTQ1LjNsLTU4LjUtNTguNWMtMTItMTItMjguMy0xOC43LTQ1LjMtMTguN0wyODggMTYweiJdfSxWd2U9UTUsandlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6Im1ldGVvciIsaWNvbjpbNTEyLDUxMixbOTczMl0sImY3NTMiLCJNNDkzLjcgLjlsLTE5NC4yIDc0LjcgMi4zLTI5LjNjMS0xMi44LTEyLjgtMjEuNS0yNC0xNS4xTDEwMS4zIDEzMy40QzM4LjYgMTY5LjcgMCAyMzYuNiAwIDMwOSAwIDQyMS4xIDkwLjkgNTEyIDIwMyA1MTIgMjc1LjQgNTEyIDM0Mi4zIDQ3My40IDM3OC42IDQxMC43TDQ4MC44IDIzNC4zYzYuNS0xMS4xLTIuMi0yNS0xNS4xLTI0bC0yOS4zIDIuMyA3NC43LTE5NC4yYy42LTEuNSAuOS0zLjIgLjktNC44IDAtNy41LTYtMTMuNS0xMy41LTEzLjUtMS43IDAtMy4zIC4zLTQuOCAuOXpNMTkyIDE5MmExMjggMTI4IDAgMSAxIDAgMjU2IDEyOCAxMjggMCAxIDEgMC0yNTZ6bTAgOTZhMzIgMzIgMCAxIDAgLTY0IDAgMzIgMzIgMCAxIDAgNjQgMHptMTYgOTZhMTYgMTYgMCAxIDAgMC0zMiAxNiAxNiAwIDEgMCAwIDMyeiJdfSxwST17cHJlZml4OiJmYXMiLGljb25OYW1lOiJnZWFycyIsaWNvbjpbNjQwLDUxMixbImNvZ3MiXSwiZjA4NSIsIk00MTUuOSAyMTAuNWMxMi4yLTMuMyAyNSAyLjUgMzAuNSAxMy44TDQ2NSAyNjEuOWMxMC4zIDEuNCAyMC40IDQuMiAyOS45IDguMWwzNS0yMy4zYzEwLjUtNyAyNC40LTUuNiAzMy4zIDMuM2wxOS4yIDE5LjJjOC45IDguOSAxMC4zIDIyLjkgMy4zIDMzLjNsLTIzLjMgMzQuOWMxLjkgNC43IDMuNiA5LjYgNSAxNC43IDEuNCA1LjEgMi4zIDEwLjEgMyAxNS4ybDM3LjcgMTguNmMxMS4zIDUuNiAxNy4xIDE4LjQgMTMuOCAzMC41bC03IDI2LjJjLTMuMyAxMi4xLTE0LjYgMjAuMy0yNy4yIDE5LjVsLTQyLTIuN2MtNi4zIDguMS0xMy42IDE1LjYtMjEuOSAyMmwyLjcgNDEuOWMuOCAxMi42LTcuNCAyNC0xOS41IDI3LjJsLTI2LjIgN2MtMTIuMiAzLjMtMjQuOS0yLjUtMzAuNS0xMy44bC0xOC42LTM3LjZjLTEwLjMtMS40LTIwLjQtNC4yLTI5LjktOC4xbC0zNSAyMy4zYy0xMC41IDctMjQuNCA1LjYtMzMuMy0zLjNsLTE5LjItMTkuMmMtOC45LTguOS0xMC4zLTIyLjgtMy4zLTMzLjNsMjMuMy0zNWMtMS45LTQuNy0zLjYtOS42LTUtMTQuN3MtMi4zLTEwLjItMy0xNS4ybC0zNy43LTE4LjZjLTExLjMtNS42LTE3LTE4LjQtMTMuOC0zMC41bDctMjYuMmMzLjMtMTIuMSAxNC42LTIwLjMgMjcuMi0xOS41bDQxLjkgMi43YzYuMy04LjEgMTMuNi0xNS42IDIxLjktMjJsLTIuNy00MS44Yy0uOC0xMi42IDcuNC0yNCAxOS41LTI3LjJsMjYuMi03ek00NDguNCAzNDBhNDQgNDQgMCAxIDAgLjEgODggNDQgNDQgMCAxIDAgLS4xLTg4ek0yMjQuOS00NS41bDI2LjIgN2MxMi4xIDMuMyAyMC4zIDE0LjcgMTkuNSAyNy4ybC0yLjcgNDEuOGM4LjMgNi40IDE1LjYgMTMuOCAyMS45IDIybDQyLTIuN2MxMi41LS44IDIzLjkgNy40IDI3LjIgMTkuNWw3IDI2LjJjMy4yIDEyLjEtMi41IDI0LjktMTMuOCAzMC41bC0zNy43IDE4LjZjLS43IDUuMS0xLjcgMTAuMi0zIDE1LjJzLTMuMSAxMC01IDE0LjdsMjMuMyAzNWM3IDEwLjUgNS42IDI0LjQtMy4zIDMzLjNMMzA3LjMgMjYyYy04LjkgOC45LTIyLjggMTAuMy0zMy4zIDMuM0wyMzkgMjQyYy05LjUgMy45LTE5LjYgNi43LTI5LjkgOC4xbC0xOC42IDM3LjZjLTUuNiAxMS4zLTE4LjQgMTctMzAuNSAxMy44bC0yNi4yLTdjLTEyLjItMy4zLTIwLjMtMTQuNy0xOS41LTI3LjJsMi43LTQxLjljLTguMy02LjQtMTUuNi0xMy44LTIxLjktMjJsLTQyIDIuN2MtMTIuNSAuOC0yMy45LTcuNC0yNy4yLTE5LjVsLTctMjYuMmMtMy4yLTEyLjEgMi41LTI0LjkgMTMuOC0zMC41bDM3LjctMTguNmMuNy01LjEgMS43LTEwLjEgMy0xNS4yIDEuNC01LjEgMy0xMCA1LTE0LjdMNTUuMSA0Ni41Yy03LTEwLjUtNS42LTI0LjQgMy4zLTMzLjNMNzcuNi02YzguOS04LjkgMjIuOC0xMC4zIDMzLjMtMy4zbDM1IDIzLjNjOS41LTMuOSAxOS42LTYuNyAyOS45LTguMWwxOC42LTM3LjZjNS42LTExLjMgMTguMy0xNyAzMC41LTEzLjh6TTE5Mi40IDg0YTQ0IDQ0IDAgMSAwIDAgODggNDQgNDQgMCAxIDAgMC04OHoiXX0sVXdlPXBJLFd3ZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJmaWxlLWNpcmNsZS1wbHVzIixpY29uOls1NzYsNTEyLFs1ODYwNl0sImU0OTQiLCJNOTYgMEM2MC43IDAgMzIgMjguNyAzMiA2NGwwIDM4NGMwIDM1LjMgMjguNyA2NCA2NCA2NGwxODAgMGMtMjIuNy0zMS41LTM2LTcwLjItMzYtMTEyIDAtMTAwLjYgNzcuNC0xODMuMiAxNzYtMTkxLjNsMC0zOC4xYzAtMTctNi43LTMzLjMtMTguNy00NS4zTDI5MC43IDE4LjdDMjc4LjcgNi43IDI2Mi41IDAgMjQ1LjUgMEw5NiAwek0zNTcuNSAxNzZMMjY0IDE3NmMtMTMuMyAwLTI0LTEwLjctMjQtMjRMMjQwIDU4LjUgMzU3LjUgMTc2ek00MzIgNTQ0YTE0NCAxNDQgMCAxIDAgMC0yODggMTQ0IDE0NCAwIDEgMCAwIDI4OHptMTYtMjA4bDAgNDggNDggMGM4LjggMCAxNiA3LjIgMTYgMTZzLTcuMiAxNi0xNiAxNmwtNDggMCAwIDQ4YzAgOC44LTcuMiAxNi0xNiAxNnMtMTYtNy4yLTE2LTE2bDAtNDgtNDggMGMtOC44IDAtMTYtNy4yLTE2LTE2czcuMi0xNiAxNi0xNmw0OCAwIDAtNDhjMC04LjggNy4yLTE2IDE2LTE2czE2IDcuMiAxNiAxNnoiXX0sR3dlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImljaWNsZXMiLGljb246WzUxMiw1MTIsW10sImY3YWQiLCJNNzUuOCAzMDQuOEwxIDM1LjdDLjMgMzMuMiAwIDMwLjcgMCAyOC4yIDAgMTIuNiAxMi42IDAgMjguMiAwTDQ4Mi40IDBjMTYuMyAwIDI5LjYgMTMuMiAyOS42IDI5LjYgMCAxLjYtLjEgMy4zLS40IDQuOUw0MzQuNiA0OTYuMWMtMS41IDkuMi05LjUgMTUuOS0xOC44IDE1LjktOS4yIDAtMTcuMS02LjYtMTguNy0xNS42TDMzNiAxNjAgMzA3LjIgMzAzLjljLTEuOSA5LjMtMTAuMSAxNi4xLTE5LjYgMTYuMS05LjIgMC0xNy4yLTYuMi0xOS40LTE1LjFMMjQwIDE5MiAyMTAuNiAzNjguMmMtMS41IDkuMS05LjQgMTUuOC0xOC42IDE1LjhzLTE3LjEtNi43LTE4LjYtMTUuOEwxNDQgMTkyIDExNS45IDMwNC4zYy0yLjMgOS4yLTEwLjYgMTUuNy0yMC4xIDE1LjctOS4zIDAtMTcuNS02LjItMjAtMTUuMnoiXX0sWXdlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImFycm93LXRyZW5kLXVwIixpY29uOls1NzYsNTEyLFtdLCJlMDk4IiwiTTM4NCAxNjBjLTE3LjcgMC0zMi0xNC4zLTMyLTMyczE0LjMtMzIgMzItMzJsMTYwIDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJsMCAxNjBjMCAxNy43LTE0LjMgMzItMzIgMzJzLTMyLTE0LjMtMzItMzJsMC04Mi43LTE2OS40IDE2OS40Yy0xMi41IDEyLjUtMzIuOCAxMi41LTQ1LjMgMEwxOTIgMjY5LjMgNTQuNiA0MDYuNmMtMTIuNSAxMi41LTMyLjggMTIuNS00NS4zIDBzLTEyLjUtMzIuOCAwLTQ1LjNsMTYwLTE2MGMxMi41LTEyLjUgMzIuOC0xMi41IDQ1LjMgMEwzMjAgMzA2LjcgNDY2LjcgMTYwIDM4NCAxNjB6Il19LFp3ZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJoZXhhZ29uLW5vZGVzLWJvbHQiLGljb246WzU3Niw1MTIsW10sImU2OWEiLCJNMjQ4IDEwNi42YzE4LjktOSAzMi0yOC4zIDMyLTUwLjZjMC0zMC45LTI1LjEtNTYtNTYtNTZzLTU2IDI1LjEtNTYgNTZjMCAyMi4zIDEzLjEgNDEuNiAzMiA1MC42bDAgOTguOGMtMi44IDEuMy01LjUgMi45LTggNC43bC04MC4xLTQ1LjhjMS42LTIwLjgtOC42LTQxLjYtMjcuOS01Mi44QzU3LjIgOTYgMjMgMTA1LjIgNy41IDEzMlMxLjIgMTkzIDI4IDIwOC41YzEuMyAuOCAyLjYgMS41IDQgMi4xbDAgOTAuOGMtMS4zIC42LTIuNyAxLjMtNCAyLjFDMS4yIDMxOS04IDM1My4yIDcuNSAzODBTNTcuMiA0MTYgODQgNDAwLjVjMTkuMy0xMS4xIDI5LjQtMzIgMjcuOC01Mi44bDUwLjUtMjguOWMtMTEuNS0xMS4yLTE5LjktMjUuNi0yMy44LTQxLjdMODggMzA2LjFjLTIuNi0xLjgtNS4yLTMuMy04LTQuN2wwLTkwLjhjMi44LTEuMyA1LjUtMi45IDgtNC43bDgwLjEgNDUuOGMtLjEgMS40LS4yIDIuOC0uMiA0LjNjMCAyMi4zIDEzLjEgNDEuNiAzMiA1MC42bDAgOTguOGMtMTguOSA5LTMyIDI4LjMtMzIgNTAuNmMwIDMwLjkgMjUuMSA1NiA1NiA1NmMzMC43IDAgNTUuNi0yNC43IDU2LTU1LjJjLTcuNS0xMi45LTEzLjUtMjYuOC0xNy42LTQxLjVjLTQuMi00LTkuMS03LjMtMTQuNC05LjlsMC05OC44YzIuOC0xLjMgNS41LTIuOSA4LTQuN2wxMC41IDZjNS41LTE1LjMgMTMuMS0yOS41IDIyLjQtNDIuNWwtOS4xLTUuMmMuMS0xLjQgLjItMi44IC4yLTQuM2MwLTIyLjMtMTMuMS00MS42LTMyLTUwLjZsMC05OC44ek00NDAuNSAxMzJDNDI1IDEwNS4yIDM5MC44IDk2IDM2NCAxMTEuNWMtMTkuMyAxMS4xLTI5LjQgMzItMjcuOCA1Mi44bC01MC42IDI4LjljMTEuNSAxMS4yIDE5LjkgMjUuNiAyMy44IDQxLjdMMzYwIDIwNS45Yy40IC4zIC44IC42IDEuMyAuOWMyMS43LTkuNSA0NS42LTE0LjggNzAuOC0xNC44YzIgMCA0IDAgNS45IC4xYzEyLjEtMTcuMyAxMy44LTQwLjYgMi42LTYwLjF6TTQzMiA1MTJhMTQ0IDE0NCAwIDEgMCAwLTI4OCAxNDQgMTQ0IDAgMSAwIDAgMjg4em00Ny45LTIyNWM0LjMgMy43IDUuNCA5LjkgMi42IDE0LjlMNDUyLjQgMzU2bDM1LjYgMGM1LjIgMCA5LjggMy4zIDExLjQgOC4ycy0uMSAxMC4zLTQuMiAxMy40bC05NiA3MmMtNC41IDMuNC0xMC44IDMuMi0xNS4xLS42cy01LjQtOS45LTIuNi0xNC45TDQxMS42IDM4MCAzNzYgMzgwYy01LjIgMC05LjgtMy4zLTExLjQtOC4ycy4xLTEwLjMgNC4yLTEzLjRsOTYtNzJjNC41LTMuNCAxMC44LTMuMiAxNS4xIC42eiJdfSxYd2U9e3ByZWZpeDoiZmFzIixpY29uTmFtZToicXVlc3Rpb24iLGljb246WzMyMCw1MTIsWzEwMDY3LDEwMDY4LDYxNzM2XSwiM2YiLCJNNjQgMTYwYzAtNTMgNDMtOTYgOTYtOTZzOTYgNDMgOTYgOTZjMCA0Mi43LTI3LjkgNzguOS02Ni41IDkxLjQtMjguNCA5LjItNjEuNSAzNS4zLTYxLjUgNzYuNmwwIDI0YzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJsMC0yNGMwLTEuNyAuNi00LjEgMy41LTcuMyAzLTMuMyA3LjktNi41IDEzLjctOC40IDY0LjMtMjAuNyAxMTAuOC04MSAxMTAuOC0xNTIuMyAwLTg4LjQtNzEuNi0xNjAtMTYwLTE2MFMwIDcxLjYgMCAxNjBjMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMnptOTYgMzUyYzIyLjEgMCA0MC0xNy45IDQwLTQwcy0xNy45LTQwLTQwLTQwLTQwIDE3LjktNDAgNDAgMTcuOSA0MCA0MCA0MHoiXX0sS3dlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImhhbmRzLWJvdW5kIixpY29uOls1NzYsNTEyLFtdLCJlNGY5IiwiTTY0IDMyQzY0IDE0LjMgNDkuNyAwIDMyIDBTMCAxNC4zIDAgMzJMMCAyMTMuOWMwIDE0LjIgNS4xIDI3LjkgMTQuMyAzOC43TDk5LjYgMzUyIDk2IDM1MmMtMTMuMyAwLTI0IDEwLjctMjQgMjRzMTAuNyAyNCAyNCAyNGwzODQgMGMxMy4zIDAgMjQtMTAuNyAyNC0yNHMtMTAuNy0yNC0yNC0yNGwtMy42IDAgODUuMy05OS41YzkuMi0xMC44IDE0LjMtMjQuNSAxNC4zLTM4LjdMNTc2IDMyYzAtMTcuNy0xNC4zLTMyLTMyLTMycy0zMiAxNC4zLTMyIDMybDAgMTEyLjgtNjkuMyA5Mi40Yy01LjcgNy42LTE2LjEgOS42LTI0LjIgNC44LTkuNy01LjctMTIuMS0xOC43LTUuMS0yNy41TDQ0MSAxODBjMTAuOC0xMy41IDguOS0zMy4zLTQuNC00NC41cy0zMy05LjgtNDQuNSAzLjJsLTQ2LjcgNTIuNUMzMjkgMjA5LjcgMzIwIDIzMy40IDMyMCAyNTguMWwwIDkzLjktNjQgMCAwLTkzLjljMC0yNC42LTktNDguNC0yNS40LTY2LjhsLTQ2LjctNTIuNWMtMTEuNS0xMy0zMS4zLTE0LjQtNDQuNS0zLjJTMTI0LjIgMTY2LjQgMTM1IDE4MGwyNy42IDM0LjVjNyA4LjggNC43IDIxLjgtNS4xIDI3LjUtOC4xIDQuOC0xOC42IDIuNy0yNC4yLTQuOEw2NCAxNDQuOCA2NCAzMnptNjQgNDQ4bDAgMzIgMTI4IDAgMC0zMiA2NCAwIDAgMzIgMTI4IDAgMC0zMiAzMiAwYzEzLjMgMCAyNC0xMC43IDI0LTI0cy0xMC43LTI0LTI0LTI0TDk2IDQzMmMtMTMuMyAwLTI0IDEwLjctMjQgMjRzMTAuNyAyNCAyNCAyNGwzMiAweiJdfSxRd2U9e3ByZWZpeDoiZmFzIixpY29uTmFtZToicGVyc29uLXdhbGtpbmctbHVnZ2FnZSIsaWNvbjpbNTEyLDUxMixbXSwiZTU1NCIsIk0yNjQuMyAyNGE1NiA1NiAwIDEgMSAxMTIgMCA1NiA1NiAwIDEgMSAtMTEyIDB6bS04IDE4MS4zbC0yMi42IDIyLjZjLTYgNi05LjQgMTQuMS05LjQgMjIuNmwwIDM3LjVjMCAxMi4zLTcgMjMtMTcuMiAyOC40LS45IDQuMi0yLjQgOC40LTQuMyAxMi4zbC02OSAxMzguMS0uOC0uNC0yNy43IDU1LjNjLTkuOSAxOS44LTMzLjkgMjcuOC01My43IDE3LjlMMTQuNiA1MjFjLTE5LjgtOS45LTI3LjgtMzMuOS0xNy45LTUzLjdMNDcuMyAzNjYuM2M5LjktMTkuOCAzMy45LTI3LjggNTMuNy0xNy45bDMwLjcgMTUuMyAyOC4zLTU2LjZjLjMtLjYgLjQtMS4yIC40LTEuOGwwLTE2LjljMC0uMiAwLS4zIDAtLjVsMC0zNy41YzAtMjUuNSAxMC4xLTQ5LjkgMjguMS02Ny45bDM1LjEtMzUuMWMyMi44LTIyLjggNTMuNi0zNS42IDg1LjgtMzUuNiAzNi45IDAgNzEuOCAxNi44IDk0LjggNDUuNkw0MjIuMSAxODBjNi4xIDcuNiAxNS4zIDEyIDI1IDEybDMzLjIgMGMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMmwtMzMuMiAwYy0yOS4yIDAtNTYuNy0xMy4zLTc1LTM2bC0zLjgtNC43IDAgMTE1LjIgMzQuNSAyOS42YzE3LjcgMTUuMiAyOS4zIDM2LjIgMzIuNiA1OS4zTDQ0OCA1MDcuNWMyLjUgMTcuNS05LjcgMzMuNy0yNy4yIDM2LjJzLTMzLjctOS43LTM2LjItMjcuMkwzNzIgNDI4LjRjLTEuMS03LjctNS0xNC43LTEwLjktMTkuOGwtNzEuNC02MS4yYy0yMS4zLTE4LjItMzMuNS00NC45LTMzLjUtNzIuOWwwLTY5LjN6bS4xIDE2NS44YzIuNCAyLjMgNC44IDQuNiA3LjQgNi44bDQ2IDM5LjQtMi4yIDcuNmMtNC41IDE1LjctMTIuOSAzMC0yNC40IDQxLjVsLTY4LjMgNjguM2MtMTIuNSAxMi41LTMyLjggMTIuNS00NS4zIDBzLTEyLjUtMzIuOCAwLTQ1LjNMMjM4IDQyMS4xYzMuOC0zLjggNi42LTguNiA4LjEtMTMuOEwyNTYuNCAzNzF6Il19LHVJPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImZpbGUtYXJyb3ctZG93biIsaWNvbjpbMzg0LDUxMixbImZpbGUtZG93bmxvYWQiXSwiZjU2ZCIsIk0wIDY0QzAgMjguNyAyOC43IDAgNjQgMEwyMTMuNSAwYzE3IDAgMzMuMyA2LjcgNDUuMyAxOC43TDM2NS4zIDEyNS4zYzEyIDEyIDE4LjcgMjguMyAxOC43IDQ1LjNMMzg0IDQ0OGMwIDM1LjMtMjguNyA2NC02NCA2NEw2NCA1MTJjLTM1LjMgMC02NC0yOC43LTY0LTY0TDAgNjR6bTIwOC01LjVsMCA5My41YzAgMTMuMyAxMC43IDI0IDI0IDI0TDMyNS41IDE3NiAyMDggNTguNXpNMTc1IDQ0MWM5LjQgOS40IDI0LjYgOS40IDMzLjkgMGw2NC02NGM5LjQtOS40IDkuNC0yNC42IDAtMzMuOXMtMjQuNi05LjQtMzMuOSAwbC0yMyAyMyAwLTg2LjFjMC0xMy4zLTEwLjctMjQtMjQtMjRzLTI0IDEwLjctMjQgMjRsMCA4Ni4xLTIzLTIzYy05LjQtOS40LTI0LjYtOS40LTMzLjkgMHMtOS40IDI0LjYgMCAzMy45bDY0IDY0eiJdfSxKd2U9dUksZU1lPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InBlcnNvbi1ib290aCIsaWNvbjpbNTc2LDUxMixbXSwiZjc1NiIsIk00MCAyNEE1NiA1NiAwIDEgMSAxNTIgMjQgNTYgNTYgMCAxIDEgNDAgMjR6bTUxLjEgODhjMjMuNSAwIDQ1LjUgMTEuMyA1OS4xIDMwLjRsNDguNyA2OC4yYzYgOC40IDE1LjcgMTMuNCAyNiAxMy40bDMxLjEgMGMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMmwtMzEuMSAwYy0zMSAwLTYwLjEtMTUtNzguMS00MC4ybC0yLjgtMy45IDAgODAuMSA0MS42IDMxLjJDMjA5LjggMzczLjMgMjI0IDQwMS44IDIyNCA0MzJsMCA4MGMwIDE3LjctMTQuMyAzMi0zMiAzMnMtMzItMTQuMy0zMi0zMmwwLTgwYzAtMTAuMS00LjctMTkuNi0xMi44LTI1LjZMNzAuNCAzNDguOEM0Ni4yIDMzMC43IDMyIDMwMi4yIDMyIDI3MmwwLTEwMC45QzMyIDEzOC41IDU4LjUgMTEyIDkxLjEgMTEyek0zMiA1MTJsMC0xMzIuN2MzLjEgMi43IDYuMyA1LjQgOS42IDcuOUw5NiA0MjggOTYgNTEyYzAgMTcuNy0xNC4zIDMyLTMyIDMycy0zMi0xNC4zLTMyLTMyem01NDQtODhsMCA5NmMwIDEzLjMtMTAuNyAyNC0yNCAyNHMtMjQtMTAuNy0yNC0yNGwwLTcyLTE2OCAwYy03LjEgMC0xMy44LTMuMS0xOC40LTguNnMtNi41LTEyLjYtNS4zLTE5LjZsMzAuNy0xNzYuNy02My4xLTEzNy42IDAgNzJjLTUuMi0xLTEwLjUtMS42LTE2LTEuNmwtMzIgMCAwLTEyMGMwLTMwLjkgMjUuMS01NiA1Ni01Nkw1MjAgMGMzMC45IDAgNTYgMjUuMSA1NiA1NmwwIDM2OHpNMjg4IDMzNmM1LjUgMCAxMC44LS42IDE2LTEuNkwzMDQgNTIwYzAgMTMuMy0xMC43IDI0LTI0IDI0cy0yNC0xMC43LTI0LTI0bDAtMTg0IDMyIDB6Il19LHRNZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJsb2N1c3QiLGljb246WzU3Niw1MTIsW10sImU1MjAiLCJNMzI4IDMyYzEzNyAwIDI0OCAxMTEgMjQ4IDI0OGwwIDQwLS40IDguMkM1NzEuNSAzNjguNSA1MzcuNCA0MDAgNDk2IDQwMGwtMTIuMyAwIDI1LjIgNDQuMWM2LjYgMTEuNSAyLjYgMjYuMi04LjkgMzIuOHMtMjYuMiAyLjYtMzIuNy04LjlsLTM4LjgtNjcuOS04MC40IDAtNDguMiA2OS43Yy03LjUgMTAuOS0yMi41IDEzLjYtMzMuNCA2LjFzLTEzLjYtMjIuNS02LjEtMzMuNGwyOS4zLTQyLjMtNzQuNSAwLTUxLjcgNzAuMmMtNy45IDEwLjctMjIuOSAxMi45LTMzLjYgNS4xcy0xMi45LTIyLjktNS4xLTMzLjZsNDAuNS01NS00My0xNi40LTc5LjMgMTAwLjVjLTguMiAxMC40LTIzLjMgMTIuMi0zMy43IDRzLTEyLjItMjMuMy00LTMzLjdsMjQwLTMwNCAyLjEtMi4zYzUuMi01LjEgMTIuNS03LjUgMTkuOS02LjYgOC40IDEuMSAxNS42IDYuNSAxOC45IDE0LjNsMjEuNyA1MC43IDQwLjktNTUuNSAyLjEtMi40YzUuMS01LjMgMTIuNS04IDIwLTcuMiA4LjUgMSAxNS45IDYuNSAxOS4zIDE0LjRsNDEuOCA5Ny41IDY0LjIgMGMxMC4yIDAgMjAgMiAyOSA1LjUtMTYuNC05NC05OC4zLTE2NS41LTE5Ny0xNjUuNWwtMTYgMGMtMTMuMyAwLTI0LTEwLjctMjQtMjRzMTAuNy0yNCAyNC0yNGwxNiAwek00ODggMjk2YTI0IDI0IDAgMSAwIDAgNDggMjQgMjQgMCAxIDAgMC00OHpNNDMuNSAzMzEuMUMzNi4yIDMyMS40IDMyIDMwOS41IDMyIDI5Ni44IDMyIDI2NS41IDU3LjUgMjQwIDg4LjkgMjQwbDI3LjYgMC03Mi45IDkxLjF6TTIyNS4xIDI0MGw0OC4yIDAgMS40LTEuOS0xNi45LTM5LjUtMzIuNyA0MS41em0xMDcuOCAwbDQ2LjcgMC0xNy4yLTQwLTI5LjUgNDB6Il19LGZJPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InJpZ2h0LWxvbmciLGljb246WzU3Niw1MTIsWyJsb25nLWFycm93LWFsdC1yaWdodCJdLCJmMzBiIiwiTTU2Ni42IDIzMy40YzEyLjUgMTIuNSAxMi41IDMyLjggMCA0NS4zbC0xMjggMTI4Yy05LjIgOS4yLTIyLjkgMTEuOS0zNC45IDYuOVMzODQgMzk2LjkgMzg0IDM4NGwwLTY0LTMzNiAwYy0yNi41IDAtNDgtMjEuNS00OC00OGwwLTMyYzAtMjYuNSAyMS41LTQ4IDQ4LTQ4bDMzNiAwIDAtNjRjMC0xMi45IDcuOC0yNC42IDE5LjgtMjkuNnMyNS43LTIuMiAzNC45IDYuOWwxMjggMTI4eiJdfSxhTWU9ZkksaU1lPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InRydWNrLWRyb3BsZXQiLGljb246WzU3Niw1MTIsW10sImU1OGMiLCJNNjQgMzJDMjguNyAzMiAwIDYwLjcgMCA5NkwwIDM4NGMwIDM1LjMgMjguNyA2NCA2NCA2NGwzLjMgMGMxMC40IDM2LjkgNDQuNCA2NCA4NC43IDY0czc0LjItMjcuMSA4NC43LTY0bDEwMi42IDBjMTAuNCAzNi45IDQ0LjQgNjQgODQuNyA2NHM3NC4yLTI3LjEgODQuNy02NGwzLjMgMGMzNS4zIDAgNjQtMjguNyA2NC02NGwwLTE0Ni43YzAtMTctNi43LTMzLjMtMTguNy00NS4zTDUxMiAxNDYuN2MtMTItMTItMjguMy0xOC43LTQ1LjMtMTguN2wtNTAuNyAwIDAtMzJjMC0zNS4zLTI4LjctNjQtNjQtNjRMNjQgMzJ6TTUxMiAyMzcuM2wwIDUwLjctOTYgMCAwLTk2IDUwLjcgMCA0NS4zIDQ1LjN6TTE1MiAzODRhNDAgNDAgMCAxIDEgMCA4MCA0MCA0MCAwIDEgMSAwLTgwem0yMzIgNDBhNDAgNDAgMCAxIDEgODAgMCA0MCA0MCAwIDEgMSAtODAgMHpNMjA4IDMwNGMtMzkuOCAwLTcyLTMyLjItNzItNzIgMC0zMy4yIDM0LjUtNzggNTUuOC0xMDIuNCA4LjctMTAgMjMuOC0xMCAzMi41IDAgMjEuMiAyNC40IDU1LjggNjkuMSA1NS44IDEwMi40IDAgNDgtMzIuMiA3Mi03MiA3MnoiXX0sck1lPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImhhbmQtaG9sZGluZy1tZWRpY2FsIixpY29uOls1NzYsNTEyLFtdLCJlMDVjIiwiTTI0MCAyNGMwLTEzLjMgMTAuNy0yNCAyNC0yNGw0OCAwYzEzLjMgMCAyNCAxMC43IDI0IDI0bDAgNTYgNTYgMGMxMy4zIDAgMjQgMTAuNyAyNCAyNGwwIDQ4YzAgMTMuMy0xMC43IDI0LTI0IDI0bC01NiAwIDAgNTZjMCAxMy4zLTEwLjcgMjQtMjQgMjRsLTQ4IDBjLTEzLjMgMC0yNC0xMC43LTI0LTI0bDAtNTYtNTYgMGMtMTMuMyAwLTI0LTEwLjctMjQtMjRsMC00OGMwLTEzLjMgMTAuNy0yNCAyNC0yNGw1NiAwIDAtNTZ6TTY2LjcgMzg0bDQyLjUtNDIuNWMyNC0yNCA1Ni42LTM3LjUgOTAuNS0zNy41TDM1MiAzMDRjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJsLTcyIDBjLTEzLjMgMC0yNCAxMC43LTI0IDI0czEwLjcgMjQgMjQgMjRsMTEyLjYgMCAxMTkuNy04OC4yYzE3LjgtMTMuMSA0Mi44LTkuMyA1NS45IDguNXM5LjMgNDIuOC04LjUgNTUuOUw0MzMuMSA0ODUuNWMtMjMuNCAxNy4yLTUxLjYgMjYuNS04MC43IDI2LjVMMzIgNTEyYy0xNy43IDAtMzItMTQuMy0zMi0zMmwwLTY0YzAtMTcuNyAxNC4zLTMyIDMyLTMybDM0LjcgMHoiXX0sc01lPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImhhbmQtcG9pbnQtbGVmdCIsaWNvbjpbNTEyLDUxMixbXSwiZjBhNSIsIk0zMiA5NkMxNC4zIDk2IDAgMTEwLjMgMCAxMjhzMTQuMyAzMiAzMiAzMmwyMDggMCAwLTY0LTIwOCAwek0xOTIgMjg4Yy0xNy43IDAtMzIgMTQuMy0zMiAzMnMxNC4zIDMyIDMyIDMybDY0IDBjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJsLTY0IDB6bS02NC02NGMwIDE3LjcgMTQuMyAzMiAzMiAzMmw0OCAwYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMybC00OCAwYy0xNy43IDAtMzIgMTQuMy0zMiAzMnptOTYgMTYwYy0xNy43IDAtMzIgMTQuMy0zMiAzMnMxNC4zIDMyIDMyIDMybDY0IDBjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJsLTY0IDB6bTg4LTk2bC0uNiAwYzUuNCA5LjQgOC42IDIwLjMgOC42IDMyIDAgMTMuMi00IDI1LjQtMTAuOCAzNS42IDI0LjkgOC43IDQyLjggMzIuNSA0Mi44IDYwLjQgMCAxMS43LTMuMSAyMi42LTguNiAzMmw4LjYgMGM4OC40IDAgMTYwLTcxLjYgMTYwLTE2MGwwLTYxLjdjMC00Mi40LTE2LjktODMuMS00Ni45LTExMy4xbC0xMS42LTExLjZDNDI5LjUgNzcuNSAzOTYuOSA2NCAzNjMgNjRsLTI3IDBjLTM1LjMgMC02NCAyOC43LTY0IDY0bDAgODhjMCAyMi4xIDE3LjkgNDAgNDAgNDBzNDAtMTcuOSA0MC00MGwwLTU2YzAtOC44IDcuMi0xNiAxNi0xNnMxNiA3LjIgMTYgMTZsMCA1NmMwIDM5LjgtMzIuMiA3Mi03MiA3MnoiXX0sbk1lPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImNhbGN1bGF0b3IiLGljb246WzM4NCw1MTIsWzEyODQyNV0sImYxZWMiLCJNNjQgMEMyOC43IDAgMCAyOC43IDAgNjRMMCA0NDhjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMjU2IDBjMzUuMyAwIDY0LTI4LjcgNjQtNjRsMC0zODRjMC0zNS4zLTI4LjctNjQtNjQtNjRMNjQgMHpNOTYgNjRsMTkyIDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJsMCAzMmMwIDE3LjctMTQuMyAzMi0zMiAzMkw5NiAxNjBjLTE3LjcgMC0zMi0xNC4zLTMyLTMybDAtMzJjMC0xNy43IDE0LjMtMzIgMzItMzJ6bTE2IDE2OGEyNCAyNCAwIDEgMSAtNDggMCAyNCAyNCAwIDEgMSA0OCAwem04MCAyNGEyNCAyNCAwIDEgMSAwLTQ4IDI0IDI0IDAgMSAxIDAgNDh6bTEyOC0yNGEyNCAyNCAwIDEgMSAtNDggMCAyNCAyNCAwIDEgMSA0OCAwek04OCAzNTJhMjQgMjQgMCAxIDEgMC00OCAyNCAyNCAwIDEgMSAwIDQ4em0xMjgtMjRhMjQgMjQgMCAxIDEgLTQ4IDAgMjQgMjQgMCAxIDEgNDggMHptODAgMjRhMjQgMjQgMCAxIDEgMC00OCAyNCAyNCAwIDEgMSAwIDQ4ek02NCA0MjRjMC0xMy4zIDEwLjctMjQgMjQtMjRsMTEyIDBjMTMuMyAwIDI0IDEwLjcgMjQgMjRzLTEwLjcgMjQtMjQgMjRMODggNDQ4Yy0xMy4zIDAtMjQtMTAuNy0yNC0yNHptMjMyLTI0YzEzLjMgMCAyNCAxMC43IDI0IDI0cy0xMC43IDI0LTI0IDI0LTI0LTEwLjctMjQtMjQgMTAuNy0yNCAyNC0yNHoiXX0sSjU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToibWludXMiLGljb246WzQ0OCw1MTIsWzgyMTEsODcyMiwxMDEzNCwic3VidHJhY3QiXSwiZjA2OCIsIk0wIDI1NmMwLTE3LjcgMTQuMy0zMiAzMi0zMmwzODQgMGMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMkwzMiAyODhjLTE3LjcgMC0zMi0xNC4zLTMyLTMyeiJdfSxvTWU9SjUsbUk9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiYXJyb3ctdXAtei1hIixpY29uOls1MTIsNTEyLFsic29ydC1hbHBoYS11cC1hbHQiXSwiZjg4MiIsIk0xNTAuNiA0MS40Yy0xMi41LTEyLjUtMzIuOC0xMi41LTQ1LjMgMGwtODAgODBjLTEyLjUgMTIuNS0xMi41IDMyLjggMCA0NS4zczMyLjggMTIuNSA0NS4zIDBMOTYgMTQxLjMgOTYgNDQ4YzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJsMC0zMDYuNyAyNS40IDI1LjRjMTIuNSAxMi41IDMyLjggMTIuNSA0NS4zIDBzMTIuNS0zMi44IDAtNDUuM2wtODAtODB6TTI4OCA2NGMwIDE3LjcgMTQuMyAzMiAzMiAzMmw1MC43IDAtNzMuNCA3My40Yy05LjIgOS4yLTExLjkgMjIuOS02LjkgMzQuOVMzMDcuMSAyMjQgMzIwIDIyNGwxMjggMGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMmwtNTAuNyAwIDczLjQtNzMuNGM5LjItOS4yIDExLjktMjIuOSA2LjktMzQuOVM0NjEgMzIgNDQ4IDMyTDMyMCAzMmMtMTcuNyAwLTMyIDE0LjMtMzIgMzJ6TTQxMi42IDI3My43QzQwNy4yIDI2Mi44IDM5Ni4xIDI1NiAzODQgMjU2cy0yMy4yIDYuOC0yOC42IDE3LjdsLTgwIDE2MGMtNy45IDE1LjgtMS41IDM1IDE0LjMgNDIuOXMzNSAxLjUgNDIuOS0xNC4zbDcuMi0xNC4zIDg4LjQgMCA3LjIgMTQuM2M3LjkgMTUuOCAyNy4xIDIyLjIgNDIuOSAxNC4zczIyLjItMjcuMSAxNC4zLTQyLjlsLTgwLTE2MHpNMzg0IDM1OS42bDIwLjIgNDAuNC00MC40IDAgMjAuMi00MC40eiJdfSxsTWU9bUksY01lPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6Im1pY3JvcGhvbmUtc2xhc2giLGljb246WzU3Niw1MTIsW10sImYxMzEiLCJNNDEtMjQuOWMtOS40LTkuNC0yNC42LTkuNC0zMy45IDBTLTIuMy0uMyA3IDkuMWw1MjggNTI4YzkuNCA5LjQgMjQuNiA5LjQgMzMuOSAwczkuNC0yNC42IDAtMzMuOUw0MjQuNyAzNTguOEM0NTguOSAzMjQuMiA0ODAgMjc2LjYgNDgwIDIyNGwwLTQwYzAtMTMuMy0xMC43LTI0LTI0LTI0cy0yNCAxMC43LTI0IDI0bDAgNDBjMCAzOS4zLTE1LjcgNzQuOS00MS4zIDEwMC45TDM1Ni44IDI5MUMzNzMuNiAyNzMuNyAzODQgMjUwIDM4NCAyMjRsMC0xMjhjMC01My00My05Ni05Ni05NnMtOTYgNDMtOTYgOTZsMCAzMC4yLTE1MS0xNTF6bTI5OC4zIDQzNGwtNDEuNC00MS40Yy0zLjMgLjItNi41IC4zLTkuOCAuMy03OS41IDAtMTQ0LTY0LjUtMTQ0LTE0NGwwLTEwLjItNDMuNi00My42Yy0yLjggMy45LTQuNCA4LjctNC40IDEzLjhsMCA0MGMwIDk3LjkgNzMuMyAxNzguNyAxNjggMTkwLjVsMCA0OS41LTQ4IDBjLTEzLjMgMC0yNCAxMC43LTI0IDI0czEwLjcgMjQgMjQgMjRsMTQ0IDBjMTMuMyAwIDI0LTEwLjcgMjQtMjRzLTEwLjctMjQtMjQtMjRsLTQ4IDAgMC00OS41YzkuMy0xLjIgMTguNC0zIDI3LjMtNS40eiJdfSxKZj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJzcXVhcmUtcGVuIixpY29uOls0NDgsNTEyLFsicGVuLXNxdWFyZSIsInBlbmNpbC1zcXVhcmUiXSwiZjE0YiIsIk02NCAzMkMyOC43IDMyIDAgNjAuNyAwIDk2TDAgNDE2YzAgMzUuMyAyOC43IDY0IDY0IDY0bDMyMCAwYzM1LjMgMCA2NC0yOC43IDY0LTY0bDAtMzIwYzAtMzUuMy0yOC43LTY0LTY0LTY0TDY0IDMyek0zMjUuOCAxMzkuN2wxNC40IDE0LjRjMTUuNiAxNS42IDE1LjYgNDAuOSAwIDU2LjZsLTIzLjggMjMuOC03MS03MSAyMy44LTIzLjhjMTUuNi0xNS42IDQwLjktMTUuNiA1Ni42IDB6TTExOS45IDI4OWw5MS41LTkxLjYgNzEgNzEtOTEuNiA5MS41Yy00LjEgNC4xLTkuMiA3LTE0LjkgOC40bC02MC4xIDE1Yy01LjUgMS40LTExLjItLjItMTUuMi00LjJzLTUuNi05LjctNC4yLTE1LjJsMTUtNjAuMWMxLjQtNS42IDQuMy0xMC44IDguNC0xNC45eiJdfSxkTWU9SmYsaE1lPUpmLGdJPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImhhbmQtZmlzdCIsaWNvbjpbMzg0LDUxMixbOTk5NCwiZmlzdC1yYWlzZWQiXSwiZjZkZSIsIk0xNjAgMGMxNy43IDAgMzIgMTQuMyAzMiAzMmwwIDExMi02NCAwIDAtMTEyYzAtMTcuNyAxNC4zLTMyIDMyLTMyek0zMiA2NGMwLTE3LjcgMTQuMy0zMiAzMi0zMlM5NiA0Ni4zIDk2IDY0bDAgODAtNjQgMCAwLTgwem0xOTIgMGMwLTE3LjcgMTQuMy0zMiAzMi0zMnMzMiAxNC4zIDMyIDMybDAgOTZjMCAxNy43LTE0LjMgMzItMzIgMzJzLTMyLTE0LjMtMzItMzJsMC05NnptOTYgNjRjMC0xNy43IDE0LjMtMzIgMzItMzJzMzIgMTQuMyAzMiAzMmwwIDY0YzAgMTcuNy0xNC4zIDMyLTMyIDMycy0zMi0xNC4zLTMyLTMybDAtNjR6bS05NiA4OGwwLS42YzkuNCA1LjQgMjAuMyA4LjYgMzIgOC42IDEzLjIgMCAyNS40LTQgMzUuNi0xMC44IDguNyAyNC45IDMyLjUgNDIuOCA2MC40IDQyLjggMTEuNyAwIDIyLjYtMy4xIDMyLTguNmwwIDguNmMwIDUyLjMtMjUuMSA5OC44LTY0IDEyOGwwIDk2YzAgMTcuNy0xNC4zIDMyLTMyIDMybC0xNjAgMGMtMTcuNyAwLTMyLTE0LjMtMzItMzJsMC03OC40Yy0xNy4zLTcuOS0zMy4yLTE4LjgtNDYuOS0zMi41TDM3LjUgMzU3LjVDMTMuNSAzMzMuNSAwIDMwMC45IDAgMjY3bDAtMjdjMC0zNS4zIDI4LjctNjQgNjQtNjRsODggMGMyMi4xIDAgNDAgMTcuOSA0MCA0MHMtMTcuOSA0MC00MCA0MGwtNTYgMGMtOC44IDAtMTYgNy4yLTE2IDE2czcuMiAxNiAxNiAxNmw1NiAwYzM5LjggMCA3Mi0zMi4yIDcyLTcyeiJdfSxwTWU9Z0ksYkk9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiY29tbWVudC1zbXMiLGljb246WzUxMiw1MTIsWyJzbXMiXSwiZjdjZCIsIk0yNTYgNDgwYzE0MS40IDAgMjU2LTEwNy41IDI1Ni0yNDBTMzk3LjQgMCAyNTYgMCAwIDEwNy41IDAgMjQwYzAgNTQuMyAxOS4yIDEwNC4zIDUxLjYgMTQ0LjVMMi44IDQ3Ni44Yy00LjggOS0zLjMgMjAgMy42IDI3LjVzMTcuOCA5LjggMjcuMSA1LjhsMTE4LjQtNTAuN0MxODMuNyA0NzIuNiAyMTguOSA0ODAgMjU2IDQ4MHpNMTQwLjggMTcyLjhsMTkuMiAwYzguOCAwIDE2IDcuMiAxNiAxNnMtNy4yIDE2LTE2IDE2bC0xOS4yIDBjLTUuMyAwLTkuNiA0LjMtOS42IDkuNnM0LjMgOS42IDkuNiA5LjZjMjMgMCA0MS42IDE4LjYgNDEuNiA0MS42cy0xOC42IDQxLjYtNDEuNiA0MS42bC0yNS42IDBjLTguOCAwLTE2LTcuMi0xNi0xNnM3LjItMTYgMTYtMTZsMjUuNiAwYzUuMyAwIDkuNi00LjMgOS42LTkuNnMtNC4zLTkuNi05LjYtOS42Yy0yMyAwLTQxLjYtMTguNi00MS42LTQxLjZzMTguNi00MS42IDQxLjYtNDEuNnptMTg4LjggNDEuNmMwLTIzIDE4LjYtNDEuNiA0MS42LTQxLjZsMTkuMiAwYzguOCAwIDE2IDcuMiAxNiAxNnMtNy4yIDE2LTE2IDE2bC0xOS4yIDBjLTUuMyAwLTkuNiA0LjMtOS42IDkuNnM0LjMgOS42IDkuNiA5LjZjMjMgMCA0MS42IDE4LjYgNDEuNiA0MS42cy0xOC42IDQxLjYtNDEuNiA0MS42bC0yNS42IDBjLTguOCAwLTE2LTcuMi0xNi0xNnM3LjItMTYgMTYtMTZsMjUuNiAwYzUuMyAwIDkuNi00LjMgOS42LTkuNnMtNC4zLTkuNi05LjYtOS42Yy0yMyAwLTQxLjYtMTguNi00MS42LTQxLjZ6bS05OC4zLTMzLjhsMjQuNyA0MS4xIDI0LjctNDEuMWMzLjctNi4yIDExLjEtOS4xIDE4LTcuMnMxMS43IDguMiAxMS43IDE1LjRsMCAxMDIuNGMwIDguOC03LjIgMTYtMTYgMTZzLTE2LTcuMi0xNi0xNmwwLTQ0LjYtOC43IDE0LjVjLTIuOSA0LjgtOC4xIDcuOC0xMy43IDcuOHMtMTAuOC0zLTEzLjctNy44bC04LjctMTQuNSAwIDQ0LjZjMCA4LjgtNy4yIDE2LTE2IDE2cy0xNi03LjItMTYtMTZsMC0xMDIuNGMwLTcuMiA0LjgtMTMuNSAxMS43LTE1LjRzMTQuMyAxIDE4IDcuMnoiXX0sdU1lPWJJLGZNZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJzaW0tY2FyZCIsaWNvbjpbMzg0LDUxMixbXSwiZjdjNCIsIk0wIDY0QzAgMjguNyAyOC43IDAgNjQgMEwyNTguNyAwYzE3IDAgMzMuMyA2LjcgNDUuMyAxOC43TDM2NS4zIDgwYzEyIDEyIDE4LjcgMjguMyAxOC43IDQ1LjNMMzg0IDQ0OGMwIDM1LjMtMjguNyA2NC02NCA2NEw2NCA1MTJjLTM1LjMgMC02NC0yOC43LTY0LTY0TDAgNjR6TTk2IDI1NmMtMTcuNyAwLTMyIDE0LjMtMzIgMzJsMCA0MCAxMjggMCAwLTcyLTk2IDB6TTY0IDQxNmMwIDE3LjcgMTQuMyAzMiAzMiAzMmw0OCAwIDAtNzItODAgMCAwIDQwem0yNTYgMGwwLTQwLTEyOCAwIDAgNzIgOTYgMGMxNy43IDAgMzItMTQuMyAzMi0zMnptMC0xMjhjMC0xNy43LTE0LjMtMzItMzItMzJsLTQ4IDAgMCA3MiA4MCAwIDAtNDB6Il19LHZJPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InNjYWxlLWJhbGFuY2VkIixpY29uOls2NDAsNTEyLFs5ODc4LCJiYWxhbmNlLXNjYWxlIl0sImYyNGUiLCJNMzg0IDMybDEyOCAwYzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMyTDM5OC40IDk2Yy01LjIgMjUuOC0yMi45IDQ3LjEtNDYuNCA1Ny4zbDAgMjk0LjcgMTYwIDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJsLTM4NCAwYy0xNy43IDAtMzItMTQuMy0zMi0zMnMxNC4zLTMyIDMyLTMybDE2MCAwIDAtMjk0LjdjLTIzLjUtMTAuMy00MS4yLTMxLjYtNDYuNC01Ny4zTDEyOCA5NmMtMTcuNyAwLTMyLTE0LjMtMzItMzJzMTQuMy0zMiAzMi0zMmwxMjggMGMxNC42LTE5LjQgMzcuOC0zMiA2NC0zMnM0OS40IDEyLjYgNjQgMzJ6bTU1LjYgMjg4TDU4NC40IDMyMCA1MTIgMTk1LjggNDM5LjYgMzIwek01MTIgNDE2Yy02Mi45IDAtMTE1LjItMzQtMTI2LTc4LjktMi42LTExIDEtMjIuMyA2LjctMzIuMWw5NS4yLTE2My4yYzUtOC42IDE0LjItMTMuOCAyNC4xLTEzLjhzMTkuMSA1LjMgMjQuMSAxMy44bDk1LjIgMTYzLjJjNS43IDkuOCA5LjMgMjEuMSA2LjcgMzIuMS0xMC44IDQ0LjgtNjMuMSA3OC45LTEyNiA3OC45ek0xMjYuOCAxOTUuOEw1NC40IDMyMCAxOTkuMyAzMjAgMTI2LjggMTk1Ljh6TS45IDMzNy4xYy0yLjYtMTEgMS0yMi4zIDYuNy0zMi4xbDk1LjItMTYzLjJjNS04LjYgMTQuMi0xMy44IDI0LjEtMTMuOHMxOS4xIDUuMyAyNC4xIDEzLjhsOTUuMiAxNjMuMmM1LjcgOS44IDkuMyAyMS4xIDYuNyAzMi4xLTEwLjggNDQuOC02My4xIDc4LjktMTI2IDc4LjlTMTEuNyAzODIgLjkgMzM3LjF6Il19LG1NZT12SSx5ST17cHJlZml4OiJmYXMiLGljb25OYW1lOiJjYXIiLGljb246WzUxMiw1MTIsWzEyODY2NCwiYXV0b21vYmlsZSJdLCJmMWI5IiwiTTEzNS4yIDExNy40bC0yNi4xIDc0LjYgMjkzLjggMC0yNi4xLTc0LjZDMzcyLjMgMTA0LjYgMzYwLjIgOTYgMzQ2LjYgOTZMMTY1LjQgOTZjLTEzLjYgMC0yNS43IDguNi0zMC4yIDIxLjR6TTM5LjYgMTk2LjhMNzQuOCA5Ni4zQzg4LjMgNTcuOCAxMjQuNiAzMiAxNjUuNCAzMmwxODEuMiAwYzQwLjggMCA3Ny4xIDI1LjggOTAuNiA2NC4zbDM1LjIgMTAwLjVjMjMuMiA5LjYgMzkuNiAzMi41IDM5LjYgNTkuMmwwIDE5MmMwIDE3LjctMTQuMyAzMi0zMiAzMmwtMzIgMGMtMTcuNyAwLTMyLTE0LjMtMzItMzJsMC0zMi0zMjAgMCAwIDMyYzAgMTcuNy0xNC4zIDMyLTMyIDMybC0zMiAwYy0xNy43IDAtMzItMTQuMy0zMi0zMkwwIDI1NmMwLTI2LjcgMTYuNC00OS42IDM5LjYtNTkuMnpNMTI4IDMwNGEzMiAzMiAwIDEgMCAtNjQgMCAzMiAzMiAwIDEgMCA2NCAwem0yODggMzJhMzIgMzIgMCAxIDAgMC02NCAzMiAzMiAwIDEgMCAwIDY0eiJdfSxnTWU9eUkseEk9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiY3JvcC1zaW1wbGUiLGljb246WzUxMiw1MTIsWyJjcm9wLWFsdCJdLCJmNTY1IiwiTTEyOCAzMmMwLTE3LjctMTQuMy0zMi0zMi0zMlM2NCAxNC4zIDY0IDMybDAgMzItMzIgMEMxNC4zIDY0IDAgNzguMyAwIDk2czE0LjMgMzIgMzIgMzJsMzIgMCAwIDI1NmMwIDM1LjMgMjguNyA2NCA2NCA2NGwyMDggMCAwLTY0LTIwOCAwIDAtMzUyek0zODQgNDgwYzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJsMC0zMiAzMiAwYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMybC0zMiAwIDAtMjU2YzAtMzUuMy0yOC43LTY0LTY0LTY0bC0yMDggMCAwIDY0IDIwOCAwIDAgMzUyeiJdfSxiTWU9eEksdk1lPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6Im1lZGFsIixpY29uOls0NDgsNTEyLFsxMjc5NDFdLCJmNWEyIiwiTTIyNC4zIDEyOEwxMzkuNy0xMi45Yy02LjUtMTAuOC0yMC4xLTE0LjctMzEuMy05LjFMMjEuOCAyMS4zQzkuOSAyNy4yIDUuMSA0MS42IDExIDUzLjVMODAuNiAxOTIuNmMtMzAuMSAzMy45LTQ4LjMgNzguNS00OC4zIDEyNy40IDAgMTA2IDg2IDE5MiAxOTIgMTkyczE5Mi04NiAxOTItMTkyYzAtNDguOS0xOC4zLTkzLjUtNDguMy0xMjcuNEw0MzcuNiA1My41YzUuOS0xMS45IDEuMS0yNi4zLTEwLjctMzIuMkwzNDAuMi0yMi4xYy0xMS4yLTUuNi0yNC45LTEuNi0zMS4zIDkuMUwyMjQuMyAxMjh6bTMwLjggMTQyLjVjMS40IDIuOCA0IDQuNyA3IDUuMWw1MC4xIDcuM2M3LjcgMS4xIDEwLjcgMTAuNSA1LjIgMTZsLTM2LjMgMzUuNGMtMi4yIDIuMi0zLjIgNS4yLTIuNyA4LjNsOC42IDQ5LjljMS4zIDcuNi02LjcgMTMuNS0xMy42IDkuOWwtNDQuOC0yMy42Yy0yLjctMS40LTYtMS40LTguNyAwbC00NC44IDIzLjZjLTYuOSAzLjYtMTQuOS0yLjItMTMuNi05LjlsOC42LTQ5LjljLjUtMy0uNS02LjEtMi43LTguM2wtMzYuMy0zNS40Yy01LjYtNS40LTIuNS0xNC44IDUuMi0xNmw1MC4xLTcuM2MzLS40IDUuNy0yLjQgNy01LjFsMjIuNC00NS40YzMuNC03IDEzLjMtNyAxNi44IDBsMjIuNCA0NS40eiJdfSx5TWU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToic2Nyb2xsIixpY29uOls1NzYsNTEyLFsxMjgyMjBdLCJmNzBlIiwiTTAgMTEyQzAgNzAuNSAzMS42IDM2LjQgNzIgMzIuNGwwLS40IDI4MCAwYzUzIDAgOTYgNDMgOTYgOTZsMCAxNzYtMTc2IDBjLTM5LjggMC03MiAzMi4yLTcyIDcybDAgNjBjMCAyNC4zLTE5LjcgNDQtNDQgNDRzLTQ0LTE5LjctNDQtNDRsMC0yMjgtNjQgMGMtMjYuNSAwLTQ4LTIxLjUtNDgtNDhsMC00OHpNMjM2LjggNDgwYzcuMS0xMy4xIDExLjItMjguMSAxMS4yLTQ0bDAtNjBjMC0xMy4zIDEwLjctMjQgMjQtMjRsMjQ4IDBjMTMuMyAwIDI0IDEwLjcgMjQgMjRsMCAyNGMwIDQ0LjItMzUuOCA4MC04MCA4MGwtMjI3LjIgMHpNODAgODBjLTE3LjcgMC0zMiAxNC4zLTMyIDMybDAgNDggNjQgMCAwLTQ4YzAtMTcuNy0xNC4zLTMyLTMyLTMyeiJdfSx4TWU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZmlsZS1leGNlbCIsaWNvbjpbMzg0LDUxMixbXSwiZjFjMyIsIk0wIDY0QzAgMjguNyAyOC43IDAgNjQgMEwyMTMuNSAwYzE3IDAgMzMuMyA2LjcgNDUuMyAxOC43TDM2NS4zIDEyNS4zYzEyIDEyIDE4LjcgMjguMyAxOC43IDQ1LjNMMzg0IDQ0OGMwIDM1LjMtMjguNyA2NC02NCA2NEw2NCA1MTJjLTM1LjMgMC02NC0yOC43LTY0LTY0TDAgNjR6bTIwOC01LjVsMCA5My41YzAgMTMuMyAxMC43IDI0IDI0IDI0TDMyNS41IDE3NiAyMDggNTguNXpNMTY0IDI2Ni43Yy03LjQtMTEtMjIuMy0xNC0zMy4zLTYuN3MtMTQgMjIuMy02LjcgMzMuM0wxNjMuMiAzNTIgMTI0IDQxMC43Yy03LjQgMTEtNC40IDI1LjkgNi43IDMzLjNzMjUuOSA0LjQgMzMuMy02LjdsMjgtNDIgMjggNDJjNy40IDExIDIyLjMgMTQgMzMuMyA2LjdzMTQtMjIuMyA2LjctMzMuM0wyMjAuOCAzNTIgMjYwIDI5My4zYzcuNC0xMSA0LjQtMjUuOS02LjctMzMuM3MtMjUuOS00LjQtMzMuMyA2LjdsLTI4IDQyLTI4LTQyeiJdfSx3TWU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZmlsdGVyIixpY29uOls1MTIsNTEyLFtdLCJmMGIwIiwiTTMyIDY0QzE5LjEgNjQgNy40IDcxLjggMi40IDgzLjhTLjIgMTA5LjUgOS40IDExOC42TDE5MiAzMDEuMyAxOTIgNDE2YzAgOC41IDMuNCAxNi42IDkuNCAyMi42bDY0IDY0YzkuMiA5LjIgMjIuOSAxMS45IDM0LjkgNi45UzMyMCA0OTIuOSAzMjAgNDgwbDAtMTc4LjcgMTgyLjYtMTgyLjZjOS4yLTkuMiAxMS45LTIyLjkgNi45LTM0LjlTNDkyLjkgNjQgNDgwIDY0TDMyIDY0eiJdfSxNTWU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZHJ1bSIsaWNvbjpbNTEyLDUxMixbMTI5MzQ1XSwiZjU2OSIsIk01MDEuMiA3Ni4xYzExLjEtNy4zIDE0LjItMjIuMSA2LjktMzMuMnMtMjIuMS0xNC4yLTMzLjItNi45TDM3MC4yIDEwNC41QzMzNS44IDk4LjcgMjk3IDk2IDI1NiA5NiAxMTQuNiA5NiAwIDEyOCAwIDIwOEwwIDM2OGMwIDMxLjMgMjcuNCA1OC44IDcyIDc4LjdMNzIgMzQ0YzAtMTMuMyAxMC43LTI0IDI0LTI0czI0IDEwLjcgMjQgMjRsMCAxMTkuNGMzMyA4LjkgNzEuMSAxNC41IDExMiAxNi4xTDIzMiAzNzZjMC0xMy4zIDEwLjctMjQgMjQtMjRzMjQgMTAuNyAyNCAyNGwwIDEwMy41YzQwLjktMS42IDc5LTcuMiAxMTItMTYuMUwzOTIgMzQ0YzAtMTMuMyAxMC43LTI0IDI0LTI0czI0IDEwLjcgMjQgMjRsMCAxMDIuN2M0NC42LTE5LjkgNzItNDcuNCA3Mi03OC43bDAtMTYwYzAtNDEuMS0zMC4yLTY5LjUtNzguOC04Ny40bDY3LjktNDQuNXpNMzA3LjQgMTQ1LjZsLTY0LjYgNDIuM2MtMTEuMSA3LjMtMTQuMiAyMi4xLTYuOSAzMy4yczIyLjEgMTQuMiAzMy4yIDYuOWwxMTEuMS03Mi44YzE0LjcgMy4yIDI3LjkgNyAzOS40IDExLjUgMzguOCAxNS4xIDQ0LjQgMzAuNiA0NC40IDQxLjMgMCAuOC0yLjcgMTcuMi00NiAzNS45LTM4LjkgMTYuOC05NiAyOC4xLTE2MiAyOC4xUzEzMi45IDI2MC43IDk0IDI0My45Yy00My4zLTE4LjctNDYtMzUuMS00Ni0zNS45IDAtMTAuNiA1LjYtMjYuMiA0NC40LTQxLjMgMzguMy0xNC45IDk1LjQtMjIuNyAxNjMuNi0yMi43IDE4IDAgMzUuMSAuNSA1MS40IDEuNnoiXX0sek1lPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6Im1hcC1waW4iLGljb246WzMyMCw1MTIsWzEyODIwNV0sImYyNzYiLCJNMTkyIDI4NC40QzI1Ni4xIDI2OS45IDMwNCAyMTIuNSAzMDQgMTQ0IDMwNCA2NC41IDIzOS41IDAgMTYwIDBTMTYgNjQuNSAxNiAxNDRjMCA2OC41IDQ3LjkgMTI1LjkgMTEyIDE0MC40TDEyOCA0ODBjMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMmwwLTE5NS42ek0xNjggOTZjLTMwLjkgMC01NiAyNS4xLTU2IDU2IDAgMTMuMy0xMC43IDI0LTI0IDI0cy0yNC0xMC43LTI0LTI0YzAtNTcuNCA0Ni42LTEwNCAxMDQtMTA0IDEzLjMgMCAyNCAxMC43IDI0IDI0cy0xMC43IDI0LTI0IDI0eiJdfSx3ST17cHJlZml4OiJmYXMiLGljb25OYW1lOiJzY2FsZS11bmJhbGFuY2VkLWZsaXAiLGljb246WzY0MCw1MTIsWyJiYWxhbmNlLXNjYWxlLXJpZ2h0Il0sImY1MTYiLCJNMTE4LjIgNjIuNEMxMDEuNSA1Ni44IDkyLjQgMzguNiA5OCAyMS45UzEyMS43LTMuOSAxMzguNSAxLjZsMTEzIDM3LjdjMTMuOS0yMy41IDM5LjYtMzkuMyA2OC45LTM5LjMgNDQuMiAwIDgwIDM1LjggODAgODAgMCAzLS4yIDUuOS0uNSA4LjhsMTIyLjYgNDAuOWMxNi44IDUuNiAyNS44IDIzLjcgMjAuMiA0MC41cy0yMy43IDI1LjgtNDAuNSAyMC4yTDM2Ni43IDE0NS4yYy00LjUgMy4yLTkuMyA1LjktMTQuNCA4LjJsMCAzMjYuN2MwIDE3LjctMTQuMyAzMi0zMiAzMmwtMTkyIDBjLTE3LjcgMC0zMi0xNC4zLTMyLTMyczE0LjMtMzIgMzItMzJsMTYwIDAgMC0yOTQuN2MtMjEtOS4yLTM3LjItMjctNDQuMi00OWwtMTI1LjktNDJ6TTIwMC44IDI4OEwxMjguMyAxNjMuOCA1NS45IDI4OCAyMDAuOCAyODh6bS03Mi40IDk2Yy02Mi45IDAtMTE1LjItMzQtMTI2LTc4LjktMi42LTExIDEtMjIuMyA2LjctMzIuMWw5NS4yLTE2My4yYzUtOC42IDE0LjItMTMuOCAyNC4xLTEzLjhzMTkuMSA1LjMgMjQuMSAxMy44bDk1LjIgMTYzLjJjNS43IDkuOCA5LjMgMjEuMSA2LjcgMzIuMS0xMC44IDQ0LjgtNjMuMSA3OC45LTEyNiA3OC45em0zODIuOC05Mi4ybC03Mi40IDEyNC4yIDE0NC45IDAtNzIuNC0xMjQuMnptMTI2IDE0MS4zQzYyNi40IDQ3OCA1NzQuMSA1MTIgNTExLjIgNTEycy0xMTUuMi0zNC0xMjYtNzguOWMtMi42LTExIDEtMjIuMyA2LjctMzIuMWw5NS4yLTE2My4yYzUtOC42IDE0LjItMTMuOCAyNC4xLTEzLjhzMTkuMSA1LjMgMjQuMSAxMy44bDk1LjIgMTYzLjJjNS43IDkuOCA5LjMgMjEuMSA2LjcgMzIuMXoiXX0sa01lPXdJLFNNZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJhcnJvd3MtdG8tY2lyY2xlIixpY29uOls1MTIsNTEyLFtdLCJlNGJkIiwiTTkuNCA5LjRDMjEuOS0zLjEgNDIuMS0zLjEgNTQuNiA5LjRMMTI4IDgyLjcgMTI4IDY0YzAtMTcuNyAxNC4zLTMyIDMyLTMyczMyIDE0LjMgMzIgMzJsMCA5NmMwIDE3LjctMTQuMyAzMi0zMiAzMmwtOTYgMGMtMTcuNyAwLTMyLTE0LjMtMzItMzJzMTQuMy0zMiAzMi0zMmwxOC43IDAtNzMuNC03My40Qy0zLjEgNDIuMS0zLjEgMjEuOSA5LjQgOS40ek0yMDAgMjU2YTU2IDU2IDAgMSAxIDExMiAwIDU2IDU2IDAgMSAxIC0xMTIgMHpNNTAyLjYgNTQuNkw0MjkuMyAxMjggNDQ4IDEyOGMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMmwtOTYgMGMtMTcuNyAwLTMyLTE0LjMtMzItMzJsMC05NmMwLTE3LjcgMTQuMy0zMiAzMi0zMnMzMiAxNC4zIDMyIDMybDAgMTguNyA3My40LTczLjRjMTIuNS0xMi41IDMyLjgtMTIuNSA0NS4zIDBzMTIuNSAzMi44IDAgNDUuM3ptLTQ1LjMgNDQ4TDM4NCA0MjkuMyAzODQgNDQ4YzAgMTcuNy0xNC4zIDMyLTMyIDMycy0zMi0xNC4zLTMyLTMybDAtOTZjMC0xNy43IDE0LjMtMzIgMzItMzJsOTYgMGMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMmwtMTguNyAwIDczLjQgNzMuNGMxMi41IDEyLjUgMTIuNSAzMi44IDAgNDUuM3MtMzIuOCAxMi41LTQ1LjMgMHpNOS40IDQ1Ny40TDgyLjcgMzg0IDY0IDM4NGMtMTcuNyAwLTMyLTE0LjMtMzItMzJzMTQuMy0zMiAzMi0zMmw5NiAwYzE3LjcgMCAzMiAxNC4zIDMyIDMybDAgOTZjMCAxNy43LTE0LjMgMzItMzIgMzJzLTMyLTE0LjMtMzItMzJsMC0xOC43LTczLjQgNzMuNGMtMTIuNSAxMi41LTMyLjggMTIuNS00NS4zIDBzLTEyLjUtMzIuOCAwLTQ1LjN6Il19LENNZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJlbnZlbG9wZSIsaWNvbjpbNTEyLDUxMixbMTI4Mzg2LDk5OTMsNjE0NDNdLCJmMGUwIiwiTTQ4IDY0Yy0yNi41IDAtNDggMjEuNS00OCA0OCAwIDE1LjEgNy4xIDI5LjMgMTkuMiAzOC40bDIwOCAxNTZjMTcuMSAxMi44IDQwLjUgMTIuOCA1Ny42IDBsMjA4LTE1NmMxMi4xLTkuMSAxOS4yLTIzLjMgMTkuMi0zOC40IDAtMjYuNS0yMS41LTQ4LTQ4LTQ4TDQ4IDY0ek0wIDE5NkwwIDM4NGMwIDM1LjMgMjguNyA2NCA2NCA2NGwzODQgMGMzNS4zIDAgNjQtMjguNyA2NC02NGwwLTE4OC0xOTguNCAxNDguOGMtMzQuMSAyNS42LTgxLjEgMjUuNi0xMTUuMiAwTDAgMTk2eiJdfSxfTWU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiYmFieSIsaWNvbjpbMzg0LDUxMixbXSwiZjc3YyIsIk0xMjAgODhhNzIgNzIgMCAxIDEgMTQ0IDAgNzIgNzIgMCAxIDEgLTE0NCAwek03LjcgMTQ0LjVjMTMtMTcuOSAzOC0yMS44IDU1LjktOC44TDk5LjggMTYyYzI2LjggMTkuNSA1OS4xIDMwIDkyLjIgMzBzNjUuNC0xMC41IDkyLjItMzBsMzYuMi0yNi40YzE3LjktMTMgNDIuOS05IDU1LjkgOC44czkgNDIuOS04LjggNTUuOWwtMzYuMiAyNi40Yy0xMy42IDkuOS0yOC4xIDE4LjItNDMuMyAyNWwwIDM2LjMtMTkyIDAgMC0zNi4zYy0xNS4yLTYuNy0yOS43LTE1LjEtNDMuMy0yNUwxNi41IDIwMC4zYy0xNy45LTEzLTIxLjgtMzgtOC44LTU1Ljl6TTk3LjUgMzI5LjNsNjAuNiA1My0yNiAzNy4yIDI0LjMgMjQuM2MxNS42IDE1LjYgMTUuNiA0MC45IDAgNTYuNnMtNDAuOSAxNS42LTU2LjYgMGwtNDgtNDhDMzggNDM4LjYgMzYuMSA0MTcgNDcuMiA0MDEuMWw1MC4yLTcxLjh6bTEyOC41IDUzbDYwLjYtNTMgNTAuMiA3MS44YzExLjEgMTUuOSA5LjIgMzcuNS00LjUgNTEuMmwtNDggNDhjLTE1LjYgMTUuNi00MC45IDE1LjYtNTYuNiAwcy0xNS42LTQwLjkgMC01Ni42bDI0LjMtMjQuMy0yNi0zNy4yeiJdfSxNST17cHJlZml4OiJmYXMiLGljb25OYW1lOiJzcXVhcmUtY2FyZXQtZG93biIsaWNvbjpbNDQ4LDUxMixbImNhcmV0LXNxdWFyZS1kb3duIl0sImYxNTAiLCJNMzg0IDQ4MGMzNS4zIDAgNjQtMjguNyA2NC02NGwwLTMyMGMwLTM1LjMtMjguNy02NC02NC02NEw2NCAzMkMyOC43IDMyIDAgNjAuNyAwIDk2TDAgNDE2YzAgMzUuMyAyOC43IDY0IDY0IDY0bDMyMCAwek0yMjQgMzUyYy02LjcgMC0xMy0yLjgtMTcuNi03LjdsLTEwNC0xMTJjLTYuNS03LTguMi0xNy4yLTQuNC0yNS45UzExMC41IDE5MiAxMjAgMTkybDIwOCAwYzkuNSAwIDE4LjIgNS43IDIyIDE0LjRzMi4xIDE4LjktNC40IDI1LjlsLTEwNCAxMTJjLTQuNSA0LjktMTAuOSA3LjctMTcuNiA3Ljd6Il19LFRNZT1NSSxMTWU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToidGVudCIsaWNvbjpbNTEyLDUxMixbXSwiZTU3ZCIsIk0yNi45IDIwNi45TDMuNyA0NDQuOUMxLjggNDYzLjcgMTYuNiA0ODAgMzUuNSA0ODBsMTcyLjcgMGMyNi41IDAgNDgtMjEuNSA0OC00OGwwLTEyOWMwLTguMyA2LjctMTUgMTUtMTUgNS41IDAgMTAuNiAzIDEzLjIgNy45bDg2LjEgMTU5YzguNCAxNS41IDI0LjYgMjUuMSA0Mi4yIDI1LjFsNjQuMSAwYzE4LjkgMCAzMy43LTE2LjMgMzEuOC0zNS4xTDQ4NS42IDIwNy4xYy0xLjktMTkuNi0xMi44LTM3LjMtMjkuNS00Ny44TDI4MC45IDQ4LjNjLTE1LjctMTAtMzUuOC05LjktNTEuNSAuMUw1Ni4xIDE1OS4yYy0xNi41IDEwLjYtMjcuMyAyOC4yLTI5LjIgNDcuN3oiXX0sJE1lPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImEiLGljb246WzM4NCw1MTIsWzk3XSwiNDEiLCJNMjIxLjUgNTEuN0MyMTYuNiAzOS44IDIwNC45IDMyIDE5MiAzMnMtMjQuNiA3LjgtMjkuNSAxOS43Yy05My4zIDIyNC0xNDYuNyAzNTItMTYwIDM4NC02LjggMTYuMyAuOSAzNSAxNy4yIDQxLjhzMzUtLjkgNDEuOC0xNy4ybDMxLjgtNzYuMyAxOTcuMyAwIDMxLjggNzYuM2M2LjggMTYuMyAyNS41IDI0IDQxLjggMTcuMnMyNC0yNS41IDE3LjItNDEuOGMtMTMuMy0zMi02Ni43LTE2MC0xNjAtMzg0ek0yNjQgMzIwbC0xNDQgMCA3Mi0xNzIuOCA3MiAxNzIuOHoiXX0sQU1lPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InBhcmFjaHV0ZS1ib3giLGljb246WzUxMiw1MTIsW10sImY0Y2QiLCJNMTI4IDIyNEMxMjggMTUyLjIgMTQ0LjMgODguNCAxNjkuNSA0My40IDE5NS4xLTIuNCAyMjYuNi0yNCAyNTYtMjRzNjAuOSAyMS42IDg2LjUgNjcuNEMzNjcuNyA4OC40IDM4NCAxNTIuMiAzODQgMjI0bC0xMDQgMCAwIDk2IDggMGM5LjMgMCAxOC4xIDIgMjYgNS41bDExOC40LTEwMS41LS41IDBjMC03OC40LTE3LjctMTUwLjYtNDcuNi0yMDQtNi4xLTExLTEyLjktMjEuMy0yMC4zLTMwLjkgODYuNSAzNS45IDE0Ny44IDExNS4xIDE0Ny44IDIxOC45IDAgNy0zLjEgMTMuNy04LjQgMTguMkwzNDcuNCAzNjAuMWMzIDcuNCA0LjYgMTUuNCA0LjYgMjMuOWwwIDY0YzAgMzUuMy0yOC43IDY0LTY0IDY0bC02NCAwYy0zNS4zIDAtNjQtMjguNy02NC02NGwwLTY0YzAtOC40IDEuNi0xNi41IDQuNi0yMy45TDguNCAyMjYuMkMzLjEgMjIxLjcgMCAyMTUgMCAyMDggMCAxMDQuMiA2MS4zIDI0LjkgMTQ3LjgtMTAuOSAxNDAuNS0xLjQgMTMzLjcgOSAxMjcuNiAyMCA5Ny43IDczLjQgODAgMTQ1LjYgODAgMjI0bC0uNSAwIDExOC40IDEwMS41YzgtMy41IDE2LjgtNS41IDI2LTUuNWw4IDAgMC05Ni0xMDQgMHoiXX0sRE1lPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImNhcnQtYXJyb3ctZG93biIsaWNvbjpbNjQwLDUxMixbXSwiZjIxOCIsIk0wIDhDMC01LjMgMTAuNy0xNiAyNC0xNmw0NS4zIDBjMjcuMSAwIDUwLjMgMTkuNCA1NS4xIDQ2bC40IDIgMTg3LjIgMCAwIDEwMi4xLTMxLTMxYy05LjQtOS40LTI0LjYtOS40LTMzLjkgMHMtOS40IDI0LjYgMCAzMy45bDcyIDcyYzkuNCA5LjQgMjQuNiA5LjQgMzMuOSAwbDcyLTcyYzkuNC05LjQgOS40LTI0LjYgMC0zMy45cy0yNC42LTkuNC0zMy45IDBsLTMxIDMxIDAtMTAyLjEgMTc3LjQgMGMyMCAwIDM1LjEgMTguMiAzMS40IDM3LjlMNTM3LjggMjM1LjhjLTUuNyAzMC4zLTMyLjEgNTIuMi02Mi45IDUyLjJsLTMwMy42IDAgNS4xIDI4LjNjMi4xIDExLjQgMTIgMTkuNyAyMy42IDE5LjdMNDU2IDMzNmMxMy4zIDAgMjQgMTAuNyAyNCAyNHMtMTAuNyAyNC0yNCAyNGwtMjU1LjkgMGMtMzQuOCAwLTY0LjYtMjQuOS03MC44LTU5LjFMNzcuMiAzOC42Yy0uNy0zLjgtNC02LjYtNy45LTYuNkwyNCAzMkMxMC43IDMyIDAgMjEuMyAwIDh6TTE2MCA0NjRhNDggNDggMCAxIDEgOTYgMCA0OCA0OCAwIDEgMSAtOTYgMHptMjI0IDBhNDggNDggMCAxIDEgOTYgMCA0OCA0OCAwIDEgMSAtOTYgMHoiXX0sRU1lPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImJyaWRnZS1jaXJjbGUtZXhjbGFtYXRpb24iLGljb246WzU3Niw1MTIsW10sImU0Y2EiLCJNMzIgMzJDMTQuMyAzMiAwIDQ2LjMgMCA2NFMxNC4zIDk2IDMyIDk2bDggMCAwIDY0LTQwIDAgMCAxMTJjMzcuNiA5LjQgNjQgNDMuMiA2NCA4MmwwIDk0YzAgMTcuNyAxNC4zIDMyIDMyIDMybDMyIDBjMTcuNyAwIDMyLTE0LjMgMzItMzJsMC02NGMwLTUzIDQzLTk2IDk2LTk2IDYuNCAwIDEyLjcgLjYgMTguNyAxLjggMzQuNy00OS41IDkyLjItODEuOCAxNTcuMy04MS44IDI4LjYgMCA1NS42IDYuMiA4MCAxNy40bDAtNjUuNC00MCAwIDAtNjQgOCAwYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMyTDMyIDMyek00MjQgOTZsMCA2NC04MCAwIDAtNjQgODAgMHpNMjk2IDk2bDAgNjQtODAgMCAwLTY0IDgwIDB6TTg4IDk2bDgwIDAgMCA2NC04MCAwIDAtNjR6TTQzMiA1NDRhMTQ0IDE0NCAwIDEgMCAwLTI4OCAxNDQgMTQ0IDAgMSAwIDAgMjg4em0wLTEwMGEyMCAyMCAwIDEgMSAwIDQwIDIwIDIwIDAgMSAxIDAtNDB6bTAtMTQwYzguOCAwIDE2IDcuMiAxNiAxNmwwIDgwYzAgOC44LTcuMiAxNi0xNiAxNnMtMTYtNy4yLTE2LTE2bDAtODBjMC04LjggNy4yLTE2IDE2LTE2eiJdfSxlbT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJjbG91ZC1hcnJvdy11cCIsaWNvbjpbNTc2LDUxMixbNjIzMzgsImNsb3VkLXVwbG9hZCIsImNsb3VkLXVwbG9hZC1hbHQiXSwiZjBlZSIsIk0xNDQgNDgwYy03OS41IDAtMTQ0LTY0LjUtMTQ0LTE0NCAwLTYzLjQgNDEtMTE3LjIgOTcuOS0xMzYuNS0xLjMtNy43LTEuOS0xNS41LTEuOS0yMy41IDAtNzkuNSA2NC41LTE0NCAxNDQtMTQ0IDU1LjQgMCAxMDMuNSAzMS4zIDEyNy42IDc3LjEgMTQuMi04LjMgMzAuOC0xMy4xIDQ4LjQtMTMuMSA1MyAwIDk2IDQzIDk2IDk2IDAgMTUuNy0zLjggMzAuNi0xMC41IDQzLjcgNDQgMjAuMyA3NC41IDY0LjcgNzQuNSAxMTYuMyAwIDcwLjctNTcuMyAxMjgtMTI4IDEyOGwtMzA0IDB6TTMwNSAxOTFjLTkuNC05LjQtMjQuNi05LjQtMzMuOSAwbC03MiA3MmMtOS40IDkuNC05LjQgMjQuNiAwIDMzLjlzMjQuNiA5LjQgMzMuOSAwbDMxLTMxIDAgMTAyLjFjMCAxMy4zIDEwLjcgMjQgMjQgMjRzMjQtMTAuNyAyNC0yNGwwLTEwMi4xIDMxIDMxYzkuNCA5LjQgMjQuNiA5LjQgMzMuOSAwczkuNC0yNC42IDAtMzMuOWwtNzItNzJ6Il19LFBNZT1lbSxJTWU9ZW0sTk1lPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImF0IixpY29uOls1MTIsNTEyLFs2MTk0Nl0sIjQwIiwiTTI1NiA2NEMxNTAgNjQgNjQgMTUwIDY0IDI1NnM4NiAxOTIgMTkyIDE5MmMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMkMxMTQuNiA1MTIgMCAzOTcuNCAwIDI1NlMxMTQuNiAwIDI1NiAwIDUxMiAxMTQuNiA1MTIgMjU2bDAgMzJjMCA1My00MyA5Ni05NiA5Ni0yOS4zIDAtNTUuNi0xMy4yLTczLjItMzMuOS0yMi44IDIxLTUzLjMgMzMuOS04Ni44IDMzLjktNzAuNyAwLTEyOC01Ny4zLTEyOC0xMjhzNTcuMy0xMjggMTI4LTEyOGMyNy45IDAgNTMuNyA4LjkgNzQuNyAyNC4xIDUuNy01IDEzLjEtOC4xIDIxLjMtOC4xIDE3LjcgMCAzMiAxNC4zIDMyIDMybDAgMTEyYzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJsMC0zMmMwLTEwNi04Ni0xOTItMTkyLTE5MnptNjQgMTkyYTY0IDY0IDAgMSAwIC0xMjggMCA2NCA2NCAwIDEgMCAxMjggMHoiXX0sdG09e3ByZWZpeDoiZmFzIixpY29uTmFtZToiaW5kaWFuLXJ1cGVlLXNpZ24iLGljb246WzMyMCw1MTIsWyJpbmRpYW4tcnVwZWUiLCJpbnIiXSwiZTFiYyIsIk0wIDY0QzAgNDYuMyAxNC4zIDMyIDMyIDMybDI2NCAwYzEzLjMgMCAyNCAxMC43IDI0IDI0cy0xMC43IDI0LTI0IDI0bC03Ni43IDBjMTcuNyAxOS44IDMwLjEgNDQuNiAzNC43IDcybDQyIDBjMTMuMyAwIDI0IDEwLjcgMjQgMjRzLTEwLjcgMjQtMjQgMjRsLTQyIDBjLTEwLjQgNjIuMi02MC44IDExMC45LTEyMy44IDExOC45TDI3NC42IDQyMmMxNC40IDEwLjMgMTcuNyAzMC4zIDcuNCA0NC42cy0zMC4zIDE3LjctNDQuNiA3LjRMMTMuNCAzMTRDMi4xIDMwNi0yLjcgMjkxLjUgMS41IDI3OC4yUzE4LjEgMjU2IDMyIDI1Nmw4MCAwYzM1LjggMCA2Ni4xLTIzLjUgNzYuMy01NkwyNCAyMDBjLTEzLjMgMC0yNC0xMC43LTI0LTI0czEwLjctMjQgMjQtMjRsMTY0LjMgMGMtMTAuMi0zMi41LTQwLjUtNTYtNzYuMy01NkwzMiA5NkMxNC4zIDk2IDAgODEuNyAwIDY0eiJdfSxGTWU9dG0sT01lPXRtLFJNZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJ0cnVjayIsaWNvbjpbNTc2LDUxMixbMTI4NjY2LDk5NTFdLCJmMGQxIiwiTTAgOTZDMCA2MC43IDI4LjcgMzIgNjQgMzJsMjg4IDBjMzUuMyAwIDY0IDI4LjcgNjQgNjRsMCAzMiA1MC43IDBjMTcgMCAzMy4zIDYuNyA0NS4zIDE4LjdMNTU3LjMgMTkyYzEyIDEyIDE4LjcgMjguMyAxOC43IDQ1LjNMNTc2IDM4NGMwIDM1LjMtMjguNyA2NC02NCA2NGwtMy4zIDBjLTEwLjQgMzYuOS00NC40IDY0LTg0LjcgNjRzLTc0LjItMjcuMS04NC43LTY0bC0xMDIuNiAwYy0xMC40IDM2LjktNDQuNCA2NC04NC43IDY0cy03NC4yLTI3LjEtODQuNy02NEw2NCA0NDhjLTM1LjMgMC02NC0yOC43LTY0LTY0TDAgOTZ6TTUxMiAyODhsMC01MC43LTQ1LjMtNDUuMy01MC43IDAgMCA5NiA5NiAwek0xOTIgNDI0YTQwIDQwIDAgMSAwIC04MCAwIDQwIDQwIDAgMSAwIDgwIDB6bTIzMiA0MGE0MCA0MCAwIDEgMCAwLTgwIDQwIDQwIDAgMSAwIDAgODB6Il19LHpJPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImNoYWxrYm9hcmQtdXNlciIsaWNvbjpbNjQwLDUxMixbImNoYWxrYm9hcmQtdGVhY2hlciJdLCJmNTFjIiwiTTE5MiAzODRjNTMgMCA5NiA0MyA5NiA5NiAwIDE3LjctMTQuMyAzMi0zMiAzMkwzMiA1MTJjLTE3LjcgMC0zMi0xNC4zLTMyLTMyIDAtNTMgNDMtOTYgOTYtOTZsOTYgMHpNNTQ0IDMyYzM1LjMgMCA2NCAyOC43IDY0IDY0bDAgMjg4YzAgMzMuMS0yNS4yIDYwLjQtNTcuNSA2My43bC02LjUgLjMtMjExLjEgMGMtNS4xLTI0LjItMTYuMy00Ni4xLTMyLjEtNjRsNTEuMiAwIDAtMzJjMC0xNy43IDE0LjMtMzIgMzItMzJsOTYgMGMxNy43IDAgMzIgMTQuMyAzMiAzMmwwIDMyIDMyIDAgMC0yODgtMzUyIDAgMCA1Ny4zYy0xNC44LTYtMzEtOS4zLTQ4LTkuMy01LjQgMC0xMC44IC4zLTE2IDFsMC00OWMwLTM1LjMgMjguNy02NCA2NC02NGwzNTIgMHpNMTQ0IDM1MmE4MCA4MCAwIDEgMSAwLTE2MCA4MCA4MCAwIDEgMSAwIDE2MHoiXX0sQk1lPXpJLEhNZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJ1c2VyLWNoZWNrIixpY29uOls2NDAsNTEyLFtdLCJmNGZjIiwiTTI4NiAzMDRjOTguNSAwIDE3OC4zIDc5LjggMTc4LjMgMTc4LjMgMCAxNi40LTEzLjMgMjkuNy0yOS43IDI5LjdMNzggNTEyYy0xNi40IDAtMjkuNy0xMy4zLTI5LjctMjkuNyAwLTk4LjUgNzkuOC0xNzguMyAxNzguMy0xNzguM2w1OS40IDB6TTU4NS43IDEwNS45YzcuOC0xMC43IDIyLjgtMTMuMSAzMy41LTUuM3MxMy4xIDIyLjggNS4zIDMzLjVMNTIyLjEgMjc0LjljLTQuMiA1LjctMTAuNyA5LjQtMTcuNyA5LjhzLTE0LTIuMi0xOC45LTcuM2wtNDYuNC00OGMtOS4yLTkuNS05LTI0LjcgLjYtMzMuOSA5LjUtOS4yIDI0LjctOC45IDMzLjkgLjZsMjYuNSAyNy40IDg1LjYtMTE3Ljd6TTI1Ni4zIDI0OGExMjAgMTIwIDAgMSAxIDAtMjQwIDEyMCAxMjAgMCAxIDEgMCAyNDB6Il19LHFNZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJ1c2VyLW5pbmphIixpY29uOls0NDgsNTEyLFsxMjkzOTldLCJmNTA0IiwiTTM1MiAxMjhjMCA3MC43LTU3LjMgMTI4LTEyOCAxMjgtNTcuMiAwLTEwNS42LTM3LjUtMTIyLTg5LjMtMS4xIDEuMy0yLjIgMi42LTMuNSAzLjgtMTUuOCAxNS44LTM4LjggMjAuNy01My42IDIyLjEtOC4xIC44LTE0LjYtNS43LTEzLjgtMTMuOCAxLjQtMTQuNyA2LjMtMzcuOCAyMi4xLTUzLjYgNS44LTUuOCAxMi42LTEwLjEgMTkuNi0xMy40LTctMy4yLTEzLjgtNy42LTE5LjYtMTMuNC0xNS44LTE1LjgtMjAuNy0zOC44LTIyLjEtNTMuNi0uOC04LjEgNS43LTE0LjYgMTMuOC0xMy44IDE0LjcgMS40IDM3LjggNi4zIDUzLjYgMjIuMSA0LjggNC44IDguNyAxMC40IDExLjcgMTYuMSAyMS4zLTQxLjIgNjQuMy02OS40IDExMy44LTY5LjQgNzAuNyAwIDEyOCA1Ny4zIDEyOCAxMjh6TTE0NCAxMTJjMCA4LjggNy4yIDE2IDE2IDE2bDEyOCAwYzguOCAwIDE2LTcuMiAxNi0xNnMtNy4yLTE2LTE2LTE2TDE2MCA5NmMtOC44IDAtMTYgNy4yLTE2IDE2em0tMS40IDIxMWw2NyA1MC4yYzguNSA2LjQgMjAuMyA2LjQgMjguOCAwbDY3LTUwLjJjNi41LTQuOSAxNS4yLTYuMiAyMi42LTIuOCA2MS40IDI4LjIgMTA0LjEgOTAuMiAxMDQuMSAxNjIuMSAwIDE2LjQtMTMuMyAyOS43LTI5LjcgMjkuN0w0NS43IDUxMmMtMTYuNCAwLTI5LjctMTMuMy0yOS43LTI5LjcgMC03MiA0Mi43LTEzNCAxMDQuMS0xNjIuMSA3LjQtMy40IDE2LjEtMi4xIDIyLjYgMi44eiJdfSxWTWU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToicGxhbnQtd2lsdCIsaWNvbjpbNTEyLDUxMixbXSwiZTVhYSIsIk0zNDQtMzJjNjYuMyAwIDEyMCA1My43IDEyMCAxMjBsMCA2LjJjMjkuMyAxMi4yIDQ4IDQxLjMgNDggNzYuOSAwIDI3LjktMjUuMyA3NC44LTY2IDExMS43LTMuOCAzLjUtOC44IDUuMy0xNCA1LjNzLTEwLjItMS44LTE0LTUuM2MtNDAuNy0zNi44LTY2LTgzLjctNjYtMTExLjcgMC0zNS42IDE4LjctNjQuNyA0OC03Ni45bDAtNi4yYzAtMzAuOS0yNS4xLTU2LTU2LTU2cy01NiAyNS4xLTU2IDU2bDAgNDI0YzAgMTcuNy0xNC4zIDMyLTMyIDMycy0zMi0xNC4zLTMyLTMybDAtMjk2YzAtMzAuOS0yNS4xLTU2LTU2LTU2cy01NiAyNS4xLTU2IDU2bDAgMzguMmMyOS4zIDEyLjIgNDggNDEuMyA0OCA3Ni45IDAgMjcuOS0yNS4zIDc0LjgtNjYgMTExLjctMy44IDMuNS04LjggNS4zLTE0IDUuM3MtMTAuMi0xLjgtMTQtNS4zQzI1LjMgNDA1LjkgMCAzNTkgMCAzMzEuMSAwIDI5NS40IDE4LjcgMjY2LjQgNDggMjU0LjJMNDggMjE2YzAtNjYuMyA1My43LTEyMCAxMjAtMTIwIDIwLjIgMCAzOS4zIDUgNTYgMTMuOEwyMjQgODhjMC02Ni4zIDUzLjctMTIwIDEyMC0xMjB6Il19LGtJPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6IndlaWdodC1zY2FsZSIsaWNvbjpbNDQ4LDUxMixbIndlaWdodCJdLCJmNDk2IiwiTTExNi42IDE5MmMtMy0xMC4xLTQuNi0yMC45LTQuNi0zMiAwLTYxLjkgNTAuMS0xMTIgMTEyLTExMlMzMzYgOTguMSAzMzYgMTYwYzAgMTEuMS0xLjYgMjEuOS00LjYgMzJsLTcxIDAgMjQuNi00NC4zYzYuNC0xMS42IDIuMy0yNi4yLTkuMy0zMi42cy0yNi4yLTIuMy0zMi42IDkuM2wtMzcuNiA2Ny43LTg4LjggMHpNMTI4IDMyTDY0IDMyQzI4LjcgMzIgMCA2MC43IDAgOTZMMCA0MTZjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMzIwIDBjMzUuMyAwIDY0LTI4LjcgNjQtNjRsMC0zMjBjMC0zNS4zLTI4LjctNjQtNjQtNjRsLTY0IDBDMjkzLjMgMTEuOSAyNjAgMCAyMjQgMHMtNjkuMyAxMS45LTk2IDMyeiJdfSxqTWU9a0ksWm09e3ByZWZpeDoiZmFzIixpY29uTmFtZToiY2FyZXQtcmlnaHQiLGljb246WzI1Niw1MTIsW10sImYwZGEiLCJNMjQ5LjMgMjM1LjhjMTAuMiAxMi42IDkuNSAzMS4xLTIuMiA0Mi44bC0xMjggMTI4Yy05LjIgOS4yLTIyLjkgMTEuOS0zNC45IDYuOVM2NC41IDM5Ni45IDY0LjUgMzg0bDAtMjU2YzAtMTIuOSA3LjgtMjQuNiAxOS44LTI5LjZzMjUuNy0yLjIgMzQuOSA2LjlsMTI4IDEyOCAyLjIgMi40eiJdfSxVTWU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZmxvcmluLXNpZ24iLGljb246WzM4NCw1MTIsW10sImUxODQiLCJNMzE0LjcgMzJjLTM4LjggMC03My43IDIzLjMtODguNiA1OS4xTDE3MC43IDIyNCA2NCAyMjRjLTE3LjcgMC0zMiAxNC4zLTMyIDMyczE0LjMgMzIgMzIgMzJsODAgMC00NS4xIDEwOC4zYy01IDExLjktMTYuNiAxOS43LTI5LjUgMTkuN0wzMiA0MTZjLTE3LjcgMC0zMiAxNC4zLTMyIDMyczE0LjMgMzIgMzIgMzJsMzcuMyAwYzM4LjggMCA3My43LTIzLjMgODguNi01OS4xTDIxMy4zIDI4OCAzMjAgMjg4YzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMybC04MCAwIDQ1LjEtMTA4LjNjNS0xMS45IDE2LjYtMTkuNyAyOS41LTE5LjdMMzUyIDk2YzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMybC0zNy4zIDB6Il19LFhtPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImJlbGwiLGljb246WzQ0OCw1MTIsWzEyODI3Niw2MTYwMl0sImYwZjMiLCJNMjI0IDBjLTE3LjcgMC0zMiAxNC4zLTMyIDMybDAgMy4yQzExOSA1MCA2NCAxMTQuNiA2NCAxOTJsMCAyMS43YzAgNDguMS0xNi40IDk0LjgtNDYuNCAxMzIuNEw3LjggMzU4LjNDMi43IDM2NC42IDAgMzcyLjQgMCAzODAuNSAwIDQwMC4xIDE1LjkgNDE2IDM1LjUgNDE2bDM3Ni45IDBjMTkuNiAwIDM1LjUtMTUuOSAzNS41LTM1LjUgMC04LjEtMi43LTE1LjktNy44LTIyLjJsLTkuOC0xMi4yQzQwMC40IDMwOC41IDM4NCAyNjEuOCAzODQgMjEzLjdsMC0yMS43YzAtNzcuNC01NS0xNDItMTI4LTE1Ni44bDAtMy4yYzAtMTcuNy0xNC4zLTMyLTMyLTMyek0xNjIgNDY0YzcuMSAyNy42IDMyLjIgNDggNjIgNDhzNTQuOS0yMC40IDYyLTQ4bC0xMjQgMHoiXX0sV01lPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6Imxhcmktc2lnbiIsaWNvbjpbMzg0LDUxMixbXSwiZTFjOCIsIk0xNDQgMGMxMy4zIDAgMjQgMTAuNyAyNCAyNGwwIDQxLjVjNy45LTEgMTUuOS0xLjUgMjQtMS41czE2LjEgLjUgMjQgMS41TDIxNiAyNGMwLTEzLjMgMTAuNy0yNCAyNC0yNHMyNCAxMC43IDI0IDI0bDAgNTRjNTguOSAyMy44IDEwMy4yIDc2IDExNi4yIDEzOS43IDMuNSAxNy4zLTcuNyAzNC4yLTI1IDM3LjdzLTM0LjItNy43LTM3LjctMjVjLTYuNy0zMy4yLTI2LjQtNjEuOC01My40LTgwLjJsMCA4MS44YzAgMTMuMy0xMC43IDI0LTI0IDI0cy0yNC0xMC43LTI0LTI0bDAtMTAxLjhjLTcuOC0xLjUtMTUuOC0yLjItMjQtMi4ycy0xNi4yIC44LTI0IDIuMkwxNjggMjMyYzAgMTMuMy0xMC43IDI0LTI0IDI0cy0yNC0xMC43LTI0LTI0bDAtODEuOGMtMzMuOCAyMy01NiA2MS45LTU2IDEwNS44IDAgNzAuNyA1Ny4zIDEyOCAxMjggMTI4bDE2MCAwYzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMyTDMyIDQ0OGMtMTcuNyAwLTMyLTE0LjMtMzItMzJzMTQuMy0zMiAzMi0zMmwxNi45IDBDMTguNSAzNTAgMCAzMDUuMiAwIDI1NiAwIDE3NS40IDQ5LjYgMTA2LjQgMTIwIDc4bDAtNTRjMC0xMy4zIDEwLjctMjQgMjQtMjR6Il19LEdNZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJtaWxsLXNpZ24iLGljb246WzM4NCw1MTIsW10sImUxZWQiLCJNMjk3LTIyLjJjMTIuMyA1IDE4LjIgMTkgMTMuMiAzMS4zbC0yOSA3MS4zQzMzOC44IDg1LjEgMzg0IDEzMy4zIDM4NCAxOTJsMCAyMDhjMCAxNy43LTE0LjMgMzItMzIgMzJzLTMyLTE0LjMtMzItMzJsMC0yMDhjMC0yNi41LTIxLjUtNDgtNDgtNDgtNi40IDAtMTIuNSAxLjItMTggMy41bC0zMCA3My44IDAgMTc4LjdjMCAxNy43LTE0LjMgMzItMzIgMzJzLTMyLTE0LjMtMzItMzJsMC0yMS4yLTU3LjggMTQyLjJjLTUgMTIuMy0xOSAxOC4yLTMxLjMgMTMuMnMtMTguMi0xOS0xMy4yLTMxLjNMMTYwIDI1MS4zIDE2MCAxOTJjMC0yNi41LTIxLjUtNDgtNDgtNDhzLTQ4IDIxLjUtNDggNDhsMCAyMDhjMCAxNy43LTE0LjMgMzItMzIgMzJTMCA0MTcuNyAwIDQwMEwwIDExMmMwLTE3LjcgMTQuMy0zMiAzMi0zMiAxMC45IDAgMjAuNSA1LjQgMjYuMyAxMy43IDE2LTguNyAzNC4zLTEzLjcgNTMuNy0xMy43IDMxLjMgMCA1OS43IDEyLjkgODAgMzMuNiA5LjYtOS44IDIwLjktMTcuOCAzMy41LTIzLjVMMjY1LjgtOWM1LTEyLjMgMTktMTguMiAzMS4zLTEzLjJ6Il19LFNJPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InBlcnNvbi1zbm93Ym9hcmRpbmciLGljb246WzU3Niw1MTIsWzEyNzkzOCwic25vd2JvYXJkaW5nIl0sImY3Y2UiLCJNNDI0LjUgMTZhNTYgNTYgMCAxIDEgMCAxMTIgNTYgNTYgMCAxIDEgMC0xMTJ6TTE2Ni40IDQ1LjVjMTAuMi0xNC40IDMwLjItMTcuOSA0NC42LTcuN2wyNzIgMTkyYzE0LjQgMTAuMiAxNy45IDMwLjIgNy43IDQ0LjZzLTMwLjIgMTcuOS00NC42IDcuN2wtOTIuMi02NS4xLTYyLjIgNTMuMyAzMi4xIDI2LjdjMTguMiAxNS4yIDI4LjggMzcuNyAyOC44IDYxLjVsMCA4Ny44IDc3LjUgMTUuMmM2LjIgMS4yIDEyLjYgLjkgMTguNy0uOGw0MS4yLTExLjhjMTIuNy0zLjYgMjYgMy43IDI5LjcgMTYuNXMtMy43IDI2LTE2LjUgMjkuN2wtNDEuMiAxMS44Yy0xMy40IDMuOC0yNy40IDQuNC00MS4xIDEuOEw4Ny4xIDQ0My4zYy0xNy4yLTMuNC0zMy0xMS44LTQ1LjMtMjQuMUwxNS41IDM5M2MtOS40LTkuNC05LjQtMjQuNiAwLTMzLjlzMjQuNi05LjQgMzMuOSAwbDI2LjIgMjYuMmM1LjYgNS42IDEyLjggOS40IDIwLjYgMTFsNjQuMiAxMi42IDAtMTIzLjdjMC0yNy43IDEyLTU0IDMyLjgtNzIuMmw2OS02MC40LTg4LjItNjIuM0MxNTkuNiA4MCAxNTYuMiA2MCAxNjYuNCA0NS41em01OC4xIDM3NS43bDY0IDEyLjUgMC03NS4zYzAtNC43LTIuMS05LjMtNS44LTEyLjNsLTU4LjItNDguNSAwIDEyMy42eiJdfSxZTWU9U0ksQ0k9e3ByZWZpeDoiZmFzIixpY29uTmFtZToidHR5IixpY29uOls1MTIsNTEyLFsidGVsZXR5cGUiXSwiZjFlNCIsIk00NTAuMiAyNjYuOGMxNS44IDYuNSAzNC4xIC4zIDQyLjYtMTQuNmwyLjQtNC4yYzI3LjktNDguOSAyMy42LTExOC44LTMxLjMtMTU0LjUtMTI2LTgyLTI4OS42LTgyLTQxNS42IDAtNTQuOSAzNS43LTU5LjMgMTA1LjctMzEuMyAxNTQuNWwyLjQgNC4yYzguNSAxNC45IDI2LjcgMjEuMSA0Mi42IDE0LjZsODEuOS0zMy43YzEzLjktNS43IDIyLjQtMTkuOSAyMC45LTM0LjlsLTUuMS01MWM2Mi41LTIxIDEzMC44LTE5LjkgMTkyLjYgMy4zbC00LjggNDcuN2MtMS41IDE1IDcgMjkuMiAyMC45IDM0LjlsODEuOSAzMy43ek0zMiAzNTJhMzIgMzIgMCAxIDAgNjQgMCAzMiAzMiAwIDEgMCAtNjQgMHptOTYgMGEzMiAzMiAwIDEgMCA2NCAwIDMyIDMyIDAgMSAwIC02NCAwek02NCA0MTZhMzIgMzIgMCAxIDAgMCA2NCAzMiAzMiAwIDEgMCAwLTY0em0zNTIgMzJhMzIgMzIgMCAxIDAgNjQgMCAzMiAzMiAwIDEgMCAtNjQgMHpNMjU2IDMyMGEzMiAzMiAwIDEgMCAwIDY0IDMyIDMyIDAgMSAwIDAtNjR6bTY0IDMyYTMyIDMyIDAgMSAwIDY0IDAgMzIgMzIgMCAxIDAgLTY0IDB6bTEyOC0zMmEzMiAzMiAwIDEgMCAwIDY0IDMyIDMyIDAgMSAwIDAtNjR6TTEyOCA0NDhjMCAxNy43IDE0LjMgMzIgMzIgMzJsMTkyIDBjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJsLTE5MiAwYy0xNy43IDAtMzIgMTQuMy0zMiAzMnoiXX0sWk1lPUNJLFhNZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJ1c2Vycy1yZWN0YW5nbGUiLGljb246WzU3Niw1MTIsW10sImU1OTQiLCJNNjQgMzJDMjguNyAzMiAwIDYwLjcgMCA5NkwwIDQxNmMwIDM1LjMgMjguNyA2NCA2NCA2NGw0NDggMGMzNS4zIDAgNjQtMjguNyA2NC02NGwwLTMyMGMwLTM1LjMtMjguNy02NC02NC02NEw2NCAzMnptMjI0IDcyYTU2IDU2IDAgMSAxIDAgMTEyIDU2IDU2IDAgMSAxIDAtMTEyem0wIDE1MmM1MyAwIDk2IDQzIDk2IDk2bDAgMjRjMCAxMy4zLTEwLjcgMjQtMjQgMjRsLTE0NCAwYy0xMy4zIDAtMjQtMTAuNy0yNC0yNGwwLTI0YzAtNTMgNDMtOTYgOTYtOTZ6bTk2LTY0YTQ4IDQ4IDAgMSAxIDk2IDAgNDggNDggMCAxIDEgLTk2IDB6TTE2OCAyNzIuM2MtMTUuMiAyMi44LTI0IDUwLjItMjQgNzkuN2wwIDI0YzAgOC40IDEuNCAxNi41IDQuMSAyNGwtNDYuOCAwQzg5LjYgNDAwIDgwIDM5MC40IDgwIDM3OC43TDgwIDM2OGMwLTUwLjMgMzguNy05MS42IDg4LTk1Ljd6TTQyNy45IDQwMGMyLjctNy41IDQuMS0xNS42IDQuMS0yNGwwLTI0YzAtMjkuNS04LjgtNTYuOS0yNC03OS43IDQ5LjMgNC4xIDg4IDQ1LjMgODggOTUuN2wwIDEwLjdjMCAxMS44LTkuNiAyMS4zLTIxLjMgMjEuM2wtNDYuOCAwek05NiAxOTJhNDggNDggMCAxIDEgOTYgMCA0OCA0OCAwIDEgMSAtOTYgMHoiXX0sYW09e3ByZWZpeDoiZmFzIixpY29uTmFtZToibW9iaWxlIixpY29uOlszODQsNTEyLFsxMjgyNDEsIm1vYmlsZS1hbmRyb2lkIiwibW9iaWxlLXBob25lIl0sImYzY2UiLCJNODAgMEM0NC43IDAgMTYgMjguNyAxNiA2NGwwIDM4NGMwIDM1LjMgMjguNyA2NCA2NCA2NGwyMjQgMGMzNS4zIDAgNjQtMjguNyA2NC02NGwwLTM4NGMwLTM1LjMtMjguNy02NC02NC02NEw4MCAwem03MiA0MTZsODAgMGMxMy4zIDAgMjQgMTAuNyAyNCAyNHMtMTAuNyAyNC0yNCAyNGwtODAgMGMtMTMuMyAwLTI0LTEwLjctMjQtMjRzMTAuNy0yNCAyNC0yNHoiXX0sS01lPWFtLFFNZT1hbSxKTWU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiYXJyb3dzLXR1cm4tdG8tZG90cyIsaWNvbjpbNDQ4LDUxMixbXSwiZTRjMSIsIk0yNjUuNC02LjZjMTIuNS0xMi41IDMyLjgtMTIuNSA0NS4zIDBzMTIuNSAzMi44IDAgNDUuM0wyODUuMyA2NCAzNTIgNjRjNTMgMCA5NiA0MyA5NiA5NmwwIDMyYzAgMTcuNy0xNC4zIDMyLTMyIDMycy0zMi0xNC4zLTMyLTMybDAtMzJjMC0xNy43LTE0LjMtMzItMzItMzJsLTY2LjcgMCAyNS40IDI1LjRjMTIuNSAxMi41IDEyLjUgMzIuOCAwIDQ1LjNzLTMyLjggMTIuNS00NS4zIDBsLTgwLTgwYy0xMi41LTEyLjUtMTIuNS0zMi44IDAtNDUuM2w4MC04MHptLTgyLjcgMjcybDgwIDgwYzEyLjUgMTIuNSAxMi41IDMyLjggMCA0NS4zbC04MCA4MGMtMTIuNSAxMi41LTMyLjggMTIuNS00NS4zIDBzLTEyLjUtMzIuOCAwLTQ1LjNMMTYyLjcgNDAwIDk2IDQwMGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJsMCAzMmMwIDE3LjctMTQuMyAzMi0zMiAzMlMwIDQ4MS43IDAgNDY0bDAtMzJjMC01MyA0My05NiA5Ni05Nmw2Ni43IDAtMjUuNC0yNS40Yy0xMi41LTEyLjUtMTIuNS0zMi44IDAtNDUuM3MzMi44LTEyLjUgNDUuMyAwek0zMjAgMzY4YTY0IDY0IDAgMSAxIDEyOCAwIDY0IDY0IDAgMSAxIC0xMjggMHpNNjQgMTYwYTY0IDY0IDAgMSAxIDAtMTI4IDY0IDY0IDAgMSAxIDAgMTI4eiJdfSxlemU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZXhjbGFtYXRpb24iLGljb246WzEyOCw1MTIsWzEwMDY5LDEwMDcxLDYxNzM4XSwiMjEiLCJNNjQgNDMyYzIyLjEgMCA0MCAxNy45IDQwIDQwcy0xNy45IDQwLTQwIDQwLTQwLTE3LjktNDAtNDBjMC0yMi4xIDE3LjktNDAgNDAtNDB6TTY0IDBjMjYuNSAwIDQ4IDIxLjUgNDggNDggMCAuNiAwIDEuMSAwIDEuN2wtMTYgMzA0Yy0uOSAxNy0xNSAzMC4zLTMyIDMwLjNTMzMgMzcwLjcgMzIgMzUzLjdMMTYgNDkuN2MwLS42IDAtMS4xIDAtMS43IDAtMjYuNSAyMS41LTQ4IDQ4LTQ4eiJdfSx0emU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiY2h1cmNoIixpY29uOls1MTIsNTEyLFs5OTYyXSwiZjUxZCIsIk0yODAtOGMwLTEzLjMtMTAuNy0yNC0yNC0yNFMyMzItMjEuMyAyMzItOGwwIDI0LTMyIDBjLTEzLjMgMC0yNCAxMC43LTI0IDI0czEwLjcgMjQgMjQgMjRsMzIgMCAwIDQ4LTk4LjYgNjUuOEMxMjAgMTg2LjcgMTEyIDIwMS42IDExMiAyMTcuN2wwIDM4LjMtNzkuOCA0NS42QzEyLjMgMzEzIDAgMzM0LjIgMCAzNTcuMUwwIDQ0OGMwIDM1LjMgMjguNyA2NCA2NCA2NCA3NC43IDAgODUuNCAwIDMyMCAwbDY0IDBjMzUuMyAwIDY0LTI4LjcgNjQtNjRsMC05MC45YzAtMjMtMTIuMy00NC4yLTMyLjItNTUuNkw0MDAgMjU2IDQwMCAyMTcuN2MwLTE2LTgtMzEtMjEuNC0zOS45bC05OC42LTY1LjggMC00OCAzMiAwYzEzLjMgMCAyNC0xMC43IDI0LTI0cy0xMC43LTI0LTI0LTI0bC0zMiAwIDAtMjR6TTI1NiAzMjBjMzUuMyAwIDY0IDI4LjcgNjQgNjRsMCA4MC0xMjggMCAwLTgwYzAtMzUuMyAyOC43LTY0IDY0LTY0eiJdfSxhemU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToidG9nZ2xlLW9mZiIsaWNvbjpbNTc2LDUxMixbXSwiZjIwNCIsIk0zODQgMTI4YzcwLjcgMCAxMjggNTcuMyAxMjggMTI4UzQ1NC43IDM4NCAzODQgMzg0bC0xOTIgMGMtNzAuNyAwLTEyOC01Ny4zLTEyOC0xMjhzNTcuMy0xMjggMTI4LTEyOGwxOTIgMHpNNTc2IDI1NmMwLTEwNi04Ni0xOTItMTkyLTE5MkwxOTIgNjRDODYgNjQgMCAxNTAgMCAyNTZTODYgNDQ4IDE5MiA0NDhsMTkyIDBjMTA2IDAgMTkyLTg2IDE5Mi0xOTJ6TTE5MiAzMzZhODAgODAgMCAxIDAgMC0xNjAgODAgODAgMCAxIDAgMCAxNjB6Il19LGl6ZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJzaG9lLXByaW50cyIsaWNvbjpbNTc2LDUxMixbXSwiZjU0YiIsIk0yOTYgMTkyYy0yMS4xLTEyLjEtNDIuMy0yNC4yLTcyLTI5LjNsMC0xNDAuM0MyNTcuNyAxMyAzMTEuNCAwIDM1MiAwIDQ0OCAwIDU3NiA0OCA1NzYgMTI4cy0xMTkuNiA5Ni0xNzYgOTZjLTQ4IDAtNzYtMTYtMTA0LTMyek0xMjggMzJsNDggMCAwIDEyOC00OCAwYy0zNS4zIDAtNjQtMjguNy02NC02NHMyOC43LTY0IDY0LTY0ek0yMzIgMzIwYzI4LTE2IDU2LTMyIDEwNC0zMiA1Ni40IDAgMTc2IDE2IDE3NiA5NlMzODQgNTEyIDI4OCA1MTJjLTQwLjUgMC05NC4zLTEzLTEyOC0yMi40bDAtMTQwLjNjMjkuNy01LjIgNTAuOS0xNy4zIDcyLTI5LjR6TTY0IDQ4MGMtMzUuMyAwLTY0LTI4LjctNjQtNjRzMjguNy02NCA2NC02NGw0OCAwIDAgMTI4LTQ4IDB6Il19LHJ6ZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJmaWxlLWNpcmNsZS1leGNsYW1hdGlvbiIsaWNvbjpbNTc2LDUxMixbXSwiZTRlYiIsIk05NiAwQzYwLjcgMCAzMiAyOC43IDMyIDY0bDAgMzg0YzAgMzUuMyAyOC43IDY0IDY0IDY0bDE4MCAwYy0yMi43LTMxLjUtMzYtNzAuMi0zNi0xMTIgMC0xMDAuNiA3Ny40LTE4My4yIDE3Ni0xOTEuM2wwLTM4LjFjMC0xNy02LjctMzMuMy0xOC43LTQ1LjNMMjkwLjcgMTguN0MyNzguNyA2LjcgMjYyLjUgMCAyNDUuNSAwTDk2IDB6TTM1Ny41IDE3NkwyNjQgMTc2Yy0xMy4zIDAtMjQtMTAuNy0yNC0yNEwyNDAgNTguNSAzNTcuNSAxNzZ6TTQzMiA1NDRhMTQ0IDE0NCAwIDEgMCAwLTI4OCAxNDQgMTQ0IDAgMSAwIDAgMjg4em0wLTEwMGEyMCAyMCAwIDEgMSAwIDQwIDIwIDIwIDAgMSAxIDAtNDB6bTAtMTQwYzguOCAwIDE2IDcuMiAxNiAxNmwwIDgwYzAgOC44LTcuMiAxNi0xNiAxNnMtMTYtNy4yLTE2LTE2bDAtODBjMC04LjggNy4yLTE2IDE2LTE2eiJdfSxLbT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJ3YWxsZXQiLGljb246WzUxMiw1MTIsW10sImY1NTUiLCJNNjQgMzJDMjguNyAzMiAwIDYwLjcgMCA5NkwwIDM4NGMwIDM1LjMgMjguNyA2NCA2NCA2NGwzODQgMGMzNS4zIDAgNjQtMjguNyA2NC02NGwwLTE5MmMwLTM1LjMtMjguNy02NC02NC02NEw3MiAxMjhjLTEzLjMgMC0yNC0xMC43LTI0LTI0UzU4LjcgODAgNzIgODBsMzg0IDBjMTMuMyAwIDI0LTEwLjcgMjQtMjRzLTEwLjctMjQtMjQtMjRMNjQgMzJ6TTQxNiAyNTZhMzIgMzIgMCAxIDEgMCA2NCAzMiAzMiAwIDEgMSAwLTY0eiJdfSxlOD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJtZXNzYWdlIixpY29uOls1MTIsNTEyLFsiY29tbWVudC1hbHQiXSwiZjI3YSIsIk0wIDM1MkwwIDEyOEMwIDc1IDQzIDMyIDk2IDMybDMyMCAwYzUzIDAgOTYgNDMgOTYgOTZsMCAyMjRjMCA1My00MyA5Ni05NiA5NmwtMTIwIDBjLTUuMiAwLTEwLjIgMS43LTE0LjQgNC44TDE2Ni40IDUzOS4yYy00LjIgMy4xLTkuMiA0LjgtMTQuNCA0LjgtMTMuMyAwLTI0LTEwLjctMjQtMjRsMC03Mi0zMiAwYy01MyAwLTk2LTQzLTk2LTk2eiJdfSxzemU9ZTgsbnplPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InRyb3BoeSIsaWNvbjpbNTEyLDUxMixbMTI3OTQyXSwiZjA5MSIsIk0xNDQuMyAwbDIyNCAwYzI2LjUgMCA0OC4xIDIxLjggNDcuMSA0OC4yLS4yIDUuMy0uNCAxMC42LS43IDE1LjhsNDkuNiAwYzI2LjEgMCA0OS4xIDIxLjYgNDcuMSA0OS44LTcuNSAxMDMuNy02MC41IDE2MC43LTExOCAxOTAuNS0xNS44IDguMi0zMS45IDE0LjMtNDcuMiAxOC44LTIwLjIgMjguNi00MS4yIDQzLjctNTcuOSA1MS44bDAgNzMuMSA2NCAwYzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMybC0xOTIgMGMtMTcuNyAwLTMyLTE0LjMtMzItMzJzMTQuMy0zMiAzMi0zMmw2NCAwIDAtNzMuMWMtMTYtNy43LTM1LjktMjItNTUuMy00OC4zLTE4LjQtNC44LTM4LjQtMTIuMS01Ny45LTIzLjEtNTQuMS0zMC4zLTEwMi45LTg3LjQtMTA5LjktMTg5LjktMS45LTI4LjEgMjEtNDkuNyA0Ny4xLTQ5LjdsNDkuNiAwYy0uMy01LjItLjUtMTAuNC0uNy0xNS44LTEtMjYuNSAyMC42LTQ4LjIgNDcuMS00OC4yek0xMDEuNSAxMTJsLTUyLjQgMGM2LjIgODQuNyA0NS4xIDEyNy4xIDg1LjIgMTQ5LjYtMTQuNC0zNy4zLTI2LjMtODYtMzIuOC0xNDkuNnpNMzgwIDI1Ni44YzQwLjUtMjMuOCA3Ny4xLTY2LjEgODMuMy0xNDQuOEw0MTEgMTEyYy02LjIgNjAuOS0xNy40IDEwOC4yLTMxIDE0NC44eiJdfSxfST17cHJlZml4OiJmYXMiLGljb25OYW1lOiJmYWNlLWRpenp5IixpY29uOls1MTIsNTEyLFsiZGl6enkiXSwiZjU2NyIsIk0yNTYgNTEyYTI1NiAyNTYgMCAxIDAgMC01MTIgMjU2IDI1NiAwIDEgMCAwIDUxMnpNMTM0LjEgMTUzLjlsMjUuOSAyNS45IDI1LjktMjUuOWM3LjgtNy44IDIwLjUtNy44IDI4LjMgMHM3LjggMjAuNSAwIDI4LjNsLTI1LjkgMjUuOSAyNS45IDI1LjljNy44IDcuOCA3LjggMjAuNSAwIDI4LjNzLTIwLjUgNy44LTI4LjMgMGwtMjUuOS0yNS45LTI1LjkgMjUuOWMtNy44IDcuOC0yMC41IDcuOC0yOC4zIDBzLTcuOC0yMC41IDAtMjguM2wyNS45LTI1LjktMjUuOS0yNS45Yy03LjgtNy44LTcuOC0yMC41IDAtMjguM3MyMC41LTcuOCAyOC4zIDB6bTE5MiAwbDI1LjkgMjUuOSAyNS45LTI1LjljNy44LTcuOCAyMC41LTcuOCAyOC4zIDBzNy44IDIwLjUgMCAyOC4zbC0yNS45IDI1LjkgMjUuOSAyNS45YzcuOCA3LjggNy44IDIwLjUgMCAyOC4zcy0yMC41IDcuOC0yOC4zIDBsLTI1LjktMjUuOS0yNS45IDI1LjljLTcuOCA3LjgtMjAuNSA3LjgtMjguMyAwcy03LjgtMjAuNSAwLTI4LjNsMjUuOS0yNS45LTI1LjktMjUuOWMtNy44LTcuOC03LjgtMjAuNSAwLTI4LjNzMjAuNS03LjggMjguMyAwek0yNTYgMzA0YTY0IDY0IDAgMSAxIDAgMTI4IDY0IDY0IDAgMSAxIDAtMTI4eiJdfSxvemU9X0ksbHplPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImJhY3RlcmlhIixpY29uOls2NDAsNTEyLFtdLCJlMDU5IiwiTTI1Ni0zMmMxMy4zIDAgMjQgMTAuNyAyNCAyNGwwIDExYzguNiAyLjIgMTYuOSA1LjYgMjQuOCAxMC4zTDMxMSA3YzkuNC05LjQgMjQuNi05LjQgMzMuOSAwczkuNCAyNC42IDAgMzMuOWwtNi4zIDYuM2M0LjYgNy44IDggMTYuMiAxMC4zIDI0LjhsMTEgMGMxMy4zIDAgMjQgMTAuNyAyNCAyNHMtMTAuNyAyNC0yNCAyNGwtMTEgMGMtMi4yIDguNi01LjYgMTYuOS0xMC4zIDI0LjhMMzQ1IDE1MWM5LjQgOS40IDkuNCAyNC42IDAgMzMuOXMtMjQuNiA5LjQtMzMuOSAwbC00LjEtNC4xLTMwLjEgMzAuMSA0LjEgNC4xYzkuNCA5LjQgOS40IDI0LjYgMCAzMy45cy0yNC42IDkuNC0zMy45IDBsLTQuMS00LjFjLTEwIDEwLTIwIDIwLTMwLjEgMzAuMUwyMTcgMjc5YzkuNCA5LjQgOS40IDI0LjYgMCAzMy45cy0yNC42IDkuNC0zMy45IDBsLTYuMy02LjNjLTcuOCA0LjYtMTYuMiA4LTI0LjggMTAuM2wwIDExYzAgMTMuMy0xMC43IDI0LTI0IDI0cy0yNC0xMC43LTI0LTI0bDAtMTFjLTguNi0yLjItMTYuOS01LjYtMjQuOC0xMC4zTDczIDMxM2MtOS40IDkuNC0yNC42IDkuNC0zMy45IDBzLTkuNC0yNC42IDAtMzMuOWw2LjMtNi4zYy00LjYtNy44LTgtMTYuMi0xMC4zLTI0LjhsLTExIDBjLTEzLjMgMC0yNC0xMC43LTI0LTI0czEwLjctMjQgMjQtMjRsMTEgMGMyLjItOC42IDUuNi0xNi45IDEwLjMtMjQuOEwzOSAxNjljLTkuNC05LjQtOS40LTI0LjYgMC0zMy45czI0LjYtOS40IDMzLjkgMGw0LjEgNC4xYzEwLTEwIDIwLTIwIDMwLjEtMzAuMUwxMDMgMTA1Yy05LjQtOS40LTkuNC0yNC42IDAtMzMuOXMyNC42LTkuNCAzMy45IDBsNC4xIDQuMSAzMC4xLTMwLjEtNC4xLTQuMWMtOS40LTkuNC05LjQtMjQuNiAwLTMzLjlTMTkxLjYtMi4zIDIwMSA3bDYuMyA2LjNjNy44LTQuNiAxNi4yLTggMjQuOC0xMC4zbDAtMTFjMC0xMy4zIDEwLjctMjQgMjQtMjR6TTEyOCAyNTZhMzIgMzIgMCAxIDAgMC02NCAzMiAzMiAwIDEgMCAwIDY0ek0yNDAgMTQ0YTMyIDMyIDAgMSAwIC02NCAwIDMyIDMyIDAgMSAwIDY0IDB6bTI5NiA0MGwwIDExYzguNiAyLjIgMTYuOSA1LjYgMjQuOCAxMC4zTDU2NyAxOTljOS40LTkuNCAyNC42LTkuNCAzMy45IDBzOS40IDI0LjYgMCAzMy45bC02LjMgNi4zYzQuNiA3LjggOCAxNi4yIDEwLjMgMjQuOGwxMSAwYzEzLjMgMCAyNCAxMC43IDI0IDI0cy0xMC43IDI0LTI0IDI0bC0xMSAwYy0yLjIgOC42LTUuNiAxNi45LTEwLjMgMjQuOEw2MDEgMzQzYzkuNCA5LjQgOS40IDI0LjYgMCAzMy45cy0yNC42IDkuNC0zMy45IDBsLTQuMS00LjEtMzAuMSAzMC4xIDQuMSA0LjFjOS40IDkuNCA5LjQgMjQuNiAwIDMzLjlzLTI0LjYgOS40LTMzLjkgMGwtNC4xLTQuMWMtMTAgMTAtMjAgMjAtMzAuMSAzMC4xTDQ3MyA0NzFjOS40IDkuNCA5LjQgMjQuNiAwIDMzLjlzLTI0LjYgOS40LTMzLjkgMGwtNi4zLTYuM2MtNy44IDQuNi0xNi4yIDgtMjQuOCAxMC4zbDAgMTFjMCAxMy4zLTEwLjcgMjQtMjQgMjRzLTI0LTEwLjctMjQtMjRsMC0xMWMtOC42LTIuMi0xNi45LTUuNi0yNC44LTEwLjNMMzI5IDUwNWMtOS40IDkuNC0yNC42IDkuNC0zMy45IDBzLTkuNC0yNC42IDAtMzMuOWw2LjMtNi4zYy00LjYtNy44LTgtMTYuMi0xMC4zLTI0LjhsLTExIDBjLTEzLjMgMC0yNC0xMC43LTI0LTI0czEwLjctMjQgMjQtMjRsMTEgMGMyLjItOC42IDUuNi0xNi45IDEwLjMtMjQuOEwyOTUgMzYxYy05LjQtOS40LTkuNC0yNC42IDAtMzMuOXMyNC42LTkuNCAzMy45IDBsNC4xIDQuMWMxMC0xMCAyMC0yMCAzMC4xLTMwLjFMMzU5IDI5N2MtOS40LTkuNC05LjQtMjQuNiAwLTMzLjlzMjQuNi05LjQgMzMuOSAwbDQuMSA0LjEgMzAuMS0zMC4xLTQuMS00LjFjLTkuNC05LjQtOS40LTI0LjYgMC0zMy45czI0LjYtOS40IDMzLjkgMGw2LjMgNi4zYzcuOC00LjYgMTYuMi04IDI0LjgtMTAuM2wwLTExYzAtMTMuMyAxMC43LTI0IDI0LTI0czI0IDEwLjcgMjQgMjR6TTQ0OCAzODRhMzIgMzIgMCAxIDAgLTY0IDAgMzIgMzIgMCAxIDAgNjQgMHoiXX0sTjU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZWFyLWRlYWYiLGljb246WzUxMiw1MTIsWyJkZWFmIiwiZGVhZm5lc3MiLCJoYXJkLW9mLWhlYXJpbmciXSwiZjJhNCIsIk01MDIuNiA1NC42bC00MCA0MGMtMTIuNSAxMi41LTMyLjggMTIuNS00NS4zIDBzLTEyLjUtMzIuOCAwLTQ1LjNsNDAtNDBjMTIuNS0xMi41IDMyLjgtMTIuNSA0NS4zIDBzMTIuNSAzMi44IDAgNDUuM3ptLTMyMCAzMjBsLTEyOCAxMjhjLTEyLjUgMTIuNS0zMi44IDEyLjUtNDUuMyAwcy0xMi41LTMyLjggMC00NS4zbDEyOC0xMjhjMTIuNS0xMi41IDMyLjgtMTIuNSA0NS4zIDBzMTIuNSAzMi44IDAgNDUuM3pNMjQwIDEyOGMtNTcuNiAwLTEwNS4xIDQzLjYtMTExLjMgOTkuNS0xLjkgMTcuNi0xNy44IDMwLjItMzUuMyAyOC4zcy0zMC4yLTE3LjgtMjguMy0zNS4zYzkuNy04OCA4NC4zLTE1Ni41IDE3NC45LTE1Ni41IDk3LjIgMCAxNzYgNzguOCAxNzYgMTc2IDAgNDYtMTcuNyA4Ny45LTQ2LjYgMTE5LjMtMTIgMTMtMTcuNCAyNC44LTE3LjQgMzQuN2wwIDYuMWMwIDYxLjktNTAuMSAxMTItMTEyIDExMi0xNy43IDAtMzItMTQuMy0zMi0zMnMxNC4zLTMyIDMyLTMyYzI2LjUgMCA0OC0yMS41IDQ4LTQ4bDAtNi4xYzAtMzIuOSAxNy40LTU5LjYgMzQuNC03OCAxOC40LTIwIDI5LjYtNDYuNiAyOS42LTc1LjkgMC02MS45LTUwLjEtMTEyLTExMi0xMTJ6bTAgODBjLTE3LjcgMC0zMiAxNC4zLTMyIDMyIDAgMTMuMy0xMC43IDI0LTI0IDI0cy0yNC0xMC43LTI0LTI0YzAtNDQuMiAzNS44LTgwIDgwLTgwczgwIDM1LjggODAgODBjMCAxMy4zLTEwLjcgMjQtMjQgMjRzLTI0LTEwLjctMjQtMjRjMC0xNy43LTE0LjMtMzItMzItMzJ6Il19LGN6ZT1ONSxkemU9TjUsaHplPU41LFRJPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InBlb3BsZS1hcnJvd3MiLGljb246WzUxMiw1MTIsWyJwZW9wbGUtYXJyb3dzLWxlZnQtcmlnaHQiXSwiZTA2OCIsIk0zMiA2NEE2NCA2NCAwIDEgMSAxNjAgNjQgNjQgNjQgMCAxIDEgMzIgNjR6TTAgMjI0YzAtMzUuMyAyOC43LTY0IDY0LTY0bDY0IDBjMy4yIDAgNi40IC4yIDkuNSAuN0w5My4xIDIwNS4xQzY1IDIzMy4yIDY1IDI3OC44IDkzLjEgMzA2LjlsNTYgNTZjMy40IDMuNCA3IDYuNCAxMC45IDlsMCA5Mi4xYzAgMjYuNS0yMS41IDQ4LTQ4IDQ4bC0zMiAwYy0yNi41IDAtNDgtMjEuNS00OC00OGwwLTEyMC42QzEyLjkgMzMyLjQgMCAzMTEuNyAwIDI4OGwwLTY0ek0zNTIgNjRhNjQgNjQgMCAxIDEgMTI4IDAgNjQgNjQgMCAxIDEgLTEyOCAwem02Ni45IDE0MS4xbC00NC40LTQ0LjRjMy4xLS41IDYuMy0uNyA5LjUtLjdsNjQgMGMzNS4zIDAgNjQgMjguNyA2NCA2NGwwIDY0YzAgMjMuNy0xMi45IDQ0LjQtMzIgNTUuNEw0ODAgNDY0YzAgMjYuNS0yMS41IDQ4LTQ4IDQ4bC0zMiAwYy0yNi41IDAtNDgtMjEuNS00OC00OGwwLTkyLjFjMy45LTIuNiA3LjUtNS42IDEwLjktOWw1Ni01NmMyOC4xLTI4LjEgMjguMS03My43IDAtMTAxLjh6TTMwMi44IDE3Ny44YzktMy43IDE5LjMtMS43IDI2LjIgNS4ybDU2IDU2YzkuNCA5LjQgOS40IDI0LjYgMCAzMy45bC01NiA1NmMtNi45IDYuOS0xNy4yIDguOS0yNi4yIDUuMlMyODggMzIxLjcgMjg4IDMxMmwwLTI0LTY0IDAgMCAyNGMwIDkuNy01LjggMTguNS0xNC44IDIyLjJzLTE5LjMgMS43LTI2LjItNS4ybC01Ni01NmMtOS40LTkuNC05LjQtMjQuNiAwLTMzLjlsNTYtNTZjNi45LTYuOSAxNy4yLTguOSAyNi4yLTUuMlMyMjQgMTkwLjMgMjI0IDIwMGwwIDI0IDY0IDAgMC0yNGMwLTkuNyA1LjgtMTguNSAxNC44LTIyLjJ6Il19LHB6ZT1USSx1emU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiaGFuZHMtY2xhcHBpbmciLGljb246WzUxMiw1MTIsW10sImUxYTgiLCJNMzQ0IDhsMCA2NGMwIDEzLjMtMTAuNyAyNC0yNCAyNHMtMjQtMTAuNy0yNC0yNGwwLTY0YzAtMTMuMyAxMC43LTI0IDI0LTI0UzM0NC01LjMgMzQ0IDh6TTIyMCAxMC43bDMyIDQ4YzcuNCAxMSA0LjQgMjUuOS02LjcgMzMuM3MtMjUuOSA0LjQtMzMuMy02LjdsLTMyLTQ4Yy03LjQtMTEtNC40LTI1LjkgNi43LTMzLjNTMjEyLjYtLjMgMjIwIDEwLjd6TTEzNSAxMTljOS40LTkuNCAyNC42LTkuNCAzMy45IDBMMjkyLjcgMjQyLjdjMTAuMSAxMC4xIDI3LjMgMi45IDI3LjMtMTEuM2wwLTM5LjRjMC0xNy43IDE0LjMtMzIgMzItMzJzMzIgMTQuMyAzMiAzMmwwIDE1My42YzAgNTcuMS0zMCAxMTAtNzguOSAxMzkuNC02NCAzOC40LTE0NS44IDI4LjMtMTk4LjUtMjQuNEw3IDM2MWMtOS40LTkuNC05LjQtMjQuNiAwLTMzLjlzMjQuNi05LjQgMzMuOSAwbDUzIDUzYzYuMSA2LjEgMTYgNi4xIDIyLjEgMHM2LjEtMTYgMC0yMi4xTDIzIDI2NWMtOS40LTkuNC05LjQtMjQuNiAwLTMzLjlzMjQuNi05LjQgMzMuOSAwbDkzIDkzYzYuMSA2LjEgMTYgNi4xIDIyLjEgMHM2LjEtMTYgMC0yMi4xTDU1IDE4NWMtOS40LTkuNC05LjQtMjQuNiAwLTMzLjlzMjQuNi05LjQgMzMuOSAwbDExNyAxMTdjNi4xIDYuMSAxNiA2LjEgMjIuMSAwczYuMS0xNiAwLTIyLjFsLTkzLTkzYy05LjQtOS40LTkuNC0yNC42IDAtMzMuOXpNNDMzLjEgNDg0LjljLTI0LjIgMTQuNS01MC45IDIyLjEtNzcuNyAyMy4xIDQ4LjEtMzkuNiA3Ni42LTk5IDc2LjYtMTYyLjRsMC05OC4xYzguMi0uMSAxNi02LjQgMTYtMTZsMC0zOS40YzAtMTcuNyAxNC4zLTMyIDMyLTMyczMyIDE0LjMgMzIgMzJsMCAxNTMuNmMwIDU3LjEtMzAgMTEwLTc4LjkgMTM5LjR6TTQ1My4zIDRjMTEgNy40IDE0IDIyLjMgNi43IDMzLjNsLTMyIDQ4Yy03LjQgMTEtMjIuMyAxNC0zMy4zIDYuN3MtMTQtMjIuMy02LjctMzMuM2wzMi00OGM3LjQtMTEgMjIuMy0xNCAzMy4zLTYuN3oiXX0sZnplPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InZpcnVzLWNvdmlkLXNsYXNoIixpY29uOls1NzYsNTEyLFtdLCJlNGE5IiwiTTQxLTI0LjljLTkuNC05LjQtMjQuNi05LjQtMzMuOSAwUy0yLjMtLjMgNyA5LjFsNTI4IDUyOGM5LjQgOS40IDI0LjYgOS40IDMzLjkgMHM5LjQtMjQuNiAwLTMzLjlsLTgzLTgzIDExLjQtMTEuNGM5LjQtOS40IDkuNC0yNC42IDAtMzMuOXMtMjQuNi05LjQtMzMuOSAwbC0xMS4zIDExLjMtMjMuOC0yMy44YzE3LjktMjMuNSAyOS45LTUxLjcgMzQuMS04Mi4zbDMzLjYgMCAwIDE2YzAgMTMuMyAxMC43IDI0IDI0IDI0czI0LTEwLjcgMjQtMjRsMC04MGMwLTEzLjMtMTAuNy0yNC0yNC0yNHMtMjQgMTAuNy0yNCAyNGwwIDE2LTMzLjYgMGMtNC4yLTMwLjctMTYuMy01OC44LTM0LjEtODIuM2wyMy44LTIzLjggMTEuMyAxMS4zYzkuNCA5LjQgMjQuNiA5LjQgMzMuOSAwczkuNC0yNC42IDAtMzMuOUw0NDAuNyA0Ni43Yy05LjQtOS40LTI0LjYtOS40LTMzLjkgMHMtOS40IDI0LjYgMCAzMy45bDExLjMgMTEuMy0yMy44IDIzLjhDMzcwLjggOTcuOSAzNDIuNyA4NS44IDMxMiA4MS42bDAtMzMuNiAxNiAwYzEzLjMgMCAyNC0xMC43IDI0LTI0UzM0MS4zIDAgMzI4IDBMMjQ4IDBjLTEzLjMgMC0yNCAxMC43LTI0IDI0czEwLjcgMjQgMjQgMjRsMTYgMCAwIDMzLjZjLTMwLjcgNC4yLTU4LjggMTYuMy04Mi4zIDM0LjFMMTU3LjkgOTIgMTY5LjIgODAuNmM5LjQtOS40IDkuNC0yNC42IDAtMzMuOXMtMjQuNi05LjQtMzMuOSAwTDEyMy45IDU4LjEgNDEtMjQuOXpNMTEzLjYgMjMybC0zMy42IDAgMC0xNmMwLTEzLjMtMTAuNy0yNC0yNC0yNHMtMjQgMTAuNy0yNCAyNGwwIDgwYzAgMTMuMyAxMC43IDI0IDI0IDI0czI0LTEwLjcgMjQtMjRsMC0xNiAzMy42IDBjNC4yIDMwLjcgMTYuMyA1OC44IDM0LjEgODIuM2wtMjMuOCAyMy44LTExLjMtMTEuM2MtOS40LTkuNC0yNC42LTkuNC0zMy45IDBzLTkuNCAyNC42IDAgMzMuOWw1Ni42IDU2LjZjOS40IDkuNCAyNC42IDkuNCAzMy45IDBzOS40LTI0LjYgMC0zMy45bC0xMS4zLTExLjMgMjMuOC0yMy44YzIzLjUgMTcuOSA1MS43IDI5LjkgODIuMyAzNC4xbDAgMzMuNi0xNiAwYy0xMy4zIDAtMjQgMTAuNy0yNCAyNHMxMC43IDI0IDI0IDI0bDgwIDBjMTMuMyAwIDI0LTEwLjcgMjQtMjRzLTEwLjctMjQtMjQtMjRsLTE2IDAgMC0zMy42YzEzLjQtMS44IDI2LjQtNS4yIDM4LjctOS45TDEyMy41IDE5My4zYy00LjcgMTIuMy04IDI1LjItOS45IDM4Ljd6Il19LExJPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImNhbGVuZGFyLWRheXMiLGljb246WzQ0OCw1MTIsWyJjYWxlbmRhci1hbHQiXSwiZjA3MyIsIk0xMjggMGMxNy43IDAgMzIgMTQuMyAzMiAzMmwwIDMyIDEyOCAwIDAtMzJjMC0xNy43IDE0LjMtMzIgMzItMzJzMzIgMTQuMyAzMiAzMmwwIDMyIDMyIDBjMzUuMyAwIDY0IDI4LjcgNjQgNjRsMCAyODhjMCAzNS4zLTI4LjcgNjQtNjQgNjRMNjQgNDgwYy0zNS4zIDAtNjQtMjguNy02NC02NEwwIDEyOEMwIDkyLjcgMjguNyA2NCA2NCA2NGwzMiAwIDAtMzJjMC0xNy43IDE0LjMtMzIgMzItMzJ6TTY0IDI0MGwwIDMyYzAgOC44IDcuMiAxNiAxNiAxNmwzMiAwYzguOCAwIDE2LTcuMiAxNi0xNmwwLTMyYzAtOC44LTcuMi0xNi0xNi0xNmwtMzIgMGMtOC44IDAtMTYgNy4yLTE2IDE2em0xMjggMGwwIDMyYzAgOC44IDcuMiAxNiAxNiAxNmwzMiAwYzguOCAwIDE2LTcuMiAxNi0xNmwwLTMyYzAtOC44LTcuMi0xNi0xNi0xNmwtMzIgMGMtOC44IDAtMTYgNy4yLTE2IDE2em0xNDQtMTZjLTguOCAwLTE2IDcuMi0xNiAxNmwwIDMyYzAgOC44IDcuMiAxNiAxNiAxNmwzMiAwYzguOCAwIDE2LTcuMiAxNi0xNmwwLTMyYzAtOC44LTcuMi0xNi0xNi0xNmwtMzIgMHpNNjQgMzY4bDAgMzJjMCA4LjggNy4yIDE2IDE2IDE2bDMyIDBjOC44IDAgMTYtNy4yIDE2LTE2bDAtMzJjMC04LjgtNy4yLTE2LTE2LTE2bC0zMiAwYy04LjggMC0xNiA3LjItMTYgMTZ6bTE0NC0xNmMtOC44IDAtMTYgNy4yLTE2IDE2bDAgMzJjMCA4LjggNy4yIDE2IDE2IDE2bDMyIDBjOC44IDAgMTYtNy4yIDE2LTE2bDAtMzJjMC04LjgtNy4yLTE2LTE2LTE2bC0zMiAwem0xMTIgMTZsMCAzMmMwIDguOCA3LjIgMTYgMTYgMTZsMzIgMGM4LjggMCAxNi03LjIgMTYtMTZsMC0zMmMwLTguOC03LjItMTYtMTYtMTZsLTMyIDBjLTguOCAwLTE2IDcuMi0xNiAxNnoiXX0sbXplPUxJLCRJPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImRpYW1vbmQtdHVybi1yaWdodCIsaWNvbjpbNTEyLDUxMixbImRpcmVjdGlvbnMiXSwiZjVlYiIsIk0yMTUgMTdMMTcgMjE1QzYuMSAyMjUuOSAwIDI0MC42IDAgMjU2czYuMSAzMC4xIDE3IDQxTDIxNSA0OTVjMTAuOSAxMC45IDI1LjYgMTcgNDEgMTdzMzAuMS02LjEgNDEtMTdMNDk1IDI5N2MxMC45LTEwLjkgMTctMjUuNiAxNy00MXMtNi4xLTMwLjEtMTctNDFMMjk3IDE3QzI4Ni4xIDYuMSAyNzEuNCAwIDI1NiAwcy0zMC4xIDYuMS00MSAxN3pNMzg1IDI1N2wtNzIgNzJjLTkuNCA5LjQtMjQuNiA5LjQtMzMuOSAwcy05LjQtMjQuNiAwLTMzLjlsMzEtMzEtNzguMSAwYy0xMy4zIDAtMjQgMTAuNy0yNCAyNGwwIDQwYzAgMTMuMy0xMC43IDI0LTI0IDI0cy0yNC0xMC43LTI0LTI0bDAtNDBjMC0zOS44IDMyLjItNzIgNzItNzJsNzguMSAwLTMxLTMxYy05LjQtOS40LTkuNC0yNC42IDAtMzMuOXMyNC42LTkuNCAzMy45IDBsNzIgNzJjOS40IDkuNCA5LjQgMjQuNiAwIDMzLjl6Il19LGd6ZT0kSSxiemU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiaGFuZC1wb2ludC11cCIsaWNvbjpbMzg0LDUxMixbOTc1N10sImYwYTYiLCJNMzIgMzJDMzIgMTQuMyA0Ni4zIDAgNjQgMFM5NiAxNC4zIDk2IDMybDAgMjA4LTY0IDAgMC0yMDh6TTIyNCAxOTJjMC0xNy43IDE0LjMtMzIgMzItMzJzMzIgMTQuMyAzMiAzMmwwIDY0YzAgMTcuNy0xNC4zIDMyLTMyIDMycy0zMi0xNC4zLTMyLTMybDAtNjR6bS02NC02NGMxNy43IDAgMzIgMTQuMyAzMiAzMmwwIDQ4YzAgMTcuNy0xNC4zIDMyLTMyIDMycy0zMi0xNC4zLTMyLTMybDAtNDhjMC0xNy43IDE0LjMtMzIgMzItMzJ6bTE2MCA5NmMwLTE3LjcgMTQuMy0zMiAzMi0zMnMzMiAxNC4zIDMyIDMybDAgNjRjMCAxNy43LTE0LjMgMzItMzIgMzJzLTMyLTE0LjMtMzItMzJsMC02NHptLTk2IDg4bDAtLjZjOS40IDUuNCAyMC4zIDguNiAzMiA4LjYgMTMuMiAwIDI1LjQtNCAzNS42LTEwLjggOC43IDI0LjkgMzIuNSA0Mi44IDYwLjQgNDIuOCAxMS43IDAgMjIuNi0zLjEgMzItOC42bDAgOC42YzAgODguNC03MS42IDE2MC0xNjAgMTYwbC02MS43IDBjLTQyLjQgMC04My4xLTE2LjktMTEzLjEtNDYuOUwzNy41IDQ1My41QzEzLjUgNDI5LjUgMCAzOTYuOSAwIDM2M2wwLTI3YzAtMzUuMyAyOC43LTY0IDY0LTY0bDg4IDBjMjIuMSAwIDQwIDE3LjkgNDAgNDBzLTE3LjkgNDAtNDAgNDBsLTU2IDBjLTguOCAwLTE2IDcuMi0xNiAxNnM3LjIgMTYgMTYgMTZsNTYgMGMzOS44IDAgNzItMzIuMiA3Mi03MnoiXX0sdnplPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImJlemllci1jdXJ2ZSIsaWNvbjpbNjQwLDUxMixbXSwiZjU1YiIsIk0yOTYgMTM2bDAtNDggNDggMCAwIDQ4LTQ4IDB6TTI4OCAzMmMtMjYuNSAwLTQ4IDIxLjUtNDggNDhsMCA0LTExOC40IDBDMTExLjIgNjIuNyA4OS4zIDQ4IDY0IDQ4IDI4LjcgNDggMCA3Ni43IDAgMTEyczI4LjcgNjQgNjQgNjRjMjUuMyAwIDQ3LjItMTQuNyA1Ny42LTM2bDY2LjkgMGMtNTguOSAzOS42LTk4LjkgMTA1LTEwNCAxODBMODAgMzIwYy0yNi41IDAtNDggMjEuNS00OCA0OGwwIDY0YzAgMjYuNSAyMS41IDQ4IDQ4IDQ4bDY0IDBjMjYuNSAwIDQ4LTIxLjUgNDgtNDhsMC02NGMwLTI2LjUtMjEuNS00OC00OC00OGwtMy4zIDBjNS45LTY3IDQ4LjUtMTIzLjQgMTA3LjUtMTQ5LjEgOC42IDEyLjcgMjMuMiAyMS4xIDM5LjggMjEuMWw2NCAwYzE2LjYgMCAzMS4xLTguNCAzOS44LTIxLjEgNTkgMjUuNyAxMDEuNiA4Mi4xIDEwNy41IDE0OS4xbC0zLjMgMGMtMjYuNSAwLTQ4IDIxLjUtNDggNDhsMCA2NGMwIDI2LjUgMjEuNSA0OCA0OCA0OGw2NCAwYzI2LjUgMCA0OC0yMS41IDQ4LTQ4bDAtNjRjMC0yNi41LTIxLjUtNDgtNDgtNDhsLTQuNSAwYy01LTc1LTQ1LjEtMTQwLjQtMTA0LTE4MGw2Ni45IDBjMTAuNCAyMS4zIDMyLjMgMzYgNTcuNiAzNiAzNS4zIDAgNjQtMjguNyA2NC02NHMtMjguNy02NC02NC02NGMtMjUuMyAwLTQ3LjIgMTQuNy01Ny42IDM2bC0xMTguNCAwIDAtNGMwLTI2LjUtMjEuNS00OC00OC00OGwtNjQgMHpNODggMzc2bDQ4IDAgMCA0OC00OCAwIDAtNDh6bTQxNiA0OGwwLTQ4IDQ4IDAgMCA0OC00OCAweiJdfSx5emU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToicGVyc29uLWhhbGYtZHJlc3MiLGljb246WzM4NCw1MTIsW10sImU1NDgiLCJNMTQzLjQtMy45YzkuNy0xNi44IDI3LjgtMjguMSA0OC42LTI4LjEgMzAuOSAwIDU2IDI1LjEgNTYgNTYgMCAyNS40LTE2LjkgNDYuOC00MCA1My43bDAgMGMtNS4xIDEuNS0xMC40IDIuMy0xNiAyLjMtMzAuOSAwLTU2LTI1LjEtNTYtNTZsMCAwYzAtMTAuMSAyLjctMTkuNyA3LjQtMjcuOXpNMzE4LjMgMjk5LjFMMjcyIDIzNi43IDI3MiA1MTJjMCAxNy43LTE0LjMgMzItMzIgMzJzLTMyLTE0LjMtMzItMzJsMC0xNjAgMC0uNCAwLTIzOC42YzM2LjIgNC40IDY5LjIgMjMuNCA5MS4yIDUzbDcwLjUgOTVjMTAuNSAxNC4yIDcuNiAzNC4yLTYuNiA0NC44cy0zNC4yIDcuNi00NC44LTYuNnpNMTc2IDExM2wwIDM5OWMwIDE3LjctMTQuMyAzMi0zMiAzMnMtMzItMTQuMy0zMi0zMmwwLTEyOC0yNS44IDBjLTEwLjkgMC0xOC42LTEwLjctMTUuMi0yMS4xbDQzLTEyOS00OC4zIDY1LjFjLTEwLjUgMTQuMi0zMC42IDE3LjItNDQuOCA2LjZzLTE3LjItMzAuNi02LjYtNDQuOGw3MC41LTk1YzIyLTI5LjYgNTUuMS00OC42IDkxLjItNTN6Il19LEFJPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InNxdWFyZS1wb2xsLWhvcml6b250YWwiLGljb246WzQ0OCw1MTIsWyJwb2xsLWgiXSwiZjY4MiIsIk00NDggOTZjMC0zNS4zLTI4LjctNjQtNjQtNjRMNjQgMzJDMjguNyAzMiAwIDYwLjcgMCA5NkwwIDQxNmMwIDM1LjMgMjguNyA2NCA2NCA2NGwzMjAgMGMzNS4zIDAgNjQtMjguNyA2NC02NGwwLTMyMHpNMjU2IDE1MmMwIDEzLjMtMTAuNyAyNC0yNCAyNGwtMTEyIDBjLTEzLjMgMC0yNC0xMC43LTI0LTI0czEwLjctMjQgMjQtMjRsMTEyIDBjMTMuMyAwIDI0IDEwLjcgMjQgMjR6bTcyIDgwYzEzLjMgMCAyNCAxMC43IDI0IDI0cy0xMC43IDI0LTI0IDI0bC0yMDggMGMtMTMuMyAwLTI0LTEwLjctMjQtMjRzMTAuNy0yNCAyNC0yNGwyMDggMHpNMTkyIDM2MGMwIDEzLjMtMTAuNyAyNC0yNCAyNGwtNDggMGMtMTMuMyAwLTI0LTEwLjctMjQtMjRzMTAuNy0yNCAyNC0yNGw0OCAwYzEzLjMgMCAyNCAxMC43IDI0IDI0eiJdfSx4emU9QUksd3plPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InNjaG9vbC1jaXJjbGUteG1hcmsiLGljb246WzY0MCw1MTIsW10sImU1NmQiLCJNNjQgMTI4Yy0zNS4zIDAtNjQgMjguNy02NCA2NEwwIDQ0OGMwIDM1LjMgMjguNyA2NCA2NCA2NGwyNzYgMGMtMTAuNS0xNC42LTE5LTMwLjctMjUuMS00OGwtOTAuOSAwIDAtODhjMC0yMi4xIDE3LjktNDAgNDAtNDBsNDggMGMxIDAgMS45IDAgMi45IC4xIDI2LjMtNzQuNiA5Ny41LTEyOC4xIDE4MS4xLTEyOC4xIDI4LjYgMCA1NS42IDYuMiA4MCAxNy40bDAtMzMuNGMwLTM1LjMtMjguNy02NC02NC02NGwtNjQgMC0xMjcuOS0xMTUuMWMtMTguMy0xNi40LTQ2LTE2LjQtNjQuMiAwTDEyOCAxMjggNjQgMTI4em02NCAyNDBjMCA4LjgtNy4yIDE2LTE2IDE2bC0zMiAwYy04LjggMC0xNi03LjItMTYtMTZsMC0zMmMwLTguOCA3LjItMTYgMTYtMTZsMzIgMGM4LjggMCAxNiA3LjIgMTYgMTZsMCAzMnpNMTEyIDI1NmwtMzIgMGMtOC44IDAtMTYtNy4yLTE2LTE2bDAtMzJjMC04LjggNy4yLTE2IDE2LTE2bDMyIDBjOC44IDAgMTYgNy4yIDE2IDE2bDAgMzJjMCA4LjgtNy4yIDE2LTE2IDE2ek0yODggMTI4YTY0IDY0IDAgMSAxIDAgMTI4IDY0IDY0IDAgMSAxIDAtMTI4ek00OTYgNTQ0YTE0NCAxNDQgMCAxIDAgMC0yODggMTQ0IDE0NCAwIDEgMCAwIDI4OHptNTkuMy0xODAuN2wtMzYuNyAzNi43IDM2LjcgMzYuN2M2LjIgNi4yIDYuMiAxNi40IDAgMjIuNnMtMTYuNCA2LjItMjIuNiAwbC0zNi43LTM2LjctMzYuNyAzNi43Yy02LjIgNi4yLTE2LjQgNi4yLTIyLjYgMHMtNi4yLTE2LjQgMC0yMi42bDM2LjctMzYuNy0zNi43LTM2LjdjLTYuMi02LjItNi4yLTE2LjQgMC0yMi42czE2LjQtNi4yIDIyLjYgMGwzNi43IDM2LjcgMzYuNy0zNi43YzYuMi02LjIgMTYuNC02LjIgMjIuNiAwczYuMiAxNi40IDAgMjIuNnoiXX0sTXplPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImhhbmQtbGl6YXJkIixpY29uOls1MTIsNTEyLFtdLCJmMjU4IiwiTTAgMTEyQzAgODUuNSAyMS41IDY0IDQ4IDY0bDIzOC41IDBjMzYuOCAwIDcxLjIgMTggOTIuMSA0OC4ybDExMy41IDE2NGMxMyAxOC43IDE5LjkgNDEgMTkuOSA2My44bDAgNzZjMCAxNy43LTE0LjMgMzItMzIgMzJsLTk2IDBjLTE3LjcgMC0zMi0xNC4zLTMyLTMybDAtMTMuOC03OC4xLTUwLjItMTYxLjkgMGMtMjYuNSAwLTQ4LTIxLjUtNDgtNDhzMjEuNS00OCA0OC00OGwxMjggMGMyNi41IDAgNDgtMjEuNSA0OC00OHMtMjEuNS00OC00OC00OEw0OCAxNjBjLTI2LjUgMC00OC0yMS41LTQ4LTQ4eiJdfSxEST17cHJlZml4OiJmYXMiLGljb25OYW1lOiJjaGFsa2JvYXJkIixpY29uOls1NzYsNTEyLFsiYmxhY2tib2FyZCJdLCJmNTFiIiwiTTk2IDY0Yy0zNS4zIDAtNjQgMjguNy02NCA2NGwwIDI1NmMtMTcuNyAwLTMyIDE0LjMtMzIgMzJzMTQuMyAzMiAzMiAzMmw1MTIgMGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMmwwLTI1NmMwLTM1LjMtMjguNy02NC02NC02NEw5NiA2NHpNNDgwIDM4NGwtNjQgMCAwLTMyYzAtMTcuNy0xNC4zLTMyLTMyLTMybC05NiAwYy0xNy43IDAtMzIgMTQuMy0zMiAzMmwwIDMyLTE2MCAwIDAtMjU2IDM4NCAwIDAgMjU2eiJdfSx6emU9REksRUk9e3ByZWZpeDoiZmFzIixpY29uTmFtZToidXAtcmlnaHQtZnJvbS1zcXVhcmUiLGljb246WzUxMiw1MTIsWyJleHRlcm5hbC1saW5rLWFsdCJdLCJmMzVkIiwiTTI5MC40IDE5LjhDMjk1LjQgNy44IDMwNy4xIDAgMzIwIDBMNDgwIDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJsMCAxNjBjMCAxMi45LTcuOCAyNC42LTE5LjggMjkuNnMtMjUuNyAyLjItMzQuOS02LjlMNDAwIDE1Ny4zIDI0Ni42IDMxMC42Yy0xMi41IDEyLjUtMzIuOCAxMi41LTQ1LjMgMHMtMTIuNS0zMi44IDAtNDUuM0wzNTQuNyAxMTIgMjk3LjQgNTQuNmMtOS4yLTkuMi0xMS45LTIyLjktNi45LTM0Ljl6TTAgMTc2YzAtNDQuMiAzNS44LTgwIDgwLTgwbDgwIDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJsLTgwIDBjLTguOCAwLTE2IDcuMi0xNiAxNmwwIDI1NmMwIDguOCA3LjIgMTYgMTYgMTZsMjU2IDBjOC44IDAgMTYtNy4yIDE2LTE2bDAtODBjMC0xNy43IDE0LjMtMzIgMzItMzJzMzIgMTQuMyAzMiAzMmwwIDgwYzAgNDQuMi0zNS44IDgwLTgwIDgwTDgwIDUxMmMtNDQuMiAwLTgwLTM1LjgtODAtODBMMCAxNzZ6Il19LGt6ZT1FSSxTemU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToic3F1YXJlLWZ1bGwiLGljb246WzUxMiw1MTIsWzEyODk5NywxMjg5OTgsMTI4OTk5LDEyOWUzLDEyOTAwMSwxMjkwMDIsMTI5MDAzLDExMDM1LDExMDM2XSwiZjQ1YyIsIk0wIDY0QzAgMjguNyAyOC43IDAgNjQgMEw0NDggMGMzNS4zIDAgNjQgMjguNyA2NCA2NGwwIDM4NGMwIDM1LjMtMjguNyA2NC02NCA2NEw2NCA1MTJjLTM1LjMgMC02NC0yOC43LTY0LTY0TDAgNjR6Il19LEN6ZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJjbG92ZXIiLGljb246WzUxMiw1MTIsW10sImUxMzkiLCJNMzEwLjQgMTZDMzQ2LjYgMTYgMzc2IDQ1LjQgMzc2IDgxLjdsMCA1LjJjMCAxMS4yLTIuNyAyMi4zLTcuOCAzMi4ybC0yLjMgNC4yLTIwLjEgMzMuNWMtMS4xIDEuOS0xLjIgMy40LTEuMSA0LjUgLjIgMS4zIC45IDIuNyAyLjEgMy45czIuNiAxLjkgMy45IDIuMWMxLjEgLjIgMi42IC4xIDQuNS0xLjFsMzMuNS0yMC4xIDQuMi0yLjNjMTAtNS4xIDIxLTcuOCAzMi4yLTcuOGw1LjIgMGMzNi4yIDAgNjUuNiAyOS40IDY1LjYgNjUuNyAwIDE3LjQtNi45IDM0LjEtMTkuMiA0Ni40bC0xLjMgMS4zYy0zLjcgMy43LTMuNyA5LjYgMCAxMy4zbDEuMyAxLjNjMTIuMyAxMi4zIDE5LjIgMjkgMTkuMiA0Ni40IDAgMzYuMi0yOS40IDY1LjYtNjUuNiA2NS42bC01LjIgMGMtMTIuOCAwLTI1LjUtMy41LTM2LjUtMTAuMWwtMzMuNS0yMC4xYy0xLjktMS4xLTMuNC0xLjItNC41LTEuMS0xLjMgLjItMi43IC45LTMuOSAyLjFzLTEuOSAyLjYtMi4xIDMuOWMtLjIgMS4xLS4xIDIuNiAxLjEgNC41bDIwLjEgMzMuNWM2LjYgMTEgMTAuMSAyMy42IDEwLjEgMzYuNWwwIDUuMmMwIDM2LjItMjkuNCA2NS42LTY1LjYgNjUuNi0xNy40IDAtMzQuMS02LjktNDYuNC0xOS4ybC0xLjMtMS4zYy0zLjctMy43LTkuNi0zLjctMTMuMyAwbC0xLjMgMS4zYy0xMi4zIDEyLjMtMjkgMTkuMi00Ni40IDE5LjItMzYuMiAwLTY1LjYtMjkuNC02NS43LTY1LjZsMC01LjJjMC0xMi44IDMuNS0yNS41IDEwLjEtMzYuNWwyMC4xLTMzLjVjMS4xLTEuOSAxLjItMy40IDEuMS00LjUtLjItMS4zLS45LTIuNy0yLjEtMy45cy0yLjYtMS45LTMuOS0yLjFjLS41LS4xLTEuMi0uMS0xLjkgMGwtMi41IDEtMzMuNSAyMC4xYy0xMSA2LjYtMjMuNiAxMC4xLTM2LjUgMTAuMWwtNS4yIDBDNDUuNCAzNzYgMTYgMzQ2LjYgMTYgMzEwLjQgMTYgMjkzIDIyLjkgMjc2LjMgMzUuMiAyNjRsMS4zLTEuMyAxLjItMS41YzIuMS0zLjEgMi4xLTcuMiAwLTEwLjNsLTEuMi0xLjUtMS4zLTEuM0MyMi45IDIzNS44IDE2IDIxOS4xIDE2IDIwMS43IDE2IDE2NS40IDQ1LjQgMTM2IDgxLjcgMTM2bDUuMiAwYzEyLjggMCAyNS41IDMuNSAzNi41IDEwLjFsMzMuNSAyMC4xIDIuNSAxYy43IC4xIDEuNCAuMSAxLjkgLjEgMS4zLS4yIDIuNy0uOSAzLjktMi4xczEuOS0yLjYgMi4xLTMuOWMuMS0uNSAuMS0xLjItLjEtMS45bC0xLTIuNS0yMC4xLTMzLjVjLTYuNi0xMS0xMC4xLTIzLjYtMTAuMS0zNi41bDAtNS4yYzAtMzYuMiAyOS40LTY1LjcgNjUuNy02NS43IDE3LjQgMCAzNC4xIDYuOSA0Ni40IDE5LjJsMS4zIDEuM2MzLjcgMy42IDkuNiAzLjcgMTMuMyAwbDEuMy0xLjMgNC44LTQuNEMyODAuNSAyMS4zIDI5NS4xIDE2IDMxMC40IDE2eiJdfSxfemU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToidGVldGgtb3BlbiIsaWNvbjpbNTEyLDUxMixbXSwiZjYyZiIsIk02NCAzMkMyOC43IDMyIDAgNjAuNyAwIDk2bDAgODBjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMzg0IDBjMzUuMyAwIDY0LTI4LjcgNjQtNjRsMC04MGMwLTM1LjMtMjguNy02NC02NC02NEw2NCAzMnptMCAyNzJjLTM1LjMgMC02NCAyOC43LTY0IDY0bDAgNDhjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMzg0IDBjMzUuMyAwIDY0LTI4LjcgNjQtNjRsMC00OGMwLTM1LjMtMjguNy02NC02NC02NEw2NCAzMDR6bTgwLTE2MGMwLTI2LjUgMjEuNS00OCA0OC00OHM0OCAyMS41IDQ4IDQ4bDAgMjRjMCAxMy4zLTEwLjcgMjQtMjQgMjRsLTQ4IDBjLTEzLjMgMC0yNC0xMC43LTI0LTI0bDAtMjR6bTEyOCAwYzAtMjYuNSAyMS41LTQ4IDQ4LTQ4czQ4IDIxLjUgNDggNDhsMCAyNGMwIDEzLjMtMTAuNyAyNC0yNCAyNGwtNDggMGMtMTMuMyAwLTI0LTEwLjctMjQtMjRsMC0yNHpNODAgMTEyYzE3LjcgMCAzMiAxNC4zIDMyIDMybDAgMjRjMCAxMy4zLTEwLjcgMjQtMjQgMjRsLTE2IDBjLTEzLjMgMC0yNC0xMC43LTI0LTI0bDAtMjRjMC0xNy43IDE0LjMtMzIgMzItMzJ6bTMyMCAzMmMwLTE3LjcgMTQuMy0zMiAzMi0zMnMzMiAxNC4zIDMyIDMybDAgMjRjMCAxMy4zLTEwLjcgMjQtMjQgMjRsLTE2IDBjLTEzLjMgMC0yNC0xMC43LTI0LTI0bDAtMjR6TTQ4IDM4NGwwLTE2YzAtOC44IDcuMi0xNiAxNi0xNmwzMiAwYzguOCAwIDE2IDcuMiAxNiAxNmwwIDE2YzAgMTcuNy0xNC4zIDMyLTMyIDMycy0zMi0xNC4zLTMyLTMyem0xNDQgNDhjLTI2LjUgMC00OC0yMS41LTQ4LTQ4bDAtMTZjMC04LjggNy4yLTE2IDE2LTE2bDY0IDBjOC44IDAgMTYgNy4yIDE2IDE2bDAgMTZjMCAyNi41LTIxLjUgNDgtNDggNDh6bTEyOCAwYy0yNi41IDAtNDgtMjEuNS00OC00OGwwLTE2YzAtOC44IDcuMi0xNiAxNi0xNmw2NCAwYzguOCAwIDE2IDcuMiAxNiAxNmwwIDE2YzAgMjYuNS0yMS41IDQ4LTQ4IDQ4em0xMTItMTZjLTE3LjcgMC0zMi0xNC4zLTMyLTMybDAtMTZjMC04LjggNy4yLTE2IDE2LTE2bDMyIDBjOC44IDAgMTYgNy4yIDE2IDE2bDAgMTZjMCAxNy43LTE0LjMgMzItMzIgMzJ6Il19LGltPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImJhcnMtc3RhZ2dlcmVkIixpY29uOls1MTIsNTEyLFsicmVvcmRlciIsInN0cmVhbSJdLCJmNTUwIiwiTTAgOTZDMCA3OC4zIDE0LjMgNjQgMzIgNjRsMzg0IDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJMMzIgMTI4QzE0LjMgMTI4IDAgMTEzLjcgMCA5NnpNNjQgMjU2YzAtMTcuNyAxNC4zLTMyIDMyLTMybDM4NCAwYzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMyTDk2IDI4OGMtMTcuNyAwLTMyLTE0LjMtMzItMzJ6TTQ0OCA0MTZjMCAxNy43LTE0LjMgMzItMzIgMzJMMzIgNDQ4Yy0xNy43IDAtMzItMTQuMy0zMi0zMnMxNC4zLTMyIDMyLTMybDM4NCAwYzE3LjcgMCAzMiAxNC4zIDMyIDMyeiJdfSxUemU9aW0sTHplPWltLCR6ZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJ3YXJlaG91c2UiLGljb246WzU3Niw1MTIsW10sImY0OTQiLCJNMCAxNDIuMUwwIDQ4MGMwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMybDAtMjQwYzAtMTcuNyAxNC4zLTMyIDMyLTMybDM4NCAwYzE3LjcgMCAzMiAxNC4zIDMyIDMybDAgMjQwYzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJsMC0zMzcuOWMwLTI3LjUtMTcuNi01Mi00My44LTYwLjdMMzAzLjIgNS4xYy05LjktMy4zLTIwLjUtMy4zLTMwLjQgMEw0My44IDgxLjRDMTcuNiA5MC4xIDAgMTE0LjYgMCAxNDIuMXpNNDY0IDI1NmwtMzUyIDAgMCA2NCAzNTIgMCAwLTY0ek0xMTIgNDE2bDM1MiAwIDAtNjQtMzUyIDAgMCA2NHptMzUyIDMybC0zNTIgMCAwIDY0IDM1MiAwIDAtNjR6Il19LEF6ZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJzd2F0Y2hib29rIixpY29uOls1MTIsNTEyLFtdLCJmNWMzIiwiTTAgNDhDMCAyMS41IDIxLjUgMCA0OCAwbDk2IDBjMjYuNSAwIDQ4IDIxLjUgNDggNDhsMCAzNjhjMCA1My00MyA5Ni05NiA5NlMwIDQ2OSAwIDQxNkwwIDQ4ek0yNDAgNDA5LjZsMC0yNzEuNSA0OC4xLTQ4LjFjMTguNy0xOC43IDQ5LjEtMTguNyA2Ny45IDBsNjcuOSA2Ny45YzE4LjcgMTguNyAxOC43IDQ5LjEgMCA2Ny45TDI0MCA0MDkuNnpNMjA1LjUgNTEybDE5Mi0xOTIgNjYuNiAwYzI2LjUgMCA0OCAyMS41IDQ4IDQ4bDAgOTZjMCAyNi41LTIxLjUgNDgtNDggNDhsLTI1OC41IDB6TTgwIDY0Yy04LjggMC0xNiA3LjItMTYgMTZsMCAzMmMwIDguOCA3LjIgMTYgMTYgMTZsMzIgMGM4LjggMCAxNi03LjIgMTYtMTZsMC0zMmMwLTguOC03LjItMTYtMTYtMTZMODAgNjR6TTY0IDIwOGwwIDMyYzAgOC44IDcuMiAxNiAxNiAxNmwzMiAwYzguOCAwIDE2LTcuMiAxNi0xNmwwLTMyYzAtOC44LTcuMi0xNi0xNi0xNmwtMzIgMGMtOC44IDAtMTYgNy4yLTE2IDE2ek05NiA0NDBhMjQgMjQgMCAxIDAgMC00OCAyNCAyNCAwIDEgMCAwIDQ4eiJdfSxEemU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiY2FtcGdyb3VuZCIsaWNvbjpbNTEyLDUxMixbOTk3OF0sImY2YmIiLCJNMzQ0LjggNTIuM2MxMS4yLTEzLjcgOS4yLTMzLjgtNC41LTQ1cy0zMy44LTkuMi00NSA0LjVsLTM5LjIgNDgtMzkuMi00OEMyMDUuNi0xLjkgMTg1LjQtNCAxNzEuNyA3LjJzLTE1LjcgMzEuNC00LjUgNDVsNDcuNCA1OC0yMDIgMjQ2LjlDNC41IDM2Ny4xIDAgMzc5LjYgMCAzOTIuNkwwIDQzMmMwIDI2LjUgMjEuNSA0OCA0OCA0OGw0MTYgMGMyNi41IDAgNDgtMjEuNSA0OC00OGwwLTM5LjRjMC0xMi45LTQuNS0yNS41LTEyLjctMzUuNWwtMjAyLTI0Ni45IDQ3LjQtNTh6TTI1NiAyODhsMTEyIDEyOC0yMjQgMCAxMTItMTI4eiJdfSxFemU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToicGVyc29uLXdhbGtpbmctYXJyb3ctcmlnaHQiLGljb246WzU3Niw1MTIsW10sImU1NTIiLCJNMTA0LjUgMjRhNTYgNTYgMCAxIDEgMTEyIDAgNTYgNTYgMCAxIDEgLTExMiAwem0tOCAxODEuM0w3My45IDIyNy45Yy02IDYtOS40IDE0LjEtOS40IDIyLjZsMCAzNy41YzAgMTcuNy0xNC4zIDMyLTMyIDMycy0zMi0xNC4zLTMyLTMybDAtMzcuNWMwLTI1LjUgMTAuMS00OS45IDI4LjEtNjcuOWwzNS4xLTM1LjFjMjIuOC0yMi44IDUzLjYtMzUuNiA4NS44LTM1LjYgMzYuOSAwIDcxLjggMTYuOCA5NC44IDQ1LjZMMjYyLjMgMTgwYzYuMSA3LjYgMTUuMyAxMiAyNSAxMmwzMy4yIDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJsLTMzLjIgMGMtMjkuMiAwLTU2LjctMTMuMy03NS0zNmwtMy44LTQuNyAwIDExNS4yIDM0LjUgMjkuNmMxNy43IDE1LjIgMjkuMyAzNi4yIDMyLjYgNTkuM2wxMi42IDg4LjFjMi41IDE3LjUtOS43IDMzLjctMjcuMiAzNi4ycy0zMy43LTkuNy0zNi4yLTI3LjJsLTEyLjYtODguMWMtMS4xLTcuNy01LTE0LjctMTAuOS0xOS44TDEzMCAzNDcuNWMtMjEuMy0xOC4yLTMzLjUtNDQuOS0zMy41LTcyLjlsMC02OS4zek05Ni42IDM3MWMyLjQgMi4zIDQuOCA0LjYgNy40IDYuOGw0NiAzOS40LTIuMiA3LjZjLTQuNSAxNS43LTEyLjkgMzAtMjQuNCA0MS41TDU1LjEgNTM0LjZjLTEyLjUgMTIuNS0zMi44IDEyLjUtNDUuMyAwcy0xMi41LTMyLjggMC00NS4zbDY4LjMtNjguM2MzLjgtMy44IDYuNi04LjYgOC4xLTEzLjhMOTYuNiAzNzF6TTUwNS41IDM0NWMtOS40IDkuNC0yNC42IDkuNC0zMy45IDBzLTkuNC0yNC42IDAtMzMuOWwzMS0zMS0xMDIuMSAwYy0xMy4zIDAtMjQtMTAuNy0yNC0yNHMxMC43LTI0IDI0LTI0bDEwMi4xIDAtMzEtMzFjLTkuNC05LjQtOS40LTI0LjYgMC0zMy45czI0LjYtOS40IDMzLjkgMGw3MiA3MmM5LjQgOS40IDkuNCAyNC42IDAgMzMuOWwtNzIgNzJ6Il19LFB6ZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJnbGFzc2VzIixpY29uOls1NzYsNTEyLFtdLCJmNTMwIiwiTTE0My4zIDk2Yy0xNCAwLTI2LjUgOS4yLTMwLjYgMjIuNkw3MC40IDI1NiAyMjQgMjU2YzE3LjcgMCAzMiAxNC4zIDMyIDMybDY0IDBjMC0xNy43IDE0LjMtMzIgMzItMzJsMTUzLjYgMC00Mi4zLTEzNy40QzQ1OS4yIDEwNS4yIDQ0Ni44IDk2IDQzMi43IDk2TDQwMCA5NmMtMTcuNyAwLTMyLTE0LjMtMzItMzJzMTQuMy0zMiAzMi0zMmwzMi43IDBjNDIuMSAwIDc5LjQgMjcuNSA5MS44IDY3LjhsNDUuNCAxNDcuNWM0LjEgMTMuMiA2LjEgMjYuOSA2LjEgNDAuN2wwIDk2YzAgNTMtNDMgOTYtOTYgOTZsLTY0IDBjLTUzIDAtOTYtNDMtOTYtOTZsMC0zMi02NCAwIDAgMzJjMCA1My00MyA5Ni05NiA5NmwtNjQgMGMtNTMgMC05Ni00My05Ni05NmwwLTk2YzAtMTMuOCAyLjEtMjcuNSA2LjEtNDAuN0w1MS41IDk5LjhDNjMuOSA1OS41IDEwMS4xIDMyIDE0My4zIDMyTDE3NiAzMmMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMmwtMzIuNyAwek02NCAzMjBsMCA2NGMwIDE3LjcgMTQuMyAzMiAzMiAzMmw2NCAwYzE3LjcgMCAzMi0xNC4zIDMyLTMybDAtNjQtMTI4IDB6bTQxNiA5NmMxNy43IDAgMzItMTQuMyAzMi0zMmwwLTY0LTEyOCAwIDAgNjRjMCAxNy43IDE0LjMgMzIgMzIgMzJsNjQgMHoiXX0sUEk9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiY2lyY2xlLXBhdXNlIixpY29uOls1MTIsNTEyLFs2MjA5MiwicGF1c2UtY2lyY2xlIl0sImYyOGIiLCJNMjU2IDUxMmEyNTYgMjU2IDAgMSAwIDAtNTEyIDI1NiAyNTYgMCAxIDAgMCA1MTJ6TTIyNCAxOTJsMCAxMjhjMCAxNy43LTE0LjMgMzItMzIgMzJzLTMyLTE0LjMtMzItMzJsMC0xMjhjMC0xNy43IDE0LjMtMzIgMzItMzJzMzIgMTQuMyAzMiAzMnptMTI4IDBsMCAxMjhjMCAxNy43LTE0LjMgMzItMzIgMzJzLTMyLTE0LjMtMzItMzJsMC0xMjhjMC0xNy43IDE0LjMtMzIgMzItMzJzMzIgMTQuMyAzMiAzMnoiXX0sSXplPVBJLE56ZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJtZW1vcnkiLGljb246WzUxMiw1MTIsW10sImY1MzgiLCJNNjQgNjRDMjguNyA2NCAwIDkyLjcgMCAxMjhsMCA3LjRDMCAxNDIuMiA0LjQgMTQ4IDEwLjEgMTUxLjcgMjMuMyAxNjAuMyAzMiAxNzUuMSAzMiAxOTJzLTguNyAzMS43LTIxLjkgNDAuM0M0LjQgMjM2IDAgMjQxLjggMCAyNDguNmwwIDU1LjQgNTEyIDAgMC01NS40YzAtNi44LTQuNC0xMi42LTEwLjEtMTYuMy0xMy4yLTguNi0yMS45LTIzLjQtMjEuOS00MC4zczguNy0zMS43IDIxLjktNDAuM2M1LjctMy43IDEwLjEtOS41IDEwLjEtMTYuM2wwLTcuNGMwLTM1LjMtMjguNy02NC02NC02NEw2NCA2NHpNNTEyIDQxNmwwLTY0LTUxMiAwIDAgNjRjMCAxNy43IDE0LjMgMzIgMzIgMzJsNjQgMCAwLTI0YzAtMTMuMyAxMC43LTI0IDI0LTI0czI0IDEwLjcgMjQgMjRsMCAyNCA4OCAwIDAtMjRjMC0xMy4zIDEwLjctMjQgMjQtMjRzMjQgMTAuNyAyNCAyNGwwIDI0IDg4IDAgMC0yNGMwLTEzLjMgMTAuNy0yNCAyNC0yNHMyNCAxMC43IDI0IDI0bDAgMjQgNjQgMGMxNy43IDAgMzItMTQuMyAzMi0zMnpNMTYwIDE2MGwwIDY0YzAgMTcuNy0xNC4zIDMyLTMyIDMycy0zMi0xNC4zLTMyLTMybDAtNjRjMC0xNy43IDE0LjMtMzIgMzItMzJzMzIgMTQuMyAzMiAzMnptMTI4IDBsMCA2NGMwIDE3LjctMTQuMyAzMi0zMiAzMnMtMzItMTQuMy0zMi0zMmwwLTY0YzAtMTcuNyAxNC4zLTMyIDMyLTMyczMyIDE0LjMgMzIgMzJ6bTEyOCAwbDAgNjRjMCAxNy43LTE0LjMgMzItMzIgMzJzLTMyLTE0LjMtMzItMzJsMC02NGMwLTE3LjcgMTQuMy0zMiAzMi0zMnMzMiAxNC4zIDMyIDMyeiJdfSxGemU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZ2lmdCIsaWNvbjpbNTEyLDUxMixbMTI3ODczXSwiZjA2YiIsIk0zMjEuNSA2OC44QzMyOS4xIDU1LjkgMzQyLjkgNDggMzU3LjggNDhsMi4yIDBjMjIuMSAwIDQwIDE3LjkgNDAgNDBzLTE3LjkgNDAtNDAgNDBsLTczLjMgMCAzNC44LTU5LjJ6bS0xMzEgMGwzNC44IDU5LjItNzMuMyAwYy0yMi4xIDAtNDAtMTcuOS00MC00MHMxNy45LTQwIDQwLTQwbDIuMiAwYzE0LjkgMCAyOC44IDcuOSAzNi4zIDIwLjh6bTg5LjYtMjQuM2wtMjQuMSA0MS0yNC4xLTQxQzIxNS43IDE2LjkgMTg2LjEgMCAxNTQuMiAwTDE1MiAwYy00OC42IDAtODggMzkuNC04OCA4OCAwIDE0LjQgMy41IDI4IDkuNiA0MEwzMiAxMjhjLTE3LjcgMC0zMiAxNC4zLTMyIDMybDAgMzJjMCAxNy43IDE0LjMgMzIgMzIgMzJsNDQ4IDBjMTcuNyAwIDMyLTE0LjMgMzItMzJsMC0zMmMwLTE3LjctMTQuMy0zMi0zMi0zMmwtNDEuNiAwYzYuMS0xMiA5LjYtMjUuNiA5LjYtNDAgMC00OC42LTM5LjQtODgtODgtODhsLTIuMiAwYy0zMS45IDAtNjEuNSAxNi45LTc3LjcgNDQuNHpNNDgwIDI3MmwtMjAwIDAgMCAyMDggMTM2IDBjMzUuMyAwIDY0LTI4LjcgNjQtNjRsMC0xNDR6bS0yNDggMGwtMjAwIDAgMCAxNDRjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMTM2IDAgMC0yMDh6Il19LE96ZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJtb25leS1iaWxsLXdoZWF0IixpY29uOls1MTIsNTEyLFtdLCJlNTJhIiwiTTE3Ni0xNmM0NC4yIDAgODAgMzUuOCA4MCA4MCAwIDguOC03LjIgMTYtMTYgMTYtNDQuMiAwLTgwLTM1LjgtODAtODAgMC04LjggNy4yLTE2IDE2LTE2ek01NiAwbDQ4IDBjMTMuMyAwIDI0IDEwLjcgMjQgMjRzLTEwLjcgMjQtMjQgMjRMNTYgNDhDNDIuNyA0OCAzMiAzNy4zIDMyIDI0UzQyLjcgMCA1NiAwek0yNCA3MmwxMTIgMGMxMy4zIDAgMjQgMTAuNyAyNCAyNHMtMTAuNyAyNC0yNCAyNEwyNCAxMjBDMTAuNyAxMjAgMCAxMDkuMyAwIDk2UzEwLjcgNzIgMjQgNzJ6bTggOTZjMC0xMy4zIDEwLjctMjQgMjQtMjRsNDggMGMxMy4zIDAgMjQgMTAuNyAyNCAyNHMtMTAuNyAyNC0yNCAyNGwtNDggMGMtMTMuMyAwLTI0LTEwLjctMjQtMjR6TTI3MiAwYzAtOC44IDcuMi0xNiAxNi0xNiA0NC4yIDAgODAgMzUuOCA4MCA4MCAwIDguOC03LjIgMTYtMTYgMTYtNDQuMiAwLTgwLTM1LjgtODAtODB6TTQwMC0xNmM0NC4yIDAgODAgMzUuOCA4MCA4MCAwIDguOC03LjIgMTYtMTYgMTYtNDQuMiAwLTgwLTM1LjgtODAtODAgMC04LjggNy4yLTE2IDE2LTE2em04MCAxNDRjMCA0NC4yLTM1LjggODAtODAgODAtOC44IDAtMTYtNy4yLTE2LTE2IDAtNDQuMiAzNS44LTgwIDgwLTgwIDguOCAwIDE2IDcuMiAxNiAxNnpNMzUyIDExMmM4LjggMCAxNiA3LjIgMTYgMTYgMCA0NC4yLTM1LjggODAtODAgODAtOC44IDAtMTYtNy4yLTE2LTE2IDAtNDQuMiAzNS44LTgwIDgwLTgwem0tOTYgMTZjMCA0NC4yLTM1LjggODAtODAgODAtOC44IDAtMTYtNy4yLTE2LTE2IDAtNDQuMiAzNS44LTgwIDgwLTgwIDguOCAwIDE2IDcuMiAxNiAxNnpNMCAzMDRjMC0yNi41IDIxLjUtNDggNDgtNDhsNDE2IDBjMjYuNSAwIDQ4IDIxLjUgNDggNDhsMCAxNjBjMCAyNi41LTIxLjUgNDgtNDggNDhMNDggNTEyYy0yNi41IDAtNDgtMjEuNS00OC00OEwwIDMwNHpNNDggNDE2bDAgNDggNDggMGMwLTI2LjUtMjEuNS00OC00OC00OHpNOTYgMzA0bC00OCAwIDAgNDhjMjYuNSAwIDQ4LTIxLjUgNDgtNDh6TTQ2NCA0MTZjLTI2LjUgMC00OCAyMS41LTQ4IDQ4bDQ4IDAgMC00OHpNNDE2IDMwNGMwIDI2LjUgMjEuNSA0OCA0OCA0OGwwLTQ4LTQ4IDB6bS05NiA4MGE2NCA2NCAwIDEgMCAtMTI4IDAgNjQgNjQgMCAxIDAgMTI4IDB6Il19LFJ6ZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJkdW5nZW9uIixpY29uOls1MTIsNTEyLFtdLCJmNmQ5IiwiTTM0Ny41IDE0NC44YzYuNSA1LjQgMTIuNSAxMS4zIDE4IDE3LjcgOC43IDEwLjIgMjMuNyAxNCAzNS4xIDYuOWw1NC4xLTMzLjhjMTEuMi03IDE0LjctMjEuNyA2LjktMzIuMi0xNS4zLTIwLjUtMzMuNS0zOC42LTU0LjEtNTMuOC0xMC40LTcuNi0yNC43LTQuMy0zMS44IDYuNGwtMzUuMSA1Mi42Yy03LjggMTEuNi0zLjggMjcuMyA3IDM2LjJ6TTMyNy44IDQxLjFjOC42LTEyLjkgMi45LTMwLjUtMTIuMi0zNC4xLTE5LjEtNC42LTM5LjEtNy01OS42LTdzLTQwLjQgMi40LTU5LjYgN2MtMTUuMSAzLjYtMjAuOCAyMS4yLTEyLjIgMzQuMWw0MCA2MGM1LjIgNy44IDE0LjUgMTEuNyAyMy45IDExLjIgNS4yLS4zIDEwLjYtLjMgMTUuOCAwIDkuNCAuNSAxOC43LTMuNCAyMy45LTExLjJsNDAtNjB6TTUwLjUgMTAzLjNjLTcuOSAxMC41LTQuMyAyNS4zIDYuOSAzMi4ybDU0LjEgMzMuOGMxMS40IDcuMSAyNi4zIDMuMyAzNS4xLTYuOSA1LjUtNi40IDExLjUtMTIuMyAxOC0xNy43IDEwLjgtOC45IDE0LjgtMjQuNiA3LTM2LjJMMTM2LjQgNTUuOWMtNy4xLTEwLjctMjEuNS0xNC0zMS44LTYuNC0yMC42IDE1LjEtMzguOCAzMy4zLTU0LjEgNTMuOHptNjIgMTQxLjFjLjgtOS45LTMuMy0xOS45LTExLjgtMjUuMUw0MSAxODJjLTEyLjktOC0yOS45LTIuMy0zMy42IDEyLjUtNC45IDE5LjctNy41IDQwLjMtNy41IDYxLjZsMCAyNGMwIDEzLjMgMTAuNyAyNCAyNCAyNGw2NCAwYzEzLjMgMCAyNC0xMC43IDI0LTI0bDAtMjRjMC0zLjkgLjItNy44IC41LTExLjZ6bTI4Ny4xIDBjLjMgMy44IC41IDcuNyAuNSAxMS42bDAgMjRjMCAxMy4zIDEwLjcgMjQgMjQgMjRsNjQgMGMxMy4zIDAgMjQtMTAuNyAyNC0yNGwwLTI0YzAtMjEuMi0yLjYtNDEuOC03LjUtNjEuNi0zLjYtMTQuNy0yMC43LTIwLjUtMzMuNi0xMi41bC01OS43IDM3LjNjLTguNCA1LjMtMTIuNiAxNS4yLTExLjggMjUuMXpNODggMzUybC02NCAwYy0xMy4zIDAtMjQgMTAuNy0yNCAyNEwwIDQ4OGMwIDEzLjMgMTAuNyAyNCAyNCAyNGw2NCAwYzEzLjMgMCAyNC0xMC43IDI0LTI0bDAtMTEyYzAtMTMuMy0xMC43LTI0LTI0LTI0em00MDAgMGwtNjQgMGMtMTMuMyAwLTI0IDEwLjctMjQgMjRsMCAxMTJjMCAxMy4zIDEwLjcgMjQgMjQgMjRsNjQgMGMxMy4zIDAgMjQtMTAuNyAyNC0yNGwwLTExMmMwLTEzLjMtMTAuNy0yNC0yNC0yNHpNMjgwIDE4NGMwLTEzLjMtMTAuNy0yNC0yNC0yNHMtMjQgMTAuNy0yNCAyNGwwIDMwNGMwIDEzLjMgMTAuNyAyNCAyNCAyNHMyNC0xMC43IDI0LTI0bDAtMzA0em0tODAgMzJjMC0xMy4zLTEwLjctMjQtMjQtMjRzLTI0IDEwLjctMjQgMjRsMCAyNzJjMCAxMy4zIDEwLjcgMjQgMjQgMjRzMjQtMTAuNyAyNC0yNGwwLTI3MnptMTYwIDBjMC0xMy4zLTEwLjctMjQtMjQtMjRzLTI0IDEwLjctMjQgMjRsMCAyNzJjMCAxMy4zIDEwLjcgMjQgMjQgMjRzMjQtMTAuNyAyNC0yNGwwLTI3MnoiXX0sSUk9e3ByZWZpeDoiZmFzIixpY29uTmFtZToic3VpdGNhc2UtbWVkaWNhbCIsaWNvbjpbNTEyLDUxMixbIm1lZGtpdCJdLCJmMGZhIiwiTTE5MiA1NmwwIDQwIDEyOCAwIDAtNDBjMC00LjQtMy42LTgtOC04TDIwMCA0OGMtNC40IDAtOCAzLjYtOCA4em0tNDggOGwwLThjMC0zMC45IDI1LjEtNTYgNTYtNTZMMzEyIDBjMzAuOSAwIDU2IDI1LjEgNTYgNTZsMCA0MjQtMjI0IDAgMC00MTZ6TTk2IDE3NmwwIDMwNC0zMiAwYy0zNS4zIDAtNjQtMjguNy02NC02NEwwIDE2MGMwLTM1LjMgMjguNy02NCA2NC02NGwzMiAwIDAgODB6TTQxNiA0ODBsMC0zODQgMzIgMGMzNS4zIDAgNjQgMjguNyA2NCA2NGwwIDI1NmMwIDM1LjMtMjguNyA2NC02NCA2NGwtMzIgMHpNMjQ0IDIwOGMtOC44IDAtMTYgNy4yLTE2IDE2bDAgMzYtMzYgMGMtOC44IDAtMTYgNy4yLTE2IDE2bDAgMjRjMCA4LjggNy4yIDE2IDE2IDE2bDM2IDAgMCAzNmMwIDguOCA3LjIgMTYgMTYgMTZsMjQgMGM4LjggMCAxNi03LjIgMTYtMTZsMC0zNiAzNiAwYzguOCAwIDE2LTcuMiAxNi0xNmwwLTI0YzAtOC44LTcuMi0xNi0xNi0xNmwtMzYgMCAwLTM2YzAtOC44LTcuMi0xNi0xNi0xNmwtMjQgMHoiXX0sQnplPUlJLEh6ZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJwZXJzb24tY2FuZSIsaWNvbjpbNDQ4LDUxMixbXSwiZTUzYyIsIk0yMzItMzJhNTYgNTYgMCAxIDEgMCAxMTIgNTYgNTYgMCAxIDEgMC0xMTJ6TTE0NCAyMzYuN0w5Ny43IDI5OS4xYy0xMC41IDE0LjItMzAuNiAxNy4yLTQ0LjggNi42cy0xNy4yLTMwLjYtNi42LTQ0LjhsNzAuNS05NUMxNDIgMTMyIDE4MS43IDExMiAyMjQgMTEyczgyIDIwIDEwNy4yIDUzLjlsNzAuNSA5NWMxMC41IDE0LjIgNy42IDM0LjItNi42IDQ0LjhzLTM0LjIgNy42LTQ0LjgtNi42TDMwNCAyMzYuNyAzMDQgNTEyYzAgMTcuNy0xNC4zIDMyLTMyIDMycy0zMi0xNC4zLTMyLTMybDAtMTYwYzAtOC44LTcuMi0xNi0xNi0xNnMtMTYgNy4yLTE2IDE2bDAgMTYwYzAgMTcuNy0xNC4zIDMyLTMyIDMycy0zMi0xNC4zLTMyLTMybDAtMjc1LjN6TTM5MiAzODRjLTQuNCAwLTggMy42LTggOCAwIDEzLjMtMTAuNyAyNC0yNCAyNHMtMjQtMTAuNy0yNC0yNGMwLTMwLjkgMjUuMS01NiA1Ni01NnM1NiAyNS4xIDU2IDU2bDAgMTI4YzAgMTMuMy0xMC43IDI0LTI0IDI0cy0yNC0xMC43LTI0LTI0bDAtMTI4YzAtNC40LTMuNi04LTgtOHoiXX0sRjU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZ2F1Z2UiLGljb246WzUxMiw1MTIsWyJkYXNoYm9hcmQiLCJnYXVnZS1tZWQiLCJ0YWNob21ldGVyLWFsdC1hdmVyYWdlIl0sImY2MjQiLCJNMCAyNTZhMjU2IDI1NiAwIDEgMSA1MTIgMCAyNTYgMjU2IDAgMSAxIC01MTIgMHptMzIwIDk2YzAtMjYuOS0xNi41LTQ5LjktNDAtNTkuM0wyODAgMTIwYzAtMTMuMy0xMC43LTI0LTI0LTI0cy0yNCAxMC43LTI0IDI0bDAgMTcyLjdjLTIzLjUgOS41LTQwIDMyLjUtNDAgNTkuMyAwIDM1LjMgMjguNyA2NCA2NCA2NHM2NC0yOC43IDY0LTY0ek0xNDQgMTc2YTMyIDMyIDAgMSAwIDAtNjQgMzIgMzIgMCAxIDAgMCA2NHptLTE2IDgwYTMyIDMyIDAgMSAwIC02NCAwIDMyIDMyIDAgMSAwIDY0IDB6bTI4OCAzMmEzMiAzMiAwIDEgMCAwLTY0IDMyIDMyIDAgMSAwIDAgNjR6TTQwMCAxNDRhMzIgMzIgMCAxIDAgLTY0IDAgMzIgMzIgMCAxIDAgNjQgMHoiXX0scXplPUY1LFZ6ZT1GNSxqemU9RjUsVXplPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImVudmVsb3BlLW9wZW4tdGV4dCIsaWNvbjpbNTc2LDUxMixbXSwiZjY1OCIsIk0yODggMzMuOUw5Ni40IDE3NS44IDI1NC41IDI5M2M1LjMgMy45IDExLjIgNi45IDE3LjUgOC43TDI3MiA0NjRjMCA1LjUgLjUgMTAuOCAxLjMgMTZMOTYgNDgwYy0zNS4zIDAtNjQtMjguNy02NC02NGwwLTIzOS45YzAtMjAuMyA5LjYtMzkuNCAyNS45LTUxLjRMMjU0LjUtMjFjOS43LTcuMiAyMS40LTExIDMzLjUtMTFzMjMuOCAzLjkgMzMuNSAxMUw1MTguMSAxMjQuN2M3LjIgNS4zIDEzLjEgMTIgMTcuNCAxOS42LTIuNS0uMi01LS4zLTcuNS0uM0w0MzYuNiAxNDQgMjg4IDMzLjl6TTMyMCAyNDBjMC0yNi41IDIxLjUtNDggNDgtNDhsMTYwIDBjMjYuNSAwIDQ4IDIxLjUgNDggNDhsMCAyMjRjMCAyNi41LTIxLjUgNDgtNDggNDhsLTE2MCAwYy0yNi41IDAtNDgtMjEuNS00OC00OGwwLTIyNHptODAgMTZjLTEzLjMgMC0yNCAxMC43LTI0IDI0czEwLjcgMjQgMjQgMjRsOTYgMGMxMy4zIDAgMjQtMTAuNyAyNC0yNHMtMTAuNy0yNC0yNC0yNGwtOTYgMHptMCA5NmMtMTMuMyAwLTI0IDEwLjctMjQgMjRzMTAuNyAyNCAyNCAyNGw1NiAwYzEzLjMgMCAyNC0xMC43IDI0LTI0cy0xMC43LTI0LTI0LTI0bC01NiAweiJdfSxXemU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToidG9vbGJveCIsaWNvbjpbNTEyLDUxMixbMTI5NTIwXSwiZjU1MiIsIk0xNzYgNTZsMCA0MCAxNjAgMCAwLTQwYzAtNC40LTMuNi04LTgtOEwxODQgNDhjLTQuNCAwLTggMy42LTggOHpNMTI4IDk2bDAtNDBjMC0zMC45IDI1LjEtNTYgNTYtNTZMMzI4IDBjMzAuOSAwIDU2IDI1LjEgNTYgNTZsMCA0MCAyOC4xIDBjMTIuNyAwIDI0LjkgNS4xIDMzLjkgMTQuMWw1MS45IDUxLjljOSA5IDE0LjEgMjEuMiAxNC4xIDMzLjlsMCA3Ni4xLTEzNiAwIDAtMTZjMC0xMy4zLTEwLjctMjQtMjQtMjRzLTI0IDEwLjctMjQgMjRsMCAxNi0xNDQgMCAwLTE2YzAtMTMuMy0xMC43LTI0LTI0LTI0cy0yNCAxMC43LTI0IDI0bDAgMTYtMTM2IDAgMC03Ni4xYzAtMTIuNyA1LjEtMjQuOSAxNC4xLTMzLjlsNTEuOS01MS45YzktOSAyMS4yLTE0LjEgMzMuOS0xNC4xTDEyOCA5NnpNMCA0MTZsMC05NiAxMzYgMCAwIDE2YzAgMTMuMyAxMC43IDI0IDI0IDI0czI0LTEwLjcgMjQtMjRsMC0xNiAxNDQgMCAwIDE2YzAgMTMuMyAxMC43IDI0IDI0IDI0czI0LTEwLjcgMjQtMjRsMC0xNiAxMzYgMCAwIDk2YzAgMzUuMy0yOC43IDY0LTY0IDY0TDY0IDQ4MGMtMzUuMyAwLTY0LTI4LjctNjQtNjR6Il19LEd6ZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJwb3dlci1vZmYiLGljb246WzUxMiw1MTIsWzkyMTFdLCJmMDExIiwiTTI4OCAwYzAtMTcuNy0xNC4zLTMyLTMyLTMyUzIyNC0xNy43IDIyNCAwbDAgMjU2YzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJMMjg4IDB6TTE0Ni4zIDk4LjRjMTQuNS0xMC4xIDE4LTMwLjEgNy45LTQ0LjZzLTMwLjEtMTgtNDQuNi03LjlDNDMuNCA5Mi4xIDAgMTY5IDAgMjU2IDAgMzk3LjQgMTE0LjYgNTEyIDI1NiA1MTJTNTEyIDM5Ny40IDUxMiAyNTZjMC04Ny00My40LTE2My45LTEwOS43LTIxMC4xLTE0LjUtMTAuMS0zNC40LTYuNi00NC42IDcuOXMtNi42IDM0LjQgNy45IDQ0LjZjNDkuOCAzNC44IDgyLjMgOTIuNCA4Mi4zIDE1Ny42IDAgMTA2LTg2IDE5Mi0xOTIgMTkyUzY0IDM2MiA2NCAyNTZjMC02NS4yIDMyLjUtMTIyLjkgODIuMy0xNTcuNnoiXX0scm09e3ByZWZpeDoiZmFzIixpY29uTmFtZToic2lnbmFsIixpY29uOls1MTIsNTEyLFsxMjgyNDYsInNpZ25hbC01Iiwic2lnbmFsLXBlcmZlY3QiXSwiZjAxMiIsIk00ODggNTZjMC0xMy4zLTEwLjctMjQtMjQtMjRzLTI0IDEwLjctMjQgMjRsMCA0MDBjMCAxMy4zIDEwLjcgMjQgMjQgMjRzMjQtMTAuNyAyNC0yNGwwLTQwMHpNMzYwIDEyOGMtMTMuMyAwLTI0IDEwLjctMjQgMjRsMCAzMDRjMCAxMy4zIDEwLjcgMjQgMjQgMjRzMjQtMTAuNyAyNC0yNGwwLTMwNGMwLTEzLjMtMTAuNy0yNC0yNC0yNHpNMjgwIDI0OGMwLTEzLjMtMTAuNy0yNC0yNC0yNHMtMjQgMTAuNy0yNCAyNGwwIDIwOGMwIDEzLjMgMTAuNyAyNCAyNCAyNHMyNC0xMC43IDI0LTI0bDAtMjA4ek0xNTIgMzIwYy0xMy4zIDAtMjQgMTAuNy0yNCAyNGwwIDExMmMwIDEzLjMgMTAuNyAyNCAyNCAyNHMyNC0xMC43IDI0LTI0bDAtMTEyYzAtMTMuMy0xMC43LTI0LTI0LTI0ek00OCAzODRjLTEzLjMgMC0yNCAxMC43LTI0IDI0bDAgNDhjMCAxMy4zIDEwLjcgMjQgMjQgMjRzMjQtMTAuNyAyNC0yNGwwLTQ4YzAtMTMuMy0xMC43LTI0LTI0LTI0eiJdfSxZemU9cm0sWnplPXJtLFh6ZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJhcnJvd3Mtc3BpbiIsaWNvbjpbNTEyLDUxMixbXSwiZTRiYiIsIk00ODEuNyAyNDAuMWMtMTcuNi0xLjItMzIuOSAxMi0zNC4yIDI5LjctMy4zIDQ3LTIzLjYgODkuNC01NC44IDEyMUwzNjEgMzU5Yy02LjktNi45LTE3LjItOC45LTI2LjItNS4yUzMyMCAzNjYuMyAzMjAgMzc2bDAgMTEyYzAgMTMuMyAxMC43IDI0IDI0IDI0bDExMiAwYzkuNyAwIDE4LjUtNS44IDIyLjItMTQuOHMxLjctMTkuMy01LjItMjYuMmwtMzUtMzVjNDEuNy00Mi4yIDY4LjktOTguOCA3My40LTE2MS44IDEuMi0xNy42LTEyLTMyLjktMjkuNy0zNC4yek0zOSA0MUw3NCA3NmMtNDEuNyA0Mi4yLTY4LjkgOTguOC03My40IDE2MS44LTEuMiAxNy42IDEyIDMyLjkgMjkuNyAzNC4yczMyLjktMTIgMzQuMi0yOS43YzMuMy00NyAyMy42LTg5LjQgNTQuOC0xMjFMMTUxIDE1M2M2LjkgNi45IDE3LjIgOC45IDI2LjIgNS4yUzE5MiAxNDUuNyAxOTIgMTM2bDAtMTEyYzAtMTMuMy0xMC43LTI0LTI0LTI0TDU2IDBDNDYuMyAwIDM3LjUgNS44IDMzLjggMTQuOFMzMi4yIDM0LjEgMzkgNDF6bTIwMS0xMC43Yy0xLjIgMTcuNiAxMiAzMi45IDI5LjcgMzQuMiA0NyAzLjMgODkuNCAyMy42IDEyMSA1NC44TDM1OSAxNTFjLTYuOSA2LjktOC45IDE3LjItNS4yIDI2LjJTMzY2LjMgMTkyIDM3NiAxOTJsMTEyIDBjMTMuMyAwIDI0LTEwLjcgMjQtMjRsMC0xMTJjMC05LjctNS44LTE4LjUtMTQuOC0yMi4yUzQ3Ny45IDMyLjIgNDcxIDM5TDQzNiA3NGMtNDIuMi00MS43LTk4LjgtNjguOS0xNjEuOC03My40LTE3LjYtMS4yLTMyLjkgMTItMzQuMiAyOS43ek00MSA0NzNsMzUtMzVjNDIuMiA0MS43IDk4LjggNjguOSAxNjEuOCA3My40IDE3LjYgMS4yIDMyLjktMTIgMzQuMi0yOS43cy0xMi0zMi45LTI5LjctMzQuMmMtNDctMy4zLTg5LjQtMjMuNi0xMjEtNTQuOEwxNTMgMzYxYzYuOS02LjkgOC45LTE3LjIgNS4yLTI2LjJTMTQ1LjcgMzIwIDEzNiAzMjBMMjQgMzIwYy0xMy4zIDAtMjQgMTAuNy0yNCAyNEwwIDQ1NmMwIDkuNyA1LjggMTguNSAxNC44IDIyLjJTMzQuMSA0NzkuOCA0MSA0NzN6Il19LEt6ZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJqb2ludCIsaWNvbjpbNTc2LDUxMixbXSwiZjU5NSIsIk0zNjAgMGMxMy4zIDAgMjQgMTAuNyAyNCAyNGwwIDE5YzAgNDAuMyAxNiA3OSA0NC41IDEwNy41bDIxIDIxQzQ2OSAxOTEgNDgwIDIxNy40IDQ4MCAyNDVsMCAxOWMwIDEzLjMtMTAuNyAyNC0yNCAyNHMtMjQtMTAuNy0yNC0yNGwwLTE5YzAtMTQuOS01LjktMjkuMS0xNi40LTM5LjZsLTIxLTIxQzM1Ny4xIDE0Ni45IDMzNiA5NiAzMzYgNDNsMC0xOWMwLTEzLjMgMTAuNy0yNCAyNC0yNHpNNTUyIDI4OGMtMTMuMyAwLTI0LTEwLjctMjQtMjRsMC0xOWMwLTQwLjMtMTYtNzktNDQuNS0xMDcuNWwtMjEtMjFDNDQzIDk3IDQzMiA3MC42IDQzMiA0M2wwLTE5YzAtMTMuMyAxMC43LTI0IDI0LTI0czI0IDEwLjcgMjQgMjRsMCAxOWMwIDE0LjkgNS45IDI5LjEgMTYuNCAzOS42bDIxIDIxQzU1NC45IDE0MS4xIDU3NiAxOTIgNTc2IDI0NWwwIDE5YzAgMTMuMy0xMC43IDI0LTI0IDI0ek0yOTIuNyAzMjBjNS42IDAgMTAuNyAyLjkgMTMuNiA3LjZMMzk0LjYgNDcxYzEuMyAyLjEgMCA0LjktMi40IDUuMi0xNi4xIDIuNS0zMi40IDMuNy00OC43IDMuN2wtMzguMSAwYy01LjYgMC0xMC43LTIuOS0xMy42LTcuNmwtNzktMTI4LjRjLTYtOS44IDAtMjIuNiAxMS41LTIzLjMgNi43LS40IDEzLjQtLjYgMjAuMi0uNmw0OC4zIDB6TTQ1OS4zIDQ2NS45Yy02LjQgMS0xMi43LTEuOS0xNi4xLTcuNEwzNzQuMSAzNDYuMWMtNi43LTEwLjkgMS41LTI0LjcgMTQuMi0yMi45IDEuMyAuMiAyLjYgLjQgMy44IC42bDEzNi40IDIxYzI3LjMgNC4yIDQ3LjQgMjcuNyA0Ny40IDU1LjNzLTIwLjEgNTEuMS00Ny40IDU1LjNsLTY5LjIgMTAuNnpNMTM4LjcgMzM2YzYuNy0xLjUgMTMuNiAxLjQgMTcuMiA3LjJsNjguOSAxMTJjNi42IDEwLjctMS4yIDI0LjQtMTMuOCAyMy4xLTEzLTEuNC0yNS45LTMuNS0zOC42LTYuNUwzMS4yIDQzOS4yQzEyLjkgNDM1IDAgNDE4LjcgMCA0MDBzMTIuOS0zNSAzMS4yLTM5LjJMMTM4LjcgMzM2eiJdfSxRemU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiYnJhaWxsZSIsaWNvbjpbMzg0LDUxMixbXSwiZjJhMSIsIk04MCAxNDRhODAgODAgMCAxIDAgMC0xNjAgODAgODAgMCAxIDAgMCAxNjB6bTAgMTkyYTgwIDgwIDAgMSAwIDAtMTYwIDgwIDgwIDAgMSAwIDAgMTYwem0wIDEzNmMtMTMuMyAwLTI0LTEwLjctMjQtMjRzMTAuNy0yNCAyNC0yNCAyNCAxMC43IDI0IDI0LTEwLjcgMjQtMjQgMjR6bTAgNTZjNDQuMiAwIDgwLTM1LjggODAtODBzLTM1LjgtODAtODAtODAtODAgMzUuOC04MCA4MCAzNS44IDgwIDgwIDgwem0yNDgtODBjMCAxMy4zLTEwLjcgMjQtMjQgMjRzLTI0LTEwLjctMjQtMjQgMTAuNy0yNCAyNC0yNCAyNCAxMC43IDI0IDI0em01NiAwYzAtNDQuMi0zNS44LTgwLTgwLTgwcy04MCAzNS44LTgwIDgwIDM1LjggODAgODAgODAgODAtMzUuOCA4MC04MHpNMzA0IDIzMmEyNCAyNCAwIDEgMSAwIDQ4IDI0IDI0IDAgMSAxIDAtNDh6bTAgMTA0YTgwIDgwIDAgMSAwIDAtMTYwIDgwIDgwIDAgMSAwIDAgMTYwem0wLTE5MmE4MCA4MCAwIDEgMCAwLTE2MCA4MCA4MCAwIDEgMCAwIDE2MHoiXX0sTkk9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiYmFza2V0LXNob3BwaW5nIixpY29uOls1NzYsNTEyLFsic2hvcHBpbmctYmFza2V0Il0sImYyOTEiLCJNMjg4IDBjNi42IDAgMTIuOSAyLjcgMTcuNCA3LjVsMTQ0IDE1MiAuNSAuNSA3OC4xIDBjMTcuNyAwIDMyIDE0LjMgMzIgMzIgMCAxNC41LTkuNiAyNi43LTIyLjggMzAuN0w0OTEuMSA0MjkuOWMtNi41IDI5LjMtMzIuNSA1MC4xLTYyLjUgNTAuMWwtMjgxLjMgMGMtMzAgMC01Ni0yMC44LTYyLjUtNTAuMWwtNDYtMjA3LjJjLTEzLjItMy45LTIyLjgtMTYuMi0yMi44LTMwLjcgMC0xNy43IDE0LjMtMzIgMzItMzJsNzguMSAwIC41LS41IDE0NC0xNTJDMjc1LjEgMi43IDI4MS40IDAgMjg4IDB6bTAgNTguOUwxOTIuMiAxNjAgMzgzLjggMTYwIDI4OCA1OC45ek0yMDggMjY0YzAtMTMuMy0xMC43LTI0LTI0LTI0cy0yNCAxMC43LTI0IDI0bDAgMTEyYzAgMTMuMyAxMC43IDI0IDI0IDI0czI0LTEwLjcgMjQtMjRsMC0xMTJ6bTgwLTI0Yy0xMy4zIDAtMjQgMTAuNy0yNCAyNGwwIDExMmMwIDEzLjMgMTAuNyAyNCAyNCAyNHMyNC0xMC43IDI0LTI0bDAtMTEyYzAtMTMuMy0xMC43LTI0LTI0LTI0em0xMjggMjRjMC0xMy4zLTEwLjctMjQtMjQtMjRzLTI0IDEwLjctMjQgMjRsMCAxMTJjMCAxMy4zIDEwLjcgMjQgMjQgMjRzMjQtMTAuNyAyNC0yNGwwLTExMnoiXX0sSnplPU5JLGVrZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJicmlkZ2UiLGljb246WzUxMiw1MTIsW10sImU0YzgiLCJNMzIgMzJDMTQuMyAzMiAwIDQ2LjMgMCA2NFMxNC4zIDk2IDMyIDk2bDggMCAwIDY0LTQwIDAgMCAxMTJjMzcuNiA5LjQgNjQgNDMuMiA2NCA4MmwwIDk0YzAgMTcuNyAxNC4zIDMyIDMyIDMybDMyIDBjMTcuNyAwIDMyLTE0LjMgMzItMzJsMC02NGMwLTUzIDQzLTk2IDk2LTk2czk2IDQzIDk2IDk2bDAgNjRjMCAxNy43IDE0LjMgMzIgMzIgMzJsMzIgMGMxNy43IDAgMzItMTQuMyAzMi0zMmwwLTk0YzAtMzguOCAyNi40LTcyLjYgNjQtODJsMC0xMTItNDAgMCAwLTY0IDggMGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMkwzMiAzMnpNNDI0IDk2bDAgNjQtODAgMCAwLTY0IDgwIDB6TTI5NiA5NmwwIDY0LTgwIDAgMC02NCA4MCAwek04OCA5Nmw4MCAwIDAgNjQtODAgMCAwLTY0eiJdfSx0a2U9e3ByZWZpeDoiZmFzIixpY29uTmFtZToicGxhbmUtYXJyaXZhbCIsaWNvbjpbNTc2LDUxMixbMTI4NzQ4XSwiZjVhZiIsIk0zODYuNiAxOTMuMUwyNjUuOSAzLjdjLTQuOC03LjYtMTIuNi0xMi44LTIxLjQtMTQuM2wtNDMuMS03LjZjLTEwLjgtMS45LTIwLjIgNy4zLTE4LjYgMTguMWwyNCAxNjEuNi0xMDUtMTguNS0zMy44LTYxLjhDNjQuNSA3NC43IDU4LjIgNzAuMiA1MS4xIDY5TDM0IDY2Yy05LjgtMS43LTE4LjggNS45LTE4LjggMTUuOGwuNiAxMDYuM2MuMiAzMC45IDIyLjQgNTcuMyA1Mi45IDYyLjdsMTMuNSAyLjQgMCAwIDQxNy42IDczLjZjMzAuNSA1LjQgNTkuNS0xNSA2NC45LTQ1LjRzLTE1LTU5LjUtNDUuNC02NC45TDM4Ni42IDE5My4xek0yMjQgMzg0YTMyIDMyIDAgMSAwIDAtNjQgMzIgMzIgMCAxIDAgMCA2NHptMTMxLjItMTUuM2EzMiAzMiAwIDEgMCAtNjQgMCAzMiAzMiAwIDEgMCA2NCAwek0zMiA0NDhjLTE3LjcgMC0zMiAxNC4zLTMyIDMyczE0LjMgMzIgMzIgMzJsNTEyIDBjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJMMzIgNDQ4eiJdfSxha2U9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiY2FzaC1yZWdpc3RlciIsaWNvbjpbNTEyLDUxMixbXSwiZjc4OCIsIk05NiAwQzYwLjcgMCAzMiAyOC43IDMyIDY0czI4LjcgNjQgNjQgNjRsNDggMCAwIDMyLTU3IDBjLTMxLjYgMC01OC41IDIzLjEtNjMuMyA1NC40TDEuMSAzNjQuMUMuNCAzNjguOCAwIDM3My42IDAgMzc4LjRMMCA0NDhjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMzg0IDBjMzUuMyAwIDY0LTI4LjcgNjQtNjRsMC02OS42YzAtNC44LS40LTkuNi0xLjEtMTQuNEw0ODguMiAyMTQuNEM0ODMuNSAxODMuMSA0NTYuNiAxNjAgNDI1IDE2MGwtMjE3IDAgMC0zMiA0OCAwYzM1LjMgMCA2NC0yOC43IDY0LTY0UzI5MS4zIDAgMjU2IDBMOTYgMHptMCA0OGwxNjAgMGM4LjggMCAxNiA3LjIgMTYgMTZzLTcuMiAxNi0xNiAxNkw5NiA4MGMtOC44IDAtMTYtNy4yLTE2LTE2czcuMi0xNiAxNi0xNnpNNjQgNDI0YzAtMTMuMyAxMC43LTI0IDI0LTI0bDMzNiAwYzEzLjMgMCAyNCAxMC43IDI0IDI0cy0xMC43IDI0LTI0IDI0TDg4IDQ0OGMtMTMuMyAwLTI0LTEwLjctMjQtMjR6bTQ4LTE2MGEyNCAyNCAwIDEgMSAwLTQ4IDI0IDI0IDAgMSAxIDAgNDh6bTEyMC0yNGEyNCAyNCAwIDEgMSAtNDggMCAyNCAyNCAwIDEgMSA0OCAwek0xNjAgMzQ0YTI0IDI0IDAgMSAxIDAtNDggMjQgMjQgMCAxIDEgMCA0OHpNMzI4IDI0MGEyNCAyNCAwIDEgMSAtNDggMCAyNCAyNCAwIDEgMSA0OCAwek0yNTYgMzQ0YTI0IDI0IDAgMSAxIDAtNDggMjQgMjQgMCAxIDEgMCA0OHpNNDI0IDI0MGEyNCAyNCAwIDEgMSAtNDggMCAyNCAyNCAwIDEgMSA0OCAwek0zNTIgMzQ0YTI0IDI0IDAgMSAxIDAtNDggMjQgMjQgMCAxIDEgMCA0OHoiXX0saWtlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InJpbmciLGljb246WzUxMiw1MTIsW10sImY3MGIiLCJNNjQgMjA4YzAgNy44IDQuNCAxOC43IDE3LjEgMzAuMyA0NS40LTI0LjIgMTA3LjctMzguMyAxNzQuOS0zOC4zczEyOS41IDE0LjEgMTc0LjkgMzguM2MxMi44LTExLjYgMTcuMS0yMi41IDE3LjEtMzAuMyAwLTEyLjMtMTAuOC0zMi00Ny45LTUwLjYtMzUuMi0xNy42LTg2LjEtMjkuNC0xNDQuMS0yOS40cy0xMDguOSAxMS44LTE0NC4xIDI5LjRDNzQuOCAxNzYgNjQgMTk1LjcgNjQgMjA4em0xOTIgNDBjLTQ3IDAtODkuMyA3LjYtMTIyLjkgMTkuNyAzMy4yIDEyLjQgNzUuNyAyMC4zIDEyMi45IDIwLjNzODkuNy03LjggMTIyLjktMjAuM0MzNDUuMyAyNTUuNiAzMDMgMjQ4IDI1NiAyNDh6TTAgMjA4QzAgMTU4LjQgMzkuNCAxMjIuMiA4My4zIDEwMC4yIDEyOS4xIDc3LjMgMTkwLjMgNjQgMjU2IDY0czEyNi45IDEzLjMgMTcyLjcgMzYuMmM0My45IDIyIDgzLjMgNTguMiA4My4zIDEwNy44bDAgOTZjMCA0OS42LTM5LjQgODUuOC04My4zIDEwNy44LTQ1LjkgMjIuOS0xMDcgMzYuMi0xNzIuNyAzNi4yUzEyOS4xIDQzNC43IDgzLjMgNDExLjhDMzkuNCAzODkuOCAwIDM1My42IDAgMzA0bDAtOTZ6Il19LHJrZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJhcXVhcml1cyIsaWNvbjpbNTc2LDUxMixbXSwiZTg0NSIsIk00MDEuNyAyOTEuNGM5LTQuNSAxOS42LTQuNSAyOC42IDBsMTI4IDY0YzE1LjggNy45IDIyLjIgMjcuMSAxNC4zIDQyLjlzLTI3LjEgMjIuMi00Mi45IDE0LjNMNDE2IDM1NS44IDMwMi4zIDQxMi42Yy05IDQuNS0xOS42IDQuNS0yOC42IDBMMTYwIDM1NS44IDQ2LjMgNDEyLjZjLTE1LjggNy45LTM1IDEuNS00Mi45LTE0LjNzLTEuNS0zNSAxNC4zLTQyLjlsMTI4LTY0YzktNC41IDE5LjYtNC41IDI4LjYgMEwyODggMzQ4LjIgNDAxLjcgMjkxLjR6bTMuNC0xOTMuNWM4LjItMyAxNy4zLTIuNSAyNS4yIDEuNWwxMjggNjRjMTUuOCA3LjkgMjIuMiAyNy4xIDE0LjMgNDIuOXMtMjcuMSAyMi4yLTQyLjkgMTQuM0w0MTYgMTYzLjggMzAyLjMgMjIwLjZjLTkgNC41LTE5LjYgNC41LTI4LjYgMEwxNjAgMTYzLjggNDYuMyAyMjAuNmMtMTUuOCA3LjktMzUgMS41LTQyLjktMTQuM3MtMS41LTM1IDE0LjMtNDIuOWwxMjgtNjQgMy40LTEuNWM4LjItMyAxNy4zLTIuNSAyNS4yIDEuNWwxMTMuNyA1Ni44IDExMy43LTU2LjggMy40LTEuNXoiXX0sRkk9e3ByZWZpeDoiZmFzIixpY29uTmFtZToic2hhcmUtbm9kZXMiLGljb246WzUxMiw1MTIsWyJzaGFyZS1hbHQiXSwiZjFlMCIsIk0zODQgMTkyYzUzIDAgOTYtNDMgOTYtOTZzLTQzLTk2LTk2LTk2LTk2IDQzLTk2IDk2YzAgNS40IC41IDEwLjggMS4zIDE2TDE1OS42IDE4NC4xYy0xNi45LTE1LTM5LjItMjQuMS02My42LTI0LjEtNTMgMC05NiA0My05NiA5NnM0MyA5NiA5NiA5NmMyNC40IDAgNDYuNi05LjEgNjMuNi0yNC4xTDI4OS4zIDQwMGMtLjkgNS4yLTEuMyAxMC41LTEuMyAxNiAwIDUzIDQzIDk2IDk2IDk2czk2LTQzIDk2LTk2LTQzLTk2LTk2LTk2Yy0yNC40IDAtNDYuNiA5LjEtNjMuNiAyNC4xTDE5MC43IDI3MmMuOS01LjIgMS4zLTEwLjUgMS4zLTE2cy0uNS0xMC44LTEuMy0xNmwxMjkuNy03Mi4xYzE2LjkgMTUgMzkuMiAyNC4xIDYzLjYgMjQuMXoiXX0sc2tlPUZJLG5rZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJwZXJzb24tY2lyY2xlLWV4Y2xhbWF0aW9uIixpY29uOls2NDAsNTEyLFtdLCJlNTNmIiwiTTI4MCAyNGE1NiA1NiAwIDEgMCAtMTEyIDAgNTYgNTYgMCAxIDAgMTEyIDB6bTI0IDIxMi43TDM0MSAyODYuNmMxMi44LTE3LjUgMjguNS0zMi43IDQ2LjMtNDVsLTU2LjItNzUuN0MzMDYgMTMyIDI2Ni4zIDExMiAyMjQgMTEycy04MiAyMC0xMDcuMiA1My45bC03MC41IDk1Yy0xMC41IDE0LjItNy42IDM0LjIgNi42IDQ0LjhzMzQuMiA3LjYgNDQuOC02LjZMMTQ0IDIzNi43IDE0NCA1MTJjMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMmwwLTE2MGMwLTguOCA3LjItMTYgMTYtMTZzMTYgNy4yIDE2IDE2bDAgMTYwYzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJsMC0yNzUuM3pNNDk2IDU0NGExNDQgMTQ0IDAgMSAwIDAtMjg4IDE0NCAxNDQgMCAxIDAgMCAyODh6bTAtMTAwYTIwIDIwIDAgMSAxIDAgNDAgMjAgMjAgMCAxIDEgMC00MHptMC0xNDBjOC44IDAgMTYgNy4yIDE2IDE2bDAgODBjMCA4LjgtNy4yIDE2LTE2IDE2cy0xNi03LjItMTYtMTZsMC04MGMwLTguOCA3LjItMTYgMTYtMTZ6Il19LG9rZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJiaW5vY3VsYXJzIixpY29uOls1MTIsNTEyLFtdLCJmMWU1IiwiTTEyOCAzMmwzMiAwYzE3LjcgMCAzMiAxNC4zIDMyIDMybDAgMzItOTYgMCAwLTMyYzAtMTcuNyAxNC4zLTMyIDMyLTMyem02NCA5NmwwIDMyMGMwIDE3LjctMTQuMyAzMi0zMiAzMkwzMiA0ODBjLTE3LjcgMC0zMi0xNC4zLTMyLTMybDAtNTkuMWMwLTM0LjYgOS40LTY4LjYgMjcuMi05OC4zIDEzLjctMjIuOCAyMi41LTQ4LjIgMjUuOC03NC42TDYwLjUgMTU2YzItMTYgMTUuNi0yOCAzMS44LTI4bDk5LjggMHptMjI3LjggMGMxNi4xIDAgMjkuOCAxMiAzMS44IDI4TDQ1OSAyMTZjMy4zIDI2LjQgMTIuMSA1MS44IDI1LjggNzQuNiAxNy44IDI5LjcgMjcuMiA2My43IDI3LjIgOTguM2wwIDU5LjFjMCAxNy43LTE0LjMgMzItMzIgMzJsLTEyOCAwYy0xNy43IDAtMzItMTQuMy0zMi0zMmwwLTMyMCA5OS44IDB6TTMyMCA2NGMwLTE3LjcgMTQuMy0zMiAzMi0zMmwzMiAwYzE3LjcgMCAzMiAxNC4zIDMyIDMybDAgMzItOTYgMCAwLTMyem0tMzIgNjRsMCAxNjAtNjQgMCAwLTE2MCA2NCAweiJdfSxsa2U9e3ByZWZpeDoiZmFzIixpY29uTmFtZToia2lwLXNpZ24iLGljb246WzM4NCw1MTIsW10sImUxYzQiLCJNMzQwLjggODguM2MxMy40LTExLjUgMTUtMzEuNyAzLjUtNDUuMXMtMzEuNy0xNS00NS4xLTMuNUwxMjggMTg2LjQgMTI4IDY0YzAtMTcuNy0xNC4zLTMyLTMyLTMyUzY0IDQ2LjMgNjQgNjRsMCAxNjgtMzIgMGMtMTMuMyAwLTI0IDEwLjctMjQgMjRzMTAuNyAyNCAyNCAyNGwzMiAwIDAgMTY4YzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJsMC0xMjIuNCAxNzEuMiAxNDYuN2MxMy40IDExLjUgMzMuNiA5LjkgNDUuMS0zLjVzOS45LTMzLjYtMy41LTQ1LjFMMTczLjIgMjgwIDM1MiAyODBjMTMuMyAwIDI0LTEwLjcgMjQtMjRzLTEwLjctMjQtMjQtMjRMMTczLjIgMjMyIDM0MC44IDg4LjN6Il19LE9JPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImhhcmQtZHJpdmUiLGljb246WzQ0OCw1MTIsWzEyODQzNiwiaGRkIl0sImYwYTAiLCJNNjQgMzJDMjguNyAzMiAwIDYwLjcgMCA5NkwwIDI2MC4xQzE4LjEgMjQ3LjQgNDAuMiAyNDAgNjQgMjQwbDMyMCAwYzIzLjggMCA0NS45IDcuNCA2NCAyMC4xTDQ0OCA5NmMwLTM1LjMtMjguNy02NC02NC02NEw2NCAzMnpNNDQ4IDM1MmMwLTM1LjMtMjguNy02NC02NC02NEw2NCAyODhjLTM1LjMgMC02NCAyOC43LTY0IDY0bDAgNjRjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMzIwIDBjMzUuMyAwIDY0LTI4LjcgNjQtNjRsMC02NHpNMjI0IDM4NGEzMiAzMiAwIDEgMSA2NCAwIDMyIDMyIDAgMSAxIC02NCAwem0xMjgtMzJhMzIgMzIgMCAxIDEgMCA2NCAzMiAzMiAwIDEgMSAwLTY0eiJdfSxja2U9T0ksZGtlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InJhbmtpbmctc3RhciIsaWNvbjpbNTc2LDUxMixbXSwiZTU2MSIsIk0zMjEuOCA1NC4xTDI5OC4yIDYuM2MtMy45LTguMy0xNi4xLTguNi0yMC40IDBsLTIzLjYgNDcuOC01Mi4zIDcuNWMtOS4zIDEuNC0xMy4zIDEyLjktNi40IDE5LjhsMzggMzctOSA1Mi4xYy0xLjQgOS4zIDguMiAxNi41IDE2LjggMTIuMmw0Ni45LTI0LjggNDYuNiAyNC40YzguNiA0LjMgMTguMy0yLjkgMTYuOC0xMi4ybC05LTUyLjEgMzgtMzYuNmM2LjgtNi44IDIuOS0xOC4zLTYuNC0xOS44bC01Mi4zLTcuNXpNMjU2IDI1NmMtMjYuNSAwLTQ4IDIxLjUtNDggNDhsMCAxNjBjMCAyNi41IDIxLjUgNDggNDggNDhsNjQgMGMyNi41IDAgNDgtMjEuNSA0OC00OGwwLTE2MGMwLTI2LjUtMjEuNS00OC00OC00OGwtNjQgMHpNNDggMzIwYy0yNi41IDAtNDggMjEuNS00OCA0OGwwIDk2YzAgMjYuNSAyMS41IDQ4IDQ4IDQ4bDY0IDBjMjYuNSAwIDQ4LTIxLjUgNDgtNDhsMC05NmMwLTI2LjUtMjEuNS00OC00OC00OGwtNjQgMHpNNDE2IDQzMmwwIDMyYzAgMjYuNSAyMS41IDQ4IDQ4IDQ4bDY0IDBjMjYuNSAwIDQ4LTIxLjUgNDgtNDhsMC0zMmMwLTI2LjUtMjEuNS00OC00OC00OGwtNjQgMGMtMjYuNSAwLTQ4IDIxLjUtNDggNDh6Il19LGhrZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJ1c2VyLXRpZSIsaWNvbjpbNDQ4LDUxMixbXSwiZjUwOCIsIk0yMjQgMjQ4YTEyMCAxMjAgMCAxIDEgMC0yNDAgMTIwIDEyMCAwIDEgMSAwIDI0MHptLTMwLjUgNTZsNjEgMGM5LjcgMCAxNy41IDcuOCAxNy41IDE3LjUgMCA0LjItMS41IDguMi00LjIgMTEuNGwtMjcuNCAzMiAzMSAxMTUuMSAuNiAwIDM0LjYtMTM4LjVjMi4yLTguNyAxMS4xLTE0IDE5LjUtMTAuOCA2MS45IDIzLjYgMTA1LjkgODMuNiAxMDUuOSAxNTMuOCAwIDE1LjEtMTIuMyAyNy40LTI3LjQgMjcuNEw0My40IDUxMmMtMTUuMSAwLTI3LjQtMTIuMy0yNy40LTI3LjQgMC03MC4yIDQ0LTEzMC4yIDEwNS45LTE1My44IDguNC0zLjIgMTcuMyAyLjEgMTkuNSAxMC44bDM0LjYgMTM4LjUgLjYgMCAzMS0xMTUuMS0yNy40LTMyYy0yLjctMy4yLTQuMi03LjItNC4yLTExLjQgMC05LjcgNy44LTE3LjUgMTcuNS0xNy41eiJdfSxSST17cHJlZml4OiJmYXMiLGljb25OYW1lOiJlbGxpcHNpcyIsaWNvbjpbNDQ4LDUxMixbImVsbGlwc2lzLWgiXSwiZjE0MSIsIk0wIDI1NmE1NiA1NiAwIDEgMSAxMTIgMCA1NiA1NiAwIDEgMSAtMTEyIDB6bTE2OCAwYTU2IDU2IDAgMSAxIDExMiAwIDU2IDU2IDAgMSAxIC0xMTIgMHptMjI0LTU2YTU2IDU2IDAgMSAxIDAgMTEyIDU2IDU2IDAgMSAxIDAtMTEyeiJdfSxwa2U9UkksdWtlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InN0b3JlLXNsYXNoIixpY29uOls1NzYsNTEyLFtdLCJlMDcxIiwiTTQxLTI0LjljLTkuNC05LjQtMjQuNi05LjQtMzMuOSAwUy0yLjMtLjMgNyA5LjFsNTI4IDUyOGM5LjQgOS40IDI0LjYgOS40IDMzLjkgMHM5LjQtMjQuNiAwLTMzLjlsLTU4LjYtNTguNmMxLjEtNCAxLjYtOC4yIDEuNi0xMi41bDAtMTUxLjJjLTEyLjUgNC42LTI2LjEgNy4yLTQwLjUgNy4yLTguMSAwLTE1LjktLjgtMjMuNS0yLjRsMCA2Ni40LTMwLjIgMC0xMzcuNS0xMzcuNWMyLjktMy42IDUuNS03LjQgNy42LTExLjUgMTEuNiAyMiAzNC43IDM3IDYxLjMgMzcgMjYuOCAwIDQ5LjgtMTUuMSA2MS40LTM3LjEgMTEuNCAyMi4xIDM0LjUgMzcuMSA2MC44IDM3LjEgNDUuNiAwIDc4LjQtNDMuNyA2NS42LTg3LjVMNTEzLjggNzIuM0M1MDYuOCA0OC40IDQ4NC45IDMyIDQ2MCAzMkwxMTYgMzJjLTUuNSAwLTEwLjggLjgtMTUuOSAyLjNMNDEtMjQuOXpNMTUxLjUgMjIxLjNMNDguNyAxMTguNiAzOC45IDE1Mi41Yy0xMi44IDQzLjcgMjAgODcuNSA2NS42IDg3LjUgMTguMSAwIDM0LjctNy4xIDQ3LTE4Ljd6TTQxMC4yIDQ4MGwtMTI4LTEyOC0xNTQuMiAwIDAtNjYuNGMtNy42IDEuNi0xNS41IDIuNC0yMy41IDIuNC0xNC40IDAtMjgtMi42LTQwLjUtNy4yTDY0IDQzMmMwIDI2LjUgMjEuNSA0OCA0OCA0OGwyOTguMiAweiJdfSxCST17cHJlZml4OiJmYXMiLGljb25OYW1lOiJwZXJjZW50IixpY29uOls0NDgsNTEyLFs2MjEwMSw2Mjc4NSwicGVyY2VudGFnZSJdLCIyNSIsIk0xOTIgMTI4YTk2IDk2IDAgMSAwIC0xOTIgMCA5NiA5NiAwIDEgMCAxOTIgMHpNNDQ4IDM4NGE5NiA5NiAwIDEgMCAtMTkyIDAgOTYgOTYgMCAxIDAgMTkyIDB6TTQzOC42IDg2LjZjMTIuNS0xMi41IDEyLjUtMzIuOCAwLTQ1LjNzLTMyLjgtMTIuNS00NS4zIDBsLTM4NCAzODRjLTEyLjUgMTIuNS0xMi41IDMyLjggMCA0NS4zczMyLjggMTIuNSA0NS4zIDBsMzg0LTM4NHoiXX0sZmtlPUJJLEhJPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImZpbGUtemlwcGVyIixpY29uOlszODQsNTEyLFsiZmlsZS1hcmNoaXZlIl0sImYxYzYiLCJNMCA2NEMwIDI4LjcgMjguNyAwIDY0IDBMMjEzLjUgMGMxNyAwIDMzLjMgNi43IDQ1LjMgMTguN0wzNjUuMyAxMjUuM2MxMiAxMiAxOC43IDI4LjMgMTguNyA0NS4zTDM4NCA0NDhjMCAzNS4zLTI4LjcgNjQtNjQgNjRMNjQgNTEyYy0zNS4zIDAtNjQtMjguNy02NC02NEwwIDY0em0yMDgtNS41bDAgOTMuNWMwIDEzLjMgMTAuNyAyNCAyNCAyNEwzMjUuNSAxNzYgMjA4IDU4LjV6TTY0IDcyYzAgMTMuMyAxMC43IDI0IDI0IDI0bDQ4IDBjMTMuMyAwIDI0LTEwLjcgMjQtMjRzLTEwLjctMjQtMjQtMjRMODggNDhDNzQuNyA0OCA2NCA1OC43IDY0IDcyem0wIDk2YzAgMTMuMyAxMC43IDI0IDI0IDI0bDQ4IDBjMTMuMyAwIDI0LTEwLjcgMjQtMjRzLTEwLjctMjQtMjQtMjRsLTQ4IDBjLTEzLjMgMC0yNCAxMC43LTI0IDI0em02NCA3MmwtMzIgMGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJsMCA0OGMwIDI2LjUgMjEuNSA0OCA0OCA0OHM0OC0yMS41IDQ4LTQ4bDAtNDhjMC0xNy43LTE0LjMtMzItMzItMzJ6bS0xNiA2NGExNiAxNiAwIDEgMSAwIDMyIDE2IDE2IDAgMSAxIDAtMzJ6Il19LG1rZT1ISSxna2U9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZGlzcGxheSIsaWNvbjpbNTEyLDUxMixbXSwiZTE2MyIsIk00NDggOTZsMCAyNTYtMzg0IDAgMC0yNTYgMzg0IDB6TTY0IDMyQzI4LjcgMzIgMCA2MC43IDAgOTZMMCAzNTJjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMTQ0IDAtMTYgNDgtNzIgMGMtMTMuMyAwLTI0IDEwLjctMjQgMjRzMTAuNyAyNCAyNCAyNGwyNzIgMGMxMy4zIDAgMjQtMTAuNyAyNC0yNHMtMTAuNy0yNC0yNC0yNGwtNzIgMC0xNi00OCAxNDQgMGMzNS4zIDAgNjQtMjguNyA2NC02NGwwLTI1NmMwLTM1LjMtMjguNy02NC02NC02NEw2NCAzMnoiXX0scUk9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiaWNvbnMiLGljb246WzUxMiw1MTIsWyJoZWFydC1tdXNpYy1jYW1lcmEtYm9sdCJdLCJmODZkIiwiTTE3NC45IDI3MmMxMC43IDAgMjAuNyA1LjMgMjYuNiAxNC4ybDExLjggMTcuOCAyNi43IDBjMjYuNSAwIDQ4IDIxLjUgNDggNDhsMCAxMTJjMCAyNi41LTIxLjUgNDgtNDggNDhMNDggNTEyYy0yNi41IDAtNDgtMjEuNS00OC00OEwwIDM1MmMwLTI2LjUgMjEuNS00OCA0OC00OGwyNi43IDAgMTEuOC0xNy44YzUuOS04LjkgMTUuOS0xNC4yIDI2LjYtMTQuMmw2MS43IDB6bTI3OC42LTEyYzUuNi00LjkgMTMuOS01LjMgMTkuOS0uOXM4LjMgMTIuNCA1LjMgMTkuM0w0NDAuMyAzNjggNDk2IDM2OGM2LjcgMCAxMi42IDQuMSAxNSAxMC40cy42IDEzLjMtNC40IDE3LjdsLTEyOCAxMTJjLTUuNiA0LjktMTMuOSA1LjMtMTkuOSAuOXMtOC4zLTEyLjQtNS4zLTE5LjNsMzguNS04OS43LTU1LjggMGMtNi43IDAtMTIuNi00LjEtMTUtMTAuNHMtLjYtMTMuMyA0LjQtMTcuN2wxMjgtMTEyek0xNDQgMzYwYTQ4IDQ4IDAgMSAwIDAgOTYgNDggNDggMCAxIDAgMC05NnpNNDgzLjggLjRjNi41LTEuMSAxMy4xIC40IDE4LjUgNC40IDYuMSA0LjUgOS43IDExLjcgOS43IDE5LjJsMCAxNTItLjMgNC45Yy0zLjMgMjQuMi0zMC41IDQzLjEtNjMuNyA0My4xLTM1LjMgMC02NC0yMS41LTY0LTQ4czI4LjctNDggNjQtNDhjNS41IDAgMTAuOSAuNiAxNiAxLjZsMC00OS4zLTExMiAzMy42IDAgMTEwLjItLjMgNC45Yy0zLjMgMjQuMi0zMC41IDQzLjEtNjMuNyA0My4xLTM1LjMgMC02NC0yMS41LTY0LTQ4czI4LjctNDggNjQtNDhjNS41IDAgMTAuOSAuNiAxNiAxLjZMMzA0IDcyYzAtMTAuNiA3LTIwIDE3LjEtMjNsMTYwLTQ4IDIuNy0uNnpNMTg4LjkgMEMyMjYgMCAyNTYgMzAgMjU2IDY3LjFsMCA2LjFjMCA1Ni4xLTc1LjIgMTEyLjEtMTEwLjMgMTM1LjMtMTAuOCA3LjEtMjQuNiA3LjEtMzUuNCAwLTM1LjEtMjMuMS0xMTAuMy03OS4yLTExMC4zLTEzNS4zbDAtNi4xQzAgMzAgMzAgMCA2Ny4xIDAgODguMiAwIDEwOCA5LjkgMTIwLjcgMjYuOGw3LjMgOS44IDcuMy05LjhDMTQ4IDkuOSAxNjcuOCAwIDE4OC45IDB6Il19LGJrZT1xSSx2a2U9e3ByZWZpeDoiZmFzIixpY29uTmFtZToicnVsZXItdmVydGljYWwiLGljb246WzI1Niw1MTIsW10sImY1NDgiLCJNMCAxNkMwLTEwLjUgMjEuNS0zMiA0OC0zMmwxNjAgMGMyNi41IDAgNDggMjEuNSA0OCA0OGwwIDI0LTEwNCAwYy0xMy4zIDAtMjQgMTAuNy0yNCAyNHMxMC43IDI0IDI0IDI0bDEwNCAwIDAgNDgtNzIgMGMtMTMuMyAwLTI0IDEwLjctMjQgMjRzMTAuNyAyNCAyNCAyNGw3MiAwIDAgNDgtMTA0IDBjLTEzLjMgMC0yNCAxMC43LTI0IDI0czEwLjcgMjQgMjQgMjRsMTA0IDAgMCA0OC03MiAwYy0xMy4zIDAtMjQgMTAuNy0yNCAyNHMxMC43IDI0IDI0IDI0bDcyIDAgMCA0OC0xMDQgMGMtMTMuMyAwLTI0IDEwLjctMjQgMjRzMTAuNyAyNCAyNCAyNGwxMDQgMCAwIDI0YzAgMjYuNS0yMS41IDQ4LTQ4IDQ4TDQ4IDU0NGMtMjYuNSAwLTQ4LTIxLjUtNDgtNDhMMCAxNnoiXX0sVkk9e3ByZWZpeDoiZmFzIixpY29uTmFtZToibWFwLWxvY2F0aW9uLWRvdCIsaWNvbjpbNjQwLDUxMixbIm1hcC1tYXJrZWQtYWx0Il0sImY1YTAiLCJNNTc2IDQ4YzAtMTEuMS01LjctMjEuNC0xNS4yLTI3LjJzLTIxLjItNi40LTMxLjEtMS40TDQxMy41IDc3LjUgMjM0LjEgMTcuNmMtOC4xLTIuNy0xNi44LTIuMS0yNC40IDEuN2wtMTI4IDY0QzcwLjggODguOCA2NCA5OS45IDY0IDExMmwwIDM1MmMwIDExLjEgNS43IDIxLjQgMTUuMiAyNy4yczIxLjIgNi40IDMxLjEgMS40bDExNi4xLTU4LjEgMTczLjMgNTcuOGMtNC4zLTYuNC04LjUtMTMuMS0xMi42LTE5LjktMTEtMTguMy0yMS45LTM5LjMtMzAtNjEuOGwtMTAxLjItMzMuNyAwLTI4NC41IDEyOCA0Mi43IDAgOTkuM2MzMS0zNS44IDc3LTU4LjQgMTI4LTU4LjQgMjIuNiAwIDQ0LjIgNC40IDY0IDEyLjVMNTc2IDQ4ek01MTIgMjI0Yy02Ni4zIDAtMTIwIDUyLjgtMTIwIDExNy45IDAgNjguOSA2NC4xIDE1MC40IDk4LjYgMTg5LjMgMTEuNiAxMyAzMS4zIDEzIDQyLjkgMCAzNC41LTM4LjkgOTguNi0xMjAuNCA5OC42LTE4OS4zIDAtNjUuMS01My43LTExNy45LTEyMC0xMTcuOXpNNDcyIDM0NGE0MCA0MCAwIDEgMSA4MCAwIDQwIDQwIDAgMSAxIC04MCAweiJdfSx5a2U9Vkksakk9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiaGVhcnQtY3JhY2siLGljb246WzUxMiw1MTIsWzEyODE0OCwiaGVhcnQtYnJva2VuIl0sImY3YTkiLCJNMTMzLjEgMzJjMTcuMyAwIDM0LjIgMy40IDQ5LjkgOS43bDU0LjggODUuMi03NS40IDc1LjRjLTEuNSAxLjUtMi40IDMuNi0yLjMgNS44czEgNC4yIDIuNiA1LjdsMTEyIDEwNGMyLjkgMi43IDcuNCAyLjkgMTAuNSAuM3MzLjgtNyAxLjctMTAuNGwtNjAuNC05OC4xIDkwLjctNzUuNmMyLjYtMi4xIDMuNS01LjcgMi40LTguOEwyOTYuNCA2MC42QzMxOS42IDQyLjMgMzQ4LjYgMzIgMzc4LjkgMzIgNDUyLjQgMzIgNTEyIDkxLjYgNTEyIDE2NS4xbDAgMi42YzAgMTEyLjItMTM5LjkgMjQyLjUtMjEyLjkgMjk4LjItMTIuNCA5LjQtMjcuNiAxNC4xLTQzLjEgMTQuMXMtMzAuOC00LjYtNDMuMS0xNC4xQzEzOS45IDQxMC4yIDAgMjc5LjkgMCAxNjcuN2wwLTIuNkMwIDkxLjYgNTkuNiAzMiAxMzMuMSAzMnoiXX0seGtlPWpJLHdrZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJjb3ciLGljb246WzY0MCw1MTIsWzEyODAwNF0sImY2YzgiLCJNOTYgMjI0bDAgMTkyYzAgMTcuNyAxNC4zIDMyIDMyIDMybDMyIDBjMTcuNyAwIDMyLTE0LjMgMzItMzJsMC04OC4yYzkuOSA2LjYgMjAuNiAxMiAzMiAxNi4xbDAgMjQuMmMwIDguOCA3LjIgMTYgMTYgMTZzMTYtNy4yIDE2LTE2bDAtMTYuOWM1LjMgLjYgMTAuNiAuOSAxNiAuOXMxMC43LS4zIDE2LS45bDAgMTYuOWMwIDguOCA3LjIgMTYgMTYgMTZzMTYtNy4yIDE2LTE2bDAtMjQuMmMxMS40LTQgMjIuMS05LjQgMzItMTYuMWwwIDg4LjJjMCAxNy43IDE0LjMgMzIgMzIgMzJsMzIgMGMxNy43IDAgMzItMTQuMyAzMi0zMmwwLTE2MCAzMiAzMiAwIDQ5LjVjMCA5LjUgMi44IDE4LjcgOC4xIDI2LjZMNTMwIDQyN2M4LjggMTMuMSAyMy41IDIxIDM5LjMgMjEgMjIuNSAwIDQxLjktMTUuOSA0Ni4zLTM4bDIwLjMtMTAxLjZjMi42LTEzLS4zLTI2LjUtOC0zNy4zbC0zLjktNS41IDAtODEuNmMwLTEzLjMtMTAuNy0yNC0yNC0yNHMtMjQgMTAuNy0yNCAyNGwwIDE0LjQtNTIuOS03NC4xQzQ5NiA4Ni41IDQ1Mi40IDY0IDQwNS45IDY0TDE0NCA2NEM3Ny43IDY0IDI0IDExNy43IDI0IDE4NGwwIDU0QzkuNCAyNDkuOCAwIDI2Ny44IDAgMjg4bDAgMTcuNmMwIDggNi40IDE0LjQgMTQuNCAxNC40IDMxLjggMCA1Ny42LTI1LjggNTcuNi01Ny42TDcyIDE4NGMwLTI0LjMgMTIuMS00NS44IDMwLjUtNTguOS00LjIgMTAuOC02LjUgMjIuNi02LjUgMzQuOWwwIDY0ek01NjAgMzM2YTE2IDE2IDAgMSAxIDMyIDAgMTYgMTYgMCAxIDEgLTMyIDB6TTE2Ni42IDE2Ni42Yy00LjItNC4yLTYuNi0xMC02LjYtMTYgMC0xMi41IDEwLjEtMjIuNiAyMi42LTIyLjZsMTc4LjcgMGMxMi41IDAgMjIuNiAxMC4xIDIyLjYgMjIuNiAwIDYtMi40IDExLjgtNi42IDE2bC0yMy40IDIzLjRDMzMyLjIgMjExLjggMzAyLjcgMjI0IDI3MiAyMjRzLTYwLjItMTIuMi04MS45LTMzLjlsLTIzLjQtMjMuNHoiXX0sdDg9e3ByZWZpeDoiZmFzIixpY29uTmFtZToicnNzIixpY29uOls0NDgsNTEyLFsiZmVlZCJdLCJmMDllIiwiTTAgNjRjMC0xNy43IDE0LjMtMzIgMzItMzIgMjI5LjggMCA0MTYgMTg2LjIgNDE2IDQxNiAwIDE3LjctMTQuMyAzMi0zMiAzMnMtMzItMTQuMy0zMi0zMkMzODQgMjUzLjYgMjI2LjQgOTYgMzIgOTYgMTQuMyA5NiAwIDgxLjcgMCA2NHpNMCA0MTZhNjQgNjQgMCAxIDEgMTI4IDAgNjQgNjQgMCAxIDEgLTEyOCAwek0zMiAxNjBjMTU5LjEgMCAyODggMTI4LjkgMjg4IDI4OCAwIDE3LjctMTQuMyAzMi0zMiAzMnMtMzItMTQuMy0zMi0zMmMwLTEyMy43LTEwMC4zLTIyNC0yMjQtMjI0LTE3LjcgMC0zMi0xNC4zLTMyLTMyczE0LjMtMzIgMzItMzJ6Il19LE1rZT10OCxhOD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJtYWduaWZ5aW5nLWdsYXNzIixpY29uOls1MTIsNTEyLFsxMjgyNjksInNlYXJjaCJdLCJmMDAyIiwiTTQxNiAyMDhjMCA0NS45LTE0LjkgODguMy00MCAxMjIuN0w1MDIuNiA0NTcuNGMxMi41IDEyLjUgMTIuNSAzMi44IDAgNDUuM3MtMzIuOCAxMi41LTQ1LjMgMEwzMzAuNyAzNzZDMjk2LjMgNDAxLjEgMjUzLjkgNDE2IDIwOCA0MTYgOTMuMSA0MTYgMCAzMjIuOSAwIDIwOFM5My4xIDAgMjA4IDAgNDE2IDkzLjEgNDE2IDIwOHpNMjA4IDM1MmExNDQgMTQ0IDAgMSAwIDAtMjg4IDE0NCAxNDQgMCAxIDAgMCAyODh6Il19LHprZT1hOCxra2U9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiY2xvdWQtbW9vbiIsaWNvbjpbNjQwLDUxMixbXSwiZjZjMyIsIk00ODAgMGMxNC42IDAgMjguOCAxLjYgNDIuNSA0LjcgNy40IDEuNyAxMyA3LjggMTMuOSAxNS40cy0zIDE0LjktOS44IDE4LjNjLTQ1LjQgMjIuNi03Ni42IDY5LjUtNzYuNiAxMjMuNiAwIDc2LjIgNjEuOCAxMzggMTM4IDEzOCAzLjcgMCA3LjQtLjEgMTEuMS0uNCA3LjYtLjYgMTQuNyAzLjYgMTcuOCAxMC42czEuNSAxNS4xLTMuOSAyMC40Yy0yNiAyNS01OS4xIDQyLjctOTUuOSA0OS45LTExLjEtMjUuMy0zMC4yLTQ2LjMtNTQuMS01OS44LTcuNi02My40LTYxLjYtMTEyLjYtMTI3LjEtMTEyLjYtMTEuMiAwLTIyLjEgMS41LTMyLjUgNC4yLTQuOC00LjItOS45LTguMi0xNS4yLTExLjgtLjEtMi44LS4yLTUuNi0uMi04LjQgMC0xMDYgODYtMTkyIDE5Mi0xOTJ6bS0uMSA0MzEuOWMwIDQ0LjItMzUuOCA4MC04MCA4MGwtMjcxLjkgMGMtNTMgMC05Ni00My05Ni05NiAwLTQ3LjYgMzQuNi04NyA4MC05NC42LS40LTUyLjggNDIuOS05Ny4zIDk2LTk3LjMgMzQuOSAwIDY1LjQgMTguNiA4Mi4yIDQ2LjQgMTMtOS4xIDI4LjgtMTQuNCA0NS44LTE0LjQgNDQuMiAwIDgwIDM1LjggODAgODAgMCA1LjktLjYgMTEuNy0xLjkgMTcuMiAzNy40IDYuNyA2NS44IDM5LjQgNjUuOCA3OC43eiJdfSxzbT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJib3hlcy1zdGFja2VkIixpY29uOls1MTIsNTEyLFs2MjYyNSwiYm94ZXMiLCJib3hlcy1hbHQiXSwiZjQ2OCIsIk0yMjQgMGwwIDY0YzAgOC44IDcuMiAxNiAxNiAxNmwzMiAwYzguOCAwIDE2LTcuMiAxNi0xNmwwLTY0IDMyIDBjMzUuMyAwIDY0IDI4LjcgNjQgNjRsMCAxMjhjMCA1LjUtLjcgMTAuOS0yIDE2bC0yNTIgMGMtMS4zLTUuMS0yLTEwLjUtMi0xNmwwLTEyOGMwLTM1LjMgMjguNy02NCA2NC02NGwzMiAwem05NiA1MTJjLTExLjIgMC0yMS44LTIuOS0zMS04IDkuNS0xNi41IDE1LTM1LjYgMTUtNTZsMC0xMjhjMC0yMC40LTUuNS0zOS41LTE1LTU2IDkuMi01LjEgMTkuNy04IDMxLThsMzIgMCAwIDY0YzAgOC44IDcuMiAxNiAxNiAxNmwzMiAwYzguOCAwIDE2LTcuMiAxNi0xNmwwLTY0IDMyIDBjMzUuMyAwIDY0IDI4LjcgNjQgNjRsMCAxMjhjMCAzNS4zLTI4LjcgNjQtNjQgNjRsLTEyOCAwek0wIDMyMGMwLTM1LjMgMjguNy02NCA2NC02NGwzMiAwIDAgNjRjMCA4LjggNy4yIDE2IDE2IDE2bDMyIDBjOC44IDAgMTYtNy4yIDE2LTE2bDAtNjQgMzIgMGMzNS4zIDAgNjQgMjguNyA2NCA2NGwwIDEyOGMwIDM1LjMtMjguNyA2NC02NCA2NEw2NCA1MTJjLTM1LjMgMC02NC0yOC43LTY0LTY0TDAgMzIweiJdfSxTa2U9c20sQ2tlPXNtLF9rZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJjb2RlLWJyYW5jaCIsaWNvbjpbNDQ4LDUxMixbXSwiZjEyNiIsIk04MCAxMDRhMjQgMjQgMCAxIDAgMC00OCAyNCAyNCAwIDEgMCAwIDQ4em04MC0yNGMwIDMyLjgtMTkuNyA2MS00OCA3My4zbDAgNzAuNyAxNzYgMGMyNi41IDAgNDgtMjEuNSA0OC00OGwwLTIyLjdjLTI4LjMtMTIuMy00OC00MC41LTQ4LTczLjMgMC00NC4yIDM1LjgtODAgODAtODBzODAgMzUuOCA4MCA4MGMwIDMyLjgtMTkuNyA2MS00OCA3My4zbDAgMjIuN2MwIDYxLjktNTAuMSAxMTItMTEyIDExMmwtMTc2IDAgMCA3MC43YzI4LjMgMTIuMyA0OCA0MC41IDQ4IDczLjMgMCA0NC4yLTM1LjggODAtODAgODBTMCA0NzYuMiAwIDQzMmMwLTMyLjggMTkuNy02MSA0OC03My4zbDAtMjA1LjNDMTkuNyAxNDEgMCAxMTIuOCAwIDgwIDAgMzUuOCAzNS44IDAgODAgMHM4MCAzNS44IDgwIDgwem0yMzIgMGEyNCAyNCAwIDEgMCAtNDggMCAyNCAyNCAwIDEgMCA0OCAwek04MCA0NTZhMjQgMjQgMCAxIDAgMC00OCAyNCAyNCAwIDEgMCAwIDQ4eiJdfSxVST17cHJlZml4OiJmYXMiLGljb25OYW1lOiJiYW4iLGljb246WzUxMiw1MTIsWzEyODY4MywiY2FuY2VsIl0sImYwNWUiLCJNMzY3LjIgNDEyLjVMOTkuNSAxNDQuOGMtMjIuNCAzMS40LTM1LjUgNjkuOC0zNS41IDExMS4yIDAgMTA2IDg2IDE5MiAxOTIgMTkyIDQxLjUgMCA3OS45LTEzLjEgMTExLjItMzUuNXptNDUuMy00NS4zYzIyLjQtMzEuNCAzNS41LTY5LjggMzUuNS0xMTEuMiAwLTEwNi04Ni0xOTItMTkyLTE5Mi00MS41IDAtNzkuOSAxMy4xLTExMS4yIDM1LjVMNDEyLjUgMzY3LjJ6TTAgMjU2YTI1NiAyNTYgMCAxIDEgNTEyIDAgMjU2IDI1NiAwIDEgMSAtNTEyIDB6Il19LFRrZT1VSSxMa2U9e3ByZWZpeDoiZmFzIixpY29uTmFtZToianVnLWRldGVyZ2VudCIsaWNvbjpbMzg0LDUxMixbXSwiZTUxOSIsIk05NiAyNGMwLTEzLjMgMTAuNy0yNCAyNC0yNGw4MCAwYzEzLjMgMCAyNCAxMC43IDI0IDI0bDAgMjQgOCAwYzEzLjMgMCAyNCAxMC43IDI0IDI0cy0xMC43IDI0LTI0IDI0TDg4IDk2Qzc0LjcgOTYgNjQgODUuMyA2NCA3MlM3NC43IDQ4IDg4IDQ4bDggMCAwLTI0ek0wIDI1NmMwLTcwLjcgNTcuMy0xMjggMTI4LTEyOGwxMjggMGM3MC43IDAgMTI4IDU3LjMgMTI4IDEyOGwwIDE5MmMwIDM1LjMtMjguNyA2NC02NCA2NEw2NCA1MTJjLTM1LjMgMC02NC0yOC43LTY0LTY0TDAgMjU2em0yNTYgMGwwIDk2YzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJsMC05NmMwLTE3LjctMTQuMy0zMi0zMi0zMnMtMzIgMTQuMy0zMiAzMnoiXX0sV0k9e3ByZWZpeDoiZmFzIixpY29uTmFtZToicmVwbHkiLGljb246WzUxMiw1MTIsWzYxNzE0LCJtYWlsLXJlcGx5Il0sImYzZTUiLCJNMjA0LjIgMTguNGMxMiA1IDE5LjggMTYuNiAxOS44IDI5LjZsMCA4MCAxMTIgMGM5Ny4yIDAgMTc2IDc4LjggMTc2IDE3NiAwIDExMy4zLTgxLjUgMTYzLjktMTAwLjIgMTc0LjEtMi41IDEuNC01LjMgMS45LTguMSAxLjktMTAuOSAwLTE5LjctOC45LTE5LjctMTkuNyAwLTcuNSA0LjMtMTQuNCA5LjgtMTkuNSA5LjQtOC44IDIyLjItMjYuNCAyMi4yLTU2LjcgMC01My00My05Ni05Ni05NmwtOTYgMCAwIDgwYzAgMTIuOS03LjggMjQuNi0xOS44IDI5LjZzLTI1LjcgMi4yLTM0LjktNi45bC0xNjAtMTYwYy0xMi41LTEyLjUtMTIuNS0zMi44IDAtNDUuM2wxNjAtMTYwYzkuMi05LjIgMjIuOS0xMS45IDM0LjktNi45eiJdfSwka2U9V0ksQWtlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InN1bi1wbGFudC13aWx0IixpY29uOls2NDAsNTEyLFtdLCJlNTdhIiwiTTE2MCAwYy01LjUgMC0xMC42IDIuOC0xMy41IDcuNGwtMS4xIDIuMS0yNC44IDU1LjQtNTYuNy0yMS43Yy01LjktMi4yLTEyLjUtLjgtMTcgMy43UzQxIDU4IDQzLjIgNjMuOWwyMS43IDU2LjctNTUuNCAyNC44QzMuNyAxNDggMCAxNTMuNyAwIDE2MHMzLjcgMTIgOS41IDE0LjZsNTUuNCAyNC44LTIxLjcgNTYuN2MtMi4yIDUuOS0uOCAxMi41IDMuNyAxN3MxMS4xIDUuOSAxNyAzLjdsNTYuNy0yMS43IDI0LjggNTUuNGMyLjYgNS44IDguMyA5LjUgMTQuNiA5LjVzMTItMy43IDE0LjYtOS41bDI0LjgtNTUuNCA1Ni44IDIxLjdjNS45IDIuMiAxMi41IC44IDE3LTMuN3M1LjktMTEuMSAzLjctMTdsLTIxLjctNTYuNyA1NS40LTI0LjhjNS44LTIuNiA5LjUtOC4zIDkuNS0xNC42cy0zLjctMTItOS41LTE0LjZsLTU1LjQtMjQuOCAyMS43LTU2LjcgLjctMi4yYzEuMi01LjMtLjQtMTAuOS00LjMtMTQuOHMtOS41LTUuNS0xNC44LTQuM2wtMi4yIC43LTU2LjggMjEuNy0yNC44LTU1LjRDMTcyIDMuNyAxNjYuMyAwIDE2MCAwem0wIDk2YTY0IDY0IDAgMSAxIDAgMTI4IDY0IDY0IDAgMSAxIDAtMTI4em0zMiA2NGEzMiAzMiAwIDEgMCAtNjQgMCAzMiAzMiAwIDEgMCA2NCAwem0zNzYgMTZsMCA1My40Yy0xNC44IDcuNy0yNCAyMy4xLTI0IDQ0LjYgMCAxNi44IDE2IDQ0IDM3LjQgNjcuMiA1LjggNi4yIDE1LjUgNi4yIDIxLjIgMCAyMS40LTIzLjMgMzcuNC01MC42IDM3LjQtNjcuMiAwLTIxLjUtOS4yLTM3LTI0LTQ0LjZsMC01My40YzAtNDQuMi0zNS44LTgwLTgwLTgwcy04MCAzNS44LTgwIDgwbDAgMjIuN2MtOS44LTQuMy0yMC42LTYuNy0zMi02LjctNDQuMiAwLTgwIDM1LjgtODAgODBsMCAyMS40Yy0xNC44IDcuNi0yNCAyMy4xLTI0IDQ0LjYgMCAxNi44IDE2IDQ0IDM3LjQgNjcuMiA1LjggNi4yIDE1LjUgNi4yIDIxLjIgMCAyMS40LTIzLjMgMzcuNC01MC42IDM3LjQtNjcuMiAwLTIxLjUtOS4yLTM3LTI0LTQ0LjZsMC0yMS40YzAtMTcuNyAxNC4zLTMyIDMyLTMyczMyIDE0LjMgMzIgMzJsMCAxNzYtNDI0IDBjLTE3LjcgMC0zMiAxNC4zLTMyIDMyczE0LjMgMzIgMzIgMzJsNTc2IDBjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJsLTEwNCAwIDAtMjcyYzAtMTcuNyAxNC4zLTMyIDMyLTMyczMyIDE0LjMgMzIgMzJ6Il19LERrZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJiYWN0ZXJpdW0iLGljb246WzU3Niw1MTIsW10sImUwNWEiLCJNNDA4IDE2YzAtMTMuMy0xMC43LTI0LTI0LTI0UzM2MCAyLjcgMzYwIDE2bDAgMjMuNGMtMTMuOSA1LjMtMjYuOSAxMy41LTM4LjIgMjQuNUwzMDUgNDdjLTkuNC05LjQtMjQuNi05LjQtMzMuOSAwcy05LjQgMjQuNiAwIDMzLjlsMTYuOCAxNi44LTMwLjEgMzAuMS0xNi44LTE2LjhjLTkuNC05LjQtMjQuNi05LjQtMzMuOSAwcy05LjQgMjQuNiAwIDMzLjlsMTYuOCAxNi44Yy0xMCAxMC0yMCAyMC0zMC4xIDMwLjFMMTc3IDE3NWMtOS40LTkuNC0yNC42LTkuNC0zMy45IDBzLTkuNCAyNC42IDAgMzMuOWwxNi44IDE2LjgtMzAuMSAzMC4xLTE2LjgtMTYuOGMtOS40LTkuNC0yNC42LTkuNC0zMy45IDBzLTkuNCAyNC42IDAgMzMuOWwxNi44IDE2LjhjLTExIDExLjMtMTkuMiAyNC4zLTI0LjUgMzguMkw0OCAzMjhjLTEzLjMgMC0yNCAxMC43LTI0IDI0czEwLjcgMjQgMjQgMjRsMTYuMyAwYzEuMyAxOC4zIDcuMSAzNi40IDE3LjQgNTIuNEw3MSA0MzljLTkuNCA5LjQtOS40IDI0LjYgMCAzMy45czI0LjYgOS40IDMzLjkgMGwxMC42LTEwLjZjMTYgMTAuMyAzNC4xIDE2LjEgNTIuNCAxNy40bDAgMTYuM2MwIDEzLjMgMTAuNyAyNCAyNCAyNHMyNC0xMC43IDI0LTI0bDAtMjMuNGMxMy45LTUuMyAyNi45LTEzLjUgMzguMi0yNC41TDI3MSA0NjVjOS40IDkuNCAyNC42IDkuNCAzMy45IDBzOS40LTI0LjYgMC0zMy45bC0xNi44LTE2LjggMzAuMS0zMC4xIDE2LjggMTYuOGM5LjQgOS40IDI0LjYgOS40IDMzLjkgMHM5LjQtMjQuNiAwLTMzLjlsLTE2LjgtMTYuOGMxMC0xMCAyMC0yMCAzMC4xLTMwLjFMMzk5IDMzN2M5LjQgOS40IDI0LjYgOS40IDMzLjkgMHM5LjQtMjQuNiAwLTMzLjlsLTE2LjgtMTYuOCAzMC4xLTMwLjEgMTYuOCAxNi44YzkuNCA5LjQgMjQuNiA5LjQgMzMuOSAwczkuNC0yNC42IDAtMzMuOWwtMTYuOC0xNi44YzExLTExLjMgMTkuMi0yNC4zIDI0LjUtMzguMmwyMy40IDBjMTMuMyAwIDI0LTEwLjcgMjQtMjRzLTEwLjctMjQtMjQtMjRsLTE2LjMgMGMtMS4zLTE4LjMtNy4xLTM2LjQtMTcuNC01Mi40TDUwNSA3M2M5LjQtOS40IDkuNC0yNC42IDAtMzMuOXMtMjQuNi05LjQtMzMuOSAwTDQ2MC40IDQ5LjdjLTE2LTEwLjMtMzQuMS0xNi4xLTUyLjQtMTcuNEw0MDggMTZ6TTE2MCAzNTJhMzIgMzIgMCAxIDEgNjQgMCAzMiAzMiAwIDEgMSAtNjQgMHpNMjcyIDI0MGEzMiAzMiAwIDEgMSAwIDY0IDMyIDMyIDAgMSAxIDAtNjR6Il19LEVrZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJyZWNvcmQtdmlueWwiLGljb246WzUxMiw1MTIsW10sImY4ZDkiLCJNMCAyNTZhMjU2IDI1NiAwIDEgMSA1MTIgMCAyNTYgMjU2IDAgMSAxIC01MTIgMHptMjU2LTk2YTk2IDk2IDAgMSAxIDAgMTkyIDk2IDk2IDAgMSAxIDAtMTkyem0wIDI0MGExNDQgMTQ0IDAgMSAwIDAtMjg4IDE0NCAxNDQgMCAxIDAgMCAyODh6bTAtMTEyYTMyIDMyIDAgMSAwIDAtNjQgMzIgMzIgMCAxIDAgMCA2NHoiXX0sR0k9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZmxvcHB5LWRpc2siLGljb246WzQ0OCw1MTIsWzEyODE5MCwxMjg0MjYsInNhdmUiXSwiZjBjNyIsIk02NCAzMkMyOC43IDMyIDAgNjAuNyAwIDk2TDAgNDE2YzAgMzUuMyAyOC43IDY0IDY0IDY0bDMyMCAwYzM1LjMgMCA2NC0yOC43IDY0LTY0bDAtMjQyLjdjMC0xNy02LjctMzMuMy0xOC43LTQ1LjNMMzUyIDUwLjdDMzQwIDM4LjcgMzIzLjcgMzIgMzA2LjcgMzJMNjQgMzJ6bTMyIDk2YzAtMTcuNyAxNC4zLTMyIDMyLTMybDE2MCAwYzE3LjcgMCAzMiAxNC4zIDMyIDMybDAgNjRjMCAxNy43LTE0LjMgMzItMzIgMzJsLTE2MCAwYy0xNy43IDAtMzItMTQuMy0zMi0zMmwwLTY0ek0yMjQgMjg4YTY0IDY0IDAgMSAxIDAgMTI4IDY0IDY0IDAgMSAxIDAtMTI4eiJdfSxQa2U9R0ksSWtlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InRvaWxldHMtcG9ydGFibGUiLGljb246WzUxMiw1MTIsW10sImU1ODQiLCJNNjQgMGw5NiAwYzM1LjMgMCA2NCAyOC43IDY0IDY0bDAgMTYtMjI0IDAgMC0xNkMwIDI4LjcgMjguNyAwIDY0IDB6TTAgMTI4bDIyNCAwIDAgMzYwYzAgMTMuMy0xMC43IDI0LTI0IDI0cy0yNC0xMC43LTI0LTI0bDAtOC0xMjggMCAwIDhjMCAxMy4zLTEwLjcgMjQtMjQgMjRTMCA1MDEuMyAwIDQ4OEwwIDEyOHpNMTI4IDI0OGwwIDQ4YzAgMTMuMyAxMC43IDI0IDI0IDI0bDI0IDAgMC05Ni0yNCAwYy0xMy4zIDAtMjQgMTAuNy0yNCAyNHpNMzUyIDBsOTYgMGMzNS4zIDAgNjQgMjguNyA2NCA2NGwwIDE2LTIyNCAwIDAtMTZjMC0zNS4zIDI4LjctNjQgNjQtNjR6TTI4OCAxMjhsMjI0IDAgMCAzNjBjMCAxMy4zLTEwLjcgMjQtMjQgMjRzLTI0LTEwLjctMjQtMjRsMC04LTEyOCAwIDAgOGMwIDEzLjMtMTAuNyAyNC0yNCAyNHMtMjQtMTAuNy0yNC0yNGwwLTM2MHpNNDE2IDI0OGwwIDQ4YzAgMTMuMyAxMC43IDI0IDI0IDI0bDI0IDAgMC05Ni0yNCAwYy0xMy4zIDAtMjQgMTAuNy0yNCAyNHoiXX0sTmtlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6Im8iLGljb246WzQ0OCw1MTIsWzExMV0sIjRmIiwiTTIyNCA5NmExNjAgMTYwIDAgMSAwIDAgMzIwIDE2MCAxNjAgMCAxIDAgMC0zMjB6TTQ0OCAyNTZhMjI0IDIyNCAwIDEgMSAtNDQ4IDAgMjI0IDIyNCAwIDEgMSA0NDggMHoiXX0sRmtlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InBhbGV0dGUiLGljb246WzUxMiw1MTIsWzEyNzkxMl0sImY1M2YiLCJNNTEyIDI1NmMwIC45IDAgMS44IDAgMi43LS40IDM2LjUtMzMuNiA2MS4zLTcwLjEgNjEuM0wzNDQgMzIwYy0yNi41IDAtNDggMjEuNS00OCA0OCAwIDMuNCAuNCA2LjcgMSA5LjkgMi4xIDEwLjIgNi41IDIwIDEwLjggMjkuOSA2LjEgMTMuOCAxMi4xIDI3LjUgMTIuMSA0MiAwIDMxLjgtMjEuNiA2MC43LTUzLjQgNjItMy41IC4xLTcgLjItMTAuNiAuMi0xNDEuNCAwLTI1Ni0xMTQuNi0yNTYtMjU2UzExNC42IDAgMjU2IDAgNTEyIDExNC42IDUxMiAyNTZ6TTEyOCAyODhhMzIgMzIgMCAxIDAgLTY0IDAgMzIgMzIgMCAxIDAgNjQgMHptMC05NmEzMiAzMiAwIDEgMCAwLTY0IDMyIDMyIDAgMSAwIDAgNjR6TTI4OCA5NmEzMiAzMiAwIDEgMCAtNjQgMCAzMiAzMiAwIDEgMCA2NCAwem05NiA5NmEzMiAzMiAwIDEgMCAwLTY0IDMyIDMyIDAgMSAwIDAgNjR6Il19LE9rZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJ1bmxvY2siLGljb246WzM4NCw1MTIsWzEyODI3NV0sImYwOWMiLCJNMTI4IDk2YzAtMzUuMyAyOC43LTY0IDY0LTY0IDMxLjcgMCA1OCAyMyA2My4xIDUzLjMgMi45IDE3LjQgMTkuNCAyOS4yIDM2LjkgMjYuM3MyOS4yLTE5LjQgMjYuMy0zNi45QzMwOC4xIDE0LjEgMjU1LjUtMzIgMTkyLTMyIDEyMS4zLTMyIDY0IDI1LjMgNjQgOTZsMCA2NGMtMzUuMyAwLTY0IDI4LjctNjQgNjRMMCA0NDhjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMjU2IDBjMzUuMyAwIDY0LTI4LjcgNjQtNjRsMC0yMjRjMC0zNS4zLTI4LjctNjQtNjQtNjRsLTE5MiAwIDAtNjR6Il19LFlJPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImVhci1saXN0ZW4iLGljb246WzUxMiw1MTIsWyJhc3Npc3RpdmUtbGlzdGVuaW5nLXN5c3RlbXMiXSwiZjJhMiIsIk0zNzkuNiAuM2MtOC45IDEuMi0xNy4yIDYuMi0yMi40IDE0LjEtNi44IDEwLjQtNyAyNC4xLS40IDM0LjYgNS42IDguOSAxNS41IDEyLjcgMjMuOCAxOC41IDcuNSA1LjIgMTcuNiAxMy4yIDI3LjcgMjQuMiAyMCAyMS43IDM5LjUgNTQuMyAzOS41IDEwMC4zIDAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJjMC02Ni0yOC41LTExMy40LTU2LjUtMTQzLjctMTMuOS0xNS4xLTI3LjgtMjYuMS0zOC4zLTMzLjMtMTEtNy42LTIzLjUtMTYuNi0zNy42LTE0Ljd6TTI0MCAxMjhjLTU3LjYgMC0xMDUuMSA0My42LTExMS4zIDk5LjUtMS45IDE3LjYtMTcuOCAzMC4yLTM1LjMgMjguM3MtMzAuMi0xNy44LTI4LjMtMzUuM2M5LjctODggODQuMy0xNTYuNSAxNzQuOS0xNTYuNSA5Ny4yIDAgMTc2IDc4LjggMTc2IDE3NiAwIDQ2LTE3LjcgODcuOS00Ni42IDExOS4zLTEyIDEzLTE3LjQgMjQuOC0xNy40IDM0LjdsMCA2LjFjMCA2MS45LTUwLjEgMTEyLTExMiAxMTItMTcuNyAwLTMyLTE0LjMtMzItMzJzMTQuMy0zMiAzMi0zMmMyNi41IDAgNDgtMjEuNSA0OC00OGwwLTYuMWMwLTMyLjkgMTcuNC01OS42IDM0LjQtNzggMTguNC0yMCAyOS42LTQ2LjYgMjkuNi03NS45IDAtNjEuOS01MC4xLTExMi0xMTItMTEyek0wIDQ4MGEzMiAzMiAwIDEgMSA2NCAwIDMyIDMyIDAgMSAxIC02NCAwem0xNjAtOTZhMzIgMzIgMCAxIDAgMC02NCAzMiAzMiAwIDEgMCAwIDY0ek04Ni42IDM2MS40Yy0xMi41LTEyLjUtMzIuOC0xMi41LTQ1LjMgMHMtMTIuNSAzMi44IDAgNDUuM2w2NCA2NGMxMi41IDEyLjUgMzIuOCAxMi41IDQ1LjMgMHMxMi41LTMyLjggMC00NS4zbC02NC02NHpNMjQwIDIwOGMtMTcuNyAwLTMyIDE0LjMtMzIgMzIgMCAxMy4zLTEwLjcgMjQtMjQgMjRzLTI0LTEwLjctMjQtMjRjMC00NC4yIDM1LjgtODAgODAtODBzODAgMzUuOCA4MCA4MGMwIDEzLjMtMTAuNyAyNC0yNCAyNHMtMjQtMTAuNy0yNC0yNGMwLTE3LjctMTQuMy0zMi0zMi0zMnoiXX0sUmtlPVlJLEJrZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJjb2RlLXB1bGwtcmVxdWVzdCIsaWNvbjpbNTEyLDUxMixbXSwiZTEzYyIsIk0zMjggMjRjMC05LjctNS44LTE4LjUtMTQuOC0yMi4yUzI5My45IC4yIDI4NyA3TDIzMSA2M2MtOS40IDkuNC05LjQgMjQuNiAwIDMzLjlsNTYgNTZjNi45IDYuOSAxNy4yIDguOSAyNi4yIDUuMlMzMjggMTQ1LjcgMzI4IDEzNmwwLTI0IDI0IDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJsMCAyMTQuN2MtMjguMyAxMi4zLTQ4IDQwLjUtNDggNzMuMyAwIDQ0LjIgMzUuOCA4MCA4MCA4MHM4MC0zNS44IDgwLTgwYzAtMzIuOC0xOS43LTYxLTQ4LTczLjNMNDQ4IDE0NGMwLTUzLTQzLTk2LTk2LTk2bC0yNCAwIDAtMjR6TTcyIDgwYTI0IDI0IDAgMSAxIDQ4IDAgMjQgMjQgMCAxIDEgLTQ4IDB6bTU2IDczLjNjMjguMy0xMi4zIDQ4LTQwLjUgNDgtNzMuMyAwLTQ0LjItMzUuOC04MC04MC04MFMxNiAzNS44IDE2IDgwYzAgMzIuOCAxOS43IDYxIDQ4IDczLjNsMCAyMDUuM2MtMjguMyAxMi4zLTQ4IDQwLjUtNDggNzMuMyAwIDQ0LjIgMzUuOCA4MCA4MCA4MHM4MC0zNS44IDgwLTgwYzAtMzIuOC0xOS43LTYxLTQ4LTczLjNsMC0yMDUuM3pNNzIgNDMyYTI0IDI0IDAgMSAxIDQ4IDAgMjQgMjQgMCAxIDEgLTQ4IDB6bTM0NC0yNGEyNCAyNCAwIDEgMSAwIDQ4IDI0IDI0IDAgMSAxIDAtNDh6Il19LEhrZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJrZXkiLGljb246WzUxMiw1MTIsWzEyODI3M10sImYwODQiLCJNMzM2IDM1MmM5Ny4yIDAgMTc2LTc4LjggMTc2LTE3NlM0MzMuMiAwIDMzNiAwIDE2MCA3OC44IDE2MCAxNzZjMCAxOC43IDIuOSAzNi44IDguMyA1My43TDcgMzkxYy00LjUgNC41LTcgMTAuNi03IDE3bDAgODBjMCAxMy4zIDEwLjcgMjQgMjQgMjRsODAgMGMxMy4zIDAgMjQtMTAuNyAyNC0yNGwwLTQwIDQwIDBjMTMuMyAwIDI0LTEwLjcgMjQtMjRsMC00MCA0MCAwYzYuNCAwIDEyLjUtMi41IDE3LTdsMzMuMy0zMy4zYzE2LjkgNS40IDM1IDguMyA1My43IDguM3pNMzc2IDk2YTQwIDQwIDAgMSAxIDAgODAgNDAgNDAgMCAxIDEgMC04MHoiXX0scWtlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InNrdWxsIixpY29uOls1MTIsNTEyLFsxMjgxMjhdLCJmNTRjIiwiTTQxNiA0MjcuNGM1OC41LTQ0IDk2LTExMS42IDk2LTE4Ny40IDAtMTMyLjUtMTE0LjYtMjQwLTI1Ni0yNDBTMCAxMDcuNSAwIDI0MGMwIDc1LjggMzcuNSAxNDMuNCA5NiAxODcuNEw5NiA0NjRjMCAyNi41IDIxLjUgNDggNDggNDhsMzIgMCAwLTQwYzAtMTMuMyAxMC43LTI0IDI0LTI0czI0IDEwLjcgMjQgMjRsMCA0MCA2NCAwIDAtNDBjMC0xMy4zIDEwLjctMjQgMjQtMjRzMjQgMTAuNyAyNCAyNGwwIDQwIDMyIDBjMjYuNSAwIDQ4LTIxLjUgNDgtNDhsMC0zNi42ek05NiAyNTZhNjQgNjQgMCAxIDEgMTI4IDAgNjQgNjQgMCAxIDEgLTEyOCAwem0yNTYtNjRhNjQgNjQgMCAxIDEgMCAxMjggNjQgNjQgMCAxIDEgMC0xMjh6Il19LFpJPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6Im1hcnMtc3Ryb2tlLXVwIixpY29uOlszODQsNTEyLFs5ODk2LCJtYXJzLXN0cm9rZS12Il0sImYyMmEiLCJNMTkyIDI1NmExMTIgMTEyIDAgMSAwIDAgMjI0IDExMiAxMTIgMCAxIDAgMC0yMjR6TTE2IDM2OGMwLTg2LjMgNjIuMS0xNTguMSAxNDQuMS0xNzMuMS0uMS0uOS0uMS0xLjktLjEtMi45bDAtMTYtMzIgMGMtMTcuNyAwLTMyLTE0LjMtMzItMzJzMTQuMy0zMiAzMi0zMmwzMiAwIDAtNjEuNC0yOCAyMi40Yy0xMy44IDExLTMzLjkgOC44LTQ1LTVzLTguOC0zMy45IDUtNDVsODAtNjRjMTEuNy05LjMgMjguMy05LjMgNDAgMGw4MCA2NGMxMy44IDExIDE2IDMxLjIgNSA0NXMtMzEuMiAxNi00NSA1bC0yOC0yMi40IDAgNjEuNCAzMiAwYzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMybC0zMiAwIDAgMTZjMCAxIDAgMS45LS4xIDIuOSA4MiAxNSAxNDQuMSA4Ni44IDE0NC4xIDE3My4xIDAgOTcuMi03OC44IDE3Ni0xNzYgMTc2UzE2IDQ2NS4yIDE2IDM2OHoiXX0sVmtlPVpJLFhJPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImZpcmUtZmxhbWUtc2ltcGxlIixpY29uOlszODQsNTEyLFsiYnVybiJdLCJmNDZhIiwiTTM3Mi41IDI1Ni41bC0uNy0xLjlDMzM3LjggMTYwLjggMjgyIDc2LjUgMjA5LjEgOC41bC0zLjMtM0MyMDIuMSAyIDE5Ny4xIDAgMTkyIDBzLTEwLjEgMi0xMy44IDUuNWwtMy4zIDNDMTAyIDc2LjUgNDYuMiAxNjAuOCAxMi4yIDI1NC42bC0uNyAxLjlDMy45IDI3Ny4zIDAgMjk5LjQgMCAzMjEuNiAwIDQyNi43IDg2LjggNTEyIDE5MiA1MTJzMTkyLTg1LjMgMTkyLTE5MC40YzAtMjIuMi0zLjktNDQuMi0xMS41LTY1LjF6bS05MC44IDQ5LjVjNC4xIDkuMyA2LjIgMTkuNCA2LjIgMjkuNSAwIDUzLTQzIDk2LjUtOTYgOTYuNXMtOTYtNDMuNS05Ni05Ni41YzAtMTAuMSAyLjEtMjAuMyA2LjItMjkuNWwxLjktNC4zYzE1LjgtMzUuNCAzNy45LTY3LjcgNjUuMy05NS4xbDguOS04LjljMy42LTMuNiA4LjUtNS42IDEzLjYtNS42czEwIDIgMTMuNiA1LjZsOC45IDguOWMyNy40IDI3LjQgNDkuNiA1OS43IDY1LjMgOTUuMWwxLjkgNC4zeiJdfSxqa2U9WEksVWtlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InRyZWUiLGljb246WzQ0OCw1MTIsWzEyNzc5NF0sImYxYmIiLCJNMjI0LTMyYzcgMCAxMy43IDMuMSAxOC4zIDguNWwxMzYgMTYwYzYuMSA3LjEgNy40IDE3LjEgMy41IDI1LjZTMzY5LjQgMTc2IDM2MCAxNzZsLTI0LjkgMCA3NS4yIDg4LjVjNi4xIDcuMSA3LjQgMTcuMSAzLjUgMjUuNlM0MDEuNCAzMDQgMzkyIDMwNGwtMzguNSAwIDg4LjggMTA0LjVjNi4xIDcuMSA3LjQgMTcuMSAzLjUgMjUuNlM0MzMuNCA0NDggNDI0IDQ0OGwtMTY4IDAgMCA2NGMwIDE3LjctMTQuMyAzMi0zMiAzMnMtMzItMTQuMy0zMi0zMmwwLTY0LTE2OCAwYy05LjQgMC0xNy45LTUuNC0yMS44LTEzLjlzLTIuNi0xOC41IDMuNS0yNS42TDk0LjUgMzA0IDU2IDMwNGMtOS40IDAtMTcuOS01LjQtMjEuOC0xMy45cy0yLjYtMTguNSAzLjUtMjUuNkwxMTIuOSAxNzYgODggMTc2Yy05LjQgMC0xNy45LTUuNC0yMS44LTEzLjlzLTIuNi0xOC41IDMuNS0yNS42bDEzNi0xNjBDMjEwLjMtMjguOSAyMTctMzIgMjI0LTMyeiJdfSxXa2U9e3ByZWZpeDoiZmFzIixpY29uTmFtZToic21vZyIsaWNvbjpbNTc2LDUxMixbXSwiZjc1ZiIsIk0xNzYgMjg4Qzk2LjUgMjg4IDMyIDIyMy41IDMyIDE0NFM5Ni41IDAgMTc2IDBjMjcuMiAwIDUyLjYgNy41IDc0LjMgMjAuNiAyMC4xLTEzIDQ0LTIwLjYgNjkuNy0yMC42IDQ3LjQgMCA4OC43IDI1LjcgMTEwLjkgNjRsMS4xIDBjNjEuOSAwIDExMiA1MC4xIDExMiAxMTIgMCA2MC4zLTQ3LjYgMTA5LjQtMTA3LjIgMTExLjktMjIuNiAyMC01Mi4zIDMyLjEtODQuOCAzMi4xLTMyLjUgMC02Mi4xLTEyLjEtODQuNy0zMkwxNzYgMjg4ek01MTIgMzkyYzAgMTMuMy0xMC43IDI0LTI0IDI0TDI0IDQxNmMtMTMuMyAwLTI0LTEwLjctMjQtMjRzMTAuNy0yNCAyNC0yNGw0NjQgMGMxMy4zIDAgMjQgMTAuNyAyNCAyNHpNODggNDY0bDgwIDBjMTMuMyAwIDI0IDEwLjcgMjQgMjRzLTEwLjcgMjQtMjQgMjRsLTgwIDBjLTEzLjMgMC0yNC0xMC43LTI0LTI0czEwLjctMjQgMjQtMjR6bTE3NiAwbDI4OCAwYzEzLjMgMCAyNCAxMC43IDI0IDI0cy0xMC43IDI0LTI0IDI0bC0yODggMGMtMTMuMyAwLTI0LTEwLjctMjQtMjRzMTAuNy0yNCAyNC0yNHoiXX0sR2tlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InMiLGljb246WzMyMCw1MTIsWzExNV0sIjUzIiwiTTAgMTU3LjVDMCA4OC4yIDU2LjIgMzIgMTI1LjUgMzJMMjcyIDMyYzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMyTDEyNS41IDk2Yy0zNCAwLTYxLjUgMjcuNS02MS41IDYxLjUgMCAzMSAyMy4xIDU3LjIgNTMuOSA2MUwyMTAuMSAyMzBDMjcyLjkgMjM3LjkgMzIwIDI5MS4yIDMyMCAzNTQuNSAzMjAgNDIzLjggMjYzLjggNDgwIDE5NC41IDQ4MEw0OCA0ODBjLTE3LjcgMC0zMi0xNC4zLTMyLTMyczE0LjMtMzIgMzItMzJsMTQ2LjUgMGMzNCAwIDYxLjUtMjcuNSA2MS41LTYxLjUgMC0zMS0yMy4xLTU3LjItNTMuOS02MUwxMDkuOSAyODJDNDcuMSAyNzQuMSAwIDIyMC44IDAgMTU3LjV6Il19LFlrZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJqZWRpIixpY29uOls1NzYsNTEyLFtdLCJmNjY5IiwiTTI0NiAzMTUuN2wtMjEuMi0zMS45Yy0yLjEtMy4yLTEuNy03LjQgMS0xMC4xczYuOS0zLjEgMTAuMS0xbDI5LjUgMTkuN2MyLjEgMS40IDQuOS0uMSA1LTIuNkwyNzkuNyA4Yy4xLTQuNSAzLjgtOCA4LjMtOHM4LjEgMy41IDguMyA4bDkuNCAyODEuOWMuMSAyLjUgMi45IDMuOSA1IDIuNmwyOS41LTE5LjdjMy4yLTIuMSA3LjQtMS43IDEwLjEgMXMzLjEgNi45IDEgMTAuMUwzMzAgMzE1LjdjLTEuMyAxLjktLjIgNC41IDIgNC45bDM3LjYgNy41YzMuNyAuNyA2LjQgNCA2LjQgNy44cy0yLjcgNy4xLTYuNCA3LjhMMzMyIDM1MS40Yy0yLjIgLjQtMy4zIDMtMiA0LjlsMjEuMiAzMS45YzIuMSAzLjIgMS43IDcuNC0xIDEwLjFzLTYuOSAzLjEtMTAuMSAxbC0yNi4zLTE3LjZjLTIuMi0xLjQtNS4xIC4yLTUgMi44bDIuMSA2MS41YzU5LjgtMTAuOCAxMDUuMS02My4xIDEwNS4xLTEyNiAwLTM3LTE1LjctNzAuNC00MC44LTkzLjctNy02LjUtNi41LTE4LjYgMS0yNC40IDM0LTI2LjMgNTUuOC02Ny41IDU1LjgtMTEzLjkgMC0xNi44LTIuOS0zMy04LjItNDgtNC42LTEzIDEwLjItMzAgMjEuNC0yMiA1My41IDM4IDkyLjcgOTQuOCAxMDcuOCAxNjAuNyAuNSAyLjEtLjIgNC4zLTEuNyA1LjlsLTI4LjQgMjguNGMtNCA0LTEuMiAxMC45IDQuNSAxMC45bDI2IDBjMy40IDAgNi4yIDIuNiA2LjMgNiAuMSAzLjMgLjIgNi42IC4yIDEwIDAgMTcuNS0xLjcgMzQuNy00LjggNTEuMy0uMiAxLjItLjkgMi40LTEuNyAzLjNsLTQ2LjUgNDYuNWMtNCA0LTEuMiAxMC45IDQuNSAxMC45bDE0LjYgMGM0LjYgMCA3LjcgNC44IDUuNyA5LTQ0LjUgODkuNS0xMzYuOSAxNTEtMjQzLjcgMTUxUzg4LjggNDUwLjUgNDQuMyAzNjFjLTIuMS00LjIgMS05IDUuNy05bDE0LjYgMGM1LjcgMCA4LjYtNi45IDQuNS0xMC45TDIyLjYgMjk0LjZjLS45LS45LTEuNS0yLTEuNy0zLjMtMy4yLTE2LjYtNC44LTMzLjgtNC44LTUxLjMgMC0zLjMgLjEtNi43IC4yLTEwIC4xLTMuNCAyLjktNiA2LjMtNmwyNiAwYzUuNyAwIDguNi02LjkgNC41LTEwLjlMMjQuNiAxODQuNmMtMS41LTEuNS0yLjItMy44LTEuNy01LjkgMTUuMi02NiA1NC4zLTEyMi44IDEwNy44LTE2MC43IDExLjMtOCAyNiA4LjkgMjEuNCAyMi01LjMgMTUtOC4yIDMxLjItOC4yIDQ4IDAgNDYuMyAyMS45IDg3LjUgNTUuOCAxMTMuOSA3LjUgNS44IDggMTcuOSAxIDI0LjQtMjUuMSAyMy40LTQwLjggNTYuNy00MC44IDkzLjcgMCA2Mi45IDQ1LjQgMTE1LjIgMTA1LjEgMTI2bDIuMS02MS41Yy4xLTIuNi0yLjgtNC4yLTUtMi44bC0yNi4zIDE3LjZjLTMuMiAyLjEtNy40IDEuNy0xMC4xLTFzLTMuMS02LjktMS0xMC4xTDI0NiAzNTYuM2MxLjMtMS45IC4yLTQuNS0yLTQuOWwtMzcuNi03LjVjLTMuNy0uNy02LjQtNC02LjQtNy44czIuNy03LjEgNi40LTcuOGwzNy42LTcuNWMyLjItLjQgMy4zLTMgMi00Ljl6Il19LEtJPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InBlcnNvbi1oaWtpbmciLGljb246WzQ0OCw1MTIsWyJoaWtpbmciXSwiZjZlYyIsIk0xOTItMzJhNTYgNTYgMCAxIDEgMCAxMTIgNTYgNTYgMCAxIDEgMC0xMTJ6TTEyOCAxNzMuNmMwLTM0IDI3LjYtNjEuNiA2MS42LTYxLjYgMjAuMyAwIDM5LjcgOC4xIDU0IDIyLjRsNDguMiA0OC4yYzYgNiAxNC4xIDkuNCAyMi42IDkuNGwzNy41IDBjNS44IDAgMTEuMyAxLjYgMTYgNC4zbDAtNzYuM2MwLTEzLjMgMTAuNy0yNCAyNC0yNHMyNCAxMC43IDI0IDI0bDAgNDAwYzAgMTMuMy0xMC43IDI0LTI0IDI0cy0yNC0xMC43LTI0LTI0bDAtMjY4LjNjLTQuNyAyLjctMTAuMiA0LjMtMTYgNC4zbC0zNy41IDBjLTI1LjUgMC00OS45LTEwLjEtNjcuOS0yOC4xbC02LjYtNi42IDAgMTA5LjIgMzQuNSAyOS42YzE3LjcgMTUuMiAyOS4zIDM2LjIgMzIuNiA1OS4zbDEyLjYgODguMWMyLjUgMTcuNS05LjcgMzMuNy0yNy4yIDM2LjJzLTMzLjctOS43LTM2LjItMjcuMmwtMTIuNi04OC4xYy0xLjEtNy43LTUtMTQuNy0xMC45LTE5LjhsLTcxLjQtNjEuMmMtMjEuMy0xOC4yLTMzLjUtNDQuOS0zMy41LTcyLjlsMC0xMDF6bS00LjggMjAzLjdjMi4zIDIuMyA0LjcgNC40IDcuMSA2LjVsNDQuOSAzOC41Yy0zLjYgOC40LTguNSAxNi4zLTE0LjQgMjMuNEw4OC42IDUzMi41Yy0xMS4zIDEzLjYtMzEuNSAxNS40LTQ1LjEgNC4xcy0xNS40LTMxLjUtNC4xLTQ1LjFsNzIuMy04Ni43YzIuNi0zLjEgNC41LTYuNiA1LjgtMTAuNGw1LjctMTcuMXpNMCAxNjBjMC0zNS4zIDI4LjctNjQgNjQtNjQgMTcuNyAwIDMyIDE0LjMgMzIgMzJsMCAxMjhjMCAxNy43LTE0LjMgMzItMzIgMzJsLTMyIDBjLTE3LjcgMC0zMi0xNC4zLTMyLTMybDAtOTZ6Il19LFprZT1LSSxYa2U9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiYXJyb3dzLXVwLXRvLWxpbmUiLGljb246WzQ0OCw1MTIsW10sImU0YzIiLCJNMzIgMEMxNC4zIDAgMCAxNC4zIDAgMzJTMTQuMyA2NCAzMiA2NGwzODQgMGMxNy43IDAgMzItMTQuMyAzMi0zMlM0MzMuNyAwIDQxNiAwTDMyIDB6bTg2LjYgMTM3LjRjLTEyLjUtMTIuNS0zMi44LTEyLjUtNDUuMyAwbC02NCA2NGMtMTIuNSAxMi41LTEyLjUgMzIuOCAwIDQ1LjNzMzIuOCAxMi41IDQ1LjMgMEw2NCAyMzcuMyA2NCA0ODBjMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMmwwLTI0Mi43IDkuNCA5LjRjMTIuNSAxMi41IDMyLjggMTIuNSA0NS4zIDBzMTIuNS0zMi44IDAtNDUuM2wtNjQtNjR6bTI1NiAwYy0xMi41LTEyLjUtMzIuOC0xMi41LTQ1LjMgMGwtNjQgNjRjLTEyLjUgMTIuNS0xMi41IDMyLjggMCA0NS4zczMyLjggMTIuNSA0NS4zIDBsOS40LTkuNCAwIDI0Mi43YzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJsMC0yNDIuNyA5LjQgOS40YzEyLjUgMTIuNSAzMi44IDEyLjUgNDUuMyAwczEyLjUtMzIuOCAwLTQ1LjNsLTY0LTY0eiJdfSxLa2U9e3ByZWZpeDoiZmFzIixpY29uTmFtZToibWFycy1kb3VibGUiLGljb246WzY0MCw1MTIsWzk4OTFdLCJmMjI3IiwiTTI4OCAzMmMwLTE3LjcgMTQuMy0zMiAzMi0zMkw0NDggMGMxNy43IDAgMzIgMTQuMyAzMiAzMmwwIDEyOGMwIDE3LjctMTQuMyAzMi0zMiAzMnMtMzItMTQuMy0zMi0zMmwwLTUwLjctOTUgOTVjMTkuNSAyOC40IDMxIDYyLjcgMzEgOTkuOCAwIDk3LjItNzguOCAxNzYtMTc2IDE3NlMwIDQwMS4yIDAgMzA0IDc4LjggMTI4IDE3NiAxMjhjMzcgMCA3MS40IDExLjQgOTkuOCAzMWw5NS05NS01MC43IDBjLTE3LjcgMC0zMi0xNC4zLTMyLTMyek0xNzYgNDE2YTExMiAxMTIgMCAxIDAgMC0yMjQgMTEyIDExMiAwIDEgMCAwIDIyNHptMTYwIDY0Yy02LjggMC0xMy40LS40LTIwLTEuMSAyMy42LTE4LjkgNDMuMy00Mi41IDU3LjYtNjkuNCA0My4zLTE1LjUgNzQuNC01Ni45IDc0LjQtMTA1LjUgMC0yNS4yLTguMy00OC41LTIyLjQtNjcuMiA3LjEgMi4xIDE0LjYgMy4yIDIyLjQgMy4yIDE3IDAgMzIuNy01LjMgNDUuNy0xNC4zIDExLjcgMjMuNiAxOC4zIDUwLjIgMTguMyA3OC4zIDAgOTcuMi03OC44IDE3Ni0xNzYgMTc2ek01MjggMTU3LjNMNTI4IDMyYzAtMTEuNC0yLjQtMjIuMi02LjctMzJMNjA4IDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJsMCAxMjhjMCAxNy43LTE0LjMgMzItMzIgMzJzLTMyLTE0LjMtMzItMzJsMC01MC43LTQ4IDQ4eiJdfSxRa2U9e3ByZWZpeDoiZmFzIixpY29uTmFtZToidGhlcm1vbWV0ZXIiLGljb246WzUxMiw1MTIsW10sImY0OTEiLCJNOTYgMzgyLjFsMC04OC44YzAtMTQuOSA1LjktMjkuMSAxNi40LTM5LjZsMjEuNy0yMS43IDQxIDQxYzkuNCA5LjQgMjQuNiA5LjQgMzMuOSAwczkuNC0yNC42IDAtMzMuOWwtNDEtNDEgNDYuMS00Ni4xIDQxIDQxYzkuNCA5LjQgMjQuNiA5LjQgMzMuOSAwczkuNC0yNC42IDAtMzMuOWwtNDEtNDEgNDYuMS00Ni4xIDQxIDQxYzkuNCA5LjQgMjQuNiA5LjQgMzMuOSAwczkuNC0yNC42IDAtMzMuOWwtNDEtNDEgNy44LTcuOGMxOS40LTE5LjQgNDUuNi0zMC4yIDczLTMwLjIgNTcgMCAxMDMuMiA0Ni4yIDEwMy4yIDEwMy4yIDAgMjcuNC0xMC45IDUzLjYtMzAuMiA3M0wyNTguMyAzOTkuNmMtMTAuNSAxMC41LTI0LjcgMTYuNC0zOS42IDE2LjRsLTg4LjggMC04OSA4OWMtOS40IDkuNC0yNC42IDkuNC0zMy45IDBTLTIuMyA0ODAuNCA3IDQ3MWw4OS04OXoiXX0sUUk9e3ByZWZpeDoiZmFzIixpY29uTmFtZToicGFpbnRicnVzaCIsaWNvbjpbNTc2LDUxMixbMTI4Mzk2LCJwYWludC1icnVzaCJdLCJmMWZjIiwiTTQ4MC41IDEwLjNMMjU5LjEgMTU4Yy0yOS4xIDE5LjQtNDcuNiA1MC45LTUwLjYgODUuMyA2Mi4zIDEyLjggMTExLjQgNjEuOSAxMjQuMyAxMjQuMyAzNC41LTMgNjUuOS0yMS41IDg1LjMtNTAuNkw1NjUuNyA5NS41YzYuNy0xMC4xIDEwLjMtMjEuOSAxMC4zLTM0LjEgMC0zMy45LTI3LjUtNjEuNC02MS40LTYxLjQtMTIuMSAwLTI0IDMuNi0zNC4xIDEwLjN6TTI4OCA0MDBjMC02MS45LTUwLjEtMTEyLTExMi0xMTJTNjQgMzM4LjEgNjQgNDAwYzAgMy45IC4yIDcuOCAuNiAxMS42IDEuOCAxNy41LTEwLjIgMzYuNC0yNy44IDM2LjRMMzIgNDQ4Yy0xNy43IDAtMzIgMTQuMy0zMiAzMnMxNC4zIDMyIDMyIDMybDE0NCAwYzYxLjkgMCAxMTItNTAuMSAxMTItMTEyeiJdfSxKa2U9UUksZVNlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6Im5ldXRlciIsaWNvbjpbMzg0LDUxMixbOTkwNl0sImYyMmMiLCJNODAgMTc2YTExMiAxMTIgMCAxIDEgMjI0IDAgMTEyIDExMiAwIDEgMSAtMjI0IDB6TTIyMy45IDM0OS4xQzMwNS45IDMzNC4xIDM2OCAyNjIuMyAzNjggMTc2IDM2OCA3OC44IDI4OS4yIDAgMTkyIDBTMTYgNzguOCAxNiAxNzZjMCA4Ni4zIDYyLjEgMTU4LjEgMTQ0LjEgMTczLjEtLjEgMS0uMSAxLjktLjEgMi45bDAgMTYwYzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJsMC0xNjBjMC0xIDAtMS45LS4xLTIuOXoiXX0sSkk9e3ByZWZpeDoiZmFzIixpY29uTmFtZToic3F1YXJlLXBob25lLWZsaXAiLGljb246WzQ0OCw1MTIsWyJwaG9uZS1zcXVhcmUtYWx0Il0sImY4N2IiLCJNNjQgMzJDMjguNyAzMiAwIDYwLjcgMCA5NkwwIDQxNmMwIDM1LjMgMjguNyA2NCA2NCA2NGwzMjAgMGMzNS4zIDAgNjQtMjguNyA2NC02NGwwLTMyMGMwLTM1LjMtMjguNy02NC02NC02NEw2NCAzMnptMjMyIDk2LjdsMi44IC44YzMyLjMgOC44IDU5LjkgNDAuMSA1MS44IDc4LjItMTguNSA4Ny41LTg3LjQgMTU2LjMtMTc0LjkgMTc0LjktMzguMSA4LjEtNjkuNC0xOS41LTc4LjItNTEuOGwtLjgtMi44Yy0yLjctOS44IDIuNC0yMC4xIDExLjgtMjRsNDguNy0yMC4zYzguMy0zLjQgMTcuOC0xLjEgMjMuNSA1LjlsMTkuMyAyMy42YzM1LjEtMTcuNCA2My40LTQ2LjYgNzkuNi04Mi40bC0yMi4xLTE4Yy02LjktNS43LTkuMy0xNS4yLTUuOS0yMy41bDIwLjMtNDguN2MzLjktOS40IDE0LjItMTQuNCAyNC0xMS44eiJdfSx0U2U9SkksZU49e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZmFjZS1ncmluLXRvbmd1ZS1zcXVpbnQiLGljb246WzUxMiw1MTIsWzEyODU0MSwiZ3Jpbi10b25ndWUtc3F1aW50Il0sImY1OGEiLCJNMCAyNTZjMCAxMDQuNCA2Mi41IDE5NC4yIDE1Mi4yIDIzNC4xLTUuMy0xMy04LjItMjcuMi04LjItNDIuMWwwLTYxLjdjLTE2LjktMTYuNS0zMC4xLTM2LjctMzguMy01OS4zLTQuMy0xMS44IDcuNy0yMS44IDE5LjYtMTguMSAzOS4yIDEyLjIgODMuNyAxOS4xIDEzMC43IDE5LjFzOTEuNS02LjkgMTMwLjctMTkuMWMxMS45LTMuNyAyMy45IDYuMyAxOS42IDE4LjEtOC4zIDIyLjYtMjEuNSA0Mi44LTM4LjMgNTkuM2wwIDYxLjdjMCAxNC45LTIuOSAyOS4xLTguMiA0Mi4xIDg5LjctMzkuOCAxNTIuMi0xMjkuNiAxNTIuMi0yMzQuMSAwLTE0MS40LTExNC42LTI1Ni0yNTYtMjU2UzAgMTE0LjYgMCAyNTZ6bTEyNS44LTkxLjdjLTYuMi01LjItNy42LTE0LjMtMy4xLTIxLjFzMTMuMy05LjIgMjAuNi01LjVsNzkuNiA0MGM1LjQgMi43IDguOCA4LjIgOC44IDE0LjNzLTMuNCAxMS42LTguOCAxNC4zbC03OS42IDQwYy03LjMgMy42LTE2LjEgMS4zLTIwLjYtNS41cy0zLjEtMTUuOSAzLjEtMjEuMUwxNTkgMTkyIDEyNS44IDE2NC4zem0yNjMuNi0yMS4xYzQuNSA2LjggMy4xIDE1LjktMy4xIDIxLjFMMzUzIDE5MiAzODYuMiAyMTkuN2M2LjIgNS4yIDcuNiAxNC4zIDMuMSAyMS4xcy0xMy4zIDkuMi0yMC42IDUuNWwtNzkuNi00MGMtNS40LTIuNy04LjgtOC4yLTguOC0xNC4zczMuNC0xMS42IDguOC0xNC4zbDc5LjYtNDBjNy4zLTMuNiAxNi4xLTEuMyAyMC42IDUuNXpNMzIwIDQ0OGwwLTQ1LjRjMC0xNC43LTExLjktMjYuNi0yNi42LTI2LjZsLTIgMGMtMTEuMyAwLTIxLjEgNy45LTIzLjYgMTguOS0yLjggMTIuNi0yMC44IDEyLjYtMjMuNiAwLTIuNS0xMS4xLTEyLjMtMTguOS0yMy42LTE4LjlsLTIgMGMtMTQuNyAwLTI2LjYgMTEuOS0yNi42IDI2LjZsMCA0NS40YzAgMzUuMyAyOC43IDY0IDY0IDY0czY0LTI4LjcgNjQtNjR6Il19LGFTZT1lTixpU2U9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiY29tbWVudC1kb2xsYXIiLGljb246WzUxMiw1MTIsW10sImY2NTEiLCJNMjU2IDQ4MGMxNDEuNCAwIDI1Ni0xMDcuNSAyNTYtMjQwUzM5Ny40IDAgMjU2IDAgMCAxMDcuNSAwIDI0MGMwIDU0LjMgMTkuMiAxMDQuMyA1MS42IDE0NC41TDIuOCA0NzYuOGMtNC44IDktMy4zIDIwIDMuNiAyNy41czE3LjggOS44IDI3LjEgNS44bDExOC40LTUwLjdDMTgzLjcgNDcyLjYgMjE4LjkgNDgwIDI1NiA0ODB6bTQtMzUyYzExIDAgMjAgOSAyMCAyMGwwIDQgOCAwYzExIDAgMjAgOSAyMCAyMHMtOSAyMC0yMCAyMGwtNDcuNSAwYy02LjkgMC0xMi41IDUuNi0xMi41IDEyLjUgMCA2LjEgNC40IDExLjMgMTAuNCAxMi4zbDQxLjcgN2MyNS4zIDQuMiA0My45IDI2LjEgNDMuOSA1MS44IDAgMjYuMS0xOSA0Ny43LTQ0IDUxLjhsMCA0LjdjMCAxMS05IDIwLTIwIDIwcy0yMC05LTIwLTIwbDAtNC0yNCAwYy0xMSAwLTIwLTktMjAtMjBzOS0yMCAyMC0yMGw1NS41IDBjNi45IDAgMTIuNS01LjYgMTIuNS0xMi41IDAtNi4xLTQuNC0xMS4zLTEwLjQtMTIuM2wtNDEuNy03Yy0yNS4zLTQuMi00My45LTI2LjEtNDMuOS01MS44IDAtMjguOCAyMy4yLTUyLjIgNTItNTIuNWwwLTRjMC0xMSA5LTIwIDIwLTIweiJdfSxyU2U9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiaGlwcG8iLGljb246WzY0MCw1MTIsWzEyOTQzNV0sImY2ZWQiLCJNNDA3IDQ3YzkuNC05LjQgMjQuNi05LjQgMzMuOSAwbDE3LjIgMTcuMmMxLjktLjEgMy45LS4yIDUuOC0uMmwzMiAwYzExLjIgMCAyMS45IDIuMyAzMS42IDYuNUw1NDMgNTVjOS40LTkuNCAyNC42LTkuNCAzMy45IDBzOS40IDI0LjYgMCAzMy45TDU2NCAxMDEuOWM3LjYgMTIuMiAxMiAyNi43IDEyIDQyLjEgMCAxMC4yIDcuNCAxOC44IDE2LjcgMjMgMjcuOSAxMi41IDQ3LjMgNDAuNSA0Ny4zIDczIDAgMjYuMi0xMi42IDQ5LjQtMzIgNjRsMCAzMmMwIDguOC03LjIgMTYtMTYgMTZsLTMyIDBjLTguOCAwLTE2LTcuMi0xNi0xNmwwLTE2LTY0IDAgMCAxNmMwIDguOC03LjIgMTYtMTYgMTZsLTMyIDBjLTguOCAwLTE2LTcuMi0xNi0xNmwwLTE3LjZjLTExLjgtMi40LTIyLjctNy40LTMyLTE0LjQtMS41LTEuMS0yLjktMi4zLTQuMy0zLjUtMTctMTQuNy0yNy43LTM2LjQtMjcuNy02MC41IDAtOC44LTcuMi0xNi0xNi0xNnMtMTYgNy4yLTE2IDE2YzAgNDQuNyAyNi4yIDgzLjIgNjQgMTAxLjJsMCAxMC44YzAgMTcuNyAxNC4zIDMyIDMyIDMybDMyIDAgMCA2NGMwIDE3LjctMTQuMyAzMi0zMiAzMmwtNjQgMGMtMTcuNyAwLTMyLTE0LjMtMzItMzJsMC03NmMtMTkuOCA3LjctNDEuNCAxMi02NCAxMnMtNDQuMi00LjMtNjQtMTJsMCA3NmMwIDE3LjctMTQuMyAzMi0zMiAzMmwtNjQgMGMtMTcuNyAwLTMyLTE0LjMtMzItMzJsMC0xMTguOS0xOC4xIDQwLjdjLTUuNCAxMi4xLTE5LjYgMTcuNi0zMS43IDEyLjJTLTMuMyAzNjIuNCAyLjEgMzUwLjNMMjQgMzAwLjljNS4zLTExLjkgOC0yNC43IDgtMzcuNyAwLTEwNy41IDg1LjItMTk1LjIgMTkxLjgtMTk5LjFsLjItLjEgNjQgMGM0MS43IDAgODMuNCAxMi4xIDExNy4yIDI1LjcgMS43LTEuOCAzLjUtMy42IDUuMy01LjJMNDA3IDgxYy05LjQtOS40LTkuNC0yNC42IDAtMzMuOXptNzMgMTg1YTI0IDI0IDAgMSAwIC00OCAwIDI0IDI0IDAgMSAwIDQ4IDB6bTg4IDI0YTI0IDI0IDAgMSAwIDAtNDggMjQgMjQgMCAxIDAgMCA0OHpNNDgwIDE0NGExNiAxNiAwIDEgMCAtMzIgMCAxNiAxNiAwIDEgMCAzMiAwem00OCAxNmExNiAxNiAwIDEgMCAwLTMyIDE2IDE2IDAgMSAwIDAgMzJ6Il19LHNTZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJib3dsLWZvb2QiLGljb246WzUxMiw1MTIsW10sImU0YzYiLCJNMCAxNzZjMC0zNS4zIDI4LjctNjQgNjQtNjQgLjUgMCAxLjEgMCAxLjYgMCA3LjQtMzYuNSAzOS43LTY0IDc4LjQtNjQgMTUgMCAyOSA0LjEgNDAuOSAxMS4yIDEzLjMtMjUuNyA0MC4xLTQzLjIgNzEuMS00My4yczU3LjggMTcuNiA3MS4xIDQzLjJjMTItNy4xIDI2LTExLjIgNDAuOS0xMS4yIDM4LjcgMCA3MSAyNy41IDc4LjQgNjQgLjUgMCAxLjEgMCAxLjYgMCAzNS4zIDAgNjQgMjguNyA2NCA2NCAwIDExLjctMy4xIDIyLjYtOC42IDMyTDguNiAyMDhDMy4xIDE5OC42IDAgMTg3LjcgMCAxNzZ6TTAgMjgzLjRDMCAyNjguMyAxMi4zIDI1NiAyNy40IDI1Nmw0NTcuMSAwYzE1LjEgMCAyNy40IDEyLjMgMjcuNCAyNy40IDAgNzAuNS00NC40IDEzMC43LTEwNi43IDE1NC4xTDQwMy41IDQ1MmMtMiAxNi0xNS42IDI4LTMxLjggMjhsLTIzMS41IDBjLTE2LjEgMC0yOS44LTEyLTMxLjgtMjhsLTEuOC0xNC40QzQ0LjQgNDE0LjEgMCAzNTMuOSAwIDI4My40eiJdfSxuU2U9e3ByZWZpeDoiZmFzIixpY29uTmFtZToic3F1YXJlLXZpcnVzIixpY29uOls0NDgsNTEyLFtdLCJlNTc4IiwiTTY0IDMyQzI4LjcgMzIgMCA2MC43IDAgOTZMMCA0MTZjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMzIwIDBjMzUuMyAwIDY0LTI4LjcgNjQtNjRsMC0zMjBjMC0zNS4zLTI4LjctNjQtNjQtNjRMNjQgMzJ6bTE2MCA4MGMxMy4zIDAgMjQgMTAuNyAyNCAyNCAwIDIyLjkgMjcuNyAzNC40IDQzLjkgMTguMiA5LjQtOS40IDI0LjYtOS40IDMzLjkgMHM5LjQgMjQuNiAwIDMzLjljLTE2LjIgMTYuMi00LjcgNDMuOSAxOC4yIDQzLjkgMTMuMyAwIDI0IDEwLjcgMjQgMjRzLTEwLjcgMjQtMjQgMjRjLTIyLjkgMC0zNC40IDI3LjctMTguMiA0My45IDkuNCA5LjQgOS40IDI0LjYgMCAzMy45cy0yNC42IDkuNC0zMy45IDBjLTE2LjItMTYuMi00My45LTQuNy00My45IDE4LjIgMCAxMy4zLTEwLjcgMjQtMjQgMjRzLTI0LTEwLjctMjQtMjRjMC0yMi45LTI3LjctMzQuNC00My45LTE4LjItOS40IDkuNC0yNC42IDkuNC0zMy45IDBzLTkuNC0yNC42IDAtMzMuOWMxNi4yLTE2LjIgNC43LTQzLjktMTguMi00My45LTEzLjMgMC0yNC0xMC43LTI0LTI0czEwLjctMjQgMjQtMjRjMjIuOSAwIDM0LjQtMjcuNyAxOC4yLTQzLjktOS40LTkuNC05LjQtMjQuNiAwLTMzLjlzMjQuNi05LjQgMzMuOSAwYzE2LjIgMTYuMiA0My45IDQuNyA0My45LTE4LjIgMC0xMy4zIDEwLjctMjQgMjQtMjR6TTE5MiAyNDhhMjQgMjQgMCAxIDAgMC00OCAyNCAyNCAwIDEgMCAwIDQ4em04OCA0MGEyNCAyNCAwIDEgMCAtNDggMCAyNCAyNCAwIDEgMCA0OCAweiJdfSxvU2U9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiY2xvdWQtc3VuLXJhaW4iLGljb246WzY0MCw1MTIsWzEyNzc4Ml0sImY3NDMiLCJNMjU0LjkgNDQ4LjJjNC4yLTEyLjYgMTcuOC0xOS40IDMwLjMtMTUuMiAxMi42IDQuMiAxOS40IDE3LjggMTUuMiAzMC40bC0yMS40IDY0LjFjLTQuMiAxMi42LTE3LjggMTkuNC0zMC40IDE1LjJzLTE5LjQtMTcuOC0xNS4yLTMwLjNsMjEuNC02NC4yem0xMjAgMGM0LjItMTIuNiAxNy44LTE5LjQgMzAuMy0xNS4yIDEyLjYgNC4yIDE5LjQgMTcuOCAxNS4yIDMwLjRsLTIxLjQgNjQuMWMtNC4yIDEyLjYtMTcuOCAxOS40LTMwLjQgMTUuMnMtMTkuNC0xNy44LTE1LjItMzAuM2wyMS40LTY0LjJ6bTEyMCAwYzQuMi0xMi42IDE3LjgtMTkuNCAzMC4zLTE1LjIgMTIuNiA0LjIgMTkuNCAxNy44IDE1LjIgMzAuNGwtMjEuNCA2NC4xYy00LjIgMTIuNi0xNy44IDE5LjQtMzAuNCAxNS4ycy0xOS40LTE3LjgtMTUuMi0zMC4zbDIxLjQtNjQuMnpNNDQ4LjMgMTI4YzQ0LjIgMCA4MCAzNS44IDgwIDgwIDAgNy41LTEuMSAxNC43LTMgMjEuNSAyOS44IDExLjYgNTEgNDAuNiA1MSA3NC41IDAgNDQuMi0zNS44IDgwLTgwIDgwbC0xOTIgMC04LjItLjRjLTQwLjMtNC4xLTcxLjgtMzguMi03MS44LTc5LjYgMC0zOSAyNy45LTcxLjUgNjQuOS03OC41LS41LTMuMS0uOS02LjItLjktOS41IDAtMzAuOSAyNS4xLTU2IDU2LTU2IDEyLjQgMCAyMy45IDQuMSAzMy4yIDEwLjkgMTMuNC0yNS41IDQwLjEtNDIuOSA3MC44LTQyLjl6TTI0MC4zLTMxLjhjNS4zIDAgMTAuMyAyLjcgMTMuMyA3LjFsNDcuMyA3MC40IDgzLjMtMTYuM2M1LjItMSAxMC42IC43IDE0LjMgNC40IDMuOCAzLjggNS40IDkuMiA0LjQgMTQuNGwtOC42IDQzLjhjLTExLjkgNS41LTIyLjggMTIuOS0zMi40IDIxLjYtNS43LTEtMTEuNy0xLjUtMTcuNy0xLjUtMTQuMyAwLTI4IDMtNDAuNCA4LjItMTYuOS0xNS0zOS4yLTI0LjItNjMuNi0yNC4yLTUzIDAtOTYgNDMtOTYgOTYgMCAzMC45IDE0LjYgNTguMiAzNy4yIDc1LjgtMy40IDExLjUtNS4yIDIzLjYtNS4yIDM2LjIgMCAxMy4yIDIgMjUuOSA1LjcgMzcuOWwtMi40LTMuNS04My4yIDE2LjNjLTUuMiAxLTEwLjYtLjctMTQuMy00LjQtMy44LTMuOC01LjQtOS4yLTQuNC0xNC40bDE2LjMtODMuMy03MC40LTQ3LjRjLTQuNC0zLTcuMS04LTcuMS0xMy4zIDAtNS4zIDIuNi0xMC4zIDctMTMuMmw3MC40LTQ3LjQtMTYuMy04My4yLS4yLTJjLS4zLTQuNiAxLjMtOS4xIDQuNi0xMi40IDMuOC0zLjggOS4yLTUuNCAxNC40LTQuNGw4My4yIDE2LjMgNDcuMy03MC40IDEuMi0xLjZjMy0zLjUgNy40LTUuNSAxMi4xLTUuNXptMCAxNzUuOGM4LjYgMCAxNi42IDIuMyAyMy42IDYuMi05LjcgMTEuOS0xNi45IDI1LjktMjAuNyA0MS4zLTE1IDguMS0yOC4yIDE5LjItMzguOCAzMi4zLTcuNS04LjUtMTIuMi0xOS42LTEyLjItMzEuOCAwLTI2LjUgMjEuNS00OCA0OC00OHoiXX0sdE49e3ByZWZpeDoiZmFzIixpY29uTmFtZToiYXJyb3ctcmlnaHQtbG9uZyIsaWNvbjpbNTc2LDUxMixbImxvbmctYXJyb3ctcmlnaHQiXSwiZjE3OCIsIk01NjYuNiAyNzguNmMxMi41LTEyLjUgMTIuNS0zMi44IDAtNDUuM2wtMTI4LTEyOGMtMTIuNS0xMi41LTMyLjgtMTIuNS00NS4zIDBzLTEyLjUgMzIuOCAwIDQ1LjNMNDY2LjcgMjI0IDMyIDIyNGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJzMTQuMyAzMiAzMiAzMmw0MzQuNyAwLTczLjQgNzMuNGMtMTIuNSAxMi41LTEyLjUgMzIuOCAwIDQ1LjNzMzIuOCAxMi41IDQ1LjMgMGwxMjgtMTI4eiJdfSxsU2U9dE4sY1NlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImJ1aWxkaW5nLXVuIixpY29uOls1MTIsNTEyLFtdLCJlNGQ5IiwiTTMyIDY0QzMyIDI4LjcgNjAuNyAwIDk2IDBMMzUyIDBjMzUuMyAwIDY0IDI4LjcgNjQgNjRsMCAyNzItMTEyIDBjLTIwLjkgMC0zOS41IDEwLjEtNTEuMiAyNS42LTgtNi0xOC05LjYtMjguOC05LjYtMjYuNSAwLTQ4IDIxLjUtNDggNDhsMCA2NCA2NCAwIDAgNDgtMTQ0IDBjLTM1LjMgMC02NC0yOC43LTY0LTY0TDMyIDY0ek0xNDQgOTZjLTguOCAwLTE2IDcuMi0xNiAxNmwwIDMyYzAgOC44IDcuMiAxNiAxNiAxNmwzMiAwYzguOCAwIDE2LTcuMiAxNi0xNmwwLTMyYzAtOC44LTcuMi0xNi0xNi0xNmwtMzIgMHptMTEyIDE2bDAgMzJjMCA4LjggNy4yIDE2IDE2IDE2bDMyIDBjOC44IDAgMTYtNy4yIDE2LTE2bDAtMzJjMC04LjgtNy4yLTE2LTE2LTE2bC0zMiAwYy04LjggMC0xNiA3LjItMTYgMTZ6TTE0NCAyMjRjLTguOCAwLTE2IDcuMi0xNiAxNmwwIDMyYzAgOC44IDcuMiAxNiAxNiAxNmwzMiAwYzguOCAwIDE2LTcuMiAxNi0xNmwwLTMyYzAtOC44LTcuMi0xNi0xNi0xNmwtMzIgMHptMTEyIDE2bDAgMzJjMCA4LjggNy4yIDE2IDE2IDE2bDMyIDBjOC44IDAgMTYtNy4yIDE2LTE2bDAtMzJjMC04LjgtNy4yLTE2LTE2LTE2bC0zMiAwYy04LjggMC0xNiA3LjItMTYgMTZ6TTQyNy40IDM4MC41YzktMi4xIDE4LjMgMi4yIDIyLjUgMTAuNWwyNi4xIDUyLjIgMC00My4zYzAtMTEgOS0yMCAyMC0yMHMyMCA5IDIwIDIwbDAgMTI4YzAgOS4zLTYuNCAxNy4zLTE1LjQgMTkuNXMtMTguMy0yLjItMjIuNS0xMC41TDQ1MiA0ODQuNyA0NTIgNTI4YzAgMTEtOSAyMC0yMCAyMHMtMjAtOS0yMC0yMGwwLTEyOGMwLTkuMyA2LjQtMTcuMyAxNS40LTE5LjV6TTMyNCA0MDBsMCA5NmMwIDYuNiA1LjQgMTIgMTIgMTJzMTItNS40IDEyLTEybDAtOTZjMC0xMSA5LTIwIDIwLTIwczIwIDkgMjAgMjBsMCA5NmMwIDI4LjctMjMuMyA1Mi01MiA1MnMtNTItMjMuMy01Mi01MmwwLTk2YzAtMTEgOS0yMCAyMC0yMHMyMCA5IDIwIDIweiJdfSxkU2U9e3ByZWZpeDoiZmFzIixpY29uTmFtZToidGVtcGVyYXR1cmUtbG93IixpY29uOls1MTIsNTEyLFtdLCJmNzZiIiwiTTk2IDk2YzAtNTMgNDMtOTYgOTYtOTZzOTYgNDMgOTYgOTZsMCAxNjQuN2MyOS41IDI2LjQgNDggNjQuNyA0OCAxMDcuMyAwIDc5LjUtNjQuNSAxNDQtMTQ0IDE0NFM0OCA0NDcuNSA0OCAzNjhjMC00Mi42IDE4LjUtODEgNDgtMTA3LjNMOTYgOTZ6bTk2IDMzNmMzNS4zIDAgNjQtMjguNyA2NC02NCAwLTI2LjktMTYuNS00OS45LTQwLTU5LjNsMC0yOC43YzAtMTMuMy0xMC43LTI0LTI0LTI0cy0yNCAxMC43LTI0IDI0bDAgMjguN2MtMjMuNSA5LjUtNDAgMzIuNS00MCA1OS4zIDAgMzUuMyAyOC43IDY0IDY0IDY0ek00NjQgODBhMzIgMzIgMCAxIDAgLTY0IDAgMzIgMzIgMCAxIDAgNjQgMHpNMzUyIDgwYTgwIDgwIDAgMSAxIDE2MCAwIDgwIDgwIDAgMSAxIC0xNjAgMHoiXX0saFNlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImRvb3Itb3BlbiIsaWNvbjpbNDQ4LDUxMixbXSwiZjUyYiIsIk0yODggNjRsNjQgMCAwIDQxNmMwIDE3LjcgMTQuMyAzMiAzMiAzMmwzMiAwYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMybDAtMzg0YzAtMzUuMy0yOC43LTY0LTY0LTY0bC05NiAwIDAgMC0xNjAgMEM2MC43IDAgMzIgMjguNyAzMiA2NGwwIDM4NGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJzMTQuMyAzMiAzMiAzMmwyMjQgMGMxNy43IDAgMzItMTQuMyAzMi0zMmwwLTQxNnpNMTYwIDI1NmEzMiAzMiAwIDEgMSA2NCAwIDMyIDMyIDAgMSAxIC02NCAweiJdfSxwU2U9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiYWxpZ24tbGVmdCIsaWNvbjpbNDQ4LDUxMixbXSwiZjAzNiIsIk0yODggNjRjMCAxNy43LTE0LjMgMzItMzIgMzJMMzIgOTZDMTQuMyA5NiAwIDgxLjcgMCA2NFMxNC4zIDMyIDMyIDMybDIyNCAwYzE3LjcgMCAzMiAxNC4zIDMyIDMyem0wIDI1NmMwIDE3LjctMTQuMyAzMi0zMiAzMkwzMiAzNTJjLTE3LjcgMC0zMi0xNC4zLTMyLTMyczE0LjMtMzIgMzItMzJsMjI0IDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJ6TTAgMTkyYzAtMTcuNyAxNC4zLTMyIDMyLTMybDM4NCAwYzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMyTDMyIDIyNGMtMTcuNyAwLTMyLTE0LjMtMzItMzJ6TTQ0OCA0NDhjMCAxNy43LTE0LjMgMzItMzIgMzJMMzIgNDgwYy0xNy43IDAtMzItMTQuMy0zMi0zMnMxNC4zLTMyIDMyLTMybDM4NCAwYzE3LjcgMCAzMiAxNC4zIDMyIDMyeiJdfSxhTj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJjYW1lcmEiLGljb246WzUxMiw1MTIsWzYyMjU4LCJjYW1lcmEtYWx0Il0sImYwMzAiLCJNMTQ5LjEgNjQuOEwxMzguNyA5NiA2NCA5NkMyOC43IDk2IDAgMTI0LjcgMCAxNjBMMCA0MTZjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMzg0IDBjMzUuMyAwIDY0LTI4LjcgNjQtNjRsMC0yNTZjMC0zNS4zLTI4LjctNjQtNjQtNjRsLTc0LjcgMC0xMC40LTMxLjJDMzU2LjQgNDUuMiAzMzguMSAzMiAzMTcuNCAzMkwxOTQuNiAzMmMtMjAuNyAwLTM5IDEzLjItNDUuNSAzMi44ek0yNTYgMTkyYTk2IDk2IDAgMSAxIDAgMTkyIDk2IDk2IDAgMSAxIDAtMTkyeiJdfSx1U2U9YU4sZlNlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InVzZXJzLXJheXMiLGljb246WzY0MCw1MTIsW10sImU1OTMiLCJNMzEtMzNDMjEuNy0yMy42IDIxLjctOC40IDMxIDFMODcgNTdjOS40IDkuNCAyNC42IDkuNCAzMy45IDBzOS40LTI0LjYgMC0zMy45TDY1LTMzYy05LjQtOS40LTI0LjYtOS40LTMzLjkgMHpNNjA5LTMzYy05LjQtOS40LTI0LjYtOS40LTMzLjkgMEw1MTkgMjNjLTkuNCA5LjQtOS40IDI0LjYgMCAzMy45czI0LjYgOS40IDMzLjkgMEw2MDkgMWM5LjQtOS40IDkuNC0yNC42IDAtMzMuOXpNNjUgNTQ1bDU2LTU2YzkuNC05LjQgOS40LTI0LjYgMC0zMy45cy0yNC42LTkuNC0zMy45IDBMMzEgNTExYy05LjQgOS40LTkuNCAyNC42IDAgMzMuOXMyNC42IDkuNCAzMy45IDB6bTU0NCAwYzkuNC05LjQgOS40LTI0LjYgMC0zMy45bC01Ni01NmMtOS40LTkuNC0yNC42LTkuNC0zMy45IDBzLTkuNCAyNC42IDAgMzMuOWw1NiA1NmM5LjQgOS40IDI0LjYgOS40IDMzLjkgMHpNMzIwIDIwOGE2NCA2NCAwIDEgMCAwLTEyOCA2NCA2NCAwIDEgMCAwIDEyOHptMCAzMmMtNjEuOSAwLTExMiA1MC4xLTExMiAxMTJsMCA4YzAgMTMuMyAxMC43IDI0IDI0IDI0bDE3NiAwYzEzLjMgMCAyNC0xMC43IDI0LTI0bDAtOGMwLTYxLjktNTAuMS0xMTItMTEyLTExMnptMjE2LTgwYTU2IDU2IDAgMSAwIC0xMTIgMCA1NiA1NiAwIDEgMCAxMTIgMHpNNDUxLjIgMjYwLjRDNDY5LjQgMjg2LjMgNDgwIDMxNy45IDQ4MCAzNTJsMCA4YzAgOC40LTEuNCAxNi41LTQuMSAyNGw3OC44IDBjMTEuOCAwIDIxLjMtOS42IDIxLjMtMjEuM2wwLTEwLjdjMC01My00My05Ni05Ni05Ni0xMCAwLTE5LjcgMS41LTI4LjggNC40em0tMjYyLjQgMGMtOS4xLTIuOS0xOC44LTQuNC0yOC44LTQuNC01MyAwLTk2IDQzLTk2IDk2bDAgMTAuN2MwIDExLjggOS42IDIxLjMgMjEuMyAyMS4zbDc4LjggMGMtMi43LTcuNS00LjEtMTUuNi00LjEtMjRsMC04YzAtMzQuMSAxMC42LTY1LjcgMjguOC05MS42ek0yMTYgMTYwYTU2IDU2IDAgMSAwIC0xMTIgMCA1NiA1NiAwIDEgMCAxMTIgMHoiXX0sbVNlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InJhaW5ib3ciLGljb246WzY0MCw1MTIsWzEyNzc1Ml0sImY3NWIiLCJNMzIwIDk2QzE3OC42IDk2IDY0IDIxMC42IDY0IDM1MmwwIDY0YzAgMTcuNy0xNC4zIDMyLTMyIDMyUzAgNDMzLjcgMCA0MTZsMC02NEMwIDE3NS4zIDE0My4zIDMyIDMyMCAzMlM2NDAgMTc1LjMgNjQwIDM1MmwwIDY0YzAgMTcuNy0xNC4zIDMyLTMyIDMycy0zMi0xNC4zLTMyLTMybDAtNjRDNTc2IDIxMC42IDQ2MS40IDk2IDMyMCA5NnptMCAxMTJjLTc5LjUgMC0xNDQgNjQuNS0xNDQgMTQ0bDAgNjRjMCAxNy43LTE0LjMgMzItMzIgMzJzLTMyLTE0LjMtMzItMzJsMC02NGMwLTExNC45IDkzLjEtMjA4IDIwOC0yMDhzMjA4IDkzLjEgMjA4IDIwOGwwIDY0YzAgMTcuNy0xNC4zIDMyLTMyIDMycy0zMi0xNC4zLTMyLTMybDAtNjRjMC03OS41LTY0LjUtMTQ0LTE0NC0xNDR6TTI4OCAzNTJsMCA2NGMwIDE3LjctMTQuMyAzMi0zMiAzMnMtMzItMTQuMy0zMi0zMmwwLTY0YzAtNTMgNDMtOTYgOTYtOTZzOTYgNDMgOTYgOTZsMCA2NGMwIDE3LjctMTQuMyAzMi0zMiAzMnMtMzItMTQuMy0zMi0zMmwwLTY0YzAtMTcuNy0xNC4zLTMyLTMyLTMycy0zMiAxNC4zLTMyIDMyeiJdfSxnU2U9e3ByZWZpeDoiZmFzIixpY29uTmFtZToic2l0ZW1hcCIsaWNvbjpbNTEyLDUxMixbXSwiZjBlOCIsIk0xOTIgNjRjMC0xNy43IDE0LjMtMzIgMzItMzJsNjQgMGMxNy43IDAgMzIgMTQuMyAzMiAzMmwwIDY0YzAgMTcuNy0xNC4zIDMyLTMyIDMybC04IDAgMCA2NCAxMjAgMGMzOS44IDAgNzIgMzIuMiA3MiA3MmwwIDU2IDggMGMxNy43IDAgMzIgMTQuMyAzMiAzMmwwIDY0YzAgMTcuNy0xNC4zIDMyLTMyIDMybC02NCAwYy0xNy43IDAtMzItMTQuMy0zMi0zMmwwLTY0YzAtMTcuNyAxNC4zLTMyIDMyLTMybDggMCAwLTU2YzAtMTMuMy0xMC43LTI0LTI0LTI0bC0xMjAgMCAwIDgwIDggMGMxNy43IDAgMzIgMTQuMyAzMiAzMmwwIDY0YzAgMTcuNy0xNC4zIDMyLTMyIDMybC02NCAwYy0xNy43IDAtMzItMTQuMy0zMi0zMmwwLTY0YzAtMTcuNyAxNC4zLTMyIDMyLTMybDggMCAwLTgwLTEyMCAwYy0xMy4zIDAtMjQgMTAuNy0yNCAyNGwwIDU2IDggMGMxNy43IDAgMzIgMTQuMyAzMiAzMmwwIDY0YzAgMTcuNy0xNC4zIDMyLTMyIDMybC02NCAwYy0xNy43IDAtMzItMTQuMy0zMi0zMmwwLTY0YzAtMTcuNyAxNC4zLTMyIDMyLTMybDggMCAwLTU2YzAtMzkuOCAzMi4yLTcyIDcyLTcybDEyMCAwIDAtNjQtOCAwYy0xNy43IDAtMzItMTQuMy0zMi0zMmwwLTY0eiJdfSxpTj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJmYWNlLWdyaW4tc3RhcnMiLGljb246WzUxMiw1MTIsWzEyOTMyMSwiZ3Jpbi1zdGFycyJdLCJmNTg3IiwiTTI1NiA1MTJjMTQxLjQgMCAyNTYtMTE0LjYgMjU2LTI1NiAwLTI0LjQtMy40LTQ4LjEtOS44LTcwLjUgMTguNi0zNi4xLTIuNy04My42LTQ2LjctOTAtNDYuOS01OC4zLTExOC45LTk1LjUtMTk5LjUtOTUuNVMxMDMuNCAzNy4zIDU2LjUgOTUuNWMtNDQgNi40LTY1LjMgNTMuOS00Ni43IDkwLTYuNCAyMi40LTkuOCA0Ni05LjggNzAuNSAwIDE0MS40IDExNC42IDI1NiAyNTYgMjU2ek0zODYuNyAzMjQuOWMxMS45LTMuNyAyMy45IDYuMyAxOS42IDE4LjEtMjIuNCA2MS4zLTgxLjMgMTA1LjEtMTUwLjMgMTA1LjFTMTI4LjEgNDA0LjIgMTA1LjcgMzQyLjljLTQuMy0xMS44IDcuNy0yMS44IDE5LjYtMTguMSAzOS4yIDEyLjIgODMuNyAxOS4xIDEzMC43IDE5LjFzOTEuNS02LjkgMTMwLjctMTkuMXptLTMxLjYtMjMxYzUuMy0xMC43IDIwLjUtMTAuNyAyNS44IDBsMjAuOSA0Mi40IDQ2LjcgNi44YzExLjggMS43IDE2LjUgMTYuMiA4IDI0LjVsLTMzLjggMzMgOCA0Ni42YzIgMTEuNy0xMC4zIDIwLjctMjAuOSAxNS4ybC00MS44LTIyLTQxLjggMjJjLTEwLjUgNS41LTIyLjktMy40LTIwLjktMTUuMmw4LTQ2LjYtMzMuOC0zM2MtOC41LTguMy0zLjgtMjIuOCA4LTI0LjVsNDYuNy02LjggMjAuOS00Mi40em0tMTk4LjIgMGwyMC45IDQyLjQgNDYuNyA2LjhjMTEuOCAxLjcgMTYuNSAxNi4yIDggMjQuNWwtMzMuOCAzMyA4IDQ2LjZjMiAxMS43LTEwLjMgMjAuNy0yMC45IDE1LjJsLTQxLjgtMjItNDEuOCAyMmMtMTAuNSA1LjUtMjIuOS0zLjQtMjAuOS0xNS4ybDgtNDYuNi0zMy44LTMzYy04LjUtOC4zLTMuOC0yMi44IDgtMjQuNWw0Ni43LTYuOCAyMC45LTQyLjRjNS4zLTEwLjcgMjAuNS0xMC43IDI1LjggMHoiXX0sYlNlPWlOLHJOPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InNvcnQtdXAiLGljb246WzM4NCw1MTIsWyJzb3J0LWFzYyJdLCJmMGRlIiwiTTMyIDIyNGMtMTIuOSAwLTI0LjYtNy44LTI5LjYtMTkuOFMuMiAxNzguNSA5LjQgMTY5LjRsMTYwLTE2MGMxMi41LTEyLjUgMzIuOC0xMi41IDQ1LjMgMGwxNjAgMTYwYzkuMiA5LjIgMTEuOSAyMi45IDYuOSAzNC45UzM2NC45IDIyNCAzNTIgMjI0TDMyIDIyNHoiXX0sdlNlPXJOLFFtPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImV5ZSIsaWNvbjpbNTc2LDUxMixbMTI4MDY1XSwiZjA2ZSIsIk0yODggMzJjLTgwLjggMC0xNDUuNSAzNi44LTE5Mi42IDgwLjYtNDYuOCA0My41LTc4LjEgOTUuNC05MyAxMzEuMS0zLjMgNy45LTMuMyAxNi43IDAgMjQuNiAxNC45IDM1LjcgNDYuMiA4Ny43IDkzIDEzMS4xIDQ3LjEgNDMuNyAxMTEuOCA4MC42IDE5Mi42IDgwLjZzMTQ1LjUtMzYuOCAxOTIuNi04MC42YzQ2LjgtNDMuNSA3OC4xLTk1LjQgOTMtMTMxLjEgMy4zLTcuOSAzLjMtMTYuNyAwLTI0LjYtMTQuOS0zNS43LTQ2LjItODcuNy05My0xMzEuMS00Ny4xLTQzLjctMTExLjgtODAuNi0xOTIuNi04MC42ek0xNDQgMjU2YTE0NCAxNDQgMCAxIDEgMjg4IDAgMTQ0IDE0NCAwIDEgMSAtMjg4IDB6bTE0NC02NGMwIDM1LjMtMjguNyA2NC02NCA2NC0xMS41IDAtMjIuMy0zLTMxLjctOC40LTEgMTAuOS0uMSAyMi4xIDIuOSAzMy4yIDEzLjcgNTEuMiA2Ni40IDgxLjYgMTE3LjYgNjcuOXM4MS42LTY2LjQgNjcuOS0xMTcuNmMtMTIuMi00NS43LTU1LjUtNzQuOC0xMDEuMS03MC44IDUuMyA5LjMgOC40IDIwLjEgOC40IDMxLjd6Il19LEptPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImNhcmV0LWxlZnQiLGljb246WzI1Niw1MTIsW10sImYwZDkiLCJNNy43IDIzNS44Yy0xMC4zIDEyLjYtOS41IDMxLjEgMi4yIDQyLjhsMTI4IDEyOGM5LjIgOS4yIDIyLjkgMTEuOSAzNC45IDYuOXMxOS44LTE2LjYgMTkuOC0yOS42bDAtMjU2YzAtMTIuOS03LjgtMjQuNi0xOS44LTI5LjZzLTI1LjctMi4yLTM0LjkgNi45bC0xMjggMTI4LTIuMiAyLjR6Il19LHNOPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImFwcGxlLXdob2xlIixpY29uOls0NDgsNTEyLFsxMjc4MjIsMTI3ODIzLCJhcHBsZS1hbHQiXSwiZjVkMSIsIk0yMjQgMTEyYy04LjggMC0xNi03LjItMTYtMTZsMC0xNmMwLTQ0LjIgMzUuOC04MCA4MC04MGwxNiAwYzguOCAwIDE2IDcuMiAxNiAxNmwwIDE2YzAgNDQuMi0zNS44IDgwLTgwIDgwbC0xNiAwek0wIDI4OGMwLTc2LjMgMzUuNy0xNjAgMTEyLTE2MCAyNy4zIDAgNTkuNyAxMC4zIDgyLjcgMTkuMyAxOC44IDcuMyAzOS45IDcuMyA1OC43IDAgMjIuOS04LjkgNTUuNC0xOS4zIDgyLjctMTkuMyA3Ni4zIDAgMTEyIDgzLjcgMTEyIDE2MCAwIDEyOC04MCAyMjQtMTYwIDIyNC0xNi41IDAtMzguMS02LjYtNTEuNS0xMS4zLTguMS0yLjgtMTYuOS0yLjgtMjUgMC0xMy40IDQuNy0zNSAxMS4zLTUxLjUgMTEuMy04MCAwLTE2MC05Ni0xNjAtMjI0eiJdfSx5U2U9c04sbk49e3ByZWZpeDoiZmFzIixpY29uTmFtZToic2Nyb2xsLXRvcmFoIixpY29uOls1NzYsNTEyLFsidG9yYWgiXSwiZjZhMCIsIk0wIDQ4QzAgMjEuNSAyMS41IDAgNDggMCA2OC45IDAgODYuNyAxMy40IDkzLjMgMzJsMzg5LjUgMGM2LjYtMTguNiAyNC40LTMyIDQ1LjMtMzIgMjYuNSAwIDQ4IDIxLjUgNDggNDhsMCA0MTZjMCAyNi41LTIxLjUgNDgtNDggNDgtMjAuOSAwLTM4LjctMTMuNC00NS4zLTMyTDkzLjMgNDgwYy02LjYgMTguNi0yNC40IDMyLTQ1LjMgMzItMjYuNSAwLTQ4LTIxLjUtNDgtNDhMMCA0OHpNMTc3LjkgMzAxYy0xLjIgMi0xLjkgNC4yLTEuOSA2LjYgMCA2LjkgNS42IDEyLjUgMTIuNSAxMi41bDU2LjkgMCAzMC41IDQ5LjJjMi42IDQuMiA3LjIgNi44IDEyLjIgNi44czkuNi0yLjYgMTIuMi02LjhsMzAuNS00OS4yIDU2LjkgMGM2LjkgMCAxMi41LTUuNiAxMi41LTEyLjUgMC0yLjMtLjYtNC42LTEuOS02LjZsLTI3LjgtNDUgMjcuOC00NWMxLjItMiAxLjktNC4yIDEuOS02LjYgMC02LjktNS42LTEyLjUtMTIuNS0xMi41bC01Ni45IDAtMzAuNS00OS4yYy0yLjYtNC4yLTcuMi02LjgtMTIuMi02LjhzLTkuNiAyLjYtMTIuMiA2LjhsLTMwLjUgNDkuMi01Ni45IDBjLTYuOSAwLTEyLjUgNS42LTEyLjUgMTIuNSAwIDIuMyAuNiA0LjYgMS45IDYuNmwyNy44IDQ1LTI3LjggNDV6Il19LHhTZT1uTix3U2U9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiaG91c2UtbG9jayIsaWNvbjpbNjQwLDUxMixbXSwiZTUxMCIsIk01MjggMjI0LjFjNDQuMiAwIDgwIDM1LjggODAgODBsMCA1MC42YzE4LjYgNi42IDMyIDI0LjQgMzIgNDUuM2wwIDk2YzAgMjYuNS0yMS41IDQ4LTQ4IDQ4bC0xMjggMGMtMjYuNSAwLTQ4LTIxLjUtNDgtNDhsMC05NmMwLTIwLjkgMTMuNC0zOC43IDMyLTQ1LjNsMC01MC42YzAtNDQuMiAzNS44LTgwIDgwLTgwek0yNjguNiA2LjVjMTIuMi05LjMgMjkuNy04LjcgNDEuMiAybDE4NSAxNzEuOEM0NDAuMiAxOTUgNDAwIDI0NC44IDQwMCAzMDRsMCAyNC40Yy0xOS42IDE3LjYtMzIgNDMuMS0zMiA3MS41bDAgOTZjMCA1LjUgLjUgMTAuOSAxLjMgMTYuMUwxNDQgNTEyYy0zNS4zIDAtNjQtMjguNy02NC02NGwwLTE3Ni0xNiAwYy0xMy4yIDAtMjUtOC4xLTI5LjgtMjAuM3MtMS42LTI2LjIgOC0zNS4xbDIyNC0yMDggMi40LTJ6TTI3MiAzMjBjLTI2LjUgMC00OCAyMS41LTQ4IDQ4bDAgOTYgOTYgMCAwLTg3LjNjMC0xNi41IDctMzEuNSAxOC40LTQyLjEtOC43LTktMjAuOS0xNC42LTM0LjQtMTQuNmwtMzIgMHptMjU2LTQ3LjljLTE3LjcgMC0zMiAxNC4zLTMyIDMybDAgNDcuOSA2NCAwIDAtNDcuOWMwLTE3LjctMTQuMy0zMi0zMi0zMnoiXX0sTVNlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImFycm93cy1sZWZ0LXJpZ2h0LXRvLWxpbmUiLGljb246WzU3Niw1MTIsW10sImU0YmEiLCJNMzIgOTZDMTQuMyA5NiAwIDExMC4zIDAgMTI4TDAgMzg0YzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJsMC0yNTZjMC0xNy43LTE0LjMtMzItMzItMzJ6TTM5MC42IDM0Mi42bDY0LTY0YzEyLjUtMTIuNSAxMi41LTMyLjggMC00NS4zbC02NC02NGMtMTIuNS0xMi41LTMyLjgtMTIuNS00NS4zIDBzLTEyLjUgMzIuOCAwIDQ1LjNsOS40IDkuNC0xMzMuNSAwIDkuNC05LjRjMTIuNS0xMi41IDEyLjUtMzIuOCAwLTQ1LjNzLTMyLjgtMTIuNS00NS4zIDBsLTY0IDY0Yy02IDYtOS40IDE0LjEtOS40IDIyLjZzMy40IDE2LjYgOS40IDIyLjZsNjQgNjRjMTIuNSAxMi41IDMyLjggMTIuNSA0NS4zIDBzMTIuNS0zMi44IDAtNDUuM2wtOS40LTkuNCAxMzMuNSAwLTkuNCA5LjRjLTEyLjUgMTIuNS0xMi41IDMyLjggMCA0NS4zczMyLjggMTIuNSA0NS4zIDB6TTU3NiAxMjhjMC0xNy43LTE0LjMtMzItMzItMzJzLTMyIDE0LjMtMzIgMzJsMCAyNTZjMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMmwwLTI1NnoiXX0sZjg9e3ByZWZpeDoiZmFzIixpY29uTmFtZToidHJhc2giLGljb246WzQ0OCw1MTIsW10sImYxZjgiLCJNMTM2LjcgNS45TDEyOCAzMiAzMiAzMkMxNC4zIDMyIDAgNDYuMyAwIDY0UzE0LjMgOTYgMzIgOTZsMzg0IDBjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJsLTk2IDAtOC43LTI2LjFDMzA2LjktNy4yIDI5NC43LTE2IDI4MC45LTE2TDE2Ny4xLTE2Yy0xMy44IDAtMjYgOC44LTMwLjQgMjEuOXpNNDE2IDE0NEwzMiAxNDQgNTMuMSA0NjcuMUM1NC43IDQ5Mi40IDc1LjcgNTEyIDEwMSA1MTJMMzQ3IDUxMmMyNS4zIDAgNDYuMy0xOS42IDQ3LjktNDQuOUw0MTYgMTQ0eiJdfSxvTj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJmYWNlLXNhZC10ZWFyIixpY29uOls1MTIsNTEyLFsxMjg1NDYsInNhZC10ZWFyIl0sImY1YjQiLCJNMCAyNTZhMjU2IDI1NiAwIDEgMSA1MTIgMCAyNTYgMjU2IDAgMSAxIC01MTIgMHptMjcxIDk4YzUuNS0xLjMgMTEuMS0yIDE3LTIgMjQuMSAwIDQ1LjQgMTEuOCA1OC41IDMwIDcuNyAxMC44IDIyLjcgMTMuMiAzMy41IDUuNXMxMy4yLTIyLjcgNS41LTMzLjVjLTIxLjctMzAuMi01Ny4zLTUwLTk3LjUtNTAtMTIuNSAwLTI0LjYgMS45LTM1LjkgNS41IDkuOCAxMi43IDE2LjUgMjcuOSAxOC45IDQ0LjZ6TTE3NiAyNDBhMzIgMzIgMCAxIDAgMC02NCAzMiAzMiAwIDEgMCAwIDY0em0xOTItMzJhMzIgMzIgMCAxIDAgLTY0IDAgMzIgMzIgMCAxIDAgNjQgMHpNMTg1LjQgMjkyLjhjLTIuNC0yLjktNS43LTQuOC05LjQtNC44cy03IDEuOS05LjQgNC44Yy02LjUgNy44LTEyLjYgMTYuMS0xOC4zIDI0LjYtOSAxMy40LTIwLjMgMzAuMi0yMC4zIDQ3LjQgMCAyOC4zIDIxLjUgNTEuMiA0OCA1MS4yczQ4LTIyLjkgNDgtNTEuMmMwLTE3LjItMTEuMi0zNC0yMC4zLTQ3LjQtNS43LTguNS0xMS45LTE2LjctMTguMy0yNC42eiJdfSx6U2U9b04sa1NlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImZheCIsaWNvbjpbNTEyLDUxMixbMTI4MjI0LDEyODQzOV0sImYxYWMiLCJNMTYwIDY0bDAgODAgNjQgMCAwLTgwIDE0Ni43IDAgNDUuMyA0NS4zIDAgMzQuNyA2NCAwIDAtMzQuN2MwLTE3LTYuNy0zMy4zLTE4LjctNDUuM0w0MTYgMTguN0M0MDQgNi43IDM4Ny43IDAgMzcwLjcgMEwyMjQgMGMtMzUuMyAwLTY0IDI4LjctNjQgNjR6TTMyIDEyOGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJMMCA0NDhjMCAxNy43IDE0LjMgMzIgMzIgMzJsNDggMGMxNy43IDAgMzItMTQuMyAzMi0zMmwwLTI4OGMwLTE3LjctMTQuMy0zMi0zMi0zMmwtNDggMHptNDQ4IDY0bC0zMjAgMCAwIDI1NmMwIDE3LjcgMTQuMyAzMiAzMiAzMmwyODggMGMxNy43IDAgMzItMTQuMyAzMi0zMmwwLTIyNGMwLTE3LjctMTQuMy0zMi0zMi0zMnpNMjI0IDI4OGEyNCAyNCAwIDEgMSA0OCAwIDI0IDI0IDAgMSAxIC00OCAwem0wIDk2YTI0IDI0IDAgMSAxIDQ4IDAgMjQgMjQgMCAxIDEgLTQ4IDB6TTMzNiAyNjRhMjQgMjQgMCAxIDEgMCA0OCAyNCAyNCAwIDEgMSAwLTQ4ek0zMTIgMzg0YTI0IDI0IDAgMSAxIDQ4IDAgMjQgMjQgMCAxIDEgLTQ4IDB6TTQyNCAyNjRhMjQgMjQgMCAxIDEgMCA0OCAyNCAyNCAwIDEgMSAwLTQ4ek00MDAgMzg0YTI0IDI0IDAgMSAxIDQ4IDAgMjQgMjQgMCAxIDEgLTQ4IDB6Il19LFNTZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJwZXJzb24tY2lyY2xlLXBsdXMiLGljb246WzY0MCw1MTIsW10sImU1NDEiLCJNMjgwIDI0YTU2IDU2IDAgMSAwIC0xMTIgMCA1NiA1NiAwIDEgMCAxMTIgMHptMjQgMjEyLjdMMzQxIDI4Ni42YzEyLjgtMTcuNSAyOC41LTMyLjcgNDYuMy00NWwtNTYuMi03NS43QzMwNiAxMzIgMjY2LjMgMTEyIDIyNCAxMTJzLTgyIDIwLTEwNy4yIDUzLjlsLTcwLjUgOTVjLTEwLjUgMTQuMi03LjYgMzQuMiA2LjYgNDQuOHMzNC4yIDcuNiA0NC44LTYuNkwxNDQgMjM2LjcgMTQ0IDUxMmMwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMybDAtMTYwYzAtOC44IDcuMi0xNiAxNi0xNnMxNiA3LjIgMTYgMTZsMCAxNjBjMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMmwwLTI3NS4zek00OTYgNTQ0YTE0NCAxNDQgMCAxIDAgMC0yODggMTQ0IDE0NCAwIDEgMCAwIDI4OHptMTYtMjA4bDAgNDggNDggMGM4LjggMCAxNiA3LjIgMTYgMTZzLTcuMiAxNi0xNiAxNmwtNDggMCAwIDQ4YzAgOC44LTcuMiAxNi0xNiAxNnMtMTYtNy4yLTE2LTE2bDAtNDgtNDggMGMtOC44IDAtMTYtNy4yLTE2LTE2czcuMi0xNiAxNi0xNmw0OCAwIDAtNDhjMC04LjggNy4yLTE2IDE2LTE2czE2IDcuMiAxNiAxNnoiXX0sQ1NlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImhhbXNhIixpY29uOls1MTIsNTEyLFtdLCJmNjY1IiwiTTM0LjYgMjg4TDgwIDI4OGM4LjggMCAxNi03LjIgMTYtMTZMOTYgNzJjMC0yMi4xIDE3LjktNDAgNDAtNDBzNDAgMTcuOSA0MCA0MGwwIDEzMmMwIDExIDkgMjAgMjAgMjBzMjAtOSAyMC0yMGwwLTE2NGMwLTIyLjEgMTcuOS00MCA0MC00MHM0MCAxNy45IDQwIDQwbDAgMTY0YzAgMTEgOSAyMCAyMCAyMHMyMC05IDIwLTIwbDAtMTMyYzAtMjIuMSAxNy45LTQwIDQwLTQwczQwIDE3LjkgNDAgNDBsMCAyMDBjMCA4LjggNy4yIDE2IDE2IDE2bDQ1LjQgMGMxOS4xIDAgMzQuNiAxNS41IDM0LjYgMzQuNiAwIDguNi0zLjIgMTYuOS05IDIzLjNMNDE2LjYgNDQxYy00MS4xIDQ1LjItOTkuNCA3MS0xNjAuNiA3MVMxMzYuNiA0ODYuMiA5NS40IDQ0MUw5IDM0NS45Yy01LjgtNi40LTktMTQuNy05LTIzLjMgMC0xOS4xIDE1LjUtMzQuNiAzNC42LTM0LjZ6TTI1NiAyODhjLTM4LjQgMC03Ni44IDM1LjgtOTAuNiA1MC4yLTMuNiAzLjctNS40IDguNy01LjQgMTMuOHMxLjggMTAuMSA1LjQgMTMuOEMxNzkuMiAzODAuMiAyMTcuNiA0MTYgMjU2IDQxNnM3Ni44LTM1LjggOTAuNi01MC4yYzMuNi0zLjcgNS40LTguNyA1LjQtMTMuOHMtMS44LTEwLjEtNS40LTEzLjhDMzMyLjggMzIzLjggMjk0LjQgMjg4IDI1NiAyODh6bTAgMzJhMzIgMzIgMCAxIDEgMCA2NCAzMiAzMiAwIDEgMSAwLTY0eiJdfSxfU2U9e3ByZWZpeDoiZmFzIixpY29uTmFtZToicGVyc29uLWNpcmNsZS1xdWVzdGlvbiIsaWNvbjpbNjQwLDUxMixbXSwiZTU0MiIsIk0yODAgMjRhNTYgNTYgMCAxIDAgLTExMiAwIDU2IDU2IDAgMSAwIDExMiAwem0yNCAyMTIuN0wzNDEgMjg2LjZjMTIuOC0xNy41IDI4LjUtMzIuNyA0Ni4zLTQ1bC01Ni4yLTc1LjdDMzA2IDEzMiAyNjYuMyAxMTIgMjI0IDExMnMtODIgMjAtMTA3LjIgNTMuOWwtNzAuNSA5NWMtMTAuNSAxNC4yLTcuNiAzNC4yIDYuNiA0NC44czM0LjIgNy42IDQ0LjgtNi42TDE0NCAyMzYuNyAxNDQgNTEyYzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJsMC0xNjBjMC04LjggNy4yLTE2IDE2LTE2czE2IDcuMiAxNiAxNmwwIDE2MGMwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMybDAtMjc1LjN6TTQ5NiA1NDRhMTQ0IDE0NCAwIDEgMCAwLTI4OCAxNDQgMTQ0IDAgMSAwIDAgMjg4em0wLTEwMGEyMCAyMCAwIDEgMSAwIDQwIDIwIDIwIDAgMSAxIDAtNDB6bTAtMTAwYy0xMS42IDAtMjEuMyA4LjItMjMuNSAxOS4yLTEuOCA4LjctMTAuMiAxNC4zLTE4LjkgMTIuNXMtMTQuMy0xMC4yLTEyLjUtMTguOWM1LjItMjUuNiAyNy44LTQ0LjggNTQuOS00NC44IDMwLjkgMCA1NiAyNS4xIDU2IDU2IDAgMTkuOC0xMS43IDM3LjgtMjkuOCA0NS45bC0xMC40IDQuNmMtMS4yIDcuNy03LjggMTMuNS0xNS44IDEzLjUtOC44IDAtMTYtNy4yLTE2LTE2IDAtMTEuMiA2LjYtMjEuMyAxNi44LTI1LjlsMTIuNC01LjVjNi42LTIuOSAxMC44LTkuNCAxMC44LTE2LjYgMC0xMy4zLTEwLjctMjQtMjQtMjR6Il19LFRTZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJjbGlwYm9hcmQtY2hlY2siLGljb246WzM4NCw1MTIsW10sImY0NmMiLCJNMjU2IDBjMjMuNyAwIDQ0LjQgMTIuOSA1NS40IDMybDguNiAwYzM1LjMgMCA2NCAyOC43IDY0IDY0bDAgMzUyYzAgMzUuMy0yOC43IDY0LTY0IDY0TDY0IDUxMmMtMzUuMyAwLTY0LTI4LjctNjQtNjRMMCA5NkMwIDYwLjcgMjguNyAzMiA2NCAzMmw4LjYgMEM4My42IDEyLjkgMTA0LjMgMCAxMjggMEwyNTYgMHptMjYuOSAyMTIuNmMtMTAuNy03LjgtMjUuNy01LjQtMzMuNSA1LjNsLTg1LjYgMTE3LjctMjYuNS0yNy40Yy05LjItOS41LTI0LjQtOS44LTMzLjktLjZzLTkuOCAyNC40LS42IDMzLjlsNDYuNCA0OGM0LjkgNS4xIDExLjggNy44IDE4LjkgNy4zczEzLjYtNC4xIDE3LjgtOS44TDI4OC4yIDI0Ni4xYzcuOC0xMC43IDUuNC0yNS43LTUuMy0zMy41ek0xMzYgNjRjLTEzLjMgMC0yNCAxMC43LTI0IDI0czEwLjcgMjQgMjQgMjRsMTEyIDBjMTMuMyAwIDI0LTEwLjcgMjQtMjRzLTEwLjctMjQtMjQtMjRMMTM2IDY0eiJdfSxsTj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJzaGFyZS1mcm9tLXNxdWFyZSIsaWNvbjpbNTc2LDUxMixbNjE1MDksInNoYXJlLXNxdWFyZSJdLCJmMTRkIiwiTTM4NC41IDI0bDAgNzItNjQgMGMtNzkuNSAwLTE0NCA2NC41LTE0NCAxNDQgMCA5My40IDgyLjggMTM0LjggMTAwLjYgMTQyLjYgMi4yIDEgNC42IDEuNCA3LjEgMS40bDIuNSAwYzkuOCAwIDE3LjgtOCAxNy44LTE3LjggMC04LjMtNS45LTE1LjUtMTIuOC0yMC4zLTguOS02LjItMTkuMi0xOC4yLTE5LjItNDAuNSAwLTQ1IDM2LjUtODEuNSA4MS41LTgxLjVsMzAuNSAwIDAgNzJjMCA5LjcgNS44IDE4LjUgMTQuOCAyMi4yczE5LjMgMS43IDI2LjItNS4ybDEzNi0xMzZjOS40LTkuNCA5LjQtMjQuNiAwLTMzLjlMNDI1LjUgN2MtNi45LTYuOS0xNy4yLTguOS0yNi4yLTUuMlMzODQuNSAxNC4zIDM4NC41IDI0em0tMjcyIDcyYy00NC4yIDAtODAgMzUuOC04MCA4MGwwIDI1NmMwIDQ0LjIgMzUuOCA4MCA4MCA4MGwyNTYgMGM0NC4yIDAgODAtMzUuOCA4MC04MGwwLTMyYzAtMTcuNy0xNC4zLTMyLTMyLTMycy0zMiAxNC4zLTMyIDMybDAgMzJjMCA4LjgtNy4yIDE2LTE2IDE2bC0yNTYgMGMtOC44IDAtMTYtNy4yLTE2LTE2bDAtMjU2YzAtOC44IDcuMi0xNiAxNi0xNmwxNiAwYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMybC0xNiAweiJdfSxMU2U9bE4sZWc9e3ByZWZpeDoiZmFzIixpY29uTmFtZToicmVjZWlwdCIsaWNvbjpbMzg0LDUxMixbMTI5NTM0XSwiZjU0MyIsIk0xNCAyLjJDMjIuNS0xLjcgMzIuNS0uMyAzOS42IDUuOEw4MCA0MC40IDEyMC40IDUuOGM5LTcuNyAyMi4zLTcuNyAzMS4yIDBMMTkyIDQwLjQgMjMyLjQgNS44YzktNy43IDIyLjItNy43IDMxLjIgMEwzMDQgNDAuNCAzNDQuNCA1LjhjNy4xLTYuMSAxNy4xLTcuNSAyNS42LTMuNlMzODQgMTQuNiAzODQgMjRsMCA0NjRjMCA5LjQtNS41IDE3LjktMTQgMjEuOHMtMTguNSAyLjUtMjUuNi0zLjZsLTQwLjQtMzQuNi00MC40IDM0LjZjLTkgNy43LTIyLjIgNy43LTMxLjIgMGwtNDAuNC0zNC42LTQwLjQgMzQuNmMtOSA3LjctMjIuMyA3LjctMzEuMiAwTDgwIDQ3MS42IDM5LjYgNTA2LjJjLTcuMSA2LjEtMTcuMSA3LjUtMjUuNiAzLjZTMCA0OTcuNCAwIDQ4OEwwIDI0QzAgMTQuNiA1LjUgNi4xIDE0IDIuMnpNMTA0IDEzNmMtMTMuMyAwLTI0IDEwLjctMjQgMjRzMTAuNyAyNCAyNCAyNGwxNzYgMGMxMy4zIDAgMjQtMTAuNyAyNC0yNHMtMTAuNy0yNC0yNC0yNGwtMTc2IDB6TTgwIDM1MmMwIDEzLjMgMTAuNyAyNCAyNCAyNGwxNzYgMGMxMy4zIDAgMjQtMTAuNyAyNC0yNHMtMTAuNy0yNC0yNC0yNGwtMTc2IDBjLTEzLjMgMC0yNCAxMC43LTI0IDI0em0yNC0xMjBjLTEzLjMgMC0yNCAxMC43LTI0IDI0czEwLjcgMjQgMjQgMjRsMTc2IDBjMTMuMyAwIDI0LTEwLjcgMjQtMjRzLTEwLjctMjQtMjQtMjRsLTE3NiAweiJdfSwkU2U9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZXF1YWxzIixpY29uOls0NDgsNTEyLFs2Mjc2NF0sIjNkIiwiTTMyIDEyOGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJzMTQuMyAzMiAzMiAzMmwzODQgMGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMkwzMiAxMjh6bTAgMTkyYy0xNy43IDAtMzIgMTQuMy0zMiAzMnMxNC4zIDMyIDMyIDMybDM4NCAwYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMyTDMyIDMyMHoiXX0sQVNlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImNoZXZyb24tdXAiLGljb246WzQ0OCw1MTIsW10sImYwNzciLCJNMjAxLjQgMTA1LjRjMTIuNS0xMi41IDMyLjgtMTIuNSA0NS4zIDBsMTkyIDE5MmMxMi41IDEyLjUgMTIuNSAzMi44IDAgNDUuM3MtMzIuOCAxMi41LTQ1LjMgMEwyMjQgMTczLjMgNTQuNiAzNDIuNmMtMTIuNSAxMi41LTMyLjggMTIuNS00NS4zIDBzLTEyLjUtMzIuOCAwLTQ1LjNsMTkyLTE5MnoiXX0sRFNlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InZpcnVzLXNsYXNoIixpY29uOls1NzYsNTEyLFtdLCJlMDc1IiwiTTQxLTI0LjljLTkuNC05LjQtMjQuNi05LjQtMzMuOSAwUy0yLjMtLjMgNyA5LjFsNTI4IDUyOGM5LjQgOS40IDI0LjYgOS40IDMzLjkgMHM5LjQtMjQuNiAwLTMzLjlsLTg4LjYtODguNmMxLjctMTIuMS0yLTI0LjgtMTEuMy0zNC0zMS4yLTMxLjItOS4xLTg0LjUgMzUtODQuNSAyMi4xIDAgNDAtMTcuOSA0MC00MHMtMTcuOS00MC00MC00MGMtNDQuMSAwLTY2LjEtNTMuMy0zNS04NC41IDE1LjYtMTUuNiAxNS42LTQwLjkgMC01Ni42cy00MC45LTE1LjYtNTYuNiAwYy0zMS4yIDMxLjItODQuNSA5LjEtODQuNS0zNSAwLTIyLjEtMTcuOS00MC00MC00MHMtNDAgMTcuOS00MCA0MGMwIDQ0LjEtNTMuMyA2Ni4xLTg0LjUgMzUtOS4zLTkuMy0yMi0xMy0zNC0xMS4zTDQxLTI0Ljl6TTcyIDIxNmMtMjIuMSAwLTQwIDE3LjktNDAgNDBzMTcuOSA0MCA0MCA0MGM0NC4xIDAgNjYuMSA1My4zIDM1IDg0LjUtMTUuNiAxNS42LTE1LjYgNDAuOSAwIDU2LjZzNDAuOSAxNS42IDU2LjYgMGMzMS4yLTMxLjIgODQuNS05LjEgODQuNSAzNSAwIDIyLjEgMTcuOSA0MCA0MCA0MHM0MC0xNy45IDQwLTQwYzAtMjEuNCAxMi42LTM3LjYgMjkuMS00NS4xbC0yNDAtMjQwQzEwOS42IDIwMy40IDkzLjQgMjE2IDcyIDIxNnoiXX0sRVNlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InNsYXNoIixpY29uOls1NzYsNTEyLFtdLCJmNzE1IiwiTTctMjVjOS40LTkuNCAyNC42LTkuNCAzMy45IDBMNTY5IDUwM2M5LjQgOS40IDkuNCAyNC42IDAgMzMuOXMtMjQuNiA5LjQtMzMuOSAwTDcgOUMtMi4zLS40LTIuMy0xNS42IDctMjV6Il19LFBTZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJleHBhbmQiLGljb246WzQ0OCw1MTIsW10sImYwNjUiLCJNMzIgMzJDMTQuMyAzMiAwIDQ2LjMgMCA2NGwwIDk2YzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJsMC02NCA2NCAwYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMyTDMyIDMyek02NCAzNTJjMC0xNy43LTE0LjMtMzItMzItMzJTMCAzMzQuMyAwIDM1MmwwIDk2YzAgMTcuNyAxNC4zIDMyIDMyIDMybDk2IDBjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJsLTY0IDAgMC02NHpNMzIwIDMyYy0xNy43IDAtMzIgMTQuMy0zMiAzMnMxNC4zIDMyIDMyIDMybDY0IDAgMCA2NGMwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMybDAtOTZjMC0xNy43LTE0LjMtMzItMzItMzJsLTk2IDB6TTQ0OCAzNTJjMC0xNy43LTE0LjMtMzItMzItMzJzLTMyIDE0LjMtMzIgMzJsMCA2NC02NCAwYy0xNy43IDAtMzIgMTQuMy0zMiAzMnMxNC4zIDMyIDMyIDMybDk2IDBjMTcuNyAwIDMyLTE0LjMgMzItMzJsMC05NnoiXX0sY049e3ByZWZpeDoiZmFzIixpY29uTmFtZToibm90ZS1zdGlja3kiLGljb246WzQ0OCw1MTIsWzYyMDI2LCJzdGlja3ktbm90ZSJdLCJmMjQ5IiwiTTY0IDQ4MGMtMzUuMyAwLTY0LTI4LjctNjQtNjRMMCA5NkMwIDYwLjcgMjguNyAzMiA2NCAzMmwzMjAgMGMzNS4zIDAgNjQgMjguNyA2NCA2NGwwIDIxMy41YzAgMTctNi43IDMzLjMtMTguNyA0NS4zTDMyMi43IDQ2MS4zYy0xMiAxMi0yOC4zIDE4LjctNDUuMyAxOC43TDY0IDQ4MHpNMzg5LjUgMzA0TDI5NiAzMDRjLTEzLjMgMC0yNCAxMC43LTI0IDI0bDAgOTMuNSAxMTcuNS0xMTcuNXoiXX0sSVNlPWNOLGROPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InRhYmxlLWNvbHVtbnMiLGljb246WzQ0OCw1MTIsWyJjb2x1bW5zIl0sImYwZGIiLCJNMCA5NkMwIDYwLjcgMjguNyAzMiA2NCAzMmwzMjAgMGMzNS4zIDAgNjQgMjguNyA2NCA2NGwwIDMyMGMwIDM1LjMtMjguNyA2NC02NCA2NEw2NCA0ODBjLTM1LjMgMC02NC0yOC43LTY0LTY0TDAgOTZ6bTY0IDY0bDAgMjU2IDEyOCAwIDAtMjU2LTEyOCAwem0zMjAgMGwtMTI4IDAgMCAyNTYgMTI4IDAgMC0yNTZ6Il19LE5TZT1kTixGU2U9e3ByZWZpeDoiZmFzIixpY29uTmFtZToicGVyc29uLXNoZWx0ZXIiLGljb246WzUxMiw1MTIsW10sImU1NGYiLCJNMjcxLjkgNC4yYy05LjgtNS42LTIxLjktNS42LTMxLjggMGwtMjI0IDEyOEM2LjIgMTM3LjkgMCAxNDguNSAwIDE2MEwwIDQ4MGMwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMyTDY0IDE3OC42IDI1NiA2OC45IDQ0OCAxNzguNiA0NDggNDgwYzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJsMC0zMjBjMC0xMS41LTYuMi0yMi4xLTE2LjEtMjcuOGwtMjI0LTEyOHpNMjU2IDIwOGE0MCA0MCAwIDEgMCAwLTgwIDQwIDQwIDAgMSAwIDAgODB6bS04IDE5MmwxNiAwIDAgODhjMCAxMy4zIDEwLjcgMjQgMjQgMjRzMjQtMTAuNyAyNC0yNGwwLTE3NC41IDI2LjkgNDkuOWM2LjMgMTEuNyAyMC44IDE2IDMyLjUgOS44czE2LTIwLjggOS44LTMyLjVsLTMzLjItNjEuN0MzMjkuNyAyNDUuMSAyOTQuNCAyMjQgMjU2IDIyNHMtNzMuNyAyMS4xLTkxLjkgNTQuOWwtMzMuMiA2MS43Yy02LjMgMTEuNy0xLjkgMjYuMiA5LjggMzIuNXMyNi4yIDEuOSAzMi41LTkuOEwyMDAgMzEzLjUgMjAwIDQ4OGMwIDEzLjMgMTAuNyAyNCAyNCAyNHMyNC0xMC43IDI0LTI0bDAtODh6Il19LE9TZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJjaXJjbGUtbm90Y2giLGljb246WzUxMiw1MTIsW10sImYxY2UiLCJNMjIyLjcgMzIuMWM1IDE2LjktNC42IDM0LjgtMjEuNSAzOS44LTc5LjMgMjMuNi0xMzcuMSA5Ny4xLTEzNy4xIDE4NC4xIDAgMTA2IDg2IDE5MiAxOTIgMTkyczE5Mi04NiAxOTItMTkyYzAtODYuOS01Ny44LTE2MC40LTEzNy4xLTE4NC4xLTE2LjktNS0yNi42LTIyLjktMjEuNS0zOS44czIyLjktMjYuNiAzOS44LTIxLjVDNDM0LjkgNDIuMSA1MTIgMTQwIDUxMiAyNTYgNTEyIDM5Ny40IDM5Ny40IDUxMiAyNTYgNTEyUzAgMzk3LjQgMCAyNTZjMC0xMTYgNzcuMS0yMTMuOSAxODIuOS0yNDUuNCAxNi45LTUgMzQuOCA0LjYgMzkuOCAyMS41eiJdfSxSU2U9e3ByZWZpeDoiZmFzIixpY29uTmFtZToid2F0ZXIiLGljb246WzUxMiw1MTIsW10sImY3NzMiLCJNNDEwLjYgMTI0LjFjMjAuNyAxNS42IDQ2IDMwLjcgNzQuMiAzNC41IDEzLjEgMS44IDI1LjItNy41IDI3LTIwLjZzLTcuNS0yNS4yLTIwLjYtMjdjLTE1LjktMi4xLTMzLjItMTEuMy01MS43LTI1LjItMzguNC0yOS05MC41LTI5LTEyOSAwLTI0IDE4LjEtNDAuNyAyNi4zLTU0LjUgMjYuM3MtMzAuNS04LjItNTQuNS0yNi4zYy0zOC40LTI5LTkwLjUtMjktMTI5IDAtMTguNSAxMy45LTM1LjggMjMuMS01MS43IDI1LjItMTMuMSAxLjgtMjIuNCAxMy44LTIwLjYgMjdzMTMuOCAyMi40IDI3IDIwLjZjMjguMi0zLjggNTMuNi0xOC45IDc0LjItMzQuNSAyMS4zLTE2LjEgNDkuOS0xNi4xIDcxLjIgMCAyNC4yIDE4LjMgNTIuMyAzNS45IDgzLjQgMzUuOXM1OS4xLTE3LjcgODMuNC0zNS45YzIxLjMtMTYuMSA0OS45LTE2LjEgNzEuMiAwem0wIDE0NGMyMC43IDE1LjYgNDYgMzAuNyA3NC4yIDM0LjUgMTMuMSAxLjggMjUuMi03LjUgMjctMjAuNnMtNy41LTI1LjItMjAuNi0yN2MtMTUuOS0yLjEtMzMuMi0xMS4zLTUxLjctMjUuMi0zOC40LTI5LTkwLjUtMjktMTI5IDAtMjQgMTguMS00MC43IDI2LjMtNTQuNSAyNi4zcy0zMC41LTguMi01NC41LTI2LjNjLTM4LjQtMjktOTAuNS0yOS0xMjkgMC0xOC41IDEzLjktMzUuOCAyMy4xLTUxLjcgMjUuMi0xMy4xIDEuNy0yMi40IDEzLjgtMjAuNiAyN3MxMy44IDIyLjQgMjcgMjAuNmMyOC4yLTMuOCA1My42LTE4LjkgNzQuMi0zNC41IDIxLjMtMTYuMSA0OS45LTE2LjEgNzEuMiAwIDI0LjIgMTguMyA1Mi4zIDM1LjkgODMuNCAzNS45czU5LjEtMTcuNyA4My40LTM1LjljMjEuMy0xNi4xIDQ5LjktMTYuMSA3MS4yIDB6bS03MS4yIDE0NGMyMS4zLTE2LjEgNDkuOS0xNi4xIDcxLjIgMCAyMC43IDE1LjYgNDYgMzAuNyA3NC4yIDM0LjUgMTMuMSAxLjggMjUuMi03LjUgMjctMjAuNnMtNy41LTI1LjItMjAuNi0yN2MtMTUuOS0yLjEtMzMuMi0xMS4zLTUxLjctMjUuMi0zOC40LTI5LTkwLjUtMjktMTI5IDAtMjQgMTguMS00MC43IDI2LjMtNTQuNSAyNi4zcy0zMC41LTguMi01NC41LTI2LjNjLTM4LjQtMjktOTAuNS0yOS0xMjkgMC0xOC41IDEzLjktMzUuOCAyMy4xLTUxLjcgMjUuMi0xMy4xIDEuOC0yMi40IDEzLjgtMjAuNiAyN3MxMy44IDIyLjQgMjcgMjAuNmMyOC4yLTMuOCA1My42LTE4LjkgNzQuMi0zNC41IDIxLjMtMTYuMSA0OS45LTE2LjEgNzEuMiAwIDI0LjIgMTguMyA1Mi4zIDM1LjkgODMuNCAzNS45czU5LjEtMTcuNyA4My40LTM1Ljl6Il19LGhOPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImRlbGV0ZS1sZWZ0IixpY29uOls2NDAsNTEyLFs5MDAzLCJiYWNrc3BhY2UiXSwiZjU1YSIsIk01NzYgMTI4YzAtMzUuMy0yOC43LTY0LTY0LTY0TDIwNS4zIDY0Yy0xNyAwLTMzLjMgNi43LTQ1LjMgMTguN0w5LjQgMjMzLjRjLTYgNi05LjQgMTQuMS05LjQgMjIuNnMzLjQgMTYuNiA5LjQgMjIuNkwxNjAgNDI5LjNjMTIgMTIgMjguMyAxOC43IDQ1LjMgMTguN0w1MTIgNDQ4YzM1LjMgMCA2NC0yOC43IDY0LTY0bDAtMjU2ek0yODQuMSAxODguMWM5LjQtOS40IDI0LjYtOS40IDMzLjkgMGwzMy45IDMzLjkgMzMuOS0zMy45YzkuNC05LjQgMjQuNi05LjQgMzMuOSAwczkuNCAyNC42IDAgMzMuOWwtMzMuOSAzMy45IDMzLjkgMzMuOWM5LjQgOS40IDkuNCAyNC42IDAgMzMuOXMtMjQuNiA5LjQtMzMuOSAwbC0zMy45LTMzLjktMzMuOSAzMy45Yy05LjQgOS40LTI0LjYgOS40LTMzLjkgMHMtOS40LTI0LjYgMC0zMy45bDMzLjktMzMuOS0zMy45LTMzLjljLTkuNC05LjQtOS40LTI0LjYgMC0zMy45eiJdfSxCU2U9aE4sbm09e3ByZWZpeDoiZmFzIixpY29uTmFtZToiYnJvb20tYmFsbCIsaWNvbjpbNTc2LDUxMixbInF1aWRkaXRjaCIsInF1aWRkaXRjaC1icm9vbS1iYWxsIl0sImY0NTgiLCJNNDk2IDU0NGE4MCA4MCAwIDEgMSAwLTE2MCA4MCA4MCAwIDEgMSAwIDE2MHpNMTA2LjggMjc3LjJjMzAuNi0zMC42IDczLjEtNDUuOSAxMTUuOC00Mi4yTDM0MSAzNTMuM2MzLjcgNDIuOC0xMS42IDg1LjItNDIuMiAxMTUuOS0yNy40IDI3LjQtNjQuNiA0Mi44LTEwMy4zIDQyLjhMMjIuMSA1MTJjLTEyLjIgMC0yMi4xLTkuOS0yMi4xLTIyLjEgMC02LjMgMi43LTEyLjMgNy4zLTE2LjVMMTMzLjcgMzU5LjdjNC4yLTMuNy0uNC0xMC40LTUuNC03LjlMNzcuMiAzNzcuNGMtNi4xIDMtMTMuMi0xLjQtMTMuMi04LjIgMC0zMS41IDEyLjUtNjEuOCAzNC44LTg0bDgtOHptNDE3LTI3MGMxMi42LTEwLjMgMzEuMS05LjUgNDIuOCAyLjJzMTIuNCAzMC4yIDIuMiA0Mi44bC0yLjIgMi40LTE5MiAxOTIgMzQuOCAzNC43YzQuMiA0LjIgNi42IDEwIDYuNiAxNiAwIDEyLjUtMTAuMSAyMi42LTIyLjYgMjIuNmwtMjkuMSAwLTEwOC4zLTEwOC4zIDAtMjkuMWMwLTEyLjUgMTAuMS0yMi42IDIyLjYtMjIuNiA2IDAgMTEuOCAyLjQgMTYgNi42bDM0LjggMzQuNyAxOTItMTkyIDIuNC0yLjJ6Il19LEhTZT1ubSxxU2U9bm0sVlNlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImoiLGljb246WzMyMCw1MTIsWzEwNl0sIjRhIiwiTTI4OCAzMmMxNy43IDAgMzIgMTQuMyAzMiAzMmwwIDI1NmMwIDg4LjQtNzEuNiAxNjAtMTYwIDE2MFMwIDQwOC40IDAgMzIwbDAtMzJjMC0xNy43IDE0LjMtMzIgMzItMzJzMzIgMTQuMyAzMiAzMmwwIDMyYzAgNTMgNDMgOTYgOTYgOTZzOTYtNDMgOTYtOTZsMC0yNTZjMC0xNy43IDE0LjMtMzIgMzItMzJ6Il19LHBOPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InNodXR0bGUtc3BhY2UiLGljb246WzU3Niw1MTIsWyJzcGFjZS1zaHV0dGxlIl0sImYxOTciLCJNMCAzNjhsMCA2NGMwIDI2LjUgMjEuNSA0OCA0OCA0OGw1MCAwYzQwLjYgMCA4MC40LTExIDExNS4yLTMxLjlsMTMzLjUtODAuMS05My4zIDAtNjQuOSAzOC45Yy0xNCA4LjQtMjguOSAxNC43LTQ0LjUgMTlsMC02Ni40YzkuNy01LjYgMTcuOC0xMy43IDIzLjQtMjMuNGwxOTguOCAwYzY3LjEgMCAxMjcuOC0yMC42IDE3MC4zLTcwLjYgNC42LTUuNCA0LjYtMTMuMyAwLTE4LjgtNDIuNS01MC4xLTEwMy4yLTcwLjYtMTcwLjMtNzAuNmwtMTk4LjggMGMtNS42LTkuNy0xMy43LTE3LjgtMjMuNC0yMy40bDAtNjYuNGMxNS42IDQuMiAzMC42IDEwLjYgNDQuNSAxOWw2NC45IDM4LjkgOTMuMyAwLTEzMy41LTgwLjFDMTc4LjQgNDMgMTM4LjYgMzIgOTggMzJMNDggMzJDMjEuNSAzMiAwIDUzLjUgMCA4MEwwIDM2OHptOTYgMGwwIDY0LTQ4IDAgMC02NCA0OCAwek05NiA4MGwwIDY0LTQ4IDAgMC02NCA0OCAwek00MTYgMjI0YzguOCAwIDE2IDcuMiAxNiAxNmwwIDMyYzAgOC44LTcuMiAxNi0xNiAxNnMtMTYtNy4yLTE2LTE2bDAtMzJjMC04LjggNy4yLTE2IDE2LTE2eiJdfSxqU2U9cE4sVVNlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6Inlpbi15YW5nIixpY29uOls1MTIsNTEyLFs5Nzc1XSwiZjZhZCIsIk0yMjQgMTYwYTMyIDMyIDAgMSAxIDY0IDAgMzIgMzIgMCAxIDEgLTY0IDB6bTMyIDM1MmEyNTYgMjU2IDAgMSAwIDAtNTEyIDI1NiAyNTYgMCAxIDAgMCA1MTJ6bTAtNDQ4YzUzIDAgOTYgNDMgOTYgOTZzLTQzIDk2LTk2IDk2LTk2IDQzLTk2IDk2IDQzIDk2IDk2IDk2QzE1MCA0NDggNjQgMzYyIDY0IDI1NlMxNTAgNjQgMjU2IDY0ek0yMjQgMzUyYTMyIDMyIDAgMSAxIDY0IDAgMzIgMzIgMCAxIDEgLTY0IDB6Il19LFdTZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJzdG9wIixpY29uOls0NDgsNTEyLFs5MjA5XSwiZjA0ZCIsIk02NCAzMmwzMjAgMGMzNS4zIDAgNjQgMjguNyA2NCA2NGwwIDMyMGMwIDM1LjMtMjguNyA2NC02NCA2NEw2NCA0ODBjLTM1LjMgMC02NC0yOC43LTY0LTY0TDAgOTZDMCA2MC43IDI4LjcgMzIgNjQgMzJ6Il19LEdTZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJ0cm93ZWwiLGljb246WzU3Niw1MTIsW10sImU1ODkiLCJNNDA3LjkgMTgxLjRMMjc3LjMgMzEyIDM0Mi42IDM3Ny40YzcuOSA3LjkgMTEuMSAxOS40IDguNCAzMC4zcy0xMC44IDE5LjYtMjEuNSAyMi45bC0yNTYgODBjLTExLjQgMy41LTIzLjggLjUtMzIuMi03LjlzLTExLjUtMjAuOC03LjktMzIuMmw4MC0yNTZjMy4zLTEwLjcgMTItMTguOSAyMi45LTIxLjVzMjIuNCAuNSAzMC4zIDguNEwyMzIgMjY2LjcgMzYyLjYgMTM2LjFjLTE0LjMtMTQuNi0xNC4yLTM4IC4zLTUyLjVsOTUuNC05NS40YzI2LjktMjYuOSA3MC41LTI2LjkgOTcuNSAwczI2LjkgNzAuNSAwIDk3LjVsLTk1LjQgOTUuNGMtMTQuNSAxNC41LTM3LjkgMTQuNi01Mi41IC4zeiJdfSx1Tj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJoYW5kLWJhY2stZmlzdCIsaWNvbjpbMzg0LDUxMixbImhhbmQtcm9jayJdLCJmMjU1IiwiTTcuNCAyNTMuNkMyLjYgMjQ1LjkgMCAyMzcuMSAwIDIyOGwwLTM2YzAtMjYuNSAyMS41LTQ4IDQ4LTQ4bDE2IDAgMC04MGMwLTI2LjUgMjEuNS00OCA0OC00OCAxNy4zIDAgMzIuNCA5LjEgNDAuOSAyMi44IDQuMy0yMi4xIDIzLjgtMzguOCA0Ny4xLTM4LjggMjMuNCAwIDQyLjkgMTYuOCA0Ny4xIDM4LjkgNy4zLTQuNCAxNS44LTYuOSAyNC45LTYuOSAyMi4xIDAgNDAuOCAxNSA0Ni4zIDM1LjQgNS41LTIuMiAxMS40LTMuNCAxNy43LTMuNCAyNi41IDAgNDggMjEuNSA0OCA0OGwwIDk2LjljMCA5LjktMi4zIDE5LjctNi44IDI4LjZsLTM5LjYgNzkuMWMtMTAuOCAyMS43LTMzIDM1LjQtNTcuMiAzNS40TDk2IDM1MmMtMTYuNSAwLTMxLjgtOC40LTQwLjYtMjIuNGwtNDgtNzZ6TTMyIDQ4MGwwLTQ4YzAtMTcuNyAxNC4zLTMyIDMyLTMybDI1NiAwYzE3LjcgMCAzMiAxNC4zIDMyIDMybDAgNDhjMCAxNy43LTE0LjMgMzItMzIgMzJMNjQgNTEyYy0xNy43IDAtMzItMTQuMy0zMi0zMnoiXX0sWVNlPXVOLFpTZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJ0ZW1wZXJhdHVyZS1oaWdoIixpY29uOls1MTIsNTEyLFtdLCJmNzY5IiwiTTk2IDk2YzAtNTMgNDMtOTYgOTYtOTZzOTYgNDMgOTYgOTZsMCAxNjQuN2MyOS41IDI2LjQgNDggNjQuNyA0OCAxMDcuMyAwIDc5LjUtNjQuNSAxNDQtMTQ0IDE0NFM0OCA0NDcuNSA0OCAzNjhjMC00Mi42IDE4LjUtODEgNDgtMTA3LjNMOTYgOTZ6bTk2IDMzNmMzNS4zIDAgNjQtMjguNyA2NC02NCAwLTI2LjktMTYuNS00OS45LTQwLTU5LjNMMjE2IDk2YzAtMTMuMy0xMC43LTI0LTI0LTI0cy0yNCAxMC43LTI0IDI0bDAgMjEyLjdjLTIzLjUgOS41LTQwIDMyLjUtNDAgNTkuMyAwIDM1LjMgMjguNyA2NCA2NCA2NHpNNDY0IDgwYTMyIDMyIDAgMSAwIC02NCAwIDMyIDMyIDAgMSAwIDY0IDB6TTM1MiA4MGE4MCA4MCAwIDEgMSAxNjAgMCA4MCA4MCAwIDEgMSAtMTYwIDB6Il19LFhTZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJncmVhdGVyLXRoYW4iLGljb246WzUxMiw1MTIsWzYyNzY5XSwiM2UiLCJNMzQuOSA1MC42Yy03LjQgMTYtLjQgMzUuMSAxNS42IDQyLjVMNDAzLjYgMjU2IDUwLjYgNDE5Yy0xNiA3LjQtMjMuMSAyNi40LTE1LjYgNDIuNXMyNi40IDIzIDQyLjUgMTUuNmw0MTYtMTkyYzExLjMtNS4yIDE4LjYtMTYuNiAxOC42LTI5LjFzLTcuMy0yMy44LTE4LjYtMjkuMUw3Ny40IDM1Yy0xNi03LjQtMzUuMS0uNC00Mi41IDE1LjZ6Il19LEtTZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJjcnV0Y2giLGljb246WzUxMiw1MTIsW10sImY3ZjciLCJNMjk3LjQgOS40YzEyLjUtMTIuNSAzMi44LTEyLjUgNDUuMyAwbDE2MCAxNjBjMTIuNSAxMi41IDEyLjUgMzIuOCAwIDQ1LjNzLTMyLjggMTIuNS00NS4zIDBsLTEuNC0xLjQtMTU4LjYgMTU4LjZjLTE4IDE4LTQyLjQgMjguMS02Ny45IDI4LjFsLTU5IDBjLTguNSAwLTE2LjYgMy40LTIyLjYgOS40LTYxLjcgNjEuNy05Mi44IDkyLjgtOTMuMyA5My4zLTEyLjUgMTIuNS0zMi44IDEyLjUtNDUuMyAwcy0xMi41LTMyLjggMC00NS4zbDE2LTE2IDAgMCA3Ny4zLTc3LjNjNi02IDkuNC0xNC4xIDkuNC0yMi42bDAtNTljMC0yNS41IDEwLjEtNDkuOSAyOC4xLTY3LjlMMjk4LjcgNTYgMjk3LjQgNTQuNmMtMTIuNS0xMi41LTEyLjUtMzIuOCAwLTQ1LjN6TTM0NCAxMDEuM0wyNjEuMyAxODQgMzI4IDI1MC43IDQxMC43IDE2OCAzNDQgMTAxLjN6bS0xMjggMTI4bC0zMC42IDMwLjZjLTYgNi05LjQgMTQuMS05LjQgMjIuNmwwIDUzLjUgNTMuNSAwYzguNSAwIDE2LjYtMy40IDIyLjYtOS40TDI4Mi43IDI5NiAyMTYgMjI5LjN6Il19LGZOPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InNlcHRhZ29uIixpY29uOls1NzYsNTEyLFsiaGVwdGFnb24iXSwiZTgyMCIsIk0yNjcuNC0zMS41YzE1LjktNS41IDMzLjUtNC42IDQ4LjggMi43bDE3Mi40IDgzIDYuMyAzLjVjMTQuMiA5IDI0LjUgMjMuMyAyOC4zIDM5LjlsNDIuNiAxODYuNSAxLjIgNy4yYzEuNiAxNC4zLTEuNyAyOC44LTkuNCA0MS4xbC00LjIgNS45LTExOS4zIDE0OS42Yy0xMi4xIDE1LjItMzAuNiAyNC4xLTUwIDI0LjFsLTE5MS4zIDBjLTE5LjUgMC0zNy45LTguOS01MC0yNC4xTDIzLjUgMzM4LjRjLTEyLjEtMTUuMi0xNi43LTM1LjItMTIuMy01NC4ybDQyLjYtMTg2LjUgMi03YzUuNi0xNS45IDE3LjItMjkgMzIuNi0zNi40bDE3Mi40LTgzIDYuNy0yLjd6Il19LFFTZT1mTixKU2U9e3ByZWZpeDoiZmFzIixpY29uTmFtZToic3RyZWV0LXZpZXciLGljb246WzUxMiw1MTIsW10sImYyMWQiLCJNMjU2IDBhNjQgNjQgMCAxIDEgMCAxMjggNjQgNjQgMCAxIDEgMC0xMjh6TTIyNCAxNjBsNjQgMGMzNS4zIDAgNjQgMjguNyA2NCA2NGwwIDQ4YzAgMTcuNy0xNC4zIDMyLTMyIDMybC0xLjggMC0xMS4xIDk5LjVjLTEuOCAxNi4yLTE1LjUgMjguNS0zMS44IDI4LjVsLTM4LjcgMGMtMTYuMyAwLTMwLTEyLjMtMzEuOC0yOC41bC0xMS4xLTk5LjUtMS44IDBjLTE3LjcgMC0zMi0xNC4zLTMyLTMybDAtNDhjMC0zNS4zIDI4LjctNjQgNjQtNjR6TTQxMi40IDQwMC4yYy0xNi4xLTQuMi0zNC44LTcuNi01NS40LTEwLjJsNS4zLTQ3LjdjMjIuNyAyLjkgNDMuNyA2LjcgNjIuMSAxMS41IDIyLjQgNS44IDQyLjYgMTMuMyA1Ny44IDIzLjMgMTQuNyA5LjYgMjkuOCAyNC45IDI5LjggNDdzLTE1LjEgMzcuNC0yOS44IDQ3Yy0xNS4yIDkuOS0zNS41IDE3LjUtNTcuOCAyMy4zLTQ1LjEgMTEuNy0xMDUuMyAxNy44LTE2OC40IDE3LjhzLTEyMy4zLTYuMS0xNjguNC0xNy44QzY1LjIgNDg4LjQgNDUgNDgwLjkgMjkuOCA0NzEgMTUuMSA0NjEuNCAwIDQ0Ni4xIDAgNDI0czE1LjEtMzcuNCAyOS44LTQ3YzE1LjItOS45IDM1LjUtMTcuNSA1Ny44LTIzLjMgMTguNS00LjggMzkuNS04LjYgNjIuMS0xMS41TDE1NSAzOTBjLTIwLjYgMi42LTM5LjMgNi4xLTU1LjQgMTAuMi01Ni42IDE0LjYtNTYuNiAzMi45IDAgNDcuNSAzOS45IDEwLjMgOTUuOCAxNi4yIDE1Ni40IDE2LjJzMTE2LjUtNS45IDE1Ni40LTE2LjJjNTYuNi0xNC42IDU2LjYtMzIuOSAwLTQ3LjV6Il19LGVDZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJ3YXZlLXNxdWFyZSIsaWNvbjpbNTEyLDUxMixbXSwiZjgzZSIsIk02NCA5NmMwLTE3LjcgMTQuMy0zMiAzMi0zMmwxNjAgMGMxNy43IDAgMzIgMTQuMyAzMiAzMmwwIDI4OCA5NiAwIDAtMTI4YzAtMTcuNyAxNC4zLTMyIDMyLTMybDY0IDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJsLTMyIDAgMCAxMjhjMCAxNy43LTE0LjMgMzItMzIgMzJsLTE2MCAwYy0xNy43IDAtMzItMTQuMy0zMi0zMmwwLTI4OC05NiAwIDAgMTI4YzAgMTcuNy0xNC4zIDMyLTMyIDMybC02NCAwYy0xNy43IDAtMzItMTQuMy0zMi0zMnMxNC4zLTMyIDMyLTMybDMyIDAgMC0xMjh6Il19LHRDZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJhbmdsZS1sZWZ0IixpY29uOlsyNTYsNTEyLFs4MjQ5XSwiZjEwNCIsIk05LjQgMjMzLjRjLTEyLjUgMTIuNS0xMi41IDMyLjggMCA0NS4zbDE2MCAxNjBjMTIuNSAxMi41IDMyLjggMTIuNSA0NS4zIDBzMTIuNS0zMi44IDAtNDUuM0w3Ny4zIDI1NiAyMTQuNiAxMTguNmMxMi41LTEyLjUgMTIuNS0zMi44IDAtNDUuM3MtMzIuOC0xMi41LTQ1LjMgMGwtMTYwIDE2MHoiXX0sYUNlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InNjcmV3ZHJpdmVyIixpY29uOls1NzYsNTEyLFsxMjk2OTFdLCJmNTRhIiwiTTM1Mi4xIDE0Ni43bDAtNDkuNmMwLTEwLjcgNS4zLTIwLjcgMTQuMi0yNi42TDQ4NS4yLTguN2M2LjMtNC4yIDE0LjgtMy40IDIwLjIgMmw0NS40IDQ1LjVjNS40IDUuNCA2LjIgMTMuOCAyIDIwLjJMNDczLjYgMTc3LjhjLTUuOSA4LjktMTUuOSAxNC4yLTI2LjYgMTQuMmwtNDkuNiAwLTkwLjcgOTAuN2MxNSAzMy4zIDguOSA3My45LTE4LjUgMTAxLjNMMTYyLjEgNTEwLjFjLTE4LjcgMTguNy00OS4xIDE4LjctNjcuOSAwTDM0LjEgNDQ5LjljLTE4LjctMTguNy0xOC43LTQ5LjEgMC02Ny45TDE2MC4xIDI1NmMyNy40LTI3LjQgNjcuOS0zMy42IDEwMS4zLTE4LjVsOTAuNy05MC43eiJdfSxpQ2U9e3ByZWZpeDoiZmFzIixpY29uTmFtZToidHJhY3RvciIsaWNvbjpbNTc2LDUxMixbMTI4NjY4XSwiZjcyMiIsIk0xNjAgOTZsMCA5NiAxMzMuNCAwLTU3LjYtOTYtNzUuOCAwek05NiAyMjNMOTYgNjRjMC0xNy43IDE0LjMtMzIgMzItMzJsMTA3LjggMGMyMi41IDAgNDMuMyAxMS44IDU0LjkgMzEuMWw3Ny40IDEyOC45IDY0IDAgMC03MmMwLTEzLjMgMTAuNy0yNCAyNC0yNHMyNCAxMC43IDI0IDI0bDAgNzIgNDggMGMyNi41IDAgNDggMjEuNSA0OCA0OGwwIDQxLjVjMCAxNC4yLTYuMyAyNy44LTE3LjMgMzYuOWwtMzUgMjkuMmMyNi41IDE1LjIgNDQuMyA0My43IDQ0LjMgNzYuNCAwIDQ4LjYtMzkuNCA4OC04OCA4OHMtODgtMzkuNC04OC04OGMwLTE0LjQgMy41LTI4IDkuNi00MGwtMTAxLjIgMGMtMyAxMy40LTcuOSAyNi0xNC40IDM3LjcgNy43IDkuNCA3LjIgMjMuNC0xLjYgMzIuMmwtMjIuNiAyMi42Yy04LjggOC44LTIyLjcgOS4zLTMyLjIgMS42LTkuMyA1LjItMTkuMyA5LjMtMjkuOCAxMi4zLTEuMiAxMi4xLTExLjQgMjEuNi0yMy45IDIxLjZsLTMyIDBjLTEyLjQgMC0yMi43LTkuNS0yMy45LTIxLjYtMTAuNS0zLTIwLjQtNy4yLTI5LjgtMTIuMy05LjQgNy43LTIzLjQgNy4yLTMyLjItMS42TDM1LjUgNDUzLjhjLTguOC04LjgtOS4zLTIyLjctMS42LTMyLjItNS4yLTkuMy05LjMtMTkuMy0xMi4zLTI5LjgtMTIuMS0xLjItMjEuNi0xMS40LTIxLjYtMjMuOWwwLTMyYzAtMTIuNCA5LjUtMjIuNyAyMS42LTIzLjkgMy0xMC41IDcuMi0yMC40IDEyLjMtMjkuOC03LjctOS40LTcuMi0yMy40IDEuNi0zMi4ybDIyLjYtMjIuNmM4LjgtOC44IDIyLjctOS4zIDMyLjItMS42IDEuOS0xIDMuNy0yIDUuNy0zem02NCA2NWE2NCA2NCAwIDEgMCAwIDEyOCA2NCA2NCAwIDEgMCAwLTEyOHpNNDQwIDQyNGE0MCA0MCAwIDEgMCA4MCAwIDQwIDQwIDAgMSAwIC04MCAweiJdfSxyQ2U9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiYnJpZGdlLWNpcmNsZS14bWFyayIsaWNvbjpbNTc2LDUxMixbXSwiZTRjYiIsIk0zMiAzMkMxNC4zIDMyIDAgNDYuMyAwIDY0UzE0LjMgOTYgMzIgOTZsOCAwIDAgNjQtNDAgMCAwIDExMmMzNy42IDkuNCA2NCA0My4yIDY0IDgybDAgOTRjMCAxNy43IDE0LjMgMzIgMzIgMzJsMzIgMGMxNy43IDAgMzItMTQuMyAzMi0zMmwwLTY0YzAtNTMgNDMtOTYgOTYtOTYgNi40IDAgMTIuNyAuNiAxOC43IDEuOCAzNC43LTQ5LjUgOTIuMi04MS44IDE1Ny4zLTgxLjggMjguNiAwIDU1LjYgNi4yIDgwIDE3LjRsMC02NS40LTQwIDAgMC02NCA4IDBjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJMMzIgMzJ6TTQyNCA5NmwwIDY0LTgwIDAgMC02NCA4MCAwek0yOTYgOTZsMCA2NC04MCAwIDAtNjQgODAgMHpNODggOTZsODAgMCAwIDY0LTgwIDAgMC02NHpNNDMyIDU0NGExNDQgMTQ0IDAgMSAwIDAtMjg4IDE0NCAxNDQgMCAxIDAgMCAyODh6bTU5LjMtMTgwLjdsLTM2LjcgMzYuNyAzNi43IDM2LjdjNi4yIDYuMiA2LjIgMTYuNCAwIDIyLjZzLTE2LjQgNi4yLTIyLjYgMGwtMzYuNy0zNi43LTM2LjcgMzYuN2MtNi4yIDYuMi0xNi40IDYuMi0yMi42IDBzLTYuMi0xNi40IDAtMjIuNmwzNi43LTM2LjctMzYuNy0zNi43Yy02LjItNi4yLTYuMi0xNi40IDAtMjIuNnMxNi40LTYuMiAyMi42IDBsMzYuNyAzNi43IDM2LjctMzYuN2M2LjItNi4yIDE2LjQtNi4yIDIyLjYgMHM2LjIgMTYuNCAwIDIyLjZ6Il19LHNDZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJ2aWFscyIsaWNvbjpbNTEyLDUxMixbXSwiZjQ5MyIsIk0zMiAwQzE0LjMgMCAwIDE0LjMgMCAzMlMxNC4zIDY0IDMyIDY0bDAgMzUyYzAgNTMgNDMgOTYgOTYgOTZzOTYtNDMgOTYtOTZsMC0zNTIgNjQgMCAwIDM1MmMwIDUzIDQzIDk2IDk2IDk2czk2LTQzIDk2LTk2bDAtMzUyYzE3LjcgMCAzMi0xNC4zIDMyLTMyUzQ5Ny43IDAgNDgwIDBMMzIgMHpNMTYwIDY0bDAgMTI4LTY0IDAgMC0xMjggNjQgMHptMjU2IDBsMCAxMjgtNjQgMCAwLTEyOCA2NCAweiJdfSxuQ2U9e3ByZWZpeDoiZmFzIixpY29uTmFtZToic3RldGhvc2NvcGUiLGljb246WzU3Niw1MTIsWzEyOTY1OF0sImYwZjEiLCJNMzIgNDhDMzIgMjEuNSA1My41IDAgODAgMGw0OCAwYzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMybC0zMiAwIDAgMTI4YzAgNTMgNDMgOTYgOTYgOTZzOTYtNDMgOTYtOTZsMC0xMjgtMzIgMGMtMTcuNyAwLTMyLTE0LjMtMzItMzJTMjM4LjMgMCAyNTYgMGw0OCAwYzI2LjUgMCA0OCAyMS41IDQ4IDQ4bDAgMTQ0YzAgNzcuNC01NSAxNDItMTI4IDE1Ni44bDAgMTkuMmMwIDYxLjkgNTAuMSAxMTIgMTEyIDExMnMxMTItNTAuMSAxMTItMTEybDAtODUuNWMtMzcuMy0xMy4yLTY0LTQ4LjctNjQtOTAuNSAwLTUzIDQzLTk2IDk2LTk2czk2IDQzIDk2IDk2YzAgNDEuOC0yNi43IDc3LjQtNjQgOTAuNWwwIDg1LjVjMCA5Ny4yLTc4LjggMTc2LTE3NiAxNzZTMTYwIDQ2NS4yIDE2MCAzNjhsMC0xOS4yQzg3IDMzNCAzMiAyNjkuNCAzMiAxOTJMMzIgNDh6TTQ4MCAyMjRhMzIgMzIgMCAxIDAgMC02NCAzMiAzMiAwIDEgMCAwIDY0eiJdfSxvQ2U9e3ByZWZpeDoiZmFzIixpY29uTmFtZToicG9kY2FzdCIsaWNvbjpbNDQ4LDUxMixbXSwiZjJjZSIsIk0zMzYgMzU5LjhjMzkuMS0zMi4zIDY0LTgxLjEgNjQtMTM1LjggMC05Ny4yLTc4LjgtMTc2LTE3Ni0xNzZTNDggMTI2LjggNDggMjI0QzQ4IDI3OC43IDcyLjkgMzI3LjUgMTEyIDM1OS44IDExMi40IDM3Ny40IDExNS4yIDQwMC4yIDExOC40IDQyMS42IDQ4IDM4My45IDAgMzA5LjUgMCAyMjQgMCAxMDAuMyAxMDAuMyAwIDIyNCAwUzQ0OCAxMDAuMyA0NDggMjI0YzAgODUuNi00OCAxNTkuOS0xMTguNSAxOTcuNiAzLjMtMjEuNCA2LTQ0LjIgNi40LTYxLjh6bS0xNC01My40Yy04LjMtMTIuNi0xOS4yLTIxLjYtMzAuNC0yNy44LTIuMS0xLjEtNC4yLTIuMi02LjMtMy4yIDExLjctMTMuOSAxOC44LTMxLjkgMTguOC01MS41IDAtNDQuMi0zNS44LTgwLTgwLTgwcy04MCAzNS44LTgwIDgwYzAgMTkuNiA3LjEgMzcuNiAxOC44IDUxLjUtMi4xIDEtNC4yIDItNi4zIDMuMi0xMS4yIDYuMi0yMi4xIDE1LjItMzAuNCAyNy44LTE4LjgtMjIuMy0zMC4xLTUxLTMwLjEtODIuNCAwLTcwLjcgNTcuMy0xMjggMTI4LTEyOHMxMjggNTcuMyAxMjggMTI4YzAgMzEuNC0xMS4zIDYwLjItMzAuMSA4Mi40ek0yMjQgMzEyYzMyLjkgMCA2NCA4LjYgNjQgNDMuOCAwIDMzLTEyLjkgMTA0LjEtMjAuNiAxMzIuOS01LjEgMTktMjQuNSAyMy40LTQzLjQgMjMuNHMtMzguMi00LjQtNDMuNC0yMy40Yy03LjgtMjguNS0yMC42LTk5LjctMjAuNi0xMzIuOCAwLTM1LjEgMzEuMS00My44IDY0LTQzLjh6bTAtMTI4YTQwIDQwIDAgMSAxIDAgODAgNDAgNDAgMCAxIDEgMC04MHoiXX0sbENlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImFycm93LXVwLXJpZ2h0LWRvdHMiLGljb246WzUxMiw1MTIsW10sImU0YjciLCJNOTYgMzJDNzguMyAzMiA2NCA0Ni4zIDY0IDY0Uzc4LjMgOTYgOTYgOTZMMTE0LjcgOTYgOS40IDIwMS40Yy0xMi41IDEyLjUtMTIuNSAzMi44IDAgNDUuM3MzMi44IDEyLjUgNDUuMyAwTDE2MCAxNDEuMyAxNjAgMTYwYzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJsMC05NmMwLTE3LjctMTQuMy0zMi0zMi0zMkw5NiAzMnpNNDAzLjggNzAuMWEzOC4xIDM4LjEgMCAxIDAgNzYuMiAwIDM4LjEgMzguMSAwIDEgMCAtNzYuMiAwek0yNzkuNyAxOTQuMmEzOC4xIDM4LjEgMCAxIDAgNzYuMiAwIDM4LjEgMzguMSAwIDEgMCAtNzYuMiAwem0xNjIuMi0zOC4xYTM4LjEgMzguMSAwIDEgMCAwIDc2LjIgMzguMSAzOC4xIDAgMSAwIDAtNzYuMnpNMTU2LjIgMzE3LjhhMzguMSAzOC4xIDAgMSAwIDc2LjIgMCAzOC4xIDM4LjEgMCAxIDAgLTc2LjIgMHptMTYxLjYtMzguMWEzOC4xIDM4LjEgMCAxIDAgMCA3Ni4yIDM4LjEgMzguMSAwIDEgMCAwLTc2LjJ6bTg2LjEgMzguMWEzOC4xIDM4LjEgMCAxIDAgNzYuMiAwIDM4LjEgMzguMSAwIDEgMCAtNzYuMiAwek03MC4xIDQwMy44YTM4LjEgMzguMSAwIDEgMCAwIDc2LjIgMzguMSAzOC4xIDAgMSAwIDAtNzYuMnptODYuMSAzOC4xYTM4LjEgMzguMSAwIDEgMCA3Ni4yIDAgMzguMSAzOC4xIDAgMSAwIC03Ni4yIDB6bTE2MS42LTM4LjFhMzguMSAzOC4xIDAgMSAwIDAgNzYuMiAzOC4xIDM4LjEgMCAxIDAgMC03Ni4yem04Ni4xIDM4LjFhMzguMSAzOC4xIDAgMSAwIDc2LjIgMCAzOC4xIDM4LjEgMCAxIDAgLTc2LjIgMHoiXX0sY0NlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImNoZXNzLXF1ZWVuIixpY29uOls1MTIsNTEyLFs5ODE5XSwiZjQ0NSIsIk0yNTYgODBhNDggNDggMCAxIDAgMC05NiA0OCA0OCAwIDEgMCAwIDk2ek01LjUgMTg1TDEyOCAzODQgNzEuOCA0NTQuM2MtNSA2LjMtNy44IDE0LjEtNy44IDIyLjIgMCAxOS42IDE1LjkgMzUuNSAzNS41IDM1LjVsMzEyLjkgMGMxOS42IDAgMzUuNS0xNS45IDM1LjUtMzUuNSAwLTguMS0yLjctMTUuOS03LjgtMjIuMkwzODQgMzg0IDUwNi41IDE4NWMzLjYtNS45IDUuNS0xMi43IDUuNS0xOS42bDAtLjZjMC0yMC4zLTE2LjUtMzYuOC0zNi44LTM2LjgtNy4zIDAtMTQuNCAyLjItMjAuNCA2LjJsLTE2LjkgMTEuM2MtMTIuNyA4LjUtMjkuNiA2LjgtNDAuNC00bC0zNC4xLTM0LjFDMzU2LjEgMTAwLjEgMzQ2LjIgOTYgMzM2IDk2cy0yMC4xIDQuMS0yNy4zIDExLjNsLTMwLjEgMzAuMWMtMTIuNSAxMi41LTMyLjggMTIuNS00NS4zIDBsLTMwLjEtMzAuMUMxOTYuMSAxMDAuMSAxODYuMiA5NiAxNzYgOTZzLTIwLjEgNC4xLTI3LjMgMTEuM2wtMzQuMSAzNC4xYy0xMC44IDEwLjgtMjcuNyAxMi41LTQwLjQgNEw1Ny4zIDEzNC4yYy02LjEtNC0xMy4yLTYuMi0yMC40LTYuMi0yMC4zIDAtMzYuOCAxNi41LTM2LjggMzYuOGwwIC42YzAgNi45IDEuOSAxMy43IDUuNSAxOS42eiJdfSxkQ2U9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiYW5jaG9yLWNpcmNsZS1leGNsYW1hdGlvbiIsaWNvbjpbNjQwLDUxMixbXSwiZTRhYiIsIk0zMjAuNSA5NmEzMiAzMiAwIDEgMSAtNjQgMCAzMiAzMiAwIDEgMSA2NCAwem0tMzItOTZjLTUzIDAtOTYgNDMtOTYgOTYgMCA0MS44IDI2LjcgNzcuNCA2NCA5MC41bDAgMjU3LjljLTYyLjktMTQuMy0xMTAuMi02OS43LTExMS45LTEzNi41bDE2LjEgMTQuMWMxMCA4LjcgMjUuMSA3LjcgMzMuOS0yLjNzNy43LTI1LjEtMi4zLTMzLjlsLTY0LTU2Yy05LTcuOS0yMi42LTcuOS0zMS42IDBsLTY0IDU2Yy0xMCA4LjctMTEgMjMuOS0yLjMgMzMuOXMyMy45IDExIDMzLjkgMi4zbDE2LjItMTQuMmMyLjEgMTEzLjEgOTQuNCAyMDQuMSAyMDggMjA0LjEgMTYuNiAwIDMyLjctMS45IDQ4LjItNS42LTIwLjMtMzAuNS0zMi4yLTY3LTMyLjItMTA2LjQgMC0yNy4zIDUuNy01My4zIDE2LTc2LjlsMC0xMzYuNmMzNy4zLTEzLjIgNjQtNDguNyA2NC05MC41IDAtNTMtNDMtOTYtOTYtOTZ6bTIwOCA1NDRhMTQ0IDE0NCAwIDEgMCAwLTI4OCAxNDQgMTQ0IDAgMSAwIDAgMjg4em0wLTEwMGEyMCAyMCAwIDEgMSAwIDQwIDIwIDIwIDAgMSAxIDAtNDB6bTAtMTQwYzguOCAwIDE2IDcuMiAxNiAxNmwwIDgwYzAgOC44LTcuMiAxNi0xNiAxNnMtMTYtNy4yLTE2LTE2bDAtODBjMC04LjggNy4yLTE2IDE2LTE2eiJdfSxtTj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJlbGxpcHNpcy12ZXJ0aWNhbCIsaWNvbjpbMTI4LDUxMixbImVsbGlwc2lzLXYiXSwiZjE0MiIsIk02NCAxNDRhNTYgNTYgMCAxIDEgMC0xMTIgNTYgNTYgMCAxIDEgMCAxMTJ6bTAgMjI0YzMwLjkgMCA1NiAyNS4xIDU2IDU2cy0yNS4xIDU2LTU2IDU2LTU2LTI1LjEtNTYtNTYgMjUuMS01NiA1Ni01NnptNTYtMTEyYzAgMzAuOS0yNS4xIDU2LTU2IDU2cy01Ni0yNS4xLTU2LTU2IDI1LjEtNTYgNTYtNTYgNTYgMjUuMSA1NiA1NnoiXX0saENlPW1OLHBDZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJoZWFydC1jaXJjbGUtZXhjbGFtYXRpb24iLGljb246WzU3Niw1MTIsW10sImU0ZmUiLCJNMjQxIDg3LjFsMTUgMjAuNyAxNS0yMC43QzI5NiA1Mi41IDMzNi4yIDMyIDM3OC45IDMyIDQ1Mi40IDMyIDUxMiA5MS42IDUxMiAxNjUuMWwwIDIuNmMwIDE3LjYtMy40IDM1LjYtOS41IDUzLjctMjEuOC04LjYtNDUuNi0xMy40LTcwLjUtMTMuNC0xMDYgMC0xOTIgODYtMTkyIDE5MiAwIDI4LjUgNi4yIDU1LjYgMTcuNCA4MC0uNSAwLS45IDAtMS40IDAtMTUuNSAwLTMwLjgtNC42LTQzLjEtMTQuMS03My01NS43LTIxMi45LTE4Ni0yMTIuOS0yOTguMmwwLTIuNkMwIDkxLjYgNTkuNiAzMiAxMzMuMSAzMiAxNzUuOCAzMiAyMTYgNTIuNSAyNDEgODcuMXpNNDMyIDI1NmExNDQgMTQ0IDAgMSAxIDAgMjg4IDE0NCAxNDQgMCAxIDEgMC0yODh6bTAgMjI4YTIwIDIwIDAgMSAwIDAtNDAgMjAgMjAgMCAxIDAgMCA0MHptMC0xODBjLTguOCAwLTE2IDcuMi0xNiAxNmwwIDgwYzAgOC44IDcuMiAxNiAxNiAxNnMxNi03LjIgMTYtMTZsMC04MGMwLTguOC03LjItMTYtMTYtMTZ6Il19LHVDZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJidWlsZGluZy1jaXJjbGUtZXhjbGFtYXRpb24iLGljb246WzU3Niw1MTIsW10sImU0ZDMiLCJNOTYgMEM2MC43IDAgMzIgMjguNyAzMiA2NGwwIDM4NGMwIDM1LjMgMjguNyA2NCA2NCA2NGwxODAgMGMtMTAuNS0xNC42LTE5LTMwLjctMjUuMS00OGwtNzQuOSAwIDAtODBjMC0xNy43IDE0LjMtMzIgMzItMzJsMzIgMGMyIDAgNCAuMiA1LjkgLjUgNi0yMy42IDE2LjMtNDUuNCAzMC4xLTY0LjVsLTQgMGMtOC44IDAtMTYtNy4yLTE2LTE2bDAtMzJjMC04LjggNy4yLTE2IDE2LTE2bDMyIDBjOC44IDAgMTYgNy4yIDE2IDE2bDAgNGMyNy41LTE5LjggNjAuMy0zMi40IDk2LTM1LjRMNDE2IDY0YzAtMzUuMy0yOC43LTY0LTY0LTY0TDk2IDB6bTMyIDExMmMwLTguOCA3LjItMTYgMTYtMTZsMzIgMGM4LjggMCAxNiA3LjIgMTYgMTZsMCAzMmMwIDguOC03LjIgMTYtMTYgMTZsLTMyIDBjLTguOCAwLTE2LTcuMi0xNi0xNmwwLTMyek0yNzIgOTZsMzIgMGM4LjggMCAxNiA3LjIgMTYgMTZsMCAzMmMwIDguOC03LjIgMTYtMTYgMTZsLTMyIDBjLTguOCAwLTE2LTcuMi0xNi0xNmwwLTMyYzAtOC44IDcuMi0xNiAxNi0xNnpNMTI4IDI0MGMwLTguOCA3LjItMTYgMTYtMTZsMzIgMGM4LjggMCAxNiA3LjIgMTYgMTZsMCAzMmMwIDguOC03LjIgMTYtMTYgMTZsLTMyIDBjLTguOCAwLTE2LTcuMi0xNi0xNmwwLTMyek00MzIgNTQ0YTE0NCAxNDQgMCAxIDAgMC0yODggMTQ0IDE0NCAwIDEgMCAwIDI4OHptMC0xMDBhMjAgMjAgMCAxIDEgMCA0MCAyMCAyMCAwIDEgMSAwLTQwem0wLTE0MGM4LjggMCAxNiA3LjIgMTYgMTZsMCA4MGMwIDguOC03LjIgMTYtMTYgMTZzLTE2LTcuMi0xNi0xNmwwLTgwYzAtOC44IDcuMi0xNiAxNi0xNnoiXX0sZkNlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InBlcnNvbi1hcnJvdy11cC1mcm9tLWxpbmUiLGljb246WzU3Niw1MTIsW10sImU1MzkiLCJNMTkyLTMyYTU2IDU2IDAgMSAxIDAgMTEyIDU2IDU2IDAgMSAxIDAtMTEyek0zMTguMyAyOTkuMWwtNDYuMy02Mi40IDAgMjQzLjMgMjcyIDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJMMzIgNTQ0Yy0xNy43IDAtMzItMTQuMy0zMi0zMnMxNC4zLTMyIDMyLTMybDgwIDAgMC0yNDMuMy00Ni4zIDYyLjRjLTEwLjUgMTQuMi0zMC42IDE3LjItNDQuOCA2LjZzLTE3LjItMzAuNi02LjYtNDQuOGw3MC41LTk1QzExMCAxMzIgMTQ5LjcgMTEyIDE5MiAxMTJzODIgMjAgMTA3LjIgNTMuOWw3MC41IDk1YzEwLjUgMTQuMiA3LjYgMzQuMi02LjYgNDQuOHMtMzQuMiA3LjYtNDQuOC02LjZ6TTIwOCA0ODBsMC0xMjhjMC04LjgtNy4yLTE2LTE2LTE2cy0xNiA3LjItMTYgMTZsMCAxMjggMzIgMHpNNTY2LjYgMTAyLjZjLTEyLjUgMTIuNS0zMi44IDEyLjUtNDUuMyAwTDQ5NiA3Ny4zIDQ5NiAyMjRjMCAxNy43LTE0LjMgMzItMzIgMzJzLTMyLTE0LjMtMzItMzJsMC0xNDYuNy0yNS40IDI1LjRjLTEyLjUgMTIuNS0zMi44IDEyLjUtNDUuMyAwcy0xMi41LTMyLjggMC00NS4zbDgwLTgwYzEyLjUtMTIuNSAzMi44LTEyLjUgNDUuMyAwbDgwIDgwYzEyLjUgMTIuNSAxMi41IDMyLjggMCA0NS4zeiJdfSxtQ2U9e3ByZWZpeDoiZmFzIixpY29uTmFtZToibm90LWVxdWFsIixpY29uOls0NDgsNTEyLFtdLCJmNTNlIiwiTTM3OC42IDgxLjhjOS44LTE0LjcgNS44LTM0LjYtOC45LTQ0LjRzLTM0LjYtNS44LTQ0LjQgOC45TDI3MC45IDEyOCAzMiAxMjhjLTE3LjcgMC0zMiAxNC4zLTMyIDMyczE0LjMgMzIgMzIgMzJsMTk2LjIgMC04NS4zIDEyOC0xMTAuOSAwYy0xNy43IDAtMzIgMTQuMy0zMiAzMnMxNC4zIDMyIDMyIDMybDY4LjIgMC0zMC44IDQ2LjJjLTkuOCAxNC43LTUuOCAzNC42IDguOSA0NC40czM0LjYgNS44IDQ0LjQtOC45TDE3Ny4xIDM4NCA0MTYgMzg0YzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMybC0xOTYuMiAwIDg1LjMtMTI4IDExMC45IDBjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJsLTY4LjIgMCAzMC44LTQ2LjJ6Il19LGdDZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJ0cmFpbi10cmFtIixpY29uOlszODQsNTEyLFsxMjg2NTBdLCJlNWI0IiwiTTAgOEMwLTUuMyAxMC43LTE2IDI0LTE2bDMzNiAwYzEzLjMgMCAyNCAxMC43IDI0IDI0bDAgMzJjMCAxMy4zLTEwLjcgMjQtMjQgMjRzLTI0LTEwLjctMjQtMjRsMC04LTEyMCAwIDAgNjQgNDAgMGM1MyAwIDk2IDQzIDk2IDk2bDAgMTYwYzAgMzEuMi0xNC45IDU5LTM4IDc2LjVsNjQuMyA3NmM4LjYgMTAuMSA3LjMgMjUuMy0yLjggMzMuOHMtMjUuMyA3LjMtMzMuOC0yLjhsLTc0LjYtODguMWMtMy42IC40LTcuMyAuNi0xMS4xIC42bC0xMjggMGMtMy44IDAtNy41LS4yLTExLjEtLjZMNDIuMyA1MzUuNWMtOC42IDEwLjEtMjMuNyAxMS40LTMzLjggMi44cy0xMS40LTIzLjctMi44LTMzLjhsNjQuMy03NkM0Ni45IDQxMSAzMiAzODMuMiAzMiAzNTJsMC0xNjBjMC01MyA0My05NiA5Ni05Nmw0MCAwIDAtNjQtMTIwIDAgMCA4YzAgMTMuMy0xMC43IDI0LTI0IDI0UzAgNTMuMyAwIDQwTDAgOHpNMTI4IDE2MGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJsMCAzMmMwIDE3LjcgMTQuMyAzMiAzMiAzMmwxMjggMGMxNy43IDAgMzItMTQuMyAzMi0zMmwwLTMyYzAtMTcuNy0xNC4zLTMyLTMyLTMybC0xMjggMHptMzIgMTkyYTMyIDMyIDAgMSAwIC02NCAwIDMyIDMyIDAgMSAwIDY0IDB6bTk2IDMyYTMyIDMyIDAgMSAwIDAtNjQgMzIgMzIgMCAxIDAgMCA2NHoiXX0sYkNlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InBsYW5lLWRlcGFydHVyZSIsaWNvbjpbNTc2LDUxMixbMTI4NzQ3XSwiZjViMCIsIk0zNzIgMTQzLjlMMTcyLjcgNDAuMmMtOC00LjEtMTcuMy00LjgtMjUuNy0xLjdsLTQxLjEgMTVjLTEwLjMgMy43LTEzLjggMTYuNC03LjEgMjVMMjAwLjMgMjA2LjQgMTAwLjEgMjQyLjggNDAgMjA2LjJjLTYuMi0zLjgtMTMuOC00LjUtMjAuNy0yLjFMMyAyMTAuMWMtOS40IDMuNC0xMy40IDE0LjUtOC4zIDIzLjFsNTMuNiA5MS44YzE1LjYgMjYuNyA0OC4xIDM4LjQgNzcuMSAyNy44bDEyLjktNC43IDAgMCAzOTguNC0xNDVjMjkuMS0xMC42IDQ0LTQyLjcgMzMuNS03MS44cy00Mi43LTQ0LTcxLjgtMzMuNUwzNzIgMTQzLjl6TTMyLjIgNDQ4Yy0xNy43IDAtMzIgMTQuMy0zMiAzMnMxNC4zIDMyIDMyIDMybDUxMiAwYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMybC01MTIgMHoiXX0sZ049e3ByZWZpeDoiZmFzIixpY29uTmFtZToicmlnaHQtdG8tYnJhY2tldCIsaWNvbjpbNTEyLDUxMixbInNpZ24taW4tYWx0Il0sImYyZjYiLCJNMzQ1IDI3M2M5LjQtOS40IDkuNC0yNC42IDAtMzMuOUwyMDEgOTVjLTYuOS02LjktMTcuMi04LjktMjYuMi01LjJTMTYwIDEwMi4zIDE2MCAxMTJsMCA4MC0xMTIgMGMtMjYuNSAwLTQ4IDIxLjUtNDggNDhsMCAzMmMwIDI2LjUgMjEuNSA0OCA0OCA0OGwxMTIgMCAwIDgwYzAgOS43IDUuOCAxOC41IDE0LjggMjIuMnMxOS4zIDEuNyAyNi4yLTUuMkwzNDUgMjczem03IDE0M2MtMTcuNyAwLTMyIDE0LjMtMzIgMzJzMTQuMyAzMiAzMiAzMmw2NCAwYzUzIDAgOTYtNDMgOTYtOTZsMC0yNTZjMC01My00My05Ni05Ni05NmwtNjQgMGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJzMTQuMyAzMiAzMiAzMmw2NCAwYzE3LjcgMCAzMiAxNC4zIDMyIDMybDAgMjU2YzAgMTcuNy0xNC4zIDMyLTMyIDMybC02NCAweiJdfSx2Q2U9Z04seUNlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InNkLWNhcmQiLGljb246WzM4NCw1MTIsW10sImY3YzIiLCJNMzg0IDY0YzAtMzUuMy0yOC43LTY0LTY0LTY0TDEyNS4zIDBDMTA4LjMgMCA5MiA2LjcgODAgMTguN0wxOC43IDgwQzYuNyA5MiAwIDEwOC4zIDAgMTI1LjNMMCA0NDhjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMjU2IDBjMzUuMyAwIDY0LTI4LjcgNjQtNjRsMC0zODR6TTE2MCA4OGwwIDQ4YzAgMTMuMy0xMC43IDI0LTI0IDI0cy0yNC0xMC43LTI0LTI0bDAtNDhjMC0xMy4zIDEwLjctMjQgMjQtMjRzMjQgMTAuNyAyNCAyNHptODggMGwwIDQ4YzAgMTMuMy0xMC43IDI0LTI0IDI0cy0yNC0xMC43LTI0LTI0bDAtNDhjMC0xMy4zIDEwLjctMjQgMjQtMjRzMjQgMTAuNyAyNCAyNHptODggMGwwIDQ4YzAgMTMuMy0xMC43IDI0LTI0IDI0cy0yNC0xMC43LTI0LTI0bDAtNDhjMC0xMy4zIDEwLjctMjQgMjQtMjRzMjQgMTAuNyAyNCAyNHoiXX0seENlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImhvdXNlLWNpcmNsZS1leGNsYW1hdGlvbiIsaWNvbjpbNjQwLDUxMixbXSwiZTUwYSIsIk00OTYgNTQ0YTE0NCAxNDQgMCAxIDEgMC0yODggMTQ0IDE0NCAwIDEgMSAwIDI4OHpNMjY4LjYgNi41YzEyLjItOS4zIDI5LjctOC43IDQxLjIgMmwyMTcuNiAyMDJjLTEwLjItMS43LTIwLjctMi42LTMxLjMtMi42LTc4LjYgMC0xNDYuMSA0Ny4yLTE3NS44IDExNC44LTUuMS0xLjgtMTAuNS0yLjgtMTYuMi0yLjhsLTMyIDBjLTI2LjUgMC00OCAyMS41LTQ4IDQ4bDAgOTYgOTEgMGM2LjEgMTcuMyAxNC42IDMzLjQgMjUuMSA0OEwxNDQgNTEyYy0zNS4zIDAtNjQtMjguNy02NC02NGwwLTE3Ni0xNiAwYy0xMy4yIDAtMjUtOC4xLTI5LjgtMjAuM3MtMS42LTI2LjIgOC0zNS4xbDIyNC0yMDggMi40LTJ6TTQ5NiA0NDRhMjAgMjAgMCAxIDAgMCA0MCAyMCAyMCAwIDEgMCAwLTQwem0wLTE0MGMtOC44IDAtMTYgNy4yLTE2IDE2bDAgODBjMCA4LjggNy4yIDE2IDE2IDE2IDguOCAwIDE2LTcuMiAxNi0xNmwwLTgwYzAtOC44LTcuMi0xNi0xNi0xNnoiXX0sZGw9e3ByZWZpeDoiZmFzIixpY29uTmFtZToic2hla2VsLXNpZ24iLGljb246WzQ0OCw1MTIsWzgzNjIsImlscyIsInNoZWtlbCIsInNoZXFlbCIsInNoZXFlbC1zaWduIl0sImYyMGIiLCJNMzIgMzJDMTQuMyAzMiAwIDQ2LjMgMCA2NEwwIDQ0OGMwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMybDAtMzUyIDEyOCAwYzM1LjMgMCA2NCAyOC43IDY0IDY0bDAgMTYwYzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJsMC0xNjBjMC03MC43LTU3LjMtMTI4LTEyOC0xMjhMMzIgMzJ6TTMyMCA0ODBjNzAuNyAwIDEyOC01Ny4zIDEyOC0xMjhsMC0yODhjMC0xNy43LTE0LjMtMzItMzItMzJzLTMyIDE0LjMtMzIgMzJsMCAyODhjMCAzNS4zLTI4LjcgNjQtNjQgNjRsLTEyOCAwIDAtMjI0YzAtMTcuNy0xNC4zLTMyLTMyLTMycy0zMiAxNC4zLTMyIDMybDAgMjU2YzAgMTcuNyAxNC4zIDMyIDMyIDMybDE2MCAweiJdfSx3Q2U9ZGwsTUNlPWRsLHpDZT1kbCxrQ2U9ZGwsU0NlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InJhZGlvIixpY29uOls1MTIsNTEyLFsxMjgyNTFdLCJmOGQ3IiwiTTQ5NC44IDE1YzEyLjctMy43IDIwLTE3LjEgMTYuMy0yOS44UzQ5NC0zNC44IDQ4MS4zLTMxTDUxLjggOTQuOUM0Mi40IDk3LjYgMzMuOSAxMDIuMSAyNi42IDEwOCAxMC41IDExOS43IDAgMTM4LjYgMCAxNjBMMCA0MTZjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMzg0IDBjMzUuMyAwIDY0LTI4LjcgNjQtNjRsMC0yNTZjMC0zNS4zLTI4LjctNjQtNjQtNjRMMjE4LjUgOTYgNDk0LjggMTV6TTM2OCAyMDhhODAgODAgMCAxIDEgMCAxNjAgODAgODAgMCAxIDEgMC0xNjB6TTY0IDI0OGMwLTEzLjMgMTAuNy0yNCAyNC0yNGwxMTIgMGMxMy4zIDAgMjQgMTAuNyAyNCAyNHMtMTAuNyAyNC0yNCAyNEw4OCAyNzJjLTEzLjMgMC0yNC0xMC43LTI0LTI0em0wIDk2YzAtMTMuMyAxMC43LTI0IDI0LTI0bDExMiAwYzEzLjMgMCAyNCAxMC43IDI0IDI0cy0xMC43IDI0LTI0IDI0TDg4IDM2OGMtMTMuMyAwLTI0LTEwLjctMjQtMjR6Il19LGJOPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImhhbmQtZG90cyIsaWNvbjpbNTEyLDUxMixbImFsbGVyZ2llcyJdLCJmNDYxIiwiTTI4OCAzMmMwLTE3LjctMTQuMy0zMi0zMi0zMnMtMzIgMTQuMy0zMiAzMmwwIDIwOGMwIDguOC03LjIgMTYtMTYgMTZzLTE2LTcuMi0xNi0xNmwwLTE3NmMwLTE3LjctMTQuMy0zMi0zMi0zMnMtMzIgMTQuMy0zMiAzMmwwIDI3MmMwIDEuNSAwIDMuMSAuMSA0LjZMNjcuNiAyODNjLTE2LTE1LjItNDEuMy0xNC42LTU2LjYgMS40Uy0zLjYgMzI1LjcgMTIuNCAzNDFMMTI0LjggNDQ4YzQzLjEgNDEuMSAxMDAuNCA2NCAxNjAgNjRsMTkuMiAwYzk3LjIgMCAxNzYtNzguOCAxNzYtMTc2bDAtMjA4YzAtMTcuNy0xNC4zLTMyLTMyLTMycy0zMiAxNC4zLTMyIDMybDAgMTEyYzAgOC44LTcuMiAxNi0xNiAxNnMtMTYtNy4yLTE2LTE2bDAtMTc2YzAtMTcuNy0xNC4zLTMyLTMyLTMycy0zMiAxNC4zLTMyIDMybDAgMTc2YzAgOC44LTcuMiAxNi0xNiAxNnMtMTYtNy4yLTE2LTE2bDAtMjA4ek0yMDAgMzUyYTI0IDI0IDAgMSAxIDQ4IDAgMjQgMjQgMCAxIDEgLTQ4IDB6bTEyMC01NmEyNCAyNCAwIDEgMSAwIDQ4IDI0IDI0IDAgMSAxIDAtNDh6bTQwIDg4YTI0IDI0IDAgMSAxIDQ4IDAgMjQgMjQgMCAxIDEgLTQ4IDB6bS04OCAyNGEyNCAyNCAwIDEgMSAwIDQ4IDI0IDI0IDAgMSAxIDAtNDh6Il19LENDZT1iTix2Tj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJib29rLXNrdWxsIixpY29uOls0NDgsNTEyLFsiYm9vay1kZWFkIl0sImY2YjciLCJNOTYgNTEybDMyMCAwYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMybDAtNjYuN2MxOC42LTYuNiAzMi0yNC40IDMyLTQ1LjNsMC0yODhjMC0yNi41LTIxLjUtNDgtNDgtNDhMOTYgMEM0MyAwIDAgNDMgMCA5NkwwIDQxNmMwIDUzIDQzIDk2IDk2IDk2ek02NCA0MTZjMC0xNy43IDE0LjMtMzIgMzItMzJsMjU2IDAgMCA2NC0yNTYgMGMtMTcuNyAwLTMyLTE0LjMtMzItMzJ6TTI3MiAxNjMuMmwwIDEyLjhjMCA4LjgtNy4yIDE2LTE2IDE2bC02NCAwYy04LjggMC0xNi03LjItMTYtMTZsMC0xMi44Yy0xOS40LTExLjctMzItMzAuMy0zMi01MS4yIDAtMzUuMyAzNS44LTY0IDgwLTY0czgwIDI4LjcgODAgNjRjMCAyMC45LTEyLjYgMzkuNS0zMiA1MS4yek0yMDggMTEyYTE2IDE2IDAgMSAwIC0zMiAwIDE2IDE2IDAgMSAwIDMyIDB6bTQ4IDE2YTE2IDE2IDAgMSAwIDAtMzIgMTYgMTYgMCAxIDAgMCAzMnptNzQuMiA5NS43YzQuNiAxMC4xIC4xIDIxLjktOS45IDI2LjVsLTQ3LjkgMjEuOCA0Ny45IDIxLjhjMTAuMSA0LjYgMTQuNSAxNi40IDkuOSAyNi41cy0xNi40IDE0LjUtMjYuNSA5LjlMMjI0IDI5NCAxNDQuMyAzMzAuMmMtMTAuMSA0LjYtMjEuOSAuMS0yNi41LTkuOXMtLjEtMjEuOSA5LjktMjYuNWw0Ny45LTIxLjgtNDcuOS0yMS44Yy0xMC4xLTQuNi0xNC41LTE2LjQtOS45LTI2LjVzMTYuNC0xNC41IDI2LjUtOS45TDIyNCAyNTAgMzAzLjcgMjEzLjhjMTAuMS00LjYgMjEuOS0uMSAyNi41IDkuOXoiXX0sX0NlPXZOLHlOPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InVubG9jay1rZXlob2xlIixpY29uOlszODQsNTEyLFsidW5sb2NrLWFsdCJdLCJmMTNlIiwiTTE5MiAzMmMtMzUuMyAwLTY0IDI4LjctNjQgNjRsMCA2NCAxOTIgMGMzNS4zIDAgNjQgMjguNyA2NCA2NGwwIDIyNGMwIDM1LjMtMjguNyA2NC02NCA2NEw2NCA1MTJjLTM1LjMgMC02NC0yOC43LTY0LTY0TDAgMjI0YzAtMzUuMyAyOC43LTY0IDY0LTY0bDAtNjRjMC03MC43IDU3LjMtMTI4IDEyOC0xMjggNjMuNSAwIDExNi4xIDQ2LjEgMTI2LjIgMTA2LjcgMi45IDE3LjQtOC44IDMzLjktMjYuMyAzNi45cy0zMy45LTguOC0zNi45LTI2LjNDMjUwIDU1LjEgMjIzLjcgMzIgMTkyIDMyem00MCAzMjhjMTMuMyAwIDI0LTEwLjcgMjQtMjRzLTEwLjctMjQtMjQtMjRsLTgwIDBjLTEzLjMgMC0yNCAxMC43LTI0IDI0czEwLjcgMjQgMjQgMjRsODAgMHoiXX0sVENlPXlOLHhOPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImZpbGUtYXJyb3ctdXAiLGljb246WzM4NCw1MTIsWyJmaWxlLXVwbG9hZCJdLCJmNTc0IiwiTTAgNjRDMCAyOC43IDI4LjcgMCA2NCAwTDIxMy41IDBjMTcgMCAzMy4zIDYuNyA0NS4zIDE4LjdMMzY1LjMgMTI1LjNjMTIgMTIgMTguNyAyOC4zIDE4LjcgNDUuM0wzODQgNDQ4YzAgMzUuMy0yOC43IDY0LTY0IDY0TDY0IDUxMmMtMzUuMyAwLTY0LTI4LjctNjQtNjRMMCA2NHptMjA4LTUuNWwwIDkzLjVjMCAxMy4zIDEwLjcgMjQgMjQgMjRMMzI1LjUgMTc2IDIwOCA1OC41ek0yMDkgMjYzYy05LjQtOS40LTI0LjYtOS40LTMzLjkgMGwtNjQgNjRjLTkuNCA5LjQtOS40IDI0LjYgMCAzMy45czI0LjYgOS40IDMzLjkgMGwyMy0yMyAwIDg2LjFjMCAxMy4zIDEwLjcgMjQgMjQgMjRzMjQtMTAuNyAyNC0yNGwwLTg2LjEgMjMgMjNjOS40IDkuNCAyNC42IDkuNCAzMy45IDBzOS40LTI0LjYgMC0zMy45bC02NC02NHoiXX0sTENlPXhOLHdOPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImZhY2UtZ3Jpbi10ZWFycyIsaWNvbjpbNjQwLDUxMixbMTI4NTE0LCJncmluLXRlYXJzIl0sImY1ODgiLCJNNTU0LjggMjAzLjRsMTYuMyAyLjNDNTQ3LjcgODguNCA0NDQuMiAwIDMyMCAwUzkyLjMgODguNCA2OC45IDIwNS43bDE2LjMtMi4zYzM3LTUuMyA2OC42IDI2LjQgNjMuNCA2My40bC02LjcgNDYuN2MtNC4xIDI5LTIxLjYgNTMuMi00NS44IDY2LjggNDMuNyA3OC41IDEyNy42IDEzMS43IDIyMy44IDEzMS43czE4MC4xLTUzLjEgMjIzLjgtMTMxLjdjLTI0LjEtMTMuNS00MS42LTM3LjgtNDUuOC02Ni44bC02LjctNDYuN2MtNS4zLTM3IDI2LjQtNjguNiA2My40LTYzLjR6TTQ3MC4zIDMyNi45QzQ0Ny45IDM4OC4yIDM4OS4xIDQzMiAzMjAgNDMyUzE5Mi4xIDM4OC4yIDE2OS43IDMyNi45Yy00LjMtMTEuOCA3LjctMjEuOCAxOS42LTE4LjEgMzkuMiAxMi4yIDgzLjcgMTkuMSAxMzAuNyAxOS4xczkxLjUtNi45IDEzMC43LTE5LjFjMTEuOS0zLjcgMjMuOSA2LjMgMTkuNiAxOC4xek0yMTIgMjA4bDAgOGMwIDExLTkgMjAtMjAgMjBzLTIwLTktMjAtMjBsMC04YzAtMzcuNiAzMC40LTY4IDY4LTY4czY4IDMwLjQgNjggNjhsMCA4YzAgMTEtOSAyMC0yMCAyMHMtMjAtOS0yMC0yMGwwLThjMC0xNS41LTEyLjUtMjgtMjgtMjhzLTI4IDEyLjUtMjggMjh6bTE4OC0yOGMtMTUuNSAwLTI4IDEyLjUtMjggMjhsMCA4YzAgMTEtOSAyMC0yMCAyMHMtMjAtOS0yMC0yMGwwLThjMC0zNy42IDMwLjQtNjggNjgtNjhzNjggMzAuNCA2OCA2OGwwIDhjMCAxMS05IDIwLTIwIDIwcy0yMC05LTIwLTIwbDAtOGMwLTE1LjUtMTIuNS0yOC0yOC0yOHpNNjQwIDMwMC42YzAtMjUuNi0xOC44LTQ3LjMtNDQuMS01MC45TDU0OS4xIDI0M2MtMTAuNi0xLjUtMTkuNiA3LjUtMTguMSAxOC4xbDYuNyA0Ni43YzMuNiAyNS4zIDI1LjMgNDQuMSA1MC45IDQ0LjEgMjguNCAwIDUxLjQtMjMgNTEuNC01MS40em0tNjQwIDBDMCAzMjkgMjMgMzUyIDUxLjQgMzUyIDc3IDM1MiA5OC43IDMzMy4yIDEwMi4zIDMwNy45bDYuNy00Ni43YzEuNS0xMC42LTcuNS0xOS42LTE4LjEtMTguMWwtNDYuNyA2LjdDMTguOCAyNTMuMyAwIDI3NSAwIDMwMC42eiJdfSwkQ2U9d04saTg9e3ByZWZpeDoiZmFzIixpY29uTmFtZToicGVuLXRvLXNxdWFyZSIsaWNvbjpbNTEyLDUxMixbImVkaXQiXSwiZjA0NCIsIk00NzEuNiAyMS43Yy0yMS45LTIxLjktNTcuMy0yMS45LTc5LjIgMEwzNjggNDYuMSA0NjUuOSAxNDQgNDkwLjMgMTE5LjZjMjEuOS0yMS45IDIxLjktNTcuMyAwLTc5LjJMNDcxLjYgMjEuN3ptLTI5OS4yIDIyMGMtNi4xIDYuMS0xMC44IDEzLjYtMTMuNSAyMS45bC0yOS42IDg4LjhjLTIuOSA4LjYtLjYgMTguMSA1LjggMjQuNnMxNS45IDguNyAyNC42IDUuOGw4OC44LTI5LjZjOC4yLTIuNyAxNS43LTcuNCAyMS45LTEzLjVMNDMyIDE3Ny45IDMzNC4xIDgwIDE3Mi40IDI0MS43ek05NiA2NEM0MyA2NCAwIDEwNyAwIDE2MEwwIDQxNmMwIDUzIDQzIDk2IDk2IDk2bDI1NiAwYzUzIDAgOTYtNDMgOTYtOTZsMC05NmMwLTE3LjctMTQuMy0zMi0zMi0zMnMtMzIgMTQuMy0zMiAzMmwwIDk2YzAgMTcuNy0xNC4zIDMyLTMyIDMyTDk2IDQ0OGMtMTcuNyAwLTMyLTE0LjMtMzItMzJsMC0yNTZjMC0xNy43IDE0LjMtMzIgMzItMzJsOTYgMGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMkw5NiA2NHoiXX0sQUNlPWk4LE1OPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImVhcnRoLWV1cm9wZSIsaWNvbjpbNTEyLDUxMixbImdsb2JlLWV1cm9wZSJdLCJmN2EyIiwiTTI1Ni4yIDQ4YzExNC44IC4xIDIwNy44IDkzLjIgMjA3LjggMjA4IDAgMjIuMS0zLjQgNDMuNC05LjggNjMuNC0yIC40LTQuMSAuNi02LjIgLjZsLTIuNyAwYy04LjUgMC0xNi42LTMuNC0yMi42LTkuNGwtMjkuMy0yOS4zYy02LTYtOS40LTE0LjEtOS40LTIyLjZsMC01MC43YzAtOC44IDcuMi0xNiAxNi0xNnMxNi03LjIgMTYtMTYtNy4yLTE2LTE2LTE2bC0yNCAwYy0xMy4zIDAtMjQgMTAuNy0yNCAyNHMtMTAuNyAyNC0yNCAyNGwtNTYgMGMtOC44IDAtMTYgNy4yLTE2IDE2cy03LjIgMTYtMTYgMTZsLTI1LjQgMGMtMTIuNSAwLTIyLjYtMTAuMS0yMi42LTIyLjYgMC02IDIuNC0xMS44IDYuNi0xNmw3MC4xLTcwLjFjMi4xLTIuMSAzLjMtNSAzLjMtOCAwLTYuMi01LjEtMTEuMy0xMS4zLTExLjNsLTE0LjEgMGMtMTIuNSAwLTIyLjYtMTAuMS0yMi42LTIyLjYgMC02IDIuNC0xMS44IDYuNi0xNmwyMy4xLTIzLjFjLjgtLjggMS42LTEuNSAyLjUtMi4yek00MzguNCAzNTYuMWMtMzIuOCA1OS42LTkzLjkgMTAxLjQtMTY1LjIgMTA3LjItLjctMi4zLTEuMS00LjgtMS4xLTcuMyAwLTEzLjMtMTAuNy0yNC0yNC0yNGwtMjYuNyAwYy04LjUgMC0xNi42LTMuNC0yMi42LTkuNGwtMjkuMy0yOS4zYy02LTYtOS40LTE0LjEtOS40LTIyLjZsMC02Ni43YzAtMTcuNyAxNC4zLTMyIDMyLTMybDk4LjcgMGM4LjUgMCAxNi42IDMuNCAyMi42IDkuNGwyOS4zIDI5LjNjNiA2IDE0LjEgOS40IDIyLjYgOS40bDUuNSAwYzguNSAwIDE2LjYgMy40IDIyLjYgOS40bDE2IDE2YzQuMiA0LjIgMTAgNi42IDE2IDYuNiA0LjggMCA5LjMgMS41IDEzIDQuMXpNMjU2IDUxMmwyNi4yLTEuM2MtOC42IC45LTE3LjMgMS4zLTI2LjIgMS4zem0yNi4yLTEuM0M0MTEuMyA0OTcuNiA1MTIgMzg4LjYgNTEyIDI1NiA1MTIgMTE0LjYgMzk3LjQgMCAyNTYgMGwwIDBDMTE0LjYgMCAwIDExNC42IDAgMjU2IDAgMzgzLjUgOTMuMiA0ODkuMyAyMTUuMyA1MDguOCAyMjguNSA1MTAuOSAyNDIuMSA1MTIgMjU2IDUxMnpNMTg3LjMgMTIzLjNsLTMyIDMyYy02LjIgNi4yLTE2LjQgNi4yLTIyLjYgMHMtNi4yLTE2LjQgMC0yMi42bDMyLTMyYzYuMi02LjIgMTYuNC02LjIgMjIuNiAwczYuMiAxNi40IDAgMjIuNnoiXX0sRENlPU1OLHpOPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImZhY2UtZ3Jpbi1iZWFtLXN3ZWF0IixpY29uOls1NzYsNTEyLFsxMjg1MTcsImdyaW4tYmVhbS1zd2VhdCJdLCJmNTgzIiwiTTU0Ni4yLS4xYzE0LjcgMTcuOCAyOS44IDQwLjEgMjkuOCA2NC4xIDAgMzYuNC0yNy42IDY0LTY0IDY0cy02NC0yNy42LTY0LTY0YzAtMjQgMTUuMi00Ni4zIDI5LjgtNjQuMSA4LjgtMTAuNyAxOC41LTIwLjggMjktMzAgMy0yLjYgNy40LTIuNiAxMC40IDAgMTAuNSA5LjEgMjAuMSAxOS4zIDI5IDMwek0yODggMGM0Mi41IDAgODIuNiAxMC40IDExNy44IDI4LjctMy42IDEwLjktNS44IDIyLjctNS44IDM1LjMgMCA2Mi45IDQ5LjEgMTEyIDExMiAxMTIgNi40IDAgMTIuNy0uNSAxOC44LTEuNSA4LjYgMjUuNiAxMy4yIDUzIDEzLjIgODEuNSAwIDE0MS40LTExNC42IDI1Ni0yNTYgMjU2UzMyIDM5Ny40IDMyIDI1NiAxNDYuNiAwIDI4OCAwek00MTguNyAzMDguOUMzNzkuNSAzMjEuMSAzMzUuMSAzMjggMjg4IDMyOHMtOTEuNS02LjktMTMwLjctMTkuMWMtMTEuOS0zLjctMjMuOSA2LjMtMTkuNiAxOC4xIDIyLjQgNjEuMyA4MS4zIDEwNS4xIDE1MC4zIDEwNS4xczEyNy45LTQzLjggMTUwLjMtMTA1LjFjNC4zLTExLjgtNy43LTIxLjgtMTkuNi0xOC4xek0yMDggMTgwYzE1LjUgMCAyOCAxMi41IDI4IDI4bDAgOGMwIDExIDkgMjAgMjAgMjBzMjAtOSAyMC0yMGwwLThjMC0zNy42LTMwLjQtNjgtNjgtNjhzLTY4IDMwLjQtNjggNjhsMCA4YzAgMTEgOSAyMCAyMCAyMHMyMC05IDIwLTIwbDAtOGMwLTE1LjUgMTIuNS0yOCAyOC0yOHptMTMyIDI4YzAtMTUuNSAxMi41LTI4IDI4LTI4czI4IDEyLjUgMjggMjhsMCA4YzAgMTEgOSAyMCAyMCAyMHMyMC05IDIwLTIwbDAtOGMwLTM3LjYtMzAuNC02OC02OC02OHMtNjggMzAuNC02OCA2OGwwIDhjMCAxMSA5IDIwIDIwIDIwczIwLTkgMjAtMjBsMC04eiJdfSxFQ2U9ek4sa049e3ByZWZpeDoiZmFzIixpY29uTmFtZToiY2lyY2xlLWhhbGYtc3Ryb2tlIixpY29uOls1MTIsNTEyLFs5NjgwLCJhZGp1c3QiXSwiZjA0MiIsIk00NDggMjU2YzAtMTA2LTg2LTE5Mi0xOTItMTkybDAgMzg0YzEwNiAwIDE5Mi04NiAxOTItMTkyek0wIDI1NmEyNTYgMjU2IDAgMSAxIDUxMiAwIDI1NiAyNTYgMCAxIDEgLTUxMiAweiJdfSxQQ2U9a04sSUNlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InBlcnNvbi1taWxpdGFyeS10by1wZXJzb24iLGljb246WzUxMiw1MTIsW10sImU1NGMiLCJNNzEgMTIuNWMtOC42IDEtMTUgOC4yLTE1IDE2LjggMCA5LjMgNy41IDE2LjggMTYuNyAxNi45bDExMS40IDBjOC44LS4xIDE1LjktNy4yIDE1LjktMTZMMjAwIDE2YzAtOS41LTguMy0xNy0xNy44LTE1LjlMNzEgMTIuNXpNMTg5LjUgNzguMWwtMTIyLjkgMGMtMS42IDUuNy0yLjUgMTEuNy0yLjUgMTcuOSAwIDM1LjMgMjguNyA2NCA2NCA2NHM2NC0yOC43IDY0LTY0YzAtNi4yLS45LTEyLjItMi41LTE3Ljl6TTMyIDI1NmwwIDMyYzAgMTcuNyAxNC4zIDMyIDMyIDMybDEyOCAwYzEuOCAwIDMuNS0uMSA1LjItLjRMNTMgMjA4LjZDNDAuMSAyMjAuMyAzMiAyMzcuMiAzMiAyNTZ6bTE5MC4yIDQyLjVjMS4xLTMuMyAxLjgtNi44IDEuOC0xMC41bDAtMzJjMC0zNS4zLTI4LjctNjQtNjQtNjRsLTY0IDBjLTMuNyAwLTcuNCAuMy0xMC45IC45TDIyMi4yIDI5OC41ek0zODQgMTYwYTY0IDY0IDAgMSAwIDAtMTI4IDY0IDY0IDAgMSAwIDAgMTI4em0tMzIgMzJjLTM1LjMgMC02NCAyOC43LTY0IDY0bDAgMzJjMCAxNy43IDE0LjMgMzIgMzIgMzJsMTI4IDBjMTcuNyAwIDMyLTE0LjMgMzItMzJsMC0zMmMwLTM1LjMtMjguNy02NC02NC02NGwtNjQgMHpNMjE1LjggNDUwLjFjNS4yLTQuNiA4LjItMTEuMSA4LjItMTguMXMtMy0xMy41LTguMi0xOC4xbC02NC01NmMtNy4xLTYuMi0xNy4xLTcuNy0yNS43LTMuOFMxMTIgMzY2LjYgMTEyIDM3NmwwIDMyLTg4IDBjLTEzLjMgMC0yNCAxMC43LTI0IDI0czEwLjcgMjQgMjQgMjRsODggMCAwIDMyYzAgOS40IDUuNSAxOCAxNC4xIDIxLjlzMTguNiAyLjQgMjUuNy0zLjhsNjQtNTZ6TTI4OCA0MzEuOWMwIDYuOSAzIDEzLjUgOC4xIDE4LjFsNjQgNTYuNGM3LjEgNi4yIDE3LjEgNy44IDI1LjcgMy45UzQwMCA0OTcuOCA0MDAgNDg4LjRsMC0zMi40IDg4IDBjMTMuMyAwIDI0LTEwLjcgMjQtMjRzLTEwLjctMjQtMjQtMjRsLTg4IDAgMC0zMmMwLTkuNC01LjUtMTgtMTQuMS0yMS45cy0xOC42LTIuNC0yNS43IDMuOGwtNjQgNTZjLTUuMiA0LjUtOC4yIDExLjEtOC4yIDE4eiJdfSxOQ2U9e3ByZWZpeDoiZmFzIixpY29uTmFtZToidGFibGUtY2VsbHMtY29sdW1uLWxvY2siLGljb246WzY0MCw1MTIsW10sImU2NzgiLCJNMjU2IDIyNGwwIDE5MiA2NCAwIDAtMTkyLTY0IDB6bTI1Ni03OWMtNDYuNyA1LjgtODUuNiAzNi44LTEwMi43IDc5bC0yNS4zIDAgMCA5MC44Yy0xMC4xIDE1LjItMTYgMzMuNC0xNiA1My4xbDAgOTZjMCA1LjUgLjUgMTAuOSAxLjMgMTYuMUwxMjggNDgwYy0zNS4zIDAtNjQtMjguNy02NC02NEw2NCA5NmMwLTM1LjMgMjguNy02NCA2NC02NGwzMjAgMGMzNS4zIDAgNjQgMjguNyA2NCA2NGwwIDQ5ek0xMjggMjI0bDAgMTkyIDY0IDAgMC0xOTItNjQgMHptNDMyIDQ4LjFjMC0xNy43LTE0LjMtMzItMzItMzJzLTMyIDE0LjMtMzIgMzJsMCA0Ny45IDY0IDAgMC00Ny45ek00MTYgMzY4YzAtMjAuOSAxMy40LTM4LjcgMzItNDUuM2wwLTUwLjZjMC00NC4yIDM1LjgtODAgODAtODBzODAgMzUuOCA4MCA4MGwwIDUwLjZjMTguNiA2LjYgMzIgMjQuNCAzMiA0NS4zbDAgOTZjMCAyNi41LTIxLjUgNDgtNDggNDhsLTEyOCAwYy0yNi41IDAtNDgtMjEuNS00OC00OGwwLTk2eiJdfSxGQ2U9e3ByZWZpeDoiZmFzIixpY29uTmFtZToidHJ1Y2stZmllbGQtdW4iLGljb246WzY0MCw1MTIsW10sImU1OGUiLCJNOTYgMzJDNjAuNyAzMiAzMiA2MC43IDMyIDk2bDAgMzJjLTE3LjcgMC0zMiAxNC4zLTMyIDMybDAgOTZjMCAxNy43IDE0LjMgMzIgMzIgMzJsMCA0OGMwIDIxLjEgMTMuNyAzOS4xIDMyLjYgNDUuNS0uNCAzLjQtLjYgNy0uNiAxMC41IDAgNDguNiAzOS40IDg4IDg4IDg4czg4LTM5LjQgODgtODhjMC0yLjctLjEtNS40LS40LThsMTQ0LjcgMGMtLjIgMi42LS40IDUuMy0uNCA4IDAgNDguNiAzOS40IDg4IDg4IDg4czg4LTM5LjQgODgtODhjMC0yLjctLjEtNS40LS40LThsLjQgMGMyNi41IDAgNDgtMjEuNSA0OC00OGwwLTY0YzAtMjYuNS0yMS41LTQ4LTQ4LTQ4bC0yNC43IDAtMS43LTQuMi00My44LTEwNi4zYy0xMi4zLTMwLTQxLjYtNDkuNS03NC00OS41bC00MC40IDBDMzY0LjQgNDQuOSAzNDMuNyAzMiAzMjAgMzJMOTYgMzJ6TTM4NCAyMjRsMC05NiAzMS45IDBjNi41IDAgMTIuMyAzLjkgMTQuOCA5LjlsMzUuNCA4Ni4xLTgyLjEgMHpNMTUyIDM1MmE0MCA0MCAwIDEgMSAwIDgwIDQwIDQwIDAgMSAxIDAtODB6bTI4MCA0MGE0MCA0MCAwIDEgMSA4MCAwIDQwIDQwIDAgMSAxIC04MCAwek0yNTYuNiAxMzIuOWwyNy40IDQxIDAtMjkuOWMwLTExIDktMjAgMjAtMjBzMjAgOSAyMCAyMGwwIDk2YzAgOC44LTUuOCAxNi42LTE0LjIgMTkuMXMtMTcuNS0uNy0yMi40LThsLTI3LjQtNDEgMCAyOS45YzAgMTEtOSAyMC0yMCAyMHMtMjAtOS0yMC0yMGwwLTk2YzAtOC44IDUuOC0xNi42IDE0LjItMTkuMXMxNy41IC43IDIyLjQgOHpNMTMyIDE0NGwwIDY0YzAgNi42IDUuNCAxMiAxMiAxMnMxMi01LjQgMTItMTJsMC02NGMwLTExIDktMjAgMjAtMjBzMjAgOSAyMCAyMGwwIDY0YzAgMjguNy0yMy4zIDUyLTUyIDUycy01Mi0yMy4zLTUyLTUybDAtNjRjMC0xMSA5LTIwIDIwLTIwczIwIDkgMjAgMjB6Il19LFNOPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImNsb2NrIixpY29uOls1MTIsNTEyLFsxMjgzMzksImNsb2NrLWZvdXIiXSwiZjAxNyIsIk0yNTYgMGEyNTYgMjU2IDAgMSAxIDAgNTEyIDI1NiAyNTYgMCAxIDEgMC01MTJ6TTIzMiAxMjBsMCAxMzZjMCA4IDQgMTUuNSAxMC43IDIwbDk2IDY0YzExIDcuNCAyNS45IDQuNCAzMy4zLTYuN3M0LjQtMjUuOS02LjctMzMuM0wyODAgMjQzLjIgMjgwIDEyMGMwLTEzLjMtMTAuNy0yNC0yNC0yNHMtMjQgMTAuNy0yNCAyNHoiXX0sT0NlPVNOLFJDZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJib29rIixpY29uOls0NDgsNTEyLFsxMjgyMTJdLCJmMDJkIiwiTTM4NCA1MTJMOTYgNTEyYy01MyAwLTk2LTQzLTk2LTk2TDAgOTZDMCA0MyA0MyAwIDk2IDBMNDAwIDBjMjYuNSAwIDQ4IDIxLjUgNDggNDhsMCAyODhjMCAyMC45LTEzLjQgMzguNy0zMiA0NS4zbDAgNjYuN2MxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMmwtMzIgMHpNOTYgMzg0Yy0xNy43IDAtMzIgMTQuMy0zMiAzMnMxNC4zIDMyIDMyIDMybDI1NiAwIDAtNjQtMjU2IDB6bTMyLTIzMmMwIDEzLjMgMTAuNyAyNCAyNCAyNGwxNzYgMGMxMy4zIDAgMjQtMTAuNyAyNC0yNHMtMTAuNy0yNC0yNC0yNGwtMTc2IDBjLTEzLjMgMC0yNCAxMC43LTI0IDI0em0yNCA3MmMtMTMuMyAwLTI0IDEwLjctMjQgMjRzMTAuNyAyNCAyNCAyNGwxNzYgMGMxMy4zIDAgMjQtMTAuNyAyNC0yNHMtMTAuNy0yNC0yNC0yNGwtMTc2IDB6Il19LENOPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImZhY2UtbGF1Z2gtd2luayIsaWNvbjpbNTEyLDUxMixbImxhdWdoLXdpbmsiXSwiZjU5YyIsIk0yNTYgNTEyYTI1NiAyNTYgMCAxIDAgMC01MTIgMjU2IDI1NiAwIDEgMCAwIDUxMnpNMTAxLjYgMzE0Yy0zLjctMTMuNyA3LjUtMjYgMjEuNy0yNmwyNjUuNCAwYzE0LjIgMCAyNS40IDEyLjMgMjEuNyAyNi0xOC41IDY4LTgwLjYgMTE4LTE1NC40IDExOFMxMjAgMzgyIDEwMS42IDMxNHpNMTQ0IDE5MmEzMiAzMiAwIDEgMSA2NCAwIDMyIDMyIDAgMSAxIC02NCAwem0xNjQgOGMwIDExLTkgMjAtMjAgMjBzLTIwLTktMjAtMjBjMC0zMy4xIDI2LjktNjAgNjAtNjBsMTYgMGMzMy4xIDAgNjAgMjYuOSA2MCA2MCAwIDExLTkgMjAtMjAgMjBzLTIwLTktMjAtMjAtOS0yMC0yMC0yMGwtMTYgMGMtMTEgMC0yMCA5LTIwIDIweiJdfSxCQ2U9Q04sSENlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImNsb3VkLW1lYXRiYWxsIixpY29uOls1MTIsNTEyLFtdLCJmNzNiIiwiTTAgMjI0YzAgNTMgNDMgOTYgOTYgOTZsMjYuOSAwYzMuNS0xMi4xIDEwLjEtMjMuMyAxOS4yLTMyLjRsMS40LTEuNGMxNS0xNSAzNS4zLTIyLjkgNTYuMS0yMi4yIDE0LjItMTUuMSAzNC4yLTIzLjkgNTUuNC0yMy45bDIgMGMyMS4xIDAgNDEuMSA4LjggNTUuNCAyMy45IDIwLjgtLjYgNDEuMSA3LjMgNTYuMSAyMi4ybDEuNCAxLjRjOS4yIDkuMiAxNS43IDIwLjQgMTkuMiAzMi40bDI2LjkgMGM1MyAwIDk2LTQzIDk2LTk2cy00My05Ni05Ni05NmMtLjUgMC0xLjEgMC0xLjYgMCAxLjEtNS4yIDEuNi0xMC41IDEuNi0xNiAwLTQ0LjItMzUuOC04MC04MC04MC0yNC4zIDAtNDYuMSAxMC45LTYwLjggMjgtMTguNy0zNS43LTU2LjEtNjAtOTkuMi02MC02MS45IDAtMTEyIDUwLjEtMTEyIDExMiAwIDcuMSAuNyAxNC4xIDEuOSAyMC44LTM4LjMgMTIuNi02NS45IDQ4LjctNjUuOSA5MS4yek0xNTYuNSA0MjQuM2M5LjUgNi4zIDE0LjIgMTcuNyAxMS45IDI4LjgtMS44IDkuMiAxIDE4LjcgNy43IDI1LjNsMS40IDEuNGM2LjYgNi42IDE2LjEgOS41IDI1LjMgNy43IDExLjEtMi4yIDIyLjUgMi41IDI4LjggMTEuOSA1LjIgNy44IDE0IDEyLjUgMjMuMyAxMi41bDIgMGM5LjQgMCAxOC4xLTQuNyAyMy4zLTEyLjUgNi4zLTkuNSAxNy43LTE0LjIgMjguOC0xMS45IDkuMiAxLjggMTguNy0xIDI1LjMtNy43bDEuNC0xLjRjNi42LTYuNiA5LjUtMTYuMSA3LjctMjUuMy0yLjItMTEuMSAyLjUtMjIuNSAxMS45LTI4LjggNy44LTUuMiAxMi41LTE0IDEyLjUtMjMuM2wwLTJjMC05LjQtNC43LTE4LjEtMTIuNS0yMy4zLTkuNS02LjMtMTQuMi0xNy43LTExLjktMjguOCAxLjgtOS4yLTEtMTguNy03LjctMjUuM2wtMS40LTEuNGMtNi42LTYuNi0xNi4xLTkuNS0yNS4zLTcuNy0xMS4xIDIuMi0yMi41LTIuNS0yOC44LTExLjktNS4yLTcuOC0xNC0xMi41LTIzLjMtMTIuNWwtMiAwYy05LjQgMC0xOC4xIDQuNy0yMy4zIDEyLjUtNi4zIDkuNS0xNy43IDE0LjItMjguOCAxMS45LTkuMi0xLjgtMTguNyAxLTI1LjMgNy43bC0xLjQgMS40Yy02LjYgNi42LTkuNSAxNi4xLTcuNyAyNS4zIDIuMiAxMS4xLTIuNSAyMi41LTExLjkgMjguOC03LjggNS4yLTEyLjUgMTQtMTIuNSAyMy4zbDAgMmMwIDkuNCA0LjcgMTguMSAxMi41IDIzLjN6TTQ4IDQ0OGE0OCA0OCAwIDEgMCAwLTk2IDQ4IDQ4IDAgMSAwIDAgOTZ6bTQxNiAwYTQ4IDQ4IDAgMSAwIDAtOTYgNDggNDggMCAxIDAgMCA5NnoiXX0sX049e3ByZWZpeDoiZmFzIixpY29uTmFtZToiY2hhcnQtYXJlYSIsaWNvbjpbNTEyLDUxMixbImFyZWEtY2hhcnQiXSwiZjFmZSIsIk0zMiAzMmMxNy43IDAgMzIgMTQuMyAzMiAzMmwwIDMzNmMwIDguOCA3LjIgMTYgMTYgMTZsNDAwIDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJMODAgNDgwYy00NC4yIDAtODAtMzUuOC04MC04MEwwIDY0QzAgNDYuMyAxNC4zIDMyIDMyIDMyek0yNDAgOTZjNi43IDAgMTMuMSAyLjggMTcuNyA3LjhMMzI4LjggMTgxLjMgMzc1IDEzNWM5LjQtOS40IDI0LjYtOS40IDMzLjkgMGw2NCA2NGM0LjUgNC41IDcgMTAuNiA3IDE3bDAgMTEyYzAgMTMuMy0xMC43IDI0LTI0IDI0bC0zMDQgMGMtMTMuMyAwLTI0LTEwLjctMjQtMjRsMC0xMTJjMC02IDIuMy0xMS44IDYuMy0xNi4ybDg4LTk2YzQuNS01IDExLTcuOCAxNy43LTcuOHoiXX0scUNlPV9OLFZDZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJydXBpYWgtc2lnbiIsaWNvbjpbNTEyLDUxMixbXSwiZTIzZCIsIk0wIDY0QzAgNDYuMyAxNC4zIDMyIDMyIDMybDgwIDBjNzkuNSAwIDE0NCA2NC41IDE0NCAxNDQgMCA1NC4zLTMwIDEwMS41LTc0LjQgMTI2LjFsNDEgMTM2LjdjNS4xIDE2LjktNC41IDM0LjgtMjEuNSAzOS44cy0zNC44LTQuNS0zOS44LTIxLjVMMTIwLjEgMzE5LjhjLTIuNyAuMS01LjQgLjItOC4xIC4ybC00OCAwIDAgMTI4YzAgMTcuNy0xNC4zIDMyLTMyIDMyUzAgNDY1LjcgMCA0NDhMMCA2NHpNNjQgMjU2bDQ4IDBjNDQuMiAwIDgwLTM1LjggODAtODBzLTM1LjgtODAtODAtODBsLTQ4IDAgMCAxNjB6bTI1Ni0zMmw4MCAwYzYxLjkgMCAxMTIgNTAuMSAxMTIgMTEyUzQ2MS45IDQ0OCA0MDAgNDQ4bC00OCAwIDAgNjRjMCAxNy43LTE0LjMgMzItMzIgMzJzLTMyLTE0LjMtMzItMzJsMC0yNTZjMC0xNy43IDE0LjMtMzIgMzItMzJ6bTgwIDE2MGMyNi41IDAgNDgtMjEuNSA0OC00OHMtMjEuNS00OC00OC00OGwtNDggMCAwIDk2IDQ4IDB6Il19LGpDZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJ0ZXh0LXdpZHRoIixpY29uOls0NDgsNTEyLFtdLCJmMDM1IiwiTTQwIDBDMTcuOSAwIDAgMTcuOSAwIDQwTDAgOTZjMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMmwwLTMyIDEyOCAwIDAgMTYwLTMyIDBjLTE3LjcgMC0zMiAxNC4zLTMyIDMyczE0LjMgMzIgMzIgMzJsMTI4IDBjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJsLTMyIDAgMC0xNjAgMTI4IDAgMCAzMmMwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMybDAtNTZjMC0yMi4xLTE3LjktNDAtNDAtNDBMNDAgMHptNzguNiA0MDYuNmMxMi41LTEyLjUgMTIuNS0zMi44IDAtNDUuM3MtMzIuOC0xMi41LTQ1LjMgMGwtNjQgNjRjLTEyLjUgMTIuNS0xMi41IDMyLjggMCA0NS4zbDY0IDY0YzEyLjUgMTIuNSAzMi44IDEyLjUgNDUuMyAwczEyLjUtMzIuOCAwLTQ1LjNsLTkuNC05LjQgMjI5LjUgMC05LjQgOS40Yy0xMi41IDEyLjUtMTIuNSAzMi44IDAgNDUuM3MzMi44IDEyLjUgNDUuMyAwbDY0LTY0YzEyLjUtMTIuNSAxMi41LTMyLjggMC00NS4zbC02NC02NGMtMTIuNS0xMi41LTMyLjgtMTIuNS00NS4zIDBzLTEyLjUgMzIuOCAwIDQ1LjNsOS40IDkuNC0yMjkuNSAwIDkuNC05LjR6Il19LFVDZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJzYXRlbGxpdGUiLGljb246WzUxMiw1MTIsWzEyODc1Ml0sImY3YmYiLCJNMTk5IDdjOS40LTkuNCAyNC42LTkuNCAzMy45IDBsODkuNCA4OS40IDU1LTU1YzEyLjUtMTIuNSAzMi44LTEyLjUgNDUuMyAwbDQ4IDQ4YzEyLjUgMTIuNSAxMi41IDMyLjggMCA0NS4zbC01NSA1NSA4OS40IDg5LjRjOS40IDkuNCA5LjQgMjQuNiAwIDMzLjlsLTk2IDk2Yy05LjQgOS40LTI0LjYgOS40LTMzLjkgMGwtODkuNC04OS40LTE1LjUgMTUuNWMxMS40IDI0LjYgMTcuOCA1MiAxNy44IDgwLjkgMCAzMS43LTcuNyA2MS41LTIxLjIgODcuOC00LjcgOS0xNi43IDEwLjMtMjMuOCAzLjFsLTk2LjMtOTYuMy02MCA2MGMtMTIuNSAxMi41LTMyLjggMTIuNS00NS4zIDBzLTEyLjUtMzIuOCAwLTQ1LjNsNjAtNjAtOTYuMy05Ni4zYy03LjItNy4yLTUuOS0xOS4yIDMuMS0yMy44IDI2LjMtMTMuNiA1Ni4yLTIxLjIgODcuOC0yMS4yIDI4LjkgMCA1Ni4zIDYuNCA4MC45IDE3LjhMMTkyLjQgMjI2LjMgMTAzIDEzN2MtOS40LTkuNC05LjQtMjQuNiAwLTMzLjlMMTk5IDd6bTE3IDUwLjlsLTYyLjEgNjIuMSA3Mi40IDcyLjQgNjIuMS02Mi4xLTcyLjQtNzIuNHpNMzkyIDM1OC4xbDYyLjEtNjIuMS03Mi40LTcyLjQtNjIuMSA2Mi4xIDcyLjQgNzIuNHoiXX0sVE49e3ByZWZpeDoiZmFzIixpY29uTmFtZToibWFnbmlmeWluZy1nbGFzcy1taW51cyIsaWNvbjpbNTEyLDUxMixbInNlYXJjaC1taW51cyJdLCJmMDEwIiwiTTQxNiAyMDhjMCA0NS45LTE0LjkgODguMy00MCAxMjIuN0w1MDIuNiA0NTcuNGMxMi41IDEyLjUgMTIuNSAzMi44IDAgNDUuM3MtMzIuOCAxMi41LTQ1LjMgMEwzMzAuNyAzNzZDMjk2LjMgNDAxLjEgMjUzLjkgNDE2IDIwOCA0MTYgOTMuMSA0MTYgMCAzMjIuOSAwIDIwOFM5My4xIDAgMjA4IDAgNDE2IDkzLjEgNDE2IDIwOHpNMTM2IDE4NGMtMTMuMyAwLTI0IDEwLjctMjQgMjRzMTAuNyAyNCAyNCAyNGwxNDQgMGMxMy4zIDAgMjQtMTAuNyAyNC0yNHMtMTAuNy0yNC0yNC0yNGwtMTQ0IDB6Il19LFdDZT1UTixHQ2U9e3ByZWZpeDoiZmFzIixpY29uTmFtZToicGVvcGxlLWdyb3VwIixpY29uOls1MTIsNTEyLFtdLCJlNTMzIiwiTTI1NiAwYTY0IDY0IDAgMSAxIDAgMTI4IDY0IDY0IDAgMSAxIDAtMTI4em05NiAzMTJjMCAyNS0xMi43IDQ3LTMyIDU5LjlsMCA5Mi4xYzAgMjYuNS0yMS41IDQ4LTQ4IDQ4bC0zMiAwYy0yNi41IDAtNDgtMjEuNS00OC00OGwwLTkyLjFDMTcyLjcgMzU5IDE2MCAzMzcgMTYwIDMxMmwwLTQwYzAtNTMgNDMtOTYgOTYtOTZzOTYgNDMgOTYgOTZsMCA0MHpNOTYgMzJhNTYgNTYgMCAxIDEgMCAxMTIgNTYgNTYgMCAxIDEgMC0xMTJ6bTE2IDI0MGwwIDMyYzAgMzIuNSAxMi4xIDYyLjEgMzIgODQuN2wwIDc1LjNjMCAxLjIgMCAyLjUgLjEgMy43LTguNSA3LjYtMTkuNyAxMi4zLTMyLjEgMTIuM2wtMzIgMGMtMjYuNSAwLTQ4LTIxLjUtNDgtNDhsMC01Ni42QzEyLjkgMzY0LjQgMCAzNDMuNyAwIDMyMGwwLTMyYzAtNTMgNDMtOTYgOTYtOTYgMTIuNyAwIDI0LjggMi41IDM1LjkgNi45LTEyLjYgMjEuNC0xOS45IDQ2LjQtMTkuOSA3My4xek0zNjggNDY0bDAtNzUuM2MxOS45LTIyLjUgMzItNTIuMiAzMi04NC43bDAtMzJjMC0yNi43LTcuMy01MS42LTE5LjktNzMuMSAxMS4xLTQuNSAyMy4yLTYuOSAzNS45LTYuOSA1MyAwIDk2IDQzIDk2IDk2bDAgMzJjMCAyMy43LTEyLjkgNDQuNC0zMiA1NS40bDAgNTYuNmMwIDI2LjUtMjEuNSA0OC00OCA0OGwtMzIgMGMtMTIuMyAwLTIzLjYtNC42LTMyLjEtMTIuMyAwLTEuMiAuMS0yLjUgLjEtMy43ek00MTYgMzJhNTYgNTYgMCAxIDEgMCAxMTIgNTYgNTYgMCAxIDEgMC0xMTJ6Il19LFlDZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJzcXVhcmUtYmluYXJ5IixpY29uOls0NDgsNTEyLFtdLCJlNjliIiwiTTAgOTZDMCA2MC43IDI4LjcgMzIgNjQgMzJsMzIwIDBjMzUuMyAwIDY0IDI4LjcgNjQgNjRsMCAzMjBjMCAzNS4zLTI4LjcgNjQtNjQgNjRMNjQgNDgwYy0zNS4zIDAtNjQtMjguNy02NC02NEwwIDk2em0xNDQgNGMtMjQuMyAwLTQ0IDE5LjctNDQgNDRsMCA0OGMwIDI0LjMgMTkuNyA0NCA0NCA0NGwzMiAwYzI0LjMgMCA0NC0xOS43IDQ0LTQ0bDAtNDhjMC0yNC4zLTE5LjctNDQtNDQtNDRsLTMyIDB6bS00IDQ0YzAtMi4yIDEuOC00IDQtNGwzMiAwYzIuMiAwIDQgMS44IDQgNGwwIDQ4YzAgMi4yLTEuOCA0LTQgNGwtMzIgMGMtMi4yIDAtNC0xLjgtNC00bDAtNDh6bTE0MC00NGMtMTEgMC0yMCA5LTIwIDIwIDAgOS43IDYuOSAxNy43IDE2IDE5LjZsMCA3Ni40YzAgMTEgOSAyMCAyMCAyMHMyMC05IDIwLTIwbDAtOTZjMC0xMS05LTIwLTIwLTIwbC0xNiAwek0xMzIgMjk2YzAgOS43IDYuOSAxNy43IDE2IDE5LjZsMCA3Ni40YzAgMTEgOSAyMCAyMCAyMHMyMC05IDIwLTIwbDAtOTZjMC0xMS05LTIwLTIwLTIwbC0xNiAwYy0xMSAwLTIwIDktMjAgMjB6bTk2IDI0bDAgNDhjMCAyNC4zIDE5LjcgNDQgNDQgNDRsMzIgMGMyNC4zIDAgNDQtMTkuNyA0NC00NGwwLTQ4YzAtMjQuMy0xOS43LTQ0LTQ0LTQ0bC0zMiAwYy0yNC4zIDAtNDQgMTkuNy00NCA0NHptNDQtNGwzMiAwYzIuMiAwIDQgMS44IDQgNGwwIDQ4YzAgMi4yLTEuOCA0LTQgNGwtMzIgMGMtMi4yIDAtNC0xLjgtNC00bDAtNDhjMC0yLjIgMS44LTQgNC00eiJdfSxMTj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJtYXNrcy10aGVhdGVyIixpY29uOls1NzYsNTEyLFsxMjc5MTcsInRoZWF0ZXItbWFza3MiXSwiZjYzMCIsIk0tNSAxMThMMjMuNSAyNzkuN2MxNCA3OS41IDc2LjMgMTQxLjggMTU1LjggMTU1LjhsMTIuNyAyLjJjLTE2LjUtMjguNi0yNy4xLTYwLjctMzAuNi05NC41bC0yNC4xIDQuM2MtOS43IDEuNy0xOC44LTUuOC0xNi45LTE1LjUgNC44LTI0LjcgMTkuMS00Ni42IDM5LjctNjAuOWwwLTc0LjZjLTEuNCAuOC0zIDEuMy00LjcgMS42bC02MyAxMS4xYy04LjcgMS41LTE3LjMtNC40LTE1LjktMTMuMSAzLjEtMTkuNiAxOC40LTM2IDM5LjEtMzkuNyAxNy4yLTMgMzMuOSAzLjUgNDQuNiAxNS44bDAtMjIuN2MwLTIyLjUgNi45LTUyLjQgMzIuMy03My40IDI2LTIxLjUgNjcuNy00My45IDEyNC45LTU0LjItMzAuNS0xNi4zLTg2LjMtMzItMTYzLjgtMTguNC04MC4zIDE0LjItMTI4IDUwLjEtMTUwLjEgNzYuMS05IDEwLjUtMTAuOCAyNC45LTguNCAzOC41ek0yMDggMTM4LjdsMCAxNzQuOGMwIDgwLjcgNTAuNSAxNTIuOSAxMjYuNCAxODAuNEwzNjIuMSA1MDRjMTQuMSA1LjEgMjkuNiA1LjEgNDMuNyAwTDQzMy42IDQ5NEM1MDkuNSA0NjYuNCA1NjAgMzk0LjMgNTYwIDMxMy41bDAtMTc0LjhjMC02LjktMi4xLTEzLjgtNy0xOC42LTIyLjYtMjIuNS03OC4yLTU2LTE2OS01NnMtMTQ2LjQgMzMuNi0xNjkgNTZjLTQuOSA0LjktNyAxMS43LTcgMTguNnptNjYuMSAxODcuMWMtMS40LTcgNy0xMSAxMi43LTYuNiAyNi45IDIwLjYgNjAuNiAzMi45IDk3LjIgMzIuOXM3MC4yLTEyLjMgOTcuMi0zMi45YzUuNy00LjQgMTQuMS0uNCAxMi43IDYuNi0xMC4xIDUxLjQtNTUuNSA5MC4zLTEwOS45IDkwLjNzLTk5LjgtMzguOC0xMDkuOS05MC4zem0uNS0xMDEuNUMyODEuMiAyMDUuNSAyOTkgMTkyIDMyMCAxOTJzMzguOSAxMy41IDQ1LjQgMzIuM2MyLjkgOC40LTQuNSAxNS43LTEzLjQgMTUuN2wtNjQgMGMtOC44IDAtMTYuMy03LjQtMTMuNC0xNS43ek00ODAgMjQwbC02NCAwYy04LjggMC0xNi4zLTcuNC0xMy40LTE1LjcgNi41LTE4LjggMjQuNC0zMi4zIDQ1LjQtMzIuM3MzOC45IDEzLjUgNDUuNCAzMi4zYzIuOSA4LjQtNC41IDE1LjctMTMuNCAxNS43eiJdfSxaQ2U9TE4sWENlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImNhcnQtcGx1cyIsaWNvbjpbNjQwLDUxMixbXSwiZjIxNyIsIk0wIDhDMC01LjMgMTAuNy0xNiAyNC0xNmw0NS4zIDBjMjcuMSAwIDUwLjMgMTkuNCA1NS4xIDQ2bC40IDIgNDEyLjcgMGMyMCAwIDM1LjEgMTguMiAzMS40IDM3LjlMNTM3LjggMjM1LjhjLTUuNyAzMC4zLTMyLjEgNTIuMi02Mi45IDUyLjJsLTMwMy42IDAgNS4xIDI4LjNjMi4xIDExLjQgMTIgMTkuNyAyMy42IDE5LjdMNDU2IDMzNmMxMy4zIDAgMjQgMTAuNyAyNCAyNHMtMTAuNyAyNC0yNCAyNGwtMjU1LjkgMGMtMzQuOCAwLTY0LjYtMjQuOS03MC44LTU5LjFMNzcuMiAzOC42Yy0uNy0zLjgtNC02LjYtNy45LTYuNkwyNCAzMkMxMC43IDMyIDAgMjEuMyAwIDh6TTE2MCA0NjRhNDggNDggMCAxIDEgOTYgMCA0OCA0OCAwIDEgMSAtOTYgMHptMjI0IDBhNDggNDggMCAxIDEgOTYgMCA0OCA0OCAwIDEgMSAtOTYgMHpNMzM2IDc4LjRjLTEzLjMgMC0yNCAxMC43LTI0IDI0bDAgMzMuNi0zMy42IDBjLTEzLjMgMC0yNCAxMC43LTI0IDI0czEwLjcgMjQgMjQgMjRsMzMuNiAwIDAgMzMuNmMwIDEzLjMgMTAuNyAyNCAyNCAyNHMyNC0xMC43IDI0LTI0bDAtMzMuNiAzMy42IDBjMTMuMyAwIDI0LTEwLjcgMjQtMjRzLTEwLjctMjQtMjQtMjRsLTMzLjYgMCAwLTMzLjZjMC0xMy4zLTEwLjctMjQtMjQtMjR6Il19LE81PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImhhbmRzLWFzbC1pbnRlcnByZXRpbmciLGljb246WzY0MCw1MTIsWyJhbWVyaWNhbi1zaWduLWxhbmd1YWdlLWludGVycHJldGluZyIsImFzbC1pbnRlcnByZXRpbmciLCJoYW5kcy1hbWVyaWNhbi1zaWduLWxhbmd1YWdlLWludGVycHJldGluZyJdLCJmMmEzIiwiTTE1Ni42IDQ2LjNjNy45LTE1LjggMS41LTM1LTE0LjMtNDIuOXMtMzUtMS41LTQyLjkgMTQuM0wxMy41IDE4OS40QzQuNiAyMDcuMiAwIDIyNi44IDAgMjQ2LjdMMCAyNTZjMCA3MC43IDU3LjMgMTI4IDEyOCAxMjhsODAgMCAwLS4zYzM1LjItMi43IDY1LjQtMjIuOCA4Mi4xLTUxLjcgOC44LTE1LjMgMy42LTM0LjktMTEuNy00My43cy0zNC45LTMuNi00My43IDExLjdjLTcgMTItMTkuOSAyMC0zNC43IDIwLTIyLjEgMC00MC0xNy45LTQwLTQwczE3LjktNDAgNDAtNDBjMTQuOCAwIDI3LjcgOCAzNC43IDIwIDguOCAxNS4zIDI4LjQgMjAuNSA0My43IDExLjdzMjAuNS0yOC40IDExLjctNDMuN2MtMTIuOC0yMi4xLTMzLjYtMzkuMS01OC40LTQ3LjFsODAuOC0yMmMxNy00LjYgMjcuMS0yMi4yIDIyLjUtMzkuM3MtMjIuMi0yNy4xLTM5LjMtMjIuNWwtMTAwLjcgMjcuNSA4MS42LTY4YzEzLjYtMTEuMyAxNS40LTMxLjUgNC4xLTQ1LjFTMjQ5LjEtMy45IDIzNS41IDcuNGwtMTAxLjkgODQuOSAyMy00NnpNNDgzLjQgNDY1LjdjLTcuOSAxNS44LTEuNSAzNSAxNC4zIDQyLjlzMzUgMS41IDQyLjktMTQuM2w4NS45LTE3MS43YzguOS0xNy44IDEzLjUtMzcuNCAxMy41LTU3LjJsMC05LjNjMC03MC43LTU3LjMtMTI4LTEyOC0xMjhsLTgwIDAgMCAuM2MtMzUuMiAyLjctNjUuNCAyMi44LTgyLjEgNTEuNy04LjkgMTUuMy0zLjYgMzQuOSAxMS43IDQzLjdzMzQuOSAzLjYgNDMuNy0xMS43YzctMTIgMTkuOS0yMCAzNC43LTIwIDIyLjEgMCA0MCAxNy45IDQwIDQwcy0xNy45IDQwLTQwIDQwYy0xNC44IDAtMjcuNy04LTM0LjctMjAtOC45LTE1LjMtMjguNC0yMC41LTQzLjctMTEuN3MtMjAuNSAyOC40LTExLjcgNDMuN2MxMi44IDIyLjEgMzMuNiAzOS4xIDU4LjQgNDcuMWwtODAuOCAyMmMtMTcuMSA0LjYtMjcuMSAyMi4yLTIyLjUgMzkuM3MyMi4yIDI3LjEgMzkuMyAyMi41bDEwMC43LTI3LjUtODEuNiA2OGMtMTMuNiAxMS4zLTE1LjQgMzEuNS00LjEgNDUuMXMzMS41IDE1LjQgNDUuMSA0LjFsMTAxLjktODQuOS0yMyA0NnoiXX0sS0NlPU81LFFDZT1PNSxKQ2U9TzUsZV9lPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InRhYmxlLWNlbGxzLXJvdy11bmxvY2siLGljb246WzY0MCw1MTIsW10sImU2OTEiLCJNMjU2IDIyNGwwIDE5MiA2NCAwIDAtMTkyLTY0IDB6bTI1Ni03OWMtNDYuNyA1LjgtODUuNiAzNi44LTEwMi43IDc5bC0yNS4zIDAgMCA5MC44Yy0xMC4xIDE1LjItMTYgMzMuNC0xNiA1My4xbDAgOTZjMCA1LjUgLjUgMTAuOSAxLjMgMTYuMUwxMjggNDgwYy0zNS4zIDAtNjQtMjguNy02NC02NEw2NCA5NmMwLTM1LjMgMjguNy02NCA2NC02NGwzMjAgMGMzNS4zIDAgNjQgMjguNyA2NCA2NGwwIDQ5ek0xMjggMjI0bDAgMTkyIDY0IDAgMC0xOTItNjQgMHptNDMyIDQ4Yy0uMS0xNy42LTE0LjQtMzEuOS0zMi0zMS45LTE3LjcgMC0zMiAxNC4zLTMyIDMybDAgNDcuOSA5NiAwYzI2LjUgMCA0OCAyMS41IDQ4IDQ4bDAgOTZjMCAyNi41LTIxLjUgNDgtNDggNDhsLTEyOCAwYy0yNi41IDAtNDgtMjEuNS00OC00OGwwLTk2YzAtMjAuOSAxMy40LTM4LjcgMzItNDUuM2wwLTUwLjZjMC00NC4yIDM1LjgtODAgODAtODAgNDQuMiAwIDc5LjkgMzUuOCA4MCA3OS45bC00OCAweiJdfSx0X2U9e3ByZWZpeDoiZmFzIixpY29uTmFtZToicm9ja2V0IixpY29uOls1MTIsNTEyLFtdLCJmMTM1IiwiTTEyOCAzMjBMMjQuNSAzMjBjLTI0LjkgMC00MC4yLTI3LjEtMjcuNC00OC41TDUwIDE4My4zQzU4LjcgMTY4LjggNzQuMyAxNjAgOTEuMiAxNjBsOTUgMGM3Ni4xLTEyOC45IDE4OS42LTEzNS40IDI2NS41LTEyNC4zIDEyLjggMS45IDIyLjggMTEuOSAyNC42IDI0LjYgMTEuMSA3NS45IDQuNiAxODkuNC0xMjQuMyAyNjUuNWwwIDk1YzAgMTYuOS04LjggMzIuNS0yMy4zIDQxLjJsLTg4LjIgNTIuOWMtMjEuMyAxMi44LTQ4LjUtMi42LTQ4LjUtMjcuNEwxOTIgMzg0YzAtMzUuMy0yOC43LTY0LTY0LTY0bC0uMSAwek00MDAgMTYwYTQ4IDQ4IDAgMSAwIC05NiAwIDQ4IDQ4IDAgMSAwIDk2IDB6Il19LGFfZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJzaHJpbXAiLGljb246WzUxMiw1MTIsWzEyOTQyNF0sImU0NDgiLCJNNzIgMzJDMzIuMiAzMiAwIDY0LjIgMCAxMDQgMCAxNDEuOSAyOS4zIDE3Mi45IDY2LjQgMTc1LjggNzcuNiAyNTcuMiAxNDcuNCAzMjAgMjMyIDMyMGw1NiAwIDAtMTkyLTIxNiAwYy0xMy4zIDAtMjQtMTAuNy0yNC0yNFM1OC43IDgwIDcyIDgwbDM4NCAwYzEzLjMgMCAyNC0xMC43IDI0LTI0cy0xMC43LTI0LTI0LTI0TDcyIDMyek0yMjQgNDU2YzAgMTMuMyAxMC43IDI0IDI0IDI0bDcyIDAgMC03Mi4yLTY0LjEtMjIuNGMtMTIuNS00LjQtMjYuMiAyLjItMzAuNiAxNC43czIuMiAyNi4yIDE0LjcgMzAuNmw0LjUgMS42QzIzMyA0MzMuOSAyMjQgNDQzLjkgMjI0IDQ1NnptMTI4IDIzLjNjMzYuNC0zLjMgNjkuNS0xNy42IDk2LjEtMzkuNmwtODYuNS0zNC42Yy0zIDEuOC02LjIgMy4yLTkuNiA0LjNsMCA2OS45ek00NzIuNiA0MTVjMjQuNi0zMC4zIDM5LjQtNjguOSAzOS40LTExMSAwLTEyLjMtMS4zLTI0LjMtMy43LTM1LjlMMzgyLjggMzU1LjFjLjggMy40IDEuMiA3IDEuMiAxMC42IDAgNC42LS43IDktMS45IDEzLjFMNDcyLjYgNDE1ek0zMzYgMTI4bC0xNiAwIDAgMTkyIDE4LjMgMGM5LjkgMCAxOS4xIDMuMiAyNi42IDguNWwxMzMuNS05Mi40QzQ3MS44IDE3Mi42IDQwOS4xIDEyOCAzMzYgMTI4ek0xNjggMTkyYTI0IDI0IDAgMSAxIDQ4IDAgMjQgMjQgMCAxIDEgLTQ4IDB6Il19LCROPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InRlbmdlLXNpZ24iLGljb246WzM4NCw1MTIsWzgzNzYsInRlbmdlIl0sImY3ZDciLCJNMCA1NkMwIDQyLjcgMTAuNyAzMiAyNCAzMmwzMzYgMGMxMy4zIDAgMjQgMTAuNyAyNCAyNHMtMTAuNyAyNC0yNCAyNEwyNCA4MEMxMC43IDgwIDAgNjkuMyAwIDU2ek0wIDE2MGMwLTE3LjcgMTQuMy0zMiAzMi0zMmwzMjAgMGMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMmwtMTI4IDAgMCAyNTZjMCAxNy43LTE0LjMgMzItMzIgMzJzLTMyLTE0LjMtMzItMzJsMC0yNTYtMTI4IDBjLTE3LjcgMC0zMi0xNC4zLTMyLTMyeiJdfSxpX2U9JE4sQU49e3ByZWZpeDoiZmFzIixpY29uTmFtZToiaG91c2UtY2hpbW5leS1tZWRpY2FsIixpY29uOls1MTIsNTEyLFsiY2xpbmljLW1lZGljYWwiXSwiZjdmMiIsIk0yMzQuMiA4LjZjMTIuMy0xMS40IDMxLjMtMTEuNCA0My41IDBMMzY4IDkyLjMgMzY4IDgwYzAtMTcuNyAxNC4zLTMyIDMyLTMybDMyIDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJsMCAxMDEuNSAzNy44IDM1LjFjOS42IDkgMTIuOCAyMi45IDggMzUuMVM0OTMuMiAyNzIgNDgwIDI3MmwtMTYgMCAwIDE3NmMwIDM1LjMtMjguNyA2NC02NCA2NGwtMjg4IDBjLTM1LjMgMC02NC0yOC43LTY0LTY0bDAtMTc2LTE2IDBjLTEzLjIgMC0yNS04LjEtMjkuOC0yMC4zcy0xLjYtMjYuMiA4LTM1LjFsMjI0LTIwOHpNMjI0IDI0OGwwIDQwLTQwIDBjLTguOCAwLTE2IDcuMi0xNiAxNmwwIDMyYzAgOC44IDcuMiAxNiAxNiAxNmw0MCAwIDAgNDBjMCA4LjggNy4yIDE2IDE2IDE2bDMyIDBjOC44IDAgMTYtNy4yIDE2LTE2bDAtNDAgNDAgMGM4LjggMCAxNi03LjIgMTYtMTZsMC0zMmMwLTguOC03LjItMTYtMTYtMTZsLTQwIDAgMC00MGMwLTguOC03LjItMTYtMTYtMTZsLTMyIDBjLTguOCAwLTE2IDcuMi0xNiAxNnoiXX0scl9lPUFOLHNfZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJ1c2Vycy1zbGFzaCIsaWNvbjpbNjQwLDUxMixbXSwiZTA3MyIsIk03My0yNC45Yy05LjQtOS40LTI0LjYtOS40LTMzLjkgMFMyOS43LS4zIDM5IDkuMWw1MjggNTI4YzkuNCA5LjQgMjQuNiA5LjQgMzMuOSAwczkuNC0yNC42IDAtMzMuOUwzMjEuOCAyMjRjNTYuNi0xIDEwMi4yLTQ3LjIgMTAyLjItMTA0IDAtNTcuNC00Ni42LTEwNC0xMDQtMTA0LTU2LjggMC0xMDMgNDUuNi0xMDQgMTAyLjJMNzMtMjQuOXpNNTEyIDI4OGMtMTcuMiAwLTMzLjcgMy40LTQ4LjcgOS42bDE3MCAxNzBjNC4yLTUuNCA2LjctMTIuMiA2LjctMTkuNmwwLTMyYzAtNzAuNy01Ny4zLTEyOC0xMjgtMTI4ek01OS45IDk3LjdjLTIxLjUgMTIuNS0zNS45IDM1LjctMzUuOSA2Mi4zIDAgMzkuOCAzMi4yIDcyIDcyIDcyIDI2LjYgMCA0OS44LTE0LjQgNjIuMy0zNS45TDU5LjkgOTcuN3pNMjUwLjIgMjg4QzE5Ni44IDMxMy45IDE2MCAzNjguNyAxNjAgNDMybDAgMTZjMCAxNy43IDE0LjMgMzIgMzIgMzJsMjUwLjIgMC0xOTItMTkyek0xMjggMjg4QzU3LjMgMjg4IDAgMzQ1LjMgMCA0MTZsMCAzMmMwIDE3LjcgMTQuMyAzMiAzMiAzMmw4Ni43IDBjLTQuMy05LjgtNi43LTIwLjYtNi43LTMybDAtMTZjMC01My4yIDIwLTEwMS44IDUyLjktMTM4LjYtMTEuNy0zLjUtMjQuMS01LjQtMzYuOS01LjR6TTYxNiAxNjBhNzIgNzIgMCAxIDAgLTE0NCAwIDcyIDcyIDAgMSAwIDE0NCAweiJdfSxuX2U9e3ByZWZpeDoiZmFzIixpY29uTmFtZToicGFwZXItcGxhbmUiLGljb246WzU3Niw1MTIsWzYxOTEzXSwiZjFkOCIsIk01MzYuNC0yNi4zYzkuOC0zLjUgMjAuNi0xIDI4IDYuM3M5LjggMTguMiA2LjMgMjhsLTE3OCA0OTYuOWMtNSAxMy45LTE4LjEgMjMuMS0zMi44IDIzLjEtMTQuMiAwLTI3LTguNi0zMi4zLTIxLjdsLTY0LjItMTU4Yy00LjUtMTEtMi41LTIzLjYgNS4yLTMyLjZsOTQuNS0xMTIuNGM1LjEtNi4xIDQuNy0xNS0uOS0yMC42cy0xNC42LTYtMjAuNi0uOUwyMjkuMiAyNzYuMWMtOS4xIDcuNi0yMS42IDkuNi0zMi42IDUuMkwzOC4xIDIxNi44Yy0xMy4xLTUuMy0yMS43LTE4LjEtMjEuNy0zMi4zIDAtMTQuNyA5LjItMjcuOCAyMy4xLTMyLjhsNDk2LjktMTc4eiJdfSxETj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJib29rLWF0bGFzIixpY29uOls0NDgsNTEyLFsiYXRsYXMiXSwiZjU1OCIsIk05NiA1MTJsMzIwIDBjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJsMC02Ni43YzE4LjYtNi42IDMyLTI0LjQgMzItNDUuM2wwLTI4OGMwLTI2LjUtMjEuNS00OC00OC00OEw5NiAwQzQzIDAgMCA0MyAwIDk2TDAgNDE2YzAgNTMgNDMgOTYgOTYgOTZ6TTY0IDQxNmMwLTE3LjcgMTQuMy0zMiAzMi0zMmwyNTYgMCAwIDY0LTI1NiAwYy0xNy43IDAtMzItMTQuMy0zMi0zMnpNMzEwLjYgMjA4TDI3OSAyMDhjLTEuNCAyMy4xLTYgNDQuMi0xMi42IDYxLjIgMjIuNy0xMi41IDM5LjQtMzQuOCA0NC4yLTYxLjJ6bS0xNzMuMSAwYzQuOCAyNi40IDIxLjUgNDguNyA0NC4yIDYxLjItNi43LTE3LTExLjItMzgtMTIuNi02MS4ybC0zMS42IDB6bTc2LjQgNTVjNC41IDkuNiA4LjIgMTMuOCAxMC4yIDE1LjUgMi0xLjcgNS43LTUuOCAxMC4yLTE1LjUgNi4yLTEzLjQgMTEuMS0zMi41IDEyLjctNTVsLTQ1LjggMGMxLjYgMjIuNSA2LjUgNDEuNiAxMi43IDU1em0tMTIuNy04N2w0NS44IDBjLTEuNi0yMi41LTYuNS00MS42LTEyLjctNTUtNC41LTkuNi04LjItMTMuOC0xMC4yLTE1LjUtMiAxLjctNS43IDUuOC0xMC4yIDE1LjUtNi4yIDEzLjQtMTEuMSAzMi41LTEyLjcgNTV6bTEwOS41IDBjLTQuOC0yNi40LTIxLjUtNDguNy00NC4yLTYxLjIgNi43IDE3IDExLjIgMzggMTIuNiA2MS4ybDMxLjYgMHpNMTY5IDE3NmMxLjQtMjMuMSA2LTQ0LjIgMTIuNi02MS4yLTIyLjcgMTIuNS0zOS40IDM0LjgtNDQuMiA2MS4ybDMxLjYgMHpNOTYgMTkyYTEyOCAxMjggMCAxIDEgMjU2IDAgMTI4IDEyOCAwIDEgMSAtMjU2IDB6Il19LG9fZT1ETixsX2U9e3ByZWZpeDoiZmFzIixpY29uTmFtZToidGFibGUiLGljb246WzQ0OCw1MTIsW10sImYwY2UiLCJNMzg0IDMyYzM1LjMgMCA2NCAyOC43IDY0IDY0bDAgMzIwYzAgMzUuMy0yOC43IDY0LTY0IDY0bC0zMjAgMC02LjUtLjNDMjUuMiA0NzYuNCAwIDQ0OS4xIDAgNDE2TDAgOTZDMCA2MC43IDI4LjcgMzIgNjQgMzJsMzIwIDB6TTY0IDMyMGwwIDk2IDEyOCAwIDAtOTYtMTI4IDB6bTE5MiAwbDAgOTYgMTI4IDAgMC05Ni0xMjggMHpNNjQgMjU2bDEyOCAwIDAtOTYtMTI4IDAgMCA5NnptMTkyIDBsMTI4IDAgMC05Ni0xMjggMCAwIDk2eiJdfSxjX2U9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiaGVhcnQiLGljb246WzUxMiw1MTIsWzEyODE1MywxMjgxNTQsMTI4MTU1LDEyODE1NiwxMjg0MjAsMTI5MjkzLDEyOTI5NCwxMjk1MDUsOTgyOSwxMDA4NCw2MTU3OF0sImYwMDQiLCJNMjQxIDg3LjFsMTUgMjAuNyAxNS0yMC43QzI5NiA1Mi41IDMzNi4yIDMyIDM3OC45IDMyIDQ1Mi40IDMyIDUxMiA5MS42IDUxMiAxNjUuMWwwIDIuNmMwIDExMi4yLTEzOS45IDI0Mi41LTIxMi45IDI5OC4yLTEyLjQgOS40LTI3LjYgMTQuMS00My4xIDE0LjFzLTMwLjgtNC42LTQzLjEtMTQuMUMxMzkuOSA0MTAuMiAwIDI3OS45IDAgMTY3LjdsMC0yLjZDMCA5MS42IDU5LjYgMzIgMTMzLjEgMzIgMTc1LjggMzIgMjE2IDUyLjUgMjQxIDg3LjF6Il19LEVOPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImNpcmNsZS1jaGV2cm9uLXVwIixpY29uOls1MTIsNTEyLFsiY2hldnJvbi1jaXJjbGUtdXAiXSwiZjEzOSIsIk0yNTYgNTEyYTI1NiAyNTYgMCAxIDAgMC01MTIgMjU2IDI1NiAwIDEgMCAwIDUxMnpNMzc3IDI3MWM5LjQgOS40IDkuNCAyNC42IDAgMzMuOXMtMjQuNiA5LjQtMzMuOSAwbC04Ny04Ny04NyA4N2MtOS40IDkuNC0yNC42IDkuNC0zMy45IDBzLTkuNC0yNC42IDAtMzMuOUwyMzkgMTY3YzkuNC05LjQgMjQuNi05LjQgMzMuOSAwTDM3NyAyNzF6Il19LGRfZT1FTixQTj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJiYXR0ZXJ5LWhhbGYiLGljb246WzY0MCw1MTIsWyJiYXR0ZXJ5LTMiXSwiZjI0MiIsIk01MjggMTI4YzguOCAwIDE2IDcuMiAxNiAxNmwwIDIyNGMwIDguOC03LjIgMTYtMTYgMTZsLTQxNiAwYy04LjggMC0xNi03LjItMTYtMTZsMC0yMjRjMC04LjggNy4yLTE2IDE2LTE2bDQxNiAwek0xMTIgNjRjLTQ0LjIgMC04MCAzNS44LTgwIDgwbDAgMjI0YzAgNDQuMiAzNS44IDgwIDgwIDgwbDQxNiAwYzQ0LjIgMCA4MC0zNS44IDgwLTgwbDAtNDhjMTcuNyAwIDMyLTE0LjMgMzItMzJsMC02NGMwLTE3LjctMTQuMy0zMi0zMi0zMmwwLTQ4YzAtNDQuMi0zNS44LTgwLTgwLTgwTDExMiA2NHptNTYgMTEyYy0xMy4zIDAtMjQgMTAuNy0yNCAyNGwwIDExMmMwIDEzLjMgMTAuNyAyNCAyNCAyNGwxNDQgMGMxMy4zIDAgMjQtMTAuNyAyNC0yNGwwLTExMmMwLTEzLjMtMTAuNy0yNC0yNC0yNGwtMTQ0IDB6Il19LGhfZT1QTixvbT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJmb250LWF3ZXNvbWUiLGljb246WzUxMiw1MTIsWzYyNTAxLDYyNjk0LCJmb250LWF3ZXNvbWUtZmxhZyIsImZvbnQtYXdlc29tZS1sb2dvLWZ1bGwiXSwiZjJiNCIsIk05MS43IDk2QzEwNi4zIDg2LjggMTE2IDcwLjUgMTE2IDUyIDExNiAyMy4zIDkyLjcgMCA2NCAwUzEyIDIzLjMgMTIgNTJjMCAxNi43IDcuOCAzMS41IDIwIDQxbDAgNDE5IDY0IDAgMC02NCAzNzMuNiAwYzE0LjYgMCAyNi40LTExLjggMjYuNC0yNi40IDAtMy43LS44LTcuMy0yLjMtMTAuN0w0MzIgMjcyIDQ5My43IDEzMy4xYzEuNS0zLjQgMi4zLTcgMi4zLTEwLjcgMC0xNC42LTExLjgtMjYuNC0yNi40LTI2LjRMOTEuNyA5NnoiXX0scF9lPW9tLHVfZT1vbSxmX2U9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiaGFuZGN1ZmZzIixpY29uOls1NzYsNTEyLFtdLCJlNGY4IiwiTTMyMC0zMmMwLTE3LjctMTQuMy0zMi0zMi0zMnMtMzIgMTQuMy0zMiAzMiAxNC4zIDMyIDMyIDMyIDMyLTE0LjMgMzItMzJ6TTE5MiA2NGEzMiAzMiAwIDEgMCAwLTY0IDMyIDMyIDAgMSAwIDAgNjR6TTE1MiA5NmMtMTMuMyAwLTI0IDEwLjctMjQgMjRsMCAxNmMwIDEgLjEgMS45IC4yIDIuOS03NC43IDI2LjMtMTI4LjIgOTcuNS0xMjguMiAxODEuMSAwIDEwNiA4NiAxOTIgMTkyIDE5MnMxOTItODYgMTkyLTE5MmMwLTgzLjctNTMuNS0xNTQuOC0xMjguMi0xODEuMSAuMS0uOSAuMi0xLjkgLjItMi45bDAtMTZjMC0xMy4zLTEwLjctMjQtMjQtMjRsLTgwIDB6TTY0IDMyMGExMjggMTI4IDAgMSAxIDI1NiAwIDEyOCAxMjggMCAxIDEgLTI1NiAwem00NDggMGMwIDY2LjktNTEuMyAxMjEuOC0xMTYuNiAxMjcuNS0xNC4zIDIyLjgtMzIuNCA0My4xLTUzLjQgNTkuOSAxMy41IDMgMjcuNiA0LjYgNDIgNC42IDEwNiAwIDE5Mi04NiAxOTItMTkyIDAtODMuNy01My41LTE1NC44LTEyOC4yLTE4MS4xIC4xLS45IC4yLTEuOSAuMi0yLjlsMC0xNmMwLTEzLjMtMTAuNy0yNC0yNC0yNGwtODAgMGMtMTIuMyAwLTIyLjQgOS4yLTIzLjggMjEuMSAzMC4zIDE5LjIgNTYuMSA0NSA3NS4yIDc1LjQgNjUuNCA1LjggMTE2LjYgNjAuNiAxMTYuNiAxMjcuNXpNMzg0IDY0YTMyIDMyIDAgMSAwIDAtNjQgMzIgMzIgMCAxIDAgMCA2NHoiXX0sbV9lPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImhhdC1jb3dib3ktc2lkZSIsaWNvbjpbNjQwLDUxMixbXSwiZjhjMSIsIk02NDAgMzg4LjNjMCAxNi45LTcuMSAzMi4yLTE4LjQgNDMuMWwtMzUtMjMuMy0yOTIuNy0xOTUuMWMtMzYuMS0yNC4xLTc4LjYtMzYuOS0xMjItMzYuOWwtMy45IDBjLTIuNyAwLTUuNCAwLTggLjFsMjIuMi0xMDBjNS43LTI1LjggMjguNi00NC4xIDU1LTQ0LjEgMTIuMiAwIDI0LjEgNCAzMy44IDExLjNsNC43IDMuNWMyNi4zIDE5LjcgNjIuNCAxOS43IDg4LjYgMGw0LjctMy41YzkuOC03LjMgMjEuNi0xMS4zIDMzLjgtMTEuMyAyNi40IDAgNDkuMyAxOC4zIDU1IDQ0LjFsMzMgMTQ4LjVDNTc0LjUgMjMyLjMgNjQwIDMwMi42IDY0MCAzODguM3pNMTcxLjkgMjI0YzMzLjkgMCA2Ny4xIDEwIDk1LjQgMjguOUw1NjAgNDQ4IDU2IDQ0OGMtMzAuOSAwLTU2LTI1LjEtNTYtNTYgMC05Mi44IDc1LjItMTY4IDE2OC0xNjhsMy45IDB6Il19LGdfZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJpbmR1c3RyeSIsaWNvbjpbNTEyLDUxMixbXSwiZjI3NSIsIk0zMiAzMkMxNC4zIDMyIDAgNDYuMyAwIDY0TDAgNDMyYzAgMjYuNSAyMS41IDQ4IDQ4IDQ4bDQxNiAwYzI2LjUgMCA0OC0yMS41IDQ4LTQ4bDAtMjc5LjhjMC0xOC4yLTE5LjQtMjkuNy0zNS40LTIxLjFsLTE1Ni42IDg0LjMgMC02My4yYzAtMTguMi0xOS40LTI5LjctMzUuNC0yMS4xTDEyOCAyMTUuNCAxMjggNjRjMC0xNy43LTE0LjMtMzItMzItMzJMMzIgMzJ6Il19LGJfZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJsaW5lcy1sZWFuaW5nIixpY29uOlszODQsNTEyLFtdLCJlNTFlIiwiTTE5MC40IDc0LjFjNS42LTE2LjgtMy41LTM0LjktMjAuMi00MC41cy0zNC45IDMuNS00MC41IDIwLjJsLTEyOCAzODRjLTUuNiAxNi44IDMuNSAzNC45IDIwLjIgNDAuNXMzNC45LTMuNSA0MC41LTIwLjJsMTI4LTM4NHptNzAuOS00MS43Yy0xNy40LTIuOS0zMy45IDguOS0zNi44IDI2LjNsLTY0IDM4NGMtMi45IDE3LjQgOC45IDMzLjkgMjYuMyAzNi44czMzLjktOC45IDM2LjgtMjYuM2w2NC0zODRjMi45LTE3LjQtOC45LTMzLjktMjYuMy0zNi44ek0zNTIgMzJjLTE3LjcgMC0zMiAxNC4zLTMyIDMybDAgMzg0YzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJsMC0zODRjMC0xNy43LTE0LjMtMzItMzItMzJ6Il19LHZfZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJwYXNzcG9ydCIsaWNvbjpbMzg0LDUxMixbXSwiZjVhYiIsIk0wIDY0QzAgMjguNyAyOC43IDAgNjQgMEwzMjAgMGMzNS4zIDAgNjQgMjguNyA2NCA2NGwwIDM4NGMwIDM1LjMtMjguNyA2NC02NCA2NEw2NCA1MTJjLTM1LjMgMC02NC0yOC43LTY0LTY0TDAgNjR6TTk2IDQwOGMwIDEzLjMgMTAuNyAyNCAyNCAyNGwxNDQgMGMxMy4zIDAgMjQtMTAuNyAyNC0yNHMtMTAuNy0yNC0yNC0yNGwtMTQ0IDBjLTEzLjMgMC0yNCAxMC43LTI0IDI0ek0yNzguNiAyMDhjLTQuOCAyNi40LTIxLjUgNDguNy00NC4yIDYxLjIgNi43LTE3IDExLjItMzggMTIuNi02MS4ybDMxLjYgMHptLTE3My4xIDBsMzEuNiAwYzEuNCAyMy4xIDYgNDQuMiAxMi42IDYxLjItMjIuNy0xMi41LTM5LjQtMzQuOC00NC4yLTYxLjJ6bTc2LjQgNTVjLTYuMi0xMy40LTExLjEtMzIuNS0xMi43LTU1bDQ1LjggMGMtMS42IDIyLjUtNi41IDQxLjYtMTIuNyA1NS00LjUgOS42LTguMiAxMy44LTEwLjIgMTUuNS0yLTEuNy01LjctNS44LTEwLjItMTUuNXptMC0xNDJjNC41LTkuNiA4LjItMTMuOCAxMC4yLTE1LjUgMiAxLjcgNS43IDUuOCAxMC4yIDE1LjUgNi4yIDEzLjQgMTEuMSAzMi41IDEyLjcgNTVsLTQ1LjggMGMxLjYtMjIuNSA2LjUtNDEuNiAxMi43LTU1em05Ni43IDU1TDI0NyAxNzZjLTEuNC0yMy4xLTYtNDQuMi0xMi42LTYxLjIgMjIuNyAxMi41IDM5LjQgMzQuOCA0NC4yIDYxLjJ6TTEzNyAxNzZsLTMxLjYgMGM0LjgtMjYuNCAyMS41LTQ4LjcgNDQuMi02MS4yLTYuNyAxNy0xMS4yIDM4LTEyLjYgNjEuMnptMTgzIDE2YTEyOCAxMjggMCAxIDAgLTI1NiAwIDEyOCAxMjggMCAxIDAgMjU2IDB6Il19LHlfZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJpbmZpbml0eSIsaWNvbjpbNjQwLDUxMixbODczNCw5ODU0XSwiZjUzNCIsIk0wIDI1NmMwLTg4LjQgNzEuNi0xNjAgMTYwLTE2MCA1MC40IDAgOTcuOCAyMy43IDEyOCA2NGwzMiA0Mi43IDMyLTQyLjdjMzAuMi00MC4zIDc3LjYtNjQgMTI4LTY0IDg4LjQgMCAxNjAgNzEuNiAxNjAgMTYwUzU2OC40IDQxNiA0ODAgNDE2Yy01MC40IDAtOTcuOC0yMy43LTEyOC02NGwtMzItNDIuNy0zMiA0Mi43Yy0zMC4yIDQwLjMtNzcuNiA2NC0xMjggNjQtODguNCAwLTE2MC03MS42LTE2MC0xNjB6bTI4MCAwbC00My4yLTU3LjZjLTE4LjEtMjQuMi00Ni42LTM4LjQtNzYuOC0zOC40LTUzIDAtOTYgNDMtOTYgOTZzNDMgOTYgOTYgOTZjMzAuMiAwIDU4LjctMTQuMiA3Ni44LTM4LjRMMjgwIDI1NnptODAgMGw0My4yIDU3LjZjMTguMSAyNC4yIDQ2LjYgMzguNCA3Ni44IDM4LjQgNTMgMCA5Ni00MyA5Ni05NnMtNDMtOTYtOTYtOTZjLTMwLjIgMC01OC43IDE0LjItNzYuOCAzOC40TDM2MCAyNTZ6Il19LHhfZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJjbG9uZSIsaWNvbjpbNTEyLDUxMixbXSwiZjI0ZCIsIk0yODggNDQ4bC0yMjQgMCAwLTIyNCA0OCAwIDAtNjQtNDggMGMtMzUuMyAwLTY0IDI4LjctNjQgNjRMMCA0NDhjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMjI0IDBjMzUuMyAwIDY0LTI4LjcgNjQtNjRsMC00OC02NCAwIDAgNDh6bS02NC05NmwyMjQgMGMzNS4zIDAgNjQtMjguNyA2NC02NGwwLTIyNGMwLTM1LjMtMjguNy02NC02NC02NEwyMjQgMGMtMzUuMyAwLTY0IDI4LjctNjQgNjRsMCAyMjRjMCAzNS4zIDI4LjcgNjQgNjQgNjR6Il19LHdfZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJmb3J3YXJkIixpY29uOls1NzYsNTEyLFs5MTkzXSwiZjA0ZSIsIk0zNzEuNyA0My4xQzM2MC4xIDMyIDM0MyAyOC45IDMyOC4zIDM1LjJTMzA0IDU2IDMwNCA3MmwwIDEzNi4zLTE3Mi4zLTE2NS4xQzEyMC4xIDMyIDEwMyAyOC45IDg4LjMgMzUuMlM2NCA1NiA2NCA3MmwwIDM2OGMwIDE2IDkuNiAzMC41IDI0LjMgMzYuOHMzMS44IDMuMiA0My40LTcuOUwzMDQgMzAzLjcgMzA0IDQ0MGMwIDE2IDkuNiAzMC41IDI0LjMgMzYuOHMzMS44IDMuMiA0My40LTcuOWwxOTItMTg0YzcuOS03LjUgMTIuMy0xOCAxMi4zLTI4LjlzLTQuNS0yMS4zLTEyLjMtMjguOWwtMTkyLTE4NHoiXX0sTV9lPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6Im0iLGljb246WzQ0OCw1MTIsWzEwOV0sIjRkIiwiTTIyLjcgMzMuNGMxMy41LTQuMSAyOC4xIDEuMSAzNS45IDEyLjlMMjI0IDI5NC4zIDM4OS40IDQ2LjNjNy44LTExLjcgMjIuNC0xNyAzNS45LTEyLjlTNDQ4IDQ5LjkgNDQ4IDY0bDAgMzg0YzAgMTcuNy0xNC4zIDMyLTMyIDMycy0zMi0xNC4zLTMyLTMybDAtMjc4LjMtMTMzLjQgMjAwLjFjLTUuOSA4LjktMTUuOSAxNC4yLTI2LjYgMTQuMnMtMjAuNy01LjMtMjYuNi0xNC4yTDY0IDE2OS43IDY0IDQ0OGMwIDE3LjctMTQuMyAzMi0zMiAzMlMwIDQ2NS43IDAgNDQ4TDAgNjRDMCA0OS45IDkuMiAzNy41IDIyLjcgMzMuNHoiXX0sel9lPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InJvYWQtc3Bpa2VzIixpY29uOls2NDAsNTEyLFtdLCJlNTY4IiwiTTY0IDExNi44YzAtMTUuOCAyMC41LTIyIDI5LjMtOC45bDk4LjcgMTQ4IDAtMTM5LjJjMC0xNS44IDIwLjUtMjIgMjkuMy04LjlsOTguNyAxNDggMC0xMzkuMmMwLTE1LjggMjAuNS0yMiAyOS4zLTguOWw5OC43IDE0OCAwLTEzOS4yYzAtMTUuOCAyMC41LTIyIDI5LjMtOC45TDYwNi44IDMwMi4yYzE0LjIgMjEuMy0xLjEgNDkuOC0yNi42IDQ5LjhMNjQgMzUyIDY0IDExNi44ek0zMiAzODRsNTc2IDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJMMzIgNDQ4Yy0xNy43IDAtMzItMTQuMy0zMi0zMnMxNC4zLTMyIDMyLTMyeiJdfSxrX2U9e3ByZWZpeDoiZmFzIixpY29uTmFtZToibW91bnRhaW4iLGljb246WzUxMiw1MTIsWzEyNzk1Nl0sImY2ZmMiLCJNMjU2LjUgMGMxNC43IDAgMjguMiA4LjEgMzUuMiAyMWwyMTYgNDAwYzYuNyAxMi40IDYuNCAyNy40LS44IDM5LjUtNy4yIDEyLjEtMjAuMyAxOS41LTM0LjMgMTkuNWwtNDMyIDBjLTE0LjEgMC0yNy4xLTcuNC0zNC4zLTE5LjVzLTcuNS0yNy4xLS44LTM5LjVsMjE2LTQwMCAyLjktNC42QzIzMS43IDYuMiAyNDMuNiAwIDI1Ni41IDB6TTE3MC40IDI0OS45bDI2LjggMjYuOGM2LjIgNi4yIDE2LjQgNi4yIDIyLjYgMGw0My4zLTQzLjNjNi02IDE0LjEtOS40IDIyLjYtOS40bDQyLjggMC03Mi4xLTEzMy41LTg2LjEgMTU5LjR6Il19LFNfZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJjaGVzcyIsaWNvbjpbNTEyLDUxMixbXSwiZjQzOSIsIk0xNjggNTZsMCA0MC03OC4xIDBjLTE0LjMgMC0yNS45IDExLjYtMjUuOSAyNS45IDAgNCAuOSA4IDIuNyAxMS42bDMzLjQgNjYuOGMtMTEuNCAxLjgtMjAuMiAxMS43LTIwLjIgMjMuNyAwIDEzLjMgMTAuNyAyNCAyNCAyNGw1LjYgMC0xMy42IDEzNi01Ni4yIDcwLjNjLTUgNi4zLTcuOCAxNC4xLTcuOCAyMi4yIDAgMTkuNiAxNS45IDM1LjUgMzUuNSAzNS41bDI0OC45IDBjMTkuNiAwIDM1LjUtMTUuOSAzNS41LTM1LjUgMC04LjEtMi43LTE1LjktNy44LTIyLjJMMjg4IDM4NCAyNzQuNCAyNDggMjgwIDI0OGMxMy4zIDAgMjQtMTAuNyAyNC0yNCAwLTExLjktOC43LTIxLjktMjAuMi0yMy43bDMzLjQtNjYuOGMxLjgtMy42IDIuNy03LjYgMi43LTExLjYgMC0xNC4zLTExLjYtMjUuOS0yNS45LTI1LjlsLTc4LjEgMCAwLTQwIDE2IDBjMTMuMyAwIDI0LTEwLjcgMjQtMjRTMjQ1LjMgOCAyMzIgOGwtMTYgMCAwLTE2YzAtMTMuMy0xMC43LTI0LTI0LTI0UzE2OC0yMS4zIDE2OC04bDAgMTYtMTYgMGMtMTMuMyAwLTI0IDEwLjctMjQgMjRzMTAuNyAyNCAyNCAyNGwxNiAwek0zMjUuOCAyNzkuNmw4LjUgODUuNSA0Ny40IDU5LjIgNC4yIDUuN2M5LjIgMTMuNyAxNC4xIDI5LjkgMTQuMSA0Ni41IDAgMTIuNy0yLjggMjQuOC03LjkgMzUuNWw4My4xIDBjMjAuMyAwIDM2LjgtMTYuNSAzNi44LTM2LjggMC03LjMtMi4yLTE0LjQtNi4yLTIwLjRsLTI1LjgtMzguNyAwLTY0IDEzLjMtMTMuM2MxMi0xMiAxOC43LTI4LjMgMTguNy00NS4zTDUxMiAxOTJjMC0xNy43LTE0LjMtMzItMzItMzJzLTMyIDE0LjMtMzIgMzJsMCAxNi0zMiAwIDAtMTZjMC0xNy43LTE0LjMtMzItMzItMzJzLTMyIDE0LjMtMzIgMzJsMCAzMmMwIDIyLjQtMTAuMiA0Mi40LTI2LjIgNTUuNnoiXX0sUjU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToidGVtcGVyYXR1cmUtdGhyZWUtcXVhcnRlcnMiLGljb246WzMyMCw1MTIsWyJ0ZW1wZXJhdHVyZS0zIiwidGhlcm1vbWV0ZXItMyIsInRoZXJtb21ldGVyLXRocmVlLXF1YXJ0ZXJzIl0sImYyYzgiLCJNMTYwIDBDMTA3IDAgNjQgNDMgNjQgOTZsMCAxNjQuN0MzNC41IDI4NyAxNiAzMjUuNCAxNiAzNjggMTYgNDQ3LjUgODAuNSA1MTIgMTYwIDUxMnMxNDQtNjQuNSAxNDQtMTQ0YzAtNDIuNi0xOC41LTgxLTQ4LTEwNy4zTDI1NiA5NmMwLTUzLTQzLTk2LTk2LTk2em02NCAzNjhjMCAzNS4zLTI4LjcgNjQtNjQgNjRzLTY0LTI4LjctNjQtNjRjMC0yNi45IDE2LjUtNDkuOSA0MC01OS4zTDEzNiAxNTJjMC0xMy4zIDEwLjctMjQgMjQtMjRzMjQgMTAuNyAyNCAyNGwwIDE1Ni43YzIzLjUgOS41IDQwIDMyLjUgNDAgNTkuM3oiXX0sQ19lPVI1LF9fZT1SNSxUX2U9UjUsTF9lPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImIiLGljb246WzMyMCw1MTIsWzk4XSwiNDIiLCJNMzIgMzJDMTQuMyAzMiAwIDQ2LjMgMCA2NEwwIDQ0OGMwIDE3LjcgMTQuMyAzMiAzMiAzMmwxNjAgMGM3MC43IDAgMTI4LTU3LjMgMTI4LTEyOCAwLTQ2LjUtMjQuOC04Ny4zLTYyLTEwOS43IDE4LjctMjIuMyAzMC01MSAzMC04Mi4zIDAtNzAuNy01Ny4zLTEyOC0xMjgtMTI4TDMyIDMyek0xNjAgMjI0bC05NiAwIDAtMTI4IDk2IDBjMzUuMyAwIDY0IDI4LjcgNjQgNjRzLTI4LjcgNjQtNjQgNjR6TTY0IDI4OGwxMjggMGMzNS4zIDAgNjQgMjguNyA2NCA2NHMtMjguNyA2NC02NCA2NGwtMTI4IDAgMC0xMjh6Il19LCRfZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJzaGllbGQtdmlydXMiLGljb246WzUxMiw1MTIsW10sImUwNmMiLCJNMjUzLjQgMi45QzI0OS4yIDEgMjQ0LjcgMCAyNDAgMHMtOS4yIDEtMTMuNCAyLjlMMzguMyA4Mi44Yy0yMiA5LjMtMzguNCAzMS0zOC4zIDU3LjIgLjUgOTkuMiA0MS4zIDI4MC43IDIxMy42IDM2My4yIDE2LjcgOCAzNi4xIDggNTIuOCAwIDE3Mi40LTgyLjUgMjEzLjItMjY0IDIxMy42LTM2My4yIC4xLTI2LjItMTYuMy00Ny45LTM4LjMtNTcuMkwyNTMuNCAyLjl6TTI0MCAxMjhjMTMuMyAwIDI0IDEwLjcgMjQgMjQgMCAyMi45IDI3LjcgMzQuNCA0My45IDE4LjIgOS40LTkuNCAyNC42LTkuNCAzMy45IDBzOS40IDI0LjYgMCAzMy45Yy0xNi4yIDE2LjItNC43IDQzLjkgMTguMiA0My45IDEzLjMgMCAyNCAxMC43IDI0IDI0cy0xMC43IDI0LTI0IDI0Yy0yMi45IDAtMzQuNCAyNy43LTE4LjIgNDMuOSA5LjQgOS40IDkuNCAyNC42IDAgMzMuOXMtMjQuNiA5LjQtMzMuOSAwYy0xNi4yLTE2LjItNDMuOS00LjctNDMuOSAxOC4yIDAgMTMuMy0xMC43IDI0LTI0IDI0cy0yNC0xMC43LTI0LTI0YzAtMjIuOS0yNy43LTM0LjQtNDMuOS0xOC4yLTkuNCA5LjQtMjQuNiA5LjQtMzMuOSAwcy05LjQtMjQuNiAwLTMzLjljMTYuMi0xNi4yIDQuNy00My45LTE4LjItNDMuOS0xMy4zIDAtMjQtMTAuNy0yNC0yNHMxMC43LTI0IDI0LTI0YzIyLjkgMCAzNC40LTI3LjcgMTguMi00My45LTkuNC05LjQtOS40LTI0LjYgMC0zMy45czI0LjYtOS40IDMzLjkgMGMxNi4yIDE2LjIgNDMuOSA0LjcgNDMuOS0xOC4yIDAtMTMuMyAxMC43LTI0IDI0LTI0ek0yMDggMjY0YTI0IDI0IDAgMSAwIDAtNDggMjQgMjQgMCAxIDAgMCA0OHptODggNDBhMjQgMjQgMCAxIDAgLTQ4IDAgMjQgMjQgMCAxIDAgNDggMHoiXX0sQV9lPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImxpdGVjb2luLXNpZ24iLGljb246WzM4NCw1MTIsW10sImUxZDMiLCJNMTI4IDY0YzAtMTcuNy0xNC4zLTMyLTMyLTMyUzY0IDQ2LjMgNjQgNjRsMCAxNTcuOS0zOC42IDExYy0xMi43IDMuNi0yMC4xIDE2LjktMTYuNSAyOS43czE2LjkgMjAuMSAyOS43IDE2LjVMNjQgMjcxLjggNjQgNDQ4YzAgMTcuNyAxNC4zIDMyIDMyIDMybDI1NiAwYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMybC0yMjQgMCAwLTE2Mi41IDEzNC42LTM4LjVjMTIuNy0zLjYgMjAuMS0xNi45IDE2LjUtMjkuN3MtMTYuOS0yMC4xLTI5LjctMTYuNUwxMjggMjAzLjYgMTI4IDY0eiJdfSxEX2U9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZGljZS1kNiIsaWNvbjpbNTEyLDUxMixbXSwiZjZkMSIsIk0yMjQuNCA4LjNDMjQ0LTIuOCAyNjgtMi44IDI4Ny42IDguM2wxNzYgOTkuN2MyMCAxMS40IDMyLjQgMzIuNiAzMi40IDU1LjdsMCAxOTcuNGMwIDIzLTEyLjQgNDQuMy0zMi40IDU1LjdsLTE3NiA5OS43Yy0xOS42IDExLjEtNDMuNiAxMS4xLTYzLjEgMGwtMTc2LTk5LjdDMjguNCA0MDUuNSAxNiAzODQuMiAxNiAzNjEuMmwwLTE5Ny40YzAtMjMgMTIuNC00NC4zIDMyLjQtNTUuN2wxNzYtOTkuN3pNMTAyLjYgMTU1LjZjLTguOC0zLjEtMTguOCAuMy0yMy44IDguNnMtMy4yIDE4LjcgMy42IDI1bDMuMiAyLjQgMTUwLjIgOTAuMiAwIDE0OC43YzAgMTEgOSAyMCAyMCAyMCAxMSAwIDIwLTkgMjAtMjBsMC0xNDguNyAxNTAuMy05MC4yYzkuNS01LjcgMTIuNi0xOCA2LjktMjcuNHMtMTgtMTIuNS0yNy40LTYuOWwtMTQ5LjcgODkuOC0xNDkuNy04OS44LTMuNy0xLjd6Il19LEVfZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJncmlwLWxpbmVzLXZlcnRpY2FsIixpY29uOlsxOTIsNTEyLFtdLCJmN2E1IiwiTTY0IDY0YzAtMTcuNy0xNC4zLTMyLTMyLTMyUzAgNDYuMyAwIDY0TDAgNDQ4YzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJMNjQgNjR6bTEyOCAwYzAtMTcuNy0xNC4zLTMyLTMyLTMycy0zMiAxNC4zLTMyIDMybDAgMzg0YzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJsMC0zODR6Il19LElOPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImdvbGYtYmFsbC10ZWUiLGljb246WzM4NCw1MTIsWyJnb2xmLWJhbGwiXSwiZjQ1MCIsIk0yOTguNSAzODQuMWMxMi4xIDEuMiAyMS41IDExLjUgMjEuNSAyMy45cy05LjQgMjIuNi0yMS41IDIzLjlsLTIuNSAuMS04MCAwIDAgODhjMCAxMy4zLTEwLjcgMjQtMjQgMjRzLTI0LTEwLjctMjQtMjRsMC04OC04MCAwYy0xMy4zIDAtMjQtMTAuNy0yNC0yNCAwLTEyLjQgOS40LTIyLjYgMjEuNS0yMy45bDIuNS0uMSAyMDggMCAyLjUgLjF6TTE5MiAwYzEwNiAwIDE5MiA4NiAxOTIgMTkyIDAgNTcuNC0yNS4yIDEwOC44LTY1LjEgMTQ0TDY1LjEgMzM2QzI1LjIgMzAwLjggMCAyNDkuNCAwIDE5MiAwIDg2IDg2IDAgMTkyIDB6bTMyIDI0MGMtNy43IDAtMTQuMiA1LjUtMTUuNyAxMi44bC0uNiA2LjRjLTEuMyA2LjMtNi4yIDExLjItMTIuNSAxMi41bC02LjQgLjZjLTcuMyAxLjUtMTIuOCA4LTEyLjggMTUuNyAwIDguOCA3LjIgMTYgMTYgMTYgMjYuNSAwIDQ4LTIxLjUgNDgtNDggMC04LjgtNy4yLTE2LTE2LTE2em02NC02NGMtNy43IDAtMTQuMiA1LjUtMTUuNyAxMi44bC0uNiA2LjRjLTEuMyA2LjMtNi4yIDExLjItMTIuNSAxMi41bC02LjQgLjZjLTcuMyAxLjUtMTIuOCA4LTEyLjggMTUuNyAwIDguOCA3LjIgMTYgMTYgMTYgMjYuNSAwIDQ4LTIxLjUgNDgtNDggMC04LjgtNy4yLTE2LTE2LTE2em0tODAtMTZjLTcuNyAwLTE0LjIgNS41LTE1LjcgMTIuOGwtLjYgNi40Yy0xLjMgNi4zLTYuMiAxMS4yLTEyLjUgMTIuNWwtNi40IC42Yy03LjMgMS41LTEyLjggOC0xMi44IDE1LjcgMCA4LjggNy4yIDE2IDE2IDE2IDI2LjUgMCA0OC0yMS41IDQ4LTQ4IDAtOC44LTcuMi0xNi0xNi0xNnoiXX0sUF9lPUlOLElfZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJoZXhhZ29uIixpY29uOls1NzYsNTEyLFsxMTA0M10sImYzMTIiLCJNMzMuNSAyMjAuM2MtMTIuNyAyMi4yLTEyLjcgNDkuNCAwIDcxLjVsOTYuMiAxNjguMWMxMi44IDIyLjQgMzYuNyAzNi4yIDYyLjUgMzYuMmwxOTEuNiAwYzI1LjggMCA0OS43LTEzLjggNjIuNS0zNi4ybDk2LjItMTY4LjFjMTIuNy0yMi4yIDEyLjctNDkuNCAwLTcxLjVMNDQ2LjMgNTIuMkM0MzMuNSAyOS44IDQwOS42IDE2IDM4My44IDE2TDE5Mi4yIDE2Yy0yNS44IDAtNDkuNyAxMy44LTYyLjUgMzYuMkwzMy41IDIyMC4zeiJdfSxOX2U9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZm9sZGVyLW9wZW4iLGljb246WzU3Niw1MTIsWzEyODE5NCwxMjg0NDksNjE3MTddLCJmMDdjIiwiTTU2IDIyNS42TDMyLjQgMjk2LjIgMzIuNCA5NmMwLTM1LjMgMjguNy02NCA2NC02NGwxMzguNyAwYzEzLjggMCAyNy4zIDQuNSAzOC40IDEyLjhsMzguNCAyOC44YzUuNSA0LjIgMTIuMyA2LjQgMTkuMiA2LjRsMTE3LjMgMGMzNS4zIDAgNjQgMjguNyA2NCA2NGwwIDE2LTM2NS40IDBjLTQxLjMgMC03OCAyNi40LTkxLjEgNjUuNnpNNDc3LjggNDQ4TDk5IDQ0OGMtMzIuOCAwLTU1LjktMzIuMS00NS41LTYzLjJsNDgtMTQ0QzEwOCAyMjEuMiAxMjYuNCAyMDggMTQ3IDIwOGwzNzguOCAwYzMyLjggMCA1NS45IDMyLjEgNDUuNSA2My4ybC00OCAxNDRjLTYuNSAxOS42LTI0LjkgMzIuOC00NS41IDMyLjh6Il19LEZfZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJrYWFiYSIsaWNvbjpbNTEyLDUxMixbMTI4MzMxXSwiZjY2YiIsIk0yNTYgNTEuM0w5Mi44IDExMi40IDI0Ny41IDE3MS4xYzUuNSAyLjEgMTEuNSAyLjEgMTcgMEw0MTkuMiAxMTIuNCAyNTYgNTEuM3pNMCAxMjkuM2MwLTIwIDEyLjQtMzcuOSAzMS4xLTQ0LjlsMjA4LTc4YzEwLjktNC4xIDIyLjgtNC4xIDMzLjcgMGwyMDggNzhjMTguNyA3IDMxLjEgMjQuOSAzMS4xIDQ0LjlsMCAzNi0yNTMuMiA5NmMtMS44IC43LTMuOCAuNy01LjcgMGwtMjUzLjItOTYgMC0zNnptMCAxNDBsMC01Mi43IDIzNi4xIDg5LjZjMTIuOCA0LjkgMjYuOSA0LjkgMzkuNyAwbDIzNi4xLTg5LjYgMCA1Mi43LTEyOCA0OC42IDAgNTEuMyAxMjgtNDguNiAwIDYyLjJjMCAyMC0xMi40IDM3LjktMzEuMSA0NC45bC0yMDggNzhjLTEwLjkgNC4xLTIyLjggNC4xLTMzLjcgMGwtMjA4LTc4QzEyLjQgNDIwLjcgMCA0MDIuNyAwIDM4Mi43bDAtNjIuMiAxMjggNDguNiAwLTUxLjMtMTI4LTQ4LjZ6TTIzNi4xIDQxMC4xYzEyLjggNC45IDI2LjkgNC45IDM5LjcgMGw2MC4xLTIyLjggMC01MS4zLTc3LjIgMjkuM2MtMS44IC43LTMuOCAuNy01LjcgMGwtNzcuMi0yOS4zIDAgNTEuMyA2MC4xIDIyLjh6Il19LE9fZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJoYW5kLWhvbGRpbmciLGljb246WzU3Niw1MTIsW10sImY0YmQiLCJNNjYuNyAzODRsNDIuNS00Mi41YzI0LTI0IDU2LjYtMzcuNSA5MC41LTM3LjVMMzUyIDMwNGMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMmwtNzIgMGMtMTMuMyAwLTI0IDEwLjctMjQgMjRzMTAuNyAyNCAyNCAyNGwxMTIuNiAwIDExOS43LTg4LjJjMTcuOC0xMy4xIDQyLjgtOS4zIDU1LjkgOC41czkuMyA0Mi44LTguNSA1NS45TDQzMy4xIDQ4NS41Yy0yMy40IDE3LjItNTEuNiAyNi41LTgwLjcgMjYuNUwzMiA1MTJjLTE3LjcgMC0zMi0xNC4zLTMyLTMybDAtNjRjMC0xNy43IDE0LjMtMzIgMzItMzJsMzQuNyAweiJdfSxSX2U9e3ByZWZpeDoiZmFzIixpY29uTmFtZToic2luZ2xlLXF1b3RlLXJpZ2h0IixpY29uOlsxOTIsNTEyLFtdLCJlODFjIiwiTTY0IDQxNmMtMTcuNyAwLTMyLTE0LjMtMzItMzJzMTQuMy0zMiAzMi0zMmw4IDBjMzAuOSAwIDU2LTI1LjEgNTYtNTZsMC04LTY0IDBjLTM1LjMgMC02NC0yOC43LTY0LTY0bDAtNjRjMC0zNS4zIDI4LjctNjQgNjQtNjRsNjQgMGMzNS4zIDAgNjQgMjguNyA2NCA2NGwwIDEzNmMwIDY2LjMtNTMuNyAxMjAtMTIwIDEyMGwtOCAweiJdfSxCX2U9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiYm90dGxlLWRyb3BsZXQiLGljb246WzMyMCw1MTIsW10sImU0YzQiLCJNODAgMGMwLTE3LjcgMTQuMy0zMiAzMi0zMmw5NiAwYzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMybDAgMTAzLjNjNjQuOSAyMC40IDExMiA4MSAxMTIgMTUyLjdsMCAxOTJjMCAzNS4zLTI4LjcgNjQtNjQgNjRMNjQgNTQ0Yy0zNS4zIDAtNjQtMjguNy02NC02NEwwIDI4OGMwLTcxLjYgNDcuMS0xMzIuMyAxMTItMTUyLjdMMTEyIDMyQzk0LjMgMzIgODAgMTcuNyA4MCAwem04MCA0MTZjMzUuMyAwIDY0LTMyLjQgNjQtNjQgMC0yMS4yLTI4LjktNjQuNS00Ny45LTkwLjYtOC4xLTExLjEtMjQuMi0xMS4xLTMyLjMgMC0xOSAyNi4xLTQ3LjkgNjkuNC00Ny45IDkwLjYgMCAzMS42IDI4LjcgNjQgNjQgNjR6Il19LEhfZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJ3aW5kb3ctbWluaW1pemUiLGljb246WzUxMiw1MTIsWzEyODQ2OV0sImYyZDEiLCJNMCA0MTZjMC0xNy43IDE0LjMtMzIgMzItMzJsNDQ4IDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJMMzIgNDQ4Yy0xNy43IDAtMzItMTQuMy0zMi0zMnoiXX0scV9lPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImNoZXZyb24tcmlnaHQiLGljb246WzMyMCw1MTIsWzkwMDJdLCJmMDU0IiwiTTMxMS4xIDIzMy40YzEyLjUgMTIuNSAxMi41IDMyLjggMCA0NS4zbC0xOTIgMTkyYy0xMi41IDEyLjUtMzIuOCAxMi41LTQ1LjMgMHMtMTIuNS0zMi44IDAtNDUuM0wyNDMuMiAyNTYgNzMuOSA4Ni42Yy0xMi41LTEyLjUtMTIuNS0zMi44IDAtNDUuM3MzMi44LTEyLjUgNDUuMyAwbDE5MiAxOTJ6Il19LFZfZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJlZ2ciLGljb246WzM4NCw1MTIsWzEyOTM3MF0sImY3ZmIiLCJNMTkyIDQ5NkM4NiA0OTYgMCAzOTQgMCAyODggMCAxNzYgNjQgMTYgMTkyIDE2UzM4NCAxNzYgMzg0IDI4OGMwIDEwNi04NiAyMDgtMTkyIDIwOHpNMTU0LjggMTM0YzYuNS02IDctMTYuMSAxLTIyLjZzLTE2LjEtNy0yMi42LTFjLTIzLjkgMjEuOC00MS4xIDUyLjctNTIuMyA4NC4yLTExLjIgMzEuNi0xNi45IDY1LjEtMTYuOSA5My41IDAgOC44IDcuMiAxNiAxNiAxNnMxNi03LjIgMTYtMTZjMC0yNC41IDUtNTQuNCAxNS4xLTgyLjggMTAuMS0yOC41IDI1LTU0LjEgNDMuNy03MS4yeiJdfSxOTj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJsYW5kbWFyay1kb21lIixpY29uOls1MTIsNTEyLFsibGFuZG1hcmstYWx0Il0sImY3NTIiLCJNMjU2IDBjLTE3LjcgMC0zMiAxNC4zLTMyIDMyIDAgLjkgMCAxLjggLjEgMi42LTgwLjUgMTMuNC0xNDQgNzYuOS0xNTcuNSAxNTcuNEw2NCAxOTJjLTE3LjcgMC0zMiAxNC4zLTMyIDMyczE0LjMgMzIgMzIgMzJsMCAxNjAtNTEuMiAzOC40QzQuNyA0NjAuNCAwIDQ2OS45IDAgNDgwIDAgNDk3LjcgMTQuMyA1MTIgMzIgNTEybDQ0OCAwYzE3LjcgMCAzMi0xNC4zIDMyLTMyIDAtMTAuMS00LjctMTkuNi0xMi44LTI1LjZMNDQ4IDQxNiA0NDggMjU2YzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMybC0yLjcgMGMtMTMuNS04MC40LTc3LTE0My45LTE1Ny41LTE1Ny40IC4xLS45IC4xLTEuNyAuMS0yLjYgMC0xNy43LTE0LjMtMzItMzItMzJ6bTgwIDI1Nmw2NCAwIDAgMTYwLTY0IDAgMC0xNjB6TTIyNCA0MTZsMC0xNjAgNjQgMCAwIDE2MC02NCAwek0xMTIgMjU2bDY0IDAgMCAxNjAtNjQgMCAwLTE2MHoiXX0sal9lPU5OLFVfZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJ3b3JtIixpY29uOls0NDgsNTEyLFtdLCJlNTk5IiwiTTIyNCA5NmMwLTUzIDQzLTk2IDk2LTk2bDM4LjQgMEM0MDcuOSAwIDQ0OCA0MC4xIDQ0OCA4OS42TDQ0OCAzNzZjMCA3NS4xLTYwLjkgMTM2LTEzNiAxMzZTMTc2IDQ1MS4xIDE3NiAzNzZsMC04MGMwLTIyLjEtMTcuOS00MC00MC00MHMtNDAgMTcuOS00MCA0MGwwIDE2OGMwIDI2LjUtMjEuNSA0OC00OCA0OFMwIDQ5MC41IDAgNDY0TDAgMjk2YzAtNzUuMSA2MC45LTEzNiAxMzYtMTM2czEzNiA2MC45IDEzNiAxMzZsMCA4MGMwIDIyLjEgMTcuOSA0MCA0MCA0MHM0MC0xNy45IDQwLTQwbDAtMTg0LTMyIDBjLTUzIDAtOTYtNDMtOTYtOTZ6bTE0NC04YTI0IDI0IDAgMSAwIC00OCAwIDI0IDI0IDAgMSAwIDQ4IDB6Il19LFdfZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJ1c2VyLWluanVyZWQiLGljb246WzQ0OCw1MTIsW10sImY3MjgiLCJNMjQyLjcgODBMMzM0IDgwYy0xMC43LTI0LjYtMjkuNS00NC45LTUyLjktNTcuNkwyNDIuNyA4MHptLS45LTcwLjdDMjM2IDguNCAyMzAgOCAyMjQgOCAxNzQuOCA4IDEzMi41IDM3LjYgMTE0IDgwbDgwLjYgMCA0Ny4xLTcwLjd6TTIyNCAyNDhjNjYuMyAwIDEyMC01My43IDEyMC0xMjBsLTI0MCAwYzAgNjYuMyA1My43IDEyMCAxMjAgMTIwek05OC43IDM0MS44QzQ5LjMgMzcwLjIgMTYgNDIzLjUgMTYgNDg0LjYgMTYgNDk5LjcgMjguMyA1MTIgNDMuNCA1MTJsMTUxIDAtOTUuOC0xNzAuMnptNDUuMS0xNy43bDQyLjcgNzUuOSA4NS41IDBjNDQuMiAwIDgwIDM1LjggODAgODAgMCAxMS40LTIuNCAyMi4yLTYuNyAzMmw1OS4yIDBjMTUuMSAwIDI3LjQtMTIuMyAyNy40LTI3LjQgMC05MC45LTczLjctMTY0LjYtMTY0LjYtMTY0LjZsLTg2LjkgMGMtMTIuNiAwLTI0LjkgMS40LTM2LjcgNC4xek0yMTMuNSA0NDhsMzYgNjQgMjIuNSAwYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMybC01OC41IDB6Il19LEdfZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJzdHJpa2V0aHJvdWdoIixpY29uOls1MTIsNTEyLFtdLCJmMGNjIiwiTTk2IDE1Ny41Qzk2IDg4LjIgMTUyLjIgMzIgMjIxLjUgMzJMMzY4IDMyYzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMyTDIyMS41IDk2Yy0zNCAwLTYxLjUgMjcuNS02MS41IDYxLjUgMCAzMSAyMy4xIDU3LjIgNTMuOSA2MWw0NC4xIDUuNSAyMjIgMGMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMkwzMiAyODhjLTE3LjcgMC0zMi0xNC4zLTMyLTMyczE0LjMtMzIgMzItMzJsODMuMSAwQzEwMyAyMDQuNiA5NiAxODEuOCA5NiAxNTcuNXpNMzQ5LjIgMzM2bDY1LjUgMGMuOSA2LjEgMS40IDEyLjIgMS40IDE4LjUgMCA2OS4zLTU2LjIgMTI1LjUtMTI1LjUgMTI1LjVMMTQ0IDQ4MGMtMTcuNyAwLTMyLTE0LjMtMzItMzJzMTQuMy0zMiAzMi0zMmwxNDYuNSAwYzM0IDAgNjEuNS0yNy41IDYxLjUtNjEuNSAwLTYuNC0xLTEyLjctMi44LTE4LjV6Il19LFlfZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJibG9nIixpY29uOls1MTIsNTEyLFtdLCJmNzgxIiwiTTIyNCAyNGMwLTEzLjMgMTAuNy0yNCAyNC0yNCAxNDUuOCAwIDI2NCAxMTguMiAyNjQgMjY0IDAgMTMuMy0xMC43IDI0LTI0IDI0cy0yNC0xMC43LTI0LTI0YzAtMTE5LjMtOTYuNy0yMTYtMjE2LTIxNi0xMy4zIDAtMjQtMTAuNy0yNC0yNHpNODAgOTZjMjYuNSAwIDQ4IDIxLjUgNDggNDhsMCAyMjRjMCAyNi41IDIxLjUgNDggNDggNDhzNDgtMjEuNSA0OC00OC0yMS41LTQ4LTQ4LTQ4Yy04LjggMC0xNi03LjItMTYtMTZsMC02NGMwLTguOCA3LjItMTYgMTYtMTYgNzkuNSAwIDE0NCA2NC41IDE0NCAxNDRTMjU1LjUgNTEyIDE3NiA1MTIgMzIgNDQ3LjUgMzIgMzY4bDAtMjI0YzAtMjYuNSAyMS41LTQ4IDQ4LTQ4em0xNjggMGM5Mi44IDAgMTY4IDc1LjIgMTY4IDE2OCAwIDEzLjMtMTAuNyAyNC0yNCAyNHMtMjQtMTAuNy0yNC0yNGMwLTY2LjMtNTMuNy0xMjAtMTIwLTEyMC0xMy4zIDAtMjQtMTAuNy0yNC0yNHMxMC43LTI0IDI0LTI0eiJdfSxaX2U9e3ByZWZpeDoiZmFzIixpY29uTmFtZToic3RvcHdhdGNoLTIwIixpY29uOls0NDgsNTEyLFtdLCJlMDZmIiwiTTE2OC41IDBjLTEzLjMgMC0yNCAxMC43LTI0IDI0czEwLjcgMjQgMjQgMjRsMzIgMCAwIDI1LjNjLTEwOCAxMS45LTE5MiAxMDMuNS0xOTIgMjE0LjcgMCAxMTkuMyA5Ni43IDIxNiAyMTYgMjE2czIxNi05Ni43IDIxNi0yMTZjMC0zOS44LTEwLjgtNzcuMS0yOS42LTEwOS4ybDI4LjItMjguMmMxMi41LTEyLjUgMTIuNS0zMi44IDAtNDUuM3MtMzIuOC0xMi41LTQ1LjMgMGwtMjMuNCAyMy40Yy0zMi45LTMwLjItNzUuMi01MC4zLTEyMi01NS41bDAtMjUuMyAzMiAwYzEzLjMgMCAyNC0xMC43IDI0LTI0cy0xMC43LTI0LTI0LTI0bC0xMTIgMHptLTYwIDI0MGMwLTI4LjcgMjMuMy01MiA1Mi01MnM1MiAyMy4zIDUyIDUybDAgMy44YzAgMTEuNy0zLjIgMjMuMS05LjMgMzNsLTQzLjggNzEuMiAzMy4xIDBjMTEgMCAyMCA5IDIwIDIwcy05IDIwLTIwIDIwbC01Ny44IDBjLTE0LjUgMC0yNi4yLTExLjctMjYuMi0yNi4yIDAtNC45IDEuMy05LjYgMy45LTEzLjhsNTYuNy05Mi4xYzIuMi0zLjYgMy40LTcuOCAzLjQtMTIuMWwwLTMuOGMwLTYuNi01LjQtMTItMTItMTJzLTEyIDUuNC0xMiAxMmMwIDExLTkgMjAtMjAgMjBzLTIwLTktMjAtMjB6bTE4MC01MmMyOC43IDAgNTIgMjMuMyA1MiA1MmwwIDk2YzAgMjguNy0yMy4zIDUyLTUyIDUycy01Mi0yMy4zLTUyLTUybDAtOTZjMC0yOC43IDIzLjMtNTIgNTItNTJ6bS0xMiA1MmwwIDk2YzAgNi42IDUuNCAxMiAxMiAxMnMxMi01LjQgMTItMTJsMC05NmMwLTYuNi01LjQtMTItMTItMTJzLTEyIDUuNC0xMiAxMnoiXX0sWF9lPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InRydWNrLXBpY2t1cCIsaWNvbjpbNjQwLDUxMixbMTI4NzYzXSwiZjYzYyIsIk0zNjMuOCA5Nmw1Ny42IDk2LTEzMy40IDAgMC05NiA3NS44IDB6TTQ5NiAxOTJMNDE4LjYgNjMuMUM0MDcuMSA0My44IDM4Ni4yIDMyIDM2My44IDMyTDI1NiAzMmMtMTcuNyAwLTMyIDE0LjMtMzIgMzJsMCAxMjgtMTQ0IDBjLTI2LjUgMC00OCAyMS41LTQ4IDQ4bDAgODBjLTE3LjcgMC0zMiAxNC4zLTMyIDMyczE0LjMgMzIgMzIgMzJsMzIuNCAwYy0uMiAyLjYtLjQgNS4zLS40IDggMCA0OC42IDM5LjQgODggODggODhzODgtMzkuNCA4OC04OGMwLTIuNy0uMS01LjQtLjQtOGwxNjAuNyAwYy0uMiAyLjYtLjQgNS4zLS40IDggMCA0OC42IDM5LjQgODggODggODhzODgtMzkuNCA4OC04OGMwLTIuNy0uMS01LjQtLjQtOGwzMi40IDBjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJsMC04MGMwLTI2LjUtMjEuNS00OC00OC00OGwtNjQgMHpNMTEyIDM5MmE0MCA0MCAwIDEgMSA4MCAwIDQwIDQwIDAgMSAxIC04MCAwem0zNzYtNDBhNDAgNDAgMCAxIDEgMCA4MCA0MCA0MCAwIDEgMSAwLTgweiJdfSxGTj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJzZWVkbGluZyIsaWNvbjpbNTEyLDUxMixbMTI3NzkzLCJzcHJvdXQiXSwiZjRkOCIsIk01MTIgMzJDNTEyIDE0MC4xIDQzNS40IDIzMC4zIDMzMy42IDI1MS40IDMyNS43IDE5My4zIDI5OS42IDE0MSAyNjEuMSAxMDAuNSAzMDEuMiA0MCAzNjkuOSAwIDQ0OCAwbDMyIDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJ6TTAgOTZDMCA3OC4zIDE0LjMgNjQgMzIgNjRsMzIgMGMxMjMuNyAwIDIyNCAxMDAuMyAyMjQgMjI0bDAgMTkyYzAgMTcuNy0xNC4zIDMyLTMyIDMycy0zMi0xNC4zLTMyLTMybDAtMTYwQzEwMC4zIDMyMCAwIDIxOS43IDAgOTZ6Il19LEtfZT1GTixPTj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJ0cmFuc2dlbmRlciIsaWNvbjpbNTc2LDUxMixbOTg5NSwidHJhbnNnZW5kZXItYWx0Il0sImYyMjUiLCJNMTI4LTMyYzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMyTDk3LjkgMzIgMTM2IDcwLjEgMTUxIDU1YzkuNC05LjQgMjQuNi05LjQgMzMuOSAwczkuNCAyNC42IDAgMzMuOWwtMTUgMTUgMTQuMiAxNC4yYzI3LjktMjMuOCA2NC4yLTM4LjIgMTAzLjgtMzguMiAzNi43IDAgNzAuNiAxMi40IDk3LjYgMzMuMkw0NjYuNyAzMiA0NDggMzJjLTE3LjcgMC0zMi0xNC4zLTMyLTMyczE0LjMtMzIgMzItMzJsOTYgMGMxNy43IDAgMzIgMTQuMyAzMiAzMmwwIDk2YzAgMTcuNy0xNC4zIDMyLTMyIDMycy0zMi0xNC4zLTMyLTMybDAtMTguNy04NC40IDg0LjRjMTMgMjMuMSAyMC40IDQ5LjkgMjAuNCA3OC4zIDAgNzcuNC01NSAxNDItMTI4IDE1Ni44bDAgMzUuMiAzMiAwYzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMybC0zMiAwIDAgMTZjMCAxNy43LTE0LjMgMzItMzIgMzJzLTMyLTE0LjMtMzItMzJsMC0xNi0zMiAwYy0xNy43IDAtMzItMTQuMy0zMi0zMnMxNC4zLTMyIDMyLTMybDMyIDAgMC0zNS4yYy03My0xNC44LTEyOC03OS40LTEyOC0xNTYuOCAwLTMxLjQgOS02MC43IDI0LjctODUuNGwtMTYuNy0xNi43LTE1IDE1Yy05LjQgOS40LTI0LjYgOS40LTMzLjkgMHMtOS40LTI0LjYgMC0zMy45bDE1LTE1LTM4LjEtMzguMSAwIDMwLjFjMCAxNy43LTE0LjMgMzItMzIgMzJTMCAxMTMuNyAwIDk2TDAgMEMwLTE3LjcgMTQuMy0zMiAzMi0zMmw5NiAwek0yODggMzM2YTk2IDk2IDAgMSAwIDAtMTkyIDk2IDk2IDAgMSAwIDAgMTkyeiJdfSxRX2U9T04sSl9lPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InN0YXItaGFsZiIsaWNvbjpbNTc2LDUxMixbNjE3MzFdLCJmMDg5IiwiTTMwNC4xIDcuNmMwLTExLjEtNy42LTIwLjctMTguNC0yMy4zcy0yMS45IDIuNS0yNyAxMi40TDE5My4xIDEyNS4zIDMzLjIgMTUwLjdjLTguOSAxLjQtMTYuMyA3LjctMTkuMSAxNi4zcy0uNSAxOCA1LjggMjQuNGwxMTQuNCAxMTQuNS0yNS4yIDE1OS45Yy0xLjQgOC45IDIuMyAxNy45IDkuNiAyMy4yczE2LjkgNi4xIDI1IDJMMjkxIDQxNi4xYzgtNC4xIDEzLjEtMTIuNCAxMy4xLTIxLjRsMC0zODcuMXoiXX0sUk49e3ByZWZpeDoiZmFzIixpY29uTmFtZToicGhvdG8tZmlsbSIsaWNvbjpbNjQwLDUxMixbInBob3RvLXZpZGVvIl0sImY4N2MiLCJNMTkyIDY0YzAtMzUuMyAyOC43LTY0IDY0LTY0TDU3NiAwYzM1LjMgMCA2NCAyOC43IDY0IDY0bDAgMjI0YzAgMzUuMy0yOC43IDY0LTY0IDY0bC0zMjAgMGMtMzUuMyAwLTY0LTI4LjctNjQtNjRsMC0yMjR6TTMyMCA5NmEzMiAzMiAwIDEgMCAtNjQgMCAzMiAzMiAwIDEgMCA2NCAwem0xNTYuNSAxMS41QzQ3Mi4xIDEwMC40IDQ2NC40IDk2IDQ1NiA5NnMtMTYuMSA0LjQtMjAuNSAxMS41bC01NCA4OC4zLTE3LjktMjUuNmMtNC41LTYuNC0xMS44LTEwLjItMTkuNy0xMC4ycy0xNS4yIDMuOC0xOS43IDEwLjJsLTU2IDgwYy01LjEgNy4zLTUuOCAxNi45LTEuNiAyNC44UzI3OS4xIDI4OCAyODggMjg4bDI1NiAwYzguNyAwIDE2LjctNC43IDIwLjktMTIuM3M0LjEtMTYuOC0uNS0yNC4zbC04OC0xNDR6TTE0NCAxMjhsMCAxNjBjMCA2MS45IDUwLjEgMTEyIDExMiAxMTJsMTkyIDAgMCAxNmMwIDM1LjMtMjguNyA2NC02NCA2NEw2NCA0ODBjLTM1LjMgMC02NC0yOC43LTY0LTY0TDAgMTkyYzAtMzUuMyAyOC43LTY0IDY0LTY0bDgwIDB6TTUyIDE5NmwwIDI0YzAgOC44IDcuMiAxNiAxNiAxNmwyNCAwYzguOCAwIDE2LTcuMiAxNi0xNmwwLTI0YzAtOC44LTcuMi0xNi0xNi0xNmwtMjQgMGMtOC44IDAtMTYgNy4yLTE2IDE2em0xNiA4MGMtOC44IDAtMTYgNy4yLTE2IDE2bDAgMjRjMCA4LjggNy4yIDE2IDE2IDE2bDI0IDBjOC44IDAgMTYtNy4yIDE2LTE2bDAtMjRjMC04LjgtNy4yLTE2LTE2LTE2bC0yNCAwem0wIDk2Yy04LjggMC0xNiA3LjItMTYgMTZsMCAyNGMwIDguOCA3LjIgMTYgMTYgMTZsMjQgMGM4LjggMCAxNi03LjIgMTYtMTZsMC0yNGMwLTguOC03LjItMTYtMTYtMTZsLTI0IDB6Il19LGVUZT1STix0VGU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToicGljdHVyZS1pbi1waWN0dXJlIixpY29uOls1MTIsNTEyLFtdLCJlODBiIiwiTTQ0OCAzMmMzNS4zIDAgNjQgMjguNyA2NCA2NGwwIDExMi02NCAwIDAtMTEyLTM4NCAwIDAgMzIwIDE0NCAwIDAgNjQtMTQ0IDAtNi41LS4zYy0zMC4xLTMuMS01NC4xLTI3LTU3LjEtNTcuMUwwIDQxNiAwIDk2QzAgNjIuOSAyNS4yIDM1LjYgNTcuNSAzMi4zTDY0IDMyIDQ0OCAzMnptMTYgMjI0YzI2LjUgMCA0OCAyMS41IDQ4IDQ4bDAgMTI4YzAgMjYuNS0yMS41IDQ4LTQ4IDQ4bC0xNjAgMGMtMjYuNSAwLTQ4LTIxLjUtNDgtNDhsMC0xMjhjMC0yNi41IDIxLjUtNDggNDgtNDhsMTYwIDB6Il19LGFUZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJwdW1wLW1lZGljYWwiLGljb246WzMyMCw1MTIsW10sImUwNmEiLCJNOTYgMGwwIDgwIDEyOCAwIDAtMjQgNzIgMGMxMy4zIDAgMjQtMTAuNyAyNC0yNFMzMDkuMyA4IDI5NiA4bC03MiAwIDAtOGMwLTE3LjctMTQuMy0zMi0zMi0zMmwtNjQgMEMxMTAuMy0zMiA5Ni0xNy43IDk2IDB6TTY0IDEyOGMtMzUuMyAwLTY0IDI4LjctNjQgNjRMMCA0NDhjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMTkyIDBjMzUuMyAwIDY0LTI4LjcgNjQtNjRsMC0yNTZjMC0zNS4zLTI4LjctNjQtNjQtNjRMNjQgMTI4em02NCAxMjBjMC04LjggNy4yLTE2IDE2LTE2bDMyIDBjOC44IDAgMTYgNy4yIDE2IDE2bDAgNDAgNDAgMGM4LjggMCAxNiA3LjIgMTYgMTZsMCAzMmMwIDguOC03LjIgMTYtMTYgMTZsLTQwIDAgMCA0MGMwIDguOC03LjIgMTYtMTYgMTZsLTMyIDBjLTguOCAwLTE2LTcuMi0xNi0xNmwwLTQwLTQwIDBjLTguOCAwLTE2LTcuMi0xNi0xNmwwLTMyYzAtOC44IDcuMi0xNiAxNi0xNmw0MCAwIDAtNDB6Il19LGlUZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJmaXJlIixpY29uOls0NDgsNTEyLFsxMjgyOTNdLCJmMDZkIiwiTTE2MC41LTI2LjRjOS4zLTcuOCAyMy03LjUgMzEuOSAuOSAxMi4zIDExLjYgMjMuMyAyNC40IDMzLjkgMzcuNCAxMy41IDE2LjUgMjkuNyAzOC4zIDQ1LjMgNjQuMiA1LjItNi44IDEwLTEyLjggMTQuMi0xNy45IDEuMS0xLjMgMi4yLTIuNyAzLjMtNC4xIDcuOS05LjggMTcuNy0yMi4xIDMwLjgtMjIuMSAxMy40IDAgMjIuOCAxMS45IDMwLjggMjIuMSAxLjMgMS43IDIuNiAzLjMgMy45IDQuOCAxMC4zIDEyLjQgMjQgMzAuMyAzNy43IDUyLjQgMjcuMiA0My45IDU1LjYgMTA2LjQgNTUuNiAxNzYuNiAwIDEyMy43LTEwMC4zIDIyNC0yMjQgMjI0UzAgNDExLjcgMCAyODhjMC05MS4xIDQxLjEtMTcwIDgwLjUtMjI1IDE5LjktMjcuNyAzOS43LTQ5LjkgNTQuNi02NS4xIDguMi04LjQgMTYuNS0xNi43IDI1LjUtMjQuMnpNMjI1LjcgNDE2YzI1LjMgMCA0Ny43LTcgNjguOC0yMSA0Mi4xLTI5LjQgNTMuNC04OC4yIDI4LjEtMTM0LjQtNC41LTktMTYtOS42LTIyLjUtMmwtMjUuMiAyOS4zYy02LjYgNy42LTE4LjUgNy40LTI0LjctLjUtMTcuMy0yMi4xLTQ5LjEtNjIuNC02NS4zLTgzLTUuNC02LjktMTUuMi04LTIxLjUtMS45LTE4LjMgMTcuOC01MS41IDU2LjgtNTEuNSAxMDQuMyAwIDY4LjYgNTAuNiAxMDkuMiAxMTMuNyAxMDkuMnoiXX0sQk49e3ByZWZpeDoiZmFzIixpY29uTmFtZToibWFnbmlmeWluZy1nbGFzcy1wbHVzIixpY29uOls1MTIsNTEyLFsic2VhcmNoLXBsdXMiXSwiZjAwZSIsIk00MTYgMjA4YzAgNDUuOS0xNC45IDg4LjMtNDAgMTIyLjdMNTAyLjYgNDU3LjRjMTIuNSAxMi41IDEyLjUgMzIuOCAwIDQ1LjNzLTMyLjggMTIuNS00NS4zIDBMMzMwLjcgMzc2QzI5Ni4zIDQwMS4xIDI1My45IDQxNiAyMDggNDE2IDkzLjEgNDE2IDAgMzIyLjkgMCAyMDhTOTMuMSAwIDIwOCAwIDQxNiA5My4xIDQxNiAyMDh6TTIwOCAxMTJjLTEzLjMgMC0yNCAxMC43LTI0IDI0bDAgNDgtNDggMGMtMTMuMyAwLTI0IDEwLjctMjQgMjRzMTAuNyAyNCAyNCAyNGw0OCAwIDAgNDhjMCAxMy4zIDEwLjcgMjQgMjQgMjRzMjQtMTAuNyAyNC0yNGwwLTQ4IDQ4IDBjMTMuMyAwIDI0LTEwLjcgMjQtMjRzLTEwLjctMjQtMjQtMjRsLTQ4IDAgMC00OGMwLTEzLjMtMTAuNy0yNC0yNC0yNHoiXX0sclRlPUJOLHNUZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJmbGFzayIsaWNvbjpbNDQ4LDUxMixbXSwiZjBjMyIsIk0yODggMEwxMjggMEMxMTAuMyAwIDk2IDE0LjMgOTYgMzJzMTQuMyAzMiAzMiAzMkwxMjggMjE1LjUgNy41IDQyNi4zQzIuNiA0MzUgMCA0NDQuNyAwIDQ1NC43IDAgNDg2LjQgMjUuNiA1MTIgNTcuMyA1MTJsMzMzLjQgMGMzMS42IDAgNTcuMy0yNS42IDU3LjMtNTcuMyAwLTEwLTIuNi0xOS44LTcuNS0yOC40TDMyMCAyMTUuNSAzMjAgNjRjMTcuNyAwIDMyLTE0LjMgMzItMzJTMzM3LjcgMCAzMjAgMEwyODggMHpNMTkyIDIxNS41bDAtMTUxLjUgNjQgMCAwIDE1MS41YzAgMTEuMSAyLjkgMjIuMSA4LjQgMzEuOGw0MS42IDcyLjctMTY0IDAgNDEuNi03Mi43YzUuNS05LjcgOC40LTIwLjYgOC40LTMxLjh6Il19LG5UZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJhbGlnbi1yaWdodCIsaWNvbjpbNDQ4LDUxMixbXSwiZjAzOCIsIk00NDggNjRjMCAxNy43LTE0LjMgMzItMzIgMzJMMTkyIDk2Yy0xNy43IDAtMzItMTQuMy0zMi0zMnMxNC4zLTMyIDMyLTMybDIyNCAwYzE3LjcgMCAzMiAxNC4zIDMyIDMyem0wIDI1NmMwIDE3LjctMTQuMyAzMi0zMiAzMmwtMjI0IDBjLTE3LjcgMC0zMi0xNC4zLTMyLTMyczE0LjMtMzIgMzItMzJsMjI0IDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJ6TTAgMTkyYzAtMTcuNyAxNC4zLTMyIDMyLTMybDM4NCAwYzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMyTDMyIDIyNGMtMTcuNyAwLTMyLTE0LjMtMzItMzJ6TTQ0OCA0NDhjMCAxNy43LTE0LjMgMzItMzIgMzJMMzIgNDgwYy0xNy43IDAtMzItMTQuMy0zMi0zMnMxNC4zLTMyIDMyLTMybDM4NCAwYzE3LjcgMCAzMiAxNC4zIDMyIDMyeiJdfSxITj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJjYWJsZS1jYXIiLGljb246WzUxMiw1MTIsWzEyODY3Myw1NzU1MSwidHJhbSJdLCJmN2RhIiwiTTI4OC0zMmEzMiAzMiAwIDEgMSAwIDY0IDMyIDMyIDAgMSAxIDAtNjR6TTE2MCAyNGEzMiAzMiAwIDEgMSA2NCAwIDMyIDMyIDAgMSAxIC02NCAwek0zMiAyODhjMC0zNS4zIDI4LjctNjQgNjQtNjRsMTM2IDAgMC05Ni4yLTE5My40IDU1LjNjLTEyLjcgMy42LTI2LTMuNy0yOS43LTE2LjVzMy43LTI2IDE2LjUtMjkuN2wyMjQtNjQgMCAwIDIyNC02NGMxMi43LTMuNiAyNiAzLjcgMjkuNyAxNi41cy0zLjcgMjYtMTYuNSAyOS43bC0yMDYuNiA1OSAwIDEwOS45IDEzNiAwYzM1LjMgMCA2NCAyOC43IDY0IDY0bDAgMTYwYzAgMzUuMy0yOC43IDY0LTY0IDY0TDk2IDUxMmMtMzUuMyAwLTY0LTI4LjctNjQtNjRsMC0xNjB6bTgwIDBjLTguOCAwLTE2IDcuMi0xNiAxNmwwIDY0YzAgOC44IDcuMiAxNiAxNiAxNmw1NiAwIDAtOTYtNTYgMHptMTg0IDk2bDAtOTYtODAgMCAwIDk2IDgwIDB6bTQ4IDBsNTYgMGM4LjggMCAxNi03LjIgMTYtMTZsMC02NGMwLTguOC03LjItMTYtMTYtMTZsLTU2IDAgMCA5NnoiXX0sb1RlPUhOLHFOPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImtpdC1tZWRpY2FsIixpY29uOls1MTIsNTEyLFsiZmlyc3QtYWlkIl0sImY0NzkiLCJNNjQgNjRDMjguNyA2NCAwIDkyLjcgMCAxMjhMMCAzODRjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMTYgMCAwLTM4NC0xNiAwem02NCAwbDAgMzg0IDI1NiAwIDAtMzg0LTI1NiAwek00NDggNDQ4YzM1LjMgMCA2NC0yOC43IDY0LTY0bDAtMjU2YzAtMzUuMy0yOC43LTY0LTY0LTY0bC0xNiAwIDAgMzg0IDE2IDB6TTIyNCAxODRjMC04LjggNy4yLTE2IDE2LTE2bDMyIDBjOC44IDAgMTYgNy4yIDE2IDE2bDAgNDAgNDAgMGM4LjggMCAxNiA3LjIgMTYgMTZsMCAzMmMwIDguOC03LjIgMTYtMTYgMTZsLTQwIDAgMCA0MGMwIDguOC03LjIgMTYtMTYgMTZsLTMyIDBjLTguOCAwLTE2LTcuMi0xNi0xNmwwLTQwLTQwIDBjLTguOCAwLTE2LTcuMi0xNi0xNmwwLTMyYzAtOC44IDcuMi0xNiAxNi0xNmw0MCAwIDAtNDB6Il19LGxUZT1xTixjVGU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZ3JpcC1saW5lcyIsaWNvbjpbNDQ4LDUxMixbXSwiZjdhNCIsIk0zMiAyODhjLTE3LjcgMC0zMiAxNC4zLTMyIDMyczE0LjMgMzIgMzIgMzJsMzg0IDBjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJMMzIgMjg4em0wLTEyOGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJzMTQuMyAzMiAzMiAzMmwzODQgMGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMkwzMiAxNjB6Il19LFZOPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImJ1cmdlciIsaWNvbjpbNTEyLDUxMixbImhhbWJ1cmdlciJdLCJmODA1IiwiTTQ4IDM4NGMtOC44IDAtMTYgNy4yLTE2IDE2IDAgNDQuMiAzNS44IDgwIDgwIDgwbDI4OCAwYzQ0LjIgMCA4MC0zNS44IDgwLTgwIDAtOC44LTcuMi0xNi0xNi0xNkw0OCAzODR6TTMyIDIwMmMwIDEyLjIgOS45IDIyIDIyIDIyTDQ1OCAyMjRjMTIuMiAwIDIyLTkuOSAyMi0yMiAwLTE3LjItMi42LTM0LjQtMTAuOC00OS41LTIyLjItNDAuOC04Mi4zLTEyMC41LTIxMy4yLTEyMC41UzY1IDExMS42IDQyLjggMTUyLjVDMzQuNiAxNjcuNiAzMiAxODQuOCAzMiAyMDJ6TTAgMzA0YzAgMTcuNyAxNC4zIDMyIDMyIDMybDQ0OCAwYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMyTDMyIDI3MmMtMTcuNyAwLTMyIDE0LjMtMzIgMzJ6TTI1NiA3MmEyNCAyNCAwIDEgMSAwIDQ4IDI0IDI0IDAgMSAxIDAtNDh6TTEyMCAxMjhhMjQgMjQgMCAxIDEgNDggMCAyNCAyNCAwIDEgMSAtNDggMHptMjQ4LTI0YTI0IDI0IDAgMSAxIDAgNDggMjQgMjQgMCAxIDEgMC00OHoiXX0sZFRlPVZOLGhUZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJzbm93bWFuIixpY29uOls2NDAsNTEyLFs5NzMxLDk5MjRdLCJmN2QwIiwiTTQwMyAyMTEuN2MzMi4yLTI0LjkgNTMtNjMuOSA1My0xMDcuNyAwLTc1LjEtNjAuOS0xMzYtMTM2LTEzNlMxODQgMjguOSAxODQgMTA0YzAgNDMuOSAyMC44IDgyLjkgNTMgMTA3LjctMzIuMiAxNi4zLTU5IDQxLjgtNzYuOCA3My4xTDExMiAyNjQuMiAxMTIgMjI0YzAtMTMuMy0xMC43LTI0LTI0LTI0cy0yNCAxMC43LTI0IDI0bDAgMTkuNi0yMi41LTkuN2MtMTIuMi01LjItMjYuMyAuNC0zMS41IDEyLjZzLjQgMjYuMyAxMi42IDMxLjVjMzYuMSAxNS41IDc1LjkgMzIuNSAxMTkuNCA1MS4yLTMuOSAxNC45LTYgMzAuNi02IDQ2LjcgMCA3MCAzOS4xIDEzMC44IDk2LjYgMTYxLjkgNy45IDQuMyAxNi45IDYuMSAyNS45IDYuMWwxMjMgMGM5IDAgMTgtMS44IDI1LjktNi4xIDU3LjUtMzEuMSA5Ni42LTkyIDk2LjYtMTYxLjkgMC0xNi4yLTIuMS0zMS44LTYtNDYuNyA0My41LTE4LjcgODMuNC0zNS43IDExOS40LTUxLjIgMTIuMi01LjIgMTcuOC0xOS4zIDEyLjYtMzEuNXMtMTkuMy0xNy44LTMxLjUtMTIuNmwtMjIuNSA5LjcgMC0xOS42YzAtMTMuMy0xMC43LTI0LTI0LTI0cy0yNCAxMC43LTI0IDI0bDAgNDAuMi00OC4yIDIwLjZjLTE3LjktMzEuMy00NC42LTU2LjgtNzYuOC03My4xek0yOTYgNDE2YTI0IDI0IDAgMSAxIDQ4IDAgMjQgMjQgMCAxIDEgLTQ4IDB6bTI0LTEyMGEyNCAyNCAwIDEgMSAwIDQ4IDI0IDI0IDAgMSAxIDAtNDh6TTI0OCA4MGEyNCAyNCAwIDEgMSA0OCAwIDI0IDI0IDAgMSAxIC00OCAwek0zNjggNTZhMjQgMjQgMCAxIDEgMCA0OCAyNCAyNCAwIDEgMSAwLTQ4ek0yOTIuMiAxNTkuM2MtMi43LTQuOC00LjItMTAuMi00LjItMTUuNyAwLTE3LjUgMTQuMi0zMS42IDMxLjYtMzEuNmwuOCAwYzE3LjUgMCAzMS42IDE0LjIgMzEuNiAzMS42IDAgNS41LTEuNCAxMC45LTQuMiAxNS43TDMyNyAxOTUuOGMtMy4xIDUuNC0xMC44IDUuNC0xMy45IDBsLTIwLjktMzYuNnoiXX0scFRlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImhvdGVsIixpY29uOls1MTIsNTEyLFsxMjc5NzZdLCJmNTk0IiwiTTE2IDI0QzE2IDEwLjcgMjYuNyAwIDQwIDBMNDcyIDBjMTMuMyAwIDI0IDEwLjcgMjQgMjRzLTEwLjcgMjQtMjQgMjRsLTggMCAwIDQxNiA4IDBjMTMuMyAwIDI0IDEwLjcgMjQgMjRzLTEwLjcgMjQtMjQgMjRMNDAgNTEyYy0xMy4zIDAtMjQtMTAuNy0yNC0yNHMxMC43LTI0IDI0LTI0bDggMCAwLTQxNi04IDBDMjYuNyA0OCAxNiAzNy4zIDE2IDI0em0yMDggODhsMCAzMmMwIDguOCA3LjIgMTYgMTYgMTZsMzIgMGM4LjggMCAxNi03LjIgMTYtMTZsMC0zMmMwLTguOC03LjItMTYtMTYtMTZsLTMyIDBjLTguOCAwLTE2IDcuMi0xNiAxNnpNMTI4IDk2Yy04LjggMC0xNiA3LjItMTYgMTZsMCAzMmMwIDguOCA3LjIgMTYgMTYgMTZsMzIgMGM4LjggMCAxNi03LjIgMTYtMTZsMC0zMmMwLTguOC03LjItMTYtMTYtMTZsLTMyIDB6bTk2IDExMmwwIDMyYzAgOC44IDcuMiAxNiAxNiAxNmwzMiAwYzguOCAwIDE2LTcuMiAxNi0xNmwwLTMyYzAtOC44LTcuMi0xNi0xNi0xNmwtMzIgMGMtOC44IDAtMTYgNy4yLTE2IDE2ek0zNTIgOTZjLTguOCAwLTE2IDcuMi0xNiAxNmwwIDMyYzAgOC44IDcuMiAxNiAxNiAxNmwzMiAwYzguOCAwIDE2LTcuMiAxNi0xNmwwLTMyYzAtOC44LTcuMi0xNi0xNi0xNmwtMzIgMHpNMTEyIDIwOGwwIDMyYzAgOC44IDcuMiAxNiAxNiAxNmwzMiAwYzguOCAwIDE2LTcuMiAxNi0xNmwwLTMyYzAtOC44LTcuMi0xNi0xNi0xNmwtMzIgMGMtOC44IDAtMTYgNy4yLTE2IDE2em0yNDAtMTZjLTguOCAwLTE2IDcuMi0xNiAxNmwwIDMyYzAgOC44IDcuMiAxNiAxNiAxNmwzMiAwYzguOCAwIDE2LTcuMiAxNi0xNmwwLTMyYzAtOC44LTcuMi0xNi0xNi0xNmwtMzIgMHpNMjg4IDM4NGw0My44IDBjOS45IDAgMTcuNS05IDE0LTE4LjItMTMuOC0zNi4xLTQ4LjgtNjEuOC04OS43LTYxLjhzLTc1LjkgMjUuNy04OS43IDYxLjhjLTMuNSA5LjIgNC4xIDE4LjIgMTQgMTguMmw0My44IDAgMCA4MCA2NCAwIDAtODB6Il19LHVUZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJwcmludCIsaWNvbjpbNTEyLDUxMixbMTI4NDI0LDEyODQzOCw5MTEzXSwiZjAyZiIsIk02NCA2NEM2NCAyOC43IDkyLjcgMCAxMjggMEwzNDEuNSAwYzE3IDAgMzMuMyA2LjcgNDUuMyAxOC43bDQyLjUgNDIuNWMxMiAxMiAxOC43IDI4LjMgMTguNyA0NS4zbDAgMzcuNS0zODQgMCAwLTgwek0wIDI1NmMwLTM1LjMgMjguNy02NCA2NC02NGwzODQgMGMzNS4zIDAgNjQgMjguNyA2NCA2NGwwIDk2YzAgMTcuNy0xNC4zIDMyLTMyIDMybC0zMiAwIDAgNjRjMCAzNS4zLTI4LjcgNjQtNjQgNjRsLTI1NiAwYy0zNS4zIDAtNjQtMjguNy02NC02NGwwLTY0LTMyIDBjLTE3LjcgMC0zMi0xNC4zLTMyLTMybDAtOTZ6TTEyOCA0MTZsMCAzMiAyNTYgMCAwLTk2LTI1NiAwIDAgNjR6TTQ1NiAyNzJhMjQgMjQgMCAxIDAgLTQ4IDAgMjQgMjQgMCAxIDAgNDggMHoiXX0sak49e3ByZWZpeDoiZmFzIixpY29uTmFtZToidm9sbGV5YmFsbCIsaWNvbjpbNTEyLDUxMixbMTI3OTUyLCJ2b2xsZXliYWxsLWJhbGwiXSwiZjQ1ZiIsIk01MTIgMjU4LjljLTIzLjQgOC00Ny44IDEzLjEtNzIuNiAxNS4xIDUuOS05OC42LTMwLjctMTkxLjEtOTQuOS0yNTguMyA5Ny44IDM2IDE2Ny41IDEzMCAxNjcuNSAyNDAuMyAwIDEgMCAxLjkgMCAyLjl6bS01LjkgNTJjLTUuMiAyMy43LTEzLjYgNDYuMi0yNC45IDY2LjktOTQuNyA1Mi4yLTIxNCA1MC0zMDguNC0xMy42IDIxLjctMzEuMyA0OS44LTU4LjkgODMuOC04MC41IDc5LjUgNDEuNiAxNjguNSA0OS4xIDI0OS41IDI3LjF6TTI3OS43IDI0MS42Yy0zLjctODkuNy00MS43LTE3MC41LTEwMS4zLTIyOS43IDIyLjMtNy4xIDQ2LTExLjIgNzAuNS0xMS45IDkyLjUgNTUuOSAxNTAuMyAxNjAuMyAxNDIuNCAyNzMuOC0zOC0zLjItNzUuOS0xMy43LTExMS42LTMyLjN6TTEzMC41IDMyLjhDMTQ5LjEgNDkuMSAxNjUuOCA2Ny43IDE3OS45IDg4LjIgOTEuNSAxMzIuMyAyOS43IDIxMC4zIDMuNyAyOTkuNSAxLjMgMjg1LjMgMCAyNzAuOCAwIDI1NiAwIDE2MC4yIDUyLjYgNzYuNyAxMzAuNSAzMi44em03My40IDk3YzE2LjMgMzQuNSAyNi4xIDcyLjYgMjcuOSAxMTIuOC03NS44IDQ4LTEyNi44IDEyMS4zLTE0OC4zIDIwMi41LTE3LjYtMTYuMS0zMy0zNC42LTQ1LjUtNTUgMi4xLTEwOC4xIDYzLjctMjEwLjQgMTY1LjktMjYwLjN6TTI1NiA1MTJjLTQ3LjcgMC05Mi4zLTEzLTEzMC41LTM1LjcgNC44LTI0LjMgMTIuNi00OCAyMy4yLTcwLjQgODIuNCA1NC40IDE4MC44IDY4LjkgMjcxIDQ3LTQ0LjQgMzctMTAxLjUgNTkuMi0xNjMuNyA1OS4yeiJdfSxmVGU9ak4sbVRlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InRyYWZmaWMtbGlnaHQiLGljb246WzMyMCw1MTIsWzEyODY3OF0sImY2MzciLCJNNjQtMzJDMjguNy0zMiAwLTMuMyAwIDMyTDAgMzg0YzAgODguNCA3MS42IDE2MCAxNjAgMTYwczE2MC03MS42IDE2MC0xNjBsMC0zNTJjMC0zNS4zLTI4LjctNjQtNjQtNjRMNjQtMzJ6bTk2IDM5MmMzMC45IDAgNTYgMjUuMSA1NiA1NnMtMjUuMSA1Ni01NiA1Ni01Ni0yNS4xLTU2LTU2IDI1LjEtNTYgNTYtNTZ6bTU2LTEwNGE1NiA1NiAwIDEgMSAtMTEyIDAgNTYgNTYgMCAxIDEgMTEyIDB6TTE2MCAxNTJhNTYgNTYgMCAxIDEgMC0xMTIgNTYgNTYgMCAxIDEgMCAxMTJ6Il19LGdUZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJwbGFuZS1jaXJjbGUtY2hlY2siLGljb246WzY0MCw1MTIsW10sImU1NTUiLCJNMjMyIDI0YzAtMzAuOSAyNS4xLTU2IDU2LTU2czU2IDI1LjEgNTYgNTZsMCAxMjcuMyA3OCA3MS41Yy02OS4zIDI5LTExOCA5Ny40LTExOCAxNzcuMiAwIDQ5LjMgMTguNiA5NC4zIDQ5LjEgMTI4LjNMMjg4IDUxMiAxNzkuOSA1MzljLTEwLjEgMi41LTE5LjktNS4xLTE5LjktMTUuNWwwLTE5LjhjMC00LjkgMi4yLTkuNSA2LTEyLjVsNjYtNTIuOCAwLTk5LjctMTYyLjkgNTQuM0M1OC43IDM5Ni40IDQ4IDM4OC43IDQ4IDM3Ny44bDAtNDMuN2MwLTkgMy44LTE3LjUgMTAuNC0yMy42TDIzMiAxNTEuMyAyMzIgMjR6TTM1MiA0MDBhMTQ0IDE0NCAwIDEgMSAyODggMCAxNDQgMTQ0IDAgMSAxIC0yODggMHptMjAxLjQtNjAuOWMtNy4xLTUuMi0xNy4yLTMuNi0yMi40IDMuNWwtNTMgNzIuOS0yNi44LTI2LjhjLTYuMi02LjItMTYuNC02LjItMjIuNiAwcy02LjIgMTYuNCAwIDIyLjZsNDAgNDBjMy4zIDMuMyA3LjkgNSAxMi42IDQuNnM4LjktMi44IDExLjctNi41bDY0LTg4YzUuMi03LjEgMy42LTE3LjItMy41LTIyLjN6Il19LHRnPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InVzZXJzIixpY29uOls2NDAsNTEyLFtdLCJmMGMwIiwiTTMyMCAxNmExMDQgMTA0IDAgMSAxIDAgMjA4IDEwNCAxMDQgMCAxIDEgMC0yMDh6TTk2IDg4YTcyIDcyIDAgMSAxIDAgMTQ0IDcyIDcyIDAgMSAxIDAtMTQ0ek0wIDQxNmMwLTcwLjcgNTcuMy0xMjggMTI4LTEyOCAxMi44IDAgMjUuMiAxLjkgMzYuOSA1LjQtMzIuOSAzNi44LTUyLjkgODUuNC01Mi45IDEzOC42bDAgMTZjMCAxMS40IDIuNCAyMi4yIDYuNyAzMkwzMiA0ODBjLTE3LjcgMC0zMi0xNC4zLTMyLTMybDAtMzJ6bTUyMS4zIDY0YzQuMy05LjggNi43LTIwLjYgNi43LTMybDAtMTZjMC01My4yLTIwLTEwMS44LTUyLjktMTM4LjYgMTEuNy0zLjUgMjQuMS01LjQgMzYuOS01LjQgNzAuNyAwIDEyOCA1Ny4zIDEyOCAxMjhsMCAzMmMwIDE3LjctMTQuMyAzMi0zMiAzMmwtODYuNyAwek00NzIgMTYwYTcyIDcyIDAgMSAxIDE0NCAwIDcyIDcyIDAgMSAxIC0xNDQgMHpNMTYwIDQzMmMwLTg4LjQgNzEuNi0xNjAgMTYwLTE2MHMxNjAgNzEuNiAxNjAgMTYwbDAgMTZjMCAxNy43LTE0LjMgMzItMzIgMzJsLTI1NiAwYy0xNy43IDAtMzItMTQuMy0zMi0zMmwwLTE2eiJdfSxiVGU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiY2VydGlmaWNhdGUiLGljb246WzU3Niw1MTIsW10sImYwYTMiLCJNMjM5LjItOGMtNi4xLTYuMi0xNS04LjctMjMuNC02LjRTMjAwLjktNS42IDE5OC44IDIuOEwxODMuNSA2M2MtMS4xIDQuNC01LjYgNy05LjkgNS43TDExMy44IDUxLjljLTguNC0yLjQtMTcuNCAwLTIzLjUgNi4xcy04LjUgMTUuMS02LjEgMjMuNWwxNi45IDU5LjhjMS4yIDQuMy0xLjQgOC44LTUuNyA5LjlMMzUuMSAxNjYuNWMtOC40IDIuMS0xNSA4LjctMTcuMyAxNy4xcy4yIDE3LjMgNi40IDIzLjRsNDQuNSA0My4zYzMuMiAzLjEgMy4yIDguMyAwIDExLjVMMjQuMyAzMDUuMWMtNi4yIDYuMS04LjcgMTUtNi40IDIzLjRzOC45IDE0LjkgMTcuMyAxNy4xbDYwLjIgMTUuM2M0LjQgMS4xIDcgNS42IDUuNyA5LjlMODQuMiA0MzAuNWMtMi40IDguNCAwIDE3LjQgNi4xIDIzLjVzMTUuMSA4LjUgMjMuNSA2LjFsNTkuOC0xNi45YzQuMy0xLjIgOC44IDEuNCA5LjkgNS43bDE1LjMgNjAuMmMyLjEgOC40IDguNyAxNSAxNy4xIDE3LjNzMTcuMy0uMiAyMy40LTYuNGw0My4zLTQ0LjVjMy4xLTMuMiA4LjMtMy4yIDExLjUgMEwzMzcuMyA1MjBjNi4xIDYuMiAxNSA4LjcgMjMuNCA2LjRzMTQuOS04LjkgMTcuMS0xNy4zTDM5My4xIDQ0OWMxLjEtNC40IDUuNi03IDkuOS01LjdsNTkuOCAxNi45YzguNCAyLjQgMTcuNCAwIDIzLjUtNi4xczguNS0xNS4xIDYuMS0yMy41bC0xNi45LTU5LjhjLTEuMi00LjMgMS40LTguOCA1LjctOS45bDYwLjItMTUuM2M4LjQtMi4xIDE1LTguNyAxNy4zLTE3LjFzLS4yLTE3LjQtNi40LTIzLjRsLTQ0LjUtNDMuM2MtMy4yLTMuMS0zLjItOC4zIDAtMTEuNWw0NC41LTQzLjNjNi4yLTYuMSA4LjctMTUgNi40LTIzLjRzLTguOS0xNC45LTE3LjMtMTcuMWwtNjAuMi0xNS4zYy00LjQtMS4xLTctNS42LTUuNy05LjlsMTYuOS01OS44YzIuNC04LjQgMC0xNy40LTYuMS0yMy41cy0xNS4xLTguNS0yMy41LTYuMUw0MDMgNjguOGMtNC4zIDEuMi04LjgtMS40LTkuOS01LjdMMzc3LjggMi44Yy0yLjEtOC40LTguNy0xNS0xNy4xLTE3LjNzLTE3LjMgLjItMjMuNCA2LjRMMjk0IDM2LjVjLTMuMSAzLjItOC4zIDMuMi0xMS41IDBMMjM5LjItOHoiXX0sdlRlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImFsYXJtLWNsb2NrIixpY29uOls1MTIsNTEyLFs5MjAwXSwiZjM0ZSIsIk01MDQuNCAxMzIuNWMtNC41IDEwLjUtMTguNCA5LjgtMjQuOSAuNC0yNy44LTQwLTY2LjEtNzIuMi0xMTEtOTIuNi0xMC40LTQuNy0xMy43LTE4LjMtNC4xLTI0LjYgMTUtOS45IDMzLTE1LjcgNTIuMy0xNS43IDUyLjYgMCA5NS4yIDQyLjYgOTUuMiA5NS4yIDAgMTMuMi0yLjcgMjUuOC03LjYgMzcuM3ptLTQ3MS45IC40Yy02LjUgOS40LTIwLjUgMTAuMS0yNC45LS40LTQuOS0xMS41LTcuNi0yNC4xLTcuNi0zNy4zIDAtNTIuNiA0Mi42LTk1LjIgOTUuMi05NS4yIDE5LjMgMCAzNy4zIDUuOCA1Mi4zIDE1LjcgOS42IDYuMyA2LjMgMTkuOS00LjEgMjQuNi00NC44IDIwLjQtODMuMSA1Mi42LTExMSA5Mi42ek0zOTAuMiA0NjcuNEMzNTIuOCA0OTUuNCAzMDYuMyA1MTIgMjU2IDUxMnMtOTYuOC0xNi42LTEzNC4xLTQ0LjZMODYuNiA1MDIuNmMtMTIuNSAxMi41LTMyLjggMTIuNS00NS4zIDBzLTEyLjUtMzIuOCAwLTQ1LjNsMzUuMi0zNS4yQzQ4LjYgMzg0LjggMzIgMzM4LjMgMzIgMjg4IDMyIDE2NC4zIDEzMi4zIDY0IDI1NiA2NFM0ODAgMTY0LjMgNDgwIDI4OGMwIDUwLjMtMTYuNiA5Ni44LTQ0LjYgMTM0LjJsMzUuMiAzNS4yYzEyLjUgMTIuNSAxMi41IDMyLjggMCA0NS4zcy0zMi44IDEyLjUtNDUuMyAwbC0zNS4yLTM1LjJ6TTI4MCAxODRjMC0xMy4zLTEwLjctMjQtMjQtMjRzLTI0IDEwLjctMjQgMjRsMCAxMDRjMCA2LjQgMi41IDEyLjUgNyAxN2w1NiA1NmM5LjQgOS40IDI0LjYgOS40IDMzLjkgMHM5LjQtMjQuNiAwLTMzLjlsLTQ5LTQ5IDAtOTQuMXoiXX0seVRlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImhlbGljb3B0ZXItc3ltYm9sIixpY29uOls1MTIsNTEyLFtdLCJlNTAyIiwiTTQ0NS40IDIyNGw2NC43IDBDNDk1LjYgMTA4LjIgNDAzLjggMTYuNCAyODggMmwwIDY0LjdDMzY4LjQgODAuMSA0MzEuOSAxNDMuNiA0NDUuNCAyMjR6TTUxMCAyODhsLTY0LjcgMEM0MzEuOSAzNjguNCAzNjguNCA0MzEuOSAyODggNDQ1LjNsMCA2NC43YzExNS44LTE0LjQgMjA3LjYtMTA2LjIgMjIyLTIyMnpNMiAyODhDMTYuNCA0MDMuOCAxMDguMiA0OTUuNiAyMjQgNTEwbDAtNjQuN0MxNDMuNiA0MzEuOSA4MC4yIDM2OC40IDY2LjcgMjg4TDIgMjg4em0wLTY0bDY0LjcgMEM4MC4yIDE0My42IDE0My42IDgwLjEgMjI0IDY2LjdMMjI0IDJDMTA4LjIgMTYuNCAxNi40IDEwOC4yIDIgMjI0em0yMDYtNjRjMC0xNy43LTE0LjMtMzItMzItMzJzLTMyIDE0LjMtMzIgMzJsMCAxOTJjMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMmwwLTY0IDk2IDAgMCA2NGMwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMybDAtMTkyYzAtMTcuNy0xNC4zLTMyLTMyLTMycy0zMiAxNC4zLTMyIDMybDAgNjQtOTYgMCAwLTY0eiJdfSxVTj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJob3VzZS1jaGltbmV5LWNyYWNrIixpY29uOls1MTIsNTEyLFsiaG91c2UtZGFtYWdlIl0sImY2ZjEiLCJNMjM0LjIgOC42YzEyLjMtMTEuNCAzMS4zLTExLjQgNDMuNSAwTDM2OCA5Mi4zIDM2OCA4MGMwLTE3LjcgMTQuMy0zMiAzMi0zMmwzMiAwYzE3LjcgMCAzMiAxNC4zIDMyIDMybDAgMTAxLjUgMzcuOCAzNS4xYzkuNiA5IDEyLjggMjIuOSA4IDM1LjFTNDkzLjIgMjcyIDQ4MCAyNzJsLTE2IDAgMCAxNzZjMCAzNS4zLTI4LjcgNjQtNjQgNjRsLTEwNS42IDAtMzguNC02NCA4MC44LTY3LjNjNy44LTYuNSA3LjYtMTguNi0uNC0yNC45TDIxOC42IDI2My4yYy0xNC42LTExLjUtMzMuOCA3LTIyLjggMjJMMjU2IDM2OCAxNzAuNSA0MzkuMmMtNi4xIDUtNy41IDEzLjgtMy41IDIwLjVsMzEuMyA1Mi4yLTg2LjQgMGMtMzUuMyAwLTY0LTI4LjctNjQtNjRsMC0xNzYtMTYgMGMtMTMuMiAwLTI1LTguMS0yOS44LTIwLjNzLTEuNi0yNi4yIDgtMzUuMWwyMjQtMjA4eiJdfSx4VGU9VU4sd1RlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InBlcnNvbi1taWxpdGFyeS1wb2ludGluZyIsaWNvbjpbNTEyLDUxMixbXSwiZTU0YSIsIk0yMTQuOSAxNC4xQzIwMiAxNS4yIDE5MiAyNiAxOTIgMzkgMTkyIDUyLjggMjAzLjIgNjQgMjE3IDY0bDE1MSAwYzguOCAwIDE2LTcuMiAxNi0xNmwwLTMwLjZDMzg0IDggMzc2IC43IDM2Ni43IDEuNEwyMTQuOSAxNC4xek0yMDggMTEyYzAgNDQuMiAzNS44IDgwIDgwIDgwczgwLTM1LjggODAtODBjMC01LjUtLjYtMTAuOC0xLjYtMTZMMjA5LjYgOTZjLTEgNS4yLTEuNiAxMC41LTEuNiAxNnpNNDAgMjI0Yy0yMi4xIDAtNDAgMTcuOS00MCA0MHMxNy45IDQwIDQwIDQwbDE1MiAwIDAgODkuNCAxNjIuOC0xNjIuOGMtMTMuMy00LjMtMjcuMy02LjUtNDEuNi02LjVMNDAgMjI0em0zNDUuNyAyMC45bC0xNzEuMSAxNzEuMSAxNjkuNCAwIDAtNDYuMyA1My42IDkwLjZjMTEuMiAxOSAzNS44IDI1LjMgNTQuOCAxNC4xczI1LjMtMzUuOCAxNC4xLTU0LjhMNDMwLjMgMjkwLjhjLTExLjItMTktMjYuNi0zNC41LTQ0LjYtNDUuOXpNMTkyIDQ0OGwwIDMyYzAgMTcuNyAxNC4zIDMyIDMyIDMybDEyOCAwYzE3LjcgMCAzMi0xNC4zIDMyLTMybDAtMzItMTkyIDB6Il19LE1UZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJkYXRhYmFzZSIsaWNvbjpbNDQ4LDUxMixbXSwiZjFjMCIsIk00NDggMjA1LjhjLTE0LjggOS44LTMxLjggMTcuNy00OS41IDI0LTQ3IDE2LjgtMTA4LjcgMjYuMi0xNzQuNSAyNi4yUzk2LjQgMjQ2LjUgNDkuNSAyMjkuOGMtMTcuNi02LjMtMzQuNy0xNC4yLTQ5LjUtMjRMMCAyODhjMCA0NC4yIDEwMC4zIDgwIDIyNCA4MHMyMjQtMzUuOCAyMjQtODBsMC04Mi4yem0wLTc3LjhsMC00OEM0NDggMzUuOCAzNDcuNyAwIDIyNCAwUzAgMzUuOCAwIDgwbDAgNDhjMCA0NC4yIDEwMC4zIDgwIDIyNCA4MHMyMjQtMzUuOCAyMjQtODB6TTM5OC41IDM4OS44QzM1MS42IDQwNi41IDI4OS45IDQxNiAyMjQgNDE2Uzk2LjQgNDA2LjUgNDkuNSAzODkuOGMtMTcuNi02LjMtMzQuNy0xNC4yLTQ5LjUtMjRMMCA0MzJjMCA0NC4yIDEwMC4zIDgwIDIyNCA4MHMyMjQtMzUuOCAyMjQtODBsMC02Ni4yYy0xNC44IDkuOC0zMS44IDE3LjctNDkuNSAyNHoiXX0selRlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6Im5ld3NwYXBlciIsaWNvbjpbNTEyLDUxMixbMTI4MjQwXSwiZjFlYSIsIk0wIDQxNkwwIDEyMGMwLTEzLjMgMTAuNy0yNCAyNC0yNHMyNCAxMC43IDI0IDI0bDAgMjg4YzAgMTMuMyAxMC43IDI0IDI0IDI0czI0LTEwLjcgMjQtMjRMOTYgOTZjMC0zNS4zIDI4LjctNjQgNjQtNjRsMjg4IDBjMzUuMyAwIDY0IDI4LjcgNjQgNjRsMCAzMjBjMCAzNS4zLTI4LjcgNjQtNjQgNjRMNjQgNDgwYy0zNS4zIDAtNjQtMjguNy02NC02NHpNMTYwIDEyOGwwIDY0YzAgMTcuNyAxNC4zIDMyIDMyIDMybDY0IDBjMTcuNyAwIDMyLTE0LjMgMzItMzJsMC02NGMwLTE3LjctMTQuMy0zMi0zMi0zMmwtNjQgMGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJ6bTI0IDI0MGMtMTMuMyAwLTI0IDEwLjctMjQgMjRzMTAuNyAyNCAyNCAyNGwyNDAgMGMxMy4zIDAgMjQtMTAuNyAyNC0yNHMtMTAuNy0yNC0yNC0yNGwtMjQwIDB6bS0yNC03MmMwIDEzLjMgMTAuNyAyNCAyNCAyNGwyNDAgMGMxMy4zIDAgMjQtMTAuNyAyNC0yNHMtMTAuNy0yNC0yNC0yNGwtMjQwIDBjLTEzLjMgMC0yNCAxMC43LTI0IDI0ek0zNjAgMTc2Yy0xMy4zIDAtMjQgMTAuNy0yNCAyNHMxMC43IDI0IDI0IDI0bDY0IDBjMTMuMyAwIDI0LTEwLjcgMjQtMjRzLTEwLjctMjQtMjQtMjRsLTY0IDB6Il19LGtUZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJjbG91ZC1yYWluIixpY29uOls1MTIsNTEyLFsxMjc3ODMsOTkyNl0sImY3M2QiLCJNOTYgMzIwYy01MyAwLTk2LTQzLTk2LTk2IDAtNDIuNSAyNy42LTc4LjYgNjUuOS05MS4yLTEuMy02LjctMS45LTEzLjctMS45LTIwLjggMC02MS45IDUwLjEtMTEyIDExMi0xMTIgNDMuMSAwIDgwLjUgMjQuMyA5OS4yIDYwIDE0LjctMTcuMSAzNi41LTI4IDYwLjgtMjggNDQuMiAwIDgwIDM1LjggODAgODAgMCA1LjUtLjYgMTAuOC0xLjYgMTYgLjUgMCAxLjEgMCAxLjYgMCA1MyAwIDk2IDQzIDk2IDk2cy00MyA5Ni05NiA5Nkw5NiAzMjB6bTEuNiA2OC4yYzEuMS0yLjUgMy42LTQuMiA2LjQtNC4yczUuMyAxLjYgNi40IDQuMmwzMC4yIDY4LjJjMi4yIDUuMSAzLjQgMTAuNSAzLjQgMTYgMCAyMS45LTE4LjEgMzkuNi00MCAzOS42cy00MC0xNy43LTQwLTM5LjZjMC01LjUgMS4yLTExIDMuNC0xNmwzMC4yLTY4LjJ6bTE1MiAwYzEuMS0yLjUgMy42LTQuMiA2LjQtNC4yczUuMyAxLjYgNi40IDQuMmwzMC4yIDY4LjJjMi4yIDUuMSAzLjQgMTAuNSAzLjQgMTYgMCAyMS45LTE4LjEgMzkuNi00MCAzOS42cy00MC0xNy43LTQwLTM5LjZjMC01LjUgMS4yLTExIDMuNC0xNmwzMC4yLTY4LjJ6bTEyMS44IDY4LjJsMzAuMi02OC4yYzEuMS0yLjUgMy42LTQuMiA2LjQtNC4yczUuMyAxLjYgNi40IDQuMmwzMC4yIDY4LjJjMi4yIDUuMSAzLjQgMTAuNSAzLjQgMTYgMCAyMS45LTE4LjEgMzkuNi00MCAzOS42cy00MC0xNy43LTQwLTM5LjZjMC01LjUgMS4yLTExIDMuNC0xNnoiXX0sV049e3ByZWZpeDoiZmFzIixpY29uTmFtZToibWF4aW1pemUiLGljb246WzQ0OCw1MTIsWyJleHBhbmQtYXJyb3dzLWFsdCJdLCJmMzFlIiwiTTE2OCAzMkwyNCAzMkMxMC43IDMyIDAgNDIuNyAwIDU2TDAgMjAwYzAgOS43IDUuOCAxOC41IDE0LjggMjIuMlMzNC4xIDIyMy44IDQxIDIxN2w0MC00MCA3OSA3OS03OSA3OS00MC00MGMtNi45LTYuOS0xNy4yLTguOS0yNi4yLTUuMlMwIDMwMi4zIDAgMzEyTDAgNDU2YzAgMTMuMyAxMC43IDI0IDI0IDI0bDE0NCAwYzkuNyAwIDE4LjUtNS44IDIyLjItMTQuOHMxLjctMTkuMy01LjItMjYuMmwtNDAtNDAgNzktNzkgNzkgNzktNDAgNDBjLTYuOSA2LjktOC45IDE3LjItNS4yIDI2LjJTMjcwLjMgNDgwIDI4MCA0ODBsMTQ0IDBjMTMuMyAwIDI0LTEwLjcgMjQtMjRsMC0xNDRjMC05LjctNS44LTE4LjUtMTQuOC0yMi4ycy0xOS4zLTEuNy0yNi4yIDUuMmwtNDAgNDAtNzktNzkgNzktNzkgNDAgNDBjNi45IDYuOSAxNy4yIDguOSAyNi4yIDUuMlM0NDggMjA5LjcgNDQ4IDIwMGwwLTE0NGMwLTEzLjMtMTAuNy0yNC0yNC0yNEwyODAgMzJjLTkuNyAwLTE4LjUgNS44LTIyLjIgMTQuOFMyNTYuMiA2Ni4xIDI2MyA3M2w0MCA0MC03OSA3OS03OS03OSA0MC00MGM2LjktNi45IDguOS0xNy4yIDUuMi0yNi4yUzE3Ny43IDMyIDE2OCAzMnoiXX0sU1RlPVdOLENUZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJsb2NhdGlvbi1hcnJvdyIsaWNvbjpbNTEyLDUxMixbXSwiZjEyNCIsIk00NzcuOSA3NS41YzQuNS0xMS44IDEuNy0yNS4yLTcuMi0zNC4xcy0yMi4zLTExLjgtMzQuMS03LjJsLTQxNiAxNjBDNy45IDE5OS0uMyAyMTEuMiAwIDIyNC43czkuMSAyNS40IDIxLjkgMjkuNmwxNzYuOCA1OC45IDU4LjkgMTc2LjhjNC4zIDEyLjggMTYuMSAyMS42IDI5LjYgMjEuOXMyNS43LTcuOSAzMC42LTIwLjVsMTYwLTQxNnoiXX0sX1RlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImNpdHkiLGljb246WzU3Niw1MTIsWzEyNzk2MV0sImY2NGYiLCJNMzIwIDBjLTM1LjMgMC02NCAyOC43LTY0IDY0bDAgMzItNDggMCAwLTcyYzAtMTMuMy0xMC43LTI0LTI0LTI0cy0yNCAxMC43LTI0IDI0bDAgNzItNjQgMCAwLTcyQzk2IDEwLjcgODUuMyAwIDcyIDBTNDggMTAuNyA0OCAyNGwwIDc0Yy0yNy42IDcuMS00OCAzMi4yLTQ4IDYyTDAgNDQ4YzAgMzUuMyAyOC43IDY0IDY0IDY0bDQ0OCAwYzM1LjMgMCA2NC0yOC43IDY0LTY0bDAtMTkyYzAtMzUuMy0yOC43LTY0LTY0LTY0bC02NCAwIDAtMTI4YzAtMzUuMy0yOC43LTY0LTY0LTY0TDMyMCAwem02NCAxMTJsMCAzMmMwIDguOC03LjIgMTYtMTYgMTZsLTMyIDBjLTguOCAwLTE2LTcuMi0xNi0xNmwwLTMyYzAtOC44IDcuMi0xNiAxNi0xNmwzMiAwYzguOCAwIDE2IDcuMiAxNiAxNnptLTE2IDgwYzguOCAwIDE2IDcuMiAxNiAxNmwwIDMyYzAgOC44LTcuMiAxNi0xNiAxNmwtMzIgMGMtOC44IDAtMTYtNy4yLTE2LTE2bDAtMzJjMC04LjggNy4yLTE2IDE2LTE2bDMyIDB6bTE2IDExMmwwIDMyYzAgOC44LTcuMiAxNi0xNiAxNmwtMzIgMGMtOC44IDAtMTYtNy4yLTE2LTE2bDAtMzJjMC04LjggNy4yLTE2IDE2LTE2bDMyIDBjOC44IDAgMTYgNy4yIDE2IDE2em0xMTItMTZjOC44IDAgMTYgNy4yIDE2IDE2bDAgMzJjMCA4LjgtNy4yIDE2LTE2IDE2bC0zMiAwYy04LjggMC0xNi03LjItMTYtMTZsMC0zMmMwLTguOCA3LjItMTYgMTYtMTZsMzIgMHpNMjU2IDMwNGwwIDMyYzAgOC44LTcuMiAxNi0xNiAxNmwtMzIgMGMtOC44IDAtMTYtNy4yLTE2LTE2bDAtMzJjMC04LjggNy4yLTE2IDE2LTE2bDMyIDBjOC44IDAgMTYgNy4yIDE2IDE2ek0yNDAgMTkyYzguOCAwIDE2IDcuMiAxNiAxNmwwIDMyYzAgOC44LTcuMiAxNi0xNiAxNmwtMzIgMGMtOC44IDAtMTYtNy4yLTE2LTE2bDAtMzJjMC04LjggNy4yLTE2IDE2LTE2bDMyIDB6TTEyOCAzMDRsMCAzMmMwIDguOC03LjIgMTYtMTYgMTZsLTMyIDBjLTguOCAwLTE2LTcuMi0xNi0xNmwwLTMyYzAtOC44IDcuMi0xNiAxNi0xNmwzMiAwYzguOCAwIDE2IDcuMiAxNiAxNnpNMTEyIDE5MmM4LjggMCAxNiA3LjIgMTYgMTZsMCAzMmMwIDguOC03LjIgMTYtMTYgMTZsLTMyIDBjLTguOCAwLTE2LTcuMi0xNi0xNmwwLTMyYzAtOC44IDcuMi0xNiAxNi0xNmwzMiAweiJdfSxUVGU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToieC1yYXkiLGljb246WzUxMiw1MTIsW10sImY0OTciLCJNMCA2NEMwIDQ2LjMgMTQuMyAzMiAzMiAzMmw0NDggMGMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMmwwIDMyMGMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMkwzMiA0ODBjLTE3LjcgMC0zMi0xNC4zLTMyLTMyczE0LjMtMzIgMzItMzJMMzIgOTZDMTQuMyA5NiAwIDgxLjcgMCA2NHptMjgwIDU2YzAtMTMuMy0xMC43LTI0LTI0LTI0cy0yNCAxMC43LTI0IDI0bDAgMTYtNjQgMGMtMTMuMyAwLTI0IDEwLjctMjQgMjRzMTAuNyAyNCAyNCAyNGw2NCAwIDAgNDgtODAgMGMtMTMuMyAwLTI0IDEwLjctMjQgMjRzMTAuNyAyNCAyNCAyNGw4MCAwIDAgNDgtNjQgMGMtMTMuMyAwLTI0IDEwLjctMjQgMjRzMTAuNyAyNCAyNCAyNGw2NCAwIDAgMTZjMCAxMy4zIDEwLjcgMjQgMjQgMjRzMjQtMTAuNyAyNC0yNGwwLTE2IDY0IDBjMTMuMyAwIDI0LTEwLjcgMjQtMjRzLTEwLjctMjQtMjQtMjRsLTY0IDAgMC00OCA4MCAwYzEzLjMgMCAyNC0xMC43IDI0LTI0cy0xMC43LTI0LTI0LTI0bC04MCAwIDAtNDggNjQgMGMxMy4zIDAgMjQtMTAuNyAyNC0yNHMtMTAuNy0yNC0yNC0yNGwtNjQgMCAwLTE2eiJdfSxMVGU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToidW1icmVsbGEtYmVhY2giLGljb246WzUxMiw1MTIsWzEyNzk1OF0sImY1Y2EiLCJNNDk3LjUgMzQxLjFjLTUuOSAxNi43LTI1LjMgMjMtNDEuMSAxNS4xbC0xNzguMi04OS4xLTEuNiAzLjItODguOCAxNzcuNyAyOTIuMiAwYzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMyTDMyIDUxMmMtMTcuNyAwLTMyLTE0LjMtMzItMzJzMTQuMy0zMiAzMi0zMmw4NC4yIDAgMTAzLjItMjA2LjMgMS42LTMuMi0xNjUuNC04Mi43Yy0xNS44LTcuOS0yMi40LTI3LjMtMTIuNS00MiA0NS45LTY4LjYgMTI0LjEtMTEzLjggMjEyLjktMTEzLjggMTQxLjQgMCAyNTYgMTE0LjYgMjU2IDI1NiAwIDI5LjgtNS4xIDU4LjUtMTQuNSA4NS4xeiJdfSxHTj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJhcnJvdy1yaWdodC10by1icmFja2V0IixpY29uOls1MTIsNTEyLFsic2lnbi1pbiJdLCJmMDkwIiwiTTM1MiA5Nmw2NCAwYzE3LjcgMCAzMiAxNC4zIDMyIDMybDAgMjU2YzAgMTcuNy0xNC4zIDMyLTMyIDMybC02NCAwYy0xNy43IDAtMzIgMTQuMy0zMiAzMnMxNC4zIDMyIDMyIDMybDY0IDBjNTMgMCA5Ni00MyA5Ni05NmwwLTI1NmMwLTUzLTQzLTk2LTk2LTk2bC02NCAwYy0xNy43IDAtMzIgMTQuMy0zMiAzMnMxNC4zIDMyIDMyIDMyem0tOS40IDE4Mi42YzEyLjUtMTIuNSAxMi41LTMyLjggMC00NS4zbC0xMjgtMTI4Yy0xMi41LTEyLjUtMzIuOC0xMi41LTQ1LjMgMHMtMTIuNSAzMi44IDAgNDUuM0wyNDIuNyAyMjQgMzIgMjI0Yy0xNy43IDAtMzIgMTQuMy0zMiAzMnMxNC4zIDMyIDMyIDMybDIxMC43IDAtNzMuNCA3My40Yy0xMi41IDEyLjUtMTIuNSAzMi44IDAgNDUuM3MzMi44IDEyLjUgNDUuMyAwbDEyOC0xMjh6Il19LCRUZT1HTixBVGU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiaGVhZHNldCIsaWNvbjpbNDQ4LDUxMixbXSwiZjU5MCIsIk0yMjQgNjRjLTc5IDAtMTQ0LjcgNTcuMy0xNTcuNyAxMzIuNyA5LjMtMyAxOS4zLTQuNyAyOS43LTQuN2wxNiAwYzI2LjUgMCA0OCAyMS41IDQ4IDQ4bDAgOTZjMCAyNi41LTIxLjUgNDgtNDggNDhsLTE2IDBjLTUzIDAtOTYtNDMtOTYtOTZsMC02NEMwIDEwMC4zIDEwMC4zIDAgMjI0IDBTNDQ4IDEwMC4zIDQ0OCAyMjRsMCAxNjguMWMwIDY2LjMtNTMuOCAxMjAtMTIwLjEgMTIwbC04Ny45LS4xLTMyIDBjLTI2LjUgMC00OC0yMS41LTQ4LTQ4czIxLjUtNDggNDgtNDhsMzIgMGMyNi41IDAgNDggMjEuNSA0OCA0OGwwIDAgNDAgMGMzOS44IDAgNzItMzIuMiA3Mi03MmwwLTIwLjljLTE0LjEgOC4yLTMwLjUgMTIuOC00OCAxMi44bC0xNiAwYy0yNi41IDAtNDgtMjEuNS00OC00OGwwLTk2YzAtMjYuNSAyMS41LTQ4IDQ4LTQ4bDE2IDBjMTAuNCAwIDIwLjMgMS42IDI5LjcgNC43LTEzLTc1LjMtNzguNi0xMzIuNy0xNTcuNy0xMzIuN3oiXX0sRFRlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InNwbG90Y2giLGljb246WzUxMiw1MTIsW10sImY1YmMiLCJNMjA4LjUgNjIuM2wyOC4xLTM2LjlDMjQ4LjggOS40IDI2Ny44IDAgMjg4IDAgMzE2LjUgMCAzNDEuNiAxOC43IDM0OS44IDQ2bDE3LjggNTkuNGMxMC4zIDM0LjQgMzYuMSA2MiA2OS44IDc0LjZsMzkuOCAxNC45YzIwLjkgNy45IDM0LjggMjcuOSAzNC44IDUwLjIgMCAxNi45LTcuOSAzMi44LTIxLjUgNDIuOWwtNjcuMyA1MC41Yy0yNC4zIDE4LjItMzcuMiA0Ny45LTMzLjggNzguMWwyLjUgMjIuN2M0LjMgMzguNy0yNiA3Mi42LTY1IDcyLjYtMTQuOCAwLTI5LjMtNS4xLTQwLjktMTQuM2wtNTUuMy00NC4zYy00LjUtMy42LTkuMy02LjctMTQuNS05LjItMTUuOC03LjktMzMuNy0xMC40LTUxLTcuM0w4Mi40IDQ1MS45Yy0zNC42IDYuMy02Ni40LTIwLjMtNjYuNC01NS40IDAtMTMuMiA0LjctMjYgMTMuMS0zNi4ybDExLjItMTMuNGMxNC42LTE3LjQgMjIuNi0zOS40IDIyLjYtNjIuMSAwLTE4LjgtNS41LTM3LjItMTUuOC01M0w4LjggMTczLjVDMy4xIDE2NC43IDAgMTU0LjQgMCAxNDMuOSAwIDExMC41IDMwLjEgODUuMSA2MyA5MC43bDUxLjMgOC43YzM1LjkgNi4xIDcyLjItOC4yIDk0LjItMzcuMXoiXX0sWU49e3ByZWZpeDoiZmFzIixpY29uTmFtZToidXAtbG9uZyIsaWNvbjpbMzIwLDUxMixbImxvbmctYXJyb3ctYWx0LXVwIl0sImYzMGMiLCJNMTM3LjQtMjIuNmMxMi41LTEyLjUgMzIuOC0xMi41IDQ1LjMgMGwxMjggMTI4YzkuMiA5LjIgMTEuOSAyMi45IDYuOSAzNC45UzMwMC45IDE2MCAyODggMTYwbC02NCAwIDAgMzM2YzAgMjYuNS0yMS41IDQ4LTQ4IDQ4bC0zMiAwYy0yNi41IDAtNDgtMjEuNS00OC00OGwwLTMzNi02NCAwYy0xMi45IDAtMjQuNi03LjgtMjkuNi0xOS44Uy4yIDExNC41IDkuNCAxMDUuNGwxMjgtMTI4eiJdfSxFVGU9WU4sUFRlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImhleGFnb24tbm9kZXMiLGljb246WzQ0OCw1MTIsW10sImU2OTkiLCJNMjQ4IDEwNi42YzE4LjktOSAzMi0yOC4zIDMyLTUwLjZjMC0zMC45LTI1LjEtNTYtNTYtNTZzLTU2IDI1LjEtNTYgNTZjMCAyMi4zIDEzLjEgNDEuNiAzMiA1MC42bDAgOTguOGMtMi44IDEuMy01LjUgMi45LTggNC43bC04MC4xLTQ1LjhjMS42LTIwLjgtOC42LTQxLjYtMjcuOS01Mi44QzU3LjIgOTYgMjMgMTA1LjIgNy41IDEzMlMxLjIgMTkzIDI4IDIwOC41YzEuMyAuOCAyLjYgMS41IDQgMi4xbDAgOTAuOGMtMS4zIC42LTIuNyAxLjMtNCAyLjFDMS4yIDMxOS04IDM1My4yIDcuNSAzODBTNTcuMiA0MTYgODQgNDAwLjVjMTkuMy0xMS4xIDI5LjQtMzIgMjcuOC01Mi44bDUwLjUtMjguOWMtMTEuNS0xMS4yLTE5LjktMjUuNi0yMy44LTQxLjdMODggMzA2LjFjLTIuNi0xLjgtNS4yLTMuMy04LTQuN2wwLTkwLjhjMi44LTEuMyA1LjUtMi45IDgtNC43bDgwLjEgNDUuOGMtLjEgMS40LS4yIDIuOC0uMiA0LjNjMCAyMi4zIDEzLjEgNDEuNiAzMiA1MC42bDAgOTguOGMtMTguOSA5LTMyIDI4LjMtMzIgNTAuNmMwIDMwLjkgMjUuMSA1NiA1NiA1NnM1Ni0yNS4xIDU2LTU2YzAtMjIuMy0xMy4xLTQxLjYtMzItNTAuNmwwLTk4LjhjMi44LTEuMyA1LjUtMi45IDgtNC43bDgwLjEgNDUuOGMtMS42IDIwLjggOC42IDQxLjYgMjcuOCA1Mi44YzI2LjggMTUuNSA2MSA2LjMgNzYuNS0yMC41czYuMy02MS0yMC41LTc2LjVjLTEuMy0uOC0yLjctMS41LTQtMi4xbDAtOTAuOGMxLjQtLjYgMi43LTEuMyA0LTIuMWMyNi44LTE1LjUgMzYtNDkuNyAyMC41LTc2LjVTMzkwLjggOTYgMzY0IDExMS41Yy0xOS4zIDExLjEtMjkuNCAzMi0yNy44IDUyLjhsLTUwLjYgMjguOWMxMS41IDExLjIgMTkuOSAyNS42IDIzLjggNDEuN0wzNjAgMjA1LjljMi42IDEuOCA1LjIgMy4zIDggNC43bDAgOTAuOGMtMi44IDEuMy01LjUgMi45LTggNC42bC04MC4xLTQ1LjhjLjEtMS40IC4yLTIuOCAuMi00LjNjMC0yMi4zLTEzLjEtNDEuNi0zMi01MC42bDAtOTguOHoiXX0sbG09e3ByZWZpeDoiZmFzIixpY29uTmFtZToiaG9zcGl0YWwiLGljb246WzU3Niw1MTIsWzEyNzk3Myw2MjU4OSwiaG9zcGl0YWwtYWx0IiwiaG9zcGl0YWwtd2lkZSJdLCJmMGY4IiwiTTEyOCA2NGMwLTM1LjMgMjguNy02NCA2NC02NEwzODQgMGMzNS4zIDAgNjQgMjguNyA2NCA2NGwwIDY0IDY0IDBjMzUuMyAwIDY0IDI4LjcgNjQgNjRsMCAyNTZjMCAzNS4zLTI4LjcgNjQtNjQgNjRMNjQgNTEyYy0zNS4zIDAtNjQtMjguNy02NC02NEwwIDE5MmMwLTM1LjMgMjguNy02NCA2NC02NGw2NCAwIDAtNjR6TTI3MiAzNTJjLTE3LjcgMC0zMiAxNC4zLTMyIDMybDAgODAgOTYgMCAwLTgwYzAtMTcuNy0xNC4zLTMyLTMyLTMybC0zMiAwek0xMjggMzY4bDAtMzJjMC04LjgtNy4yLTE2LTE2LTE2bC0zMiAwYy04LjggMC0xNiA3LjItMTYgMTZsMCAzMmMwIDguOCA3LjIgMTYgMTYgMTZsMzIgMGM4LjggMCAxNi03LjIgMTYtMTZ6TTExMiAyNTZjOC44IDAgMTYtNy4yIDE2LTE2bDAtMzJjMC04LjgtNy4yLTE2LTE2LTE2bC0zMiAwYy04LjggMC0xNiA3LjItMTYgMTZsMCAzMmMwIDguOCA3LjIgMTYgMTYgMTZsMzIgMHpNNTEyIDM2OGwwLTMyYzAtOC44LTcuMi0xNi0xNi0xNmwtMzIgMGMtOC44IDAtMTYgNy4yLTE2IDE2bDAgMzJjMCA4LjggNy4yIDE2IDE2IDE2bDMyIDBjOC44IDAgMTYtNy4yIDE2LTE2ek00OTYgMjU2YzguOCAwIDE2LTcuMiAxNi0xNmwwLTMyYzAtOC44LTcuMi0xNi0xNi0xNmwtMzIgMGMtOC44IDAtMTYgNy4yLTE2IDE2bDAgMzJjMCA4LjggNy4yIDE2IDE2IDE2bDMyIDB6TTI2NCAxMDRsMCAzMi0zMiAwYy04LjggMC0xNiA3LjItMTYgMTZsMCAxNmMwIDguOCA3LjIgMTYgMTYgMTZsMzIgMCAwIDMyYzAgOC44IDcuMiAxNiAxNiAxNmwxNiAwYzguOCAwIDE2LTcuMiAxNi0xNmwwLTMyIDMyIDBjOC44IDAgMTYtNy4yIDE2LTE2bDAtMTZjMC04LjgtNy4yLTE2LTE2LTE2bC0zMiAwIDAtMzJjMC04LjgtNy4yLTE2LTE2LTE2bC0xNiAwYy04LjggMC0xNiA3LjItMTYgMTZ6Il19LElUZT1sbSxOVGU9bG0sRlRlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InBlcnNvbi1oYXJhc3NpbmciLGljb246WzU3Niw1MTIsW10sImU1NDkiLCJNMTkyIDk2YTQ4IDQ4IDAgMSAwIDAtOTYgNDggNDggMCAxIDAgMCA5NnpNNTkuNCAzMDQuNUw4OCAyNTYuOSA4OCA0ODBjMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMmwwLTEyOCAxNiAwIDAgMTI4YzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJsMC0yNDQuNyA0Ny40IDU3LjFjMTEuMyAxMy42IDMxLjUgMTUuNSA0NS4xIDQuMnMxNS41LTMxLjUgNC4yLTQ1LjFsLTczLjctODguOWMtMTguMi0yMi00NS4zLTM0LjctNzMuOS0zNC43bC0zNS45IDBjLTMzLjcgMC02NC45IDE3LjctODIuMyA0Ni42bC01OC4zIDk3Yy05LjEgMTUuMS00LjIgMzQuOCAxMC45IDQzLjlzMzQuOCA0LjIgNDMuOS0xMC45ek00ODAgMjQwYTQ4IDQ4IDAgMSAwIC05NiAwIDQ4IDQ4IDAgMSAwIDk2IDB6TTQ2NCAzNDRsMCA1OC43LTQxLjQtNDEuNGMtNy4zLTcuMy0xNy42LTEwLjYtMjcuOC05cy0xOC45IDguMS0yMy41IDE3LjNsLTQ4IDk2Yy03LjkgMTUuOC0xLjUgMzUgMTQuMyA0Mi45czM1IDEuNSA0Mi45LTE0LjNsMjguMS01Ni4zIDU0LjcgNTQuN2MxMi40IDEyLjQgMjkuMSAxOS4zIDQ2LjYgMTkuMyAzNi40IDAgNjUuOS0yOS41IDY1LjktNjUuOUw1NzYgMzQ0YzAtMzAuOS0yNS4xLTU2LTU2LTU2cy01NiAyNS4xLTU2IDU2ek0yODggNDhjMCA4LjggNy4yIDE2IDE2IDE2bDU2IDBjOC44IDAgMTYtNy4yIDE2LTE2cy03LjItMTYtMTYtMTZsLTU2IDBjLTguOCAwLTE2IDcuMi0xNiAxNnptLS44IDQ5LjdjLTcuOS00LTE3LjUtLjctMjEuNSA3LjJzLS43IDE3LjUgNy4yIDIxLjVsNDggMjRjNy45IDQgMTcuNSAuNyAyMS41LTcuMnMuNy0xNy41LTcuMi0yMS41bC00OC0yNHoiXX0sT1RlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6Im1vbmV5LWJpbGwtdHJlbmQtdXAiLGljb246WzUxMiw1MTIsW10sImU1MjkiLCJNNDgwIDhjMC0xMy4zLTEwLjctMjQtMjQtMjRMMzU0LjItMTZjLTEzLjMgMC0yNCAxMC43LTI0IDI0czEwLjcgMjQgMjQgMjRsNDMuOSAwLTExMS4zIDExMS4zLTk1LjEtODEuNWMtOS03LjctMjIuMi03LjctMzEuMiAwbC0xMTIgOTZjLTEwLjEgOC42LTExLjIgMjMuOC0yLjYgMzMuOHMyMy44IDExLjIgMzMuOCAyLjZsOTYuNC04Mi42IDk2LjQgODIuNmM5LjUgOC4yIDIzLjcgNy42IDMyLjYtMS4zbDEyNy0xMjcgMCA0My45YzAgMTMuMyAxMC43IDI0IDI0IDI0czI0LTEwLjcgMjQtMjRMNDgwIDh6TTQ4IDI1NmMtMjYuNSAwLTQ4IDIxLjUtNDggNDhMMCA0NjRjMCAyNi41IDIxLjUgNDggNDggNDhsNDE2IDBjMjYuNSAwIDQ4LTIxLjUgNDgtNDhsMC0xNjBjMC0yNi41LTIxLjUtNDgtNDgtNDhMNDggMjU2em00Ny4zIDU2Yy0zLjQgMjAuMS0xOS4yIDM2LTM5LjQgMzkuNC00LjQgLjctOC0yLjktOC03LjNsMC0zMmMwLTQuNCAzLjYtOCA4LThsMzIgMGM0LjQgMCA4LjEgMy42IDcuMyA4em0wIDE0NC4xYy43IDQuNC0yLjkgOC03LjMgOGwtMzIgMGMtNC40IDAtOC0zLjYtOC04bDAtMzJjMC00LjQgMy42LTguMSA4LTcuMyAyMC4xIDMuNCAzNiAxOS4yIDM5LjQgMzkuNHpNNDU2IDQxNi43YzQuNC0uNyA4IDIuOSA4IDcuM2wwIDMyYzAgNC40LTMuNiA4LTggOGwtMzIgMGMtNC40IDAtOC4xLTMuNi03LjMtOCAzLjQtMjAuMSAxOS4yLTM2IDM5LjQtMzkuNHpNNDE2LjcgMzEyYy0uNy00LjQgMi45LTggNy4zLThsMzIgMGM0LjQgMCA4IDMuNiA4IDhsMCAzMmMwIDQuNC0zLjYgOC4xLTggNy4zLTIwLjEtMy40LTM2LTE5LjItMzkuNC0zOS40ek0xOTIgMzg0YTY0IDY0IDAgMSAxIDEyOCAwIDY0IDY0IDAgMSAxIC0xMjggMHoiXX0sWk49e3ByZWZpeDoiZmFzIixpY29uTmFtZToicGVuLXJ1bGVyIixpY29uOls1MTIsNTEyLFsicGVuY2lsLXJ1bGVyIl0sImY1YWUiLCJNNDA0IDBjMTkuMiAwIDM3LjYgNy42IDUxLjEgMjEuMmwzNS43IDM1LjdDNTA0LjQgNzAuNCA1MTIgODguOCA1MTIgMTA4cy03LjYgMzcuNi0yMS4yIDUxLjFMNDQ1LjkgMjA0IDMwOCA2Ni4xIDM1Mi45IDIxLjJDMzY2LjQgNy42IDM4NC44IDAgNDA0IDB6TTU4LjkgMzE1LjFMMjc0LjEgMTAwIDQxMiAyMzcuOSAxOTYuOSA0NTMuMWMtMTAuNyAxMC43LTI0LjEgMTguNS0zOC43IDIyLjZMMzAuNCA1MTEuMWMtOC4zIDIuMy0xNy4zIDAtMjMuNC02LjJzLTguNS0xNS4xLTYuMi0yMy40TDM2LjQgMzUzLjhjNC4xLTE0LjYgMTEuOC0yNy45IDIyLjYtMzguN3pNMjI1LjQgODAuOEw4MC44IDIyNS40IDExLjcgMTU2LjNjLTE1LjYtMTUuNi0xNS42LTQwLjkgMC01Ni42bDg4LTg4YzE1LjYtMTUuNiA0MC45LTE1LjYgNTYuNiAwbDUuOSA1LjktNTYuMyA1Ni4zYy03LjggNy44LTcuOCAyMC41IDAgMjguM3MyMC41IDcuOCAyOC4zIDBsNTYuMy01Ni4zIDM0LjkgMzQuOXpNNDMxLjIgMjg2LjZsMzQuOSAzNC45LTU2LjMgNTYuM2MtNy44IDcuOC03LjggMjAuNSAwIDI4LjNzMjAuNSA3LjggMjguMyAwbDU2LjMtNTYuMyA1LjkgNS45YzE1LjYgMTUuNiAxNS42IDQwLjkgMCA1Ni42bC04OCA4OGMtMTUuNiAxNS42LTQwLjkgMTUuNi01Ni42IDBsLTY5LjEtNjkuMSAxNDQuNi0xNDQuNnoiXX0sUlRlPVpOLEJUZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJyZXBlYXQiLGljb246WzUxMiw1MTIsWzEyODI1N10sImYzNjMiLCJNNDcwLjYgMTE4LjZjMTIuNS0xMi41IDEyLjUtMzIuOCAwLTQ1LjNsLTY0LTY0Yy05LjItOS4yLTIyLjktMTEuOS0zNC45LTYuOVMzNTIgMTkuMSAzNTIgMzJsMCAzMi0xNjAgMEM4NiA2NCAwIDE1MCAwIDI1NiAwIDI3My43IDE0LjMgMjg4IDMyIDI4OHMzMi0xNC4zIDMyLTMyYzAtNzAuNyA1Ny4zLTEyOCAxMjgtMTI4bDE2MCAwIDAgMzJjMCAxMi45IDcuOCAyNC42IDE5LjggMjkuNnMyNS43IDIuMiAzNC45LTYuOWw2NC02NHpNNDEuNCAzOTMuNGMtMTIuNSAxMi41LTEyLjUgMzIuOCAwIDQ1LjNsNjQgNjRjOS4yIDkuMiAyMi45IDExLjkgMzQuOSA2LjlTMTYwIDQ5Mi45IDE2MCA0ODBsMC0zMiAxNjAgMGMxMDYgMCAxOTItODYgMTkyLTE5MiAwLTE3LjctMTQuMy0zMi0zMi0zMnMtMzIgMTQuMy0zMiAzMmMwIDcwLjctNTcuMyAxMjgtMTI4IDEyOGwtMTYwIDAgMC0zMmMwLTEyLjktNy44LTI0LjYtMTkuOC0yOS42cy0yNS43LTIuMi0zNC45IDYuOWwtNjQgNjR6Il19LEhUZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJib25lIixpY29uOls2NDAsNTEyLFsxMjk0NjBdLCJmNWQ3IiwiTTE5Ny40IDE2MGMtMy45IDAtNy4yLTIuOC04LjEtNi42LTEwLjItNDIuMS00OC4xLTczLjQtOTMuMy03My40LTUzIDAtOTYgNDMtOTYgOTYgMCAyOS4xIDEyLjkgNTUuMSAzMy4zIDcyLjcgNC4zIDMuNyA0LjMgMTAuOCAwIDE0LjUtMjAuNCAxNy42LTMzLjMgNDMuNy0zMy4zIDcyLjcgMCA1MyA0MyA5NiA5NiA5NiA0NS4yIDAgODMuMS0zMS4zIDkzLjMtNzMuNCAuOS0zLjggNC4yLTYuNiA4LjEtNi42bDI0NS4xIDBjMy45IDAgNy4yIDIuOCA4LjEgNi42IDEwLjIgNDIuMSA0OC4xIDczLjQgOTMuMyA3My40IDUzIDAgOTYtNDMgOTYtOTYgMC0yOS4xLTEyLjktNTUuMS0zMy4zLTcyLjctNC4zLTMuNy00LjMtMTAuOCAwLTE0LjUgMjAuNC0xNy42IDMzLjMtNDMuNyAzMy4zLTcyLjcgMC01My00My05Ni05Ni05Ni00NS4yIDAtODMuMSAzMS4zLTkzLjMgNzMuNC0uOSAzLjgtNC4yIDYuNi04LjEgNi42bC0yNDUuMSAweiJdfSxYTj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJmaXJlLWZsYW1lLWN1cnZlZCIsaWNvbjpbMzg0LDUxMixbImZpcmUtYWx0Il0sImY3ZTQiLCJNMTUzLjYgMjkuOWwxNi0yMS4zQzE3My42IDMuMiAxODAgMCAxODYuNyAwIDE5OC40IDAgMjA4IDkuNiAyMDggMjEuM2wwIDIyLjFjMCAxMy4xIDUuNCAyNS43IDE0LjkgMzQuN0wzMDcuNiAxNTlDMzU2LjQgMjA1LjYgMzg0IDI3MC4yIDM4NCAzMzcuNyAzODQgNDM0IDMwNiA1MTIgMjA5LjcgNTEyTDE5MiA1MTJDODYgNTEyIDAgNDI2IDAgMzIwbDAtMy44YzAtNDguOCAxOS40LTk1LjYgNTMuOS0xMzAuMWwzLjUtMy41YzQuMi00LjIgMTAtNi42IDE2LTYuNiAxMi41IDAgMjIuNiAxMC4xIDIyLjYgMjIuNkw5NiAyODhjMCAzNS4zIDI4LjcgNjQgNjQgNjRzNjQtMjguNyA2NC02NGwwLTMuOWMwLTE4LTcuMi0zNS4zLTE5LjktNDhsLTM4LjYtMzguNmMtMjQtMjQtMzcuNS01Ni43LTM3LjUtOTAuNyAwLTI3LjcgOS01NC44IDI1LjYtNzYuOXoiXX0scVRlPVhOLEtOPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImJ1cy1zaW1wbGUiLGljb246WzQ0OCw1MTIsWyJidXMtYWx0Il0sImY1NWUiLCJNOTYgMEM0MyAwIDAgNDMgMCA5NkwwIDM4NGMwIDI5LjggMjAuNCA1NC45IDQ4IDYybDAgMzRjMCAxNy43IDE0LjMgMzIgMzIgMzJsMTYgMGMxNy43IDAgMzItMTQuMyAzMi0zMmwwLTMyIDE5MiAwIDAgMzJjMCAxNy43IDE0LjMgMzIgMzIgMzJsMTYgMGMxNy43IDAgMzItMTQuMyAzMi0zMmwwLTM0YzI3LjYtNy4xIDQ4LTMyLjIgNDgtNjJsMC0yODhjMC01My00My05Ni05Ni05Nkw5NiAwek02NCAxMjhjMC0xNy43IDE0LjMtMzIgMzItMzJsMjU2IDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJsMCA5NmMwIDE3LjctMTQuMyAzMi0zMiAzMkw5NiAyNTZjLTE3LjcgMC0zMi0xNC4zLTMyLTMybDAtOTZ6TTk2IDMyMGEzMiAzMiAwIDEgMSAwIDY0IDMyIDMyIDAgMSAxIDAtNjR6bTI1NiAwYTMyIDMyIDAgMSAxIDAgNjQgMzIgMzIgMCAxIDEgMC02NHoiXX0sVlRlPUtOLGpUZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJ2ZW51cy1tYXJzIixpY29uOls2NDAsNTEyLFs5ODkyXSwiZjIyOCIsIk00ODAtNjRjLTE3LjcgMC0zMiAxNC4zLTMyIDMyUzQ2Mi4zIDAgNDgwIDBMNTMwLjcgMCA0NzQgNTYuN2MtMjYuMy0xNS43LTU3LjEtMjQuNy05MC0yNC43LTM1LjQgMC02OC40IDEwLjUtOTYgMjguNS0yNy42LTE4LTYwLjYtMjguNS05Ni0yOC41LTk3LjIgMC0xNzYgNzguOC0xNzYgMTc2IDAgODYuMyA2Mi4xIDE1OC4xIDE0NCAxNzMuMWwwIDM0LjktMzIgMGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJzMTQuMyAzMiAzMiAzMmwzMiAwIDAgMzJjMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMmwwLTMyIDMyIDBjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJsLTMyIDAgMC0zNC45YzIzLjMtNC4zIDQ0LjktMTMuMSA2NC0yNS42IDI3LjYgMTggNjAuNiAyOC41IDk2IDI4LjUgOTcuMiAwIDE3Ni03OC44IDE3Ni0xNzYgMC00MS4xLTE0LjEtNzktMzcuOC0xMDlMNTc2IDQ1LjMgNTc2IDk2YzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJsMC0xMjhjMC0xNy43LTE0LjMtMzItMzItMzJMNDgwLTY0ek0zMzYgMzA5LjJjMjAuMi0yOC42IDMyLTYzLjUgMzItMTAxLjJzLTExLjgtNzIuNi0zMi0xMDEuMmMxNC42LTYuOSAzMC44LTEwLjggNDgtMTAuOCA2MS45IDAgMTEyIDUwLjEgMTEyIDExMlM0NDUuOSAzMjAgMzg0IDMyMGMtMTcuMiAwLTMzLjUtMy45LTQ4LTEwLjh6TTI4OCAxNTAuM2MxMC4yIDE2LjkgMTYgMzYuNiAxNiA1Ny43cy01LjggNDAuOS0xNiA1Ny43Yy0xMC4yLTE2LjktMTYtMzYuNi0xNi01Ny43czUuOC00MC45IDE2LTU3Ljd6bS00OC00My41Yy0yMC4yIDI4LjYtMzIgNjMuNS0zMiAxMDEuMnMxMS44IDcyLjYgMzIgMTAxLjJjLTE0LjUgNi45LTMwLjggMTAuOC00OCAxMC44LTYxLjkgMC0xMTItNTAuMS0xMTItMTEyUzEzMC4xIDk2IDE5MiA5NmMxNy4yIDAgMzMuNSAzLjkgNDggMTAuOHoiXX0sVVRlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImJsZW5kZXIiLGljb246WzUxMiw1MTIsW10sImY1MTciLCJNMCA1NkMwIDI1LjEgMjUuMSAwIDU2IDBMNDM3LjYgMGMyMS4zIDAgMzYuNiAyMC4zIDMwLjggNDAuOEw0NTcuMSA4MCAzNDQgODBjLTEzLjMgMC0yNCAxMC43LTI0IDI0czEwLjcgMjQgMjQgMjRsOTkuNCAwLTE4LjMgNjQtODEuMSAwYy0xMy4zIDAtMjQgMTAuNy0yNCAyNHMxMC43IDI0IDI0IDI0bDY3LjQgMC0yNy40IDk2LTI1NiAwLTkuMS05Ni02Mi45IDBjLTMwLjkgMC01Ni0yNS4xLTU2LTU2TDAgNTZ6TTExNC4zIDE5MkwxMDAuNiA0OCA1NiA0OGMtNC40IDAtOCAzLjYtOCA4bDAgMTI4YzAgNC40IDMuNiA4IDggOGw1OC4zIDB6TTEzNiAzODRsMjQwIDBjMjIuMSAwIDQwIDE3LjkgNDAgNDBsMCA0OGMwIDIyLjEtMTcuOSA0MC00MCA0MGwtMjQwIDBjLTIyLjEgMC00MC0xNy45LTQwLTQwbDAtNDhjMC0yMi4xIDE3LjktNDAgNDAtNDB6bTEyMCA4OGEyNCAyNCAwIDEgMCAwLTQ4IDI0IDI0IDAgMSAwIDAgNDh6Il19LFdUZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJ1IixpY29uOlszODQsNTEyLFsxMTddLCI1NSIsIk0zMiAzMmMxNy43IDAgMzIgMTQuMyAzMiAzMmwwIDIyNGMwIDcwLjcgNTcuMyAxMjggMTI4IDEyOHMxMjgtNTcuMyAxMjgtMTI4bDAtMjI0YzAtMTcuNyAxNC4zLTMyIDMyLTMyczMyIDE0LjMgMzIgMzJsMCAyMjRjMCAxMDYtODYgMTkyLTE5MiAxOTJTMCAzOTQgMCAyODhMMCA2NEMwIDQ2LjMgMTQuMyAzMiAzMiAzMnoiXX0scjg9e3ByZWZpeDoiZmFzIixpY29uTmFtZToic2hhcmUiLGljb246WzUxMiw1MTIsWyJtYWlsLWZvcndhcmQiXSwiZjA2NCIsIk0zMDcuOCAxOC40Yy0xMiA1LTE5LjggMTYuNi0xOS44IDI5LjZsMCA4MC0xMTIgMGMtOTcuMiAwLTE3NiA3OC44LTE3NiAxNzYgMCAxMTMuMyA4MS41IDE2My45IDEwMC4yIDE3NC4xIDIuNSAxLjQgNS4zIDEuOSA4LjEgMS45IDEwLjkgMCAxOS43LTguOSAxOS43LTE5LjcgMC03LjUtNC4zLTE0LjQtOS44LTE5LjUtOS40LTguOC0yMi4yLTI2LjQtMjIuMi01Ni43IDAtNTMgNDMtOTYgOTYtOTZsOTYgMCAwIDgwYzAgMTIuOSA3LjggMjQuNiAxOS44IDI5LjZzMjUuNyAyLjIgMzQuOS02LjlsMTYwLTE2MGMxMi41LTEyLjUgMTIuNS0zMi44IDAtNDUuM2wtMTYwLTE2MGMtOS4yLTkuMi0yMi45LTExLjktMzQuOS02Ljl6Il19LEdUZT1yOCxRTj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJwaG9uZS1mbGlwIixpY29uOls1MTIsNTEyLFsxMjgzODEsInBob25lLWFsdCJdLCJmODc5IiwiTTM1MS44IDI1YzcuOC0xOC44IDI4LjQtMjguOSA0OC4xLTIzLjVsNS41IDEuNWM2NC42IDE3LjYgMTE5LjggODAuMiAxMDMuNyAxNTYuNC0zNy4xIDE3NS0xNzQuOCAzMTIuNy0zNDkuOCAzNDkuOC03Ni4zIDE2LjItMTM4LjgtMzkuMS0xNTYuNC0xMDMuN2wtMS41LTUuNWMtNS40LTE5LjcgNC43LTQwLjMgMjMuNS00OC4xbDk3LjMtNDAuNWMxNi41LTYuOSAzNS42LTIuMSA0NyAxMS44bDM4LjYgNDcuMmM3MC4zLTM0LjkgMTI2LjgtOTMuMyAxNTkuMy0xNjQuOWwtNDQuMS0zNi4xYy0xMy45LTExLjMtMTguNi0zMC40LTExLjgtNDdMMzUxLjggMjV6Il19LFlUZT1RTixaVGU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToidG9pbGV0LXBvcnRhYmxlIixpY29uOlszMjAsNTEyLFtdLCJlNTgzIiwiTTAgNjRsMCAxNiAzMjAgMCAwLTE2YzAtMzUuMy0yOC43LTY0LTY0LTY0TDY0IDBDMjguNyAwIDAgMjguNyAwIDY0em0yNCA2NEwwIDEyOCAwIDQ4OGMwIDEzLjMgMTAuNyAyNCAyNCAyNHMyNC0xMC43IDI0LTI0bDAtOCAyMjQgMCAwIDhjMCAxMy4zIDEwLjcgMjQgMjQgMjRzMjQtMTAuNyAyNC0yNGwwLTM2MC0yOTYgMHptMjI0IDk2bDI0IDAgMCA5Ni0yNCAwYy0xMy4zIDAtMjQtMTAuNy0yNC0yNGwwLTQ4YzAtMTMuMyAxMC43LTI0IDI0LTI0eiJdfSxYVGU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToicGVyc29uLXByZWduYW50IixpY29uOlszODQsNTEyLFtdLCJlMzFlIiwiTTE5MiA4MGE1NiA1NiAwIDEgMCAwLTExMiA1NiA1NiAwIDEgMCAwIDExMnptODAgMzIxLjJjOC42LTQuNSAxNi44LTEwIDI0LjMtMTYuNWw0LTMuNGMyMi42LTE5LjQgMzUuNy00Ny43IDM1LjctNzcuNiAwLTM1LjktMTguOC02OS4xLTQ5LjYtODcuNmwtMzAuNC0xOC4yIDAtMS44YzAtNDYuNS0zNy43LTg0LjEtODQuMS04NC4xLTI4LjEgMC01NC40IDE0LjEtNzAgMzcuNUwyMS40IDI3MC4yYy05LjggMTQuNy01LjggMzQuNiA4LjkgNDQuNHMzNC42IDUuOCA0NC40LTguOWwyOS00My41LTMwLjUgMTEzLjVjLTIuNiA5LjYtLjYgMTkuOSA1LjUgMjcuOFM5NCA0MTYgMTA0IDQxNmw4IDAgMCA5NmMwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMybDAtOTYgMzIgMCAwIDk2YzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJsMC0xMTAuOHoiXX0sS1RlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6Imxlc3MtdGhhbiIsaWNvbjpbNTEyLDUxMixbNjI3NzRdLCIzYyIsIk00NzcuMSA1MC42YzcuNCAxNiAuNCAzNS4xLTE1LjYgNDIuNUwxMDguNCAyNTYgNDYxLjQgNDE5YzE2IDcuNCAyMyAyNi40IDE1LjYgNDIuNXMtMjYuNCAyMy00Mi41IDE1LjZsLTQxNi0xOTJDNy4zIDI3OS44IDAgMjY4LjUgMCAyNTZTNy4zIDIzMi4yIDE4LjYgMjI3bDQxNi0xOTJjMTYtNy40IDM1LjEtLjQgNDIuNSAxNS42eiJdfSxRVGU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToic3VwZXJzY3JpcHQiLGljb246WzU3Niw1MTIsW10sImYxMmIiLCJNNTQ0IDMyYzAtMTEuMS01LjctMjEuNC0xNS4yLTI3LjJzLTIxLjItNi40LTMxLjEtMS40bC0zMiAxNkM0NDkuOSAyNy4zIDQ0My41IDQ2LjUgNDUxLjQgNjIuMyA0NTcgNzMuNSA0NjguMyA4MCA0ODAgODBsMCA4MGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJzMTQuMyAzMiAzMiAzMmw2NCAwYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMybDAtMTI4ek05NiA2NEM3OC4zIDY0IDY0IDc4LjMgNjQgOTZzMTQuMyAzMiAzMiAzMmwxNS4zIDAgODkuNiAxMjgtODkuNiAxMjgtMTUuMyAwYy0xNy43IDAtMzIgMTQuMy0zMiAzMnMxNC4zIDMyIDMyIDMybDMyIDBjMTAuNCAwIDIwLjItNS4xIDI2LjItMTMuNkwyNDAgMzExLjggMzI1LjggNDM0LjRjNiA4LjYgMTUuOCAxMy42IDI2LjIgMTMuNmwzMiAwYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMybC0xNS4zIDAtODkuNi0xMjggODkuNi0xMjggMTUuMyAwYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMybC0zMiAwYy0xMC40IDAtMjAuMiA1LjEtMjYuMiAxMy42TDI0MCAyMDAuMiAxNTQuMiA3Ny42QzE0OC4yIDY5LjEgMTM4LjQgNjQgMTI4IDY0TDk2IDY0eiJdfSxKTj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJjaXJjbGUtc3RvcCIsaWNvbjpbNTEyLDUxMixbNjIwOTQsInN0b3AtY2lyY2xlIl0sImYyOGQiLCJNMjU2IDUxMmEyNTYgMjU2IDAgMSAwIDAtNTEyIDI1NiAyNTYgMCAxIDAgMCA1MTJ6TTE5MiAxNjBsMTI4IDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJsMCAxMjhjMCAxNy43LTE0LjMgMzItMzIgMzJsLTEyOCAwYy0xNy43IDAtMzItMTQuMy0zMi0zMmwwLTEyOGMwLTE3LjcgMTQuMy0zMiAzMi0zMnoiXX0sSlRlPUpOLGVGPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImFycm93cy11cC1kb3duIixpY29uOlsyNTYsNTEyLFsiYXJyb3dzLXYiXSwiZjA3ZCIsIk0xNTAuNi0yMi42Yy0xMi41LTEyLjUtMzIuOC0xMi41LTQ1LjMgMGwtOTYgOTZjLTEyLjUgMTIuNS0xMi41IDMyLjggMCA0NS4zczMyLjggMTIuNSA0NS4zIDBMOTYgNzcuMyA5NiA0MzQuNyA1NC42IDM5My40Yy0xMi41LTEyLjUtMzIuOC0xMi41LTQ1LjMgMHMtMTIuNSAzMi44IDAgNDUuM2w5NiA5NmM2IDYgMTQuMSA5LjQgMjIuNiA5LjRzMTYuNi0zLjQgMjIuNi05LjRsOTYtOTZjMTIuNS0xMi41IDEyLjUtMzIuOCAwLTQ1LjNzLTMyLjgtMTIuNS00NS4zIDBsLTQxLjQgNDEuNCAwLTM1Ny41IDQxLjQgNDEuNGMxMi41IDEyLjUgMzIuOCAxMi41IDQ1LjMgMHMxMi41LTMyLjggMC00NS4zbC05Ni05NnoiXX0sZUxlPWVGLHRGPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InBvby1zdG9ybSIsaWNvbjpbNTEyLDUxMixbInBvby1ib2x0Il0sImY3NWEiLCJNMjY4LjktMzEuOGMtNS41LS43LTExIDEuNC0xNC41IDUuN3MtNC42IDEwLjEtMi44IDE1LjNjMi44IDguMiA0LjMgMTYuOSA0LjMgMjYuMSAwIDIxLjctOC41IDM3LjItMjEuOSA0Ny42LTEzLjkgMTAuOC0zNC4xIDE3LTU4LjEgMTdsLTI0IDBjLTQ4LjYgMC04OCAzOS40LTg4IDg4IDAgMTQuOCAzLjcgMjguOCAxMC4yIDQxLjEtNDIgNi42LTc0LjIgNDMtNzQuMiA4Ni45IDAgNDYuNiAzNi4yIDg0LjcgODEuOSA4Ny44IDMuMS0xMi40IDkuOS0yMy44IDE5LjYtMzIuNUwyNDIuNyAyMjVjMTIuMi0xMC45IDI4LTE3IDQ0LjQtMTcgNDQuNiAwIDc2LjUgNDMgNjMuNyA4NS43bC0xMi43IDQyLjRjMjguOCAxLjIgNTIuNyAyMS4xIDU5LjggNDcuOWwyNi4yIDBjNDguNiAwIDg4LTM5LjQgODgtODggMC00My45LTMyLjEtODAuMy03NC4yLTg2LjkgNi41LTEyLjMgMTAuMi0yNi4yIDEwLjItNDEuMSAwLTQ4LjYtMzkuNC04OC04OC04OGwtOS40IDBjLjktNS40IDEuNC0xMC45IDEuNC0xNi42IDAtNDguNy0zNi4xLTg4LjktODMuMS05NS4yek0xNDQuNiA0MTZsNjEuOCAwLTMxLjIgMTA0LjFjLTMuNiAxMS45IDUuMyAyMy45IDE3LjggMjMuOSA0LjYgMCA5LTEuNyAxMi40LTQuN0wzNDYuNSA0MTIuOWMzLjUtMy4xIDUuNS03LjYgNS41LTEyLjQgMC05LjItNy40LTE2LjYtMTYuNi0xNi42bC02MS44IDAgMzEuMi0xMDQuMWMzLjYtMTEuOS01LjMtMjMuOS0xNy44LTIzLjktNC42IDAtOSAxLjctMTIuNCA0LjdMMTMzLjUgMzg3LjFjLTMuNSAzLjEtNS41IDcuNi01LjUgMTIuNCAwIDkuMiA3LjQgMTYuNiAxNi42IDE2LjZ6Il19LHRMZT10RixhTGU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToidmlkZW8tc2xhc2giLGljb246WzU3Niw1MTIsW10sImY0ZTIiLCJNNDEtMjQuOWMtOS40LTkuNC0yNC42LTkuNC0zMy45IDBTLTIuMy0uMyA3IDkuMWw1MjggNTI4YzkuNCA5LjQgMjQuNiA5LjQgMzMuOSAwczkuNC0yNC42IDAtMzMuOWwtMTUzLTE1MyAwLTIyMi4yYzAtMzUuMy0yOC43LTY0LTY0LTY0TDEyOS44IDY0IDQxLTI0Ljl6TTMyIDEyOGwwIDI1NmMwIDM1LjMgMjguNyA2NCA2NCA2NGwyNTYgMGM3LjggMCAxNS4zLTEuNCAyMi4yLTRMMzYgMTA1LjhjLTIuNiA2LjktNCAxNC40LTQgMjIuMnpNNDY0IDMzNmw3My41IDU4LjhjNC4yIDMuNCA5LjQgNS4yIDE0LjggNS4yIDEzLjEgMCAyMy43LTEwLjYgMjMuNy0yMy43bDAtMjQwLjZjMC0xMy4xLTEwLjYtMjMuNy0yMy43LTIzLjctNS40IDAtMTAuNiAxLjgtMTQuOCA1LjJMNDY0IDE3NiA0NjQgMzM2eiJdfSxjbT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJzcXVhcmUteG1hcmsiLGljb246WzQ0OCw1MTIsWzEwMDYyLCJ0aW1lcy1zcXVhcmUiLCJ4bWFyay1zcXVhcmUiXSwiZjJkMyIsIk02NCAzMkMyOC43IDMyIDAgNjAuNyAwIDk2TDAgNDE2YzAgMzUuMyAyOC43IDY0IDY0IDY0bDMyMCAwYzM1LjMgMCA2NC0yOC43IDY0LTY0bDAtMzIwYzAtMzUuMy0yOC43LTY0LTY0LTY0TDY0IDMyem03MSAxMzVjOS40LTkuNCAyNC42LTkuNCAzMy45IDBsNTUgNTUgNTUtNTVjOS40LTkuNCAyNC42LTkuNCAzMy45IDBzOS40IDI0LjYgMCAzMy45bC01NSA1NSA1NSA1NWM5LjQgOS40IDkuNCAyNC42IDAgMzMuOXMtMjQuNiA5LjQtMzMuOSAwbC01NS01NS01NSA1NWMtOS40IDkuNC0yNC42IDkuNC0zMy45IDBzLTkuNC0yNC42IDAtMzMuOWw1NS01NS01NS01NWMtOS40LTkuNC05LjQtMjQuNiAwLTMzLjl6Il19LGlMZT1jbSxyTGU9Y20sYUY9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiaGFuZC1ob2xkaW5nLWRyb3BsZXQiLGljb246WzU3Niw1MTIsWyJoYW5kLWhvbGRpbmctd2F0ZXIiXSwiZjRjMSIsIk0yNzUuNSA2LjZMMjA5LjIgMTAzQzE5OCAxMTkuMyAxOTIgMTM4LjYgMTkyIDE1OC4zbDAgMS43YzAgNTMgNDMgOTYgOTYgOTZzOTYtNDMgOTYtOTZsMC0xLjdjMC0xOS44LTYtMzktMTcuMi01NS4zTDMwMC41IDYuNkMyOTcuNyAyLjUgMjkzIDAgMjg4IDBzLTkuNyAyLjUtMTIuNSA2LjZ6TTEwOS4zIDM0MS41TDY2LjcgMzg0IDMyIDM4NGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJsMCA2NGMwIDE3LjcgMTQuMyAzMiAzMiAzMmwzMjAuNSAwYzI5IDAgNTcuMy05LjMgODAuNy0yNi41bDEyNi42LTkzLjNjMTcuOC0xMy4xIDIxLjYtMzguMSA4LjUtNTUuOXMtMzguMS0yMS42LTU1LjktOC41TDM5Mi42IDQxNiAyODAgNDE2Yy0xMy4zIDAtMjQtMTAuNy0yNC0yNHMxMC43LTI0IDI0LTI0bDcyIDBjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJsLTE1Mi4yIDBjLTMzLjkgMC02Ni41IDEzLjUtOTAuNSAzNy41eiJdfSxzTGU9YUYsZG09e3ByZWZpeDoiZmFzIixpY29uTmFtZToid29uLXNpZ24iLGljb246WzUxMiw1MTIsWzgzNjEsImtydyIsIndvbiJdLCJmMTU5IiwiTTYyLjQgNTMuOUM1Ni44IDM3LjEgMzguNyAyOC4xIDIxLjkgMzMuNlMtMy45IDU3LjQgMS43IDc0LjFMNTYuOSAyNDAgMzIgMjQwYy0xMy4zIDAtMjQgMTAuNy0yNCAyNHMxMC43IDI0IDI0IDI0bDQwLjkgMCA1Ni43IDE3MC4xYzQuNSAxMy41IDE3LjQgMjIuNCAzMS42IDIxLjlzMjYuNC0xMC40IDI5LjgtMjQuMkwyMzMgMjg4IDI3OSAyODggMzIxIDQ1NS44YzMuNCAxMy44IDE1LjYgMjMuNyAyOS44IDI0LjJzMjcuMS04LjQgMzEuNi0yMS45TDQzOS4xIDI4OCA0ODAgMjg4YzEzLjMgMCAyNC0xMC43IDI0LTI0cy0xMC43LTI0LTI0LTI0bC0yNC45IDAgNTUuMy0xNjUuOWM1LjYtMTYuOC0zLjUtMzQuOS0yMC4yLTQwLjVzLTM0LjkgMy41LTQwLjUgMjAuMmwtNjIgMTg2LjEtNTQuNiAwLTQ1LjktMTgzLjhDMjgzLjUgNDIgMjcwLjcgMzIgMjU2IDMycy0yNy41IDEwLTMxIDI0LjJMMTc5IDI0MCAxMjQuNCAyNDAgNjIuNCA1My45em03OCAyMzQuMWwyNi42IDAtMTEuNCA0NS42LTE1LjItNDUuNnpNMjQ1IDI0MGwxMS00NC4xIDExIDQ0LjEtMjIgMHptMTAwIDQ4bDI2LjYgMC0xNS4yIDQ1LjYtMTEuNC00NS42eiJdfSxuTGU9ZG0sb0xlPWRtLGxMZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJvYmplY3QtdW5ncm91cCIsaWNvbjpbNjQwLDUxMixbXSwiZjI0OCIsIk0zMiAxMTkuNEMxMi45IDEwOC40IDAgODcuNyAwIDY0IDAgMjguNyAyOC43IDAgNjQgMCA4Ny43IDAgMTA4LjQgMTIuOSAxMTkuNCAzMmwyMDkuMSAwYzExLjEtMTkuMSAzMS43LTMyIDU1LjQtMzIgMzUuMyAwIDY0IDI4LjcgNjQgNjQgMCAyMy43LTEyLjkgNDQuNC0zMiA1NS40bDAgMTEzLjFjMTkuMSAxMS4xIDMyIDMxLjcgMzIgNTUuNCAwIDM1LjMtMjguNyA2NC02NCA2NC0yMy43IDAtNDQuNC0xMi45LTU1LjQtMzJsLTIwOS4xIDBjLTExLjEgMTkuMS0zMS43IDMyLTU1LjQgMzItMzUuMyAwLTY0LTI4LjctNjQtNjQgMC0yMy43IDEyLjktNDQuNCAzMi01NS40bDAtMTEzLjF6TTExOS40IDk2Yy01LjYgOS43LTEzLjcgMTcuOC0yMy40IDIzLjRsMCAxMTMuMWM5LjcgNS42IDE3LjggMTMuNyAyMy40IDIzLjRsMjA5LjEgMGM1LjYtOS43IDEzLjctMTcuOCAyMy40LTIzLjRsMC0xMTMuMWMtOS43LTUuNi0xNy44LTEzLjctMjMuNC0yMy40TDExOS40IDk2ek01NDQgMjc5LjRjLTkuNy01LjYtMTcuOC0xMy43LTIzLjQtMjMuNGwtMjkuMiAwYy01LjMtMTcuNy0xNC44LTMzLjUtMjcuNC00Ni40bDAtMTcuNiA1Ni42IDBjMTEuMS0xOS4xIDMxLjctMzIgNTUuNC0zMiAzNS4zIDAgNjQgMjguNyA2NCA2NCAwIDIzLjctMTIuOSA0NC40LTMyIDU1LjRsMCAxMTMuMWMxOS4xIDExLjEgMzIgMzEuNyAzMiA1NS40IDAgMzUuMy0yOC43IDY0LTY0IDY0LTIzLjcgMC00NC40LTEyLjktNTUuNC0zMmwtMjA5LjEgMGMtMTEuMSAxOS4xLTMxLjcgMzItNTUuNCAzMi0zNS4zIDAtNjQtMjguNy02NC02NCAwLTIzLjcgMTIuOS00NC40IDMyLTU1LjRsMC0yNC42IDY0IDAgMCAyNC42YzkuNyA1LjYgMTcuOCAxMy43IDIzLjQgMjMuNGwyMDkuMSAwYzUuNi05LjcgMTMuNy0xNy44IDIzLjQtMjMuNGwwLTExMy4xeiJdfSxjTGU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiY29tbWVudCIsaWNvbjpbNTEyLDUxMixbMTI4NDg5LDYxNjY5XSwiZjA3NSIsIk01MTIgMjQwYzAgMTMyLjUtMTE0LjYgMjQwLTI1NiAyNDAtMzcuMSAwLTcyLjMtNy40LTEwNC4xLTIwLjdMMzMuNSA1MTAuMWMtOS40IDQtMjAuMiAxLjctMjcuMS01LjhTLTIgNDg1LjggMi44IDQ3Ni44bDQ4LjgtOTIuMkMxOS4yIDM0NC4zIDAgMjk0LjMgMCAyNDAgMCAxMDcuNSAxMTQuNiAwIDI1NiAwUzUxMiAxMDcuNSA1MTIgMjQweiJdfSxkTGU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiaGlsbC1hdmFsYW5jaGUiLGljb246WzU3Niw1MTIsW10sImU1MDciLCJNNDQwLjEgNDAxLjljMzQuMiAyMy4xIDgxLjEgMTkuNSAxMTEuNC0xMC44IDM0LjQtMzQuNCAzNC40LTkwLjEgMC0xMjQuNS0yNy44LTI3LjgtNjkuNS0zMy4xLTEwMi42LTE2LTExLjggNi4xLTE2LjQgMjAuNi0xMC4zIDMyLjNzMjAuNiAxNi40IDMyLjMgMTAuM2MxNS4xLTcuOCAzNC01LjMgNDYuNiA3LjMgMTUuNiAxNS42IDE1LjYgNDAuOSAwIDU2LjZzLTQwLjkgMTUuNi01Ni42IDBsLTgxLjctODEuN2MyMi4zLTE0LjIgMzcuMS0zOS4xIDM3LjEtNjcuNSAwLTMzLjktMjEuMS02Mi45LTUwLjktNzQuNSAxLjktNi44IDIuOS0xNCAyLjktMjEuNSAwLTQ0LjItMzUuOC04MC04MC04MC0yNy4zIDAtNTEuNSAxMy43LTY1LjkgMzQuNi01LjgtMjAtMjQuMi0zNC42LTQ2LjEtMzQuNi0yNi41IDAtNDggMjEuNS00OCA0OCAwIDQgLjUgNy45IDEuNCAxMS42TDQ0MC4xIDQwMS45ek00ODAuNCA2NGEzMiAzMiAwIDEgMCAtNjQgMCAzMiAzMiAwIDEgMCA2NCAwem0wIDEyOGEzMiAzMiAwIDEgMCAwLTY0IDMyIDMyIDAgMSAwIDAgNjR6TTY4LjcgODdDNDMuNSA2MS44IC40IDc5LjcgLjQgMTE1LjNMLjQgNDMyYzAgNDQuMiAzNS44IDgwIDgwIDgwbDMxNi43IDBjMzUuNiAwIDUzLjUtNDMuMSAyOC4zLTY4LjNMNjguNyA4N3oiXX0saExlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImFycm93cy10by1leWUiLGljb246WzY0MCw1MTIsW10sImU0YmYiLCJNMTc2IDU2YzAtMTMuMy0xMC43LTI0LTI0LTI0cy0yNCAxMC43LTI0IDI0bDAgMzguMS02My02M2MtOS40LTkuNC0yNC42LTkuNC0zMy45IDBTMjEuNyA1NS42IDMxIDY1bDYzIDYzLTM4LjEgMGMtMTMuMyAwLTI0IDEwLjctMjQgMjRzMTAuNyAyNCAyNCAyNGw5NiAwYzEzLjMgMCAyNC0xMC43IDI0LTI0bDAtOTZ6bTAgNDAwbDAtOTZjMC0xMy4zLTEwLjctMjQtMjQtMjRsLTk2IDBjLTEzLjMgMC0yNCAxMC43LTI0IDI0czEwLjcgMjQgMjQgMjRsMzguMSAwLTYzIDYzYy05LjQgOS40LTkuNCAyNC42IDAgMzMuOXMyNC42IDkuNCAzMy45IDBsNjMtNjMgMCAzOC4xYzAgMTMuMyAxMC43IDI0IDI0IDI0czI0LTEwLjcgMjQtMjR6bTMxMiAyNGMxMy4zIDAgMjQtMTAuNyAyNC0yNGwwLTM4LjEgNjMgNjNjOS40IDkuNCAyNC42IDkuNCAzMy45IDBzOS40LTI0LjYgMC0zMy45bC02My02MyAzOC4xIDBjMTMuMyAwIDI0LTEwLjcgMjQtMjRzLTEwLjctMjQtMjQtMjRsLTk2IDBjLTEzLjMgMC0yNCAxMC43LTI0IDI0bDAgOTZjMCAxMy4zIDEwLjcgMjQgMjQgMjR6TTQ2NCA1NmwwIDk2YzAgMTMuMyAxMC43IDI0IDI0IDI0bDk2IDBjMTMuMyAwIDI0LTEwLjcgMjQtMjRzLTEwLjctMjQtMjQtMjRsLTM4LjEgMCA2My02M2M5LjQtOS40IDkuNC0yNC42IDAtMzMuOXMtMjQuNi05LjQtMzMuOSAwbC02MyA2MyAwLTM4LjFjMC0xMy4zLTEwLjctMjQtMjQtMjRzLTI0IDEwLjctMjQgMjR6TTMyMCAxMjBjLTU3LjMgMC05OS40IDM0LTEyNS42IDY0LjMtMjAgMjMuMS0zMi40IDQ1LjgtMzcuNiA1Ni4xLTIuNSA1LTQuOSA5LjctNC45IDE1LjZzMi4zIDEwLjYgNC45IDE1LjZjNS4yIDEwLjMgMTcuNiAzMyAzNy42IDU2LjEgMjYuMiAzMC4zIDY4LjIgNjQuMyAxMjUuNiA2NC4zczk5LjQtMzQgMTI1LjYtNjQuM2MyMC0yMy4xIDMyLjQtNDUuOCAzNy42LTU2LjEgMi41LTUgNC45LTkuNyA0LjktMTUuNnMtMi4zLTEwLjYtNC45LTE1LjZjLTUuMi0xMC4zLTE3LjYtMzMtMzcuNi01Ni4xLTI2LjItMzAuMy02OC4yLTY0LjMtMTI1LjYtNjQuM3pNMjU2IDI1NmE2NCA2NCAwIDEgMSAxMjggMCA2NCA2NCAwIDEgMSAtMTI4IDB6Il19LHBMZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJzbm93cGxvdyIsaWNvbjpbNjQwLDUxMixbXSwiZjdkMiIsIk0xMjggMTYwbDAtOTZjMC0zNS4zIDI4LjctNjQgNjQtNjRMMjk2LjQgMGMyNC4yIDAgNDYuNCAxMy43IDU3LjIgMzUuNGw4Ny42IDE3NS4xYzQuNCA4LjkgNi44IDE4LjcgNi44IDI4LjZsMCA1Ni45IDgwIDAgMC04MGMwLTQ4LjYgMzkuNC04OCA4OC04OCAxMy4zIDAgMjQgMTAuNyAyNCAyNHMtMTAuNyAyNC0yNCAyNGMtMjIuMSAwLTQwIDE3LjktNDAgNDBsMCAyMDhjMCAyMi4xIDE3LjkgNDAgNDAgNDAgMTMuMyAwIDI0IDEwLjcgMjQgMjRzLTEwLjcgMjQtMjQgMjRjLTQ4LjYgMC04OC0zOS40LTg4LTg4bDAtODAtNjMgMGM5LjUgMTYuNSAxNSAzNS42IDE1IDU2IDAgNjEuOS01MC4xIDExMi0xMTIgMTEybC0yMjQgMGMtNjEuOSAwLTExMi01MC4xLTExMi0xMTIgMC0zMC41IDEyLjItNTguMiAzMi03OC40TDY0IDIyNGMwLTM1LjMgMjguNy02NCA2NC02NHptOTEuNyAzNC45bDQzLjYgMjkuMSAxMTMuMiAwLTgwLTE2MC0xMDQuNCAwIDAgMTA4LjggMjcuNyAyMi4xek00MTYgNDAwYzAtMjYuNS0yMS41LTQ4LTQ4LTQ4bC0yMjQgMGMtMjYuNSAwLTQ4IDIxLjUtNDggNDhzMjEuNSA0OCA0OCA0OGwyMjQgMGMyNi41IDAgNDgtMjEuNSA0OC00OHptLTI4MCAwYTI0IDI0IDAgMSAxIDQ4IDAgMjQgMjQgMCAxIDEgLTQ4IDB6bTIxNi0yNGEyNCAyNCAwIDEgMSAwIDQ4IDI0IDI0IDAgMSAxIDAtNDh6TTIzMiA0MDBhMjQgMjQgMCAxIDEgNDggMCAyNCAyNCAwIDEgMSAtNDggMHoiXX0sdUxlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImNoYXJ0LWdhbnR0IixpY29uOls1MTIsNTEyLFtdLCJlMGU0IiwiTTY0IDY0YzAtMTcuNy0xNC4zLTMyLTMyLTMyUzAgNDYuMyAwIDY0TDAgNDAwYzAgNDQuMiAzNS44IDgwIDgwIDgwbDQwMCAwYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMyTDgwIDQxNmMtOC44IDAtMTYtNy4yLTE2LTE2TDY0IDY0em05NiAwYy0xNy43IDAtMzIgMTQuMy0zMiAzMnMxNC4zIDMyIDMyIDMybDk2IDBjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJsLTk2IDB6bTY0IDExMmMtMTcuNyAwLTMyIDE0LjMtMzIgMzJzMTQuMyAzMiAzMiAzMmwxMjggMGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMmwtMTI4IDB6TTM4NCAyODhjLTE3LjcgMC0zMiAxNC4zLTMyIDMyczE0LjMgMzIgMzIgMzJsNjQgMGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMmwtNjQgMHoiXX0saUY9e3ByZWZpeDoiZmFzIixpY29uTmFtZToidmlkZW8iLGljb246WzU3Niw1MTIsWyJ2aWRlby1jYW1lcmEiXSwiZjAzZCIsIk05NiA2NGMtMzUuMyAwLTY0IDI4LjctNjQgNjRsMCAyNTZjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMjU2IDBjMzUuMyAwIDY0LTI4LjcgNjQtNjRsMC0yNTZjMC0zNS4zLTI4LjctNjQtNjQtNjRMOTYgNjR6TTQ2NCAzMzZsNzMuNSA1OC44YzQuMiAzLjQgOS40IDUuMiAxNC44IDUuMiAxMy4xIDAgMjMuNy0xMC42IDIzLjctMjMuN2wwLTI0MC42YzAtMTMuMS0xMC42LTIzLjctMjMuNy0yMy43LTUuNCAwLTEwLjYgMS44LTE0LjggNS4yTDQ2NCAxNzYgNDY0IDMzNnoiXX0sZkxlPWlGLG1MZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJjaGVzcy1wYXduIixpY29uOlszODQsNTEyLFs5ODIzXSwiZjQ0MyIsIk0xOTItMzJjNjYuMyAwIDEyMCA1My43IDEyMCAxMjAgMCAyNy04LjkgNTEuOS0yNCA3MiAxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMmwtMTAuNyAwIDI2LjcgMTYwIDU2LjIgNzAuM2M1IDYuMyA3LjggMTQuMSA3LjggMjIuMiAwIDE5LjYtMTUuOSAzNS41LTM1LjUgMzUuNUw1MS41IDUxMmMtMTkuNiAwLTM1LjUtMTUuOS0zNS41LTM1LjUgMC04LjEgMi43LTE1LjkgNy44LTIyLjJMODAgMzg0IDEwNi43IDIyNCA5NiAyMjRjLTE3LjcgMC0zMi0xNC4zLTMyLTMyczE0LjMtMzIgMzItMzJjLTE1LjEtMjAuMS0yNC00NS0yNC03MiAwLTY2LjMgNTMuNy0xMjAgMTIwLTEyMHoiXX0sZ0xlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InN5bmFnb2d1ZSIsaWNvbjpbNTc2LDUxMixbMTI4MzMzXSwiZjY5YiIsIk0xNiA4MGMwLTM1LjMgMjguNy02NCA2NC02NHM2NCAyOC43IDY0IDY0bDAgMzItMTI4IDAgMC0zMnptMCAzNjhsMC0yODggMTI4IDAgMTI2LjItODQuMmMxMC43LTcuMiAyNC44LTcuMiAzNS41IDBsMTI2LjIgODQuMiAxMjggMCAwIDI4OGMwIDM1LjMtMjguNyA2NC02NCA2NEw4MCA1MTJjLTM1LjMgMC02NC0yOC43LTY0LTY0ek01NjAgMTEybC0xMjggMCAwLTMyYzAtMzUuMyAyOC43LTY0IDY0LTY0czY0IDI4LjcgNjQgNjRsMCAzMnpNMjI0IDM4NGwwIDgwIDEyOCAwIDAtODBjMC0zNS4zLTI4LjctNjQtNjQtNjRzLTY0IDI4LjctNjQgNjR6bTY0LTE1MmE0MCA0MCAwIDEgMCAwLTgwIDQwIDQwIDAgMSAwIDAgODB6Il19LGJMZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJidWlsZGluZy1jaXJjbGUtY2hlY2siLGljb246WzU3Niw1MTIsW10sImU0ZDIiLCJNOTYgMEM2MC43IDAgMzIgMjguNyAzMiA2NGwwIDM4NGMwIDM1LjMgMjguNyA2NCA2NCA2NGwxODAgMGMtMTAuNS0xNC42LTE5LTMwLjctMjUuMS00OGwtNzQuOSAwIDAtODBjMC0xNy43IDE0LjMtMzIgMzItMzJsMzIgMGMyIDAgNCAuMiA1LjkgLjUgNi0yMy42IDE2LjMtNDUuNCAzMC4xLTY0LjVsLTQgMGMtOC44IDAtMTYtNy4yLTE2LTE2bDAtMzJjMC04LjggNy4yLTE2IDE2LTE2bDMyIDBjOC44IDAgMTYgNy4yIDE2IDE2bDAgNGMyNy41LTE5LjggNjAuMy0zMi40IDk2LTM1LjRMNDE2IDY0YzAtMzUuMy0yOC43LTY0LTY0LTY0TDk2IDB6bTMyIDExMmMwLTguOCA3LjItMTYgMTYtMTZsMzIgMGM4LjggMCAxNiA3LjIgMTYgMTZsMCAzMmMwIDguOC03LjIgMTYtMTYgMTZsLTMyIDBjLTguOCAwLTE2LTcuMi0xNi0xNmwwLTMyek0yNzIgOTZsMzIgMGM4LjggMCAxNiA3LjIgMTYgMTZsMCAzMmMwIDguOC03LjIgMTYtMTYgMTZsLTMyIDBjLTguOCAwLTE2LTcuMi0xNi0xNmwwLTMyYzAtOC44IDcuMi0xNiAxNi0xNnpNMTI4IDI0MGMwLTguOCA3LjItMTYgMTYtMTZsMzIgMGM4LjggMCAxNiA3LjIgMTYgMTZsMCAzMmMwIDguOC03LjIgMTYtMTYgMTZsLTMyIDBjLTguOCAwLTE2LTcuMi0xNi0xNmwwLTMyek01NzYgNDAwYTE0NCAxNDQgMCAxIDAgLTI4OCAwIDE0NCAxNDQgMCAxIDAgMjg4IDB6bS04Ni42LTYwLjljNy4xIDUuMiA4LjcgMTUuMiAzLjUgMjIuM2wtNjQgODhjLTIuOCAzLjgtNyA2LjItMTEuNyA2LjVzLTkuMy0xLjMtMTIuNi00LjZsLTQwLTQwYy02LjItNi4yLTYuMi0xNi40IDAtMjIuNnMxNi40LTYuMiAyMi42IDBsMjYuOCAyNi44IDUzLTcyLjljNS4yLTcuMSAxNS4yLTguNyAyMi40LTMuNXoiXX0sdkxlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImNhbGVuZGFyLXBsdXMiLGljb246WzQ0OCw1MTIsW10sImYyNzEiLCJNMTI4IDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJsMCAzMiAxMjggMCAwLTMyYzAtMTcuNyAxNC4zLTMyIDMyLTMyczMyIDE0LjMgMzIgMzJsMCAzMiAzMiAwYzM1LjMgMCA2NCAyOC43IDY0IDY0bDAgMjg4YzAgMzUuMy0yOC43IDY0LTY0IDY0TDY0IDQ4MGMtMzUuMyAwLTY0LTI4LjctNjQtNjRMMCAxMjhDMCA5Mi43IDI4LjcgNjQgNjQgNjRsMzIgMCAwLTMyYzAtMTcuNyAxNC4zLTMyIDMyLTMyem05NiAxOTJjLTEzLjMgMC0yNCAxMC43LTI0IDI0bDAgNDgtNDggMGMtMTMuMyAwLTI0IDEwLjctMjQgMjRzMTAuNyAyNCAyNCAyNGw0OCAwIDAgNDhjMCAxMy4zIDEwLjcgMjQgMjQgMjRzMjQtMTAuNyAyNC0yNGwwLTQ4IDQ4IDBjMTMuMyAwIDI0LTEwLjcgMjQtMjRzLTEwLjctMjQtMjQtMjRsLTQ4IDAgMC00OGMwLTEzLjMtMTAuNy0yNC0yNC0yNHoiXX0sckY9e3ByZWZpeDoiZmFzIixpY29uTmFtZToid2hlZWxjaGFpci1tb3ZlIixpY29uOls0NDgsNTEyLFsid2hlZWxjaGFpci1hbHQiXSwiZTJjZSIsIk0zMTIgNTZhNTYgNTYgMCAxIDEgMTEyIDAgNTYgNTYgMCAxIDEgLTExMiAwek0yMDUuNCAxMjQuMWMtNi40LTUuMi0xNS42LTQuNy0yMS40IDEuMWwtMzMuNCAzMy40Yy0xMi41IDEyLjUtMzIuOCAxMi41LTQ1LjMgMHMtMTIuNS0zMi44IDAtNDUuM0wxMzguOCA4MGMyOS0yOSA3NS4yLTMxLjQgMTA3LTUuNWw4MS4zIDY2YzIxLjQgMTcuNCAyMy44IDQ5LjIgNS4yIDY5LjVsLTQxLjggNDYgOTggMGMzMC4zIDAgNTMgMjcuNyA0Ny4xIDU3LjRMNDA3LjQgNDU0LjNjLTMuNSAxNy4zLTIwLjMgMjguNi0zNy43IDI1LjFzLTI4LjYtMjAuMy0yNS4xLTM3LjdMMzY5IDMyMCAzMTYuOCAzMjBjMi4xIDEwLjMgMy4yIDIxIDMuMiAzMiAwIDg4LjQtNzEuNiAxNjAtMTYwIDE2MFMwIDQ0MC40IDAgMzUyIDcxLjYgMTkyIDE2MCAxOTJjNiAwIDExLjkgLjMgMTcuOCAxbDUwLjQtNTAuNC0yMi43LTE4LjV6TTE2MCA0NDhhOTYgOTYgMCAxIDAgMC0xOTIgOTYgOTYgMCAxIDAgMCAxOTJ6Il19LHlMZT1yRix4TGU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToidXNlci1zaGllbGQiLGljb246WzU3Niw1MTIsW10sImY1MDUiLCJNMjI0IDI0OGExMjAgMTIwIDAgMSAwIDAtMjQwIDEyMCAxMjAgMCAxIDAgMCAyNDB6bS0yOS43IDU2Qzk1LjggMzA0IDE2IDM4My44IDE2IDQ4Mi4zIDE2IDQ5OC43IDI5LjMgNTEyIDQ1LjcgNTEybDI1MS41IDBDMjYxIDQ2OS40IDI0MCA0MTQuNSAyNDAgMzU2LjRsMC0zMS4xYzAtNy4zIDEtMTQuNSAyLjktMjEuM2wtNDguNiAwem0yNTEgMTg0LjVsLTEzLjMgNi4zIDAtMTg4LjEgOTYgMzIgMCAxOS42YzAgNTUuOC0zMi4yIDEwNi41LTgyLjcgMTMwLjN6TTQyMS45IDI1OS41bC0xMTIgMzcuM2MtMTMuMSA0LjQtMjEuOSAxNi42LTIxLjkgMzAuNGwwIDMxLjFjMCA3NC40IDQzIDE0Mi4xIDExMC4yIDE3My43bDE4LjUgOC43YzQuOCAyLjIgMTAgMy40IDE1LjIgMy40czEwLjUtMS4yIDE1LjItMy40bDE4LjUtOC43QzUzMyA1MDAuMyA1NzYgNDMyLjYgNTc2IDM1OC4ybDAtMzEuMWMwLTEzLjgtOC44LTI2LTIxLjktMzAuNGwtMTEyLTM3LjNjLTYuNi0yLjItMTMuNy0yLjItMjAuMiAweiJdfSx3TGU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiYm9sZCIsaWNvbjpbMzg0LDUxMixbXSwiZjAzMiIsIk0zMiAzMkMxNC4zIDMyIDAgNDYuMyAwIDY0UzE0LjMgOTYgMzIgOTZsMzIgMCAwIDMyMC0zMiAwYy0xNy43IDAtMzIgMTQuMy0zMiAzMnMxNC4zIDMyIDMyIDMybDIyNCAwYzcwLjcgMCAxMjgtNTcuMyAxMjgtMTI4IDAtNDYuNS0yNC44LTg3LjMtNjItMTA5LjcgMTguNy0yMi4zIDMwLTUxIDMwLTgyLjMgMC03MC43LTU3LjMtMTI4LTEyOC0xMjhMMzIgMzJ6TTI4OCAxNjBjMCAzNS4zLTI4LjcgNjQtNjQgNjRsLTk2IDAgMC0xMjggOTYgMGMzNS4zIDAgNjQgMjguNyA2NCA2NHpNMTI4IDQxNmwwLTEyOCAxMjggMGMzNS4zIDAgNjQgMjguNyA2NCA2NHMtMjguNyA2NC02NCA2NGwtMTI4IDB6Il19LHNGPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImhlYXJ0LXB1bHNlIixpY29uOls1MTIsNTEyLFsiaGVhcnRiZWF0Il0sImYyMWUiLCJNMjU2IDEwNy45TDI0MSA4Ny4xQzIxNiA1Mi41IDE3NS45IDMyIDEzMy4xIDMyIDU5LjYgMzIgMCA5MS42IDAgMTY1LjFsMCAyLjZjMCAyMy42IDYuMiA0OCAxNi42IDcyLjNsMTA2IDBjMy4yIDAgNi4xLTEuOSA3LjQtNC45bDMxLjgtNzYuM2MzLjctOC44IDEyLjMtMTQuNiAyMS44LTE0LjhzMTguMyA1LjQgMjIuMiAxNC4xbDUxLjMgMTEzLjkgNDEuNC04Mi44YzQuMS04LjEgMTIuNC0xMy4zIDIxLjUtMTMuM3MxNy40IDUuMSAyMS41IDEzLjNsMjMuMiA0Ni4zYzEuNCAyLjcgNC4xIDQuNCA3LjIgNC40bDEyMy42IDBjMTAuNS0yNC4zIDE2LjYtNDguNyAxNi42LTcyLjNsMC0yLjZDNTEyIDkxLjYgNDUyLjQgMzIgMzc4LjkgMzIgMzM2LjIgMzIgMjk2IDUyLjUgMjcxIDg3LjFsLTE1IDIwLjd6TTQ2OS42IDI4OGwtOTcuOCAwYy0yMS4yIDAtNDAuNi0xMi01MC4xLTMxbC0xLjctMy40LTQyLjUgODUuMWMtNC4xIDguMy0xMi43IDEzLjUtMjIgMTMuM3MtMTcuNi01LjctMjEuNC0xNC4xbC00OS4zLTEwOS41LTEwLjUgMjUuMmMtOC43IDIwLjktMjkuMSAzNC41LTUxLjcgMzQuNWwtODAuMiAwYzQ3LjIgNzMuOCAxMjMgMTQxLjcgMTcwLjQgMTc3LjkgMTIuNCA5LjQgMjcuNiAxNC4xIDQzLjEgMTQuMXMzMC44LTQuNiA0My4xLTE0LjFDMzQ2LjYgNDI5LjcgNDIyLjQgMzYxLjggNDY5LjYgMjg4eiJdfSxNTGU9c0YsbkY9e3ByZWZpeDoiZmFzIixpY29uTmFtZToic3F1YXJlLXJvb3QtdmFyaWFibGUiLGljb246WzU3Niw1MTIsWyJzcXVhcmUtcm9vdC1hbHQiXSwiZjY5OCIsIk0yODIuNiA3OC4xYzgtMjcuMyAzMy00Ni4xIDYxLjQtNDYuMWwyMDAgMGMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMkwzNDQgOTYgMjM4LjcgNDU3Yy0zLjYgMTIuMy0xNC4xIDIxLjItMjYuOCAyMi44cy0yNS4xLTQuNi0zMS41LTE1LjZMNzcuNiAyODggMzIgMjg4Yy0xNy43IDAtMzItMTQuMy0zMi0zMnMxNC4zLTMyIDMyLTMybDQ1LjYgMGMyMi44IDAgNDMuOCAxMi4xIDU1LjMgMzEuOGw2NS4yIDExMS44IDg0LjQtMjg5LjV6TTM5My40IDIzMy40YzEyLjUtMTIuNSAzMi44LTEyLjUgNDUuMyAwbDQxLjQgNDEuNCA0MS40LTQxLjRjMTIuNS0xMi41IDMyLjgtMTIuNSA0NS4zIDBzMTIuNSAzMi44IDAgNDUuM2wtNDEuNCA0MS40IDQxLjQgNDEuNGMxMi41IDEyLjUgMTIuNSAzMi44IDAgNDUuM3MtMzIuOCAxMi41LTQ1LjMgMGwtNDEuNC00MS40LTQxLjQgNDEuNGMtMTIuNSAxMi41LTMyLjggMTIuNS00NS4zIDBzLTEyLjUtMzIuOCAwLTQ1LjNsNDEuNC00MS40LTQxLjQtNDEuNGMtMTIuNS0xMi41LTEyLjUtMzIuOCAwLTQ1LjN6Il19LHpMZT1uRixvRj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJoYW5kcy1idWJibGVzIixpY29uOls1MTIsNTEyLFsiaGFuZHMtd2FzaCJdLCJlMDVlIiwiTTM4NCA2NGEzMiAzMiAwIDEgMCAwLTY0IDMyIDMyIDAgMSAwIDAgNjR6bTk2IDEyOGEzMiAzMiAwIDEgMCAwLTY0IDMyIDMyIDAgMSAwIDAgNjR6TTEyOCA0NjRhNDggNDggMCAxIDAgLTk2IDAgNDggNDggMCAxIDAgOTYgMHpNMCAxNjBsLjEgNzIuNmMwIDQ0LjggMTcuNiA4Ny4xIDQ3LjkgMTE4LjQgLjMtNzcgNDAuMS0xNDguNCAxMDUuNC0xODkuM2wxLjktMS4yYy0yLjUtMy43LTIuOC04LjYtLjQtMTIuN2w2Mi0xMDcuNGM2LjYtMTEuNSAyLjctMjYuMi04LjgtMzIuOFMxODIgNSAxNzUuNCAxNi41bC02OCAxMTcuOCAwIDAgMCAwLTQzLjMgNzUgMC00OS4zYzAtMTcuNy0xNC40LTMyLTMyLTMyUzAgMTQyLjQgMCAxNjB6bTIxMy42LTM1LjljMTQuMS04LjggMjkuOC0xMi43IDQ1LjItMTIuMWwzNi41LTYzLjNjNi42LTExLjUgMi43LTI2LjItOC44LTMyLjhzLTI2LjItMi43LTMyLjggOC44bC02Ny4xIDExNi4yIDI3LTE2Ljl6bTg2LjUtMzUuN2wtMTYuNCAyOC40YzE1LjEgNS41IDI4LjYgMTUuNiAzOC4zIDI5LjdsMTkuNy0zNC4yYzYuNi0xMS41IDIuNy0yNi4yLTguOC0zMi44cy0yNi4yLTIuNy0zMi44IDguOHptNDYuNCA2My43bC0xMi41IDIxLjdjMiA4LjYgMi41IDE3LjUgMS43IDI2LjFsNC4zIDAgMCAwIDM0LjQgMCAxMy43LTIzLjhjNi42LTExLjUgMi43LTI2LjItOC44LTMyLjhzLTI2LjItMi43LTMyLjggOC44ek0yODMuMSAxNzVjLTkuNC0xNS0yOS4xLTE5LjUtNDQuMS0xMC4ybC02MC4yIDM3LjZDMTI3LjMgMjM0LjcgOTYgMjkxLjIgOTYgMzUybDAgOGMwIDguOSAuOCAxNy42IDIuMiAyNi4xIDM1LjQgOC4yIDYxLjggNDAgNjEuOCA3Ny45IDAgNi4zLS43IDEyLjUtMi4xIDE4LjQgMjUuMiAxOC42IDU2LjQgMjkuNiA5MC4xIDI5LjZsMTc2IDBjMTMuMyAwIDI0LTEwLjcgMjQtMjRzLTEwLjctMjQtMjQtMjRsLTkyIDBjLTYuNiAwLTEyLTUuNC0xMi0xMnM1LjQtMTIgMTItMTJsMTI0IDBjMTMuMyAwIDI0LTEwLjcgMjQtMjRzLTEwLjctMjQtMjQtMjRsLTEyNCAwYy02LjYgMC0xMi01LjQtMTItMTJzNS40LTEyIDEyLTEybDE1NiAwYzEzLjMgMCAyNC0xMC43IDI0LTI0cy0xMC43LTI0LTI0LTI0bC0xNTYgMGMtNi42IDAtMTItNS40LTEyLTEyczUuNC0xMiAxMi0xMmwxMjQgMGMxMy4zIDAgMjQtMTAuNyAyNC0yNHMtMTAuNy0yNC0yNC0yNGwtMTM2IDAgMCAwIDAgMC05My4yIDAgNDYuMi0yOC45YzE1LTkuNCAxOS41LTI5LjEgMTAuMi00NC4xeiJdfSxrTGU9b0YsU0xlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6Im1hcmtlciIsaWNvbjpbNTEyLDUxMixbXSwiZjVhMSIsIk00MDguOCAwYy0yNy40IDAtNTMuNiAxMC45LTczIDMwLjJMMzE4LjEgNDggMzA1IDM0LjljLTI4LjEtMjguMS03My43LTI4LjEtMTAxLjggMEwxMDMgMTM1Yy05LjQgOS40LTkuNCAyNC42IDAgMzMuOXMyNC42IDkuNCAzMy45IDBMMjM3LjEgNjguOWM5LjQtOS40IDI0LjYtOS40IDMzLjkgMEwyODQuMSA4MS45IDE4NCAxODIuMSAzMjkuOSAzMjggNDgxLjggMTc2LjJjMTkuNC0xOS40IDMwLjItNDUuNiAzMC4yLTczIDAtNTctNDYuMi0xMDMuMi0xMDMuMi0xMDMuMnpNMTAyLjQgMjYzLjdjLTQ5LjkgNDkuOS04My4zIDExNC05NS41IDE4My41TC40IDQ4My44Qy0xIDQ5MS42IDEuNSA0OTkuNCA3IDUwNXMxMy40IDggMjEuMSA2LjdsMzYuNy02LjVjNjkuNS0xMi4zIDEzMy42LTQ1LjYgMTgzLjUtOTUuNUwyOTYgMzYxLjkgMTUwLjEgMjE2IDEwMi40IDI2My43eiJdfSxDTGU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiY2xpcGJvYXJkIixpY29uOlszODQsNTEyLFsxMjgyMDNdLCJmMzI4IiwiTTMyMCAzMmwtOC42IDBDMzAwLjQgMTIuOSAyNzkuNyAwIDI1NiAwTDEyOCAwQzEwNC4zIDAgODMuNiAxMi45IDcyLjYgMzJMNjQgMzJDMjguNyAzMiAwIDYwLjcgMCA5NkwwIDQ0OGMwIDM1LjMgMjguNyA2NCA2NCA2NGwyNTYgMGMzNS4zIDAgNjQtMjguNyA2NC02NGwwLTM1MmMwLTM1LjMtMjguNy02NC02NC02NHpNMTM2IDExMmMtMTMuMyAwLTI0LTEwLjctMjQtMjRzMTAuNy0yNCAyNC0yNGwxMTIgMGMxMy4zIDAgMjQgMTAuNyAyNCAyNHMtMTAuNyAyNC0yNCAyNGwtMTEyIDB6Il19LF9MZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJwbGFjZS1vZi13b3JzaGlwIixpY29uOls1MTIsNTEyLFtdLCJmNjdmIiwiTTE2MCA3OWwwIDgxLTQ0LjggMzMuNkMxMDMuMSAyMDIuNyA5NiAyMTYuOSA5NiAyMzJsMCA0MC02MC42IDMwLjNDMTMuNyAzMTMuMiAwIDMzNS4zIDAgMzU5LjZMMCA0NDhjMCAzNS4zIDI4LjcgNjQgNjQgNjQgNzQuNyAwIDg1LjQgMCAzMjAgMGw2NCAwYzM1LjMgMCA2NC0yOC43IDY0LTY0bDAtODguNGMwLTI0LjItMTMuNy00Ni40LTM1LjQtNTcuMkw0MTYgMjcyIDQxNiAyMzJjMC0xNS4xLTcuMS0yOS4zLTE5LjItMzguNEwzNTIgMTYwIDM1MiA3OWMwLTkuNS00LjItMTguNS0xMS41LTI0LjZMMjcxLjQtMy4yYy04LjktNy40LTIxLjgtNy40LTMwLjcgMEwxNzEuNSA1NC40QzE2NC4yIDYwLjUgMTYwIDY5LjUgMTYwIDc5em05NiAyNDFjMzUuMyAwIDY0IDI4LjcgNjQgNjRsMCA4MC0xMjggMCAwLTgwYzAtMzUuMyAyOC43LTY0IDY0LTY0eiJdfSxUTGU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiY2FubmFiaXMiLGljb246WzUxMiw1MTIsW10sImY1NWYiLCJNMjU2IDBjNS4zIDAgMTAuMyAyLjcgMTMuMyA3LjEgMTUuOCAyMy41IDM2LjcgNjMuNyA0OS4yIDEwOSA3LjMgMjYuNCAxMS44IDU1LjMgMTAuMyA4NCAxMS42LTguOSAyMy43LTE2LjcgMzUuOS0yMy43IDQxLTIzLjMgODQuNC0zNi45IDExMi4yLTQyLjUgNS4yLTEgMTAuNyAuNiAxNC40IDQuNHM1LjQgOS4yIDQuNCAxNC41Yy01LjYgMjcuNy0xOS4zIDcwLjktNDIuNyAxMTEuNy05LjEgMTUuOS0xOS45IDMxLjctMzIuNSA0Ni4zIDI3LjkgNi42IDUyLjUgMTcuMiA2Ny4zIDI1LjQgNS4xIDIuOCA4LjIgOC4yIDguMiAxNHMtMy4yIDExLjItOC4yIDE0Yy0xNS4yIDguNC00MC45IDE5LjUtNjkuOCAyNi4xLTIwLjIgNC42LTQyLjkgNy4yLTY1LjIgNC42bDguMyAzMy4yYzEuNSA2LjEtLjYgMTIuNS01LjUgMTYuNHMtMTEuNiA0LjYtMTcuMiAxLjhMMjgwIDQxNy4yIDI4MCA0ODhjMCAxMy4zLTEwLjcgMjQtMjQgMjRzLTI0LTEwLjctMjQtMjRsMC03MC44LTU4LjUgMjkuMWMtNS42IDIuOC0xMi4zIDIuMS0xNy4yLTEuOHMtNy0xMC4zLTUuNS0xNi40bDguMy0zMy4yYy0yMi4yIDIuNi00NSAwLTY1LjItNC42LTI4LjktNi42LTU0LjUtMTcuNi02OS44LTI2LjEtNS4xLTIuOC04LjItOC4yLTguMi0xNHMzLjItMTEuMiA4LjItMTRsNi4yLTMuM2MxNS03LjYgMzYuOC0xNi40IDYxLjEtMjIuMi0xMi41LTE0LjUtMjMuMy0zMC40LTMyLjQtNDYuMi0yMy40LTQwLjgtMzcuMS04NC00Mi43LTExMS43LTEuMS01LjIgLjYtMTAuNyA0LjQtMTQuNXM5LjItNS40IDE0LjQtNC40YzI3LjkgNS41IDcxLjIgMTkuMiAxMTIuMiA0Mi41IDEyLjIgNi45IDI0LjMgMTQuOCAzNS44IDIzLjctMS40LTI4LjcgMy4xLTU3LjYgMTAuMy04NCAxMi41LTQ1LjMgMzMuNC04NS41IDQ5LjItMTA5bDEuMi0xLjZDMjQ2LjkgMiAyNTEuMyAwIDI1NiAweiJdfSxMTGU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToicGVvcGxlLXJvb2YiLGljb246WzU3Niw1MTIsW10sImU1MzciLCJNMzAyLjMtMTIuNmMtOS00LjUtMTkuNi00LjUtMjguNiAwbC0yNTYgMTI4QzEuOSAxMjMuMy00LjUgMTQyLjUgMy40IDE1OC4zczI3LjEgMjIuMiA0Mi45IDE0LjNMMjg4IDUxLjggNTI5LjcgMTcyLjZjMTUuOCA3LjkgMzUgMS41IDQyLjktMTQuM3MxLjUtMzUtMTQuMy00Mi45bC0yNTYtMTI4ek0yODggMjcyYTU2IDU2IDAgMSAwIDAtMTEyIDU2IDU2IDAgMSAwIDAgMTEyem0wIDQ4Yy01MyAwLTk2IDQzLTk2IDk2bDAgMzJjMCAxNy43IDE0LjMgMzIgMzIgMzJsMTI4IDBjMTcuNyAwIDMyLTE0LjMgMzItMzJsMC0zMmMwLTUzLTQzLTk2LTk2LTk2ek0xNjAgMjU2YTQ4IDQ4IDAgMSAwIC05NiAwIDQ4IDQ4IDAgMSAwIDk2IDB6bTM1MiAwYTQ4IDQ4IDAgMSAwIC05NiAwIDQ4IDQ4IDAgMSAwIDk2IDB6TTExMiAzMzZjLTQ0LjIgMC04MCAzNS44LTgwIDgwbDAgMzMuMWMwIDE3IDEzLjggMzAuOSAzMC45IDMwLjlsODcuOCAwYy00LjMtOS44LTYuNy0yMC42LTYuNy0zMmwwLTQ4YzAtMTguNCAzLjUtMzYgOS44LTUyLjItMTIuMi03LjUtMjYuNS0xMS44LTQxLjgtMTEuOHpNNDI1LjQgNDgwbDg3LjggMGMxNyAwIDMwLjktMTMuOCAzMC45LTMwLjlsMC0zMy4xYzAtNDQuMi0zNS44LTgwLTgwLTgwLTE1LjMgMC0yOS42IDQuMy00MS44IDExLjggNi4zIDE2LjIgOS44IDMzLjggOS44IDUyLjJsMCA0OGMwIDExLjQtMi40IDIyLjItNi43IDMyeiJdfSwkTGU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZGlzZWFzZSIsaWNvbjpbNTEyLDUxMixbXSwiZjdmYSIsIk0yMzYuNSAyOS40TDIyNCA0OGMtMjAgMzAtNTMuNiA0OC04OS43IDQ4TDY4IDk2Yy0zNy41IDAtNjcuOSAzMC40LTY3LjkgNjcuOSAwIDE4IDcuMiAzNS4yIDE5LjkgNDcuOWwyNyAyN2MxMSAxMSAxNy4yIDI1LjkgMTcuMiA0MS41IDAgMTUuOC02LjQgMzAuOS0xNy43IDQyTDMzLjQgMzM1LjFjLTExLjEgMTAuOC0xNy4zIDI1LjctMTcuMyA0MS4yIDAgMzYuOCAzNC4xIDY0LjIgNzAuMSA1Ni4ybDYyLjMtMTMuOGM3LjctMS43IDE1LjctMi42IDIzLjYtMi42IDMyLjggMCA2NC4yIDE0LjYgODUuMiAzOS44bDMwLjUgMzYuNmMxMC40IDEyLjQgMjUuNyAxOS42IDQxLjkgMTkuNiAzMC4xIDAgNTQuNS0yNC40IDU0LjUtNTQuNWwwLTUxLjJjMC00MS40IDI1LjQtNzguNSA2NC05My41bDIyLjItOC42YzI1LjItOS44IDQxLjgtMzQuMSA0MS44LTYxLjEgMC0yNi40LTE1LjktNTAuMy00MC4zLTYwLjVMNDI5IDE2NC44Yy0zMy4yLTEzLjktNTcuNi00My02NS41LTc4LjFsLTcuOS0zNS4yYy02LjgtMzAuMS0zMy41LTUxLjUtNjQuMy01MS41LTIyIDAtNDIuNiAxMS01NC44IDI5LjR6TTE2MCAxOTJhMzIgMzIgMCAxIDEgMCA2NCAzMiAzMiAwIDEgMSAwLTY0em05NiAwYTMyIDMyIDAgMSAxIDY0IDAgMzIgMzIgMCAxIDEgLTY0IDB6bTMyIDk2YTMyIDMyIDAgMSAxIDAgNjQgMzIgMzIgMCAxIDEgMC02NHoiXX0sbEY9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiYm9vay1iaWJsZSIsaWNvbjpbNDQ4LDUxMixbImJpYmxlIl0sImY2NDciLCJNOTYgNTEyYy01MyAwLTk2LTQzLTk2LTk2TDAgOTZDMCA0MyA0MyAwIDk2IDBMNDAwIDBjMjYuNSAwIDQ4IDIxLjUgNDggNDhsMCAyODhjMCAyMC45LTEzLjQgMzguNy0zMiA0NS4zbDAgNjYuN2MxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMkw5NiA1MTJ6bTAtMTI4Yy0xNy43IDAtMzIgMTQuMy0zMiAzMnMxNC4zIDMyIDMyIDMybDI1NiAwIDAtNjQtMjU2IDB6TTE5MiA4MGwwIDQ4LTQ4IDBjLTguOCAwLTE2IDcuMi0xNiAxNmwwIDMyYzAgOC44IDcuMiAxNiAxNiAxNmw0OCAwIDAgMTEyYzAgOC44IDcuMiAxNiAxNiAxNmwzMiAwYzguOCAwIDE2LTcuMiAxNi0xNmwwLTExMiA0OCAwYzguOCAwIDE2LTcuMiAxNi0xNmwwLTMyYzAtOC44LTcuMi0xNi0xNi0xNmwtNDggMCAwLTQ4YzAtOC44LTcuMi0xNi0xNi0xNmwtMzIgMGMtOC44IDAtMTYgNy4yLTE2IDE2eiJdfSxBTGU9bEYsRExlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImNoZXNzLWJvYXJkIixpY29uOls0NDgsNTEyLFtdLCJmNDNjIiwiTTY0IDMyQzI4LjcgMzIgMCA2MC43IDAgOTZMMCA0MTZjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMzIwIDBjMzUuMyAwIDY0LTI4LjcgNjQtNjRsMC0zMjBjMC0zNS4zLTI4LjctNjQtNjQtNjRMNjQgMzJ6bTY0IDY0bDAgNjQgNjQgMCAwLTY0IDY0IDAgMCA2NCA2NCAwIDAtNjQgNjQgMCAwIDY0LTY0IDAgMCA2NCA2NCAwIDAgNjQtNjQgMCAwIDY0IDY0IDAgMCA2NC02NCAwIDAtNjQtNjQgMCAwIDY0LTY0IDAgMC02NC02NCAwIDAgNjQtNjQgMCAwLTY0IDY0IDAgMC02NC02NCAwIDAtNjQgNjQgMCAwLTY0LTY0IDAgMC02NCA2NCAwem02NCAxMjhsNjQgMCAwLTY0LTY0IDAgMCA2NHptMCA2NGwwLTY0LTY0IDAgMCA2NCA2NCAwem02NCAwbC02NCAwIDAgNjQgNjQgMCAwLTY0em0wIDBsNjQgMCAwLTY0LTY0IDAgMCA2NHoiXX0sRUxlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6Im1hcnMiLGljb246WzUxMiw1MTIsWzk3OTRdLCJmMjIyIiwiTTMyMCAzMmMwLTE3LjcgMTQuMy0zMiAzMi0zMkw0ODAgMGMxNy43IDAgMzIgMTQuMyAzMiAzMmwwIDEyOGMwIDE3LjctMTQuMyAzMi0zMiAzMnMtMzItMTQuMy0zMi0zMmwwLTUwLjctOTUgOTVjMTkuNSAyOC40IDMxIDYyLjcgMzEgOTkuOCAwIDk3LjItNzguOCAxNzYtMTc2IDE3NlMzMiA0MDEuMiAzMiAzMDQgMTEwLjggMTI4IDIwOCAxMjhjMzcgMCA3MS40IDExLjQgOTkuOCAzMWw5NS05NS01MC43IDBjLTE3LjcgMC0zMi0xNC4zLTMyLTMyek0yMDggNDE2YTExMiAxMTIgMCAxIDAgMC0yMjQgMTEyIDExMiAwIDEgMCAwIDIyNHoiXX0sUExlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImxhcHRvcCIsaWNvbjpbNjQwLDUxMixbMTI4MTg3XSwiZjEwOSIsIk0xMjggMzJDOTIuNyAzMiA2NCA2MC43IDY0IDk2bDAgMjQwIDY0IDAgMC0yNDAgMzg0IDAgMCAyNDAgNjQgMCAwLTI0MGMwLTM1LjMtMjguNy02NC02NC02NEwxMjggMzJ6TTE5LjIgMzg0QzguNiAzODQgMCAzOTIuNiAwIDQwMy4yIDAgNDQ1LjYgMzQuNCA0ODAgNzYuOCA0ODBsNDg2LjQgMGM0Mi40IDAgNzYuOC0zNC40IDc2LjgtNzYuOCAwLTEwLjYtOC42LTE5LjItMTkuMi0xOS4yTDE5LjIgMzg0eiJdfSxjRj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJ1c2VyLXhtYXJrIixpY29uOls1NzYsNTEyLFsidXNlci10aW1lcyJdLCJmMjM1IiwiTTI1NC4xIDMwNGM5OC41IDAgMTc4LjMgNzkuOCAxNzguMyAxNzguMyAwIDE2LjQtMTMuMyAyOS43LTI5LjcgMjkuN0w0Ni4xIDUxMmMtMTYuNCAwLTI5LjctMTMuMy0yOS43LTI5LjcgMC05OC41IDc5LjgtMTc4LjMgMTc4LjMtMTc4LjNsNTkuNCAwek01MzAuMyAxMDguMWM5LjQtOS40IDI0LjYtOS40IDMzLjkgMHM5LjQgMjQuNiAwIDMzLjlsLTMzLjkgMzMuOSAzMy45IDMzLjljOS40IDkuNCA5LjQgMjQuNiAwIDMzLjlzLTI0LjYgOS40LTMzLjkgMGwtMzMuOS0zMy45LTMzLjkgMzMuOWMtOS40IDkuNC0yNC42IDkuNC0zMy45IDBzLTkuNC0yNC42IDAtMzMuOWwzMy45LTMzLjktMzMuOS0zMy45Yy05LjQtOS40LTkuNC0yNC42IDAtMzMuOXMyNC42LTkuNCAzMy45IDBsMzMuOSAzMy45IDMzLjktMzMuOXpNMjI0LjQgMjQ4YTEyMCAxMjAgMCAxIDEgMC0yNDAgMTIwIDEyMCAwIDEgMSAwIDI0MHoiXX0sSUxlPWNGLE5MZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJmbGFnLXVzYSIsaWNvbjpbNDQ4LDUxMixbXSwiZjc0ZCIsIk0zMiAwQzQ5LjcgMCA2NCAxNC4zIDY0IDMybDAgMTYgNjktMTcuMmMzOC4xLTkuNSA3OC4zLTUuMSAxMTMuNSAxMi41IDQ2LjMgMjMuMiAxMDAuOCAyMy4yIDE0Ny4xIDBsOS42LTQuOEM0MjMuOCAyOC4xIDQ0OCA0My4xIDQ0OCA2Ni4xbDAgMzYuMS00NC43IDE2LjJjLTQyLjggMTUuNi05MCAxMy45LTEzMS42LTQuNmwtMTYuMS03LjJjLTIwLjMtOS00MS44LTE0LjctNjMuNi0xNi45bDAgMzIuMmMxNy40IDIuMSAzNC40IDYuNyA1MC42IDEzLjlsMTYuMSA3LjJjNDkuMiAyMS45IDEwNSAyMy44IDE1NS42IDUuNGwzMy43LTEyLjMgMCA2Mi00NC43IDE2LjJjLTQyLjggMTUuNi05MCAxMy45LTEzMS42LTQuNmwtMTYuMS03LjJjLTQwLjItMTcuOS04NS0yMi41LTEyOC4xLTEzLjNsLTYzLjUgMTMuNiAwIDMyLjcgNzAuMi0xNS4xYzM2LjQtNy44IDc0LjMtMy45IDEwOC40IDExLjNsMTYuMSA3LjJjNDkuMiAyMS45IDEwNSAyMy44IDE1NS42IDUuNGwzMy43LTEyLjMgMCA2MS45LTQ0LjcgMTYuMmMtNDIuOCAxNS42LTkwIDEzLjktMTMxLjYtNC42bC0xNi4xLTcuMmMtNDAuMi0xNy45LTg1LTIyLjUtMTI4LjEtMTMuM2wtNjMuNSAxMy42IDAgMzIuNyA3MC4yLTE1LjFjMzYuNC03LjggNzQuMy0zLjkgMTA4LjQgMTEuM2wxNi4xIDcuMmM0OS4yIDIxLjkgMTA1IDIzLjggMTU1LjYgNS40bDMzLjctMTIuMyAwIDMzLjVjMCAxMy4zLTguMyAyNS4zLTIwLjggMzBsLTM0LjcgMTNjLTQ2LjIgMTcuMy05Ny42IDE0LjYtMTQxLjctNy40LTM3LjktMTktODEuNC0yMy43LTEyMi41LTEzLjRMNjQgNDAwIDY0IDQ4MGMwIDE3LjctMTQuMyAzMi0zMiAzMlMwIDQ5Ny43IDAgNDgwTDAgMzJDMCAxNC4zIDE0LjMgMCAzMiAwem04MCA5NmExNiAxNiAwIDEgMCAtMzIgMCAxNiAxNiAwIDEgMCAzMiAwem0zMiAwYTE2IDE2IDAgMSAwIDAtMzIgMTYgMTYgMCAxIDAgMCAzMnptLTMyIDQ4YTE2IDE2IDAgMSAwIC0zMiAwIDE2IDE2IDAgMSAwIDMyIDB6bTMyIDBhMTYgMTYgMCAxIDAgMC0zMiAxNiAxNiAwIDEgMCAwIDMyeiJdfSxGTGU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiaGFuZC1taWRkbGUtZmluZ2VyIixpY29uOls0NDgsNTEyLFsxMjg0MDVdLCJmODA2IiwiTTIzMiAwYy0yMi4xIDAtNDAgMTcuOS00MCA0MGwwIDE2NC4yYy04LjUtNy42LTE5LjctMTIuMi0zMi0xMi4yLTI2LjUgMC00OCAyMS41LTQ4IDQ4bDAgODBjMCA4LjgtNy4yIDE2LTE2IDE2cy0xNi03LjItMTYtMTZsMC01NS43Yy0yIDEuNC0zLjkgMy01LjggNC41TDU1IDI4NC44QzQwLjQgMjk3IDMyIDMxNSAzMiAzMzRMMzIgMzcyYzAgMzggMTYuOSA3NCA0Ni4xIDk4LjNsNS40IDQuNWMyOC44IDI0IDY1IDM3LjEgMTAyLjQgMzcuMUwzMDQgNTEyYzcwLjcgMCAxMjgtNTcuMyAxMjgtMTI4bDAtOTZjMC0yNi41LTIxLjUtNDgtNDgtNDgtMTIuNCAwLTIzLjYgNC43LTMyLjEgMTIuMy0xLjktMjQuOC0yMi42LTQ0LjMtNDcuOS00NC4zLTEyLjMgMC0yMy41IDQuNi0zMiAxMi4yTDI3MiA0MGMwLTIyLjEtMTcuOS00MC00MC00MHoiXX0sT0xlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6Im1vcnRhci1wZXN0bGUiLGljb246WzUxMiw1MTIsW10sImY1YTciLCJNNTA0LjMgMTEuMUM0OTMuMy0xLjYgNDc0LjUtMy43IDQ2MSA2LjJMMjUyLjMgMTYwIDM5Ny4zIDE2MCA1MDIuNiA1NC42YzExLjgtMTEuOCAxMi42LTMwLjggMS42LTQzLjV6TTMyIDE5MmMtMTcuNyAwLTMyIDE0LjMtMzIgMzJzMTQuMyAzMiAzMiAzMmMwIDgyLjUgNDMuNCAxNDcuNyAxMjMuOSAxNzYuMi0xMS4xIDEzLjktMTkuNCAzMC4zLTIzLjkgNDguMS00LjQgMTcuMSAxMC40IDMxLjcgMjguMSAzMS43bDE5MiAwYzE3LjcgMCAzMi40LTE0LjYgMjguMS0zMS43LTQuNS0xNy44LTEyLjgtMzQuMS0yMy45LTQ4LjEgODAuNS0yOC42IDEyMy45LTkzLjcgMTIzLjktMTc2LjIgMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJMMzIgMTkyeiJdfSxSTGU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiaGVhZC1zaWRlLWNvdWdoIixpY29uOls1MTIsNTEyLFtdLCJlMDYxIiwiTTk2IDUxMmw2NCAwYzUzIDAgOTYtNDMgOTYtOTZsMC04MGMwLTguOCA3LjItMTYgMTYtMTZsMSAwYzI2IDAgNDctMjEgNDctNDcgMC0xMS0zLjktMjEuNi0xMC45LTMwLjFMMjczLjMgMjAwQzI3MS40IDE5Ny42IDI3MC4xIDE5NC43IDI2OS43IDE5MS43IDI1NCA4My4zIDE2MC43IDAgNDggMCA0MC40IDAgMzIuOSAuNCAyNS40IDEuMSAxMC41IDIuNiAwIDE1LjkgMCAzMC45TDAgNDgwYzAgMTcuNyAxNC4zIDMyIDMyIDMybDY0IDB6bTE2LTMyMGEzMiAzMiAwIDEgMSA2NCAwIDMyIDMyIDAgMSAxIC02NCAwem02My4xIDIzNy4ybC00MS41LTMuNWMtMTIuMi0xLTIxLjYtMTEuMi0yMS42LTIzLjQgMC0xMC44IDcuMy0yMC4yIDE3LjgtMjIuOGw0MC40LTEwLjFjMTkuMi00LjggMzcuOCA5LjcgMzcuOCAyOS41IDAgMTcuOC0xNS4yIDMxLjgtMzIuOSAzMC4zek00ODAgMzEyYTI0IDI0IDAgMSAwIDAtNDggMjQgMjQgMCAxIDAgMCA0OHptLTQwIDI0YTI0IDI0IDAgMSAwIC00OCAwIDI0IDI0IDAgMSAwIDQ4IDB6bS02NCA0OGEyNCAyNCAwIDEgMCAtNDggMCAyNCAyNCAwIDEgMCA0OCAwem0xMjggMGEyNCAyNCAwIDEgMCAtNDggMCAyNCAyNCAwIDEgMCA0OCAwek00ODAgNTA0YTI0IDI0IDAgMSAwIDAtNDggMjQgMjQgMCAxIDAgMCA0OHptLTQwLTcyYTI0IDI0IDAgMSAwIC00OCAwIDI0IDI0IDAgMSAwIDQ4IDB6Il19LEJMZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJwbGFuZS1sb2NrIixpY29uOls2NDAsNTEyLFtdLCJlNTU4IiwiTTIzMiAyNGMwLTMwLjkgMjUuMS01NiA1Ni01NnM1NiAyNS4xIDU2IDU2bDAgMTI3LjMgODIuMSA3NS4yQzQwOS43IDI0OC4xIDQwMCAyNzQuOSA0MDAgMzA0bDAgMjQuNGMtNy4zIDYuNi0xMy42IDE0LjItMTguNyAyMi43bC0zNy4zLTEyLjQgMCA5OS43IDI0IDE5LjIgMCAzOC4zYzAgMTMuNSAyLjggMjYuNCA3LjggMzguMUwyODggNTEyIDE3OS45IDUzOWMtMTAuMSAyLjUtMTkuOS01LjEtMTkuOS0xNS41bDAtMTkuOGMwLTQuOSAyLjItOS41IDYtMTIuNWw2Ni01Mi44IDAtOTkuNy0xNjIuOSA1NC4zQzU4LjcgMzk2LjQgNDggMzg4LjcgNDggMzc3LjhsMC00My43YzAtOSAzLjgtMTcuNSAxMC40LTIzLjZMMjMyIDE1MS4zIDIzMiAyNHpNNTYwIDMwNC4xYzAtMTcuNy0xNC4zLTMyLTMyLTMycy0zMiAxNC4zLTMyIDMybDAgNDcuOSA2NCAwIDAtNDcuOXpNNDE2IDQwMGMwLTIwLjkgMTMuNC0zOC43IDMyLTQ1LjNsMC01MC42YzAtNDQuMiAzNS44LTgwIDgwLTgwczgwIDM1LjggODAgODBsMCA1MC42YzE4LjYgNi42IDMyIDI0LjQgMzIgNDUuM2wwIDk2YzAgMjYuNS0yMS41IDQ4LTQ4IDQ4bC0xMjggMGMtMjYuNSAwLTQ4LTIxLjUtNDgtNDhsMC05NnoiXX0sZEY9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiYmF0dGVyeS10aHJlZS1xdWFydGVycyIsaWNvbjpbNjQwLDUxMixbImJhdHRlcnktNCJdLCJmMjQxIiwiTTUyOCAxMjhjOC44IDAgMTYgNy4yIDE2IDE2bDAgMjI0YzAgOC44LTcuMiAxNi0xNiAxNmwtNDE2IDBjLTguOCAwLTE2LTcuMi0xNi0xNmwwLTIyNGMwLTguOCA3LjItMTYgMTYtMTZsNDE2IDB6TTExMiA2NGMtNDQuMiAwLTgwIDM1LjgtODAgODBsMCAyMjRjMCA0NC4yIDM1LjggODAgODAgODBsNDE2IDBjNDQuMiAwIDgwLTM1LjggODAtODBsMC00OGMxNy43IDAgMzItMTQuMyAzMi0zMmwwLTY0YzAtMTcuNy0xNC4zLTMyLTMyLTMybDAtNDhjMC00NC4yLTM1LjgtODAtODAtODBMMTEyIDY0em01NiAxMTJjLTEzLjMgMC0yNCAxMC43LTI0IDI0bDAgMTEyYzAgMTMuMyAxMC43IDI0IDI0IDI0bDIyNCAwYzEzLjMgMCAyNC0xMC43IDI0LTI0bDAtMTEyYzAtMTMuMy0xMC43LTI0LTI0LTI0bC0yMjQgMHoiXX0sSExlPWRGLHFMZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJmcmFuYy1zaWduIixpY29uOlszMjAsNTEyLFtdLCJlMThmIiwiTTgwIDMyQzYyLjMgMzIgNDggNDYuMyA0OCA2NGwwIDI1Ni0yNCAwYy0xMy4zIDAtMjQgMTAuNy0yNCAyNHMxMC43IDI0IDI0IDI0bDI0IDAgMCA4MGMwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMybDAtODAgODggMGMxMy4zIDAgMjQtMTAuNyAyNC0yNHMtMTAuNy0yNC0yNC0yNGwtODggMCAwLTY0IDE0NCAwYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMybC0xNDQgMCAwLTk2IDE3NiAwYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMyTDgwIDMyeiJdfSxoRj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJmaWx0ZXItY2lyY2xlLWRvbGxhciIsaWNvbjpbNTc2LDUxMixbImZ1bm5lbC1kb2xsYXIiXSwiZjY2MiIsIk0zMiA2NEMxOS4xIDY0IDcuNCA3MS44IDIuNCA4My44Uy4yIDEwOS41IDkuNCAxMTguNkwxOTIgMzAxLjMgMTkyIDQxNmMwIDguNSAzLjQgMTYuNiA5LjQgMjIuNmw2NCA2NGMyLjUgMi41IDUuMyA0LjUgOC4zIDYtMjEuMi0zMC45LTMzLjYtNjguMy0zMy42LTEwOC42IDAtOTkuNCA3NS41LTE4MS4xIDE3Mi4zLTE5MWw5MC40LTkwLjRjOS4yLTkuMiAxMS45LTIyLjkgNi45LTM0LjlTNDkyLjkgNjQgNDgwIDY0TDMyIDY0ek01NzYgNDAwYTE0NCAxNDQgMCAxIDAgLTI4OCAwIDE0NCAxNDQgMCAxIDAgMjg4IDB6TTQxNiAzMjBjMC04LjggNy4yLTE2IDE2LTE2czE2IDcuMiAxNiAxNmwwIDggMTYgMGM4LjggMCAxNiA3LjIgMTYgMTZzLTcuMiAxNi0xNiAxNmwtNDUuOCAwYy01LjYgMC0xMC4yIDQuNi0xMC4yIDEwLjIgMCA0LjkgMy41IDkuMSA4LjMgMTBsNDUgOC4yYzIwIDMuNiAzNC42IDIxLjEgMzQuNiA0MS41IDAgMjMuMy0xOC45IDQyLjItNDIuMiA0Mi4ybC01LjggMCAwIDhjMCA4LjgtNy4yIDE2LTE2IDE2cy0xNi03LjItMTYtMTZsMC04LTE2IDBjLTguOCAwLTE2LTcuMi0xNi0xNnM3LjItMTYgMTYtMTZsNTMuOCAwYzUuNiAwIDEwLjItNC42IDEwLjItMTAuMiAwLTQuOS0zLjUtOS4xLTguMy0xMGwtNDUtOC4yYy0yMC0zLjYtMzQuNi0yMS4xLTM0LjYtNDEuNSAwLTIyLjYgMTcuNy00MSA0MC00Mi4xbDAtOC4xeiJdfSxWTGU9aEYsakxlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImNoZWVzZSIsaWNvbjpbNTEyLDUxMixbXSwiZjdlZiIsIk01MTIgMjQwLjJsMCAxNS44LTUxMiAwYzAtMjAgMTAtMzguNyAyNi42LTQ5LjhMMjc0LjkgNDAuN2M4LjYtNS43IDE4LjYtOC43IDI4LjktOC43IDExNSAwIDIwOC4yIDkzLjIgMjA4LjIgMjA4LjJ6bTAgNjMuOGwwIDExMmMwIDM1LjMtMjguNyA2NC02NCA2NEw2NCA0ODBjLTM1LjMgMC02NC0yOC43LTY0LTY0bDAtMTEyIDUxMiAweiJdfSxwRj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJjaXJjbGUtaCIsaWNvbjpbNTEyLDUxMixbOTQwNSwiaG9zcGl0YWwtc3ltYm9sIl0sImY0N2UiLCJNMjU2IDUxMmEyNTYgMjU2IDAgMSAwIDAtNTEyIDI1NiAyNTYgMCAxIDAgMCA1MTJ6bTk2LTM0NGwwIDE3NmMwIDEzLjMtMTAuNyAyNC0yNCAyNHMtMjQtMTAuNy0yNC0yNGwwLTY0LTk2IDAgMCA2NGMwIDEzLjMtMTAuNyAyNC0yNCAyNHMtMjQtMTAuNy0yNC0yNGwwLTE3NmMwLTEzLjMgMTAuNy0yNCAyNC0yNHMyNCAxMC43IDI0IDI0bDAgNjQgOTYgMCAwLTY0YzAtMTMuMyAxMC43LTI0IDI0LTI0czI0IDEwLjcgMjQgMjR6Il19LFVMZT1wRixXTGU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToic2Nob29sIixpY29uOls1NzYsNTEyLFsxMjc5NzldLCJmNTQ5IiwiTTAgMTkyYzAtMzUuMyAyOC43LTY0IDY0LTY0bDY0IDAgMTI3LjktMTE1LjFjMTguMy0xNi40IDQ2LTE2LjQgNjQuMiAwTDQ0OCAxMjggNTEyIDEyOGMzNS4zIDAgNjQgMjguNyA2NCA2NGwwIDI1NmMwIDM1LjMtMjguNyA2NC02NCA2NEw2NCA1MTJjLTM1LjMgMC02NC0yOC43LTY0LTY0TDAgMTkyek0yMjQgMzc2bDAgODggMTI4IDAgMC04OGMwLTIyLjEtMTcuOS00MC00MC00MGwtNDggMGMtMjIuMSAwLTQwIDE3LjktNDAgNDB6bS0xMTIgOGM4LjggMCAxNi03LjIgMTYtMTZsMC0zMmMwLTguOC03LjItMTYtMTYtMTZsLTMyIDBjLTguOCAwLTE2IDcuMi0xNiAxNmwwIDMyYzAgOC44IDcuMiAxNiAxNiAxNmwzMiAwem0xNi0xNDRsMC0zMmMwLTguOC03LjItMTYtMTYtMTZsLTMyIDBjLTguOCAwLTE2IDcuMi0xNiAxNmwwIDMyYzAgOC44IDcuMiAxNiAxNiAxNmwzMiAwYzguOCAwIDE2LTcuMiAxNi0xNnpNNDk2IDM4NGM4LjggMCAxNi03LjIgMTYtMTZsMC0zMmMwLTguOC03LjItMTYtMTYtMTZsLTMyIDBjLTguOCAwLTE2IDcuMi0xNiAxNmwwIDMyYzAgOC44IDcuMiAxNiAxNiAxNmwzMiAwem0xNi0xNDRsMC0zMmMwLTguOC03LjItMTYtMTYtMTZsLTMyIDBjLTguOCAwLTE2IDcuMi0xNiAxNmwwIDMyYzAgOC44IDcuMiAxNiAxNiAxNmwzMiAwYzguOCAwIDE2LTcuMiAxNi0xNnpNMjg4IDI1NmE2NCA2NCAwIDEgMCAwLTEyOCA2NCA2NCAwIDEgMCAwIDEyOHoiXX0sR0xlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImRpY2UtZml2ZSIsaWNvbjpbNDQ4LDUxMixbOTg2MF0sImY1MjMiLCJNNjQgMzJDMjguNyAzMiAwIDYwLjcgMCA5NkwwIDQxNmMwIDM1LjMgMjguNyA2NCA2NCA2NGwzMjAgMGMzNS4zIDAgNjQtMjguNyA2NC02NGwwLTMyMGMwLTM1LjMtMjguNy02NC02NC02NEw2NCAzMnptNjQgOTZhMzIgMzIgMCAxIDEgMCA2NCAzMiAzMiAwIDEgMSAwLTY0ek05NiAzNTJhMzIgMzIgMCAxIDEgNjQgMCAzMiAzMiAwIDEgMSAtNjQgMHpNMjI0IDIyNGEzMiAzMiAwIDEgMSAwIDY0IDMyIDMyIDAgMSAxIDAtNjR6bTY0LTY0YTMyIDMyIDAgMSAxIDY0IDAgMzIgMzIgMCAxIDEgLTY0IDB6bTMyIDE2MGEzMiAzMiAwIDEgMSAwIDY0IDMyIDMyIDAgMSAxIDAtNjR6Il19LFlMZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJ0b3JuYWRvIixpY29uOls0NDgsNTEyLFsxMjc3ODZdLCJmNzZmIiwiTTAgMzJMMCA0NS42QzAgNjIuNyAxLjcgNzkuNiA1IDk2bDM1Mi44IDBjMy4yLTYuOSA3LjUtMTMuMyAxMy0xOC44bDM4LjYtMzguNmM0LjItNC4yIDYuNi0xMCA2LjYtMTYgMC0xMi41LTEwLjEtMjIuNi0yMi42LTIyLjZMMzIgMEMxNC4zIDAgMCAxNC4zIDAgMzJ6TTM1NS43IDE0NGwtMzM2IDBjMTIuNCAyOS43IDMwLjIgNTYuOCA1Mi43IDgwbDMzOS42IDAtNDcuMi02Mi45Yy0zLjktNS4yLTctMTEtOS4yLTE3LjF6TTI0Mi42IDMzNC43YzguMiA0LjggMTUuOCAxMC43IDIyLjUgMTcuM0w0NDUgMzUyYzItOS44IDMtMTkuOSAzLTMwLjEgMC0xNy4xLTIuOS0zNC04LjYtNDkuOUwxMzYgMjcyIDI0Mi42IDMzNC43ek0yOTQuMyA0MDBjNS4zIDE3IDYuNSAzNS4yIDMuNiA1M2wtNS45IDM1LjdjLTIgMTIuMiA3LjQgMjMuNCAxOS44IDIzLjQgNS4zIDAgMTAuNC0yLjEgMTQuMi01LjlsNzguMi03OC4yYzguNS04LjUgMTUuOC0xNy44IDIxLjktMjcuOWwtMTMxLjggMHoiXX0sdUY9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiamV0LWZpZ2h0ZXIiLGljb246WzU3Niw1MTIsWyJmaWdodGVyLWpldCJdLCJmMGZiIiwiTTQ5Ni4yIDIwNi44Yy0xMC43LTQuNS0yMi4yLTYuOC0zMy44LTYuOEwzNjIgMjAwIDI0OCA0OCAyOTYgNDhjMTMuMyAwIDI0LTEwLjcgMjQtMjRTMzA5LjMgMCAyOTYgMEwxNTIgMGMtMTMuMyAwLTI0IDEwLjctMjQgMjRzMTAuNyAyNCAyNCAyNGw4IDAgMCAxNTItNTQuNCAwLTUyLjgtNjZjLTMtMy44LTcuNi02LTEyLjUtNkwxNiAxMjhjLTguOCAwLTE2IDcuMi0xNiAxNmwwIDg4IDQwIDBjMTMuMyAwIDI0IDEwLjcgMjQgMjRzLTEwLjcgMjQtMjQgMjRsLTQwIDAgMCA4OGMwIDguOCA3LjIgMTYgMTYgMTZsMjQuMyAwYzQuOSAwIDkuNS0yLjIgMTIuNS02bDUyLjgtNjYgNTQuNCAwIDAgMTUyLTggMGMtMTMuMyAwLTI0IDEwLjctMjQgMjRzMTAuNyAyNCAyNCAyNGwxNDQgMGMxMy4zIDAgMjQtMTAuNyAyNC0yNHMtMTAuNy0yNC0yNC0yNGwtNDggMCAxMTQtMTUyIDEwMC40IDBjMTEuNiAwIDIzLjEtMi4zIDMzLjgtNi44bDY1LTI3LjFjOC45LTMuNyAxNC44LTEyLjUgMTQuOC0yMi4ycy01LjgtMTguNC0xNC44LTIyLjJsLTY1LTI3LjF6Il19LFpMZT11RixYTGU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToidGh1bWJzLWRvd24iLGljb246WzUxMiw1MTIsWzEyODA3OCw2MTU3Nl0sImYxNjUiLCJNMzg0IDMyYzI2LjUgMCA0OCAyMS41IDQ4IDQ4IDAgNi4zLTEuMyAxMi4yLTMuNCAxNy43IDIwLjQgNS41IDM1LjQgMjQuMSAzNS40IDQ2LjMgMCA5LjEtMi42IDE3LjYtNyAyNC45IDIyLjIgNC4yIDM5IDIzLjcgMzkgNDcuMSAwIDE5LjctMTEuOSAzNi42LTI4LjkgNDQgMTcgNy40IDI4LjkgMjQuMyAyOC45IDQ0IDAgMjYuNS0yMS41IDQ4LTQ4IDQ4bC0xNjAgMCAyOC4yIDcwLjRjMi41IDYuMyAzLjggMTMuMSAzLjggMTkuOWwwIDQuMmMwIDI3LjMtMjIuMSA0OS40LTQ5LjQgNDkuNC0xOC43IDAtMzUuOC0xMC42LTQ0LjItMjcuM0wxNzAuMSAzNTYuM2MtNi43LTEzLjMtMTAuMS0yOC0xMC4xLTQyLjlsMC0xODYuNmMwLTE5LjQgOC45LTM3LjggMjQtNTBsMTIuMi05LjdDMjI0LjYgNDQuNCAyNTkuOCAzMiAyOTYuMSAzMkwzODQgMzJ6TTgwIDk2YzE3LjcgMCAzMiAxNC4zIDMyIDMybDAgMjU2YzAgMTcuNy0xNC4zIDMyLTMyIDMybC00OCAwYy0xNy43IDAtMzItMTQuMy0zMi0zMkwwIDEyOGMwLTE3LjcgMTQuMy0zMiAzMi0zMmw0OCAweiJdfSxLTGU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiYnJvb20iLGljb246WzU3Niw1MTIsWzEyOTUyOV0sImY1MWEiLCJNNTY2LjYgNTQuNmMxMi41LTEyLjUgMTIuNS0zMi44IDAtNDUuM3MtMzIuOC0xMi41LTQ1LjMgMGwtMTkyIDE5Mi0zNC43LTM0LjdjLTQuMi00LjItMTAtNi42LTE2LTYuNi0xMi41IDAtMjIuNiAxMC4xLTIyLjYgMjIuNmwwIDI5LjEgMTA4LjMgMTA4LjMgMjkuMSAwYzEyLjUgMCAyMi42LTEwLjEgMjIuNi0yMi42IDAtNi0yLjQtMTEuOC02LjYtMTZsLTM0LjctMzQuNyAxOTItMTkyek0zNDEuMSAzNTMuNEwyMjIuNiAyMzQuOWMtNDIuNy0zLjctODUuMiAxMS43LTExNS44IDQyLjNsLTggOGMtMjIuMyAyMi4zLTM0LjggNTIuNS0zNC44IDg0IDAgNi44IDcuMSAxMS4yIDEzLjIgOC4ybDUxLjEtMjUuNWM1LTIuNSA5LjUgNC4xIDUuNCA3LjlMNy4zIDQ3My40QzIuNyA0NzcuNiAwIDQ4My42IDAgNDg5LjkgMCA1MDIuMSA5LjkgNTEyIDIyLjEgNTEybDE3My4zIDBjMzguOCAwIDc1LjktMTUuNCAxMDMuNC00Mi44IDMwLjYtMzAuNiA0NS45LTczLjEgNDIuMy0xMTUuOHoiXX0sZkY9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZmlsZS1pbXBvcnQiLGljb246WzM4NCw1MTIsWyJhcnJvdy1yaWdodC10by1maWxlIl0sImY1NmYiLCJNNjQgMEMyOC43IDAgMCAyOC43IDAgNjRsMCAyNDAgMTgyLjEgMC0zMS0zMWMtOS40LTkuNC05LjQtMjQuNiAwLTMzLjlzMjQuNi05LjQgMzMuOSAwbDcyIDcyYzkuNCA5LjQgOS40IDI0LjYgMCAzMy45bC03MiA3MmMtOS40IDkuNC0yNC42IDkuNC0zMy45IDBzLTkuNC0yNC42IDAtMzMuOWwzMS0zMS0xODIuMSAwIDAgOTZjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMjU2IDBjMzUuMyAwIDY0LTI4LjcgNjQtNjRsMC0yNzcuNWMwLTE3LTYuNy0zMy4zLTE4LjctNDUuM0wyNTguNyAxOC43QzI0Ni43IDYuNyAyMzAuNSAwIDIxMy41IDBMNjQgMHpNMzI1LjUgMTc2TDIzMiAxNzZjLTEzLjMgMC0yNC0xMC43LTI0LTI0TDIwOCA1OC41IDMyNS41IDE3NnoiXX0sUUxlPWZGLG1GPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InV0ZW5zaWxzIixpY29uOls1MTIsNTEyLFsxMjc4NjAsNjE2ODUsImN1dGxlcnkiXSwiZjJlNyIsIk02My45IDE0LjRDNjMuMSA2LjIgNTYuMiAwIDQ4IDBzLTE1LjEgNi4yLTE2IDE0LjNMMTcuOSAxNDkuN2MtMS4zIDYtMS45IDEyLjEtMS45IDE4LjIgMCA0NS45IDM1LjEgODMuNiA4MCA4Ny43TDk2IDQ4MGMwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMybDAtMjI0LjRjNDQuOS00LjEgODAtNDEuOCA4MC04Ny43IDAtNi4xLS42LTEyLjItMS45LTE4LjJMMjIzLjkgMTQuM0MyMjMuMSA2LjIgMjE2LjIgMCAyMDggMHMtMTUuMSA2LjItMTUuOSAxNC40TDE3OC41IDE0OS45Yy0uNiA1LjctNS40IDEwLjEtMTEuMSAxMC4xLTUuOCAwLTEwLjYtNC40LTExLjItMTAuMkwxNDMuOSAxNC42QzE0My4yIDYuMyAxMzYuMyAwIDEyOCAwcy0xNS4yIDYuMy0xNS45IDE0LjZMOTkuOCAxNDkuOGMtLjUgNS44LTUuNCAxMC4yLTExLjIgMTAuMi01LjggMC0xMC42LTQuNC0xMS4xLTEwLjFMNjMuOSAxNC40ek00NDggMEM0MzIgMCAzMjAgMzIgMzIwIDE3NmwwIDExMmMwIDM1LjMgMjguNyA2NCA2NCA2NGwzMiAwIDAgMTI4YzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJsMC00NDhjMC0xNy43LTE0LjMtMzItMzItMzJ6Il19LEpMZT1tRixlJGU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiaWQtYmFkZ2UiLGljb246WzM4NCw1MTIsW10sImYyYzEiLCJNNjQgMEMyOC43IDAgMCAyOC43IDAgNjRMMCA0NDhjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMjU2IDBjMzUuMyAwIDY0LTI4LjcgNjQtNjRsMC0zODRjMC0zNS4zLTI4LjctNjQtNjQtNjRMNjQgMHptOTYgMzUybDY0IDBjNDQuMiAwIDgwIDM1LjggODAgODAgMCA4LjgtNy4yIDE2LTE2IDE2TDk2IDQ0OGMtOC44IDAtMTYtNy4yLTE2LTE2IDAtNDQuMiAzNS44LTgwIDgwLTgwem0tMjQtOTZhNTYgNTYgMCAxIDEgMTEyIDAgNTYgNTYgMCAxIDEgLTExMiAwek0xNTIgNjRsODAgMGMxMy4zIDAgMjQgMTAuNyAyNCAyNHMtMTAuNyAyNC0yNCAyNGwtODAgMGMtMTMuMyAwLTI0LTEwLjctMjQtMjRzMTAuNy0yNCAyNC0yNHoiXX0sdCRlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InNwaWRlciIsaWNvbjpbNTEyLDUxMixbMTI4Mzc1XSwiZjcxNyIsIk0zNjkuMy0zMWMxMS45LTMuNSAyNC40IDIuNyAyOSAxMy45bC44IDIuMyA0MCAxMzZjMi41IDguNCAuMSAxNy41LTYuMSAyMy43bC02NC4xIDY0LjEgNzYuNC0yMC44IDE5LjktNTkuOCAuOS0yLjNjNS0xMS4xIDE3LjctMTYuOCAyOS41LTEyLjkgMTEuOCAzLjkgMTguNSAxNi4xIDE1LjggMjhsLS43IDIuNC0yNCA3MmMtMi41IDcuNi04LjcgMTMuNC0xNi41IDE1LjZsLTkxLjEgMjQuOCA5MS4xIDI0LjhjNy43IDIuMSAxMy45IDggMTYuNSAxNS42bDI0IDcyIC43IDIuNGMyLjcgMTEuOS00LjEgMjQuMS0xNS44IDI4LTExLjggMy45LTI0LjUtMS44LTI5LjUtMTIuOWwtLjktMi4zLTE5LjktNTkuOC03Ni40LTIwLjggNjQuMSA2NC4xYzYuMSA2LjEgOC41IDE1LjEgNi4yIDIzLjRsLTQwIDE0NC0uOCAyLjNjLTQuNCAxMS4zLTE2LjggMTcuNy0yOC44IDE0LjQtMTItMy4zLTE5LjMtMTUuMi0xNy4yLTI3LjJsLjUtMi40IDM2LjItMTMwLjUtMzcuMi0zNy4yQzM1MSA0MDYgMzA4LjQgNDQ4IDI1NiA0NDhzLTk1LTQyLTk2LTk0LjFsLTM3IDM3IDM2IDEyMi4zIC42IDIuNGMyLjIgMTEuOS00LjkgMjMuOS0xNi44IDI3LjQtMTEuOSAzLjUtMjQuNC0yLjctMjktMTMuOWwtLjgtMi4zLTQwLTEzNmMtMi41LTguNC0uMS0xNy41IDYuMS0yMy44bDY0LjEtNjQuMS03Ni40IDIwLjgtMTkuOSA1OS44LS45IDIuM2MtNSAxMS4xLTE3LjcgMTYuOC0yOS41IDEyLjlzLTE4LjUtMTYuMS0xNS44LTI4bC43LTIuNCAyNC03MmMyLjUtNy42IDguNy0xMy40IDE2LjUtMTUuNmw5MS4xLTI0LjgtOTEuMS0yNC44Yy03LjctMi4xLTEzLjktOC0xNi41LTE1LjZsLTI0LTcyLS43LTIuNGMtMi43LTExLjkgNC4xLTI0LjEgMTUuOC0yOHMyNC41IDEuOCAyOS41IDEyLjlsLjkgMi4zIDE5LjkgNTkuOCA3Ni40IDIwLjgtNjQuMS02NC4xYy02LjItNi4yLTguNS0xNS4zLTYuMS0yMy43bDQwLTEzNiAuOC0yLjNjNC42LTExLjMgMTcuMS0xNy40IDI5LTEzLjkgMTEuOSAzLjUgMTkgMTUuNSAxNi44IDI3LjRsLS42IDIuNC0zNiAxMjIuMyA1MyA1M2MxLTQzLjMgMzYuNC03OC4xIDc5LjktNzguMXM3OC45IDM0LjggNzkuOSA3OC4ybDUzLjEtNTMuMS0zNi0xMjIuMy0uNi0yLjRjLTIuMi0xMiA0LjktMjMuOSAxNi44LTI3LjR6Il19LGEkZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJtb2JpbGUtcmV0cm8iLGljb246WzM4NCw1MTIsW10sImU1MjciLCJNMTYgNjRDMTYgMjguNyA0NC43IDAgODAgMEwzMDQgMGMzNS4zIDAgNjQgMjguNyA2NCA2NGwwIDM4NGMwIDM1LjMtMjguNyA2NC02NCA2NEw4MCA1MTJjLTM1LjMgMC02NC0yOC43LTY0LTY0TDE2IDY0em04MCA5NmwwIDY0YzAgMTcuNyAxNC4zIDMyIDMyIDMybDEyOCAwYzE3LjcgMCAzMi0xNC4zIDMyLTMybDAtNjRjMC0xNy43LTE0LjMtMzItMzItMzJsLTEyOCAwYy0xNy43IDAtMzIgMTQuMy0zMiAzMnptOCAxOTJhMjQgMjQgMCAxIDAgMC00OCAyNCAyNCAwIDEgMCAwIDQ4em0yNCA3MmMwLTEzLjMtMTAuNy0yNC0yNC0yNHMtMjQgMTAuNy0yNCAyNCAxMC43IDI0IDI0IDI0IDI0LTEwLjcgMjQtMjR6bTY0LTcyYTI0IDI0IDAgMSAwIDAtNDggMjQgMjQgMCAxIDAgMCA0OHptMjQgNzJjMC0xMy4zLTEwLjctMjQtMjQtMjRzLTI0IDEwLjctMjQgMjQgMTAuNyAyNCAyNCAyNCAyNC0xMC43IDI0LTI0em02NC03MmEyNCAyNCAwIDEgMCAwLTQ4IDI0IDI0IDAgMSAwIDAgNDh6bTI0IDcyYzAtMTMuMy0xMC43LTI0LTI0LTI0cy0yNCAxMC43LTI0IDI0IDEwLjcgMjQgMjQgMjQgMjQtMTAuNyAyNC0yNHpNMTY4IDQwYy0xMy4zIDAtMjQgMTAuNy0yNCAyNHMxMC43IDI0IDI0IDI0bDQ4IDBjMTMuMyAwIDI0LTEwLjcgMjQtMjRzLTEwLjctMjQtMjQtMjRsLTQ4IDB6Il19LGdGPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InNpZ25zLXBvc3QiLGljb246WzUxMiw1MTIsWyJtYXAtc2lnbnMiXSwiZjI3NyIsIk0yNTYuNCAwYy0xNy43IDAtMzIgMTQuMy0zMiAzMmwwIDMyLTE2MCAwYy0xNy43IDAtMzIgMTQuMy0zMiAzMmwwIDY0YzAgMTcuNyAxNC4zIDMyIDMyIDMybDE2MCAwIDAgNjQtMTUzLjQgMGMtNC4yIDAtOC4zIDEuNy0xMS4zIDQuN2wtNDggNDhjLTYuMiA2LjItNi4yIDE2LjQgMCAyMi42bDQ4IDQ4YzMgMyA3LjEgNC43IDExLjMgNC43bDE1My40IDAgMCA5NmMwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMybDAtOTYgMTYwIDBjMTcuNyAwIDMyLTE0LjMgMzItMzJsMC02NGMwLTE3LjctMTQuMy0zMi0zMi0zMmwtMTYwIDAgMC02NCAxNTMuNCAwYzQuMiAwIDguMy0xLjcgMTEuMy00LjdsNDgtNDhjNi4yLTYuMiA2LjItMTYuNCAwLTIyLjZsLTQ4LTQ4Yy0zLTMtNy4xLTQuNy0xMS4zLTQuN2wtMTUzLjQgMCAwLTMyYzAtMTcuNy0xNC4zLTMyLTMyLTMyeiJdfSxpJGU9Z0YsciRlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6Imdyb3VwLWFycm93cy1yb3RhdGUiLGljb246WzUxMiw1MTIsW10sImU0ZjYiLCJNMzcuNiAxMjIuM2MtMTEuNSAxOC43LTIwLjYgMzktMjcgNjAuNS01IDE2LjkgNC42IDM0LjggMjEuNSAzOS44czM0LjgtNC42IDM5LjgtMjEuNWMxOC40LTYxLjkgNjcuMy0xMTAuOCAxMjkuMi0xMjkuMiAxNi45LTUgMjYuNi0yMi45IDIxLjUtMzkuOFMxOTkuOCA1LjYgMTgyLjkgMTAuNkMxNjEuNCAxNyAxNDEuMSAyNi4xIDEyMi4zIDM3LjYgMTEyLjMgMTUuNCA4OS45IDAgNjQgMCAyOC43IDAgMCAyOC43IDAgNjQgMCA4OS45IDE1LjQgMTEyLjMgMzcuNiAxMjIuM3ptNDM2LjcgMGMyMi4yLTEwIDM3LjYtMzIuNCAzNy42LTU4LjMgMC0zNS4zLTI4LjctNjQtNjQtNjQtMjUuOSAwLTQ4LjMgMTUuNC01OC4zIDM3LjYtMTguNy0xMS41LTM5LTIwLjYtNjAuNS0yNy0xNi45LTUtMzQuOCA0LjYtMzkuOCAyMS41czQuNiAzNC44IDIxLjUgMzkuOGM2MS45IDE4LjQgMTEwLjggNjcuMyAxMjkuMiAxMjkuMiA1IDE2LjkgMjIuOSAyNi42IDM5LjggMjEuNXMyNi42LTIyLjkgMjEuNS0zOS44Yy02LjQtMjEuNS0xNS41LTQxLjgtMjctNjAuNXpNNTEyIDQ0OGMwLTI1LjktMTUuNC00OC4zLTM3LjYtNTguMyAxMS41LTE4LjcgMjAuNi0zOSAyNy02MC41IDUtMTYuOS00LjYtMzQuOC0yMS41LTM5LjhzLTM0LjggNC42LTM5LjggMjEuNWMtMTguNCA2MS45LTY3LjMgMTEwLjgtMTI5LjIgMTI5LjItMTYuOSA1LTI2LjYgMjIuOS0yMS41IDM5LjhzMjIuOSAyNi42IDM5LjggMjEuNWMyMS41LTYuNCA0MS44LTE1LjUgNjAuNS0yNyAxMCAyMi4yIDMyLjQgMzcuNiA1OC4zIDM3LjYgMzUuMyAwIDY0LTI4LjcgNjQtNjR6TTM3LjYgMzg5LjdjLTIyLjIgMTAtMzcuNiAzMi40LTM3LjYgNTguMyAwIDM1LjMgMjguNyA2NCA2NCA2NCAyNS45IDAgNDguMy0xNS40IDU4LjMtMzcuNiAxOC43IDExLjUgMzkgMjAuNiA2MC41IDI3IDE2LjkgNSAzNC44LTQuNiAzOS44LTIxLjVzLTQuNi0zNC44LTIxLjUtMzkuOGMtNjEuOS0xOC40LTExMC44LTY3LjMtMTI5LjItMTI5LjItNS0xNi45LTIyLjktMjYuNi0zOS44LTIxLjVTNS42IDMxMi4yIDEwLjYgMzI5LjFjNi40IDIxLjUgMTUuNSA0MS44IDI3IDYwLjV6TTI1NiAxOTJjMTUuNiAwIDMwIDUuNiA0MS4xIDE0LjlsLTE1LjMgMTUuM2MtNi42IDYuNi0xLjkgMTcuOCA3LjQgMTcuOGw2MC41IDBjNS43IDAgMTAuNC00LjcgMTAuNC0xMC40bDAtNjAuNWMwLTkuMy0xMS4yLTEzLjktMTcuOC03LjRsLTExLjIgMTEuMmMtMTkuOC0xNy45LTQ2LjItMjguOS03NS4xLTI4LjktNDMuNiAwLTgxLjMgMjQuOS05OS44IDYxLjEtNiAxMS44LTEuNCAyNi4zIDEwLjQgMzIuM3MyNi4zIDEuNCAzMi4zLTEwLjRjMTAuNi0yMC44IDMyLjItMzQuOSA1Ny0zNC45em01OC42IDkzLjFjLTEwLjYgMjAuOC0zMi4yIDM0LjktNTcgMzQuOS0xNS43IDAtMzAtNS42LTQxLjEtMTQuOWwxNS4zLTE1LjNjNi42LTYuNiAxLjktMTcuOC03LjQtMTcuOEwxNjQgMjcyYy01LjcgMC0xMC40IDQuNy0xMC40IDEwLjRsMCA2MC41YzAgOS4zIDExLjIgMTMuOSAxNy44IDcuNGwxMS4yLTExLjJjMTkuOCAxNy45IDQ2LjIgMjguOSA3NS4xIDI4LjkgNDMuNiAwIDgxLjMtMjQuOSA5OS44LTYxLjEgNi0xMS44IDEuNC0yNi4zLTEwLjQtMzIuM3MtMjYuMy0xLjQtMzIuMyAxMC40eiJdfSxzJGU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiYXJyb3dzLXNwbGl0LXVwLWFuZC1sZWZ0IixpY29uOls1MTIsNTEyLFtdLCJlNGJjIiwiTTM0Mi42LTIyLjZjLTEyLjUtMTIuNS0zMi44LTEyLjUtNDUuMyAwbC05NiA5NmMtMTIuNSAxMi41LTEyLjUgMzIuOCAwIDQ1LjNzMzIuOCAxMi41IDQ1LjMgMGw0MS40LTQxLjQgMCAxOTUuOWMtMTguOC0xMC45LTQwLjctMTcuMS02NC0xNy4xbC0xMTQuNyAwIDQxLjQtNDEuNGMxMi41LTEyLjUgMTIuNS0zMi44IDAtNDUuM3MtMzIuOC0xMi41LTQ1LjMgMGwtOTYgOTZjLTEyLjUgMTIuNS0xMi41IDMyLjggMCA0NS4zbDk2IDk2YzEyLjUgMTIuNSAzMi44IDEyLjUgNDUuMyAwczEyLjUtMzIuOCAwLTQ1LjNMMTA5LjMgMzIwIDIyNCAzMjBjMzUuMyAwIDY0IDI4LjcgNjQgNjQgMCA3MC43IDU3LjMgMTI4IDEyOCAxMjhsMzIgMGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMmwtMzIgMGMtMzUuMyAwLTY0LTI4LjctNjQtNjRsMC0zMDYuNyA0MS40IDQxLjRjMTIuNSAxMi41IDMyLjggMTIuNSA0NS4zIDBzMTIuNS0zMi44IDAtNDUuM2wtOTYtOTZ6Il19LG4kZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJmaWxsLWRyaXAiLGljb246WzU3Niw1MTIsW10sImY1NzYiLCJNMzA5LjcgNzEuNmwtNjQuNCA2NC40IDMzLjQgMzMuNGMxMi41IDEyLjUgMTIuNSAzMi44IDAgNDUuM3MtMzIuOCAxMi41LTQ1LjMgMGwtMzMuNC0zMy40LTk2LjQgOTYuNGMtMi45IDIuOS01LjEgNi41LTYuMyAxMC4zbDMyMS41IDAgNTMuNy01My43YzQuOS00LjkgNy42LTExLjUgNy42LTE4LjNzLTIuNy0xMy41LTcuNi0xOC4zTDM0Ni4zIDcxLjZDMzQxLjUgNjYuNyAzMzQuOSA2NCAzMjggNjRzLTEzLjUgMi43LTE4LjMgNy42ek01OC4zIDIzMi40bDk2LjQtOTYuNC00OS40LTQ5LjRjLTEyLjUtMTIuNS0xMi41LTMyLjggMC00NS4zczMyLjgtMTIuNSA0NS4zIDBMMjAwIDkwLjcgMjY0LjQgMjYuM0MyODEuMyA5LjUgMzA0LjEgMCAzMjggMHM0Ni43IDkuNSA2My42IDI2LjNMNTE3LjcgMTUyLjRDNTM0LjUgMTY5LjMgNTQ0IDE5Mi4xIDU0NCAyMTZzLTkuNSA0Ni43LTI2LjMgNjMuNkwzMTEuNiA0ODUuN0MyOTQuNyA1MDIuNSAyNzEuOSA1MTIgMjQ4IDUxMnMtNDYuNy05LjUtNjMuNi0yNi4zTDU4LjMgMzU5LjZDNDEuNSAzNDIuNyAzMiAzMTkuOSAzMiAyOTZzOS41LTQ2LjcgMjYuMy02My42ek01MTIgNTQ0Yy0zNS4zIDAtNjQtMjguNy02NC02NCAwLTI1LjIgMzIuNi03OS42IDUxLjItMTA4LjcgNi05LjQgMTkuNS05LjQgMjUuNSAwIDE4LjcgMjkuMSA1MS4yIDgzLjUgNTEuMiAxMDguNyAwIDM1LjMtMjguNyA2NC02NCA2NHoiXX0sbyRlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InNoaWVsZC1oZWFydCIsaWNvbjpbNTEyLDUxMixbXSwiZTU3NCIsIk0yNjkuNCAyLjlDMjY1LjIgMSAyNjAuNyAwIDI1NiAwcy05LjIgMS0xMy40IDIuOUw1NC4zIDgyLjhjLTIyIDkuMy0zOC40IDMxLTM4LjMgNTcuMiAuNSA5OS4yIDQxLjMgMjgwLjcgMjEzLjYgMzYzLjIgMTYuNyA4IDM2LjEgOCA1Mi44IDAgMTcyLjQtODIuNSAyMTMuMi0yNjQgMjEzLjYtMzYzLjIgLjEtMjYuMi0xNi4zLTQ3LjktMzguMy01Ny4yTDI2OS40IDIuOXpNMjQ5LjYgMTgzLjVsNi40IDguNSA2LjQtOC41YzExLjEtMTQuOCAyOC41LTIzLjUgNDYuOS0yMy41IDMyLjQgMCA1OC43IDI2LjMgNTguNyA1OC43bDAgNS4zYzAgNDkuMS02NS44IDk4LjEtOTYuNSAxMTguMy05LjUgNi4yLTIxLjUgNi4yLTMwLjkgMC0zMC43LTIwLjItOTYuNS02OS4zLTk2LjUtMTE4LjNsMC01LjNjMC0zMi40IDI2LjMtNTguNyA1OC43LTU4LjcgMTguNSAwIDM1LjkgOC43IDQ2LjkgMjMuNXoiXX0sYkY9e3ByZWZpeDoiZmFzIixpY29uTmFtZToicGVyc29uLXNraWluZy1ub3JkaWMiLGljb246WzU3Niw1MTIsWyJza2lpbmctbm9yZGljIl0sImY3Y2EiLCJNNDI0LjggMTZhNTYgNTYgMCAxIDEgMCAxMTIgNTYgNTYgMCAxIDEgMC0xMTJ6bTk5LjggMTkzLjdjNy42IDE1LjIgMS45IDMzLjYtMTIuNiA0MmwwIDE4MC4zLTMyIDAgMC0xNjQuMi0xMC4xIDVjLTI3LjQgMTMuNy02MC43IDYuMS03OS40LTE4LjJsLTE5LjYtMjUuNS0zOS41IDY4LjggMjQuOCAxMi40YzI5LjUgMTQuNyA0Mi45IDQ5LjUgMzEuMSA4MC4ybC0yOC4yIDczLjQgMTQ5LjQgMGM3LjkgMCAxNS42LTIuMyAyMi4yLTYuN2w3LjktNS4zYzExLTcuNCAyNS45LTQuNCAzMy4zIDYuN3M0LjQgMjUuOS02LjcgMzMuM2wtNy45IDUuM0M1NDMgNTA2LjkgNTI2IDUxMiA1MDguNiA1MTJsLTE4OS4xIDBjLS41IDAtMSAwLTEuNSAwTDI0IDUxMmMtMTMuMyAwLTI0LTEwLjctMjQtMjRzMTAuNy0yNCAyNC0yNGw4OCAwYzAtOC4yIDMuMS0xNi40IDkuNC0yMi42bDc0LjEtNzQuMSAxMC4yLTM1LjljMTEuMyAxOC4zIDI3LjcgMzMuOCA0OC40IDQ0LjJsNC44IDIuNC0xLjkgNi44Yy0zIDEwLjUtOC42IDIwLTE2LjMgMjcuN2wtNTEuNSA1MS41IDEwMS4zIDAgMzcuMS05Ni40LTU1LjYtMjcuOEMyMzAuNCAzMTkgMjE1LjMgMjY3IDIzOS4zIDIyNy4xbDM3LjctNjIuNy0yNy43LTcuN2MtOS0yLjUtMTguMSAzLjItMjAgMTIuM2wtNS45IDI5LjNjLTMuMSAxNS42LTE3LjEgMjYuMy0zMi41IDI1LjdsLTEzMCAyMDgtMzcuNyAwIDE0MC42LTIyNWMtMy40LTYuMy00LjYtMTMuOC0zLjEtMjEuM2w1LjktMjkuM2M5LjEtNDUuNiA1NS4xLTczLjggOTkuOS02MS40bDMyLjUgOWM0Ni43IDEzIDg4IDQwLjggMTE3LjYgNzkuM2wyNC45IDMyLjMgNDAuNC0yMC4yYzE1LjgtNy45IDM1LTEuNSA0Mi45IDE0LjN6Il19LGwkZT1iRix2Rj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJzcXVhcmUtY2hlY2siLGljb246WzQ0OCw1MTIsWzk3NDUsOTk4OSw2MTUxMCwiY2hlY2stc3F1YXJlIl0sImYxNGEiLCJNMzg0IDMyYzM1LjMgMCA2NCAyOC43IDY0IDY0bDAgMzIwYzAgMzUuMy0yOC43IDY0LTY0IDY0TDY0IDQ4MGMtMzUuMyAwLTY0LTI4LjctNjQtNjRMMCA5NkMwIDYwLjcgMjguNyAzMiA2NCAzMmwzMjAgMHpNMzQyIDE0NS43Yy0xMC43LTcuOC0yNS43LTUuNC0zMy41IDUuM0wxODkuMSAzMTUuMiAxMzcgMjYzLjFjLTkuNC05LjQtMjQuNi05LjQtMzMuOSAwcy05LjQgMjQuNiAwIDMzLjlsNzIgNzJjNSA1IDExLjkgNy41IDE4LjggN3MxMy40LTQuMSAxNy41LTkuOEwzNDcuMyAxNzkuMmM3LjgtMTAuNyA1LjQtMjUuNy01LjMtMzMuNXoiXX0sYyRlPXZGLHlGPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImJhdGgiLGljb246WzUxMiw1MTIsWzEyODcwNSwiYmF0aHR1YiJdLCJmMmNkIiwiTTk2IDc3LjNjMC03LjMgNS45LTEzLjMgMTMuMy0xMy4zIDMuNSAwIDYuOSAxLjQgOS40IDMuOWwxNC45IDE0LjljLTMuNiA5LjEtNS41IDE4LjktNS41IDI5LjIgMCAxOS45IDcuMiAzOCAxOS4yIDUyLTUuMyA5LjItNCAyMS4xIDMuOCAyOSA5LjQgOS40IDI0LjYgOS40IDMzLjkgMEwyODkgODljOS40LTkuNCA5LjQtMjQuNiAwLTMzLjktNy44LTcuOS0xOS44LTkuMS0yOS0zLjgtMTQtMTItMzIuMS0xOS4yLTUyLTE5LjItMTAuMyAwLTIwLjIgMi0yOS4yIDUuNUwxNjMuOSAyMi42QzE0OS40IDguMSAxMjkuNyAwIDEwOS4zIDAgNjYuNiAwIDMyIDM0LjYgMzIgNzcuM0wzMiAyNTZjLTE3LjcgMC0zMiAxNC4zLTMyIDMyczE0LjMgMzIgMzIgMzJsMCA0OGMwIDI4LjQgMTIuNCA1NCAzMiA3MS42TDY0IDQ4MGMwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMybDAtMTYgMjU2IDAgMCAxNmMwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMybDAtNDAuNGMxOS42LTE3LjYgMzItNDMuMSAzMi03MS42bDAtNDhjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJMOTYgMjU2IDk2IDc3LjN6Il19LGQkZT15RixoJGU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiY2hlc3MtYmlzaG9wIixpY29uOlszMjAsNTEyLFs5ODIxXSwiZjQzYSIsIk02NCAzODRMNDguMyAzNjguM0MxNy40IDMzNy40IDAgMjk1LjQgMCAyNTEuNyAwIDIxMy4xIDEzLjUgMTc1LjggMzguMiAxNDYuMUwxMDYuNyA2NCA5NiA2NEM3OC4zIDY0IDY0IDQ5LjcgNjQgMzJTNzguMyAwIDk2IDBMMjI0IDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJsLTEwLjcgMCA0Ny42IDU3LjEtODUuOSA4NS45Yy05LjQgOS40LTkuNCAyNC42IDAgMzMuOXMyNC42IDkuNCAzMy45IDBsODIuMy04Mi4zYzE4LjcgMjcuMyAyOC43IDU5LjcgMjguNyA5MyAwIDQzLjctMTcuNCA4NS43LTQ4LjMgMTE2LjZMMjU2IDM4NCAzMTIuMiA0NTQuM2M1IDYuMyA3LjggMTQuMSA3LjggMjIuMiAwIDE5LjYtMTUuOSAzNS41LTM1LjUgMzUuNUwzNS41IDUxMmMtMTkuNiAwLTM1LjUtMTUuOS0zNS41LTM1LjUgMC04LjEgMi43LTE1LjkgNy44LTIyLjJMNjQgMzg0eiJdfSx4Rj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJwcmVzY3JpcHRpb24tYm90dGxlLW1lZGljYWwiLGljb246WzM4NCw1MTIsWyJwcmVzY3JpcHRpb24tYm90dGxlLWFsdCJdLCJmNDg2IiwiTTAgMzJDMCAxNC4zIDE0LjMgMCAzMiAwTDM1MiAwYzE3LjcgMCAzMiAxNC4zIDMyIDMybDAgMzJjMCAxNy43LTE0LjMgMzItMzIgMzJMMzIgOTZDMTQuMyA5NiAwIDgxLjcgMCA2NEwwIDMyek0zMiAxNDRsMzIwIDAgMCAzMDRjMCAzNS4zLTI4LjcgNjQtNjQgNjRMOTYgNTEyYy0zNS4zIDAtNjQtMjguNy02NC02NGwwLTMwNHpNMTYwIDI0OGwwIDQwLTQwIDBjLTguOCAwLTE2IDcuMi0xNiAxNmwwIDMyYzAgOC44IDcuMiAxNiAxNiAxNmw0MCAwIDAgNDBjMCA4LjggNy4yIDE2IDE2IDE2bDMyIDBjOC44IDAgMTYtNy4yIDE2LTE2bDAtNDAgNDAgMGM4LjggMCAxNi03LjIgMTYtMTZsMC0zMmMwLTguOC03LjItMTYtMTYtMTZsLTQwIDAgMC00MGMwLTguOC03LjItMTYtMTYtMTZsLTMyIDBjLTguOCAwLTE2IDcuMi0xNiAxNnoiXX0scCRlPXhGLHdGPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImRyYXctcG9seWdvbiIsaWNvbjpbNTEyLDUxMixbNTgwNTUsInZlY3Rvci1wb2x5Z29uIl0sImY1ZWUiLCJNNjQgMGMyMy43IDAgNDQuNCAxMi45IDU1LjQgMzJsMjczLjEgMGMxMS4xLTE5LjEgMzEuNy0zMiA1NS40LTMyIDM1LjMgMCA2NCAyOC43IDY0IDY0IDAgMzQtMjYuNSA2MS44LTYwIDYzLjlsLTIuMSAyLjktNzEuNSA5OS4xYzMuNiA4IDUuNiAxNi45IDUuNiAyNi4ycy0yIDE4LjItNS42IDI2LjJsMi4yIDMuMSA2OS4zIDk2IDIuMSAyLjljMzMuNSAyLjEgNjAgMjkuOSA2MCA2My45IDAgMzUuMy0yOC43IDY0LTY0IDY0LTIzLjcgMC00NC40LTEyLjktNTUuNC0zMmwtMjczLjEgMGMtMTEuMSAxOS4xLTMxLjcgMzItNTUuNCAzMi0zNS4zIDAtNjQtMjguNy02NC02NCAwLTIzLjcgMTIuOS00NC40IDMyLTU1LjRsMC0yNzMuMUMxMi45IDEwOC40IDAgODcuNyAwIDY0IDAgMjguNyAyOC43IDAgNjQgMHpNMzk0LjIgNDEzLjRsLTY1LjUtOTAuNi0yLjItMy4xYy0yLjEgLjItNC4zIC4zLTYuNSAuMy0zNS4zIDAtNjQtMjguNy02NC02NHMyOC43LTY0IDY0LTY0YzIuMiAwIDQuNCAuMSA2LjUgLjNsNjcuNy05My43Yy0uNi0uOS0xLjEtMS43LTEuNi0yLjZMMTE5LjQgOTZjLTUuNiA5LjctMTMuNyAxNy44LTIzLjQgMjMuNGwwIDI3My4xYzkuNyA1LjYgMTcuOCAxMy43IDIzLjQgMjMuNGwyNzMuMSAwYy41LS45IDEuMS0xLjggMS42LTIuNnoiXX0sdSRlPXdGLGYkZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJpLWN1cnNvciIsaWNvbjpbMjU2LDUxMixbXSwiZjI0NiIsIk0uMSAyOS4zQy0xLjQgNDcgMTEuNyA2Mi40IDI5LjMgNjMuOWw4IC43QzcwLjUgNjcuMyA5NiA5NSA5NiAxMjguM2wwIDk1LjctMzIgMGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJzMTQuMyAzMiAzMiAzMmwzMiAwIDAgOTUuN2MwIDMzLjMtMjUuNSA2MS01OC43IDYzLjhsLTggLjdDMTEuNyA0NDkuNi0xLjQgNDY1IC4xIDQ4Mi43UzE3IDUxMy40IDM0LjcgNTExLjlsOC0uN2MzNC4xLTIuOCA2NC4yLTE4LjkgODUuNC00Mi45IDIxLjIgMjQgNTEuMiA0MCA4NS40IDQyLjlsOCAuN2MxNy42IDEuNSAzMy4xLTExLjYgMzQuNS0yOS4ycy0xMS42LTMzLjEtMjkuMi0zNC41bC04LS43QzE4NS41IDQ0NC43IDE2MCA0MTcgMTYwIDM4My43bDAtOTUuNyAzMiAwYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMybC0zMiAwIDAtOTUuN2MwLTMzLjMgMjUuNS02MSA1OC43LTYzLjhsOC0uN2MxNy42LTEuNSAzMC43LTE2LjkgMjkuMi0zNC41UzIzOS0xLjQgMjIxLjMgLjFsLTggLjdjLTM0LjEgMi44LTY0LjIgMTguOS04NS40IDQyLjktMjEuMi0yNC01MS4yLTQwLTg1LjQtNDIuOWwtOC0uN0MxNy0xLjQgMS42IDExLjcgLjEgMjkuM3oiXX0sbSRlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImhlYXJ0LWNpcmNsZS1wbHVzIixpY29uOls1NzYsNTEyLFtdLCJlNTAwIiwiTTI0MSA4Ny4xbDE1IDIwLjcgMTUtMjAuN0MyOTYgNTIuNSAzMzYuMiAzMiAzNzguOSAzMiA0NTIuNCAzMiA1MTIgOTEuNiA1MTIgMTY1LjFsMCAyLjZjMCAxNy42LTMuNCAzNS42LTkuNSA1My43LTIxLjgtOC42LTQ1LjYtMTMuNC03MC41LTEzLjQtMTA2IDAtMTkyIDg2LTE5MiAxOTIgMCAyOC41IDYuMiA1NS42IDE3LjQgODAtLjUgMC0uOSAwLTEuNCAwLTE1LjUgMC0zMC44LTQuNi00My4xLTE0LjEtNzMtNTUuNy0yMTIuOS0xODYtMjEyLjktMjk4LjJsMC0yLjZDMCA5MS42IDU5LjYgMzIgMTMzLjEgMzIgMTc1LjggMzIgMjE2IDUyLjUgMjQxIDg3LjF6TTQzMiAyNTZhMTQ0IDE0NCAwIDEgMSAwIDI4OCAxNDQgMTQ0IDAgMSAxIDAtMjg4em0xNiA4MGMwLTguOC03LjItMTYtMTYtMTZzLTE2IDcuMi0xNiAxNmwwIDQ4LTQ4IDBjLTguOCAwLTE2IDcuMi0xNiAxNnM3LjIgMTYgMTYgMTZsNDggMCAwIDQ4YzAgOC44IDcuMiAxNiAxNiAxNnMxNi03LjIgMTYtMTZsMC00OCA0OCAwYzguOCAwIDE2LTcuMiAxNi0xNnMtNy4yLTE2LTE2LTE2bC00OCAwIDAtNDh6Il19LGckZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJzaGllbGQtZG9nIixpY29uOls1MTIsNTEyLFtdLCJlNTczIiwiTTI2OS40IDIuOUMyNjUuMiAxIDI2MC43IDAgMjU2IDBzLTkuMiAxLTEzLjQgMi45TDU0LjMgODIuOGMtMjIgOS4zLTM4LjQgMzEtMzguMyA1Ny4yIC41IDk5LjIgNDEuMyAyODAuNyAyMTMuNiAzNjMuMiAxNi43IDggMzYuMSA4IDUyLjggMCAxNzIuNC04Mi41IDIxMy4yLTI2NCAyMTMuNi0zNjMuMiAuMS0yNi4yLTE2LjMtNDcuOS0zOC4zLTU3LjJMMjY5LjQgMi45ek0xNjAuOSAyODYuMmM0LjggMS4yIDkuOSAxLjggMTUuMSAxLjggMzUuMyAwIDY0LTI4LjcgNjQtNjRsMC02NCA0NC4yIDBjMTIuMSAwIDIzLjIgNi44IDI4LjYgMTcuN2w3LjIgMTQuMyA2NCAwYzguOCAwIDE2IDcuMiAxNiAxNmwwIDMyYzAgNDQuMi0zNS44IDgwLTgwIDgwbC00OCAwIDAgNTAuN2MwIDcuMy01LjkgMTMuMy0xMy4zIDEzLjMtMS44IDAtMy42LS40LTUuMi0xLjFsLTk4LjctNDIuM2MtNi42LTIuOC0xMC44LTkuMy0xMC44LTE2LjQgMC0yLjggLjYtNS41IDEuOS04bDE1LTMwek0xNjAgMTYwbDQ4IDAgMCA2NGMwIDE3LjctMTQuMyAzMi0zMiAzMnMtMzItMTQuMy0zMi0zMmwwLTQ4YzAtOC44IDcuMi0xNiAxNi0xNnptMTI4IDQ4YTE2IDE2IDAgMSAwIC0zMiAwIDE2IDE2IDAgMSAwIDMyIDB6Il19LGIkZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJncmVhdGVyLXRoYW4tZXF1YWwiLGljb246WzQ0OCw1MTIsW10sImY1MzIiLCJNMjEuOSA5NC40QzUuMSA4OC44LTMuOSA3MC42IDEuNyA1My45UzI1LjQgMjguMSA0Mi4xIDMzLjZsMzg0IDEyOEM0MzkuMiAxNjYgNDQ4IDE3OC4yIDQ0OCAxOTJzLTguOCAyNi0yMS45IDMwLjRsLTM4NCAxMjhjLTE2LjggNS42LTM0LjktMy41LTQwLjUtMjAuMnMzLjUtMzQuOSAyMC4yLTQwLjVMMzE0LjggMTkyIDIxLjkgOTQuNHpNNDE2IDQxNmMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMkwzMiA0ODBjLTE3LjcgMC0zMi0xNC4zLTMyLTMyczE0LjMtMzIgMzItMzJsMzg0IDB6Il19LHYkZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJlbnZlbG9wZS1vcGVuIixpY29uOls1MTIsNTEyLFs2MjEzNV0sImYyYjYiLCJNNjQuNCAxNzUuOEwyNTYgMzMuOSA0NDcuNiAxNzUuOCAyODkuNSAyOTNjLTkuNyA3LjItMjEuNCAxMS0zMy41IDExcy0yMy44LTMuOS0zMy41LTExTDY0LjQgMTc1Ljh6TTI1Ni0zMmMtMTIuMSAwLTIzLjggMy45LTMzLjUgMTFMMjUuOSAxMjQuN0M5LjYgMTM2LjggMCAxNTUuOCAwIDE3Ni4xTDAgNDE2YzAgMzUuMyAyOC43IDY0IDY0IDY0bDM4NCAwYzM1LjMgMCA2NC0yOC43IDY0LTY0bDAtMjM5LjljMC0yMC4zLTkuNi0zOS40LTI1LjktNTEuNEwyODkuNS0yMWMtOS43LTcuMi0yMS40LTExLTMzLjUtMTF6Il19LHkkZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJtb3VuZCIsaWNvbjpbNTEyLDUxMixbXSwiZTUyZCIsIk0xMTIuNCAxNzkuMkMxNDIgMTI3LjcgMTk2LjggOTYgMjU2LjIgOTZzMTE0LjIgMzEuNyAxNDMuOSA4My4yTDUwOC43IDM2OGMxMi4zIDIxLjMtMy4xIDQ4LTI3LjcgNDhMMzEuNSA0MTZjLTI0LjYgMC00MC0yNi42LTI3LjctNDhMMTEyLjQgMTc5LjJ6Il19LHgkZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJ2b2ljZW1haWwiLGljb246WzY0MCw1MTIsW10sImY4OTciLCJNMTQ0IDE2MGE4MCA4MCAwIDEgMSAwIDE2MCA4MCA4MCAwIDEgMSAwLTE2MHpNMjYzLjggMzIwYzE1LjMtMjIuOSAyNC4yLTUwLjQgMjQuMi04MCAwLTc5LjUtNjQuNS0xNDQtMTQ0LTE0NFMwIDE2MC41IDAgMjQwIDY0LjUgMzg0IDE0NCAzODRsMzUyIDBjNzkuNSAwIDE0NC02NC41IDE0NC0xNDRTNTc1LjUgOTYgNDk2IDk2IDM1MiAxNjAuNSAzNTIgMjQwYzAgMjkuNiA4LjkgNTcuMSAyNC4yIDgwbC0xMTIuNSAwek00OTYgMTYwYTgwIDgwIDAgMSAxIDAgMTYwIDgwIDgwIDAgMSAxIDAtMTYweiJdfSx3JGU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToidmVzdCIsaWNvbjpbNDQ4LDUxMixbXSwiZTA4NSIsIk0yMDAgNDY0bDAtMTcwLjFjMC0zLjktLjUtNy44LTEuNC0xMS42TDE0NC40IDY1LjRDMTYyLjEgNzcuMiAxODguMiA4OCAyMjQgODhzNjEuOS0xMC44IDc5LjYtMjIuNkwyNDkuNCAyODIuM2MtMSAzLjgtMS40IDcuNy0xLjQgMTEuNkwyNDggNDY0YzAgMjYuNSAyMS41IDQ4IDQ4IDQ4bDEwNCAwYzI2LjUgMCA0OC0yMS41IDQ4LTQ4bDAtMTkzLjVjMC05LjUtMi44LTE4LjctOC4xLTI2LjZsLTQ3LjktNzEuOGMtNS4zLTcuOS04LjEtMTcuMS04LjEtMjYuNkwzODQgNDhjMC0yNi41LTIxLjUtNDgtNDgtNDhsLTMuNSAwYy0uMyAwLS42IDAtMSAwLS42IDAtMS4yIDAtMS44IDAtMTguOCAwLTM0LjEgOS43LTQ0LjEgMTguOC05LjMgOC40LTI4LjUgMjEuMi02MS43IDIxLjJzLTUyLjQtMTIuOC02MS43LTIxLjJjLTEwLTkuMS0yNS4zLTE4LjgtNDQuMS0xOC44LS42IDAtMS4yIDAtMS44IDAtLjMgMC0uNiAwLTEgMEwxMTIgMEM4NS41IDAgNjQgMjEuNSA2NCA0OGwwIDk3LjVjMCA5LjUtMi44IDE4LjctOC4xIDI2LjZMOC4xIDI0My45QzIuOCAyNTEuOCAwIDI2MS4xIDAgMjcwLjVMMCA0NjRjMCAyNi41IDIxLjUgNDggNDggNDhsMTA0IDBjMjYuNSAwIDQ4LTIxLjUgNDgtNDh6Il19LE0kZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJhdWRpby1kZXNjcmlwdGlvbiIsaWNvbjpbNTEyLDUxMixbXSwiZjI5ZSIsIk0wIDEyOEMwIDkyLjcgMjguNyA2NCA2NCA2NGwzODQgMGMzNS4zIDAgNjQgMjguNyA2NCA2NGwwIDI1NmMwIDM1LjMtMjguNyA2NC02NCA2NEw2NCA0NDhjLTM1LjMgMC02NC0yOC43LTY0LTY0TDAgMTI4em05NiA5NmwwIDEwNGMwIDEzLjMgMTAuNyAyNCAyNCAyNHMyNC0xMC43IDI0LTI0bDAtMjQgNDggMCAwIDI0YzAgMTMuMyAxMC43IDI0IDI0IDI0czI0LTEwLjcgMjQtMjRsMC0xMDRjMC0zNS4zLTI4LjctNjQtNjQtNjRsLTE2IDBjLTM1LjMgMC02NCAyOC43LTY0IDY0em00OCAzMmwwLTMyYzAtOC44IDcuMi0xNiAxNi0xNmwxNiAwYzguOCAwIDE2IDcuMiAxNiAxNmwwIDMyLTQ4IDB6bTE1Mi05NmMtMTMuMyAwLTI0IDEwLjctMjQgMjRsMCAxNDRjMCAxMy4zIDEwLjcgMjQgMjQgMjRsNDggMGMzOS44IDAgNzItMzIuMiA3Mi03MmwwLTQ4YzAtMzkuOC0zMi4yLTcyLTcyLTcybC00OCAwem00OCAxNDRsLTI0IDAgMC05NiAyNCAwYzEzLjMgMCAyNCAxMC43IDI0IDI0bDAgNDhjMCAxMy4zLTEwLjcgMjQtMjQgMjR6Il19LHokZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJ3IixpY29uOls1NzYsNTEyLFsxMTldLCI1NyIsIk0yMC44IDM0YzE2LjUtNi4yIDM1IDIuMiA0MS4yIDE4LjdMMTcyLjIgMzQ2LjcgMjU3LjMgNTVjNC0xMy43IDE2LjUtMjMgMzAuNy0yM3MyNi43IDkuNCAzMC43IDIzTDQwMy44IDM0Ni43IDUxNCA1Mi44YzYuMi0xNi41IDI0LjYtMjQuOSA0MS4yLTE4LjdTNTgwLjIgNTguNyA1NzQgNzUuMmwtMTQ0IDM4NGMtNC44IDEyLjktMTcuNCAyMS4zLTMxLjIgMjAuN3MtMjUuNy05LjgtMjkuNS0yM0wyODggMTc4LjMgMjA2LjcgNDU3Yy0zLjkgMTMuMi0xNS44IDIyLjUtMjkuNSAyM3MtMjYuMy03LjgtMzEuMi0yMC43TDIgNzUuMkMtNC4yIDU4LjcgNC4yIDQwLjIgMjAuOCAzNHoiXX0saG09e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZXllLWRyb3BwZXIiLGljb246WzUxMiw1MTIsWyJleWUtZHJvcHBlci1lbXB0eSIsImV5ZWRyb3BwZXIiXSwiZjFmYiIsIk0zNDEuNiAyOS4ybC0xMDEuNiAxMDEuNi05LjQtOS40Yy0xMi41LTEyLjUtMzIuOC0xMi41LTQ1LjMgMHMtMTIuNSAzMi44IDAgNDUuM2wxNjAgMTYwYzEyLjUgMTIuNSAzMi44IDEyLjUgNDUuMyAwczEyLjUtMzIuOCAwLTQ1LjNsLTkuNC05LjQgMTAxLjYtMTAxLjZjMzktMzkgMzktMTAyLjIgMC0xNDEuMXMtMTAyLjItMzktMTQxLjEgMHpNNTUuNCAzMjMuM2MtMTUgMTUtMjMuNCAzNS40LTIzLjQgNTYuNmwwIDQyLjQtMjYuNiAzOS45Yy04LjUgMTIuNy02LjggMjkuNiA0IDQwLjRzMjcuNyAxMi41IDQwLjQgNGwzOS45LTI2LjYgNDIuNCAwYzIxLjIgMCA0MS42LTguNCA1Ni42LTIzLjRsMTA5LjQtMTA5LjQtNDUuMy00NS4zLTEwOS40IDEwOS40Yy0zIDMtNy4xIDQuNy0xMS4zIDQuN2wtMzYuMSAwIDAtMzYuMWMwLTQuMiAxLjctOC4zIDQuNy0xMS4zbDEwOS40LTEwOS40LTQ1LjMtNDUuMy0xMDkuNCAxMDkuNHoiXX0sayRlPWhtLFMkZT1obSxmbD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJjaXJjbGUteG1hcmsiLGljb246WzUxMiw1MTIsWzYxNTMyLCJ0aW1lcy1jaXJjbGUiLCJ4bWFyay1jaXJjbGUiXSwiZjA1NyIsIk0yNTYgNTEyYTI1NiAyNTYgMCAxIDAgMC01MTIgMjU2IDI1NiAwIDEgMCAwIDUxMnpNMTY3IDE2N2M5LjQtOS40IDI0LjYtOS40IDMzLjkgMGw1NSA1NSA1NS01NWM5LjQtOS40IDI0LjYtOS40IDMzLjkgMHM5LjQgMjQuNiAwIDMzLjlsLTU1IDU1IDU1IDU1YzkuNCA5LjQgOS40IDI0LjYgMCAzMy45cy0yNC42IDkuNC0zMy45IDBsLTU1LTU1LTU1IDU1Yy05LjQgOS40LTI0LjYgOS40LTMzLjkgMHMtOS40LTI0LjYgMC0zMy45bDU1LTU1LTU1LTU1Yy05LjQtOS40LTkuNC0yNC42IDAtMzMuOXoiXX0sQyRlPWZsLF8kZT1mbCxUJGU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToidHJhaWxlciIsaWNvbjpbNjQwLDUxMixbXSwiZTA0MSIsIk0zMiA5NmMwLTM1LjMgMjguNy02NCA2NC02NGwzODQgMGMzNS4zIDAgNjQgMjguNyA2NCA2NGwwIDI1NiA2NCAwYzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMybC0yOTYuNCAwYy4yIDIuNiAuNCA1LjMgLjQgOCAwIDQ4LjYtMzkuNCA4OC04OCA4OHMtODgtMzkuNC04OC04OGMwLTIuNyAuMS01LjQgLjQtOEw5NiA0MTZjLTM1LjMgMC02NC0yOC43LTY0LTY0TDMyIDk2em00MDggMTZjLTEzLjMgMC0yNCAxMC43LTI0IDI0bDAgMTYwYzAgMTMuMyAxMC43IDI0IDI0IDI0czI0LTEwLjcgMjQtMjRsMC0xNjBjMC0xMy4zLTEwLjctMjQtMjQtMjR6TTExMiAxMzZsMCAxNjBjMCAxMy4zIDEwLjcgMjQgMjQgMjRzMjQtMTAuNyAyNC0yNGwwLTE2MGMwLTEzLjMtMTAuNy0yNC0yNC0yNHMtMjQgMTAuNy0yNCAyNHptMTc2LTI0Yy0xMy4zIDAtMjQgMTAuNy0yNCAyNGwwIDE2MGMwIDEzLjMgMTAuNyAyNCAyNCAyNHMyNC0xMC43IDI0LTI0bDAtMTYwYzAtMTMuMy0xMC43LTI0LTI0LTI0ek0yNjQgNDI0YTQwIDQwIDAgMSAwIC04MCAwIDQwIDQwIDAgMSAwIDgwIDB6Il19LHBtPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InR1cmtpc2gtbGlyYS1zaWduIixpY29uOls0NDgsNTEyLFsidHJ5IiwidHVya2lzaC1saXJhIl0sImUyYmIiLCJNMTYwIDMyYzE3LjcgMCAzMiAxNC4zIDMyIDMybDAgNDMuNiAxMjEuNC0zNC43YzEyLjctMy42IDI2IDMuNyAyOS43IDE2LjVzLTMuNyAyNi0xNi41IDI5LjdsLTEzNC42IDM4LjUgMCA0Ni4xIDEyMS40LTM0LjdjMTIuNy0zLjYgMjYgMy43IDI5LjcgMTYuNXMtMy43IDI2LTE2LjUgMjkuN2wtMTM0LjYgMzguNSAwIDE2Mi41IDcyIDBjNTMgMCA5Ni00MyA5Ni05NiAwLTE3LjcgMTQuMy0zMiAzMi0zMnMzMiAxNC4zIDMyIDMyYzAgODguNC03MS42IDE2MC0xNjAgMTYwbC0xMDQgMGMtMTcuNyAwLTMyLTE0LjMtMzItMzJsMC0xNzYuMi0yNS40IDcuM2MtMTIuNyAzLjYtMjYtMy43LTI5LjctMTYuNXMzLjctMjYgMTYuNS0yOS43bDM4LjYtMTEgMC00Ni4xLTI1LjQgNy4zYy0xMi43IDMuNi0yNi0zLjctMjkuNy0xNi41czMuNy0yNiAxNi41LTI5LjdsMzguNi0xMSAwLTYxLjljMC0xNy43IDE0LjMtMzIgMzItMzJ6Il19LEwkZT1wbSwkJGU9cG0sQSRlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InZvbGNhbm8iLGljb246WzUxMiw1MTIsWzEyNzc1NV0sImY3NzAiLCJNMTYwIDE0NGMtMzUuMyAwLTY0LTI4LjctNjQtNjRzMjguNy02NCA2NC02NGMxNS43IDAgMzAgNS42IDQxLjIgMTUgMTEuMi0xOC42IDMxLjYtMzEgNTQuOC0zMXM0My42IDEyLjQgNTQuOCAzMWMxMS4xLTkuNCAyNS41LTE1IDQxLjItMTUgMzUuMyAwIDY0IDI4LjcgNjQgNjRzLTI4LjcgNjQtNjQgNjRjLTE0LjcgMC0yOC4zLTUtMzkuMS0xMy4zbC0zMiA0OEMyNzUuMyAxODcgMjY2IDE5MiAyNTYgMTkycy0xOS4zLTUtMjQuOS0xMy4zbC0zMi00OEMxODguMyAxMzkgMTc0LjcgMTQ0IDE2MCAxNDR6TTE0NCAzNTJsNDguNC0yNC4yYzEwLjItNS4xIDIxLjYtNy44IDMzLTcuOCAxOS42IDAgMzguNCA3LjggNTIuMiAyMS42bDMyLjUgMzIuNWM2LjMgNi4zIDE0LjkgOS45IDIzLjggOS45IDExLjMgMCAyMS44LTUuNiAyOC0xNWw5LjctMTQuNi01OS02Ni4zYy05LjEtMTAuMi0yMi4yLTE2LjEtMzUuOS0xNi4xbC00MS44IDBjLTEzLjcgMC0yNi44IDUuOS0zNS45IDE2LjFsLTU5LjkgNjcuNCA0LjctMy41em0xOS40LTk1LjhjMTguMi0yMC41IDQ0LjMtMzIuMiA3MS44LTMyLjJsNDEuOCAwYzI3LjQgMCA1My41IDExLjcgNzEuOCAzMi4ybDE1MC4yIDE2OWM4LjUgOS41IDEzLjIgMjEuOSAxMy4yIDM0LjcgMCAyOC44LTIzLjQgNTIuMi01Mi4yIDUyLjJMNTIuMiA1MTJDMjMuNCA1MTIgMCA0ODguNiAwIDQ1OS44IDAgNDQ3LjEgNC43IDQzNC43IDEzLjIgNDI1LjJsMTUwLjItMTY5eiJdfSxEJGU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToid2FuZC1zcGFya2xlcyIsaWNvbjpbNTEyLDUxMixbXSwiZjcyYiIsIk00NjQgNi4xYzkuNS04LjUgMjQtOC4xIDMzIC45bDggOGM5IDkgOS40IDIzLjUgLjkgMzNsLTg1LjggOTUuOWMtMi42IDIuOS00LjEgNi43LTQuMSAxMC43bDAgMjEuNGMwIDguOC03LjIgMTYtMTYgMTZsLTE1LjggMGMtNC42IDAtOC45IDEuOS0xMS45IDUuM0wxMDAuNyA1MDAuOWMtNi4zIDcuMS0xNS4zIDExLjEtMjQuOCAxMS4xLTguOCAwLTE3LjMtMy41LTIzLjUtOS44TDkuNyA0NTkuN2MtNi4yLTYuMi05LjctMTQuNy05LjctMjMuNSAwLTkuNSA0LTE4LjUgMTEuMS0yNC44bDExMS42LTk5LjhjMy40LTMgNS4zLTcuNCA1LjMtMTEuOWwwLTI3LjZjMC04LjggNy4yLTE2IDE2LTE2bDM0LjYgMGMzLjkgMCA3LjctMS41IDEwLjctNC4xTDQ2NCA2LjF6TTQzMiAyODhjMy42IDAgNi43IDIuNCA3LjcgNS44bDE0LjggNTEuNyA1MS43IDE0LjhjMy40IDEgNS44IDQuMSA1LjggNy43cy0yLjQgNi43LTUuOCA3LjdsLTUxLjcgMTQuOC0xNC44IDUxLjdjLTEgMy40LTQuMSA1LjgtNy43IDUuOHMtNi43LTIuNC03LjctNS44bC0xNC44LTUxLjctNTEuNy0xNC44Yy0zLjQtMS01LjgtNC4xLTUuOC03LjdzMi40LTYuNyA1LjgtNy43bDUxLjctMTQuOCAxNC44LTUxLjdjMS0zLjQgNC4xLTUuOCA3LjctNS44ek04Ny43IDY5LjhsMTQuOCA1MS43IDUxLjcgMTQuOGMzLjQgMSA1LjggNC4xIDUuOCA3LjdzLTIuNCA2LjctNS44IDcuN2wtNTEuNyAxNC44LTE0LjggNTEuN2MtMSAzLjQtNC4xIDUuOC03LjcgNS44cy02LjctMi40LTcuNy01LjhMNTcuNSAxNjYuNSA1LjggMTUxLjdjLTMuNC0xLTUuOC00LjEtNS44LTcuN3MyLjQtNi43IDUuOC03LjdsNTEuNy0xNC44IDE0LjgtNTEuN2MxLTMuNCA0LjEtNS44IDcuNy01LjhzNi43IDIuNCA3LjcgNS44ek0yMDggMGMzLjcgMCA2LjkgMi41IDcuOCA2LjFsNi44IDI3LjMgMjcuMyA2LjhjMy42IC45IDYuMSA0LjEgNi4xIDcuOHMtMi41IDYuOS02LjEgNy44bC0yNy4zIDYuOC02LjggMjcuM2MtLjkgMy42LTQuMSA2LjEtNy44IDYuMXMtNi45LTIuNS03LjgtNi4xbC02LjgtMjcuMy0yNy4zLTYuOGMtMy42LS45LTYuMS00LjEtNi4xLTcuOHMyLjUtNi45IDYuMS03LjhsMjcuMy02LjggNi44LTI3LjNjLjktMy42IDQuMS02LjEgNy44LTYuMXoiXX0sRSRlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6Im1pY3JvcGhvbmUiLGljb246WzM4NCw1MTIsW10sImYxMzAiLCJNMTkyIDBDMTM5IDAgOTYgNDMgOTYgOTZsMCAxMjhjMCA1MyA0MyA5NiA5NiA5NnM5Ni00MyA5Ni05NmwwLTEyOGMwLTUzLTQzLTk2LTk2LTk2ek00OCAxODRjMC0xMy4zLTEwLjctMjQtMjQtMjRTMCAxNzAuNyAwIDE4NGwwIDQwYzAgOTcuOSA3My4zIDE3OC43IDE2OCAxOTAuNWwwIDQ5LjUtNDggMGMtMTMuMyAwLTI0IDEwLjctMjQgMjRzMTAuNyAyNCAyNCAyNGwxNDQgMGMxMy4zIDAgMjQtMTAuNyAyNC0yNHMtMTAuNy0yNC0yNC0yNGwtNDggMCAwLTQ5LjVjOTQuNy0xMS44IDE2OC05Mi42IDE2OC0xOTAuNWwwLTQwYzAtMTMuMy0xMC43LTI0LTI0LTI0cy0yNCAxMC43LTI0IDI0bDAgNDBjMCA3OS41LTY0LjUgMTQ0LTE0NCAxNDRTNDggMzAzLjUgNDggMjI0bDAtNDB6Il19LFAkZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJjcm93biIsaWNvbjpbNTc2LDUxMixbMTI4MDgxXSwiZjUyMSIsIk0zMTMgODcuMmM5LjItNy4zIDE1LTE4LjYgMTUtMzEuMiAwLTIyLjEtMTcuOS00MC00MC00MHMtNDAgMTcuOS00MCA0MGMwIDEyLjYgNS45IDIzLjkgMTUgMzEuMkwxOTQuNiAxOTQuOGMtMTAgMTUuNy0zMS4zIDE5LjYtNDYuMiA4LjRMODguOSAxNTguN2M0LjUtNi40IDcuMS0xNC4zIDcuMS0yMi43IDAtMjIuMS0xNy45LTQwLTQwLTQwcy00MCAxNy45LTQwIDQwYzAgMjEuOCAxNy41IDM5LjYgMzkuMiA0MEw4Ny44IDM5My41YzQuNyAzMS4zIDMxLjYgNTQuNSA2My4zIDU0LjVsMjczLjggMGMzMS43IDAgNTguNi0yMy4yIDYzLjMtNTQuNUw1MjAuOCAxNzZjMjEuNy0uNCAzOS4yLTE4LjIgMzkuMi00MCAwLTIyLjEtMTcuOS00MC00MC00MHMtNDAgMTcuOS00MCA0MGMwIDguNCAyLjYgMTYuMyA3LjEgMjIuN2wtNTkuNCA0NC42Yy0xNC45IDExLjItMzYuMiA3LjMtNDYuMi04LjRMMzEzIDg3LjJ6Il19LEkkZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJ0ZW50LWFycm93LXR1cm4tbGVmdCIsaWNvbjpbNTEyLDUxMixbXSwiZTU4MCIsIk0tLjUgMTEzbDcyIDcyYzkuNCA5LjQgMjQuNiA5LjQgMzMuOSAwczkuNC0yNC42IDAtMzMuOWwtMzEtMzEgMzUwLjEgMGMyMi4xIDAgNDAgMTcuOSA0MCA0MGwwIDI0YzAgMTMuMyAxMC43IDI0IDI0IDI0czI0LTEwLjcgMjQtMjRsMC0yNGMwLTQ4LjYtMzkuNC04OC04OC04OGwtMzUwLjEgMCAzMS0zMWM5LjQtOS40IDkuNC0yNC42IDAtMzMuOVM4MC45LTIuMyA3MS41IDdMLS41IDc5Yy05LjQgOS40LTkuNCAyNC42IDAgMzMuOXpNNjAuMyAyOTIuNkwzNy4xIDQ3NmMtMi40IDE5LjEgMTIuNSAzNiAzMS43IDM2bDE1NC41IDBjMTcuNyAwIDMyLTE0LjMgMzItMzJsMC0xMTcuNGMwLTUuOSA0LjctMTAuNiAxMC42LTEwLjYgNCAwIDcuNyAyLjMgOS41IDUuOWw2OC4yIDEzNi41YzUuNCAxMC44IDE2LjUgMTcuNyAyOC42IDE3LjdsNzEuOSAwYzE5LjMgMCAzNC4yLTE2LjkgMzEuNy0zNkw0NTIuNyAyOTIuN2MtMS4yLTkuNy02LjktMTguNC0xNS4zLTIzLjRMMjcxLjkgMTY5LjljLTEwLjItNi4xLTIyLjktNi4xLTMzLjEgLjFMNzUuNCAyNjkuM2MtOC4zIDUuMS0xMy45IDEzLjctMTUuMSAyMy4zeiJdfSxNRj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJ0cnVjay1mYXN0IixpY29uOls2NDAsNTEyLFsic2hpcHBpbmctZmFzdCJdLCJmNDhiIiwiTTY0IDk2YzAtMzUuMyAyOC43LTY0IDY0LTY0bDI4OCAwYzM1LjMgMCA2NCAyOC43IDY0IDY0bDAgMzIgNTAuNyAwYzE3IDAgMzMuMyA2LjcgNDUuMyAxOC43TDYyMS4zIDE5MmMxMiAxMiAxOC43IDI4LjMgMTguNyA0NS4zTDY0MCAzODRjMCAzNS4zLTI4LjcgNjQtNjQgNjRsLTMuMyAwYy0xMC40IDM2LjktNDQuNCA2NC04NC43IDY0cy03NC4yLTI3LjEtODQuNy02NGwtMTAyLjYgMGMtMTAuNCAzNi45LTQ0LjQgNjQtODQuNyA2NHMtNzQuMi0yNy4xLTg0LjctNjRsLTMuMyAwYy0zNS4zIDAtNjQtMjguNy02NC02NGwwLTQ4LTQwIDBjLTEzLjMgMC0yNC0xMC43LTI0LTI0czEwLjctMjQgMjQtMjRsMTEyIDBjMTMuMyAwIDI0LTEwLjcgMjQtMjRzLTEwLjctMjQtMjQtMjRMMjQgMjQwYy0xMy4zIDAtMjQtMTAuNy0yNC0yNHMxMC43LTI0IDI0LTI0bDE3NiAwYzEzLjMgMCAyNC0xMC43IDI0LTI0cy0xMC43LTI0LTI0LTI0TDI0IDE0NGMtMTMuMyAwLTI0LTEwLjctMjQtMjRTMTAuNyA5NiAyNCA5Nmw0MCAwek01NzYgMjg4bDAtNTAuNy00NS4zLTQ1LjMtNTAuNyAwIDAgOTYgOTYgMHpNMjU2IDQyNGE0MCA0MCAwIDEgMCAtODAgMCA0MCA0MCAwIDEgMCA4MCAwem0yMzIgNDBhNDAgNDAgMCAxIDAgMC04MCA0MCA0MCAwIDEgMCAwIDgweiJdfSxOJGU9TUYsekY9e3ByZWZpeDoiZmFzIixpY29uTmFtZToidXNlci1wZW4iLGljb246WzY0MCw1MTIsWyJ1c2VyLWVkaXQiXSwiZjRmZiIsIk0yNTYuMSAyNDhhMTIwIDEyMCAwIDEgMCAwLTI0MCAxMjAgMTIwIDAgMSAwIDAgMjQwem0tMjkuNyA1NmMtOTguNSAwLTE3OC4zIDc5LjgtMTc4LjMgMTc4LjMgMCAxNi40IDEzLjMgMjkuNyAyOS43IDI5LjdsMTk2LjUgMCAxMC45LTU0LjVjNC4zLTIxLjcgMTUtNDEuNiAzMC42LTU3LjJsNjcuMy02Ny4zYy0yOC0xOC4zLTYxLjQtMjguOS05Ny40LTI4LjlsLTU5LjQgMHpNMzMyLjMgNDY2LjlsLTExLjkgNTkuNmMtLjIgLjktLjMgMS45LS4zIDIuOSAwIDggNi41IDE0LjYgMTQuNiAxNC42IDEgMCAxLjktLjEgMi45LS4zbDU5LjYtMTEuOWMxMi40LTIuNSAyMy44LTguNiAzMi43LTE3LjVsMTE4LjktMTE4LjktODAtODAtMTE4LjkgMTE4LjljLTguOSA4LjktMTUgMjAuMy0xNy41IDMyLjd6bTI2Ny44LTEyM2MyMi4xLTIyLjEgMjIuMS01Ny45IDAtODBzLTU3LjktMjIuMS04MCAwbC0yOC44IDI4LjggODAgODAgMjguOC0yOC44eiJdfSxGJGU9ekYsTyRlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InVzZXItY2xvY2siLGljb246WzU3Niw1MTIsW10sImY0ZmQiLCJNMjI0IDhhMTIwIDEyMCAwIDEgMSAwIDI0MCAxMjAgMTIwIDAgMSAxIDAtMjQwek0xOTQuMyAzMDRsNTkuNCAwYzMuOSAwIDcuOSAuMSAxMS44IC40LTE2LjIgMjguMi0yNS41IDYwLjgtMjUuNSA5NS42IDAgNDEuOCAxMy40IDgwLjUgMzYgMTEyTDQ1LjcgNTEyQzI5LjMgNTEyIDE2IDQ5OC43IDE2IDQ4Mi4zIDE2IDM4My44IDk1LjggMzA0IDE5NC4zIDMwNHpNMjg4IDQwMGExNDQgMTQ0IDAgMSAxIDI4OCAwIDE0NCAxNDQgMCAxIDEgLTI4OCAwem0xNDQtODBjLTguOCAwLTE2IDcuMi0xNiAxNmwwIDY0YzAgOC44IDcuMiAxNiAxNiAxNmw0OCAwYzguOCAwIDE2LTcuMiAxNi0xNnMtNy4yLTE2LTE2LTE2bC0zMiAwIDAtNDhjMC04LjgtNy4yLTE2LTE2LTE2eiJdfSxSJGU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToic2hvd2VyIixpY29uOls1MTIsNTEyLFsxMjg3MDNdLCJmMmNjIiwiTTY0IDEzMS45YzAtMTkuOCAxNi4xLTM1LjkgMzUuOS0zNS45IDkuNSAwIDE4LjYgMy44IDI1LjQgMTAuNWwxNi4yIDE2LjJjLTIxIDM4LjktMTcuNCA4Ny41IDEwLjkgMTIzTDE1MSAyNDdjLTkuNCA5LjQtOS40IDI0LjYgMCAzMy45czI0LjYgOS40IDMzLjkgMEwzNDUgMTIxYzkuNC05LjQgOS40LTI0LjYgMC0zMy45cy0yNC42LTkuNC0zMy45IDBsLTEuMyAxLjNjLTM1LjUtMjguMy04NC4xLTMxLjktMTIzLTEwLjlMMTcwLjUgNjEuM0MxNTEuOCA0Mi41IDEyNi40IDMyIDk5LjkgMzIgNDQuNyAzMiAwIDc2LjcgMCAxMzEuOUwwIDQ0OGMwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMybDAtMzE2LjF6TTI1NiAzNTJhMzIgMzIgMCAxIDAgMC02NCAzMiAzMiAwIDEgMCAwIDY0em02NCA2NGEzMiAzMiAwIDEgMCAtNjQgMCAzMiAzMiAwIDEgMCA2NCAwem0wLTEyOGEzMiAzMiAwIDEgMCAwLTY0IDMyIDMyIDAgMSAwIDAgNjR6bTY0IDY0YTMyIDMyIDAgMSAwIC02NCAwIDMyIDMyIDAgMSAwIDY0IDB6bTAtMTI4YTMyIDMyIDAgMSAwIDAtNjQgMzIgMzIgMCAxIDAgMCA2NHptNjQgNjRhMzIgMzIgMCAxIDAgLTY0IDAgMzIgMzIgMCAxIDAgNjQgMHptMzItMzJhMzIgMzIgMCAxIDAgMC02NCAzMiAzMiAwIDEgMCAwIDY0eiJdfSxrRj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJzcXVhcmUtY2FyZXQtdXAiLGljb246WzQ0OCw1MTIsWyJjYXJldC1zcXVhcmUtdXAiXSwiZjE1MSIsIk02NCAzMkMyOC43IDMyIDAgNjAuNyAwIDk2TDAgNDE2YzAgMzUuMyAyOC43IDY0IDY0IDY0bDMyMCAwYzM1LjMgMCA2NC0yOC43IDY0LTY0bDAtMzIwYzAtMzUuMy0yOC43LTY0LTY0LTY0TDY0IDMyek0yMjQgMTYwYzYuNyAwIDEzIDIuOCAxNy42IDcuN2wxMDQgMTEyYzYuNSA3IDguMiAxNy4yIDQuNCAyNS45UzMzNy41IDMyMCAzMjggMzIwbC0yMDggMGMtOS41IDAtMTguMi01LjctMjItMTQuNHMtMi4xLTE4LjkgNC40LTI1LjlsMTA0LTExMmM0LjUtNC45IDEwLjktNy43IDE3LjYtNy43eiJdfSxCJGU9a0YsU0Y9e3ByZWZpeDoiZmFzIixpY29uTmFtZToibWFwLWxvY2F0aW9uIixpY29uOls2NDAsNTEyLFsibWFwLW1hcmtlZCJdLCJmNTlmIiwiTTU3NiA0OGMwLTExLjEtNS43LTIxLjQtMTUuMi0yNy4ycy0yMS4yLTYuNC0zMS4xLTEuNEw0MTMuNSA3Ny41IDIzNC4xIDE3LjZjLTguMS0yLjctMTYuOC0yLjEtMjQuNCAxLjdsLTEyOCA2NEM3MC44IDg4LjggNjQgOTkuOSA2NCAxMTJsMCAzNTJjMCAxMS4xIDUuNyAyMS40IDE1LjIgMjcuMnMyMS4yIDYuNCAzMS4xIDEuNGwxMTYuMS01OC4xIDE3My4zIDU3LjhjLTQuMy02LjQtOC41LTEzLjEtMTIuNi0xOS45LTExLTE4LjMtMjEuOS0zOS4zLTMwLTYxLjhsLTEwMS4yLTMzLjcgMC0yODQuNSAxMjggNDIuNyAwIDk5LjNjMzEtMzUuOCA3Ny01OC40IDEyOC01OC40IDIyLjYgMCA0NC4yIDQuNCA2NCAxMi41TDU3NiA0OHpNMzkyIDM0MS45YzAgNjguOSA2NC4xIDE1MC40IDk4LjYgMTg5LjMgMTEuNiAxMyAzMS4zIDEzIDQyLjkgMCAzNC41LTM4LjkgOTguNi0xMjAuNCA5OC42LTE4OS4zIDAtNjUuMS01My43LTExNy45LTEyMC0xMTcuOVMzOTIgMjc2LjggMzkyIDM0MS45eiJdfSxIJGU9U0YscSRlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InBlbi1mYW5jeSIsaWNvbjpbNTEyLDUxMixbMTI4Mzk1LDEwMDAyXSwiZjVhYyIsIk0zNzMuNSAyNy4xYzE1LTE3LjIgMzYuNy0yNy4xIDU5LjYtMjcuMSA0My42IDAgNzkgMzUuNCA3OSA3OSAwIDIyLjgtOS45IDQ0LjYtMjcuMSA1OS42TDI4My43IDMxMy44IDI3MyAzMDMgMjA5IDIzOSAxOTguMiAyMjguMyAzNzMuNSAyNy4xek0xNjEuMSAyNTlDMTYyIDI2MCAxODggMjg2IDIzOSAzMzdsMTMuOSAxMy45LTE3LjEgNzQuMmMtMy45IDE3LjEtMTYuOSAzMC43LTMzLjggMzUuNGwtMTY5LjggNDcuNSA5Mi4zLTkyLjNjMS4yIC4xIDIuMyAuMiAzLjUgLjIgMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzItMzIgMTQuMy0zMiAzMmMwIDEuMiAuMSAyLjQgLjIgMy41TDMuOSA0NzkuOCA1MS41IDMxMGM0LjctMTYuOSAxOC4zLTI5LjkgMzUuNC0zMy44TDE2MS4xIDI1OXoiXX0sdW09e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZXVyby1zaWduIixpY29uOls0NDgsNTEyLFs4MzY0LCJldXIiLCJldXJvIl0sImYxNTMiLCJNNzMuMyAxOTJDMTAwLjggOTkuNSAxODYuNSAzMiAyODggMzJsNjQgMGMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMmwtNjQgMGMtNjUuNiAwLTEyMiAzOS41LTE0Ni43IDk2TDI3MiAxOTJjMTMuMyAwIDI0IDEwLjcgMjQgMjRzLTEwLjcgMjQtMjQgMjRsLTE0My4yIDBjLS41IDUuMy0uOCAxMC42LS44IDE2cy4zIDEwLjcgLjggMTZMMjcyIDI3MmMxMy4zIDAgMjQgMTAuNyAyNCAyNHMtMTAuNyAyNC0yNCAyNGwtMTMwLjcgMGMyNC43IDU2LjUgODEuMSA5NiAxNDYuNyA5Nmw2NCAwYzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMybC02NCAwYy0xMDEuNSAwLTE4Ny4yLTY3LjUtMjE0LjctMTYwTDQwIDMyMGMtMTMuMyAwLTI0LTEwLjctMjQtMjRzMTAuNy0yNCAyNC0yNGwyNC42IDBjLS43LTEwLjUtLjctMjEuNSAwLTMyTDQwIDI0MGMtMTMuMyAwLTI0LTEwLjctMjQtMjRzMTAuNy0yNCAyNC0yNGwzMy4zIDB6Il19LFYkZT11bSxqJGU9dW0sVSRlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImhvdXNlLWNpcmNsZS14bWFyayIsaWNvbjpbNjQwLDUxMixbXSwiZTUwYiIsIk00OTYgNTQ0YTE0NCAxNDQgMCAxIDEgMC0yODggMTQ0IDE0NCAwIDEgMSAwIDI4OHpNMjY4LjYgNi41YzEyLjItOS4zIDI5LjctOC43IDQxLjIgMmwyMTcuNiAyMDJjLTEwLjItMS43LTIwLjctMi42LTMxLjMtMi42LTc4LjYgMC0xNDYuMiA0Ny4yLTE3NS45IDExNC44LTUtMS44LTEwLjUtMi44LTE2LjEtMi44bC0zMiAwYy0yNi41IDAtNDggMjEuNS00OCA0OGwwIDk2IDkwLjkgMGM2LjEgMTcuMyAxNC42IDMzLjQgMjUuMiA0OEwxNDQgNTEyYy0zNS4zIDAtNjQtMjguNy02NC02NGwwLTE3Ni0xNiAwYy0xMy4yIDAtMjUtOC4xLTI5LjgtMjAuM3MtMS42LTI2LjIgOC0zNS4xbDIyNC0yMDggMi40LTJ6TTU1NS4zIDM0MC43Yy02LjItNi4yLTE2LjQtNi4yLTIyLjYgMGwtMzYuNyAzNi43LTM2LjctMzYuN2MtNi4yLTYuMi0xNi40LTYuMi0yMi42IDBzLTYuMiAxNi40IDAgMjIuNmwzNi43IDM2LjctMzYuNyAzNi43Yy02LjIgNi4yLTYuMiAxNi40IDAgMjIuNnMxNi40IDYuMiAyMi42IDBsMzYuNy0zNi43IDM2LjcgMzYuN2M2LjIgNi4yIDE2LjQgNi4yIDIyLjYgMHM2LjItMTYuNCAwLTIyLjZsLTM2LjctMzYuNyAzNi43LTM2LjdjNi4yLTYuMiA2LjItMTYuNCAwLTIyLjZ6Il19LFckZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJsaXJhLXNpZ24iLGljb246WzM4NCw1MTIsWzgzNTZdLCJmMTk1IiwiTTg0LjkgMjU2bC0yOC40IDBjLTEzLjMgMC0yNC0xMC43LTI0LTI0czEwLjctMjQgMjQtMjRsMTEuNiAwQzUzLjIgMTI0LjcgMTE2LjggNDIgMjA3LjYgNDJsOC4yIDBjMzMuNiAwIDY2LjIgMTEuMyA5Mi41IDMyLjJsMTYuMSAxMi43YzEzLjkgMTEgMTYuMiAzMS4xIDUuMiA0NXMtMzEuMSAxNi4yLTQ1IDUuMmwtMTYuMS0xMi43Yy0xNS0xMS45LTMzLjYtMTguNC01Mi44LTE4LjRsLTguMiAwYy01My44IDAtOTAuMSA1Mi45LTczLjUgMTAybDE2Mi40IDBjMTMuMyAwIDI0IDEwLjcgMjQgMjRzLTEwLjcgMjQtMjQgMjRsLTE0NS4xIDBjMi4zIDEwLjYgMy42IDIxLjMgMy45IDMybDE0MS4yIDBjMTMuMyAwIDI0IDEwLjcgMjQgMjRzLTEwLjcgMjQtMjQgMjRMMTUwIDMzNmMtNC44IDE4LjYtMTIuNiAzNi41LTIzLjYgNTIuOWwtMTguMSAyNy4xIDIxMi4yIDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJsLTI3MiAwYy0xMS44IDAtMjIuNi02LjUtMjguMi0xNi45cy01LTIzIDEuNi0zMi45bDUxLjItNzYuOGMzLjctNS42IDYuOS0xMS40IDkuNC0xNy40bC0yNiAwYy0xMy4zIDAtMjQtMTAuNy0yNC0yNHMxMC43LTI0IDI0LTI0bDM0LjggMGMtLjUtMTAuOC0yLjYtMjEuNi02LjQtMzJ6Il19LGhsPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6Inllbi1zaWduIixpY29uOlszODQsNTEyLFsxNjUsImNueSIsImpweSIsInJtYiIsInllbiJdLCJmMTU3IiwiTTc0LjkgNDYuN2MtOS42LTE0LjktMjkuNC0xOS4yLTQ0LjItOS42UzExLjUgNjYuNCAyMS4xIDgxLjNMMTQzLjcgMjcyIDg4IDI3MmMtMTMuMyAwLTI0IDEwLjctMjQgMjRzMTAuNyAyNCAyNCAyNGw3MiAwIDAgMzItNzIgMGMtMTMuMyAwLTI0IDEwLjctMjQgMjRzMTAuNyAyNCAyNCAyNGw3MiAwIDAgNDhjMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMmwwLTQ4IDcyIDBjMTMuMyAwIDI0LTEwLjcgMjQtMjRzLTEwLjctMjQtMjQtMjRsLTcyIDAgMC0zMiA3MiAwYzEzLjMgMCAyNC0xMC43IDI0LTI0cy0xMC43LTI0LTI0LTI0bC01NS43IDAgMTIyLjYtMTkwLjdjOS42LTE0LjkgNS4zLTM0LjctOS42LTQ0LjJzLTM0LjctNS4zLTQ0LjIgOS42TDE5MiAyMjguOCA3NC45IDQ2Ljd6Il19LEckZT1obCxZJGU9aGwsWiRlPWhsLFgkZT1obCxLJGU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiYm94LW9wZW4iLGljb246WzY0MCw1MTIsW10sImY0OWUiLCJNNTYwLjMgMjM3LjJjMTAuNCAxMS44IDI4LjMgMTQuNCA0MS44IDUuNSAxNC43LTkuOCAxOC43LTI5LjcgOC45LTQ0LjRsLTQ4LTcyYy0yLjgtNC4yLTYuNi03LjctMTEuMS0xMC4yTDM1MS40IDQuN2MtMTkuMy0xMC43LTQyLjgtMTAuNy02Mi4yIDBMODguOCAxMTZjLTUuNCAzLTkuNyA3LjQtMTIuNiAxMi44TDI3LjcgMjE4LjdjLTEyLjYgMjMuNC0zLjggNTIuNSAxOS42IDY1LjFsMzMgMTcuNyAwIDUzLjNjMCAyMyAxMi40IDQ0LjMgMzIuNCA1NS43bDE3NiA5OS43YzE5LjYgMTEuMSA0My41IDExLjEgNjMuMSAwbDE3Ni05OS43YzIwLjEtMTEuNCAzMi40LTMyLjYgMzIuNC01NS43bDAtMTE3LjV6bS0yNDAtOS44TDE3MC4yIDE0NCAzMjAuMyA2MC42IDQ3MC40IDE0NCAzMjAuMyAyMjcuNHptLTQxLjUgNTAuMmwtMjEuMyA0Ni4yLTE2NS44LTg4LjggMjUuNC00Ny4yIDE2MS43IDg5Ljh6Il19LFEkZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJ0cnVjay1maWVsZCIsaWNvbjpbNjQwLDUxMixbXSwiZTU4ZCIsIk0zMiA5NmMwLTM1LjMgMjguNy02NCA2NC02NGwyMjQgMGMyMy43IDAgNDQuNCAxMi45IDU1LjQgMzJsNDAuNCAwYzMyLjQgMCA2MS42IDE5LjYgNzQgNDkuNWw0My44IDEwNi4zIDEuNyA0LjIgMjQuNyAwYzI2LjUgMCA0OCAyMS41IDQ4IDQ4bDAgNjRjMCAyNi41LTIxLjUgNDgtNDggNDhsLS40IDBjLjIgMi42IC40IDUuMyAuNCA4IDAgNDguNi0zOS40IDg4LTg4IDg4cy04OC0zOS40LTg4LTg4YzAtMi43IC4xLTUuNCAuNC04bC0xNDQuNyAwYy4yIDIuNiAuNCA1LjMgLjQgOCAwIDQ4LjYtMzkuNCA4OC04OCA4OHMtODgtMzkuNC04OC04OGMwLTMuNiAuMi03LjEgLjYtMTAuNS0xOS02LjQtMzIuNi0yNC40LTMyLjYtNDUuNWwwLTQ4Yy0xNy43IDAtMzItMTQuMy0zMi0zMmwwLTk2YzAtMTcuNyAxNC4zLTMyIDMyLTMybDAtMzJ6bTM1MiAzMmwwIDk2IDgyLjEgMC0zNS40LTg2LjFjLTIuNS02LTguMy05LjktMTQuOC05LjlMMzg0IDEyOHpNMTkyIDM5MmE0MCA0MCAwIDEgMCAtODAgMCA0MCA0MCAwIDEgMCA4MCAwem0yODAgNDBhNDAgNDAgMCAxIDAgMC04MCA0MCA0MCAwIDEgMCAwIDgweiJdfSxKJGU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToibG9jYXRpb24tcGluLWxvY2siLGljb246WzUxMiw1MTIsW10sImU1MWYiLCJNMCAxODguNkMwIDg0LjQgODYgMCAxOTIgMCAyOTQuMSAwIDM3Ny42IDc4LjMgMzgzLjYgMTc3IDMyMC43IDE4NS4xIDI3MiAyMzguOCAyNzIgMzA0bDAgMjQuNGMtMTkuNiAxNy42LTMyIDQzLjEtMzIgNzEuNWwwIDc1LjdjLTkuOSAxMS42LTE4LjkgMjEuNy0yNi40IDI5LjgtMTEuOCAxMi44LTMxLjUgMTIuOC00My4zIDAtNTAuMi01NC41LTE3MC40LTE5Ny41LTE3MC40LTMxNi44ek0xOTIgMjU2YTY0IDY0IDAgMSAwIDAtMTI4IDY0IDY0IDAgMSAwIDAgMTI4em0yNDAgNDguMWMwLTE3LjctMTQuMy0zMi0zMi0zMnMtMzIgMTQuMy0zMiAzMmwwIDQ3LjkgNjQgMCAwLTQ3Ljl6TTI4OCA0MDBjMC0yMC45IDEzLjQtMzguNyAzMi00NS4zbDAtNTAuNmMwLTQ0LjIgMzUuOC04MCA4MC04MHM4MCAzNS44IDgwIDgwbDAgNTAuNmMxOC42IDYuNiAzMiAyNC40IDMyIDQ1LjNsMCA5NmMwIDI2LjUtMjEuNSA0OC00OCA0OGwtMTI4IDBjLTI2LjUgMC00OC0yMS41LTQ4LTQ4bDAtOTZ6Il19LENGPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InBlcnNvbi1wcmF5aW5nIixpY29uOlszODQsNTEyLFsxMjg3MjAsInByYXkiXSwiZjY4MyIsIk0zMjAgNjRhNjQgNjQgMCAxIDAgLTEyOCAwIDY0IDY0IDAgMSAwIDEyOCAwek0yMDAuNyAyNjRsMjIuOSAzMS41YzYuNSA4LjkgMTYuMyAxNC43IDI3LjIgMTYuMXMyMS45LTEuNyAzMC40LTguN2w4OC03MmMxNy4xLTE0IDE5LjYtMzkuMiA1LjYtNTYuM3MtMzkuMi0xOS42LTU2LjMtNS42bC01NS4yIDQ1LjItMjYuMi0zNmMtMTUuNi0yMS41LTQwLjYtMzQuMi02Ny4yLTM0LjItMzAuOSAwLTU5LjIgMTcuMS03My42IDQ0LjRMNDcuOCAyODAuOWMtMjAuMiAzOC41LTkuNCA4NS45IDI1LjYgMTExLjhMMTI2LjYgNDMyIDQwIDQzMmMtMjIuMSAwLTQwIDE3LjktNDAgNDBzMTcuOSA0MCA0MCA0MGwyMDggMGMxNy4zIDAgMzIuNi0xMS4xIDM4LTI3LjVzLS4zLTM0LjQtMTQuMi00NC43bC0xMTYuMS04NS44IDQ1LTkweiJdfSxlQWU9Q0YsdEFlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImNsaXBib2FyZC1saXN0IixpY29uOlszODQsNTEyLFtdLCJmNDZkIiwiTTMxMS40IDMybDguNiAwYzM1LjMgMCA2NCAyOC43IDY0IDY0bDAgMzUyYzAgMzUuMy0yOC43IDY0LTY0IDY0TDY0IDUxMmMtMzUuMyAwLTY0LTI4LjctNjQtNjRMMCA5NkMwIDYwLjcgMjguNyAzMiA2NCAzMmw4LjYgMEM4My42IDEyLjkgMTA0LjMgMCAxMjggMEwyNTYgMGMyMy43IDAgNDQuNCAxMi45IDU1LjQgMzJ6TTI0OCAxMTJjMTMuMyAwIDI0LTEwLjcgMjQtMjRzLTEwLjctMjQtMjQtMjRMMTM2IDY0Yy0xMy4zIDAtMjQgMTAuNy0yNCAyNHMxMC43IDI0IDI0IDI0bDExMiAwek0xMjggMjU2YTMyIDMyIDAgMSAwIC02NCAwIDMyIDMyIDAgMSAwIDY0IDB6bTMyIDBjMCAxMy4zIDEwLjcgMjQgMjQgMjRsMTEyIDBjMTMuMyAwIDI0LTEwLjcgMjQtMjRzLTEwLjctMjQtMjQtMjRsLTExMiAwYy0xMy4zIDAtMjQgMTAuNy0yNCAyNHptMCAxMjhjMCAxMy4zIDEwLjcgMjQgMjQgMjRsMTEyIDBjMTMuMyAwIDI0LTEwLjcgMjQtMjRzLTEwLjctMjQtMjQtMjRsLTExMiAwYy0xMy4zIDAtMjQgMTAuNy0yNCAyNHpNOTYgNDE2YTMyIDMyIDAgMSAwIDAtNjQgMzIgMzIgMCAxIDAgMCA2NHoiXX0sYUFlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InNhY2stZG9sbGFyIixpY29uOls1MTIsNTEyLFsxMjgxNzZdLCJmODFkIiwiTTMyOCAxMTJsLTE0NCAwLTM3LjMtNzQuNWMtMS44LTMuNi0yLjctNy42LTIuNy0xMS42IDAtMTQuMyAxMS42LTI1LjkgMjUuOS0yNS45TDM0Mi4xIDBjMTQuMyAwIDI1LjkgMTEuNiAyNS45IDI1LjkgMCA0LS45IDgtMi43IDExLjZMMzI4IDExMnpNMTY5LjYgMTYwbDE3Mi44IDAgNDguNyA0MC42QzQ1Ny42IDI1NiA0OTYgMzM4IDQ5NiA0MjQuNSA0OTYgNDcyLjggNDU2LjggNTEyIDQwOC41IDUxMmwtMzA1LjEgMEM1NS4yIDUxMiAxNiA0NzIuOCAxNiA0MjQuNSAxNiAzMzggNTQuNCAyNTYgMTIwLjkgMjAwLjZMMTY5LjYgMTYwek0yNjAgMjI0Yy0xMSAwLTIwIDktMjAgMjBsMCA0Yy0yOC44IC4zLTUyIDIzLjctNTIgNTIuNSAwIDI1LjcgMTguNSA0Ny42IDQzLjkgNTEuOGw0MS43IDdjNiAxIDEwLjQgNi4yIDEwLjQgMTIuMyAwIDYuOS01LjYgMTIuNS0xMi41IDEyLjVMMjE2IDM4NGMtMTEgMC0yMCA5LTIwIDIwczkgMjAgMjAgMjBsMjQgMCAwIDRjMCAxMSA5IDIwIDIwIDIwczIwLTkgMjAtMjBsMC00LjdjMjUtNC4xIDQ0LTI1LjcgNDQtNTEuOCAwLTI1LjctMTguNS00Ny42LTQzLjktNTEuOGwtNDEuNy03Yy02LTEtMTAuNC02LjItMTAuNC0xMi4zIDAtNi45IDUuNi0xMi41IDEyLjUtMTIuNWw0Ny41IDBjMTEgMCAyMC05IDIwLTIwcy05LTIwLTIwLTIwbC04IDAgMC00YzAtMTEtOS0yMC0yMC0yMHoiXX0saUFlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6Im1vdW50YWluLXN1biIsaWNvbjpbNTc2LDUxMixbXSwiZTUyZiIsIk0yNTYuNSAwYzE0LjcgMCAyOC4yIDguMSAzNS4yIDIxbDIxNiA0MDBjNi43IDEyLjQgNi40IDI3LjQtLjggMzkuNS03LjIgMTIuMS0yMC4zIDE5LjUtMzQuMyAxOS41bC00MzIgMGMtMTQuMSAwLTI3LjEtNy40LTM0LjMtMTkuNXMtNy41LTI3LjEtLjgtMzkuNWwyMTYtNDAwIDIuOS00LjZDMjMxLjcgNi4yIDI0My42IDAgMjU2LjUgMHpNMTcwLjQgMjQ5LjlsMjYuOCAyNi44YzYuMiA2LjIgMTYuNCA2LjIgMjIuNiAwbDQzLjMtNDMuM2M2LTYgMTQuMS05LjQgMjIuNi05LjRsNDIuOCAwLTcyLjEtMTMzLjUtODYuMSAxNTkuNHpNNDk2LjUgMTYwYTgwIDgwIDAgMSAxIDAtMTYwIDgwIDgwIDAgMSAxIDAgMTYweiJdfSxfRj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJhcnJvdy11cC13aWRlLXNob3J0IixpY29uOls1NzYsNTEyLFsic29ydC1hbW91bnQtdXAiXSwiZjE2MSIsIk0xNTAuNiA0MS40Yy0xMi41LTEyLjUtMzIuOC0xMi41LTQ1LjMgMGwtOTYgOTZjLTEyLjUgMTIuNS0xMi41IDMyLjggMCA0NS4zczMyLjggMTIuNSA0NS4zIDBMOTYgMTQxLjMgOTYgNDQ4YzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJsMC0zMDYuNyA0MS40IDQxLjRjMTIuNSAxMi41IDMyLjggMTIuNSA0NS4zIDBzMTIuNS0zMi44IDAtNDUuM2wtOTYtOTZ6TTMyMCA0ODBsMzIgMGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMmwtMzIgMGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJzMTQuMyAzMiAzMiAzMnptMC0xMjhsOTYgMGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMmwtOTYgMGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJzMTQuMyAzMiAzMiAzMnptMC0xMjhsMTYwIDBjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJsLTE2MCAwYy0xNy43IDAtMzIgMTQuMy0zMiAzMnMxNC4zIDMyIDMyIDMyem0wLTEyOGwyMjQgMGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMkwzMjAgMzJjLTE3LjcgMC0zMiAxNC4zLTMyIDMyczE0LjMgMzIgMzIgMzJ6Il19LHJBZT1fRixzQWU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToidXNlcnMtbGluZSIsaWNvbjpbNTc2LDUxMixbXSwiZTU5MiIsIk0yMjQgMTI4YTY0IDY0IDAgMSAxIDEyOCAwIDY0IDY0IDAgMSAxIC0xMjggMHpNMTc2IDMzNmMwLTYxLjkgNTAuMS0xMTIgMTEyLTExMnMxMTIgNTAuMSAxMTIgMTEybDAgOGMwIDEzLjMtMTAuNyAyNC0yNCAyNGwtMTc2IDBjLTEzLjMgMC0yNC0xMC43LTI0LTI0bDAtOHpNMzkyIDE0NGE1NiA1NiAwIDEgMSAxMTIgMCA1NiA1NiAwIDEgMSAtMTEyIDB6bTI3LjIgMTAwLjRjOS4xLTIuOSAxOC44LTQuNCAyOC44LTQuNCA1MyAwIDk2IDQzIDk2IDk2bDAgMTAuN2MwIDExLjgtOS42IDIxLjMtMjEuMyAyMS4zbC03OC44IDBjMi43LTcuNSA0LjEtMTUuNiA0LjEtMjRsMC04YzAtMzQuMS0xMC42LTY1LjctMjguOC05MS42em0tMjYyLjQgMGMtMTguMiAyNi0yOC44IDU3LjUtMjguOCA5MS42bDAgOGMwIDguNCAxLjQgMTYuNSA0LjEgMjRsLTc4LjggMEM0MS42IDM2OCAzMiAzNTguNCAzMiAzNDYuN0wzMiAzMzZjMC01MyA0My05NiA5Ni05NiAxMCAwIDE5LjcgMS41IDI4LjggNC40ek03MiAxNDRhNTYgNTYgMCAxIDEgMTEyIDAgNTYgNTYgMCAxIDEgLTExMiAwek0wIDQ0MGMwLTEzLjMgMTAuNy0yNCAyNC0yNGw1MjggMGMxMy4zIDAgMjQgMTAuNyAyNCAyNHMtMTAuNyAyNC0yNCAyNEwyNCA0NjRjLTEzLjMgMC0yNC0xMC43LTI0LTI0eiJdfSxuQWU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToic3Rhci1vZi1kYXZpZCIsaWNvbjpbNTEyLDUxMixbMTAwMTddLCJmNjlhIiwiTTQxNS45IDMxMS45bC0yNy44IDQ4LjEgNTUuNyAwLTI3LjgtNDguMXpNMzgzLjYgMjU2bC02MC4yLTEwNC0xMzQuOCAwLTYwLjIgMTA0IDYwLjIgMTA0IDEzNC44IDAgNjAuMi0xMDR6bTY0LjcgMGw1OC40IDEwMC45YzMuNSA2IDUuMyAxMi44IDUuMyAxOS43IDAgMjEuNy0xNy42IDM5LjQtMzkuNCAzOS40bC0xMTcgMC02MS4zIDEwNS44QzI4Ni41IDUzNS42IDI3MS44IDU0NCAyNTYgNTQ0cy0zMC41LTguNC0zOC40LTIyLjJsLTYxLjMtMTA1LjgtMTE3IDBjLTIxLjcgMC0zOS40LTE3LjYtMzkuNC0zOS40IDAtNi45IDEuOC0xMy43IDUuMy0xOS43TDYzLjcgMjU2IDUuMyAxNTUuMUMxLjggMTQ5LjEgMCAxNDIuMyAwIDEzNS40IDAgMTEzLjYgMTcuNiA5NiAzOS40IDk2bDExNyAwIDYxLjMtMTA1LjhDMjI1LjUtMjMuNiAyNDAuMi0zMiAyNTYtMzJzMzAuNSA4LjQgMzguNCAyMi4ybDYxLjMgMTA1LjggMTE3IDBjMjEuNyAwIDM5LjQgMTcuNiAzOS40IDM5LjQgMCA2LjktMS44IDEzLjctNS4zIDE5LjdMNDQ4LjMgMjU2ek0zODguMSAxNTJsMjcuOCA0OC4xIDI3LjgtNDguMS01NS43IDB6TTI5MSA5NmwtMzUtNjAuNC0zNSA2MC40IDcwIDB6TTEyMy45IDE1MmwtNTUuNyAwIDI3LjggNDguMSAyNy44LTQ4LjF6TTk2LjEgMzExLjlsLTI3LjggNDguMSA1NS43IDAtMjcuOC00OC4xek0yMjEgNDE2bDM1IDYwLjQgMzUtNjAuNC03MCAweiJdfSxvQWU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToibm90ZXMtbWVkaWNhbCIsaWNvbjpbNTEyLDUxMixbXSwiZjQ4MSIsIk05NiAzNTJjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMTgxLjUgMGMxNyAwIDMzLjMtNi43IDQ1LjMtMTguN0w0OTMuMyAyOTAuN2MxMi0xMiAxOC43LTI4LjMgMTguNy00NS4zTDUxMiA2NGMwLTM1LjMtMjguNy02NC02NC02NEwxNjAgMEMxMjQuNyAwIDk2IDI4LjcgOTYgNjRsMCAyODh6TTI4OCAxMTJsMzIgMGM4LjggMCAxNiA3LjIgMTYgMTZsMCA0OCA0OCAwYzguOCAwIDE2IDcuMiAxNiAxNmwwIDMyYzAgOC44LTcuMiAxNi0xNiAxNmwtNDggMCAwIDQ4YzAgOC44LTcuMiAxNi0xNiAxNmwtMzIgMGMtOC44IDAtMTYtNy4yLTE2LTE2bDAtNDgtNDggMGMtOC44IDAtMTYtNy4yLTE2LTE2bDAtMzJjMC04LjggNy4yLTE2IDE2LTE2bDQ4IDAgMC00OGMwLTguOCA3LjItMTYgMTYtMTZ6TTQ4IDEyMGMwLTEzLjMtMTAuNy0yNC0yNC0yNFMwIDEwNi43IDAgMTIwTDAgNDQ4YzAgMzUuMyAyOC43IDY0IDY0IDY0bDI2NCAwYzEzLjMgMCAyNC0xMC43IDI0LTI0cy0xMC43LTI0LTI0LTI0TDY0IDQ2NGMtOC44IDAtMTYtNy4yLTE2LTE2bDAtMzI4eiJdfSxsQWU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiYXVzdHJhbC1zaWduIixpY29uOls0NDgsNTEyLFtdLCJlMGE5IiwiTTI2Ni41IDI0MGwtODUgMCA0Mi41LTEwNi40IDQyLjUgMTA2LjR6bTY4LjkgMEwyNjIuOSA1OC4zQzI1Ni41IDQyLjQgMjQxLjEgMzIgMjI0IDMycy0zMi41IDEwLjQtMzguOSAyNi4zTDExMi42IDI0MCAzMiAyNDBjLTEzLjMgMC0yNCAxMC43LTI0IDI0czEwLjcgMjQgMjQgMjRsNjEuNCAwLTE5LjIgNDgtNDIuMyAwYy0xMy4zIDAtMjQgMTAuNy0yNCAyNHMxMC43IDI0IDI0IDI0bDIzLjEgMC0yMC44IDUyLjFjLTYuNiAxNi40IDEuNCAzNSAxNy45IDQxLjZzMzUtMS40IDQxLjYtMTcuOWwzMC4zLTc1LjkgMjAwIDAgMzAuMyA3NS45YzYuNiAxNi40IDI1LjIgMjQuNCA0MS42IDE3LjlzMjQuNC0yNS4yIDE3LjktNDEuNkwzOTIuOSAzODQgNDE2IDM4NGMxMy4zIDAgMjQtMTAuNyAyNC0yNHMtMTAuNy0yNC0yNC0yNGwtNDIuMyAwLTE5LjItNDggNjEuNCAwYzEzLjMgMCAyNC0xMC43IDI0LTI0cy0xMC43LTI0LTI0LTI0bC04MC42IDB6bS00OS43IDQ4bDE5LjIgNDgtMTYxLjYgMCAxOS4yLTQ4IDEyMy4zIDB6Il19LGNBZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJjbGlwYm9hcmQtdXNlciIsaWNvbjpbMzg0LDUxMixbXSwiZjdmMyIsIk0zMTEuNCAzMmw4LjYgMGMzNS4zIDAgNjQgMjguNyA2NCA2NGwwIDM1MmMwIDM1LjMtMjguNyA2NC02NCA2NEw2NCA1MTJjLTM1LjMgMC02NC0yOC43LTY0LTY0TDAgOTZDMCA2MC43IDI4LjcgMzIgNjQgMzJsOC42IDBDODMuNiAxMi45IDEwNC4zIDAgMTI4IDBMMjU2IDBjMjMuNyAwIDQ0LjQgMTIuOSA1NS40IDMyek0yNDggMTEyYzEzLjMgMCAyNC0xMC43IDI0LTI0cy0xMC43LTI0LTI0LTI0TDEzNiA2NGMtMTMuMyAwLTI0IDEwLjctMjQgMjRzMTAuNyAyNCAyNCAyNGwxMTIgMHpNMTkyIDM0NGE1NiA1NiAwIDEgMCAwLTExMiA1NiA1NiAwIDEgMCAwIDExMnpNOTguMyA0MTNjLTEyLjkgMTUuNiAyLjIgMzUgMjIuNCAzNWwxNDIuNSAwYzIwLjIgMCAzNS4zLTE5LjQgMjIuNC0zNS0xNC43LTE3LjctMzYuOS0yOS02MS43LTI5bC02NCAwYy0yNC44IDAtNDcgMTEuMy02MS43IDI5eiJdfSxkQWU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZmlsZS1pbWFnZSIsaWNvbjpbMzg0LDUxMixbMTI4NDQzXSwiZjFjNSIsIk0wIDY0QzAgMjguNyAyOC43IDAgNjQgMEwyMTMuNSAwYzE3IDAgMzMuMyA2LjcgNDUuMyAxOC43TDM2NS4zIDEyNS4zYzEyIDEyIDE4LjcgMjguMyAxOC43IDQ1LjNMMzg0IDQ0OGMwIDM1LjMtMjguNyA2NC02NCA2NEw2NCA1MTJjLTM1LjMgMC02NC0yOC43LTY0LTY0TDAgNjR6bTIwOC01LjVsMCA5My41YzAgMTMuMyAxMC43IDI0IDI0IDI0TDMyNS41IDE3NiAyMDggNTguNXpNMTI4IDI1NmEzMiAzMiAwIDEgMCAtNjQgMCAzMiAzMiAwIDEgMCA2NCAwek05Mi42IDQ0OGwxOTguOCAwYzE1LjggMCAyOC42LTEyLjggMjguNi0yOC42IDAtNy4zLTIuOC0xNC40LTcuOS0xOS43TDIxNS4zIDI5Ny45Yy02LTYuMy0xNC40LTkuOS0yMy4yLTkuOWwtLjMgMGMtOC44IDAtMTcuMSAzLjYtMjMuMiA5LjlMNzEuOSAzOTkuN0M2Ni44IDQwNSA2NCA0MTIuMSA2NCA0MTkuNCA2NCA0MzUuMiA3Ni44IDQ0OCA5Mi42IDQ0OHoiXX0sVEY9e3ByZWZpeDoiZmFzIixpY29uTmFtZToic3F1YXJlLWNhcmV0LXJpZ2h0IixpY29uOls0NDgsNTEyLFsiY2FyZXQtc3F1YXJlLXJpZ2h0Il0sImYxNTIiLCJNNDQ4IDk2YzAtMzUuMy0yOC43LTY0LTY0LTY0TDY0IDMyQzI4LjcgMzIgMCA2MC43IDAgOTZMMCA0MTZjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMzIwIDBjMzUuMyAwIDY0LTI4LjcgNjQtNjRsMC0zMjB6TTMyMCAyNTZjMCA2LjctMi44IDEzLTcuNyAxNy42bC0xMTIgMTA0Yy03IDYuNS0xNy4yIDguMi0yNS45IDQuNFMxNjAgMzY5LjUgMTYwIDM2MGwwLTIwOGMwLTkuNSA1LjctMTguMiAxNC40LTIyczE4LjktMi4xIDI1LjkgNC40bDExMiAxMDRjNC45IDQuNSA3LjcgMTAuOSA3LjcgMTcuNnoiXX0saEFlPVRGLHBBZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJ2aWFsIixpY29uOls1MTIsNTEyLFsxMjk1MTRdLCJmNDkyIiwiTTM0Mi42IDkuNGMtMTIuNS0xMi41LTMyLjgtMTIuNS00NS4zIDBzLTEyLjUgMzIuOCAwIDQ1LjNMMzA2LjcgNjQgMjguMSAzNDIuNkMxMC4xIDM2MC42IDAgMzg1IDAgNDEwLjVMMCA0MTZjMCA1MyA0MyA5NiA5NiA5Nmw1LjUgMGMyNS41IDAgNDkuOS0xMC4xIDY3LjktMjguMWwyNzguNi0yNzguNiA5LjQgOS40YzEyLjUgMTIuNSAzMi44IDEyLjUgNDUuMyAwczEyLjUtMzIuOCAwLTQ1LjNsLTE2MC0xNjB6TTIwNS4zIDI1NmwxNDYuNy0xNDYuNyA1MC43IDUwLjctOTYgOTYtMTAxLjUgMHoiXX0sdUFlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImhlbGljb3B0ZXIiLGljb246WzU3Niw1MTIsWzEyODY0MV0sImY1MzMiLCJNMTc2IDMyYy0xMy4zIDAtMjQgMTAuNy0yNCAyNHMxMC43IDI0IDI0IDI0bDE1MiAwIDAgNDgtMjIwLjggMC0zMi44LTM5LjRDNjkuOSA4My4yIDYzLjEgODAgNTYgODBMMjQgODBDMTUuNyA4MCA4IDg0LjMgMy42IDkxLjRzLTQuOCAxNS45LTEuMSAyMy40bDQ4IDk2QzU0LjYgMjE4LjkgNjIuOSAyMjQgNzIgMjI0bDEwNy44IDAgMTA0IDE0My4xYzE1LjEgMjAuNyAzOS4xIDMyLjkgNjQuNyAzMi45bDc1LjUgMGM3NS4xIDAgMTM2LTYwLjkgMTM2LTEzNlM0OTkuMSAxMjggNDI0IDEyOGwtNDggMCAwLTQ4IDE1MiAwYzEzLjMgMCAyNC0xMC43IDI0LTI0cy0xMC43LTI0LTI0LTI0TDE3NiAzMnpNMzc2IDE5Mmw0OCAwYzM5LjggMCA3MiAzMi4yIDcyIDcycy0zMi4yIDcyLTcyIDcybC00OCAwIDAtMTQ0ek01NTIgNDE2Yy0xMy4zIDAtMjQgMTAuNy0yNCAyNCAwIDQuNC0zLjYgOC04IDhsLTI3MiAwYy0xMy4zIDAtMjQgMTAuNy0yNCAyNHMxMC43IDI0IDI0IDI0bDI3MiAwYzMwLjkgMCA1Ni0yNS4xIDU2LTU2IDAtMTMuMy0xMC43LTI0LTI0LTI0eiJdfSxmQWU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToibWl0dGVuIixpY29uOls0NDgsNTEyLFtdLCJmN2I1IiwiTTM1MiAzODRMNjQgMzg0IDUuNCAxNzguOUMxLjggMTY2LjQgMCAxNTMuNCAwIDE0MC4zIDAgNjIuOCA2Mi44IDAgMTQwLjMgMGwzLjQgMGM2NiAwIDEyMy41IDQ0LjkgMTM5LjUgMTA4LjlsMzEuNCAxMjUuOCAxNy42LTIwLjFDMzQ0LjggMjAwLjIgMzYyLjkgMTkyIDM4MiAxOTJsMi44IDBjMzQuOSAwIDYzLjMgMjguMyA2My4zIDYzLjMgMCAxNS45LTYgMzEuMi0xNi44IDQyLjlMMzUyIDM4NHpNMzIgNDY0YzAtMTcuNyAxNC4zLTMyIDMyLTMybDI4OCAwYzE3LjcgMCAzMiAxNC4zIDMyIDMybDAgMTZjMCAxNy43LTE0LjMgMzItMzIgMzJMNjQgNTEyYy0xNy43IDAtMzItMTQuMy0zMi0zMmwwLTE2eiJdfSxtQWU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZ2FzLXB1bXAiLGljb246WzUxMiw1MTIsWzk5ODFdLCJmNTJmIiwiTTMyIDY0QzMyIDI4LjcgNjAuNyAwIDk2IDBMMjU2IDBjMzUuMyAwIDY0IDI4LjcgNjQgNjRsMCAxOTIgOCAwYzQ4LjYgMCA4OCAzOS40IDg4IDg4bDAgMzJjMCAxMy4zIDEwLjcgMjQgMjQgMjRzMjQtMTAuNyAyNC0yNGwwLTE1NGMtMjcuNi03LjEtNDgtMzIuMi00OC02MmwwLTU5LjUtMjUuOC0yOC4zYy04LjktOS44LTguMi0yNSAxLjYtMzMuOXMyNS04LjIgMzMuOSAxLjZsNzEuNyA3OC44YzkuNCAxMC4zIDE0LjYgMjMuNyAxNC42IDM3LjdMNTEyIDM3NmMwIDM5LjgtMzIuMiA3Mi03MiA3MnMtNzItMzIuMi03Mi03MmwwLTMyYzAtMjIuMS0xNy45LTQwLTQwLTQwbC04IDAgMCAxNjEuNGM5LjMgMy4zIDE2IDEyLjIgMTYgMjIuNiAwIDEzLjMtMTAuNyAyNC0yNCAyNEw0MCA1MTJjLTEzLjMgMC0yNC0xMC43LTI0LTI0IDAtMTAuNSA2LjctMTkuMyAxNi0yMi42TDMyIDY0ek05NiA4MGwwIDk2YzAgOC44IDcuMiAxNiAxNiAxNmwxMjggMGM4LjggMCAxNi03LjIgMTYtMTZsMC05NmMwLTguOC03LjItMTYtMTYtMTZMMTEyIDY0Yy04LjggMC0xNiA3LjItMTYgMTZ6Il19LGdBZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJlbnZlbG9wZS1jaXJjbGUtY2hlY2siLGljb246WzY0MCw1MTIsW10sImU0ZTgiLCJNNjQgMTEyYzAtMjYuNSAyMS41LTQ4IDQ4LTQ4bDQxNiAwYzI2LjUgMCA0OCAyMS41IDQ4IDQ4bDAgODEuNGMtMjQuNC0xMS4yLTUxLjQtMTcuNC04MC0xNy40LTg3LjcgMC0xNjEuNyA1OC44LTE4NC43IDEzOS4yLTcuMS0xLjMtMTQuMS00LjItMjAuMS04LjhsLTIwOC0xNTZDNzEuMSAxNDEuMyA2NCAxMjcuMSA2NCAxMTJ6TTMwNCAzNjhjMCAyOC42IDYuMiA1NS42IDE3LjQgODBMMTI4IDQ0OGMtMzUuMyAwLTY0LTI4LjctNjQtNjRsMC0xODggMTk4LjQgMTQ4LjhjMTIuNiA5LjQgMjYuOSAxNS40IDQxLjcgMTcuOSAwIDEuOC0uMSAzLjUtLjEgNS4zem00OCAwYTE0NCAxNDQgMCAxIDEgMjg4IDAgMTQ0IDE0NCAwIDEgMSAtMjg4IDB6bTIwMS40LTYwLjljLTcuMS01LjItMTcuMi0zLjYtMjIuNCAzLjVsLTUzIDcyLjktMjYuOC0yNi44Yy02LjItNi4yLTE2LjQtNi4yLTIyLjYgMHMtNi4yIDE2LjQgMCAyMi42bDQwIDQwYzMuMyAzLjMgNy45IDUgMTIuNiA0LjZzOC45LTIuOCAxMS43LTYuNWw2NC04OGM1LjItNy4xIDMuNi0xNy4yLTMuNS0yMi4zeiJdfSxMRj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJwZXJzb24tc2thdGluZyIsaWNvbjpbNTEyLDUxMixbInNrYXRpbmciXSwiZjdjNSIsIk0zNjggNTZhNTYgNTYgMCAxIDEgMTEyIDAgNTYgNTYgMCAxIDEgLTExMiAwek0xMjggMTI4YzAtMTcuNyAxNC4zLTMyIDMyLTMybDE1MC4xIDBjNDkuOSAwIDc0LjkgNjAuMyAzOS42IDk1LjZsLTYzLjkgNjMuOSA2OS44IDMxYzE3LjMgNy43IDI4LjUgMjQuOSAyOC41IDQzLjlsMCA4NS42YzAgMTcuNy0xNC4zIDMyLTMyIDMycy0zMi0xNC4zLTMyLTMybDAtNzUuMi04Mi40LTM2LjZjLTQxLTE4LjItNTEtNzItMTkuMy0xMDMuN2w0MC40LTQwLjQtOTguNyAwYy0xNy43IDAtMzItMTQuMy0zMi0zMnpNODkuNCAzNjEuNGw3NS45LTc1LjljNy43IDE5LjcgMjEuNiAzNy4zIDQxIDQ5LjZsLTcxLjYgNzEuNmMtMTIuNSAxMi41LTMyLjggMTIuNS00NS4zIDBzLTEyLjUtMzIuOCAwLTQ1LjN6bTM0Ni41IDg3LjFjOC42IDIuMSAxMy44IDEwLjggMTEuNiAxOS40bC0uNCAxLjdjLTYuMiAyNC45LTI4LjYgNDIuNC01NC4zIDQyLjRMMzA0IDUxMmMtOC44IDAtMTYtNy4yLTE2LTE2czcuMi0xNiAxNi0xNmw4OC44IDBjMTEgMCAyMC42LTcuNSAyMy4zLTE4LjJsLjQtMS43YzIuMS04LjYgMTAuOC0xMy44IDE5LjQtMTEuNnpNMTQzLjIgNDg2LjNsLTYuMiAzLjFjLTIxLjYgMTAuOC00Ny42IDYuNi02NC42LTEwLjVMMTIuNyA0MTkuM2MtNi4yLTYuMi02LjItMTYuNCAwLTIyLjZzMTYuNC02LjIgMjIuNiAwbDU5LjYgNTkuNmM3LjMgNy4zIDE4LjUgOS4xIDI3LjcgNC41bDYuMi0zLjFjNy45LTQgMTcuNS0uNyAyMS41IDcuMnMuNyAxNy41LTcuMiAyMS41eiJdfSxiQWU9TEYsYWc9e3ByZWZpeDoiZmFzIixpY29uTmFtZToic3VuIixpY29uOls1NzYsNTEyLFs5NzI4XSwiZjE4NSIsIk0yODgtMzJjOC40IDAgMTYuMyA0LjQgMjAuNiAxMS43TDM2NC4xIDcyLjMgNDY4LjkgNDZjOC4yLTIgMTYuOSAuNCAyMi44IDYuM1M1MDAgNjcgNDk4IDc1LjFsLTI2LjMgMTA0LjcgOTIuNyA1NS41YzcuMiA0LjMgMTEuNyAxMi4yIDExLjcgMjAuNnMtNC40IDE2LjMtMTEuNyAyMC42TDQ3MS43IDMzMi4xIDQ5OCA0MzYuOGMyIDguMi0uNCAxNi45LTYuMyAyMi44UzQ3NyA0NjggNDY4LjkgNDY2bC0xMDQuNy0yNi4zLTU1LjUgOTIuN2MtNC4zIDcuMi0xMi4yIDExLjctMjAuNiAxMS43cy0xNi4zLTQuNC0yMC42LTExLjdMMjExLjkgNDM5LjcgMTA3LjIgNDY2Yy04LjIgMi0xNi44LS40LTIyLjgtNi4zUzc2IDQ0NSA3OCA0MzYuOGwyNi4yLTEwNC43LTkyLjYtNTUuNUM0LjQgMjcyLjIgMCAyNjQuNCAwIDI1NnM0LjQtMTYuMyAxMS43LTIwLjZMMTA0LjMgMTc5LjkgNzggNzUuMWMtMi04LjIgLjMtMTYuOCA2LjMtMjIuOFM5OSA0NCAxMDcuMiA0NmwxMDQuNyAyNi4yIDU1LjUtOTIuNiAxLjgtMi42YzQuNS01LjcgMTEuNC05LjEgMTguOC05LjF6bTAgMTQ0YTE0NCAxNDQgMCAxIDAgMCAyODggMTQ0IDE0NCAwIDEgMCAwLTI4OHptMCAyNDBhOTYgOTYgMCAxIDEgMC0xOTIgOTYgOTYgMCAxIDEgMCAxOTJ6Il19LCRGPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImJhc2ViYWxsIixpY29uOls1MTIsNTEyLFsxMjkzNTgsOTkxOCwiYmFzZWJhbGwtYmFsbCJdLCJmNDMzIiwiTTIzMi40IDEuMWMtMTIyLjIgMTEuNC0yMTkuNSAxMDguNy0yMzAuOSAyMzAuOSAxNi4yLS4xIDMyLTEuOCA0Ny4yLTUgMTMtMi43IDI1LjcgNS41IDI4LjQgMTguNXMtNS41IDI1LjctMTguNSAyOC40Yy0xOC40IDMuOS0zNy42IDYtNTcuMSA2LjEgMTEuNCAxMjIuMiAxMDguNyAyMTkuNSAyMzAuOSAyMzAuOSAuMS0xOS41IDIuMi0zOC43IDYuMS01Ny4xIDIuNy0xMyAxNS41LTIxLjMgMjguNC0xOC41czIxLjMgMTUuNSAxOC41IDI4LjRjLTMuMiAxNS4yLTQuOSAzMS01IDQ3LjIgMTIyLjItMTEuNCAyMTkuNS0xMDguNyAyMzAuOS0yMzAuOS0xNi4yIC4xLTMyIDEuOC00Ny4yIDUtMTMgMi43LTI1LjctNS41LTI4LjQtMTguNXM1LjUtMjUuNyAxOC41LTI4LjRjMTguNC0zLjkgMzcuNi02IDU3LjEtNi4xLTExLjQtMTIyLjItMTA4LjctMjE5LjUtMjMwLjktMjMwLjktLjEgMTkuNS0yLjIgMzguNy02LjEgNTcuMS0yLjcgMTMtMTUuNSAyMS4zLTI4LjQgMTguNXMtMjEuMy0xNS41LTE4LjUtMjguNGMzLjItMTUuMiA0LjktMzEgNS00Ny4yem0yLjggMTUxLjRjLTIxLjQgMzIuOS00OS41IDYwLjktODIuMyA4Mi4zLTExLjEgNy4yLTI2IDQuMS0zMy4yLTdzLTQuMS0yNiA3LTMzLjJjMjcuMi0xNy43IDUwLjUtNDEgNjguMy02OC4zIDcuMi0xMS4xIDIyLjEtMTQuMyAzMy4yLTdzMTQuMyAyMi4xIDcgMzMuMnpNMzkzLjEgMjg0LjJjNy4yIDExLjEgNC4xIDI2LTcgMzMuMi0yNy4yIDE3LjctNTAuNSA0MS02OC4zIDY4LjMtNy4yIDExLjEtMjIuMSAxNC4zLTMzLjIgN3MtMTQuMy0yMi4xLTctMzMuMmMyMS40LTMyLjkgNDkuNS02MC45IDgyLjMtODIuMyAxMS4xLTcuMiAyNi00LjEgMzMuMiA3eiJdfSx2QWU9JEYseUFlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImltYWdlIixpY29uOls0NDgsNTEyLFtdLCJmMDNlIiwiTTY0IDMyQzI4LjcgMzIgMCA2MC43IDAgOTZMMCA0MTZjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMzIwIDBjMzUuMyAwIDY0LTI4LjcgNjQtNjRsMC0zMjBjMC0zNS4zLTI4LjctNjQtNjQtNjRMNjQgMzJ6bTY0IDgwYTQ4IDQ4IDAgMSAxIDAgOTYgNDggNDggMCAxIDEgMC05NnpNMjcyIDIyNGM4LjQgMCAxNi4xIDQuNCAyMC41IDExLjVsODggMTQ0YzQuNSA3LjQgNC43IDE2LjcgLjUgMjQuM1MzNjguNyA0MTYgMzYwIDQxNkw4OCA0MTZjLTguOSAwLTE3LjItNS0yMS4zLTEyLjlzLTMuNS0xNy41IDEuNi0yNC44bDU2LTgwYzQuNS02LjQgMTEuOC0xMC4yIDE5LjctMTAuMnMxNS4yIDMuOCAxOS43IDEwLjJsMjYuNCAzNy44IDYxLjQtMTAwLjVjNC40LTcuMSAxMi4xLTExLjUgMjAuNS0xMS41eiJdfSx4QWU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToibm90ZGVmIixpY29uOlszODQsNTEyLFtdLCJlMWZlIiwiTTY0IDM5MC4zTDE1My41IDI1NiA2NCAxMjEuNyA2NCAzOTAuM3pNMTAyLjUgNDQ4TDI4MS41IDQ0OCAxOTIgMzEzLjcgMTAyLjUgNDQ4em0xMjgtMTkyTDMyMCAzOTAuMyAzMjAgMTIxLjcgMjMwLjUgMjU2ek0yODEuNSA2NEwxMDIuNSA2NCAxOTIgMTk4LjMgMjgxLjUgNjR6TTAgNDhDMCAyMS41IDIxLjUgMCA0OCAwTDMzNiAwYzI2LjUgMCA0OCAyMS41IDQ4IDQ4bDAgNDE2YzAgMjYuNS0yMS41IDQ4LTQ4IDQ4TDQ4IDUxMmMtMjYuNSAwLTQ4LTIxLjUtNDgtNDhMMCA0OHoiXX0sQUY9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiYmFza2V0YmFsbCIsaWNvbjpbNTEyLDUxMixbMTI3OTM2LCJiYXNrZXRiYWxsLWJhbGwiXSwiZjQzNCIsIk05Mi43IDU4LjhsNzguNCA3OC40YzE4LjItMjUgMjguOS01NS45IDI4LjktODkuMiAwLTE0LjEtMS45LTI3LjctNS41LTQwLjYtMzggOS40LTcyLjYgMjcuMi0xMDEuOCA1MS40ek01OC44IDkyLjdjLTI0LjIgMjkuMi00MiA2My44LTUxLjQgMTAxLjggMTIuOSAzLjYgMjYuNSA1LjUgNDAuNiA1LjUgMzMuMyAwIDY0LjEtMTAuNyA4OS4yLTI4LjlMNTguOCA5Mi43ek0yNTYgMGMtNC42IDAtOS4yIC4xLTEzLjcgLjQgMy43IDE1LjMgNS43IDMxLjIgNS43IDQ3LjYgMCA0Ni42LTE1LjkgODkuNC00Mi42IDEyMy40TDI1NiAyMjIuMSA0MTkuMyA1OC44QzM3NC45IDIyLjEgMzE4LjEgMCAyNTYgMHpNNDggMjQ4Yy0xNi40IDAtMzIuNC0yLTQ3LjYtNS43LS4yIDQuNS0uNCA5LjEtLjQgMTMuNyAwIDYyLjEgMjIuMSAxMTguOSA1OC44IDE2My4zTDIyMi4xIDI1NiAxNzEuNCAyMDUuNEMxMzcuNCAyMzIuMSA5NC42IDI0OCA0OCAyNDh6bTQ2My42IDIxLjdjLjItNC41IC40LTkuMSAuNC0xMy43IDAtNjIuMS0yMi4xLTExOC45LTU4LjgtMTYzLjNMMjg5LjkgMjU2IDM0MC42IDMwNi42YzM0LTI2LjcgNzYuOS00Mi42IDEyMy40LTQyLjYgMTYuNCAwIDMyLjQgMiA0Ny42IDUuN3ptLTcuMSA0Ny44Yy0xMi45LTMuNi0yNi41LTUuNS00MC42LTUuNS0zMy4zIDAtNjQuMSAxMC43LTg5LjIgMjguOWw3OC40IDc4LjRjMjQuMi0yOS4yIDQyLTYzLjggNTEuNC0xMDEuOHpNMzQwLjkgMzc0LjhjLTE4LjIgMjUtMjguOSA1NS45LTI4LjkgODkuMiAwIDE0LjEgMS45IDI3LjcgNS41IDQwLjYgMzgtOS40IDcyLjYtMjcuMiAxMDEuOC01MS40bC03OC40LTc4LjR6bS0zNC4zLTM0LjNMMjU2IDI4OS45IDkyLjcgNDUzLjJjNDQuMyAzNi43IDEwMS4yIDU4LjggMTYzLjMgNTguOCA0LjYgMCA5LjItLjEgMTMuNy0uNC0zLjctMTUuMy01LjctMzEuMi01LjctNDcuNiAwLTQ2LjYgMTUuOS04OS40IDQyLjYtMTIzLjR6Il19LHdBZT1BRixERj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJwZW5jaWwiLGljb246WzUxMiw1MTIsWzk5OTksNjE1MDQsInBlbmNpbC1hbHQiXSwiZjMwMyIsIk0zNi40IDM1My4yYzQuMS0xNC42IDExLjgtMjcuOSAyMi42LTM4LjdsMTgxLjItMTgxLjIgMzMuOS0zMy45YzE2LjYgMTYuNiA1MS4zIDUxLjMgMTA0IDEwNGwzMy45IDMzLjktMzMuOSAzMy45LTE4MS4yIDE4MS4yYy0xMC43IDEwLjctMjQuMSAxOC41LTM4LjcgMjIuNkwzMC40IDUxMC42Yy04LjMgMi4zLTE3LjMgMC0yMy40LTYuMlMtMS40IDQ4OS4zIC45IDQ4MUwzNi40IDM1My4yem01NS42LTMuN2MtNC40IDQuNy03LjYgMTAuNC05LjMgMTYuNmwtMjQuMSA4Ni45IDg2LjktMjQuMWM2LjQtMS44IDEyLjItNS4xIDE3LTkuN0w5MS45IDM0OS41em0zNTQtMTQ2LjFjLTE2LjYtMTYuNi01MS4zLTUxLjMtMTA0LTEwNEwzMDggNjUuNUMzMzQuNSAzOSAzNDkuNCAyNC4xIDM1Mi45IDIwLjYgMzY2LjQgNyAzODQuOC0uNiA0MDQtLjZTNDQxLjYgNyA0NTUuMSAyMC42bDM1LjcgMzUuN0M1MDQuNCA2OS45IDUxMiA4OC4zIDUxMiAxMDcuNHMtNy42IDM3LjYtMjEuMiA1MS4xYy0zLjUgMy41LTE4LjQgMTguNC00NC45IDQ0Ljl6Il19LE1BZT1ERix6QWU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToicGVyc29uLXdhbGtpbmctYXJyb3ctbG9vcC1sZWZ0IixpY29uOls2NDAsNTEyLFtdLCJlNTUxIiwiTTE2MCA4MGE1NiA1NiAwIDEgMCAwLTExMiA1NiA1NiAwIDEgMCAwIDExMnpNNzMuNCAyMjcuOWwyMi42LTIyLjYgMCA2OS4zYzAgMjggMTIuMiA1NC43IDMzLjUgNzIuOWw3MS40IDYxLjJjNS45IDUuMSA5LjggMTIuMSAxMC45IDE5LjhsMTIuNiA4OC4xYzIuNSAxNy41IDE4LjcgMjkuNyAzNi4yIDI3LjJzMjkuNy0xOC43IDI3LjItMzYuMmwtMTIuNi04OC4xYy0zLjMtMjMuMS0xNC45LTQ0LjEtMzIuNi01OS4zbC0zNC41LTI5LjYgMC0xMTUuMiAzLjggNC43YzE4LjIgMjIuOCA0NS44IDM2IDc1IDM2bDMzLjIgMGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMmwtMzMuMiAwYy05LjcgMC0xOC45LTQuNC0yNS0xMmwtMTcuOS0yMi40Yy0yMy0yOC44LTU3LjktNDUuNi05NC44LTQ1LjYtMzIuMiAwLTYzLjEgMTIuOC04NS44IDM1LjZMMjguMSAxODIuNkMxMC4xIDIwMC42IDAgMjI1IDAgMjUwLjVMMCAyODhjMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMmwwLTM3LjVjMC04LjUgMy40LTE2LjYgOS40LTIyLjZ6TTg1LjggNDA3LjNjLTEuNSA1LjItNC4zIDEwLTguMSAxMy44TDkuNCA0ODkuNGMtMTIuNSAxMi41LTEyLjUgMzIuOCAwIDQ1LjNzMzIuOCAxMi41IDQ1LjMgMGw2OC4zLTY4LjNjMTEuNS0xMS41IDE5LjktMjUuOCAyNC40LTQxLjVsMi4yLTcuNi00Ni0zOS40Yy0yLjUtMi4yLTUtNC40LTcuNC02LjhMODUuOCA0MDcuM3pNMzU5IDMzNWMtOS40IDkuNC05LjQgMjQuNiAwIDMzLjlsNzIgNzJjOS40IDkuNCAyNC42IDkuNCAzMy45IDBzOS40LTI0LjYgMC0zMy45bC0zMS0zMSAxMDIuMSAwYzEuMiAwIDIuNC0uMSAzLjUtLjMgNTYuMS0zLjkgMTAwLjUtNTAuNiAxMDAuNS0xMDcuNyAwLTU5LjYtNDguNC0xMDgtMTA4LTEwOGwtOTIgMGMtMTMuMyAwLTI0IDEwLjctMjQgMjRzMTAuNyAyNCAyNCAyNGw5MiAwYzMzLjEgMCA2MCAyNi45IDYwIDYwcy0yNi45IDYwLTYwIDYwbC05OC4xIDAgMzEtMzFjOS40LTkuNCA5LjQtMjQuNiAwLTMzLjlzLTI0LjYtOS40LTMzLjkgMGwtNzIgNzJ6Il19LGtBZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJkaWNlLXNpeCIsaWNvbjpbNDQ4LDUxMixbOTg2MV0sImY1MjYiLCJNMCA5NkMwIDYwLjcgMjguNyAzMiA2NCAzMmwzMjAgMGMzNS4zIDAgNjQgMjguNyA2NCA2NGwwIDMyMGMwIDM1LjMtMjguNyA2NC02NCA2NEw2NCA0ODBjLTM1LjMgMC02NC0yOC43LTY0LTY0TDAgOTZ6bTE2MCA2NGEzMiAzMiAwIDEgMCAtNjQgMCAzMiAzMiAwIDEgMCA2NCAwek0xMjggMjg4YTMyIDMyIDAgMSAwIDAtNjQgMzIgMzIgMCAxIDAgMCA2NHptMzIgNjRhMzIgMzIgMCAxIDAgLTY0IDAgMzIgMzIgMCAxIDAgNjQgMHpNMzIwIDE5MmEzMiAzMiAwIDEgMCAwLTY0IDMyIDMyIDAgMSAwIDAgNjR6bTMyIDY0YTMyIDMyIDAgMSAwIC02NCAwIDMyIDMyIDAgMSAwIDY0IDB6TTMyMCAzODRhMzIgMzIgMCAxIDAgMC02NCAzMiAzMiAwIDEgMCAwIDY0eiJdfSxFRj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJhbmdsZXMtZG93biIsaWNvbjpbMzg0LDUxMixbImFuZ2xlLWRvdWJsZS1kb3duIl0sImYxMDMiLCJNMjE0LjYgNDcwLjZjLTEyLjUgMTIuNS0zMi44IDEyLjUtNDUuMyAwbC0xNjAtMTYwYy0xMi41LTEyLjUtMTIuNS0zMi44IDAtNDUuM3MzMi44LTEyLjUgNDUuMyAwTDE5MiA0MDIuNyAzMjkuNCAyNjUuNGMxMi41LTEyLjUgMzIuOC0xMi41IDQ1LjMgMHMxMi41IDMyLjggMCA0NS4zbC0xNjAgMTYwem0xNjAtMzUybC0xNjAgMTYwYy0xMi41IDEyLjUtMzIuOCAxMi41LTQ1LjMgMGwtMTYwLTE2MGMtMTIuNS0xMi41LTEyLjUtMzIuOCAwLTQ1LjNzMzIuOC0xMi41IDQ1LjMgMEwxOTIgMjEwLjcgMzI5LjQgNzMuNGMxMi41LTEyLjUgMzIuOC0xMi41IDQ1LjMgMHMxMi41IDMyLjggMCA0NS4zeiJdfSxTQWU9RUYsQ0FlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InN5cmluZ2UiLGljb246WzU3Niw1MTIsWzEyODEzN10sImY0OGUiLCJNNDk3LjUtMTdjLTkuNC05LjQtMjQuNi05LjQtMzMuOSAwcy05LjQgMjQuNiAwIDMzLjlsMTUgMTUtNDYuMSA0Ni4xLTYzLTYzYy05LjQtOS40LTI0LjYtOS40LTMzLjkgMHMtOS40IDI0LjYgMCAzMy45bDcgNy03OC4xIDc4LjEgNDEgNDFjOS40IDkuNCA5LjQgMjQuNiAwIDMzLjlzLTI0LjYgOS40LTMzLjkgMGwtNDEtNDEtNDYuMSA0Ni4xIDQxIDQxYzkuNCA5LjQgOS40IDI0LjYgMCAzMy45cy0yNC42IDkuNC0zMy45IDBsLTQxLTQxLTM3LjcgMzcuN2MtMTAuNSAxMC41LTE2LjQgMjQuNy0xNi40IDM5LjZsMCA4OC44LTU3IDU3Yy05LjQgOS40LTkuNCAyNC42IDAgMzMuOXMyNC42IDkuNCAzMy45IDBsNTctNTcgODguOCAwYzE0LjkgMCAyOS4xLTUuOSAzOS42LTE2LjRsMjI5LjctMjI5LjcgNyA3YzkuNCA5LjQgMjQuNiA5LjQgMzMuOSAwczkuNC0yNC42IDAtMzMuOWwtNjMtNjMgNDYuMS00Ni4xIDE1IDE1YzkuNCA5LjQgMjQuNiA5LjQgMzMuOSAwczkuNC0yNC42IDAtMzMuOWwtNjQtNjR6Il19LFBGPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6IndoZWF0LWF3biIsaWNvbjpbNTc2LDUxMixbIndoZWF0LWFsdCJdLCJlMmNkIiwiTTc5LjcgMjM0LjZjNi4yLTQuMSAxNC43LTMuNCAyMC4xIDIuMWw0Ni4xIDQ2LjEgNi4xIDYuN2MxOS43IDIzLjggMjYuMyA1NSAxOS4yIDgzLjkgMzEuNy03LjcgNjYuMiAxIDkwLjYgMjUuM2w0Ni4xIDQ2LjFjNi4yIDYuMiA2LjIgMTYuNCAwIDIyLjZsLTcuNCA3LjRjLTM3LjUgMzcuNS05OC4zIDM3LjUtMTM1LjggMEwxMzQuMSA0NDQuMyA0OS40IDUyOWMtOS40IDkuNC0yNC41IDkuNC0zMy45IDAtOS40LTkuNC05LjQtMjQuNiAwLTMzLjlsODQuNy04NC43LTMwLjUtMzAuNWMtMzcuNS0zNy41LTM3LjUtOTguMyAwLTEzNS43bDcuNC03LjQgMi41LTIuMXptMTA0LTEwNGM2LjItNC4xIDE0LjctMy40IDIwLjEgMi4xbDQ2LjEgNDYuMSA2LjEgNi43YzE5LjcgMjMuOCAyNi4zIDU1IDE5LjIgODMuOSAzMS43LTcuNyA2Ni4yIDEgOTAuNiAyNS4zbDQ2LjEgNDYuMWM2LjIgNi4yIDYuMiAxNi40IDAgMjIuNmwtNy40IDcuNGMtMzcuNSAzNy41LTk4LjMgMzcuNS0xMzUuOCAwbC05NC45LTk0LjljLTM3LjUtMzcuNS0zNy41LTk4LjMgMC0xMzUuN2w3LjQtNy40IDIuNS0yLjF6TTQ5NS4yIDE1YzkuNC05LjQgMjQuNi05LjQgMzQgMCA4LjggOC44IDkuMyAyMi43IDEuNiAzMi4yTDUyOS4yIDQ5IDQxNC43IDE2My40YzcuNyAxIDE1LjIgMyAyMi41IDUuOUw0OTUuNSAxMTFjOS40LTkuNCAyNC42LTkuNCAzNCAwIDguOCA4LjggOS4zIDIyLjcgMS42IDMyLjFsLTEuNyAxLjgtNTIuNyA1Mi43IDM5IDM5YzYuMiA2LjIgNi4yIDE2LjQgMCAyMi42bC03LjQgNy40Yy0zNy41IDM3LjUtOTguMyAzNy41LTEzNS44IDBsLTk0LjktOTQuOWMtMzcuNS0zNy41LTM3LjUtOTguMyAwLTEzNS43bDcuNC03LjQgMi41LTIuMWM2LjItNC4xIDE0LjctMy40IDIwLjEgMi4xbDM5IDM5IDUyLjctNTIuN2M5LjQtOS40IDI0LjYtOS40IDM0IDAgOC44IDguOCA5LjMgMjIuNyAxLjYgMzIuMWwtMS43IDEuOC01OC4zIDU4LjNjMi44IDcuMSA0LjcgMTQuNSA1LjcgMjIuMUw0OTUuMiAxNXoiXX0sX0FlPVBGLFRBZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJwbGFuZS11cCIsaWNvbjpbNTEyLDUxMixbXSwiZTIyZCIsIk0yMDAgMjRjMC0zMC45IDI1LjEtNTYgNTYtNTZzNTYgMjUuMSA1NiA1NmwwIDEyNy4zIDE3My42IDE1OS4yYzYuNiA2LjEgMTAuNCAxNC42IDEwLjQgMjMuNmwwIDQzLjdjMCAxMC45LTEwLjcgMTguNi0yMS4xIDE1LjJsLTE2Mi45LTU0LjMgMCA5OS43IDY2IDUyLjhjMy44IDMgNiA3LjYgNiAxMi41bDAgMTkuOGMwIDEwLjQtOS44IDE4LTE5LjkgMTUuNUwyNTYgNTEyIDE0Ny45IDUzOWMtMTAuMSAyLjUtMTkuOS01LjEtMTkuOS0xNS41bDAtMTkuOGMwLTQuOSAyLjItOS41IDYtMTIuNWw2Ni01Mi44IDAtOTkuNy0xNjIuOSA1NC4zQzI2LjcgMzk2LjQgMTYgMzg4LjcgMTYgMzc3LjhsMC00My43YzAtOSAzLjgtMTcuNSAxMC40LTIzLjZMMjAwIDE1MS4zIDIwMCAyNHoiXX0sTEFlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImFsaWduLWNlbnRlciIsaWNvbjpbNDQ4LDUxMixbXSwiZjAzNyIsIk0zNTIgNjRjMC0xNy43LTE0LjMtMzItMzItMzJMMTI4IDMyYy0xNy43IDAtMzIgMTQuMy0zMiAzMnMxNC4zIDMyIDMyIDMybDE5MiAwYzE3LjcgMCAzMi0xNC4zIDMyLTMyem05NiAxMjhjMC0xNy43LTE0LjMtMzItMzItMzJMMzIgMTYwYy0xNy43IDAtMzIgMTQuMy0zMiAzMnMxNC4zIDMyIDMyIDMybDM4NCAwYzE3LjcgMCAzMi0xNC4zIDMyLTMyek0wIDQ0OGMwIDE3LjcgMTQuMyAzMiAzMiAzMmwzODQgMGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMkwzMiA0MTZjLTE3LjcgMC0zMiAxNC4zLTMyIDMyek0zNTIgMzIwYzAtMTcuNy0xNC4zLTMyLTMyLTMybC0xOTIgMGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJzMTQuMyAzMiAzMiAzMmwxOTIgMGMxNy43IDAgMzItMTQuMyAzMi0zMnoiXX0sJEFlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImhvY2tleS1wdWNrIixpY29uOls1MTIsNTEyLFtdLCJmNDUzIiwiTTI1NiAyNTZDMTE0LjYgMjU2IDAgMjEzIDAgMTYwczExNC42LTk2IDI1Ni05NiAyNTYgNDMgMjU2IDk2LTExNC42IDk2LTI1NiA5NnpNMCAzNTJMMCAyNDIuN2MxNi45IDEyLjMgMzcgMjIuMiA1OC4xIDMwLjEgNTMgMTkuOSAxMjMgMzEuMiAxOTcuOSAzMS4yczE0NC45LTExLjMgMTk3LjktMzEuMmMyMS4yLTcuOSA0MS4yLTE3LjggNTguMS0zMC4xTDUxMiAzNTJjMCA1My0xMTQuNiA5Ni0yNTYgOTZTMCA0MDUgMCAzNTJ6Il19LElGPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImNpcmNsZS1hcnJvdy1sZWZ0IixpY29uOls1MTIsNTEyLFsiYXJyb3ctY2lyY2xlLWxlZnQiXSwiZjBhOCIsIk0yNTYgNTEyYTI1NiAyNTYgMCAxIDAgMC01MTIgMjU2IDI1NiAwIDEgMCAwIDUxMnpNMTM1IDIzOWw4MC04MGM5LjQtOS40IDI0LjYtOS40IDMzLjkgMHM5LjQgMjQuNiAwIDMzLjlsLTM5IDM5IDE1MC4xIDBjMTMuMyAwIDI0IDEwLjcgMjQgMjRzLTEwLjcgMjQtMjQgMjRsLTE1MC4xIDAgMzkgMzljOS40IDkuNCA5LjQgMjQuNiAwIDMzLjlzLTI0LjYgOS40LTMzLjkgMGwtODAtODBjLTkuNC05LjQtOS40LTI0LjYgMC0zMy45eiJdfSxBQWU9SUYsREFlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InBsdWctY2lyY2xlLWJvbHQiLGljb246WzY0MCw1MTIsW10sImU1NWIiLCJNMTkyLTMyYzE3LjcgMCAzMiAxNC4zIDMyIDMybDAgOTYgMTI4IDAgMC05NmMwLTE3LjcgMTQuMy0zMiAzMi0zMnMzMiAxNC4zIDMyIDMybDAgOTYgNjQgMGMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMmwwIDQ4LjdjLTk4LjYgOC4xLTE3NiA5MC43LTE3NiAxOTEuMyAwIDI3LjMgNS43IDUzLjMgMTYgNzYuOWwwIDMuMWMwIDE3LjctMTQuMyAzMi0zMiAzMnMtMzItMTQuMy0zMi0zMmwwLTY2LjdDMTY1LjIgMzk4LjEgOTYgMzE5LjEgOTYgMjI0bDAtNjRjLTE3LjcgMC0zMi0xNC4zLTMyLTMyUzc4LjMgOTYgOTYgOTZsNjQgMCAwLTk2YzAtMTcuNyAxNC4zLTMyIDMyLTMyek0zNTIgNDAwYTE0NCAxNDQgMCAxIDEgMjg4IDAgMTQ0IDE0NCAwIDEgMSAtMjg4IDB6bTE3Ny40LTc3Yy01LjgtNC4yLTEzLjgtNC0xOS40IC41bC04MCA2NGMtNS4zIDQuMi03LjQgMTEuNC01LjEgMTcuOFM0MzMuMiA0MTYgNDQwIDQxNmwzMi45IDAtMTUuOSA0Mi40Yy0yLjUgNi43LS4yIDE0LjMgNS42IDE4LjZzMTMuOCA0IDE5LjQtLjVsODAtNjRjNS4zLTQuMiA3LjQtMTEuNCA1LjEtMTcuOFM1NTguOCAzODQgNTUyIDM4NGwtMzIuOSAwIDE1LjktNDIuNGMyLjUtNi43IC4yLTE0LjMtNS42LTE4LjZ6Il19LEVBZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJyZXN0cm9vbSIsaWNvbjpbNjQwLDUxMixbXSwiZjdiZCIsIk04MCA0OGE0OCA0OCAwIDEgMSA5NiAwIDQ4IDQ4IDAgMSAxIC05NiAwem00MCAzMDRsMCAxMjhjMCAxNy43LTE0LjMgMzItMzIgMzJzLTMyLTE0LjMtMzItMzJsMC0xNTQuOGMtOC4xIDkuMi0yMS4xIDEzLjItMzMuNSA5LjQtMTYuOS01LjMtMjYuMy0yMy4yLTIxLTQwLjFsMjkuNy05NS4yQzQ0LjQgMTU2LjkgODMuNiAxMjggMTI4IDEyOHM4My42IDI4LjkgOTYuOCA3MS4ybDI5LjcgOTUuMmM1LjMgMTYuOS00LjEgMzQuOC0yMSA0MC4xLTEyLjQgMy45LTI1LjQtLjItMzMuNS05LjRMMjAwIDQ4MGMwIDE3LjctMTQuMyAzMi0zMiAzMnMtMzItMTQuMy0zMi0zMmwwLTEyOC0xNiAwek0zMjAgMGMxMy4zIDAgMjQgMTAuNyAyNCAyNGwwIDQ2NGMwIDEzLjMtMTAuNyAyNC0yNCAyNHMtMjQtMTAuNy0yNC0yNGwwLTQ2NGMwLTEzLjMgMTAuNy0yNCAyNC0yNHpNNDY0IDQ4YTQ4IDQ4IDAgMSAxIDk2IDAgNDggNDggMCAxIDEgLTk2IDB6TTQ0MCA0ODBsMC05Ni0xNy44IDBjLTEwLjkgMC0xOC42LTEwLjctMTUuMi0yMS4xbDktMjYuOWMtMy4yIDAtNi40LS41LTkuNS0xLjUtMTYuOS01LjMtMjYuMy0yMy4yLTIxLTQwLjFsMjkuNy05NS4yQzQyOC40IDE1Ni45IDQ2Ny42IDEyOCA1MTIgMTI4czgzLjYgMjguOSA5Ni44IDcxLjJsMjkuNyA5NS4yYzUuMyAxNi45LTQuMSAzNC44LTIxIDQwLjEtMy4yIDEtNi40IDEuNS05LjUgMS41bDkgMjYuOWMzLjUgMTAuNC00LjMgMjEuMS0xNS4yIDIxLjFsLTE3LjggMCAwIDk2YzAgMTcuNy0xNC4zIDMyLTMyIDMycy0zMi0xNC4zLTMyLTMybDAtOTYtMTYgMCAwIDk2YzAgMTcuNy0xNC4zIDMyLTMyIDMycy0zMi0xNC4zLTMyLTMyeiJdfSxQQWU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiYW5jaG9yLWxvY2siLGljb246WzY0MCw1MTIsW10sImU0YWQiLCJNMzIwLjUgOTZhMzIgMzIgMCAxIDEgLTY0IDAgMzIgMzIgMCAxIDEgNjQgMHptLTMyLTk2Yy01MyAwLTk2IDQzLTk2IDk2IDAgNDEuOCAyNi43IDc3LjQgNjQgOTAuNWwwIDI1Ny45Yy02Mi45LTE0LjMtMTEwLjItNjkuNy0xMTEuOS0xMzYuNWwxNi4xIDE0LjFjMTAgOC43IDI1LjEgNy43IDMzLjktMi4zczcuNy0yNS4xLTIuMy0zMy45bC02NC01NmMtOS03LjktMjIuNi03LjktMzEuNiAwbC02NCA1NmMtMTAgOC43LTExIDIzLjktMi4zIDMzLjlzMjMuOSAxMSAzMy45IDIuM2wxNi4yLTE0LjJjMi4xIDExMy4xIDk0LjQgMjA0LjEgMjA4IDIwNC4xIDI4LjMgMCA1NS40LTUuNyA4MC0xNS45bDAtLjIgMC03Mi4yYy0xNC40IDkuNi0zMC42IDE2LjctNDggMjAuN2wwLTI1Ny45YzM3LjMtMTMuMiA2NC00OC43IDY0LTkwLjUgMC01My00My05Ni05Ni05NnptMjcyIDMwNC4xbDAgNDcuOS02NCAwIDAtNDcuOWMwLTE3LjcgMTQuMy0zMiAzMi0zMnMzMiAxNC4zIDMyIDMyek00MTYuNSA0MDBsMCA5NmMwIDI2LjUgMjEuNSA0OCA0OCA0OGwxMjggMGMyNi41IDAgNDgtMjEuNSA0OC00OGwwLTk2YzAtMjAuOS0xMy40LTM4LjctMzItNDUuM2wwLTUwLjZjMC00NC4yLTM1LjgtODAtODAtODBzLTgwIDM1LjgtODAgODBsMCA1MC42Yy0xOC42IDYuNi0zMiAyNC40LTMyIDQ1LjN6Il19LElBZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJ0aW1lbGluZSIsaWNvbjpbNTc2LDUxMixbXSwiZTI5YyIsIk0xNjAgMTY5LjNjMjguMy0xMi4zIDQ4LTQwLjUgNDgtNzMuMyAwLTQ0LjItMzUuOC04MC04MC04MFM0OCA1MS44IDQ4IDk2YzAgMzIuOCAxOS43IDYxIDQ4IDczLjNsMCA1NC43LTY0IDBjLTE3LjcgMC0zMiAxNC4zLTMyIDMyczE0LjMgMzIgMzIgMzJsMjI0IDAgMCA1NC43Yy0yOC4zIDEyLjMtNDggNDAuNS00OCA3My4zIDAgNDQuMiAzNS44IDgwIDgwIDgwczgwLTM1LjggODAtODBjMC0zMi44LTE5LjctNjEtNDgtNzMuM2wwLTU0LjcgMjI0IDBjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJsLTY0IDAgMC01NC43YzI4LjMtMTIuMyA0OC00MC41IDQ4LTczLjMgMC00NC4yLTM1LjgtODAtODAtODBzLTgwIDM1LjgtODAgODBjMCAzMi44IDE5LjcgNjEgNDggNzMuM2wwIDU0LjctMjU2IDAgMC01NC43eiJdfSxOQWU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToibGlnaHRidWxiIixpY29uOlszODQsNTEyLFsxMjgxNjFdLCJmMGViIiwiTTI5Mi45IDM4NGM3LjMtMjIuMyAyMS45LTQyLjUgMzguNC01OS45IDMyLjctMzQuNCA1Mi43LTgwLjkgNTIuNy0xMzIuMSAwLTEwNi04Ni0xOTItMTkyLTE5MlMwIDg2IDAgMTkyYzAgNTEuMiAyMCA5Ny43IDUyLjcgMTMyLjEgMTYuNSAxNy40IDMxLjIgMzcuNiAzOC40IDU5LjlsMjAxLjcgMHpNMjg4IDQzMmwtMTkyIDAgMCAxNmMwIDQ0LjIgMzUuOCA4MCA4MCA4MGwzMiAwYzQ0LjIgMCA4MC0zNS44IDgwLTgwbDAtMTZ6TTE4NCAxMTJjLTM5LjggMC03MiAzMi4yLTcyIDcyIDAgMTMuMy0xMC43IDI0LTI0IDI0cy0yNC0xMC43LTI0LTI0YzAtNjYuMyA1My43LTEyMCAxMjAtMTIwIDEzLjMgMCAyNCAxMC43IDI0IDI0cy0xMC43IDI0LTI0IDI0eiJdfSxORj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJjaXJjbGUtYXJyb3ctcmlnaHQiLGljb246WzUxMiw1MTIsWyJhcnJvdy1jaXJjbGUtcmlnaHQiXSwiZjBhOSIsIk0yNTYgNTEyYTI1NiAyNTYgMCAxIDAgMC01MTIgMjU2IDI1NiAwIDEgMCAwIDUxMnptNDEtMTU5Yy05LjQgOS40LTI0LjYgOS40LTMzLjkgMHMtOS40LTI0LjYgMC0zMy45bDM5LTM5LTE1MC4xIDBjLTEzLjMgMC0yNC0xMC43LTI0LTI0czEwLjctMjQgMjQtMjRsMTUwLjEgMC0zOS0zOWMtOS40LTkuNC05LjQtMjQuNiAwLTMzLjlzMjQuNi05LjQgMzMuOSAwbDgwIDgwYzkuNCA5LjQgOS40IDI0LjYgMCAzMy45bC04MCA4MHoiXX0sRkFlPU5GLE9BZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJtYXJzLWFuZC12ZW51cyIsaWNvbjpbNTEyLDUxMixbOTg5M10sImYyMjQiLCJNMzY4IDBjLTE3LjcgMC0zMi0xNC4zLTMyLTMyczE0LjMtMzIgMzItMzJsMTEyIDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJsMCAxMTJjMCAxNy43LTE0LjMgMzItMzIgMzJzLTMyLTE0LjMtMzItMzJsMC0zNC43LTYzIDYzYzE5LjUgMjguNCAzMSA2Mi43IDMxIDk5LjggMCA4Ni4zLTYyLjEgMTU4LjEtMTQ0IDE3My4xbDAgMzQuOSAzMiAwYzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMybC0zMiAwIDAgMzJjMCAxNy43LTE0LjMgMzItMzIgMzJzLTMyLTE0LjMtMzItMzJsMC0zMi0zMiAwYy0xNy43IDAtMzItMTQuMy0zMi0zMnMxNC4zLTMyIDMyLTMybDMyIDAgMC0zNC45Yy04MS45LTE1LTE0NC04Ni44LTE0NC0xNzMuMSAwLTk3LjIgNzguOC0xNzYgMTc2LTE3NiAzNyAwIDcxLjQgMTEuNCA5OS44IDMxbDYzLTYzLTM0LjcgMHpNMzUyIDIwOGExMTIgMTEyIDAgMSAwIC0yMjQgMCAxMTIgMTEyIDAgMSAwIDIyNCAweiJdfSxpZz17cHJlZml4OiJmYXMiLGljb25OYW1lOiJuZXR3b3JrLXdpcmVkIixpY29uOls1NzYsNTEyLFtdLCJmNmZmIiwiTTI0OCA4OGw4MCAwIDAgNDgtODAgMCAwLTQ4em0tOC01NmMtMjYuNSAwLTQ4IDIxLjUtNDggNDhsMCA2NGMwIDI2LjUgMjEuNSA0OCA0OCA0OGwxNiAwIDAgMzItMjI0IDBjLTE3LjcgMC0zMiAxNC4zLTMyIDMyczE0LjMgMzIgMzIgMzJsOTYgMCAwIDMyLTE2IDBjLTI2LjUgMC00OCAyMS41LTQ4IDQ4bDAgNjRjMCAyNi41IDIxLjUgNDggNDggNDhsOTYgMGMyNi41IDAgNDgtMjEuNSA0OC00OGwwLTY0YzAtMjYuNS0yMS41LTQ4LTQ4LTQ4bC0xNiAwIDAtMzIgMTkyIDAgMCAzMi0xNiAwYy0yNi41IDAtNDggMjEuNS00OCA0OGwwIDY0YzAgMjYuNSAyMS41IDQ4IDQ4IDQ4bDk2IDBjMjYuNSAwIDQ4LTIxLjUgNDgtNDhsMC02NGMwLTI2LjUtMjEuNS00OC00OC00OGwtMTYgMCAwLTMyIDk2IDBjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJsLTIyNCAwIDAtMzIgMTYgMGMyNi41IDAgNDgtMjEuNSA0OC00OGwwLTY0YzAtMjYuNS0yMS41LTQ4LTQ4LTQ4bC05NiAwek00NDggMzc2bDggMCAwIDQ4LTgwIDAgMC00OCA3MiAwem0tMjU2IDBsOCAwIDAgNDgtODAgMCAwLTQ4IDcyIDB6Il19LFJBZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJidWlsZGluZy1zaGllbGQiLGljb246WzU3Niw1MTIsW10sImU0ZDgiLCJNOTYgMEM2MC43IDAgMzIgMjguNyAzMiA2NGwwIDM4NGMwIDM1LjMgMjguNyA2NCA2NCA2NGwyMDEuMiAwYy0xMi41LTE0LjctMjMuMi0zMC44LTMxLjgtNDhsLTg5LjUgMCAwLTgwYzAtMTcuNyAxNC4zLTMyIDMyLTMybDMyIDAgMC0yNi43YzAtMTguMSA2LjEtMzUuMiAxNi42LTQ4LjgtLjQtMS40LS42LTIuOS0uNi00LjVsMC0zMmMwLTguOCA3LjItMTYgMTYtMTZsMzIgMGM4LjggMCAxNiA3LjIgMTYgMTZsMCAxIDg2LjctMjguOWMzLjEtMSA2LjItMS44IDkuMy0yLjVMNDE2IDY0YzAtMzUuMy0yOC43LTY0LTY0LTY0TDk2IDB6bTMyIDExMmMwLTguOCA3LjItMTYgMTYtMTZsMzIgMGM4LjggMCAxNiA3LjIgMTYgMTZsMCAzMmMwIDguOC03LjIgMTYtMTYgMTZsLTMyIDBjLTguOCAwLTE2LTcuMi0xNi0xNmwwLTMyek0yNzIgOTZsMzIgMGM4LjggMCAxNiA3LjIgMTYgMTZsMCAzMmMwIDguOC03LjIgMTYtMTYgMTZsLTMyIDBjLTguOCAwLTE2LTcuMi0xNi0xNmwwLTMyYzAtOC44IDcuMi0xNiAxNi0xNnpNMTI4IDI0MGMwLTguOCA3LjItMTYgMTYtMTZsMzIgMGM4LjggMCAxNiA3LjIgMTYgMTZsMCAzMmMwIDguOC03LjIgMTYtMTYgMTZsLTMyIDBjLTguOCAwLTE2LTcuMi0xNi0xNmwwLTMyek00NDUuMyA0ODguNWwtMTMuMyA2LjMgMC0xODguMSA5NiAzMiAwIDE5LjZjMCA1NS44LTMyLjIgMTA2LjUtODIuNyAxMzAuM3pNNDIxLjkgMjU5LjVsLTExMiAzNy4zYy0xMy4xIDQuNC0yMS45IDE2LjYtMjEuOSAzMC40bDAgMzEuMWMwIDc0LjQgNDMgMTQyLjEgMTEwLjIgMTczLjdsMTguNSA4LjdjNC44IDIuMiAxMCAzLjQgMTUuMiAzLjRzMTAuNS0xLjIgMTUuMi0zLjRsMTguNS04LjdDNTMzIDUwMC4zIDU3NiA0MzIuNiA1NzYgMzU4LjJsMC0zMS4xYzAtMTMuOC04LjgtMjYtMjEuOS0zMC40bC0xMTItMzcuM2MtNi42LTIuMi0xMy43LTIuMi0yMC4yIDB6Il19LEJBZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJjb2RlIixpY29uOls1NzYsNTEyLFtdLCJmMTIxIiwiTTM2MC44IDEuMmMtMTctNC45LTM0LjcgNS0zOS42IDIybC0xMjggNDQ4Yy00LjkgMTcgNSAzNC43IDIyIDM5LjZzMzQuNy01IDM5LjYtMjJsMTI4LTQ0OGM0LjktMTctNS0zNC43LTIyLTM5LjZ6bTY0LjYgMTM2LjFjLTEyLjUgMTIuNS0xMi41IDMyLjggMCA0NS4zbDczLjQgNzMuNC03My40IDczLjRjLTEyLjUgMTIuNS0xMi41IDMyLjggMCA0NS4zczMyLjggMTIuNSA0NS4zIDBsOTYtOTZjMTIuNS0xMi41IDEyLjUtMzIuOCAwLTQ1LjNsLTk2LTk2Yy0xMi41LTEyLjUtMzIuOC0xMi41LTQ1LjMgMHptLTI3NC43IDBjLTEyLjUtMTIuNS0zMi44LTEyLjUtNDUuMyAwbC05NiA5NmMtMTIuNSAxMi41LTEyLjUgMzIuOCAwIDQ1LjNsOTYgOTZjMTIuNSAxMi41IDMyLjggMTIuNSA0NS4zIDBzMTIuNS0zMi44IDAtNDUuM0w3Ny4zIDI1NiAxNTAuNiAxODIuNmMxMi41LTEyLjUgMTIuNS0zMi44IDAtNDUuM3oiXX0sRkY9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZmVhdGhlci1wb2ludGVkIixpY29uOls1MTIsNTEyLFsiZmVhdGhlci1hbHQiXSwiZjU2YiIsIk00NzUuMyAuMWM5LjktLjggMTkuNiAzIDI2LjYgMTBzMTAuOCAxNi43IDEwIDI2LjZjLTQgNDkuMy0xNy40IDEyNi4yLTQ2LjMgMTk5LjctMS44IDQuNS01LjUgNy45LTEwLjIgOS4zTDM3NC41IDI3MGMtMy45IDEuMi02LjUgNC43LTYuNSA4LjggMCA1LjEgNC4xIDkuMiA5LjIgOS4ybDM4LjYgMGMxMiAwIDE5LjcgMTIuOCAxMy41IDIzLjEtNCA2LjctOC4zIDEzLjItMTIuNyAxOS42LTIgMi45LTUgNS04LjQgNi4xTDMxMC41IDM2NmMtMy45IDEuMi02LjUgNC43LTYuNSA4LjggMCA1LjEgNC4xIDkuMiA5LjIgOS4ybDE2IDBjMTQuNiAwIDIxIDE3LjQgOC44IDI1LjQtNjggNDUtMTM3LjcgNDMuMy0xODIuNCAzMS4zLTEyLjctMy40LTI0LTkuOS0zNC40LTE3LjlMNDggNDk2Yy04LjggOC44LTIzLjIgOC44LTMyIDBzLTguOC0yMy4yIDAtMzJsODAtODAgLjUgLjVjLjctMS4zIDEuNi0yLjUgMi43LTMuNkwyNTYgMjI0YzguOC04LjggOC44LTIzLjIgMC0zMnMtMjMuMi04LjgtMzIgMEw4OS43IDMyNi4yYy04LjkgOC45LTI0IDQuNC0yNS04LjItNC4zLTUzLjIgOS4zLTEyMy4xIDcyLjYtMTg2LjQgOTEuMS05MS4xIDI1NC4yLTEyNC43IDMzNy45LTEzMS41eiJdfSxIQWU9RkYscUFlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImZpbGUtY2lyY2xlLXF1ZXN0aW9uIixpY29uOls1NzYsNTEyLFtdLCJlNGVmIiwiTTk2IDBDNjAuNyAwIDMyIDI4LjcgMzIgNjRsMCAzODRjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMTgwIDBjLTIyLjctMzEuNS0zNi03MC4yLTM2LTExMiAwLTEwMC42IDc3LjQtMTgzLjIgMTc2LTE5MS4zbDAtMzguMWMwLTE3LTYuNy0zMy4zLTE4LjctNDUuM0wyOTAuNyAxOC43QzI3OC43IDYuNyAyNjIuNSAwIDI0NS41IDBMOTYgMHpNMzU3LjUgMTc2TDI2NCAxNzZjLTEzLjMgMC0yNC0xMC43LTI0LTI0TDI0MCA1OC41IDM1Ny41IDE3NnpNNDMyIDU0NGExNDQgMTQ0IDAgMSAwIDAtMjg4IDE0NCAxNDQgMCAxIDAgMCAyODh6bTAtMTAwYTIwIDIwIDAgMSAxIDAgNDAgMjAgMjAgMCAxIDEgMC00MHptMC0xMDBjLTExLjYgMC0yMS4zIDguMi0yMy41IDE5LjItMS44IDguNy0xMC4yIDE0LjMtMTguOSAxMi41cy0xNC4zLTEwLjItMTIuNS0xOC45YzUuMi0yNS42IDI3LjgtNDQuOCA1NC45LTQ0LjggMzAuOSAwIDU2IDI1LjEgNTYgNTYgMCAxOS44LTExLjcgMzcuOC0yOS44IDQ1LjlsLTEwLjQgNC42Yy0xLjIgNy43LTcuOCAxMy41LTE1LjggMTMuNS04LjggMC0xNi03LjItMTYtMTYgMC0xMS4yIDYuNi0yMS4zIDE2LjgtMjUuOWwxMi40LTUuNWM2LjYtMi45IDEwLjgtOS40IDEwLjgtMTYuNiAwLTEzLjMtMTAuNy0yNC0yNC0yNHoiXX0sVkFlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InNpZ25hdHVyZSIsaWNvbjpbNjQwLDUxMixbXSwiZjViNyIsIk0xOTIgMTI4YzAtMTcuNyAxNC4zLTMyIDMyLTMyczMyIDE0LjMgMzIgMzJsMCA3LjhjMCAyNy43LTIuNCA1NS4zLTcuMSA4Mi41bC04NC40IDI1LjNjLTQwLjYgMTIuMi02OC40IDQ5LjYtNjguNCA5MmwwIDMyLjQtNzIgMGMtMTMuMyAwLTI0IDEwLjctMjQgMjRzMTAuNyAyNCAyNCAyNGw3Mi41IDBjNC4yIDM2IDM0LjggNjQgNzIgNjQgMjYgMCA1MC0xMy45IDYyLjktMzYuNWwxMy45LTI0LjNjMjYuOC00NyA0Ni41LTk3LjcgNTguNC0xNTAuNWw5NC40LTI4LjMtMTIuNSAzNy41Yy0zLjMgOS44LTEuNiAyMC41IDQuNCAyOC44UzQwNS43IDMyMCA0MTYgMzIwbDEyOCAwYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMybC04My42IDAgMTgtNTMuOWMzLjgtMTEuMyAuOS0yMy44LTcuNC0zMi40cy0yMC43LTExLjgtMzIuMi04LjRMMzE2LjQgMTk4LjFjMi40LTIwLjcgMy42LTQxLjQgMy42LTYyLjNsMC03LjhjMC01My00My05Ni05Ni05NnMtOTYgNDMtOTYgOTZsMCAzMmMwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMybDAtMzJ6bS05LjIgMTc3bDQ5LTE0LjdjLTEwLjQgMzMuOC0yNC41IDY2LjQtNDIuMSA5Ny4ybC0xMy45IDI0LjNjLTEuNSAyLjYtNC4zIDQuMy03LjQgNC4zLTQuNyAwLTguNS0zLjgtOC41LTguNWwwLTcxLjljMC0xNC4xIDkuMy0yNi42IDIyLjgtMzAuN3pNNjE2IDQxNmMxMy4zIDAgMjQtMTAuNyAyNC0yNHMtMTAuNy0yNC0yNC0yNGwtMjkyLjkgMGMtNi41IDE2LjMtMTMuNyAzMi4zLTIxLjYgNDhMNjE2IDQxNnoiXX0sQjU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZWFydGgtYW1lcmljYXMiLGljb246WzUxMiw1MTIsWzEyNzc1OCwiZWFydGgiLCJlYXJ0aC1hbWVyaWNhIiwiZ2xvYmUtYW1lcmljYXMiXSwiZjU3ZCIsIk01NS43IDE5OS43bDMwLjkgMzAuOWM2IDYgMTQuMSA5LjQgMjIuNiA5LjRsMjEuNSAwYzguNSAwIDE2LjYgMy40IDIyLjYgOS40bDI5LjMgMjkuM2M2IDYgOS40IDE0LjEgOS40IDIyLjZsMCAzNy41YzAgOC41IDMuNCAxNi42IDkuNCAyMi42bDEzLjMgMTMuM2M2IDYgOS40IDE0LjEgOS40IDIyLjZsMCAxOC43YzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJsMC0yLjdjMC04LjUgMy40LTE2LjYgOS40LTIyLjZsNDUuMy00NS4zYzYtNiA5LjQtMTQuMSA5LjQtMjIuNmwwLTM0LjdjMC0xNy43LTE0LjMtMzItMzItMzJsLTgyLjcgMGMtOC41IDAtMTYuNi0zLjQtMjIuNi05LjRsLTE2LTE2Yy00LjItNC4yLTYuNi0xMC02LjYtMTYgMC0xMi41IDEwLjEtMjIuNiAyMi42LTIyLjZsMzQuNyAwYzEyLjUgMCAyMi42LTEwLjEgMjIuNi0yMi42IDAtNi0yLjQtMTEuOC02LjYtMTZsLTE5LjctMTkuN0MyNDIgMTMwIDI0MCAxMjUuMSAyNDAgMTIwczItMTAgNS43LTEzLjdsMTcuMy0xNy4zYzUuOC01LjggOS4xLTEzLjcgOS4xLTIxLjkgMC03LjItMi40LTEzLjctNi40LTE4LjktMy4yLS4xLTYuNC0uMi05LjYtLjItOTUuNCAwLTE3NS43IDY0LjItMjAwLjMgMTUxLjd6TTQ2NCAyNTZjMC0zNC42LTguNC02Ny4yLTIzLjQtOTUuOC02LjQgLjktMTIuNyAzLjktMTcuOSA5LjFsLTEzLjQgMTMuNGMtNiA2LTkuNCAxNC4xLTkuNCAyMi42bDAgMzQuN2MwIDE3LjcgMTQuMyAzMiAzMiAzMmwyNC4xIDBjMi41IDAgNS0uMyA3LjMtLjggLjQtNSAuNS0xMC4xIC41LTE1LjJ6TTAgMjU2YTI1NiAyNTYgMCAxIDEgNTEyIDAgMjU2IDI1NiAwIDEgMSAtNTEyIDB6Il19LGpBZT1CNSxVQWU9QjUsV0FlPUI1LEdBZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJjYXJyb3QiLGljb246WzY0MCw1MTIsWzEyOTM2NV0sImY3ODciLCJNNDUzLjEtMzYuN0w0NDAuOS0yNC42Yy0zMS4yIDMxLjItMzEuMiA4MS45IDAgMTEzLjEgMTUuNiAxNS42IDMxLjIgMzEuMiA0Ni45IDQ2LjkgMzEuMiAzMS4yIDgxLjkgMzEuMiAxMTMuMSAwbDEyLjEtMTIuMWM2LjItNi4yIDYuMi0xNi40IDAtMjIuNkw2MDAuOSA4OC42Yy0zMS4yLTMxLjItODEuOS0zMS4yLTExMy4xIDAgMzEuMi0zMS4yIDMxLjItODEuOSAwLTExMy4xTDQ3NS43LTM2LjdjLTYuMi02LjItMTYuNC02LjItMjIuNiAwek0zMzEuNiA5NmMtNDUuMiAwLTg3LjEgMjAuNC0xMTUgNTQuM0wyNzMuMyAyMDdjOS40IDkuNCA5LjQgMjQuNiAwIDMzLjlzLTI0LjYgOS40LTMzLjkgMEwxOTEuNiAxOTMuMiA2Ny4yIDQ2Ni44Yy01LjUgMTIuMS0yLjkgMjYuNCA2LjUgMzUuOXMyMy43IDEyIDM1LjkgNi41bDE0MS42LTY0LjQtNDMuOC00My44Yy05LjQtOS40LTkuNC0yNC42IDAtMzMuOXMyNC42LTkuNCAzMy45IDBsNTYuNSA1Ni41IDk1LjMtNDMuM2M1My4xLTI0LjEgODcuMi03Ny4xIDg3LjItMTM1LjUgMC04Mi4yLTY2LjYtMTQ4LjgtMTQ4LjgtMTQ4Ljh6Il19LEg1PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InRlbXBlcmF0dXJlLWZ1bGwiLGljb246WzMyMCw1MTIsWyJ0ZW1wZXJhdHVyZS00IiwidGhlcm1vbWV0ZXItNCIsInRoZXJtb21ldGVyLWZ1bGwiXSwiZjJjNyIsIk0xNjAgMEMxMDcgMCA2NCA0MyA2NCA5NmwwIDE2NC43QzM0LjUgMjg3IDE2IDMyNS40IDE2IDM2OCAxNiA0NDcuNSA4MC41IDUxMiAxNjAgNTEyczE0NC02NC41IDE0NC0xNDRjMC00Mi42LTE4LjUtODEtNDgtMTA3LjNMMjU2IDk2YzAtNTMtNDMtOTYtOTYtOTZ6bTY0IDM2OGMwIDM1LjMtMjguNyA2NC02NCA2NHMtNjQtMjguNy02NC02NGMwLTI2LjkgMTYuNS00OS45IDQwLTU5LjNMMTM2IDk2YzAtMTMuMyAxMC43LTI0IDI0LTI0czI0IDEwLjcgMjQgMjRsMCAyMTIuN2MyMy41IDkuNSA0MCAzMi41IDQwIDU5LjN6Il19LFlBZT1INSxaQWU9SDUsWEFlPUg1LEtBZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJ0YWJsZS1jZWxscy1yb3ctbG9jayIsaWNvbjpbNjQwLDUxMixbXSwiZTY3YSIsIk0yNTYgMjg4bDAtNjQgMTUzLjMgMGMxNy4xLTQyLjIgNTYtNzMuMiAxMDIuNy03OWwwLTQ5YzAtMzUuMy0yOC43LTY0LTY0LTY0TDEyOCAzMkM5Mi43IDMyIDY0IDYwLjcgNjQgOTZsMCAzMjBjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMjQxLjMgMGMtLjktNS4yLTEuMy0xMC42LTEuMy0xNi4xbDAtNDcuOS0xMTIgMCAwLTY0IDExMy4zIDBjMy43LTIyIDE0LjgtNDEuNCAzMC43LTU1LjZsMC04LjQtMTQ0IDB6bTAtMTkybDE5MiAwIDAgNjQtMTkyIDAgMC02NHpNNTYwIDI3Mi4xbDAgNDcuOS02NCAwIDAtNDcuOWMwLTE3LjcgMTQuMy0zMiAzMi0zMnMzMiAxNC4zIDMyIDMyek00MTYgMzY4bDAgOTZjMCAyNi41IDIxLjUgNDggNDggNDhsMTI4IDBjMjYuNSAwIDQ4LTIxLjUgNDgtNDhsMC05NmMwLTIwLjktMTMuNC0zOC43LTMyLTQ1LjNsMC01MC42YzAtNDQuMi0zNS44LTgwLTgwLTgwcy04MCAzNS44LTgwIDgwbDAgNTAuNmMtMTguNiA2LjYtMzIgMjQuNC0zMiA0NS4zeiJdfSxRQWU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiYm9sdC1saWdodG5pbmciLGljb246WzM4NCw1MTIsW10sImUwYjciLCJNMCAyNTZMMjguNSAyOGMyLTE2IDE1LjYtMjggMzEuOC0yOEwyMjguOSAwYzE1IDAgMjcuMSAxMi4xIDI3LjEgMjcuMSAwIDMuMi0uNiA2LjUtMS43IDkuNUwyMDggMTYwIDM0Ny4zIDE2MGMyMC4yIDAgMzYuNyAxNi40IDM2LjcgMzYuNyAwIDcuNC0yLjIgMTQuNi02LjQgMjAuN2wtMTkyLjIgMjgxYy01LjkgOC42LTE1LjYgMTMuNy0yNS45IDEzLjdsLTIuOSAwYy0xNS43IDAtMjguNS0xMi44LTI4LjUtMjguNSAwLTIuMyAuMy00LjYgLjktNi45TDE3NiAyODggMzIgMjg4Yy0xNy43IDAtMzItMTQuMy0zMi0zMnoiXX0sSkFlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImNsb3VkLXNob3dlcnMtd2F0ZXIiLGljb246WzUxMiw1MTIsW10sImU0ZTQiLCJNMjc5LjIgNTUuN0MyNjMuOSAyMi44IDIzMC42IDAgMTkyIDAgMTM5IDAgOTYgNDMgOTYgOTYgNjAuNyA5NiAzMiAxMjQuNyAzMiAxNjBzMjguNyA2NCA2NCA2NGwzMjAgMGMzNS4zIDAgNjQtMjguNyA2NC02NHMtMjguNy02NC02NC02NGwtMS42IDBjLTcuNC0zNi41LTM5LjctNjQtNzguNC02NC0yMi4yIDAtNDIuMyA5LjEtNTYuOCAyMy43ek00MTAuNiA0NzYuMWMyMC43IDE1LjYgNDYgMzAuNyA3NC4yIDM0LjUgMTMuMSAxLjggMjUuMi03LjUgMjctMjAuNnMtNy41LTI1LjItMjAuNi0yN2MtMTUuOS0yLjEtMzMuMi0xMS4zLTUxLjctMjUuMi0zOC40LTI5LTkwLjUtMjktMTI5IDAtMjQgMTguMS00MC43IDI2LjMtNTQuNSAyNi4zcy0zMC41LTguMi01NC41LTI2LjNjLTM4LjQtMjktOTAuNS0yOS0xMjkgMC0xOC41IDEzLjktMzUuOCAyMy4xLTUxLjcgMjUuMi0xMy4xIDEuOC0yMi40IDEzLjgtMjAuNiAyN3MxMy44IDIyLjQgMjcgMjAuNmMyOC4yLTMuOCA1My42LTE4LjkgNzQuMi0zNC41IDIxLjMtMTYuMSA0OS45LTE2LjEgNzEuMiAwIDI0LjIgMTguMyA1Mi4zIDM1LjkgODMuNCAzNS45czU5LjEtMTcuNyA4My40LTM1LjljMjEuMy0xNi4xIDQ5LjktMTYuMSA3MS4yIDB6TTEwMC4xIDMwMy42YzQuMi0xMi42LTIuNi0yNi4yLTE1LjItMzAuNHMtMjYuMiAyLjYtMzAuNCAxNS4ybC0yMS4zIDY0QzI5IDM2NSAzNS44IDM3OC42IDQ4LjQgMzgyLjhzMjYuMi0yLjYgMzAuNC0xNS4ybDIxLjMtNjR6bTEyMCAwYzQuMi0xMi42LTIuNi0yNi4yLTE1LjItMzAuNHMtMjYuMiAyLjYtMzAuNCAxNS4ybC0yMS4zIDY0Yy00LjIgMTIuNiAyLjYgMjYuMiAxNS4yIDMwLjRzMjYuMi0yLjYgMzAuNC0xNS4ybDIxLjMtNjR6bTExMiAwYzQuMi0xMi42LTIuNi0yNi4yLTE1LjItMzAuNHMtMjYuMiAyLjYtMzAuNCAxNS4ybC0yMS4zIDY0Yy00LjIgMTIuNiAyLjYgMjYuMiAxNS4yIDMwLjRzMjYuMi0yLjYgMzAuNC0xNS4ybDIxLjMtNjR6bTEyMCAwYzQuMi0xMi42LTIuNi0yNi4yLTE1LjItMzAuNHMtMjYuMiAyLjYtMzAuNCAxNS4ybC0yMS4zIDY0Yy00LjIgMTIuNiAyLjYgMjYuMiAxNS4yIDMwLjRzMjYuMi0yLjYgMzAuNC0xNS4ybDIxLjMtNjR6Il19LE9GPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImFycm93LXVwLWxvbmciLGljb246WzMyMCw1MTIsWyJsb25nLWFycm93LXVwIl0sImYxNzYiLCJNMTgyLjYtMjIuNmMtMTIuNS0xMi41LTMyLjgtMTIuNS00NS4zIDBsLTEyOCAxMjhjLTEyLjUgMTIuNS0xMi41IDMyLjggMCA0NS4zczMyLjggMTIuNSA0NS4zIDBMMTI4IDc3LjMgMTI4IDUxMmMwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMybDAtNDM0LjcgNzMuNCA3My40YzEyLjUgMTIuNSAzMi44IDEyLjUgNDUuMyAwczEyLjUtMzIuOCAwLTQ1LjNsLTEyOC0xMjh6Il19LGVEZT1PRixmbT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJhZGRyZXNzLWNhcmQiLGljb246WzU3Niw1MTIsWzYyMTQwLCJjb250YWN0LWNhcmQiLCJ2Y2FyZCJdLCJmMmJiIiwiTTY0IDMyQzI4LjcgMzIgMCA2MC43IDAgOTZMMCA0MTZjMCAzNS4zIDI4LjcgNjQgNjQgNjRsNDQ4IDBjMzUuMyAwIDY0LTI4LjcgNjQtNjRsMC0zMjBjMC0zNS4zLTI4LjctNjQtNjQtNjRMNjQgMzJ6bTgwIDI1Nmw2NCAwYzQ0LjIgMCA4MCAzNS44IDgwIDgwIDAgOC44LTcuMiAxNi0xNiAxNkw4MCAzODRjLTguOCAwLTE2LTcuMi0xNi0xNiAwLTQ0LjIgMzUuOC04MCA4MC04MHptLTI0LTk2YTU2IDU2IDAgMSAxIDExMiAwIDU2IDU2IDAgMSAxIC0xMTIgMHptMjQwLTQ4bDExMiAwYzEzLjMgMCAyNCAxMC43IDI0IDI0cy0xMC43IDI0LTI0IDI0bC0xMTIgMGMtMTMuMyAwLTI0LTEwLjctMjQtMjRzMTAuNy0yNCAyNC0yNHptMCA5NmwxMTIgMGMxMy4zIDAgMjQgMTAuNyAyNCAyNHMtMTAuNyAyNC0yNCAyNGwtMTEyIDBjLTEzLjMgMC0yNC0xMC43LTI0LTI0czEwLjctMjQgMjQtMjR6Il19LHREZT1mbSxhRGU9Zm0saURlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImFuZ2xlLXJpZ2h0IixpY29uOlsyNTYsNTEyLFs4MjUwXSwiZjEwNSIsIk0yNDcuMSAyMzMuNGMxMi41IDEyLjUgMTIuNSAzMi44IDAgNDUuM2wtMTYwIDE2MGMtMTIuNSAxMi41LTMyLjggMTIuNS00NS4zIDBzLTEyLjUtMzIuOCAwLTQ1LjNMMTc5LjIgMjU2IDQxLjkgMTE4LjZjLTEyLjUtMTIuNS0xMi41LTMyLjggMC00NS4zczMyLjgtMTIuNSA0NS4zIDBsMTYwIDE2MHoiXX0sUkY9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZmFjZS1tZWgiLGljb246WzUxMiw1MTIsWzEyODUyOCwibWVoIl0sImYxMWEiLCJNMjU2IDUxMmEyNTYgMjU2IDAgMSAwIDAtNTEyIDI1NiAyNTYgMCAxIDAgMCA1MTJ6TTE3NiAxNzZhMzIgMzIgMCAxIDEgMCA2NCAzMiAzMiAwIDEgMSAwLTY0em0xMjggMzJhMzIgMzIgMCAxIDEgNjQgMCAzMiAzMiAwIDEgMSAtNjQgMHpNMTc2IDMyMGwxNjAgMGMxMy4zIDAgMjQgMTAuNyAyNCAyNHMtMTAuNyAyNC0yNCAyNGwtMTYwIDBjLTEzLjMgMC0yNC0xMC43LTI0LTI0czEwLjctMjQgMjQtMjR6Il19LHJEZT1SRixzRGU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiYXJyb3ctdXAtZnJvbS1ncm91bmQtd2F0ZXIiLGljb246WzY0MCw1MTIsW10sImU0YjUiLCJNMzAzIDdjOS40LTkuNCAyNC42LTkuNCAzMy45IDBsODggODhjOS40IDkuNCA5LjQgMjQuNiAwIDMzLjlzLTI0LjYgOS40LTMzLjkgMGwtNDctNDcgMCAyNzguMWMwIDEzLjMtMTAuNyAyNC0yNCAyNHMtMjQtMTAuNy0yNC0yNGwwLTI3OC4xLTQ3IDQ3Yy05LjQgOS40LTI0LjYgOS40LTMzLjkgMHMtOS40LTI0LjYgMC0zMy45TDMwMyA3ek0yNDAgMTkybDAgMTYzLjFjLTEwLjYtMi4yLTIxLjMtMy4yLTMyLTMuMS0zMi41IC4yLTY0LjkgMTAuNy05Mi4zIDMxLjQtOC44IDYuNi0xNS45IDEwLjktMjEuNyAxMy41bC0uOCAuNGMtMy43IDEuNy02LjQgMi45LTkuOCAuMy02LTQuNS0xMi42LTgtMTkuMy0xMC40TDY0IDI0MGMwLTI2LjUgMjEuNS00OCA0OC00OGwxMjggMHptMzM2IDQ4bDAgMTU1LjJjLTEuMSAuOC0yLjIgMS41LTMuMyAyLjQtNC4xIDMuMS04LjMgLjgtMTIuNi0xLjUtLjYtLjMtMS4yLS42LTEuOC0xLTUuMi0yLjctMTEuMS02LjYtMTgtMTEuNy0yOC4xLTIxLjEtNjEuMy0zMS42LTk0LjQtMzEuNC0xNS41IC4xLTMxIDIuNS00NiA3LjNsMC0xNjcuMyAxMjggMGMyNi41IDAgNDggMjEuNSA0OCA0OHpNNDAzLjQgNDc2LjFDMzc5LjEgNDk0LjMgMzUxLjEgNTEyIDMyMCA1MTJzLTU5LjEtMTcuNy04My40LTM1LjljLTIxLjMtMTYuMS00OS45LTE2LjEtNzEuMiAwLTIzLjggMTcuOS01NC4xIDM1LjUtODguMSAzNS4zLTIwLjQtLjEtNDAuNy02LjctNTkuOC0yMS4xLTEwLjYtOC0xMi43LTIzLTQuNy0zMy42czIzLTEyLjcgMzMuNi00LjdjMTEuMyA4LjUgMjEuNiAxMS40IDMxLjIgMTEuNSAxNy42IC4xIDM3LjMtOS40IDU4LjktMjUuNyAzOC40LTI5IDkwLjUtMjkgMTI5IDAgMjQgMTguMSA0MC43IDI2LjMgNTQuNSAyNi4zczMwLjUtOC4yIDU0LjUtMjYuM2MzOC40LTI5IDkwLjUtMjkgMTI5IDAgMTYuOSAxMi43IDMyLjkgMjEuNSA0Ny44IDI0LjYgMTMuNyAyLjggMjcuNCAuOSA0Mi4zLTEwLjMgMTAuNi04IDI1LjYtNS45IDMzLjYgNC43czUuOSAyNS42LTQuNyAzMy42Yy0yNi40IDE5LjktNTQuMiAyNC40LTgwLjcgMTkuMS0yNS4zLTUuMS00OC4xLTE4LjktNjcuMi0zMy4zLTIxLjMtMTYuMS00OS45LTE2LjEtNzEuMiAweiJdfSxuRGU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToibWFwIixpY29uOls1MTIsNTEyLFsxMjg1MDYsNjIwNzJdLCJmMjc5IiwiTTUxMiA0OGMwLTExLjEtNS43LTIxLjQtMTUuMi0yNy4ycy0yMS4yLTYuNC0zMS4xLTEuNEwzNDkuNSA3Ny41IDE3MC4xIDE3LjZjLTguMS0yLjctMTYuOC0yLjEtMjQuNCAxLjdsLTEyOCA2NEM2LjggODguOCAwIDk5LjkgMCAxMTJMMCA0NjRjMCAxMS4xIDUuNyAyMS40IDE1LjIgMjcuMnMyMS4yIDYuNCAzMS4xIDEuNGwxMTYuMS01OC4xIDE3OS40IDU5LjhjOC4xIDIuNyAxNi44IDIuMSAyNC40LTEuN2wxMjgtNjRjMTAuOC01LjQgMTcuNy0xNi41IDE3LjctMjguNmwwLTM1MnpNMTkyIDM3Ni45bDAtMjg0LjUgMTI4IDQyLjcgMCAyODQuNS0xMjgtNDIuN3oiXX0sb0RlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InVzZXItcGx1cyIsaWNvbjpbNjQwLDUxMixbXSwiZjIzNCIsIk0yODUuNyAzMDRjOTguNSAwIDE3OC4zIDc5LjggMTc4LjMgMTc4LjMgMCAxNi40LTEzLjMgMjkuNy0yOS43IDI5LjdMNzcuNyA1MTJDNjEuMyA1MTIgNDggNDk4LjcgNDggNDgyLjMgNDggMzgzLjggMTI3LjggMzA0IDIyNi4zIDMwNGw1OS40IDB6TTUyOCA4MGMxMy4zIDAgMjQgMTAuNyAyNCAyNGwwIDQ4IDQ4IDBjMTMuMyAwIDI0IDEwLjcgMjQgMjRzLTEwLjcgMjQtMjQgMjRsLTQ4IDAgMCA0OGMwIDEzLjMtMTAuNyAyNC0yNCAyNHMtMjQtMTAuNy0yNC0yNGwwLTQ4LTQ4IDBjLTEzLjMgMC0yNC0xMC43LTI0LTI0czEwLjctMjQgMjQtMjRsNDggMCAwLTQ4YzAtMTMuMyAxMC43LTI0IDI0LTI0ek0yNTYgMjQ4YTEyMCAxMjAgMCAxIDEgMC0yNDAgMTIwIDEyMCAwIDEgMSAwIDI0MHoiXX0sbERlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InZlbnVzIixpY29uOlszODQsNTEyLFs5NzkyXSwiZjIyMSIsIk04MCAxNzZhMTEyIDExMiAwIDEgMSAyMjQgMCAxMTIgMTEyIDAgMSAxIC0yMjQgMHpNMjIzLjkgMzQ5LjFDMzA1LjkgMzM0LjEgMzY4IDI2Mi4zIDM2OCAxNzYgMzY4IDc4LjggMjg5LjIgMCAxOTIgMFMxNiA3OC44IDE2IDE3NmMwIDg2LjMgNjIuMSAxNTguMSAxNDQuMSAxNzMuMS0uMSAxLS4xIDEuOS0uMSAyLjlsMCA2NC0zMiAwYy0xNy43IDAtMzIgMTQuMy0zMiAzMnMxNC4zIDMyIDMyIDMybDMyIDAgMCAzMmMwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMybDAtMzIgMzIgMGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMmwtMzIgMCAwLTY0YzAtMSAwLTEuOS0uMS0yLjl6Il19LGNEZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJkaWFncmFtLXN1Y2Nlc3NvciIsaWNvbjpbNDQ4LDUxMixbXSwiZTQ3YSIsIk0yODkuMiAxMzcuOWMyLjUtNiA4LjMtOS45IDE0LjgtOS45bDQwIDAgMC0yNGMwLTEzLjMtMTAuNy0yNC0yNC0yNGwtOTggMGMxLjMgNS4xIDIgMTAuNSAyIDE2bDAgNjRjMCAzNS4zLTI4LjcgNjQtNjQgNjRsLTk2IDBjLTM1LjMgMC02NC0yOC43LTY0LTY0TDAgOTZDMCA2MC43IDI4LjcgMzIgNjQgMzJsMjU2IDBjMzkuOCAwIDcyIDMyLjIgNzIgNzJsMCAyNCA0MCAwYzYuNSAwIDEyLjMgMy45IDE0LjggOS45czEuMSAxMi45LTMuNSAxNy40bC02NCA2NGMtNi4yIDYuMi0xNi40IDYuMi0yMi42IDBsLTY0LTY0Yy00LjYtNC42LTUuOS0xMS41LTMuNS0xNy40ek0zODQgNDgwTDY0IDQ4MGMtMzUuMyAwLTY0LTI4LjctNjQtNjRsMC02NGMwLTM1LjMgMjguNy02NCA2NC02NGwzMjAgMGMzNS4zIDAgNjQgMjguNyA2NCA2NGwwIDY0YzAgMzUuMy0yOC43IDY0LTY0IDY0ek0xNjAgMTYwbDAtNjQtOTYgMCAwIDY0IDk2IDB6Il19LGREZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJoZWFkLXNpZGUtY291Z2gtc2xhc2giLGljb246WzU3Niw1MTIsW10sImUwNjIiLCJNNTM1LTI0LjljOS40LTkuNCAyNC42LTkuNCAzMy45IDBzOS40IDI0LjYgMCAzMy45TDQxIDUzNy4xYy05LjQgOS40LTI0LjYgOS40LTMzLjkgMHMtOS40LTI0LjYgMC0zMy45bDI1LTI1IDAtNDQ3LjJjMC0xNSAxMC41LTI4LjMgMjUuNC0yOS44IDcuNC0uNyAxNC45LTEuMSAyMi42LTEuMSAxMTIuNyAwIDIwNiA4My4zIDIyMS43IDE5MS43IC40IDMgMS43IDUuOSAzLjYgOC4zbDIuMiAyLjYgMjI3LjUtMjI3LjV6TTEzMy44IDUxMkwyODggMzU3LjggMjg4IDQxNmMwIDUzLTQzIDk2LTk2IDk2bC01OC4yIDB6TTE3NiAyMjRhMzIgMzIgMCAxIDAgMC02NCAzMiAzMiAwIDEgMCAwIDY0em0zMzYgNDBhMjQgMjQgMCAxIDEgMCA0OCAyNCAyNCAwIDEgMSAwLTQ4em0tODggNzJhMjQgMjQgMCAxIDEgNDggMCAyNCAyNCAwIDEgMSAtNDggMHptLTY0IDQ4YTI0IDI0IDAgMSAxIDQ4IDAgMjQgMjQgMCAxIDEgLTQ4IDB6bTEyOCAwYTI0IDI0IDAgMSAxIDQ4IDAgMjQgMjQgMCAxIDEgLTQ4IDB6bTI0IDcyYTI0IDI0IDAgMSAxIDAgNDggMjQgMjQgMCAxIDEgMC00OHptLTg4LTI0YTI0IDI0IDAgMSAxIDQ4IDAgMjQgMjQgMCAxIDEgLTQ4IDB6Il19LEJGPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImRpYWdyYW0tcHJvamVjdCIsaWNvbjpbNTEyLDUxMixbInByb2plY3QtZGlhZ3JhbSJdLCJmNTQyIiwiTTAgODBDMCA1My41IDIxLjUgMzIgNDggMzJsOTYgMGMyNi41IDAgNDggMjEuNSA0OCA0OGwwIDE2IDEyOCAwIDAtMTZjMC0yNi41IDIxLjUtNDggNDgtNDhsOTYgMGMyNi41IDAgNDggMjEuNSA0OCA0OGwwIDk2YzAgMjYuNS0yMS41IDQ4LTQ4IDQ4bC05NiAwYy0yNi41IDAtNDgtMjEuNS00OC00OGwwLTE2LTEyOCAwIDAgMTZjMCA3LjMtMS43IDE0LjMtNC42IDIwLjVsNjguNiA5MS41IDgwIDBjMjYuNSAwIDQ4IDIxLjUgNDggNDhsMCA5NmMwIDI2LjUtMjEuNSA0OC00OCA0OGwtOTYgMGMtMjYuNSAwLTQ4LTIxLjUtNDgtNDhsMC05NmMwLTcuMyAxLjctMTQuMyA0LjYtMjAuNUwxMjggMjI0IDQ4IDIyNGMtMjYuNSAwLTQ4LTIxLjUtNDgtNDhMMCA4MHoiXX0saERlPUJGLHJnPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InRlcm1pbmFsIixpY29uOls1MTIsNTEyLFtdLCJmMTIwIiwiTTkuNCAxMTguNmMtMTIuNS0xMi41LTEyLjUtMzIuOCAwLTQ1LjNzMzIuOC0xMi41IDQ1LjMgMGwxNjAgMTYwYzEyLjUgMTIuNSAxMi41IDMyLjggMCA0NS4zbC0xNjAgMTYwYy0xMi41IDEyLjUtMzIuOCAxMi41LTQ1LjMgMHMtMTIuNS0zMi44IDAtNDUuM0wxNDYuNyAyNTYgOS40IDExOC42ek0yMjQgMzg0bDI1NiAwYzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMybC0yNTYgMGMtMTcuNyAwLTMyLTE0LjMtMzItMzJzMTQuMy0zMiAzMi0zMnoiXX0scERlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImhvdXNlLWZpcmUiLGljb246WzY0MCw1MTIsW10sImU1MGMiLCJNNDQ4IDE5MmMxNC4xIC40IDIzLjggMTEuNCAzMi43IDIxLjcgMiAyLjMgNCA0LjYgNiA2LjdsMTkgMTkuOSAxMi4yLTEzLjhjNS40LTYuMSAxMy4zLTguOSAyMC45LTguOSA3LjIgMCAxNC4zIDIuNiAxOS45IDcuOCAxOS43IDE4LjMgMzkuOCA0My4yIDU1IDcwLjYgMTUuMSAyNy4yIDI2LjIgNTguMiAyNi4yIDg4LjIgMCA4OC43LTcxLjMgMTU5LjgtMTYwIDE1OS44LTg5LjYgMC0xNjAtNzEuMy0xNjAtMTU5LjggMC0zNy4zIDE2LTczLjQgMzYuOC0xMDQuNSAyMC45LTMxLjMgNDcuNS01OSA3MC45LTgwLjEgNS43LTUuMiAxMy4xLTcuNyAyMC4zLTcuNXpNMjY4LjYgNi41YzEyLjItOS4zIDI5LjctOC43IDQxLjIgMmwxNDcuNSAxMzdjLTE5LjItNC4zLTQwIC41LTU1LjUgMTQuNC0zNi40IDMyLjYtNjcuNyA2OS44LTkwLjMgMTA2LjQtMTAuMyAxNi42LTE5LjcgMzQuOS0yNi44IDUzLjdMMjcyIDMyMGMtMjYuNSAwLTQ4IDIxLjUtNDggNDhsMCA5NiA2NC42IDBjNy4zIDE3LjIgMTYuOCAzMy40IDI4LjIgNDhMMTQ0IDUxMmMtMzUuMyAwLTY0LTI4LjctNjQtNjRsMC0xNzYtMTYgMGMtMTMuMiAwLTI1LTguMS0yOS44LTIwLjNzLTEuNi0yNi4yIDgtMzUuMWwyMjQtMjA4IDIuNC0yek00ODkuMyAzNDMuN2MtNS40LTQuNy0xMy4xLTQuNy0xOC41IDAtMTcuNyAxNS40LTU0LjcgNTEuOS01NC43IDg4LjQgMCAzNS4zIDI4LjcgNjQgNjQgNjRzNjQtMjguNyA2NC02NGMwLTM2LjUtMzctNzMtNTQuNy04OC40eiJdfSx1RGU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToibWFzayIsaWNvbjpbNTc2LDUxMixbXSwiZjZmYSIsIk0yODggNjRDNjQgNjQgMCAxNjAgMCAyNzJTODAgNDQ4IDE3NiA0NDhsOC40IDBjMjQuMiAwIDQ2LjQtMTMuNyA1Ny4yLTM1LjRsMjMuMi00Ni4zYzQuNC04LjggMTMuMy0xNC4zIDIzLjItMTQuM3MxOC44IDUuNSAyMy4yIDE0LjNsMjMuMiA0Ni4zYzEwLjggMjEuNyAzMyAzNS40IDU3LjIgMzUuNGw4LjQgMGM5NiAwIDE3Ni02NCAxNzYtMTc2UzUxMiA2NCAyODggNjR6TTk2IDI1NmE2NCA2NCAwIDEgMSAxMjggMCA2NCA2NCAwIDEgMSAtMTI4IDB6bTMyMC02NGE2NCA2NCAwIDEgMSAwIDEyOCA2NCA2NCAwIDEgMSAwLTEyOHoiXX0sZkRlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6Imh1cnJpY2FuZSIsaWNvbjpbMzg0LDUxMixbXSwiZjc1MSIsIk0wIDIwOEMwIDEwNC40IDc1LjcgMTguNSAxNzQuOSAyLjYgMTg0IDEuMiAxOTIgOC42IDE5MiAxNy45bDAgNjMuM2MwIDguNCA2LjUgMTUuMyAxNC43IDE2LjUgMTAwLjMgMTQuOSAxNzcuMyAxMDEuMyAxNzcuMyAyMDUuNyAwIDEwMy42LTc1LjcgMTg5LjUtMTc0LjkgMjA1LjQtOS4yIDEuNS0xNy4xLTUuOS0xNy4xLTE1LjJsMC02My4zQzE5MiA0MjEuOSAxODUuNSA0MTUgMTc3LjMgNDEzLjcgNzcgMzk4LjkgMCAzMTIuNCAwIDIwOHptMjg4IDQ4YTk2IDk2IDAgMSAwIC0xOTIgMCA5NiA5NiAwIDEgMCAxOTIgMHptLTk2LTMyYTMyIDMyIDAgMSAxIDAgNjQgMzIgMzIgMCAxIDEgMC02NHoiXX0sSEY9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZWFydGgtYWZyaWNhIixpY29uOls1MTIsNTEyLFsxMjc3NTcsImdsb2JlLWFmcmljYSJdLCJmNTdjIiwiTTQ0Ny42IDE3NWMtMzEuNi03NC42LTEwNS41LTEyNy0xOTEuNi0xMjctMjIuMSAwLTQzLjQgMy41LTYzLjQgOS44LS40IDItLjYgNC4xLS42IDYuMmwwIDczLjRjMCAxMi41IDEwLjEgMjIuNiAyMi42IDIyLjYgNiAwIDExLjgtMi40IDE2LTYuNmwxNi0xNmM2LTYgMTQuMS05LjQgMjIuNi05LjRsNS41IDBjMjguNSAwIDQyLjggMzQuNSAyMi42IDU0LjYtNiA2LTE0LjEgOS40LTIyLjYgOS40bC02MS41IDBjLTguNSAwLTE2LjYgMy40LTIyLjYgOS40bC0yMS4zIDIxLjNjLTYgNi05LjQgMTQuMS05LjQgMjIuNmwwIDQyLjdjMCAxNy43IDE0LjMgMzIgMzIgMzJsMzIgMGMxNy43IDAgMzIgMTQuMyAzMiAzMmwwIDMyYzAgMTcuNyAxNC4zIDMyIDMyIDMybDIuNyAwYzguNSAwIDE2LjYtMy40IDIyLjYtOS40bDI5LjMtMjkuM2M2LTYgOS40LTE0LjEgOS40LTIyLjZsMC0xOC43YzAtOC44IDcuMi0xNiAxNi0xNnMxNi03LjIgMTYtMTZsMC0zNC43YzAtOC41LTMuNC0xNi42LTkuNC0yMi42bC0xNi0xNmMtNC4yLTQuMi02LjYtMTAtNi42LTE2IDAtMTIuNSAxMC4xLTIyLjYgMjIuNi0yMi42bDQ1IDBjMTIuNCAwIDIyLjctNy4xIDI4LTE3ek0wIDI1NmEyNTYgMjU2IDAgMSAxIDUxMiAwIDI1NiAyNTYgMCAxIDEgLTUxMiAweiJdfSxtRGU9SEYscUY9e3ByZWZpeDoiZmFzIixpY29uTmFtZToidGh1bWJ0YWNrIixpY29uOlszODQsNTEyLFsxMjgyMDQsMTI4MzkyLCJ0aHVtYi10YWNrIl0sImYwOGQiLCJNMzIgMzJDMzIgMTQuMyA0Ni4zIDAgNjQgMEwzMjAgMGMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMmwtMjkuNSAwIDEwLjMgMTM0LjFjMzcuMSAyMS4yIDY1LjggNTYuNCA3OC4yIDk5LjdsMy44IDEzLjRjMi44IDkuNyAuOCAyMC01LjIgMjguMVMzNjIgMzUyIDM1MiAzNTJMMzIgMzUyYy0xMCAwLTE5LjUtNC43LTI1LjUtMTIuN3MtOC0xOC40LTUuMi0yOC4xTDUgMjk3LjhjMTIuNC00My4zIDQxLTc4LjUgNzguMi05OS43TDkzLjUgNjQgNjQgNjRDNDYuMyA2NCAzMiA0OS43IDMyIDMyek0xNjAgNDAwbDY0IDAgMCAxMTJjMCAxNy43LTE0LjMgMzItMzIgMzJzLTMyLTE0LjMtMzItMzJsMC0xMTJ6Il19LGdEZT1xRixiRGU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiaGFuZC1wb2ludC1kb3duIixpY29uOlszODQsNTEyLFtdLCJmMGE3IiwiTTMyIDQ4MGMwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMybDAtMjA4LTY0IDAgMCAyMDh6TTIyNCAzMjBjMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMmwwLTY0YzAtMTcuNy0xNC4zLTMyLTMyLTMycy0zMiAxNC4zLTMyIDMybDAgNjR6bS02NCA2NGMxNy43IDAgMzItMTQuMyAzMi0zMmwwLTQ4YzAtMTcuNy0xNC4zLTMyLTMyLTMycy0zMiAxNC4zLTMyIDMybDAgNDhjMCAxNy43IDE0LjMgMzIgMzIgMzJ6bTE2MC05NmMwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMybDAtNjRjMC0xNy43LTE0LjMtMzItMzItMzJzLTMyIDE0LjMtMzIgMzJsMCA2NHptLTk2LTg4bDAgLjZjOS40LTUuNCAyMC4zLTguNiAzMi04LjYgMTMuMiAwIDI1LjQgNCAzNS42IDEwLjggOC43LTI0LjkgMzIuNS00Mi44IDYwLjQtNDIuOCAxMS43IDAgMjIuNiAzLjEgMzIgOC42bDAtOC42QzM4NCA3MS42IDMxMi40IDAgMjI0IDBMMTYyLjMgMEMxMTkuOCAwIDc5LjEgMTYuOSA0OS4xIDQ2LjlMMzcuNSA1OC41QzEzLjUgODIuNSAwIDExNS4xIDAgMTQ5bDAgMjdjMCAzNS4zIDI4LjcgNjQgNjQgNjRsODggMGMyMi4xIDAgNDAtMTcuOSA0MC00MHMtMTcuOS00MC00MC00MGwtNTYgMGMtOC44IDAtMTYtNy4yLTE2LTE2czcuMi0xNiAxNi0xNmw1NiAwYzM5LjggMCA3MiAzMi4yIDcyIDcyeiJdfSxWRj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJmYWNlLW1laC1ibGFuayIsaWNvbjpbNTEyLDUxMixbMTI4NTY2LCJtZWgtYmxhbmsiXSwiZjVhNCIsIk0wIDI1NmEyNTYgMjU2IDAgMSAxIDUxMiAwIDI1NiAyNTYgMCAxIDEgLTUxMiAwem0yMDgtNDhhMzIgMzIgMCAxIDAgLTY0IDAgMzIgMzIgMCAxIDAgNjQgMHptMTI4IDMyYTMyIDMyIDAgMSAwIDAtNjQgMzIgMzIgMCAxIDAgMCA2NHoiXX0sdkRlPVZGLHE1PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InRlbXBlcmF0dXJlLWVtcHR5IixpY29uOlszMjAsNTEyLFsidGVtcGVyYXR1cmUtMCIsInRoZXJtb21ldGVyLTAiLCJ0aGVybW9tZXRlci1lbXB0eSJdLCJmMmNiIiwiTTY0IDk2YzAtNTMgNDMtOTYgOTYtOTZzOTYgNDMgOTYgOTZsMCAxNjQuN2MyOS41IDI2LjQgNDggNjQuNyA0OCAxMDcuMyAwIDc5LjUtNjQuNSAxNDQtMTQ0IDE0NFMxNiA0NDcuNSAxNiAzNjhjMC00Mi42IDE4LjUtODEgNDgtMTA3LjNMNjQgOTZ6bTk2IDMzNmMzNS4zIDAgNjQtMjguNyA2NC02NHMtMjguNy02NC02NC02NC02NCAyOC43LTY0IDY0IDI4LjcgNjQgNjQgNjR6Il19LHlEZT1xNSx4RGU9cTUsd0RlPXE1LE1EZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJib3JkZXItbm9uZSIsaWNvbjpbNDQ4LDUxMixbXSwiZjg1MCIsIk0zMiA0MTZjLTE3LjcgMC0zMiAxNC4zLTMyIDMyczE0LjMgMzIgMzIgMzIgMzItMTQuMyAzMi0zMi0xNC4zLTMyLTMyLTMyek0xNjAgMzJhMzIgMzIgMCAxIDAgMCA2NCAzMiAzMiAwIDEgMCAwLTY0ek0yODggNDE2Yy0xNy43IDAtMzIgMTQuMy0zMiAzMnMxNC4zIDMyIDMyIDMyIDMyLTE0LjMgMzItMzItMTQuMy0zMi0zMi0zMnpNMTYwIDQ4MGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMi0zMiAxNC4zLTMyIDMyIDE0LjMgMzIgMzIgMzJ6TTI4OCAzMmEzMiAzMiAwIDEgMCAwIDY0IDMyIDMyIDAgMSAwIDAtNjR6TTQxNiA0ODBjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzItMzIgMTQuMy0zMiAzMiAxNC4zIDMyIDMyIDMyem0wLTM4NGEzMiAzMiAwIDEgMCAwLTY0IDMyIDMyIDAgMSAwIDAgNjR6TTMyIDMyYTMyIDMyIDAgMSAwIDAgNjQgMzIgMzIgMCAxIDAgMC02NHpNNDE2IDM1MmEzMiAzMiAwIDEgMCAwLTY0IDMyIDMyIDAgMSAwIDAgNjR6TTMyIDE2MGEzMiAzMiAwIDEgMCAwIDY0IDMyIDMyIDAgMSAwIDAtNjR6bTAgMTkyYTMyIDMyIDAgMSAwIDAtNjQgMzIgMzIgMCAxIDAgMCA2NHpNNDE2IDE2MGEzMiAzMiAwIDEgMCAwIDY0IDMyIDMyIDAgMSAwIDAtNjR6Il19LHpEZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJoaWdobGlnaHRlciIsaWNvbjpbNTc2LDUxMixbXSwiZjU5MSIsIk0zMTUgMzE1TDQ3My40IDk5LjkgNDQ0LjEgNzAuNiAyMjkgMjI5IDMxNSAzMTV6bS0xODcgNWwwIDAgMC03MS43YzAtMTUuMyA3LjItMjkuNiAxOS41LTM4LjZMNDIwLjYgOC40QzQyOCAyLjkgNDM3IDAgNDQ2LjIgMCA0NTcuNiAwIDQ2OC41IDQuNSA0NzYuNiAxMi42bDU0LjggNTQuOGM4LjEgOC4xIDEyLjYgMTkgMTIuNiAzMC41IDAgOS4yLTIuOSAxOC4yLTguNCAyNS42TDMzNC40IDM5Ni41Yy05IDEyLjMtMjMuNCAxOS41LTM4LjYgMTkuNWwtNzEuNyAwLTI1LjQgMjUuNGMtMTIuNSAxMi41LTMyLjggMTIuNS00NS4zIDBsLTUwLjctNTAuN2MtMTIuNS0xMi41LTEyLjUtMzIuOCAwLTQ1LjNMMTI4IDMyMHpNNyA0NjYuM2w1MS43LTUxLjcgNzAuNiA3MC42LTE5LjcgMTkuN2MtNC41IDQuNS0xMC42IDctMTcgN0wyNCA1MTJjLTEzLjMgMC0yNC0xMC43LTI0LTI0bDAtNC43YzAtNi40IDIuNS0xMi41IDctMTd6Il19LGtEZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJtb25leS1iaWxsLXdhdmUiLGljb246WzUxMiw1MTIsW10sImY1M2EiLCJNMCA0MTkuNkwwIDEwOS41YzAtMjMuMiAyNC4xLTM4LjYgNDYuMy0zMiA4Ny43IDI2LjIgMTQ5LjcgNS41IDIxMi4xLTE1LjMgNjQuNS0yMS41IDEyOS40LTQzLjEgMjIzLjMtMTMuMSAxOC41IDUuOSAzMC4zIDIzLjggMzAuMyA0My4zbDAgMzEwLjFjMCAyMy4yLTI0LjEgMzguNi00Ni4yIDMyLTg3LjctMjYuMi0xNDkuOC01LjUtMjEyLjEgMTUuMy02NC41IDIxLjUtMTI5LjQgNDMuMS0yMjMuMyAxMy4xLTE4LjUtNS45LTMwLjMtMjMuOC0zMC4zLTQzLjN6TTMzNiAyNTZjMC01My0zNS44LTk2LTgwLTk2cy04MCA0My04MCA5NiAzNS44IDk2IDgwIDk2IDgwLTQzIDgwLTk2ek0xMjAgNDEzLjZjNC40IDAgNy45LTMuOCA3LjItOC4xLTQuNi0yNy44LTI3LTQ5LjUtNTUuMi01My00LjQtLjUtOCAzLjEtOCA3LjVsMCAzOS45YzAgMy42IDIuNCA2LjggNiA3LjcgMTcuOSA0LjIgMzQuMyA2LjEgNTAgNi4xem0zMTguNS01MS4xYzUgLjggOS41LTMgOS41LThsMC00Mi42YzAtNC40LTMuNi04LjEtOC03LjUtMjUuMiAzLjEtNDUuOSAyMC45LTUzLjIgNDQuNi0xLjQgNC43IDIuMyA5LjEgNy4yIDkuMiAxNC4yIC40IDI5IDEuNyA0NC40IDQuM3pNNDQ4IDE1MmwwLTM5LjljMC0zLjYtMi41LTYuOC02LTcuNy0xNy45LTQuMi0zNC4zLTYuMS01MC02LjEtNC40IDAtNy45IDMuOC03LjIgOC4xIDQuNiAyNy44IDI3IDQ5LjUgNTUuMiA1MyA0LjQgLjUgOC0zLjEgOC03LjV6TTEyNS4yIDE2Mi45YzEuNC00LjctMi4zLTkuMS03LjItOS4yLTE0LjItLjQtMjktMS43LTQ0LjQtNC4zLTUtLjgtOS41IDMtOS41IDhMNjQgMjAwYzAgNC40IDMuNiA4LjEgOCA3LjUgMjUuMi0zLjEgNDUuOS0yMC45IDUzLjItNDQuNnoiXX0sU0RlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InRvaWxldC1wYXBlci1zbGFzaCIsaWNvbjpbNTc2LDUxMixbXSwiZTA3MiIsIk00MS0yNC45Yy05LjQtOS40LTI0LjYtOS40LTMzLjkgMFMtMi4zLS4zIDcgOS4xbDUyOCA1MjhjOS40IDkuNCAyNC42IDkuNCAzMy45IDBzOS40LTI0LjYgMC0zMy45bC05NC41LTk0LjVjNDAuMi0yMyA2OS41LTk2LjkgNjkuNS0xODQuNiAwLTEwNi00My0xOTItOTYtMTkycy05NiA4Ni05NiAxOTJjMCAyNC4xIDIuMiA0Ny4yIDYuMyA2OC40TDMwNCAyMzguMiAzMDQgMjI0YzAtNTguOSAxMS44LTExNC41IDMzLjItMTU3LjIgNS45LTExLjcgMTMuMS0yMy43IDIxLjktMzQuOEwxMjggMzJjLTguMyAwLTE2LjQgMi4xLTI0LjEgNi4xbC02My02M3pNMzIgMjI0bDAgMjY0YzAgMzAuOSAyNS4xIDU2IDU2IDU2bDE2MCAwYzMwLjkgMCA1Ni0yNS4xIDU2LTU2bDAtMTE0LjItMjU2LTI1NkMzNy45IDE0OC4yIDMyIDE4NC43IDMyIDIyNHptNDE2IDY0Yy0xNy43IDAtMzItMjguNy0zMi02NHMxNC4zLTY0IDMyLTY0IDMyIDI4LjcgMzIgNjQtMTQuMyA2NC0zMiA2NHoiXX0sQ0RlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImZpbGUtc2hpZWxkIixpY29uOls1NzYsNTEyLFtdLCJlNGYwIiwiTTk2IDBDNjAuNyAwIDMyIDI4LjcgMzIgNjRsMCAzODRjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMjAxLjIgMEMyNjEgNDY5LjQgMjQwIDQxNC41IDI0MCAzNTYuNGwwLTMxLjFjMC0zNC40IDIyLTY1IDU0LjctNzUuOWwxMTItMzcuM2MzLjEtMSA2LjItMS44IDkuMy0yLjVsMC0zOS4xYzAtMTctNi43LTMzLjMtMTguNy00NS4zTDI5MC43IDE4LjdDMjc4LjcgNi43IDI2Mi41IDAgMjQ1LjUgMEw5NiAwek0zNTcuNSAxNzZMMjY0IDE3NmMtMTMuMyAwLTI0LTEwLjctMjQtMjRMMjQwIDU4LjUgMzU3LjUgMTc2em04Ny44IDMxMi41bC0xMy4zIDYuMyAwLTE4OC4xIDk2IDMyIDAgMTkuNmMwIDU1LjgtMzIuMiAxMDYuNS04Mi43IDEzMC4zek00MjEuOSAyNTkuNWwtMTEyIDM3LjNjLTEzLjEgNC40LTIxLjkgMTYuNi0yMS45IDMwLjRsMCAzMS4xYzAgNzQuNCA0MyAxNDIuMSAxMTAuMiAxNzMuN2wxOC41IDguN2M0LjggMi4yIDEwIDMuNCAxNS4yIDMuNHMxMC41LTEuMiAxNS4yLTMuNGwxOC41LTguN0M1MzMgNTAwLjMgNTc2IDQzMi42IDU3NiAzNTguMmwwLTMxLjFjMC0xMy44LTguOC0yNi0yMS45LTMwLjRsLTExMi0zNy4zYy02LjYtMi4yLTEzLjctMi4yLTIwLjIgMHoiXX0sX0RlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InRleHQtaGVpZ2h0IixpY29uOls1NzYsNTEyLFtdLCJmMDM0IiwiTTQwIDMyQzE3LjkgMzIgMCA0OS45IDAgNzJsMCA1NmMwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMybDAtMzIgNjQgMCAwIDMyMC0zMiAwYy0xNy43IDAtMzIgMTQuMy0zMiAzMnMxNC4zIDMyIDMyIDMybDEyOCAwYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMybC0zMiAwIDAtMzIwIDY0IDAgMCAzMmMwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMybDAtNTZjMC0yMi4xLTE3LjktNDAtNDAtNDBMNDAgMzJ6TTQzOC42IDM2MS40Yy0xMi41LTEyLjUtMzIuOC0xMi41LTQ1LjMgMHMtMTIuNSAzMi44IDAgNDUuM2w2NCA2NGMxMi41IDEyLjUgMzIuOCAxMi41IDQ1LjMgMGw2NC02NGMxMi41LTEyLjUgMTIuNS0zMi44IDAtNDUuM3MtMzIuOC0xMi41LTQ1LjMgMGwtOS40IDkuNCAwLTIyOS41IDkuNCA5LjRjMTIuNSAxMi41IDMyLjggMTIuNSA0NS4zIDBzMTIuNS0zMi44IDAtNDUuM2wtNjQtNjRjLTYtNi0xNC4xLTkuNC0yMi42LTkuNHMtMTYuNiAzLjQtMjIuNiA5LjRsLTY0IDY0Yy0xMi41IDEyLjUtMTIuNSAzMi44IDAgNDUuM3MzMi44IDEyLjUgNDUuMyAwbDkuNC05LjQgMCAyMjkuNS05LjQtOS40eiJdfSxqRj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJmYWNlLWdyaW4tdG9uZ3VlIixpY29uOls1MTIsNTEyLFsxMjg1MzksImdyaW4tdG9uZ3VlIl0sImY1ODkiLCJNMCAyNTZjMCAxMDQuNCA2Mi41IDE5NC4yIDE1Mi4yIDIzNC4xLTUuMy0xMy04LjItMjcuMi04LjItNDIuMWwwLTYxLjdjLTE2LjktMTYuNS0zMC4xLTM2LjctMzguMy01OS4zLTQuMy0xMS44IDcuNy0yMS44IDE5LjYtMTguMSAzOS4yIDEyLjIgODMuNyAxOS4xIDEzMC43IDE5LjFzOTEuNS02LjkgMTMwLjctMTkuMWMxMS45LTMuNyAyMy45IDYuMyAxOS42IDE4LjEtOC4zIDIyLjYtMjEuNSA0Mi44LTM4LjMgNTkuM2wwIDYxLjdjMCAxNC45LTIuOSAyOS4xLTguMiA0Mi4xIDg5LjctMzkuOCAxNTIuMi0xMjkuNiAxNTIuMi0yMzQuMSAwLTE0MS40LTExNC42LTI1Ni0yNTYtMjU2UzAgMTE0LjYgMCAyNTZ6bTE3Ni04MGEzMiAzMiAwIDEgMSAwIDY0IDMyIDMyIDAgMSAxIDAtNjR6bTEyOCAzMmEzMiAzMiAwIDEgMSA2NCAwIDMyIDMyIDAgMSAxIC02NCAwem0xNiAyNDBsMC00NS40YzAtMTQuNy0xMS45LTI2LjYtMjYuNi0yNi42bC0yIDBjLTExLjMgMC0yMS4xIDcuOS0yMy42IDE4LjktMi44IDEyLjYtMjAuOCAxMi42LTIzLjYgMC0yLjUtMTEuMS0xMi4zLTE4LjktMjMuNi0xOC45bC0yIDBjLTE0LjcgMC0yNi42IDExLjktMjYuNiAyNi42bDAgNDUuNGMwIDM1LjMgMjguNyA2NCA2NCA2NHM2NC0yOC43IDY0LTY0eiJdfSxURGU9akYsTERlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImZpbGUtc2lnbmF0dXJlIixpY29uOls2NDAsNTEyLFtdLCJmNTczIiwiTTY0LjEgNjRjMC0zNS4zIDI4LjctNjQgNjQtNjRMMjc3LjYgMGMxNyAwIDMzLjMgNi43IDQ1LjMgMTguN0w0MjkuMyAxMjUuM2MxMiAxMiAxOC43IDI4LjMgMTguNyA0NS4zbDAgOTcuNS0xMzIgMTMyLTQyLjEgMC0xNi4xLTUzLjZjLTQuNy0xNS43LTE5LjEtMjYuNC0zNS41LTI2LjQtMTEuMyAwLTIxLjkgNS4xLTI4LjkgMTMuOUwxMzMuMyA0MDljLTguMyAxMC4zLTYuNiAyNS41IDMuNyAzMy43czI1LjUgNi42IDMzLjctMy44bDQ3LjEtNTguOCAxNS4yIDUwLjdjMyAxMC4yIDEyLjQgMTcuMSAyMyAxNy4xbDMxLjUgMGMtLjkgMy4xLTEuNyA2LjMtMi4zIDkuNWwtMTAuOSA1NC41LTE0Ni4yIDBjLTM1LjMgMC02NC0yOC43LTY0LTY0bDAtMzg0em0yMDgtNS41bDAgOTMuNWMwIDEzLjMgMTAuNyAyNCAyNCAyNGw5My41IDAtMTE3LjUtMTE3LjV6bTYwLjIgNDA4LjRjMi41LTEyLjQgOC42LTIzLjggMTcuNS0zMi43bDExOC45LTExOC45IDgwIDgwLTExOC45IDExOC45Yy04LjkgOC45LTIwLjMgMTUtMzIuNyAxNy41bC01OS42IDExLjljLS45IC4yLTEuOSAuMy0yLjkgLjMtOCAwLTE0LjYtNi41LTE0LjYtMTQuNiAwLTEgLjEtMS45IC4zLTIuOWwxMS45LTU5LjZ6bTI2Ny44LTEyM2wtMjguOCAyOC44LTgwLTgwIDI4LjgtMjguOGMyMi4xLTIyLjEgNTcuOS0yMi4xIDgwIDBzMjIuMSA1Ny45IDAgODB6Il19LCREZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJidWlsZGluZy13aGVhdCIsaWNvbjpbNjQwLDUxMixbXSwiZTRkYiIsIk05NiAwQzYwLjcgMCAzMiAyOC43IDMyIDY0bDAgMzg0YzAgMzUuMyAyOC43IDY0IDY0IDY0bDI0OS4zIDBjLTYtMTQuOC05LjMtMzEtOS4zLTQ4IDAtMTcuNyA3LjItMzMuNyAxOC44LTQ1LjMtMTEuOS0xOS40LTE4LjgtNDIuMy0xOC44LTY2LjcgMC0xNy43IDcuMi0zMy43IDE4LjgtNDUuMy0xMS45LTE5LjQtMTguOC00Mi4zLTE4LjgtNjYuNyAwLTI1LjIgMTQuNS00Ni45IDM1LjYtNTcuNC0yLjQtNy4xLTMuNi0xNC43LTMuNi0yMi42bDAtMzJDMzY4IDk2LjcgMzg4IDcwLjEgNDE1LjkgNjAuMSA0MTMuOSAyNi42IDM4NiAwIDM1MiAwTDk2IDB6TTIwOCAzNTJsMzIgMGMxNy43IDAgMzIgMTQuMyAzMiAzMmwwIDgwLTk2IDAgMC04MGMwLTE3LjcgMTQuMy0zMiAzMi0zMnpNMTI4IDExMmMwLTguOCA3LjItMTYgMTYtMTZsMzIgMGM4LjggMCAxNiA3LjIgMTYgMTZsMCAzMmMwIDguOC03LjIgMTYtMTYgMTZsLTMyIDBjLTguOCAwLTE2LTcuMi0xNi0xNmwwLTMyek0yNzIgOTZsMzIgMGM4LjggMCAxNiA3LjIgMTYgMTZsMCAzMmMwIDguOC03LjIgMTYtMTYgMTZsLTMyIDBjLTguOCAwLTE2LTcuMi0xNi0xNmwwLTMyYzAtOC44IDcuMi0xNiAxNi0xNnpNMTI4IDI0MGMwLTguOCA3LjItMTYgMTYtMTZsMzIgMGM4LjggMCAxNiA3LjIgMTYgMTZsMCAzMmMwIDguOC03LjIgMTYtMTYgMTZsLTMyIDBjLTguOCAwLTE2LTcuMi0xNi0xNmwwLTMyem0xNDQtMTZsMzIgMGM4LjggMCAxNiA3LjIgMTYgMTZsMCAzMmMwIDguOC03LjIgMTYtMTYgMTZsLTMyIDBjLTguOCAwLTE2LTcuMi0xNi0xNmwwLTMyYzAtOC44IDcuMi0xNiAxNi0xNnptMzUyIDBsLTE2IDBjLTQ0LjIgMC04MCAzNS44LTgwIDgwIDAgOC44IDcuMiAxNiAxNiAxNmwxNiAwYzQ0LjIgMCA4MC0zNS44IDgwLTgwIDAtOC44LTcuMi0xNi0xNi0xNnptMTYgMTI4YzAtOC44LTcuMi0xNi0xNi0xNmwtMTYgMGMtNDQuMiAwLTgwIDM1LjgtODAgODAgMCA4LjggNy4yIDE2IDE2IDE2bDE2IDBjNDQuMiAwIDgwLTM1LjggODAtODB6bTAgMTEyYzAtOC44LTcuMi0xNi0xNi0xNmwtMTYgMGMtNDQuMiAwLTgwIDM1LjgtODAgODAgMCA4LjggNy4yIDE2IDE2IDE2bDE2IDBjNDQuMiAwIDgwLTM1LjggODAtODB6TTQ5NiA1MjhjMC00NC4yLTM1LjgtODAtODAtODBsLTE2IDBjLTguOCAwLTE2IDcuMi0xNiAxNiAwIDQ0LjIgMzUuOCA4MCA4MCA4MGwxNiAwYzguOCAwIDE2LTcuMiAxNi0xNnptLTE2LTk2YzguOCAwIDE2LTcuMiAxNi0xNiAwLTQ0LjItMzUuOC04MC04MC04MGwtMTYgMGMtOC44IDAtMTYgNy4yLTE2IDE2IDAgNDQuMiAzNS44IDgwIDgwIDgwbDE2IDB6bTE2LTEyOGMwLTQ0LjItMzUuOC04MC04MC04MGwtMTYgMGMtOC44IDAtMTYgNy4yLTE2IDE2IDAgNDQuMiAzNS44IDgwIDgwIDgwbDE2IDBjOC44IDAgMTYtNy4yIDE2LTE2ek01MTIgNjRjLTEzLjMgMC0yNCAxMC43LTI0IDI0bDAgMTA0YzAgMTMuMyAxMC43IDI0IDI0IDI0czI0LTEwLjcgMjQtMjRsMC0xMDRjMC0xMy4zLTEwLjctMjQtMjQtMjR6bTk2IDY0YzAtMTMuMy0xMC43LTI0LTI0LTI0cy0yNCAxMC43LTI0IDI0bDAgMzJjMCAxMy4zIDEwLjcgMjQgMjQgMjRzMjQtMTAuNyAyNC0yNGwwLTMyek00NDAgMTA0Yy0xMy4zIDAtMjQgMTAuNy0yNCAyNGwwIDMyYzAgMTMuMyAxMC43IDI0IDI0IDI0czI0LTEwLjcgMjQtMjRsMC0zMmMwLTEzLjMtMTAuNy0yNC0yNC0yNHoiXX0sQURlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InBsdWctY2lyY2xlLW1pbnVzIixpY29uOls2NDAsNTEyLFtdLCJlNTVlIiwiTTE5Mi0zMmMxNy43IDAgMzIgMTQuMyAzMiAzMmwwIDk2IDEyOCAwIDAtOTZjMC0xNy43IDE0LjMtMzIgMzItMzJzMzIgMTQuMyAzMiAzMmwwIDk2IDY0IDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJsMCA0OC43Yy05OC42IDguMS0xNzYgOTAuNy0xNzYgMTkxLjMgMCAyNy4zIDUuNyA1My4zIDE2IDc2LjlsMCAzLjFjMCAxNy43LTE0LjMgMzItMzIgMzJzLTMyLTE0LjMtMzItMzJsMC02Ni43QzE2NS4yIDM5OC4xIDk2IDMxOS4xIDk2IDIyNGwwLTY0Yy0xNy43IDAtMzItMTQuMy0zMi0zMlM3OC4zIDk2IDk2IDk2bDY0IDAgMC05NmMwLTE3LjcgMTQuMy0zMiAzMi0zMnpNMzUyIDQwMGExNDQgMTQ0IDAgMSAxIDI4OCAwIDE0NCAxNDQgMCAxIDEgLTI4OCAwem0yMjQgMGMwLTguOC03LjItMTYtMTYtMTZsLTEyOCAwYy04LjggMC0xNiA3LjItMTYgMTZzNy4yIDE2IDE2IDE2bDEyOCAwYzguOCAwIDE2LTcuMiAxNi0xNnoiXX0sbW09e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZnV0Ym9sIixpY29uOls1MTIsNTEyLFs5OTE3LCJmdXRib2wtYmFsbCIsInNvY2Nlci1iYWxsIl0sImYxZTMiLCJNNDE3LjMgMzYwLjFsLTcxLjYtNC44Yy01LjItLjMtMTAuMyAxLjEtMTQuNSA0LjJzLTcuMiA3LjQtOC40IDEyLjVsLTE3LjYgNjkuNkMyODkuNSA0NDUuOCAyNzMgNDQ4IDI1NiA0NDhzLTMzLjUtMi4yLTQ5LjItNi40TDE4OS4yIDM3MmMtMS4zLTUtNC4zLTkuNC04LjQtMTIuNXMtOS4zLTQuNS0xNC41LTQuMmwtNzEuNiA0LjhjLTE3LjYtMjcuMi0yOC41LTU5LjItMzAuNC05My42TDEyNSAyMjguM2M0LjQtMi44IDcuNi03IDkuMi0xMS45czEuNC0xMC4yLS41LTE1bC0yNi43LTY2LjZDMTI4IDEwOS4yIDE1NS4zIDg5IDE4Ni43IDc2LjlsNTUuMiA0NmM0IDMuMyA5IDUuMSAxNC4xIDUuMXMxMC4yLTEuOCAxNC4xLTUuMWw1NS4yLTQ2YzMxLjMgMTIuMSA1OC43IDMyLjMgNzkuNiA1Ny45bC0yNi43IDY2LjZjLTEuOSA0LjgtMi4xIDEwLjEtLjUgMTVzNC45IDkuMSA5LjIgMTEuOWw2MC43IDM4LjJjLTEuOSAzNC40LTEyLjggNjYuNC0zMC40IDkzLjZ6TTI1NiA1MTJhMjU2IDI1NiAwIDEgMCAwLTUxMiAyNTYgMjU2IDAgMSAwIDAgNTEyem0xNC4xLTMyNS43Yy04LjQtNi4xLTE5LjgtNi4xLTI4LjIgMEwxOTQgMjIxYy04LjQgNi4xLTExLjkgMTYuOS04LjcgMjYuOGwxOC4zIDU2LjNjMy4yIDkuOSAxMi40IDE2LjYgMjIuOCAxNi42bDU5LjIgMGMxMC40IDAgMTkuNi02LjcgMjIuOC0xNi42bDE4LjMtNTYuM2MzLjItOS45LS4zLTIwLjctOC43LTI2LjhsLTQ3LjktMzQuOHoiXX0sRERlPW1tLEVEZT1tbSxVRj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJjaXJjbGUtcGx1cyIsaWNvbjpbNTEyLDUxMixbInBsdXMtY2lyY2xlIl0sImYwNTUiLCJNMjU2IDUxMmEyNTYgMjU2IDAgMSAwIDAtNTEyIDI1NiAyNTYgMCAxIDAgMCA1MTJ6TTIzMiAzNDRsMC02NC02NCAwYy0xMy4zIDAtMjQtMTAuNy0yNC0yNHMxMC43LTI0IDI0LTI0bDY0IDAgMC02NGMwLTEzLjMgMTAuNy0yNCAyNC0yNHMyNCAxMC43IDI0IDI0bDAgNjQgNjQgMGMxMy4zIDAgMjQgMTAuNyAyNCAyNHMtMTAuNyAyNC0yNCAyNGwtNjQgMCAwIDY0YzAgMTMuMy0xMC43IDI0LTI0IDI0cy0yNC0xMC43LTI0LTI0eiJdfSxQRGU9VUYsSURlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImJyYXppbGlhbi1yZWFsLXNpZ24iLGljb246WzUxMiw1MTIsW10sImU0NmMiLCJNNDAwIDE2YzE3LjcgMCAzMiAxNC4zIDMyIDMybDAgMTYgMTYgMGMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMmwtNDguOSAwYy0yNiAwLTQ3LjEgMjEuMS00Ny4xIDQ3LjEgMCAyMi41IDE1LjkgNDEuOCAzNy45IDQ2LjJsMzIuOCA2LjZjNTEuOSAxMC40IDg5LjMgNTYgODkuMyAxMDkgMCA1MC42LTMzLjggOTMuMy04MCAxMDYuN2wwIDIwLjRjMCAxNy43LTE0LjMgMzItMzIgMzJzLTMyLTE0LjMtMzItMzJsMC0xNi0zMiAwYy0xNy43IDAtMzItMTQuMy0zMi0zMnMxNC4zLTMyIDMyLTMybDY0LjkgMGMyNiAwIDQ3LjEtMjEuMSA0Ny4xLTQ3LjEgMC0yMi41LTE1LjktNDEuOC0zNy45LTQ2LjJsLTMyLjgtNi42Yy01MS45LTEwLjQtODkuMy01Ni04OS4zLTEwOSAwLTUwLjYgMzMuOC05My4yIDgwLTEwNi43TDM2OCA0OGMwLTE3LjcgMTQuMy0zMiAzMi0zMnpNMCA2NEMwIDQ2LjMgMTQuMyAzMiAzMiAzMmw4MCAwYzc5LjUgMCAxNDQgNjQuNSAxNDQgMTQ0IDAgNTQuMy0zMCAxMDEuNS03NC40IDEyNi4xbDQxIDEzNi43YzUuMSAxNi45LTQuNSAzNC44LTIxLjUgMzkuOHMtMzQuOC00LjUtMzkuOC0yMS41TDEyMC4xIDMxOS44Yy0yLjcgLjEtNS40IC4yLTguMSAuMmwtNDggMCAwIDEyOGMwIDE3LjctMTQuMyAzMi0zMiAzMlMwIDQ2NS43IDAgNDQ4TDAgNjR6TTY0IDI1Nmw0OCAwYzQ0LjIgMCA4MC0zNS44IDgwLTgwcy0zNS44LTgwLTgwLTgwbC00OCAwIDAgMTYweiJdfSxORGU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToic3Rhci1hbmQtY3Jlc2NlbnQiLGljb246WzUxMiw1MTIsWzk3NzBdLCJmNjk5IiwiTTAgMjU2YzAtMTQxLjQgMTE0LjYtMjU2IDI1Ni0yNTYgMzMgMCA2NC42IDYuMyA5My42IDE3LjcgNy40IDIuOSAxMS41IDEwLjcgOS44IDE4LjRzLTguOCAxMy0xNi43IDEyLjRjLTQuOC0uMy05LjctLjUtMTQuNi0uNS0xMTQuOSAwLTIwOCA5My4xLTIwOCAyMDhzOTMuMSAyMDggMjA4IDIwOGM0LjkgMCA5LjgtLjIgMTQuNi0uNSA3LjktLjUgMTUgNC43IDE2LjcgMTIuNHMtMi40IDE1LjUtOS44IDE4LjRDMzIwLjYgNTA1LjcgMjg5IDUxMiAyNTYgNTEyIDExNC42IDUxMiAwIDM5Ny40IDAgMjU2ek0zNzUuNCAxMzcuNGMzLjUtNy4xIDEzLjctNy4xIDE3LjIgMGwzMS41IDYzLjhjMS40IDIuOCA0LjEgNC44IDcuMiA1LjNsNzAuNCAxMC4yYzcuOSAxLjEgMTEgMTAuOCA1LjMgMTYuNGwtNTAuOSA0OS42Yy0yLjMgMi4yLTMuMyA1LjQtMi44IDguNWwxMiA3MC4xYzEuMyA3LjgtNi45IDEzLjgtMTMuOSAxMC4xbC02My0zMy4xYy0yLjgtMS41LTYuMS0xLjUtOC45IDBsLTYzIDMzLjFjLTcgMy43LTE1LjMtMi4zLTEzLjktMTAuMWwxMi03MC4xYy41LTMuMS0uNS02LjMtMi44LTguNUwyNjEgMjMzLjFjLTUuNy01LjYtMi42LTE1LjIgNS4zLTE2LjRsNzAuNC0xMC4yYzMuMS0uNSA1LjgtMi40IDcuMi01LjNsMzEuNS02My44eiJdfSxXRj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJmYWNlLXN1cnByaXNlIixpY29uOls1MTIsNTEyLFsxMjg1NTgsInN1cnByaXNlIl0sImY1YzIiLCJNMjU2IDUxMmEyNTYgMjU2IDAgMSAwIDAtNTEyIDI1NiAyNTYgMCAxIDAgMCA1MTJ6TTE3NiAxNzZhMzIgMzIgMCAxIDEgMCA2NCAzMiAzMiAwIDEgMSAwLTY0em0xMjggMzJhMzIgMzIgMCAxIDEgNjQgMCAzMiAzMiAwIDEgMSAtNjQgMHptLTQ4IDgwYTY0IDY0IDAgMSAxIDAgMTI4IDY0IDY0IDAgMSAxIDAtMTI4eiJdfSxGRGU9V0YsT0RlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6Imhvc3BpdGFsLXVzZXIiLGljb246WzY0MCw1MTIsW10sImY4MGQiLCJNNjQgNjRDNjQgMjguNyA5Mi43IDAgMTI4IDBMMzg0IDBjMzUuMyAwIDY0IDI4LjcgNjQgNjRsMCAxMjEuM2MtNDYuOSAxOS04MCA2NS04MCAxMTguNyAwIDI3LjcgOC44IDUzLjQgMjMuOCA3NC40LTUxLjUgMjEtODcuOCA3MS42LTg3LjggMTMwLjcgMCAxIDAgMS45IDAgMi45bC0xNzYgMGMtMzUuMyAwLTY0LTI4LjctNjQtNjRMNjQgNjR6TTIwOCA0MDBsMCA2NCA1My40IDBjNy4yLTI5LjQgMjEuMy01Ni4xIDQwLjQtNzguMy02LjEtMTkuNS0yNC4zLTMzLjctNDUuOC0zMy43LTI2LjUgMC00OCAyMS41LTQ4IDQ4ek0yNDggODhjLTguOCAwLTE2IDcuMi0xNiAxNmwwIDMyLTMyIDBjLTguOCAwLTE2IDcuMi0xNiAxNmwwIDE2YzAgOC44IDcuMiAxNiAxNiAxNmwzMiAwIDAgMzJjMCA4LjggNy4yIDE2IDE2IDE2bDE2IDBjOC44IDAgMTYtNy4yIDE2LTE2bDAtMzIgMzIgMGM4LjggMCAxNi03LjIgMTYtMTZsMC0xNmMwLTguOC03LjItMTYtMTYtMTZsLTMyIDAgMC0zMmMwLTguOC03LjItMTYtMTYtMTZsLTE2IDB6TTQxNiAzMDRhODAgODAgMCAxIDEgMTYwIDAgODAgODAgMCAxIDEgLTE2MCAwek0zNTIgNTEyYzAtNTMgNDMtOTYgOTYtOTZsOTYgMGM1MyAwIDk2IDQzIDk2IDk2IDAgMTcuNy0xNC4zIDMyLTMyIDMybC0yMjQgMGMtMTcuNyAwLTMyLTE0LjMtMzItMzJ6Il19LFJEZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJhcnJvdy1kb3duLXVwLWxvY2siLGljb246WzU3Niw1MTIsW10sImU0YjAiLCJNMjYyLjYgNDIyLjZsLTgwIDgwYy0xMi41IDEyLjUtMzIuOCAxMi41LTQ1LjMgMGwtODAtODBjLTEyLjUtMTIuNS0xMi41LTMyLjggMC00NS4zczMyLjgtMTIuNSA0NS4zIDBsMjUuNCAyNS40IDAtMTE0LjctNjQgMGMtMTcuNyAwLTMyLTE0LjMtMzItMzJzMTQuMy0zMiAzMi0zMmwyNTYgMCAwLTExNC43LTI1LjQgMjUuNGMtMTIuNSAxMi41LTMyLjggMTIuNS00NS4zIDBzLTEyLjUtMzIuOCAwLTQ1LjNsODAtODBjMTIuNS0xMi41IDMyLjgtMTIuNSA0NS4zIDBsODAgODBjMTIuNSAxMi41IDEyLjUgMzIuOCAwIDQ1LjNzLTMyLjggMTIuNS00NS4zIDBsLTI1LjQtMjUuNCAwIDk0LjhjLTI1LjMgMjAuMy00Mi44IDUwLjEtNDcgODMuOWwtMTQ1IDAgMCAxMTQuNyAyNS40LTI1LjRjMTIuNS0xMi41IDMyLjgtMTIuNSA0NS4zIDBzMTIuNSAzMi44IDAgNDUuM3pNMTkyIDMybDAgMTQ0LTY0IDAgMC0xNDRjMC0xNy43IDE0LjMtMzIgMzItMzJzMzIgMTQuMyAzMiAzMnpNNDk2IDMwNC4xYzAtMTcuNy0xNC4zLTMyLTMyLTMycy0zMiAxNC4zLTMyIDMybDAgNDcuOSA2NCAwIDAtNDcuOXpNMzUyIDQwMGMwLTIwLjkgMTMuNC0zOC43IDMyLTQ1LjNsMC01MC42YzAtNDQuMiAzNS44LTgwIDgwLTgwczgwIDM1LjggODAgODBsMCA1MC42YzE4LjYgNi42IDMyIDI0LjQgMzIgNDUuM2wwIDk2YzAgMjYuNS0yMS41IDQ4LTQ4IDQ4bC0xMjggMGMtMjYuNSAwLTQ4LTIxLjUtNDgtNDhsMC05NnoiXX0sR0Y9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZm9sZGVyIixpY29uOls1MTIsNTEyLFsxMjgxOTMsMTI4NDQ3LDYxNzE2LCJmb2xkZXItYmxhbmsiXSwiZjA3YiIsIk02NCA0NDhsMzg0IDBjMzUuMyAwIDY0LTI4LjcgNjQtNjRsMC0yNDBjMC0zNS4zLTI4LjctNjQtNjQtNjRMMjk4LjcgODBjLTYuOSAwLTEzLjctMi4yLTE5LjItNi40TDI0MS4xIDQ0LjhDMjMwIDM2LjUgMjE2LjUgMzIgMjAyLjcgMzJMNjQgMzJDMjguNyAzMiAwIDYwLjcgMCA5NkwwIDM4NGMwIDM1LjMgMjguNyA2NCA2NCA2NHoiXX0sQkRlPUdGLEhEZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJob2xseS1iZXJyeSIsaWNvbjpbNTEyLDUxMixbXSwiZjdhYSIsIk0yNTYuMiA5NmE0OCA0OCAwIDEgMCAwLTk2IDQ4IDQ4IDAgMSAwIDAgOTZ6bS04MCA5NmE0OCA0OCAwIDEgMCAwLTk2IDQ4IDQ4IDAgMSAwIDAgOTZ6TTI3NyAzODMuOGMxIC4xIDIuMSAuMiAzLjIgLjIgMzkuOCAwIDcyIDMyLjIgNzIgNzJsMCAyMi43YzAgMTYuNCAxNiAyNy45IDMxLjYgMjIuOGwxMi44LTQuM2MxOC02IDM3LjMtNi41IDU1LjYtMS41bDE5LjQgNS4zYzE3LjkgNC45IDM0LjQtMTEuNiAyOS41LTI5LjVMNDk1LjkgNDUyYy01LTE4LjMtNC40LTM3LjYgMS41LTU1LjZsNC4zLTEyLjhjNS4yLTE1LjUtNi40LTMxLjYtMjIuOC0zMS42LTM0LjYgMC02Mi43LTI4LjEtNjIuNy02Mi43bDAtMzJjMC0xNi40LTE2LTI3LjktMzEuNi0yMi44bC0xMi44IDQuM2MtMTggNi0zNy4zIDYuNS01NS42IDEuNWwtMjkuNi04LjFjLTIuOS0uOC01LjktMS04LjctLjcgNC4yIDkuNyA1LjggMjAuOCAzLjcgMzIuM2wtNi4zIDM0LjhjLTEuNSA4LjQtMS40IDE3IC41IDI1LjNsNS4zIDIzLjljMi44IDEyLjcgMS4xIDI1LjItNCAzNS45ek0xMjcuOCAyMzQuNWMtMTUuNS01LjItMzEuNiA2LjQtMzEuNiAyMi44bDAgMzJjMCAzNC42LTI4LjEgNjIuNy02Mi43IDYyLjctMTYuNCAwLTI3LjkgMTYtMjIuOCAzMS42TDE1IDM5Ni40YzYgMTggNi41IDM3LjMgMS41IDU1LjZsLTUuMyAxOS40QzYuNCA0ODkuNCAyMi44IDUwNS44IDQwLjcgNTAxbDE5LjQtNS4zYzE4LjMtNSAzNy42LTQuNSA1NS42IDEuNWwxMi44IDQuM2MxNS41IDUuMiAzMS42LTYuNCAzMS42LTIyLjhsMC0zMmMwLTM0LjYgMjguMS02Mi43IDYyLjctNjIuNyAxNi40IDAgMjcuOS0xNiAyMi44LTMxLjZsLTQuMy0xMi44Yy02LTE4LTYuNS0zNy4zLTEuNS01NS42bDUuMy0xOS40YzQuOS0xNy45LTExLjYtMzQuNC0yOS41LTI5LjVsLTE5LjQgNS4zYy0xOC4zIDUtMzcuNiA0LjQtNTUuNi0xLjVsLTEyLjgtNC4zek0zODQuMiAxNDRhNDggNDggMCAxIDAgLTk2IDAgNDggNDggMCAxIDAgOTYgMHoiXX0scURlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InZlbnVzLWRvdWJsZSIsaWNvbjpbNjQwLDUxMixbOTg5MF0sImYyMjYiLCJNMTkyIDI4OGExMTIgMTEyIDAgMSAwIDAtMjI0IDExMiAxMTIgMCAxIDAgMCAyMjR6TTM2OCAxNzZjMCA4Ni4zLTYyLjEgMTU4LjEtMTQ0LjEgMTczLjEgLjEgMSAuMSAxLjkgLjEgMi45bDAgNjQgMzIgMGMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMmwtMzIgMCAwIDMyYzAgMTcuNy0xNC4zIDMyLTMyIDMycy0zMi0xNC4zLTMyLTMybDAtMzItMzIgMGMtMTcuNyAwLTMyLTE0LjMtMzItMzJzMTQuMy0zMiAzMi0zMmwzMiAwIDAtNjRjMC0xIDAtMS45IC4xLTIuOS04Mi0xNS0xNDQuMS04Ni44LTE0NC4xLTE3My4xIDAtOTcuMiA3OC44LTE3NiAxNzYtMTc2UzM2OCA3OC44IDM2OCAxNzZ6TTM1Ny41IDMyN2MxNC40LTE1LjggMjYuNi0zMy43IDM2LjEtNTMuMSAxNi4xIDkgMzQuNyAxNC4xIDU0LjUgMTQuMSA2MS45IDAgMTEyLTUwLjEgMTEyLTExMlM1MDkuOSA2NCA0NDggNjRjLTE5LjggMC0zOC4zIDUuMS01NC41IDE0LjEtOS41LTE5LjQtMjEuNi0zNy4zLTM2LjEtNTMuMSAyNi40LTE1LjkgNTcuNC0yNSA5MC41LTI1IDk3LjIgMCAxNzYgNzguOCAxNzYgMTc2IDAgODYuMy02Mi4xIDE1OC4xLTE0NC4xIDE3My4xIC4xIC45IC4xIDEuOSAuMSAyLjlsMCA2NCAzMiAwYzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMybC0zMiAwIDAgMzJjMCAxNy43LTE0LjMgMzItMzIgMzJzLTMyLTE0LjMtMzItMzJsMC0zMi0zMiAwYy0xNy43IDAtMzItMTQuMy0zMi0zMnMxNC4zLTMyIDMyLTMybDMyIDAgMC02NGMwLTEgMC0xLjkgLjEtMi45LTIxLjEtMy45LTQwLjktMTEuNS01OC42LTIyLjJ6Il19LFZEZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJjbGlwYm9hcmQtcXVlc3Rpb24iLGljb246WzM4NCw1MTIsW10sImU0ZTMiLCJNMzExLjQgMzJsOC42IDBjMzUuMyAwIDY0IDI4LjcgNjQgNjRsMCAzNTJjMCAzNS4zLTI4LjcgNjQtNjQgNjRMNjQgNTEyYy0zNS4zIDAtNjQtMjguNy02NC02NEwwIDk2QzAgNjAuNyAyOC43IDMyIDY0IDMybDguNiAwQzgzLjYgMTIuOSAxMDQuMyAwIDEyOCAwTDI1NiAwYzIzLjcgMCA0NC40IDEyLjkgNTUuNCAzMnpNMjQ4IDExMmMxMy4zIDAgMjQtMTAuNyAyNC0yNHMtMTAuNy0yNC0yNC0yNEwxMzYgNjRjLTEzLjMgMC0yNCAxMC43LTI0IDI0czEwLjcgMjQgMjQgMjRsMTEyIDB6TTE5MiAyNDhjMTYuMSAwIDI5LjIgMTMuMSAyOS4yIDI5LjIgMCA4LjctMy4xIDEzLjktNi45IDE3LjctNC41IDQuNC0xMC43IDcuNS0xNi44IDkuNS0xNC45IDUtMjkuNSAxOS4zLTI5LjUgMzkuNSAwIDEzLjMgMTAuNyAyNCAyNCAyNCAxMS41IDAgMjEuMi04LjEgMjMuNS0xOSAxOS4yLTcuMSA1My43LTI2LjMgNTMuNy03MS44IDAtNDIuNi0zNC42LTc3LjItNzcuMi03Ny4ycy03Ny4yIDM0LjYtNzcuMiA3Ny4yYzAgMTMuMyAxMC43IDI0IDI0IDI0czI0LTEwLjcgMjQtMjRjMC0xNi4xIDEzLjEtMjkuMiAyOS4yLTI5LjJ6bTI4IDE2OGMwLTE1LjUtMTIuNS0yOC0yOC0yOHMtMjggMTIuNS0yOCAyOCAxMi41IDI4IDI4IDI4IDI4LTEyLjUgMjgtMjh6Il19LGpEZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJob3Rkb2ciLGljb246WzUxMiw1MTIsWzEyNzc4OV0sImY4MGYiLCJNMjg4IDBjLTIwLjUgMC00MC4xIDguMS01NC42IDIyLjZMMjIuNiAyMzMuNEM4LjEgMjQ3LjkgMCAyNjcuNSAwIDI4OCAwIDMwMC4yIDIuOSAzMTIuMSA4LjIgMzIyLjdMMzIyLjcgOC4yQzMxMi4xIDIuOSAzMDAuMiAwIDI4OCAwek0yMjQgNTEyYzIwLjUgMCA0MC4xLTguMSA1NC42LTIyLjZMNDg5LjQgMjc4LjZjMTQuNS0xNC41IDIyLjYtMzQuMSAyMi42LTU0LjYgMC0xMi4yLTIuOS0yNC4xLTguMi0zNC43TDE4OS4zIDUwMy44YzEwLjcgNS40IDIyLjYgOC4yIDM0LjcgOC4yek00NTYuNiAxNjguNmMzMS4yLTMxLjIgMzEuMi04MS45IDAtMTEzLjFzLTgxLjktMzEuMi0xMTMuMSAwbC0yODggMjg4Yy0zMS4yIDMxLjItMzEuMiA4MS45IDAgMTEzLjFzODEuOSAzMS4yIDExMy4xIDBsMjg4LTI4OHoiXX0sVURlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImFycm93LXVwLWZyb20tYnJhY2tldCIsaWNvbjpbNDQ4LDUxMixbXSwiZTA5YSIsIk0yNDYuNiA5LjRjLTEyLjUtMTIuNS0zMi44LTEyLjUtNDUuMyAwbC0xMjggMTI4Yy0xMi41IDEyLjUtMTIuNSAzMi44IDAgNDUuM3MzMi44IDEyLjUgNDUuMyAwTDE5MiAxMDkuMyAxOTIgMzIwYzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJsMC0yMTAuNyA3My40IDczLjRjMTIuNSAxMi41IDMyLjggMTIuNSA0NS4zIDBzMTIuNS0zMi44IDAtNDUuM2wtMTI4LTEyOHpNNjQgMzUyYzAtMTcuNy0xNC4zLTMyLTMyLTMyUzAgMzM0LjMgMCAzNTJsMCA2NGMwIDUzIDQzIDk2IDk2IDk2bDI1NiAwYzUzIDAgOTYtNDMgOTYtOTZsMC02NGMwLTE3LjctMTQuMy0zMi0zMi0zMnMtMzIgMTQuMy0zMiAzMmwwIDY0YzAgMTcuNy0xNC4zIDMyLTMyIDMyTDk2IDQ0OGMtMTcuNyAwLTMyLTE0LjMtMzItMzJsMC02NHoiXX0sV0RlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6Im1pY3Jvc2NvcGUiLGljb246WzUxMiw1MTIsWzEyODMwMF0sImY2MTAiLCJNMTc2IDBjLTI2LjUgMC00OCAyMS41LTQ4IDQ4bDAgMjA4YzAgMjYuNSAyMS41IDQ4IDQ4IDQ4bDY0IDBjMjYuNSAwIDQ4LTIxLjUgNDgtNDhsMC02NCAzMiAwYzcwLjcgMCAxMjggNTcuMyAxMjggMTI4UzM5MC43IDQ0OCAzMjAgNDQ4TDMyIDQ0OGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJzMTQuMyAzMiAzMiAzMmw0NDggMGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMmwtMTYuOSAwYzMwLjQtMzQgNDguOS03OC44IDQ4LjktMTI4IDAtMTA2LTg2LTE5Mi0xOTItMTkybC0zMiAwIDAtODBjMC0yNi41LTIxLjUtNDgtNDgtNDhMMTc2IDB6TTEyMCAzNTJjLTEzLjMgMC0yNCAxMC43LTI0IDI0czEwLjcgMjQgMjQgMjRsMTc2IDBjMTMuMyAwIDI0LTEwLjcgMjQtMjRzLTEwLjctMjQtMjQtMjRsLTE3NiAweiJdfSxHRGU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiY2xvdWQiLGljb246WzU3Niw1MTIsWzk3MjldLCJmMGMyIiwiTTAgMzM2YzAgNzkuNSA2NC41IDE0NCAxNDQgMTQ0bDMwNCAwYzcwLjcgMCAxMjgtNTcuMyAxMjgtMTI4IDAtNTEuNi0zMC41LTk2LjEtNzQuNS0xMTYuMyA2LjctMTMuMSAxMC41LTI4IDEwLjUtNDMuNyAwLTUzLTQzLTk2LTk2LTk2LTE3LjcgMC0zNC4yIDQuOC00OC40IDEzLjEtMjQuMS00NS44LTcyLjItNzcuMS0xMjcuNi03Ny4xLTc5LjUgMC0xNDQgNjQuNS0xNDQgMTQ0IDAgOCAuNyAxNS45IDEuOSAyMy41LTU2LjkgMTkuMi05Ny45IDczLjEtOTcuOSAxMzYuNXoiXX0sWURlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImJhc2ViYWxsLWJhdC1iYWxsIixpY29uOls1NzYsNTEyLFtdLCJmNDMyIiwiTTQ2NC4xIDU0NGE4MCA4MCAwIDEgMSAwLTE2MCA4MCA4MCAwIDEgMSAwIDE2MHptOC40LTU3NmMxNS4xIDAgMjkuNyA1LjggNDAuNyAxNi4ybDQ3LjIgNDQuOGMxMi42IDEyIDE5LjEgMjkgMTcuNSA0Ni4zLTEuMiAxMy4zLTcgMjUuOC0xNi41IDM1LjJMMzYzLjEgMzA5Yy03LjMgNy4zLTE1LjcgMTMuNC0yNSAxOEwyMDYgMzkzYy05LjIgNC42LTE3LjcgMTAuNy0yNSAxOGwtOTIgOTIgMS43IDEuOGM3LjcgOS40IDcuMSAyMy4zLTEuNyAzMi4xcy0yMi43IDkuMy0zMi4xIDEuN2wtMS44LTEuNy00OC00OC0xLjctMS44Yy03LjctOS40LTcuMS0yMy4zIDEuNy0zMi4xczIyLjctOS4zIDMyLjEtMS43bDEuOCAxLjcgOTItOTJjNy4zLTcuMyAxMy40LTE1LjcgMTgtMjVsNjYuMS0xMzIuMWM0LjYtOS4yIDEwLjctMTcuNyAxOC0yNUw0MzAuOC0xNC43QzQ0MS45LTI1LjggNDU2LjktMzIgNDcyLjUtMzJ6Il19LFlGPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImNhci1yZWFyIixpY29uOls1MTIsNTEyLFsiY2FyLWFsdCJdLCJmNWRlIiwiTTE2NS40IDk2bDE4MS4yIDBjMTMuNiAwIDI1LjcgOC42IDMwLjIgMjEuNGwyNi4xIDc0LjYtMjkzLjggMCAyNi4xLTc0LjZjNC41LTEyLjggMTYuNi0yMS40IDMwLjItMjEuNHptLTkwLjYgLjNMMzkuNiAxOTYuOEMxNi40IDIwNi40IDAgMjI5LjMgMCAyNTZsMCA5NmMwIDIzLjcgMTIuOSA0NC40IDMyIDU1LjRMMzIgNDQ4YzAgMTcuNyAxNC4zIDMyIDMyIDMybDMyIDBjMTcuNyAwIDMyLTE0LjMgMzItMzJsMC0zMiAyNTYgMCAwIDMyYzAgMTcuNyAxNC4zIDMyIDMyIDMybDMyIDBjMTcuNyAwIDMyLTE0LjMgMzItMzJsMC00MC42YzE5LjEtMTEuMSAzMi0zMS43IDMyLTU1LjRsMC05NmMwLTI2LjctMTYuNC00OS42LTM5LjYtNTkuMkw0MzcuMiA5Ni4zQzQyMy43IDU3LjggMzg3LjQgMzIgMzQ2LjYgMzJMMTY1LjQgMzJjLTQwLjggMC03Ny4xIDI1LjgtOTAuNiA2NC4zek0yMDggMjg4bDk2IDBjOC44IDAgMTYgNy4yIDE2IDE2bDAgMzJjMCA4LjgtNy4yIDE2LTE2IDE2bC05NiAwYy04LjggMC0xNi03LjItMTYtMTZsMC0zMmMwLTguOCA3LjItMTYgMTYtMTZ6TTQ4IDI4MGMwLTEzLjMgMTAuNy0yNCAyNC0yNGwzMiAwYzEzLjMgMCAyNCAxMC43IDI0IDI0cy0xMC43IDI0LTI0IDI0bC0zMiAwYy0xMy4zIDAtMjQtMTAuNy0yNC0yNHptMzYwLTI0bDMyIDBjMTMuMyAwIDI0IDEwLjcgMjQgMjRzLTEwLjcgMjQtMjQgMjRsLTMyIDBjLTEzLjMgMC0yNC0xMC43LTI0LTI0czEwLjctMjQgMjQtMjR6Il19LFpEZT1ZRixaRj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJ0aHVtYnRhY2stc2xhc2giLGljb246WzU3Niw1MTIsWyJ0aHVtYi10YWNrLXNsYXNoIl0sImU2OGYiLCJNNDEtMjQuOWMtOS40LTkuNC0yNC42LTkuNC0zMy45IDBTLTIuMy0uMyA3IDkuMWw1MjggNTI4YzkuNCA5LjQgMjQuNiA5LjQgMzMuOSAwczkuNC0yNC42IDAtMzMuOUw0MTcuOCAzNTIgNDQ4IDM1MmMxMCAwIDE5LjUtNC43IDI1LjUtMTIuN3M4LTE4LjQgNS4yLTI4LjFMNDc1IDI5Ny44Yy0xMi40LTQzLjMtNDEtNzguNS03OC4yLTk5LjdMMzg2LjUgNjQgNDE2IDY0YzE3LjcgMCAzMi0xNC4zIDMyLTMyUzQzMy43IDAgNDE2IDBMMTYwIDBjLTcuNCAwLTE0LjEgMi41LTE5LjUgNi42TDE5MC4xIDU2LjMgMTg1LjMgMTE5LjQgNDEtMjQuOXpNMjgyLjIgMzUyTDE0OS43IDIxOS42Yy0yMi43IDIwLjUtMzkuOCA0Ny40LTQ4LjcgNzguM2wtMy44IDEzLjRjLTIuOCA5LjctLjggMjAgNS4yIDI4LjFTMTE4IDM1MiAxMjggMzUybDE1NC4yIDB6TTI1NiA1MTJjMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMmwwLTExMi02NCAwIDAgMTEyeiJdfSxYRGU9WkYsS0RlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InBsdXMtbWludXMiLGljb246WzM4NCw1MTIsW10sImU0M2MiLCJNMjI0IDMyYzAtMTcuNy0xNC4zLTMyLTMyLTMycy0zMiAxNC4zLTMyIDMybDAgMTI4LTEyOCAwYy0xNy43IDAtMzIgMTQuMy0zMiAzMnMxNC4zIDMyIDMyIDMybDEyOCAwIDAgMTI4YzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJsMC0xMjggMTI4IDBjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJsLTEyOCAwIDAtMTI4ek0wIDQ4MGMwIDE3LjcgMTQuMyAzMiAzMiAzMmwzMjAgMGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMkwzMiA0NDhjLTE3LjcgMC0zMiAxNC4zLTMyIDMyeiJdfSxRRGU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiaG91c2UtY2lyY2xlLWNoZWNrIixpY29uOls2NDAsNTEyLFtdLCJlNTA5IiwiTTQ5NiA1NDRhMTQ0IDE0NCAwIDEgMSAwLTI4OCAxNDQgMTQ0IDAgMSAxIDAgMjg4ek0yNjguNiA2LjVjMTIuMi05LjMgMjkuNy04LjcgNDEuMiAybDIxNy42IDIwMmMtMTAuMi0xLjctMjAuNy0yLjYtMzEuMy0yLjYtNzguNiAwLTE0Ni4xIDQ3LjItMTc1LjggMTE0LjgtNS4xLTEuOC0xMC41LTIuOC0xNi4yLTIuOGwtMzIgMGMtMjYuNSAwLTQ4IDIxLjUtNDggNDhsMCA5NiA5MSAwYzYuMSAxNy4zIDE0LjYgMzMuNCAyNS4xIDQ4TDE0NCA1MTJjLTM1LjMgMC02NC0yOC43LTY0LTY0bDAtMTc2LTE2IDBjLTEzLjIgMC0yNS04LjEtMjkuOC0yMC4zcy0xLjYtMjYuMiA4LTM1LjFsMjI0LTIwOCAyLjQtMnpNNTUzLjQgMzM5LjFjLTcuMS01LjItMTcuMS0zLjYtMjIuMyAzLjVsLTUzIDcyLjgtMjYuNy0yNi44Yy02LjItNi4yLTE2LjQtNi4yLTIyLjYgMC02LjIgNi4yLTYuMiAxNi40IDAgMjIuNmw0MCA0MGMzLjMgMy4zIDcuOSA1IDEyLjYgNC43czguOS0yLjggMTEuNy02LjZsNjQtODhjNS4yLTcuMSAzLjYtMTcuMS0zLjUtMjIuM3oiXX0sSkRlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImNhbGVuZGFyLWRheSIsaWNvbjpbNDQ4LDUxMixbXSwiZjc4MyIsIk0xMjggMGMxNy43IDAgMzIgMTQuMyAzMiAzMmwwIDMyIDEyOCAwIDAtMzJjMC0xNy43IDE0LjMtMzIgMzItMzJzMzIgMTQuMyAzMiAzMmwwIDMyIDMyIDBjMzUuMyAwIDY0IDI4LjcgNjQgNjRsMCAyODhjMCAzNS4zLTI4LjcgNjQtNjQgNjRMNjQgNDgwYy0zNS4zIDAtNjQtMjguNy02NC02NEwwIDEyOEMwIDkyLjcgMjguNyA2NCA2NCA2NGwzMiAwIDAtMzJjMC0xNy43IDE0LjMtMzIgMzItMzJ6bTAgMjU2Yy0xNy43IDAtMzIgMTQuMy0zMiAzMmwwIDY0YzAgMTcuNyAxNC4zIDMyIDMyIDMybDY0IDBjMTcuNyAwIDMyLTE0LjMgMzItMzJsMC02NGMwLTE3LjctMTQuMy0zMi0zMi0zMmwtNjQgMHoiXX0sZUVlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImxpYnJhIixpY29uOls1MTIsNTEyLFtdLCJlODRiIiwiTTQ4MCAzODRjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJMMzIgNDQ4Yy0xNy43IDAtMzItMTQuMy0zMi0zMnMxNC4zLTMyIDMyLTMybDQ0OCAwek0yNTYgMzJjOTcuMiAwIDE3NiA3OC44IDE3NiAxNzYgMCAxNi42LTIuNCAzMi43LTYuNyA0OGw1NC43IDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJsLTEwNC4yIDBjLTExLjggMC0yMi43LTYuNS0yOC4yLTE2LjlzLTQuOS0yMy4xIDEuNi0zMi45YzExLjktMTcuOCAxOC44LTM5LjEgMTguOC02Mi4yIDAtNjEuOS01MC4xLTExMi0xMTItMTEyUzE0NCAxNDYuMSAxNDQgMjA4YzAgMjMuMSA2LjkgNDQuNCAxOC44IDYyLjIgNi42IDkuOCA3LjIgMjIuNSAxLjYgMzIuOVMxNDguMSAzMjAgMTM2LjIgMzIwTDMyIDMyMGMtMTcuNyAwLTMyLTE0LjMtMzItMzJzMTQuMy0zMiAzMi0zMmw1NC44IDBjLTQuMy0xNS4zLTYuOC0zMS40LTYuOC00OCAwLTk3LjIgNzguOC0xNzYgMTc2LTE3NnoiXX0sdEVlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImNpcmNsZSIsaWNvbjpbNTEyLDUxMixbMTI4MzA4LDEyODMwOSwxMjg5OTIsMTI4OTkzLDEyODk5NCwxMjg5OTUsMTI4OTk2LDk2NzksOTg5OCw5ODk5LDExMDQ0LDYxNzA4LDYxOTE1XSwiZjExMSIsIk0wIDI1NmEyNTYgMjU2IDAgMSAxIDUxMiAwIDI1NiAyNTYgMCAxIDEgLTUxMiAweiJdfSxhRWU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToibW9iaWxlLXZpYnJhdGUiLGljb246WzU3Niw1MTIsW10sImU4MTYiLCJNMzg0IDBjMzUuMyAwIDY0IDI4LjcgNjQgNjRsMCAzODRjMCAzNS4zLTI4LjcgNjQtNjQgNjRsLTE5MiAwYy0zNS4zIDAtNjQtMjguNy02NC02NGwwLTM4NGMwLTM1LjMgMjguNy02NCA2NC02NEwzODQgMHpNMjQ4IDQxNmMtMTMuMyAwLTI0IDEwLjctMjQgMjRzMTAuNyAyNCAyNCAyNGw4MCAwYzEzLjMgMCAyNC0xMC43IDI0LTI0cy0xMC43LTI0LTI0LTI0bC04MCAwek00OC44IDEzMy40YzkuNC03LjcgMjMuMy03LjEgMzIuMSAxLjcgOS40IDkuNCA5LjQgMjQuNiAwIDMzLjlsLTMxIDMxIDI1LjQgMjUuNCAyLjkgMy4yYzYuMyA3LjcgOS44IDE3LjQgOS44IDI3LjQgMCAxMS41LTQuNiAyMi41LTEyLjcgMzAuNmwtMjUuNCAyNS40IDMxIDMxIDEuNyAxLjhjNy43IDkuNCA3LjEgMjMuMy0xLjcgMzIuMXMtMjIuNyA5LjMtMzIuMSAxLjdMNDcgMzc3IDEyLjcgMzQyLjZDNS42IDMzNS41IDEuMiAzMjYuMiAuMiAzMTYuM0wwIDMxMiAuMiAzMDcuN2MxLTkuOSA1LjQtMTkuMiAxMi41LTI2LjNMMzguMSAyNTYgMTIuNyAyMzAuNkM1LjYgMjIzLjUgMS4yIDIxNC4yIC4yIDIwNC4zTDAgMjAwIC4yIDE5NS43YzEtOS45IDUuNC0xOS4yIDEyLjUtMjYuM0w0NyAxMzUgNDguOCAxMzMuNHpNNDk1IDEzNWM4LjgtOC44IDIyLjctOS4zIDMyLjEtMS43bDEuOCAxLjcgMzQuMyAzNC4zYzcuMSA3LjEgMTEuNSAxNi40IDEyLjUgMjYuM2wuMiA0LjMtLjIgNC4zYy0xIDkuOS01LjQgMTkuMi0xMi41IDI2LjNsLTI1LjQgMjUuNCAyNS40IDI1LjRjNy4xIDcuMSAxMS41IDE2LjQgMTIuNSAyNi4zbC4yIDQuMy0uMiA0LjNjLTEgOS45LTUuNCAxOS4yLTEyLjUgMjYuM2wtMzQuMyAzNC4zLTEuOCAxLjdjLTkuNCA3LjctMjMuMyA3LjEtMzIuMS0xLjdzLTkuMy0yMi43LTEuNy0zMi4xbDEuNy0xLjggMzEtMzEtMjUuNC0yNS40Yy04LjEtOC4xLTEyLjctMTkuMS0xMi43LTMwLjYgMC0xMCAzLjUtMTkuNyA5LjgtMjcuNGwyLjktMy4yIDI1LjQtMjUuNC0zMS0zMWMtOS40LTkuNC05LjQtMjQuNiAwLTMzLjl6Il19LFhGPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImZhY2UtZ3Jpbi1zcXVpbnQiLGljb246WzUxMiw1MTIsWzEyODUxOCwiZ3Jpbi1zcXVpbnQiXSwiZjU4NSIsIk0yNTYgNTEyYTI1NiAyNTYgMCAxIDAgMC01MTIgMjU2IDI1NiAwIDEgMCAwIDUxMnpNMzg2LjcgMzA4LjljMTEuOS0zLjcgMjMuOSA2LjMgMTkuNiAxOC4xLTIyLjQgNjEuMy04MS4zIDEwNS4xLTE1MC4zIDEwNS4xUzEyOC4xIDM4OC4yIDEwNS43IDMyNi45Yy00LjMtMTEuOCA3LjctMjEuOCAxOS42LTE4LjEgMzkuMiAxMi4yIDgzLjcgMTkuMSAxMzAuNyAxOS4xczkxLjUtNi45IDEzMC43LTE5LjF6TTEyMi42IDE0My4yYzQuNS02LjggMTMuMy05LjIgMjAuNi01LjVsNzkuNiA0MGM1LjQgMi43IDguOCA4LjIgOC44IDE0LjNzLTMuNCAxMS42LTguOCAxNC4zbC03OS42IDQwYy03LjMgMy42LTE2LjEgMS4zLTIwLjYtNS41cy0zLjEtMTUuOSAzLjEtMjEuMUwxNTkgMTkyIDEyNS44IDE2NC4zYy02LjItNS4yLTcuNi0xNC4zLTMuMS0yMS4xem0yNjMuNiAyMS4xTDM1MyAxOTIgMzg2LjIgMjE5LjdjNi4yIDUuMiA3LjYgMTQuMyAzLjEgMjEuMXMtMTMuMyA5LjItMjAuNiA1LjVsLTc5LjYtNDBjLTUuNC0yLjctOC44LTguMi04LjgtMTQuM3MzLjQtMTEuNiA4LjgtMTQuM2w3OS42LTQwYzcuMy0zLjYgMTYuMS0xLjMgMjAuNiA1LjVzMy4xIDE1LjktMy4xIDIxLjF6Il19LGlFZT1YRixyRWU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToidXNlcnMtYmV0d2Vlbi1saW5lcyIsaWNvbjpbNTc2LDUxMixbXSwiZTU5MSIsIk0yNCAxNmw1MjggMGMxMy4zIDAgMjQgMTAuNyAyNCAyNHMtMTAuNyAyNC0yNCAyNEwyNCA2NEMxMC43IDY0IDAgNTMuMyAwIDQwUzEwLjcgMTYgMjQgMTZ6bTAgNDQ4bDUyOCAwYzEzLjMgMCAyNCAxMC43IDI0IDI0cy0xMC43IDI0LTI0IDI0TDI0IDUxMmMtMTMuMyAwLTI0LTEwLjctMjQtMjRzMTAuNy0yNCAyNC0yNHpNMzkyIDE5MmE1NiA1NiAwIDEgMSAxMTIgMCA1NiA1NiAwIDEgMSAtMTEyIDB6bTI3LjIgMTAwLjRjOS4xLTIuOSAxOC44LTQuNCAyOC44LTQuNCA1MyAwIDk2IDQzIDk2IDk2bDAgMTAuN2MwIDExLjgtOS42IDIxLjMtMjEuMyAyMS4zbC03OC44IDBjMi43LTcuNSA0LjEtMTUuNiA0LjEtMjRsMC04YzAtMzQuMS0xMC42LTY1LjctMjguOC05MS42em0tMjYyLjQgMEMxMzguNiAzMTguMyAxMjggMzQ5LjkgMTI4IDM4NGwwIDhjMCA4LjQgMS40IDE2LjUgNC4xIDI0bC03OC44IDBDNDEuNiA0MTYgMzIgNDA2LjQgMzIgMzk0LjdMMzIgMzg0YzAtNTMgNDMtOTYgOTYtOTYgMTAgMCAxOS43IDEuNSAyOC44IDQuNHpNNzIgMTkyYTU2IDU2IDAgMSAxIDExMiAwIDU2IDU2IDAgMSAxIC0xMTIgMHptMTUyLTE2YTY0IDY0IDAgMSAxIDEyOCAwIDY0IDY0IDAgMSAxIC0xMjggMHpNMTc2IDM4NGMwLTYxLjkgNTAuMS0xMTIgMTEyLTExMnMxMTIgNTAuMSAxMTIgMTEybDAgOGMwIDEzLjMtMTAuNyAyNC0yNCAyNGwtMTc2IDBjLTEzLjMgMC0yNC0xMC43LTI0LTI0bDAtOHoiXX0sc0VlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImhvdXNlLW1lZGljYWwtY2lyY2xlLXhtYXJrIixpY29uOls2NDAsNTEyLFtdLCJlNTEzIiwiTTMwOS44IDguNmMtMTIuMy0xMS40LTMxLjMtMTEuNC00My41IDBsLTIyNCAyMDhjLTkuNiA5LTEyLjggMjIuOS04IDM1LjFTNTAuOCAyNzIgNjQgMjcybDE2IDAgMCAxNzZjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMTk2IDBjLTIxLjItMjkuNS0zNC4zLTY1LjMtMzUuOS0xMDRMMjcyIDQwOGMtOC44IDAtMTYtNy4yLTE2LTE2bDAtNDAtNDAgMGMtOC44IDAtMTYtNy4yLTE2LTE2bDAtMzJjMC04LjggNy4yLTE2IDE2LTE2bDQwIDAgMC00MGMwLTguOCA3LjItMTYgMTYtMTZsMzIgMGM4LjggMCAxNiA3LjIgMTYgMTZsMCA0MCAyMCAwYzM0LjktNDguNSA5MS43LTgwIDE1Ni04MCAxMC43IDAgMjEuMSAuOSAzMS4zIDIuNUwzMDkuOCA4LjZ6TTQ5NiA1NDRhMTQ0IDE0NCAwIDEgMCAwLTI4OCAxNDQgMTQ0IDAgMSAwIDAgMjg4em0yMi42LTE0NGwzNi43IDM2LjdjNi4yIDYuMiA2LjIgMTYuNCAwIDIyLjZzLTE2LjQgNi4yLTIyLjYgMGwtMzYuNy0zNi43LTM2LjcgMzYuN2MtNi4yIDYuMi0xNi40IDYuMi0yMi42IDBzLTYuMi0xNi40IDAtMjIuNmwzNi43LTM2LjctMzYuNy0zNi43Yy02LjItNi4yLTYuMi0xNi40IDAtMjIuNnMxNi40LTYuMiAyMi42IDBsMzYuNyAzNi43IDM2LjctMzYuN2M2LjItNi4yIDE2LjQtNi4yIDIyLjYgMHM2LjIgMTYuNCAwIDIyLjZMNTE4LjYgNDAweiJdfSxLRj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJ0YWJsZS1saXN0IixpY29uOls0NDgsNTEyLFsidGgtbGlzdCJdLCJmMDBiIiwiTTAgOTZDMCA2MC43IDI4LjcgMzIgNjQgMzJsMzIwIDBjMzUuMyAwIDY0IDI4LjcgNjQgNjRsMCAzMjBjMCAzNS4zLTI4LjcgNjQtNjQgNjRMNjQgNDgwYy0zNS4zIDAtNjQtMjguNy02NC02NEwwIDk2em02NCAwbDAgNjQgNjQgMCAwLTY0LTY0IDB6bTMyMCAwbC0xOTIgMCAwIDY0IDE5MiAwIDAtNjR6TTY0IDIyNGwwIDY0IDY0IDAgMC02NC02NCAwem0zMjAgMGwtMTkyIDAgMCA2NCAxOTIgMCAwLTY0ek02NCAzNTJsMCA2NCA2NCAwIDAtNjQtNjQgMHptMzIwIDBsLTE5MiAwIDAgNjQgMTkyIDAgMC02NHoiXX0sbkVlPUtGLG9FZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJmbGFzay12aWFsIixpY29uOls2NDAsNTEyLFtdLCJlNGYzIiwiTTE4NC42IDQxMS41Yy0zLjEgNy4zLTUuNCAxNC45LTYuOCAyMi42LTE0LjUgOC44LTMxLjUgMTMuOS00OS44IDEzLjktNTMgMC05Ni00My05Ni05NkwzMiA2NEMxNC4zIDY0IDAgNDkuNyAwIDMyUzE0LjMgMCAzMiAwTDIyNCAwYzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMybDAgMjU1LjYtMzkuNCA5MS45ek05NiA2NGwwIDEyOCA2NCAwIDAtMTI4LTY0IDB6TTM1MiAwTDUxMiAwYzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMybDAgMTUzLjQgOTEuMyAyMTNjMi4zIDUuNCAzLjggMTEuMSA0LjQgMTdsLjMgLjYtLjMgMGMuMiAxLjggLjMgMy42IC4zIDUuNCAwIDMyLjMtMjYuMiA1OC42LTU4LjYgNTguNmwtMjY2LjkgMGMtMzIuMyAwLTU4LjYtMjYuMi01OC42LTU4LjYgMC0xLjggLjEtMy42IC4zLTUuNGwtLjMgMCAuMy0uNmMuNi01LjggMi4xLTExLjYgNC40LTE3TDMyMCAyMTcuNCAzMjAgNjRjLTE3LjcgMC0zMi0xNC4zLTMyLTMyUzMwMi4zIDAgMzIwIDBsMzIgMHpNNDUzLjIgMjQyLjZjLTMuNC04LTUuMi0xNi41LTUuMi0yNS4ybDAtMTUzLjQtNjQgMCAwIDE1My40YzAgOC43LTEuOCAxNy4yLTUuMiAyNS4ybC0zMy4yIDc3LjQgMTQwLjcgMC0zMy4yLTc3LjR6Il19LFFGPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImNpcmNsZS1leGNsYW1hdGlvbiIsaWNvbjpbNTEyLDUxMixbImV4Y2xhbWF0aW9uLWNpcmNsZSJdLCJmMDZhIiwiTTI1NiA1MTJhMjU2IDI1NiAwIDEgMSAwLTUxMiAyNTYgMjU2IDAgMSAxIDAgNTEyem0wLTE5MmEzMiAzMiAwIDEgMCAwIDY0IDMyIDMyIDAgMSAwIDAtNjR6bTAtMTkyYy0xOC4yIDAtMzIuNyAxNS41LTMxLjQgMzMuN2w3LjQgMTA0Yy45IDEyLjYgMTEuNCAyMi4zIDIzLjkgMjIuMyAxMi42IDAgMjMtOS43IDIzLjktMjIuM2w3LjQtMTA0YzEuMy0xOC4yLTEzLjEtMzMuNy0zMS40LTMzLjd6Il19LGxFZT1RRixKRj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJ0YXhpIixpY29uOls1MTIsNTEyLFsxMjg2NjIsImNhYiJdLCJmMWJhIiwiTTE5MiAwYy0xNy43IDAtMzIgMTQuMy0zMiAzMmwwIDMyLTguOSAwYy00MiAwLTc5LjEgMjcuMy05MS42IDY3LjRsLTIzIDczLjVDMTQuNSAyMTkuMSAwIDI0My45IDAgMjcyTDAgNDQ4YzAgMTcuNyAxNC4zIDMyIDMyIDMybDMyIDBjMTcuNyAwIDMyLTE0LjMgMzItMzJsMC0zMiAzMjAgMCAwIDMyYzAgMTcuNyAxNC4zIDMyIDMyIDMybDMyIDBjMTcuNyAwIDMyLTE0LjMgMzItMzJsMC0xNzZjMC0yOC4xLTE0LjUtNTIuOS0zNi40LTY3LjFsLTIzLTczLjVDNDQwLjEgOTEuMyA0MDIuOSA2NCAzNjAuOSA2NGwtOC45IDAgMC0zMmMwLTE3LjctMTQuMy0zMi0zMi0zMkwxOTIgMHpNMTUxLjEgMTI4bDIwOS45IDBjMTQgMCAyNi40IDkuMSAzMC41IDIyLjVsMTMgNDEuNS0yOTYuOSAwIDEzLTQxLjVjNC4yLTEzLjQgMTYuNS0yMi41IDMwLjUtMjIuNXpNOTYgMjcyYTMyIDMyIDAgMSAxIDAgNjQgMzIgMzIgMCAxIDEgMC02NHptMjg4IDMyYTMyIDMyIDAgMSAxIDY0IDAgMzIgMzIgMCAxIDEgLTY0IDB6Il19LGNFZT1KRixlTz17cHJlZml4OiJmYXMiLGljb25OYW1lOiJ0ZXh0LXNsYXNoIixpY29uOls1NzYsNTEyLFsicmVtb3ZlLWZvcm1hdCJdLCJmODdkIiwiTTQxLTI0LjljLTkuNC05LjQtMjQuNi05LjQtMzMuOSAwUy0yLjMtLjMgNyA5LjFsNTI4IDUyOGM5LjQgOS40IDI0LjYgOS40IDMzLjkgMHM5LjQtMjQuNiAwLTMzLjlMMzIyLjcgMjU2LjkgMzY4LjIgOTYgNDcxIDk2IDQ2NSAxMjAuMmMtNC4zIDE3LjEgNi4xIDM0LjUgMjMuMyAzOC44czM0LjUtNi4xIDM4LjgtMjMuM2wxMS00NC4xQzU0NS42IDYxLjMgNTIyLjcgMzIgNDkxLjUgMzJsLTMxOSAwYy0xOS44IDAtMzcuMyAxMi4xLTQ0LjUgMzAuMWwtODctODd6TTE4MC40IDExNC41bDQuNi0xOC41IDExNi43IDAtMzAuOCAxMDktOTAuNS05MC41ek0yNDEgMzEwLjhMMjExLjMgNDE2IDE2MCA0MTZjLTE3LjcgMC0zMiAxNC4zLTMyIDMyczE0LjMgMzIgMzIgMzJsMTYwIDBjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJsLTQyLjIgMCAxNS4xLTUzLjMtNTEuOS01MS45eiJdfSxkRWU9ZU8saEVlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InBlb3BsZS1wdWxsaW5nIixpY29uOls1NzYsNTEyLFtdLCJlNTM1IiwiTTgwIDk2YTQ4IDQ4IDAgMSAwIDAtOTYgNDggNDggMCAxIDAgMCA5NnpNNjQgMTI4Yy0zNS4zIDAtNjQgMjguNy02NCA2NEwwIDMyMGMwIDE3LjcgMTQuMyAzMiAzMiAzMiA5LjggMCAxOC41LTQuNCAyNC40LTExLjJMODAuNCA0ODUuM2MyLjkgMTcuNCAxOS40IDI5LjIgMzYuOCAyNi4zczI5LjItMTkuNCAyNi4zLTM2LjhsLTIwLjUtMTIyLjcgMTUuNyAwIDMwIDEzNC45YzMuOCAxNy4zIDIwLjkgMjguMSAzOC4yIDI0LjNzMjguMS0yMC45IDI0LjMtMzguMmwtNTcuMy0yNTggMTE2LjMgNTMuOGMuNSAuMyAxLjEgLjUgMS42IC43IDguNiAzLjYgMTggMy4xIDI1LjktLjcgMy40LTEuNiA2LjYtMy45IDkuMy02LjcgMy4xLTMuMiA1LjUtNyA3LjEtMTEuNCAuMS0uMyAuMi0uNyAuMy0xbDIuNS03LjVjNS43LTE3LjEgMTguMy0zMC45IDM0LjctMzguMmw4LTMuNWMxLS40IDEuOS0uOCAyLjktMS4ybC0xNi45IDYzLjVjLTUuNiAyMS4xLS4xIDQzLjYgMTQuNyA1OS43bDcwLjcgNzcuMSAyMiA4OC4xYzQuMyAxNy4xIDIxLjcgMjcuNiAzOC44IDIzLjNzMjcuNi0yMS43IDIzLjMtMzguOGwtMjMtOTIuMWMtMS45LTcuOC01LjgtMTQuOS0xMS4yLTIwLjhsLTQ5LjUtNTQgMTkuMy02NS41IDkuNiAyM2M0LjQgMTAuNiAxMi41IDE5LjMgMjIuOCAyNC41bDI2LjcgMTMuM2MxNS44IDcuOSAzNSAxLjUgNDIuOS0xNC4zczEuNS0zNS0xNC4zLTQyLjlsLTIxLjQtMTAuNy0xNS4zLTM2LjhjLTE3LjEtNDEuMS01Ny4zLTY3LjktMTAxLjktNjcuOS0yMi44IDAtNDUuMyA0LjgtNjYuMSAxNGwtOCAzLjVjLTI0LjQgMTAuOS00NC42IDI5LTU4LjEgNTEuNkwxNTcuMyAxMzYuOUMxNDQuNyAxMzEgMTMwLjkgMTI4IDExNyAxMjhsLTUzIDB6TTQ2NCA5NmE0OCA0OCAwIDEgMCAwLTk2IDQ4IDQ4IDAgMSAwIDAgOTZ6TTM0OS43IDMzNS42bC0yNSA2Mi40LTU5LjQgNTkuNGMtMTIuNSAxMi41LTEyLjUgMzIuOCAwIDQ1LjNzMzIuOCAxMi41IDQ1LjMgMEwzNzIuMyA0NDFjNC42LTQuNiA4LjItMTAuMSAxMC42LTE2LjFsMTQuNS0zNi4yLTQwLjctNDQuNGMtMi41LTIuNy00LjgtNS42LTctOC42eiJdfSxwRWU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiYmFja3dhcmQiLGljb246WzU3Niw1MTIsWzkxOTRdLCJmMDRhIiwiTTIwNC4zIDQzLjFDMjE1LjkgMzIgMjMzIDI4LjkgMjQ3LjcgMzUuMlMyNzIgNTYgMjcyIDcybDAgMTM2LjMgMTcyLjMtMTY1LjFDNDU1LjkgMzIgNDczIDI4LjkgNDg3LjcgMzUuMlM1MTIgNTYgNTEyIDcybDAgMzY4YzAgMTYtOS42IDMwLjUtMjQuMyAzNi44cy0zMS44IDMuMi00My40LTcuOUwyNzIgMzAzLjcgMjcyIDQ0MGMwIDE2LTkuNiAzMC41LTI0LjMgMzYuOHMtMzEuOCAzLjItNDMuNC03LjlsLTE5Mi0xODRDNC41IDI3Ny4zIDAgMjY2LjkgMCAyNTZzNC41LTIxLjMgMTIuMy0yOC45bDE5Mi0xODR6Il19LHRPPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImNhci1idXJzdCIsaWNvbjpbNjQwLDUxMixbImNhci1jcmFzaCJdLCJmNWUxIiwiTTIzMiAxNi4xbDAtNDhjMC0xMy4zLTEwLjctMjQtMjQtMjRzLTI0IDEwLjctMjQgMjRsMCA0OGMwIDEzLjMgMTAuNyAyNCAyNCAyNHMyNC0xMC43IDI0LTI0ek0zMiAxNjguMWw0OCAwYzEzLjMgMCAyNC0xMC43IDI0LTI0cy0xMC43LTI0LTI0LTI0bC00OCAwYy0xMy4zIDAtMjQgMTAuNy0yNCAyNHMxMC43IDI0IDI0IDI0ek0yODEuNSA3MC42YzkuNCA5LjQgMjQuNiA5LjQgMzMuOSAwbDMzLjktMzMuOWM5LjQtOS40IDkuNC0yNC42IDAtMzMuOXMtMjQuNi05LjQtMzMuOSAwTDI4MS41IDM2LjZjLTkuNCA5LjQtOS40IDI0LjYgMCAzMy45em0tMTgxIDIxNWwzMy45LTMzLjljOS40LTkuNCA5LjQtMjQuNiAwLTMzLjlzLTI0LjYtOS40LTMzLjkgMEw2Ni42IDI1MS42Yy05LjQgOS40LTkuNCAyNC42IDAgMzMuOXMyNC42IDkuNCAzMy45IDB6TTY2LjYgMi43Yy05LjQgOS40LTkuNCAyNC42IDAgMzMuOWwzMy45IDMzLjljOS40IDkuNCAyNC42IDkuNCAzMy45IDBzOS40LTI0LjYgMC0zMy45TDEwMC41IDIuN0M5MS4xLTYuNyA3Ni02LjcgNjYuNiAyLjd6TTM1Mi45IDE3NS40TDUwNSAyMTYuMmM2LjQgMS43IDExLjEgNy4zIDExLjggMTMuOWw3LjIgNzQtMjMxLjUtNjIgNDMuMi02MC41YzMuOS01LjQgMTAuNy03LjkgMTcuMi02LjJ6TTIyMy42IDIyOC41bC0yLjEgMi45Yy0yMS43IDUuNS0zOS45IDIyLjMtNDYuMSA0NS41LTQuMSAxNS41LTEyLjQgNDYuNC0yNC44IDkyLjdsLTguMyAzMC45Yy00LjYgMTcuMSA1LjYgMzQuNiAyMi42IDM5LjJsMTUuNSA0LjFjMTcuMSA0LjYgMzQuNi01LjYgMzkuMi0yMi42bDguMy0zMC45IDI3OC4yIDc0LjUtOC4zIDMwLjljLTQuNiAxNy4xIDUuNiAzNC42IDIyLjYgMzkuMmwxNS41IDQuMWMxNy4xIDQuNiAzNC42LTUuNiAzOS4yLTIyLjYgNC4xLTE1LjUgMTIuNC00Ni40IDI0LjgtOTIuN2w4LjMtMzAuOWM2LjItMjMuMi0xLjEtNDYuOC0xNy4yLTYyLjVsLS4zLTMuNi0xMC0xMDNjLTMuMi0zMy4yLTI2LjctNjAuOS01OC45LTY5LjVMMzY5LjUgMTEzLjZjLTMyLjItOC42LTY2LjQgMy42LTg1LjggMzAuOGwtNjAuMiA4NC4yem00OC43IDU3LjhhMzIgMzIgMCAxIDEgLTE2LjYgNjEuOCAzMiAzMiAwIDEgMSAxNi42LTYxLjh6bTIwOC4xIDg4LjlhMzIgMzIgMCAxIDEgNjEuOCAxNi42IDMyIDMyIDAgMSAxIC02MS44LTE2LjZ6Il19LHVFZT10TyxhTz17cHJlZml4OiJmYXMiLGljb25OYW1lOiJsaW5rIixpY29uOls1NzYsNTEyLFsxMjgyNzksImNoYWluIl0sImYwYzEiLCJNNDE5LjUgOTZjLTE2LjYgMC0zMi43IDQuNS00Ni44IDEyLjctMTUuOC0xNi0zNC4yLTI5LjQtNTQuNS0zOS41IDI4LjItMjQgNjQuMS0zNy4yIDEwMS4zLTM3LjIgODYuNCAwIDE1Ni41IDcwIDE1Ni41IDE1Ni41IDAgNDEuNS0xNi41IDgxLjMtNDUuOCAxMTAuNmwtNzEuMSA3MS4xYy0yOS4zIDI5LjMtNjkuMSA0NS44LTExMC42IDQ1LjgtODYuNCAwLTE1Ni41LTcwLTE1Ni41LTE1Ni41IDAtMS41IDAtMyAuMS00LjUgLjUtMTcuNyAxNS4yLTMxLjYgMzIuOS0zMS4xczMxLjYgMTUuMiAzMS4xIDMyLjljMCAuOSAwIDEuOCAwIDIuNiAwIDUxLjEgNDEuNCA5Mi41IDkyLjUgOTIuNSAyNC41IDAgNDgtOS43IDY1LjQtMjcuMWw3MS4xLTcxLjFjMTcuMy0xNy4zIDI3LjEtNDAuOSAyNy4xLTY1LjQgMC01MS4xLTQxLjQtOTIuNS05Mi41LTkyLjV6TTI3NS4yIDE3My4zYy0xLjktLjgtMy44LTEuOS01LjUtMy4xLTEyLjYtNi41LTI3LTEwLjItNDIuMS0xMC4yLTI0LjUgMC00OCA5LjctNjUuNCAyNy4xTDkxLjEgMjU4LjJjLTE3LjMgMTcuMy0yNy4xIDQwLjktMjcuMSA2NS40IDAgNTEuMSA0MS40IDkyLjUgOTIuNSA5Mi41IDE2LjUgMCAzMi42LTQuNCA0Ni43LTEyLjYgMTUuOCAxNiAzNC4yIDI5LjQgNTQuNiAzOS41LTI4LjIgMjMuOS02NCAzNy4yLTEwMS4zIDM3LjItODYuNCAwLTE1Ni41LTcwLTE1Ni41LTE1Ni41IDAtNDEuNSAxNi41LTgxLjMgNDUuOC0xMTAuNmw3MS4xLTcxLjFjMjkuMy0yOS4zIDY5LjEtNDUuOCAxMTAuNi00NS44IDg2LjYgMCAxNTYuNSA3MC42IDE1Ni41IDE1Ni45IDAgMS4zIDAgMi42IDAgMy45LS40IDE3LjctMTUuMSAzMS42LTMyLjggMzEuMnMtMzEuNi0xNS4xLTMxLjItMzIuOGMwLS44IDAtMS41IDAtMi4zIDAtMzMuNy0xOC02My4zLTQ0LjgtNzkuNnoiXX0sZkVlPWFPLGlPPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImJhY2t3YXJkLXN0ZXAiLGljb246WzM4NCw1MTIsWyJzdGVwLWJhY2t3YXJkIl0sImYwNDgiLCJNMzYzIDM2LjhjLTEyLjktNy0yOC43LTYuMy00MSAxLjhMNjQgMjA4LjEgNjQgNjRjMC0xNy43LTE0LjMtMzItMzItMzJTMCA0Ni4zIDAgNjRMMCA0NDhjMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMmwwLTE0NC4xIDI1OCAxNjkuNmMxMi4zIDguMSAyOCA4LjggNDEgMS44czIxLTIwLjUgMjEtMzUuMmwwLTM2OGMwLTE0LjctOC4xLTI4LjItMjEtMzUuMnoiXX0sbUVlPWlPLGdFZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJ4IixpY29uOlszODQsNTEyLFsxMjBdLCI1OCIsIk0zNzYuNiA4NC41YzExLjMtMTMuNiA5LjUtMzMuOC00LjEtNDUuMXMtMzMuOC05LjUtNDUuMSA0LjFMMTkyIDIwNiA1Ni42IDQzLjVDNDUuMyAyOS45IDI1LjEgMjguMSAxMS41IDM5LjRTLTMuOSA3MC45IDcuNCA4NC41TDE1MC4zIDI1NiA3LjQgNDI3LjVjLTExLjMgMTMuNi05LjUgMzMuOCA0LjEgNDUuMXMzMy44IDkuNSA0NS4xLTQuMUwxOTIgMzA2IDMyNy40IDQ2OC41YzExLjMgMTMuNiAzMS41IDE1LjQgNDUuMSA0LjFzMTUuNC0zMS41IDQuMS00NS4xTDIzMy43IDI1NiAzNzYuNiA4NC41eiJdfSxyTz17cHJlZml4OiJmYXMiLGljb25OYW1lOiJjaXJjbGUtdXNlciIsaWNvbjpbNTEyLDUxMixbNjIxNDIsInVzZXItY2lyY2xlIl0sImYyYmQiLCJNMzk5IDM4NC4yQzM3Ni45IDM0NS44IDMzNS40IDMyMCAyODggMzIwbC02NCAwYy00Ny40IDAtODguOSAyNS44LTExMSA2NC4yIDM1LjIgMzkuMiA4Ni4yIDYzLjggMTQzIDYzLjhzMTA3LjgtMjQuNyAxNDMtNjMuOHpNMCAyNTZhMjU2IDI1NiAwIDEgMSA1MTIgMCAyNTYgMjU2IDAgMSAxIC01MTIgMHptMjU2IDE2YTcyIDcyIDAgMSAwIDAtMTQ0IDcyIDcyIDAgMSAwIDAgMTQ0eiJdfSxiRWU9ck8sc089e3ByZWZpeDoiZmFzIixpY29uTmFtZToicmVjdGFuZ2xlLWxpc3QiLGljb246WzUxMiw1MTIsWyJsaXN0LWFsdCJdLCJmMDIyIiwiTTY0IDY0QzI4LjcgNjQgMCA5Mi43IDAgMTI4TDAgMzg0YzAgMzUuMyAyOC43IDY0IDY0IDY0bDM4NCAwYzM1LjMgMCA2NC0yOC43IDY0LTY0bDAtMjU2YzAtMzUuMy0yOC43LTY0LTY0LTY0TDY0IDY0em05NiAyNTZhMzIgMzIgMCAxIDEgLTY0IDAgMzIgMzIgMCAxIDEgNjQgMHptLTMyLTk2YTMyIDMyIDAgMSAxIDAtNjQgMzIgMzIgMCAxIDEgMCA2NHptMTIwLTU2bDE0NCAwYzEzLjMgMCAyNCAxMC43IDI0IDI0cy0xMC43IDI0LTI0IDI0bC0xNDQgMGMtMTMuMyAwLTI0LTEwLjctMjQtMjRzMTAuNy0yNCAyNC0yNHptMCAxMjhsMTQ0IDBjMTMuMyAwIDI0IDEwLjcgMjQgMjRzLTEwLjcgMjQtMjQgMjRsLTE0NCAwYy0xMy4zIDAtMjQtMTAuNy0yNC0yNHMxMC43LTI0IDI0LTI0eiJdfSx2RWU9c08sbk89e3ByZWZpeDoiZmFzIixpY29uTmFtZToiaGFuZCIsaWNvbjpbNTEyLDUxMixbMTI5MzA2LDk5OTUsImhhbmQtcGFwZXIiXSwiZjI1NiIsIk0yODggMzJjMC0xNy43LTE0LjMtMzItMzItMzJzLTMyIDE0LjMtMzIgMzJsMCAyMDhjMCA4LjgtNy4yIDE2LTE2IDE2cy0xNi03LjItMTYtMTZsMC0xNzZjMC0xNy43LTE0LjMtMzItMzItMzJzLTMyIDE0LjMtMzIgMzJsMCAyNzJjMCAxLjUgMCAzLjEgLjEgNC42TDY3LjYgMjgzYy0xNi0xNS4yLTQxLjMtMTQuNi01Ni42IDEuNFMtMy42IDMyNS43IDEyLjQgMzQxTDEyNC44IDQ0OGM0My4xIDQxLjEgMTAwLjQgNjQgMTYwIDY0bDE5LjIgMGM5Ny4yIDAgMTc2LTc4LjggMTc2LTE3NmwwLTIwOGMwLTE3LjctMTQuMy0zMi0zMi0zMnMtMzIgMTQuMy0zMiAzMmwwIDExMmMwIDguOC03LjIgMTYtMTYgMTZzLTE2LTcuMi0xNi0xNmwwLTE3NmMwLTE3LjctMTQuMy0zMi0zMi0zMnMtMzIgMTQuMy0zMiAzMmwwIDE3NmMwIDguOC03LjIgMTYtMTYgMTZzLTE2LTcuMi0xNi0xNmwwLTIwOHoiXX0seUVlPW5PLHhFZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJjYW5jZXIiLGljb246WzUxMiw1MTIsW10sImU4NDciLCJNNDA4IDE1MmM1Ny40IDAgMTA0IDQ2LjYgMTA0IDEwNCAwIDE0MS40LTExNC42IDI1Ni0yNTYgMjU2LTU0LjMgMC0xMDQuOC0xNy0xNDYuMy00NS45LTE0LjUtMTAuMS0xOC0zMC4xLTcuOS00NC42czMwLjEtMTggNDQuNi03LjljMzEuMSAyMS43IDY4LjkgMzQuNCAxMDkuNyAzNC40IDY3LjkgMCAxMjcuNS0zNS4zIDE2MS43LTg4LjUtMy4yIC4zLTYuNCAuNS05LjcgLjUtNTcuNCAwLTEwNC00Ni42LTEwNC0xMDRzNDYuNi0xMDQgMTA0LTEwNHpNMjU2IDBjNTQuMyAwIDEwNC44IDE3IDE0Ni4zIDQ1LjkgMTQuNSAxMC4xIDE4IDMwLjEgNy45IDQ0LjZzLTMwLjEgMTgtNDQuNiA3LjljLTMxLjEtMjEuNy02OC45LTM0LjQtMTA5LjctMzQuNC02Ny45IDAtMTI3LjUgMzUuMi0xNjEuNyA4OC40IDMuMi0uMyA2LjQtLjQgOS43LS40IDU3LjQgMCAxMDQgNDYuNiAxMDQgMTA0UzE2MS40IDM2MCAxMDQgMzYwIDAgMzEzLjQgMCAyNTZDMCAyNTQuMSAwIDI1Mi4yIC4xIDI1MC40IDMuMSAxMTEuNiAxMTYuNSAwIDI1NiAwek0xMDQgMjE2YTQwIDQwIDAgMSAwIDAgODAgNDAgNDAgMCAxIDAgMC04MHptMzA0IDBhNDAgNDAgMCAxIDAgMCA4MCA0MCA0MCAwIDEgMCAwLTgweiJdfSxvTz17cHJlZml4OiJmYXMiLGljb25OYW1lOiJ2YW4tc2h1dHRsZSIsaWNvbjpbNTc2LDUxMixbMTI4NjU2LCJzaHV0dGxlLXZhbiJdLCJmNWI2IiwiTTY0IDY0QzI4LjcgNjQgMCA5Mi43IDAgMTI4TDAgMzM2YzAgMzUuMyAyOC43IDY0IDY0IDY0bC40IDBjNCA0NC45IDQxLjcgODAgODcuNiA4MHM4My42LTM1LjEgODcuNi04MGwxMDQuNyAwYzQgNDQuOSA0MS43IDgwIDg3LjYgODAgNDYuMSAwIDgzLjktMzUuNCA4Ny43LTgwLjUgMzEuNy0zLjggNTYuMy0zMC44IDU2LjMtNjMuNWwwLTEwMS4zYzAtMTMuOC00LjUtMjcuMy0xMi44LTM4LjRsLTgwLTEwNi43QzQ3MS4xIDczLjUgNDUyLjEgNjQgNDMyIDY0TDY0IDY0ek01MDQgMjI0bC0xMjAgMCAwLTk2IDQ4IDAgNzIgOTZ6TTY0IDIyNGwwLTk2IDk2IDAgMCA5Ni05NiAwem0xNjAgMGwwLTk2IDk2IDAgMCA5Ni05NiAwek0zOTIgMzkyYTQwIDQwIDAgMSAxIDgwIDAgNDAgNDAgMCAxIDEgLTgwIDB6TTE1MiAzNTJhNDAgNDAgMCAxIDEgMCA4MCA0MCA0MCAwIDEgMSAwLTgweiJdfSx3RWU9b08sTUVlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InN0YWlycyIsaWNvbjpbNTc2LDUxMixbXSwiZTI4OSIsIk0zODQgNjRjMC0xNy43IDE0LjMtMzIgMzItMzJsMTI4IDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJsLTk2IDAgMCA5NmMwIDE3LjctMTQuMyAzMi0zMiAzMmwtOTYgMCAwIDk2YzAgMTcuNy0xNC4zIDMyLTMyIDMybC05NiAwIDAgOTZjMCAxNy43LTE0LjMgMzItMzIgMzJMMzIgNDgwYy0xNy43IDAtMzItMTQuMy0zMi0zMnMxNC4zLTMyIDMyLTMybDk2IDAgMC05NmMwLTE3LjcgMTQuMy0zMiAzMi0zMmw5NiAwIDAtOTZjMC0xNy43IDE0LjMtMzIgMzItMzJsOTYgMCAwLTk2eiJdfSx6RWU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiaG9yc2UtaGVhZCIsaWNvbjpbNTEyLDUxMixbXSwiZjdhYiIsIk0wIDQ2NEwwIDMxNi45QzAgMjA4LjUgNjguMyAxMTEuOCAxNzAuNSA3NS42TDM0MC4yIDE1LjVjMjEuNC03LjYgNDMuOCA4LjMgNDMuOCAzMC45IDAgMTEtNS41IDIxLjItMTQuNiAyNy4zTDMzNiA5NmM0OC4xIDAgOTEuMiAyOS44IDEwOC4xIDc0LjlsNDguNiAxMjkuNWMxMS44IDMxLjQgNC4xIDY2LjgtMTkuNiA5MC41LTE2IDE2LTM3LjggMjUuMS02MC41IDI1LjFsLTMuNCAwYy0yNi4xIDAtNTAuOS0xMS42LTY3LjYtMzEuN2wtMzIuMy0zOC43Yy0xMS43IDQuMS0yNC4yIDYuNC0zNy4zIDYuNGwtLjEgMGMtNi4zIDAtMTIuNS0uNS0xOC42LTEuNS0zLjYtLjYtNy4yLTEuNC0xMC43LTIuM2wwIDBjLTI4LjktNy44LTUzLjEtMjYuOC02Ny44LTUyLjItNC40LTcuNy0xNC4yLTEwLjMtMjEuOS01LjhzLTEwLjMgMTQuMi01LjggMjEuOWMyNCA0MS41IDY4LjMgNzAgMTE5LjMgNzEuOWw0Ny4yIDcwLjhjNCA2LjEgNi4yIDEzLjIgNi4yIDIwLjQgMCAyMC4zLTE2LjUgMzYuOC0zNi44IDM2LjhMNDggNTEyYy0yNi41IDAtNDgtMjEuNS00OC00OHpNMzI4IDIyNGEyNCAyNCAwIDEgMCAwLTQ4IDI0IDI0IDAgMSAwIDAgNDh6Il19LGtFZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJ2YXVsdCIsaWNvbjpbNTEyLDUxMixbXSwiZTJjNSIsIk02NCAzMkMyOC43IDMyIDAgNjAuNyAwIDk2TDAgNDE2YzAgMzUuMyAyOC43IDY0IDY0IDY0IDAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJsMjU2IDBjMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMmMzNS4zIDAgNjQtMjguNyA2NC02NGwwLTMyMGMwLTM1LjMtMjguNy02NC02NC02NEw2NCAzMnpNMjU2IDI1NmE2NCA2NCAwIDEgMCAtMTI4IDAgNjQgNjQgMCAxIDAgMTI4IDB6TTY0IDI1NmExMjggMTI4IDAgMSAxIDI1NiAwIDEyOCAxMjggMCAxIDEgLTI1NiAwem0zODQtNDhjMCAxNy44LTkuNyAzMy4zLTI0IDQxLjZsMCA3OC40YzAgMTMuMy0xMC43IDI0LTI0IDI0cy0yNC0xMC43LTI0LTI0bDAtNzguNGMtMTQuMy04LjMtMjQtMjMuOC0yNC00MS42IDAtMjYuNSAyMS41LTQ4IDQ4LTQ4czQ4IDIxLjUgNDggNDh6Il19LFNFZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJjbG9zZWQtY2FwdGlvbmluZy1zbGFzaCIsaWNvbjpbNTc2LDUxMixbXSwiZTEzNSIsIk03LTI0LjljOS40LTkuNCAyNC42LTkuNCAzMy45IDBMMTI5LjggNjQgNDgwIDY0YzM1LjMgMCA2NCAyOC43IDY0IDY0bDAgMjU2YzAgMjUuNS0xNC45IDQ3LjQtMzYuNCA1Ny44TDU2OSA1MDMuMWM5LjQgOS40IDkuNCAyNC42IDAgMzMuOXMtMjQuNiA5LjQtMzMuOSAwTDcgOS4xQy0yLjMtLjMtMi4zLTE1LjUgNy0yNC45em0zNDUgMzExbDAtNzAuMmMwLTQuNCAzLjYtOCA4LThsMzIgMGM0LjQgMCA4IDMuNiA4IDggMCAxMy4zIDEwLjcgMjQgMjQgMjRzMjQtMTAuNyAyNC0yNGMwLTMwLjktMjUuMS01Ni01Ni01NmwtMzIgMGMtMzAuOSAwLTU2IDI1LjEtNTYgNTZsMCAyMi4yIDQ4IDQ4em02MS41IDYxLjVjMjAuMi04LjQgMzQuNS0yOC40IDM0LjUtNTEuNyAwLTEzLjMtMTAuNy0yNC0yNC0yNHMtMjQgMTAuNy0yNCAyNGMwIDQuNC0zLjYgOC04IDhsLTIyLjIgMCA0My43IDQzLjd6TTEzMC4zIDIwMC4xYy0xLjUgNS0yLjMgMTAuNC0yLjMgMTUuOWwwIDgwYzAgMzAuOSAyNS4xIDU2IDU2IDU2bDMyIDBjMTguMSAwIDM0LjEtOC41IDQ0LjQtMjEuOEwzNzguMiA0NDggOTYgNDQ4Yy0zNS4zIDAtNjQtMjguNy02NC02NGwwLTI1NmMwLTcuOCAxLjQtMTUuMyA0LTIyLjJsOTQuMyA5NC4zem05My44IDkzLjhjLS4xIC43LS4xIDEuNC0uMSAyLjEgMCA0LjQtMy42IDgtOCA4bC0zMiAwYy00LjQgMC04LTMuNi04LThsMC01MC4yIDQ4LjEgNDguMXoiXX0sQ0VlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImRydW0tc3RlZWxwYW4iLGljb246WzU3Niw1MTIsW10sImY1NmEiLCJNMjg4IDMyYzE1OS4xIDAgMjg4IDQ4IDI4OCAxMjhsMCAxOTJjMCA4MC0xMjguOSAxMjgtMjg4IDEyOFMwIDQzMiAwIDM1MkwwIDE2MEMwIDgwIDEyOC45IDMyIDI4OCAzMnpNNTI4IDE2MGMwLTkuOS04LTI5LjktNTUtNDkuOC0xOC42LTcuOS00MC45LTE0LjQtNjYtMTkuNGwtMjcuOCA0My42Yy03LjMgMTEuNS0xMS4yIDI0LjgtMTEuMiAzOC40IDAgMTcuNSA2LjQgMzQuNCAxOC4xIDQ3LjVsOS44IDExYzI5LjgtNS4yIDU1LjktMTIuNSA3Ny4yLTIxLjUgNDcuMS0xOS45IDU1LTM5LjkgNTUtNDkuOHpNMzQ5LjIgMjM3LjNjLTgtMjYuMi0zMi40LTQ1LjMtNjEuMi00NS4zcy01My4zIDE5LjEtNjEuMiA0NS4zYzE5LjQgMS43IDM5LjkgMi43IDYxLjIgMi43czQxLjgtLjkgNjEuMi0yLjd6TTE2OSA5MC44Yy0yNS4yIDUtNDcuNCAxMS42LTY2IDE5LjQtNDcuMSAxOS45LTU1IDM5LjktNTUgNDkuOHM4IDI5LjkgNTUgNDkuOGMyMS4zIDkgNDcuNCAxNi4zIDc3LjIgMjEuNWw5LjgtMTFjMTEuNi0xMy4xIDE4LjEtMzAgMTguMS00Ny41IDAtMTMuNi0zLjktMjYuOS0xMS4yLTM4LjRMMTY5IDkwLjh6bTU2LjMtOGMtLjkgNC4zLTEuNCA4LjctMS40IDEzLjIgMCAzNS4zIDI4LjcgNjQgNjQgNjRzNjQtMjguNyA2NC02NGMwLTQuNS0uNS05LTEuNC0xMy4yLTE5LjgtMS44LTQwLjgtMi44LTYyLjYtMi44cy00Mi44IDEtNjIuNiAyLjh6Il19LF9FZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJ0aHVtYnMtdXAiLGljb246WzUxMiw1MTIsWzEyODA3Nyw2MTU3NV0sImYxNjQiLCJNODAgMTYwYzE3LjcgMCAzMiAxNC4zIDMyIDMybDAgMjU2YzAgMTcuNy0xNC4zIDMyLTMyIDMybC00OCAwYy0xNy43IDAtMzItMTQuMy0zMi0zMkwwIDE5MmMwLTE3LjcgMTQuMy0zMiAzMi0zMmw0OCAwek0yNzAuNiAxNkMyOTcuOSAxNiAzMjAgMzguMSAzMjAgNjUuNGwwIDQuMmMwIDYuOC0xLjMgMTMuNi0zLjggMTkuOUwyODggMTYwIDQ0OCAxNjBjMjYuNSAwIDQ4IDIxLjUgNDggNDggMCAxOS43LTExLjkgMzYuNi0yOC45IDQ0IDE3IDcuNCAyOC45IDI0LjMgMjguOSA0NCAwIDIzLjQtMTYuOCA0Mi45LTM5IDQ3LjEgNC40IDcuMyA3IDE1LjggNyAyNC45IDAgMjIuMi0xNSA0MC44LTM1LjQgNDYuMyAyLjIgNS41IDMuNCAxMS41IDMuNCAxNy43IDAgMjYuNS0yMS41IDQ4LTQ4IDQ4bC04Ny45IDBjLTM2LjMgMC03MS42LTEyLjQtOTkuOS0zNS4xTDE4NCA0MzUuMmMtMTUuMi0xMi4xLTI0LTMwLjUtMjQtNTBsMC0xODYuNmMwLTE0LjkgMy41LTI5LjYgMTAuMS00Mi45TDIyNi4zIDQzLjNDMjM0LjcgMjYuNiAyNTEuOCAxNiAyNzAuNiAxNnoiXX0sVEVlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InN0YW1wIixpY29uOls1MTIsNTEyLFtdLCJmNWJmIiwiTTMxMiAyMDEuOGMwLTE3LjQgOS4yLTMzLjIgMTkuOS00NyAxMi42LTE2LjIgMjAuMS0zNi42IDIwLjEtNTguOCAwLTUzLTQzLTk2LTk2LTk2cy05NiA0My05NiA5NmMwIDIyLjEgNy41IDQyLjUgMjAuMSA1OC44IDEwLjcgMTMuOCAxOS45IDI5LjYgMTkuOSA0NyAwIDI5LjktMjQuMyA1NC4yLTU0LjIgNTQuMkwxMTIgMjU2Yy02MS45IDAtMTEyIDUwLjEtMTEyIDExMiAwIDI2LjUgMjEuNSA0OCA0OCA0OGw0MTYgMGMyNi41IDAgNDgtMjEuNSA0OC00OCAwLTYxLjktNTAuMS0xMTItMTEyLTExMmwtMzMuOCAwYy0yOS45IDAtNTQuMi0yNC4zLTU0LjItNTQuMnpNNTYgNDY0Yy0xMy4zIDAtMjQgMTAuNy0yNCAyNHMxMC43IDI0IDI0IDI0bDQwMCAwYzEzLjMgMCAyNC0xMC43IDI0LTI0cy0xMC43LTI0LTI0LTI0TDU2IDQ2NHoiXX0sTEVlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6Im1lbm9yYWgiLGljb246WzY0MCw1MTIsW10sImY2NzYiLCJNMjAuOCA3LjRDMjIuOCAyLjkgMjcuMSAwIDMyIDBzOS4yIDIuOSAxMS4yIDcuNEw2MS4zIDQ5LjdjMS44IDQuMSAyLjcgOC42IDIuNyAxMy4xTDY0IDY0YzAgMTcuNy0xNC4zIDMyLTMyIDMyUzAgODEuNyAwIDY0bDAtMS4yYzAtNC41IC45LTguOSAyLjctMTMuMUwyMC44IDcuNHptOTYgMEMxMTguOCAyLjkgMTIzLjEgMCAxMjggMHM5LjIgMi45IDExLjIgNy40bDE4LjIgNDIuNGMxLjggNC4xIDIuNyA4LjYgMi43IDEzLjFsMCAxLjJjMCAxNy43LTE0LjMgMzItMzIgMzJTOTYgODEuNyA5NiA2NGwwLTEuMmMwLTQuNSAuOS04LjkgMi43LTEzLjFMMTE2LjggNy40em03Ny44IDQyLjRMMjEyLjggNy40QzIxNC44IDIuOSAyMTkuMSAwIDIyNCAwczkuMiAyLjkgMTEuMiA3LjRsMTguMiA0Mi40YzEuOCA0LjEgMi43IDguNiAyLjcgMTMuMWwwIDEuMmMwIDE3LjctMTQuMyAzMi0zMiAzMnMtMzItMTQuMy0zMi0zMmwwLTEuMmMwLTQuNSAuOS04LjkgMi43LTEzLjF6TTMwOC44IDcuNEMzMTAuOCAyLjkgMzE1LjEgMCAzMjAgMHM5LjIgMi45IDExLjIgNy40bDE4LjIgNDIuNGMxLjggNC4xIDIuNyA4LjYgMi43IDEzLjFsMCAxLjJjMCAxNy43LTE0LjMgMzItMzIgMzJzLTMyLTE0LjMtMzItMzJsMC0xLjJjMC00LjUgLjktOC45IDIuNy0xMy4xTDMwOC44IDcuNHptNzcuOCA0Mi40TDQwNC44IDcuNEM0MDYuOCAyLjkgNDExLjEgMCA0MTYgMHM5LjIgMi45IDExLjIgNy40bDE4LjIgNDIuNGMxLjggNC4xIDIuNyA4LjYgMi43IDEzLjFsMCAxLjJjMCAxNy43LTE0LjMgMzItMzIgMzJzLTMyLTE0LjMtMzItMzJsMC0xLjJjMC00LjUgLjktOC45IDIuNy0xMy4xek01MDAuOCA3LjRDNTAyLjggMi45IDUwNy4xIDAgNTEyIDBzOS4yIDIuOSAxMS4yIDcuNGwxOC4yIDQyLjRjMS44IDQuMSAyLjcgOC42IDIuNyAxMy4xbDAgMS4yYzAgMTcuNy0xNC4zIDMyLTMyIDMycy0zMi0xNC4zLTMyLTMybDAtMS4yYzAtNC41IC45LTguOSAyLjctMTMuMUw1MDAuOCA3LjR6bTc3LjggNDIuNEw1OTYuOCA3LjRDNTk4LjggMi45IDYwMy4xIDAgNjA4IDBzOS4yIDIuOSAxMS4yIDcuNGwxOC4yIDQyLjRjMS44IDQuMSAyLjcgOC42IDIuNyAxMy4xbDAgMS4yYzAgMTcuNy0xNC4zIDMyLTMyIDMycy0zMi0xNC4zLTMyLTMybDAtMS4yYzAtNC41IC45LTguOSAyLjctMTMuMXpNMzIgMTI4YzE3LjcgMCAzMiAxNC4zIDMyIDMybDAgMTI4YzAgMTcuNyAxNC4zIDMyIDMyIDMybDE5MiAwIDAtMTYwYzAtMTcuNyAxNC4zLTMyIDMyLTMyczMyIDE0LjMgMzIgMzJsMCAxNjAgMTkyIDBjMTcuNyAwIDMyLTE0LjMgMzItMzJsMC0xMjhjMC0xNy43IDE0LjMtMzIgMzItMzJzMzIgMTQuMyAzMiAzMmwwIDEyOGMwIDUzLTQzIDk2LTk2IDk2bC0xOTIgMCAwIDY0IDEyOCAwYzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMybC0zMjAgMGMtMTcuNyAwLTMyLTE0LjMtMzItMzJzMTQuMy0zMiAzMi0zMmwxMjggMCAwLTY0LTE5MiAwYy01MyAwLTk2LTQzLTk2LTk2TDAgMTYwYzAtMTcuNyAxNC4zLTMyIDMyLTMyem05NiAwYzE3LjcgMCAzMiAxNC4zIDMyIDMybDAgMTI4LTY0IDAgMC0xMjhjMC0xNy43IDE0LjMtMzIgMzItMzJ6bTk2IDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJsMCAxMjgtNjQgMCAwLTEyOGMwLTE3LjcgMTQuMy0zMiAzMi0zMnptMTkyIDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJsMCAxMjgtNjQgMCAwLTEyOGMwLTE3LjcgMTQuMy0zMiAzMi0zMnptOTYgMGMxNy43IDAgMzIgMTQuMyAzMiAzMmwwIDEyOC02NCAwIDAtMTI4YzAtMTcuNyAxNC4zLTMyIDMyLTMyeiJdfSwkRWU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiY2hpbGRyZW4iLGljb246WzY0MCw1MTIsW10sImU0ZTEiLCJNMTYwLjUgMGE2NCA2NCAwIDEgMSAwIDEyOCA2NCA2NCAwIDEgMSAwLTEyOHptLTcyIDQ4MGwwLTgwLTE3LjggMGMtMTAuOSAwLTE4LjYtMTAuNy0xNS4yLTIxLjFMODYuNyAyODUuNSA1OCAzMjMuM2MtMTAuNyAxNC4xLTMwLjggMTYuOC00NC44IDYuMlMtMy43IDI5OC43IDcgMjg0LjdMNjUuOSAyMDdjMjIuNC0yOS42IDU3LjUtNDcgOTQuNi00N3M3Mi4yIDE3LjQgOTQuNiA0N0wzMTQgMjg0LjdjMTAuNyAxNC4xIDcuOSAzNC4yLTYuMiA0NC44cy0zNC4yIDcuOS00NC44LTYuMmwtMjguNy0zNy44IDMxLjEgOTMuNGMzLjUgMTAuNC00LjMgMjEuMS0xNS4yIDIxLjFsLTE3LjggMCAwIDgwYzAgMTcuNy0xNC4zIDMyLTMyIDMycy0zMi0xNC4zLTMyLTMybDAtODAtMTYgMCAwIDgwYzAgMTcuNy0xNC4zIDMyLTMyIDMycy0zMi0xNC4zLTMyLTMyek00ODAuNSAwYTY0IDY0IDAgMSAxIDAgMTI4IDY0IDY0IDAgMSAxIDAtMTI4em0tOCAzODRsMCA5NmMwIDE3LjctMTQuMyAzMi0zMiAzMnMtMzItMTQuMy0zMi0zMmwwLTE3OS41LTEyLjkgMjAuNWMtOS40IDE1LTI5LjIgMTkuNC00NC4xIDEwcy0xOS40LTI5LjItMTAtNDQuMWw1MS43LTgyLjFjMTcuNi0yNy45IDQ4LjMtNDQuOSA4MS4yLTQ0LjlsMTIuMyAwYzMzIDAgNjMuNyAxNi45IDgxLjIgNDQuOUw2MTkuNiAyODdjOS40IDE1IDQuOSAzNC43LTEwIDQ0LjFzLTM0LjcgNC45LTQ0LjEtMTBsLTEyLjktMjAuNSAwIDE3OS41YzAgMTcuNy0xNC4zIDMyLTMyIDMycy0zMi0xNC4zLTMyLTMybDAtOTYtMTYgMHoiXX0sbE89e3ByZWZpeDoiZmFzIixpY29uTmFtZToiY2hhcnQtbGluZSIsaWNvbjpbNTEyLDUxMixbImxpbmUtY2hhcnQiXSwiZjIwMSIsIk02NCA2NGMwLTE3LjctMTQuMy0zMi0zMi0zMlMwIDQ2LjMgMCA2NEwwIDQwMGMwIDQ0LjIgMzUuOCA4MCA4MCA4MGw0MDAgMGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMkw4MCA0MTZjLTguOCAwLTE2LTcuMi0xNi0xNkw2NCA2NHptNDA2LjYgODYuNmMxMi41LTEyLjUgMTIuNS0zMi44IDAtNDUuM3MtMzIuOC0xMi41LTQ1LjMgMEwzMjAgMjEwLjcgMjYyLjYgMTUzLjRjLTEyLjUtMTIuNS0zMi44LTEyLjUtNDUuMyAwbC05NiA5NmMtMTIuNSAxMi41LTEyLjUgMzIuOCAwIDQ1LjNzMzIuOCAxMi41IDQ1LjMgMGw3My40LTczLjQgNTcuNCA1Ny40YzEyLjUgMTIuNSAzMi44IDEyLjUgNDUuMyAwbDEyOC0xMjh6Il19LEFFZT1sTyxjTz17cHJlZml4OiJmYXMiLGljb25OYW1lOiJzcXVhcmUtZW52ZWxvcGUiLGljb246WzQ0OCw1MTIsWyJlbnZlbG9wZS1zcXVhcmUiXSwiZjE5OSIsIk02NCAzMkMyOC43IDMyIDAgNjAuNyAwIDk2TDAgNDE2YzAgMzUuMyAyOC43IDY0IDY0IDY0bDMyMCAwYzM1LjMgMCA2NC0yOC43IDY0LTY0bDAtMzIwYzAtMzUuMy0yOC43LTY0LTY0LTY0TDY0IDMyek0yMDkuMSAyNjcuOUwxMDguNCAyMDcuNGMtNy43LTQuNi0xMi40LTEyLjktMTIuNC0yMS45IDAtMTQuMSAxMS40LTI1LjUgMjUuNS0yNS41bDIwNC45IDBjMTQuMSAwIDI1LjUgMTEuNCAyNS41IDI1LjUgMCA5LTQuNyAxNy4zLTEyLjQgMjEuOUwyMzguOSAyNjcuOWMtNC41IDIuNy05LjYgNC4xLTE0LjkgNC4xcy0xMC40LTEuNC0xNC45LTQuMXpNMzUyIDIzNy4zbDAgODIuN2MwIDE3LjctMTQuMyAzMi0zMiAzMmwtMTkyIDBjLTE3LjcgMC0zMi0xNC4zLTMyLTMybDAtODIuNyA5Ni43IDU4QzIwMi4xIDMwMSAyMTMgMzA0IDIyNCAzMDRzMjEuOS0zIDMxLjMtOC43bDk2LjctNTh6Il19LERFZT1jTyxkTz17cHJlZml4OiJmYXMiLGljb25OYW1lOiJiYW4tc21va2luZyIsaWNvbjpbNTEyLDUxMixbMTI4Njg1LCJzbW9raW5nLWJhbiJdLCJmNTRkIiwiTTk5LjUgMTQ0LjhsNzkuMiA3OS4yLTUwLjcgMGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJsMCAzMmMwIDE3LjcgMTQuMyAzMiAzMiAzMmwxNDYuNyAwIDkyLjUgOTIuNWMtMzEuNCAyMi40LTY5LjggMzUuNS0xMTEuMiAzNS41LTEwNiAwLTE5Mi04Ni0xOTItMTkyIDAtNDEuNSAxMy4xLTc5LjkgMzUuNS0xMTEuMnpNMzMzLjMgMjg4bC0zMi0zMiA4Mi43IDAgMCAzMi01MC43IDB6bTMyIDMybDE4LjcgMGMxNy43IDAgMzItMTQuMyAzMi0zMmwwLTMyYzAtMTcuNy0xNC4zLTMyLTMyLTMyTDI2OS4zIDIyNCAxNDQuOCA5OS41YzMxLjQtMjIuNCA2OS44LTM1LjUgMTExLjItMzUuNSAxMDYgMCAxOTIgODYgMTkyIDE5MiAwIDQxLjUtMTMuMSA3OS45LTM1LjUgMTExLjJMMzY1LjMgMzIwek0yNTYgNTEyYTI1NiAyNTYgMCAxIDAgMC01MTIgMjU2IDI1NiAwIDEgMCAwIDUxMnpNMjcyIDk2Yy04LjggMC0xNiA3LjItMTYgMTYgMCAyNi41IDIxLjUgNDggNDggNDhsMzIgMGM4LjggMCAxNiA3LjIgMTYgMTZzNy4yIDE2IDE2IDE2IDE2LTcuMiAxNi0xNmMwLTI2LjUtMjEuNS00OC00OC00OGwtMzIgMGMtOC44IDAtMTYtNy4yLTE2LTE2cy03LjItMTYtMTYtMTZ6Il19LEVFZT1kTyxQRWU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToidHJ1Y2stZnJvbnQiLGljb246WzQ0OCw1MTIsW10sImUyYjciLCJNMCAxMTJDMCA2Ny44IDM1LjggMzIgODAgMzJsMjg4IDBjNDQuMiAwIDgwIDM1LjggODAgODBsMCAyNTZjMCAyNi4yLTEyLjYgNDkuNC0zMiA2NGwwIDQ4YzAgMTcuNy0xNC4zIDMyLTMyIDMybC0zMiAwYy0xNy43IDAtMzItMTQuMy0zMi0zMmwwLTMyLTE5MiAwIDAgMzJjMCAxNy43LTE0LjMgMzItMzIgMzJsLTMyIDBjLTE3LjcgMC0zMi0xNC4zLTMyLTMybDAtNDhDMTIuNiA0MTcuNCAwIDM5NC4yIDAgMzY4TDAgMTEyem05NiA4MGwwIDY0IDI1NiAwIDAtNjRjMC0xNy43LTE0LjMtMzItMzItMzJsLTE5MiAwYy0xNy43IDAtMzIgMTQuMy0zMiAzMnptMzIgMTYwYTMyIDMyIDAgMSAwIC02NCAwIDMyIDMyIDAgMSAwIDY0IDB6bTIyNCAzMmEzMiAzMiAwIDEgMCAwLTY0IDMyIDMyIDAgMSAwIDAgNjR6Il19LHNnPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImJ1aWxkaW5nIixpY29uOlszODQsNTEyLFsxMjc5NzAsNjE2ODddLCJmMWFkIiwiTTY0IDBDMjguNyAwIDAgMjguNyAwIDY0TDAgNDQ4YzAgMzUuMyAyOC43IDY0IDY0IDY0bDI1NiAwYzM1LjMgMCA2NC0yOC43IDY0LTY0bDAtMzg0YzAtMzUuMy0yOC43LTY0LTY0LTY0TDY0IDB6TTE3NiAzNTJsMzIgMGMxNy43IDAgMzIgMTQuMyAzMiAzMmwwIDgwLTk2IDAgMC04MGMwLTE3LjcgMTQuMy0zMiAzMi0zMnpNOTYgMTEyYzAtOC44IDcuMi0xNiAxNi0xNmwzMiAwYzguOCAwIDE2IDcuMiAxNiAxNmwwIDMyYzAgOC44LTcuMiAxNi0xNiAxNmwtMzIgMGMtOC44IDAtMTYtNy4yLTE2LTE2bDAtMzJ6TTI0MCA5NmwzMiAwYzguOCAwIDE2IDcuMiAxNiAxNmwwIDMyYzAgOC44LTcuMiAxNi0xNiAxNmwtMzIgMGMtOC44IDAtMTYtNy4yLTE2LTE2bDAtMzJjMC04LjggNy4yLTE2IDE2LTE2ek05NiAyNDBjMC04LjggNy4yLTE2IDE2LTE2bDMyIDBjOC44IDAgMTYgNy4yIDE2IDE2bDAgMzJjMCA4LjgtNy4yIDE2LTE2IDE2bC0zMiAwYy04LjggMC0xNi03LjItMTYtMTZsMC0zMnptMTQ0LTE2bDMyIDBjOC44IDAgMTYgNy4yIDE2IDE2bDAgMzJjMCA4LjgtNy4yIDE2LTE2IDE2bC0zMiAwYy04LjggMC0xNi03LjItMTYtMTZsMC0zMmMwLTguOCA3LjItMTYgMTYtMTZ6Il19LElFZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJidWxsc2V5ZSIsaWNvbjpbNTEyLDUxMixbXSwiZjE0MCIsIk00NDggMjU2YTE5MiAxOTIgMCAxIDAgLTM4NCAwIDE5MiAxOTIgMCAxIDAgMzg0IDB6TTAgMjU2YTI1NiAyNTYgMCAxIDEgNTEyIDAgMjU2IDI1NiAwIDEgMSAtNTEyIDB6bTI1NiA4MGE4MCA4MCAwIDEgMCAwLTE2MCA4MCA4MCAwIDEgMCAwIDE2MHptMC0yMjRhMTQ0IDE0NCAwIDEgMSAwIDI4OCAxNDQgMTQ0IDAgMSAxIDAtMjg4ek0yMjQgMjU2YTMyIDMyIDAgMSAxIDY0IDAgMzIgMzIgMCAxIDEgLTY0IDB6Il19LGhPPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImFycm93LWxlZnQtbG9uZyIsaWNvbjpbNTc2LDUxMixbImxvbmctYXJyb3ctbGVmdCJdLCJmMTc3IiwiTTkuNCAyMzMuNGMtMTIuNSAxMi41LTEyLjUgMzIuOCAwIDQ1LjNsMTI4IDEyOGMxMi41IDEyLjUgMzIuOCAxMi41IDQ1LjMgMHMxMi41LTMyLjggMC00NS4zTDEwOS4zIDI4OCA1NDQgMjg4YzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMybC00MzQuNyAwIDczLjQtNzMuNGMxMi41LTEyLjUgMTIuNS0zMi44IDAtNDUuM3MtMzIuOC0xMi41LTQ1LjMgMGwtMTI4IDEyOHoiXX0sTkVlPWhPLEZFZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJjaGVzcy1yb29rIixpY29uOlszODQsNTEyLFs5ODIwXSwiZjQ0NyIsIk0wIDMyTDAgMTMzLjVjMCAxNyA2LjcgMzMuMyAxOC43IDQ1LjNMNjQgMjI0IDY0IDM4NCA3LjggNDU0LjNDMi43IDQ2MC42IDAgNDY4LjQgMCA0NzYuNSAwIDQ5Ni4xIDE1LjkgNTEyIDM1LjUgNTEybDMxMi45IDBjMTkuNiAwIDM1LjUtMTUuOSAzNS41LTM1LjUgMC04LjEtMi43LTE1LjktNy44LTIyLjJsLTU2LjItNzAuMyAwLTE2MCA0NS4zLTQ1LjNjMTItMTIgMTguNy0yOC4zIDE4LjctNDUuM0wzODQgMzJjMC0xNy43LTE0LjMtMzItMzItMzJMMzIwIDBjLTE3LjcgMC0zMiAxNC4zLTMyIDMybDAgMzItNDggMCAwLTMyYzAtMTcuNy0xNC4zLTMyLTMyLTMyTDE3NiAwYy0xNy43IDAtMzIgMTQuMy0zMiAzMmwwIDMyLTQ4IDAgMC0zMkM5NiAxNC4zIDgxLjcgMCA2NCAwTDMyIDBDMTQuMyAwIDAgMTQuMyAwIDMyeiJdfSxPRWU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiYmxlbmRlci1waG9uZSIsaWNvbjpbNTc2LDUxMixbXSwiZjZiNiIsIk0xNTEuNCAxMy4yYzEwLjIgNS44IDE0LjUgMTguNCAxMCAyOS4zTDEzOC4yIDk4LjhjLTMuOSA5LjYtMTMuNyAxNS40LTI0IDE0LjRsLTIwLjItMkM3OC43IDE1Mi45IDc4IDE5OC45IDkxLjkgMjQxLjFsMjIuNC0yLjJjMTAuMy0xIDIwIDQuOCAyNCAxNC40bDIzLjIgNTYuM2M0LjUgMTAuOSAuMiAyMy40LTEwIDI5LjNsLTIuOSAxLjZjLTMzLjYgMTkuMi04MS43IDE2LjItMTA2LjItMjEuNi01Ni4zLTg2LjYtNTYuMy0xOTkuMSAwLTI4NS43IDI0LjYtMzcuNyA3Mi43LTQwLjcgMTA2LjItMjEuNmwyLjkgMS42ek0yMjQgMzM2TDE5My43IDE3LjVDMTkyLjggOC4xIDIwMC4yIDAgMjA5LjYgMGwzMjQgMGMyMS4zIDAgMzYuNiAyMC4zIDMwLjggNDAuOEw1NTMuMSA4MCA0NDAgODBjLTEzLjMgMC0yNCAxMC43LTI0IDI0czEwLjcgMjQgMjQgMjRsOTkuNCAwLTE4LjMgNjQtODEuMSAwYy0xMy4zIDAtMjQgMTAuNy0yNCAyNHMxMC43IDI0IDI0IDI0bDY3LjQgMC0yNy40IDk2LTI1NiAwem04IDQ4bDI0MCAwYzIyLjEgMCA0MCAxNy45IDQwIDQwbDAgNDhjMCAyMi4xLTE3LjkgNDAtNDAgNDBsLTI0MCAwYy0yMi4xIDAtNDAtMTcuOS00MC00MGwwLTQ4YzAtMjIuMSAxNy45LTQwIDQwLTQwem0xMjAgODhhMjQgMjQgMCAxIDAgMC00OCAyNCAyNCAwIDEgMCAwIDQ4eiJdfSxwTz17cHJlZml4OiJmYXMiLGljb25OYW1lOiJhcnJvdy10dXJuLXVwIixpY29uOlszODQsNTEyLFsibGV2ZWwtdXAiXSwiZjE0OCIsIk0zMiA0NDhjLTE3LjcgMC0zMiAxNC4zLTMyIDMyczE0LjMgMzIgMzIgMzJsOTYgMGM1MyAwIDk2LTQzIDk2LTk2bDAtMzA2LjcgNzMuNCA3My40YzEyLjUgMTIuNSAzMi44IDEyLjUgNDUuMyAwczEyLjUtMzIuOCAwLTQ1LjNsLTEyOC0xMjhjLTEyLjUtMTIuNS0zMi44LTEyLjUtNDUuMyAwbC0xMjggMTI4Yy0xMi41IDEyLjUtMTIuNSAzMi44IDAgNDUuM3MzMi44IDEyLjUgNDUuMyAwTDE2MCAxMDkuMyAxNjAgNDE2YzAgMTcuNy0xNC4zIDMyLTMyIDMybC05NiAweiJdfSxSRWU9cE8sQkVlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImJpY3ljbGUiLGljb246WzY0MCw1MTIsWzEyODY5MF0sImYyMDYiLCJNMzMxLjcgNDMuM0MzMzYgMzYuMyAzNDMuNyAzMiAzNTIgMzJsMTA0IDBjMTMuMyAwIDI0IDEwLjcgMjQgMjRzLTEwLjcgMjQtMjQgMjRsLTY1LjYgMCA3Mi4yIDE0OC40YzEwLjctMi45IDIxLjktNC40IDMzLjQtNC40IDcwLjcgMCAxMjggNTcuMyAxMjggMTI4cy01Ny4zIDEyOC0xMjggMTI4LTEyOC01Ny4zLTEyOC0xMjhjMC00MiAyMC4yLTc5LjIgNTEuNC0xMDIuNmwtMjAuNC00MS45LTczLjUgMTQ3Yy0yLjMgNC44LTYuMyA4LjgtMTEuNCAxMS4yLS42IC4zLTEuMiAuNS0xLjggLjctMi45IDEuMS01LjkgMS42LTguOSAxLjVMMjcxIDM2OGMtNy45IDYzLjEtNjEuNyAxMTItMTI3IDExMi03MC43IDAtMTI4LTU3LjMtMTI4LTEyOFM3My4zIDIyNCAxNDQgMjI0YzEwLjggMCAyMS4yIDEuMyAzMS4yIDMuOGwyOC41LTU2LjktMTEuNS0yNi45LTQwLjIgMGMtMTMuMyAwLTI0LTEwLjctMjQtMjRzMTAuNy0yNCAyNC0yNGw1NiAwYzkuNiAwIDE4LjMgNS43IDIyLjEgMTQuNWwxNC4zIDMzLjUgMTIzLjcgMC0zNy43LTc3LjVjLTMuNi03LjQtMy4yLTE2LjIgMS4yLTIzLjJ6TTIyOC41IDIyOC43bC00NS42IDkxLjMgODQuOCAwLTM5LjEtOTEuM3pNMzA1LjcgMjg3bDQ3LjUtOTUtODguMiAwIDQwLjcgOTV6bTE2OC43IDc1LjVsLTI5LjctNjFjLTEyLjggMTMtMjAuNyAzMC44LTIwLjcgNTAuNSAwIDM5LjggMzIuMiA3MiA3MiA3MnM3Mi0zMi4yIDcyLTcyLTMyLjItNzItNzItNzJjLTIuNyAwLTUuNSAuMi04LjEgLjVsMjkuNyA2MWM1LjggMTEuOSAuOCAyNi4zLTExLjEgMzIuMXMtMjYuMyAuOC0zMi4xLTExLjF6TTE0OS4yIDM2OGMtMjAuMiAwLTMzLjQtMjEuMy0yNC4zLTM5LjRsMjQuMi00OC41Yy0xLjctLjEtMy40LS4yLTUuMS0uMi0zOS44IDAtNzIgMzIuMi03MiA3MnMzMi4yIDcyIDcyIDcyYzM0LjMgMCA2Mi45LTIzLjkgNzAuMi01NmwtNjUgMHoiXX0sdU89e3ByZWZpeDoiZmFzIixpY29uTmFtZToiY2lyY2xlLWFycm93LWRvd24iLGljb246WzUxMiw1MTIsWyJhcnJvdy1jaXJjbGUtZG93biJdLCJmMGFiIiwiTTI1NiA1MTJhMjU2IDI1NiAwIDEgMCAwLTUxMiAyNTYgMjU2IDAgMSAwIDAgNTEyek0yMzkgMzc3bC04MC04MGMtOS40LTkuNC05LjQtMjQuNiAwLTMzLjlzMjQuNi05LjQgMzMuOSAwbDM5IDM5IDAtMTUwLjFjMC0xMy4zIDEwLjctMjQgMjQtMjRzMjQgMTAuNyAyNCAyNGwwIDE1MC4xIDM5LTM5YzkuNC05LjQgMjQuNi05LjQgMzMuOSAwczkuNCAyNC42IDAgMzMuOWwtODAgODBjLTkuNCA5LjQtMjQuNiA5LjQtMzMuOSAweiJdfSxIRWU9dU8sczg9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZ2VhciIsaWNvbjpbNTEyLDUxMixbOTg4MSwiY29nIl0sImYwMTMiLCJNMTk1LjEgOS41QzE5OC4xLTUuMyAyMTEuMi0xNiAyMjYuNC0xNmw1OS44IDBjMTUuMiAwIDI4LjMgMTAuNyAzMS4zIDI1LjVMMzMyIDc5LjVjMTQuMSA2IDI3LjMgMTMuNyAzOS4zIDIyLjhsNjcuOC0yMi41YzE0LjQtNC44IDMwLjIgMS4yIDM3LjggMTQuNGwyOS45IDUxLjhjNy42IDEzLjIgNC45IDI5LjgtNi41IDM5LjlMNDQ3IDIzMy4zYy45IDcuNCAxLjMgMTUgMS4zIDIyLjdzLS41IDE1LjMtMS4zIDIyLjdsNTMuNCA0Ny41YzExLjQgMTAuMSAxNCAyNi44IDYuNSAzOS45bC0yOS45IDUxLjhjLTcuNiAxMy4xLTIzLjQgMTkuMi0zNy44IDE0LjRsLTY3LjgtMjIuNWMtMTIuMSA5LjEtMjUuMyAxNi43LTM5LjMgMjIuOGwtMTQuNCA2OS45Yy0zLjEgMTQuOS0xNi4yIDI1LjUtMzEuMyAyNS41bC01OS44IDBjLTE1LjIgMC0yOC4zLTEwLjctMzEuMy0yNS41bC0xNC40LTY5LjljLTE0LjEtNi0yNy4yLTEzLjctMzkuMy0yMi44TDczLjUgNDMyLjNjLTE0LjQgNC44LTMwLjItMS4yLTM3LjgtMTQuNEw1LjggMzY2LjFjLTcuNi0xMy4yLTQuOS0yOS44IDYuNS0zOS45bDUzLjQtNDcuNWMtLjktNy40LTEuMy0xNS0xLjMtMjIuN3MuNS0xNS4zIDEuMy0yMi43TDEyLjMgMTg1LjhjLTExLjQtMTAuMS0xNC0yNi44LTYuNS0zOS45TDM1LjcgOTQuMWM3LjYtMTMuMiAyMy40LTE5LjIgMzcuOC0xNC40bDY3LjggMjIuNWMxMi4xLTkuMSAyNS4zLTE2LjcgMzkuMy0yMi44TDE5NS4xIDkuNXpNMjU2LjMgMzM2YTgwIDgwIDAgMSAwIC0uNi0xNjAgODAgODAgMCAxIDAgLjYgMTYweiJdfSxxRWU9czgsVkVlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6Im1hcnMtYW5kLXZlbnVzLWJ1cnN0IixpY29uOls2NDAsNTEyLFtdLCJlNTIzIiwiTTQ2NC0zMmMwIDE3LjcgMTQuMyAzMiAzMiAzMmwzNC43IDAtNjMgNjNjLTI4LjQtMTkuNS02Mi43LTMxLTk5LjgtMzEtOTcuMiAwLTE3NiA3OC44LTE3NiAxNzYgMCA4Ni4zIDYyLjEgMTU4LjEgMTQ0IDE3My4xbDAgMzQuOS0zMiAwYy0xNy43IDAtMzIgMTQuMy0zMiAzMnMxNC4zIDMyIDMyIDMybDMyIDAgMCAzMmMwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMybDAtMzIgMzIgMGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMmwtMzIgMCAwLTM0LjljODEuOS0xNSAxNDQtODYuOCAxNDQtMTczLjEgMC0zNy0xMS40LTcxLjQtMzEtOTkuOGw2My02MyAwIDM0LjdjMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMmwwLTExMmMwLTE3LjctMTQuMy0zMi0zMi0zMkw0OTYtNjRjLTE3LjcgMC0zMiAxNC4zLTMyIDMyek0zNjggOTZhMTEyIDExMiAwIDEgMSAwIDIyNCAxMTIgMTEyIDAgMSAxIDAtMjI0ek0xOTAuOS0yMS45QzE4OC40LTI4IDE4Mi42LTMyIDE3Ni0zMnMtMTIuNCA0LTE0LjkgMTAuMWwtMjkuNCA3NC03Ni4yLTIzLjFjLTYuMy0xLjktMTMuMSAuMi0xNy4yIDUuM1MzMy44IDQ2LjUgMzcgNTIuMmwzOS41IDY5LjEtNjUuNiA0NS4xYy01LjQgMy43LTggMTAuMy02LjUgMTYuN3M2LjcgMTEuMiAxMy4xIDEyLjJsNzguNyAxMi4yLTUuNiA3OS40Yy0uNSA2LjUgMy4xIDEyLjcgOSAxNS41czEyLjkgMS44IDE3LjgtMi42TDE1Mi4xIDI2OGMtNS4zLTE5LjEtOC4xLTM5LjItOC4xLTYwIDAtNjUuNCAyOC0xMjQuMiA3Mi42LTE2NS4xTDE5MC45LTIxLjl6Il19LGpFZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJvdHRlciIsaWNvbjpbNjQwLDUxMixbMTI5NDQ2XSwiZjcwMCIsIk0xODEuNSAxOTcuMWwxMi45IDYuNGM1LjkgMyAxMi40IDQuNSAxOS4xIDQuNSAyMy41IDAgNDIuNi0xOS4xIDQyLjYtNDIuNmwwLTIxLjRjMC0zNS4zLTI4LjctNjQtNjQtNjRsLTY0IDBjLTM1LjMgMC02NCAyOC43LTY0IDY0bDAgMjEuNGMwIDIzLjUgMTkuMSA0Mi42IDQyLjYgNDIuNiA2LjYgMCAxMy4xLTEuNSAxOS4xLTQuNSA5LjMtNC43IDE2LjQtOC4yIDIxLjItMTAuNkwxMzUuMSAxODVjLTQuNS0zLTcuMS04LTcuMS0xMy4zbDAtMy43YzAtMTMuMyAxMC43LTI0IDI0LTI0bDE2IDBjMTMuMyAwIDI0IDEwLjcgMjQgMjRsMCAzLjdjMCA1LjMtMi43IDEwLjMtNy4xIDEzLjNsLTExLjggNy45IDguNCA0LjJ6bS04LjYgNDkuNGwtMTIuOS02LjQtMTIuOSA2LjRjLTEyLjYgNi4zLTI2LjUgOS42LTQwLjUgOS42LTMuNiAwLTcuMS0uMi0xMC42LS42bDAgLjZjMCAzNS4zIDI4LjcgNjQgNjQgNjRsNjQgMGMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMmwxNjAgMCAwLTY0YzAtMjMuNyAxMi45LTQ0LjQgMzItNTUuNCA5LjQtNS40IDIwLjMtOC42IDMyLTguNmwwLTE2YzAtMjYuNSAyMS41LTQ4IDQ4LTQ4IDguOCAwIDE2IDcuMiAxNiAxNmwwIDk2YzAgOC44IDcuMiAxNiAxNiAxNnMxNi03LjIgMTYtMTZsMC05OS43YzAtNDguMi0zMC44LTkxLTc2LjYtMTA2LjNsLTguNS0yLjhjLTgtMi43LTEyLjYtMTEuMS0xMC40LTE5LjNzMTAuMy0xMy4yIDE4LjYtMTEuNmwxOS45IDRDNTc2IDg2LjEgNjQwIDE2NC4yIDY0MCAyNTQuOWwwIDEuMSAwIDBjMCAxMjMuNy0xMDAuMyAyMjQtMjI0IDIyNGwtMTYwLjYgMEMxMzIgNDgwIDMyIDM4MCAzMiAyNTYuNmwwLTM5LjhjLTEwLjEtMTQuNi0xNi0zMi4zLTE2LTUxLjRsMC0yMS40IDAtMS40QzYuNyAxMzkuMyAwIDEzMC41IDAgMTIwIDAgMTA2LjcgMTAuNyA5NiAyNCA5NmwyLjggMEM0NC44IDU4LjIgODMuMyAzMiAxMjggMzJsNjQgMGM0NC43IDAgODMuMiAyNi4yIDEwMS4yIDY0bDIuOCAwYzEzLjMgMCAyNCAxMC43IDI0IDI0IDAgMTAuNS02LjcgMTkuMy0xNiAyMi42bDAgMS40IDAgMjEuNGMwIDEuNCAwIDIuOC0uMSA0LjMgMTItNi4yIDI1LjctOS42IDQwLjEtOS42bDggMGMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMmwtOCAwYy0xMy4zIDAtMjQgMTAuNy0yNCAyNGwwIDggNTYuNCAwYy0xNS4yIDE3LTI0LjQgMzkuNC0yNC40IDY0bC0zMiAwYy00Mi4zIDAtNzguMi0yNy40LTkxLTY1LjMtNS4xIC45LTEwLjMgMS4zLTE1LjYgMS4zLTE0LjEgMC0yNy45LTMuMy00MC41LTkuNnpNOTYgMTI4YTE2IDE2IDAgMSAxIDAgMzIgMTYgMTYgMCAxIDEgMC0zMnptMTEyIDE2YTE2IDE2IDAgMSAxIDMyIDAgMTYgMTYgMCAxIDEgLTMyIDB6Il19LGZPPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImNpcmNsZS1jaGV2cm9uLWxlZnQiLGljb246WzUxMiw1MTIsWyJjaGV2cm9uLWNpcmNsZS1sZWZ0Il0sImYxMzciLCJNNTEyIDI1NmEyNTYgMjU2IDAgMSAwIC01MTIgMCAyNTYgMjU2IDAgMSAwIDUxMiAwek0yNzEgMTM1YzkuNC05LjQgMjQuNi05LjQgMzMuOSAwczkuNCAyNC42IDAgMzMuOWwtODcgODcgODcgODdjOS40IDkuNCA5LjQgMjQuNiAwIDMzLjlzLTI0LjYgOS40LTMzLjkgMEwxNjcgMjczYy05LjQtOS40LTkuNC0yNC42IDAtMzMuOUwyNzEgMTM1eiJdfSxVRWU9Zk8sbU89e3ByZWZpeDoiZmFzIixpY29uTmFtZToiY2lyY2xlLXF1ZXN0aW9uIixpY29uOls1MTIsNTEyLFs2MjEwOCwicXVlc3Rpb24tY2lyY2xlIl0sImYwNTkiLCJNMjU2IDUxMmEyNTYgMjU2IDAgMSAwIDAtNTEyIDI1NiAyNTYgMCAxIDAgMCA1MTJ6bTAtMzM2Yy0xNy43IDAtMzIgMTQuMy0zMiAzMiAwIDEzLjMtMTAuNyAyNC0yNCAyNHMtMjQtMTAuNy0yNC0yNGMwLTQ0LjIgMzUuOC04MCA4MC04MHM4MCAzNS44IDgwIDgwYzAgNDcuMi0zNiA2Ny4yLTU2IDc0LjVsMCAzLjhjMCAxMy4zLTEwLjcgMjQtMjQgMjRzLTI0LTEwLjctMjQtMjRsMC04LjFjMC0yMC41IDE0LjgtMzUuMiAzMC4xLTQwLjIgNi40LTIuMSAxMy4yLTUuNSAxOC4yLTEwLjMgNC4zLTQuMiA3LjctMTAgNy43LTE5LjYgMC0xNy43LTE0LjMtMzItMzItMzJ6TTIyNCAzNjhhMzIgMzIgMCAxIDEgNjQgMCAzMiAzMiAwIDEgMSAtNjQgMHoiXX0sV0VlPW1PLEdFZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJ3YWxraWUtdGFsa2llIixpY29uOlszODQsNTEyLFtdLCJmOGVmIiwiTTg4LTMyYzEzLjMgMCAyNCAxMC43IDI0IDI0bDAgNzIgNDggMGMwLTE3LjcgMTQuMy0zMiAzMi0zMnMzMiAxNC4zIDMyIDMybDMyIDBjMC0xNy43IDE0LjMtMzIgMzItMzJzMzIgMTQuMyAzMiAzMmwxNiAwYzI2LjUgMCA0OCAyMS41IDQ4IDQ4bDAgMTYwLjljMCA5LjktMi4zIDE5LjctNi44IDI4LjZsLTIwLjIgNDAuNGMtMy4zIDYuNy01LjEgMTQtNS4xIDIxLjVsMCA4NC43YzAgMzUuMy0yOC43IDY0LTY0IDY0TDk2IDUxMmMtMzUuMyAwLTY0LTI4LjctNjQtNjRsMC04NC43YzAtNy41LTEuNy0xNC44LTUuMS0yMS41TDYuOCAzMDEuNUMyLjMgMjkyLjYgMCAyODIuOCAwIDI3Mi45TDAgMTEyQzAgODUuNSAyMS41IDY0IDQ4IDY0bDE2IDAgMC03MmMwLTEzLjMgMTAuNy0yNCAyNC0yNHptMzIgMTc2Yy0xMy4zIDAtMjQgMTAuNy0yNCAyNHMxMC43IDI0IDI0IDI0bDE0NCAwYzEzLjMgMCAyNC0xMC43IDI0LTI0cy0xMC43LTI0LTI0LTI0bC0xNDQgMHptMCA5NmMtMTMuMyAwLTI0IDEwLjctMjQgMjRzMTAuNyAyNCAyNCAyNGwxNDQgMGMxMy4zIDAgMjQtMTAuNyAyNC0yNHMtMTAuNy0yNC0yNC0yNGwtMTQ0IDB6Il19LGdPPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InVzZXItZ3JvdXAiLGljb246WzU3Niw1MTIsWzEyODEwMSwidXNlci1mcmllbmRzIl0sImY1MDAiLCJNNjQgMTI4YTExMiAxMTIgMCAxIDEgMjI0IDAgMTEyIDExMiAwIDEgMSAtMjI0IDB6TTAgNDY0YzAtOTcuMiA3OC44LTE3NiAxNzYtMTc2czE3NiA3OC44IDE3NiAxNzZsMCA2YzAgMjMuMi0xOC44IDQyLTQyIDQyTDQyIDUxMmMtMjMuMiAwLTQyLTE4LjgtNDItNDJsMC02ek00MzIgNjRhOTYgOTYgMCAxIDEgMCAxOTIgOTYgOTYgMCAxIDEgMC0xOTJ6bTAgMjQwYzc5LjUgMCAxNDQgNjQuNSAxNDQgMTQ0bDAgMjIuNGMwIDIzLTE4LjYgNDEuNi00MS42IDQxLjZsLTE0NC44IDBjNi42LTEyLjUgMTAuNC0yNi44IDEwLjQtNDJsMC02YzAtNTEuNS0xNy40LTk4LjktNDYuNS0xMzYuNyAyMi42LTE0LjcgNDkuNi0yMy4zIDc4LjUtMjMuM3oiXX0sWUVlPWdPLGJPPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImhvdXNlLWNoaW1uZXkiLGljb246WzUxMiw1MTIsWzYzNDk5LCJob21lLWxnIl0sImUzYWYiLCJNMjM0LjIgOC42YzEyLjMtMTEuNCAzMS4zLTExLjQgNDMuNSAwTDM2OCA5Mi4zIDM2OCA4MGMwLTE3LjcgMTQuMy0zMiAzMi0zMmwzMiAwYzE3LjcgMCAzMiAxNC4zIDMyIDMybDAgMTAxLjUgMzcuOCAzNS4xYzkuNiA5IDEyLjggMjIuOSA4IDM1LjFTNDkzLjIgMjcyIDQ4MCAyNzJsLTE2IDAgMCAxNzZjMCAzNS4zLTI4LjcgNjQtNjQgNjRsLTI4OCAwYy0zNS4zIDAtNjQtMjguNy02NC02NGwwLTE3Ni0xNiAwYy0xMy4yIDAtMjUtOC4xLTI5LjgtMjAuM3MtMS42LTI2LjIgOC0zNS4xbDIyNC0yMDh6TTI0MCAzMjBjLTI2LjUgMC00OCAyMS41LTQ4IDQ4bDAgOTYgMTI4IDAgMC05NmMwLTI2LjUtMjEuNS00OC00OC00OGwtMzIgMHoiXX0sWkVlPWJPLHZPPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InJpZ2h0LWZyb20tYnJhY2tldCIsaWNvbjpbNTEyLDUxMixbInNpZ24tb3V0LWFsdCJdLCJmMmY1IiwiTTUwNSAyNzNjOS40LTkuNCA5LjQtMjQuNiAwLTMzLjlMMzYxIDk1Yy02LjktNi45LTE3LjItOC45LTI2LjItNS4yUzMyMCAxMDIuMyAzMjAgMTEybDAgODAtMTEyIDBjLTI2LjUgMC00OCAyMS41LTQ4IDQ4bDAgMzJjMCAyNi41IDIxLjUgNDggNDggNDhsMTEyIDAgMCA4MGMwIDkuNyA1LjggMTguNSAxNC44IDIyLjJzMTkuMyAxLjcgMjYuMi01LjJMNTA1IDI3M3pNMTYwIDk2YzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMyTDk2IDMyQzQzIDMyIDAgNzUgMCAxMjhMMCAzODRjMCA1MyA0MyA5NiA5NiA5Nmw2NCAwYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMybC02NCAwYy0xNy43IDAtMzItMTQuMy0zMi0zMmwwLTI1NmMwLTE3LjcgMTQuMy0zMiAzMi0zMmw2NCAweiJdfSxYRWU9dk8sS0VlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImZpbGUiLGljb246WzM4NCw1MTIsWzEyODE5NiwxMjg0NTksNjE0NjJdLCJmMTViIiwiTTY0IDBDMjguNyAwIDAgMjguNyAwIDY0TDAgNDQ4YzAgMzUuMyAyOC43IDY0IDY0IDY0bDI1NiAwYzM1LjMgMCA2NC0yOC43IDY0LTY0bDAtMjc3LjVjMC0xNy02LjctMzMuMy0xOC43LTQ1LjNMMjU4LjcgMTguN0MyNDYuNyA2LjcgMjMwLjUgMCAyMTMuNSAwTDY0IDB6TTMyNS41IDE3NkwyMzIgMTc2Yy0xMy4zIDAtMjQtMTAuNy0yNC0yNEwyMDggNTguNSAzMjUuNSAxNzZ6Il19LFFFZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJwbGFuZS1zbGFzaCIsaWNvbjpbNTc2LDUxMixbXSwiZTA2OSIsIk00MS0yNC45Yy05LjQtOS40LTI0LjYtOS40LTMzLjkgMFMtMi4zLS4zIDcgOS4xbDUyOCA1MjhjOS40IDkuNCAyNC42IDkuNCAzMy45IDBzOS40LTI0LjYgMC0zMy45bC0xODMuNC0xODMuNCA3LjEtNy43IDEyNy4zIDBjMzAuOSAwIDU2LTI1LjEgNTYtNTZzLTI1LjEtNTYtNTYtNTZMMzkyLjcgMjAwIDIzMy41IDI2LjRDMjI3LjUgMTkuOCAyMTguOSAxNiAyMDkuOSAxNmwtNDMuNyAwYy0xMC45IDAtMTguNiAxMC43LTE1LjIgMjEuMUwxNzUuMSAxMDkuMiA0MS0yNC45ek0xMzAuMiAyMDBsLTI0LjYgMC01Mi44LTY2Yy0zLTMuOC03LjYtNi0xMi41LTZsLTE5LjggMGMtMTAuNCAwLTE4IDkuOC0xNS41IDE5LjlMMzIgMjU2IDUgMzY0LjFDMi40IDM3NC4yIDEwLjEgMzg0IDIwLjUgMzg0bDE5LjggMGM0LjkgMCA5LjUtMi4yIDEyLjUtNmw1Mi44LTY2IDk5LjcgMC01NC4zIDE2Mi45Yy0zLjUgMTAuNCA0LjMgMjEuMSAxNS4yIDIxLjFsNDMuNyAwYzkgMCAxNy41LTMuOCAyMy42LTEwLjRMMzIwLjcgMzkwLjUgMTMwLjIgMjAweiJdfSxKRWU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiY2xvdWQtc2hvd2Vycy1oZWF2eSIsaWNvbjpbNTEyLDUxMixbXSwiZjc0MCIsIk05NiAzMjBjLTUzIDAtOTYtNDMtOTYtOTYgMC00Mi41IDI3LjYtNzguNiA2NS45LTkxLjItMS4zLTYuNy0xLjktMTMuNy0xLjktMjAuOCAwLTYxLjkgNTAuMS0xMTIgMTEyLTExMiA0My4xIDAgODAuNSAyNC4zIDk5LjIgNjAgMTQuNy0xNy4xIDM2LjUtMjggNjAuOC0yOCA0NC4yIDAgODAgMzUuOCA4MCA4MCAwIDUuNS0uNiAxMC44LTEuNiAxNiAuNSAwIDEuMSAwIDEuNiAwIDUzIDAgOTYgNDMgOTYgOTZzLTQzIDk2LTk2IDk2TDk2IDMyMHptNi44IDc5LjZsLTMyIDk2QzY2LjYgNTA4LjIgNTMgNTE1IDQwLjQgNTEwLjhTMjEgNDkzIDI1LjIgNDgwLjRsMzItOTZDNjEuNCAzNzEuOCA3NSAzNjUgODcuNiAzNjkuMlMxMDcgMzg3IDEwMi44IDM5OS42em0xMjAgMGwtMzIgOTZjLTQuMiAxMi42LTE3LjggMTkuNC0zMC40IDE1LjJTMTQxIDQ5MyAxNDUuMiA0ODAuNGwzMi05NmM0LjItMTIuNiAxNy44LTE5LjQgMzAuNC0xNS4yUzIyNyAzODcgMjIyLjggMzk5LjZ6bTExMiAwbC0zMiA5NmMtNC4yIDEyLjYtMTcuOCAxOS40LTMwLjQgMTUuMlMyNTMgNDkzIDI1Ny4yIDQ4MC40bDMyLTk2YzQuMi0xMi42IDE3LjgtMTkuNCAzMC40LTE1LjJTMzM5IDM4NyAzMzQuOCAzOTkuNnptMTIwIDBsLTMyIDk2Yy00LjIgMTIuNi0xNy44IDE5LjQtMzAuNCAxNS4yUzM3MyA0OTMgMzc3LjIgNDgwLjRsMzItOTZjNC4yLTEyLjYgMTcuOC0xOS40IDMwLjQtMTUuMlM0NTkgMzg3IDQ1NC44IDM5OS42eiJdfSxlUGU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToicGVyc29uLWZhbGxpbmciLGljb246WzUxMiw1MTIsW10sImU1NDYiLCJNMzIwIDMyYzAtMTcuNy0xNC4zLTMyLTMyLTMycy0zMiAxNC4zLTMyIDMybDAgNS40YzAgNDUtMjMuNiA4Ni42LTYyLjEgMTA5LjhsLTQuNiAyLjhDMTMxLjQgMTg0LjcgOTYgMjQ3LjEgOTYgMzE0LjZMOTYgMzg0YzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJsMC02OS40YzAtMTYuNyAzLjMtMzMgOS40LTQ4TDM1OS4yIDUwMC4yYzExLjEgMTMuNyAzMS4zIDE1LjggNDUgNC43czE1LjgtMzEuMyA0LjctNDVMMjk1LjIgMzIwIDQwMCAzMjAgNDM4LjQgMzcxLjJjMTAuNiAxNC4xIDMwLjcgMTcgNDQuOCA2LjRzMTctMzAuNyA2LjQtNDQuOGwtNDMuMi01Ny42QzQzNy4zIDI2My4xIDQyMy4xIDI1NiA0MDggMjU2bC04OSAwLTYyLjktNzUuNWM0MC4zLTM2IDYzLjktODcuOSA2My45LTE0My4xbDAtNS40ek0xMDQgMTQ0YTU2IDU2IDAgMSAwIDAtMTEyIDU2IDU2IDAgMSAwIDAgMTEyeiJdfSx5Tz17cHJlZml4OiJmYXMiLGljb25OYW1lOiJ0dXJuLWRvd24iLGljb246WzM4NCw1MTIsWzEwNTQ5LCJsZXZlbC1kb3duLWFsdCJdLCJmM2JlIiwiTTE2OS40IDUwMi42YzEyLjUgMTIuNSAzMi44IDEyLjUgNDUuMyAwbDEyOC0xMjhjOS4yLTkuMiAxMS45LTIyLjkgNi45LTM0LjlTMzMyLjkgMzIwIDMyMCAzMjBsLTY0IDAgMC0xNjBDMjU2IDcxLjYgMTg0LjQgMCA5NiAwTDMyIDBDMTQuMyAwIDAgMTQuMyAwIDMyTDAgOTZjMCAxNy43IDE0LjMgMzIgMzIgMzJsNjQgMGMxNy43IDAgMzIgMTQuMyAzMiAzMmwwIDE2MC02NCAwYy0xMi45IDAtMjQuNiA3LjgtMjkuNiAxOS44cy0yLjIgMjUuNyA2LjkgMzQuOWwxMjggMTI4eiJdfSx0UGU9eU8seE89e3ByZWZpeDoiZmFzIixpY29uTmFtZToidXAtcmlnaHQtYW5kLWRvd24tbGVmdC1mcm9tLWNlbnRlciIsaWNvbjpbNTEyLDUxMixbImV4cGFuZC1hbHQiXSwiZjQyNCIsIk0zNDQgMEw0ODggMGMxMy4zIDAgMjQgMTAuNyAyNCAyNGwwIDE0NGMwIDkuNy01LjggMTguNS0xNC44IDIyLjJzLTE5LjMgMS43LTI2LjItNS4ybC0zOS0zOS04NyA4N2MtOS40IDkuNC0yNC42IDkuNC0zMy45IDBsLTMyLTMyYy05LjQtOS40LTkuNC0yNC42IDAtMzMuOWw4Ny04Ny0zOS0zOWMtNi45LTYuOS04LjktMTcuMi01LjItMjYuMlMzMzQuMyAwIDM0NCAwek0xNjggNTEyTDI0IDUxMmMtMTMuMyAwLTI0LTEwLjctMjQtMjRMMCAzNDRjMC05LjcgNS44LTE4LjUgMTQuOC0yMi4yUzM0LjEgMzIwLjIgNDEgMzI3bDM5IDM5IDg3LTg3YzkuNC05LjQgMjQuNi05LjQgMzMuOSAwbDMyIDMyYzkuNCA5LjQgOS40IDI0LjYgMCAzMy45bC04NyA4NyAzOSAzOWM2LjkgNi45IDguOSAxNy4yIDUuMiAyNi4yUzE3Ny43IDUxMiAxNjggNTEyeiJdfSxhUGU9eE8saVBlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InVzZXItdGFnIixpY29uOls2NDAsNTEyLFtdLCJmNTA3IiwiTTI1Ni4xIDhhMTIwIDEyMCAwIDEgMSAwIDI0MCAxMjAgMTIwIDAgMSAxIDAtMjQwek0yMjYuNCAzMDRsNTkuNCAwYzYuNyAwIDEzLjIgLjQgMTkuNyAxLjEtLjkgNC45LTEuNCA5LjktMS40IDE1bDAgOTIuMWMwIDI1LjUgMTAuMSA0OS45IDI4LjEgNjcuOWwzMS45IDMxLjktMjg2LjMgMGMtMTYuNCAwLTI5LjctMTMuMy0yOS43LTI5LjcgMC05OC41IDc5LjgtMTc4LjMgMTc4LjMtMTc4LjN6TTM1Mi4xIDQxMi4ybDAtOTIuMWMwLTE3LjcgMTQuMy0zMiAzMi0zMmw5Mi4xIDBjMTIuNyAwIDI0LjkgNS4xIDMzLjkgMTQuMWw5NiA5NmMxOC43IDE4LjcgMTguNyA0OS4xIDAgNjcuOWwtNzYuMSA3Ni4xYy0xOC43IDE4LjctNDkuMSAxOC43LTY3LjkgMGwtOTYtOTZjLTktOS0xNC4xLTIxLjItMTQuMS0zMy45em0xMDQtNDQuMmEyNCAyNCAwIDEgMCAtNDggMCAyNCAyNCAwIDEgMCA0OCAweiJdfSxyUGU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiaGFuZC1zcGFya2xlcyIsaWNvbjpbNjQwLDUxMixbXSwiZTA1ZCIsIk0zMjAgMGMxNy43IDAgMzIgMTQuMyAzMiAzMmwwIDIwOGMwIDguOCA3LjIgMTYgMTYgMTZzMTYtNy4yIDE2LTE2bDAtMTc2YzAtMTcuNyAxNC4zLTMyIDMyLTMyczMyIDE0LjMgMzIgMzJsMCAxNzZjMCA4LjggNy4yIDE2IDE2IDE2czE2LTcuMiAxNi0xNmwwLTExMmMwLTE3LjcgMTQuMy0zMiAzMi0zMnMzMiAxNC4zIDMyIDMybDAgMTc4LjJjLTE5LjIgNS40LTM0LjcgMjAuNC00MC40IDQwLjNsLTYuNSAyMi43LTIyLjcgNi41Yy0yNS4yIDcuMi00Mi41IDMwLjItNDIuNSA1Ni40IDAgMjIuMSAxMi40IDQyIDMxLjQgNTEuOS0yNy41IDE3LjgtNjAuMiAyOC4xLTk1LjQgMjguMWwtMTkuMiAwYy01OS42IDAtMTE2LjktMjIuOS0xNjAtNjRMNzYuNCAzNDFjLTE2LTE1LjItMTYuNi00MC42LTEuNC01Ni42czQwLjYtMTYuNiA1Ni42LTEuNGw2MC41IDU3LjZjMC0xLjUtLjEtMy4xLS4xLTQuNmwwLTI3MmMwLTE3LjcgMTQuMy0zMiAzMi0zMnMzMiAxNC4zIDMyIDMybDAgMTc2YzAgOC44IDcuMiAxNiAxNiAxNnMxNi03LjIgMTYtMTZsMC0yMDhjMC0xNy43IDE0LjMtMzIgMzItMzJ6bS03LjMgMzI2LjZjLTEuMS0zLjktNC43LTYuNi04LjctNi42cy03LjYgMi43LTguNyA2LjZsLTcuMyAyNS40LTI1LjQgNy4zYy0zLjkgMS4xLTYuNiA0LjctNi42IDguN3MyLjcgNy42IDYuNiA4LjdsMjUuNCA3LjMgNy4zIDI1LjRjMS4xIDMuOSA0LjcgNi42IDguNyA2LjZzNy42LTIuNyA4LjctNi42bDcuMy0yNS40IDI1LjQtNy4zYzMuOS0xLjEgNi42LTQuNyA2LjYtOC43cy0yLjctNy42LTYuNi04LjdsLTI1LjQtNy4zLTcuMy0yNS40ek0xMDQgMTIwbDQ4LjMgMTMuOGM0LjYgMS4zIDcuNyA1LjUgNy43IDEwLjJzLTMuMSA4LjktNy43IDEwLjJMMTA0IDE2OCA5MC4yIDIxNi4zYy0xLjMgNC42LTUuNSA3LjctMTAuMiA3LjdzLTguOS0zLjEtMTAuMi03LjdMNTYgMTY4IDcuNyAxNTQuMkMzLjEgMTUyLjkgMCAxNDguNyAwIDE0NHMzLjEtOC45IDcuNy0xMC4yTDU2IDEyMCA2OS44IDcxLjdDNzEuMSA2Ny4xIDc1LjMgNjQgODAgNjRzOC45IDMuMSAxMC4yIDcuN0wxMDQgMTIwek01ODQgNDA4bDQ4LjMgMTMuOGM0LjYgMS4zIDcuNyA1LjUgNy43IDEwLjJzLTMuMSA4LjktNy43IDEwLjJMNTg0IDQ1NiA1NzAuMiA1MDQuM2MtMS4zIDQuNi01LjUgNy43LTEwLjIgNy43cy04LjktMy4xLTEwLjItNy43TDUzNiA0NTYgNDg3LjcgNDQyLjJjLTQuNi0xLjMtNy43LTUuNS03LjctMTAuMnMzLjEtOC45IDcuNy0xMC4yTDUzNiA0MDggNTQ5LjggMzU5LjdjMS4zLTQuNiA1LjUtNy43IDEwLjItNy43czguOSAzLjEgMTAuMiA3LjdMNTg0IDQwOHoiXX0sc1BlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImFycm93cy10by1kb3QiLGljb246WzUxMiw1MTIsW10sImU0YmUiLCJNMjU2IDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJsMCAzMiAzMiAwYzEyLjkgMCAyNC42IDcuOCAyOS42IDE5LjhzMi4yIDI1LjctNi45IDM0LjlsLTY0IDY0Yy0xMi41IDEyLjUtMzIuOCAxMi41LTQ1LjMgMGwtNjQtNjRjLTkuMi05LjItMTEuOS0yMi45LTYuOS0zNC45UzE3OS4xIDY0IDE5MiA2NGwzMiAwIDAtMzJjMC0xNy43IDE0LjMtMzIgMzItMzJ6TTE2OS40IDM5My40bDY0LTY0YzEyLjUtMTIuNSAzMi44LTEyLjUgNDUuMyAwbDY0IDY0YzkuMiA5LjIgMTEuOSAyMi45IDYuOSAzNC45UzMzMi45IDQ0OCAzMjAgNDQ4bC0zMiAwIDAgMzJjMCAxNy43LTE0LjMgMzItMzIgMzJzLTMyLTE0LjMtMzItMzJsMC0zMi0zMiAwYy0xMi45IDAtMjQuNi03LjgtMjkuNi0xOS44cy0yLjItMjUuNyA2LjktMzQuOXpNMzIgMjI0bDMyIDAgMC0zMmMwLTEyLjkgNy44LTI0LjYgMTkuOC0yOS42czI1LjctMi4yIDM0LjkgNi45bDY0IDY0YzEyLjUgMTIuNSAxMi41IDMyLjggMCA0NS4zbC02NCA2NGMtOS4yIDkuMi0yMi45IDExLjktMzQuOSA2LjlTNjQgMzMyLjkgNjQgMzIwbDAtMzItMzIgMGMtMTcuNyAwLTMyLTE0LjMtMzItMzJzMTQuMy0zMiAzMi0zMnptMjk3LjQgNTQuNmMtMTIuNS0xMi41LTEyLjUtMzIuOCAwLTQ1LjNsNjQtNjRjOS4yLTkuMiAyMi45LTExLjkgMzQuOS02LjlTNDQ4IDE3OS4xIDQ0OCAxOTJsMCAzMiAzMiAwYzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMybC0zMiAwIDAgMzJjMCAxMi45LTcuOCAyNC42LTE5LjggMjkuNnMtMjUuNyAyLjItMzQuOS02LjlsLTY0LTY0ek0yNTYgMjI0YTMyIDMyIDAgMSAxIDAgNjQgMzIgMzIgMCAxIDEgMC02NHoiXX0sd089e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZmFjZS1zYWQtY3J5IixpY29uOls1MTIsNTEyLFsxMjg1NTcsInNhZC1jcnkiXSwiZjViMyIsIk0zNTIgNDkzLjRjLTI5LjYgMTItNjIuMSAxOC42LTk2IDE4LjZzLTY2LjQtNi42LTk2LTE4LjZMMTYwIDI5NmMwLTEzLjMtMTAuNy0yNC0yNC0yNHMtMjQgMTAuNy0yNCAyNGwwIDE3MS43QzQ0LjQgNDIxLjYgMCAzNDQgMCAyNTYgMCAxMTQuNiAxMTQuNiAwIDI1NiAwUzUxMiAxMTQuNiA1MTIgMjU2YzAgODgtNDQuNCAxNjUuNi0xMTIgMjExLjdMNDAwIDI5NmMwLTEzLjMtMTAuNy0yNC0yNC0yNHMtMjQgMTAuNy0yNCAyNGwwIDE5Ny40ek0xNTIgMTk2bDE2IDBjMTEgMCAyMCA5IDIwIDIwczkgMjAgMjAgMjAgMjAtOSAyMC0yMGMwLTMzLjEtMjYuOS02MC02MC02MGwtMTYgMGMtMzMuMSAwLTYwIDI2LjktNjAgNjAgMCAxMSA5IDIwIDIwIDIwczIwLTkgMjAtMjAgOS0yMCAyMC0yMHptMTcyIDIwYzAtMTEgOS0yMCAyMC0yMGwxNiAwYzExIDAgMjAgOSAyMCAyMHM5IDIwIDIwIDIwIDIwLTkgMjAtMjBjMC0zMy4xLTI2LjktNjAtNjAtNjBsLTE2IDBjLTMzLjEgMC02MCAyNi45LTYwIDYwIDAgMTEgOSAyMCAyMCAyMHMyMC05IDIwLTIwek0yMDggMzM2bDAgMzJjMCAyNi41IDIxLjUgNDggNDggNDhzNDgtMjEuNSA0OC00OGwwLTMyYzAtMjYuNS0yMS41LTQ4LTQ4LTQ4cy00OCAyMS41LTQ4IDQ4eiJdfSxuUGU9d08sb1BlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImRvbmctc2lnbiIsaWNvbjpbMzg0LDUxMixbXSwiZTE2OSIsIk0yODgtMTZjLTE3LjcgMC0zMiAxNC4zLTMyIDMybDAgMzItMTA0IDBjLTEzLjMgMC0yNCAxMC43LTI0IDI0czEwLjcgMjQgMjQgMjRsMTA0IDAgMCA3Mi4yYy0yMi45LTE1LjMtNTAuNC0yNC4yLTgwLTI0LjItNzkuNSAwLTE0NCA2NC41LTE0NCAxNDRTOTYuNSA0MzIgMTc2IDQzMmMzMCAwIDU3LjgtOS4xIDgwLjgtMjQuOCAzLjMgMTQuMiAxNiAyNC44IDMxLjIgMjQuOCAxNy43IDAgMzItMTQuMyAzMi0zMmwwLTMwNCA0MCAwYzEzLjMgMCAyNC0xMC43IDI0LTI0cy0xMC43LTI0LTI0LTI0bC00MCAwIDAtMzJjMC0xNy43LTE0LjMtMzItMzItMzJ6TTk2IDI4OGE4MCA4MCAwIDEgMSAxNjAgMCA4MCA4MCAwIDEgMSAtMTYwIDB6TTI0IDQ2NGMtMTMuMyAwLTI0IDEwLjctMjQgMjRzMTAuNyAyNCAyNCAyNGwzMzYgMGMxMy4zIDAgMjQtMTAuNyAyNC0yNHMtMTAuNy0yNC0yNC0yNEwyNCA0NjR6Il19LGxQZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJwZW9wbGUtbGluZSIsaWNvbjpbNTc2LDUxMixbXSwiZTUzNCIsIk0yODggMGE2NCA2NCAwIDEgMSAwIDEyOCA2NCA2NCAwIDEgMSAwLTEyOHptOTYgMzEyYzAgMjUtMTIuNyA0Ny0zMiA1OS45bDAgNDQuMS0xMjggMCAwLTQ0LjFDMjA0LjcgMzU5IDE5MiAzMzcgMTkyIDMxMmwwLTQwYzAtNTMgNDMtOTYgOTYtOTZzOTYgNDMgOTYgOTZsMCA0MHptMTYgMTA0bDAtMjcuM2MxOS45LTIyLjUgMzItNTIuMiAzMi04NC43bDAtMzJjMC0yNi43LTcuMy01MS42LTE5LjktNzMuMSAxMS4xLTQuNSAyMy4yLTYuOSAzNS45LTYuOSA1MyAwIDk2IDQzIDk2IDk2bDAgMzJjMCAyMy43LTEyLjkgNDQuNC0zMiA1NS40bDAgNDAuNi0xMTIgMHpNNjQgMzc1LjRDNDQuOSAzNjQuNCAzMiAzNDMuNyAzMiAzMjBsMC0zMmMwLTUzIDQzLTk2IDk2LTk2IDEyLjcgMCAyNC44IDIuNSAzNS45IDYuOS0xMi42IDIxLjQtMTkuOSA0Ni40LTE5LjkgNzMuMWwwIDMyYzAgMzIuNSAxMi4xIDYyLjEgMzIgODQuN2wwIDI3LjMtMTEyIDAgMC00MC42ek0xMjggMzJhNTYgNTYgMCAxIDEgMCAxMTIgNTYgNTYgMCAxIDEgMC0xMTJ6bTMyMCAwYTU2IDU2IDAgMSAxIDAgMTEyIDU2IDU2IDAgMSAxIDAtMTEyek0yNCA0NjRsNTI4IDBjMTMuMyAwIDI0IDEwLjcgMjQgMjRzLTEwLjcgMjQtMjQgMjRMMjQgNTEyYy0xMy4zIDAtMjQtMTAuNy0yNC0yNHMxMC43LTI0IDI0LTI0eiJdfSxNTz17cHJlZml4OiJmYXMiLGljb25OYW1lOiJzcXVhcmUtcnNzIixpY29uOls0NDgsNTEyLFsicnNzLXNxdWFyZSJdLCJmMTQzIiwiTTY0IDMyQzI4LjcgMzIgMCA2MC43IDAgOTZMMCA0MTZjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMzIwIDBjMzUuMyAwIDY0LTI4LjcgNjQtNjRsMC0zMjBjMC0zNS4zLTI4LjctNjQtNjQtNjRMNjQgMzJ6TTk2IDEzNmMwLTEzLjMgMTAuNy0yNCAyNC0yNCAxMzcgMCAyNDggMTExIDI0OCAyNDggMCAxMy4zLTEwLjcgMjQtMjQgMjRzLTI0LTEwLjctMjQtMjRjMC0xMTAuNS04OS41LTIwMC0yMDAtMjAwLTEzLjMgMC0yNC0xMC43LTI0LTI0em0wIDk2YzAtMTMuMyAxMC43LTI0IDI0LTI0IDgzLjkgMCAxNTIgNjguMSAxNTIgMTUyIDAgMTMuMy0xMC43IDI0LTI0IDI0cy0yNC0xMC43LTI0LTI0YzAtNTcuNC00Ni42LTEwNC0xMDQtMTA0LTEzLjMgMC0yNC0xMC43LTI0LTI0em0wIDEyMGEzMiAzMiAwIDEgMSA2NCAwIDMyIDMyIDAgMSAxIC02NCAweiJdfSxjUGU9TU8sZFBlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImNhbGVuZGFyLW1pbnVzIixpY29uOls0NDgsNTEyLFtdLCJmMjcyIiwiTTEyOCAwYzE3LjcgMCAzMiAxNC4zIDMyIDMybDAgMzIgMTI4IDAgMC0zMmMwLTE3LjcgMTQuMy0zMiAzMi0zMnMzMiAxNC4zIDMyIDMybDAgMzIgMzIgMGMzNS4zIDAgNjQgMjguNyA2NCA2NGwwIDI4OGMwIDM1LjMtMjguNyA2NC02NCA2NEw2NCA0ODBjLTM1LjMgMC02NC0yOC43LTY0LTY0TDAgMTI4QzAgOTIuNyAyOC43IDY0IDY0IDY0bDMyIDAgMC0zMmMwLTE3LjcgMTQuMy0zMiAzMi0zMnptMjQgMjY0Yy0xMy4zIDAtMjQgMTAuNy0yNCAyNHMxMC43IDI0IDI0IDI0bDE0NCAwYzEzLjMgMCAyNC0xMC43IDI0LTI0cy0xMC43LTI0LTI0LTI0bC0xNDQgMHoiXX0saFBlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImNoYXJ0LWRpYWdyYW0iLGljb246WzUxMiw1MTIsW10sImU2OTUiLCJNODAgMzJDNTMuNSAzMiAzMiA1My41IDMyIDgwczIxLjUgNDggNDggNDhsMTUyIDAgMCA0MC00OCA0OC03MiAwYy0zOS44IDAtNzIgMzIuMi03MiA3MmwwIDY0LTggMGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJsMCA2NGMwIDE3LjcgMTQuMyAzMiAzMiAzMmw2NCAwYzE3LjcgMCAzMi0xNC4zIDMyLTMybDAtNjRjMC0xNy43LTE0LjMtMzItMzItMzJsLTggMCAwLTY0YzAtMTMuMyAxMC43LTI0IDI0LTI0bDcyIDAgNDggNDggMCA0MC04IDBjLTE3LjcgMC0zMiAxNC4zLTMyIDMybDAgNjRjMCAxNy43IDE0LjMgMzIgMzIgMzJsNjQgMGMxNy43IDAgMzItMTQuMyAzMi0zMmwwLTY0YzAtMTcuNy0xNC4zLTMyLTMyLTMybC04IDAgMC00MCA0OC00OCA3MiAwYzEzLjMgMCAyNCAxMC43IDI0IDI0bDAgNjQtOCAwYy0xNy43IDAtMzIgMTQuMy0zMiAzMmwwIDY0YzAgMTcuNyAxNC4zIDMyIDMyIDMybDY0IDBjMTcuNyAwIDMyLTE0LjMgMzItMzJsMC02NGMwLTE3LjctMTQuMy0zMi0zMi0zMmwtOCAwIDAtNjRjMC0zOS44LTMyLjItNzItNzItNzJsLTcyIDAtNDgtNDggMC00MCAxNTIgMGMyNi41IDAgNDgtMjEuNSA0OC00OHMtMjEuNS00OC00OC00OEw4MCAzMnoiXX0sek89e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZmFjZS10aXJlZCIsaWNvbjpbNTEyLDUxMixbMTI4NTU1LCJ0aXJlZCJdLCJmNWM4IiwiTTI1NiA1MTJhMjU2IDI1NiAwIDEgMCAwLTUxMiAyNTYgMjU2IDAgMSAwIDAgNTEyek0xNjQuNyAzMjguN2MyMi0yMiA1My45LTQwLjcgOTEuMy00MC43czY5LjMgMTguNyA5MS4zIDQwLjdjMTEuMSAxMS4xIDIwLjEgMjMuNCAyNi40IDM1LjQgNi4yIDExLjcgMTAuMyAyNC40IDEwLjMgMzUuOSAwIDUuMi0yLjYgMTAuMi02LjkgMTMuMnMtOS44IDMuNy0xNC43IDEuOGwtMjAuNS03LjdjLTI2LjktMTAuMS01NS41LTE1LjMtODQuMy0xNS4zbC0zLjIgMGMtMjguOCAwLTU3LjMgNS4yLTg0LjMgMTUuM0wxNDkuNiA0MTVjLTQuOSAxLjgtMTAuNCAxLjItMTQuNy0xLjhTMTI4IDQwNS4yIDEyOCA0MDBjMC0xMS42IDQuMi0yNC4yIDEwLjMtMzUuOSA2LjMtMTIgMTUuMy0yNC4zIDI2LjQtMzUuNHpNMTIyLjYgMTU5LjJjNC41LTYuOCAxMy4zLTkuMiAyMC42LTUuNWw3OS42IDQwYzUuNCAyLjcgOC44IDguMiA4LjggMTQuM3MtMy40IDExLjYtOC44IDE0LjNsLTc5LjYgNDBjLTcuMyAzLjYtMTYuMSAxLjMtMjAuNi01LjVzLTMuMS0xNS45IDMuMS0yMS4xTDE1OSAyMDggMTI1LjggMTgwLjNjLTYuMi01LjItNy42LTE0LjMtMy4xLTIxLjF6bTI2My42IDIxLjFMMzUzIDIwOCAzODYuMiAyMzUuN2M2LjIgNS4yIDcuNiAxNC4zIDMuMSAyMS4xcy0xMy4zIDkuMi0yMC42IDUuNWwtNzkuNi00MGMtNS40LTIuNy04LjgtOC4yLTguOC0xNC4zczMuNC0xMS42IDguOC0xNC4zbDc5LjYtNDBjNy4zLTMuNiAxNi4xLTEuMyAyMC42IDUuNXMzLjEgMTUuOS0zLjEgMjEuMXoiXX0scFBlPXpPLHVQZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJoYW5kLXBvaW50LXJpZ2h0IixpY29uOls1MTIsNTEyLFtdLCJmMGE0IiwiTTQ4MCA5NmMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMmwtMjA4IDAgMC02NCAyMDggMHpNMzIwIDI4OGMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMmwtNjQgMGMtMTcuNyAwLTMyLTE0LjMtMzItMzJzMTQuMy0zMiAzMi0zMmw2NCAwem02NC02NGMwIDE3LjctMTQuMyAzMi0zMiAzMmwtNDggMGMtMTcuNyAwLTMyLTE0LjMtMzItMzJzMTQuMy0zMiAzMi0zMmw0OCAwYzE3LjcgMCAzMiAxNC4zIDMyIDMyek0yODggMzg0YzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMybC02NCAwYy0xNy43IDAtMzItMTQuMy0zMi0zMnMxNC4zLTMyIDMyLTMybDY0IDB6bS04OC05NmwuNiAwYy01LjQgOS40LTguNiAyMC4zLTguNiAzMiAwIDEzLjIgNCAyNS40IDEwLjggMzUuNi0yNC45IDguNy00Mi44IDMyLjUtNDIuOCA2MC40IDAgMTEuNyAzLjEgMjIuNiA4LjYgMzJsLTguNiAwQzcxLjYgNDQ4IDAgMzc2LjQgMCAyODhsMC02MS43YzAtNDIuNCAxNi45LTgzLjEgNDYuOS0xMTMuMWwxMS42LTExLjZDODIuNSA3Ny41IDExNS4xIDY0IDE0OSA2NGwyNyAwYzM1LjMgMCA2NCAyOC43IDY0IDY0bDAgODhjMCAyMi4xLTE3LjkgNDAtNDAgNDBzLTQwLTE3LjktNDAtNDBsMC01NmMwLTguOC03LjItMTYtMTYtMTZzLTE2IDcuMi0xNiAxNmwwIDU2YzAgMzkuOCAzMi4yIDcyIDcyIDcyeiJdfSxmUGU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiYXJyb3ctdXAiLGljb246WzM4NCw1MTIsWzg1OTNdLCJmMDYyIiwiTTIxNC42IDkuNGMtMTIuNS0xMi41LTMyLjgtMTIuNS00NS4zIDBsLTE2MCAxNjBjLTEyLjUgMTIuNS0xMi41IDMyLjggMCA0NS4zczMyLjggMTIuNSA0NS4zIDBMMTYwIDEwOS4zIDE2MCA0ODBjMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMmwwLTM3MC43IDEwNS40IDEwNS40YzEyLjUgMTIuNSAzMi44IDEyLjUgNDUuMyAwczEyLjUtMzIuOCAwLTQ1LjNsLTE2MC0xNjB6Il19LG1QZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJjdWJlcy1zdGFja2VkIixpY29uOls1MTIsNTEyLFtdLCJlNGU2IiwiTTE5MiAzMmMwLTE3LjcgMTQuMy0zMiAzMi0zMmw2NCAwYzE3LjcgMCAzMiAxNC4zIDMyIDMybDAgNjRjMCAxNy43LTE0LjMgMzItMzIgMzJsLTY0IDBjLTE3LjcgMC0zMi0xNC4zLTMyLTMybDAtNjR6bTMyIDM1Mmw2NCAwYzE3LjcgMCAzMiAxNC4zIDMyIDMybDAgNjRjMCAxNy43LTE0LjMgMzItMzIgMzJsLTY0IDBjLTE3LjcgMC0zMi0xNC4zLTMyLTMybDAtNjRjMC0xNy43IDE0LjMtMzIgMzItMzJ6bTE5MiAwbDY0IDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJsMCA2NGMwIDE3LjctMTQuMyAzMi0zMiAzMmwtNjQgMGMtMTcuNyAwLTMyLTE0LjMtMzItMzJsMC02NGMwLTE3LjcgMTQuMy0zMiAzMi0zMnpNMzIwIDE5Mmw2NCAwYzE3LjcgMCAzMiAxNC4zIDMyIDMybDAgNjRjMCAxNy43LTE0LjMgMzItMzIgMzJsLTY0IDBjLTE3LjcgMC0zMi0xNC4zLTMyLTMybDAtNjRjMC0xNy43IDE0LjMtMzIgMzItMzJ6bS0xODIuNi0zLjljMTIuNS0xMi41IDMyLjgtMTIuNSA0NS4zIDBsNDUuMyA0NS4zYzEyLjUgMTIuNSAxMi41IDMyLjggMCA0NS4zbC00NS4zIDQ1LjNjLTEyLjUgMTIuNS0zMi44IDEyLjUtNDUuMyAwTDkyLjEgMjc4LjZjLTEyLjUtMTIuNS0xMi41LTMyLjggMC00NS4zbDQ1LjMtNDUuM3pNMzIgMzg0bDY0IDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJsMCA2NGMwIDE3LjctMTQuMyAzMi0zMiAzMmwtNjQgMGMtMTcuNyAwLTMyLTE0LjMtMzItMzJsMC02NGMwLTE3LjcgMTQuMy0zMiAzMi0zMnoiXX0sa089e3ByZWZpeDoiZmFzIixpY29uTmFtZToiY2hpbGQtY29tYmF0YW50IixpY29uOls1NzYsNTEyLFsiY2hpbGQtcmlmbGUiXSwiZTRlMCIsIk0xNzYuNSAxMjhhNjQgNjQgMCAxIDAgMC0xMjggNjQgNjQgMCAxIDAgMCAxMjh6bS0xNiAzNTJsMC05NiAzMiAwIDAgOTZjMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMmwwLTE5Mi4yIDIwLjkgMzMuMmM5LjQgMTUgMjkuMiAxOS40IDQ0LjEgMTBzMTkuNC0yOS4yIDEwLTQ0LjFsLTM5LjktNjMuM0MyNjYuOCAxODQgMjIzLjMgMTYwIDE3Ni41IDE2MFM4Ni4yIDE4NCA2MS4zIDIyMy42TDIxLjQgMjg3Yy05LjQgMTUtNC45IDM0LjcgMTAgNDQuMXMzNC43IDQuOSA0NC4xLTEwbDIwLjktMzMuMiAwIDE5Mi4yYzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJ6TTQ0OC41IDBsLTMyIDBjLTguOCAwLTE2IDcuMi0xNiAxNnM3LjIgMTYgMTYgMTZsMCAxMDAuM2MtOS42IDUuNS0xNiAxNS45LTE2IDI3LjdsMCAzMmMtMTcuNyAwLTMyIDE0LjMtMzIgMzJsMCAxNDRjMCAxNy43IDE0LjMgMzIgMzIgMzJsMTYgMCAwIDk2YzAgOC44IDcuMiAxNiAxNiAxNmw1OS41IDBjMTAuNCAwIDE4LTkuOCAxNS41LTE5LjlsLTIzLTkyLjEgNDQgMGM4LjggMCAxNi03LjIgMTYtMTZsMC0xNmMwLTguOC03LjItMTYtMTYtMTZsLTQ4IDAgMC0yNi43IDUzLjEtMTcuN2M2LjUtMi4yIDEwLjktOC4zIDEwLjktMTUuMmwwLTg0LjVjMC04LjgtNy4yLTE2LTE2LTE2bC0xNiAwYy04LjggMC0xNiA3LjItMTYgMTZsMCA1Ni0xNiA1LjMgMC0xMDkuM2MwLTExLjgtNi40LTIyLjItMTYtMjcuN2wwLTExNi4zYzAtOC44LTcuMi0xNi0xNi0xNnoiXX0sZ1BlPWtPLGJQZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJ2ZXN0LXBhdGNoZXMiLGljb246WzQ0OCw1MTIsW10sImUwODYiLCJNMjAwIDI5My45TDIwMCA0NjRjMCAyNi41LTIxLjUgNDgtNDggNDhMNDggNTEyYy0yNi41IDAtNDgtMjEuNS00OC00OEwwIDI3MC41YzAtOS41IDIuOC0xOC43IDguMS0yNi42bDQ3LjktNzEuOGM1LjMtNy45IDguMS0xNy4xIDguMS0yNi42TDY0IDQ4QzY0IDIxLjUgODUuNSAwIDExMiAwbDMuNSAwYy4zIDAgLjYgMCAxIDAgLjYgMCAxLjIgMCAxLjggMCAxOC44IDAgMzQuMSA5LjcgNDQuMSAxOC44IDkuMyA4LjQgMjguNSAyMS4yIDYxLjcgMjEuMnM1Mi40LTEyLjggNjEuNy0yMS4yYzEwLTkuMSAyNS4zLTE4LjggNDQuMS0xOC44IC42IDAgMS4yIDAgMS44IDAgLjMgMCAuNiAwIDEgMEwzMzYgMGMyNi41IDAgNDggMjEuNSA0OCA0OGwwIDk3LjVjMCA5LjUgMi44IDE4LjcgOC4xIDI2LjZsNDcuOSA3MS44YzUuMyA3LjkgOC4xIDE3LjEgOC4xIDI2LjZMNDQ4IDQ2NGMwIDI2LjUtMjEuNSA0OC00OCA0OGwtMTA0IDBjLTI2LjUgMC00OC0yMS41LTQ4LTQ4bDAtMTcwLjFjMC0zLjkgLjUtNy44IDEuNC0xMS42TDMwMy42IDY1LjRDMjg1LjkgNzcuMiAyNTkuOCA4OCAyMjQgODhzLTYxLjktMTAuOC03OS42LTIyLjZsNTQuMiAyMTYuOGMxIDMuOCAxLjQgNy43IDEuNCAxMS42ek05NiA0NTZhNDAgNDAgMCAxIDAgMC04MCA0MCA0MCAwIDEgMCAwIDgwek02My41IDI1NS41Yy00LjcgNC43LTQuNyAxMi4zIDAgMTdMNzkgMjg4IDYzLjUgMzAzLjVjLTQuNyA0LjctNC43IDEyLjMgMCAxN3MxMi4zIDQuNyAxNyAwTDk2IDMwNSAxMTEuNSAzMjAuNWM0LjcgNC43IDEyLjMgNC43IDE3IDBzNC43LTEyLjMgMC0xN0wxMTMgMjg4IDEyOC41IDI3Mi41YzQuNy00LjcgNC43LTEyLjMgMC0xN3MtMTIuMy00LjctMTcgMEw5NiAyNzEgODAuNSAyNTUuNWMtNC43LTQuNy0xMi4zLTQuNy0xNyAwek0zMDQgMjgwbDAgNDBjMCA4LjggNy4yIDE2IDE2IDE2bDQwIDBjMTMuMyAwIDI0LTEwLjcgMjQtMjRzLTEwLjctMjQtMjQtMjRsLTggMCAwLThjMC0xMy4zLTEwLjctMjQtMjQtMjRzLTI0IDEwLjctMjQgMjR6Il19LFNPPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6Im1hcnRpbmktZ2xhc3MtZW1wdHkiLGljb246WzUxMiw1MTIsWyJnbGFzcy1tYXJ0aW5pIl0sImYwMDAiLCJNMzIgMzJDMTkuMSAzMiA3LjQgMzkuOCAyLjQgNTEuOFMuMiA3Ny41IDkuNCA4Ni42bDIxNC42IDIxNC42IDAgMTQ2LjctNjQgMGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJzMTQuMyAzMiAzMiAzMmwxOTIgMGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMmwtNjQgMCAwLTE0Ni43IDIxNC42LTIxNC42YzkuMi05LjIgMTEuOS0yMi45IDYuOS0zNC45UzQ5Mi45IDMyIDQ4MCAzMkwzMiAzMnpNMjU2IDI0Mi43TDEwOS4zIDk2IDQwMi43IDk2IDI1NiAyNDIuN3oiXX0sdlBlPVNPLHlQZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJtYWduZXQiLGljb246WzQ0OCw1MTIsWzEyOTUyMl0sImYwNzYiLCJNMCAxNzZMMCAyODhDMCA0MTEuNyAxMDAuMyA1MTIgMjI0IDUxMlM0NDggNDExLjcgNDQ4IDI4OGwwLTExMi0xMjggMCAwIDExMmMwIDUzLTQzIDk2LTk2IDk2cy05Ni00My05Ni05NmwwLTExMi0xMjggMHptMC00OGwxMjggMCAwLTY0YzAtMTcuNy0xNC4zLTMyLTMyLTMyTDMyIDMyQzE0LjMgMzIgMCA0Ni4zIDAgNjRsMCA2NHptMzIwIDBsMTI4IDAgMC02NGMwLTE3LjctMTQuMy0zMi0zMi0zMmwtNjQgMGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJsMCA2NHoiXX0seFBlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InJvYWQtYmFycmllciIsaWNvbjpbNjQwLDUxMixbXSwiZTU2MiIsIk0zMiAzMkMxNC4zIDMyIDAgNDYuMyAwIDY0TDAgNDQ4YzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJMNjQgMjY2LjMgMTQ5LjIgOTYgNjQgOTYgNjQgNjRjMC0xNy43LTE0LjMtMzItMzItMzJ6TTQwNS4yIDk2bC03NC4zIDAtNS40IDEwLjctOTAuNiAxODEuMyA3NC4zIDAgNS40LTEwLjcgOTAuNi0xODEuM3pNMzYyLjggMjg4bDc0LjMgMCA1LjQtMTAuNyA5MC42LTE4MS4zLTc0LjMgMC01LjQgMTAuNy05MC42IDE4MS4zek0yMDIuOCA5NmwtNS40IDEwLjctOTAuNiAxODEuMyA3NC4zIDAgNS40LTEwLjcgOTAuNi0xODEuMy03NC4zIDB6bTI4OCAxOTJsODUuMiAwIDAgMTYwYzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJsMC0zODRjMC0xNy43LTE0LjMtMzItMzItMzJzLTMyIDE0LjMtMzIgMzJsMCA1My43LTg1LjIgMTcwLjN6Il19LENPPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImNvbXBhc3MtZHJhZnRpbmciLGljb246WzUxMiw1MTIsWyJkcmFmdGluZy1jb21wYXNzIl0sImY1NjgiLCJNOTkuMyAyNTYuMWw2OS40LTExOS45Yy01LjYtMTIuMi04LjgtMjUuOC04LjgtNDAuMiAwLTUzIDQzLTk2IDk2LTk2czk2IDQzIDk2IDk2YzAgMTQuMy0zLjEgMjcuOS04LjggNDAuMmw0NC40IDc2LjdjLTIzLjEgMjYtNTMuNyA0NS4xLTg4LjQgNTMuOEwyNTYgMTkxLjkgMTg3LjkgMzA5LjVjMjEuNSA2LjggNDQuMyAxMC41IDY4LjEgMTAuNSA3MC43IDAgMTMzLjgtMzIuNyAxNzQuOS04NCAxMS4xLTEzLjggMzEuMi0xNiA0NS01czE2IDMxLjIgNSA0NWMtNTIuNyA2NS44LTEzMy45IDEwOC0yMjQuOCAxMDgtMzUuNCAwLTY5LjQtNi40LTEwMC43LTE4LjFMOTguNyA0NjMuN0M5NCA0NzEuOCA4NyA0NzguNCA3OC42IDQ4Mi42TDIzLjIgNTEwLjNjLTUgMi41LTEwLjkgMi4yLTE1LjYtLjdTMCA1MDEuNSAwIDQ5NmwwLTU1LjRjMC04LjQgMi4yLTE2LjcgNi41LTI0LjFsNjAtMTAzLjdjLTEyLjgtMTEuMi0yNC42LTIzLjUtMzUuMy0zNi44LTExLjEtMTMuOC04LjgtMzMuOSA1LTQ1czMzLjktOC44IDQ1IDVjNS43IDcuMSAxMS44IDEzLjggMTguMiAyMC4xek0zODEuMSA0MDcuOWMzMi41LTEzIDYyLjQtMzEgODguOS01Mi45bDM1LjYgNjEuNWM0LjIgNy4zIDYuNSAxNS42IDYuNSAyNC4xbDAgNTUuNGMwIDUuNS0yLjkgMTAuNy03LjYgMTMuNnMtMTAuNiAzLjItMTUuNiAuN2wtNTUuNC0yNy43Yy04LjQtNC4yLTE1LjQtMTAuOC0yMC4xLTE4LjlsLTMyLjMtNTUuOHpNMjU2IDEyOGEzMiAzMiAwIDEgMCAwLTY0IDMyIDMyIDAgMSAwIDAgNjR6Il19LHdQZT1DTyxNUGU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToic3F1YXJlLXBlcnNvbi1jb25maW5lZCIsaWNvbjpbNDQ4LDUxMixbXSwiZTU3NyIsIk02NCAzMkMyOC43IDMyIDAgNjAuNyAwIDk2TDAgNDE2YzAgMzUuMyAyOC43IDY0IDY0IDY0bDMyMCAwYzM1LjMgMCA2NC0yOC43IDY0LTY0bDAtMzIwYzAtMzUuMy0yOC43LTY0LTY0LTY0TDY0IDMyem05NiAxMTJhNDggNDggMCAxIDEgOTYgMCA0OCA0OCAwIDEgMSAtOTYgMHptODAgMTA0YzAtMzAuOSAyNS4xLTU2IDU2LTU2czU2IDI1LjEgNTYgNTZsMCAxMDIuMWMwIDM2LjQtMjkuNSA2NS45LTY1LjkgNjUuOS0xNy41IDAtMzQuMy02LjktNDYuNi0xOS4zbC01NC43LTU0LjctMjguMSA1Ni4zYy03LjkgMTUuOC0yNy4xIDIyLjItNDIuOSAxNC4zcy0yMi4yLTI3LjEtMTQuMy00Mi45bDQ4LTk2YzQuNi05LjIgMTMuMy0xNS42IDIzLjUtMTcuM3MyMC41IDEuNyAyNy44IDlsNDEuNCA0MS40IDAtNTguN3oiXX0selBlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InBsYXRlLXdoZWF0IixpY29uOls1MTIsNTEyLFtdLCJlNTVhIiwiTTE3NiAzMmM0NC4yIDAgODAgMzUuOCA4MCA4MGwwIDE2YzAgOC44LTcuMiAxNi0xNiAxNi00NC4yIDAtODAtMzUuOC04MC04MGwwLTE2YzAtOC44IDcuMi0xNiAxNi0xNnpNNTYgNjRsNDggMGMxMy4zIDAgMjQgMTAuNyAyNCAyNHMtMTAuNyAyNC0yNCAyNGwtNDggMGMtMTMuMyAwLTI0LTEwLjctMjQtMjRTNDIuNyA2NCA1NiA2NHpNMjQgMTM2bDExMiAwYzEzLjMgMCAyNCAxMC43IDI0IDI0cy0xMC43IDI0LTI0IDI0TDI0IDE4NGMtMTMuMyAwLTI0LTEwLjctMjQtMjRzMTAuNy0yNCAyNC0yNHptOCA5NmMwLTEzLjMgMTAuNy0yNCAyNC0yNGw0OCAwYzEzLjMgMCAyNCAxMC43IDI0IDI0cy0xMC43IDI0LTI0IDI0bC00OCAwYy0xMy4zIDAtMjQtMTAuNy0yNC0yNHpNMjcyIDQ4YzAtOC44IDcuMi0xNiAxNi0xNiA0NC4yIDAgODAgMzUuOCA4MCA4MGwwIDE2YzAgOC44LTcuMiAxNi0xNiAxNi00NC4yIDAtODAtMzUuOC04MC04MGwwLTE2ek00MDAgMzJjNDQuMiAwIDgwIDM1LjggODAgODBsMCAxNmMwIDguOC03LjIgMTYtMTYgMTYtNDQuMiAwLTgwLTM1LjgtODAtODBsMC0xNmMwLTguOCA3LjItMTYgMTYtMTZ6bTgwIDE2MGwwIDE2YzAgNDQuMi0zNS44IDgwLTgwIDgwLTguOCAwLTE2LTcuMi0xNi0xNmwwLTE2YzAtNDQuMiAzNS44LTgwIDgwLTgwIDguOCAwIDE2IDcuMiAxNiAxNnpNMzUyIDE3NmM4LjggMCAxNiA3LjIgMTYgMTZsMCAxNmMwIDQ0LjItMzUuOCA4MC04MCA4MC04LjggMC0xNi03LjItMTYtMTZsMC0xNmMwLTQ0LjIgMzUuOC04MCA4MC04MHptLTk2IDE2bDAgMTZjMCA0NC4yLTM1LjggODAtODAgODAtOC44IDAtMTYtNy4yLTE2LTE2bDAtMTZjMC00NC4yIDM1LjgtODAgODAtODAgOC44IDAgMTYgNy4yIDE2IDE2ek0zLjUgMzQ3LjZDMS42IDMzMi45IDEzIDMyMCAyNy44IDMyMGw0NTYuNCAwYzE0LjggMCAyNi4yIDEyLjkgMjQuNCAyNy42LTYuMyA1MC4yLTQ0LjQgODkuNC05Mi42IDk4LjRsMCAyYzAgMTcuNy0xNC4zIDMyLTMyIDMybC0yNTYgMGMtMTcuNyAwLTMyLTE0LjMtMzItMzJsMC0yYy00OC4yLTktODYuMy00OC4yLTkyLjUtOTguNHoiXX0sX089e3ByZWZpeDoiZmFzIixpY29uTmFtZToic2lnbi1oYW5naW5nIixpY29uOls1MTIsNTEyLFsic2lnbiJdLCJmNGQ5IiwiTTk2IDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJsMCAzMiAzNTIgMGMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMmwtMzUyIDAgMCAzNTJjMCAxNy43LTE0LjMgMzItMzIgMzJzLTMyLTE0LjMtMzItMzJsMC0zNTItMzIgMEMxNC4zIDEyOCAwIDExMy43IDAgOTZTMTQuMyA2NCAzMiA2NGwzMiAwIDAtMzJDNjQgMTQuMyA3OC4zIDAgOTYgMHpNMjA4IDE3NmwyNDAgMGMxNy43IDAgMzIgMTQuMyAzMiAzMmwwIDE0NGMwIDE3LjctMTQuMyAzMi0zMiAzMmwtMjQwIDBjLTE3LjcgMC0zMi0xNC4zLTMyLTMybDAtMTQ0YzAtMTcuNyAxNC4zLTMyIDMyLTMyeiJdfSxrUGU9X08sVE89e3ByZWZpeDoiZmFzIixpY29uTmFtZToiY2FyLWJhdHRlcnkiLGljb246WzUxMiw1MTIsWyJiYXR0ZXJ5LWNhciJdLCJmNWRmIiwiTTgwIDY0YzAtMTcuNyAxNC4zLTMyIDMyLTMybDY0IDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJsOTYgMGMwLTE3LjcgMTQuMy0zMiAzMi0zMmw2NCAwYzE3LjcgMCAzMiAxNC4zIDMyIDMybDE2IDBjMzUuMyAwIDY0IDI4LjcgNjQgNjRsMCAyNTZjMCAzNS4zLTI4LjcgNjQtNjQgNjRMNjQgNDQ4Yy0zNS4zIDAtNjQtMjguNy02NC02NEwwIDEyOEMwIDkyLjcgMjguNyA2NCA2NCA2NGwxNiAwek0zOTIgMTg0YzAtMTMuMy0xMC43LTI0LTI0LTI0cy0yNCAxMC43LTI0IDI0bDAgMzItMzIgMGMtMTMuMyAwLTI0IDEwLjctMjQgMjRzMTAuNyAyNCAyNCAyNGwzMiAwIDAgMzJjMCAxMy4zIDEwLjcgMjQgMjQgMjRzMjQtMTAuNyAyNC0yNGwwLTMyIDMyIDBjMTMuMyAwIDI0LTEwLjcgMjQtMjRzLTEwLjctMjQtMjQtMjRsLTMyIDAgMC0zMnpNNjQgMjQwYzAgMTMuMyAxMC43IDI0IDI0IDI0bDExMiAwYzEzLjMgMCAyNC0xMC43IDI0LTI0cy0xMC43LTI0LTI0LTI0TDg4IDIxNmMtMTMuMyAwLTI0IDEwLjctMjQgMjR6Il19LFNQZT1UTyxnbT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJzaGlydCIsaWNvbjpbNjQwLDUxMixbMTI4MDg1LCJ0LXNoaXJ0IiwidHNoaXJ0Il0sImY1NTMiLCJNMzIwLjIgMTEyYzQ0LjIgMCA4MC0zNS44IDgwLTgwbDUzLjUgMGMxNyAwIDMzLjMgNi43IDQ1LjMgMTguN0w2MTcuNiAxNjkuNGMxMi41IDEyLjUgMTIuNSAzMi44IDAgNDUuM2wtNTAuNyA1MC43Yy0xMi41IDEyLjUtMzIuOCAxMi41LTQ1LjMgMGwtNDEuNC00MS40IDAgMjI0YzAgMzUuMy0yOC43IDY0LTY0IDY0bC0xOTIgMGMtMzUuMyAwLTY0LTI4LjctNjQtNjRsMC0yMjQtNDEuNCA0MS40Yy0xMi41IDEyLjUtMzIuOCAxMi41LTQ1LjMgMEwyMi45IDIxNC42Yy0xMi41LTEyLjUtMTIuNS0zMi44IDAtNDUuM0wxNDEuNSA1MC43YzEyLTEyIDI4LjMtMTguNyA0NS4zLTE4LjdsNTMuNSAwYzAgNDQuMiAzNS44IDgwIDgwIDgweiJdfSxDUGU9Z20sX1BlPWdtLFRQZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJwYXJhZ3JhcGgiLGljb246WzQ0OCw1MTIsWzE4Ml0sImYxZGQiLCJNMTYwIDBMNDE2IDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJsLTMyIDAgMCA0MTZjMCAxNy43LTE0LjMgMzItMzIgMzJzLTMyLTE0LjMtMzItMzJsMC00MTYtNDggMCAwIDQxNmMwIDE3LjctMTQuMyAzMi0zMiAzMnMtMzItMTQuMy0zMi0zMmwwLTE2MC00OCAwQzcxLjYgMzIwIDAgMjQ4LjQgMCAxNjBTNzEuNiAwIDE2MCAweiJdfSxMTz17cHJlZml4OiJmYXMiLGljb25OYW1lOiJlbnZlbG9wZXMtYnVsayIsaWNvbjpbNTc2LDUxMixbIm1haWwtYnVsayJdLCJmNjc0IiwiTTExMiAwQzg1LjUgMCA2NCAyMS41IDY0IDQ4bDAgMTYwIDgwIDAgMC0zMmMwLTUzIDQzLTk2IDk2LTk2bDIwOCAwIDAtMzJjMC0yNi41LTIxLjUtNDgtNDgtNDhMMTEyIDB6TTI0MCAxMjhjLTI2LjUgMC00OCAyMS41LTQ4IDQ4bDAgMzIgODAgMGM1MyAwIDk2IDQzIDk2IDk2bDAgMTEyIDE2MCAwYzI2LjUgMCA0OC0yMS41IDQ4LTQ4bDAtMTkyYzAtMjYuNS0yMS41LTQ4LTQ4LTQ4bC0yODggMHptMjAwIDY0bDQ4IDBjMTMuMyAwIDI0IDEwLjcgMjQgMjRsMCA0OGMwIDEzLjMtMTAuNyAyNC0yNCAyNGwtNDggMGMtMTMuMyAwLTI0LTEwLjctMjQtMjRsMC00OGMwLTEzLjMgMTAuNy0yNCAyNC0yNHpNNDggMjU2Yy0yNi41IDAtNDggMjEuNS00OCA0OGwwIDEwLjQgMTU2LjYgODYuMmMxLjEgLjYgMi4yIC45IDMuNCAuOXMyLjQtLjMgMy40LS45TDMyMCAzMTQuNCAzMjAgMzA0YzAtMjYuNS0yMS41LTQ4LTQ4LTQ4TDQ4IDI1NnpNMzIwIDM2OS4yTDE4Ni42IDQ0Mi42Yy04LjEgNC41LTE3LjMgNi44LTI2LjYgNi44cy0xOC40LTIuNC0yNi42LTYuOEwwIDM2OS4yIDAgNDY0YzAgMjYuNSAyMS41IDQ4IDQ4IDQ4bDIyNCAwYzI2LjUgMCA0OC0yMS41IDQ4LTQ4bDAtOTQuOHoiXX0sTFBlPUxPLCRQZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJndWl0YXIiLGljb246WzUxMiw1MTIsW10sImY3YTYiLCJNNDY1IDdjLTkuNC05LjQtMjQuNi05LjQtMzMuOSAwTDM4MyA1NWMtMi40IDIuNC00LjMgNS4zLTUuNSA4LjVsLTE1LjQgNDEtNzcuNSA3Ny42Yy00NS4xLTI5LjQtOTkuMy0zMC4yLTEzMSAxLjYtMTEgMTEtMTggMjQuNi0yMS40IDM5LjYtMy43IDE2LjYtMTkuMSAzMC43LTM2LjEgMzEuNi0yNS42IDEuMy00OS4zIDEwLjctNjcuMyAyOC42LTQ0LjggNDQuOC0zNi40IDEyNS44IDE4LjcgMTgwLjlTMTgzLjYgNTI4IDIyOC40IDQ4My4yYzE3LjktMTcuOSAyNy40LTQxLjcgMjguNi02Ny4zIC45LTE3IDE1LTMyLjMgMzEuNi0zNi4xIDE1LTMuNCAyOC42LTEwLjUgMzkuNi0yMS40IDMxLjgtMzEuOCAzMS04NS45IDEuNi0xMzFsNzcuNi03Ny42IDQxLTE1LjRjMy4yLTEuMiA2LjEtMy4xIDguNS01LjVsNDgtNDhjOS40LTkuNCA5LjQtMjQuNiAwLTMzLjlMNDY1IDd6TTIwOCAyNTZhNDggNDggMCAxIDEgMCA5NiA0OCA0OCAwIDEgMSAwLTk2eiJdfSxBUGU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToic3VpdGNhc2UiLGljb246WzUxMiw1MTIsWzEyOTUyM10sImYwZjIiLCJNMjAwIDQ4bDExMiAwYzQuNCAwIDggMy42IDggOGwwIDQwLTEyOCAwIDAtNDBjMC00LjQgMy42LTggOC04em0tNTYgOGwwIDQyNCAyMjQgMCAwLTQyNGMwLTMwLjktMjUuMS01Ni01Ni01NkwyMDAgMGMtMzAuOSAwLTU2IDI1LjEtNTYgNTZ6TTQxNiA5NmwwIDM4NCAzMiAwYzM1LjMgMCA2NC0yOC43IDY0LTY0bDAtMjU2YzAtMzUuMy0yOC43LTY0LTY0LTY0bC0zMiAwek05NiA0ODBsMC0zODQtMzIgMEMyOC43IDk2IDAgMTI0LjcgMCAxNjBMMCA0MTZjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMzIgMHoiXX0sJE89e3ByZWZpeDoiZmFzIixpY29uTmFtZToiY2lyY2xlLXVwIixpY29uOls1MTIsNTEyLFs2MTQ2NywiYXJyb3ctYWx0LWNpcmNsZS11cCJdLCJmMzViIiwiTTI1NiA1MTJhMjU2IDI1NiAwIDEgMCAwLTUxMiAyNTYgMjU2IDAgMSAwIDAgNTEyem0xMS4zLTM4Ny4zbDEwNCAxMDRjNC42IDQuNiA1LjkgMTEuNSAzLjUgMTcuNFMzNjYuNSAyNTYgMzYwIDI1NmwtNTYgMCAwIDk2YzAgMTcuNy0xNC4zIDMyLTMyIDMybC0zMiAwYy0xNy43IDAtMzItMTQuMy0zMi0zMmwwLTk2LTU2IDBjLTYuNSAwLTEyLjMtMy45LTE0LjgtOS45cy0xLjEtMTIuOSAzLjUtMTcuNGwxMDQtMTA0YzYuMi02LjIgMTYuNC02LjIgMjIuNiAweiJdfSxEUGU9JE8sRVBlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImYiLGljb246WzMyMCw1MTIsWzEwMl0sIjQ2IiwiTTMyIDMyQzE0LjMgMzIgMCA0Ni4zIDAgNjRMMCA0NDhjMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMmwwLTE2MCAxNjAgMGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMmwtMTYwIDAgMC0xMjggMjI0IDBjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJMMzIgMzJ6Il19LFBQZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJ4bWFya3MtbGluZXMiLGljb246WzY0MCw1MTIsW10sImU1OWEiLCJNMzIgMzJDMTQuMyAzMiAwIDQ2LjMgMCA2NFMxNC4zIDk2IDMyIDk2bDU3NiAwYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMyTDMyIDMyem0wIDM4NGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJzMTQuMyAzMiAzMiAzMmw1NzYgMGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMkwzMiA0MTZ6TTcgMTY3Yy05LjQgOS40LTkuNCAyNC42IDAgMzMuOWw1NSA1NS01NSA1NWMtOS40IDkuNC05LjQgMjQuNiAwIDMzLjlzMjQuNiA5LjQgMzMuOSAwbDU1LTU1IDU1IDU1YzkuNCA5LjQgMjQuNiA5LjQgMzMuOSAwczkuNC0yNC42IDAtMzMuOWwtNTUtNTUgNTUtNTVjOS40LTkuNCA5LjQtMjQuNiAwLTMzLjlzLTI0LjYtOS40LTMzLjkgMGwtNTUgNTUtNTUtNTVjLTkuNC05LjQtMjQuNi05LjQtMzMuOSAwek0yNjUgMTY3Yy05LjQtOS40LTI0LjYtOS40LTMzLjkgMHMtOS40IDI0LjYgMCAzMy45bDU1IDU1LTU1IDU1Yy05LjQgOS40LTkuNCAyNC42IDAgMzMuOXMyNC42IDkuNCAzMy45IDBsNTUtNTUgNTUgNTVjOS40IDkuNCAyNC42IDkuNCAzMy45IDBzOS40LTI0LjYgMC0zMy45bC01NS01NSA1NS01NWM5LjQtOS40IDkuNC0yNC42IDAtMzMuOXMtMjQuNi05LjQtMzMuOSAwbC01NSA1NS01NS01NXpNNDU1IDE2N2MtOS40IDkuNC05LjQgMjQuNiAwIDMzLjlsNTUgNTUtNTUgNTVjLTkuNCA5LjQtOS40IDI0LjYgMCAzMy45czI0LjYgOS40IDMzLjkgMGw1NS01NSA1NSA1NWM5LjQgOS40IDI0LjYgOS40IDMzLjkgMHM5LjQtMjQuNiAwLTMzLjlsLTU1LTU1IDU1LTU1YzkuNC05LjQgOS40LTI0LjYgMC0zMy45cy0yNC42LTkuNC0zMy45IDBsLTU1IDU1LTU1LTU1Yy05LjQtOS40LTI0LjYtOS40LTMzLjkgMHoiXX0sQU89e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZWFydGgtb2NlYW5pYSIsaWNvbjpbNTEyLDUxMixbImdsb2JlLW9jZWFuaWEiXSwiZTQ3YiIsIk0yNTYgNTEyYTI1NiAyNTYgMCAxIDAgMC01MTIgMjU2IDI1NiAwIDEgMCAwIDUxMnpNMTkyIDE1MC42YzAtMTIuNSAxMC4xLTIyLjYgMjIuNi0yMi42bDQxLjQgMGMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMmwtMTguNyAwYy04LjUgMC0xNi42LTMuNC0yMi42LTkuNGwtMTYtMTZjLTQuMi00LjItNi42LTEwLTYuNi0xNnpNNDMyIDI1NmM4LjggMCAxNiA3LjIgMTYgMTZsMCAzMmMwIDguOC03LjIgMTYtMTYgMTZzLTE2LTcuMi0xNi0xNmwwLTMyYzAtOC44IDcuMi0xNiAxNi0xNnpNNDExLjMgMzc5LjNsLTMyIDMyYy02LjIgNi4yLTE2LjQgNi4yLTIyLjYgMHMtNi4yLTE2LjQgMC0yMi42bDMyLTMyYzYuMi02LjIgMTYuNC02LjIgMjIuNiAwczYuMiAxNi40IDAgMjIuNnpNMjI0IDQzMmMwLTguOCA3LjItMTYgMTYtMTZsMzIgMGM4LjggMCAxNiA3LjIgMTYgMTZzLTcuMiAxNi0xNiAxNmwtMzIgMGMtOC44IDAtMTYtNy4yLTE2LTE2em0tOTYtODBjLTE3LjcgMC0zMi0xNC4zLTMyLTMybDAtMTguN2MwLTguNSAzLjQtMTYuNiA5LjQtMjIuNmw0OC00OGM0LjItNC4yIDEwLTYuNiAxNi02LjZsNi42IDBjOC44IDAgMTYgNy4yIDE2IDE2czcuMiAxNiAxNiAxNiAxNi03LjIgMTYtMTYgNy4yLTE2IDE2LTE2bDYuNiAwYzYgMCAxMS44IDIuNCAxNiA2LjZsNDggNDhjNiA2IDkuNCAxNC4xIDkuNCAyMi42bDAgNTAuN2MwIDE3LjctMTQuMyAzMi0zMiAzMmwtNTAuNyAwYy04LjUgMC0xNi42LTMuNC0yMi42LTkuNGwtMTMuMy0xMy4zYy02LTYtMTQuMS05LjQtMjIuNi05LjRMMTI4IDM1MnoiXX0sSVBlPUFPLE5QZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJjb21tZW50LXNsYXNoIixpY29uOls1NzYsNTEyLFtdLCJmNGIzIiwiTTQxLTI1QzMxLjYtMzQuMyAxNi40LTM0LjMgNy0yNVMtMi4zLS40IDcgOUw1MzUgNTM3YzkuNCA5LjQgMjQuNiA5LjQgMzMuOSAwczkuNC0yNC42IDAtMzMuOWwtOTYuNi05Ni42YzQ0LjQtNDMuMiA3MS42LTEwMS44IDcxLjYtMTY2LjUgMC0xMzIuNS0xMTQuNi0yNDAtMjU2LTI0MC02MyAwLTEyMC44IDIxLjQtMTY1LjQgNTYuOEw0MS0yNXptMTkuNCAxNTVDNDIuMiAxNjMgMzIgMjAwLjMgMzIgMjM5LjkgMzIgMjk0LjIgNTEuMiAzNDQuMiA4My42IDM4NC40TDM0LjggNDc2LjdjLTQuOCA5LTMuMyAyMCAzLjYgMjcuNVM1Ni4xIDUxNCA2NS41IDUxMGwxMTguNC01MC43YzMxLjggMTMuMyA2Ny4xIDIwLjcgMTA0LjEgMjAuNyAzNi40IDAgNzAuOS03LjEgMTAyLjMtMTkuOUw2MC4zIDEzMC4xeiJdfSxGUGU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToicGxheSIsaWNvbjpbNDQ4LDUxMixbOTY1NF0sImYwNGIiLCJNOTEuMiAzNi45Yy0xMi40LTYuOC0yNy40LTYuNS0zOS42IC43UzMyIDU3LjkgMzIgNzJsMCAzNjhjMCAxNC4xIDcuNSAyNy4yIDE5LjYgMzQuNHMyNy4yIDcuNSAzOS42IC43bDMzNi0xODRjMTIuOC03IDIwLjgtMjAuNSAyMC44LTM1LjFzLTgtMjguMS0yMC44LTM1LjFsLTMzNi0xODR6Il19LE9QZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJ2aWFsLWNpcmNsZS1jaGVjayIsaWNvbjpbNTEyLDUxMixbXSwiZTU5NiIsIk0zMiAzMkMzMiAxNC4zIDQ2LjMgMCA2NCAwTDI4OCAwYzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMybDAgMTYxLjRjLTY2LjEgMzAuMy0xMTIgOTcuMS0xMTIgMTc0LjYgMCAzOS43IDEyIDc2LjYgMzIuNyAxMDcuMi0xMC4zIDMuMS0yMS4zIDQuOC0zMi43IDQuOC02MS45IDAtMTEyLTUwLjEtMTEyLTExMkw2NCA2NEM0Ni4zIDY0IDMyIDQ5LjcgMzIgMzJ6bTk2IDMybDAgMTI4IDk2IDAgMC0xMjgtOTYgMHptOTYgMzM2YTE0NCAxNDQgMCAxIDEgMjg4IDAgMTQ0IDE0NCAwIDEgMSAtMjg4IDB6bTIwMS40LTYwLjljLTcuMS01LjItMTcuMi0zLjYtMjIuNCAzLjVsLTUzIDcyLjktMjYuOC0yNi44Yy02LjItNi4yLTE2LjQtNi4yLTIyLjYgMHMtNi4yIDE2LjQgMCAyMi42bDQwIDQwYzMuMyAzLjMgNy45IDUgMTIuNiA0LjZzOC45LTIuOCAxMS43LTYuNWw2NC04OGM1LjItNy4xIDMuNi0xNy4yLTMuNS0yMi4zeiJdfSxSUGU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiYnJpZGdlLWNpcmNsZS1jaGVjayIsaWNvbjpbNTc2LDUxMixbXSwiZTRjOSIsIk0zMiAzMkMxNC4zIDMyIDAgNDYuMyAwIDY0UzE0LjMgOTYgMzIgOTZsOCAwIDAgNjQtNDAgMCAwIDExMmMzNy42IDkuNCA2NCA0My4yIDY0IDgybDAgOTRjMCAxNy43IDE0LjMgMzIgMzIgMzJsMzIgMGMxNy43IDAgMzItMTQuMyAzMi0zMmwwLTY0YzAtNTMgNDMtOTYgOTYtOTYgNi40IDAgMTIuNyAuNiAxOC43IDEuOCAzNC43LTQ5LjUgOTIuMi04MS44IDE1Ny4zLTgxLjggMjguNiAwIDU1LjYgNi4yIDgwIDE3LjRsMC02NS40LTQwIDAgMC02NCA4IDBjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJMMzIgMzJ6TTQyNCA5NmwwIDY0LTgwIDAgMC02NCA4MCAwek0yOTYgOTZsMCA2NC04MCAwIDAtNjQgODAgMHpNODggOTZsODAgMCAwIDY0LTgwIDAgMC02NHpNNTc2IDQwMGExNDQgMTQ0IDAgMSAwIC0yODggMCAxNDQgMTQ0IDAgMSAwIDI4OCAwem0tODYuNi02MC45YzcuMSA1LjIgOC43IDE1LjIgMy41IDIyLjNsLTY0IDg4Yy0yLjggMy44LTcgNi4yLTExLjcgNi41cy05LjMtMS4zLTEyLjYtNC42bC00MC00MGMtNi4yLTYuMi02LjItMTYuNCAwLTIyLjZzMTYuNC02LjIgMjIuNiAwbDI2LjggMjYuOCA1My03Mi45YzUuMi03LjEgMTUuMi04LjcgMjIuNC0zLjV6Il19LEJQZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJjZWRpLXNpZ24iLGljb246WzM4NCw1MTIsW10sImUwZGYiLCJNMjMyIDMyYzAtMTMuMy0xMC43LTI0LTI0LTI0cy0yNCAxMC43LTI0IDI0bDAgMjYuNUM4OC44IDczLjkgMTYgMTU2LjQgMTYgMjU2Uzg4LjggNDM4LjEgMTg0IDQ1My41bDAgMjYuNWMwIDEzLjMgMTAuNyAyNCAyNCAyNHMyNC0xMC43IDI0LTI0bDAtMjQuNmM0Ni44LTMuNyA4OS4xLTIzLjYgMTIxLjMtNTMuOSAxMi45LTEyLjEgMTMuNC0zMi40IDEuMy00NS4ycy0zMi40LTEzLjQtNDUuMi0xLjNjLTIwLjcgMTkuNi00Ny42IDMyLjctNzcuMyAzNi4ybDAtMjcwLjFjMjkuOCAzLjUgNTYuNiAxNi42IDc3LjMgMzYuMiAxMi45IDEyLjEgMzMuMSAxMS41IDQ1LjItMS4zczExLjUtMzMuMS0xLjMtNDUuMkMzMjEuMSA4MC4yIDI3OC44IDYwLjMgMjMyIDU2LjZMMjMyIDMyem0tNDggOTEuOGwwIDI2NC40QzEyNC4zIDM3My44IDgwIDMyMC4xIDgwIDI1NnM0NC4zLTExNy44IDEwNC0xMzIuMnoiXX0sSFBlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InB1enpsZS1waWVjZSIsaWNvbjpbNTEyLDUxMixbMTI5NTEzXSwiZjEyZSIsIk0yMjQgMGMzNS4zIDAgNjQgMjEuNSA2NCA0OCAwIDEwLjQtNC40IDIwLTEyIDI3LjktNi42IDYuOS0xMiAxNS4zLTEyIDI0LjkgMCAxNSAxMi4yIDI3LjIgMjcuMiAyNy4ybDQ0LjggMGMyNi41IDAgNDggMjEuNSA0OCA0OGwwIDQ0LjhjMCAxNSAxMi4yIDI3LjIgMjcuMiAyNy4yIDkuNSAwIDE4LTUuNCAyNC45LTEyIDcuOS03LjUgMTcuNS0xMiAyNy45LTEyIDI2LjUgMCA0OCAyOC43IDQ4IDY0cy0yMS41IDY0LTQ4IDY0Yy0xMC40IDAtMjAuMS00LjQtMjcuOS0xMi02LjktNi42LTE1LjMtMTItMjQuOS0xMi0xNSAwLTI3LjIgMTIuMi0yNy4yIDI3LjJMMzg0IDQ2NGMwIDI2LjUtMjEuNSA0OC00OCA0OGwtNTYuOCAwYy0xMi44IDAtMjMuMi0xMC40LTIzLjItMjMuMiAwLTkuMiA1LjgtMTcuMyAxMy4yLTIyLjggMTEuNi04LjcgMTguOC0yMC43IDE4LjgtMzQgMC0yNi41LTI4LjctNDgtNjQtNDhzLTY0IDIxLjUtNjQgNDhjMCAxMy4zIDcuMiAyNS4zIDE4LjggMzQgNy40IDUuNSAxMy4yIDEzLjUgMTMuMiAyMi44IDAgMTIuOC0xMC40IDIzLjItMjMuMiAyMy4yTDQ4IDUxMmMtMjYuNSAwLTQ4LTIxLjUtNDgtNDhMMCAzNDMuMmMwLTEyLjggMTAuNC0yMy4yIDIzLjItMjMuMiA5LjIgMCAxNy4zIDUuOCAyMi44IDEzLjIgOC43IDExLjYgMjAuNyAxOC44IDM0IDE4LjggMjYuNSAwIDQ4LTI4LjcgNDgtNjRzLTIxLjUtNjQtNDgtNjRjLTEzLjMgMC0yNS4zIDcuMi0zNCAxOC44LTUuNSA3LjQtMTMuNSAxMy4yLTIyLjggMTMuMi0xMi44IDAtMjMuMi0xMC40LTIzLjItMjMuMkwwIDE3NmMwLTI2LjUgMjEuNS00OCA0OC00OGwxMDguOCAwYzE1IDAgMjcuMi0xMi4yIDI3LjItMjcuMiAwLTkuNS01LjQtMTgtMTItMjQuOS03LjUtNy45LTEyLTE3LjUtMTItMjcuOSAwLTI2LjUgMjguNy00OCA2NC00OHoiXX0scVBlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImhlbG1ldC11biIsaWNvbjpbNTEyLDUxMixbXSwiZTUwMyIsIk00NzkuNSAyMjRDNDcxLjIgOTguOSAzNjcuMiAwIDI0MCAwIDEwNy41IDAgMCAxMDcuNSAwIDI0MGwwIDU2LjNDMCAzNDQuOCAzOS4yIDM4NCA4Ny43IDM4NGwxMjcuMyAwIDEyOC42IDEyMS40YzQuNSA0LjIgMTAuNCA2LjYgMTYuNSA2LjZsOTYgMGMxMy4zIDAgMjQtMTAuNyAyNC0yNHMtMTAuNy0yNC0yNC0yNGwtODYuNSAwLTEuNS0xLjUgMC0xNzQuNSAxMTIgMGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMmwtLjUgMHpNMzIwIDQxNy4ybC03OC03My43IDMyLjQtNTUuNSA0NS42IDAgMCAxMjkuMnpNMjg1LjMgMTAzLjFsMzQuNyA1MiAwLTQzLjJjMC04LjggNy4yLTE2IDE2LTE2czE2IDcuMiAxNiAxNmwwIDk2YzAgNy4xLTQuNiAxMy4zLTExLjQgMTUuM3MtMTQtLjYtMTcuOS02LjRsLTM0LjctNTIgMCA0My4yYzAgOC44LTcuMiAxNi0xNiAxNnMtMTYtNy4yLTE2LTE2bDAtOTZjMC03LjEgNC42LTEzLjMgMTEuNC0xNS4zczE0IC42IDE3LjkgNi40ek0xNjAgMTEybDAgNjRjMCA4LjggNy4yIDE2IDE2IDE2czE2LTcuMiAxNi0xNmwwLTY0YzAtOC44IDcuMi0xNiAxNi0xNnMxNiA3LjIgMTYgMTZsMCA2NGMwIDI2LjUtMjEuNSA0OC00OCA0OHMtNDgtMjEuNS00OC00OGwwLTY0YzAtOC44IDcuMi0xNiAxNi0xNnMxNiA3LjIgMTYgMTZ6Il19LFZQZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJnbGFzcy13YXRlciIsaWNvbjpbMzg0LDUxMixbXSwiZTRmNCIsIk0zMiAwQzIzLjEgMCAxNC42IDMuNyA4LjYgMTAuMlMtLjYgMjUuNCAuMSAzNC4zTDI4LjkgNDM3LjdjMyA0MS45IDM3LjggNzQuMyA3OS44IDc0LjNsMTY2LjYgMGM0MiAwIDc2LjgtMzIuNCA3OS44LTc0LjNMMzgzLjkgMzQuM2MuNi04LjktMi40LTE3LjYtOC41LTI0LjFTMzYwLjkgMCAzNTIgMEwzMiAwek03MyAxNTYuNWwtNi42LTkyLjUgMjUxLjMgMC02LjYgOTIuNS0yNC4yIDEyLjFjLTE5LjQgOS43LTQyLjIgOS43LTYxLjYgMC0yMC45LTEwLjQtNDUuNS0xMC40LTY2LjQgMC0xOS40IDkuNy00Mi4yIDkuNy02MS42IDBMNzMgMTU2LjV6Il19LGpQZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJoZWFydC1jaXJjbGUtYm9sdCIsaWNvbjpbNTc2LDUxMixbXSwiZTRmYyIsIk0yNDEgODcuMWwxNSAyMC43IDE1LTIwLjdDMjk2IDUyLjUgMzM2LjIgMzIgMzc4LjkgMzIgNDUyLjQgMzIgNTEyIDkxLjYgNTEyIDE2NS4xbDAgMi42YzAgMTcuNi0zLjQgMzUuNi05LjUgNTMuNy0yMS44LTguNi00NS42LTEzLjQtNzAuNS0xMy40LTEwNiAwLTE5MiA4Ni0xOTIgMTkyIDAgMjguNSA2LjIgNTUuNiAxNy40IDgwLS41IDAtLjkgMC0xLjQgMC0xNS41IDAtMzAuOC00LjYtNDMuMS0xNC4xLTczLTU1LjctMjEyLjktMTg2LTIxMi45LTI5OC4ybDAtMi42QzAgOTEuNiA1OS42IDMyIDEzMy4xIDMyIDE3NS44IDMyIDIxNiA1Mi41IDI0MSA4Ny4xek0yODggNDAwYTE0NCAxNDQgMCAxIDEgMjg4IDAgMTQ0IDE0NCAwIDEgMSAtMjg4IDB6bTE3Ny40LTc3Yy01LjgtNC4yLTEzLjgtNC0xOS40IC41bC04MCA2NGMtNS4zIDQuMi03LjQgMTEuNC01LjEgMTcuOFMzNjkuMiA0MTYgMzc2IDQxNmwzMi45IDAtMTUuOSA0Mi40Yy0yLjUgNi43LS4yIDE0LjMgNS42IDE4LjZzMTMuOCA0IDE5LjQtLjVsODAtNjRjNS4zLTQuMiA3LjQtMTEuNCA1LjEtMTcuOFM0OTQuOCAzODQgNDg4IDM4NGwtMzIuOSAwIDE1LjktNDIuNGMyLjUtNi43IC4yLTE0LjMtNS42LTE4LjZ6Il19LFVQZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJwdW1wLXNvYXAiLGljb246WzMyMCw1MTIsW10sImUwNmIiLCJNOTYgMGwwIDgwIDEyOCAwIDAtMjQgNzIgMGMxMy4zIDAgMjQtMTAuNyAyNC0yNFMzMDkuMyA4IDI5NiA4bC03MiAwIDAtOGMwLTE3LjctMTQuMy0zMi0zMi0zMmwtNjQgMEMxMTAuMy0zMiA5Ni0xNy43IDk2IDB6TTY0IDEyOGMtMzUuMyAwLTY0IDI4LjctNjQgNjRMMCA0NDhjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMTkyIDBjMzUuMyAwIDY0LTI4LjcgNjQtNjRsMC0yNTZjMC0zNS4zLTI4LjctNjQtNjQtNjRMNjQgMTI4ek0yMjQgMzQ0YzAgMzUuMy0yOC43IDU2LTY0IDU2cy02NC0yMC43LTY0LTU2YzAtMzIuNSAzNy04MC45IDUwLjktOTcuOSAzLjItMy45IDguMS02LjEgMTMuMS02LjFzOS45IDIuMiAxMy4xIDYuMUMxODcgMjYzLjEgMjI0IDMxMS41IDIyNCAzNDR6Il19LFdQZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJoYW5kLXNjaXNzb3JzIixpY29uOls1MTIsNTEyLFtdLCJmMjU3IiwiTTQwIDIwOGMtMjIuMSAwLTQwIDE3LjktNDAgNDBzMTcuOSA0MCA0MCA0MGwxODAuMiAwYy03LjYgOC41LTEyLjIgMTkuNy0xMi4yIDMyIDAgMjUuMyAxOS41IDQ2IDQ0LjMgNDcuOS03LjcgOC41LTEyLjMgMTkuOC0xMi4zIDMyLjEgMCAyNi41IDIxLjUgNDggNDggNDhsOTYgMGM3MC43IDAgMTI4LTU3LjMgMTI4LTEyOGwwLTExMy4xYzAtNDAuMi0xNi03OC44LTQ0LjQtMTA3LjMtMjIuOC0yMi44LTUzLjYtMzUuNi04NS44LTM1LjZMMzM2IDY0Yy0yMS4zIDAtMzkuMyAxMy45LTQ1LjYgMzMuMWw3NC41IDIzLjdjOC40IDIuNyAxMy4xIDExLjcgMTAuNCAyMC4xcy0xMS43IDEzLjEtMjAuMSAxMC40bC02Ny4xLTIxLjQgMCAuMS0yMDQtNjQuMUM2Mi45IDU5LjIgNDAuNSA3MC45IDMzLjkgOTJzNS4xIDQzLjUgMjYuMiA1MC4yTDI2OS41IDIwOCA0MCAyMDh6Il19LERPPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImRvbGx5IixpY29uOls1NzYsNTEyLFsiZG9sbHktYm94Il0sImY0NzIiLCJNMzIgMEMxNC4zIDAgMCAxNC4zIDAgMzJTMTQuMyA2NCAzMiA2NGw3Mi45IDAgOTIuMSAyNzYuMmMtMjIuNSAxNy42LTM3IDQ1LTM3IDc1LjggMCA1MyA0MyA5NiA5NiA5NiA1Mi40IDAgOTUuMS00MiA5Ni05NC4zbDIwMi4xLTY3LjRjMTYuOC01LjYgMjUuOC0yMy43IDIwLjItNDAuNXMtMjMuNy0yNS44LTQwLjUtMjAuMkwzMzEuOCAzNTdjLTE3LjItMjIuMS00My45LTM2LjUtNzQtMzdMMTY1LjcgNDMuOEMxNTYuOSAxNy42IDEzMi41IDAgMTA0LjkgMEwzMiAwek0yMDggNDE2YTQ4IDQ4IDAgMSAxIDk2IDAgNDggNDggMCAxIDEgLTk2IDB6TTI4MC41IDg5LjNjLTI1LjIgOC4yLTM5IDM1LjMtMzAuOCA2MC41bDM5LjYgMTIxLjdjOC4yIDI1LjIgMzUuMyAzOSA2MC41IDMwLjhsMTIxLjctMzkuNmMyNS4yLTguMiAzOS0zNS4zIDMwLjgtNjAuNUw0NjIuOCA4MC41Yy04LjItMjUuMi0zNS4zLTM5LTYwLjUtMzAuOEwyODAuNSA4OS4zeiJdfSxHUGU9RE8sbmc9e3ByZWZpeDoiZmFzIixpY29uTmFtZToicGFwZXJjbGlwIixpY29uOls1MTIsNTEyLFsxMjgyMDZdLCJmMGM2IiwiTTIyNC42IDEyLjhjNTYuMi01Ni4yIDE0Ny40LTU2LjIgMjAzLjYgMHM1Ni4yIDE0Ny40IDAgMjAzLjZsLTE2NCAxNjRjLTM0LjQgMzQuNC05MC4xIDM0LjQtMTI0LjUgMHMtMzQuNC05MC4xIDAtMTI0LjVMMjkyLjUgMTAzLjNjMTIuNS0xMi41IDMyLjgtMTIuNSA0NS4zIDBzMTIuNSAzMi44IDAgNDUuM0wxODUgMzAxLjNjLTkuNCA5LjQtOS40IDI0LjYgMCAzMy45czI0LjYgOS40IDMzLjkgMGwxNjQtMTY0YzMxLjItMzEuMiAzMS4yLTgxLjkgMC0xMTMuMXMtODEuOS0zMS4yLTExMy4xIDBsLTE2NCAxNjRjLTUzLjEgNTMuMS01My4xIDEzOS4yIDAgMTkyLjNzMTM5LjIgNTMuMSAxOTIuMyAwTDQyOC4zIDI4NC4zYzEyLjUtMTIuNSAzMi44LTEyLjUgNDUuMyAwczEyLjUgMzIuOCAwIDQ1LjNMMzQzLjQgNDU5LjZjLTc4LjEgNzguMS0yMDQuNyA3OC4xLTI4Mi44IDBzLTc4LjEtMjA0LjcgMC0yODIuOGwxNjQtMTY0eiJdfSxZUGU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZGVtb2NyYXQiLGljb246WzY0MCw1MTIsW10sImY3NDciLCJNNjQgMzJjMC04LjkgMy44LTIwLjkgNi4yLTI3LjMgMS0yLjggMy44LTQuNyA2LjgtNC43IDEuOSAwIDMuOCAuNyA1LjIgMi4xTDEyOCA0NS43IDE3My44IDIuMWMxLjQtMS4zIDMuMi0yLjEgNS4yLTIuMSAzIDAgNS44IDEuOCA2LjggNC43IDIuNCA2LjUgNi4yIDE4LjQgNi4yIDI3LjMgMCAyNi41LTIxLjkgNDItMjkuNSA0Ni42bDc2LjIgNzIuNmM2IDUuNyAxMy45IDguOCAyMi4xIDguOGwyMTkuMiAwIDMyIDBjNDAuMyAwIDc4LjIgMTkgMTAyLjQgNTEuMmwxOS4yIDI1LjZjMTAuNiAxNC4xIDcuNyAzNC4yLTYuNCA0NC44cy0zNC4yIDcuNy00NC44LTYuNGwtMTkuMi0yNS42Yy01LjMtNy0xMS44LTEyLjgtMTkuMi0xN2wwIDg3LjQtMzUyIDAtNDAuNC05NC4zYy0zLjktOS4yLTE1LjMtMTIuNi0yMy42LTdsLTQyLjEgMjhjLTkuMSA2LjEtMTkuNyA5LjMtMzAuNyA5LjNsLTIgMEMyMy45IDI1NiAwIDIzMi4xIDAgMjAyLjcgMCAxOTAuNiA0LjEgMTc4LjkgMTEuNyAxNjkuNEw4Ny42IDc0LjZDNzguMSA2Ny40IDY0IDUzLjIgNjQgMzJ6TTU0NCAzNTJsMCAxMjhjMCAxNy43LTE0LjMgMzItMzIgMzJsLTMyIDBjLTE3LjcgMC0zMi0xNC4zLTMyLTMybDAtNjQtMTYwIDAgMCA2NGMwIDE3LjctMTQuMyAzMi0zMiAzMmwtMzIgMGMtMTcuNyAwLTMyLTE0LjMtMzItMzJsMC0xMjggMzUyIDB6TTI1NiAyODBhMjQgMjQgMCAxIDAgMC00OCAyNCAyNCAwIDEgMCAwIDQ4em0yNDgtMjRhMjQgMjQgMCAxIDAgLTQ4IDAgMjQgMjQgMCAxIDAgNDggMHpNMzY4IDI4MGEyNCAyNCAwIDEgMCAwLTQ4IDI0IDI0IDAgMSAwIDAgNDh6Il19LEVPPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InNxdWFyZS1hcnJvdy11cC1yaWdodCIsaWNvbjpbNDQ4LDUxMixbImV4dGVybmFsLWxpbmstc3F1YXJlIl0sImYxNGMiLCJNMzg0IDMyYzM1LjMgMCA2NCAyOC43IDY0IDY0bDAgMzIwYzAgMzUuMy0yOC43IDY0LTY0IDY0TDY0IDQ4MGMtMzUuMyAwLTY0LTI4LjctNjQtNjRMMCA5NkMwIDYwLjcgMjguNyAzMiA2NCAzMmwzMjAgMHpNMjcyIDI5NmMwIDEzLjMgMTAuNyAyNCAyNCAyNHMyNC0xMC43IDI0LTI0bDAtMTEyYzAtMTMuMy0xMC43LTI0LTI0LTI0bC0xMTIgMGMtMTMuMyAwLTI0IDEwLjctMjQgMjRzMTAuNyAyNCAyNCAyNGw1NC4xIDAtMTAzIDEwM2MtOS40IDkuNC05LjQgMjQuNiAwIDMzLjlzMjQuNiA5LjQgMzMuOSAwbDEwMy0xMDMgMCA1NC4xeiJdfSxaUGU9RU8sWFBlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImZlcnJ5IixpY29uOls2NDAsNTEyLFtdLCJlNGVhIiwiTTIyNCAzMmMwLTE3LjcgMTQuMy0zMiAzMi0zMkwzODQgMGMxNy43IDAgMzIgMTQuMyAzMiAzMmwwIDMyIDQ4IDBjNDQuMiAwIDgwIDM1LjggODAgODBsMCAxMjgtLjEgMGMuMSAuNyAuMSAxLjMgLjEgMiAwIDMwLjItNy42IDU5LjgtMjIgODYuM2wtMTIuNyAyMy4zLS42IDFjLTIyLjMtMTEuMy00Ni41LTE2LjgtNzAuOC0xNi43LTMyLjUgLjItNjQuOSAxMC43LTkyLjQgMzEuNC0yMi4xIDE2LjYtMjkuMSAxNi42LTUxLjIgMC0yOC4xLTIxLjEtNjEuMy0zMS42LTk0LjQtMzEuNC0yMy42IC4yLTQ3LjEgNS43LTY4LjcgMTYuN2wtLjYtMS0xMi43LTIzLjNjLTE0LjQtMjYuNS0yMi01Ni4yLTIyLTg2LjMgMC0uNyAwLTEuNCAuMS0ybC0uMSAwIDAtMTI4YzAtNDQuMiAzNS44LTgwIDgwLTgwbDQ4IDAgMC0zMnpNMTYwIDI1NmwzMjAgMCAwLTExMmMwLTguOC03LjItMTYtMTYtMTZsLTI4OCAwYy04LjggMC0xNiA3LjItMTYgMTZsMCAxMTJ6TTQwMy40IDQ3Ni4xQzM3OS4xIDQ5NC4zIDM1MS4xIDUxMiAzMjAgNTEycy01OS4xLTE3LjctODMuNC0zNS45Yy0yMS4zLTE2LjEtNDkuOS0xNi4xLTcxLjIgMC0yMy44IDE3LjktNTQuMSAzNS41LTg4LjEgMzUuMy0yMC40LS4xLTQwLjctNi43LTU5LjgtMjEuMS0xMC42LTgtMTIuNy0yMy00LjctMzMuNnMyMy0xMi43IDMzLjYtNC43YzExLjMgOC41IDIxLjYgMTEuNCAzMS4yIDExLjUgMTcuNiAuMSAzNy4zLTkuNCA1OC45LTI1LjcgMzguNC0yOSA5MC41LTI5IDEyOSAwIDI0IDE4LjEgNDAuNyAyNi4zIDU0LjUgMjYuM3MzMC41LTguMiA1NC41LTI2LjNjMzguNC0yOSA5MC41LTI5IDEyOSAwIDE2LjkgMTIuNyAzMi45IDIxLjUgNDcuOCAyNC42IDEzLjcgMi44IDI3LjQgLjkgNDIuMy0xMC4zIDEwLjYtOCAyNS42LTUuOSAzMy42IDQuN3M1LjkgMjUuNi00LjcgMzMuNmMtMjYuNCAxOS45LTU0LjIgMjQuNC04MC43IDE5LjEtMjUuMy01LjEtNDguMS0xOC45LTY3LjItMzMuMy0yMS4zLTE2LjEtNDkuOS0xNi4xLTcxLjIgMHoiXX0sS1BlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6Im1vc3F1aXRvIixpY29uOls1NzYsNTEyLFtdLCJlNTJiIiwiTTE3OC41IDQ5NS4yYy03LjUgOS42LTIxIDEyLjEtMzEuMyA1LjNTMTMzLjUgNDgwIDEzOC45IDQ2OWwxLjItMi4yIDM2LjItNTggMC00MSAuMy00Yy42LTMuOSAyLjItNy43IDQuNi0xMC45bDM5LjMtNTIuMi02Ni4yIDU5LjVjLTE3IDE1LjMtMzkgMjMuNy02MS45IDIzLjhsLTguMSAwYy00Ni42IDAtODQuNC0zNy44LTg0LjQtODQuNCAwLTQzIDMyLjQtNzkuMiA3NS4xLTgzLjlsMTMwLjUtMTQuNS00NC44LTM4LjMtMi40LTIuNGMtNS4zLTYtNy4zLTE0LjQtNS4zLTIyLjNsMTMuMy01My40LTI1LjktMzguOS0xLjMtMi4xYy01LjgtMTAuOC0yLjctMjQuNiA3LjQtMzEuNyAxMC4xLTcuMSAyMy43LTUuMSAzMS40IDQuM2wxLjUgMiAzMiA0OCAxLjQgMi4yYzIuOCA1LjMgMy41IDExLjYgMi4xIDE3LjZsLTEyLjMgNDkuMiA1My4zIDQ1LjcgMC0yOC44YzAtMTEuOCA2LjUtMjIuMSAxNi0yNy43bDAtNjAuNSAuMy0zLjNjMS41LTcuMyA4LTEyLjcgMTUuNy0xMi43czE0LjIgNS41IDE1LjcgMTIuN2wuMyAzLjIgMCA2MC41YzkuNiA1LjUgMTYgMTUuOCAxNiAyNy43bDAgMjguOSA1My40LTQ1LjgtMTIuMy00OS4yYy0xLjUtNS45LS43LTEyLjIgMi4xLTE3LjZsMS40LTIuMiAzMi00OCAxLjUtMmM3LjctOS40IDIxLjMtMTEuNSAzMS40LTQuMyAxMC4xIDcuMSAxMy4xIDIwLjkgNy40IDMxLjdsLTEuMyAyLjEtMjUuOSAzOC45IDEzLjMgNTMuNGMyIDgtLjEgMTYuMy01LjMgMjIuM2wtMi40IDIuNC00NC43IDM4LjMgMTMwLjUgMTQuNWM0Mi44IDQuOCA3NS4xIDQwLjkgNzUuMSA4My45IDAgNDYuNi0zNy44IDg0LjQtODQuNCA4NC40bC04LjEgMGMtMjIuOCAwLTQ0LjktOC41LTYxLjktMjMuOGwtNjYuMS01OS41IDM5LjIgNTIuMmMyLjQgMy4yIDQgNyA0LjYgMTAuOWwuMyA0IDAgNDEgMzYuMiA1OCAxLjIgMi4xYzUuNCAxMSAyIDI0LjctOC4zIDMxLjVzLTIzLjggNC40LTMxLjMtNS4zbC0xLjQtMi00MC02NC0xLjYtMy4xYy0xLjQtMy4xLTIuMS02LjYtMi4xLTEwLjFsMC0zOS44LTMyLjQtNDMuMSAwIDc0LjdjMCAxNy43LTE0LjMgMzItMzIgMzItMTcuNyAwLTMyLTE0LjMtMzItMzJsMC03NC42LTMyLjMgNDMgMCAzOS44YzAgMy41LS43IDYuOS0yLjEgMTAuMWwtMS42IDMuMS00MCA2NC0xLjQgMnoiXX0sUVBlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImJ1aWxkaW5nLWNpcmNsZS1hcnJvdy1yaWdodCIsaWNvbjpbNTc2LDUxMixbXSwiZTRkMSIsIk0zMiA2NEMzMiAyOC43IDYwLjcgMCA5NiAwTDM1MiAwYzM1LjMgMCA2NCAyOC43IDY0IDY0bDAgMTQ0LjdjLTM1LjcgMi45LTY4LjUgMTUuNi05NiAzNS40bDAtNGMwLTguOC03LjItMTYtMTYtMTZsLTMyIDBjLTguOCAwLTE2IDcuMi0xNiAxNmwwIDMyYzAgOC44IDcuMiAxNiAxNiAxNmw0IDBjLTEzLjggMTkuMi0yNC4xIDQxLTMwLjEgNjQuNS0xLjktLjQtMy45LS41LTUuOS0uNWwtMzIgMGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJsMCA4MCA3NC45IDBjNi4xIDE3LjMgMTQuNiAzMy40IDI1LjEgNDhMOTYgNTEyYy0zNS4zIDAtNjQtMjguNy02NC02NEwzMiA2NHpNMTQ0IDk2Yy04LjggMC0xNiA3LjItMTYgMTZsMCAzMmMwIDguOCA3LjIgMTYgMTYgMTZsMzIgMGM4LjggMCAxNi03LjIgMTYtMTZsMC0zMmMwLTguOC03LjItMTYtMTYtMTZsLTMyIDB6bTExMiAxNmwwIDMyYzAgOC44IDcuMiAxNiAxNiAxNmwzMiAwYzguOCAwIDE2LTcuMiAxNi0xNmwwLTMyYzAtOC44LTcuMi0xNi0xNi0xNmwtMzIgMGMtOC44IDAtMTYgNy4yLTE2IDE2ek0xNDQgMjI0Yy04LjggMC0xNiA3LjItMTYgMTZsMCAzMmMwIDguOCA3LjIgMTYgMTYgMTZsMzIgMGM4LjggMCAxNi03LjIgMTYtMTZsMC0zMmMwLTguOC03LjItMTYtMTYtMTZsLTMyIDB6TTI4OCA0MDBhMTQ0IDE0NCAwIDEgMSAyODggMCAxNDQgMTQ0IDAgMSAxIC0yODggMHptMTQwLjctNjcuM2MtNi4yIDYuMi02LjIgMTYuNCAwIDIyLjZsMjguNyAyOC43LTg5LjQgMGMtOC44IDAtMTYgNy4yLTE2IDE2czcuMiAxNiAxNiAxNmw4OS40IDAtMjguNyAyOC43Yy02LjIgNi4yLTYuMiAxNi40IDAgMjIuNnMxNi40IDYuMiAyMi42IDBsNTYtNTZjNi4yLTYuMiA2LjItMTYuNCAwLTIyLjZsLTU2LTU2Yy02LjItNi4yLTE2LjQtNi4yLTIyLjYgMHoiXX0sUE89e3ByZWZpeDoiZmFzIixpY29uTmFtZToibGVmdC1yaWdodCIsaWNvbjpbNTEyLDUxMixbODU5NiwiYXJyb3dzLWFsdC1oIl0sImYzMzciLCJNNTAyLjYgNDA2LjZsLTk2IDk2Yy05LjIgOS4yLTIyLjkgMTEuOS0zNC45IDYuOVMzNTIgNDkyLjkgMzUyIDQ4MGwwLTY0LTMyMCAwYy0xNy43IDAtMzItMTQuMy0zMi0zMnMxNC4zLTMyIDMyLTMybDMyMCAwIDAtNjRjMC0xMi45IDcuOC0yNC42IDE5LjgtMjkuNnMyNS43LTIuMiAzNC45IDYuOWw5NiA5NmMxMi41IDEyLjUgMTIuNSAzMi44IDAgNDUuM3pNOS40IDE1MC42Yy0xMi41LTEyLjUtMTIuNS0zMi44IDAtNDUuM2w5Ni05NmM5LjItOS4yIDIyLjktMTEuOSAzNC45LTYuOVMxNjAgMTkuMSAxNjAgMzJsMCA2NCAzMjAgMGMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMmwtMzIwIDAgMCA2NGMwIDEyLjktNy44IDI0LjYtMTkuOCAyOS42cy0yNS43IDIuMi0zNC45LTYuOWwtOTYtOTZ6Il19LEpQZT1QTyxlSWU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToidmlydXMiLGljb246WzUxMiw1MTIsW10sImUwNzQiLCJNMjk2IDQwYzAtMjIuMS0xNy45LTQwLTQwLTQwcy00MCAxNy45LTQwIDQwYzAgNDQuMS01My4zIDY2LjEtODQuNSAzNS0xNS42LTE1LjYtNDAuOS0xNS42LTU2LjYgMHMtMTUuNiA0MC45IDAgNTYuNmMzMS4yIDMxLjIgOS4xIDg0LjUtMzUgODQuNS0yMi4xIDAtNDAgMTcuOS00MCA0MHMxNy45IDQwIDQwIDQwYzQ0LjEgMCA2Ni4xIDUzLjMgMzUgODQuNS0xNS42IDE1LjYtMTUuNiA0MC45IDAgNTYuNnM0MC45IDE1LjYgNTYuNiAwYzMxLjItMzEuMiA4NC41LTkuMSA4NC41IDM1IDAgMjIuMSAxNy45IDQwIDQwIDQwczQwLTE3LjkgNDAtNDBjMC00NC4xIDUzLjMtNjYuMSA4NC41LTM1IDE1LjYgMTUuNiA0MC45IDE1LjYgNTYuNiAwczE1LjYtNDAuOSAwLTU2LjZjLTMxLjItMzEuMi05LjEtODQuNSAzNS04NC41IDIyLjEgMCA0MC0xNy45IDQwLTQwcy0xNy45LTQwLTQwLTQwYy00NC4xIDAtNjYuMS01My4zLTM1LTg0LjUgMTUuNi0xNS42IDE1LjYtNDAuOSAwLTU2LjZzLTQwLjktMTUuNi01Ni42IDBDMzQ5LjMgMTA2LjEgMjk2IDg0LjEgMjk2IDQwek0xNjAgMjI0YTMyIDMyIDAgMSAxIDY0IDAgMzIgMzIgMCAxIDEgLTY0IDB6bTE2MCAzMmEzMiAzMiAwIDEgMSAwIDY0IDMyIDMyIDAgMSAxIDAtNjR6Il19LHRJZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJnZW0iLGljb246WzUxMiw1MTIsWzEyODE0Ml0sImYzYTUiLCJNMTE2LjcgMzMuOGM0LjUtNi4xIDExLjctOS44IDE5LjMtOS44bDI0MCAwYzcuNiAwIDE0LjggMy42IDE5LjMgOS44bDExMiAxNTJjNi44IDkuMiA2LjEgMjEuOS0xLjUgMzAuNGwtMjMyIDI1NmMtNC41IDUtMTEgNy45LTE3LjggNy45cy0xMy4yLTIuOS0xNy44LTcuOWwtMjMyLTI1NmMtNy43LTguNS04LjMtMjEuMi0xLjUtMzAuNGwxMTItMTUyem0zOC41IDM5LjhjLTMuMyAyLjUtNC4yIDctMi4xIDEwLjVMMjEwLjUgMTc5LjggNjMuMyAxOTJjLTQuMSAuMy03LjMgMy44LTcuMyA4czMuMiA3LjYgNy4zIDhsMTkyIDE2Yy40IDAgLjkgMCAxLjMgMGwxOTItMTZjNC4xLS4zIDcuMy0zLjggNy4zLThzLTMuMi03LjYtNy4zLThsLTE0Ny4yLTEyLjMgNTcuNC05NS42YzIuMS0zLjUgMS4yLTguMS0yLjEtMTAuNXMtNy45LTItMTAuNyAxTDI1NiAxNzIuMiAxNjUuOSA3NC42Yy0yLjgtMy03LjQtMy40LTEwLjctMXoiXX0sYUllPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InRvaWxldCIsaWNvbjpbNDQ4LDUxMixbMTI4NzAxXSwiZjdkOCIsIk0yNCAwQzEwLjcgMCAwIDEwLjcgMCAyNFMxMC43IDQ4IDI0IDQ4bDggMCAwIDE0OC45Yy0xLjkgMS40LTMuOCAyLjktNS42IDQuNC0xNS41IDEzLjItMjYuNCAzMS42LTI2LjQgNTQuNiAwIDQ2LjkgMTQuMyA4NC4xIDM3IDExMi41IDE0LjIgMTcuNyAzMS4xIDMxLjMgNDguNSA0MS44TDY1LjYgNDY5LjljLTMuMyA5LjgtMS42IDIwLjUgNC40IDI4LjhTODUuNyA1MTIgOTYgNTEybDI1NiAwYzEwLjMgMCAxOS45LTQuOSAyNi0xMy4zczcuNy0xOS4xIDQuNC0yOC44bC0xOS44LTU5LjVjMTcuNC0xMC41IDM0LjMtMjQuMSA0OC41LTQxLjggMjIuNy0yOC40IDM3LTY1LjUgMzctMTEyLjUgMC0yMy4xLTEwLjktNDEuNS0yNi40LTU0LjYtMS44LTEuNS0zLjctMy01LjYtNC40bDAtMTQ4LjkgOCAwYzEzLjMgMCAyNC0xMC43IDI0LTI0UzQzNy4zIDAgNDI0IDBMMjQgMHpNOTYgODBjMC04LjggNy4yLTE2IDE2LTE2bDMyIDBjOC44IDAgMTYgNy4yIDE2IDE2cy03LjIgMTYtMTYgMTZsLTMyIDBjLTguOCAwLTE2LTcuMi0xNi0xNnpNMjI0IDI4OGMtODguNCAwLTE2MC0xNC4zLTE2MC0zMnM3MS42LTMyIDE2MC0zMiAxNjAgMTQuMyAxNjAgMzItNzEuNiAzMi0xNjAgMzJ6Il19LGlJZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJzaW5nbGUtcXVvdGUtbGVmdCIsaWNvbjpbMTkyLDUxMixbXSwiZTgxYiIsIk0xMjggOTZjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJsLTggMGMtMzAuOSAwLTU2IDI1LjEtNTYgNTZsMCA4IDY0IDBjMzUuMyAwIDY0IDI4LjcgNjQgNjRsMCA2NGMwIDM1LjMtMjguNyA2NC02NCA2NGwtNjQgMGMtMzUuMyAwLTY0LTI4LjctNjQtNjRMMCAyMTZDMCAxNDkuNyA1My43IDk2IDEyMCA5Nmw4IDB6Il19LHJJZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJtb25leS1iaWxscyIsaWNvbjpbNTc2LDUxMixbXSwiZTFmMyIsIk0xNjAgMzJjLTM1LjMgMC02NCAyOC43LTY0IDY0bDAgMjI0YzAgMzUuMyAyOC43IDY0IDY0IDY0bDM1MiAwYzM1LjMgMCA2NC0yOC43IDY0LTY0bDAtMjI0YzAtMzUuMy0yOC43LTY0LTY0LTY0TDE2MCAzMnptMTc2IDk2YTgwIDgwIDAgMSAxIDAgMTYwIDgwIDgwIDAgMSAxIDAtMTYwek0xNjAgMTUybDAtNDhjMC00LjQgMy42LTggOC04bDQ4IDBjNC40IDAgOC4xIDMuNiA3LjUgOC0zLjYgMjktMjYuNiA1MS45LTU1LjUgNTUuNS00LjQgLjUtOC0zLjEtOC03LjV6bTAgMTEyYzAtNC40IDMuNi04LjEgOC03LjUgMjkgMy42IDUxLjkgMjYuNiA1NS41IDU1LjUgLjUgNC40LTMuMSA4LTcuNSA4bC00OCAwYy00LjQgMC04LTMuNi04LThsMC00OHpNNTA0IDE1OS41Yy0yOS0zLjYtNTEuOS0yNi42LTU1LjUtNTUuNS0uNS00LjQgMy4xLTggNy41LThsNDggMGM0LjQgMCA4IDMuNiA4IDhsMCA0OGMwIDQuNC0zLjYgOC4xLTggNy41ek01MTIgMjY0bDAgNDhjMCA0LjQtMy42IDgtOCA4bC00OCAwYy00LjQgMC04LjEtMy42LTcuNS04IDMuNi0yOSAyNi42LTUxLjkgNTUuNS01NS41IDQuNC0uNSA4IDMuMSA4IDcuNXpNNDggMTUyYzAtMTMuMy0xMC43LTI0LTI0LTI0UzAgMTM4LjcgMCAxNTJMMCA0MTZjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMzkyIDBjMTMuMyAwIDI0LTEwLjcgMjQtMjRzLTEwLjctMjQtMjQtMjRMNjQgNDMyYy04LjggMC0xNi03LjItMTYtMTZsMC0yNjR6Il19LHNJZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJ0YWJsZXQtYnV0dG9uIixpY29uOls0NDgsNTEyLFtdLCJmMTBhIiwiTTY0IDBDMjguNyAwIDAgMjguNyAwIDY0TDAgNDQ4YzAgMzUuMyAyOC43IDY0IDY0IDY0bDMyMCAwYzM1LjMgMCA2NC0yOC43IDY0LTY0bDAtMzg0YzAtMzUuMy0yOC43LTY0LTY0LTY0TDY0IDB6TTIyNCA0MDBhMzIgMzIgMCAxIDEgMCA2NCAzMiAzMiAwIDEgMSAwLTY0eiJdfSxWNT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJyZWN0YW5nbGUteG1hcmsiLGljb246WzUxMiw1MTIsWzYyMTY0LCJyZWN0YW5nbGUtdGltZXMiLCJ0aW1lcy1yZWN0YW5nbGUiLCJ3aW5kb3ctY2xvc2UiXSwiZjQxMCIsIk02NCA2NEMyOC43IDY0IDAgOTIuNyAwIDEyOEwwIDM4NGMwIDM1LjMgMjguNyA2NCA2NCA2NGwzODQgMGMzNS4zIDAgNjQtMjguNyA2NC02NGwwLTI1NmMwLTM1LjMtMjguNy02NC02NC02NEw2NCA2NHpNMTY3IDE2N2M5LjQtOS40IDI0LjYtOS40IDMzLjkgMGw1NSA1NSA1NS01NWM5LjQtOS40IDI0LjYtOS40IDMzLjkgMHM5LjQgMjQuNiAwIDMzLjlsLTU1IDU1IDU1IDU1YzkuNCA5LjQgOS40IDI0LjYgMCAzMy45cy0yNC42IDkuNC0zMy45IDBsLTU1LTU1LTU1IDU1Yy05LjQgOS40LTI0LjYgOS40LTMzLjkgMHMtOS40LTI0LjYgMC0zMy45bDU1LTU1LTU1LTU1Yy05LjQtOS40LTkuNC0yNC42IDAtMzMuOXoiXX0sbkllPVY1LG9JZT1WNSxsSWU9VjUsY0llPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6IndyZW5jaCIsaWNvbjpbNTc2LDUxMixbMTI4Mjk1XSwiZjBhZCIsIk01MDkuNCA5OC42YzcuNi03LjYgMjAuMy01LjcgMjQuMSA0LjMgNi44IDE3LjcgMTAuNSAzNyAxMC41IDU3LjEgMCA4OC40LTcxLjYgMTYwLTE2MCAxNjAtMTcuNSAwLTM0LjQtMi44LTUwLjItOEwxNDYuOSA0OTguOWMtMjguMSAyOC4xLTczLjcgMjguMS0xMDEuOCAwcy0yOC4xLTczLjcgMC0xMDEuOEwyMzIgMjEwLjJjLTUuMi0xNS44LTgtMzIuNi04LTUwLjIgMC04OC40IDcxLjYtMTYwIDE2MC0xNjAgMjAuMSAwIDM5LjQgMy43IDU3LjEgMTAuNSAxMCAzLjggMTEuOCAxNi41IDQuMyAyNC4xbC04OC43IDg4LjdjLTMgMy00LjcgNy4xLTQuNyAxMS4zbDAgNDEuNGMwIDguOCA3LjIgMTYgMTYgMTZsNDEuNCAwYzQuMiAwIDguMy0xLjcgMTEuMy00LjdsODguNy04OC43eiJdfSxuOD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJ0cmFzaC1jYW4iLGljb246WzQ0OCw1MTIsWzYxNDYwLCJ0cmFzaC1hbHQiXSwiZjJlZCIsIk0xMzYuNyA1LjlDMTQxLjEtNy4yIDE1My4zLTE2IDE2Ny4xLTE2bDExMy45IDBjMTMuOCAwIDI2IDguOCAzMC40IDIxLjlMMzIwIDMyIDQxNiAzMmMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMkwzMiA5NkMxNC4zIDk2IDAgODEuNyAwIDY0UzE0LjMgMzIgMzIgMzJsOTYgMCA4LjctMjYuMXpNMzIgMTQ0bDM4NCAwIDAgMzA0YzAgMzUuMy0yOC43IDY0LTY0IDY0TDk2IDUxMmMtMzUuMyAwLTY0LTI4LjctNjQtNjRsMC0zMDR6bTg4IDY0Yy0xMy4zIDAtMjQgMTAuNy0yNCAyNGwwIDE5MmMwIDEzLjMgMTAuNyAyNCAyNCAyNHMyNC0xMC43IDI0LTI0bDAtMTkyYzAtMTMuMy0xMC43LTI0LTI0LTI0em0xMDQgMGMtMTMuMyAwLTI0IDEwLjctMjQgMjRsMCAxOTJjMCAxMy4zIDEwLjcgMjQgMjQgMjRzMjQtMTAuNyAyNC0yNGwwLTE5MmMwLTEzLjMtMTAuNy0yNC0yNC0yNHptMTA0IDBjLTEzLjMgMC0yNCAxMC43LTI0IDI0bDAgMTkyYzAgMTMuMyAxMC43IDI0IDI0IDI0czI0LTEwLjcgMjQtMjRsMC0xOTJjMC0xMy4zLTEwLjctMjQtMjQtMjR6Il19LGRJZT1uOCxJTz17cHJlZml4OiJmYXMiLGljb25OYW1lOiJ0YWJsZS1jZWxscyIsaWNvbjpbNDQ4LDUxMixbInRoIl0sImYwMGEiLCJNMzg0IDk2bDAgNjQtNjQgMCAwLTY0IDY0IDB6bTAgMTI4bDAgNjQtNjQgMCAwLTY0IDY0IDB6bTAgMTI4bDAgNjQtNjQgMCAwLTY0IDY0IDB6TTI1NiAyODhsLTY0IDAgMC02NCA2NCAwIDAgNjR6bS02NCA2NGw2NCAwIDAgNjQtNjQgMCAwLTY0em0tNjQtNjRsLTY0IDAgMC02NCA2NCAwIDAgNjR6TTY0IDM1Mmw2NCAwIDAgNjQtNjQgMCAwLTY0em0wLTE5MmwwLTY0IDY0IDAgMCA2NC02NCAwem0xMjggMGwwLTY0IDY0IDAgMCA2NC02NCAwek02NCAzMkMyOC43IDMyIDAgNjAuNyAwIDk2TDAgNDE2YzAgMzUuMyAyOC43IDY0IDY0IDY0bDMyMCAwYzM1LjMgMCA2NC0yOC43IDY0LTY0bDAtMzIwYzAtMzUuMy0yOC43LTY0LTY0LTY0TDY0IDMyeiJdfSxoSWU9SU8scEllPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InJpYmJvbiIsaWNvbjpbMzg0LDUxMixbMTI3ODk1XSwiZjRkNiIsIk0yMzUuMSAwYzMzLjQgMCA2NC41IDE3LjQgODEuOSA0NS45IDEuMiAyIDEzIDIxLjMgMzUuMyA1Ny44IDIxLjEgMzQuNSAxOC4zIDc4LjUtNyAxMTBMMjc4LjMgMjk3LjcgMzY0LjUgNDA2YzUuNSA2LjkgNC40IDE2LjktMi41IDIyLjVsLTgwIDY0Yy02LjkgNS41LTE3IDQuNC0yMi41LTIuNUwzOC42IDIxMy44QzEzLjMgMTgyLjMgMTAuNSAxMzguMyAzMS42IDEwMy44IDU0IDY3LjIgNjUuNyA0Ny45IDY3IDQ1LjkgODQuNCAxNy40IDExNS40IDAgMTQ4LjkgMGw4Ni4zIDB6TTE5MiAxODkuMmw0OC42LTYxLjItOTcuMyAwIDQ4LjYgNjEuMnpNNzUgMzM2LjJsODYuMiAxMDcuOC0zNi44IDQ2Yy01LjUgNi45LTE1LjYgOC0yMi41IDIuNWwtODAtNjRjLTYuOS01LjUtOC0xNS42LTIuNS0yMi41TDc1IDMzNi4yeiJdfSx1SWU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToibGFuZG1hcmstZmxhZyIsaWNvbjpbNTEyLDUxMixbXSwiZTUxYyIsIk0zNTItMzJMMjQwLTMyYy04LjggMC0xNiA3LjItMTYgMTZsMCAxNDQtMTc2IDBjLTE3LjcgMC0zMiAxNC4zLTMyIDMyczE0LjMgMzIgMzIgMzJsMTYgMCAwIDIyNC01MS4yIDM4LjRDNC43IDQ2MC40IDAgNDY5LjkgMCA0ODAgMCA0OTcuNyAxNC4zIDUxMiAzMiA1MTJsNDQ4IDBjMTcuNyAwIDMyLTE0LjMgMzItMzIgMC0xMC4xLTQuNy0xOS42LTEyLjgtMjUuNmwtNTEuMi0zOC40IDAtMjI0IDE2IDBjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJsLTE5MiAwIDAtNjQgODAgMGM4LjggMCAxNi03LjIgMTYtMTZsMC02NGMwLTguOC03LjItMTYtMTYtMTZ6bTQ4IDIyNGwwIDIyNC02NCAwIDAtMjI0IDY0IDB6bS0xMTIgMGwwIDIyNC02NCAwIDAtMjI0IDY0IDB6bS0xMTIgMGwwIDIyNC02NCAwIDAtMjI0IDY0IDB6Il19LE5PPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InVwLWRvd24tbGVmdC1yaWdodCIsaWNvbjpbNTEyLDUxMixbImFycm93cy1hbHQiXSwiZjBiMiIsIk0yNzguNiA5LjRjLTEyLjUtMTIuNS0zMi44LTEyLjUtNDUuMyAwbC02NCA2NGMtOS4yIDkuMi0xMS45IDIyLjktNi45IDM0LjlTMTc5LjEgMTI4IDE5MiAxMjhsMzIgMCAwIDk2LTk2IDAgMC0zMmMwLTEyLjktNy44LTI0LjYtMTkuOC0yOS42cy0yNS43LTIuMi0zNC45IDYuOWwtNjQgNjRjLTEyLjUgMTIuNS0xMi41IDMyLjggMCA0NS4zbDY0IDY0YzkuMiA5LjIgMjIuOSAxMS45IDM0LjkgNi45UzEyOCAzMzIuOSAxMjggMzIwbDAtMzIgOTYgMCAwIDk2LTMyIDBjLTEyLjkgMC0yNC42IDcuOC0yOS42IDE5LjhzLTIuMiAyNS43IDYuOSAzNC45bDY0IDY0YzEyLjUgMTIuNSAzMi44IDEyLjUgNDUuMyAwbDY0LTY0YzkuMi05LjIgMTEuOS0yMi45IDYuOS0zNC45UzMzMi45IDM4NCAzMjAgMzg0bC0zMiAwIDAtOTYgOTYgMCAwIDMyYzAgMTIuOSA3LjggMjQuNiAxOS44IDI5LjZzMjUuNyAyLjIgMzQuOS02LjlsNjQtNjRjMTIuNS0xMi41IDEyLjUtMzIuOCAwLTQ1LjNsLTY0LTY0Yy05LjItOS4yLTIyLjktMTEuOS0zNC45LTYuOVMzODQgMTc5LjEgMzg0IDE5MmwwIDMyLTk2IDAgMC05NiAzMiAwYzEyLjkgMCAyNC42LTcuOCAyOS42LTE5LjhzMi4yLTI1LjctNi45LTM0LjlsLTY0LTY0eiJdfSxmSWU9Tk8sbUllPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImNhci1zaWRlIixpY29uOls2NDAsNTEyLFsxMjg2NjNdLCJmNWU0IiwiTTE0NyAxMDYuN2wtMjkuOCA4NS4zIDEyMi45IDAgMC05Ni03Ny45IDBjLTYuOCAwLTEyLjkgNC4zLTE1LjEgMTAuN3pNNDguNiAxOTMuOUw4Ni41IDg1LjZDOTcuOCA1My41IDEyOC4xIDMyIDE2Mi4xIDMyTDM2MCAzMmMyNS4yIDAgNDguOSAxMS45IDY0IDMybDk2LjIgMTI4LjNDNTg3LjEgMTk2LjUgNjQwIDI1Mi4xIDY0MCAzMjBsMCAxNmMwIDM1LjMtMjguNyA2NC02NCA2NGwtMTYuNCAwYy00IDQ0LjktNDEuNyA4MC04Ny42IDgwcy04My42LTM1LjEtODcuNi04MGwtMTQ0LjcgMGMtNCA0NC45LTQxLjcgODAtODcuNiA4MHMtODMuNi0zNS4xLTg3LjYtODBsLS40IDBjLTM1LjMgMC02NC0yOC43LTY0LTY0bDAtODBjMC0zMC4xIDIwLjctNTUuMyA0OC42LTYyLjF6TTQ0MCAxOTJsLTY3LjItODkuNmMtMy00LTcuOC02LjQtMTIuOC02LjRsLTcyIDAgMCA5NiAxNTIgMHpNMTUyIDQzMmE0MCA0MCAwIDEgMCAwLTgwIDQwIDQwIDAgMSAwIDAgODB6bTM2MC00MGE0MCA0MCAwIDEgMCAtODAgMCA0MCA0MCAwIDEgMCA4MCAweiJdfSxGTz17cHJlZml4OiJmYXMiLGljb25OYW1lOiJ0cmFzaC1hcnJvdy11cCIsaWNvbjpbNDQ4LDUxMixbInRyYXNoLXJlc3RvcmUiXSwiZjgyOSIsIk0xNjcuMS0xNmwxMTMuOSAwYzEzLjggMCAyNiA4LjggMzAuNCAyMS45TDMyMCAzMiA0MTYgMzJjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJMMzIgOTZDMTQuMyA5NiAwIDgxLjcgMCA2NFMxNC4zIDMyIDMyIDMybDk2IDAgOC43LTI2LjFDMTQxLjEtNy4yIDE1My4zLTE2IDE2Ny4xLTE2ek0zMiAxNDRsMzg0IDAtMjEuMSAzMjMuMUMzOTMuMyA0OTIuNCAzNzIuMyA1MTIgMzQ3IDUxMkwxMDEgNTEyYy0yNS4zIDAtNDYuMy0xOS42LTQ3LjktNDQuOUwzMiAxNDR6bTIwOSA3OWMtOS40LTkuNC0yNC42LTkuNC0zMy45IDBsLTcyIDcyYy05LjQgOS40LTkuNCAyNC42IDAgMzMuOXMyNC42IDkuNCAzMy45IDBsMzEtMzEgMCAxMDIuMWMwIDEzLjMgMTAuNyAyNCAyNCAyNHMyNC0xMC43IDI0LTI0bDAtMTAyLjEgMzEgMzFjOS40IDkuNCAyNC42IDkuNCAzMy45IDBzOS40LTI0LjYgMC0zMy45bC03Mi03MnoiXX0sZ0llPUZPLGJJZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJsaWZlLXJpbmciLGljb246WzUxMiw1MTIsW10sImYxY2QiLCJNMzY3LjIgNDEyLjVDMzM1LjkgNDM0LjkgMjk3LjUgNDQ4IDI1NiA0NDhzLTc5LjktMTMuMS0xMTEuMi0zNS41bDU4LTU4YzE1LjggOC42IDM0IDEzLjUgNTMuMyAxMy41czM3LjQtNC45IDUzLjMtMTMuNWw1OCA1OHptOTAuNyAuOGMzMy44LTQzLjQgNTQtOTggNTQtMTU3LjNTNDkxLjggMTQyLjEgNDU4IDk4LjdjOS0xMi41IDcuOS0zMC4xLTMuNC00MS4zUzQyNS44IDQ1IDQxMy4zIDU0QzM2OS45IDIwLjIgMzE1LjMgMCAyNTYgMFMxNDIuMSAyMC4yIDk4LjcgNTRjLTEyLjUtOS0zMC4xLTcuOS00MS4zIDMuNFM0NSA4Ni4yIDU0IDk4LjdDMjAuMiAxNDIuMSAwIDE5Ni43IDAgMjU2UzIwLjIgMzY5LjkgNTQgNDEzLjNjLTkgMTIuNS03LjkgMzAuMSAzLjQgNDEuM1M4Ni4yIDQ2NyA5OC43IDQ1OGM0My40IDMzLjggOTggNTQgMTU3LjMgNTRzMTEzLjktMjAuMiAxNTcuMy01NGMxMi41IDkgMzAuMSA3LjkgNDEuMy0zLjRzMTIuNC0yOC44IDMuNC00MS4zem0tNDUuNS00Ni4xbC01OC01OGM4LjYtMTUuOCAxMy41LTM0IDEzLjUtNTMuM3MtNC45LTM3LjQtMTMuNS01My4zbDU4LTU4QzQzNC45IDE3Ni4xIDQ0OCAyMTQuNSA0NDggMjU2cy0xMy4xIDc5LjktMzUuNSAxMTEuMnpNMzY3LjIgOTkuNWwtNTggNThjLTE1LjgtOC42LTM0LTEzLjUtNTMuMy0xMy41cy0zNy40IDQuOS01My4zIDEzLjVsLTU4LTU4QzE3Ni4xIDc3LjEgMjE0LjUgNjQgMjU2IDY0czc5LjkgMTMuMSAxMTEuMiAzNS41ek0xNTcuNSAzMDkuM2wtNTggNThDNzcuMSAzMzUuOSA2NCAyOTcuNSA2NCAyNTZzMTMuMS03OS45IDM1LjUtMTExLjJsNTggNThjLTguNiAxNS44LTEzLjUgMzQtMTMuNSA1My4zczQuOSAzNy40IDEzLjUgNTMuM3pNMjA4IDI1NmE0OCA0OCAwIDEgMSA5NiAwIDQ4IDQ4IDAgMSAxIC05NiAweiJdfSx2SWU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiY29weXJpZ2h0IixpY29uOls1MTIsNTEyLFsxNjldLCJmMWY5IiwiTTI1NiA1MTJhMjU2IDI1NiAwIDEgMCAwLTUxMiAyNTYgMjU2IDAgMSAwIDAgNTEyek0yMDUuMSAzMDYuOWMyOC4xIDI4LjEgNzMuNyAyOC4xIDEwMS44IDAgOS40LTkuNCAyNC42LTkuNCAzMy45IDBzOS40IDI0LjYgMCAzMy45Yy00Ni45IDQ2LjktMTIyLjggNDYuOS0xNjkuNyAwcy00Ni45LTEyMi44IDAtMTY5LjcgMTIyLjgtNDYuOSAxNjkuNyAwYzkuNCA5LjQgOS40IDI0LjYgMCAzMy45cy0yNC42IDkuNC0zMy45IDBjLTI4LjEtMjguMS03My43LTI4LjEtMTAxLjggMHMtMjguMSA3My43IDAgMTAxLjh6Il19LHlJZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJmaWxlLXByZXNjcmlwdGlvbiIsaWNvbjpbMzg0LDUxMixbXSwiZjU3MiIsIk0wIDY0QzAgMjguNyAyOC43IDAgNjQgMEwyMTMuNSAwYzE3IDAgMzMuMyA2LjcgNDUuMyAxOC43TDM2NS4zIDEyNS4zYzEyIDEyIDE4LjcgMjguMyAxOC43IDQ1LjNMMzg0IDQ0OGMwIDM1LjMtMjguNyA2NC02NCA2NEw2NCA1MTJjLTM1LjMgMC02NC0yOC43LTY0LTY0TDAgNjR6bTIwOC01LjVsMCA5My41YzAgMTMuMyAxMC43IDI0IDI0IDI0TDMyNS41IDE3NiAyMDggNTguNXpNODggMTkyYy0xMy4zIDAtMjQgMTAuNy0yNCAyNGwwIDE0NGMwIDEzLjMgMTAuNyAyNCAyNCAyNHMyNC0xMC43IDI0LTI0bDAtNDAgMjIuNSAwIDU4LjQgNTUtMzMuNCAzMS42Yy05LjYgOS4xLTEwLjEgMjQuMy0uOSAzMy45czI0LjMgMTAuMSAzMy45IC45bDM1LjQtMzMuNSAzNS42IDMzLjVjOS43IDkuMSAyNC44IDguNiAzMy45LTFzOC42LTI0LjgtMS0zMy45bC0zMy42LTMxLjYgMzMuNi0zMS44YzkuNi05LjEgMTAuMS0yNC4zIC45LTMzLjlzLTI0LjMtMTAuMS0zMy45LS45bC0zNS43IDMzLjctNDAuOS0zOC41YzEyLjktMTEuNyAyMS4xLTI4LjYgMjEuMS00Ny41IDAtMzUuMy0yOC43LTY0LTY0LTY0bC01NiAwem0zMiA4MGwtOCAwIDAtMzIgMzIgMGM4LjggMCAxNiA3LjIgMTYgMTZzLTcuMiAxNi0xNiAxNmwtMjQgMHoiXX0seEllPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImVyYXNlciIsaWNvbjpbNTc2LDUxMixbXSwiZjEyZCIsIk0xNzguNSA0MTZsMTIzIDAgNjUuMy02NS4zLTE3My41LTE3My41LTEyNi43IDEyNi43IDExMiAxMTJ6TTIyNCA0ODBsLTQ1LjUgMGMtMTcgMC0zMy4zLTYuNy00NS4zLTE4LjdMMTcgMzQ1QzYuMSAzMzQuMSAwIDMxOS40IDAgMzA0czYuMS0zMC4xIDE3LTQxTDI2MyAxN0MyNzMuOSA2LjEgMjg4LjYgMCAzMDQgMHMzMC4xIDYuMSA0MSAxN0w1MjcgMTk5YzEwLjkgMTAuOSAxNyAyNS42IDE3IDQxcy02LjEgMzAuMS0xNyA0MWwtMTM1IDEzNSAxMjAgMGMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMmwtMjg4IDB6Il19LE9PPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImhvdXJnbGFzcy1zdGFydCIsaWNvbjpbMzg0LDUxMixbImhvdXJnbGFzcy0xIl0sImYyNTEiLCJNMzIgMEMxNC4zIDAgMCAxNC4zIDAgMzJTMTQuMyA2NCAzMiA2NGwwIDExYzAgNDIuNCAxNi45IDgzLjEgNDYuOSAxMTMuMWw2Ny45IDY3LjktNjcuOSA2Ny45QzQ4LjkgMzUzLjkgMzIgMzk0LjYgMzIgNDM3bDAgMTFjLTE3LjcgMC0zMiAxNC4zLTMyIDMyczE0LjMgMzIgMzIgMzJsMzIwIDBjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJsMC0xMWMwLTQyLjQtMTYuOS04My4xLTQ2LjktMTEzLjFsLTY3LjktNjcuOSA2Ny45LTY3LjljMzAtMzAgNDYuOS03MC43IDQ2LjktMTEzLjFsMC0xMWMxNy43IDAgMzItMTQuMyAzMi0zMlMzNjkuNyAwIDM1MiAwTDMyIDB6TTI4OCA0MzdsMCAxMS0xOTIgMCAwLTExYzAtMjUuNSAxMC4xLTQ5LjkgMjguMS02Ny45bDY3LjktNjcuOSA2Ny45IDY3LjljMTggMTggMjguMSA0Mi40IDI4LjEgNjcuOXoiXX0sd0llPU9PLFJPPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImNpcmNsZS1sZWZ0IixpY29uOls1MTIsNTEyLFs2MTg0MCwiYXJyb3ctYWx0LWNpcmNsZS1sZWZ0Il0sImYzNTkiLCJNNTEyIDI1NmEyNTYgMjU2IDAgMSAwIC01MTIgMCAyNTYgMjU2IDAgMSAwIDUxMiAwek0xMjQuNyAyNDQuN2wxMDQtMTA0YzQuNi00LjYgMTEuNS01LjkgMTcuNC0zLjVzOS45IDguMyA5LjkgMTQuOGwwIDU2IDk2IDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJsMCAzMmMwIDE3LjctMTQuMyAzMi0zMiAzMmwtOTYgMCAwIDU2YzAgNi41LTMuOSAxMi4zLTkuOSAxNC44cy0xMi45IDEuMS0xNy40LTMuNWwtMTA0LTEwNGMtNi4yLTYuMi02LjItMTYuNCAwLTIyLjZ6Il19LE1JZT1STyx6SWU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiY3J1emVpcm8tc2lnbiIsaWNvbjpbNDQ4LDUxMixbXSwiZTE1MiIsIk0yNDAgOTZjLTg4LjQgMC0xNjAgNzEuNi0xNjAgMTYwIDAgNzEuNiA0Ny4xIDEzMi4zIDExMiAxNTIuN0wxOTIgMjU2YzAtMTMuMyAxMC43LTI0IDI0LTI0IDEyLjggMCAyMy4zIDEwLjEgMjQgMjIuNyAxNS41LTkuNSAzMy41LTE0LjcgNTIuMy0xNC43bDExLjggMGMxMy4zIDAgMjQgMTAuNyAyNCAyNHMtMTAuNyAyNC0yNCAyNGwtMTEuOCAwYy0xOC44IDAtMzYuMSAxMC00NS40IDI2LjMtNC41IDcuOS02LjkgMTYuOC02LjkgMjUuOWwwIDc1LjhjNDIuNSAwIDgxLjEtMTYuNiAxMDkuOC00My42IDEyLjktMTIuMSAzMy4xLTExLjUgNDUuMiAxLjNzMTEuNSAzMy4xLTEuMyA0NS4yQzM1My43IDQ1Ni44IDI5OS41IDQ4MCAyNDAgNDgwIDExNi4zIDQ4MCAxNiAzNzkuNyAxNiAyNTZTMTE2LjMgMzIgMjQwIDMyYzU5LjUgMCAxMTMuNyAyMy4yIDE1My43IDYxLjEgMTIuOSAxMi4xIDEzLjQgMzIuNCAxLjMgNDUuMnMtMzIuNCAxMy40LTQ1LjIgMS4zQzMyMS4xIDExMi42IDI4Mi41IDk2IDI0MCA5NnoiXX0sa0llPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InNtb2tpbmciLGljb246WzU3Niw1MTIsWzEyODY4NF0sImY0OGQiLCJNMzYwIDBjMTMuMyAwIDI0IDEwLjcgMjQgMjRsMCAxOWMwIDQwLjMgMTYgNzkgNDQuNSAxMDcuNWwyMSAyMUM0NjkgMTkxIDQ4MCAyMTcuNCA0ODAgMjQ1bDAgMTljMCAxMy4zLTEwLjcgMjQtMjQgMjRzLTI0LTEwLjctMjQtMjRsMC0xOWMwLTE0LjktNS45LTI5LjEtMTYuNC0zOS42bC0yMS0yMUMzNTcuMSAxNDYuOSAzMzYgOTYgMzM2IDQzbDAtMTljMC0xMy4zIDEwLjctMjQgMjQtMjR6TTU1MiAyODhjLTEzLjMgMC0yNC0xMC43LTI0LTI0bDAtMTljMC00MC4zLTE2LTc5LTQ0LjUtMTA3LjVsLTIxLTIxQzQ0MyA5NyA0MzIgNzAuNiA0MzIgNDNsMC0xOWMwLTEzLjMgMTAuNy0yNCAyNC0yNHMyNCAxMC43IDI0IDI0bDAgMTljMCAxNC45IDUuOSAyOS4xIDE2LjQgMzkuNmwyMSAyMUM1NTQuOSAxNDEuMSA1NzYgMTkyIDU3NiAyNDVsMCAxOWMwIDEzLjMtMTAuNyAyNC0yNCAyNHpNMzIwIDQ0OGw5NiAwIDAtMzItOTYgMCAwIDMyek0wIDQxNmMwLTM1LjMgMjguNy02NCA2NC02NGwzODQgMGMxNy43IDAgMzIgMTQuMyAzMiAzMmwwIDk2YzAgMTcuNy0xNC4zIDMyLTMyIDMyTDY0IDUxMmMtMzUuMyAwLTY0LTI4LjctNjQtNjRsMC0zMnptNTc2LTQwbDAgMTEyYzAgMTMuMy0xMC43IDI0LTI0IDI0cy0yNC0xMC43LTI0LTI0bDAtMTEyYzAtMTMuMyAxMC43LTI0IDI0LTI0czI0IDEwLjcgMjQgMjR6Il19LEJPPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InNxdWFyZS1wb2xsLXZlcnRpY2FsIixpY29uOls0NDgsNTEyLFsicG9sbCJdLCJmNjgxIiwiTTY0IDMyQzI4LjcgMzIgMCA2MC43IDAgOTZMMCA0MTZjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMzIwIDBjMzUuMyAwIDY0LTI4LjcgNjQtNjRsMC0zMjBjMC0zNS4zLTI4LjctNjQtNjQtNjRMNjQgMzJ6bTU2IDE5MmMxMy4zIDAgMjQgMTAuNyAyNCAyNGwwIDExMmMwIDEzLjMtMTAuNyAyNC0yNCAyNHMtMjQtMTAuNy0yNC0yNGwwLTExMmMwLTEzLjMgMTAuNy0yNCAyNC0yNHptMTg0IDg4YzAtMTMuMyAxMC43LTI0IDI0LTI0czI0IDEwLjcgMjQgMjRsMCA0OGMwIDEzLjMtMTAuNyAyNC0yNCAyNHMtMjQtMTAuNy0yNC0yNGwwLTQ4ek0yMjQgMTI4YzEzLjMgMCAyNCAxMC43IDI0IDI0bDAgMjA4YzAgMTMuMy0xMC43IDI0LTI0IDI0cy0yNC0xMC43LTI0LTI0bDAtMjA4YzAtMTMuMyAxMC43LTI0IDI0LTI0eiJdfSxTSWU9Qk8sQ0llPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InBlcnNvbi1jaXJjbGUtbWludXMiLGljb246WzY0MCw1MTIsW10sImU1NDAiLCJNMjgwIDI0YTU2IDU2IDAgMSAwIC0xMTIgMCA1NiA1NiAwIDEgMCAxMTIgMHptMjQgMjEyLjdMMzQxIDI4Ni42YzEyLjgtMTcuNSAyOC41LTMyLjcgNDYuMy00NWwtNTYuMi03NS43QzMwNiAxMzIgMjY2LjMgMTEyIDIyNCAxMTJzLTgyIDIwLTEwNy4yIDUzLjlsLTcwLjUgOTVjLTEwLjUgMTQuMi03LjYgMzQuMiA2LjYgNDQuOHMzNC4yIDcuNiA0NC44LTYuNkwxNDQgMjM2LjcgMTQ0IDUxMmMwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMybDAtMTYwYzAtOC44IDcuMi0xNiAxNi0xNnMxNiA3LjIgMTYgMTZsMCAxNjBjMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMmwwLTI3NS4zek02NDAgNDAwYTE0NCAxNDQgMCAxIDAgLTI4OCAwIDE0NCAxNDQgMCAxIDAgMjg4IDB6bS02NCAwYzAgOC44LTcuMiAxNi0xNiAxNmwtMTI4IDBjLTguOCAwLTE2LTcuMi0xNi0xNnM3LjItMTYgMTYtMTZsMTI4IDBjOC44IDAgMTYgNy4yIDE2IDE2eiJdfSxfSWU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiYmlvaGF6YXJkIixpY29uOls1NzYsNTEyLFs5NzYzXSwiZjc4MCIsIk0yNjAgMTIuNmMwLTguMy03LjYtMTQuNS0xNS41LTEyLjEtNjAuOSAxOC44LTEwNS4xIDc1LjgtMTA1LjEgMTQzLjEgMCAyNS4xIDYuMSA0OC43IDE3IDY5LjUtMjEgMS44LTQyIDguMi02MS41IDE5LjUtNTcuOSAzMy42LTg0LjggMTAwLjItNzAuOSAxNjIuNSAxLjkgOC40IDExLjQgMTIgMTguOSA3LjYgNS0yLjkgNy42LTguNiA3LjEtMTQuNC0uMy0zLjMtLjQtNi42LS40LTEwLjEgMC0xMjMuNSAxODQuNC0xMjMuNSAxODQuNCAwIDAgODguNC05NC41IDExMy42LTE0OC4yIDc1LjQtNC41LTMuMi0xMC41LTMuOS0xNS4zLTEuMS03IDQuMS04LjYgMTMuNi0yLjcgMTkuMSA0Ni42IDQzLjggMTE4IDUzLjkgMTc2LjEgMjAuMiAxNy45LTEwLjQgMzIuOC0yMy45IDQ0LjUtMzkuNCAxMS43IDE1LjYgMjYuNiAyOS4xIDQ0LjUgMzkuNCA1OC4xIDMzLjcgMTI5LjUgMjMuNiAxNzYuMS0yMC4yIDUuOS01LjUgNC4zLTE1LjEtMi43LTE5LjEtNC44LTIuOC0xMC44LTIuMS0xNS4zIDEuMS01My43IDM4LjItMTQ4LjIgMTMtMTQ4LjItNzUuNCAwLTEyMy41IDE4NC40LTEyMy41IDE4NC40IDAgMCAzLjQtLjEgNi44LS40IDEwLjEtLjUgNS44IDIuMSAxMS41IDcuMSAxNC40IDcuNCA0LjMgMTcgLjggMTguOS03LjYgMTMuOS02Mi4yLTEzLTEyOC45LTcwLjktMTYyLjUtMTkuNS0xMS4zLTQwLjQtMTcuNy02MS41LTE5LjUgMTAuOS0yMC44IDE3LTQ0LjQgMTctNjkuNSAwLTY3LjMtNDQuMi0xMjQuMy0xMDUuMS0xNDMuMS03LjktMi40LTE1LjUgMy44LTE1LjUgMTIuMSAwIDUuOSA0IDExIDkuNSAxMy4yIDgzLjQgMzMuNiA3MC44IDE3OC40LTM3LjggMTc4LjRTMTY3LjEgNTkuNCAyNTAuNSAyNS44YzUuNS0yLjIgOS41LTcuMyA5LjUtMTMuMnpNMjQ4LjQgMjg4YTQwIDQwIDAgMSAxIDgwIDAgNDAgNDAgMCAxIDEgLTgwIDB6TTQzNSAzMTcuN2MtMTYuMiAwLTMxLjQgNS41LTQyLjEgMTUtMTAuMSA5LjEtMTguMSAyMy40LTE4LjEgNDUuNiAwIDIxLjEgNy4yIDM1IDE2LjUgNDQuMSAzMi4yLTI0LjYgNTUuNS02MC41IDYzLjktMTAxLjgtNi4zLTEuOS0xMy4yLTMtMjAuMi0zek0yMDIgMzc4LjNjMC0yMi4zLTgtMzYuNi0xOC4xLTQ1LjYtMTAuNy05LjYtMjUuOS0xNS00Mi4xLTE1LTcgMC0xMy45IDEtMjAuMiAzIDguNCA0MS4zIDMxLjYgNzcuMiA2My45IDEwMS44IDkuNC05LjEgMTYuNS0yMy4xIDE2LjUtNDQuMnptNDEuMi0yMjQuM2M5IDEwLjIgMjMuMiAxOC4yIDQ1LjIgMTguMnMzNi4yLTggNDUuMi0xOC4yYzYuNy03LjYgMTEuNS0xNy41IDEzLjYtMjguNC0xOC4zLTYuOC0zOC4yLTEwLjUtNTguOC0xMC41cy00MC41IDMuNy01OC44IDEwLjVjMi4yIDEwLjkgNi45IDIwLjggMTMuNiAyOC41eiJdfSxITz17cHJlZml4OiJmYXMiLGljb25OYW1lOiJiZWxsLWNvbmNpZXJnZSIsaWNvbjpbNTEyLDUxMixbMTI4NzE4LCJjb25jaWVyZ2UtYmVsbCJdLCJmNTYyIiwiTTIxNiA2NGMtMTMuMyAwLTI0IDEwLjctMjQgMjRzMTAuNyAyNCAyNCAyNGwxNiAwIDAgMzMuM0MxMjQuOCAxNTYuNyA0MC4yIDI0My43IDMyLjYgMzUybDQ0Ni45IDBDNDcxLjggMjQzLjcgMzg3LjIgMTU2LjcgMjgwIDE0NS4zbDAtMzMuMyAxNiAwYzEzLjMgMCAyNC0xMC43IDI0LTI0cy0xMC43LTI0LTI0LTI0bC04MCAwek0yNCA0MDBjLTEzLjMgMC0yNCAxMC43LTI0IDI0czEwLjcgMjQgMjQgMjRsNDY0IDBjMTMuMyAwIDI0LTEwLjcgMjQtMjRzLTEwLjctMjQtMjQtMjRMMjQgNDAweiJdfSxUSWU9SE8sTEllPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InJ1bGVyLWhvcml6b250YWwiLGljb246WzU3Niw1MTIsW10sImY1NDciLCJNNDggMzg0Yy0yNi41IDAtNDgtMjEuNS00OC00OEwwIDE3NmMwLTI2LjUgMjEuNS00OCA0OC00OGwyNCAwIDAgMTA0YzAgMTMuMyAxMC43IDI0IDI0IDI0czI0LTEwLjcgMjQtMjRsMC0xMDQgNDggMCAwIDcyYzAgMTMuMyAxMC43IDI0IDI0IDI0czI0LTEwLjcgMjQtMjRsMC03MiA0OCAwIDAgMTA0YzAgMTMuMyAxMC43IDI0IDI0IDI0czI0LTEwLjcgMjQtMjRsMC0xMDQgNDggMCAwIDcyYzAgMTMuMyAxMC43IDI0IDI0IDI0czI0LTEwLjcgMjQtMjRsMC03MiA0OCAwIDAgMTA0YzAgMTMuMyAxMC43IDI0IDI0IDI0czI0LTEwLjcgMjQtMjRsMC0xMDQgMjQgMGMyNi41IDAgNDggMjEuNSA0OCA0OGwwIDE2MGMwIDI2LjUtMjEuNSA0OC00OCA0OEw0OCAzODR6Il19LCRJZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJob3JzZSIsaWNvbjpbNTc2LDUxMixbMTI4MDE0XSwiZjZmMCIsIk00NDggMjM4LjFsMC03OC4xIDE2IDAgOS44IDE5LjZjMTIuNSAyNS4xIDQyLjIgMzYuNCA2OC4zIDI2IDIwLjUtOC4yIDMzLjktMjggMzMuOS01MC4xTDU3NiA4MGMwLTE5LjEtOC40LTM2LjMtMjEuNy00OGw1LjcgMGM4LjggMCAxNi03LjIgMTYtMTZTNTY4LjggMCA1NjAgMEw0NDggMEMzNzcuMyAwIDMyMCA1Ny4zIDMyMCAxMjhsLTE3MS4yIDBDMTE4LjEgMTI4IDkxLjIgMTQ0LjMgNzYuMyAxNjguOCAzMy4yIDE3NC41IDAgMjExLjQgMCAyNTZsMCA1NmMwIDEzLjMgMTAuNyAyNCAyNCAyNHMyNC0xMC43IDI0LTI0bDAtNTZjMC0xMy40IDYuNi0yNS4yIDE2LjctMzIuNSAxLjYgMTMgNi4zIDI1LjQgMTMuNiAzNi40bDI4LjIgNDIuNGM4LjMgMTIuNCA2LjQgMjguNy0xLjIgNDEuNi0xNi41IDI4LTIwLjYgNjIuMi0xMCA5My45bDE3LjUgNTIuNGM0LjQgMTMuMSAxNi42IDIxLjkgMzAuNCAyMS45bDMzLjcgMGMyMS44IDAgMzcuMy0yMS40IDMwLjQtNDIuMWwtMjAuOC02Mi41Yy0yLjEtNi40LS41LTEzLjQgNC4zLTE4LjJsMTIuNy0xMi43YzEzLjItMTMuMiAyMC42LTMxLjEgMjAuNi00OS43IDAtMi4zLS4xLTQuNi0uMy02LjlsODQgMjRjNC4xIDEuMiA4LjIgMi4xIDEyLjMgMi44TDMyMCA0ODBjMCAxNy43IDE0LjMgMzIgMzIgMzJsMzIgMGMxNy43IDAgMzItMTQuMyAzMi0zMmwwLTE2NC4zYzE5LjItMTkuMiAzMS41LTQ1LjcgMzItNzUuN2wwIDAgMC0xLjl6TTQ5NiA2NGExNiAxNiAwIDEgMSAwIDMyIDE2IDE2IDAgMSAxIDAtMzJ6Il19LEFJZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJjYWxlbmRhciIsaWNvbjpbNDQ4LDUxMixbMTI4MTk3LDEyODE5OF0sImYxMzMiLCJNMTI4IDBDMTEwLjMgMCA5NiAxNC4zIDk2IDMybDAgMzItMzIgMEMyOC43IDY0IDAgOTIuNyAwIDEyOGwwIDQ4IDQ0OCAwIDAtNDhjMC0zNS4zLTI4LjctNjQtNjQtNjRsLTMyIDAgMC0zMmMwLTE3LjctMTQuMy0zMi0zMi0zMnMtMzIgMTQuMy0zMiAzMmwwIDMyLTEyOCAwIDAtMzJjMC0xNy43LTE0LjMtMzItMzItMzJ6TTAgMjI0TDAgNDE2YzAgMzUuMyAyOC43IDY0IDY0IDY0bDMyMCAwYzM1LjMgMCA2NC0yOC43IDY0LTY0bDAtMTkyLTQ0OCAweiJdfSxESWU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiaGFuZHMtaG9sZGluZy1jaGlsZCIsaWNvbjpbNjQwLDUxMixbXSwiZTRmYSIsIk0zMjAtMzJhNDAgNDAgMCAxIDEgMCA4MCA0MCA0MCAwIDEgMSAwLTgwek00MCA2NGMyMi4xIDAgNDAgMTcuOSA0MCA0MGwwIDE2MC4yYzAgMTcgNi43IDMzLjMgMTguNyA0NS4zbDUxLjEgNTEuMWM4LjMgOC4zIDIxLjMgOS42IDMxIDMuMSAxMi45LTguNiAxNC43LTI2LjkgMy43LTM3LjgtNy4zLTcuMy0yMy4xLTIzLjEtNDcuMi00Ny4yLTEyLjUtMTIuNS0xMi41LTMyLjggMC00NS4zczMyLjgtMTIuNSA0NS4zIDBjMjQuMSAyNC4xIDM5LjkgMzkuOSA0Ny4yIDQ3LjJsMCAwIDI1LjMgMjUuM2MyMSAyMSAzMi44IDQ5LjUgMzIuOCA3OS4ybDAgNzguOWMwIDI2LjUtMjEuNSA0OC00OCA0OGwtNjYuNyAwYy0xNyAwLTMzLjMtNi43LTQ1LjMtMTguN0wyOC4xIDM5My40QzEwLjEgMzc1LjQgMCAzNTEgMCAzMjUuNUwwIDEwNEMwIDgxLjkgMTcuOSA2NCA0MCA2NHptNTYwIDBjMjIuMSAwIDQwIDE3LjkgNDAgNDBsMCAyMjEuNWMwIDI1LjUtMTAuMSA0OS45LTI4LjEgNjcuOUw1MTIgNDkzLjNjLTEyIDEyLTI4LjMgMTguNy00NS4zIDE4LjdMNDAwIDUxMmMtMjYuNSAwLTQ4LTIxLjUtNDgtNDhsMC03OC45YzAtMjkuNyAxMS44LTU4LjIgMzIuOC03OS4ybDI1LjMtMjUuMyAwIDBjNy4zLTcuMyAyMy4xLTIzLjEgNDcuMi00Ny4yIDEyLjUtMTIuNSAzMi44LTEyLjUgNDUuMyAwczEyLjUgMzIuOCAwIDQ1LjNjLTI0LjEgMjQuMS0zOS45IDM5LjktNDcuMiA0Ny4yLTExIDExLTkuMiAyOS4yIDMuNyAzNy44IDkuNyA2LjUgMjIuNyA1LjIgMzEtMy4xbDUxLjEtNTEuMWMxMi0xMiAxOC43LTI4LjMgMTguNy00NS4zTDU2MCAxMDRjMC0yMi4xIDE3LjktNDAgNDAtNDB6TTM4NC41IDE0OWwtMTkuOC0xNi43IDExLjEgODguOGMxLjYgMTMuMi03LjcgMjUuMS0yMC44IDI2LjhzLTI1LjEtNy43LTI2LjgtMjAuOGwtNC40LTM1LTcuNiAwLTQuNCAzNWMtMS42IDEzLjItMTMuNiAyMi41LTI2LjggMjAuOHMtMjIuNS0xMy42LTIwLjgtMjYuOGwxMS4xLTg4LjgtMTkuOCAxNi43Yy0xMC4xIDguNi0yNS4zIDcuMy0zMy44LTIuOHMtNy4zLTI1LjMgMi44LTMzLjhsMjcuOS0yMy42QzI3MS4zIDcyLjggMjk1LjMgNjQgMzIwIDY0czQ4LjcgOC44IDY3LjYgMjQuN2wyNy45IDIzLjZjMTAuMSA4LjYgMTEuNCAyMy43IDIuOCAzMy44cy0yMy43IDExLjQtMzMuOCAyLjh6Il19LEVJZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJpdGFsaWMiLGljb246WzM4NCw1MTIsW10sImYwMzMiLCJNMTI4IDY0YzAtMTcuNyAxNC4zLTMyIDMyLTMybDE5MiAwYzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMybC01OC43IDAtMTMzLjMgMzIwIDY0IDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJMMzIgNDgwYy0xNy43IDAtMzItMTQuMy0zMi0zMnMxNC4zLTMyIDMyLTMybDU4LjcgMCAxMzMuMy0zMjAtNjQgMGMtMTcuNyAwLTMyLTE0LjMtMzItMzJ6Il19LFBJZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJraGFuZGEiLGljb246WzUxMiw1MTIsWzk3NzJdLCJmNjZkIiwiTTI0MC43IDhjOC45LTcuNCAyMS44LTcuNCAzMC43IDBsMzcuOCAzMS41YzguNyA3LjMgMTEuMSAxOS42IDYgMjkuNi0xLjIgMi40LTIuOCA1LjUtNC42IDkuMiAzNC4yIDE5LjIgNTcuMyA1NS44IDU3LjMgOTcuOHMtMjMuMSA3OC42LTU3LjMgOTcuOGMxLjggMy43IDMuMyA2LjggNC42IDkuMiA1LjEgMTAgMi43IDIyLjMtNiAyOS42bC0zNy4yIDMxIDAgMTkuOGMyMi45LTE1LjcgNDguNC0zMy4zIDc2LjctNTIuNyA0Mi44LTI5LjQgNjguNC03OCA2OC40LTEzMGwwLTExLjFjMC0yMy45LTcuMS00Ny4zLTIwLjQtNjcuMi01LjEtNy43LTQuNi0xNy44IDEuNy0yNC42IDYuNi03LjEgMTcuMi04LjEgMjUuMi0yLjggMjcuNSAxOC4xIDg5LjQgNjcuNSA4OS40IDE0OS4xIDAgNDYuNS0yMC4yIDg4LjYtNDEuOCAxMjAuNC0yMS42IDMyLTQ1LjYgNTUtNTUuMyA2My44LTcuOCA3LjEtMTkgNy45LTI3LjYgM2wtNzAuOC00MC4zLTMyLjcgMjIuNSA0NS41IDMxLjNjMS44LS40IDMuNy0uNyA1LjctLjcgMTMuMyAwIDI0IDEwLjcgMjQgMjRzLTEwLjcgMjQtMjQgMjRjLTEyLjIgMC0yMi4zLTkuMS0yMy44LTIxbC00MC4yLTI3LjYgMCAyOC45YzkuNiA1LjUgMTYgMTUuOSAxNiAyNy43IDAgMTcuNy0xNC4zIDMyLTMyIDMycy0zMi0xNC4zLTMyLTMyYzAtMTEuOCA2LjQtMjIuMiAxNi0yNy43bDAtMjguMS00MC4zIDI3LjdjLTEuOCAxMS40LTExLjggMjAuMS0yMy43IDIwLjEtMTMuMyAwLTI0LTEwLjctMjQtMjRzMTAuNy0yNCAyNC0yNGMyLjIgMCA0LjQgLjMgNi41IC45bDQ1LjgtMzEuNS0zMi43LTIyLjUtNzAuOCA0MC4zYy04LjcgNC45LTE5LjggNC4xLTI3LjYtMy05LjctOC44LTMzLjctMzEuOS01NS4zLTYzLjgtMjEuNS0zMS44LTQxLjgtNzMuOS00MS44LTEyMC40IDAtODEuNyA2MS45LTEzMS4xIDg5LjQtMTQ5LjEgOC4xLTUuMyAxOC42LTQuMyAyNS4yIDIuOCA2LjQgNi45IDYuOCAxNyAxLjcgMjQuNi0xMy4zIDE5LjktMjAuNCA0My4zLTIwLjQgNjcuMmwwIDExLjFjMCA1MS45IDI1LjYgMTAwLjYgNjguNCAxMzAgMjguNCAxOS42IDUzLjcgMzYuOSA3NS42IDUybDAtMTkuMS0zNy4yLTMxYy04LjctNy4zLTExLjEtMTkuNi02LTI5LjYgMS4yLTIuNCAyLjgtNS41IDQuNi05LjItMzQuMi0xOS4yLTU3LjMtNTUuOC01Ny4zLTk3LjhzMjMuMS03OC42IDU3LjMtOTcuOGMtMS44LTMuNy0zLjMtNi44LTQuNi05LjItNS4xLTEwLTIuNy0yMi4zIDYtMjkuNkwyNDAuNyA4ek0yMjAuMyAxMjIuOWMtMTcgMTEuNS0yOC4yIDMxLTI4LjIgNTMuMXMxMS4yIDQxLjYgMjguMiA1My4xYzYuOC0xOS4yIDExLjgtMzguNCAxMS44LTUzLjFzLTQuOS0zMy45LTExLjgtNTMuMXptNzEuNSAxMDYuMmMxNy0xMS41IDI4LjItMzEgMjguMi01My4xcy0xMS4yLTQxLjYtMjguMi01My4xYy02LjggMTkuMi0xMS44IDM4LjQtMTEuOCA1My4xczQuOSAzMy45IDExLjggNTMuMXoiXX0scU89e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZmFjZS1mcm93bi1vcGVuIixpY29uOls1MTIsNTEyLFsxMjg1NTAsImZyb3duLW9wZW4iXSwiZjU3YSIsIk0yNTYgNTEyYTI1NiAyNTYgMCAxIDAgMC01MTIgMjU2IDI1NiAwIDEgMCAwIDUxMnpNMTc2IDE3NmEzMiAzMiAwIDEgMSAwIDY0IDMyIDMyIDAgMSAxIDAtNjR6bTEyOCAzMmEzMiAzMiAwIDEgMSA2NCAwIDMyIDMyIDAgMSAxIC02NCAwek0xODIuNCAzODIuNWMtMTIuNCA1LjItMjYuNS00LjEtMjEuMS0xNi40IDE2LTM2LjYgNTIuNC02Mi4xIDk0LjgtNjIuMXM3OC44IDI1LjYgOTQuOCA2Mi4xYzUuNCAxMi4zLTguNyAyMS42LTIxLjEgMTYuNC0yMi40LTkuNS00Ny40LTE0LjgtNzMuNy0xNC44cy01MS4zIDUuMy03My43IDE0Ljh6Il19LElJZT1xTyxvZz17cHJlZml4OiJmYXMiLGljb25OYW1lOiJjaGVjayIsaWNvbjpbNDQ4LDUxMixbMTAwMDMsMTAwMDRdLCJmMDBjIiwiTTQzNC44IDcwLjFjMTQuMyAxMC40IDE3LjUgMzAuNCA3LjEgNDQuN2wtMjU2IDM1MmMtNS41IDcuNi0xNCAxMi4zLTIzLjQgMTMuMXMtMTguNS0yLjctMjUuMS05LjNsLTEyOC0xMjhjLTEyLjUtMTIuNS0xMi41LTMyLjggMC00NS4zczMyLjgtMTIuNSA0NS4zIDBsMTAxLjUgMTAxLjUgMjM0LTMyMS43YzEwLjQtMTQuMyAzMC40LTE3LjUgNDQuNy03LjF6Il19LE5JZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJmaW5nZXJwcmludCIsaWNvbjpbNTEyLDUxMixbXSwiZjU3NyIsIk00OCAyNTZjMC0xMTQuOSA5My4xLTIwOCAyMDgtMjA4IDYzLjEgMCAxMTkuNiAyOC4xIDE1Ny44IDcyLjUgOC42IDEwLjEgMjMuOCAxMS4yIDMzLjggMi42czExLjItMjMuOCAyLjYtMzMuOEM0MDMuMyAzNC42IDMzMy43IDAgMjU2IDAgMTE0LjYgMCAwIDExNC42IDAgMjU2bDAgNDBjMCAxMy4zIDEwLjcgMjQgMjQgMjRzMjQtMTAuNyAyNC0yNGwwLTQwem00NTguNS01Mi45Yy0yLjctMTMtMTUuNS0yMS4zLTI4LjQtMTguNXMtMjEuMyAxNS41LTE4LjUgMjguNGMyLjkgMTMuOSA0LjUgMjguMyA0LjUgNDMuMWwwIDQwYzAgMTMuMyAxMC43IDI0IDI0IDI0czI0LTEwLjcgMjQtMjRsMC00MGMwLTE4LjEtMS45LTM1LjgtNS41LTUyLjl6TTI1NiA4MGMtMTkgMC0zNy40IDMtNTQuNSA4LjYtMTUuMiA1LTE4LjcgMjMuNy04LjMgMzUuOSA3LjEgOC4zIDE4LjggMTAuOCAyOS40IDcuOSAxMC42LTIuOSAyMS44LTQuNCAzMy40LTQuNCA3MC43IDAgMTI4IDU3LjMgMTI4IDEyOGwwIDI0LjljMCAyNS4yLTEuNSA1MC4zLTQuNCA3NS4zLTEuNyAxNC42IDkuNCAyNy44IDI0LjIgMjcuOCAxMS44IDAgMjEuOS04LjYgMjMuMy0yMC4zIDMuMy0yNy40IDUtNTUgNS04Mi43bDAtMjQuOWMwLTk3LjItNzguOC0xNzYtMTc2LTE3NnpNMTUwLjcgMTQ4LjdjLTkuMS0xMC42LTI1LjMtMTEuNC0zMy45LS40LTIzLjEgMjkuOC0zNi44IDY3LjEtMzYuOCAxMDcuN2wwIDI0LjljMCAyNC4yLTIuNiA0OC40LTcuOCA3MS45LTMuNCAxNS42IDcuOSAzMS4xIDIzLjkgMzEuMSAxMC41IDAgMTkuOS03IDIyLjItMTcuMyA2LjQtMjguMSA5LjctNTYuOCA5LjctODUuOGwwLTI0LjljMC0yNy4yIDguNS01Mi40IDIyLjktNzMuMSA3LjItMTAuNCA4LTI0LjYtLjItMzQuMnpNMjU2IDE2MGMtNTMgMC05NiA0My05NiA5NmwwIDI0LjljMCAzNS45LTQuNiA3MS41LTEzLjggMTA2LjEtMy44IDE0LjMgNi43IDI5IDIxLjUgMjkgOS41IDAgMTcuOS02LjIgMjAuNC0xNS40IDEwLjUtMzkgMTUuOS03OS4yIDE1LjktMTE5LjdsMC0yNC45YzAtMjguNyAyMy4zLTUyIDUyLTUyczUyIDIzLjMgNTIgNTJsMCAyNC45YzAgMzYuMy0zLjUgNzIuNC0xMC40IDEwNy45LTIuNyAxMy45IDcuNyAyNy4yIDIxLjggMjcuMiAxMC4yIDAgMTktNyAyMS0xNyA3LjctMzguOCAxMS42LTc4LjMgMTEuNi0xMTguMWwwLTI0LjljMC01My00My05Ni05Ni05NnptMjQgOTZjMC0xMy4zLTEwLjctMjQtMjQtMjRzLTI0IDEwLjctMjQgMjRsMCAyNC45YzAgNTkuOS0xMSAxMTkuMy0zMi41IDE3NS4ybC01LjkgMTUuM2MtNC44IDEyLjQgMS40IDI2LjMgMTMuOCAzMXMyNi4zLTEuNCAzMS0xMy44bDUuOS0xNS4zQzI2Ny45IDQxMS45IDI4MCAzNDYuNyAyODAgMjgwLjlsMC0yNC45eiJdfSxGSWU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiY2hhcmdpbmctc3RhdGlvbiIsaWNvbjpbNTc2LDUxMixbXSwiZjVlNyIsIk02NCA2NEM2NCAyOC43IDkyLjcgMCAxMjggMEwyODggMGMzNS4zIDAgNjQgMjguNyA2NCA2NGwwIDIyNGM0NC4yIDAgODAgMzUuOCA4MCA4MGwwIDEyYzAgMTEgOSAyMCAyMCAyMHMyMC05IDIwLTIwbDAtMTI3LjdjLTMyLjUtMTAuMi01Ni00MC41LTU2LTc2LjNsMC0zMmMwLTguOCA3LjItMTYgMTYtMTZsMTYgMCAwLTQ4YzAtOC44IDcuMi0xNiAxNi0xNnMxNiA3LjIgMTYgMTZsMCA0OCAzMiAwIDAtNDhjMC04LjggNy4yLTE2IDE2LTE2czE2IDcuMiAxNiAxNmwwIDQ4IDE2IDBjOC44IDAgMTYgNy4yIDE2IDE2bDAgMzJjMCAzNS44LTIzLjUgNjYuMS01NiA3Ni4zTDUyMCAzODBjMCAzNy42LTMwLjQgNjgtNjggNjhzLTY4LTMwLjQtNjgtNjhsMC0xMmMwLTE3LjctMTQuMy0zMi0zMi0zMmwwIDEyOS40YzkuMyAzLjMgMTYgMTIuMiAxNiAyMi42IDAgMTMuMy0xMC43IDI0LTI0IDI0TDcyIDUxMmMtMTMuMyAwLTI0LTEwLjctMjQtMjQgMC0xMC41IDYuNy0xOS4zIDE2LTIyLjZMNjQgNjR6bTgyLjcgMTI1LjdsMzkgMC0yMC45IDY2LjljLTIuNCA3LjYgMy4zIDE1LjQgMTEuMyAxNS40IDIuOSAwIDUuNi0xIDcuOC0yLjlsOTQuNi04MmMzLjEtMi43IDQuOS02LjYgNC45LTEwLjcgMC03LjgtNi4zLTE0LjEtMTQuMS0xNC4xbC0zOSAwIDIwLjktNjYuOWMyLjQtNy42LTMuMy0xNS40LTExLjMtMTUuNC0yLjkgMC01LjYgMS03LjggMi45bC05NC42IDgyYy0zLjEgMi43LTQuOSA2LjYtNC45IDEwLjcgMCA3LjggNi4zIDE0LjEgMTQuMSAxNC4xeiJdfSxPSWU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToidXNlci1sb2NrIixpY29uOls1NzYsNTEyLFtdLCJmNTAyIiwiTTIyNCA4YTEyMCAxMjAgMCAxIDEgMCAyNDAgMTIwIDEyMCAwIDEgMSAwLTI0MHpNMTk0LjMgMzA0bDU5LjQgMGMyOS43IDAgNTcuNyA3LjMgODIuMyAyMC4xbDAgNC4zYy0xOS42IDE3LjYtMzIgNDMuMS0zMiA3MS41bDAgOTZjMCA1LjUgLjUgMTAuOSAxLjMgMTYuMUw0NS43IDUxMkMyOS4zIDUxMiAxNiA0OTguNyAxNiA0ODIuMyAxNiAzODMuOCA5NS44IDMwNCAxOTQuMyAzMDR6bTMwMS43IC4xYzAtMTcuNy0xNC4zLTMyLTMyLTMycy0zMiAxNC4zLTMyIDMybDAgNDcuOSA2NCAwIDAtNDcuOXpNMzUyIDQwMGMwLTIwLjkgMTMuNC0zOC43IDMyLTQ1LjNsMC01MC42YzAtNDQuMiAzNS44LTgwIDgwLTgwczgwIDM1LjggODAgODBsMCA1MC42YzE4LjYgNi42IDMyIDI0LjQgMzIgNDUuM2wwIDk2YzAgMjYuNS0yMS41IDQ4LTQ4IDQ4bC0xMjggMGMtMjYuNSAwLTQ4LTIxLjUtNDgtNDhsMC05NnoiXX0sVk89e3ByZWZpeDoiZmFzIixpY29uTmFtZToibW9iaWxlLXNjcmVlbi1idXR0b24iLGljb246WzM4NCw1MTIsWyJtb2JpbGUtYWx0Il0sImYzY2QiLCJNMTYgNjRDMTYgMjguNyA0NC43IDAgODAgMEwzMDQgMGMzNS4zIDAgNjQgMjguNyA2NCA2NGwwIDM4NGMwIDM1LjMtMjguNyA2NC02NCA2NEw4MCA1MTJjLTM1LjMgMC02NC0yOC43LTY0LTY0TDE2IDY0em02NCAwbDAgMzA0IDIyNCAwIDAtMzA0LTIyNCAwek0xOTIgNDcyYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMyLTMyIDE0LjMtMzIgMzIgMTQuMyAzMiAzMiAzMnoiXX0sUkllPVZPLEJJZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJhbmNob3ItY2lyY2xlLWNoZWNrIixpY29uOls2NDAsNTEyLFtdLCJlNGFhIiwiTTMyMCA5NmEzMiAzMiAwIDEgMSAtNjQgMCAzMiAzMiAwIDEgMSA2NCAwek0yODggMGMtNTMgMC05NiA0My05NiA5NiAwIDQxLjggMjYuNyA3Ny40IDY0IDkwLjVsMCAyNTcuOWMtNjIuOS0xNC4zLTExMC4yLTY5LjctMTExLjktMTM2LjVsMTYuMSAxNC4xYzEwIDguNyAyNS4xIDcuNyAzMy45LTIuM3M3LjctMjUuMS0yLjMtMzMuOWwtNjQtNTZjLTktNy45LTIyLjYtNy45LTMxLjYgMGwtNjQgNTZjLTEwIDguNy0xMSAyMy45LTIuMyAzMy45czIzLjkgMTEgMzMuOSAyLjNMODAgMzA3LjljMi4xIDExMy4xIDk0LjQgMjA0LjEgMjA4IDIwNC4xIDE2LjYgMCAzMi43LTEuOSA0OC4yLTUuNi0yMC4zLTMwLjUtMzIuMi02Ny0zMi4yLTEwNi40IDAtMjcuMyA1LjctNTMuMyAxNi03Ni45bDAtMTM2LjZjMzcuMy0xMy4yIDY0LTQ4LjcgNjQtOTAuNSAwLTUzLTQzLTk2LTk2LTk2ek02NDAgNDAwYTE0NCAxNDQgMCAxIDAgLTI4OCAwIDE0NCAxNDQgMCAxIDAgMjg4IDB6bS04Ni42LTYwLjljNy4xIDUuMiA4LjcgMTUuMiAzLjUgMjIuM2wtNjQgODhjLTIuOCAzLjgtNyA2LjItMTEuNyA2LjVzLTkuMy0xLjMtMTIuNi00LjZsLTQwLTQwYy02LjItNi4yLTYuMi0xNi40IDAtMjIuNnMxNi40LTYuMiAyMi42IDBsMjYuOCAyNi44IDUzLTcyLjljNS4yLTcuMSAxNS4yLTguNyAyMi40LTMuNXoiXX0sak89e3ByZWZpeDoiZmFzIixpY29uTmFtZToicGVyc29uLXdhbGtpbmctd2l0aC1jYW5lIixpY29uOls1NzYsNTEyLFsiYmxpbmQiXSwiZjI5ZCIsIk0yMjQtMzJhNTYgNTYgMCAxIDEgMCAxMTIgNTYgNTYgMCAxIDEgMC0xMTJ6TTE2MCAyMDUuM2wtMjIuNiAyMi42Yy02IDYtOS40IDE0LjEtOS40IDIyLjZsMCAzNy41YzAgMTcuNy0xNC4zIDMyLTMyIDMycy0zMi0xNC4zLTMyLTMybDAtMzcuNWMwLTI1LjUgMTAuMS00OS45IDI4LjEtNjcuOWwzNC40LTM0LjRjMjMuMi0yMy4yIDU0LjYtMzYuMiA4Ny4zLTM2LjIgMzYuMSAwIDcwLjMgMTUuOCA5My44IDQzLjFsNjguNiA4MGMxMS41IDEzLjQgOS45IDMzLjYtMy41IDQ1LjFzLTMzLjYgOS45LTQ1LjEtMy41bC01NS43LTY1IDAgMTE4LjYgMzQuNSAyOS42YzE3LjcgMTUuMiAyOS4zIDM2LjIgMzIuNiA1OS4zbDEyLjYgODguMWMyLjUgMTcuNS05LjcgMzMuNy0yNy4yIDM2LjJzLTMzLjctOS43LTM2LjItMjcuMmwtMTIuNi04OC4xYy0xLjEtNy43LTUtMTQuNy0xMC45LTE5LjhsLTcxLjQtNjEuMmMtMjEuMy0xOC4yLTMzLjUtNDQuOS0zMy41LTcyLjlsMC02OS4zem0uMSAxNjUuOGMyLjQgMi4zIDQuOCA0LjYgNy40IDYuOGw0NiAzOS40LTIuMiA3LjZjLTQuNSAxNS43LTEyLjkgMzAtMjQuNCA0MS41bC02OC4zIDY4LjNjLTEyLjUgMTIuNS0zMi44IDEyLjUtNDUuMyAwcy0xMi41LTMyLjggMC00NS4zbDY4LjMtNjguM2MzLjgtMy44IDYuNi04LjYgOC4xLTEzLjhMMTYwLjEgMzcxem0yMzMuNS02Mi4yYzEwLjYtOCAyNS42LTUuOCAzMy42IDQuOGwxNDQgMTkyYzggMTAuNiA1LjggMjUuNi00LjggMzMuNnMtMjUuNiA1LjgtMzMuNi00LjhsLTE0NC0xOTJjLTgtMTAuNi01LjgtMjUuNiA0LjgtMzMuNnoiXX0sSEllPWpPLFVPPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImZpbGUtd2F2ZWZvcm0iLGljb246WzM4NCw1MTIsWyJmaWxlLW1lZGljYWwtYWx0Il0sImY0NzgiLCJNMCA2NEMwIDI4LjcgMjguNyAwIDY0IDBMMjEzLjUgMGMxNyAwIDMzLjMgNi43IDQ1LjMgMTguN0wzNjUuMyAxMjUuM2MxMiAxMiAxOC43IDI4LjMgMTguNyA0NS4zTDM4NCA0NDhjMCAzNS4zLTI4LjcgNjQtNjQgNjRMNjQgNTEyYy0zNS4zIDAtNjQtMjguNy02NC02NGwwLTk2IDYwLjMgMCA0OC44IDYyLjdjNS4xIDYuNiAxMy4zIDEwIDIxLjYgOS4xczE1LjUtNi4xIDE5LjEtMTMuNmw0Mi45LTkxLjIgOS45IDE5LjhjNC4xIDguMSAxMi40IDEzLjMgMjEuNSAxMy4zbDcyIDBjMTMuMyAwIDI0LTEwLjcgMjQtMjRzLTEwLjctMjQtMjQtMjRsLTU3LjIgMC0yNS40LTUwLjdjLTQuMS04LjItMTIuNi0xMy40LTIxLjgtMTMuM3MtMTcuNSA1LjUtMjEuNCAxMy44bC00Ny4zIDEwMC42LTMyLTQxLjFDODYuNCAzMDcuNCA3OS40IDMwNCA3MiAzMDRMMCAzMDQgMCA2NHptMjA4LTUuNWwwIDkzLjVjMCAxMy4zIDEwLjcgMjQgMjQgMjRMMzI1LjUgMTc2IDIwOCA1OC41eiJdfSxxSWU9VU8sVkllPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImhvdXNlLWNyYWNrIixpY29uOls1MTIsNTEyLFtdLCJlM2IxIiwiTTI3Ny44IDguNmMtMTIuMy0xMS40LTMxLjMtMTEuNC00My41IDBsLTIyNCAyMDhjLTkuNiA5LTEyLjggMjIuOS04IDM1LjFTMTguOCAyNzIgMzIgMjcybDE2IDAgMCAxNzZjMCAzNS4zIDI4LjcgNjQgNjQgNjRsODYuNCAwLTMxLjMtNTIuMmMtNC4xLTYuOC0yLjYtMTUuNSAzLjUtMjAuNUwyNTYgMzY4IDE5NS44IDI4NS4yYy0xMC45LTE1IDguMi0zMy41IDIyLjgtMjJsMTE3LjkgOTIuNmM4IDYuMyA4LjIgMTguNCAuNCAyNC45TDI1NiA0NDggMjk0LjQgNTEyIDQwMCA1MTJjMzUuMyAwIDY0LTI4LjcgNjQtNjRsMC0xNzYgMTYgMGMxMy4yIDAgMjUtOC4xIDI5LjgtMjAuM3MxLjYtMjYuMi04LTM1LjFsLTIyNC0yMDh6Il19LGpJZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJoYXQtd2l6YXJkIixpY29uOls1MTIsNTEyLFtdLCJmNmU4IiwiTTY0IDQwMGw4NS43LTIwOC4yYzE3LTQxLjMgNDcuOC03NS4zIDg3LjItOTYuM0wzODMuOCAxNy4yYzEyLjMtNi42IDI2LjUgNC43IDIzIDE4LjJMMzY5LjYgMTc3LjhjLTEuMSA0LjEtMS42IDguMy0xLjYgMTIuNiAwIDYuMyAxLjIgMTIuNiAzLjYgMTguNWw3Ni40IDE5MS4xLTIwNy4xIDAgMTEuOC0zNS40IDQwLjQtMTMuNWM2LjUtMi4yIDEwLjktOC4zIDEwLjktMTUuMnMtNC40LTEzLTEwLjktMTUuMmwtNDAuNC0xMy41LTEzLjUtNDAuNEMyMzcgMjYwLjQgMjMwLjkgMjU2IDIyNCAyNTZzLTEzIDQuNC0xNS4yIDEwLjlsLTEzLjUgNDAuNC00MC40IDEzLjVDMTQ4LjQgMzIzIDE0NCAzMjkuMSAxNDQgMzM2czQuNCAxMyAxMC45IDE1LjJsNDAuNCAxMy41IDExLjggMzUuNC0xNDMuMSAwek0yNzkuNiAxNDEuNWMtMS4xLTMuMy00LjEtNS41LTcuNi01LjVzLTYuNSAyLjItNy42IDUuNWwtNi43IDIwLjItMjAuMiA2LjdjLTMuMyAxLjEtNS41IDQuMS01LjUgNy42czIuMiA2LjUgNS41IDcuNmwyMC4yIDYuNyA2LjcgMjAuMmMxLjEgMy4zIDQuMSA1LjUgNy42IDUuNXM2LjUtMi4yIDcuNi01LjVsNi43LTIwLjIgMjAuMi02LjdjMy4zLTEuMSA1LjUtNC4xIDUuNS03LjZzLTIuMi02LjUtNS41LTcuNmwtMjAuMi02LjctNi43LTIwLjJ6TTMyIDQ0OGw0NDggMGMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMkwzMiA1MTJjLTE3LjcgMC0zMi0xNC4zLTMyLTMyczE0LjMtMzIgMzItMzJ6Il19LFdPPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InVzZXItZG9jdG9yIixpY29uOls0NDgsNTEyLFsidXNlci1tZCJdLCJmMGYwIiwiTTIyNCA4YTEyMCAxMjAgMCAxIDAgMCAyNDAgMTIwIDEyMCAwIDEgMCAwLTI0MHptNjAgMzEyLjhjLTUuNC0uNS0xMS0uOC0xNi42LS44bC04Ni45IDBjLTUuNiAwLTExLjEgLjMtMTYuNiAuOGwwIDY3LjVjMTYuNSA3LjYgMjggMjQuMyAyOCA0My42IDAgMjYuNS0yMS41IDQ4LTQ4IDQ4cy00OC0yMS41LTQ4LTQ4YzAtMTkuNCAxMS41LTM2LjEgMjgtNDMuNmwwLTU4LjRDNjEgMzUzIDE2IDQxMy42IDE2IDQ4NC42IDE2IDQ5OS43IDI4LjMgNTEyIDQzLjQgNTEybDM2MS4xIDBjMTUuMSAwIDI3LjQtMTIuMyAyNy40LTI3LjQgMC03MS00NS0xMzEuNS0xMDgtMTU0LjZsMCAzNy40YzIzLjMgOC4yIDQwIDMwLjUgNDAgNTYuNmwwIDMyYzAgMTEtOSAyMC0yMCAyMHMtMjAtOS0yMC0yMGwwLTMyYzAtMTEtOS0yMC0yMC0yMHMtMjAgOS0yMCAyMGwwIDMyYzAgMTEtOSAyMC0yMCAyMHMtMjAtOS0yMC0yMGwwLTMyYzAtMjYuMSAxNi43LTQ4LjMgNDAtNTYuNmwwLTQ2LjZ6Il19LFVJZT1XTyxHTz17cHJlZml4OiJmYXMiLGljb25OYW1lOiJjaGFydC1iYXIiLGljb246WzUxMiw1MTIsWyJiYXItY2hhcnQiXSwiZjA4MCIsIk0zMiAzMmMxNy43IDAgMzIgMTQuMyAzMiAzMmwwIDMzNmMwIDguOCA3LjIgMTYgMTYgMTZsNDAwIDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJMODAgNDgwYy00NC4yIDAtODAtMzUuOC04MC04MEwwIDY0QzAgNDYuMyAxNC4zIDMyIDMyIDMyem05NiA2NGMwLTE3LjcgMTQuMy0zMiAzMi0zMmwxOTIgMGMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMmwtMTkyIDBjLTE3LjcgMC0zMi0xNC4zLTMyLTMyem0zMiA4MGwxMjggMGMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMmwtMTI4IDBjLTE3LjcgMC0zMi0xNC4zLTMyLTMyczE0LjMtMzIgMzItMzJ6bTAgMTEybDI1NiAwYzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMybC0yNTYgMGMtMTcuNyAwLTMyLTE0LjMtMzItMzJzMTQuMy0zMiAzMi0zMnoiXX0sV0llPUdPLFlPPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InNwcmF5LWNhbi1zcGFya2xlcyIsaWNvbjpbNTc2LDUxMixbImFpci1mcmVzaGVuZXIiXSwiZjVkMCIsIk0xNjAgMzJsMCA4MCAxMjggMCAwLTgwYzAtMTcuNy0xNC4zLTMyLTMyLTMyTDE5MiAwYy0xNy43IDAtMzIgMTQuMy0zMiAzMnptMCAxMjhjLTUzIDAtOTYgNDMtOTYgOTZsMCAyMDhjMCAyNi41IDIxLjUgNDggNDggNDhsMjI0IDBjMjYuNSAwIDQ4LTIxLjUgNDgtNDhsMC0yMDhjMC01My00My05Ni05Ni05NmwtMTI4IDB6bTY0IDk2YTgwIDgwIDAgMSAxIDAgMTYwIDgwIDgwIDAgMSAxIDAtMTYwek00NDggNDhjMC0xLjQtMS0zLTIuMi0zLjZMNDE2IDMyIDQwMy42IDIuMkM0MDMgMSA0MDEuNCAwIDQwMCAwcy0zIDEtMy42IDIuMkwzODQgMzIgMzU0LjIgNDQuNGMtMS4yIC42LTIuMiAyLjItMi4yIDMuNiAwIDEuNCAxIDMgMi4yIDMuNkwzODQgNjQgMzk2LjQgOTMuOEMzOTcgOTUgMzk4LjYgOTYgNDAwIDk2czMtMSAzLjYtMi4yTDQxNiA2NCA0NDUuOCA1MS42QzQ0NyA1MSA0NDggNDkuNCA0NDggNDh6bTc2LjQgNDUuOEM1MjUgOTUgNTI2LjYgOTYgNTI4IDk2czMtMSAzLjYtMi4yTDU0NCA2NCA1NzMuOCA1MS42YzEuMi0uNiAyLjItMi4yIDIuMi0zLjYgMC0xLjQtMS0zLTIuMi0zLjZMNTQ0IDMyIDUzMS42IDIuMkM1MzEgMSA1MjkuNCAwIDUyOCAwcy0zIDEtMy42IDIuMkw1MTIgMzIgNDgyLjIgNDQuNGMtMS4yIC42LTIuMiAyLjItMi4yIDMuNiAwIDEuNCAxIDMgMi4yIDMuNkw1MTIgNjQgNTI0LjQgOTMuOHptNy4yIDEwMC40Yy0uNi0xLjItMi4yLTIuMi0zLjYtMi4ycy0zIDEtMy42IDIuMkw1MTIgMjI0IDQ4Mi4yIDIzNi40Yy0xLjIgLjYtMi4yIDIuMi0yLjIgMy42IDAgMS40IDEgMyAyLjIgMy42TDUxMiAyNTYgNTI0LjQgMjg1LjhjLjYgMS4yIDIuMiAyLjIgMy42IDIuMnMzLTEgMy42LTIuMkw1NDQgMjU2IDU3My44IDI0My42YzEuMi0uNiAyLjItMi4yIDIuMi0zLjYgMC0xLjQtMS0zLTIuMi0zLjZMNTQ0IDIyNCA1MzEuNiAxOTQuMnpNNTEyIDE0NGMwLTEuNC0xLTMtMi4yLTMuNkw0ODAgMTI4IDQ2Ny42IDk4LjJDNDY3IDk3IDQ2NS40IDk2IDQ2NCA5NnMtMyAxLTMuNiAyLjJMNDQ4IDEyOCA0MTguMiAxNDAuNGMtMS4yIC42LTIuMiAyLjItMi4yIDMuNiAwIDEuNCAxIDMgMi4yIDMuNkw0NDggMTYwIDQ2MC40IDE4OS44Yy42IDEuMiAyLjIgMi4yIDMuNiAyLjJzMy0xIDMuNi0yLjJMNDgwIDE2MCA1MDkuOCAxNDcuNmMxLjItLjYgMi4yLTIuMiAyLjItMy42eiJdfSxHSWU9WU8sWUllPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImJhaHQtc2lnbiIsaWNvbjpbMzIwLDUxMixbXSwiZTBhYyIsIk0xMzYgMGMtMTMuMyAwLTI0IDEwLjctMjQgMjRsMCA0MC03NC40IDBDMTYuOCA2NCAwIDgwLjggMCAxMDEuNkwwIDQwNi4zYzAgMjMgMTguNyA0MS43IDQxLjcgNDEuN2w3MC4zIDAgMCA0MGMwIDEzLjMgMTAuNyAyNCAyNCAyNHMyNC0xMC43IDI0LTI0bDAtNDAgNDggMGM2MS45IDAgMTEyLTUwLjEgMTEyLTExMiAwLTQwLjEtMjEuMS03NS4zLTUyLjctOTUuMSAxMy4xLTE4LjMgMjAuNy00MC43IDIwLjctNjQuOSAwLTYxLjktNTAuMS0xMTItMTEyLTExMmwtMTYgMCAwLTQwYzAtMTMuMy0xMC43LTI0LTI0LTI0ek0xMTIgMTI4bDAgOTYtNDggMCAwLTk2IDQ4IDB6bTQ4IDk2bDAtOTYgMTYgMGMyNi41IDAgNDggMjEuNSA0OCA0OHMtMjEuNSA0OC00OCA0OGwtMTYgMHptLTQ4IDY0bDAgOTYtNDggMCAwLTk2IDQ4IDB6bTQ4IDk2bDAtOTYgNDggMGMyNi41IDAgNDggMjEuNSA0OCA0OHMtMjEuNSA0OC00OCA0OGwtNDggMHoiXX0sWk89e3ByZWZpeDoiZmFzIixpY29uTmFtZToidGVtcGVyYXR1cmUtYXJyb3ctdXAiLGljb246WzUxMiw1MTIsWyJ0ZW1wZXJhdHVyZS11cCJdLCJlMDQwIiwiTTY0LjUgOTZjMC01MyA0My05NiA5Ni05NnM5NiA0MyA5NiA5NmwwIDE2NC43YzI5LjUgMjYuNCA0OCA2NC43IDQ4IDEwNy4zIDAgNzkuNS02NC41IDE0NC0xNDQgMTQ0cy0xNDQtNjQuNS0xNDQtMTQ0YzAtNDIuNiAxOC41LTgxIDQ4LTEwNy4zTDY0LjUgOTZ6bTk2IDMzNmMzNS4zIDAgNjQtMjguNyA2NC02NCAwLTI2LjktMTYuNS00OS45LTQwLTU5LjNsMC0yMTIuN2MwLTEzLjMtMTAuNy0yNC0yNC0yNHMtMjQgMTAuNy0yNCAyNGwwIDIxMi43Yy0yMy41IDkuNS00MCAzMi41LTQwIDU5LjMgMCAzNS4zIDI4LjcgNjQgNjQgNjR6TTQzOS4xIDkuNGw2NCA2NGMxMi41IDEyLjUgMTIuNSAzMi44IDAgNDUuM3MtMzIuOCAxMi41LTQ1LjMgMGwtOS40LTkuNCAwIDE3OC43YzAgMTcuNy0xNC4zIDMyLTMyIDMycy0zMi0xNC4zLTMyLTMybDAtMTc4LjctOS40IDkuNGMtMTIuNSAxMi41LTMyLjggMTIuNS00NS4zIDBzLTEyLjUtMzIuOCAwLTQ1LjNsNjQtNjRjNi02IDE0LjEtOS40IDIyLjYtOS40czE2LjYgMy40IDIyLjYgOS40eiJdfSxaSWU9Wk8sWEllPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6IndlYi1hd2Vzb21lIixpY29uOls2NDAsNTEyLFtdLCJlNjgyIiwiTTM3Mi4yIDUyYzAgMjAuOS0xMi40IDM5LTMwLjIgNDcuMkw0NDggMTkyIDU1Mi40IDE3MS4xYy01LjMtNy43LTguNC0xNy4xLTguNC0yNy4xIDAtMjYuNSAyMS41LTQ4IDQ4LTQ4czQ4IDIxLjUgNDggNDhjMCAyNi0yMC42IDQ3LjEtNDYuNCA0OEw0ODEgNDQyLjNjLTEwLjMgMjMtMzMuMiAzNy43LTU4LjQgMzcuN2wtMjA1LjIgMGMtMjUuMiAwLTQ4LTE0LjgtNTguNC0zNy43TDQ2LjQgMTkyQzIwLjYgMTkxLjEgMCAxNzAgMCAxNDQgMCAxMTcuNSAyMS41IDk2IDQ4IDk2czQ4IDIxLjUgNDggNDhjMCAxMC4xLTMuMSAxOS40LTguNCAyNy4xTDE5MiAxOTIgMjk4LjEgOTkuMWMtMTcuNy04LjMtMzAtMjYuMy0zMC00Ny4xIDAtMjguNyAyMy4zLTUyIDUyLTUyczUyIDIzLjMgNTIgNTJ6Il19LEtJZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJub24tYmluYXJ5IixpY29uOlszODQsNTEyLFtdLCJlODA3IiwiTTE5MiA1NDRjLTk3LjIgMC0xNzYtNzguOC0xNzYtMTc2IDAtODYuMyA2Mi4xLTE1OCAxNDQtMTczbDAtNDcuMi00OS43IDI0LjgtMyAxLjNjLTE1LjIgNS43LTMyLjUtLjgtMzkuOS0xNS43LTcuNC0xNC44LTIuMi0zMi42IDExLjUtNDEuM2wyLjgtMS42IDM4LjgtMTkuNC0zOC44LTE5LjRjLTE1LjgtNy45LTIyLjItMjcuMS0xNC4zLTQyLjkgNy40LTE0LjggMjQuOC0yMS40IDQwLTE1LjZsMyAxLjMgNDkuNyAyNC44IDAtNDQuMmMwLTE3LjcgMTQuMy0zMiAzMi0zMnMzMiAxNC4zIDMyIDMybDAgNDQuMiA0OS43LTI0LjggMy0xLjNjMTUuMi01LjggMzIuNSAuOCAzOS45IDE1LjZzMi4yIDMyLjctMTEuNSA0MS4zbC0yLjggMS42LTM4LjcgMTkuNCAzOC43IDE5LjNjMTUuOCA3LjkgMjIuMiAyNy4xIDE0LjMgNDIuOS03LjQgMTQuOC0yNC43IDIxLjQtMzkuOSAxNS42bC0zLTEuMy00OS43LTI0LjggMCA0Ny4yYzgxLjkgMTUuMSAxNDQgODYuOCAxNDQgMTczIDAgOTcuMi03OC44IDE3Ni0xNzYgMTc2em0wLTY0YTExMiAxMTIgMCAxIDAgMC0yMjQgMTEyIDExMiAwIDEgMCAwIDIyNHoiXX0sUUllPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6Im4iLGljb246WzM4NCw1MTIsWzExMF0sIjRlIiwiTTIxLjEgMzMuOWMxMi43LTQuNiAyNi45LS43IDM1LjUgOS42TDMyMCAzNTkuNiAzMjAgNjRjMC0xNy43IDE0LjMtMzIgMzItMzJzMzIgMTQuMyAzMiAzMmwwIDM4NGMwIDEzLjUtOC40IDI1LjUtMjEuMSAzMC4xcy0yNi45IC43LTM1LjUtOS42TDY0IDE1Mi40IDY0IDQ0OGMwIDE3LjctMTQuMyAzMi0zMiAzMlMwIDQ2NS43IDAgNDQ4TDAgNjRDMCA1MC41IDguNCAzOC41IDIxLjEgMzMuOXoiXX0sWE89e3ByZWZpeDoiZmFzIixpY29uTmFtZToiYXJyb3dzLXVwLWRvd24tbGVmdC1yaWdodCIsaWNvbjpbNTEyLDUxMixbImFycm93cyJdLCJmMDQ3IiwiTTI3OC42IDkuNGMtMTIuNS0xMi41LTMyLjgtMTIuNS00NS4zIDBsLTY0IDY0Yy0xMi41IDEyLjUtMTIuNSAzMi44IDAgNDUuM3MzMi44IDEyLjUgNDUuMyAwbDkuNC05LjQgMCAxMTQuNy0xMTQuNyAwIDkuNC05LjRjMTIuNS0xMi41IDEyLjUtMzIuOCAwLTQ1LjNzLTMyLjgtMTIuNS00NS4zIDBsLTY0IDY0Yy0xMi41IDEyLjUtMTIuNSAzMi44IDAgNDUuM2w2NCA2NGMxMi41IDEyLjUgMzIuOCAxMi41IDQ1LjMgMHMxMi41LTMyLjggMC00NS4zbC05LjQtOS40IDExNC43IDAgMCAxMTQuNy05LjQtOS40Yy0xMi41LTEyLjUtMzIuOC0xMi41LTQ1LjMgMHMtMTIuNSAzMi44IDAgNDUuM2w2NCA2NGMxMi41IDEyLjUgMzIuOCAxMi41IDQ1LjMgMGw2NC02NGMxMi41LTEyLjUgMTIuNS0zMi44IDAtNDUuM3MtMzIuOC0xMi41LTQ1LjMgMGwtOS40IDkuNCAwLTExNC43IDExNC43IDAtOS40IDkuNGMtMTIuNSAxMi41LTEyLjUgMzIuOCAwIDQ1LjNzMzIuOCAxMi41IDQ1LjMgMGw2NC02NGMxMi41LTEyLjUgMTIuNS0zMi44IDAtNDUuM2wtNjQtNjRjLTEyLjUtMTIuNS0zMi44LTEyLjUtNDUuMyAwcy0xMi41IDMyLjggMCA0NS4zbDkuNCA5LjQtMTE0LjcgMCAwLTExNC43IDkuNCA5LjRjMTIuNSAxMi41IDMyLjggMTIuNSA0NS4zIDBzMTIuNS0zMi44IDAtNDUuM2wtNjQtNjR6Il19LEpJZT1YTyxqNT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJob3VzZSIsaWNvbjpbNTEyLDUxMixbMTI3OTY4LDYzNDk4LDYzNTAwLCJob21lIiwiaG9tZS1hbHQiLCJob21lLWxnLWFsdCJdLCJmMDE1IiwiTTI3Ny44IDguNmMtMTIuMy0xMS40LTMxLjMtMTEuNC00My41IDBsLTIyNCAyMDhjLTkuNiA5LTEyLjggMjIuOS04IDM1LjFTMTguOCAyNzIgMzIgMjcybDE2IDAgMCAxNzZjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMjg4IDBjMzUuMyAwIDY0LTI4LjcgNjQtNjRsMC0xNzYgMTYgMGMxMy4yIDAgMjUtOC4xIDI5LjgtMjAuM3MxLjYtMjYuMi04LTM1LjFsLTIyNC0yMDh6TTI0MCAzMjBsMzIgMGMyNi41IDAgNDggMjEuNSA0OCA0OGwwIDk2LTEyOCAwIDAtOTZjMC0yNi41IDIxLjUtNDggNDgtNDh6Il19LGVOZT1qNSx0TmU9ajUsYU5lPWo1LGlOZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJzcGlubmVyIixpY29uOls1MTIsNTEyLFtdLCJmMTEwIiwiTTIwOCA0OGE0OCA0OCAwIDEgMSA5NiAwIDQ4IDQ4IDAgMSAxIC05NiAwem0wIDQxNmE0OCA0OCAwIDEgMSA5NiAwIDQ4IDQ4IDAgMSAxIC05NiAwek00OCAyMDhhNDggNDggMCAxIDEgMCA5NiA0OCA0OCAwIDEgMSAwLTk2em0zNjggNDhhNDggNDggMCAxIDEgOTYgMCA0OCA0OCAwIDEgMSAtOTYgMHpNNzUgMzY5LjFBNDggNDggMCAxIDEgMTQyLjkgNDM3IDQ4IDQ4IDAgMSAxIDc1IDM2OS4xek03NSA3NUE0OCA0OCAwIDEgMSAxNDIuOSAxNDIuOSA0OCA0OCAwIDEgMSA3NSA3NXpNNDM3IDM2OS4xQTQ4IDQ4IDAgMSAxIDM2OS4xIDQzNyA0OCA0OCAwIDEgMSA0MzcgMzY5LjF6Il19LEtPPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImdhdmVsIixpY29uOls1NzYsNTEyLFsibGVnYWwiXSwiZjBlMyIsIk0xNjkuNiAxNTMuNGwtMTguNy0xOC43Yy0xMi41LTEyLjUtMTIuNS0zMi44IDAtNDUuM0wyNjUuNi0yNS40YzEyLjUtMTIuNSAzMi44LTEyLjUgNDUuMyAwTDMyOS42LTYuNmMxMi41IDEyLjUgMTIuNSAzMi44IDAgNDUuM0wyMTQuOSAxNTMuNGMtMTIuNSAxMi41LTMyLjggMTIuNS00NS4zIDB6TTI3NiAyMTEuN2wtMzEuNC0zMS40IDExMi0xMTIgMTE5LjQgMTE5LjQtMTEyIDExMi0zMS40LTMxLjQtMjMyIDIzMmMtMTUuNiAxNS42LTQwLjkgMTUuNi01Ni42IDBzLTE1LjYtNDAuOSAwLTU2LjZsMjMyLTIzMnpNMzkwLjkgMzc0LjZjLTEyLjUtMTIuNS0xMi41LTMyLjggMC00NS4zTDUwNS42IDIxNC42YzEyLjUtMTIuNSAzMi44LTEyLjUgNDUuMyAwbDE4LjcgMTguN2MxMi41IDEyLjUgMTIuNSAzMi44IDAgNDUuM0w0NTQuOSAzOTMuNGMtMTIuNSAxMi41LTMyLjggMTIuNS00NS4zIDBsLTE4LjctMTguN3oiXX0sck5lPUtPLFFPPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InRpY2tldC1zaW1wbGUiLGljb246WzU3Niw1MTIsWyJ0aWNrZXQtYWx0Il0sImYzZmYiLCJNMCAxMjhDMCA5Mi43IDI4LjcgNjQgNjQgNjRsNDQ4IDBjMzUuMyAwIDY0IDI4LjcgNjQgNjRsMCA2NGMwIDguOC03LjQgMTUuNy0xNS43IDE4LjYtMTguOCA2LjUtMzIuMyAyNC40LTMyLjMgNDUuNHMxMy41IDM4LjkgMzIuMyA0NS40YzguMyAyLjkgMTUuNyA5LjggMTUuNyAxOC42bDAgNjRjMCAzNS4zLTI4LjcgNjQtNjQgNjRMNjQgNDQ4Yy0zNS4zIDAtNjQtMjguNy02NC02NGwwLTY0QzAgMzExLjIgNy40IDMwNC4zIDE1LjcgMzAxLjQgMzQuNSAyOTQuOSA0OCAyNzcgNDggMjU2cy0xMy41LTM4LjktMzIuMy00NS40QzcuNCAyMDcuNyAwIDIwMC44IDAgMTkybDAtNjR6Il19LHNOZT1RTyxuTmU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZG92ZSIsaWNvbjpbNTEyLDUxMixbMTI4MzMwXSwiZjRiYSIsIk00OTYgNjRjMTMuMiAwIDIwLjcgMTUuMSAxMi44IDI1LjZMNDgwIDEyOCA0ODAgMzA0YzAgNzkuNS02NC41IDE0NC0xNDQgMTQ0bC0xMTIgMC00Ni4zIDQ2LjNjLTEwLjQgMTAuNC0yNi41IDEyLjQtMzkuMSA0LjhMNDEuNSA0NDAuOWMtMTctMTAuMi0xNS0zNS41IDMuNC00Mi45TDE2MCAzNTJDMjMuOCAzMTEuMSA3LjUgMTY5LjggMjIgOTUuNyAyNS42IDc3LjkgNDUuMyA3MS40IDYxLjMgODAuMkwzMjAgMjI0IDMyMCAxNDRjMC00NC4yIDM1LjgtODAgODAtODBsOTYgMHptLTk2IDU2YTI0IDI0IDAgMSAwIDAgNDggMjQgMjQgMCAxIDAgMC00OHpNMTgyLjUtOS42YzEyLjQtMTMuNyAzMy4zLTguOSA0Mi41IDcuMWw1Ni40IDk4LjNjLTUuOCAxNC40LTkuMiAzMC4xLTkuNCA0Ni41TDEzOC4xIDY4YzEwLjEtMzEuNiAyNy01OC40IDQ0LjQtNzcuNnoiXX0sb05lPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InRhcnAtZHJvcGxldCIsaWNvbjpbNTEyLDUxMixbXSwiZTU3YyIsIk0yNTYgMTYwYzM1LjMgMCA2NC0yNi45IDY0LTYwIDAtMjQtMzMuNy03MC4xLTUyLjItOTMuNS02LjEtNy43LTE3LjUtNy43LTIzLjYgMC0xOC41IDIzLjQtNTIuMiA2OS41LTUyLjIgOTMuNSAwIDMzLjEgMjguNyA2MCA2NCA2MHpNMzY4IDk2YzAgNjEuOS01MC4xIDExMi0xMTIgMTEyUzE0NCAxNTcuOSAxNDQgOTZjMC0xMS4xIDEuNi0yMS45IDQuNi0zMkw2NCA2NEMyOC43IDY0IDAgOTIuNyAwIDEyOEwwIDM4NGMwIDM1LjMgMjguNyA2NCA2NCA2NGwyNzcuNSAwYzE3IDAgMzMuMy02LjcgNDUuMy0xOC43TDQ5My4zIDMyMi43YzEyLTEyIDE4LjctMjguMyAxOC43LTQ1LjNMNTEyIDEyOGMwLTM1LjMtMjguNy02NC02NC02NGwtODQuNiAwYzMgMTAuMSA0LjYgMjAuOSA0LjYgMzJ6bTg1LjUgMTc2TDMzNiAzODkuNSAzMzYgMjk2YzAtMTMuMyAxMC43LTI0IDI0LTI0bDkzLjUgMHpNOTYgMTI4YTMyIDMyIDAgMSAxIDAgNjQgMzIgMzIgMCAxIDEgMC02NHoiXX0sbE5lPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InRyZWUtY2l0eSIsaWNvbjpbNjQwLDUxMixbXSwiZTU4NyIsIk0yODggNDhjMC0yNi41IDIxLjUtNDggNDgtNDhsOTYgMGMyNi41IDAgNDggMjEuNSA0OCA0OGwwIDQ4IDQ4IDAgMC03MmMwLTEzLjMgMTAuNy0yNCAyNC0yNHMyNCAxMC43IDI0IDI0bDAgNzIgMTYgMGMyNi41IDAgNDggMjEuNSA0OCA0OGwwIDMyMGMwIDI2LjUtMjEuNSA0OC00OCA0OGwtMjU2IDBjLTI2LjUgMC00OC0yMS41LTQ4LTQ4bDAtNDE2em02NCA2NGwwIDMyYzAgOC44IDcuMiAxNiAxNiAxNmwzMiAwYzguOCAwIDE2LTcuMiAxNi0xNmwwLTMyYzAtOC44LTcuMi0xNi0xNi0xNmwtMzIgMGMtOC44IDAtMTYgNy4yLTE2IDE2em0xNiA4MGMtOC44IDAtMTYgNy4yLTE2IDE2bDAgMzJjMCA4LjggNy4yIDE2IDE2IDE2bDMyIDBjOC44IDAgMTYtNy4yIDE2LTE2bDAtMzJjMC04LjgtNy4yLTE2LTE2LTE2bC0zMiAwek0zNTIgMzA0bDAgMzJjMCA4LjggNy4yIDE2IDE2IDE2bDMyIDBjOC44IDAgMTYtNy4yIDE2LTE2bDAtMzJjMC04LjgtNy4yLTE2LTE2LTE2bC0zMiAwYy04LjggMC0xNiA3LjItMTYgMTZ6TTUyOCAxOTJjLTguOCAwLTE2IDcuMi0xNiAxNmwwIDMyYzAgOC44IDcuMiAxNiAxNiAxNmwzMiAwYzguOCAwIDE2LTcuMiAxNi0xNmwwLTMyYzAtOC44LTcuMi0xNi0xNi0xNmwtMzIgMHpNNTEyIDMwNGwwIDMyYzAgOC44IDcuMiAxNiAxNiAxNmwzMiAwYzguOCAwIDE2LTcuMiAxNi0xNmwwLTMyYzAtOC44LTcuMi0xNi0xNi0xNmwtMzIgMGMtOC44IDAtMTYgNy4yLTE2IDE2ek05NiA0ODBsMC0xNjAtMTYgMGMtNDQuMiAwLTgwLTM1LjgtODAtODAgMC0yNi43IDEzLjEtNTAuMyAzMy4yLTY0LjktLjgtNC45LTEuMi0xMC0xLjItMTUuMSAwLTUzIDQzLTk2IDk2LTk2czk2IDQzIDk2IDk2bDAgOTZjMCAzNS4zLTI4LjcgNjQtNjQgNjRsMCAxNjBjMCAxNy43LTE0LjMgMzItMzIgMzJzLTMyLTE0LjMtMzItMzJ6Il19LEpPPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InR1cm4tdXAiLGljb246WzM4NCw1MTIsWzEwNTQ4LCJsZXZlbC11cC1hbHQiXSwiZjNiZiIsIk0xNjkuNCA5LjRjMTIuNS0xMi41IDMyLjgtMTIuNSA0NS4zIDBsMTI4IDEyOGM5LjIgOS4yIDExLjkgMjIuOSA2LjkgMzQuOVMzMzIuOSAxOTIgMzIwIDE5MmwtNjQgMCAwIDE2MGMwIDg4LjQtNzEuNiAxNjAtMTYwIDE2MGwtNjQgMGMtMTcuNyAwLTMyLTE0LjMtMzItMzJsMC02NGMwLTE3LjcgMTQuMy0zMiAzMi0zMmw2NCAwYzE3LjcgMCAzMi0xNC4zIDMyLTMybDAtMTYwLTY0IDBjLTEyLjkgMC0yNC42LTcuOC0yOS42LTE5LjhzLTIuMi0yNS43IDYuOS0zNC45bDEyOC0xMjh6Il19LGNOZT1KTyxVNT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJ0ZW1wZXJhdHVyZS1xdWFydGVyIixpY29uOlszMjAsNTEyLFsidGVtcGVyYXR1cmUtMSIsInRoZXJtb21ldGVyLTEiLCJ0aGVybW9tZXRlci1xdWFydGVyIl0sImYyY2EiLCJNMTYwIDBDMTA3IDAgNjQgNDMgNjQgOTZsMCAxNjQuN0MzNC41IDI4NyAxNiAzMjUuNCAxNiAzNjggMTYgNDQ3LjUgODAuNSA1MTIgMTYwIDUxMnMxNDQtNjQuNSAxNDQtMTQ0YzAtNDIuNi0xOC41LTgxLTQ4LTEwNy4zTDI1NiA5NmMwLTUzLTQzLTk2LTk2LTk2em02NCAzNjhjMCAzNS4zLTI4LjcgNjQtNjQgNjRzLTY0LTI4LjctNjQtNjRjMC0yNi45IDE2LjUtNDkuOSA0MC01OS4zbDAtMjguN2MwLTEzLjMgMTAuNy0yNCAyNC0yNHMyNCAxMC43IDI0IDI0bDAgMjguN2MyMy41IDkuNSA0MCAzMi41IDQwIDU5LjN6Il19LGROZT1VNSxoTmU9VTUscE5lPVU1LGVSPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InNsaWRlcnMiLGljb246WzUxMiw1MTIsWyJzbGlkZXJzLWgiXSwiZjFkZSIsIk0zMiA2NEMxNC4zIDY0IDAgNzguMyAwIDk2czE0LjMgMzIgMzIgMzJsODYuNyAwYzEyLjMgMjguMyA0MC41IDQ4IDczLjMgNDhzNjEtMTkuNyA3My4zLTQ4TDQ4MCAxMjhjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJMMjY1LjMgNjRDMjUzIDM1LjcgMjI0LjggMTYgMTkyIDE2cy02MSAxOS43LTczLjMgNDhMMzIgNjR6bTAgMTYwYy0xNy43IDAtMzIgMTQuMy0zMiAzMnMxNC4zIDMyIDMyIDMybDI0Ni43IDBjMTIuMyAyOC4zIDQwLjUgNDggNzMuMyA0OHM2MS0xOS43IDczLjMtNDhsNTQuNyAwYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMybC01NC43IDBjLTEyLjMtMjguMy00MC41LTQ4LTczLjMtNDhzLTYxIDE5LjctNzMuMyA0OEwzMiAyMjR6bTAgMTYwYy0xNy43IDAtMzIgMTQuMy0zMiAzMnMxNC4zIDMyIDMyIDMybDU0LjcgMGMxMi4zIDI4LjMgNDAuNSA0OCA3My4zIDQ4czYxLTE5LjcgNzMuMy00OEw0ODAgNDQ4YzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMybC0yNDYuNyAwYy0xMi4zLTI4LjMtNDAuNS00OC03My4zLTQ4cy02MSAxOS43LTczLjMgNDhMMzIgMzg0eiJdfSx1TmU9ZVIsZk5lPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6Im1vc3F1ZSIsaWNvbjpbNTc2LDUxMixbMTI4MzMyXSwiZjY3OCIsIk0xNzQuOCAyMjRsMjI2LjQgMGM0My41IDAgNzguOC0zNS4zIDc4LjgtNzguOCAwLTI1LjUtMTIuMy00OS40LTMzLjEtNjQuMkwyOTcuMy0yNS40Yy01LjYtMy45LTEzLTMuOS0xOC41IDBMMTI5LjEgODFDMTA4LjMgOTUuOCA5NiAxMTkuNyA5NiAxNDUuMiA5NiAxODguNyAxMzEuMyAyMjQgMTc0LjggMjI0ek01MTIgNTEyYzM1LjMgMCA2NC0yOC43IDY0LTY0bDAtMjI0YzAtMTcuNy0xNC4zLTMyLTMyLTMycy0zMiAxNC4zLTMyIDMybDAgNDgtNDQ4IDAgMC00OGMwLTE3LjctMTQuMy0zMi0zMi0zMlMwIDIwNi4zIDAgMjI0TDAgNDQ4YzAgMzUuMyAyOC43IDY0IDY0IDY0bDQ0OCAwek0yNDAgMzg0YzAtMjYuNSAyMS41LTQ4IDQ4LTQ4czQ4IDIxLjUgNDggNDhsMCA4MC05NiAwIDAtODB6Il19LG1OZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJoIixpY29uOlszODQsNTEyLFsxMDRdLCI0OCIsIk0zMjAgMjg4bDAgMTYwYzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJsMC0zODRjMC0xNy43LTE0LjMtMzItMzItMzJzLTMyIDE0LjMtMzIgMzJsMCAxNjAtMjU2IDAgMC0xNjBjMC0xNy43LTE0LjMtMzItMzItMzJTMCA0Ni4zIDAgNjRMMCA0NDhjMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMmwwLTE2MCAyNTYgMHoiXX0sZ05lPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImluZm8iLGljb246WzE5Miw1MTIsW10sImYxMjkiLCJNNDggNDhhNDggNDggMCAxIDEgOTYgMCA0OCA0OCAwIDEgMSAtOTYgMHpNMCAxOTJjMC0xNy43IDE0LjMtMzIgMzItMzJsNjQgMGMxNy43IDAgMzIgMTQuMyAzMiAzMmwwIDI1NiAzMiAwYzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMyTDMyIDUxMmMtMTcuNyAwLTMyLTE0LjMtMzItMzJzMTQuMy0zMiAzMi0zMmwzMiAwIDAtMjI0LTMyIDBjLTE3LjcgMC0zMi0xNC4zLTMyLTMyeiJdfSx0Uj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJwZXJzb24td2Fsa2luZyIsaWNvbjpbMzg0LDUxMixbMTI4Njk0LCJ3YWxraW5nIl0sImY1NTQiLCJNMTkyIDgwYTU2IDU2IDAgMSAwIDAtMTEyIDU2IDU2IDAgMSAwIDAgMTEyek0xMDUuNCAyMjcuOWwyMi42LTIyLjYgMCA2OS4zYzAgMjggMTIuMiA1NC43IDMzLjUgNzIuOWw3MS40IDYxLjJjNS45IDUuMSA5LjggMTIuMSAxMC45IDE5LjhsMTIuNiA4OC4xYzIuNSAxNy41IDE4LjcgMjkuNyAzNi4yIDI3LjJzMjkuNy0xOC43IDI3LjItMzYuMmwtMTIuNi04OC4xYy0zLjMtMjMuMS0xNC45LTQ0LjEtMzIuNi01OS4zbC0zNC41LTI5LjYgMC0xMTUuMiAzLjggNC43YzE4LjIgMjIuOCA0NS44IDM2IDc1IDM2bDMzLjIgMGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMmwtMzMuMiAwYy05LjcgMC0xOC45LTQuNC0yNS0xMmwtMTcuOS0yMi40Yy0yMy0yOC44LTU3LjktNDUuNi05NC44LTQ1LjYtMzIuMiAwLTYzLjEgMTIuOC04NS44IDM1LjZMNjAuMSAxODIuNkM0Mi4xIDIwMC42IDMyIDIyNSAzMiAyNTAuNUwzMiAyODhjMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMmwwLTM3LjVjMC04LjUgMy40LTE2LjYgOS40LTIyLjZ6bTEyLjQgMTc5LjRjLTEuNSA1LjItNC4zIDEwLTguMSAxMy44TDQxLjQgNDg5LjRjLTEyLjUgMTIuNS0xMi41IDMyLjggMCA0NS4zczMyLjggMTIuNSA0NS4zIDBsNjguMy02OC4zYzExLjUtMTEuNSAxOS45LTI1LjggMjQuNC00MS41bDIuMi03LjYtNDYtMzkuNGMtMi41LTIuMi01LTQuNC03LjQtNi44bC0xMC40IDM2LjJ6Il19LGJOZT10UixhUj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJhcnJvdy10dXJuLWRvd24iLGljb246WzM4NCw1MTIsWyJsZXZlbC1kb3duIl0sImYxNDkiLCJNMzIgNjRDMTQuMyA2NCAwIDQ5LjcgMCAzMlMxNC4zIDAgMzIgMGw5NiAwYzUzIDAgOTYgNDMgOTYgOTZsMCAzMDYuNyA3My40LTczLjRjMTIuNS0xMi41IDMyLjgtMTIuNSA0NS4zIDBzMTIuNSAzMi44IDAgNDUuM2wtMTI4IDEyOGMtMTIuNSAxMi41LTMyLjggMTIuNS00NS4zIDBsLTEyOC0xMjhjLTEyLjUtMTIuNS0xMi41LTMyLjggMC00NS4zczMyLjgtMTIuNSA0NS4zIDBMMTYwIDQwMi43IDE2MCA5NmMwLTE3LjctMTQuMy0zMi0zMi0zMkwzMiA2NHoiXX0sdk5lPWFSLHlOZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJyb2FkIixpY29uOls1MTIsNTEyLFsxMjg3MzldLCJmMDE4IiwiTTIyMy45IDMybC03Ni4yIDBjLTI5LjQgMC01NS4xIDIwLjEtNjIuMSA0OC42TDEuNCA0MjAuNUMtNi4xIDQ1MC43IDE2LjggNDgwIDQ4IDQ4MGwxNzUuOSAwIDAtNjRjMC0xNy43IDE0LjMtMzIgMzItMzJzMzIgMTQuMyAzMiAzMmwwIDY0IDE3Ni4xIDBjMzEuMiAwIDU0LjEtMjkuMyA0Ni42LTU5LjVMNDI2LjUgODAuNkM0MTkuNCA1Mi4xIDM5My44IDMyIDM2NC4zIDMybC03Ni40IDAgMCA2NGMwIDE3LjctMTQuMyAzMi0zMiAzMnMtMzItMTQuMy0zMi0zMmwwLTY0em02NCAxOTJsMCA2NGMwIDE3LjctMTQuMyAzMi0zMiAzMnMtMzItMTQuMy0zMi0zMmwwLTY0YzAtMTcuNyAxNC4zLTMyIDMyLTMyczMyIDE0LjMgMzIgMzJ6Il19LHhOZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJzcGlyYWwiLGljb246WzUxMiw1MTIsW10sImU4MGEiLCJNMTE1LjUgNy40YzEzLjYtMTEuMyAzMy44LTkuNSA0NS4xIDQuMXM5LjUgMzMuOC00LjEgNDUuMUMxMDAuMiAxMDMuNSA2NCAxNzUuMiA2NCAyNTYgNjQgMzYyIDE1MCA0NDggMjU2IDQ0OHMxOTItODYgMTkyLTE5MmMwLTc1LjEtNjAuOS0xMzYtMTM2LTEzNlMxNzYgMTgwLjkgMTc2IDI1NmMwIDQ0LjIgMzUuOCA4MCA4MCA4MHM4MC0zNS44IDgwLTgwYzAtMTMuMy0xMC43LTI0LTI0LTI0cy0yNCAxMC43LTI0IDI0YzAgMTcuNy0xNC4zIDMyLTMyIDMycy0zMi0xNC4zLTMyLTMyYzAtNDguNiAzOS40LTg4IDg4LTg4czg4IDM5LjQgODggODhjMCA3OS41LTY0LjUgMTQ0LTE0NCAxNDRTMTEyIDMzNS41IDExMiAyNTZjMC0xMTAuNSA4OS41LTIwMCAyMDAtMjAwczIwMCA4OS41IDIwMCAyMDBjMCAxNDEuNC0xMTQuNiAyNTYtMjU2IDI1NlMwIDM5Ny40IDAgMjU2QzAgMTU1LjggNDUgNjYuMSAxMTUuNSA3LjR6Il19LGlSPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImZhY2UtZnJvd24iLGljb246WzUxMiw1MTIsWzk3ODUsImZyb3duIl0sImYxMTkiLCJNMjU2IDUxMmEyNTYgMjU2IDAgMSAwIDAtNTEyIDI1NiAyNTYgMCAxIDAgMCA1MTJ6bTkwLjYtMTEzLjljLTIwLjQtMjgtNTMuNC00Ni4xLTkwLjYtNDYuMXMtNzAuMiAxOC4xLTkwLjYgNDYuMWMtNy44IDEwLjctMjIuOCAxMy4xLTMzLjUgNS4zcy0xMy4xLTIyLjgtNS4zLTMzLjVDMTU1LjcgMzMwIDIwMi44IDMwNCAyNTYgMzA0czEwMC4zIDI2IDEyOS40IDY1LjljNy44IDEwLjcgNS40IDI1LjctNS4zIDMzLjVzLTI1LjcgNS40LTMzLjUtNS4zek0xNDQgMjA4YTMyIDMyIDAgMSAxIDY0IDAgMzIgMzIgMCAxIDEgLTY0IDB6bTE5Mi0zMmEzMiAzMiAwIDEgMSAwIDY0IDMyIDMyIDAgMSAxIDAtNjR6Il19LHdOZT1pUixyUj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJ3aW5lLWdsYXNzLWVtcHR5IixpY29uOlszMjAsNTEyLFsid2luZS1nbGFzcy1hbHQiXSwiZjVjZSIsIk02NCAwQzQ4LjcgMCAzNS42IDEwLjggMzIuNiAyNS43TDMuMiAxNzNDMS4xIDE4My41IDAgMTk0LjIgMCAyMDVsMCAzYzAgNzcuNCA1NSAxNDIgMTI4IDE1Ni44bDAgMTE1LjItNjQgMGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJzMTQuMyAzMiAzMiAzMmwxOTIgMGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMmwtNjQgMCAwLTExNS4yQzI2NSAzNTAgMzIwIDI4NS40IDMyMCAyMDhsMC0zYzAtMTAuNy0xLjEtMjEuNC0zLjItMzJMMjg3LjQgMjUuN0MyODQuNCAxMC44IDI3MS4zIDAgMjU2IDBMNjQgMHptMS45IDE4NS42TDkwLjIgNjQgMjI5LjggNjQgMjU0LjEgMTg1LjZjMS4zIDYuNCAxLjkgMTIuOSAxLjkgMTkuNGwwIDNjMCA1My00MyA5Ni05NiA5NnMtOTYtNDMtOTYtOTZsMC0zYzAtNi41IC42LTEzIDEuOS0xOS40eiJdfSxNTmU9clIsek5lPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImNsYXBwZXJib2FyZCIsaWNvbjpbNTEyLDUxMixbXSwiZTEzMSIsIk00NDggNjRjMiAwIDMuOSAuMSA1LjggLjNsLTk1LjcgOTUuNyA2Ny45IDAgNzItNzJjOC44IDExIDE0IDI0LjkgMTQgNDBsMCAyNTZjMCAzNS4zLTI4LjcgNjQtNjQgNjRMNjQgNDQ4Yy0zNS4zIDAtNjQtMjguNy02NC02NEwwIDEyOEMwIDkyLjcgMjguNyA2NCA2NCA2NGw3MC4xIDAtOTYgOTYgNjcuOSAwIDk1LTk1IDEtMSA5Mi4xIDAtOTYgOTYgNjcuOSAwIDk1LTk1IDEtMSA4Ni4xIDB6Il19LHNSPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImZvcndhcmQtc3RlcCIsaWNvbjpbMzg0LDUxMixbInN0ZXAtZm9yd2FyZCJdLCJmMDUxIiwiTTIxIDM2LjhjMTIuOS03IDI4LjctNi4zIDQxIDEuOEwzMjAgMjA4LjEgMzIwIDY0YzAtMTcuNyAxNC4zLTMyIDMyLTMyczMyIDE0LjMgMzIgMzJsMCAzODRjMCAxNy43LTE0LjMgMzItMzIgMzJzLTMyLTE0LjMtMzItMzJsMC0xNDQuMS0yNTggMTY5LjZjLTEyLjMgOC4xLTI4IDguOC00MSAxLjhTMCA0NTQuNyAwIDQ0MEwwIDcyQzAgNTcuMyA4LjEgNDMuOCAyMSAzNi44eiJdfSxrTmU9c1IsblI9e3ByZWZpeDoiZmFzIixpY29uTmFtZToic3F1YXJlLXVwLXJpZ2h0IixpY29uOls0NDgsNTEyLFs4NTk5LCJleHRlcm5hbC1saW5rLXNxdWFyZS1hbHQiXSwiZjM2MCIsIk0zODQgMzJjMzUuMyAwIDY0IDI4LjcgNjQgNjRsMCAzMjBjMCAzNS4zLTI4LjcgNjQtNjQgNjRMNjQgNDgwYy0zNS4zIDAtNjQtMjguNy02NC02NEwwIDk2QzAgNjAuNyAyOC43IDMyIDY0IDMybDMyMCAwek0xNjggMTYwYy05LjcgMC0xOC41IDUuOC0yMi4yIDE0LjhzLTEuNyAxOS4zIDUuMiAyNi4ybDM1IDM1LTY3IDY3Yy05LjQgOS40LTkuNCAyNC42IDAgMzMuOWwyNCAyNGM5LjQgOS40IDI0LjYgOS40IDMzLjkgMGw2Ny02NyAzNSAzNWM2LjkgNi45IDE3LjIgOC45IDI2LjIgNS4yUzMyMCAzMjEuNyAzMjAgMzEybDAtMTI4YzAtMTMuMy0xMC43LTI0LTI0LTI0bC0xMjggMHoiXX0sU05lPW5SLG9SPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImJvb2stam91cm5hbC13aGlsbHMiLGljb246WzQ0OCw1MTIsWyJqb3VybmFsLXdoaWxscyJdLCJmNjZhIiwiTTk2IDUxMmwzMjAgMGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMmwwLTY2LjdjMTguNi02LjYgMzItMjQuNCAzMi00NS4zbDAtMjg4YzAtMjYuNS0yMS41LTQ4LTQ4LTQ4TDk2IDBDNDMgMCAwIDQzIDAgOTZMMCA0MTZjMCA1MyA0MyA5NiA5NiA5NnpNNjQgNDE2YzAtMTcuNyAxNC4zLTMyIDMyLTMybDI1NiAwIDAgNjQtMjU2IDBjLTE3LjcgMC0zMi0xNC4zLTMyLTMyek0yNzQuMSA5OS4yYzIuNi0yLjYgNi43LTMuMSA5LjktMS4xIDMyLjEgMjAgNTMuNCA1NS42IDUzLjQgOTYuMiAwIDYyLjYtNTAuNyAxMTMuMy0xMTMuMyAxMTMuM1MxMTAuNyAyNTYuOSAxMTAuNyAxOTQuM2MwLTQwLjYgMjEuNC03Ni4yIDUzLjQtOTYuMiAzLjEtMiA3LjItMS41IDkuOSAxLjFzMy4xIDYuNyAxLjIgOS44Yy01LjIgOC42LTguMiAxOC43LTguMiAyOS41IDAgMTUuMSA1LjkgMjguOCAxNS41IDM5LjEgMi41IDIuNyAyLjkgNi43IC45IDkuNy00LjcgNy40LTcuNCAxNi4xLTcuNCAyNS41IDAgMjEuNiAxNC4zIDM5LjkgMzQgNDUuOWwxLTI0LjhjLTcuMS00LjQtMTEuOC0xMi4yLTExLjgtMjEuMSAwLTkuNiA1LjUtMTggMTMuNS0yMi4xbDMuMy04MS44Yy4yLTQuMyAzLjctNy43IDgtNy43czcuOCAzLjQgOCA3LjdsMy4zIDgxLjhjOCA0LjEgMTMuNSAxMi40IDEzLjUgMjIuMSAwIDguOS00LjcgMTYuNy0xMS44IDIxLjFsMSAyNC44YzE5LjYtNiAzMy45LTI0LjEgMzQtNDUuNmwwLS42Yy0uMS05LjMtMi43LTE3LjktNy40LTI1LjItMS45LTMuMS0xLjYtNy4xIC45LTkuNyA5LjYtMTAuMiAxNS41LTIzLjkgMTUuNS0zOS4xIDAtMTAuOC0zLTIwLjktOC4yLTI5LjUtMS45LTMuMi0xLjQtNy4yIDEuMi05Ljh6Il19LENOZT1vUixsUj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJjaGFtcGFnbmUtZ2xhc3NlcyIsaWNvbjpbNjQwLDUxMixbMTI5MzQ2LCJnbGFzcy1jaGVlcnMiXSwiZjc5ZiIsIk0xNTUuNiAxNy4zQzE2MyAzIDE3OS45LTMuNiAxOTUgMS45bDEyNSA0NS42IDEyNS00NS42YzE1LjEtNS41IDMyIDEuMSAzOS40IDE1LjRsNzguOCAxNTIuOWMyOC44IDU1LjggMTAuMyAxMjIuMy0zOC41IDE1Ni42bDMxLjMgODYuMiA0MS0xNWMxNi42LTYgMzUgMi41IDQxIDE5LjFzLTIuNSAzNS0xOS4xIDQxYy00Ny40IDE3LjMtOTQuOCAzNC41LTE0Mi4yIDUxLjgtMTYuNiA2LjEtMzUtMi41LTQxLTE5LjFzMi41LTM1IDE5LjEtNDFsNDEtMTUtMzEuMy04Ni4yYy01OS40IDUuMi0xMTYuMi0zMy45LTEzMC05NS4ybC0xNC42LTY0LjctMTQuNiA2NC43Yy0xMy44IDYxLjMtNzAuNiAxMDAuNC0xMzAgOTUuMmwtMzEuMyA4Ni4yIDQxIDE1YzE2LjYgNi4xIDI1LjIgMjQuNCAxOS4xIDQxcy0yNC40IDI1LjItNDEgMTkuMWMtNDcuNC0xNy4zLTk0LjgtMzQuNi0xNDIuMi01MS44LTE2LjYtNi4xLTI1LjItMjQuNC0xOS4xLTQxUzI2LjMgMzkyIDQyLjkgMzk4bDQxIDE1IDMxLjMtODYuMkM2Ni41IDI5Mi41IDQ4LjEgMjI2IDc2LjkgMTcwLjJMMTU1LjYgMTcuM3ptNDQgNTQuNGwtMjcuMiA1Mi44IDg5LjIgMzIuNSAxMy4xLTU3LjktNzUuMS0yNy40em0yNDAuOSAwbC03NS4xIDI3LjQgMTMuMSA1Ny45IDg5LjItMzIuNS0yNy4yLTUyLjh6Il19LF9OZT1sUixUTmU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZHVtcHN0ZXIiLGljb246WzU3Niw1MTIsW10sImY3OTMiLCJNMTMyLjMgNjRMMTA2LjcgMTkyIDI0IDE5MmMtMTMuMyAwLTI0LTEwLjctMjQtMjRsMC00LjFjMC0yLjYgLjQtNS4xIDEuMi03LjZMMjYuNSA4MC40QzI5LjggNzAuNiAzOSA2NCA0OS4zIDY0bDgzIDB6bTIzLjQgMTI4bDI1LjYtMTI4IDgyLjcgMCAwIDEyOC0xMDguMyAwek0zMTIgNjRsODIuNyAwIDI1LjYgMTI4LTEwOC4zIDAgMC0xMjh6bTEzMS43IDBsODMgMGMxMC4zIDAgMTkuNSA2LjYgMjIuOCAxNi40bDI1LjMgNzUuOWMuOCAyLjQgMS4yIDUgMS4yIDcuNmwwIDQuMWMwIDEzLjMtMTAuNyAyNC0yNCAyNGwtODIuNyAwLTI1LjYtMTI4ek0yNS43IDI0MGw1MjQuNyAwYy0uNCAyLjEtMTMuMyA3My40LTM4LjkgMjEzLjctMyAxNi4zLTE3LjkgMjcuNi0zNC40IDI2LjFTNDQ4IDQ2NC42IDQ0OCA0NDhsMC0xNi0zMjAgMCAwIDE2YzAgMTYuNi0xMi42IDMwLjQtMjkuMSAzMS45UzY3LjUgNDcwIDY0LjUgNDUzLjdDMzkgMzEzLjMgMjYgMjQyLjEgMjUuNyAyNDB6Il19LExOZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJoZWFydC1jaXJjbGUteG1hcmsiLGljb246WzU3Niw1MTIsW10sImU1MDEiLCJNMjQxIDg3LjFsMTUgMjAuNyAxNS0yMC43QzI5NiA1Mi41IDMzNi4yIDMyIDM3OC45IDMyIDQ1Mi40IDMyIDUxMiA5MS42IDUxMiAxNjUuMWwwIDIuNmMwIDE3LjYtMy40IDM1LjYtOS41IDUzLjctMjEuOC04LjYtNDUuNi0xMy40LTcwLjUtMTMuNC0xMDYgMC0xOTIgODYtMTkyIDE5MiAwIDI4LjUgNi4yIDU1LjYgMTcuNCA4MC0uNSAwLS45IDAtMS40IDAtMTUuNSAwLTMwLjgtNC42LTQzLjEtMTQuMS03My01NS43LTIxMi45LTE4Ni0yMTIuOS0yOTguMmwwLTIuNkMwIDkxLjYgNTkuNiAzMiAxMzMuMSAzMiAxNzUuOCAzMiAyMTYgNTIuNSAyNDEgODcuMXpNNDMyIDI1NmExNDQgMTQ0IDAgMSAxIDAgMjg4IDE0NCAxNDQgMCAxIDEgMC0yODh6bTU5LjMgMTA3LjNjNi4yLTYuMiA2LjItMTYuNCAwLTIyLjZzLTE2LjQtNi4yLTIyLjYgMGwtMzYuNyAzNi43LTM2LjctMzYuN2MtNi4yLTYuMi0xNi40LTYuMi0yMi42IDBzLTYuMiAxNi40IDAgMjIuNmwzNi43IDM2LjctMzYuNyAzNi43Yy02LjIgNi4yLTYuMiAxNi40IDAgMjIuNnMxNi40IDYuMiAyMi42IDBsMzYuNy0zNi43IDM2LjcgMzYuN2M2LjIgNi4yIDE2LjQgNi4yIDIyLjYgMHM2LjItMTYuNCAwLTIyLjZsLTM2LjctMzYuNyAzNi43LTM2Ljd6Il19LCROZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJjb21wdXRlciIsaWNvbjpbNTc2LDUxMixbXSwiZTRlNSIsIk0zNDguOCAzMkMzNDAuNyA0Ni4xIDMzNiA2Mi41IDMzNiA4MGwwIDE2LTI3MiAwIDAgMjI0IDI3MiAwIDAgNjQtMjcyIDBjLTM1LjMgMC02NC0yOC43LTY0LTY0TDAgOTZDMCA2MC43IDI4LjcgMzIgNjQgMzJsMjg0LjggMHpNMzM2IDQzMmMwIDE3LjUgNC43IDMzLjkgMTIuOCA0OEwxMjAgNDgwYy0xMy4zIDAtMjQtMTAuNy0yNC0yNHMxMC43LTI0IDI0LTI0bDIxNiAwek00MzIgMzJsOTYgMGMyNi41IDAgNDggMjEuNSA0OCA0OGwwIDM1MmMwIDI2LjUtMjEuNSA0OC00OCA0OGwtOTYgMGMtMjYuNSAwLTQ4LTIxLjUtNDgtNDhsMC0zNTJjMC0yNi41IDIxLjUtNDggNDgtNDh6bTI0IDY0Yy0xMy4zIDAtMjQgMTAuNy0yNCAyNHMxMC43IDI0IDI0IDI0bDQ4IDBjMTMuMyAwIDI0LTEwLjcgMjQtMjRzLTEwLjctMjQtMjQtMjRsLTQ4IDB6bTAgOTZjLTEzLjMgMC0yNCAxMC43LTI0IDI0czEwLjcgMjQgMjQgMjRsNDggMGMxMy4zIDAgMjQtMTAuNyAyNC0yNHMtMTAuNy0yNC0yNC0yNGwtNDggMHptNTYgMTQ0YTMyIDMyIDAgMSAwIC02NCAwIDMyIDMyIDAgMSAwIDY0IDB6Il19LGNSPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6IndhbmQtbWFnaWMiLGljb246WzUxMiw1MTIsWyJtYWdpYyJdLCJmMGQwIiwiTTM5OC41IDEyLjJsLTg4LjIgODguMiAxMDEuMyAxMDEuMyA4OC4yLTg4LjJDNTA3LjYgMTA1LjYgNTEyIDk1IDUxMiA4NHMtNC40LTIxLjYtMTIuMi0yOS41TDQ1Ny41IDEyLjJDNDQ5LjYgNC40IDQzOSAwIDQyOCAwcy0yMS42IDQuNC0yOS41IDEyLjJ6TTI3Ni40IDEzNC4zTDEyLjIgMzk4LjVDNC40IDQwNi40IDAgNDE3IDAgNDI4czQuNCAyMS42IDEyLjIgMjkuNWw0Mi4zIDQyLjNDNjIuNCA1MDcuNiA3MyA1MTIgODQgNTEyczIxLjYtNC40IDI5LjUtMTIuMkwzNzcuNyAyMzUuNiAyNzYuNCAxMzQuM3oiXX0sQU5lPWNSLEROZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJicmFpbiIsaWNvbjpbNTEyLDUxMixbMTI5NTA0XSwiZjVkYyIsIk0xMjAgNTZjMC0zMC45IDI1LjEtNTYgNTYtNTZsMjQgMGMxNy43IDAgMzIgMTQuMyAzMiAzMmwwIDQ0OGMwIDE3LjctMTQuMyAzMi0zMiAzMmwtMzIgMGMtMjkuOCAwLTU0LjktMjAuNC02Mi00OC0uNyAwLTEuMyAwLTIgMC00NC4yIDAtODAtMzUuOC04MC04MCAwLTE4IDYtMzQuNiAxNi00OC0xOS40LTE0LjYtMzItMzcuOC0zMi02NCAwLTMwLjkgMTcuNi01Ny44IDQzLjItNzEuMS03LjEtMTItMTEuMi0yNi0xMS4yLTQwLjkgMC00NC4yIDM1LjgtODAgODAtODBsMC0yNHptMjcyIDBsMCAyNGM0NC4yIDAgODAgMzUuOCA4MCA4MCAwIDE1LTQuMSAyOS0xMS4yIDQwLjkgMjUuNyAxMy4zIDQzLjIgNDAuMSA0My4yIDcxLjEgMCAyNi4yLTEyLjYgNDkuNC0zMiA2NCAxMCAxMy40IDE2IDMwIDE2IDQ4IDAgNDQuMi0zNS44IDgwLTgwIDgwLS43IDAtMS4zIDAtMiAwLTcuMSAyNy42LTMyLjIgNDgtNjIgNDhsLTMyIDBjLTE3LjcgMC0zMi0xNC4zLTMyLTMybDAtNDQ4YzAtMTcuNyAxNC4zLTMyIDMyLTMybDI0IDBjMzAuOSAwIDU2IDI1LjEgNTYgNTZ6Il19LEVOZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJicmllZmNhc2UtbWVkaWNhbCIsaWNvbjpbNTEyLDUxMixbXSwiZjQ2OSIsIk0yMDAgNDhsMTEyIDBjNC40IDAgOCAzLjYgOCA4bDAgNDAtMTI4IDAgMC00MGMwLTQuNCAzLjYtOCA4LTh6bS01NiA4bDAgNDAtODAgMEMyOC43IDk2IDAgMTI0LjcgMCAxNjBMMCA0MTZjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMzg0IDBjMzUuMyAwIDY0LTI4LjcgNjQtNjRsMC0yNTZjMC0zNS4zLTI4LjctNjQtNjQtNjRsLTgwIDAgMC00MGMwLTMwLjktMjUuMS01Ni01Ni01NkwyMDAgMGMtMzAuOSAwLTU2IDI1LjEtNTYgNTZ6bTgwIDE2MGMwLTguOCA3LjItMTYgMTYtMTZsMzIgMGM4LjggMCAxNiA3LjIgMTYgMTZsMCA0MCA0MCAwYzguOCAwIDE2IDcuMiAxNiAxNmwwIDMyYzAgOC44LTcuMiAxNi0xNiAxNmwtNDAgMCAwIDQwYzAgOC44LTcuMiAxNi0xNiAxNmwtMzIgMGMtOC44IDAtMTYtNy4yLTE2LTE2bDAtNDAtNDAgMGMtOC44IDAtMTYtNy4yLTE2LTE2bDAtMzJjMC04LjggNy4yLTE2IDE2LTE2bDQwIDAgMC00MHoiXX0sUE5lPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImhvdXNlLW1lZGljYWwtY2lyY2xlLWV4Y2xhbWF0aW9uIixpY29uOls2NDAsNTEyLFtdLCJlNTEyIiwiTTMwOS44IDguNmMtMTIuMy0xMS40LTMxLjMtMTEuNC00My41IDBsLTIyNCAyMDhjLTkuNiA5LTEyLjggMjIuOS04IDM1LjFTNTAuOCAyNzIgNjQgMjcybDE2IDAgMCAxNzZjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMTk2IDBjLTIxLjItMjkuNS0zNC4zLTY1LjMtMzUuOS0xMDRMMjcyIDQwOGMtOC44IDAtMTYtNy4yLTE2LTE2bDAtNDAtNDAgMGMtOC44IDAtMTYtNy4yLTE2LTE2bDAtMzJjMC04LjggNy4yLTE2IDE2LTE2bDQwIDAgMC00MGMwLTguOCA3LjItMTYgMTYtMTZsMzIgMGM4LjggMCAxNiA3LjIgMTYgMTZsMCA0MCAyMCAwYzM0LjktNDguNSA5MS43LTgwIDE1Ni04MCAxMC43IDAgMjEuMSAuOSAzMS4zIDIuNUwzMDkuOCA4LjZ6TTQ5NiA1NDRhMTQ0IDE0NCAwIDEgMCAwLTI4OCAxNDQgMTQ0IDAgMSAwIDAgMjg4em0wLTEwMGEyMCAyMCAwIDEgMSAwIDQwIDIwIDIwIDAgMSAxIDAtNDB6bTAtMTQwYzguOCAwIDE2IDcuMiAxNiAxNmwwIDgwYzAgOC44LTcuMiAxNi0xNiAxNnMtMTYtNy4yLTE2LTE2bDAtODBjMC04LjggNy4yLTE2IDE2LTE2eiJdfSxJTmU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiY29kZS1jb21taXQiLGljb246WzU3Niw1MTIsW10sImYzODYiLCJNMjg4IDMzNmE4MCA4MCAwIDEgMCAwLTE2MCA4MCA4MCAwIDEgMCAwIDE2MHptMTU2LjgtNDhDNDMwIDM2MSAzNjUuNCA0MTYgMjg4IDQxNlMxNDYgMzYxIDEzMS4yIDI4OEwzMiAyODhjLTE3LjcgMC0zMi0xNC4zLTMyLTMyczE0LjMtMzIgMzItMzJsOTkuMiAwQzE0NiAxNTEgMjEwLjYgOTYgMjg4IDk2czE0MiA1NSAxNTYuOCAxMjhsOTkuMiAwYzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMybC05OS4yIDB6Il19LE5OZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJwZXJzb24tYnJlYXN0ZmVlZGluZyIsaWNvbjpbNDQ4LDUxMixbXSwiZTUzYSIsIk0yMjQgMGE4MCA4MCAwIDEgMSAwIDE2MCA4MCA4MCAwIDEgMSAwLTE2MHpNNDM2LjggMzgyLjhMMzczLjUgNDYyYy0xNi42IDIwLjctNDYuOCAyNC4xLTY3LjUgNy41LTE3LjYtMTQuMS0yMi43LTM4LjEtMTMuNS01Ny43bC0uNy0uMWMtMzguOS01LjYtNzQuMy0yNS4xLTk5LjctNTQuOGwwLTM2LjhjMC0xNy43LTE0LjMtMzItMzItMzJzLTMyIDE0LjMtMzIgMzJsMCA0OGMwIC44IDAgMS42IC4xIDIuNGwxMDEuNCA1MC43YzIzLjcgMTEuOSAzMy4zIDQwLjcgMjEuNSA2NC40cy00MC43IDMzLjMtNjQuNCAyMS41TDI3LjIgNDI3LjNjLTEuMS0uNS0yLjItMS4xLTMuMy0xLjctNC45LTIuOC05LjItNi40LTEyLjYtMTAuNi00LjYtNS40LTcuOC0xMS43LTkuNi0xOC40LTMuMy0xMi0xLjktMjUuMiA0LjgtMzYuNiAuNi0xLjEgMS4zLTIuMiAyLTMuMkw3NS42IDI1Ni4xYzI2LjctNDAuMSA3MS43LTY0LjEgMTE5LjgtNjQuMWw3NS4yIDBjNDYuNSAwIDkwLjEgMjIuNSAxMTcuMiA2MC4zbDUwLjcgNzAuOWMyLjIgMyA0IDYuMSA1LjUgOS40IDIuOSA2LjcgNC4zIDEzLjggNCAyMC44LS4zIDEwLjYtNC4yIDIxLTExLjIgMjkuNHpNMzIwIDMzMmE0NCA0NCAwIDEgMCAtODggMCA0NCA0NCAwIDEgMCA4OCAweiJdfSxGTmU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToicGVyc29uLXJheXMiLGljb246WzUxMiw1MTIsW10sImU1NGQiLCJNMzEyLjUgMjRhNTYgNTYgMCAxIDAgLTExMiAwIDU2IDU2IDAgMSAwIDExMiAwem0yNCAyMTIuN2w0Ni4zIDYyLjRjMTAuNSAxNC4yIDMwLjYgMTcuMiA0NC44IDYuNnMxNy4yLTMwLjYgNi42LTQ0LjhsLTcwLjUtOTVDMzM4LjUgMTMyIDI5OC44IDExMiAyNTYuNSAxMTJzLTgyIDIwLTEwNy4yIDUzLjlsLTcwLjUgOTVjLTEwLjUgMTQuMi03LjYgMzQuMiA2LjYgNDQuOHMzNC4yIDcuNiA0NC44LTYuNmw0Ni4zLTYyLjQgMCAyNzUuM2MwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMybDAtMTYwYzAtOC44IDcuMi0xNiAxNi0xNnMxNiA3LjIgMTYgMTZsMCAxNjBjMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMmwwLTI3NS4zek03LjUgN2MtOS40IDkuNC05LjQgMjQuNiAwIDMzLjlsODAgODBjOS40IDkuNCAyNC42IDkuNCAzMy45IDBzOS40LTI0LjYgMC0zMy45TDQxLjUgN0MzMi4xLTIuMyAxNi45LTIuMyA3LjUgN3ptNDY0IDBsLTgwIDgwYy05LjQgOS40LTkuNCAyNC42IDAgMzMuOXMyNC42IDkuNCAzMy45IDBsODAtODBjOS40LTkuNCA5LjQtMjQuNiAwLTMzLjlzLTI0LjYtOS40LTMzLjkgMHpNNy41IDUwNWM5LjQgOS40IDI0LjYgOS40IDMzLjkgMGw4MC04MGM5LjQtOS40IDkuNC0yNC42IDAtMzMuOXMtMjQuNi05LjQtMzMuOSAwbC04MCA4MGMtOS40IDkuNC05LjQgMjQuNiAwIDMzLjl6bTQ2NCAwYzkuNCA5LjQgMjQuNiA5LjQgMzMuOSAwczkuNC0yNC42IDAtMzMuOWwtODAtODBjLTkuNC05LjQtMjQuNi05LjQtMzMuOSAwcy05LjQgMjQuNiAwIDMzLjlsODAgODB6Il19LE9OZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJtYW5hdC1zaWduIixpY29uOlszODQsNTEyLFtdLCJlMWQ1IiwiTTE5MiAzMmMtMTMuMyAwLTI0IDEwLjctMjQgMjRsMCA0MS41QzczLjMgMTA5LjMgMCAxOTAuMSAwIDI4OEwwIDQ0OGMwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMybDAtMTYwYzAtNjIuNSA0NC44LTExNC41IDEwNC0xMjUuOEwxNjggNDU2YzAgMTMuMyAxMC43IDI0IDI0IDI0czI0LTEwLjcgMjQtMjRsMC0yOTMuOGM1OS4yIDExLjIgMTA0IDYzLjMgMTA0IDEyNS44bDAgMTYwYzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJsMC0xNjBjMC05Ny45LTczLjMtMTc4LjctMTY4LTE5MC41TDIxNiA1NmMwLTEzLjMtMTAuNy0yNC0yNC0yNHoiXX0sZFI9e3ByZWZpeDoiZmFzIixpY29uTmFtZToic29ydCIsaWNvbjpbMzg0LDUxMixbInVuc29ydGVkIl0sImYwZGMiLCJNMi40IDIwNC4yYzUgMTIgMTYuNiAxOS44IDI5LjYgMTkuOGwzMjAgMGMxMi45IDAgMjQuNi03LjggMjkuNi0xOS44czIuMi0yNS43LTYuOS0zNC45bC0xNjAtMTYwYy0xMi41LTEyLjUtMzIuOC0xMi41LTQ1LjMgMGwtMTYwIDE2MGMtOS4yIDkuMi0xMS45IDIyLjktNi45IDM0Ljl6bTAgMTAzLjVjLTUgMTItMi4yIDI1LjcgNi45IDM0LjlsMTYwIDE2MGMxMi41IDEyLjUgMzIuOCAxMi41IDQ1LjMgMGwxNjAtMTYwYzkuMi05LjIgMTEuOS0yMi45IDYuOS0zNC45UzM2NC45IDI4OCAzNTIgMjg4TDMyIDI4OGMtMTIuOSAwLTI0LjYgNy44LTI5LjYgMTkuOHoiXX0sUk5lPWRSLGhSPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImNpcmNsZS1yYWRpYXRpb24iLGljb246WzUxMiw1MTIsWzk3NjIsInJhZGlhdGlvbi1hbHQiXSwiZjdiYSIsIk0wIDI1NmEyNTYgMjU2IDAgMSAxIDUxMiAwIDI1NiAyNTYgMCAxIDEgLTUxMiAwem04MCAwbDY0LjMgMGM4LjcgMCAxNS43LTcuMSAxNy4zLTE1LjYgNC40LTI0LjQgMTguMS00NS41IDM3LjItNTkuNyA3LjQtNS41IDEwLjYtMTUuNiA2LTIzLjZsLTMyLjUtNTYuM2MtNC4zLTcuNS0xMy45LTEwLjMtMjEuMi01LjUtNDguMiAzMS41LTgxLjMgODQuMi04Ni4zIDE0NC44LS43IDguOCA2LjUgMTYgMTUuMyAxNnptMTM3LjkgODkuOGMtOC41LTMuNy0xOC44LTEuNC0yMy41IDYuNmwtMzEgNTMuOGMtNC4zIDcuNS0xLjkgMTcuMiA1LjggMjEuMSAyNi4xIDEzLjIgNTUuNSAyMC43IDg2LjggMjAuN3M2MC43LTcuNSA4Ni44LTIwLjdjNy43LTMuOSAxMC4xLTEzLjYgNS44LTIxLjFsLTMxLTUzLjhjLTQuNi04LTE1LTEwLjMtMjMuNS02LjYtMTEuNyA1LTI0LjUgNy44LTM4LjEgNy44cy0yNi40LTIuOC0zOC4xLTcuOHpNMzUwLjQgMjQwLjRjMS42IDguNiA4LjUgMTUuNiAxNy4zIDE1LjZsNjQuMyAwYzguOCAwIDE2LjEtNy4yIDE1LjMtMTYtNS02MC42LTM4LjEtMTEzLjItODYuMy0xNDQuOC03LjMtNC44LTE2LjgtMi0yMS4yIDUuNUwzMDcuMyAxNTdjLTQuNiA4LTEuNCAxOC4xIDYgMjMuNiAxOS4xIDE0LjIgMzIuNyAzNS40IDM3LjIgNTkuN3pNMjU2IDMwNS43YTQ4IDQ4IDAgMSAwIDAtOTYgNDggNDggMCAxIDAgMCA5NnoiXX0sQk5lPWhSLEhOZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJsYXB0b3AtY29kZSIsaWNvbjpbNjQwLDUxMixbXSwiZjVmYyIsIk02NCA5NmMwLTM1LjMgMjguNy02NCA2NC02NGwzODQgMGMzNS4zIDAgNjQgMjguNyA2NCA2NGwwIDI0MC02NCAwIDAtMjQwLTM4NCAwIDAgMjQwLTY0IDAgMC0yNDB6TTAgNDAzLjJDMCAzOTIuNiA4LjYgMzg0IDE5LjIgMzg0bDYwMS42IDBjMTAuNiAwIDE5LjIgOC42IDE5LjIgMTkuMiAwIDQyLjQtMzQuNCA3Ni44LTc2LjggNzYuOEw3Ni44IDQ4MEMzNC40IDQ4MCAwIDQ0NS42IDAgNDAzLjJ6TTI4MSAyMDlsLTMxIDMxIDMxIDMxYzkuNCA5LjQgOS40IDI0LjYgMCAzMy45cy0yNC42IDkuNC0zMy45IDBsLTQ4LTQ4Yy05LjQtOS40LTkuNC0yNC42IDAtMzMuOWw0OC00OGM5LjQtOS40IDI0LjYtOS40IDMzLjkgMHM5LjQgMjQuNiAwIDMzLjl6TTM5MyAxNzVsNDggNDhjOS40IDkuNCA5LjQgMjQuNiAwIDMzLjlsLTQ4IDQ4Yy05LjQgOS40LTI0LjYgOS40LTMzLjkgMHMtOS40LTI0LjYgMC0zMy45bDMxLTMxLTMxLTMxYy05LjQtOS40LTkuNC0yNC42IDAtMzMuOXMyNC42LTkuNCAzMy45IDB6Il19LHFOZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJzaW5rIixpY29uOls1MTIsNTEyLFtdLCJlMDZkIiwiTTI4OCA5NmMwLTE3LjcgMTQuMy0zMiAzMi0zMnMzMiAxNC4zIDMyIDMyIDE0LjMgMzIgMzIgMzIgMzItMTQuMyAzMi0zMmMwLTUzLTQzLTk2LTk2LTk2cy05NiA0My05NiA5NmwwIDE5Mi02NCAwIDAtNDBjMC0zMC45LTI1LjEtNTYtNTYtNTZsLTQ4IDBjLTEzLjMgMC0yNCAxMC43LTI0IDI0czEwLjcgMjQgMjQgMjRsNDggMGM0LjQgMCA4IDMuNiA4IDhsMCA0MC04MCAwYy0xNy43IDAtMzIgMTQuMy0zMiAzMnMxNC4zIDMyIDMyIDMybDAgNjRjMCA1MyA0MyA5NiA5NiA5NmwyNTYgMGM1MyAwIDk2LTQzIDk2LTk2bDAtNjRjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJsLTgwIDAgMC00MGMwLTQuNCAzLjYtOCA4LThsNTYgMGMxMy4zIDAgMjQtMTAuNyAyNC0yNHMtMTAuNy0yNC0yNC0yNGwtNTYgMGMtMzAuOSAwLTU2IDI1LjEtNTYgNTZsMCA0MC02NCAwIDAtMTkyeiJdfSxWTmU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiYXJyb3ctdXAtZnJvbS13YXRlci1wdW1wIixpY29uOls2NDAsNTEyLFtdLCJlNGI2IiwiTTE0NCAzMmMtMjYuNSAwLTQ4IDIxLjUtNDggNDhsMCAxNzYtMTYgMGMtMjYuNSAwLTQ4IDIxLjUtNDggNDhsMCA3OS42YzE3LjYtMiAzNiAyLjUgNTEuMyAxNCAzLjQgMi42IDYuMSAxLjQgOS44LS4zbC44LS40YzUuNy0yLjYgMTIuOS02LjkgMjEuNy0xMy41IDI3LjUtMjAuNyA1OS45LTMxLjIgOTIuMy0zMS40IDMzLjEtLjIgNjYuMyAxMC4yIDk0LjQgMzEuNCAyMi4xIDE2LjYgMjkuMSAxNi42IDUxLjIgMCAyNy41LTIwLjcgNTkuOS0zMS4yIDkyLjQtMzEuNCAzMy4xLS4yIDY2LjMgMTAuMiA5NC40IDMxLjQgNi45IDUuMiAxMi44IDkgMTggMTEuNyAuNiAuMyAxLjIgLjYgMS44IDEgNC4yIDIuMyA4LjUgNC42IDEyLjYgMS41IDEwLjctOC4xIDIyLjktMTIuNyAzNS4zLTE0LjFsMC03OS41YzAtMjYuNS0yMS41LTQ4LTQ4LTQ4bC01NiAwIDAtMTQyLjEgNDcgNDdjOS40IDkuNCAyNC42IDkuNCAzMy45IDBzOS40LTI0LjYgMC0zMy45TDQ5NyAzOWMtOS40LTkuNC0yNC42LTkuNC0zMy45IDBsLTg4IDg4Yy05LjQgOS40LTkuNCAyNC42IDAgMzMuOXMyNC42IDkuNCAzMy45IDBsNDctNDcgMCAxNDIuMS0xMzYgMCAwLTE3NmMwLTI2LjUtMjEuNS00OC00OC00OEwxNDQgMzJ6TTQ3NC42IDQ3Ni4xYzE5IDE0LjQgNDEuOSAyOC4yIDY3LjIgMzMuMyAyNi41IDUuNCA1NC4zIC44IDgwLjctMTkuMSAxMC42LTggMTIuNy0yMyA0LjctMzMuNnMtMjMtMTIuNy0zMy42LTQuN2MtMTQuOSAxMS4yLTI4LjYgMTMuMS00Mi4zIDEwLjMtMTQuOS0zLTMwLjktMTEuOS00Ny44LTI0LjYtMzguNC0yOS05MC41LTI5LTEyOSAwLTI0IDE4LjEtNDAuNyAyNi4zLTU0LjUgMjYuM3MtMzAuNS04LjItNTQuNS0yNi4zYy0zOC40LTI5LTkwLjUtMjktMTI5IDAtMjEuNiAxNi4zLTQxLjMgMjUuOC01OC45IDI1LjctOS42LS4xLTE5LjktMy0zMS4yLTExLjUtMTAuNi04LTI1LjYtNS45LTMzLjYgNC43UzcgNDgyLjMgMTcuNiA0OTAuM2MxOS4xIDE0LjQgMzkuNCAyMSA1OS44IDIxLjEgMzMuOSAuMiA2NC4zLTE3LjQgODguMS0zNS4zIDIxLjMtMTYuMSA0OS45LTE2LjEgNzEuMiAwIDI0LjIgMTguMyA1Mi4zIDM1LjkgODMuNCAzNS45czU5LjEtMTcuNyA4My40LTM1LjljMjEuMy0xNi4xIDQ5LjktMTYuMSA3MS4yIDB6Il19LHBSPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6Im1pY3JvcGhvbmUtbGluZXMtc2xhc2giLGljb246WzU3Niw1MTIsWyJtaWNyb3Bob25lLWFsdC1zbGFzaCJdLCJmNTM5IiwiTTctMjQuOWM5LjQtOS40IDI0LjYtOS40IDMzLjkgMGwxNTEgMTUxIDAtMzAuMmMwLTUzIDQzLTk2IDk2LTk2IDUwLjMgMCA5MS42IDM4LjcgOTUuNyA4OEwzMjggODhjLTEzLjMgMC0yNCAxMC43LTI0IDI0czEwLjcgMjQgMjQgMjRsNTYgMCAwIDQ4LTU2IDBjLTEzLjMgMC0yNCAxMC43LTI0IDI0czEwLjcgMjQgMjQgMjRsNTUuNyAwYy0xLjkgMjIuOS0xMS44IDQzLjQtMjYuOSA1OWwzMy45IDMzLjljMjUuNS0yNiA0MS4zLTYxLjYgNDEuMy0xMDAuOWwwLTQwYzAtMTMuMyAxMC43LTI0IDI0LTI0czI0IDEwLjcgMjQgMjRsMCA0MGMwIDUyLjYtMjEuMSAxMDAuMi01NS4zIDEzNC44TDU2OSA1MDMuMWM5LjQgOS40IDkuNCAyNC42IDAgMzMuOXMtMjQuNiA5LjQtMzMuOSAwTDcgOS4xQy0yLjMtLjMtMi4zLTE1LjUgNy0yNC45ek0yOTcuOCAzNjcuN2w0MS40IDQxLjRjLTguOCAyLjQtMTcuOSA0LjMtMjcuMyA1LjRsMCA0OS41IDQ4IDBjMTMuMyAwIDI0IDEwLjcgMjQgMjRzLTEwLjcgMjQtMjQgMjRsLTE0NCAwYy0xMy4zIDAtMjQtMTAuNy0yNC0yNHMxMC43LTI0IDI0LTI0bDQ4IDAgMC00OS41QzE2OS4zIDQwMi43IDk2IDMyMS45IDk2IDIyNGwwLTQwYzAtNS4xIDEuNi05LjkgNC40LTEzLjhsNDMuNiA0My42IDAgMTAuMmMwIDc5LjUgNjQuNSAxNDQgMTQ0IDE0NCAzLjMgMCA2LjYtLjEgOS44LS4zeiJdfSxqTmU9cFIsVU5lPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InNlcnZlciIsaWNvbjpbNDQ4LDUxMixbXSwiZjIzMyIsIk02NCAzMkMyOC43IDMyIDAgNjAuNyAwIDk2bDAgNjRjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMzIwIDBjMzUuMyAwIDY0LTI4LjcgNjQtNjRsMC02NGMwLTM1LjMtMjguNy02NC02NC02NEw2NCAzMnptMjE2IDcyYTI0IDI0IDAgMSAxIDAgNDggMjQgMjQgMCAxIDEgMC00OHptNTYgMjRhMjQgMjQgMCAxIDEgNDggMCAyNCAyNCAwIDEgMSAtNDggMHpNNjQgMjg4Yy0zNS4zIDAtNjQgMjguNy02NCA2NGwwIDY0YzAgMzUuMyAyOC43IDY0IDY0IDY0bDMyMCAwYzM1LjMgMCA2NC0yOC43IDY0LTY0bDAtNjRjMC0zNS4zLTI4LjctNjQtNjQtNjRMNjQgMjg4em0yMTYgNzJhMjQgMjQgMCAxIDEgMCA0OCAyNCAyNCAwIDEgMSAwLTQ4em01NiAyNGEyNCAyNCAwIDEgMSA0OCAwIDI0IDI0IDAgMSAxIC00OCAweiJdfSxibT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJ1c2VyIixpY29uOls0NDgsNTEyLFsxMjgxMDAsNjIxNDQsNjI0NzAsInVzZXItYWx0IiwidXNlci1sYXJnZSJdLCJmMDA3IiwiTTIyNCAyNDhhMTIwIDEyMCAwIDEgMCAwLTI0MCAxMjAgMTIwIDAgMSAwIDAgMjQwem0tMjkuNyA1NkM5NS44IDMwNCAxNiAzODMuOCAxNiA0ODIuMyAxNiA0OTguNyAyOS4zIDUxMiA0NS43IDUxMmwzNTYuNiAwYzE2LjQgMCAyOS43LTEzLjMgMjkuNy0yOS43IDAtOTguNS03OS44LTE3OC4zLTE3OC4zLTE3OC4zbC01OS40IDB6Il19LFdOZT1ibSxHTmU9Ym0sWU5lPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InNub3dmbGFrZSIsaWNvbjpbNTEyLDUxMixbMTAwNTIsMTAwNTRdLCJmMmRjIiwiTTI4OC4yIDBjMC0xNy43LTE0LjMtMzItMzItMzJzLTMyIDE0LjMtMzIgMzJsMCA2Mi4xLTE1LTE1Yy05LjQtOS40LTI0LjYtOS40LTMzLjkgMHMtOS40IDI0LjYgMCAzMy45bDQ5IDQ5IDAgNzAuNi02MS4yLTM1LjMtMTcuOS02Ni45Yy0zLjQtMTIuOC0xNi42LTIwLjQtMjkuNC0xN1M5NS4zIDk4IDk4LjcgMTEwLjhsNS41IDIwLjUtNTMuNy0zMUMzNS4yIDkxLjUgMTUuNiA5Ni43IDYuOCAxMTJzLTMuNiAzNC45IDExLjcgNDMuN2w1My43IDMxLTIwLjUgNS41Yy0xMi44IDMuNC0yMC40IDE2LjYtMTcgMjkuNHMxNi42IDIwLjQgMjkuNCAxN2w2Ni45LTE3LjkgNjEuMiAzNS4zLTYxLjIgMzUuMy02Ni45LTE3LjljLTEyLjgtMy40LTI2IDQuMi0yOS40IDE3czQuMiAyNiAxNyAyOS40bDIwLjUgNS41LTUzLjcgMzFDMy4yIDM2NS4xLTIgMzg0LjcgNi44IDQwMHMyOC40IDIwLjYgNDMuNyAxMS43bDUzLjctMzEtNS41IDIwLjVjLTMuNCAxMi44IDQuMiAyNiAxNyAyOS40czI2LTQuMiAyOS40LTE3bDE3LjktNjYuOSA2MS4yLTM1LjMgMCA3MC42LTQ5IDQ5Yy05LjQgOS40LTkuNCAyNC42IDAgMzMuOXMyNC42IDkuNCAzMy45IDBsMTUtMTUgMCA2Mi4xYzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJsMC02Mi4xIDE1IDE1YzkuNCA5LjQgMjQuNiA5LjQgMzMuOSAwczkuNC0yNC42IDAtMzMuOWwtNDktNDkgMC03MC42IDYxLjIgMzUuMyAxNy45IDY2LjljMy40IDEyLjggMTYuNiAyMC40IDI5LjQgMTdzMjAuNC0xNi42IDE3LTI5LjRsLTUuNS0yMC41IDUzLjcgMzFjMTUuMyA4LjggMzQuOSAzLjYgNDMuNy0xMS43czMuNi0zNC45LTExLjctNDMuN2wtNTMuNy0zMSAyMC41LTUuNWMxMi44LTMuNCAyMC40LTE2LjYgMTctMjkuNHMtMTYuNi0yMC40LTI5LjQtMTdsLTY2LjkgMTcuOS02MS4yLTM1LjMgNjEuMi0zNS4zIDY2LjkgMTcuOWMxMi44IDMuNCAyNi00LjIgMjkuNC0xN3MtNC4yLTI2LTE3LTI5LjRsLTIwLjUtNS41IDUzLjctMzFjMTUuMy04LjggMjAuNi0yOC40IDExLjctNDMuN3MtMjguNC0yMC41LTQzLjctMTEuN2wtNTMuNyAzMSA1LjUtMjAuNWMzLjQtMTIuOC00LjItMjYtMTctMjkuNHMtMjYgNC4yLTI5LjQgMTdsLTE3LjkgNjYuOS02MS4yIDM1LjMgMC03MC42IDQ5LTQ5YzkuNC05LjQgOS40LTI0LjYgMC0zMy45cy0yNC42LTkuNC0zMy45IDBsLTE1IDE1IDAtNjIuMXoiXX0sWk5lPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InRhdXJ1cyIsaWNvbjpbMzg0LDUxMixbXSwiZTg0ZiIsIk0zMzYtMTZjMTcuNyAwIDMyIDE0LjMgMzIgMzIgMCA1OC41LTI4LjYgMTEwLjMtNzIuNSAxNDIuMyA1My4yIDM0LjEgODguNSA5My44IDg4LjUgMTYxLjcgMCAxMDYtODYgMTkyLTE5MiAxOTJTMCA0MjYgMCAzMjBDMCAyNTIuMSAzNS4zIDE5Mi40IDg4LjUgMTU4LjMgNDQuNiAxMjYuMyAxNiA3NC41IDE2IDE2IDE2LTEuNyAzMC4zLTE2IDQ4LTE2UzgwLTEuNyA4MCAxNmMwIDYxLjkgNTAuMSAxMTIgMTEyIDExMlMzMDQgNzcuOSAzMDQgMTZjMC0xNy43IDE0LjMtMzIgMzItMzJ6TTE5MiAxOTJhMTI4IDEyOCAwIDEgMCAwIDI1NiAxMjggMTI4IDAgMSAwIDAtMjU2eiJdfSxYTmU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToic2t1bGwtY3Jvc3Nib25lcyIsaWNvbjpbNDQ4LDUxMixbMTI4MzY5LDk3NjBdLCJmNzE0IiwiTTM4NCAxNDRDMzg0IDY0LjUgMzEyLjQgMCAyMjQgMFM2NCA2NC41IDY0IDE0NGMwIDQ3LjEgMjUuMSA4OC45IDY0IDExNS4ybDAgMjguOGMwIDE3LjcgMTQuMyAzMiAzMiAzMmwxMjggMGMxNy43IDAgMzItMTQuMyAzMi0zMmwwLTI4LjhjMzguOS0yNi4zIDY0LTY4LjEgNjQtMTE1LjJ6TTE2MCAxMjhhMzIgMzIgMCAxIDEgMCA2NCAzMiAzMiAwIDEgMSAwLTY0em05NiAzMmEzMiAzMiAwIDEgMSA2NCAwIDMyIDMyIDAgMSAxIC02NCAwek00NDUuNSAzMzkuN2MtNi44LTE2LjMtMjUuNS0yNC00MS44LTE3LjJMMjI0IDM5Ny4zIDQ0LjMgMzIyLjVjLTE2LjMtNi44LTM1IC45LTQxLjggMTcuMnMuOSAzNSAxNy4yIDQxLjhMMTQwLjggNDMyIDE5LjcgNDgyLjVDMy40IDQ4OS4zLTQuMyA1MDggMi41IDUyNC4zczI1LjUgMjQgNDEuOCAxNy4yTDIyNCA0NjYuNyA0MDMuNyA1NDEuNWMxNi4zIDYuOCAzNS0uOSA0MS44LTE3LjJzLS45LTM1LTE3LjItNDEuOEwzMDcuMiA0MzIgNDI4LjMgMzgxLjVjMTYuMy02LjggMjQtMjUuNSAxNy4yLTQxLjh6Il19LEtOZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJwZXNvLXNpZ24iLGljb246WzQ0OCw1MTIsW10sImUyMjIiLCJNMTEyIDMyQzk0LjMgMzIgODAgNDYuMyA4MCA2NGwwIDY0LTI0IDBjLTEzLjMgMC0yNCAxMC43LTI0IDI0czEwLjcgMjQgMjQgMjRsMjQgMCAwIDMyLTI0IDBjLTEzLjMgMC0yNCAxMC43LTI0IDI0czEwLjcgMjQgMjQgMjRsMjQgMCAwIDE5MmMwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMybDAtOTYgOTYgMGM2NS42IDAgMTIyLTM5LjUgMTQ2LjctOTZsMzcuMyAwYzEzLjMgMCAyNC0xMC43IDI0LTI0cy0xMC43LTI0LTI0LTI0bC0yNC44IDBjLjUtNS4zIC44LTEwLjYgLjgtMTZzLS4zLTEwLjctLjgtMTZsMjQuOCAwYzEzLjMgMCAyNC0xMC43IDI0LTI0cy0xMC43LTI0LTI0LTI0bC0zNy4zIDBDMzYyIDcxLjUgMzA1LjYgMzIgMjQwIDMyTDExMiAzMnptMTk5LjYgOTZsLTE2Ny42IDAgMC0zMiA5NiAwYzI4LjQgMCA1NCAxMi40IDcxLjYgMzJ6TTE0NCAxNzZsMTkwLjcgMGMuOSA1LjIgMS4zIDEwLjUgMS4zIDE2cy0uNSAxMC44LTEuMyAxNmwtMTkwLjcgMCAwLTMyem0xNjcuNiA4MGMtMTcuNiAxOS42LTQzLjEgMzItNzEuNiAzMmwtOTYgMCAwLTMyIDE2Ny42IDB6Il19LFFOZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJ3aW5lLWdsYXNzIixpY29uOlszMjAsNTEyLFsxMjc4NjNdLCJmNGUzIiwiTTMyLjYgMjUuN0MzNS42IDEwLjggNDguNyAwIDY0IDBMMjU2IDBjMTUuMyAwIDI4LjQgMTAuOCAzMS40IDI1LjdMMzE2LjggMTczYzIuMSAxMC41IDMuMiAyMS4yIDMuMiAzMmwwIDNjMCA3Ny40LTU1IDE0Mi0xMjggMTU2LjhsMCAxMTUuMiA2NCAwYzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMyTDY0IDU0NGMtMTcuNyAwLTMyLTE0LjMtMzItMzJzMTQuMy0zMiAzMi0zMmw2NCAwIDAtMTE1LjJDNTUgMzUwIDAgMjg1LjQgMCAyMDhsMC0zYzAtMTAuNyAxLjEtMjEuNCAzLjItMzJMMzIuNiAyNS43ek03Ny40IDEyOGwxNjUuMSAwLTEyLjgtNjQtMTM5LjUgMC0xMi44IDY0eiJdfSxXNT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJ0ZW1wZXJhdHVyZS1oYWxmIixpY29uOlszMjAsNTEyLFsxMjc3NzcsInRlbXBlcmF0dXJlLTIiLCJ0aGVybW9tZXRlci0yIiwidGhlcm1vbWV0ZXItaGFsZiJdLCJmMmM5IiwiTTE2MCAwQzEwNyAwIDY0IDQzIDY0IDk2bDAgMTY0LjdDMzQuNSAyODcgMTYgMzI1LjQgMTYgMzY4IDE2IDQ0Ny41IDgwLjUgNTEyIDE2MCA1MTJzMTQ0LTY0LjUgMTQ0LTE0NGMwLTQyLjYtMTguNS04MS00OC0xMDcuM0wyNTYgOTZjMC01My00My05Ni05Ni05NnptNjQgMzY4YzAgMzUuMy0yOC43IDY0LTY0IDY0cy02NC0yOC43LTY0LTY0YzAtMjYuOSAxNi41LTQ5LjkgNDAtNTkuM2wwLTkyLjdjMC0xMy4zIDEwLjctMjQgMjQtMjRzMjQgMTAuNyAyNCAyNGwwIDkyLjdjMjMuNSA5LjUgNDAgMzIuNSA0MCA1OS4zeiJdfSxKTmU9VzUsZUZlPVc1LHRGZT1XNSxhRmU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToidGlja2V0IixpY29uOls1NzYsNTEyLFsxMjc5MDNdLCJmMTQ1IiwiTTY0IDY0QzI4LjcgNjQgMCA5Mi43IDAgMTI4bDAgNjRDMCAyMDAuOCA3LjQgMjA3LjcgMTUuNyAyMTAuNiAzNC41IDIxNy4xIDQ4IDIzNSA0OCAyNTZzLTEzLjUgMzguOS0zMi4zIDQ1LjRDNy40IDMwNC4zIDAgMzExLjIgMCAzMjBsMCA2NGMwIDM1LjMgMjguNyA2NCA2NCA2NGw0NDggMGMzNS4zIDAgNjQtMjguNyA2NC02NGwwLTY0YzAtOC44LTcuNC0xNS43LTE1LjctMTguNi0xOC44LTYuNS0zMi4zLTI0LjQtMzIuMy00NS40czEzLjUtMzguOSAzMi4zLTQ1LjRjOC4zLTIuOSAxNS43LTkuOCAxNS43LTE4LjZsMC02NGMwLTM1LjMtMjguNy02NC02NC02NEw2NCA2NHpNNDE2IDMzNmwwLTE2MC0yNTYgMCAwIDE2MCAyNTYgMHpNMTEyIDE2MGMwLTE3LjcgMTQuMy0zMiAzMi0zMmwyODggMGMxNy43IDAgMzIgMTQuMyAzMiAzMmwwIDE5MmMwIDE3LjctMTQuMyAzMi0zMiAzMmwtMjg4IDBjLTE3LjcgMC0zMi0xNC4zLTMyLTMybDAtMTkyeiJdfSxpRmU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToid2hlYXQtYXduLWNpcmNsZS1leGNsYW1hdGlvbiIsaWNvbjpbNjQwLDUxMixbXSwiZTU5OCIsIk00OTYgNTc2YTE0NCAxNDQgMCAxIDEgMC0yODggMTQ0IDE0NCAwIDEgMSAwIDI4OHpNODEgNTI5Yy05LjQgOS4zLTI0LjUgOS4zLTMzLjkgMC05LjQtOS40LTkuNC0yNC42IDAtMzMuOUw4MSA1Mjl6bTMwLjItMjk0LjRjNi4yLTQuMSAxNC43LTMuNCAyMC4xIDIuMWw0Ni4xIDQ2LjEgNi4xIDYuN2MxOS43IDIzLjggMjYuMyA1NSAxOS4zIDgzLjkgMzEuNy03LjcgNjYuMiAxIDkwLjYgMjUuM2wxMiAxMmMtLjggNy0xLjIgMTQuMi0xLjIgMjEuNCAwIDIwIDMgMzkuMyA4LjcgNTcuNC0zNi44IDIxLjgtODUgMTctMTE2LjYtMTQuN0wxNjUuNiA0NDQuMyA4MSA1MjlDNjkuNyA1MTcuNyA1OC40IDUwNi4zIDQ3IDQ5NWw4NC43LTg0LjctMzAuNS0zMC41Yy0zNy41LTM3LjUtMzcuNS05OC4zIDAtMTM1LjdsNy40LTcuNCAyLjUtMi4xek00OTYgNDc2YTIwIDIwIDAgMSAwIDAgNDAgMjAgMjAgMCAxIDAgMC00MHptMC0xNDBjLTguOCAwLTE2IDcuMi0xNiAxNmwwIDgwYzAgOC44IDcuMiAxNiAxNiAxNiA4LjggMCAxNi03LjIgMTYtMTZsMC04MGMwLTguOC03LjItMTYtMTYtMTZ6TTIxNS4yIDEzMC42YzYuMi00LjEgMTQuNy0zLjQgMjAuMSAyLjFsNDYuMSA0Ni4xIDYuMSA2LjdjMTkuNyAyMy44IDI2LjMgNTUgMTkuMyA4My45IDI0LjItNS45IDUwLjEtMi4xIDcxLjkgMTAuOC0zMi4yIDI0LjktNTYuMiA1OS44LTY3LjQgMTAwLjEtMy44LTIuOC03LjUtNi0xMS05LjVsLTk0LjktOTQuOWMtMzcuNS0zNy41LTM3LjUtOTguMyAwLTEzNS43bDcuNC03LjQgMi41LTIuMXpNNTI2LjcgMTVjOS40LTkuNCAyNC42LTkuNCAzMy45IDAgOC44IDguOCA5LjMgMjIuNyAxLjcgMzIuMUw1NjAuNiA0OSA0NDYuMiAxNjMuNGM3LjcgMSAxNS4zIDMgMjIuNSA1LjlMNTI3IDExMWM5LjQtOS40IDI0LjYtOS40IDM0IDAgOC44IDguOCA5LjMgMjIuNyAxLjYgMzIuMWwtMS43IDEuOC01Mi43IDUyLjcgMzkgMzljMy4yIDMuMiA0LjcgNy40IDQuNyAxMS42LTE3LjctNS40LTM2LjUtOC4zLTU1LjktOC4zLTM0LjIgMC02Ni4zIDguOS05NC4xIDI0LjZsLTkyLjctOTIuN2MtMzcuNS0zNy41LTM3LjUtOTguMyAwLTEzNS44bDcuNC03LjQgMi41LTIuMWM2LjItNC4xIDE0LjctMy40IDIwLjEgMi4xbDM5IDM5IDUyLjctNTIuN2M5LjQtOS40IDI0LjYtOS40IDM0IDAgOC44IDguOCA5LjMgMjIuNyAxLjYgMzIuMUw0NjUgNDkgNDA2LjcgMTA3LjNjMi44IDcuMSA0LjcgMTQuNSA1LjggMjIuMUw1MjYuNyAxNXoiXX0sckZlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImFycm93cy10dXJuLXJpZ2h0IixpY29uOls0NDgsNTEyLFtdLCJlNGMwIiwiTTMxMy40LTYuNmMxMi41LTEyLjUgMzIuOC0xMi41IDQ1LjMgMGw4MCA4MGMxMi41IDEyLjUgMTIuNSAzMi44IDAgNDUuM2wtODAgODBjLTEyLjUgMTIuNS0zMi44IDEyLjUtNDUuMyAwcy0xMi41LTMyLjggMC00NS4zTDMzOC43IDEyOCAxMjggMTI4Yy0zNS4zIDAtNjQgMjguNy02NCA2NGwwIDMyYzAgMTcuNy0xNC4zIDMyLTMyIDMyUzAgMjQxLjcgMCAyMjRsMC0zMkMwIDEyMS4zIDU3LjMgNjQgMTI4IDY0bDIxMC43IDAtMjUuNC0yNS40Yy0xMi41LTEyLjUtMTIuNS0zMi44IDAtNDUuM3ptLTk2IDI1NmMxMi41LTEyLjUgMzIuOC0xMi41IDQ1LjMgMGw4MCA4MGMxMi41IDEyLjUgMTIuNSAzMi44IDAgNDUuM2wtODAgODBjLTEyLjUgMTIuNS0zMi44IDEyLjUtNDUuMyAwcy0xMi41LTMyLjggMC00NS4zTDI0Mi43IDM4NCA5NiAzODRjLTE3LjcgMC0zMiAxNC4zLTMyIDMybDAgMzJjMCAxNy43LTE0LjMgMzItMzIgMzJTMCA0NjUuNyAwIDQ0OGwwLTMyYzAtNTMgNDMtOTYgOTYtOTZsMTQ2LjcgMC0yNS40LTI1LjRjLTEyLjUtMTIuNS0xMi41LTMyLjggMC00NS4zeiJdfSxzRmU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiY2FuZHktY2FuZSIsaWNvbjpbNDQ4LDUxMixbXSwiZjc4NiIsIk00MjEuOCAzOS42QzQ1MiA4NS4yIDQ1Ni41IDE0Mi45IDQzNS4xIDE5MmwtMTY1LjQgMCA0MS40LTQxLjRjLjgtLjggMS41LTEuNiAyLjItMi40TDQyMS44IDM5LjZ6TTI2OCAxMDIuOWMtLjggLjctMS42IDEuNC0yLjQgMi4ybC0yOC4xIDI4LjFjLTI1IDI1LTY1LjUgMjUtOTAuNSAwcy0yNS02NS41IDAtOTAuNUwxNzUgMTQuNkMyMjkuOS00MC4yIDMxNC41LTQ2LjcgMzc2LjUtNS42TDI2OCAxMDIuOXpNMTI1LjcgMzM2bDgwLTgwIDE4MSAwLTgyLjUgODIuNSAwLTIuNS0xNzguNSAwem0xMTcgNjRMMTQxLjQgNTAxLjNjLTI1IDI1LTY1LjUgMjUtOTAuNSAwcy0yNS02NS41IDAtOTAuNWwxMC43LTEwLjcgMTgxIDB6Il19LG5GZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJ3aGVlbGNoYWlyIixpY29uOls1MTIsNTEyLFtdLCJmMTkzIiwiTTEzNiA0MGE1NiA1NiAwIDEgMSAxMTIgMCA1NiA1NiAwIDEgMSAtMTEyIDB6TTExNy45IDE5Ny42bDEyLjYgNjNjLTM4LjYgMTIuNC02Ni41IDQ4LjctNjYuNSA5MS40IDAgNTMgNDMgOTYgOTYgOTYgMzUuNiAwIDY2LjctMTkuNCA4My4zLTQ4LjIgMi4zIC4xIDQuNiAuMiA3IC4ybDQuMSAwYzEgMCAyLjEgMCAzLjEgMGw1NS4yIDBjLTIwLjQgNjQuOS04MSAxMTItMTUyLjcgMTEyLTg4LjQgMC0xNjAtNzEuNi0xNjAtMTYwIDAtNzMuOCA1MC0xMzUuOSAxMTcuOS0xNTQuNHptMTQ4LjYtMjguMWwyMy43IDExOC41IDYwLjUgMGMzMy4zIDAgNjMuMiAyMC43IDc0LjkgNTEuOWwyNS41IDY4IDE4LjctNi4yYzE2LjgtNS42IDM0LjkgMy41IDQwLjUgMjAuMnMtMy41IDM0LjktMjAuMiA0MC41bC00OCAxNmMtMTYuMyA1LjQtMzQtMy00MC4xLTE5LjFsLTM2LjMtOTYuOWMtMi4zLTYuMi04LjMtMTAuNC0xNS0xMC40bC04Ni4xIDBjLS40IDAtLjggMC0xLjMgMGwtMTMuMSAwYy0zMC41IDAtNTYuOC0yMS41LTYyLjgtNTEuNEwxNjUuMyAxODkuN2MtNi40LTMxLjkgMTgtNjEuNyA1MC42LTYxLjcgMjQuNiAwIDQ1LjggMTcuNCA1MC42IDQxLjV6Il19LG9GZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJzcGVsbC1jaGVjayIsaWNvbjpbNTc2LDUxMixbXSwiZjg5MSIsIk0xMjAgMzJjLTQ4LjYgMC04OCAzOS40LTg4IDg4bDAgMTY4YzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJsMC02NCA2NCAwIDAgNjRjMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMmwwLTE2OGMwLTQ4LjYtMzkuNC04OC04OC04OGwtMTYgMHptNDAgMTI4bC02NCAwIDAtNDBjMC0xMy4zIDEwLjctMjQgMjQtMjRsMTYgMGMxMy4zIDAgMjQgMTAuNyAyNCAyNGwwIDQwek0zMDQgMzJjLTE3LjcgMC0zMiAxNC4zLTMyIDMybDAgMjI0YzAgMTcuNyAxNC4zIDMyIDMyIDMybDcyIDBjNDguNiAwIDg4LTM5LjQgODgtODggMC0yMy42LTkuMy00NS0yNC40LTYwLjggMTAuMy0xNC40IDE2LjQtMzIuMSAxNi40LTUxLjIgMC00OC42LTM5LjQtODgtODgtODhsLTY0IDB6bTY0IDExMmwtMzIgMCAwLTQ4IDMyIDBjMTMuMyAwIDI0IDEwLjcgMjQgMjRzLTEwLjcgMjQtMjQgMjR6TTMzNiAyNTZsMC00OCA0MCAwYzEzLjMgMCAyNCAxMC43IDI0IDI0cy0xMC43IDI0LTI0IDI0bC00MCAwem0yMzMgODRjMTEtMTMuOCA4LjgtMzMuOS01LTQ1cy0zMy45LTguOC00NSA1bC0xMDUuNyAxMzIuMS0zOC43LTM4LjdjLTEyLjUtMTIuNS0zMi44LTEyLjUtNDUuMyAwcy0xMi41IDMyLjggMCA0NS4zbDY0IDY0YzYuNCA2LjQgMTUuMyA5LjggMjQuNCA5LjNzMTcuNS00LjkgMjMuMi0xMkw1NjkgMzQweiJdfSxsRmU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToidm9sdW1lLW9mZiIsaWNvbjpbMzIwLDUxMixbXSwiZjAyNiIsIk05NiAzNTJsLTQ4IDBjLTI2LjUgMC00OC0yMS41LTQ4LTQ4bDAtOTZjMC0yNi41IDIxLjUtNDggNDgtNDhsNDggMCAxMzQuMS0xMTkuMmM2LjQtNS43IDE0LjYtOC44IDIzLjEtOC44IDE5LjIgMCAzNC44IDE1LjYgMzQuOCAzNC44bDAgMzc4LjRjMCAxOS4yLTE1LjYgMzQuOC0zNC44IDM0LjgtOC41IDAtMTYuNy0zLjEtMjMuMS04LjhMOTYgMzUyeiJdfSxjRmU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToibHVuZ3MiLGljb246WzU3Niw1MTIsWzEyOTcyOV0sImY2MDQiLCJNMzIwIDMyYzAtMTcuNy0xNC4zLTMyLTMyLTMycy0zMiAxNC4zLTMyIDMybDAgMTQxLjktMzIgMTkuMiAwLTExNi43YzAtMjQuNS0xOS45LTQ0LjQtNDQuNC00NC40LTEyLjUgMC0yNC40IDUuMy0zMi44IDE0LjVsLTI2LjQgMjlDNDIuOSAxNjAuOCAwIDI3MS44IDAgMzg3bDAgMzAuNWMwIDUyLjIgNDIuMyA5NC41IDk0LjUgOTQuNSAyMiAwIDQzLjctNS4xIDYzLjQtMTVsNS0yLjVjMzcuNC0xOC43IDYxLTU2LjkgNjEtOTguOGwwLTEyOCA2NC0zOC40IDY0IDM4LjQgMCAxMjhjMCA0MS44IDIzLjYgODAuMSA2MSA5OC44bDUgMi41YzE5LjcgOS44IDQxLjQgMTUgNjMuNCAxNSA1Mi4yIDAgOTQuNS00Mi4zIDk0LjUtOTQuNWwwLTYuMmMwLTExMS4xLTM2LjctMjE5LTEwNC40LTMwN0w0MjguOSA0OC43Yy04LjEtMTAuNi0yMC43LTE2LjctMzQtMTYuNy0yMy43IDAtNDIuOSAxOS4yLTQyLjkgNDIuOWwwIDExOC4yLTMyLTE5LjIgMC0xNDEuOXoiXX0sZEZlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImJvb2ttYXJrIixpY29uOlszODQsNTEyLFsxMjgyNzgsNjE1OTFdLCJmMDJlIiwiTTY0IDBDMjguNyAwIDAgMjguNyAwIDY0TDAgNDgwYzAgMTEuNSA2LjIgMjIuMiAxNi4yIDI3LjhzMjIuMyA1LjUgMzIuMi0uNEwxOTIgNDIxLjMgMzM1LjUgNTA3LjRjOS45IDUuOSAyMi4yIDYuMSAzMi4yIC40UzM4NCA0OTEuNSAzODQgNDgwbDAtNDE2YzAtMzUuMy0yOC43LTY0LTY0LTY0TDY0IDB6Il19LGhGZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJiYXJjb2RlIixpY29uOls0NDgsNTEyLFtdLCJmMDJhIiwiTTMyIDMyQzE0LjMgMzIgMCA0Ni4zIDAgNjRMMCA0NDhjMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMkw2NCA2NGMwLTE3LjctMTQuMy0zMi0zMi0zMnptODggMGMtMTMuMyAwLTI0IDEwLjctMjQgMjRsMCA0MDBjMCAxMy4zIDEwLjcgMjQgMjQgMjRzMjQtMTAuNyAyNC0yNGwwLTQwMGMwLTEzLjMtMTAuNy0yNC0yNC0yNHptNzIgMzJsMCAzODRjMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMmwwLTM4NGMwLTE3LjctMTQuMy0zMi0zMi0zMnMtMzIgMTQuMy0zMiAzMnptMjA4LThsMCA0MDBjMCAxMy4zIDEwLjcgMjQgMjQgMjRzMjQtMTAuNyAyNC0yNGwwLTQwMGMwLTEzLjMtMTAuNy0yNC0yNC0yNHMtMjQgMTAuNy0yNCAyNHptLTk2IDBsMCA0MDBjMCAxMy4zIDEwLjcgMjQgMjQgMjRzMjQtMTAuNyAyNC0yNGwwLTQwMGMwLTEzLjMtMTAuNy0yNC0yNC0yNHMtMjQgMTAuNy0yNCAyNHoiXX0sdm09e3ByZWZpeDoiZmFzIixpY29uTmFtZToibGlzdC1vbCIsaWNvbjpbNTEyLDUxMixbImxpc3QtMS0yIiwibGlzdC1udW1lcmljIl0sImYwY2IiLCJNMCA3MkMwIDU4LjggMTAuNyA0OCAyNCA0OGw0OCAwYzEzLjMgMCAyNCAxMC43IDI0IDI0bDAgMTA0IDI0IDBjMTMuMyAwIDI0IDEwLjcgMjQgMjRzLTEwLjcgMjQtMjQgMjRsLTk2IDBjLTEzLjMgMC0yNC0xMC43LTI0LTI0czEwLjctMjQgMjQtMjRsMjQgMCAwLTgwLTI0IDBDMTAuNyA5NiAwIDg1LjMgMCA3MnpNMzAuNCAzMDEuMkM0MS44IDI5Mi42IDU1LjcgMjg4IDcwIDI4OGw0LjkgMGMzMy43IDAgNjEuMSAyNy40IDYxLjEgNjEuMSAwIDE5LjYtOS40IDM3LjktMjUuMiA0OS40bC0yNCAxNy41IDMzLjIgMGMxMy4zIDAgMjQgMTAuNyAyNCAyNHMtMTAuNyAyNC0yNCAyNGwtOTAuNyAwQzEzLjEgNDY0IDAgNDUwLjkgMCA0MzQuNyAwIDQyNS4zIDQuNSA0MTYuNSAxMi4xIDQxMWw3MC41LTUxLjNjMy40LTIuNSA1LjQtNi40IDUuNC0xMC42IDAtNy4yLTUuOS0xMy4xLTEzLjEtMTMuMUw3MCAzMzZjLTMuOSAwLTcuNyAxLjMtMTAuOCAzLjZMMzguNCAzNTUuMmMtMTAuNiA4LTI1LjYgNS44LTMzLjYtNC44Uy0xIDMyNC44IDkuNiAzMTYuOGwyMC44LTE1LjZ6TTIyNCA2NGwyNTYgMGMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMmwtMjU2IDBjLTE3LjcgMC0zMi0xNC4zLTMyLTMyczE0LjMtMzIgMzItMzJ6bTAgMTYwbDI1NiAwYzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMybC0yNTYgMGMtMTcuNyAwLTMyLTE0LjMtMzItMzJzMTQuMy0zMiAzMi0zMnptMCAxNjBsMjU2IDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJsLTI1NiAwYy0xNy43IDAtMzItMTQuMy0zMi0zMnMxNC4zLTMyIDMyLTMyeiJdfSxwRmU9dm0sdUZlPXZtLGZGZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJmaWxlLWNpcmNsZS14bWFyayIsaWNvbjpbNTc2LDUxMixbXSwiZTVhMSIsIk05NiAwQzYwLjcgMCAzMiAyOC43IDMyIDY0bDAgMzg0YzAgMzUuMyAyOC43IDY0IDY0IDY0bDE4MCAwYy0yMi43LTMxLjUtMzYtNzAuMi0zNi0xMTIgMC0xMDAuNiA3Ny40LTE4My4yIDE3Ni0xOTEuM2wwLTM4LjFjMC0xNy02LjctMzMuMy0xOC43LTQ1LjNMMjkwLjcgMTguN0MyNzguNyA2LjcgMjYyLjUgMCAyNDUuNSAwTDk2IDB6TTM1Ny41IDE3NkwyNjQgMTc2Yy0xMy4zIDAtMjQtMTAuNy0yNC0yNEwyNDAgNTguNSAzNTcuNSAxNzZ6TTQzMiA1NDRhMTQ0IDE0NCAwIDEgMCAwLTI4OCAxNDQgMTQ0IDAgMSAwIDAgMjg4em01OS4zLTE4MC43bC0zNi43IDM2LjcgMzYuNyAzNi43YzYuMiA2LjIgNi4yIDE2LjQgMCAyMi42cy0xNi40IDYuMi0yMi42IDBsLTM2LjctMzYuNy0zNi43IDM2LjdjLTYuMiA2LjItMTYuNCA2LjItMjIuNiAwcy02LjItMTYuNCAwLTIyLjZsMzYuNy0zNi43LTM2LjctMzYuN2MtNi4yLTYuMi02LjItMTYuNCAwLTIyLjZzMTYuNC02LjIgMjIuNiAwbDM2LjcgMzYuNyAzNi43LTM2LjdjNi4yLTYuMiAxNi40LTYuMiAyMi42IDBzNi4yIDE2LjQgMCAyMi42eiJdfSxtRmU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiY3ViZSIsaWNvbjpbNTEyLDUxMixbXSwiZjFiMiIsIk0yMjQuMy0yLjVjMTkuOC0xMS40IDQ0LjItMTEuNCA2NCAwTDQ2NC4yIDk5YzE5LjggMTEuNCAzMiAzMi42IDMyIDU1LjRsMCAyMDNjMCAyMi45LTEyLjIgNDQtMzIgNTUuNEwyODguMyA1MTQuNWMtMTkuOCAxMS40LTQ0LjIgMTEuNC02NCAwTDQ4LjUgNDEzYy0xOS44LTExLjQtMzItMzIuNi0zMi01NS40bDAtMjAzYzAtMjIuOSAxMi4yLTQ0IDMyLTU1LjRMMjI0LjMtMi41em0yMDcuOCAzNjBsMC0xNjYuMS0xNDMuOCA4MyAwIDE2Ni4xIDE0My44LTgzeiJdfSxnRmU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToidGFwZSIsaWNvbjpbNTc2LDUxMixbXSwiZjRkYiIsIk00MTIuOCA0MTZjNDEuNS00MC43IDY3LjItOTcuMyA2Ny4yLTE2MCAwLTEyMy43LTEwMC4zLTIyNC0yMjQtMjI0UzMyIDEzMi4zIDMyIDI1NiAxMzIuMyA0ODAgMjU2IDQ4MGwyODggMGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMmwtMTMxLjIgMHpNMjU2IDE2MGE5NiA5NiAwIDEgMSAwIDE5MiA5NiA5NiAwIDEgMSAwLTE5MnptNDggOTZhNDggNDggMCAxIDAgLTk2IDAgNDggNDggMCAxIDAgOTYgMHoiXX0sYkZlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImJvbWIiLGljb246WzU3Niw1MTIsWzEyODE2M10sImYxZTIiLCJNNDgwLTE2YzYuOSAwIDEzIDQuNCAxNS4yIDEwLjlsMTMuNSA0MC40IDQwLjQgMTMuNUM1NTUuNiA1MSA1NjAgNTcuMSA1NjAgNjRzLTQuNCAxMy0xMC45IDE1LjJsLTQwLjQgMTMuNS0xMy41IDQwLjRDNDkzIDEzOS42IDQ4Ni45IDE0NCA0ODAgMTQ0cy0xMy00LjQtMTUuMi0xMC45bC0xMy41LTQwLjQtNDAuNC0xMy41QzQwNC40IDc3IDQwMCA3MC45IDQwMCA2NHM0LjQtMTMgMTAuOS0xNS4ybDQwLjQtMTMuNSAxMy41LTQwLjRDNDY3LTExLjYgNDczLjEtMTYgNDgwLTE2ek0zMjEuNCA5Ny40YzEyLjUtMTIuNSAzMi44LTEyLjUgNDUuMyAwbDgwIDgwYzEyLjUgMTIuNSAxMi41IDMyLjggMCA0NS4zbC0xMC45IDEwLjljNy45IDIyIDEyLjIgNDUuNyAxMi4yIDcwLjUgMCAxMTQuOS05My4xIDIwOC0yMDggMjA4UzMyIDQxOC45IDMyIDMwNCAxMjUuMSA5NiAyNDAgOTZjMjQuNyAwIDQ4LjUgNC4zIDcwLjUgMTIuM2wxMC45LTEwLjl6TTE0NCAzMDRjMC01MyA0My05NiA5Ni05NiAxMy4zIDAgMjQtMTAuNyAyNC0yNHMtMTAuNy0yNC0yNC0yNGMtNzkuNSAwLTE0NCA2NC41LTE0NCAxNDQgMCAxMy4zIDEwLjcgMjQgMjQgMjRzMjQtMTAuNyAyNC0yNHoiXX0sdVI9e3ByZWZpeDoiZmFzIixpY29uTmFtZToic2NhbGUtdW5iYWxhbmNlZCIsaWNvbjpbNjQwLDUxMixbImJhbGFuY2Utc2NhbGUtbGVmdCJdLCJmNTE1IiwiTTUxOS44IDYyLjRjMTYuOC01LjYgMjUuOC0yMy43IDIwLjItNDAuNVM1MTYuMy0zLjkgNDk5LjYgMS42bC0xMTMgMzcuN2MtMTMuOS0yMy41LTM5LjYtMzkuMy02OC45LTM5LjMtNDQuMiAwLTgwIDM1LjgtODAgODAgMCAzIC4yIDUuOSAuNSA4LjhMMTE1LjYgMTI5LjZjLTE2LjggNS42LTI1LjggMjMuNy0yMC4yIDQwLjVzMjMuNyAyNS44IDQwLjUgMjAuMmwxMzUuNS00NS4yYzQuNSAzLjIgOS4zIDUuOSAxNC40IDguMmwwIDMyNi43YzAgMTcuNyAxNC4zIDMyIDMyIDMybDE5MiAwYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMybC0xNjAgMCAwLTI5NC43YzIxLTkuMiAzNy4yLTI3IDQ0LjItNDlsMTI1LjktNDJ6TTQzNy4zIDI4OGw3Mi40LTEyNC4yIDcyLjQgMTI0LjItMTQ0LjkgMHptNzIuNCA5NmM2Mi45IDAgMTE1LjItMzQgMTI2LTc4LjkgMi42LTExLTEtMjIuMy02LjctMzIuMUw1MzMuOCAxMDkuOGMtNS04LjYtMTQuMi0xMy44LTI0LjEtMTMuOHMtMTkuMSA1LjMtMjQuMSAxMy44TDM5MC40IDI3My4xYy01LjcgOS44LTkuMyAyMS4xLTYuNyAzMi4xIDEwLjggNDQuOCA2My4xIDc4LjkgMTI2IDc4Ljl6TTEyNi44IDI5MS44bDcyLjQgMTI0LjItMTQ0LjkgMCA3Mi40LTEyNC4yek0uOSA0MzMuMUMxMS43IDQ3OCA2NCA1MTIgMTI2LjggNTEyczExNS4yLTM0IDEyNi03OC45YzIuNi0xMS0xLTIyLjMtNi43LTMyLjFMMTUwLjkgMjM3LjhjLTUtOC42LTE0LjItMTMuOC0yNC4xLTEzLjhzLTE5LjEgNS4zLTI0LjEgMTMuOEw3LjYgNDAxLjFjLTUuNyA5LjgtOS4zIDIxLjEtNi43IDMyLjF6Il19LHZGZT11UixmUj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJzcXVhcmUtY2FyZXQtbGVmdCIsaWNvbjpbNDQ4LDUxMixbImNhcmV0LXNxdWFyZS1sZWZ0Il0sImYxOTEiLCJNMCA0MTZjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMzIwIDBjMzUuMyAwIDY0LTI4LjcgNjQtNjRsMC0zMjBjMC0zNS4zLTI4LjctNjQtNjQtNjRMNjQgMzJDMjguNyAzMiAwIDYwLjcgMCA5NkwwIDQxNnpNMTI4IDI1NmMwLTYuNyAyLjgtMTMgNy43LTE3LjZsMTEyLTEwNGM3LTYuNSAxNy4yLTguMiAyNS45LTQuNFMyODggMTQyLjUgMjg4IDE1MmwwIDIwOGMwIDkuNS01LjcgMTguMi0xNC40IDIycy0xOC45IDIuMS0yNS45LTQuNGwtMTEyLTEwNGMtNC45LTQuNS03LjctMTAuOS03LjctMTcuNnoiXX0seUZlPWZSLHhGZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJydWxlciIsaWNvbjpbNTc2LDUxMixbMTI4MjA3XSwiZjU0NSIsIk0yMDkuMSA1MTYuMmMtMTguNyAxOC43LTQ5LjEgMTguNy02Ny45IDBMMjguMSA0MDMuMWMtMTguNy0xOC43LTE4LjctNDkuMSAwLTY3LjlsMTctMTcgNzMuNSA3My41YzkuNCA5LjQgMjQuNiA5LjQgMzMuOSAwczkuNC0yNC42IDAtMzMuOWwtNzMuNS03My41IDMzLjktMzMuOSA1MC45IDUwLjljOS40IDkuNCAyNC42IDkuNCAzMy45IDBzOS40LTI0LjYgMC0zMy45bC01MC45LTUwLjkgMzMuOS0zMy45IDczLjUgNzMuNWM5LjQgOS40IDI0LjYgOS40IDMzLjkgMHM5LjQtMjQuNiAwLTMzLjlsLTczLjUtNzMuNSAzMy45LTMzLjkgNTAuOSA1MC45YzkuNCA5LjQgMjQuNiA5LjQgMzMuOSAwczkuNC0yNC42IDAtMzMuOWwtNTAuOS01MC45IDMzLjktMzMuOSA3My41IDczLjVjOS40IDkuNCAyNC42IDkuNCAzMy45IDBzOS40LTI0LjYgMC0zMy45bC03My41LTczLjUgMTctMTdjMTguNy0xOC43IDQ5LjEtMTguNyA2Ny45IDBMNTQ4LjUgMTA4LjljMTguNyAxOC43IDE4LjcgNDkuMSAwIDY3LjlMMjA5LjEgNTE2LjJ6Il19LHdGZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJpIixpY29uOlszMjAsNTEyLFsxMDVdLCI0OSIsIk0zMiAzMkMxNC4zIDMyIDAgNDYuMyAwIDY0UzE0LjMgOTYgMzIgOTZsOTYgMCAwIDMyMC05NiAwYy0xNy43IDAtMzIgMTQuMy0zMiAzMnMxNC4zIDMyIDMyIDMybDI1NiAwYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMybC05NiAwIDAtMzIwIDk2IDBjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJMMzIgMzJ6Il19LHltPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InZvbHVtZS14bWFyayIsaWNvbjpbNTc2LDUxMixbInZvbHVtZS1tdXRlIiwidm9sdW1lLXRpbWVzIl0sImY2YTkiLCJNNDggMzUybDQ4IDAgMTM0LjEgMTE5LjJjNi40IDUuNyAxNC42IDguOCAyMy4xIDguOCAxOS4yIDAgMzQuOC0xNS42IDM0LjgtMzQuOGwwLTM3OC40YzAtMTkuMi0xNS42LTM0LjgtMzQuOC0zNC44LTguNSAwLTE2LjcgMy4xLTIzLjEgOC44TDk2IDE2MCA0OCAxNjBjLTI2LjUgMC00OCAyMS41LTQ4IDQ4bDAgOTZjMCAyNi41IDIxLjUgNDggNDggNDh6TTM2NyAxNzVjLTkuNCA5LjQtOS40IDI0LjYgMCAzMy45bDQ3IDQ3LTQ3IDQ3Yy05LjQgOS40LTkuNCAyNC42IDAgMzMuOXMyNC42IDkuNCAzMy45IDBsNDctNDcgNDcgNDdjOS40IDkuNCAyNC42IDkuNCAzMy45IDBzOS40LTI0LjYgMC0zMy45bC00Ny00NyA0Ny00N2M5LjQtOS40IDkuNC0yNC42IDAtMzMuOXMtMjQuNi05LjQtMzMuOSAwbC00NyA0Ny00Ny00N2MtOS40LTkuNC0yNC42LTkuNC0zMy45IDB6Il19LE1GZT15bSx6RmU9eW0sa0ZlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImFyY2h3YXkiLGljb246WzUxMiw1MTIsW10sImY1NTciLCJNMzIgMzJDMTQuMyAzMiAwIDQ2LjMgMCA2NFMxNC4zIDk2IDMyIDk2bDQ0OCAwYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMyTDMyIDMyem0wIDM4NGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJzMTQuMyAzMiAzMiAzMmwxMjggMCAwLTEyOGMwLTUzIDQzLTk2IDk2LTk2czk2IDQzIDk2IDk2bDAgMTI4IDEyOCAwYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMybDAtMjcyLTQ0OCAwIDAgMjcyeiJdfSxtUj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJwZXJzb24tZGlnZ2luZyIsaWNvbjpbNTc2LDUxMixbImRpZ2dpbmciXSwiZjg1ZSIsIk0yMDggNDBhNTYgNTYgMCAxIDEgMTEyIDAgNTYgNTYgMCAxIDEgLTExMiAwek0xMC41IDE4MS4zYzUuOS0xMS45IDIwLjMtMTYuNyAzMi4yLTEwLjdsMjQuNiAxMi4zIDEyLjItMjAuNGMxOC45LTMxLjUgNTMuMi01MC41IDg5LjYtNTAuNSA0Ni4yIDAgODcuNyAzMC41IDEwMC41IDc1LjRsMzIuMiAxMTIuNyA5Mi45IDQ2LjQgMjUuOC00M2M1LjgtOS42IDE2LjItMTUuNSAyNy40LTE1LjVzMjEuNyA1LjkgMjcuNCAxNS41bDk2IDE2MGM1LjkgOS45IDYuMSAyMi4yIC40IDMyLjJTNTU1LjUgNTEyIDU0NCA1MTJsLTE5MiAwYy0xMS41IDAtMjIuMi02LjItMjcuOC0xNi4ycy01LjUtMjIuMyAuNC0zMi4yTDM3MCAzODcuOCAyMS4zIDIxMy41Yy0xMS45LTUuOS0xNi43LTIwLjMtMTAuNy0zMi4yek05NC4zIDMwNy40bDExMiA1NmMxMC44IDUuNCAxNy43IDE2LjUgMTcuNyAyOC42bDAgODhjMCAxNy43LTE0LjMgMzItMzIgMzJzLTMyLTE0LjMtMzItMzJsMC02OC4yLTYxLjMtMzAuNy0zNi4zIDEwOWMtNS42IDE2LjgtMjMuNyAyNS44LTQwLjUgMjAuMlMtMy45IDQ4Ni42IDEuNyA0NjkuOWw0OC0xNDRjMi45LTguOCA5LjUtMTUuOSAxOC4xLTE5LjRzMTguMy0zLjIgMjYuNiAuOXoiXX0sU0ZlPW1SLHhtPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImdhdWdlLWhpZ2giLGljb246WzUxMiw1MTIsWzYyNDYxLCJ0YWNob21ldGVyLWFsdCIsInRhY2hvbWV0ZXItYWx0LWZhc3QiXSwiZjYyNSIsIk0wIDI1NmEyNTYgMjU2IDAgMSAxIDUxMiAwIDI1NiAyNTYgMCAxIDEgLTUxMiAwek0yODggOTZhMzIgMzIgMCAxIDAgLTY0IDAgMzIgMzIgMCAxIDAgNjQgMHpNMjU2IDQxNmMzNS4zIDAgNjQtMjguNyA2NC02NCAwLTE2LjItNi0zMS4xLTE2LTQyLjNsNjkuNS0xMzguOWM1LjktMTEuOSAxLjEtMjYuMy0xMC43LTMyLjJzLTI2LjMtMS4xLTMyLjIgMTAuN0wyNjEuMSAyODguMmMtMS43LS4xLTMuNC0uMi01LjEtLjItMzUuMyAwLTY0IDI4LjctNjQgNjRzMjguNyA2NCA2NCA2NHpNMTc2IDE0NGEzMiAzMiAwIDEgMCAtNjQgMCAzMiAzMiAwIDEgMCA2NCAwek05NiAyODhhMzIgMzIgMCAxIDAgMC02NCAzMiAzMiAwIDEgMCAwIDY0em0zNTItMzJhMzIgMzIgMCAxIDAgLTY0IDAgMzIgMzIgMCAxIDAgNjQgMHoiXX0sQ0ZlPXhtLF9GZT14bSxURmU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZ2VuZGVybGVzcyIsaWNvbjpbMzg0LDUxMixbXSwiZjIyZCIsIk0xOTIgMTI4YTEyOCAxMjggMCAxIDEgMCAyNTYgMTI4IDEyOCAwIDEgMSAwLTI1NnptMCAzMjBhMTkyIDE5MiAwIDEgMCAwLTM4NCAxOTIgMTkyIDAgMSAwIDAgMzg0eiJdfSxMRmU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiY2xvdWQtc3VuIixpY29uOls2NDAsNTEyLFs5OTI1XSwiZjZjNCIsIk0yMDguMyAxOTJjNDMuMSAwIDgwLjUgMjQuNCA5OS4yIDYwLjEgMTQuNy0xNy4yIDM2LjQtMjguMSA2MC44LTI4LjEgNDQuMiAwIDgwIDM1LjggODAgODAgMCA1LjUtLjYgMTAuOS0xLjYgMTYgLjUgMCAxLjEgMCAxLjYgMCA1MyAwIDk2IDQzIDk2IDk2cy00MyA5Ni05NiA5NmwtMzIwIDBjLTUzIDAtOTYtNDMtOTYtOTYgMC00Mi41IDI3LjctNzguNSA2Ni05MS4yLTEuMy02LjgtMi0xMy43LTItMjAuOCAwLTYxLjkgNTAuMS0xMTIgMTEyLTExMnptMTkyLTIyMy44YzUuMyAwIDEwLjMgMi43IDEzLjMgNy4xbDQ3LjMgNzAuNCA4My4zLTE2LjNjNS4yLTEgMTAuNiAuNyAxNC4zIDQuNCAzLjggMy44IDUuNCA5LjIgNC40IDE0LjRsLTE2LjMgODMuMyA3MC40IDQ3LjNjNC40IDMgNy4xIDggNy4xIDEzLjMgMCA1LjMtMi42IDEwLjMtNyAxMy4ybC03MC40IDQ3LjMgMTQuNSA3NC4yYy0xNy4yLTIxLjctNDAuNC0zOC40LTY3LjItNDcuMy0yLjUtMTIuNy02LjktMjQuNi0xMi44LTM1LjcgOS42LTE0LjkgMTUuMi0zMi43IDE1LjItNTEuNyAwLTUzLTQzLTk2LTk2LTk2LTQ3LjkgMC04Ny42IDM1LjEtOTQuOCA4MC45LTIwLjktMTYtNDUuOS0yNy03My4xLTMxLjFsMjEuNS0xNC41LTE2LjMtODMuMi0uMy0yYy0uMy00LjYgMS4zLTkuMSA0LjYtMTIuNCAzLjgtMy44IDkuMi01LjQgMTQuNC00LjRsODMuMyAxNi4zIDQ3LjMtNzAuNCAxLjItMS42YzMtMy41IDcuNC01LjUgMTIuMS01LjV6bTAgMTc1LjhjMjYuNSAwIDQ4IDIxLjUgNDggNDggMCAzLjgtLjUgNy42LTEuNCAxMS4xLTIxLjctMTYuOS00OC45LTI3LjEtNzguNi0yNy4xLTQuNiAwLTkuMSAuMi0xMy41IC43IDYuNC0xOSAyNC4zLTMyLjcgNDUuNS0zMi43eiJdfSxsZz17cHJlZml4OiJmYXMiLGljb25OYW1lOiJhcnJvdy1yaWdodCIsaWNvbjpbNTEyLDUxMixbODU5NF0sImYwNjEiLCJNNTAyLjYgMjc4LjZjMTIuNS0xMi41IDEyLjUtMzIuOCAwLTQ1LjNsLTE2MC0xNjBjLTEyLjUtMTIuNS0zMi44LTEyLjUtNDUuMyAwcy0xMi41IDMyLjggMCA0NS4zTDQwMi43IDIyNCAzMiAyMjRjLTE3LjcgMC0zMiAxNC4zLTMyIDMyczE0LjMgMzIgMzIgMzJsMzcwLjcgMC0xMDUuNCAxMDUuNGMtMTIuNSAxMi41LTEyLjUgMzIuOCAwIDQ1LjNzMzIuOCAxMi41IDQ1LjMgMGwxNjAtMTYweiJdfSx3bT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJoYW5kc2hha2UiLGljb246WzU3Niw1MTIsWzEyOTMwOSw2MjY2MiwiaGFuZHNoYWtlLWFsdCIsImhhbmRzaGFrZS1zaW1wbGUiXSwiZjJiNSIsIk0yNjguOSA4NS4yTDE1Mi4zIDIxNC44Yy00LjYgNS4xLTQuNCAxMyAuNSAxNy45IDMwLjUgMzAuNSA4MCAzMC41IDExMC41IDBsMzEuOC0zMS44YzQuMi00LjIgOS41LTYuNSAxNC45LTYuOSA2LjgtLjYgMTMuOCAxLjcgMTkgNi45TDUwNS42IDM3NiA1NzYgMzIwIDU3NiAzMiA0NjQgOTYgNDQwLjIgODAuMUM0MjQuNCA2OS42IDQwNS45IDY0IDM4Ni45IDY0bC03MC40IDBjLTEuMSAwLTIuMyAwLTMuNCAuMS0xNi45IC45LTMyLjggOC41LTQ0LjIgMjEuMXpNMTE2LjYgMTgyLjdMMjIzLjQgNjQgMTgzLjggNjRjLTI1LjUgMC00OS45IDEwLjEtNjcuOSAyOC4xTDExMiA5NiAwIDMyIDAgMzIwIDE1Ni40IDQ1MC4zYzIzIDE5LjIgNTIgMjkuNyA4MS45IDI5LjdsMTUuNyAwLTctN2MtOS40LTkuNC05LjQtMjQuNiAwLTMzLjlzMjQuNi05LjQgMzMuOSAwbDQxIDQxIDkgMGMxOS4xIDAgMzcuOC00LjMgNTQuOC0xMi4zTDM1OSA0NDFjLTkuNC05LjQtOS40LTI0LjYgMC0zMy45czI0LjYtOS40IDMzLjkgMGwzMiAzMiAxNy41LTE3LjVjOC45LTguOSAxMS41LTIxLjggNy42LTMzLjFsLTEzNy45LTEzNi44LTE0LjkgMTQuOWMtNDkuMyA0OS4zLTEyOS4xIDQ5LjMtMTc4LjQgMC0yMy0yMy0yMy45LTU5LjktMi4yLTg0eiJdfSwkRmU9d20sQUZlPXdtLGdSPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InBlcnNvbi1za2lpbmciLGljb246WzU3Niw1MTIsWzk5NzUsInNraWluZyJdLCJmN2M5IiwiTTQxNiA1NmE1NiA1NiAwIDEgMSAxMTIgMCA1NiA1NiAwIDEgMSAtMTEyIDB6TTIuNyAzMDAuOWM2LjEtMTEuOCAyMC42LTE2LjMgMzIuNC0xMC4ybDE5Ny44IDEwMi43IDYyLjMtODcuMi04Mi05Mi4yYy0xMS0xMi40LTE2LjItMjcuNS0xNi4yLTQyLjRsMTExLjYgNTMuNCA0Mi45IDQ4LjJjMTQuOSAxNi43IDE2LjIgNDEuNiAzLjIgNTkuOGwtNjQuNCA5MC4yIDEyOC4zIDY2LjZjMTMuNiA3LjEgMjkuOCA3LjIgNDMuNiAuM2wxNS4yLTcuNmMxMS45LTUuOSAyNi4zLTEuMSAzMi4yIDEwLjdzMS4xIDI2LjMtMTAuNyAzMi4ybC0xNS4yIDcuNmMtMjcuNSAxMy43LTU5LjkgMTMuNS04Ny4yLS43TDEyLjkgMzMzLjNDMS4yIDMyNy4yLTMuNCAzMTIuNyAyLjcgMzAwLjl6TTEwMyA0OS42bDE4IDguNyA4LjctMTcuNGM0LTcuOSAxMy42LTExLjEgMjEuNS03LjJzMTEuMSAxMy42IDcuMiAyMS41bC04LjUgMTcgODQuOCA0MSAuNC0uMiA3Ni4xLTMzLjhjMzEuMy0xMy45IDY3LjktLjcgODMuMiAyOS45bDI4LjkgNTcuOCA2OC43IDI3LjVjMTYuNCA2LjYgMjQuNCAyNS4yIDE3LjggNDEuNnMtMjUuMiAyNC40LTQxLjYgMTcuOEwzOTMuOCAyMjRjLTEwLjktNC40LTE5LjgtMTIuNi0yNS4xLTIzLjFsLTExLjUtMjMuMWMtMTYuNCA5LjQtMjUuOSAxNC44LTI4LjUgMTYuM2wtNy42LTMuNy0xODUuNi04OS42LTkuMiAxOC4zYy00IDcuOS0xMy42IDExLjEtMjEuNSA3LjJzLTExLjEtMTMuNi03LjItMjEuNWw5LTE3LjktMTcuNi04LjVDODEuMSA3NC42IDc3LjggNjUgODEuNiA1N1M5NSA0NS43IDEwMyA0OS42eiJdfSxERmU9Z1IsRUZlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImJyaWRnZS13YXRlciIsaWNvbjpbNjQwLDUxMixbXSwiZTRjZSIsIk02NCA2NGw1MTIgMCAwIDExMmMtMzcuNiA5LjQtNjQgNDMuMi02NCA4MmwwIDc2LjRjLTIxLTkuNy00My41LTE0LjUtNjYtMTQuNC0xMCAuMS0yMC4xIDEuMS0zMCAzLjFsMC0zNS4xYzAtNTMtNDMtOTYtOTYtOTZzLTk2IDQzLTk2IDk2bDAgMzIuN2MtNS4zLS41LTEwLjctLjgtMTYtLjctMjcuNyAuMi01NS40IDcuOC04MCAyM2wwLTg1YzAtMzguOC0yNi40LTcyLjYtNjQtODJMNjQgNjR6TTQwMy40IDQ0NC4xQzM3OS4xIDQ2Mi4zIDM1MS4xIDQ4MCAzMjAgNDgwcy01OS4xLTE3LjctODMuNC0zNS45Yy0yMS4zLTE2LjEtNDkuOS0xNi4xLTcxLjIgMC0yMy44IDE3LjktNTQuMSAzNS41LTg4LjEgMzUuMy0yMC40LS4xLTQwLjctNi43LTU5LjgtMjEuMS0xMC42LTgtMTIuNy0yMy00LjctMzMuNnMyMy0xMi43IDMzLjYtNC43YzExLjMgOC41IDIxLjYgMTEuNCAzMS4yIDExLjUgMTcuNiAuMSAzNy4zLTkuNCA1OC45LTI1LjcgMzguNC0yOSA5MC41LTI5IDEyOSAwIDI0IDE4LjEgNDAuNyAyNi4zIDU0LjUgMjYuM3MzMC41LTguMiA1NC41LTI2LjNjMzguNC0yOSA5MC41LTI5IDEyOSAwIDE2LjkgMTIuNyAzMi45IDIxLjUgNDcuOCAyNC42IDEzLjcgMi44IDI3LjQgLjkgNDIuMy0xMC4zIDEwLjYtOCAyNS42LTUuOSAzMy42IDQuN3M1LjkgMjUuNi00LjcgMzMuNmMtMjYuNCAxOS45LTU0LjIgMjQuNC04MC43IDE5LjEtMjUuMy01LjEtNDguMS0xOC45LTY3LjItMzMuMy0yMS4zLTE2LjEtNDkuOS0xNi4xLTcxLjIgMHoiXX0sUEZlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImJ1aWxkaW5nLW5nbyIsaWNvbjpbNTc2LDUxMixbXSwiZTRkNyIsIk0xMjggMEM5Mi43IDAgNjQgMjguNyA2NCA2NGwwIDM4NGMwIDM1LjMgMjguNyA2NCA2NCA2NGw0OCAwIDAtMTEyYzAtMzUuMyAyOC43LTY0IDY0LTY0bDIwOCAwIDAtMjcyYzAtMzUuMy0yOC43LTY0LTY0LTY0TDEyOCAwem0zMiAxMTJjMC04LjggNy4yLTE2IDE2LTE2bDMyIDBjOC44IDAgMTYgNy4yIDE2IDE2bDAgMzJjMCA4LjgtNy4yIDE2LTE2IDE2bC0zMiAwYy04LjggMC0xNi03LjItMTYtMTZsMC0zMnpNMzA0IDk2bDMyIDBjOC44IDAgMTYgNy4yIDE2IDE2bDAgMzJjMCA4LjgtNy4yIDE2LTE2IDE2bC0zMiAwYy04LjggMC0xNi03LjItMTYtMTZsMC0zMmMwLTguOCA3LjItMTYgMTYtMTZ6TTE2MCAyNDBjMC04LjggNy4yLTE2IDE2LTE2bDMyIDBjOC44IDAgMTYgNy4yIDE2IDE2bDAgMzJjMCA4LjgtNy4yIDE2LTE2IDE2bC0zMiAwYy04LjggMC0xNi03LjItMTYtMTZsMC0zMnptMTQ0LTE2bDMyIDBjOC44IDAgMTYgNy4yIDE2IDE2bDAgMzJjMCA4LjgtNy4yIDE2LTE2IDE2bC0zMiAwYy04LjggMC0xNi03LjItMTYtMTZsMC0zMmMwLTguOCA3LjItMTYgMTYtMTZ6TTUyMCAzODBjLTI0LjMgMC00NCAxOS43LTQ0IDQ0bDAgODBjMCAyNC4zIDE5LjcgNDQgNDQgNDRsMTYgMGMyNC4zIDAgNDQtMTkuNyA0NC00NGwwLTgwYzAtMjQuMy0xOS43LTQ0LTQ0LTQ0bC0xNiAwem0tNCA0NGMwLTIuMiAxLjgtNCA0LTRsMTYgMGMyLjIgMCA0IDEuOCA0IDRsMCA4MGMwIDIuMi0xLjggNC00IDRsLTE2IDBjLTIuMiAwLTQtMS44LTQtNGwwLTgwem0tMTY4IDBsMCA4MGMwIDI0LjMgMTkuNyA0NCA0NCA0NGwxNiAwYzI0LjMgMCA0NC0xOS43IDQ0LTQ0bDAtMjRjMC0xMS05LTIwLTIwLTIwbC04IDBjLTExIDAtMjAgOS0yMCAyMCAwIDYuNSAzLjEgMTIuNCA4IDE2bDAgOGMwIDIuMi0xLjggNC00IDRsLTE2IDBjLTIuMiAwLTQtMS44LTQtNGwwLTgwYzAtMi4yIDEuOC00IDQtNGwyMC40IDBjMS45IDkuMSA5LjkgMTYgMTkuNiAxNiAxMSAwIDIwLTkgMjAtMjAgMC0xOS45LTE2LjEtMzYtMzYtMzZsLTI0IDBjLTI0LjMgMC00NCAxOS43LTQ0IDQ0em0tOTAuMS0zMi45Yy00LjEtOC4zLTEzLjUtMTIuNy0yMi41LTEwLjVTMjIwIDM5MC43IDIyMCA0MDBsMCAxMjhjMCAxMSA5IDIwIDIwIDIwczIwLTkgMjAtMjBsMC00My4zIDI2LjEgNTIuMmM0LjEgOC4zIDEzLjUgMTIuNyAyMi41IDEwLjVTMzI0IDUzNy4zIDMyNCA1MjhsMC0xMjhjMC0xMS05LTIwLTIwLTIwcy0yMCA5LTIwIDIwbDAgNDMuMy0yNi4xLTUyLjJ6Il19LElGZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJpZ2xvbyIsaWNvbjpbNTc2LDUxMixbXSwiZjdhZSIsIk0zMjAgMzMuOGwwIDEyNi4yLTI3MS41IDBjNTEuNy03Ny4yIDEzOS42LTEyOCAyMzkuNS0xMjggMTAuOCAwIDIxLjUgLjYgMzIgMS44ek0zNjggMTYwbDAtMTE2LjdjNjYgMTkgMTIyLjIgNjEgMTU5LjUgMTE2LjdMMzY4IDE2MHpNMjIuNiAyMDhsNzMuNCAwIDAgMTEyLTk2IDBjMC0zOS43IDgtNzcuNiAyMi42LTExMnpNMTc2IDMyMGwtMzIgMCAwLTExMiAyODggMCAwIDExMi0zMiAwIDAgNDggMTc2IDAgMCA2NGMwIDI2LjUtMjEuNSA0OC00OCA0OEw0OCA0ODBjLTI2LjUgMC00OC0yMS41LTQ4LTQ4bDAtNjQgMTc2IDAgMC00OHptMzA0IDBsMC0xMTIgNzMuNCAwQzU2OCAyNDIuNCA1NzYgMjgwLjMgNTc2IDMyMGwtOTYgMHpNMjg4IDI4OGMtMzUuMyAwLTY0IDI4LjctNjQgNjRsMCA4MCAxMjggMCAwLTgwYzAtMzUuMy0yOC43LTY0LTY0LTY0eiJdfSxiUj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJjaXJjbGUtZG9sbGFyLXRvLXNsb3QiLGljb246WzU3Niw1MTIsWyJkb25hdGUiXSwiZjRiOSIsIk05NiAyMjRhMTkyIDE5MiAwIDEgMSAzODQgMCAxOTIgMTkyIDAgMSAxIC0zODQgMHptMTc2LTkybDAgNGMtMjguOCAuMy01MiAyMy43LTUyIDUyLjUgMCAyNS43IDE4LjUgNDcuNiA0My45IDUxLjhsNDEuNyA3YzYgMSAxMC40IDYuMiAxMC40IDEyLjMgMCA2LjktNS42IDEyLjUtMTIuNSAxMi41TDI0OCAyNzJjLTExIDAtMjAgOS0yMCAyMHM5IDIwIDIwIDIwbDI0IDAgMCA0YzAgMTEgOSAyMCAyMCAyMHMyMC05IDIwLTIwbDAtNC43YzI1LTQuMSA0NC0yNS43IDQ0LTUxLjggMC0yNS43LTE4LjUtNDcuNi00My45LTUxLjhsLTQxLjctN2MtNi0xLTEwLjQtNi4yLTEwLjQtMTIuMyAwLTYuOSA1LjYtMTIuNSAxMi41LTEyLjVsNDcuNSAwYzExIDAgMjAtOSAyMC0yMHMtOS0yMC0yMC0yMGwtOCAwIDAtNGMwLTExLTktMjAtMjAtMjBzLTIwIDktMjAgMjB6TTQ4IDM0NGwwIDEwNGMwIDguOCA3LjIgMTYgMTYgMTZsNDQ4IDBjOC44IDAgMTYtNy4yIDE2LTE2bDAtMTA0YzAtMTMuMyAxMC43LTI0IDI0LTI0czI0IDEwLjcgMjQgMjRsMCAxMDRjMCAzNS4zLTI4LjcgNjQtNjQgNjRMNjQgNTEyYy0zNS4zIDAtNjQtMjguNy02NC02NEwwIDM0NGMwLTEzLjMgMTAuNy0yNCAyNC0yNHMyNCAxMC43IDI0IDI0eiJdfSxORmU9YlIsRkZlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InkiLGljb246WzM4NCw1MTIsWzEyMV0sIjU5IiwiTTU4IDQ1LjRDNDcuOCAzMSAyNy44IDI3LjcgMTMuNCAzOFMtNC4zIDY4LjIgNiA4Mi42TDE2MCAyOTguMyAxNjAgNDQ4YzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJsMC0xNDkuNyAxNTQtMjE1LjdjMTAuMy0xNC40IDYuOS0zNC40LTcuNC00NC42UzMzNi4yIDMxIDMyNiA0NS40TDE5MiAyMzIuOSA1OCA0NS40eiJdfSx2Uj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJmYWNlLXNtaWxlLXdpbmsiLGljb246WzUxMiw1MTIsWzEyODUyMSwic21pbGUtd2luayJdLCJmNGRhIiwiTTI1NiA1MTJhMjU2IDI1NiAwIDEgMCAwLTUxMiAyNTYgMjU2IDAgMSAwIDAgNTEyek0xNjUuNCAzMjEuOWMyMC40IDI4IDUzLjQgNDYuMSA5MC42IDQ2LjFzNzAuMi0xOC4xIDkwLjYtNDYuMWM3LjgtMTAuNyAyMi44LTEzLjEgMzMuNS01LjNzMTMuMSAyMi44IDUuMyAzMy41QzM1Ni4zIDM5MCAzMDkuMiA0MTYgMjU2IDQxNnMtMTAwLjMtMjYtMTI5LjQtNjUuOWMtNy44LTEwLjctNS40LTI1LjcgNS4zLTMzLjVzMjUuNy01LjQgMzMuNSA1LjN6TTE0NCAyMDhhMzIgMzIgMCAxIDEgNjQgMCAzMiAzMiAwIDEgMSAtNjQgMHptMTY0IDhjMCAxMS05IDIwLTIwIDIwcy0yMC05LTIwLTIwYzAtMzMuMSAyNi45LTYwIDYwLTYwbDE2IDBjMzMuMSAwIDYwIDI2LjkgNjAgNjAgMCAxMS05IDIwLTIwIDIwcy0yMC05LTIwLTIwLTktMjAtMjAtMjBsLTE2IDBjLTExIDAtMjAgOS0yMCAyMHoiXX0sT0ZlPXZSLFJGZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJkaWNlLWZvdXIiLGljb246WzQ0OCw1MTIsWzk4NTldLCJmNTI0IiwiTTAgOTZDMCA2MC43IDI4LjcgMzIgNjQgMzJsMzIwIDBjMzUuMyAwIDY0IDI4LjcgNjQgNjRsMCAzMjBjMCAzNS4zLTI4LjcgNjQtNjQgNjRMNjQgNDgwYy0zNS4zIDAtNjQtMjguNy02NC02NEwwIDk2em0xNjAgNjRhMzIgMzIgMCAxIDAgLTY0IDAgMzIgMzIgMCAxIDAgNjQgMHpNMTI4IDM4NGEzMiAzMiAwIDEgMCAwLTY0IDMyIDMyIDAgMSAwIDAgNjR6TTM1MiAxNjBhMzIgMzIgMCAxIDAgLTY0IDAgMzIgMzIgMCAxIDAgNjQgMHpNMzIwIDM4NGEzMiAzMiAwIDEgMCAwLTY0IDMyIDMyIDAgMSAwIDAgNjR6Il19LHlSPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImZhY2UtZ3Jpbi1zcXVpbnQtdGVhcnMiLGljb246WzU3Niw1MTIsWzEyOTMxNSwiZ3Jpbi1zcXVpbnQtdGVhcnMiXSwiZjU4NiIsIk01NjAgMzUuNGMwIDI1LjYtMTguOCA0Ny4zLTQ0LjEgNTAuOUw0NjkuMSA5M2MtMTAuNiAxLjUtMTkuNi03LjUtMTguMS0xOC4xbDYuNy00Ni43QzQ2MS4zIDIuOCA0ODMtMTYgNTA4LjYtMTYgNTM3LTE2IDU2MCA3IDU2MCAzNS40ek00MDMuNSA2OC4xYy02IDQyLjIgMzAuMiA3OC40IDcyLjQgNzIuNGwzNy44LTUuNEM1NjUuNyAyMzIgNTUwLjggMzU1LjMgNDY5IDQzN3MtMjA1IDk2LjYtMzAxLjkgNDQuN2w1LjQtMzcuOGM2LTQyLjItMzAuMi03OC40LTcyLjQtNzIuNGwtMzcuOCA1LjRDMTAuMyAyODAgMjUuMiAxNTYuNyAxMDcgNzVTMzEyLTIxLjcgNDA4LjkgMzAuM2wtNS40IDM3Ljh6TTQxNy44IDIwMWMtMTkuMSAzNi40LTQ1LjYgNzIuNy03OC45IDEwNnMtNjkuNiA1OS44LTEwNiA3OC45Yy0xMS4xIDUuOC0xMi40IDIxLjQtMS4xIDI2LjYgNTkuMiAyNy41IDEzMS44IDE2LjggMTgwLjYtMzJzNTkuNS0xMjEuNCAzMi0xODAuNmMtNS4zLTExLjMtMjAuOC0xMC0yNi42IDEuMXpNMTEzLjkgMjcwLjZjMS43IDggOSAxMy40IDE3LjEgMTIuN2w0My4xLTMuOS0zLjkgNDMuMWMtLjcgOC4xIDQuNyAxNS41IDEyLjcgMTcuMXMxNS45LTIuOSAxOC40LTEwLjZsMjgtODQuNmMxLjktNS43IC40LTEyLjEtMy45LTE2LjNzLTEwLjYtNS44LTE2LjMtMy45bC04NC42IDI4Yy03LjcgMi42LTEyLjMgMTAuNS0xMC42IDE4LjV6TTMxNS4yIDk5LjFjLjctOC4xLTQuNy0xNS41LTEyLjctMTcuMXMtMTUuOSAyLjktMTguNSAxMC42bC0yOCA4NC42Yy0xLjkgNS43LS40IDEyLjEgMy45IDE2LjNzMTAuNiA1LjggMTYuMyAzLjlsODQuNi0yOGM3LjctMi42IDEyLjMtMTAuNSAxMC42LTE4LjRzLTktMTMuNC0xNy4xLTEyLjdsLTQzLjEgMy45IDMuOS00My4xek02MC4xIDQyNS43bDQ2LjctNi43YzEwLjYtMS41IDE5LjYgNy41IDE4LjEgMTguMWwtNi43IDQ2LjdDMTE0LjcgNTA5LjIgOTMgNTI4IDY3LjQgNTI4IDM5IDUyOCAxNiA1MDUgMTYgNDc2LjYgMTYgNDUxIDM0LjggNDI5LjMgNjAuMSA0MjUuN3oiXX0sQkZlPXlSLEhGZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJmaWxlLWF1ZGlvIixpY29uOlszODQsNTEyLFtdLCJmMWM3IiwiTTAgNjRDMCAyOC43IDI4LjcgMCA2NCAwTDIxMy41IDBjMTcgMCAzMy4zIDYuNyA0NS4zIDE4LjdMMzY1LjMgMTI1LjNjMTIgMTIgMTguNyAyOC4zIDE4LjcgNDUuM0wzODQgNDQ4YzAgMzUuMy0yOC43IDY0LTY0IDY0TDY0IDUxMmMtMzUuMyAwLTY0LTI4LjctNjQtNjRMMCA2NHptMjA4LTUuNWwwIDkzLjVjMCAxMy4zIDEwLjcgMjQgMjQgMjRMMzI1LjUgMTc2IDIwOCA1OC41em01My44IDE4NS4yYy05LjEtNi4zLTIxLjUtNC4xLTI3LjggNXMtNC4xIDIxLjUgNSAyNy44YzIzLjkgMTYuNyAzOS40IDQ0LjMgMzkuNCA3NS41cy0xNS42IDU4LjktMzkuNCA3NS41Yy05LjEgNi4zLTExLjMgMTguOC01IDI3LjhzMTguOCAxMS4zIDI3LjggNWMzNC4xLTIzLjggNTYuNi02My41IDU2LjYtMTA4LjNTMjk2IDI2Ny41IDI2MS44IDI0My43ek04MCAzMTJjLTguOCAwLTE2IDcuMi0xNiAxNmwwIDQ4YzAgOC44IDcuMiAxNiAxNiAxNmwyNCAwIDI3LjIgMzRjMyAzLjggNy42IDYgMTIuNSA2bC4zIDBjOC44IDAgMTYtNy4yIDE2LTE2bDAtMTI4YzAtOC44LTcuMi0xNi0xNi0xNmwtLjMgMGMtNC45IDAtOS41IDIuMi0xMi41IDZsLTI3LjIgMzQtMjQgMHptMTI4IDcyLjJjMCAxMC43IDEwLjUgMTguMiAxOC45IDExLjYgMTIuOS0xMC4zIDIxLjEtMjYuMSAyMS4xLTQzLjhzLTguMi0zMy41LTIxLjEtNDMuOGMtOC40LTYuNy0xOC45IC45LTE4LjkgMTEuNmwwIDY0LjV6Il19LHFGZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJhcnJvd3MtZG93bi10by1saW5lIixpY29uOls1MTIsNTEyLFtdLCJlNGI4IiwiTTIxNC42IDMxMC42bC02NCA2NGMtMTIuNSAxMi41LTMyLjggMTIuNS00NS4zIDBsLTY0LTY0Yy0xMi41LTEyLjUtMTIuNS0zMi44IDAtNDUuM3MzMi44LTEyLjUgNDUuMyAwTDk2IDI3NC43IDk2IDMyYzAtMTcuNyAxNC4zLTMyIDMyLTMyczMyIDE0LjMgMzIgMzJsMCAyNDIuNyA5LjQtOS40YzEyLjUtMTIuNSAzMi44LTEyLjUgNDUuMyAwczEyLjUgMzIuOCAwIDQ1LjN6bTI1NiAwbC02NCA2NGMtMTIuNSAxMi41LTMyLjggMTIuNS00NS4zIDBsLTY0LTY0Yy0xMi41LTEyLjUtMTIuNS0zMi44IDAtNDUuM3MzMi44LTEyLjUgNDUuMyAwbDkuNCA5LjQgMC0yNDIuN2MwLTE3LjcgMTQuMy0zMiAzMi0zMnMzMiAxNC4zIDMyIDMybDAgMjQyLjcgOS40LTkuNGMxMi41LTEyLjUgMzIuOC0xMi41IDQ1LjMgMHMxMi41IDMyLjggMCA0NS4zek0zMiA1MTJjLTE3LjcgMC0zMi0xNC4zLTMyLTMyczE0LjMtMzIgMzItMzJsNDQ4IDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJMMzIgNTEyeiJdfSxWRmU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZyIsaWNvbjpbNDQ4LDUxMixbMTAzXSwiNDciLCJNMjI0IDk2QzEzNS42IDk2IDY0IDE2Ny42IDY0IDI1NnM3MS42IDE2MCAxNjAgMTYwYzc3LjQgMCAxNDItNTUgMTU2LjgtMTI4TDI1NiAyODhjLTE3LjcgMC0zMi0xNC4zLTMyLTMyczE0LjMtMzIgMzItMzJsMTQ0IDBjMjUuOCAwIDQ5LjYgMjEuNCA0Ny4yIDUwLjYtOS41IDExNS0xMDUuOCAyMDUuNC0yMjMuMiAyMDUuNC0xMjMuNyAwLTIyNC0xMDAuMy0yMjQtMjI0UzEwMC4zIDMyIDIyNCAzMmM1Ny40IDAgMTA5LjcgMjEuNiAxNDkuMyA1NyAxMy4yIDExLjggMTQuMyAzMiAyLjUgNDUuMnMtMzIgMTQuMy00NS4yIDIuNUMzMDIuMyAxMTEuNCAyNjUgOTYgMjI0IDk2eiJdfSxqRmU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToidmloYXJhIixpY29uOls1NzYsNTEyLFtdLCJmNmE3IiwiTTI3My42LTMuMmM4LjUtNi40IDIwLjMtNi40IDI4LjggMEw0NDMuMiAxMDIuNGM4LjMgNi4yIDE4LjQgOS42IDI4LjggOS42IDEzLjMgMCAyNCAxMC43IDI0IDI0cy0xMC43IDI0LTI0IDI0bC0yNCAwIDAgNDggNTguNyA2NCAxMy4zIDBjMTMuMyAwIDI0IDEwLjcgMjQgMjRzLTEwLjcgMjQtMjQgMjRsLTggMCAwIDQ4IDI0LjQgMzIgMTUuNiAwYzEzLjMgMCAyNCAxMC43IDI0IDI0cy0xMC43IDI0LTI0IDI0bC00MCAwIDAgMzJjMCAxNy43LTE0LjMgMzItMzIgMzJzLTMyLTE0LjMtMzItMzJsMC0zMi0xMjggMCAwIDMyYzAgMTcuNy0xNC4zIDMyLTMyIDMycy0zMi0xNC4zLTMyLTMybDAtMzItMTI4IDAgMCAzMmMwIDE3LjctMTQuMyAzMi0zMiAzMnMtMzItMTQuMy0zMi0zMmwwLTMyLTQwIDBjLTEzLjMgMC0yNC0xMC43LTI0LTI0czEwLjctMjQgMjQtMjRsMjIuMSAwIDE3LjktMzIgMC00OC04IDBjLTEzLjMgMC0yNC0xMC43LTI0LTI0czEwLjctMjQgMjQtMjRsMTMuMyAwIDU4LjctNjQgMC00OC0yNCAwYy0xMy4zIDAtMjQtMTAuNy0yNC0yNHMxMC43LTI0IDI0LTI0YzEwLjQgMCAyMC41LTMuNCAyOC44LTkuNkwyNzMuNi0zLjJ6TTEyOCAzNjhsMzIwIDAgMC00OC0zMjAgMCAwIDQ4ek0zODQgMTYwbC0xOTIgMCAwIDQ4IDE5MiAwIDAtNDh6Il19LFVGZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJmbGFnLWNoZWNrZXJlZCIsaWNvbjpbNDQ4LDUxMixbMTI3OTM3XSwiZjExZSIsIk0zMiAwQzQ5LjcgMCA2NCAxNC4zIDY0IDMybDAgMTYgNjktMTcuMmMzOC4xLTkuNSA3OC4zLTUuMSAxMTMuNSAxMi41IDQ2LjMgMjMuMiAxMDAuOCAyMy4yIDE0Ny4xIDBsOS42LTQuOEM0MjMuOCAyOC4xIDQ0OCA0My4xIDQ0OCA2Ni4xbDAgMjc5LjdjMCAxMy4zLTguMyAyNS4zLTIwLjggMzBsLTM0LjcgMTNjLTQ2LjIgMTcuMy05Ny42IDE0LjYtMTQxLjctNy40LTM3LjktMTktODEuNC0yMy43LTEyMi41LTEzLjRMNjQgMzg0IDY0IDQ4MGMwIDE3LjctMTQuMyAzMi0zMiAzMlMwIDQ5Ny43IDAgNDgwTDAgMzJDMCAxNC4zIDE0LjMgMCAzMiAwek02NCAxODcuMWw2NC0xMy45IDAgNjUuNS02NCAxMy45IDAgNjUuNSA0OC44LTEyLjJjNS4xLTEuMyAxMC4xLTIuNCAxNS4yLTMuM2wwLTYzLjkgMzguOS04LjRjOC4zLTEuOCAxNi43LTIuNSAyNS4xLTIuMWwwLTY0YzEzLjYgLjQgMjcuMiAyLjYgNDAuNCA2LjRsMjMuNiA2LjkgMCA2Ni43LTQxLjctMTIuM2MtNy4zLTIuMS0xNC44LTMuNC0yMi4zLTMuOGwwIDcxLjRjMjEuOCAxLjkgNDMuMyA2LjcgNjQgMTQuNGwwLTY5LjggMjIuNyA2LjdjMTMuNSA0IDI3LjMgNi40IDQxLjMgNy40bDAtNjQuMmMtNy44LS44LTE1LjYtMi4zLTIzLjItNC41bC00MC44LTEyIDAtNjJjLTEzLTMuOC0yNS44LTguOC0zOC4yLTE1LTguMi00LjEtMTYuOS03LTI1LjgtOC44bDAgNzIuNGMtMTMtLjQtMjYgLjgtMzguNyAzLjZsLTI1LjMgNS41IDAtNzUuMi02NCAxNiAwIDczLjF6TTMyMCAzMzUuN2MxNi44IDEuNSAzMy45LS43IDUwLTYuOGwxNC01LjIgMC03MS43LTcuOSAxLjhjLTE4LjQgNC4zLTM3LjMgNS43LTU2LjEgNC41bDAgNzcuNHptNjQtMTQ5LjRsMC03MC44Yy0yMC45IDYuMS00Mi40IDkuMS02NCA5LjFsMCA2OS40YzEzLjkgMS40IDI4IC41IDQxLjctMi42bDIyLjMtNS4yeiJdfSxNbT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJnYXVnZS1zaW1wbGUiLGljb246WzUxMiw1MTIsWyJnYXVnZS1zaW1wbGUtbWVkIiwidGFjaG9tZXRlci1hdmVyYWdlIl0sImY2MjkiLCJNMCAyNTZhMjU2IDI1NiAwIDEgMSA1MTIgMCAyNTYgMjU2IDAgMSAxIC01MTIgMHptMzIwIDk2YzAtMjYuOS0xNi41LTQ5LjktNDAtNTkuM0wyODAgMTIwYzAtMTMuMy0xMC43LTI0LTI0LTI0cy0yNCAxMC43LTI0IDI0bDAgMTcyLjdjLTIzLjUgOS41LTQwIDMyLjUtNDAgNTkuMyAwIDM1LjMgMjguNyA2NCA2NCA2NHM2NC0yOC43IDY0LTY0eiJdfSxXRmU9TW0sR0ZlPU1tLHhSPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InJpZ2h0LWxlZnQiLGljb246WzUxMiw1MTIsWyJleGNoYW5nZS1hbHQiXSwiZjM2MiIsIk01MDIuNiAxNTAuNmwtOTYgOTZjLTkuMiA5LjItMjIuOSAxMS45LTM0LjkgNi45UzM1MiAyMzYuOSAzNTIgMjI0bDAtNjQtMzIwIDBjLTE3LjcgMC0zMi0xNC4zLTMyLTMyUzE0LjMgOTYgMzIgOTZsMzIwIDAgMC02NGMwLTEyLjkgNy44LTI0LjYgMTkuOC0yOS42czI1LjctMi4yIDM0LjkgNi45bDk2IDk2YzEyLjUgMTIuNSAxMi41IDMyLjggMCA0NS4zem0tMzk3LjMgMzUybC05Ni05NmMtMTIuNS0xMi41LTEyLjUtMzIuOCAwLTQ1LjNsOTYtOTZjOS4yLTkuMiAyMi45LTExLjkgMzQuOS02LjlTMTYwIDI3NS4xIDE2MCAyODhsMCA2NCAzMjAgMGMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMmwtMzIwIDAgMCA2NGMwIDEyLjktNy44IDI0LjYtMTkuOCAyOS42cy0yNS43IDIuMi0zNC45LTYuOXoiXX0sWUZlPXhSLFpGZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJwaWxscyIsaWNvbjpbNTEyLDUxMixbXSwiZjQ4NCIsIk02NCAxMTJjMC0yNi41IDIxLjUtNDggNDgtNDhzNDggMjEuNSA0OCA0OGwwIDExMi05NiAwIDAtMTEyek0xNzYgMzY4YzAtNDguNyAxOC4xLTkzLjIgNDgtMTI3bDAtMTI5QzIyNCA1MC4xIDE3My45IDAgMTEyIDBTMCA1MC4xIDAgMTEyTDAgNDAwYzAgNjEuOSA1MC4xIDExMiAxMTIgMTEyIDM3LjMgMCA3MC4zLTE4LjIgOTAuNy00Ni4zLTE3LTI4LjYtMjYuNy02Mi0yNi43LTk3Ljd6bTY0LjcgNjcuNGM0LjYgOC43IDE2LjMgOS43IDIzLjMgMi43TDQzOC4xIDI2NGM3LTcgNi0xOC43LTIuNy0yMy4zLTIwLjEtMTAuNy00My0xNi43LTY3LjQtMTYuNy03OS41IDAtMTQ0IDY0LjUtMTQ0IDE0NCAwIDI0LjMgNiA0Ny4zIDE2LjcgNjcuNHpNMjk3LjkgNDcyYy03IDctNiAxOC43IDIuNyAyMy4zIDIwLjEgMTAuNyA0MyAxNi43IDY3LjQgMTYuNyA3OS41IDAgMTQ0LTY0LjUgMTQ0LTE0NCAwLTI0LjMtNi00Ny4zLTE2LjctNjcuNC00LjYtOC43LTE2LjMtOS43LTIzLjMtMi43TDI5Ny45IDQ3MnoiXX0sWEZlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImV4cGxvc2lvbiIsaWNvbjpbNTEyLDUxMixbXSwiZTRlOSIsIk0yNTYtMzJjMTMuMyAwIDI0IDEwLjcgMjQgMjRsMCA0OGMwIDEzLjMtMTAuNyAyNC0yNCAyNHMtMjQtMTAuNy0yNC0yNGwwLTQ4YzAtMTMuMyAxMC43LTI0IDI0LTI0em0wIDE2MGMxMi40IDAgMjIuNyA5LjQgMjMuOSAyMS43TDI5My40IDI5MS42IDQ2Ny42IDExLjNjNi43LTEwLjcgMjAuNS0xNC41IDMxLjctOC41czE1LjggMTkuNSAxMC42IDMxTDM3Mi44IDMzOC42YzIuMiAyLjMgNC4zIDQuNyA2LjMgNy4xbDk3LjItNTQuN2MxMC41LTUuOSAyMy42LTMuMSAzMC45IDYuNHM2LjMgMjMtMi4yIDMxLjVsLTg3IDg3LTcxLjQgMGMtMTMuMi0zNy4zLTQ4LjctNjQtOTAuNS02NHMtNzcuNCAyNi43LTkwLjUgNjRsLTc5LjYgMC03NS41LTUyLjNDLjYgMzU3LTIuOCAzNDQuMSAyLjQgMzMzLjVzMTcuNC0xNS45IDI4LjctMTIuNGw5Ny4yIDMwLjRjMy0zLjkgNi4xLTcuNiA5LjQtMTEuM0w3NS40IDIzNi4zYy02LjEtMTAuMS0zLjktMjMuMSA1LjEtMzAuN3MyMi4yLTcuNSAzMS4xIC4xTDIxNCAyOTMuNmMxLjUtLjQgMy0uOCA0LjUtMS4xbDEzLjYtMTQyLjdjMS4yLTEyLjMgMTEuNS0yMS43IDIzLjktMjEuN3pNMzIgNDY0bDQ1NiAwYzEzLjMgMCAyNCAxMC43IDI0IDI0cy0xMC43IDI0LTI0IDI0TDI0IDUxMmMtMTMuMyAwLTI0LTEwLjctMjQtMjRzMTAuNy0yNCAyNC0yNGw4IDB6Il19LEtGZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJhcnJvd3MtZG93bi10by1wZW9wbGUiLGljb246WzUxMiw1MTIsW10sImU0YjkiLCJNMTEzIDE1M2MtOS40IDkuNC0yNC42IDkuNC0zMy45IDBMMTUgODlDNS43IDc5LjYgNS43IDY0LjQgMTUgNTVTMzkuNiA0NS43IDQ5IDU1TDcyIDc4LjEgNzItOGMwLTEzLjMgMTAuNy0yNCAyNC0yNHMyNCAxMC43IDI0IDI0bDAgODYuMSAyMy0yM2M5LjQtOS40IDI0LjYtOS40IDMzLjkgMHM5LjQgMjQuNiAwIDMzLjlsLTY0IDY0em0zMjAgMGMtOS40IDkuNC0yNC42IDkuNC0zMy45IDBMMzM1IDg5Yy05LjQtOS40LTkuNC0yNC42IDAtMzMuOXMyNC42LTkuNCAzMy45IDBsMjMgMjMgMC04Ni4xYzAtMTMuMyAxMC43LTI0IDI0LTI0czI0IDEwLjcgMjQgMjRsMCA4Ni4xIDIzLTIzYzkuNC05LjQgMjQuNi05LjQgMzMuOSAwczkuNCAyNC42IDAgMzMuOWwtNjQgNjR6TTI1NiAxOTJhNTYgNTYgMCAxIDEgMCAxMTIgNTYgNTYgMCAxIDEgMC0xMTJ6bTAgMTYwYzUzIDAgOTYgNDMgOTYgOTZsMCAzMmMwIDE3LjctMTQuMyAzMi0zMiAzMmwtMTI4IDBjLTE3LjcgMC0zMi0xNC4zLTMyLTMybDAtMzJjMC01MyA0My05NiA5Ni05NnpNMzIgMjg4YTQ4IDQ4IDAgMSAxIDk2IDAgNDggNDggMCAxIDEgLTk2IDB6bTM1MiAwYTQ4IDQ4IDAgMSAxIDk2IDAgNDggNDggMCAxIDEgLTk2IDB6TTgwIDM2OGMxNS4zIDAgMjkuNiA0LjMgNDEuOCAxMS44LTYuMyAxNi4yLTkuOCAzMy44LTkuOCA1Mi4ybDAgNDhjMCAxMS40IDIuNCAyMi4yIDYuNyAzMmwtODcuOCAwQzEzLjggNTEyIDAgNDk4LjIgMCA0ODEuMUwwIDQ0OGMwLTQ0LjIgMzUuOC04MCA4MC04MHpNMzkzLjMgNTEyYzQuMy05LjggNi43LTIwLjYgNi43LTMybDAtNDhjMC0xOC40LTMuNS0zNi05LjgtNTIuMiAxMi4yLTcuNSAyNi41LTExLjggNDEuOC0xMS44IDQ0LjIgMCA4MCAzNS44IDgwIDgwbDAgMzMuMWMwIDE3LTEzLjggMzAuOS0zMC45IDMwLjlsLTg3LjggMHoiXX0sUUZlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InVzZXJzLXZpZXdmaW5kZXIiLGljb246WzU3Niw1MTIsW10sImU1OTUiLCJNNjQgMEMyOC43IDAgMCAyOC43IDAgNjRsMCA3MmMwIDEzLjMgMTAuNyAyNCAyNCAyNHMyNC0xMC43IDI0LTI0bDAtNzJjMC04LjggNy4yLTE2IDE2LTE2bDcyIDBjMTMuMyAwIDI0LTEwLjcgMjQtMjRTMTQ5LjMgMCAxMzYgMEw2NCAwek00NDAgMGMtMTMuMyAwLTI0IDEwLjctMjQgMjRzMTAuNyAyNCAyNCAyNGw3MiAwYzguOCAwIDE2IDcuMiAxNiAxNmwwIDcyYzAgMTMuMyAxMC43IDI0IDI0IDI0czI0LTEwLjcgMjQtMjRsMC03MmMwLTM1LjMtMjguNy02NC02NC02NEw0NDAgMHpNNDggMzc2YzAtMTMuMy0xMC43LTI0LTI0LTI0UzAgMzYyLjcgMCAzNzZsMCA3MmMwIDM1LjMgMjguNyA2NCA2NCA2NGw3MiAwYzEzLjMgMCAyNC0xMC43IDI0LTI0cy0xMC43LTI0LTI0LTI0bC03MiAwYy04LjggMC0xNi03LjItMTYtMTZsMC03MnptNTI4IDBjMC0xMy4zLTEwLjctMjQtMjQtMjRzLTI0IDEwLjctMjQgMjRsMCA3MmMwIDguOC03LjIgMTYtMTYgMTZsLTcyIDBjLTEzLjMgMC0yNCAxMC43LTI0IDI0czEwLjcgMjQgMjQgMjRsNzIgMGMzNS4zIDAgNjQtMjguNyA2NC02NGwwLTcyek0yODggMjE2YTU2IDU2IDAgMSAwIDAtMTEyIDU2IDU2IDAgMSAwIDAgMTEyem0wIDQwYy01MyAwLTk2IDQzLTk2IDk2bDAgMjRjMCAxMy4zIDEwLjcgMjQgMjQgMjRsMTQ0IDBjMTMuMyAwIDI0LTEwLjcgMjQtMjRsMC0yNGMwLTUzLTQzLTk2LTk2LTk2em0xOTItNjRhNDggNDggMCAxIDAgLTk2IDAgNDggNDggMCAxIDAgOTYgMHpNMTY4IDI3Mi4zYy00OS4zIDQuMS04OCA0NS4zLTg4IDk1LjdsMCAxMC43YzAgMTEuOCA5LjYgMjEuMyAyMS4zIDIxLjNsNDYuOCAwYy0yLjctNy41LTQuMS0xNS42LTQuMS0yNGwwLTI0YzAtMjkuNSA4LjgtNTYuOSAyNC03OS43ek00MjcuOSA0MDBsNDYuOCAwYzExLjggMCAyMS4zLTkuNiAyMS4zLTIxLjNsMC0xMC43YzAtNTAuMy0zOC43LTkxLjYtODgtOTUuNyAxNS4yIDIyLjggMjQgNTAuMiAyNCA3OS43bDAgMjRjMCA4LjQtMS40IDE2LjUtNC4xIDI0ek0xOTIgMTkyYTQ4IDQ4IDAgMSAwIC05NiAwIDQ4IDQ4IDAgMSAwIDk2IDB6Il19LEpGZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJjYXItb24iLGljb246WzQ0OCw1MTIsW10sImU0ZGQiLCJNMjQ4LThjMC0xMy4zLTEwLjctMjQtMjQtMjRTMjAwLTIxLjMgMjAwLThsMCA2NGMwIDEzLjMgMTAuNyAyNCAyNCAyNHMyNC0xMC43IDI0LTI0bDAtNjR6TTE0NS4zIDIwOGwxNTcuNSAwYzYuNyAwIDEyLjYgNC4xIDE1IDEwLjRsMjYuMSA2OS42LTIzOS42IDAgMjYuMS02OS42YzIuMy02LjIgOC4zLTEwLjQgMTUtMTAuNHpNMzQgMjkyLjhsLTEuMyAzLjRDMTMuMiAzMDcuMSAwIDMyOCAwIDM1MkwwIDQ4MGMwIDE3LjcgMTQuMyAzMiAzMiAzMmwxNiAwYzE3LjcgMCAzMi0xNC4zIDMyLTMybDAtMzIgMjg4IDAgMCAzMmMwIDE3LjcgMTQuMyAzMiAzMiAzMmwxNiAwYzE3LjcgMCAzMi0xNC4zIDMyLTMybDAtMTI4YzAtMjQtMTMuMi00NC45LTMyLjgtNTUuOWwtMS4zLTMuNC0zNi4zLTk2LjljLTExLjctMzEuMi00MS42LTUxLjktNzQuOS01MS45bC0xNTcuNSAwYy0zMy4zIDAtNjMuMiAyMC43LTc0LjkgNTEuOUwzNCAyOTIuOHpNOTYgMzM2YTMyIDMyIDAgMSAxIDAgNjQgMzIgMzIgMCAxIDEgMC02NHptMjI0IDMyYTMyIDMyIDAgMSAxIDY0IDAgMzIgMzIgMCAxIDEgLTY0IDB6TTcgN0MtMi4zIDE2LjQtMi4zIDMxLjYgNyA0MUw1NSA4OWM5LjQgOS40IDI0LjYgOS40IDMzLjkgMFM5OC4zIDY0LjQgODkgNTVMNDEgN0MzMS42LTIuMyAxNi40LTIuMyA3IDd6TTQwNyA3TDM1OSA1NWMtOS40IDkuNC05LjQgMjQuNiAwIDMzLjlzMjQuNiA5LjQgMzMuOSAwbDQ4LTQ4YzkuNC05LjQgOS40LTI0LjYgMC0zMy45UzQxNi40LTIuMyA0MDcgN3oiXX0sZU9lPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InNsZWlnaCIsaWNvbjpbNjQwLDUxMixbXSwiZjdjYyIsIk02NCAzMkM0Ni4zIDMyIDMyIDQ2LjMgMzIgNjRTNDYuMyA5NiA2NCA5NmwwIDE2MGMwIDQxLjggMjYuNyA3Ny40IDY0IDkwLjVsMCA2OS41LTcyIDBjLTEzLjMgMC0yNCAxMC43LTI0IDI0czEwLjcgMjQgMjQgMjRsNTA0IDBjNDQuMiAwIDgwLTM1LjggODAtODBsMC04YzAtMTMuMy0xMC43LTI0LTI0LTI0cy0yNCAxMC43LTI0IDI0bDAgOGMwIDE3LjctMTQuMyAzMi0zMiAzMmwtODAgMCAwLTY0YzUzIDAgOTYtNDMgOTYtOTZsMC05NmMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMmwtMzIgMGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJsMCAzMmMwIDM1LjMtMjguNyA2NC02NCA2NGwtNDguOSAwYy00OC41IDAtOTIuOC0yNy40LTExNC41LTcwLjhsLTI1LjItNTAuNUMyMzcuNyA1OS40IDE5My40IDMyIDE0NC45IDMyTDY0IDMyek00MzIgNDE2bC0yNTYgMCAwLTY0IDI1NiAwIDAgNjR6Il19LHRPZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJkdW1iYmVsbCIsaWNvbjpbNjQwLDUxMixbXSwiZjQ0YiIsIk05NiAxMTJjMC0yNi41IDIxLjUtNDggNDgtNDhzNDggMjEuNSA0OCA0OGwwIDExMiAyNTYgMCAwLTExMmMwLTI2LjUgMjEuNS00OCA0OC00OHM0OCAyMS41IDQ4IDQ4bDAgMTYgMTYgMGMyNi41IDAgNDggMjEuNSA0OCA0OGwwIDQ4YzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMybDAgNDhjMCAyNi41LTIxLjUgNDgtNDggNDhsLTE2IDAgMCAxNmMwIDI2LjUtMjEuNSA0OC00OCA0OHMtNDgtMjEuNS00OC00OGwwLTExMi0yNTYgMCAwIDExMmMwIDI2LjUtMjEuNSA0OC00OCA0OHMtNDgtMjEuNS00OC00OGwwLTE2LTE2IDBjLTI2LjUgMC00OC0yMS41LTQ4LTQ4bDAtNDhjLTE3LjcgMC0zMi0xNC4zLTMyLTMyczE0LjMtMzIgMzItMzJsMC00OGMwLTI2LjUgMjEuNS00OCA0OC00OGwxNiAwIDAtMTZ6Il19LHdSPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImJhYnktY2FycmlhZ2UiLGljb246WzUxMiw1MTIsWyJjYXJyaWFnZS1iYWJ5Il0sImY3N2QiLCJNNjQgMjA4bDAgODBjMCA1MyA0MyA5NiA5NiA5NmwxOTIgMGM1MyAwIDk2LTQzIDk2LTk2bDAtMTEyIDQwIDBjMTMuMyAwIDI0LTEwLjcgMjQtMjRzLTEwLjctMjQtMjQtMjRsLTY0IDBjLTEzLjMgMC0yNCAxMC43LTI0IDI0bDAgNTYtMzM2IDB6bS4yLTQ4bDIyMy44IDAgMC0xMjhjMC0xNy43LTE0LjMtMzItMzItMzJMMjMyIDBDMTQxLjkgMCA2OC40IDcwLjkgNjQuMiAxNjB6TTE2MCA0NjRhNDggNDggMCAxIDAgLTk2IDAgNDggNDggMCAxIDAgOTYgMHptMjg4IDBhNDggNDggMCAxIDAgLTk2IDAgNDggNDggMCAxIDAgOTYgMHoiXX0sYU9lPXdSLGlPZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJraXdpLWJpcmQiLGljb246WzU3Niw1MTIsW10sImY1MzUiLCJNMjkxLjIgMzg4LjRjMzEuMi0xOC44IDY0LjctMzYuNCAxMDEuMS0zNi40bDU1LjcgMGM0LjYgMCA5LjEtLjIgMTMuNi0uN2w4NS4zIDEyMS45YzQgNS43IDExLjMgOC4yIDE3LjkgNi4xUzU3NiA0NzEgNTc2IDQ2NGwwLTI0MGMwLTcwLjctNTcuMy0xMjgtMTI4LTEyOGwtNTUuNyAwQzM1NS45IDk2IDMyMi40IDc4LjQgMjkxLjIgNTkuNiAyNjIuMyA0Mi4xIDIyOC4zIDMyIDE5MiAzMiA4NiAzMiAwIDExOCAwIDIyNCAwIDI5NS4xIDM4LjYgMzU3LjEgOTYgMzkwLjNMOTYgNDU2YzAgMTMuMyAxMC43IDI0IDI0IDI0czI0LTEwLjcgMjQtMjRsMC00NmMxNS4zIDMuOSAzMS40IDYgNDggNiA1LjQgMCAxMC43LS4yIDE2LS43bDAgNDAuN2MwIDEzLjMgMTAuNyAyNCAyNCAyNHMyNC0xMC43IDI0LTI0bDAtNTAuOWMxMi40LTQuNCAyNC4yLTEwIDM1LjItMTYuN3pNNDQ4IDIwMGEyNCAyNCAwIDEgMSAwIDQ4IDI0IDI0IDAgMSAxIDAtNDh6Il19LE1SPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImNhbGVuZGFyLXhtYXJrIixpY29uOls0NDgsNTEyLFsiY2FsZW5kYXItdGltZXMiXSwiZjI3MyIsIk0xMjggMGMxNy43IDAgMzIgMTQuMyAzMiAzMmwwIDMyIDEyOCAwIDAtMzJjMC0xNy43IDE0LjMtMzIgMzItMzJzMzIgMTQuMyAzMiAzMmwwIDMyIDMyIDBjMzUuMyAwIDY0IDI4LjcgNjQgNjRsMCAyODhjMCAzNS4zLTI4LjcgNjQtNjQgNjRMNjQgNDgwYy0zNS4zIDAtNjQtMjguNy02NC02NEwwIDEyOEMwIDkyLjcgMjguNyA2NCA2NCA2NGwzMiAwIDAtMzJjMC0xNy43IDE0LjMtMzIgMzItMzJ6TTI5MS45IDIyMC4xYy05LjQtOS40LTI0LjYtOS40LTMzLjkgMGwtMzMuOSAzMy45LTMzLjktMzMuOWMtOS40LTkuNC0yNC42LTkuNC0zMy45IDBzLTkuNCAyNC42IDAgMzMuOWwzMy45IDMzLjktMzMuOSAzMy45Yy05LjQgOS40LTkuNCAyNC42IDAgMzMuOXMyNC42IDkuNCAzMy45IDBsMzMuOS0zMy45IDMzLjkgMzMuOWM5LjQgOS40IDI0LjYgOS40IDMzLjkgMHM5LjQtMjQuNiAwLTMzLjlsLTMzLjktMzMuOSAzMy45LTMzLjljOS40LTkuNCA5LjQtMjQuNiAwLTMzLjl6Il19LHJPZT1NUix6Uj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJjaXJjbGUtZG93biIsaWNvbjpbNTEyLDUxMixbNjE0NjYsImFycm93LWFsdC1jaXJjbGUtZG93biJdLCJmMzU4IiwiTTI1NiAwYTI1NiAyNTYgMCAxIDAgMCA1MTIgMjU2IDI1NiAwIDEgMCAwLTUxMnpNMjQ0LjcgMzg3LjNsLTEwNC0xMDRjLTQuNi00LjYtNS45LTExLjUtMy41LTE3LjRzOC4zLTkuOSAxNC44LTkuOWw1NiAwIDAtOTZjMC0xNy43IDE0LjMtMzIgMzItMzJsMzIgMGMxNy43IDAgMzIgMTQuMyAzMiAzMmwwIDk2IDU2IDBjNi41IDAgMTIuMyAzLjkgMTQuOCA5LjlzMS4xIDEyLjktMy41IDE3LjRsLTEwNCAxMDRjLTYuMiA2LjItMTYuNCA2LjItMjIuNiAweiJdfSxzT2U9elIsbk9lPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImZpbGUtbWVkaWNhbCIsaWNvbjpbMzg0LDUxMixbXSwiZjQ3NyIsIk0wIDY0QzAgMjguNyAyOC43IDAgNjQgMEwyMTMuNSAwYzE3IDAgMzMuMyA2LjcgNDUuMyAxOC43TDM2NS4zIDEyNS4zYzEyIDEyIDE4LjcgMjguMyAxOC43IDQ1LjNMMzg0IDQ0OGMwIDM1LjMtMjguNyA2NC02NCA2NEw2NCA1MTJjLTM1LjMgMC02NC0yOC43LTY0LTY0TDAgNjR6bTIwOC01LjVsMCA5My41YzAgMTMuMyAxMC43IDI0IDI0IDI0TDMyNS41IDE3NiAyMDggNTguNXpNMTYwIDI4MGwwIDQwLTQwIDBjLTguOCAwLTE2IDcuMi0xNiAxNmwwIDMyYzAgOC44IDcuMiAxNiAxNiAxNmw0MCAwIDAgNDBjMCA4LjggNy4yIDE2IDE2IDE2bDMyIDBjOC44IDAgMTYtNy4yIDE2LTE2bDAtNDAgNDAgMGM4LjggMCAxNi03LjIgMTYtMTZsMC0zMmMwLTguOC03LjItMTYtMTYtMTZsLTQwIDAgMC00MGMwLTguOC03LjItMTYtMTYtMTZsLTMyIDBjLTguOCAwLTE2IDcuMi0xNiAxNnoiXX0saW89e3ByZWZpeDoiZmFzIixpY29uTmFtZToieG1hcmsiLGljb246WzM4NCw1MTIsWzEyODQ3MywxMDAwNSwxMDAwNiwxMDA2MCwyMTUsImNsb3NlIiwibXVsdGlwbHkiLCJyZW1vdmUiLCJ0aW1lcyJdLCJmMDBkIiwiTTU1LjEgNzMuNGMtMTIuNS0xMi41LTMyLjgtMTIuNS00NS4zIDBzLTEyLjUgMzIuOCAwIDQ1LjNMMTQ3LjIgMjU2IDkuOSAzOTMuNGMtMTIuNSAxMi41LTEyLjUgMzIuOCAwIDQ1LjNzMzIuOCAxMi41IDQ1LjMgMEwxOTIuNSAzMDEuMyAzMjkuOSA0MzguNmMxMi41IDEyLjUgMzIuOCAxMi41IDQ1LjMgMHMxMi41LTMyLjggMC00NS4zTDIzNy44IDI1NiAzNzUuMSAxMTguNmMxMi41LTEyLjUgMTIuNS0zMi44IDAtNDUuM3MtMzIuOC0xMi41LTQ1LjMgMEwxOTIuNSAyMTAuNyA1NS4xIDczLjR6Il19LG9PZT1pbyxsT2U9aW8sY09lPWlvLGRPZT1pbyxrUj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJzaGFwZXMiLGljb246WzUxMiw1MTIsWyJ0cmlhbmdsZS1jaXJjbGUtc3F1YXJlIl0sImY2MWYiLCJNMjU2IDBjMTEuMiAwIDIxLjcgNS45IDI3LjQgMTUuNWw5NiAxNjBjNS45IDkuOSA2LjEgMjIuMiAuNCAzMi4yUzM2My41IDIyNCAzNTIgMjI0bC0xOTIgMGMtMTEuNSAwLTIyLjItNi4yLTI3LjgtMTYuMnMtNS41LTIyLjMgLjQtMzIuMmw5Ni0xNjBDMjM0LjMgNS45IDI0NC44IDAgMjU2IDB6TTEyOCAyNzJhMTEyIDExMiAwIDEgMSAwIDIyNCAxMTIgMTEyIDAgMSAxIDAtMjI0em0yMDAgMTZsMTEyIDBjMjIuMSAwIDQwIDE3LjkgNDAgNDBsMCAxMTJjMCAyMi4xLTE3LjkgNDAtNDAgNDBsLTExMiAwYy0yMi4xIDAtNDAtMTcuOS00MC00MGwwLTExMmMwLTIyLjEgMTcuOS00MCA0MC00MHoiXX0saE9lPWtSLHBPZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJkaWNlLW9uZSIsaWNvbjpbNDQ4LDUxMixbOTg1Nl0sImY1MjUiLCJNNjQgMzJDMjguNyAzMiAwIDYwLjcgMCA5NkwwIDQxNmMwIDM1LjMgMjguNyA2NCA2NCA2NGwzMjAgMGMzNS4zIDAgNjQtMjguNyA2NC02NGwwLTMyMGMwLTM1LjMtMjguNy02NC02NC02NEw2NCAzMnpNMjI0IDIyNGEzMiAzMiAwIDEgMSAwIDY0IDMyIDMyIDAgMSAxIDAtNjR6Il19LHVPZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJsb2NrLW9wZW4iLGljb246WzU3Niw1MTIsW10sImYzYzEiLCJNMzg0IDk2YzAtMzUuMyAyOC43LTY0IDY0LTY0czY0IDI4LjcgNjQgNjRsMCAzMmMwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMybDAtMzJjMC03MC43LTU3LjMtMTI4LTEyOC0xMjhTMzIwIDI1LjMgMzIwIDk2bDAgNjQtMTYwIDBjLTM1LjMgMC02NCAyOC43LTY0IDY0bDAgMjI0YzAgMzUuMyAyOC43IDY0IDY0IDY0bDI1NiAwYzM1LjMgMCA2NC0yOC43IDY0LTY0bDAtMjI0YzAtMzUuMy0yOC43LTY0LTY0LTY0bC0zMiAwIDAtNjR6Il19LGZPZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJwZXBwZXItaG90IixpY29uOls1NzYsNTEyLFsxMjc3OThdLCJmODE2IiwiTTU0NSA2NWM5LjQtOS40IDkuNC0yNC42IDAtMzMuOXMtMjQuNi05LjQtMzMuOSAwTDQ3OC45IDYzLjJDNDUyLjMgNDMuNiA0MTkuNSAzMiAzODQgMzIgMzQ4LjkgMzIgMzE2LjUgNDMuMyAyOTAuMSA2Mi40IDI3NC4xIDc0LjEgMjg0LjIgOTYgMzA0IDk2bDI0IDBjMTMuMyAwIDI0IDEwLjcgMjQgMjRsMCA4MGMwIDEzLjMgMTAuNyAyNCAyNCAyNGw4MCAwYzEzLjMgMCAyNCAxMC43IDI0IDI0bDAgMjRjMCAxOS44IDIxLjkgMjkuOSAzMy42IDEzLjkgMTkuMS0yNi40IDMwLjQtNTguOCAzMC40LTkzLjkgMC0zNS41LTExLjYtNjguMy0zMS4yLTk0LjlMNTQ1IDY1ek0yNzAgMTM1LjVsLTE1OS42IDIyOEMxMDEuMyAzNzYuNCA4Ni43IDM4NCA3MSAzODRsLTcgMGMtMjYuNSAwLTQ4IDIxLjUtNDggNDhzMjEuNSA0OCA0OCA0OGwyNy4xIDBjNjUuNyAwIDEyOS43LTIwLjIgMTgzLjUtNTcuOEw0NDAuNSAzMDYuMUM0MzUgMjk1LjkgNDMyIDI4NC4yIDQzMiAyNzJsLTU2IDBjLTM5LjggMC03Mi0zMi4yLTcyLTcybDAtNTZjLTEyLjIgMC0yMy45LTMtMzQtOC41eiJdfSxTUj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJkcm9wbGV0LXNsYXNoIixpY29uOls1NzYsNTEyLFsidGludC1zbGFzaCJdLCJmNWM3IiwiTTQxLTI0LjljLTkuNC05LjQtMjQuNi05LjQtMzMuOSAwUy0yLjMtLjMgNyA5LjFsNTI4IDUyOGM5LjQgOS40IDI0LjYgOS40IDMzLjkgMHM5LjQtMjQuNiAwLTMzLjlMNDYzLjYgMzk3LjhjMTAuNS0yMy44IDE2LjQtNTAuMSAxNi40LTc3LjggMC05MS4yLTEzMC4yLTI3NC4xLTE2Ni42LTMyMy41LTUuOS04LTE1LjItMTIuNS0yNS4yLTEyLjVsLS40IDBjLTEwIDAtMTkuMyA0LjUtMjUuMiAxMi41LTE1LjYgMjEuMi00OC41IDY2LjktODAuOSAxMTkuNEw0MS0yNC45em05MiAyMjcuN2MtMjEuNiA0My44LTM3IDg1LjktMzcgMTE3LjIgMCAxMDYgODYgMTkyIDE5MiAxOTIgNDMuNCAwIDgzLjQtMTQuNCAxMTUuNS0zOC42TDEzMyAyMDIuOHoiXX0sbU9lPVNSLENSPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImRyb3BsZXQiLGljb246WzM4NCw1MTIsWzEyODE2NywidGludCJdLCJmMDQzIiwiTTE5MiA1MTJDODYgNTEyIDAgNDI2IDAgMzIwIDAgMjI4LjggMTMwLjIgNDUuOSAxNjYuNi0zLjUgMTcyLjUtMTEuNSAxODEuOC0xNiAxOTEuOC0xNmwuNCAwYzEwIDAgMTkuMyA0LjUgMjUuMiAxMi41IDM2LjQgNDkuNCAxNjYuNiAyMzIuMyAxNjYuNiAzMjMuNSAwIDEwNi04NiAxOTItMTkyIDE5MnpNMTEyIDMxMmMwLTEzLjMtMTAuNy0yNC0yNC0yNHMtMjQgMTAuNy0yNCAyNGMwIDc1LjEgNjAuOSAxMzYgMTM2IDEzNiAxMy4zIDAgMjQtMTAuNyAyNC0yNHMtMTAuNy0yNC0yNC0yNGMtNDguNiAwLTg4LTM5LjQtODgtODh6Il19LGdPZT1DUix6bT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJmaWxlLWxpbmVzIixpY29uOlszODQsNTEyLFsxMjg0NDEsMTI4NDYyLDYxNjg2LCJmaWxlLWFsdCIsImZpbGUtdGV4dCJdLCJmMTVjIiwiTTAgNjRDMCAyOC43IDI4LjcgMCA2NCAwTDIxMy41IDBjMTcgMCAzMy4zIDYuNyA0NS4zIDE4LjdMMzY1LjMgMTI1LjNjMTIgMTIgMTguNyAyOC4zIDE4LjcgNDUuM0wzODQgNDQ4YzAgMzUuMy0yOC43IDY0LTY0IDY0TDY0IDUxMmMtMzUuMyAwLTY0LTI4LjctNjQtNjRMMCA2NHptMjA4LTUuNWwwIDkzLjVjMCAxMy4zIDEwLjcgMjQgMjQgMjRMMzI1LjUgMTc2IDIwOCA1OC41ek0xMjAgMjU2Yy0xMy4zIDAtMjQgMTAuNy0yNCAyNHMxMC43IDI0IDI0IDI0bDE0NCAwYzEzLjMgMCAyNC0xMC43IDI0LTI0cy0xMC43LTI0LTI0LTI0bC0xNDQgMHptMCA5NmMtMTMuMyAwLTI0IDEwLjctMjQgMjRzMTAuNyAyNCAyNCAyNGwxNDQgMGMxMy4zIDAgMjQtMTAuNyAyNC0yNHMtMTAuNy0yNC0yNC0yNGwtMTQ0IDB6Il19LGJPZT16bSx2T2U9em0seU9lPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImNvbW1lbnRzLWRvbGxhciIsaWNvbjpbNTc2LDUxMixbXSwiZjY1MyIsIk0xOTIgMzIwYzEwNiAwIDE5Mi03OC44IDE5Mi0xNzZTMjk4LTMyIDE5Mi0zMiAwIDQ2LjggMCAxNDRjMCAzOS42IDE0LjMgNzYuMiAzOC40IDEwNS42TDIuOCAzMTYuOEMtMi4xIDMyNi4xLS40IDMzNy41IDcgMzQ1czE4LjkgOS4yIDI4LjIgNC4yTDExNi44IDMwNmMyMy4xIDkgNDguNSAxNCA3NS4yIDE0em0zLjIgNDhjMTYuNCA4MS45IDk0LjcgMTQ0IDE4OC44IDE0NCAyNi43IDAgNTIuMS01IDc1LjItMTRsODEuNiA0My4yYzkuMyA0LjkgMjAuNyAzLjIgMjguMi00LjJzOS4yLTE4LjkgNC4yLTI4LjJsLTM1LjYtNjcuMmMyNC4xLTI5LjQgMzguNC02NiAzOC40LTEwNS42IDAtODIuNC02MS43LTE1MS41LTE0NS0xNzAuNy0xMS41IDExNS44LTExNS44IDIwMS4yLTIzNS44IDIwMi43ek0xOTYgMzJjMTEgMCAyMCA5IDIwIDIwbDAgNCA4IDBjMTEgMCAyMCA5IDIwIDIwcy05IDIwLTIwIDIwbC00Ny41IDBjLTYuOSAwLTEyLjUgNS42LTEyLjUgMTIuNSAwIDYuMSA0LjQgMTEuMyAxMC40IDEyLjNsNDEuNyA3YzI1LjMgNC4yIDQzLjkgMjYuMSA0My45IDUxLjggMCAyNi4xLTE5IDQ3LjctNDQgNTEuOGwwIDQuN2MwIDExLTkgMjAtMjAgMjBzLTIwLTktMjAtMjBsMC00LTI0IDBjLTExIDAtMjAtOS0yMC0yMHM5LTIwIDIwLTIwbDU1LjUgMGM2LjkgMCAxMi41LTUuNiAxMi41LTEyLjUgMC02LjEtNC40LTExLjMtMTAuNC0xMi4zbC00MS43LTdjLTI1LjMtNC4yLTQzLjktMjYuMS00My45LTUxLjggMC0yOC44IDIzLjItNTIuMiA1Mi01Mi41bDAtNGMwLTExIDktMjAgMjAtMjB6Il19LF9SPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6Im1hZ25pZnlpbmctZ2xhc3MtbG9jYXRpb24iLGljb246WzUxMiw1MTIsWyJzZWFyY2gtbG9jYXRpb24iXSwiZjY4OSIsIk00MTYgMjA4YzAgNDUuOS0xNC45IDg4LjMtNDAgMTIyLjdMNTAyLjYgNDU3LjRjMTIuNSAxMi41IDEyLjUgMzIuOCAwIDQ1LjNzLTMyLjggMTIuNS00NS4zIDBMMzMwLjcgMzc2QzI5Ni4zIDQwMS4xIDI1My45IDQxNiAyMDggNDE2IDkzLjEgNDE2IDAgMzIyLjkgMCAyMDhTOTMuMSAwIDIwOCAwIDQxNiA5My4xIDQxNiAyMDh6TTI4OCAxNzZjMC00NC4yLTM1LjgtODAtODAtODBzLTgwIDM1LjgtODAgODBjMCA0OC44IDQ2LjUgMTExLjYgNjguNiAxMzguNiA2IDcuMyAxNi44IDcuMyAyMi43IDAgMjIuMS0yNyA2OC42LTg5LjggNjguNi0xMzguNnptLTExMiAwYTMyIDMyIDAgMSAxIDY0IDAgMzIgMzIgMCAxIDEgLTY0IDB6Il19LHhPZT1fUixjZz17cHJlZml4OiJmYXMiLGljb25OYW1lOiJmaWxlLWludm9pY2UiLGljb246WzM4NCw1MTIsW10sImY1NzAiLCJNNjQgMEMyOC43IDAgMCAyOC43IDAgNjRMMCA0NDhjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMjU2IDBjMzUuMyAwIDY0LTI4LjcgNjQtNjRsMC0yNzcuNWMwLTE3LTYuNy0zMy4zLTE4LjctNDUuM0wyNTguNyAxOC43QzI0Ni43IDYuNyAyMzAuNSAwIDIxMy41IDBMNjQgMHpNMzI1LjUgMTc2TDIzMiAxNzZjLTEzLjMgMC0yNC0xMC43LTI0LTI0TDIwOCA1OC41IDMyNS41IDE3NnpNNjQgMzg0bDAtNjRjMC0xNy43IDE0LjMtMzIgMzItMzJsMTkyIDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJsMCA2NGMwIDE3LjctMTQuMyAzMi0zMiAzMkw5NiA0MTZjLTE3LjcgMC0zMi0xNC4zLTMyLTMyek04OCA2NGw0OCAwYzEzLjMgMCAyNCAxMC43IDI0IDI0cy0xMC43IDI0LTI0IDI0bC00OCAwYy0xMy4zIDAtMjQtMTAuNy0yNC0yNFM3NC43IDY0IDg4IDY0em0wIDk2bDQ4IDBjMTMuMyAwIDI0IDEwLjcgMjQgMjRzLTEwLjcgMjQtMjQgMjRsLTQ4IDBjLTEzLjMgMC0yNC0xMC43LTI0LTI0czEwLjctMjQgMjQtMjR6Il19LHdPZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJwZW50YWdvbiIsaWNvbjpbNTc2LDUxMixbXSwiZTc5MCIsIk0zMTYuNC0zLjFjLTE2LjgtMTIuMi0zOS42LTEyLjItNTYuNCAwTDM1LjMgMTYwLjJjLTE2LjggMTIuMi0yMy45IDMzLjktMTcuNCA1My43bDg1LjggMjY0LjFjNi40IDE5LjggMjQuOSAzMy4yIDQ1LjcgMzMuMmwyNzcuNyAwYzIwLjggMCAzOS4yLTEzLjQgNDUuNy0zMy4ybDg1LjgtMjY0LjFjNi40LTE5LjgtLjYtNDEuNC0xNy40LTUzLjdMMzE2LjQtMy4xeiJdfSxNT2U9e3ByZWZpeDoiZmFzIixpY29uTmFtZToicmVwdWJsaWNhbiIsaWNvbjpbNjQwLDUxMixbXSwiZjc1ZSIsIk0wIDE5MkMwIDEwMy42IDcxLjYgMzIgMTYwIDMybDIyNCAwYzg4LjQgMCAxNjAgNzEuNiAxNjAgMTYwbDAgNjQtNTQ0IDAgMC02NHptMTUyLTMyYTI0IDI0IDAgMSAwIC00OCAwIDI0IDI0IDAgMSAwIDQ4IDB6bTIzMiAyNGEyNCAyNCAwIDEgMCAwLTQ4IDI0IDI0IDAgMSAwIDAgNDh6TTI4MCAxNjBhMjQgMjQgMCAxIDAgLTQ4IDAgMjQgMjQgMCAxIDAgNDggMHpNMTI4IDI4OGw0MTYgMCAwIDExMmMwIDguOCA3LjIgMTYgMTYgMTZzMTYtNy4yIDE2LTE2bDAtNDhjMC0xNy43IDE0LjMtMzIgMzItMzJzMzIgMTQuMyAzMiAzMmwwIDQ4YzAgNDQuMi0zNS44IDgwLTgwIDgwcy04MC0zNS44LTgwLTgwbDAtNDgtMzIgMCAwIDk2YzAgMTcuNy0xNC4zIDMyLTMyIDMybC02NCAwYy0xNy43IDAtMzItMTQuMy0zMi0zMmwwLTY0LTE5MiAwIDAgNjRjMCAxNy43LTE0LjMgMzItMzIgMzJsLTY0IDBjLTE3LjcgMC0zMi0xNC4zLTMyLTMybDAtMTYwIDEyOCAweiJdfSxUUj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJzaG9wIixpY29uOls1NzYsNTEyLFsic3RvcmUtYWx0Il0sImY1NGYiLCJNMjEuNSAxODEuMUw3OC4zIDY3LjRDODkuMiA0NS43IDExMS4zIDMyIDEzNS42IDMybDMwNC45IDBjMjQuMiAwIDQ2LjQgMTMuNyA1Ny4yIDM1LjRsNTYuOCAxMTMuN2MzLjYgNy4yIDUuNSAxNS4xIDUuNSAyMy4yIDAgMjcuMy0yMS4yIDQ5LjctNDggNTEuNkw1MTIgNDQ4YzAgMTcuNy0xNC4zIDMyLTMyIDMycy0zMi0xNC4zLTMyLTMybDAtMTkyLTk2IDAgMCAxNzZjMCAyNi41LTIxLjUgNDgtNDggNDhsLTE5MiAwYy0yNi41IDAtNDgtMjEuNS00OC00OGwwLTE3Ni4xYy0yNi44LTEuOS00OC0yNC4zLTQ4LTUxLjYgMC04IDEuOS0xNiA1LjUtMjMuMnpNMTI4IDI1NmwwIDExMmMwIDguOCA3LjIgMTYgMTYgMTZsMTI4IDBjOC44IDAgMTYtNy4yIDE2LTE2bDAtMTEyLTE2MCAweiJdfSx6T2U9VFIsa209e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZmlsbSIsaWNvbjpbNDQ4LDUxMixbMTI3OTAyLDYyMzY4LCJmaWxtLWFsdCIsImZpbG0tc2ltcGxlIl0sImYwMDgiLCJNMCA5NkMwIDYwLjcgMjguNyAzMiA2NCAzMmwzMjAgMGMzNS4zIDAgNjQgMjguNyA2NCA2NGwwIDMyMGMwIDM1LjMtMjguNyA2NC02NCA2NEw2NCA0ODBjLTM1LjMgMC02NC0yOC43LTY0LTY0TDAgOTZ6TTQ4IDM2OGwwIDMyYzAgOC44IDcuMiAxNiAxNiAxNmwzMiAwYzguOCAwIDE2LTcuMiAxNi0xNmwwLTMyYzAtOC44LTcuMi0xNi0xNi0xNmwtMzIgMGMtOC44IDAtMTYgNy4yLTE2IDE2em0zMDQtMTZjLTguOCAwLTE2IDcuMi0xNiAxNmwwIDMyYzAgOC44IDcuMiAxNiAxNiAxNmwzMiAwYzguOCAwIDE2LTcuMiAxNi0xNmwwLTMyYzAtOC44LTcuMi0xNi0xNi0xNmwtMzIgMHpNNDggMjQwbDAgMzJjMCA4LjggNy4yIDE2IDE2IDE2bDMyIDBjOC44IDAgMTYtNy4yIDE2LTE2bDAtMzJjMC04LjgtNy4yLTE2LTE2LTE2bC0zMiAwYy04LjggMC0xNiA3LjItMTYgMTZ6bTMwNC0xNmMtOC44IDAtMTYgNy4yLTE2IDE2bDAgMzJjMCA4LjggNy4yIDE2IDE2IDE2bDMyIDBjOC44IDAgMTYtNy4yIDE2LTE2bDAtMzJjMC04LjgtNy4yLTE2LTE2LTE2bC0zMiAwek00OCAxMTJsMCAzMmMwIDguOCA3LjIgMTYgMTYgMTZsMzIgMGM4LjggMCAxNi03LjIgMTYtMTZsMC0zMmMwLTguOC03LjItMTYtMTYtMTZMNjQgOTZjLTguOCAwLTE2IDcuMi0xNiAxNnpNMzUyIDk2Yy04LjggMC0xNiA3LjItMTYgMTZsMCAzMmMwIDguOCA3LjIgMTYgMTYgMTZsMzIgMGM4LjggMCAxNi03LjIgMTYtMTZsMC0zMmMwLTguOC03LjItMTYtMTYtMTZsLTMyIDB6Il19LGtPZT1rbSxTT2U9a20sQ09lPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImJ1aWxkaW5nLWNpcmNsZS14bWFyayIsaWNvbjpbNTc2LDUxMixbXSwiZTRkNCIsIk05NiAwQzYwLjcgMCAzMiAyOC43IDMyIDY0bDAgMzg0YzAgMzUuMyAyOC43IDY0IDY0IDY0bDE4MCAwYy0xMC41LTE0LjYtMTktMzAuNy0yNS4xLTQ4bC03NC45IDAgMC04MGMwLTE3LjcgMTQuMy0zMiAzMi0zMmwzMiAwYzIgMCA0IC4yIDUuOSAuNSA2LTIzLjYgMTYuMy00NS40IDMwLjEtNjQuNWwtNCAwYy04LjggMC0xNi03LjItMTYtMTZsMC0zMmMwLTguOCA3LjItMTYgMTYtMTZsMzIgMGM4LjggMCAxNiA3LjIgMTYgMTZsMCA0YzI3LjUtMTkuOCA2MC4zLTMyLjQgOTYtMzUuNEw0MTYgNjRjMC0zNS4zLTI4LjctNjQtNjQtNjRMOTYgMHptMzIgMTEyYzAtOC44IDcuMi0xNiAxNi0xNmwzMiAwYzguOCAwIDE2IDcuMiAxNiAxNmwwIDMyYzAgOC44LTcuMiAxNi0xNiAxNmwtMzIgMGMtOC44IDAtMTYtNy4yLTE2LTE2bDAtMzJ6TTI3MiA5NmwzMiAwYzguOCAwIDE2IDcuMiAxNiAxNmwwIDMyYzAgOC44LTcuMiAxNi0xNiAxNmwtMzIgMGMtOC44IDAtMTYtNy4yLTE2LTE2bDAtMzJjMC04LjggNy4yLTE2IDE2LTE2ek0xMjggMjQwYzAtOC44IDcuMi0xNiAxNi0xNmwzMiAwYzguOCAwIDE2IDcuMiAxNiAxNmwwIDMyYzAgOC44LTcuMiAxNi0xNiAxNmwtMzIgMGMtOC44IDAtMTYtNy4yLTE2LTE2bDAtMzJ6TTQzMiA1NDRhMTQ0IDE0NCAwIDEgMCAwLTI4OCAxNDQgMTQ0IDAgMSAwIDAgMjg4em0yMi42LTE0NGwzNi43IDM2LjdjNi4yIDYuMiA2LjIgMTYuNCAwIDIyLjZzLTE2LjQgNi4yLTIyLjYgMGwtMzYuNy0zNi43LTM2LjcgMzYuN2MtNi4yIDYuMi0xNi40IDYuMi0yMi42IDBzLTYuMi0xNi40IDAtMjIuNmwzNi43LTM2LjctMzYuNy0zNi43Yy02LjItNi4yLTYuMi0xNi40IDAtMjIuNnMxNi40LTYuMiAyMi42IDBsMzYuNyAzNi43IDM2LjctMzYuN2M2LjItNi4yIDE2LjQtNi4yIDIyLjYgMHM2LjIgMTYuNCAwIDIyLjZMNDU0LjYgNDAweiJdfSxfT2U9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiY29tbWVudHMiLGljb246WzU3Niw1MTIsWzEyODQ5MCw2MTY3MF0sImYwODYiLCJNMzg0IDE0NGMwIDk3LjItODYgMTc2LTE5MiAxNzYtMjYuNyAwLTUyLjEtNS03NS4yLTE0TDM1LjIgMzQ5LjJjLTkuMyA0LjktMjAuNyAzLjItMjguMi00LjJzLTkuMi0xOC45LTQuMi0yOC4ybDM1LjYtNjcuMkMxNC4zIDIyMC4yIDAgMTgzLjYgMCAxNDQgMCA0Ni44IDg2LTMyIDE5Mi0zMlMzODQgNDYuOCAzODQgMTQ0em0wIDM2OGMtOTQuMSAwLTE3Mi40LTYyLjEtMTg4LjgtMTQ0IDEyMC0xLjUgMjI0LjMtODYuOSAyMzUuOC0yMDIuNyA4My4zIDE5LjIgMTQ1IDg4LjMgMTQ1IDE3MC43IDAgMzkuNi0xNC4zIDc2LjItMzguNCAxMDUuNmwzNS42IDY3LjJjNC45IDkuMyAzLjIgMjAuNy00LjIgMjguMnMtMTguOSA5LjItMjguMiA0LjJMNDU5LjIgNDk4Yy0yMy4xIDktNDguNSAxNC03NS4yIDE0eiJdfSxUT2U9e3ByZWZpeDoiZmFzIixpY29uTmFtZToidGFncyIsaWNvbjpbNTc2LDUxMixbXSwiZjAyYyIsIk00MDEuMiAzOS4xTDU0OS40IDE4OS40YzI3LjcgMjguMSAyNy43IDczLjEgMCAxMDEuMkwzOTMgNDQ4LjljLTkuMyA5LjQtMjQuNSA5LjUtMzMuOSAuMnMtOS41LTI0LjUtLjItMzMuOUw1MTUuMyAyNTYuOGM5LjItOS4zIDkuMi0yNC40IDAtMzMuN0wzNjcgNzIuOWMtOS4zLTkuNC05LjItMjQuNiAuMi0zMy45czI0LjYtOS4yIDMzLjkgLjJ6TTMyLjEgMjI5LjVMMzIuMSA5NmMwLTM1LjMgMjguNy02NCA2NC02NGwxMzMuNSAwYzE3IDAgMzMuMyA2LjcgNDUuMyAxOC43bDE0NCAxNDRjMjUgMjUgMjUgNjUuNSAwIDkwLjVMMjg1LjQgNDE4LjdjLTI1IDI1LTY1LjUgMjUtOTAuNSAwbC0xNDQtMTQ0Yy0xMi0xMi0xOC43LTI4LjMtMTguNy00NS4zem0xNDQtODUuNWEzMiAzMiAwIDEgMCAtNjQgMCAzMiAzMiAwIDEgMCA2NCAweiJdfSxMT2U9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZ3VuIixpY29uOls1NzYsNTEyLFtdLCJlMTliIiwiTTUyOCA1NmMwLTEzLjMtMTAuNy0yNC0yNC0yNHMtMjQgMTAuNy0yNCAyNGwwIDgtNDQ4IDBDMTQuMyA2NCAwIDc4LjMgMCA5NkwwIDIwOGMwIDE3LjcgMTQuMyAzMiAzMiAzMmwxMCAwYzIwLjggMCAzNi4xIDE5LjYgMzEgMzkuOEwzMyA0NDAuMmMtMi40IDkuNi0uMiAxOS43IDUuOCAyNy41UzU0LjEgNDgwIDY0IDQ4MGw5NiAwYzE0LjcgMCAyNy41LTEwIDMxLTI0LjJMMjE3IDM1MiAzMjEuNCAzNTJjMjMuNyAwIDQ0LjgtMTQuOSA1Mi43LTM3LjJsMjYuNy03NC44IDMxLjEgMGM4LjUgMCAxNi42LTMuNCAyMi42LTkuNGwyMi42LTIyLjYgNjYuNyAwYzE3LjcgMCAzMi0xNC4zIDMyLTMybDAtODBjMC0xNy43LTE0LjMtMzItMzItMzJsLTE2IDAgMC04ek0zMjEuNCAzMDRsLTkyLjUgMCAxNi02NCAxMDUgMC0yMSA1OC43Yy0xLjEgMy4yLTQuMiA1LjMtNy41IDUuM3pNODAgMTI4bDM4NCAwYzguOCAwIDE2IDcuMiAxNiAxNnMtNy4yIDE2LTE2IDE2TDgwIDE2MGMtOC44IDAtMTYtNy4yLTE2LTE2czcuMi0xNiAxNi0xNnoiXX0sbzg9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiY2lyY2xlLWNoZWNrIixpY29uOls1MTIsNTEyLFs2MTUzMywiY2hlY2stY2lyY2xlIl0sImYwNTgiLCJNMjU2IDUxMmEyNTYgMjU2IDAgMSAxIDAtNTEyIDI1NiAyNTYgMCAxIDEgMCA1MTJ6TTM3NCAxNDUuN2MtMTAuNy03LjgtMjUuNy01LjQtMzMuNSA1LjNMMjIxLjEgMzE1LjIgMTY5IDI2My4xYy05LjQtOS40LTI0LjYtOS40LTMzLjkgMHMtOS40IDI0LjYgMCAzMy45bDcyIDcyYzUgNSAxMS44IDcuNSAxOC44IDdzMTMuNC00LjEgMTcuNS05LjhMMzc5LjMgMTc5LjJjNy44LTEwLjcgNS40LTI1LjctNS4zLTMzLjV6Il19LCRPZT1vOCxBT2U9e3ByZWZpeDoiZmFzIixpY29uTmFtZToic2NvcnBpbyIsaWNvbjpbNjQwLDUxMixbXSwiZTg0ZSIsIk0zNjggMzJjNjEuOSAwIDExMiA1MC4xIDExMiAxMTJsMCAyODkuN2MwIDcuOSA2LjQgMTQuMyAxNC4zIDE0LjMgMy45IDAgNy42LTEuNiAxMC4yLTQuM2w0MC4xLTQxLjEtOS43LTkuN2MtNi45LTYuOS04LjktMTcuMi01LjItMjYuMlM1NDIuMyAzNTIgNTUyIDM1Mmw2NCAwIDIuNSAuMWMxMi4xIDEuMiAyMS41IDExLjUgMjEuNSAyMy45bDAgNjQtLjMgMy42Yy0xLjIgOC4yLTYuNyAxNS4zLTE0LjUgMTguNi05IDMuNy0xOS4zIDEuNi0yNi4yLTUuMmwtOS4xLTkuMS0zOS42IDQwLjZjLTE0LjcgMTUuMS0zNC45IDIzLjYtNTYgMjMuNi00My4zIDAtNzguMy0zNS4xLTc4LjMtNzguM0w0MTYgMTQ0YzAtMjYuNS0yMS41LTQ4LTQ4LTQ4cy00OCAyMS41LTQ4IDQ4bDAgMzA0YzAgMTcuNy0xNC4zIDMyLTMyIDMycy0zMi0xNC4zLTMyLTMybDAtMzA0YzAtMjYuNS0yMS41LTQ4LTQ4LTQ4cy00OCAyMS41LTQ4IDQ4bDAgMzA0YzAgMTcuNy0xNC4zIDMyLTMyIDMycy0zMi0xNC4zLTMyLTMybDAtMzIwYzAtMTYuNi0xMi42LTMwLjItMjguNy0zMS44bC02LjYtLjNDNDQuNiA5NC4yIDMyIDgwLjYgMzIgNjQgMzIgNDYuMyA0Ni4zIDMyIDY0IDMyIDkxIDMyIDExNS4zIDQzLjEgMTMyLjcgNjEgMTUyLjYgNDMgMTc5IDMyIDIwOCAzMiAyMzkuMyAzMiAyNjcuNyA0NC45IDI4OCA2NS43IDMwOC4zIDQ0LjkgMzM2LjYgMzIgMzY4IDMyeiJdfSxMUj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJpZC1jYXJkLWNsaXAiLGljb246WzU3Niw1MTIsWyJpZC1jYXJkLWFsdCJdLCJmNDdmIiwiTTI1Ni0zMmw2NCAwYzE3LjcgMCAzMiAxNC4zIDMyIDMybDAgNjQtMTI4IDAgMC02NGMwLTE3LjcgMTQuMy0zMiAzMi0zMnpNNjQgMzJsMTEyIDAgMCAzMmMwIDI2LjUgMjEuNSA0OCA0OCA0OGwxMjggMGMyNi41IDAgNDgtMjEuNSA0OC00OGwwLTMyIDExMiAwYzM1LjMgMCA2NCAyOC43IDY0IDY0bDAgMzIwYzAgMzUuMy0yOC43IDY0LTY0IDY0TDY0IDQ4MGMtMzUuMyAwLTY0LTI4LjctNjQtNjRMMCA5NkMwIDYwLjcgMjguNyAzMiA2NCAzMnpNMTc2IDQwMGMwIDguOCA3LjIgMTYgMTYgMTZsMTkyIDBjOC44IDAgMTYtNy4yIDE2LTE2IDAtNDQuMi0zNS44LTgwLTgwLTgwbC02NCAwYy00NC4yIDAtODAgMzUuOC04MCA4MHpNMjg4IDI4MGE1NiA1NiAwIDEgMCAwLTExMiA1NiA1NiAwIDEgMCAwIDExMnoiXX0sRE9lPUxSLEVPZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJtb29uIixpY29uOls1MTIsNTEyLFsxMjc3NjksOTIxNF0sImYxODYiLCJNMjU2IDBDMTE0LjYgMCAwIDExNC42IDAgMjU2UzExNC42IDUxMiAyNTYgNTEyYzY4LjggMCAxMzEuMy0yNy4yIDE3Ny4zLTcxLjQgNy4zLTcgOS40LTE3LjkgNS4zLTI3LjFzLTEzLjctMTQuOS0yMy44LTE0LjFjLTQuOSAuNC05LjggLjYtMTQuOCAuNi0xMDEuNiAwLTE4NC04Mi40LTE4NC0xODQgMC03Mi4xIDQxLjUtMTM0LjYgMTAyLjEtMTY0LjggOS4xLTQuNSAxNC4zLTE0LjMgMTMuMS0yNC40UzMyMi42IDguNSAzMTIuNyA2LjNDMjk0LjQgMi4yIDI3NS40IDAgMjU2IDB6Il19LFBPZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJvaWwtd2VsbCIsaWNvbjpbNTc2LDUxMixbXSwiZTUzMiIsIk01MjguMyA2MS4zYy0xMS40LTQyLjctNTUuMy02OC05OC01Ni42TDQxNC45IDguOEMzOTcuOCAxMy40IDM4Ny43IDMxIDM5Mi4zIDQ4bDI0LjUgOTEuNC0xMDguMiAyOC4xLTYuMy0xOC4xQzI5Ny43IDEzNi42IDI4NS42IDEyOCAyNzIgMTI4cy0yNS43IDguNi0zMC4yIDIxLjRsLTEzLjYgMzktMTMyLjIgMzQuMyAwLTM4LjZjMC0xMy4zLTEwLjctMjQtMjQtMjRzLTI0IDEwLjctMjQgMjRsMCAyNjQtMTYgMGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJzMTQuMyAzMiAzMiAzMmw1MTIgMGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMmwtMTM3LjMgMC02MS40LTE3NS40LTYyLjIgMTYuMSAyMi4xIDYzLjItNjYuNiAwIDE5LjktNTYuOS03NC42IDE5LjMtNDYuNyAxMzMuNS00MS4zIDAgMC0xNTkuMiAzMzcuNC04Ny41IDI1LjIgOTRjNC42IDE3LjEgMjIuMSAyNy4yIDM5LjIgMjIuNmwxNS41LTQuMWM0Mi43LTExLjQgNjgtNTUuMyA1Ni42LTk4TDUyOC4zIDYxLjN6TTIwNS4xIDQ0OGwxNi44LTQ4IDEwMC4yIDAgMTYuOCA0OC0xMzMuOCAweiJdfSwkUj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJ0YWNob2dyYXBoLWRpZ2l0YWwiLGljb246WzU3Niw1MTIsWyJkaWdpdGFsLXRhY2hvZ3JhcGgiXSwiZjU2NiIsIk0wIDEyOEMwIDkyLjcgMjguNyA2NCA2NCA2NGw0NDggMGMzNS4zIDAgNjQgMjguNyA2NCA2NGwwIDI1NmMwIDM1LjMtMjguNyA2NC02NCA2NEw2NCA0NDhjLTM1LjMgMC02NC0yOC43LTY0LTY0TDAgMTI4em02NCAzMmwwIDMyYzAgMTcuNyAxNC4zIDMyIDMyIDMybDE2MCAwYzE3LjcgMCAzMi0xNC4zIDMyLTMybDAtMzJjMC0xNy43LTE0LjMtMzItMzItMzJMOTYgMTI4Yy0xNy43IDAtMzIgMTQuMy0zMiAzMnpNODggMzUyYy0xMy4zIDAtMjQgMTAuNy0yNCAyNHMxMC43IDI0IDI0IDI0bDEzNiAwYzEzLjMgMCAyNC0xMC43IDI0LTI0cy0xMC43LTI0LTI0LTI0TDg4IDM1MnptMjU2IDBjLTEzLjMgMC0yNCAxMC43LTI0IDI0czEwLjcgMjQgMjQgMjRsMTQ0IDBjMTMuMyAwIDI0LTEwLjcgMjQtMjRzLTEwLjctMjQtMjQtMjRsLTE0NCAwek00OTYgMTkyYTY0IDY0IDAgMSAwIC0xMjggMCA2NCA2NCAwIDEgMCAxMjggMHpNODggMzEyYTI0IDI0IDAgMSAwIDAtNDggMjQgMjQgMCAxIDAgMCA0OHptMTA0LTI0YTI0IDI0IDAgMSAwIC00OCAwIDI0IDI0IDAgMSAwIDQ4IDB6bTU2IDI0YTI0IDI0IDAgMSAwIDAtNDggMjQgMjQgMCAxIDAgMCA0OHoiXX0sSU9lPSRSLEFSPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InRhYmxldCIsaWNvbjpbNDQ4LDUxMixbInRhYmxldC1hbmRyb2lkIl0sImYzZmIiLCJNNjQgMEMyOC43IDAgMCAyOC43IDAgNjRMMCA0NDhjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMzIwIDBjMzUuMyAwIDY0LTI4LjcgNjQtNjRsMC0zODRjMC0zNS4zLTI4LjctNjQtNjQtNjRMNjQgMHpNMTg0IDQwMGw4MCAwYzEzLjMgMCAyNCAxMC43IDI0IDI0cy0xMC43IDI0LTI0IDI0bC04MCAwYy0xMy4zIDAtMjQtMTAuNy0yNC0yNHMxMC43LTI0IDI0LTI0eiJdfSxOT2U9QVIsRzU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToicnVibGUtc2lnbiIsaWNvbjpbNDQ4LDUxMixbODM4MSwicm91YmxlIiwicnViIiwicnVibGUiXSwiZjE1OCIsIk0xMTIgMzJDOTQuMyAzMiA4MCA0Ni4zIDgwIDY0bDAgMjA4LTQwIDBjLTEzLjMgMC0yNCAxMC43LTI0IDI0czEwLjcgMjQgMjQgMjRsNDAgMCAwIDQ4LTQwIDBjLTEzLjMgMC0yNCAxMC43LTI0IDI0czEwLjcgMjQgMjQgMjRsNDAgMCAwIDMyYzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJsMC0zMiAxNTIgMGMxMy4zIDAgMjQtMTAuNyAyNC0yNHMtMTAuNy0yNC0yNC0yNGwtMTUyIDAgMC00OCAxMTIgMGM3OS41IDAgMTQ0LTY0LjUgMTQ0LTE0NFMzMzUuNSAzMiAyNTYgMzJMMTEyIDMyek0yNTYgMjU2bC0xMTIgMCAwLTE2MCAxMTIgMGM0NC4yIDAgODAgMzUuOCA4MCA4MHMtMzUuOCA4MC04MCA4MHoiXX0sRk9lPUc1LE9PZT1HNSxST2U9RzUsQk9lPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImNsb3NlZC1jYXB0aW9uaW5nIixpY29uOls1MTIsNTEyLFtdLCJmMjBhIiwiTTAgMTI4QzAgOTIuNyAyOC43IDY0IDY0IDY0bDM4NCAwYzM1LjMgMCA2NCAyOC43IDY0IDY0bDAgMjU2YzAgMzUuMy0yOC43IDY0LTY0IDY0TDY0IDQ0OGMtMzUuMyAwLTY0LTI4LjctNjQtNjRMMCAxMjh6bTE1MiA4MGwzMiAwYzQuNCAwIDggMy42IDggOCAwIDEzLjMgMTAuNyAyNCAyNCAyNHMyNC0xMC43IDI0LTI0YzAtMzAuOS0yNS4xLTU2LTU2LTU2bC0zMiAwYy0zMC45IDAtNTYgMjUuMS01NiA1NmwwIDgwYzAgMzAuOSAyNS4xIDU2IDU2IDU2bDMyIDBjMzAuOSAwIDU2LTI1LjEgNTYtNTYgMC0xMy4zLTEwLjctMjQtMjQtMjRzLTI0IDEwLjctMjQgMjRjMCA0LjQtMy42IDgtOCA4bC0zMiAwYy00LjQgMC04LTMuNi04LThsMC04MGMwLTQuNCAzLjYtOCA4LTh6bTE2OCA4YzAtNC40IDMuNi04IDgtOGwzMiAwYzQuNCAwIDggMy42IDggOCAwIDEzLjMgMTAuNyAyNCAyNCAyNHMyNC0xMC43IDI0LTI0YzAtMzAuOS0yNS4xLTU2LTU2LTU2bC0zMiAwYy0zMC45IDAtNTYgMjUuMS01NiA1NmwwIDgwYzAgMzAuOSAyNS4xIDU2IDU2IDU2bDMyIDBjMzAuOSAwIDU2LTI1LjEgNTYtNTYgMC0xMy4zLTEwLjctMjQtMjQtMjRzLTI0IDEwLjctMjQgMjRjMCA0LjQtMy42IDgtOCA4bC0zMiAwYy00LjQgMC04LTMuNi04LThsMC04MHoiXX0sSE9lPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InBlbiIsaWNvbjpbNTEyLDUxMixbMTI4Mzk0XSwiZjMwNCIsIk0zNTIuOSAyMS4yTDMwOCA2Ni4xIDQ0NS45IDIwNCA0OTAuOCAxNTkuMUM1MDQuNCAxNDUuNiA1MTIgMTI3LjIgNTEyIDEwOHMtNy42LTM3LjYtMjEuMi01MS4xTDQ1NS4xIDIxLjJDNDQxLjYgNy42IDQyMy4yIDAgNDA0IDBzLTM3LjYgNy42LTUxLjEgMjEuMnpNMjc0LjEgMTAwTDU4LjkgMzE1LjFjLTEwLjcgMTAuNy0xOC41IDI0LjEtMjIuNiAzOC43TC45IDQ4MS42Yy0yLjMgOC4zIDAgMTcuMyA2LjIgMjMuNHMxNS4xIDguNSAyMy40IDYuMmwxMjcuOC0zNS41YzE0LjYtNC4xIDI3LjktMTEuOCAzOC43LTIyLjZMNDEyIDIzNy45IDI3NC4xIDEwMHoiXX0scU9lPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InBsYW5lIixpY29uOls1NzYsNTEyLFtdLCJmMDcyIiwiTTUyMCAyMDBjMzAuOSAwIDU2IDI1LjEgNTYgNTZzLTI1LjEgNTYtNTYgNTZsLTEyNy4zIDAtMTU5LjIgMTczLjZjLTYuMSA2LjYtMTQuNiAxMC40LTIzLjYgMTAuNGwtNDMuNyAwYy0xMC45IDAtMTguNi0xMC43LTE1LjItMjEuMWw1NC4zLTE2Mi45LTk5LjcgMC01Mi44IDY2Yy0zIDMuOC03LjYgNi0xMi41IDZsLTE5LjggMGMtMTAuNCAwLTE4LTkuOC0xNS41LTE5LjlMMzIgMjU2IDUgMTQ3LjlDMi40IDEzNy44IDEwLjEgMTI4IDIwLjUgMTI4bDE5LjggMGM0LjkgMCA5LjUgMi4yIDEyLjUgNmw1Mi44IDY2IDk5LjcgMC01NC4zLTE2Mi45QzE0Ny42IDI2LjcgMTU1LjMgMTYgMTY2LjIgMTZsNDMuNyAwYzkgMCAxNy41IDMuOCAyMy42IDEwLjRMMzkyLjcgMjAwIDUyMCAyMDB6Il19LFZPZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJpbWFnZXMiLGljb246WzU3Niw1MTIsW10sImYzMDIiLCJNOTYgOTZjMC0zNS4zIDI4LjctNjQgNjQtNjRsMzIwIDBjMzUuMyAwIDY0IDI4LjcgNjQgNjRsMCAyNTZjMCAzNS4zLTI4LjcgNjQtNjQgNjRsLTMyMCAwYy0zNS4zIDAtNjQtMjguNy02NC02NEw5NiA5NnpNMjQgMTI4YzEzLjMgMCAyNCAxMC43IDI0IDI0bDAgMjk2YzAgOC44IDcuMiAxNiAxNiAxNmwzNjAgMGMxMy4zIDAgMjQgMTAuNyAyNCAyNHMtMTAuNyAyNC0yNCAyNEw2NCA1MTJjLTM1LjMgMC02NC0yOC43LTY0LTY0TDAgMTUyYzAtMTMuMyAxMC43LTI0IDI0LTI0em0xNjggMzJhMzIgMzIgMCAxIDAgMC02NCAzMiAzMiAwIDEgMCAwIDY0em0xOTYuNSAxMS41Yy00LjQtNy4xLTEyLjEtMTEuNS0yMC41LTExLjVzLTE2LjEgNC40LTIwLjUgMTEuNWwtNTYuMyA5Mi4xLTI0LjUtMzAuNmMtNC42LTUuNy0xMS40LTktMTguNy05cy0xNC4yIDMuMy0xOC43IDlsLTY0IDgwYy01LjggNy4yLTYuOSAxNy4xLTIuOSAyNS40UzE3NC44IDM1MiAxODQgMzUybDI3MiAwYzguNyAwIDE2LjctNC43IDIwLjktMTIuM3M0LjEtMTYuOC0uNS0yNC4zbC04OC0xNDR6Il19LERSPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6Im1vYmlsZS1zY3JlZW4iLGljb246WzM4NCw1MTIsWyJtb2JpbGUtYW5kcm9pZC1hbHQiXSwiZjNjZiIsIk0xNiA2NEMxNiAyOC43IDQ0LjcgMCA4MCAwTDMwNCAwYzM1LjMgMCA2NCAyOC43IDY0IDY0bDAgMzg0YzAgMzUuMy0yOC43IDY0LTY0IDY0TDgwIDUxMmMtMzUuMyAwLTY0LTI4LjctNjQtNjRMMTYgNjR6TTEyOCA0NDBjMCAxMy4zIDEwLjcgMjQgMjQgMjRsODAgMGMxMy4zIDAgMjQtMTAuNyAyNC0yNHMtMTAuNy0yNC0yNC0yNGwtODAgMGMtMTMuMyAwLTI0IDEwLjctMjQgMjR6TTMwNCA2NGwtMjI0IDAgMCAzMDQgMjI0IDAgMC0zMDR6Il19LGpPZT1EUixVT2U9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZ3VhcmFuaS1zaWduIixpY29uOlszODQsNTEyLFtdLCJlMTlhIiwiTTE5MiAwYy0xMy4zIDAtMjQgMTAuNy0yNCAyNGwwIDQxLjVDNzMuMyA3Ny4zIDAgMTU4LjEgMCAyNTZTNzMuMyA0MzQuNyAxNjggNDQ2LjVsMCA0MS41YzAgMTMuMyAxMC43IDI0IDI0IDI0czI0LTEwLjcgMjQtMjRsMC00MS41Yzk0LjctMTEuOCAxNjgtOTIuNiAxNjgtMTkwLjUgMC0xNy43LTE0LjMtMzItMzItMzJsLTEzNiAwIDAtOTMuOGMyNS4zIDQuOCA0Ny45IDE3IDY1LjYgMzQuMyAxMi42IDEyLjQgMzIuOSAxMi4yIDQ1LjMtLjRzMTIuMi0zMi45LS41LTQ1LjNDMjk3LjIgOTAuMiAyNTguOCA3MC44IDIxNiA2NS41TDIxNiAyNGMwLTEzLjMtMTAuNy0yNC0yNC0yNHpNMTY4IDEzMC4ybDAgMjUxLjVDMTA4LjggMzcwLjUgNjQgMzE4LjUgNjQgMjU2czQ0LjgtMTE0LjUgMTA0LTEyNS44em00OCAyNTEuNWwwLTkzLjggMTAwIDBjLTEyLjMgNDcuNi01MS4yIDg0LjUtMTAwIDkzLjh6Il19LEVSPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImJhZy1zaG9wcGluZyIsaWNvbjpbNDQ4LDUxMixbInNob3BwaW5nLWJhZyJdLCJmMjkwIiwiTTE2MCA4MGMwLTM1LjMgMjguNy02NCA2NC02NHM2NCAyOC43IDY0IDY0bDAgNDgtMTI4IDAgMC00OHptLTQ4IDQ4bC02NCAwYy0yNi41IDAtNDggMjEuNS00OCA0OEwwIDM4NGMwIDUzIDQzIDk2IDk2IDk2bDI1NiAwYzUzIDAgOTYtNDMgOTYtOTZsMC0yMDhjMC0yNi41LTIxLjUtNDgtNDgtNDhsLTY0IDAgMC00OGMwLTYxLjktNTAuMS0xMTItMTEyLTExMlMxMTIgMTguMSAxMTIgODBsMCA0OHptMjQgNDhhMjQgMjQgMCAxIDEgMCA0OCAyNCAyNCAwIDEgMSAwLTQ4em0xNTIgMjRhMjQgMjQgMCAxIDEgNDggMCAyNCAyNCAwIDEgMSAtNDggMHoiXX0sV09lPUVSLFBSPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImNpcmNsZS1yaWdodCIsaWNvbjpbNTEyLDUxMixbNjE4MzgsImFycm93LWFsdC1jaXJjbGUtcmlnaHQiXSwiZjM1YSIsIk0wIDI1NmEyNTYgMjU2IDAgMSAwIDUxMiAwIDI1NiAyNTYgMCAxIDAgLTUxMiAwem0zODcuMyAxMS4zbC0xMDQgMTA0Yy00LjYgNC42LTExLjUgNS45LTE3LjQgMy41UzI1NiAzNjYuNSAyNTYgMzYwbDAtNTYtOTYgMGMtMTcuNyAwLTMyLTE0LjMtMzItMzJsMC0zMmMwLTE3LjcgMTQuMy0zMiAzMi0zMmw5NiAwIDAtNTZjMC02LjUgMy45LTEyLjMgOS45LTE0LjhzMTIuOS0xLjEgMTcuNCAzLjVsMTA0IDEwNGM2LjIgNi4yIDYuMiAxNi40IDAgMjIuNnoiXX0sR09lPVBSLElSPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InBob25lLXZvbHVtZSIsaWNvbjpbNTc2LDUxMixbInZvbHVtZS1jb250cm9sLXBob25lIl0sImYyYTAiLCJNMzQ0LTMyYzEyOC4xIDAgMjMyIDEwMy45IDIzMiAyMzIgMCAxMy4zLTEwLjcgMjQtMjQgMjRzLTI0LTEwLjctMjQtMjRjMC0xMDEuNi04Mi40LTE4NC0xODQtMTg0LTEzLjMgMC0yNC0xMC43LTI0LTI0czEwLjctMjQgMjQtMjR6bTggMTkyYTMyIDMyIDAgMSAxIDAgNjQgMzIgMzIgMCAxIDEgMC02NHpNMzIwIDg4YzAtMTMuMyAxMC43LTI0IDI0LTI0IDc1LjEgMCAxMzYgNjAuOSAxMzYgMTM2IDAgMTMuMy0xMC43IDI0LTI0IDI0cy0yNC0xMC43LTI0LTI0YzAtNDguNi0zOS40LTg4LTg4LTg4LTEzLjMgMC0yNC0xMC43LTI0LTI0ek0xNDQuMSAxLjRjMTkuNy01LjQgNDAuMyA0LjcgNDguMSAyMy41bDQwLjUgOTcuM2M2LjkgMTYuNSAyLjEgMzUuNi0xMS44IDQ3bC00NC4xIDM2LjFjMzIuNSA3MS42IDg5IDEzMCAxNTkuMyAxNjQuOUwzNzQuNyAzMjNjMTEuMy0xMy45IDMwLjQtMTguNiA0Ny0xMS44TDUxOSAzNTEuOGMxOC44IDcuOCAyOC45IDI4LjQgMjMuNSA0OC4xbC0xLjUgNS41QzUyMy40IDQ3MC4xIDQ2MC45IDUyNS4zIDM4NC42IDUwOS4yIDIwOS42IDQ3Mi4xIDcxLjkgMzM0LjQgMzQuOCAxNTkuNCAxOC43IDgzLjEgNzMuOSAyMC42IDEzOC41IDIuOWw1LjUtMS41eiJdfSxZT2U9SVIsWk9lPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImN1YmVzIixpY29uOls1MTIsNTEyLFtdLCJmMWIzIiwiTTI4NC0xLjNjLTE3LjMtMTAtMzguNy0xMC01NiAwTDE0My44IDQ3LjNjLTE3LjMgMTAtMjggMjguNS0yOCA0OC41bDAgMTAxLjktODguMyA1MWMtMTcuMyAxMC0yOCAyOC41LTI4IDQ4LjVsMCA5Ny4zYzAgMjAgMTAuNyAzOC41IDI4IDQ4LjVsODQuMyA0OC42YzE3LjMgMTAgMzguNyAxMCA1NiAwbDg4LjMtNTEgODguMyA1MWMxNy4zIDEwIDM4LjcgMTAgNTYgMEw0ODQuNSA0NDNjMTcuMy0xMCAyOC0yOC41IDI4LTQ4LjVsMC05Ny4zYzAtMjAtMTAuNy0zOC41LTI4LTQ4LjVsLTg4LjMtNTEgMC0xMDEuOWMwLTIwLTEwLjctMzguNS0yOC00OC41TDI4NC0xLjN6TTIzMiAyOTIuNmwwIDEwNi41LTg4LjMgNTFjLTEuMiAuNy0yLjYgMS4xLTQgMS4xbDAtMTA1LjMgOTIuMy01My4zem0yMzEuNCAuNmMuNyAxLjIgMS4xIDIuNiAxLjEgNGwwIDk3LjNjMCAyLjktMS41IDUuNS00IDYuOWwtODQuMyA0OC42Yy0xLjIgLjctMi42IDEuMS00IDEuMWwwLTEwNS4zIDkxLjItNTIuNnpNMzQ4LjMgOTUuOGwwIDEwMS45LTkyLjMgNTMuMyAwLTEwNi41IDkxLjItNTIuNmMuNyAxLjIgMS4xIDIuNiAxLjEgNHoiXX0sWE9lPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InBob25lIixpY29uOls1MTIsNTEyLFsxMjgyMjIsMTI4Mzc5XSwiZjA5NSIsIk0xNjAuMiAyNUMxNTIuMyA2LjEgMTMxLjctMy45IDExMi4xIDEuNGwtNS41IDEuNWMtNjQuNiAxNy42LTExOS44IDgwLjItMTAzLjcgMTU2LjQgMzcuMSAxNzUgMTc0LjggMzEyLjcgMzQ5LjggMzQ5LjggNzYuMyAxNi4yIDEzOC44LTM5LjEgMTU2LjQtMTAzLjdsMS41LTUuNWM1LjQtMTkuNy00LjctNDAuMy0yMy41LTQ4LjFsLTk3LjMtNDAuNWMtMTYuNS02LjktMzUuNi0yLjEtNDcgMTEuOGwtMzguNiA0Ny4yQzIzMy45IDMzNS40IDE3Ny4zIDI3NyAxNDQuOCAyMDUuM0wxODkgMTY5LjNjMTMuOS0xMS4zIDE4LjYtMzAuNCAxMS44LTQ3TDE2MC4yIDI1eiJdfSxLT2U9e3ByZWZpeDoiZmFzIixpY29uTmFtZToidG9yaWktZ2F0ZSIsaWNvbjpbNDQ4LDUxMixbOTk2MV0sImY2YTEiLCJNMCA5NkwwIDI4LjVDMCAyMS42IDUuNiAxNiAxMi41IDE2IDE0LjggMTYgMTcgMTYuNiAxOSAxNy44TDU4IDQxLjJDODIuOSA1Ni4xIDExMS4zIDY0IDE0MC4zIDY0bDE2Ny40IDBjMjkgMCA1Ny41LTcuOSA4Mi4zLTIyLjhsMzktMjMuNGMxLjktMS4yIDQuMi0xLjggNi40LTEuOCA2LjkgMCAxMi41IDUuNiAxMi41IDEyLjVMNDQ4IDk2YzAgMzUuMy0yOC43IDY0LTY0IDY0bDAgNjQgMTYgMGMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMmwtMTYgMCAwIDE5MmMwIDE3LjctMTQuMyAzMi0zMiAzMnMtMzItMTQuMy0zMi0zMmwwLTE5Mi0xOTIgMCAwIDE5MmMwIDE3LjctMTQuMyAzMi0zMiAzMnMtMzItMTQuMy0zMi0zMmwwLTE5Mi0xNiAwYy0xNy43IDAtMzItMTQuMy0zMi0zMnMxNC4zLTMyIDMyLTMybDE2IDAgMC02NEMyOC43IDE2MCAwIDEzMS4zIDAgOTZ6TTEyOCAyMjRsNjQgMCAwLTY0LTY0IDAgMCA2NHptMTI4IDBsNjQgMCAwLTY0LTY0IDAgMCA2NHoiXX0sUU9lPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImJhY29uIixpY29uOls1NzYsNTEyLFsxMjkzNjNdLCJmN2U1IiwiTTU1NyA5Ni43YzE0LjQgMTQuNCAxMi40IDM4LjQtNC4zIDUwLjJsLTY0LjYgNDUuN2MtNDMuNyAzMC45LTc5LjIgNzEuOS0xMDMuNCAxMTkuNmwtMjUuMyA0OS44Yy0yNS4xIDQ5LjMtNjIuMSA5MS41LTEwNy44IDEyMi42bC03NC4xIDUwLjZjLTEzLjEgOC45LTMwLjcgNy4zLTQxLjgtMy45bC00NC45LTQ0LjkgODYuNS02Ni41YzQyLjMtMzIuNSA3Ni43LTc0LjMgMTAwLjYtMTIybDI0LjUtNDkuMWMyNC41LTQ5IDYxLjgtOTAuNiAxMDcuOS0xMjAuMmwxMDguNy02OS45IDM4IDM4ek00ODQuMiAyMy45TDM4NC4zIDg4LjJjLTUzLjQgMzQuMy05Ni41IDgyLjQtMTI0LjkgMTM5LjFsLTI0LjUgNDkuMWMtMjAuNiA0MS4zLTUwLjMgNzcuMy04Ni45IDEwNS40bC05MS40IDcwLjMtMzYuOS0zNi45Yy0xNC40LTE0LjQtMTIuNC0zOC40IDQuMy01MC4ybDY0LjYtNDUuN2M0My43LTMwLjkgNzkuMi03MS45IDEwMy40LTExOS42bDI1LjMtNDkuOEMyNDIuMyAxMDAuOCAyNzkuMyA1OC42IDMyNSAyNy40bDc0LjEtNTAuNmMxMy4xLTguOSAzMC42LTcuMyA0MS44IDMuOWw0My4zIDQzLjN6Il19LEpPZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJwZXJzb24tZmFsbGluZy1idXJzdCIsaWNvbjpbNTc2LDUxMixbXSwiZTU0NyIsIk0yNTYgMGMxNy43IDAgMzIgMTQuMyAzMiAzMmwwIDUuNGMwIDU1LjItMjMuNyAxMDctNjMuOSAxNDMuMWw2Mi45IDc1LjUgODkgMGMxNS4xIDAgMjkuMyA3LjEgMzguNCAxOS4ybDQzLjIgNTcuNmMxMC42IDE0LjEgNy43IDM0LjItNi40IDQ0LjhzLTM0LjIgNy43LTQ0LjgtNi40TDM2OCAzMjAgMjYzLjIgMzIwIDM3Ni44IDQ1OS44YzExLjEgMTMuNyA5LjEgMzMuOS00LjcgNDVzLTMzLjkgOS4xLTQ1LTQuN0wxMzcuNCAyNjYuNmMtNi4xIDE1LTkuNCAzMS4zLTkuNCA0OGwwIDY5LjRjMCAxNy43LTE0LjMgMzItMzIgMzJzLTMyLTE0LjMtMzItMzJsMC02OS40YzAtNjcuNCAzNS40LTEyOS45IDkzLjItMTY0LjZsNC42LTIuOEMyMDAuNCAxMjQgMjI0IDgyLjQgMjI0IDM3LjRsMC01LjRjMC0xNy43IDE0LjMtMzIgMzItMzJ6TTE2IDg4QTU2IDU2IDAgMSAxIDEyOCA4OCA1NiA1NiAwIDEgMSAxNiA4OHptMzc2LTcuOWMwIDEzLjMtMTAuNyAyNC0yNCAyNHMtMjQtMTAuNy0yNC0yNGwwLTQ4YzAtMTMuMyAxMC43LTI0IDI0LTI0czI0IDEwLjcgMjQgMjRsMCA0OHptMTA0IDE1MmMtMTMuMyAwLTI0LTEwLjctMjQtMjRzMTAuNy0yNCAyNC0yNGw0OCAwYzEzLjMgMCAyNCAxMC43IDI0IDI0cy0xMC43IDI0LTI0IDI0bC00OCAwem0tNTQuNS05Ny41Yy05LjQtOS40LTkuNC0yNC42IDAtMzMuOWwzMy45LTMzLjljOS40LTkuNCAyNC42LTkuNCAzMy45IDBzOS40IDI0LjYgMCAzMy45bC0zMy45IDMzLjljLTkuNCA5LjQtMjQuNiA5LjQtMzMuOSAweiJdfSxOUj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJxdW90ZS1yaWdodCIsaWNvbjpbNDQ4LDUxMixbODIyMSwicXVvdGUtcmlnaHQtYWx0Il0sImYxMGUiLCJNNDQ4IDI5NmMwIDY2LjMtNTMuNyAxMjAtMTIwIDEyMGwtOCAwYy0xNy43IDAtMzItMTQuMy0zMi0zMnMxNC4zLTMyIDMyLTMybDggMGMzMC45IDAgNTYtMjUuMSA1Ni01NmwwLTgtNjQgMGMtMzUuMyAwLTY0LTI4LjctNjQtNjRsMC02NGMwLTM1LjMgMjguNy02NCA2NC02NGw2NCAwYzM1LjMgMCA2NCAyOC43IDY0IDY0bDAgMTM2em0tMjU2IDBjMCA2Ni4zLTUzLjcgMTIwLTEyMCAxMjBsLTggMGMtMTcuNyAwLTMyLTE0LjMtMzItMzJzMTQuMy0zMiAzMi0zMmw4IDBjMzAuOSAwIDU2LTI1LjEgNTYtNTZsMC04LTY0IDBjLTM1LjMgMC02NC0yOC43LTY0LTY0bDAtNjRjMC0zNS4zIDI4LjctNjQgNjQtNjRsNjQgMGMzNS4zIDAgNjQgMjguNyA2NCA2NGwwIDEzNnoiXX0sZVJlPU5SLHRSZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJob3VzZS1tZWRpY2FsLWZsYWciLGljb246WzY0MCw1MTIsW10sImU1MTQiLCJNNDgwIDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJsOTYgMGMxNy43IDAgMzIgMTQuMyAzMiAzMmwwIDk2YzAgMTcuNy0xNC4zIDMyLTMyIDMybC05NiAwIDAgMjg4YzAgMTcuNy0xNC4zIDMyLTMyIDMycy0zMi0xNC4zLTMyLTMybDAtNDQ4YzAtMTcuNyAxNC4zLTMyIDMyLTMyek0yNjcuNSA1OS4xTDQwMCAxODYuOSA0MDAgNTAzLjRjLTkuNCA1LjQtMjAuMyA4LjYtMzIgOC42bC0yNTYgMGMtMzUuMyAwLTY0LTI4LjctNjQtNjRsMC0xNDQtMTkuOSAwQzEyLjYgMzA0IDAgMjkxLjQgMCAyNzUuOSAwIDI2OC4zIDMuMSAyNjEgOC42IDI1NS43TDIxMi41IDU5LjFDMjE5LjkgNTIgMjI5LjcgNDggMjQwIDQ4czIwLjEgNCAyNy41IDExLjF6TTIwNC44IDI1Ni44bDAgNDQtNDQgMGMtOS43IDAtMTcuNiA3LjktMTcuNiAxNy42bDAgMzUuMmMwIDkuNyA3LjkgMTcuNiAxNy42IDE3LjZsNDQgMCAwIDQ0YzAgOS43IDcuOSAxNy42IDE3LjYgMTcuNmwzNS4yIDBjOS43IDAgMTcuNi03LjkgMTcuNi0xNy42bDAtNDQgNDQgMGM5LjcgMCAxNy42LTcuOSAxNy42LTE3LjZsMC0zNS4yYzAtOS43LTcuOS0xNy42LTE3LjYtMTcuNmwtNDQgMCAwLTQ0YzAtOS43LTcuOS0xNy42LTE3LjYtMTcuNmwtMzUuMiAwYy05LjcgMC0xNy42IDcuOS0xNy42IDE3LjZ6Il19LGFSZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJwcmVzY3JpcHRpb24iLGljb246WzQ0OCw1MTIsW10sImY1YjEiLCJNMzIgMEMxNC4zIDAgMCAxNC4zIDAgMzJMMCAyODhjMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMmwwLTY0IDUwLjcgMCAxMjggMTI4LTEwNS40IDEwNS40Yy0xMi41IDEyLjUtMTIuNSAzMi44IDAgNDUuM3MzMi44IDEyLjUgNDUuMyAwTDI4OCAzOTcuMyAzOTMuNCA1MDIuNmMxMi41IDEyLjUgMzIuOCAxMi41IDQ1LjMgMHMxMi41LTMyLjggMC00NS4zTDMzMy4zIDM1MiA0MzguNiAyNDYuNmMxMi41LTEyLjUgMTIuNS0zMi44IDAtNDUuM3MtMzIuOC0xMi41LTQ1LjMgMEwyODggMzA2LjcgMjAyLjIgMjIwLjlDMjUxLjQgMjA5LjEgMjg4IDE2NC44IDI4OCAxMTIgMjg4IDUwLjEgMjM3LjkgMCAxNzYgMEwzMiAwek0xNzYgMTYwbC0xMTIgMCAwLTk2IDExMiAwYzI2LjUgMCA0OCAyMS41IDQ4IDQ4cy0yMS41IDQ4LTQ4IDQ4eiJdfSxpUmU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZGljZS10aHJlZSIsaWNvbjpbNDQ4LDUxMixbOTg1OF0sImY1MjciLCJNNjQgMzJDMjguNyAzMiAwIDYwLjcgMCA5NkwwIDQxNmMwIDM1LjMgMjguNyA2NCA2NCA2NGwzMjAgMGMzNS4zIDAgNjQtMjguNyA2NC02NGwwLTMyMGMwLTM1LjMtMjguNy02NC02NC02NEw2NCAzMnptNjQgOTZhMzIgMzIgMCAxIDEgMCA2NCAzMiAzMiAwIDEgMSAwLTY0em02NCAxMjhhMzIgMzIgMCAxIDEgNjQgMCAzMiAzMiAwIDEgMSAtNjQgMHptMTI4IDY0YTMyIDMyIDAgMSAxIDAgNjQgMzIgMzIgMCAxIDEgMC02NHoiXX0sclJlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImJ1aWxkaW5nLWxvY2siLGljb246WzU3Niw1MTIsW10sImU0ZDYiLCJNMzIgNjRDMzIgMjguNyA2MC43IDAgOTYgMEwzNTIgMGMzNS4zIDAgNjQgMjguNyA2NCA2NGwwIDEyMS4zYy00Ni45IDE5LTgwIDY1LTgwIDExOC43bDAgMjQuNGMtMTkuNiAxNy42LTMyIDQzLjEtMzIgNzEuNWwwIDk2YzAgNS41IC41IDEwLjkgMS4zIDE2LjFMOTYgNTEyYy0zNS4zIDAtNjQtMjguNy02NC02NEwzMiA2NHpNMTc2IDM4NGwwIDgwIDgwIDAgMC02NC4xYzAtMTMuNyAxLjktMjcgNS41LTM5LjYtNS43LTUuMi0xMy4yLTguMy0yMS41LTguM2wtMzIgMGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJ6TTMwNyAyMjQuM2MtMS0uMi0yLS4zLTMtLjNsLTMyIDBjLTguOCAwLTE2IDcuMi0xNiAxNmwwIDMyYzAgOC44IDcuMiAxNiAxNiAxNmwxNi43IDBjMi4xLTIyLjggOC40LTQ0LjMgMTguMy02My43ek0xNDQgOTZjLTguOCAwLTE2IDcuMi0xNiAxNmwwIDMyYzAgOC44IDcuMiAxNiAxNiAxNmwzMiAwYzguOCAwIDE2LTcuMiAxNi0xNmwwLTMyYzAtOC44LTcuMi0xNi0xNi0xNmwtMzIgMHptMTEyIDE2bDAgMzJjMCA4LjggNy4yIDE2IDE2IDE2bDMyIDBjOC44IDAgMTYtNy4yIDE2LTE2bDAtMzJjMC04LjgtNy4yLTE2LTE2LTE2bC0zMiAwYy04LjggMC0xNiA3LjItMTYgMTZ6TTE0NCAyMjRjLTguOCAwLTE2IDcuMi0xNiAxNmwwIDMyYzAgOC44IDcuMiAxNiAxNiAxNmwzMiAwYzguOCAwIDE2LTcuMiAxNi0xNmwwLTMyYzAtOC44LTcuMi0xNi0xNi0xNmwtMzIgMHptMzUyIDgwLjFjMC0xNy43LTE0LjMtMzItMzItMzJzLTMyIDE0LjMtMzIgMzJsMCA0Ny45IDY0IDAgMC00Ny45ek0zNTIgNDAwYzAtMjAuOSAxMy40LTM4LjcgMzItNDUuM2wwLTUwLjZjMC00NC4yIDM1LjgtODAgODAtODBzODAgMzUuOCA4MCA4MGwwIDUwLjZjMTguNiA2LjYgMzIgMjQuNCAzMiA0NS4zbDAgOTZjMCAyNi41LTIxLjUgNDgtNDggNDhsLTEyOCAwYy0yNi41IDAtNDgtMjEuNS00OC00OGwwLTk2eiJdfSxGUj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJpZC1jYXJkIixpY29uOls1NzYsNTEyLFs2MjE0NywiZHJpdmVycy1saWNlbnNlIl0sImYyYzIiLCJNMCA5NkMwIDYwLjcgMjguNyAzMiA2NCAzMmw0NDggMGMzNS4zIDAgNjQgMjguNyA2NCA2NEwwIDk2em0wIDQ4bDU3NiAwIDAgMjcyYzAgMzUuMy0yOC43IDY0LTY0IDY0TDY0IDQ4MGMtMzUuMyAwLTY0LTI4LjctNjQtNjRMMCAxNDR6TTI0Ny4zIDQxNmMyMC4yIDAgMzUuMy0xOS40IDIyLjQtMzUtMTQuNy0xNy43LTM2LjktMjktNjEuNy0yOWwtNjQgMGMtMjQuOCAwLTQ3IDExLjMtNjEuNyAyOS0xMi45IDE1LjYgMi4yIDM1IDIyLjQgMzVsMTQyLjUgMHpNMTc2IDMxMmE1NiA1NiAwIDEgMCAwLTExMiA1NiA1NiAwIDEgMCAwIDExMnpNMzYwIDIwOGMtMTMuMyAwLTI0IDEwLjctMjQgMjRzMTAuNyAyNCAyNCAyNGwxMTIgMGMxMy4zIDAgMjQtMTAuNyAyNC0yNHMtMTAuNy0yNC0yNC0yNGwtMTEyIDB6bTAgOTZjLTEzLjMgMC0yNCAxMC43LTI0IDI0czEwLjcgMjQgMjQgMjRsMTEyIDBjMTMuMyAwIDI0LTEwLjcgMjQtMjRzLTEwLjctMjQtMjQtMjRsLTExMiAweiJdfSxzUmU9RlIsT1I9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiY2lyY2xlLXBsYXkiLGljb246WzUxMiw1MTIsWzYxNDY5LCJwbGF5LWNpcmNsZSJdLCJmMTQ0IiwiTTAgMjU2YTI1NiAyNTYgMCAxIDEgNTEyIDAgMjU2IDI1NiAwIDEgMSAtNTEyIDB6TTE4OC4zIDE0Ny4xYy03LjYgNC4yLTEyLjMgMTIuMy0xMi4zIDIwLjlsMCAxNzZjMCA4LjcgNC43IDE2LjcgMTIuMyAyMC45czE2LjggNC4xIDI0LjMtLjVsMTQ0LTg4YzcuMS00LjQgMTEuNS0xMi4xIDExLjUtMjAuNXMtNC40LTE2LjEtMTEuNS0yMC41bC0xNDQtODhjLTcuNC00LjUtMTYuNy00LjctMjQuMy0uNXoiXX0sblJlPU9SLFJSPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImZhY2UtbGF1Z2gtYmVhbSIsaWNvbjpbNTEyLDUxMixbMTI4NTEzLCJsYXVnaC1iZWFtIl0sImY1OWEiLCJNMjU2IDUxMmEyNTYgMjU2IDAgMSAwIDAtNTEyIDI1NiAyNTYgMCAxIDAgMCA1MTJ6TTEwMS42IDMxNGMtMy43LTEzLjcgNy41LTI2IDIxLjctMjZsMjY1LjQgMGMxNC4yIDAgMjUuNCAxMi4zIDIxLjcgMjYtMTguNSA2OC04MC42IDExOC0xNTQuNCAxMThTMTIwIDM4MiAxMDEuNiAzMTR6TTE3NiAxNjRjLTE1LjUgMC0yOCAxMi41LTI4IDI4bDAgOGMwIDExLTkgMjAtMjAgMjBzLTIwLTktMjAtMjBsMC04YzAtMzcuNiAzMC40LTY4IDY4LTY4czY4IDMwLjQgNjggNjhsMCA4YzAgMTEtOSAyMC0yMCAyMHMtMjAtOS0yMC0yMGwwLThjMC0xNS41LTEyLjUtMjgtMjgtMjh6bTEzMiAyOGwwIDhjMCAxMS05IDIwLTIwIDIwcy0yMC05LTIwLTIwbDAtOGMwLTM3LjYgMzAuNC02OCA2OC02OHM2OCAzMC40IDY4IDY4bDAgOGMwIDExLTkgMjAtMjAgMjBzLTIwLTktMjAtMjBsMC04YzAtMTUuNS0xMi41LTI4LTI4LTI4cy0yOCAxMi41LTI4IDI4eiJdfSxvUmU9UlIsbFJlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImxlYWYiLGljb246WzUxMiw1MTIsW10sImYwNmMiLCJNNDcxLjMgNi43QzQ3Ny43IC42IDQ4Ny0xLjYgNDk1LjYgMS4yIDUwNS40IDQuNSA1MTIgMTMuNyA1MTIgMjRsMCAxODYuOWMwIDEzMS4yLTEwOC4xIDIzNy4xLTIzOC44IDIzNy4xLTc3IDAtMTQzLjQtNDkuNS0xNjcuNS0xMTguNy0zNS40IDMwLjgtNTcuNyA3Ni4xLTU3LjcgMTI2LjcgMCAxMy4zLTEwLjcgMjQtMjQgMjRTMCA0NjkuMyAwIDQ1NkMwIDM4MS4xIDM4LjIgMzE1LjEgOTYuMSAyNzYuMyAxMzEuNCAyNTIuNyAxNzMuNSAyNDAgMjE2IDI0MGw4MCAwYzEzLjMgMCAyNC0xMC43IDI0LTI0cy0xMC43LTI0LTI0LTI0bC04MCAwYy0zOS43IDAtNzcuMyA4LjgtMTExIDI0LjUgMjMuMy03MCA4OS4yLTEyMC41IDE2Ny0xMjAuNSA2Ni40IDAgMTE1LjgtMjIuMSAxNDguNy00NCAxOS4yLTEyLjggMzUuNS0yOC4xIDUwLjctNDUuM3oiXX0sY1JlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImhvdXNlLWNoaW1uZXktdXNlciIsaWNvbjpbNTEyLDUxMixbXSwiZTA2NSIsIk0yMzQuMiA4LjZjMTIuMy0xMS40IDMxLjMtMTEuNCA0My41IDBMMzY4IDkyLjMgMzY4IDgwYzAtMTcuNyAxNC4zLTMyIDMyLTMybDMyIDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJsMCAxMDEuNSAzNy44IDM1LjFjOS42IDkgMTIuOCAyMi45IDggMzUuMVM0OTMuMiAyNzIgNDgwIDI3MmwtMTYgMCAwIDE3NmMwIDM1LjMtMjguNyA2NC02NCA2NGwtMjg4IDBjLTM1LjMgMC02NC0yOC43LTY0LTY0bDAtMTc2LTE2IDBjLTEzLjIgMC0yNS04LjEtMjkuOC0yMC4zcy0xLjYtMjYuMiA4LTM1LjFsMjI0LTIwOHpNMzEyIDI1NmE1NiA1NiAwIDEgMCAtMTEyIDAgNTYgNTYgMCAxIDAgMTEyIDB6TTE0NCA0MzJjMCA4LjggNy4yIDE2IDE2IDE2bDE5MiAwYzguOCAwIDE2LTcuMiAxNi0xNiAwLTQ0LjItMzUuOC04MC04MC04MGwtNjQgMGMtNDQuMiAwLTgwIDM1LjgtODAgODB6Il19LFNtPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InJvdGF0ZS1yaWdodCIsaWNvbjpbNTEyLDUxMixbInJlZG8tYWx0Iiwicm90YXRlLWZvcndhcmQiXSwiZjJmOSIsIk00ODggMTkybC0xNDQgMGMtOS43IDAtMTguNS01LjgtMjIuMi0xNC44cy0xLjctMTkuMyA1LjItMjYuMmw0Ni43LTQ2LjdjLTc1LjMtNTguNi0xODQuMy01My4zLTI1My41IDE1LjktNzUgNzUtNzUgMTk2LjUgMCAyNzEuNXMxOTYuNSA3NSAyNzEuNSAwYzguMi04LjIgMTUuNS0xNi45IDIxLjktMjYuMSAxMC4xLTE0LjUgMzAuMS0xOCA0NC42LTcuOXMxOCAzMC4xIDcuOSA0NC42Yy04LjUgMTIuMi0xOC4yIDIzLjgtMjkuMSAzNC43LTEwMCAxMDAtMjYyLjEgMTAwLTM2MiAwUy0yNSAxNzUgNzUgNzVjOTQuMy05NC4zIDI0My43LTk5LjYgMzQ0LjMtMTYuMkw0NzEgN2M2LjktNi45IDE3LjItOC45IDI2LjItNS4yUzUxMiAxNC4zIDUxMiAyNGwwIDE0NGMwIDEzLjMtMTAuNyAyNC0yNCAyNHoiXX0sZFJlPVNtLGhSZT1TbSxwUmU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToidG9vdGgiLGljb246WzQ0OCw1MTIsWzEyOTQ2M10sImY1YzkiLCJNMTQ1IDUuN0wyMjQgMzIgMzAzIDUuN0MzMTQuMyAxLjkgMzI2IDAgMzM3LjkgMCAzOTguNyAwIDQ0OCA0OS4zIDQ0OCAxMTAuMWwwIDY4LjVjMCAyOS40LTkuNSA1OC4xLTI3LjIgODEuNmwtMS4xIDEuNWMtMTIuOSAxNy4yLTIxLjMgMzcuNC0yNC4zIDU4LjdMMzczLjcgNDcxLjljLTMuMyAyMy0yMyA0MC4xLTQ2LjIgNDAuMS0yMi44IDAtNDIuMy0xNi41LTQ2LTM5TDI2MS4zIDM1MS42Yy0zLTE4LjItMTguOC0zMS42LTM3LjMtMzEuNnMtMzQuMiAxMy40LTM3LjMgMzEuNkwxNjYuNSA0NzNjLTMuOCAyMi41LTIzLjIgMzktNDYgMzktMjMuMiAwLTQyLjktMTcuMS00Ni4yLTQwLjFMNTIuNiAzMjAuNWMtMy0yMS4zLTExLjQtNDEuNS0yNC4zLTU4LjdsLTEuMS0xLjVDOS41IDIzNi43IDAgMjA4LjEgMCAxNzguN2wwLTY4LjVDMCA0OS4zIDQ5LjMgMCAxMTAuMSAwIDEyMiAwIDEzMy43IDEuOSAxNDUgNS43eiJdfSx1UmU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiaG91c2UtY2hpbW5leS13aW5kb3ciLGljb246WzUxMiw1MTIsW10sImUwMGQiLCJNMjM0LjIgOC42YzEyLjMtMTEuNCAzMS4zLTExLjQgNDMuNSAwTDM2OCA5Mi4zIDM2OCA4MGMwLTE3LjcgMTQuMy0zMiAzMi0zMmwzMiAwYzE3LjcgMCAzMiAxNC4zIDMyIDMybDAgMTAxLjUgMzcuOCAzNS4xYzkuNiA5IDEyLjggMjIuOSA4IDM1LjFTNDkzLjIgMjcyIDQ4MCAyNzJsLTE2IDAgMCAxNzZjMCAzNS4zLTI4LjcgNjQtNjQgNjRsLTI4OCAwYy0zNS4zIDAtNjQtMjguNy02NC02NGwwLTE3Ni0xNiAwYy0xMy4yIDAtMjUtOC4xLTI5LjgtMjAuM3MtMS42LTI2LjIgOC0zNS4xbDIyNC0yMDh6TTIxNiAyMjRjLTEzLjMgMC0yNCAxMC43LTI0IDI0bDAgODBjMCAxMy4zIDEwLjcgMjQgMjQgMjRsODAgMGMxMy4zIDAgMjQtMTAuNyAyNC0yNGwwLTgwYzAtMTMuMy0xMC43LTI0LTI0LTI0bC04MCAweiJdfSxmUmU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToibW90b3JjeWNsZSIsaWNvbjpbNjQwLDUxMixbMTI3OTQ5XSwiZjIxYyIsIk0yODAgMTZjLTEzLjMgMC0yNCAxMC43LTI0IDI0czEwLjcgMjQgMjQgMjRsNTYuNiAwIDIyLjUgNDguNy05NS4xIDcxLjNjLTMzLjQtMjUuMS03NS00MC0xMjAtNDBsLTU2IDBjLTEzLjMgMC0yNCAxMC43LTI0IDI0czEwLjcgMjQgMjQgMjRsNTYgMGM3OC41IDAgMTQzLjIgNTkuNiAxNTEuMiAxMzZsLTI1LjQgMGMtMTEuMi01OS4yLTYzLjMtMTA0LTEyNS44LTEwNC03MC43IDAtMTI4IDU3LjMtMTI4IDEyOFM3My4zIDQ4MCAxNDQgNDgwYzYyLjUgMCAxMTQuNS00NC44IDEyNS44LTEwNGw1MC4yIDBjMTMuMyAwIDI0LTEwLjcgMjQtMjRsMC0yMi41YzAtNDUuMSAyNS43LTg1LjQgNjUuNS0xMDcuN2wxMi4xIDI2LjFjLTMyLjQgMjMuMi01My41IDYxLjItNTMuNSAxMDQuMSAwIDcwLjcgNTcuMyAxMjggMTI4IDEyOHMxMjgtNTcuMyAxMjgtMTI4LTU3LjMtMTI4LTEyOC0xMjhjLTEwLjcgMC0yMSAxLjMtMzAuOSAzLjhMNDMzLjggMTYwIDQ4OCAxNjBjMTMuMyAwIDI0LTEwLjcgMjQtMjRsMC00OGMwLTEzLjMtMTAuNy0yNC0yNC0yNGwtNTMuMyAwYy02LjkgMC0xMy43IDIuMi0xOS4yIDYuNGwtMTcuMSAxMi44LTI0LjYtNTMuM0MzNjkuOSAyMS40IDM2MS40IDE2IDM1MiAxNmwtNzIgMHpNNDQ1LjggMzAwLjRsMjguNCA2MS42YzUuNiAxMiAxOS44IDE3LjMgMzEuOCAxMS43czE3LjMtMTkuOCAxMS43LTMxLjhsLTI4LjUtNjEuNmMyLjItLjIgNC40LS4zIDYuNy0uMyAzOS44IDAgNzIgMzIuMiA3MiA3MnMtMzIuMiA3Mi03MiA3Mi03Mi0zMi4yLTcyLTcyYzAtMjAuMiA4LjMtMzguNSAyMS44LTUxLjZ6TTE0NCA0MjRjLTM5LjggMC03Mi0zMi4yLTcyLTcyczMyLjItNzIgNzItNzJjMzEuMyAwIDU4IDIwIDY3LjkgNDhMMTQ0IDMyOGMtMTMuMyAwLTI0IDEwLjctMjQgMjRzMTAuNyAyNCAyNCAyNGw2Ny45IDBjLTkuOSAyOC0zNi42IDQ4LTY3LjkgNDh6Il19LEJSPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImJhY2t3YXJkLWZhc3QiLGljb246WzUxMiw1MTIsWzkxOTgsImZhc3QtYmFja3dhcmQiXSwiZjA0OSIsIk00OTIuMiA0NzcuNmMtMTIgNS0yNS43IDIuMi0zNC45LTYuOUwyODggMzAxLjMgMjg4IDQ0OGMwIDEyLjktNy44IDI0LjYtMTkuOCAyOS42cy0yNS43IDIuMi0zNC45LTYuOUw2NCAzMDEuMyA2NCA0NDhjMCAxNy43LTE0LjMgMzItMzIgMzJTMCA0NjUuNyAwIDQ0OEwwIDY0QzAgNDYuMyAxNC4zIDMyIDMyIDMyUzY0IDQ2LjMgNjQgNjRMNjQgMjEwLjcgMjMzLjQgNDEuNGM5LjItOS4yIDIyLjktMTEuOSAzNC45LTYuOVMyODggNTEuMSAyODggNjRsMCAxNDYuNyAxNjkuNC0xNjkuNGM5LjItOS4yIDIyLjktMTEuOSAzNC45LTYuOVM1MTIgNTEuMSA1MTIgNjRsMCAzODRjMCAxMi45LTcuOCAyNC42LTE5LjggMjkuNnoiXX0sbVJlPUJSLEhSPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImFkZHJlc3MtYm9vayIsaWNvbjpbNTEyLDUxMixbNjIxMzgsImNvbnRhY3QtYm9vayJdLCJmMmI5IiwiTTk2IDBDNjAuNyAwIDMyIDI4LjcgMzIgNjRsMCAzODRjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMjg4IDBjMzUuMyAwIDY0LTI4LjcgNjQtNjRsMC0zODRjMC0zNS4zLTI4LjctNjQtNjQtNjRMOTYgMHpNMjA4IDI4OGw2NCAwYzQ0LjIgMCA4MCAzNS44IDgwIDgwIDAgOC44LTcuMiAxNi0xNiAxNmwtMTkyIDBjLTguOCAwLTE2LTcuMi0xNi0xNiAwLTQ0LjIgMzUuOC04MCA4MC04MHptLTI0LTk2YTU2IDU2IDAgMSAxIDExMiAwIDU2IDU2IDAgMSAxIC0xMTIgMHpNNTEyIDgwYzAtOC44LTcuMi0xNi0xNi0xNnMtMTYgNy4yLTE2IDE2bDAgNjRjMCA4LjggNy4yIDE2IDE2IDE2czE2LTcuMiAxNi0xNmwwLTY0em0wIDEyOGMwLTguOC03LjItMTYtMTYtMTZzLTE2IDcuMi0xNiAxNmwwIDY0YzAgOC44IDcuMiAxNiAxNiAxNnMxNi03LjIgMTYtMTZsMC02NHpNNDk2IDMyMGMtOC44IDAtMTYgNy4yLTE2IDE2bDAgNjRjMCA4LjggNy4yIDE2IDE2IDE2czE2LTcuMiAxNi0xNmwwLTY0YzAtOC44LTcuMi0xNi0xNi0xNnoiXX0sZ1JlPUhSLGJSZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJzYWlsYm9hdCIsaWNvbjpbNTEyLDUxMixbXSwiZTQ0NSIsIk0yNDAgMzUuOWwwIDM0OC4xLTIyNCAwYy04LjggMC0xNiA3LjItMTYgMTYgMCA2MS45IDUwLjEgMTEyIDExMiAxMTJsMjg4IDBjNjEuOSAwIDExMi01MC4xIDExMi0xMTIgMC04LjgtNy4yLTE2LTE2LTE2bC0yMDggMCAwLTQ4IDE2MS43IDBjMTIuOSAwIDIwLjUtMTQuNCAxMy4yLTI1TDI2OS4yIDI2LjljLTguOS0xMy0yOS4yLTYuNy0yOS4yIDl6TTE5MiAzMjBsMC0xODQuMmMwLTE2LjEtMjEtMjIuMS0yOS42LTguNUw0Ny4zIDMxMS41Yy02LjcgMTAuNyAxIDI0LjUgMTMuNiAyNC41TDE3NiAzMzZjOC44IDAgMTYtNy4yIDE2LTE2eiJdfSx2UmU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiYm9vay1ib29rbWFyayIsaWNvbjpbNDQ4LDUxMixbXSwiZTBiYiIsIk05NiA1MTJsMzIwIDBjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJsMC02Ni43YzE4LjYtNi42IDMyLTI0LjQgMzItNDUuM2wwLTI4OGMwLTI2LjUtMjEuNS00OC00OC00OGwtNDggMCAwIDE2OS40YzAgMTIuNS0xMC4xIDIyLjYtMjIuNiAyMi42LTYgMC0xMS44LTIuNC0xNi02LjZMMjcyIDE0NCAyMzAuNiAxODUuNGMtNC4yIDQuMi0xMCA2LjYtMTYgNi42LTEyLjUgMC0yMi42LTEwLjEtMjIuNi0yMi42TDE5MiAwIDk2IDBDNDMgMCAwIDQzIDAgOTZMMCA0MTZjMCA1MyA0MyA5NiA5NiA5NnpNNjQgNDE2YzAtMTcuNyAxNC4zLTMyIDMyLTMybDI1NiAwIDAgNjQtMjU2IDBjLTE3LjcgMC0zMi0xNC4zLTMyLTMyeiJdfSx5UmU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToibWFnbmlmeWluZy1nbGFzcy1hcnJvdy1yaWdodCIsaWNvbjpbNTEyLDUxMixbXSwiZTUyMSIsIk00MTYgMjA4YzAgNDUuOS0xNC45IDg4LjMtNDAgMTIyLjdMNTAyLjYgNDU3LjRjMTIuNSAxMi41IDEyLjUgMzIuOCAwIDQ1LjNzLTMyLjggMTIuNS00NS4zIDBMMzMwLjcgMzc2QzI5Ni4zIDQwMS4xIDI1My45IDQxNiAyMDggNDE2IDkzLjEgNDE2IDAgMzIyLjkgMCAyMDhTOTMuMSAwIDIwOCAwIDQxNiA5My4xIDQxNiAyMDh6TTMwNSAyMjVjOS40LTkuNCA5LjQtMjQuNiAwLTMzLjlsLTcyLTcyYy05LjQtOS40LTI0LjYtOS40LTMzLjkgMHMtOS40IDI0LjYgMCAzMy45bDMxIDMxLTEwMi4xIDBjLTEzLjMgMC0yNCAxMC43LTI0IDI0czEwLjcgMjQgMjQgMjRsMTAyLjEgMC0zMSAzMWMtOS40IDkuNC05LjQgMjQuNiAwIDMzLjlzMjQuNiA5LjQgMzMuOSAwbDcyLTcyeiJdfSxxUj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJtaWNyb3Bob25lLWxpbmVzIixpY29uOlszODQsNTEyLFsxMjc4OTcsIm1pY3JvcGhvbmUtYWx0Il0sImYzYzkiLCJNOTYgOTZjMC01MyA0My05NiA5Ni05NiA1MC4zIDAgOTEuNiAzOC43IDk1LjcgODhMMjMyIDg4Yy0xMy4zIDAtMjQgMTAuNy0yNCAyNHMxMC43IDI0IDI0IDI0bDU2IDAgMCA0OC01NiAwYy0xMy4zIDAtMjQgMTAuNy0yNCAyNHMxMC43IDI0IDI0IDI0bDU1LjcgMGMtNC4xIDQ5LjMtNDUuMyA4OC05NS43IDg4LTUzIDAtOTYtNDMtOTYtOTZMOTYgOTZ6TTI0IDE2MGMxMy4zIDAgMjQgMTAuNyAyNCAyNGwwIDQwYzAgNzkuNSA2NC41IDE0NCAxNDQgMTQ0czE0NC02NC41IDE0NC0xNDRsMC00MGMwLTEzLjMgMTAuNy0yNCAyNC0yNHMyNCAxMC43IDI0IDI0bDAgNDBjMCA5Ny45LTczLjMgMTc4LjctMTY4IDE5MC41bDAgNDkuNSA0OCAwYzEzLjMgMCAyNCAxMC43IDI0IDI0cy0xMC43IDI0LTI0IDI0bC0xNDQgMGMtMTMuMyAwLTI0LTEwLjctMjQtMjRzMTAuNy0yNCAyNC0yNGw0OCAwIDAtNDkuNUM3My4zIDQwMi43IDAgMzIxLjkgMCAyMjRsMC00MGMwLTEzLjMgMTAuNy0yNCAyNC0yNHoiXX0seFJlPXFSLFZSPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InJlcGx5LWFsbCIsaWNvbjpbNTc2LDUxMixbIm1haWwtcmVwbHktYWxsIl0sImYxMjIiLCJNMzMyLjIgMTguNGMxMiA1IDE5LjggMTYuNiAxOS44IDI5LjZsMCA4MCA0OCAwYzk3LjIgMCAxNzYgNzguOCAxNzYgMTc2IDAgMTEzLjMtODEuNSAxNjMuOS0xMDAuMiAxNzQuMS0yLjUgMS40LTUuMyAxLjktOC4xIDEuOS0xMC45IDAtMTkuNy04LjktMTkuNy0xOS43IDAtNy41IDQuMy0xNC40IDkuOC0xOS41IDkuNC04LjggMjIuMi0yNi40IDIyLjItNTYuNyAwLTUzLTQzLTk2LTk2LTk2bC0zMiAwIDAgODBjMCAxMi45LTcuOCAyNC42LTE5LjggMjkuNnMtMjUuNyAyLjItMzQuOS02LjlsLTE2MC0xNjBjLTEyLjUtMTIuNS0xMi41LTMyLjggMC00NS4zbDE2MC0xNjBjOS4yLTkuMiAyMi45LTExLjkgMzQuOS02Ljl6TTIwNS42IDIzLjFjOS40IDkuNCA5LjQgMjQuNiAwIDMzLjlMNTQuNiAyMDggMjA1LjYgMzU4LjljOS40IDkuNCA5LjQgMjQuNiAwIDMzLjlzLTI0LjYgOS40LTMzLjkgMEwxMCAyMzEuMmMtNi40LTYtMTAtMTQuNC0xMC0yMy4yczMuNi0xNy4yIDEwLTIzLjJMMTcxLjYgMjMuMWM5LjQtOS40IDI0LjYtOS40IDMzLjkgMHoiXX0sd1JlPVZSLE1SZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJ1bml2ZXJzYWwtYWNjZXNzIixpY29uOls1MTIsNTEyLFtdLCJmMjlhIiwiTTAgMjU2YTI1NiAyNTYgMCAxIDEgNTEyIDAgMjU2IDI1NiAwIDEgMSAtNTEyIDB6bTE2MS41LTg2LjFjLTEyLjItNS4yLTI2LjMgLjQtMzEuNSAxMi42cy40IDI2LjMgMTIuNiAzMS41bDExLjkgNS4xYzE3LjMgNy40IDM1LjIgMTIuOSA1My42IDE2LjNsMCA1MC4xYzAgNC4zLS43IDguNi0yLjEgMTIuNmwtMjguNyA4Ni4xYy00LjIgMTIuNiAyLjYgMjYuMiAxNS4yIDMwLjRzMjYuMi0yLjYgMzAuNC0xNS4ybDI0LjQtNzMuMmMxLjMtMy44IDQuOC02LjQgOC44LTYuNHM3LjYgMi42IDguOCA2LjRsMjQuNCA3My4yYzQuMiAxMi42IDE3LjggMTkuNCAzMC40IDE1LjJTMzM5IDM5NyAzMzQuOCAzODQuNGwtMjguNy04Ni4xYy0xLjQtNC4xLTIuMS04LjMtMi4xLTEyLjZsMC01MC4xYzE4LjQtMy41IDM2LjMtOC45IDUzLjYtMTYuM2wxMS45LTUuMWMxMi4yLTUuMiAxNy44LTE5LjMgMTIuNi0zMS41cy0xOS4zLTE3LjgtMzEuNS0xMi42TDMzOC43IDE3NWMtMjYuMSAxMS4yLTU0LjIgMTctODIuNyAxN3MtNTYuNS01LjgtODIuNy0xN2wtMTEuOS01LjF6TTI1NiAxNjBhNDAgNDAgMCAxIDAgMC04MCA0MCA0MCAwIDEgMCAwIDgweiJdfSxDbT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJ0b2lsZXQtcGFwZXIiLGljb246WzUxMiw1MTIsWzEyOTUzMSw2MzI2MywidG9pbGV0LXBhcGVyLWFsdCIsInRvaWxldC1wYXBlci1ibGFuayJdLCJmNzFlIiwiTTMyNy4xIDMyYy04LjggMTEuMS0xNiAyMy4xLTIxLjkgMzQuOC0yMS40IDQyLjctMzMuMiA5OC40LTMzLjIgMTU3LjJsMCAyNjRjMCAzMC45LTI1LjEgNTYtNTYgNTZMNTYgNTQ0Yy0zMC45IDAtNTYtMjUuMS01Ni01NkwwIDIyNEMwIDExOCA0MyAzMiA5NiAzMmwyMzEuMSAwek00MTYgNDE2Yy01MyAwLTk2LTg2LTk2LTE5MnM0My0xOTIgOTYtMTkyIDk2IDg2IDk2IDE5Mi00MyAxOTItOTYgMTkyem0wLTEyOGMxNy43IDAgMzItMjguNyAzMi02NHMtMTQuMy02NC0zMi02NC0zMiAyOC43LTMyIDY0IDE0LjMgNjQgMzIgNjR6Il19LHpSZT1DbSxrUmU9Q20sU1JlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InZyLWNhcmRib2FyZCIsaWNvbjpbNTc2LDUxMixbXSwiZjcyOSIsIk01MTIgOTZMNjQgOTZDMjguNyA5NiAwIDEyNC43IDAgMTYwTDAgMzUyYzAgMzUuMyAyOC43IDY0IDY0IDY0bDExNy41IDBjMTcgMCAzMy4zLTYuNyA0NS4zLTE4LjdsMzMuOS0zMy45YzcuMi03LjIgMTcuMS0xMS4zIDI3LjMtMTEuM3MyMC4xIDQuMSAyNy4zIDExLjNsMzMuOSAzMy45YzEyIDEyIDI4LjMgMTguNyA0NS4zIDE4LjdMNTEyIDQxNmMzNS4zIDAgNjQtMjguNyA2NC02NGwwLTE5MmMwLTM1LjMtMjguNy02NC02NC02NHpNODAgMjQwYTY0IDY0IDAgMSAxIDEyOCAwIDY0IDY0IDAgMSAxIC0xMjggMHptMzUyLTY0YTY0IDY0IDAgMSAxIDAgMTI4IDY0IDY0IDAgMSAxIDAtMTI4eiJdfSxDUmU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToicGl6emEtc2xpY2UiLGljb246WzUxMiw1MTIsW10sImY4MTgiLCJNMTY5LjcgLjljLTIyLjgtMS42LTQxLjkgMTQtNDcuNSAzNC43TDExMi41IDcyQzI5My4zIDcyLjMgNDM5LjcgMjE4LjcgNDQwIDM5OS41bDM2LjQtOS43YzIwLjgtNS41IDM2LjMtMjQuNyAzNC43LTQ3LjUtMTIuNi0xODIuOC0xNTguNi0zMjguOC0zNDEuNC0zNDEuNHptMjIyIDQxMS41Yy4yLTQuMSAuMy04LjIgLjMtMTIuNCAwLTE1NC42LTEyNS40LTI4MC0yODAtMjgwLTQuMSAwLTguMyAuMS0xMi40IC4zTC41IDQ5MS45Yy0xLjUgNS41IC4xIDExLjQgNC4xIDE1LjRzOS45IDUuNiAxNS40IDQuMWwzNzEuNi05OS4xek0xNzYgMjA4YTMyIDMyIDAgMSAxIDAgNjQgMzIgMzIgMCAxIDEgMC02NHptNjQgMTI4YTMyIDMyIDAgMSAxIDY0IDAgMzIgMzIgMCAxIDEgLTY0IDB6TTk2IDM4NGEzMiAzMiAwIDEgMSA2NCAwIDMyIDMyIDAgMSAxIC02NCAweiJdfSxfUmU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToic3ByYXktY2FuIixpY29uOls1NzYsNTEyLFtdLCJmNWJkIiwiTTE5MiAwbDY0IDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJsMCA4MC0xMjggMCAwLTgwYzAtMTcuNyAxNC4zLTMyIDMyLTMyek02NCAyNTZjMC01MyA0My05NiA5Ni05NmwxMjggMGM1MyAwIDk2IDQzIDk2IDk2bDAgMjA4YzAgMjYuNS0yMS41IDQ4LTQ4IDQ4bC0yMjQgMGMtMjYuNSAwLTQ4LTIxLjUtNDgtNDhsMC0yMDh6bTI0MCA4MGE4MCA4MCAwIDEgMCAtMTYwIDAgODAgODAgMCAxIDAgMTYwIDB6TTMyMCA2NGEzMiAzMiAwIDEgMSA2NCAwIDMyIDMyIDAgMSAxIC02NCAwek00NDggMzJhMzIgMzIgMCAxIDEgMCA2NCAzMiAzMiAwIDEgMSAwLTY0em02NCAzMmEzMiAzMiAwIDEgMSA2NCAwIDMyIDMyIDAgMSAxIC02NCAwem0zMiA2NGEzMiAzMiAwIDEgMSAwIDY0IDMyIDMyIDAgMSAxIDAtNjR6TTUxMiAyNTZhMzIgMzIgMCAxIDEgNjQgMCAzMiAzMiAwIDEgMSAtNjQgMHpNNDQ4IDEyOGEzMiAzMiAwIDEgMSAwIDY0IDMyIDMyIDAgMSAxIDAtNjR6Il19LGpSPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InZvbHVtZS1sb3ciLGljb246WzQ0OCw1MTIsWzEyODI2NCwidm9sdW1lLWRvd24iXSwiZjAyNyIsIk00OCAzNTJsNDggMCAxMzQuMSAxMTkuMmM2LjQgNS43IDE0LjYgOC44IDIzLjEgOC44IDE5LjIgMCAzNC44LTE1LjYgMzQuOC0zNC44bDAtMzc4LjRjMC0xOS4yLTE1LjYtMzQuOC0zNC44LTM0LjgtOC41IDAtMTYuNyAzLjEtMjMuMSA4LjhMOTYgMTYwIDQ4IDE2MGMtMjYuNSAwLTQ4IDIxLjUtNDggNDhsMCA5NmMwIDI2LjUgMjEuNSA0OCA0OCA0OHpNMzgwLjYgMTgxLjVjLTEwLjMtOC40LTI1LjQtNi44LTMzLjggMy41cy02LjggMjUuNCAzLjUgMzMuOEMzNjEuMSAyMjcuNiAzNjggMjQxIDM2OCAyNTZzLTYuOSAyOC40LTE3LjcgMzcuM2MtMTAuMyA4LjQtMTEuOCAyMy41LTMuNSAzMy44czIzLjUgMTEuOCAzMy44IDMuNUM0MDIuMSAzMTIuOSA0MTYgMjg2LjEgNDE2IDI1NnMtMTMuOS01Ni45LTM1LjUtNzQuNXoiXX0sVFJlPWpSLExSZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJjcm9zcyIsaWNvbjpbMzg0LDUxMixbMTI4MzI3LDEwMDEzXSwiZjY1NCIsIk0xNzYgMGMtMjYuNSAwLTQ4IDIxLjUtNDggNDhsMCA4MC04MCAwYy0yNi41IDAtNDggMjEuNS00OCA0OGwwIDMyYzAgMjYuNSAyMS41IDQ4IDQ4IDQ4bDgwIDAgMCAyMDhjMCAyNi41IDIxLjUgNDggNDggNDhsMzIgMGMyNi41IDAgNDgtMjEuNSA0OC00OGwwLTIwOCA4MCAwYzI2LjUgMCA0OC0yMS41IDQ4LTQ4bDAtMzJjMC0yNi41LTIxLjUtNDgtNDgtNDhsLTgwIDAgMC04MGMwLTI2LjUtMjEuNS00OC00OC00OEwxNzYgMHoiXX0sVVI9e3ByZWZpeDoiZmFzIixpY29uTmFtZToicGVyc29uIixpY29uOlszODQsNTEyLFsxMjk0ODUsIm1hbGUiXSwiZjE4MyIsIk0yNDggMjRhNTYgNTYgMCAxIDAgLTExMiAwIDU2IDU2IDAgMSAwIDExMiAwem0yNCAyMTIuN2w0Ni4zIDYyLjRjMTAuNSAxNC4yIDMwLjYgMTcuMiA0NC44IDYuNnMxNy4yLTMwLjYgNi42LTQ0LjhsLTcwLjUtOTVDMjc0IDEzMiAyMzQuMyAxMTIgMTkyIDExMnMtODIgMjAtMTA3LjIgNTMuOWwtNzAuNSA5NWMtMTAuNSAxNC4yLTcuNiAzNC4yIDYuNiA0NC44czM0LjIgNy42IDQ0LjgtNi42TDExMiAyMzYuNyAxMTIgNTEyYzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJsMC0xNjBjMC04LjggNy4yLTE2IDE2LTE2czE2IDcuMiAxNiAxNmwwIDE2MGMwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMybDAtMjc1LjN6Il19LCRSZT1VUixXUj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJob3VyZ2xhc3MiLGljb246WzM4NCw1MTIsWzkyMDMsNjIwMzIsImhvdXJnbGFzcy1lbXB0eSJdLCJmMjU0IiwiTTAgMzJDMCAxNC4zIDE0LjMgMCAzMiAwTDM1MiAwYzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMybDAgMTFjMCA0Mi40LTE2LjkgODMuMS00Ni45IDExMy4xbC02Ny45IDY3LjkgNjcuOSA2Ny45YzMwIDMwIDQ2LjkgNzAuNyA0Ni45IDExMy4xbDAgMTFjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJMMzIgNTEyYy0xNy43IDAtMzItMTQuMy0zMi0zMnMxNC4zLTMyIDMyLTMybDAtMTFjMC00Mi40IDE2LjktODMuMSA0Ni45LTExMy4xbDY3LjktNjcuOS02Ny45LTY3LjlDNDguOSAxNTguMSAzMiAxMTcuNCAzMiA3NWwwLTExQzE0LjMgNjQgMCA0OS43IDAgMzJ6TTk2IDY0bDAgMTFjMCAyNS41IDEwLjEgNDkuOSAyOC4xIDY3LjlsNjcuOSA2Ny45IDY3LjktNjcuOWMxOC0xOCAyOC4xLTQyLjQgMjguMS02Ny45bDAtMTEtMTkyIDB6bTAgMzg0bDE5MiAwIDAtMTFjMC0yNS41LTEwLjEtNDkuOS0yOC4xLTY3LjlsLTY3LjktNjcuOS02Ny45IDY3LjljLTE4IDE4LTI4LjEgNDIuNC0yOC4xIDY3LjlsMCAxMXoiXX0sQVJlPVdSLERSZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJmaXNoIixpY29uOls1NzYsNTEyLFsxMjgwMzFdLCJmNTc4IiwiTTE4MC41IDE0MS41QzIxOS43IDEwOC41IDI3Mi42IDgwIDMzNiA4MHMxMTYuMyAyOC41IDE1NS41IDYxLjVjMzkuMSAzMyA2Ni45IDcyLjQgODEgOTkuOCA0LjcgOS4yIDQuNyAyMC4xIDAgMjkuMy0xNC4xIDI3LjQtNDEuOSA2Ni44LTgxIDk5LjgtMzkuMiAzMy4xLTkyIDYxLjUtMTU1LjUgNjEuNXMtMTE2LjMtMjguNS0xNTUuNS02MS41Yy0xNi4yLTEzLjctMzAuNS0yOC41LTQyLjctNDMuMUw0OC4xIDM3OS42Yy0xMi41IDcuMy0yOC40IDUuMy0zOC43LTQuOXMtMTIuNC0yNi01LjMtMzguNkw1MCAyNTYgNC4yIDE3NS45Yy03LjItMTIuNi01LTI4LjQgNS4zLTM4LjZzMjYuMS0xMi4yIDM4LjctNC45bDg5LjcgNTIuM2MxMi4yLTE0LjYgMjYuNS0yOS40IDQyLjctNDMuMXpNNDQ4IDI1NmEzMiAzMiAwIDEgMCAtNjQgMCAzMiAzMiAwIDEgMCA2NCAweiJdfSxFUmU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZHJ1bXN0aWNrLWJpdGUiLGljb246WzUxMiw1MTIsW10sImY2ZDciLCJNMTYwIDI2NS4yYzAgOC41LTMuNCAxNi42LTkuNCAyMi42bC0yNi44IDI2LjhjLTEyLjMgMTIuMy0zMi41IDExLjQtNDkuNCA3LjItNC42LTEuMS05LjUtMS44LTE0LjUtMS44LTMzLjEgMC02MCAyNi45LTYwIDYwczI2LjkgNjAgNjAgNjBjNi4zIDAgMTIgNS43IDEyIDEyIDAgMzMuMSAyNi45IDYwIDYwIDYwczYwLTI2LjkgNjAtNjBjMC01LS42LTkuOC0xLjgtMTQuNS00LjItMTYuOS01LjItMzcuMSA3LjItNDkuNGwyNi44LTI2LjhjNi02IDE0LjEtOS40IDIyLjYtOS40bDg5LjIgMGM2LjMgMCAxMi40LS4zIDE4LjUtMSAxMS45LTEuMiAxNi40LTE1LjUgMTAuOC0yNi04LjUtMTUuOC0xMy4zLTMzLjgtMTMuMy01MyAwLTYxLjkgNTAuMS0xMTIgMTEyLTExMiA4IDAgMTUuNyAuOCAyMy4yIDIuNCAxMS43IDIuNSAyNC4xLTUuOSAyMi0xNy42LTE0LjctODIuMy04Ni43LTE0NC44LTE3My4yLTE0NC44LTk3LjIgMC0xNzYgNzguOC0xNzYgMTc2bDAgODkuMnoiXX0sUFJlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImNoYXJ0LXNpbXBsZSIsaWNvbjpbNTEyLDUxMixbXSwiZTQ3MyIsIk0xOTIgODBjMC0yNi41IDIxLjUtNDggNDgtNDhsMzIgMGMyNi41IDAgNDggMjEuNSA0OCA0OGwwIDM1MmMwIDI2LjUtMjEuNSA0OC00OCA0OGwtMzIgMGMtMjYuNSAwLTQ4LTIxLjUtNDgtNDhsMC0zNTJ6TTAgMjcyYzAtMjYuNSAyMS41LTQ4IDQ4LTQ4bDMyIDBjMjYuNSAwIDQ4IDIxLjUgNDggNDhsMCAxNjBjMCAyNi41LTIxLjUgNDgtNDggNDhsLTMyIDBjLTI2LjUgMC00OC0yMS41LTQ4LTQ4TDAgMjcyek00MzIgOTZsMzIgMGMyNi41IDAgNDggMjEuNSA0OCA0OGwwIDI4OGMwIDI2LjUtMjEuNSA0OC00OCA0OGwtMzIgMGMtMjYuNSAwLTQ4LTIxLjUtNDgtNDhsMC0yODhjMC0yNi41IDIxLjUtNDggNDgtNDh6Il19LElSZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJhdG9tIixpY29uOls0NDgsNTEyLFs5ODgzXSwiZjVkMiIsIk0yMjQgMzk4LjhjLTExLjggNS4xLTIzLjQgOS43LTM0LjkgMTMuNSAxNi43IDMzLjggMzEgMzUuNyAzNC45IDM1LjdzMTguMS0xLjkgMzQuOS0zNS43Yy0xMS40LTMuOS0yMy4xLTguNC0zNC45LTEzLjV6TTQxNCAyNTZjMzMgNDUuMiA0NC4zIDkwLjkgMjMuNiAxMjgtMjAuMiAzNi4zLTYyLjUgNDkuMy0xMTUuMiA0My4yLTIyIDUyLjEtNTUuNyA4NC44LTk4LjQgODQuOHMtNzYuNC0zMi43LTk4LjQtODQuOEM3Mi45IDQzMy4zIDMwLjYgNDIwLjMgMTAuNCAzODQtMTAuMyAzNDYuOSAxIDMwMS4yIDM0IDI1NiAxIDIxMC44LTEwLjMgMTY1LjEgMTAuNCAxMjggMzAuNiA5MS43IDcyLjkgNzguNyAxMjUuNiA4NC44IDE0Ny42IDMyLjcgMTgxLjIgMCAyMjQgMHM3Ni40IDMyLjcgOTguNCA4NC44YzUyLjctNi4xIDk1IDYuOCAxMTUuMiA0My4yIDIwLjcgMzcuMSA5LjQgODIuOC0yMy42IDEyOHptLTY1LjggNjcuNGMtMS43IDE0LjItMy45IDI4LTYuNyA0MS4yIDMxLjggMS40IDM4LjYtOC43IDQwLjItMTEuNyAyLjMtNC4yIDctMTcuOS0xMS45LTQ4LjEtNi44IDYuMy0xNCAxMi41LTIxLjYgMTguNnptLTYuNy0xNzUuOWMyLjggMTMuMSA1IDI2LjkgNi43IDQxLjIgNy42IDYuMSAxNC44IDEyLjMgMjEuNiAxOC42IDE4LjktMzAuMiAxNC4yLTQ0IDExLjktNDguMS0xLjYtMi45LTguNC0xMy00MC4yLTExLjd6TTI1OC45IDk5LjdDMjQyLjEgNjUuOSAyMjcuOSA2NCAyMjQgNjRzLTE4LjEgMS45LTM0LjkgMzUuN2MxMS40IDMuOSAyMy4xIDguNCAzNC45IDEzLjUgMTEuOC01LjEgMjMuNC05LjcgMzQuOS0xMy41em0tMTU5IDg4LjljMS43LTE0LjMgMy45LTI4IDYuNy00MS4yLTMxLjgtMS40LTM4LjYgOC43LTQwLjIgMTEuNy0yLjMgNC4yLTcgMTcuOSAxMS45IDQ4LjEgNi44LTYuMyAxNC0xMi41IDIxLjYtMTguNnpNNzguMiAzMDQuOGMtMTguOSAzMC4yLTE0LjIgNDQtMTEuOSA0OC4xIDEuNiAyLjkgOC40IDEzIDQwLjIgMTEuNy0yLjgtMTMuMS01LTI2LjktNi43LTQxLjItNy42LTYuMS0xNC44LTEyLjMtMjEuNi0xOC42ek0zMDQgMjU2YTgwIDgwIDAgMSAwIC0xNjAgMCA4MCA4MCAwIDEgMCAxNjAgMHptLTgwLTMyYTMyIDMyIDAgMSAxIDAgNjQgMzIgMzIgMCAxIDEgMC02NHoiXX0sTlJlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InAiLGljb246WzMyMCw1MTIsWzExMl0sIjUwIiwiTTAgNjRDMCA0Ni4zIDE0LjMgMzIgMzIgMzJsMTI4IDBjODguNCAwIDE2MCA3MS42IDE2MCAxNjBTMjQ4LjQgMzUyIDE2MCAzNTJsLTk2IDAgMCA5NmMwIDE3LjctMTQuMyAzMi0zMiAzMlMwIDQ2NS43IDAgNDQ4TDAgNjR6TTY0IDI4OGw5NiAwYzUzIDAgOTYtNDMgOTYtOTZzLTQzLTk2LTk2LTk2bC05NiAwIDAgMTkyeiJdfSxGUmU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiamV0LWZpZ2h0ZXItdXAiLGljb246WzUxMiw1MTIsW10sImU1MTgiLCJNMjA2LjggNDcuOEMyMDIuMyA1OC41IDIwMCA3MCAyMDAgODEuNmwwIDEwMC40LTE1MiAxMTQgMC00OGMwLTEzLjMtMTAuNy0yNC0yNC0yNFMwIDIzNC43IDAgMjQ4TDAgMzkyYzAgMTMuMyAxMC43IDI0IDI0IDI0czI0LTEwLjcgMjQtMjRsMC04IDE1MiAwIDAgNTQuNC02NiA1Mi44Yy0zLjggMy02IDcuNi02IDEyLjVsMCAyNC4zYzAgOC44IDcuMiAxNiAxNiAxNmw4OCAwIDAtNDBjMC0xMy4zIDEwLjctMjQgMjQtMjRzMjQgMTAuNyAyNCAyNGwwIDQwIDg4IDBjOC44IDAgMTYtNy4yIDE2LTE2bDAtMjQuM2MwLTQuOS0yLjItOS41LTYtMTIuNWwtNjYtNTIuOCAwLTU0LjQgMTUyIDAgMCA4YzAgMTMuMyAxMC43IDI0IDI0IDI0czI0LTEwLjcgMjQtMjRsMC0xNDRjMC0xMy4zLTEwLjctMjQtMjQtMjRzLTI0IDEwLjctMjQgMjRsMCA0OC0xNTItMTE0IDAtMTAwLjRjMC0xMS42LTIuMy0yMy4xLTYuOC0zMy44bC0yNy4xLTY1QzI3NC40LTI2LjIgMjY1LjctMzIgMjU2LTMycy0xOC40IDUuOC0yMi4yIDE0LjhsLTI3LjEgNjV6Il19LE9SZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJwbHVnLWNpcmNsZS14bWFyayIsaWNvbjpbNjQwLDUxMixbXSwiZTU2MCIsIk0xOTItMzJjMTcuNyAwIDMyIDE0LjMgMzIgMzJsMCA5NiAxMjggMCAwLTk2YzAtMTcuNyAxNC4zLTMyIDMyLTMyczMyIDE0LjMgMzIgMzJsMCA5NiA2NCAwYzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMybDAgNDguN2MtOTguNiA4LjEtMTc2IDkwLjctMTc2IDE5MS4zIDAgMjcuMyA1LjcgNTMuMyAxNiA3Ni45bDAgMy4xYzAgMTcuNy0xNC4zIDMyLTMyIDMycy0zMi0xNC4zLTMyLTMybDAtNjYuN0MxNjUuMiAzOTguMSA5NiAzMTkuMSA5NiAyMjRsMC02NGMtMTcuNyAwLTMyLTE0LjMtMzItMzJTNzguMyA5NiA5NiA5Nmw2NCAwIDAtOTZjMC0xNy43IDE0LjMtMzIgMzItMzJ6TTQ5NiAyNTZhMTQ0IDE0NCAwIDEgMSAwIDI4OCAxNDQgMTQ0IDAgMSAxIDAtMjg4em01OS4zIDEwNy4zYzYuMi02LjIgNi4yLTE2LjQgMC0yMi42cy0xNi40LTYuMi0yMi42IDBsLTM2LjcgMzYuNy0zNi43LTM2LjdjLTYuMi02LjItMTYuNC02LjItMjIuNiAwcy02LjIgMTYuNCAwIDIyLjZsMzYuNyAzNi43LTM2LjcgMzYuN2MtNi4yIDYuMi02LjIgMTYuNCAwIDIyLjZzMTYuNCA2LjIgMjIuNiAwbDM2LjctMzYuNyAzNi43IDM2LjdjNi4yIDYuMiAxNi40IDYuMiAyMi42IDBzNi4yLTE2LjQgMC0yMi42bC0zNi43LTM2LjcgMzYuNy0zNi43eiJdfSxSUmU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToic2hlZXQtcGxhc3RpYyIsaWNvbjpbMzg0LDUxMixbXSwiZTU3MSIsIk0wIDQ0OGMwIDM1LjMgMjguNyA2NCA2NCA2NGwxNDkuNSAwYzE3IDAgMzMuMy02LjcgNDUuMy0xOC43TDM2NS4zIDM4Ni43YzEyLTEyIDE4LjctMjguMyAxOC43LTQ1LjNMMzg0IDY0YzAtMzUuMy0yOC43LTY0LTY0LTY0TDY0IDBDMjguNyAwIDAgMjguNyAwIDY0TDAgNDQ4em0yMDggNS41bDAtOTMuNWMwLTEzLjMgMTAuNy0yNCAyNC0yNGw5My41IDAtMTE3LjUgMTE3LjV6TTE1MyAxMDVsLTQ4IDQ4Yy05LjQgOS40LTI0LjYgOS40LTMzLjkgMHMtOS40LTI0LjYgMC0zMy45bDQ4LTQ4YzkuNC05LjQgMjQuNi05LjQgMzMuOSAwczkuNCAyNC42IDAgMzMuOXptOTYgMzJMMTM3IDI0OWMtOS40IDkuNC0yNC42IDkuNC0zMy45IDBzLTkuNC0yNC42IDAtMzMuOUwyMTUgMTAzYzkuNC05LjQgMjQuNi05LjQgMzMuOSAwczkuNCAyNC42IDAgMzMuOXoiXX0sQlJlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InYiLGljb246WzM4NCw1MTIsWzExOF0sIjU2IiwiTTE5LjcgMzQuNWMxNi4zLTYuOCAzNSAuOSA0MS44IDE3LjJMMTkyIDM2NC44IDMyMi41IDUxLjdjNi44LTE2LjMgMjUuNS0yNCA0MS44LTE3LjJzMjQgMjUuNSAxNy4yIDQxLjhsLTE2MCAzODRjLTUgMTEuOS0xNi42IDE5LjctMjkuNSAxOS43cy0yNC42LTcuOC0yOS41LTE5LjdMMi41IDc2LjNjLTYuOC0xNi4zIC45LTM1IDE3LjItNDEuOHoiXX0sR1I9e3ByZWZpeDoiZmFzIixpY29uTmFtZToibGlzdCIsaWNvbjpbNTEyLDUxMixbImxpc3Qtc3F1YXJlcyJdLCJmMDNhIiwiTTQwIDQ4QzI2LjcgNDggMTYgNTguNyAxNiA3MmwwIDQ4YzAgMTMuMyAxMC43IDI0IDI0IDI0bDQ4IDBjMTMuMyAwIDI0LTEwLjcgMjQtMjRsMC00OGMwLTEzLjMtMTAuNy0yNC0yNC0yNEw0MCA0OHpNMTkyIDY0Yy0xNy43IDAtMzIgMTQuMy0zMiAzMnMxNC4zIDMyIDMyIDMybDI4OCAwYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMyTDE5MiA2NHptMCAxNjBjLTE3LjcgMC0zMiAxNC4zLTMyIDMyczE0LjMgMzIgMzIgMzJsMjg4IDBjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJsLTI4OCAwem0wIDE2MGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJzMTQuMyAzMiAzMiAzMmwyODggMGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMmwtMjg4IDB6TTE2IDIzMmwwIDQ4YzAgMTMuMyAxMC43IDI0IDI0IDI0bDQ4IDBjMTMuMyAwIDI0LTEwLjcgMjQtMjRsMC00OGMwLTEzLjMtMTAuNy0yNC0yNC0yNGwtNDggMGMtMTMuMyAwLTI0IDEwLjctMjQgMjR6TTQwIDM2OGMtMTMuMyAwLTI0IDEwLjctMjQgMjRsMCA0OGMwIDEzLjMgMTAuNyAyNCAyNCAyNGw0OCAwYzEzLjMgMCAyNC0xMC43IDI0LTI0bDAtNDhjMC0xMy4zLTEwLjctMjQtMjQtMjRsLTQ4IDB6Il19LEhSZT1HUixxUmU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToicGlzY2VzIixpY29uOls0NDgsNTEyLFtdLCJlODRjIiwiTTQwLjQgMTAuNGMxMS45LTEzIDMyLjItMTMuOSA0NS4yLTIgMi45IDIuNyAyOC4zIDI2LjcgNTMuNiA2Ny44IDIyLjMgMzYuMiA0NSA4Ni42IDUxLjEgMTQ3LjhsNjcuMyAwYzYuMS02MS4xIDI4LjgtMTExLjYgNTEuMS0xNDcuOCAyNS4zLTQxLjEgNTAuNy02NS4xIDUzLjYtNjcuOCAxMy0xMS45IDMzLjMtMTEuMSA0NS4yIDIgMTEuOSAxMyAxMSAzMy4zLTIgNDUuMi0xLjQgMS4zLTIyIDIxLjEtNDIuNCA1NC4yLTE3LjkgMjkuMS0zNS40IDY4LTQxLjIgMTE0LjJsOTQgMCAzLjMgLjJjMTYuMSAxLjYgMjguNyAxNS4zIDI4LjcgMzEuOHMtMTIuNiAzMC4yLTI4LjcgMzEuOGwtMy4zIC4yLTk0IDBjNS44IDQ2LjIgMjMuMyA4NS4xIDQxLjIgMTE0LjIgMjAuNCAzMy4xIDQxIDUyLjkgNDIuNCA1NC4yIDEzIDExLjkgMTMuOSAzMi4yIDIgNDUuMi0xMS45IDEzLTMyLjIgMTMuOS00NS4yIDItMi45LTIuNy0yOC4zLTI2LjctNTMuNi02Ny44LTIyLjMtMzYuMi00NS04Ni42LTUxLjEtMTQ3LjhsLTY3LjMgMGMtNi4xIDYxLjEtMjguOCAxMTEuNi01MS4xIDE0Ny44LTI1LjMgNDEuMS01MC43IDY1LjEtNTMuNiA2Ny44LTEzIDExLjktMzMuMyAxMS4xLTQ1LjItMi0xMS45LTEzLTExLTMzLjMgMi00NS4yIDEuNC0xLjMgMjItMjEuMSA0Mi40LTU0LjIgMTcuOS0yOS4xIDM1LjQtNjggNDEuMi0xMTQuMmwtOTQgMGMtMTcuNyAwLTMyLTE0LjMtMzItMzJzMTQuMy0zMiAzMi0zMmw5NCAwYy01LjgtNDYuMi0yMy4zLTg1LjEtNDEuMi0xMTQuMi0yMC40LTMzLjEtNDEtNTIuOS00Mi40LTU0LjItMTMtMTEuOS0xMy45LTMyLjItMi00NS4yeiJdfSxWUmU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToic29sYXItcGFuZWwiLGljb246WzU3Niw1MTIsW10sImY1YmEiLCJNMTIxLjggMzJjLTMwIDAtNTYgMjAuOC02Mi41IDUwLjFMOS42IDMwNi4xQy43IDM0Ni4xIDMxLjEgMzg0IDcyIDM4NGwxODQuMSAwIDAgNjQtNjQgMGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJzMTQuMyAzMiAzMiAzMmwxOTIgMGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMmwtNjQgMCAwLTY0IDE4NC4xIDBjNDAuOSAwIDcxLjQtMzcuOSA2Mi41LTc3LjlsLTQ5LjgtMjI0QzUxMC40IDUyLjggNDg0LjUgMzIgNDU0LjUgMzJMMTIxLjggMzJ6TTI0NS42IDk2bDg1LjIgMCA3LjMgODgtOTkuOCAwIDcuMy04OHptLTU1LjUgODhsLTg3LjggMCAxOS42LTg4IDc1LjYgMC03LjMgODh6TTkxLjYgMjMybDk0LjUgMC03LjMgODgtMTA2LjcgMCAxOS42LTg4em0xNDIuNiAwbDEwNy44IDAgNy4zIDg4LTEyMi41IDAgNy4zLTg4em0xNTYgMGw5NC41IDAgMTkuNiA4OC0xMDYuNyAwLTcuMy04OHpNNDc0IDE4NGwtODcuOCAwLTcuMy04OCA3NS42IDAgMTkuNiA4OHoiXX0salJlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImxhbmQtbWluZS1vbiIsaWNvbjpbNTc2LDUxMixbXSwiZTUxYiIsIk0zMTIgMGwwIDEyOGMwIDEzLjMtMTAuNyAyNC0yNCAyNHMtMjQtMTAuNy0yNC0yNEwyNjQgMGMwLTEzLjMgMTAuNy0yNCAyNC0yNHMyNCAxMC43IDI0IDI0ek0xNjAgMjg4YzAtMTcuNyAxNC4zLTMyIDMyLTMybDE5MiAwYzE3LjcgMCAzMiAxNC4zIDMyIDMybDAgMzIgODAgMGMyNi41IDAgNDggMjEuNSA0OCA0OGwwIDk2YzAgMjYuNS0yMS41IDQ4LTQ4IDQ4TDgwIDUxMmMtMjYuNSAwLTQ4LTIxLjUtNDgtNDhsMC05NmMwLTI2LjUgMjEuNS00OCA0OC00OGw4MCAwIDAtMzJ6TTEyIDExNC43YzcuNC0xMSAyMi4zLTE0IDMzLjMtNi43bDk2IDY0YzExIDcuNCAxNCAyMi4zIDYuNyAzMy4zcy0yMi4zIDE0LTMzLjMgNi43bC05Ni02NGMtMTEtNy40LTE0LTIyLjMtNi43LTMzLjN6TTUzMC43IDEwOGMxMS03LjQgMjUuOS00LjQgMzMuMyA2LjdzNC40IDI1LjktNi43IDMzLjNsLTk2IDY0Yy0xMSA3LjQtMjUuOSA0LjQtMzMuMy02LjdzLTQuNC0yNS45IDYuNy0zMy4zbDk2LTY0eiJdfSxfbT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJoZWFkcGhvbmVzIixpY29uOls0NDgsNTEyLFsxMjc5MTEsNjI4NjMsImhlYWRwaG9uZXMtYWx0IiwiaGVhZHBob25lcy1zaW1wbGUiXSwiZjAyNSIsIk02NCAyMjRjMC04OC40IDcxLjYtMTYwIDE2MC0xNjBzMTYwIDcxLjYgMTYwIDE2MGwwIDM3LjVjLTEwLTMuNS0yMC44LTUuNS0zMi01LjVsLTE2IDBjLTI2LjUgMC00OCAyMS41LTQ4IDQ4bDAgMTI4YzAgMjYuNSAyMS41IDQ4IDQ4IDQ4bDE2IDBjNTMgMCA5Ni00MyA5Ni05NmwwLTE2MEM0NDggMTAwLjMgMzQ3LjcgMCAyMjQgMFMwIDEwMC4zIDAgMjI0TDAgMzg0YzAgNTMgNDMgOTYgOTYgOTZsMTYgMGMyNi41IDAgNDgtMjEuNSA0OC00OGwwLTEyOGMwLTI2LjUtMjEuNS00OC00OC00OGwtMTYgMGMtMTEuMiAwLTIyIDEuOS0zMiA1LjVMNjQgMjI0eiJdfSxVUmU9X20sV1JlPV9tLEdSZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJidXMiLGljb246WzQ0OCw1MTIsWzEyODY1M10sImYyMDciLCJNOTYgMEM0MyAwIDAgNDMgMCA5NkwwIDM4NGMwIDI5LjggMjAuNCA1NC45IDQ4IDYybDAgMzRjMCAxNy43IDE0LjMgMzIgMzIgMzJsMTYgMGMxNy43IDAgMzItMTQuMyAzMi0zMmwwLTMyIDE5MiAwIDAgMzJjMCAxNy43IDE0LjMgMzIgMzIgMzJsMTYgMGMxNy43IDAgMzItMTQuMyAzMi0zMmwwLTM0YzI3LjYtNy4xIDQ4LTMyLjIgNDgtNjJsMC0yODhjMC01My00My05Ni05Ni05Nkw5NiAwek02NCAxNzZjMC0xNy43IDE0LjMtMzIgMzItMzJsMTA0IDAgMCAxMTItMTA0IDBjLTE3LjcgMC0zMi0xNC4zLTMyLTMybDAtNDh6bTE4NCA4MGwwLTExMiAxMDQgMGMxNy43IDAgMzIgMTQuMyAzMiAzMmwwIDQ4YzAgMTcuNy0xNC4zIDMyLTMyIDMybC0xMDQgMHpNOTYgMzIwYTMyIDMyIDAgMSAxIDAgNjQgMzIgMzIgMCAxIDEgMC02NHptMjU2IDBhMzIgMzIgMCAxIDEgMCA2NCAzMiAzMiAwIDEgMSAwLTY0ek0xNTIgNzJjMC0xMy4zIDEwLjctMjQgMjQtMjRsOTYgMGMxMy4zIDAgMjQgMTAuNyAyNCAyNHMtMTAuNyAyNC0yNCAyNGwtOTYgMGMtMTMuMyAwLTI0LTEwLjctMjQtMjR6Il19LFlSZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJmaWxlLXBvd2VycG9pbnQiLGljb246WzM4NCw1MTIsW10sImYxYzQiLCJNMCA2NEMwIDI4LjcgMjguNyAwIDY0IDBMMjEzLjUgMGMxNyAwIDMzLjMgNi43IDQ1LjMgMTguN0wzNjUuMyAxMjUuM2MxMiAxMiAxOC43IDI4LjMgMTguNyA0NS4zTDM4NCA0NDhjMCAzNS4zLTI4LjcgNjQtNjQgNjRMNjQgNTEyYy0zNS4zIDAtNjQtMjguNy02NC02NEwwIDY0em0yMDgtNS41bDAgOTMuNWMwIDEzLjMgMTAuNyAyNCAyNCAyNEwzMjUuNSAxNzYgMjA4IDU4LjV6TTE1MiAyNTZjLTEzLjMgMC0yNCAxMC43LTI0IDI0bDAgMTQ0YzAgMTMuMyAxMC43IDI0IDI0IDI0czI0LTEwLjcgMjQtMjRsMC0yNCAyNCAwYzM5LjggMCA3Mi0zMi4yIDcyLTcycy0zMi4yLTcyLTcyLTcybC00OCAwem00OCA5NmwtMjQgMCAwLTQ4IDI0IDBjMTMuMyAwIDI0IDEwLjcgMjQgMjRzLTEwLjcgMjQtMjQgMjR6Il19LFlSPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InF1b3RlLWxlZnQiLGljb246WzQ0OCw1MTIsWzgyMjAsInF1b3RlLWxlZnQtYWx0Il0sImYxMGQiLCJNMCAyMTZDMCAxNDkuNyA1My43IDk2IDEyMCA5Nmw4IDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJsLTggMGMtMzAuOSAwLTU2IDI1LjEtNTYgNTZsMCA4IDY0IDBjMzUuMyAwIDY0IDI4LjcgNjQgNjRsMCA2NGMwIDM1LjMtMjguNyA2NC02NCA2NGwtNjQgMGMtMzUuMyAwLTY0LTI4LjctNjQtNjRMMCAyMTZ6bTI1NiAwYzAtNjYuMyA1My43LTEyMCAxMjAtMTIwbDggMGMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMmwtOCAwYy0zMC45IDAtNTYgMjUuMS01NiA1NmwwIDggNjQgMGMzNS4zIDAgNjQgMjguNyA2NCA2NGwwIDY0YzAgMzUuMy0yOC43IDY0LTY0IDY0bC02NCAwYy0zNS4zIDAtNjQtMjguNy02NC02NGwwLTEzNnoiXX0sWlJlPVlSLFhSZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJjaGV2cm9uLWRvd24iLGljb246WzQ0OCw1MTIsW10sImYwNzgiLCJNMjAxLjQgNDA2LjZjMTIuNSAxMi41IDMyLjggMTIuNSA0NS4zIDBsMTkyLTE5MmMxMi41LTEyLjUgMTIuNS0zMi44IDAtNDUuM3MtMzIuOC0xMi41LTQ1LjMgMEwyMjQgMzM4LjcgNTQuNiAxNjkuNGMtMTIuNS0xMi41LTMyLjgtMTIuNS00NS4zIDBzLTEyLjUgMzIuOCAwIDQ1LjNsMTkyIDE5MnoiXX0sWlI9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZWFydGgtYXNpYSIsaWNvbjpbNTEyLDUxMixbMTI3NzU5LCJnbG9iZS1hc2lhIl0sImY1N2UiLCJNNTAgMjg0LjhjNC4yIDIuMSA5IDMuMiAxNCAzLjJsNTAuNyAwYzguNSAwIDE2LjYgMy40IDIyLjYgOS40bDEzLjMgMTMuM2M2IDYgMTQuMSA5LjQgMjIuNiA5LjRsMTguNyAwYzE3LjcgMCAzMi0xNC4zIDMyLTMybDAtNDBjMC0xMy4zIDEwLjctMjQgMjQtMjRzMjQtMTAuNyAyNC0yNGwwLTQyLjdjMC04LjUgMy40LTE2LjYgOS40LTIyLjZsMTMuMy0xMy4zYzYtNiA5LjQtMTQuMSA5LjQtMjIuNkwzMDQgNTdjMC0xLjItLjEtMi4zLS4yLTMuNS0xNS40LTMuNi0zMS40LTUuNS00Ny44LTUuNS0xMTQuOSAwLTIwOCA5My4xLTIwOCAyMDggMCA5LjggLjcgMTkuNCAyIDI4Ljh6bTQwMy4zIDM3LjNjLTMuMi0xLjQtNi43LTIuMS0xMC41LTIuMUw0MzIgMzIwYy04LjggMC0xNi03LjItMTYtMTZzLTcuMi0xNi0xNi0xNmwtMzQuNyAwYy04LjUgMC0xNi42IDMuNC0yMi42IDkuNGwtNDUuMyA0NS4zYy02IDYtOS40IDE0LjEtOS40IDIyLjZsMCAxOC43YzAgMTcuNyAxNC4zIDMyIDMyIDMybDE4LjcgMGM4LjUgMCAxNi42IDMuNCAyMi42IDkuNCAyLjIgMi4yIDQuNyA0LjEgNy4zIDUuNSAzOS4zLTI1LjQgNjkuNS02My42IDg0LjYtMTA4Ljh6TTAgMjU2YTI1NiAyNTYgMCAxIDEgNTEyIDAgMjU2IDI1NiAwIDEgMSAtNTEyIDB6TTEyOCAzNjhjMCA4LjggNy4yIDE2IDE2IDE2bDMyIDBjOC44IDAgMTYtNy4yIDE2LTE2cy03LjItMTYtMTYtMTZsLTMyIDBjLTguOCAwLTE2IDcuMi0xNiAxNnpNMjcyIDI1NmMtOC44IDAtMTYgNy4yLTE2IDE2bDAgMzJjMCA4LjggNy4yIDE2IDE2IDE2czE2LTcuMiAxNi0xNmwwLTMyYzAtOC44LTcuMi0xNi0xNi0xNnptNDgtMTEybDAgMzJjMCA4LjggNy4yIDE2IDE2IDE2czE2LTcuMiAxNi0xNmwwLTMyYzAtOC44LTcuMi0xNi0xNi0xNnMtMTYgNy4yLTE2IDE2eiJdfSxLUmU9WlIsUVJlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImNlbnQtc2lnbiIsaWNvbjpbMzg0LDUxMixbXSwiZTNmNSIsIk0yMDggMGMxNy43IDAgMzIgMTQuMyAzMiAzMmwwIDI1LjRjNDMuNiA1LjIgODMgMjQuNSAxMTMuMyA1My4xIDEyLjkgMTIuMSAxMy40IDMyLjQgMS4zIDQ1LjJzLTMyLjQgMTMuNC00NS4yIDEuM2MtMjQuNC0yMy01Ny4yLTM3LjEtOTMuMy0zNy4xLTc1LjEgMC0xMzYgNjAuOS0xMzYgMTM2czYwLjkgMTM2IDEzNiAxMzZjMzYuMiAwIDY5LTE0LjEgOTMuMy0zNy4xIDEyLjktMTIuMSAzMy4xLTExLjUgNDUuMiAxLjNzMTEuNSAzMy4xLTEuMyA0NS4yQzMyMyA0MzAuMSAyODMuNiA0NDkuNCAyNDAgNDU0LjZsMCAyNS40YzAgMTcuNy0xNC4zIDMyLTMyIDMycy0zMi0xNC4zLTMyLTMybDAtMjhDODQuNyA0MzMuNSAxNiAzNTIuOCAxNiAyNTZTODQuNyA3OC41IDE3NiA2MGwwLTI4YzAtMTcuNyAxNC4zLTMyIDMyLTMyeiJdfSxKUmU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToic2hpZWxkLWNhdCIsaWNvbjpbNTEyLDUxMixbXSwiZTU3MiIsIk0yNjkuNCAyLjlDMjY1LjIgMSAyNjAuNyAwIDI1NiAwcy05LjIgMS0xMy40IDIuOUw1NC4zIDgyLjhjLTIyIDkuMy0zOC40IDMxLTM4LjMgNTcuMiAuNSA5OS4yIDQxLjMgMjgwLjcgMjEzLjYgMzYzLjIgMTYuNyA4IDM2LjEgOCA1Mi44IDAgMTcyLjQtODIuNSAyMTMuMi0yNjQgMjEzLjYtMzYzLjIgLjEtMjYuMi0xNi4zLTQ3LjktMzguMy01Ny4yTDI2OS40IDIuOXpNMTYwIDE1NC40YzAtNS44IDQuNy0xMC40IDEwLjQtMTAuNGwuMiAwYzMuNCAwIDYuNSAxLjYgOC41IDQuM2w0MCA1My4zYzMgNCA3LjggNi40IDEyLjggNi40bDQ4IDBjNSAwIDkuOC0yLjQgMTIuOC02LjRsNDAtNTMuM2MyLTIuNyA1LjItNC4zIDguNS00LjNsLjIgMGM1LjggMCAxMC40IDQuNyAxMC40IDEwLjRMMzUyIDI3MmMwIDUzLTQzIDk2LTk2IDk2cy05Ni00My05Ni05NmwwLTExNy42ek0yMTYgMjg4YTE2IDE2IDAgMSAwIDAtMzIgMTYgMTYgMCAxIDAgMCAzMnptOTYtMTZhMTYgMTYgMCAxIDAgLTMyIDAgMTYgMTYgMCAxIDAgMzIgMHoiXX0sZUJlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InNjaG9vbC1jaXJjbGUtY2hlY2siLGljb246WzY0MCw1MTIsW10sImU1NmIiLCJNNjQgMTI4Yy0zNS4zIDAtNjQgMjguNy02NCA2NEwwIDQ0OGMwIDM1LjMgMjguNyA2NCA2NCA2NGwyNzYgMGMtMTAuNS0xNC42LTE5LTMwLjctMjUuMS00OGwtOTAuOSAwIDAtODhjMC0yMi4xIDE3LjktNDAgNDAtNDBsNDggMGMxIDAgMS45IDAgMi45IC4xIDI2LjMtNzQuNiA5Ny41LTEyOC4xIDE4MS4xLTEyOC4xIDI4LjYgMCA1NS42IDYuMiA4MCAxNy40bDAtMzMuNGMwLTM1LjMtMjguNy02NC02NC02NGwtNjQgMC0xMjcuOS0xMTUuMWMtMTguMy0xNi40LTQ2LTE2LjQtNjQuMiAwTDEyOCAxMjggNjQgMTI4em02NCAyNDBjMCA4LjgtNy4yIDE2LTE2IDE2bC0zMiAwYy04LjggMC0xNi03LjItMTYtMTZsMC0zMmMwLTguOCA3LjItMTYgMTYtMTZsMzIgMGM4LjggMCAxNiA3LjIgMTYgMTZsMCAzMnpNMTEyIDI1NmwtMzIgMGMtOC44IDAtMTYtNy4yLTE2LTE2bDAtMzJjMC04LjggNy4yLTE2IDE2LTE2bDMyIDBjOC44IDAgMTYgNy4yIDE2IDE2bDAgMzJjMCA4LjgtNy4yIDE2LTE2IDE2ek0yODggMTI4YTY0IDY0IDAgMSAxIDAgMTI4IDY0IDY0IDAgMSAxIDAtMTI4ek02NDAgNDAwYTE0NCAxNDQgMCAxIDAgLTI4OCAwIDE0NCAxNDQgMCAxIDAgMjg4IDB6bS04Ni42LTYwLjljNy4xIDUuMiA4LjcgMTUuMiAzLjUgMjIuM2wtNjQgODhjLTIuOCAzLjgtNyA2LjItMTEuNyA2LjVzLTkuMy0xLjMtMTIuNi00LjZsLTQwLTQwYy02LjItNi4yLTYuMi0xNi40IDAtMjIuNnMxNi40LTYuMiAyMi42IDBsMjYuOCAyNi44IDUzLTcyLjljNS4yLTcuMSAxNS4yLTguNyAyMi40LTMuNXoiXX0sWFI9e3ByZWZpeDoiZmFzIixpY29uTmFtZToibWFydGluaS1nbGFzcyIsaWNvbjpbNTEyLDUxMixbMTI3ODY0LCJnbGFzcy1tYXJ0aW5pLWFsdCJdLCJmNTdiIiwiTTIuNCA1MS44QzcuNCAzOS44IDE5LjEgMzIgMzIgMzJsNDQ4IDBjMTIuOSAwIDI0LjYgNy44IDI5LjYgMTkuOHMyLjIgMjUuNy02LjkgMzQuOUwyODggMzAxLjMgMjg4IDQ0OCAzNTIgNDQ4YzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMybC0xOTIgMGMtMTcuNyAwLTMyLTE0LjMtMzItMzJzMTQuMy0zMiAzMi0zMmw2NCAwIDAtMTQ2LjctMjE0LjYtMjE0LjZDLjIgNzcuNS0yLjUgNjMuNyAyLjQgNTEuOHpNMzU0LjcgMTQ0bDQ4LTQ4LTI5My41IDAgNDggNDggMTk3LjUgMHoiXX0sdEJlPVhSLGFCZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJwbHVnIixpY29uOls0NDgsNTEyLFsxMjgyNjhdLCJmMWU2IiwiTTEyOC0zMmMxNy43IDAgMzIgMTQuMyAzMiAzMmwwIDk2IDEyOCAwIDAtOTZjMC0xNy43IDE0LjMtMzIgMzItMzJzMzIgMTQuMyAzMiAzMmwwIDk2IDY0IDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJsMCA2NGMwIDk1LjEtNjkuMiAxNzQuMS0xNjAgMTg5LjNsMCA2Ni43YzAgMTcuNy0xNC4zIDMyLTMyIDMycy0zMi0xNC4zLTMyLTMybDAtNjYuN0MxMDEuMiAzOTguMSAzMiAzMTkuMSAzMiAyMjRsMC02NGMtMTcuNyAwLTMyLTE0LjMtMzItMzJTMTQuMyA5NiAzMiA5Nmw2NCAwIDAtOTZjMC0xNy43IDE0LjMtMzIgMzItMzJ6Il19LGlCZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJwYW5vcmFtYSIsaWNvbjpbNTc2LDUxMixbXSwiZTIwOSIsIk00My45IDQ4QzE5LjcgNDggMCA2Ny43IDAgOTEuOUwwIDQyMC4xYzAgMjQuMyAxOS43IDQzLjkgNDMuOSA0My45IDUuNSAwIDEwLjctMSAxNS43LTIuOSAxMi45LTQuOSAxMDMuNC0zNy4xIDIyOC40LTM3LjFzMjE1LjUgMzIuMyAyMjguNCAzNy4xYzUgMS45IDEwLjIgMi45IDE1LjcgMi45IDI0LjMgMCA0My45LTE5LjcgNDMuOS00My45bDAtMzI4LjJjMC0yNC4zLTE5LjctNDMuOS00My45LTQzLjktNS41IDAtMTAuNyAxLTE1LjcgMi45LTEyLjkgNC45LTEwMy40IDM3LjEtMjI4LjQgMzcuMVM3Mi41IDU1LjcgNTkuNiA1MC45QzU0LjYgNDkgNDkuNCA0OCA0My45IDQ4ek03MiAxNzZhNDAgNDAgMCAxIDEgODAgMCA0MCA0MCAwIDEgMSAtODAgMHptMjY0LjEtMTZjNy41IDAgMTQuNiAzLjYgMTkuMSA5LjZMNDc5LjcgMzM2LjJjNS45IDcuOSA2LjQgMTguNSAxLjMgMjYuOXMtMTQuOCAxMi44LTI0LjUgMTEuMWMtNDUuOC03LjgtMTAzLjMtMTQuMi0xNjguNC0xNC4yLTY1LjYgMC0xMjMuNCA2LjUtMTY5LjMgMTQuNC05LjggMS43LTE5LjctMi45LTI0LjctMTEuNXMtNC4zLTE5LjQgMS45LTI3LjJMMTY1LjMgMjQ5YzQuNi01LjcgMTEuNS05IDE4LjctOXMxNC4yIDMuMyAxOC43IDlsMjcuNSAzNC40IDg2LjctMTEzLjljNC42LTYgMTEuNy05LjUgMTkuMi05LjV6Il19LGw4PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImNsb2NrLXJvdGF0ZS1sZWZ0IixpY29uOls1NzYsNTEyLFsiaGlzdG9yeSJdLCJmMWRhIiwiTTI4OCA2NGMxMDYgMCAxOTIgODYgMTkyIDE5MlMzOTQgNDQ4IDI4OCA0NDhjLTY1LjIgMC0xMjIuOS0zMi41LTE1Ny42LTgyLjMtMTAuMS0xNC41LTMwLjEtMTgtNDQuNi03LjlzLTE4IDMwLjEtNy45IDQ0LjZDMTI0LjEgNDY4LjYgMjAxIDUxMiAyODggNTEyIDQyOS40IDUxMiA1NDQgMzk3LjQgNTQ0IDI1NlM0MjkuNCAwIDI4OCAwQzIwMi4zIDAgMTI2LjUgNDIuMSA4MCAxMDYuN0w4MCA4MGMwLTE3LjctMTQuMy0zMi0zMi0zMlMxNiA2Mi4zIDE2IDgwbDAgMTEyYzAgMTcuNyAxNC4zIDMyIDMyIDMybDI0LjYgMGMuNSAwIDEgMCAxLjUgMGw4NiAwYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMybC0zOC4zIDBDMTU0LjkgMTAyLjYgMjE3IDY0IDI4OCA2NHptMjQgODhjMC0xMy4zLTEwLjctMjQtMjQtMjRzLTI0IDEwLjctMjQgMjRsMCAxMDRjMCA2LjQgMi41IDEyLjUgNyAxN2w3MiA3MmM5LjQgOS40IDI0LjYgOS40IDMzLjkgMHM5LjQtMjQuNiAwLTMzLjlsLTY1LTY1IDAtOTQuMXoiXX0sckJlPWw4LHNCZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJqYXItd2hlYXQiLGljb246WzMyMCw1MTIsW10sImU1MTciLCJNMzItOGMwLTEzLjMgMTAuNy0yNCAyNC0yNGwyMDggMGMxMy4zIDAgMjQgMTAuNyAyNCAyNHMtMTAuNyAyNC0yNCAyNEw1NiAxNkM0Mi43IDE2IDMyIDUuMyAzMi04ek0wIDEyOEMwIDkyLjcgMjguNyA2NCA2NCA2NGwxOTIgMGMzNS4zIDAgNjQgMjguNyA2NCA2NGwwIDMyMGMwIDM1LjMtMjguNyA2NC02NCA2NEw2NCA1MTJjLTM1LjMgMC02NC0yOC43LTY0LTY0TDAgMTI4em0xMTIgMzJsLTQyLjIgMGMtMy4yIDAtNS44IDIuNi01LjggNS44IDAgMzIuMSAyNiA1OC4yIDU4LjIgNTguMmw3NS42IDBjMzIuMSAwIDU4LjItMjYgNTguMi01OC4yIDAtMy4yLTIuNi01LjgtNS44LTUuOEwyMDggMTYwYy0xOS4xIDAtMzYuMyA4LjQtNDggMjEuNy0xMS43LTEzLjMtMjguOS0yMS43LTQ4LTIxLjd6bTQ4IDExNy43Yy0xMS43LTEzLjMtMjguOS0yMS43LTQ4LTIxLjdsLTQyLjIgMGMtMy4yIDAtNS44IDIuNi01LjggNS44IDAgMzIuMSAyNiA1OC4yIDU4LjIgNTguMmw3NS42IDBjMzIuMSAwIDU4LjItMjYgNTguMi01OC4yIDAtMy4yLTIuNi01LjgtNS44LTUuOEwyMDggMjU2Yy0xOS4xIDAtMzYuMyA4LjQtNDggMjEuN3pNMTEyIDM1MmwtNDIuMiAwYy0zLjIgMC01LjggMi42LTUuOCA1LjggMCAzMi4xIDI2IDU4LjIgNTguMiA1OC4ybDIxLjggMCAwIDMyYzAgOC44IDcuMiAxNiAxNiAxNnMxNi03LjIgMTYtMTZsMC0zMiAyMS44IDBjMzIuMSAwIDU4LjItMjYgNTguMi01OC4yIDAtMy4yLTIuNi01LjgtNS44LTUuOEwyMDggMzUyYy0xOS4xIDAtMzYuMyA4LjQtNDggMjEuNy0xMS43LTEzLjMtMjguOS0yMS43LTQ4LTIxLjd6Il19LFRtPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImNsb3VkLWFycm93LWRvd24iLGljb246WzU3Niw1MTIsWzYyMzM3LCJjbG91ZC1kb3dubG9hZCIsImNsb3VkLWRvd25sb2FkLWFsdCJdLCJmMGVkIiwiTTE0NCA0ODBjLTc5LjUgMC0xNDQtNjQuNS0xNDQtMTQ0IDAtNjMuNCA0MS0xMTcuMiA5Ny45LTEzNi41LTEuMy03LjctMS45LTE1LjUtMS45LTIzLjUgMC03OS41IDY0LjUtMTQ0IDE0NC0xNDQgNTUuNCAwIDEwMy41IDMxLjMgMTI3LjYgNzcuMSAxNC4yLTguMyAzMC44LTEzLjEgNDguNC0xMy4xIDUzIDAgOTYgNDMgOTYgOTYgMCAxNS43LTMuOCAzMC42LTEwLjUgNDMuNyA0NCAyMC4zIDc0LjUgNjQuNyA3NC41IDExNi4zIDAgNzAuNy01Ny4zIDEyOC0xMjggMTI4bC0zMDQgMHpNMzc3IDMxM2M5LjQtOS40IDkuNC0yNC42IDAtMzMuOXMtMjQuNi05LjQtMzMuOSAwbC0zMSAzMSAwLTEwMi4xYzAtMTMuMy0xMC43LTI0LTI0LTI0cy0yNCAxMC43LTI0IDI0bDAgMTAyLjEtMzEtMzFjLTkuNC05LjQtMjQuNi05LjQtMzMuOSAwcy05LjQgMjQuNiAwIDMzLjlsNzIgNzJjOS40IDkuNCAyNC42IDkuNCAzMy45IDBsNzItNzJ6Il19LG5CZT1UbSxvQmU9VG0sS1I9e3ByZWZpeDoiZmFzIixpY29uTmFtZToidHJ1Y2stcmFtcC1ib3giLGljb246WzU3Niw1MTIsWyJ0cnVjay1sb2FkaW5nIl0sImY0ZGUiLCJNNDAwIDMyYy00NC4yIDAtODAgMzUuOC04MCA4MGwwIDI0OC4yLTI5Ny4yIDg5LjJDNS45IDQ1NC40LTMuNyA0NzIuMyAxLjQgNDg5LjJzMjIuOSAyNi41IDM5LjggMjEuNWwzMTUuNS05NC42IDQzLjcgMGMtLjIgMi42LS40IDUuMy0uNCA4IDAgNDguNiAzOS40IDg4IDg4IDg4czg4LTM5LjQgODgtODhsMC0zOTItMTc2IDB6TTUyOCA0MjRjMCAyMi4xLTE3LjkgNDAtNDAgNDBzLTQwLTE3LjktNDAtNDAgMTcuOS00MCA0MC00MGMyMi4xIDAgMzkuOSAxNy45IDQwIDM5LjlsMCAuMXpNNTEuOSAxNDkuNUMxOC4xIDE1OS44LS45IDE5NS42IDkuNCAyMjkuNGwyOC4xIDkxLjhDNDcuOCAzNTUgODMuNiAzNzQgMTE3LjQgMzYzLjdsOTEuOC0yOC4xYzMzLjgtMTAuMyA1Mi44LTQ2LjEgNDIuNS03OS45bC0yOC4xLTkxLjhjLTEwLjMtMzMuOC00Ni4xLTUyLjgtNzkuOS00Mi41TDUxLjkgMTQ5LjV6Il19LGxCZT1LUixjQmU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiYW5nbGUtZG93biIsaWNvbjpbMzg0LDUxMixbODk2NF0sImYxMDciLCJNMTY5LjQgMzc0LjZjMTIuNSAxMi41IDMyLjggMTIuNSA0NS4zIDBsMTYwLTE2MGMxMi41LTEyLjUgMTIuNS0zMi44IDAtNDUuM3MtMzIuOC0xMi41LTQ1LjMgMEwxOTIgMzA2LjcgNTQuNiAxNjkuNGMtMTIuNS0xMi41LTMyLjgtMTIuNS00NS4zIDBzLTEyLjUgMzIuOCAwIDQ1LjNsMTYwIDE2MHoiXX0sZEJlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InBsdWctY2lyY2xlLWNoZWNrIixpY29uOls2NDAsNTEyLFtdLCJlNTVjIiwiTTE5Mi0zMmMxNy43IDAgMzIgMTQuMyAzMiAzMmwwIDk2IDEyOCAwIDAtOTZjMC0xNy43IDE0LjMtMzIgMzItMzJzMzIgMTQuMyAzMiAzMmwwIDk2IDY0IDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJsMCA0OC43Yy05OC42IDguMS0xNzYgOTAuNy0xNzYgMTkxLjMgMCAyNy4zIDUuNyA1My4zIDE2IDc2LjlsMCAzLjFjMCAxNy43LTE0LjMgMzItMzIgMzJzLTMyLTE0LjMtMzItMzJsMC02Ni43QzE2NS4yIDM5OC4xIDk2IDMxOS4xIDk2IDIyNGwwLTY0Yy0xNy43IDAtMzItMTQuMy0zMi0zMlM3OC4zIDk2IDk2IDk2bDY0IDAgMC05NmMwLTE3LjcgMTQuMy0zMiAzMi0zMnpNMzUyIDQwMGExNDQgMTQ0IDAgMSAxIDI4OCAwIDE0NCAxNDQgMCAxIDEgLTI4OCAwem0yMDEuNC02MC45Yy03LjEtNS4yLTE3LjItMy42LTIyLjQgMy41bC01MyA3Mi45LTI2LjgtMjYuOGMtNi4yLTYuMi0xNi40LTYuMi0yMi42IDBzLTYuMiAxNi40IDAgMjIuNmw0MCA0MGMzLjMgMy4zIDcuOSA1IDEyLjYgNC42czguOS0yLjggMTEuNy02LjVsNjQtODhjNS4yLTcuMSAzLjYtMTcuMi0zLjUtMjIuM3oiXX0saEJlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6IndpbmRvdy1tYXhpbWl6ZSIsaWNvbjpbNTEyLDUxMixbMTI4NDcwXSwiZjJkMCIsIk02NCA2NEMyOC43IDY0IDAgOTIuNyAwIDEyOEwwIDM4NGMwIDM1LjMgMjguNyA2NCA2NCA2NGwzODQgMGMzNS4zIDAgNjQtMjguNyA2NC02NGwwLTI1NmMwLTM1LjMtMjguNy02NC02NC02NEw2NCA2NHptMjQgNjRsMzM2IDBjMTMuMyAwIDI0IDEwLjcgMjQgMjRzLTEwLjcgMjQtMjQgMjRMODggMTc2Yy0xMy4zIDAtMjQtMTAuNy0yNC0yNHMxMC43LTI0IDI0LTI0eiJdfSxwQmU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiaGFuZHMtaG9sZGluZy1jaXJjbGUiLGljb246WzY0MCw1MTIsW10sImU0ZmIiLCJNMzIwIDBhMTI4IDEyOCAwIDEgMSAwIDI1NiAxMjggMTI4IDAgMSAxIDAtMjU2ek00MCA2NGMyMi4xIDAgNDAgMTcuOSA0MCA0MGwwIDE2MC4yYzAgMTcgNi43IDMzLjMgMTguNyA0NS4zbDUxLjEgNTEuMWM4LjMgOC4zIDIxLjMgOS42IDMxIDMuMSAxMi45LTguNiAxNC43LTI2LjkgMy43LTM3LjgtNy4zLTcuMy0yMy4xLTIzLjEtNDcuMi00Ny4yLTEyLjUtMTIuNS0xMi41LTMyLjggMC00NS4zczMyLjgtMTIuNSA0NS4zIDBjMjQuMSAyNC4xIDM5LjkgMzkuOSA0Ny4yIDQ3LjJsMCAwIDI1LjMgMjUuM2MyMSAyMSAzMi44IDQ5LjUgMzIuOCA3OS4ybDAgNzguOWMwIDI2LjUtMjEuNSA0OC00OCA0OGwtNjYuNyAwYy0xNyAwLTMzLjMtNi43LTQ1LjMtMTguN0wyOC4xIDM5My40QzEwLjEgMzc1LjQgMCAzNTEgMCAzMjUuNUwwIDEwNEMwIDgxLjkgMTcuOSA2NCA0MCA2NHptNTYwIDBjMjIuMSAwIDQwIDE3LjkgNDAgNDBsMCAyMjEuNWMwIDI1LjUtMTAuMSA0OS45LTI4LjEgNjcuOUw1MTIgNDkzLjNjLTEyIDEyLTI4LjMgMTguNy00NS4zIDE4LjdMNDAwIDUxMmMtMjYuNSAwLTQ4LTIxLjUtNDgtNDhsMC03OC45YzAtMjkuNyAxMS44LTU4LjIgMzIuOC03OS4ybDI1LjMtMjUuMyAwIDBjNy4zLTcuMyAyMy4xLTIzLjEgNDcuMi00Ny4yIDEyLjUtMTIuNSAzMi44LTEyLjUgNDUuMyAwczEyLjUgMzIuOCAwIDQ1LjNjLTI0LjEgMjQuMS0zOS45IDM5LjktNDcuMiA0Ny4yLTExIDExLTkuMiAyOS4yIDMuNyAzNy44IDkuNyA2LjUgMjIuNyA1LjIgMzEtMy4xbDUxLjEtNTEuMWMxMi0xMiAxOC43LTI4LjMgMTguNy00NS4zTDU2MCAxMDRjMC0yMi4xIDE3LjktNDAgNDAtNDB6Il19LFFSPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImxvY2F0aW9uLXBpbiIsaWNvbjpbMzg0LDUxMixbIm1hcC1tYXJrZXIiXSwiZjA0MSIsIk0xOTIgMEM4NiAwIDAgODQuNCAwIDE4OC42IDAgMzA3LjkgMTIwLjIgNDUwLjkgMTcwLjQgNTA1LjQgMTgyLjIgNTE4LjIgMjAxLjggNTE4LjIgMjEzLjYgNTA1LjQgMjYzLjggNDUwLjkgMzg0IDMwNy45IDM4NCAxODguNiAzODQgODQuNCAyOTggMCAxOTIgMHoiXX0sdUJlPVFSLGZCZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJib3dsaW5nLWJhbGwiLGljb246WzUxMiw1MTIsW10sImY0MzYiLCJNMjU2IDUxMmEyNTYgMjU2IDAgMSAwIDAtNTEyIDI1NiAyNTYgMCAxIDAgMCA1MTJ6TTI0MCA4MGEzMiAzMiAwIDEgMSAwIDY0IDMyIDMyIDAgMSAxIDAtNjR6TTIwOCAyMDhhMzIgMzIgMCAxIDEgNjQgMCAzMiAzMiAwIDEgMSAtNjQgMHptLTY0LTY0YTMyIDMyIDAgMSAxIDAgNjQgMzIgMzIgMCAxIDEgMC02NHoiXX0sSlI9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiY2FydC1mbGF0YmVkIixpY29uOls1NzYsNTEyLFsiZG9sbHktZmxhdGJlZCJdLCJmNDc0IiwiTTMyIDBDMTQuMyAwIDAgMTQuMyAwIDMyUzE0LjMgNjQgMzIgNjRsMTYgMGM4LjggMCAxNiA3LjIgMTYgMTZsMCAyODhjMCAzOS44IDI5LjEgNzIuOCA2Ny4xIDc5LTIgNS4zLTMuMSAxMS0zLjEgMTcgMCAyNi41IDIxLjUgNDggNDggNDhzNDgtMjEuNSA0OC00OGMwLTUuNi0xLTExLTIuNy0xNmwxOTcuNSAwYy0xLjggNS0yLjcgMTAuNC0yLjcgMTYgMCAyNi41IDIxLjUgNDggNDggNDhzNDgtMjEuNSA0OC00OGMwLTUuNi0xLTExLTIuNy0xNmwzNC43IDBjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJsLTQwMCAwYy04LjggMC0xNi03LjItMTYtMTZsMC0yODhDMTI4IDM1LjggOTIuMiAwIDQ4IDBMMzIgMHpNMjI0IDY0Yy0yNi41IDAtNDggMjEuNS00OCA0OGwwIDE3NmMwIDI2LjUgMjEuNSA0OCA0OCA0OGwyNDAgMGMyNi41IDAgNDgtMjEuNSA0OC00OGwwLTE3NmMwLTI2LjUtMjEuNS00OC00OC00OEwyMjQgNjR6Il19LG1CZT1KUixlQj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJob3VzZS11c2VyIixpY29uOls1MTIsNTEyLFsiaG9tZS11c2VyIl0sImUxYjAiLCJNMjc3LjggOC42Yy0xMi4zLTExLjQtMzEuMy0xMS40LTQzLjUgMGwtMjI0IDIwOGMtOS42IDktMTIuOCAyMi45LTggMzUuMVMxOC44IDI3MiAzMiAyNzJsMTYgMCAwIDE3NmMwIDM1LjMgMjguNyA2NCA2NCA2NGwyODggMGMzNS4zIDAgNjQtMjguNyA2NC02NGwwLTE3NiAxNiAwYzEzLjIgMCAyNS04LjEgMjkuOC0yMC4zczEuNi0yNi4yLTgtMzUuMWwtMjI0LTIwOHpNMjAwIDI1NmE1NiA1NiAwIDEgMSAxMTIgMCA1NiA1NiAwIDEgMSAtMTEyIDB6TTE0NCA0MzJjMC00NC4yIDM1LjgtODAgODAtODBsNjQgMGM0NC4yIDAgODAgMzUuOCA4MCA4MCAwIDguOC03LjIgMTYtMTYgMTZsLTE5MiAwYy04LjggMC0xNi03LjItMTYtMTZ6Il19LGdCZT1lQixiQmU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZ2hvc3QiLGljb246WzM4NCw1MTIsWzEyODEyM10sImY2ZTIiLCJNNDAuMSA0NjcuMWwtMTEuMiA5QzI1LjcgNDc4LjYgMjEuOCA0ODAgMTcuOCA0ODAgOCA0ODAgMCA0NzIgMCA0NjIuMkwwIDE5MkMwIDg2IDg2IDAgMTkyIDBTMzg0IDg2IDM4NCAxOTJsMCAyNzAuMmMwIDkuOC04IDE3LjgtMTcuOCAxNy44LTQgMC03LjktMS40LTExLjEtMy45bC0xMS4yLTljLTEzLjQtMTAuNy0zMi44LTktNDQuMSAzLjlMMjY5LjMgNTA2Yy0zLjMgMy44LTguMiA2LTEzLjMgNnMtOS45LTIuMi0xMy4zLTZsLTI2LjYtMzAuNWMtMTIuNy0xNC42LTM1LjQtMTQuNi00OC4yIDBMMTQxLjMgNTA2Yy0zLjMgMy44LTguMiA2LTEzLjMgNnMtOS45LTIuMi0xMy4zLTZMODQuMiA0NzFjLTExLjMtMTIuOS0zMC43LTE0LjYtNDQuMS0zLjl6TTE2MCAxOTJhMzIgMzIgMCAxIDAgLTY0IDAgMzIgMzIgMCAxIDAgNjQgMHptOTYgMzJhMzIgMzIgMCAxIDAgMC02NCAzMiAzMiAwIDEgMCAwIDY0eiJdfSx2QmU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiY29tbWVudC1ub2RlcyIsaWNvbjpbNjQwLDUxMixbXSwiZTY5NiIsIk00ODAgMjA4QzUwMy43IDIwOCA1MjUuNiAyMTUuMyA1NDMuNyAyMjcuOSA1MzYuOSAxMDAuOSA0MjUgMCAyODggMCAxNDYuNiAwIDMyIDEwNy41IDMyIDI0MCAzMiAyOTQuMyA1MS4yIDM0NC4zIDgzLjYgMzg0LjVMMzQuOCA0NzYuOGMtNC44IDktMy4zIDIwIDMuNiAyNy41czE3LjggOS44IDI3LjEgNS44bDExOC40LTUwLjdjMjcuMiAxMS40IDU2LjkgMTguNCA4OC4xIDIwLjIgLjEtMTguOSA0LjktMzggMTUtNTUuNSAxNy4xLTI5LjcgNDUuOC00OC41IDc3LTU0LjJsOS4yLTE2Yy0zLjQtMTAuNy01LjItMjItNS4yLTMzLjggMC02MS45IDUwLjEtMTEyIDExMi0xMTJ6TTMyOC42IDQ0OGMtMTcuNyAzMC42LTcuMiA2OS43IDIzLjQgODcuNHM2OS43IDcuMiA4Ny40LTIzLjRjMS41LTIuNiAyLjgtNS4zIDMuOS04bDczLjMgMGMxLjEgMi43IDIuNCA1LjQgMy45IDggMTcuNyAzMC42IDU2LjggNDEuMSA4Ny40IDIzLjRzNDEuMS01Ni44IDIzLjQtODcuNGMtMTMuNC0yMy4yLTM5LjEtMzQuOC02NC0zMS40bC0xNy42LTMwLjdjLTExIDExLjctMjUgMjAuNi00MC42IDI1LjZsMTYuNSAyOC45Yy0zLjggNC44LTYuOCAxMC05IDE1LjZsLTczLjQgMGMtMi4yLTUuNi01LjMtMTAuOC05LTE1LjZsMzMtNTcuN2M0LjEgLjggOC40IDEuMyAxMi44IDEuMyAzNS4zIDAgNjQtMjguNyA2NC02NHMtMjguNy02NC02NC02NC02NCAyOC43LTY0IDY0YzAgMTMuNCA0LjEgMjUuOCAxMS4yIDM2LjFsLTM0LjYgNjAuNWMtMjUtMy40LTUwLjYgOC4zLTY0IDMxLjR6Il19LHlCZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJwZXJzb24tYXJyb3ctZG93bi10by1saW5lIixpY29uOls1NzYsNTEyLFtdLCJlNTM4IiwiTTE5Mi0zMmE1NiA1NiAwIDEgMSAwIDExMiA1NiA1NiAwIDEgMSAwLTExMnpNMzE4LjMgMjk5LjFsLTQ2LjMtNjIuNCAwIDI0My4zIDI3MiAwYzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMyTDMyIDU0NGMtMTcuNyAwLTMyLTE0LjMtMzItMzJzMTQuMy0zMiAzMi0zMmw4MCAwIDAtMjQzLjMtNDYuMyA2Mi40Yy0xMC41IDE0LjItMzAuNiAxNy4yLTQ0LjggNi42cy0xNy4yLTMwLjYtNi42LTQ0LjhsNzAuNS05NUMxMTAgMTMyIDE0OS43IDExMiAxOTIgMTEyczgyIDIwIDEwNy4yIDUzLjlsNzAuNSA5NWMxMC41IDE0LjIgNy42IDM0LjItNi42IDQ0LjhzLTM0LjIgNy42LTQ0LjgtNi42ek0xNzYgNDgwbDMyIDAgMC0xMjhjMC04LjgtNy4yLTE2LTE2LTE2cy0xNiA3LjItMTYgMTZsMCAxMjh6TTU2Ni42IDE2Ni42bC04MCA4MGMtMTIuNSAxMi41LTMyLjggMTIuNS00NS4zIDBsLTgwLTgwYy0xMi41LTEyLjUtMTIuNS0zMi44IDAtNDUuM3MzMi44LTEyLjUgNDUuMyAwTDQzMiAxNDYuNyA0MzIgMGMwLTE3LjcgMTQuMy0zMiAzMi0zMnMzMiAxNC4zIDMyIDMybDAgMTQ2LjcgMjUuNC0yNS40YzEyLjUtMTIuNSAzMi44LTEyLjUgNDUuMyAwczEyLjUgMzIuOCAwIDQ1LjN6Il19LHhCZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJwbHVnLWNpcmNsZS1wbHVzIixpY29uOls2NDAsNTEyLFtdLCJlNTVmIiwiTTE5Mi0zMmMxNy43IDAgMzIgMTQuMyAzMiAzMmwwIDk2IDEyOCAwIDAtOTZjMC0xNy43IDE0LjMtMzIgMzItMzJzMzIgMTQuMyAzMiAzMmwwIDk2IDY0IDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJsMCA0OC43Yy05OC42IDguMS0xNzYgOTAuNy0xNzYgMTkxLjMgMCAyNy4zIDUuNyA1My4zIDE2IDc2LjlsMCAzLjFjMCAxNy43LTE0LjMgMzItMzIgMzJzLTMyLTE0LjMtMzItMzJsMC02Ni43QzE2NS4yIDM5OC4xIDk2IDMxOS4xIDk2IDIyNGwwLTY0Yy0xNy43IDAtMzItMTQuMy0zMi0zMlM3OC4zIDk2IDk2IDk2bDY0IDAgMC05NmMwLTE3LjcgMTQuMy0zMiAzMi0zMnpNNDk2IDI1NmExNDQgMTQ0IDAgMSAxIDAgMjg4IDE0NCAxNDQgMCAxIDEgMC0yODh6bTE2IDgwYzAtOC44LTcuMi0xNi0xNi0xNnMtMTYgNy4yLTE2IDE2bDAgNDgtNDggMGMtOC44IDAtMTYgNy4yLTE2IDE2czcuMiAxNiAxNiAxNmw0OCAwIDAgNDhjMCA4LjggNy4yIDE2IDE2IDE2czE2LTcuMiAxNi0xNmwwLTQ4IDQ4IDBjOC44IDAgMTYtNy4yIDE2LTE2cy03LjItMTYtMTYtMTZsLTQ4IDAgMC00OHoiXX0sdEI9e3ByZWZpeDoiZmFzIixpY29uTmFtZToicGVyc29uLXN3aW1taW5nIixpY29uOls2NDAsNTEyLFsxMjc5NDYsInN3aW1tZXIiXSwiZjVjNCIsIk01NTIgMTUyYTU2IDU2IDAgMSAwIC0xMTIgMCA1NiA1NiAwIDEgMCAxMTIgMHpNMjkzLjQgMTk4LjJsLTg4LjYgNzMuOWMxLjEgMCAyLjItLjEgMy4zLS4xIDMzLjEtLjIgNjYuMyAxMC4yIDk0LjQgMzEuNCAyMi4xIDE2LjYgMjkuMSAxNi42IDUxLjIgMCAyNy41LTIwLjcgNTkuOS0zMS4yIDkyLjQtMzEuNCA0LjggMCA5LjcgLjIgMTQuNSAuNi04LjMtMzAtMjQuMy01Ny43LTQ2LjgtODAuMi0xOC40LTE4LjQtNDAuNi0zMi43LTY1LTQxLjhsLTY4LjYtMjUuN2MtMjcuNC0xMC4zLTU4LTcuNS04My4xIDcuNmwtNTMuNSAzMi4xYy0xNS4yIDkuMS0yMC4xIDI4LjctMTEgNDMuOXMyOC43IDIwLjEgNDMuOSAxMUwyMzAgMTg3LjNjOC40LTUgMTguNi01LjkgMjcuNy0yLjVsMzUuNyAxMy40em0xMTAgMTgxLjljMjEuMy0xNi4xIDQ5LjktMTYuMSA3MS4yIDAgMTkgMTQuNCA0MS45IDI4LjIgNjcuMiAzMy4zIDI2LjUgNS40IDU0LjMgLjggODAuNy0xOS4xIDEwLjYtOCAxMi43LTIzIDQuNy0zMy42cy0yMy0xMi43LTMzLjYtNC43Yy0xNC45IDExLjItMjguNiAxMy4xLTQyLjMgMTAuMy0xNC45LTMtMzAuOS0xMS45LTQ3LjgtMjQuNi0zOC40LTI5LTkwLjUtMjktMTI5IDAtMjQgMTguMS00MC43IDI2LjMtNTQuNSAyNi4zcy0zMC41LTguMi01NC41LTI2LjNjLTM4LjQtMjktOTAuNS0yOS0xMjkgMC0yMS42IDE2LjMtNDEuMyAyNS44LTU4LjkgMjUuNy05LjYtLjEtMTkuOS0zLTMxLjItMTEuNS0xMC42LTgtMjUuNi01LjktMzMuNiA0LjdTNyAzODYuMyAxNy42IDM5NC4zYzE5LjEgMTQuNCAzOS40IDIxIDU5LjggMjEuMSAzMy45IC4yIDY0LjMtMTcuNCA4OC4xLTM1LjMgMjEuMy0xNi4xIDQ5LjktMTYuMSA3MS4yIDAgMjQuMiAxOC4zIDUyLjMgMzUuOSA4My40IDM1LjlzNTkuMS0xNy43IDgzLjQtMzUuOXoiXX0sd0JlPXRCLGFCPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImNvbW1lbnQtZG90cyIsaWNvbjpbNTEyLDUxMixbMTI4MTcyLDYyMDc1LCJjb21tZW50aW5nIl0sImY0YWQiLCJNMjU2IDQ4MGMxNDEuNCAwIDI1Ni0xMDcuNSAyNTYtMjQwUzM5Ny40IDAgMjU2IDAgMCAxMDcuNSAwIDI0MGMwIDU0LjMgMTkuMiAxMDQuMyA1MS42IDE0NC41TDIuOCA0NzYuOGMtNC44IDktMy4zIDIwIDMuNiAyNy41czE3LjggOS44IDI3LjEgNS44bDExOC40LTUwLjdDMTgzLjcgNDcyLjYgMjE4LjkgNDgwIDI1NiA0ODB6TTEyOCAyMDhhMzIgMzIgMCAxIDEgMCA2NCAzMiAzMiAwIDEgMSAwLTY0em0xMjggMGEzMiAzMiAwIDEgMSAwIDY0IDMyIDMyIDAgMSAxIDAtNjR6bTk2IDMyYTMyIDMyIDAgMSAxIDY0IDAgMzIgMzIgMCAxIDEgLTY0IDB6Il19LE1CZT1hQixpQj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJjaGFydC1waWUiLGljb246WzU3Niw1MTIsWyJwaWUtY2hhcnQiXSwiZjIwMCIsIk01MTIuNCAyNDBsLTE3NiAwYy0xNy43IDAtMzItMTQuMy0zMi0zMmwwLTE3NmMwLTE3LjcgMTQuNC0zMi4yIDMxLjktMjkuOSAxMDcgMTQuMiAxOTEuOCA5OSAyMDYgMjA2IDIuMyAxNy41LTEyLjIgMzEuOS0yOS45IDMxLjl6TTIyMi42IDM3LjJjMTguMS0zLjggMzMuOCAxMSAzMy44IDI5LjVsMCAxOTcuM2MwIDUuNiAyIDExIDUuNSAxNS4zTDM5NCA0MzguN2MxMS43IDE0LjEgOS4yIDM1LjQtNi45IDQ0LjEtMzQuMSAxOC42LTczLjIgMjkuMi0xMTQuNyAyOS4yLTEzMi41IDAtMjQwLTEwNy41LTI0MC0yNDAgMC0xMTUuNSA4MS41LTIxMS45IDE5MC4yLTIzNC44ek00NzcuOCAyODhsNjQgMGMxOC41IDAgMzMuMyAxNS43IDI5LjUgMzMuOC0xMC4yIDQ4LjQtMzUgOTEuNC02OS42IDEyNC4yLTEyLjMgMTEuNy0zMS42IDkuMi00Mi40LTMuOUwzNzQuOSAzNDAuNGMtMTcuMy0yMC45LTIuNC01Mi40IDI0LjYtNTIuNGw3OC4yIDB6Il19LHpCZT1pQixrQmU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZnJvZyIsaWNvbjpbNTc2LDUxMixbXSwiZjUyZSIsIk0zNjggMzJjNDEuNyAwIDc1LjkgMzEuOCA3OS43IDcyLjVsODUuNiAyNi4zYzI1LjQgNy44IDQyLjggMzEuMyA0Mi44IDU3LjkgMCAyMS44LTExLjcgNDEuOS0zMC43IDUyLjdsLTE0NC41IDgyLjEgOTIuNSA5Mi41IDUwLjcgMGMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMmwtNjQgMGMtOC41IDAtMTYuNi0zLjQtMjIuNi05LjRMMzQ2LjkgMzYwLjJjMTEuNy0zNiAzLjItNzcuMS0yNS40LTEwNS43LTQwLjYtNDAuNi0xMDYuMy00MC42LTE0Ni45LS4xTDEwMSAzMjQuNGMtNi40IDYuMS02LjcgMTYuMi0uNiAyMi42czE2LjIgNi42IDIyLjYgLjZsNzMuOC03MC4yIC4xLS4xIC4xLS4xYzMuNS0zLjUgNy4zLTYuNiAxMS4zLTkuMiAyNy45LTE4LjUgNjUuOS0xNS40IDkwLjUgOS4yIDI0LjcgMjQuNyAyNy43IDYyLjkgOSA5MC45LTIuNiAzLjgtNS42IDcuNS05IDEwLjlMMjYxLjggNDE2IDM1MiA0MTZjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJMNjQgNDgwQzI4LjcgNDgwIDAgNDUxLjMgMCA0MTYgMCAyNDkuNiAxMjcgMTEyLjkgMjg5LjMgOTcuNSAyOTYuMiA2MC4yIDMyOC44IDMyIDM2OCAzMnptMCAxMDRhMjQgMjQgMCAxIDAgMC00OCAyNCAyNCAwIDEgMCAwIDQ4eiJdfSxTQmU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToid2luZS1ib3R0bGUiLGljb246WzMyMCw1MTIsW10sImY3MmYiLCJNODAtMzJjMC0xNy43IDE0LjMtMzIgMzItMzJsOTYgMGMxNy43IDAgMzIgMTQuMyAzMiAzMiAwIDExLjgtNi40IDIyLjItMTYgMjcuN2wwIDE0NS42YzU2LjUgMjQuNyA5NiA4MS4xIDk2IDE0Ni43bDAgMjI0YzAgMzUuMy0yOC43IDY0LTY0IDY0TDY0IDU3NmMtMzUuMyAwLTY0LTI4LjctNjQtNjRMMCAyODhjMC02NS42IDM5LjUtMTIyIDk2LTE0Ni43TDk2LTQuM0M4Ni40LTkuOCA4MC0yMC4yIDgwLTMyek05NiAyODhjLTE3LjcgMC0zMiAxNC4zLTMyIDMybDAgMTI4YzAgMTcuNyAxNC4zIDMyIDMyIDMybDEyOCAwYzE3LjcgMCAzMi0xNC4zIDMyLTMybDAtMTI4YzAtMTcuNy0xNC4zLTMyLTMyLTMyTDk2IDI4OHoiXX0sQ0JlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImluYm94IixpY29uOls1MTIsNTEyLFtdLCJmMDFjIiwiTTkxLjggMzJDNTkuOSAzMiAzMi45IDU1LjQgMjguNCA4Ni45TC42IDI4MS4yYy0uNCAzLS42IDYtLjYgOS4xTDAgNDE2YzAgMzUuMyAyOC43IDY0IDY0IDY0bDM4NCAwYzM1LjMgMCA2NC0yOC43IDY0LTY0bDAtMTI1LjdjMC0zLS4yLTYuMS0uNi05LjFMNDgzLjYgODYuOUM0NzkuMSA1NS40IDQ1Mi4xIDMyIDQyMC4yIDMyTDkxLjggMzJ6bTAgNjRsMzI4LjUgMCAyNy40IDE5Mi01OS45IDBjLTEyLjEgMC0yMy4yIDYuOC0yOC42IDE3LjdsLTE0LjMgMjguNmMtNS40IDEwLjgtMTYuNSAxNy43LTI4LjYgMTcuN2wtMTIwLjQgMGMtMTIuMSAwLTIzLjItNi44LTI4LjYtMTcuN2wtMTQuMy0yOC42Yy01LjQtMTAuOC0xNi41LTE3LjctMjguNi0xNy43TDY0LjMgMjg4IDkxLjggOTZ6Il19LHJCPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InNxdWFyZS1oIixpY29uOls0NDgsNTEyLFsiaC1zcXVhcmUiXSwiZjBmZCIsIk02NCAzMkMyOC43IDMyIDAgNjAuNyAwIDk2TDAgNDE2YzAgMzUuMyAyOC43IDY0IDY0IDY0bDMyMCAwYzM1LjMgMCA2NC0yOC43IDY0LTY0bDAtMzIwYzAtMzUuMy0yOC43LTY0LTY0LTY0TDY0IDMyek0zMjAgMTY4bDAgMTc2YzAgMTMuMy0xMC43IDI0LTI0IDI0cy0yNC0xMC43LTI0LTI0bDAtNjQtOTYgMCAwIDY0YzAgMTMuMy0xMC43IDI0LTI0IDI0cy0yNC0xMC43LTI0LTI0bDAtMTc2YzAtMTMuMyAxMC43LTI0IDI0LTI0czI0IDEwLjcgMjQgMjRsMCA2NCA5NiAwIDAtNjRjMC0xMy4zIDEwLjctMjQgMjQtMjRzMjQgMTAuNyAyNCAyNHoiXX0sX0JlPXJCLFRCZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJob3VzZS1tZWRpY2FsIixpY29uOls1MTIsNTEyLFtdLCJlM2IyIiwiTTI3Ny44IDguNmMtMTIuMy0xMS40LTMxLjMtMTEuNC00My41IDBsLTIyNCAyMDhjLTkuNiA5LTEyLjggMjIuOS04IDM1LjFTMTguOCAyNzIgMzIgMjcybDE2IDAgMCAxNzZjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMjg4IDBjMzUuMyAwIDY0LTI4LjcgNjQtNjRsMC0xNzYgMTYgMGMxMy4yIDAgMjUtOC4xIDI5LjgtMjAuM3MxLjYtMjYuMi04LTM1LjFsLTIyNC0yMDh6TTIyNCAyNDhjMC04LjggNy4yLTE2IDE2LTE2bDMyIDBjOC44IDAgMTYgNy4yIDE2IDE2bDAgNDAgNDAgMGM4LjggMCAxNiA3LjIgMTYgMTZsMCAzMmMwIDguOC03LjIgMTYtMTYgMTZsLTQwIDAgMCA0MGMwIDguOC03LjIgMTYtMTYgMTZsLTMyIDBjLTguOCAwLTE2LTcuMi0xNi0xNmwwLTQwLTQwIDBjLTguOCAwLTE2LTcuMi0xNi0xNmwwLTMyYzAtOC44IDcuMi0xNiAxNi0xNmw0MCAwIDAtNDB6Il19LHNCPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImNpcmNsZS1jaGV2cm9uLXJpZ2h0IixpY29uOls1MTIsNTEyLFsiY2hldnJvbi1jaXJjbGUtcmlnaHQiXSwiZjEzOCIsIk0wIDI1NmEyNTYgMjU2IDAgMSAwIDUxMiAwIDI1NiAyNTYgMCAxIDAgLTUxMiAwek0yNDEgMzc3Yy05LjQgOS40LTI0LjYgOS40LTMzLjkgMHMtOS40LTI0LjYgMC0zMy45bDg3LTg3LTg3LTg3Yy05LjQtOS40LTkuNC0yNC42IDAtMzMuOXMyNC42LTkuNCAzMy45IDBMMzQ1IDIzOWM5LjQgOS40IDkuNCAyNC42IDAgMzMuOUwyNDEgMzc3eiJdfSxMQmU9c0IsJEJlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImZpbGUtY3N2IixpY29uOls1NzYsNTEyLFtdLCJmNmRkIiwiTTk2IDBDNjAuNyAwIDMyIDI4LjcgMzIgNjRsMCAzODRjMCAzNS4zIDI4LjcgNjQgNjQgNjRsODAgMCAwLTExMmMwLTM1LjMgMjguNy02NCA2NC02NGwxNzYgMCAwLTE2NS41YzAtMTctNi43LTMzLjMtMTguNy00NS4zTDI5MC43IDE4LjdDMjc4LjcgNi43IDI2Mi41IDAgMjQ1LjUgMEw5NiAwek0zNTcuNSAxNzZMMjY0IDE3NmMtMTMuMyAwLTI0LTEwLjctMjQtMjRMMjQwIDU4LjUgMzU3LjUgMTc2ek0yNjQgMzgwYy0yNC4zIDAtNDQgMTkuNy00NCA0NGwwIDgwYzAgMjQuMyAxOS43IDQ0IDQ0IDQ0bDE2IDBjMjQuMyAwIDQ0LTE5LjcgNDQtNDRsMC04YzAtMTEtOS0yMC0yMC0yMHMtMjAgOS0yMCAyMGwwIDhjMCAyLjItMS44IDQtNCA0bC0xNiAwYy0yLjIgMC00LTEuOC00LTRsMC04MGMwLTIuMiAxLjgtNCA0LTRsMTYgMGMyLjIgMCA0IDEuOCA0IDRsMCA4YzAgMTEgOSAyMCAyMCAyMHMyMC05IDIwLTIwbDAtOGMwLTI0LjMtMTkuNy00NC00NC00NGwtMTYgMHptMTM2IDBjLTI4LjcgMC01MiAyMy4zLTUyIDUyczIzLjMgNTIgNTIgNTJjNi42IDAgMTIgNS40IDEyIDEycy01LjQgMTItMTIgMTJsLTMyIDBjLTExIDAtMjAgOS0yMCAyMHM5IDIwIDIwIDIwbDMyIDBjMjguNyAwIDUyLTIzLjMgNTItNTJzLTIzLjMtNTItNTItNTJjLTYuNiAwLTEyLTUuNC0xMi0xMnM1LjQtMTIgMTItMTJsMjQgMGMxMSAwIDIwLTkgMjAtMjBzLTktMjAtMjAtMjBsLTI0IDB6bTk2IDBjLTExIDAtMjAgOS0yMCAyMGwwIDMxLjZjMCAzNS41IDEwLjUgNzAuMyAzMC4yIDk5LjhsNS4xIDcuN2MzLjcgNS42IDEwIDguOSAxNi42IDguOXMxMi45LTMuMyAxNi42LTguOWw1LjEtNy43YzE5LjctMjkuNiAzMC4yLTY0LjMgMzAuMi05OS44bDAtMzEuNmMwLTExLTktMjAtMjAtMjBzLTIwIDktMjAgMjBsMCAzMS42YzAgMTkuNi00LjEgMzguOS0xMiA1Ni43LTcuOS0xNy44LTEyLTM3LjEtMTItNTYuN2wwLTMxLjZjMC0xMS05LTIwLTIwLTIweiJdfSxBQmU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiaGF0LWNvd2JveSIsaWNvbjpbNjQwLDUxMixbXSwiZjhjMCIsIk0xODIuMiA3Ni4xTDEzMC44IDMwNy41QzE0NS41IDMyNC45IDE2Ny40IDMzNiAxOTIgMzM2bDI1NiAwYzI0LjYgMCA0Ni41LTExLjEgNjEuMi0yOC41TDQ1Ny44IDc2LjFjLTUuNy0yNS44LTI4LjYtNDQuMS01NS00NC4xLTEyLjIgMC0yNC4xIDQtMzMuOCAxMS4zbC00LjcgMy41Yy0yNi4zIDE5LjctNjIuNCAxOS43LTg4LjYgMEwyNzEgNDMuM2MtOS44LTcuMy0yMS42LTExLjMtMzMuOC0xMS4zLTI2LjQgMC00OS4zIDE4LjMtNTUgNDQuMXpNNjQgMjU2YzAtMTcuNy0xNC4zLTMyLTMyLTMyUzAgMjM4LjMgMCAyNTZDMCAzNjIgODYgNDQ4IDE5MiA0NDhsMjU2IDBjMTA2IDAgMTkyLTg2IDE5Mi0xOTIgMC0xNy43LTE0LjMtMzItMzItMzJzLTMyIDE0LjMtMzIgMzJjMCA3MC43LTU3LjMgMTI4LTEyOCAxMjhsLTI1NiAwYy03MC43IDAtMTI4LTU3LjMtMTI4LTEyOHoiXX0sbkI9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZmFjZS1ncmluLXRvbmd1ZS13aW5rIixpY29uOls1MTIsNTEyLFsxMjg1NDAsImdyaW4tdG9uZ3VlLXdpbmsiXSwiZjU4YiIsIk0xNTIuMiA0OTAuMUM2Mi41IDQ1MC4yIDAgMzYwLjQgMCAyNTYgMCAxMTQuNiAxMTQuNiAwIDI1NiAwUzUxMiAxMTQuNiA1MTIgMjU2YzAgMTA0LjQtNjIuNSAxOTQuMi0xNTIuMiAyMzQuMSA1LjMtMTMgOC4yLTI3LjIgOC4yLTQyLjFsMC02MS43YzE2LjktMTYuNSAzMC4xLTM2LjcgMzguMy01OS4zIDQuMy0xMS44LTcuNy0yMS44LTE5LjYtMTguMS0zOS4yIDEyLjItODMuNyAxOS4xLTEzMC43IDE5LjFzLTkxLjUtNi45LTEzMC43LTE5LjFjLTExLjktMy43LTIzLjkgNi4zLTE5LjYgMTguMSA4LjMgMjIuNiAyMS41IDQyLjggMzguMyA1OS4zbDAgNjEuN2MwIDE0LjkgMi45IDI5LjEgOC4yIDQyLjF6TTE1MiAyMTJsMTYgMGMxMSAwIDIwIDkgMjAgMjBzOSAyMCAyMCAyMCAyMC05IDIwLTIwYzAtMzMuMS0yNi45LTYwLTYwLTYwbC0xNiAwYy0zMy4xIDAtNjAgMjYuOS02MCA2MCAwIDExIDkgMjAgMjAgMjBzMjAtOSAyMC0yMCA5LTIwIDIwLTIwem0xODQgNjBhNjQgNjQgMCAxIDAgMC0xMjggNjQgNjQgMCAxIDAgMCAxMjh6TTMyMCA0MDIuNmwwIDQ1LjRjMCAzNS4zLTI4LjcgNjQtNjQgNjRzLTY0LTI4LjctNjQtNjRsMC00NS40YzAtMTQuNyAxMS45LTI2LjYgMjYuNi0yNi42bDIgMGMxMS4zIDAgMjEuMSA3LjkgMjMuNiAxOC45IDIuOCAxMi42IDIwLjggMTIuNiAyMy42IDAgMi41LTExLjEgMTIuMy0xOC45IDIzLjYtMTguOWwyIDBjMTQuNyAwIDI2LjYgMTEuOSAyNi42IDI2LjZ6TTMzNiAxODRhMjQgMjQgMCAxIDEgMCA0OCAyNCAyNCAwIDEgMSAwLTQ4eiJdfSxEQmU9bkIsRUJlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImwiLGljb246WzMyMCw1MTIsWzEwOF0sIjRjIiwiTTY0IDMyYzE3LjcgMCAzMiAxNC4zIDMyIDMybDAgMzUyIDE5MiAwYzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMyTDY0IDQ4MGMtMTcuNyAwLTMyLTE0LjMtMzItMzJMMzIgNjRjMC0xNy43IDE0LjMtMzIgMzItMzJ6Il19LExtPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImFycm93LWRvd24tc2hvcnQtd2lkZSIsaWNvbjpbNTc2LDUxMixbInNvcnQtYW1vdW50LWRlc2MiLCJzb3J0LWFtb3VudC1kb3duLWFsdCJdLCJmODg0IiwiTTI0Ni42IDM3NC42bC05NiA5NmMtMTIuNSAxMi41LTMyLjggMTIuNS00NS4zIDBsLTk2LTk2Yy0xMi41LTEyLjUtMTIuNS0zMi44IDAtNDUuM3MzMi44LTEyLjUgNDUuMyAwTDk2IDM3MC43IDk2IDY0YzAtMTcuNyAxNC4zLTMyIDMyLTMyczMyIDE0LjMgMzIgMzJsMCAzMDYuNyA0MS40LTQxLjRjMTIuNS0xMi41IDMyLjgtMTIuNSA0NS4zIDBzMTIuNSAzMi44IDAgNDUuM3pNMzIwIDMybDMyIDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJsLTMyIDBjLTE3LjcgMC0zMi0xNC4zLTMyLTMyczE0LjMtMzIgMzItMzJ6bTAgMTI4bDk2IDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJsLTk2IDBjLTE3LjcgMC0zMi0xNC4zLTMyLTMyczE0LjMtMzIgMzItMzJ6bTAgMTI4bDE2MCAwYzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMybC0xNjAgMGMtMTcuNyAwLTMyLTE0LjMtMzItMzJzMTQuMy0zMiAzMi0zMnptMCAxMjhsMjI0IDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJsLTIyNCAwYy0xNy43IDAtMzItMTQuMy0zMi0zMnMxNC4zLTMyIDMyLTMyeiJdfSxQQmU9TG0sSUJlPUxtLG9CPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImhvdXJnbGFzcy1oYWxmIixpY29uOlszODQsNTEyLFsiaG91cmdsYXNzLTIiXSwiZjI1MiIsIk0zMiAwQzE0LjMgMCAwIDE0LjMgMCAzMlMxNC4zIDY0IDMyIDY0bDAgMTFjMCA0Mi40IDE2LjkgODMuMSA0Ni45IDExMy4xbDY3LjkgNjcuOS02Ny45IDY3LjlDNDguOSAzNTMuOSAzMiAzOTQuNiAzMiA0MzdsMCAxMWMtMTcuNyAwLTMyIDE0LjMtMzIgMzJzMTQuMyAzMiAzMiAzMmwzMjAgMGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMmwwLTExYzAtNDIuNC0xNi45LTgzLjEtNDYuOS0xMTMuMWwtNjcuOS02Ny45IDY3LjktNjcuOWMzMC0zMCA0Ni45LTcwLjcgNDYuOS0xMTMuMWwwLTExYzE3LjcgMCAzMi0xNC4zIDMyLTMyUzM2OS43IDAgMzUyIDBMMzIgMHpNOTYgNzVsMC0xMSAxOTIgMCAwIDExYzAgMTktNS42IDM3LjQtMTYgNTNMMTEyIDEyOGMtMTAuMy0xNS42LTE2LTM0LTE2LTUzem0xNiAzMDljMy41LTUuMyA3LjYtMTAuMyAxMi4xLTE0LjlsNjcuOS02Ny45IDY3LjkgNjcuOWM0LjYgNC42IDguNiA5LjYgMTIuMiAxNC45TDExMiAzODR6Il19LE5CZT1vQixsQj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJzcG9vbiIsaWNvbjpbNTEyLDUxMixbMTI5MzQ4LDYxODczLCJ1dGVuc2lsLXNwb29uIl0sImYyZTUiLCJNMjQ1LjggMjIwLjljLTE0LjUtMTcuNi0yMS44LTM5LjItMjEuOC02MC44IDAtODAuMiA5Ni0xNjAuMiAxOTItMTYwLjIgNTMgMCA5NiA0MyA5NiA5NiAwIDk2LTgwIDE5Mi0xNjAuMiAxOTItMjEuNiAwLTQzLjItNy4zLTYwLjgtMjEuOEw1NC42IDUwMi42Yy0xMi41IDEyLjUtMzIuOCAxMi41LTQ1LjMgMHMtMTIuNS0zMi44IDAtNDUuM0wyNDUuOCAyMjAuOXoiXX0sRkJlPWxCLGNCPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImNyZWRpdC1jYXJkIixpY29uOls1MTIsNTEyLFsxMjgxNzksNjIwODMsImNyZWRpdC1jYXJkLWFsdCJdLCJmMDlkIiwiTTAgMTI4bDAgMzIgNTEyIDAgMC0zMmMwLTM1LjMtMjguNy02NC02NC02NEw2NCA2NEMyOC43IDY0IDAgOTIuNyAwIDEyOHptMCA4MEwwIDM4NGMwIDM1LjMgMjguNyA2NCA2NCA2NGwzODQgMGMzNS4zIDAgNjQtMjguNyA2NC02NGwwLTE3Ni01MTIgMHpNNjQgMzYwYzAtMTMuMyAxMC43LTI0IDI0LTI0bDQ4IDBjMTMuMyAwIDI0IDEwLjcgMjQgMjRzLTEwLjcgMjQtMjQgMjRsLTQ4IDBjLTEzLjMgMC0yNC0xMC43LTI0LTI0em0xNDQgMGMwLTEzLjMgMTAuNy0yNCAyNC0yNGw2NCAwYzEzLjMgMCAyNCAxMC43IDI0IDI0cy0xMC43IDI0LTI0IDI0bC02NCAwYy0xMy4zIDAtMjQtMTAuNy0yNC0yNHoiXX0sT0JlPWNCLGRnPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImZpbGUtaW52b2ljZS1kb2xsYXIiLGljb246WzM4NCw1MTIsW10sImY1NzEiLCJNMCA2NEMwIDI4LjcgMjguNyAwIDY0IDBMMjEzLjUgMGMxNyAwIDMzLjMgNi43IDQ1LjMgMTguN0wzNjUuMyAxMjUuM2MxMiAxMiAxOC43IDI4LjMgMTguNyA0NS4zTDM4NCA0NDhjMCAzNS4zLTI4LjcgNjQtNjQgNjRMNjQgNTEyYy0zNS4zIDAtNjQtMjguNy02NC02NEwwIDY0em0yMDgtNS41bDAgOTMuNWMwIDEzLjMgMTAuNyAyNCAyNCAyNEwzMjUuNSAxNzYgMjA4IDU4LjV6TTY0IDg4YzAgMTMuMyAxMC43IDI0IDI0IDI0bDQ4IDBjMTMuMyAwIDI0LTEwLjcgMjQtMjRzLTEwLjctMjQtMjQtMjRMODggNjRDNzQuNyA2NCA2NCA3NC43IDY0IDg4em0wIDk2YzAgMTMuMyAxMC43IDI0IDI0IDI0bDQ4IDBjMTMuMyAwIDI0LTEwLjcgMjQtMjRzLTEwLjctMjQtMjQtMjRsLTQ4IDBjLTEzLjMgMC0yNCAxMC43LTI0IDI0em0xMTIgNzZsMCA0Yy0yOC44IC4zLTUyIDIzLjctNTIgNTIuNSAwIDI1LjcgMTguNSA0Ny42IDQzLjkgNTEuOGw0MS43IDdjNiAxIDEwLjQgNi4yIDEwLjQgMTIuMyAwIDYuOS01LjYgMTIuNS0xMi41IDEyLjVMMTUyIDQwMGMtMTEgMC0yMCA5LTIwIDIwczkgMjAgMjAgMjBsMjQgMCAwIDRjMCAxMSA5IDIwIDIwIDIwczIwLTkgMjAtMjBsMC00LjdjMjUtNC4xIDQ0LTI1LjcgNDQtNTEuOCAwLTI1LjctMTguNS00Ny42LTQzLjktNTEuOGwtNDEuNy03Yy02LTEtMTAuNC02LjItMTAuNC0xMi4zIDAtNi45IDUuNi0xMi41IDEyLjUtMTIuNWw0Ny41IDBjMTEgMCAyMC05IDIwLTIwcy05LTIwLTIwLTIwbC04IDAgMC00YzAtMTEtOS0yMC0yMC0yMHMtMjAgOS0yMCAyMHoiXX0sZEI9e3ByZWZpeDoiZmFzIixpY29uTmFtZToic3BhZ2hldHRpLW1vbnN0ZXItZmx5aW5nIixpY29uOls2NDAsNTEyLFsicGFzdGFmYXJpYW5pc20iXSwiZjY3YiIsIk0yMDggNjRhMTYgMTYgMCAxIDAgLTMyIDAgMTYgMTYgMCAxIDAgMzIgMHptNDggMGMwIDE2LjItNiAzMS4xLTE2IDQyLjNsMTUuNiAzMS4yYzE4LjctNiAzOS45LTkuNSA2NC40LTkuNXM0NS44IDMuNSA2NC40IDkuNUw0MDAgMTA2LjNjLTEwLTExLjMtMTYtMjYuMS0xNi00Mi4zIDAtMzUuMyAyOC43LTY0IDY0LTY0czY0IDI4LjcgNjQgNjQtMjguNyA2NC02NCA2NGMtMS43IDAtMy40LS4xLTUuMS0uMkw0MjcuOCAxNThjMjEuMSAxMy42IDM3LjcgMzAuMiA1MS40IDQ2LjQgNy4xIDguMyAxMy41IDE2LjYgMTkuMyAyNGwxLjQgMS44YzYuMyA4LjEgMTEuNiAxNC44IDE2LjcgMjAuNCAxMC43IDExLjcgMTYuMSAxMy40IDE5LjQgMTMuNCAyLjUgMCA0LjMtLjYgNy4xLTMuMyAzLjctMy41IDcuMS04LjggMTIuNS0xNy40bC42LS45YzQuNi03LjQgMTEtMTcuNiAxOS40LTI1LjcgOS43LTkuMyAyMi45LTE2LjcgNDAuNC0xNi43IDEzLjMgMCAyNCAxMC43IDI0IDI0cy0xMC43IDI0LTI0IDI0Yy0yLjUgMC00LjMgLjYtNy4xIDMuMy0zLjcgMy41LTcuMSA4LjgtMTIuNSAxNy40bC0uNiAuOWMtNC42IDcuNC0xMSAxNy42LTE5LjQgMjUuNy05LjcgOS4zLTIyLjkgMTYuNy00MC40IDE2LjctMTguNSAwLTMyLjktOC41LTQ0LjMtMTguNi0zLjEgNC02LjYgOC4zLTEwLjUgMTIuNyAxLjQgNC4zIDIuOCA4LjUgNCAxMi41IC45IDMgMS44IDUuOCAyLjYgOC42IDMgOS44IDUuNSAxOC4yIDguNiAyNS45IDMuOSA5LjggNy40IDE1LjQgMTAuOCAxOC41IDIuNiAyLjQgNS45IDQuMyAxMi44IDQuMyA4LjcgMCAxNi45LTQuMiAzMy43LTEzLjIgMTUtOCAzNS43LTE4LjggNjIuMy0xOC44IDEzLjMgMCAyNCAxMC43IDI0IDI0cy0xMC43IDI0LTI0IDI0Yy0xMy40IDAtMjQuNyA1LjItMzkuNyAxMy4yLTEgLjYtMi4xIDEuMS0zLjIgMS43LTEzLjEgNy4xLTMxLjYgMTcuMS01My4xIDE3LjEtMTguNCAwLTMzLjYtNi4xLTQ1LjUtMTcuMi0xMS4xLTEwLjMtMTcuOS0yMy43LTIyLjctMzYtMy42LTktNi43LTE5LjEtOS41LTI4LjUtMTYuNCAxMi4zLTM2LjEgMjMuNi01OC45IDMxLjMgMy42IDEwLjggOC40IDIzLjUgMTQuNCAzNi4yIDcuNSAxNS45IDE2LjIgMzAuNCAyNS44IDQwLjUgOS42IDEwLjIgMTcuNyAxMy43IDI0LjUgMTMuNyAxMy4zIDAgMjQgMTAuNyAyNCAyNHMtMTAuNyAyNC0yNCAyNGMtMjUuMiAwLTQ1LTEzLjUtNTkuNS0yOC44LTE0LjUtMTUuNC0yNS43LTM0LjktMzQuMi01My04LTE3LTE0LjEtMzMuOC0xOC4zLTQ2LjktNS4yIC40LTEwLjYgLjYtMTYgLjZzLTEwLjgtLjItMTYtLjZjLTQuMiAxMy0xMC4zIDI5LjktMTguMyA0Ni45LTguNSAxOC4xLTE5LjggMzcuNi0zNC4yIDUzLTE0LjQgMTUuMy0zNC4zIDI4LjgtNTkuNSAyOC44LTEzLjMgMC0yNC0xMC43LTI0LTI0czEwLjctMjQgMjQtMjRjNi44IDAgMTUtMy41IDI0LjUtMTMuNyA5LjUtMTAuMSAxOC4zLTI0LjYgMjUuOC00MC41IDUuOS0xMi42IDEwLjctMjUuNCAxNC40LTM2LjItMjIuOC03LjctNDIuNS0xOS01OC45LTMxLjMtMi45IDkuNC02IDE5LjUtOS41IDI4LjUtNC44IDEyLjItMTEuNiAyNS42LTIyLjcgMzYtMTEuOSAxMS4xLTI3LjEgMTcuMi00NS41IDE3LjItMTMuMSAwLTI0LjUtNC4xLTMzLjgtOC45LTcuOS00LTE1LjctOS4yLTIyLjEtMTMuNWwwIDAtMi40LTEuNmMtMTUuMy0xMC4yLTI1LjgtMTYtMzcuNy0xNi0xMy4zIDAtMjQtMTAuNy0yNC0yNHMxMC43LTI0IDI0LTI0YzI4LjEgMCA0OS42IDE0LjIgNjQuMyAyNGwyLjQgMS42YzYuOSA0LjYgMTIuMSA4LjEgMTcuMiAxMC43IDUuNSAyLjggOS4xIDMuNiAxMiAzLjYgNi44IDAgMTAuMi0xLjkgMTIuOC00LjMgMy40LTMuMiA3LTguOCAxMC44LTE4LjUgMy03LjcgNS42LTE2LjEgOC42LTI1LjkgLjgtMi43IDEuNy01LjYgMi42LTguNiAxLjItNCAyLjYtOC4yIDQtMTIuNS0zLjktNC41LTcuNC04LjgtMTAuNS0xMi43LTExLjQgMTAuMS0yNS45IDE4LjYtNDQuMyAxOC42LTE3LjUgMC0zMC43LTcuNC00MC40LTE2LjctOC40LTguMS0xNC44LTE4LjMtMTkuNC0yNS43bC0uNi0uOWMtNS40LTguNi04LjgtMTMuOS0xMi41LTE3LjQtMi44LTIuNy00LjYtMy4zLTcuMS0zLjMtMTMuMyAwLTI0LTEwLjctMjQtMjRzMTAuNy0yNCAyNC0yNGMxNy41IDAgMzAuNyA3LjQgNDAuNCAxNi43IDguNCA4LjEgMTQuOCAxOC4zIDE5LjQgMjUuN2wuNiAuOWM1LjQgOC42IDguOCAxMy45IDEyLjUgMTcuNCAyLjggMi43IDQuNiAzLjMgNy4xIDMuMyAzLjMgMCA4LjctMS43IDE5LjQtMTMuNCA1LjEtNS42IDEwLjQtMTIuMyAxNi43LTIwLjRsMS40LTEuOGM1LjgtNy40IDEyLjItMTUuNyAxOS4zLTI0IDEzLjgtMTYuMiAzMC4zLTMyLjggNTEuNC00Ni40bC0xNS4xLTMwLjJjLTEuNyAuMS0zLjQgLjItNS4xIC4yLTM1LjMgMC02NC0yOC43LTY0LTY0czI4LjctNjQgNjQtNjQgNjQgMjguNyA2NCA2NHptMjA4IDBhMTYgMTYgMCAxIDAgLTMyIDAgMTYgMTYgMCAxIDAgMzIgMHoiXX0sUkJlPWRCLGhCPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6Im1hcnRpbmktZ2xhc3MtY2l0cnVzIixpY29uOls2NDAsNTEyLFsiY29ja3RhaWwiXSwiZjU2MSIsIk01NzYgODBjMC00NC4yLTM1LjgtODAtODAtODAtMTggMC0zNC42IDYtNDggMTZsLTgxIDBjMjMuNi00Ny40IDcyLjUtODAgMTI5LTgwIDc5LjUgMCAxNDQgNjQuNSAxNDQgMTQ0UzU3NS41IDIyNCA0OTYgMjI0Yy02LjUgMC0xMy0uNC0xOS4zLTEuM2w2NC03NC43YzEuMS0xLjMgMi4yLTIuNyAzLjMtNC4xIDE5LjQtMTQuNiAzMi0zNy44IDMyLTY0ek02Ni45IDgyLjZDNzIuMiA3MS4zIDgzLjUgNjQgOTYgNjRsMzg0IDBjMTIuNSAwIDIzLjggNy4zIDI5LjEgMTguNnMzLjQgMjQuNy00LjggMzQuMmwtMTg0LjMgMjE1IDAgMTE2LjIgNjQgMGMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMmwtMTkyIDBjLTE3LjcgMC0zMi0xNC4zLTMyLTMyczE0LjMtMzIgMzItMzJsNjQgMCAwLTExNi4yLTE4NC4zLTIxNWMtOC4xLTkuNS0xMC0yMi44LTQuOC0zNC4yek0xNjUuNiAxMjhMMjg4IDI3MC44IDQxMC40IDEyOCAxNjUuNiAxMjh6Il19LEJCZT1oQixIQmU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiYnVsbGhvcm4iLGljb246WzUxMiw1MTIsWzEyODIyNiwxMjgzNjNdLCJmMGExIiwiTTQ2MS4yIDE4LjlDNDcyLjcgMjQgNDgwIDM1LjQgNDgwIDQ4bDAgNDE2YzAgMTIuNi03LjMgMjQtMTguOCAyOS4xcy0yNC44IDMuMi0zNC4zLTUuMWwtNDYuNi00MC43Yy00My42LTM4LjEtOTguNy02MC4zLTE1Ni40LTYzbDAgOTUuN2MwIDE3LjctMTQuMyAzMi0zMiAzMmwtMzIgMGMtMTcuNyAwLTMyLTE0LjMtMzItMzJsMC05NkM1Ny4zIDM4NCAwIDMyNi43IDAgMjU2UzU3LjMgMTI4IDEyOCAxMjhsODQuNSAwYzYxLjgtLjIgMTIxLjQtMjIuNyAxNjcuOS02My4zbDQ2LjYtNDAuN2M5LjQtOC4zIDIyLjktMTAuMiAzNC4zLTUuMXpNMjI0IDMyMGwwIC4yYzcwLjMgMi43IDEzNy44IDI4LjUgMTkyIDczLjRsMC0yNzUuM2MtNTQuMiA0NC45LTEyMS43IDcwLjctMTkyIDczLjRMMjI0IDMyMHoiXX0scUJlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImJveC10aXNzdWUiLGljb246WzUxMiw1MTIsW10sImUwNWIiLCJNMTAzLjkgMzJsMTYxIDBjMTMuOCAwIDI2IDguOCAzMC40IDIxLjlsMTcuNCA1Mi4yYzQuNCAxMy4xIDE2LjYgMjEuOSAzMC40IDIxLjlsNjAuNSAwYzIxLjggMCAzNy4zIDIxLjQgMzAuNCA0Mi4xTDM4NCAzMjAgMTI4IDMyMCA3Mi43IDcwLjlDNjguMiA1MSA4My40IDMyIDEwMy45IDMyek00OCAyNTZsMTYuNiAwIDE2LjUgNzQuNEM4NiAzNTIuNCAxMDUuNSAzNjggMTI4IDM2OGwyNTYgMGMyMC43IDAgMzktMTMuMiA0NS41LTMyLjhsMjYuNC03OS4yIDguMSAwYzI2LjUgMCA0OCAyMS41IDQ4IDQ4bDAgMTI4YzAgMjYuNS0yMS41IDQ4LTQ4IDQ4TDQ4IDQ4MGMtMjYuNSAwLTQ4LTIxLjUtNDgtNDhMMCAzMDRjMC0yNi41IDIxLjUtNDggNDgtNDh6Il19LFZCZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJtYXR0cmVzcy1waWxsb3ciLGljb246WzU3Niw1MTIsW10sImU1MjUiLCJNMjU2IDY0TDY0IDY0QzI4LjcgNjQgMCA5Mi43IDAgMTI4TDAgMzg0YzAgMzUuMyAyOC43IDY0IDY0IDY0bDE5MiAwIDAtMzg0em00OCAzODRsMjA4IDBjMzUuMyAwIDY0LTI4LjcgNjQtNjRsMC0yNTZjMC0zNS4zLTI4LjctNjQtNjQtNjRsLTIwOCAwIDAgMzg0ek02NCAxNjBjMC0xNy43IDE0LjMtMzIgMzItMzJsNjQgMGMxNy43IDAgMzIgMTQuMyAzMiAzMmwwIDE5MmMwIDE3LjctMTQuMyAzMi0zMiAzMmwtNjQgMGMtMTcuNyAwLTMyLTE0LjMtMzItMzJsMC0xOTJ6Il19LGpCZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJjaGV2cm9uLWxlZnQiLGljb246WzMyMCw1MTIsWzkwMDFdLCJmMDUzIiwiTTkuNCAyMzMuNGMtMTIuNSAxMi41LTEyLjUgMzIuOCAwIDQ1LjNsMTkyIDE5MmMxMi41IDEyLjUgMzIuOCAxMi41IDQ1LjMgMHMxMi41LTMyLjggMC00NS4zTDc3LjMgMjU2IDI0Ni42IDg2LjZjMTIuNS0xMi41IDEyLjUtMzIuOCAwLTQ1LjNzLTMyLjgtMTIuNS00NS4zIDBsLTE5MiAxOTJ6Il19LFVCZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJjbG91ZC1tb29uLXJhaW4iLGljb246WzU3Niw1MTIsW10sImY3M2MiLCJNNDQ4IDBjLTY4LjYgMC0xMjcuMSA0My4xLTE0OS44IDEwMy44IDE3LjEgMTQuMSAyOS42IDMzLjUgMzQuOSA1NS44IDM5LjkgMjEuNyA2Ni45IDYzLjkgNjYuOSAxMTIuNSAwIDEzLjUtMi4xIDI2LjUtNS45IDM4LjcgMTYuOSA2IDM1IDkuMyA1My45IDkuMyA0MyAwIDgyLjEtMTcgMTEwLjgtNDQuNiA0LjYtNC40IDUuOS0xMS4yIDMuMy0xN3MtOC42LTkuMy0xNC45LTguOGMtMyAuMi02LjEgLjQtOS4yIC40LTYzLjUgMC0xMTUtNTEuNS0xMTUtMTE1IDAtNDUuMSAyNi04NC4yIDYzLjgtMTAzIDUuNy0yLjggOS04LjkgOC4yLTE1LjJTNDg5LjYgNS4zIDQ4My40IDMuOUM0NzIgMS40IDQ2MC4yIDAgNDQ4IDB6TTI3MiAzNTJjNDQuMiAwIDgwLTM1LjggODAtODAgMC0zOS0yNy45LTcxLjUtNjQuOC03OC42IC41LTMuMSAuOC02LjIgLjgtOS40IDAtMzAuOS0yNS4xLTU2LTU2LTU2LTEyLjQgMC0yMy45IDQtMzMuMSAxMC44LTEzLjQtMjUuNS00MC4xLTQyLjgtNzAuOS00Mi44LTQ0LjIgMC04MCAzNS44LTgwIDgwIDAgNy40IDEgMTQuNiAyLjkgMjEuNS0yOS44IDExLjYtNTAuOSA0MC42LTUwLjkgNzQuNSAwIDQ0LjIgMzUuOCA4MCA4MCA4MGwxOTIgMHpNNjkgNDAxLjFjLTEyLjYtNC4yLTI2LjIgMi42LTMwLjQgMTUuMkwxNy4yIDQ4MC40QzEzIDQ5MyAxOS44IDUwNi42IDMyLjQgNTEwLjhzMjYuMi0yLjYgMzAuNC0xNS4ybDIxLjQtNjQuMWM0LjItMTIuNi0yLjYtMjYuMi0xNS4yLTMwLjR6bTEyMCAwYy0xMi42LTQuMi0yNi4yIDIuNi0zMC40IDE1LjJsLTIxLjQgNjQuMWMtNC4yIDEyLjYgMi42IDI2LjIgMTUuMiAzMC40czI2LjItMi42IDMwLjQtMTUuMmwyMS40LTY0LjFjNC4yLTEyLjYtMi42LTI2LjItMTUuMi0zMC40em0xMjAgMGMtMTIuNi00LjItMjYuMiAyLjYtMzAuNCAxNS4ybC0yMS40IDY0LjFjLTQuMiAxMi42IDIuNiAyNi4yIDE1LjIgMzAuNHMyNi4yLTIuNiAzMC40LTE1LjJsMjEuNC02NC4xYzQuMi0xMi42LTIuNi0yNi4yLTE1LjItMzAuNHoiXX0sJG09e3ByZWZpeDoiZmFzIixpY29uTmFtZToiYXJyb3ctZG93bi0xLTkiLGljb246WzUxMiw1MTIsWyJzb3J0LW51bWVyaWMtYXNjIiwic29ydC1udW1lcmljLWRvd24iXSwiZjE2MiIsIk00MTguNyAzOGM4LjMgNiAxMy4zIDE1LjcgMTMuMyAyNmwwIDk2IDE2IDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJsLTk2IDBjLTE3LjcgMC0zMi0xNC4zLTMyLTMyczE0LjMtMzIgMzItMzJsMTYgMCAwLTUxLjYtNS45IDJjLTE2LjggNS42LTM0LjktMy41LTQwLjUtMjAuMnMzLjUtMzQuOSAyMC4yLTQwLjVsNDgtMTZjOS44LTMuMyAyMC41LTEuNiAyOC44IDQuNHpNMzY1LjEgNDMwLjZsMTEuNy0xOGMtMzIuOS05LjktNTYuOC00MC41LTU2LjgtNzYuNiAwLTQ0LjIgMzUuOC04MCA4MC04MHM4MCAzNS44IDgwIDgwYzAgMjIuOS02LjYgNDUuMy0xOS4xIDY0LjVsLTQyLjEgNjQuOWMtOS42IDE0LjgtMjkuNCAxOS4xLTQ0LjMgOS40cy0xOS4xLTI5LjQtOS40LTQ0LjN6TTQyNCAzMzZhMjQgMjQgMCAxIDAgLTQ4IDAgMjQgMjQgMCAxIDAgNDggMHpNMTUwLjYgNDcwLjZjLTEyLjUgMTIuNS0zMi44IDEyLjUtNDUuMyAwbC05Ni05NmMtMTIuNS0xMi41LTEyLjUtMzIuOCAwLTQ1LjNzMzIuOC0xMi41IDQ1LjMgMEw5NiAzNzAuNyA5NiA2NGMwLTE3LjcgMTQuMy0zMiAzMi0zMnMzMiAxNC4zIDMyIDMybDAgMzA2LjcgNDEuNC00MS40YzEyLjUtMTIuNSAzMi44LTEyLjUgNDUuMyAwczEyLjUgMzIuOCAwIDQ1LjNsLTk2IDk2eiJdfSxXQmU9JG0sR0JlPSRtLFlCZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJoYW5kLXNwb2NrIixpY29uOls1MTIsNTEyLFsxMjg0MDZdLCJmMjU5IiwiTTIxNC45IDIzLjdDMjEwLjMgNi42IDE5Mi44LTMuNSAxNzUuNyAxLjFzLTI3LjIgMjIuMS0yMi42IDM5LjJMMjA2IDIzNy44YzIuNSA5LjItNC41IDE4LjItMTQgMTguMi02LjQgMC0xMi00LjItMTMuOS0xMC4zTDEzNC42IDEwMi43Yy01LjEtMTYuOS0yMy0yNi40LTM5LjktMjEuM3MtMjYuNCAyMy0yMS4zIDM5LjlsNjIuOCAyMDYuNGMyLjQgNy45LTcuMiAxMy44LTEzLjIgOC4xTDY3LjYgMjgzYy0xNi0xNS4yLTQxLjMtMTQuNi01Ni42IDEuNFMtMy42IDMyNS43IDEyLjQgMzQxTDEyNC44IDQ0OGM0My4xIDQxLjEgMTAwLjQgNjQgMTYwIDY0bDE5LjEgMGMuMSAwIC4xLS4xIC4xLS4xcy4xLS4xIC4xLS4xYzU4LjMtMy41IDEwOC42LTQzLjIgMTI1LjMtOTkuN2w4MS4yLTI3NWM1LTE2LjktNC43LTM0LjctMjEuNi0zOS44cy0zNC43IDQuNy0zOS44IDIxLjZMNDExLjUgMjQ3LjFjLTEuNiA1LjMtNi40IDguOS0xMiA4LjktNy45IDAtMTMuOC03LjMtMTIuMi0xNS4xbDM2LTE3MC4zYzMuNy0xNy4zLTcuNC0zNC4zLTI0LjctMzcuOXMtMzQuMyA3LjQtMzcuOSAyNC43TDMyMy4xIDIzNS4xYy0yLjYgMTIuMi0xMy4zIDIwLjktMjUuOCAyMC45LTExLjkgMC0yMi40LTgtMjUuNC0xOS41bC01Ny0yMTIuOHoiXX0scEI9e3ByZWZpeDoiZmFzIixpY29uTmFtZToid2FuZC1tYWdpYy1zcGFya2xlcyIsaWNvbjpbNTc2LDUxMixbIm1hZ2ljLXdhbmQtc3BhcmtsZXMiXSwiZTJjYSIsIk0yNjMuNC0yN0wyNzguMiA5LjggMzE1IDI0LjZjMyAxLjIgNSA0LjIgNSA3LjRzLTIgNi4yLTUgNy40TDI3OC4yIDU0LjIgMjYzLjQgOTFjLTEuMiAzLTQuMiA1LTcuNCA1cy02LjItMi03LjQtNUwyMzMuOCA1NC4yIDE5NyAzOS40Yy0zLTEuMi01LTQuMi01LTcuNHMyLTYuMiA1LTcuNEwyMzMuOCA5LjggMjQ4LjYtMjdjMS4yLTMgNC4yLTUgNy40LTVzNi4yIDIgNy40IDV6TTExMC43IDQxLjdsMjEuNSA1MC4xIDUwLjEgMjEuNWM1LjkgMi41IDkuNyA4LjMgOS43IDE0LjdzLTMuOCAxMi4yLTkuNyAxNC43bC01MC4xIDIxLjUtMjEuNSA1MC4xYy0yLjUgNS45LTguMyA5LjctMTQuNyA5LjdzLTEyLjItMy44LTE0LjctOS43TDU5LjggMTY0LjIgOS43IDE0Mi43QzMuOCAxNDAuMiAwIDEzNC40IDAgMTI4czMuOC0xMi4yIDkuNy0xNC43TDU5LjggOTEuOCA4MS4zIDQxLjdDODMuOCAzNS44IDg5LjYgMzIgOTYgMzJzMTIuMiAzLjggMTQuNyA5Ljd6TTQ2NCAzMDRjNi40IDAgMTIuMiAzLjggMTQuNyA5LjdsMjEuNSA1MC4xIDUwLjEgMjEuNWM1LjkgMi41IDkuNyA4LjMgOS43IDE0LjdzLTMuOCAxMi4yLTkuNyAxNC43bC01MC4xIDIxLjUtMjEuNSA1MC4xYy0yLjUgNS45LTguMyA5LjctMTQuNyA5LjdzLTEyLjItMy44LTE0LjctOS43bC0yMS41LTUwLjEtNTAuMS0yMS41Yy01LjktMi41LTkuNy04LjMtOS43LTE0LjdzMy44LTEyLjIgOS43LTE0LjdsNTAuMS0yMS41IDIxLjUtNTAuMWMyLjUtNS45IDguMy05LjcgMTQuNy05Ljd6TTQ2MCAwYzExIDAgMjEuNiA0LjQgMjkuNSAxMi4ybDQyLjMgNDIuM0M1MzkuNiA2Mi40IDU0NCA3MyA1NDQgODRzLTQuNCAyMS42LTEyLjIgMjkuNWwtODguMiA4OC4yLTEwMS4zLTEwMS4zIDg4LjItODguMkM0MzguNCA0LjQgNDQ5IDAgNDYwIDB6TTQ0LjIgMzk4LjVMMzA4LjQgMTM0LjMgNDA5LjcgMjM1LjYgMTQ1LjUgNDk5LjhDMTM3LjYgNTA3LjYgMTI3IDUxMiAxMTYgNTEycy0yMS42LTQuNC0yOS41LTEyLjJMNDQuMiA0NTcuNUMzNi40IDQ0OS42IDMyIDQzOSAzMiA0MjhzNC40LTIxLjYgMTIuMi0yOS41eiJdfSxaQmU9cEIsWEJlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImNvbW1lbnQtbWVkaWNhbCIsaWNvbjpbNTEyLDUxMixbXSwiZjdmNSIsIk0yNTYgNDgwYzE0MS40IDAgMjU2LTEwNy41IDI1Ni0yNDBTMzk3LjQgMCAyNTYgMCAwIDEwNy41IDAgMjQwYzAgNTQuMyAxOS4yIDEwNC4zIDUxLjYgMTQ0LjVMMi44IDQ3Ni44Yy00LjggOS0zLjMgMjAgMy42IDI3LjVzMTcuOCA5LjggMjcuMSA1LjhsMTE4LjQtNTAuN0MxODMuNyA0NzIuNiAyMTguOSA0ODAgMjU2IDQ4MHpNMjE3LjYgMTUzLjZjMC0xMC42IDguNi0xOS4yIDE5LjItMTkuMmwzOC40IDBjMTAuNiAwIDE5LjIgOC42IDE5LjIgMTkuMmwwIDQ4IDQ4IDBjMTAuNiAwIDE5LjIgOC42IDE5LjIgMTkuMmwwIDM4LjRjMCAxMC42LTguNiAxOS4yLTE5LjIgMTkuMmwtNDggMCAwIDQ4YzAgMTAuNi04LjYgMTkuMi0xOS4yIDE5LjJsLTM4LjQgMGMtMTAuNiAwLTE5LjItOC42LTE5LjItMTkuMmwwLTQ4LTQ4IDBjLTEwLjYgMC0xOS4yLTguNi0xOS4yLTE5LjJsMC0zOC40YzAtMTAuNiA4LjYtMTkuMiAxOS4yLTE5LjJsNDggMCAwLTQ4eiJdfSxLQmU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiYmVsbC1zbGFzaCIsaWNvbjpbNTc2LDUxMixbMTI4Mjc3LDYxOTQzXSwiZjFmNiIsIk00MS0yNC45Yy05LjQtOS40LTI0LjYtOS40LTMzLjkgMFMtMi4zLS4zIDcgOS4xbDUyOCA1MjhjOS40IDkuNCAyNC42IDkuNCAzMy45IDBzOS40LTI0LjYgMC0zMy45bC04Ny41LTg3LjVjMTcuMi0yLjQgMzAuNS0xNy4zIDMwLjUtMzUuMiAwLTguMS0yLjctMTUuOS03LjgtMjIuMmwtOS44LTEyLjJDNDY0LjQgMzA4LjUgNDQ4IDI2MS44IDQ0OCAyMTMuN2wwLTIxLjdjMC03Ny40LTU1LTE0Mi0xMjgtMTU2LjhsMC0zLjJjMC0xNy43LTE0LjMtMzItMzItMzJzLTMyIDE0LjMtMzIgMzJsMCAzLjJjLTM4LjYgNy44LTcyLjIgMjkuNi05NS4yIDU5LjdMNDEtMjQuOXptODcgMjM4LjVjMCA0OC4xLTE2LjQgOTQuOC00Ni40IDEzMi40bC05LjggMTIuMmMtNSA2LjMtNy44IDE0LjEtNy44IDIyLjIgMCAxOS42IDE1LjkgMzUuNSAzNS41IDM1LjVsMjM1LjMgMC0yMDYuOS0yMDYuOSAwIDQuNXpNMjg4IDUxMmMyOS44IDAgNTQuOS0yMC40IDYyLTQ4bC0xMjQgMGM3LjEgMjcuNiAzMi4yIDQ4IDYyIDQ4eiJdfSxBbT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJoYW5kc2hha2Utc2xhc2giLGljb246WzU3Niw1MTIsWzU3NDM5LCJoYW5kc2hha2UtYWx0LXNsYXNoIiwiaGFuZHNoYWtlLXNpbXBsZS1zbGFzaCJdLCJlMDYwIiwiTTQxLTI0LjljLTkuNC05LjQtMjQuNi05LjQtMzMuOSAwUy0yLjMtLjMgNyA5LjFsNTI4IDUyOGM5LjQgOS40IDI0LjYgOS40IDMzLjkgMHM5LjQtMjQuNiAwLTMzLjlsLTI4OC0yODggMTQuMi0xNC4yYzQuMi00LjIgOS41LTYuNSAxNC45LTYuOSA2LjgtLjYgMTMuOCAxLjcgMTkgNi45TDUwNS42IDM3NiA1NzYgMzIwIDU3NiAzMiA0NjQgOTYgNDQwLjIgODAuMUM0MjQuNCA2OS42IDQwNS45IDY0IDM4Ni45IDY0bC03MC40IDBjLTEuMSAwLTIuMyAwLTMuNCAuMS0xNi45IC45LTMyLjggOC41LTQ0LjIgMjEuMWwtNTUuOCA2Mi4xLTM0LTM0IDQ0LjMtNDkuMi0zOS43IDBjLTE1LjMgMC0zMC4xIDMuNi00My41IDEwLjRMNDEtMjQuOXpNMCA2OS44TDAgMzIwIDE1Ni40IDQ1MC4zYzIzIDE5LjIgNTIgMjkuNyA4MS45IDI5LjdsMTUuNyAwLTctN2MtOS40LTkuNC05LjQtMjQuNiAwLTMzLjlzMjQuNi05LjQgMzMuOSAwbDQxIDQxIDkgMGMyMi4yIDAgNDMuOC01LjggNjIuOC0xNi40TDAgNjkuOHoiXX0sUUJlPUFtLEpCZT1BbSxlSGU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiYm90dGxlLXdhdGVyIixpY29uOlszMjAsNTEyLFtdLCJlNGM1IiwiTTExMi0zMmw5NiAwYzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMybC05NiAwQzk0LjMgMzIgODAgMTcuNyA4MCAwczE0LjMtMzIgMzItMzJ6TTE2IDE0NGMwLTM1LjMgMjguNy02NCA2NC02NGwxNjAgMGMzNS4zIDAgNjQgMjguNyA2NCA2NCAwIDI0LjEtMTMuMyA0NS4xLTMzIDU2IDE5LjcgMTAuOSAzMyAzMS45IDMzIDU2cy0xMy4zIDQ1LjEtMzMgNTZjMTkuNyAxMC45IDMzIDMxLjkgMzMgNTZzLTEzLjMgNDUuMS0zMyA1NmMxOS43IDEwLjkgMzMgMzEuOSAzMyA1NiAwIDM1LjMtMjguNyA2NC02NCA2NEw4MCA1NDRjLTM1LjMgMC02NC0yOC43LTY0LTY0IDAtMjQuMSAxMy4zLTQ1LjEgMzMtNTYtMTkuNy0xMC45LTMzLTMxLjktMzMtNTZzMTMuMy00NS4xIDMzLTU2Yy0xOS43LTEwLjktMzMtMzEuOS0zMy01NnMxMy4zLTQ1LjEgMzMtNTZjLTE5LjctMTAuOS0zMy0zMS45LTMzLTU2eiJdfSx0SGU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZGljZS1kMjAiLGljb246WzUxMiw1MTIsW10sImY2Y2YiLCJNMjI0LjQtOC4yYzE5LjYtMTEuMSA0My42LTExLjEgNjMuMSAwbDE5MiAxMDguOGMyMCAxMS40IDMyLjQgMzIuNiAzMi40IDU1LjdsMCAyMTUuNmMwIDIzLTEyLjQgNDQuMy0zMi40IDU1LjdsLTE5MiAxMDguOGMtMTkuNiAxMS4xLTQzLjYgMTEuMS02My4xIDBMMzIuNCA0MjcuNUMxMi40IDQxNi4xIDAgMzk0LjggMCAzNzEuOEwwIDE1Ni4yYzAtMjMgMTIuNC00NC4zIDMyLjQtNTUuN0wyMjQuNC04LjJ6bTUyIDczLjJDMjY3IDQ5LjggMjQ1IDQ5LjggMjM1LjYgNjVsLTc2LjYgMTIzLjctODUuNC00Ni4zLTMuOC0xLjZjLTguOS0yLjctMTguOCAxLjEtMjMuNCA5LjZzLTIuNCAxOC45IDQuNyAyNC44bDMuMyAyLjMgODMuNCA0NS4yLTc0LjYgMTIwLjZDNTUuMyAzNTYuMiA2MSAzNzMgNzUgMzc4LjRsMTYxIDYxLjkgMCAzOS43YzAgMTEgOSAyMCAyMCAyMHMyMC05IDIwLTIwbDAtMzkuNyAxNjEtNjEuOWMxNC01LjQgMTkuNy0yMi4yIDExLjgtMzVsLTc0LjctMTIwLjYgODMuNC00NS4yYzkuNy01LjMgMTMuMy0xNy40IDguMS0yNy4xcy0xNy40LTEzLjMtMjcuMS04LjFMMzUzIDE4OC43IDI3Ni40IDY1em0tNDcgMzI5LjlsLTEyMi00Ni45IDU0LjUtODguMSA2Ny41IDEzNXpNNDA0LjYgMzQ4bC0xMjIgNDYuOSA2Ny41LTEzNSA1NC41IDg4LjF6TTMxOS4zIDIzMkwyNTYgMzU4LjYgMTkyLjcgMjMyIDMxOS4zIDIzMnpNMzA4IDE5MmwtMTA0LjEgMCA1Mi04NCA1MiA4NHoiXX0sRG09e3ByZWZpeDoiZmFzIixpY29uTmFtZToiYXJyb3ctZG93bi16LWEiLGljb246WzUxMiw1MTIsWyJzb3J0LWFscGhhLWRlc2MiLCJzb3J0LWFscGhhLWRvd24tYWx0Il0sImY4ODEiLCJNMjMwLjYgMzkwLjZsLTgwIDgwYy0xMi41IDEyLjUtMzIuOCAxMi41LTQ1LjMgMGwtODAtODBjLTEyLjUtMTIuNS0xMi41LTMyLjggMC00NS4zczMyLjgtMTIuNSA0NS4zIDBMOTYgMzcwLjcgOTYgNjRjMC0xNy43IDE0LjMtMzIgMzItMzJzMzIgMTQuMyAzMiAzMmwwIDMwNi43IDI1LjQtMjUuNGMxMi41LTEyLjUgMzIuOC0xMi41IDQ1LjMgMHMxMi41IDMyLjggMCA0NS4zek0yODggNjRjMC0xNy43IDE0LjMtMzIgMzItMzJsMTI4IDBjMTIuOSAwIDI0LjYgNy44IDI5LjYgMTkuOHMyLjIgMjUuNy02LjkgMzQuOUwzOTcuMyAxNjAgNDQ4IDE2MGMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMmwtMTI4IDBjLTEyLjkgMC0yNC42LTcuOC0yOS42LTE5LjhzLTIuMi0yNS43IDYuOS0zNC45TDM3MC44IDk2IDMyMCA5NmMtMTcuNyAwLTMyLTE0LjMtMzItMzJ6TTQxMi42IDI3My43bDgwIDE2MGM3LjkgMTUuOCAxLjUgMzUtMTQuMyA0Mi45cy0zNSAxLjUtNDIuOS0xNC4zbC03LjItMTQuMy04OC40IDAtNy4yIDE0LjNjLTcuOSAxNS44LTI3LjEgMjIuMi00Mi45IDE0LjNzLTIyLjItMjcuMS0xNC4zLTQyLjlsODAtMTYwYzUuNC0xMC44IDE2LjUtMTcuNyAyOC42LTE3LjdzMjMuMiA2LjggMjguNiAxNy43ek0zODQgMzU5LjZsLTIwLjIgNDAuNCA0MC40IDAtMjAuMi00MC40eiJdfSxhSGU9RG0saUhlPURtLHJIZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJicnVzaCIsaWNvbjpbMzg0LDUxMixbXSwiZjU1ZCIsIk0xNjIuNCA2Yy0xLjUtMy42LTUtNi04LjktNmwtMTkgMGMtMy45IDAtNy41IDIuNC04LjkgNkwxMDQuOSA1Ny43Yy0zLjIgOC0xNC42IDgtMTcuOCAwTDY2LjQgNmMtMS41LTMuNi01LTYtOC45LTZMNDggMEMyMS41IDAgMCAyMS41IDAgNDhsMCAyMDggMzg0IDAgMC0yMDhjMC0yNi41LTIxLjUtNDgtNDgtNDhMMjMwLjUgMGMtMy45IDAtNy41IDIuNC04LjkgNkwyMDAuOSA1Ny43Yy0zLjIgOC0xNC42IDgtMTcuOCAwTDE2Mi40IDZ6TTAgMzA0bDAgMTZjMCAzNS4zIDI4LjcgNjQgNjQgNjRsNjQgMCAwIDY0YzAgMzUuMyAyOC43IDY0IDY0IDY0czY0LTI4LjcgNjQtNjRsMC02NCA2NCAwYzM1LjMgMCA2NC0yOC43IDY0LTY0bDAtMTYtMzg0IDB6TTE5MiA0NjRjLTguOCAwLTE2LTcuMi0xNi0xNnM3LjItMTYgMTYtMTYgMTYgNy4yIDE2IDE2LTcuMiAxNi0xNiAxNnoiXX0sc0hlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InBlcnNvbi13YWxraW5nLWRhc2hlZC1saW5lLWFycm93LXJpZ2h0IixpY29uOls2NDAsNTEyLFtdLCJlNTUzIiwiTTE2MCA4MGE1NiA1NiAwIDEgMCAwLTExMiA1NiA1NiAwIDEgMCAwIDExMnpNNzMuNCAyMjcuOWwyMi42LTIyLjYgMCA2OS4zYzAgMjggMTIuMiA1NC43IDMzLjUgNzIuOWw3MS40IDYxLjJjNS45IDUuMSA5LjggMTIuMSAxMC45IDE5LjhsMTIuNiA4OC4xYzIuNSAxNy41IDE4LjcgMjkuNyAzNi4yIDI3LjJzMjkuNy0xOC43IDI3LjItMzYuMmwtMTIuNi04OC4xYy0zLjMtMjMuMS0xNC45LTQ0LjEtMzIuNi01OS4zbC0zNC41LTI5LjYgMC0xMTUuMiAzLjggNC43YzE4LjIgMjIuOCA0NS44IDM2IDc1IDM2bDMzLjIgMGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMmwtMzMuMiAwYy05LjcgMC0xOC45LTQuNC0yNS0xMmwtMTcuOS0yMi40Yy0yMy0yOC44LTU3LjktNDUuNi05NC44LTQ1LjYtMzIuMiAwLTYzLjEgMTIuOC04NS44IDM1LjZMMjguMSAxODIuNkMxMC4xIDIwMC42IDAgMjI1IDAgMjUwLjVMMCAyODhjMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMmwwLTM3LjVjMC04LjUgMy40LTE2LjYgOS40LTIyLjZ6TTg1LjggNDA3LjNjLTEuNSA1LjItNC4zIDEwLTguMSAxMy44TDkuNCA0ODkuNGMtMTIuNSAxMi41LTEyLjUgMzIuOCAwIDQ1LjNzMzIuOCAxMi41IDQ1LjMgMGw2OC4zLTY4LjNjMTEuNS0xMS41IDE5LjktMjUuOCAyNC40LTQxLjVsMi4yLTcuNi00Ni0zOS40Yy0yLjUtMi4yLTUtNC40LTcuNC02LjhMODUuOCA0MDcuM3pNNDMyIDhjMC0xMy4zLTEwLjctMjQtMjQtMjRTMzg0LTUuMyAzODQgOGwwIDMyYzAgMTMuMyAxMC43IDI0IDI0IDI0czI0LTEwLjcgMjQtMjRsMC0zMnptMCAxMjhjMC0xMy4zLTEwLjctMjQtMjQtMjRzLTI0IDEwLjctMjQgMjRsMCAzMmMwIDEzLjMgMTAuNyAyNCAyNCAyNHMyNC0xMC43IDI0LTI0bDAtMzJ6TTQwOCAzMjBjLTEzLjMgMC0yNCAxMC43LTI0IDI0bDAgMzJjMCAxMy4zIDEwLjcgMjQgMjQgMjRzMjQtMTAuNyAyNC0yNGwwLTMyYzAtMTMuMy0xMC43LTI0LTI0LTI0em0yNCAxNTJjMC0xMy4zLTEwLjctMjQtMjQtMjRzLTI0IDEwLjctMjQgMjRsMCAzMmMwIDEzLjMgMTAuNyAyNCAyNCAyNHMyNC0xMC43IDI0LTI0bDAtMzJ6TTYwOSAyNzNjOS40LTkuNCA5LjQtMjQuNiAwLTMzLjlsLTcyLTcyYy05LjQtOS40LTI0LjYtOS40LTMzLjkgMHMtOS40IDI0LjYgMCAzMy45bDMxIDMxLTEwMi4xIDBjLTEzLjMgMC0yNCAxMC43LTI0IDI0czEwLjcgMjQgMjQgMjRsMTAyLjEgMC0zMSAzMWMtOS40IDkuNC05LjQgMjQuNiAwIDMzLjlzMjQuNiA5LjQgMzMuOSAwbDcyLTcyeiJdfSx1Qj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJhcnJvdy11cC1zaG9ydC13aWRlIixpY29uOls1NzYsNTEyLFsic29ydC1hbW91bnQtdXAtYWx0Il0sImY4ODUiLCJNMzIwIDMyYy0xNy43IDAtMzIgMTQuMy0zMiAzMnMxNC4zIDMyIDMyIDMybDMyIDBjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJsLTMyIDB6bTAgMTI4Yy0xNy43IDAtMzIgMTQuMy0zMiAzMnMxNC4zIDMyIDMyIDMybDk2IDBjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJsLTk2IDB6bTAgMTI4Yy0xNy43IDAtMzIgMTQuMy0zMiAzMnMxNC4zIDMyIDMyIDMybDE2MCAwYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMybC0xNjAgMHptMCAxMjhjLTE3LjcgMC0zMiAxNC4zLTMyIDMyczE0LjMgMzIgMzIgMzJsMjI0IDBjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJsLTIyNCAwek0xNTAuNiA0MS40Yy0xMi41LTEyLjUtMzIuOC0xMi41LTQ1LjMgMGwtOTYgOTZjLTEyLjUgMTIuNS0xMi41IDMyLjggMCA0NS4zczMyLjggMTIuNSA0NS4zIDBMOTYgMTQxLjMgOTYgNDQ4YzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJsMC0zMDYuNyA0MS40IDQxLjRjMTIuNSAxMi41IDMyLjggMTIuNSA0NS4zIDBzMTIuNS0zMi44IDAtNDUuM2wtOTYtOTZ6Il19LG5IZT11QixmQj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJncmlwLXZlcnRpY2FsIixpY29uOlszMjAsNTEyLFsiZ3JpZC12ZXJ0aWNhbCJdLCJmNThlIiwiTTEyOCA0MGMwLTIyLjEtMTcuOS00MC00MC00MEw0MCAwQzE3LjkgMCAwIDE3LjkgMCA0MEwwIDg4YzAgMjIuMSAxNy45IDQwIDQwIDQwbDQ4IDBjMjIuMSAwIDQwLTE3LjkgNDAtNDBsMC00OHptMCAxOTJjMC0yMi4xLTE3LjktNDAtNDAtNDBsLTQ4IDBjLTIyLjEgMC00MCAxNy45LTQwIDQwbDAgNDhjMCAyMi4xIDE3LjkgNDAgNDAgNDBsNDggMGMyMi4xIDAgNDAtMTcuOSA0MC00MGwwLTQ4ek0wIDQyNGwwIDQ4YzAgMjIuMSAxNy45IDQwIDQwIDQwbDQ4IDBjMjIuMSAwIDQwLTE3LjkgNDAtNDBsMC00OGMwLTIyLjEtMTcuOS00MC00MC00MGwtNDggMGMtMjIuMSAwLTQwIDE3LjktNDAgNDB6TTMyMCA0MGMwLTIyLjEtMTcuOS00MC00MC00MEwyMzIgMGMtMjIuMSAwLTQwIDE3LjktNDAgNDBsMCA0OGMwIDIyLjEgMTcuOSA0MCA0MCA0MGw0OCAwYzIyLjEgMCA0MC0xNy45IDQwLTQwbDAtNDh6TTE5MiAyMzJsMCA0OGMwIDIyLjEgMTcuOSA0MCA0MCA0MGw0OCAwYzIyLjEgMCA0MC0xNy45IDQwLTQwbDAtNDhjMC0yMi4xLTE3LjktNDAtNDAtNDBsLTQ4IDBjLTIyLjEgMC00MCAxNy45LTQwIDQwek0zMjAgNDI0YzAtMjIuMS0xNy45LTQwLTQwLTQwbC00OCAwYy0yMi4xIDAtNDAgMTcuOS00MCA0MGwwIDQ4YzAgMjIuMSAxNy45IDQwIDQwIDQwbDQ4IDBjMjIuMSAwIDQwLTE3LjkgNDAtNDBsMC00OHoiXX0sb0hlPWZCLGxIZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJjYXItdHVubmVsIixpY29uOls1MTIsNTEyLFtdLCJlNGRlIiwiTTI1NiAwQzExNC42IDAgMCAxMTQuNiAwIDI1NkwwIDQ0OGMwIDM1LjMgMjguNyA2NCA2NCA2NGw0Mi44IDBjLTYuNi01LjktMTAuOC0xNC40LTEwLjgtMjRsMC0xMTMuMWMwLTEzLjUgMy4xLTI2LjggOS0zOC45bDM5LjctODAuOGM5LjQtMTkuMSAyOC45LTMxLjMgNTAuMi0zMS4zTDMxNyAyMjRjMjEuMyAwIDQwLjggMTIuMSA1MC4yIDMxLjNMNDA3IDMzNmM1LjkgMTIuMSA5IDI1LjQgOSAzOC45TDQxNiA0ODhjMCA5LjYtNC4yIDE4LjEtMTAuOCAyNGw0Mi44IDBjMzUuMyAwIDY0LTI4LjcgNjQtNjRsMC0xOTJDNTEyIDExNC42IDM5Ny40IDAgMjU2IDB6TTM2Mi44IDUxMmMtNi42LTUuOS0xMC44LTE0LjQtMTAuOC0yNGwwLTI0LTE5MiAwIDAgMjRjMCA5LjYtNC4yIDE4LjEtMTAuOCAyNGwyMTMuNyAwem0tMTc1LTIzNS41bC0yOS4zIDU5LjUgMTk0LjkgMC0yOS4zLTU5LjVjLTEuMy0yLjctNC4xLTQuNS03LjItNC41TDE5NSAyNzJjLTMgMC01LjggMS43LTcuMiA0LjV6TTE3NiA0MjRhMjQgMjQgMCAxIDAgMC00OCAyNCAyNCAwIDEgMCAwIDQ4em0xODQtMjRhMjQgMjQgMCAxIDAgLTQ4IDAgMjQgMjQgMCAxIDAgNDggMHoiXX0sY0hlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImNoYXJ0LWNvbHVtbiIsaWNvbjpbNTEyLDUxMixbXSwiZTBlMyIsIk0zMiAzMmMxNy43IDAgMzIgMTQuMyAzMiAzMmwwIDMzNmMwIDguOCA3LjIgMTYgMTYgMTZsNDAwIDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJMODAgNDgwYy00NC4yIDAtODAtMzUuOC04MC04MEwwIDY0QzAgNDYuMyAxNC4zIDMyIDMyIDMyek0xNDQgMjI0YzE3LjcgMCAzMiAxNC4zIDMyIDMybDAgNjRjMCAxNy43LTE0LjMgMzItMzIgMzJzLTMyLTE0LjMtMzItMzJsMC02NGMwLTE3LjcgMTQuMy0zMiAzMi0zMnptMTQ0LTY0bDAgMTYwYzAgMTcuNy0xNC4zIDMyLTMyIDMycy0zMi0xNC4zLTMyLTMybDAtMTYwYzAtMTcuNyAxNC4zLTMyIDMyLTMyczMyIDE0LjMgMzIgMzJ6bTgwIDMyYzE3LjcgMCAzMiAxNC4zIDMyIDMybDAgOTZjMCAxNy43LTE0LjMgMzItMzIgMzJzLTMyLTE0LjMtMzItMzJsMC05NmMwLTE3LjcgMTQuMy0zMiAzMi0zMnpNNTEyIDk2bDAgMjI0YzAgMTcuNy0xNC4zIDMyLTMyIDMycy0zMi0xNC4zLTMyLTMybDAtMjI0YzAtMTcuNyAxNC4zLTMyIDMyLTMyczMyIDE0LjMgMzIgMzJ6Il19LGRIZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJjYXByaWNvcm4iLGljb246WzU3Niw1MTIsW10sImU4NDgiLCJNMjQwIDMyYzc5LjUgMCAxNDQgNjQuNSAxNDQgMTQ0bDAgNjUuMmMxOC44LTEwLjkgNDAuNy0xNy4yIDY0LTE3LjIgNzAuNyAwIDEyOCA1Ny4zIDEyOCAxMjhTNTE4LjcgNDgwIDQ0OCA0ODBjLTM1LjggMC02OC4yLTE0LjctOTEuNC0zOC40LTI4LjggNDIuNS03Ny40IDcwLjQtMTMyLjYgNzAuNC0xNy43IDAtMzItMTQuMy0zMi0zMnMxNC4zLTMyIDMyLTMyYzUzIDAgOTYtNDMgOTYtOTZsMC0xNzZjMC00NC4yLTM1LjgtODAtODAtODBzLTgwIDM1LjgtODAgODBsMCAyMDhjMCAxNy43LTE0LjMgMzItMzIgMzJzLTMyLTE0LjMtMzItMzJsMC0yMjRjMC0zNS4zLTI4LjctNjQtNjQtNjQtMTcuNyAwLTMyLTE0LjMtMzItMzJTMTQuMyAzMiAzMiAzMkM3Mi42IDMyIDEwOC44IDUxIDEzMi4yIDgwLjUgMTU4LjYgNTAuNyAxOTcuMSAzMiAyNDAgMzJ6TTQ0OCAyODhhNjQgNjQgMCAxIDAgMCAxMjggNjQgNjQgMCAxIDAgMC0xMjh6Il19LGhIZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJ0cnVjay1hcnJvdy1yaWdodCIsaWNvbjpbNTc2LDUxMixbXSwiZTU4YiIsIk02NCAzMkMyOC43IDMyIDAgNjAuNyAwIDk2TDAgMzg0YzAgMzUuMyAyOC43IDY0IDY0IDY0bDMuMyAwYzEwLjQgMzYuOSA0NC40IDY0IDg0LjcgNjRzNzQuMi0yNy4xIDg0LjctNjRsMTAyLjYgMGMxMC40IDM2LjkgNDQuNCA2NCA4NC43IDY0czc0LjItMjcuMSA4NC43LTY0bDMuMyAwYzM1LjMgMCA2NC0yOC43IDY0LTY0bDAtMTQ2LjdjMC0xNy02LjctMzMuMy0xOC43LTQ1LjNMNTEyIDE0Ni43Yy0xMi0xMi0yOC4zLTE4LjctNDUuMy0xOC43bC01MC43IDAgMC0zMmMwLTM1LjMtMjguNy02NC02NC02NEw2NCAzMnpNNTEyIDIzNy4zbDAgNTAuNy05NiAwIDAtOTYgNTAuNyAwIDQ1LjMgNDUuM3pNMTUyIDM4NGE0MCA0MCAwIDEgMSAwIDgwIDQwIDQwIDAgMSAxIDAtODB6bTIzMiA0MGE0MCA0MCAwIDEgMSA4MCAwIDQwIDQwIDAgMSAxIC04MCAwek0zMDUgMjI1bC03MiA3MmMtOS40IDkuNC0yNC42IDkuNC0zMy45IDBzLTkuNC0yNC42IDAtMzMuOWwzMS0zMS0xMDIuMSAwYy0xMy4zIDAtMjQtMTAuNy0yNC0yNHMxMC43LTI0IDI0LTI0bDEwMi4xIDAtMzEtMzFjLTkuNC05LjQtOS40LTI0LjYgMC0zMy45czI0LjYtOS40IDMzLjkgMGw3MiA3MmM5LjQgOS40IDkuNCAyNC42IDAgMzMuOXoiXX0sRW09e3ByZWZpeDoiZmFzIixpY29uTmFtZToidHYiLGljb246WzU3Niw1MTIsWzYzNzE3LCJ0ZWxldmlzaW9uIiwidHYtYWx0Il0sImYyNmMiLCJNNjQgOTZsMCAyNDAgNDQ4IDAgMC0yNDAtNDQ4IDB6TTAgOTZDMCA2MC43IDI4LjcgMzIgNjQgMzJsNDQ4IDBjMzUuMyAwIDY0IDI4LjcgNjQgNjRsMCAyNDBjMCAzNS4zLTI4LjcgNjQtNjQgNjRMNjQgNDAwYy0zNS4zIDAtNjQtMjguNy02NC02NEwwIDk2ek0xNjAgNDQ4bDI1NiAwYzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMybC0yNTYgMGMtMTcuNyAwLTMyLTE0LjMtMzItMzJzMTQuMy0zMiAzMi0zMnoiXX0scEhlPUVtLHVIZT1FbSxmSGU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToic2VjdGlvbiIsaWNvbjpbMjU2LDUxMixbXSwiZTQ0NyIsIk0xMTAgMEM0OS4yIDAgMCA0OS4yIDAgMTEwIDAgMTMzLjcgNy42IDE1NS44IDIwLjUgMTc0IDcuNiAxOTIgMCAyMTQuMSAwIDIzOCAwIDI5MS43IDM4LjkgMzM3LjYgOTEuOSAzNDYuNGw2MS43IDEwLjNjMjIuMiAzLjcgMzguNCAyMi45IDM4LjQgNDUuMyAwIDI1LjQtMjAuNiA0Ni00NiA0NmwtOTggMGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJzMTQuMyAzMiAzMiAzMmw5OCAwYzYwLjcgMCAxMTAtNDkuMiAxMTAtMTEwIDAtMjMuNy03LjYtNDUuOS0yMC41LTY0IDEyLjktMTggMjAuNS00MC4xIDIwLjUtNjQgMC01My44LTM4LjktOTkuNi05MS45LTEwOC41bC02MS43LTEwLjNDODAuMiAxNTEuNiA2NCAxMzIuNCA2NCAxMTAgNjQgODQuNiA4NC42IDY0IDExMCA2NGw5OCAwYzE3LjcgMCAzMi0xNC4zIDMyLTMyUzIyNS43IDAgMjA4IDBMMTEwIDB6bTc0LjcgMjk5LjFjLTYuNS0yLjQtMTMuNC00LjMtMjAuNS01LjVsLTYxLjctMTAuM2MtMjIuMi0zLjctMzguNC0yMi45LTM4LjQtNDUuMyAwLTkuMiAyLjctMTcuOCA3LjQtMjUgNi41IDIuNCAxMy40IDQuMyAyMC41IDUuNWw2MS43IDEwLjNjMjIuMiAzLjcgMzguNCAyMi45IDM4LjQgNDUuMyAwIDkuMi0yLjcgMTcuOC03LjQgMjV6Il19LG1IZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJwZWFjZSIsaWNvbjpbNTEyLDUxMixbOTc3NF0sImY2N2MiLCJNMjI0IDQ0NS4zbDAtMTIxLjgtOTQuMyA3Ny4xYzI2LjEgMjIuOCA1OC41IDM4LjcgOTQuMyA0NC43ek04OS4yIDM1MS4xTDIyNCAyNDAuOCAyMjQgNjYuN2MtOTAuOCAxNS4yLTE2MCA5NC4yLTE2MCAxODkuMyAwIDM0LjYgOS4yIDY3LjEgMjUuMiA5NS4xem0yOTMuMSA0OS41bC05NC4zLTc3LjEgMCAxMjEuOGMzNS43LTYgNjguMS0yMS45IDk0LjMtNDQuN3ptNDAuNi00OS41YzE2LTI4IDI1LjItNjAuNSAyNS4yLTk1LjEgMC05NS4xLTY5LjItMTc0LjEtMTYwLTE4OS4zbDAgMTc0LjIgMTM0LjggMTEwLjN6TTAgMjU2YTI1NiAyNTYgMCAxIDEgNTEyIDAgMjU2IDI1NiAwIDEgMSAtNTEyIDB6Il19LGdIZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJzdGFyIixpY29uOls1NzYsNTEyLFsxMTA4OCw2MTQ0Nl0sImYwMDUiLCJNMzA5LjUtMTguOWMtNC4xLTgtMTIuNC0xMy4xLTIxLjQtMTMuMXMtMTcuMyA1LjEtMjEuNCAxMy4xTDE5My4xIDEyNS4zIDMzLjIgMTUwLjdjLTguOSAxLjQtMTYuMyA3LjctMTkuMSAxNi4zcy0uNSAxOCA1LjggMjQuNGwxMTQuNCAxMTQuNS0yNS4yIDE1OS45Yy0xLjQgOC45IDIuMyAxNy45IDkuNiAyMy4yczE2LjkgNi4xIDI1IDJMMjg4LjEgNDE3LjYgNDMyLjQgNDkxYzggNC4xIDE3LjcgMy4zIDI1LTJzMTEtMTQuMiA5LjYtMjMuMkw0NDEuNyAzMDUuOSA1NTYuMSAxOTEuNGM2LjQtNi40IDguNi0xNS44IDUuOC0yNC40cy0xMC4xLTE0LjktMTkuMS0xNi4zTDM4MyAxMjUuMyAzMDkuNS0xOC45eiJdfSxiSGU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZmxhZyIsaWNvbjpbNDQ4LDUxMixbMTI3OTg4LDYxNzI1XSwiZjAyNCIsIk02NCAzMkM2NCAxNC4zIDQ5LjcgMCAzMiAwUzAgMTQuMyAwIDMyTDAgNDgwYzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJsMC0xMjEuNiA2Mi43LTE4LjhjNDEuOS0xMi42IDg3LjEtOC43IDEyNi4yIDEwLjkgNDIuNyAyMS40IDkyLjUgMjQgMTM3LjIgNy4ybDM3LjEtMTMuOWMxMi41LTQuNyAyMC44LTE2LjYgMjAuOC0zMGwwLTI0Ny43YzAtMjMtMjQuMi0zOC00NC44LTI3LjdsLTExLjggNS45Yy00NC45IDIyLjUtOTcuOCAyMi41LTE0Mi44IDAtMzYuNC0xOC4yLTc4LjMtMjEuOC0xMTcuMi0xMC4xTDY0IDU0LjQgNjQgMzJ6Il19LFBtPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InRyaWFuZ2xlLWV4Y2xhbWF0aW9uIixpY29uOls1MTIsNTEyLFs5ODg4LCJleGNsYW1hdGlvbi10cmlhbmdsZSIsIndhcm5pbmciXSwiZjA3MSIsIk0yNTYgMGMxNC43IDAgMjguMiA4LjEgMzUuMiAyMWwyMTYgNDAwYzYuNyAxMi40IDYuNCAyNy40LS44IDM5LjVTNDg2LjEgNDgwIDQ3MiA0ODBMNDAgNDgwYy0xNC4xIDAtMjcuMi03LjQtMzQuNC0xOS41cy03LjUtMjcuMS0uOC0zOS41bDIxNi00MDBjNy0xMi45IDIwLjUtMjEgMzUuMi0yMXptMCAzNTJhMzIgMzIgMCAxIDAgMCA2NCAzMiAzMiAwIDEgMCAwLTY0em0wLTE5MmMtMTguMiAwLTMyLjcgMTUuNS0zMS40IDMzLjdsNy40IDEwNGMuOSAxMi41IDExLjQgMjIuMyAyMy45IDIyLjMgMTIuNiAwIDIzLTkuNyAyMy45LTIyLjNsNy40LTEwNGMxLjMtMTguMi0xMy4xLTMzLjctMzEuNC0zMy43eiJdfSx2SGU9UG0seUhlPVBtLHhIZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJzY2hvb2wtY2lyY2xlLWV4Y2xhbWF0aW9uIixpY29uOls2NDAsNTEyLFtdLCJlNTZjIiwiTTY0IDEyOGMtMzUuMyAwLTY0IDI4LjctNjQgNjRMMCA0NDhjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMjc2IDBjLTEwLjUtMTQuNi0xOS0zMC43LTI1LjEtNDhsLTkwLjkgMCAwLTg4YzAtMjIuMSAxNy45LTQwIDQwLTQwbDQ4IDBjMSAwIDEuOSAwIDIuOSAuMSAyNi4zLTc0LjYgOTcuNS0xMjguMSAxODEuMS0xMjguMSAyOC42IDAgNTUuNiA2LjIgODAgMTcuNGwwLTMzLjRjMC0zNS4zLTI4LjctNjQtNjQtNjRsLTY0IDAtMTI3LjktMTE1LjFjLTE4LjMtMTYuNC00Ni0xNi40LTY0LjIgMEwxMjggMTI4IDY0IDEyOHptNjQgMjQwYzAgOC44LTcuMiAxNi0xNiAxNmwtMzIgMGMtOC44IDAtMTYtNy4yLTE2LTE2bDAtMzJjMC04LjggNy4yLTE2IDE2LTE2bDMyIDBjOC44IDAgMTYgNy4yIDE2IDE2bDAgMzJ6TTExMiAyNTZsLTMyIDBjLTguOCAwLTE2LTcuMi0xNi0xNmwwLTMyYzAtOC44IDcuMi0xNiAxNi0xNmwzMiAwYzguOCAwIDE2IDcuMiAxNiAxNmwwIDMyYzAgOC44LTcuMiAxNi0xNiAxNnpNMjg4IDEyOGE2NCA2NCAwIDEgMSAwIDEyOCA2NCA2NCAwIDEgMSAwLTEyOHpNNDk2IDU0NGExNDQgMTQ0IDAgMSAwIDAtMjg4IDE0NCAxNDQgMCAxIDAgMCAyODh6bTAtMTAwYTIwIDIwIDAgMSAxIDAgNDAgMjAgMjAgMCAxIDEgMC00MHptMC0xNDBjOC44IDAgMTYgNy4yIDE2IDE2bDAgODBjMCA4LjgtNy4yIDE2LTE2IDE2cy0xNi03LjItMTYtMTZsMC04MGMwLTguOCA3LjItMTYgMTYtMTZ6Il19LG1CPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImdyYWR1YXRpb24tY2FwIixpY29uOls1NzYsNTEyLFsxMjc4OTEsIm1vcnRhci1ib2FyZCJdLCJmMTlkIiwiTTQ4IDE5NS44bDIwOS4yIDg2LjFjOS44IDQgMjAuMiA2LjEgMzAuOCA2LjFzMjEtMi4xIDMwLjgtNi4xbDI0Mi40LTk5LjhjOS0zLjcgMTQuOC0xMi40IDE0LjgtMjIuMXMtNS44LTE4LjQtMTQuOC0yMi4xTDMxOC44IDM4LjFDMzA5IDM0LjEgMjk4LjYgMzIgMjg4IDMycy0yMSAyLjEtMzAuOCA2LjFMMTQuOCAxMzcuOUM1LjggMTQxLjYgMCAxNTAuMyAwIDE2MEwwIDQ1NmMwIDEzLjMgMTAuNyAyNCAyNCAyNHMyNC0xMC43IDI0LTI0bDAtMjYwLjJ6bTQ4IDcxLjdMOTYgMzg0YzAgNTMgODYgOTYgMTkyIDk2czE5Mi00MyAxOTItOTZsMC0xMTYuNi0xNDIuOSA1OC45Yy0xNS42IDYuNC0zMi4yIDkuNy00OS4xIDkuN3MtMzMuNS0zLjMtNDkuMS05LjdMOTYgMjY3LjR6Il19LHdIZT1tQixNSGU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToic3RvcmUiLGljb246WzUxMiw1MTIsW10sImY1NGUiLCJNMzAuNyA3Mi4zQzM3LjYgNDguNCA1OS41IDMyIDg0LjQgMzJsMzQ0IDBjMjQuOSAwIDQ2LjggMTYuNCA1My44IDQwLjNsMjMuNCA4MC4yYzEyLjggNDMuNy0yMC4xIDg3LjUtNjUuNiA4Ny41LTI2LjMgMC00OS40LTE0LjktNjAuOC0zNy4xLTExLjYgMjEuOS0zNC42IDM3LjEtNjEuNCAzNy4xLTI2LjYgMC00OS43LTE1LTYxLjMtMzctMTEuNiAyMi0zNC43IDM3LTYxLjMgMzctMjYuOCAwLTQ5LjgtMTUuMS02MS40LTM3LjEtMTEuNCAyMi4xLTM0LjUgMzcuMS02MC44IDM3LjEtNDUuNiAwLTc4LjQtNDMuNy02NS42LTg3LjVMMzAuNyA3Mi4zek05Ni40IDM1MmwzMjAgMCAwLTY2LjRjNy42IDEuNiAxNS41IDIuNCAyMy41IDIuNCAxNC4zIDAgMjgtMi42IDQwLjUtNy4ybDAgMTUxLjJjMCAyNi41LTIxLjUgNDgtNDggNDhsLTM1MiAwYy0yNi41IDAtNDgtMjEuNS00OC00OGwwLTE1MS4yYzEyLjUgNC42IDI2LjEgNy4yIDQwLjUgNy4yIDguMSAwIDE1LjktLjggMjMuNS0yLjRsMCA2Ni40eiJdfSx6SGU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToidXNlci1hc3Ryb25hdXQiLGljb246WzQ0OCw1MTIsW10sImY0ZmIiLCJNMjI0IDMzNmM3NC42IDAgMTM4LjQtNDYuNCAxNjQtMTEybDQgMGMxMy4zIDAgMjQtMTAuNyAyNC0yNGwwLTgwYzAtMTMuMy0xMC43LTI0LTI0LTI0bC00IDBDMzYyLjQgMzAuNCAyOTguNi0xNiAyMjQtMTZTODUuNiAzMC40IDYwIDk2bC00IDBjLTEzLjMgMC0yNCAxMC43LTI0IDI0bDAgODBjMCAxMy4zIDEwLjcgMjQgMjQgMjRsNCAwYzI1LjYgNjUuNiA4OS40IDExMiAxNjQgMTEyek0yMDggODBsMzIgMGM1MyAwIDk2IDQzIDk2IDk2cy00MyA5Ni05NiA5NmwtMzIgMGMtNTMgMC05Ni00My05Ni05NnM0My05NiA5Ni05NnpNMTYgNDg0LjZDMTYgNDk5LjcgMjguMyA1MTIgNDMuNCA1MTJsNTIuNiAwIDAtNDhjMC0xNy43IDE0LjMtMzIgMzItMzJsMTkyIDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJsMCA0OCA1Mi42IDBjMTUuMSAwIDI3LjQtMTIuMyAyNy40LTI3LjQgMC01OS44LTMxLjktMTEyLjItNzkuNi0xNDEtMzYuNCAyNS41LTgwLjYgNDAuNC0xMjguNCA0MC40cy05Mi0xNC45LTEyOC40LTQwLjRDNDcuOSAzNzIuNCAxNiA0MjQuOCAxNiA0ODQuNnpNMTgzLjMgMTQxLjVjLS45LTMuMy0zLjktNS41LTcuMy01LjVzLTYuNCAyLjItNy4zIDUuNWwtNiAyMS4yLTIxLjIgNmMtMy4zIC45LTUuNSAzLjktNS41IDcuM3MyLjIgNi40IDUuNSA3LjNsMjEuMiA2IDYgMjEuMmMuOSAzLjMgMy45IDUuNSA3LjMgNS41czYuNC0yLjIgNy4zLTUuNWw2LTIxLjIgMjEuMi02YzMuMy0uOSA1LjUtMy45IDUuNS03LjNzLTIuMi02LjQtNS41LTcuM2wtMjEuMi02LTYtMjEuMnpNMTUyIDQ4OGwwIDI0IDQ4IDAgMC0yNGMwLTEzLjMtMTAuNy0yNC0yNC0yNHMtMjQgMTAuNy0yNCAyNHptMTIwLTI0Yy0xMy4zIDAtMjQgMTAuNy0yNCAyNGwwIDI0IDQ4IDAgMC0yNGMwLTEzLjMtMTAuNy0yNC0yNC0yNHoiXX0sa0hlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImJ1aWxkaW5nLWZsYWciLGljb246WzY0MCw1MTIsW10sImU0ZDUiLCJNNjQgMEMyOC43IDAgMCAyOC43IDAgNjRMMCA0NDhjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMjU2IDBjMzUuMyAwIDY0LTI4LjcgNjQtNjRsMC0zODRjMC0zNS4zLTI4LjctNjQtNjQtNjRMNjQgMHpNMTc2IDM1MmwzMiAwYzE3LjcgMCAzMiAxNC4zIDMyIDMybDAgODAtOTYgMCAwLTgwYzAtMTcuNyAxNC4zLTMyIDMyLTMyek05NiAxMTJjMC04LjggNy4yLTE2IDE2LTE2bDMyIDBjOC44IDAgMTYgNy4yIDE2IDE2bDAgMzJjMCA4LjgtNy4yIDE2LTE2IDE2bC0zMiAwYy04LjggMC0xNi03LjItMTYtMTZsMC0zMnpNMjQwIDk2bDMyIDBjOC44IDAgMTYgNy4yIDE2IDE2bDAgMzJjMCA4LjgtNy4yIDE2LTE2IDE2bC0zMiAwYy04LjggMC0xNi03LjItMTYtMTZsMC0zMmMwLTguOCA3LjItMTYgMTYtMTZ6TTk2IDI0MGMwLTguOCA3LjItMTYgMTYtMTZsMzIgMGM4LjggMCAxNiA3LjIgMTYgMTZsMCAzMmMwIDguOC03LjIgMTYtMTYgMTZsLTMyIDBjLTguOCAwLTE2LTcuMi0xNi0xNmwwLTMyem0xNDQtMTZsMzIgMGM4LjggMCAxNiA3LjIgMTYgMTZsMCAzMmMwIDguOC03LjIgMTYtMTYgMTZsLTMyIDBjLTguOCAwLTE2LTcuMi0xNi0xNmwwLTMyYzAtOC44IDcuMi0xNiAxNi0xNnpNNDY0IDBjLTE3LjcgMC0zMiAxNC4zLTMyIDMybDAgNDQ4YzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJsMC0yODggMTEyIDBjMTcuNyAwIDMyLTE0LjMgMzItMzJsMC05NmMwLTE3LjctMTQuMy0zMi0zMi0zMkw0OTYgMzJjMC0xNy43LTE0LjMtMzItMzItMzJ6Il19LGdCPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6Im11Zy1zYXVjZXIiLGljb246WzU3Niw1MTIsWyJjb2ZmZWUiXSwiZjBmNCIsIk02NCA2NGMwLTE3LjcgMTQuMy0zMiAzMi0zMmwzNTIgMGM3MC43IDAgMTI4IDU3LjMgMTI4IDEyOFM1MTguNyAyODggNDQ4IDI4OGMwIDUzLTQzIDk2LTk2IDk2bC0xOTIgMGMtNTMgMC05Ni00My05Ni05Nkw2NCA2NHptNDQ4IDk2YzAtMzUuMy0yOC43LTY0LTY0LTY0bDAgMTI4YzM1LjMgMCA2NC0yOC43IDY0LTY0ek02NCA0NDhsMzg0IDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJMNjQgNTEyYy0xNy43IDAtMzItMTQuMy0zMi0zMnMxNC4zLTMyIDMyLTMyeiJdfSxTSGU9Z0IsQ0hlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImxlbW9uIixpY29uOls0NDgsNTEyLFsxMjc4MTldLCJmMDk0IiwiTTQ0OCA5NmMwLTM1LjMtMjguNy02NC02NC02NC02LjYgMC0xMyAxLTE5IDIuOS0yMi41IDctNDguMSAxNC45LTcxIDktNzUuMi0xOS4xLTE1Ni40IDExLTIxMy43IDY4LjNTLTcuMiAyNTAuOCAxMS45IDMyNmM1LjggMjIuOS0yIDQ4LjQtOSA3MS0xLjkgNi0yLjkgMTIuNC0yLjkgMTkgMCAzNS4zIDI4LjcgNjQgNjQgNjQgNi42IDAgMTMtMSAxOS4xLTIuOSAyMi41LTcgNDguMS0xNC45IDcxLTkgNzUuMiAxOS4xIDE1Ni40LTExIDIxMy43LTY4LjNTNDU1LjIgMjYxLjIgNDM2LjEgMTg2Yy01LjgtMjIuOSAyLTQ4LjQgOS03MSAxLjktNiAyLjktMTIuNCAyLjktMTkuMXpNMjIyLjcgMTQzYy01MiAxNS4yLTk2LjUgNTkuNy0xMTEuNyAxMTEuNy0zLjcgMTIuNy0xNy4xIDIwLTI5LjggMTYuM1M2MS4yIDI1NCA2NSAyNDEuM2MxOS44LTY3LjcgNzYuNi0xMjQuNSAxNDQuMy0xNDQuMyAxMi43LTMuNyAyNi4xIDMuNiAyOS44IDE2LjNzLTMuNiAyNi4xLTE2LjMgMjkuOHoiXX0sX0hlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImNhcmF2YW4iLGljb246WzY0MCw1MTIsW10sImY4ZmYiLCJNMzIgOTZjMC0zNS4zIDI4LjctNjQgNjQtNjRsMzIwIDBjNzAuNyAwIDEyOCA1Ny4zIDEyOCAxMjhsMCAxOTIgNjQgMGMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMmwtMjk2LjQgMGMuMiAyLjYgLjQgNS4zIC40IDggMCA0OC42LTM5LjQgODgtODggODhzLTg4LTM5LjQtODgtODhjMC0yLjcgLjEtNS40IC40LThMOTYgNDE2Yy0zNS4zIDAtNjQtMjguNy02NC02NEwzMiA5NnpNMzUyIDM1Mmw2NCAwYzE3LjcgMCAzMi0xNC4zIDMyLTMybDAtNDgtMjQgMGMtMTMuMyAwLTI0LTEwLjctMjQtMjRzMTAuNy0yNCAyNC0yNGwyNCAwIDAtNjRjMC0xNy43LTE0LjMtMzItMzItMzJsLTY0IDBjLTE3LjcgMC0zMiAxNC4zLTMyIDMybDAgMTYwYzAgMTcuNyAxNC4zIDMyIDMyIDMyek0xNjAgMTI4Yy0xNy43IDAtMzIgMTQuMy0zMiAzMmwwIDY0YzAgMTcuNyAxNC4zIDMyIDMyIDMybDY0IDBjMTcuNyAwIDMyLTE0LjMgMzItMzJsMC02NGMwLTE3LjctMTQuMy0zMi0zMi0zMmwtNjQgMHptNjQgMzM2YTQwIDQwIDAgMSAwIDAtODAgNDAgNDAgMCAxIDAgMCA4MHoiXX0sVEhlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InEiLGljb246WzQ0OCw1MTIsWzExM10sIjUxIiwiTTY0IDI1NmMwIDg4LjQgNzEuNiAxNjAgMTYwIDE2MCAyOC45IDAgNTYtNy43IDc5LjQtMjEuMWwtNzItODYuNGMtMTEuMy0xMy42LTkuNS0zMy44IDQuMS00NS4xczMzLjgtOS41IDQ1LjEgNC4xbDcwLjkgODUuMWMyMC40LTI2LjggMzIuNS02MC4zIDMyLjUtOTYuNiAwLTg4LjQtNzEuNi0xNjAtMTYwLTE2MFM2NCAxNjcuNiA2NCAyNTZ6TTM0NC45IDQ0NC42QzMxMCA0NjcgMjY4LjUgNDgwIDIyNCA0ODAgMTAwLjMgNDgwIDAgMzc5LjcgMCAyNTZTMTAwLjMgMzIgMjI0IDMyIDQ0OCAxMzIuMyA0NDggMjU2YzAgNTYuMS0yMC42IDEwNy40LTU0LjcgMTQ2LjdsNDcuMyA1Ni44YzExLjMgMTMuNiA5LjUgMzMuOC00LjEgNDUuMXMtMzMuOCA5LjUtNDUuMS00LjFsLTQ2LjYtNTUuOXoiXX0sTEhlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImxvY2siLGljb246WzM4NCw1MTIsWzEyODI3NF0sImYwMjMiLCJNMTI4IDk2bDAgNjQgMTI4IDAgMC02NGMwLTM1LjMtMjguNy02NC02NC02NHMtNjQgMjguNy02NCA2NHpNNjQgMTYwbDAtNjRDNjQgMjUuMyAxMjEuMy0zMiAxOTItMzJTMzIwIDI1LjMgMzIwIDk2bDAgNjRjMzUuMyAwIDY0IDI4LjcgNjQgNjRsMCAyMjRjMCAzNS4zLTI4LjcgNjQtNjQgNjRMNjQgNTEyYy0zNS4zIDAtNjQtMjguNy02NC02NEwwIDIyNGMwLTM1LjMgMjguNy02NCA2NC02NHoiXX0sJEhlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InBhaW50LXJvbGxlciIsaWNvbjpbNTEyLDUxMixbXSwiZjVhYSIsIk0wIDY0QzAgMjguNyAyOC43IDAgNjQgMEwzNTIgMGMzNS4zIDAgNjQgMjguNyA2NCA2NGwxNiAwYzQ0LjIgMCA4MCAzNS44IDgwIDgwbDAgOTZjMCA0NC4yLTM1LjggODAtODAgODBsLTE2MCAwYy04LjggMC0xNiA3LjItMTYgMTZsMCAxOC43YzE4LjYgNi42IDMyIDI0LjQgMzIgNDUuM2wwIDk2YzAgMjYuNS0yMS41IDQ4LTQ4IDQ4bC0zMiAwYy0yNi41IDAtNDgtMjEuNS00OC00OGwwLTk2YzAtMjAuOSAxMy40LTM4LjcgMzItNDUuM2wwLTE4LjdjMC00NC4yIDM1LjgtODAgODAtODBsMTYwIDBjOC44IDAgMTYtNy4yIDE2LTE2bDAtOTZjMC04LjgtNy4yLTE2LTE2LTE2bC0xNiAwYzAgMzUuMy0yOC43IDY0LTY0IDY0TDY0IDE5MmMtMzUuMyAwLTY0LTI4LjctNjQtNjRMMCA2NHoiXX0sYkI9e3ByZWZpeDoiZmFzIixpY29uTmFtZToidm9sdW1lLWhpZ2giLGljb246WzY0MCw1MTIsWzEyODI2Niwidm9sdW1lLXVwIl0sImYwMjgiLCJNNTMzLjYgMzIuNWMtMTAuMy04LjQtMjUuNC02LjgtMzMuOCAzLjVzLTYuOCAyNS40IDMuNSAzMy44QzU1Ny41IDExMy44IDU5MiAxODAuOCA1OTIgMjU2cy0zNC41IDE0Mi4yLTg4LjcgMTg2LjNjLTEwLjMgOC40LTExLjggMjMuNS0zLjUgMzMuOHMyMy41IDExLjggMzMuOCAzLjVDNTk4LjUgNDI2LjcgNjQwIDM0Ni4yIDY0MCAyNTZTNTk4LjUgODUuMiA1MzMuNiAzMi41ek00NzMuMSAxMDdjLTEwLjMtOC40LTI1LjQtNi44LTMzLjggMy41cy02LjggMjUuNCAzLjUgMzMuOEM0NzUuMyAxNzAuNyA0OTYgMjEwLjkgNDk2IDI1NnMtMjAuNyA4NS4zLTUzLjIgMTExLjhjLTEwLjMgOC40LTExLjggMjMuNS0zLjUgMzMuOHMyMy41IDExLjggMzMuOCAzLjVjNDMuMi0zNS4yIDcwLjktODguOSA3MC45LTE0OXMtMjcuNy0xMTMuOC03MC45LTE0OXptLTYwLjUgNzQuNWMtMTAuMy04LjQtMjUuNC02LjgtMzMuOCAzLjVzLTYuOCAyNS40IDMuNSAzMy44QzM5My4xIDIyNy42IDQwMCAyNDEgNDAwIDI1NnMtNi45IDI4LjQtMTcuNyAzNy4zYy0xMC4zIDguNC0xMS44IDIzLjUtMy41IDMzLjhzMjMuNSAxMS44IDMzLjggMy41QzQzNC4xIDMxMi45IDQ0OCAyODYuMSA0NDggMjU2cy0xMy45LTU2LjktMzUuNC03NC41ek04MCAzNTJsNDggMCAxMzQuMSAxMTkuMmM2LjQgNS43IDE0LjYgOC44IDIzLjEgOC44IDE5LjIgMCAzNC44LTE1LjYgMzQuOC0zNC44bDAtMzc4LjRjMC0xOS4yLTE1LjYtMzQuOC0zNC44LTM0LjgtOC41IDAtMTYuNyAzLjEtMjMuMSA4LjhMMTI4IDE2MCA4MCAxNjBjLTI2LjUgMC00OCAyMS41LTQ4IDQ4bDAgOTZjMCAyNi41IDIxLjUgNDggNDggNDh6Il19LEFIZT1iQixESGU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZm9sZGVyLXBsdXMiLGljb246WzUxMiw1MTIsW10sImY2NWUiLCJNNTEyIDM4NGMwIDM1LjMtMjguNyA2NC02NCA2NEw2NCA0NDhjLTM1LjMgMC02NC0yOC43LTY0LTY0TDAgOTZDMCA2MC43IDI4LjcgMzIgNjQgMzJsMTM4LjcgMGMxMy44IDAgMjcuMyA0LjUgMzguNCAxMi44bDM4LjQgMjguOGM1LjUgNC4yIDEyLjMgNi40IDE5LjIgNi40TDQ0OCA4MGMzNS4zIDAgNjQgMjguNyA2NCA2NGwwIDI0MHpNMjU2IDE2MGMtMTMuMyAwLTI0IDEwLjctMjQgMjRsMCA0OC00OCAwYy0xMy4zIDAtMjQgMTAuNy0yNCAyNHMxMC43IDI0IDI0IDI0bDQ4IDAgMCA0OGMwIDEzLjMgMTAuNyAyNCAyNCAyNHMyNC0xMC43IDI0LTI0bDAtNDggNDggMGMxMy4zIDAgMjQtMTAuNyAyNC0yNHMtMTAuNy0yNC0yNC0yNGwtNDggMCAwLTQ4YzAtMTMuMy0xMC43LTI0LTI0LTI0eiJdfSxFSGU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToibWVyY3VyeSIsaWNvbjpbMzg0LDUxMixbOTc5MV0sImYyMjMiLCJNMTE3LTRDMTA2LTE3LjggODUuOC0yMCA3Mi4xLTlzLTE2IDMxLjItNSA0NUM3NC45IDQ1LjcgODMuNyA1NC41IDkzLjUgNjIuMSA0Ni43IDkzLjcgMTYgMTQ3LjMgMTYgMjA4IDE2IDI5NC4zIDc4LjEgMzY2LjEgMTYwIDM4MS4xbDAgMzQuOS0zMiAwYy0xNy43IDAtMzIgMTQuMy0zMiAzMnMxNC4zIDMyIDMyIDMybDMyIDAgMCAzMmMwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMybDAtMzIgMzIgMGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMmwtMzIgMCAwLTM0LjljODEuOS0xNSAxNDQtODYuOCAxNDQtMTczLjEgMC02MC43LTMwLjctMTE0LjMtNzcuNS0xNDUuOSA5LjgtNy43IDE4LjctMTYuNCAyNi40LTI2LjEgMTEuMS0xMy44IDguOC0zMy45LTUtNDVTMjc4LTE3LjggMjY3LTRjLTE3LjYgMjItNDQuNyAzNi03NSAzNlMxMzQuNyAxOCAxMTctNHptNzUgMzI0Yy02MS45IDAtMTEyLTUwLjEtMTEyLTExMlMxMzAuMSA5NiAxOTIgOTYgMzA0IDE0Ni4xIDMwNCAyMDhjMCA2MS44LTUwLjEgMTEyLTExMS45IDExMmwtLjEgMHoiXX0sUEhlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImFuY2hvciIsaWNvbjpbNTc2LDUxMixbOTg3NV0sImYxM2QiLCJNMjg4IDY0YTMyIDMyIDAgMSAwIDAgNjQgMzIgMzIgMCAxIDAgMC02NHpNMTkyIDk2YzAtNTMgNDMtOTYgOTYtOTZzOTYgNDMgOTYgOTZjMCA0MS44LTI2LjcgNzcuNC02NCA5MC41bDAgMjU3LjljNjIuOS0xNC4zIDExMC4yLTY5LjcgMTExLjktMTM2LjVsLTE2LjEgMTQuMWMtMTAgOC43LTI1LjEgNy43LTMzLjktMi4zcy03LjctMjUuMSAyLjMtMzMuOWw2NC01NmM5LTcuOSAyMi42LTcuOSAzMS42IDBsNjQgNTZjMTAgOC43IDExIDIzLjkgMi4zIDMzLjlzLTIzLjkgMTEtMzMuOSAyLjNMNDk2IDMwNy45QzQ5My45IDQyMSA0MDEuNiA1MTIgMjg4IDUxMlM4Mi4xIDQyMSA4MCAzMDcuOUw2My44IDMyMi4xYy0xMCA4LjctMjUuMSA3LjctMzMuOS0yLjNzLTcuNy0yNS4xIDIuMy0zMy45bDY0LTU2YzktNy45IDIyLjYtNy45IDMxLjYgMGw2NCA1NmMxMCA4LjcgMTEgMjMuOSAyLjMgMzMuOXMtMjMuOSAxMS0zMy45IDIuM2wtMTYuMS0xNC4xYzEuOCA2Ni44IDQ5LjEgMTIyLjIgMTExLjkgMTM2LjVsMC0yNTcuOWMtMzcuMy0xMy4yLTY0LTQ4LjctNjQtOTAuNXoiXX0sdkI9e3ByZWZpeDoiZmFzIixpY29uTmFtZToic3F1YXJlLXBhcmtpbmciLGljb246WzQ0OCw1MTIsWzEyNzM1OSwicGFya2luZyJdLCJmNTQwIiwiTTY0IDMyQzI4LjcgMzIgMCA2MC43IDAgOTZMMCA0MTZjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMzIwIDBjMzUuMyAwIDY0LTI4LjcgNjQtNjRsMC0zMjBjMC0zNS4zLTI4LjctNjQtNjQtNjRMNjQgMzJ6TTE5MiAyNTZsNDggMGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMmwtNDggMCAwIDY0em00OCA2NGwtNDggMCAwIDMyYzAgMTcuNy0xNC4zIDMyLTMyIDMycy0zMi0xNC4zLTMyLTMybDAtMTg0YzAtMjIuMSAxNy45LTQwIDQwLTQwbDcyIDBjNTMgMCA5NiA0MyA5NiA5NnMtNDMgOTYtOTYgOTZ6Il19LElIZT12QixOSGU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiaGFudWtpYWgiLGljb246WzY0MCw1MTIsWzEyODMzNF0sImY2ZTYiLCJNMzE0LjIgMy4zYy01LjEgOC44LTE4LjIgMzMuMy0xOC4yIDUyLjcgMCAxMy4zIDEwLjcgMjQgMjQgMjRzMjQtMTAuNyAyNC0yNGMwLTE5LjQtMTMuMS00My45LTE4LjItNTIuNy0xLjItMi4xLTMuNC0zLjMtNS44LTMuM3MtNC42IDEuMi01LjggMy4zem0tMjg4IDQ4QzIxLjEgNjAuMSA4IDg0LjYgOCAxMDQgOCAxMTcuMyAxOC43IDEyOCAzMiAxMjhzMjQtMTAuNyAyNC0yNGMwLTE5LjQtMTMuMS00My45LTE4LjItNTIuNy0xLjItMi4xLTMuNC0zLjMtNS44LTMuM3MtNC42IDEuMi01LjggMy4zek04OCAxMDRjMCAxMy4zIDEwLjcgMjQgMjQgMjRzMjQtMTAuNyAyNC0yNGMwLTE5LjQtMTMuMS00My45LTE4LjItNTIuNy0xLjItMi4xLTMuNC0zLjMtNS44LTMuM3MtNC42IDEuMi01LjggMy4zQzEwMS4xIDYwLjEgODggODQuNiA4OCAxMDR6bTgyLjItNTIuN2MtNS4xIDguOC0xOC4yIDMzLjMtMTguMiA1Mi43IDAgMTMuMyAxMC43IDI0IDI0IDI0czI0LTEwLjcgMjQtMjRjMC0xOS40LTEzLjEtNDMuOS0xOC4yLTUyLjctMS4yLTIuMS0zLjQtMy4zLTUuOC0zLjNzLTQuNiAxLjItNS44IDMuM3pNMjE2IDEwNGMwIDEzLjMgMTAuNyAyNCAyNCAyNHMyNC0xMC43IDI0LTI0YzAtMTkuNC0xMy4xLTQzLjktMTguMi01Mi43LTEuMi0yLjEtMy40LTMuMy01LjgtMy4zcy00LjYgMS4yLTUuOCAzLjNDMjI5LjEgNjAuMSAyMTYgODQuNiAyMTYgMTA0ek0zOTQuMiA1MS4zYy01LjEgOC44LTE4LjIgMzMuMy0xOC4yIDUyLjcgMCAxMy4zIDEwLjcgMjQgMjQgMjRzMjQtMTAuNyAyNC0yNGMwLTE5LjQtMTMuMS00My45LTE4LjItNTIuNy0xLjItMi4xLTMuNC0zLjMtNS44LTMuM3MtNC42IDEuMi01LjggMy4zek00NDAgMTA0YzAgMTMuMyAxMC43IDI0IDI0IDI0czI0LTEwLjcgMjQtMjRjMC0xOS40LTEzLjEtNDMuOS0xOC4yLTUyLjctMS4yLTIuMS0zLjQtMy4zLTUuOC0zLjNzLTQuNiAxLjItNS44IDMuM0M0NTMuMSA2MC4xIDQ0MCA4NC42IDQ0MCAxMDR6bTgyLjItNTIuN2MtNS4xIDguOC0xOC4yIDMzLjMtMTguMiA1Mi43IDAgMTMuMyAxMC43IDI0IDI0IDI0czI0LTEwLjcgMjQtMjRjMC0xOS40LTEzLjEtNDMuOS0xOC4yLTUyLjctMS4yLTIuMS0zLjQtMy4zLTUuOC0zLjNzLTQuNiAxLjItNS44IDMuM3pNNTg0IDEwNGMwIDEzLjMgMTAuNyAyNCAyNCAyNHMyNC0xMC43IDI0LTI0YzAtMTkuNC0xMy4xLTQzLjktMTguMi01Mi43LTEuMi0yLjEtMy40LTMuMy01LjgtMy4zcy00LjYgMS4yLTUuOCAzLjNDNTk3LjEgNjAuMSA1ODQgODQuNiA1ODQgMTA0ek0xMTIgMTYwYy04LjggMC0xNiA3LjItMTYgMTZsMCAxMTIgMzIgMCAwLTExMmMwLTguOC03LjItMTYtMTYtMTZ6bTY0IDBjLTguOCAwLTE2IDcuMi0xNiAxNmwwIDExMiAzMiAwIDAtMTEyYzAtOC44LTcuMi0xNi0xNi0xNnptNjQgMGMtOC44IDAtMTYgNy4yLTE2IDE2bDAgMTEyIDMyIDAgMC0xMTJjMC04LjgtNy4yLTE2LTE2LTE2em0xNjAgMGMtOC44IDAtMTYgNy4yLTE2IDE2bDAgMTEyIDMyIDAgMC0xMTJjMC04LjgtNy4yLTE2LTE2LTE2em02NCAwYy04LjggMC0xNiA3LjItMTYgMTZsMCAxMTIgMzIgMCAwLTExMmMwLTguOC03LjItMTYtMTYtMTZ6bTY0IDBjLTguOCAwLTE2IDcuMi0xNiAxNmwwIDExMiAzMiAwIDAtMTEyYzAtOC44LTcuMi0xNi0xNi0xNnpNMzUyIDE0NGMwLTE3LjctMTQuMy0zMi0zMi0zMnMtMzIgMTQuMy0zMiAzMmwwIDE3Ni0xOTIgMGMtMTcuNyAwLTMyLTE0LjMtMzItMzJsMC05NmMwLTE3LjctMTQuMy0zMi0zMi0zMlMwIDE3NC4zIDAgMTkybDAgOTZjMCA1MyA0MyA5NiA5NiA5NmwxOTIgMCAwIDY0LTEyOCAwYy0xNy43IDAtMzIgMTQuMy0zMiAzMnMxNC4zIDMyIDMyIDMybDMyMCAwYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMybC0xMjggMCAwLTY0IDE5MiAwYzUzIDAgOTYtNDMgOTYtOTZsMC05NmMwLTE3LjctMTQuMy0zMi0zMi0zMnMtMzIgMTQuMy0zMiAzMmwwIDk2YzAgMTcuNy0xNC4zIDMyLTMyIDMybC0xOTIgMCAwLTE3NnoiXX0sWTU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToicm90YXRlLWxlZnQiLGljb246WzUxMiw1MTIsWyJyb3RhdGUtYmFjayIsInJvdGF0ZS1iYWNrd2FyZCIsInVuZG8tYWx0Il0sImYyZWEiLCJNMjQgMTkybDE0NCAwYzkuNyAwIDE4LjUtNS44IDIyLjItMTQuOHMxLjctMTkuMy01LjItMjYuMmwtNDYuNy00Ni43Yzc1LjMtNTguNiAxODQuMy01My4zIDI1My41IDE1LjkgNzUgNzUgNzUgMTk2LjUgMCAyNzEuNXMtMTk2LjUgNzUtMjcxLjUgMGMtMTAuMi0xMC4yLTE5LTIxLjMtMjYuNC0zMy05LjUtMTQuOS0yOS4zLTE5LjMtNDQuMi05LjhzLTE5LjMgMjkuMy05LjggNDQuMkM0OS43IDQwOC43IDYxLjQgNDIzLjUgNzUgNDM3IDE3NSA1MzcgMzM3IDUzNyA0MzcgNDM3UzUzNyAxNzUgNDM3IDc1QzM0Mi44LTE5LjMgMTkzLjMtMjQuNyA5Mi43IDU4LjhMNDEgN0MzNC4xIC4yIDIzLjgtMS45IDE0LjggMS44UzAgMTQuMyAwIDI0TDAgMTY4YzAgMTMuMyAxMC43IDI0IDI0IDI0eiJdfSxGSGU9WTUsT0hlPVk1LFJIZT1ZNSx5Qj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJoZWFkaW5nIixpY29uOls0NDgsNTEyLFsiaGVhZGVyIl0sImYxZGMiLCJNMCA2NEMwIDQ2LjMgMTQuMyAzMiAzMiAzMmw5NiAwYzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMybC0xNiAwIDAgMTEyIDIyNCAwIDAtMTEyLTE2IDBjLTE3LjcgMC0zMi0xNC4zLTMyLTMyczE0LjMtMzIgMzItMzJsOTYgMGMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMmwtMTYgMCAwIDMyMCAxNiAwYzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMybC05NiAwYy0xNy43IDAtMzItMTQuMy0zMi0zMnMxNC4zLTMyIDMyLTMybDE2IDAgMC0xNDQtMjI0IDAgMCAxNDQgMTYgMGMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMmwtOTYgMGMtMTcuNyAwLTMyLTE0LjMtMzItMzJzMTQuMy0zMiAzMi0zMmwxNiAwIDAtMzIwLTE2IDBDMTQuMyA5NiAwIDgxLjcgMCA2NHoiXX0sQkhlPXlCLEhIZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJjcm9zc2hhaXJzIixpY29uOls1NzYsNTEyLFtdLCJmMDViIiwiTTI4OC0xNmMxNy43IDAgMzIgMTQuMyAzMiAzMmwwIDE4LjNjOTguMSAxNCAxNzUuNyA5MS42IDE4OS43IDE4OS43bDE4LjMgMGMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMmwtMTguMyAwYy0xNCA5OC4xLTkxLjYgMTc1LjctMTg5LjcgMTg5LjdsMCAxOC4zYzAgMTcuNy0xNC4zIDMyLTMyIDMycy0zMi0xNC4zLTMyLTMybDAtMTguM0MxNTcuOSA0NjMuNyA4MC4zIDM4Ni4xIDY2LjMgMjg4TDQ4IDI4OGMtMTcuNyAwLTMyLTE0LjMtMzItMzJzMTQuMy0zMiAzMi0zMmwxOC4zIDBDODAuMyAxMjUuOSAxNTcuOSA0OC4zIDI1NiAzNC4zTDI1NiAxNmMwLTE3LjcgMTQuMy0zMiAzMi0zMnpNMTMxLjIgMjg4YzEyLjcgNjIuNyA2Mi4xIDExMi4xIDEyNC44IDEyNC44bDAtMTIuOGMwLTE3LjcgMTQuMy0zMiAzMi0zMnMzMiAxNC4zIDMyIDMybDAgMTIuOGM2Mi43LTEyLjcgMTEyLjEtNjIuMSAxMjQuOC0xMjQuOEw0MzIgMjg4Yy0xNy43IDAtMzItMTQuMy0zMi0zMnMxNC4zLTMyIDMyLTMybDEyLjggMEM0MzIuMSAxNjEuMyAzODIuNyAxMTEuOSAzMjAgOTkuMmwwIDEyLjhjMCAxNy43LTE0LjMgMzItMzIgMzJzLTMyLTE0LjMtMzItMzJsMC0xMi44QzE5My4zIDExMS45IDE0My45IDE2MS4zIDEzMS4yIDIyNGwxMi44IDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJsLTEyLjggMHpNMjg4IDIwOGE0OCA0OCAwIDEgMSAwIDk2IDQ4IDQ4IDAgMSAxIDAtOTZ6Il19LHFIZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJjaXJjbGUtbm9kZXMiLGljb246WzUxMiw1MTIsW10sImU0ZTIiLCJNNDE4LjQgMTU3LjljMzUuMy04LjMgNjEuNi00MCA2MS42LTc3LjkgMC00NC4yLTM1LjgtODAtODAtODAtNDMuNCAwLTc4LjcgMzQuNS04MCA3Ny41TDEzNi4yIDE1MS4xQzEyMS43IDEzNi44IDEwMS45IDEyOCA4MCAxMjggMzUuOCAxMjggMCAxNjMuOCAwIDIwOHMzNS44IDgwIDgwIDgwYzEyLjIgMCAyMy44LTIuNyAzNC4xLTcuNkwyNTkuNyA0MDcuOGMtMi40IDcuNi0zLjcgMTUuOC0zLjcgMjQuMiAwIDQ0LjIgMzUuOCA4MCA4MCA4MHM4MC0zNS44IDgwLTgwYzAtMjcuNy0xNC01Mi4xLTM1LjQtNjYuNGwzNy44LTIwNy43ek0xNTYuMyAyMzIuMmMyLjItNi45IDMuNS0xNC4yIDMuNy0yMS43bDE4My44LTczLjVjMy42IDMuNSA3LjQgNi43IDExLjYgOS41TDMxNy42IDM1NC4xYy01LjUgMS4zLTEwLjggMy4xLTE1LjggNS41TDE1Ni4zIDIzMi4yeiJdfSxWSGU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToid2luZG93LXJlc3RvcmUiLGljb246WzU3Niw1MTIsW10sImYyZDIiLCJNNTEyIDk2TDE2MCA5NmMwLTM1LjMgMjguNy02NCA2NC02NGwyODggMGMzNS4zIDAgNjQgMjguNyA2NCA2NGwwIDE5MmMwIDM1LjMtMjguNyA2NC02NCA2NGwtNDggMCAwLTY0IDQ4IDAgMC0xOTJ6TTAgMjI0YzAtMzUuMyAyOC43LTY0IDY0LTY0bDI4OCAwYzM1LjMgMCA2NCAyOC43IDY0IDY0bDAgMTkyYzAgMzUuMy0yOC43IDY0LTY0IDY0TDY0IDQ4MGMtMzUuMyAwLTY0LTI4LjctNjQtNjRMMCAyMjR6bTY0IDQwYzAgMTMuMyAxMC43IDI0IDI0IDI0bDI0MCAwYzEzLjMgMCAyNC0xMC43IDI0LTI0cy0xMC43LTI0LTI0LTI0TDg4IDI0MGMtMTMuMyAwLTI0IDEwLjctMjQgMjR6Il19LGpIZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJyIixpY29uOlszMjAsNTEyLFsxMTRdLCI1MiIsIk0zMiAzMkMxNC4zIDMyIDAgNDYuMyAwIDY0TDAgNDQ4YzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJsMC0xMjggOTUuMyAwIDEwMi40IDE0Ni40YzEwLjEgMTQuNSAzMC4xIDE4IDQ0LjYgNy45czE4LTMwLjEgNy45LTQ0LjZMMjMwLjEgMzA5LjVDMjgyLjggMjg4LjEgMzIwIDIzNi40IDMyMCAxNzYgMzIwIDk2LjUgMjU1LjUgMzIgMTc2IDMyTDMyIDMyek0xNzYgMjU2bC0xMTIgMCAwLTE2MCAxMTIgMGM0NC4yIDAgODAgMzUuOCA4MCA4MHMtMzUuOCA4MC04MCA4MHoiXX0sVUhlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImZpbHRlci1jaXJjbGUteG1hcmsiLGljb246WzU3Niw1MTIsW10sImUxN2IiLCJNMzIgNjRDMTkuMSA2NCA3LjQgNzEuOCAyLjQgODMuOFMuMiAxMDkuNSA5LjQgMTE4LjZMMTkyIDMwMS4zIDE5MiA0MTZjMCA4LjUgMy40IDE2LjYgOS40IDIyLjZsNjQgNjRjMi41IDIuNSA1LjMgNC41IDguMyA2LTIxLjItMzAuOS0zMy42LTY4LjMtMzMuNi0xMDguNiAwLTk5LjQgNzUuNS0xODEuMSAxNzIuMy0xOTFsOTAuNC05MC40YzkuMi05LjIgMTEuOS0yMi45IDYuOS0zNC45UzQ5Mi45IDY0IDQ4MCA2NEwzMiA2NHpNNDMyIDU0NGExNDQgMTQ0IDAgMSAwIDAtMjg4IDE0NCAxNDQgMCAxIDAgMCAyODh6bTU5LjMtMTgwLjdsLTM2LjcgMzYuNyAzNi43IDM2LjdjNi4yIDYuMiA2LjIgMTYuNCAwIDIyLjZzLTE2LjQgNi4yLTIyLjYgMGwtMzYuNy0zNi43LTM2LjcgMzYuN2MtNi4yIDYuMi0xNi40IDYuMi0yMi42IDBzLTYuMi0xNi40IDAtMjIuNmwzNi43LTM2LjctMzYuNy0zNi43Yy02LjItNi4yLTYuMi0xNi40IDAtMjIuNnMxNi40LTYuMiAyMi42IDBsMzYuNyAzNi43IDM2LjctMzYuN2M2LjItNi4yIDE2LjQtNi4yIDIyLjYgMHM2LjIgMTYuNCAwIDIyLjZ6Il19LFdIZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJnb3B1cmFtIixpY29uOls1MTIsNTEyLFtdLCJmNjY0IiwiTTEyMCAwYzEzLjMgMCAyNCAxMC43IDI0IDI0bDAgOCA0MCAwIDAtOGMwLTEzLjMgMTAuNy0yNCAyNC0yNHMyNCAxMC43IDI0IDI0bDAgOCA0OCAwIDAtOGMwLTEzLjMgMTAuNy0yNCAyNC0yNHMyNCAxMC43IDI0IDI0bDAgOCA0MCAwIDAtOGMwLTEzLjMgMTAuNy0yNCAyNC0yNHMyNCAxMC43IDI0IDI0bDAgMTM2YzI2LjUgMCA0OCAyMS41IDQ4IDQ4bDAgODBjMjYuNSAwIDQ4IDIxLjUgNDggNDhsMCAxMjhjMCAyNi41LTIxLjUgNDgtNDggNDhsLTQ4IDAgMC0yMjQtMzIgMCAwLTEyOC00OCAwIDAgMTI4IDMyIDAgMCAyMjQtMjI0IDAgMC0yMjQgMzIgMCAwLTEyOC00OCAwIDAgMTI4LTMyIDAgMCAyMjQtNDggMGMtMjYuNSAwLTQ4LTIxLjUtNDgtNDhMMCAzMzZjMC0yNi41IDIxLjUtNDggNDgtNDhsMC04MGMwLTI2LjUgMjEuNS00OCA0OC00OEw5NiAyNGMwLTEzLjMgMTAuNy0yNCAyNC0yNHpNMjU2IDIwOGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJsMCA0OCA2NCAwIDAtNDhjMC0xNy43LTE0LjMtMzItMzItMzJ6TTIwOCA0MDBsMCA2NCA5NiAwIDAtNjRjMC0yNi41LTIxLjUtNDgtNDgtNDhzLTQ4IDIxLjUtNDggNDh6TTI1NiA5NmMtMTcuNyAwLTMyIDE0LjMtMzIgMzJsMCAzMiA2NCAwIDAtMzJjMC0xNy43LTE0LjMtMzItMzItMzJ6Il19LEdIZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJoZWFydC1jaXJjbGUtbWludXMiLGljb246WzU3Niw1MTIsW10sImU0ZmYiLCJNMjQxIDg3LjFsMTUgMjAuNyAxNS0yMC43QzI5NiA1Mi41IDMzNi4yIDMyIDM3OC45IDMyIDQ1Mi40IDMyIDUxMiA5MS42IDUxMiAxNjUuMWwwIDIuNmMwIDE3LjYtMy40IDM1LjYtOS41IDUzLjctMjEuOC04LjYtNDUuNi0xMy40LTcwLjUtMTMuNC0xMDYgMC0xOTIgODYtMTkyIDE5MiAwIDI4LjUgNi4yIDU1LjYgMTcuNCA4MC0uNSAwLS45IDAtMS40IDAtMTUuNSAwLTMwLjgtNC42LTQzLjEtMTQuMS03My01NS43LTIxMi45LTE4Ni0yMTIuOS0yOTguMmwwLTIuNkMwIDkxLjYgNTkuNiAzMiAxMzMuMSAzMiAxNzUuOCAzMiAyMTYgNTIuNSAyNDEgODcuMXpNMjg4IDQwMGExNDQgMTQ0IDAgMSAxIDI4OCAwIDE0NCAxNDQgMCAxIDEgLTI4OCAwem0yMjQgMGMwLTguOC03LjItMTYtMTYtMTZsLTEyOCAwYy04LjggMC0xNiA3LjItMTYgMTZzNy4yIDE2IDE2IDE2bDEyOCAwYzguOCAwIDE2LTcuMiAxNi0xNnoiXX0sWUhlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InN0YXItb2YtbGlmZSIsaWNvbjpbNTEyLDUxMixbXSwiZjYyMSIsIk0yMDguNSAzMmMwLTE3LjcgMTQuMy0zMiAzMi0zMmwzMiAwYzE3LjcgMCAzMiAxNC4zIDMyIDMybDAgMTQwLjkgMTIyLTcwLjRjMTUuMy04LjggMzQuOS0zLjYgNDMuNyAxMS43bDE2IDI3LjdjOC44IDE1LjMgMy42IDM0LjktMTEuNyA0My43bC0xMjIgNzAuNCAxMjIgNzAuNGMxNS4zIDguOCAyMC42IDI4LjQgMTEuNyA0My43bC0xNiAyNy43Yy04LjggMTUuMy0yOC40IDIwLjYtNDMuNyAxMS43bC0xMjItNzAuNCAwIDE0MC45YzAgMTcuNy0xNC4zIDMyLTMyIDMybC0zMiAwYy0xNy43IDAtMzItMTQuMy0zMi0zMmwwLTE0MC45LTEyMiA3MC40Yy0xNS4zIDguOC0zNC45IDMuNi00My43LTExLjdsLTE2LTI3LjdjLTguOC0xNS4zLTMuNi0zNC45IDExLjctNDMuN2wxMjItNzAuNC0xMjItNzAuNGMtMTUuMy04LjgtMjAuNS0yOC40LTExLjctNDMuN2wxNi0yNy43YzguOC0xNS4zIDI4LjQtMjAuNSA0My43LTExLjdsMTIyIDcwLjQgMC0xNDAuOXoiXX0seEI9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiYnVzaW5lc3MtdGltZSIsaWNvbjpbNjQwLDUxMixbImJyaWVmY2FzZS1jbG9jayJdLCJmNjRhIiwiTTI2NCA0OGwxMTIgMGM0LjQgMCA4IDMuNiA4IDhsMCA0MC0xMjggMCAwLTQwYzAtNC40IDMuNi04IDgtOHptLTU2IDhsMCA0MC04MCAwYy0zNS4zIDAtNjQgMjguNy02NCA2NGwwIDk2IDMwNSAwYzMzLjgtMjkuOSA3OC4zLTQ4IDEyNy00OCAyOC42IDAgNTUuNiA2LjIgODAgMTcuNGwwLTY1LjRjMC0zNS4zLTI4LjctNjQtNjQtNjRsLTgwIDAgMC00MGMwLTMwLjktMjUuMS01Ni01Ni01NkwyNjQgMGMtMzAuOSAwLTU2IDI1LjEtNTYgNTZ6bTgwIDI5NmMtMTcuNyAwLTMyLTE0LjMtMzItMzJsMC0xNi0xOTIgMCAwIDExMmMwIDM1LjMgMjguNyA2NCA2NCA2NGwxOTMuNCAwYy0xMS4yLTI0LjQtMTcuNC01MS40LTE3LjQtODAgMC0xNi42IDIuMS0zMi43IDYtNDhsLTIyIDB6bTM1MiA0OGExNDQgMTQ0IDAgMSAwIC0yODggMCAxNDQgMTQ0IDAgMSAwIDI4OCAwek00OTYgMzIwYzguOCAwIDE2IDcuMiAxNiAxNmwwIDQ4IDMyIDBjOC44IDAgMTYgNy4yIDE2IDE2cy03LjIgMTYtMTYgMTZsLTQ4IDBjLTguOCAwLTE2LTcuMi0xNi0xNmwwLTY0YzAtOC44IDcuMi0xNiAxNi0xNnoiXX0sWkhlPXhCLFhIZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJmaXJlLWV4dGluZ3Vpc2hlciIsaWNvbjpbNTEyLDUxMixbMTI5NTE5XSwiZjEzNCIsIk01MTIgMzJjMC05LjYtNC4zLTE4LjctMTEuNy0yNC43UzQ4My4xLTEuMyA0NzMuNyAuNmwtMTYwIDMyQzMwMS41IDM1LjEgMjkyIDQ0LjMgMjg5IDU2bC02NSAwIDAtMjRjMC0xNy43LTE0LjMtMzItMzItMzJMMTYwIDBjLTE3LjcgMC0zMiAxNC4zLTMyIDMybDAgMjguNGMtNTUuMyAxMi4zLTEwMS4zIDQ5LjUtMTI1LjUgOTkuMS01LjggMTEuOS0uOSAyNi4zIDExLjEgMzIuMXMyNi4zIC45IDMyLjEtMTEuMUM2MiAxNDYuOSA5MS44IDEyMS4xIDEyOCAxMTBsMCAyOC44Yy0zNy44IDE4LTY0IDU2LjUtNjQgMTAxLjJsMCAxMjggMjI0IDAgMC0xMjhjMC00NC43LTI2LjItODMuMi02NC0xMDEuMmwwLTM0LjggNjUgMGMzIDExLjcgMTIuNSAyMC45IDI0LjcgMjMuNGwxNjAgMzJjOS40IDEuOSAxOS4xLS42IDI2LjYtNi42UzUxMiAxMzcuNiA1MTIgMTI4bDAtOTZ6TTI4OCA0NDhsMC0zMi0yMjQgMCAwIDMyYzAgMzUuMyAyOC43IDY0IDY0IDY0bDk2IDBjMzUuMyAwIDY0LTI4LjcgNjQtNjR6Il19LHdCPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImFycm93LWRvd24tbG9uZyIsaWNvbjpbMzIwLDUxMixbImxvbmctYXJyb3ctZG93biJdLCJmMTc1IiwiTTEzNy40IDUzNC42YzEyLjUgMTIuNSAzMi44IDEyLjUgNDUuMyAwbDEyOC0xMjhjMTIuNS0xMi41IDEyLjUtMzIuOCAwLTQ1LjNzLTMyLjgtMTIuNS00NS4zIDBMMTkyIDQzNC43IDE5MiAwYzAtMTcuNy0xNC4zLTMyLTMyLTMyUzEyOC0xNy43IDEyOCAwbDAgNDM0LjctNzMuNC03My40Yy0xMi41LTEyLjUtMzIuOC0xMi41LTQ1LjMgMHMtMTIuNSAzMi44IDAgNDUuM2wxMjggMTI4eiJdfSxLSGU9d0IsUUhlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InVzZXItbWludXMiLGljb246WzY0MCw1MTIsW10sImY1MDMiLCJNMjg1LjcgMzA0Yzk4LjUgMCAxNzguMyA3OS44IDE3OC4zIDE3OC4zIDAgMTYuNC0xMy4zIDI5LjctMjkuNyAyOS43TDc3LjcgNTEyQzYxLjMgNTEyIDQ4IDQ5OC43IDQ4IDQ4Mi4zIDQ4IDM4My44IDEyNy44IDMwNCAyMjYuMyAzMDRsNTkuNCAwek0yNTYgMjQ4YTEyMCAxMjAgMCAxIDEgMC0yNDAgMTIwIDEyMCAwIDEgMSAwIDI0MHptMzQ0LTk2YzEzLjMgMCAyNCAxMC43IDI0IDI0cy0xMC43IDI0LTI0IDI0bC0xNDQgMGMtMTMuMyAwLTI0LTEwLjctMjQtMjRzMTAuNy0yNCAyNC0yNGwxNDQgMHoiXX0sSkhlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6Im1vbmV5LWNoZWNrIixpY29uOls1MTIsNTEyLFtdLCJmNTNjIiwiTTAgMTI4QzAgOTIuNyAyOC43IDY0IDY0IDY0bDM4NCAwYzM1LjMgMCA2NCAyOC43IDY0IDY0bDAgMjU2YzAgMzUuMy0yOC43IDY0LTY0IDY0TDY0IDQ0OGMtMzUuMyAwLTY0LTI4LjctNjQtNjRMMCAxMjh6TTk2IDMxMmMwIDEzLjMgMTAuNyAyNCAyNCAyNGwxNDQgMGMxMy4zIDAgMjQtMTAuNyAyNC0yNHMtMTAuNy0yNC0yNC0yNGwtMTQ0IDBjLTEzLjMgMC0yNCAxMC43LTI0IDI0em0yNC0xMzZjLTEzLjMgMC0yNCAxMC43LTI0IDI0czEwLjcgMjQgMjQgMjRsMjcyIDBjMTMuMyAwIDI0LTEwLjcgMjQtMjRzLTEwLjctMjQtMjQtMjRsLTI3MiAweiJdfSxNQj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJob3VzZS1sYXB0b3AiLGljb246WzY0MCw1MTIsWyJsYXB0b3AtaG91c2UiXSwiZTA2NiIsIk00NDggMjQwbDE5LjkgMGMxNS41IDAgMjguMS0xMi42IDI4LjEtMjguMSAwLTcuNi0zLjEtMTQuOS04LjYtMjAuMkwyODMuNS00LjlDMjc2LjEtMTIgMjY2LjMtMTYgMjU2LTE2cy0yMC4xIDQtMjcuNSAxMS4xTDI0LjYgMTkxLjdDMTkuMSAxOTcgMTYgMjA0LjMgMTYgMjExLjkgMTYgMjI3LjQgMjguNiAyNDAgNDQuMSAyNDBsMTkuOSAwIDAgMTQ0YzAgMzUuMyAyOC43IDY0IDY0IDY0bDg1LjcgMGM3LjQtNi42IDE2LjQtMTEuNCAyNi4zLTE0bDAtMTMwYzAtNS41IC43LTEwLjkgMi0xNmwtMTAgMGMtMTMuMyAwLTI0LTEwLjctMjQtMjRsMC00OGMwLTEzLjMgMTAuNy0yNCAyNC0yNGw0OCAwYzEzLjMgMCAyNCAxMC43IDI0IDI0bDAgMjQgMTQ0IDB6TTM1MiAzNTJsMTYwIDAgMCAxMjgtMTYwIDAgMC0xMjh6bS02NC0zMmwwIDE2MC0zMiAwYy04LjggMC0xNiA3LjItMTYgMTYgMCAyNi41IDIxLjUgNDggNDggNDhsMjg4IDBjMjYuNSAwIDQ4LTIxLjUgNDgtNDggMC04LjgtNy4yLTE2LTE2LTE2bC0zMiAwIDAtMTYwYzAtMTcuNy0xNC4zLTMyLTMyLTMybC0yMjQgMGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJ6Il19LGVxZT1NQix0cWU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZG93bmxvYWQiLGljb246WzQ0OCw1MTIsW10sImYwMTkiLCJNMjU2IDMyYzAtMTcuNy0xNC4zLTMyLTMyLTMycy0zMiAxNC4zLTMyIDMybDAgMjEwLjctNDEuNC00MS40Yy0xMi41LTEyLjUtMzIuOC0xMi41LTQ1LjMgMHMtMTIuNSAzMi44IDAgNDUuM2w5NiA5NmMxMi41IDEyLjUgMzIuOCAxMi41IDQ1LjMgMGw5Ni05NmMxMi41LTEyLjUgMTIuNS0zMi44IDAtNDUuM3MtMzIuOC0xMi41LTQ1LjMgMEwyNTYgMjQyLjcgMjU2IDMyek02NCAzMjBjLTM1LjMgMC02NCAyOC43LTY0IDY0bDAgMzJjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMzIwIDBjMzUuMyAwIDY0LTI4LjcgNjQtNjRsMC0zMmMwLTM1LjMtMjguNy02NC02NC02NGwtNDYuOSAwLTU2LjYgNTYuNmMtMzEuMiAzMS4yLTgxLjkgMzEuMi0xMTMuMSAwTDExMC45IDMyMCA2NCAzMjB6bTMwNCA1NmEyNCAyNCAwIDEgMSAwIDQ4IDI0IDI0IDAgMSAxIDAtNDh6Il19LGFxZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJzYWdpdHRhcml1cyIsaWNvbjpbNDQ4LDUxMixbXSwiZTg0ZCIsIk00MTYgMzJjMTcuNyAwIDMyIDE0LjMgMzIgMzJsMCAxNjBjMCAxNy43LTE0LjMgMzItMzIgMzJzLTMyLTE0LjMtMzItMzJsMC04Mi44LTE0Ni44IDE0Ni44IDQxLjQgNDEuNGMxMi41IDEyLjUgMTIuNSAzMi44IDAgNDUuMnMtMzIuOCAxMi41LTQ1LjMgMEwxOTIgMzMzLjMgNTQuNiA0NzAuNmMtMTIuNSAxMi41LTMyLjggMTIuNS00NS4yIDBzLTEyLjUtMzIuOCAwLTQ1LjJMMTQ2LjggMjg4IDEwNS40IDI0Ni42Yy0xMi41LTEyLjUtMTIuNS0zMi44IDAtNDUuMnMzMi44LTEyLjUgNDUuMiAwTDE5MiAyNDIuOCAzMzguOCA5NiAyNTYgOTZjLTE3LjcgMC0zMi0xNC4zLTMyLTMyczE0LjMtMzIgMzItMzJsMTYwIDB6Il19LGlxZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJjb3VjaCIsaWNvbjpbNjQwLDUxMixbXSwiZjRiOCIsIk0xNDQgMjcyQzE0NCAyMjQuNyAxMDkuOCAxODUuNCA2NC44IDE3Ny41IDcyIDExMy42IDEyNi4yIDY0IDE5MiA2NGwyNTYgMGM2NS44IDAgMTIwIDQ5LjYgMTI3LjIgMTEzLjUtNDUgOC03OS4yIDQ3LjItNzkuMiA5NC41bDAgMzItMzUyIDAgMC0zMnpNMCAzODRMMCAyNzJjMC0yNi41IDIxLjUtNDggNDgtNDhzNDggMjEuNSA0OCA0OGwwIDgwIDQ0OCAwIDAtODBjMC0yNi41IDIxLjUtNDggNDgtNDhzNDggMjEuNSA0OCA0OGwwIDExMmMwIDM1LjMtMjguNyA2NC02NCA2NEw2NCA0NDhjLTM1LjMgMC02NC0yOC43LTY0LTY0eiJdfSxycWU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToicm9hZC1sb2NrIixpY29uOls1NzYsNTEyLFtdLCJlNTY3IiwiTTI1NiAzMmwtNzYuMyAwYy0yOS40IDAtNTUuMSAyMC4xLTYyLjEgNDguNkwzMy40IDQyMC41QzI1LjkgNDUwLjcgNDguOCA0ODAgODAgNDgwbDE3NS45IDAgMC02NGMwLTE3LjcgMTQuMy0zMiAzMi0zMiA2LjEgMCAxMS44IDEuNyAxNi43IDQuNyAyLjgtMjMuOSAxNC4zLTQ1LjEgMzEuNC02MC4zbDAtMjQuNGMwLTcwLjcgNTcuMy0xMjggMTI4LTEyOCA2LjIgMCAxMi40IC40IDE4LjQgMS4zTDQ1OC41IDgwLjZDNDUxLjQgNTIuMSA0MjUuOCAzMiAzOTYuMyAzMmwtNzYuNCAwIDAgNjRjMCAxNy43LTE0LjMgMzItMzIgMzJzLTMyLTE0LjMtMzItMzJsMC02NHptNjQgMTkybDAgNjRjMCAxNy43LTE0LjMgMzItMzIgMzJzLTMyLTE0LjMtMzItMzJsMC02NGMwLTE3LjcgMTQuMy0zMiAzMi0zMnMzMiAxNC4zIDMyIDMyem0xNzYgODAuMWwwIDQ3LjktNjQgMCAwLTQ3LjljMC0xNy43IDE0LjMtMzIgMzItMzJzMzIgMTQuMyAzMiAzMnpNMzUyIDQwMGwwIDk2YzAgMjYuNSAyMS41IDQ4IDQ4IDQ4bDEyOCAwYzI2LjUgMCA0OC0yMS41IDQ4LTQ4bDAtOTZjMC0yMC45LTEzLjQtMzguNy0zMi00NS4zbDAtNTAuNmMwLTQ0LjItMzUuOC04MC04MC04MHMtODAgMzUuOC04MCA4MGwwIDUwLjZjLTE4LjYgNi42LTMyIDI0LjQtMzIgNDUuM3oiXX0sekI9e3ByZWZpeDoiZmFzIixpY29uTmFtZToic2Npc3NvcnMiLGljb246WzUxMiw1MTIsWzk5ODQsOTk4Niw5OTg4LCJjdXQiXSwiZjBjNCIsIk0xOTIgMjU2bC0zOS41IDM5LjVjLTEyLjYtNC45LTI2LjItNy41LTQwLjUtNy41LTYxLjkgMC0xMTIgNTAuMS0xMTIgMTEyczUwLjEgMTEyIDExMiAxMTIgMTEyLTUwLjEgMTEyLTExMmMwLTE0LjMtMi43LTI3LjktNy41LTQwLjVMNDk5LjIgNzYuOGM3LjEtNy4xIDcuMS0xOC41IDAtMjUuNi0yOC4zLTI4LjMtNzQuMS0yOC4zLTEwMi40IDBMMjU2IDE5MiAyMTYuNSAxNTIuNWM0LjktMTIuNiA3LjUtMjYuMiA3LjUtNDAuNSAwLTYxLjktNTAuMS0xMTItMTEyLTExMlMwIDUwLjEgMCAxMTIgNTAuMSAyMjQgMTEyIDIyNGMxNC4zIDAgMjcuOS0yLjcgNDAuNS03LjVMMTkyIDI1NnptOTcuOSA5Ny45TDM5Ni44IDQ2MC44YzI4LjMgMjguMyA3NC4xIDI4LjMgMTAyLjQgMCA3LjEtNy4xIDcuMS0xOC41IDAtMjUuNmwtMTQ1LjMtMTQ1LjMtNjQgNjR6TTY0IDExMmE0OCA0OCAwIDEgMSA5NiAwIDQ4IDQ4IDAgMSAxIC05NiAwem00OCAyNDBhNDggNDggMCAxIDEgMCA5NiA0OCA0OCAwIDEgMSAwLTk2eiJdfSxzcWU9ekIsaGc9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiYnVnIixpY29uOls1NzYsNTEyLFtdLCJmMTg4IiwiTTE5MiA5NmMwLTUzIDQzLTk2IDk2LTk2czk2IDQzIDk2IDk2bDAgMy42YzAgMTUuNy0xMi43IDI4LjQtMjguNCAyOC40bC0xMzUuMSAwYy0xNS43IDAtMjguNC0xMi43LTI4LjQtMjguNGwwLTMuNnptMzQ1LjYgMTIuOGMxMC42IDE0LjEgNy43IDM0LjItNi40IDQ0LjhsLTk3LjggNzMuM2M1LjMgOC45IDkuMyAxOC43IDExLjggMjkuMWw5OC44IDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJsLTk2IDAgMCAzMmMwIDIuNi0uMSA1LjMtLjIgNy45bDgzLjQgNjIuNWMxNC4xIDEwLjYgMTcgMzAuNyA2LjQgNDQuOHMtMzAuNyAxNy00NC44IDYuNGwtNjMuMS00Ny4zYy0yMy4yIDQ0LjItNjYuNSA3Ni4yLTExNy43IDgzLjlMMzEyIDI4MGMwLTEzLjMtMTAuNy0yNC0yNC0yNHMtMjQgMTAuNy0yNCAyNGwwIDIzMC4yYy01MS4yLTcuNy05NC41LTM5LjctMTE3LjctODMuOUw4My4yIDQ3My42Yy0xNC4xIDEwLjYtMzQuMiA3LjctNDQuOC02LjRzLTcuNy0zNC4yIDYuNC00NC44bDgzLjQtNjIuNWMtLjEtMi42LS4yLTUuMi0uMi03LjlsMC0zMi05NiAwYy0xNy43IDAtMzItMTQuMy0zMi0zMnMxNC4zLTMyIDMyLTMybDk4LjggMGMyLjUtMTAuNCA2LjUtMjAuMiAxMS44LTI5LjFMNDQuOCAxNTMuNmMtMTQuMS0xMC42LTE3LTMwLjctNi40LTQ0LjhzMzAuNy0xNyA0NC44LTYuNEwxOTIgMTg0YzEyLjMtNS4xIDI1LjgtOCA0MC04bDExMiAwYzE0LjIgMCAyNy43IDIuOCA0MCA4bDEwOC44LTgxLjZjMTQuMS0xMC42IDM0LjItNy43IDQ0LjggNi40eiJdfSxrQj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJhcnJvdy1yaWdodC1mcm9tLWJyYWNrZXQiLGljb246WzUxMiw1MTIsWyJzaWduLW91dCJdLCJmMDhiIiwiTTE2MCA5NmMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMkw5NiAzMkM0MyAzMiAwIDc1IDAgMTI4TDAgMzg0YzAgNTMgNDMgOTYgOTYgOTZsNjQgMGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMmwtNjQgMGMtMTcuNyAwLTMyLTE0LjMtMzItMzJsMC0yNTZjMC0xNy43IDE0LjMtMzIgMzItMzJsNjQgMHpNNTAyLjYgMjc4LjZjMTIuNS0xMi41IDEyLjUtMzIuOCAwLTQ1LjNsLTEyOC0xMjhjLTEyLjUtMTIuNS0zMi44LTEyLjUtNDUuMyAwcy0xMi41IDMyLjggMCA0NS4zTDQwMi43IDIyNCAxOTIgMjI0Yy0xNy43IDAtMzIgMTQuMy0zMiAzMnMxNC4zIDMyIDMyIDMybDIxMC43IDAtNzMuNCA3My40Yy0xMi41IDEyLjUtMTIuNSAzMi44IDAgNDUuM3MzMi44IDEyLjUgNDUuMyAwbDEyOC0xMjh6Il19LG5xZT1rQixvcWU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiaGFuZC1ob2xkaW5nLWhhbmQiLGljb246WzU3Niw1MTIsW10sImU0ZjciLCJNNDY2LjggMTg2LjVsNDIuNS00Mi41IDM0LjcgMGMxNy43IDAgMzItMTQuMyAzMi0zMmwwLTY0YzAtMTcuNy0xNC4zLTMyLTMyLTMyTDIyMy42IDE2Yy0yOSAwLTU3LjMgOS4zLTgwLjcgMjYuNUwxNi4zIDEzNS44Yy0xNy44IDEzLjEtMjEuNiAzOC4xLTguNSA1NS45czM4LjEgMjEuNiA1NS45IDguNUwxODMuNCAxMTIgMjk2IDExMmMxMy4zIDAgMjQgMTAuNyAyNCAyNHMtMTAuNyAyNC0yNCAyNGwtNzIgMGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJzMTQuMyAzMiAzMiAzMmwxNTIuMiAwYzMzLjkgMCA2Ni41LTEzLjUgOTAuNS0zNy41em0tMzU3LjUgMTM5TDY2LjcgMzY4IDMyIDM2OGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJsMCA2NGMwIDE3LjcgMTQuMyAzMiAzMiAzMmwzMjAuNSAwYzI5IDAgNTcuMy05LjMgODAuNy0yNi41bDEyNi42LTkzLjNjMTcuOC0xMy4xIDIxLjYtMzguMSA4LjUtNTUuOXMtMzguMS0yMS42LTU1LjktOC41TDM5Mi42IDQwMCAyODAgNDAwYy0xMy4zIDAtMjQtMTAuNy0yNC0yNHMxMC43LTI0IDI0LTI0bDcyIDBjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJsLTE1Mi4yIDBjLTMzLjkgMC02Ni41IDEzLjUtOTAuNSAzNy41eiJdfSxscWU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToic3Ryb29wd2FmZWwiLGljb246WzUxMiw1MTIsW10sImY1NTEiLCJNMCAyNTZhMjU2IDI1NiAwIDEgMSA1MTIgMCAyNTYgMjU2IDAgMSAxIC01MTIgMHpNMzEyLjYgNjMuN2MtNi4yLTYuMi0xNi40LTYuMi0yMi42IDBMMjU2IDk3LjYgMjIyLjEgNjMuN2MtNi4yLTYuMi0xNi40LTYuMi0yMi42IDBzLTYuMiAxNi40IDAgMjIuNmwzMy45IDMzLjktNDUuMyA0NS4zLTU2LjYtNTYuNmMtNi4yLTYuMi0xNi40LTYuMi0yMi42IDBzLTYuMiAxNi40IDAgMjIuNmw1Ni42IDU2LjYtNDUuMyA0NS4zLTMzLjktMzMuOWMtNi4yLTYuMi0xNi40LTYuMi0yMi42IDBzLTYuMiAxNi40IDAgMjIuNkw5Ny42IDI1NiA2My43IDI4OS45Yy02LjIgNi4yLTYuMiAxNi40IDAgMjIuNnMxNi40IDYuMiAyMi42IDBsMzMuOS0zMy45IDQ1LjMgNDUuMy01Ni42IDU2LjZjLTYuMiA2LjItNi4yIDE2LjQgMCAyMi42czE2LjQgNi4yIDIyLjYgMGw1Ni42LTU2LjYgNDUuMyA0NS4zLTMzLjkgMzMuOWMtNi4yIDYuMi02LjIgMTYuNCAwIDIyLjZzMTYuNCA2LjIgMjIuNiAwbDMzLjktMzMuOSAzMy45IDMzLjljNi4yIDYuMiAxNi40IDYuMiAyMi42IDBzNi4yLTE2LjQgMC0yMi42bC0zMy45LTMzLjkgNDUuMy00NS4zIDU2LjYgNTYuNmM2LjIgNi4yIDE2LjQgNi4yIDIyLjYgMHM2LjItMTYuNCAwLTIyLjZsLTU2LjYtNTYuNiA0NS4zLTQ1LjMgMzMuOSAzMy45YzYuMiA2LjIgMTYuNCA2LjIgMjIuNiAwczYuMi0xNi40IDAtMjIuNmwtMzMuOS0zMy45IDMzLjktMzMuOWM2LjItNi4yIDYuMi0xNi40IDAtMjIuNnMtMTYuNC02LjItMjIuNiAwbC0zMy45IDMzLjktNDUuMy00NS4zIDU2LjYtNTYuNmM2LjItNi4yIDYuMi0xNi40IDAtMjIuNnMtMTYuNC02LjItMjIuNiAwbC01Ni42IDU2LjYtNDUuMy00NS4zIDMzLjktMzMuOWM2LjItNi4yIDYuMi0xNi40IDAtMjIuNnpNMTQyLjkgMjU2bDQ1LjMtNDUuMyA0NS4zIDQ1LjMtNDUuMyA0NS4zLTQ1LjMtNDUuM3ptNjcuOSA2Ny45bDQ1LjMtNDUuMyA0NS4zIDQ1LjMtNDUuMyA0NS4zLTQ1LjMtNDUuM3pNMjc4LjYgMjU2bDQ1LjMtNDUuMyA0NS4zIDQ1LjMtNDUuMyA0NS4zLTQ1LjMtNDUuM3ptMjIuNi02Ny45bC00NS4zIDQ1LjMtNDUuMy00NS4zIDQ1LjMtNDUuMyA0NS4zIDQ1LjN6Il19LGNxZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJjaGlsZCIsaWNvbjpbMzIwLDUxMixbXSwiZjFhZSIsIk05NiA2NEE2NCA2NCAwIDEgMSAyMjQgNjQgNjQgNjQgMCAxIDEgOTYgNjR6bTQ4IDMyMGwwIDk2YzAgMTcuNy0xNC4zIDMyLTMyIDMycy0zMi0xNC4zLTMyLTMyTDgwIDI4Ny44IDU5LjEgMzIxYy05LjQgMTUtMjkuMiAxOS40LTQ0LjEgMTBTLTQuNSAzMDEuOSA0LjkgMjg3bDM5LjktNjMuM0M2OS43IDE4NCAxMTMuMiAxNjAgMTYwIDE2MHM5MC4zIDI0IDExNS4yIDYzLjZMMzE1LjEgMjg3YzkuNCAxNSA0LjkgMzQuNy0xMCA0NC4xcy0zNC43IDQuOS00NC4xLTEwTDI0MCAyODcuOCAyNDAgNDgwYzAgMTcuNy0xNC4zIDMyLTMyIDMycy0zMi0xNC4zLTMyLTMybDAtOTYtMzIgMHoiXX0sZHFlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImljZS1jcmVhbSIsaWNvbjpbMzg0LDUxMixbMTI3ODQ4XSwiZjgxMCIsIk0zMzUuMSAxNjBjLjYtNS4zIC45LTEwLjYgLjktMTYgMC03OS41LTY0LjUtMTQ0LTE0NC0xNDRTNDggNjQuNSA0OCAxNDRjMCA1LjQgLjMgMTAuNyAuOSAxNmwtLjkgMGMtMjYuNSAwLTQ4IDIxLjUtNDggNDhzMjEuNSA0OCA0OCA0OGwyODggMGMyNi41IDAgNDgtMjEuNSA0OC00OHMtMjEuNS00OC00OC00OGwtLjkgMHpNNjQgMzA0TDE2OS4yIDUyOS41YzQuMSA4LjggMTMgMTQuNSAyMi44IDE0LjVzMTguNi01LjcgMjIuOC0xNC41TDMyMCAzMDQgNjQgMzA0eiJdfSxTQj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJjb21wdXRlci1tb3VzZSIsaWNvbjpbMzg0LDUxMixbMTI4NDMzLCJtb3VzZSJdLCJmOGNjIiwiTTAgMTkybDE2OCAwIDAtMTkyLTggMEM3MS42IDAgMCA3MS42IDAgMTYwbDAgMzJ6bTAgNDhMMCAzNTJjMCA4OC40IDcxLjYgMTYwIDE2MCAxNjBsNjQgMGM4OC40IDAgMTYwLTcxLjYgMTYwLTE2MGwwLTExMi0zODQgMHptMzg0LTQ4bDAtMzJDMzg0IDcxLjYgMzEyLjQgMCAyMjQgMGwtOCAwIDAgMTkyIDE2OCAweiJdfSxocWU9U0IscHFlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImZhdWNldCIsaWNvbjpbNTEyLDUxMixbXSwiZTAwNSIsIk0xOTIgNjRjMC0xNy43IDE0LjMtMzIgMzItMzJzMzIgMTQuMyAzMiAzMmw5NiAwYzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMybC05NiAwIDAgNjQgMTguNyAwYzguNSAwIDE2LjYgMy40IDIyLjYgOS40bDIyLjYgMjIuNiAzMiAwYzg4LjQgMCAxNjAgNzEuNiAxNjAgMTYwIDAgMTcuNy0xNC4zIDMyLTMyIDMybC02NCAwYy0xNy43IDAtMzItMTQuMy0zMi0zMnMtMTQuMy0zMi0zMi0zMmwtMzYuMSAwYy0yMC4yIDI5LTUzLjkgNDgtOTEuOSA0OHMtNzEuNy0xOS05MS45LTQ4TDMyIDM1MmMtMTcuNyAwLTMyLTE0LjMtMzItMzJsMC02NGMwLTE3LjcgMTQuMy0zMiAzMi0zMmw5NiAwIDIyLjYtMjIuNmM2LTYgMTQuMS05LjQgMjIuNi05LjRsMTguNyAwIDAtNjQtOTYgMGMtMTcuNyAwLTMyLTE0LjMtMzItMzJTNzguMyA2NCA5NiA2NGw5NiAweiJdfSx1cWU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiYXdhcmQiLGljb246WzQ0OCw1MTIsW10sImY1NTkiLCJNMjQ1LjktMjUuOWMtMTMuNC04LjItMzAuMy04LjItNDMuNyAwLTI0LjQgMTQuOS0zOS41IDE4LjktNjguMSAxOC4zLTE1LjctLjQtMzAuMyA4LjEtMzcuOSAyMS45LTEzLjcgMjUuMS0yNC44IDM2LjItNDkuOSA0OS45LTEzLjggNy41LTIyLjIgMjIuMi0yMS45IDM3LjkgLjcgMjguNi0zLjQgNDMuNy0xOC4zIDY4LjEtOC4yIDEzLjQtOC4yIDMwLjMgMCA0My43IDE0LjkgMjQuNCAxOC45IDM5LjUgMTguMyA2OC4xLS40IDE1LjcgOC4xIDMwLjMgMjEuOSAzNy45IDIyLjEgMTIuMSAzMy4zIDIyLjEgNDUuMSA0MS41TDQyLjcgNDU4LjVjLTUuOSAxMS45LTEuMSAyNi4zIDEwLjcgMzIuMmw4NiA0M2MxMS41IDUuNyAyNS41IDEuNCAzMS43LTkuOGw1Mi44LTk1LjEgNTIuOCA5NS4xYzYuMiAxMS4yIDIwLjIgMTUuNiAzMS43IDkuOGw4Ni00M2MxMS45LTUuOSAxNi43LTIwLjMgMTAuNy0zMi4ybC00OC42LTk3LjJjMTEuNy0xOS40IDIzLTI5LjQgNDUuMS00MS41IDEzLjgtNy41IDIyLjItMjIuMiAyMS45LTM3LjktLjctMjguNiAzLjQtNDMuNyAxOC4zLTY4LjEgOC4yLTEzLjQgOC4yLTMwLjMgMC00My43LTE0LjktMjQuNC0xOC45LTM5LjUtMTguMy02OC4xIC40LTE1LjctOC4xLTMwLjMtMjEuOS0zNy45LTI1LjEtMTMuNy0zNi4yLTI0LjgtNDkuOS00OS45LTcuNS0xMy44LTIyLjItMjIuMi0zNy45LTIxLjktMjguNiAuNy00My43LTMuNC02OC4xLTE4LjN6TTIyNCA5NmE5NiA5NiAwIDEgMSAwIDE5MiA5NiA5NiAwIDEgMSAwLTE5MnoiXX0sZnFlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InBlcnNvbi1kcm93bmluZyIsaWNvbjpbNjQwLDUxMixbXSwiZTU0NSIsIk0yNjQgODhhNTYgNTYgMCAxIDEgMTEyIDAgNTYgNTYgMCAxIDEgLTExMiAwek0xMzMuOSA2NS42YzE2LjgtNS42IDM0LjkgMy41IDQwLjUgMjAuMmwxMC45IDMyLjhjOS40IDI4LjMgMzMuMiA0OS41IDYyLjUgNTUuNiA1LjYgMS4yIDExLjMgMS44IDE3LjEgMS44bDg4IDBjMTcuMiAwIDM0LjMtMi44IDUwLjYtOC4ybDExNC40LTM4LjFjMTYuOC01LjYgMzQuOSAzLjUgNDAuNSAyMC4ycy0zLjUgMzQuOS0yMC4yIDQwLjVMNDIzLjcgMjI4LjVjLTguNCAyLjgtMTcgNS4xLTI1LjcgNi45bC0yNi41IDg4LjNjLTYuMSAzLjQtMTIuMSA3LjMtMTcuOSAxMS43LTIyLjEgMTYuNi0yOS4xIDE2LjYtNTEuMiAwLTI2LjItMTkuNy01Ni45LTMwLjItODcuOC0zMS4zbDIwLjItNjcuMmMtNTEuNS0xMC43LTkzLjUtNDguMS0xMTAuMi05OGwtMTAuOS0zMi44Yy01LjYtMTYuOCAzLjUtMzQuOSAyMC4yLTQwLjV6TTQwMy40IDQxMi4xQzM3OS4xIDQzMC4zIDM1MS4xIDQ0OCAzMjAgNDQ4cy01OS4xLTE3LjctODMuNC0zNS45Yy0yMS4zLTE2LjEtNDkuOS0xNi4xLTcxLjIgMC0yMy44IDE3LjktNTQuMSAzNS41LTg4LjEgMzUuMy0yMC40LS4xLTQwLjctNi43LTU5LjgtMjEuMS0xMC42LTgtMTIuNy0yMy00LjctMzMuNnMyMy0xMi43IDMzLjYtNC43YzExLjMgOC41IDIxLjYgMTEuNCAzMS4yIDExLjUgMTcuNiAuMSAzNy4zLTkuNCA1OC45LTI1LjcgMzguNC0yOSA5MC41LTI5IDEyOSAwIDI0IDE4LjEgNDAuNyAyNi4zIDU0LjUgMjYuM3MzMC41LTguMiA1NC41LTI2LjNjMzguNC0yOSA5MC41LTI5IDEyOSAwIDE2LjkgMTIuNyAzMi45IDIxLjUgNDcuOCAyNC42IDEzLjcgMi44IDI3LjQgLjkgNDIuMy0xMC4zIDEwLjYtOCAyNS42LTUuOSAzMy42IDQuN3M1LjkgMjUuNi00LjcgMzMuNmMtMjYuNCAxOS45LTU0LjIgMjQuNC04MC43IDE5LjEtMjUuMy01LjEtNDguMS0xOC45LTY3LjItMzMuMy0yMS4zLTE2LjEtNDkuOS0xNi4xLTcxLjIgMHoiXX0sbXFlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImNhbWVyYS1yb3RhdGUiLGljb246WzUxMiw1MTIsW10sImUwZDgiLCJNMTM4LjcgOTZsMTAuNC0zMS4yQzE1NS42IDQ1LjIgMTczLjkgMzIgMTk0LjYgMzJsMTIyLjggMGMyMC43IDAgMzkgMTMuMiA0NS41IDMyLjhMMzczLjMgOTYgNDQ4IDk2YzM1LjMgMCA2NCAyOC43IDY0IDY0bDAgMjU2YzAgMzUuMy0yOC43IDY0LTY0IDY0TDY0IDQ4MGMtMzUuMyAwLTY0LTI4LjctNjQtNjRMMCAxNjBjMC0zNS4zIDI4LjctNjQgNjQtNjRsNzQuNyAwek05NiAzMDUuOWMwIDMuOSAxLjQgNy43IDQgMTAuNmw0OCA1NGM2LjQgNy4yIDE3LjYgNy4yIDIzLjkgMGw0OC01NGMyLjYtMi45IDQtNi43IDQtMTAuNmwwLTEuOWMwLTguOC03LjItMTYtMTYtMTZsLTI0IDBjMC0zOS44IDMyLjItNzIgNzItNzIgNC40IDAgOC43IC40IDEyLjkgMS4ybDM0LjktMzkuM2MtMTQuNi02LjQtMzAuOC05LjktNDcuOC05LjktNjYuMyAwLTEyMCA1My43LTEyMCAxMjBsLTI0IDBjLTguOCAwLTE2IDcuMi0xNiAxNmwwIDEuOXptMTk2LTQ2LjVjLTIuNiAyLjktNCA2LjctNCAxMC42bDAgMS45YzAgOC44IDcuMiAxNiAxNiAxNmwyNCAwYzAgMzkuOC0zMi4yIDcyLTcyIDcyLTQuNCAwLTguNy0uNC0xMi45LTEuMmwtMzQuOSAzOS4zYzE0LjcgNi40IDMwLjggOS45IDQ3LjggOS45IDY2LjMgMCAxMjAtNTMuNyAxMjAtMTIwbDI0IDBjOC44IDAgMTYtNy4yIDE2LTE2bDAtMS45YzAtMy45LTEuNC03LjctNC0xMC42bC00OC01NGMtNi40LTcuMi0xNy42LTcuMi0yMy45IDBsLTQ4IDU0eiJdfSxDQj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJmYWNlLWdyaW4taGVhcnRzIixpY29uOls1MTIsNTEyLFsxMjg1MjUsImdyaW4taGVhcnRzIl0sImY1ODQiLCJNMjU2IDUxMmMxNDEuNCAwIDI1Ni0xMTQuNiAyNTYtMjU2IDAtMjMuMy0zLjEtNDUuOS04LjktNjcuMyA1LjUtMTMuNSA4LjktMjguNCA4LjktNDQuNyAwLTUzLTQzLTk2LTk2LTk2bC0yLjkgMGMtMi41IDAtNSAuMS03LjQgLjMtNDIuMS0zMC40LTkzLjgtNDguMy0xNDkuNy00OC4zUzE0OC40IDE3LjkgMTA2LjMgNDguM2MtMi41LS4yLTQuOS0uMy03LjQtLjNMOTYgNDhjLTUzIDAtOTYgNDMtOTYgOTYgMCAxNi4zIDMuNSAzMS4yIDguOSA0NC43LTUuOCAyMS40LTguOSA0NC04LjkgNjcuMyAwIDE0MS40IDExNC42IDI1NiAyNTYgMjU2ek0zODYuNyAzMjQuOWMxMS45LTMuNyAyMy45IDYuMyAxOS42IDE4LjEtMjIuNCA2MS4zLTgxLjMgMTA1LjEtMTUwLjMgMTA1LjFTMTI4LjEgNDA0LjIgMTA1LjcgMzQyLjljLTQuMy0xMS44IDcuNy0yMS44IDE5LjYtMTguMSAzOS4yIDEyLjIgODMuNyAxOS4xIDEzMC43IDE5LjFzOTEuNS02LjkgMTMwLjctMTkuMXpNMzIyLjkgOTZjMTMuNSAwIDI2LjUgNS40IDM2IDE0LjlsOS4xIDkuMSA5LjEtOS4xYzkuNS05LjUgMjIuNS0xNC45IDM2LTE0LjlsMi45IDBjMjYuNSAwIDQ4IDIxLjUgNDggNDggMCA1My40LTY2LjkgOTUuNy04OSAxMDguMi00LjQgMi41LTkuNiAyLjUtMTQgMC0yMi4xLTEyLjUtODktNTQuOC04OS0xMDguMiAwLTI2LjUgMjEuNS00OCA0OC00OGwyLjkgMHptLTE4OCAxNC45bDkuMSA5LjEgOS4xLTkuMWM5LjUtOS41IDIyLjUtMTQuOSAzNi0xNC45bDIuOSAwYzI2LjUgMCA0OCAyMS41IDQ4IDQ4IDAgNTMuNC02Ni45IDk1LjctODkgMTA4LjItNC40IDIuNS05LjYgMi41LTE0IDAtMjIuMS0xMi41LTg5LTU0LjgtODktMTA4LjIgMC0yNi41IDIxLjUtNDggNDgtNDhsMi45IDBjMTMuNSAwIDI2LjUgNS40IDM2IDE0Ljl6Il19LGdxZT1DQixicWU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZmlsZS1mcmFnbWVudCIsaWNvbjpbMzg0LDUxMixbXSwiZTY5NyIsIk02NCAwQzI4LjcgMCAwIDI4LjcgMCA2NGwwIDI0MCAxMjggMGM0NC4yIDAgODAgMzUuOCA4MCA4MGwwIDEyOCAxMTIgMGMzNS4zIDAgNjQtMjguNyA2NC02NGwwLTI3Ny41YzAtMTctNi43LTMzLjMtMTguNy00NS4zTDI1OC43IDE4LjdDMjQ2LjcgNi43IDIzMC41IDAgMjEzLjUgMEw2NCAwek0zMjUuNSAxNzZMMjMyIDE3NmMtMTMuMyAwLTI0LTEwLjctMjQtMjRMMjA4IDU4LjUgMzI1LjUgMTc2ek0zMiAzNTJjLTE3LjcgMC0zMiAxNC4zLTMyIDMybDAgOTZjMCAxNy43IDE0LjMgMzIgMzIgMzJsOTYgMGMxNy43IDAgMzItMTQuMyAzMi0zMmwwLTk2YzAtMTcuNy0xNC4zLTMyLTMyLTMybC05NiAweiJdfSx2cWU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToicGVyc29uLW1pbGl0YXJ5LXJpZmxlIixpY29uOls0NDgsNTEyLFtdLCJlNTRiIiwiTTEyOCAzOWMwLTEzIDEwLTIzLjggMjIuOS0yNC45TDMwMi43IDEuNEMzMTIgLjcgMzIwIDggMzIwIDE3LjRMMzIwIDQ4YzAgOC44LTcuMiAxNi0xNiAxNkwxNTMgNjRjLTEzLjggMC0yNS0xMS4yLTI1LTI1em0xNy42IDU3bDE1Ni44IDBjMSA1LjIgMS42IDEwLjUgMS42IDE2IDAgNDQuMi0zNS44IDgwLTgwIDgwcy04MC0zNS44LTgwLTgwYzAtNS41IC42LTEwLjggMS42LTE2em0yMjggMzY0LjNMMzIwIDM2OS43IDMyMCA0ODBjMCAxLjMtLjEgMi41LS4yIDMuOEwxNDUuNSAyMzQuOWMxNi42LTcuMSAzNC42LTEwLjkgNTMuMy0xMC45bDUwLjQgMGMxNS45IDAgMzEuMyAyLjggNDUuOCA3LjlMMzg5LjkgNjcuN2MtNy43LTQuNC0xMC4zLTE0LjItNS45LTIxLjlzMTQuMi0xMC4zIDIxLjktNS45bDI3LjcgMTZjNy43IDQuNCAxMC4zIDE0LjIgNS45IDIxLjlsLTU1LjUgOTYuMSAxLjYgLjljMTUuMyA4LjggMjAuNiAyOC40IDExLjcgNDMuN0wzNjAuNyAyODJjMiAyLjggMy45IDUuOCA1LjcgOC44bDc2LjEgMTI4LjhjMTEuMiAxOSA0LjkgNDMuNS0xNC4xIDU0LjhzLTQzLjUgNC45LTU0LjgtMTQuMXpNMjg4IDUxMmwtMTI4IDBjLTE3LjcgMC0zMi0xNC4zLTMyLTMybDAtMTEwLjMtNTMuNiA5MC42Yy0xMS4yIDE5LTM1LjggMjUuMy01NC44IDE0LjFTLTUuNyA0MzguNyA1LjYgNDE5LjdMODEuNyAyOTAuOGM5LjQtMTUuOCAyMS43LTI5LjMgMzYtNDBMMjk5LjEgNTEwYy0zLjUgMS4zLTcuMiAyLTExLjEgMnpNMjY0IDMyMGEyNCAyNCAwIDEgMCAwLTQ4IDI0IDI0IDAgMSAwIDAgNDh6Il19LHlxZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJ0b2dnbGUtb24iLGljb246WzU3Niw1MTIsW10sImYyMDUiLCJNMTkyIDY0Qzg2IDY0IDAgMTUwIDAgMjU2Uzg2IDQ0OCAxOTIgNDQ4bDE5MiAwYzEwNiAwIDE5Mi04NiAxOTItMTkyUzQ5MCA2NCAzODQgNjRMMTkyIDY0em0xOTIgOTZhOTYgOTYgMCAxIDEgMCAxOTIgOTYgOTYgMCAxIDEgMC0xOTJ6Il19LHhxZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJsdW5ncy12aXJ1cyIsaWNvbjpbNTc2LDUxMixbXSwiZTA2NyIsIk0yODggMGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJsMCAxNTEuM2M5LjYtNC44IDIwLjUtNy41IDMyLTcuNXMyMi40IDIuNyAzMiA3LjVMMzIwIDMyYzAtMTcuNy0xNC4zLTMyLTMyLTMyek00NTAuMSA0NTFjOCAxOC4zIDguMSAzOS4yIC4yIDU3LjUgMTAuMiAyLjMgMjAuNiAzLjUgMzEuMiAzLjUgNTIuMiAwIDk0LjUtNDIuMyA5NC41LTk0LjVsMC02LjJjMC0xMTEuMS0zNi43LTIxOS0xMDQuNC0zMDdMNDI4LjkgNDguN2MtOC4xLTEwLjYtMjAuNy0xNi43LTM0LTE2LjctMjMuNyAwLTQyLjkgMTkuMi00Mi45IDQyLjlsMCAxMzkuOWMxLjIgMi4yIDIuMiA0LjYgMy4xIDYuOSAyNi40LTExLjYgNTguMy02LjYgNzkuOSAxNXMyNi42IDUzLjYgMTUgNzkuOUM0NzcgMzI3LjIgNDk2IDM1My4zIDQ5NiAzODMuOHMtMTkgNTYuNy00NS45IDY3LjF6TTIyMC45IDIyMS44Yy45LTIuNCAyLTQuNyAzLjEtNi45bDAtMTM4LjVjMC0yNC41LTE5LjktNDQuNC00NC40LTQ0LjQtMTIuNSAwLTI0LjQgNS4zLTMyLjggMTQuNWwtMjYuNCAyOUM0Mi45IDE2MC44IDAgMjcxLjggMCAzODdsMCAzMC41YzAgNTIuMiA0Mi4zIDk0LjUgOTQuNSA5NC41IDEwLjUgMCAyMS0xLjIgMzEuMi0zLjUtNy45LTE4LjMtNy44LTM5LjMgLjItNTcuNS0yNi45LTEwLjQtNDUuOS0zNi42LTQ1LjktNjcuMXMxOS01Ni43IDQ1LjktNjcuMWMtMTEuNi0yNi40LTYuNi01OC4zIDE1LTc5LjlzNTMuNi0yNi42IDc5LjktMTV6TTE1MiA0MDhjMjguOCAwIDQzLjIgMzQuOCAyMi45IDU1LjItOS40IDkuNC05LjQgMjQuNiAwIDMzLjlzMjQuNiA5LjQgMzMuOSAwYzIwLjQtMjAuNCA1NS4yLTUuOSA1NS4yIDIyLjkgMCAxMy4zIDEwLjcgMjQgMjQgMjRzMjQtMTAuNyAyNC0yNGMwLTI4LjggMzQuOC00My4yIDU1LjItMjIuOSA5LjQgOS40IDI0LjYgOS40IDMzLjkgMHM5LjQtMjQuNiAwLTMzLjljLTIwLjQtMjAuNC01LjktNTUuMiAyMi45LTU1LjIgMTMuMyAwIDI0LTEwLjcgMjQtMjRzLTEwLjctMjQtMjQtMjRjLTI4LjggMC00My4yLTM0LjgtMjIuOS01NS4yIDkuNC05LjQgOS40LTI0LjYgMC0zMy45cy0yNC42LTkuNC0zMy45IDBjLTIwLjQgMjAuNC01NS4yIDUuOS01NS4yLTIyLjkgMC0xMy4zLTEwLjctMjQtMjQtMjRzLTI0IDEwLjctMjQgMjRjMCAyOC44LTM0LjggNDMuMi01NS4yIDIyLjktOS40LTkuNC0yNC42LTkuNC0zMy45IDBzLTkuNCAyNC42IDAgMzMuOWMyMC40IDIwLjQgNS45IDU1LjItMjIuOSA1NS4yLTEzLjMgMC0yNCAxMC43LTI0IDI0czEwLjcgMjQgMjQgMjR6bTEwNC04MGEyNCAyNCAwIDEgMSAwIDQ4IDI0IDI0IDAgMSAxIDAtNDh6bTQwIDg4YTI0IDI0IDAgMSAxIDQ4IDAgMjQgMjQgMCAxIDEgLTQ4IDB6Il19LEltPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InRhYmxlLXRlbm5pcy1wYWRkbGUtYmFsbCIsaWNvbjpbNTEyLDUxMixbMTI3OTU1LCJwaW5nLXBvbmctcGFkZGxlLWJhbGwiLCJ0YWJsZS10ZW5uaXMiXSwiZjQ1ZCIsIk05NyAxMjdsNjcuNC02Ny40YzM4LjItMzguMiA5MC01OS42IDE0NC01OS42IDExMi41IDAgMjAzLjcgOTEuMiAyMDMuNyAyMDMuNiAwIDQ2LjQtMTUuOCA5MS4xLTQ0LjUgMTI3LTIzLjYtMTYuOC01Mi40LTI2LjctODMuNS0yNi43LTMxLjEgMC01OS45IDkuOS04My40IDI2LjZMOTcgMTI3ek0yNDAgNDQ4YzAgOS43IDEgMTkuMSAyLjggMjguMi0xOS44LTUuMi0zOC0xNS41LTUyLjctMzAuMi0xMi4yLTEyLjItMzEuOS0xMi4yLTQ0LjEgMEw5Ni42IDQ5NS40Yy0xMC42IDEwLjYtMjUgMTYuNi00MCAxNi42LTMxLjIgMC01Ni42LTI1LjMtNTYuNi01Ni42IDAtMTUgNi0yOS40IDE2LjYtNDBsNDkuNC00OS40YzEyLjItMTIuMiAxMi4yLTMxLjkgMC00NC4xLTIxLjctMjEuNy0zMy45LTUxLjItMzMuOS04MS45IDAtMjkuNCAxMS4xLTU3LjYgMzEuMS03OUwyNjYuNiAzNjQuNkMyNDkuOSAzODguMSAyNDAgNDE2LjkgMjQwIDQ0OHptMTQ0LTk2YTk2IDk2IDAgMSAxIDAgMTkyIDk2IDk2IDAgMSAxIDAtMTkyeiJdfSx3cWU9SW0sTXFlPUltLHpxZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJib3hlcy1wYWNraW5nIixpY29uOls1NzYsNTEyLFtdLCJlNGM3IiwiTTIwOCAwbDgwIDAgMCA1NmMwIDEzLjMgMTAuNyAyNCAyNCAyNGw4MCAwYzEzLjMgMCAyNC0xMC43IDI0LTI0bDAtNTYgODAgMGMyNi41IDAgNDggMjEuNSA0OCA0OGwwIDQxNmMwIDI2LjUtMjEuNSA0OC00OCA0OGwtMTA4LjggMGM4LjItMTQuMSAxMi44LTMwLjUgMTIuOC00OGwwLTE2MGMxMC0xMy40IDE2LTMwIDE2LTQ4bDAtMzJjMC00NC4yLTM1LjgtODAtODAtODBsLTE3NiAwIDAtOTZjMC0yNi41IDIxLjUtNDggNDgtNDh6TTMyIDMzNmwzMjAgMCAwIDEyOGMwIDI2LjUtMjEuNSA0OC00OCA0OEw4MCA1MTJjLTI2LjUgMC00OC0yMS41LTQ4LTQ4bDAtMTI4ek00OCAxOTJsMjg4IDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJsMCAzMmMwIDE3LjctMTQuMyAzMi0zMiAzMkw0OCAyODhjLTE3LjcgMC0zMi0xNC4zLTMyLTMybDAtMzJjMC0xNy43IDE0LjMtMzIgMzItMzJ6Il19LGtxZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJwZXJzb24tY2hhbGtib2FyZCIsaWNvbjpbNjQwLDUxMixbXSwiZTUzZCIsIk0xOTIgODBhNTYgNTYgMCAxIDAgMC0xMTIgNTYgNTYgMCAxIDAgMCAxMTJ6TTE3NiA1MTJsMC0xNjBjMC04LjggNy4yLTE2IDE2LTE2czE2IDcuMiAxNiAxNmwwIDE2MGMwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMybDAtMzM2IDEyOCAwYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMybC0xNiAwIDAtNDggMTkyIDAgMCAxOTItMTkyIDAgMC0zMi02NCAwIDAgNDhjMCAyNi41IDIxLjUgNDggNDggNDhsMjI0IDBjMjYuNSAwIDQ4LTIxLjUgNDgtNDhsMC0yMjRjMC0yNi41LTIxLjUtNDgtNDgtNDhMMzY4IDBjLTI2LjUgMC00OCAyMS41LTQ4IDQ4bDAgNjQtMTIyLjcgMGMtNDUuNiAwLTg4LjUgMjEuNi0xMTUuNiA1OC4yTDE0LjMgMjYwLjljLTEwLjUgMTQuMi03LjYgMzQuMiA2LjYgNDQuOHMzNC4yIDcuNiA0NC44LTYuNkwxMTIgMjM2LjcgMTEyIDUxMmMwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMyeiJdfSxTcWU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZGljZS10d28iLGljb246WzQ0OCw1MTIsWzk4NTddLCJmNTI4IiwiTTAgOTZDMCA2MC43IDI4LjcgMzIgNjQgMzJsMzIwIDBjMzUuMyAwIDY0IDI4LjcgNjQgNjRsMCAzMjBjMCAzNS4zLTI4LjcgNjQtNjQgNjRMNjQgNDgwYy0zNS4zIDAtNjQtMjguNy02NC02NEwwIDk2ek0zNTIgMzUyYTMyIDMyIDAgMSAwIC02NCAwIDMyIDMyIDAgMSAwIDY0IDB6TTEyOCAxOTJhMzIgMzIgMCAxIDAgMC02NCAzMiAzMiAwIDEgMCAwIDY0eiJdfSxfQj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJhcnJvdy1yaWdodC1hcnJvdy1sZWZ0IixpY29uOls1MTIsNTEyLFs4NjQ0LCJleGNoYW5nZSJdLCJmMGVjIiwiTTUwMi42IDE1MC42bC05NiA5NmMtMTIuNSAxMi41LTMyLjggMTIuNS00NS4zIDBzLTEyLjUtMzIuOCAwLTQ1LjNMNDAyLjcgMTYwIDMyIDE2MGMtMTcuNyAwLTMyLTE0LjMtMzItMzJTMTQuMyA5NiAzMiA5NmwzNzAuNyAwLTQxLjQtNDEuNGMtMTIuNS0xMi41LTEyLjUtMzIuOCAwLTQ1LjNzMzIuOC0xMi41IDQ1LjMgMGw5NiA5NmMxMi41IDEyLjUgMTIuNSAzMi44IDAgNDUuM3ptLTM5Ny4zIDM1MmwtOTYtOTZjLTEyLjUtMTIuNS0xMi41LTMyLjggMC00NS4zbDk2LTk2YzEyLjUtMTIuNSAzMi44LTEyLjUgNDUuMyAwczEyLjUgMzIuOCAwIDQ1LjNMMTA5LjMgMzUyIDQ4MCAzNTJjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJsLTM3MC43IDAgNDEuNCA0MS40YzEyLjUgMTIuNSAxMi41IDMyLjggMCA0NS4zcy0zMi44IDEyLjUtNDUuMyAweiJdfSxDcWU9X0IsVEI9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZm9vdGJhbGwiLGljb246WzUxMiw1MTIsWzEyNzk0NCwiZm9vdGJhbGwtYmFsbCJdLCJmNDRlIiwiTTI2MS4xIDIyLjZjLTg5IDE4LTE1MC41IDYzLjQtMTkwIDEyMy45LTIzLjMgMzUuNi0zOC4xIDc1LjMtNDYuNyAxMTUuNUwyNTEuOSA0ODkuNGM4OS0xOCAxNTAuNS02My40IDE5MC4xLTEyMy45IDIzLjMtMzUuNiAzOC4xLTc1LjMgNDYuNy0xMTUuNUwyNjEuMSAyMi42em0yMzYgMTY4LjFjMy4yLTQyLjMgLjctODMuMy00LjgtMTE4LjctNC40LTI3LjgtMjYuOC00OC01My4xLTUxLjYtNDMtNS45LTgyLjItNy41LTExNy44LTUuNEw0OTcuMSAxOTAuNnpNMTkxLjcgNDk3LjFMMTUuOSAzMjEuNGMtMy4yIDQyLjMtLjcgODMuMyA0LjggMTE4LjcgNC40IDI3LjggMjYuOCA0OCA1My4xIDUxLjYgNDMgNS45IDgyLjIgNy41IDExNy44IDUuNHpNMjcxLjUgMTQzYzkuNC05LjQgMjQuNi05LjQgMzMuOSAwbDY0IDY0YzkuNCA5LjQgOS40IDI0LjYgMCAzMy45cy0yNC42IDkuNC0zMy45IDBsLTY0LTY0Yy05LjQtOS40LTkuNC0yNC42IDAtMzMuOXptLTY0IDY0YzkuNC05LjQgMjQuNi05LjQgMzMuOSAwbDY0IDY0YzkuNCA5LjQgOS40IDI0LjYgMCAzMy45cy0yNC42IDkuNC0zMy45IDBsLTY0LTY0Yy05LjQtOS40LTkuNC0yNC42IDAtMzMuOXptLTY0IDY0YzkuNC05LjQgMjQuNi05LjQgMzMuOSAwbDY0IDY0YzkuNCA5LjQgOS40IDI0LjYgMCAzMy45cy0yNC42IDkuNC0zMy45IDBsLTY0LTY0Yy05LjQtOS40LTkuNC0yNC42IDAtMzMuOXoiXX0sX3FlPVRCLFRxZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJ0cnVjay1tb25zdGVyIixpY29uOls1NzYsNTEyLFtdLCJmNjNiIiwiTTMzNiA5Nmw0OCA2NC0xMjggMCAwLTY0IDgwIDB6bTEyOCA2NEwzODcuMiA1Ny42QzM3NS4xIDQxLjUgMzU2LjEgMzIgMzM2IDMyTDIyNCAzMmMtMTcuNyAwLTMyIDE0LjMtMzIgMzJsMCA5Ni0xNDQgMGMtMjYuNSAwLTQ4IDIxLjUtNDggNDhsMCA2NGMwIDE4LjEgMTAuMSAzMy45IDI0LjkgNDIuMS0uNSA1LjcgMS4xIDExLjYgNC43IDE2LjQtMy43IDYuOS02LjggMTQuMS05IDIxLjgtMTEuNiAxLjctMjAuNiAxMS43LTIwLjYgMjMuOGwwIDE2YzAgMTIuMSA4LjkgMjIuMSAyMC42IDIzLjggMi4yIDcuNiA1LjMgMTQuOSA5IDIxLjgtNyA5LjQtNi4zIDIyLjggMi4zIDMxLjNsMTEuMyAxMS4zYzguNiA4LjYgMjEuOSA5LjMgMzEuMyAyLjIgNi44IDMuNyAxNC4xIDYuOCAyMS43IDkgMS43IDExLjYgMTEuNyAyMC42IDIzLjggMjAuNmwxNiAwYzEyLjEgMCAyMi4xLTguOSAyMy44LTIwLjYgNy42LTIuMiAxNC45LTUuMyAyMS43LTkgOS40IDcgMjIuOCA2LjMgMzEuMy0yLjJsMTEuMy0xMS4zYzguNi04LjYgOS4zLTIxLjkgMi4zLTMxLjMgMy43LTYuOCA2LjgtMTQuMSA5LTIxLjcgMTEuNi0xLjcgMjAuNi0xMS43IDIwLjYtMjMuOGwwLTE2YzAtMTIuMS04LjktMjIuMS0yMC42LTIzLjgtMi4yLTcuNi01LjMtMTQuOS05LTIxLjcgMi40LTMuMiAzLjktNi44IDQuNS0xMC41bDExNC4yIDBjLjYgMy43IDIuMSA3LjMgNC41IDEwLjUtMy43IDYuOS02LjggMTQuMS05IDIxLjgtMTEuNiAxLjctMjAuNiAxMS43LTIwLjYgMjMuOGwwIDE2YzAgMTIuMSA4LjkgMjIuMSAyMC42IDIzLjggMi4yIDcuNiA1LjMgMTQuOSA5IDIxLjgtNyA5LjQtNi4zIDIyLjggMi4yIDMxLjNsMTEuMyAxMS4zYzguNSA4LjYgMjEuOSA5LjMgMzEuMyAyLjIgNi44IDMuNyAxNC4xIDYuOCAyMS43IDkgMS43IDExLjYgMTEuNyAyMC42IDIzLjggMjAuNmwxNiAwYzEyLjEgMCAyMi4xLTguOSAyMy44LTIwLjYgNy42LTIuMiAxNC45LTUuMyAyMS44LTkgOS40IDcgMjIuOCA2LjMgMzEuMy0yLjJsMTEuMy0xMS4zYzguNi04LjYgOS4zLTIxLjkgMi4yLTMxLjMgMy43LTYuOCA2LjgtMTQuMSA5LTIxLjcgMTEuNi0xLjcgMjAuNi0xMS43IDIwLjYtMjMuOGwwLTE2YzAtMTIuMS04LjktMjIuMS0yMC42LTIzLjgtMi4yLTcuNi01LjMtMTQuOS05LTIxLjcgMy42LTQuOCA1LjItMTAuNyA0LjctMTYuNCAxNC44LTguMiAyNC45LTIzLjkgMjQuOS00Mi4xbDAtNjRjMC0yNi41LTIxLjUtNDgtNDgtNDhsLTY0IDB6TTEyOCAzMzZhNDggNDggMCAxIDEgMCA5NiA0OCA0OCAwIDEgMSAwLTk2em0yNzIgNDhhNDggNDggMCAxIDEgOTYgMCA0OCA0OCAwIDEgMSAtOTYgMHoiXX0sTHFlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImFzdGVyaXNrIixpY29uOls0NDgsNTEyLFsxMDAzMyw2MTU0NV0sIjJhIiwiTTIyNCAwYzE3LjcgMCAzMiAxNC4zIDMyIDMybDAgMTY4LjYgMTQ0LTgzLjFjMTUuMy04LjggMzQuOS0zLjYgNDMuNyAxMS43czMuNiAzNC45LTExLjcgNDMuN0wyODggMjU2IDQzMiAzMzkuMWMxNS4zIDguOCAyMC42IDI4LjQgMTEuNyA0My43cy0yOC40IDIwLjYtNDMuNyAxMS43TDI1NiAzMTEuNCAyNTYgNDgwYzAgMTcuNy0xNC4zIDMyLTMyIDMycy0zMi0xNC4zLTMyLTMybDAtMTY4LjYtMTQ0IDgzLjFjLTE1LjMgOC44LTM0LjkgMy42LTQzLjctMTEuN1MuNyAzNDggMTYgMzM5LjFMMTYwIDI1NiAxNiAxNzIuOUMuNyAxNjQtNC41IDE0NC41IDQuMyAxMjkuMVMzMi43IDEwOC42IDQ4IDExNy40TDE5MiAyMDAuNiAxOTIgMzJjMC0xNy43IDE0LjMtMzIgMzItMzJ6Il19LE5tPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImJhdHRlcnktZnVsbCIsaWNvbjpbNjQwLDUxMixbMTI4MjY3LCJiYXR0ZXJ5IiwiYmF0dGVyeS01Il0sImYyNDAiLCJNNTI4IDEyOGM4LjggMCAxNiA3LjIgMTYgMTZsMCAyMjRjMCA4LjgtNy4yIDE2LTE2IDE2bC00MTYgMGMtOC44IDAtMTYtNy4yLTE2LTE2bDAtMjI0YzAtOC44IDcuMi0xNiAxNi0xNmw0MTYgMHpNMTEyIDY0Yy00NC4yIDAtODAgMzUuOC04MCA4MGwwIDIyNGMwIDQ0LjIgMzUuOCA4MCA4MCA4MGw0MTYgMGM0NC4yIDAgODAtMzUuOCA4MC04MGwwLTQ4YzE3LjcgMCAzMi0xNC4zIDMyLTMybDAtNjRjMC0xNy43LTE0LjMtMzItMzItMzJsMC00OGMwLTQ0LjItMzUuOC04MC04MC04MEwxMTIgNjR6bTU2IDExMmMtMTMuMyAwLTI0IDEwLjctMjQgMjRsMCAxMTJjMCAxMy4zIDEwLjcgMjQgMjQgMjRsMzA0IDBjMTMuMyAwIDI0LTEwLjcgMjQtMjRsMC0xMTJjMC0xMy4zLTEwLjctMjQtMjQtMjRsLTMwNCAweiJdfSwkcWU9Tm0sQXFlPU5tLERxZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJjaGlsZC1kcmVzcyIsaWNvbjpbMzIwLDUxMixbXSwiZTU5YyIsIk0yMjQgNjRBNjQgNjQgMCAxIDAgOTYgNjQgNjQgNjQgMCAxIDAgMjI0IDY0ek04OCA0MDBsMCA4MGMwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMybDAtODAgMTYgMCAwIDgwYzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJsMC04MCAxNy44IDBjMTAuOSAwIDE4LjYtMTAuNyAxNS4yLTIxLjFsLTMxLjEtOTMuNCAyOC43IDM3LjhjMTAuNyAxNC4xIDMwLjggMTYuOCA0NC44IDYuMnMxNi44LTMwLjcgNi4yLTQ0LjhMMjU0LjYgMjA3Yy0yMi40LTI5LjYtNTcuNS00Ny05NC42LTQ3cy03Mi4yIDE3LjQtOTQuNiA0N0w2LjUgMjg0LjdjLTEwLjcgMTQuMS03LjkgMzQuMiA2LjIgNDQuOHMzNC4yIDcuOSA0NC44LTYuMkw4Ni4yIDI4NS41IDU1IDM3OC45QzUxLjYgMzg5LjMgNTkuMyA0MDAgNzAuMiA0MDBMODggNDAweiJdfSxMQj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJmYWNlLWtpc3MtYmVhbSIsaWNvbjpbNTEyLDUxMixbMTI4NTM3LCJraXNzLWJlYW0iXSwiZjU5NyIsIk0yNTYgNTEyYTI1NiAyNTYgMCAxIDAgMC01MTIgMjU2IDI1NiAwIDEgMCAwIDUxMnpNMjQwIDI4OGwzMiAwYzI2LjUgMCA0OCAyMS41IDQ4IDQ4IDAgMTIuMy00LjYgMjMuNS0xMi4yIDMyIDcuNiA4LjUgMTIuMiAxOS43IDEyLjIgMzIgMCAyNi41LTIxLjUgNDgtNDggNDhsLTMyIDBjLTguOCAwLTE2LTcuMi0xNi0xNnM3LjItMTYgMTYtMTZsMTYgMGM4LjggMCAxNi03LjIgMTYtMTZzLTcuMi0xNi0xNi0xNmwtMTYgMGMtOC44IDAtMTYtNy4yLTE2LTE2czcuMi0xNiAxNi0xNmwxNiAwYzguOCAwIDE2LTcuMiAxNi0xNnMtNy4yLTE2LTE2LTE2bC0xNiAwYy04LjggMC0xNi03LjItMTYtMTZzNy4yLTE2IDE2LTE2ek0xNzYgMTgwYy0xNS41IDAtMjggMTIuNS0yOCAyOGwwIDhjMCAxMS05IDIwLTIwIDIwcy0yMC05LTIwLTIwbDAtOGMwLTM3LjYgMzAuNC02OCA2OC02OHM2OCAzMC40IDY4IDY4bDAgOGMwIDExLTkgMjAtMjAgMjBzLTIwLTktMjAtMjBsMC04YzAtMTUuNS0xMi41LTI4LTI4LTI4em0xMzIgMjhsMCA4YzAgMTEtOSAyMC0yMCAyMHMtMjAtOS0yMC0yMGwwLThjMC0zNy42IDMwLjQtNjggNjgtNjhzNjggMzAuNCA2OCA2OGwwIDhjMCAxMS05IDIwLTIwIDIwcy0yMC05LTIwLTIwbDAtOGMwLTE1LjUtMTIuNS0yOC0yOC0yOHMtMjggMTIuNS0yOCAyOHoiXX0sRXFlPUxCLCRCPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InRyYXNoLWNhbi1hcnJvdy11cCIsaWNvbjpbNDQ4LDUxMixbInRyYXNoLXJlc3RvcmUtYWx0Il0sImY4MmEiLCJNMTY3LjEtMTZsMTEzLjkgMGMxMy44IDAgMjYgOC44IDMwLjQgMjEuOUwzMjAgMzIgNDE2IDMyYzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMyTDMyIDk2QzE0LjMgOTYgMCA4MS43IDAgNjRTMTQuMyAzMiAzMiAzMmw5NiAwIDguNy0yNi4xQzE0MS4xLTcuMiAxNTMuMy0xNiAxNjcuMS0xNnpNMzIgMTQ0bDM4NCAwIDAgMzA0YzAgMzUuMy0yOC43IDY0LTY0IDY0TDk2IDUxMmMtMzUuMyAwLTY0LTI4LjctNjQtNjRsMC0zMDR6bTIwOSA3OWMtOS40LTkuNC0yNC42LTkuNC0zMy45IDBsLTcyIDcyYy05LjQgOS40LTkuNCAyNC42IDAgMzMuOXMyNC42IDkuNCAzMy45IDBsMzEtMzEgMCAxMDIuMWMwIDEzLjMgMTAuNyAyNCAyNCAyNHMyNC0xMC43IDI0LTI0bDAtMTAyLjEgMzEgMzFjOS40IDkuNCAyNC42IDkuNCAzMy45IDBzOS40LTI0LjYgMC0zMy45bC03Mi03MnoiXX0sUHFlPSRCLElxZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJmb250IixpY29uOls1MTIsNTEyLFtdLCJmMDMxIiwiTTI4NS4xIDUwLjdDMjc5LjkgMzkuMyAyNjguNSAzMiAyNTYgMzJzLTIzLjkgNy4zLTI5LjEgMTguN0w1OS41IDQxNiA0OCA0MTZjLTE3LjcgMC0zMiAxNC4zLTMyIDMyczE0LjMgMzIgMzIgMzJsODggMGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMmwtNi4xIDAgMjItNDggMjA4LjMgMCAyMiA0OC02LjEgMGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJzMTQuMyAzMiAzMiAzMmw4OCAwYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMybC0xMS41IDAtMTY3LjQtMzY1LjN6TTMzMC44IDMwNEwxODEuMiAzMDQgMjU2IDE0MC44IDMzMC44IDMwNHoiXX0sTnFlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImJvcmUtaG9sZSIsaWNvbjpbNTEyLDUxMixbXSwiZTRjMyIsIk0yNTYgMGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJsMCAyMzIuNmMtMTkuMSAxMS4xLTMyIDMxLjctMzIgNTUuNCAwIDM1LjMgMjguNyA2NCA2NCA2NHM2NC0yOC43IDY0LTY0YzAtMjMuNy0xMi45LTQ0LjQtMzItNTUuNEwyODggMzJjMC0xNy43LTE0LjMtMzItMzItMzJ6TTAgMzg0bDAgNjRjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMzg0IDBjMzUuMyAwIDY0LTI4LjcgNjQtNjRsMC0yNzJjMC0yNi41LTIxLjUtNDgtNDgtNDhsLTQ4IDBjLTI2LjUgMC00OCAyMS41LTQ4IDQ4bDAgMTQ0YzAgNjEuOS01MC4xIDExMi0xMTIgMTEyUzE0NCAzODEuOSAxNDQgMzIwbDAtMTQ0YzAtMjYuNS0yMS41LTQ4LTQ4LTQ4bC00OCAwYy0yNi41IDAtNDggMjEuNS00OCA0OEwwIDM4NHoiXX0sRnFlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InZpcnVzLWNvdmlkIixpY29uOls1MTIsNTEyLFtdLCJlNGE4IiwiTTE5MiAyNGMwLTEzLjMgMTAuNy0yNCAyNC0yNGw4MCAwYzEzLjMgMCAyNCAxMC43IDI0IDI0cy0xMC43IDI0LTI0IDI0bC0xNiAwIDAgMzMuNmMzMC43IDQuMiA1OC44IDE2LjMgODIuMyAzNC4xTDM4Ni4xIDkyIDM3NC44IDgwLjZjLTkuNC05LjQtOS40LTI0LjYgMC0zMy45czI0LjYtOS40IDMzLjkgMGw1Ni42IDU2LjZjOS40IDkuNCA5LjQgMjQuNiAwIDMzLjlzLTI0LjYgOS40LTMzLjkgMGwtMTEuMy0xMS4zLTIzLjggMjMuOGMxNy45IDIzLjUgMjkuOSA1MS43IDM0LjEgODIuM2wzMy42IDAgMC0xNmMwLTEzLjMgMTAuNy0yNCAyNC0yNHMyNCAxMC43IDI0IDI0bDAgODBjMCAxMy4zLTEwLjcgMjQtMjQgMjRzLTI0LTEwLjctMjQtMjRsMC0xNi0zMy42IDBjLTQuMiAzMC43LTE2LjMgNTguOC0zNC4xIDgyLjNsMjMuOCAyMy44IDExLjMtMTEuM2M5LjQtOS40IDI0LjYtOS40IDMzLjkgMHM5LjQgMjQuNiAwIDMzLjlsLTU2LjYgNTYuNmMtOS40IDkuNC0yNC42IDkuNC0zMy45IDBzLTkuNC0yNC42IDAtMzMuOWwxMS4zLTExLjMtMjMuOC0yMy44Yy0yMy41IDE3LjktNTEuNyAyOS45LTgyLjMgMzQuMWwwIDMzLjYgMTYgMGMxMy4zIDAgMjQgMTAuNyAyNCAyNHMtMTAuNyAyNC0yNCAyNGwtODAgMGMtMTMuMyAwLTI0LTEwLjctMjQtMjRzMTAuNy0yNCAyNC0yNGwxNiAwIDAtMzMuNmMtMzAuNy00LjItNTguOC0xNi4zLTgyLjMtMzQuMWwtMjMuOCAyMy44IDExLjMgMTEuM2M5LjQgOS40IDkuNCAyNC42IDAgMzMuOXMtMjQuNiA5LjQtMzMuOSAwTDQ2LjcgNDA4LjdjLTkuNC05LjQtOS40LTI0LjYgMC0zMy45czI0LjYtOS40IDMzLjkgMGwxMS4zIDExLjMgMjMuOC0yMy44Qzk3LjkgMzM4LjggODUuOCAzMTAuNyA4MS42IDI4MGwtMzMuNiAwIDAgMTZjMCAxMy4zLTEwLjcgMjQtMjQgMjRTMCAzMDkuMyAwIDI5NmwwLTgwYzAtMTMuMyAxMC43LTI0IDI0LTI0czI0IDEwLjcgMjQgMjRsMCAxNiAzMy42IDBjNC4yLTMwLjcgMTYuMy01OC44IDM0LjEtODIuM0w5MiAxMjUuOSA4MC42IDEzNy4yYy05LjQgOS40LTI0LjYgOS40LTMzLjkgMHMtOS40LTI0LjYgMC0zMy45bDU2LjYtNTYuNmM5LjQtOS40IDI0LjYtOS40IDMzLjkgMHM5LjQgMjQuNiAwIDMzLjlMMTI1LjkgOTIgMTQ5LjcgMTE1LjdjMjMuNS0xNy45IDUxLjctMjkuOSA4Mi4zLTM0LjFsMC0zMy42LTE2IDBjLTEzLjMgMC0yNC0xMC43LTI0LTI0em0zMiAyMDBhMzIgMzIgMCAxIDAgLTY0IDAgMzIgMzIgMCAxIDAgNjQgMHptOTYgOTZhMzIgMzIgMCAxIDAgMC02NCAzMiAzMiAwIDEgMCAwIDY0eiJdfSxPcWU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZmlsZS1wZGYiLGljb246WzU3Niw1MTIsW10sImYxYzEiLCJNOTYgMEM2MC43IDAgMzIgMjguNyAzMiA2NGwwIDM4NGMwIDM1LjMgMjguNyA2NCA2NCA2NGw4MCAwIDAtMTEyYzAtMzUuMyAyOC43LTY0IDY0LTY0bDE3NiAwIDAtMTY1LjVjMC0xNy02LjctMzMuMy0xOC43LTQ1LjNMMjkwLjcgMTguN0MyNzguNyA2LjcgMjYyLjUgMCAyNDUuNSAwTDk2IDB6TTM1Ny41IDE3NkwyNjQgMTc2Yy0xMy4zIDAtMjQtMTAuNy0yNC0yNEwyNDAgNTguNSAzNTcuNSAxNzZ6TTI0MCAzODBjLTExIDAtMjAgOS0yMCAyMGwwIDEyOGMwIDExIDkgMjAgMjAgMjBzMjAtOSAyMC0yMGwwLTI4IDEyIDBjMzMuMSAwIDYwLTI2LjkgNjAtNjBzLTI2LjktNjAtNjAtNjBsLTMyIDB6bTMyIDgwbC0xMiAwIDAtNDAgMTIgMGMxMSAwIDIwIDkgMjAgMjBzLTkgMjAtMjAgMjB6bTk2LTgwYy0xMSAwLTIwIDktMjAgMjBsMCAxMjhjMCAxMSA5IDIwIDIwIDIwbDMyIDBjMjguNyAwIDUyLTIzLjMgNTItNTJsMC02NGMwLTI4LjctMjMuMy01Mi01Mi01MmwtMzIgMHptMjAgMTI4bDAtODggMTIgMGM2LjYgMCAxMiA1LjQgMTIgMTJsMCA2NGMwIDYuNi01LjQgMTItMTIgMTJsLTEyIDB6bTg4LTEwOGwwIDEyOGMwIDExIDkgMjAgMjAgMjBzMjAtOSAyMC0yMGwwLTQ0IDI4IDBjMTEgMCAyMC05IDIwLTIwcy05LTIwLTIwLTIwbC0yOCAwIDAtMjQgMjggMGMxMSAwIDIwLTkgMjAtMjBzLTktMjAtMjAtMjBsLTQ4IDBjLTExIDAtMjAgOS0yMCAyMHoiXX0sUnFlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6Imxhbmd1YWdlIixpY29uOls1NzYsNTEyLFtdLCJmMWFiIiwiTTE2MCAwYzE3LjcgMCAzMiAxNC4zIDMyIDMybDAgMzIgMTI4IDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJsLTkuNiAwLTguNCAyMy4xYy0xNi40IDQ1LjItNDEuMSA4Ni41LTcyLjIgMTIyIDE0LjIgOC44IDI5IDE2LjYgNDQuNCAyMy41bDUwLjQgMjIuNCA2Mi4yLTE0MGM1LjEtMTEuNiAxNi42LTE5IDI5LjItMTlzMjQuMSA3LjQgMjkuMiAxOWwxMjggMjg4YzcuMiAxNi4yLS4xIDM1LjEtMTYuMiA0Mi4ycy0zNS4xLS4xLTQyLjItMTYuMmwtMjAtNDUtMTU3LjUgMC0yMCA0NWMtNy4yIDE2LjItMjYuMSAyMy40LTQyLjIgMTYuMnMtMjMuNC0yNi4xLTE2LjItNDIuMmwzOS44LTg5LjUtNTAuNC0yMi40Yy0yMy0xMC4yLTQ1LTIyLjQtNjUuOC0zNi40LTIxLjMgMTcuMi00NC42IDMyLjItNjkuNSA0NC43TDc4LjMgMzgwLjZjLTE1LjggNy45LTM1IDEuNS00Mi45LTE0LjNzLTEuNS0zNSAxNC4zLTQyLjlsMzQuNS0xNy4zYzE2LjMtOC4yIDMxLjgtMTcuNyA0Ni40LTI4LjMtMTMuOC0xMi43LTI2LjgtMjYuNC0zOC45LTQwLjlMODEuNiAyMjQuN2MtMTEuMy0xMy42LTkuNS0zMy44IDQuMS00NS4xczMzLjgtOS41IDQ1LjEgNC4xbDEwLjIgMTIuMmMxMS41IDEzLjkgMjQuMSAyNi44IDM3LjQgMzguNyAyNy41LTMwLjQgNDkuMi02Ni4xIDYzLjUtMTA1LjRsLjUtMS4yLTIxMC4zIDBDMTQuMyAxMjggMCAxMTMuNyAwIDk2UzE0LjMgNjQgMzIgNjRsOTYgMCAwLTMyYzAtMTcuNyAxNC4zLTMyIDMyLTMyek00MTYgMjcwLjhMMzY1LjcgMzg0IDQ2Ni4zIDM4NCA0MTYgMjcwLjh6Il19LEFCPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InNoaWVsZC1oYWx2ZWQiLGljb246WzUxMiw1MTIsWyJzaGllbGQtYWx0Il0sImYzZWQiLCJNMjU2IDBjNC42IDAgOS4yIDEgMTMuNCAyLjlMNDU3LjggODIuOGMyMiA5LjMgMzguNCAzMSAzOC4zIDU3LjItLjUgOTkuMi00MS4zIDI4MC43LTIxMy42IDM2My4yLTE2LjcgOC0zNi4xIDgtNTIuOCAwLTE3Mi40LTgyLjUtMjEzLjEtMjY0LTIxMy42LTM2My4yLS4xLTI2LjIgMTYuMy00Ny45IDM4LjMtNTcuMkwyNDIuNyAyLjlDMjQ2LjkgMSAyNTEuNCAwIDI1NiAwem0wIDY2LjhsMCAzNzguMWMxMzgtNjYuOCAxNzUuMS0yMTQuOCAxNzYtMzAzLjRsLTE3Ni03NC42IDAgMHoiXX0sQnFlPUFCLEhxZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJjYXJldC11cCIsaWNvbjpbMzIwLDUxMixbXSwiZjBkOCIsIk0xNDAuMyAxMzUuMmMxMi42LTEwLjMgMzEuMS05LjUgNDIuOCAyLjJsMTI4IDEyOGM5LjIgOS4yIDExLjkgMjIuOSA2LjkgMzQuOVMzMDEuNCAzMjAgMjg4LjUgMzIwbC0yNTYgMGMtMTIuOSAwLTI0LjYtNy44LTI5LjYtMTkuOFMuNyAyNzQuNSA5LjkgMjY1LjRsMTI4LTEyOCAyLjQtMi4yeiJdfSxEQj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJmaWxlLXBlbiIsaWNvbjpbNjQwLDUxMixbMTI4MjIxLCJmaWxlLWVkaXQiXSwiZjMxYyIsIk0xMjguMSAwYy0zNS4zIDAtNjQgMjguNy02NCA2NGwwIDM4NGMwIDM1LjMgMjguNyA2NCA2NCA2NGwxNDYuMiAwIDEwLjktNTQuNWM0LjMtMjEuNyAxNS00MS42IDMwLjYtNTcuMmwxMzIuMi0xMzIuMiAwLTk3LjVjMC0xNy02LjctMzMuMy0xOC43LTQ1LjNMMzIyLjggMTguN0MzMTAuOCA2LjcgMjk0LjUgMCAyNzcuNiAwTDEyOC4xIDB6TTM4OS42IDE3NmwtOTMuNSAwYy0xMy4zIDAtMjQtMTAuNy0yNC0yNGwwLTkzLjUgMTE3LjUgMTE3LjV6TTMzMi4zIDQ2Ni45bC0xMS45IDU5LjZjLS4yIC45LS4zIDEuOS0uMyAyLjkgMCA4IDYuNSAxNC42IDE0LjYgMTQuNiAxIDAgMS45LS4xIDIuOS0uM2w1OS42LTExLjljMTIuNC0yLjUgMjMuOC04LjYgMzIuNy0xNy41bDExOC45LTExOC45LTgwLTgwLTExOC45IDExOC45Yy04LjkgOC45LTE1IDIwLjMtMTcuNSAzMi43em0yNjcuOC0xMjNjMjIuMS0yMi4xIDIyLjEtNTcuOSAwLTgwcy01Ny45LTIyLjEtODAgMGwtMjguOCAyOC44IDgwIDgwIDI4LjgtMjguOHoiXX0scXFlPURCLEVCPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InBlcnNvbi1iaWtpbmciLGljb246WzU3Niw1MTIsWzEyODY5MiwiYmlraW5nIl0sImY4NGEiLCJNMzY4IDk2YTQ4IDQ4IDAgMSAwIDAtOTYgNDggNDggMCAxIDAgMCA5NnptMjcuMiA2NGwtNjEuOC00OC44Yy0xNy4zLTEzLjYtNDEuNy0xMy44LTU5LjEtLjNsLTgzLjEgNjQuMmMtMzAuNyAyMy44LTI4LjUgNzAuOCA0LjMgOTEuNkwyNTYgMzA1LjEgMjU2IDQxNmMwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMybDAtMTI4YzAtMTAuNy01LjMtMjAuNy0xNC4yLTI2LjZMMjYzIDIzMi45IDMyMy4zIDE4NC40IDM2NCAyMTdjNS43IDQuNSAxMi43IDcgMjAgN2w2NCAwYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMybC01Mi44IDB6TTExMiA1MTJhMTEyIDExMiAwIDEgMCAwLTIyNCAxMTIgMTEyIDAgMSAwIDAgMjI0em0zNTIgMGExMTIgMTEyIDAgMSAwIDAtMjI0IDExMiAxMTIgMCAxIDAgMCAyMjR6Il19LFZxZT1FQixQQj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJib29rLW9wZW4tcmVhZGVyIixpY29uOls1MTIsNTEyLFsiYm9vay1yZWFkZXIiXSwiZjVkYSIsIk0yNTYgMTUyYTg4IDg4IDAgMSAwIDAtMTc2IDg4IDg4IDAgMSAwIDAgMTc2em0wIDI5OC43bDAtMTQ5LjNjMTYuMy02LjggMzIuOS0xMy43IDQ5LjctMjAuNyAzOS0xNi4yIDgwLjgtMjQuNiAxMjMuMS0yNC42bDE5LjIgMCAwIDE2MC0xOS4yIDBjLTU5LjEgMC0xMTcuNyAxMS43LTE3Mi4zIDM0LjVsLS41IC4yek0yNTYgMjMybC0yNS4xLTEwLjVDMTg0LjEgMjAyIDEzMy45IDE5MiA4My4yIDE5Mkw0OCAxOTJjLTI2LjUgMC00OCAyMS41LTQ4IDQ4TDAgNDMyYzAgMjYuNSAyMS41IDQ4IDQ4IDQ4bDM1LjIgMGM1MC43IDAgMTAwLjkgMTAgMTQ3LjcgMjkuNWwxMi44IDUuM2M3LjkgMy4zIDE2LjcgMy4zIDI0LjYgMGwxMi44LTUuM2M0Ni44LTE5LjUgOTctMjkuNSAxNDcuNy0yOS41bDM1LjIgMGMyNi41IDAgNDgtMjEuNSA0OC00OGwwLTE5MmMwLTI2LjUtMjEuNS00OC00OC00OGwtMzUuMiAwYy01MC43IDAtMTAwLjkgMTAtMTQ3LjcgMjkuNUwyNTYgMjMyeiJdfSxqcWU9UEIsVXFlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImdsYXNzLXdhdGVyLWRyb3BsZXQiLGljb246WzM4NCw1MTIsW10sImU0ZjUiLCJNMzIgMEMyMy4xIDAgMTQuNiAzLjcgOC42IDEwLjJTLS42IDI1LjQgLjEgMzQuM0wyOC45IDQzNy43YzMgNDEuOSAzNy44IDc0LjMgNzkuOCA3NC4zbDE2Ni42IDBjNDIgMCA3Ni44LTMyLjQgNzkuOC03NC4zTDM4My45IDM0LjNjLjYtOC45LTIuNC0xNy42LTguNS0yNC4xUzM2MC45IDAgMzUyIDBMMzIgMHpNODMgMjk3LjVMNjYuNCA2NCAzMTcuNiA2NCAzMDEgMjk3LjUgMjg4IDMwNGMtMjAuMSAxMC4xLTQzLjkgMTAuMS02NCAwcy00My45LTEwLjEtNjQgMC00My45IDEwLjEtNjQgMGwtMTMtNi41ek0yNTYgMTk2YzAtMjQtMzMuNy03MC4xLTUyLjItOTMuNS02LjEtNy43LTE3LjUtNy43LTIzLjYgMC0xOC41IDIzLjQtNTIuMiA2OS41LTUyLjIgOTMuNSAwIDMzLjEgMjguNyA2MCA2NCA2MHM2NC0yNi45IDY0LTYweiJdfSxJQj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJ0b3dlci1icm9hZGNhc3QiLGljb246WzU3Niw1MTIsWyJicm9hZGNhc3QtdG93ZXIiXSwiZjUxOSIsIk04Ny45IDExLjVjLTExLjMtNi45LTI2LjEtMy4yLTMzIDguMS0yNC44IDQxLTM5IDg5LjEtMzkgMTQwLjRzMTQuMiA5OS40IDM5IDE0MC40YzYuOSAxMS4zIDIxLjYgMTUgMzMgOC4xczE1LTIxLjYgOC4xLTMzQzc1LjcgMjQxLjkgNjQgMjAyLjMgNjQgMTYwUzc1LjcgNzguMSA5Ni4xIDQ0LjRjNi45LTExLjMgMy4yLTI2LjEtOC4xLTMzem00MDAuMSAwYy0xMS4zIDYuOS0xNSAyMS42LTguMSAzMyAyMC40IDMzLjcgMzIuMSA3My4zIDMyLjEgMTE1LjZzLTExLjcgODEuOS0zMi4xIDExNS42Yy02LjkgMTEuMy0zLjIgMjYuMSA4LjEgMzNzMjYuMSAzLjIgMzMtOC4xYzI0LjgtNDEgMzktODkuMSAzOS0xNDAuNFM1NDUuOCA2MC42IDUyMSAxOS42Yy02LjktMTEuMy0yMS42LTE1LTMzLTguMXpNMzIwIDIxNS40YzE5LjEtMTEuMSAzMi0zMS43IDMyLTU1LjQgMC0zNS4zLTI4LjctNjQtNjQtNjRzLTY0IDI4LjctNjQgNjRjMCAyMy43IDEyLjkgNDQuNCAzMiA1NS40TDI1NiA0ODBjMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMmwwLTI2NC42ek0xODAuMiA5MWM3LjItMTEuMiAzLjktMjYtNy4yLTMzLjJzLTI2LTMuOS0zMy4yIDcuMmMtMTcuNiAyNy40LTI3LjggNjAtMjcuOCA5NXMxMC4yIDY3LjYgMjcuOCA5NWM3LjIgMTEuMiAyMiAxNC40IDMzLjIgNy4yczE0LjQtMjIgNy4yLTMzLjJjLTEyLjgtMTkuOS0yMC4yLTQzLjYtMjAuMi02OXM3LjQtNDkuMSAyMC4yLTY5ek00MzYuMiA2NWMtNy4yLTExLjItMjItMTQuNC0zMy4yLTcuMnMtMTQuNCAyMi03LjIgMzMuMmMxMi44IDE5LjkgMjAuMiA0My42IDIwLjIgNjlzLTcuNCA0OS4xLTIwLjIgNjljLTcuMiAxMS4yLTMuOSAyNiA3LjIgMzMuMnMyNiAzLjkgMzMuMi03LjJjMTcuNi0yNy40IDI3LjgtNjAgMjcuOC05NXMtMTAuMi02Ny42LTI3LjgtOTV6Il19LFdxZT1JQixOQj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJtaW5pbWl6ZSIsaWNvbjpbNTEyLDUxMixbImNvbXByZXNzLWFycm93cy1hbHQiXSwiZjc4YyIsIk00NTYgMjI0bC0xNDQgMGMtMTMuMyAwLTI0LTEwLjctMjQtMjRsMC0xNDRjMC05LjcgNS44LTE4LjUgMTQuOC0yMi4yUzMyMi4xIDMyLjIgMzI5IDM5bDQwIDQwIDczLjQtNzMuNEM0NDYgMiA0NTAuOSAwIDQ1NiAwczEwIDIgMTMuNyA1LjdsMzYuNyAzNi43QzUxMCA0NiA1MTIgNTAuOSA1MTIgNTZzLTIgMTAtNS43IDEzLjdMNDMzIDE0MyA0NzMgMTgzYzYuOSA2LjkgOC45IDE3LjIgNS4yIDI2LjJTNDY1LjcgMjI0IDQ1NiAyMjR6bTAgNjRjOS43IDAgMTguNSA1LjggMjIuMiAxNC44czEuNyAxOS4zLTUuMiAyNi4ybC00MCA0MCA3My40IDczLjRjMy42IDMuNiA1LjcgOC41IDUuNyAxMy43cy0yIDEwLTUuNyAxMy43bC0zNi43IDM2LjdDNDY2IDUxMCA0NjEuMSA1MTIgNDU2IDUxMnMtMTAtMi0xMy43LTUuN0wzNjkgNDMzIDMyOSA0NzNjLTYuOSA2LjktMTcuMiA4LjktMjYuMiA1LjJTMjg4IDQ2NS43IDI4OCA0NTZsMC0xNDRjMC0xMy4zIDEwLjctMjQgMjQtMjRsMTQ0IDB6bS0yNTYgMGMxMy4zIDAgMjQgMTAuNyAyNCAyNGwwIDE0NGMwIDkuNy01LjggMTguNS0xNC44IDIyLjJzLTE5LjMgMS43LTI2LjItNS4ybC00MC00MC03My40IDczLjRDNjYgNTEwIDYxLjEgNTEyIDU2IDUxMnMtMTAtMi0xMy43LTUuN0w1LjcgNDY5LjdDMiA0NjYgMCA0NjEuMSAwIDQ1NnMyLTEwIDUuNy0xMy43TDc5IDM2OSAzOSAzMjljLTYuOS02LjktOC45LTE3LjItNS4yLTI2LjJTNDYuMyAyODggNTYgMjg4bDE0NCAwek01NiAyMjRjLTkuNyAwLTE4LjUtNS44LTIyLjItMTQuOFMzMi4yIDE4OS45IDM5IDE4M0w3OSAxNDMgNS43IDY5LjdDMiA2NiAwIDYxLjEgMCA1NlMyIDQ2IDUuNyA0Mi4zTDQyLjMgNS43QzQ2IDIgNTAuOSAwIDU2IDBTNjYgMiA2OS43IDUuN0wxNDMgNzkgMTgzIDM5YzYuOS02LjkgMTcuMi04LjkgMjYuMi01LjJTMjI0IDQ2LjMgMjI0IDU2bDAgMTQ0YzAgMTMuMy0xMC43IDI0LTI0IDI0TDU2IDIyNHoiXX0sR3FlPU5CLFlxZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJhcnJvdy1yaWdodC10by1jaXR5IixpY29uOls2NDAsNTEyLFtdLCJlNGIzIiwiTTI4OCA0OGMwLTI2LjUgMjEuNS00OCA0OC00OGw5NiAwYzI2LjUgMCA0OCAyMS41IDQ4IDQ4bDAgODAgNDggMCAwLTcyYzAtMTMuMyAxMC43LTI0IDI0LTI0czI0IDEwLjcgMjQgMjRsMCA3MiAxNiAwYzI2LjUgMCA0OCAyMS41IDQ4IDQ4bDAgMjg4YzAgMjYuNS0yMS41IDQ4LTQ4IDQ4bC0yNTYgMGMtMjYuNSAwLTQ4LTIxLjUtNDgtNDhsMC00MTZ6bTY0IDY0bDAgMzJjMCA4LjggNy4yIDE2IDE2IDE2bDMyIDBjOC44IDAgMTYtNy4yIDE2LTE2bDAtMzJjMC04LjgtNy4yLTE2LTE2LTE2bC0zMiAwYy04LjggMC0xNiA3LjItMTYgMTZ6bTE2IDgwYy04LjggMC0xNiA3LjItMTYgMTZsMCAzMmMwIDguOCA3LjIgMTYgMTYgMTZsMzIgMGM4LjggMCAxNi03LjIgMTYtMTZsMC0zMmMwLTguOC03LjItMTYtMTYtMTZsLTMyIDB6TTM1MiAzMDRsMCAzMmMwIDguOCA3LjIgMTYgMTYgMTZsMzIgMGM4LjggMCAxNi03LjIgMTYtMTZsMC0zMmMwLTguOC03LjItMTYtMTYtMTZsLTMyIDBjLTguOCAwLTE2IDcuMi0xNiAxNnptMTc2LTgwYy04LjggMC0xNiA3LjItMTYgMTZsMCAzMmMwIDguOCA3LjIgMTYgMTYgMTZsMzIgMGM4LjggMCAxNi03LjIgMTYtMTZsMC0zMmMwLTguOC03LjItMTYtMTYtMTZsLTMyIDB6TTUxMiAzMzZsMCAzMmMwIDguOCA3LjIgMTYgMTYgMTZsMzIgMGM4LjggMCAxNi03LjIgMTYtMTZsMC0zMmMwLTguOC03LjItMTYtMTYtMTZsLTMyIDBjLTguOCAwLTE2IDcuMi0xNiAxNnpNMTUzIDE2N2w3MiA3MmM5LjQgOS40IDkuNCAyNC42IDAgMzMuOWwtNzIgNzJjLTkuNCA5LjQtMjQuNiA5LjQtMzMuOSAwcy05LjQtMjQuNiAwLTMzLjlsMzEtMzEtMTAyLjEgMGMtMTMuMyAwLTI0LTEwLjctMjQtMjRzMTAuNy0yNCAyNC0yNGwxMDIuMSAwLTMxLTMxYy05LjQtOS40LTkuNC0yNC42IDAtMzMuOXMyNC42LTkuNCAzMy45IDB6Il19LFpxZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJsYXB0b3AtbWVkaWNhbCIsaWNvbjpbNjQwLDUxMixbXSwiZjgxMiIsIk02NCA5NmMwLTM1LjMgMjguNy02NCA2NC02NGwzODQgMGMzNS4zIDAgNjQgMjguNyA2NCA2NGwwIDI0MC02NCAwIDAtMjQwLTM4NCAwIDAgMjQwLTY0IDAgMC0yNDB6TTAgNDAzLjJDMCAzOTIuNiA4LjYgMzg0IDE5LjIgMzg0bDYwMS42IDBjMTAuNiAwIDE5LjIgOC42IDE5LjIgMTkuMiAwIDQyLjQtMzQuNCA3Ni44LTc2LjggNzYuOEw3Ni44IDQ4MEMzNC40IDQ4MCAwIDQ0NS42IDAgNDAzLjJ6TTI4OCAxNjBjMC04LjggNy4yLTE2IDE2LTE2bDMyIDBjOC44IDAgMTYgNy4yIDE2IDE2bDAgNDAgNDAgMGM4LjggMCAxNiA3LjIgMTYgMTZsMCAzMmMwIDguOC03LjIgMTYtMTYgMTZsLTQwIDAgMCA0MGMwIDguOC03LjIgMTYtMTYgMTZsLTMyIDBjLTguOCAwLTE2LTcuMi0xNi0xNmwwLTQwLTQwIDBjLTguOCAwLTE2LTcuMi0xNi0xNmwwLTMyYzAtOC44IDcuMi0xNiAxNi0xNmw0MCAwIDAtNDB6Il19LFhxZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJicmVhZC1zbGljZSIsaWNvbjpbNTEyLDUxMixbXSwiZjdlYyIsIk02NCA0MzJsMC0xNzZjLTM1LjMgMC02NC0yOC43LTY0LTY0IDAtMjE2LjUgNTEyLTIxNi41IDUxMiAwIDAgMzUuMy0yOC43IDY0LTY0IDY0bDAgMTc2YzAgMjYuNS0yMS41IDQ4LTQ4IDQ4bC0yODggMGMtMjYuNSAwLTQ4LTIxLjUtNDgtNDh6Il19LEtxZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJnbG9iZSIsaWNvbjpbNTEyLDUxMixbMTI3NzYwXSwiZjBhYyIsIk0zNTEuOSAyODBsLTE5MC45IDBjMi45IDY0LjUgMTcuMiAxMjMuOSAzNy41IDE2Ny40IDExLjQgMjQuNSAyMy43IDQxLjggMzUuMSA1Mi40IDExLjIgMTAuNSAxOC45IDEyLjIgMjIuOSAxMi4yczExLjctMS43IDIyLjktMTIuMmMxMS40LTEwLjYgMjMuNy0yOCAzNS4xLTUyLjQgMjAuMy00My41IDM0LjYtMTAyLjkgMzcuNS0xNjcuNHpNMTYwLjkgMjMybDE5MC45IDBDMzQ5IDE2Ny41IDMzNC43IDEwOC4xIDMxNC40IDY0LjYgMzAzIDQwLjIgMjkwLjcgMjIuOCAyNzkuMyAxMi4yIDI2OC4xIDEuNyAyNjAuNCAwIDI1Ni40IDBzLTExLjcgMS43LTIyLjkgMTIuMmMtMTEuNCAxMC42LTIzLjcgMjgtMzUuMSA1Mi40LTIwLjMgNDMuNS0zNC42IDEwMi45LTM3LjUgMTY3LjR6bS00OCAwQzExNi40IDE0Ni40IDEzOC41IDY2LjkgMTcwLjggMTQuNyA3OC43IDQ3LjMgMTAuOSAxMzEuMiAxLjUgMjMybDExMS40IDB6TTEuNSAyODBjOS40IDEwMC44IDc3LjIgMTg0LjcgMTY5LjMgMjE3LjMtMzIuMy01Mi4yLTU0LjQtMTMxLjctNTcuOS0yMTcuM0wxLjUgMjgwem0zOTguNCAwYy0zLjUgODUuNi0yNS42IDE2NS4xLTU3LjkgMjE3LjMgOTIuMS0zMi43IDE1OS45LTExNi41IDE2OS4zLTIxNy4zbC0xMTEuNCAwem0xMTEuNC00OEM1MDEuOSAxMzEuMiA0MzQuMSA0Ny4zIDM0MiAxNC43IDM3NC4zIDY2LjkgMzk2LjQgMTQ2LjQgMzk5LjkgMjMybDExMS40IDB6Il19LFFxZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJmb2xkZXItbWludXMiLGljb246WzUxMiw1MTIsW10sImY2NWQiLCJNNDQ4IDQ0OEw2NCA0NDhjLTM1LjMgMC02NC0yOC43LTY0LTY0TDAgOTZDMCA2MC43IDI4LjcgMzIgNjQgMzJsMTM4LjcgMGMxMy44IDAgMjcuMyA0LjUgMzguNCAxMi44bDM4LjQgMjguOGM1LjUgNC4yIDEyLjMgNi40IDE5LjIgNi40TDQ0OCA4MGMzNS4zIDAgNjQgMjguNyA2NCA2NGwwIDI0MGMwIDM1LjMtMjguNyA2NC02NCA2NHpNMTg0IDI0MGMtMTMuMyAwLTI0IDEwLjctMjQgMjRzMTAuNyAyNCAyNCAyNGwxNDQgMGMxMy4zIDAgMjQtMTAuNyAyNC0yNHMtMTAuNy0yNC0yNC0yNGwtMTQ0IDB6Il19LEpxZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJtYXNrLWZhY2UiLGljb246WzY0MCw1MTIsW10sImUxZDciLCJNMzIwIDY0Yy0yNy4yIDAtNTMuOCA4LTc2LjQgMjMuMWwtMzcuMSAyNC44Yy0xNS44IDEwLjUtMzQuMyAxNi4xLTUzLjMgMTYuMUw2NCAxMjhjLTM1LjMgMC02NCAyOC43LTY0IDY0bDAgNzguN2MwIDYyLjYgNDUuMiAxMTYgMTA3IDEyNi4zbDk3LjkgMTYuM2MzMyAyMiA3Mi42IDM0LjcgMTE1LjEgMzQuN3M4Mi4yLTEyLjggMTE1LjEtMzQuN0w1MzMgMzk2LjljNjEuNy0xMC4zIDEwNy02My43IDEwNy0xMjYuM2wwLTc4LjdjMC0zNS4zLTI4LjctNjQtNjQtNjRsLTg5LjIgMGMtMTkgMC0zNy41LTUuNi01My4zLTE2LjFMMzk2LjQgODcuMUMzNzMuOCA3MiAzNDcuMiA2NCAzMjAgNjR6TTEzNS45IDMzNi45bC0xOC40LTMuMUM4Ni42IDMyOC43IDY0IDMwMiA2NCAyNzAuN2wwLTc4LjcgNDggMCAwIDQ4YzAgMzUgOC42IDY3LjkgMjMuOSA5Ni45em0zODYuNi0zLjFsLTE4LjQgMy4xQzUxOS40IDMwNy45IDUyOCAyNzUgNTI4IDI0MGwwLTQ4IDQ4IDAgMCA3OC43YzAgMzEuMy0yMi42IDU4LTUzLjUgNjMuMXpNMTkyIDIzMmMwLTEzLjMgMTAuNy0yNCAyNC0yNGwyMDggMGMxMy4zIDAgMjQgMTAuNyAyNCAyNHMtMTAuNyAyNC0yNCAyNGwtMjA4IDBjLTEzLjMgMC0yNC0xMC43LTI0LTI0em01NiA1NmwxNDQgMGMxMy4zIDAgMjQgMTAuNyAyNCAyNHMtMTAuNyAyNC0yNCAyNGwtMTQ0IDBjLTEzLjMgMC0yNC0xMC43LTI0LTI0czEwLjctMjQgMjQtMjR6Il19LGVWZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJib25nIixpY29uOls1MTIsNTEyLFtdLCJmNTVjIiwiTTQ0OC41IDM4NGMwIDQxLjUtMTMuMSA3OS45LTM1LjUgMTExLjMtNy45IDExLjEtMjEuMiAxNi43LTM0LjggMTYuN2wtMjQzLjMgMGMtMTMuNyAwLTI2LjktNS42LTM0LjgtMTYuNy0yMi40LTMxLjQtMzUuNS02OS44LTM1LjUtMTExLjMgMC03MS4xIDM4LjYtMTMzLjEgOTYtMTY2LjNsMC0xNTMuN2MtMTcuNyAwLTMyLTE0LjMtMzItMzJzMTQuMy0zMiAzMi0zMmwxOTIgMGMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMmwwIDE1My43YzE0LjIgOC4yIDI3LjIgMTguMiAzOC44IDI5LjZsMzkuMy0zOS4zLTctN2MtOS40LTkuNC05LjQtMjQuNiAwLTMzLjlzMjQuNi05LjQgMzMuOSAwYzE2IDE2IDMyIDMyIDQ4IDQ4IDkuNCA5LjQgOS40IDI0LjYgMCAzMy45cy0yNC42IDkuNC0zMy45IDBsLTctNy00My4zIDQzLjNjMTcuMyAyOC45IDI3LjMgNjIuNiAyNy4zIDk4Ljh6TTI4OC41IDY0bC02NCAwIDAgMTkwLjYtMzIgMTguNWMtMTkuNSAxMS4zLTM1LjcgMjcuNS00Ni45IDQ2LjlsMjIxLjggMGMtMTEuMi0xOS40LTI3LjQtMzUuNi00Ni45LTQ2LjlsLTMyLTE4LjUgMC0xOTAuNnoiXX0sdFZlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InJvYWQtYnJpZGdlIixpY29uOls1NzYsNTEyLFtdLCJlNTYzIiwiTTMyIDMybDIwOCAwIDAgNjQtMjQgMCAwIDY0IDI0IDAgMCAxMjkuM2MtNDUuNCA3LjYtODAgNDcuMS04MCA5NC43bDAgNjRjMCAxNy43LTE0LjMgMzItMzIgMzJsLTMyIDBjLTE3LjcgMC0zMi0xNC4zLTMyLTMybDAtOTRjMC0zOC44LTI2LjQtNzIuNi02NC04MmwwLTExMiA0MCAwIDAtNjQtOCAwQzE0LjMgOTYgMCA4MS43IDAgNjRTMTQuMyAzMiAzMiAzMnpNODggOTZsMCA2NCA4MCAwIDAtNjQtODAgMHpNMzM2IDMybDcyIDAgMCA3MmMwIDEzLjMgMTAuNyAyNCAyNCAyNHMyNC0xMC43IDI0LTI0bDAtNzIgNzIgMGMyNi41IDAgNDggMjEuNSA0OCA0OGwwIDM1MmMwIDI2LjUtMjEuNSA0OC00OCA0OGwtNzIgMCAwLTcyYzAtMTMuMy0xMC43LTI0LTI0LTI0cy0yNCAxMC43LTI0IDI0bDAgNzItNzIgMGMtMjYuNSAwLTQ4LTIxLjUtNDgtNDhsMC0zNTJjMC0yNi41IDIxLjUtNDggNDgtNDh6bTk2IDE2MGMtMTMuMyAwLTI0IDEwLjctMjQgMjRsMCA4MGMwIDEzLjMgMTAuNyAyNCAyNCAyNHMyNC0xMC43IDI0LTI0bDAtODBjMC0xMy4zLTEwLjctMjQtMjQtMjR6Il19LEZCPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImFycm93LXVwLTktMSIsaWNvbjpbNTEyLDUxMixbInNvcnQtbnVtZXJpYy11cC1hbHQiXSwiZjg4NyIsIk0xNTAuNiA0MS40Yy0xMi41LTEyLjUtMzIuOC0xMi41LTQ1LjMgMGwtOTYgOTZjLTEyLjUgMTIuNS0xMi41IDMyLjggMCA0NS4zczMyLjggMTIuNSA0NS4zIDBMOTYgMTQxLjMgOTYgNDQ4YzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJsMC0zMDYuNyA0MS40IDQxLjRjMTIuNSAxMi41IDMyLjggMTIuNSA0NS4zIDBzMTIuNS0zMi44IDAtNDUuM2wtOTYtOTZ6TTM2NS4xIDIwNi42Yy05LjYgMTQuOC01LjQgMzQuNiA5LjQgNDQuM3MzNC42IDUuNCA0NC4zLTkuNGw0Mi4xLTY0LjljMTIuNC0xOS4yIDE5LjEtNDEuNiAxOS4xLTY0LjUgMC00NC4yLTM1LjgtODAtODAtODBzLTgwIDM1LjgtODAgODBjMCAzNi4xIDIzLjkgNjYuNyA1Ni44IDc2LjZsLTExLjcgMTh6TTM3NiAxMTJhMjQgMjQgMCAxIDEgNDggMCAyNCAyNCAwIDEgMSAtNDggMHptNDIuNyAxODJjLTguMy02LTE5LjEtNy43LTI4LjgtNC40bC00OCAxNmMtMTYuOCA1LjYtMjUuOCAyMy43LTIwLjIgNDAuNXMyMy43IDI1LjggNDAuNSAyMC4ybDUuOS0yIDAgNTEuNi0xNiAwYy0xNy43IDAtMzIgMTQuMy0zMiAzMnMxNC4zIDMyIDMyIDMybDk2IDBjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJsLTE2IDAgMC05NmMwLTEwLjMtNC45LTE5LjktMTMuMy0yNnoiXX0sYVZlPUZCLGlWZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJtb3VudGFpbi1jaXR5IixpY29uOls2NDAsNTEyLFtdLCJlNTJlIiwiTTI1Ni4zIDQ4YzAtMjYuNSAyMS41LTQ4IDQ4LTQ4bDk2IDBjMjYuNSAwIDQ4IDIxLjUgNDggNDhsMCA0OCA0OCAwIDAtNzJjMC0xMy4zIDEwLjctMjQgMjQtMjRzMjQgMTAuNyAyNCAyNGwwIDcyIDE2IDBjMjYuNSAwIDQ4IDIxLjUgNDggNDhsMCAzMjBjMCAyNi41LTIxLjUgNDgtNDggNDhsLTc3LjggMGM0LTE1LjQgMi40LTMyLjYtNi43LTQ4LjJMMzU0LjYgMjU2IDM2OC4zIDI1NmM4LjggMCAxNi03LjIgMTYtMTZsMC0zMmMwLTguOC03LjItMTYtMTYtMTZsLTMyIDBjLTYuMSAwLTExLjQgMy40LTE0LjEgOC41bC00Mi42LTczYy02LTEwLjItMTQuMS0xOC0yMy4zLTIzLjNsMC01Ni4yem02NCA2NGwwIDMyYzAgOC44IDcuMiAxNiAxNiAxNmwzMiAwYzguOCAwIDE2LTcuMiAxNi0xNmwwLTMyYzAtOC44LTcuMi0xNi0xNi0xNmwtMzIgMGMtOC44IDAtMTYgNy4yLTE2IDE2em0xNjAgOTZsMCAzMmMwIDguOCA3LjIgMTYgMTYgMTZsMzIgMGM4LjggMCAxNi03LjIgMTYtMTZsMC0zMmMwLTguOC03LjItMTYtMTYtMTZsLTMyIDBjLTguOCAwLTE2IDcuMi0xNiAxNnptMTYgODBjLTguOCAwLTE2IDcuMi0xNiAxNmwwIDMyYzAgOC44IDcuMiAxNiAxNiAxNmwzMiAwYzguOCAwIDE2LTcuMiAxNi0xNmwwLTMyYzAtOC44LTcuMi0xNi0xNi0xNmwtMzIgMHptLTI3Mi02NC43bC02NS4xIDExMS42IDMzLjEgMzMuMSA0OC00OCA0MC40IDAtNTYuNC05Ni43em0tMjcuNi00Ny45YzEyLjMtMjEuMiA0Mi45LTIxLjIgNTUuMyAwTDQyMC4zIDQ2My45YzEyLjQgMjEuMy0yLjkgNDguMS0yNy42IDQ4LjFMNTYgNTEyYy0yNC43IDAtNDAuMS0yNi44LTI3LjYtNDguMUwxOTYuNyAxNzUuNHoiXX0sRm09e3ByZWZpeDoiZmFzIixpY29uTmFtZToiYXJyb3ctZG93bi05LTEiLGljb246WzUxMiw1MTIsWyJzb3J0LW51bWVyaWMtZGVzYyIsInNvcnQtbnVtZXJpYy1kb3duLWFsdCJdLCJmODg2IiwiTTIzMC42IDM5MC42bC04MCA4MGMtMTIuNSAxMi41LTMyLjggMTIuNS00NS4zIDBsLTgwLTgwYy0xMi41LTEyLjUtMTIuNS0zMi44IDAtNDUuM3MzMi44LTEyLjUgNDUuMyAwTDk2IDM3MC43IDk2IDY0YzAtMTcuNyAxNC4zLTMyIDMyLTMyczMyIDE0LjMgMzIgMzJsMCAzMDYuNyAyNS40LTI1LjRjMTIuNS0xMi41IDMyLjgtMTIuNSA0NS4zIDBzMTIuNSAzMi44IDAgNDUuM3ptMTM0LjUtMTg0bDExLjctMThjLTMyLjktOS45LTU2LjgtNDAuNS01Ni44LTc2LjYgMC00NC4yIDM1LjgtODAgODAtODBzODAgMzUuOCA4MCA4MGMwIDIyLjktNi42IDQ1LjMtMTkuMSA2NC41bC00Mi4xIDY0LjljLTkuNiAxNC44LTI5LjQgMTkuMS00NC4zIDkuNHMtMTkuMS0yOS40LTkuNC00NC4zek00MjQgMTEyYTI0IDI0IDAgMSAwIC00OCAwIDI0IDI0IDAgMSAwIDQ4IDB6bS01LjMgMTgyYzguMyA2IDEzLjMgMTUuNyAxMy4zIDI2bDAgOTYgMTYgMGMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMmwtOTYgMGMtMTcuNyAwLTMyLTE0LjMtMzItMzJzMTQuMy0zMiAzMi0zMmwxNiAwIDAtNTEuNi01LjkgMmMtMTYuOCA1LjYtMzQuOS0zLjUtNDAuNS0yMC4yczMuNS0zNC45IDIwLjItNDAuNWw0OC0xNmM5LjgtMy4zIDIwLjUtMS42IDI4LjggNC40eiJdfSxyVmU9Rm0sc1ZlPUZtLE9CPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImZhY2UtZ3Jpbi13aWRlIixpY29uOls1MTIsNTEyLFsxMjg1MTUsImdyaW4tYWx0Il0sImY1ODEiLCJNMjU2IDUxMmEyNTYgMjU2IDAgMSAwIDAtNTEyIDI1NiAyNTYgMCAxIDAgMCA1MTJ6TTM4Ni43IDMwOC45YzExLjktMy43IDIzLjkgNi4zIDE5LjYgMTguMS0yMi40IDYxLjMtODEuMyAxMDUuMS0xNTAuMyAxMDUuMVMxMjguMSAzODguMiAxMDUuNyAzMjYuOWMtNC4zLTExLjggNy43LTIxLjggMTkuNi0xOC4xIDM5LjIgMTIuMiA4My43IDE5LjEgMTMwLjcgMTkuMXM5MS41LTYuOSAxMzAuNy0xOS4xek0yMDggMTkyYzAgMzUuMy0xNC4zIDY0LTMyIDY0cy0zMi0yOC43LTMyLTY0IDE0LjMtNjQgMzItNjQgMzIgMjguNyAzMiA2NHptMTI4IDY0Yy0xNy43IDAtMzItMjguNy0zMi02NHMxNC4zLTY0IDMyLTY0IDMyIDI4LjcgMzIgNjQtMTQuMyA2NC0zMiA2NHoiXX0sblZlPU9CLG9WZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJwb29wIixpY29uOls1MTIsNTEyLFtdLCJmNjE5IiwiTTI1NC40IDYuNmMzLjUtNC4zIDktNi41IDE0LjUtNS43IDQ2LjkgNi4zIDgzLjEgNDYuNSA4My4xIDk1LjEgMCAxMS4yLTEuOSAyMi01LjUgMzJsNS41IDBjMzUuMyAwIDY0IDI4LjcgNjQgNjQgMCAxOS4xLTguNCAzNi4zLTIxLjcgNDhsMTMuNyAwYzM5LjggMCA3MiAzMi4yIDcyIDcyIDAgMjMuMi0xMSA0My44LTI4IDU3IDM0LjEgNS43IDYwIDM1LjMgNjAgNzEgMCAzOS44LTMyLjIgNzItNzIgNzJMNzIgNTEyYy0zOS44IDAtNzItMzIuMi03Mi03MiAwLTM1LjcgMjUuOS02NS4zIDYwLTcxLTE3LTEzLjItMjgtMzMuOC0yOC01NyAwLTM5LjggMzIuMi03MiA3Mi03MmwxMy43IDBjLTEzLjMtMTEuNy0yMS43LTI4LjktMjEuNy00OCAwLTM1LjMgMjguNy02NCA2NC02NGwxNi4yIDBjNDQuMS0uMSA3OS44LTM1LjkgNzkuOC04MCAwLTkuMi0xLjUtMTcuOS00LjMtMjYuMS0xLjgtNS4yLS44LTExLjEgMi44LTE1LjR6Il19LGxWZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJkaGFybWFjaGFrcmEiLGljb246WzUxMiw1MTIsWzk3ODRdLCJmNjU1IiwiTTMzNy44IDIwNS43bDQ4LjYtNDIuNWMxMy44IDE5LjMgMjMuNCA0MS45IDI3LjQgNjYuMmwtNjQuNCA0LjNjLTIuNC0xMC4xLTYuNC0xOS41LTExLjYtMjh6bTE0MC4xIDE5LjVjLTUuMy0zOC44LTIwLjYtNzQuNS00My4yLTEwNC4zbC44LS43QzQ0OSAxMDguNCA0NDkuNyA4Ny42IDQzNyA3NXMtMzMuNC0xMi00NS4yIDEuNWwtLjcgLjhjLTI5LjgtMjIuNi02NS41LTM3LjktMTA0LjMtNDMuMmwuMS0xLjFjMS4yLTE3LjktMTMtMzMtMzAuOS0zM3MtMzIuMSAxNS4yLTMwLjkgMzNsLjEgMS4xYy0zOC44IDUuMy03NC41IDIwLjYtMTA0LjMgNDMuMmwtLjctLjhDMTA4LjQgNjMgODcuNiA2Mi4zIDc1IDc1cy0xMiAzMy40IDEuNSA0NS4ybC44IC43Yy0yMi42IDI5LjgtMzcuOSA2NS41LTQzLjIgMTA0LjNsLTEuMS0uMWMtMTcuOS0xLjItMzMgMTMtMzMgMzAuOXMxNS4yIDMyLjEgMzMgMzAuOWwxLjEtLjFjNS4zIDM4LjggMjAuNiA3NC41IDQzLjIgMTA0LjNsLS44IC43QzYzIDQwMy42IDYyLjMgNDI0LjQgNzUgNDM3czMzLjQgMTIgNDUuMi0xLjVsLjctLjhjMjkuOCAyMi42IDY1LjUgMzcuOSAxMDQuMyA0My4ybC0uMSAxLjFjLTEuMiAxNy45IDEzIDMzIDMwLjkgMzNzMzIuMS0xNS4yIDMwLjktMzNsLS4xLTEuMWMzOC44LTUuMyA3NC41LTIwLjYgMTA0LjMtNDMuMmwuNyAuOGMxMS44IDEzLjUgMzIuNSAxNC4yIDQ1LjIgMS41czEyLTMzLjQtMS41LTQ1LjJsLS44LS43YzIyLjYtMjkuOCAzNy45LTY1LjUgNDMuMi0xMDQuM2wxLjEgLjFjMTcuOSAxLjIgMzMtMTMgMzMtMzAuOXMtMTUuMi0zMi4xLTMzLTMwLjlsLTEuMSAuMXpNMTYzLjIgMTI1LjZjMTkuMy0xMy44IDQxLjktMjMuNCA2Ni4yLTI3LjVsNC4zIDY0LjRjLTEwIDIuNC0xOS41IDYuNC0yOCAxMS42bC00Mi41LTQ4LjZ6bS02NSAxMDMuOGM0LjEtMjQuNCAxMy43LTQ2LjkgMjcuNS02Ni4ybDQ4LjYgNDIuNWMtNS4zIDguNS05LjIgMTgtMTEuNiAyOGwtNjQuNC00LjN6bTI3LjUgMTE5LjRjLTEzLjgtMTkuMy0yMy40LTQxLjktMjcuNS02Ni4ybDY0LjQtNC4zYzIuNCAxMC4xIDYuNCAxOS41IDExLjYgMjhsLTQ4LjYgNDIuNXptMTAzLjggNjVjLTI0LjQtNC4xLTQ2LjktMTMuNy02Ni4yLTI3LjRsNDIuNS00OC42YzguNSA1LjMgMTggOS4yIDI4IDExLjZsLTQuMyA2NC40em0xMTkuNC0yNy40Yy0xOS4zIDEzLjgtNDEuOSAyMy40LTY2LjIgMjcuNGwtNC4zLTY0LjRjMTAtMi40IDE5LjUtNi40IDI4LTExLjZsNDIuNSA0OC42em02NS0xMDMuOGMtNC4xIDI0LjQtMTMuNyA0Ni45LTI3LjQgNjYuMmwtNDguNi00Mi41YzUuMy04LjYgOS4yLTE4IDExLjYtMjhsNjQuNCA0LjN6bS02NS0xNTYuOWwtNDIuNSA0OC42Yy04LjYtNS4zLTE4LTkuMi0yOC0xMS42bDQuMy02NC40YzI0LjQgNC4xIDQ2LjkgMTMuNyA2Ni4yIDI3LjV6TTI1NiAyMjRhMzIgMzIgMCAxIDEgMCA2NCAzMiAzMiAwIDEgMSAwLTY0eiJdfSxSQj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJiYXR0ZXJ5LXF1YXJ0ZXIiLGljb246WzY0MCw1MTIsWyJiYXR0ZXJ5LTIiXSwiZjI0MyIsIk01MjggMTI4YzguOCAwIDE2IDcuMiAxNiAxNmwwIDIyNGMwIDguOC03LjIgMTYtMTYgMTZsLTQxNiAwYy04LjggMC0xNi03LjItMTYtMTZsMC0yMjRjMC04LjggNy4yLTE2IDE2LTE2bDQxNiAwek0xMTIgNjRjLTQ0LjIgMC04MCAzNS44LTgwIDgwbDAgMjI0YzAgNDQuMiAzNS44IDgwIDgwIDgwbDQxNiAwYzQ0LjIgMCA4MC0zNS44IDgwLTgwbDAtNDhjMTcuNyAwIDMyLTE0LjMgMzItMzJsMC02NGMwLTE3LjctMTQuMy0zMi0zMi0zMmwwLTQ4YzAtNDQuMi0zNS44LTgwLTgwLTgwTDExMiA2NHptNTYgMTEyYy0xMy4zIDAtMjQgMTAuNy0yNCAyNGwwIDExMmMwIDEzLjMgMTAuNyAyNCAyNCAyNGw2NCAwYzEzLjMgMCAyNC0xMC43IDI0LTI0bDAtMTEyYzAtMTMuMy0xMC43LTI0LTI0LTI0bC02NCAweiJdfSxjVmU9UkIsZFZlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImFua2giLGljb246WzMyMCw1MTIsWzk3NjVdLCJmNjQ0IiwiTTk2IDEyOGMwLTM1LjMgMjguNy02NCA2NC02NHM2NCAyOC43IDY0IDY0YzAgNDEuNi0yMC43IDc2LjYtNDYuNiAxMDQuMS01LjkgNi4yLTExLjggMTEuOC0xNy40IDE2LjctNS42LTQuOS0xMS41LTEwLjUtMTcuNC0xNi43LTI1LjktMjcuNS00Ni42LTYyLjYtNDYuNi0xMDQuMXpNMTYwIDBDODkuMyAwIDMyIDU3LjMgMzIgMTI4IDMyIDE4MC40IDUzLjUgMjIzLjUgNzguOCAyNTZMMzIgMjU2Yy0xNy43IDAtMzIgMTQuMy0zMiAzMnMxNC4zIDMyIDMyIDMybDk2IDAgMCAxNjBjMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMmwwLTE2MCA5NiAwYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMybC00Ni44IDBDMjY2LjUgMjIzLjUgMjg4IDE4MC40IDI4OCAxMjggMjg4IDU3LjMgMjMwLjcgMCAxNjAgMHoiXX0saFZlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImRpYW1vbmQiLGljb246WzUxMiw1MTIsWzk4MzBdLCJmMjE5IiwiTTE3IDIxNUwyMTUgMTdDMjI1LjkgNi4xIDI0MC42IDAgMjU2IDBzMzAuMSA2LjEgNDEgMTdMNDk1IDIxNWMxMC45IDEwLjkgMTcgMjUuNiAxNyA0MXMtNi4xIDMwLjEtMTcgNDFMMjk3IDQ5NWMtMTAuOSAxMC45LTI1LjYgMTctNDEgMTdzLTMwLjEtNi4xLTQxLTE3TDE3IDI5N0M2LjEgMjg2LjEgMCAyNzEuNCAwIDI1NnM2LjEtMzAuMSAxNy00MXoiXX0scFZlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InN1YnNjcmlwdCIsaWNvbjpbNTc2LDUxMixbXSwiZjEyYyIsIk05NiA2NEM3OC4zIDY0IDY0IDc4LjMgNjQgOTZzMTQuMyAzMiAzMiAzMmwxNS4zIDAgODkuNiAxMjgtODkuNiAxMjgtMTUuMyAwYy0xNy43IDAtMzIgMTQuMy0zMiAzMnMxNC4zIDMyIDMyIDMybDMyIDBjMTAuNCAwIDIwLjItNS4xIDI2LjItMTMuNkwyNDAgMzExLjggMzI1LjggNDM0LjRjNiA4LjYgMTUuOCAxMy42IDI2LjIgMTMuNmwzMiAwYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMybC0xNS4zIDAtODkuNi0xMjggODkuNi0xMjggMTUuMyAwYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMybC0zMiAwYy0xMC40IDAtMjAuMiA1LjEtMjYuMiAxMy42TDI0MCAyMDAuMiAxNTQuMiA3Ny42QzE0OC4yIDY5LjEgMTM4LjQgNjQgMTI4IDY0TDk2IDY0ek01NDQgMzIwYzAtMTEuMS01LjctMjEuNC0xNS4yLTI3LjJzLTIxLjItNi40LTMxLjEtMS40bC0zMiAxNmMtMTUuOCA3LjktMjIuMiAyNy4xLTE0LjMgNDIuOSA1LjYgMTEuMiAxNi45IDE3LjcgMjguNiAxNy43bDAgODBjLTE3LjcgMC0zMiAxNC4zLTMyIDMyczE0LjMgMzIgMzIgMzJsNjQgMGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMmwwLTEyOHoiXX0sQkI9e3ByZWZpeDoiZmFzIixpY29uTmFtZToicnVwZWUtc2lnbiIsaWNvbjpbNDQ4LDUxMixbODM2MCwicnVwZWUiXSwiZjE1NiIsIk0wIDY0QzAgNDYuMyAxNC4zIDMyIDMyIDMybDgwIDBjNzkuNSAwIDE0NCA2NC41IDE0NCAxNDQgMCA1NC4zLTMwIDEwMS41LTc0LjQgMTI2LjFsNDEgMTM2LjdjNS4xIDE2LjktNC41IDM0LjgtMjEuNSAzOS44cy0zNC44LTQuNS0zOS44LTIxLjVMMTIwLjEgMzE5LjhjLTIuNyAuMS01LjQgLjItOC4xIC4ybC00OCAwIDAgMTI4YzAgMTcuNy0xNC4zIDMyLTMyIDMyUzAgNDY1LjcgMCA0NDhMMCA2NHpNNjQgMjU2bDQ4IDBjNDQuMiAwIDgwLTM1LjggODAtODBzLTM1LjgtODAtODAtODBsLTQ4IDAgMCAxNjB6bTI4NS4xLTMybDM0LjkgMGMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMmwtMzQuOSAwYy03LjIgMC0xMy4xIDUuOS0xMy4xIDEzLjEgMCA1LjcgMy43IDEwLjcgOS4xIDEyLjVsNDkuNCAxNS45YzMxLjkgMTAuMyA1My41IDM5LjkgNTMuNSA3My40IDAgNDIuNi0zNC41IDc3LjEtNzcuMSA3Ny4xTDMyMCA0ODBjLTE3LjcgMC0zMi0xNC4zLTMyLTMyczE0LjMtMzIgMzItMzJsNTAuOSAwYzcuMiAwIDEzLjEtNS45IDEzLjEtMTMuMSAwLTUuNy0zLjctMTAuNy05LjEtMTIuNWwtNDkuNC0xNS45Yy0zMS45LTEwLjMtNTMuNS0zOS45LTUzLjUtNzMuNCAwLTQyLjYgMzQuNS03Ny4xIDc3LjEtNzcuMXoiXX0sdVZlPUJCLGZWZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJwZXJzb24tcmlmbGUiLGljb246WzUxMiw1MTIsW10sImU1NGUiLCJNNDE2IDBMMzg0IDBjLTguOCAwLTE2IDcuMi0xNiAxNnM3LjIgMTYgMTYgMTZsMCAxMDAuM2MtOS42IDUuNS0xNiAxNS45LTE2IDI3LjdsMCAzMmMtMTcuNyAwLTMyIDE0LjMtMzIgMzJsMCAxNDRjMCAxNy43IDE0LjMgMzIgMzIgMzJsMTYgMCAwIDk2YzAgOC44IDcuMiAxNiAxNiAxNmw1OS41IDBjMTAuNCAwIDE4LTkuOCAxNS41LTE5LjlsLTIzLTkyLjEgNDQgMGM4LjggMCAxNi03LjIgMTYtMTZsMC0xNmMwLTguOC03LjItMTYtMTYtMTZsLTQ4IDAgMC0yNi43IDUzLjEtMTcuN2M2LjUtMi4yIDEwLjktOC4zIDEwLjktMTUuMmwwLTg0LjVjMC04LjgtNy4yLTE2LTE2LTE2bC0xNiAwYy04LjggMC0xNiA3LjItMTYgMTZsMCA1Ni0xNiA1LjMgMC0xMDkuM2MwLTExLjgtNi40LTIyLjItMTYtMjcuN0w0MzIgMTZjMC04LjgtNy4yLTE2LTE2LTE2ek0yMjQgMjA4QzExOCAyMDggMzIgMjk0IDMyIDQwMGwwIDQ4YzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJsMC00OGMwLTMyLjUgMTIuMS02Mi4xIDMyLTg0LjdsMCAxOTYuNyAxNjAgMCAwLTI5My4xYy0yMC03LjEtNDEuNi0xMC45LTY0LTEwLjl6TTI4MCA4OGE3MiA3MiAwIDEgMCAtMTQ0IDAgNzIgNzIgMCAxIDAgMTQ0IDB6Il19LG1WZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJkIixpY29uOlszODQsNTEyLFsxMDBdLCI0NCIsIk0wIDY0QzAgNDYuMyAxNC4zIDMyIDMyIDMybDEyOCAwYzEyMy43IDAgMjI0IDEwMC4zIDIyNCAyMjRTMjgzLjcgNDgwIDE2MCA0ODBMMzIgNDgwYy0xNy43IDAtMzItMTQuMy0zMi0zMkwwIDY0ek02NCA5NmwwIDMyMCA5NiAwYzg4LjQgMCAxNjAtNzEuNiAxNjAtMTYwUzI0OC40IDk2IDE2MCA5Nkw2NCA5NnoiXX0sZ1ZlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InNxdWFyZS1uZmkiLGljb246WzQ0OCw1MTIsW10sImU1NzYiLCJNNjQgMzJDMjguNyAzMiAwIDYwLjcgMCA5NkwwIDQxNmMwIDM1LjMgMjguNyA2NCA2NCA2NGwzMjAgMGMzNS4zIDAgNjQtMjguNyA2NC02NGwwLTMyMGMwLTM1LjMtMjguNy02NC02NC02NEw2NCAzMnpNOTMgMTcyLjNsMzUgNjMgMC01MS40YzAtMTMuMyAxMC43LTI0IDI0LTI0czI0IDEwLjcgMjQgMjRsMCAxNDRjMCAxMC45LTcuNCAyMC41LTE4IDIzLjJzLTIxLjctMi0yNy0xMS42bC0zNS02MyAwIDUxLjRjMCAxMy4zLTEwLjcgMjQtMjQgMjRzLTI0LTEwLjctMjQtMjRsMC0xNDRjMC0xMC45IDcuNC0yMC41IDE4LTIzLjJzMjEuNyAyIDI3IDExLjZ6TTIwOCAxODRjMC0xMy4zIDEwLjctMjQgMjQtMjRsODAgMGMxMy4zIDAgMjQgMTAuNyAyNCAyNHMtMTAuNyAyNC0yNCAyNGwtNTYgMCAwIDMyIDQwIDBjMTMuMyAwIDI0IDEwLjcgMjQgMjRzLTEwLjcgMjQtMjQgMjRsLTQwIDAgMCA0MGMwIDEzLjMtMTAuNyAyNC0yNCAyNHMtMjQtMTAuNy0yNC0yNGwwLTE0NHptMTkyIDBsMCAxNDRjMCAxMy4zLTEwLjcgMjQtMjQgMjRzLTI0LTEwLjctMjQtMjRsMC0xNDRjMC0xMy4zIDEwLjctMjQgMjQtMjRzMjQgMTAuNyAyNCAyNHoiXX0sYlZlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InRlZXRoIixpY29uOls1MTIsNTEyLFtdLCJmNjJlIiwiTTAgOTZDMCA2MC43IDI4LjcgMzIgNjQgMzJsMzg0IDBjMzUuMyAwIDY0IDI4LjcgNjQgNjRsMCAzMjBjMCAzNS4zLTI4LjcgNjQtNjQgNjRMNjQgNDgwYy0zNS4zIDAtNjQtMjguNy02NC02NEwwIDk2ek0xNDQgMjA4bDAgMjRjMCAxMy4zIDEwLjcgMjQgMjQgMjRsNDggMGMxMy4zIDAgMjQtMTAuNyAyNC0yNGwwLTI0YzAtMjYuNS0yMS41LTQ4LTQ4LTQ4cy00OCAyMS41LTQ4IDQ4em0xMjggMGwwIDI0YzAgMTMuMyAxMC43IDI0IDI0IDI0bDQ4IDBjMTMuMyAwIDI0LTEwLjcgMjQtMjRsMC0yNGMwLTI2LjUtMjEuNS00OC00OC00OHMtNDggMjEuNS00OCA0OHpNODAgMTc2Yy0xNy43IDAtMzIgMTQuMy0zMiAzMmwwIDI0YzAgMTMuMyAxMC43IDI0IDI0IDI0bDE2IDBjMTMuMyAwIDI0LTEwLjcgMjQtMjRsMC0yNGMwLTE3LjctMTQuMy0zMi0zMi0zMnptMzIwIDMybDAgMjRjMCAxMy4zIDEwLjcgMjQgMjQgMjRsMTYgMGMxMy4zIDAgMjQtMTAuNyAyNC0yNGwwLTI0YzAtMTcuNy0xNC4zLTMyLTMyLTMycy0zMiAxNC4zLTMyIDMyek00OCAzMzZjMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMmwwLTE2YzAtOC44LTcuMi0xNi0xNi0xNmwtMzIgMGMtOC44IDAtMTYgNy4yLTE2IDE2bDAgMTZ6bTE0NCA0OGMyNi41IDAgNDgtMjEuNSA0OC00OGwwLTE2YzAtOC44LTcuMi0xNi0xNi0xNmwtNjQgMGMtOC44IDAtMTYgNy4yLTE2IDE2bDAgMTZjMCAyNi41IDIxLjUgNDggNDggNDh6bTEyOCAwYzI2LjUgMCA0OC0yMS41IDQ4LTQ4bDAtMTZjMC04LjgtNy4yLTE2LTE2LTE2bC02NCAwYy04LjggMC0xNiA3LjItMTYgMTZsMCAxNmMwIDI2LjUgMjEuNSA0OCA0OCA0OHptMTEyLTE2YzE3LjcgMCAzMi0xNC4zIDMyLTMybDAtMTZjMC04LjgtNy4yLTE2LTE2LTE2bC0zMiAwYy04LjggMC0xNiA3LjItMTYgMTZsMCAxNmMwIDE3LjcgMTQuMyAzMiAzMiAzMnoiXX0sSEI9e3ByZWZpeDoiZmFzIixpY29uTmFtZToibWFnbmlmeWluZy1nbGFzcy1kb2xsYXIiLGljb246WzUxMiw1MTIsWyJzZWFyY2gtZG9sbGFyIl0sImY2ODgiLCJNNDE2IDIwOGMwIDQ1LjktMTQuOSA4OC4zLTQwIDEyMi43TDUwMi42IDQ1Ny40YzEyLjUgMTIuNSAxMi41IDMyLjggMCA0NS4zcy0zMi44IDEyLjUtNDUuMyAwTDMzMC43IDM3NkMyOTYuMyA0MDEuMSAyNTMuOSA0MTYgMjA4IDQxNiA5My4xIDQxNiAwIDMyMi45IDAgMjA4UzkzLjEgMCAyMDggMCA0MTYgOTMuMSA0MTYgMjA4ek0yMTIgOTZjLTExIDAtMjAgOS0yMCAyMGwwIDRjLTI4LjggLjMtNTIgMjMuNy01MiA1Mi41IDAgMjUuNyAxOC41IDQ3LjYgNDMuOSA1MS44bDQxLjcgN2M2IDEgMTAuNCA2LjIgMTAuNCAxMi4zIDAgNi45LTUuNiAxMi41LTEyLjUgMTIuNUwxNjggMjU2Yy0xMSAwLTIwIDktMjAgMjBzOSAyMCAyMCAyMGwyNCAwIDAgNGMwIDExIDkgMjAgMjAgMjBzMjAtOSAyMC0yMGwwLTQuN2MyNS00LjEgNDQtMjUuNyA0NC01MS44IDAtMjUuNy0xOC41LTQ3LjYtNDMuOS01MS44bC00MS43LTdjLTYtMS0xMC40LTYuMi0xMC40LTEyLjMgMC02LjkgNS42LTEyLjUgMTIuNS0xMi41bDQ3LjUgMGMxMSAwIDIwLTkgMjAtMjBzLTktMjAtMjAtMjBsLTggMCAwLTRjMC0xMS05LTIwLTIwLTIweiJdfSx2VmU9SEIseVZlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImR1bXBzdGVyLWZpcmUiLGljb246WzY0MCw1MTIsW10sImY3OTQiLCJNMTY0LjMgNjRMMTM4LjcgMTkyIDU2IDE5MmMtMTMuMyAwLTI0LTEwLjctMjQtMjRsMC00LjFjMC0yLjYgLjQtNS4xIDEuMi03LjZMNTguNSA4MC40QzYxLjggNzAuNiA3MSA2NCA4MS4zIDY0bDgzIDB6bTIzLjQgMTI4bDI1LjYtMTI4IDgyLjcgMCAwIDEyOC0xMDguMyAwek0zNDQgNjRsODIuNyAwIDE2IDgwYy0xNC43IC4yLTI5LjMgNS41LTQwLjkgMTUuOS0xMS41IDEwLjMtMjIuNSAyMS0zMi44IDMyLjFsLTI0LjkgMCAwLTEyOHpNOTYgMjQwbDIzMy4yIDBjLTYuNCA4LjgtMTIuMyAxNy42LTE3LjcgMjYuMy0yMS40IDM0LjctMzkuNSA3Ni4xLTM5LjUgMTE1LjggMCAxNy4xIDIuMSAzMy44IDYgNDkuOWwtMTIwLjQgMCAxLjkgMTAuM2MzLjIgMTcuNC04LjQgMzQtMjUuOCAzNy4ycy0zNC04LjQtMzcuMi0yNS44QzcxIDMxMy4zIDU4IDI0Mi4xIDU3LjcgMjQwTDk2IDI0MHptNTEyLTcyYzAgMTEtNy40IDIwLjMtMTcuNSAyMy4xLS45LS44LTEuNy0xLjYtMi42LTIuNC0yMS44LTIwLTU0LjMtMjEuOC03OC01LjUtNC4yLTQuMy04LjUtOC41LTEyLjktMTIuNmwtMjEuMy0xMDYuNiA4MyAwYzEwLjMgMCAxOS41IDYuNiAyMi44IDE2LjRsMjUuMyA3NS45Yy44IDIuNCAxLjIgNSAxLjIgNy42bDAgNC4xek01MDUuNyAyNDAuM0w1MTggMjI2LjVjNS40LTYuMSAxMy4zLTguOCAyMC45LTguOSA3LjIgMCAxNC4zIDIuNiAxOS45IDcuOCAxOS43IDE4LjMgMzkuOCA0My4yIDU1IDcwLjYgMTUuMSAyNy4yIDI2LjIgNTguMSAyNi4yIDg4LjEgMCA4OC43LTcxLjMgMTU5LjgtMTYwIDE1OS44LTg5LjYgMC0xNjAtNzEuMy0xNjAtMTU5LjggMC0zNy4zIDE2LTczLjQgMzYuOC0xMDQuNSAyMC45LTMxLjMgNDcuNS01OSA3MC45LTgwLjIgNS43LTUuMiAxMy4xLTcuNyAyMC4zLTcuNXMxMy40IDMuMiAxOC44IDcuNWMxNC40IDExLjQgMzguOSA0MC43IDM4LjkgNDAuN3pNNTQ0IDQzMi4yYzAtMzYuNS0zNy03My01NC44LTg4LjQtNS40LTQuNy0xMy4xLTQuNy0xOC41IDAtMTcuNyAxNS40LTU0LjggNTEuOS01NC44IDg4LjQgMCAzNS4zIDI4LjcgNjQgNjQgNjRzNjQtMjguNyA2NC02NHoiXX0seFZlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InVwbG9hZCIsaWNvbjpbNDQ4LDUxMixbXSwiZjA5MyIsIk0yNTYgMTA5LjNMMjU2IDMyMGMwIDE3LjctMTQuMyAzMi0zMiAzMnMtMzItMTQuMy0zMi0zMmwwLTIxMC43LTQxLjQgNDEuNGMtMTIuNSAxMi41LTMyLjggMTIuNS00NS4zIDBzLTEyLjUtMzIuOCAwLTQ1LjNsOTYtOTZjMTIuNS0xMi41IDMyLjgtMTIuNSA0NS4zIDBsOTYgOTZjMTIuNSAxMi41IDEyLjUgMzIuOCAwIDQ1LjNzLTMyLjggMTIuNS00NS4zIDBMMjU2IDEwOS4zek0yMjQgNDAwYzQ0LjIgMCA4MC0zNS44IDgwLTgwbDgwIDBjMzUuMyAwIDY0IDI4LjcgNjQgNjRsMCAzMmMwIDM1LjMtMjguNyA2NC02NCA2NEw2NCA0ODBjLTM1LjMgMC02NC0yOC43LTY0LTY0bDAtMzJjMC0zNS4zIDI4LjctNjQgNjQtNjRsODAgMGMwIDQ0LjIgMzUuOCA4MCA4MCA4MHptMTQ0IDI0YTI0IDI0IDAgMSAwIDAtNDggMjQgMjQgMCAxIDAgMCA0OHoiXX0sT209e3ByZWZpeDoiZmFzIixpY29uTmFtZToidXNlci1zbGFzaCIsaWNvbjpbNTc2LDUxMixbNjI3MTQsInVzZXItYWx0LXNsYXNoIiwidXNlci1sYXJnZS1zbGFzaCJdLCJmNTA2IiwiTTQxLTI0LjljLTkuNC05LjQtMjQuNi05LjQtMzMuOSAwUy0yLjMtLjMgNyA5LjFsNTI4IDUyOGM5LjQgOS40IDI0LjYgOS40IDMzLjkgMHM5LjQtMjQuNiAwLTMzLjlMMzExLjUgMjQ1LjdjNTUtMTAuOSA5Ni41LTU5LjUgOTYuNS0xMTcuNyAwLTY2LjMtNTMuNy0xMjAtMTIwLTEyMC01OC4yIDAtMTA2LjggNDEuNS0xMTcuNyA5Ni41TDQxLTI0Ljl6TTIzNS42IDMwNS40QzE0Ny45IDMxNi42IDgwIDM5MS41IDgwIDQ4Mi4zIDgwIDQ5OC43IDkzLjMgNTEyIDEwOS43IDUxMmwzMzIuNSAwLTIwNi42LTIwNi42eiJdfSx3VmU9T20sTVZlPU9tLHpWZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJhcnJvdy1sZWZ0IixpY29uOls1MTIsNTEyLFs4NTkyXSwiZjA2MCIsIk05LjQgMjMzLjRjLTEyLjUgMTIuNS0xMi41IDMyLjggMCA0NS4zbDE2MCAxNjBjMTIuNSAxMi41IDMyLjggMTIuNSA0NS4zIDBzMTIuNS0zMi44IDAtNDUuM0wxMDkuMyAyODggNDgwIDI4OGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMmwtMzcwLjcgMCAxMDUuNC0xMDUuNGMxMi41LTEyLjUgMTIuNS0zMi44IDAtNDUuM3MtMzIuOC0xMi41LTQ1LjMgMGwtMTYwIDE2MHoiXX0sa1ZlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InZpYWwtdmlydXMiLGljb246WzU3Niw1MTIsW10sImU1OTciLCJNNjQgMzJDNjQgMTQuMyA3OC4zIDAgOTYgMEwzMjAgMGMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMmwwIDE1MS43Yy0xOC41IDAtMzcgNy01MS4xIDIxLjEtMjEuNiAyMS42LTI2LjYgNTMuNi0xNSA3OS45LTI2LjkgMTAuNC00NS45IDM2LjYtNDUuOSA2Ny4xczE5IDU2LjcgNDUuOSA2Ny4xYy03LjMgMTYuNS04IDM1LjItMi4zIDUyLjItMTMuNCA1LjctMjguMiA4LjgtNDMuNiA4LjgtNjEuOSAwLTExMi01MC4xLTExMi0xMTJMOTYgNjRDNzguMyA2NCA2NCA0OS43IDY0IDMyem05NiAzMmwwIDEyOCA5NiAwIDAtMTI4LTk2IDB6TTI4MCA0MDhjLTEzLjMgMC0yNC0xMC43LTI0LTI0czEwLjctMjQgMjQtMjRjMjguOCAwIDQzLjItMzQuOCAyMi45LTU1LjItOS40LTkuNC05LjQtMjQuNiAwLTMzLjlzMjQuNi05LjQgMzMuOSAwYzIwLjQgMjAuNCA1NS4yIDUuOSA1NS4yLTIyLjkgMC0xMy4zIDEwLjctMjQgMjQtMjRzMjQgMTAuNyAyNCAyNGMwIDI4LjggMzQuOCA0My4yIDU1LjIgMjIuOSA5LjQtOS40IDI0LjYtOS40IDMzLjkgMHM5LjQgMjQuNiAwIDMzLjljLTIwLjQgMjAuNC01LjkgNTUuMiAyMi45IDU1LjIgMTMuMyAwIDI0IDEwLjcgMjQgMjRzLTEwLjcgMjQtMjQgMjRjLTI4LjggMC00My4yIDM0LjgtMjIuOSA1NS4yIDkuNCA5LjQgOS40IDI0LjYgMCAzMy45cy0yNC42IDkuNC0zMy45IDBjLTIwLjQtMjAuNC01NS4yLTUuOS01NS4yIDIyLjkgMCAxMy4zLTEwLjcgMjQtMjQgMjRzLTI0LTEwLjctMjQtMjRjMC0yOC44LTM0LjgtNDMuMi01NS4yLTIyLjktOS40IDkuNC0yNC42IDkuNC0zMy45IDBzLTkuNC0yNC42IDAtMzMuOWMyMC40LTIwLjQgNS45LTU1LjItMjIuOS01NS4yem0xMDQtMzJhMjQgMjQgMCAxIDAgMC00OCAyNCAyNCAwIDEgMCAwIDQ4em04OCA0MGEyNCAyNCAwIDEgMCAtNDggMCAyNCAyNCAwIDEgMCA0OCAweiJdfSxTVmU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiY2hlY2stZG91YmxlIixpY29uOlszODQsNTEyLFtdLCJmNTYwIiwiTTI0OS45IDY2LjhjMTAuNC0xNC4zIDcuMi0zNC4zLTcuMS00NC43cy0zNC4zLTcuMi00NC43IDcuMWwtMTA2IDE0NS43LTM3LjUtMzcuNWMtMTIuNS0xMi41LTMyLjgtMTIuNS00NS4zIDBzLTEyLjUgMzIuOCAwIDQ1LjNsNjQgNjRjNi42IDYuNiAxNS44IDEwIDI1LjEgOS4zczE3LjktNS41IDIzLjQtMTMuMWwxMjgtMTc2em0xMjggMTM2YzEwLjQtMTQuMyA3LjItMzQuMy03LjEtNDQuN3MtMzQuMy03LjItNDQuNyA3LjFsLTE3MCAyMzMuNy02OS41LTY5LjVjLTEyLjUtMTIuNS0zMi44LTEyLjUtNDUuMyAwcy0xMi41IDMyLjggMCA0NS4zbDk2IDk2YzYuNiA2LjYgMTUuOCAxMCAyNS4xIDkuM3MxNy45LTUuNSAyMy40LTEzLjFsMTkyLTI2NHoiXX0sQ1ZlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InBhdyIsaWNvbjpbNTEyLDUxMixbXSwiZjFiMCIsIk0yMzQuNSA5Mi45YzE0LjMgNDIuOS0uMyA4Ni4yLTMyLjYgOTYuOHMtNzAuMS0xNS42LTg0LjQtNTguNSAuMy04Ni4yIDMyLjYtOTYuOCA3MC4xIDE1LjYgODQuNCA1OC41ek0xMDAuNCAxOTguNmMxOC45IDMyLjQgMTQuMyA3MC4xLTEwLjIgODQuMXMtNTkuNy0uOS03OC41LTMzLjMtMTQuMy03MC4xIDEwLjItODQuMSA1OS43IC45IDc4LjUgMzMuM3pNNjkuMiA0MDEuMkMxMjEuNiAyNTkuOSAyMTQuNyAyMjQgMjU2IDIyNHMxMzQuNCAzNS45IDE4Ni44IDE3Ny4yYzMuNiA5LjcgNS4yIDIwLjEgNS4yIDMwLjVsMCAxLjZjMCAyNS44LTIwLjkgNDYuNy00Ni43IDQ2LjctMTEuNSAwLTIyLjktMS40LTM0LTQuMmwtODgtMjJjLTE1LjMtMy44LTMxLjMtMy44LTQ2LjYgMGwtODggMjJjLTExLjEgMi44LTIyLjUgNC4yLTM0IDQuMi0yNS44IDAtNDYuNy0yMC45LTQ2LjctNDYuN2wwLTEuNmMwLTEwLjQgMS42LTIwLjggNS4yLTMwLjV6TTQyMS44IDI4Mi43Yy0yNC41LTE0LTI5LjEtNTEuNy0xMC4yLTg0LjFzNTQtNDcuMyA3OC41LTMzLjMgMjkuMSA1MS43IDEwLjIgODQuMS01NCA0Ny4zLTc4LjUgMzMuM3pNMzEwLjEgMTg5LjdjLTMyLjMtMTAuNi00Ni45LTUzLjktMzIuNi05Ni44czUyLjEtNjkuMSA4NC40LTU4LjUgNDYuOSA1My45IDMyLjYgOTYuOC01Mi4xIDY5LjEtODQuNCA1OC41eiJdfSxSbT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJoZWxtZXQtc2FmZXR5IixpY29uOls1NzYsNTEyLFsiaGFyZC1oYXQiLCJoYXQtaGFyZCJdLCJmODA3IiwiTTM1MiAyNjRsMC0yMDBjMC0xNy43LTE0LjMtMzItMzItMzJsLTY0IDBjLTE3LjcgMC0zMiAxNC4zLTMyIDMybDAgMjAwYzAgMTMuMy0xMC43IDI0LTI0IDI0cy0yNC0xMC43LTI0LTI0bDAtMTg1LjlDOTAgMTA5LjggMzIgMTkxLjggMzIgMjg4bDAgNjQgNTEyIDAgMC02NGMtMS05NS4yLTU4LjQtMTc3LjctMTQ0LTIwOS44TDQwMCAyNjRjMCAxMy4zLTEwLjcgMjQtMjQgMjRzLTI0LTEwLjctMjQtMjR6TTQwIDQwMGMtMjIuMSAwLTQwIDE3LjktNDAgNDBzMTcuOSA0MCA0MCA0MGw0OTYgMGMyMi4xIDAgNDAtMTcuOSA0MC00MHMtMTcuOS00MC00MC00MEw0MCA0MDB6Il19LF9WZT1SbSxUVmU9Um0sTFZlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImUiLGljb246WzMyMCw1MTIsWzEwMV0sIjQ1IiwiTTMyIDMyQzE0LjMgMzIgMCA0Ni4zIDAgNjRMMCA0NDhjMCAxNy43IDE0LjMgMzIgMzIgMzJsMjU2IDBjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJsLTIyNCAwIDAtMTI4IDE2MCAwYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMybC0xNjAgMCAwLTEyOCAyMjQgMGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMkwzMiAzMnoiXX0scUI9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZmFjZS1sYXVnaC1zcXVpbnQiLGljb246WzUxMiw1MTIsWyJsYXVnaC1zcXVpbnQiXSwiZjU5YiIsIk0yNTYgNTEyYTI1NiAyNTYgMCAxIDAgMC01MTIgMjU2IDI1NiAwIDEgMCAwIDUxMnpNMTA3LjcgMzMyLjFDMTAyIDMxOCAxMTMuNCAzMDQgMTI4LjYgMzA0bDI1NC45IDBjMTUuMiAwIDI2LjYgMTQgMjAuOSAyOC4xLTIzLjggNTguNi04MS4yIDk5LjktMTQ4LjMgOTkuOXMtMTI0LjYtNDEuMy0xNDguMy05OS45em0xNS0xODguOGM0LjUtNi44IDEzLjMtOS4yIDIwLjYtNS41bDc5LjYgNDBjNS40IDIuNyA4LjggOC4yIDguOCAxNC4zcy0zLjQgMTEuNi04LjggMTQuM2wtNzkuNiA0MGMtNy4zIDMuNi0xNi4xIDEuMy0yMC42LTUuNXMtMy4xLTE1LjkgMy4xLTIxLjFMMTU5IDE5MiAxMjUuOCAxNjQuM2MtNi4yLTUuMi03LjYtMTQuMy0zLjEtMjEuMXptMjYzLjYgMjEuMUwzNTMgMTkyIDM4Ni4yIDIxOS43YzYuMiA1LjIgNy42IDE0LjMgMy4xIDIxLjFzLTEzLjMgOS4yLTIwLjYgNS41bC03OS42LTQwYy01LjQtMi43LTguOC04LjItOC44LTE0LjNzMy40LTExLjYgOC44LTE0LjNsNzkuNi00MGM3LjMtMy42IDE2LjEtMS4zIDIwLjYgNS41czMuMSAxNS45LTMuMSAyMS4xeiJdfSwkVmU9cUIsVkI9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZG93bi1sZWZ0LWFuZC11cC1yaWdodC10by1jZW50ZXIiLGljb246WzUxMiw1MTIsWyJjb21wcmVzcy1hbHQiXSwiZjQyMiIsIk00MzkuNSA3YzkuNC05LjQgMjQuNi05LjQgMzMuOSAwbDMyIDMyYzkuNCA5LjQgOS40IDI0LjYgMCAzMy45bC04NyA4NyAzOSAzOWM2LjkgNi45IDguOSAxNy4yIDUuMiAyNi4yUzQ1MC4yIDI0MCA0NDAuNSAyNDBsLTE0NCAwYy0xMy4zIDAtMjQtMTAuNy0yNC0yNGwwLTE0NGMwLTkuNyA1LjgtMTguNSAxNC44LTIyLjJzMTkuMy0xLjcgMjYuMiA1LjJsMzkgMzkgODctODd6TTcyLjUgMjcybDE0NCAwYzEzLjMgMCAyNCAxMC43IDI0IDI0bDAgMTQ0YzAgOS43LTUuOCAxOC41LTE0LjggMjIuMnMtMTkuMyAxLjctMjYuMi01LjJsLTM5LTM5LTg3IDg3Yy05LjQgOS40LTI0LjYgOS40LTMzLjkgMGwtMzItMzJjLTkuNC05LjQtOS40LTI0LjYgMC0zMy45bDg3LTg3LTM5LTM5Yy02LjktNi45LTguOS0xNy4yLTUuMi0yNi4yUzYyLjggMjcyIDcyLjUgMjcyeiJdfSxBVmU9VkIsRFZlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImdpZnRzIixpY29uOls1NzYsNTEyLFtdLCJmNzljIiwiTTIwMi0zMC42YzEyLjUgNC40IDE5IDE4LjEgMTQuNiAzMC42bC04LjIgMjMuMSAyNS40LTE4LjVjMTAuNy03LjggMjUuNy01LjQgMzMuNSA1LjNzNS40IDI1LjctNS4zIDMzLjVMMjMzLjggNjQgMjcyIDY0YzI2LjUgMCA0OCAyMS41IDQ4IDQ4bDAgMi4xYy01NC43IDEwLjQtOTYgNTguNC05NiAxMTZsMCAxLjljMCA4LjkgMSAxNy41IDIuOCAyNS45LTExLjkgMTcuOC0xOC44IDM5LjEtMTguOCA2Mi4xbDAgMTI4YzAgMjMuOCA3LjQgNDUuOSAyMC4xIDY0TDQ4IDUxMmMtMjYuNSAwLTQ4LTIxLjUtNDgtNDhMMCAxMTJDMCA4NS41IDIxLjUgNjQgNDggNjRsMzguMiAwLTI4LjMtMjAuNkM0Ny4yIDM1LjYgNDQuOCAyMC42IDUyLjYgOS45Uzc1LjQtMy4yIDg2LjEgNC42bDI3LjQgMjAtOC4zLTI1QzEwMS0xMyAxMDcuOC0yNi42IDEyMC40LTMwLjhzMjYuMiAyLjYgMzAuNCAxNS4ybDkuOSAyOS44IDEwLjctMzAuMmM0LjQtMTIuNSAxOC4xLTE5IDMwLjYtMTQuNnpNNDg5LjkgMjA4Yy03LjUgMC0xNC41IDMuOC0xOC42IDEwLjFMNDQ2LjkgMjU2IDQ4OCAyNTZjMTMuMyAwIDI0LTEwLjcgMjQtMjRsMC0xLjljMC0xMi4yLTkuOS0yMi4xLTIyLjEtMjIuMXpNMzg1LjEgMjU2bC0yNC40LTM3LjljLTQuMS02LjMtMTEuMS0xMC4xLTE4LjYtMTAuMS0xMi4yIDAtMjIuMSA5LjktMjIuMSAyMi4xbDAgMS45YzAgMTMuMyAxMC43IDI0IDI0IDI0bDQxLjEgMHpNMjgxLjkgMjY4LjVjLTYuMy0xMC43LTkuOS0yMy4yLTkuOS0zNi41bDAtMS45YzAtMzguNyAzMS40LTcwLjEgNzAuMS03MC4xIDIzLjggMCA0NiAxMi4xIDU4LjkgMzIuMWwxNSAyMy4yIDE1LTIzLjJjMTIuOS0yMCAzNS4xLTMyLjEgNTguOS0zMi4xIDM4LjcgMCA3MC4xIDMxLjQgNzAuMSA3MC4xbDAgMS45YzAgMTMuMy0zLjYgMjUuOC05LjkgMzYuNSAxNS43IDExLjcgMjUuOSAzMC40IDI1LjkgNTEuNWwwIDEyOGMwIDM1LjMtMjguNyA2NC02NCA2NGwtNzIgMCAwLTIwOC00OCAwIDAgMjA4LTcyIDBjLTM1LjMgMC02NC0yOC43LTY0LTY0bDAtMTI4YzAtMjEuMSAxMC4yLTM5LjggMjUuOS01MS41eiJdfSxFVmU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiYmVkIixpY29uOls1NzYsNTEyLFsxMjg3MTZdLCJmMjM2IiwiTTMyIDMyYzE3LjcgMCAzMiAxNC4zIDMyIDMybDAgMjI0IDIyNCAwIDAtMTI4YzAtMTcuNyAxNC4zLTMyIDMyLTMybDE2MCAwYzUzIDAgOTYgNDMgOTYgOTZsMCAyMjRjMCAxNy43LTE0LjMgMzItMzIgMzJzLTMyLTE0LjMtMzItMzJsMC02NC00NDggMCAwIDY0YzAgMTcuNy0xNC4zIDMyLTMyIDMyUzAgNDY1LjcgMCA0NDhMMCA2NEMwIDQ2LjMgMTQuMyAzMiAzMiAzMnptODAgMTYwYTY0IDY0IDAgMSAxIDEyOCAwIDY0IDY0IDAgMSAxIC0xMjggMHoiXX0sUFZlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6Im1vbmV5LWJpbGwtdHJhbnNmZXIiLGljb246WzY0MCw1MTIsW10sImU1MjgiLCJNMzEgMTA1Yy05LjQtOS40LTkuNC0yNC42IDAtMzMuOUwxMDMtMWM5LjQtOS40IDI0LjYtOS40IDMzLjkgMHM5LjQgMjQuNiAwIDMzLjlsLTMxIDMxIDY3LjcgMCAwIDAgMzM4LjMgMGMzNS4zIDAgNjQgMjguNyA2NCA2NGwwIDE3OC4yLTUuMS01LjFjLTI4LjEtMjguMS03My43LTI4LjEtMTAxLjggMC0yNy4yIDI3LjItMjguMSA3MC42LTIuOCA5OC45bDY3LjcgMC0zMS0zMWMtOS40LTkuNC05LjQtMjQuNiAwLTMzLjlzMjQuNi05LjQgMzMuOSAwbDcyIDcyYzkuNCA5LjQgOS40IDI0LjYgMCAzMy45bC03MiA3MmMtOS40IDkuNC0yNC42IDkuNC0zMy45IDBzLTkuNC0yNC42IDAtMzMuOWwzMS0zMS00MDYuMSAwYy0zNS4zIDAtNjQtMjguNy02NC02NGwwLTE3OC4yIDUuMSA1LjFjMjguMSAyOC4xIDczLjcgMjguMSAxMDEuOCAwIDI3LjItMjcuMiAyOC4xLTcwLjYgMi44LTk4LjlsLTY3LjcgMCAzMSAzMWM5LjQgOS40IDkuNCAyNC42IDAgMzMuOXMtMjQuNiA5LjQtMzMuOSAwTDMxIDEwNXpNNDE2IDI1NmE5NiA5NiAwIDEgMCAtMTkyIDAgOTYgOTYgMCAxIDAgMTkyIDB6bTg4LTY0LjVjNC40IC41IDgtMy4xIDgtNy41bDAtNDhjMC00LjQtMy42LTgtOC04bC00OCAwYy00LjQgMC04LjEgMy42LTcuNSA4IDMuNiAyOSAyNi42IDUxLjkgNTUuNSA1NS41em0tMzY4IDEyOWMtNC40LS41LTggMy4xLTggNy41bDAgNDhjMCA0LjQgMy42IDggOCA4bDQ4IDBjNC40IDAgOC4xLTMuNiA3LjUtOC0zLjYtMjktMjYuNi01MS45LTU1LjUtNTUuNXoiXX0sakI9e3ByZWZpeDoiZmFzIixpY29uTmFtZToicGVyc29uLXJ1bm5pbmciLGljb246WzQ0OCw1MTIsWzEyNzkzOSwicnVubmluZyJdLCJmNzBjIiwiTTI1Ni41LTMyYTU2IDU2IDAgMSAxIDAgMTEyIDU2IDU2IDAgMSAxIDAtMTEyek0xMjMuNiAxNzZjLTMuMyAwLTYuMiAyLTcuNCA1TDk0LjIgMjM1LjljLTYuNiAxNi40LTI1LjIgMjQuNC00MS42IDE3LjhzLTI0LjQtMjUuMi0xNy44LTQxLjZsMjEuOS01NC45QzY3LjcgMTI5LjkgOTQuMSAxMTIgMTIzLjYgMTEybDk3LjMgMGMyOC41IDAgNTQuOCAxNS4xIDY5LjEgMzkuN2wzMi44IDU2LjMgNjEuNiAwYzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMybC02MS42IDBjLTIyLjggMC00My44LTEyLjEtNTUuMy0zMS44bC0xMC0xNy4xLTIwLjcgNzAuNCA3NS40IDIyLjZjMjcuNyA4LjMgNDEuOCAzOSAzMC4xIDY1LjVMMjg1LjcgNTA5Yy03LjIgMTYuMi0yNi4xIDIzLjQtNDIuMiAxNi4ycy0yMy40LTI2LjEtMTYuMi00Mi4ybDQ5LjItMTEwLjgtOTUuOS0yOC44Yy0zMi43LTkuOC01Mi00My43LTQzLjctNzYuOGwyMi43LTkwLjYtMzUuOSAwem0tOCAxODFjMTMuMyAxNC45IDMwLjcgMjYuMyA1MS4yIDMyLjRsNC43IDEuNC02LjkgMTkuM2MtNS44IDE2LjMtMTYgMzAuOC0yOS4zIDQxLjhMNTIuOSA1MTkuOGMtMTMuNiAxMS4yLTMzLjggOS4zLTQ1LTQuM3MtOS4zLTMzLjggNC4zLTQ1bDgyLjQtNjcuOWM0LjUtMy43IDcuOC04LjUgOS44LTEzLjlMMTE1LjYgMzU3eiJdfSxJVmU9akIsVUI9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiY2lyY2xlLWNoZXZyb24tZG93biIsaWNvbjpbNTEyLDUxMixbImNoZXZyb24tY2lyY2xlLWRvd24iXSwiZjEzYSIsIk0yNTYgMGEyNTYgMjU2IDAgMSAwIDAgNTEyIDI1NiAyNTYgMCAxIDAgMC01MTJ6TTEzNSAyNDFjLTkuNC05LjQtOS40LTI0LjYgMC0zMy45czI0LjYtOS40IDMzLjkgMGw4NyA4NyA4Ny04N2M5LjQtOS40IDI0LjYtOS40IDMzLjkgMHM5LjQgMjQuNiAwIDMzLjlMMjczIDM0NWMtOS40IDkuNC0yNC42IDkuNC0zMy45IDBMMTM1IDI0MXoiXX0sTlZlPVVCLEZWZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJ1c2VyLW51cnNlIixpY29uOls0NDgsNTEyLFtdLCJmODJmIiwiTTk2IDQ0LjljMC0xMi43IDcuNS0yNC4yIDE5LjItMjkuM2w5Ni00MmM4LjItMy42IDE3LjUtMy42IDI1LjcgMGw5NiA0MkMzNDQuNSAyMC43IDM1MiAzMi4yIDM1MiA0NC45bDAgOTkuMWMwIDcwLjctNTcuMyAxMjgtMTI4IDEyOFM5NiAyMTQuNyA5NiAxNDRsMC05OS4xek0zMDQgMTI4bC0xMTEuNiAwLS40IDAtNDggMCAwIDE2YzAgNDQuMiAzNS44IDgwIDgwIDgwczgwLTM1LjggODAtODBsMC0xNnpNMjA4IDE2bDAgMTYtMTYgMGMtNC40IDAtOCAzLjYtOCA4bDAgMTZjMCA0LjQgMy42IDggOCA4bDE2IDAgMCAxNmMwIDQuNCAzLjYgOCA4IDhsMTYgMGM0LjQgMCA4LTMuNiA4LThsMC0xNiAxNiAwYzQuNCAwIDgtMy42IDgtOGwwLTE2YzAtNC40LTMuNi04LTgtOGwtMTYgMCAwLTE2YzAtNC40LTMuNi04LTgtOEwyMTYgOGMtNC40IDAtOCAzLjYtOCA4ek0xNDIuNiAzMjNjLTYuNS00LjktMTUuMi02LjItMjIuNi0yLjgtNjEuNCAyOC4yLTEwNC4xIDkwLjItMTA0LjEgMTYyLjEgMCAxNi40IDEzLjMgMjkuNyAyOS43IDI5LjdsMzU2LjYgMGMxNi40IDAgMjkuNy0xMy4zIDI5LjctMjkuNyAwLTcyLTQyLjctMTM0LTEwNC4xLTE2Mi4xLTcuNC0zLjQtMTYuMS0yLjEtMjIuNiAyLjhsLTY3IDUwLjJjLTguNSA2LjQtMjAuMyA2LjQtMjguOCAwbC02Ny01MC4yeiJdfSxXQj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJmYWNlLWtpc3Mtd2luay1oZWFydCIsaWNvbjpbNjQwLDUxMixbMTI4NTM2LCJraXNzLXdpbmstaGVhcnQiXSwiZjU5OCIsIk01NDMuNyAyNjguM2MuMi00LjEgLjMtOC4yIC4zLTEyLjMgMC0xNDEuNC0xMTQuNi0yNTYtMjU2LTI1NlMzMiAxMTQuNiAzMiAyNTYgMTQ2LjYgNTEyIDI4OCA1MTJjNDEuNCAwIDgwLjUtOS44IDExNS4xLTI3LjMtNy42LTE3LjEtMTYuMS0zOC44LTIxLjgtNjEuNy03LjctMzAuNS0xNC4xLTc2LjIgOC4yLTExNC43bDIuNy00LjZjMjkuNS01MSA5NC43LTY4LjUgMTQ1LjctMzkgMiAxLjIgNCAyLjQgNS45IDMuN3pNMjQwIDMwNGMwLTguOCA3LjItMTYgMTYtMTZsMzIgMGMyNi41IDAgNDggMjEuNSA0OCA0OCAwIDEyLjMtNC42IDIzLjUtMTIuMiAzMiA3LjYgOC41IDEyLjIgMTkuNyAxMi4yIDMyIDAgMjYuNS0yMS41IDQ4LTQ4IDQ4bC0zMiAwYy04LjggMC0xNi03LjItMTYtMTZzNy4yLTE2IDE2LTE2bDE2IDBjOC44IDAgMTYtNy4yIDE2LTE2cy03LjItMTYtMTYtMTZsLTE2IDBjLTguOCAwLTE2LTcuMi0xNi0xNnM3LjItMTYgMTYtMTZsMTYgMGM4LjggMCAxNi03LjIgMTYtMTZzLTcuMi0xNi0xNi0xNmwtMTYgMGMtOC44IDAtMTYtNy4yLTE2LTE2ek0yMDggMTc2YTMyIDMyIDAgMSAxIDAgNjQgMzIgMzIgMCAxIDEgMC02NHptMTUyIDIwYy0xMSAwLTIwIDktMjAgMjBzLTkgMjAtMjAgMjAtMjAtOS0yMC0yMGMwLTMzLjEgMjYuOS02MCA2MC02MGwxNiAwYzMzLjEgMCA2MCAyNi45IDYwIDYwIDAgMTEtOSAyMC0yMCAyMHMtMjAtOS0yMC0yMC05LTIwLTIwLTIwbC0xNiAwek01NDIuOCAzNTBjLTIuMi0xOC4zLTEyLjktMzQuNi0yOC45LTQzLjgtMjguMS0xNi4yLTYzLjktNi42LTgwLjEgMjEuNWwtMi43IDQuNmMtMjQuNSA0Mi41IDcuOSAxMTcuOSAyNC40IDE1MC44IDUuMSAxMC4xIDE1LjUgMTYuMSAyNi44IDE1LjUgMzYuNy0yLjIgMTE4LjItMTEuNyAxNDIuOC01NC4ybDIuNy00LjZjMTYuMi0yOC4xIDYuNi02My45LTIxLjUtODAuMS0xNi05LjItMzUuNC0xMC40LTUyLjQtMy4xbC05LjggNC4yLTEuMy0xMC42eiJdfSxPVmU9V0IsUlZlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImZpbGwiLGljb246WzUxMiw1MTIsW10sImY1NzUiLCJNMjk2IDY0YzYuOSAwIDEzLjUgMi43IDE4LjMgNy42TDQ0MC40IDE5Ny43YzQuOSA0LjkgNy42IDExLjUgNy42IDE4LjNzLTIuNyAxMy41LTcuNiAxOC4zTDM4Ni43IDI4OCA2NS4zIDI4OGMxLjMtMy45IDMuNC03LjQgNi4zLTEwLjNsOTYuNC05Ni40IDMzLjQgMzMuNGMxMi41IDEyLjUgMzIuOCAxMi41IDQ1LjMgMHMxMi41LTMyLjggMC00NS4zTDIxMy4zIDEzNiAyNzcuNyA3MS42YzQuOS00LjkgMTEuNS03LjYgMTguMy03LjZ6TTEyMi43IDEzNkwyNi4zIDIzMi40QzkuNSAyNDkuMyAwIDI3Mi4xIDAgMjk2czkuNSA0Ni43IDI2LjMgNjMuNkwxNTIuNCA0ODUuN0MxNjkuMyA1MDIuNSAxOTIuMSA1MTIgMjE2IDUxMnM0Ni43LTkuNSA2My42LTI2LjNMNDg1LjcgMjc5LjZDNTAyLjUgMjYyLjcgNTEyIDIzOS45IDUxMiAyMTZzLTkuNS00Ni43LTI2LjMtNjMuNkwzNTkuNiAyNi4zQzM0Mi43IDkuNSAzMTkuOSAwIDI5NiAwcy00Ni43IDkuNS02My42IDI2LjNMMTY4IDkwLjcgMTE4LjYgNDEuNGMtMTIuNS0xMi41LTMyLjgtMTIuNS00NS4zIDBzLTEyLjUgMzIuOCAwIDQ1LjNMMTIyLjcgMTM2eiJdfSxHQj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJtb25leS1iaWxsLTEtd2F2ZSIsaWNvbjpbNTEyLDUxMixbIm1vbmV5LWJpbGwtd2F2ZS1hbHQiXSwiZjUzYiIsIk0wIDEwOS41TDAgNDE5LjZjMCAxOS40IDExLjggMzcuMyAzMC4zIDQzLjMgOTQgMzAgMTU4LjggOC40IDIyMy4zLTEzLjEgNjIuNC0yMC44IDEyNC40LTQxLjUgMjEyLjEtMTUuMyAyMi4yIDYuNiA0Ni4yLTguOCA0Ni4yLTMybDAtMzEwLjFjMC0xOS40LTExLjgtMzcuMy0zMC4zLTQzLjMtOTQtMzAtMTU4LjgtOC40LTIyMy4zIDEzLjEtNjIuNCAyMC44LTEyNC40IDQxLjUtMjEyLjEgMTUuMy0yMi4yLTYuNi00Ni4zIDguOC00Ni4zIDMyek0yNTYgMzY4Yy01MyAwLTk2LTUwLjEtOTYtMTEyczQzLTExMiA5Ni0xMTIgOTYgNTAuMSA5NiAxMTItNDMgMTEyLTk2IDExMnpNMTI3LjEgNDA1LjVjLjcgNC40LTIuOCA4LjEtNy4yIDguMS0xNS43IDAtMzIuMS0xLjgtNTAtNi4xLTMuNS0uOC02LTQtNi03LjdMNjQgMzYwYzAtNC40IDMuNi04LjEgOC03LjUgMjguMSAzLjUgNTAuNiAyNS4yIDU1LjIgNTN6TTQ0OCAzNTQuNmMwIDUtNC42IDguOC05LjUgOC0xNS40LTIuNS0zMC4yLTMuOS00NC40LTQuMy00LjktLjEtOC43LTQuNS03LjItOS4yIDcuMy0yMy43IDI4LTQxLjQgNTMuMi00NC42IDQuNC0uNSA4IDMuMSA4IDcuNWwwIDQyLjZ6bS04LTE5NS4xYy0yOC4xLTMuNS01MC42LTI1LjItNTUuMi01My0uNy00LjQgMi44LTguMSA3LjItOC4xIDE1LjcgMCAzMi4xIDEuOCA1MCA2LjEgMy41IC44IDYgNCA2IDcuN2wwIDM5LjljMCA0LjQtMy42IDguMS04IDcuNXptLTMyMi4xLTUuOGM0LjkgLjEgOC43IDQuNSA3LjIgOS4yLTcuMyAyMy43LTI4IDQxLjQtNTMuMiA0NC42LTQuNCAuNS04LTMuMS04LTcuNWwwLTQyLjZjMC01IDQuNi04LjggOS41LTggMTUuNCAyLjUgMzAuMiAzLjkgNDQuNCA0LjN6TTI0MCAxODhjLTExIDAtMjAgOS0yMCAyMCAwIDkuNyA2LjkgMTcuNyAxNiAxOS42bDAgNDguNC00IDBjLTExIDAtMjAgOS0yMCAyMHM5IDIwIDIwIDIwbDQ4IDBjMTEgMCAyMC05IDIwLTIwcy05LTIwLTIwLTIwbC00IDAgMC02OGMwLTExLTktMjAtMjAtMjBsLTE2IDB6Il19LEJWZT1HQixIVmU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToibGFuZG1hcmsiLGljb246WzUxMiw1MTIsWzEyNzk2M10sImY2NmYiLCJNMjM4LjcgNS4xYzEwLjUtNi44IDI0LjEtNi44IDM0LjYgMGwyMjQgMTQ0YzExLjkgNy43IDE3LjQgMjIuMyAxMy40IDM1LjlzLTE2LjUgMjMtMzAuNyAyM2wtMzIgMCAwIDIwOCA1MS4yIDM4LjRjOC4xIDYgMTIuOCAxNS41IDEyLjggMjUuNiAwIDE3LjctMTQuMyAzMi0zMiAzMkwzMiA1MTJjLTE3LjcgMC0zMi0xNC4zLTMyLTMyIDAtMTAuMSA0LjctMTkuNiAxMi44LTI1LjZsNTEuMi0zOC40IDAgMCAwLTIwOC0zMiAwYy0xNC4yIDAtMjYuNy05LjQtMzAuNy0yM3MxLjUtMjguMyAxMy40LTM1LjlsMjI0LTE0NHpNMzM2IDIwOGwwIDIwOCA2NCAwIDAtMjA4LTY0IDB6TTIyNCA0MTZsNjQgMCAwLTIwOC02NCAwIDAgMjA4ek0xMTIgMjA4bDAgMjA4IDY0IDAgMC0yMDgtNjQgMHoiXX0scVZlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6Im11c2ljIixpY29uOls1MTIsNTEyLFsxMjc5MjVdLCJmMDAxIiwiTTQ2OCA3YzcuNiA2LjEgMTIgMTUuMyAxMiAyNWwwIDMwNGMwIDQ0LjItNDMgODAtOTYgODBzLTk2LTM1LjgtOTYtODAgNDMtODAgOTYtODBjMTEuMiAwIDIyIDEuNiAzMiA0LjZsMC0xMTYuNy0yMjQgNDkuOCAwIDIwNi4zYzAgNDQuMi00MyA4MC05NiA4MHMtOTYtMzUuOC05Ni04MCA0My04MCA5Ni04MGMxMS4yIDAgMjIgMS42IDMyIDQuNkwxMjggOTZjMC0xNSAxMC40LTI4IDI1LjEtMzEuMmwyODgtNjRjOS41LTIuMSAxOS40IC4yIDI3IDYuM3oiXX0sVlZlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImJvb2stbWVkaWNhbCIsaWNvbjpbNDQ4LDUxMixbXSwiZjdlNiIsIk05NiA1MTJsMzIwIDBjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJsMC02Ni43YzE4LjYtNi42IDMyLTI0LjQgMzItNDUuM2wwLTI4OGMwLTI2LjUtMjEuNS00OC00OC00OEw5NiAwQzQzIDAgMCA0MyAwIDk2TDAgNDE2YzAgNTMgNDMgOTYgOTYgOTZ6TTY0IDQxNmMwLTE3LjcgMTQuMy0zMiAzMi0zMmwyNTYgMCAwIDY0LTI1NiAwYy0xNy43IDAtMzItMTQuMy0zMi0zMnpNMTkyIDEyMGMwLTguOCA3LjItMTYgMTYtMTZsMzIgMGM4LjggMCAxNiA3LjIgMTYgMTZsMCA0MCA0MCAwYzguOCAwIDE2IDcuMiAxNiAxNmwwIDMyYzAgOC44LTcuMiAxNi0xNiAxNmwtNDAgMCAwIDQwYzAgOC44LTcuMiAxNi0xNiAxNmwtMzIgMGMtOC44IDAtMTYtNy4yLTE2LTE2bDAtNDAtNDAgMGMtOC44IDAtMTYtNy4yLTE2LTE2bDAtMzJjMC04LjggNy4yLTE2IDE2LTE2bDQwIDAgMC00MHoiXX0sWUI9e3ByZWZpeDoiZmFzIixpY29uTmFtZToic2h1ZmZsZSIsaWNvbjpbNTEyLDUxMixbMTI4MjU2LCJyYW5kb20iXSwiZjA3NCIsIk00MDMuOCAzNC40YzEyLTUgMjUuNy0yLjIgMzQuOSA2LjlsNjQgNjRjNiA2IDkuNCAxNC4xIDkuNCAyMi42cy0zLjQgMTYuNi05LjQgMjIuNmwtNjQgNjRjLTkuMiA5LjItMjIuOSAxMS45LTM0LjkgNi45UzM4NCAyMDQuOSAzODQgMTkybDAtMzItMzIgMGMtMTAuMSAwLTE5LjYgNC43LTI1LjYgMTIuOGwtMzIuNCA0My4yLTQwLTUzLjMgMjEuMi0yOC4zQzI5My4zIDExMC4yIDMyMS44IDk2IDM1MiA5NmwzMiAwIDAtMzJjMC0xMi45IDcuOC0yNC42IDE5LjgtMjkuNnpNMTU0IDI5Nmw0MCA1My4zLTIxLjIgMjguM0MxNTQuNyA0MDEuOCAxMjYuMiA0MTYgOTYgNDE2bC02NCAwYy0xNy43IDAtMzItMTQuMy0zMi0zMnMxNC4zLTMyIDMyLTMybDY0IDBjMTAuMSAwIDE5LjYtNC43IDI1LjYtMTIuOEwxNTQgMjk2ek00MzguNiA0NzAuNmMtOS4yIDkuMi0yMi45IDExLjktMzQuOSA2LjlTMzg0IDQ2MC45IDM4NCA0NDhsMC0zMi0zMiAwYy0zMC4yIDAtNTguNy0xNC4yLTc2LjgtMzguNEwxMjEuNiAxNzIuOGMtNi04LjEtMTUuNS0xMi44LTI1LjYtMTIuOGwtNjQgMGMtMTcuNyAwLTMyLTE0LjMtMzItMzJTMTQuMyA5NiAzMiA5Nmw2NCAwYzMwLjIgMCA1OC43IDE0LjIgNzYuOCAzOC40TDMyNi40IDMzOS4yYzYgOC4xIDE1LjUgMTIuOCAyNS42IDEyLjhsMzIgMCAwLTMyYzAtMTIuOSA3LjgtMjQuNiAxOS44LTI5LjZzMjUuNy0yLjIgMzQuOSA2LjlsNjQgNjRjNiA2IDkuNCAxNC4xIDkuNCAyMi42cy0zLjQgMTYuNi05LjQgMjIuNmwtNjQgNjR6Il19LGpWZT1ZQixVVmU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToidW5kZXJsaW5lIixpY29uOlszODQsNTEyLFtdLCJmMGNkIiwiTTAgMzJDMCAxNC4zIDE0LjMgMCAzMiAwTDk2IDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJTMTEzLjcgNjQgOTYgNjRsMCAxNjBjMCA1MyA0MyA5NiA5NiA5NnM5Ni00MyA5Ni05NmwwLTE2MGMtMTcuNyAwLTMyLTE0LjMtMzItMzJTMjcwLjMgMCAyODggMGw2NCAwYzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMybDAgMTYwYzAgODguNC03MS42IDE2MC0xNjAgMTYwUzMyIDMxMi40IDMyIDIyNEwzMiA2NEMxNC4zIDY0IDAgNDkuNyAwIDMyek0wIDQ4MGMwLTE3LjcgMTQuMy0zMiAzMi0zMmwzMjAgMGMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMkwzMiA1MTJjLTE3LjcgMC0zMi0xNC4zLTMyLTMyeiJdfSxXVmU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiYnVpbGRpbmctdXNlciIsaWNvbjpbNjQwLDUxMixbXSwiZTRkYSIsIk02NCA2NEM2NCAyOC43IDkyLjcgMCAxMjggMEwzODQgMGMzNS4zIDAgNjQgMjguNyA2NCA2NGwwIDEyMS4zYy00Ni45IDE5LTgwIDY1LTgwIDExOC43IDAgMjcuNyA4LjggNTMuNCAyMy44IDc0LjQtNTEuNSAyMS04Ny44IDcxLjYtODcuOCAxMzAuNyAwIDEgMCAxLjkgMCAyLjlsLTE3NiAwYy0zNS4zIDAtNjQtMjguNy02NC02NEw2NCA2NHpNMjA4IDQwMGwwIDY0IDUzLjQgMGM3LjItMjkuNCAyMS4zLTU2LjEgNDAuNC03OC4zLTYuMS0xOS41LTI0LjMtMzMuNy00NS44LTMzLjctMjYuNSAwLTQ4IDIxLjUtNDggNDh6TTMzOSAyMjQuM2MtMS0uMi0yLS4zLTMtLjNsLTMyIDBjLTguOCAwLTE2IDcuMi0xNiAxNmwwIDMyYzAgOC44IDcuMiAxNiAxNiAxNmwxNi43IDBjMi4xLTIyLjggOC40LTQ0LjMgMTguMy02My43ek0xNzYgOTZjLTguOCAwLTE2IDcuMi0xNiAxNmwwIDMyYzAgOC44IDcuMiAxNiAxNiAxNmwzMiAwYzguOCAwIDE2LTcuMiAxNi0xNmwwLTMyYzAtOC44LTcuMi0xNi0xNi0xNmwtMzIgMHptMTEyIDE2bDAgMzJjMCA4LjggNy4yIDE2IDE2IDE2bDMyIDBjOC44IDAgMTYtNy4yIDE2LTE2bDAtMzJjMC04LjgtNy4yLTE2LTE2LTE2bC0zMiAwYy04LjggMC0xNiA3LjItMTYgMTZ6TTE3NiAyMjRjLTguOCAwLTE2IDcuMi0xNiAxNmwwIDMyYzAgOC44IDcuMiAxNiAxNiAxNmwzMiAwYzguOCAwIDE2LTcuMiAxNi0xNmwwLTMyYzAtOC44LTcuMi0xNi0xNi0xNmwtMzIgMHptMjQwIDgwYTgwIDgwIDAgMSAxIDE2MCAwIDgwIDgwIDAgMSAxIC0xNjAgMHpNMzUyIDUxMmMwLTUzIDQzLTk2IDk2LTk2bDk2IDBjNTMgMCA5NiA0MyA5NiA5NiAwIDE3LjctMTQuMyAzMi0zMiAzMmwtMjI0IDBjLTE3LjcgMC0zMi0xNC4zLTMyLTMyeiJdfSxHVmU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToicm9ib3QiLGljb246WzY0MCw1MTIsWzEyOTMwMl0sImY1NDQiLCJNMzUyIDBjMC0xNy43LTE0LjMtMzItMzItMzJTMjg4LTE3LjcgMjg4IDBsMCA2NC05NiAwYy01MyAwLTk2IDQzLTk2IDk2bDAgMjI0YzAgNTMgNDMgOTYgOTYgOTZsMjU2IDBjNTMgMCA5Ni00MyA5Ni05NmwwLTIyNGMwLTUzLTQzLTk2LTk2LTk2bC05NiAwIDAtNjR6TTE2MCAzNjhjMC0xMy4zIDEwLjctMjQgMjQtMjRsMzIgMGMxMy4zIDAgMjQgMTAuNyAyNCAyNHMtMTAuNyAyNC0yNCAyNGwtMzIgMGMtMTMuMyAwLTI0LTEwLjctMjQtMjR6bTEyMCAwYzAtMTMuMyAxMC43LTI0IDI0LTI0bDMyIDBjMTMuMyAwIDI0IDEwLjcgMjQgMjRzLTEwLjcgMjQtMjQgMjRsLTMyIDBjLTEzLjMgMC0yNC0xMC43LTI0LTI0em0xMjAgMGMwLTEzLjMgMTAuNy0yNCAyNC0yNGwzMiAwYzEzLjMgMCAyNCAxMC43IDI0IDI0cy0xMC43IDI0LTI0IDI0bC0zMiAwYy0xMy4zIDAtMjQtMTAuNy0yNC0yNHpNMjI0IDE3NmE0OCA0OCAwIDEgMSAwIDk2IDQ4IDQ4IDAgMSAxIDAtOTZ6bTE0NCA0OGE0OCA0OCAwIDEgMSA5NiAwIDQ4IDQ4IDAgMSAxIC05NiAwek02NCAyMjRjMC0xNy43LTE0LjMtMzItMzItMzJTMCAyMDYuMyAwIDIyNGwwIDk2YzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJsMC05NnptNTQ0LTMyYy0xNy43IDAtMzIgMTQuMy0zMiAzMmwwIDk2YzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJsMC05NmMwLTE3LjctMTQuMy0zMi0zMi0zMnoiXX0sYzg9e3ByZWZpeDoiZmFzIixpY29uTmFtZToicGx1cyIsaWNvbjpbNDQ4LDUxMixbMTAxMzMsNjE1NDMsImFkZCJdLCIyYiIsIk0yNTYgNjRjMC0xNy43LTE0LjMtMzItMzItMzJzLTMyIDE0LjMtMzIgMzJsMCAxNjAtMTYwIDBjLTE3LjcgMC0zMiAxNC4zLTMyIDMyczE0LjMgMzIgMzIgMzJsMTYwIDAgMCAxNjBjMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMmwwLTE2MCAxNjAgMGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMmwtMTYwIDAgMC0xNjB6Il19LFlWZT1jOCxwZz17cHJlZml4OiJmYXMiLGljb25OYW1lOiJjb3B5IixpY29uOls0NDgsNTEyLFtdLCJmMGM1IiwiTTE5MiAwYy0zNS4zIDAtNjQgMjguNy02NCA2NGwwIDI1NmMwIDM1LjMgMjguNyA2NCA2NCA2NGwxOTIgMGMzNS4zIDAgNjQtMjguNyA2NC02NGwwLTIwMC42YzAtMTcuNC03LjEtMzQuMS0xOS43LTQ2LjJMMzcwLjYgMTcuOEMzNTguNyA2LjQgMzQyLjggMCAzMjYuMyAwTDE5MiAwek02NCAxMjhjLTM1LjMgMC02NCAyOC43LTY0IDY0TDAgNDQ4YzAgMzUuMyAyOC43IDY0IDY0IDY0bDE5MiAwYzM1LjMgMCA2NC0yOC43IDY0LTY0bDAtMTYtNjQgMCAwIDE2LTE5MiAwIDAtMjU2IDE2IDAgMC02NC0xNiAweiJdfSxaVmU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiY2hlc3Mta2luZyIsaWNvbjpbNDQ4LDUxMixbOTgxOF0sImY0M2YiLCJNMjI0LTMyYzE3LjcgMCAzMiAxNC4zIDMyIDMybDAgMzIgMzIgMGMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMmwtMzIgMCAwIDY0IDE1My44IDBjMjEuMSAwIDM4LjIgMTcuMSAzOC4yIDM4LjIgMCA2LjQtMS42IDEyLjctNC43IDE4LjNMMzUyIDM4NCA0MDguMiA0NTQuM2M1IDYuMyA3LjggMTQuMSA3LjggMjIuMiAwIDE5LjYtMTUuOSAzNS41LTM1LjUgMzUuNUw2Ny41IDUxMmMtMTkuNiAwLTM1LjUtMTUuOS0zNS41LTM1LjUgMC04LjEgMi43LTE1LjkgNy44LTIyLjJMOTYgMzg0IDQuNyAyMTYuNkMxLjYgMjEwLjkgMCAyMDQuNiAwIDE5OC4yIDAgMTc3LjEgMTcuMSAxNjAgMzguMiAxNjBsMTUzLjggMCAwLTY0LTMyIDBjLTE3LjcgMC0zMi0xNC4zLTMyLTMyczE0LjMtMzIgMzItMzJsMzIgMCAwLTMyYzAtMTcuNyAxNC4zLTMyIDMyLTMyeiJdfSxYVmU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiaG91c2UtZmxvb2Qtd2F0ZXIiLGljb246WzY0MCw1MTIsW10sImU1MGUiLCJNNDk2IDIwOGw0LjUgMGMxNS4yIDAgMjcuNS0xMi4zIDI3LjUtMjcuNSAwLTcuOS0zLjQtMTUuNS05LjQtMjAuN0wzNDggMTAuNUMzNDAuMyAzLjcgMzMwLjMgMCAzMjAgMHMtMjAuMyAzLjctMjggMTAuNUwxMjEuNCAxNTkuOGMtNiA1LjItOS40IDEyLjgtOS40IDIwLjcgMCAxNS4yIDEyLjMgMjcuNSAyNy41IDI3LjVsNC41IDAgMCA5NC40YzIwLjMtOS40IDQyLjEtMTQuMiA2NC0xNC40IDMzLjEtLjIgNjYuMyAxMC4yIDk0LjQgMzEuNCAyMi4xIDE2LjYgMjkuMSAxNi42IDUxLjIgMCAyNy41LTIwLjcgNTkuOS0zMS4yIDkyLjQtMzEuNCAxNi45LS4xIDMzLjggMi42IDUwIDhsMC04OHptLTIyNC04YzAtMTMuMyAxMC43LTI0IDI0LTI0bDQ4IDBjMTMuMyAwIDI0IDEwLjcgMjQgMjRsMCA0OGMwIDEzLjMtMTAuNyAyNC0yNCAyNGwtNDggMGMtMTMuMyAwLTI0LTEwLjctMjQtMjRsMC00OHpNNDc0LjYgNDEyLjFjMTkgMTQuNCA0MS45IDI4LjIgNjcuMiAzMy4zIDI2LjUgNS40IDU0LjMgLjggODAuNy0xOS4xIDEwLjYtOCAxMi43LTIzIDQuNy0zMy42cy0yMy0xMi43LTMzLjYtNC43Yy0xNC45IDExLjItMjguNiAxMy4xLTQyLjMgMTAuMy0xNC45LTMtMzAuOS0xMS45LTQ3LjgtMjQuNi0zOC40LTI5LTkwLjUtMjktMTI5IDAtMjQgMTguMS00MC43IDI2LjMtNTQuNSAyNi4zcy0zMC41LTguMi01NC41LTI2LjNjLTM4LjQtMjktOTAuNS0yOS0xMjkgMC0yMS42IDE2LjMtNDEuMyAyNS44LTU4LjkgMjUuNy05LjYtLjEtMTkuOS0zLTMxLjItMTEuNS0xMC42LTgtMjUuNi01LjktMzMuNiA0LjdTNyA0MTguMyAxNy42IDQyNi4zYzE5LjEgMTQuNCAzOS40IDIxIDU5LjggMjEuMSAzMy45IC4yIDY0LjMtMTcuNCA4OC4xLTM1LjMgMjEuMy0xNi4xIDQ5LjktMTYuMSA3MS4yIDAgMjQuMiAxOC4zIDUyLjMgMzUuOSA4My40IDM1LjlzNTkuMS0xNy43IDgzLjQtMzUuOWMyMS4zLTE2LjEgNDkuOS0xNi4xIDcxLjIgMHptLTcxLjIgOTZjMjEuMy0xNi4xIDQ5LjktMTYuMSA3MS4yIDAgMTkgMTQuNCA0MS45IDI4LjIgNjcuMiAzMy4zIDI2LjUgNS40IDU0LjMgLjggODAuNy0xOS4xIDEwLjYtOCAxMi43LTIzIDQuNy0zMy42cy0yMy0xMi43LTMzLjYtNC43Yy0xNC45IDExLjItMjguNiAxMy4xLTQyLjMgMTAuMy0xNC45LTMtMzAuOS0xMS45LTQ3LjgtMjQuNi0zOC40LTI5LTkwLjUtMjktMTI5IDAtMjQgMTguMS00MC43IDI2LjMtNTQuNSAyNi4zcy0zMC41LTguMi01NC41LTI2LjNjLTM4LjQtMjktOTAuNS0yOS0xMjkgMC0yMS42IDE2LjMtNDEuMyAyNS44LTU4LjkgMjUuNy05LjYtLjEtMTkuOS0zLTMxLjItMTEuNS0xMC42LTgtMjUuNi01LjktMzMuNiA0LjdTNyA1MTQuMyAxNy42IDUyMi4zYzE5LjEgMTQuNCAzOS40IDIxIDU5LjggMjEuMSAzMy45IC4yIDY0LjMtMTcuNCA4OC4xLTM1LjMgMjEuMy0xNi4xIDQ5LjktMTYuMSA3MS4yIDAgMjQuMiAxOC4zIDUyLjMgMzUuOSA4My40IDM1LjlzNTkuMS0xNy43IDgzLjQtMzUuOXoiXX0sS1ZlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImJpdGNvaW4tc2lnbiIsaWNvbjpbMzIwLDUxMixbXSwiZTBiNCIsIk02NCAyNEM2NCAxMC43IDc0LjcgMCA4OCAwczI0IDEwLjcgMjQgMjRsMCA0MCAzMiAwIDAtNDBjMC0xMy4zIDEwLjctMjQgMjQtMjRzMjQgMTAuNyAyNCAyNGwwIDQxLjFjNTQuMyA3LjggOTYgNTQuNCA5NiAxMTAuOSAwIDI0LjItNy43IDQ2LjYtMjAuNyA2NC45IDMxLjcgMTkuOCA1Mi43IDU1IDUyLjcgOTUuMSAwIDYxLjktNTAuMSAxMTItMTEyIDExMmwtMTYgMCAwIDQwYzAgMTMuMy0xMC43IDI0LTI0IDI0cy0yNC0xMC43LTI0LTI0bDAtNDAtMzIgMCAwIDQwYzAgMTMuMy0xMC43IDI0LTI0IDI0cy0yNC0xMC43LTI0LTI0bDAtNDAtMjIuMyAwQzE4LjcgNDQ4IDAgNDI5LjMgMCA0MDYuM0wwIDEwMS42QzAgODAuOCAxNi44IDY0IDM3LjYgNjRMNjQgNjQgNjQgMjR6bTAgMjAwbDExMiAwYzI2LjUgMCA0OC0yMS41IDQ4LTQ4cy0yMS41LTQ4LTQ4LTQ4bC0xMTIgMCAwIDk2em0xMTIgNjRsLTExMiAwIDAgOTYgMTQ0IDBjMjYuNSAwIDQ4LTIxLjUgNDgtNDhzLTIxLjUtNDgtNDgtNDhsLTMyIDB6Il19LFFWZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJib3giLGljb246WzQ0OCw1MTIsWzEyODIzMF0sImY0NjYiLCJNMzY5LjQgMTI4bC0zNC4zLTQ4LTIyMi4xIDAtMzQuMyA0OCAyOTAuNyAwek0wIDE0OC41YzAtMTMuMyA0LjItMjYuMyAxMS45LTM3LjJMNjAuOSA0Mi44QzcyLjkgMjYgOTIuMyAxNiAxMTIuOSAxNmwyMjIuMSAwYzIwLjcgMCA0MC4xIDEwIDUyLjEgMjYuOGw0OC45IDY4LjVjNy44IDEwLjkgMTEuOSAyMy45IDExLjkgMzcuMkw0NDggNDE2YzAgMzUuMy0yOC43IDY0LTY0IDY0TDY0IDQ4MGMtMzUuMyAwLTY0LTI4LjctNjQtNjRMMCAxNDguNXoiXX0sWkI9e3ByZWZpeDoiZmFzIixpY29uTmFtZToic3F1YXJlLXBsdXMiLGljb246WzQ0OCw1MTIsWzYxODQ2LCJwbHVzLXNxdWFyZSJdLCJmMGZlIiwiTTY0IDMyQzI4LjcgMzIgMCA2MC43IDAgOTZMMCA0MTZjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMzIwIDBjMzUuMyAwIDY0LTI4LjcgNjQtNjRsMC0zMjBjMC0zNS4zLTI4LjctNjQtNjQtNjRMNjQgMzJ6TTIwMCAzNDRsMC02NC02NCAwYy0xMy4zIDAtMjQtMTAuNy0yNC0yNHMxMC43LTI0IDI0LTI0bDY0IDAgMC02NGMwLTEzLjMgMTAuNy0yNCAyNC0yNHMyNCAxMC43IDI0IDI0bDAgNjQgNjQgMGMxMy4zIDAgMjQgMTAuNyAyNCAyNHMtMTAuNyAyNC0yNCAyNGwtNjQgMCAwIDY0YzAgMTMuMy0xMC43IDI0LTI0IDI0cy0yNC0xMC43LTI0LTI0eiJdfSxKVmU9WkIsWEI9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiYXJyb3dzLWxlZnQtcmlnaHQiLGljb246WzU3Niw1MTIsWyJhcnJvd3MtaCJdLCJmMDdlIiwiTTQ3MC42IDM3NC42bDk2LTk2YzEyLjUtMTIuNSAxMi41LTMyLjggMC00NS4zbC05Ni05NmMtMTIuNS0xMi41LTMyLjgtMTIuNS00NS4zIDBzLTEyLjUgMzIuOCAwIDQ1LjNsNDEuNCA0MS40LTM1Ny41IDAgNDEuNC00MS40YzEyLjUtMTIuNSAxMi41LTMyLjggMC00NS4zcy0zMi44LTEyLjUtNDUuMyAwbC05NiA5NmMtNiA2LTkuNCAxNC4xLTkuNCAyMi42czMuNCAxNi42IDkuNCAyMi42bDk2IDk2YzEyLjUgMTIuNSAzMi44IDEyLjUgNDUuMyAwczEyLjUtMzIuOCAwLTQ1LjNsLTQxLjQtNDEuNCAzNTcuNSAwLTQxLjQgNDEuNGMtMTIuNSAxMi41LTEyLjUgMzIuOCAwIDQ1LjNzMzIuOCAxMi41IDQ1LjMgMHoiXX0sZWplPVhCLHRqZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJmYW4iLGljb246WzUxMiw1MTIsW10sImY4NjMiLCJNMTYwIDE0NGMwLTc5LjUgNjQuNS0xNDQgMTQ0LTE0NCA4LjggMCAxNiA3LjIgMTYgMTZsMCAxNTIuMmMxNS01LjMgMzEuMi04LjIgNDgtOC4yIDc5LjUgMCAxNDQgNjQuNSAxNDQgMTQ0IDAgOC44LTcuMiAxNi0xNiAxNmwtMTUyLjIgMGM1LjMgMTUgOC4yIDMxLjIgOC4yIDQ4IDAgNzkuNS02NC41IDE0NC0xNDQgMTQ0LTguOCAwLTE2LTcuMi0xNi0xNmwwLTE1Mi4yYy0xNSA1LjMtMzEuMiA4LjItNDggOC4yLTc5LjUgMC0xNDQtNjQuNS0xNDQtMTQ0IDAtOC44IDcuMi0xNiAxNi0xNmwxNTIuMiAwYy01LjMtMTUtOC4yLTMxLjItOC4yLTQ4em05NiAxNDRhMzIgMzIgMCAxIDAgMC02NCAzMiAzMiAwIDEgMCAwIDY0eiJdfSxhamU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiY3JvdyIsaWNvbjpbNjQwLDUxMixbXSwiZjUyMCIsIk00NTYuNSAwYy00OC42IDAtODggMzkuNC04OCA4OGwwIDM2LTM1NS4yIDI2Ni40Qy0uOCA0MDEtMy43IDQyMSA2LjkgNDM1LjJzMzAuNiAxNyA0NC44IDYuNGw3Ni44LTU3LjYgMTMxLjMgMCA0Ni42IDExMy4xIDEgMi4yYzUuNyAxMC43IDE4LjggMTUuNSAzMC4zIDEwLjhzMTcuMy0xNy4zIDEzLjktMjlsLS44LTIuMy0zOS4xLTk0LjkgNDAuOSAwYzEuMSAwIDIuMiAwIDMuMiAwbDQ2LjYgMTEzLjIgMSAyLjJjNS43IDEwLjcgMTguOCAxNS41IDMwLjMgMTAuOHMxNy4zLTE3LjMgMTMuOS0yOWwtLjgtMi4zLTQyLTEwMkM0ODUuMyAzNTQuMSA1NDQuNSAyODAgNTQ0LjUgMTkybDAtNzIgODAuNS0yMC4xYzguNi0yLjEgMTMuOC0xMC44IDExLjYtMTkuNC03LjEtMjguNS0zMi43LTQ4LjUtNjIuMS00OC41bC01MC4xIDBDNTA4LjIgMTIuNSA0ODMuOCAwIDQ1Ni41IDB6bTAgNjRhMjQgMjQgMCAxIDEgMCA0OCAyNCAyNCAwIDEgMSAwLTQ4eiJdfSxpamU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZmlsZS1jaXJjbGUtY2hlY2siLGljb246WzU3Niw1MTIsW10sImU1YTAiLCJNOTYgMEM2MC43IDAgMzIgMjguNyAzMiA2NGwwIDM4NGMwIDM1LjMgMjguNyA2NCA2NCA2NGwxODAgMGMtMjIuNy0zMS41LTM2LTcwLjItMzYtMTEyIDAtMTAwLjYgNzcuNC0xODMuMiAxNzYtMTkxLjNsMC0zOC4xYzAtMTctNi43LTMzLjMtMTguNy00NS4zTDI5MC43IDE4LjdDMjc4LjcgNi43IDI2Mi41IDAgMjQ1LjUgMEw5NiAwek0zNTcuNSAxNzZMMjY0IDE3NmMtMTMuMyAwLTI0LTEwLjctMjQtMjRMMjQwIDU4LjUgMzU3LjUgMTc2ek01NzYgNDAwYTE0NCAxNDQgMCAxIDAgLTI4OCAwIDE0NCAxNDQgMCAxIDAgMjg4IDB6bS04Ni42LTYwLjljNy4xIDUuMiA4LjcgMTUuMiAzLjUgMjIuM2wtNjQgODhjLTIuOCAzLjgtNyA2LjItMTEuNyA2LjVzLTkuMy0xLjMtMTIuNi00LjZsLTQwLTQwYy02LjItNi4yLTYuMi0xNi40IDAtMjIuNnMxNi40LTYuMiAyMi42IDBsMjYuOCAyNi44IDUzLTcyLjljNS4yLTcuMSAxNS4yLTguNyAyMi40LTMuNXoiXX0sWjU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToibGluay1zbGFzaCIsaWNvbjpbNTc2LDUxMixbImNoYWluLWJyb2tlbiIsImNoYWluLXNsYXNoIiwidW5saW5rIl0sImYxMjciLCJNNDEtMjQuOWMtOS40LTkuNC0yNC42LTkuNC0zMy45IDBTLTIuMy0uMyA3IDkuMWw1MjggNTI4YzkuNCA5LjQgMjQuNiA5LjQgMzMuOSAwczkuNC0yNC42IDAtMzMuOWwtMTIyLTEyMmM0LjItMy40IDguMy03LjEgMTIuMS0xMC45bDcxLjEtNzEuMWMyOS4zLTI5LjMgNDUuOC02OS4xIDQ1LjgtMTEwLjYgMC04Ni40LTcwLTE1Ni41LTE1Ni41LTE1Ni41LTM3LjMgMC03My4xIDEzLjMtMTAxLjMgMzcuMiAyMC4zIDEwLjEgMzguNyAyMy41IDU0LjUgMzkuNSAxNC4xLTguMyAzMC4yLTEyLjcgNDYuOC0xMi43IDUxLjEgMCA5Mi41IDQxLjQgOTIuNSA5Mi41IDAgMjQuNS05LjcgNDgtMjcuMSA2NS40bC03MS4xIDcxLjFjLTMuOSAzLjktOC4xIDcuNC0xMi42IDEwLjVsLTQ3LjUtNDcuNWMxNi41LS45IDI5LjctMTQuNCAzMC4yLTMxLjEgMC0xLjMgMC0yLjYgMC0zLjkgMC04Ni4zLTY5LjktMTU2LjktMTU2LjUtMTU2LjktMTkuMiAwLTM3LjkgMy41LTU1LjUgMTAuMkw0MS0yNC45ek0yMjUuOSAxNjBjLjYgMCAxLjEgMCAxLjcgMCAxNS4xIDAgMjkuNSAzLjcgNDIuMSAxMC4yIDEuOCAxLjIgMy42IDIuMyA1LjUgMy4xIDI2LjggMTYuMyA0NC44IDQ1LjkgNDQuOCA3OS42IDAgLjQgMCAuOCAwIDEuMkwyMjUuOSAxNjB6TTM0Ni4yIDQxNkwxOTIgMjYxLjhjMS4yIDg0LjYgNjkuNiAxNTIuOSAxNTQuMSAxNTQuMXpNMTM5LjcgMjA5LjVsLTQ1LjMtNDUuMy00OC42IDQ4LjZjLTI5LjMgMjkuMy00NS44IDY5LjEtNDUuOCAxMTAuNiAwIDg2LjQgNzAgMTU2LjUgMTU2LjUgMTU2LjUgMzcuMiAwIDczLjEtMTMuMyAxMDEuMy0zNy4yLTIwLjMtMTAuMS0zOC44LTIzLjUtNTQuNi0zOS41LTE0IDguMi0zMC4xIDEyLjYtNDYuNyAxMi42LTUxLjEgMC05Mi41LTQxLjQtOTIuNS05Mi41IDAtMjQuNSA5LjctNDggMjcuMS02NS40bDQ4LjYtNDguNnoiXX0scmplPVo1LHNqZT1aNSxuamU9WjUsWDU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiYXJyb3ctcm90YXRlLXJpZ2h0IixpY29uOls1MTIsNTEyLFs4NjM1LCJhcnJvdy1yaWdodC1yb3RhdGUiLCJhcnJvdy1yb3RhdGUtZm9yd2FyZCIsInJlZG8iXSwiZjAxZSIsIk00MzYuNyA3NC43TDQ0OCA4NS40IDQ0OCAzMmMwLTE3LjcgMTQuMy0zMiAzMi0zMnMzMiAxNC4zIDMyIDMybDAgMTI4YzAgMTcuNy0xNC4zIDMyLTMyIDMybC0xMjggMGMtMTcuNyAwLTMyLTE0LjMtMzItMzJzMTQuMy0zMiAzMi0zMmw0Ny45IDAtNy42LTcuMmMtLjItLjItLjQtLjQtLjYtLjYtNzUtNzUtMTk2LjUtNzUtMjcxLjUgMHMtNzUgMTk2LjUgMCAyNzEuNSAxOTYuNSA3NSAyNzEuNSAwYzguMi04LjIgMTUuNS0xNi45IDIxLjktMjYuMSAxMC4xLTE0LjUgMzAuMS0xOCA0NC42LTcuOXMxOCAzMC4xIDcuOSA0NC42Yy04LjUgMTIuMi0xOC4yIDIzLjgtMjkuMSAzNC43LTEwMCAxMDAtMjYyLjEgMTAwLTM2MiAwUy0yNSAxNzUgNzUgNzVjOTkuOS05OS45IDI2MS43LTEwMCAzNjEuNy0uM3oiXX0sb2plPVg1LGxqZT1YNSxjamU9WDUsS0I9e3ByZWZpeDoiZmFzIixpY29uTmFtZToicGVuLWNsaXAiLGljb246WzUxMiw1MTIsWyJwZW4tYWx0Il0sImYzMDUiLCJNNDA0IDBjMTkuMiAwIDM3LjYgNy42IDUxLjEgMjEuMmwzNS43IDM1LjdDNTA0LjQgNzAuNCA1MTIgODguOCA1MTIgMTA4cy03LjYgMzcuNi0yMS4yIDUxLjFMNDQ1LjkgMjA0IDMwOCA2Ni4xIDM1Mi45IDIxLjJDMzY2LjQgNy42IDM4NC44IDAgNDA0IDB6TTI3NC4xIDEwMGwwIDAgMTM3LjkgMTM3LjktMjE1LjEgMjE1LjFjLTEwLjcgMTAuNy0yNC4xIDE4LjUtMzguNyAyMi42TDMwLjQgNTExLjFjLTguMyAyLjMtMTcuMyAwLTIzLjQtNi4ycy04LjUtMTUuMS02LjItMjMuNEwzNi40IDM1My44YzQuMS0xNC42IDExLjgtMjcuOSAyMi42LTM4LjdMMjQwLjEgMTMzLjkgMjIzIDExNi45Yy05LjQtOS40LTI0LjYtOS40LTMzLjkgMEw4OSAyMTdjLTkuNCA5LjQtMjQuNiA5LjQtMzMuOSAwcy05LjQtMjQuNiAwLTMzLjlMMTU1LjEgODIuOWMyOC4xLTI4LjEgNzMuNy0yOC4xIDEwMS44IDBMMjc0LjEgMTAweiJdfSxkamU9S0IsaGplPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImRvb3ItY2xvc2VkIixpY29uOls0NDgsNTEyLFsxMjg2ODJdLCJmNTJhIiwiTTMyIDY0QzMyIDI4LjcgNjAuNyAwIDk2IDBMMzUyIDBjMzUuMyAwIDY0IDI4LjcgNjQgNjRsMCAzODRjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJMMzIgNTEyYy0xNy43IDAtMzItMTQuMy0zMi0zMnMxNC4zLTMyIDMyLTMyTDMyIDY0ek0zMjAgMjg4YTMyIDMyIDAgMSAwIDAtNjQgMzIgMzIgMCAxIDAgMCA2NHoiXX0sQm09e3ByZWZpeDoiZmFzIixpY29uTmFtZToiYXJyb3ctZG93bi13aWRlLXNob3J0IixpY29uOls1NzYsNTEyLFsic29ydC1hbW91bnQtYXNjIiwic29ydC1hbW91bnQtZG93biJdLCJmMTYwIiwiTTI0Ni42IDM3NC42bC05NiA5NmMtMTIuNSAxMi41LTMyLjggMTIuNS00NS4zIDBsLTk2LTk2Yy0xMi41LTEyLjUtMTIuNS0zMi44IDAtNDUuM3MzMi44LTEyLjUgNDUuMyAwTDk2IDM3MC43IDk2IDY0YzAtMTcuNyAxNC4zLTMyIDMyLTMyczMyIDE0LjMgMzIgMzJsMCAzMDYuNyA0MS40LTQxLjRjMTIuNS0xMi41IDMyLjgtMTIuNSA0NS4zIDBzMTIuNSAzMi44IDAgNDUuM3pNMzIwIDQ4MGMtMTcuNyAwLTMyLTE0LjMtMzItMzJzMTQuMy0zMiAzMi0zMmwzMiAwYzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMybC0zMiAwem0wLTEyOGMtMTcuNyAwLTMyLTE0LjMtMzItMzJzMTQuMy0zMiAzMi0zMmw5NiAwYzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMybC05NiAwem0wLTEyOGMtMTcuNyAwLTMyLTE0LjMtMzItMzJzMTQuMy0zMiAzMi0zMmwxNjAgMGMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMmwtMTYwIDB6bTAtMTI4Yy0xNy43IDAtMzItMTQuMy0zMi0zMnMxNC4zLTMyIDMyLTMybDIyNCAwYzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMyTDMyMCA5NnoiXX0scGplPUJtLHVqZT1CbSxmamU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiY2FyZXQtZG93biIsaWNvbjpbMzIwLDUxMixbXSwiZjBkNyIsIk0xNDAuMyAzNzYuOGMxMi42IDEwLjIgMzEuMSA5LjUgNDIuOC0yLjJsMTI4LTEyOGM5LjItOS4yIDExLjktMjIuOSA2LjktMzQuOVMzMDEuNCAxOTIgMjg4LjUgMTkybC0yNTYgMGMtMTIuOSAwLTI0LjYgNy44LTI5LjYgMTkuOFMuNyAyMzcuNSA5LjkgMjQ2LjZsMTI4IDEyOCAyLjQgMi4yeiJdfSxtamU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiayIsaWNvbjpbMzIwLDUxMixbMTA3XSwiNGIiLCJNMzExIDg2LjNjMTIuMy0xMi43IDEyLTMyLjktLjctNDUuMnMtMzIuOS0xMi00NS4yIC43QzE0My40IDE2Ny4yIDc2LjQgMjM2LjMgNjQgMjQ5TDY0IDY0YzAtMTcuNy0xNC4zLTMyLTMyLTMyUzAgNDYuMyAwIDY0TDAgNDQ4YzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJsMC0xMDcgNjQuNy02Ni43IDEzMyAxOTJjMTAuMSAxNC41IDMwIDE4LjEgNDQuNSA4LjFzMTguMS0zMCA4LjEtNDQuNUwxNzQuMSAyMjcuNCAzMTEgODYuM3oiXX0sUUI9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiY2hlY2stdG8tc2xvdCIsaWNvbjpbNTc2LDUxMixbInZvdGUteWVhIl0sImY3NzIiLCJNNTUyIDI4OGMxMy4zIDAgMjQgMTAuNyAyNCAyNGwwIDEwNGMwIDM1LjMtMjguNyA2NC02NCA2NEw2NCA0ODBjLTM1LjMgMC02NC0yOC43LTY0LTY0TDAgMzEyYzAtMTMuMyAxMC43LTI0IDI0LTI0czI0IDEwLjcgMjQgMjRsMCAxMDRjMCA4LjggNy4yIDE2IDE2IDE2bDQ0OCAwYzguOCAwIDE2LTcuMiAxNi0xNmwwLTEwNGMwLTEzLjMgMTAuNy0yNCAyNC0yNHpNNDE2IDMyYzM1LjMgMCA2NCAyOC43IDY0IDY0bDAgMjI0YzAgMzUuMy0yOC43IDY0LTY0IDY0bC0yNTYgMGMtMzUuMyAwLTY0LTI4LjctNjQtNjRMOTYgOTZjMC0zNS4zIDI4LjctNjQgNjQtNjRsMjU2IDB6bS0zNy4xIDg0LjZjLTEwLjctNy44LTI1LjctNS40LTMzLjUgNS4zbC04NS42IDExNy43LTI2LjUtMjcuNGMtOS4yLTkuNS0yNC40LTkuOC0zMy45LS42LTkuNSA5LjItOS44IDI0LjQtLjYgMzMuOWw0Ni40IDQ4YzQuOSA1LjEgMTEuOCA3LjggMTguOSA3LjNzMTMuNi00LjEgMTcuOC05LjhMMzg0LjIgMTUwLjFjNy44LTEwLjcgNS40LTI1LjctNS4zLTMzLjV6Il19LGdqZT1RQixiamU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZmlzaC1maW5zIixpY29uOls1NzYsNTEyLFtdLCJlNGYyIiwiTTI3NS4yIDM4LjRjLTEwLjYtOC0yNS04LjUtMzYuMy0xLjVTMjIyIDU3LjMgMjI0LjYgNzAuM2w5LjcgNDguNmMtMTkuNCA5LTM2LjkgMTkuOS01Mi40IDMxLjUtMTUuMyAxMS41LTI5IDIzLjktNDAuNyAzNi4zTDQ4LjEgMTMyLjRjLTEyLjUtNy4zLTI4LjQtNS4zLTM4LjcgNC45cy0xMi40IDI2LTUuMyAzOC42TDUwIDI1NiA0LjIgMzM2LjFjLTcuMiAxMi42LTUgMjguNCA1LjMgMzguNnMyNi4xIDEyLjIgMzguNyA0LjlsOTMuMS01NC4zYzExLjggMTIuMyAyNS40IDI0LjggNDAuNyAzNi4zIDE1LjUgMTEuNiAzMyAyMi41IDUyLjQgMzEuNWwtOS43IDQ4LjZjLTIuNiAxMyAzLjEgMjYuMyAxNC4zIDMzLjNzMjUuNiA2LjUgMzYuMy0xLjVsNzcuNi01OC4yYzU0LjktNCAxMDEuNS0yNyAxMzcuMi01My44IDM5LjItMjkuNCA2Ny4yLTY0LjcgODEuNi04OS41IDUuOC05LjkgNS44LTIyLjIgMC0zMi4xLTE0LjQtMjQuOC00Mi41LTYwLjEtODEuNi04OS41LTM1LjgtMjYuOC04Mi4zLTQ5LjgtMTM3LjItNTMuOEwyNzUuMiAzOC40ek0zODQgMjU2YTMyIDMyIDAgMSAxIDY0IDAgMzIgMzIgMCAxIDEgLTY0IDB6Il19LHZqZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJjb21wcmVzcyIsaWNvbjpbNDQ4LDUxMixbXSwiZjA2NiIsIk0xNjAgNjRjMC0xNy43LTE0LjMtMzItMzItMzJTOTYgNDYuMyA5NiA2NGwwIDY0LTY0IDBjLTE3LjcgMC0zMiAxNC4zLTMyIDMyczE0LjMgMzIgMzIgMzJsOTYgMGMxNy43IDAgMzItMTQuMyAzMi0zMmwwLTk2ek0zMiAzMjBjLTE3LjcgMC0zMiAxNC4zLTMyIDMyczE0LjMgMzIgMzIgMzJsNjQgMCAwIDY0YzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJsMC05NmMwLTE3LjctMTQuMy0zMi0zMi0zMmwtOTYgMHpNMzUyIDY0YzAtMTcuNy0xNC4zLTMyLTMyLTMycy0zMiAxNC4zLTMyIDMybDAgOTZjMCAxNy43IDE0LjMgMzIgMzIgMzJsOTYgMGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMmwtNjQgMCAwLTY0ek0zMjAgMzIwYy0xNy43IDAtMzIgMTQuMy0zMiAzMmwwIDk2YzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJsMC02NCA2NCAwYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMybC05NiAweiJdfSxKQj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJhcnJvdy11cC1hLXoiLGljb246WzUxMiw1MTIsWyJzb3J0LWFscGhhLXVwIl0sImYxNWUiLCJNNDEyLjYgNDkuN0M0MDcuMiAzOC44IDM5Ni4xIDMyIDM4NCAzMnMtMjMuMiA2LjgtMjguNiAxNy43Yy01MC43IDEwMS4zLTc3LjMgMTU0LjctODAgMTYwLTcuOSAxNS44LTEuNSAzNSAxNC4zIDQyLjlzMzUgMS41IDQyLjktMTQuM2w3LjItMTQuMyA4OC40IDAgNy4yIDE0LjNjNy45IDE1LjggMjcuMSAyMi4yIDQyLjkgMTQuM3MyMi4yLTI3LjEgMTQuMy00Mi45Yy0yLjctNS4zLTI5LjMtNTguNy04MC0xNjB6TTM4NCAxMzUuNmwyMC4yIDQwLjQtNDAuNCAwIDIwLjItNDAuNHpNMjg4IDMyMGMwIDE3LjcgMTQuMyAzMiAzMiAzMmw1MC43IDAtNzMuNCA3My40Yy05LjIgOS4yLTExLjkgMjIuOS02LjkgMzQuOVMzMDcuMSA0ODAgMzIwIDQ4MGwxMjggMGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMmwtNTAuNyAwIDczLjQtNzMuNGM5LjItOS4yIDExLjktMjIuOSA2LjktMzQuOVM0NjAuOSAyODggNDQ4IDI4OGwtMTI4IDBjLTE3LjcgMC0zMiAxNC4zLTMyIDMyek0xNTAuNiA0MS40Yy0xMi41LTEyLjUtMzIuOC0xMi41LTQ1LjMgMGwtODAgODBjLTEyLjUgMTIuNS0xMi41IDMyLjggMCA0NS4zczMyLjggMTIuNSA0NS4zIDBMOTYgMTQxLjMgOTYgNDQ4YzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJsMC0zMDYuNyAyNS40IDI1LjRjMTIuNSAxMi41IDMyLjggMTIuNSA0NS4zIDBzMTIuNS0zMi44IDAtNDUuM2wtODAtODB6Il19LHlqZT1KQix4amU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToidXNlci1ncmFkdWF0ZSIsaWNvbjpbNDQ4LDUxMixbXSwiZjUwMSIsIk0yNDEuMy0xM2MtMTEuNC0yLjMtMjMuMS0yLjMtMzQuNSAwTDE5LjMgMjQuNUM4LjEgMjYuNyAwIDM2LjYgMCA0OCAwIDU4LjMgNi41IDY3LjMgMTYgNzAuNkwxNiAxNDQgLjMgMjIyLjZjLS4yIC45LS4zIDEuOS0uMyAyLjkgMCA4IDYuNSAxNC42IDE0LjYgMTQuNmwzNC45IDBjOCAwIDE0LjYtNi41IDE0LjYtMTQuNiAwLTEtLjEtMS45LS4zLTIuOUw0OCAxNDQgNDggNzcuMyA5NiA4Ni45IDk2IDE0NGMwIDcwLjcgNTcuMyAxMjggMTI4IDEyOHMxMjgtNTcuMyAxMjgtMTI4bDAtNTcuMSA3Ni43LTE1LjNDNDM5LjkgNjkuMyA0NDggNTkuNCA0NDggNDhzLTguMS0yMS4zLTE5LjMtMjMuNUwyNDEuMy0xM3pNMjI0IDIyNGMtNDQuMiAwLTgwLTM1LjgtODAtODBsMTYwIDBjMCA0NC4yLTM1LjggODAtODAgODB6TTEyMC4xIDMyMC4xQzU4LjcgMzQ4LjMgMTYgNDEwLjMgMTYgNDgyLjMgMTYgNDk4LjcgMjkuMyA1MTIgNDUuNyA1MTJsMTU0LjMgMCAwLTE0Ni01Ny40LTQzYy02LjUtNC45LTE1LjItNi4yLTIyLjYtMi44ek0yNDggNTEybDE1NC4zIDBjMTYuNCAwIDI5LjctMTMuMyAyOS43LTI5LjcgMC03Mi00Mi43LTEzNC0xMDQuMS0xNjIuMS03LjQtMy40LTE2LjEtMi4xLTIyLjYgMi44bC01Ny40IDQzIDAgMTQ2eiJdfSx3amU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZmlsZS1jb2RlIixpY29uOlszODQsNTEyLFtdLCJmMWM5IiwiTTAgNjRDMCAyOC43IDI4LjcgMCA2NCAwTDIxMy41IDBjMTcgMCAzMy4zIDYuNyA0NS4zIDE4LjdMMzY1LjMgMTI1LjNjMTIgMTIgMTguNyAyOC4zIDE4LjcgNDUuM0wzODQgNDQ4YzAgMzUuMy0yOC43IDY0LTY0IDY0TDY0IDUxMmMtMzUuMyAwLTY0LTI4LjctNjQtNjRMMCA2NHptMjA4LTUuNWwwIDkzLjVjMCAxMy4zIDEwLjcgMjQgMjQgMjRMMzI1LjUgMTc2IDIwOCA1OC41ek0xNTQuMiAyOTUuNmM4LjYtMTAuMSA3LjUtMjUuMi0yLjYtMzMuOHMtMjUuMi03LjUtMzMuOCAyLjZsLTQ4IDU2Yy03LjcgOS03LjcgMjIuMiAwIDMxLjJsNDggNTZjOC42IDEwLjEgMjMuOCAxMS4yIDMzLjggMi42czExLjItMjMuOCAyLjYtMzMuOGwtMzQuNi00MC40IDM0LjYtNDAuNHptMTEyLTMxLjJjLTguNi0xMC4xLTIzLjgtMTEuMi0zMy44LTIuNnMtMTEuMiAyMy44LTIuNiAzMy44bDM0LjYgNDAuNC0zNC42IDQwLjRjLTguNiAxMC4xLTcuNSAyNS4yIDIuNiAzMy44czI1LjIgNy41IDMzLjgtMi42bDQ4LTU2YzcuNy05IDcuNy0yMi4yIDAtMzEuMmwtNDgtNTZ6Il19LE1qZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJzb2FwIixpY29uOls1MTIsNTEyLFsxMjk1MzJdLCJlMDZlIiwiTTIwOC0zMmE0OCA0OCAwIDEgMSAwIDk2IDQ4IDQ4IDAgMSAxIDAtOTZ6TTMyMCA5NmE2NCA2NCAwIDEgMSAwIDEyOCA2NCA2NCAwIDEgMSAwLTEyOHpNMzUyIDBhMzIgMzIgMCAxIDEgNjQgMCAzMiAzMiAwIDEgMSAtNjQgMHpNOTYgMTYwbDExMiAwYzAgMjMuOCA3LjQgNDUuOSAyMC4xIDY0TDE2MCAyMjRjLTUzIDAtOTYgNDMtOTYgOTZzNDMgOTYgOTYgOTZsMTkyIDBjNTMgMCA5Ni00MyA5Ni05NiAwLTM1LjEtMTguOS02NS45LTQ3LTgyLjYgMTktMTkuOCAzMC43LTQ2LjYgMzEtNzYuMSA0NS40IDcuNiA4MCA0Ny4xIDgwIDk0LjdsMCAxMjhjMCA1My00MyA5Ni05NiA5Nkw5NiA0ODBjLTUzIDAtOTYtNDMtOTYtOTZMMCAyNTZjMC01MyA0My05NiA5Ni05NnptNjQgMTEybDE5MiAwYzI2LjUgMCA0OCAyMS41IDQ4IDQ4cy0yMS41IDQ4LTQ4IDQ4bC0xOTIgMGMtMjYuNSAwLTQ4LTIxLjUtNDgtNDhzMjEuNS00OCA0OC00OHoiXX0semplPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InJlY3ljbGUiLGljb246WzUxMiw1MTIsWzk4NDIsOTg1MCw5ODUxXSwiZjFiOCIsIk0xNTIuMyA2MEMxOTguNS0yMCAzMTQtMjAgMzYwLjIgNjBsMzcuMyA2NC42IDI3LjctMTZjOC40LTQuOSAxOC45LTQuMiAyNi42IDEuN3MxMS4xIDE1LjkgOC42IDI1LjNMNDM2LjkgMjIzYy0zLjQgMTIuOC0xNi42IDIwLjQtMjkuNCAxN2wtODcuNC0yMy40Yy05LjQtMi41LTE2LjMtMTAuNC0xNy42LTIwczMuNC0xOS4xIDExLjgtMjMuOWwyNy43LTE2LTM3LjMtNjQuNmMtMjEuNi0zNy4zLTc1LjQtMzcuMy05NyAwbC01LjMgOS4xYy04LjggMTUuMy0yOC40IDIwLjUtNDMuNyAxMS43UzEzOC4yIDg0LjUgMTQ3IDY5LjFsNS4zLTkuMXpNNDQ5LjcgMjc5LjFjMTUuMy04LjggMzQuOS0zLjYgNDMuNyAxMS43bDUuMyA5LjFjNDYuMiA4MC0xMS41IDE4MC0xMDMuOSAxODBsLTc0LjYgMCAwIDMyYzAgOS43LTUuOCAxOC41LTE0LjggMjIuMnMtMTkuMyAxLjctMjYuMi01LjJsLTY0LTY0Yy05LjQtOS40LTkuNC0yNC42IDAtMzMuOWw2NC02NGM2LjktNi45IDE3LjItOC45IDI2LjItNS4yczE0LjggMTIuNSAxNC44IDIyLjJsMCAzMiA3NC42IDBjNDMuMSAwIDcwLjEtNDYuNyA0OC41LTg0bC01LjMtOS4xYy04LjgtMTUuMy0zLjYtMzQuOSAxMS43LTQzLjd6TTUxIDIzNS40bC0yNy43LTE2Yy04LjQtNC45LTEzLjEtMTQuMy0xMS44LTIzLjlzOC4yLTE3LjUgMTcuNi0yMEwxMTYuNSAxNTJjMTIuOC0zLjQgMjYgNC4yIDI5LjQgMTdsMjMuNCA4Ny40YzIuNSA5LjQtLjkgMTkuMy04LjYgMjUuM3MtMTguMiA2LjYtMjYuNiAxLjdsLTI3LjctMTYtMzcuMyA2NC42Yy0yMS42IDM3LjMgNS40IDg0IDQ4LjUgODRsMTAuNiAwYzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMybC0xMC42IDBDMjUuMyA0ODAtMzIuNCAzODAgMTMuOCAzMDBMNTEgMjM1LjR6Il19LGVIPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImZhY2UtZ3Jpbi13aW5rIixpY29uOls1MTIsNTEyLFsiZ3Jpbi13aW5rIl0sImY1OGMiLCJNMjU2IDUxMmEyNTYgMjU2IDAgMSAwIDAtNTEyIDI1NiAyNTYgMCAxIDAgMCA1MTJ6TTM4Ni43IDMwOC45YzExLjktMy43IDIzLjkgNi4zIDE5LjYgMTguMS0yMi40IDYxLjMtODEuMyAxMDUuMS0xNTAuMyAxMDUuMVMxMjguMSAzODguMiAxMDUuNyAzMjYuOWMtNC4zLTExLjggNy43LTIxLjggMTkuNi0xOC4xIDM5LjIgMTIuMiA4My43IDE5LjEgMTMwLjcgMTkuMXM5MS41LTYuOSAxMzAuNy0xOS4xek0zMjggMTk2Yy0xMSAwLTIwIDktMjAgMjBzLTkgMjAtMjAgMjAtMjAtOS0yMC0yMGMwLTMzLjEgMjYuOS02MCA2MC02MGwxNiAwYzMzLjEgMCA2MCAyNi45IDYwIDYwIDAgMTEtOSAyMC0yMCAyMHMtMjAtOS0yMC0yMC05LTIwLTIwLTIwbC0xNiAwek0xNzYgMTc2YTMyIDMyIDAgMSAxIDAgNjQgMzIgMzIgMCAxIDEgMC02NHoiXX0sa2plPWVILEhtPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6IndhdGVyLWxhZGRlciIsaWNvbjpbNjQwLDUxMixbImxhZGRlci13YXRlciIsInN3aW1taW5nLXBvb2wiXSwiZjVjNSIsIk0zNzQuNSA0MDUuN2MzOC40LTI5IDkwLjUtMjkgMTI5IDAgMTYuOSAxMi43IDMyLjkgMjEuNSA0Ny44IDI0LjYgMTMuNyAyLjggMjcuNCAuOSA0Mi4zLTEwLjMgMTAuNi04IDI1LjYtNS45IDMzLjYgNC43czUuOCAyNS43LTQuOCAzMy42Yy0yNi40IDE5LjktNTQuMiAyNC40LTgwLjcgMTkuMS0yNS4zLTUuMS00OC4xLTE4LjktNjcuMi0zMy4zLTIxLjMtMTYuMS00OS45LTE2LjEtNzEuMiAwLTI0LjIgMTguMy01Mi4zIDM1LjktODMuNCAzNS45cy01OS4xLTE3LjctODMuMy0zNS45Yy0yMS4zLTE2LjEtNDkuOS0xNi4xLTcxLjIgMC0yMy44IDE3LjktNTQuMSAzNS41LTg4LjEgMzUuMy0yMC40LS4xLTQwLjctNi43LTU5LjgtMjEuMS0xMC42LTgtMTIuNy0yMy00LjctMzMuNnMyMy0xMi43IDMzLjYtNC43YzExLjMgOC41IDIxLjYgMTEuNCAzMS4yIDExLjUgMTcuNiAuMSAzNy4zLTkuNCA1OC45LTI1LjcgMzguNC0yOSA5MC42LTI5IDEyOSAwIDI0IDE4LjEgNDAuNyAyNi4zIDU0LjUgMjYuM3MzMC41LTguMiA1NC41LTI2LjN6TTUxMS44IDMyYzQ4LjMgMCA4OSAzNiA5NSA4My45bDEgOC4yYzIuMiAxNy41LTEwLjIgMzMuNS0yNy44IDM1LjdzLTMzLjUtMTAuMi0zNS43LTI3LjhsLTEtOC4yYy0yLTE1LjktMTUuNS0yNy44LTMxLjUtMjcuOC0xNy41IDAtMzEuOCAxNC4yLTMxLjggMzEuOGwwIDIxMS44Yy0yMy4xLTUuMS00NC45LTQuNC02NC0uNGwwLTUxLjItMTkyIDAgMCA0OC43Yy01LjMtLjUtMTAuNy0uOC0xNi0uNy0xNi4yIC4xLTMyLjQgMi43LTQ4IDhsMC0yMTYuMmMwLTUyLjkgNDIuOS05NS44IDk1LjctOTUuOCA0OC4zIDAgODkgMzYgOTUgODMuOWwxIDguMmMyLjIgMTcuNS0xMC4yIDMzLjUtMjcuOCAzNS43cy0zMy41LTEwLjItMzUuNy0yNy44bC0xLTguMmMtMi0xNS45LTE1LjUtMjcuOC0zMS41LTI3LjgtMTcuNSAwLTMxLjcgMTQuMi0zMS43IDMxLjhsMCA5Ni4yIDE5MiAwIDAtOTYuMkM0MTYgNzQuOSA0NTguOSAzMiA1MTEuOCAzMnoiXX0sU2plPUhtLENqZT1IbSxfamU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZ2VtaW5pIixpY29uOls0NDgsNTEyLFtdLCJlODQ5IiwiTTM5NS40IDhjMTMuMi0xMS43IDMzLjMtMTAuNSA0NS4xIDIuNyAxMS43IDEzLjIgMTAuNSAzMy40LTIuNyA0NS4yLTIuNyAyLjQtMjMuMSAxOS44LTU4LjMgMzYuOC04LjIgNC0xNy4yIDcuOS0yNyAxMS42bDAgMzAzLjJjOS44IDMuOCAxOC44IDcuNiAyNyAxMS42IDE4LjIgOC44IDMyLjQgMTcuNyA0Mi4yIDI0LjUgMyAyLjEgNS41IDQuMSA3LjcgNS43IDEuMiAuOSAyLjMgMS42IDMuMiAyLjQgLjIgLjEgLjMgLjIgLjUgLjQgMS4zIDEuMSAyLjQgMiAzLjIgMi42IC40IC4zIC43IC42IC45IC44IC4xIC4xIC4zIC4yIC4zIC4zIDAgMCAuMSAuMSAuMSAuMWwuMSAwIDAgMCAwIDBjMy4zIDIuOSA1LjkgNi40IDcuNyAxMC4yIDUuNCAxMS4zIDMuOCAyNS4xLTUgMzUtLjMgLjQtLjcgLjctMS4xIDEuMS0xMS45IDEyLjItMzEuMiAxMy4xLTQ0IDEuNy0uMy0uMy0xLjUtMS4zLTMuNS0yLjgtLjQtLjMtLjktLjctMS41LTEuMS0xLjktMS40LTQuMi0zLjEtNy4xLTUuMS0yLjItMS41LTQuNy0zLjEtNy40LTQuOC02LjYtNC4xLTE0LjgtOC44LTI0LjQtMTMuNS03LjQtMy42LTE1LjYtNy4yLTI0LjctMTAuNS0xMy42LTUuMS0yOS05LjYtNDYuMS0xMi45LTUuNy0xLjEtMTEuNi0yLjEtMTcuNy0yLjgtMTIuMS0xLjYtMjUtMi41LTM4LjYtMi41LTU0LjIgMC05Ny40IDE0LjQtMTI3IDI4LjgtMy40IDEuNi02LjUgMy4zLTkuNSA0LjktNS4xIDIuOC05LjcgNS40LTEzLjggNy45LTMuMyAyLjEtNi4zIDQtOC45IDUuNy0xLjcgMS4yLTMuMiAyLjMtNC42IDMuMy0xLjkgMS40LTMuNSAyLjUtNC42IDMuNC0xLjQgMS4xLTIuMiAxLjgtMi41IDItMTMuMiAxMS43LTMzLjMgMTAuNS00NS4xLTIuOC0yLjItMi41LTQtNS4yLTUuMi04LjFzLTIuMS01LjktMi41LTguOWMtMS40LTEwLjIgMi4yLTIwLjggMTAuNC0yOC4yIC4yLS4yIC42LS41IDEuMi0xIC4xLS4xIC4yLS4yIC4zLS4zbDMuMi0yLjZjMS43LTEuMyAzLjctMi44IDYuMi00LjYgMS42LTEuMiAzLjMtMi41IDUuMi0zLjggOS44LTYuOCAyNC0xNS43IDQyLjItMjQuNSA4LjItNCAxNy4yLTcuOSAyNy0xMS42bDAtMzAzLjJDODYuNyAxMDAuNiA3Ny43IDk2LjcgNjkuNSA5Mi44IDM0LjMgNzUuNyAxNCA1OC4zIDExLjMgNTUuOS0xLjkgNDQuMi0zLjEgMjQgOC42IDEwLjcgMjAuMy0yLjUgNDAuNS0zLjcgNTMuNyA4IDU1LjEgOS4yIDcwLjcgMjIuMiA5Ny41IDM1LjIgMTI3LjEgNDkuNiAxNzAuMyA2NCAyMjQuNSA2NHM5Ny40LTE0LjQgMTI3LTI4LjhjMjYuOC0xMyA0Mi40LTI2IDQzLjgtMjcuMnpNMjg4LjUgMTIyLjNjLTE5LjcgMy41LTQxIDUuNy02NCA1LjdzLTQ0LjMtMi4yLTY0LTUuN2wwIDI2Ny40YzEyLjYtMi4zIDI1LjktNCAzOS45LTQuOSA3LjgtLjUgMTUuOC0uOCAyNC0uOCAyMyAwIDQ0LjQgMi4yIDY0IDUuN2wwLTI2Ny40eiJdfSxUamU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToidG93ZXItY2VsbCIsaWNvbjpbNTc2LDUxMixbXSwiZTU4NSIsIk01OS42IDkuOEM0Ny4zIDQuOCAzMy4zIDEwLjcgMjguNCAyMyAxNS4yIDU1LjUgOCA5MC45IDggMTI4czcuMiA3Mi41IDIwLjQgMTA1YzUgMTIuMyAxOSAxOC4yIDMxLjMgMTMuMnMxOC4yLTE5IDEzLjItMzEuM0M2MiAxODguMiA1NiAxNTguOCA1NiAxMjhzNi02MC4yIDE2LjktODdjNS0xMi4zLTEtMjYuMy0xMy4yLTMxLjN6bTQ1Ni44IDBjLTEyLjMgNS0xOC4yIDE5LTEzLjIgMzEuMyAxMC45IDI2LjggMTYuOSA1Ni4yIDE2LjkgODdzLTYgNjAuMi0xNi45IDg3Yy01IDEyLjMgMSAyNi4zIDEzLjIgMzEuM3MyNi4zLTEgMzEuMy0xMy4yYzEzLjEtMzIuNSAyMC40LTY3LjkgMjAuNC0xMDVzLTcuMi03Mi41LTIwLjQtMTA1Yy01LTEyLjMtMTktMTguMi0zMS4zLTEzLjJ6TTM0MC4xIDE2NS4yYzcuNS0xMC41IDExLjktMjMuMyAxMS45LTM3LjIgMC0zNS4zLTI4LjctNjQtNjQtNjRzLTY0IDI4LjctNjQgNjRjMCAxMy45IDQuNCAyNi43IDExLjkgMzcuMkw5OC45IDQ2Ni44Yy03LjMgMTYuMS0uMiAzNS4xIDE1LjkgNDIuNHMzNS4xIC4yIDQyLjQtMTUuOWwyMC42LTQ1LjIgMjIwLjYgMCAyMC42IDQ1LjJjNy4zIDE2LjEgMjYuMyAyMy4yIDQyLjQgMTUuOXMyMy4yLTI2LjMgMTUuOS00Mi40TDM0MC4xIDE2NS4yek0zNzYuNSA0MDBsLTE3NyAwIDIxLjgtNDggMTMzLjMgMCAyMS44IDQ4ek0yODggMjA1LjNsNDQuOCA5OC43LTg5LjcgMCA0NC44LTk4Ljd6TTE2My4zIDczLjZjNS4zLTEyLjEtLjItMjYuMy0xMi40LTMxLjZzLTI2LjMgLjItMzEuNiAxMi40QzEwOS41IDc3IDEwNCAxMDEuOSAxMDQgMTI4czUuNSA1MSAxNS4zIDczLjZjNS4zIDEyLjEgMTkuNSAxNy43IDMxLjYgMTIuNHMxNy43LTE5LjUgMTIuNC0zMS42QzE1NiAxNjUuOCAxNTIgMTQ3LjQgMTUyIDEyOHM0LTM3LjggMTEuMy01NC40ek00NTYuNyA1NC40Yy01LjMtMTIuMS0xOS41LTE3LjctMzEuNi0xMi40cy0xNy43IDE5LjUtMTIuNCAzMS42QzQyMCA5MC4yIDQyNCAxMDguNiA0MjQgMTI4cy00IDM3LjgtMTEuMyA1NC40Yy01LjMgMTIuMSAuMiAyNi4zIDEyLjQgMzEuNnMyNi4zLS4yIDMxLjYtMTIuNEM0NjYuNSAxNzkgNDcyIDE1NC4xIDQ3MiAxMjhzLTUuNS01MS0xNS4zLTczLjZ6Il19LExqZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJjb2xvbi1zaWduIixpY29uOlszODQsNTEyLFtdLCJlMTQwIiwiTTIxMy44IDguN2MxMi45IDMuMiAyMC43IDE2LjIgMTcuNSAyOS4xbC00LjYgMTguNWMxNS40IC44IDMwLjQgMy40IDQ0LjcgNy41bDkuNC0zNy42QzI4My45IDEzLjMgMjk3IDUuNSAzMDkuOCA4LjdTMzMwLjUgMjUgMzI3LjMgMzcuOEwzMTYgODIuOGMxMy41IDcuOCAyNiAxNy4xIDM3LjIgMjcuOCAxMi45IDEyLjEgMTMuNCAzMi40IDEuMyA0NS4ycy0zMi40IDEzLjQtNDUuMiAxLjNjLTMuMS0yLjktNi40LTUuOC05LjgtOC40TDIzOS4yIDM5MGMyNi45LTQuNiA1MS4xLTE3LjEgNzAuMS0zNS4xIDEyLjktMTIuMSAzMy4xLTExLjUgNDUuMiAxLjNzMTEuNSAzMy4xLTEuMyA0NS4yYy0zNC4zIDMyLjMtODAgNTIuOC0xMzAuNSA1NC40bC03LjUgMjkuOWMtMy4yIDEyLjktMTYuMiAyMC43LTI5LjEgMTcuNXMtMjAuNy0xNi4yLTE3LjUtMjkuMWw1LjYtMjIuNWMtMTUtMy4yLTI5LjQtOC00Mi45LTE0LjRsLTEyLjEgNDguNWMtMy4yIDEyLjktMTYuMiAyMC43LTI5LjEgMTcuNVM2OS41IDQ4NyA3Mi43IDQ3NC4ybDE2LTYzLjlDNDQuMyAzNzMuNiAxNiAzMTguMSAxNiAyNTYgMTYgMTU5LjIgODQuOCA3OC40IDE3Ni4zIDYwbDguNC0zMy44QzE4Ny45IDEzLjMgMjAxIDUuNSAyMTMuOCA4Ljd6TTE1OCAxMzIuOWMtNDYuMSAyMS44LTc4IDY4LjctNzggMTIzLjEgMCAzMC41IDEwIDU4LjYgMjYuOSA4MS4zTDE1OCAxMzIuOXpNMTQ3LjQgMzczLjRjMTMgNy42IDI3LjMgMTMuMSA0Mi41IDE2LjFsNjUuOS0yNjMuNmMtMTIuNi0zLjgtMjUuOS01LjktMzkuOC01LjktMS44IDAtMy41IDAtNS4zIC4xTDE0Ny40IDM3My40eiJdfSwkamU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToibGFwdG9wLWZpbGUiLGljb246WzU3Niw1MTIsW10sImU1MWQiLCJNNjQgNjRDNjQgMjguNyA5Mi43IDAgMTI4IDBMNDE2IDBjMzUuMyAwIDY0IDI4LjcgNjQgNjRsMCA0OC02NCAwIDAtNDgtMjg4IDAgMCAxOTIgMTEyIDAgMCA5Ni0xNjMuMiAwQzM0LjQgMzUyIDAgMzE3LjYgMCAyNzUuMiAwIDI2NC42IDguNiAyNTYgMTkuMiAyNTZMNjQgMjU2IDY0IDY0ek01MjkuOSAyNTcuOWM5IDkgMTQuMSAyMS4yIDE0LjEgMzMuOUw1NDQgNDY0YzAgMjYuNS0yMS41IDQ4LTQ4IDQ4bC0xNjAgMGMtMjYuNSAwLTQ4LTIxLjUtNDgtNDhsMC0yNTZjMC0yNi41IDIxLjUtNDggNDgtNDhsNzYuMSAwYzEyLjcgMCAyNC45IDUuMSAzMy45IDE0LjEgMjAgMjAgNDcuOSA0Ny45IDgzLjkgODMuOXpNNDE2IDI3MmMwIDguOCA3LjIgMTYgMTYgMTZsNjAuMSAwLTc2LjEtNzYuMSAwIDYwLjF6Il19LHRIPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImJhaGFpIixpY29uOls1NzYsNTEyLFsiaGF5a2FsIl0sImY2NjYiLCJNMjg4LjQtOGMxMy4yIDAgMjUgOC4xIDI5LjggMjAuNGwzMS45IDgyIDc3LjItNDIuM2MxMS42LTYuMyAyNS44LTQuOSAzNS45IDMuNXMxNCAyMi4zIDkuNyAzNC44bC0yOC4yIDgzLjMgODYuMyAxNy4yYzEyLjkgMi42IDIzIDEyLjggMjUuMyAyNS44cy0zLjYgMjYuMS0xNC45IDMyLjlsLTc1LjIgNDUuNyA1NSA2OC42YzguMyAxMC4zIDkuMyAyNC42IDIuNyAzNnMtMTkuNSAxNy42LTMyLjYgMTUuNmwtODctMTMuMy0yIDg4Yy0uMyAxMy4yLTguNiAyNC44LTIxIDI5LjRzLTI2LjMgMS0zNS05bC01OC02Ni4xLTU4IDY2LjFjLTguNyA5LjktMjIuNiAxMy41LTM1IDlzLTIwLjgtMTYuMi0yMS0yOS40bC0yLTg4LTg3IDEzLjNjLTEzIDItMjYtNC4yLTMyLjYtMTUuNnMtNS41LTI1LjcgMi43LTM2bDU1LTY4LjYtNzUuMi00NS43Yy0xMS4zLTYuOC0xNy4yLTE5LjktMTQuOS0zMi45czEyLjMtMjMuMiAyNS4zLTI1LjhsODYuMy0xNy4yLTI4LjItODMuM2MtNC4yLTEyLjUtLjQtMjYuMyA5LjctMzQuOHMyNC40LTkuOSAzNS45LTMuNWw3Ny4xIDQyLjMgMzEuOS04MkMyNjMuMyAuMSAyNzUuMi04IDI4OC40LTh6bTAgMTIwLjJMMjczIDE1MS42Yy0zLjMgOC42LTEwLjIgMTUuMy0xOC45IDE4LjVzLTE4LjIgMi40LTI2LjMtMmwtMzctMjAuMyAxMy42IDQwYzMgOC43IDIgMTguMy0yLjYgMjYuM3MtMTIuNCAxMy42LTIxLjUgMTUuNGwtNDEuNCA4LjMgMzYuMSAyMS45YzcuOSA0LjggMTMuMyAxMi43IDE0LjkgMjEuOHMtLjggMTguNC02LjUgMjUuNmwtMjYuNCAzMyA0MS44LTYuNGM5LjEtMS40IDE4LjQgMS4yIDI1LjQgNy4xczExLjIgMTQuNiAxMS40IDIzLjhsLjkgNDIuMiAyNy45LTMxLjhjNi4xLTYuOSAxNC44LTEwLjkgMjQuMS0xMC45czE4IDQgMjQuMSAxMC45bDI3LjkgMzEuOCAuOS00Mi4yYy4yLTkuMiA0LjQtMTcuOSAxMS40LTIzLjhzMTYuMy04LjUgMjUuNC03LjFsNDEuOCA2LjQtMjYuNC0zM2MtNS44LTcuMi04LjItMTYuNS02LjYtMjUuNnM3LTE3IDE0LjktMjEuOGwzNi4xLTIxLjktNDEuNC04LjNjLTktMS44LTE2LjktNy40LTIxLjUtMTUuNHMtNS41LTE3LjYtMi42LTI2LjNsMTMuNi00MC0zNyAyMC4zYy04LjEgNC40LTE3LjcgNS4yLTI2LjMgMnMtMTUuNS05LjktMTguOS0xOC41bC0xNS4zLTM5LjR6Il19LEFqZT10SCxhSD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJtb25leS1iaWxsLTEiLGljb246WzUxMiw1MTIsWyJtb25leS1iaWxsLWFsdCJdLCJmM2QxIiwiTTY0IDY0QzI4LjcgNjQgMCA5Mi43IDAgMTI4TDAgMzg0YzAgMzUuMyAyOC43IDY0IDY0IDY0bDM4NCAwYzM1LjMgMCA2NC0yOC43IDY0LTY0bDAtMjU2YzAtMzUuMy0yOC43LTY0LTY0LTY0TDY0IDY0em0xOTIgODBhMTEyIDExMiAwIDEgMSAwIDIyNCAxMTIgMTEyIDAgMSAxIDAtMjI0ek02NCAxODRsMC00OGMwLTQuNCAzLjYtOCA4LThsNDggMGM0LjQgMCA4LjEgMy42IDcuNSA4LTMuNiAyOS0yNi42IDUxLjktNTUuNSA1NS41LTQuNCAuNS04LTMuMS04LTcuNXptMCAxNDRjMC00LjQgMy42LTguMSA4LTcuNSAyOSAzLjYgNTEuOSAyNi42IDU1LjUgNTUuNSAuNSA0LjQtMy4xIDgtNy41IDhsLTQ4IDBjLTQuNCAwLTgtMy42LTgtOGwwLTQ4ek00NDAgMTkxLjVjLTI5LTMuNi01MS45LTI2LjYtNTUuNS01NS41LS41LTQuNCAzLjEtOCA3LjUtOGw0OCAwYzQuNCAwIDggMy42IDggOGwwIDQ4YzAgNC40LTMuNiA4LjEtOCA3LjV6TTQ0OCAzMjhsMCA0OGMwIDQuNC0zLjYgOC04IDhsLTQ4IDBjLTQuNCAwLTguMS0zLjYtNy41LTggMy42LTI5IDI2LjYtNTEuOSA1NS41LTU1LjUgNC40LS41IDggMy4xIDggNy41ek0yNDAgMTg4Yy0xMSAwLTIwIDktMjAgMjAgMCA5LjcgNi45IDE3LjcgMTYgMTkuNmwwIDQ4LjQtNCAwYy0xMSAwLTIwIDktMjAgMjBzOSAyMCAyMCAyMGw0OCAwYzExIDAgMjAtOSAyMC0yMHMtOS0yMC0yMC0yMGwtNCAwIDAtNjhjMC0xMS05LTIwLTIwLTIwbC0xNiAweiJdfSxEamU9YUgsaUg9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiY2xvdWQtYm9sdCIsaWNvbjpbNTEyLDUxMixbMTI3Nzg1LCJ0aHVuZGVyc3Rvcm0iXSwiZjc2YyIsIk0wIDIyNGMwIDUzIDQzIDk2IDk2IDk2bDM4LjYgMCAxMjQuMS0xMTFjMTIuMi0xMC45IDI4LTE3IDQ0LjQtMTcgNDQuNiAwIDc2LjUgNDMgNjMuNyA4NS43TDM1NC4xIDMyMCA0MTYgMzIwYzUzIDAgOTYtNDMgOTYtOTZzLTQzLTk2LTk2LTk2Yy0uNSAwLTEuMSAwLTEuNiAwIDEuMS01LjIgMS42LTEwLjUgMS42LTE2IDAtNDQuMi0zNS44LTgwLTgwLTgwLTI0LjMgMC00Ni4xIDEwLjktNjAuOCAyOC0xOC43LTM1LjctNTYuMS02MC05OS4yLTYwLTYxLjkgMC0xMTIgNTAuMS0xMTIgMTEyIDAgNy4xIC43IDE0LjEgMS45IDIwLjgtMzguMyAxMi42LTY1LjkgNDguNy02NS45IDkxLjJ6TTE2MC42IDQwMGw2MS44IDAtMzEuMiAxMDQuMWMtMy42IDExLjkgNS4zIDIzLjkgMTcuOCAyMy45IDQuNiAwIDktMS43IDEyLjQtNC43TDM2Mi41IDM5Ni45YzMuNS0zLjEgNS41LTcuNiA1LjUtMTIuNCAwLTkuMi03LjQtMTYuNi0xNi42LTE2LjZsLTYxLjggMCAzMS4yLTEwNC4xYzMuNi0xMS45LTUuMy0yMy45LTE3LjgtMjMuOS00LjYgMC05IDEuNy0xMi40IDQuN0wxNDkuNSAzNzEuMWMtMy41IDMuMS01LjUgNy42LTUuNSAxMi40IDAgOS4yIDcuNCAxNi42IDE2LjYgMTYuNnoiXX0sRWplPWlILFBqZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJldGhlcm5ldCIsaWNvbjpbNTEyLDUxMixbXSwiZjc5NiIsIk0wIDIyNEwwIDQxNmMwIDE3LjcgMTQuMyAzMiAzMiAzMmwzMiAwIDAtMTA0YzAtMTMuMyAxMC43LTI0IDI0LTI0czI0IDEwLjcgMjQgMjRsMCAxMDQgNjQgMCAwLTEwNGMwLTEzLjMgMTAuNy0yNCAyNC0yNHMyNCAxMC43IDI0IDI0bDAgMTA0IDY0IDAgMC0xMDRjMC0xMy4zIDEwLjctMjQgMjQtMjRzMjQgMTAuNyAyNCAyNGwwIDEwNCA2NCAwIDAtMTA0YzAtMTMuMyAxMC43LTI0IDI0LTI0czI0IDEwLjcgMjQgMjRsMCAxMDQgMzIgMGMxNy43IDAgMzItMTQuMyAzMi0zMmwwLTE5MmMwLTE3LjctMTQuMy0zMi0zMi0zMmwtMzIgMCAwLTMyYzAtMTcuNy0xNC4zLTMyLTMyLTMybC0zMiAwIDAtMzJjMC0xNy43LTE0LjMtMzItMzItMzJMMTYwIDY0Yy0xNy43IDAtMzIgMTQuMy0zMiAzMmwwIDMyLTMyIDBjLTE3LjcgMC0zMiAxNC4zLTMyIDMybDAgMzItMzIgMGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJ6Il19LHJIPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImhyeXZuaWEtc2lnbiIsaWNvbjpbMzg0LDUxMixbODM3MiwiaHJ5dm5pYSJdLCJmNmYyIiwiTTMzNiAxNDkuNEMzMzYgNzcgMjY4LjUgMjMuNSAxOTggNDAuMUw5My4yIDY0LjlDNzYgNjguOSA2NS40IDg2LjIgNjkuNCAxMDMuNHMyMS4zIDI3LjkgMzguNSAyMy44bDEwNC44LTI0LjdjMzAuMy03LjEgNTkuMyAxNS44IDU5LjMgNDYuOSAwIDE3LjYtOS42IDMzLjgtMjUgNDIuM2wtLjcgLjQtMjIyLjMgMGMtMTMuMyAwLTI0IDEwLjctMjQgMjRzMTAuNyAyNCAyNCAyNGwzMzYgMGMxMy4zIDAgMjQtMTAuNyAyNC0yNHMtMTAuNy0yNC0yNC0yNGwtMzIuNCAwYzUuNS0xMy4zIDguNC0yNy44IDguNC00Mi42ek0zNjAgMjcyTDI0IDI3MmMtMTMuMyAwLTI0IDEwLjctMjQgMjRzMTAuNyAyNCAyNCAyNGwzMy4zIDBjLTYuMSAxMy40LTkuMyAyOC4xLTkuMyA0My4zIDAgNjQuMSA1Ni45IDExMy40IDEyMC40IDEwNC4ybDEzNy45LTE5LjljMTcuNS0yLjUgMjkuNi0xOC43IDI3LjEtMzYuMnMtMTguOC0yOS42LTM2LjItMjcuMUwxNTkuMiA0MDQuMmMtMjQuOSAzLjYtNDcuMi0xNS43LTQ3LjItNDAuOSAwLTE1LjEgOC4yLTI4LjkgMjEuNC0zNi4ybDEzLTcuMSAyMTMuNiAwYzEzLjMgMCAyNC0xMC43IDI0LTI0cy0xMC43LTI0LTI0LTI0eiJdfSxJamU9ckgsdWc9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZXllLXNsYXNoIixpY29uOls1NzYsNTEyLFtdLCJmMDcwIiwiTTQxLTI0LjljLTkuNC05LjQtMjQuNi05LjQtMzMuOSAwUy0yLjMtLjMgNyA5LjFsNTI4IDUyOGM5LjQgOS40IDI0LjYgOS40IDMzLjkgMHM5LjQtMjQuNiAwLTMzLjlsLTk2LjQtOTYuNGMyLjctMi40IDUuNC00LjggOC03LjIgNDYuOC00My41IDc4LjEtOTUuNCA5My0xMzEuMSAzLjMtNy45IDMuMy0xNi43IDAtMjQuNi0xNC45LTM1LjctNDYuMi04Ny43LTkzLTEzMS4xLTQ3LjEtNDMuNy0xMTEuOC04MC42LTE5Mi42LTgwLjYtNTYuOCAwLTEwNS42IDE4LjItMTQ2IDQ0LjJMNDEtMjQuOXpNMjA0LjUgMTM4LjdjMjMuNS0xNi44IDUyLjQtMjYuNyA4My41LTI2LjcgNzkuNSAwIDE0NCA2NC41IDE0NCAxNDQgMCAzMS4xLTkuOSA1OS45LTI2LjcgODMuNWwtMzQuNy0zNC43YzEyLjctMjEuNCAxNy00Ny43IDEwLjEtNzMuNy0xMy43LTUxLjItNjYuNC04MS42LTExNy42LTY3LjktOC42IDIuMy0xNi43IDUuNy0yNCAxMGwtMzQuNy0zNC43ek0zMjUuMyAzOTUuMWMtMTEuOSAzLjItMjQuNCA0LjktMzcuMyA0LjktNzkuNSAwLTE0NC02NC41LTE0NC0xNDQgMC0xMi45IDEuNy0yNS40IDQuOS0zNy4zTDY5LjQgMTM5LjJjLTMyLjYgMzYuOC01NSA3NS44LTY2LjkgMTA0LjUtMy4zIDcuOS0zLjMgMTYuNyAwIDI0LjYgMTQuOSAzNS43IDQ2LjIgODcuNyA5MyAxMzEuMSA0Ny4xIDQzLjcgMTExLjggODAuNiAxOTIuNiA4MC42IDM3LjMgMCA3MS4yLTcuOSAxMDEuNS0yMC42bC02NC4yLTY0LjJ6Il19LHNIPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImNhcnQtZmxhdGJlZC1zdWl0Y2FzZSIsaWNvbjpbNTc2LDUxMixbImx1Z2dhZ2UtY2FydCJdLCJmNTlkIiwiTTAgMzJDMCAxNC4zIDE0LjMgMCAzMiAwTDQ4IDBjNDQuMiAwIDgwIDM1LjggODAgODBsMCAyODhjMCA4LjggNy4yIDE2IDE2IDE2bDQwMCAwYzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMybC0zNC43IDBjMS44IDUgMi43IDEwLjQgMi43IDE2IDAgMjYuNS0yMS41IDQ4LTQ4IDQ4cy00OC0yMS41LTQ4LTQ4YzAtNS42IDEtMTEgMi43LTE2bC0xOTcuNSAwYzEuOCA1IDIuNyAxMC40IDIuNyAxNiAwIDI2LjUtMjEuNSA0OC00OCA0OHMtNDgtMjEuNS00OC00OGMwLTYgMS4xLTExLjcgMy4xLTE3LTM4LjEtNi4yLTY3LjEtMzkuMi02Ny4xLTc5TDY0IDgwYzAtOC44LTcuMi0xNi0xNi0xNkwzMiA2NEMxNC4zIDY0IDAgNDkuNyAwIDMyek0xNzYgMTQ0YzAtMjYuNSAyMS41LTQ4IDQ4LTQ4bDMyIDAgMC0yNGMwLTMwLjkgMjUuMS01NiA1Ni01Nmw2NCAwYzMwLjkgMCA1NiAyNS4xIDU2IDU2bDAgMjQgMzIgMGMyNi41IDAgNDggMjEuNSA0OCA0OGwwIDE0NGMwIDI2LjUtMjEuNSA0OC00OCA0OGwtMjQwIDBjLTI2LjUgMC00OC0yMS41LTQ4LTQ4bDAtMTQ0ek0zODQgOTZsMC0yNGMwLTQuNC0zLjYtOC04LThsLTY0IDBjLTQuNCAwLTggMy42LTggOGwwIDI0IDgwIDB6Il19LE5qZT1zSCxGamU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToicmFkaWF0aW9uIixpY29uOls1NzYsNTEyLFtdLCJmN2I5IiwiTTQ0Ni4yIDM0LjVjLTE0LjItMTAuMS0zMy41LTQuNi00Mi4yIDEwLjVMMzMxLjYgMTcwLjNjMzEuMyAxNS44IDUyLjggNDguMyA1Mi44IDg1LjdsMTQ0IDBjMTcuNyAwIDMyLjItMTQuNCAzMC4xLTMxLjktOS4xLTc4LjEtNTEuNC0xNDYuMS0xMTIuMy0xODkuNnpNMTcyLjcgNDQuOUMxNjQgMjkuOCAxNDQuNyAyNC4zIDEzMC41IDM0LjUgNjkuNiA3Ny45IDI3LjMgMTQ1LjkgMTguMiAyMjQuMSAxNi4xIDI0MS42IDMwLjcgMjU2IDQ4LjMgMjU2bDE0NCAwYzAtMzcuNSAyMS41LTY5LjkgNTIuOC04NS43TDE3Mi43IDQ0Ljl6bS05LjQgNDE2LjhjLTguNyAxNS4xLTMuOCAzNC41IDEyIDQxLjggMzQuNCAxNS43IDcyLjcgMjQuNSAxMTMgMjQuNXM3OC42LTguOCAxMTMtMjQuNWMxNS44LTcuMiAyMC43LTI2LjcgMTItNDEuOEwzNDEgMzM2LjNjLTE1LjEgOS45LTMzLjIgMTUuNy01Mi42IDE1LjdzLTM3LjUtNS44LTUyLjYtMTUuN0wxNjMuMyA0NjEuN3pNMjg4LjMgMzA0YTQ4IDQ4IDAgMSAwIC0uNy05NiA0OCA0OCAwIDEgMCAuNyA5NnoiXX0sT2plPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImZpbGUtd29yZCIsaWNvbjpbMzg0LDUxMixbXSwiZjFjMiIsIk0wIDY0QzAgMjguNyAyOC43IDAgNjQgMEwyMTMuNSAwYzE3IDAgMzMuMyA2LjcgNDUuMyAxOC43TDM2NS4zIDEyNS4zYzEyIDEyIDE4LjcgMjguMyAxOC43IDQ1LjNMMzg0IDQ0OGMwIDM1LjMtMjguNyA2NC02NCA2NEw2NCA1MTJjLTM1LjMgMC02NC0yOC43LTY0LTY0TDAgNjR6bTIwOC01LjVsMCA5My41YzAgMTMuMyAxMC43IDI0IDI0IDI0TDMyNS41IDE3NiAyMDggNTguNXpNMTM1LjQgMjc0LjhjLTIuOS0xMi45LTE1LjctMjEuMS0yOC42LTE4LjJzLTIxLjEgMTUuNy0xOC4yIDI4LjZsMzIgMTQ0YzIuMyAxMC41IDExLjQgMTguMiAyMi4yIDE4LjhzMjAuNi02LjEgMjQtMTYuNGwyNS4yLTc1LjcgMjUuMiA3NS43YzMuNCAxMC4yIDEzLjIgMTYuOSAyNCAxNi40czE5LjktOC4yIDIyLjItMTguOGwzMi0xNDRjMi45LTEyLjktNS4zLTI1LjgtMTguMi0yOC42cy0yNS44IDUuMy0yOC42IDE4LjJsLTEzLjIgNTkuNC0yMC42LTYxLjhjLTMuMy05LjgtMTIuNC0xNi40LTIyLjgtMTYuNHMtMTkuNSA2LjYtMjIuOCAxNi40bC0yMC42IDYxLjgtMTMuMi01OS40eiJdfSxuSD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJiZWQtcHVsc2UiLGljb246WzY0MCw1MTIsWyJwcm9jZWR1cmVzIl0sImY0ODciLCJNNTMxLjItMjIuNEw1NzIgMzIgNjE2IDMyYzEzLjMgMCAyNCAxMC43IDI0IDI0cy0xMC43IDI0LTI0IDI0bC01NiAwYy03LjYgMC0xNC43LTMuNi0xOS4yLTkuNmwtMjQuMS0zMi4xLTQ3IDk5LjljLTMuNyA3LjgtMTEuMyAxMy4xLTE5LjkgMTMuN3MtMTYuOS0zLjQtMjEuNy0xMC42TDM4Ny4yIDgwIDM0NCA4MGMtMTMuMyAwLTI0LTEwLjctMjQtMjRzMTAuNy0yNCAyNC0yNGw1NiAwYzggMCAxNS41IDQgMjAgMTAuN2wyNC40IDM2LjYgNDUuOS05Ny41YzMuNi03LjYgMTAuOS0xMi44IDE5LjMtMTMuN3MxNi42IDIuNyAyMS42IDkuNXpNMzIwIDE2MGMwLTE3LjcgMTQuMy0zMiAzMi0zMmw5LjUgMCAyNi42IDM5LjljMTQuNCAyMS42IDM5LjMgMzMuOCA2NS4yIDMxLjlzNDguOC0xNy42IDU5LjgtNDEuMUw1MjcgMTI5LjJjNDUuOSA3LjIgODEgNDYuOSA4MSA5NC44bDAgMjI0YzAgMTcuNy0xNC4zIDMyLTMyIDMycy0zMi0xNC4zLTMyLTMybDAtNjQtNDQ4IDAgMCA2NGMwIDE3LjctMTQuMyAzMi0zMiAzMnMtMzItMTQuMy0zMi0zMkwzMiA2NGMwLTE3LjcgMTQuMy0zMiAzMi0zMlM5NiA0Ni4zIDk2IDY0bDAgMjI0IDIyNCAwIDAtMTI4ek0xNDQgMTkyYTY0IDY0IDAgMSAxIDEyOCAwIDY0IDY0IDAgMSAxIC0xMjggMHoiXX0sUmplPW5ILEJqZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJ0ZW50cyIsaWNvbjpbNTc2LDUxMixbXSwiZTU4MiIsIk01MzkuOSAzNTJsLTk1LjYgMC04LjQtNjYuMWMtMi45LTIzLjItMTUuOS00My45LTM1LjQtNTYuOEwyNTIuMiAxMzEuNWMtMTgtMTEuOS0zOS43LTE1LjctNjAuMS0xMS41IDIuNS00LjMgNS45LTcuOSAxMC4xLTEwLjdMMzUwLjYgMTEuNmMxMC43LTcgMjQuNS03IDM1LjIgMGwxNDguNCA5Ny43YzcuOCA1LjEgMTMgMTMuNCAxNC4yIDIyLjdsMjMuMyAxODRjMi40IDE5LjEtMTIuNSAzNi0zMS43IDM2ek00LjggNDc2bDIzLjMtMTg0YzEuMi05LjMgNi4zLTE3LjYgMTQuMi0yMi43bDE0OC40LTk3LjdjMTAuNy03IDI0LjUtNyAzNS4yIDBsMTQ4LjQgOTcuN2M3LjggNS4xIDEzIDEzLjQgMTQuMiAyMi43bDIzLjMgMTg0YzIuNCAxOS4xLTEyLjUgMzYtMzEuNyAzNmwtNDkuNyAwYy0xMS4yIDAtMjEuNS01LjgtMjcuMy0xNS40bC03Ny0xMjYuN2MtMS43LTIuOC00LjgtNC42LTguMS00LjYtNS4zIDAtOS41IDQuMy05LjUgOS41bDAgMTA1LjJjMCAxNy43LTE0LjMgMzItMzIgMzJMMzYuNSA1MTJjLTE5LjMgMC0zNC4yLTE2LjktMzEuNy0zNnoiXX0sZmc9e3ByZWZpeDoiZmFzIixpY29uTmFtZToibXVnLWhvdCIsaWNvbjpbNTc2LDUxMixbOTc0OV0sImY3YjYiLCJNMTUyLTE2Yy0xMy4zIDAtMjQgMTAuNy0yNCAyNCAwIDM4LjkgMjMuNCA1OS40IDM5LjEgNzMuMWwxLjEgMWMxNi4zIDE0LjMgMjMuOCAyMS44IDIzLjggMzcuOSAwIDEzLjMgMTAuNyAyNCAyNCAyNHMyNC0xMC43IDI0LTI0YzAtMzguOS0yMy40LTU5LjQtMzkuMS03My4xbC0xLjEtMUMxODMuNSAzMS43IDE3NiAyNC4xIDE3NiA4IDE3Ni01LjMgMTY1LjMtMTYgMTUyLTE2ek05NiAxOTJjLTE3LjcgMC0zMiAxNC4zLTMyIDMybDAgMTkyYzAgNTMgNDMgOTYgOTYgOTZsMTkyIDBjNDEuOCAwIDc3LjQtMjYuNyA5MC41LTY0bDUuNSAwYzcwLjcgMCAxMjgtNTcuMyAxMjgtMTI4UzUxOC43IDE5MiA0NDggMTkyTDk2IDE5MnpNNDQ4IDM4NGwwLTEyOGMzNS4zIDAgNjQgMjguNyA2NCA2NHMtMjguNyA2NC02NCA2NHpNMjg4IDhjMC0xMy4zLTEwLjctMjQtMjQtMjRTMjQwLTUuMyAyNDAgOGMwIDM4LjkgMjMuNCA1OS40IDM5LjEgNzMuMWwxLjEgMWMxNi4zIDE0LjMgMjMuOCAyMS44IDIzLjggMzcuOSAwIDEzLjMgMTAuNyAyNCAyNCAyNHMyNC0xMC43IDI0LTI0YzAtMzguOS0yMy40LTU5LjQtMzkuMS03My4xbC0xLjEtMUMyOTUuNSAzMS43IDI4OCAyNC4xIDI4OCA4eiJdfSxvSD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJib2x0IixpY29uOls0NDgsNTEyLFs5ODg5LCJ6YXAiXSwiZjBlNyIsIk0zMzguOC05LjljMTEuOSA4LjYgMTYuMyAyNC4yIDEwLjkgMzcuOEwyNzEuMyAyMjQgNDE2IDIyNGMxMy41IDAgMjUuNSA4LjQgMzAuMSAyMS4xcy43IDI2LjktOS42IDM1LjVsLTI4OCAyNDBjLTExLjMgOS40LTI3LjQgOS45LTM5LjMgMS4zcy0xNi4zLTI0LjItMTAuOS0zNy44TDE3Ni43IDI4OCAzMiAyODhjLTEzLjUgMC0yNS41LTguNC0zMC4xLTIxLjFzLS43LTI2LjkgOS42LTM1LjVsMjg4LTI0MGMxMS4zLTkuNCAyNy40LTkuOSAzOS4zLTEuM3oiXX0sSGplPW9ILHFqZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJqYXIiLGljb246WzMyMCw1MTIsW10sImU1MTYiLCJNMzItOGMwLTEzLjMgMTAuNy0yNCAyNC0yNGwyMDggMGMxMy4zIDAgMjQgMTAuNyAyNCAyNHMtMTAuNyAyNC0yNCAyNEw1NiAxNkM0Mi43IDE2IDMyIDUuMyAzMi04ek0wIDEyOEMwIDkyLjcgMjguNyA2NCA2NCA2NGwxOTIgMGMzNS4zIDAgNjQgMjguNyA2NCA2NGwwIDMyMGMwIDM1LjMtMjguNyA2NC02NCA2NEw2NCA1MTJjLTM1LjMgMC02NC0yOC43LTY0LTY0TDAgMTI4em05NiA2NGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJsMCAxMjhjMCAxNy43IDE0LjMgMzIgMzIgMzJsMTI4IDBjMTcuNyAwIDMyLTE0LjMgMzItMzJsMC0xMjhjMC0xNy43LTE0LjMtMzItMzItMzJMOTYgMTkyeiJdfSxWamU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToidHJ1Y2stcGxhbmUiLGljb246WzY0MCw1MTIsW10sImU1OGYiLCJNMTQ0IDQ4YzAtMjYuNSAyMS41LTQ4IDQ4LTQ4czQ4IDIxLjUgNDggNDhsMCAzMjBjMCAzMi41IDEyLjEgNjIuMSAzMiA4NC43bDAgMjcuM2MwIDcuMSAuOSAxNC4xIDIuNyAyMC43TDE5MiA0ODAgODMuOSA1MDdDNzMuOCA1MDkuNiA2NCA1MDEuOSA2NCA0OTEuNWwwLTE5LjhjMC00LjkgMi4yLTkuNSA2LTEyLjVsNzQtNTkuMiAwLTU3LjYtMTIyLjEgNDguOEMxMS40IDM5NS40IDAgMzg3LjcgMCAzNzYuNGwwLTQ0YzAtOCAzLTE1LjYgOC4zLTIxLjVMMTQ0IDE2MS42IDE0NCA0OHptMjI0IDgwbDE5MiAwYzQ0LjIgMCA4MCAzNS44IDgwIDgwbDAgMTYwYzAgMjYuMi0xMi42IDQ5LjQtMzIgNjRsMCA0OGMwIDE3LjctMTQuMyAzMi0zMiAzMnMtMzItMTQuMy0zMi0zMmwwLTMyLTE2MCAwIDAgMzJjMCAxNy43LTE0LjMgMzItMzIgMzJzLTMyLTE0LjMtMzItMzJsMC00OGMtMTkuNC0xNC42LTMyLTM3LjgtMzItNjRsMC0xNjBjMC00NC4yIDM1LjgtODAgODAtODB6bTAgMTc2bDE5MiAwIDAtMzJjMC0xNy43LTE0LjMtMzItMzItMzJsLTEyOCAwYy0xNy43IDAtMzIgMTQuMy0zMiAzMmwwIDMyem0wIDg4YTI0IDI0IDAgMSAwIDAtNDggMjQgMjQgMCAxIDAgMCA0OHptMjE2LTI0YTI0IDI0IDAgMSAwIC00OCAwIDI0IDI0IDAgMSAwIDQ4IDB6Il19LGpqZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJoYW5kLWhvbGRpbmctaGVhcnQiLGljb246WzU3Niw1MTIsW10sImY0YmUiLCJNMjc5LjYgMzFDMjY1LjUgMTEuNSAyNDIuOSAwIDIxOC45IDAgMTc3LjUgMCAxNDQgMzMuNSAxNDQgNzQuOWwwIDIuNGMwIDY0LjQgODIgMTMzLjQgMTIyLjIgMTYzLjMgMTMgOS43IDMwLjUgOS43IDQzLjUgMCA0MC4yLTMwIDEyMi4yLTk4LjkgMTIyLjItMTYzLjNsMC0yLjRjMC00MS40LTMzLjUtNzQuOS03NC45LTc0LjktMjQgMC00Ni42IDExLjUtNjAuNyAzMUwyODggNDIuNyAyNzkuNiAzMXpNMTA5LjMgMzQxLjVMNjYuNyAzODQgMzIgMzg0Yy0xNy43IDAtMzIgMTQuMy0zMiAzMmwwIDY0YzAgMTcuNyAxNC4zIDMyIDMyIDMybDMyMC41IDBjMjkgMCA1Ny4zLTkuMyA4MC43LTI2LjVsMTI2LjYtOTMuM2MxNy44LTEzLjEgMjEuNi0zOC4xIDguNS01NS45cy0zOC4xLTIxLjYtNTUuOS04LjVMMzkyLjYgNDE2IDI4MCA0MTZjLTEzLjMgMC0yNC0xMC43LTI0LTI0czEwLjctMjQgMjQtMjRsNzIgMGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMmwtMTUyLjIgMGMtMzMuOSAwLTY2LjUgMTMuNS05MC41IDM3LjV6Il19LHBsPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImFycm93LXJvdGF0ZS1sZWZ0IixpY29uOls1MTIsNTEyLFs4NjM0LCJhcnJvdy1sZWZ0LXJvdGF0ZSIsImFycm93LXJvdGF0ZS1iYWNrIiwiYXJyb3ctcm90YXRlLWJhY2t3YXJkIiwidW5kbyJdLCJmMGUyIiwiTTI1NiA2NGMtNTYuOCAwLTEwNy45IDI0LjctMTQzLjEgNjRsNDcuMSAwYzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMyTDMyIDE5MmMtMTcuNyAwLTMyLTE0LjMtMzItMzJMMCAzMkMwIDE0LjMgMTQuMyAwIDMyIDBTNjQgMTQuMyA2NCAzMmwwIDU0LjdDMTEwLjkgMzMuNiAxNzkuNSAwIDI1NiAwIDM5Ny40IDAgNTEyIDExNC42IDUxMiAyNTZTMzk3LjQgNTEyIDI1NiA1MTJjLTg3IDAtMTYzLjktNDMuNC0yMTAuMS0xMDkuNy0xMC4xLTE0LjUtNi42LTM0LjQgNy45LTQ0LjZzMzQuNC02LjYgNDQuNiA3LjljMzQuOCA0OS44IDkyLjQgODIuMyAxNTcuNiA4Mi4zIDEwNiAwIDE5Mi04NiAxOTItMTkyUzM2MiA2NCAyNTYgNjR6Il19LFVqZT1wbCxXamU9cGwsR2plPXBsLFlqZT1wbCxsSD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJmYWNlLWFuZ3J5IixpY29uOls1MTIsNTEyLFsxMjg1NDQsImFuZ3J5Il0sImY1NTYiLCJNMCAyNTZhMjU2IDI1NiAwIDEgMSA1MTIgMCAyNTYgMjU2IDAgMSAxIC01MTIgMHpNMjU2IDM2OGMyNC4xIDAgNDUuNCAxMS44IDU4LjUgMzAgNy43IDEwLjggMjIuNyAxMy4yIDMzLjUgNS41czEzLjItMjIuNyA1LjUtMzMuNWMtMjEuNy0zMC4yLTU3LjMtNTAtOTcuNS01MHMtNzUuNyAxOS44LTk3LjUgNTBjLTcuNyAxMC44LTUuMyAyNS44IDUuNSAzMy41czI1LjggNS4zIDMzLjUtNS41YzEzLjEtMTguMiAzNC40LTMwIDU4LjUtMzB6bS04MC05NmMxNy43IDAgMzItMTQuMyAzMi0zMmwwLS4zIDkuNyAzLjJjMTAuNSAzLjUgMjEuOC0yLjIgMjUuMy0xMi42cy0yLjItMjEuOC0xMi42LTI1LjNsLTk2LTMyYy0xMC41LTMuNS0yMS44IDIuMi0yNS4zIDEyLjZzMi4yIDIxLjggMTIuNiAyNS4zbDI4LjkgOS42Yy00LjEgNS40LTYuNiAxMi4xLTYuNiAxOS40IDAgMTcuNyAxNC4zIDMyIDMyIDMyem0xOTItMzJjMC03LjMtMi40LTE0LTYuNi0xOS40bDI4LjktOS42YzEwLjUtMy41IDE2LjEtMTQuOCAxMi42LTI1LjNzLTE0LjgtMTYuMS0yNS4zLTEyLjZsLTk2IDMyYy0xMC41IDMuNS0xNi4xIDE0LjgtMTIuNiAyNS4zczE0LjggMTYuMSAyNS4zIDEyLjZsOS43LTMuMiAwIC4zYzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJ6Il19LFpqZT1sSCxYamU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiYnVyc3QiLGljb246WzUxMiw1MTIsW10sImU0ZGMiLCJNMzcuNiA0LjJDMjgtMi4zIDE1LjItMS4xIDcgN1MtMi4zIDI4IDQuMiAzNy42bDExMiAxNjMuMy05OS42IDMyLjNDNi43IDIzNi40IDAgMjQ1LjYgMCAyNTZzNi43IDE5LjYgMTYuNiAyMi44bDEwMy4xIDMzLjQtNTIuOSAxMDAuNmMtNC45IDkuMy0zLjIgMjAuNyA0LjMgMjguMXMxOC44IDkuMiAyOC4xIDQuM2wxMDAuNi01Mi45IDMzLjQgMTAzLjFjMy4yIDkuOSAxMi40IDE2LjYgMjIuOCAxNi42czE5LjYtNi43IDIyLjgtMTYuNmwzMy40LTEwMy4xIDEwMC42IDUyLjljOS4zIDQuOSAyMC43IDMuMiAyOC4xLTQuM3M5LjItMTguOCA0LjMtMjguMWwtNTIuOS0xMDAuNiAxMDMuMS0zMy40YzkuOS0zLjIgMTYuNi0xMi40IDE2LjYtMjIuOHMtNi43LTE5LjYtMTYuNi0yMi44bC0xMDYuNS0zNC41IDI1LjctNzAuNGMzLjItOC44IDEtMTguNi01LjYtMjUuMnMtMTYuNC04LjgtMjUuMi01LjZsLTcwLjQgMjUuNy0zNC41LTEwNi41QzI3NS42IDYuNyAyNjYuNCAwIDI1NiAwcy0xOS42IDYuNy0yMi44IDE2LjZMMjAwLjkgMTE2LjIgMzcuNiA0LjJ6Il19LEtqZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJ6IixpY29uOlszODQsNTEyLFsxMjJdLCI1YSIsIk0wIDY0QzAgNDYuMyAxNC4zIDMyIDMyIDMybDMyMCAwYzEyLjQgMCAyMy43IDcuMiAyOSAxOC40czMuNiAyNC41LTQuNCAzNC4xTDEwMC4zIDQxNiAzNTIgNDE2YzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMyTDMyIDQ4MGMtMTIuNCAwLTIzLjctNy4yLTI5LTE4LjRzLTMuNi0yNC41IDQuNC0zNC4xTDI4My43IDk2IDMyIDk2QzE0LjMgOTYgMCA4MS43IDAgNjR6Il19LGNIPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImJhbmRhZ2UiLGljb246WzU3Niw1MTIsWzEyOTY1NywiYmFuZC1haWQiXSwiZjQ2MiIsIk00NjQgNDE2bDQ4IDBjMzUuMyAwIDY0LTI4LjcgNjQtNjRsMC0xOTJjMC0zNS4zLTI4LjctNjQtNjQtNjRsLTQ4IDAgMCAzMjB6TTQxNiA5NmwtMjU2IDAgMCAzMjAgMjU2IDAgMC0zMjB6TTY0IDk2QzI4LjcgOTYgMCAxMjQuNyAwIDE2MEwwIDM1MmMwIDM1LjMgMjguNyA2NCA2NCA2NGw0OCAwIDAtMzIwLTQ4IDB6TTIxNiAyMDhhMjQgMjQgMCAxIDEgNDggMCAyNCAyNCAwIDEgMSAtNDggMHptMTIwLTI0YTI0IDI0IDAgMSAxIDAgNDggMjQgMjQgMCAxIDEgMC00OHpNMjE2IDMwNGEyNCAyNCAwIDEgMSA0OCAwIDI0IDI0IDAgMSAxIC00OCAwem0xMjAtMjRhMjQgMjQgMCAxIDEgMCA0OCAyNCAyNCAwIDEgMSAwLTQ4eiJdfSxRamU9Y0gsSmplPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InBsYW5lLWNpcmNsZS1leGNsYW1hdGlvbiIsaWNvbjpbNjQwLDUxMixbXSwiZTU1NiIsIk0yMzIgMjRjMC0zMC45IDI1LjEtNTYgNTYtNTZzNTYgMjUuMSA1NiA1NmwwIDEyNy4zIDc4IDcxLjVjLTY5LjMgMjktMTE4IDk3LjQtMTE4IDE3Ny4yIDAgNDkuMyAxOC42IDk0LjMgNDkuMSAxMjguM0wyODggNTEyIDE3OS45IDUzOWMtMTAuMSAyLjUtMTkuOS01LjEtMTkuOS0xNS41bDAtMTkuOGMwLTQuOSAyLjItOS41IDYtMTIuNWw2Ni01Mi44IDAtOTkuNy0xNjIuOSA1NC4zQzU4LjcgMzk2LjQgNDggMzg4LjcgNDggMzc3LjhsMC00My43YzAtOSAzLjgtMTcuNSAxMC40LTIzLjZMMjMyIDE1MS4zIDIzMiAyNHpNNDk2IDI1NmExNDQgMTQ0IDAgMSAxIDAgMjg4IDE0NCAxNDQgMCAxIDEgMC0yODh6bTAgMjI4YTIwIDIwIDAgMSAwIDAtNDAgMjAgMjAgMCAxIDAgMCA0MHptMC0xODBjLTguOCAwLTE2IDcuMi0xNiAxNmwwIDgwYzAgOC44IDcuMiAxNiAxNiAxNnMxNi03LjIgMTYtMTZsMC04MGMwLTguOC03LjItMTYtMTYtMTZ6Il19LGVVZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJidXMtc2lkZSIsaWNvbjpbNjQwLDUxMixbXSwiZTgxZCIsIk00ODAgMGM4OC40IDAgMTYwIDcxLjYgMTYwIDE2MGwwIDIyNGMwIDM1LjMtMjguNyA2NC02NCA2NGwtNS42IDBjLTEzLjIgMzcuMy00OC42IDY0LTkwLjQgNjRzLTc3LjMtMjYuNy05MC40LTY0bC0xMzkuMSAwYy0xMy4yIDM3LjMtNDguNyA2NC05MC40IDY0cy03Ny4yLTI2LjctOTAuNC02NEw2NCA0NDhjLTM1LjMgMC02NC0yOC43LTY0LTY0TDAgOTZDMCA0MyA0MyAwIDk2IDBMNDgwIDB6TTE2MCAzNjhhNDggNDggMCAxIDAgMCA5NiA0OCA0OCAwIDEgMCAwLTk2em0zMjAgMGE0OCA0OCAwIDEgMCAwIDk2IDQ4IDQ4IDAgMSAwIDAtOTZ6bTAtMzA0Yy0xNy43IDAtMzIgMTQuMy0zMiAzMmwwIDE5MmMwIDE3LjcgMTQuMyAzMiAzMiAzMmw2NCAwYzE3LjcgMCAzMi0xNC4zIDMyLTMybDAtMTI4YzAtNTMtNDMtOTYtOTYtOTZ6TTI0OCAyMjRsMTA0IDBjMTcuNyAwIDMyLTE0LjMgMzItMzJsMC05NmMwLTE3LjctMTQuMy0zMi0zMi0zMmwtMTA0IDAgMCAxNjB6TTk2IDY0Qzc4LjMgNjQgNjQgNzguMyA2NCA5NmwwIDk2YzAgMTcuNyAxNC4zIDMyIDMyIDMybDEwNCAwIDAtMTYwLTEwNCAweiJdfSx0VWU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiYnVncyIsaWNvbjpbNTc2LDUxMixbXSwiZTRkMCIsIk00NDcuNSAxNzQuNmM4LjgtOC40IDIyLjctOC45IDMyLjItLjhzMTEgMjEuOSA0LjEgMzEuOWwtMS41IDEuOS0yMyAyNi43YzI2LjcgMTMuNSA0Ni4zIDM5LjEgNTEuNCA2OS42bDI1LjMgMGMxMy4zIDAgMjQgMTAuNyAyNCAyNHMtMTAuNyAyNC0yNCAyNGwtMjQgMCAwIDMyIDI0IDBjMTMuMyAwIDI0IDEwLjcgMjQgMjRzLTEwLjcgMjQtMjQgMjRsLTI1LjMgMGMtNy42IDQ1LjQtNDcuMSA4MC05NC43IDgwcy04Ny0zNC42LTk0LjctODBMMjk2IDQzMmMtMTMuMyAwLTI0LTEwLjctMjQtMjRzMTAuNy0yNCAyNC0yNGwyNCAwIDAtMzItMjQgMGMtMTMuMyAwLTI0LTEwLjctMjQtMjRzMTAuNy0yNCAyNC0yNGwyNS4zIDBjNS4xLTMwLjUgMjQuNy01Ni4xIDUxLjQtNjkuNmwtMjIuOS0yNi43Yy04LjYtMTAuMS03LjUtMjUuMiAyLjYtMzMuOHMyNS4yLTcuNSAzMy44IDIuNmwyOS44IDM0LjggMjkuOC0zNC44IDEuNy0xLjh6bS0yNTYtMTkyYzguOC04LjQgMjIuNy04LjkgMzIuMi0uOHMxMSAyMS45IDQuMSAzMS45bC0xLjUgMS45LTIzIDI2LjdDMjMwIDU1LjkgMjQ5LjUgODEuNSAyNTQuNyAxMTJsMjUuMyAwYzEzLjMgMCAyNCAxMC43IDI0IDI0cy0xMC43IDI0LTI0IDI0bC0yNCAwIDAgMzIgMjQgMGMxMy4zIDAgMjQgMTAuNyAyNCAyNHMtMTAuNyAyNC0yNCAyNGwtMjUuMyAwYy03LjYgNDUuNC00Ny4xIDgwLTk0LjcgODBzLTg3LTM0LjYtOTQuNy04MEw0MCAyNDBjLTEzLjMgMC0yNC0xMC43LTI0LTI0czEwLjctMjQgMjQtMjRsMjQgMCAwLTMyLTI0IDBjLTEzLjMgMC0yNC0xMC43LTI0LTI0czEwLjctMjQgMjQtMjRsMjUuMyAwQzcwLjUgODEuNSA5MCA1NS45IDExNi43IDQyLjRMOTMuOCAxNS42Qzg1LjIgNS42IDg2LjMtOS42IDk2LjQtMTguMnMyNS4yLTcuNSAzMy44IDIuNmwyOS44IDM0LjggMjkuOC0zNC44IDEuNy0xLjh6Il19LGRIPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImJlZXItbXVnLWVtcHR5IixpY29uOls1NzYsNTEyLFsiYmVlciJdLCJmMGZjIiwiTTY0IDgwYzAtMjYuNSAyMS41LTQ4IDQ4LTQ4bDI4OCAwYzI2LjUgMCA0OCAyMS41IDQ4IDQ4bDAgMTYgNjQgMGMzNS4zIDAgNjQgMjguNyA2NCA2NGwwIDEwOC4yYzAgMjQuMi0xMy43IDQ2LjQtMzUuNCA1Ny4yTDQ0OCAzNzEuOCA0NDggMzg0YzAgNTMtNDMgOTYtOTYgOTZsLTE5MiAwYy01MyAwLTk2LTQzLTk2LTk2TDY0IDgwek00NDggMzAwLjJsNjQtMzIgMC0xMDguMi02NCAwIDAgMTQwLjJ6TTE5MiAxNTJjMC0xMy4zLTEwLjctMjQtMjQtMjRzLTI0IDEwLjctMjQgMjRsMCAyMDhjMCAxMy4zIDEwLjcgMjQgMjQgMjRzMjQtMTAuNyAyNC0yNGwwLTIwOHptODggMGMwLTEzLjMtMTAuNy0yNC0yNC0yNHMtMjQgMTAuNy0yNCAyNGwwIDIwOGMwIDEzLjMgMTAuNyAyNCAyNCAyNHMyNC0xMC43IDI0LTI0bDAtMjA4em04OCAwYzAtMTMuMy0xMC43LTI0LTI0LTI0cy0yNCAxMC43LTI0IDI0bDAgMjA4YzAgMTMuMyAxMC43IDI0IDI0IDI0czI0LTEwLjcgMjQtMjRsMC0yMDh6Il19LGFVZT1kSCxpVWU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToicGVyc29uLWNpcmNsZS1jaGVjayIsaWNvbjpbNjQwLDUxMixbXSwiZTUzZSIsIk0yODAgMjRhNTYgNTYgMCAxIDAgLTExMiAwIDU2IDU2IDAgMSAwIDExMiAwem0yNCAyMTIuN0wzNDEgMjg2LjZjMTIuOC0xNy41IDI4LjUtMzIuNyA0Ni4zLTQ1bC01Ni4yLTc1LjdDMzA2IDEzMiAyNjYuMyAxMTIgMjI0IDExMnMtODIgMjAtMTA3LjIgNTMuOWwtNzAuNSA5NWMtMTAuNSAxNC4yLTcuNiAzNC4yIDYuNiA0NC44czM0LjIgNy42IDQ0LjgtNi42TDE0NCAyMzYuNyAxNDQgNTEyYzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJsMC0xNjBjMC04LjggNy4yLTE2IDE2LTE2czE2IDcuMiAxNiAxNmwwIDE2MGMwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMybDAtMjc1LjN6TTY0MCA0MDBhMTQ0IDE0NCAwIDEgMCAtMjg4IDAgMTQ0IDE0NCAwIDEgMCAyODggMHptLTg2LjYtNjAuOWM3LjEgNS4yIDguNyAxNS4yIDMuNSAyMi4zbC02NCA4OGMtMi44IDMuOC03IDYuMi0xMS43IDYuNXMtOS4zLTEuMy0xMi42LTQuNmwtNDAtNDBjLTYuMi02LjItNi4yLTE2LjQgMC0yMi42czE2LjQtNi4yIDIyLjYgMGwyNi44IDI2LjggNTMtNzIuOWM1LjItNy4xIDE1LjItOC43IDIyLjQtMy41eiJdfSxyVWU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToic3RhcGxlciIsaWNvbjpbNjQwLDUxMixbXSwiZTVhZiIsIk02NDAgMjk5LjNMNjQwIDQzMmMwIDI2LjUtMjEuNSA0OC00OCA0OEw2NCA0ODBjLTE3LjcgMC0zMi0xNC4zLTMyLTMyczE0LjMtMzIgMzItMzJsMzg0IDAgMC00OC0zNTIgMGMtMTcuNyAwLTMyLTE0LjMtMzItMzJsMC0xMTYuNi0zMC4yLTUuNGMtMTkuNi0zLjUtMzMuOC0yMC41LTMzLjgtNDAuNCAwLTguOSAyLjktMTcuNSA4LjItMjQuNmwzNS42LTQ3LjVjMzIuOC00My44IDg0LjQtNjkuNiAxMzkuMS02OS42IDI3IDAgNTMuNiA2LjMgNzcuOCAxOC40TDU4Ni45IDIxMy41QzYxOS41IDIyOS43IDY0MCAyNjMgNjQwIDI5OS4zek00NDggMzA0bDAtMTYtMzIwLTU3LjEgMCA3My4xIDMyMCAweiJdfSxzVWU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiaG91c2UtbWVkaWNhbC1jaXJjbGUtY2hlY2siLGljb246WzY0MCw1MTIsW10sImU1MTEiLCJNMzA5LjggOC42Yy0xMi4zLTExLjQtMzEuMy0xMS40LTQzLjUgMGwtMjI0IDIwOGMtOS42IDktMTIuOCAyMi45LTggMzUuMVM1MC44IDI3MiA2NCAyNzJsMTYgMCAwIDE3NmMwIDM1LjMgMjguNyA2NCA2NCA2NGwxOTYgMGMtMjEuMi0yOS41LTM0LjMtNjUuMy0zNS45LTEwNEwyNzIgNDA4Yy04LjggMC0xNi03LjItMTYtMTZsMC00MC00MCAwYy04LjggMC0xNi03LjItMTYtMTZsMC0zMmMwLTguOCA3LjItMTYgMTYtMTZsNDAgMCAwLTQwYzAtOC44IDcuMi0xNiAxNi0xNmwzMiAwYzguOCAwIDE2IDcuMiAxNiAxNmwwIDQwIDIwIDBjMzQuOS00OC41IDkxLjctODAgMTU2LTgwIDEwLjcgMCAyMS4xIC45IDMxLjMgMi41TDMwOS44IDguNnpNNjQwIDQwMGExNDQgMTQ0IDAgMSAwIC0yODggMCAxNDQgMTQ0IDAgMSAwIDI4OCAwem0tODYuNi02MC45YzcuMSA1LjIgOC43IDE1LjIgMy41IDIyLjNsLTY0IDg4Yy0yLjggMy44LTcgNi4yLTExLjcgNi41cy05LjMtMS4zLTEyLjYtNC42bC00MC00MGMtNi4yLTYuMi02LjItMTYuNCAwLTIyLjZzMTYuNC02LjIgMjIuNiAwbDI2LjggMjYuOCA1My03Mi45YzUuMi03LjEgMTUuMi04LjcgMjIuNC0zLjV6Il19LG5VZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJuYWlyYS1zaWduIixpY29uOls0NDgsNTEyLFtdLCJlMWY2IiwiTTEyMi42IDQ2LjNjLTcuOC0xMS43LTIyLjQtMTctMzUuOS0xMi45UzY0IDQ5LjkgNjQgNjRsMCAxOTItMzIgMGMtMTMuMyAwLTI0IDEwLjctMjQgMjRzMTAuNyAyNCAyNCAyNGwzMiAwIDAgMTQ0YzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJsMC0xNDQgODkuNSAwIDEwNy44IDE2MS44YzcuOCAxMS43IDIyLjQgMTcgMzUuOSAxMi45UzM4NCA0NjIuMSAzODQgNDQ4bDAtMTQ0IDMyIDBjMTMuMyAwIDI0LTEwLjcgMjQtMjRzLTEwLjctMjQtMjQtMjRsLTMyIDAgMC0xOTJjMC0xNy43LTE0LjMtMzItMzItMzJzLTMyIDE0LjMtMzIgMzJsMCAxOTItNTcuNSAwLTEzOS44LTIwOS43ek0yOTQuNSAzMDRsMjUuNSAwIDAgMzguMy0yNS41LTM4LjN6TTE4NS41IDI1NmwtNTcuNSAwIDAtODYuMyA1Ny41IDg2LjN6Il19LHFtPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6IndpZmkiLGljb246WzU3Niw1MTIsWyJ3aWZpLTMiLCJ3aWZpLXN0cm9uZyJdLCJmMWViIiwiTTI4OCA5NmMtOTAuOSAwLTE3My4yIDM2LTIzMy43IDk0LjYtMTIuNyAxMi4zLTMzIDEyLTQ1LjItLjdzLTEyLTMzIC43LTQ1LjJDODEuNyA3NC45IDE3OS45IDMyIDI4OCAzMlM0OTQuMyA3NC45IDU2Ni4zIDE0NC43YzEyLjcgMTIuMyAxMyAzMi42IC43IDQ1LjJzLTMyLjYgMTMtNDUuMiAuN0M0NjEuMiAxMzIgMzc4LjkgOTYgMjg4IDk2ek0yNDAgNDMyYTQ4IDQ4IDAgMSAxIDk2IDAgNDggNDggMCAxIDEgLTk2IDB6TTE2OCAzMjYuMmMtMTEuNyAxMy4zLTMxLjkgMTQuNS00NS4yIDIuOHMtMTQuNS0zMS45LTIuOC00NS4yQzE2MSAyMzcuNCAyMjEuMSAyMDggMjg4IDIwOHMxMjcgMjkuNCAxNjggNzUuOGMxMS43IDEzLjMgMTAuNCAzMy41LTIuOCA0NS4ycy0zMy41IDEwLjQtNDUuMi0yLjhDMzc4LjYgMjkyLjkgMzM1LjggMjcyIDI4OCAyNzJzLTkwLjYgMjAuOS0xMjAgNTQuMnoiXX0sb1VlPXFtLGxVZT1xbSxkOD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJtb25leS1jaGVjay1kb2xsYXIiLGljb246WzUxMiw1MTIsWyJtb25leS1jaGVjay1hbHQiXSwiZjUzZCIsIk02NCA2NEMyOC43IDY0IDAgOTIuNyAwIDEyOEwwIDM4NGMwIDM1LjMgMjguNyA2NCA2NCA2NGwzODQgMGMzNS4zIDAgNjQtMjguNyA2NC02NGwwLTI1NmMwLTM1LjMtMjguNy02NC02NC02NEw2NCA2NHpNMjk2IDI4OGwxMjggMGMxMy4zIDAgMjQgMTAuNyAyNCAyNHMtMTAuNyAyNC0yNCAyNGwtMTI4IDBjLTEzLjMgMC0yNC0xMC43LTI0LTI0czEwLjctMjQgMjQtMjR6bS0yNC04OGMwLTEzLjMgMTAuNy0yNCAyNC0yNGwxMjggMGMxMy4zIDAgMjQgMTAuNyAyNCAyNHMtMTAuNyAyNC0yNCAyNGwtMTI4IDBjLTEzLjMgMC0yNC0xMC43LTI0LTI0ek0xNDggMTQ0YzExIDAgMjAgOSAyMCAyMGwwIDQgOCAwYzExIDAgMjAgOSAyMCAyMHMtOSAyMC0yMCAyMGwtNDcuNSAwYy02LjkgMC0xMi41IDUuNi0xMi41IDEyLjUgMCA2LjEgNC40IDExLjMgMTAuNCAxMi4zbDQxLjcgN2MyNS4zIDQuMiA0My45IDI2LjEgNDMuOSA1MS44IDAgMjYuMS0xOSA0Ny43LTQ0IDUxLjhsMCA0LjdjMCAxMS05IDIwLTIwIDIwcy0yMC05LTIwLTIwbDAtNC0yNCAwYy0xMSAwLTIwLTktMjAtMjBzOS0yMCAyMC0yMGw1NS41IDBjNi45IDAgMTIuNS01LjYgMTIuNS0xMi41IDAtNi4xLTQuNC0xMS4zLTEwLjQtMTIuM2wtNDEuNy03Qzk0LjUgMjY4IDc2IDI0Ni4xIDc2IDIyMC41IDc2IDE5MS43IDk5LjIgMTY4LjMgMTI4IDE2OGwwLTRjMC0xMSA5LTIwIDIwLTIweiJdfSxjVWU9ZDgsaEg9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZXllLWxvdy12aXNpb24iLGljb246WzU3Niw1MTIsWyJsb3ctdmlzaW9uIl0sImYyYTgiLCJNNDEtMjQuOWMtOS40LTkuNC0yNC42LTkuNC0zMy45IDBTLTIuMy0uMyA3IDkuMWw1MjggNTI4YzkuNCA5LjQgMjQuNiA5LjQgMzMuOSAwczkuNC0yNC42IDAtMzMuOWwtOTYuNC05Ni40YzIuNy0yLjQgNS40LTQuOCA4LTcuMiA0Ni44LTQzLjUgNzguMS05NS40IDkzLTEzMS4xIDMuMy03LjkgMy4zLTE2LjcgMC0yNC42LTE0LjktMzUuNy00Ni4yLTg3LjctOTMtMTMxLjEtNDcuMS00My43LTExMS44LTgwLjYtMTkyLjYtODAuNi01Ni44IDAtMTA1LjYgMTguMi0xNDYgNDQuMkw0MS0yNC45ek0yMDQuNSAxMzguN2MyMy41LTE2LjggNTIuNC0yNi43IDgzLjUtMjYuNyA3OS41IDAgMTQ0IDY0LjUgMTQ0IDE0NCAwIDMxLjEtOS45IDU5LjktMjYuNyA4My41bC0zNC43LTM0LjdjMTIuNy0yMS40IDE3LTQ3LjcgMTAuMS03My43LTEzLjctNTEuMi02Ni40LTgxLjYtMTE3LjYtNjcuOS04LjYgMi4zLTE2LjcgNS43LTI0IDEwbC0zNC43LTM0Ljd6TTg4IDE1Ny45Yy05LjQtOS40LTI0LjYtOS40LTMzLjkgMHMtOS40IDI0LjYgMCAzMy45TDMyOC4yIDQ2NmM5LjQgOS40IDI0LjYgOS40IDMzLjkgMHM5LjQtMjQuNiAwLTMzLjlMODggMTU3Ljl6TTQ1LjcgMjUxLjNjLTkuNC05LjQtMjQuNi05LjQtMzMuOSAwcy05LjQgMjQuNiAwIDMzLjlMMTgxLjkgNDU1LjVjOS40IDkuNCAyNC42IDkuNCAzMy45IDBzOS40LTI0LjYgMC0zMy45TDQ1LjcgMjUxLjN6Il19LGRVZT1oSCxwSD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJjaXJjbGUtYXJyb3ctdXAiLGljb246WzUxMiw1MTIsWyJhcnJvdy1jaXJjbGUtdXAiXSwiZjBhYSIsIk0yNTYgNTEyYTI1NiAyNTYgMCAxIDAgMC01MTIgMjU2IDI1NiAwIDEgMCAwIDUxMnptMTctMzc3bDgwIDgwYzkuNCA5LjQgOS40IDI0LjYgMCAzMy45cy0yNC42IDkuNC0zMy45IDBsLTM5LTM5IDAgMTUwLjFjMCAxMy4zLTEwLjcgMjQtMjQgMjRzLTI0LTEwLjctMjQtMjRsMC0xNTAuMS0zOSAzOWMtOS40IDkuNC0yNC42IDkuNC0zMy45IDBzLTkuNC0yNC42IDAtMzMuOWw4MC04MGM5LjQtOS40IDI0LjYtOS40IDMzLjkgMHoiXX0saFVlPXBILHBVZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJjYW1lcmEtcmV0cm8iLGljb246WzUxMiw1MTIsWzEyODI0N10sImYwODMiLCJNMCA0MTZsMC0yMDggMTM2LjIgMGMxMy41LTIwLjIgMzItMzYuOCA1My43LTQ4TDAgMTYwIDAgMTI1LjdjMC0zNS4zIDI4LjctNjQgNjQtNjRsLjEgMEM2NS4zIDQ1LjEgNzkuMSAzMiA5NiAzMmwzMiAwYzE2LjkgMCAzMC43IDEzLjEgMzEuOSAyOS43bDMyLjEgMCA1MS4yLTIzLjhjOC40LTMuOSAxNy42LTYgMjYuOS02TDQ0OCAzMmMzNS4zIDAgNjQgMjguNyA2NCA2NGwwIDY0LTE5MCAwYzIxLjcgMTEuMiA0MC4yIDI3LjggNTMuNyA0OGwxMzYuMiAwIDAgMjA4YzAgMzUuMy0yOC43IDY0LTY0IDY0TDY0IDQ4MGMtMzUuMyAwLTY0LTI4LjctNjQtNjR6TTI1NiAxOTJhOTYuMSA5Ni4xIDAgMSAwIDAgMTkyLjEgOTYuMSA5Ni4xIDAgMSAwIDAtMTkyLjF6Il19LHVVZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJjYXBzdWxlcyIsaWNvbjpbNTc2LDUxMixbXSwiZjQ2YiIsIk05NiAxMTJjMC0yNi41IDIxLjUtNDggNDgtNDhzNDggMjEuNSA0OCA0OGwwIDExMi05NiAwIDAtMTEyem0tNjQgMGwwIDI4OGMwIDYxLjkgNTAuMSAxMTIgMTEyIDExMnMxMTItNTAuMSAxMTItMTEybDAtMTA1LjggMTE2LjMgMTY5LjVjMzUuNSA1MS43IDEwNS4zIDY0LjMgMTU2IDI4LjFzNjMtMTA3LjUgMjcuNS0xNTkuMkw0MjcuMyAxNDUuM2MtMzUuNS01MS43LTEwNS4zLTY0LjMtMTU2LTI4LjEtNS42IDQtMTAuNyA4LjQtMTUuMyAxMy4xbDAtMTguM0MyNTYgNTAuMSAyMDUuOSAwIDE0NCAwUzMyIDUwLjEgMzIgMTEyek0yOTYuNiAyNDAuMmMtMTYtMjMuMy0xMC01NS4zIDExLjktNzEgMjEuMi0xNS4xIDUwLjUtMTAuMyA2NiAxMi4ybDY3IDk3LjYtNzkuOSA1NS45LTY1LTk0Ljh6Il19LGZVZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJwb28iLGljb246WzUxMiw1MTIsWzEyODE2OV0sImYyZmUiLCJNMjY4LjkgLjljLTUuNS0uNy0xMSAxLjQtMTQuNSA1LjdzLTQuNiAxMC4xLTIuOCAxNS40YzIuOCA4LjIgNC4zIDE2LjkgNC4zIDI2LjEgMCA0NC4xLTM1LjcgNzkuOS03OS44IDgwTDE2MCAxMjhjLTM1LjMgMC02NCAyOC43LTY0IDY0IDAgMTkuMSA4LjQgMzYuMyAyMS43IDQ4TDEwNCAyNDBjLTM5LjggMC03MiAzMi4yLTcyIDcyIDAgMjMuMiAxMSA0My44IDI4IDU3LTM0LjEgNS43LTYwIDM1LjMtNjAgNzEgMCAzOS44IDMyLjIgNzIgNzIgNzJsMzY4IDBjMzkuOCAwIDcyLTMyLjIgNzItNzIgMC0zNS43LTI1LjktNjUuMy02MC03MSAxNy0xMy4yIDI4LTMzLjggMjgtNTcgMC0zOS44LTMyLjItNzItNzItNzJsLTEzLjcgMGMxMy4zLTExLjcgMjEuNy0yOC45IDIxLjctNDggMC0zNS4zLTI4LjctNjQtNjQtNjRsLTUuNSAwYzMuNS0xMCA1LjUtMjAuOCA1LjUtMzIgMC00OC42LTM2LjItODguOC04My4xLTk1LjF6TTE5MiAyNTZhMzIgMzIgMCAxIDEgMCA2NCAzMiAzMiAwIDEgMSAwLTY0em05NiAzMmEzMiAzMiAwIDEgMSA2NCAwIDMyIDMyIDAgMSAxIC02NCAwem02NCAxMDguM2MwIDIuNC0uNyA0LjgtMi4yIDYuNy04LjIgMTAuNS0zOS41IDQ1LTkzLjggNDVzLTg1LjYtMzQuNi05My44LTQ1Yy0xLjUtMS45LTIuMi00LjMtMi4yLTYuNyAwLTYuOCA1LjUtMTIuMyAxMi4zLTEyLjNsMTY3LjQgMGM2LjggMCAxMi4zIDUuNSAxMi4zIDEyLjN6Il19LHVIPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InZvbHVtZSIsaWNvbjpbNTEyLDUxMixbMTI4MjY1LCJ2b2x1bWUtbWVkaXVtIl0sImY2YTgiLCJNNDggMzUybDQ4IDAgMTM0LjEgMTE5LjJjNi40IDUuNyAxNC42IDguOCAyMy4xIDguOCAxOS4yIDAgMzQuOC0xNS42IDM0LjgtMzQuOGwwLTM3OC40YzAtMTkuMi0xNS42LTM0LjgtMzQuOC0zNC44LTguNSAwLTE2LjcgMy4xLTIzLjEgOC44TDk2IDE2MCA0OCAxNjBjLTI2LjUgMC00OCAyMS41LTQ4IDQ4bDAgOTZjMCAyNi41IDIxLjUgNDggNDggNDh6TTQ0MS4xIDEwN2MtMTAuMy04LjQtMjUuNC02LjgtMzMuOCAzLjVzLTYuOCAyNS40IDMuNSAzMy44QzQ0My4zIDE3MC43IDQ2NCAyMTAuOSA0NjQgMjU2cy0yMC43IDg1LjMtNTMuMiAxMTEuOGMtMTAuMyA4LjQtMTEuOCAyMy41LTMuNSAzMy44czIzLjUgMTEuOCAzMy44IDMuNWM0My4yLTM1LjIgNzAuOS04OC45IDcwLjktMTQ5cy0yNy43LTExMy44LTcwLjktMTQ5em0tNjAuNSA3NC41Yy0xMC4zLTguNC0yNS40LTYuOC0zMy44IDMuNXMtNi44IDI1LjQgMy41IDMzLjhDMzYxLjEgMjI3LjYgMzY4IDI0MSAzNjggMjU2cy02LjkgMjguNC0xNy43IDM3LjNjLTEwLjMgOC40LTExLjggMjMuNS0zLjUgMzMuOHMyMy41IDExLjggMzMuOCAzLjVDNDAyLjEgMzEyLjkgNDE2IDI4Ni4xIDQxNiAyNTZzLTEzLjktNTYuOS0zNS41LTc0LjV6Il19LG1VZT11SCxnVWU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZWxldmF0b3IiLGljb246WzUxMiw1MTIsW10sImUxNmQiLCJNMjkyLjctNC43bDY0IDY0YzYuMiA2LjIgMTYuNCA2LjIgMjIuNiAwbDY0LTY0YzQuNi00LjYgNS45LTExLjUgMy41LTE3LjRTNDM4LjUtMzIgNDMyLTMyTDMwNC0zMmMtNi41IDAtMTIuMyAzLjktMTQuOCA5LjlzLTEuMSAxMi45IDMuNSAxNy40em0tMTYwLTIyLjZsLTY0IDY0Yy00LjYgNC42LTUuOSAxMS41LTMuNSAxNy40UzczLjUgNjQgODAgNjRsMTI4IDBjNi41IDAgMTIuMy0zLjkgMTQuOC05LjlzMS4xLTEyLjktMy41LTE3LjRsLTY0LTY0Yy02LjItNi4yLTE2LjQtNi4yLTIyLjYgMHpNNjQgMTI4Yy0zNS4zIDAtNjQgMjguNy02NCA2NEwwIDQ0OGMwIDM1LjMgMjguNyA2NCA2NCA2NGwzODQgMGMzNS4zIDAgNjQtMjguNyA2NC02NGwwLTI1NmMwLTM1LjMtMjguNy02NC02NC02NEw2NCAxMjh6bTk2IDk2YTQ4IDQ4IDAgMSAxIDAgOTYgNDggNDggMCAxIDEgMC05NnpNODAgNDAwYzAtMjYuNSAyMS41LTQ4IDQ4LTQ4bDY0IDBjMjYuNSAwIDQ4IDIxLjUgNDggNDhsMCAxNmMwIDE3LjctMTQuMyAzMi0zMiAzMmwtOTYgMGMtMTcuNyAwLTMyLTE0LjMtMzItMzJsMC0xNnptMTkyIDBjMC0yNi41IDIxLjUtNDggNDgtNDhsNjQgMGMyNi41IDAgNDggMjEuNSA0OCA0OGwwIDE2YzAgMTcuNy0xNC4zIDMyLTMyIDMybC05NiAwYy0xNy43IDAtMzItMTQuMy0zMi0zMmwwLTE2em0zMi0xMjhhNDggNDggMCAxIDEgOTYgMCA0OCA0OCAwIDEgMSAtOTYgMHoiXX0sYlVlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InRhZyIsaWNvbjpbNTEyLDUxMixbMTI3OTkxXSwiZjAyYiIsIk0zMi41IDk2bDAgMTQ5LjVjMCAxNyA2LjcgMzMuMyAxOC43IDQ1LjNsMTkyIDE5MmMyNSAyNSA2NS41IDI1IDkwLjUgMEw0ODMuMiAzMzMuM2MyNS0yNSAyNS02NS41IDAtOTAuNWwtMTkyLTE5MkMyNzkuMiAzOC43IDI2MyAzMiAyNDYgMzJMOTYuNSAzMmMtMzUuMyAwLTY0IDI4LjctNjQgNjR6bTExMiAxNmEzMiAzMiAwIDEgMSAwIDY0IDMyIDMyIDAgMSAxIDAtNjR6Il19LHZVZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJmaWxlLWNpcmNsZS1taW51cyIsaWNvbjpbNTc2LDUxMixbXSwiZTRlZCIsIk05NiAwQzYwLjcgMCAzMiAyOC43IDMyIDY0bDAgMzg0YzAgMzUuMyAyOC43IDY0IDY0IDY0bDE4MCAwYy0yMi43LTMxLjUtMzYtNzAuMi0zNi0xMTIgMC0xMDAuNiA3Ny40LTE4My4yIDE3Ni0xOTEuM2wwLTM4LjFjMC0xNy02LjctMzMuMy0xOC43LTQ1LjNMMjkwLjcgMTguN0MyNzguNyA2LjcgMjYyLjUgMCAyNDUuNSAwTDk2IDB6TTM1Ny41IDE3NkwyNjQgMTc2Yy0xMy4zIDAtMjQtMTAuNy0yNC0yNEwyNDAgNTguNSAzNTcuNSAxNzZ6TTU3NiA0MDBhMTQ0IDE0NCAwIDEgMCAtMjg4IDAgMTQ0IDE0NCAwIDEgMCAyODggMHptLTY0IDBjMCA4LjgtNy4yIDE2LTE2IDE2bC0xMjggMGMtOC44IDAtMTYtNy4yLTE2LTE2czcuMi0xNiAxNi0xNmwxMjggMGM4LjggMCAxNiA3LjIgMTYgMTZ6Il19LGZIPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImRvd24tbG9uZyIsaWNvbjpbMzIwLDUxMixbImxvbmctYXJyb3ctYWx0LWRvd24iXSwiZjMwOSIsIk0xMzcuNCA1MzQuNmMxMi41IDEyLjUgMzIuOCAxMi41IDQ1LjMgMGwxMjgtMTI4YzkuMi05LjIgMTEuOS0yMi45IDYuOS0zNC45UzMwMC45IDM1MiAyODggMzUybC02NCAwIDAtMzM2YzAtMjYuNS0yMS41LTQ4LTQ4LTQ4bC0zMiAwYy0yNi41IDAtNDggMjEuNS00OCA0OGwwIDMzNi02NCAwYy0xMi45IDAtMjQuNiA3LjgtMjkuNiAxOS44Uy4yIDM5Ny41IDkuNCA0MDYuNmwxMjggMTI4eiJdfSx5VWU9ZkgseFVlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImNvbXBhY3QtZGlzYyIsaWNvbjpbNTEyLDUxMixbMTI4MTkxLDEyODE5MiwxMjg0NDBdLCJmNTFmIiwiTTAgMjU2YTI1NiAyNTYgMCAxIDEgNTEyIDAgMjU2IDI1NiAwIDEgMSAtNTEyIDB6bTI1NiAzMmEzMiAzMiAwIDEgMSAwLTY0IDMyIDMyIDAgMSAxIDAgNjR6bS05Ni0zMmE5NiA5NiAwIDEgMCAxOTIgMCA5NiA5NiAwIDEgMCAtMTkyIDB6bS01Ni0xNmMwLTMyLjQgMTYuMy02Ni42IDQyLjgtOTMuMlMyMDcuNiAxMDQgMjQwIDEwNGMxMy4zIDAgMjQtMTAuNyAyNC0yNHMtMTAuNy0yNC0yNC0yNGMtNDcuOSAwLTkzLjcgMjMuNS0xMjcuMSA1Ni45UzU2IDE5Mi4xIDU2IDI0MGMwIDEzLjMgMTAuNyAyNCAyNCAyNHMyNC0xMC43IDI0LTI0eiJdfSx3VWU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToic3VpdGNhc2Utcm9sbGluZyIsaWNvbjpbMzg0LDUxMixbXSwiZjVjMSIsIk0xNDQgMjRjMC00LjQgMy42LTggOC04bDgwIDBjNC40IDAgOCAzLjYgOCA4bDAgNzItOTYgMCAwLTcyek0zMjAgOTZsLTMyIDAgMC03MmMwLTMwLjktMjUuMS01Ni01Ni01NmwtODAgMEMxMjEuMS0zMiA5Ni02LjkgOTYgMjRsMCA3Mi0zMiAwQzI4LjcgOTYgMCAxMjQuNyAwIDE2MEwwIDQ0OGMwIDM1LjMgMjguNyA2NCA2NCA2NCAwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMybDEyOCAwYzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJjMzUuMyAwIDY0LTI4LjcgNjQtNjRsMC0yODhjMC0zNS4zLTI4LjctNjQtNjQtNjR6TTEyMCAyMDhsMTQ0IDBjMTMuMyAwIDI0IDEwLjcgMjQgMjRzLTEwLjcgMjQtMjQgMjRsLTE0NCAwYy0xMy4zIDAtMjQtMTAuNy0yNC0yNHMxMC43LTI0IDI0LTI0em0wIDEyOGwxNDQgMGMxMy4zIDAgMjQgMTAuNyAyNCAyNHMtMTAuNyAyNC0yNCAyNGwtMTQ0IDBjLTEzLjMgMC0yNC0xMC43LTI0LTI0czEwLjctMjQgMjQtMjR6Il19LG1IPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImJvb2stcXVyYW4iLGljb246WzQ0OCw1MTIsWyJxdXJhbiJdLCJmNjg3IiwiTTY0IDUxMmwyODggMGM1MyAwIDk2LTQzIDk2LTk2bDAtMzIwYzAtNTMtNDMtOTYtOTYtOTZMNDggMEMyMS41IDAgMCAyMS41IDAgNDhMMCAzMzZjMCAyMC45IDEzLjQgMzguNyAzMiA0NS4zTDMyIDQ0OGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJzMTQuMyAzMiAzMiAzMmwzMiAwek0zNTIgMzg0YzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMybC0yNTYgMCAwLTY0IDI1NiAwek0yNzMuMSAxNDQuNGMyLjUtNi4xIDExLjItNi4xIDEzLjcgMGwxMC4zIDI0LjggMjYuOCAyLjFjNi42IC41IDkuMiA4LjcgNC4yIDEzTDMwNy44IDIwMS45IDMxNCAyMjhjMS41IDYuNC01LjUgMTEuNS0xMS4xIDguMWwtMjIuOS0xNC0yMi45IDE0Yy01LjYgMy40LTEyLjYtMS42LTExLjEtOC4xbDYuMi0yNi4xLTIwLjQtMTcuNWMtNS00LjMtMi4zLTEyLjUgNC4yLTEzbDI2LjgtMi4xIDEwLjMtMjQuOHpNMTAwIDE5MmMwLTY4LjUgNTUuNS0xMjQgMTI0LTEyNCAyMy44IDAgNDYuMSA2LjcgNjUgMTguNCA0LjggMi45IDYuOSA4LjggNSAxNC4xcy03LjEgOC42LTEyLjcgOGMtMy4xLS4zLTYuMi0uNS05LjQtLjUtNDYuNCAwLTg0IDM3LjYtODQgODRzMzcuNiA4NCA4NCA4NGMzLjIgMCA2LjMtLjIgOS40LS41IDUuNi0uNiAxMC44IDIuNyAxMi43IDhzLS4zIDExLjItNSAxNC4xYy0xOC45IDExLjctNDEuMiAxOC40LTY1IDE4LjQtNjguNSAwLTEyNC01NS41LTEyNC0xMjR6Il19LE1VZT1tSCx6VWU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToicGhvbmUtc2xhc2giLGljb246WzU3Niw1MTIsW10sImYzZGQiLCJNNTM1LTI0LjljOS40LTkuNCAyNC42LTkuNCAzMy45IDBzOS40IDI0LjYgMCAzMy45TDQxIDUzNy4xYy05LjQgOS40LTI0LjYgOS40LTMzLjkgMHMtOS40LTI0LjYgMC0zMy45TDE0MS41IDM2OC42Qzg5LjIgMzEwLjUgNTEuNiAyMzguOCAzNC44IDE1OS40IDE4LjcgODMuMSA3My45IDIwLjYgMTM4LjUgMi45bDUuNS0xLjVjMTkuNy01LjQgNDAuMyA0LjcgNDguMSAyMy41bDQwLjUgOTcuM2M2LjkgMTYuNSAyLjEgMzUuNi0xMS44IDQ3bC00NC4xIDM2LjFjMTIuOSAyOC41IDI5LjYgNTQuOCA0OS41IDc4LjVMNTM1LTI0Ljl6bS0xNTAuNCA1MzRjLTYzLTEzLjQtMTIxLjMtMzkuOC0xNzEuNy03Ni4zTDI5Ny44IDM0OGMxMi4yIDguMiAyNSAxNS42IDM4LjMgMjIuMkwzNzQuNyAzMjNjMTEuMy0xMy45IDMwLjQtMTguNiA0Ny0xMS44TDUxOSAzNTEuOGMxOC44IDcuOCAyOC45IDI4LjQgMjMuNSA0OC4xbC0xLjUgNS41Yy0xNy42IDY0LjYtODAuMiAxMTkuOC0xNTYuNCAxMDMuN3oiXX0sa1VlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InJvYWQtY2lyY2xlLWNoZWNrIixpY29uOls2NDAsNTEyLFtdLCJlNTY0IiwiTTI4OCAzMmwtNzYuMyAwYy0yOS40IDAtNTUuMSAyMC4xLTYyLjEgNDguNkw2NS40IDQyMC41QzU3LjkgNDUwLjcgODAuOCA0ODAgMTEyIDQ4MGwyMDkuNCAwYy0xMS4yLTI0LjQtMTcuNC01MS40LTE3LjQtODAgMC0yOC42IDYuMi01NS43IDE3LjQtODAtLjUgMC0xIDAtMS41IDAtMTcuNyAwLTMyLTE0LjMtMzItMzJsMC02NGMwLTE3LjcgMTQuMy0zMiAzMi0zMnMzMiAxNC4zIDMyIDMybDAgNDljMzUuMi0zOS45IDg2LjctNjUgMTQ0LTY1IDkgMCAxNy44IC42IDI2LjUgMS44bC0zMi0xMjkuMkM0ODMuNCA1Mi4xIDQ1Ny44IDMyIDQyOC4zIDMybC03Ni40IDAgMCA2NGMwIDE3LjctMTQuMyAzMi0zMiAzMnMtMzItMTQuMy0zMi0zMmwwLTY0ek02NDAgNDAwYTE0NCAxNDQgMCAxIDAgLTI4OCAwIDE0NCAxNDQgMCAxIDAgMjg4IDB6bS04Ni42LTYwLjljNy4xIDUuMiA4LjcgMTUuMiAzLjUgMjIuM2wtNjQgODhjLTIuOCAzLjgtNyA2LjItMTEuNyA2LjVzLTkuMy0xLjMtMTIuNi00LjZsLTQwLTQwYy02LjItNi4yLTYuMi0xNi40IDAtMjIuNnMxNi40LTYuMiAyMi42IDBsMjYuOCAyNi44IDUzLTcyLjljNS4yLTcuMSAxNS4yLTguNyAyMi40LTMuNXoiXX0sU1VlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InNob3AtbG9jayIsaWNvbjpbNjQwLDUxMixbXSwiZTRhNSIsIk0yMS41IDE4MS4xTDc4LjMgNjcuNEM4OS4yIDQ1LjcgMTExLjMgMzIgMTM1LjYgMzJsMzA0LjkgMGMyNC4yIDAgNDYuNCAxMy43IDU3LjIgMzUuNGw1NS42IDExMS4xYy04LjItMS42LTE2LjYtMi41LTI1LjItMi41LTUzLjcgMC05OS43IDMzLjEtMTE4LjcgODBsLTU3LjMgMCAwIDE3NmMwIDI2LjUtMjEuNSA0OC00OCA0OGwtMTkyIDBjLTI2LjUgMC00OC0yMS41LTQ4LTQ4bDAtMTc2LjFjLTI2LjgtMS45LTQ4LTI0LjMtNDgtNTEuNiAwLTggMS45LTE2IDUuNS0yMy4yek0xMjggMjU2bDAgMTEyYzAgOC44IDcuMiAxNiAxNiAxNmwxMjggMGM4LjggMCAxNi03LjIgMTYtMTZsMC0xMTItMTYwIDB6bTQzMiA0OC4xYzAtMTcuNy0xNC4zLTMyLTMyLTMycy0zMiAxNC4zLTMyIDMybDAgNDcuOSA2NCAwIDAtNDcuOXpNNDE2IDQwMGMwLTIwLjkgMTMuNC0zOC43IDMyLTQ1LjNsMC01MC42YzAtNDQuMiAzNS44LTgwIDgwLTgwczgwIDM1LjggODAgODBsMCA1MC42YzE4LjYgNi42IDMyIDI0LjQgMzIgNDUuM2wwIDk2YzAgMjYuNS0yMS41IDQ4LTQ4IDQ4bC0xMjggMGMtMjYuNSAwLTQ4LTIxLjUtNDgtNDhsMC05NnoiXX0sZ0g9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiaW1hZ2UtcG9ydHJhaXQiLGljb246WzM4NCw1MTIsWyJwb3J0cmFpdCJdLCJmM2UwIiwiTTAgNjRDMCAyOC43IDI4LjcgMCA2NCAwTDMyMCAwYzM1LjMgMCA2NCAyOC43IDY0IDY0bDAgMzg0YzAgMzUuMy0yOC43IDY0LTY0IDY0TDY0IDUxMmMtMzUuMyAwLTY0LTI4LjctNjQtNjRMMCA2NHpNODAgMzY4YzAgOC44IDcuMiAxNiAxNiAxNmwxOTIgMGM4LjggMCAxNi03LjIgMTYtMTYgMC00NC4yLTM1LjgtODAtODAtODBsLTY0IDBjLTQ0LjIgMC04MCAzNS44LTgwIDgwek0xOTIgMjQ4YTU2IDU2IDAgMSAwIDAtMTEyIDU2IDU2IDAgMSAwIDAgMTEyeiJdfSxDVWU9Z0gsX1VlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImJyaWRnZS1sb2NrIixpY29uOls1NzYsNTEyLFtdLCJlNGNjIiwiTTAgNjRDMCA0Ni4zIDE0LjMgMzIgMzIgMzJsNDQ4IDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJsLTggMCAwIDMyLjJjMTMuOCAuNiAyNy4yIDIuOCA0MCA2LjRsMCA1MC43Yy0xNC44LTYtMzEtOS4zLTQ4LTkuMy03MC43IDAtMTI4IDU3LjMtMTI4IDEyOGwwIDI0LjRjLS40IC4zLS43IC42LTEuMSAxLTE3LjMtMjUtNDYuMi00MS4zLTc4LjktNDEuMy01MyAwLTk2IDQzLTk2IDk2bDAgNjRjMCAxNy43LTE0LjMgMzItMzIgMzJsLTMyIDBjLTE3LjcgMC0zMi0xNC4zLTMyLTMybDAtOTRjMC0zOC44LTI2LjQtNzIuNi02NC04MmwwLTExMiA0MCAwIDAtNjQtOCAwQzE0LjMgOTYgMCA4MS43IDAgNjR6bTQyNCA2OC42bDAtMzYuNi04MCAwIDAgNjQgMTguOCAwYzE4LjItMTIuOCAzOC45LTIyLjIgNjEuMi0yNy40ek0yMTYgOTZsMCA2NCA4MCAwIDAtNjQtODAgMHptLTQ4IDBsLTgwIDAgMCA2NCA4MCAwIDAtNjR6TTQ5NiAzMDQuMWMwLTE3LjctMTQuMy0zMi0zMi0zMnMtMzIgMTQuMy0zMiAzMmwwIDQ3LjkgNjQgMCAwLTQ3Ljl6TTM1MiA0MDBjMC0yMC45IDEzLjQtMzguNyAzMi00NS4zbDAtNTAuNmMwLTQ0LjIgMzUuOC04MCA4MC04MHM4MCAzNS44IDgwIDgwbDAgNTAuNmMxOC42IDYuNiAzMiAyNC40IDMyIDQ1LjNsMCA5NmMwIDI2LjUtMjEuNSA0OC00OCA0OGwtMTI4IDBjLTI2LjUgMC00OC0yMS41LTQ4LTQ4bDAtOTZ6Il19LFRVZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJoYW1tZXIiLGljb246WzY0MCw1MTIsWzEyODI5Nl0sImY2ZTMiLCJNMjQ2LjkgMTguM0wyNzEgMy44YzIxLjYtMTMgNDYuMy0xOS44IDcxLjUtMTkuOCAzNi44IDAgNzIuMiAxNC42IDk4LjIgNDAuN2w2My45IDYzLjljMTUgMTUgMjMuNCAzNS40IDIzLjQgNTYuNmwwIDMwLjkgMTkuNyAxOS43IDAgMGMxNS42LTE1LjYgNDAuOS0xNS42IDU2LjYgMHMxNS42IDQwLjkgMCA1Ni42bC02NCA2NGMtMTUuNiAxNS42LTQwLjkgMTUuNi01Ni42IDBzLTE1LjYtNDAuOSAwLTU2LjZMNDY0IDI0MCA0MzMuMSAyNDBjLTIxLjIgMC00MS42LTguNC01Ni42LTIzLjRsLTQ5LjEtNDkuMWMtMTUtMTUtMjMuNC0zNS40LTIzLjQtNTYuNmwwLTEyLjdjMC0xMS4yLTUuOS0yMS43LTE1LjUtMjcuNGwtNDEuNi0yNWMtMTAuNC02LjItMTAuNC0yMS4yIDAtMjcuNHpNNTAuNyA0MDIuN2wyMjIuMS0yMjIuMSA5MC41IDkwLjUtMjIyLjEgMjIyLjFjLTI1IDI1LTY1LjUgMjUtOTAuNSAwcy0yNS02NS41IDAtOTAuNXoiXX0sYkg9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiYXJyb3ctdXAtMS05IixpY29uOls1MTIsNTEyLFsic29ydC1udW1lcmljLXVwIl0sImYxNjMiLCJNMTUwLjYgNDEuNGMtMTIuNS0xMi41LTMyLjgtMTIuNS00NS4zIDBsLTk2IDk2Yy0xMi41IDEyLjUtMTIuNSAzMi44IDAgNDUuM3MzMi44IDEyLjUgNDUuMyAwTDk2IDE0MS4zIDk2IDQ0OGMwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMybDAtMzA2LjcgNDEuNCA0MS40YzEyLjUgMTIuNSAzMi44IDEyLjUgNDUuMyAwczEyLjUtMzIuOCAwLTQ1LjNsLTk2LTk2ek00MTguNyAzOGMtOC4zLTYtMTkuMS03LjctMjguOC00LjRsLTQ4IDE2Yy0xNi44IDUuNi0yNS44IDIzLjctMjAuMiA0MC41czIzLjcgMjUuOCA0MC41IDIwLjJsNS45LTIgMCA1MS42LTE2IDBjLTE3LjcgMC0zMiAxNC4zLTMyIDMyczE0LjMgMzIgMzIgMzJsOTYgMGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMmwtMTYgMCAwLTk2YzAtMTAuMy00LjktMTkuOS0xMy4zLTI2ek0zNjUuMSA0MzAuNmMtOS42IDE0LjgtNS40IDM0LjYgOS40IDQ0LjNzMzQuNiA1LjQgNDQuMy05LjRsNDIuMS02NC45YzEyLjQtMTkuMiAxOS4xLTQxLjYgMTkuMS02NC41IDAtNDQuMi0zNS44LTgwLTgwLTgwcy04MCAzNS44LTgwIDgwYzAgMzYuMSAyMy45IDY2LjcgNTYuOCA3Ni42bC0xMS43IDE4ek0zNzYgMzM2YTI0IDI0IDAgMSAxIDQ4IDAgMjQgMjQgMCAxIDEgLTQ4IDB6Il19LExVZT1iSCwkVWU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiY2hlc3Mta25pZ2h0IixpY29uOlszODQsNTEyLFs5ODIyXSwiZjQ0MSIsIk0xOTItMzJjMTA2IDAgMTkyIDg2IDE5MiAxOTJsMCAxMzMuNWMwIDE3LTYuOCAzMy4yLTE4LjcgNDUuMkwzMjAgMzg0IDM3MC44IDQzNC43YzguNSA4LjUgMTMuMiAyMCAxMy4yIDMyIDAgMjUtMjAuMyA0NS4yLTQ1LjIgNDUuM0w0NS4zIDUxMmMtMjUgMC00NS4yLTIwLjMtNDUuMi00NS4zIDAtMTIgNC44LTIzLjUgMTMuMi0zMkw2NCAzODQgNjQgMzQ5LjRjMC0xOC43IDguMi0zNi40IDIyLjMtNDguNmw4OS43LTc2LjgtNDggMC0xMi4xIDEyLjFjLTEyLjcgMTIuNy0zMCAxOS45LTQ4IDE5LjktMzcuNSAwLTY3LjktMzAuNC02Ny45LTY3LjlsMC04LjdjMC0yMi44IDguMi00NC45IDIzLjEtNjIuM0w5NiAzMiA5NiAwYzAtMTcuNyAxNC4zLTMyIDMyLTMybDY0IDB6TTE2MCA3MmEyNCAyNCAwIDEgMCAwIDQ4IDI0IDI0IDAgMSAwIDAtNDh6Il19LEFVZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJob3VzZS1mbG9vZC13YXRlci1jaXJjbGUtYXJyb3ctcmlnaHQiLGljb246WzY0MCw1MTIsW10sImU1MGYiLCJNMjg4LjUgMTEyYTE0NCAxNDQgMCAxIDAgLTI4OCAwIDE0NCAxNDQgMCAxIDAgMjg4IDB6TTE0MS4yIDQ0LjdjNi4yLTYuMiAxNi40LTYuMiAyMi42IDBsNTYgNTZjNi4yIDYuMiA2LjIgMTYuNCAwIDIyLjZsLTU2IDU2Yy02LjIgNi4yLTE2LjQgNi4yLTIyLjYgMHMtNi4yLTE2LjQgMC0yMi42bDI4LjctMjguNy04OS40IDBjLTguOCAwLTE2LTcuMi0xNi0xNnM3LjItMTYgMTYtMTZsODkuNCAwLTI4LjctMjguN2MtNi4yLTYuMi02LjItMTYuNCAwLTIyLjZ6TTMzNi41IDExMmMwIDcxLjEtMzguNiAxMzMuMS05NiAxNjYuM2wwIDEyLjhjMjIuMSA0LjUgNDMuNCAxMy45IDYyLjQgMjguMiAyMi4xIDE2LjYgMjkuMSAxNi42IDUxLjIgMCAyNy41LTIwLjcgNTkuOS0zMS4yIDkyLjQtMzEuNCAzMy4xLS4yIDY2LjMgMTAuMiA5NC40IDMxLjQgNi45IDUuMiAxMi44IDkgMTggMTEuNyAuNiAuMyAxLjIgLjYgMS44IDEgNC4yIDIuMyA4LjUgNC42IDEyLjYgMS41IDYtNC41IDEyLjYtOCAxOS4zLTEwLjRsMC0xMTUuMiA0LjUgMGMxNS4yIDAgMjcuNS0xMi4zIDI3LjUtMjcuNSAwLTcuOS0zLjQtMTUuNS05LjQtMjAuN0w0NDQuNSAxMC41QzQzNi44IDMuNyA0MjYuOCAwIDQxNi41IDBzLTIwLjMgMy43LTI4IDEwLjVMMzI5LjkgNjEuOGM0LjMgMTYgNi42IDMyLjggNi42IDUwLjJ6bTMyIDg4YzAtMTMuMyAxMC43LTI0IDI0LTI0bDQ4IDBjMTMuMyAwIDI0IDEwLjcgMjQgMjRsMCA0OGMwIDEzLjMtMTAuNyAyNC0yNCAyNGwtNDggMGMtMTMuMyAwLTI0LTEwLjctMjQtMjRsMC00OHpNNDc1LjEgNDEyLjFjMTkgMTQuNCA0MS45IDI4LjIgNjcuMiAzMy4zIDI2LjUgNS40IDU0LjMgLjggODAuNy0xOS4xIDEwLjYtOCAxMi43LTIzIDQuNy0zMy42cy0yMy0xMi43LTMzLjYtNC43Yy0xNC45IDExLjItMjguNiAxMy4xLTQyLjMgMTAuMy0xNC45LTMtMzAuOS0xMS45LTQ3LjgtMjQuNi0zOC40LTI5LTkwLjUtMjktMTI5IDAtMjQgMTguMS00MC43IDI2LjMtNTQuNSAyNi4zUzI5MCAzOTEuOCAyNjYgMzczLjdjLTM4LjQtMjktOTAuNS0yOS0xMjkgMC0yMS42IDE2LjMtNDEuMyAyNS44LTU4LjkgMjUuNy05LjYtLjEtMTkuOS0zLTMxLjItMTEuNS0xMC42LTgtMjUuNi01LjktMzMuNiA0LjdzLTUuOSAyNS42IDQuNyAzMy42YzE5LjEgMTQuNCAzOS40IDIxIDU5LjggMjEuMSAzMy45IC4yIDY0LjMtMTcuNCA4OC4xLTM1LjMgMjEuMy0xNi4xIDQ5LjktMTYuMSA3MS4yIDAgMjQuMiAxOC4zIDUyLjMgMzUuOSA4My40IDM1LjlzNTkuMS0xNy43IDgzLjQtMzUuOWMyMS4zLTE2LjEgNDkuOS0xNi4xIDcxLjIgMHptLTcxLjIgOTZjMjEuMy0xNi4xIDQ5LjktMTYuMSA3MS4yIDAgMTkgMTQuNCA0MS45IDI4LjIgNjcuMiAzMy4zIDI2LjUgNS40IDU0LjMgLjggODAuNy0xOS4xIDEwLjYtOCAxMi43LTIzIDQuNy0zMy42cy0yMy0xMi43LTMzLjYtNC43Yy0xNC45IDExLjItMjguNiAxMy4xLTQyLjMgMTAuMy0xNC45LTMtMzAuOS0xMS45LTQ3LjgtMjQuNi0zOC40LTI5LTkwLjUtMjktMTI5IDAtMjQgMTguMS00MC43IDI2LjMtNTQuNSAyNi4zUzI5MCA0ODcuOCAyNjYgNDY5LjdjLTM4LjQtMjktOTAuNS0yOS0xMjkgMC0yMS42IDE2LjMtNDEuMyAyNS44LTU4LjkgMjUuNy05LjYtLjEtMTkuOS0zLTMxLjItMTEuNS0xMC42LTgtMjUuNi01LjktMzMuNiA0LjdzLTUuOSAyNS42IDQuNyAzMy42YzE5LjEgMTQuNCAzOS40IDIxIDU5LjggMjEuMSAzMy45IC4yIDY0LjMtMTcuNCA4OC4xLTM1LjMgMjEuMy0xNi4xIDQ5LjktMTYuMSA3MS4yIDAgMjQuMiAxOC4zIDUyLjMgMzUuOSA4My40IDM1LjlzNTkuMS0xNy43IDgzLjQtMzUuOXoiXX0saDg9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiYXJyb3ctdXAtcmlnaHQtZnJvbS1zcXVhcmUiLGljb246WzUxMiw1MTIsWyJleHRlcm5hbC1saW5rIl0sImYwOGUiLCJNMzIwIDBjLTE3LjcgMC0zMiAxNC4zLTMyIDMyczE0LjMgMzIgMzIgMzJsODIuNyAwLTIwMS40IDIwMS40Yy0xMi41IDEyLjUtMTIuNSAzMi44IDAgNDUuM3MzMi44IDEyLjUgNDUuMyAwTDQ0OCAxMDkuMyA0NDggMTkyYzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJsMC0xNjBjMC0xNy43LTE0LjMtMzItMzItMzJMMzIwIDB6TTgwIDk2QzM1LjggOTYgMCAxMzEuOCAwIDE3NkwwIDQzMmMwIDQ0LjIgMzUuOCA4MCA4MCA4MGwyNTYgMGM0NC4yIDAgODAtMzUuOCA4MC04MGwwLTgwYzAtMTcuNy0xNC4zLTMyLTMyLTMycy0zMiAxNC4zLTMyIDMybDAgODBjMCA4LjgtNy4yIDE2LTE2IDE2TDgwIDQ0OGMtOC44IDAtMTYtNy4yLTE2LTE2bDAtMjU2YzAtOC44IDcuMi0xNiAxNi0xNmw4MCAwYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMyTDgwIDk2eiJdfSxEVWU9aDgsRVVlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImFycm93LWRvd24tdXAtYWNyb3NzLWxpbmUiLGljb246WzUxMiw1MTIsW10sImU0YWYiLCJNMjY1LjQgMTA1LjRsOTYtOTZjMTIuNS0xMi41IDMyLjgtMTIuNSA0NS4zIDBsOTYgOTZjMTIuNSAxMi41IDEyLjUgMzIuOCAwIDQ1LjNzLTMyLjggMTIuNS00NS4zIDBsLTQxLjQtNDEuNCAwIDExNC43IDY0IDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJsLTMyMCAwIDAgMTE0LjcgNDEuNC00MS40YzEyLjUtMTIuNSAzMi44LTEyLjUgNDUuMyAwczEyLjUgMzIuOCAwIDQ1LjNsLTk2IDk2Yy0xMi41IDEyLjUtMzIuOCAxMi41LTQ1LjMgMGwtOTYtOTZjLTEyLjUtMTIuNS0xMi41LTMyLjggMC00NS4zczMyLjgtMTIuNSA0NS4zIDBMOTYgNDAyLjcgOTYgMjg4IDMyIDI4OGMtMTcuNyAwLTMyLTE0LjMtMzItMzJzMTQuMy0zMiAzMi0zMmwzMjAgMCAwLTExNC43LTQxLjQgNDEuNGMtMTIuNSAxMi41LTMyLjggMTIuNS00NS4zIDBzLTEyLjUtMzIuOCAwLTQ1LjN6TTQxNiAzMzZsMCAxNDRjMCAxNy43LTE0LjMgMzItMzIgMzJzLTMyLTE0LjMtMzItMzJsMC0xNDQgNjQgMHpNOTYgMTc2TDk2IDMyYzAtMTcuNyAxNC4zLTMyIDMyLTMyczMyIDE0LjMgMzIgMzJsMCAxNDQtNjQgMHoiXX0sdkg9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZmFjZS1ncmluLWJlYW0iLGljb246WzUxMiw1MTIsWzEyODUxNiwiZ3Jpbi1iZWFtIl0sImY1ODIiLCJNMjU2IDUxMmEyNTYgMjU2IDAgMSAwIDAtNTEyIDI1NiAyNTYgMCAxIDAgMCA1MTJ6TTM4Ni43IDMwOC45YzExLjktMy43IDIzLjkgNi4zIDE5LjYgMTguMS0yMi40IDYxLjMtODEuMyAxMDUuMS0xNTAuMyAxMDUuMVMxMjguMSAzODguMiAxMDUuNyAzMjYuOWMtNC4zLTExLjggNy43LTIxLjggMTkuNi0xOC4xIDM5LjIgMTIuMiA4My43IDE5LjEgMTMwLjcgMTkuMXM5MS41LTYuOSAxMzAuNy0xOS4xek0xNzYgMTgwYy0xNS41IDAtMjggMTIuNS0yOCAyOGwwIDhjMCAxMS05IDIwLTIwIDIwcy0yMC05LTIwLTIwbDAtOGMwLTM3LjYgMzAuNC02OCA2OC02OHM2OCAzMC40IDY4IDY4bDAgOGMwIDExLTkgMjAtMjAgMjBzLTIwLTktMjAtMjBsMC04YzAtMTUuNS0xMi41LTI4LTI4LTI4em0xMzIgMjhsMCA4YzAgMTEtOSAyMC0yMCAyMHMtMjAtOS0yMC0yMGwwLThjMC0zNy42IDMwLjQtNjggNjgtNjhzNjggMzAuNCA2OCA2OGwwIDhjMCAxMS05IDIwLTIwIDIwcy0yMC05LTIwLTIwbDAtOGMwLTE1LjUtMTIuNS0yOC0yOC0yOHMtMjggMTIuNS0yOCAyOHoiXX0sUFVlPXZILHlIPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InJlY3RhbmdsZS1hZCIsaWNvbjpbNTEyLDUxMixbImFkIl0sImY2NDEiLCJNNjQgNjRDMjguNyA2NCAwIDkyLjcgMCAxMjhMMCAzODRjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMzg0IDBjMzUuMyAwIDY0LTI4LjcgNjQtNjRsMC0yNTZjMC0zNS4zLTI4LjctNjQtNjQtNjRMNjQgNjR6TTQxNiAxODRsMCAxNDRjMCAxMy4zLTEwLjcgMjQtMjQgMjQtNy4xIDAtMTMuNS0zLjEtMTcuOS04LTEwLjIgNS4xLTIxLjggOC0zNC4xIDgtNDIgMC03Ni0zNC03Ni03NnMzNC03NiA3Ni03NmM5LjkgMCAxOS4zIDEuOSAyOCA1LjNsMC0yMS4zYzAtMTMuMyAxMC43LTI0IDI0LTI0czI0IDEwLjcgMjQgMjR6bS00OCA5MmEyOCAyOCAwIDEgMCAtNTYgMCAyOCAyOCAwIDEgMCA1NiAwek0xNjAgMjA4Yy04LjggMC0xNiA3LjItMTYgMTZsMCAzMiA0OCAwIDAtMzJjMC04LjgtNy4yLTE2LTE2LTE2bC0xNiAwem0zMiA5NmwtNDggMCAwIDI0YzAgMTMuMy0xMC43IDI0LTI0IDI0cy0yNC0xMC43LTI0LTI0bDAtMTA0YzAtMzUuMyAyOC43LTY0IDY0LTY0bDE2IDBjMzUuMyAwIDY0IDI4LjcgNjQgNjRsMCAxMDRjMCAxMy4zLTEwLjcgMjQtMjQgMjRzLTI0LTEwLjctMjQtMjRsMC0yNHoiXX0sSVVlPXlILHhIPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImJvb2stdGFuYWtoIixpY29uOls0NDgsNTEyLFsidGFuYWtoIl0sImY4MjciLCJNMzUyIDUxMkwzMiA1MTJjLTE3LjcgMC0zMi0xNC4zLTMyLTMyczE0LjMtMzIgMzItMzJsMC02Ni43QzEzLjQgMzc0LjcgMCAzNTYuOSAwIDMzNkwwIDQ4QzAgMjEuNSAyMS41IDAgNDggMEwzNTIgMGM1MyAwIDk2IDQzIDk2IDk2bDAgMzIwYzAgNTMtNDMgOTYtOTYgOTZ6bTMyLTk2YzAtMTcuNy0xNC4zLTMyLTMyLTMybC0yNTYgMCAwIDY0IDI1NiAwYzE3LjcgMCAzMi0xNC4zIDMyLTMyek0xMTMuOSAyMjljLTEuMiAyLTEuOSA0LjItMS45IDYuNiAwIDYuOSA1LjYgMTIuNSAxMi41IDEyLjVsNTYuOSAwIDMwLjUgNDkuMmMyLjYgNC4yIDcuMiA2LjggMTIuMiA2LjhzOS42LTIuNiAxMi4yLTYuOGwzMC41LTQ5LjIgNTYuOSAwYzYuOSAwIDEyLjUtNS42IDEyLjUtMTIuNSAwLTIuMy0uNi00LjYtMS45LTYuNmwtMjcuOC00NSAyNy44LTQ1YzEuMi0yIDEuOS00LjIgMS45LTYuNiAwLTYuOS01LjYtMTIuNS0xMi41LTEyLjVsLTU2LjkgMC0zMC41LTQ5LjJDMjMzLjYgNjYuNiAyMjkgNjQgMjI0IDY0cy05LjYgMi42LTEyLjIgNi44bC0zMC41IDQ5LjItNTYuOSAwYy02LjkgMC0xMi41IDUuNi0xMi41IDEyLjUgMCAyLjMgLjYgNC42IDEuOSA2LjZsMjcuOCA0NS0yNy44IDQ1eiJdfSxOVWU9eEgsd0g9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiaG90LXR1Yi1wZXJzb24iLGljb246WzQ0OCw1MTIsWyJob3QtdHViIl0sImY1OTMiLCJNMjQwIDQwYzAgMTMuNiA1LjggMjYuNSAxNS44IDM1LjZsMjYuNSAyMy44YzI0IDIxLjYgMzcuNyA1Mi4zIDM3LjcgODQuNiAwIDEzLjMtMTAuNyAyNC0yNCAyNHMtMjQtMTAuNy0yNC0yNGMwLTE4LjctNy45LTM2LjQtMjEuOC00OC45bC0yNi41LTIzLjhDMjAzLjUgOTMuMSAxOTIgNjcuMiAxOTIgNDAgMTkyIDI2LjcgMjAyLjcgMTYgMjE2IDE2czI0IDEwLjcgMjQgMjR6TTAgMzM2bDAtODBjMC0zNS4zIDI4LjctNjQgNjQtNjRsMTkuNyAwYzguMSAwIDE2LjIgMS42IDIzLjggNC42bDEzNy4xIDU0LjhjNy42IDMgMTUuNiA0LjYgMjMuOCA0LjZMMzg0IDI1NmMzNS4zIDAgNjQgMjguNyA2NCA2NGwwIDEyOGMwIDM1LjMtMjguNyA2NC02NCA2NEw2NCA1MTJjLTM1LjMgMC02NC0yOC43LTY0LTY0TDAgMzM2em05Ni0xNmMtMTMuMyAwLTI0IDEwLjctMjQgMjRsMCA4MGMwIDEzLjMgMTAuNyAyNCAyNCAyNHMyNC0xMC43IDI0LTI0bDAtODBjMC0xMy4zLTEwLjctMjQtMjQtMjR6bTE1MiAyNGMwLTEzLjMtMTAuNy0yNC0yNC0yNHMtMjQgMTAuNy0yNCAyNGwwIDgwYzAgMTMuMyAxMC43IDI0IDI0IDI0czI0LTEwLjcgMjQtMjRsMC04MHptMTA0LTI0Yy0xMy4zIDAtMjQgMTAuNy0yNCAyNGwwIDgwYzAgMTMuMyAxMC43IDI0IDI0IDI0czI0LTEwLjcgMjQtMjRsMC04MGMwLTEzLjMtMTAuNy0yNC0yNC0yNHpNMzI4IDE2YzEzLjMgMCAyNCAxMC43IDI0IDI0IDAgMTMuNiA1LjggMjYuNSAxNS44IDM1LjZsMjYuNSAyMy44YzI0IDIxLjYgMzcuNyA1Mi4zIDM3LjcgODQuNiAwIDEzLjMtMTAuNyAyNC0yNCAyNHMtMjQtMTAuNy0yNC0yNGMwLTE4LjctNy45LTM2LjQtMjEuOC00OC45bC0yNi41LTIzLjhDMzE1LjUgOTMuMSAzMDQgNjcuMiAzMDQgNDAgMzA0IDI2LjcgMzE0LjcgMTYgMzI4IDE2ek02NCA0MGE1NiA1NiAwIDEgMSAwIDExMiA1NiA1NiAwIDEgMSAwLTExMnoiXX0sRlVlPXdILE9VZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJmaWxlLWhhbGYtZGFzaGVkIixpY29uOlszODQsNTEyLFtdLCJlNjk4IiwiTTY0IDBDMjguNyAwIDAgMjguNyAwIDY0bDAgMjU2IDM4NCAwIDAtMTQ5LjVjMC0xNy02LjctMzMuMy0xOC43LTQ1LjNMMjU4LjcgMTguN0MyNDYuNyA2LjcgMjMwLjUgMCAyMTMuNSAwTDY0IDB6TTMyNS41IDE3NkwyMzIgMTc2Yy0xMy4zIDAtMjQtMTAuNy0yNC0yNEwyMDggNTguNSAzMjUuNSAxNzZ6TTAgMzUybDAgNjQgNjQgMCAwLTY0LTY0IDB6TTY0IDUxMmwwLTY0LTY0IDBjMCAzNS4zIDI4LjcgNjQgNjQgNjR6bTMyIDBsODAgMCAwLTY0LTgwIDAgMCA2NHptMTEyIDBsODAgMCAwLTY0LTgwIDAgMCA2NHptMTEyIDBjMzUuMyAwIDY0LTI4LjcgNjQtNjRsLTY0IDAgMCA2NHptNjQtMTYwbC02NCAwIDAgNjQgNjQgMCAwLTY0eiJdfSxNSD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJvdXRkZW50IixpY29uOls0NDgsNTEyLFsiZGVkZW50Il0sImYwM2IiLCJNLjQgNjRjMC0xNy43IDE0LjMtMzIgMzItMzJsMzg0IDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJsLTM4NCAwQzE0LjggOTYgLjQgODEuNyAuNCA2NHptMTkyIDEyOGMwLTE3LjcgMTQuMy0zMiAzMi0zMmwxOTIgMGMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMmwtMTkyIDBjLTE3LjcgMC0zMi0xNC4zLTMyLTMyem0zMiA5NmwxOTIgMGMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMmwtMTkyIDBjLTE3LjcgMC0zMi0xNC4zLTMyLTMyczE0LjMtMzIgMzItMzJ6TS40IDQ0OGMwLTE3LjcgMTQuMy0zMiAzMi0zMmwzODQgMGMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMmwtMzg0IDBjLTE3LjcgMC0zMi0xNC4zLTMyLTMyek0uNyAyNjguNmMtOC4yLTYuNC04LjItMTguOSAwLTI1LjNsMTAxLjktNzkuM2MxMC41LTguMiAyNS44LS43IDI1LjggMTIuNmwwIDE1OC42YzAgMTMuMy0xNS4zIDIwLjgtMjUuOCAxMi42TC43IDI2OC42eiJdfSxSVWU9TUgsQlVlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImhhbmQtcGVhY2UiLGljb246WzQ0OCw1MTIsWzk5OTZdLCJmMjViIiwiTTE5MiAwYzE3LjcgMCAzMiAxNC4zIDMyIDMybDAgMjA4LTY0IDAgMC0yMDhjMC0xNy43IDE0LjMtMzIgMzItMzJ6bTk2IDE2MGMxNy43IDAgMzIgMTQuMyAzMiAzMmwwIDY0YzAgMTcuNy0xNC4zIDMyLTMyIDMycy0zMi0xNC4zLTMyLTMybDAtNjRjMC0xNy43IDE0LjMtMzIgMzItMzJ6bTY0IDY0YzAtMTcuNyAxNC4zLTMyIDMyLTMyczMyIDE0LjMgMzIgMzJsMCA2NGMwIDE3LjctMTQuMyAzMi0zMiAzMnMtMzItMTQuMy0zMi0zMmwwLTY0ek02MS4zIDUxLjJMMTQzLjkgMjQwIDc0LjEgMjQwIDIuNyA3Ni44Qy00LjQgNjAuNiAzIDQxLjggMTkuMiAzNC43UzU0LjIgMzUgNjEuMyA1MS4yem0yNyAyMjEuM2wtLjItLjUgOTUuOSAwYzIyLjEgMCA0MCAxNy45IDQwIDQwcy0xNy45IDQwLTQwIDQwbC01NiAwYy04LjggMC0xNiA3LjItMTYgMTZzNy4yIDE2IDE2IDE2bDU2IDBjMzkuOCAwIDcyLTMyLjIgNzItNzJsMC0uNmM5LjQgNS40IDIwLjMgOC42IDMyIDguNiAxMy4yIDAgMjUuNC00IDM1LjYtMTAuOCA4LjcgMjQuOSAzMi41IDQyLjggNjAuNCA0Mi44IDExLjcgMCAyMi42LTMuMSAzMi04LjZsMCA4LjZjMCA4OC40LTcxLjYgMTYwLTE2MCAxNjBsLTYxLjcgMGMtNDIuNCAwLTgzLjEtMTYuOS0xMTMuMS00Ni45TDY5LjUgNDUzLjVDNDUuNSA0MjkuNSAzMiAzOTYuOSAzMiAzNjNsMC0yN2MwLTMyLjcgMjQuNi01OS43IDU2LjMtNjMuNXoiXX0sSFVlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImhlYWQtc2lkZS12aXJ1cyIsaWNvbjpbNTEyLDUxMixbXSwiZTA2NCIsIk0zMjkuNyA0NDhjLTUuMSAwLTkuNyAzLjctOS43IDguOGwwIDcuMmMwIDI2LjUtMjEuNSA0OC00OCA0OGwtMTYwIDBjLTI2LjUgMC00OC0yMS41LTQ4LTQ4bDAtNjMuNmMwLTEyLjYtNS4xLTI0LjUtMTMuMS0zNC4yLTMxLjgtMzguNy01MC45LTg4LjItNTAuOS0xNDIuMiAwLTEyMy43IDEwMC4zLTIyNCAyMjQtMjI0IDExMi43IDAgMjA2IDgzLjMgMjIxLjcgMTkxLjcgLjQgMyAxLjcgNS45IDMuNiA4LjNsMzUuOCA0Mi45YzcgOC40IDEwLjkgMTkuMSAxMC45IDMwLjEgMCAyNS45LTIxIDQ3LTQ3IDQ3bC0xIDBjLTguOCAwLTE2IDcuMi0xNiAxNmwwIDQ4YzAgMzUuMy0yOC43IDY0LTY0IDY0bC0zOC4zIDB6TTIyNCA2NGMtMTMuMyAwLTI0IDEwLjctMjQgMjQgMCAyMi45LTI3LjcgMzQuNC00My45IDE4LjItOS40LTkuNC0yNC42LTkuNC0zMy45IDBzLTkuNCAyNC42IDAgMzMuOWMxNi4yIDE2LjIgNC43IDQzLjktMTguMiA0My45LTEzLjMgMC0yNCAxMC43LTI0IDI0czEwLjcgMjQgMjQgMjRjMjIuOSAwIDM0LjQgMjcuNyAxOC4yIDQzLjktOS40IDkuNC05LjQgMjQuNiAwIDMzLjlzMjQuNiA5LjQgMzMuOSAwYzE2LjItMTYuMiA0My45LTQuNyA0My45IDE4LjIgMCAxMy4zIDEwLjcgMjQgMjQgMjRzMjQtMTAuNyAyNC0yNGMwLTIyLjkgMjcuNy0zNC40IDQzLjktMTguMiA5LjQgOS40IDI0LjYgOS40IDMzLjkgMHM5LjQtMjQuNiAwLTMzLjljLTE2LjItMTYuMi00LjctNDMuOSAxOC4yLTQzLjkgMTMuMyAwIDI0LTEwLjcgMjQtMjRzLTEwLjctMjQtMjQtMjRjLTIyLjkgMC0zNC40LTI3LjctMTguMi00My45IDkuNC05LjQgOS40LTI0LjYgMC0zMy45cy0yNC42LTkuNC0zMy45IDBjLTE2LjIgMTYuMi00My45IDQuNy00My45LTE4LjIgMC0xMy4zLTEwLjctMjQtMjQtMjR6bS0zMiA4OGEyNCAyNCAwIDEgMSAwIDQ4IDI0IDI0IDAgMSAxIDAtNDh6bTQwIDg4YTI0IDI0IDAgMSAxIDQ4IDAgMjQgMjQgMCAxIDEgLTQ4IDB6Il19LHFVZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJjb21wYXNzIixpY29uOls1MTIsNTEyLFsxMjk1MTddLCJmMTRlIiwiTTI1NiA1MTJhMjU2IDI1NiAwIDEgMCAwLTUxMiAyNTYgMjU2IDAgMSAwIDAgNTEyem01MC43LTE4Ni45TDE2Mi40IDM4MC42Yy0xOS40IDcuNS0zOC41LTExLjYtMzEtMzFsNTUuNS0xNDQuM2MzLjMtOC41IDkuOS0xNS4xIDE4LjQtMTguNGwxNDQuMy01NS41YzE5LjQtNy41IDM4LjUgMTEuNiAzMSAzMUwzMjUuMSAzMDYuN2MtMy4yIDguNS05LjkgMTUuMS0xOC40IDE4LjR6TTI4OCAyNTZhMzIgMzIgMCAxIDAgLTY0IDAgMzIgMzIgMCAxIDAgNjQgMHoiXX0sVlVlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InBlbi1uaWIiLGljb246WzUxMiw1MTIsWzEwMDAxXSwiZjVhZCIsIk0zNjguNSAxOC4zbC01MC4xIDUwLjEgMTI1LjMgMTI1LjMgNTAuMS01MC4xYzIxLjktMjEuOSAyMS45LTU3LjMgMC03OS4yTDQ0Ny43IDE4LjNjLTIxLjktMjEuOS01Ny4zLTIxLjktNzkuMiAwek0yNzkuMyA5Ny4ybC0uNSAuMS0xNDQuMSA0My4yYy0xOS45IDYtMzUuNyAyMS4yLTQyLjMgNDFMMy44IDQ0NS44Yy0yLjkgOC43LTEuOSAxOC4yIDIuNSAyNkwxNjEuNyAzMTYuNGMtMS4xLTQtMS42LTguMS0xLjYtMTIuNCAwLTI2LjUgMjEuNS00OCA0OC00OHM0OCAyMS41IDQ4IDQ4LTIxLjUgNDgtNDggNDhjLTQuMyAwLTguNS0uNi0xMi40LTEuNkw0MC4zIDUwNS43YzcuOCA0LjQgMTcuMiA1LjQgMjYgMi41bDI2NC4zLTg4LjZjMTkuNy02LjYgMzUtMjIuNCA0MS00Mi4zbDQzLjItMTQ0LjEgLjEtLjUtMTM1LjUtMTM1LjV6Il19LGpVZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJ0ZW50LWFycm93cy1kb3duIixpY29uOls1MTIsNTEyLFtdLCJlNTgxIiwiTTE4NS41IDEyMWM5LjQtOS40IDkuNC0yNC42IDAtMzMuOXMtMjQuNi05LjQtMzMuOSAwbC0zMSAzMSAwLTEwMi4xYzAtMTMuMy0xMC43LTI0LTI0LTI0cy0yNCAxMC43LTI0IDI0bDAgMTAyLjEtMzEtMzFjLTkuNC05LjQtMjQuNi05LjQtMzMuOSAwcy05LjQgMjQuNiAwIDMzLjlsNzIgNzJjOS40IDkuNCAyNC42IDkuNCAzMy45IDBsNzItNzJ6bTI0OCA3Mmw3Mi03MmM5LjQtOS40IDkuNC0yNC42IDAtMzMuOXMtMjQuNi05LjQtMzMuOSAwbC0zMSAzMSAwLTEwMi4xYzAtMTMuMy0xMC43LTI0LTI0LTI0cy0yNCAxMC43LTI0IDI0bDAgMTAyLjEtMzEtMzFjLTkuNC05LjQtMjQuNi05LjQtMzMuOSAwcy05LjQgMjQuNiAwIDMzLjlsNzIgNzJjOS40IDkuNCAyNC42IDkuNCAzMy45IDB6TTYwLjMgMjkyLjZMMzcuMSA0NzZjLTIuNCAxOS4xIDEyLjUgMzYgMzEuNyAzNmwxNTQuNSAwYzE3LjcgMCAzMi0xNC4zIDMyLTMybDAtMTE3LjRjMC01LjkgNC43LTEwLjYgMTAuNi0xMC42IDQgMCA3LjcgMi4zIDkuNSA1LjlsNjguMiAxMzYuNWM1LjQgMTAuOCAxNi41IDE3LjcgMjguNiAxNy43bDcxLjkgMGMxOS4zIDAgMzQuMi0xNi45IDMxLjctMzZMNDUyLjcgMjkyLjdjLTEuMi05LjctNi45LTE4LjQtMTUuMy0yMy40TDI3MS45IDE2OS45Yy0xMC4yLTYuMS0yMi45LTYuMS0zMy4xIC4xTDc1LjQgMjY5LjNjLTguMyA1LjEtMTMuOSAxMy43LTE1LjEgMjMuM3oiXX0sekg9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZm9yd2FyZC1mYXN0IixpY29uOls1MTIsNTEyLFs5MTk3LCJmYXN0LWZvcndhcmQiXSwiZjA1MCIsIk0xOS44IDQ3Ny42YzEyIDUgMjUuNyAyLjIgMzQuOS02LjlMMjI0IDMwMS4zIDIyNCA0NDhjMCAxMi45IDcuOCAyNC42IDE5LjggMjkuNnMyNS43IDIuMiAzNC45LTYuOUw0NDggMzAxLjMgNDQ4IDQ0OGMwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMybDAtMzg0YzAtMTcuNy0xNC4zLTMyLTMyLTMycy0zMiAxNC4zLTMyIDMybDAgMTQ2LjctMTY5LjQtMTY5LjRjLTkuMi05LjItMjIuOS0xMS45LTM0LjktNi45UzIyNCA1MS4xIDIyNCA2NEwyMjQgMjEwLjcgNTQuNiA0MS40Yy05LjItOS4yLTIyLjktMTEuOS0zNC45LTYuOVMwIDUxLjEgMCA2NEwwIDQ0OGMwIDEyLjkgNy44IDI0LjYgMTkuOCAyOS42eiJdfSxVVWU9ekgsV1VlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImNyb3AiLGljb246WzUxMiw1MTIsW10sImYxMjUiLCJNNDQ4IDEwOS4zbDU0LjYtNTQuNmMxMi41LTEyLjUgMTIuNS0zMi44IDAtNDUuM3MtMzIuOC0xMi41LTQ1LjMgMEw0MDIuNyA2NCAxNzYgNjQgMTc2IDEyOCAzMzguNyAxMjggMTI4IDMzOC43IDEyOCAzMmMwLTE3LjctMTQuMy0zMi0zMi0zMlM2NCAxNC4zIDY0IDMybDAgMzItMzIgMEMxNC4zIDY0IDAgNzguMyAwIDk2czE0LjMgMzIgMzIgMzJsMzIgMCAwIDI1NmMwIDM1LjMgMjguNyA2NCA2NCA2NGwyMDggMCAwLTY0LTE2Mi43IDAgMjEwLjctMjEwLjcgMCAzMDYuN2MwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMybDAtMzIgMzIgMGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMmwtMzIgMCAwLTI3NC43eiJdfSxrSD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJ3aGlza2V5LWdsYXNzIixpY29uOls0NDgsNTEyLFsxMjkzNDcsImdsYXNzLXdoaXNrZXkiXSwiZjdhMCIsIk0zMiAzMkMxNC4zIDMyIDAgNDYuMyAwIDY0TDAgMzUyYzAgNzAuNyA1Ny4zIDEyOCAxMjggMTI4bDE5MiAwYzcwLjcgMCAxMjgtNTcuMyAxMjgtMTI4bDAtMjg4YzAtMTcuNy0xNC4zLTMyLTMyLTMyTDMyIDMyek02NCAyNTZsMC0xNjAgMzIwIDAgMCAxNjAtMzIwIDB6Il19LEdVZT1rSCxZVWU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToic3F1YXJlIixpY29uOls0NDgsNTEyLFs5NjMyLDk3MjMsOTcyNCw2MTU5MF0sImYwYzgiLCJNNjQgMzJsMzIwIDBjMzUuMyAwIDY0IDI4LjcgNjQgNjRsMCAzMjBjMCAzNS4zLTI4LjcgNjQtNjQgNjRMNjQgNDgwYy0zNS4zIDAtNjQtMjguNy02NC02NEwwIDk2QzAgNjAuNyAyOC43IDMyIDY0IDMyeiJdfSxTSD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJmYWNlLWdyaW4iLGljb246WzUxMiw1MTIsWzEyODUxMiwiZ3JpbiJdLCJmNTgwIiwiTTI1NiA1MTJhMjU2IDI1NiAwIDEgMCAwLTUxMiAyNTYgMjU2IDAgMSAwIDAgNTEyek0zODYuNyAzMDguOWMxMS45LTMuNyAyMy45IDYuMyAxOS42IDE4LjEtMjIuNCA2MS4zLTgxLjMgMTA1LjEtMTUwLjMgMTA1LjFTMTI4LjEgMzg4LjIgMTA1LjcgMzI2LjljLTQuMy0xMS44IDcuNy0yMS44IDE5LjYtMTguMSAzOS4yIDEyLjIgODMuNyAxOS4xIDEzMC43IDE5LjFzOTEuNS02LjkgMTMwLjctMTkuMXpNMTQ0IDIwOGEzMiAzMiAwIDEgMSA2NCAwIDMyIDMyIDAgMSAxIC02NCAwem0xOTItMzJhMzIgMzIgMCAxIDEgMCA2NCAzMiAzMiAwIDEgMSAwLTY0eiJdfSxaVWU9U0gsWFVlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImZpbGUtY29udHJhY3QiLGljb246WzM4NCw1MTIsW10sImY1NmMiLCJNMCA2NEMwIDI4LjcgMjguNyAwIDY0IDBMMjEzLjUgMGMxNyAwIDMzLjMgNi43IDQ1LjMgMTguN0wzNjUuMyAxMjUuM2MxMiAxMiAxOC43IDI4LjMgMTguNyA0NS4zTDM4NCA0NDhjMCAzNS4zLTI4LjcgNjQtNjQgNjRMNjQgNTEyYy0zNS4zIDAtNjQtMjguNy02NC02NEwwIDY0em0yMDgtNS41bDAgOTMuNWMwIDEzLjMgMTAuNyAyNCAyNCAyNEwzMjUuNSAxNzYgMjA4IDU4LjV6TTg4IDY0Qzc0LjcgNjQgNjQgNzQuNyA2NCA4OHMxMC43IDI0IDI0IDI0bDQ4IDBjMTMuMyAwIDI0LTEwLjcgMjQtMjRzLTEwLjctMjQtMjQtMjRMODggNjR6bTAgOTZjLTEzLjMgMC0yNCAxMC43LTI0IDI0czEwLjcgMjQgMjQgMjRsNDggMGMxMy4zIDAgMjQtMTAuNyAyNC0yNHMtMTAuNy0yNC0yNC0yNGwtNDggMHptNzAuMyAxNjBjLTExLjMgMC0yMS45IDUuMS0yOC45IDEzLjlMNjkuMyA0MDljLTguMyAxMC4zLTYuNiAyNS41IDMuNyAzMy43czI1LjUgNi42IDMzLjctMy44bDQ3LjEtNTguOCAxNS4yIDUwLjdjMyAxMC4yIDEyLjQgMTcuMSAyMyAxNy4xbDEwNCAwYzEzLjMgMCAyNC0xMC43IDI0LTI0cy0xMC43LTI0LTI0LTI0bC04Ni4xIDAtMTYuMS01My42Yy00LjctMTUuNy0xOS4xLTI2LjQtMzUuNS0yNi40eiJdfSxLVWU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiYW5nbGUtdXAiLGljb246WzM4NCw1MTIsWzg5NjNdLCJmMTA2IiwiTTE2OS40IDEzNy40YzEyLjUtMTIuNSAzMi44LTEyLjUgNDUuMyAwbDE2MCAxNjBjMTIuNSAxMi41IDEyLjUgMzIuOCAwIDQ1LjNzLTMyLjggMTIuNS00NS4zIDBMMTkyIDIwNS4zIDU0LjYgMzQyLjZjLTEyLjUgMTIuNS0zMi44IDEyLjUtNDUuMyAwcy0xMi41LTMyLjggMC00NS4zbDE2MC0xNjB6Il19LENIPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImZhY2Utc21pbGUiLGljb246WzUxMiw1MTIsWzEyODU3OCwic21pbGUiXSwiZjExOCIsIk0yNTYgNTEyYTI1NiAyNTYgMCAxIDAgMC01MTIgMjU2IDI1NiAwIDEgMCAwIDUxMnpNMTY1LjQgMzIxLjljMjAuNCAyOCA1My40IDQ2LjEgOTAuNiA0Ni4xczcwLjItMTguMSA5MC42LTQ2LjFjNy44LTEwLjcgMjIuOC0xMy4xIDMzLjUtNS4zczEzLjEgMjIuOCA1LjMgMzMuNUMzNTYuMyAzOTAgMzA5LjIgNDE2IDI1NiA0MTZzLTEwMC4zLTI2LTEyOS40LTY1LjljLTcuOC0xMC43LTUuNC0yNS43IDUuMy0zMy41czI1LjctNS40IDMzLjUgNS4zek0xNDQgMjA4YTMyIDMyIDAgMSAxIDY0IDAgMzIgMzIgMCAxIDEgLTY0IDB6bTE5Mi0zMmEzMiAzMiAwIDEgMSAwIDY0IDMyIDMyIDAgMSAxIDAtNjR6Il19LFFVZT1DSCxKVWU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToicGVyc29uLWRyZXNzLWJ1cnN0IixpY29uOls2NDAsNTEyLFtdLCJlNTQ0IiwiTTIwOCA0MC4xYzEzLjMgMCAyNC0xMC43IDI0LTI0bDAtNDhjMC0xMy4zLTEwLjctMjQtMjQtMjRzLTI0IDEwLjctMjQgMjRsMCA0OGMwIDEzLjMgMTAuNyAyNCAyNCAyNHpNOCAxNDQuMWMwIDEzLjMgMTAuNyAyNCAyNCAyNGw0OCAwYzEzLjMgMCAyNC0xMC43IDI0LTI0cy0xMC43LTI0LTI0LTI0bC00OCAwYy0xMy4zIDAtMjQgMTAuNy0yNCAyNHptOTIuNSAxNDEuNGwzMy45LTMzLjljOS40LTkuNCA5LjQtMjQuNiAwLTMzLjlzLTI0LjYtOS40LTMzLjkgMEw2Ni42IDI1MS42Yy05LjQgOS40LTkuNCAyNC42IDAgMzMuOXMyNC42IDkuNCAzMy45IDB6TTY2LjYgMi43Yy05LjQgOS40LTkuNCAyNC42IDAgMzMuOWwzMy45IDMzLjljOS40IDkuNCAyNC42IDkuNCAzMy45IDBzOS40LTI0LjYgMC0zMy45TDEwMC41IDIuN0M5MS4xLTYuNyA3Ni02LjcgNjYuNiAyLjd6TTM1MiA4MGE1NiA1NiAwIDEgMCAwLTExMiA1NiA1NiAwIDEgMCAwIDExMnpNMjQ2LjIgMzg0bDI1LjggMCAwIDEyOGMwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMybDAtMTI4IDMyIDAgMCAxMjhjMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMmwwLTEyOCAyNS44IDBjMTAuOSAwIDE4LjYtMTAuNyAxNS4yLTIxLjFsLTQzLTEyOSA0OC4zIDY1LjFjMTAuNSAxNC4yIDMwLjYgMTcuMiA0NC44IDYuNnMxNy4yLTMwLjYgNi42LTQ0LjhsLTcwLjUtOTVDNDM0IDEzMiAzOTQuMyAxMTIgMzUyIDExMnMtODIgMjAtMTA3LjIgNTMuOWwtNzAuNSA5NWMtMTAuNSAxNC4yLTcuNiAzNC4yIDYuNiA0NC44czM0LjIgNy42IDQ0LjgtNi42bDQ4LjMtNjUuMS00MyAxMjljLTMuNSAxMC40IDQuMyAyMS4xIDE1LjIgMjEuMXoiXX0sZVdlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImRpdmlkZSIsaWNvbjpbNDQ4LDUxMixbMTAxMzUsMjQ3XSwiZjUyOSIsIk0yMjQgNDhhNTYgNTYgMCAxIDEgMCAxMTIgNTYgNTYgMCAxIDEgMC0xMTJ6TTAgMjU2YzAtMTcuNyAxNC4zLTMyIDMyLTMybDM4NCAwYzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMyTDMyIDI4OGMtMTcuNyAwLTMyLTE0LjMtMzItMzJ6TTE2OCA0MDhhNTYgNTYgMCAxIDEgMTEyIDAgNTYgNTYgMCAxIDEgLTExMiAweiJdfSx0V2U9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiY29kZS1mb3JrIixpY29uOls0NDgsNTEyLFtdLCJlMTNiIiwiTTgwIDEwNGEyNCAyNCAwIDEgMCAwLTQ4IDI0IDI0IDAgMSAwIDAgNDh6bTgwLTI0YzAgMzIuOC0xOS43IDYxLTQ4IDczLjNsMCAyMi43YzAgMjYuNSAyMS41IDQ4IDQ4IDQ4bDEyOCAwYzI2LjUgMCA0OC0yMS41IDQ4LTQ4bDAtMjIuN2MtMjguMy0xMi4zLTQ4LTQwLjUtNDgtNzMuMyAwLTQ0LjIgMzUuOC04MCA4MC04MHM4MCAzNS44IDgwIDgwYzAgMzIuOC0xOS43IDYxLTQ4IDczLjNsMCAyMi43YzAgNjEuOS01MC4xIDExMi0xMTIgMTEybC0zMiAwIDAgNzAuN2MyOC4zIDEyLjMgNDggNDAuNSA0OCA3My4zIDAgNDQuMi0zNS44IDgwLTgwIDgwcy04MC0zNS44LTgwLTgwYzAtMzIuOCAxOS43LTYxIDQ4LTczLjNsMC03MC43LTMyIDBDOTguMSAyODggNDggMjM3LjkgNDggMTc2bDAtMjIuN0MxOS43IDE0MSAwIDExMi44IDAgODAgMCAzNS44IDM1LjggMCA4MCAwczgwIDM1LjggODAgODB6bTIwOCAyNGEyNCAyNCAwIDEgMCAwLTQ4IDI0IDI0IDAgMSAwIDAgNDh6TTI0OCA0MzJhMjQgMjQgMCAxIDAgLTQ4IDAgMjQgMjQgMCAxIDAgNDggMHoiXX0sYVdlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImhvdXNlLWZsYWciLGljb246WzY0MCw1MTIsW10sImU1MGQiLCJNNDcyIDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJsOTYgMGMxNy43IDAgMzIgMTQuMyAzMiAzMmwwIDk2YzAgMTcuNy0xNC4zIDMyLTMyIDMybC05NiAwIDAgMjg4YzAgMTcuNy0xNC4zIDMyLTMyIDMycy0zMi0xNC4zLTMyLTMybDAtNDQ4YzAtMTcuNyAxNC4zLTMyIDMyLTMyek0yODMuNSA1OS4xbDEwMC41IDk2LjkgMCAzNTYtMjU2IDBjLTM1LjMgMC02NC0yOC43LTY0LTY0bDAtMTQ0LTE5LjkgMGMtMTUuNSAwLTI4LjEtMTIuNi0yOC4xLTI4LjEgMC03LjYgMy4xLTE0LjkgOC42LTIwLjJMMjI4LjUgNTkuMUMyMzUuOSA1MiAyNDUuNyA0OCAyNTYgNDhzMjAuMSA0IDI3LjUgMTEuMXpNMjMyIDI1NmMtMTMuMyAwLTI0IDEwLjctMjQgMjRsMCA0OGMwIDEzLjMgMTAuNyAyNCAyNCAyNGw0OCAwYzEzLjMgMCAyNC0xMC43IDI0LTI0bDAtNDhjMC0xMy4zLTEwLjctMjQtMjQtMjRsLTQ4IDB6Il19LHVsPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImJ1aWxkaW5nLWNvbHVtbnMiLGljb246WzUxMiw1MTIsWyJiYW5rIiwiaW5zdGl0dXRpb24iLCJtdXNldW0iLCJ1bml2ZXJzaXR5Il0sImYxOWMiLCJNMjcxLjkgMjAuMmMtOS44LTUuNi0yMS45LTUuNi0zMS44IDBsLTIyNCAxMjhjLTEyLjYgNy4yLTE4LjggMjItMTUuMSAzNlMxNy41IDIwOCAzMiAyMDhsMzIgMCAwIDIwOCAwIDAtNTEuMiAzOC40QzQuNyA0NjAuNCAwIDQ2OS45IDAgNDgwIDAgNDk3LjcgMTQuMyA1MTIgMzIgNTEybDQ0OCAwYzE3LjcgMCAzMi0xNC4zIDMyLTMyIDAtMTAuMS00LjctMTkuNi0xMi44LTI1LjZsLTUxLjItMzguNCAwLTIwOCAzMiAwYzE0LjUgMCAyNy4yLTkuOCAzMC45LTIzLjhzLTIuNS0yOC44LTE1LjEtMzZsLTIyNC0xMjh6TTQwMCAyMDhsMCAyMDgtNjQgMCAwLTIwOCA2NCAwem0tMTEyIDBsMCAyMDgtNjQgMCAwLTIwOCA2NCAwem0tMTEyIDBsMCAyMDgtNjQgMCAwLTIwOCA2NCAwek0yNTYgOTZhMzIgMzIgMCAxIDEgMCA2NCAzMiAzMiAwIDEgMSAwLTY0eiJdfSxpV2U9dWwscldlPXVsLHNXZT11bCxuV2U9dWwsb1dlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InJ1ZyIsaWNvbjpbNTc2LDUxMixbXSwiZTU2OSIsIk0yNCA2NGw1NiAwIDAgMzg0LTU2IDBjLTEzLjMgMC0yNC0xMC43LTI0LTI0czEwLjctMjQgMjQtMjRsOCAwIDAtNDAtOCAwYy0xMy4zIDAtMjQtMTAuNy0yNC0yNHMxMC43LTI0IDI0LTI0bDggMCAwLTMyLTggMGMtMTMuMyAwLTI0LTEwLjctMjQtMjRzMTAuNy0yNCAyNC0yNGw4IDAgMC0zMi04IDBjLTEzLjMgMC0yNC0xMC43LTI0LTI0czEwLjctMjQgMjQtMjRsOCAwIDAtNDAtOCAwQzEwLjcgMTEyIDAgMTAxLjMgMCA4OFMxMC43IDY0IDI0IDY0em0xMDQgMGwzMjAgMCAwIDM4NC0zMjAgMCAwLTM4NHpNNTc2IDg4YzAgMTMuMy0xMC43IDI0LTI0IDI0bC04IDAgMCA0MCA4IDBjMTMuMyAwIDI0IDEwLjcgMjQgMjRzLTEwLjcgMjQtMjQgMjRsLTggMCAwIDMyIDggMGMxMy4zIDAgMjQgMTAuNyAyNCAyNHMtMTAuNyAyNC0yNCAyNGwtOCAwIDAgMzIgOCAwYzEzLjMgMCAyNCAxMC43IDI0IDI0cy0xMC43IDI0LTI0IDI0bC04IDAgMCA0MCA4IDBjMTMuMyAwIDI0IDEwLjcgMjQgMjRzLTEwLjcgMjQtMjQgMjRsLTU2IDAgMC0zODQgNTYgMGMxMy4zIDAgMjQgMTAuNyAyNCAyNHoiXX0sbFdlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImNvZGUtbWVyZ2UiLGljb246WzQ0OCw1MTIsW10sImYzODciLCJNODAgNTZhMjQgMjQgMCAxIDEgMCA0OCAyNCAyNCAwIDEgMSAwLTQ4em0zMi40IDk3LjJjMjgtMTIuNCA0Ny42LTQwLjUgNDcuNi03My4yIDAtNDQuMi0zNS44LTgwLTgwLTgwUzAgMzUuOCAwIDgwYzAgMzIuOCAxOS43IDYxIDQ4IDczLjNsMCAyMDUuM0MxOS43IDM3MSAwIDM5OS4yIDAgNDMyIDAgNDc2LjIgMzUuOCA1MTIgODAgNTEyczgwLTM1LjggODAtODBjMC0zMi44LTE5LjctNjEtNDgtNzMuM2wwLTg2LjZjMjYuNyAyMC4xIDYwIDMyIDk2IDMybDg2LjcgMGMxMi4zIDI4LjMgNDAuNSA0OCA3My4zIDQ4IDQ0LjIgMCA4MC0zNS44IDgwLTgwcy0zNS44LTgwLTgwLTgwYy0zMi44IDAtNjEgMTkuNy03My4zIDQ4TDIwOCAyNDBjLTQ5LjkgMC05MS0zOC4xLTk1LjYtODYuOHpNODAgNDA4YTI0IDI0IDAgMSAxIDAgNDggMjQgMjQgMCAxIDEgMC00OHpNMzQ0IDI3MmEyNCAyNCAwIDEgMSA0OCAwIDI0IDI0IDAgMSAxIC00OCAweiJdfSxjV2U9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiaG91c2UtdHN1bmFtaSIsaWNvbjpbNjQwLDUxMixbXSwiZTUxNSIsIk0yODggMTZDMTU1LjUgMTYgNDggMTIzLjUgNDggMjU2UzE1NS41IDQ5NiAyODggNDk2YzcuNCAwIDE5LjctMi4zIDMzLjctNy4zIDEzLjgtNC45IDI3LjEtMTEuNyAzNi43LTE4LjkgMzguNC0yOSA5MC41LTI5IDEyOSAwIDE1LjQgMTEuNiAzNS4zIDIxLjEgNTUgMjQuNCAxOS41IDMuMyAzNyAuNCA1MS4xLTEwLjIgMTAuNi04IDI1LjYtNS45IDMzLjYgNC43czUuOSAyNS42LTQuNyAzMy42Yy0yNy4zIDIwLjUtNTkuMiAyNC04Ny45IDE5LjItMjguNS00LjgtNTUuNC0xOC03NS45LTMzLjQtMjEuMy0xNi4xLTQ5LjktMTYuMS03MS4yIDAtMTQuNSAxMC45LTMyLjQgMTkuNy00OS41IDI1LjgtMTYuOCA2LTM0LjkgMTAuMS00OS45IDEwLjFsLS4xIDBDMTI4LjkgNTQzLjkgMCA0MTUgMCAyNTYgMCA5Ni45IDEyOC45LTMyIDI4OC0zMiAzMDEuMy0zMiAzMTItMjEuMyAzMTItOHMtMTAuNyAyNC0yNCAyNHptNDQuOCAxNjYuNGw5Ni03MmMxMS40LTguNSAyNy4xLTguNSAzOC41IDBsOTUuNSA3MmM4IDYgMTIuNyAxNS41IDEyLjcgMjUuNWwuMyAxMjEuNWMtMi4yIDEuMy00LjMgMi42LTYuNCA0LjItNC4zIDMuMS04LjcgLjgtMTMuMi0xLjVsLTEuMi0uNi0uNy0uM2MtNS40LTIuNy0xMS43LTYuNi0xOC45LTExLjctMjkuNS0yMS4xLTY0LjMtMzEuNi05OS4xLTMxLjQtMzQuMSAuMi02OC4xIDEwLjctOTcgMzEuNC03LjggNS42LTEzLjggOS4zLTE5LjMgMTEuMkwzMjAgMjA4YzAtMTAuMSA0LjctMTkuNiAxMi44LTI1LjZ6bTU0LjYgMjI5LjdjLTE0LjUgMTAuOS0zMi40IDE5LjctNDkuNSAyNS44LTE2LjggNi0zNC45IDEwLjEtNDkuOSAxMC4xLTEwNiAwLTE5Mi04Ni0xOTItMTkyUzE4MiA2NCAyODggNjRjMTMuMyAwIDI0IDEwLjcgMjQgMjRzLTEwLjcgMjQtMjQgMjRjLTc5LjUgMC0xNDQgNjQuNS0xNDQgMTQ0czY0LjUgMTQ0IDE0NCAxNDRjNy40IDAgMTkuNy0yLjMgMzMuNy03LjMgMTMuOC00LjkgMjcuMS0xMS43IDM2LjctMTguOSAzOC40LTI5IDkwLjUtMjkgMTI5IDAgMTUuNCAxMS42IDM1LjMgMjEuMSA1NSAyNC40IDE5LjUgMy4zIDM3IC40IDUxLjEtMTAuMiAxMC42LTggMjUuNi01LjkgMzMuNiA0LjdzNS45IDI1LjYtNC43IDMzLjZjLTI3LjMgMjAuNS01OS4yIDI0LTg3LjkgMTkuMi0yOC41LTQuOC01NS40LTE4LTc1LjktMzMuNC0yMS4zLTE2LjEtNDkuOS0xNi4xLTcxLjIgMHoiXX0sZFdlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6Im1hZ25pZnlpbmctZ2xhc3MtY2hhcnQiLGljb246WzUxMiw1MTIsW10sImU1MjIiLCJNNDE2IDIwOGMwIDQ1LjktMTQuOSA4OC4zLTQwIDEyMi43TDUwMi42IDQ1Ny40YzEyLjUgMTIuNSAxMi41IDMyLjggMCA0NS4zcy0zMi44IDEyLjUtNDUuMyAwTDMzMC43IDM3NkMyOTYuMyA0MDEuMSAyNTMuOSA0MTYgMjA4IDQxNiA5My4xIDQxNiAwIDMyMi45IDAgMjA4UzkzLjEgMCAyMDggMCA0MTYgOTMuMSA0MTYgMjA4em0tMzEyIDhsMCA2NGMwIDEzLjMgMTAuNyAyNCAyNCAyNHMyNC0xMC43IDI0LTI0bDAtNjRjMC0xMy4zLTEwLjctMjQtMjQtMjRzLTI0IDEwLjctMjQgMjR6bTgwLTk2bDAgMTYwYzAgMTMuMyAxMC43IDI0IDI0IDI0czI0LTEwLjcgMjQtMjRsMC0xNjBjMC0xMy4zLTEwLjctMjQtMjQtMjRzLTI0IDEwLjctMjQgMjR6bTgwIDY0bDAgOTZjMCAxMy4zIDEwLjcgMjQgMjQgMjRzMjQtMTAuNyAyNC0yNGwwLTk2YzAtMTMuMy0xMC43LTI0LTI0LTI0cy0yNCAxMC43LTI0IDI0eiJdfSxoV2U9e3ByZWZpeDoiZmFzIixpY29uTmFtZToidW1icmVsbGEiLGljb246WzUxMiw1MTIsW10sImYwZTkiLCJNMjU2LTMyYzE3LjcgMCAzMiAxNC4zIDMyIDMybDAgMmMxMjYuMyAxNS43IDIyNCAxMjMuNSAyMjQgMjU0IDAgMy44LS4xIDcuNS0uMiAxMS4zLS4zIDYuOS01IDEyLjgtMTEuNyAxNC43cy0xMy44LS43LTE3LjYtNi41Yy0xNC40LTIxLjQtMzguOC0zNS41LTY2LjUtMzUuNS0yOS4zIDAtNTQuOSAxNS43LTY4LjkgMzkuMy0yLjcgNC42LTcuNiA3LjYtMTMgNy44cy0xMC41LTIuMi0xMy43LTYuNWMtMTQuNi0xOS44LTM4LTMyLjYtNjQuNS0zMi42cy00OS45IDEyLjgtNjQuNSAzMi42Yy0zLjIgNC4zLTguMyA2LjgtMTMuNyA2LjVzLTEwLjItMy4yLTEzLTcuOGMtMTQtMjMuNi0zOS42LTM5LjMtNjguOS0zOS4zLTI3LjcgMC01Mi4xIDE0LjEtNjYuNSAzNS41LTMuOSA1LjctMTEgOC40LTE3LjYgNi41Uy41IDI3NC4yIC4yIDI2Ny4zQy4xIDI2My41IDAgMjU5LjggMCAyNTYgMCAxMjUuNSA5Ny43IDE3LjcgMjI0IDJsMC0yYzAtMTcuNyAxNC4zLTMyIDMyLTMyem0zMiAzNjBsMCAxMDIuNmMwIDQ1LTM2LjUgODEuNC04MS40IDgxLjQtMzAuOCAwLTU5LTE3LjQtNzIuOC00NWwtMi4zLTQuN2MtNy45LTE1LjgtMS41LTM1IDE0LjMtNDIuOXMzNS0xLjUgNDIuOSAxNC4zbDIuMyA0LjdjMyA1LjkgOSA5LjYgMTUuNiA5LjYgOS42IDAgMTcuNC03LjggMTcuNC0xNy40TDIyNCAzMjhjMC0xNy43IDE0LjMtMzIgMzItMzJzMzIgMTQuMyAzMiAzMnoiXX0scFdlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImhpbGwtcm9ja3NsaWRlIixpY29uOls1NzYsNTEyLFtdLCJlNTA4IiwiTTI1Mi40IDEwMy44bDI3IDQ4YzIuOCA1IDguMiA4LjIgMTMuOSA4LjJsNTMuMyAwYzUuOCAwIDExLjEtMy4xIDEzLjktOC4ybDI3LTQ4YzIuNy00LjkgMi43LTEwLjggMC0xNS43bC0yNy00OGMtMi44LTUtOC4yLTguMi0xMy45LTguMmwtNTMuMyAwYy01LjggMC0xMS4xIDMuMS0xMy45IDguMmwtMjcgNDhjLTIuNyA0LjktMi43IDEwLjggMCAxNS43ek02OC4zIDg3QzQzLjEgNjEuOCAwIDc5LjcgMCAxMTUuM0wwIDQzMmMwIDQ0LjIgMzUuOCA4MCA4MCA4MGwzMTYuNyAwYzM1LjYgMCA1My41LTQzLjEgMjguMy02OC4zTDY4LjMgODd6TTUwNC4yIDQwMy42YzQuOSAyLjcgMTAuOCAyLjcgMTUuNyAwbDQ4LTI3YzUtMi44IDguMi04LjIgOC4yLTEzLjlsMC01My4zYzAtNS44LTMuMS0xMS4xLTguMi0xMy45bC00OC0yN2MtNC45LTIuNy0xMC44LTIuNy0xNS43IDBsLTQ4IDI3Yy01IDIuOC04LjIgOC4yLTguMiAxMy45bDAgNTMuM2MwIDUuOCAzLjEgMTEuMSA4LjIgMTMuOWw0OCAyN3pNMTkyIDY0YTMyIDMyIDAgMSAwIC02NCAwIDMyIDMyIDAgMSAwIDY0IDB6TTM4NCAyODhhMzIgMzIgMCAxIDAgMC02NCAzMiAzMiAwIDEgMCAwIDY0eiJdfSx1V2U9e3ByZWZpeDoiZmFzIixpY29uTmFtZToidXNlci1zZWNyZXQiLGljb246WzQ0OCw1MTIsWzEyODM3M10sImYyMWIiLCJNMTcxLTE2Yy0zNi40IDAtNTcuOCA1OC4zLTY4LjMgMTEyTDcyIDk2Yy0xMy4zIDAtMjQgMTAuNy0yNCAyNHMxMC43IDI0IDI0IDI0bDI0IDAgMCAzMmMwIDE3IDMuMyAzMy4yIDkuMyA0OGwtOS4zIDAgMCAwLTIwLjUgMGMtMTUuMiAwLTI3LjUgMTIuMy0yNy41IDI3LjUgMCAzIC41IDUuOSAxLjQgOC43bDI4LjkgODYuNkM0MC4yIDM3OS42IDE2IDQyOC4xIDE2IDQ4Mi4zIDE2IDQ5OC43IDI5LjMgNTEyIDQ1LjcgNTEybDM1Ni42IDBjMTYuNCAwIDI5LjctMTMuMyAyOS43LTI5LjcgMC01NC4yLTI0LjItMTAyLjctNjIuMy0xMzUuNGwyOC45LTg2LjZjLjktMi44IDEuNC01LjcgMS40LTguNyAwLTE1LjItMTIuMy0yNy41LTI3LjUtMjcuNWwtMjAuNSAwIDAgMC05LjMgMGM2LTE0LjggOS4zLTMxIDkuMy00OGwwLTMyIDI0IDBjMTMuMyAwIDI0LTEwLjcgMjQtMjRzLTEwLjctMjQtMjQtMjRsLTMwLjcgMGMtMTAuNC01My43LTMxLjktMTEyLTY4LjMtMTEyLTkuNiAwLTE5IDMuOS0yNy41IDguMi04LjIgNC4xLTE4LjQgNy44LTI1LjUgNy44cy0xNy4zLTMuNy0yNS41LTcuOEMxOTAtMTIuMSAxODAuNi0xNiAxNzEtMTZ6bTkzLjcgNDg0LjRsLTI0LjgtNzAuOSAyNy45LTMyLjVjMi43LTMuMiA0LjItNy4yIDQuMi0xMS40IDAtOS43LTcuOC0xNy41LTE3LjUtMTcuNWwtNjEgMGMtOS43IDAtMTcuNSA3LjgtMTcuNSAxNy41IDAgNC4yIDEuNSA4LjIgNC4yIDExLjRsMjcuOSAzMi41LTI0LjggNzAuOS01Ny0xODAuNCAzNS43IDBjMTguNCAxMC4yIDM5LjUgMTYgNjIgMTZzNDMuNi01LjggNjItMTZsMzUuNyAwLTU3IDE4MC40ek0yMjQgMjU2Yy0zNC43IDAtNjQuMi0yMi4xLTc1LjMtNTMgNS43IDMuMiAxMi4zIDUgMTkuMyA1bDEyLjQgMGMxNi41IDAgMzEuMS0xMC42IDM2LjMtMjYuMiAyLjMtNyAxMi4yLTcgMTQuNSAwIDUuMiAxNS42IDE5LjkgMjYuMiAzNi4zIDI2LjJsMTIuNCAwYzcgMCAxMy42LTEuOCAxOS4zLTUtMTEuMSAzMC45LTQwLjYgNTMtNzUuMyA1M3oiXX0sZldlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InBhZ2VyIixpY29uOls1MTIsNTEyLFsxMjgyMjNdLCJmODE1IiwiTTAgMTI4QzAgOTIuNyAyOC43IDY0IDY0IDY0bDM4NCAwYzM1LjMgMCA2NCAyOC43IDY0IDY0bDAgMjU2YzAgMzUuMy0yOC43IDY0LTY0IDY0TDY0IDQ0OGMtMzUuMyAwLTY0LTI4LjctNjQtNjRMMCAxMjh6bTY0IDMybDAgNjRjMCAxNy43IDE0LjMgMzIgMzIgMzJsMzIwIDBjMTcuNyAwIDMyLTE0LjMgMzItMzJsMC02NGMwLTE3LjctMTQuMy0zMi0zMi0zMkw5NiAxMjhjLTE3LjcgMC0zMiAxNC4zLTMyIDMyek04OCAzMjBjLTEzLjMgMC0yNCAxMC43LTI0IDI0czEwLjcgMjQgMjQgMjRsNDggMGMxMy4zIDAgMjQtMTAuNyAyNC0yNHMtMTAuNy0yNC0yNC0yNGwtNDggMHptMTI4IDBjLTEzLjMgMC0yNCAxMC43LTI0IDI0czEwLjcgMjQgMjQgMjRsNDggMGMxMy4zIDAgMjQtMTAuNyAyNC0yNHMtMTAuNy0yNC0yNC0yNGwtNDggMHoiXX0sbVdlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImJyaWVmY2FzZSIsaWNvbjpbNTEyLDUxMixbMTI4MTg4XSwiZjBiMSIsIk0yMDAgNDhsMTEyIDBjNC40IDAgOCAzLjYgOCA4bDAgNDAtMTI4IDAgMC00MGMwLTQuNCAzLjYtOCA4LTh6bS01NiA4bDAgNDAtODAgMEMyOC43IDk2IDAgMTI0LjcgMCAxNjBsMCA5NiA1MTIgMCAwLTk2YzAtMzUuMy0yOC43LTY0LTY0LTY0bC04MCAwIDAtNDBjMC0zMC45LTI1LjEtNTYtNTYtNTZMMjAwIDBjLTMwLjkgMC01NiAyNS4xLTU2IDU2ek01MTIgMzA0bC0xOTIgMCAwIDE2YzAgMTcuNy0xNC4zIDMyLTMyIDMybC02NCAwYy0xNy43IDAtMzItMTQuMy0zMi0zMmwwLTE2LTE5MiAwIDAgMTEyYzAgMzUuMyAyOC43IDY0IDY0IDY0bDM4NCAwYzM1LjMgMCA2NC0yOC43IDY0LTY0bDAtMTEyeiJdfSxnV2U9e3ByZWZpeDoiZmFzIixpY29uTmFtZToidHJvd2VsLWJyaWNrcyIsaWNvbjpbNTEyLDUxMixbXSwiZTU4YSIsIk0yMjQgMzJjMC0xMS41LTYuMi0yMi4yLTE2LjItMjcuOHMtMjIuMy01LjUtMzIuMiAuNGwtMTYwIDk2QzUuOSAxMDYuMyAwIDExNi44IDAgMTI4czUuOSAyMS43IDE1LjUgMjcuNGwxNjAgOTZjOS45IDUuOSAyMi4yIDYuMSAzMi4yIC40UzIyNCAyMzUuNSAyMjQgMjI0bDAtNjQgMjU2IDBjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJsLTI1NiAwIDAtNjR6bTk2IDE5MmMtMTcuNyAwLTMyIDE0LjMtMzIgMzJsMCA2NGMwIDE3LjcgMTQuMyAzMiAzMiAzMmwxNjAgMGMxNy43IDAgMzItMTQuMyAzMi0zMmwwLTY0YzAtMTcuNy0xNC4zLTMyLTMyLTMybC0xNjAgMHpNMCA0MTZsMCA2NGMwIDE3LjcgMTQuMyAzMiAzMiAzMmw5NiAwYzE3LjcgMCAzMi0xNC4zIDMyLTMybDAtNjRjMC0xNy43LTE0LjMtMzItMzItMzJsLTk2IDBjLTE3LjcgMC0zMiAxNC4zLTMyIDMyem0yMjQtMzJjLTE3LjcgMC0zMiAxNC4zLTMyIDMybDAgNjRjMCAxNy43IDE0LjMgMzIgMzIgMzJsMjU2IDBjMTcuNyAwIDMyLTE0LjMgMzItMzJsMC02NGMwLTE3LjctMTQuMy0zMi0zMi0zMmwtMjU2IDB6Il19LGJXZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJzb2NrcyIsaWNvbjpbNTEyLDUxMixbMTI5NTEwXSwiZjY5NiIsIk0yNTIuOCAwTDE3NiAwYy0yNi41IDAtNDggMjEuNS00OCA0OGwwIDE2IDExMiAwIDAtMTZjMC0xNy41IDQuNy0zMy45IDEyLjgtNDh6TTEyOCAxMTJsMCAxMjhjMCAyMC4xLTkuNSAzOS4xLTI1LjYgNTEuMmwtNjQgNDhjLTI0LjIgMTguMS0zOC40IDQ2LjYtMzguNCA3Ni44IDAgNTMgNDMgOTYgOTYgOTYgMTUuNCAwIDMwLjUtMy43IDQ0LTEwLjctMTcuNi0yMy45LTI4LTUzLjQtMjgtODUuMyAwLTQ1LjMgMjEuMy04OCA1Ny42LTExNS4ybDY0LTQ4YzQtMyA2LjQtNy44IDYuNC0xMi44bDAtMTI4LTExMiAwem0xNjAgMGwwIDEyOGMwIDIwLjEtOS41IDM5LjEtMjUuNiA1MS4ybC02NCA0OGMtMjQuMiAxOC4xLTM4LjQgNDYuNi0zOC40IDc2LjggMCA1MyA0MyA5NiA5NiA5NiAyMC44IDAgNDEtNi43IDU3LjYtMTkuMmwxMTUuMi04Ni40QzQ2MSAzODIuMiA0ODAgMzQ0LjMgNDgwIDMwNGwwLTE5Mi0xOTIgMHpNNDgwIDY0bDAtMTZjMC0yNi41LTIxLjUtNDgtNDgtNDhMMzM2IDBjLTI2LjUgMC00OCAyMS41LTQ4IDQ4bDAgMTYgMTkyIDB6Il19LHZXZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJ0IixpY29uOlszODQsNTEyLFsxMTZdLCI1NCIsIk0zMiAzMkMxNC4zIDMyIDAgNDYuMyAwIDY0UzE0LjMgOTYgMzIgOTZsMTI4IDAgMCAzNTJjMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMmwwLTM1MiAxMjggMGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMkwzMiAzMnoiXX0seVdlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6Im1pY3JvY2hpcCIsaWNvbjpbNTEyLDUxMixbXSwiZjJkYiIsIk0xNzYgMjRjMC0xMy4zLTEwLjctMjQtMjQtMjRzLTI0IDEwLjctMjQgMjRsMCA0MGMtMzUuMyAwLTY0IDI4LjctNjQgNjRsLTQwIDBjLTEzLjMgMC0yNCAxMC43LTI0IDI0czEwLjcgMjQgMjQgMjRsNDAgMCAwIDU2LTQwIDBjLTEzLjMgMC0yNCAxMC43LTI0IDI0czEwLjcgMjQgMjQgMjRsNDAgMCAwIDU2LTQwIDBjLTEzLjMgMC0yNCAxMC43LTI0IDI0czEwLjcgMjQgMjQgMjRsNDAgMGMwIDM1LjMgMjguNyA2NCA2NCA2NGwwIDQwYzAgMTMuMyAxMC43IDI0IDI0IDI0czI0LTEwLjcgMjQtMjRsMC00MCA1NiAwIDAgNDBjMCAxMy4zIDEwLjcgMjQgMjQgMjRzMjQtMTAuNyAyNC0yNGwwLTQwIDU2IDAgMCA0MGMwIDEzLjMgMTAuNyAyNCAyNCAyNHMyNC0xMC43IDI0LTI0bDAtNDBjMzUuMyAwIDY0LTI4LjcgNjQtNjRsNDAgMGMxMy4zIDAgMjQtMTAuNyAyNC0yNHMtMTAuNy0yNC0yNC0yNGwtNDAgMCAwLTU2IDQwIDBjMTMuMyAwIDI0LTEwLjcgMjQtMjRzLTEwLjctMjQtMjQtMjRsLTQwIDAgMC01NiA0MCAwYzEzLjMgMCAyNC0xMC43IDI0LTI0cy0xMC43LTI0LTI0LTI0bC00MCAwYzAtMzUuMy0yOC43LTY0LTY0LTY0bDAtNDBjMC0xMy4zLTEwLjctMjQtMjQtMjRzLTI0IDEwLjctMjQgMjRsMCA0MC01NiAwIDAtNDBjMC0xMy4zLTEwLjctMjQtMjQtMjRzLTI0IDEwLjctMjQgMjRsMCA0MC01NiAwIDAtNDB6TTE2MCAxMjhsMTkyIDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJsMCAxOTJjMCAxNy43LTE0LjMgMzItMzIgMzJsLTE5MiAwYy0xNy43IDAtMzItMTQuMy0zMi0zMmwwLTE5MmMwLTE3LjcgMTQuMy0zMiAzMi0zMnptMTYgNDhsMCAxNjAgMTYwIDAgMC0xNjAtMTYwIDB6Il19LF9IPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InRydWNrLW1lZGljYWwiLGljb246WzU3Niw1MTIsWzEyODY1NywiYW1idWxhbmNlIl0sImYwZjkiLCJNNjQgMzJDMjguNyAzMiAwIDYwLjcgMCA5NkwwIDM4NGMwIDM1LjMgMjguNyA2NCA2NCA2NGwzLjMgMGMxMC40IDM2LjkgNDQuNCA2NCA4NC43IDY0czc0LjItMjcuMSA4NC43LTY0bDEwMi42IDBjMTAuNCAzNi45IDQ0LjQgNjQgODQuNyA2NHM3NC4yLTI3LjEgODQuNy02NGwzLjMgMGMzNS4zIDAgNjQtMjguNyA2NC02NGwwLTE0Ni43YzAtMTctNi43LTMzLjMtMTguNy00NS4zTDUxMiAxNDYuN2MtMTItMTItMjguMy0xOC43LTQ1LjMtMTguN2wtNTAuNyAwIDAtMzJjMC0zNS4zLTI4LjctNjQtNjQtNjRMNjQgMzJ6TTUxMiAyMzcuM2wwIDUwLjctOTYgMCAwLTk2IDUwLjcgMCA0NS4zIDQ1LjN6TTE1MiAzODRhNDAgNDAgMCAxIDEgMCA4MCA0MCA0MCAwIDEgMSAwLTgwem0yMzIgNDBhNDAgNDAgMCAxIDEgODAgMCA0MCA0MCAwIDEgMSAtODAgMHpNMTc2IDEzNmMwLTguOCA3LjItMTYgMTYtMTZsMzIgMGM4LjggMCAxNiA3LjIgMTYgMTZsMCA0MCA0MCAwYzguOCAwIDE2IDcuMiAxNiAxNmwwIDMyYzAgOC44LTcuMiAxNi0xNiAxNmwtNDAgMCAwIDQwYzAgOC44LTcuMiAxNi0xNiAxNmwtMzIgMGMtOC44IDAtMTYtNy4yLTE2LTE2bDAtNDAtNDAgMGMtOC44IDAtMTYtNy4yLTE2LTE2bDAtMzJjMC04LjggNy4yLTE2IDE2LTE2bDQwIDAgMC00MHoiXX0seFdlPV9ILHdXZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJvbSIsaWNvbjpbNTc2LDUxMixbMTI4MzI5XSwiZjY3OSIsIk0zODguNyA0LjdjNi4yLTYuMiAxNi40LTYuMiAyMi42IDBsMTYgMTZjNi4yIDYuMiA2LjIgMTYuNCAwIDIyLjZsLTE2IDE2Yy02LjIgNi4yLTE2LjQgNi4yLTIyLjYgMGwtMTYtMTZjLTYuMi02LjItNi4yLTE2LjQgMC0yMi42bDE2LTE2ek0xNzYgMTYwYy0xMC44IDAtMjAuOCAzLjYtMjguOCA5LjYtMTQuMSAxMC42LTM0LjIgNy44LTQ0LjgtNi40cy03LjgtMzQuMiA2LjQtNDQuOGMxOC43LTE0LjEgNDItMjIuNCA2Ny4yLTIyLjQgNjEuOSAwIDExMiA1MC4xIDExMiAxMTIgMCAxNy4yLTMuOSAzMy41LTEwLjggNDhsNDkuNyAwYzEyLjcgMCAyNC45LTUgMzMuOS0xNC4xbDIwLjctMjAuN2MxOC43LTE4LjcgNDQuMS0yOS4zIDcwLjYtMjkuMyA1NS4yIDAgOTkuOSA0NC43IDk5LjkgOTkuOWwwIDk2LjFjMCA1NS4yLTQ0LjggMTAwLTEwMCAxMDBTMzUyIDQ0My4yIDM1MiAzODhsMC00YzAtMTcuNyAxNC4zLTMyIDMyLTMyczMyIDE0LjMgMzIgMzJsMCA0YzAgMTkuOSAxNi4xIDM2IDM2IDM2czM2LTE2LjEgMzYtMzZsMC05Ni4xYzAtMTkuOC0xNi4xLTM1LjktMzUuOS0zNS45LTkuNSAwLTE4LjYgMy44LTI1LjQgMTAuNWwtMjAuNyAyMC43Yy0yMSAyMS00OS40IDMyLjgtNzkuMSAzMi44bC0yNi44IDBjMTIuNiAxOS42IDE5LjkgNDIuOCAxOS45IDY4IDAgNzUuMi02NSAxMzItMTQwIDEzMlM0MCA0NjMuMiA0MCAzODhjMC0xNy43IDE0LjMtMzIgMzItMzJzMzIgMTQuMyAzMiAzMmMwIDM1LjMgMzEuNyA2OCA3NiA2OHM3Ni0zMi43IDc2LTY4LTMxLjctNjgtNzYtNjhsLTIwIDBjLTE3LjcgMC0zMi0xNC4zLTMyLTMyczE0LjMtMzIgMzItMzJsMTYgMGMyNi41IDAgNDgtMjEuNSA0OC00OHMtMjEuNS00OC00OC00OHpNMzM3LjEgNjAuMWMtMTEtMTMuOC0zMS4xLTE2LjItNDUtNS4ycy0xNi4yIDMxLjEtNS4yIDQ1QzMxMi42IDEzMi4yIDM1NC40IDE1MiA0MDAgMTUyczg3LjQtMTkuOCAxMTMuMS01Mi4xYzExLTEzLjggOC43LTM0LTUuMi00NXMtMzQtOC43LTQ1IDUuMkM0NTAuMyA3NiA0MjcuNSA4OCA0MDAgODhzLTUwLjMtMTItNjIuOS0yNy45eiJdfSxNV2U9e3ByZWZpeDoiZmFzIixpY29uTmFtZToibW9zcXVpdG8tbmV0IixpY29uOls2NDAsNTEyLFtdLCJlNTJjIiwiTTU3NiAzNTJjMTMuMyAwIDI0IDEwLjcgMjQgMjRsMCAxNiAxNiAwYzEzLjMgMCAyNCAxMC43IDI0IDI0cy0xMC43IDI0LTI0IDI0bC0xNiAwIDAgNDggMTYgMGMxMy4zIDAgMjQgMTAuNyAyNCAyNHMtMTAuNyAyNC0yNCAyNGwtMTYgMCAwIDE2LS4xIDIuNUM1OTguNiA1NjYuNiA1ODguNCA1NzYgNTc2IDU3NnMtMjIuNi05LjQtMjMuOS0yMS41bC0uMS0yLjUgMC0xNi00OCAwIDAgMTYtLjEgMi41QzUwMi42IDU2Ni42IDQ5Mi40IDU3NiA0ODAgNTc2cy0yMi42LTkuNC0yMy45LTIxLjVsLS4xLTIuNSAwLTE2LTE2IDBjLTEzLjMgMC0yNC0xMC43LTI0LTI0czEwLjctMjQgMjQtMjRsMTYgMCAwLTQ4LTE2IDBjLTEzLjMgMC0yNC0xMC43LTI0LTI0czEwLjctMjQgMjQtMjRsMTYgMCAwLTE2YzAtMTMuMyAxMC43LTI0IDI0LTI0czI0IDEwLjcgMjQgMjRsMCAxNiA0OCAwIDAtMTZjMC0xMy4zIDEwLjctMjQgMjQtMjR6TTQyOS45IDE2LjNjNy43LTkuNCAyMS4zLTExLjUgMzEuNC00LjMgMTAuMSA3LjEgMTMuMSAyMC45IDcuNCAzMS43bC0xLjMgMi4xLTI1LjkgMzguOSAxMy4zIDUzLjRjMiA4LS4xIDE2LjMtNS4zIDIyLjNsLTIuNCAyLjQtNDQuNyAzOC4zIDEzMC41IDE0LjVjNDIuOCA0LjggNzUuMSA0MC45IDc1LjEgODMuOSAwIDMuOS0uNCA3LjctLjkgMTEuNS03LjMtMy41LTE1LjMtNS44LTIzLjgtNi43TDU3NiAzMDRjLTE4LjUgMC0zNS4zIDctNDggMTguNC0xMS05LjktMjUuMS0xNi41LTQwLjYtMTguMUw0ODAgMzA0Yy0zMC4zIDAtNTYuMSAxOC43LTY2LjggNDUuMi0xMi41IDUtMjMuMiAxMy40LTMxLjEgMjRsLTMwLjItNDAuMSAwIDc0LjdjMCAxNy43LTE0LjMgMzItMzIgMzItMTYuNiAwLTMwLjItMTIuNi0zMS44LTI4LjdsLS4yLTMuMyAwLTc0LjYtMzIuMyA0MyAwIDM5LjhjMCAzLjUtLjcgNi45LTIuMSAxMC4xbC0xLjYgMy4xLTQwIDY0LTEuNCAyYy03LjUgOS42LTIxIDEyLjEtMzEuMyA1LjMtMTAuMy02LjgtMTMuNy0yMC41LTguMy0zMS41bDEuMi0yLjIgMzYuMi01OCAwLTQxIC4zLTRjLjYtMy45IDIuMi03LjcgNC42LTEwLjlsMzkuMy01Mi4yLTY2LjIgNTkuNWMtMTcgMTUuMy0zOSAyMy43LTYxLjkgMjMuOGwtOC4xIDBjLTQ2LjYgMC04NC40LTM3LjgtODQuNC04NC40IDAtNDMgMzIuNC03OS4yIDc1LjEtODMuOWwxMzAuNS0xNC41LTQ0LjctMzguMy0yLjQtMi40Yy01LjItNi03LjMtMTQuNC01LjMtMjIuM2wxMy4zLTUzLjQtMjUuOS0zOC45LTEuMi0yLjFjLTUuNy0xMC44LTIuNy0yNC42IDcuNC0zMS43IDEwLjEtNy4xIDIzLjctNS4xIDMxLjQgNC4zbDEuNSAyIDMyIDQ4IDEuNCAyLjJjMi44IDUuMyAzLjUgMTEuNiAyLjEgMTcuNmwtMTIuMyA0OS4yIDUzLjMgNDUuNyAwLTI4LjggLjItMy4yYzEuMS0xMC40IDcuMi0xOS40IDE1LjgtMjQuNGwwLTYwLjUgLjMtMy4yYzEuNS03LjMgOC0xMi43IDE1LjctMTIuOCA3LjcgMCAxNC4yIDUuNSAxNS43IDEyLjhsLjMgMy4yIDAgNjAuNWM4LjcgNSAxNC44IDE0IDE1LjggMjQuNGwuMiAzLjIgMCAyOC45IDUzLjQtNDUuNy0xMi4zLTQ5LjJjLTEuNS01LjktLjctMTIuMiAyLjEtMTcuNmwxLjQtMi4yIDMyLTQ4IDEuNS0yek01MDQgNDg4bDQ4IDAgMC00OC00OCAwIDAgNDh6Il19LHpXZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJwcmVzY3JpcHRpb24tYm90dGxlIixpY29uOlszODQsNTEyLFtdLCJmNDg1IiwiTTAgMzJDMCAxNC4zIDE0LjMgMCAzMiAwTDM1MiAwYzE3LjcgMCAzMiAxNC4zIDMyIDMybDAgMzJjMCAxNy43LTE0LjMgMzItMzIgMzJMMzIgOTZDMTQuMyA5NiAwIDgxLjcgMCA2NEwwIDMyek0zMiAxNDRsMzIwIDAgMCAzMDRjMCAzNS4zLTI4LjcgNjQtNjQgNjRMOTYgNTEyYy0zNS4zIDAtNjQtMjguNy02NC02NGw3MiAwYzEzLjMgMCAyNC0xMC43IDI0LTI0cy0xMC43LTI0LTI0LTI0bC03MiAwIDAtNDggNzIgMGMxMy4zIDAgMjQtMTAuNyAyNC0yNHMtMTAuNy0yNC0yNC0yNGwtNzIgMCAwLTQ4IDcyIDBjMTMuMyAwIDI0LTEwLjcgMjQtMjRzLTEwLjctMjQtMjQtMjRsLTcyIDAgMC02NHoiXX0sVEg9e3ByZWZpeDoiZmFzIixpY29uTmFtZToidXNlcnMtZ2VhciIsaWNvbjpbNjQwLDUxMixbInVzZXJzLWNvZyJdLCJmNTA5IiwiTTMyMCAyMjRhMTA0IDEwNCAwIDEgMCAwLTIwOCAxMDQgMTA0IDAgMSAwIDAgMjA4ek05NiAyMzJhNzIgNzIgMCAxIDAgMC0xNDQgNzIgNzIgMCAxIDAgMCAxNDR6TTAgNDE2bDAgMzJjMCAxNy43IDE0LjMgMzIgMzIgMzJsODYuNyAwYy00LjMtOS44LTYuNy0yMC42LTYuNy0zMmwwLTE2YzAtNTMuMiAyMC0xMDEuOCA1Mi45LTEzOC42LTExLjctMy41LTI0LjEtNS40LTM2LjktNS40LTcwLjcgMC0xMjggNTcuMy0xMjggMTI4ek02MTYgMTYwYTcyIDcyIDAgMSAwIC0xNDQgMCA3MiA3MiAwIDEgMCAxNDQgMHpNMTYwIDQzMmwwIDE2YzAgMTcuNyAxNC4zIDMyIDMyIDMybDE1Ni44IDBjLTcuMS0yMS42LTYuMy00NC40IDEwLjctNjQtMTQtMTYuMi0yMC41LTM5LjctMTEuNC02My4zIDYuNi0xNy4xIDE1LjktMzMuMSAyNy40LTQ3LjMgNS40LTYuNiAxMS42LTExLjcgMTguMy0xNS40LTIyLjEtMTEuNS00Ny4yLTE4LTczLjgtMTgtODguNCAwLTE2MCA3MS42LTE2MCAxNjB6bTQ2NC42LTQ0LjFjNi4zLTMuNiA5LjUtMTEuMSA2LjgtMTgtNC44LTEyLjQtMTEuNS0yNC4xLTE5LjktMzQuNC00LjYtNS43LTEyLjctNi43LTE5LTMtMjEuOCAxMi42LTQ4LjYtMi44LTQ4LjYtMjguMSAwLTcuMy00LjktMTMuOC0xMi4xLTE0LjktMTIuOS0yLTI2LjgtMi0zOS43IDAtNy4yIDEuMS0xMi4xIDcuNi0xMi4xIDE0LjkgMCAyNS4yLTI2LjggNDAuNy00OC42IDI4LjEtNi4zLTMuNi0xNC40LTIuNi0xOSAzLTguNCAxMC4zLTE1LjEgMjItMTkuOSAzNC40LTIuNiA2LjggLjUgMTQuMyA2LjggMTcuOSAyMS45IDEyLjYgMjEuOSA0My41IDAgNTYuMi02LjMgMy42LTkuNSAxMS4xLTYuOCAxNy45IDQuOCAxMi40IDExLjUgMjQuMSAxOS45IDM0LjQgNC42IDUuNyAxMi43IDYuNyAxOSAzIDIxLjgtMTIuNiA0OC42IDIuOSA0OC42IDI4LjEgMCA3LjMgNC45IDEzLjggMTIuMSAxNC45IDEyLjkgMiAyNi44IDIgMzkuNyAwIDcuMi0xLjEgMTIuMS03LjYgMTIuMS0xNC45IDAtMjUuMiAyNi44LTQwLjcgNDguNi0yOC4xIDYuMyAzLjYgMTQuNCAyLjYgMTktMyA4LjQtMTAuMyAxNS4xLTIyIDE5LjktMzQuNCAyLjYtNi44LS41LTE0LjMtNi44LTE3LjktMjEuOS0xMi42LTIxLjktNDMuNSAwLTU2LjJ6TTQ3MiA0MTZhNDAgNDAgMCAxIDEgODAgMCA0MCA0MCAwIDEgMSAtODAgMHoiXX0sa1dlPVRILFNXZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJyb2FkLWNpcmNsZS1leGNsYW1hdGlvbiIsaWNvbjpbNjQwLDUxMixbXSwiZTU2NSIsIk0yODggMzJsLTc2LjMgMGMtMjkuNCAwLTU1LjEgMjAuMS02Mi4xIDQ4LjZMNjUuNCA0MjAuNUM1Ny45IDQ1MC43IDgwLjggNDgwIDExMiA0ODBsMjA5LjQgMGMtMTEuMi0yNC40LTE3LjQtNTEuNC0xNy40LTgwIDAtMjguNiA2LjItNTUuNyAxNy40LTgwLS41IDAtMSAwLTEuNSAwLTE3LjcgMC0zMi0xNC4zLTMyLTMybDAtNjRjMC0xNy43IDE0LjMtMzIgMzItMzJzMzIgMTQuMyAzMiAzMmwwIDQ5YzM1LjItMzkuOSA4Ni43LTY1IDE0NC02NSA5IDAgMTcuOCAuNiAyNi41IDEuOGwtMzItMTI5LjJDNDgzLjQgNTIuMSA0NTcuOCAzMiA0MjguMyAzMmwtNzYuNCAwIDAgNjRjMCAxNy43LTE0LjMgMzItMzIgMzJzLTMyLTE0LjMtMzItMzJsMC02NHpNNDk2IDU0NGExNDQgMTQ0IDAgMSAwIDAtMjg4IDE0NCAxNDQgMCAxIDAgMCAyODh6bTAtMTAwYTIwIDIwIDAgMSAxIDAgNDAgMjAgMjAgMCAxIDEgMC00MHptMC0xNDBjOC44IDAgMTYgNy4yIDE2IDE2bDAgODBjMCA4LjgtNy4yIDE2LTE2IDE2cy0xNi03LjItMTYtMTZsMC04MGMwLTguOCA3LjItMTYgMTYtMTZ6Il19LENXZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJwYXVzZSIsaWNvbjpbMzg0LDUxMixbOTIwOF0sImYwNGMiLCJNNDggMzJDMjEuNSAzMiAwIDUzLjUgMCA4MEwwIDQzMmMwIDI2LjUgMjEuNSA0OCA0OCA0OGw2NCAwYzI2LjUgMCA0OC0yMS41IDQ4LTQ4bDAtMzUyYzAtMjYuNS0yMS41LTQ4LTQ4LTQ4TDQ4IDMyem0yMjQgMGMtMjYuNSAwLTQ4IDIxLjUtNDggNDhsMCAzNTJjMCAyNi41IDIxLjUgNDggNDggNDhsNjQgMGMyNi41IDAgNDgtMjEuNSA0OC00OGwwLTM1MmMwLTI2LjUtMjEuNS00OC00OC00OGwtNjQgMHoiXX0sSzU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToic3RhZmYtc25ha2UiLGljb246WzQ0OCw1MTIsWyJyb2QtYXNjbGVwaXVzIiwicm9kLXNuYWtlIiwic3RhZmYtYWVzY3VsYXBpdXMiXSwiZTU3OSIsIk0xOTIgMzJsMC0zMmMwLTE3LjcgMTQuMy0zMiAzMi0zMnMzMiAxNC4zIDMyIDMybDAgMzIgNjQgMGM1MyAwIDk2IDQzIDk2IDk2cy00MyA5Ni05NiA5NmwtMTYgMCAwLTY0IDE2IDBjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJsLTY0IDAgMCAxOTIgMzIgMGM1MyAwIDk2IDQzIDk2IDk2IDAgNDcuNi0zNC42IDg3LjEtODAgOTQuN2wwLTY3YzkuNi01LjUgMTYtMTUuOSAxNi0yNy43IDAtMTcuNy0xNC4zLTMyLTMyLTMybC0zMiAwIDAgMTYwYzAgMTcuNy0xNC4zIDMyLTMyIDMycy0zMi0xNC4zLTMyLTMybDAtMzItMzIgMGMtMTcuNyAwLTMyLTE0LjMtMzItMzJzMTQuMy0zMiAzMi0zMmwzMiAwIDAtNjQtMzIgMGMtNTMgMC05Ni00My05Ni05NiAwLTQ3LjYgMzQuNi04Ny4xIDgwLTk0LjdsMCA2N2MtOS42IDUuNS0xNiAxNS45LTE2IDI3LjcgMCAxNy43IDE0LjMgMzIgMzIgMzJsMzIgMCAwLTE5Mi03Mi42IDBjLTExLjEgMTkuMS0zMS43IDMyLTU1LjQgMzJsLTE2IDBDMjEuNSAxMjggMCAxMDYuNSAwIDgwUzIxLjUgMzIgNDggMzJsMTQ0IDB6Il19LF9XZT1LNSxUV2U9SzUsTFdlPUs1LCRXZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJwaWdneS1iYW5rIixpY29uOls1NzYsNTEyLFtdLCJmNGQzIiwiTTI4OC0zMmE5NiA5NiAwIDEgMSAwIDE5MiA5NiA5NiAwIDEgMSAwLTE5MnpNNDggMzA0YzAtNzAuMSA0Ny0xMzEuNCAxMTcuMS0xNjQuOSAyNS4zIDQxLjMgNzAuOSA2OC45IDEyMi45IDY4LjkgNTUuNyAwIDEwNC4xLTMxLjcgMTI4LTc4IDE1LjgtMTEuMyAzNS4xLTE4IDU2LTE4bDE5LjUgMGMxMC40IDAgMTggOS44IDE1LjUgMTkuOWwtMTcuMSA2OC4zYzkuOSAxMi40IDE4LjIgMjUuNyAyNC40IDM5LjhsMjEuNyAwYzEzLjMgMCAyNCAxMC43IDI0IDI0bDAgMTEyYzAgMTMuMy0xMC43IDI0LTI0IDI0bC00MCAwYy0xNi41IDIyLTM4LjUgMzkuNi02NCA1MC43bDAgMjkuM2MwIDE3LjctMTQuMyAzMi0zMiAzMmwtMzMgMGMtMTQuMyAwLTI2LjgtOS41LTMwLjgtMjMuMmwtNy4xLTI0LjgtODIuMyAwLTcuMSAyNC44QzIzNS44IDUwMi41IDIyMy4zIDUxMiAyMDkgNTEybC0zMyAwYy0xNy43IDAtMzItMTQuMy0zMi0zMmwwLTI5LjNDODcuNSA0MjYgNDggMzY5LjYgNDggMzA0em0zNzYgMTZhMjQgMjQgMCAxIDAgMC00OCAyNCAyNCAwIDEgMCAwIDQ4eiJdfSxBV2U9e3ByZWZpeDoiZmFzIixpY29uTmFtZToibW9udW1lbnQiLGljb246WzM4NCw1MTIsW10sImY1YTYiLCJNMjA5LTMzYy05LjQtOS40LTI0LjYtOS40LTMzLjkgMEw5NSA0N2MtNC4xIDQuMS02LjUgOS40LTcgMTUuMUw1OC40IDQ0OCA0OCA0NDhjLTE3LjcgMC0zMiAxNC4zLTMyIDMyczE0LjMgMzIgMzIgMzJsMjg4IDBjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJsLTEwLjQgMC0yOS43LTM4NS44Yy0uNC01LjctMi45LTExLjEtNy0xNS4xTDIwOS0zM3pNMTI4IDI5NmMwLTEzLjMgMTAuNy0yNCAyNC0yNGw4MCAwYzEzLjMgMCAyNCAxMC43IDI0IDI0cy0xMC43IDI0LTI0IDI0bC04MCAwYy0xMy4zIDAtMjQtMTAuNy0yNC0yNHoiXX0sTEg9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiYW5nbGVzLXJpZ2h0IixpY29uOls0NDgsNTEyLFsxODcsImFuZ2xlLWRvdWJsZS1yaWdodCJdLCJmMTAxIiwiTTQzOS4xIDI3OC42YzEyLjUtMTIuNSAxMi41LTMyLjggMC00NS4zbC0xNjAtMTYwYy0xMi41LTEyLjUtMzIuOC0xMi41LTQ1LjMgMHMtMTIuNSAzMi44IDAgNDUuM0wzNzEuMiAyNTYgMjMzLjkgMzkzLjRjLTEyLjUgMTIuNS0xMi41IDMyLjggMCA0NS4zczMyLjggMTIuNSA0NS4zIDBsMTYwLTE2MHptLTM1MiAxNjBsMTYwLTE2MGMxMi41LTEyLjUgMTIuNS0zMi44IDAtNDUuM2wtMTYwLTE2MGMtMTIuNS0xMi41LTMyLjgtMTIuNS00NS4zIDBzLTEyLjUgMzIuOCAwIDQ1LjNMMTc5LjIgMjU2IDQxLjkgMzkzLjRjLTEyLjUgMTIuNS0xMi41IDMyLjggMCA0NS4zczMyLjggMTIuNSA0NS4zIDB6Il19LERXZT1MSCxwOD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJkZXNrdG9wIixpY29uOls1MTIsNTEyLFsxMjg0MjEsNjE3MDQsImRlc2t0b3AtYWx0Il0sImYzOTAiLCJNNjQgMzJDMjguNyAzMiAwIDYwLjcgMCA5NkwwIDM1MmMwIDM1LjMgMjguNyA2NCA2NCA2NGwxNDQgMC0xNiA0OC03MiAwYy0xMy4zIDAtMjQgMTAuNy0yNCAyNHMxMC43IDI0IDI0IDI0bDI3MiAwYzEzLjMgMCAyNC0xMC43IDI0LTI0cy0xMC43LTI0LTI0LTI0bC03MiAwLTE2LTQ4IDE0NCAwYzM1LjMgMCA2NC0yOC43IDY0LTY0bDAtMjU2YzAtMzUuMy0yOC43LTY0LTY0LTY0TDY0IDMyek05NiA5NmwzMjAgMGMxNy43IDAgMzIgMTQuMyAzMiAzMmwwIDE2MGMwIDE3LjctMTQuMyAzMi0zMiAzMkw5NiAzMjBjLTE3LjcgMC0zMi0xNC4zLTMyLTMybDAtMTYwYzAtMTcuNyAxNC4zLTMyIDMyLTMyeiJdfSxFV2U9cDgsUFdlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InBsYW5lLWNpcmNsZS14bWFyayIsaWNvbjpbNjQwLDUxMixbXSwiZTU1NyIsIk0yMzIgMjRjMC0zMC45IDI1LjEtNTYgNTYtNTZzNTYgMjUuMSA1NiA1NmwwIDEyNy4zIDc4IDcxLjVjLTY5LjMgMjktMTE4IDk3LjQtMTE4IDE3Ny4yIDAgNDkuMyAxOC42IDk0LjMgNDkuMSAxMjguM0wyODggNTEyIDE3OS45IDUzOWMtMTAuMSAyLjUtMTkuOS01LjEtMTkuOS0xNS41bDAtMTkuOGMwLTQuOSAyLjItOS41IDYtMTIuNWw2Ni01Mi44IDAtOTkuNy0xNjIuOSA1NC4zQzU4LjcgMzk2LjQgNDggMzg4LjcgNDggMzc3LjhsMC00My43YzAtOSAzLjgtMTcuNSAxMC40LTIzLjZMMjMyIDE1MS4zIDIzMiAyNHpNNDk2IDI1NmExNDQgMTQ0IDAgMSAxIDAgMjg4IDE0NCAxNDQgMCAxIDEgMC0yODh6bTU5LjMgMTA3LjNjNi4yLTYuMiA2LjItMTYuNCAwLTIyLjZzLTE2LjQtNi4yLTIyLjYgMGwtMzYuNyAzNi43LTM2LjctMzYuN2MtNi4yLTYuMi0xNi40LTYuMi0yMi42IDBzLTYuMiAxNi40IDAgMjIuNmwzNi43IDM2LjctMzYuNyAzNi43Yy02LjIgNi4yLTYuMiAxNi40IDAgMjIuNnMxNi40IDYuMiAyMi42IDBsMzYuNy0zNi43IDM2LjcgMzYuN2M2LjIgNi4yIDE2LjQgNi4yIDIyLjYgMHM2LjItMTYuNCAwLTIyLjZsLTM2LjctMzYuNyAzNi43LTM2Ljd6Il19LElXZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJyZXR3ZWV0IixpY29uOls1NzYsNTEyLFtdLCJmMDc5IiwiTTExOC42IDQxLjRjLTEyLjUtMTIuNS0zMi44LTEyLjUtNDUuMyAwbC02NCA2NGMtOS4yIDkuMi0xMS45IDIyLjktNi45IDM0LjlTMTkuMSAxNjAgMzIgMTYwbDMyIDAgMCAyMjRjMCA1MyA0MyA5NiA5NiA5NmwxMjggMGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMmwtMTI4IDBjLTE3LjcgMC0zMi0xNC4zLTMyLTMybDAtMjI0IDMyIDBjMTIuOSAwIDI0LjYtNy44IDI5LjYtMTkuOHMyLjItMjUuNy02LjktMzQuOWwtNjQtNjR6TTQ1Ny40IDQ3MC42YzEyLjUgMTIuNSAzMi44IDEyLjUgNDUuMyAwbDY0LTY0YzkuMi05LjIgMTEuOS0yMi45IDYuOS0zNC45UzU1Ni45IDM1MiA1NDQgMzUybC0zMiAwIDAtMjI0YzAtNTMtNDMtOTYtOTYtOTZMMjg4IDMyYy0xNy43IDAtMzIgMTQuMy0zMiAzMnMxNC4zIDMyIDMyIDMybDEyOCAwYzE3LjcgMCAzMiAxNC4zIDMyIDMybDAgMjI0LTMyIDBjLTEyLjkgMC0yNC42IDcuOC0yOS42IDE5LjhzLTIuMiAyNS43IDYuOSAzNC45bDY0IDY0eiJdfSwkSD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJ1c2VyLWdlYXIiLGljb246WzY0MCw1MTIsWyJ1c2VyLWNvZyJdLCJmNGZlIiwiTTI1Ni41IDhhMTIwIDEyMCAwIDEgMSAwIDI0MCAxMjAgMTIwIDAgMSAxIDAtMjQwek0yMjYuNyAzMDRsNTkuNCAwIDEuNSAwYy0xMi45IDI2LjgtNy44IDU4LjIgMTEuNSA3OS41LTIwLjIgMjIuMy0yNC44IDU1LjgtOS40IDgzLjRsMjIuNSA0MC40Yy45IDEuNiAxLjkgMy4yIDIuOSA0LjdsLTIzNyAwYy0xNi40IDAtMjkuNy0xMy4zLTI5LjctMjkuNyAwLTk4LjUgNzkuOC0xNzguMyAxNzguMy0xNzguM3ptMjA1LjktNTYuNGMwLTEzLjMgMTAuNy0yNCAyNC0yNGw0OCAwYzEzLjMgMCAyNCAxMC43IDI0IDI0bDAgNi4xYzAgMTguOSAyNC4xIDMyLjggNDAuNSAyMy40bDUtMi45YzExLjYtNi43IDI2LjUtMi42IDMzIDkuMWwyMi40IDQwLjJjNi4yIDExLjIgMi42IDI1LjItOC4yIDMybC00LjcgMi45Yy0xNi4yIDEwLjEtMTYuMiAzOS45IDAgNTAuMWw0LjYgMi45YzEwLjggNi44IDE0LjUgMjAuOCA4LjMgMzJMNjA3IDQ4My44Yy02LjUgMTEuNy0yMS40IDE1LjktMzMgOS4xbC00LjktMi45Yy0xNi40LTkuNS00MC41IDQuNS00MC41IDIzLjRsMCA2LjFjMCAxMy4zLTEwLjcgMjQtMjQgMjRsLTQ4IDBjLTEzLjMgMC0yNC0xMC43LTI0LTI0bDAtNS45YzAtMTktMjQuMi0zMy00MC43LTIzLjVsLTQuOCAyLjhjLTExLjYgNi43LTI2LjQgMi42LTMzLTkuMWwtMjIuNi00MC40Yy02LjItMTEuMi0yLjYtMjUuMyA4LjMtMzIuMWw0LjQtMi43YzE2LjMtMTAuMSAxNi4zLTQwLjEgMC01MC4ybC00LjUtMi44Yy0xMC45LTYuOC0xNC41LTIwLjktOC4zLTMyLjFsMjIuNS00MC4zYzYuNS0xMS43IDIxLjQtMTUuOCAzMi45LTkuMWw0LjggMi44YzE2LjUgOS41IDQwLjctNC41IDQwLjctMjMuNWwwLTUuOXptOTkuOSAxMzYuMmE1MiA1MiAwIDEgMCAtMTA0IDAgNTIgNTIgMCAxIDAgMTA0IDB6Il19LE5XZT0kSCxGV2U9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiYm9yZGVyLWFsbCIsaWNvbjpbNDQ4LDUxMixbXSwiZjg0YyIsIk0zODQgOTZsMCAxMjgtMTI4IDAgMC0xMjggMTI4IDB6bTAgMTkybDAgMTI4LTEyOCAwIDAtMTI4IDEyOCAwek0xOTIgMjI0bC0xMjggMCAwLTEyOCAxMjggMCAwIDEyOHpNNjQgMjg4bDEyOCAwIDAgMTI4LTEyOCAwIDAtMTI4ek02NCAzMkMyOC43IDMyIDAgNjAuNyAwIDk2TDAgNDE2YzAgMzUuMyAyOC43IDY0IDY0IDY0bDMyMCAwYzM1LjMgMCA2NC0yOC43IDY0LTY0bDAtMzIwYzAtMzUuMy0yOC43LTY0LTY0LTY0TDY0IDMyeiJdfSxPV2U9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiY29pbnMiLGljb246WzUxMiw1MTIsW10sImY1MWUiLCJNMTI4IDk2bDAtMTZjMC00NC4yIDg2LTgwIDE5Mi04MFM1MTIgMzUuOCA1MTIgODBsMCAxNmMwIDMwLjYtNDEuMyA1Ny4yLTEwMiA3MC43LTIuNC0yLjgtNC45LTUuNS03LjQtOC0xNS41LTE1LjMtMzUuNS0yNi45LTU2LjQtMzUuNS00MS45LTE3LjUtOTYuNS0yNy4xLTE1NC4yLTI3LjEtMjEuOSAwLTQzLjMgMS40LTYzLjggNC4xLS4yLTEuMy0uMi0yLjctLjItNC4xek00MzIgMzUzbDAtNDYuMmMxNS4xLTMuOSAyOS4zLTguNSA0Mi4yLTEzLjkgMTMuMi01LjUgMjYuMS0xMi4yIDM3LjgtMjAuM2wwIDE1LjRjMCAyNi44LTMxLjUgNTAuNS04MCA2NXptMC05NmwwLTMzYzAtNC41LS40LTguOC0xLTEzIDE1LjUtMy45IDMwLTguNiA0My4yLTE0LjJzMjYuMS0xMi4yIDM3LjgtMjAuM2wwIDE1LjRjMCAyNi44LTMxLjUgNTAuNS04MCA2NXpNMCAyNDBsMC0xNmMwLTQ0LjIgODYtODAgMTkyLTgwczE5MiAzNS44IDE5MiA4MGwwIDE2YzAgNDQuMi04NiA4MC0xOTIgODBTMCAyODQuMiAwIDI0MHptMzg0IDk2YzAgNDQuMi04NiA4MC0xOTIgODBTMCAzODAuMiAwIDMzNmwwLTE1LjRjMTEuNiA4LjEgMjQuNSAxNC43IDM3LjggMjAuMyA0MS45IDE3LjUgOTYuNSAyNy4xIDE1NC4yIDI3LjFzMTEyLjMtOS43IDE1NC4yLTI3LjFjMTMuMi01LjUgMjYuMS0xMi4yIDM3LjgtMjAuM2wwIDE1LjR6bTAgODAuNmwwIDE1LjRjMCA0NC4yLTg2IDgwLTE5MiA4MFMwIDQ3Ni4yIDAgNDMybDAtMTUuNGMxMS42IDguMSAyNC41IDE0LjcgMzcuOCAyMC4zIDQxLjkgMTcuNSA5Ni41IDI3LjEgMTU0LjIgMjcuMXMxMTIuMy05LjcgMTU0LjItMjcuMWMxMy4yLTUuNSAyNi4xLTEyLjIgMzcuOC0yMC4zeiJdfSxSV2U9e3ByZWZpeDoiZmFzIixpY29uTmFtZToibWFycy1zdHJva2UiLGljb246WzU3Niw1MTIsWzk4OTRdLCJmMjI5IiwiTTQxNi0zMmMtMTcuNyAwLTMyIDE0LjMtMzIgMzJzMTQuMyAzMiAzMiAzMmw1MC43IDAtNTguNyA1OC43LTE3LjQtMTcuNGMtMTIuNS0xMi41LTMyLjgtMTIuNS00NS4zIDBzLTEyLjUgMzIuOCAwIDQ1LjNsMTcuNCAxNy40LTIzIDIzYy0yOC40LTE5LjUtNjIuNy0zMS05OS44LTMxLTk3LjIgMC0xNzYgNzguOC0xNzYgMTc2czc4LjggMTc2IDE3NiAxNzYgMTc2LTc4LjggMTc2LTE3NmMwLTM3LTExLjQtNzEuNC0zMS05OS44bDIzLTIzIDE3LjQgMTcuNGMxMi41IDEyLjUgMzIuOCAxMi41IDQ1LjMgMHMxMi41LTMyLjggMC00NS4zTDQ1My4zIDEzNiA1MTIgNzcuMyA1MTIgMTI4YzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJMNTc2IDBjMC0xNy43LTE0LjMtMzItMzItMzJMNDE2LTMyek0xMjggMzA0YTExMiAxMTIgMCAxIDEgMjI0IDAgMTEyIDExMiAwIDEgMSAtMjI0IDB6Il19LEFIPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImhhbmRzaGFrZS1hbmdsZSIsaWNvbjpbNTc2LDUxMixbImhhbmRzLWhlbHBpbmciXSwiZjRjNCIsIk0yNjguOSA1My4yTDE1Mi4zIDE4Mi44Yy00LjYgNS4xLTQuNCAxMyAuNSAxNy45IDMwLjUgMzAuNSA4MCAzMC41IDExMC41IDBsMzEuOC0zMS44YzQuMi00LjIgOS41LTYuNSAxNC45LTYuOSA2LjgtLjYgMTMuOCAxLjcgMTkgNi45TDUwNS42IDM0NCA1NzYgMjg4IDU3NiAwIDQ2NCA2NCA0NDAuMiA0OC4xQzQyNC40IDM3LjYgNDA1LjkgMzIgMzg2LjkgMzJsLTcwLjQgMGMtMS4xIDAtMi4zIDAtMy40IC4xLTE2LjkgLjktMzIuOCA4LjUtNDQuMiAyMS4xek0xMTYuNiAxNTAuN0wyMjMuNCAzMiAxODMuOCAzMmMtMjUuNSAwLTQ5LjkgMTAuMS02Ny45IDI4LjFMMCAxOTIgMCA1NDQgMTQ0IDQwOCAxNTYuNCA0MTguM2MyMyAxOS4yIDUyIDI5LjcgODEuOSAyOS43bDE1LjcgMC03LTdjLTkuNC05LjQtOS40LTI0LjYgMC0zMy45czI0LjYtOS40IDMzLjkgMGw0MSA0MSA5IDBjMTkuMSAwIDM3LjgtNC4zIDU0LjgtMTIuM0wzNTkgNDA5Yy05LjQtOS40LTkuNC0yNC42IDAtMzMuOXMyNC42LTkuNCAzMy45IDBsMzIgMzIgMTcuNS0xNy41YzguOS04LjkgMTEuNS0yMS44IDcuNi0zMy4xbC0xMzcuOS0xMzYuOC0xNC45IDE0LjljLTQ5LjMgNDkuMy0xMjkuMSA0OS4zLTE3OC40IDAtMjMtMjMtMjMuOS01OS45LTIuMi04NHoiXX0sQldlPUFILEhXZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJhcnJvdy1kb3duIixpY29uOlszODQsNTEyLFs4NTk1XSwiZjA2MyIsIk0xNjkuNCA1MDIuNmMxMi41IDEyLjUgMzIuOCAxMi41IDQ1LjMgMGwxNjAtMTYwYzEyLjUtMTIuNSAxMi41LTMyLjggMC00NS4zcy0zMi44LTEyLjUtNDUuMyAwTDIyNCA0MDIuNyAyMjQgMzJjMC0xNy43LTE0LjMtMzItMzItMzJzLTMyIDE0LjMtMzIgMzJsMCAzNzAuNy0xMDUuNC0xMDUuNGMtMTIuNS0xMi41LTMyLjgtMTIuNS00NS4zIDBzLTEyLjUgMzIuOCAwIDQ1LjNsMTYwIDE2MHoiXX0sREg9e3ByZWZpeDoiZmFzIixpY29uTmFtZToibG9jYXRpb24tZG90IixpY29uOlszODQsNTEyLFsibWFwLW1hcmtlci1hbHQiXSwiZjNjNSIsIk0wIDE4OC42QzAgODQuNCA4NiAwIDE5MiAwUzM4NCA4NC40IDM4NCAxODguNmMwIDExOS4zLTEyMC4yIDI2Mi4zLTE3MC40IDMxNi44LTExLjggMTIuOC0zMS41IDEyLjgtNDMuMyAwLTUwLjItNTQuNS0xNzAuNC0xOTcuNS0xNzAuNC0zMTYuOHpNMTkyIDI1NmE2NCA2NCAwIDEgMCAwLTEyOCA2NCA2NCAwIDEgMCAwIDEyOHoiXX0scVdlPURILFZXZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJwbHVnLWNpcmNsZS1leGNsYW1hdGlvbiIsaWNvbjpbNjQwLDUxMixbXSwiZTU1ZCIsIk0xOTItMzJjMTcuNyAwIDMyIDE0LjMgMzIgMzJsMCA5NiAxMjggMCAwLTk2YzAtMTcuNyAxNC4zLTMyIDMyLTMyczMyIDE0LjMgMzIgMzJsMCA5NiA2NCAwYzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMybDAgNDguN2MtOTguNiA4LjEtMTc2IDkwLjctMTc2IDE5MS4zIDAgMjcuMyA1LjcgNTMuMyAxNiA3Ni45bDAgMy4xYzAgMTcuNy0xNC4zIDMyLTMyIDMycy0zMi0xNC4zLTMyLTMybDAtNjYuN0MxNjUuMiAzOTguMSA5NiAzMTkuMSA5NiAyMjRsMC02NGMtMTcuNyAwLTMyLTE0LjMtMzItMzJTNzguMyA5NiA5NiA5Nmw2NCAwIDAtOTZjMC0xNy43IDE0LjMtMzIgMzItMzJ6TTQ5NiAyNTZhMTQ0IDE0NCAwIDEgMSAwIDI4OCAxNDQgMTQ0IDAgMSAxIDAtMjg4em0wIDIyOGEyMCAyMCAwIDEgMCAwLTQwIDIwIDIwIDAgMSAwIDAgNDB6bTAtMTgwYy04LjggMC0xNiA3LjItMTYgMTZsMCA4MGMwIDguOCA3LjIgMTYgMTYgMTZzMTYtNy4yIDE2LTE2bDAtODBjMC04LjgtNy4yLTE2LTE2LTE2eiJdfSxqV2U9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiY29va2llLWJpdGUiLGljb246WzUxMiw1MTIsW10sImY1NjQiLCJNMjU3LjUgMjcuNmMtLjgtNS40LTQuOS05LjgtMTAuMy0xMC42LTIyLjEtMy4xLTQ0LjYgLjktNjQuNCAxMS40bC03NCAzOS41Qzg5LjEgNzguNCA3My4yIDk0LjkgNjMuNCAxMTVMMjYuNyAxOTAuNmMtOS44IDIwLjEtMTMgNDIuOS05LjEgNjQuOWwxNC41IDgyLjhjMy45IDIyLjEgMTQuNiA0Mi4zIDMwLjcgNTcuOWw2MC4zIDU4LjRjMTYuMSAxNS42IDM2LjYgMjUuNiA1OC43IDI4LjdsODMgMTEuN2MyMi4xIDMuMSA0NC42LS45IDY0LjQtMTEuNGw3NC0zOS41YzE5LjctMTAuNSAzNS42LTI3IDQ1LjQtNDcuMmwzNi43LTc1LjVjOS44LTIwLjEgMTMtNDIuOSA5LjEtNjQuOS0uOS01LjMtNS4zLTkuMy0xMC42LTEwLjEtNTEuNS04LjItOTIuOC00Ny4xLTEwNC41LTk3LjQtMS44LTcuNi04LTEzLjQtMTUuNy0xNC42LTU0LjYtOC43LTk3LjctNTItMTA2LjItMTA2Ljh6TTIwOCAxNDRhMzIgMzIgMCAxIDEgMCA2NCAzMiAzMiAwIDEgMSAwLTY0ek0xNDQgMzM2YTMyIDMyIDAgMSAxIDY0IDAgMzIgMzIgMCAxIDEgLTY0IDB6bTIyNC02NGEzMiAzMiAwIDEgMSAwIDY0IDMyIDMyIDAgMSAxIDAtNjR6Il19LEVIPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InNjcmV3ZHJpdmVyLXdyZW5jaCIsaWNvbjpbNTc2LDUxMixbInRvb2xzIl0sImY3ZDkiLCJNNzAuOC02LjdjNS40LTUuNCAxMy44LTYuMiAyMC4yLTJMMjA5LjkgNzAuNWM4LjkgNS45IDE0LjIgMTUuOSAxNC4yIDI2LjZsMCA0OS42IDkwLjggOTAuOGMzMy4zLTE1IDczLjktOC45IDEwMS4yIDE4LjVMNTQyLjIgMzgyLjFjMTguNyAxOC43IDE4LjcgNDkuMSAwIDY3LjlsLTYwLjEgNjAuMWMtMTguNyAxOC43LTQ5LjEgMTguNy02Ny45IDBMMjg4LjEgMzg0Yy0yNy40LTI3LjQtMzMuNS02Ny45LTE4LjUtMTAxLjJsLTkwLjgtOTAuOC00OS42IDBjLTEwLjcgMC0yMC43LTUuMy0yNi42LTE0LjJMMjMuNCA1OC45Yy00LjItNi4zLTMuNC0xNC44IDItMjAuMkw3MC44LTYuN3ptMTQ1IDMwMy41Yy02LjMgMzYuOSAyLjMgNzUuOSAyNi4yIDEwNy4ybC05NC45IDk1Yy0yOC4xIDI4LjEtNzMuNyAyOC4xLTEwMS44IDBzLTI4LjEtNzMuNyAwLTEwMS44bDEzNS40LTEzNS41IDM1LjIgMzUuMXpNMzg0LjEgMGMyMC4xIDAgMzkuNCAzLjcgNTcuMSAxMC41IDEwIDMuOCAxMS44IDE2LjUgNC4zIDI0LjFMMzg4LjggOTEuM2MtMyAzLTQuNyA3LjEtNC43IDExLjNsMCA0MS40YzAgOC44IDcuMiAxNiAxNiAxNmw0MS40IDBjNC4yIDAgOC4zLTEuNyAxMS4zLTQuN2w1Ni43LTU2LjdjNy42LTcuNSAyMC4zLTUuNyAyNC4xIDQuMyA2LjggMTcuNyAxMC41IDM3IDEwLjUgNTcuMSAwIDQzLjItMTcuMiA4Mi4zLTQ1IDExMS4xbC00OS4xLTQ5LjFjLTMzLjEtMzMtNzguNS00NS43LTEyMS4xLTM4LjRsLTU2LjgtNTYuOCAwLTI5LjctLjItNWMtLjgtMTIuNC00LjQtMjQuMy0xMC41LTM0LjkgMjkuNC0zNSA3My40LTU3LjIgMTIyLjctNTcuM3oiXX0sVVdlPUVILFdXZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJpbmRlbnQiLGljb246WzQ0OCw1MTIsW10sImYwM2MiLCJNMCA2NEMwIDQ2LjMgMTQuMyAzMiAzMiAzMmwzODQgMGMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMkwzMiA5NkMxNC4zIDk2IDAgODEuNyAwIDY0ek0xOTIgMTkyYzAtMTcuNyAxNC4zLTMyIDMyLTMybDE5MiAwYzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMybC0xOTIgMGMtMTcuNyAwLTMyLTE0LjMtMzItMzJ6bTMyIDk2bDE5MiAwYzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMybC0xOTIgMGMtMTcuNyAwLTMyLTE0LjMtMzItMzJzMTQuMy0zMiAzMi0zMnpNMCA0NDhjMC0xNy43IDE0LjMtMzIgMzItMzJsMzg0IDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJMMzIgNDgwYy0xNy43IDAtMzItMTQuMy0zMi0zMnpNMTI3LjggMjY4LjZMMjUuOCAzNDcuOUMxNS4zIDM1Ni4xIDAgMzQ4LjYgMCAzMzUuM0wwIDE3Ni43YzAtMTMuMyAxNS4zLTIwLjggMjUuOC0xMi42bDEwMS45IDc5LjNjOC4yIDYuNCA4LjIgMTguOSAwIDI1LjN6Il19LFBIPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImJhcnMiLGljb246WzQ0OCw1MTIsWyJuYXZpY29uIl0sImYwYzkiLCJNMCA5NkMwIDc4LjMgMTQuMyA2NCAzMiA2NGwzODQgMGMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMkwzMiAxMjhDMTQuMyAxMjggMCAxMTMuNyAwIDk2ek0wIDI1NmMwLTE3LjcgMTQuMy0zMiAzMi0zMmwzODQgMGMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMkwzMiAyODhjLTE3LjcgMC0zMi0xNC4zLTMyLTMyek00NDggNDE2YzAgMTcuNy0xNC4zIDMyLTMyIDMyTDMyIDQ0OGMtMTcuNyAwLTMyLTE0LjMtMzItMzJzMTQuMy0zMiAzMi0zMmwzODQgMGMxNy43IDAgMzIgMTQuMyAzMiAzMnoiXX0sR1dlPVBILElIPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImhhbmRzLXByYXlpbmciLGljb246WzY0MCw1MTIsWyJwcmF5aW5nLWhhbmRzIl0sImY2ODQiLCJNMjI0IDI5NmMwIDEzLjMtMTAuNyAyNC0yNCAyNHMtMjQtMTAuNy0yNC0yNGwwLTExMi42IDg4LjItMTE5LjdjMTMuMS0xNy44IDkuMy00Mi44LTguNS01NS45cy00Mi44LTkuMy01NS45IDguNUwxMDYuNSAxNDIuOUM4OS4zIDE2Ni4yIDgwIDE5NC41IDgwIDIyMy42bDAgMTEwLjctNTguMSAxOS40QzguOCAzNTggMCAzNzAuMiAwIDM4NGwwIDk2YzAgMTAgNC43IDE5LjUgMTIuNyAyNS41czE4LjQgOCAyOC4xIDUuMmwxNTQuNC00NC4xYzU1LTE1LjcgOTIuOC02NS45IDkyLjgtMTIzLjFMMjg4IDIyNGMwLTE3LjctMTQuMy0zMi0zMi0zMnMtMzIgMTQuMy0zMiAzMmwwIDcyem0xOTIgMGwwLTcyYzAtMTcuNy0xNC4zLTMyLTMyLTMycy0zMiAxNC4zLTMyIDMybDAgMTE5LjZjMCA1Ny4yIDM3LjkgMTA3LjQgOTIuOCAxMjMuMWwxNTQuNCA0NC4xYzkuNyAyLjggMjAgLjggMjguMS01LjJTNjQwIDQ5MCA2NDAgNDgwbDAtOTZjMC0xMy44LTguOC0yNi0yMS45LTMwLjRsLTU4LjEtMTkuNCAwLTExMC43YzAtMjktOS4zLTU3LjMtMjYuNS04MC43TDQ0MC4yIDE2LjNDNDI3LjEtMS41IDQwMi4xLTUuMyAzODQuMyA3LjhzLTIxLjYgMzguMS04LjUgNTUuOUw0NjQgMTgzLjQgNDY0IDI5NmMwIDEzLjMtMTAuNyAyNC0yNCAyNHMtMjQtMTAuNy0yNC0yNHoiXX0sWVdlPUlILFpXZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJ2aXJ1c2VzIixpY29uOls2NDAsNTEyLFtdLCJlMDc2IiwiTTE5MiAwYzE3LjcgMCAzMiAxNC4zIDMyIDMyIDAgMzAuNSAzNi45IDQ1LjggNTguNSAyNC4yIDEyLjUtMTIuNSAzMi44LTEyLjUgNDUuMyAwczEyLjUgMzIuOCAwIDQ1LjNjLTIxLjYgMjEuNi02LjMgNTguNSAyNC4yIDU4LjUgMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJjLTMwLjUgMC00NS44IDM2LjktMjQuMiA1OC41IDEyLjUgMTIuNSAxMi41IDMyLjggMCA0NS4zcy0zMi44IDEyLjUtNDUuMyAwYy0yMS42LTIxLjYtNTguNS02LjMtNTguNSAyNC4yIDAgMTcuNy0xNC4zIDMyLTMyIDMycy0zMi0xNC4zLTMyLTMyYzAtMzAuNS0zNi45LTQ1LjgtNTguNS0yNC4yLTEyLjUgMTIuNS0zMi44IDEyLjUtNDUuMyAwcy0xMi41LTMyLjggMC00NS4zQzc3LjggMjYwLjkgNjIuNSAyMjQgMzIgMjI0IDE0LjMgMjI0IDAgMjA5LjcgMCAxOTJzMTQuMy0zMiAzMi0zMmMzMC41IDAgNDUuOC0zNi45IDI0LjItNTguNS0xMi41LTEyLjUtMTIuNS0zMi44IDAtNDUuM3MzMi44LTEyLjUgNDUuMyAwQzEyMy4xIDc3LjggMTYwIDYyLjUgMTYwIDMyIDE2MCAxNC4zIDE3NC4zIDAgMTkyIDB6TTE0NCAxNzZhMzIgMzIgMCAxIDAgMC02NCAzMiAzMiAwIDEgMCAwIDY0em0xMjggNjRhMzIgMzIgMCAxIDAgLTY0IDAgMzIgMzIgMCAxIDAgNjQgMHptMjQ4IDQwYzAgMjIuOSAyNy43IDM0LjQgNDMuOSAxOC4yIDkuNC05LjQgMjQuNi05LjQgMzMuOSAwczkuNCAyNC42IDAgMzMuOWMtMTYuMiAxNi4yLTQuNyA0My45IDE4LjIgNDMuOSAxMy4zIDAgMjQgMTAuNyAyNCAyNHMtMTAuNyAyNC0yNCAyNGMtMjIuOSAwLTM0LjQgMjcuNy0xOC4yIDQzLjkgOS40IDkuNCA5LjQgMjQuNiAwIDMzLjlzLTI0LjYgOS40LTMzLjkgMGMtMTYuMi0xNi4yLTQzLjktNC43LTQzLjkgMTguMiAwIDEzLjMtMTAuNyAyNC0yNCAyNHMtMjQtMTAuNy0yNC0yNGMwLTIyLjktMjcuNy0zNC40LTQzLjktMTguMi05LjQgOS40LTI0LjYgOS40LTMzLjkgMHMtOS40LTI0LjYgMC0zMy45YzE2LjItMTYuMiA0LjctNDMuOS0xOC4yLTQzLjktMTMuMyAwLTI0LTEwLjctMjQtMjRzMTAuNy0yNCAyNC0yNGMyMi45IDAgMzQuNC0yNy43IDE4LjItNDMuOS05LjQtOS40LTkuNC0yNC42IDAtMzMuOXMyNC42LTkuNCAzMy45IDBjMTYuMiAxNi4yIDQzLjkgNC43IDQzLjktMTguMiAwLTEzLjMgMTAuNy0yNCAyNC0yNHMyNCAxMC43IDI0IDI0ek01MDQgMzg0YTI0IDI0IDAgMSAwIC00OCAwIDI0IDI0IDAgMSAwIDQ4IDB6Il19LFhXZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJzY2hvb2wtZmxhZyIsaWNvbjpbNTc2LDUxMixbXSwiZTU2ZSIsIk0yNTYtOGMwLTEzLjMgMTAuNy0yNCAyNC0yNGwxMTIgMGMxMy4zIDAgMjQgMTAuNyAyNCAyNGwwIDQ4YzAgMTMuMy0xMC43IDI0LTI0IDI0bC03MiAwIDAgMTkuMiAxMjggNzYuOCA2NCAwYzM1LjMgMCA2NCAyOC43IDY0IDY0bDAgMjI0YzAgMzUuMy0yOC43IDY0LTY0IDY0TDY0IDUxMmMtMzUuMyAwLTY0LTI4LjctNjQtNjRMMCAyMjRjMC0zNS4zIDI4LjctNjQgNjQtNjRsNjQgMCAxMjgtNzYuOCAwLTkxLjJ6TTI0MCAzODRsMCA4MCA5NiAwIDAtODBjMC0yNi41LTIxLjUtNDgtNDgtNDhzLTQ4IDIxLjUtNDggNDh6TTExMiA0MTZjOC44IDAgMTYtNy4yIDE2LTE2bDAtMzJjMC04LjgtNy4yLTE2LTE2LTE2bC0zMiAwYy04LjggMC0xNiA3LjItMTYgMTZsMCAzMmMwIDguOCA3LjIgMTYgMTYgMTZsMzIgMHptMTYtMTQ0bDAtMzJjMC04LjgtNy4yLTE2LTE2LTE2bC0zMiAwYy04LjggMC0xNiA3LjItMTYgMTZsMCAzMmMwIDguOCA3LjIgMTYgMTYgMTZsMzIgMGM4LjggMCAxNi03LjIgMTYtMTZ6TTQ5NiA0MTZjOC44IDAgMTYtNy4yIDE2LTE2bDAtMzJjMC04LjgtNy4yLTE2LTE2LTE2bC0zMiAwYy04LjggMC0xNiA3LjItMTYgMTZsMCAzMmMwIDguOCA3LjIgMTYgMTYgMTZsMzIgMHptMTYtMTQ0bDAtMzJjMC04LjgtNy4yLTE2LTE2LTE2bC0zMiAwYy04LjggMC0xNiA3LjItMTYgMTZsMCAzMmMwIDguOCA3LjIgMTYgMTYgMTZsMzIgMGM4LjggMCAxNi03LjIgMTYtMTZ6bS0yMjQgMGE0OCA0OCAwIDEgMCAwLTk2IDQ4IDQ4IDAgMSAwIDAgOTZ6Il19LEtXZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJ0cmFkZW1hcmsiLGljb246WzY0MCw1MTIsWzg0ODJdLCJmMjVjIiwiTTM0Ni42IDExMC4yYy03LjgtMTEuNy0yMi40LTE3LTM1LjktMTIuOVMyODggMTEzLjkgMjg4IDEyOGwwIDI1NmMwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMybDAtMTUwLjMgNjkuNCAxMDQuMWM1LjkgOC45IDE1LjkgMTQuMiAyNi42IDE0LjJzMjAuNy01LjMgMjYuNi0xNC4yTDU0NCAyMzMuNyA1NDQgMzg0YzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJsMC0yNTZjMC0xNC4xLTkuMi0yNi41LTIyLjctMzAuNnMtMjguMSAxLjEtMzUuOSAxMi45TDQ0OCAyNjIuMyAzNDYuNiAxMTAuMnpNMzIgOTZDMTQuMyA5NiAwIDExMC4zIDAgMTI4czE0LjMgMzIgMzIgMzJsNjQgMCAwIDIyNGMwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMybDAtMjI0IDY0IDBjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJMMzIgOTZ6Il19LFFXZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJmaXJlLWJ1cm5lciIsaWNvbjpbNTEyLDUxMixbXSwiZTRmMSIsIk0yODEuNyA0OC4zTDI5NCAzNC41YzUuNC02LjEgMTMuMy04LjggMjAuOS04LjkgNy4yIDAgMTQuMyAyLjYgMTkuOSA3LjggMTkuNyAxOC4zIDM5LjggNDMuMiA1NSA3MC42IDE1LjEgMjcuMiAyNi4yIDU4LjEgMjYuMiA4OC4xIDAgODguNy03MS4zIDE1OS44LTE2MCAxNTkuOC04OS42IDAtMTYwLTcxLjMtMTYwLTE1OS44IDAtMzcuMyAxNi03My40IDM2LjgtMTA0LjUgMjAuOS0zMS4zIDQ3LjUtNTkgNzAuOS04MC4yIDUuNy01LjIgMTMuMS03LjcgMjAuMy03LjVzMTMuNCAzLjIgMTguOCA3LjVjMTQuNCAxMS40IDM4LjkgNDAuNyAzOC45IDQwLjd6TTMyMCAyNDAuMmMwLTM2LjUtMzctNzMtNTQuOC04OC40LTUuNC00LjctMTMuMS00LjctMTguNSAwLTE3LjcgMTUuNC01NC44IDUxLjktNTQuOCA4OC40IDAgMzUuMyAyOC43IDY0IDY0IDY0czY0LTI4LjcgNjQtNjR6TTkyLjggMzIwYzM3LjcgNDguMyA5Ni4xIDgwIDE2My4yIDgwIDY2LjUgMCAxMjUuMS0zMS43IDE2My04MGw0NSAwYzI2LjUgMCA0OCAyMS41IDQ4IDQ4bDAgNjRjMCAyNi41LTIxLjUgNDgtNDggNDhMNDggNDgwYy0yNi41IDAtNDgtMjEuNS00OC00OGwwLTY0YzAtMjYuNSAyMS41LTQ4IDQ4LTQ4bDQ0LjggMHpNNDU2IDQwMGEyNCAyNCAwIDEgMCAtNDggMCAyNCAyNCAwIDEgMCA0OCAweiJdfSxOSD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJmYWNlLXNtaWxlLWJlYW0iLGljb246WzUxMiw1MTIsWzEyODUyMiwic21pbGUtYmVhbSJdLCJmNWI4IiwiTTI1NiA1MTJhMjU2IDI1NiAwIDEgMCAwLTUxMiAyNTYgMjU2IDAgMSAwIDAgNTEyek0xNjUuNCAzMjEuOWMyMC40IDI4IDUzLjQgNDYuMSA5MC42IDQ2LjFzNzAuMi0xOC4xIDkwLjYtNDYuMWM3LjgtMTAuNyAyMi44LTEzLjEgMzMuNS01LjNzMTMuMSAyMi44IDUuMyAzMy41QzM1Ni4zIDM5MCAzMDkuMiA0MTYgMjU2IDQxNnMtMTAwLjMtMjYtMTI5LjQtNjUuOWMtNy44LTEwLjctNS40LTI1LjcgNS4zLTMzLjVzMjUuNy01LjQgMzMuNSA1LjN6TTE3NiAxODBjLTE1LjUgMC0yOCAxMi41LTI4IDI4bDAgOGMwIDExLTkgMjAtMjAgMjBzLTIwLTktMjAtMjBsMC04YzAtMzcuNiAzMC40LTY4IDY4LTY4czY4IDMwLjQgNjggNjhsMCA4YzAgMTEtOSAyMC0yMCAyMHMtMjAtOS0yMC0yMGwwLThjMC0xNS41LTEyLjUtMjgtMjgtMjh6bTEzMiAyOGwwIDhjMCAxMS05IDIwLTIwIDIwcy0yMC05LTIwLTIwbDAtOGMwLTM3LjYgMzAuNC02OCA2OC02OHM2OCAzMC40IDY4IDY4bDAgOGMwIDExLTkgMjAtMjAgMjBzLTIwLTktMjAtMjBsMC04YzAtMTUuNS0xMi41LTI4LTI4LTI4cy0yOCAxMi41LTI4IDI4eiJdfSxKV2U9TkgsZUdlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InRlbnQtYXJyb3ctbGVmdC1yaWdodCIsaWNvbjpbNTEyLDUxMixbXSwiZTU3ZiIsIk0tLjUgMTEzYy05LjQtOS40LTkuNC0yNC42IDAtMzMuOWw3Mi03MmM5LjQtOS40IDI0LjYtOS40IDMzLjkgMHM5LjQgMjQuNiAwIDMzLjlsLTMxIDMxIDMxMC4xIDAgNTQuMSAwLTMxLTMxYy05LjQtOS40LTkuNC0yNC42IDAtMzMuOXMyNC42LTkuNCAzMy45IDBsNzIgNzJjOS40IDkuNCA5LjQgMjQuNiAwIDMzLjlsLTcyIDcyYy05LjQgOS40LTI0LjYgOS40LTMzLjkgMHMtOS40LTI0LjYgMC0zMy45bDMxLTMxLTEwMi4xIDAtLjEgMC0yNjIgMCAzMSAzMWM5LjQgOS40IDkuNCAyNC42IDAgMzMuOXMtMjQuNiA5LjQtMzMuOSAwbC03Mi03MnpNMzcuMSA0NzZMNjAuMyAyOTIuNmMxLjItOS43IDYuOC0xOC4zIDE1LjEtMjMuM0wyMzguOCAxNzBjMTAuMi02LjIgMjIuOS02LjIgMzMuMS0uMWwxNjUuNSA5OS40YzguNCA1IDE0IDEzLjcgMTUuMyAyMy40TDQ3NS45IDQ3NmMyLjQgMTkuMS0xMi41IDM2LTMxLjcgMzZsLTcxLjkgMGMtMTIuMSAwLTIzLjItNi44LTI4LjYtMTcuN0wyNzUuNCAzNTcuOWMtMS44LTMuNi01LjUtNS45LTkuNS01LjktNS45IDAtMTAuNiA0LjctMTAuNiAxMC42bDAgMTE3LjRjMCAxNy43LTE0LjMgMzItMzIgMzJMNjguOCA1MTJjLTE5LjMgMC0zNC4yLTE2LjktMzEuNy0zNnoiXX0sdEdlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InJvdXRlIixpY29uOls1MTIsNTEyLFtdLCJmNGQ3IiwiTTUxMiA5NmMwIDUwLjItNTkuMSAxMjUuMS04NC42IDE1NS0zLjggNC40LTkuNCA2LjEtMTQuNSA1TDMyMCAyNTZjLTE3LjcgMC0zMiAxNC4zLTMyIDMyczE0LjMgMzIgMzIgMzJsOTYgMGM1MyAwIDk2IDQzIDk2IDk2cy00MyA5Ni05NiA5NmwtMjc2LjQgMGM4LjctOS45IDE5LjMtMjIuNiAzMC0zNi44IDYuMy04LjQgMTIuOC0xNy42IDE5LTI3LjJMNDE2IDQ0OGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMmwtOTYgMGMtNTMgMC05Ni00My05Ni05NnM0My05NiA5Ni05NmwzOS44IDBjLTIxLTMxLjUtMzkuOC02Ny43LTM5LjgtOTYgMC01MyA0My05NiA5Ni05NnM5NiA0MyA5NiA5NnpNMTE3LjEgNDg5LjFjLTMuOCA0LjMtNy4yIDguMS0xMC4xIDExLjNsLTEuOCAyLS4yLS4yYy02IDQuNi0xNC42IDQtMjAtMS44LTI1LjItMjcuNC04NS05Ny45LTg1LTE0OC40IDAtNTMgNDMtOTYgOTYtOTZzOTYgNDMgOTYgOTZjMCAzMC0yMS4xIDY3LTQzLjUgOTcuOS0xMC43IDE0LjctMjEuNyAyOC0zMC44IDM4LjVsLS42IC43ek0xMjggMzUyYTMyIDMyIDAgMSAwIC02NCAwIDMyIDMyIDAgMSAwIDY0IDB6TTQxNiAxMjhhMzIgMzIgMCAxIDAgMC02NCAzMiAzMiAwIDEgMCAwIDY0eiJdfSxGSD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJhbmdsZXMtdXAiLGljb246WzM4NCw1MTIsWyJhbmdsZS1kb3VibGUtdXAiXSwiZjEwMiIsIk0yMTQuNiA0MS40Yy0xMi41LTEyLjUtMzIuOC0xMi41LTQ1LjMgMGwtMTYwIDE2MGMtMTIuNSAxMi41LTEyLjUgMzIuOCAwIDQ1LjNzMzIuOCAxMi41IDQ1LjMgMEwxOTIgMTA5LjMgMzI5LjQgMjQ2LjZjMTIuNSAxMi41IDMyLjggMTIuNSA0NS4zIDBzMTIuNS0zMi44IDAtNDUuM2wtMTYwLTE2MHptMTYwIDM1MmwtMTYwLTE2MGMtMTIuNS0xMi41LTMyLjgtMTIuNS00NS4zIDBsLTE2MCAxNjBjLTEyLjUgMTIuNS0xMi41IDMyLjggMCA0NS4zczMyLjggMTIuNSA0NS4zIDBMMTkyIDMwMS4zIDMyOS40IDQzOC42YzEyLjUgMTIuNSAzMi44IDEyLjUgNDUuMyAwczEyLjUtMzIuOCAwLTQ1LjN6Il19LGFHZT1GSCxpR2U9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiYnVja2V0IixpY29uOls0NDgsNTEyLFtdLCJlNGNmIiwiTTQ0My43IDIwOGMyLjcgNC43IDQuMyAxMC4yIDQuMyAxNiAwIDE3LjctMTQuMyAzMi0zMiAzMmwtNS4xIDAtMjIuNCAyMTNjLTIuNiAyNC40LTIzLjIgNDMtNDcuOCA0M2wtMjMzLjYgMGMtMjQuNiAwLTQ1LjItMTguNS00Ny44LTQzTDM3LjEgMjU2IDMyIDI1NmMtMTcuNyAwLTMyLTE0LjMtMzItMzIgMC01LjggMS42LTExLjMgNC4zLTE2bDQzOS40IDB6TTIyNC0xNmM3OS41IDAgMTQ0IDY0LjUgMTQ0IDE0NGwwIDMyLTQ4IDAgMC0zMmMwLTUzLTQzLTk2LTk2LTk2cy05NiA0My05NiA5NmwwIDMyLTQ4IDAgMC0zMkM4MCA0OC41IDE0NC41LTE2IDIyNC0xNnoiXX0sckdlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6Imxlc3MtdGhhbi1lcXVhbCIsaWNvbjpbNDQ4LDUxMixbXSwiZjUzNyIsIk00MjYuMSA5NC40YzE2LjgtNS42IDI1LjgtMjMuNyAyMC4yLTQwLjVzLTIzLjctMjUuOC00MC41LTIwLjJsLTM4NCAxMjhDOC44IDE2NiAwIDE3OC4yIDAgMTkyczguOCAyNiAyMS45IDMwLjRsMzg0IDEyOGMxNi44IDUuNiAzNC45LTMuNSA0MC41LTIwLjJzLTMuNS0zNC45LTIwLjItNDAuNUwxMzMuMiAxOTIgNDI2LjEgOTQuNHpNMzIgNDE2Yy0xNy43IDAtMzIgMTQuMy0zMiAzMnMxNC4zIDMyIDMyIDMybDM4NCAwYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMyTDMyIDQxNnoiXX0sc0dlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImZvbGRlci1jbG9zZWQiLGljb246WzUxMiw1MTIsW10sImUxODUiLCJNNDQ4IDQ0OEw2NCA0NDhjLTM1LjMgMC02NC0yOC43LTY0LTY0bDAtMTc2IDUxMiAwIDAgMTc2YzAgMzUuMy0yOC43IDY0LTY0IDY0em02NC0yODhMMCAxNjAgMCA5NkMwIDYwLjcgMjguNyAzMiA2NCAzMmwxMzguNyAwYzEzLjggMCAyNy4zIDQuNSAzOC40IDEyLjhsMzguNCAyOC44YzUuNSA0LjIgMTIuMyA2LjQgMTkuMiA2LjRMNDQ4IDgwYzM1LjMgMCA2NCAyOC43IDY0IDY0bDAgMTZ6Il19LG5HZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJwZXJzb24tdGhyb3VnaC13aW5kb3ciLGljb246WzY0MCw1MTIsW10sImU1YTkiLCJNNjQgNjRsMjI0IDAgMCA5LjhjMCAzOS0yMy43IDc0LTU5LjkgODguNC02MC41IDI0LjItMTAwLjEgODIuNy0xMDAuMSAxNDcuOWwwIDczLjgtNjQgMCAwLTMyMHptMjg4IDBsMjI0IDAgMCAzMjAtNjcuNyAwLTMuNy00LjUtNzUuMi05MC4yYy05LjEtMTAuOS0yMi42LTE3LjMtMzYuOS0xNy4zbC03MS4xIDAtNDEtNjMuMWMtLjMtLjUtLjYtMS0xLTEuNCA0NC43LTI5IDcyLjUtNzkgNzIuNS0xMzMuNmwwLTkuOHptNzMgMzIwbC0yNi42IDAgNDIuNyA2NCAxNTAuOSAwYzI2LjUgMCA0OC0yMS41IDQ4LTQ4bDAtMzUyYzAtMjYuNS0yMS41LTQ4LTQ4LTQ4TDQ4IDBDMjEuNSAwIDAgMjEuNSAwIDQ4TDAgNDAwYzAgMjYuNSAyMS41IDQ4IDQ4IDQ4bDI2MC4yIDAgMzMuMiA0OS44YzkuOCAxNC43IDI5LjcgMTguNyA0NC40IDguOXMxOC43LTI5LjcgOC45LTQ0LjRsLTg0LjItMTI2LjIgNzQuNiAwIDQwIDQ4em0tMTU5LjUgMGwtNzMuNSAwIDAtNzMuOGMwLTEwLjIgMS42LTIwLjEgNC43LTI5LjVMMjY1LjUgMzg0ek0xOTIgMTI4YTQ4IDQ4IDAgMSAwIC05NiAwIDQ4IDQ4IDAgMSAwIDk2IDB6Il19LG9HZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJzY2hvb2wtbG9jayIsaWNvbjpbNjQwLDUxMixbXSwiZTU2ZiIsIk0wIDE5MmMwLTM1LjMgMjguNy02NCA2NC02NGw2NCAwIDEyNy45LTExNS4xYzE4LjMtMTYuNCA0Ni0xNi40IDY0LjIgMEw0NDggMTI4IDUxMiAxMjhjMzMgMCA2MC4yIDI1IDYzLjYgNTcuMi0xNC43LTUuOS0zMC44LTkuMi00Ny42LTkuMi03MC43IDAtMTI4IDU3LjMtMTI4IDEyOGwwIDI0LjRjLTE5LjYgMTcuNi0zMiA0My4xLTMyIDcxLjVsMCA5NmMwIDUuNSAuNSAxMC45IDEuMyAxNi4xTDY0IDUxMmMtMzUuMyAwLTY0LTI4LjctNjQtNjRMMCAxOTJ6TTMzMi4zIDM0MS41Yy02LTMuNS0xMi45LTUuNS0yMC4zLTUuNWwtNDggMGMtMjIuMSAwLTQwIDE3LjktNDAgNDBsMCA4OCA5NiAwIDAtNjQuMWMwLTIwLjggNC40LTQwLjUgMTIuMy01OC40ek0xMTIgMzg0YzguOCAwIDE2LTcuMiAxNi0xNmwwLTMyYzAtOC44LTcuMi0xNi0xNi0xNmwtMzIgMGMtOC44IDAtMTYgNy4yLTE2IDE2bDAgMzJjMCA4LjggNy4yIDE2IDE2IDE2bDMyIDB6bTE2LTE0NGwwLTMyYzAtOC44LTcuMi0xNi0xNi0xNmwtMzIgMGMtOC44IDAtMTYgNy4yLTE2IDE2bDAgMzJjMCA4LjggNy4yIDE2IDE2IDE2bDMyIDBjOC44IDAgMTYtNy4yIDE2LTE2em0yMjQtNDhhNjQgNjQgMCAxIDAgLTEyOCAwIDY0IDY0IDAgMSAwIDEyOCAwek01NjAgMzUybDAtNDcuOWMwLTE3LjctMTQuMy0zMi0zMi0zMnMtMzIgMTQuMy0zMiAzMmwwIDQ3LjkgNjQgMHptLTExMiAyLjdsMC01MC42YzAtNDQuMiAzNS44LTgwIDgwLTgwczgwIDM1LjggODAgODBsMCA1MC42YzE4LjYgNi42IDMyIDI0LjQgMzIgNDUuM2wwIDk2YzAgMjYuNS0yMS41IDQ4LTQ4IDQ4bC0xMjggMGMtMjYuNSAwLTQ4LTIxLjUtNDgtNDhsMC05NmMwLTIwLjkgMTMuNC0zOC43IDMyLTQ1LjN6Il19LGxHZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJwZXJzb24tYnVyc3QiLGljb246WzY0MCw1MTIsW10sImU1M2IiLCJNMjA0IDQwLjFjLTEzLjMgMC0yNC0xMC43LTI0LTI0bDAtNDhjMC0xMy4zIDEwLjctMjQgMjQtMjRzMjQgMTAuNyAyNCAyNGwwIDQ4YzAgMTMuMy0xMC43IDI0LTI0IDI0ek00IDE0NC4xYzAtMTMuMyAxMC43LTI0IDI0LTI0bDQ4IDBjMTMuMyAwIDI0IDEwLjcgMjQgMjRzLTEwLjcgMjQtMjQgMjRsLTQ4IDBjLTEzLjMgMC0yNC0xMC43LTI0LTI0ek05Ni41IDI4NS41Yy05LjQgOS40LTI0LjYgOS40LTMzLjkgMHMtOS40LTI0LjYgMC0zMy45bDMzLjktMzMuOWM5LjQtOS40IDI0LjYtOS40IDMzLjkgMHM5LjQgMjQuNiAwIDMzLjlMOTYuNSAyODUuNXpNNjIuNiAyLjdjOS40LTkuNCAyNC42LTkuNCAzMy45IDBsMzMuOSAzMy45YzkuNCA5LjQgOS40IDI0LjYgMCAzMy45cy0yNC42IDkuNC0zMy45IDBMNjIuNiAzNi42Yy05LjQtOS40LTkuNC0yNC42IDAtMzMuOXpNMzUyLjQtMzJhNTYgNTYgMCAxIDEgMCAxMTIgNTYgNTYgMCAxIDEgMC0xMTJ6TTQ3OC43IDI5OS4xbC00Ni4zLTYyLjQgMCAyNzUuM2MwIDE3LjctMTQuMyAzMi0zMiAzMnMtMzItMTQuMy0zMi0zMmwwLTE2MGMwLTguOC03LjItMTYtMTYtMTZzLTE2IDcuMi0xNiAxNmwwIDE2MGMwIDE3LjctMTQuMyAzMi0zMiAzMnMtMzItMTQuMy0zMi0zMmwwLTI3NS4zLTQ2LjMgNjIuNGMtMTAuNSAxNC4yLTMwLjYgMTcuMi00NC44IDYuNnMtMTcuMi0zMC42LTYuNi00NC44bDcwLjUtOTVjMjUuMi0zMy45IDY1LTUzLjkgMTA3LjItNTMuOXM4MiAyMCAxMDcuMiA1My45bDcwLjUgOTVjMTAuNSAxNC4yIDcuNiAzNC4yLTYuNiA0NC44cy0zNC4yIDcuNi00NC44LTYuNnoiXX0sT0g9e3ByZWZpeDoiZmFzIixpY29uTmFtZToibGVmdC1sb25nIixpY29uOls1NzYsNTEyLFsibG9uZy1hcnJvdy1hbHQtbGVmdCJdLCJmMzBhIiwiTTkuNCAyNzguNmMtMTIuNS0xMi41LTEyLjUtMzIuOCAwLTQ1LjNsMTI4LTEyOGM5LjItOS4yIDIyLjktMTEuOSAzNC45LTYuOVMxOTIgMTE1LjEgMTkyIDEyOGwwIDY0IDMzNiAwYzI2LjUgMCA0OCAyMS41IDQ4IDQ4bDAgMzJjMCAyNi41LTIxLjUgNDgtNDggNDhsLTMzNiAwIDAgNjRjMCAxMi45LTcuOCAyNC42LTE5LjggMjkuNnMtMjUuNyAyLjItMzQuOS02LjlsLTEyOC0xMjh6Il19LGNHZT1PSCxSSD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJsb2NhdGlvbi1jcm9zc2hhaXJzIixpY29uOls1NzYsNTEyLFsibG9jYXRpb24iXSwiZjYwMSIsIk0yODgtMTZjMTcuNyAwIDMyIDE0LjMgMzIgMzJsMCAxOC4zYzk4LjEgMTQgMTc1LjcgOTEuNiAxODkuNyAxODkuN2wxOC4zIDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJsLTE4LjMgMGMtMTQgOTguMS05MS42IDE3NS43LTE4OS43IDE4OS43bDAgMTguM2MwIDE3LjctMTQuMyAzMi0zMiAzMnMtMzItMTQuMy0zMi0zMmwwLTE4LjNDMTU3LjkgNDYzLjcgODAuMyAzODYuMSA2Ni4zIDI4OEw0OCAyODhjLTE3LjcgMC0zMi0xNC4zLTMyLTMyczE0LjMtMzIgMzItMzJsMTguMyAwQzgwLjMgMTI1LjkgMTU3LjkgNDguMyAyNTYgMzQuM0wyNTYgMTZjMC0xNy43IDE0LjMtMzIgMzItMzJ6TTEyOCAyNTZhMTYwIDE2MCAwIDEgMCAzMjAgMCAxNjAgMTYwIDAgMSAwIC0zMjAgMHptMTYwLTk2YTk2IDk2IDAgMSAxIDAgMTkyIDk2IDk2IDAgMSAxIDAtMTkyeiJdfSxkR2U9UkgsQkg9e3ByZWZpeDoiZmFzIixpY29uTmFtZToicGVyc29uLWRvdHMtZnJvbS1saW5lIixpY29uOls1MTIsNTEyLFsiZGlhZ25vc2VzIl0sImY0NzAiLCJNMTg0IDcyYTcyIDcyIDAgMSAxIDE0NCAwIDcyIDcyIDAgMSAxIC0xNDQgMHpNMTYwIDI5OS4zYy0xOS45IDIyLjYtMzIgNTIuMi0zMiA4NC43bDAgMzItNjQgMCAwLTMyYzAtMTA2IDg2LTE5MiAxOTItMTkyczE5MiA4NiAxOTIgMTkybDAgMzItNjQgMCAwLTMyYzAtMzIuNS0xMi4xLTYyLjEtMzItODQuN2wwIDExNi43LTE5MiAwIDAtMTE2Ljd6TTIzMiAzODRhMjQgMjQgMCAxIDAgMC00OCAyNCAyNCAwIDEgMCAwIDQ4em04OC0xMDRhMjQgMjQgMCAxIDAgLTQ4IDAgMjQgMjQgMCAxIDAgNDggMHpNMjQgNDY0bDQ2NCAwYzEzLjMgMCAyNCAxMC43IDI0IDI0cy0xMC43IDI0LTI0IDI0TDI0IDUxMmMtMTMuMyAwLTI0LTEwLjctMjQtMjRzMTAuNy0yNCAyNC0yNHpNNjQgMTg0YTI0IDI0IDAgMSAxIDQ4IDAgMjQgMjQgMCAxIDEgLTQ4IDB6bTQyNCA3MmEyNCAyNCAwIDEgMSAwIDQ4IDI0IDI0IDAgMSAxIDAtNDh6Il19LGhHZT1CSCxWbT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJnYXVnZS1zaW1wbGUtaGlnaCIsaWNvbjpbNTEyLDUxMixbNjE2NjgsInRhY2hvbWV0ZXIiLCJ0YWNob21ldGVyLWZhc3QiXSwiZjYyYSIsIk0wIDI1NmEyNTYgMjU2IDAgMSAxIDUxMiAwIDI1NiAyNTYgMCAxIDEgLTUxMiAwem0zMjAgOTZjMC0xNi4yLTYtMzEuMS0xNi00Mi4zbDY5LjUtMTM4LjljNS45LTExLjkgMS4xLTI2LjMtMTAuNy0zMi4ycy0yNi4zLTEuMS0zMi4yIDEwLjdMMjYxLjEgMjg4LjJjLTEuNy0uMS0zLjQtLjItNS4xLS4yLTM1LjMgMC02NCAyOC43LTY0IDY0czI4LjcgNjQgNjQgNjQgNjQtMjguNyA2NC02NHoiXX0scEdlPVZtLHVHZT1WbSxISD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJhbmdsZXMtbGVmdCIsaWNvbjpbNDQ4LDUxMixbMTcxLCJhbmdsZS1kb3VibGUtbGVmdCJdLCJmMTAwIiwiTTkuNCAyMzMuNGMtMTIuNSAxMi41LTEyLjUgMzIuOCAwIDQ1LjNsMTYwIDE2MGMxMi41IDEyLjUgMzIuOCAxMi41IDQ1LjMgMHMxMi41LTMyLjggMC00NS4zTDc3LjMgMjU2IDIxNC42IDExOC42YzEyLjUtMTIuNSAxMi41LTMyLjggMC00NS4zcy0zMi44LTEyLjUtNDUuMyAwbC0xNjAgMTYwem0zNTItMTYwbC0xNjAgMTYwYy0xMi41IDEyLjUtMTIuNSAzMi44IDAgNDUuM2wxNjAgMTYwYzEyLjUgMTIuNSAzMi44IDEyLjUgNDUuMyAwczEyLjUtMzIuOCAwLTQ1LjNMMjY5LjMgMjU2IDQwNi42IDExOC42YzEyLjUtMTIuNSAxMi41LTMyLjggMC00NS4zcy0zMi44LTEyLjUtNDUuMyAweiJdfSxmR2U9SEgscUg9e3ByZWZpeDoiZmFzIixpY29uTmFtZToidXAtZG93biIsaWNvbjpbNTEyLDUxMixbODU5NywxMTAyMSwiYXJyb3dzLWFsdC12Il0sImYzMzgiLCJNNDA2LjYgNTAyLjZsOTYtOTZjOS4yLTkuMiAxMS45LTIyLjkgNi45LTM0LjlTNDkyLjkgMzUyIDQ4MCAzNTJsLTY0IDAgMC0zMjBjMC0xNy43LTE0LjMtMzItMzItMzJzLTMyIDE0LjMtMzIgMzJsMCAzMjAtNjQgMGMtMTIuOSAwLTI0LjYgNy44LTI5LjYgMTkuOHMtMi4yIDI1LjcgNi45IDM0LjlsOTYgOTZjMTIuNSAxMi41IDMyLjggMTIuNSA0NS4zIDB6TTE1MC42IDkuNGMtMTIuNS0xMi41LTMyLjgtMTIuNS00NS4zIDBsLTk2IDk2Yy05LjIgOS4yLTExLjkgMjIuOS02LjkgMzQuOVMxOS4xIDE2MCAzMiAxNjBsNjQgMCAwIDMyMGMwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMybDAtMzIwIDY0IDBjMTIuOSAwIDI0LjYtNy44IDI5LjYtMTkuOHMyLjItMjUuNy02LjktMzQuOWwtOTYtOTZ6Il19LG1HZT1xSCxWSD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJiYXR0ZXJ5LWVtcHR5IixpY29uOls2NDAsNTEyLFsiYmF0dGVyeS0wIl0sImYyNDQiLCJNMTEyIDE2MGMtOC44IDAtMTYgNy4yLTE2IDE2bDAgMjI0YzAgOC44IDcuMiAxNiAxNiAxNmw0MTYgMGM4LjggMCAxNi03LjIgMTYtMTZsMC0yMjRjMC04LjgtNy4yLTE2LTE2LTE2bC00MTYgMHpNMzIgMTc2YzAtNDQuMiAzNS44LTgwIDgwLTgwbDQxNiAwYzQ0LjIgMCA4MCAzNS44IDgwIDgwbDAgNDhjMTcuNyAwIDMyIDE0LjMgMzIgMzJsMCA2NGMwIDE3LjctMTQuMyAzMi0zMiAzMmwwIDQ4YzAgNDQuMi0zNS44IDgwLTgwIDgwbC00MTYgMGMtNDQuMiAwLTgwLTM1LjgtODAtODBsMC0yMjR6Il19LGdHZT1WSCxiR2U9e3ByZWZpeDoiZmFzIixpY29uTmFtZToia2V5Ym9hcmQiLGljb246WzU3Niw1MTIsWzllM10sImYxMWMiLCJNNjQgNjRDMjguNyA2NCAwIDkyLjcgMCAxMjhMMCAzODRjMCAzNS4zIDI4LjcgNjQgNjQgNjRsNDQ4IDBjMzUuMyAwIDY0LTI4LjcgNjQtNjRsMC0yNTZjMC0zNS4zLTI4LjctNjQtNjQtNjRMNjQgNjR6bTE2IDY0bDMyIDBjOC44IDAgMTYgNy4yIDE2IDE2bDAgMzJjMCA4LjgtNy4yIDE2LTE2IDE2bC0zMiAwYy04LjggMC0xNi03LjItMTYtMTZsMC0zMmMwLTguOCA3LjItMTYgMTYtMTZ6TTY0IDI0MGMwLTguOCA3LjItMTYgMTYtMTZsMzIgMGM4LjggMCAxNiA3LjIgMTYgMTZsMCAzMmMwIDguOC03LjIgMTYtMTYgMTZsLTMyIDBjLTguOCAwLTE2LTcuMi0xNi0xNmwwLTMyek0xNzYgMTI4bDMyIDBjOC44IDAgMTYgNy4yIDE2IDE2bDAgMzJjMCA4LjgtNy4yIDE2LTE2IDE2bC0zMiAwYy04LjggMC0xNi03LjItMTYtMTZsMC0zMmMwLTguOCA3LjItMTYgMTYtMTZ6TTE2MCAyNDBjMC04LjggNy4yLTE2IDE2LTE2bDMyIDBjOC44IDAgMTYgNy4yIDE2IDE2bDAgMzJjMCA4LjgtNy4yIDE2LTE2IDE2bC0zMiAwYy04LjggMC0xNi03LjItMTYtMTZsMC0zMnptMTYgODBsMjI0IDBjOC44IDAgMTYgNy4yIDE2IDE2bDAgMzJjMCA4LjgtNy4yIDE2LTE2IDE2bC0yMjQgMGMtOC44IDAtMTYtNy4yLTE2LTE2bDAtMzJjMC04LjggNy4yLTE2IDE2LTE2em04MC0xNzZjMC04LjggNy4yLTE2IDE2LTE2bDMyIDBjOC44IDAgMTYgNy4yIDE2IDE2bDAgMzJjMCA4LjgtNy4yIDE2LTE2IDE2bC0zMiAwYy04LjggMC0xNi03LjItMTYtMTZsMC0zMnptMTYgODBsMzIgMGM4LjggMCAxNiA3LjIgMTYgMTZsMCAzMmMwIDguOC03LjIgMTYtMTYgMTZsLTMyIDBjLTguOCAwLTE2LTcuMi0xNi0xNmwwLTMyYzAtOC44IDcuMi0xNiAxNi0xNnptODAtODBjMC04LjggNy4yLTE2IDE2LTE2bDMyIDBjOC44IDAgMTYgNy4yIDE2IDE2bDAgMzJjMCA4LjgtNy4yIDE2LTE2IDE2bC0zMiAwYy04LjggMC0xNi03LjItMTYtMTZsMC0zMnptMTYgODBsMzIgMGM4LjggMCAxNiA3LjIgMTYgMTZsMCAzMmMwIDguOC03LjIgMTYtMTYgMTZsLTMyIDBjLTguOCAwLTE2LTcuMi0xNi0xNmwwLTMyYzAtOC44IDcuMi0xNiAxNi0xNnptODAtODBjMC04LjggNy4yLTE2IDE2LTE2bDMyIDBjOC44IDAgMTYgNy4yIDE2IDE2bDAgMzJjMCA4LjgtNy4yIDE2LTE2IDE2bC0zMiAwYy04LjggMC0xNi03LjItMTYtMTZsMC0zMnptMTYgODBsMzIgMGM4LjggMCAxNiA3LjIgMTYgMTZsMCAzMmMwIDguOC03LjIgMTYtMTYgMTZsLTMyIDBjLTguOCAwLTE2LTcuMi0xNi0xNmwwLTMyYzAtOC44IDcuMi0xNiAxNi0xNnoiXX0sdkdlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImNvb2tpZSIsaWNvbjpbNTEyLDUxMixbMTI3ODUwXSwiZjU2MyIsIk0yNDcuMiAxN2MtMjIuMS0zLjEtNDQuNiAuOS02NC40IDExLjRsLTc0IDM5LjVDODkuMSA3OC40IDczLjIgOTQuOSA2My40IDExNUwyNi43IDE5MC42Yy05LjggMjAuMS0xMyA0Mi45LTkuMSA2NC45bDE0LjUgODIuOGMzLjkgMjIuMSAxNC42IDQyLjMgMzAuNyA1Ny45bDYwLjMgNTguNGMxNi4xIDE1LjYgMzYuNiAyNS42IDU4LjcgMjguN2w4MyAxMS43YzIyLjEgMy4xIDQ0LjYtLjkgNjQuNC0xMS40bDc0LTM5LjVjMTkuNy0xMC41IDM1LjYtMjcgNDUuNC00Ny4ybDM2LjctNzUuNWM5LjgtMjAuMSAxMy00Mi45IDkuMS02NC45bC0xNC42LTgyLjhjLTMuOS0yMi4xLTE0LjYtNDIuMy0zMC43LTU3LjlMMzg4LjkgNTcuNWMtMTYuMS0xNS42LTM2LjYtMjUuNi01OC43LTI4LjdMMjQ3LjIgMTd6TTIwOCAxNDRhMzIgMzIgMCAxIDEgMCA2NCAzMiAzMiAwIDEgMSAwLTY0ek0xNDQgMzM2YTMyIDMyIDAgMSAxIDY0IDAgMzIgMzIgMCAxIDEgLTY0IDB6bTIyNC02NGEzMiAzMiAwIDEgMSAwIDY0IDMyIDMyIDAgMSAxIDAtNjR6Il19LHlHZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJzdG9wd2F0Y2giLGljb246WzQ0OCw1MTIsWzkyMDFdLCJmMmYyIiwiTTE2OC41IDBjLTEzLjMgMC0yNCAxMC43LTI0IDI0czEwLjcgMjQgMjQgMjRsMzIgMCAwIDI1LjNjLTEwOCAxMS45LTE5MiAxMDMuNS0xOTIgMjE0LjcgMCAxMTkuMyA5Ni43IDIxNiAyMTYgMjE2czIxNi05Ni43IDIxNi0yMTZjMC0zOS44LTEwLjgtNzcuMS0yOS42LTEwOS4ybDI4LjItMjguMmMxMi41LTEyLjUgMTIuNS0zMi44IDAtNDUuM3MtMzIuOC0xMi41LTQ1LjMgMGwtMjMuNCAyMy40Yy0zMi45LTMwLjItNzUuMi01MC4zLTEyMi01NS41bDAtMjUuMyAzMiAwYzEzLjMgMCAyNC0xMC43IDI0LTI0cy0xMC43LTI0LTI0LTI0bC0xMTIgMHptODAgMTg0bDAgMTA0YzAgMTMuMy0xMC43IDI0LTI0IDI0cy0yNC0xMC43LTI0LTI0bDAtMTA0YzAtMTMuMyAxMC43LTI0IDI0LTI0czI0IDEwLjcgMjQgMjR6Il19LHhHZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJlamVjdCIsaWNvbjpbNDQ4LDUxMixbOTE2N10sImYwNTIiLCJNMjI0IDMyYzEzLjUgMCAyNi4zIDUuNiAzNS40IDE1LjZsMTc2IDE5MmMxMi45IDE0IDE2LjIgMzQuMyA4LjYgNTEuOFM0MTkgMzIwIDQwMCAzMjBMNDggMzIwYy0xOSAwLTM2LjMtMTEuMi00My45LTI4LjdzLTQuMy0zNy43IDguNi01MS44bDE3Ni0xOTJDMTk3LjcgMzcuNiAyMTAuNSAzMiAyMjQgMzJ6TTAgNDMyYzAtMjYuNSAyMS41LTQ4IDQ4LTQ4bDM1MiAwYzI2LjUgMCA0OCAyMS41IDQ4IDQ4cy0yMS41IDQ4LTQ4IDQ4TDQ4IDQ4MGMtMjYuNSAwLTQ4LTIxLjUtNDgtNDh6Il19LHdHZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJzYXRlbGxpdGUtZGlzaCIsaWNvbjpbNTEyLDUxMixbMTI4MjI1XSwiZjdjMCIsIk0yMzIgMGMxNTQuNiAwIDI4MCAxMjUuNCAyODAgMjgwIDAgMTMuMy0xMC43IDI0LTI0IDI0cy0yNC0xMC43LTI0LTI0YzAtMTI4LjEtMTAzLjktMjMyLTIzMi0yMzItMTMuMyAwLTI0LTEwLjctMjQtMjRTMjE4LjcgMCAyMzIgMHpNMjA4IDEyMGMwLTEzLjMgMTAuNy0yNCAyNC0yNCAxMDEuNiAwIDE4NCA4Mi40IDE4NCAxODQgMCAxMy4zLTEwLjcgMjQtMjQgMjRzLTI0LTEwLjctMjQtMjRjMC03NS4xLTYwLjktMTM2LTEzNi0xMzYtMTMuMyAwLTI0LTEwLjctMjQtMjR6TTI2LjQgMTQyLjdjOC44LTE3LjkgMzIuNC0xOS45IDQ2LjUtNS44bDEyOC41IDEyOC41IDMyLTMyYzEyLjUtMTIuNSAzMi44LTEyLjUgNDUuMyAwczEyLjUgMzIuOCAwIDQ1LjNsLTMyIDMyIDEyOC41IDEyOC41YzE0LjEgMTQuMSAxMiAzNy42LTUuOCA0Ni41LTM0LjIgMTYuOS03Mi42IDI2LjQtMTEzLjMgMjYuNC0xNDEuNCAwLTI1Ni0xMTQuNi0yNTYtMjU2IDAtNDAuNyA5LjUtNzkuMiAyNi40LTExMy4zeiJdfSxqSD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJmYWNlLXJvbGxpbmctZXllcyIsaWNvbjpbNTEyLDUxMixbMTI4NTgwLCJtZWgtcm9sbGluZy1leWVzIl0sImY1YTUiLCJNMjU2IDUxMmEyNTYgMjU2IDAgMSAwIDAtNTEyIDI1NiAyNTYgMCAxIDAgMCA1MTJ6TTE5MiAzNTJsMTI4IDBjMTMuMyAwIDI0IDEwLjcgMjQgMjRzLTEwLjcgMjQtMjQgMjRsLTEyOCAwYy0xMy4zIDAtMjQtMTAuNy0yNC0yNHMxMC43LTI0IDI0LTI0em0zMi0xMjhjMCAzNS4zLTI4LjcgNjQtNjQgNjRzLTY0LTI4LjctNjQtNjRjMC0yNiAxNS41LTQ4LjQgMzcuOC01OC40LTMuNyA1LjItNS44IDExLjYtNS44IDE4LjQgMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMmMwLTYuOS0yLjItMTMuMi01LjgtMTguNCAyMi4zIDEwIDM3LjggMzIuNCAzNy44IDU4LjR6bTEyOCA2NGMtMzUuMyAwLTY0LTI4LjctNjQtNjQgMC0yNiAxNS41LTQ4LjQgMzcuOC01OC40LTMuNyA1LjItNS44IDExLjYtNS44IDE4LjQgMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMmMwLTYuOS0yLjItMTMuMi01LjgtMTguNCAyMi4zIDEwIDM3LjggMzIuNCAzNy44IDU4LjQgMCAzNS4zLTI4LjcgNjQtNjQgNjR6Il19LE1HZT1qSCxVSD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJsaXN0LWNoZWNrIixpY29uOls1MTIsNTEyLFsidGFza3MiXSwiZjBhZSIsIk0xMzMuOCAzNi4zYzEwLjkgNy42IDEzLjUgMjIuNiA1LjkgMzMuNGwtNTYgODBjLTQuMSA1LjgtMTAuNSA5LjUtMTcuNiAxMC4xUzUyIDE1OCA0NyAxNTNMNyAxMTNDLTIuMyAxMDMuNi0yLjMgODguNCA3IDc5UzMxLjYgNjkuNyA0MSA3OWwxOS44IDE5LjggMzkuNi01Ni42YzcuNi0xMC45IDIyLjYtMTMuNSAzMy40LTUuOXptMCAxNjBjMTAuOSA3LjYgMTMuNSAyMi42IDUuOSAzMy40bC01NiA4MGMtNC4xIDUuOC0xMC41IDkuNS0xNy42IDEwLjFTNTIgMzE4IDQ3IDMxM0w3IDI3M2MtOS40LTkuNC05LjQtMjQuNiAwLTMzLjlzMjQuNi05LjQgMzMuOSAwbDE5LjggMTkuOCAzOS42LTU2LjZjNy42LTEwLjkgMjIuNi0xMy41IDMzLjQtNS45ek0yMjQgOTZjMC0xNy43IDE0LjMtMzIgMzItMzJsMjI0IDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJsLTIyNCAwYy0xNy43IDAtMzItMTQuMy0zMi0zMnptMCAxNjBjMC0xNy43IDE0LjMtMzIgMzItMzJsMjI0IDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJsLTIyNCAwYy0xNy43IDAtMzItMTQuMy0zMi0zMnpNMTYwIDQxNmMwLTE3LjcgMTQuMy0zMiAzMi0zMmwyODggMGMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMmwtMjg4IDBjLTE3LjcgMC0zMi0xNC4zLTMyLTMyek02NCAzNzZhNDAgNDAgMCAxIDEgMCA4MCA0MCA0MCAwIDEgMSAwLTgweiJdfSx6R2U9VUgsa0dlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InNhY2steG1hcmsiLGljb246WzUxMiw1MTIsW10sImU1NmEiLCJNMzI4IDExMmwtMTQ0IDAtMzcuMy03NC41Yy0xLjgtMy42LTIuNy03LjYtMi43LTExLjYgMC0xNC4zIDExLjYtMjUuOSAyNS45LTI1LjlMMzQyLjEgMGMxNC4zIDAgMjUuOSAxMS42IDI1LjkgMjUuOSAwIDQtLjkgOC0yLjcgMTEuNkwzMjggMTEyek0xNjkuNiAxNjBsMTcyLjggMCA0OC43IDQwLjZDNDU3LjYgMjU2IDQ5NiAzMzggNDk2IDQyNC41IDQ5NiA0NzIuOCA0NTYuOCA1MTIgNDA4LjUgNTEybC0zMDUuMSAwQzU1LjIgNTEyIDE2IDQ3Mi44IDE2IDQyNC41IDE2IDMzOCA1NC40IDI1NiAxMjAuOSAyMDAuNkwxNjkuNiAxNjB6TTMyMy45IDI4NC4xYy05LjQtOS40LTI0LjYtOS40LTMzLjkgMGwtMzMuOSAzMy45LTMzLjktMzMuOWMtOS40LTkuNC0yNC42LTkuNC0zMy45IDBzLTkuNCAyNC42IDAgMzMuOWwzMy45IDMzLjktMzMuOSAzMy45Yy05LjQgOS40LTkuNCAyNC42IDAgMzMuOXMyNC42IDkuNCAzMy45IDBsMzMuOS0zMy45IDMzLjkgMzMuOWM5LjQgOS40IDI0LjYgOS40IDMzLjkgMHM5LjQtMjQuNiAwLTMzLjlsLTMzLjktMzMuOSAzMy45LTMzLjljOS40LTkuNCA5LjQtMjQuNiAwLTMzLjl6Il19LFNHZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJoYXNodGFnIixpY29uOls1MTIsNTEyLFs2MjA5OF0sIjIzIiwiTTIxNC43IC43YzE3LjMgMy43IDI4LjMgMjAuNyAyNC42IDM4bC0xOS4xIDg5LjMgMTI2LjUgMCAyMi0xMDIuN0MzNzIuNCA4IDM4OS40LTMgNDA2LjcgLjdzMjguMyAyMC43IDI0LjYgMzhMNDEyLjIgMTI4IDQ4MCAxMjhjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJsLTgxLjYgMC0yNy40IDEyOCA2Ny44IDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJsLTgxLjYgMC0yMiAxMDIuN2MtMy43IDE3LjMtMjAuNyAyOC4zLTM4IDI0LjZzLTI4LjMtMjAuNy0yNC42LTM4bDE5LjEtODkuMy0xMjYuNSAwLTIyIDEwMi43Yy0zLjcgMTcuMy0yMC43IDI4LjMtMzggMjQuNnMtMjguMy0yMC43LTI0LjYtMzhMOTkuOCAzODQgMzIgMzg0Yy0xNy43IDAtMzItMTQuMy0zMi0zMnMxNC4zLTMyIDMyLTMybDgxLjYgMCAyNy40LTEyOC02Ny44IDBjLTE3LjcgMC0zMi0xNC4zLTMyLTMyczE0LjMtMzIgMzItMzJsODEuNiAwIDIyLTEwMi43QzE4MC40IDggMTk3LjQtMyAyMTQuNyAuN3pNMjA2LjQgMTkybC0yNy40IDEyOCAxMjYuNSAwIDI3LjQtMTI4LTEyNi41IDB6Il19LENHZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJ0cmFpbiIsaWNvbjpbMzg0LDUxMixbMTI4NjQ2XSwiZjIzOCIsIk0wIDk2QzAgNDMgNDMgMCA5NiAwTDI4OCAwYzUzIDAgOTYgNDMgOTYgOTZsMCAyNTZjMCA0MC4xLTI0LjYgNzQuNS01OS41IDg4LjhsNTMuOSA2My43YzguNiAxMC4xIDcuMyAyNS4zLTIuOCAzMy44cy0yNS4zIDcuMy0zMy44LTIuOGwtNzQtODcuNS0xNTEuMyAwLTc0IDg3LjVjLTguNiAxMC4xLTIzLjcgMTEuNC0zMy44IDIuOHMtMTEuNC0yMy43LTIuOC0zMy44bDUzLjktNjMuN0MyNC42IDQyNi41IDAgMzkyLjEgMCAzNTJMMCA5NnptNjQgMzJsMCA5NmMwIDE3LjcgMTQuMyAzMiAzMiAzMmwxOTIgMGMxNy43IDAgMzItMTQuMyAzMi0zMmwwLTk2YzAtMTcuNy0xNC4zLTMyLTMyLTMyTDk2IDk2Yy0xNy43IDAtMzIgMTQuMy0zMiAzMnpNMTkyIDM4NGEzMiAzMiAwIDEgMCAwLTY0IDMyIDMyIDAgMSAwIDAgNjR6Il19LF9HZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJnYW1lcGFkIixpY29uOls2NDAsNTEyLFtdLCJmMTFiIiwiTTQ0OCA2NGMxMDYgMCAxOTIgODYgMTkyIDE5MlM1NTQgNDQ4IDQ0OCA0NDhsLTI1NiAwQzg2IDQ0OCAwIDM2MiAwIDI1NlM4NiA2NCAxOTIgNjRsMjU2IDB6TTE5MiAxNzZjLTEzLjMgMC0yNCAxMC43LTI0IDI0bDAgMzItMzIgMGMtMTMuMyAwLTI0IDEwLjctMjQgMjRzMTAuNyAyNCAyNCAyNGwzMiAwIDAgMzJjMCAxMy4zIDEwLjcgMjQgMjQgMjRzMjQtMTAuNyAyNC0yNGwwLTMyIDMyIDBjMTMuMyAwIDI0LTEwLjcgMjQtMjRzLTEwLjctMjQtMjQtMjRsLTMyIDAgMC0zMmMwLTEzLjMtMTAuNy0yNC0yNC0yNHptMjQwIDk2YTMyIDMyIDAgMSAwIDAgNjQgMzIgMzIgMCAxIDAgMC02NHptNjQtOTZhMzIgMzIgMCAxIDAgMCA2NCAzMiAzMiAwIDEgMCAwLTY0eiJdfSxXSD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJmaWxlLWV4cG9ydCIsaWNvbjpbNTc2LDUxMixbImFycm93LXJpZ2h0LWZyb20tZmlsZSJdLCJmNTZlIiwiTTk2LjUgMGMtMzUuMyAwLTY0IDI4LjctNjQgNjRsMCAzODRjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMjU2IDBjMzUuMyAwIDY0LTI4LjcgNjQtNjRsMC05NiA3OC4xIDAtMzEgMzFjLTkuNCA5LjQtOS40IDI0LjYgMCAzMy45czI0LjYgOS40IDMzLjkgMGw3Mi03MmM5LjQtOS40IDkuNC0yNC42IDAtMzMuOWwtNzItNzJjLTkuNC05LjQtMjQuNi05LjQtMzMuOSAwcy05LjQgMjQuNiAwIDMzLjlsMzEgMzEtNzguMSAwIDAtMTMzLjVjMC0xNy02LjctMzMuMy0xOC43LTQ1LjNMMjkxLjIgMTguN0MyNzkuMiA2LjcgMjYzIDAgMjQ2IDBMOTYuNSAwek0zNTggMTc2bC05My41IDBjLTEzLjMgMC0yNC0xMC43LTI0LTI0TDI0MC41IDU4LjUgMzU4IDE3NnpNMjI0LjUgMzI4YzAtMTMuMyAxMC43LTI0IDI0LTI0bDEwNCAwIDAgNDgtMTA0IDBjLTEzLjMgMC0yNC0xMC43LTI0LTI0eiJdfSxUR2U9V0gsR0g9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZmFjZS1ncmltYWNlIixpY29uOls1MTIsNTEyLFsxMjg1NTYsImdyaW1hY2UiXSwiZjU3ZiIsIk0yNTYgNTEyYTI1NiAyNTYgMCAxIDAgMC01MTIgMjU2IDI1NiAwIDEgMCAwIDUxMnpNNDAwIDM1MmMwIDI1LjItMTkuNCA0NS44LTQ0IDQ3LjhsMC05NS43YzI0LjYgMiA0NCAyMi43IDQ0IDQ3Ljh6TTI3NiAzMDRsNDAgMCAwIDk2LTQwIDAgMC05NnptLTgwIDk2bDAtOTYgNDAgMCAwIDk2LTQwIDB6bS00MC05NS44bDAgOTUuN2MtMjQuNi0yLTQ0LTIyLjctNDQtNDcuOHMxOS40LTQ1LjggNDQtNDcuOHpNMTQ0IDIwOGEzMiAzMiAwIDEgMSA2NCAwIDMyIDMyIDAgMSAxIC02NCAwem0xOTItMzJhMzIgMzIgMCAxIDEgMCA2NCAzMiAzMiAwIDEgMSAwLTY0eiJdfSxMR2U9R0gsWUg9e3ByZWZpeDoiZmFzIixpY29uTmFtZToidHJhaW4tc3Vid2F5IixpY29uOlszODQsNTEyLFsic3Vid2F5Il0sImYyMzkiLCJNMCA5NkMwIDQzIDQzIDAgOTYgMEwyODggMGM1MyAwIDk2IDQzIDk2IDk2bDAgMjU2YzAgNDAuMS0yNC42IDc0LjUtNTkuNSA4OC44bDUzLjkgNjMuN2M4LjYgMTAuMSA3LjMgMjUuMy0yLjggMzMuOHMtMjUuMyA3LjMtMzMuOC0yLjhsLTc0LTg3LjUtMTUxLjMgMC03NCA4Ny41Yy04LjYgMTAuMS0yMy43IDExLjQtMzMuOCAyLjhzLTExLjQtMjMuNy0yLjgtMzMuOGw1My45LTYzLjdDMjQuNiA0MjYuNSAwIDM5Mi4xIDAgMzUyTDAgOTZ6bTY0IDMybDAgOTZjMCAxNy43IDE0LjMgMzIgMzIgMzJsNzIgMCAwLTE2MC03MiAwYy0xNy43IDAtMzIgMTQuMy0zMiAzMnpNMjE2IDI1Nmw3MiAwYzE3LjcgMCAzMi0xNC4zIDMyLTMybDAtOTZjMC0xNy43LTE0LjMtMzItMzItMzJsLTcyIDAgMCAxNjB6TTk2IDM4NGEzMiAzMiAwIDEgMCAwLTY0IDMyIDMyIDAgMSAwIDAgNjR6bTIyNC0zMmEzMiAzMiAwIDEgMCAtNjQgMCAzMiAzMiAwIDEgMCA2NCAweiJdfSwkR2U9WUgsWkg9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiY2lyY2xlLWRvdCIsaWNvbjpbNTEyLDUxMixbMTI4MjgwLCJkb3QtY2lyY2xlIl0sImYxOTIiLCJNMjU2IDUxMmEyNTYgMjU2IDAgMSAwIDAtNTEyIDI1NiAyNTYgMCAxIDAgMCA1MTJ6bTAtMzUyYTk2IDk2IDAgMSAxIDAgMTkyIDk2IDk2IDAgMSAxIDAtMTkyeiJdfSxBR2U9WkgsREdlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6Im9iamVjdC1ncm91cCIsaWNvbjpbNTc2LDUxMixbXSwiZjI0NyIsIk0zMiAxMTkuNEMxMi45IDEwOC40IDAgODcuNyAwIDY0IDAgMjguNyAyOC43IDAgNjQgMCA4Ny43IDAgMTA4LjQgMTIuOSAxMTkuNCAzMmwzMzcuMSAwYzExLjEtMTkuMSAzMS43LTMyIDU1LjQtMzIgMzUuMyAwIDY0IDI4LjcgNjQgNjQgMCAyMy43LTEyLjkgNDQuNC0zMiA1NS40bDAgMjczLjFjMTkuMSAxMS4xIDMyIDMxLjcgMzIgNTUuNCAwIDM1LjMtMjguNyA2NC02NCA2NC0yMy43IDAtNDQuNC0xMi45LTU1LjQtMzJsLTMzNy4xIDBjLTExLjEgMTkuMS0zMS43IDMyLTU1LjQgMzItMzUuMyAwLTY0LTI4LjctNjQtNjQgMC0yMy43IDEyLjktNDQuNCAzMi01NS40bDAtMjczLjF6bTQ0OCAwYy05LjctNS42LTE3LjgtMTMuNy0yMy40LTIzLjRMMTE5LjQgOTZjLTUuNiA5LjctMTMuNyAxNy44LTIzLjQgMjMuNGwwIDI3My4xYzkuNyA1LjYgMTcuOCAxMy43IDIzLjQgMjMuNGwzMzcuMSAwYzUuNi05LjcgMTMuNy0xNy44IDIzLjQtMjMuNGwwLTI3My4xek0xNDQgMTc2YzAtMTcuNyAxNC4zLTMyIDMyLTMybDExMiAwYzE3LjcgMCAzMiAxNC4zIDMyIDMybDAgNjRjMCAxNy43LTE0LjMgMzItMzIgMzJsLTExMiAwYy0xNy43IDAtMzItMTQuMy0zMi0zMmwwLTY0ek0yNTYgMzIwbDMyIDBjNDQuMiAwIDgwLTM1LjggODAtODBsMzIgMGMxNy43IDAgMzIgMTQuMyAzMiAzMmwwIDY0YzAgMTcuNy0xNC4zIDMyLTMyIDMybC0xMTIgMGMtMTcuNyAwLTMyLTE0LjMtMzItMzJsMC0xNnoiXX0sRUdlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InNoaXAiLGljb246WzY0MCw1MTIsWzEyODY3NF0sImYyMWEiLCJNMjcyIDBjLTI2LjUgMC00OCAyMS41LTQ4IDQ4bDAgMTYtMTYgMGMtNDQuMiAwLTgwIDM1LjgtODAgODBsMCAxMDguOC0yMS42IDguNmMtMTQuOCA1LjktMjIuNSAyMi40LTE3LjQgMzcuNSAxMC40IDMxLjMgMjYuOCA1OS4zIDQ3LjcgODMuMSAyMC4xLTkuMiA0MS43LTEzLjkgNjMuMy0xNCAzMy4xLS4yIDY2LjMgMTAuMiA5NC40IDMxLjRsMS42IDEuMiAwLTIxNS0xMDQgNDEuNiAwLTgzLjJjMC04LjggNy4yLTE2IDE2LTE2bDIyNCAwYzguOCAwIDE2IDcuMiAxNiAxNmwwIDgzLjItMTA0LTQxLjYgMCAyMTUgMS42LTEuMmMyNy41LTIwLjcgNTkuOS0zMS4yIDkyLjQtMzEuNCAyMi4zLS4xIDQ0LjYgNC41IDY1LjMgMTQgMjAuOS0yMy43IDM3LjMtNTEuOCA0Ny43LTgzLjEgNS0xNS4yLTIuNi0zMS42LTE3LjQtMzcuNUw1MTIgMjUyLjggNTEyIDE0NGMwLTQ0LjItMzUuOC04MC04MC04MGwtMTYgMCAwLTE2YzAtMjYuNS0yMS41LTQ4LTQ4LTQ4TDI3MiAwek00MDMuNCA0NzYuMWMyMS4zLTE2LjEgNDkuOS0xNi4xIDcxLjIgMCAxOSAxNC40IDQxLjkgMjguMiA2Ny4yIDMzLjMgMjYuNSA1LjQgNTQuMyAuOCA4MC43LTE5LjEgMTAuNi04IDEyLjctMjMgNC43LTMzLjZzLTIzLTEyLjctMzMuNi00LjdjLTE0LjkgMTEuMi0yOC42IDEzLjEtNDIuMyAxMC4zLTE0LjktMy0zMC45LTExLjktNDcuOC0yNC42LTM4LjQtMjktOTAuNS0yOS0xMjkgMC0yNCAxOC4xLTQwLjcgMjYuMy01NC41IDI2LjNzLTMwLjUtOC4yLTU0LjUtMjYuM2MtMzguNC0yOS05MC41LTI5LTEyOSAwLTIxLjYgMTYuMy00MS4zIDI1LjgtNTguOSAyNS43LTkuNi0uMS0xOS45LTMtMzEuMi0xMS41LTEwLjYtOC0yNS42LTUuOS0zMy42IDQuN1M3IDQ4Mi4zIDE3LjYgNDkwLjNjMTkuMSAxNC40IDM5LjQgMjEgNTkuOCAyMS4xIDMzLjkgLjIgNjQuMy0xNy40IDg4LjEtMzUuMyAyMS4zLTE2LjEgNDkuOS0xNi4xIDcxLjIgMCAyNC4yIDE4LjMgNTIuMyAzNS45IDgzLjQgMzUuOXM1OS4xLTE3LjcgODMuNC0zNS45eiJdfSxQR2U9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiYyIsaWNvbjpbMzg0LDUxMixbOTldLCI0MyIsIk0zMjkuMSAxNDIuOWMtNjIuNS02Mi41LTE1NS44LTYyLjUtMjE4LjMgMHMtNjIuNSAxNjMuOCAwIDIyNi4zIDE1NS44IDYyLjUgMjE4LjMgMGMxMi41LTEyLjUgMzIuOC0xMi41IDQ1LjMgMHMxMi41IDMyLjggMCA0NS4zYy04Ny41IDg3LjUtMjIxLjMgODcuNS0zMDguOCAwcy04Ny41LTIyOS4zIDAtMzE2LjggMjIxLjMtODcuNSAzMDguOCAwYzEyLjUgMTIuNSAxMi41IDMyLjggMCA0NS4zcy0zMi44IDEyLjUtNDUuMyAweiJdfSxYSD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJzcXVhcmUtcGhvbmUiLGljb246WzQ0OCw1MTIsWyJwaG9uZS1zcXVhcmUiXSwiZjA5OCIsIk02NCAzMkMyOC43IDMyIDAgNjAuNyAwIDk2TDAgNDE2YzAgMzUuMyAyOC43IDY0IDY0IDY0bDMyMCAwYzM1LjMgMCA2NC0yOC43IDY0LTY0bDAtMzIwYzAtMzUuMy0yOC43LTY0LTY0LTY0TDY0IDMyem04OCA5Ni43YzkuOC0yLjcgMjAuMSAyLjQgMjQgMTEuOGwyMC4zIDQ4LjdjMy40IDguMyAxLjEgMTcuOC01LjkgMjMuNWwtMjIuMSAxOGMxNi4yIDM1LjggNDQuNSA2NSA3OS42IDgyLjRsMTkuMy0yMy42YzUuNy02LjkgMTUuMi05LjMgMjMuNS01LjlsNDguNyAyMC4zYzkuNCAzLjkgMTQuNCAxNC4yIDExLjggMjRsLS44IDIuOGMtOC44IDMyLjMtNDAuMSA1OS45LTc4LjIgNTEuOC04Ny41LTE4LjUtMTU2LjMtODcuNC0xNzQuOS0xNzQuOS04LjEtMzguMSAxOS41LTY5LjQgNTEuOC03OC4ybDIuOC0uOHoiXX0sSUdlPVhILE5HZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJydWxlci1jb21iaW5lZCIsaWNvbjpbNDQ4LDUxMixbXSwiZjU0NiIsIk0xIDQ0MS43QzUuNSA0NjMuNSAyNC44IDQ4MCA0OCA0ODBsMzUyIDBjMjYuNSAwIDQ4LTIxLjUgNDgtNDhsMC05NmMwLTI2LjUtMjEuNS00OC00OC00OGwtNDggMCAwIDcyYzAgMTMuMy0xMC43IDI0LTI0IDI0cy0yNC0xMC43LTI0LTI0bDAtNzItNjQgMCAwIDcyYzAgMTMuMy0xMC43IDI0LTI0IDI0cy0yNC0xMC43LTI0LTI0bDAtNzItNzIgMGMtMTMuMyAwLTI0LTEwLjctMjQtMjRzMTAuNy0yNCAyNC0yNGw3MiAwIDAtNjQtNzIgMGMtMTMuMyAwLTI0LTEwLjctMjQtMjRzMTAuNy0yNCAyNC0yNGw3MiAwIDAtNDhjMC0yNi41LTIxLjUtNDgtNDgtNDhMNDggMzJDMjEuNSAzMiAwIDUzLjUgMCA4MEwwIDQzMmMwIDMuMyAuMyA2LjYgMSA5Ljd6Il19LGptPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImFycm93cy1yb3RhdGUiLGljb246WzUxMiw1MTIsWzEyODQ3MiwicmVmcmVzaCIsInN5bmMiXSwiZjAyMSIsIk02NS45IDIyOC41YzEzLjMtOTMgOTMuNC0xNjQuNSAxOTAuMS0xNjQuNSA1MyAwIDEwMSAyMS41IDEzNS44IDU2LjIgLjIgLjIgLjQgLjQgLjYgLjZsNy42IDcuMi00Ny45IDBjLTE3LjcgMC0zMiAxNC4zLTMyIDMyczE0LjMgMzIgMzIgMzJsMTI4IDBjMTcuNyAwIDMyLTE0LjMgMzItMzJsMC0xMjhjMC0xNy43LTE0LjMtMzItMzItMzJzLTMyIDE0LjMtMzIgMzJsMCA1My40LTExLjMtMTAuN0MzOTAuNSAyOC42IDMyNi41IDAgMjU2IDAgMTI3IDAgMjAuMyA5NS40IDIuNiAyMTkuNSAuMSAyMzcgMTIuMiAyNTMuMiAyOS43IDI1NS43czMzLjctOS43IDM2LjItMjcuMXptNDQzLjUgNjRjMi41LTE3LjUtOS43LTMzLjctMjcuMS0zNi4ycy0zMy43IDkuNy0zNi4yIDI3LjFjLTEzLjMgOTMtOTMuNCAxNjQuNS0xOTAuMSAxNjQuNS01MyAwLTEwMS0yMS41LTEzNS44LTU2LjItLjItLjItLjQtLjQtLjYtLjZsLTcuNi03LjIgNDcuOSAwYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMyTDMyIDMyMGMtOC41IDAtMTYuNyAzLjQtMjIuNyA5LjVTLS4xIDM0My43IDAgMzUyLjNsMSAxMjdjLjEgMTcuNyAxNC42IDMxLjkgMzIuMyAzMS43UzY1LjIgNDk2LjQgNjUgNDc4LjdsLS40LTUxLjUgMTAuNyAxMC4xYzQ2LjMgNDYuMSAxMTAuMiA3NC43IDE4MC43IDc0LjcgMTI5IDAgMjM1LjctOTUuNCAyNTMuNC0yMTkuNXoiXX0sRkdlPWptLE9HZT1qbSxLSD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJwZXJzb24tZHJlc3MiLGljb246WzM4NCw1MTIsWyJmZW1hbGUiXSwiZjE4MiIsIk0xMzYgMjRhNTYgNTYgMCAxIDEgMTEyIDAgNTYgNTYgMCAxIDEgLTExMiAwek0xMTIgMzg0bC0yNS44IDBjLTEwLjkgMC0xOC42LTEwLjctMTUuMi0yMS4xbDQzLTEyOS00OC4zIDY1LjFjLTEwLjUgMTQuMi0zMC42IDE3LjItNDQuOCA2LjZzLTE3LjItMzAuNi02LjYtNDQuOGw3MC41LTk1QzExMCAxMzIgMTQ5LjcgMTEyIDE5MiAxMTJzODIgMjAgMTA3LjIgNTMuOWw3MC41IDk1YzEwLjUgMTQuMiA3LjYgMzQuMi02LjYgNDQuOHMtMzQuMiA3LjYtNDQuOC02LjZMMjcwIDIzNCAzMTMgMzYyLjljMy41IDEwLjQtNC4zIDIxLjEtMTUuMiAyMS4xbC0yNS44IDAgMCAxMjhjMCAxNy43LTE0LjMgMzItMzIgMzJzLTMyLTE0LjMtMzItMzJsMC0xMjgtMzIgMCAwIDEyOGMwIDE3LjctMTQuMyAzMi0zMiAzMnMtMzItMTQuMy0zMi0zMmwwLTEyOHoiXX0sUkdlPUtILEJHZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJib29rLW9wZW4iLGljb246WzUxMiw1MTIsWzEyODIxNCwxMjgzNjZdLCJmNTE4IiwiTTI1NiAxNDEuM2wwIDMwOS4zIC41LS4yQzMxMS4xIDQyNy43IDM2OS43IDQxNiA0MjguOCA0MTZsMTkuMiAwIDAtMzIwLTE5LjIgMGMtNDIuMiAwLTg0LjEgOC40LTEyMy4xIDI0LjYtMTYuOCA3LTMzLjQgMTMuOS00OS43IDIwLjd6TTIzMC45IDYxLjVMMjU2IDcyIDI4MS4xIDYxLjVDMzI3LjkgNDIgMzc4LjEgMzIgNDI4LjggMzJMNDY0IDMyYzI2LjUgMCA0OCAyMS41IDQ4IDQ4bDAgMzUyYzAgMjYuNS0yMS41IDQ4LTQ4IDQ4bC0zNS4yIDBjLTUwLjcgMC0xMDAuOSAxMC0xNDcuNyAyOS41bC0xMi44IDUuM2MtNy45IDMuMy0xNi43IDMuMy0yNC42IDBsLTEyLjgtNS4zQzE4NC4xIDQ5MCAxMzMuOSA0ODAgODMuMiA0ODBMNDggNDgwYy0yNi41IDAtNDgtMjEuNS00OC00OEwwIDgwQzAgNTMuNSAyMS41IDMyIDQ4IDMybDM1LjIgMGM1MC43IDAgMTAwLjkgMTAgMTQ3LjcgMjkuNXoiXX0sSEdlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImZvbGRlci10cmVlIixpY29uOls1NzYsNTEyLFtdLCJmODAyIiwiTTQ4IDI0QzQ4IDEwLjcgMzcuMyAwIDI0IDBTMCAxMC43IDAgMjRMMCAzOTJjMCAzMC45IDI1LjEgNTYgNTYgNTZsMTg0IDAgMC00OC0xODQgMGMtNC40IDAtOC0zLjYtOC04bDAtMjMyIDE5MiAwIDAtNDgtMTkyIDAgMC04OHpNMzM2IDIyNGwxOTIgMGMyNi41IDAgNDgtMjEuNSA0OC00OGwwLTk2YzAtMjYuNS0yMS41LTQ4LTQ4LTQ4bC04Mi43IDBjLTguNSAwLTE2LjYtMy40LTIyLjYtOS40bC04LjYtOC42Yy05LTktMjEuMi0xNC4xLTMzLjktMTQuMUwzMzYgMGMtMjYuNSAwLTQ4IDIxLjUtNDggNDhsMCAxMjhjMCAyNi41IDIxLjUgNDggNDggNDh6bTAgMjg4bDE5MiAwYzI2LjUgMCA0OC0yMS41IDQ4LTQ4bDAtOTZjMC0yNi41LTIxLjUtNDgtNDgtNDhsLTgyLjcgMGMtOC41IDAtMTYuNi0zLjQtMjIuNi05LjRsLTguNi04LjZjLTktOS0yMS4yLTE0LjEtMzMuOS0xNC4xTDMzNiAyODhjLTI2LjUgMC00OCAyMS41LTQ4IDQ4bDAgMTI4YzAgMjYuNSAyMS41IDQ4IDQ4IDQ4eiJdfSxxR2U9e3ByZWZpeDoiZmFzIixpY29uTmFtZToidmlyZ28iLGljb246WzY0MCw1MTIsW10sImU4NTAiLCJNMzY4IDMyYzYxLjkgMCAxMTIgNTAuMSAxMTIgMTEybDAgMjYuOGMxNC41LTYuOSAzMC44LTEwLjggNDgtMTAuOCA2MS45IDAgMTEyIDUwLjEgMTEyIDExMlM1ODkuOSAzODQgNTI4IDM4NGwtNDggMCAwIDMyYzAgMTYuNiAxMi42IDMwLjIgMjguNyAzMS44bDYuNiAuM2MxNi4xIDEuNiAyOC43IDE1LjMgMjguNyAzMS44IDAgMTcuNy0xNC4zIDMyLTMyIDMyLTUzIDAtOTYtNDMtOTYtOTZsMC0zMi0xNiAwYy0xNy43IDAtMzItMTQuMy0zMi0zMnMxNC4zLTMyIDMyLTMybDE2IDAgMC0xNzZjMC0yNi41LTIxLjUtNDgtNDgtNDhzLTQ4IDIxLjUtNDggNDhsMCAzMDRjMCAxNy43LTE0LjMgMzItMzIgMzJzLTMyLTE0LjMtMzItMzJsMC0zMDRjMC0yNi41LTIxLjUtNDgtNDgtNDhzLTQ4IDIxLjUtNDggNDhsMCAzMDRjMCAxNy43LTE0LjMgMzItMzIgMzJzLTMyLTE0LjMtMzItMzJsMC0zMjBjMC0xNi42LTEyLjYtMzAuMi0yOC43LTMxLjhsLTYuNi0uM0M0NC42IDk0LjIgMzIgODAuNiAzMiA2NCAzMiA0Ni4zIDQ2LjMgMzIgNjQgMzIgOTEgMzIgMTE1LjMgNDMuMSAxMzIuNyA2MSAxNTIuNiA0MyAxNzkgMzIgMjA4IDMyIDIzOS4zIDMyIDI2Ny43IDQ0LjkgMjg4IDY1LjcgMzA4LjMgNDQuOSAzMzYuNiAzMiAzNjggMzJ6TTUyOCAyMjRjLTI2LjUgMC00OCAyMS41LTQ4IDQ4bDAgNDggNDggMGMyNi41IDAgNDgtMjEuNSA0OC00OHMtMjEuNS00OC00OC00OHoiXX0sUUg9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiYm94LWFyY2hpdmUiLGljb246WzUxMiw1MTIsWyJhcmNoaXZlIl0sImYxODciLCJNMCA2NEMwIDQ2LjMgMTQuMyAzMiAzMiAzMmw0NDggMGMxNy43IDAgMzIgMTQuMyAzMiAzMmwwIDMyYzAgMTcuNy0xNC4zIDMyLTMyIDMyTDMyIDEyOEMxNC4zIDEyOCAwIDExMy43IDAgOTZMMCA2NHpNMzIgMTc2bDQ0OCAwIDAgMjQwYzAgMzUuMy0yOC43IDY0LTY0IDY0TDk2IDQ4MGMtMzUuMyAwLTY0LTI4LjctNjQtNjRsMC0yNDB6bTE1MiA2NGMtMTMuMyAwLTI0IDEwLjctMjQgMjRzMTAuNyAyNCAyNCAyNGwxNDQgMGMxMy4zIDAgMjQtMTAuNyAyNC0yNHMtMTAuNy0yNC0yNC0yNGwtMTQ0IDB6Il19LFZHZT1RSCxqR2U9e3ByZWZpeDoiZmFzIixpY29uTmFtZToidGVudC1hcnJvdy1kb3duLXRvLWxpbmUiLGljb246WzU3Niw1MTIsW10sImU1N2UiLCJNMTg1IDEyMWM5LjQtOS40IDkuNC0yNC42IDAtMzMuOXMtMjQuNi05LjQtMzMuOSAwbC0zMSAzMSAwLTEwMi4xQzEyMCAyLjcgMTA5LjMtOCA5Ni04UzcyIDIuNyA3MiAxNmwwIDEwMi4xLTMxLTMxQzMxLjYgNzcuNyAxNi40IDc3LjcgNyA4N1MtMi4zIDExMS42IDcgMTIxbDcyIDcyYzkuNCA5LjQgMjQuNiA5LjQgMzMuOSAwbDcyLTcyek0xNTUuOCAyNjAuNkwxMzIuMSA0NDggMzIgNDQ4Yy0xNy43IDAtMzIgMTQuMy0zMiAzMnMxNC4zIDMyIDMyIDMybDUxMiAwYzE3LjcgMCAzMi0xNC4zIDMyLTMyIDAtMi44LS40LTUuNS0xLThMNTQ4LjIgMjYwLjdjLTEuMi05LjctNi45LTE4LjQtMTUuMy0yMy40TDM2Ny40IDEzNy45Yy0xMC4yLTYuMS0yMi45LTYuMS0zMy4xIC4xTDE3MC45IDIzNy4zYy04LjMgNS4xLTEzLjkgMTMuNy0xNS4xIDIzLjN6TTQ0OCA0NDhsLTk3LjEgMCAwLTE0OS40YzAtNS45IDQuNy0xMC42IDEwLjYtMTAuNiA0IDAgNy43IDIuMyA5LjUgNS45TDQ0OCA0NDh6Il19LFVHZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJxcmNvZGUiLGljb246WzQ0OCw1MTIsW10sImYwMjkiLCJNNjQgMTYwbDY0IDAgMC02NC02NCAwIDAgNjR6TTAgODBDMCA1My41IDIxLjUgMzIgNDggMzJsOTYgMGMyNi41IDAgNDggMjEuNSA0OCA0OGwwIDk2YzAgMjYuNS0yMS41IDQ4LTQ4IDQ4bC05NiAwYy0yNi41IDAtNDgtMjEuNS00OC00OEwwIDgwek02NCA0MTZsNjQgMCAwLTY0LTY0IDAgMCA2NHpNMCAzMzZjMC0yNi41IDIxLjUtNDggNDgtNDhsOTYgMGMyNi41IDAgNDggMjEuNSA0OCA0OGwwIDk2YzAgMjYuNS0yMS41IDQ4LTQ4IDQ4bC05NiAwYy0yNi41IDAtNDgtMjEuNS00OC00OGwwLTk2ek0zMjAgOTZsMCA2NCA2NCAwIDAtNjQtNjQgMHpNMzA0IDMybDk2IDBjMjYuNSAwIDQ4IDIxLjUgNDggNDhsMCA5NmMwIDI2LjUtMjEuNSA0OC00OCA0OGwtOTYgMGMtMjYuNSAwLTQ4LTIxLjUtNDgtNDhsMC05NmMwLTI2LjUgMjEuNS00OCA0OC00OHpNMjg4IDM1MmEzMiAzMiAwIDEgMSAwLTY0IDMyIDMyIDAgMSAxIDAgNjR6bTAgNjRjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzItMzItMTQuMy0zMi0zMiAxNC4zLTMyIDMyLTMyem05NiAzMmMwLTE3LjcgMTQuMy0zMiAzMi0zMnMzMiAxNC4zIDMyIDMyLTE0LjMgMzItMzIgMzItMzItMTQuMy0zMi0zMnptMzItOTZhMzIgMzIgMCAxIDEgMC02NCAzMiAzMiAwIDEgMSAwIDY0em0tMzIgMzJhMzIgMzIgMCAxIDEgLTY0IDAgMzIgMzIgMCAxIDEgNjQgMHoiXX0sV0dlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImRyYWdvbiIsaWNvbjpbNjQwLDUxMixbMTI4MDA5XSwiZjZkNSIsIk0zNTIgMTI0LjVsLTUxLjktMTNjLTYuNS0xLjYtMTEuMy03LjEtMTItMTMuOHMyLjgtMTMuMSA4LjctMTYuMWw0MC44LTIwLjQtNDMuMy0zMi41Yy01LjUtNC4xLTcuOC0xMS4zLTUuNi0xNy45UzI5Ny4xIDAgMzA0IDBMNDY0IDBjMzAuMiAwIDU4LjcgMTQuMiA3Ni44IDM4LjRsNTcuNiA3Ni44YzYuMiA4LjMgOS42IDE4LjQgOS42IDI4LjggMCAyNi41LTIxLjUgNDgtNDggNDhsLTIxLjUgMGMtMTcgMC0zMy4zLTYuNy00NS4zLTE4LjdsLTEzLjMtMTMuMy0zMiAwIDAgMjEuNWMwIDI0LjggMTIuOCA0Ny45IDMzLjggNjEuMWwxMDYuNiA2Ni42YzMyLjEgMjAuMSA1MS42IDU1LjIgNTEuNiA5My4xIDAgNjAuNi00OS4xIDEwOS44LTEwOS44IDEwOS44TDMyLjMgNTEyYy0zLjMgMC02LjYtLjQtOS42LTEuNC05LjItMi44LTE2LjctOS42LTIwLjQtMTguNi0xLjMtMy4zLTIuMi02LjktMi4zLTEwLjctLjItMy43IC4zLTcuMyAxLjMtMTAuNyAyLjgtOS4yIDkuNi0xNi43IDE4LjYtMjAuNCAzLTEuMiA2LjItMiA5LjUtMi4yTDQzMy4zIDQxMmM4LjMtLjcgMTQuNy03LjcgMTQuNy0xNi4xIDAtNC4zLTEuNy04LjQtNC43LTExLjRsLTQ0LjQtNDQuNGMtMzAtMzAtNDYuOS03MC43LTQ2LjktMTEzLjFsMC0xMDIuNXpNNTEyIDcyLjNjMC0uMSAwLS4yIDAtLjNzMC0uMiAwLS4zbDAgLjZ6bS0xLjMgNy40TDQ2NC4zIDY4LjFjLS4yIDEuMy0uMyAyLjYtLjMgMy45IDAgMTMuMyAxMC43IDI0IDI0IDI0IDEwLjYgMCAxOS41LTYuOCAyMi43LTE2LjN6TTEzMC45IDExNi41YzE2LjMtMTQuNSA0MC40LTE2LjIgNTguNS00LjFsMTMwLjYgODcgMCAyNy41YzAgMzIuOCA4LjQgNjQuOCAyNCA5M2wtMjMyIDBjLTYuNyAwLTEyLjctNC4yLTE1LTEwLjRzLS41LTEzLjMgNC42LTE3LjdMMTcxIDIzMi4zIDE4LjQgMjU1LjhjLTcgMS4xLTEzLjktMi42LTE2LjktOVMuMSAyMzIuOCA1LjQgMjI4TDEzMC45IDExNi41eiJdfSxKSD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJob3VyZ2xhc3MtZW5kIixpY29uOlszODQsNTEyLFs4OTg3LCJob3VyZ2xhc3MtMyJdLCJmMjUzIiwiTTMyIDBDMTQuMyAwIDAgMTQuMyAwIDMyUzE0LjMgNjQgMzIgNjRsMCAxMWMwIDQyLjQgMTYuOSA4My4xIDQ2LjkgMTEzLjFsNjcuOSA2Ny45LTY3LjkgNjcuOUM0OC45IDM1My45IDMyIDM5NC42IDMyIDQzN2wwIDExYy0xNy43IDAtMzIgMTQuMy0zMiAzMnMxNC4zIDMyIDMyIDMybDMyMCAwYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMybDAtMTFjMC00Mi40LTE2LjktODMuMS00Ni45LTExMy4xbC02Ny45LTY3LjkgNjcuOS02Ny45YzMwLTMwIDQ2LjktNzAuNyA0Ni45LTExMy4xbDAtMTFjMTcuNyAwIDMyLTE0LjMgMzItMzJTMzY5LjcgMCAzNTIgMEwzMiAwek05NiA3NWwwLTExIDE5MiAwIDAgMTFjMCAyNS41LTEwLjEgNDkuOS0yOC4xIDY3LjlsLTY3LjkgNjcuOS02Ny45LTY3LjlDMTA2LjEgMTI0LjkgOTYgMTAwLjQgOTYgNzV6Il19LEdHZT1KSCxtbD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJncmlwIixpY29uOls1MTIsNTEyLFs1ODExOSwiZ3JpZC1ob3Jpem9udGFsIiwiZ3JpcC1ob3Jpem9udGFsIl0sImY1OGQiLCJNODggOTZjMjIuMSAwIDQwIDE3LjkgNDAgNDBsMCA0OGMwIDIyLjEtMTcuOSA0MC00MCA0MGwtNDggMGMtMjIuMSAwLTQwLTE3LjktNDAtNDBsMC00OGMwLTIyLjEgMTcuOS00MCA0MC00MGw0OCAwek0yODAgMjI0bC00OCAwYy0yMi4xIDAtNDAtMTcuOS00MC00MGwwLTQ4YzAtMjIuMSAxNy45LTQwIDQwLTQwbDQ4IDBjMjIuMSAwIDQwIDE3LjkgNDAgNDBsMCA0OGMwIDIyLjEtMTcuOSA0MC00MCA0MHptMTkyIDBsLTQ4IDBjLTIyLjEgMC00MC0xNy45LTQwLTQwbDAtNDhjMC0yMi4xIDE3LjktNDAgNDAtNDBsNDggMGMyMi4xIDAgNDAgMTcuOSA0MCA0MGwwIDQ4YzAgMjIuMS0xNy45IDQwLTQwIDQwem0wIDE5MmwtNDggMGMtMjIuMSAwLTQwLTE3LjktNDAtNDBsMC00OGMwLTIyLjEgMTcuOS00MCA0MC00MGw0OCAwYzIyLjEgMCA0MCAxNy45IDQwIDQwbDAgNDhjMCAyMi4xLTE3LjkgNDAtNDAgNDB6TTI4MCAyODhjMjIuMSAwIDQwIDE3LjkgNDAgNDBsMCA0OGMwIDIyLjEtMTcuOSA0MC00MCA0MGwtNDggMGMtMjIuMSAwLTQwLTE3LjktNDAtNDBsMC00OGMwLTIyLjEgMTcuOS00MCA0MC00MGw0OCAwek04OCA0MTZsLTQ4IDBjLTIyLjEgMC00MC0xNy45LTQwLTQwbDAtNDhjMC0yMi4xIDE3LjktNDAgNDAtNDBsNDggMGMyMi4xIDAgNDAgMTcuOSA0MCA0MGwwIDQ4YzAgMjIuMS0xNy45IDQwLTQwIDQweiJdfSxZR2U9bWwsWkdlPW1sLGVxPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImJvcmRlci10b3AtbGVmdCIsaWNvbjpbNDQ4LDUxMixbImJvcmRlci1zdHlsZSJdLCJmODUzIiwiTTAgNDQ4YzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJsMC0zNTIgMzUyIDBjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJMNjQgMzJDMjguNyAzMiAwIDYwLjcgMCA5NkwwIDQ0OHptMTI4IDBjMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMi0xNC4zLTMyLTMyLTMyLTMyIDE0LjMtMzIgMzJ6bTEyOCAwYzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzItMTQuMy0zMi0zMi0zMi0zMiAxNC4zLTMyIDMyem0xNjAgMzJjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzItMzIgMTQuMy0zMiAzMiAxNC4zIDMyIDMyIDMyek0zODQgMTkyYTMyIDMyIDAgMSAwIDY0IDAgMzIgMzIgMCAxIDAgLTY0IDB6bTMyIDE2MGEzMiAzMiAwIDEgMCAwLTY0IDMyIDMyIDAgMSAwIDAgNjR6Il19LFhHZT1lcSx0cT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJsaXN0LXVsIixpY29uOls1MTIsNTEyLFsibGlzdC1kb3RzIl0sImYwY2EiLCJNNDggMTQ0YTQ4IDQ4IDAgMSAwIDAtOTYgNDggNDggMCAxIDAgMCA5NnpNMTkyIDY0Yy0xNy43IDAtMzIgMTQuMy0zMiAzMnMxNC4zIDMyIDMyIDMybDI4OCAwYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMyTDE5MiA2NHptMCAxNjBjLTE3LjcgMC0zMiAxNC4zLTMyIDMyczE0LjMgMzIgMzIgMzJsMjg4IDBjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJsLTI4OCAwem0wIDE2MGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJzMTQuMyAzMiAzMiAzMmwyODggMGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMmwtMjg4IDB6TTQ4IDQ2NGE0OCA0OCAwIDEgMCAwLTk2IDQ4IDQ4IDAgMSAwIDAgOTZ6TTk2IDI1NmE0OCA0OCAwIDEgMCAtOTYgMCA0OCA0OCAwIDEgMCA5NiAweiJdfSxLR2U9dHEsUUdlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InBlb3BsZS1yb2JiZXJ5IixpY29uOls1NzYsNTEyLFtdLCJlNTM2IiwiTTQ4OC4yIDU5LjFDNDc4LjEgOTkuNiA0NDEuNyAxMjggNDAwIDEyOHMtNzguMS0yOC40LTg4LjItNjguOUwzMDMgMjQuMkMyOTguOCA3LjEgMjgxLjQtMy4zIDI2NC4yIDFTMjM2LjcgMjIuNiAyNDEgMzkuOGw4LjcgMzQuOWMxMSA0NCA0MC4yIDc5LjYgNzguMyA5OS42TDMyOCA0ODBjMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMmwwLTEyOCAxNiAwIDAgMTI4YzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJsMC0zMDUuN2MzOC4xLTIwIDY3LjMtNTUuNiA3OC4zLTk5LjZMNTU5IDM5LjhjNC4zLTE3LjEtNi4xLTM0LjUtMjMuMy0zOC44UzUwMS4yIDcuMSA0OTcgMjQuMmwtOC43IDM0Ljl6TTQwMCA5NmE0OCA0OCAwIDEgMCAwLTk2IDQ4IDQ4IDAgMSAwIDAgOTZ6TTgwIDk2YTQ4IDQ4IDAgMSAwIDAtOTYgNDggNDggMCAxIDAgMCA5NnptLTggMzJjLTM1LjMgMC02NCAyOC43LTY0IDY0bDAgOTYgMCAuNiAwIDE5MS40YzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJsMC0xMjggMTYgMCAwIDEyOGMwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMybDAtMjI3LjMgMTMgMjAuNWM1LjkgOS4yIDE2LjEgMTQuOSAyNyAxNC45bDQ4IDBjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJsLTMwLjQgMC0zNy40LTU4LjlDMTU3LjYgMTQyIDEzMi4xIDEyOCAxMDQuNyAxMjhMNzIgMTI4eiJdfSxKR2U9e3ByZWZpeDoiZmFzIixpY29uTmFtZToibW9iaWxlLWJ1dHRvbiIsaWNvbjpbMzg0LDUxMixbXSwiZjEwYiIsIk04MCAwQzQ0LjcgMCAxNiAyOC43IDE2IDY0bDAgMzg0YzAgMzUuMyAyOC43IDY0IDY0IDY0bDIyNCAwYzM1LjMgMCA2NC0yOC43IDY0LTY0bDAtMzg0YzAtMzUuMy0yOC43LTY0LTY0LTY0TDgwIDB6TTE5MiA0NjRjLTE3LjcgMC0zMi0xNC4zLTMyLTMyczE0LjMtMzIgMzItMzIgMzIgMTQuMyAzMiAzMi0xNC4zIDMyLTMyIDMyeiJdfSxVbT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJhcnJvdy1kb3duLWEteiIsaWNvbjpbNTEyLDUxMixbInNvcnQtYWxwaGEtYXNjIiwic29ydC1hbHBoYS1kb3duIl0sImYxNWQiLCJNMjMwLjYgMzkwLjZsLTgwIDgwYy0xMi41IDEyLjUtMzIuOCAxMi41LTQ1LjMgMGwtODAtODBjLTEyLjUtMTIuNS0xMi41LTMyLjggMC00NS4zczMyLjgtMTIuNSA0NS4zIDBMOTYgMzcwLjcgOTYgNjRjMC0xNy43IDE0LjMtMzIgMzItMzJzMzIgMTQuMyAzMiAzMmwwIDMwNi43IDI1LjQtMjUuNGMxMi41LTEyLjUgMzIuOC0xMi41IDQ1LjMgMHMxMi41IDMyLjggMCA0NS4zem0xODItMzQwLjljNTAuNyAxMDEuMyA3Ny4zIDE1NC43IDgwIDE2MCA3LjkgMTUuOCAxLjUgMzUtMTQuMyA0Mi45cy0zNSAxLjUtNDIuOS0xNC4zbC03LjItMTQuMy04OC40IDAtNy4yIDE0LjNjLTcuOSAxNS44LTI3LjEgMjIuMi00Mi45IDE0LjNzLTIyLjItMjcuMS0xNC4zLTQyLjljMi43LTUuMyAyOS4zLTU4LjcgODAtMTYwIDUuNC0xMC44IDE2LjUtMTcuNyAyOC42LTE3LjdzMjMuMiA2LjggMjguNiAxNy43ek0zODQgMTM1LjZsLTIwLjIgNDAuNCA0MC40IDAtMjAuMi00MC40ek0yODggMzIwYzAtMTcuNyAxNC4zLTMyIDMyLTMybDEyOCAwYzEyLjkgMCAyNC42IDcuOCAyOS42IDE5LjhzMi4yIDI1LjctNi45IDM0LjlMMzk3LjMgNDE2IDQ0OCA0MTZjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJsLTEyOCAwYy0xMi45IDAtMjQuNi03LjgtMjkuNi0xOS44cy0yLjItMjUuNyA2LjktMzQuOWw3My40LTczLjQtNTAuNyAwYy0xNy43IDAtMzItMTQuMy0zMi0zMnoiXX0sZVllPVVtLHRZZT1VbSxhWWU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToibW9uZXktYmlsbCIsaWNvbjpbNTEyLDUxMixbXSwiZjBkNiIsIk02NCA2NEMyOC43IDY0IDAgOTIuNyAwIDEyOEwwIDM4NGMwIDM1LjMgMjguNyA2NCA2NCA2NGwzODQgMGMzNS4zIDAgNjQtMjguNyA2NC02NGwwLTI1NmMwLTM1LjMtMjguNy02NC02NC02NEw2NCA2NHptMTkyIDk2YTk2IDk2IDAgMSAxIDAgMTkyIDk2IDk2IDAgMSAxIDAtMTkyem0xOTIgMjRjMCA0LjQtMy42IDguMS04IDcuNS0yOS0zLjYtNTEuOS0yNi42LTU1LjUtNTUuNS0uNS00LjQgMy4xLTggNy41LThsNDggMGM0LjQgMCA4IDMuNiA4IDhsMCA0OHpNNjQgMzI4YzAtNC40IDMuNi04LjEgOC03LjUgMjkgMy42IDUxLjkgMjYuNiA1NS41IDU1LjUgLjUgNC40LTMuMSA4LTcuNSA4bC00OCAwYy00LjQgMC04LTMuNi04LThsMC00OHptOC0xMzYuNWMtNC40IC41LTgtMy4xLTgtNy41bDAtNDhjMC00LjQgMy42LTggOC04bDQ4IDBjNC40IDAgOC4xIDMuNiA3LjUgOC0zLjYgMjktMjYuNiA1MS45LTU1LjUgNTUuNXptMzY4IDEyOWM0LjQtLjUgOCAzLjEgOCA3LjVsMCA0OGMwIDQuNC0zLjYgOC04IDhsLTQ4IDBjLTQuNCAwLTguMS0zLjYtNy41LTggMy42LTI5IDI2LjYtNTEuOSA1NS41LTU1LjV6Il19LGFxPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImNpcmNsZS1taW51cyIsaWNvbjpbNTEyLDUxMixbIm1pbnVzLWNpcmNsZSJdLCJmMDU2IiwiTTI1NiA1MTJhMjU2IDI1NiAwIDEgMCAwLTUxMiAyNTYgMjU2IDAgMSAwIDAgNTEyek0xNjggMjMybDE3NiAwYzEzLjMgMCAyNCAxMC43IDI0IDI0cy0xMC43IDI0LTI0IDI0bC0xNzYgMGMtMTMuMyAwLTI0LTEwLjctMjQtMjRzMTAuNy0yNCAyNC0yNHoiXX0saVllPWFxLGlxPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImFycm93LXBvaW50ZXIiLGljb246WzQ0OCw1MTIsWyJtb3VzZS1wb2ludGVyIl0sImYyNDUiLCJNNzcuMyAyLjVjOC4xLTQuMSAxNy45LTMuMiAyNS4xIDIuM2wzMjAgMjM5LjljOC4zIDYuMiAxMS42IDE3IDguNCAyNi44cy0xMi40IDE2LjQtMjIuOCAxNi40bC0xNTIuMyAwIDg4LjkgMTc3LjdjNy45IDE1LjggMS41IDM1LTE0LjMgNDIuOXMtMzUgMS41LTQyLjktMTQuM2wtODguOS0xNzcuNy05MS4zIDEyMS44Yy02LjIgOC4zLTE3IDExLjYtMjYuOCA4LjRTNjQgNDM0LjMgNjQgNDI0TDY0IDI0YzAtOS4xIDUuMS0xNy40IDEzLjMtMjEuNXoiXX0sclllPWlxLHJxPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InNxdWFyZS1zaGFyZS1ub2RlcyIsaWNvbjpbNDQ4LDUxMixbInNoYXJlLWFsdC1zcXVhcmUiXSwiZjFlMSIsIk02NCAzMkMyOC43IDMyIDAgNjAuNyAwIDk2TDAgNDE2YzAgMzUuMyAyOC43IDY0IDY0IDY0bDMyMCAwYzM1LjMgMCA2NC0yOC43IDY0LTY0bDAtMzIwYzAtMzUuMy0yOC43LTY0LTY0LTY0TDY0IDMyek0zNjggMTYwYzAgMzUuMy0yOC43IDY0LTY0IDY0LTE1LjQgMC0yOS41LTUuNC00MC42LTE0LjVsLTg1LjMgNDYuNSA4NS4zIDQ2LjVjMTEtOS4xIDI1LjItMTQuNSA0MC42LTE0LjUgMzUuMyAwIDY0IDI4LjcgNjQgNjRzLTI4LjcgNjQtNjQgNjQtNjQtMjguNy02NC02NGMwLTIuNSAuMS00LjkgLjQtNy4zTDE1OC41IDMwMGMtMTEuNyAxMi4zLTI4LjIgMjAtNDYuNSAyMC0zNS4zIDAtNjQtMjguNy02NC02NHMyOC43LTY0IDY0LTY0YzE4LjMgMCAzNC44IDcuNyA0Ni41IDIwbDgxLjktNDQuN2MtLjMtMi40LS40LTQuOS0uNC03LjMgMC0zNS4zIDI4LjctNjQgNjQtNjRzNjQgMjguNyA2NCA2NHoiXX0sc1llPXJxLHNxPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InRhYmxlLWNlbGxzLWxhcmdlIixpY29uOls0NDgsNTEyLFsidGgtbGFyZ2UiXSwiZjAwOSIsIk0zODQgOTZsLTEyOCAwIDAgMTI4IDEyOCAwIDAtMTI4em02NCAxMjhsMCAxOTJjMCAzNS4zLTI4LjcgNjQtNjQgNjRMNjQgNDgwYy0zNS4zIDAtNjQtMjguNy02NC02NEwwIDk2QzAgNjAuNyAyOC43IDMyIDY0IDMybDMyMCAwYzM1LjMgMCA2NCAyOC43IDY0IDY0bDAgMTI4ek02NCAyODhsMCAxMjggMTI4IDAgMC0xMjgtMTI4IDB6bTEyOC02NGwwLTEyOC0xMjggMCAwIDEyOCAxMjggMHptNjQgNjRsMCAxMjggMTI4IDAgMC0xMjgtMTI4IDB6Il19LG5ZZT1zcSxvWWU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiY2F0IixpY29uOls1NzYsNTEyLFsxMjgwMDhdLCJmNmJlIiwiTTY0IDk2YzUzIDAgOTYgNDMgOTYgOTZsMCA4NS44YzI5LjctNDQuNyA3Ny44LTc2LjIgMTMzLjQtODQgMjUuNiA2MCA4NS4yIDEwMi4xIDE1NC42IDEwMi4xIDEwLjkgMCAyMS42LTEuMSAzMi0zLjFMNDgwIDQ4MGMwIDE3LjctMTQuMyAzMi0zMiAzMnMtMzItMTQuMy0zMi0zMmwwLTE0MC44LTEzNiAxMDguOCA1NiAwYzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMybC0xNDQgMGMtNTMgMC05Ni00My05Ni05NmwwLTIyNGMwLTE2LjYtMTIuNi0zMC4yLTI4LjctMzEuOGwtNi42LS4zQzQ0LjYgMTU4LjIgMzIgMTQ0LjYgMzIgMTI4IDMyIDExMC4zIDQ2LjMgOTYgNjQgOTZ6TTUzMy44IDMuMkM1NDQuMi01LjUgNTYwIDEuOSA1NjAgMTUuNUw1NjAgMTI4YzAgNjEuOS01MC4xIDExMi0xMTIgMTEyUzMzNiAxODkuOSAzMzYgMTI4bDAtMTEyLjVjMC0xMy42IDE1LjgtMjEgMjYuMi0xMi4zTDQxNiA0OCA0ODAgNDggNTMzLjggMy4yek00MDAgMTA4YTIwIDIwIDAgMSAwIDAgNDAgMjAgMjAgMCAxIDAgMC00MHptOTYgMGEyMCAyMCAwIDEgMCAwIDQwIDIwIDIwIDAgMSAwIDAtNDB6Il19LGxZZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJjYWxlbmRhci13ZWVrIixpY29uOls0NDgsNTEyLFtdLCJmNzg0IiwiTTEyOCAwYzE3LjcgMCAzMiAxNC4zIDMyIDMybDAgMzIgMTI4IDAgMC0zMmMwLTE3LjcgMTQuMy0zMiAzMi0zMnMzMiAxNC4zIDMyIDMybDAgMzIgMzIgMGMzNS4zIDAgNjQgMjguNyA2NCA2NGwwIDI4OGMwIDM1LjMtMjguNyA2NC02NCA2NEw2NCA0ODBjLTM1LjMgMC02NC0yOC43LTY0LTY0TDAgMTI4QzAgOTIuNyAyOC43IDY0IDY0IDY0bDMyIDAgMC0zMmMwLTE3LjcgMTQuMy0zMiAzMi0zMnptMCAyNTZjLTE3LjcgMC0zMiAxNC4zLTMyIDMybDAgNjRjMCAxNy43IDE0LjMgMzIgMzIgMzJsMTkyIDBjMTcuNyAwIDMyLTE0LjMgMzItMzJsMC02NGMwLTE3LjctMTQuMy0zMi0zMi0zMmwtMTkyIDB6Il19LGNZZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJjb2RlLWNvbXBhcmUiLGljb246WzUxMiw1MTIsW10sImUxM2EiLCJNMTk4LjggMS44YzktMy43IDE5LjMtMS43IDI2LjIgNS4ybDU2IDU2YzkuNCA5LjQgOS40IDI0LjYgMCAzMy45bC01NiA1NmMtNi45IDYuOS0xNy4yIDguOS0yNi4yIDUuMlMxODQgMTQ1LjcgMTg0IDEzNmwwLTI0LTI0IDBjLTE3LjcgMC0zMiAxNC4zLTMyIDMybDAgMjE0LjdjMjguMyAxMi4zIDQ4IDQwLjUgNDggNzMuMyAwIDQ0LjItMzUuOCA4MC04MCA4MHMtODAtMzUuOC04MC04MGMwLTMyLjggMTkuNy02MSA0OC03My4zTDY0IDE0NGMwLTUzIDQzLTk2IDk2LTk2bDI0IDAgMC0yNGMwLTkuNyA1LjgtMTguNSAxNC44LTIyLjJ6TTM5MiA4MGEyNCAyNCAwIDEgMCA0OCAwIDI0IDI0IDAgMSAwIC00OCAwem0tOCA3My4zYy0yOC4zLTEyLjMtNDgtNDAuNS00OC03My4zIDAtNDQuMiAzNS44LTgwIDgwLTgwczgwIDM1LjggODAgODBjMCAzMi44LTE5LjcgNjEtNDggNzMuM0w0NDggMzY4YzAgNTMtNDMgOTYtOTYgOTZsLTI0IDAgMCAyNGMwIDkuNy01LjggMTguNS0xNC44IDIyLjJzLTE5LjMgMS43LTI2LjItNS4ybC01Ni01NmMtOS40LTkuNC05LjQtMjQuNiAwLTMzLjlsNTYtNTZjNi45LTYuOSAxNy4yLTguOSAyNi4yLTUuMlMzMjggMzY2LjMgMzI4IDM3NmwwIDI0IDI0IDBjMTcuNyAwIDMyLTE0LjMgMzItMzJsMC0yMTQuN3pNNzIgNDMyYTI0IDI0IDAgMSAwIDQ4IDAgMjQgMjQgMCAxIDAgLTQ4IDB6Il19LGRZZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJsZW8iLGljb246WzUxMiw1MTIsW10sImU4NGEiLCJNMjYwIDBjNzIuOSAwIDEzMiA1OS4xIDEzMiAxMzJsMCA1LjQtLjEgMS40LTIzLjggMjcwYy40IDIxLjcgMTguMiAzOS4yIDQwIDM5LjIgMjIuMSAwIDQwLTE3LjkgNDAtNDBsMC00MGMwLTE3LjcgMTQuMy0zMiAzMi0zMnMzMiAxNC4zIDMyIDMybDAgNDBjMCA1Ny40LTQ2LjYgMTA0LTEwNCAxMDRTMzA0IDQ2NS40IDMwNCA0MDhsMC0xLjQgLjEtMS40IDIzLjktMjcwLjYgMC0yLjZjMC0zNy42LTMwLjQtNjgtNjgtNjhzLTY4IDMwLjQtNjggNjhsMCA0YzAgMy43IC4zIDcuMyAuOCAxMWwyOS43IDE5My40Yy45IDYuMSAxLjQgMTIuMiAxLjQgMTguNGwwIDkuMmMwIDYxLjktNTAuMSAxMTItMTEyIDExMlMwIDQyOS45IDAgMzY4IDUwLjEgMjU2IDExMiAyNTZjMTEuNyAwIDIzIDEuOCAzMy43IDUuMUwxMjkuNiAxNTYuN2MtMS4xLTYuOC0xLjYtMTMuOC0xLjYtMjAuN2wwLTRDMTI4IDU5LjEgMTg3LjEgMCAyNjAgMHpNMTEyIDMyMGE0OCA0OCAwIDEgMCAwIDk2IDQ4IDQ4IDAgMSAwIDAtOTZ6Il19LGhZZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJyb2FkLWNpcmNsZS14bWFyayIsaWNvbjpbNjQwLDUxMixbXSwiZTU2NiIsIk0yODcuOSAzMmwtNzYuMiAwYy0yOS40IDAtNTUuMSAyMC4xLTYyLjEgNDguNkw2NS40IDQyMC41QzU3LjkgNDUwLjcgODAuOCA0ODAgMTEyIDQ4MGwyMDkuNCAwYy0xMS4yLTI0LjQtMTcuNC01MS40LTE3LjQtODAgMC0yOC42IDYuMi01NS43IDE3LjQtODAtLjUgMC0xIDAtMS42IDAtMTcuNyAwLTMyLTE0LjMtMzItMzJsMC02NGMwLTE3LjcgMTQuMy0zMiAzMi0zMnMzMiAxNC4zIDMyIDMybDAgNDkuMmMzNS4yLTQwIDg2LjctNjUuMiAxNDQuMi02NS4yIDkgMCAxNy44IC42IDI2LjQgMS44bC0zMi0xMjkuMkM0ODMuNCA1Mi4xIDQ1Ny44IDMyIDQyOC4zIDMybC03Ni41IDAgMCA2NGMwIDE3LjctMTQuMyAzMi0zMiAzMnMtMzItMTQuMy0zMi0zMmwwLTY0ek00OTYgNTQ0YTE0NCAxNDQgMCAxIDAgMC0yODggMTQ0IDE0NCAwIDEgMCAwIDI4OHptNTkuMy0xODAuN2wtMzYuNyAzNi43IDM2LjcgMzYuN2M2LjIgNi4yIDYuMiAxNi40IDAgMjIuNnMtMTYuNCA2LjItMjIuNiAwbC0zNi43LTM2LjctMzYuNyAzNi43Yy02LjIgNi4yLTE2LjQgNi4yLTIyLjYgMHMtNi4yLTE2LjQgMC0yMi42bDM2LjctMzYuNy0zNi43LTM2LjdjLTYuMi02LjItNi4yLTE2LjQgMC0yMi42czE2LjQtNi4yIDIyLjYgMGwzNi43IDM2LjcgMzYuNy0zNi43YzYuMi02LjIgMTYuNC02LjIgMjIuNiAwczYuMiAxNi40IDAgMjIuNnoiXX0scFllPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InBhbGxldCIsaWNvbjpbNTc2LDUxMixbXSwiZjQ4MiIsIk0zMiAzMjBjLTE3LjcgMC0zMiAxNC4zLTMyIDMyczE0LjMgMzIgMzIgMzJsMzIgMCAwIDY0LTMyIDBjLTE3LjcgMC0zMiAxNC4zLTMyIDMyczE0LjMgMzIgMzIgMzJsNTEyIDBjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJsLTMyIDAgMC02NCAzMiAwYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMyTDMyIDMyMHptOTYgNjRsMTI4IDAgMCA2NC0xMjggMCAwLTY0em0xOTIgMGwxMjggMCAwIDY0LTEyOCAwIDAtNjR6Il19LFdtPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImNha2UtY2FuZGxlcyIsaWNvbjpbNDQ4LDUxMixbMTI3ODc0LCJiaXJ0aGRheS1jYWtlIiwiY2FrZSJdLCJmMWZkIiwiTTg2LjQtMTAuNUw2MS44IDMxLjZDNTggMzguMSA1NiA0NS42IDU2IDUzLjJMNTYgNTZjMCAyMi4xIDE3LjkgNDAgNDAgNDBzNDAtMTcuOSA0MC00MGwwLTIuOGMwLTcuNi0yLTE1LTUuOC0yMS42TDEwNS42LTEwLjVjLTItMy40LTUuNy01LjUtOS42LTUuNXMtNy42IDIuMS05LjYgNS41em0xMjggMEwxODkuOCAzMS42Yy0zLjggNi41LTUuOCAxNC01LjggMjEuNmwwIDIuOGMwIDIyLjEgMTcuOSA0MCA0MCA0MHM0MC0xNy45IDQwLTQwbDAtMi44YzAtNy42LTItMTUtNS44LTIxLjZMMjMzLjYtMTAuNWMtMi0zLjQtNS43LTUuNS05LjYtNS41cy03LjYgMi4xLTkuNiA1LjV6TTMxNy44IDMxLjZjLTMuOCA2LjUtNS44IDE0LTUuOCAyMS42bDAgMi44YzAgMjIuMSAxNy45IDQwIDQwIDQwczQwLTE3LjkgNDAtNDBsMC0yLjhjMC03LjYtMi0xNS01LjgtMjEuNkwzNjEuNi0xMC41Yy0yLTMuNC01LjctNS41LTkuNi01LjVzLTcuNiAyLjEtOS42IDUuNUwzMTcuOCAzMS42ek0xMjggMTYwYzAtMTcuNy0xNC4zLTMyLTMyLTMycy0zMiAxNC4zLTMyIDMybDAgNTMuNUMyNi43IDIyNi42IDAgMjYyLjIgMCAzMDRsMCAyMC44YzIwLjkgMS4zIDQxLjYgNy4zIDYwLjMgMThsNy4xIDQuMWMyNi4zIDE1IDU4LjkgMTMuNCA4My42LTQuMiA0My43LTMxLjIgMTAyLjMtMzEuMiAxNDYgMCAyNC42IDE3LjYgNTcuMyAxOS4zIDgzLjYgNC4ybDcuMS00LjFjMTguNy0xMC43IDM5LjMtMTYuNyA2MC4zLTE4bDAtMjAuOGMwLTQxLjgtMjYuNy03Ny40LTY0LTkwLjVsMC01My41YzAtMTcuNy0xNC4zLTMyLTMyLTMycy0zMiAxNC4zLTMyIDMybDAgNDgtNjQgMCAwLTQ4YzAtMTcuNy0xNC4zLTMyLTMyLTMycy0zMiAxNC4zLTMyIDMybDAgNDgtNjQgMCAwLTQ4ek00NDggMzczYy0xMi43IDEuMi0yNS4xIDUtMzYuNSAxMS41bC03LjEgNC4xYy00Mi42IDI0LjMtOTUuNCAyMS43LTEzNS4zLTYuOC0yNy0xOS4zLTYzLjItMTkuMy05MC4yIDAtMzkuOSAyOC41LTkyLjcgMzEuMi0xMzUuMyA2LjhsLTcuMS00LjFDMjUuMSAzNzggMTIuNyAzNzQuMSAwIDM3M2wwIDc1YzAgMzUuMyAyOC43IDY0IDY0IDY0bDMyMCAwYzM1LjMgMCA2NC0yOC43IDY0LTY0bDAtNzV6Il19LHVZZT1XbSxmWWU9V20sbVllPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImJ1Zy1zbGFzaCIsaWNvbjpbNTc2LDUxMixbXSwiZTQ5MCIsIk03LTI0LjljOS40LTkuNCAyNC42LTkuNCAzMy45IDBMMjQxLjggMTc2IDM0NCAxNzZjMTQuMiAwIDI3LjcgMi44IDQwIDhsMTA4LjgtODEuNmMxNC4xLTEwLjYgMzQuMi03LjcgNDQuOCA2LjRzNy43IDM0LjItNi40IDQ0LjhsLTk3LjggNzMuM2M1LjMgOC45IDkuMyAxOC43IDExLjggMjkuMWw5OC44IDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJsLTk2IDAgMCAzMmMwIDkuNS0uOCAxOC43LTIuNCAyNy44TDU2OSA1MDMuMWM5LjQgOS40IDkuNCAyNC42IDAgMzMuOXMtMjQuNiA5LjQtMzMuOSAwTDcgOS4xQy0yLjMtLjMtMi4zLTE1LjUgNy0yNC45ek0zOTguMiA0NjhjLTIzLjIgMjIuMS01MyAzNy4yLTg2LjIgNDIuMmwwLTEyOC40IDg2LjIgODYuMnpNMjY0IDMzMy44bDAgMTc2LjRjLTUxLjItNy43LTk0LjUtMzkuNy0xMTcuNy04My45TDgzLjIgNDczLjZjLTE0LjEgMTAuNi0zNC4yIDcuNy00NC44LTYuNHMtNy43LTM0LjIgNi40LTQ0LjhsODMuNC02Mi41Yy0uMS0yLjYtLjItNS4yLS4yLTcuOWwwLTMyLTk2IDBjLTE3LjcgMC0zMi0xNC4zLTMyLTMyczE0LjMtMzIgMzItMzJsOTguOCAwYzMuMy0xMy45IDkuMy0yNi43IDE3LjYtMzcuOEwyNjQgMzMzLjh6TTM1NS42IDEyOGwtODIuNCAwLTcyLjMtNzIuM0MyMTYuMSAyMi44IDI0OS40IDAgMjg4IDAgMzQxIDAgMzg0IDQzIDM4NCA5NmwwIDMuNmMwIDE1LjctMTIuNyAyOC40LTI4LjQgMjguNHoiXX0sZ1llPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InRhcnAiLGljb246WzUxMiw1MTIsW10sImU1N2IiLCJNNDQ4IDY0YzM1LjMgMCA2NCAyOC43IDY0IDY0bDAgMTQ5LjVjMCAxNy02LjcgMzMuMy0xOC43IDQ1LjNMMzg2LjcgNDI5LjNjLTEyIDEyLTI4LjMgMTguNy00NS4zIDE4LjdMNjQgNDQ4Yy0zNS4zIDAtNjQtMjguNy02NC02NEwwIDEyOEMwIDkyLjcgMjguNyA2NCA2NCA2NGwzODQgMHptNS41IDIwOEwzNjAgMjcyYy0xMy4zIDAtMjQgMTAuNy0yNCAyNGwwIDkzLjUgMTE3LjUtMTE3LjV6TTk2IDE5MmEzMiAzMiAwIDEgMCAwLTY0IDMyIDMyIDAgMSAwIDAgNjR6Il19LGJZZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJkaWFncmFtLXByZWRlY2Vzc29yIixpY29uOls0NDgsNTEyLFtdLCJlNDc3IiwiTTI4OS4yIDEzNy45YzIuNS02IDguMy05LjkgMTQuOC05LjlsNDAgMCAwLTI0YzAtMTMuMy0xMC43LTI0LTI0LTI0bC05OCAwYzEuMyA1LjEgMiAxMC41IDIgMTZsMCA2NGMwIDM1LjMtMjguNyA2NC02NCA2NGwtOTYgMGMtMzUuMyAwLTY0LTI4LjctNjQtNjRMMCA5NkMwIDYwLjcgMjguNyAzMiA2NCAzMmwyNTYgMGMzOS44IDAgNzIgMzIuMiA3MiA3MmwwIDI0IDQwIDBjNi41IDAgMTIuMyAzLjkgMTQuOCA5LjlzMS4xIDEyLjktMy41IDE3LjRsLTY0IDY0Yy02LjIgNi4yLTE2LjQgNi4yLTIyLjYgMGwtNjQtNjRjLTQuNi00LjYtNS45LTExLjUtMy41LTE3LjR6TTM4NCAzNTJsLTMyMCAwIDAgNjQgMzIwIDAgMC02NHptNjQgNjRjMCAzNS4zLTI4LjcgNjQtNjQgNjRMNjQgNDgwYy0zNS4zIDAtNjQtMjguNy02NC02NGwwLTY0YzAtMzUuMyAyOC43LTY0IDY0LTY0bDMyMCAwYzM1LjMgMCA2NCAyOC43IDY0IDY0bDAgNjR6Il19LG5xPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImZhY2UtZmx1c2hlZCIsaWNvbjpbNTEyLDUxMixbMTI4NTYzLCJmbHVzaGVkIl0sImY1NzkiLCJNMCAyNTZhMjU2IDI1NiAwIDEgMSA1MTIgMCAyNTYgMjU2IDAgMSAxIC01MTIgMHpNMTY4IDM5MmMwIDEzLjMgMTAuNyAyNCAyNCAyNGwxMjggMGMxMy4zIDAgMjQtMTAuNyAyNC0yNHMtMTAuNy0yNC0yNC0yNGwtMTI4IDBjLTEzLjMgMC0yNCAxMC43LTI0IDI0em0tOC05NmE3MiA3MiAwIDEgMCAwLTE0NCA3MiA3MiAwIDEgMCAwIDE0NHptMjY0LTcyYTcyIDcyIDAgMSAwIC0xNDQgMCA3MiA3MiAwIDEgMCAxNDQgMHptLTI4OCAwYTI0IDI0IDAgMSAxIDQ4IDAgMjQgMjQgMCAxIDEgLTQ4IDB6bTE5MiAwYTI0IDI0IDAgMSAxIDQ4IDAgMjQgMjQgMCAxIDEgLTQ4IDB6Il19LHZZZT1ucSx5WWU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZGlhZ3JhbS1uZXh0IixpY29uOls0NDgsNTEyLFtdLCJlNDc2IiwiTTM4NCAyMjRjMzUuMyAwIDY0LTI4LjcgNjQtNjRsMC02NGMwLTM1LjMtMjguNy02NC02NC02NEw2NCAzMkMyOC43IDMyIDAgNjAuNyAwIDk2bDAgNjRjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMTI4IDAgMCA2NC0zMiAwYy02LjUgMC0xMi4zIDMuOS0xNC44IDkuOXMtMS4xIDEyLjkgMy41IDE3LjRsNjQgNjRjNi4yIDYuMiAxNi40IDYuMiAyMi42IDBsNjQtNjRjNC42LTQuNiA1LjktMTEuNSAzLjUtMTcuNFMyOTQuNSAyODggMjg4IDI4OGwtMzIgMCAwLTY0IDEyOCAwek02NCAyODhjLTM1LjMgMC02NCAyOC43LTY0IDY0bDAgNjRjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMzIwIDBjMzUuMyAwIDY0LTI4LjcgNjQtNjRsMC02NGMwLTM1LjMtMjguNy02NC02NC02NGwtMzQgMGM1LjYgMjEuNy0uNSA0NS4xLTE2LjcgNjEuM2wtNjQgNjRjLTI1IDI1LTY1LjUgMjUtOTAuNSAwbC02NC02NEM5OC42IDMzMy4xIDkyLjQgMzA5LjcgOTggMjg4bC0zNCAweiJdfSx4WWU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiYW5jaG9yLWNpcmNsZS14bWFyayIsaWNvbjpbNjQwLDUxMixbXSwiZTRhYyIsIk0zMjAuNSA5NmEzMiAzMiAwIDEgMSAtNjQgMCAzMiAzMiAwIDEgMSA2NCAwem0tMzItOTZjLTUzIDAtOTYgNDMtOTYgOTYgMCA0MS44IDI2LjcgNzcuNCA2NCA5MC41bDAgMjU3LjljLTYyLjktMTQuMy0xMTAuMi02OS43LTExMS45LTEzNi41bDE2LjEgMTQuMWMxMCA4LjcgMjUuMSA3LjcgMzMuOS0yLjNzNy43LTI1LjEtMi4zLTMzLjlsLTY0LTU2Yy05LTcuOS0yMi42LTcuOS0zMS42IDBsLTY0IDU2Yy0xMCA4LjctMTEgMjMuOS0yLjMgMzMuOXMyMy45IDExIDMzLjkgMi4zbDE2LjItMTQuMmMyLjEgMTEzLjEgOTQuNCAyMDQuMSAyMDggMjA0LjEgMTYuNiAwIDMyLjctMS45IDQ4LjItNS42LTIwLjMtMzAuNS0zMi4yLTY3LTMyLjItMTA2LjQgMC0yNy4zIDUuNy01My4zIDE2LTc2LjlsMC0xMzYuNmMzNy4zLTEzLjIgNjQtNDguNyA2NC05MC41IDAtNTMtNDMtOTYtOTYtOTZ6bTIwOCA1NDRhMTQ0IDE0NCAwIDEgMCAwLTI4OCAxNDQgMTQ0IDAgMSAwIDAgMjg4em01OS4zLTE4MC43bC0zNi43IDM2LjcgMzYuNyAzNi43YzYuMiA2LjIgNi4yIDE2LjQgMCAyMi42cy0xNi40IDYuMi0yMi42IDBsLTM2LjctMzYuNy0zNi43IDM2LjdjLTYuMiA2LjItMTYuNCA2LjItMjIuNiAwcy02LjItMTYuNCAwLTIyLjZsMzYuNy0zNi43LTM2LjctMzYuN2MtNi4yLTYuMi02LjItMTYuNCAwLTIyLjZzMTYuNC02LjIgMjIuNiAwbDM2LjcgMzYuNyAzNi43LTM2LjdjNi4yLTYuMiAxNi40LTYuMiAyMi42IDBzNi4yIDE2LjQgMCAyMi42eiJdfSx3WWU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToicGVyc29uLWNpcmNsZS14bWFyayIsaWNvbjpbNjQwLDUxMixbXSwiZTU0MyIsIk0yODAgMjRhNTYgNTYgMCAxIDAgLTExMiAwIDU2IDU2IDAgMSAwIDExMiAwem0yNCAyMTIuN0wzNDEgMjg2LjZjMTIuOC0xNy41IDI4LjUtMzIuNyA0Ni4zLTQ1bC01Ni4yLTc1LjdDMzA2IDEzMiAyNjYuMyAxMTIgMjI0IDExMnMtODIgMjAtMTA3LjIgNTMuOWwtNzAuNSA5NWMtMTAuNSAxNC4yLTcuNiAzNC4yIDYuNiA0NC44czM0LjIgNy42IDQ0LjgtNi42TDE0NCAyMzYuNyAxNDQgNTEyYzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJsMC0xNjBjMC04LjggNy4yLTE2IDE2LTE2czE2IDcuMiAxNiAxNmwwIDE2MGMwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMybDAtMjc1LjN6TTQ5NiA1NDRhMTQ0IDE0NCAwIDEgMCAwLTI4OCAxNDQgMTQ0IDAgMSAwIDAgMjg4em0yMi42LTE0NGwzNi43IDM2LjdjNi4yIDYuMiA2LjIgMTYuNCAwIDIyLjZzLTE2LjQgNi4yLTIyLjYgMGwtMzYuNy0zNi43LTM2LjcgMzYuN2MtNi4yIDYuMi0xNi40IDYuMi0yMi42IDBzLTYuMi0xNi40IDAtMjIuNmwzNi43LTM2LjctMzYuNy0zNi43Yy02LjItNi4yLTYuMi0xNi40IDAtMjIuNnMxNi40LTYuMiAyMi42IDBsMzYuNyAzNi43IDM2LjctMzYuN2M2LjItNi4yIDE2LjQtNi4yIDIyLjYgMHM2LjIgMTYuNCAwIDIyLjZMNTE4LjYgNDAweiJdfSxNWWU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToic3BhIixpY29uOls1NzYsNTEyLFtdLCJmNWJiIiwiTTE2OS43IDIyNy41YzM0LjMgMTguNyA2NC41IDQ0LjEgODguOCA3NC41IDExLjEgMTMuOSAyMSAyOC45IDI5LjQgNDQuOCA4LjUtMTUuOSAxOC4zLTMwLjggMjkuNC00NC44IDI0LjMtMzAuNSA1NC41LTU1LjkgODguOC03NC41IDQxLjctMjIuNyA4OS40LTM1LjUgMTM5LjctMzUuNWw5LjkgMGMxMS4xIDAgMjAuMSA5IDIwLjEgMjAuMSAwIDE0OC0xMTkuOSAyNjcuOS0yNjcuOSAyNjcuOWwtNDAuMiAwQzExOS45IDQ4MCAwIDM2MC4xIDAgMjEyLjEgMCAyMDEgOSAxOTIgMjAuMSAxOTJsOS45IDBjNTAuNCAwIDk4LjEgMTIuOCAxMzkuNyAzNS41ek0zMDMuOSAzOGMxNi45IDE1LjkgNjEuNCA2My40IDg5IDE0Mi4zLTQwLjEgMjAuMi03NS44IDQ4LjItMTA0LjkgODIuMS0yOS4yLTMzLjktNjQuOC02MS44LTEwNC45LTgyLjEgMjcuNi03OC45IDcyLjItMTI2LjQgODktMTQyLjMgNC4zLTQuMSAxMC02IDE1LjktNnMxMS42IDIgMTUuOSA2eiJdfSx6WWU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiYXJpZXMiLGljb246WzUxMiw1MTIsW10sImU4NDYiLCJNNDAxLjYgMGM2MS4zIDAgMTEwLjQgNTAuMyAxMTAuNCAxMTEgMCAyOS40LTExLjYgNTcuOS0zMi42IDc4LjhsLTguOCA4LjhjLTEyLjUgMTIuNS0zMi44IDEyLjUtNDUuMiAwcy0xMi41LTMyLjggMC00NS4ybDguOC04LjhjOC44LTguOCAxMy44LTIxIDEzLjgtMzMuNiAwLTI1LjktMjEuMS00Ny00Ni40LTQ3LTIyLjUgMC00MS43IDE2LjEtNDUuNyAzOC4yTDI4Ny41IDQ4NS42YzAgLjEtLjEgLjMtLjEgLjQtLjIgLjgtLjMgMS42LS41IDIuMy0uMSAuMy0uMSAuNS0uMiAuNy0uMiAuNi0uNCAxLjMtLjcgMS45LS4yIC41LS40IDEtLjYgMS41LS4xIC4zLS4zIC42LS40IC45LTEuNiAzLjUtMy44IDYuNS02LjQgOS4yLTIgMi00LjIgMy43LTYuNiA1LjEtLjIgLjEtLjMgLjItLjUgLjMtLjcgLjQtMS40IC43LTIuMSAxLS4zIC4xLS42IC4zLS45IC40LS41IC4yLTEgLjQtMS41IC42LS42IC4yLTEuMiAuNS0xLjkgLjctLjIgLjEtLjUgLjItLjcgLjItLjggLjItMS42IC40LTIuMyAuNS0uMiAwLS4zIC4xLS40IC4xLS4yIDAtLjQgMC0uNiAuMS0uNyAuMS0xLjMgLjItMiAuMi0uNCAwLS44IC4xLTEuMiAuMS0uNiAwLTEuMiAuMS0xLjggLjEtLjYgMC0xLjIgMC0xLjgtLjEtLjQgMC0uOC0uMS0xLjItLjEtLjctLjEtMS40LS4xLTItLjItLjIgMC0uNCAwLS42LS4xLS4yIDAtLjMtLjEtLjUtLjEtLjgtLjItMS42LS4zLTIuMy0uNS0uMy0uMS0uNS0uMS0uOC0uMi0uNi0uMi0xLjMtLjQtMS45LS43LS41LS4yLTEtLjQtMS41LS42LS4zLS4xLS42LS4zLS45LS40LS43LS4zLTEuNC0uNy0yLjEtMS0uMi0uMS0uMy0uMi0uNS0uMy0yLjQtMS40LTQuNy0zLjEtNi42LTUuMS0yLjYtMi42LTQuOC01LjctNi40LTkuMi0uMS0uMi0uMi0uMy0uMi0uNWwtLjUtMS4xYy0uMS0uMy0uMi0uNS0uMy0uOC0uMi0uNi0uNS0xLjItLjctMS45LS4xLS4yLS4yLS41LS4yLS43LS4yLS44LS40LTEuNi0uNS0yLjMgMC0uMS0uMS0uMy0uMS0uNEwxNTYgMTAyLjJjLTQtMjIuMS0yMy4yLTM4LjItNDUuNy0zOC4yLTI1LjMgMC00Ni40IDIxLjEtNDYuNCA0NyAwIDEyLjYgNSAyNC44IDEzLjggMzMuNmw4LjggOC44YzEyLjUgMTIuNSAxMi41IDMyLjggMCA0NS4ycy0zMi44IDEyLjUtNDUuMiAwbC04LjgtOC44QzExLjYgMTY4LjkgMCAxNDAuMyAwIDExMSAwIDUwLjMgNDkuMSAwIDExMC40IDAgMTYzLjggMCAyMDkuNiAzOC4zIDIxOSA5MWwzNyAyMDcgMzctMjA3YzkuNC01Mi42IDU1LjItOTEgMTA4LjctOTF6Il19LG9xPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImJhcnMtcHJvZ3Jlc3MiLGljb246WzQ0OCw1MTIsWyJ0YXNrcy1hbHQiXSwiZjgyOCIsIk0yODggMTYwbDk2IDAgMC02NC05NiAwIDAgNjR6TTAgMTYwTDAgODBDMCA1My41IDIxLjUgMzIgNDggMzJsMzUyIDBjMjYuNSAwIDQ4IDIxLjUgNDggNDhsMCA5NmMwIDI2LjUtMjEuNSA0OC00OCA0OEw0OCAyMjRjLTI2LjUgMC00OC0yMS41LTQ4LTQ4bDAtMTZ6TTE2MCA0MTZsMjI0IDAgMC02NC0yMjQgMCAwIDY0ek0wIDQxNmwwLTgwYzAtMjYuNSAyMS41LTQ4IDQ4LTQ4bDM1MiAwYzI2LjUgMCA0OCAyMS41IDQ4IDQ4bDAgOTZjMCAyNi41LTIxLjUgNDgtNDggNDhMNDggNDgwYy0yNi41IDAtNDgtMjEuNS00OC00OGwwLTE2eiJdfSxrWWU9b3EsU1llPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImhlYXJ0LWNpcmNsZS1jaGVjayIsaWNvbjpbNTc2LDUxMixbXSwiZTRmZCIsIk0yNDEgODcuMWwxNSAyMC43IDE1LTIwLjdDMjk2IDUyLjUgMzM2LjIgMzIgMzc4LjkgMzIgNDUyLjQgMzIgNTEyIDkxLjYgNTEyIDE2NS4xbDAgMi42YzAgMTcuNi0zLjQgMzUuNi05LjUgNTMuNy0yMS44LTguNi00NS42LTEzLjQtNzAuNS0xMy40LTEwNiAwLTE5MiA4Ni0xOTIgMTkyIDAgMjguNSA2LjIgNTUuNiAxNy40IDgwLS41IDAtLjkgMC0xLjQgMC0xNS41IDAtMzAuOC00LjYtNDMuMS0xNC4xLTczLTU1LjctMjEyLjktMTg2LTIxMi45LTI5OC4ybDAtMi42QzAgOTEuNiA1OS42IDMyIDEzMy4xIDMyIDE3NS44IDMyIDIxNiA1Mi41IDI0MSA4Ny4xek0yODggNDAwYTE0NCAxNDQgMCAxIDEgMjg4IDAgMTQ0IDE0NCAwIDEgMSAtMjg4IDB6bTIwMS40LTYwLjljLTcuMS01LjItMTcuMi0zLjYtMjIuNCAzLjVsLTUzIDcyLjktMjYuOC0yNi44Yy02LjItNi4yLTE2LjQtNi4yLTIyLjYgMHMtNi4yIDE2LjQgMCAyMi42bDQwIDQwYzMuMyAzLjMgNy45IDUgMTIuNiA0LjZzOC45LTIuOCAxMS43LTYuNWw2NC04OGM1LjItNy4xIDMuNi0xNy4yLTMuNS0yMi4zeiJdfSxscT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJtYXJzLXN0cm9rZS1yaWdodCIsaWNvbjpbNjQwLDUxMixbOTg5NywibWFycy1zdHJva2UtaCJdLCJmMjJiIiwiTTMyMC41IDI1NmExMTIgMTEyIDAgMSAwIC0yMjQgMCAxMTIgMTEyIDAgMSAwIDIyNCAwek0yMDguNSA4MGM4Ni4zIDAgMTU4LjEgNjIuMSAxNzMuMSAxNDQuMSAxLS4xIDEuOS0uMSAyLjktLjFsMTYgMCAwLTMyYzAtMTcuNyAxNC4zLTMyIDMyLTMyczMyIDE0LjMgMzIgMzJsMCAzMiA2MS40IDAtMjIuNC0yOGMtMTEtMTMuOC04LjgtMzMuOSA1LTQ1czMzLjktOC44IDQ1IDVsNjQgODBjOS4zIDExLjcgOS4zIDI4LjMgMCA0MGwtNjQgODBjLTExIDEzLjgtMzEuMiAxNi00NSA1cy0xNi0zMS4yLTUtNDVsMjIuNC0yOC02MS40IDAgMCAzMmMwIDE3LjctMTQuMyAzMi0zMiAzMnMtMzItMTQuMy0zMi0zMmwwLTMyLTE2IDBjLTEgMC0xLjkgMC0yLjktLjEtMTUgODItODYuOCAxNDQuMS0xNzMuMSAxNDQuMS05Ny4yIDAtMTc2LTc4LjgtMTc2LTE3NnM3OC44LTE3NiAxNzYtMTc2eiJdfSxDWWU9bHEsX1llPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InRvd2VyLW9ic2VydmF0aW9uIixpY29uOls0NDgsNTEyLFtdLCJlNTg2IiwiTTIwOS43IDMuNGM5LTQuNSAxOS42LTQuNSAyOC42IDBsMTYwIDgwYzE1LjggNy45IDIyLjIgMjcuMSAxNC4zIDQyLjktNS42IDExLjItMTYuOSAxNy43LTI4LjYgMTcuN2wwIDgwYzAgMTcuNy0xNC4zIDMyLTMyIDMybC0xMyAwIDMyIDE5MiA0NSAwYzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMyTDMyIDUxMmMtMTcuNyAwLTMyLTE0LjMtMzItMzJzMTQuMy0zMiAzMi0zMmw0NSAwIDMyLTE5Mi0xMyAwYy0xNy43IDAtMzItMTQuMy0zMi0zMmwwLTgwYy0xMS43IDAtMjMtNi41LTI4LjYtMTcuNy03LjktMTUuOC0xLjUtMzUgMTQuMy00Mi45bDE2MC04MHpNMzEwLjcgNDQ4bC04Ni43LTYxLjktODYuNyA2MS45IDE3My40IDB6bS0xNTMtMTkybC0zLjUgMjEuMiA2OS45IDQ5LjkgNjkuOS00OS45LTMuNS0yMS4yLTEzMi43IDB6bS0xMi4zIDczLjlsLTEwLjEgNjAuNiA0Ny41LTMzLjktMzcuNC0yNi43em0xMTkuOSAyNi43bDQ3LjUgMzMuOS0xMC4xLTYwLjYtMzcuNCAyNi43ek0xNTIgMTI4Yy0xMy4zIDAtMjQgMTAuNy0yNCAyNHMxMC43IDI0IDI0IDI0bDE0NCAwYzEzLjMgMCAyNC0xMC43IDI0LTI0cy0xMC43LTI0LTI0LTI0bC0xNDQgMHoiXX0sR209e3ByZWZpeDoiZmFzIixpY29uTmFtZToic3Rlcmxpbmctc2lnbiIsaWNvbjpbMzg0LDUxMixbMTYzLCJnYnAiLCJwb3VuZC1zaWduIl0sImYxNTQiLCJNOTEuMyAyODhsLTM0LjggMGMtMTMuMyAwLTI0LTEwLjctMjQtMjRzMTAuNy0yNCAyNC0yNGwyMS40IDBDMzcuMyAxNDcuMyAxMDUuMSA0MiAyMDcuNiA0Mmw4LjIgMGMzMy42IDAgNjYuMiAxMS4zIDkyLjUgMzIuMmwxNi4xIDEyLjdjMTMuOSAxMSAxNi4yIDMxLjEgNS4yIDQ1cy0zMS4xIDE2LjItNDUgNS4ybC0xNi4xLTEyLjdjLTE1LTExLjktMzMuNi0xOC40LTUyLjgtMTguNGwtOC4yIDBjLTU3LjMgMC05NC43IDU5LjktNjkuNyAxMTEuNCAzLjYgNy40IDYuNiAxNC45IDkuMSAyMi42bDE0OS41IDBjMTMuMyAwIDI0IDEwLjcgMjQgMjRzLTEwLjcgMjQtMjQgMjRsLTE0MS4yIDBjMSAzNS4zLTguNyA3MC42LTI4LjkgMTAwLjlsLTE4LjEgMjcuMSAyMTIuMiAwYzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMybC0yNzIgMGMtMTEuOCAwLTIyLjYtNi41LTI4LjItMTYuOXMtNS0yMyAxLjYtMzIuOWw1MS4yLTc2LjhjMTMuMS0xOS42IDE5LjItNDIuNiAxOC4yLTY1LjR6Il19LFRZZT1HbSxMWWU9R20sJFllPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImZhdWNldC1kcmlwIixpY29uOls1MTIsNTEyLFsxMjg2ODhdLCJlMDA2IiwiTTIyNCAzMmMtMTcuNyAwLTMyIDE0LjMtMzIgMzJMOTYgNjRDNzguMyA2NCA2NCA3OC4zIDY0IDk2czE0LjMgMzIgMzIgMzJsOTYgMCAwIDY0LTE4LjcgMGMtOC41IDAtMTYuNiAzLjQtMjIuNiA5LjRMMTI4IDIyNCAzMiAyMjRjLTE3LjcgMC0zMiAxNC4zLTMyIDMybDAgNjRjMCAxNy43IDE0LjMgMzIgMzIgMzJsMTAwLjEgMGMyMC4yIDI5IDUzLjkgNDggOTEuOSA0OHM3MS43LTE5IDkxLjktNDhsMzYuMSAwYzE3LjcgMCAzMiAxNC4zIDMyIDMyczE0LjMgMzIgMzIgMzJsNjQgMGMxNy43IDAgMzItMTQuMyAzMi0zMiAwLTg4LjQtNzEuNi0xNjAtMTYwLTE2MGwtMzIgMC0yMi42LTIyLjZjLTYtNi0xNC4xLTkuNC0yMi42LTkuNGwtMTguNyAwIDAtNjQgOTYgMGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMmwtOTYgMGMwLTE3LjctMTQuMy0zMi0zMi0zMnpNNDM2LjggNDU1LjRsLTE4LjIgNDIuNGMtMS44IDQuMS0yLjcgOC42LTIuNyAxMy4xbDAgMS4yYzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJsMC0xLjJjMC00LjUtLjktOC45LTIuNy0xMy4xbC0xOC4yLTQyLjRjLTEuOS00LjUtNi4zLTcuNC0xMS4yLTcuNHMtOS4yIDIuOS0xMS4yIDcuNHoiXX0sdTg9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiY2lyY2xlLWluZm8iLGljb246WzUxMiw1MTIsWyJpbmZvLWNpcmNsZSJdLCJmMDVhIiwiTTI1NiA1MTJhMjU2IDI1NiAwIDEgMCAwLTUxMiAyNTYgMjU2IDAgMSAwIDAgNTEyek0yMjQgMTYwYTMyIDMyIDAgMSAxIDY0IDAgMzIgMzIgMCAxIDEgLTY0IDB6bS04IDY0bDQ4IDBjMTMuMyAwIDI0IDEwLjcgMjQgMjRsMCA4OCA4IDBjMTMuMyAwIDI0IDEwLjcgMjQgMjRzLTEwLjcgMjQtMjQgMjRsLTgwIDBjLTEzLjMgMC0yNC0xMC43LTI0LTI0czEwLjctMjQgMjQtMjRsMjQgMCAwLTY0LTI0IDBjLTEzLjMgMC0yNC0xMC43LTI0LTI0czEwLjctMjQgMjQtMjR6Il19LEFZZT11OCxEWWU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZmVhdGhlciIsaWNvbjpbNTEyLDUxMixbMTI5NzE4XSwiZjUyZCIsIk0zNTIgMGM0MSAwIDgwLjMgMTYuMyAxMDkuMiA0NS4ybDUuNSA1LjVjMjkgMjkgNDUuMyA2OC4zIDQ1LjMgMTA5LjIgMCAyNC4xLTUuNyA0Ny42LTE2LjIgNjguOC0xLjkgMy43LTUuMyA2LjUtOS4zIDcuN0wzNzQuNSAyNzBjLTMuOSAxLjItNi41IDQuNy02LjUgOC44IDAgNS4xIDQuMSA5LjIgOS4yIDkuMmwzMi4yIDBjMTQuMyAwIDIxLjQgMTcuMiAxMS4zIDI3LjNsLTIyLjQgMjIuNGMtMS45IDEuOS00LjIgMy4yLTYuNyA0bC04MSAyNC4zYy0zLjkgMS4yLTYuNSA0LjctNi41IDguOCAwIDUuMSA0LjEgOS4yIDkuMiA5LjIgMTMuMiAwIDE4LjkgMTUuNyA3LjggMjIuOS00MS4xIDI2LjYtODkuMyA0MS4xLTEzOSA0MS4xbC04NiAwLTQ4IDQ4Yy04LjggOC44LTIzLjIgOC44LTMyIDBzLTguOC0yMy4yIDAtMzJMMjU2IDIyNGM4LjgtOC44IDguOC0yMy4yIDAtMzJzLTIzLjItOC44LTMyIDBMNzkuNSAzMzYuNWMtNS43IDUuNy0xNS41IDEuNy0xNS41LTYuNCAwLTY3LjkgMjctMTMzIDc1LTE4MUwyNDIuOCA0NS4yQzI3MS43IDE2LjMgMzExIDAgMzUyIDB6Il19LEVZZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJib3dsLXJpY2UiLGljb246WzUxMiw1MTIsW10sImUyZWIiLCJNMTc2IDQwYzAtMTMuMyAxMC43LTI0IDI0LTI0bDE2IDBjMTMuMyAwIDI0IDEwLjcgMjQgMjRzLTEwLjcgMjQtMjQgMjRsLTE2IDBjLTEzLjMgMC0yNC0xMC43LTI0LTI0em0yNCA0OGwxNiAwYzEzLjMgMCAyNCAxMC43IDI0IDI0cy0xMC43IDI0LTI0IDI0bC0xNiAwYy0xMy4zIDAtMjQtMTAuNy0yNC0yNHMxMC43LTI0IDI0LTI0ek01NiAxNjBsMTYgMGMxMy4zIDAgMjQgMTAuNyAyNCAyNHMtMTAuNyAyNC0yNCAyNGwtMTYgMGMtMTMuMyAwLTI0LTEwLjctMjQtMjRzMTAuNy0yNCAyNC0yNHpNMCAyODMuNEMwIDI2OC4zIDEyLjMgMjU2IDI3LjQgMjU2bDQ1Ny4xIDBjMTUuMSAwIDI3LjQgMTIuMyAyNy40IDI3LjQgMCA3MC41LTQ0LjQgMTMwLjctMTA2LjcgMTU0LjFMNDAzLjUgNDUyYy0yIDE2LTE1LjYgMjgtMzEuOCAyOGwtMjMxLjUgMGMtMTYuMSAwLTI5LjgtMTItMzEuOC0yOGwtMS44LTE0LjRDNDQuNCA0MTQuMSAwIDM1My45IDAgMjgzLjR6TTIyNCAxODRjMC0xMy4zIDEwLjctMjQgMjQtMjRsMTYgMGMxMy4zIDAgMjQgMTAuNyAyNCAyNHMtMTAuNyAyNC0yNCAyNGwtMTYgMGMtMTMuMyAwLTI0LTEwLjctMjQtMjR6bS05NiAwYzAtMTMuMyAxMC43LTI0IDI0LTI0bDE2IDBjMTMuMyAwIDI0IDEwLjcgMjQgMjRzLTEwLjcgMjQtMjQgMjRsLTE2IDBjLTEzLjMgMC0yNC0xMC43LTI0LTI0ek0xMDQgODhsMTYgMGMxMy4zIDAgMjQgMTAuNyAyNCAyNHMtMTAuNyAyNC0yNCAyNGwtMTYgMGMtMTMuMyAwLTI0LTEwLjctMjQtMjRzMTAuNy0yNCAyNC0yNHptMjE2IDk2YzAtMTMuMyAxMC43LTI0IDI0LTI0bDE2IDBjMTMuMyAwIDI0IDEwLjcgMjQgMjRzLTEwLjcgMjQtMjQgMjRsLTE2IDBjLTEzLjMgMC0yNC0xMC43LTI0LTI0ek0yOTYgODhsMTYgMGMxMy4zIDAgMjQgMTAuNyAyNCAyNHMtMTAuNyAyNC0yNCAyNGwtMTYgMGMtMTMuMyAwLTI0LTEwLjctMjQtMjRzMTAuNy0yNCAyNC0yNHptMTIwIDk2YzAtMTMuMyAxMC43LTI0IDI0LTI0bDE2IDBjMTMuMyAwIDI0IDEwLjcgMjQgMjRzLTEwLjcgMjQtMjQgMjRsLTE2IDBjLTEzLjMgMC0yNC0xMC43LTI0LTI0ek0zOTIgODhsMTYgMGMxMy4zIDAgMjQgMTAuNyAyNCAyNHMtMTAuNyAyNC0yNCAyNGwtMTYgMGMtMTMuMyAwLTI0LTEwLjctMjQtMjRzMTAuNy0yNCAyNC0yNHpNMjk2IDE2bDE2IDBjMTMuMyAwIDI0IDEwLjcgMjQgMjRzLTEwLjcgMjQtMjQgMjRsLTE2IDBjLTEzLjMgMC0yNC0xMC43LTI0LTI0czEwLjctMjQgMjQtMjR6Il19LGNxPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InN0YXItaGFsZi1zdHJva2UiLGljb246WzU3Niw1MTIsWyJzdGFyLWhhbGYtYWx0Il0sImY1YzAiLCJNMjg4LjEgMzUzLjZjMTAgMCAxOS45IDIuMyAyOSA3bDc0LjQgMzcuOS0xMy04Mi41Yy0zLjItMjAuMiAzLjUtNDAuNyAxNy45LTU1LjJsNTktNTkuMS04Mi41LTEzLjFjLTIwLjItMy4yLTM3LjctMTUuOS00Ny0zNC4xbC0zOC03NC40IDAgMjczLjZ6TTQ1Ny40IDQ4OWMtNy4zIDUuMy0xNyA2LjEtMjUgMkwyODguMSA0MTcuNiAxNDMuOCA0OTFjLTggNC4xLTE3LjcgMy4zLTI1LTJzLTExLTE0LjItOS42LTIzLjJMMTM0LjQgMzA1LjkgMjAgMTkxLjRjLTYuNC02LjQtOC42LTE1LjgtNS44LTI0LjRzMTAuMS0xNC45IDE5LjEtMTYuM2wxNTkuOS0yNS40IDczLjYtMTQ0LjJjNC4xLTggMTIuNC0xMy4xIDIxLjQtMTMuMXMxNy4zIDUuMSAyMS40IDEzLjFMMzgzIDEyNS4zIDU0Mi45IDE1MC43YzguOSAxLjQgMTYuMyA3LjcgMTkuMSAxNi4zcy41IDE4LTUuOCAyNC40TDQ0MS43IDMwNS45IDQ2NyA0NjUuOGMxLjQgOC45LTIuMyAxNy45LTkuNiAyMy4yeiJdfSxQWWU9Y3EsZHE9e3ByZWZpeDoiZmFzIixpY29uTmFtZToidGVtcGVyYXR1cmUtYXJyb3ctZG93biIsaWNvbjpbNTEyLDUxMixbInRlbXBlcmF0dXJlLWRvd24iXSwiZTAzZiIsIk02NC41IDk2YzAtNTMgNDMtOTYgOTYtOTZzOTYgNDMgOTYgOTZsMCAxNjQuN2MyOS41IDI2LjQgNDggNjQuNyA0OCAxMDcuMyAwIDc5LjUtNjQuNSAxNDQtMTQ0IDE0NHMtMTQ0LTY0LjUtMTQ0LTE0NGMwLTQyLjYgMTguNS04MSA0OC0xMDcuM0w2NC41IDk2em05NiAzMzZjMzUuMyAwIDY0LTI4LjcgNjQtNjQgMC0yNi45LTE2LjUtNDkuOS00MC01OS4zbDAtMjguN2MwLTEzLjMtMTAuNy0yNC0yNC0yNHMtMjQgMTAuNy0yNCAyNGwwIDI4LjdjLTIzLjUgOS41LTQwIDMyLjUtNDAgNTkuMyAwIDM1LjMgMjguNyA2NCA2NCA2NHpNNDM5LjEgMzEwLjZjLTYgNi0xNC4xIDkuNC0yMi42IDkuNHMtMTYuNi0zLjQtMjIuNi05LjRsLTY0LTY0Yy0xMi41LTEyLjUtMTIuNS0zMi44IDAtNDUuM3MzMi44LTEyLjUgNDUuMyAwbDkuNCA5LjQgMC0xNzguN2MwLTE3LjcgMTQuMy0zMiAzMi0zMnMzMiAxNC4zIDMyIDMybDAgMTc4LjcgOS40LTkuNGMxMi41LTEyLjUgMzIuOC0xMi41IDQ1LjMgMHMxMi41IDMyLjggMCA0NS4zbC02NCA2NHoiXX0sSVllPWRxLE5ZZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJtYXNrLXZlbnRpbGF0b3IiLGljb246WzY0MCw1MTIsW10sImU1MjQiLCJNMTUyLjIgMTkyYy0xNS40IDM4LjMtMjQuMiA3Ny4yLTI0LjIgMTA4LjggMCAxMy4zIDEuNSAyNi4yIDQuNCAzOC43bC0xNy0zLjRjLTI5LjktNi01MS40LTMyLjItNTEuNC02Mi44bDAtODEuMyA4OC4yIDB6bTMyLjktNjRMNjQgMTI4Yy0zNS4zIDAtNjQgMjguNy02NCA2NGwwIDgxLjNjMCA2MSA0My4xIDExMy41IDEwMi45IDEyNS41bDY2LjMgMTMuM2MxOC43IDIyLjEgNDIuOSA0MCA3MC44IDUxLjhsMC04Ny44Yy0xMC4xLTE0LjItMTYtMzEuMy0xNi00OS43IDAtNDkuNSA0My0xMzQuNCA5Ni0xMzQuNCA1Mi41IDAgOTYgODQuOSA5NiAxMzQuNCAwIDE4LjQtNS45IDM1LjQtMTYgNDkuNmwwIDg3LjdjMjcuNi0xMS44IDUxLjctMjkuNiA3MC40LTUxLjZsNjYuNy0xMy4zYzU5LjgtMTIgMTAyLjktNjQuNSAxMDIuOS0xMjUuNWwwLTgxLjNjMC0zNS4zLTI4LjctNjQtNjQtNjRsLTEyMS41IDBjLTM0LjgtNTQuMi04Mi41LTk2LTEzNC41LTk2LTUyLjYgMC0xMDAuMiA0MS44LTEzNC45IDk2em0zMDIuNSA2NGw4OC40IDAgMCA4MS4zYzAgMzAuNS0yMS41IDU2LjgtNTEuNCA2Mi44bC0xNyAzLjRjMi45LTEyLjQgNC41LTI1LjQgNC41LTM4LjcgMC0zMS42LTguOS03MC41LTI0LjQtMTA4Ljh6TTI4OCAzMjBsMCAxOTIgNjQgMCAwLTE5MmMwLTE3LjctMTQuMy0zMi0zMi0zMnMtMzIgMTQuMy0zMiAzMnoiXX0sRlllPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImZpbGUtdmlkZW8iLGljb246WzM4NCw1MTIsW10sImYxYzgiLCJNMCA2NEMwIDI4LjcgMjguNyAwIDY0IDBMMjEzLjUgMGMxNyAwIDMzLjMgNi43IDQ1LjMgMTguN0wzNjUuMyAxMjUuM2MxMiAxMiAxOC43IDI4LjMgMTguNyA0NS4zTDM4NCA0NDhjMCAzNS4zLTI4LjcgNjQtNjQgNjRMNjQgNTEyYy0zNS4zIDAtNjQtMjguNy02NC02NEwwIDY0em0yMDgtNS41bDAgOTMuNWMwIDEzLjMgMTAuNyAyNCAyNCAyNEwzMjUuNSAxNzYgMjA4IDU4LjV6TTgwIDMwNGwwIDk2YzAgMTcuNyAxNC4zIDMyIDMyIDMybDk2IDBjMTcuNyAwIDMyLTE0LjMgMzItMzJsMC0yNCAzNSAzNWMzLjIgMy4yIDcuNSA1IDEyIDUgOS40IDAgMTctNy42IDE3LTE3bDAtOTQuMWMwLTkuNC03LjYtMTctMTctMTctNC41IDAtOC44IDEuOC0xMiA1bC0zNSAzNSAwLTI0YzAtMTcuNy0xNC4zLTMyLTMyLTMybC05NiAwYy0xNy43IDAtMzIgMTQuMy0zMiAzMnoiXX0sT1llPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImFycm93LXRyZW5kLWRvd24iLGljb246WzU3Niw1MTIsW10sImUwOTciLCJNMzg0IDM1MmMtMTcuNyAwLTMyIDE0LjMtMzIgMzJzMTQuMyAzMiAzMiAzMmwxNjAgMGMxNy43IDAgMzItMTQuMyAzMi0zMmwwLTE2MGMwLTE3LjctMTQuMy0zMi0zMi0zMnMtMzIgMTQuMy0zMiAzMmwwIDgyLjctMTY5LjQtMTY5LjRjLTEyLjUtMTIuNS0zMi44LTEyLjUtNDUuMyAwTDE5MiAyNDIuNyA1NC42IDEwNS40Yy0xMi41LTEyLjUtMzIuOC0xMi41LTQ1LjMgMHMtMTIuNSAzMi44IDAgNDUuM2wxNjAgMTYwYzEyLjUgMTIuNSAzMi44IDEyLjUgNDUuMyAwTDMyMCAyMDUuMyA0NjYuNyAzNTIgMzg0IDM1MnoiXX0sUlllPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6Im9pbC1jYW4iLGljb246WzY0MCw1MTIsW10sImY2MTMiLCJNMzIwIDEyOGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMkwxOTIgNjRjLTE3LjcgMC0zMiAxNC4zLTMyIDMyczE0LjMgMzIgMzIgMzJsMzIgMCAwIDMyLTE3NiAwYy0yNi41IDAtNDggMjEuNS00OCA0OGwwIDY0LjhjMCAxOSAxMS4yIDM2LjIgMjguNSA0My45bDY3LjUgMzAgMCAyMS4zYzAgMjYuNSAyMS41IDQ4IDQ4IDQ4bDI1OS4xIDBjMTguNCAwIDM1LjgtNy45IDQ4LTIxLjdMNjMzLjUgMTg3LjdjMTIuMy0xMy45LS4zLTM1LjQtMTguNC0zMS41TDQ0OCAxOTIgMzk3LjUgMTY2LjhjLTguOS00LjQtMTguNy02LjgtMjguNi02LjhsLTgwLjkgMCAwLTMyIDMyIDB6TTk2IDIwOGwwIDg2LjEtNDgtMjEuMyAwLTY0LjggNDggMHoiXX0saHE9e3ByZWZpeDoiZmFzIixpY29uTmFtZToicGVvcGxlLWNhcnJ5LWJveCIsaWNvbjpbNTc2LDUxMixbInBlb3BsZS1jYXJyeSJdLCJmNGNlIiwiTTY0LTMyQTU2IDU2IDAgMSAxIDY0IDgwIDU2IDU2IDAgMSAxIDY0LTMyek0wIDE3MS4xYzAtMzIuNiAyNi41LTU5LjEgNTkuMS01OS4xIDIzLjUgMCA0NS41IDExLjMgNTkuMSAzMC40bDQ4LjcgNjguMmM1LjggOC4yIDE1LjEgMTMuMSAyNS4xIDEzLjRsMC05NmMwLTE3LjcgMTQuMy0zMiAzMi0zMmwxMjggMGMxNy43IDAgMzIgMTQuMyAzMiAzMmwwIDk2YzEwLS4zIDE5LjMtNS4yIDI1LjEtMTMuNGw0OC43LTY4LjJjMTMuNi0xOS4xIDM1LjYtMzAuNCA1OS4xLTMwLjQgMzIuNiAwIDU5LjEgMjYuNSA1OS4xIDU5LjFMNTc2IDI3MmMwIDMwLjItMTQuMiA1OC43LTM4LjQgNzYuOGwtNzYuOCA1Ny42Yy04LjEgNi0xMi44IDE1LjUtMTIuOCAyNS42bDAgODBjMCAxNy43LTE0LjMgMzItMzIgMzJzLTMyLTE0LjMtMzItMzJsMC04MGMwLTMwLjIgMTQuMi01OC43IDM4LjQtNzYuOGw0MS42LTMxLjIgMC04MC4xLTIuOCAzLjljLTE4IDI1LjItNDcuMSA0MC4yLTc4LjEgNDAuMkwzNTIgMjg4Yy0uNiAwLTEuMyAwLTEuOS0uMS0uNiAwLTEuMyAuMS0xLjkgLjFsLTEyMC40IDBjLS42IDAtMS4zIDAtMS45LS4xLS42IDAtMS4zIC4xLTEuOSAuMWwtMzEuMSAwYy0zMSAwLTYwLjEtMTUtNzguMS00MC4ybC0yLjgtMy45IDAgODAuMSA0MS42IDMxLjJDMTc3LjggMzczLjMgMTkyIDQwMS44IDE5MiA0MzJsMCA4MGMwIDE3LjctMTQuMyAzMi0zMiAzMnMtMzItMTQuMy0zMi0zMmwwLTgwYzAtMTAuMS00LjctMTkuNi0xMi44LTI1LjZMMzguNCAzNDguOEMxNC4yIDMzMC43IDAgMzAyLjIgMCAyNzJMMCAxNzEuMXpNMCAzNzkuM2MzLjEgMi43IDYuMyA1LjQgOS42IDcuOUw2NCA0MjggNjQgNTEyYzAgMTcuNy0xNC4zIDMyLTMyIDMyUzAgNTI5LjcgMCA1MTJMMCAzNzkuM3pNNTY4IDI0YTU2IDU2IDAgMSAxIC0xMTIgMCA1NiA1NiAwIDEgMSAxMTIgMHptOCA0ODhjMCAxNy43LTE0LjMgMzItMzIgMzJzLTMyLTE0LjMtMzItMzJsMC04NCA1NC40LTQwLjhjMy4zLTIuNSA2LjUtNS4xIDkuNi03LjlMNTc2IDUxMnoiXX0sQlllPWhxLEhZZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJjaGFpciIsaWNvbjpbNDQ4LDUxMixbMTI5NjgxXSwiZjZjMCIsIk0xNTIgMjU2bDAtMTgxLjhjLTI0LjUgMjAuNS00MCA1MS40LTQwIDg1LjhsMCA5NiA0MCAwem00OCAwbDQ4IDAgMC0yMDUuNGMtNy43LTEuNy0xNS44LTIuNi0yNC0yLjZzLTE2LjMgLjktMjQgMi42TDIwMCAyNTZ6TTI5NiA3NC4ybDAgMTgxLjggNDAgMCAwLTk2YzAtMzQuNC0xNS41LTY1LjItNDAtODUuOHpNMzIgMjU2bDMyIDAgMC05NkM2NCA3MS42IDEzNS42IDAgMjI0IDBTMzg0IDcxLjYgMzg0IDE2MGwwIDk2IDMyIDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJsMCA2NGMwIDE3LjctMTQuMyAzMi0zMiAzMmwwIDk2YzAgMTcuNy0xNC4zIDMyLTMyIDMycy0zMi0xNC4zLTMyLTMybDAtOTYtMjU2IDAgMCA5NmMwIDE3LjctMTQuMyAzMi0zMiAzMnMtMzItMTQuMy0zMi0zMmwwLTk2Yy0xNy43IDAtMzItMTQuMy0zMi0zMmwwLTY0YzAtMTcuNyAxNC4zLTMyIDMyLTMyeiJdfSxxWWU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToid2luZCIsaWNvbjpbNTEyLDUxMixbXSwiZjcyZSIsIk0yODggMzJjMCAxNy43IDE0LjMgMzIgMzIgMzJsNDAgMGMxMy4zIDAgMjQgMTAuNyAyNCAyNHMtMTAuNyAyNC0yNCAyNEwzMiAxMTJjLTE3LjcgMC0zMiAxNC4zLTMyIDMyczE0LjMgMzIgMzIgMzJsMzI4IDBjNDguNiAwIDg4LTM5LjQgODgtODhTNDA4LjYgMCAzNjAgMEwzMjAgMGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJ6bTY0IDM1MmMwIDE3LjcgMTQuMyAzMiAzMiAzMmwzMiAwYzUzIDAgOTYtNDMgOTYtOTZzLTQzLTk2LTk2LTk2TDMyIDIyNGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJzMTQuMyAzMiAzMiAzMmwzODQgMGMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMmwtMzIgMGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJ6TTEyOCA1MTJsNDAgMGM0OC42IDAgODgtMzkuNCA4OC04OHMtMzkuNC04OC04OC04OEwzMiAzMzZjLTE3LjcgMC0zMiAxNC4zLTMyIDMyczE0LjMgMzIgMzIgMzJsMTM2IDBjMTMuMyAwIDI0IDEwLjcgMjQgMjRzLTEwLjcgMjQtMjQgMjRsLTQwIDBjLTE3LjcgMC0zMiAxNC4zLTMyIDMyczE0LjMgMzIgMzIgMzJ6Il19LFZZZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJsYXllci1ncm91cCIsaWNvbjpbNTEyLDUxMixbXSwiZjVmZCIsIk0yMzIuNSA1LjJjMTQuOS02LjkgMzIuMS02LjkgNDcgMGwyMTguNiAxMDFjOC41IDMuOSAxMy45IDEyLjQgMTMuOSAyMS44cy01LjQgMTcuOS0xMy45IDIxLjhsLTIxOC42IDEwMWMtMTQuOSA2LjktMzIuMSA2LjktNDcgMEwxMy45IDE0OS44QzUuNCAxNDUuOCAwIDEzNy4zIDAgMTI4czUuNC0xNy45IDEzLjktMjEuOEwyMzIuNSA1LjJ6TTQ4LjEgMjE4LjRsMTY0LjMgNzUuOWMyNy43IDEyLjggNTkuNiAxMi44IDg3LjMgMGwxNjQuMy03NS45IDM0LjEgMTUuOGM4LjUgMy45IDEzLjkgMTIuNCAxMy45IDIxLjhzLTUuNCAxNy45LTEzLjkgMjEuOGwtMjE4LjYgMTAxYy0xNC45IDYuOS0zMi4xIDYuOS00NyAwTDEzLjkgMjc3LjhDNS40IDI3My44IDAgMjY1LjMgMCAyNTZzNS40LTE3LjkgMTMuOS0yMS44bDM0LjEtMTUuOHpNMTMuOSAzNjIuMmwzNC4xLTE1LjggMTY0LjMgNzUuOWMyNy43IDEyLjggNTkuNiAxMi44IDg3LjMgMGwxNjQuMy03NS45IDM0LjEgMTUuOGM4LjUgMy45IDEzLjkgMTIuNCAxMy45IDIxLjhzLTUuNCAxNy45LTEzLjkgMjEuOGwtMjE4LjYgMTAxYy0xNC45IDYuOS0zMi4xIDYuOS00NyAwTDEzLjkgNDA1LjhDNS40IDQwMS44IDAgMzkzLjMgMCAzODRzNS40LTE3LjkgMTMuOS0yMS44eiJdfSxqWWU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiaGVhZC1zaWRlLW1hc2siLGljb246WzUxMiw1MTIsW10sImUwNjMiLCJNNDQ1LjkgMTkzYy0uMS0uNC0uMi0uOS0uMi0xLjMtMTUuNy0xMDguNC0xMDguOS0xOTEuNy0yMjEuNy0xOTEuNy04NSAwLTE1OSA0Ny40LTE5Ni45IDExNy4yTDI4My4zIDI4OCA0NTYgMjg4IDQ0Mi45IDMzNiAzMzYgMzM2Yy04LjggMC0xNiA3LjItMTYgMTZzNy4yIDE2IDE2IDE2bDk4LjIgMC04LjcgMzItODkuNSAwYy04LjggMC0xNiA3LjItMTYgMTZzNy4yIDE2IDE2IDE2bDgwLjYgMGMtNi43IDE5LjEtMjQuOCAzMi00NS4zIDMyTDI4OCA0NjRjLTE3LjcgMC0zMi0xNC4zLTMyLTMybDAtMTA0LjUtMjQ3LjUtMTY1QzMgMTgyLjEgMCAyMDIuNyAwIDIyNCAwIDI3OCAxOS4xIDMyNy41IDUwLjkgMzY2LjIgNTguOSAzNzUuOSA2NCAzODcuOCA2NCA0MDAuNEw2NCA0NjRjMCAyNi41IDIxLjUgNDggNDggNDhsMTI3LjMgMCAuNyAwIDEzMS4zIDBjNDQuOSAwIDgzLjgtMzEuMSA5My42LTc0LjlsMzMuOS0xNTAuM2MzLjMtMTQuNC0uMy0yOS41LTkuNy00MUw0NDUuOSAxOTN6TTI4OCAxOTJhMzIgMzIgMCAxIDEgNjQgMCAzMiAzMiAwIDEgMSAtNjQgMHoiXX0sWW09e3ByZWZpeDoiZmFzIixpY29uTmFtZToiaGFuZHMiLGljb246WzUxMiw1MTIsWyJzaWduLWxhbmd1YWdlIiwic2lnbmluZyJdLCJmMmE3IiwiTTUxMiAxNjBsLS4xIDcyLjZjMCA0NC44LTE3LjYgODcuMS00Ny45IDExOC40LS4zLTc3LTQwLjEtMTQ4LjQtMTA1LjQtMTg5LjNsLTEuOS0xLjJjMi41LTMuNyAyLjgtOC42IC40LTEyLjdsLTYyLTEwNy40Yy02LjYtMTEuNS0yLjctMjYuMiA4LjgtMzIuOFMzMzAgNSAzMzYuNiAxNi41bDY4IDExNy44IDAgMCAwIDAgNDMuMyA3NSAuMS00OS4zYzAtMTcuNyAxNC40LTMyIDMyLTMyczMyIDE0LjQgMzIgMzJ6TTI5OC40IDEyNC4yYy0xNC4xLTguOC0yOS44LTEyLjctNDUuMi0xMi4xTDIxNi43IDQ4LjhjLTYuNi0xMS41LTIuNy0yNi4yIDguOC0zMi44czI2LjItMi43IDMyLjggOC44bDY3LjEgMTE2LjItMjctMTYuOXpNMjExLjkgODguNWwxNi40IDI4LjRjLTE1LjEgNS41LTI4LjYgMTUuNi0zOC4zIDI5LjdsLTE5LjctMzQuMmMtNi42LTExLjUtMi43LTI2LjIgOC44LTMyLjhzMjYuMi0yLjcgMzIuOCA4Ljh6bS00Ni40IDYzLjdsMTIuNSAyMS43Yy0yIDguNi0yLjUgMTcuNS0xLjcgMjYuMWwtNC4zIDAgMCAwLTM0LjQgMC0xMy43LTIzLjhjLTYuNi0xMS41LTIuNy0yNi4yIDguOC0zMi44czI2LjItMi43IDMyLjggOC44ek0yMjguOSAxNzVjOS40LTE1IDI5LjEtMTkuNSA0NC4xLTEwLjJsNjAuMiAzNy42QzM4NC43IDIzNC43IDQxNiAyOTEuMiA0MTYgMzUybDAgOGMwIDgzLjktNjguMSAxNTItMTUyIDE1Mkw4OCA1MTJjLTEzLjMgMC0yNC0xMC43LTI0LTI0czEwLjctMjQgMjQtMjRsOTIgMGM2LjYgMCAxMi01LjQgMTItMTJzLTUuNC0xMi0xMi0xMkw1NiA0NDBjLTEzLjMgMC0yNC0xMC43LTI0LTI0czEwLjctMjQgMjQtMjRsMTI0IDBjNi42IDAgMTItNS40IDEyLTEycy01LjQtMTItMTItMTJMMjQgMzY4Yy0xMy4zIDAtMjQtMTAuNy0yNC0yNHMxMC43LTI0IDI0LTI0bDE1NiAwYzYuNiAwIDEyLTUuNCAxMi0xMnMtNS40LTEyLTEyLTEyTDU2IDI5NmMtMTMuMyAwLTI0LTEwLjctMjQtMjRzMTAuNy0yNCAyNC0yNGwxMzYgMCAwIDAgMCAwIDkzLjIgMC00Ni4yLTI4LjljLTE1LTkuNC0xOS41LTI5LjEtMTAuMi00NC4xeiJdfSxVWWU9WW0sV1llPVltLEdZZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJ0YWJsZXRzIixpY29uOls1MTIsNTEyLFtdLCJmNDkwIiwiTTQ5NS4zIDc2LjZjLTQuNi04LjctMTYuMy05LjctMjMuMy0yLjdMMjk3LjkgMjQ4Yy03IDctNiAxOC43IDIuNyAyMy4zIDIwLjEgMTAuNyA0MyAxNi43IDY3LjQgMTYuNyA3OS41IDAgMTQ0LTY0LjUgMTQ0LTE0NCAwLTI0LjMtNi00Ny4zLTE2LjctNjcuNHpNMjQwLjcgMjExLjRjNC42IDguNyAxNi4zIDkuNyAyMy4zIDIuN0w0MzguMSA0MGM3LTcgNi0xOC43LTIuNy0yMy4zLTIwLjEtMTAuNy00My0xNi43LTY3LjQtMTYuNy03OS41IDAtMTQ0IDY0LjUtMTQ0IDE0NCAwIDI0LjMgNiA0Ny4zIDE2LjcgNjcuNHpNMTQ0IDIyNEM3OS4yIDIyNCAyNC40IDI2Ni44IDYuMyAzMjUuNiAzLjQgMzM1LjEgMTEgMzQ0IDIwLjkgMzQ0bDI0Ni4yIDBjOS45IDAgMTcuNS04LjkgMTQuNi0xOC40LS45LTMtMS45LTUuOS0zLTguNy0zNy40LTE4LjEtNjgtNDgtODctODQuOC0xNC45LTUuMi0zMC45LTguMS00Ny42LTguMXpNMjgxLjcgNDEwLjRjMi45LTkuNS00LjctMTguNC0xNC42LTE4LjRMMjAuOSAzOTJDMTEgMzkyIDMuNCA0MDAuOSA2LjMgNDEwLjQgMjQuNCA0NjkuMiA3OS4yIDUxMiAxNDQgNTEyczExOS42LTQyLjggMTM3LjctMTAxLjZ6Il19LFlZZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJ3ZWlnaHQtaGFuZ2luZyIsaWNvbjpbNTEyLDUxMixbXSwiZjVjZCIsIk0yMjQgOTZhMzIgMzIgMCAxIDEgNjQgMCAzMiAzMiAwIDEgMSAtNjQgMHptMTIyLjUgMzJjMy41LTEwIDUuNS0yMC44IDUuNS0zMiAwLTUzLTQzLTk2LTk2LTk2cy05NiA0My05NiA5NmMwIDExLjIgMS45IDIyIDUuNSAzMmwtMjEuOCAwYy0yOC4zIDAtNTMuMiAxOC41LTYxLjMgNDUuNkwyLjQgNDQwLjJDLjggNDQ1LjQgMCA0NTAuOCAwIDQ1Ni4yIDAgNDg3IDI1IDUxMiA1NS44IDUxMmw0MDAuNCAwYzMwLjggMCA1NS44LTI1IDU1LjgtNTUuOCAwLTUuNC0uOC0xMC44LTIuNC0xNmwtODAtMjY2LjVjLTguMS0yNy4xLTMzLTQ1LjYtNjEuMy00NS42bC0yMS44IDB6Il19LFpZZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJkaWNlIixpY29uOls1MTIsNTEyLFsxMjc5MjJdLCJmNTIyIiwiTTE0MS40IDIuM0MxMDMtOCA2My41IDE0LjggNTMuMyA1My4yTDIuNSAyNDIuN0MtNy44IDI4MS4xIDE1IDMyMC42IDUzLjQgMzMwLjlsMTg5LjUgNTAuOGMzOC40IDEwLjMgNzcuOS0xMi41IDg4LjItNTAuOWw1MC44LTE4OS41YzEwLjMtMzguNC0xMi41LTc3LjktNTAuOS04OC4yTDE0MS40IDIuM3ptMjMgMjA1LjdhMzIgMzIgMCAxIDEgNTUuNC0zMiAzMiAzMiAwIDEgMSAtNTUuNCAzMnpNNzkuMiAyMjAuM2EzMiAzMiAwIDEgMSAzMiA1NS40IDMyIDMyIDAgMSAxIC0zMi01NS40em0xODUgOTYuNGEzMiAzMiAwIDEgMSAtMzItNTUuNCAzMiAzMiAwIDEgMSAzMiA1NS40em05LTIwOC40YTMyIDMyIDAgMSAxIDMyIDU1LjQgMzIgMzIgMCAxIDEgLTMyLTU1LjR6bS0xMjEgMTQuNGEzMiAzMiAwIDEgMSAtMzItNTUuNCAzMiAzMiAwIDEgMSAzMiA1NS40ek00MTggMTkyTDM3Ny40IDM0My4yYy0xNy4yIDY0LTgzIDEwMi0xNDcgODQuOWwtMzguMy0xMC4zIDAgMzAuMmMwIDM1LjMgMjguNyA2NCA2NCA2NGwxOTIgMGMzNS4zIDAgNjQtMjguNyA2NC02NGwwLTE5MmMwLTM1LjMtMjguNy02NC02NC02NEw0MTggMTkyeiJdfSxwcT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJzaG9wLXNsYXNoIixpY29uOls1NzYsNTEyLFsic3RvcmUtYWx0LXNsYXNoIl0sImUwNzAiLCJNNDEtMjQuOWMtOS40LTkuNC0yNC42LTkuNC0zMy45IDBTLTIuMy0uMyA3IDkuMWw1MjggNTI4YzkuNCA5LjQgMjQuNiA5LjQgMzMuOSAwczkuNC0yNC42IDAtMzMuOWwtNTctNTcgMC0xOTAuM2MyNi44LTEuOSA0OC0yNC4zIDQ4LTUxLjYgMC04LTEuOS0xNi01LjUtMjMuMkw0OTcuNyA2Ny40QzQ4Ni44IDQ1LjcgNDY0LjcgMzIgNDQwLjQgMzJMMTM1LjYgMzJjLTEwLjcgMC0yMSAyLjctMzAuMiA3LjZMNDEtMjQuOXpNMzIxLjggMjU2TDQ0OCAyNTYgNDQ4IDM4Mi4yIDMyMS44IDI1NnpNMzUyIDQyMS44bC02NC02NCAwIDEwLjJjMCA4LjgtNy4yIDE2LTE2IDE2bC0xMjggMGMtOC44IDAtMTYtNy4yLTE2LTE2bDAtMTEyIDU4LjIgMC0xMzQuOC0xMzQuOC0yOS45IDU5LjljLTMuNiA3LjItNS41IDE1LjEtNS41IDIzLjIgMCAyNy4zIDIxLjIgNDkuNyA0OCA1MS42TDY0IDQzMmMwIDI2LjUgMjEuNSA0OCA0OCA0OGwxOTIgMGMyNi41IDAgNDgtMjEuNSA0OC00OGwwLTEwLjJ6Il19LFhZZT1wcSx1cT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJzb3J0LWRvd24iLGljb246WzM4NCw1MTIsWyJzb3J0LWRlc2MiXSwiZjBkZCIsIk0zMiAyODhjLTEyLjkgMC0yNC42IDcuOC0yOS42IDE5LjhTLjIgMzMzLjUgOS40IDM0Mi42bDE2MCAxNjBjMTIuNSAxMi41IDMyLjggMTIuNSA0NS4zIDBsMTYwLTE2MGM5LjItOS4yIDExLjktMjIuOSA2LjktMzQuOVMzNjQuOSAyODggMzUyIDI4OEwzMiAyODh6Il19LEtZZT11cSxRWWU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToicGVzZXRhLXNpZ24iLGljb246WzQ0OCw1MTIsW10sImUyMjEiLCJNMTEyIDMyQzk0LjMgMzIgODAgNDYuMyA4MCA2NGwwIDEwNC0yNCAwYy0xMy4zIDAtMjQgMTAuNy0yNCAyNHMxMC43IDI0IDI0IDI0bDI0IDAgMCAyMzJjMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMmwwLTk2IDk2IDBjODAuMiAwIDE0Ni42LTU5IDE1OC4yLTEzNmwyNS44IDBjMTMuMyAwIDI0LTEwLjcgMjQtMjRzLTEwLjctMjQtMjQtMjRsLTI1LjggMEMzODYuNiA5MSAzMjAuMiAzMiAyNDAgMzJMMTEyIDMyek0zMzMgMTY4bC0xODkgMCAwLTcyIDk2IDBjNDQuNyAwIDgyLjMgMzAuNiA5MyA3MnpNMTQ0IDIxNmwxODkgMGMtMTAuNyA0MS40LTQ4LjIgNzItOTMgNzJsLTk2IDAgMC03MnoiXX0sZnE9e3ByZWZpeDoiZmFzIixpY29uTmFtZToidGFibGV0LXNjcmVlbi1idXR0b24iLGljb246WzQ0OCw1MTIsWyJ0YWJsZXQtYWx0Il0sImYzZmEiLCJNMCA2NEMwIDI4LjcgMjguNyAwIDY0IDBMMzg0IDBjMzUuMyAwIDY0IDI4LjcgNjQgNjRsMCAzODRjMCAzNS4zLTI4LjcgNjQtNjQgNjRMNjQgNTEyYy0zNS4zIDAtNjQtMjguNy02NC02NEwwIDY0ek0yNTYgNDMyYTMyIDMyIDAgMSAwIC02NCAwIDMyIDMyIDAgMSAwIDY0IDB6TTM4NCA2NGwtMzIwIDAgMCAyODggMzIwIDAgMC0yODh6Il19LEpZZT1mcSxtcT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJoYW5kLWhvbGRpbmctZG9sbGFyIixpY29uOls1NzYsNTEyLFsiaGFuZC1ob2xkaW5nLXVzZCJdLCJmNGMwIiwiTTI4OC0xNmMtMTMuMyAwLTI0IDEwLjctMjQgMjRsMCAxMi0xLjggMGMtMzYuNiAwLTY2LjIgMjkuNy02Ni4yIDY2LjIgMCAzMy40IDI0LjkgNjEuNiA1OCA2NS43bDYxIDcuNmM1LjEgLjYgOSA1IDkgMTAuMiAwIDUuNy00LjYgMTAuMi0xMC4yIDEwLjJMMjQwIDE4MGMtMTUuNSAwLTI4IDEyLjUtMjggMjhzMTIuNSAyOCAyOCAyOGwyNCAwIDAgMTJjMCAxMy4zIDEwLjcgMjQgMjQgMjRzMjQtMTAuNyAyNC0yNGwwLTEyIDEuOCAwYzM2LjYgMCA2Ni4yLTI5LjcgNjYuMi02Ni4yIDAtMzMuNC0yNC45LTYxLjYtNTgtNjUuN2wtNjEtNy42Yy01LjEtLjYtOS01LTktMTAuMiAwLTUuNyA0LjYtMTAuMiAxMC4yLTEwLjJMMzI4IDc2YzE1LjUgMCAyOC0xMi41IDI4LTI4cy0xMi41LTI4LTI4LTI4bC0xNiAwIDAtMTJjMC0xMy4zLTEwLjctMjQtMjQtMjR6TTEwOS4zIDM0MS41TDY2LjcgMzg0IDMyIDM4NGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJsMCA2NGMwIDE3LjcgMTQuMyAzMiAzMiAzMmwzMjAuNSAwYzI5IDAgNTcuMy05LjMgODAuNy0yNi41bDEyNi42LTkzLjNjMTcuOC0xMy4xIDIxLjYtMzguMSA4LjUtNTUuOXMtMzguMS0yMS42LTU1LjktOC41TDM5Mi42IDQxNiAyODAgNDE2Yy0xMy4zIDAtMjQtMTAuNy0yNC0yNHMxMC43LTI0IDI0LTI0bDcyIDBjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJsLTE1Mi4yIDBjLTMzLjkgMC02Ni41IDEzLjUtOTAuNSAzNy41eiJdfSxlWmU9bXEsZ3E9e3ByZWZpeDoiZmFzIixpY29uTmFtZToic2hpZWxkIixpY29uOls1MTIsNTEyLFsxMjg3MzcsInNoaWVsZC1ibGFuayJdLCJmMTMyIiwiTTI1NiAwYzQuNiAwIDkuMiAxIDEzLjQgMi45TDQ1Ny44IDgyLjhjMjIgOS4zIDM4LjQgMzEgMzguMyA1Ny4yLS41IDk5LjItNDEuMyAyODAuNy0yMTMuNiAzNjMuMi0xNi43IDgtMzYuMSA4LTUyLjggMC0xNzIuNC04Mi41LTIxMy4xLTI2NC0yMTMuNi0zNjMuMi0uMS0yNi4yIDE2LjMtNDcuOSAzOC4zLTU3LjJMMjQyLjcgMi45QzI0Ni45IDEgMjUxLjQgMCAyNTYgMHoiXX0sdFplPWdxLGJxPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImZhY2UtbGF1Z2giLGljb246WzUxMiw1MTIsWyJsYXVnaCJdLCJmNTk5IiwiTTI1NiA1MTJhMjU2IDI1NiAwIDEgMCAwLTUxMiAyNTYgMjU2IDAgMSAwIDAgNTEyek0xMDEuNiAzMTRjLTMuNy0xMy43IDcuNS0yNiAyMS43LTI2bDI2NS40IDBjMTQuMiAwIDI1LjQgMTIuMyAyMS43IDI2LTE4LjUgNjgtODAuNiAxMTgtMTU0LjQgMTE4UzEyMCAzODIgMTAxLjYgMzE0ek0xNDQgMTkyYTMyIDMyIDAgMSAxIDY0IDAgMzIgMzIgMCAxIDEgLTY0IDB6bTE5Mi0zMmEzMiAzMiAwIDEgMSAwIDY0IDMyIDMyIDAgMSAxIDAtNjR6Il19LGFaZT1icSxpWmU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiaGFuZHMtaG9sZGluZyIsaWNvbjpbNjQwLDUxMixbXSwiZjRjMiIsIk04MCAxMDRjMC0yMi4xLTE3LjktNDAtNDAtNDBTMCA4MS45IDAgMTA0TDAgMzI1LjVjMCAyNS41IDEwLjEgNDkuOSAyOC4xIDY3LjlMMTI4IDQ5My4zYzEyIDEyIDI4LjMgMTguNyA0NS4zIDE4LjdsNjYuNyAwYzI2LjUgMCA0OC0yMS41IDQ4LTQ4bDAtNzguOWMwLTI5LjctMTEuOC01OC4yLTMyLjgtNzkuMmwtMjUuMy0yNS4zIDAgMGMtNy4zLTcuMy0yMy4xLTIzLjEtNDcuMi00Ny4yLTEyLjUtMTIuNS0zMi44LTEyLjUtNDUuMyAwcy0xMi41IDMyLjggMCA0NS4zYzI0LjEgMjQuMSAzOS45IDM5LjkgNDcuMiA0Ny4yIDExIDExIDkuMiAyOS4yLTMuNyAzNy44LTkuNyA2LjUtMjIuNyA1LjItMzEtMy4xTDk4LjcgMzA5LjVjLTEyLTEyLTE4LjctMjguMy0xOC43LTQ1LjNMODAgMTA0em00ODAgMGwwIDE2MC4yYzAgMTctNi43IDMzLjMtMTguNyA0NS4zbC01MS4xIDUxLjFjLTguMyA4LjMtMjEuMyA5LjYtMzEgMy4xLTEyLjktOC42LTE0LjctMjYuOS0zLjctMzcuOCA3LjMtNy4zIDIzLjEtMjMuMSA0Ny4yLTQ3LjIgMTIuNS0xMi41IDEyLjUtMzIuOCAwLTQ1LjNzLTMyLjgtMTIuNS00NS4zIDBjLTI0LjEgMjQuMS0zOS45IDM5LjktNDcuMiA0Ny4ybDAgMC0yNS4zIDI1LjNjLTIxIDIxLTMyLjggNDkuNS0zMi44IDc5LjJsMCA3OC45YzAgMjYuNSAyMS41IDQ4IDQ4IDQ4bDY2LjcgMGMxNyAwIDMzLjMtNi43IDQ1LjMtMTguN2w5OS45LTk5LjljMTgtMTggMjguMS00Mi40IDI4LjEtNjcuOUw2NDAgMTA0YzAtMjIuMS0xNy45LTQwLTQwLTQwcy00MCAxNy45LTQwIDQweiJdfSx2cT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJjYXJ0LXNob3BwaW5nIixpY29uOls2NDAsNTEyLFsxMjg3MjIsInNob3BwaW5nLWNhcnQiXSwiZjA3YSIsIk0yNC0xNkMxMC43LTE2IDAtNS4zIDAgOFMxMC43IDMyIDI0IDMybDQ1LjMgMGMzLjkgMCA3LjIgMi44IDcuOSA2LjZsNTIuMSAyODYuM2M2LjIgMzQuMiAzNiA1OS4xIDcwLjggNTkuMUw0NTYgMzg0YzEzLjMgMCAyNC0xMC43IDI0LTI0cy0xMC43LTI0LTI0LTI0bC0yNTUuOSAwYy0xMS42IDAtMjEuNS04LjMtMjMuNi0xOS43bC01LjEtMjguMyAzMDMuNiAwYzMwLjggMCA1Ny4yLTIxLjkgNjIuOS01Mi4yTDU2OC45IDY5LjlDNTcyLjYgNTAuMiA1NTcuNSAzMiA1MzcuNCAzMmwtNDEyLjcgMC0uNC0yYy00LjgtMjYuNi0yOC00Ni01NS4xLTQ2TDI0LTE2ek0yMDggNTEyYTQ4IDQ4IDAgMSAwIDAtOTYgNDggNDggMCAxIDAgMCA5NnptMjI0IDBhNDggNDggMCAxIDAgMC05NiA0OCA0OCAwIDEgMCAwIDk2eiJdfSxyWmU9dnEsc1plPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6Im9jdGFnb24iLGljb246WzUxMiw1MTIsWzEyODcyMV0sImYzMDYiLCJNMTg4LjYgLjFjLTE3IDAtMzMuMyA2LjctNDUuMyAxOC43TDE5LjIgMTQzQzcuMiAxNTUgLjUgMTcxLjIgLjUgMTg4LjJsMCAxMzUuNmMwIDE3IDYuNyAzMy4zIDE4LjcgNDUuM0wxNDMuNCA0OTMuMmMxMiAxMiAyOC4zIDE4LjcgNDUuMyAxOC43bDEzNS42IDBjMTcgMCAzMy4zLTYuNyA0NS4zLTE4LjdMNDkzLjYgMzY5YzEyLTEyIDE4LjctMjguMyAxOC43LTQ1LjNsMC0xMzUuNmMwLTE3LTYuNy0zMy4zLTE4LjctNDUuM0wzNjkuNSAxOC44Yy0xMi0xMi0yOC4zLTE4LjctNDUuMy0xOC43TDE4OC42IC4xeiJdfSxuWmU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiaGFuZC1wb2ludGVyIixpY29uOls0NDgsNTEyLFtdLCJmMjVhIiwiTTEyOCA0MGMwLTIyLjEgMTcuOS00MCA0MC00MHM0MCAxNy45IDQwIDQwbDAgMTQ4LjJjOC41LTcuNiAxOS43LTEyLjIgMzItMTIuMiAyMC42IDAgMzguMiAxMyA0NSAzMS4yIDguOC05LjMgMjEuMi0xNS4yIDM1LTE1LjIgMjUuMyAwIDQ2IDE5LjUgNDcuOSA0NC4zIDguNS03LjcgMTkuOC0xMi4zIDMyLjEtMTIuMyAyNi41IDAgNDggMjEuNSA0OCA0OGwwIDExMmMwIDcwLjctNTcuMyAxMjgtMTI4IDEyOGwtODUuMyAwYy01IDAtOS45LS4zLTE0LjctMS01NS4zLTUuNi0xMDYuMi0zNC0xNDAtNzlMOCAzMzZjLTEzLjMtMTcuNy05LjctNDIuNyA4LTU2czQyLjctOS43IDU2IDhsNTYgNzQuNyAwLTMyMi43ek0yNDAgMzA0YzAtOC44LTcuMi0xNi0xNi0xNnMtMTYgNy4yLTE2IDE2bDAgOTZjMCA4LjggNy4yIDE2IDE2IDE2czE2LTcuMiAxNi0xNmwwLTk2em00OC0xNmMtOC44IDAtMTYgNy4yLTE2IDE2bDAgOTZjMCA4LjggNy4yIDE2IDE2IDE2czE2LTcuMiAxNi0xNmwwLTk2YzAtOC44LTcuMi0xNi0xNi0xNnptODAgMTZjMC04LjgtNy4yLTE2LTE2LTE2cy0xNiA3LjItMTYgMTZsMCA5NmMwIDguOCA3LjIgMTYgMTYgMTZzMTYtNy4yIDE2LTE2bDAtOTZ6Il19LG9aZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJyZWdpc3RlcmVkIixpY29uOls1MTIsNTEyLFsxNzRdLCJmMjVkIiwiTTI1NiA1MTJhMjU2IDI1NiAwIDEgMCAwLTUxMiAyNTYgMjU2IDAgMSAwIDAgNTEyek0yMDAgMTQ0bDgwIDBjMzkuOCAwIDcyIDMyLjIgNzIgNzIgMCAyOC45LTE3IDUzLjgtNDEuNiA2NS4zbDMwLjIgNTAuM2M2LjggMTEuNCAzLjEgMjYuMS04LjIgMzIuOXMtMjYuMSAzLjEtMzIuOS04LjJsLTQxLTY4LjMtMzQuNCAwIDAgNTZjMCAxMy4zLTEwLjcgMjQtMjQgMjRzLTI0LTEwLjctMjQtMjRsMC0xNzZjMC0xMy4zIDEwLjctMjQgMjQtMjR6bTcyIDk2bDggMGMxMy4zIDAgMjQtMTAuNyAyNC0yNHMtMTAuNy0yNC0yNC0yNGwtNTYgMCAwIDQ4IDQ4IDB6Il19LGxaZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJob3VzZS1zaWduYWwiLGljb246WzU3Niw1MTIsW10sImUwMTIiLCJNNTE1LjkgMjQwbC0xOS45IDAgMCAxNDRjMCAzNS4zLTI4LjcgNjQtNjQgNjRsLTEzNyAwYy0yNC05MS43LTkzLjUtMTY1LTE4My0xOTQuM2wwLTEzLjctMTkuOSAwYy0xNS41IDAtMjguMS0xMi42LTI4LjEtMjguMSAwLTcuNiAzLjEtMTQuOSA4LjYtMjAuMkwyNzYuNS00LjlDMjgzLjktMTIgMjkzLjctMTYgMzA0LTE2czIwLjEgNCAyNy41IDExLjFMNTM1LjQgMTkxLjdjNS41IDUuMyA4LjYgMTIuNiA4LjYgMjAuMiAwIDE1LjUtMTIuNiAyOC4xLTI4LjEgMjguMXpNMjgwIDE5MmMtMTMuMyAwLTI0IDEwLjctMjQgMjRsMCA0OGMwIDEzLjMgMTAuNyAyNCAyNCAyNGw0OCAwYzEzLjMgMCAyNC0xMC43IDI0LTI0bDAtNDhjMC0xMy4zLTEwLjctMjQtMjQtMjRsLTQ4IDB6TTI0IDI4OGMxMjguMSAwIDIzMiAxMDMuOSAyMzIgMjMyIDAgMTMuMy0xMC43IDI0LTI0IDI0cy0yNC0xMC43LTI0LTI0YzAtMTAxLjYtODIuNC0xODQtMTg0LTE4NC0xMy4zIDAtMjQtMTAuNy0yNC0yNHMxMC43LTI0IDI0LTI0em04IDE5MmEzMiAzMiAwIDEgMSAwIDY0IDMyIDMyIDAgMSAxIDAtNjR6TTAgNDA4YzAtMTMuMyAxMC43LTI0IDI0LTI0IDc1LjEgMCAxMzYgNjAuOSAxMzYgMTM2IDAgMTMuMy0xMC43IDI0LTI0IDI0cy0yNC0xMC43LTI0LTI0YzAtNDguNi0zOS40LTg4LTg4LTg4LTEzLjMgMC0yNC0xMC43LTI0LTI0eiJdfSxjWmU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiYmFuZ2xhZGVzaGktdGFrYS1zaWduIixpY29uOlszODQsNTEyLFtdLCJlMmU2IiwiTTM2IDMyLjNDMTguNCAzMC4xIDIuNCA0Mi41IC4zIDYwUzEwLjUgOTMuNiAyOCA5NS44bDcuOSAxYzE2IDIgMjggMTUuNiAyOCAzMS44bDAgMzEuNS00MCAwYy0xMy4zIDAtMjQgMTAuNy0yNCAyNHMxMC43IDI0IDI0IDI0bDQwIDAgMCAxNzZjMCA1MyA0MyA5NiA5NiA5NmwzMiAwYzEwNiAwIDE5Mi04NiAxOTItMTkybDAtMzJjMC01My00My05Ni05Ni05NmwtMTYgMGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJzMTQuMyAzMiAzMiAzMmwxNiAwYzE3LjcgMCAzMiAxNC4zIDMyIDMybDAgMzJjMCA3MC43LTU3LjMgMTI4LTEyOCAxMjhsLTMyIDBjLTE3LjcgMC0zMi0xNC4zLTMyLTMybDAtMTc2IDQwIDBjMTMuMyAwIDI0LTEwLjcgMjQtMjRzLTEwLjctMjQtMjQtMjRsLTQwIDAgMC0zMS41QzEyOCA4MC4xIDkyIDM5LjIgNDMuOSAzMy4ybC03LjktMXoiXX0sQ2p0PXtmYTA6d3dlLGZhMTpNd2UsZmEyOnp3ZSxmYTM6a3dlLGZhNDpTd2UsZmE1OkN3ZSxmYTY6X3dlLGZhNzpUd2UsZmE4Okx3ZSxmYTk6JHdlLGZhRG9sbGFyU2lnbjpRZixmYURvbGxhcjpBd2UsZmFVc2Q6RHdlLGZhRG9nOkV3ZSxmYVRydWNrTW92aW5nOlB3ZSxmYVJvdGF0ZTpjSSxmYVN5bmNBbHQ6SXdlLGZhU3F1YXJlTWludXM6ZEksZmFNaW51c1NxdWFyZTpOd2UsZmFBbGlnbkp1c3RpZnk6RndlLGZhQ2FsZW5kYXJDaGVjazpPd2UsZmFGYWNlS2lzczpoSSxmYUtpc3M6UndlLGZhS2l0Y2hlblNldDpCd2UsZmFEbmE6SHdlLGZhQ2hpbGRSZWFjaGluZzpxd2UsZmFQYXN0ZTpRNSxmYUZpbGVDbGlwYm9hcmQ6VndlLGZhTWV0ZW9yOmp3ZSxmYUdlYXJzOnBJLGZhQ29nczpVd2UsZmFGaWxlQ2lyY2xlUGx1czpXd2UsZmFJY2ljbGVzOkd3ZSxmYUFycm93VHJlbmRVcDpZd2UsZmFIZXhhZ29uTm9kZXNCb2x0Olp3ZSxmYVF1ZXN0aW9uOlh3ZSxmYUhhbmRzQm91bmQ6S3dlLGZhUGVyc29uV2Fsa2luZ0x1Z2dhZ2U6UXdlLGZhRmlsZUFycm93RG93bjp1SSxmYUZpbGVEb3dubG9hZDpKd2UsZmFQZXJzb25Cb290aDplTWUsZmFMb2N1c3Q6dE1lLGZhUmlnaHRMb25nOmZJLGZhTG9uZ0Fycm93QWx0UmlnaHQ6YU1lLGZhVHJ1Y2tEcm9wbGV0OmlNZSxmYUhhbmRIb2xkaW5nTWVkaWNhbDpyTWUsZmFIYW5kUG9pbnRMZWZ0OnNNZSxmYUNhbGN1bGF0b3I6bk1lLGZhTWludXM6SjUsZmFTdWJ0cmFjdDpvTWUsZmFBcnJvd1VwWkE6bUksZmFTb3J0QWxwaGFVcEFsdDpsTWUsZmFNaWNyb3Bob25lU2xhc2g6Y01lLGZhU3F1YXJlUGVuOkpmLGZhUGVuU3F1YXJlOmRNZSxmYVBlbmNpbFNxdWFyZTpoTWUsZmFIYW5kRmlzdDpnSSxmYUZpc3RSYWlzZWQ6cE1lLGZhQ29tbWVudFNtczpiSSxmYVNtczp1TWUsZmFTaW1DYXJkOmZNZSxmYVNjYWxlQmFsYW5jZWQ6dkksZmFCYWxhbmNlU2NhbGU6bU1lLGZhQ2FyOnlJLGZhQXV0b21vYmlsZTpnTWUsZmFDcm9wU2ltcGxlOnhJLGZhQ3JvcEFsdDpiTWUsZmFNZWRhbDp2TWUsZmFTY3JvbGw6eU1lLGZhRmlsZUV4Y2VsOnhNZSxmYUZpbHRlcjp3TWUsZmFEcnVtOk1NZSxmYU1hcFBpbjp6TWUsZmFTY2FsZVVuYmFsYW5jZWRGbGlwOndJLGZhQmFsYW5jZVNjYWxlUmlnaHQ6a01lLGZhQXJyb3dzVG9DaXJjbGU6U01lLGZhRW52ZWxvcGU6Q01lLGZhQmFieTpfTWUsZmFTcXVhcmVDYXJldERvd246TUksZmFDYXJldFNxdWFyZURvd246VE1lLGZhVGVudDpMTWUsZmFBOiRNZSxmYVBhcmFjaHV0ZUJveDpBTWUsZmFDYXJ0QXJyb3dEb3duOkRNZSxmYUJyaWRnZUNpcmNsZUV4Y2xhbWF0aW9uOkVNZSxmYUNsb3VkQXJyb3dVcDplbSxmYUNsb3VkVXBsb2FkOlBNZSxmYUNsb3VkVXBsb2FkQWx0OklNZSxmYUF0Ok5NZSxmYUluZGlhblJ1cGVlU2lnbjp0bSxmYUluZGlhblJ1cGVlOkZNZSxmYUlucjpPTWUsZmFUcnVjazpSTWUsZmFDaGFsa2JvYXJkVXNlcjp6SSxmYUNoYWxrYm9hcmRUZWFjaGVyOkJNZSxmYVVzZXJDaGVjazpITWUsZmFVc2VyTmluamE6cU1lLGZhUGxhbnRXaWx0OlZNZSxmYVdlaWdodFNjYWxlOmtJLGZhV2VpZ2h0OmpNZSxmYUNhcmV0UmlnaHQ6Wm0sZmFGbG9yaW5TaWduOlVNZSxmYUJlbGw6WG0sZmFMYXJpU2lnbjpXTWUsZmFNaWxsU2lnbjpHTWUsZmFQZXJzb25Tbm93Ym9hcmRpbmc6U0ksZmFTbm93Ym9hcmRpbmc6WU1lLGZhVHR5OkNJLGZhVGVsZXR5cGU6Wk1lLGZhVXNlcnNSZWN0YW5nbGU6WE1lLGZhTW9iaWxlOmFtLGZhTW9iaWxlQW5kcm9pZDpLTWUsZmFNb2JpbGVQaG9uZTpRTWUsZmFBcnJvd3NUdXJuVG9Eb3RzOkpNZSxmYUV4Y2xhbWF0aW9uOmV6ZSxmYUNodXJjaDp0emUsZmFUb2dnbGVPZmY6YXplLGZhU2hvZVByaW50czppemUsZmFGaWxlQ2lyY2xlRXhjbGFtYXRpb246cnplLGZhV2FsbGV0OkttLGZhTWVzc2FnZTplOCxmYUNvbW1lbnRBbHQ6c3plLGZhVHJvcGh5Om56ZSxmYUZhY2VEaXp6eTpfSSxmYURpenp5Om96ZSxmYUJhY3RlcmlhOmx6ZSxmYUVhckRlYWY6TjUsZmFEZWFmOmN6ZSxmYURlYWZuZXNzOmR6ZSxmYUhhcmRPZkhlYXJpbmc6aHplLGZhUGVvcGxlQXJyb3dzOlRJLGZhUGVvcGxlQXJyb3dzTGVmdFJpZ2h0OnB6ZSxmYUhhbmRzQ2xhcHBpbmc6dXplLGZhVmlydXNDb3ZpZFNsYXNoOmZ6ZSxmYUNhbGVuZGFyRGF5czpMSSxmYUNhbGVuZGFyQWx0Om16ZSxmYURpYW1vbmRUdXJuUmlnaHQ6JEksZmFEaXJlY3Rpb25zOmd6ZSxmYUhhbmRQb2ludFVwOmJ6ZSxmYUJlemllckN1cnZlOnZ6ZSxmYVBlcnNvbkhhbGZEcmVzczp5emUsZmFTcXVhcmVQb2xsSG9yaXpvbnRhbDpBSSxmYVBvbGxIOnh6ZSxmYVNjaG9vbENpcmNsZVhtYXJrOnd6ZSxmYUhhbmRMaXphcmQ6TXplLGZhQ2hhbGtib2FyZDpESSxmYUJsYWNrYm9hcmQ6enplLGZhVXBSaWdodEZyb21TcXVhcmU6RUksZmFFeHRlcm5hbExpbmtBbHQ6a3plLGZhU3F1YXJlRnVsbDpTemUsZmFDbG92ZXI6Q3plLGZhVGVldGhPcGVuOl96ZSxmYUJhcnNTdGFnZ2VyZWQ6aW0sZmFSZW9yZGVyOlR6ZSxmYVN0cmVhbTpMemUsZmFXYXJlaG91c2U6JHplLGZhU3dhdGNoYm9vazpBemUsZmFDYW1wZ3JvdW5kOkR6ZSxmYVBlcnNvbldhbGtpbmdBcnJvd1JpZ2h0OkV6ZSxmYUdsYXNzZXM6UHplLGZhQ2lyY2xlUGF1c2U6UEksZmFQYXVzZUNpcmNsZTpJemUsZmFNZW1vcnk6TnplLGZhR2lmdDpGemUsZmFNb25leUJpbGxXaGVhdDpPemUsZmFEdW5nZW9uOlJ6ZSxmYVN1aXRjYXNlTWVkaWNhbDpJSSxmYU1lZGtpdDpCemUsZmFQZXJzb25DYW5lOkh6ZSxmYUdhdWdlOkY1LGZhRGFzaGJvYXJkOnF6ZSxmYUdhdWdlTWVkOlZ6ZSxmYVRhY2hvbWV0ZXJBbHRBdmVyYWdlOmp6ZSxmYUVudmVsb3BlT3BlblRleHQ6VXplLGZhVG9vbGJveDpXemUsZmFQb3dlck9mZjpHemUsZmFTaWduYWw6cm0sZmFTaWduYWw1Oll6ZSxmYVNpZ25hbFBlcmZlY3Q6WnplLGZhQXJyb3dzU3BpbjpYemUsZmFKb2ludDpLemUsZmFCcmFpbGxlOlF6ZSxmYUJhc2tldFNob3BwaW5nOk5JLGZhU2hvcHBpbmdCYXNrZXQ6SnplLGZhQnJpZGdlOmVrZSxmYVBsYW5lQXJyaXZhbDp0a2UsZmFDYXNoUmVnaXN0ZXI6YWtlLGZhUmluZzppa2UsZmFBcXVhcml1czpya2UsZmFTaGFyZU5vZGVzOkZJLGZhU2hhcmVBbHQ6c2tlLGZhUGVyc29uQ2lyY2xlRXhjbGFtYXRpb246bmtlLGZhQmlub2N1bGFyczpva2UsZmFLaXBTaWduOmxrZSxmYUhhcmREcml2ZTpPSSxmYUhkZDpja2UsZmFSYW5raW5nU3Rhcjpka2UsZmFVc2VyVGllOmhrZSxmYUVsbGlwc2lzOlJJLGZhRWxsaXBzaXNIOnBrZSxmYVN0b3JlU2xhc2g6dWtlLGZhUGVyY2VudDpCSSxmYVBlcmNlbnRhZ2U6ZmtlLGZhRmlsZVppcHBlcjpISSxmYUZpbGVBcmNoaXZlOm1rZSxmYURpc3BsYXk6Z2tlLGZhSWNvbnM6cUksZmFIZWFydE11c2ljQ2FtZXJhQm9sdDpia2UsZmFSdWxlclZlcnRpY2FsOnZrZSxmYU1hcExvY2F0aW9uRG90OlZJLGZhTWFwTWFya2VkQWx0OnlrZSxmYUhlYXJ0Q3JhY2s6akksZmFIZWFydEJyb2tlbjp4a2UsZmFDb3c6d2tlLGZhUnNzOnQ4LGZhRmVlZDpNa2UsZmFNYWduaWZ5aW5nR2xhc3M6YTgsZmFTZWFyY2g6emtlLGZhQ2xvdWRNb29uOmtrZSxmYUJveGVzU3RhY2tlZDpzbSxmYUJveGVzOlNrZSxmYUJveGVzQWx0OkNrZSxmYUNvZGVCcmFuY2g6X2tlLGZhQmFuOlVJLGZhQ2FuY2VsOlRrZSxmYUp1Z0RldGVyZ2VudDpMa2UsZmFSZXBseTpXSSxmYU1haWxSZXBseToka2UsZmFTdW5QbGFudFdpbHQ6QWtlLGZhQmFjdGVyaXVtOkRrZSxmYVJlY29yZFZpbnlsOkVrZSxmYUZsb3BweURpc2s6R0ksZmFTYXZlOlBrZSxmYVRvaWxldHNQb3J0YWJsZTpJa2UsZmFPOk5rZSxmYVBhbGV0dGU6RmtlLGZhVW5sb2NrOk9rZSxmYUVhckxpc3RlbjpZSSxmYUFzc2lzdGl2ZUxpc3RlbmluZ1N5c3RlbXM6UmtlLGZhQ29kZVB1bGxSZXF1ZXN0OkJrZSxmYUtleTpIa2UsZmFTa3VsbDpxa2UsZmFNYXJzU3Ryb2tlVXA6WkksZmFNYXJzU3Ryb2tlVjpWa2UsZmFGaXJlRmxhbWVTaW1wbGU6WEksZmFCdXJuOmprZSxmYVRyZWU6VWtlLGZhU21vZzpXa2UsZmFTOkdrZSxmYUplZGk6WWtlLGZhUGVyc29uSGlraW5nOktJLGZhSGlraW5nOlprZSxmYUFycm93c1VwVG9MaW5lOlhrZSxmYU1hcnNEb3VibGU6S2tlLGZhVGhlcm1vbWV0ZXI6UWtlLGZhUGFpbnRicnVzaDpRSSxmYVBhaW50QnJ1c2g6SmtlLGZhTmV1dGVyOmVTZSxmYVNxdWFyZVBob25lRmxpcDpKSSxmYVBob25lU3F1YXJlQWx0OnRTZSxmYUZhY2VHcmluVG9uZ3VlU3F1aW50OmVOLGZhR3JpblRvbmd1ZVNxdWludDphU2UsZmFDb21tZW50RG9sbGFyOmlTZSxmYUhpcHBvOnJTZSxmYUJvd2xGb29kOnNTZSxmYVNxdWFyZVZpcnVzOm5TZSxmYUNsb3VkU3VuUmFpbjpvU2UsZmFBcnJvd1JpZ2h0TG9uZzp0TixmYUxvbmdBcnJvd1JpZ2h0OmxTZSxmYUJ1aWxkaW5nVW46Y1NlLGZhVGVtcGVyYXR1cmVMb3c6ZFNlLGZhRG9vck9wZW46aFNlLGZhQWxpZ25MZWZ0OnBTZSxmYUNhbWVyYTphTixmYUNhbWVyYUFsdDp1U2UsZmFVc2Vyc1JheXM6ZlNlLGZhUmFpbmJvdzptU2UsZmFTaXRlbWFwOmdTZSxmYUZhY2VHcmluU3RhcnM6aU4sZmFHcmluU3RhcnM6YlNlLGZhU29ydFVwOnJOLGZhU29ydEFzYzp2U2UsZmFFeWU6UW0sZmFDYXJldExlZnQ6Sm0sZmFBcHBsZVdob2xlOnNOLGZhQXBwbGVBbHQ6eVNlLGZhU2Nyb2xsVG9yYWg6bk4sZmFUb3JhaDp4U2UsZmFIb3VzZUxvY2s6d1NlLGZhQXJyb3dzTGVmdFJpZ2h0VG9MaW5lOk1TZSxmYVRyYXNoOmY4LGZhRmFjZVNhZFRlYXI6b04sZmFTYWRUZWFyOnpTZSxmYUZheDprU2UsZmFQZXJzb25DaXJjbGVQbHVzOlNTZSxmYUhhbXNhOkNTZSxmYVBlcnNvbkNpcmNsZVF1ZXN0aW9uOl9TZSxmYUNsaXBib2FyZENoZWNrOlRTZSxmYVNoYXJlRnJvbVNxdWFyZTpsTixmYVNoYXJlU3F1YXJlOkxTZSxmYVJlY2VpcHQ6ZWcsZmFFcXVhbHM6JFNlLGZhQ2hldnJvblVwOkFTZSxmYVZpcnVzU2xhc2g6RFNlLGZhU2xhc2g6RVNlLGZhRXhwYW5kOlBTZSxmYU5vdGVTdGlja3k6Y04sZmFTdGlja3lOb3RlOklTZSxmYVRhYmxlQ29sdW1uczpkTixmYUNvbHVtbnM6TlNlLGZhUGVyc29uU2hlbHRlcjpGU2UsZmFDaXJjbGVOb3RjaDpPU2UsZmFXYXRlcjpSU2UsZmFEZWxldGVMZWZ0OmhOLGZhQmFja3NwYWNlOkJTZSxmYUJyb29tQmFsbDpubSxmYVF1aWRkaXRjaDpIU2UsZmFRdWlkZGl0Y2hCcm9vbUJhbGw6cVNlLGZhSjpWU2UsZmFTaHV0dGxlU3BhY2U6cE4sZmFTcGFjZVNodXR0bGU6alNlLGZhWWluWWFuZzpVU2UsZmFTdG9wOldTZSxmYVRyb3dlbDpHU2UsZmFIYW5kQmFja0Zpc3Q6dU4sZmFIYW5kUm9jazpZU2UsZmFUZW1wZXJhdHVyZUhpZ2g6WlNlLGZhR3JlYXRlclRoYW46WFNlLGZhQ3J1dGNoOktTZSxmYVNlcHRhZ29uOmZOLGZhSGVwdGFnb246UVNlLGZhU3RyZWV0VmlldzpKU2UsZmFXYXZlU3F1YXJlOmVDZSxmYUFuZ2xlTGVmdDp0Q2UsZmFTY3Jld2RyaXZlcjphQ2UsZmFUcmFjdG9yOmlDZSxmYUJyaWRnZUNpcmNsZVhtYXJrOnJDZSxmYVZpYWxzOnNDZSxmYVN0ZXRob3Njb3BlOm5DZSxmYVBvZGNhc3Q6b0NlLGZhQXJyb3dVcFJpZ2h0RG90czpsQ2UsZmFDaGVzc1F1ZWVuOmNDZSxmYUFuY2hvckNpcmNsZUV4Y2xhbWF0aW9uOmRDZSxmYUVsbGlwc2lzVmVydGljYWw6bU4sZmFFbGxpcHNpc1Y6aENlLGZhSGVhcnRDaXJjbGVFeGNsYW1hdGlvbjpwQ2UsZmFCdWlsZGluZ0NpcmNsZUV4Y2xhbWF0aW9uOnVDZSxmYVBlcnNvbkFycm93VXBGcm9tTGluZTpmQ2UsZmFOb3RFcXVhbDptQ2UsZmFUcmFpblRyYW06Z0NlLGZhUGxhbmVEZXBhcnR1cmU6YkNlLGZhUmlnaHRUb0JyYWNrZXQ6Z04sZmFTaWduSW5BbHQ6dkNlLGZhU2RDYXJkOnlDZSxmYUhvdXNlQ2lyY2xlRXhjbGFtYXRpb246eENlLGZhU2hla2VsU2lnbjpkbCxmYUlsczp3Q2UsZmFTaGVrZWw6TUNlLGZhU2hlcWVsOnpDZSxmYVNoZXFlbFNpZ246a0NlLGZhUmFkaW86U0NlLGZhSGFuZERvdHM6Yk4sZmFBbGxlcmdpZXM6Q0NlLGZhQm9va1NrdWxsOnZOLGZhQm9va0RlYWQ6X0NlLGZhVW5sb2NrS2V5aG9sZTp5TixmYVVubG9ja0FsdDpUQ2UsZmFGaWxlQXJyb3dVcDp4TixmYUZpbGVVcGxvYWQ6TENlLGZhRmFjZUdyaW5UZWFyczp3TixmYUdyaW5UZWFyczokQ2UsZmFQZW5Ub1NxdWFyZTppOCxmYUVkaXQ6QUNlLGZhRWFydGhFdXJvcGU6TU4sZmFHbG9iZUV1cm9wZTpEQ2UsZmFGYWNlR3JpbkJlYW1Td2VhdDp6TixmYUdyaW5CZWFtU3dlYXQ6RUNlLGZhQ2lyY2xlSGFsZlN0cm9rZTprTixmYUFkanVzdDpQQ2UsZmFQZXJzb25NaWxpdGFyeVRvUGVyc29uOklDZSxmYVRhYmxlQ2VsbHNDb2x1bW5Mb2NrOk5DZSxmYVRydWNrRmllbGRVbjpGQ2UsZmFDbG9jazpTTixmYUNsb2NrRm91cjpPQ2UsZmFCb29rOlJDZSxmYUZhY2VMYXVnaFdpbms6Q04sZmFMYXVnaFdpbms6QkNlLGZhQ2xvdWRNZWF0YmFsbDpIQ2UsZmFDaGFydEFyZWE6X04sZmFBcmVhQ2hhcnQ6cUNlLGZhUnVwaWFoU2lnbjpWQ2UsZmFUZXh0V2lkdGg6akNlLGZhU2F0ZWxsaXRlOlVDZSxmYU1hZ25pZnlpbmdHbGFzc01pbnVzOlROLGZhU2VhcmNoTWludXM6V0NlLGZhUGVvcGxlR3JvdXA6R0NlLGZhU3F1YXJlQmluYXJ5OllDZSxmYU1hc2tzVGhlYXRlcjpMTixmYVRoZWF0ZXJNYXNrczpaQ2UsZmFDYXJ0UGx1czpYQ2UsZmFIYW5kc0FzbEludGVycHJldGluZzpPNSxmYUFtZXJpY2FuU2lnbkxhbmd1YWdlSW50ZXJwcmV0aW5nOktDZSxmYUFzbEludGVycHJldGluZzpRQ2UsZmFIYW5kc0FtZXJpY2FuU2lnbkxhbmd1YWdlSW50ZXJwcmV0aW5nOkpDZSxmYVRhYmxlQ2VsbHNSb3dVbmxvY2s6ZV9lLGZhUm9ja2V0OnRfZSxmYVNocmltcDphX2UsZmFUZW5nZVNpZ246JE4sZmFUZW5nZTppX2UsZmFIb3VzZUNoaW1uZXlNZWRpY2FsOkFOLGZhQ2xpbmljTWVkaWNhbDpyX2UsZmFVc2Vyc1NsYXNoOnNfZSxmYVBhcGVyUGxhbmU6bl9lLGZhQm9va0F0bGFzOkROLGZhQXRsYXM6b19lLGZhVGFibGU6bF9lLGZhSGVhcnQ6Y19lLGZhQ2lyY2xlQ2hldnJvblVwOkVOLGZhQ2hldnJvbkNpcmNsZVVwOmRfZSxmYUJhdHRlcnlIYWxmOlBOLGZhQmF0dGVyeTM6aF9lLGZhRm9udEF3ZXNvbWU6b20sZmFGb250QXdlc29tZUZsYWc6cF9lLGZhRm9udEF3ZXNvbWVMb2dvRnVsbDp1X2UsZmFIYW5kY3VmZnM6Zl9lLGZhSGF0Q293Ym95U2lkZTptX2UsZmFJbmR1c3RyeTpnX2UsZmFMaW5lc0xlYW5pbmc6Yl9lLGZhUGFzc3BvcnQ6dl9lLGZhSW5maW5pdHk6eV9lLGZhQ2xvbmU6eF9lLGZhRm9yd2FyZDp3X2UsZmFNOk1fZSxmYVJvYWRTcGlrZXM6el9lLGZhTW91bnRhaW46a19lLGZhQ2hlc3M6U19lLGZhVGVtcGVyYXR1cmVUaHJlZVF1YXJ0ZXJzOlI1LGZhVGVtcGVyYXR1cmUzOkNfZSxmYVRoZXJtb21ldGVyMzpfX2UsZmFUaGVybW9tZXRlclRocmVlUXVhcnRlcnM6VF9lLGZhQjpMX2UsZmFTaGllbGRWaXJ1czokX2UsZmFMaXRlY29pblNpZ246QV9lLGZhRGljZUQ2OkRfZSxmYUdyaXBMaW5lc1ZlcnRpY2FsOkVfZSxmYUdvbGZCYWxsVGVlOklOLGZhR29sZkJhbGw6UF9lLGZhSGV4YWdvbjpJX2UsZmFGb2xkZXJPcGVuOk5fZSxmYUthYWJhOkZfZSxmYUhhbmRIb2xkaW5nOk9fZSxmYVNpbmdsZVF1b3RlUmlnaHQ6Ul9lLGZhQm90dGxlRHJvcGxldDpCX2UsZmFXaW5kb3dNaW5pbWl6ZTpIX2UsZmFDaGV2cm9uUmlnaHQ6cV9lLGZhRWdnOlZfZSxmYUxhbmRtYXJrRG9tZTpOTixmYUxhbmRtYXJrQWx0OmpfZSxmYVdvcm06VV9lLGZhVXNlckluanVyZWQ6V19lLGZhU3RyaWtldGhyb3VnaDpHX2UsZmFCbG9nOllfZSxmYVN0b3B3YXRjaDIwOlpfZSxmYVRydWNrUGlja3VwOlhfZSxmYVNlZWRsaW5nOkZOLGZhU3Byb3V0OktfZSxmYVRyYW5zZ2VuZGVyOk9OLGZhVHJhbnNnZW5kZXJBbHQ6UV9lLGZhU3RhckhhbGY6Sl9lLGZhUGhvdG9GaWxtOlJOLGZhUGhvdG9WaWRlbzplVGUsZmFQaWN0dXJlSW5QaWN0dXJlOnRUZSxmYVB1bXBNZWRpY2FsOmFUZSxmYUZpcmU6aVRlLGZhTWFnbmlmeWluZ0dsYXNzUGx1czpCTixmYVNlYXJjaFBsdXM6clRlLGZhRmxhc2s6c1RlLGZhQWxpZ25SaWdodDpuVGUsZmFDYWJsZUNhcjpITixmYVRyYW06b1RlLGZhS2l0TWVkaWNhbDpxTixmYUZpcnN0QWlkOmxUZSxmYUdyaXBMaW5lczpjVGUsZmFCdXJnZXI6Vk4sZmFIYW1idXJnZXI6ZFRlLGZhU25vd21hbjpoVGUsZmFIb3RlbDpwVGUsZmFQcmludDp1VGUsZmFWb2xsZXliYWxsOmpOLGZhVm9sbGV5YmFsbEJhbGw6ZlRlLGZhVHJhZmZpY0xpZ2h0Om1UZSxmYVBsYW5lQ2lyY2xlQ2hlY2s6Z1RlLGZhVXNlcnM6dGcsZmFDZXJ0aWZpY2F0ZTpiVGUsZmFBbGFybUNsb2NrOnZUZSxmYUhlbGljb3B0ZXJTeW1ib2w6eVRlLGZhSG91c2VDaGltbmV5Q3JhY2s6VU4sZmFIb3VzZURhbWFnZTp4VGUsZmFQZXJzb25NaWxpdGFyeVBvaW50aW5nOndUZSxmYURhdGFiYXNlOk1UZSxmYU5ld3NwYXBlcjp6VGUsZmFDbG91ZFJhaW46a1RlLGZhTWF4aW1pemU6V04sZmFFeHBhbmRBcnJvd3NBbHQ6U1RlLGZhTG9jYXRpb25BcnJvdzpDVGUsZmFDaXR5Ol9UZSxmYVhSYXk6VFRlLGZhVW1icmVsbGFCZWFjaDpMVGUsZmFBcnJvd1JpZ2h0VG9CcmFja2V0OkdOLGZhU2lnbkluOiRUZSxmYUhlYWRzZXQ6QVRlLGZhU3Bsb3RjaDpEVGUsZmFVcExvbmc6WU4sZmFMb25nQXJyb3dBbHRVcDpFVGUsZmFIZXhhZ29uTm9kZXM6UFRlLGZhSG9zcGl0YWw6bG0sZmFIb3NwaXRhbEFsdDpJVGUsZmFIb3NwaXRhbFdpZGU6TlRlLGZhUGVyc29uSGFyYXNzaW5nOkZUZSxmYU1vbmV5QmlsbFRyZW5kVXA6T1RlLGZhUGVuUnVsZXI6Wk4sZmFQZW5jaWxSdWxlcjpSVGUsZmFSZXBlYXQ6QlRlLGZhQm9uZTpIVGUsZmFGaXJlRmxhbWVDdXJ2ZWQ6WE4sZmFGaXJlQWx0OnFUZSxmYUJ1c1NpbXBsZTpLTixmYUJ1c0FsdDpWVGUsZmFWZW51c01hcnM6alRlLGZhQmxlbmRlcjpVVGUsZmFVOldUZSxmYVNoYXJlOnI4LGZhTWFpbEZvcndhcmQ6R1RlLGZhUGhvbmVGbGlwOlFOLGZhUGhvbmVBbHQ6WVRlLGZhVG9pbGV0UG9ydGFibGU6WlRlLGZhUGVyc29uUHJlZ25hbnQ6WFRlLGZhTGVzc1RoYW46S1RlLGZhU3VwZXJzY3JpcHQ6UVRlLGZhQ2lyY2xlU3RvcDpKTixmYVN0b3BDaXJjbGU6SlRlLGZhQXJyb3dzVXBEb3duOmVGLGZhQXJyb3dzVjplTGUsZmFQb29TdG9ybTp0RixmYVBvb0JvbHQ6dExlLGZhVmlkZW9TbGFzaDphTGUsZmFTcXVhcmVYbWFyazpjbSxmYVRpbWVzU3F1YXJlOmlMZSxmYVhtYXJrU3F1YXJlOnJMZSxmYUhhbmRIb2xkaW5nRHJvcGxldDphRixmYUhhbmRIb2xkaW5nV2F0ZXI6c0xlLGZhV29uU2lnbjpkbSxmYUtydzpuTGUsZmFXb246b0xlLGZhT2JqZWN0VW5ncm91cDpsTGUsZmFDb21tZW50OmNMZSxmYUhpbGxBdmFsYW5jaGU6ZExlLGZhQXJyb3dzVG9FeWU6aExlLGZhU25vd3Bsb3c6cExlLGZhQ2hhcnRHYW50dDp1TGUsZmFWaWRlbzppRixmYVZpZGVvQ2FtZXJhOmZMZSxmYUNoZXNzUGF3bjptTGUsZmFTeW5hZ29ndWU6Z0xlLGZhQnVpbGRpbmdDaXJjbGVDaGVjazpiTGUsZmFDYWxlbmRhclBsdXM6dkxlLGZhV2hlZWxjaGFpck1vdmU6ckYsZmFXaGVlbGNoYWlyQWx0OnlMZSxmYVVzZXJTaGllbGQ6eExlLGZhQm9sZDp3TGUsZmFIZWFydFB1bHNlOnNGLGZhSGVhcnRiZWF0Ok1MZSxmYVNxdWFyZVJvb3RWYXJpYWJsZTpuRixmYVNxdWFyZVJvb3RBbHQ6ekxlLGZhSGFuZHNCdWJibGVzOm9GLGZhSGFuZHNXYXNoOmtMZSxmYU1hcmtlcjpTTGUsZmFDbGlwYm9hcmQ6Q0xlLGZhUGxhY2VPZldvcnNoaXA6X0xlLGZhQ2FubmFiaXM6VExlLGZhUGVvcGxlUm9vZjpMTGUsZmFEaXNlYXNlOiRMZSxmYUJvb2tCaWJsZTpsRixmYUJpYmxlOkFMZSxmYUNoZXNzQm9hcmQ6RExlLGZhTWFyczpFTGUsZmFMYXB0b3A6UExlLGZhVXNlclhtYXJrOmNGLGZhVXNlclRpbWVzOklMZSxmYUZsYWdVc2E6TkxlLGZhSGFuZE1pZGRsZUZpbmdlcjpGTGUsZmFNb3J0YXJQZXN0bGU6T0xlLGZhSGVhZFNpZGVDb3VnaDpSTGUsZmFQbGFuZUxvY2s6QkxlLGZhQmF0dGVyeVRocmVlUXVhcnRlcnM6ZEYsZmFCYXR0ZXJ5NDpITGUsZmFGcmFuY1NpZ246cUxlLGZhRmlsdGVyQ2lyY2xlRG9sbGFyOmhGLGZhRnVubmVsRG9sbGFyOlZMZSxmYUNoZWVzZTpqTGUsZmFDaXJjbGVIOnBGLGZhSG9zcGl0YWxTeW1ib2w6VUxlLGZhU2Nob29sOldMZSxmYURpY2VGaXZlOkdMZSxmYVRvcm5hZG86WUxlLGZhSmV0RmlnaHRlcjp1RixmYUZpZ2h0ZXJKZXQ6WkxlLGZhVGh1bWJzRG93bjpYTGUsZmFCcm9vbTpLTGUsZmFGaWxlSW1wb3J0OmZGLGZhQXJyb3dSaWdodFRvRmlsZTpRTGUsZmFVdGVuc2lsczptRixmYUN1dGxlcnk6SkxlLGZhSWRCYWRnZTplJGUsZmFTcGlkZXI6dCRlLGZhTW9iaWxlUmV0cm86YSRlLGZhU2lnbnNQb3N0OmdGLGZhTWFwU2lnbnM6aSRlLGZhR3JvdXBBcnJvd3NSb3RhdGU6ciRlLGZhQXJyb3dzU3BsaXRVcEFuZExlZnQ6cyRlLGZhRmlsbERyaXA6biRlLGZhU2hpZWxkSGVhcnQ6byRlLGZhUGVyc29uU2tpaW5nTm9yZGljOmJGLGZhU2tpaW5nTm9yZGljOmwkZSxmYVNxdWFyZUNoZWNrOnZGLGZhQ2hlY2tTcXVhcmU6YyRlLGZhQmF0aDp5RixmYUJhdGh0dWI6ZCRlLGZhQ2hlc3NCaXNob3A6aCRlLGZhUHJlc2NyaXB0aW9uQm90dGxlTWVkaWNhbDp4RixmYVByZXNjcmlwdGlvbkJvdHRsZUFsdDpwJGUsZmFEcmF3UG9seWdvbjp3RixmYVZlY3RvclBvbHlnb246dSRlLGZhSUN1cnNvcjpmJGUsZmFIZWFydENpcmNsZVBsdXM6bSRlLGZhU2hpZWxkRG9nOmckZSxmYUdyZWF0ZXJUaGFuRXF1YWw6YiRlLGZhRW52ZWxvcGVPcGVuOnYkZSxmYU1vdW5kOnkkZSxmYVZvaWNlbWFpbDp4JGUsZmFWZXN0OnckZSxmYUF1ZGlvRGVzY3JpcHRpb246TSRlLGZhVzp6JGUsZmFFeWVEcm9wcGVyOmhtLGZhRXllRHJvcHBlckVtcHR5OmskZSxmYUV5ZWRyb3BwZXI6UyRlLGZhQ2lyY2xlWG1hcms6ZmwsZmFUaW1lc0NpcmNsZTpDJGUsZmFYbWFya0NpcmNsZTpfJGUsZmFUcmFpbGVyOlQkZSxmYVR1cmtpc2hMaXJhU2lnbjpwbSxmYVRyeTpMJGUsZmFUdXJraXNoTGlyYTokJGUsZmFWb2xjYW5vOkEkZSxmYVdhbmRTcGFya2xlczpEJGUsZmFNaWNyb3Bob25lOkUkZSxmYUNyb3duOlAkZSxmYVRlbnRBcnJvd1R1cm5MZWZ0OkkkZSxmYVRydWNrRmFzdDpNRixmYVNoaXBwaW5nRmFzdDpOJGUsZmFVc2VyUGVuOnpGLGZhVXNlckVkaXQ6RiRlLGZhVXNlckNsb2NrOk8kZSxmYVNob3dlcjpSJGUsZmFTcXVhcmVDYXJldFVwOmtGLGZhQ2FyZXRTcXVhcmVVcDpCJGUsZmFNYXBMb2NhdGlvbjpTRixmYU1hcE1hcmtlZDpIJGUsZmFQZW5GYW5jeTpxJGUsZmFFdXJvU2lnbjp1bSxmYUV1cjpWJGUsZmFFdXJvOmokZSxmYUhvdXNlQ2lyY2xlWG1hcms6VSRlLGZhTGlyYVNpZ246VyRlLGZhWWVuU2lnbjpobCxmYUNueTpHJGUsZmFKcHk6WSRlLGZhUm1iOlokZSxmYVllbjpYJGUsZmFCb3hPcGVuOkskZSxmYVRydWNrRmllbGQ6USRlLGZhTG9jYXRpb25QaW5Mb2NrOkokZSxmYVBlcnNvblByYXlpbmc6Q0YsZmFQcmF5OmVBZSxmYUNsaXBib2FyZExpc3Q6dEFlLGZhU2Fja0RvbGxhcjphQWUsZmFNb3VudGFpblN1bjppQWUsZmFBcnJvd1VwV2lkZVNob3J0Ol9GLGZhU29ydEFtb3VudFVwOnJBZSxmYVVzZXJzTGluZTpzQWUsZmFTdGFyT2ZEYXZpZDpuQWUsZmFOb3Rlc01lZGljYWw6b0FlLGZhQXVzdHJhbFNpZ246bEFlLGZhQ2xpcGJvYXJkVXNlcjpjQWUsZmFGaWxlSW1hZ2U6ZEFlLGZhU3F1YXJlQ2FyZXRSaWdodDpURixmYUNhcmV0U3F1YXJlUmlnaHQ6aEFlLGZhVmlhbDpwQWUsZmFIZWxpY29wdGVyOnVBZSxmYU1pdHRlbjpmQWUsZmFHYXNQdW1wOm1BZSxmYUVudmVsb3BlQ2lyY2xlQ2hlY2s6Z0FlLGZhUGVyc29uU2thdGluZzpMRixmYVNrYXRpbmc6YkFlLGZhU3VuOmFnLGZhQmFzZWJhbGw6JEYsZmFCYXNlYmFsbEJhbGw6dkFlLGZhSW1hZ2U6eUFlLGZhTm90ZGVmOnhBZSxmYUJhc2tldGJhbGw6QUYsZmFCYXNrZXRiYWxsQmFsbDp3QWUsZmFQZW5jaWw6REYsZmFQZW5jaWxBbHQ6TUFlLGZhUGVyc29uV2Fsa2luZ0Fycm93TG9vcExlZnQ6ekFlLGZhRGljZVNpeDprQWUsZmFBbmdsZXNEb3duOkVGLGZhQW5nbGVEb3VibGVEb3duOlNBZSxmYVN5cmluZ2U6Q0FlLGZhV2hlYXRBd246UEYsZmFXaGVhdEFsdDpfQWUsZmFQbGFuZVVwOlRBZSxmYUFsaWduQ2VudGVyOkxBZSxmYUhvY2tleVB1Y2s6JEFlLGZhQ2lyY2xlQXJyb3dMZWZ0OklGLGZhQXJyb3dDaXJjbGVMZWZ0OkFBZSxmYVBsdWdDaXJjbGVCb2x0OkRBZSxmYVJlc3Ryb29tOkVBZSxmYUFuY2hvckxvY2s6UEFlLGZhVGltZWxpbmU6SUFlLGZhTGlnaHRidWxiOk5BZSxmYUNpcmNsZUFycm93UmlnaHQ6TkYsZmFBcnJvd0NpcmNsZVJpZ2h0OkZBZSxmYU1hcnNBbmRWZW51czpPQWUsZmFOZXR3b3JrV2lyZWQ6aWcsZmFCdWlsZGluZ1NoaWVsZDpSQWUsZmFDb2RlOkJBZSxmYUZlYXRoZXJQb2ludGVkOkZGLGZhRmVhdGhlckFsdDpIQWUsZmFGaWxlQ2lyY2xlUXVlc3Rpb246cUFlLGZhU2lnbmF0dXJlOlZBZSxmYUVhcnRoQW1lcmljYXM6QjUsZmFFYXJ0aDpqQWUsZmFFYXJ0aEFtZXJpY2E6VUFlLGZhR2xvYmVBbWVyaWNhczpXQWUsZmFDYXJyb3Q6R0FlLGZhVGVtcGVyYXR1cmVGdWxsOkg1LGZhVGVtcGVyYXR1cmU0OllBZSxmYVRoZXJtb21ldGVyNDpaQWUsZmFUaGVybW9tZXRlckZ1bGw6WEFlLGZhVGFibGVDZWxsc1Jvd0xvY2s6S0FlLGZhQm9sdExpZ2h0bmluZzpRQWUsZmFDbG91ZFNob3dlcnNXYXRlcjpKQWUsZmFBcnJvd1VwTG9uZzpPRixmYUxvbmdBcnJvd1VwOmVEZSxmYUFkZHJlc3NDYXJkOmZtLGZhQ29udGFjdENhcmQ6dERlLGZhVmNhcmQ6YURlLGZhQW5nbGVSaWdodDppRGUsZmFGYWNlTWVoOlJGLGZhTWVoOnJEZSxmYUFycm93VXBGcm9tR3JvdW5kV2F0ZXI6c0RlLGZhTWFwOm5EZSxmYVVzZXJQbHVzOm9EZSxmYVZlbnVzOmxEZSxmYURpYWdyYW1TdWNjZXNzb3I6Y0RlLGZhSGVhZFNpZGVDb3VnaFNsYXNoOmREZSxmYURpYWdyYW1Qcm9qZWN0OkJGLGZhUHJvamVjdERpYWdyYW06aERlLGZhVGVybWluYWw6cmcsZmFIb3VzZUZpcmU6cERlLGZhTWFzazp1RGUsZmFIdXJyaWNhbmU6ZkRlLGZhRWFydGhBZnJpY2E6SEYsZmFHbG9iZUFmcmljYTptRGUsZmFUaHVtYnRhY2s6cUYsZmFUaHVtYlRhY2s6Z0RlLGZhSGFuZFBvaW50RG93bjpiRGUsZmFGYWNlTWVoQmxhbms6VkYsZmFNZWhCbGFuazp2RGUsZmFUZW1wZXJhdHVyZUVtcHR5OnE1LGZhVGVtcGVyYXR1cmUwOnlEZSxmYVRoZXJtb21ldGVyMDp4RGUsZmFUaGVybW9tZXRlckVtcHR5OndEZSxmYUJvcmRlck5vbmU6TURlLGZhSGlnaGxpZ2h0ZXI6ekRlLGZhTW9uZXlCaWxsV2F2ZTprRGUsZmFUb2lsZXRQYXBlclNsYXNoOlNEZSxmYUZpbGVTaGllbGQ6Q0RlLGZhVGV4dEhlaWdodDpfRGUsZmFGYWNlR3JpblRvbmd1ZTpqRixmYUdyaW5Ub25ndWU6VERlLGZhRmlsZVNpZ25hdHVyZTpMRGUsZmFCdWlsZGluZ1doZWF0OiREZSxmYVBsdWdDaXJjbGVNaW51czpBRGUsZmFGdXRib2w6bW0sZmFGdXRib2xCYWxsOkREZSxmYVNvY2NlckJhbGw6RURlLGZhQ2lyY2xlUGx1czpVRixmYVBsdXNDaXJjbGU6UERlLGZhQnJhemlsaWFuUmVhbFNpZ246SURlLGZhU3RhckFuZENyZXNjZW50Ok5EZSxmYUZhY2VTdXJwcmlzZTpXRixmYVN1cnByaXNlOkZEZSxmYUhvc3BpdGFsVXNlcjpPRGUsZmFBcnJvd0Rvd25VcExvY2s6UkRlLGZhRm9sZGVyOkdGLGZhRm9sZGVyQmxhbms6QkRlLGZhSG9sbHlCZXJyeTpIRGUsZmFWZW51c0RvdWJsZTpxRGUsZmFDbGlwYm9hcmRRdWVzdGlvbjpWRGUsZmFIb3Rkb2c6akRlLGZhQXJyb3dVcEZyb21CcmFja2V0OlVEZSxmYU1pY3Jvc2NvcGU6V0RlLGZhQ2xvdWQ6R0RlLGZhQmFzZWJhbGxCYXRCYWxsOllEZSxmYUNhclJlYXI6WUYsZmFDYXJBbHQ6WkRlLGZhVGh1bWJ0YWNrU2xhc2g6WkYsZmFUaHVtYlRhY2tTbGFzaDpYRGUsZmFQbHVzTWludXM6S0RlLGZhSG91c2VDaXJjbGVDaGVjazpRRGUsZmFDYWxlbmRhckRheTpKRGUsZmFMaWJyYTplRWUsZmFDaXJjbGU6dEVlLGZhTW9iaWxlVmlicmF0ZTphRWUsZmFGYWNlR3JpblNxdWludDpYRixmYUdyaW5TcXVpbnQ6aUVlLGZhVXNlcnNCZXR3ZWVuTGluZXM6ckVlLGZhSG91c2VNZWRpY2FsQ2lyY2xlWG1hcms6c0VlLGZhVGFibGVMaXN0OktGLGZhVGhMaXN0Om5FZSxmYUZsYXNrVmlhbDpvRWUsZmFDaXJjbGVFeGNsYW1hdGlvbjpRRixmYUV4Y2xhbWF0aW9uQ2lyY2xlOmxFZSxmYVRheGk6SkYsZmFDYWI6Y0VlLGZhVGV4dFNsYXNoOmVPLGZhUmVtb3ZlRm9ybWF0OmRFZSxmYVBlb3BsZVB1bGxpbmc6aEVlLGZhQmFja3dhcmQ6cEVlLGZhQ2FyQnVyc3Q6dE8sZmFDYXJDcmFzaDp1RWUsZmFMaW5rOmFPLGZhQ2hhaW46ZkVlLGZhQmFja3dhcmRTdGVwOmlPLGZhU3RlcEJhY2t3YXJkOm1FZSxmYVg6Z0VlLGZhQ2lyY2xlVXNlcjpyTyxmYVVzZXJDaXJjbGU6YkVlLGZhUmVjdGFuZ2xlTGlzdDpzTyxmYUxpc3RBbHQ6dkVlLGZhSGFuZDpuTyxmYUhhbmRQYXBlcjp5RWUsZmFDYW5jZXI6eEVlLGZhVmFuU2h1dHRsZTpvTyxmYVNodXR0bGVWYW46d0VlLGZhU3RhaXJzOk1FZSxmYUhvcnNlSGVhZDp6RWUsZmFWYXVsdDprRWUsZmFDbG9zZWRDYXB0aW9uaW5nU2xhc2g6U0VlLGZhRHJ1bVN0ZWVscGFuOkNFZSxmYVRodW1ic1VwOl9FZSxmYVN0YW1wOlRFZSxmYU1lbm9yYWg6TEVlLGZhQ2hpbGRyZW46JEVlLGZhQ2hhcnRMaW5lOmxPLGZhTGluZUNoYXJ0OkFFZSxmYVNxdWFyZUVudmVsb3BlOmNPLGZhRW52ZWxvcGVTcXVhcmU6REVlLGZhQmFuU21va2luZzpkTyxmYVNtb2tpbmdCYW46RUVlLGZhVHJ1Y2tGcm9udDpQRWUsZmFCdWlsZGluZzpzZyxmYUJ1bGxzZXllOklFZSxmYUFycm93TGVmdExvbmc6aE8sZmFMb25nQXJyb3dMZWZ0Ok5FZSxmYUNoZXNzUm9vazpGRWUsZmFCbGVuZGVyUGhvbmU6T0VlLGZhQXJyb3dUdXJuVXA6cE8sZmFMZXZlbFVwOlJFZSxmYUJpY3ljbGU6QkVlLGZhQ2lyY2xlQXJyb3dEb3duOnVPLGZhQXJyb3dDaXJjbGVEb3duOkhFZSxmYUdlYXI6czgsZmFDb2c6cUVlLGZhTWFyc0FuZFZlbnVzQnVyc3Q6VkVlLGZhT3R0ZXI6akVlLGZhQ2lyY2xlQ2hldnJvbkxlZnQ6Zk8sZmFDaGV2cm9uQ2lyY2xlTGVmdDpVRWUsZmFDaXJjbGVRdWVzdGlvbjptTyxmYVF1ZXN0aW9uQ2lyY2xlOldFZSxmYVdhbGtpZVRhbGtpZTpHRWUsZmFVc2VyR3JvdXA6Z08sZmFVc2VyRnJpZW5kczpZRWUsZmFIb3VzZUNoaW1uZXk6Yk8sZmFIb21lTGc6WkVlLGZhUmlnaHRGcm9tQnJhY2tldDp2TyxmYVNpZ25PdXRBbHQ6WEVlLGZhRmlsZTpLRWUsZmFQbGFuZVNsYXNoOlFFZSxmYUNsb3VkU2hvd2Vyc0hlYXZ5OkpFZSxmYVBlcnNvbkZhbGxpbmc6ZVBlLGZhVHVybkRvd246eU8sZmFMZXZlbERvd25BbHQ6dFBlLGZhVXBSaWdodEFuZERvd25MZWZ0RnJvbUNlbnRlcjp4TyxmYUV4cGFuZEFsdDphUGUsZmFVc2VyVGFnOmlQZSxmYUhhbmRTcGFya2xlczpyUGUsZmFBcnJvd3NUb0RvdDpzUGUsZmFGYWNlU2FkQ3J5OndPLGZhU2FkQ3J5Om5QZSxmYURvbmdTaWduOm9QZSxmYVBlb3BsZUxpbmU6bFBlLGZhU3F1YXJlUnNzOk1PLGZhUnNzU3F1YXJlOmNQZSxmYUNhbGVuZGFyTWludXM6ZFBlLGZhQ2hhcnREaWFncmFtOmhQZSxmYUZhY2VUaXJlZDp6TyxmYVRpcmVkOnBQZSxmYUhhbmRQb2ludFJpZ2h0OnVQZSxmYUFycm93VXA6ZlBlLGZhQ3ViZXNTdGFja2VkOm1QZSxmYUNoaWxkQ29tYmF0YW50OmtPLGZhQ2hpbGRSaWZsZTpnUGUsZmFWZXN0UGF0Y2hlczpiUGUsZmFNYXJ0aW5pR2xhc3NFbXB0eTpTTyxmYUdsYXNzTWFydGluaTp2UGUsZmFNYWduZXQ6eVBlLGZhUm9hZEJhcnJpZXI6eFBlLGZhQ29tcGFzc0RyYWZ0aW5nOkNPLGZhRHJhZnRpbmdDb21wYXNzOndQZSxmYVNxdWFyZVBlcnNvbkNvbmZpbmVkOk1QZSxmYVBsYXRlV2hlYXQ6elBlLGZhU2lnbkhhbmdpbmc6X08sZmFTaWduOmtQZSxmYUNhckJhdHRlcnk6VE8sZmFCYXR0ZXJ5Q2FyOlNQZSxmYVNoaXJ0OmdtLGZhVFNoaXJ0OkNQZSxmYVRzaGlydDpfUGUsZmFQYXJhZ3JhcGg6VFBlLGZhRW52ZWxvcGVzQnVsazpMTyxmYU1haWxCdWxrOkxQZSxmYUd1aXRhcjokUGUsZmFTdWl0Y2FzZTpBUGUsZmFDaXJjbGVVcDokTyxmYUFycm93QWx0Q2lyY2xlVXA6RFBlLGZhRjpFUGUsZmFYbWFya3NMaW5lczpQUGUsZmFFYXJ0aE9jZWFuaWE6QU8sZmFHbG9iZU9jZWFuaWE6SVBlLGZhQ29tbWVudFNsYXNoOk5QZSxmYVBsYXk6RlBlLGZhVmlhbENpcmNsZUNoZWNrOk9QZSxmYUJyaWRnZUNpcmNsZUNoZWNrOlJQZSxmYUNlZGlTaWduOkJQZSxmYVB1enpsZVBpZWNlOkhQZSxmYUhlbG1ldFVuOnFQZSxmYUdsYXNzV2F0ZXI6VlBlLGZhSGVhcnRDaXJjbGVCb2x0OmpQZSxmYVB1bXBTb2FwOlVQZSxmYUhhbmRTY2lzc29yczpXUGUsZmFEb2xseTpETyxmYURvbGx5Qm94OkdQZSxmYVBhcGVyY2xpcDpuZyxmYURlbW9jcmF0OllQZSxmYVNxdWFyZUFycm93VXBSaWdodDpFTyxmYUV4dGVybmFsTGlua1NxdWFyZTpaUGUsZmFGZXJyeTpYUGUsZmFNb3NxdWl0bzpLUGUsZmFCdWlsZGluZ0NpcmNsZUFycm93UmlnaHQ6UVBlLGZhTGVmdFJpZ2h0OlBPLGZhQXJyb3dzQWx0SDpKUGUsZmFWaXJ1czplSWUsZmFHZW06dEllLGZhVG9pbGV0OmFJZSxmYVNpbmdsZVF1b3RlTGVmdDppSWUsZmFNb25leUJpbGxzOnJJZSxmYVRhYmxldEJ1dHRvbjpzSWUsZmFSZWN0YW5nbGVYbWFyazpWNSxmYVJlY3RhbmdsZVRpbWVzOm5JZSxmYVRpbWVzUmVjdGFuZ2xlOm9JZSxmYVdpbmRvd0Nsb3NlOmxJZSxmYVdyZW5jaDpjSWUsZmFUcmFzaENhbjpuOCxmYVRyYXNoQWx0OmRJZSxmYVRhYmxlQ2VsbHM6SU8sZmFUaDpoSWUsZmFSaWJib246cEllLGZhTGFuZG1hcmtGbGFnOnVJZSxmYVVwRG93bkxlZnRSaWdodDpOTyxmYUFycm93c0FsdDpmSWUsZmFDYXJTaWRlOm1JZSxmYVRyYXNoQXJyb3dVcDpGTyxmYVRyYXNoUmVzdG9yZTpnSWUsZmFMaWZlUmluZzpiSWUsZmFDb3B5cmlnaHQ6dkllLGZhRmlsZVByZXNjcmlwdGlvbjp5SWUsZmFFcmFzZXI6eEllLGZhSG91cmdsYXNzU3RhcnQ6T08sZmFIb3VyZ2xhc3MxOndJZSxmYUNpcmNsZUxlZnQ6Uk8sZmFBcnJvd0FsdENpcmNsZUxlZnQ6TUllLGZhQ3J1emVpcm9TaWduOnpJZSxmYVNtb2tpbmc6a0llLGZhU3F1YXJlUG9sbFZlcnRpY2FsOkJPLGZhUG9sbDpTSWUsZmFQZXJzb25DaXJjbGVNaW51czpDSWUsZmFCaW9oYXphcmQ6X0llLGZhQmVsbENvbmNpZXJnZTpITyxmYUNvbmNpZXJnZUJlbGw6VEllLGZhUnVsZXJIb3Jpem9udGFsOkxJZSxmYUhvcnNlOiRJZSxmYUNhbGVuZGFyOkFJZSxmYUhhbmRzSG9sZGluZ0NoaWxkOkRJZSxmYUl0YWxpYzpFSWUsZmFLaGFuZGE6UEllLGZhRmFjZUZyb3duT3BlbjpxTyxmYUZyb3duT3BlbjpJSWUsZmFDaGVjazpvZyxmYUZpbmdlcnByaW50Ok5JZSxmYUNoYXJnaW5nU3RhdGlvbjpGSWUsZmFVc2VyTG9jazpPSWUsZmFNb2JpbGVTY3JlZW5CdXR0b246Vk8sZmFNb2JpbGVBbHQ6UkllLGZhQW5jaG9yQ2lyY2xlQ2hlY2s6QkllLGZhUGVyc29uV2Fsa2luZ1dpdGhDYW5lOmpPLGZhQmxpbmQ6SEllLGZhRmlsZVdhdmVmb3JtOlVPLGZhRmlsZU1lZGljYWxBbHQ6cUllLGZhSG91c2VDcmFjazpWSWUsZmFIYXRXaXphcmQ6akllLGZhVXNlckRvY3RvcjpXTyxmYVVzZXJNZDpVSWUsZmFDaGFydEJhcjpHTyxmYUJhckNoYXJ0OldJZSxmYVNwcmF5Q2FuU3BhcmtsZXM6WU8sZmFBaXJGcmVzaGVuZXI6R0llLGZhQmFodFNpZ246WUllLGZhVGVtcGVyYXR1cmVBcnJvd1VwOlpPLGZhVGVtcGVyYXR1cmVVcDpaSWUsZmFXZWJBd2Vzb21lOlhJZSxmYU5vbkJpbmFyeTpLSWUsZmFOOlFJZSxmYUFycm93c1VwRG93bkxlZnRSaWdodDpYTyxmYUFycm93czpKSWUsZmFIb3VzZTpqNSxmYUhvbWU6ZU5lLGZhSG9tZUFsdDp0TmUsZmFIb21lTGdBbHQ6YU5lLGZhU3Bpbm5lcjppTmUsZmFHYXZlbDpLTyxmYUxlZ2FsOnJOZSxmYVRpY2tldFNpbXBsZTpRTyxmYVRpY2tldEFsdDpzTmUsZmFEb3ZlOm5OZSxmYVRhcnBEcm9wbGV0Om9OZSxmYVRyZWVDaXR5OmxOZSxmYVR1cm5VcDpKTyxmYUxldmVsVXBBbHQ6Y05lLGZhVGVtcGVyYXR1cmVRdWFydGVyOlU1LGZhVGVtcGVyYXR1cmUxOmROZSxmYVRoZXJtb21ldGVyMTpoTmUsZmFUaGVybW9tZXRlclF1YXJ0ZXI6cE5lLGZhU2xpZGVyczplUixmYVNsaWRlcnNIOnVOZSxmYU1vc3F1ZTpmTmUsZmFIOm1OZSxmYUluZm86Z05lLGZhUGVyc29uV2Fsa2luZzp0UixmYVdhbGtpbmc6Yk5lLGZhQXJyb3dUdXJuRG93bjphUixmYUxldmVsRG93bjp2TmUsZmFSb2FkOnlOZSxmYVNwaXJhbDp4TmUsZmFGYWNlRnJvd246aVIsZmFGcm93bjp3TmUsZmFXaW5lR2xhc3NFbXB0eTpyUixmYVdpbmVHbGFzc0FsdDpNTmUsZmFDbGFwcGVyYm9hcmQ6ek5lLGZhRm9yd2FyZFN0ZXA6c1IsZmFTdGVwRm9yd2FyZDprTmUsZmFTcXVhcmVVcFJpZ2h0Om5SLGZhRXh0ZXJuYWxMaW5rU3F1YXJlQWx0OlNOZSxmYUJvb2tKb3VybmFsV2hpbGxzOm9SLGZhSm91cm5hbFdoaWxsczpDTmUsZmFDaGFtcGFnbmVHbGFzc2VzOmxSLGZhR2xhc3NDaGVlcnM6X05lLGZhRHVtcHN0ZXI6VE5lLGZhSGVhcnRDaXJjbGVYbWFyazpMTmUsZmFDb21wdXRlcjokTmUsZmFXYW5kTWFnaWM6Y1IsZmFNYWdpYzpBTmUsZmFCcmFpbjpETmUsZmFCcmllZmNhc2VNZWRpY2FsOkVOZSxmYUhvdXNlTWVkaWNhbENpcmNsZUV4Y2xhbWF0aW9uOlBOZSxmYUNvZGVDb21taXQ6SU5lLGZhUGVyc29uQnJlYXN0ZmVlZGluZzpOTmUsZmFQZXJzb25SYXlzOkZOZSxmYU1hbmF0U2lnbjpPTmUsZmFTb3J0OmRSLGZhVW5zb3J0ZWQ6Uk5lLGZhQ2lyY2xlUmFkaWF0aW9uOmhSLGZhUmFkaWF0aW9uQWx0OkJOZSxmYUxhcHRvcENvZGU6SE5lLGZhU2luazpxTmUsZmFBcnJvd1VwRnJvbVdhdGVyUHVtcDpWTmUsZmFNaWNyb3Bob25lTGluZXNTbGFzaDpwUixmYU1pY3JvcGhvbmVBbHRTbGFzaDpqTmUsZmFTZXJ2ZXI6VU5lLGZhVXNlcjpibSxmYVVzZXJBbHQ6V05lLGZhVXNlckxhcmdlOkdOZSxmYVNub3dmbGFrZTpZTmUsZmFUYXVydXM6Wk5lLGZhU2t1bGxDcm9zc2JvbmVzOlhOZSxmYVBlc29TaWduOktOZSxmYVdpbmVHbGFzczpRTmUsZmFUZW1wZXJhdHVyZUhhbGY6VzUsZmFUZW1wZXJhdHVyZTI6Sk5lLGZhVGhlcm1vbWV0ZXIyOmVGZSxmYVRoZXJtb21ldGVySGFsZjp0RmUsZmFUaWNrZXQ6YUZlLGZhV2hlYXRBd25DaXJjbGVFeGNsYW1hdGlvbjppRmUsZmFBcnJvd3NUdXJuUmlnaHQ6ckZlLGZhQ2FuZHlDYW5lOnNGZSxmYVdoZWVsY2hhaXI6bkZlLGZhU3BlbGxDaGVjazpvRmUsZmFWb2x1bWVPZmY6bEZlLGZhTHVuZ3M6Y0ZlLGZhQm9va21hcms6ZEZlLGZhQmFyY29kZTpoRmUsZmFMaXN0T2w6dm0sZmFMaXN0MTI6cEZlLGZhTGlzdE51bWVyaWM6dUZlLGZhRmlsZUNpcmNsZVhtYXJrOmZGZSxmYUN1YmU6bUZlLGZhVGFwZTpnRmUsZmFCb21iOmJGZSxmYVNjYWxlVW5iYWxhbmNlZDp1UixmYUJhbGFuY2VTY2FsZUxlZnQ6dkZlLGZhU3F1YXJlQ2FyZXRMZWZ0OmZSLGZhQ2FyZXRTcXVhcmVMZWZ0OnlGZSxmYVJ1bGVyOnhGZSxmYUk6d0ZlLGZhVm9sdW1lWG1hcms6eW0sZmFWb2x1bWVNdXRlOk1GZSxmYVZvbHVtZVRpbWVzOnpGZSxmYUFyY2h3YXk6a0ZlLGZhUGVyc29uRGlnZ2luZzptUixmYURpZ2dpbmc6U0ZlLGZhR2F1Z2VIaWdoOnhtLGZhVGFjaG9tZXRlckFsdDpDRmUsZmFUYWNob21ldGVyQWx0RmFzdDpfRmUsZmFHZW5kZXJsZXNzOlRGZSxmYUNsb3VkU3VuOkxGZSxmYUFycm93UmlnaHQ6bGcsZmFIYW5kc2hha2U6d20sZmFIYW5kc2hha2VBbHQ6JEZlLGZhSGFuZHNoYWtlU2ltcGxlOkFGZSxmYVBlcnNvblNraWluZzpnUixmYVNraWluZzpERmUsZmFCcmlkZ2VXYXRlcjpFRmUsZmFCdWlsZGluZ05nbzpQRmUsZmFJZ2xvbzpJRmUsZmFDaXJjbGVEb2xsYXJUb1Nsb3Q6YlIsZmFEb25hdGU6TkZlLGZhWTpGRmUsZmFGYWNlU21pbGVXaW5rOnZSLGZhU21pbGVXaW5rOk9GZSxmYURpY2VGb3VyOlJGZSxmYUZhY2VHcmluU3F1aW50VGVhcnM6eVIsZmFHcmluU3F1aW50VGVhcnM6QkZlLGZhRmlsZUF1ZGlvOkhGZSxmYUFycm93c0Rvd25Ub0xpbmU6cUZlLGZhRzpWRmUsZmFWaWhhcmE6akZlLGZhRmxhZ0NoZWNrZXJlZDpVRmUsZmFHYXVnZVNpbXBsZTpNbSxmYUdhdWdlU2ltcGxlTWVkOldGZSxmYVRhY2hvbWV0ZXJBdmVyYWdlOkdGZSxmYVJpZ2h0TGVmdDp4UixmYUV4Y2hhbmdlQWx0OllGZSxmYVBpbGxzOlpGZSxmYUV4cGxvc2lvbjpYRmUsZmFBcnJvd3NEb3duVG9QZW9wbGU6S0ZlLGZhVXNlcnNWaWV3ZmluZGVyOlFGZSxmYUNhck9uOkpGZSxmYVNsZWlnaDplT2UsZmFEdW1iYmVsbDp0T2UsZmFCYWJ5Q2FycmlhZ2U6d1IsZmFDYXJyaWFnZUJhYnk6YU9lLGZhS2l3aUJpcmQ6aU9lLGZhQ2FsZW5kYXJYbWFyazpNUixmYUNhbGVuZGFyVGltZXM6ck9lLGZhQ2lyY2xlRG93bjp6UixmYUFycm93QWx0Q2lyY2xlRG93bjpzT2UsZmFGaWxlTWVkaWNhbDpuT2UsZmFYbWFyazppbyxmYUNsb3NlOm9PZSxmYU11bHRpcGx5OmxPZSxmYVJlbW92ZTpjT2UsZmFUaW1lczpkT2UsZmFTaGFwZXM6a1IsZmFUcmlhbmdsZUNpcmNsZVNxdWFyZTpoT2UsZmFEaWNlT25lOnBPZSxmYUxvY2tPcGVuOnVPZSxmYVBlcHBlckhvdDpmT2UsZmFEcm9wbGV0U2xhc2g6U1IsZmFUaW50U2xhc2g6bU9lLGZhRHJvcGxldDpDUixmYVRpbnQ6Z09lLGZhRmlsZUxpbmVzOnptLGZhRmlsZUFsdDpiT2UsZmFGaWxlVGV4dDp2T2UsZmFDb21tZW50c0RvbGxhcjp5T2UsZmFNYWduaWZ5aW5nR2xhc3NMb2NhdGlvbjpfUixmYVNlYXJjaExvY2F0aW9uOnhPZSxmYUZpbGVJbnZvaWNlOmNnLGZhUGVudGFnb246d09lLGZhUmVwdWJsaWNhbjpNT2UsZmFTaG9wOlRSLGZhU3RvcmVBbHQ6ek9lLGZhRmlsbTprbSxmYUZpbG1BbHQ6a09lLGZhRmlsbVNpbXBsZTpTT2UsZmFCdWlsZGluZ0NpcmNsZVhtYXJrOkNPZSxmYUNvbW1lbnRzOl9PZSxmYVRhZ3M6VE9lLGZhR3VuOkxPZSxmYUNpcmNsZUNoZWNrOm84LGZhQ2hlY2tDaXJjbGU6JE9lLGZhU2NvcnBpbzpBT2UsZmFJZENhcmRDbGlwOkxSLGZhSWRDYXJkQWx0OkRPZSxmYU1vb246RU9lLGZhT2lsV2VsbDpQT2UsZmFUYWNob2dyYXBoRGlnaXRhbDokUixmYURpZ2l0YWxUYWNob2dyYXBoOklPZSxmYVRhYmxldDpBUixmYVRhYmxldEFuZHJvaWQ6Tk9lLGZhUnVibGVTaWduOkc1LGZhUm91YmxlOkZPZSxmYVJ1YjpPT2UsZmFSdWJsZTpST2UsZmFDbG9zZWRDYXB0aW9uaW5nOkJPZSxmYVBlbjpIT2UsZmFQbGFuZTpxT2UsZmFJbWFnZXM6Vk9lLGZhTW9iaWxlU2NyZWVuOkRSLGZhTW9iaWxlQW5kcm9pZEFsdDpqT2UsZmFHdWFyYW5pU2lnbjpVT2UsZmFCYWdTaG9wcGluZzpFUixmYVNob3BwaW5nQmFnOldPZSxmYUNpcmNsZVJpZ2h0OlBSLGZhQXJyb3dBbHRDaXJjbGVSaWdodDpHT2UsZmFQaG9uZVZvbHVtZTpJUixmYVZvbHVtZUNvbnRyb2xQaG9uZTpZT2UsZmFDdWJlczpaT2UsZmFQaG9uZTpYT2UsZmFUb3JpaUdhdGU6S09lLGZhQmFjb246UU9lLGZhUGVyc29uRmFsbGluZ0J1cnN0OkpPZSxmYVF1b3RlUmlnaHQ6TlIsZmFRdW90ZVJpZ2h0QWx0OmVSZSxmYUhvdXNlTWVkaWNhbEZsYWc6dFJlLGZhUHJlc2NyaXB0aW9uOmFSZSxmYURpY2VUaHJlZTppUmUsZmFCdWlsZGluZ0xvY2s6clJlLGZhSWRDYXJkOkZSLGZhRHJpdmVyc0xpY2Vuc2U6c1JlLGZhQ2lyY2xlUGxheTpPUixmYVBsYXlDaXJjbGU6blJlLGZhRmFjZUxhdWdoQmVhbTpSUixmYUxhdWdoQmVhbTpvUmUsZmFMZWFmOmxSZSxmYUhvdXNlQ2hpbW5leVVzZXI6Y1JlLGZhUm90YXRlUmlnaHQ6U20sZmFSZWRvQWx0OmRSZSxmYVJvdGF0ZUZvcndhcmQ6aFJlLGZhVG9vdGg6cFJlLGZhSG91c2VDaGltbmV5V2luZG93OnVSZSxmYU1vdG9yY3ljbGU6ZlJlLGZhQmFja3dhcmRGYXN0OkJSLGZhRmFzdEJhY2t3YXJkOm1SZSxmYUFkZHJlc3NCb29rOkhSLGZhQ29udGFjdEJvb2s6Z1JlLGZhU2FpbGJvYXQ6YlJlLGZhQm9va0Jvb2ttYXJrOnZSZSxmYU1hZ25pZnlpbmdHbGFzc0Fycm93UmlnaHQ6eVJlLGZhTWljcm9waG9uZUxpbmVzOnFSLGZhTWljcm9waG9uZUFsdDp4UmUsZmFSZXBseUFsbDpWUixmYU1haWxSZXBseUFsbDp3UmUsZmFVbml2ZXJzYWxBY2Nlc3M6TVJlLGZhVG9pbGV0UGFwZXI6Q20sZmFUb2lsZXRQYXBlckFsdDp6UmUsZmFUb2lsZXRQYXBlckJsYW5rOmtSZSxmYVZyQ2FyZGJvYXJkOlNSZSxmYVBpenphU2xpY2U6Q1JlLGZhU3ByYXlDYW46X1JlLGZhVm9sdW1lTG93OmpSLGZhVm9sdW1lRG93bjpUUmUsZmFDcm9zczpMUmUsZmFQZXJzb246VVIsZmFNYWxlOiRSZSxmYUhvdXJnbGFzczpXUixmYUhvdXJnbGFzc0VtcHR5OkFSZSxmYUZpc2g6RFJlLGZhRHJ1bXN0aWNrQml0ZTpFUmUsZmFDaGFydFNpbXBsZTpQUmUsZmFBdG9tOklSZSxmYVA6TlJlLGZhSmV0RmlnaHRlclVwOkZSZSxmYVBsdWdDaXJjbGVYbWFyazpPUmUsZmFTaGVldFBsYXN0aWM6UlJlLGZhVjpCUmUsZmFMaXN0OkdSLGZhTGlzdFNxdWFyZXM6SFJlLGZhUGlzY2VzOnFSZSxmYVNvbGFyUGFuZWw6VlJlLGZhTGFuZE1pbmVPbjpqUmUsZmFIZWFkcGhvbmVzOl9tLGZhSGVhZHBob25lc0FsdDpVUmUsZmFIZWFkcGhvbmVzU2ltcGxlOldSZSxmYUJ1czpHUmUsZmFGaWxlUG93ZXJwb2ludDpZUmUsZmFRdW90ZUxlZnQ6WVIsZmFRdW90ZUxlZnRBbHQ6WlJlLGZhQ2hldnJvbkRvd246WFJlLGZhRWFydGhBc2lhOlpSLGZhR2xvYmVBc2lhOktSZSxmYUNlbnRTaWduOlFSZSxmYVNoaWVsZENhdDpKUmUsZmFTY2hvb2xDaXJjbGVDaGVjazplQmUsZmFNYXJ0aW5pR2xhc3M6WFIsZmFHbGFzc01hcnRpbmlBbHQ6dEJlLGZhUGx1ZzphQmUsZmFQYW5vcmFtYTppQmUsZmFDbG9ja1JvdGF0ZUxlZnQ6bDgsZmFIaXN0b3J5OnJCZSxmYUphcldoZWF0OnNCZSxmYUNsb3VkQXJyb3dEb3duOlRtLGZhQ2xvdWREb3dubG9hZDpuQmUsZmFDbG91ZERvd25sb2FkQWx0Om9CZSxmYVRydWNrUmFtcEJveDpLUixmYVRydWNrTG9hZGluZzpsQmUsZmFBbmdsZURvd246Y0JlLGZhUGx1Z0NpcmNsZUNoZWNrOmRCZSxmYVdpbmRvd01heGltaXplOmhCZSxmYUhhbmRzSG9sZGluZ0NpcmNsZTpwQmUsZmFMb2NhdGlvblBpbjpRUixmYU1hcE1hcmtlcjp1QmUsZmFCb3dsaW5nQmFsbDpmQmUsZmFDYXJ0RmxhdGJlZDpKUixmYURvbGx5RmxhdGJlZDptQmUsZmFIb3VzZVVzZXI6ZUIsZmFIb21lVXNlcjpnQmUsZmFHaG9zdDpiQmUsZmFDb21tZW50Tm9kZXM6dkJlLGZhUGVyc29uQXJyb3dEb3duVG9MaW5lOnlCZSxmYVBsdWdDaXJjbGVQbHVzOnhCZSxmYVBlcnNvblN3aW1taW5nOnRCLGZhU3dpbW1lcjp3QmUsZmFDb21tZW50RG90czphQixmYUNvbW1lbnRpbmc6TUJlLGZhQ2hhcnRQaWU6aUIsZmFQaWVDaGFydDp6QmUsZmFGcm9nOmtCZSxmYVdpbmVCb3R0bGU6U0JlLGZhSW5ib3g6Q0JlLGZhU3F1YXJlSDpyQixmYUhTcXVhcmU6X0JlLGZhSG91c2VNZWRpY2FsOlRCZSxmYUNpcmNsZUNoZXZyb25SaWdodDpzQixmYUNoZXZyb25DaXJjbGVSaWdodDpMQmUsZmFGaWxlQ3N2OiRCZSxmYUhhdENvd2JveTpBQmUsZmFGYWNlR3JpblRvbmd1ZVdpbms6bkIsZmFHcmluVG9uZ3VlV2luazpEQmUsZmFMOkVCZSxmYUFycm93RG93blNob3J0V2lkZTpMbSxmYVNvcnRBbW91bnREZXNjOlBCZSxmYVNvcnRBbW91bnREb3duQWx0OklCZSxmYUhvdXJnbGFzc0hhbGY6b0IsZmFIb3VyZ2xhc3MyOk5CZSxmYVNwb29uOmxCLGZhVXRlbnNpbFNwb29uOkZCZSxmYUNyZWRpdENhcmQ6Y0IsZmFDcmVkaXRDYXJkQWx0Ok9CZSxmYUZpbGVJbnZvaWNlRG9sbGFyOmRnLGZhU3BhZ2hldHRpTW9uc3RlckZseWluZzpkQixmYVBhc3RhZmFyaWFuaXNtOlJCZSxmYU1hcnRpbmlHbGFzc0NpdHJ1czpoQixmYUNvY2t0YWlsOkJCZSxmYUJ1bGxob3JuOkhCZSxmYUJveFRpc3N1ZTpxQmUsZmFNYXR0cmVzc1BpbGxvdzpWQmUsZmFDaGV2cm9uTGVmdDpqQmUsZmFDbG91ZE1vb25SYWluOlVCZSxmYUFycm93RG93bjE5OiRtLGZhU29ydE51bWVyaWNBc2M6V0JlLGZhU29ydE51bWVyaWNEb3duOkdCZSxmYUhhbmRTcG9jazpZQmUsZmFXYW5kTWFnaWNTcGFya2xlczpwQixmYU1hZ2ljV2FuZFNwYXJrbGVzOlpCZSxmYUNvbW1lbnRNZWRpY2FsOlhCZSxmYUJlbGxTbGFzaDpLQmUsZmFIYW5kc2hha2VTbGFzaDpBbSxmYUhhbmRzaGFrZUFsdFNsYXNoOlFCZSxmYUhhbmRzaGFrZVNpbXBsZVNsYXNoOkpCZSxmYUJvdHRsZVdhdGVyOmVIZSxmYURpY2VEMjA6dEhlLGZhQXJyb3dEb3duWkE6RG0sZmFTb3J0QWxwaGFEZXNjOmFIZSxmYVNvcnRBbHBoYURvd25BbHQ6aUhlLGZhQnJ1c2g6ckhlLGZhUGVyc29uV2Fsa2luZ0Rhc2hlZExpbmVBcnJvd1JpZ2h0OnNIZSxmYUFycm93VXBTaG9ydFdpZGU6dUIsZmFTb3J0QW1vdW50VXBBbHQ6bkhlLGZhR3JpcFZlcnRpY2FsOmZCLGZhR3JpZFZlcnRpY2FsOm9IZSxmYUNhclR1bm5lbDpsSGUsZmFDaGFydENvbHVtbjpjSGUsZmFDYXByaWNvcm46ZEhlLGZhVHJ1Y2tBcnJvd1JpZ2h0OmhIZSxmYVR2OkVtLGZhVGVsZXZpc2lvbjpwSGUsZmFUdkFsdDp1SGUsZmFTZWN0aW9uOmZIZSxmYVBlYWNlOm1IZSxmYVN0YXI6Z0hlLGZhRmxhZzpiSGUsZmFUcmlhbmdsZUV4Y2xhbWF0aW9uOlBtLGZhRXhjbGFtYXRpb25UcmlhbmdsZTp2SGUsZmFXYXJuaW5nOnlIZSxmYVNjaG9vbENpcmNsZUV4Y2xhbWF0aW9uOnhIZSxmYUdyYWR1YXRpb25DYXA6bUIsZmFNb3J0YXJCb2FyZDp3SGUsZmFTdG9yZTpNSGUsZmFVc2VyQXN0cm9uYXV0OnpIZSxmYUJ1aWxkaW5nRmxhZzprSGUsZmFNdWdTYXVjZXI6Z0IsZmFDb2ZmZWU6U0hlLGZhTGVtb246Q0hlLGZhQ2FyYXZhbjpfSGUsZmFROlRIZSxmYUxvY2s6TEhlLGZhUGFpbnRSb2xsZXI6JEhlLGZhVm9sdW1lSGlnaDpiQixmYVZvbHVtZVVwOkFIZSxmYUZvbGRlclBsdXM6REhlLGZhTWVyY3VyeTpFSGUsZmFBbmNob3I6UEhlLGZhU3F1YXJlUGFya2luZzp2QixmYVBhcmtpbmc6SUhlLGZhSGFudWtpYWg6TkhlLGZhUm90YXRlTGVmdDpZNSxmYVJvdGF0ZUJhY2s6RkhlLGZhUm90YXRlQmFja3dhcmQ6T0hlLGZhVW5kb0FsdDpSSGUsZmFIZWFkaW5nOnlCLGZhSGVhZGVyOkJIZSxmYUNyb3NzaGFpcnM6SEhlLGZhQ2lyY2xlTm9kZXM6cUhlLGZhV2luZG93UmVzdG9yZTpWSGUsZmFSOmpIZSxmYUZpbHRlckNpcmNsZVhtYXJrOlVIZSxmYUdvcHVyYW06V0hlLGZhSGVhcnRDaXJjbGVNaW51czpHSGUsZmFTdGFyT2ZMaWZlOllIZSxmYUJ1c2luZXNzVGltZTp4QixmYUJyaWVmY2FzZUNsb2NrOlpIZSxmYUZpcmVFeHRpbmd1aXNoZXI6WEhlLGZhQXJyb3dEb3duTG9uZzp3QixmYUxvbmdBcnJvd0Rvd246S0hlLGZhVXNlck1pbnVzOlFIZSxmYU1vbmV5Q2hlY2s6SkhlLGZhSG91c2VMYXB0b3A6TUIsZmFMYXB0b3BIb3VzZTplcWUsZmFEb3dubG9hZDp0cWUsZmFTYWdpdHRhcml1czphcWUsZmFDb3VjaDppcWUsZmFSb2FkTG9jazpycWUsZmFTY2lzc29yczp6QixmYUN1dDpzcWUsZmFCdWc6aGcsZmFBcnJvd1JpZ2h0RnJvbUJyYWNrZXQ6a0IsZmFTaWduT3V0Om5xZSxmYUhhbmRIb2xkaW5nSGFuZDpvcWUsZmFTdHJvb3B3YWZlbDpscWUsZmFDaGlsZDpjcWUsZmFJY2VDcmVhbTpkcWUsZmFDb21wdXRlck1vdXNlOlNCLGZhTW91c2U6aHFlLGZhRmF1Y2V0OnBxZSxmYUF3YXJkOnVxZSxmYVBlcnNvbkRyb3duaW5nOmZxZSxmYUNhbWVyYVJvdGF0ZTptcWUsZmFGYWNlR3JpbkhlYXJ0czpDQixmYUdyaW5IZWFydHM6Z3FlLGZhRmlsZUZyYWdtZW50OmJxZSxmYVBlcnNvbk1pbGl0YXJ5UmlmbGU6dnFlLGZhVG9nZ2xlT246eXFlLGZhTHVuZ3NWaXJ1czp4cWUsZmFUYWJsZVRlbm5pc1BhZGRsZUJhbGw6SW0sZmFQaW5nUG9uZ1BhZGRsZUJhbGw6d3FlLGZhVGFibGVUZW5uaXM6TXFlLGZhQm94ZXNQYWNraW5nOnpxZSxmYVBlcnNvbkNoYWxrYm9hcmQ6a3FlLGZhRGljZVR3bzpTcWUsZmFBcnJvd1JpZ2h0QXJyb3dMZWZ0Ol9CLGZhRXhjaGFuZ2U6Q3FlLGZhRm9vdGJhbGw6VEIsZmFGb290YmFsbEJhbGw6X3FlLGZhVHJ1Y2tNb25zdGVyOlRxZSxmYUFzdGVyaXNrOkxxZSxmYUJhdHRlcnlGdWxsOk5tLGZhQmF0dGVyeTokcWUsZmFCYXR0ZXJ5NTpBcWUsZmFDaGlsZERyZXNzOkRxZSxmYUZhY2VLaXNzQmVhbTpMQixmYUtpc3NCZWFtOkVxZSxmYVRyYXNoQ2FuQXJyb3dVcDokQixmYVRyYXNoUmVzdG9yZUFsdDpQcWUsZmFGb250OklxZSxmYUJvcmVIb2xlOk5xZSxmYVZpcnVzQ292aWQ6RnFlLGZhRmlsZVBkZjpPcWUsZmFMYW5ndWFnZTpScWUsZmFTaGllbGRIYWx2ZWQ6QUIsZmFTaGllbGRBbHQ6QnFlLGZhQ2FyZXRVcDpIcWUsZmFGaWxlUGVuOkRCLGZhRmlsZUVkaXQ6cXFlLGZhUGVyc29uQmlraW5nOkVCLGZhQmlraW5nOlZxZSxmYUJvb2tPcGVuUmVhZGVyOlBCLGZhQm9va1JlYWRlcjpqcWUsZmFHbGFzc1dhdGVyRHJvcGxldDpVcWUsZmFUb3dlckJyb2FkY2FzdDpJQixmYUJyb2FkY2FzdFRvd2VyOldxZSxmYU1pbmltaXplOk5CLGZhQ29tcHJlc3NBcnJvd3NBbHQ6R3FlLGZhQXJyb3dSaWdodFRvQ2l0eTpZcWUsZmFMYXB0b3BNZWRpY2FsOlpxZSxmYUJyZWFkU2xpY2U6WHFlLGZhR2xvYmU6S3FlLGZhRm9sZGVyTWludXM6UXFlLGZhTWFza0ZhY2U6SnFlLGZhQm9uZzplVmUsZmFSb2FkQnJpZGdlOnRWZSxmYUFycm93VXA5MTpGQixmYVNvcnROdW1lcmljVXBBbHQ6YVZlLGZhTW91bnRhaW5DaXR5OmlWZSxmYUFycm93RG93bjkxOkZtLGZhU29ydE51bWVyaWNEZXNjOnJWZSxmYVNvcnROdW1lcmljRG93bkFsdDpzVmUsZmFGYWNlR3JpbldpZGU6T0IsZmFHcmluQWx0Om5WZSxmYVBvb3A6b1ZlLGZhRGhhcm1hY2hha3JhOmxWZSxmYUJhdHRlcnlRdWFydGVyOlJCLGZhQmF0dGVyeTI6Y1ZlLGZhQW5raDpkVmUsZmFEaWFtb25kOmhWZSxmYVN1YnNjcmlwdDpwVmUsZmFSdXBlZVNpZ246QkIsZmFSdXBlZTp1VmUsZmFQZXJzb25SaWZsZTpmVmUsZmFEOm1WZSxmYVNxdWFyZU5maTpnVmUsZmFUZWV0aDpiVmUsZmFNYWduaWZ5aW5nR2xhc3NEb2xsYXI6SEIsZmFTZWFyY2hEb2xsYXI6dlZlLGZhRHVtcHN0ZXJGaXJlOnlWZSxmYVVwbG9hZDp4VmUsZmFVc2VyU2xhc2g6T20sZmFVc2VyQWx0U2xhc2g6d1ZlLGZhVXNlckxhcmdlU2xhc2g6TVZlLGZhQXJyb3dMZWZ0OnpWZSxmYVZpYWxWaXJ1czprVmUsZmFDaGVja0RvdWJsZTpTVmUsZmFQYXc6Q1ZlLGZhSGVsbWV0U2FmZXR5OlJtLGZhSGFyZEhhdDpfVmUsZmFIYXRIYXJkOlRWZSxmYUU6TFZlLGZhRmFjZUxhdWdoU3F1aW50OnFCLGZhTGF1Z2hTcXVpbnQ6JFZlLGZhRG93bkxlZnRBbmRVcFJpZ2h0VG9DZW50ZXI6VkIsZmFDb21wcmVzc0FsdDpBVmUsZmFHaWZ0czpEVmUsZmFCZWQ6RVZlLGZhTW9uZXlCaWxsVHJhbnNmZXI6UFZlLGZhUGVyc29uUnVubmluZzpqQixmYVJ1bm5pbmc6SVZlLGZhQ2lyY2xlQ2hldnJvbkRvd246VUIsZmFDaGV2cm9uQ2lyY2xlRG93bjpOVmUsZmFVc2VyTnVyc2U6RlZlLGZhRmFjZUtpc3NXaW5rSGVhcnQ6V0IsZmFLaXNzV2lua0hlYXJ0Ok9WZSxmYUZpbGw6UlZlLGZhTW9uZXlCaWxsMVdhdmU6R0IsZmFNb25leUJpbGxXYXZlQWx0OkJWZSxmYUxhbmRtYXJrOkhWZSxmYU11c2ljOnFWZSxmYUJvb2tNZWRpY2FsOlZWZSxmYVNodWZmbGU6WUIsZmFSYW5kb206alZlLGZhVW5kZXJsaW5lOlVWZSxmYUJ1aWxkaW5nVXNlcjpXVmUsZmFSb2JvdDpHVmUsZmFQbHVzOmM4LGZhQWRkOllWZSxmYUNvcHk6cGcsZmFDaGVzc0tpbmc6WlZlLGZhSG91c2VGbG9vZFdhdGVyOlhWZSxmYUJpdGNvaW5TaWduOktWZSxmYUJveDpRVmUsZmFTcXVhcmVQbHVzOlpCLGZhUGx1c1NxdWFyZTpKVmUsZmFBcnJvd3NMZWZ0UmlnaHQ6WEIsZmFBcnJvd3NIOmVqZSxmYUZhbjp0amUsZmFDcm93OmFqZSxmYUZpbGVDaXJjbGVDaGVjazppamUsZmFMaW5rU2xhc2g6WjUsZmFDaGFpbkJyb2tlbjpyamUsZmFDaGFpblNsYXNoOnNqZSxmYVVubGluazpuamUsZmFBcnJvd1JvdGF0ZVJpZ2h0Olg1LGZhQXJyb3dSaWdodFJvdGF0ZTpvamUsZmFBcnJvd1JvdGF0ZUZvcndhcmQ6bGplLGZhUmVkbzpjamUsZmFQZW5DbGlwOktCLGZhUGVuQWx0OmRqZSxmYURvb3JDbG9zZWQ6aGplLGZhQXJyb3dEb3duV2lkZVNob3J0OkJtLGZhU29ydEFtb3VudEFzYzpwamUsZmFTb3J0QW1vdW50RG93bjp1amUsZmFDYXJldERvd246ZmplLGZhSzptamUsZmFDaGVja1RvU2xvdDpRQixmYVZvdGVZZWE6Z2plLGZhRmlzaEZpbnM6YmplLGZhQ29tcHJlc3M6dmplLGZhQXJyb3dVcEFaOkpCLGZhU29ydEFscGhhVXA6eWplLGZhVXNlckdyYWR1YXRlOnhqZSxmYUZpbGVDb2RlOndqZSxmYVNvYXA6TWplLGZhUmVjeWNsZTp6amUsZmFGYWNlR3Jpbldpbms6ZUgsZmFHcmluV2luazpramUsZmFXYXRlckxhZGRlcjpIbSxmYUxhZGRlcldhdGVyOlNqZSxmYVN3aW1taW5nUG9vbDpDamUsZmFHZW1pbmk6X2plLGZhVG93ZXJDZWxsOlRqZSxmYUNvbG9uU2lnbjpMamUsZmFMYXB0b3BGaWxlOiRqZSxmYUJhaGFpOnRILGZhSGF5a2FsOkFqZSxmYU1vbmV5QmlsbDE6YUgsZmFNb25leUJpbGxBbHQ6RGplLGZhQ2xvdWRCb2x0OmlILGZhVGh1bmRlcnN0b3JtOkVqZSxmYUV0aGVybmV0OlBqZSxmYUhyeXZuaWFTaWduOnJILGZhSHJ5dm5pYTpJamUsZmFFeWVTbGFzaDp1ZyxmYUNhcnRGbGF0YmVkU3VpdGNhc2U6c0gsZmFMdWdnYWdlQ2FydDpOamUsZmFSYWRpYXRpb246RmplLGZhRmlsZVdvcmQ6T2plLGZhQmVkUHVsc2U6bkgsZmFQcm9jZWR1cmVzOlJqZSxmYVRlbnRzOkJqZSxmYU11Z0hvdDpmZyxmYUJvbHQ6b0gsZmFaYXA6SGplLGZhSmFyOnFqZSxmYVRydWNrUGxhbmU6VmplLGZhSGFuZEhvbGRpbmdIZWFydDpqamUsZmFBcnJvd1JvdGF0ZUxlZnQ6cGwsZmFBcnJvd0xlZnRSb3RhdGU6VWplLGZhQXJyb3dSb3RhdGVCYWNrOldqZSxmYUFycm93Um90YXRlQmFja3dhcmQ6R2plLGZhVW5kbzpZamUsZmFGYWNlQW5ncnk6bEgsZmFBbmdyeTpaamUsZmFCdXJzdDpYamUsZmFaOktqZSxmYUJhbmRhZ2U6Y0gsZmFCYW5kQWlkOlFqZSxmYVBsYW5lQ2lyY2xlRXhjbGFtYXRpb246SmplLGZhQnVzU2lkZTplVWUsZmFCdWdzOnRVZSxmYUJlZXJNdWdFbXB0eTpkSCxmYUJlZXI6YVVlLGZhUGVyc29uQ2lyY2xlQ2hlY2s6aVVlLGZhU3RhcGxlcjpyVWUsZmFIb3VzZU1lZGljYWxDaXJjbGVDaGVjazpzVWUsZmFOYWlyYVNpZ246blVlLGZhV2lmaTpxbSxmYVdpZmkzOm9VZSxmYVdpZmlTdHJvbmc6bFVlLGZhTW9uZXlDaGVja0RvbGxhcjpkOCxmYU1vbmV5Q2hlY2tBbHQ6Y1VlLGZhRXllTG93VmlzaW9uOmhILGZhTG93VmlzaW9uOmRVZSxmYUNpcmNsZUFycm93VXA6cEgsZmFBcnJvd0NpcmNsZVVwOmhVZSxmYUNhbWVyYVJldHJvOnBVZSxmYUNhcHN1bGVzOnVVZSxmYVBvbzpmVWUsZmFWb2x1bWU6dUgsZmFWb2x1bWVNZWRpdW06bVVlLGZhRWxldmF0b3I6Z1VlLGZhVGFnOmJVZSxmYUZpbGVDaXJjbGVNaW51czp2VWUsZmFEb3duTG9uZzpmSCxmYUxvbmdBcnJvd0FsdERvd246eVVlLGZhQ29tcGFjdERpc2M6eFVlLGZhU3VpdGNhc2VSb2xsaW5nOndVZSxmYUJvb2tRdXJhbjptSCxmYVF1cmFuOk1VZSxmYVBob25lU2xhc2g6elVlLGZhUm9hZENpcmNsZUNoZWNrOmtVZSxmYVNob3BMb2NrOlNVZSxmYUltYWdlUG9ydHJhaXQ6Z0gsZmFQb3J0cmFpdDpDVWUsZmFCcmlkZ2VMb2NrOl9VZSxmYUhhbW1lcjpUVWUsZmFBcnJvd1VwMTk6YkgsZmFTb3J0TnVtZXJpY1VwOkxVZSxmYUNoZXNzS25pZ2h0OiRVZSxmYUhvdXNlRmxvb2RXYXRlckNpcmNsZUFycm93UmlnaHQ6QVVlLGZhQXJyb3dVcFJpZ2h0RnJvbVNxdWFyZTpoOCxmYUV4dGVybmFsTGluazpEVWUsZmFBcnJvd0Rvd25VcEFjcm9zc0xpbmU6RVVlLGZhRmFjZUdyaW5CZWFtOnZILGZhR3JpbkJlYW06UFVlLGZhUmVjdGFuZ2xlQWQ6eUgsZmFBZDpJVWUsZmFCb29rVGFuYWtoOnhILGZhVGFuYWtoOk5VZSxmYUhvdFR1YlBlcnNvbjp3SCxmYUhvdFR1YjpGVWUsZmFGaWxlSGFsZkRhc2hlZDpPVWUsZmFPdXRkZW50Ok1ILGZhRGVkZW50OlJVZSxmYUhhbmRQZWFjZTpCVWUsZmFIZWFkU2lkZVZpcnVzOkhVZSxmYUNvbXBhc3M6cVVlLGZhUGVuTmliOlZVZSxmYVRlbnRBcnJvd3NEb3duOmpVZSxmYUZvcndhcmRGYXN0OnpILGZhRmFzdEZvcndhcmQ6VVVlLGZhQ3JvcDpXVWUsZmFXaGlza2V5R2xhc3M6a0gsZmFHbGFzc1doaXNrZXk6R1VlLGZhU3F1YXJlOllVZSxmYUZhY2VHcmluOlNILGZhR3JpbjpaVWUsZmFGaWxlQ29udHJhY3Q6WFVlLGZhQW5nbGVVcDpLVWUsZmFGYWNlU21pbGU6Q0gsZmFTbWlsZTpRVWUsZmFQZXJzb25EcmVzc0J1cnN0OkpVZSxmYURpdmlkZTplV2UsZmFDb2RlRm9yazp0V2UsZmFIb3VzZUZsYWc6YVdlLGZhQnVpbGRpbmdDb2x1bW5zOnVsLGZhQmFuazppV2UsZmFJbnN0aXR1dGlvbjpyV2UsZmFNdXNldW06c1dlLGZhVW5pdmVyc2l0eTpuV2UsZmFSdWc6b1dlLGZhQ29kZU1lcmdlOmxXZSxmYUhvdXNlVHN1bmFtaTpjV2UsZmFNYWduaWZ5aW5nR2xhc3NDaGFydDpkV2UsZmFVbWJyZWxsYTpoV2UsZmFIaWxsUm9ja3NsaWRlOnBXZSxmYVVzZXJTZWNyZXQ6dVdlLGZhUGFnZXI6ZldlLGZhQnJpZWZjYXNlOm1XZSxmYVRyb3dlbEJyaWNrczpnV2UsZmFTb2NrczpiV2UsZmFUOnZXZSxmYU1pY3JvY2hpcDp5V2UsZmFUcnVja01lZGljYWw6X0gsZmFBbWJ1bGFuY2U6eFdlLGZhT206d1dlLGZhTW9zcXVpdG9OZXQ6TVdlLGZhUHJlc2NyaXB0aW9uQm90dGxlOnpXZSxmYVVzZXJzR2VhcjpUSCxmYVVzZXJzQ29nOmtXZSxmYVJvYWRDaXJjbGVFeGNsYW1hdGlvbjpTV2UsZmFQYXVzZTpDV2UsZmFTdGFmZlNuYWtlOks1LGZhUm9kQXNjbGVwaXVzOl9XZSxmYVJvZFNuYWtlOlRXZSxmYVN0YWZmQWVzY3VsYXBpdXM6TFdlLGZhUGlnZ3lCYW5rOiRXZSxmYU1vbnVtZW50OkFXZSxmYUFuZ2xlc1JpZ2h0OkxILGZhQW5nbGVEb3VibGVSaWdodDpEV2UsZmFEZXNrdG9wOnA4LGZhRGVza3RvcEFsdDpFV2UsZmFQbGFuZUNpcmNsZVhtYXJrOlBXZSxmYVJldHdlZXQ6SVdlLGZhVXNlckdlYXI6JEgsZmFVc2VyQ29nOk5XZSxmYUJvcmRlckFsbDpGV2UsZmFDb2luczpPV2UsZmFNYXJzU3Ryb2tlOlJXZSxmYUhhbmRzaGFrZUFuZ2xlOkFILGZhSGFuZHNIZWxwaW5nOkJXZSxmYUFycm93RG93bjpIV2UsZmFMb2NhdGlvbkRvdDpESCxmYU1hcE1hcmtlckFsdDpxV2UsZmFQbHVnQ2lyY2xlRXhjbGFtYXRpb246VldlLGZhQ29va2llQml0ZTpqV2UsZmFTY3Jld2RyaXZlcldyZW5jaDpFSCxmYVRvb2xzOlVXZSxmYUluZGVudDpXV2UsZmFCYXJzOlBILGZhTmF2aWNvbjpHV2UsZmFIYW5kc1ByYXlpbmc6SUgsZmFQcmF5aW5nSGFuZHM6WVdlLGZhVmlydXNlczpaV2UsZmFTY2hvb2xGbGFnOlhXZSxmYVRyYWRlbWFyazpLV2UsZmFGaXJlQnVybmVyOlFXZSxmYUZhY2VTbWlsZUJlYW06TkgsZmFTbWlsZUJlYW06SldlLGZhVGVudEFycm93TGVmdFJpZ2h0OmVHZSxmYVJvdXRlOnRHZSxmYUFuZ2xlc1VwOkZILGZhQW5nbGVEb3VibGVVcDphR2UsZmFCdWNrZXQ6aUdlLGZhTGVzc1RoYW5FcXVhbDpyR2UsZmFGb2xkZXJDbG9zZWQ6c0dlLGZhUGVyc29uVGhyb3VnaFdpbmRvdzpuR2UsZmFTY2hvb2xMb2NrOm9HZSxmYVBlcnNvbkJ1cnN0OmxHZSxmYUxlZnRMb25nOk9ILGZhTG9uZ0Fycm93QWx0TGVmdDpjR2UsZmFMb2NhdGlvbkNyb3NzaGFpcnM6UkgsZmFMb2NhdGlvbjpkR2UsZmFQZXJzb25Eb3RzRnJvbUxpbmU6QkgsZmFEaWFnbm9zZXM6aEdlLGZhR2F1Z2VTaW1wbGVIaWdoOlZtLGZhVGFjaG9tZXRlcjpwR2UsZmFUYWNob21ldGVyRmFzdDp1R2UsZmFBbmdsZXNMZWZ0OkhILGZhQW5nbGVEb3VibGVMZWZ0OmZHZSxmYVVwRG93bjpxSCxmYUFycm93c0FsdFY6bUdlLGZhQmF0dGVyeUVtcHR5OlZILGZhQmF0dGVyeTA6Z0dlLGZhS2V5Ym9hcmQ6YkdlLGZhQ29va2llOnZHZSxmYVN0b3B3YXRjaDp5R2UsZmFFamVjdDp4R2UsZmFTYXRlbGxpdGVEaXNoOndHZSxmYUZhY2VSb2xsaW5nRXllczpqSCxmYU1laFJvbGxpbmdFeWVzOk1HZSxmYUxpc3RDaGVjazpVSCxmYVRhc2tzOnpHZSxmYVNhY2tYbWFyazprR2UsZmFIYXNodGFnOlNHZSxmYVRyYWluOkNHZSxmYUdhbWVwYWQ6X0dlLGZhRmlsZUV4cG9ydDpXSCxmYUFycm93UmlnaHRGcm9tRmlsZTpUR2UsZmFGYWNlR3JpbWFjZTpHSCxmYUdyaW1hY2U6TEdlLGZhVHJhaW5TdWJ3YXk6WUgsZmFTdWJ3YXk6JEdlLGZhQ2lyY2xlRG90OlpILGZhRG90Q2lyY2xlOkFHZSxmYU9iamVjdEdyb3VwOkRHZSxmYVNoaXA6RUdlLGZhQzpQR2UsZmFTcXVhcmVQaG9uZTpYSCxmYVBob25lU3F1YXJlOklHZSxmYVJ1bGVyQ29tYmluZWQ6TkdlLGZhQXJyb3dzUm90YXRlOmptLGZhUmVmcmVzaDpGR2UsZmFTeW5jOk9HZSxmYVBlcnNvbkRyZXNzOktILGZhRmVtYWxlOlJHZSxmYUJvb2tPcGVuOkJHZSxmYUZvbGRlclRyZWU6SEdlLGZhVmlyZ286cUdlLGZhQm94QXJjaGl2ZTpRSCxmYUFyY2hpdmU6VkdlLGZhVGVudEFycm93RG93blRvTGluZTpqR2UsZmFRcmNvZGU6VUdlLGZhRHJhZ29uOldHZSxmYUhvdXJnbGFzc0VuZDpKSCxmYUhvdXJnbGFzczM6R0dlLGZhR3JpcDptbCxmYUdyaWRIb3Jpem9udGFsOllHZSxmYUdyaXBIb3Jpem9udGFsOlpHZSxmYUJvcmRlclRvcExlZnQ6ZXEsZmFCb3JkZXJTdHlsZTpYR2UsZmFMaXN0VWw6dHEsZmFMaXN0RG90czpLR2UsZmFQZW9wbGVSb2JiZXJ5OlFHZSxmYU1vYmlsZUJ1dHRvbjpKR2UsZmFBcnJvd0Rvd25BWjpVbSxmYVNvcnRBbHBoYUFzYzplWWUsZmFTb3J0QWxwaGFEb3duOnRZZSxmYU1vbmV5QmlsbDphWWUsZmFDaXJjbGVNaW51czphcSxmYU1pbnVzQ2lyY2xlOmlZZSxmYUFycm93UG9pbnRlcjppcSxmYU1vdXNlUG9pbnRlcjpyWWUsZmFTcXVhcmVTaGFyZU5vZGVzOnJxLGZhU2hhcmVBbHRTcXVhcmU6c1llLGZhVGFibGVDZWxsc0xhcmdlOnNxLGZhVGhMYXJnZTpuWWUsZmFDYXQ6b1llLGZhQ2FsZW5kYXJXZWVrOmxZZSxmYUNvZGVDb21wYXJlOmNZZSxmYUxlbzpkWWUsZmFSb2FkQ2lyY2xlWG1hcms6aFllLGZhUGFsbGV0OnBZZSxmYUNha2VDYW5kbGVzOldtLGZhQmlydGhkYXlDYWtlOnVZZSxmYUNha2U6ZlllLGZhQnVnU2xhc2g6bVllLGZhVGFycDpnWWUsZmFEaWFncmFtUHJlZGVjZXNzb3I6YlllLGZhRmFjZUZsdXNoZWQ6bnEsZmFGbHVzaGVkOnZZZSxmYURpYWdyYW1OZXh0OnlZZSxmYUFuY2hvckNpcmNsZVhtYXJrOnhZZSxmYVBlcnNvbkNpcmNsZVhtYXJrOndZZSxmYVNwYTpNWWUsZmFBcmllczp6WWUsZmFCYXJzUHJvZ3Jlc3M6b3EsZmFUYXNrc0FsdDprWWUsZmFIZWFydENpcmNsZUNoZWNrOlNZZSxmYU1hcnNTdHJva2VSaWdodDpscSxmYU1hcnNTdHJva2VIOkNZZSxmYVRvd2VyT2JzZXJ2YXRpb246X1llLGZhU3RlcmxpbmdTaWduOkdtLGZhR2JwOlRZZSxmYVBvdW5kU2lnbjpMWWUsZmFGYXVjZXREcmlwOiRZZSxmYUNpcmNsZUluZm86dTgsZmFJbmZvQ2lyY2xlOkFZZSxmYUZlYXRoZXI6RFllLGZhQm93bFJpY2U6RVllLGZhU3RhckhhbGZTdHJva2U6Y3EsZmFTdGFySGFsZkFsdDpQWWUsZmFUZW1wZXJhdHVyZUFycm93RG93bjpkcSxmYVRlbXBlcmF0dXJlRG93bjpJWWUsZmFNYXNrVmVudGlsYXRvcjpOWWUsZmFGaWxlVmlkZW86RlllLGZhQXJyb3dUcmVuZERvd246T1llLGZhT2lsQ2FuOlJZZSxmYVBlb3BsZUNhcnJ5Qm94OmhxLGZhUGVvcGxlQ2Fycnk6QlllLGZhQ2hhaXI6SFllLGZhV2luZDpxWWUsZmFMYXllckdyb3VwOlZZZSxmYUhlYWRTaWRlTWFzazpqWWUsZmFIYW5kczpZbSxmYVNpZ25MYW5ndWFnZTpVWWUsZmFTaWduaW5nOldZZSxmYVRhYmxldHM6R1llLGZhV2VpZ2h0SGFuZ2luZzpZWWUsZmFEaWNlOlpZZSxmYVNob3BTbGFzaDpwcSxmYVN0b3JlQWx0U2xhc2g6WFllLGZhU29ydERvd246dXEsZmFTb3J0RGVzYzpLWWUsZmFQZXNldGFTaWduOlFZZSxmYVRhYmxldFNjcmVlbkJ1dHRvbjpmcSxmYVRhYmxldEFsdDpKWWUsZmFIYW5kSG9sZGluZ0RvbGxhcjptcSxmYUhhbmRIb2xkaW5nVXNkOmVaZSxmYVNoaWVsZDpncSxmYVNoaWVsZEJsYW5rOnRaZSxmYUZhY2VMYXVnaDpicSxmYUxhdWdoOmFaZSxmYUhhbmRzSG9sZGluZzppWmUsZmFDYXJ0U2hvcHBpbmc6dnEsZmFTaG9wcGluZ0NhcnQ6clplLGZhT2N0YWdvbjpzWmUsZmFIYW5kUG9pbnRlcjpuWmUsZmFSZWdpc3RlcmVkOm9aZSxmYUhvdXNlU2lnbmFsOmxaZSxmYUJhbmdsYWRlc2hpVGFrYVNpZ246Y1plfX0pO3ZhciBNeD1odCh1PT57InVzZSBzdHJpY3QiO3ZhciBoWmU9e3htbG5zOiJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIsd2lkdGg6MjQsaGVpZ2h0OjI0LHZpZXdCb3g6IjAgMCAyNCAyNCIsZmlsbDoibm9uZSIsc3Ryb2tlOiJjdXJyZW50Q29sb3IiLCJzdHJva2Utd2lkdGgiOjIsInN0cm9rZS1saW5lY2FwIjoicm91bmQiLCJzdHJva2UtbGluZWpvaW4iOiJyb3VuZCJ9LHBaZT0oW3QsZSxhXSk9PntsZXQgaT1kb2N1bWVudC5jcmVhdGVFbGVtZW50TlMoImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIix0KTtyZXR1cm4gT2JqZWN0LmtleXMoZSkuZm9yRWFjaChyPT57aS5zZXRBdHRyaWJ1dGUocixTdHJpbmcoZVtyXSkpfSksYT8ubGVuZ3RoJiZhLmZvckVhY2gocj0+e2xldCBzPXBaZShyKTtpLmFwcGVuZENoaWxkKHMpfSksaX0sdVplPSh0LGU9e30pPT57bGV0IGk9ey4uLmhaZSwuLi5lfTtyZXR1cm4gcFplKFsic3ZnIixpLHRdKX0sX2p0PXQ9Pntmb3IobGV0IGUgaW4gdClpZihlLnN0YXJ0c1dpdGgoImFyaWEtIil8fGU9PT0icm9sZSJ8fGU9PT0idGl0bGUiKXJldHVybiEwO3JldHVybiExfSxUanQ9KC4uLnQpPT50LmZpbHRlcigoZSxhLGkpPT4hIWUmJmUudHJpbSgpIT09IiImJmkuaW5kZXhPZihlKT09PWEpLmpvaW4oIiAiKS50cmltKCksTGp0PXQ9PnQucmVwbGFjZSgvXihbQS1aXSl8W1xzLV9dKyhcdykvZywoZSxhLGkpPT5pP2kudG9VcHBlckNhc2UoKTphLnRvTG93ZXJDYXNlKCkpLCRqdD10PT57bGV0IGU9TGp0KHQpO3JldHVybiBlLmNoYXJBdCgwKS50b1VwcGVyQ2FzZSgpK2Uuc2xpY2UoMSl9LEFqdD10PT5BcnJheS5mcm9tKHQuYXR0cmlidXRlcykucmVkdWNlKChlLGEpPT4oZVthLm5hbWVdPWEudmFsdWUsZSkse30pLGZaZT10PT50eXBlb2YgdD09InN0cmluZyI/dDohdHx8IXQuY2xhc3M/IiI6dC5jbGFzcyYmdHlwZW9mIHQuY2xhc3M9PSJzdHJpbmciP3QuY2xhc3Muc3BsaXQoIiAiKTp0LmNsYXNzJiZBcnJheS5pc0FycmF5KHQuY2xhc3MpP3QuY2xhc3M6IiIsbVplPSh0LHtuYW1lQXR0cjplLGljb25zOmEsYXR0cnM6aX0pPT57bGV0IHI9dC5nZXRBdHRyaWJ1dGUoZSk7aWYocj09bnVsbClyZXR1cm47bGV0IHM9JGp0KHIpLG49YVtzXTtpZighbilyZXR1cm4gY29uc29sZS53YXJuKGAke3Qub3V0ZXJIVE1MfSBpY29uIG5hbWUgd2FzIG5vdCBmb3VuZCBpbiB0aGUgcHJvdmlkZWQgaWNvbnMgb2JqZWN0LmApO2xldCBvPUFqdCh0KSxkPV9qdChvKT97fTp7ImFyaWEtaGlkZGVuIjoidHJ1ZSJ9LGM9ey4uLmhaZSwiZGF0YS1sdWNpZGUiOnIsLi4uZCwuLi5pLC4uLm99LGg9ZlplKG8pLGw9ZlplKGkpLGY9VGp0KCJsdWNpZGUiLGBsdWNpZGUtJHtyfWAsLi4uaCwuLi5sKTtmJiZPYmplY3QuYXNzaWduKGMse2NsYXNzOmZ9KTtsZXQgZz11WmUobixjKTtyZXR1cm4gdC5wYXJlbnROb2RlPy5yZXBsYWNlQ2hpbGQoZyx0KX0sZ1plPVtbInBhdGgiLHtkOiJtMTQgMTIgNCA0IDQtNCJ9XSxbInBhdGgiLHtkOiJNMTggMTZWNyJ9XSxbInBhdGgiLHtkOiJtMiAxNiA0LjAzOS05LjY5YS41LjUgMCAwIDEgLjkyMyAwTDExIDE2In1dLFsicGF0aCIse2Q6Ik0zLjMwNCAxM2g2LjM5MiJ9XV0sYlplPVtbInBhdGgiLHtkOiJtMTQgMTEgNC00IDQgNCJ9XSxbInBhdGgiLHtkOiJNMTggMTZWNyJ9XSxbInBhdGgiLHtkOiJtMiAxNiA0LjAzOS05LjY5YS41LjUgMCAwIDEgLjkyMyAwTDExIDE2In1dLFsicGF0aCIse2Q6Ik0zLjMwNCAxM2g2LjM5MiJ9XV0sdlplPVtbInBhdGgiLHtkOiJtMTUgMTYgMi41MzYtNy4zMjhhMS4wMiAxLjAyIDEgMCAxIDEuOTI4IDBMMjIgMTYifV0sWyJwYXRoIix7ZDoiTTE1LjY5NyAxNGg1LjYwNiJ9XSxbInBhdGgiLHtkOiJtMiAxNiA0LjAzOS05LjY5YS41LjUgMCAwIDEgLjkyMyAwTDExIDE2In1dLFsicGF0aCIse2Q6Ik0zLjMwNCAxM2g2LjM5MiJ9XV0seVplPVtbImNpcmNsZSIse2N4OiIxNiIsY3k6IjQiLHI6IjEifV0sWyJwYXRoIix7ZDoibTE4IDE5IDEtNy02IDEifV0sWyJwYXRoIix7ZDoibTUgOCAzLTMgNS41IDMtMi4zNiAzLjUifV0sWyJwYXRoIix7ZDoiTTQuMjQgMTQuNWE1IDUgMCAwIDAgNi44OCA2In1dLFsicGF0aCIse2Q6Ik0xMy43NiAxNy41YTUgNSAwIDAgMC02Ljg4LTYifV1dLHhaZT1bWyJwYXRoIix7ZDoiTTE4IDE3LjVhMi41IDIuNSAwIDEgMS00IDIuMDNWMTIifV0sWyJwYXRoIix7ZDoiTTYgMTJINGEyIDIgMCAwIDEtMi0yVjVhMiAyIDAgMCAxIDItMmgxNmEyIDIgMCAwIDEgMiAydjVhMiAyIDAgMCAxLTIgMmgtMiJ9XSxbInBhdGgiLHtkOiJNNiA4aDEyIn1dLFsicGF0aCIse2Q6Ik02LjYgMTUuNTcyQTIgMiAwIDEgMCAxMCAxN3YtNSJ9XV0sd1plPVtbInBhdGgiLHtkOiJNMjIgMTJoLTIuNDhhMiAyIDAgMCAwLTEuOTMgMS40NmwtMi4zNSA4LjM2YS4yNS4yNSAwIDAgMS0uNDggMEw5LjI0IDIuMThhLjI1LjI1IDAgMCAwLS40OCAwbC0yLjM1IDguMzZBMiAyIDAgMCAxIDQuNDkgMTJIMiJ9XV0sTVplPVtbInBhdGgiLHtkOiJNNSAxN0g0YTIgMiAwIDAgMS0yLTJWNWEyIDIgMCAwIDEgMi0yaDE2YTIgMiAwIDAgMSAyIDJ2MTBhMiAyIDAgMCAxLTIgMmgtMSJ9XSxbInBhdGgiLHtkOiJtMTIgMTUgNSA2SDdaIn1dXSxtZz1bWyJjaXJjbGUiLHtjeDoiMTIiLGN5OiIxMyIscjoiOCJ9XSxbInBhdGgiLHtkOiJNNSAzIDIgNiJ9XSxbInBhdGgiLHtkOiJtMjIgNi0zLTMifV0sWyJwYXRoIix7ZDoiTTYuMzggMTguNyA0IDIxIn1dLFsicGF0aCIse2Q6Ik0xNy42NCAxOC42NyAyMCAyMSJ9XSxbInBhdGgiLHtkOiJtOSAxMyAyIDIgNC00In1dXSxnZz1bWyJjaXJjbGUiLHtjeDoiMTIiLGN5OiIxMyIscjoiOCJ9XSxbInBhdGgiLHtkOiJNNSAzIDIgNiJ9XSxbInBhdGgiLHtkOiJtMjIgNi0zLTMifV0sWyJwYXRoIix7ZDoiTTYuMzggMTguNyA0IDIxIn1dLFsicGF0aCIse2Q6Ik0xNy42NCAxOC42NyAyMCAyMSJ9XSxbInBhdGgiLHtkOiJNOSAxM2g2In1dXSx6WmU9W1sicGF0aCIse2Q6Ik02Ljg3IDYuODdhOCA4IDAgMSAwIDExLjI2IDExLjI2In1dLFsicGF0aCIse2Q6Ik0xOS45IDE0LjI1YTggOCAwIDAgMC05LjE1LTkuMTUifV0sWyJwYXRoIix7ZDoibTIyIDYtMy0zIn1dLFsicGF0aCIse2Q6Ik02LjI2IDE4LjY3IDQgMjEifV0sWyJwYXRoIix7ZDoibTIgMiAyMCAyMCJ9XSxbInBhdGgiLHtkOiJNNCA0IDIgNiJ9XV0sYmc9W1siY2lyY2xlIix7Y3g6IjEyIixjeToiMTMiLHI6IjgifV0sWyJwYXRoIix7ZDoiTTUgMyAyIDYifV0sWyJwYXRoIix7ZDoibTIyIDYtMy0zIn1dLFsicGF0aCIse2Q6Ik02LjM4IDE4LjcgNCAyMSJ9XSxbInBhdGgiLHtkOiJNMTcuNjQgMTguNjcgMjAgMjEifV0sWyJwYXRoIix7ZDoiTTEyIDEwdjYifV0sWyJwYXRoIix7ZDoiTTkgMTNoNiJ9XV0sa1plPVtbImNpcmNsZSIse2N4OiIxMiIsY3k6IjEzIixyOiI4In1dLFsicGF0aCIse2Q6Ik0xMiA5djRsMiAyIn1dLFsicGF0aCIse2Q6Ik01IDMgMiA2In1dLFsicGF0aCIse2Q6Im0yMiA2LTMtMyJ9XSxbInBhdGgiLHtkOiJNNi4zOCAxOC43IDQgMjEifV0sWyJwYXRoIix7ZDoiTTE3LjY0IDE4LjY3IDIwIDIxIn1dXSxTWmU9W1sicGF0aCIse2Q6Ik0xMSAyMWMwLTIuNSAyLTIuNSAyLTUifV0sWyJwYXRoIix7ZDoiTTE2IDIxYzAtMi41IDItMi41IDItNSJ9XSxbInBhdGgiLHtkOiJtMTkgOC0uOCAzYTEuMjUgMS4yNSAwIDAgMS0xLjIgMUg3YTEuMjUgMS4yNSAwIDAgMS0xLjItMUw1IDgifV0sWyJwYXRoIix7ZDoiTTIxIDNhMSAxIDAgMCAxIDEgMXYyYTIgMiAwIDAgMS0yIDJINGEyIDIgMCAwIDEtMi0yVjRhMSAxIDAgMCAxIDEtMXoifV0sWyJwYXRoIix7ZDoiTTYgMjFjMC0yLjUgMi0yLjUgMi01In1dXSxDWmU9W1sicmVjdCIse3dpZHRoOiIxOCIsaGVpZ2h0OiIxOCIseDoiMyIseToiMyIscng6IjIiLHJ5OiIyIn1dLFsicG9seWxpbmUiLHtwb2ludHM6IjExIDMgMTEgMTEgMTQgOCAxNyAxMSAxNyAzIn1dXSxfWmU9W1sicGF0aCIse2Q6Ik0yIDEyaDIwIn1dLFsicGF0aCIse2Q6Ik0xMCAxNnY0YTIgMiAwIDAgMS0yIDJINmEyIDIgMCAwIDEtMi0ydi00In1dLFsicGF0aCIse2Q6Ik0xMCA4VjRhMiAyIDAgMCAwLTItMkg2YTIgMiAwIDAgMC0yIDJ2NCJ9XSxbInBhdGgiLHtkOiJNMjAgMTZ2MWEyIDIgMCAwIDEtMiAyaC0yYTIgMiAwIDAgMS0yLTJ2LTEifV0sWyJwYXRoIix7ZDoiTTE0IDhWN2MwLTEuMS45LTIgMi0yaDJhMiAyIDAgMCAxIDIgMnYxIn1dXSxUWmU9W1sicGF0aCIse2Q6Ik0xMiAydjIwIn1dLFsicGF0aCIse2Q6Ik04IDEwSDRhMiAyIDAgMCAxLTItMlY2YzAtMS4xLjktMiAyLTJoNCJ9XSxbInBhdGgiLHtkOiJNMTYgMTBoNGEyIDIgMCAwIDAgMi0yVjZhMiAyIDAgMCAwLTItMmgtNCJ9XSxbInBhdGgiLHtkOiJNOCAyMEg3YTIgMiAwIDAgMS0yLTJ2LTJjMC0xLjEuOS0yIDItMmgxIn1dLFsicGF0aCIse2Q6Ik0xNiAxNGgxYTIgMiAwIDAgMSAyIDJ2MmEyIDIgMCAwIDEtMiAyaC0xIn1dXSxMWmU9W1sicmVjdCIse3dpZHRoOiI2IixoZWlnaHQ6IjE2Iix4OiI0Iix5OiIyIixyeDoiMiJ9XSxbInJlY3QiLHt3aWR0aDoiNiIsaGVpZ2h0OiI5Iix4OiIxNCIseToiOSIscng6IjIifV0sWyJwYXRoIix7ZDoiTTIyIDIySDIifV1dLCRaZT1bWyJyZWN0Iix7d2lkdGg6IjE2IixoZWlnaHQ6IjYiLHg6IjIiLHk6IjQiLHJ4OiIyIn1dLFsicmVjdCIse3dpZHRoOiI5IixoZWlnaHQ6IjYiLHg6IjkiLHk6IjE0IixyeDoiMiJ9XSxbInBhdGgiLHtkOiJNMjIgMjJWMiJ9XV0sQVplPVtbInJlY3QiLHt3aWR0aDoiNiIsaGVpZ2h0OiIxNCIseDoiNCIseToiNSIscng6IjIifV0sWyJyZWN0Iix7d2lkdGg6IjYiLGhlaWdodDoiMTAiLHg6IjE0Iix5OiI3IixyeDoiMiJ9XSxbInBhdGgiLHtkOiJNMTcgMjJ2LTUifV0sWyJwYXRoIix7ZDoiTTE3IDdWMiJ9XSxbInBhdGgiLHtkOiJNNyAyMnYtMyJ9XSxbInBhdGgiLHtkOiJNNyA1VjIifV1dLERaZT1bWyJyZWN0Iix7d2lkdGg6IjYiLGhlaWdodDoiMTQiLHg6IjQiLHk6IjUiLHJ4OiIyIn1dLFsicmVjdCIse3dpZHRoOiI2IixoZWlnaHQ6IjEwIix4OiIxNCIseToiNyIscng6IjIifV0sWyJwYXRoIix7ZDoiTTEwIDJ2MjAifV0sWyJwYXRoIix7ZDoiTTIwIDJ2MjAifV1dLEVaZT1bWyJyZWN0Iix7d2lkdGg6IjYiLGhlaWdodDoiMTQiLHg6IjQiLHk6IjUiLHJ4OiIyIn1dLFsicmVjdCIse3dpZHRoOiI2IixoZWlnaHQ6IjEwIix4OiIxNCIseToiNyIscng6IjIifV0sWyJwYXRoIix7ZDoiTTQgMnYyMCJ9XSxbInBhdGgiLHtkOiJNMTQgMnYyMCJ9XV0sUFplPVtbInJlY3QiLHt3aWR0aDoiNiIsaGVpZ2h0OiIxNCIseDoiMiIseToiNSIscng6IjIifV0sWyJyZWN0Iix7d2lkdGg6IjYiLGhlaWdodDoiMTAiLHg6IjE2Iix5OiI3IixyeDoiMiJ9XSxbInBhdGgiLHtkOiJNMTIgMnYyMCJ9XV0sSVplPVtbInJlY3QiLHt3aWR0aDoiNiIsaGVpZ2h0OiIxNCIseDoiMiIseToiNSIscng6IjIifV0sWyJyZWN0Iix7d2lkdGg6IjYiLGhlaWdodDoiMTAiLHg6IjEyIix5OiI3IixyeDoiMiJ9XSxbInBhdGgiLHtkOiJNMjIgMnYyMCJ9XV0sTlplPVtbInJlY3QiLHt3aWR0aDoiNiIsaGVpZ2h0OiIxNCIseDoiNiIseToiNSIscng6IjIifV0sWyJyZWN0Iix7d2lkdGg6IjYiLGhlaWdodDoiMTAiLHg6IjE2Iix5OiI3IixyeDoiMiJ9XSxbInBhdGgiLHtkOiJNMiAydjIwIn1dXSxGWmU9W1sicmVjdCIse3dpZHRoOiI2IixoZWlnaHQ6IjEwIix4OiI5Iix5OiI3IixyeDoiMiJ9XSxbInBhdGgiLHtkOiJNNCAyMlYyIn1dLFsicGF0aCIse2Q6Ik0yMCAyMlYyIn1dXSxPWmU9W1sicmVjdCIse3dpZHRoOiI2IixoZWlnaHQ6IjE0Iix4OiIzIix5OiI1IixyeDoiMiJ9XSxbInJlY3QiLHt3aWR0aDoiNiIsaGVpZ2h0OiIxMCIseDoiMTUiLHk6IjciLHJ4OiIyIn1dLFsicGF0aCIse2Q6Ik0zIDJ2MjAifV0sWyJwYXRoIix7ZDoiTTIxIDJ2MjAifV1dLFJaZT1bWyJyZWN0Iix7d2lkdGg6IjYiLGhlaWdodDoiMTYiLHg6IjQiLHk6IjYiLHJ4OiIyIn1dLFsicmVjdCIse3dpZHRoOiI2IixoZWlnaHQ6IjkiLHg6IjE0Iix5OiI2IixyeDoiMiJ9XSxbInBhdGgiLHtkOiJNMjIgMkgyIn1dXSxCWmU9W1sicmVjdCIse3dpZHRoOiI5IixoZWlnaHQ6IjYiLHg6IjYiLHk6IjE0IixyeDoiMiJ9XSxbInJlY3QiLHt3aWR0aDoiMTYiLGhlaWdodDoiNiIseDoiNiIseToiNCIscng6IjIifV0sWyJwYXRoIix7ZDoiTTIgMnYyMCJ9XV0sSFplPVtbInBhdGgiLHtkOiJNMjIgMTdoLTMifV0sWyJwYXRoIix7ZDoiTTIyIDdoLTUifV0sWyJwYXRoIix7ZDoiTTUgMTdIMiJ9XSxbInBhdGgiLHtkOiJNNyA3SDIifV0sWyJyZWN0Iix7eDoiNSIseToiMTQiLHdpZHRoOiIxNCIsaGVpZ2h0OiI2IixyeDoiMiJ9XSxbInJlY3QiLHt4OiI3Iix5OiI0Iix3aWR0aDoiMTAiLGhlaWdodDoiNiIscng6IjIifV1dLHFaZT1bWyJyZWN0Iix7d2lkdGg6IjE0IixoZWlnaHQ6IjYiLHg6IjUiLHk6IjE0IixyeDoiMiJ9XSxbInJlY3QiLHt3aWR0aDoiMTAiLGhlaWdodDoiNiIseDoiNyIseToiNCIscng6IjIifV0sWyJwYXRoIix7ZDoiTTIgMjBoMjAifV0sWyJwYXRoIix7ZDoiTTIgMTBoMjAifV1dLFZaZT1bWyJyZWN0Iix7d2lkdGg6IjE0IixoZWlnaHQ6IjYiLHg6IjUiLHk6IjE0IixyeDoiMiJ9XSxbInJlY3QiLHt3aWR0aDoiMTAiLGhlaWdodDoiNiIseDoiNyIseToiNCIscng6IjIifV0sWyJwYXRoIix7ZDoiTTIgMTRoMjAifV0sWyJwYXRoIix7ZDoiTTIgNGgyMCJ9XV0salplPVtbInJlY3QiLHt3aWR0aDoiMTQiLGhlaWdodDoiNiIseDoiNSIseToiMTYiLHJ4OiIyIn1dLFsicmVjdCIse3dpZHRoOiIxMCIsaGVpZ2h0OiI2Iix4OiI3Iix5OiIyIixyeDoiMiJ9XSxbInBhdGgiLHtkOiJNMiAxMmgyMCJ9XV0sVVplPVtbInJlY3QiLHt3aWR0aDoiMTQiLGhlaWdodDoiNiIseDoiNSIseToiMTIiLHJ4OiIyIn1dLFsicmVjdCIse3dpZHRoOiIxMCIsaGVpZ2h0OiI2Iix4OiI3Iix5OiIyIixyeDoiMiJ9XSxbInBhdGgiLHtkOiJNMiAyMmgyMCJ9XV0sV1plPVtbInJlY3QiLHt3aWR0aDoiMTQiLGhlaWdodDoiNiIseDoiNSIseToiMTYiLHJ4OiIyIn1dLFsicmVjdCIse3dpZHRoOiIxMCIsaGVpZ2h0OiI2Iix4OiI3Iix5OiI2IixyeDoiMiJ9XSxbInBhdGgiLHtkOiJNMiAyaDIwIn1dXSxHWmU9W1sicmVjdCIse3dpZHRoOiIxMCIsaGVpZ2h0OiI2Iix4OiI3Iix5OiI5IixyeDoiMiJ9XSxbInBhdGgiLHtkOiJNMjIgMjBIMiJ9XSxbInBhdGgiLHtkOiJNMjIgNEgyIn1dXSxZWmU9W1sicmVjdCIse3dpZHRoOiIxNCIsaGVpZ2h0OiI2Iix4OiI1Iix5OiIxNSIscng6IjIifV0sWyJyZWN0Iix7d2lkdGg6IjEwIixoZWlnaHQ6IjYiLHg6IjciLHk6IjMiLHJ4OiIyIn1dLFsicGF0aCIse2Q6Ik0yIDIxaDIwIn1dLFsicGF0aCIse2Q6Ik0yIDNoMjAifV1dLFpaZT1bWyJwYXRoIix7ZDoiTTEwIDEwSDYifV0sWyJwYXRoIix7ZDoiTTE0IDE4VjZhMiAyIDAgMCAwLTItMkg0YTIgMiAwIDAgMC0yIDJ2MTFhMSAxIDAgMCAwIDEgMWgyIn1dLFsicGF0aCIse2Q6Ik0xOSAxOGgyYTEgMSAwIDAgMCAxLTF2LTMuMjhhMSAxIDAgMCAwLS42ODQtLjk0OGwtMS45MjMtLjY0MWExIDEgMCAwIDEtLjU3OC0uNTAybC0xLjUzOS0zLjA3NkExIDEgMCAwIDAgMTYuMzgyIDhIMTQifV0sWyJwYXRoIix7ZDoiTTggOHY0In1dLFsicGF0aCIse2Q6Ik05IDE4aDYifV0sWyJjaXJjbGUiLHtjeDoiMTciLGN5OiIxOCIscjoiMiJ9XSxbImNpcmNsZSIse2N4OiI3IixjeToiMTgiLHI6IjIifV1dLFhaZT1bWyJwYXRoIix7ZDoiTTE2IDEyaDMifV0sWyJwYXRoIix7ZDoiTTE3LjUgMTJhOCA4IDAgMCAxLTggOEE0LjUgNC41IDAgMCAxIDUgMTUuNWMwLTYgOC00IDgtOC41YTMgMyAwIDEgMC02IDBjMCAzIDIuNSA4LjUgMTIgMTMifV1dLEtaZT1bWyJwYXRoIix7ZDoiTTEwIDE3Yy01LTMtNy03LTctOWEyIDIgMCAwIDEgNCAwYzAgMi41LTUgMi41LTUgNiAwIDEuNyAxLjMgMyAzIDMgMi44IDAgNS0yLjIgNS01In1dLFsicGF0aCIse2Q6Ik0yMiAxN2MtNS0zLTctNy03LTlhMiAyIDAgMCAxIDQgMGMwIDIuNS01IDIuNS01IDYgMCAxLjcgMS4zIDMgMyAzIDIuOCAwIDUtMi4yIDUtNSJ9XV0sUVplPVtbInBhdGgiLHtkOiJNMTAgMnY1LjYzMmMwIC40MjQtLjI3Mi43OTUtLjY1My45ODJBNiA2IDAgMCAwIDYgMTRjLjAwNiA0IDMgNyA1IDgifV0sWyJwYXRoIix7ZDoiTTEwIDVIOGEyIDIgMCAwIDAgMCA0aC42OCJ9XSxbInBhdGgiLHtkOiJNMTQgMnY1LjYzMmMwIC40MjQuMjcyLjc5NS42NTIuOTgyQTYgNiAwIDAgMSAxOCAxNGMwIDQtMyA3LTUgOCJ9XSxbInBhdGgiLHtkOiJNMTQgNWgyYTIgMiAwIDAgMSAwIDRoLS42OCJ9XSxbInBhdGgiLHtkOiJNMTggMjJINiJ9XSxbInBhdGgiLHtkOiJNOSAyaDYifV1dLEpaZT1bWyJwYXRoIix7ZDoiTTEyIDZ2MTYifV0sWyJwYXRoIix7ZDoibTE5IDEzIDItMWE5IDkgMCAwIDEtMTggMGwyIDEifV0sWyJwYXRoIix7ZDoiTTkgMTFoNiJ9XSxbImNpcmNsZSIse2N4OiIxMiIsY3k6IjQiLHI6IjIifV1dLGVYZT1bWyJjaXJjbGUiLHtjeDoiMTIiLGN5OiIxMiIscjoiMTAifV0sWyJwYXRoIix7ZDoiTTE2IDE2cy0xLjUtMi00LTItNCAyLTQgMiJ9XSxbInBhdGgiLHtkOiJNNy41IDggMTAgOSJ9XSxbInBhdGgiLHtkOiJtMTQgOSAyLjUtMSJ9XSxbInBhdGgiLHtkOiJNOSAxMGguMDEifV0sWyJwYXRoIix7ZDoiTTE1IDEwaC4wMSJ9XV0sdFhlPVtbImNpcmNsZSIse2N4OiIxMiIsY3k6IjEyIixyOiIxMCJ9XSxbInBhdGgiLHtkOiJNOCAxNWg4In1dLFsicGF0aCIse2Q6Ik04IDloMiJ9XSxbInBhdGgiLHtkOiJNMTQgOWgyIn1dXSxhWGU9W1sicGF0aCIse2Q6Ik0yIDEyIDcgMiJ9XSxbInBhdGgiLHtkOiJtNyAxMiA1LTEwIn1dLFsicGF0aCIse2Q6Im0xMiAxMiA1LTEwIn1dLFsicGF0aCIse2Q6Im0xNyAxMiA1LTEwIn1dLFsicGF0aCIse2Q6Ik00LjUgN2gxNSJ9XSxbInBhdGgiLHtkOiJNMTIgMTZ2NiJ9XV0saVhlPVtbInBhdGgiLHtkOiJNNyAxMEg2YTQgNCAwIDAgMS00LTQgMSAxIDAgMCAxIDEtMWg0In1dLFsicGF0aCIse2Q6Ik03IDVhMSAxIDAgMCAxIDEtMWgxM2ExIDEgMCAwIDEgMSAxIDcgNyAwIDAgMS03IDdIOGExIDEgMCAwIDEtMS0xeiJ9XSxbInBhdGgiLHtkOiJNOSAxMnY1In1dLFsicGF0aCIse2Q6Ik0xNSAxMnY1In1dLFsicGF0aCIse2Q6Ik01IDIwYTMgMyAwIDAgMSAzLTNoOGEzIDMgMCAwIDEgMyAzIDEgMSAwIDAgMS0xIDFINmExIDEgMCAwIDEtMS0xIn1dXSxyWGU9W1siY2lyY2xlIix7Y3g6IjEyIixjeToiMTIiLHI6IjEwIn1dLFsicGF0aCIse2Q6Im0xNC4zMSA4IDUuNzQgOS45NCJ9XSxbInBhdGgiLHtkOiJNOS42OSA4aDExLjQ4In1dLFsicGF0aCIse2Q6Im03LjM4IDEyIDUuNzQtOS45NCJ9XSxbInBhdGgiLHtkOiJNOS42OSAxNiAzLjk1IDYuMDYifV0sWyJwYXRoIix7ZDoiTTE0LjMxIDE2SDIuODMifV0sWyJwYXRoIix7ZDoibTE2LjYyIDEyLTUuNzQgOS45NCJ9XV0sc1hlPVtbInJlY3QiLHt3aWR0aDoiMjAiLGhlaWdodDoiMTYiLHg6IjIiLHk6IjQiLHJ4OiIyIn1dLFsicGF0aCIse2Q6Ik02IDhoLjAxIn1dLFsicGF0aCIse2Q6Ik0xMCA4aC4wMSJ9XSxbInBhdGgiLHtkOiJNMTQgOGguMDEifV1dLG5YZT1bWyJyZWN0Iix7eDoiMiIseToiNCIsd2lkdGg6IjIwIixoZWlnaHQ6IjE2IixyeDoiMiJ9XSxbInBhdGgiLHtkOiJNMTAgNHY0In1dLFsicGF0aCIse2Q6Ik0yIDhoMjAifV0sWyJwYXRoIix7ZDoiTTYgNHY0In1dXSxvWGU9W1sicGF0aCIse2Q6Ik0xMiA2LjUyOFYzYTEgMSAwIDAgMSAxLTFoMCJ9XSxbInBhdGgiLHtkOiJNMTguMjM3IDIxQTE1IDE1IDAgMCAwIDIyIDExYTYgNiAwIDAgMC0xMC00LjQ3MkE2IDYgMCAwIDAgMiAxMWExNS4xIDE1LjEgMCAwIDAgMy43NjMgMTAgMyAzIDAgMCAwIDMuNjQ4LjY0OCA1LjUgNS41IDAgMCAxIDUuMTc4IDBBMyAzIDAgMCAwIDE4LjIzNyAyMSJ9XV0sbFhlPVtbInJlY3QiLHt3aWR0aDoiMjAiLGhlaWdodDoiNSIseDoiMiIseToiMyIscng6IjEifV0sWyJwYXRoIix7ZDoiTTQgOHYxMWEyIDIgMCAwIDAgMiAyaDIifV0sWyJwYXRoIix7ZDoiTTIwIDh2MTFhMiAyIDAgMCAxLTIgMmgtMiJ9XSxbInBhdGgiLHtkOiJtOSAxNSAzLTMgMyAzIn1dLFsicGF0aCIse2Q6Ik0xMiAxMnY5In1dXSxjWGU9W1sicmVjdCIse3dpZHRoOiIyMCIsaGVpZ2h0OiI1Iix4OiIyIix5OiIzIixyeDoiMSJ9XSxbInBhdGgiLHtkOiJNNCA4djExYTIgMiAwIDAgMCAyIDJoMTJhMiAyIDAgMCAwIDItMlY4In1dLFsicGF0aCIse2Q6Im05LjUgMTcgNS01In1dLFsicGF0aCIse2Q6Im05LjUgMTIgNSA1In1dXSxkWGU9W1sicmVjdCIse3dpZHRoOiIyMCIsaGVpZ2h0OiI1Iix4OiIyIix5OiIzIixyeDoiMSJ9XSxbInBhdGgiLHtkOiJNNCA4djExYTIgMiAwIDAgMCAyIDJoMTJhMiAyIDAgMCAwIDItMlY4In1dLFsicGF0aCIse2Q6Ik0xMCAxMmg0In1dXSxoWGU9W1sicGF0aCIse2Q6Ik0xOSA5VjZhMiAyIDAgMCAwLTItMkg3YTIgMiAwIDAgMC0yIDJ2MyJ9XSxbInBhdGgiLHtkOiJNMyAxNmEyIDIgMCAwIDAgMiAyaDE0YTIgMiAwIDAgMCAyLTJ2LTVhMiAyIDAgMCAwLTQgMHYxLjVhLjUuNSAwIDAgMS0uNS41aC05YS41LjUgMCAwIDEtLjUtLjVWMTFhMiAyIDAgMCAwLTQgMHoifV0sWyJwYXRoIix7ZDoiTTUgMTh2MiJ9XSxbInBhdGgiLHtkOiJNMTkgMTh2MiJ9XV0scFhlPVtbInBhdGgiLHtkOiJNMTUgMTFhMSAxIDAgMCAwIDEgMWgyLjkzOWExIDEgMCAwIDEgLjc1IDEuODExbC02LjgzNSA2LjgzNmExLjIwNyAxLjIwNyAwIDAgMS0xLjcwNyAwTDQuMzEgMTMuODFhMSAxIDAgMCAxIC43NS0xLjgxMUg4YTEgMSAwIDAgMCAxLTFWOWExIDEgMCAwIDEgMS0xaDRhMSAxIDAgMCAxIDEgMXoifV0sWyJwYXRoIix7ZDoiTTkgNGg2In1dXSx1WGU9W1sicGF0aCIse2Q6Ik0xNSAxMWExIDEgMCAwIDAgMSAxaDIuOTM5YTEgMSAwIDAgMSAuNzUgMS44MTFsLTYuODM1IDYuODM2YTEuMjA3IDEuMjA3IDAgMCAxLTEuNzA3IDBMNC4zMSAxMy44MWExIDEgMCAwIDEgLjc1LTEuODExSDhhMSAxIDAgMCAwIDEtMVY1YTEgMSAwIDAgMSAxLTFoNGExIDEgMCAwIDEgMSAxeiJ9XV0sZlhlPVtbInBhdGgiLHtkOiJNMTMgOWExIDEgMCAwIDEtMS0xVjUuMDYxYTEgMSAwIDAgMC0xLjgxMS0uNzVsLTYuODM1IDYuODM2YTEuMjA3IDEuMjA3IDAgMCAwIDAgMS43MDdsNi44MzUgNi44MzVhMSAxIDAgMCAwIDEuODExLS43NVYxNmExIDEgMCAwIDEgMS0xaDJhMSAxIDAgMCAwIDEtMXYtNGExIDEgMCAwIDAtMS0xeiJ9XSxbInBhdGgiLHtkOiJNMjAgOXY2In1dXSxtWGU9W1sicGF0aCIse2Q6Ik0xMyA5YTEgMSAwIDAgMS0xLTFWNS4wNjFhMSAxIDAgMCAwLTEuODExLS43NWwtNi44MzUgNi44MzZhMS4yMDcgMS4yMDcgMCAwIDAgMCAxLjcwN2w2LjgzNSA2LjgzNWExIDEgMCAwIDAgMS44MTEtLjc1VjE2YTEgMSAwIDAgMSAxLTFoNmExIDEgMCAwIDAgMS0xdi00YTEgMSAwIDAgMC0xLTF6In1dXSxnWGU9W1sicGF0aCIse2Q6Ik0xMSA5YTEgMSAwIDAgMCAxLTFWNS4wNjFhMSAxIDAgMCAxIDEuODExLS43NWw2LjgzNiA2LjgzNmExLjIwNyAxLjIwNyAwIDAgMSAwIDEuNzA3bC02LjgzNiA2LjgzNWExIDEgMCAwIDEtMS44MTEtLjc1VjE2YTEgMSAwIDAgMC0xLTFIOWExIDEgMCAwIDEtMS0xdi00YTEgMSAwIDAgMSAxLTF6In1dLFsicGF0aCIse2Q6Ik00IDl2NiJ9XV0sYlhlPVtbInBhdGgiLHtkOiJNMTEgOWExIDEgMCAwIDAgMS0xVjUuMDYxYTEgMSAwIDAgMSAxLjgxMS0uNzVsNi44MzYgNi44MzZhMS4yMDcgMS4yMDcgMCAwIDEgMCAxLjcwN2wtNi44MzYgNi44MzVhMSAxIDAgMCAxLTEuODExLS43NVYxNmExIDEgMCAwIDAtMS0xSDVhMSAxIDAgMCAxLTEtMXYtNGExIDEgMCAwIDEgMS0xeiJ9XV0sdlhlPVtbInBhdGgiLHtkOiJNOSAxM2ExIDEgMCAwIDAtMS0xSDUuMDYxYTEgMSAwIDAgMS0uNzUtMS44MTFsNi44MzYtNi44MzVhMS4yMDcgMS4yMDcgMCAwIDEgMS43MDcgMGw2LjgzNSA2LjgzNWExIDEgMCAwIDEtLjc1IDEuODExSDE2YTEgMSAwIDAgMC0xIDF2MmExIDEgMCAwIDEtMSAxaC00YTEgMSAwIDAgMS0xLTF6In1dLFsicGF0aCIse2Q6Ik05IDIwaDYifV1dLHlYZT1bWyJwYXRoIix7ZDoiTTkgMTNhMSAxIDAgMCAwLTEtMUg1LjA2MWExIDEgMCAwIDEtLjc1LTEuODExbDYuODM2LTYuODM1YTEuMjA3IDEuMjA3IDAgMCAxIDEuNzA3IDBsNi44MzUgNi44MzVhMSAxIDAgMCAxLS43NSAxLjgxMUgxNmExIDEgMCAwIDAtMSAxdjZhMSAxIDAgMCAxLTEgMWgtNGExIDEgMCAwIDEtMS0xeiJ9XV0seFhlPVtbInBhdGgiLHtkOiJtMyAxNiA0IDQgNC00In1dLFsicGF0aCIse2Q6Ik03IDIwVjQifV0sWyJyZWN0Iix7eDoiMTUiLHk6IjQiLHdpZHRoOiI0IixoZWlnaHQ6IjYiLHJ5OiIyIn1dLFsicGF0aCIse2Q6Ik0xNyAyMHYtNmgtMiJ9XSxbInBhdGgiLHtkOiJNMTUgMjBoNCJ9XV0sd1hlPVtbInBhdGgiLHtkOiJtMyAxNiA0IDQgNC00In1dLFsicGF0aCIse2Q6Ik03IDIwVjQifV0sWyJwYXRoIix7ZDoiTTE3IDEwVjRoLTIifV0sWyJwYXRoIix7ZDoiTTE1IDEwaDQifV0sWyJyZWN0Iix7eDoiMTUiLHk6IjE0Iix3aWR0aDoiNCIsaGVpZ2h0OiI2IixyeToiMiJ9XV0sdmc9W1sicGF0aCIse2Q6Im0zIDE2IDQgNCA0LTQifV0sWyJwYXRoIix7ZDoiTTcgMjBWNCJ9XSxbInBhdGgiLHtkOiJNMjAgOGgtNSJ9XSxbInBhdGgiLHtkOiJNMTUgMTBWNi41YTIuNSAyLjUgMCAwIDEgNSAwVjEwIn1dLFsicGF0aCIse2Q6Ik0xNSAxNGg1bC01IDZoNSJ9XV0sTVhlPVtbInBhdGgiLHtkOiJNMTkgM0g1In1dLFsicGF0aCIse2Q6Ik0xMiAyMVY3In1dLFsicGF0aCIse2Q6Im02IDE1IDYgNiA2LTYifV1dLHpYZT1bWyJwYXRoIix7ZDoiTTE3IDcgNyAxNyJ9XSxbInBhdGgiLHtkOiJNMTcgMTdIN1Y3In1dXSxrWGU9W1sicGF0aCIse2Q6Im0zIDE2IDQgNCA0LTQifV0sWyJwYXRoIix7ZDoiTTcgMjBWNCJ9XSxbInBhdGgiLHtkOiJNMTEgNGg0In1dLFsicGF0aCIse2Q6Ik0xMSA4aDcifV0sWyJwYXRoIix7ZDoiTTExIDEyaDEwIn1dXSxTWGU9W1sicGF0aCIse2Q6Im03IDcgMTAgMTAifV0sWyJwYXRoIix7ZDoiTTE3IDd2MTBINyJ9XV0sQ1hlPVtbInBhdGgiLHtkOiJNMTIgMnYxNCJ9XSxbInBhdGgiLHtkOiJtMTkgOS03IDctNy03In1dLFsiY2lyY2xlIix7Y3g6IjEyIixjeToiMjEiLHI6IjEifV1dLF9YZT1bWyJwYXRoIix7ZDoiTTEyIDE3VjMifV0sWyJwYXRoIix7ZDoibTYgMTEgNiA2IDYtNiJ9XSxbInBhdGgiLHtkOiJNMTkgMjFINSJ9XV0sVFhlPVtbInBhdGgiLHtkOiJtMyAxNiA0IDQgNC00In1dLFsicGF0aCIse2Q6Ik03IDIwVjQifV0sWyJwYXRoIix7ZDoibTIxIDgtNC00LTQgNCJ9XSxbInBhdGgiLHtkOiJNMTcgNHYxNiJ9XV0seWc9W1sicGF0aCIse2Q6Im0zIDE2IDQgNCA0LTQifV0sWyJwYXRoIix7ZDoiTTcgMjBWNCJ9XSxbInBhdGgiLHtkOiJNMTEgNGgxMCJ9XSxbInBhdGgiLHtkOiJNMTEgOGg3In1dLFsicGF0aCIse2Q6Ik0xMSAxMmg0In1dXSx4Zz1bWyJwYXRoIix7ZDoibTMgMTYgNCA0IDQtNCJ9XSxbInBhdGgiLHtkOiJNNyA0djE2In1dLFsicGF0aCIse2Q6Ik0xNSA0aDVsLTUgNmg1In1dLFsicGF0aCIse2Q6Ik0xNSAyMHYtMy41YTIuNSAyLjUgMCAwIDEgNSAwVjIwIn1dLFsicGF0aCIse2Q6Ik0yMCAxOGgtNSJ9XV0sTFhlPVtbInBhdGgiLHtkOiJNMTIgNXYxNCJ9XSxbInBhdGgiLHtkOiJtMTkgMTItNyA3LTctNyJ9XV0sJFhlPVtbInBhdGgiLHtkOiJtOSA2LTYgNiA2IDYifV0sWyJwYXRoIix7ZDoiTTMgMTJoMTQifV0sWyJwYXRoIix7ZDoiTTIxIDE5VjUifV1dLEFYZT1bWyJwYXRoIix7ZDoiTTggMyA0IDdsNCA0In1dLFsicGF0aCIse2Q6Ik00IDdoMTYifV0sWyJwYXRoIix7ZDoibTE2IDIxIDQtNC00LTQifV0sWyJwYXRoIix7ZDoiTTIwIDE3SDQifV1dLERYZT1bWyJwYXRoIix7ZDoiTTMgMTlWNSJ9XSxbInBhdGgiLHtkOiJtMTMgNi02IDYgNiA2In1dLFsicGF0aCIse2Q6Ik03IDEyaDE0In1dXSxFWGU9W1sicGF0aCIse2Q6Im0xMiAxOS03LTcgNy03In1dLFsicGF0aCIse2Q6Ik0xOSAxMkg1In1dXSxQWGU9W1sicGF0aCIse2Q6Ik0zIDV2MTQifV0sWyJwYXRoIix7ZDoiTTIxIDEySDcifV0sWyJwYXRoIix7ZDoibTE1IDE4IDYtNi02LTYifV1dLElYZT1bWyJwYXRoIix7ZDoibTE2IDMgNCA0LTQgNCJ9XSxbInBhdGgiLHtkOiJNMjAgN0g0In1dLFsicGF0aCIse2Q6Im04IDIxLTQtNCA0LTQifV0sWyJwYXRoIix7ZDoiTTQgMTdoMTYifV1dLE5YZT1bWyJwYXRoIix7ZDoiTTE3IDEySDMifV0sWyJwYXRoIix7ZDoibTExIDE4IDYtNi02LTYifV0sWyJwYXRoIix7ZDoiTTIxIDV2MTQifV1dLEZYZT1bWyJwYXRoIix7ZDoiTTUgMTJoMTQifV0sWyJwYXRoIix7ZDoibTEyIDUgNyA3LTcgNyJ9XV0sT1hlPVtbInBhdGgiLHtkOiJtMyA4IDQtNCA0IDQifV0sWyJwYXRoIix7ZDoiTTcgNHYxNiJ9XSxbInJlY3QiLHt4OiIxNSIseToiNCIsd2lkdGg6IjQiLGhlaWdodDoiNiIscnk6IjIifV0sWyJwYXRoIix7ZDoiTTE3IDIwdi02aC0yIn1dLFsicGF0aCIse2Q6Ik0xNSAyMGg0In1dXSxSWGU9W1sicGF0aCIse2Q6Im0zIDggNC00IDQgNCJ9XSxbInBhdGgiLHtkOiJNNyA0djE2In1dLFsicGF0aCIse2Q6Ik0xNyAxMFY0aC0yIn1dLFsicGF0aCIse2Q6Ik0xNSAxMGg0In1dLFsicmVjdCIse3g6IjE1Iix5OiIxNCIsd2lkdGg6IjQiLGhlaWdodDoiNiIscnk6IjIifV1dLHdnPVtbInBhdGgiLHtkOiJtMyA4IDQtNCA0IDQifV0sWyJwYXRoIix7ZDoiTTcgNHYxNiJ9XSxbInBhdGgiLHtkOiJNMjAgOGgtNSJ9XSxbInBhdGgiLHtkOiJNMTUgMTBWNi41YTIuNSAyLjUgMCAwIDEgNSAwVjEwIn1dLFsicGF0aCIse2Q6Ik0xNSAxNGg1bC01IDZoNSJ9XV0sQlhlPVtbInBhdGgiLHtkOiJtMjEgMTYtNCA0LTQtNCJ9XSxbInBhdGgiLHtkOiJNMTcgMjBWNCJ9XSxbInBhdGgiLHtkOiJtMyA4IDQtNCA0IDQifV0sWyJwYXRoIix7ZDoiTTcgNHYxNiJ9XV0sSFhlPVtbInBhdGgiLHtkOiJtNSA5IDctNyA3IDcifV0sWyJwYXRoIix7ZDoiTTEyIDE2VjIifV0sWyJjaXJjbGUiLHtjeDoiMTIiLGN5OiIyMSIscjoiMSJ9XV0scVhlPVtbInBhdGgiLHtkOiJtMTggOS02LTYtNiA2In1dLFsicGF0aCIse2Q6Ik0xMiAzdjE0In1dLFsicGF0aCIse2Q6Ik01IDIxaDE0In1dXSxWWGU9W1sicGF0aCIse2Q6Ik03IDE3VjdoMTAifV0sWyJwYXRoIix7ZDoiTTE3IDE3IDcgNyJ9XV0sTWc9W1sicGF0aCIse2Q6Im0zIDggNC00IDQgNCJ9XSxbInBhdGgiLHtkOiJNNyA0djE2In1dLFsicGF0aCIse2Q6Ik0xMSAxMmg0In1dLFsicGF0aCIse2Q6Ik0xMSAxNmg3In1dLFsicGF0aCIse2Q6Ik0xMSAyMGgxMCJ9XV0salhlPVtbInBhdGgiLHtkOiJNNyA3aDEwdjEwIn1dLFsicGF0aCIse2Q6Ik03IDE3IDE3IDcifV1dLFVYZT1bWyJwYXRoIix7ZDoiTTUgM2gxNCJ9XSxbInBhdGgiLHtkOiJtMTggMTMtNi02LTYgNiJ9XSxbInBhdGgiLHtkOiJNMTIgN3YxNCJ9XV0sV1hlPVtbInBhdGgiLHtkOiJtMyA4IDQtNCA0IDQifV0sWyJwYXRoIix7ZDoiTTcgNHYxNiJ9XSxbInBhdGgiLHtkOiJNMTEgMTJoMTAifV0sWyJwYXRoIix7ZDoiTTExIDE2aDcifV0sWyJwYXRoIix7ZDoiTTExIDIwaDQifV1dLHpnPVtbInBhdGgiLHtkOiJtMyA4IDQtNCA0IDQifV0sWyJwYXRoIix7ZDoiTTcgNHYxNiJ9XSxbInBhdGgiLHtkOiJNMTUgNGg1bC01IDZoNSJ9XSxbInBhdGgiLHtkOiJNMTUgMjB2LTMuNWEyLjUgMi41IDAgMCAxIDUgMFYyMCJ9XSxbInBhdGgiLHtkOiJNMjAgMThoLTUifV1dLEdYZT1bWyJwYXRoIix7ZDoibTUgMTIgNy03IDcgNyJ9XSxbInBhdGgiLHtkOiJNMTIgMTlWNSJ9XV0sWVhlPVtbInBhdGgiLHtkOiJtNCA2IDMtMyAzIDMifV0sWyJwYXRoIix7ZDoiTTcgMTdWMyJ9XSxbInBhdGgiLHtkOiJtMTQgNiAzLTMgMyAzIn1dLFsicGF0aCIse2Q6Ik0xNyAxN1YzIn1dLFsicGF0aCIse2Q6Ik00IDIxaDE2In1dXSxaWGU9W1sicGF0aCIse2Q6Ik0xMiA2djEyIn1dLFsicGF0aCIse2Q6Ik0xNy4xOTYgOSA2LjgwNCAxNSJ9XSxbInBhdGgiLHtkOiJtNi44MDQgOSAxMC4zOTIgNiJ9XV0sWFhlPVtbImNpcmNsZSIse2N4OiIxMiIsY3k6IjEyIixyOiI0In1dLFsicGF0aCIse2Q6Ik0xNiA4djVhMyAzIDAgMCAwIDYgMHYtMWExMCAxMCAwIDEgMC00IDgifV1dLEtYZT1bWyJjaXJjbGUiLHtjeDoiMTIiLGN5OiIxMiIscjoiMSJ9XSxbInBhdGgiLHtkOiJNMjAuMiAyMC4yYzIuMDQtMi4wMy4wMi03LjM2LTQuNS0xMS45LTQuNTQtNC41Mi05Ljg3LTYuNTQtMTEuOS00LjUtMi4wNCAyLjAzLS4wMiA3LjM2IDQuNSAxMS45IDQuNTQgNC41MiA5Ljg3IDYuNTQgMTEuOSA0LjVaIn1dLFsicGF0aCIse2Q6Ik0xNS43IDE1LjdjNC41Mi00LjU0IDYuNTQtOS44NyA0LjUtMTEuOS0yLjAzLTIuMDQtNy4zNi0uMDItMTEuOSA0LjUtNC41MiA0LjU0LTYuNTQgOS44Ny00LjUgMTEuOSAyLjAzIDIuMDQgNy4zNi4wMiAxMS45LTQuNVoifV1dLFFYZT1bWyJwYXRoIix7ZDoiTTIgMTB2MyJ9XSxbInBhdGgiLHtkOiJNNiA2djExIn1dLFsicGF0aCIse2Q6Ik0xMCAzdjE4In1dLFsicGF0aCIse2Q6Ik0xNCA4djcifV0sWyJwYXRoIix7ZDoiTTE4IDV2MTMifV0sWyJwYXRoIix7ZDoiTTIyIDEwdjMifV1dLEpYZT1bWyJwYXRoIix7ZDoiTTIgMTNhMiAyIDAgMCAwIDItMlY3YTIgMiAwIDAgMSA0IDB2MTNhMiAyIDAgMCAwIDQgMFY0YTIgMiAwIDAgMSA0IDB2MTNhMiAyIDAgMCAwIDQgMHYtNGEyIDIgMCAwIDEgMi0yIn1dXSxlS2U9W1sicGF0aCIse2Q6Im0xNS40NzcgMTIuODkgMS41MTUgOC41MjZhLjUuNSAwIDAgMS0uODEuNDdsLTMuNTgtMi42ODdhMSAxIDAgMCAwLTEuMTk3IDBsLTMuNTg2IDIuNjg2YS41LjUgMCAwIDEtLjgxLS40NjlsMS41MTQtOC41MjYifV0sWyJjaXJjbGUiLHtjeDoiMTIiLGN5OiI4IixyOiI2In1dXSx0S2U9W1sicGF0aCIse2Q6Im0xNCAxMi04LjM4MSA4LjM4YTEgMSAwIDAgMS0zLjAwMS0zTDExIDkifV0sWyJwYXRoIix7ZDoiTTE1IDE1LjVhLjUuNSAwIDAgMCAuNS41QTYuNSA2LjUgMCAwIDAgMjIgOS41YS41LjUgMCAwIDAtLjUtLjVoLTEuNjcyYTIgMiAwIDAgMS0xLjQxNC0uNTg2bC01LjA2Mi01LjA2MmExLjIwNSAxLjIwNSAwIDAgMC0xLjcwNCAwTDkuMzUyIDUuNjQ4YTEuMjA1IDEuMjA1IDAgMCAwIDAgMS43MDRsNS4wNjIgNS4wNjJBMiAyIDAgMCAxIDE1IDEzLjgyOHoifV1dLGtnPVtbInBhdGgiLHtkOiJNMTMuNSAxMC41IDE1IDkifV0sWyJwYXRoIix7ZDoiTTQgNHYxNWExIDEgMCAwIDAgMSAxaDE1In1dLFsicGF0aCIse2Q6Ik00LjI5MyAxOS43MDcgNiAxOCJ9XSxbInBhdGgiLHtkOiJtOSAxNSAxLjUtMS41In1dXSxhS2U9W1sicGF0aCIse2Q6Ik00IDEwYTQgNCAwIDAgMSA0LTRoOGE0IDQgMCAwIDEgNCA0djEwYTIgMiAwIDAgMS0yIDJINmEyIDIgMCAwIDEtMi0yeiJ9XSxbInBhdGgiLHtkOiJNOCAxMGg4In1dLFsicGF0aCIse2Q6Ik04IDE4aDgifV0sWyJwYXRoIix7ZDoiTTggMjJ2LTZhMiAyIDAgMCAxIDItMmg0YTIgMiAwIDAgMSAyIDJ2NiJ9XSxbInBhdGgiLHtkOiJNOSA2VjRhMiAyIDAgMCAxIDItMmgyYTIgMiAwIDAgMSAyIDJ2MiJ9XV0saUtlPVtbInBhdGgiLHtkOiJNMTAgMTZjLjUuMyAxLjIuNSAyIC41czEuNS0uMiAyLS41In1dLFsicGF0aCIse2Q6Ik0xNSAxMmguMDEifV0sWyJwYXRoIix7ZDoiTTE5LjM4IDYuODEzQTkgOSAwIDAgMSAyMC44IDEwLjJhMiAyIDAgMCAxIDAgMy42IDkgOSAwIDAgMS0xNy42IDAgMiAyIDAgMCAxIDAtMy42QTkgOSAwIDAgMSAxMiAzYzIgMCAzLjUgMS4xIDMuNSAyLjVzLS45IDIuNS0yIDIuNWMtLjggMC0xLjUtLjQtMS41LTEifV0sWyJwYXRoIix7ZDoiTTkgMTJoLjAxIn1dXSxyS2U9W1sicGF0aCIse2Q6Ik0zLjg1IDguNjJhNCA0IDAgMCAxIDQuNzgtNC43NyA0IDQgMCAwIDEgNi43NCAwIDQgNCAwIDAgMSA0Ljc4IDQuNzggNCA0IDAgMCAxIDAgNi43NCA0IDQgMCAwIDEtNC43NyA0Ljc4IDQgNCAwIDAgMS02Ljc1IDAgNCA0IDAgMCAxLTQuNzgtNC43NyA0IDQgMCAwIDEgMC02Ljc2WiJ9XSxbImxpbmUiLHt4MToiMTIiLHgyOiIxMiIseTE6IjgiLHkyOiIxMiJ9XSxbImxpbmUiLHt4MToiMTIiLHgyOiIxMi4wMSIseTE6IjE2Iix5MjoiMTYifV1dLHNLZT1bWyJwYXRoIix7ZDoiTTMuODUgOC42MmE0IDQgMCAwIDEgNC43OC00Ljc3IDQgNCAwIDAgMSA2Ljc0IDAgNCA0IDAgMCAxIDQuNzggNC43OCA0IDQgMCAwIDEgMCA2Ljc0IDQgNCAwIDAgMS00Ljc3IDQuNzggNCA0IDAgMCAxLTYuNzUgMCA0IDQgMCAwIDEtNC43OC00Ljc3IDQgNCAwIDAgMSAwLTYuNzZaIn1dLFsicGF0aCIse2Q6Ik0xMiA3djEwIn1dLFsicGF0aCIse2Q6Ik0xNS40IDEwYTQgNCAwIDEgMCAwIDQifV1dLFNnPVtbInBhdGgiLHtkOiJNMy44NSA4LjYyYTQgNCAwIDAgMSA0Ljc4LTQuNzcgNCA0IDAgMCAxIDYuNzQgMCA0IDQgMCAwIDEgNC43OCA0Ljc4IDQgNCAwIDAgMSAwIDYuNzQgNCA0IDAgMCAxLTQuNzcgNC43OCA0IDQgMCAwIDEtNi43NSAwIDQgNCAwIDAgMS00Ljc4LTQuNzcgNCA0IDAgMCAxIDAtNi43NloifV0sWyJwYXRoIix7ZDoibTkgMTIgMiAyIDQtNCJ9XV0sbktlPVtbInBhdGgiLHtkOiJNMy44NSA4LjYyYTQgNCAwIDAgMSA0Ljc4LTQuNzcgNCA0IDAgMCAxIDYuNzQgMCA0IDQgMCAwIDEgNC43OCA0Ljc4IDQgNCAwIDAgMSAwIDYuNzQgNCA0IDAgMCAxLTQuNzcgNC43OCA0IDQgMCAwIDEtNi43NSAwIDQgNCAwIDAgMS00Ljc4LTQuNzcgNCA0IDAgMCAxIDAtNi43NloifV0sWyJwYXRoIix7ZDoiTTggOGg4In1dLFsicGF0aCIse2Q6Ik04IDEyaDgifV0sWyJwYXRoIix7ZDoibTEzIDE3LTUtMWgxYTQgNCAwIDAgMCAwLTgifV1dLG9LZT1bWyJwYXRoIix7ZDoiTTMuODUgOC42MmE0IDQgMCAwIDEgNC43OC00Ljc3IDQgNCAwIDAgMSA2Ljc0IDAgNCA0IDAgMCAxIDQuNzggNC43OCA0IDQgMCAwIDEgMCA2Ljc0IDQgNCAwIDAgMS00Ljc3IDQuNzggNCA0IDAgMCAxLTYuNzUgMCA0IDQgMCAwIDEtNC43OC00Ljc3IDQgNCAwIDAgMSAwLTYuNzZaIn1dLFsicGF0aCIse2Q6Ik0xNiA4aC02YTIgMiAwIDEgMCAwIDRoNGEyIDIgMCAxIDEgMCA0SDgifV0sWyJwYXRoIix7ZDoiTTEyIDE4VjYifV1dLGxLZT1bWyJwYXRoIix7ZDoiTTMuODUgOC42MmE0IDQgMCAwIDEgNC43OC00Ljc3IDQgNCAwIDAgMSA2Ljc0IDAgNCA0IDAgMCAxIDQuNzggNC43OCA0IDQgMCAwIDEgMCA2Ljc0IDQgNCAwIDAgMS00Ljc3IDQuNzggNCA0IDAgMCAxLTYuNzUgMCA0IDQgMCAwIDEtNC43OC00Ljc3IDQgNCAwIDAgMSAwLTYuNzZaIn1dLFsicGF0aCIse2Q6Ik03IDEyaDUifV0sWyJwYXRoIix7ZDoiTTE1IDkuNGE0IDQgMCAxIDAgMCA1LjIifV1dLGNLZT1bWyJwYXRoIix7ZDoiTTMuODUgOC42MmE0IDQgMCAwIDEgNC43OC00Ljc3IDQgNCAwIDAgMSA2Ljc0IDAgNCA0IDAgMCAxIDQuNzggNC43OCA0IDQgMCAwIDEgMCA2Ljc0IDQgNCAwIDAgMS00Ljc3IDQuNzggNCA0IDAgMCAxLTYuNzUgMCA0IDQgMCAwIDEtNC43OC00Ljc3IDQgNCAwIDAgMSAwLTYuNzZaIn1dLFsibGluZSIse3gxOiIxMiIseDI6IjEyIix5MToiMTYiLHkyOiIxMiJ9XSxbImxpbmUiLHt4MToiMTIiLHgyOiIxMi4wMSIseTE6IjgiLHkyOiI4In1dXSxkS2U9W1sicGF0aCIse2Q6Ik0zLjg1IDguNjJhNCA0IDAgMCAxIDQuNzgtNC43NyA0IDQgMCAwIDEgNi43NCAwIDQgNCAwIDAgMSA0Ljc4IDQuNzggNCA0IDAgMCAxIDAgNi43NCA0IDQgMCAwIDEtNC43NyA0Ljc4IDQgNCAwIDAgMS02Ljc1IDAgNCA0IDAgMCAxLTQuNzgtNC43NyA0IDQgMCAwIDEgMC02Ljc2WiJ9XSxbInBhdGgiLHtkOiJtOSA4IDMgM3Y3In1dLFsicGF0aCIse2Q6Im0xMiAxMSAzLTMifV0sWyJwYXRoIix7ZDoiTTkgMTJoNiJ9XSxbInBhdGgiLHtkOiJNOSAxNmg2In1dXSxoS2U9W1sicGF0aCIse2Q6Ik0zLjg1IDguNjJhNCA0IDAgMCAxIDQuNzgtNC43NyA0IDQgMCAwIDEgNi43NCAwIDQgNCAwIDAgMSA0Ljc4IDQuNzggNCA0IDAgMCAxIDAgNi43NCA0IDQgMCAwIDEtNC43NyA0Ljc4IDQgNCAwIDAgMS02Ljc1IDAgNCA0IDAgMCAxLTQuNzgtNC43NyA0IDQgMCAwIDEgMC02Ljc2WiJ9XSxbImxpbmUiLHt4MToiOCIseDI6IjE2Iix5MToiMTIiLHkyOiIxMiJ9XV0scEtlPVtbInBhdGgiLHtkOiJNMy44NSA4LjYyYTQgNCAwIDAgMSA0Ljc4LTQuNzcgNCA0IDAgMCAxIDYuNzQgMCA0IDQgMCAwIDEgNC43OCA0Ljc4IDQgNCAwIDAgMSAwIDYuNzQgNCA0IDAgMCAxLTQuNzcgNC43OCA0IDQgMCAwIDEtNi43NSAwIDQgNCAwIDAgMS00Ljc4LTQuNzcgNCA0IDAgMCAxIDAtNi43NloifV0sWyJwYXRoIix7ZDoibTE1IDktNiA2In1dLFsicGF0aCIse2Q6Ik05IDloLjAxIn1dLFsicGF0aCIse2Q6Ik0xNSAxNWguMDEifV1dLHVLZT1bWyJwYXRoIix7ZDoiTTMuODUgOC42MmE0IDQgMCAwIDEgNC43OC00Ljc3IDQgNCAwIDAgMSA2Ljc0IDAgNCA0IDAgMCAxIDQuNzggNC43OCA0IDQgMCAwIDEgMCA2Ljc0IDQgNCAwIDAgMS00Ljc3IDQuNzggNCA0IDAgMCAxLTYuNzUgMCA0IDQgMCAwIDEtNC43OC00Ljc3IDQgNCAwIDAgMSAwLTYuNzZaIn1dLFsibGluZSIse3gxOiIxMiIseDI6IjEyIix5MToiOCIseTI6IjE2In1dLFsibGluZSIse3gxOiI4Iix4MjoiMTYiLHkxOiIxMiIseTI6IjEyIn1dXSxmS2U9W1sicGF0aCIse2Q6Ik0zLjg1IDguNjJhNCA0IDAgMCAxIDQuNzgtNC43NyA0IDQgMCAwIDEgNi43NCAwIDQgNCAwIDAgMSA0Ljc4IDQuNzggNCA0IDAgMCAxIDAgNi43NCA0IDQgMCAwIDEtNC43NyA0Ljc4IDQgNCAwIDAgMS02Ljc1IDAgNCA0IDAgMCAxLTQuNzgtNC43NyA0IDQgMCAwIDEgMC02Ljc2WiJ9XSxbInBhdGgiLHtkOiJNOCAxMmg0In1dLFsicGF0aCIse2Q6Ik0xMCAxNlY5LjVhMi41IDIuNSAwIDAgMSA1IDAifV0sWyJwYXRoIix7ZDoiTTggMTZoNyJ9XV0sQ2c9W1sicGF0aCIse2Q6Ik0zLjg1IDguNjJhNCA0IDAgMCAxIDQuNzgtNC43NyA0IDQgMCAwIDEgNi43NCAwIDQgNCAwIDAgMSA0Ljc4IDQuNzggNCA0IDAgMCAxIDAgNi43NCA0IDQgMCAwIDEtNC43NyA0Ljc4IDQgNCAwIDAgMS02Ljc1IDAgNCA0IDAgMCAxLTQuNzgtNC43NyA0IDQgMCAwIDEgMC02Ljc2WiJ9XSxbInBhdGgiLHtkOiJNOS4wOSA5YTMgMyAwIDAgMSA1LjgzIDFjMCAyLTMgMy0zIDMifV0sWyJsaW5lIix7eDE6IjEyIix4MjoiMTIuMDEiLHkxOiIxNyIseTI6IjE3In1dXSxtS2U9W1sicGF0aCIse2Q6Ik0zLjg1IDguNjJhNCA0IDAgMCAxIDQuNzgtNC43NyA0IDQgMCAwIDEgNi43NCAwIDQgNCAwIDAgMSA0Ljc4IDQuNzggNCA0IDAgMCAxIDAgNi43NCA0IDQgMCAwIDEtNC43NyA0Ljc4IDQgNCAwIDAgMS02Ljc1IDAgNCA0IDAgMCAxLTQuNzgtNC43NyA0IDQgMCAwIDEgMC02Ljc2WiJ9XSxbInBhdGgiLHtkOiJNOSAxNmg1In1dLFsicGF0aCIse2Q6Ik05IDEyaDVhMiAyIDAgMSAwIDAtNGgtM3Y5In1dXSxnS2U9W1sicGF0aCIse2Q6Ik0zLjg1IDguNjJhNCA0IDAgMCAxIDQuNzgtNC43NyA0IDQgMCAwIDEgNi43NCAwIDQgNCAwIDAgMSA0Ljc4IDQuNzggNCA0IDAgMCAxIDAgNi43NCA0IDQgMCAwIDEtNC43NyA0Ljc4IDQgNCAwIDAgMS02Ljc1IDAgNCA0IDAgMCAxLTQuNzgtNC43NyA0IDQgMCAwIDEgMC02Ljc2WiJ9XSxbInBhdGgiLHtkOiJNMTEgMTdWOGg0In1dLFsicGF0aCIse2Q6Ik0xMSAxMmgzIn1dLFsicGF0aCIse2Q6Ik05IDE2aDQifV1dLGJLZT1bWyJwYXRoIix7ZDoiTTExIDd2MTBhNSA1IDAgMCAwIDUtNSJ9XSxbInBhdGgiLHtkOiJtMTUgOC02IDMifV0sWyJwYXRoIix7ZDoiTTMuODUgOC42MmE0IDQgMCAwIDEgNC43OC00Ljc3IDQgNCAwIDAgMSA2Ljc0IDAgNCA0IDAgMCAxIDQuNzggNC43OCA0IDQgMCAwIDEgMCA2Ljc0IDQgNCAwIDAgMS00Ljc3IDQuNzggNCA0IDAgMCAxLTYuNzUgMCA0IDQgMCAwIDEtNC43OC00Ljc3IDQgNCAwIDAgMSAwLTYuNzYifV1dLHZLZT1bWyJwYXRoIix7ZDoiTTMuODUgOC42MmE0IDQgMCAwIDEgNC43OC00Ljc3IDQgNCAwIDAgMSA2Ljc0IDAgNCA0IDAgMCAxIDQuNzggNC43OCA0IDQgMCAwIDEgMCA2Ljc0IDQgNCAwIDAgMS00Ljc3IDQuNzggNCA0IDAgMCAxLTYuNzUgMCA0IDQgMCAwIDEtNC43OC00Ljc3IDQgNCAwIDAgMSAwLTYuNzZaIn1dLFsibGluZSIse3gxOiIxNSIseDI6IjkiLHkxOiI5Iix5MjoiMTUifV0sWyJsaW5lIix7eDE6IjkiLHgyOiIxNSIseTE6IjkiLHkyOiIxNSJ9XV0seUtlPVtbInBhdGgiLHtkOiJNMy44NSA4LjYyYTQgNCAwIDAgMSA0Ljc4LTQuNzcgNCA0IDAgMCAxIDYuNzQgMCA0IDQgMCAwIDEgNC43OCA0Ljc4IDQgNCAwIDAgMSAwIDYuNzQgNCA0IDAgMCAxLTQuNzcgNC43OCA0IDQgMCAwIDEtNi43NSAwIDQgNCAwIDAgMS00Ljc4LTQuNzcgNCA0IDAgMCAxIDAtNi43NloifV1dLHhLZT1bWyJwYXRoIix7ZDoiTTIyIDE4SDZhMiAyIDAgMCAxLTItMlY3YTIgMiAwIDAgMC0yLTIifV0sWyJwYXRoIix7ZDoiTTE3IDE0VjRhMiAyIDAgMCAwLTItMmgtMWEyIDIgMCAwIDAtMiAydjEwIn1dLFsicmVjdCIse3dpZHRoOiIxMyIsaGVpZ2h0OiI4Iix4OiI4Iix5OiI2IixyeDoiMSJ9XSxbImNpcmNsZSIse2N4OiIxOCIsY3k6IjIwIixyOiIyIn1dLFsiY2lyY2xlIix7Y3g6IjkiLGN5OiIyMCIscjoiMiJ9XV0sd0tlPVtbInBhdGgiLHtkOiJNMTIgMTZ2MWEyIDIgMCAwIDAgMiAyaDFhMiAyIDAgMCAxIDIgMnYxIn1dLFsicGF0aCIse2Q6Ik0xMiA2YTIgMiAwIDAgMSAyIDIifV0sWyJwYXRoIix7ZDoiTTE4IDhjMCA0LTMuNSA4LTYgOHMtNi00LTYtOGE2IDYgMCAwIDEgMTIgMCJ9XV0sTUtlPVtbInBhdGgiLHtkOiJNNC45MjkgNC45MjkgMTkuMDcgMTkuMDcxIn1dLFsiY2lyY2xlIix7Y3g6IjEyIixjeToiMTIiLHI6IjEwIn1dXSx6S2U9W1sicGF0aCIse2Q6Ik00IDEzYzMuNS0yIDgtMiAxMCAyYTUuNSA1LjUgMCAwIDEgOCA1In1dLFsicGF0aCIse2Q6Ik01LjE1IDE3Ljg5YzUuNTItMS41MiA4LjY1LTYuODkgNy0xMkMxMS41NSA0IDExLjUgMiAxMyAyYzMuMjIgMCA1IDUuNSA1IDggMCA2LjUtNC4yIDEyLTEwLjQ5IDEyQzUuMTEgMjIgMiAyMiAyIDIwYzAtMS41IDEuMTQtMS41NSAzLjE1LTIuMTFaIn1dXSxrS2U9W1sicGF0aCIse2Q6Ik0xMCAxMC4wMWguMDEifV0sWyJwYXRoIix7ZDoiTTEwIDE0LjAxaC4wMSJ9XSxbInBhdGgiLHtkOiJNMTQgMTAuMDFoLjAxIn1dLFsicGF0aCIse2Q6Ik0xNCAxNC4wMWguMDEifV0sWyJwYXRoIix7ZDoiTTE4IDZ2MTIifV0sWyJwYXRoIix7ZDoiTTYgNnYxMiJ9XSxbInJlY3QiLHt4OiIyIix5OiI2Iix3aWR0aDoiMjAiLGhlaWdodDoiMTIiLHJ4OiIyIn1dXSxTS2U9W1sicGF0aCIse2Q6Ik0xMiAxOEg0YTIgMiAwIDAgMS0yLTJWOGEyIDIgMCAwIDEgMi0yaDE2YTIgMiAwIDAgMSAyIDJ2NSJ9XSxbInBhdGgiLHtkOiJtMTYgMTkgMyAzIDMtMyJ9XSxbInBhdGgiLHtkOiJNMTggMTJoLjAxIn1dLFsicGF0aCIse2Q6Ik0xOSAxNnY2In1dLFsicGF0aCIse2Q6Ik02IDEyaC4wMSJ9XSxbImNpcmNsZSIse2N4OiIxMiIsY3k6IjEyIixyOiIyIn1dXSxDS2U9W1sicGF0aCIse2Q6Ik0xMiAxOEg0YTIgMiAwIDAgMS0yLTJWOGEyIDIgMCAwIDEgMi0yaDE2YTIgMiAwIDAgMSAyIDJ2NSJ9XSxbInBhdGgiLHtkOiJNMTggMTJoLjAxIn1dLFsicGF0aCIse2Q6Ik0xOSAyMnYtNiJ9XSxbInBhdGgiLHtkOiJtMjIgMTktMy0zLTMgMyJ9XSxbInBhdGgiLHtkOiJNNiAxMmguMDEifV0sWyJjaXJjbGUiLHtjeDoiMTIiLGN5OiIxMiIscjoiMiJ9XV0sX0tlPVtbInBhdGgiLHtkOiJNMTMgMThINGEyIDIgMCAwIDEtMi0yVjhhMiAyIDAgMCAxIDItMmgxNmEyIDIgMCAwIDEgMiAydjUifV0sWyJwYXRoIix7ZDoibTE3IDE3IDUgNSJ9XSxbInBhdGgiLHtkOiJNMTggMTJoLjAxIn1dLFsicGF0aCIse2Q6Im0yMiAxNy01IDUifV0sWyJwYXRoIix7ZDoiTTYgMTJoLjAxIn1dLFsiY2lyY2xlIix7Y3g6IjEyIixjeToiMTIiLHI6IjIifV1dLFRLZT1bWyJyZWN0Iix7d2lkdGg6IjIwIixoZWlnaHQ6IjEyIix4OiIyIix5OiI2IixyeDoiMiJ9XSxbImNpcmNsZSIse2N4OiIxMiIsY3k6IjEyIixyOiIyIn1dLFsicGF0aCIse2Q6Ik02IDEyaC4wMU0xOCAxMmguMDEifV1dLExLZT1bWyJwYXRoIix7ZDoiTTMgNXYxNCJ9XSxbInBhdGgiLHtkOiJNOCA1djE0In1dLFsicGF0aCIse2Q6Ik0xMiA1djE0In1dLFsicGF0aCIse2Q6Ik0xNyA1djE0In1dLFsicGF0aCIse2Q6Ik0yMSA1djE0In1dXSwkS2U9W1sicGF0aCIse2Q6Ik0xMCAzYTQxIDQxIDAgMCAwIDAgMTgifV0sWyJwYXRoIix7ZDoiTTE0IDNhNDEgNDEgMCAwIDEgMCAxOCJ9XSxbInBhdGgiLHtkOiJNMTcgM2EyIDIgMCAwIDEgMS42OC45MiAxNS4yNSAxNS4yNSAwIDAgMSAwIDE2LjE2QTIgMiAwIDAgMSAxNyAyMUg3YTIgMiAwIDAgMS0xLjY4LS45MiAxNS4yNSAxNS4yNSAwIDAgMSAwLTE2LjE2QTIgMiAwIDAgMSA3IDN6In1dLFsicGF0aCIse2Q6Ik0zLjg0IDE3aDE2LjMyIn1dLFsicGF0aCIse2Q6Ik0zLjg0IDdoMTYuMzIifV1dLEFLZT1bWyJwYXRoIix7ZDoiTTQgMjBoMTYifV0sWyJwYXRoIix7ZDoibTYgMTYgNi0xMiA2IDEyIn1dLFsicGF0aCIse2Q6Ik04IDEyaDgifV1dLERLZT1bWyJwYXRoIix7ZDoiTTEwIDQgOCA2In1dLFsicGF0aCIse2Q6Ik0xNyAxOXYyIn1dLFsicGF0aCIse2Q6Ik0yIDEyaDIwIn1dLFsicGF0aCIse2Q6Ik03IDE5djIifV0sWyJwYXRoIix7ZDoiTTkgNSA3LjYyMSAzLjYyMUEyLjEyMSAyLjEyMSAwIDAgMCA0IDV2MTJhMiAyIDAgMCAwIDIgMmgxMmEyIDIgMCAwIDAgMi0ydi01In1dXSxFS2U9W1sicGF0aCIse2Q6Im0xMSA3LTMgNWg0bC0zIDUifV0sWyJwYXRoIix7ZDoiTTE0Ljg1NiA2SDE2YTIgMiAwIDAgMSAyIDJ2OGEyIDIgMCAwIDEtMiAyaC0yLjkzNSJ9XSxbInBhdGgiLHtkOiJNMjIgMTR2LTQifV0sWyJwYXRoIix7ZDoiTTUuMTQgMThINGEyIDIgMCAwIDEtMi0yVjhhMiAyIDAgMCAxIDItMmgyLjkzNiJ9XV0sUEtlPVtbInBhdGgiLHtkOiJNMTAgMTB2NCJ9XSxbInBhdGgiLHtkOiJNMTQgMTB2NCJ9XSxbInBhdGgiLHtkOiJNMjIgMTR2LTQifV0sWyJwYXRoIix7ZDoiTTYgMTB2NCJ9XSxbInJlY3QiLHt4OiIyIix5OiI2Iix3aWR0aDoiMTYiLGhlaWdodDoiMTIiLHJ4OiIyIn1dXSxJS2U9W1sicGF0aCIse2Q6Ik0yMiAxNHYtNCJ9XSxbInBhdGgiLHtkOiJNNiAxNHYtNCJ9XSxbInJlY3QiLHt4OiIyIix5OiI2Iix3aWR0aDoiMTYiLGhlaWdodDoiMTIiLHJ4OiIyIn1dXSxOS2U9W1sicGF0aCIse2Q6Ik0xMCAxNHYtNCJ9XSxbInBhdGgiLHtkOiJNMjIgMTR2LTQifV0sWyJwYXRoIix7ZDoiTTYgMTR2LTQifV0sWyJyZWN0Iix7eDoiMiIseToiNiIsd2lkdGg6IjE2IixoZWlnaHQ6IjEyIixyeDoiMiJ9XV0sRktlPVtbInBhdGgiLHtkOiJNMTAgOXY2In1dLFsicGF0aCIse2Q6Ik0xMi41NDMgNkgxNmEyIDIgMCAwIDEgMiAydjhhMiAyIDAgMCAxLTIgMmgtMy42MDUifV0sWyJwYXRoIix7ZDoiTTIyIDE0di00In1dLFsicGF0aCIse2Q6Ik03IDEyaDYifV0sWyJwYXRoIix7ZDoiTTcuNjA2IDE4SDRhMiAyIDAgMCAxLTItMlY4YTIgMiAwIDAgMSAyLTJoMy42MDYifV1dLE9LZT1bWyJwYXRoIix7ZDoiTTEwIDE3aC4wMSJ9XSxbInBhdGgiLHtkOiJNMTAgN3Y2In1dLFsicGF0aCIse2Q6Ik0xNCA2aDJhMiAyIDAgMCAxIDIgMnY4YTIgMiAwIDAgMS0yIDJoLTIifV0sWyJwYXRoIix7ZDoiTTIyIDE0di00In1dLFsicGF0aCIse2Q6Ik02IDE4SDRhMiAyIDAgMCAxLTItMlY4YTIgMiAwIDAgMSAyLTJoMiJ9XV0sUktlPVtbInBhdGgiLHtkOiJNIDIyIDE0IEwgMjIgMTAifV0sWyJyZWN0Iix7eDoiMiIseToiNiIsd2lkdGg6IjE2IixoZWlnaHQ6IjEyIixyeDoiMiJ9XV0sQktlPVtbInBhdGgiLHtkOiJNNC41IDNoMTUifV0sWyJwYXRoIix7ZDoiTTYgM3YxNmEyIDIgMCAwIDAgMiAyaDhhMiAyIDAgMCAwIDItMlYzIn1dLFsicGF0aCIse2Q6Ik02IDE0aDEyIn1dXSxIS2U9W1sicGF0aCIse2Q6Ik05IDljLS42NC42NC0xLjUyMS45NTQtMi40MDIgMS4xNjVBNiA2IDAgMCAwIDggMjJhMTMuOTYgMTMuOTYgMCAwIDAgOS45LTQuMSJ9XSxbInBhdGgiLHtkOiJNMTAuNzUgNS4wOTNBNiA2IDAgMCAxIDIyIDhjMCAyLjQxMS0uNjEgNC42OC0xLjY4MyA2LjY2In1dLFsicGF0aCIse2Q6Ik01LjM0MSAxMC42MmE0IDQgMCAwIDAgNi40ODcgMS4yMDhNMTAuNjIgNS4zNDFhNC4wMTUgNC4wMTUgMCAwIDEgMi4wMzkgMi4wNCJ9XSxbImxpbmUiLHt4MToiMiIseDI6IjIyIix5MToiMiIseTI6IjIyIn1dXSxxS2U9W1sicGF0aCIse2Q6Ik0xMC4xNjUgNi41OThDOS45NTQgNy40NzggOS42NCA4LjM2IDkgOWMtLjY0LjY0LTEuNTIxLjk1NC0yLjQwMiAxLjE2NUE2IDYgMCAwIDAgOCAyMmM3LjczMiAwIDE0LTYuMjY4IDE0LTE0YTYgNiAwIDAgMC0xMS44MzUtMS40MDJaIn1dLFsicGF0aCIse2Q6Ik01LjM0MSAxMC42MmE0IDQgMCAxIDAgNS4yNzktNS4yOCJ9XV0sVktlPVtbInBhdGgiLHtkOiJNMiAyMHYtOGEyIDIgMCAwIDEgMi0yaDE2YTIgMiAwIDAgMSAyIDJ2OCJ9XSxbInBhdGgiLHtkOiJNNCAxMFY2YTIgMiAwIDAgMSAyLTJoMTJhMiAyIDAgMCAxIDIgMnY0In1dLFsicGF0aCIse2Q6Ik0xMiA0djYifV0sWyJwYXRoIix7ZDoiTTIgMThoMjAifV1dLGpLZT1bWyJwYXRoIix7ZDoiTTMgMjB2LThhMiAyIDAgMCAxIDItMmgxNGEyIDIgMCAwIDEgMiAydjgifV0sWyJwYXRoIix7ZDoiTTUgMTBWNmEyIDIgMCAwIDEgMi0yaDEwYTIgMiAwIDAgMSAyIDJ2NCJ9XSxbInBhdGgiLHtkOiJNMyAxOGgxOCJ9XV0sVUtlPVtbInBhdGgiLHtkOiJNMiA0djE2In1dLFsicGF0aCIse2Q6Ik0yIDhoMThhMiAyIDAgMCAxIDIgMnYxMCJ9XSxbInBhdGgiLHtkOiJNMiAxN2gyMCJ9XSxbInBhdGgiLHtkOiJNNiA4djkifV1dLFdLZT1bWyJwYXRoIix7ZDoiTTE2LjQgMTMuN0E2LjUgNi41IDAgMSAwIDYuMjggNi42Yy0xLjEgMy4xMy0uNzggMy45LTMuMTggNi4wOEEzIDMgMCAwIDAgNSAxOGM0IDAgOC40LTEuOCAxMS40LTQuMyJ9XSxbInBhdGgiLHtkOiJtMTguNSA2IDIuMTkgNC41YTYuNDggNi40OCAwIDAgMS0yLjI5IDcuMkMxNS40IDIwLjIgMTEgMjIgNyAyMmEzIDMgMCAwIDEtMi42OC0xLjY2TDIuNCAxNi41In1dLFsiY2lyY2xlIix7Y3g6IjEyLjUiLGN5OiI4LjUiLHI6IjIuNSJ9XV0sR0tlPVtbInBhdGgiLHtkOiJNMTMgMTN2NSJ9XSxbInBhdGgiLHtkOiJNMTcgMTEuNDdWOCJ9XSxbInBhdGgiLHtkOiJNMTcgMTFoMWEzIDMgMCAwIDEgMi43NDUgNC4yMTEifV0sWyJwYXRoIix7ZDoibTIgMiAyMCAyMCJ9XSxbInBhdGgiLHtkOiJNNSA4djEyYTIgMiAwIDAgMCAyIDJoOGEyIDIgMCAwIDAgMi0ydi0zIn1dLFsicGF0aCIse2Q6Ik03LjUzNiA3LjUzNUM2Ljc2NiA3LjY0OSA2LjE1NCA4IDUuNSA4YTIuNSAyLjUgMCAwIDEtMS43NjgtNC4yNjgifV0sWyJwYXRoIix7ZDoiTTguNzI3IDMuMjA0QzkuMzA2IDIuNzY3IDkuODg1IDIgMTEgMmMxLjU2IDAgMiAxLjUgMyAxLjVzMS43Mi0uNSAyLjUtLjVhMSAxIDAgMSAxIDAgNWMtLjc4IDAtMS41LS41LTIuNS0uNWEzLjE0OSAzLjE0OSAwIDAgMC0uODQyLjEyIn1dLFsicGF0aCIse2Q6Ik05IDE0LjZWMTgifV1dLFlLZT1bWyJwYXRoIix7ZDoiTTE3IDExaDFhMyAzIDAgMCAxIDAgNmgtMSJ9XSxbInBhdGgiLHtkOiJNOSAxMnY2In1dLFsicGF0aCIse2Q6Ik0xMyAxMnY2In1dLFsicGF0aCIse2Q6Ik0xNCA3LjVjLTEgMC0xLjQ0LjUtMyAuNXMtMi0uNS0zLS41LTEuNzIuNS0yLjUuNWEyLjUgMi41IDAgMCAxIDAtNWMuNzggMCAxLjU3LjUgMi41LjVTOS40NCAyIDExIDJzMiAxLjUgMyAxLjUgMS43Mi0uNSAyLjUtLjVhMi41IDIuNSAwIDAgMSAwIDVjLS43OCAwLTEuNS0uNS0yLjUtLjVaIn1dLFsicGF0aCIse2Q6Ik01IDh2MTJhMiAyIDAgMCAwIDIgMmg4YTIgMiAwIDAgMCAyLTJWOCJ9XV0sWktlPVtbInBhdGgiLHtkOiJNMTAuMjY4IDIxYTIgMiAwIDAgMCAzLjQ2NCAwIn1dLFsicGF0aCIse2Q6Ik0xMS42OCAyLjAwOUE2IDYgMCAwIDAgNiA4YzAgNC40OTktMS40MTEgNS45NTYtMi43MzggNy4zMjZBMSAxIDAgMCAwIDQgMTdoMTZhMSAxIDAgMCAwIC43NC0xLjY3M2MtLjgyNC0uODUtMS42NzgtMS43MzEtMi4yMS0zLjM0OCJ9XSxbImNpcmNsZSIse2N4OiIxOCIsY3k6IjUiLHI6IjMifV1dLFhLZT1bWyJwYXRoIix7ZDoiTTE4LjUxOCAxNy4zNDdBNyA3IDAgMCAxIDE0IDE5In1dLFsicGF0aCIse2Q6Ik0xOC44IDRBMTEgMTEgMCAwIDEgMjAgOSJ9XSxbInBhdGgiLHtkOiJNOSA5aC4wMSJ9XSxbImNpcmNsZSIse2N4OiIyMCIsY3k6IjE2IixyOiIyIn1dLFsiY2lyY2xlIix7Y3g6IjkiLGN5OiI5IixyOiI3In1dLFsicmVjdCIse3g6IjQiLHk6IjE2Iix3aWR0aDoiMTAiLGhlaWdodDoiNiIscng6IjIifV1dLEtLZT1bWyJwYXRoIix7ZDoiTTEwLjI2OCAyMWEyIDIgMCAwIDAgMy40NjQgMCJ9XSxbInBhdGgiLHtkOiJNMTUgOGg2In1dLFsicGF0aCIse2Q6Ik0xNi4yNDMgMy43NTdBNiA2IDAgMCAwIDYgOGMwIDQuNDk5LTEuNDExIDUuOTU2LTIuNzM4IDcuMzI2QTEgMSAwIDAgMCA0IDE3aDE2YTEgMSAwIDAgMCAuNzQtMS42NzNBOS40IDkuNCAwIDAgMSAxOC42NjcgMTIifV1dLFFLZT1bWyJwYXRoIix7ZDoiTTEwLjI2OCAyMWEyIDIgMCAwIDAgMy40NjQgMCJ9XSxbInBhdGgiLHtkOiJNMTcgMTdINGExIDEgMCAwIDEtLjc0LTEuNjczQzQuNTkgMTMuOTU2IDYgMTIuNDk5IDYgOGE2IDYgMCAwIDEgLjI1OC0xLjc0MiJ9XSxbInBhdGgiLHtkOiJtMiAyIDIwIDIwIn1dLFsicGF0aCIse2Q6Ik04LjY2OCAzLjAxQTYgNiAwIDAgMSAxOCA4YzAgMi42ODcuNzcgNC42NTMgMS43MDcgNi4wNSJ9XV0sSktlPVtbInBhdGgiLHtkOiJNMTAuMjY4IDIxYTIgMiAwIDAgMCAzLjQ2NCAwIn1dLFsicGF0aCIse2Q6Ik0xNSA4aDYifV0sWyJwYXRoIix7ZDoiTTE4IDV2NiJ9XSxbInBhdGgiLHtkOiJNMjAuMDAyIDE0LjQ2NGE5IDkgMCAwIDAgLjczOC44NjNBMSAxIDAgMCAxIDIwIDE3SDRhMSAxIDAgMCAxLS43NC0xLjY3M0M0LjU5IDEzLjk1NiA2IDEyLjQ5OSA2IDhhNiA2IDAgMCAxIDguNzUtNS4zMzIifV1dLGVRZT1bWyJwYXRoIix7ZDoiTTEwLjI2OCAyMWEyIDIgMCAwIDAgMy40NjQgMCJ9XSxbInBhdGgiLHtkOiJNMjIgOGMwLTIuMy0uOC00LjMtMi02In1dLFsicGF0aCIse2Q6Ik0zLjI2MiAxNS4zMjZBMSAxIDAgMCAwIDQgMTdoMTZhMSAxIDAgMCAwIC43NC0xLjY3M0MxOS40MSAxMy45NTYgMTggMTIuNDk5IDE4IDhBNiA2IDAgMCAwIDYgOGMwIDQuNDk5LTEuNDExIDUuOTU2LTIuNzM4IDcuMzI2In1dLFsicGF0aCIse2Q6Ik00IDJDMi44IDMuNyAyIDUuNyAyIDgifV1dLHRRZT1bWyJwYXRoIix7ZDoiTTEwLjI2OCAyMWEyIDIgMCAwIDAgMy40NjQgMCJ9XSxbInBhdGgiLHtkOiJNMy4yNjIgMTUuMzI2QTEgMSAwIDAgMCA0IDE3aDE2YTEgMSAwIDAgMCAuNzQtMS42NzNDMTkuNDEgMTMuOTU2IDE4IDEyLjQ5OSAxOCA4QTYgNiAwIDAgMCA2IDhjMCA0LjQ5OS0xLjQxMSA1Ljk1Ni0yLjczOCA3LjMyNiJ9XV0sX2c9W1sicmVjdCIse3dpZHRoOiIxMyIsaGVpZ2h0OiI3Iix4OiIzIix5OiIzIixyeDoiMSJ9XSxbInBhdGgiLHtkOiJtMjIgMTUtMy0zIDMtMyJ9XSxbInJlY3QiLHt3aWR0aDoiMTMiLGhlaWdodDoiNyIseDoiMyIseToiMTQiLHJ4OiIxIn1dXSxUZz1bWyJyZWN0Iix7d2lkdGg6IjEzIixoZWlnaHQ6IjciLHg6IjgiLHk6IjMiLHJ4OiIxIn1dLFsicGF0aCIse2Q6Im0yIDkgMyAzLTMgMyJ9XSxbInJlY3QiLHt3aWR0aDoiMTMiLGhlaWdodDoiNyIseDoiOCIseToiMTQiLHJ4OiIxIn1dXSxhUWU9W1sicmVjdCIse3dpZHRoOiI3IixoZWlnaHQ6IjEzIix4OiIzIix5OiIzIixyeDoiMSJ9XSxbInBhdGgiLHtkOiJtOSAyMiAzLTMgMyAzIn1dLFsicmVjdCIse3dpZHRoOiI3IixoZWlnaHQ6IjEzIix4OiIxNCIseToiMyIscng6IjEifV1dLGlRZT1bWyJyZWN0Iix7d2lkdGg6IjciLGhlaWdodDoiMTMiLHg6IjMiLHk6IjgiLHJ4OiIxIn1dLFsicGF0aCIse2Q6Im0xNSAyLTMgMy0zLTMifV0sWyJyZWN0Iix7d2lkdGg6IjciLGhlaWdodDoiMTMiLHg6IjE0Iix5OiI4IixyeDoiMSJ9XV0sclFlPVtbInBhdGgiLHtkOiJNMTIuNDA5IDEzLjAxN0E1IDUgMCAwIDEgMjIgMTVjMCAzLjg2Ni00IDctOSA3LTQuMDc3IDAtOC4xNTMtLjgyLTEwLjM3MS0yLjQ2Mi0uNDI2LS4zMTYtLjYzMS0uODMyLS42Mi0xLjM2MkMyLjExOCAxMi43MjMgMi42MjcgMiAxMCAyYTMgMyAwIDAgMSAzIDMgMiAyIDAgMCAxLTIgMmMtMS4xMDUgMC0xLjY0LS40NDQtMi0xIn1dLFsicGF0aCIse2Q6Ik0xNSAxNGE1IDUgMCAwIDAtNy41ODQgMiJ9XSxbInBhdGgiLHtkOiJNOS45NjQgNi44MjVDOC4wMTkgNy45NzcgOS41IDEzIDggMTUifV1dLHNRZT1bWyJjaXJjbGUiLHtjeDoiMTguNSIsY3k6IjE3LjUiLHI6IjMuNSJ9XSxbImNpcmNsZSIse2N4OiI1LjUiLGN5OiIxNy41IixyOiIzLjUifV0sWyJjaXJjbGUiLHtjeDoiMTUiLGN5OiI1IixyOiIxIn1dLFsicGF0aCIse2Q6Ik0xMiAxNy41VjE0bC0zLTMgNC0zIDIgM2gyIn1dXSxuUWU9W1sicmVjdCIse3g6IjE0Iix5OiIxNCIsd2lkdGg6IjQiLGhlaWdodDoiNiIscng6IjIifV0sWyJyZWN0Iix7eDoiNiIseToiNCIsd2lkdGg6IjQiLGhlaWdodDoiNiIscng6IjIifV0sWyJwYXRoIix7ZDoiTTYgMjBoNCJ9XSxbInBhdGgiLHtkOiJNMTQgMTBoNCJ9XSxbInBhdGgiLHtkOiJNNiAxNGgydjYifV0sWyJwYXRoIix7ZDoiTTE0IDRoMnY2In1dXSxvUWU9W1sicGF0aCIse2Q6Ik0xMCAxMGg0In1dLFsicGF0aCIse2Q6Ik0xOSA3VjRhMSAxIDAgMCAwLTEtMWgtMmExIDEgMCAwIDAtMSAxdjMifV0sWyJwYXRoIix7ZDoiTTIwIDIxYTIgMiAwIDAgMCAyLTJ2LTMuODUxYzAtMS4zOS0yLTIuOTYyLTItNC44MjlWOGExIDEgMCAwIDAtMS0xaC00YTEgMSAwIDAgMC0xIDF2MTFhMiAyIDAgMCAwIDIgMnoifV0sWyJwYXRoIix7ZDoiTSAyMiAxNiBMIDIgMTYifV0sWyJwYXRoIix7ZDoiTTQgMjFhMiAyIDAgMCAxLTItMnYtMy44NTFjMC0xLjM5IDItMi45NjIgMi00LjgyOVY4YTEgMSAwIDAgMSAxLTFoNGExIDEgMCAwIDEgMSAxdjExYTIgMiAwIDAgMS0yIDJ6In1dLFsicGF0aCIse2Q6Ik05IDdWNGExIDEgMCAwIDAtMS0xSDZhMSAxIDAgMCAwLTEgMXYzIn1dXSxsUWU9W1siY2lyY2xlIix7Y3g6IjEyIixjeToiMTEuOSIscjoiMiJ9XSxbInBhdGgiLHtkOiJNNi43IDMuNGMtLjkgMi41IDAgNS4yIDIuMiA2LjdDNi41IDkgMy43IDkuNiAyIDExLjYifV0sWyJwYXRoIix7ZDoibTguOSAxMC4xIDEuNC44In1dLFsicGF0aCIse2Q6Ik0xNy4zIDMuNGMuOSAyLjUgMCA1LjItMi4yIDYuNyAyLjQtMS4yIDUuMi0uNiA2LjkgMS41In1dLFsicGF0aCIse2Q6Im0xNS4xIDEwLjEtMS40LjgifV0sWyJwYXRoIix7ZDoiTTE2LjcgMjAuOGMtMi42LS40LTQuNi0yLjYtNC43LTUuMy0uMiAyLjYtMi4xIDQuOC00LjcgNS4yIn1dLFsicGF0aCIse2Q6Ik0xMiAxMy45djEuNiJ9XSxbInBhdGgiLHtkOiJNMTMuNSA1LjRjLTEtLjItMi0uMi0zIDAifV0sWyJwYXRoIix7ZDoiTTE3IDE2LjRjLjctLjcgMS4yLTEuNiAxLjUtMi41In1dLFsicGF0aCIse2Q6Ik01LjUgMTMuOWMuMy45LjggMS44IDEuNSAyLjUifV1dLGNRZT1bWyJwYXRoIix7ZDoiTTE2IDdoLjAxIn1dLFsicGF0aCIse2Q6Ik0zLjQgMThIMTJhOCA4IDAgMCAwIDgtOFY3YTQgNCAwIDAgMC03LjI4LTIuM0wyIDIwIn1dLFsicGF0aCIse2Q6Im0yMCA3IDIgLjUtMiAuNSJ9XSxbInBhdGgiLHtkOiJNMTAgMTh2MyJ9XSxbInBhdGgiLHtkOiJNMTQgMTcuNzVWMjEifV0sWyJwYXRoIix7ZDoiTTcgMThhNiA2IDAgMCAwIDMuODQtMTAuNjEifV1dLGRRZT1bWyJwYXRoIix7ZDoiTTEyIDE4djQifV0sWyJwYXRoIix7ZDoibTE3IDE4IDEuOTU2LTExLjQ2OCJ9XSxbInBhdGgiLHtkOiJtMyA4IDcuODItNS42MTVhMiAyIDAgMCAxIDIuMzYgMEwyMSA4In1dLFsicGF0aCIse2Q6Ik00IDE4aDE2In1dLFsicGF0aCIse2Q6Ik03IDE4IDUuMDQ0IDYuNTMyIn1dLFsiY2lyY2xlIix7Y3g6IjEyIixjeToiMTAiLHI6IjIifV1dLGhRZT1bWyJwYXRoIix7ZDoiTTExLjc2NyAxOS4wODljNC45MjQuODY4IDYuMTQtNi4wMjUgMS4yMTYtNi44OTRtLTEuMjE2IDYuODk0TDUuODYgMTguMDQ3bTUuOTA4IDEuMDQyLS4zNDcgMS45N20xLjU2My04Ljg2NGM0LjkyNC44NjkgNi4xNC02LjAyNSAxLjIxNS02Ljg5M20tMS4yMTUgNi44OTMtMy45NC0uNjk0bTUuMTU1LTYuMkw4LjI5IDQuMjZtNS45MDggMS4wNDIuMzQ4LTEuOTdNNy40OCAyMC4zNjRsMy4xMjYtMTcuNzI3In1dXSxwUWU9W1siY2lyY2xlIix7Y3g6IjkiLGN5OiI5IixyOiI3In1dLFsiY2lyY2xlIix7Y3g6IjE1IixjeToiMTUiLHI6IjcifV1dLHVRZT1bWyJwYXRoIix7ZDoiTTMgM2gxOCJ9XSxbInBhdGgiLHtkOiJNMjAgN0g4In1dLFsicGF0aCIse2Q6Ik0yMCAxMUg4In1dLFsicGF0aCIse2Q6Ik0xMCAxOWgxMCJ9XSxbInBhdGgiLHtkOiJNOCAxNWgxMiJ9XSxbInBhdGgiLHtkOiJNNCAzdjE0In1dLFsiY2lyY2xlIix7Y3g6IjQiLGN5OiIxOSIscjoiMiJ9XV0sZlFlPVtbInBhdGgiLHtkOiJtNyA3IDEwIDEwLTUgNVYybDUgNUw3IDE3In1dLFsibGluZSIse3gxOiIxOCIseDI6IjIxIix5MToiMTIiLHkyOiIxMiJ9XSxbImxpbmUiLHt4MToiMyIseDI6IjYiLHkxOiIxMiIseTI6IjEyIn1dXSxtUWU9W1sicGF0aCIse2Q6Ik0xMCAyMlY3YTEgMSAwIDAgMC0xLTFINGEyIDIgMCAwIDAtMiAydjEyYTIgMiAwIDAgMCAyIDJoMTJhMiAyIDAgMCAwIDItMnYtNWExIDEgMCAwIDAtMS0xSDIifV0sWyJyZWN0Iix7eDoiMTQiLHk6IjIiLHdpZHRoOiI4IixoZWlnaHQ6IjgiLHJ4OiIxIn1dXSxnUWU9W1sicGF0aCIse2Q6Im0xNyAxNy01IDVWMTJsLTUgNSJ9XSxbInBhdGgiLHtkOiJtMiAyIDIwIDIwIn1dLFsicGF0aCIse2Q6Ik0xNC41IDkuNSAxNyA3bC01LTV2NC41In1dXSxiUWU9W1sicGF0aCIse2Q6Im03IDcgMTAgMTAtNSA1VjJsNSA1TDcgMTcifV0sWyJwYXRoIix7ZDoiTTIwLjgzIDE0LjgzYTQgNCAwIDAgMCAwLTUuNjYifV0sWyJwYXRoIix7ZDoiTTE4IDEyaC4wMSJ9XV0sdlFlPVtbInBhdGgiLHtkOiJNNiAxMmg5YTQgNCAwIDAgMSAwIDhIN2ExIDEgMCAwIDEtMS0xVjVhMSAxIDAgMCAxIDEtMWg3YTQgNCAwIDAgMSAwIDgifV1dLHlRZT1bWyJwYXRoIix7ZDoibTcgNyAxMCAxMC01IDVWMmw1IDVMNyAxNyJ9XV0seFFlPVtbImNpcmNsZSIse2N4OiIxMSIsY3k6IjEzIixyOiI5In1dLFsicGF0aCIse2Q6Ik0xNC4zNSA0LjY1IDE2LjMgMi43YTIuNDEgMi40MSAwIDAgMSAzLjQgMGwxLjYgMS42YTIuNCAyLjQgMCAwIDEgMCAzLjRsLTEuOTUgMS45NSJ9XSxbInBhdGgiLHtkOiJtMjIgMi0xLjUgMS41In1dXSx3UWU9W1sicGF0aCIse2Q6Ik0yMSAxNlY4YTIgMiAwIDAgMC0xLTEuNzNsLTctNGEyIDIgMCAwIDAtMiAwbC03IDRBMiAyIDAgMCAwIDMgOHY4YTIgMiAwIDAgMCAxIDEuNzNsNyA0YTIgMiAwIDAgMCAyIDBsNy00QTIgMiAwIDAgMCAyMSAxNnoifV0sWyJjaXJjbGUiLHtjeDoiMTIiLGN5OiIxMiIscjoiNCJ9XV0sTVFlPVtbInBhdGgiLHtkOiJNMTcgMTBjLjctLjcgMS42OSAwIDIuNSAwYTIuNSAyLjUgMCAxIDAgMC01IC41LjUgMCAwIDEtLjUtLjUgMi41IDIuNSAwIDEgMC01IDBjMCAuODEuNyAxLjggMCAyLjVsLTcgN2MtLjcuNy0xLjY5IDAtMi41IDBhMi41IDIuNSAwIDAgMCAwIDVjLjI4IDAgLjUuMjIuNS41YTIuNSAyLjUgMCAxIDAgNSAwYzAtLjgxLS43LTEuOCAwLTIuNVoifV1dLHpRZT1bWyJwYXRoIix7ZDoiTTQgMTkuNXYtMTVBMi41IDIuNSAwIDAgMSA2LjUgMkgxOWExIDEgMCAwIDEgMSAxdjE4YTEgMSAwIDAgMS0xIDFINi41YTEgMSAwIDAgMSAwLTVIMjAifV0sWyJwYXRoIix7ZDoibTggMTMgNC03IDQgNyJ9XSxbInBhdGgiLHtkOiJNOS4xIDExaDUuNyJ9XV0sa1FlPVtbInBhdGgiLHtkOiJNMTIgMTNoLjAxIn1dLFsicGF0aCIse2Q6Ik0xMiA2djMifV0sWyJwYXRoIix7ZDoiTTQgMTkuNXYtMTVBMi41IDIuNSAwIDAgMSA2LjUgMkgxOWExIDEgMCAwIDEgMSAxdjE4YTEgMSAwIDAgMS0xIDFINi41YTEgMSAwIDAgMSAwLTVIMjAifV1dLFNRZT1bWyJwYXRoIix7ZDoiTTQgMTkuNXYtMTVBMi41IDIuNSAwIDAgMSA2LjUgMkgxOWExIDEgMCAwIDEgMSAxdjE4YTEgMSAwIDAgMS0xIDFINi41YTEgMSAwIDAgMSAwLTVIMjAifV0sWyJwYXRoIix7ZDoibTkgOS41IDIgMiA0LTQifV1dLENRZT1bWyJwYXRoIix7ZDoiTTEyIDZ2NyJ9XSxbInBhdGgiLHtkOiJNMTYgOHYzIn1dLFsicGF0aCIse2Q6Ik00IDE5LjV2LTE1QTIuNSAyLjUgMCAwIDEgNi41IDJIMTlhMSAxIDAgMCAxIDEgMXYxOGExIDEgMCAwIDEtMSAxSDYuNWExIDEgMCAwIDEgMC01SDIwIn1dLFsicGF0aCIse2Q6Ik04IDh2MyJ9XV0sX1FlPVtbInBhdGgiLHtkOiJNNSA3YTIgMiAwIDAgMC0yIDJ2MTEifV0sWyJwYXRoIix7ZDoiTTUuODAzIDE4SDVhMiAyIDAgMCAwIDAgNGg5LjVhLjUuNSAwIDAgMCAuNS0uNVYyMSJ9XSxbInBhdGgiLHtkOiJNOSAxNVY0YTIgMiAwIDAgMSAyLTJoOS41YS41LjUgMCAwIDEgLjUuNXYxNGEuNS41IDAgMCAxLS41LjVIMTFhMiAyIDAgMCAxIDAtNGgxMCJ9XV0sTGc9W1sicGF0aCIse2Q6Ik0xMiAxN2gxLjUifV0sWyJwYXRoIix7ZDoiTTEyIDIyaDEuNSJ9XSxbInBhdGgiLHtkOiJNMTIgMmgxLjUifV0sWyJwYXRoIix7ZDoiTTE3LjUgMjJIMTlhMSAxIDAgMCAwIDEtMSJ9XSxbInBhdGgiLHtkOiJNMTcuNSAySDE5YTEgMSAwIDAgMSAxIDF2MS41In1dLFsicGF0aCIse2Q6Ik0yMCAxNHYzaC0yLjUifV0sWyJwYXRoIix7ZDoiTTIwIDguNVYxMCJ9XSxbInBhdGgiLHtkOiJNNCAxMFY4LjUifV0sWyJwYXRoIix7ZDoiTTQgMTkuNVYxNCJ9XSxbInBhdGgiLHtkOiJNNCA0LjVBMi41IDIuNSAwIDAgMSA2LjUgMkg4In1dLFsicGF0aCIse2Q6Ik04IDIySDYuNWExIDEgMCAwIDEgMC01SDgifV1dLFRRZT1bWyJwYXRoIix7ZDoiTTEyIDEzVjcifV0sWyJwYXRoIix7ZDoiTTQgMTkuNXYtMTVBMi41IDIuNSAwIDAgMSA2LjUgMkgxOWExIDEgMCAwIDEgMSAxdjE4YTEgMSAwIDAgMS0xIDFINi41YTEgMSAwIDAgMSAwLTVIMjAifV0sWyJwYXRoIix7ZDoibTkgMTAgMyAzIDMtMyJ9XV0sTFFlPVtbInBhdGgiLHtkOiJNNCAxOS41di0xNUEyLjUgMi41IDAgMCAxIDYuNSAySDE5YTEgMSAwIDAgMSAxIDF2MThhMSAxIDAgMCAxLTEgMUg2LjVhMSAxIDAgMCAxIDAtNUgyMCJ9XSxbInBhdGgiLHtkOiJNOCAxMnYtMmE0IDQgMCAwIDEgOCAwdjIifV0sWyJjaXJjbGUiLHtjeDoiMTUiLGN5OiIxMiIscjoiMSJ9XSxbImNpcmNsZSIse2N4OiI5IixjeToiMTIiLHI6IjEifV1dLCRRZT1bWyJwYXRoIix7ZDoiTTQgMTkuNXYtMTVBMi41IDIuNSAwIDAgMSA2LjUgMkgxOWExIDEgMCAwIDEgMSAxdjE4YTEgMSAwIDAgMS0xIDFINi41YTEgMSAwIDAgMSAwLTVIMjAifV0sWyJwYXRoIix7ZDoiTTguNjIgOS44QTIuMjUgMi4yNSAwIDEgMSAxMiA2LjgzNmEyLjI1IDIuMjUgMCAxIDEgMy4zOCAyLjk2NmwtMi42MjYgMi44NTZhLjk5OC45OTggMCAwIDEtMS41MDcgMHoifV1dLEFRZT1bWyJwYXRoIix7ZDoibTIwIDEzLjctMi4xLTIuMWEyIDIgMCAwIDAtMi44IDBMOS43IDE3In1dLFsicGF0aCIse2Q6Ik00IDE5LjV2LTE1QTIuNSAyLjUgMCAwIDEgNi41IDJIMTlhMSAxIDAgMCAxIDEgMXYxOGExIDEgMCAwIDEtMSAxSDYuNWExIDEgMCAwIDEgMC01SDIwIn1dLFsiY2lyY2xlIix7Y3g6IjEwIixjeToiOCIscjoiMiJ9XV0sRFFlPVtbInBhdGgiLHtkOiJNMTMgMkg2LjVBMi41IDIuNSAwIDAgMCA0IDQuNXYxNSJ9XSxbInBhdGgiLHtkOiJNMTcgMnY2In1dLFsicGF0aCIse2Q6Ik0xNyA0aDIifV0sWyJwYXRoIix7ZDoiTTIwIDE1LjJWMjFhMSAxIDAgMCAxLTEgMUg2LjVhMSAxIDAgMCAxIDAtNUgyMCJ9XSxbImNpcmNsZSIse2N4OiIxNyIsY3k6IjEwIixyOiIyIn1dXSxFUWU9W1sicGF0aCIse2Q6Ik0xOCA2VjRhMiAyIDAgMSAwLTQgMHYyIn1dLFsicGF0aCIse2Q6Ik0yMCAxNXY2YTEgMSAwIDAgMS0xIDFINi41YTEgMSAwIDAgMSAwLTVIMjAifV0sWyJwYXRoIix7ZDoiTTQgMTkuNXYtMTVBMi41IDIuNSAwIDAgMSA2LjUgMkgxMCJ9XSxbInJlY3QiLHt4OiIxMiIseToiNiIsd2lkdGg6IjgiLGhlaWdodDoiNSIscng6IjEifV1dLFBRZT1bWyJwYXRoIix7ZDoiTTEwIDJ2OGwzLTMgMyAzVjIifV0sWyJwYXRoIix7ZDoiTTQgMTkuNXYtMTVBMi41IDIuNSAwIDAgMSA2LjUgMkgxOWExIDEgMCAwIDEgMSAxdjE4YTEgMSAwIDAgMS0xIDFINi41YTEgMSAwIDAgMSAwLTVIMjAifV1dLElRZT1bWyJwYXRoIix7ZDoiTTQgMTkuNXYtMTVBMi41IDIuNSAwIDAgMSA2LjUgMkgxOWExIDEgMCAwIDEgMSAxdjE4YTEgMSAwIDAgMS0xIDFINi41YTEgMSAwIDAgMSAwLTVIMjAifV0sWyJwYXRoIix7ZDoiTTkgMTBoNiJ9XV0sTlFlPVtbInBhdGgiLHtkOiJNMTIgMjFWNyJ9XSxbInBhdGgiLHtkOiJtMTYgMTIgMiAyIDQtNCJ9XSxbInBhdGgiLHtkOiJNMjIgNlY0YTEgMSAwIDAgMC0xLTFoLTVhNCA0IDAgMCAwLTQgNCA0IDQgMCAwIDAtNC00SDNhMSAxIDAgMCAwLTEgMXYxM2ExIDEgMCAwIDAgMSAxaDZhMyAzIDAgMCAxIDMgMyAzIDMgMCAwIDEgMy0zaDZhMSAxIDAgMCAwIDEtMXYtMS4zIn1dXSxGUWU9W1sicGF0aCIse2Q6Ik0xMiA3djE0In1dLFsicGF0aCIse2Q6Ik0xNiAxMmgyIn1dLFsicGF0aCIse2Q6Ik0xNiA4aDIifV0sWyJwYXRoIix7ZDoiTTMgMThhMSAxIDAgMCAxLTEtMVY0YTEgMSAwIDAgMSAxLTFoNWE0IDQgMCAwIDEgNCA0IDQgNCAwIDAgMSA0LTRoNWExIDEgMCAwIDEgMSAxdjEzYTEgMSAwIDAgMS0xIDFoLTZhMyAzIDAgMCAwLTMgMyAzIDMgMCAwIDAtMy0zeiJ9XSxbInBhdGgiLHtkOiJNNiAxMmgyIn1dLFsicGF0aCIse2Q6Ik02IDhoMiJ9XV0sT1FlPVtbInBhdGgiLHtkOiJNMTIgN3YxNCJ9XSxbInBhdGgiLHtkOiJNMyAxOGExIDEgMCAwIDEtMS0xVjRhMSAxIDAgMCAxIDEtMWg1YTQgNCAwIDAgMSA0IDQgNCA0IDAgMCAxIDQtNGg1YTEgMSAwIDAgMSAxIDF2MTNhMSAxIDAgMCAxLTEgMWgtNmEzIDMgMCAwIDAtMyAzIDMgMyAwIDAgMC0zLTN6In1dXSxSUWU9W1sicGF0aCIse2Q6Ik0xMiA3djYifV0sWyJwYXRoIix7ZDoiTTQgMTkuNXYtMTVBMi41IDIuNSAwIDAgMSA2LjUgMkgxOWExIDEgMCAwIDEgMSAxdjE4YTEgMSAwIDAgMS0xIDFINi41YTEgMSAwIDAgMSAwLTVIMjAifV0sWyJwYXRoIix7ZDoiTTkgMTBoNiJ9XV0sQlFlPVtbInBhdGgiLHtkOiJNMTEgMjJINS41YTEgMSAwIDAgMSAwLTVoNC41MDEifV0sWyJwYXRoIix7ZDoibTIxIDIyLTEuODc5LTEuODc4In1dLFsicGF0aCIse2Q6Ik0zIDE5LjV2LTE1QTIuNSAyLjUgMCAwIDEgNS41IDJIMThhMSAxIDAgMCAxIDEgMXY4In1dLFsiY2lyY2xlIix7Y3g6IjE3IixjeToiMTgiLHI6IjMifV1dLEhRZT1bWyJwYXRoIix7ZDoiTTQgMTkuNXYtMTVBMi41IDIuNSAwIDAgMSA2LjUgMkgxOWExIDEgMCAwIDEgMSAxdjE4YTEgMSAwIDAgMS0xIDFINi41YTEgMSAwIDAgMSAwLTVIMjAifV0sWyJwYXRoIix7ZDoiTTggMTFoOCJ9XSxbInBhdGgiLHtkOiJNOCA3aDYifV1dLHFRZT1bWyJwYXRoIix7ZDoiTTEwIDEzaDQifV0sWyJwYXRoIix7ZDoiTTEyIDZ2NyJ9XSxbInBhdGgiLHtkOiJNMTYgOFY2SDh2MiJ9XSxbInBhdGgiLHtkOiJNNCAxOS41di0xNUEyLjUgMi41IDAgMCAxIDYuNSAySDE5YTEgMSAwIDAgMSAxIDF2MThhMSAxIDAgMCAxLTEgMUg2LjVhMSAxIDAgMCAxIDAtNUgyMCJ9XV0sVlFlPVtbInBhdGgiLHtkOiJNMTIgMTNWNyJ9XSxbInBhdGgiLHtkOiJNMTggMmgxYTEgMSAwIDAgMSAxIDF2MThhMSAxIDAgMCAxLTEgMUg2LjVhMSAxIDAgMCAxIDAtNUgyMCJ9XSxbInBhdGgiLHtkOiJNNCAxOS41di0xNUEyLjUgMi41IDAgMCAxIDYuNSAyIn1dLFsicGF0aCIse2Q6Im05IDEwIDMtMyAzIDMifV0sWyJwYXRoIix7ZDoibTkgNSAzLTMgMyAzIn1dXSxqUWU9W1sicGF0aCIse2Q6Ik0xMiAxM1Y3In1dLFsicGF0aCIse2Q6Ik00IDE5LjV2LTE1QTIuNSAyLjUgMCAwIDEgNi41IDJIMTlhMSAxIDAgMCAxIDEgMXYxOGExIDEgMCAwIDEtMSAxSDYuNWExIDEgMCAwIDEgMC01SDIwIn1dLFsicGF0aCIse2Q6Im05IDEwIDMtMyAzIDMifV1dLFVRZT1bWyJwYXRoIix7ZDoiTTE1IDEzYTMgMyAwIDEgMC02IDAifV0sWyJwYXRoIix7ZDoiTTQgMTkuNXYtMTVBMi41IDIuNSAwIDAgMSA2LjUgMkgxOWExIDEgMCAwIDEgMSAxdjE4YTEgMSAwIDAgMS0xIDFINi41YTEgMSAwIDAgMSAwLTVIMjAifV0sWyJjaXJjbGUiLHtjeDoiMTIiLGN5OiI4IixyOiIyIn1dXSxXUWU9W1sicGF0aCIse2Q6Im0xNC41IDctNSA1In1dLFsicGF0aCIse2Q6Ik00IDE5LjV2LTE1QTIuNSAyLjUgMCAwIDEgNi41IDJIMTlhMSAxIDAgMCAxIDEgMXYxOGExIDEgMCAwIDEtMSAxSDYuNWExIDEgMCAwIDEgMC01SDIwIn1dLFsicGF0aCIse2Q6Im05LjUgNyA1IDUifV1dLEdRZT1bWyJwYXRoIix7ZDoiTTQgMTkuNXYtMTVBMi41IDIuNSAwIDAgMSA2LjUgMkgxOWExIDEgMCAwIDEgMSAxdjE4YTEgMSAwIDAgMS0xIDFINi41YTEgMSAwIDAgMSAwLTVIMjAifV1dLFlRZT1bWyJwYXRoIix7ZDoiTTE3IDNhMiAyIDAgMCAxIDIgMnYxNWExIDEgMCAwIDEtMS40OTYuODY4bC00LjUxMi0yLjU3OGEyIDIgMCAwIDAtMS45ODQgMGwtNC41MTIgMi41NzhBMSAxIDAgMCAxIDUgMjBWNWEyIDIgMCAwIDEgMi0yeiJ9XSxbInBhdGgiLHtkOiJtOSAxMCAyIDIgNC00In1dXSxaUWU9W1sicGF0aCIse2Q6Ik0xNSAxMEg5In1dLFsicGF0aCIse2Q6Ik0xNyAzYTIgMiAwIDAgMSAyIDJ2MTVhMSAxIDAgMCAxLTEuNDk2Ljg2OGwtNC41MTItMi41NzhhMiAyIDAgMCAwLTEuOTg0IDBsLTQuNTEyIDIuNTc4QTEgMSAwIDAgMSA1IDIwVjVhMiAyIDAgMCAxIDItMnoifV1dLFhRZT1bWyJwYXRoIix7ZDoiTTEyIDd2NiJ9XSxbInBhdGgiLHtkOiJNMTUgMTBIOSJ9XSxbInBhdGgiLHtkOiJNMTcgM2EyIDIgMCAwIDEgMiAydjE1YTEgMSAwIDAgMS0xLjQ5Ni44NjhsLTQuNTEyLTIuNTc4YTIgMiAwIDAgMC0xLjk4NCAwbC00LjUxMiAyLjU3OEExIDEgMCAwIDEgNSAyMFY1YTIgMiAwIDAgMSAyLTJ6In1dXSxLUWU9W1sicGF0aCIse2Q6Im0xNC41IDcuNS01IDUifV0sWyJwYXRoIix7ZDoiTTE3IDNhMiAyIDAgMCAxIDIgMnYxNWExIDEgMCAwIDEtMS40OTYuODY4bC00LjUxMi0yLjU3OGEyIDIgMCAwIDAtMS45ODQgMGwtNC41MTIgMi41NzhBMSAxIDAgMCAxIDUgMjBWNWEyIDIgMCAwIDEgMi0yeiJ9XSxbInBhdGgiLHtkOiJtOS41IDcuNSA1IDUifV1dLFFRZT1bWyJwYXRoIix7ZDoiTTE3IDNhMiAyIDAgMCAxIDIgMnYxNWExIDEgMCAwIDEtMS40OTYuODY4bC00LjUxMi0yLjU3OGEyIDIgMCAwIDAtMS45ODQgMGwtNC41MTIgMi41NzhBMSAxIDAgMCAxIDUgMjBWNWEyIDIgMCAwIDEgMi0yeiJ9XV0sSlFlPVtbInBhdGgiLHtkOiJNNCA5VjVhMiAyIDAgMCAxIDItMmgxMmEyIDIgMCAwIDEgMiAydjQifV0sWyJwYXRoIix7ZDoiTTggOHYxIn1dLFsicGF0aCIse2Q6Ik0xMiA4djEifV0sWyJwYXRoIix7ZDoiTTE2IDh2MSJ9XSxbInJlY3QiLHt3aWR0aDoiMjAiLGhlaWdodDoiMTIiLHg6IjIiLHk6IjkiLHJ4OiIyIn1dLFsiY2lyY2xlIix7Y3g6IjgiLGN5OiIxNSIscjoiMiJ9XSxbImNpcmNsZSIse2N4OiIxNiIsY3k6IjE1IixyOiIyIn1dXSxlSmU9W1sicGF0aCIse2Q6Ik0xMiA2VjJIOCJ9XSxbInBhdGgiLHtkOiJNMTUgMTF2MiJ9XSxbInBhdGgiLHtkOiJNMiAxMmgyIn1dLFsicGF0aCIse2Q6Ik0yMCAxMmgyIn1dLFsicGF0aCIse2Q6Ik0yMCAxNmEyIDIgMCAwIDEtMiAySDguODI4YTIgMiAwIDAgMC0xLjQxNC41ODZsLTIuMjAyIDIuMjAyQS43MS43MSAwIDAgMSA0IDIwLjI4NlY4YTIgMiAwIDAgMSAyLTJoMTJhMiAyIDAgMCAxIDIgMnoifV0sWyJwYXRoIix7ZDoiTTkgMTF2MiJ9XV0sdEplPVtbInBhdGgiLHtkOiJNMTIgOFY0SDgifV0sWyJyZWN0Iix7d2lkdGg6IjE2IixoZWlnaHQ6IjEyIix4OiI0Iix5OiI4IixyeDoiMiJ9XSxbInBhdGgiLHtkOiJNMiAxNGgyIn1dLFsicGF0aCIse2Q6Ik0yMCAxNGgyIn1dLFsicGF0aCIse2Q6Ik0xNSAxM3YyIn1dLFsicGF0aCIse2Q6Ik05IDEzdjIifV1dLGFKZT1bWyJwYXRoIix7ZDoiTTEzLjY3IDhIMThhMiAyIDAgMCAxIDIgMnY0LjMzIn1dLFsicGF0aCIse2Q6Ik0yIDE0aDIifV0sWyJwYXRoIix7ZDoiTTIwIDE0aDIifV0sWyJwYXRoIix7ZDoiTTIyIDIyIDIgMiJ9XSxbInBhdGgiLHtkOiJNOCA4SDZhMiAyIDAgMCAwLTIgMnY4YTIgMiAwIDAgMCAyIDJoMTJhMiAyIDAgMCAwIDEuNDE0LS41ODYifV0sWyJwYXRoIix7ZDoiTTkgMTN2MiJ9XSxbInBhdGgiLHtkOiJNOS42NyA0SDEydjIuMzMifV1dLGlKZT1bWyJwYXRoIix7ZDoiTTEwIDNhMSAxIDAgMCAxIDEtMWgyYTEgMSAwIDAgMSAxIDF2MmE2IDYgMCAwIDAgMS4yIDMuNmwuNi44QTYgNiAwIDAgMSAxNyAxM3Y4YTEgMSAwIDAgMS0xIDFIOGExIDEgMCAwIDEtMS0xdi04YTYgNiAwIDAgMSAxLjItMy42bC42LS44QTYgNiAwIDAgMCAxMCA1eiJ9XSxbInBhdGgiLHtkOiJNMTcgMTNoLTRhMSAxIDAgMCAwLTEgMXYzYTEgMSAwIDAgMCAxIDFoNCJ9XV0sckplPVtbInBhdGgiLHtkOiJNMTcgM2g0djQifV0sWyJwYXRoIix7ZDoiTTE4LjU3NSAxMS4wODJhMTMgMTMgMCAwIDEgMS4wNDggOS4wMjcgMS4xNyAxLjE3IDAgMCAxLTEuOTE0LjU5N0wxNCAxNyJ9XSxbInBhdGgiLHtkOiJNNyAxMCAzLjI5IDYuMjlhMS4xNyAxLjE3IDAgMCAxIC42LTEuOTEgMTMgMTMgMCAwIDEgOS4wMyAxLjA1In1dLFsicGF0aCIse2Q6Ik03IDE0YTEuNyAxLjcgMCAwIDAtMS4yMDcuNWwtMi42NDYgMi42NDZBLjUuNSAwIDAgMCAzLjUgMThINWExIDEgMCAwIDEgMSAxdjEuNWEuNS41IDAgMCAwIC44NTQuMzU0TDkuNSAxOC4yMDdBMS43IDEuNyAwIDAgMCAxMCAxN3YtMmExIDEgMCAwIDAtMS0xeiJ9XSxbInBhdGgiLHtkOiJNOS43MDcgMTQuMjkzIDIxIDMifV1dLHNKZT1bWyJwYXRoIix7ZDoiTTIxIDhhMiAyIDAgMCAwLTEtMS43M2wtNy00YTIgMiAwIDAgMC0yIDBsLTcgNEEyIDIgMCAwIDAgMyA4djhhMiAyIDAgMCAwIDEgMS43M2w3IDRhMiAyIDAgMCAwIDIgMGw3LTRBMiAyIDAgMCAwIDIxIDE2WiJ9XSxbInBhdGgiLHtkOiJtMy4zIDcgOC43IDUgOC43LTUifV0sWyJwYXRoIix7ZDoiTTEyIDIyVjEyIn1dXSxuSmU9W1sicGF0aCIse2Q6Ik0yLjk3IDEyLjkyQTIgMiAwIDAgMCAyIDE0LjYzdjMuMjRhMiAyIDAgMCAwIC45NyAxLjcxbDMgMS44YTIgMiAwIDAgMCAyLjA2IDBMMTIgMTl2LTUuNWwtNS0zLTQuMDMgMi40MloifV0sWyJwYXRoIix7ZDoibTcgMTYuNS00Ljc0LTIuODUifV0sWyJwYXRoIix7ZDoibTcgMTYuNSA1LTMifV0sWyJwYXRoIix7ZDoiTTcgMTYuNXY1LjE3In1dLFsicGF0aCIse2Q6Ik0xMiAxMy41VjE5bDMuOTcgMi4zOGEyIDIgMCAwIDAgMi4wNiAwbDMtMS44YTIgMiAwIDAgMCAuOTctMS43MXYtMy4yNGEyIDIgMCAwIDAtLjk3LTEuNzFMMTcgMTAuNWwtNSAzWiJ9XSxbInBhdGgiLHtkOiJtMTcgMTYuNS01LTMifV0sWyJwYXRoIix7ZDoibTE3IDE2LjUgNC43NC0yLjg1In1dLFsicGF0aCIse2Q6Ik0xNyAxNi41djUuMTcifV0sWyJwYXRoIix7ZDoiTTcuOTcgNC40MkEyIDIgMCAwIDAgNyA2LjEzdjQuMzdsNSAzIDUtM1Y2LjEzYTIgMiAwIDAgMC0uOTctMS43MWwtMy0xLjhhMiAyIDAgMCAwLTIuMDYgMGwtMyAxLjhaIn1dLFsicGF0aCIse2Q6Ik0xMiA4IDcuMjYgNS4xNSJ9XSxbInBhdGgiLHtkOiJtMTIgOCA0Ljc0LTIuODUifV0sWyJwYXRoIix7ZDoiTTEyIDEzLjVWOCJ9XV0sJGc9W1sicGF0aCIse2Q6Ik04IDNIN2EyIDIgMCAwIDAtMiAydjVhMiAyIDAgMCAxLTIgMiAyIDIgMCAwIDEgMiAydjVjMCAxLjEuOSAyIDIgMmgxIn1dLFsicGF0aCIse2Q6Ik0xNiAyMWgxYTIgMiAwIDAgMCAyLTJ2LTVjMC0xLjEuOS0yIDItMmEyIDIgMCAwIDEtMi0yVjVhMiAyIDAgMCAwLTItMmgtMSJ9XV0sb0plPVtbInBhdGgiLHtkOiJNMTYgM2gzYTEgMSAwIDAgMSAxIDF2MTZhMSAxIDAgMCAxLTEgMWgtMyJ9XSxbInBhdGgiLHtkOiJNOCAyMUg1YTEgMSAwIDAgMS0xLTFWNGExIDEgMCAwIDEgMS0xaDMifV1dLGxKZT1bWyJwYXRoIix7ZDoiTTEyIDVhMyAzIDAgMSAwLTUuOTk3LjEyNSA0IDQgMCAwIDAtMi41MjYgNS43NyA0IDQgMCAwIDAgLjU1NiA2LjU4OEE0IDQgMCAxIDAgMTIgMThaIn1dLFsicGF0aCIse2Q6Ik05IDEzYTQuNSA0LjUgMCAwIDAgMy00In1dLFsicGF0aCIse2Q6Ik02LjAwMyA1LjEyNUEzIDMgMCAwIDAgNi40MDEgNi41In1dLFsicGF0aCIse2Q6Ik0zLjQ3NyAxMC44OTZhNCA0IDAgMCAxIC41ODUtLjM5NiJ9XSxbInBhdGgiLHtkOiJNNiAxOGE0IDQgMCAwIDEtMS45NjctLjUxNiJ9XSxbInBhdGgiLHtkOiJNMTIgMTNoNCJ9XSxbInBhdGgiLHtkOiJNMTIgMThoNmEyIDIgMCAwIDEgMiAydjEifV0sWyJwYXRoIix7ZDoiTTEyIDhoOCJ9XSxbInBhdGgiLHtkOiJNMTYgOFY1YTIgMiAwIDAgMSAyLTIifV0sWyJjaXJjbGUiLHtjeDoiMTYiLGN5OiIxMyIscjoiLjUifV0sWyJjaXJjbGUiLHtjeDoiMTgiLGN5OiIzIixyOiIuNSJ9XSxbImNpcmNsZSIse2N4OiIyMCIsY3k6IjIxIixyOiIuNSJ9XSxbImNpcmNsZSIse2N4OiIyMCIsY3k6IjgiLHI6Ii41In1dXSxjSmU9W1sicGF0aCIse2Q6Im0xMC44NTIgMTQuNzcyLS4zODMuOTIzIn1dLFsicGF0aCIse2Q6Im0xMC44NTIgOS4yMjgtLjM4My0uOTIzIn1dLFsicGF0aCIse2Q6Im0xMy4xNDggMTQuNzcyLjM4Mi45MjQifV0sWyJwYXRoIix7ZDoibTEzLjUzMSA4LjMwNS0uMzgzLjkyMyJ9XSxbInBhdGgiLHtkOiJtMTQuNzcyIDEwLjg1Mi45MjMtLjM4MyJ9XSxbInBhdGgiLHtkOiJtMTQuNzcyIDEzLjE0OC45MjMuMzgzIn1dLFsicGF0aCIse2Q6Ik0xNy41OTggNi41QTMgMyAwIDEgMCAxMiA1YTMgMyAwIDAgMC01LjYzLTEuNDQ2IDMgMyAwIDAgMC0uMzY4IDEuNTcxIDQgNCAwIDAgMC0yLjUyNSA1Ljc3MSJ9XSxbInBhdGgiLHtkOiJNMTcuOTk4IDUuMTI1YTQgNCAwIDAgMSAyLjUyNSA1Ljc3MSJ9XSxbInBhdGgiLHtkOiJNMTkuNTA1IDEwLjI5NGE0IDQgMCAwIDEtMS41IDcuNzA2In1dLFsicGF0aCIse2Q6Ik00LjAzMiAxNy40ODNBNCA0IDAgMCAwIDExLjQ2NCAyMGMuMTgtLjMxMS44OTItLjMxMSAxLjA3MiAwYTQgNCAwIDAgMCA3LjQzMi0yLjUxNiJ9XSxbInBhdGgiLHtkOiJNNC41IDEwLjI5MUE0IDQgMCAwIDAgNiAxOCJ9XSxbInBhdGgiLHtkOiJNNi4wMDIgNS4xMjVhMyAzIDAgMCAwIC40IDEuMzc1In1dLFsicGF0aCIse2Q6Im05LjIyOCAxMC44NTItLjkyMy0uMzgzIn1dLFsicGF0aCIse2Q6Im05LjIyOCAxMy4xNDgtLjkyMy4zODMifV0sWyJjaXJjbGUiLHtjeDoiMTIiLGN5OiIxMiIscjoiMyJ9XV0sZEplPVtbInBhdGgiLHtkOiJNMTIgMThWNSJ9XSxbInBhdGgiLHtkOiJNMTUgMTNhNC4xNyA0LjE3IDAgMCAxLTMtNCA0LjE3IDQuMTcgMCAwIDEtMyA0In1dLFsicGF0aCIse2Q6Ik0xNy41OTggNi41QTMgMyAwIDEgMCAxMiA1YTMgMyAwIDEgMC01LjU5OCAxLjUifV0sWyJwYXRoIix7ZDoiTTE3Ljk5NyA1LjEyNWE0IDQgMCAwIDEgMi41MjYgNS43NyJ9XSxbInBhdGgiLHtkOiJNMTggMThhNCA0IDAgMCAwIDItNy40NjQifV0sWyJwYXRoIix7ZDoiTTE5Ljk2NyAxNy40ODNBNCA0IDAgMSAxIDEyIDE4YTQgNCAwIDEgMS03Ljk2Ny0uNTE3In1dLFsicGF0aCIse2Q6Ik02IDE4YTQgNCAwIDAgMS0yLTcuNDY0In1dLFsicGF0aCIse2Q6Ik02LjAwMyA1LjEyNWE0IDQgMCAwIDAtMi41MjYgNS43NyJ9XV0saEplPVtbInBhdGgiLHtkOiJNMTYgM3YyLjEwNyJ9XSxbInBhdGgiLHtkOiJNMTcgOWMxIDMgMi41IDMuNSAzLjUgNC41QTUgNSAwIDAgMSAyMiAxN2E1IDUgMCAwIDEtMTAgMGMwLS4zIDAtLjYuMS0uOWEyIDIgMCAxIDAgMy4zLTJDMTMgMTEuNSAxNiA5IDE3IDkifV0sWyJwYXRoIix7ZDoiTTIxIDguMjc0VjVhMiAyIDAgMCAwLTItMkg1YTIgMiAwIDAgMC0yIDJ2MTRhMiAyIDAgMCAwIDIgMmgzLjkzOCJ9XSxbInBhdGgiLHtkOiJNMyAxNWg1LjI1MyJ9XSxbInBhdGgiLHtkOiJNMyA5aDguMjI4In1dLFsicGF0aCIse2Q6Ik04IDE1djYifV0sWyJwYXRoIix7ZDoiTTggM3Y2In1dXSxwSmU9W1sicGF0aCIse2Q6Ik0xMiA5djEuMjU4In1dLFsicGF0aCIse2Q6Ik0xNiAzdjUuNDYifV0sWyJwYXRoIix7ZDoiTTIxIDkuMTE4VjVhMiAyIDAgMCAwLTItMkg1YTIgMiAwIDAgMC0yIDJ2MTRhMiAyIDAgMCAwIDIgMmg1Ljc1In1dLFsicGF0aCIse2Q6Ik0yMiAxNy41YzAgMi40OTktMS43NSAzLjc0OS0zLjgzIDQuNDc0YS41LjUgMCAwIDEtLjMzNS0uMDA1Yy0yLjA4NS0uNzItMy44MzUtMS45Ny0zLjgzNS00LjQ3VjE0YS41LjUgMCAwIDEgLjUtLjQ5OWMxIDAgMi4yNS0uNiAzLjEyLTEuMzZhLjYuNiAwIDAgMSAuNzYtLjAwMWMuODc1Ljc2NSAyLjEyIDEuMzYgMy4xMiAxLjM2YS41LjUgMCAwIDEgLjUuNXoifV0sWyJwYXRoIix7ZDoiTTMgMTVoNyJ9XSxbInBhdGgiLHtkOiJNMyA5aDEyLjE0MiJ9XSxbInBhdGgiLHtkOiJNOCAxNXY2In1dLFsicGF0aCIse2Q6Ik04IDN2NiJ9XV0sdUplPVtbInBhdGgiLHtkOiJNMTIgMTJoLjAxIn1dLFsicGF0aCIse2Q6Ik0xNiA2VjRhMiAyIDAgMCAwLTItMmgtNGEyIDIgMCAwIDAtMiAydjIifV0sWyJwYXRoIix7ZDoiTTIyIDEzYTE4LjE1IDE4LjE1IDAgMCAxLTIwIDAifV0sWyJyZWN0Iix7d2lkdGg6IjIwIixoZWlnaHQ6IjE0Iix4OiIyIix5OiI2IixyeDoiMiJ9XV0sZkplPVtbInJlY3QiLHt3aWR0aDoiMTgiLGhlaWdodDoiMTgiLHg6IjMiLHk6IjMiLHJ4OiIyIn1dLFsicGF0aCIse2Q6Ik0xMiA5djYifV0sWyJwYXRoIix7ZDoiTTE2IDE1djYifV0sWyJwYXRoIix7ZDoiTTE2IDN2NiJ9XSxbInBhdGgiLHtkOiJNMyAxNWgxOCJ9XSxbInBhdGgiLHtkOiJNMyA5aDE4In1dLFsicGF0aCIse2Q6Ik04IDE1djYifV0sWyJwYXRoIix7ZDoiTTggM3Y2In1dXSxtSmU9W1sicGF0aCIse2Q6Ik0xMCAyMHYyIn1dLFsicGF0aCIse2Q6Ik0xNCAyMHYyIn1dLFsicGF0aCIse2Q6Ik0xOCAyMHYyIn1dLFsicGF0aCIse2Q6Ik0yMSAyMEgzIn1dLFsicGF0aCIse2Q6Ik02IDIwdjIifV0sWyJwYXRoIix7ZDoiTTggMTZWNGEyIDIgMCAwIDEgMi0yaDRhMiAyIDAgMCAxIDIgMnYxMiJ9XSxbInJlY3QiLHt4OiI0Iix5OiI2Iix3aWR0aDoiMTYiLGhlaWdodDoiMTAiLHJ4OiIyIn1dXSxnSmU9W1sicGF0aCIse2Q6Ik0xMiAxMXY0In1dLFsicGF0aCIse2Q6Ik0xNCAxM2gtNCJ9XSxbInBhdGgiLHtkOiJNMTYgNlY0YTIgMiAwIDAgMC0yLTJoLTRhMiAyIDAgMCAwLTIgMnYyIn1dLFsicGF0aCIse2Q6Ik0xOCA2djE0In1dLFsicGF0aCIse2Q6Ik02IDZ2MTQifV0sWyJyZWN0Iix7d2lkdGg6IjIwIixoZWlnaHQ6IjE0Iix4OiIyIix5OiI2IixyeDoiMiJ9XV0sYkplPVtbInBhdGgiLHtkOiJNMTYgMjBWNGEyIDIgMCAwIDAtMi0yaC00YTIgMiAwIDAgMC0yIDJ2MTYifV0sWyJyZWN0Iix7d2lkdGg6IjIwIixoZWlnaHQ6IjE0Iix4OiIyIix5OiI2IixyeDoiMiJ9XV0sdkplPVtbInJlY3QiLHt4OiI4Iix5OiI4Iix3aWR0aDoiOCIsaGVpZ2h0OiI4IixyeDoiMiJ9XSxbInBhdGgiLHtkOiJNNCAxMGEyIDIgMCAwIDEtMi0yVjRhMiAyIDAgMCAxIDItMmg0YTIgMiAwIDAgMSAyIDIifV0sWyJwYXRoIix7ZDoiTTE0IDIwYTIgMiAwIDAgMCAyIDJoNGEyIDIgMCAwIDAgMi0ydi00YTIgMiAwIDAgMC0yLTIifV1dLHlKZT1bWyJwYXRoIix7ZDoibTE2IDIyLTEtNCJ9XSxbInBhdGgiLHtkOiJNMTkgMTRhMSAxIDAgMCAwIDEtMXYtMWEyIDIgMCAwIDAtMi0yaC0zYTEgMSAwIDAgMS0xLTFWNGEyIDIgMCAwIDAtNCAwdjVhMSAxIDAgMCAxLTEgMUg2YTIgMiAwIDAgMC0yIDJ2MWExIDEgMCAwIDAgMSAxIn1dLFsicGF0aCIse2Q6Ik0xOSAxNEg1bC0xLjk3MyA2Ljc2N0ExIDEgMCAwIDAgNCAyMmgxNmExIDEgMCAwIDAgLjk3My0xLjIzM3oifV0sWyJwYXRoIix7ZDoibTggMjIgMS00In1dXSx4SmU9W1sicGF0aCIse2Q6Im0xMSAxMCAzIDMifV0sWyJwYXRoIix7ZDoiTTYuNSAyMUEzLjUgMy41IDAgMSAwIDMgMTcuNWEyLjYyIDIuNjIgMCAwIDEtLjcwOCAxLjc5MkExIDEgMCAwIDAgMyAyMXoifV0sWyJwYXRoIix7ZDoiTTkuOTY5IDE3LjAzMSAyMS4zNzggNS42MjRhMSAxIDAgMCAwLTMuMDAyLTMuMDAyTDYuOTY3IDE0LjAzMSJ9XV0sd0plPVtbInBhdGgiLHtkOiJNNy4wMDEgMTUuMDg1QTEuNSAxLjUgMCAwIDEgOSAxNi41In1dLFsiY2lyY2xlIix7Y3g6IjE4LjUiLGN5OiI4LjUiLHI6IjMuNSJ9XSxbImNpcmNsZSIse2N4OiI3LjUiLGN5OiIxNi41IixyOiI1LjUifV0sWyJjaXJjbGUiLHtjeDoiNy41IixjeToiNC41IixyOiIyLjUifV1dLE1KZT1bWyJwYXRoIix7ZDoiTTEyIDIwdi04In1dLFsicGF0aCIse2Q6Ik0xMi42NTYgN0gxNGE0IDQgMCAwIDEgNCA0djEuMzQ0In1dLFsicGF0aCIse2Q6Ik0xNC4xMiAzLjg4IDE2IDIifV0sWyJwYXRoIix7ZDoiTTE3LjEyMyAxNy4xMjNBNiA2IDAgMCAxIDYgMTR2LTNhNCA0IDAgMCAxIDEuNzItMy4yODcifV0sWyJwYXRoIix7ZDoibTIgMiAyMCAyMCJ9XSxbInBhdGgiLHtkOiJNMjEgNWE0IDQgMCAwIDEtMy41NSAzLjk3In1dLFsicGF0aCIse2Q6Ik0yMiAxM2gtMy4zNDQifV0sWyJwYXRoIix7ZDoiTTMgMjFhNCA0IDAgMCAxIDMuODEtNCJ9XSxbInBhdGgiLHtkOiJNMyA1YTQgNCAwIDAgMCAzLjU1IDMuOTcifV0sWyJwYXRoIix7ZDoiTTYgMTNIMiJ9XSxbInBhdGgiLHtkOiJtOCAyIDEuODggMS44OCJ9XSxbInBhdGgiLHtkOiJNOS43MTIgNC4wNkEzIDMgMCAwIDEgMTUgNnYxLjEzIn1dXSx6SmU9W1sicGF0aCIse2Q6Ik0xMCAxOS42NTVBNiA2IDAgMCAxIDYgMTR2LTNhNCA0IDAgMCAxIDQtNGg0YTQgNCAwIDAgMSA0IDMuOTcifV0sWyJwYXRoIix7ZDoiTTE0IDE1LjAwM2ExIDEgMCAwIDEgMS41MTctLjg1OWw0Ljk5NyAyLjk5N2ExIDEgMCAwIDEgMCAxLjcxOGwtNC45OTcgMi45OTdhMSAxIDAgMCAxLTEuNTE3LS44NnoifV0sWyJwYXRoIix7ZDoiTTE0LjEyIDMuODggMTYgMiJ9XSxbInBhdGgiLHtkOiJNMjEgNWE0IDQgMCAwIDEtMy41NSAzLjk3In1dLFsicGF0aCIse2Q6Ik0zIDIxYTQgNCAwIDAgMSAzLjgxLTQifV0sWyJwYXRoIix7ZDoiTTMgNWE0IDQgMCAwIDAgMy41NSAzLjk3In1dLFsicGF0aCIse2Q6Ik02IDEzSDIifV0sWyJwYXRoIix7ZDoibTggMiAxLjg4IDEuODgifV0sWyJwYXRoIix7ZDoiTTkgNy4xM1Y2YTMgMyAwIDEgMSA2IDB2MS4xMyJ9XV0sa0plPVtbInBhdGgiLHtkOiJNMTIgMjB2LTkifV0sWyJwYXRoIix7ZDoiTTE0IDdhNCA0IDAgMCAxIDQgNHYzYTYgNiAwIDAgMS0xMiAwdi0zYTQgNCAwIDAgMSA0LTR6In1dLFsicGF0aCIse2Q6Ik0xNC4xMiAzLjg4IDE2IDIifV0sWyJwYXRoIix7ZDoiTTIxIDIxYTQgNCAwIDAgMC0zLjgxLTQifV0sWyJwYXRoIix7ZDoiTTIxIDVhNCA0IDAgMCAxLTMuNTUgMy45NyJ9XSxbInBhdGgiLHtkOiJNMjIgMTNoLTQifV0sWyJwYXRoIix7ZDoiTTMgMjFhNCA0IDAgMCAxIDMuODEtNCJ9XSxbInBhdGgiLHtkOiJNMyA1YTQgNCAwIDAgMCAzLjU1IDMuOTcifV0sWyJwYXRoIix7ZDoiTTYgMTNIMiJ9XSxbInBhdGgiLHtkOiJtOCAyIDEuODggMS44OCJ9XSxbInBhdGgiLHtkOiJNOSA3LjEzVjZhMyAzIDAgMSAxIDYgMHYxLjEzIn1dXSxTSmU9W1sicGF0aCIse2Q6Ik0xMCAxMmg0In1dLFsicGF0aCIse2Q6Ik0xMCA4aDQifV0sWyJwYXRoIix7ZDoiTTE0IDIxdi0zYTIgMiAwIDAgMC00IDB2MyJ9XSxbInBhdGgiLHtkOiJNNiAxMEg0YTIgMiAwIDAgMC0yIDJ2N2EyIDIgMCAwIDAgMiAyaDE2YTIgMiAwIDAgMCAyLTJWOWEyIDIgMCAwIDAtMi0yaC0yIn1dLFsicGF0aCIse2Q6Ik02IDIxVjVhMiAyIDAgMCAxIDItMmg4YTIgMiAwIDAgMSAyIDJ2MTYifV1dLENKZT1bWyJwYXRoIix7ZDoiTTEyIDEwaC4wMSJ9XSxbInBhdGgiLHtkOiJNMTIgMTRoLjAxIn1dLFsicGF0aCIse2Q6Ik0xMiA2aC4wMSJ9XSxbInBhdGgiLHtkOiJNMTYgMTBoLjAxIn1dLFsicGF0aCIse2Q6Ik0xNiAxNGguMDEifV0sWyJwYXRoIix7ZDoiTTE2IDZoLjAxIn1dLFsicGF0aCIse2Q6Ik04IDEwaC4wMSJ9XSxbInBhdGgiLHtkOiJNOCAxNGguMDEifV0sWyJwYXRoIix7ZDoiTTggNmguMDEifV0sWyJwYXRoIix7ZDoiTTkgMjJ2LTNhMSAxIDAgMCAxIDEtMWg0YTEgMSAwIDAgMSAxIDF2MyJ9XSxbInJlY3QiLHt4OiI0Iix5OiIyIix3aWR0aDoiMTYiLGhlaWdodDoiMjAiLHJ4OiIyIn1dXSxfSmU9W1sicGF0aCIse2Q6Ik00IDYgMiA3In1dLFsicGF0aCIse2Q6Ik0xMCA2aDQifV0sWyJwYXRoIix7ZDoibTIyIDctMi0xIn1dLFsicmVjdCIse3dpZHRoOiIxNiIsaGVpZ2h0OiIxNiIseDoiNCIseToiMyIscng6IjIifV0sWyJwYXRoIix7ZDoiTTQgMTFoMTYifV0sWyJwYXRoIix7ZDoiTTggMTVoLjAxIn1dLFsicGF0aCIse2Q6Ik0xNiAxNWguMDEifV0sWyJwYXRoIix7ZDoiTTYgMTl2MiJ9XSxbInBhdGgiLHtkOiJNMTggMjF2LTIifV1dLFRKZT1bWyJwYXRoIix7ZDoiTTggNnY2In1dLFsicGF0aCIse2Q6Ik0xNSA2djYifV0sWyJwYXRoIix7ZDoiTTIgMTJoMTkuNiJ9XSxbInBhdGgiLHtkOiJNMTggMThoM3MuNS0xLjcuOC0yLjhjLjEtLjQuMi0uOC4yLTEuMiAwLS40LS4xLS44LS4yLTEuMmwtMS40LTVDMjAuMSA2LjggMTkuMSA2IDE4IDZINGEyIDIgMCAwIDAtMiAydjEwaDMifV0sWyJjaXJjbGUiLHtjeDoiNyIsY3k6IjE4IixyOiIyIn1dLFsicGF0aCIse2Q6Ik05IDE4aDUifV0sWyJjaXJjbGUiLHtjeDoiMTYiLGN5OiIxOCIscjoiMiJ9XV0sTEplPVtbInBhdGgiLHtkOiJNMTAgM2guMDEifV0sWyJwYXRoIix7ZDoiTTE0IDJoLjAxIn1dLFsicGF0aCIse2Q6Im0yIDkgMjAtNSJ9XSxbInBhdGgiLHtkOiJNMTIgMTJWNi41In1dLFsicmVjdCIse3dpZHRoOiIxNiIsaGVpZ2h0OiIxMCIseDoiNCIseToiMTIiLHJ4OiIzIn1dLFsicGF0aCIse2Q6Ik05IDEydjUifV0sWyJwYXRoIix7ZDoiTTE1IDEydjUifV0sWyJwYXRoIix7ZDoiTTQgMTdoMTYifV1dLCRKZT1bWyJwYXRoIix7ZDoiTTE3IDE5YTEgMSAwIDAgMS0xLTF2LTJhMiAyIDAgMCAxIDItMmgyYTIgMiAwIDAgMSAyIDJ2MmExIDEgMCAwIDEtMSAxeiJ9XSxbInBhdGgiLHtkOiJNMTcgMjF2LTIifV0sWyJwYXRoIix7ZDoiTTE5IDE0VjYuNWExIDEgMCAwIDAtNyAwdjExYTEgMSAwIDAgMS03IDBWMTAifV0sWyJwYXRoIix7ZDoiTTIxIDIxdi0yIn1dLFsicGF0aCIse2Q6Ik0zIDVWMyJ9XSxbInBhdGgiLHtkOiJNNCAxMGEyIDIgMCAwIDEtMi0yVjZhMSAxIDAgMCAxIDEtMWg0YTEgMSAwIDAgMSAxIDF2MmEyIDIgMCAwIDEtMiAyeiJ9XSxbInBhdGgiLHtkOiJNNyA1VjMifV1dLEFKZT1bWyJwYXRoIix7ZDoiTTE2IDEzSDMifV0sWyJwYXRoIix7ZDoiTTE2IDE3SDMifV0sWyJwYXRoIix7ZDoibTcuMiA3LjktMy4zODggMi41QTIgMiAwIDAgMCAzIDEyLjAxVjIwYTEgMSAwIDAgMCAxIDFoMTZhMSAxIDAgMCAwIDEtMXYtOC42NTRjMC0yLTIuNDQtNi4wMjYtNi40NC04LjAyNmExIDEgMCAwIDAtMS4wODIuMDU3TDEwLjQgNS42In1dLFsiY2lyY2xlIix7Y3g6IjkiLGN5OiI3IixyOiIyIn1dXSxESmU9W1sicGF0aCIse2Q6Ik0yMCAyMXYtOGEyIDIgMCAwIDAtMi0ySDZhMiAyIDAgMCAwLTIgMnY4In1dLFsicGF0aCIse2Q6Ik00IDE2cy41LTEgMi0xIDIuNSAyIDQgMiAyLjUtMiA0LTIgMi41IDIgNCAyIDItMSAyLTEifV0sWyJwYXRoIix7ZDoiTTIgMjFoMjAifV0sWyJwYXRoIix7ZDoiTTcgOHYzIn1dLFsicGF0aCIse2Q6Ik0xMiA4djMifV0sWyJwYXRoIix7ZDoiTTE3IDh2MyJ9XSxbInBhdGgiLHtkOiJNNyA0aC4wMSJ9XSxbInBhdGgiLHtkOiJNMTIgNGguMDEifV0sWyJwYXRoIix7ZDoiTTE3IDRoLjAxIn1dXSxFSmU9W1sicmVjdCIse3dpZHRoOiIxNiIsaGVpZ2h0OiIyMCIseDoiNCIseToiMiIscng6IjIifV0sWyJsaW5lIix7eDE6IjgiLHgyOiIxNiIseTE6IjYiLHkyOiI2In1dLFsibGluZSIse3gxOiIxNiIseDI6IjE2Iix5MToiMTQiLHkyOiIxOCJ9XSxbInBhdGgiLHtkOiJNMTYgMTBoLjAxIn1dLFsicGF0aCIse2Q6Ik0xMiAxMGguMDEifV0sWyJwYXRoIix7ZDoiTTggMTBoLjAxIn1dLFsicGF0aCIse2Q6Ik0xMiAxNGguMDEifV0sWyJwYXRoIix7ZDoiTTggMTRoLjAxIn1dLFsicGF0aCIse2Q6Ik0xMiAxOGguMDEifV0sWyJwYXRoIix7ZDoiTTggMThoLjAxIn1dXSxQSmU9W1sicGF0aCIse2Q6Ik0xMSAxNGgxdjQifV0sWyJwYXRoIix7ZDoiTTE2IDJ2NCJ9XSxbInBhdGgiLHtkOiJNMyAxMGgxOCJ9XSxbInBhdGgiLHtkOiJNOCAydjQifV0sWyJyZWN0Iix7eDoiMyIseToiNCIsd2lkdGg6IjE4IixoZWlnaHQ6IjE4IixyeDoiMiJ9XV0sSUplPVtbInBhdGgiLHtkOiJtMTQgMTggNCA0IDQtNCJ9XSxbInBhdGgiLHtkOiJNMTYgMnY0In1dLFsicGF0aCIse2Q6Ik0xOCAxNHY4In1dLFsicGF0aCIse2Q6Ik0yMSAxMS4zNTRWNmEyIDIgMCAwIDAtMi0ySDVhMiAyIDAgMCAwLTIgMnYxNGEyIDIgMCAwIDAgMiAyaDcuMzQzIn1dLFsicGF0aCIse2Q6Ik0zIDEwaDE4In1dLFsicGF0aCIse2Q6Ik04IDJ2NCJ9XV0sTkplPVtbInBhdGgiLHtkOiJtMTQgMTggNC00IDQgNCJ9XSxbInBhdGgiLHtkOiJNMTYgMnY0In1dLFsicGF0aCIse2Q6Ik0xOCAyMnYtOCJ9XSxbInBhdGgiLHtkOiJNMjEgMTEuMzQzVjZhMiAyIDAgMCAwLTItMkg1YTIgMiAwIDAgMC0yIDJ2MTRhMiAyIDAgMCAwIDIgMmg5In1dLFsicGF0aCIse2Q6Ik0zIDEwaDE4In1dLFsicGF0aCIse2Q6Ik04IDJ2NCJ9XV0sRkplPVtbInBhdGgiLHtkOiJNOCAydjQifV0sWyJwYXRoIix7ZDoiTTE2IDJ2NCJ9XSxbInBhdGgiLHtkOiJNMjEgMTRWNmEyIDIgMCAwIDAtMi0ySDVhMiAyIDAgMCAwLTIgMnYxNGEyIDIgMCAwIDAgMiAyaDgifV0sWyJwYXRoIix7ZDoiTTMgMTBoMTgifV0sWyJwYXRoIix7ZDoibTE2IDIwIDIgMiA0LTQifV1dLE9KZT1bWyJwYXRoIix7ZDoiTTggMnY0In1dLFsicGF0aCIse2Q6Ik0xNiAydjQifV0sWyJyZWN0Iix7d2lkdGg6IjE4IixoZWlnaHQ6IjE4Iix4OiIzIix5OiI0IixyeDoiMiJ9XSxbInBhdGgiLHtkOiJNMyAxMGgxOCJ9XSxbInBhdGgiLHtkOiJtOSAxNiAyIDIgNC00In1dXSxSSmU9W1sicGF0aCIse2Q6Ik0xNiAxNHYyLjJsMS42IDEifV0sWyJwYXRoIix7ZDoiTTE2IDJ2NCJ9XSxbInBhdGgiLHtkOiJNMjEgNy41VjZhMiAyIDAgMCAwLTItMkg1YTIgMiAwIDAgMC0yIDJ2MTRhMiAyIDAgMCAwIDIgMmgzLjUifV0sWyJwYXRoIix7ZDoiTTMgMTBoNSJ9XSxbInBhdGgiLHtkOiJNOCAydjQifV0sWyJjaXJjbGUiLHtjeDoiMTYiLGN5OiIxNiIscjoiNiJ9XV0sQkplPVtbInBhdGgiLHtkOiJtMTUuMjI4IDE2Ljg1Mi0uOTIzLS4zODMifV0sWyJwYXRoIix7ZDoibTE1LjIyOCAxOS4xNDgtLjkyMy4zODMifV0sWyJwYXRoIix7ZDoiTTE2IDJ2NCJ9XSxbInBhdGgiLHtkOiJtMTYuNDcgMTQuMzA1LjM4Mi45MjMifV0sWyJwYXRoIix7ZDoibTE2Ljg1MiAyMC43NzItLjM4My45MjQifV0sWyJwYXRoIix7ZDoibTE5LjE0OCAxNS4yMjguMzgzLS45MjMifV0sWyJwYXRoIix7ZDoibTE5LjUzIDIxLjY5Ni0uMzgyLS45MjQifV0sWyJwYXRoIix7ZDoibTIwLjc3MiAxNi44NTIuOTI0LS4zODMifV0sWyJwYXRoIix7ZDoibTIwLjc3MiAxOS4xNDguOTI0LjM4MyJ9XSxbInBhdGgiLHtkOiJNMjEgMTAuNTkyVjZhMiAyIDAgMCAwLTItMkg1YTIgMiAwIDAgMC0yIDJ2MTRhMiAyIDAgMCAwIDIgMmg2In1dLFsicGF0aCIse2Q6Ik0zIDEwaDE4In1dLFsicGF0aCIse2Q6Ik04IDJ2NCJ9XSxbImNpcmNsZSIse2N4OiIxOCIsY3k6IjE4IixyOiIzIn1dXSxISmU9W1sicGF0aCIse2Q6Ik04IDJ2NCJ9XSxbInBhdGgiLHtkOiJNMTYgMnY0In1dLFsicmVjdCIse3dpZHRoOiIxOCIsaGVpZ2h0OiIxOCIseDoiMyIseToiNCIscng6IjIifV0sWyJwYXRoIix7ZDoiTTMgMTBoMTgifV0sWyJwYXRoIix7ZDoiTTggMTRoLjAxIn1dLFsicGF0aCIse2Q6Ik0xMiAxNGguMDEifV0sWyJwYXRoIix7ZDoiTTE2IDE0aC4wMSJ9XSxbInBhdGgiLHtkOiJNOCAxOGguMDEifV0sWyJwYXRoIix7ZDoiTTEyIDE4aC4wMSJ9XSxbInBhdGgiLHtkOiJNMTYgMThoLjAxIn1dXSxxSmU9W1sicGF0aCIse2Q6Ik0zIDIwYTIgMiAwIDAgMCAyIDJoMTBhMi40IDIuNCAwIDAgMCAxLjcwNi0uNzA2bDMuNTg4LTMuNTg4QTIuNCAyLjQgMCAwIDAgMjEgMTZWNmEyIDIgMCAwIDAtMi0ySDVhMiAyIDAgMCAwLTIgMnoifV0sWyJwYXRoIix7ZDoiTTE1IDIydi01YTEgMSAwIDAgMSAxLTFoNSJ9XSxbInBhdGgiLHtkOiJNOCAydjQifV0sWyJwYXRoIix7ZDoiTTE2IDJ2NCJ9XSxbInBhdGgiLHtkOiJNMyAxMGgxOCJ9XV0sVkplPVtbInBhdGgiLHtkOiJNMTIuMTI3IDIySDVhMiAyIDAgMCAxLTItMlY2YTIgMiAwIDAgMSAyLTJoMTRhMiAyIDAgMCAxIDIgMnY1LjEyNSJ9XSxbInBhdGgiLHtkOiJNMTQuNjIgMTguOEEyLjI1IDIuMjUgMCAxIDEgMTggMTUuODM2YTIuMjUgMi4yNSAwIDEgMSAzLjM4IDIuOTY2bC0yLjYyNiAyLjg1NmEuOTk4Ljk5OCAwIDAgMS0xLjUwNyAweiJ9XSxbInBhdGgiLHtkOiJNMTYgMnY0In1dLFsicGF0aCIse2Q6Ik0zIDEwaDE4In1dLFsicGF0aCIse2Q6Ik04IDJ2NCJ9XV0sakplPVtbInBhdGgiLHtkOiJNOCAydjQifV0sWyJwYXRoIix7ZDoiTTE2IDJ2NCJ9XSxbInJlY3QiLHt3aWR0aDoiMTgiLGhlaWdodDoiMTgiLHg6IjMiLHk6IjQiLHJ4OiIyIn1dLFsicGF0aCIse2Q6Ik0zIDEwaDE4In1dLFsicGF0aCIse2Q6Ik0xMCAxNmg0In1dXSxVSmU9W1sicGF0aCIse2Q6Ik0xNiAxOWg2In1dLFsicGF0aCIse2Q6Ik0xNiAydjQifV0sWyJwYXRoIix7ZDoiTTIxIDE1VjZhMiAyIDAgMCAwLTItMkg1YTIgMiAwIDAgMC0yIDJ2MTRhMiAyIDAgMCAwIDIgMmg4LjUifV0sWyJwYXRoIix7ZDoiTTMgMTBoMTgifV0sWyJwYXRoIix7ZDoiTTggMnY0In1dXSxXSmU9W1sicGF0aCIse2Q6Ik00LjIgNC4yQTIgMiAwIDAgMCAzIDZ2MTRhMiAyIDAgMCAwIDIgMmgxNGEyIDIgMCAwIDAgMS44Mi0xLjE4In1dLFsicGF0aCIse2Q6Ik0yMSAxNS41VjZhMiAyIDAgMCAwLTItMkg5LjUifV0sWyJwYXRoIix7ZDoiTTE2IDJ2NCJ9XSxbInBhdGgiLHtkOiJNMyAxMGg3In1dLFsicGF0aCIse2Q6Ik0yMSAxMGgtNS41In1dLFsicGF0aCIse2Q6Im0yIDIgMjAgMjAifV1dLEdKZT1bWyJwYXRoIix7ZDoiTTggMnY0In1dLFsicGF0aCIse2Q6Ik0xNiAydjQifV0sWyJyZWN0Iix7d2lkdGg6IjE4IixoZWlnaHQ6IjE4Iix4OiIzIix5OiI0IixyeDoiMiJ9XSxbInBhdGgiLHtkOiJNMyAxMGgxOCJ9XSxbInBhdGgiLHtkOiJNMTAgMTZoNCJ9XSxbInBhdGgiLHtkOiJNMTIgMTR2NCJ9XV0sWUplPVtbInBhdGgiLHtkOiJNMTYgMTloNiJ9XSxbInBhdGgiLHtkOiJNMTYgMnY0In1dLFsicGF0aCIse2Q6Ik0xOSAxNnY2In1dLFsicGF0aCIse2Q6Ik0yMSAxMi41OThWNmEyIDIgMCAwIDAtMi0ySDVhMiAyIDAgMCAwLTIgMnYxNGEyIDIgMCAwIDAgMiAyaDguNSJ9XSxbInBhdGgiLHtkOiJNMyAxMGgxOCJ9XSxbInBhdGgiLHtkOiJNOCAydjQifV1dLFpKZT1bWyJyZWN0Iix7d2lkdGg6IjE4IixoZWlnaHQ6IjE4Iix4OiIzIix5OiI0IixyeDoiMiJ9XSxbInBhdGgiLHtkOiJNMTYgMnY0In1dLFsicGF0aCIse2Q6Ik0zIDEwaDE4In1dLFsicGF0aCIse2Q6Ik04IDJ2NCJ9XSxbInBhdGgiLHtkOiJNMTcgMTRoLTYifV0sWyJwYXRoIix7ZDoiTTEzIDE4SDcifV0sWyJwYXRoIix7ZDoiTTcgMTRoLjAxIn1dLFsicGF0aCIse2Q6Ik0xNyAxOGguMDEifV1dLFhKZT1bWyJwYXRoIix7ZDoiTTE2IDJ2NCJ9XSxbInBhdGgiLHtkOiJNMjEgMTEuNzVWNmEyIDIgMCAwIDAtMi0ySDVhMiAyIDAgMCAwLTIgMnYxNGEyIDIgMCAwIDAgMiAyaDcuMjUifV0sWyJwYXRoIix7ZDoibTIyIDIyLTEuODc1LTEuODc1In1dLFsicGF0aCIse2Q6Ik0zIDEwaDE4In1dLFsicGF0aCIse2Q6Ik04IDJ2NCJ9XSxbImNpcmNsZSIse2N4OiIxOCIsY3k6IjE4IixyOiIzIn1dXSxLSmU9W1sicGF0aCIse2Q6Ik0xMSAxMHY0aDQifV0sWyJwYXRoIix7ZDoibTExIDE0IDEuNTM1LTEuNjA1YTUgNSAwIDAgMSA4IDEuNSJ9XSxbInBhdGgiLHtkOiJNMTYgMnY0In1dLFsicGF0aCIse2Q6Im0yMSAxOC0xLjUzNSAxLjYwNWE1IDUgMCAwIDEtOC0xLjUifV0sWyJwYXRoIix7ZDoiTTIxIDIydi00aC00In1dLFsicGF0aCIse2Q6Ik0yMSA4LjVWNmEyIDIgMCAwIDAtMi0ySDVhMiAyIDAgMCAwLTIgMnYxNGEyIDIgMCAwIDAgMiAyaDQuMyJ9XSxbInBhdGgiLHtkOiJNMyAxMGg0In1dLFsicGF0aCIse2Q6Ik04IDJ2NCJ9XV0sUUplPVtbInBhdGgiLHtkOiJNOCAydjQifV0sWyJwYXRoIix7ZDoiTTE2IDJ2NCJ9XSxbInBhdGgiLHtkOiJNMjEgMTNWNmEyIDIgMCAwIDAtMi0ySDVhMiAyIDAgMCAwLTIgMnYxNGEyIDIgMCAwIDAgMiAyaDgifV0sWyJwYXRoIix7ZDoiTTMgMTBoMTgifV0sWyJwYXRoIix7ZDoibTE3IDIyIDUtNSJ9XSxbInBhdGgiLHtkOiJtMTcgMTcgNSA1In1dXSxKSmU9W1sicGF0aCIse2Q6Ik04IDJ2NCJ9XSxbInBhdGgiLHtkOiJNMTYgMnY0In1dLFsicmVjdCIse3dpZHRoOiIxOCIsaGVpZ2h0OiIxOCIseDoiMyIseToiNCIscng6IjIifV0sWyJwYXRoIix7ZDoiTTMgMTBoMTgifV0sWyJwYXRoIix7ZDoibTE0IDE0LTQgNCJ9XSxbInBhdGgiLHtkOiJtMTAgMTQgNCA0In1dXSxlZXQ9W1sicGF0aCIse2Q6Ik04IDJ2NCJ9XSxbInBhdGgiLHtkOiJNMTYgMnY0In1dLFsicmVjdCIse3dpZHRoOiIxOCIsaGVpZ2h0OiIxOCIseDoiMyIseToiNCIscng6IjIifV0sWyJwYXRoIix7ZDoiTTMgMTBoMTgifV1dLHRldD1bWyJwYXRoIix7ZDoiTTEyIDJ2MiJ9XSxbInBhdGgiLHtkOiJNMTUuNzI2IDIxLjAxQTIgMiAwIDAgMSAxNCAyMkg0YTIgMiAwIDAgMS0yLTJWMTBhMiAyIDAgMCAxIDItMiJ9XSxbInBhdGgiLHtkOiJNMTggMnYyIn1dLFsicGF0aCIse2Q6Ik0yIDEzaDIifV0sWyJwYXRoIix7ZDoiTTggOGgxNCJ9XSxbInJlY3QiLHt4OiI4Iix5OiIzIix3aWR0aDoiMTQiLGhlaWdodDoiMTQiLHJ4OiIyIn1dXSxhZXQ9W1sicGF0aCIse2Q6Ik0xNC41NjQgMTQuNTU4YTMgMyAwIDEgMS00LjEyMi00LjEyMSJ9XSxbInBhdGgiLHtkOiJtMiAyIDIwIDIwIn1dLFsicGF0aCIse2Q6Ik0yMCAyMEg0YTIgMiAwIDAgMS0yLTJWOWEyIDIgMCAwIDEgMi0yaDEuOTk3YTIgMiAwIDAgMCAuODE5LS4xNzUifV0sWyJwYXRoIix7ZDoiTTkuNjk1IDQuMDI0QTIgMiAwIDAgMSAxMC4wMDQgNGgzLjk5M2EyIDIgMCAwIDEgMS43NiAxLjA1bC40ODYuOUEyIDIgMCAwIDAgMTguMDAzIDdIMjBhMiAyIDAgMCAxIDIgMnY3LjM0NCJ9XV0saWV0PVtbInBhdGgiLHtkOiJNMTMuOTk3IDRhMiAyIDAgMCAxIDEuNzYgMS4wNWwuNDg2LjlBMiAyIDAgMCAwIDE4LjAwMyA3SDIwYTIgMiAwIDAgMSAyIDJ2OWEyIDIgMCAwIDEtMiAySDRhMiAyIDAgMCAxLTItMlY5YTIgMiAwIDAgMSAyLTJoMS45OTdhMiAyIDAgMCAwIDEuNzU5LTEuMDQ4bC40ODktLjkwNEEyIDIgMCAwIDEgMTAuMDA0IDR6In1dLFsiY2lyY2xlIix7Y3g6IjEyIixjeToiMTMiLHI6IjMifV1dLHJldD1bWyJwYXRoIix7ZDoiTTUuNyAyMWEyIDIgMCAwIDEtMy41LTJsOC42LTE0YTYgNiAwIDAgMSAxMC40IDYgMiAyIDAgMSAxLTMuNDY0LTIgMiAyIDAgMSAwLTMuNDY0LTJaIn1dLFsicGF0aCIse2Q6Ik0xNy43NSA3IDE1IDIuMSJ9XSxbInBhdGgiLHtkOiJNMTAuOSA0LjggMTMgOSJ9XSxbInBhdGgiLHtkOiJtNy45IDkuNyAyIDQuNCJ9XSxbInBhdGgiLHtkOiJNNC45IDE0LjcgNyAxOC45In1dXSxzZXQ9W1sicGF0aCIse2Q6Ik0xMCAxMHY3LjkifV0sWyJwYXRoIix7ZDoiTTExLjgwMiA2LjE0NWE1IDUgMCAwIDEgNi4wNTMgNi4wNTMifV0sWyJwYXRoIix7ZDoiTTE0IDYuMXYyLjI0MyJ9XSxbInBhdGgiLHtkOiJtMTUuNSAxNS41NzEtLjk2NC45NjRhNSA1IDAgMCAxLTcuMDcxIDAgNSA1IDAgMCAxIDAtNy4wN2wuOTY0LS45NjUifV0sWyJwYXRoIix7ZDoiTTE2IDdWM2ExIDEgMCAwIDEgMS43MDctLjcwNyAyLjUgMi41IDAgMCAwIDIuMTUyLjcxNyAxIDEgMCAwIDEgMS4xMzEgMS4xMzEgMi41IDIuNSAwIDAgMCAuNzE3IDIuMTUyQTEgMSAwIDAgMSAyMSA4aC00In1dLFsicGF0aCIse2Q6Im0yIDIgMjAgMjAifV0sWyJwYXRoIix7ZDoiTTggMTd2NGExIDEgMCAwIDEtMS43MDcuNzA3IDIuNSAyLjUgMCAwIDAtMi4xNTItLjcxNyAxIDEgMCAwIDEtMS4xMzEtMS4xMzEgMi41IDIuNSAwIDAgMC0uNzE3LTIuMTUyQTEgMSAwIDAgMSAzIDE2aDQifV1dLG5ldD1bWyJwYXRoIix7ZDoiTTEwIDd2MTAuOSJ9XSxbInBhdGgiLHtkOiJNMTQgNi4xVjE3In1dLFsicGF0aCIse2Q6Ik0xNiA3VjNhMSAxIDAgMCAxIDEuNzA3LS43MDcgMi41IDIuNSAwIDAgMCAyLjE1Mi43MTcgMSAxIDAgMCAxIDEuMTMxIDEuMTMxIDIuNSAyLjUgMCAwIDAgLjcxNyAyLjE1MkExIDEgMCAwIDEgMjEgOGgtNCJ9XSxbInBhdGgiLHtkOiJNMTYuNTM2IDcuNDY1YTUgNSAwIDAgMC03LjA3MiAwbC0yIDJhNSA1IDAgMCAwIDAgNy4wNyA1IDUgMCAwIDAgNy4wNzIgMGwyLTJhNSA1IDAgMCAwIDAtNy4wNyJ9XSxbInBhdGgiLHtkOiJNOCAxN3Y0YTEgMSAwIDAgMS0xLjcwNy43MDcgMi41IDIuNSAwIDAgMC0yLjE1Mi0uNzE3IDEgMSAwIDAgMS0xLjEzMS0xLjEzMSAyLjUgMi41IDAgMCAwLS43MTctMi4xNTJBMSAxIDAgMCAxIDMgMTZoNCJ9XV0sb2V0PVtbInBhdGgiLHtkOiJNMTIgMjJ2LTRjMS41IDEuNSAzLjUgMyA2IDMgMC0xLjUtLjUtMy41LTItNSJ9XSxbInBhdGgiLHtkOiJNMTMuOTg4IDguMzI3QzEzLjkwMiA2LjA1NCAxMy4zNjUgMy44MiAxMiAyYTkuMyA5LjMgMCAwIDAtMS40NDUgMi45In1dLFsicGF0aCIse2Q6Ik0xNy4zNzUgMTEuNzI1QzE4Ljg4MiAxMC41MyAyMSA3Ljg0MSAyMSA2Yy0yLjMyNCAwLTUuMDggMS4yOTYtNi42NjIgMi42ODQifV0sWyJwYXRoIix7ZDoibTIgMiAyMCAyMCJ9XSxbInBhdGgiLHtkOiJNMjEuMDI0IDE1LjM3OEExNSAxNSAwIDAgMCAyMiAxNWMtLjQyNi0xLjI3OS0yLjY3LTIuNTU3LTQuMjUtMi45MDcifV0sWyJwYXRoIix7ZDoiTTYuOTk1IDYuOTkyQzUuNzE0IDYuNCA0LjI5IDYgMyA2YzAgMiAyLjUgNSA0IDYtMS41IDAtNC41IDEuNS01IDMgMy41IDEuNSA2IDEgNiAxLTEuNSAxLjUtMiAzLjUtMiA1IDIuNSAwIDQuNS0xLjUgNi0zIn1dXSxjZXQ9W1sicGF0aCIse2Q6Ik0xMiAyMnYtNCJ9XSxbInBhdGgiLHtkOiJNNyAxMmMtMS41IDAtNC41IDEuNS01IDMgMy41IDEuNSA2IDEgNiAxLTEuNSAxLjUtMiAzLjUtMiA1IDIuNSAwIDQuNS0xLjUgNi0zIDEuNSAxLjUgMy41IDMgNiAzIDAtMS41LS41LTMuNS0yLTUgMCAwIDIuNS41IDYtMS0uNS0xLjUtMy41LTMtNS0zIDEuNS0xIDQtNCA0LTYtMi41IDAtNS41IDEuNS03IDMgMC0yLjUtLjUtNS0yLTctMS41IDItMiA0LjUtMiA3LTEuNS0xLjUtNC41LTMtNy0zIDAgMiAyLjUgNSA0IDYifV1dLGRldD1bWyJwYXRoIix7ZDoiTTEwLjUgNUgxOWEyIDIgMCAwIDEgMiAydjguNSJ9XSxbInBhdGgiLHtkOiJNMTcgMTFoLS41In1dLFsicGF0aCIse2Q6Ik0xOSAxOUg1YTIgMiAwIDAgMS0yLTJWN2EyIDIgMCAwIDEgMi0yIn1dLFsicGF0aCIse2Q6Im0yIDIgMjAgMjAifV0sWyJwYXRoIix7ZDoiTTcgMTFoNCJ9XSxbInBhdGgiLHtkOiJNNyAxNWgyLjUifV1dLEFnPVtbInJlY3QiLHt3aWR0aDoiMTgiLGhlaWdodDoiMTQiLHg6IjMiLHk6IjUiLHJ4OiIyIixyeToiMiJ9XSxbInBhdGgiLHtkOiJNNyAxNWg0TTE1IDE1aDJNNyAxMWgyTTEzIDExaDQifV1dLGhldD1bWyJwYXRoIix7ZDoibTIxIDgtMiAyLTEuNS0zLjdBMiAyIDAgMCAwIDE1LjY0NiA1SDguNGEyIDIgMCAwIDAtMS45MDMgMS4yNTdMNSAxMCAzIDgifV0sWyJwYXRoIix7ZDoiTTcgMTRoLjAxIn1dLFsicGF0aCIse2Q6Ik0xNyAxNGguMDEifV0sWyJyZWN0Iix7d2lkdGg6IjE4IixoZWlnaHQ6IjgiLHg6IjMiLHk6IjEwIixyeDoiMiJ9XSxbInBhdGgiLHtkOiJNNSAxOHYyIn1dLFsicGF0aCIse2Q6Ik0xOSAxOHYyIn1dXSxwZXQ9W1sicGF0aCIse2Q6Ik0xMCAyaDQifV0sWyJwYXRoIix7ZDoibTIxIDgtMiAyLTEuNS0zLjdBMiAyIDAgMCAwIDE1LjY0NiA1SDguNGEyIDIgMCAwIDAtMS45MDMgMS4yNTdMNSAxMCAzIDgifV0sWyJwYXRoIix7ZDoiTTcgMTRoLjAxIn1dLFsicGF0aCIse2Q6Ik0xNyAxNGguMDEifV0sWyJyZWN0Iix7d2lkdGg6IjE4IixoZWlnaHQ6IjgiLHg6IjMiLHk6IjEwIixyeDoiMiJ9XSxbInBhdGgiLHtkOiJNNSAxOHYyIn1dLFsicGF0aCIse2Q6Ik0xOSAxOHYyIn1dXSx1ZXQ9W1sicGF0aCIse2Q6Ik0xOSAxN2gyYy42IDAgMS0uNCAxLTF2LTNjMC0uOS0uNy0xLjctMS41LTEuOUMxOC43IDEwLjYgMTYgMTAgMTYgMTBzLTEuMy0xLjQtMi4yLTIuM2MtLjUtLjQtMS4xLS43LTEuOC0uN0g1Yy0uNiAwLTEuMS40LTEuNC45bC0xLjQgMi45QTMuNyAzLjcgMCAwIDAgMiAxMnY0YzAgLjYuNCAxIDEgMWgyIn1dLFsiY2lyY2xlIix7Y3g6IjciLGN5OiIxNyIscjoiMiJ9XSxbInBhdGgiLHtkOiJNOSAxN2g2In1dLFsiY2lyY2xlIix7Y3g6IjE3IixjeToiMTciLHI6IjIifV1dLGZldD1bWyJwYXRoIix7ZDoiTTE4IDE5VjlhNCA0IDAgMCAwLTQtNEg2YTQgNCAwIDAgMC00IDR2OGEyIDIgMCAwIDAgMiAyaDIifV0sWyJwYXRoIix7ZDoiTTIgOWgzYTEgMSAwIDAgMSAxIDF2MmExIDEgMCAwIDEtMSAxSDIifV0sWyJwYXRoIix7ZDoiTTIyIDE3djFhMSAxIDAgMCAxLTEgMUgxMHYtOWExIDEgMCAwIDEgMS0xaDJhMSAxIDAgMCAxIDEgMXY5In1dLFsiY2lyY2xlIix7Y3g6IjgiLGN5OiIxOSIscjoiMiJ9XV0sbWV0PVtbInBhdGgiLHtkOiJNMTIgMTR2NCJ9XSxbInBhdGgiLHtkOiJNMTQuMTcyIDJhMiAyIDAgMCAxIDEuNDE0LjU4NmwzLjgyOCAzLjgyOEEyIDIgMCAwIDEgMjAgNy44MjhWMjBhMiAyIDAgMCAxLTIgMkg2YTIgMiAwIDAgMS0yLTJWNGEyIDIgMCAwIDEgMi0yeiJ9XSxbInBhdGgiLHtkOiJNOCAxNGg4In1dLFsicmVjdCIse3g6IjgiLHk6IjEwIix3aWR0aDoiOCIsaGVpZ2h0OiI4IixyeDoiMSJ9XV0sZ2V0PVtbInBhdGgiLHtkOiJNMi4yNyAyMS43czkuODctMy41IDEyLjczLTYuMzZhNC41IDQuNSAwIDAgMC02LjM2LTYuMzdDNS43NyAxMS44NCAyLjI3IDIxLjcgMi4yNyAyMS43ek04LjY0IDE0bC0yLjA1LTIuMDRNMTUuMzQgMTVsLTIuNDYtMi40NiJ9XSxbInBhdGgiLHtkOiJNMjIgOXMtMS4zMy0yLTMuNS0yQzE2Ljg2IDcgMTUgOSAxNSA5czEuMzMgMiAzLjUgMlMyMiA5IDIyIDl6In1dLFsicGF0aCIse2Q6Ik0xNSAycy0yIDEuMzMtMiAzLjVTMTUgOSAxNSA5czItMS44NCAyLTMuNUMxNyAzLjMzIDE1IDIgMTUgMnoifV1dLGJldD1bWyJwYXRoIix7ZDoiTTEwIDl2NyJ9XSxbInBhdGgiLHtkOiJNMTQgNnYxMCJ9XSxbImNpcmNsZSIse2N4OiIxNy41IixjeToiMTIuNSIscjoiMy41In1dLFsiY2lyY2xlIix7Y3g6IjYuNSIsY3k6IjEyLjUiLHI6IjMuNSJ9XV0sdmV0PVtbInBhdGgiLHtkOiJtMiAxNiA0LjAzOS05LjY5YS41LjUgMCAwIDEgLjkyMyAwTDExIDE2In1dLFsicGF0aCIse2Q6Ik0yMiA5djcifV0sWyJwYXRoIix7ZDoiTTMuMzA0IDEzaDYuMzkyIn1dLFsiY2lyY2xlIix7Y3g6IjE4LjUiLGN5OiIxMi41IixyOiIzLjUifV1dLHlldD1bWyJwYXRoIix7ZDoiTTE1IDExaDQuNWExIDEgMCAwIDEgMCA1aC00YS41LjUgMCAwIDEtLjUtLjV2LTlhLjUuNSAwIDAgMSAuNS0uNWgzYTEgMSAwIDAgMSAwIDUifV0sWyJwYXRoIix7ZDoibTIgMTYgNC4wMzktOS42OWEuNS41IDAgMCAxIC45MjMgMEwxMSAxNiJ9XSxbInBhdGgiLHtkOiJNMy4zMDQgMTNoNi4zOTIifV1dLHhldD1bWyJyZWN0Iix7d2lkdGg6IjIwIixoZWlnaHQ6IjE2Iix4OiIyIix5OiI0IixyeDoiMiJ9XSxbImNpcmNsZSIse2N4OiI4IixjeToiMTAiLHI6IjIifV0sWyJwYXRoIix7ZDoiTTggMTJoOCJ9XSxbImNpcmNsZSIse2N4OiIxNiIsY3k6IjEwIixyOiIyIn1dLFsicGF0aCIse2Q6Im02IDIwIC43LTIuOUExLjQgMS40IDAgMCAxIDguMSAxNmg3LjhhMS40IDEuNCAwIDAgMSAxLjQgMWwuNyAzIn1dXSx3ZXQ9W1sicGF0aCIse2Q6Ik0yIDhWNmEyIDIgMCAwIDEgMi0yaDE2YTIgMiAwIDAgMSAyIDJ2MTJhMiAyIDAgMCAxLTIgMmgtNiJ9XSxbInBhdGgiLHtkOiJNMiAxMmE5IDkgMCAwIDEgOCA4In1dLFsicGF0aCIse2Q6Ik0yIDE2YTUgNSAwIDAgMSA0IDQifV0sWyJsaW5lIix7eDE6IjIiLHgyOiIyLjAxIix5MToiMjAiLHkyOiIyMCJ9XV0sTWV0PVtbInBhdGgiLHtkOiJNMTAgNVYzIn1dLFsicGF0aCIse2Q6Ik0xNCA1VjMifV0sWyJwYXRoIix7ZDoiTTE1IDIxdi0zYTMgMyAwIDAgMC02IDB2MyJ9XSxbInBhdGgiLHtkOiJNMTggM3Y4In1dLFsicGF0aCIse2Q6Ik0xOCA1SDYifV0sWyJwYXRoIix7ZDoiTTIyIDExSDIifV0sWyJwYXRoIix7ZDoiTTIyIDl2MTBhMiAyIDAgMCAxLTIgMkg0YTIgMiAwIDAgMS0yLTJWOSJ9XSxbInBhdGgiLHtkOiJNNiAzdjgifV1dLHpldD1bWyJwYXRoIix7ZDoiTTEyIDVjLjY3IDAgMS4zNS4wOSAyIC4yNiAxLjc4LTIgNS4wMy0yLjg0IDYuNDItMi4yNiAxLjQuNTgtLjQyIDctLjQyIDcgLjU3IDEuMDcgMSAyLjI0IDEgMy40NEMyMSAxNy45IDE2Ljk3IDIxIDEyIDIxcy05LTMtOS03LjU2YzAtMS4yNS41LTIuNCAxLTMuNDQgMCAwLTEuODktNi40Mi0uNS03IDEuMzktLjU4IDQuNzIuMjMgNi41IDIuMjNBOS4wNCA5LjA0IDAgMCAxIDEyIDVaIn1dLFsicGF0aCIse2Q6Ik04IDE0di41In1dLFsicGF0aCIse2Q6Ik0xNiAxNHYuNSJ9XSxbInBhdGgiLHtkOiJNMTEuMjUgMTYuMjVoMS41TDEyIDE3bC0uNzUtLjc1WiJ9XV0sa2V0PVtbInBhdGgiLHtkOiJNMTYuNzUgMTJoMy42MzJhMSAxIDAgMCAxIC44OTQgMS40NDdsLTIuMDM0IDQuMDY5YTEgMSAwIDAgMS0xLjcwOC4xMzRsLTIuMTI0LTIuOTcifV0sWyJwYXRoIix7ZDoiTTE3LjEwNiA5LjA1M2ExIDEgMCAwIDEgLjQ0NyAxLjM0MWwtMy4xMDYgNi4yMTFhMSAxIDAgMCAxLTEuMzQyLjQ0N0wzLjYxIDEyLjNhMi45MiAyLjkyIDAgMCAxLTEuMy0zLjkxTDMuNjkgNS42YTIuOTIgMi45MiAwIDAgMSAzLjkyLTEuM3oifV0sWyJwYXRoIix7ZDoiTTIgMTloMy43NmEyIDIgMCAwIDAgMS44LTEuMUw5IDE1In1dLFsicGF0aCIse2Q6Ik0yIDIxdi00In1dLFsicGF0aCIse2Q6Ik03IDloLjAxIn1dXSxEZz1bWyJwYXRoIix7ZDoiTTMgM3YxNmEyIDIgMCAwIDAgMiAyaDE2In1dLFsicGF0aCIse2Q6Ik03IDExLjIwN2EuNS41IDAgMCAxIC4xNDYtLjM1M2wyLTJhLjUuNSAwIDAgMSAuNzA4IDBsMy4yOTIgMy4yOTJhLjUuNSAwIDAgMCAuNzA4IDBsNC4yOTItNC4yOTJhLjUuNSAwIDAgMSAuODU0LjM1M1YxNmExIDEgMCAwIDEtMSAxSDhhMSAxIDAgMCAxLTEtMXoifV1dLEVnPVtbInBhdGgiLHtkOiJNMyAzdjE2YTIgMiAwIDAgMCAyIDJoMTYifV0sWyJyZWN0Iix7eDoiNyIseToiMTMiLHdpZHRoOiI5IixoZWlnaHQ6IjQiLHJ4OiIxIn1dLFsicmVjdCIse3g6IjciLHk6IjUiLHdpZHRoOiIxMiIsaGVpZ2h0OiI0IixyeDoiMSJ9XV0sQ2V0PVtbInBhdGgiLHtkOiJNMyAzdjE2YTIgMiAwIDAgMCAyIDJoMTYifV0sWyJwYXRoIix7ZDoiTTcgMTFoOCJ9XSxbInBhdGgiLHtkOiJNNyAxNmgzIn1dLFsicGF0aCIse2Q6Ik03IDZoMTIifV1dLF9ldD1bWyJwYXRoIix7ZDoiTTMgM3YxNmEyIDIgMCAwIDAgMiAyaDE2In1dLFsicGF0aCIse2Q6Ik03IDExaDgifV0sWyJwYXRoIix7ZDoiTTcgMTZoMTIifV0sWyJwYXRoIix7ZDoiTTcgNmgzIn1dXSxUZXQ9W1sicGF0aCIse2Q6Ik0xMSAxM3Y0In1dLFsicGF0aCIse2Q6Ik0xNSA1djQifV0sWyJwYXRoIix7ZDoiTTMgM3YxNmEyIDIgMCAwIDAgMiAyaDE2In1dLFsicmVjdCIse3g6IjciLHk6IjEzIix3aWR0aDoiOSIsaGVpZ2h0OiI0IixyeDoiMSJ9XSxbInJlY3QiLHt4OiI3Iix5OiI1Iix3aWR0aDoiMTIiLGhlaWdodDoiNCIscng6IjEifV1dLFBnPVtbInBhdGgiLHtkOiJNOSA1djQifV0sWyJyZWN0Iix7d2lkdGg6IjQiLGhlaWdodDoiNiIseDoiNyIseToiOSIscng6IjEifV0sWyJwYXRoIix7ZDoiTTkgMTV2MiJ9XSxbInBhdGgiLHtkOiJNMTcgM3YyIn1dLFsicmVjdCIse3dpZHRoOiI0IixoZWlnaHQ6IjgiLHg6IjE1Iix5OiI1IixyeDoiMSJ9XSxbInBhdGgiLHtkOiJNMTcgMTN2MyJ9XSxbInBhdGgiLHtkOiJNMyAzdjE2YTIgMiAwIDAgMCAyIDJoMTYifV1dLElnPVtbInBhdGgiLHtkOiJNMyAzdjE2YTIgMiAwIDAgMCAyIDJoMTYifV0sWyJyZWN0Iix7eDoiMTUiLHk6IjUiLHdpZHRoOiI0IixoZWlnaHQ6IjEyIixyeDoiMSJ9XSxbInJlY3QiLHt4OiI3Iix5OiI4Iix3aWR0aDoiNCIsaGVpZ2h0OiI5IixyeDoiMSJ9XV0sTGV0PVtbInBhdGgiLHtkOiJNMTMgMTdWOSJ9XSxbInBhdGgiLHtkOiJNMTggMTd2LTMifV0sWyJwYXRoIix7ZDoiTTMgM3YxNmEyIDIgMCAwIDAgMiAyaDE2In1dLFsicGF0aCIse2Q6Ik04IDE3VjUifV1dLE5nPVtbInBhdGgiLHtkOiJNMyAzdjE2YTIgMiAwIDAgMCAyIDJoMTYifV0sWyJwYXRoIix7ZDoiTTcgMTZoOCJ9XSxbInBhdGgiLHtkOiJNNyAxMWgxMiJ9XSxbInBhdGgiLHtkOiJNNyA2aDMifV1dLEZnPVtbInBhdGgiLHtkOiJNMTMgMTdWOSJ9XSxbInBhdGgiLHtkOiJNMTggMTdWNSJ9XSxbInBhdGgiLHtkOiJNMyAzdjE2YTIgMiAwIDAgMCAyIDJoMTYifV0sWyJwYXRoIix7ZDoiTTggMTd2LTMifV1dLCRldD1bWyJwYXRoIix7ZDoiTTExIDEzSDcifV0sWyJwYXRoIix7ZDoiTTE5IDloLTQifV0sWyJwYXRoIix7ZDoiTTMgM3YxNmEyIDIgMCAwIDAgMiAyaDE2In1dLFsicmVjdCIse3g6IjE1Iix5OiI1Iix3aWR0aDoiNCIsaGVpZ2h0OiIxMiIscng6IjEifV0sWyJyZWN0Iix7eDoiNyIseToiOCIsd2lkdGg6IjQiLGhlaWdodDoiOSIscng6IjEifV1dLE9nPVtbInBhdGgiLHtkOiJNMyAzdjE2YTIgMiAwIDAgMCAyIDJoMTYifV0sWyJwYXRoIix7ZDoiTTE4IDE3VjkifV0sWyJwYXRoIix7ZDoiTTEzIDE3VjUifV0sWyJwYXRoIix7ZDoiTTggMTd2LTMifV1dLEFldD1bWyJwYXRoIix7ZDoiTTEwIDZoOCJ9XSxbInBhdGgiLHtkOiJNMTIgMTZoNiJ9XSxbInBhdGgiLHtkOiJNMyAzdjE2YTIgMiAwIDAgMCAyIDJoMTYifV0sWyJwYXRoIix7ZDoiTTggMTFoNyJ9XV0sUmc9W1sicGF0aCIse2Q6Ik0zIDN2MTZhMiAyIDAgMCAwIDIgMmgxNiJ9XSxbInBhdGgiLHtkOiJtMTkgOS01IDUtNC00LTMgMyJ9XV0sRGV0PVtbInBhdGgiLHtkOiJtMTMuMTEgNy42NjQgMS43OCAyLjY3MiJ9XSxbInBhdGgiLHtkOiJtMTQuMTYyIDEyLjc4OC0zLjMyNCAxLjQyNCJ9XSxbInBhdGgiLHtkOiJtMjAgNC02LjA2IDEuNTE1In1dLFsicGF0aCIse2Q6Ik0zIDN2MTZhMiAyIDAgMCAwIDIgMmgxNiJ9XSxbImNpcmNsZSIse2N4OiIxMiIsY3k6IjYiLHI6IjIifV0sWyJjaXJjbGUiLHtjeDoiMTYiLGN5OiIxMiIscjoiMiJ9XSxbImNpcmNsZSIse2N4OiI5IixjeToiMTUiLHI6IjIifV1dLEVldD1bWyJwYXRoIix7ZDoiTTUgMjFWMyJ9XSxbInBhdGgiLHtkOiJNMTIgMjFWOSJ9XSxbInBhdGgiLHtkOiJNMTkgMjF2LTYifV1dLEJnPVtbInBhdGgiLHtkOiJNNSAyMXYtNiJ9XSxbInBhdGgiLHtkOiJNMTIgMjFWOSJ9XSxbInBhdGgiLHtkOiJNMTkgMjFWMyJ9XV0sSGc9W1sicGF0aCIse2Q6Ik01IDIxdi02In1dLFsicGF0aCIse2Q6Ik0xMiAyMVYzIn1dLFsicGF0aCIse2Q6Ik0xOSAyMVY5In1dXSxQZXQ9W1sicGF0aCIse2Q6Ik0xMiAxNnY1In1dLFsicGF0aCIse2Q6Ik0xNiAxNHY3In1dLFsicGF0aCIse2Q6Ik0yMCAxMHYxMSJ9XSxbInBhdGgiLHtkOiJtMjIgMy04LjY0NiA4LjY0NmEuNS41IDAgMCAxLS43MDggMEw5LjM1NCA4LjM1NGEuNS41IDAgMCAwLS43MDcgMEwyIDE1In1dLFsicGF0aCIse2Q6Ik00IDE4djMifV0sWyJwYXRoIix7ZDoiTTggMTR2NyJ9XV0scWc9W1sicGF0aCIse2Q6Ik02IDVoMTIifV0sWyJwYXRoIix7ZDoiTTQgMTJoMTAifV0sWyJwYXRoIix7ZDoiTTEyIDE5aDgifV1dLFZnPVtbInBhdGgiLHtkOiJNMjEgMTJjLjU1MiAwIDEuMDA1LS40NDkuOTUtLjk5OGExMCAxMCAwIDAgMC04Ljk1My04Ljk1MWMtLjU1LS4wNTUtLjk5OC4zOTgtLjk5OC45NXY4YTEgMSAwIDAgMCAxIDF6In1dLFsicGF0aCIse2Q6Ik0yMS4yMSAxNS44OUExMCAxMCAwIDEgMSA4IDIuODMifV1dLGpnPVtbImNpcmNsZSIse2N4OiI3LjUiLGN5OiI3LjUiLHI6Ii41IixmaWxsOiJjdXJyZW50Q29sb3IifV0sWyJjaXJjbGUiLHtjeDoiMTguNSIsY3k6IjUuNSIscjoiLjUiLGZpbGw6ImN1cnJlbnRDb2xvciJ9XSxbImNpcmNsZSIse2N4OiIxMS41IixjeToiMTEuNSIscjoiLjUiLGZpbGw6ImN1cnJlbnRDb2xvciJ9XSxbImNpcmNsZSIse2N4OiI3LjUiLGN5OiIxNi41IixyOiIuNSIsZmlsbDoiY3VycmVudENvbG9yIn1dLFsiY2lyY2xlIix7Y3g6IjE3LjUiLGN5OiIxNC41IixyOiIuNSIsZmlsbDoiY3VycmVudENvbG9yIn1dLFsicGF0aCIse2Q6Ik0zIDN2MTZhMiAyIDAgMCAwIDIgMmgxNiJ9XV0sSWV0PVtbInBhdGgiLHtkOiJNMyAzdjE2YTIgMiAwIDAgMCAyIDJoMTYifV0sWyJwYXRoIix7ZDoiTTcgMTZjLjUtMiAxLjUtNyA0LTcgMiAwIDIgMyA0IDMgMi41IDAgNC41LTUgNS03In1dXSxOZXQ9W1sicGF0aCIse2Q6Ik0yMCA0TDkgMTUifV0sWyJwYXRoIix7ZDoiTTIxIDE5TDMgMTkifV0sWyJwYXRoIix7ZDoiTTkgMTVMNCAxMCJ9XV0sRmV0PVtbInBhdGgiLHtkOiJNMTggNiA3IDE3bC01LTUifV0sWyJwYXRoIix7ZDoibTIyIDEwLTcuNSA3LjVMMTMgMTYifV1dLE9ldD1bWyJwYXRoIix7ZDoiTTE3IDIxYTEgMSAwIDAgMCAxLTF2LTUuMzVjMC0uNDU3LjMxNi0uODQ0LjcyNy0xLjA0MWE0IDQgMCAwIDAtMi4xMzQtNy41ODkgNSA1IDAgMCAwLTkuMTg2IDAgNCA0IDAgMCAwLTIuMTM0IDcuNTg4Yy40MTEuMTk4LjcyNy41ODUuNzI3IDEuMDQxVjIwYTEgMSAwIDAgMCAxIDFaIn1dLFsicGF0aCIse2Q6Ik02IDE3aDEyIn1dXSxSZXQ9W1sicGF0aCIse2Q6Ik0yIDE3YTUgNSAwIDAgMCAxMCAwYzAtMi43Ni0yLjUtNS01LTMtMi41LTItNSAuMjQtNSAzWiJ9XSxbInBhdGgiLHtkOiJNMTIgMTdhNSA1IDAgMCAwIDEwIDBjMC0yLjc2LTIuNS01LTUtMy0yLjUtMi01IC4yNC01IDNaIn1dLFsicGF0aCIse2Q6Ik03IDE0YzMuMjItMi45MSA0LjI5LTguNzUgNS0xMiAxLjY2IDIuMzggNC45NCA5IDUgMTIifV0sWyJwYXRoIix7ZDoiTTIyIDljLTQuMjkgMC03LjE0LTIuMzMtMTAtNyA1LjcxIDAgMTAgNC42NyAxMCA3WiJ9XV0sQmV0PVtbInBhdGgiLHtkOiJNMjAgNiA5IDE3bC01LTUifV1dLEhldD1bWyJwYXRoIix7ZDoiTTUgMjBhMiAyIDAgMCAxIDItMmgxMGEyIDIgMCAwIDEgMiAydjFhMSAxIDAgMCAxLTEgMUg2YTEgMSAwIDAgMS0xLTF6In1dLFsicGF0aCIse2Q6Ik0xNSAxOGMxLjUtLjYxNSAzLTIuNDYxIDMtNC45MjNDMTggOC43NjkgMTQuNSA0LjQ2MiAxMiAyIDkuNSA0LjQ2MiA2IDguNzcgNiAxMy4wNzcgNiAxNS41MzkgNy41IDE3LjM4NSA5IDE4In1dLFsicGF0aCIse2Q6Im0xNiA3LTIuNSAyLjUifV0sWyJwYXRoIix7ZDoiTTkgMmg2In1dXSxxZXQ9W1sicGF0aCIse2Q6Ik00IDIwYTIgMiAwIDAgMSAyLTJoMTJhMiAyIDAgMCAxIDIgMnYxYTEgMSAwIDAgMS0xIDFINWExIDEgMCAwIDEtMS0xeiJ9XSxbInBhdGgiLHtkOiJtNi43IDE4LTEtMUM0LjM1IDE1LjY4MiAzIDE0LjA5IDMgMTJhNSA1IDAgMCAxIDQuOTUtNWMxLjU4NCAwIDIuNy40NTUgNC4wNSAxLjgxOEMxMy4zNSA3LjQ1NSAxNC40NjYgNyAxNi4wNSA3QTUgNSAwIDAgMSAyMSAxMmMwIDIuMDgyLTEuMzU5IDMuNjczLTIuNyA1bC0xIDEifV0sWyJwYXRoIix7ZDoiTTEwIDRoNCJ9XSxbInBhdGgiLHtkOiJNMTIgMnY2LjgxOCJ9XV0sVmV0PVtbInBhdGgiLHtkOiJNNSAyMGEyIDIgMCAwIDEgMi0yaDEwYTIgMiAwIDAgMSAyIDJ2MWExIDEgMCAwIDEtMSAxSDZhMSAxIDAgMCAxLTEtMXoifV0sWyJwYXRoIix7ZDoibTE0LjUgMTAgMS41IDgifV0sWyJwYXRoIix7ZDoiTTcgMTBoMTAifV0sWyJwYXRoIix7ZDoibTggMTggMS41LTgifV0sWyJjaXJjbGUiLHtjeDoiMTIiLGN5OiI2IixyOiI0In1dXSxqZXQ9W1sicGF0aCIse2Q6Ik00IDIwYTIgMiAwIDAgMSAyLTJoMTJhMiAyIDAgMCAxIDIgMnYxYTEgMSAwIDAgMS0xIDFINWExIDEgMCAwIDEtMS0xeiJ9XSxbInBhdGgiLHtkOiJtMTIuNDc0IDUuOTQzIDEuNTY3IDUuMzRhMSAxIDAgMCAwIDEuNzUuMzI4bDIuNjE2LTMuNDAyIn1dLFsicGF0aCIse2Q6Im0yMCA5LTMgOSJ9XSxbInBhdGgiLHtkOiJtNS41OTQgOC4yMDkgMi42MTUgMy40MDNhMSAxIDAgMCAwIDEuNzUtLjMyOWwxLjU2Ny01LjM0In1dLFsicGF0aCIse2Q6Ik03IDE4IDQgOSJ9XSxbImNpcmNsZSIse2N4OiIxMiIsY3k6IjQiLHI6IjIifV0sWyJjaXJjbGUiLHtjeDoiMjAiLGN5OiI3IixyOiIyIn1dLFsiY2lyY2xlIix7Y3g6IjQiLGN5OiI3IixyOiIyIn1dXSxVZXQ9W1sicGF0aCIse2Q6Ik01IDIwYTIgMiAwIDAgMSAyLTJoMTBhMiAyIDAgMCAxIDIgMnYxYTEgMSAwIDAgMS0xIDFINmExIDEgMCAwIDEtMS0xeiJ9XSxbInBhdGgiLHtkOiJNMTYuNSAxOGMxLTIgMi41LTUgMi41LTlhNyA3IDAgMCAwLTctN0g2LjYzNWExIDEgMCAwIDAtLjc2OCAxLjY0TDcgNWwtMi4zMiA1LjgwMmEyIDIgMCAwIDAgLjk1IDIuNTI2bDIuODcgMS40NTYifV0sWyJwYXRoIix7ZDoibTE1IDUgMS40MjUtMS40MjUifV0sWyJwYXRoIix7ZDoibTE3IDggMS41My0xLjUzIn1dLFsicGF0aCIse2Q6Ik05LjcxMyAxMi4xODUgNyAxOCJ9XV0sV2V0PVtbInBhdGgiLHtkOiJNNSAyMGEyIDIgMCAwIDEgMi0yaDEwYTIgMiAwIDAgMSAyIDJ2MWExIDEgMCAwIDEtMSAxSDZhMSAxIDAgMCAxLTEtMXoifV0sWyJwYXRoIix7ZDoiTTEwIDJ2MiJ9XSxbInBhdGgiLHtkOiJNMTQgMnYyIn1dLFsicGF0aCIse2Q6Im0xNyAxOC0xLTkifV0sWyJwYXRoIix7ZDoiTTYgMnY1YTIgMiAwIDAgMCAyIDJoOGEyIDIgMCAwIDAgMi0yVjIifV0sWyJwYXRoIix7ZDoiTTYgNGgxMiJ9XSxbInBhdGgiLHtkOiJtNyAxOCAxLTkifV1dLEdldD1bWyJwYXRoIix7ZDoibTYgOSA2IDYgNi02In1dXSxZZXQ9W1sicGF0aCIse2Q6Im0xNyAxOC02LTYgNi02In1dLFsicGF0aCIse2Q6Ik03IDZ2MTIifV1dLFpldD1bWyJwYXRoIix7ZDoibTcgMTggNi02LTYtNiJ9XSxbInBhdGgiLHtkOiJNMTcgNnYxMiJ9XV0sWGV0PVtbInBhdGgiLHtkOiJtMTUgMTgtNi02IDYtNiJ9XV0sS2V0PVtbInBhdGgiLHtkOiJtOSAxOCA2LTYtNi02In1dXSxRZXQ9W1sicGF0aCIse2Q6Im0xOCAxNS02LTYtNiA2In1dXSxKZXQ9W1sicGF0aCIse2Q6Im03IDIwIDUtNSA1IDUifV0sWyJwYXRoIix7ZDoibTcgNCA1IDUgNS01In1dXSxldHQ9W1sicGF0aCIse2Q6Im03IDYgNSA1IDUtNSJ9XSxbInBhdGgiLHtkOiJtNyAxMyA1IDUgNS01In1dXSx0dHQ9W1sicGF0aCIse2Q6Ik0xMiAxMmguMDEifV0sWyJwYXRoIix7ZDoiTTE2IDEyaC4wMSJ9XSxbInBhdGgiLHtkOiJtMTcgNyA1IDUtNSA1In1dLFsicGF0aCIse2Q6Im03IDctNSA1IDUgNSJ9XSxbInBhdGgiLHtkOiJNOCAxMmguMDEifV1dLGF0dD1bWyJwYXRoIix7ZDoibTkgNy01IDUgNSA1In1dLFsicGF0aCIse2Q6Im0xNSA3IDUgNS01IDUifV1dLGl0dD1bWyJwYXRoIix7ZDoibTExIDE3LTUtNSA1LTUifV0sWyJwYXRoIix7ZDoibTE4IDE3LTUtNSA1LTUifV1dLHJ0dD1bWyJwYXRoIix7ZDoibTIwIDE3LTUtNSA1LTUifV0sWyJwYXRoIix7ZDoibTQgMTcgNS01LTUtNSJ9XV0sc3R0PVtbInBhdGgiLHtkOiJtNiAxNyA1LTUtNS01In1dLFsicGF0aCIse2Q6Im0xMyAxNyA1LTUtNS01In1dXSxudHQ9W1sicGF0aCIse2Q6Im0xNyAxMS01LTUtNSA1In1dLFsicGF0aCIse2Q6Im0xNyAxOC01LTUtNSA1In1dXSxVZz1bWyJwYXRoIix7ZDoiTTEwLjg4IDIxLjk0IDE1LjQ2IDE0In1dLFsicGF0aCIse2Q6Ik0yMS4xNyA4SDEyIn1dLFsicGF0aCIse2Q6Ik0zLjk1IDYuMDYgOC41NCAxNCJ9XSxbImNpcmNsZSIse2N4OiIxMiIsY3k6IjEyIixyOiIxMCJ9XSxbImNpcmNsZSIse2N4OiIxMiIsY3k6IjEyIixyOiI0In1dXSxvdHQ9W1sicGF0aCIse2Q6Im03IDE1IDUgNSA1LTUifV0sWyJwYXRoIix7ZDoibTcgOSA1LTUgNSA1In1dXSxsdHQ9W1sicGF0aCIse2Q6Ik0xMiAxMkgzYTEgMSAwIDAgMC0xIDF2MmExIDEgMCAwIDAgMSAxaDEzIn1dLFsicGF0aCIse2Q6Ik0xOCA4YzAtMi41LTItMi41LTItNSJ9XSxbInBhdGgiLHtkOiJtMiAyIDIwIDIwIn1dLFsicGF0aCIse2Q6Ik0yMSAxMmExIDEgMCAwIDEgMSAxdjJhMSAxIDAgMCAxLS41Ljg2NiJ9XSxbInBhdGgiLHtkOiJNMjIgOGMwLTIuNS0yLTIuNS0yLTUifV0sWyJwYXRoIix7ZDoiTTcgMTJ2NCJ9XV0sY3R0PVtbInBhdGgiLHtkOiJNMTAgOWg0In1dLFsicGF0aCIse2Q6Ik0xMiA3djUifV0sWyJwYXRoIix7ZDoiTTE0IDIxdi0zYTIgMiAwIDAgMC00IDB2MyJ9XSxbInBhdGgiLHtkOiJtMTggOSAzLjUyIDIuMTQ3YTEgMSAwIDAgMSAuNDguODU0VjE5YTIgMiAwIDAgMS0yIDJINGEyIDIgMCAwIDEtMi0ydi02Ljk5OWExIDEgMCAwIDEgLjQ4LS44NTRMNiA5In1dLFsicGF0aCIse2Q6Ik02IDIxVjdhMSAxIDAgMCAxIC4zNzYtLjc4Mmw1LTMuOTk5YTEgMSAwIDAgMSAxLjI0OS4wMDFsNSA0QTEgMSAwIDAgMSAxOCA3djE0In1dXSxkdHQ9W1sicGF0aCIse2Q6Ik0xNyAxMkgzYTEgMSAwIDAgMC0xIDF2MmExIDEgMCAwIDAgMSAxaDE0In1dLFsicGF0aCIse2Q6Ik0xOCA4YzAtMi41LTItMi41LTItNSJ9XSxbInBhdGgiLHtkOiJNMjEgMTZhMSAxIDAgMCAwIDEtMXYtMmExIDEgMCAwIDAtMS0xIn1dLFsicGF0aCIse2Q6Ik0yMiA4YzAtMi41LTItMi41LTItNSJ9XSxbInBhdGgiLHtkOiJNNyAxMnY0In1dXSxXZz1bWyJjaXJjbGUiLHtjeDoiMTIiLGN5OiIxMiIscjoiMTAifV0sWyJsaW5lIix7eDE6IjEyIix4MjoiMTIiLHkxOiI4Iix5MjoiMTIifV0sWyJsaW5lIix7eDE6IjEyIix4MjoiMTIuMDEiLHkxOiIxNiIseTI6IjE2In1dXSxHZz1bWyJjaXJjbGUiLHtjeDoiMTIiLGN5OiIxMiIscjoiMTAifV0sWyJwYXRoIix7ZDoiTTEyIDh2OCJ9XSxbInBhdGgiLHtkOiJtOCAxMiA0IDQgNC00In1dXSxZZz1bWyJjaXJjbGUiLHtjeDoiMTIiLGN5OiIxMiIscjoiMTAifV0sWyJwYXRoIix7ZDoibTEyIDgtNCA0IDQgNCJ9XSxbInBhdGgiLHtkOiJNMTYgMTJIOCJ9XV0sWmc9W1sicGF0aCIse2Q6Ik0yIDEyYTEwIDEwIDAgMSAxIDEwIDEwIn1dLFsicGF0aCIse2Q6Im0yIDIyIDEwLTEwIn1dLFsicGF0aCIse2Q6Ik04IDIySDJ2LTYifV1dLFhnPVtbInBhdGgiLHtkOiJNMTIgMjJhMTAgMTAgMCAxIDEgMTAtMTAifV0sWyJwYXRoIix7ZDoiTTIyIDIyIDEyIDEyIn1dLFsicGF0aCIse2Q6Ik0yMiAxNnY2aC02In1dXSxLZz1bWyJwYXRoIix7ZDoiTTIgOFYyaDYifV0sWyJwYXRoIix7ZDoibTIgMiAxMCAxMCJ9XSxbInBhdGgiLHtkOiJNMTIgMkExMCAxMCAwIDEgMSAyIDEyIn1dXSxRZz1bWyJwYXRoIix7ZDoiTTIyIDEyQTEwIDEwIDAgMSAxIDEyIDIifV0sWyJwYXRoIix7ZDoiTTIyIDIgMTIgMTIifV0sWyJwYXRoIix7ZDoiTTE2IDJoNnY2In1dXSxKZz1bWyJjaXJjbGUiLHtjeDoiMTIiLGN5OiIxMiIscjoiMTAifV0sWyJwYXRoIix7ZDoibTEyIDE2IDQtNC00LTQifV0sWyJwYXRoIix7ZDoiTTggMTJoOCJ9XV0sZWI9W1siY2lyY2xlIix7Y3g6IjEyIixjeToiMTIiLHI6IjEwIn1dLFsicGF0aCIse2Q6Im0xNiAxMi00LTQtNCA0In1dLFsicGF0aCIse2Q6Ik0xMiAxNlY4In1dXSx0Yj1bWyJwYXRoIix7ZDoiTTIxLjgwMSAxMEExMCAxMCAwIDEgMSAxNyAzLjMzNSJ9XSxbInBhdGgiLHtkOiJtOSAxMSAzIDNMMjIgNCJ9XV0sYWI9W1siY2lyY2xlIix7Y3g6IjEyIixjeToiMTIiLHI6IjEwIn1dLFsicGF0aCIse2Q6Im05IDEyIDIgMiA0LTQifV1dLGliPVtbImNpcmNsZSIse2N4OiIxMiIsY3k6IjEyIixyOiIxMCJ9XSxbInBhdGgiLHtkOiJtMTYgMTAtNCA0LTQtNCJ9XV0scmI9W1siY2lyY2xlIix7Y3g6IjEyIixjeToiMTIiLHI6IjEwIn1dLFsicGF0aCIse2Q6Im0xNCAxNi00LTQgNC00In1dXSxzYj1bWyJjaXJjbGUiLHtjeDoiMTIiLGN5OiIxMiIscjoiMTAifV0sWyJwYXRoIix7ZDoibTEwIDggNCA0LTQgNCJ9XV0sbmI9W1siY2lyY2xlIix7Y3g6IjEyIixjeToiMTIiLHI6IjEwIn1dLFsicGF0aCIse2Q6Im04IDE0IDQtNCA0IDQifV1dLGh0dD1bWyJwYXRoIix7ZDoiTTEwLjEgMi4xODJhMTAgMTAgMCAwIDEgMy44IDAifV0sWyJwYXRoIix7ZDoiTTEzLjkgMjEuODE4YTEwIDEwIDAgMCAxLTMuOCAwIn1dLFsicGF0aCIse2Q6Ik0xNy42MDkgMy43MjFhMTAgMTAgMCAwIDEgMi42OSAyLjcifV0sWyJwYXRoIix7ZDoiTTIuMTgyIDEzLjlhMTAgMTAgMCAwIDEgMC0zLjgifV0sWyJwYXRoIix7ZDoiTTIwLjI3OSAxNy42MDlhMTAgMTAgMCAwIDEtMi43IDIuNjkifV0sWyJwYXRoIix7ZDoiTTIxLjgxOCAxMC4xYTEwIDEwIDAgMCAxIDAgMy44In1dLFsicGF0aCIse2Q6Ik0zLjcyMSA2LjM5MWExMCAxMCAwIDAgMSAyLjctMi42OSJ9XSxbInBhdGgiLHtkOiJNNi4zOTEgMjAuMjc5YTEwIDEwIDAgMCAxLTIuNjktMi43In1dXSxvYj1bWyJsaW5lIix7eDE6IjgiLHgyOiIxNiIseTE6IjEyIix5MjoiMTIifV0sWyJsaW5lIix7eDE6IjEyIix4MjoiMTIiLHkxOiIxNiIseTI6IjE2In1dLFsibGluZSIse3gxOiIxMiIseDI6IjEyIix5MToiOCIseTI6IjgifV0sWyJjaXJjbGUiLHtjeDoiMTIiLGN5OiIxMiIscjoiMTAifV1dLHB0dD1bWyJjaXJjbGUiLHtjeDoiMTIiLGN5OiIxMiIscjoiMTAifV0sWyJwYXRoIix7ZDoiTTE2IDhoLTZhMiAyIDAgMSAwIDAgNGg0YTIgMiAwIDEgMSAwIDRIOCJ9XSxbInBhdGgiLHtkOiJNMTIgMThWNiJ9XV0sdXR0PVtbInBhdGgiLHtkOiJNMTAuMSAyLjE4YTkuOTMgOS45MyAwIDAgMSAzLjggMCJ9XSxbInBhdGgiLHtkOiJNMTcuNiAzLjcxYTkuOTUgOS45NSAwIDAgMSAyLjY5IDIuNyJ9XSxbInBhdGgiLHtkOiJNMjEuODIgMTAuMWE5LjkzIDkuOTMgMCAwIDEgMCAzLjgifV0sWyJwYXRoIix7ZDoiTTIwLjI5IDE3LjZhOS45NSA5Ljk1IDAgMCAxLTIuNyAyLjY5In1dLFsicGF0aCIse2Q6Ik0xMy45IDIxLjgyYTkuOTQgOS45NCAwIDAgMS0zLjggMCJ9XSxbInBhdGgiLHtkOiJNNi40IDIwLjI5YTkuOTUgOS45NSAwIDAgMS0yLjY5LTIuNyJ9XSxbInBhdGgiLHtkOiJNMi4xOCAxMy45YTkuOTMgOS45MyAwIDAgMSAwLTMuOCJ9XSxbInBhdGgiLHtkOiJNMy43MSA2LjRhOS45NSA5Ljk1IDAgMCAxIDIuNy0yLjY5In1dLFsiY2lyY2xlIix7Y3g6IjEyIixjeToiMTIiLHI6IjEifV1dLGZ0dD1bWyJjaXJjbGUiLHtjeDoiMTIiLGN5OiIxMiIscjoiMTAifV0sWyJjaXJjbGUiLHtjeDoiMTIiLGN5OiIxMiIscjoiMSJ9XV0sbXR0PVtbImNpcmNsZSIse2N4OiIxMiIsY3k6IjEyIixyOiIxMCJ9XSxbInBhdGgiLHtkOiJNMTcgMTJoLjAxIn1dLFsicGF0aCIse2Q6Ik0xMiAxMmguMDEifV0sWyJwYXRoIix7ZDoiTTcgMTJoLjAxIn1dXSxndHQ9W1sicGF0aCIse2Q6Ik03IDEwaDEwIn1dLFsicGF0aCIse2Q6Ik03IDE0aDEwIn1dLFsiY2lyY2xlIix7Y3g6IjEyIixjeToiMTIiLHI6IjEwIn1dXSxidHQ9W1sicGF0aCIse2Q6Ik0xMiAyYTEwIDEwIDAgMCAxIDcuMzggMTYuNzUifV0sWyJwYXRoIix7ZDoibTE2IDEyLTQtNC00IDQifV0sWyJwYXRoIix7ZDoiTTEyIDE2VjgifV0sWyJwYXRoIix7ZDoiTTIuNSA4Ljg3NWExMCAxMCAwIDAgMC0uNSAzIn1dLFsicGF0aCIse2Q6Ik0yLjgzIDE2YTEwIDEwIDAgMCAwIDIuNDMgMy40In1dLFsicGF0aCIse2Q6Ik00LjYzNiA1LjIzNWExMCAxMCAwIDAgMSAuODkxLS44NTcifV0sWyJwYXRoIix7ZDoiTTguNjQ0IDIxLjQyYTEwIDEwIDAgMCAwIDcuNjMxLS4zOCJ9XV0sdnR0PVtbInBhdGgiLHtkOiJNMTIgMmExMCAxMCAwIDAgMSA3LjM4IDE2Ljc1In1dLFsicGF0aCIse2Q6Ik0xMiA4djgifV0sWyJwYXRoIix7ZDoiTTE2IDEySDgifV0sWyJwYXRoIix7ZDoiTTIuNSA4Ljg3NWExMCAxMCAwIDAgMC0uNSAzIn1dLFsicGF0aCIse2Q6Ik0yLjgzIDE2YTEwIDEwIDAgMCAwIDIuNDMgMy40In1dLFsicGF0aCIse2Q6Ik00LjYzNiA1LjIzNWExMCAxMCAwIDAgMSAuODkxLS44NTcifV0sWyJwYXRoIix7ZDoiTTguNjQ0IDIxLjQyYTEwIDEwIDAgMCAwIDcuNjMxLS4zOCJ9XV0sbGI9W1sicGF0aCIse2Q6Ik0xNS42IDIuN2ExMCAxMCAwIDEgMCA1LjcgNS43In1dLFsiY2lyY2xlIix7Y3g6IjEyIixjeToiMTIiLHI6IjIifV0sWyJwYXRoIix7ZDoiTTEzLjQgMTAuNiAxOSA1In1dXSxjYj1bWyJjaXJjbGUiLHtjeDoiMTIiLGN5OiIxMiIscjoiMTAifV0sWyJwYXRoIix7ZDoiTTggMTJoOCJ9XV0sZGI9W1sicGF0aCIse2Q6Ik0xMi42NTYgN0gxM2EzIDMgMCAwIDEgMi45ODQgMy4zMDcifV0sWyJwYXRoIix7ZDoiTTEzIDEzSDkifV0sWyJwYXRoIix7ZDoiTTE5LjA3MSAxOS4wNzFBMSAxIDAgMCAxIDQuOTMgNC45MyJ9XSxbInBhdGgiLHtkOiJtMiAyIDIwIDIwIn1dLFsicGF0aCIse2Q6Ik04LjM1NyAyLjY4N2ExMCAxMCAwIDAgMSAxMi45NTYgMTIuOTU2In1dLFsicGF0aCIse2Q6Ik05IDE3VjkifV1dLHl0dD1bWyJwYXRoIix7ZDoibTIgMiAyMCAyMCJ9XSxbInBhdGgiLHtkOiJNOC4zNSAyLjY5QTEwIDEwIDAgMCAxIDIxLjMgMTUuNjUifV0sWyJwYXRoIix7ZDoiTTE5LjA4IDE5LjA4QTEwIDEwIDAgMSAxIDQuOTIgNC45MiJ9XV0saGI9W1siY2lyY2xlIix7Y3g6IjEyIixjeToiMTIiLHI6IjEwIn1dLFsicGF0aCIse2Q6Ik05IDE3VjdoNGEzIDMgMCAwIDEgMCA2SDkifV1dLHBiPVtbImNpcmNsZSIse2N4OiIxMiIsY3k6IjEyIixyOiIxMCJ9XSxbImxpbmUiLHt4MToiMTAiLHgyOiIxMCIseTE6IjE1Iix5MjoiOSJ9XSxbImxpbmUiLHt4MToiMTQiLHgyOiIxNCIseTE6IjE1Iix5MjoiOSJ9XV0sdWI9W1siY2lyY2xlIix7Y3g6IjEyIixjeToiMTIiLHI6IjEwIn1dLFsicGF0aCIse2Q6Im0xNSA5LTYgNiJ9XSxbInBhdGgiLHtkOiJNOSA5aC4wMSJ9XSxbInBhdGgiLHtkOiJNMTUgMTVoLjAxIn1dXSxmYj1bWyJwYXRoIix7ZDoiTTkgOS4wMDNhMSAxIDAgMCAxIDEuNTE3LS44NTlsNC45OTcgMi45OTdhMSAxIDAgMCAxIDAgMS43MThsLTQuOTk3IDIuOTk3QTEgMSAwIDAgMSA5IDE0Ljk5NnoifV0sWyJjaXJjbGUiLHtjeDoiMTIiLGN5OiIxMiIscjoiMTAifV1dLHh0dD1bWyJjaXJjbGUiLHtjeDoiMTIiLGN5OiIxOSIscjoiMiJ9XSxbImNpcmNsZSIse2N4OiIxMiIsY3k6IjUiLHI6IjIifV0sWyJjaXJjbGUiLHtjeDoiMTYiLGN5OiIxMiIscjoiMiJ9XSxbImNpcmNsZSIse2N4OiIyMCIsY3k6IjE5IixyOiIyIn1dLFsiY2lyY2xlIix7Y3g6IjQiLGN5OiIxOSIscjoiMiJ9XSxbImNpcmNsZSIse2N4OiI4IixjeToiMTIiLHI6IjIifV1dLG1iPVtbImNpcmNsZSIse2N4OiIxMiIsY3k6IjEyIixyOiIxMCJ9XSxbInBhdGgiLHtkOiJNOCAxMmg4In1dLFsicGF0aCIse2Q6Ik0xMiA4djgifV1dLHd0dD1bWyJwYXRoIix7ZDoiTTEwIDE2VjkuNWExIDEgMCAwIDEgNSAwIn1dLFsicGF0aCIse2Q6Ik04IDEyaDQifV0sWyJwYXRoIix7ZDoiTTggMTZoNyJ9XSxbImNpcmNsZSIse2N4OiIxMiIsY3k6IjEyIixyOiIxMCJ9XV0sZ2I9W1sicGF0aCIse2Q6Ik0xMiA3djQifV0sWyJwYXRoIix7ZDoiTTcuOTk4IDkuMDAzYTUgNSAwIDEgMCA4LS4wMDUifV0sWyJjaXJjbGUiLHtjeDoiMTIiLGN5OiIxMiIscjoiMTAifV1dLGdsPVtbImNpcmNsZSIse2N4OiIxMiIsY3k6IjEyIixyOiIxMCJ9XSxbInBhdGgiLHtkOiJNOS4wOSA5YTMgMyAwIDAgMSA1LjgzIDFjMCAyLTMgMy0zIDMifV0sWyJwYXRoIix7ZDoiTTEyIDE3aC4wMSJ9XV0sYmI9W1sicGF0aCIse2Q6Ik0yMiAyIDIgMjIifV0sWyJjaXJjbGUiLHtjeDoiMTIiLGN5OiIxMiIscjoiMTAifV1dLE10dD1bWyJjaXJjbGUiLHtjeDoiMTIiLGN5OiIxMiIscjoiMTAifV0sWyJsaW5lIix7eDE6IjkiLHgyOiIxNSIseTE6IjE1Iix5MjoiOSJ9XV0senR0PVtbImNpcmNsZSIse2N4OiIxMiIsY3k6IjEyIixyOiI2In1dXSxrdHQ9W1sicGF0aCIse2Q6Ik0xMS4wNTEgNy42MTZhMSAxIDAgMCAxIDEuOTA5LjAyNGwuNzM3IDEuNDUyYTEgMSAwIDAgMCAuNzM3LjUzNWwxLjYzNC4yNTZhMSAxIDAgMCAxIC41ODggMS44MDZsLTEuMTcyIDEuMTY4YTEgMSAwIDAgMC0uMjgyLjg2NmwuMjU5IDEuNjEzYTEgMSAwIDAgMS0xLjU0MSAxLjEzNGwtMS40NjUtLjc1YTEgMSAwIDAgMC0uOTEyIDBsLTEuNDY1Ljc1YTEgMSAwIDAgMS0xLjUzOS0xLjEzM2wuMjU4LTEuNjEzYTEgMSAwIDAgMC0uMjgyLS44NjdsLTEuMTU2LTEuMTUyYTEgMSAwIDAgMSAuNTcyLTEuODIybDEuNjMzLS4yNTZhMSAxIDAgMCAwIC43MzctLjUzNXoifV0sWyJjaXJjbGUiLHtjeDoiMTIiLGN5OiIxMiIscjoiMTAifV1dLHZiPVtbImNpcmNsZSIse2N4OiIxMiIsY3k6IjEyIixyOiIxMCJ9XSxbInJlY3QiLHt4OiI5Iix5OiI5Iix3aWR0aDoiNiIsaGVpZ2h0OiI2IixyeDoiMSJ9XV0seWI9W1sicGF0aCIse2Q6Ik0xOCAyMGE2IDYgMCAwIDAtMTIgMCJ9XSxbImNpcmNsZSIse2N4OiIxMiIsY3k6IjEwIixyOiI0In1dLFsiY2lyY2xlIix7Y3g6IjEyIixjeToiMTIiLHI6IjEwIn1dXSx4Yj1bWyJjaXJjbGUiLHtjeDoiMTIiLGN5OiIxMiIscjoiMTAifV0sWyJjaXJjbGUiLHtjeDoiMTIiLGN5OiIxMCIscjoiMyJ9XSxbInBhdGgiLHtkOiJNNyAyMC42NjJWMTlhMiAyIDAgMCAxIDItMmg2YTIgMiAwIDAgMSAyIDJ2MS42NjIifV1dLHdiPVtbImNpcmNsZSIse2N4OiIxMiIsY3k6IjEyIixyOiIxMCJ9XSxbInBhdGgiLHtkOiJtMTUgOS02IDYifV0sWyJwYXRoIix7ZDoibTkgOSA2IDYifV1dLFN0dD1bWyJjaXJjbGUiLHtjeDoiMTIiLGN5OiIxMiIscjoiMTAifV1dLEN0dD1bWyJyZWN0Iix7d2lkdGg6IjE4IixoZWlnaHQ6IjE4Iix4OiIzIix5OiIzIixyeDoiMiJ9XSxbInBhdGgiLHtkOiJNMTEgOWg0YTIgMiAwIDAgMCAyLTJWMyJ9XSxbImNpcmNsZSIse2N4OiI5IixjeToiOSIscjoiMiJ9XSxbInBhdGgiLHtkOiJNNyAyMXYtNGEyIDIgMCAwIDEgMi0yaDQifV0sWyJjaXJjbGUiLHtjeDoiMTUiLGN5OiIxNSIscjoiMiJ9XV0sX3R0PVtbInBhdGgiLHtkOiJNMjEuNjYgMTcuNjdhMS4wOCAxLjA4IDAgMCAxLS4wNCAxLjZBMTIgMTIgMCAwIDEgNC43MyAyLjM4YTEuMSAxLjEgMCAwIDEgMS42MS0uMDR6In1dLFsicGF0aCIse2Q6Ik0xOS42NSAxNS42NkE4IDggMCAwIDEgOC4zNSA0LjM0In1dLFsicGF0aCIse2Q6Im0xNCAxMC01LjUgNS41In1dLFsicGF0aCIse2Q6Ik0xNCAxNy44NVYxMEg2LjE1In1dXSxUdHQ9W1sicGF0aCIse2Q6Ik0yMC4yIDYgMyAxMWwtLjktMi40Yy0uMy0xLjEuMy0yLjIgMS4zLTIuNWwxMy41LTRjMS4xLS4zIDIuMi4zIDIuNSAxLjNaIn1dLFsicGF0aCIse2Q6Im02LjIgNS4zIDMuMSAzLjkifV0sWyJwYXRoIix7ZDoibTEyLjQgMy40IDMuMSA0In1dLFsicGF0aCIse2Q6Ik0zIDExaDE4djhhMiAyIDAgMCAxLTIgMkg1YTIgMiAwIDAgMS0yLTJaIn1dXSxMdHQ9W1sicmVjdCIse3dpZHRoOiI4IixoZWlnaHQ6IjQiLHg6IjgiLHk6IjIiLHJ4OiIxIixyeToiMSJ9XSxbInBhdGgiLHtkOiJNMTYgNGgyYTIgMiAwIDAgMSAyIDJ2MTRhMiAyIDAgMCAxLTIgMkg2YTIgMiAwIDAgMS0yLTJWNmEyIDIgMCAwIDEgMi0yaDIifV0sWyJwYXRoIix7ZDoibTkgMTQgMiAyIDQtNCJ9XV0sJHR0PVtbInBhdGgiLHtkOiJNMTYgMTR2Mi4ybDEuNiAxIn1dLFsicGF0aCIse2Q6Ik0xNiA0aDJhMiAyIDAgMCAxIDIgMnYuODMyIn1dLFsicGF0aCIse2Q6Ik04IDRINmEyIDIgMCAwIDAtMiAydjE0YTIgMiAwIDAgMCAyIDJoMiJ9XSxbImNpcmNsZSIse2N4OiIxNiIsY3k6IjE2IixyOiI2In1dLFsicmVjdCIse3g6IjgiLHk6IjIiLHdpZHRoOiI4IixoZWlnaHQ6IjQiLHJ4OiIxIn1dXSxBdHQ9W1sicmVjdCIse3dpZHRoOiI4IixoZWlnaHQ6IjQiLHg6IjgiLHk6IjIiLHJ4OiIxIixyeToiMSJ9XSxbInBhdGgiLHtkOiJNOCA0SDZhMiAyIDAgMCAwLTIgMnYxNGEyIDIgMCAwIDAgMiAyaDEyYTIgMiAwIDAgMCAyLTJ2LTIifV0sWyJwYXRoIix7ZDoiTTE2IDRoMmEyIDIgMCAwIDEgMiAydjQifV0sWyJwYXRoIix7ZDoiTTIxIDE0SDExIn1dLFsicGF0aCIse2Q6Im0xNSAxMC00IDQgNCA0In1dXSxEdHQ9W1sicmVjdCIse3dpZHRoOiI4IixoZWlnaHQ6IjQiLHg6IjgiLHk6IjIiLHJ4OiIxIixyeToiMSJ9XSxbInBhdGgiLHtkOiJNMTYgNGgyYTIgMiAwIDAgMSAyIDJ2MTRhMiAyIDAgMCAxLTIgMkg2YTIgMiAwIDAgMS0yLTJWNmEyIDIgMCAwIDEgMi0yaDIifV0sWyJwYXRoIix7ZDoiTTEyIDExaDQifV0sWyJwYXRoIix7ZDoiTTEyIDE2aDQifV0sWyJwYXRoIix7ZDoiTTggMTFoLjAxIn1dLFsicGF0aCIse2Q6Ik04IDE2aC4wMSJ9XV0sRXR0PVtbInJlY3QiLHt3aWR0aDoiOCIsaGVpZ2h0OiI0Iix4OiI4Iix5OiIyIixyeDoiMSIscnk6IjEifV0sWyJwYXRoIix7ZDoiTTE2IDRoMmEyIDIgMCAwIDEgMiAydjE0YTIgMiAwIDAgMS0yIDJINmEyIDIgMCAwIDEtMi0yVjZhMiAyIDAgMCAxIDItMmgyIn1dLFsicGF0aCIse2Q6Ik05IDE0aDYifV1dLFB0dD1bWyJwYXRoIix7ZDoiTTExIDE0aDEwIn1dLFsicGF0aCIse2Q6Ik0xNiA0aDJhMiAyIDAgMCAxIDIgMnYxLjM0NCJ9XSxbInBhdGgiLHtkOiJtMTcgMTggNC00LTQtNCJ9XSxbInBhdGgiLHtkOiJNOCA0SDZhMiAyIDAgMCAwLTIgMnYxNGEyIDIgMCAwIDAgMiAyaDEyYTIgMiAwIDAgMCAxLjc5My0xLjExMyJ9XSxbInJlY3QiLHt4OiI4Iix5OiIyIix3aWR0aDoiOCIsaGVpZ2h0OiI0IixyeDoiMSJ9XV0sTWI9W1sicmVjdCIse3dpZHRoOiI4IixoZWlnaHQ6IjQiLHg6IjgiLHk6IjIiLHJ4OiIxIn1dLFsicGF0aCIse2Q6Ik04IDRINmEyIDIgMCAwIDAtMiAydjE0YTIgMiAwIDAgMCAyIDJoMTJhMiAyIDAgMCAwIDItMnYtLjUifV0sWyJwYXRoIix7ZDoiTTE2IDRoMmEyIDIgMCAwIDEgMS43MyAxIn1dLFsicGF0aCIse2Q6Ik04IDE4aDEifV0sWyJwYXRoIix7ZDoiTTIxLjM3OCAxMi42MjZhMSAxIDAgMCAwLTMuMDA0LTMuMDA0bC00LjAxIDQuMDEyYTIgMiAwIDAgMC0uNTA2Ljg1NGwtLjgzNyAyLjg3YS41LjUgMCAwIDAgLjYyLjYybDIuODctLjgzN2EyIDIgMCAwIDAgLjg1NC0uNTA2eiJ9XV0semI9W1sicmVjdCIse3dpZHRoOiI4IixoZWlnaHQ6IjQiLHg6IjgiLHk6IjIiLHJ4OiIxIn1dLFsicGF0aCIse2Q6Ik0xNiA0aDJhMiAyIDAgMCAxIDIgMnYxNGEyIDIgMCAwIDEtMiAyaC01LjUifV0sWyJwYXRoIix7ZDoiTTQgMTMuNVY2YTIgMiAwIDAgMSAyLTJoMiJ9XSxbInBhdGgiLHtkOiJNMTMuMzc4IDE1LjYyNmExIDEgMCAxIDAtMy4wMDQtMy4wMDRsLTUuMDEgNS4wMTJhMiAyIDAgMCAwLS41MDYuODU0bC0uODM3IDIuODdhLjUuNSAwIDAgMCAuNjIuNjJsMi44Ny0uODM3YTIgMiAwIDAgMCAuODU0LS41MDZ6In1dXSxJdHQ9W1sicmVjdCIse3dpZHRoOiI4IixoZWlnaHQ6IjQiLHg6IjgiLHk6IjIiLHJ4OiIxIixyeToiMSJ9XSxbInBhdGgiLHtkOiJNMTYgNGgyYTIgMiAwIDAgMSAyIDJ2MTRhMiAyIDAgMCAxLTIgMkg2YTIgMiAwIDAgMS0yLTJWNmEyIDIgMCAwIDEgMi0yaDIifV0sWyJwYXRoIix7ZDoiTTkgMTRoNiJ9XSxbInBhdGgiLHtkOiJNMTIgMTd2LTYifV1dLE50dD1bWyJyZWN0Iix7d2lkdGg6IjgiLGhlaWdodDoiNCIseDoiOCIseToiMiIscng6IjEiLHJ5OiIxIn1dLFsicGF0aCIse2Q6Ik0xNiA0aDJhMiAyIDAgMCAxIDIgMnYxNGEyIDIgMCAwIDEtMiAySDZhMiAyIDAgMCAxLTItMlY2YTIgMiAwIDAgMSAyLTJoMiJ9XSxbInBhdGgiLHtkOiJNOSAxMnYtMWg2djEifV0sWyJwYXRoIix7ZDoiTTExIDE3aDIifV0sWyJwYXRoIix7ZDoiTTEyIDExdjYifV1dLEZ0dD1bWyJyZWN0Iix7d2lkdGg6IjgiLGhlaWdodDoiNCIseDoiOCIseToiMiIscng6IjEiLHJ5OiIxIn1dLFsicGF0aCIse2Q6Ik0xNiA0aDJhMiAyIDAgMCAxIDIgMnYxNGEyIDIgMCAwIDEtMiAySDZhMiAyIDAgMCAxLTItMlY2YTIgMiAwIDAgMSAyLTJoMiJ9XSxbInBhdGgiLHtkOiJtMTUgMTEtNiA2In1dLFsicGF0aCIse2Q6Im05IDExIDYgNiJ9XV0sT3R0PVtbInBhdGgiLHtkOiJNMTIgNnY2bDItNCJ9XSxbImNpcmNsZSIse2N4OiIxMiIsY3k6IjEyIixyOiIxMCJ9XV0sUnR0PVtbInJlY3QiLHt3aWR0aDoiOCIsaGVpZ2h0OiI0Iix4OiI4Iix5OiIyIixyeDoiMSIscnk6IjEifV0sWyJwYXRoIix7ZDoiTTE2IDRoMmEyIDIgMCAwIDEgMiAydjE0YTIgMiAwIDAgMS0yIDJINmEyIDIgMCAwIDEtMi0yVjZhMiAyIDAgMCAxIDItMmgyIn1dXSxCdHQ9W1sicGF0aCIse2Q6Ik0xMiA2djZsLTQtMiJ9XSxbImNpcmNsZSIse2N4OiIxMiIsY3k6IjEyIixyOiIxMCJ9XV0sSHR0PVtbInBhdGgiLHtkOiJNMTIgNnY2bC0yLTQifV0sWyJjaXJjbGUiLHtjeDoiMTIiLGN5OiIxMiIscjoiMTAifV1dLHF0dD1bWyJwYXRoIix7ZDoiTTEyIDZ2NiJ9XSxbImNpcmNsZSIse2N4OiIxMiIsY3k6IjEyIixyOiIxMCJ9XV0sVnR0PVtbInBhdGgiLHtkOiJNMTIgNnY2bDQtMiJ9XSxbImNpcmNsZSIse2N4OiIxMiIsY3k6IjEyIixyOiIxMCJ9XV0sanR0PVtbInBhdGgiLHtkOiJNMTIgNnY2aDQifV0sWyJjaXJjbGUiLHtjeDoiMTIiLGN5OiIxMiIscjoiMTAifV1dLFV0dD1bWyJwYXRoIix7ZDoiTTEyIDZ2Nmw0IDIifV0sWyJjaXJjbGUiLHtjeDoiMTIiLGN5OiIxMiIscjoiMTAifV1dLFd0dD1bWyJwYXRoIix7ZDoiTTEyIDZ2NmwyIDQifV0sWyJjaXJjbGUiLHtjeDoiMTIiLGN5OiIxMiIscjoiMTAifV1dLEd0dD1bWyJwYXRoIix7ZDoiTTEyIDZ2MTAifV0sWyJjaXJjbGUiLHtjeDoiMTIiLGN5OiIxMiIscjoiMTAifV1dLFl0dD1bWyJwYXRoIix7ZDoiTTEyIDZ2NmwtMiA0In1dLFsiY2lyY2xlIix7Y3g6IjEyIixjeToiMTIiLHI6IjEwIn1dXSxadHQ9W1sicGF0aCIse2Q6Ik0xMiA2djZsLTQgMiJ9XSxbImNpcmNsZSIse2N4OiIxMiIsY3k6IjEyIixyOiIxMCJ9XV0sWHR0PVtbInBhdGgiLHtkOiJNMTIgNnY2SDgifV0sWyJjaXJjbGUiLHtjeDoiMTIiLGN5OiIxMiIscjoiMTAifV1dLEt0dD1bWyJwYXRoIix7ZDoiTTEyIDZ2NmwyIDEifV0sWyJwYXRoIix7ZDoiTTEyLjMzNyAyMS45OTRhMTAgMTAgMCAxIDEgOS41ODgtOC43NjcifV0sWyJwYXRoIix7ZDoibTE0IDE4IDQgNCA0LTQifV0sWyJwYXRoIix7ZDoiTTE4IDE0djgifV1dLFF0dD1bWyJwYXRoIix7ZDoiTTEyIDZ2Nmw0IDIifV0sWyJwYXRoIix7ZDoiTTIwIDEydjUifV0sWyJwYXRoIix7ZDoiTTIwIDIxaC4wMSJ9XSxbInBhdGgiLHtkOiJNMjEuMjUgOC4yQTEwIDEwIDAgMSAwIDE2IDIxLjE2In1dXSxKdHQ9W1sicGF0aCIse2Q6Ik0xMiA2djZsMS41Ni43OCJ9XSxbInBhdGgiLHtkOiJNMTMuMjI3IDIxLjkyNWExMCAxMCAwIDEgMSA4Ljc2Ny05LjU4OCJ9XSxbInBhdGgiLHtkOiJtMTQgMTggNC00IDQgNCJ9XSxbInBhdGgiLHtkOiJNMTggMjJ2LTgifV1dLGUxdD1bWyJwYXRoIix7ZDoiTTEyIDZ2Nmw0IDIifV0sWyJwYXRoIix7ZDoiTTIyIDEyYTEwIDEwIDAgMSAwLTExIDkuOTUifV0sWyJwYXRoIix7ZDoibTIyIDE2LTUuNSA1LjVMMTQgMTkifV1dLHQxdD1bWyJwYXRoIix7ZDoiTTEyIDJhMTAgMTAgMCAwIDEgNy4zOCAxNi43NSJ9XSxbInBhdGgiLHtkOiJNMTIgNnY2bDQgMiJ9XSxbInBhdGgiLHtkOiJNMi41IDguODc1YTEwIDEwIDAgMCAwLS41IDMifV0sWyJwYXRoIix7ZDoiTTIuODMgMTZhMTAgMTAgMCAwIDAgMi40MyAzLjQifV0sWyJwYXRoIix7ZDoiTTQuNjM2IDUuMjM1YTEwIDEwIDAgMCAxIC44OTEtLjg1NyJ9XSxbInBhdGgiLHtkOiJNOC42NDQgMjEuNDJhMTAgMTAgMCAwIDAgNy42MzEtLjM4In1dXSxhMXQ9W1sicGF0aCIse2Q6Ik0xMiA2djZsMy42NDQgMS44MjIifV0sWyJwYXRoIix7ZDoiTTE2IDE5aDYifV0sWyJwYXRoIix7ZDoiTTE5IDE2djYifV0sWyJwYXRoIix7ZDoiTTIxLjkyIDEzLjI2N2ExMCAxMCAwIDEgMC04LjY1MyA4LjY1MyJ9XV0saTF0PVtbInBhdGgiLHtkOiJNMTIgNnY2bDQgMiJ9XSxbImNpcmNsZSIse2N4OiIxMiIsY3k6IjEyIixyOiIxMCJ9XV0scjF0PVtbInBhdGgiLHtkOiJNMTAgOS4xN2EzIDMgMCAxIDAgMCA1LjY2In1dLFsicGF0aCIse2Q6Ik0xNyA5LjE3YTMgMyAwIDEgMCAwIDUuNjYifV0sWyJyZWN0Iix7eDoiMiIseToiNSIsd2lkdGg6IjIwIixoZWlnaHQ6IjE0IixyeDoiMiJ9XV0sczF0PVtbInBhdGgiLHtkOiJNMTIgMTJ2NCJ9XSxbInBhdGgiLHtkOiJNMTIgMjBoLjAxIn1dLFsicGF0aCIse2Q6Ik04LjEyOCAxNi45NDlBNyA3IDAgMSAxIDE1LjcxIDhoMS43OWExIDEgMCAwIDEgMCA5aC0xLjY0MiJ9XV0sbjF0PVtbInBhdGgiLHtkOiJNMjEgMTUuMjUxQTQuNSA0LjUgMCAwIDAgMTcuNSA4aC0xLjc5QTcgNyAwIDEgMCAzIDEzLjYwNyJ9XSxbInBhdGgiLHtkOiJNNyAxMXY0aDQifV0sWyJwYXRoIix7ZDoiTTggMTlhNSA1IDAgMCAwIDktMyA0LjUgNC41IDAgMCAwLTQuNS00LjUgNC44MiA0LjgyIDAgMCAwLTMuNDEgMS40MUw3IDE1In1dXSxvMXQ9W1sicGF0aCIse2Q6Im0xNyAxNS01LjUgNS41TDkgMTgifV0sWyJwYXRoIix7ZDoiTTUuNTE2IDE2LjA3QTcgNyAwIDEgMSAxNS43MSA4aDEuNzlhNC41IDQuNSAwIDAgMSAzLjUwMSA3LjMyNyJ9XV0sbDF0PVtbInBhdGgiLHtkOiJtMTAuODUyIDE5Ljc3Mi0uMzgzLjkyNCJ9XSxbInBhdGgiLHtkOiJtMTMuMTQ4IDE0LjIyOC4zODMtLjkyMyJ9XSxbInBhdGgiLHtkOiJNMTMuMTQ4IDE5Ljc3MmEzIDMgMCAxIDAtMi4yOTYtNS41NDRsLS4zODMtLjkyMyJ9XSxbInBhdGgiLHtkOiJtMTMuNTMgMjAuNjk2LS4zODItLjkyNGEzIDMgMCAxIDEtMi4yOTYtNS41NDQifV0sWyJwYXRoIix7ZDoibTE0Ljc3MiAxNS44NTIuOTIzLS4zODMifV0sWyJwYXRoIix7ZDoibTE0Ljc3MiAxOC4xNDguOTIzLjM4MyJ9XSxbInBhdGgiLHtkOiJNNC4yIDE1LjFhNyA3IDAgMSAxIDkuOTMtOS44NThBNyA3IDAgMCAxIDE1LjcxIDhoMS43OWE0LjUgNC41IDAgMCAxIDIuNSA4LjIifV0sWyJwYXRoIix7ZDoibTkuMjI4IDE1Ljg1Mi0uOTIzLS4zODMifV0sWyJwYXRoIix7ZDoibTkuMjI4IDE4LjE0OC0uOTIzLjM4MyJ9XV0sa2I9W1sicGF0aCIse2Q6Ik0xMiAxM3Y4bC00LTQifV0sWyJwYXRoIix7ZDoibTEyIDIxIDQtNCJ9XSxbInBhdGgiLHtkOiJNNC4zOTMgMTUuMjY5QTcgNyAwIDEgMSAxNS43MSA4aDEuNzlhNC41IDQuNSAwIDAgMSAyLjQzNiA4LjI4NCJ9XV0sYzF0PVtbInBhdGgiLHtkOiJNNCAxNC44OTlBNyA3IDAgMSAxIDE1LjcxIDhoMS43OWE0LjUgNC41IDAgMCAxIDIuNSA4LjI0MiJ9XSxbInBhdGgiLHtkOiJNOCAxOXYxIn1dLFsicGF0aCIse2Q6Ik04IDE0djEifV0sWyJwYXRoIix7ZDoiTTE2IDE5djEifV0sWyJwYXRoIix7ZDoiTTE2IDE0djEifV0sWyJwYXRoIix7ZDoiTTEyIDIxdjEifV0sWyJwYXRoIix7ZDoiTTEyIDE2djEifV1dLGQxdD1bWyJwYXRoIix7ZDoiTTQgMTQuODk5QTcgNyAwIDEgMSAxNS43MSA4aDEuNzlhNC41IDQuNSAwIDAgMSAyLjUgOC4yNDIifV0sWyJwYXRoIix7ZDoiTTE2IDE3SDcifV0sWyJwYXRoIix7ZDoiTTE3IDIxSDkifV1dLGgxdD1bWyJwYXRoIix7ZDoiTTQgMTQuODk5QTcgNyAwIDEgMSAxNS43MSA4aDEuNzlhNC41IDQuNSAwIDAgMSAyLjUgOC4yNDIifV0sWyJwYXRoIix7ZDoiTTE2IDE0djIifV0sWyJwYXRoIix7ZDoiTTggMTR2MiJ9XSxbInBhdGgiLHtkOiJNMTYgMjBoLjAxIn1dLFsicGF0aCIse2Q6Ik04IDIwaC4wMSJ9XSxbInBhdGgiLHtkOiJNMTIgMTZ2MiJ9XSxbInBhdGgiLHtkOiJNMTIgMjJoLjAxIn1dXSxwMXQ9W1sicGF0aCIse2Q6Ik0xMSAyMHYyIn1dLFsicGF0aCIse2Q6Ik0xOC4zNzYgMTQuNTEyYTYgNiAwIDAgMCAzLjQ2MS00LjEyN2MuMTQ4LS42MjUtLjY1OS0uOTctMS4yNDgtLjcxNGE0IDQgMCAwIDEtNS4yNTktNS4yNmMuMjU1LS41ODktLjA5LTEuMzk1LS43MTYtMS4yNDhhNiA2IDAgMCAwLTQuNTk0IDUuMzYifV0sWyJwYXRoIix7ZDoiTTMgMjBhNSA1IDAgMSAxIDguOS00SDEzYTMgMyAwIDAgMSAyIDUuMjQifV0sWyJwYXRoIix7ZDoiTTcgMTl2MiJ9XV0sdTF0PVtbInBhdGgiLHtkOiJNNiAxNi4zMjZBNyA3IDAgMSAxIDE1LjcxIDhoMS43OWE0LjUgNC41IDAgMCAxIC41IDguOTczIn1dLFsicGF0aCIse2Q6Im0xMyAxMi0zIDVoNGwtMyA1In1dXSxmMXQ9W1sicGF0aCIse2Q6Ik0xMyAxNmEzIDMgMCAwIDEgMCA2SDdhNSA1IDAgMSAxIDQuOS02eiJ9XSxbInBhdGgiLHtkOiJNMTguMzc2IDE0LjUxMmE2IDYgMCAwIDAgMy40NjEtNC4xMjdjLjE0OC0uNjI1LS42NTktLjk3LTEuMjQ4LS43MTRhNCA0IDAgMCAxLTUuMjU5LTUuMjZjLjI1NS0uNTg5LS4wOS0xLjM5NS0uNzE2LTEuMjQ4YTYgNiAwIDAgMC00LjU5NCA1LjM2In1dXSxtMXQ9W1sicGF0aCIse2Q6Ik0xMC45NCA1LjI3NEE3IDcgMCAwIDEgMTUuNzEgMTBoMS43OWE0LjUgNC41IDAgMCAxIDQuMjIyIDYuMDU3In1dLFsicGF0aCIse2Q6Ik0xOC43OTYgMTguODFBNC41IDQuNSAwIDAgMSAxNy41IDE5SDlBNyA3IDAgMCAxIDUuNzkgNS43OCJ9XSxbInBhdGgiLHtkOiJtMiAyIDIwIDIwIn1dXSxnMXQ9W1sicGF0aCIse2Q6Ik00IDE0Ljg5OUE3IDcgMCAxIDEgMTUuNzEgOGgxLjc5YTQuNSA0LjUgMCAwIDEgMi41IDguMjQyIn1dLFsicGF0aCIse2Q6Im05LjIgMjIgMy03In1dLFsicGF0aCIse2Q6Im05IDEzLTMgNyJ9XSxbInBhdGgiLHtkOiJtMTcgMTMtMyA3In1dXSxiMXQ9W1sicGF0aCIse2Q6Ik00IDE0Ljg5OUE3IDcgMCAxIDEgMTUuNzEgOGgxLjc5YTQuNSA0LjUgMCAwIDEgMi41IDguMjQyIn1dLFsicGF0aCIse2Q6Ik0xNiAxNHY2In1dLFsicGF0aCIse2Q6Ik04IDE0djYifV0sWyJwYXRoIix7ZDoiTTEyIDE2djYifV1dLHYxdD1bWyJwYXRoIix7ZDoiTTQgMTQuODk5QTcgNyAwIDEgMSAxNS43MSA4aDEuNzlhNC41IDQuNSAwIDAgMSAyLjUgOC4yNDIifV0sWyJwYXRoIix7ZDoiTTggMTVoLjAxIn1dLFsicGF0aCIse2Q6Ik04IDE5aC4wMSJ9XSxbInBhdGgiLHtkOiJNMTIgMTdoLjAxIn1dLFsicGF0aCIse2Q6Ik0xMiAyMWguMDEifV0sWyJwYXRoIix7ZDoiTTE2IDE1aC4wMSJ9XSxbInBhdGgiLHtkOiJNMTYgMTloLjAxIn1dXSx5MXQ9W1sicGF0aCIse2Q6Ik0xMiAydjIifV0sWyJwYXRoIix7ZDoibTQuOTMgNC45MyAxLjQxIDEuNDEifV0sWyJwYXRoIix7ZDoiTTIwIDEyaDIifV0sWyJwYXRoIix7ZDoibTE5LjA3IDQuOTMtMS40MSAxLjQxIn1dLFsicGF0aCIse2Q6Ik0xNS45NDcgMTIuNjVhNCA0IDAgMCAwLTUuOTI1LTQuMTI4In1dLFsicGF0aCIse2Q6Ik0zIDIwYTUgNSAwIDEgMSA4LjktNEgxM2EzIDMgMCAwIDEgMiA1LjI0In1dLFsicGF0aCIse2Q6Ik0xMSAyMHYyIn1dLFsicGF0aCIse2Q6Ik03IDE5djIifV1dLHgxdD1bWyJwYXRoIix7ZDoiTTEyIDJ2MiJ9XSxbInBhdGgiLHtkOiJtNC45MyA0LjkzIDEuNDEgMS40MSJ9XSxbInBhdGgiLHtkOiJNMjAgMTJoMiJ9XSxbInBhdGgiLHtkOiJtMTkuMDcgNC45My0xLjQxIDEuNDEifV0sWyJwYXRoIix7ZDoiTTE1Ljk0NyAxMi42NWE0IDQgMCAwIDAtNS45MjUtNC4xMjgifV0sWyJwYXRoIix7ZDoiTTEzIDIySDdhNSA1IDAgMSAxIDQuOS02SDEzYTMgMyAwIDAgMSAwIDZaIn1dXSx3MXQ9W1sicGF0aCIse2Q6Im0xNyAxOC0xLjUzNSAxLjYwNWE1IDUgMCAwIDEtOC0xLjUifV0sWyJwYXRoIix7ZDoiTTE3IDIydi00aC00In1dLFsicGF0aCIse2Q6Ik0yMC45OTYgMTUuMjUxQTQuNSA0LjUgMCAwIDAgMTcuNDk1IDhoLTEuNzlhNyA3IDAgMSAwLTEyLjcwOSA1LjYwNyJ9XSxbInBhdGgiLHtkOiJNNyAxMHY0aDQifV0sWyJwYXRoIix7ZDoibTcgMTQgMS41MzUtMS42MDVhNSA1IDAgMCAxIDggMS41In1dXSxTYj1bWyJwYXRoIix7ZDoiTTEyIDEzdjgifV0sWyJwYXRoIix7ZDoiTTQgMTQuODk5QTcgNyAwIDEgMSAxNS43MSA4aDEuNzlhNC41IDQuNSAwIDAgMSAyLjUgOC4yNDIifV0sWyJwYXRoIix7ZDoibTggMTcgNC00IDQgNCJ9XV0sTTF0PVtbInBhdGgiLHtkOiJNMTcuNSAxOUg5YTcgNyAwIDEgMSA2LjcxLTloMS43OWE0LjUgNC41IDAgMSAxIDAgOVoifV1dLHoxdD1bWyJwYXRoIix7ZDoiTTE3LjUgMTJhMSAxIDAgMSAxIDAgOUg5LjAwNmE3IDcgMCAxIDEgNi43MDItOXoifV0sWyJwYXRoIix7ZDoiTTIxLjgzMiA5QTMgMyAwIDAgMCAxOSA3aC0yLjIwN2E1LjUgNS41IDAgMCAwLTEwLjcyLjYxIn1dXSxrMXQ9W1sicGF0aCIse2Q6Ik0xNi4xNyA3LjgzIDIgMjIifV0sWyJwYXRoIix7ZDoiTTQuMDIgMTJhMi44MjcgMi44MjcgMCAxIDEgMy44MS00LjE3QTIuODI3IDIuODI3IDAgMSAxIDEyIDQuMDJhMi44MjcgMi44MjcgMCAxIDEgNC4xNyAzLjgxQTIuODI3IDIuODI3IDAgMSAxIDE5Ljk4IDEyYTIuODI3IDIuODI3IDAgMSAxLTMuODEgNC4xN0EyLjgyNyAyLjgyNyAwIDEgMSAxMiAxOS45OGEyLjgyNyAyLjgyNyAwIDEgMS00LjE3LTMuODFBMSAxIDAgMSAxIDQgMTIifV0sWyJwYXRoIix7ZDoibTcuODMgNy44MyA4LjM0IDguMzQifV1dLFMxdD1bWyJwYXRoIix7ZDoiTTE3LjI4IDkuMDVhNS41IDUuNSAwIDEgMC0xMC41NiAwQTUuNSA1LjUgMCAxIDAgMTIgMTcuNjZhNS41IDUuNSAwIDEgMCA1LjI4LTguNloifV0sWyJwYXRoIix7ZDoiTTEyIDE3LjY2TDEyIDIyIn1dXSxDYj1bWyJwYXRoIix7ZDoibTE4IDE2IDQtNC00LTQifV0sWyJwYXRoIix7ZDoibTYgOC00IDQgNCA0In1dLFsicGF0aCIse2Q6Im0xNC41IDQtNSAxNiJ9XV0sQzF0PVtbInBhdGgiLHtkOiJtMTYgMTggNi02LTYtNiJ9XSxbInBhdGgiLHtkOiJtOCA2LTYgNiA2IDYifV1dLF8xdD1bWyJwb2x5Z29uIix7cG9pbnRzOiIxMiAyIDIyIDguNSAyMiAxNS41IDEyIDIyIDIgMTUuNSAyIDguNSAxMiAyIn1dLFsibGluZSIse3gxOiIxMiIseDI6IjEyIix5MToiMjIiLHkyOiIxNS41In1dLFsicG9seWxpbmUiLHtwb2ludHM6IjIyIDguNSAxMiAxNS41IDIgOC41In1dLFsicG9seWxpbmUiLHtwb2ludHM6IjIgMTUuNSAxMiA4LjUgMjIgMTUuNSJ9XSxbImxpbmUiLHt4MToiMTIiLHgyOiIxMiIseTE6IjIiLHkyOiI4LjUifV1dLFQxdD1bWyJwYXRoIix7ZDoiTTIxIDE2VjhhMiAyIDAgMCAwLTEtMS43M2wtNy00YTIgMiAwIDAgMC0yIDBsLTcgNEEyIDIgMCAwIDAgMyA4djhhMiAyIDAgMCAwIDEgMS43M2w3IDRhMiAyIDAgMCAwIDIgMGw3LTRBMiAyIDAgMCAwIDIxIDE2eiJ9XSxbInBvbHlsaW5lIix7cG9pbnRzOiI3LjUgNC4yMSAxMiA2LjgxIDE2LjUgNC4yMSJ9XSxbInBvbHlsaW5lIix7cG9pbnRzOiI3LjUgMTkuNzkgNy41IDE0LjYgMyAxMiJ9XSxbInBvbHlsaW5lIix7cG9pbnRzOiIyMSAxMiAxNi41IDE0LjYgMTYuNSAxOS43OSJ9XSxbInBvbHlsaW5lIix7cG9pbnRzOiIzLjI3IDYuOTYgMTIgMTIuMDEgMjAuNzMgNi45NiJ9XSxbImxpbmUiLHt4MToiMTIiLHgyOiIxMiIseTE6IjIyLjA4Iix5MjoiMTIifV1dLEwxdD1bWyJwYXRoIix7ZDoiTTEwIDJ2MiJ9XSxbInBhdGgiLHtkOiJNMTQgMnYyIn1dLFsicGF0aCIse2Q6Ik0xNiA4YTEgMSAwIDAgMSAxIDF2OGE0IDQgMCAwIDEtNCA0SDdhNCA0IDAgMCAxLTQtNFY5YTEgMSAwIDAgMSAxLTFoMTRhNCA0IDAgMSAxIDAgOGgtMSJ9XSxbInBhdGgiLHtkOiJNNiAydjIifV1dLCQxdD1bWyJwYXRoIix7ZDoiTTExIDEwLjI3IDcgMy4zNCJ9XSxbInBhdGgiLHtkOiJtMTEgMTMuNzMtNCA2LjkzIn1dLFsicGF0aCIse2Q6Ik0xMiAyMnYtMiJ9XSxbInBhdGgiLHtkOiJNMTIgMnYyIn1dLFsicGF0aCIse2Q6Ik0xNCAxMmg4In1dLFsicGF0aCIse2Q6Im0xNyAyMC42Ni0xLTEuNzMifV0sWyJwYXRoIix7ZDoibTE3IDMuMzQtMSAxLjczIn1dLFsicGF0aCIse2Q6Ik0yIDEyaDIifV0sWyJwYXRoIix7ZDoibTIwLjY2IDE3LTEuNzMtMSJ9XSxbInBhdGgiLHtkOiJtMjAuNjYgNy0xLjczIDEifV0sWyJwYXRoIix7ZDoibTMuMzQgMTcgMS43My0xIn1dLFsicGF0aCIse2Q6Im0zLjM0IDcgMS43MyAxIn1dLFsiY2lyY2xlIix7Y3g6IjEyIixjeToiMTIiLHI6IjIifV0sWyJjaXJjbGUiLHtjeDoiMTIiLGN5OiIxMiIscjoiOCJ9XV0sQTF0PVtbImNpcmNsZSIse2N4OiI4IixjeToiOCIscjoiNiJ9XSxbInBhdGgiLHtkOiJNMTguMDkgMTAuMzdBNiA2IDAgMSAxIDEwLjM0IDE4In1dLFsicGF0aCIse2Q6Ik03IDZoMXY0In1dLFsicGF0aCIse2Q6Im0xNi43MSAxMy44OC43LjcxLTIuODIgMi44MiJ9XV0sX2I9W1sicmVjdCIse3dpZHRoOiIxOCIsaGVpZ2h0OiIxOCIseDoiMyIseToiMyIscng6IjIifV0sWyJwYXRoIix7ZDoiTTEyIDN2MTgifV1dLGJsPVtbInBhdGgiLHtkOiJNMTAuNSAyMUg1YTIgMiAwIDAgMS0yLTJWNWEyIDIgMCAwIDEgMi0yaDE0YTIgMiAwIDAgMSAyIDJ2NS41In1dLFsicGF0aCIse2Q6Im0xNC4zIDE5LjYgMS0uNCJ9XSxbInBhdGgiLHtkOiJNMTUgM3Y3LjUifV0sWyJwYXRoIix7ZDoibTE1LjIgMTYuOS0uOS0uMyJ9XSxbInBhdGgiLHtkOiJtMTYuNiAyMS43LjMtLjkifV0sWyJwYXRoIix7ZDoibTE2LjggMTUuMy0uNC0xIn1dLFsicGF0aCIse2Q6Im0xOS4xIDE1LjIuMy0uOSJ9XSxbInBhdGgiLHtkOiJtMTkuNiAyMS43LS40LTEifV0sWyJwYXRoIix7ZDoibTIwLjcgMTYuOCAxLS40In1dLFsicGF0aCIse2Q6Im0yMS43IDE5LjQtLjktLjMifV0sWyJwYXRoIix7ZDoiTTkgM3YxOCJ9XSxbImNpcmNsZSIse2N4OiIxOCIsY3k6IjE4IixyOiIzIn1dXSxUYj1bWyJyZWN0Iix7d2lkdGg6IjE4IixoZWlnaHQ6IjE4Iix4OiIzIix5OiIzIixyeDoiMiJ9XSxbInBhdGgiLHtkOiJNOSAzdjE4In1dLFsicGF0aCIse2Q6Ik0xNSAzdjE4In1dXSxEMXQ9W1sicmVjdCIse3dpZHRoOiIxOCIsaGVpZ2h0OiIxOCIseDoiMyIseToiMyIscng6IjIifV0sWyJwYXRoIix7ZDoiTTcuNSAzdjE4In1dLFsicGF0aCIse2Q6Ik0xMiAzdjE4In1dLFsicGF0aCIse2Q6Ik0xNi41IDN2MTgifV1dLEUxdD1bWyJwYXRoIix7ZDoiTTE0IDNhMSAxIDAgMCAxIDEgMXY1YTEgMSAwIDAgMS0xIDEifV0sWyJwYXRoIix7ZDoiTTE5IDNhMSAxIDAgMCAxIDEgMXY1YTEgMSAwIDAgMS0xIDEifV0sWyJwYXRoIix7ZDoibTcgMTUgMyAzIn1dLFsicGF0aCIse2Q6Im03IDIxIDMtM0g1YTIgMiAwIDAgMS0yLTJ2LTIifV0sWyJyZWN0Iix7eDoiMTQiLHk6IjE0Iix3aWR0aDoiNyIsaGVpZ2h0OiI3IixyeDoiMSJ9XSxbInJlY3QiLHt4OiIzIix5OiIzIix3aWR0aDoiNyIsaGVpZ2h0OiI3IixyeDoiMSJ9XV0sUDF0PVtbInBhdGgiLHtkOiJNMTUgNnYxMmEzIDMgMCAxIDAgMy0zSDZhMyAzIDAgMSAwIDMgM1Y2YTMgMyAwIDEgMC0zIDNoMTJhMyAzIDAgMSAwLTMtMyJ9XV0sSTF0PVtbInBhdGgiLHtkOiJtMTYuMjQgNy43Ni0xLjgwNCA1LjQxMWEyIDIgMCAwIDEtMS4yNjUgMS4yNjVMNy43NiAxNi4yNGwxLjgwNC01LjQxMWEyIDIgMCAwIDEgMS4yNjUtMS4yNjV6In1dLFsiY2lyY2xlIix7Y3g6IjEyIixjeToiMTIiLHI6IjEwIn1dXSxOMXQ9W1sicGF0aCIse2Q6Ik0xNS41MzYgMTEuMjkzYTEgMSAwIDAgMCAwIDEuNDE0bDIuMzc2IDIuMzc3YTEgMSAwIDAgMCAxLjQxNCAwbDIuMzc3LTIuMzc3YTEgMSAwIDAgMCAwLTEuNDE0bC0yLjM3Ny0yLjM3N2ExIDEgMCAwIDAtMS40MTQgMHoifV0sWyJwYXRoIix7ZDoiTTIuMjk3IDExLjI5M2ExIDEgMCAwIDAgMCAxLjQxNGwyLjM3NyAyLjM3N2ExIDEgMCAwIDAgMS40MTQgMGwyLjM3Ny0yLjM3N2ExIDEgMCAwIDAgMC0xLjQxNEw2LjA4OCA4LjkxNmExIDEgMCAwIDAtMS40MTQgMHoifV0sWyJwYXRoIix7ZDoiTTguOTE2IDE3LjkxMmExIDEgMCAwIDAgMCAxLjQxNWwyLjM3NyAyLjM3NmExIDEgMCAwIDAgMS40MTQgMGwyLjM3Ny0yLjM3NmExIDEgMCAwIDAgMC0xLjQxNWwtMi4zNzctMi4zNzZhMSAxIDAgMCAwLTEuNDE0IDB6In1dLFsicGF0aCIse2Q6Ik04LjkxNiA0LjY3NGExIDEgMCAwIDAgMCAxLjQxNGwyLjM3NyAyLjM3NmExIDEgMCAwIDAgMS40MTQgMGwyLjM3Ny0yLjM3NmExIDEgMCAwIDAgMC0xLjQxNGwtMi4zNzctMi4zNzdhMSAxIDAgMCAwLTEuNDE0IDB6In1dXSxGMXQ9W1sicmVjdCIse3dpZHRoOiIxNCIsaGVpZ2h0OiI4Iix4OiI1Iix5OiIyIixyeDoiMiJ9XSxbInJlY3QiLHt3aWR0aDoiMjAiLGhlaWdodDoiOCIseDoiMiIseToiMTQiLHJ4OiIyIn1dLFsicGF0aCIse2Q6Ik02IDE4aDIifV0sWyJwYXRoIix7ZDoiTTEyIDE4aDYifV1dLE8xdD1bWyJwYXRoIix7ZDoiTTMgMjBhMSAxIDAgMCAxLTEtMXYtMWEyIDIgMCAwIDEgMi0yaDE2YTIgMiAwIDAgMSAyIDJ2MWExIDEgMCAwIDEtMSAxWiJ9XSxbInBhdGgiLHtkOiJNMjAgMTZhOCA4IDAgMSAwLTE2IDAifV0sWyJwYXRoIix7ZDoiTTEyIDR2NCJ9XSxbInBhdGgiLHtkOiJNMTAgNGg0In1dXSxSMXQ9W1sicGF0aCIse2Q6Im0yMC45IDE4LjU1LTgtMTUuOThhMSAxIDAgMCAwLTEuOCAwbC04IDE1Ljk4In1dLFsiZWxsaXBzZSIse2N4OiIxMiIsY3k6IjE5IixyeDoiOSIscnk6IjMifV1dLExiPVtbInBhdGgiLHtkOiJNMTYgMnYyIn1dLFsicGF0aCIse2Q6Ik0xNy45MTUgMjJhNiA2IDAgMCAwLTEyIDAifV0sWyJwYXRoIix7ZDoiTTggMnYyIn1dLFsiY2lyY2xlIix7Y3g6IjEyIixjeToiMTIiLHI6IjQifV0sWyJyZWN0Iix7eDoiMyIseToiNCIsd2lkdGg6IjE4IixoZWlnaHQ6IjE4IixyeDoiMiJ9XV0sQjF0PVtbInJlY3QiLHt4OiIyIix5OiI2Iix3aWR0aDoiMjAiLGhlaWdodDoiOCIscng6IjEifV0sWyJwYXRoIix7ZDoiTTE3IDE0djcifV0sWyJwYXRoIix7ZDoiTTcgMTR2NyJ9XSxbInBhdGgiLHtkOiJNMTcgM3YzIn1dLFsicGF0aCIse2Q6Ik03IDN2MyJ9XSxbInBhdGgiLHtkOiJNMTAgMTQgMi4zIDYuMyJ9XSxbInBhdGgiLHtkOiJtMTQgNiA3LjcgNy43In1dLFsicGF0aCIse2Q6Im04IDYgOCA4In1dXSxIMXQ9W1sicGF0aCIse2Q6Ik0xNiAydjIifV0sWyJwYXRoIix7ZDoiTTcgMjJ2LTJhMiAyIDAgMCAxIDItMmg2YTIgMiAwIDAgMSAyIDJ2MiJ9XSxbInBhdGgiLHtkOiJNOCAydjIifV0sWyJjaXJjbGUiLHtjeDoiMTIiLGN5OiIxMSIscjoiMyJ9XSxbInJlY3QiLHt4OiIzIix5OiI0Iix3aWR0aDoiMTgiLGhlaWdodDoiMTgiLHJ4OiIyIn1dXSxxMXQ9W1sicGF0aCIse2Q6Ik0yMiA3LjdjMC0uNi0uNC0xLjItLjgtMS41bC02LjMtMy45YTEuNzIgMS43MiAwIDAgMC0xLjcgMGwtMTAuMyA2Yy0uNS4yLS45LjgtLjkgMS40djYuNmMwIC41LjQgMS4yLjggMS41bDYuMyAzLjlhMS43MiAxLjcyIDAgMCAwIDEuNyAwbDEwLjMtNmMuNS0uMy45LTEgLjktMS41WiJ9XSxbInBhdGgiLHtkOiJNMTAgMjEuOVYxNEwyLjEgOS4xIn1dLFsicGF0aCIse2Q6Im0xMCAxNCAxMS45LTYuOSJ9XSxbInBhdGgiLHtkOiJNMTQgMTkuOHYtOC4xIn1dLFsicGF0aCIse2Q6Ik0xOCAxNy41VjkuNCJ9XV0sVjF0PVtbInBhdGgiLHtkOiJNMTIgMmExMCAxMCAwIDEgMCAxMCAxMCA0IDQgMCAwIDEtNS01IDQgNCAwIDAgMS01LTUifV0sWyJwYXRoIix7ZDoiTTguNSA4LjV2LjAxIn1dLFsicGF0aCIse2Q6Ik0xNiAxNS41di4wMSJ9XSxbInBhdGgiLHtkOiJNMTIgMTJ2LjAxIn1dLFsicGF0aCIse2Q6Ik0xMSAxN3YuMDEifV0sWyJwYXRoIix7ZDoiTTcgMTR2LjAxIn1dXSxqMXQ9W1siY2lyY2xlIix7Y3g6IjEyIixjeToiMTIiLHI6IjEwIn1dLFsicGF0aCIse2Q6Ik0xMiAxOGE2IDYgMCAwIDAgMC0xMnYxMnoifV1dLFUxdD1bWyJwYXRoIix7ZDoiTTIgMTJoMjAifV0sWyJwYXRoIix7ZDoiTTIwIDEydjhhMiAyIDAgMCAxLTIgMkg2YTIgMiAwIDAgMS0yLTJ2LTgifV0sWyJwYXRoIix7ZDoibTQgOCAxNi00In1dLFsicGF0aCIse2Q6Im04Ljg2IDYuNzgtLjQ1LTEuODFhMiAyIDAgMCAxIDEuNDUtMi40M2wxLjk0LS40OGEyIDIgMCAwIDEgMi40MyAxLjQ2bC40NSAxLjgifV1dLFcxdD1bWyJwYXRoIix7ZDoibTEyIDE1IDIgMiA0LTQifV0sWyJyZWN0Iix7d2lkdGg6IjE0IixoZWlnaHQ6IjE0Iix4OiI4Iix5OiI4IixyeDoiMiIscnk6IjIifV0sWyJwYXRoIix7ZDoiTTQgMTZjLTEuMSAwLTItLjktMi0yVjRjMC0xLjEuOS0yIDItMmgxMGMxLjEgMCAyIC45IDIgMiJ9XV0sRzF0PVtbImxpbmUiLHt4MToiMTIiLHgyOiIxOCIseTE6IjE1Iix5MjoiMTUifV0sWyJyZWN0Iix7d2lkdGg6IjE0IixoZWlnaHQ6IjE0Iix4OiI4Iix5OiI4IixyeDoiMiIscnk6IjIifV0sWyJwYXRoIix7ZDoiTTQgMTZjLTEuMSAwLTItLjktMi0yVjRjMC0xLjEuOS0yIDItMmgxMGMxLjEgMCAyIC45IDIgMiJ9XV0sWTF0PVtbImxpbmUiLHt4MToiMTUiLHgyOiIxNSIseTE6IjEyIix5MjoiMTgifV0sWyJsaW5lIix7eDE6IjEyIix4MjoiMTgiLHkxOiIxNSIseTI6IjE1In1dLFsicmVjdCIse3dpZHRoOiIxNCIsaGVpZ2h0OiIxNCIseDoiOCIseToiOCIscng6IjIiLHJ5OiIyIn1dLFsicGF0aCIse2Q6Ik00IDE2Yy0xLjEgMC0yLS45LTItMlY0YzAtMS4xLjktMiAyLTJoMTBjMS4xIDAgMiAuOSAyIDIifV1dLFoxdD1bWyJsaW5lIix7eDE6IjEyIix4MjoiMTgiLHkxOiIxOCIseTI6IjEyIn1dLFsicmVjdCIse3dpZHRoOiIxNCIsaGVpZ2h0OiIxNCIseDoiOCIseToiOCIscng6IjIiLHJ5OiIyIn1dLFsicGF0aCIse2Q6Ik00IDE2Yy0xLjEgMC0yLS45LTItMlY0YzAtMS4xLjktMiAyLTJoMTBjMS4xIDAgMiAuOSAyIDIifV1dLFgxdD1bWyJsaW5lIix7eDE6IjEyIix4MjoiMTgiLHkxOiIxMiIseTI6IjE4In1dLFsibGluZSIse3gxOiIxMiIseDI6IjE4Iix5MToiMTgiLHkyOiIxMiJ9XSxbInJlY3QiLHt3aWR0aDoiMTQiLGhlaWdodDoiMTQiLHg6IjgiLHk6IjgiLHJ4OiIyIixyeToiMiJ9XSxbInBhdGgiLHtkOiJNNCAxNmMtMS4xIDAtMi0uOS0yLTJWNGMwLTEuMS45LTIgMi0yaDEwYzEuMSAwIDIgLjkgMiAyIn1dXSxLMXQ9W1sicmVjdCIse3dpZHRoOiIxNCIsaGVpZ2h0OiIxNCIseDoiOCIseToiOCIscng6IjIiLHJ5OiIyIn1dLFsicGF0aCIse2Q6Ik00IDE2Yy0xLjEgMC0yLS45LTItMlY0YzAtMS4xLjktMiAyLTJoMTBjMS4xIDAgMiAuOSAyIDIifV1dLFExdD1bWyJjaXJjbGUiLHtjeDoiMTIiLGN5OiIxMiIscjoiMTAifV0sWyJwYXRoIix7ZDoiTTkuMTcgMTQuODNhNCA0IDAgMSAwIDAtNS42NiJ9XV0sSjF0PVtbImNpcmNsZSIse2N4OiIxMiIsY3k6IjEyIixyOiIxMCJ9XSxbInBhdGgiLHtkOiJNMTQuODMgMTQuODNhNCA0IDAgMSAxIDAtNS42NiJ9XV0sZTJ0PVtbInBhdGgiLHtkOiJNMjAgNHY3YTQgNCAwIDAgMS00IDRINCJ9XSxbInBhdGgiLHtkOiJtOSAxMC01IDUgNSA1In1dXSx0MnQ9W1sicGF0aCIse2Q6Im0xNSAxMCA1IDUtNSA1In1dLFsicGF0aCIse2Q6Ik00IDR2N2E0IDQgMCAwIDAgNCA0aDEyIn1dXSxhMnQ9W1sicGF0aCIse2Q6Im0xNCAxNS01IDUtNS01In1dLFsicGF0aCIse2Q6Ik0yMCA0aC03YTQgNCAwIDAgMC00IDR2MTIifV1dLGkydD1bWyJwYXRoIix7ZDoiTTE0IDkgOSA0IDQgOSJ9XSxbInBhdGgiLHtkOiJNMjAgMjBoLTdhNCA0IDAgMCAxLTQtNFY0In1dXSxyMnQ9W1sicGF0aCIse2Q6Im0xMCAxNSA1IDUgNS01In1dLFsicGF0aCIse2Q6Ik00IDRoN2E0IDQgMCAwIDEgNCA0djEyIn1dXSxzMnQ9W1sicGF0aCIse2Q6Im0xMCA5IDUtNSA1IDUifV0sWyJwYXRoIix7ZDoiTTQgMjBoN2E0IDQgMCAwIDAgNC00VjQifV1dLG4ydD1bWyJwYXRoIix7ZDoiTTIwIDIwdi03YTQgNCAwIDAgMC00LTRINCJ9XSxbInBhdGgiLHtkOiJNOSAxNCA0IDlsNS01In1dXSxvMnQ9W1sicGF0aCIse2Q6Im0xNSAxNCA1LTUtNS01In1dLFsicGF0aCIse2Q6Ik00IDIwdi03YTQgNCAwIDAgMSA0LTRoMTIifV1dLGwydD1bWyJwYXRoIix7ZDoiTTEyIDIwdjIifV0sWyJwYXRoIix7ZDoiTTEyIDJ2MiJ9XSxbInBhdGgiLHtkOiJNMTcgMjB2MiJ9XSxbInBhdGgiLHtkOiJNMTcgMnYyIn1dLFsicGF0aCIse2Q6Ik0yIDEyaDIifV0sWyJwYXRoIix7ZDoiTTIgMTdoMiJ9XSxbInBhdGgiLHtkOiJNMiA3aDIifV0sWyJwYXRoIix7ZDoiTTIwIDEyaDIifV0sWyJwYXRoIix7ZDoiTTIwIDE3aDIifV0sWyJwYXRoIix7ZDoiTTIwIDdoMiJ9XSxbInBhdGgiLHtkOiJNNyAyMHYyIn1dLFsicGF0aCIse2Q6Ik03IDJ2MiJ9XSxbInJlY3QiLHt4OiI0Iix5OiI0Iix3aWR0aDoiMTYiLGhlaWdodDoiMTYiLHJ4OiIyIn1dLFsicmVjdCIse3g6IjgiLHk6IjgiLHdpZHRoOiI4IixoZWlnaHQ6IjgiLHJ4OiIxIn1dXSxjMnQ9W1siY2lyY2xlIix7Y3g6IjEyIixjeToiMTIiLHI6IjEwIn1dLFsicGF0aCIse2Q6Ik0xMCA5LjNhMi44IDIuOCAwIDAgMC0zLjUgMSAzLjEgMy4xIDAgMCAwIDAgMy40IDIuNyAyLjcgMCAwIDAgMy41IDEifV0sWyJwYXRoIix7ZDoiTTE3IDkuM2EyLjggMi44IDAgMCAwLTMuNSAxIDMuMSAzLjEgMCAwIDAgMCAzLjQgMi43IDIuNyAwIDAgMCAzLjUgMSJ9XV0sZDJ0PVtbInJlY3QiLHt3aWR0aDoiMjAiLGhlaWdodDoiMTQiLHg6IjIiLHk6IjUiLHJ4OiIyIn1dLFsibGluZSIse3gxOiIyIix4MjoiMjIiLHkxOiIxMCIseTI6IjEwIn1dXSxoMnQ9W1sicGF0aCIse2Q6Ik0xMC4yIDE4SDQuNzc0YTEuNSAxLjUgMCAwIDEtMS4zNTItLjk3IDExIDExIDAgMCAxIC4xMzItNi40ODcifV0sWyJwYXRoIix7ZDoiTTE4IDEwLjJWNC43NzRhMS41IDEuNSAwIDAgMC0uOTctMS4zNTIgMTEgMTEgMCAwIDAtNi40ODYuMTMyIn1dLFsicGF0aCIse2Q6Ik0xOCA1YTQgMyAwIDAgMSA0IDMgMiAyIDAgMCAxLTIgMiAxMCAxMCAwIDAgMC01LjEzOSAxLjQyIn1dLFsicGF0aCIse2Q6Ik01IDE4YTMgNCAwIDAgMCAzIDQgMiAyIDAgMCAwIDItMiAxMCAxMCAwIDAgMSAxLjQyLTUuMTQifV0sWyJwYXRoIix7ZDoiTTguNzA5IDIuNTU0YTEwIDEwIDAgMCAwLTYuMTU1IDYuMTU1IDEuNSAxLjUgMCAwIDAgLjY3NiAxLjYyNmw5LjgwNyA1LjQyYTIgMiAwIDAgMCAyLjcxOC0yLjcxOGwtNS40Mi05LjgwN2ExLjUgMS41IDAgMCAwLTEuNjI2LS42NzYifV1dLHAydD1bWyJwYXRoIix7ZDoiTTYgMnYxNGEyIDIgMCAwIDAgMiAyaDE0In1dLFsicGF0aCIse2Q6Ik0xOCAyMlY4YTIgMiAwIDAgMC0yLTJIMiJ9XV0sdTJ0PVtbInBhdGgiLHtkOiJNNCA5YTIgMiAwIDAgMC0yIDJ2MmEyIDIgMCAwIDAgMiAyaDRhMSAxIDAgMCAxIDEgMXY0YTIgMiAwIDAgMCAyIDJoMmEyIDIgMCAwIDAgMi0ydi00YTEgMSAwIDAgMSAxLTFoNGEyIDIgMCAwIDAgMi0ydi0yYTIgMiAwIDAgMC0yLTJoLTRhMSAxIDAgMCAxLTEtMVY0YTIgMiAwIDAgMC0yLTJoLTJhMiAyIDAgMCAwLTIgMnY0YTEgMSAwIDAgMS0xIDF6In1dXSxmMnQ9W1siY2lyY2xlIix7Y3g6IjEyIixjeToiMTIiLHI6IjEwIn1dLFsibGluZSIse3gxOiIyMiIseDI6IjE4Iix5MToiMTIiLHkyOiIxMiJ9XSxbImxpbmUiLHt4MToiNiIseDI6IjIiLHkxOiIxMiIseTI6IjEyIn1dLFsibGluZSIse3gxOiIxMiIseDI6IjEyIix5MToiNiIseTI6IjIifV0sWyJsaW5lIix7eDE6IjEyIix4MjoiMTIiLHkxOiIyMiIseTI6IjE4In1dXSxtMnQ9W1sicGF0aCIse2Q6Ik0xMS41NjIgMy4yNjZhLjUuNSAwIDAgMSAuODc2IDBMMTUuMzkgOC44N2ExIDEgMCAwIDAgMS41MTYuMjk0TDIxLjE4MyA1LjVhLjUuNSAwIDAgMSAuNzk4LjUxOWwtMi44MzQgMTAuMjQ2YTEgMSAwIDAgMS0uOTU2LjczNEg1LjgxYTEgMSAwIDAgMS0uOTU3LS43MzRMMi4wMiA2LjAyYS41LjUgMCAwIDEgLjc5OC0uNTE5bDQuMjc2IDMuNjY0YTEgMSAwIDAgMCAxLjUxNi0uMjk0eiJ9XSxbInBhdGgiLHtkOiJNNSAyMWgxNCJ9XV0sZzJ0PVtbInBhdGgiLHtkOiJtMjEuMTIgNi40LTYuMDUtNC4wNmEyIDIgMCAwIDAtMi4xNy0uMDVMMi45NSA4LjQxYTIgMiAwIDAgMC0uOTUgMS43djUuODJhMiAyIDAgMCAwIC44OCAxLjY2bDYuMDUgNC4wN2EyIDIgMCAwIDAgMi4xNy4wNWw5Ljk1LTYuMTJhMiAyIDAgMCAwIC45NS0xLjdWOC4wNmEyIDIgMCAwIDAtLjg4LTEuNjZaIn1dLFsicGF0aCIse2Q6Ik0xMCAyMnYtOEwyLjI1IDkuMTUifV0sWyJwYXRoIix7ZDoibTEwIDE0IDExLjc3LTYuODcifV1dLGIydD1bWyJwYXRoIix7ZDoibTYgOCAxLjc1IDEyLjI4YTIgMiAwIDAgMCAyIDEuNzJoNC41NGEyIDIgMCAwIDAgMi0xLjcyTDE4IDgifV0sWyJwYXRoIix7ZDoiTTUgOGgxNCJ9XSxbInBhdGgiLHtkOiJNNyAxNWE2LjQ3IDYuNDcgMCAwIDEgNSAwIDYuNDcgNi40NyAwIDAgMCA1IDAifV0sWyJwYXRoIix7ZDoibTEyIDggMS02aDIifV1dLHYydD1bWyJlbGxpcHNlIix7Y3g6IjEyIixjeToiNSIscng6IjkiLHJ5OiIzIn1dLFsicGF0aCIse2Q6Ik0zIDV2MTRhOSAzIDAgMCAwIDE4IDBWNSJ9XV0seTJ0PVtbImNpcmNsZSIse2N4OiIxMiIsY3k6IjEyIixyOiI4In1dLFsibGluZSIse3gxOiIzIix4MjoiNiIseTE6IjMiLHkyOiI2In1dLFsibGluZSIse3gxOiIyMSIseDI6IjE4Iix5MToiMyIseTI6IjYifV0sWyJsaW5lIix7eDE6IjMiLHgyOiI2Iix5MToiMjEiLHkyOiIxOCJ9XSxbImxpbmUiLHt4MToiMjEiLHgyOiIxOCIseTE6IjIxIix5MjoiMTgifV1dLHgydD1bWyJlbGxpcHNlIix7Y3g6IjEyIixjeToiNSIscng6IjkiLHJ5OiIzIn1dLFsicGF0aCIse2Q6Ik0zIDEyYTkgMyAwIDAgMCA1IDIuNjkifV0sWyJwYXRoIix7ZDoiTTIxIDkuM1Y1In1dLFsicGF0aCIse2Q6Ik0zIDV2MTRhOSAzIDAgMCAwIDYuNDcgMi44OCJ9XSxbInBhdGgiLHtkOiJNMTIgMTJ2NGg0In1dLFsicGF0aCIse2Q6Ik0xMyAyMGE1IDUgMCAwIDAgOS0zIDQuNSA0LjUgMCAwIDAtNC41LTQuNWMtMS4zMyAwLTIuNTQuNTQtMy40MSAxLjQxTDEyIDE2In1dXSx3MnQ9W1sicGF0aCIse2Q6Ik0xMSAxMS4zMWMxLjE3LjU2IDEuNTQgMS42OSAzLjUgMS42OSAyLjUgMCAyLjUtMiA1LTIgMS4zIDAgMS45LjUgMi41IDEifV0sWyJwYXRoIix7ZDoiTTExLjc1IDE4Yy4zNS41IDEuNDUgMSAyLjc1IDEgMi41IDAgMi41LTIgNS0yIDEuMyAwIDEuOS41IDIuNSAxIn1dLFsicGF0aCIse2Q6Ik0yIDEwaDQifV0sWyJwYXRoIix7ZDoiTTIgMTRoNCJ9XSxbInBhdGgiLHtkOiJNMiAxOGg0In1dLFsicGF0aCIse2Q6Ik0yIDZoNCJ9XSxbInBhdGgiLHtkOiJNNyAzYTEgMSAwIDAgMC0xIDF2MTZhMSAxIDAgMCAwIDEgMWg0YTEgMSAwIDAgMCAxLTFMMTAgNGExIDEgMCAwIDAtMS0xeiJ9XV0sTTJ0PVtbInBhdGgiLHtkOiJNMjEgMTEuNjkzVjUifV0sWyJwYXRoIix7ZDoibTIyIDIyLTEuODc1LTEuODc1In1dLFsicGF0aCIse2Q6Ik0zIDEyYTkgMyAwIDAgMCA4LjY5NyAyLjk5OCJ9XSxbInBhdGgiLHtkOiJNMyA1djE0YTkgMyAwIDAgMCA5LjI4IDIuOTk5In1dLFsiY2lyY2xlIix7Y3g6IjE4IixjeToiMTgiLHI6IjMifV0sWyJlbGxpcHNlIix7Y3g6IjEyIixjeToiNSIscng6IjkiLHJ5OiIzIn1dXSx6MnQ9W1siZWxsaXBzZSIse2N4OiIxMiIsY3k6IjUiLHJ4OiI5IixyeToiMyJ9XSxbInBhdGgiLHtkOiJNMyA1VjE5QTkgMyAwIDAgMCAxNSAyMS44NCJ9XSxbInBhdGgiLHtkOiJNMjEgNVY4In1dLFsicGF0aCIse2Q6Ik0yMSAxMkwxOCAxN0gyMkwxOSAyMiJ9XSxbInBhdGgiLHtkOiJNMyAxMkE5IDMgMCAwIDAgMTQuNTkgMTQuODcifV1dLGsydD1bWyJlbGxpcHNlIix7Y3g6IjEyIixjeToiNSIscng6IjkiLHJ5OiIzIn1dLFsicGF0aCIse2Q6Ik0zIDVWMTlBOSAzIDAgMCAwIDIxIDE5VjUifV0sWyJwYXRoIix7ZDoiTTMgMTJBOSAzIDAgMCAwIDIxIDEyIn1dXSxTMnQ9W1sicGF0aCIse2Q6Im0xMyAyMS0zLTMgMy0zIn1dLFsicGF0aCIse2Q6Ik0yMCAxOEgxMCJ9XSxbInBhdGgiLHtkOiJNMyAxMWguMDEifV0sWyJyZWN0Iix7eDoiNiIseToiMyIsd2lkdGg6IjUiLGhlaWdodDoiOCIscng6IjIuNSJ9XV0sQzJ0PVtbInBhdGgiLHtkOiJNMTAgMThoMTAifV0sWyJwYXRoIix7ZDoibTE3IDIxIDMtMy0zLTMifV0sWyJwYXRoIix7ZDoiTTMgMTFoLjAxIn1dLFsicmVjdCIse3g6IjE1Iix5OiIzIix3aWR0aDoiNSIsaGVpZ2h0OiI4IixyeDoiMi41In1dLFsicmVjdCIse3g6IjYiLHk6IjMiLHdpZHRoOiI1IixoZWlnaHQ6IjgiLHJ4OiIyLjUifV1dLF8ydD1bWyJwYXRoIix7ZDoiTTEwIDVhMiAyIDAgMCAwLTEuMzQ0LjUxOWwtNi4zMjggNS43NGExIDEgMCAwIDAgMCAxLjQ4MWw2LjMyOCA1Ljc0MUEyIDIgMCAwIDAgMTAgMTloMTBhMiAyIDAgMCAwIDItMlY3YTIgMiAwIDAgMC0yLTJ6In1dLFsicGF0aCIse2Q6Im0xMiA5IDYgNiJ9XSxbInBhdGgiLHtkOiJtMTggOS02IDYifV1dLFQydD1bWyJwYXRoIix7ZDoiTTEwLjE2MiAzLjE2N0ExMCAxMCAwIDAgMCAyIDEzYTIgMiAwIDAgMCA0IDB2LTFhMiAyIDAgMCAxIDQgMHY0YTIgMiAwIDAgMCA0IDB2LTRhMiAyIDAgMCAxIDQgMHYxYTIgMiAwIDAgMCA0LS4wMDYgMTAgMTAgMCAwIDAtOC4xNjEtOS44MjYifV0sWyJwYXRoIix7ZDoiTTIwLjgwNCAxNC44NjlhOSA5IDAgMCAxLTE3LjYwOCAwIn1dLFsiY2lyY2xlIix7Y3g6IjEyIixjeToiNCIscjoiMiJ9XV0sTDJ0PVtbImNpcmNsZSIse2N4OiIxOSIsY3k6IjE5IixyOiIyIn1dLFsiY2lyY2xlIix7Y3g6IjUiLGN5OiI1IixyOiIyIn1dLFsicGF0aCIse2Q6Ik02LjQ4IDMuNjZhMTAgMTAgMCAwIDEgMTMuODYgMTMuODYifV0sWyJwYXRoIix7ZDoibTYuNDEgNi40MSAxMS4xOCAxMS4xOCJ9XSxbInBhdGgiLHtkOiJNMy42NiA2LjQ4YTEwIDEwIDAgMCAwIDEzLjg2IDEzLjg2In1dXSwkMnQ9W1sicGF0aCIse2Q6Ik0yLjcgMTAuM2EyLjQxIDIuNDEgMCAwIDAgMCAzLjQxbDcuNTkgNy41OWEyLjQxIDIuNDEgMCAwIDAgMy40MSAwbDcuNTktNy41OWEyLjQxIDIuNDEgMCAwIDAgMC0zLjQxTDEzLjcgMi43MWEyLjQxIDIuNDEgMCAwIDAtMy40MSAweiJ9XSxbInBhdGgiLHtkOiJNOCAxMmg4In1dXSwkYj1bWyJwYXRoIix7ZDoiTTIuNyAxMC4zYTIuNDEgMi40MSAwIDAgMCAwIDMuNDFsNy41OSA3LjU5YTIuNDEgMi40MSAwIDAgMCAzLjQxIDBsNy41OS03LjU5YTIuNDEgMi40MSAwIDAgMCAwLTMuNDFMMTMuNyAyLjcxYTIuNDEgMi40MSAwIDAgMC0zLjQxIDBaIn1dLFsicGF0aCIse2Q6Ik05LjIgOS4yaC4wMSJ9XSxbInBhdGgiLHtkOiJtMTQuNSA5LjUtNSA1In1dLFsicGF0aCIse2Q6Ik0xNC43IDE0LjhoLjAxIn1dXSxBMnQ9W1sicGF0aCIse2Q6Ik0xMiA4djgifV0sWyJwYXRoIix7ZDoiTTIuNyAxMC4zYTIuNDEgMi40MSAwIDAgMCAwIDMuNDFsNy41OSA3LjU5YTIuNDEgMi40MSAwIDAgMCAzLjQxIDBsNy41OS03LjU5YTIuNDEgMi40MSAwIDAgMCAwLTMuNDFMMTMuNyAyLjcxYTIuNDEgMi40MSAwIDAgMC0zLjQxIDB6In1dLFsicGF0aCIse2Q6Ik04IDEyaDgifV1dLEQydD1bWyJwYXRoIix7ZDoiTTIuNyAxMC4zYTIuNDEgMi40MSAwIDAgMCAwIDMuNDFsNy41OSA3LjU5YTIuNDEgMi40MSAwIDAgMCAzLjQxIDBsNy41OS03LjU5YTIuNDEgMi40MSAwIDAgMCAwLTMuNDFsLTcuNTktNy41OWEyLjQxIDIuNDEgMCAwIDAtMy40MSAwWiJ9XV0sRTJ0PVtbInJlY3QiLHt3aWR0aDoiMTgiLGhlaWdodDoiMTgiLHg6IjMiLHk6IjMiLHJ4OiIyIixyeToiMiJ9XSxbInBhdGgiLHtkOiJNMTIgMTJoLjAxIn1dXSxQMnQ9W1sicmVjdCIse3dpZHRoOiIxOCIsaGVpZ2h0OiIxOCIseDoiMyIseToiMyIscng6IjIiLHJ5OiIyIn1dLFsicGF0aCIse2Q6Ik0xNSA5aC4wMSJ9XSxbInBhdGgiLHtkOiJNOSAxNWguMDEifV1dLEkydD1bWyJyZWN0Iix7d2lkdGg6IjE4IixoZWlnaHQ6IjE4Iix4OiIzIix5OiIzIixyeDoiMiIscnk6IjIifV0sWyJwYXRoIix7ZDoiTTE2IDhoLjAxIn1dLFsicGF0aCIse2Q6Ik0xMiAxMmguMDEifV0sWyJwYXRoIix7ZDoiTTggMTZoLjAxIn1dXSxOMnQ9W1sicmVjdCIse3dpZHRoOiIxOCIsaGVpZ2h0OiIxOCIseDoiMyIseToiMyIscng6IjIiLHJ5OiIyIn1dLFsicGF0aCIse2Q6Ik0xNiA4aC4wMSJ9XSxbInBhdGgiLHtkOiJNOCA4aC4wMSJ9XSxbInBhdGgiLHtkOiJNOCAxNmguMDEifV0sWyJwYXRoIix7ZDoiTTE2IDE2aC4wMSJ9XV0sRjJ0PVtbInJlY3QiLHt3aWR0aDoiMTgiLGhlaWdodDoiMTgiLHg6IjMiLHk6IjMiLHJ4OiIyIixyeToiMiJ9XSxbInBhdGgiLHtkOiJNMTYgOGguMDEifV0sWyJwYXRoIix7ZDoiTTggOGguMDEifV0sWyJwYXRoIix7ZDoiTTggMTZoLjAxIn1dLFsicGF0aCIse2Q6Ik0xNiAxNmguMDEifV0sWyJwYXRoIix7ZDoiTTEyIDEyaC4wMSJ9XV0sTzJ0PVtbInJlY3QiLHt3aWR0aDoiMTgiLGhlaWdodDoiMTgiLHg6IjMiLHk6IjMiLHJ4OiIyIixyeToiMiJ9XSxbInBhdGgiLHtkOiJNMTYgOGguMDEifV0sWyJwYXRoIix7ZDoiTTE2IDEyaC4wMSJ9XSxbInBhdGgiLHtkOiJNMTYgMTZoLjAxIn1dLFsicGF0aCIse2Q6Ik04IDhoLjAxIn1dLFsicGF0aCIse2Q6Ik04IDEyaC4wMSJ9XSxbInBhdGgiLHtkOiJNOCAxNmguMDEifV1dLFIydD1bWyJyZWN0Iix7d2lkdGg6IjEyIixoZWlnaHQ6IjEyIix4OiIyIix5OiIxMCIscng6IjIiLHJ5OiIyIn1dLFsicGF0aCIse2Q6Im0xNy45MiAxNCAzLjUtMy41YTIuMjQgMi4yNCAwIDAgMCAwLTNsLTUtNC45MmEyLjI0IDIuMjQgMCAwIDAtMyAwTDEwIDYifV0sWyJwYXRoIix7ZDoiTTYgMThoLjAxIn1dLFsicGF0aCIse2Q6Ik0xMCAxNGguMDEifV0sWyJwYXRoIix7ZDoiTTE1IDZoLjAxIn1dLFsicGF0aCIse2Q6Ik0xOCA5aC4wMSJ9XV0sQjJ0PVtbInBhdGgiLHtkOiJNMTIgM3YxNCJ9XSxbInBhdGgiLHtkOiJNNSAxMGgxNCJ9XSxbInBhdGgiLHtkOiJNNSAyMWgxNCJ9XV0sSDJ0PVtbImNpcmNsZSIse2N4OiIxMiIsY3k6IjEyIixyOiIxMCJ9XSxbImNpcmNsZSIse2N4OiIxMiIsY3k6IjEyIixyOiI0In1dLFsicGF0aCIse2Q6Ik0xMiAxMmguMDEifV1dLHEydD1bWyJjaXJjbGUiLHtjeDoiMTIiLGN5OiIxMiIscjoiMTAifV0sWyJwYXRoIix7ZDoiTTYgMTJjMC0xLjcuNy0zLjIgMS44LTQuMiJ9XSxbImNpcmNsZSIse2N4OiIxMiIsY3k6IjEyIixyOiIyIn1dLFsicGF0aCIse2Q6Ik0xOCAxMmMwIDEuNy0uNyAzLjItMS44IDQuMiJ9XV0sVjJ0PVtbInJlY3QiLHt3aWR0aDoiMTgiLGhlaWdodDoiMTgiLHg6IjMiLHk6IjMiLHJ4OiIyIn1dLFsiY2lyY2xlIix7Y3g6IjEyIixjeToiMTIiLHI6IjUifV0sWyJwYXRoIix7ZDoiTTEyIDEyaC4wMSJ9XV0sajJ0PVtbImNpcmNsZSIse2N4OiIxMiIsY3k6IjEyIixyOiIxMCJ9XSxbImNpcmNsZSIse2N4OiIxMiIsY3k6IjEyIixyOiIyIn1dXSxVMnQ9W1siY2lyY2xlIix7Y3g6IjEyIixjeToiNiIscjoiMSJ9XSxbImxpbmUiLHt4MToiNSIseDI6IjE5Iix5MToiMTIiLHkyOiIxMiJ9XSxbImNpcmNsZSIse2N4OiIxMiIsY3k6IjE4IixyOiIxIn1dXSxXMnQ9W1sicGF0aCIse2Q6Ik0xNSAyYy0xLjM1IDEuNS0yLjA5MiAzLTIuNSA0LjVMMTQgOCJ9XSxbInBhdGgiLHtkOiJtMTcgNi0yLjg5MS0yLjg5MSJ9XSxbInBhdGgiLHtkOiJNMiAxNWMzLjMzMy0zIDYuNjY3LTMgMTAtMyJ9XSxbInBhdGgiLHtkOiJtMiAyIDIwIDIwIn1dLFsicGF0aCIse2Q6Im0yMCA5IC44OTEuODkxIn1dLFsicGF0aCIse2Q6Ik0yMiA5Yy0xLjUgMS4zNS0zIDIuMDkyLTQuNSAyLjVsLTEtMSJ9XSxbInBhdGgiLHtkOiJNMy4xMDkgMTQuMTA5IDQgMTUifV0sWyJwYXRoIix7ZDoibTYuNSAxMi41IDEgMSJ9XSxbInBhdGgiLHtkOiJtNyAxOCAyLjg5MSAyLjg5MSJ9XSxbInBhdGgiLHtkOiJNOSAyMmMxLjM1LTEuNSAyLjA5Mi0zIDIuNS00LjVMMTAgMTYifV1dLEcydD1bWyJwYXRoIix7ZDoibTEwIDE2IDEuNSAxLjUifV0sWyJwYXRoIix7ZDoibTE0IDgtMS41LTEuNSJ9XSxbInBhdGgiLHtkOiJNMTUgMmMtMS43OTggMS45OTgtMi41MTggMy45OTUtMi44MDcgNS45OTMifV0sWyJwYXRoIix7ZDoibTE2LjUgMTAuNSAxIDEifV0sWyJwYXRoIix7ZDoibTE3IDYtMi44OTEtMi44OTEifV0sWyJwYXRoIix7ZDoiTTIgMTVjNi42NjctNiAxMy4zMzMgMCAyMC02In1dLFsicGF0aCIse2Q6Im0yMCA5IC44OTEuODkxIn1dLFsicGF0aCIse2Q6Ik0zLjEwOSAxNC4xMDkgNCAxNSJ9XSxbInBhdGgiLHtkOiJtNi41IDEyLjUgMSAxIn1dLFsicGF0aCIse2Q6Im03IDE4IDIuODkxIDIuODkxIn1dLFsicGF0aCIse2Q6Ik05IDIyYzEuNzk4LTEuOTk4IDIuNTE4LTMuOTk1IDIuODA3LTUuOTkzIn1dXSxZMnQ9W1sicGF0aCIse2Q6Ik0xMS4yNSAxNi4yNWgxLjVMMTIgMTd6In1dLFsicGF0aCIse2Q6Ik0xNiAxNHYuNSJ9XSxbInBhdGgiLHtkOiJNNC40MiAxMS4yNDdBMTMuMTUyIDEzLjE1MiAwIDAgMCA0IDE0LjU1NkM0IDE4LjcyOCA3LjU4MiAyMSAxMiAyMXM4LTIuMjcyIDgtNi40NDRhMTEuNzAyIDExLjcwMiAwIDAgMC0uNDkzLTMuMzA5In1dLFsicGF0aCIse2Q6Ik04IDE0di41In1dLFsicGF0aCIse2Q6Ik04LjUgOC41Yy0uMzg0IDEuMDUtMS4wODMgMi4wMjgtMi4zNDQgMi41LTEuOTMxLjcyMi0zLjU3Ni0uMjk3LTMuNjU2LTEtLjExMy0uOTk0IDEuMTc3LTYuNTMgNC03IDEuOTIzLS4zMjEgMy42NTEuODQ1IDMuNjUxIDIuMjM1QTcuNDk3IDcuNDk3IDAgMCAxIDE0IDUuMjc3YzAtMS4zOSAxLjg0NC0yLjU5OCAzLjc2Ny0yLjI3NyAyLjgyMy40NyA0LjExMyA2LjAwNiA0IDctLjA4LjcwMy0xLjcyNSAxLjcyMi0zLjY1NiAxLTEuMjYxLS40NzItMS44NTUtMS40NS0yLjIzOS0yLjUifV1dLFoydD1bWyJsaW5lIix7eDE6IjEyIix4MjoiMTIiLHkxOiIyIix5MjoiMjIifV0sWyJwYXRoIix7ZDoiTTE3IDVIOS41YTMuNSAzLjUgMCAwIDAgMCA3aDVhMy41IDMuNSAwIDAgMSAwIDdINiJ9XV0sWDJ0PVtbInBhdGgiLHtkOiJNMiA4aDIwIn1dLFsicmVjdCIse3dpZHRoOiIyMCIsaGVpZ2h0OiIxNiIseDoiMiIseToiNCIscng6IjIifV0sWyJwYXRoIix7ZDoiTTYgMTZoMTIifV1dLEsydD1bWyJwYXRoIix7ZDoiTTIwLjUgMTBhMi41IDIuNSAwIDAgMS0yLjQtM0gxOGEyLjk1IDIuOTUgMCAwIDEtMi42LTQuNCAxMCAxMCAwIDEgMCA2LjMgNy4xYy0uMy4yLS44LjMtMS4yLjMifV0sWyJjaXJjbGUiLHtjeDoiMTIiLGN5OiIxMiIscjoiMyJ9XV0sUTJ0PVtbInBhdGgiLHtkOiJNMTAgMTJoLjAxIn1dLFsicGF0aCIse2Q6Ik0xOCA5VjZhMiAyIDAgMCAwLTItMkg4YTIgMiAwIDAgMC0yIDJ2MTQifV0sWyJwYXRoIix7ZDoiTTIgMjBoOCJ9XSxbInBhdGgiLHtkOiJNMjAgMTd2LTJhMiAyIDAgMSAwLTQgMHYyIn1dLFsicmVjdCIse3g6IjE0Iix5OiIxNyIsd2lkdGg6IjgiLGhlaWdodDoiNSIscng6IjEifV1dLEoydD1bWyJwYXRoIix7ZDoiTTEwIDEyaC4wMSJ9XSxbInBhdGgiLHtkOiJNMTggMjBWNmEyIDIgMCAwIDAtMi0ySDhhMiAyIDAgMCAwLTIgMnYxNCJ9XSxbInBhdGgiLHtkOiJNMiAyMGgyMCJ9XV0sZWF0PVtbInBhdGgiLHtkOiJNMTEgMjBIMiJ9XSxbInBhdGgiLHtkOiJNMTEgNC41NjJ2MTYuMTU3YTEgMSAwIDAgMCAxLjI0Mi45N0wxOSAyMFY1LjU2MmEyIDIgMCAwIDAtMS41MTUtMS45NGwtNC0xQTIgMiAwIDAgMCAxMSA0LjU2MXoifV0sWyJwYXRoIix7ZDoiTTExIDRIOGEyIDIgMCAwIDAtMiAydjE0In1dLFsicGF0aCIse2Q6Ik0xNCAxMmguMDEifV0sWyJwYXRoIix7ZDoiTTIyIDIwaC0zIn1dXSx0YXQ9W1siY2lyY2xlIix7Y3g6IjEyLjEiLGN5OiIxMi4xIixyOiIxIn1dXSxhYXQ9W1sicGF0aCIse2Q6Ik0xMiAxNVYzIn1dLFsicGF0aCIse2Q6Ik0yMSAxNXY0YTIgMiAwIDAgMS0yIDJINWEyIDIgMCAwIDEtMi0ydi00In1dLFsicGF0aCIse2Q6Im03IDEwIDUgNSA1LTUifV1dLGlhdD1bWyJwYXRoIix7ZDoibTEyLjk5IDYuNzQgMS45MyAzLjQ0In1dLFsicGF0aCIse2Q6Ik0xOS4xMzYgMTJhMTAgMTAgMCAwIDEtMTQuMjcxIDAifV0sWyJwYXRoIix7ZDoibTIxIDIxLTIuMTYtMy44NCJ9XSxbInBhdGgiLHtkOiJtMyAyMSA4LjAyLTE0LjI2In1dLFsiY2lyY2xlIix7Y3g6IjEyIixjeToiNSIscjoiMiJ9XV0scmF0PVtbImNpcmNsZSIse2N4OiIxMiIsY3k6IjEyIixyOiIxMCJ9XSxbInBhdGgiLHtkOiJNMTkuMTMgNS4wOUMxNS4yMiA5LjE0IDEwIDEwLjQ0IDIuMjUgMTAuOTQifV0sWyJwYXRoIix7ZDoiTTIxLjc1IDEyLjg0Yy02LjYyLTEuNDEtMTIuMTQgMS0xNi4zOCA2LjMyIn1dLFsicGF0aCIse2Q6Ik04LjU2IDIuNzVjNC4zNyA2IDYgOS40MiA4IDE3LjcyIn1dXSxzYXQ9W1sicGF0aCIse2Q6Ik0xMCAxMWguMDEifV0sWyJwYXRoIix7ZDoiTTE0IDZoLjAxIn1dLFsicGF0aCIse2Q6Ik0xOCA2aC4wMSJ9XSxbInBhdGgiLHtkOiJNNi41IDEzLjFoLjAxIn1dLFsicGF0aCIse2Q6Ik0yMiA1YzAgOS00IDEyLTYgMTJzLTYtMy02LTEyYzAtMiAyLTMgNi0zczYgMSA2IDMifV0sWyJwYXRoIix7ZDoiTTE3LjQgOS45Yy0uOC44LTIgLjgtMi44IDAifV0sWyJwYXRoIix7ZDoiTTEwLjEgNy4xQzkgNy4yIDcuNyA3LjcgNiA4LjZjLTMuNSAyLTQuNyAzLjktMy43IDUuNiA0LjUgNy44IDkuNSA4LjQgMTEuMiA3LjQuOS0uNSAxLjktMi4xIDEuOS00LjcifV0sWyJwYXRoIix7ZDoiTTkuMSAxNi41Yy4zLTEuMSAxLjQtMS43IDIuNC0xLjQifV1dLG5hdD1bWyJwYXRoIix7ZDoiTTEwIDE4YTEgMSAwIDAgMSAxIDF2MmExIDEgMCAwIDEtMSAxSDVhMyAzIDAgMCAxLTMtMyAxIDEgMCAwIDEgMS0xeiJ9XSxbInBhdGgiLHtkOiJNMTMgMTBINGEyIDIgMCAwIDEtMi0yVjRhMiAyIDAgMCAxIDItMmg5YTEgMSAwIDAgMSAxIDF2NmExIDEgMCAwIDEtMSAxbC0uODEgMy4yNDJhMSAxIDAgMCAxLS45Ny43NThIOCJ9XSxbInBhdGgiLHtkOiJNMTQgNGgzYTEgMSAwIDAgMSAxIDF2MmExIDEgMCAwIDEtMSAxaC0zIn1dLFsicGF0aCIse2Q6Ik0xOCA2aDQifV0sWyJwYXRoIix7ZDoibTUgMTAtMiA4In1dLFsicGF0aCIse2Q6Im03IDE4IDItOCJ9XV0sb2F0PVtbInBhdGgiLHtkOiJNMTAgMTAgNyA3In1dLFsicGF0aCIse2Q6Im0xMCAxNC0zIDMifV0sWyJwYXRoIix7ZDoibTE0IDEwIDMtMyJ9XSxbInBhdGgiLHtkOiJtMTQgMTQgMyAzIn1dLFsicGF0aCIse2Q6Ik0xNC4yMDUgNC4xMzlhNCA0IDAgMSAxIDUuNDM5IDUuODYzIn1dLFsicGF0aCIse2Q6Ik0xOS42MzcgMTRhNCA0IDAgMSAxLTUuNDMyIDUuODY4In1dLFsicGF0aCIse2Q6Ik00LjM2NyAxMGE0IDQgMCAxIDEgNS40MzgtNS44NjIifV0sWyJwYXRoIix7ZDoiTTkuNzk1IDE5Ljg2MmE0IDQgMCAxIDEtNS40MjktNS44NzMifV0sWyJyZWN0Iix7eDoiMTAiLHk6IjgiLHdpZHRoOiI0IixoZWlnaHQ6IjgiLHJ4OiIxIn1dXSxsYXQ9W1sicGF0aCIse2Q6Ik0xOC43MTUgMTMuMTg2QzE4LjI5IDExLjg1OCAxNy4zODQgMTAuNjA3IDE2IDkuNWMtMi0xLjYtMy41LTQtNC02LjVhMTAuNyAxMC43IDAgMCAxLS44ODQgMi41ODYifV0sWyJwYXRoIix7ZDoibTIgMiAyMCAyMCJ9XSxbInBhdGgiLHtkOiJNOC43OTUgOC43OTdBMTEgMTEgMCAwIDEgOCA5LjVDNiAxMS4xIDUgMTMgNSAxNWE3IDcgMCAwIDAgMTMuMjIyIDMuMjA4In1dXSxjYXQ9W1sicGF0aCIse2Q6Ik0xMiAyMmE3IDcgMCAwIDAgNy03YzAtMi0xLTMuOS0zLTUuNXMtMy41LTQtNC02LjVjLS41IDIuNS0yIDQuOS00IDYuNUM2IDExLjEgNSAxMyA1IDE1YTcgNyAwIDAgMCA3IDd6In1dXSxkYXQ9W1sicGF0aCIse2Q6Ik03IDE2LjNjMi4yIDAgNC0xLjgzIDQtNC4wNSAwLTEuMTYtLjU3LTIuMjYtMS43MS0zLjE5UzcuMjkgNi43NSA3IDUuM2MtLjI5IDEuNDUtMS4xNCAyLjg0LTIuMjkgMy43NlMzIDExLjEgMyAxMi4yNWMwIDIuMjIgMS44IDQuMDUgNCA0LjA1eiJ9XSxbInBhdGgiLHtkOiJNMTIuNTYgNi42QTEwLjk3IDEwLjk3IDAgMCAwIDE0IDMuMDJjLjUgMi41IDIgNC45IDQgNi41czMgMy41IDMgNS41YTYuOTggNi45OCAwIDAgMS0xMS45MSA0Ljk3In1dXSxoYXQ9W1sicGF0aCIse2Q6Im0yIDIgOCA4In1dLFsicGF0aCIse2Q6Im0yMiAyLTggOCJ9XSxbImVsbGlwc2UiLHtjeDoiMTIiLGN5OiI5IixyeDoiMTAiLHJ5OiI1In1dLFsicGF0aCIse2Q6Ik03IDEzLjR2Ny45In1dLFsicGF0aCIse2Q6Ik0xMiAxNHY4In1dLFsicGF0aCIse2Q6Ik0xNyAxMy40djcuOSJ9XSxbInBhdGgiLHtkOiJNMiA5djhhMTAgNSAwIDAgMCAyMCAwVjkifV1dLHBhdD1bWyJwYXRoIix7ZDoiTTE1LjQgMTUuNjNhNy44NzUgNiAxMzUgMSAxIDYuMjMtNi4yMyA0LjUgMy40MyAxMzUgMCAwLTYuMjMgNi4yMyJ9XSxbInBhdGgiLHtkOiJtOC4yOSAxMi43MS0yLjYgMi42YTIuNSAyLjUgMCAxIDAtMS42NSA0LjY1QTIuNSAyLjUgMCAxIDAgOC43IDE4LjNsMi41OS0yLjU5In1dXSx1YXQ9W1sicGF0aCIse2Q6Ik0xNy41OTYgMTIuNzY4YTIgMiAwIDEgMCAyLjgyOS0yLjgyOWwtMS43NjgtMS43NjdhMiAyIDAgMCAwIDIuODI4LTIuODI5bC0yLjgyOC0yLjgyOGEyIDIgMCAwIDAtMi44MjkgMi44MjhsLTEuNzY3LTEuNzY4YTIgMiAwIDEgMC0yLjgyOSAyLjgyOXoifV0sWyJwYXRoIix7ZDoibTIuNSAyMS41IDEuNC0xLjQifV0sWyJwYXRoIix7ZDoibTIwLjEgMy45IDEuNC0xLjQifV0sWyJwYXRoIix7ZDoiTTUuMzQzIDIxLjQ4NWEyIDIgMCAxIDAgMi44MjktMi44MjhsMS43NjcgMS43NjhhMiAyIDAgMSAwIDIuODI5LTIuODI5bC02LjM2NC02LjM2NGEyIDIgMCAxIDAtMi44MjkgMi44MjlsMS43NjggMS43NjdhMiAyIDAgMCAwLTIuODI4IDIuODI5eiJ9XSxbInBhdGgiLHtkOiJtOS42IDE0LjQgNC44LTQuOCJ9XV0sZmF0PVtbInBhdGgiLHtkOiJNNiAxOC41YTMuNSAzLjUgMCAxIDAgNyAwYzAtMS41Ny45Mi0yLjUyIDIuMDQtMy40NiJ9XSxbInBhdGgiLHtkOiJNNiA4LjVjMC0uNzUuMTMtMS40Ny4zNi0yLjE0In1dLFsicGF0aCIse2Q6Ik04LjggMy4xNUE2LjUgNi41IDAgMCAxIDE5IDguNWMwIDEuNjMtLjQ0IDIuODEtMS4wOSAzLjc2In1dLFsicGF0aCIse2Q6Ik0xMi41IDZBMi41IDIuNSAwIDAgMSAxNSA4LjVNMTAgMTNhMiAyIDAgMCAwIDEuODItMS4xOCJ9XSxbImxpbmUiLHt4MToiMiIseDI6IjIyIix5MToiMiIseTI6IjIyIn1dXSxtYXQ9W1sicGF0aCIse2Q6Ik03IDMuMzRWNWEzIDMgMCAwIDAgMyAzIn1dLFsicGF0aCIse2Q6Ik0xMSAyMS45NVYxOGEyIDIgMCAwIDAtMi0yIDIgMiAwIDAgMS0yLTJ2LTFhMiAyIDAgMCAwLTItMkgyLjA1In1dLFsicGF0aCIse2Q6Ik0yMS41NCAxNUgxN2EyIDIgMCAwIDAtMiAydjQuNTQifV0sWyJwYXRoIix7ZDoiTTEyIDJhMTAgMTAgMCAxIDAgOS41NCAxMyJ9XSxbInBhdGgiLHtkOiJNMjAgNlY0YTIgMiAwIDEgMC00IDB2MiJ9XSxbInJlY3QiLHt3aWR0aDoiOCIsaGVpZ2h0OiI1Iix4OiIxNCIseToiNiIscng6IjEifV1dLGdhdD1bWyJwYXRoIix7ZDoiTTYgOC41YTYuNSA2LjUgMCAxIDEgMTMgMGMwIDYtNiA2LTYgMTBhMy41IDMuNSAwIDEgMS03IDAifV0sWyJwYXRoIix7ZDoiTTE1IDguNWEyLjUgMi41IDAgMCAwLTUgMHYxYTIgMiAwIDEgMSAwIDQifV1dLEFiPVtbInBhdGgiLHtkOiJNMjEuNTQgMTVIMTdhMiAyIDAgMCAwLTIgMnY0LjU0In1dLFsicGF0aCIse2Q6Ik03IDMuMzRWNWEzIDMgMCAwIDAgMyAzYTIgMiAwIDAgMSAyIDJjMCAxLjEuOSAyIDIgMmEyIDIgMCAwIDAgMi0yYzAtMS4xLjktMiAyLTJoMy4xNyJ9XSxbInBhdGgiLHtkOiJNMTEgMjEuOTVWMThhMiAyIDAgMCAwLTItMmEyIDIgMCAwIDEtMi0ydi0xYTIgMiAwIDAgMC0yLTJIMi4wNSJ9XSxbImNpcmNsZSIse2N4OiIxMiIsY3k6IjEyIixyOiIxMCJ9XV0sYmF0PVtbImNpcmNsZSIse2N4OiIxMiIsY3k6IjEyIixyOiIxMCJ9XSxbInBhdGgiLHtkOiJNMTIgMmE3IDcgMCAxIDAgMTAgMTAifV1dLHZhdD1bWyJjaXJjbGUiLHtjeDoiMTEuNSIsY3k6IjEyLjUiLHI6IjMuNSJ9XSxbInBhdGgiLHtkOiJNMyA4YzAtMy41IDIuNS02IDYuNS02IDUgMCA0LjgzIDMgNy41IDVzNSAyIDUgNmMwIDQuNS0yLjUgNi41LTcgNi41LTIuNSAwLTIuNSAyLjUtNiAyLjVzLTctMi03LTUuNWMwLTMgMS41LTMgMS41LTVDMy41IDEwIDMgOSAzIDhaIn1dXSx5YXQ9W1sicGF0aCIse2Q6Im0yIDIgMjAgMjAifV0sWyJwYXRoIix7ZDoiTTIwIDE0LjM0N1YxNGMwLTYtNC0xMi04LTEyLTEuMDc4IDAtMi4xNTcuNDM2LTMuMTU3IDEuMTkifV0sWyJwYXRoIix7ZDoiTTYuMjA2IDYuMjFDNC44NzEgOC40IDQgMTEuMiA0IDE0YTggOCAwIDAgMCAxNC41NjggNC41NjgifV1dLHhhdD1bWyJwYXRoIix7ZDoiTTEyIDJDOCAyIDQgOCA0IDE0YTggOCAwIDAgMCAxNiAwYzAtNi00LTEyLTgtMTIifV1dLERiPVtbImNpcmNsZSIse2N4OiIxMiIsY3k6IjEyIixyOiIxIn1dLFsiY2lyY2xlIix7Y3g6IjEyIixjeToiNSIscjoiMSJ9XSxbImNpcmNsZSIse2N4OiIxMiIsY3k6IjE5IixyOiIxIn1dXSxFYj1bWyJjaXJjbGUiLHtjeDoiMTIiLGN5OiIxMiIscjoiMSJ9XSxbImNpcmNsZSIse2N4OiIxOSIsY3k6IjEyIixyOiIxIn1dLFsiY2lyY2xlIix7Y3g6IjUiLGN5OiIxMiIscjoiMSJ9XV0sd2F0PVtbInBhdGgiLHtkOiJNNSAxNWE2LjUgNi41IDAgMCAxIDcgMCA2LjUgNi41IDAgMCAwIDcgMCJ9XSxbInBhdGgiLHtkOiJNNSA5YTYuNSA2LjUgMCAwIDEgNyAwIDYuNSA2LjUgMCAwIDAgNyAwIn1dXSxNYXQ9W1sibGluZSIse3gxOiI1Iix4MjoiMTkiLHkxOiI5Iix5MjoiOSJ9XSxbImxpbmUiLHt4MToiNSIseDI6IjE5Iix5MToiMTUiLHkyOiIxNSJ9XSxbImxpbmUiLHt4MToiMTkiLHgyOiI1Iix5MToiNSIseTI6IjE5In1dXSx6YXQ9W1sibGluZSIse3gxOiI1Iix4MjoiMTkiLHkxOiI5Iix5MjoiOSJ9XSxbImxpbmUiLHt4MToiNSIseDI6IjE5Iix5MToiMTUiLHkyOiIxNSJ9XV0sa2F0PVtbInBhdGgiLHtkOiJtMTUgMjAgMy0zaDJhMiAyIDAgMCAwIDItMlY2YTIgMiAwIDAgMC0yLTJINGEyIDIgMCAwIDAtMiAydjlhMiAyIDAgMCAwIDIgMmgybDMgM3oifV0sWyJwYXRoIix7ZDoiTTYgOHYxIn1dLFsicGF0aCIse2Q6Ik0xMCA4djEifV0sWyJwYXRoIix7ZDoiTTE0IDh2MSJ9XSxbInBhdGgiLHtkOiJNMTggOHYxIn1dXSxTYXQ9W1sicGF0aCIse2Q6Ik0yMSAyMUg4YTIgMiAwIDAgMS0xLjQyLS41ODdsLTMuOTk0LTMuOTk5YTIgMiAwIDAgMSAwLTIuODI4bDEwLTEwYTIgMiAwIDAgMSAyLjgyOSAwbDUuOTk5IDZhMiAyIDAgMCAxIDAgMi44MjhMMTIuODM0IDIxIn1dLFsicGF0aCIse2Q6Im01LjA4MiAxMS4wOSA4LjgyOCA4LjgyOCJ9XV0sQ2F0PVtbInBhdGgiLHtkOiJNNCAxMGgxMiJ9XSxbInBhdGgiLHtkOiJNNCAxNGg5In1dLFsicGF0aCIse2Q6Ik0xOSA2YTcuNyA3LjcgMCAwIDAtNS4yLTJBNy45IDcuOSAwIDAgMCA2IDEyYzAgNC40IDMuNSA4IDcuOCA4IDIgMCAzLjgtLjggNS4yLTIifV1dLF9hdD1bWyJwYXRoIix7ZDoiTTE0IDEzaDJhMiAyIDAgMCAxIDIgMnYyYTIgMiAwIDAgMCA0IDB2LTYuOTk4YTIgMiAwIDAgMC0uNTktMS40MkwxOCA1In1dLFsicGF0aCIse2Q6Ik0xNCAyMVY1YTIgMiAwIDAgMC0yLTJINWEyIDIgMCAwIDAtMiAydjE2In1dLFsicGF0aCIse2Q6Ik0yIDIxaDEzIn1dLFsicGF0aCIse2Q6Ik0zIDdoMTEifV0sWyJwYXRoIix7ZDoibTkgMTEtMiAzaDNsLTIgMyJ9XV0sVGF0PVtbInBhdGgiLHtkOiJtMTUgMTUgNiA2In1dLFsicGF0aCIse2Q6Im0xNSA5IDYtNiJ9XSxbInBhdGgiLHtkOiJNMjEgMTZ2NWgtNSJ9XSxbInBhdGgiLHtkOiJNMjEgOFYzaC01In1dLFsicGF0aCIse2Q6Ik0zIDE2djVoNSJ9XSxbInBhdGgiLHtkOiJtMyAyMSA2LTYifV0sWyJwYXRoIix7ZDoiTTMgOFYzaDUifV0sWyJwYXRoIix7ZDoiTTkgOSAzIDMifV1dLExhdD1bWyJwYXRoIix7ZDoiTTE1IDNoNnY2In1dLFsicGF0aCIse2Q6Ik0xMCAxNCAyMSAzIn1dLFsicGF0aCIse2Q6Ik0xOCAxM3Y2YTIgMiAwIDAgMS0yIDJINWEyIDIgMCAwIDEtMi0yVjhhMiAyIDAgMCAxIDItMmg2In1dXSwkYXQ9W1sicGF0aCIse2Q6Im0xNSAxOC0uNzIyLTMuMjUifV0sWyJwYXRoIix7ZDoiTTIgOGExMC42NDUgMTAuNjQ1IDAgMCAwIDIwIDAifV0sWyJwYXRoIix7ZDoibTIwIDE1LTEuNzI2LTIuMDUifV0sWyJwYXRoIix7ZDoibTQgMTUgMS43MjYtMi4wNSJ9XSxbInBhdGgiLHtkOiJtOSAxOCAuNzIyLTMuMjUifV1dLEFhdD1bWyJwYXRoIix7ZDoiTTIuMDYyIDEyLjM0OGExIDEgMCAwIDEgMC0uNjk2IDEwLjc1IDEwLjc1IDAgMCAxIDE5Ljg3NiAwIDEgMSAwIDAgMSAwIC42OTYgMTAuNzUgMTAuNzUgMCAwIDEtMTkuODc2IDAifV0sWyJjaXJjbGUiLHtjeDoiMTIiLGN5OiIxMiIscjoiMyJ9XV0sRGF0PVtbInBhdGgiLHtkOiJNMTAuNzMzIDUuMDc2YTEwLjc0NCAxMC43NDQgMCAwIDEgMTEuMjA1IDYuNTc1IDEgMSAwIDAgMSAwIC42OTYgMTAuNzQ3IDEwLjc0NyAwIDAgMS0xLjQ0NCAyLjQ5In1dLFsicGF0aCIse2Q6Ik0xNC4wODQgMTQuMTU4YTMgMyAwIDAgMS00LjI0Mi00LjI0MiJ9XSxbInBhdGgiLHtkOiJNMTcuNDc5IDE3LjQ5OWExMC43NSAxMC43NSAwIDAgMS0xNS40MTctNS4xNTEgMSAxIDAgMCAxIDAtLjY5NiAxMC43NSAxMC43NSAwIDAgMSA0LjQ0Ni01LjE0MyJ9XSxbInBhdGgiLHtkOiJtMiAyIDIwIDIwIn1dXSxFYXQ9W1sicGF0aCIse2Q6Ik0xOCAyaC0zYTUgNSAwIDAgMC01IDV2M0g3djRoM3Y4aDR2LThoM2wxLTRoLTRWN2ExIDEgMCAwIDEgMS0xaDN6In1dXSxQYXQ9W1sicGF0aCIse2Q6Ik0xMiAxNmguMDEifV0sWyJwYXRoIix7ZDoiTTE2IDE2aC4wMSJ9XSxbInBhdGgiLHtkOiJNMyAxOWEyIDIgMCAwIDAgMiAyaDE0YTIgMiAwIDAgMCAyLTJWOC41YS41LjUgMCAwIDAtLjc2OS0uNDIybC00LjQ2MiAyLjg0NEEuNS41IDAgMCAxIDE1IDEwLjV2LTJhLjUuNSAwIDAgMC0uNzY5LS40MjJMOS43NyAxMC45MjJBLjUuNSAwIDAgMSA5IDEwLjVWNWEyIDIgMCAwIDAtMi0ySDVhMiAyIDAgMCAwLTIgMnoifV0sWyJwYXRoIix7ZDoiTTggMTZoLjAxIn1dXSxJYXQ9W1sicGF0aCIse2Q6Ik0xMC44MjcgMTYuMzc5YTYuMDgyIDYuMDgyIDAgMCAxLTguNjE4LTcuMDAybDUuNDEyIDEuNDVhNi4wODIgNi4wODIgMCAwIDEgNy4wMDItOC42MThsLTEuNDUgNS40MTJhNi4wODIgNi4wODIgMCAwIDEgOC42MTggNy4wMDJsLTUuNDEyLTEuNDVhNi4wODIgNi4wODIgMCAwIDEtNy4wMDIgOC42MThsMS40NS01LjQxMloifV0sWyJwYXRoIix7ZDoiTTEyIDEydi4wMSJ9XV0sTmF0PVtbInBhdGgiLHtkOiJNMTIgNmEyIDIgMCAwIDEgMy40MTQtMS40MTRsNiA2YTIgMiAwIDAgMSAwIDIuODI4bC02IDZBMiAyIDAgMCAxIDEyIDE4eiJ9XSxbInBhdGgiLHtkOiJNMiA2YTIgMiAwIDAgMSAzLjQxNC0xLjQxNGw2IDZhMiAyIDAgMCAxIDAgMi44MjhsLTYgNkEyIDIgMCAwIDEgMiAxOHoifV1dLEZhdD1bWyJwYXRoIix7ZDoiTTEyLjY3IDE5YTIgMiAwIDAgMCAxLjQxNi0uNTg4bDYuMTU0LTYuMTcyYTYgNiAwIDAgMC04LjQ5LTguNDlMNS41ODYgOS45MTRBMiAyIDAgMCAwIDUgMTEuMzI4VjE4YTEgMSAwIDAgMCAxIDF6In1dLFsicGF0aCIse2Q6Ik0xNiA4IDIgMjIifV0sWyJwYXRoIix7ZDoiTTE3LjUgMTVIOSJ9XV0sT2F0PVtbInBhdGgiLHtkOiJNNCAzIDIgNXYxNWMwIC42LjQgMSAxIDFoMmMuNiAwIDEtLjQgMS0xVjVaIn1dLFsicGF0aCIse2Q6Ik02IDhoNCJ9XSxbInBhdGgiLHtkOiJNNiAxOGg0In1dLFsicGF0aCIse2Q6Im0xMiAzLTIgMnYxNWMwIC42LjQgMSAxIDFoMmMuNiAwIDEtLjQgMS0xVjVaIn1dLFsicGF0aCIse2Q6Ik0xNCA4aDQifV0sWyJwYXRoIix7ZDoiTTE0IDE4aDQifV0sWyJwYXRoIix7ZDoibTIwIDMtMiAydjE1YzAgLjYuNCAxIDEgMWgyYy42IDAgMS0uNCAxLTFWNVoifV1dLFJhdD1bWyJjaXJjbGUiLHtjeDoiMTIiLGN5OiIxMiIscjoiMiJ9XSxbInBhdGgiLHtkOiJNMTIgMnY0In1dLFsicGF0aCIse2Q6Im02LjggMTUtMy41IDIifV0sWyJwYXRoIix7ZDoibTIwLjcgNy0zLjUgMiJ9XSxbInBhdGgiLHtkOiJNNi44IDkgMy4zIDcifV0sWyJwYXRoIix7ZDoibTIwLjcgMTctMy41LTIifV0sWyJwYXRoIix7ZDoibTkgMjIgMy04IDMgOCJ9XSxbInBhdGgiLHtkOiJNOCAyMmg4In1dLFsicGF0aCIse2Q6Ik0xOCAxOC43YTkgOSAwIDEgMC0xMiAwIn1dXSxCYXQ9W1sicGF0aCIse2Q6Ik01IDUuNUEzLjUgMy41IDAgMCAxIDguNSAySDEydjdIOC41QTMuNSAzLjUgMCAwIDEgNSA1LjV6In1dLFsicGF0aCIse2Q6Ik0xMiAyaDMuNWEzLjUgMy41IDAgMSAxIDAgN0gxMlYyeiJ9XSxbInBhdGgiLHtkOiJNMTIgMTIuNWEzLjUgMy41IDAgMSAxIDcgMCAzLjUgMy41IDAgMSAxLTcgMHoifV0sWyJwYXRoIix7ZDoiTTUgMTkuNUEzLjUgMy41IDAgMCAxIDguNSAxNkgxMnYzLjVhMy41IDMuNSAwIDEgMS03IDB6In1dLFsicGF0aCIse2Q6Ik01IDEyLjVBMy41IDMuNSAwIDAgMSA4LjUgOUgxMnY3SDguNUEzLjUgMy41IDAgMCAxIDUgMTIuNXoifV1dLEhhdD1bWyJwYXRoIix7ZDoiTTEzLjY1OSAyMkgxOGEyIDIgMCAwIDAgMi0yVjhhMi40IDIuNCAwIDAgMC0uNzA2LTEuNzA2bC0zLjU4OC0zLjU4OEEyLjQgMi40IDAgMCAwIDE0IDJINmEyIDIgMCAwIDAtMiAydjExLjUifV0sWyJwYXRoIix7ZDoiTTE0IDJ2NWExIDEgMCAwIDAgMSAxaDUifV0sWyJwYXRoIix7ZDoiTTggMTJ2LTEifV0sWyJwYXRoIix7ZDoiTTggMTh2LTIifV0sWyJwYXRoIix7ZDoiTTggN1Y2In1dLFsiY2lyY2xlIix7Y3g6IjgiLGN5OiIyMCIscjoiMiJ9XV0sUGI9W1sicGF0aCIse2Q6Ik02IDIyYTIgMiAwIDAgMS0yLTJWNGEyIDIgMCAwIDEgMi0yaDhhMi40IDIuNCAwIDAgMSAxLjcwNC43MDZsMy41ODggMy41ODhBMi40IDIuNCAwIDAgMSAyMCA4djEyYTIgMiAwIDAgMS0yIDJ6In1dLFsicGF0aCIse2Q6Ik0xNCAydjVhMSAxIDAgMCAwIDEgMWg1In1dLFsicGF0aCIse2Q6Im04IDE4IDQtNCJ9XSxbInBhdGgiLHtkOiJNOCAxMHY4aDgifV1dLEliPVtbInBhdGgiLHtkOiJNMTMgMjJoNWEyIDIgMCAwIDAgMi0yVjhhMi40IDIuNCAwIDAgMC0uNzA2LTEuNzA2bC0zLjU4OC0zLjU4OEEyLjQgMi40IDAgMCAwIDE0IDJINmEyIDIgMCAwIDAtMiAydjMuMyJ9XSxbInBhdGgiLHtkOiJNMTQgMnY1YTEgMSAwIDAgMCAxIDFoNSJ9XSxbInBhdGgiLHtkOiJtNy42OSAxNi40NzkgMS4yOSA0Ljg4YS41LjUgMCAwIDEtLjY5OC41OTFsLTEuODQzLS44NDlhMSAxIDAgMCAwLS44NzkuMDAxbC0xLjg0Ni44NWEuNS41IDAgMCAxLS42OTItLjU5M2wxLjI5LTQuODgifV0sWyJjaXJjbGUiLHtjeDoiNiIsY3k6IjE0IixyOiIzIn1dXSxOYj1bWyJwYXRoIix7ZDoiTTE0IDIyaDRhMiAyIDAgMCAwIDItMlY4YTIuNCAyLjQgMCAwIDAtLjcwNi0xLjcwNmwtMy41ODgtMy41ODhBMi40IDIuNCAwIDAgMCAxNCAySDZhMiAyIDAgMCAwLTIgMnY2In1dLFsicGF0aCIse2Q6Ik0xNCAydjVhMSAxIDAgMCAwIDEgMWg1In1dLFsicGF0aCIse2Q6Ik01IDE0YTEgMSAwIDAgMC0xIDF2MmExIDEgMCAwIDEtMSAxIDEgMSAwIDAgMSAxIDF2MmExIDEgMCAwIDAgMSAxIn1dLFsicGF0aCIse2Q6Ik05IDIyYTEgMSAwIDAgMCAxLTF2LTJhMSAxIDAgMCAxIDEtMSAxIDEgMCAwIDEtMS0xdi0yYTEgMSAwIDAgMC0xLTEifV1dLHFhdD1bWyJwYXRoIix7ZDoiTTE0LjUgMjJIMThhMiAyIDAgMCAwIDItMlY4YTIuNCAyLjQgMCAwIDAtLjcwNi0xLjcwNmwtMy41ODgtMy41ODhBMi40IDIuNCAwIDAgMCAxNCAySDZhMiAyIDAgMCAwLTIgMnYzLjgifV0sWyJwYXRoIix7ZDoiTTE0IDJ2NWExIDEgMCAwIDAgMSAxaDUifV0sWyJwYXRoIix7ZDoiTTExLjcgMTQuMiA3IDE3bC00LjctMi44In1dLFsicGF0aCIse2Q6Ik0zIDEzLjFhMiAyIDAgMCAwLS45OTkgMS43NnYzLjI0YTIgMiAwIDAgMCAuOTY5IDEuNzhMNiAyMS43YTIgMiAwIDAgMCAyLjAzLjAxTDExIDE5LjlhMiAyIDAgMCAwIDEtMS43NlYxNC45YTIgMiAwIDAgMC0uOTctMS43OEw4IDExLjNhMiAyIDAgMCAwLTIuMDMtLjAxeiJ9XSxbInBhdGgiLHtkOiJNNyAxN3Y1In1dXSxGYj1bWyJwYXRoIix7ZDoiTTYgMjJhMiAyIDAgMCAxLTItMlY0YTIgMiAwIDAgMSAyLTJoOGEyLjQgMi40IDAgMCAxIDEuNzA0LjcwNmwzLjU4OCAzLjU4OEEyLjQgMi40IDAgMCAxIDIwIDh2MTJhMiAyIDAgMCAxLTIgMnoifV0sWyJwYXRoIix7ZDoiTTE0IDJ2NWExIDEgMCAwIDAgMSAxaDUifV0sWyJwYXRoIix7ZDoiTTEwIDEyYTEgMSAwIDAgMC0xIDF2MWExIDEgMCAwIDEtMSAxIDEgMSAwIDAgMSAxIDF2MWExIDEgMCAwIDAgMSAxIn1dLFsicGF0aCIse2Q6Ik0xNCAxOGExIDEgMCAwIDAgMS0xdi0xYTEgMSAwIDAgMSAxLTEgMSAxIDAgMCAxLTEtMXYtMWExIDEgMCAwIDAtMS0xIn1dXSxPYj1bWyJwYXRoIix7ZDoiTTYgMjJhMiAyIDAgMCAxLTItMlY0YTIgMiAwIDAgMSAyLTJoOGEyLjQgMi40IDAgMCAxIDEuNzA0LjcwNmwzLjU4OCAzLjU4OEEyLjQgMi40IDAgMCAxIDIwIDh2MTJhMiAyIDAgMCAxLTIgMnoifV0sWyJwYXRoIix7ZDoiTTE0IDJ2NWExIDEgMCAwIDAgMSAxaDUifV0sWyJwYXRoIix7ZDoiTTggMTh2LTIifV0sWyJwYXRoIix7ZDoiTTEyIDE4di00In1dLFsicGF0aCIse2Q6Ik0xNiAxOHYtNiJ9XV0sUmI9W1sicGF0aCIse2Q6Ik02IDIyYTIgMiAwIDAgMS0yLTJWNGEyIDIgMCAwIDEgMi0yaDhhMi40IDIuNCAwIDAgMSAxLjcwNC43MDZsMy41ODggMy41ODhBMi40IDIuNCAwIDAgMSAyMCA4djEyYTIgMiAwIDAgMS0yIDJ6In1dLFsicGF0aCIse2Q6Ik0xNCAydjVhMSAxIDAgMCAwIDEgMWg1In1dLFsicGF0aCIse2Q6Ik04IDE4di0xIn1dLFsicGF0aCIse2Q6Ik0xMiAxOHYtNiJ9XSxbInBhdGgiLHtkOiJNMTYgMTh2LTMifV1dLEJiPVtbInBhdGgiLHtkOiJNNiAyMmEyIDIgMCAwIDEtMi0yVjRhMiAyIDAgMCAxIDItMmg4YTIuNCAyLjQgMCAwIDEgMS43MDQuNzA2bDMuNTg4IDMuNTg4QTIuNCAyLjQgMCAwIDEgMjAgOHYxMmEyIDIgMCAwIDEtMiAyeiJ9XSxbInBhdGgiLHtkOiJNMTQgMnY1YTEgMSAwIDAgMCAxIDFoNSJ9XSxbInBhdGgiLHtkOiJtMTYgMTMtMy41IDMuNS0yLTJMOCAxNyJ9XV0sSGI9W1sicGF0aCIse2Q6Ik0xNS45NDEgMjJIMThhMiAyIDAgMCAwIDItMlY4YTIuNCAyLjQgMCAwIDAtLjcwNi0xLjcwNGwtMy41ODgtMy41ODhBMi40IDIuNCAwIDAgMCAxNCAySDZhMiAyIDAgMCAwLTIgMnYzLjUxMiJ9XSxbInBhdGgiLHtkOiJNMTQgMnY1YTEgMSAwIDAgMCAxIDFoNSJ9XSxbInBhdGgiLHtkOiJNNC4wMTcgMTEuNTEyYTYgNiAwIDEgMCA4LjQ2NiA4LjQ3NSJ9XSxbInBhdGgiLHtkOiJNOSAxNmExIDEgMCAwIDEtMS0xdi00YzAtLjU1Mi40NS0xLjAwOC45OTUtLjkxN2E2IDYgMCAwIDEgNC45MjIgNC45MjJjLjA5MS41NDQtLjM2NS45OTUtLjkxNy45OTV6In1dXSxxYj1bWyJwYXRoIix7ZDoiTTEwLjUgMjJINmEyIDIgMCAwIDEtMi0yVjRhMiAyIDAgMCAxIDItMmg4YTIuNCAyLjQgMCAwIDEgMS43MDYuNzA2bDMuNTg4IDMuNTg4QTIuNCAyLjQgMCAwIDEgMjAgOHY2In1dLFsicGF0aCIse2Q6Ik0xNCAydjVhMSAxIDAgMCAwIDEgMWg1In1dLFsicGF0aCIse2Q6Im0xNCAyMCAyIDIgNC00In1dXSxWYXQ9W1sicGF0aCIse2Q6Ik0xNiAyMmgyYTIgMiAwIDAgMCAyLTJWOGEyLjQgMi40IDAgMCAwLS43MDYtMS43MDZsLTMuNTg4LTMuNTg4QTIuNCAyLjQgMCAwIDAgMTQgMkg2YTIgMiAwIDAgMC0yIDJ2Mi44NSJ9XSxbInBhdGgiLHtkOiJNMTQgMnY1YTEgMSAwIDAgMCAxIDFoNSJ9XSxbInBhdGgiLHtkOiJNOCAxNHYyLjJsMS42IDEifV0sWyJjaXJjbGUiLHtjeDoiOCIsY3k6IjE2IixyOiI2In1dXSxqYXQ9W1sicGF0aCIse2Q6Ik02IDIyYTIgMiAwIDAgMS0yLTJWNGEyIDIgMCAwIDEgMi0yaDhhMi40IDIuNCAwIDAgMSAxLjcwNC43MDZsMy41ODggMy41ODhBMi40IDIuNCAwIDAgMSAyMCA4djEyYTIgMiAwIDAgMS0yIDJ6In1dLFsicGF0aCIse2Q6Ik0xNCAydjVhMSAxIDAgMCAwIDEgMWg1In1dLFsicGF0aCIse2Q6Im05IDE1IDIgMiA0LTQifV1dLFZiPVtbInBhdGgiLHtkOiJNNCAxMi4xNVY0YTIgMiAwIDAgMSAyLTJoOGEyLjQgMi40IDAgMCAxIDEuNzA2LjcwNmwzLjU4OCAzLjU4OEEyLjQgMi40IDAgMCAxIDIwIDh2MTJhMiAyIDAgMCAxLTIgMmgtMy4zNSJ9XSxbInBhdGgiLHtkOiJNMTQgMnY1YTEgMSAwIDAgMCAxIDFoNSJ9XSxbInBhdGgiLHtkOiJtNSAxNi0zIDMgMyAzIn1dLFsicGF0aCIse2Q6Im05IDIyIDMtMy0zLTMifV1dLFVhdD1bWyJwYXRoIix7ZDoiTTYgMjJhMiAyIDAgMCAxLTItMlY0YTIgMiAwIDAgMSAyLTJoOGEyLjQgMi40IDAgMCAxIDEuNzA0LjcwNmwzLjU4OCAzLjU4OEEyLjQgMi40IDAgMCAxIDIwIDh2MTJhMiAyIDAgMCAxLTIgMnoifV0sWyJwYXRoIix7ZDoiTTE0IDJ2NWExIDEgMCAwIDAgMSAxaDUifV0sWyJwYXRoIix7ZDoiTTEwIDEyLjUgOCAxNWwyIDIuNSJ9XSxbInBhdGgiLHtkOiJtMTQgMTIuNSAyIDIuNS0yIDIuNSJ9XV0samI9W1sicGF0aCIse2Q6Ik0xNSA4YTEgMSAwIDAgMS0xLTFWMmEyLjQgMi40IDAgMCAxIDEuNzA0LjcwNmwzLjU4OCAzLjU4OEEyLjQgMi40IDAgMCAxIDIwIDh6In1dLFsicGF0aCIse2Q6Ik0yMCA4djEyYTIgMiAwIDAgMS0yIDJoLTQuMTgyIn1dLFsicGF0aCIse2Q6Im0zLjMwNSAxOS41My45MjMtLjM4MiJ9XSxbInBhdGgiLHtkOiJNNCAxMC41OTJWNGEyIDIgMCAwIDEgMi0yaDgifV0sWyJwYXRoIix7ZDoibTQuMjI4IDE2Ljg1Mi0uOTI0LS4zODMifV0sWyJwYXRoIix7ZDoibTUuODUyIDE1LjIyOC0uMzgzLS45MjMifV0sWyJwYXRoIix7ZDoibTUuODUyIDIwLjc3Mi0uMzgzLjkyNCJ9XSxbInBhdGgiLHtkOiJtOC4xNDggMTUuMjI4LjM4My0uOTIzIn1dLFsicGF0aCIse2Q6Im04LjUzIDIxLjY5Ni0uMzgyLS45MjQifV0sWyJwYXRoIix7ZDoibTkuNzczIDE2Ljg1Mi45MjItLjM4MyJ9XSxbInBhdGgiLHtkOiJtOS43NzMgMTkuMTQ4LjkyMi4zODMifV0sWyJjaXJjbGUiLHtjeDoiNyIsY3k6IjE4IixyOiIzIn1dXSxXYXQ9W1sicGF0aCIse2Q6Ik02IDIyYTIgMiAwIDAgMS0yLTJWNGEyIDIgMCAwIDEgMi0yaDhhMi40IDIuNCAwIDAgMSAxLjcwNC43MDZsMy41ODggMy41ODhBMi40IDIuNCAwIDAgMSAyMCA4djEyYTIgMiAwIDAgMS0yIDJ6In1dLFsicGF0aCIse2Q6Ik05IDEwaDYifV0sWyJwYXRoIix7ZDoiTTEyIDEzVjcifV0sWyJwYXRoIix7ZDoiTTkgMTdoNiJ9XV0sR2F0PVtbInBhdGgiLHtkOiJNNCAxMlY0YTIgMiAwIDAgMSAyLTJoOGEyLjQgMi40IDAgMCAxIDEuNzA2LjcwNmwzLjU4OCAzLjU4OEEyLjQgMi40IDAgMCAxIDIwIDh2MTJhMiAyIDAgMCAxLTIgMiJ9XSxbInBhdGgiLHtkOiJNMTQgMnY1YTEgMSAwIDAgMCAxIDFoNSJ9XSxbInBhdGgiLHtkOiJNMTAgMTZoMnY2In1dLFsicGF0aCIse2Q6Ik0xMCAyMmg0In1dLFsicmVjdCIse3g6IjIiLHk6IjE2Iix3aWR0aDoiNCIsaGVpZ2h0OiI2IixyeDoiMiJ9XV0sWWF0PVtbInBhdGgiLHtkOiJNNiAyMmEyIDIgMCAwIDEtMi0yVjRhMiAyIDAgMCAxIDItMmg4YTIuNCAyLjQgMCAwIDEgMS43MDQuNzA2bDMuNTg4IDMuNTg4QTIuNCAyLjQgMCAwIDEgMjAgOHYxMmEyIDIgMCAwIDEtMiAyeiJ9XSxbInBhdGgiLHtkOiJNMTQgMnY1YTEgMSAwIDAgMCAxIDFoNSJ9XSxbInBhdGgiLHtkOiJNMTIgMTh2LTYifV0sWyJwYXRoIix7ZDoibTkgMTUgMyAzIDMtMyJ9XV0sVWI9W1sicGF0aCIse2Q6Ik02IDIyYTIgMiAwIDAgMS0yLTJWNGEyIDIgMCAwIDEgMi0yaDhhMi40IDIuNCAwIDAgMSAxLjcwNC43MDZsMy41ODggMy41ODhBMi40IDIuNCAwIDAgMSAyMCA4djEyYTIgMiAwIDAgMS0yIDJ6In1dLFsicGF0aCIse2Q6Ik0xMiA5djQifV0sWyJwYXRoIix7ZDoiTTEyIDE3aC4wMSJ9XV0sdmw9W1sicGF0aCIse2Q6Ik00IDYuODM1VjRhMiAyIDAgMCAxIDItMmg4YTIuNCAyLjQgMCAwIDEgMS43MDYuNzA2bDMuNTg4IDMuNTg4QTIuNCAyLjQgMCAwIDEgMjAgOHYxMmEyIDIgMCAwIDEtMiAyaC0uMzQzIn1dLFsicGF0aCIse2Q6Ik0xNCAydjVhMSAxIDAgMCAwIDEgMWg1In1dLFsicGF0aCIse2Q6Ik0yIDE5YTIgMiAwIDAgMSA0IDB2MWEyIDIgMCAwIDEtNCAwdi00YTYgNiAwIDAgMSAxMiAwdjRhMiAyIDAgMCAxLTQgMHYtMWEyIDIgMCAwIDEgNCAwIn1dXSxaYXQ9W1sicGF0aCIse2Q6Ik0xMyAyMmg1YTIgMiAwIDAgMCAyLTJWOGEyLjQgMi40IDAgMCAwLS43MDYtMS43MDZsLTMuNTg4LTMuNTg4QTIuNCAyLjQgMCAwIDAgMTQgMkg2YTIgMiAwIDAgMC0yIDJ2NyJ9XSxbInBhdGgiLHtkOiJNMTQgMnY1YTEgMSAwIDAgMCAxIDFoNSJ9XSxbInBhdGgiLHtkOiJNMy42MiAxOC44QTIuMjUgMi4yNSAwIDEgMSA3IDE1LjgzNmEyLjI1IDIuMjUgMCAxIDEgMy4zOCAyLjk2NmwtMi42MjYgMi44NTZhMSAxIDAgMCAxLTEuNTA3IDB6In1dXSxYYXQ9W1sicGF0aCIse2Q6Ik02IDIyYTIgMiAwIDAgMS0yLTJWNGEyIDIgMCAwIDEgMi0yaDhhMi40IDIuNCAwIDAgMSAxLjcwNC43MDZsMy41ODggMy41ODhBMi40IDIuNCAwIDAgMSAyMCA4djEyYTIgMiAwIDAgMS0yIDJ6In1dLFsicGF0aCIse2Q6Ik0xNCAydjVhMSAxIDAgMCAwIDEgMWg1In1dLFsiY2lyY2xlIix7Y3g6IjEwIixjeToiMTIiLHI6IjIifV0sWyJwYXRoIix7ZDoibTIwIDE3LTEuMjk2LTEuMjk2YTIuNDEgMi40MSAwIDAgMC0zLjQwOCAwTDkgMjIifV1dLEthdD1bWyJwYXRoIix7ZDoiTTQgMTFWNGEyIDIgMCAwIDEgMi0yaDhhMi40IDIuNCAwIDAgMSAxLjcwNi43MDZsMy41ODggMy41ODhBMi40IDIuNCAwIDAgMSAyMCA4djEyYTIgMiAwIDAgMS0yIDJINmEyIDIgMCAwIDEtMi0ydi0xIn1dLFsicGF0aCIse2Q6Ik0xNCAydjVhMSAxIDAgMCAwIDEgMWg1In1dLFsicGF0aCIse2Q6Ik0yIDE1aDEwIn1dLFsicGF0aCIse2Q6Im05IDE4IDMtMy0zLTMifV1dLFdiPVtbInBhdGgiLHtkOiJNMTQgMnY1YTEgMSAwIDAgMCAxIDFoNSJ9XSxbInBhdGgiLHtkOiJNNCAxMnY2In1dLFsicGF0aCIse2Q6Ik00IDE0aDIifV0sWyJwYXRoIix7ZDoiTTkuNjUgMjJIMThhMiAyIDAgMCAwIDItMlY4YTIuNCAyLjQgMCAwIDAtLjcwNi0xLjcwNmwtMy41ODgtMy41ODhBMi40IDIuNCAwIDAgMCAxNCAySDZhMiAyIDAgMCAwLTIgMnY0In1dLFsiY2lyY2xlIix7Y3g6IjQiLGN5OiIyMCIscjoiMiJ9XV0sR2I9W1sicGF0aCIse2Q6Ik00IDkuOFY0YTIgMiAwIDAgMSAyLTJoOGEyLjQgMi40IDAgMCAxIDEuNzA2LjcwNmwzLjU4OCAzLjU4OEEyLjQgMi40IDAgMCAxIDIwIDh2MTJhMiAyIDAgMCAxLTIgMmgtMyJ9XSxbInBhdGgiLHtkOiJNMTQgMnY1YTEgMSAwIDAgMCAxIDFoNSJ9XSxbInBhdGgiLHtkOiJNOSAxN3YtMmEyIDIgMCAwIDAtNCAwdjIifV0sWyJyZWN0Iix7d2lkdGg6IjgiLGhlaWdodDoiNSIseDoiMyIseToiMTciLHJ4OiIxIn1dXSxZYj1bWyJwYXRoIix7ZDoiTTIwIDE0VjhhMi40IDIuNCAwIDAgMC0uNzA2LTEuNzA2bC0zLjU4OC0zLjU4OEEyLjQgMi40IDAgMCAwIDE0IDJINmEyIDIgMCAwIDAtMiAydjE2YTIgMiAwIDAgMCAyIDJoMTIifV0sWyJwYXRoIix7ZDoiTTE0IDJ2NWExIDEgMCAwIDAgMSAxaDUifV0sWyJwYXRoIix7ZDoiTTE0IDE4aDYifV1dLFFhdD1bWyJwYXRoIix7ZDoiTTYgMjJhMiAyIDAgMCAxLTItMlY0YTIgMiAwIDAgMSAyLTJoOGEyLjQgMi40IDAgMCAxIDEuNzA0LjcwNmwzLjU4OCAzLjU4OEEyLjQgMi40IDAgMCAxIDIwIDh2MTJhMiAyIDAgMCAxLTIgMnoifV0sWyJwYXRoIix7ZDoiTTE0IDJ2NWExIDEgMCAwIDAgMSAxaDUifV0sWyJwYXRoIix7ZDoiTTkgMTVoNiJ9XV0sSmF0PVtbInBhdGgiLHtkOiJNMTEuNjUgMjJIMThhMiAyIDAgMCAwIDItMlY4YTIuNCAyLjQgMCAwIDAtLjcwNi0xLjcwNmwtMy41ODgtMy41ODhBMi40IDIuNCAwIDAgMCAxNCAySDZhMiAyIDAgMCAwLTIgMnYxMC4zNSJ9XSxbInBhdGgiLHtkOiJNMTQgMnY1YTEgMSAwIDAgMCAxIDFoNSJ9XSxbInBhdGgiLHtkOiJNOCAyMHYtN2wzIDEuNDc0In1dLFsiY2lyY2xlIix7Y3g6IjYiLGN5OiIyMCIscjoiMiJ9XV0sZWl0PVtbInBhdGgiLHtkOiJNNC4yMjYgMjAuOTI1QTIgMiAwIDAgMCA2IDIyaDEyYTIgMiAwIDAgMCAyLTJWOGEyLjQgMi40IDAgMCAwLS43MDYtMS43MDZsLTMuNTg4LTMuNTg4QTIuNCAyLjQgMCAwIDAgMTQgMkg2YTIgMiAwIDAgMC0yIDJ2My4xMjcifV0sWyJwYXRoIix7ZDoiTTE0IDJ2NWExIDEgMCAwIDAgMSAxaDUifV0sWyJwYXRoIix7ZDoibTUgMTEtMyAzIn1dLFsicGF0aCIse2Q6Im01IDE3LTMtM2gxMCJ9XV0sWmI9W1sicGF0aCIse2Q6Im0xOC4yMjYgNS4yMjYtMi41Mi0yLjUyQTIuNCAyLjQgMCAwIDAgMTQgMkg2YTIgMiAwIDAgMC0yIDJ2MTZhMiAyIDAgMCAwIDIgMmgxMmEyIDIgMCAwIDAgMi0ydi0uMzUxIn1dLFsicGF0aCIse2Q6Ik0yMS4zNzggMTIuNjI2YTEgMSAwIDAgMC0zLjAwNC0zLjAwNGwtNC4wMSA0LjAxMmEyIDIgMCAwIDAtLjUwNi44NTRsLS44MzcgMi44N2EuNS41IDAgMCAwIC42Mi42MmwyLjg3LS44MzdhMiAyIDAgMCAwIC44NTQtLjUwNnoifV0sWyJwYXRoIix7ZDoiTTggMThoMSJ9XV0sWGI9W1sicGF0aCIse2Q6Ik0xMi42NTkgMjJIMThhMiAyIDAgMCAwIDItMlY4YTIuNCAyLjQgMCAwIDAtLjcwNi0xLjcwNmwtMy41ODgtMy41ODhBMi40IDIuNCAwIDAgMCAxNCAySDZhMiAyIDAgMCAwLTIgMnY5LjM0In1dLFsicGF0aCIse2Q6Ik0xNCAydjVhMSAxIDAgMCAwIDEgMWg1In1dLFsicGF0aCIse2Q6Ik0xMC4zNzggMTIuNjIyYTEgMSAwIDAgMSAzIDMuMDAzTDguMzYgMjAuNjM3YTIgMiAwIDAgMS0uODU0LjUwNmwtMi44NjcuODM3YS41LjUgMCAwIDEtLjYyLS42MmwuODM2LTIuODY5YTIgMiAwIDAgMSAuNTA2LS44NTN6In1dXSxLYj1bWyJwYXRoIix7ZDoiTTYgMjJhMiAyIDAgMCAxLTItMlY0YTIgMiAwIDAgMSAyLTJoOGEyLjQgMi40IDAgMCAxIDEuNzA0LjcwNmwzLjU4OCAzLjU4OEEyLjQgMi40IDAgMCAxIDIwIDh2MTJhMiAyIDAgMCAxLTIgMnoifV0sWyJwYXRoIix7ZDoiTTE0IDJ2NWExIDEgMCAwIDAgMSAxaDUifV0sWyJwYXRoIix7ZDoiTTE1LjAzMyAxMy40NGEuNjQ3LjY0NyAwIDAgMSAwIDEuMTJsLTQuMDY1IDIuMzUyYS42NDUuNjQ1IDAgMCAxLS45NjgtLjU2di00LjcwNGEuNjQ1LjY0NSAwIDAgMSAuOTY3LS41NnoifV1dLFFiPVtbInBhdGgiLHtkOiJNMTEuMzUgMjJINmEyIDIgMCAwIDEtMi0yVjRhMiAyIDAgMCAxIDItMmg4YTIuNCAyLjQgMCAwIDEgMS43MDYuNzA2bDMuNTg4IDMuNTg4QTIuNCAyLjQgMCAwIDEgMjAgOHY1LjM1In1dLFsicGF0aCIse2Q6Ik0xNCAydjVhMSAxIDAgMCAwIDEgMWg1In1dLFsicGF0aCIse2Q6Ik0xNCAxOWg2In1dLFsicGF0aCIse2Q6Ik0xNyAxNnY2In1dXSxKYj1bWyJwYXRoIix7ZDoiTTYgMjJhMiAyIDAgMCAxLTItMlY0YTIgMiAwIDAgMSAyLTJoOGEyLjQgMi40IDAgMCAxIDEuNzA0LjcwNmwzLjU4OCAzLjU4OEEyLjQgMi40IDAgMCAxIDIwIDh2MTJhMiAyIDAgMCAxLTIgMnoifV0sWyJwYXRoIix7ZDoiTTEyIDE3aC4wMSJ9XSxbInBhdGgiLHtkOiJNOS4xIDlhMyAzIDAgMCAxIDUuODIgMWMwIDItMyAzLTMgMyJ9XV0sdGl0PVtbInBhdGgiLHtkOiJNNiAyMmEyIDIgMCAwIDEtMi0yVjRhMiAyIDAgMCAxIDItMmg4YTIuNCAyLjQgMCAwIDEgMS43MDQuNzA2bDMuNTg4IDMuNTg4QTIuNCAyLjQgMCAwIDEgMjAgOHYxMmEyIDIgMCAwIDEtMiAyeiJ9XSxbInBhdGgiLHtkOiJNMTQgMnY1YTEgMSAwIDAgMCAxIDFoNSJ9XSxbInBhdGgiLHtkOiJNOSAxNWg2In1dLFsicGF0aCIse2Q6Ik0xMiAxOHYtNiJ9XV0sYWl0PVtbInBhdGgiLHtkOiJNMjAgMTBWOGEyLjQgMi40IDAgMCAwLS43MDYtMS43MDRsLTMuNTg4LTMuNTg4QTIuNCAyLjQgMCAwIDAgMTQgMkg2YTIgMiAwIDAgMC0yIDJ2MTZhMiAyIDAgMCAwIDIgMmg0LjM1In1dLFsicGF0aCIse2Q6Ik0xNCAydjVhMSAxIDAgMCAwIDEgMWg1In1dLFsicGF0aCIse2Q6Ik0xNiAxNGEyIDIgMCAwIDAtMiAyIn1dLFsicGF0aCIse2Q6Ik0xNiAyMmEyIDIgMCAwIDEtMi0yIn1dLFsicGF0aCIse2Q6Ik0yMCAxNGEyIDIgMCAwIDEgMiAyIn1dLFsicGF0aCIse2Q6Ik0yMCAyMmEyIDIgMCAwIDAgMi0yIn1dXSxpaXQ9W1sicGF0aCIse2Q6Ik02IDIyYTIgMiAwIDAgMS0yLTJWNGEyIDIgMCAwIDEgMi0yaDhhMi40IDIuNCAwIDAgMSAxLjcwNC43MDZsMy41ODggMy41ODhBMi40IDIuNCAwIDAgMSAyMCA4djEyYTIgMiAwIDAgMS0yIDJ6In1dLFsicGF0aCIse2Q6Ik0xNCAydjVhMSAxIDAgMCAwIDEgMWg1In1dLFsiY2lyY2xlIix7Y3g6IjExLjUiLGN5OiIxNC41IixyOiIyLjUifV0sWyJwYXRoIix7ZDoiTTEzLjMgMTYuMyAxNSAxOCJ9XV0sZXY9W1sicGF0aCIse2Q6Ik0xMS4xIDIySDZhMiAyIDAgMCAxLTItMlY0YTIgMiAwIDAgMSAyLTJoOGEyLjQgMi40IDAgMCAxIDEuNzA2LjcwNmwzLjU4OSAzLjU4OEEyLjQgMi40IDAgMCAxIDIwIDh2My4yNSJ9XSxbInBhdGgiLHtkOiJNMTQgMnY1YTEgMSAwIDAgMCAxIDFoNSJ9XSxbInBhdGgiLHtkOiJtMjEgMjItMi44OC0yLjg4In1dLFsiY2lyY2xlIix7Y3g6IjE2IixjeToiMTciLHI6IjMifV1dLHR2PVtbInBhdGgiLHtkOiJNNiAyMmEyIDIgMCAwIDEtMi0yVjRhMiAyIDAgMCAxIDItMmg4YTIuNCAyLjQgMCAwIDEgMS43MDQuNzA2bDMuNTg4IDMuNTg4QTIuNCAyLjQgMCAwIDEgMjAgOHYxMmEyIDIgMCAwIDEtMiAyeiJ9XSxbInBhdGgiLHtkOiJNMTQgMnY1YTEgMSAwIDAgMCAxIDFoNSJ9XSxbInBhdGgiLHtkOiJNOCAxNWguMDEifV0sWyJwYXRoIix7ZDoiTTExLjUgMTMuNWEyLjUgMi41IDAgMCAxIDAgMyJ9XSxbInBhdGgiLHtkOiJNMTUgMTJhNSA1IDAgMCAxIDAgNiJ9XV0scml0PVtbInBhdGgiLHtkOiJNNiAyMmEyIDIgMCAwIDEtMi0yVjRhMiAyIDAgMCAxIDItMmg4YTIuNCAyLjQgMCAwIDEgMS43MDQuNzA2bDMuNTg4IDMuNTg4QTIuNCAyLjQgMCAwIDEgMjAgOHYxMmEyIDIgMCAwIDEtMiAyeiJ9XSxbInBhdGgiLHtkOiJNMTQgMnY1YTEgMSAwIDAgMCAxIDFoNSJ9XSxbInBhdGgiLHtkOiJNOCAxMmg4In1dLFsicGF0aCIse2Q6Ik0xMCAxMXYyIn1dLFsicGF0aCIse2Q6Ik04IDE3aDgifV0sWyJwYXRoIix7ZDoiTTE0IDE2djIifV1dLHNpdD1bWyJwYXRoIix7ZDoiTTYgMjJhMiAyIDAgMCAxLTItMlY0YTIgMiAwIDAgMSAyLTJoOGEyLjQgMi40IDAgMCAxIDEuNzA0LjcwNmwzLjU4OCAzLjU4OEEyLjQgMi40IDAgMCAxIDIwIDh2MTJhMiAyIDAgMCAxLTIgMnoifV0sWyJwYXRoIix7ZDoiTTE0IDJ2NWExIDEgMCAwIDAgMSAxaDUifV0sWyJwYXRoIix7ZDoiTTggMTNoMiJ9XSxbInBhdGgiLHtkOiJNMTQgMTNoMiJ9XSxbInBhdGgiLHtkOiJNOCAxN2gyIn1dLFsicGF0aCIse2Q6Ik0xNCAxN2gyIn1dXSxuaXQ9W1sicGF0aCIse2Q6Ik0xMSAyMWExIDEgMCAwIDEtMSAxSDRhMSAxIDAgMCAxLTEtMXYtOGExIDEgMCAwIDEgMS0xIn1dLFsicGF0aCIse2Q6Ik0xNiAxNmExIDEgMCAwIDEtMSAxSDlhMSAxIDAgMCAxLTEtMVY4YTEgMSAwIDAgMSAxLTEifV0sWyJwYXRoIix7ZDoiTTIxIDZhMiAyIDAgMCAwLS41ODYtMS40MTRsLTItMkEyIDIgMCAwIDAgMTcgMmgtM2ExIDEgMCAwIDAtMSAxdjhhMSAxIDAgMCAwIDEgMWg2YTEgMSAwIDAgMCAxLTF6In1dXSxvaXQ9W1sicGF0aCIse2Q6Ik00IDExVjRhMiAyIDAgMCAxIDItMmg4YTIuNCAyLjQgMCAwIDEgMS43MDYuNzA2bDMuNTg4IDMuNTg4QTIuNCAyLjQgMCAwIDEgMjAgOHYxMmEyIDIgMCAwIDEtMiAySDZhMiAyIDAgMCAxLTItMnYtM2EyIDIgMCAwIDEgMi0yaDcifV0sWyJwYXRoIix7ZDoiTTE0IDJ2NWExIDEgMCAwIDAgMSAxaDUifV0sWyJwYXRoIix7ZDoibTEwIDE4IDMtMy0zLTMifV1dLGxpdD1bWyJwYXRoIix7ZDoiTTYgMjJhMiAyIDAgMCAxLTItMlY0YTIgMiAwIDAgMSAyLTJoOGEyLjQgMi40IDAgMCAxIDEuNzA0LjcwNmwzLjU4OCAzLjU4OEEyLjQgMi40IDAgMCAxIDIwIDh2MTJhMiAyIDAgMCAxLTIgMnoifV0sWyJwYXRoIix7ZDoiTTE0IDJ2NWExIDEgMCAwIDAgMSAxaDUifV0sWyJwYXRoIix7ZDoibTggMTYgMi0yLTItMiJ9XSxbInBhdGgiLHtkOiJNMTIgMThoNCJ9XV0sY2l0PVtbInBhdGgiLHtkOiJNNiAyMmEyIDIgMCAwIDEtMi0yVjRhMiAyIDAgMCAxIDItMmg4YTIuNCAyLjQgMCAwIDEgMS43MDQuNzA2bDMuNTg4IDMuNTg4QTIuNCAyLjQgMCAwIDEgMjAgOHYxMmEyIDIgMCAwIDEtMiAyeiJ9XSxbInBhdGgiLHtkOiJNMTQgMnY1YTEgMSAwIDAgMCAxIDFoNSJ9XSxbInBhdGgiLHtkOiJNMTAgOUg4In1dLFsicGF0aCIse2Q6Ik0xNiAxM0g4In1dLFsicGF0aCIse2Q6Ik0xNiAxN0g4In1dXSxhdj1bWyJwYXRoIix7ZDoiTTEyIDIyaDZhMiAyIDAgMCAwIDItMlY4YTIuNCAyLjQgMCAwIDAtLjcwNi0xLjcwNmwtMy41ODgtMy41ODhBMi40IDIuNCAwIDAgMCAxNCAySDZhMiAyIDAgMCAwLTIgMnY2In1dLFsicGF0aCIse2Q6Ik0xNCAydjVhMSAxIDAgMCAwIDEgMWg1In1dLFsicGF0aCIse2Q6Ik0zIDE2di0xLjVhLjUuNSAwIDAgMSAuNS0uNWg3YS41LjUgMCAwIDEgLjUuNVYxNiJ9XSxbInBhdGgiLHtkOiJNNiAyMmgyIn1dLFsicGF0aCIse2Q6Ik03IDE0djgifV1dLGRpdD1bWyJwYXRoIix7ZDoiTTYgMjJhMiAyIDAgMCAxLTItMlY0YTIgMiAwIDAgMSAyLTJoOGEyLjQgMi40IDAgMCAxIDEuNzA0LjcwNmwzLjU4OCAzLjU4OEEyLjQgMi40IDAgMCAxIDIwIDh2MTJhMiAyIDAgMCAxLTIgMnoifV0sWyJwYXRoIix7ZDoiTTE0IDJ2NWExIDEgMCAwIDAgMSAxaDUifV0sWyJwYXRoIix7ZDoiTTExIDE4aDIifV0sWyJwYXRoIix7ZDoiTTEyIDEydjYifV0sWyJwYXRoIix7ZDoiTTkgMTN2LS41YS41LjUgMCAwIDEgLjUtLjVoNWEuNS41IDAgMCAxIC41LjV2LjUifV1dLGhpdD1bWyJwYXRoIix7ZDoiTTYgMjJhMiAyIDAgMCAxLTItMlY0YTIgMiAwIDAgMSAyLTJoOGEyLjQgMi40IDAgMCAxIDEuNzA0LjcwNmwzLjU4OCAzLjU4OEEyLjQgMi40IDAgMCAxIDIwIDh2MTJhMiAyIDAgMCAxLTIgMnoifV0sWyJwYXRoIix7ZDoiTTE0IDJ2NWExIDEgMCAwIDAgMSAxaDUifV0sWyJwYXRoIix7ZDoiTTEyIDEydjYifV0sWyJwYXRoIix7ZDoibTE1IDE1LTMtMy0zIDMifV1dLHBpdD1bWyJwYXRoIix7ZDoiTTYgMjJhMiAyIDAgMCAxLTItMlY0YTIgMiAwIDAgMSAyLTJoOGEyLjQgMi40IDAgMCAxIDEuNzA0LjcwNmwzLjU4OCAzLjU4OEEyLjQgMi40IDAgMCAxIDIwIDh2MTJhMiAyIDAgMCAxLTIgMnoifV0sWyJwYXRoIix7ZDoiTTE0IDJ2NWExIDEgMCAwIDAgMSAxaDUifV0sWyJwYXRoIix7ZDoiTTE2IDIyYTQgNCAwIDAgMC04IDAifV0sWyJjaXJjbGUiLHtjeDoiMTIiLGN5OiIxNSIscjoiMyJ9XV0saXY9W1sicGF0aCIse2Q6Ik00IDEyVjRhMiAyIDAgMCAxIDItMmg4YTIuNCAyLjQgMCAwIDEgMS43MDYuNzA2bDMuNTg4IDMuNTg4QTIuNCAyLjQgMCAwIDEgMjAgOHYxMmEyIDIgMCAwIDEtMiAyIn1dLFsicGF0aCIse2Q6Ik0xNCAydjVhMSAxIDAgMCAwIDEgMWg1In1dLFsicGF0aCIse2Q6Im0xMCAxNy44NDMgMy4wMzMtMS43NTVhLjY0LjY0IDAgMCAxIC45NjcuNTZ2NC43MDRhLjY1LjY1IDAgMCAxLS45NjcuNTZMMTAgMjAuMTU3In1dLFsicmVjdCIse3dpZHRoOiI3IixoZWlnaHQ6IjYiLHg6IjMiLHk6IjE2IixyeDoiMSJ9XV0sdWl0PVtbInBhdGgiLHtkOiJNNCAxMS41NVY0YTIgMiAwIDAgMSAyLTJoOGEyLjQgMi40IDAgMCAxIDEuNzA2LjcwNmwzLjU4OCAzLjU4OEEyLjQgMi40IDAgMCAxIDIwIDh2MTJhMiAyIDAgMCAxLTIgMmgtMS45NSJ9XSxbInBhdGgiLHtkOiJNMTQgMnY1YTEgMSAwIDAgMCAxIDFoNSJ9XSxbInBhdGgiLHtkOiJNMTIgMTVhNSA1IDAgMCAxIDAgNiJ9XSxbInBhdGgiLHtkOiJNOCAxNC41MDJhLjUuNSAwIDAgMC0uODI2LS4zODFsLTEuODkzIDEuNjMxYTEgMSAwIDAgMS0uNjUxLjI0M0gzLjVhLjUuNSAwIDAgMC0uNS41MDF2My4wMDZhLjUuNSAwIDAgMCAuNS41MDFoMS4xMjlhMSAxIDAgMCAxIC42NTIuMjQzbDEuODkzIDEuNjMzYS41LjUgMCAwIDAgLjgyNi0uMzh6In1dXSxydj1bWyJwYXRoIix7ZDoiTTExIDIySDZhMiAyIDAgMCAxLTItMlY0YTIgMiAwIDAgMSAyLTJoOGEyLjQgMi40IDAgMCAxIDEuNzA2LjcwNmwzLjU4OCAzLjU4OEEyLjQgMi40IDAgMCAxIDIwIDh2NSJ9XSxbInBhdGgiLHtkOiJNMTQgMnY1YTEgMSAwIDAgMCAxIDFoNSJ9XSxbInBhdGgiLHtkOiJtMTUgMTcgNSA1In1dLFsicGF0aCIse2Q6Im0yMCAxNy01IDUifV1dLGZpdD1bWyJwYXRoIix7ZDoiTTYgMjJhMiAyIDAgMCAxLTItMlY0YTIgMiAwIDAgMSAyLTJoOGEyLjQgMi40IDAgMCAxIDEuNzA0LjcwNmwzLjU4OCAzLjU4OEEyLjQgMi40IDAgMCAxIDIwIDh2MTJhMiAyIDAgMCAxLTIgMnoifV0sWyJwYXRoIix7ZDoiTTE0IDJ2NWExIDEgMCAwIDAgMSAxaDUifV0sWyJwYXRoIix7ZDoibTE0LjUgMTIuNS01IDUifV0sWyJwYXRoIix7ZDoibTkuNSAxMi41IDUgNSJ9XV0sbWl0PVtbInBhdGgiLHtkOiJNNiAyMmEyIDIgMCAwIDEtMi0yVjRhMiAyIDAgMCAxIDItMmg4YTIuNCAyLjQgMCAwIDEgMS43MDQuNzA2bDMuNTg4IDMuNTg4QTIuNCAyLjQgMCAwIDEgMjAgOHYxMmEyIDIgMCAwIDEtMiAyeiJ9XSxbInBhdGgiLHtkOiJNMTQgMnY1YTEgMSAwIDAgMCAxIDFoNSJ9XV0sZ2l0PVtbInBhdGgiLHtkOiJNMTUgMmgtNGEyIDIgMCAwIDAtMiAydjExYTIgMiAwIDAgMCAyIDJoOGEyIDIgMCAwIDAgMi0yVjgifV0sWyJwYXRoIix7ZDoiTTE2LjcwNiAyLjcwNkEyLjQgMi40IDAgMCAwIDE1IDJ2NWExIDEgMCAwIDAgMSAxaDVhMi40IDIuNCAwIDAgMC0uNzA2LTEuNzA2eiJ9XSxbInBhdGgiLHtkOiJNNSA3YTIgMiAwIDAgMC0yIDJ2MTFhMiAyIDAgMCAwIDIgMmg4YTIgMiAwIDAgMCAxLjczMi0xIn1dXSxiaXQ9W1sicmVjdCIse3dpZHRoOiIxOCIsaGVpZ2h0OiIxOCIseDoiMyIseToiMyIscng6IjIifV0sWyJwYXRoIix7ZDoiTTcgM3YxOCJ9XSxbInBhdGgiLHtkOiJNMyA3LjVoNCJ9XSxbInBhdGgiLHtkOiJNMyAxMmgxOCJ9XSxbInBhdGgiLHtkOiJNMyAxNi41aDQifV0sWyJwYXRoIix7ZDoiTTE3IDN2MTgifV0sWyJwYXRoIix7ZDoiTTE3IDcuNWg0In1dLFsicGF0aCIse2Q6Ik0xNyAxNi41aDQifV1dLHN2PVtbInBhdGgiLHtkOiJNMTIgMTBhMiAyIDAgMCAwLTIgMmMwIDEuMDItLjEgMi41MS0uMjYgNCJ9XSxbInBhdGgiLHtkOiJNMTQgMTMuMTJjMCAyLjM4IDAgNi4zOC0xIDguODgifV0sWyJwYXRoIix7ZDoiTTE3LjI5IDIxLjAyYy4xMi0uNi40My0yLjMuNS0zLjAyIn1dLFsicGF0aCIse2Q6Ik0yIDEyYTEwIDEwIDAgMCAxIDE4LTYifV0sWyJwYXRoIix7ZDoiTTIgMTZoLjAxIn1dLFsicGF0aCIse2Q6Ik0yMS44IDE2Yy4yLTIgLjEzMS01LjM1NCAwLTYifV0sWyJwYXRoIix7ZDoiTTUgMTkuNUM1LjUgMTggNiAxNSA2IDEyYTYgNiAwIDAgMSAuMzQtMiJ9XSxbInBhdGgiLHtkOiJNOC42NSAyMmMuMjEtLjY2LjQ1LTEuMzIuNTctMiJ9XSxbInBhdGgiLHtkOiJNOSA2LjhhNiA2IDAgMCAxIDkgNS4ydjIifV1dLHZpdD1bWyJwYXRoIix7ZDoiTTE1IDYuNVYzYTEgMSAwIDAgMC0xLTFoLTJhMSAxIDAgMCAwLTEgMXYzLjUifV0sWyJwYXRoIix7ZDoiTTkgMThoOCJ9XSxbInBhdGgiLHtkOiJNMTggM2gtMyJ9XSxbInBhdGgiLHtkOiJNMTEgM2E2IDYgMCAwIDAtNiA2djExIn1dLFsicGF0aCIse2Q6Ik01IDEzaDQifV0sWyJwYXRoIix7ZDoiTTE3IDEwYTQgNCAwIDAgMC04IDB2MTBhMiAyIDAgMCAwIDIgMmg0YTIgMiAwIDAgMCAyLTJaIn1dXSx5aXQ9W1sicGF0aCIse2Q6Ik0xOCAxMi40N3YuMDNtMC0uNXYuNDdtLS40NzUgNS4wNTZBNi43NDQgNi43NDQgMCAwIDEgMTUgMThjLTMuNTYgMC03LjU2LTIuNTMtOC41LTYgLjM0OC0xLjI4IDEuMTE0LTIuNDMzIDIuMTIxLTMuMzhtMy40NDQtMi4wODhBOC44MDIgOC44MDIgMCAwIDEgMTUgNmMzLjU2IDAgNi4wNiAyLjU0IDcgNi0uMzA5IDEuMTQtLjc4NiAyLjE3Ny0xLjQxMyAzLjA1OCJ9XSxbInBhdGgiLHtkOiJNNyAxMC42N0M3IDggNS41OCA1Ljk3IDIuNzMgNS41Yy0xIDEuNS0xIDUgLjIzIDYuNS0xLjI0IDEuNS0xLjI0IDUtLjIzIDYuNUM1LjU4IDE4LjAzIDcgMTYgNyAxMy4zM203LjQ4LTQuMzcyQTkuNzcgOS43NyAwIDAgMSAxNiA2LjA3bTAgMTEuODZhOS43NyA5Ljc3IDAgMCAxLTEuNzI4LTMuNjE4In1dLFsicGF0aCIse2Q6Im0xNi4wMSAxNy45My0uMjMgMS40QTIgMiAwIDAgMSAxMy44IDIxSDkuNWE1Ljk2IDUuOTYgMCAwIDAgMS40OS0zLjk4TTguNTMgM2g1LjI3YTIgMiAwIDAgMSAxLjk4IDEuNjdsLjIzIDEuNE0yIDJsMjAgMjAifV1dLHhpdD1bWyJwYXRoIix7ZDoiTTIgMTZzOS0xNSAyMC00QzExIDIzIDIgOCAyIDgifV1dLHdpdD1bWyJwYXRoIix7ZDoiTTYuNSAxMmMuOTQtMy40NiA0Ljk0LTYgOC41LTYgMy41NiAwIDYuMDYgMi41NCA3IDYtLjk0IDMuNDctMy40NCA2LTcgNnMtNy41Ni0yLjUzLTguNS02WiJ9XSxbInBhdGgiLHtkOiJNMTggMTJ2LjUifV0sWyJwYXRoIix7ZDoiTTE2IDE3LjkzYTkuNzcgOS43NyAwIDAgMSAwLTExLjg2In1dLFsicGF0aCIse2Q6Ik03IDEwLjY3QzcgOCA1LjU4IDUuOTcgMi43MyA1LjVjLTEgMS41LTEgNSAuMjMgNi41LTEuMjQgMS41LTEuMjQgNS0uMjMgNi41QzUuNTggMTguMDMgNyAxNiA3IDEzLjMzIn1dLFsicGF0aCIse2Q6Ik0xMC40NiA3LjI2QzEwLjIgNS44OCA5LjE3IDQuMjQgOCAzaDUuOGEyIDIgMCAwIDEgMS45OCAxLjY3bC4yMyAxLjQifV0sWyJwYXRoIix7ZDoibTE2LjAxIDE3LjkzLS4yMyAxLjRBMiAyIDAgMCAxIDEzLjggMjFIOS41YTUuOTYgNS45NiAwIDAgMCAxLjQ5LTMuOTgifV1dLE1pdD1bWyJwYXRoIix7ZDoibTE3LjU4NiAxMS40MTQtNS45MyA1LjkzYTEgMSAwIDAgMS04LThsMy4xMzctMy4xMzdhLjcwNy43MDcgMCAwIDEgMS4yMDcuNVYxMCJ9XSxbInBhdGgiLHtkOiJNMjAuNDE0IDguNTg2IDIyIDcifV0sWyJjaXJjbGUiLHtjeDoiMTkiLGN5OiIxMCIscjoiMiJ9XV0seml0PVtbInBhdGgiLHtkOiJNMTYgMTZjLTMgMC01LTItOC0yYTYgNiAwIDAgMC00IDEuNTI4In1dLFsicGF0aCIse2Q6Im0yIDIgMjAgMjAifV0sWyJwYXRoIix7ZDoiTTQgMjJWNCJ9XSxbInBhdGgiLHtkOiJNNy42NTYgMkg4YzMgMCA1IDIgNy4zMzMgMnEyIDAgMy4wNjctLjhBMSAxIDAgMCAxIDIwIDR2MTAuMzQ3In1dXSxraXQ9W1sicGF0aCIse2Q6Ik0xOCAyMlYyLjhhLjguOCAwIDAgMC0xLjE3LS43MUw1LjQ1IDcuNzhhLjguOCAwIDAgMCAwIDEuNDRMMTggMTUuNSJ9XV0sU2l0PVtbInBhdGgiLHtkOiJNNiAyMlYyLjhhLjguOCAwIDAgMSAxLjE3LS43MWwxMS4zOCA1LjY5YS44LjggMCAwIDEgMCAxLjQ0TDYgMTUuNSJ9XV0sQ2l0PVtbInBhdGgiLHtkOiJNNCAyMlY0YTEgMSAwIDAgMSAuNC0uOEE2IDYgMCAwIDEgOCAyYzMgMCA1IDIgNy4zMzMgMnEyIDAgMy4wNjctLjhBMSAxIDAgMCAxIDIwIDR2MTBhMSAxIDAgMCAxLS40LjhBNiA2IDAgMCAxIDE2IDE2Yy0zIDAtNS0yLTgtMmE2IDYgMCAwIDAtNCAxLjUyOCJ9XV0sX2l0PVtbInBhdGgiLHtkOiJNMTIgMmMxIDMgMi41IDMuNSAzLjUgNC41QTUgNSAwIDAgMSAxNyAxMGE1IDUgMCAxIDEtMTAgMGMwLS4zIDAtLjYuMS0uOWEyIDIgMCAxIDAgMy4zLTJDOCA0LjUgMTEgMiAxMiAyWiJ9XSxbInBhdGgiLHtkOiJtNSAyMiAxNC00In1dLFsicGF0aCIse2Q6Im01IDE4IDE0IDQifV1dLFRpdD1bWyJwYXRoIix7ZDoiTTEyIDNxMSA0IDQgNi41dDMgNS41YTEgMSAwIDAgMS0xNCAwIDUgNSAwIDAgMSAxLTMgMSAxIDAgMCAwIDUgMGMwLTItMS41LTMtMS41LTVxMC0yIDIuNS00In1dXSxMaXQ9W1sicGF0aCIse2Q6Ik0xMS42NTIgNkgxOCJ9XSxbInBhdGgiLHtkOiJNMTIgMTN2MSJ9XSxbInBhdGgiLHtkOiJNMTYgMTZ2NGEyIDIgMCAwIDEtMiAyaC00YTIgMiAwIDAgMS0yLTJ2LThhNCA0IDAgMCAwLS44LTIuNGwtLjYtLjhBMyAzIDAgMCAxIDYgN1Y2In1dLFsicGF0aCIse2Q6Im0yIDIgMjAgMjAifV0sWyJwYXRoIix7ZDoiTTcuNjQ5IDJIMTdhMSAxIDAgMCAxIDEgMXY0YTMgMyAwIDAgMS0uNiAxLjhsLS42LjhhNCA0IDAgMCAwLS41NSAxLjAwNyJ9XV0sJGl0PVtbInBhdGgiLHtkOiJNMTIgMTN2MSJ9XSxbInBhdGgiLHtkOiJNMTcgMmExIDEgMCAwIDEgMSAxdjRhMyAzIDAgMCAxLS42IDEuOGwtLjYuOEE0IDQgMCAwIDAgMTYgMTJ2OGEyIDIgMCAwIDEtMiAySDEwYTIgMiAwIDAgMS0yLTJ2LThhNCA0IDAgMCAwLS44LTIuNGwtLjYtLjhBMyAzIDAgMCAxIDYgN1YzYTEgMSAwIDAgMSAxLTF6In1dLFsicGF0aCIse2Q6Ik02IDZoMTIifV1dLEFpdD1bWyJwYXRoIix7ZDoiTTEwIDJ2Mi4zNDMifV0sWyJwYXRoIix7ZDoiTTE0IDJ2Ni4zNDMifV0sWyJwYXRoIix7ZDoibTIgMiAyMCAyMCJ9XSxbInBhdGgiLHtkOiJNMjAgMjBhMiAyIDAgMCAxLTIgMkg2YTIgMiAwIDAgMS0xLjc1NS0yLjk2bDUuMjI3LTkuNTYzIn1dLFsicGF0aCIse2Q6Ik02LjQ1MyAxNUgxNSJ9XSxbInBhdGgiLHtkOiJNOC41IDJoNyJ9XV0sRGl0PVtbInBhdGgiLHtkOiJNMTQgMnY2YTIgMiAwIDAgMCAuMjQ1Ljk2bDUuNTEgMTAuMDhBMiAyIDAgMCAxIDE4IDIySDZhMiAyIDAgMCAxLTEuNzU1LTIuOTZsNS41MS0xMC4wOEEyIDIgMCAwIDAgMTAgOFYyIn1dLFsicGF0aCIse2Q6Ik02LjQ1MyAxNWgxMS4wOTQifV0sWyJwYXRoIix7ZDoiTTguNSAyaDcifV1dLEVpdD1bWyJwYXRoIix7ZDoiTTEwIDJ2Ni4yOTJhNyA3IDAgMSAwIDQgMFYyIn1dLFsicGF0aCIse2Q6Ik01IDE1aDE0In1dLFsicGF0aCIse2Q6Ik04LjUgMmg3In1dXSxQaXQ9W1sicGF0aCIse2Q6Im0zIDcgNSA1LTUgNVY3In1dLFsicGF0aCIse2Q6Im0yMSA3LTUgNSA1IDVWNyJ9XSxbInBhdGgiLHtkOiJNMTIgMjB2MiJ9XSxbInBhdGgiLHtkOiJNMTIgMTR2MiJ9XSxbInBhdGgiLHtkOiJNMTIgOHYyIn1dLFsicGF0aCIse2Q6Ik0xMiAydjIifV1dLElpdD1bWyJwYXRoIix7ZDoiTTggM0g1YTIgMiAwIDAgMC0yIDJ2MTRjMCAxLjEuOSAyIDIgMmgzIn1dLFsicGF0aCIse2Q6Ik0xNiAzaDNhMiAyIDAgMCAxIDIgMnYxNGEyIDIgMCAwIDEtMiAyaC0zIn1dLFsicGF0aCIse2Q6Ik0xMiAyMHYyIn1dLFsicGF0aCIse2Q6Ik0xMiAxNHYyIn1dLFsicGF0aCIse2Q6Ik0xMiA4djIifV0sWyJwYXRoIix7ZDoiTTEyIDJ2MiJ9XV0sTml0PVtbInBhdGgiLHtkOiJtMTcgMy01IDUtNS01aDEwIn1dLFsicGF0aCIse2Q6Im0xNyAyMS01LTUtNSA1aDEwIn1dLFsicGF0aCIse2Q6Ik00IDEySDIifV0sWyJwYXRoIix7ZDoiTTEwIDEySDgifV0sWyJwYXRoIix7ZDoiTTE2IDEyaC0yIn1dLFsicGF0aCIse2Q6Ik0yMiAxMmgtMiJ9XV0sRml0PVtbInBhdGgiLHtkOiJNMjEgOFY1YTIgMiAwIDAgMC0yLTJINWEyIDIgMCAwIDAtMiAydjMifV0sWyJwYXRoIix7ZDoiTTIxIDE2djNhMiAyIDAgMCAxLTIgMkg1YTIgMiAwIDAgMS0yLTJ2LTMifV0sWyJwYXRoIix7ZDoiTTQgMTJIMiJ9XSxbInBhdGgiLHtkOiJNMTAgMTJIOCJ9XSxbInBhdGgiLHtkOiJNMTYgMTJoLTIifV0sWyJwYXRoIix7ZDoiTTIyIDEyaC0yIn1dXSxPaXQ9W1sicGF0aCIse2Q6Ik0xMiA1YTMgMyAwIDEgMSAzIDNtLTMtM2EzIDMgMCAxIDAtMyAzbTMtM3YxTTkgOGEzIDMgMCAxIDAgMyAzTTkgOGgxbTUgMGEzIDMgMCAxIDEtMyAzbTMtM2gtMW0tMiAzdi0xIn1dLFsiY2lyY2xlIix7Y3g6IjEyIixjeToiOCIscjoiMiJ9XSxbInBhdGgiLHtkOiJNMTIgMTB2MTIifV0sWyJwYXRoIix7ZDoiTTEyIDIyYzQuMiAwIDctMS42NjcgNy01LTQuMiAwLTcgMS42NjctNyA1WiJ9XSxbInBhdGgiLHtkOiJNMTIgMjJjLTQuMiAwLTctMS42NjctNy01IDQuMiAwIDcgMS42NjcgNyA1WiJ9XV0sUml0PVtbImNpcmNsZSIse2N4OiIxMiIsY3k6IjEyIixyOiIzIn1dLFsicGF0aCIse2Q6Ik0xMiAxNi41QTQuNSA0LjUgMCAxIDEgNy41IDEyIDQuNSA0LjUgMCAxIDEgMTIgNy41YTQuNSA0LjUgMCAxIDEgNC41IDQuNSA0LjUgNC41IDAgMSAxLTQuNSA0LjUifV0sWyJwYXRoIix7ZDoiTTEyIDcuNVY5In1dLFsicGF0aCIse2Q6Ik03LjUgMTJIOSJ9XSxbInBhdGgiLHtkOiJNMTYuNSAxMkgxNSJ9XSxbInBhdGgiLHtkOiJNMTIgMTYuNVYxNSJ9XSxbInBhdGgiLHtkOiJtOCA4IDEuODggMS44OCJ9XSxbInBhdGgiLHtkOiJNMTQuMTIgOS44OCAxNiA4In1dLFsicGF0aCIse2Q6Im04IDE2IDEuODgtMS44OCJ9XSxbInBhdGgiLHtkOiJNMTQuMTIgMTQuMTIgMTYgMTYifV1dLEJpdD1bWyJjaXJjbGUiLHtjeDoiMTIiLGN5OiIxMiIscjoiMyJ9XSxbInBhdGgiLHtkOiJNMyA3VjVhMiAyIDAgMCAxIDItMmgyIn1dLFsicGF0aCIse2Q6Ik0xNyAzaDJhMiAyIDAgMCAxIDIgMnYyIn1dLFsicGF0aCIse2Q6Ik0yMSAxN3YyYTIgMiAwIDAgMS0yIDJoLTIifV0sWyJwYXRoIix7ZDoiTTcgMjFINWEyIDIgMCAwIDEtMi0ydi0yIn1dXSxIaXQ9W1sicGF0aCIse2Q6Ik0yIDEyaDYifV0sWyJwYXRoIix7ZDoiTTIyIDEyaC02In1dLFsicGF0aCIse2Q6Ik0xMiAydjIifV0sWyJwYXRoIix7ZDoiTTEyIDh2MiJ9XSxbInBhdGgiLHtkOiJNMTIgMTR2MiJ9XSxbInBhdGgiLHtkOiJNMTIgMjB2MiJ9XSxbInBhdGgiLHtkOiJtMTkgOS0zIDMgMyAzIn1dLFsicGF0aCIse2Q6Im01IDE1IDMtMy0zLTMifV1dLHFpdD1bWyJwYXRoIix7ZDoiTTEyIDIydi02In1dLFsicGF0aCIse2Q6Ik0xMiA4VjIifV0sWyJwYXRoIix7ZDoiTTQgMTJIMiJ9XSxbInBhdGgiLHtkOiJNMTAgMTJIOCJ9XSxbInBhdGgiLHtkOiJNMTYgMTJoLTIifV0sWyJwYXRoIix7ZDoiTTIyIDEyaC0yIn1dLFsicGF0aCIse2Q6Im0xNSAxOS0zLTMtMyAzIn1dLFsicGF0aCIse2Q6Im0xNSA1LTMgMy0zLTMifV1dLFZpdD1bWyJwYXRoIix7ZDoiTTIwIDIwYTIgMiAwIDAgMCAyLTJWOGEyIDIgMCAwIDAtMi0yaC03LjlhMiAyIDAgMCAxLTEuNjktLjlMOS42IDMuOUEyIDIgMCAwIDAgNy45MyAzSDRhMiAyIDAgMCAwLTIgMnYxM2EyIDIgMCAwIDAgMiAyWiJ9XSxbInBhdGgiLHtkOiJtOSAxMyAyIDIgNC00In1dXSxqaXQ9W1siY2lyY2xlIix7Y3g6IjE1IixjeToiMTkiLHI6IjIifV0sWyJwYXRoIix7ZDoiTTIwLjkgMTkuOEEyIDIgMCAwIDAgMjIgMThWOGEyIDIgMCAwIDAtMi0yaC03LjlhMiAyIDAgMCAxLTEuNjktLjlMOS42IDMuOUEyIDIgMCAwIDAgNy45MyAzSDRhMiAyIDAgMCAwLTIgMnYxM2EyIDIgMCAwIDAgMiAyaDUuMSJ9XSxbInBhdGgiLHtkOiJNMTUgMTF2LTEifV0sWyJwYXRoIix7ZDoiTTE1IDE3di0yIn1dXSxVaXQ9W1sicGF0aCIse2Q6Ik0xNiAxNHYyLjJsMS42IDEifV0sWyJwYXRoIix7ZDoiTTcgMjBINGEyIDIgMCAwIDEtMi0yVjVhMiAyIDAgMCAxIDItMmgzLjlhMiAyIDAgMCAxIDEuNjkuOWwuODEgMS4yYTIgMiAwIDAgMCAxLjY3LjlIMjBhMiAyIDAgMCAxIDIgMiJ9XSxbImNpcmNsZSIse2N4OiIxNiIsY3k6IjE2IixyOiI2In1dXSxXaXQ9W1sicGF0aCIse2Q6Ik0yMCAyMGEyIDIgMCAwIDAgMi0yVjhhMiAyIDAgMCAwLTItMmgtNy45YTIgMiAwIDAgMS0xLjY5LS45TDkuNiAzLjlBMiAyIDAgMCAwIDcuOTMgM0g0YTIgMiAwIDAgMC0yIDJ2MTNhMiAyIDAgMCAwIDIgMloifV0sWyJwYXRoIix7ZDoiTTIgMTBoMjAifV1dLEdpdD1bWyJwYXRoIix7ZDoiTTEwIDEwLjUgOCAxM2wyIDIuNSJ9XSxbInBhdGgiLHtkOiJtMTQgMTAuNSAyIDIuNS0yIDIuNSJ9XSxbInBhdGgiLHtkOiJNMjAgMjBhMiAyIDAgMCAwIDItMlY4YTIgMiAwIDAgMC0yLTJoLTcuOWEyIDIgMCAwIDEtMS42OS0uOUw5LjYgMy45QTIgMiAwIDAgMCA3LjkzIDNINGEyIDIgMCAwIDAtMiAydjEzYTIgMiAwIDAgMCAyIDJ6In1dXSxudj1bWyJwYXRoIix7ZDoiTTEwLjMgMjBINGEyIDIgMCAwIDEtMi0yVjVhMiAyIDAgMCAxIDItMmgzLjk4YTIgMiAwIDAgMSAxLjY5LjlsLjY2IDEuMkEyIDIgMCAwIDAgMTIgNmg4YTIgMiAwIDAgMSAyIDJ2My4zIn1dLFsicGF0aCIse2Q6Im0xNC4zMDUgMTkuNTMuOTIzLS4zODIifV0sWyJwYXRoIix7ZDoibTE1LjIyOCAxNi44NTItLjkyMy0uMzgzIn1dLFsicGF0aCIse2Q6Im0xNi44NTIgMTUuMjI4LS4zODMtLjkyMyJ9XSxbInBhdGgiLHtkOiJtMTYuODUyIDIwLjc3Mi0uMzgzLjkyNCJ9XSxbInBhdGgiLHtkOiJtMTkuMTQ4IDE1LjIyOC4zODMtLjkyMyJ9XSxbInBhdGgiLHtkOiJtMTkuNTMgMjEuNjk2LS4zODItLjkyNCJ9XSxbInBhdGgiLHtkOiJtMjAuNzcyIDE2Ljg1Mi45MjQtLjM4MyJ9XSxbInBhdGgiLHtkOiJtMjAuNzcyIDE5LjE0OC45MjQuMzgzIn1dLFsiY2lyY2xlIix7Y3g6IjE4IixjeToiMTgiLHI6IjMifV1dLFlpdD1bWyJwYXRoIix7ZDoiTTQgMjBoMTZhMiAyIDAgMCAwIDItMlY4YTIgMiAwIDAgMC0yLTJoLTcuOTNhMiAyIDAgMCAxLTEuNjYtLjlsLS44Mi0xLjJBMiAyIDAgMCAwIDcuOTMgM0g0YTIgMiAwIDAgMC0yIDJ2MTNjMCAxLjEuOSAyIDIgMloifV0sWyJjaXJjbGUiLHtjeDoiMTIiLGN5OiIxMyIscjoiMSJ9XV0sWml0PVtbInBhdGgiLHtkOiJNMjAgMjBhMiAyIDAgMCAwIDItMlY4YTIgMiAwIDAgMC0yLTJoLTcuOWEyIDIgMCAwIDEtMS42OS0uOUw5LjYgMy45QTIgMiAwIDAgMCA3LjkzIDNINGEyIDIgMCAwIDAtMiAydjEzYTIgMiAwIDAgMCAyIDJaIn1dLFsicGF0aCIse2Q6Ik0xMiAxMHY2In1dLFsicGF0aCIse2Q6Im0xNSAxMy0zIDMtMy0zIn1dXSxYaXQ9W1sicGF0aCIse2Q6Ik0xOCAxOWE1IDUgMCAwIDEtNS01djgifV0sWyJwYXRoIix7ZDoiTTkgMjBINGEyIDIgMCAwIDEtMi0yVjVhMiAyIDAgMCAxIDItMmgzLjlhMiAyIDAgMCAxIDEuNjkuOWwuODEgMS4yYTIgMiAwIDAgMCAxLjY3LjlIMjBhMiAyIDAgMCAxIDIgMnY1In1dLFsiY2lyY2xlIix7Y3g6IjEzIixjeToiMTIiLHI6IjIifV0sWyJjaXJjbGUiLHtjeDoiMjAiLGN5OiIxOSIscjoiMiJ9XV0sS2l0PVtbImNpcmNsZSIse2N4OiIxMiIsY3k6IjEzIixyOiIyIn1dLFsicGF0aCIse2Q6Ik0yMCAyMGEyIDIgMCAwIDAgMi0yVjhhMiAyIDAgMCAwLTItMmgtNy45YTIgMiAwIDAgMS0xLjY5LS45TDkuNiAzLjlBMiAyIDAgMCAwIDcuOTMgM0g0YTIgMiAwIDAgMC0yIDJ2MTNhMiAyIDAgMCAwIDIgMloifV0sWyJwYXRoIix7ZDoiTTE0IDEzaDMifV0sWyJwYXRoIix7ZDoiTTcgMTNoMyJ9XV0sUWl0PVtbInBhdGgiLHtkOiJNMTAuNjM4IDIwSDRhMiAyIDAgMCAxLTItMlY1YTIgMiAwIDAgMSAyLTJoMy45YTIgMiAwIDAgMSAxLjY5LjlsLjgxIDEuMmEyIDIgMCAwIDAgMS42Ny45SDIwYTIgMiAwIDAgMSAyIDJ2My40MTcifV0sWyJwYXRoIix7ZDoiTTE0LjYyIDE4LjhBMi4yNSAyLjI1IDAgMSAxIDE4IDE1LjgzNmEyLjI1IDIuMjUgMCAxIDEgMy4zOCAyLjk2NmwtMi42MjYgMi44NTZhLjk5OC45OTggMCAwIDEtMS41MDcgMHoifV1dLEppdD1bWyJwYXRoIix7ZDoiTTIgOVY1YTIgMiAwIDAgMSAyLTJoMy45YTIgMiAwIDAgMSAxLjY5LjlsLjgxIDEuMmEyIDIgMCAwIDAgMS42Ny45SDIwYTIgMiAwIDAgMSAyIDJ2MTBhMiAyIDAgMCAxLTIgMkg0YTIgMiAwIDAgMS0yLTJ2LTEifV0sWyJwYXRoIix7ZDoiTTIgMTNoMTAifV0sWyJwYXRoIix7ZDoibTkgMTYgMy0zLTMtMyJ9XV0sZXJ0PVtbInBhdGgiLHtkOiJNNCAyMGgxNmEyIDIgMCAwIDAgMi0yVjhhMiAyIDAgMCAwLTItMmgtNy45M2EyIDIgMCAwIDEtMS42Ni0uOWwtLjgyLTEuMkEyIDIgMCAwIDAgNy45MyAzSDRhMiAyIDAgMCAwLTIgMnYxM2MwIDEuMS45IDIgMiAyWiJ9XSxbInBhdGgiLHtkOiJNOCAxMHY0In1dLFsicGF0aCIse2Q6Ik0xMiAxMHYyIn1dLFsicGF0aCIse2Q6Ik0xNiAxMHY2In1dXSx0cnQ9W1sicGF0aCIse2Q6Ik0xMyAyMEg0YTIgMiAwIDAgMS0yLTJWNWEyIDIgMCAwIDEgMi0yaDMuOWEyIDIgMCAwIDEgMS42OS45bC44MSAxLjJhMiAyIDAgMCAwIDEuNjcuOUgyMGEyIDIgMCAwIDEgMiAydjEuMzYifV0sWyJwYXRoIix7ZDoiTTE5IDEydjYifV0sWyJwYXRoIix7ZDoiTTE5IDE0aDIifV0sWyJjaXJjbGUiLHtjeDoiMTkiLGN5OiIyMCIscjoiMiJ9XV0sYXJ0PVtbInJlY3QiLHt3aWR0aDoiOCIsaGVpZ2h0OiI1Iix4OiIxNCIseToiMTciLHJ4OiIxIn1dLFsicGF0aCIse2Q6Ik0xMCAyMEg0YTIgMiAwIDAgMS0yLTJWNWEyIDIgMCAwIDEgMi0yaDMuOWEyIDIgMCAwIDEgMS42OS45bC44MSAxLjJhMiAyIDAgMCAwIDEuNjcuOUgyMGEyIDIgMCAwIDEgMiAydjIuNSJ9XSxbInBhdGgiLHtkOiJNMjAgMTd2LTJhMiAyIDAgMSAwLTQgMHYyIn1dXSxpcnQ9W1sicGF0aCIse2Q6Ik05IDEzaDYifV0sWyJwYXRoIix7ZDoiTTIwIDIwYTIgMiAwIDAgMCAyLTJWOGEyIDIgMCAwIDAtMi0yaC03LjlhMiAyIDAgMCAxLTEuNjktLjlMOS42IDMuOUEyIDIgMCAwIDAgNy45MyAzSDRhMiAyIDAgMCAwLTIgMnYxM2EyIDIgMCAwIDAgMiAyWiJ9XV0scnJ0PVtbInBhdGgiLHtkOiJtNiAxNCAxLjQ1LTIuOUEyIDIgMCAwIDEgOS4yNCAxMEgyMGEyIDIgMCAwIDEgMS45NCAyLjVsLTEuNTUgNmEyIDIgMCAwIDEtMS45NCAxLjVINGEyIDIgMCAwIDEtMi0yVjVjMC0xLjEuOS0yIDItMmgzLjkzYTIgMiAwIDAgMSAxLjY2LjlsLjgyIDEuMmEyIDIgMCAwIDAgMS42Ni45SDE4YTIgMiAwIDAgMSAyIDJ2MiJ9XSxbImNpcmNsZSIse2N4OiIxNCIsY3k6IjE1IixyOiIxIn1dXSxzcnQ9W1sicGF0aCIse2Q6Im02IDE0IDEuNS0yLjlBMiAyIDAgMCAxIDkuMjQgMTBIMjBhMiAyIDAgMCAxIDEuOTQgMi41bC0xLjU0IDZhMiAyIDAgMCAxLTEuOTUgMS41SDRhMiAyIDAgMCAxLTItMlY1YTIgMiAwIDAgMSAyLTJoMy45YTIgMiAwIDAgMSAxLjY5LjlsLjgxIDEuMmEyIDIgMCAwIDAgMS42Ny45SDE4YTIgMiAwIDAgMSAyIDJ2MiJ9XV0sbnJ0PVtbInBhdGgiLHtkOiJNMiA3LjVWNWEyIDIgMCAwIDEgMi0yaDMuOWEyIDIgMCAwIDEgMS42OS45bC44MSAxLjJhMiAyIDAgMCAwIDEuNjcuOUgyMGEyIDIgMCAwIDEgMiAydjEwYTIgMiAwIDAgMS0yIDJINGEyIDIgMCAwIDEtMi0xLjUifV0sWyJwYXRoIix7ZDoiTTIgMTNoMTAifV0sWyJwYXRoIix7ZDoibTUgMTAtMyAzIDMgMyJ9XV0sb3Y9W1sicGF0aCIse2Q6Ik0yIDExLjVWNWEyIDIgMCAwIDEgMi0yaDMuOWMuNyAwIDEuMy4zIDEuNy45bC44IDEuMmMuNC42IDEgLjkgMS43LjlIMjBhMiAyIDAgMCAxIDIgMnYxMGEyIDIgMCAwIDEtMiAyaC05LjUifV0sWyJwYXRoIix7ZDoiTTExLjM3OCAxMy42MjZhMSAxIDAgMSAwLTMuMDA0LTMuMDA0bC01LjAxIDUuMDEyYTIgMiAwIDAgMC0uNTA2Ljg1NGwtLjgzNyAyLjg3YS41LjUgMCAwIDAgLjYyLjYybDIuODctLjgzN2EyIDIgMCAwIDAgLjg1NC0uNTA2eiJ9XV0sb3J0PVtbInBhdGgiLHtkOiJNMTIgMTB2NiJ9XSxbInBhdGgiLHtkOiJNOSAxM2g2In1dLFsicGF0aCIse2Q6Ik0yMCAyMGEyIDIgMCAwIDAgMi0yVjhhMiAyIDAgMCAwLTItMmgtNy45YTIgMiAwIDAgMS0xLjY5LS45TDkuNiAzLjlBMiAyIDAgMCAwIDcuOTMgM0g0YTIgMiAwIDAgMC0yIDJ2MTNhMiAyIDAgMCAwIDIgMloifV1dLGxydD1bWyJwYXRoIix7ZDoiTTQgMjBoMTZhMiAyIDAgMCAwIDItMlY4YTIgMiAwIDAgMC0yLTJoLTcuOTNhMiAyIDAgMCAxLTEuNjYtLjlsLS44Mi0xLjJBMiAyIDAgMCAwIDcuOTMgM0g0YTIgMiAwIDAgMC0yIDJ2MTNjMCAxLjEuOSAyIDIgMloifV0sWyJjaXJjbGUiLHtjeDoiMTIiLGN5OiIxMyIscjoiMiJ9XSxbInBhdGgiLHtkOiJNMTIgMTV2NSJ9XV0sY3J0PVtbImNpcmNsZSIse2N4OiIxMS41IixjeToiMTIuNSIscjoiMi41In1dLFsicGF0aCIse2Q6Ik0yMCAyMGEyIDIgMCAwIDAgMi0yVjhhMiAyIDAgMCAwLTItMmgtNy45YTIgMiAwIDAgMS0xLjY5LS45TDkuNiAzLjlBMiAyIDAgMCAwIDcuOTMgM0g0YTIgMiAwIDAgMC0yIDJ2MTNhMiAyIDAgMCAwIDIgMloifV0sWyJwYXRoIix7ZDoiTTEzLjMgMTQuMyAxNSAxNiJ9XV0sZHJ0PVtbInBhdGgiLHtkOiJNMTAuNyAyMEg0YTIgMiAwIDAgMS0yLTJWNWEyIDIgMCAwIDEgMi0yaDMuOWEyIDIgMCAwIDEgMS42OS45bC44MSAxLjJhMiAyIDAgMCAwIDEuNjcuOUgyMGEyIDIgMCAwIDEgMiAydjQuMSJ9XSxbInBhdGgiLHtkOiJtMjEgMjEtMS45LTEuOSJ9XSxbImNpcmNsZSIse2N4OiIxNyIsY3k6IjE3IixyOiIzIn1dXSxocnQ9W1sicGF0aCIse2Q6Ik0yIDkuMzVWNWEyIDIgMCAwIDEgMi0yaDMuOWEyIDIgMCAwIDEgMS42OS45bC44MSAxLjJhMiAyIDAgMCAwIDEuNjcuOUgyMGEyIDIgMCAwIDEgMiAydjEwYTIgMiAwIDAgMS0yIDJINGEyIDIgMCAwIDEtMi0ydi0zYTIgMiAwIDAgMSAyLTJoNyJ9XSxbInBhdGgiLHtkOiJtOCAxNiAzLTMtMy0zIn1dXSxwcnQ9W1sicGF0aCIse2Q6Ik05IDIwSDRhMiAyIDAgMCAxLTItMlY1YTIgMiAwIDAgMSAyLTJoMy45YTIgMiAwIDAgMSAxLjY5LjlsLjgxIDEuMmEyIDIgMCAwIDAgMS42Ny45SDIwYTIgMiAwIDAgMSAyIDJ2LjUifV0sWyJwYXRoIix7ZDoiTTEyIDEwdjRoNCJ9XSxbInBhdGgiLHtkOiJtMTIgMTQgMS41MzUtMS42MDVhNSA1IDAgMCAxIDggMS41In1dLFsicGF0aCIse2Q6Ik0yMiAyMnYtNGgtNCJ9XSxbInBhdGgiLHtkOiJtMjIgMTgtMS41MzUgMS42MDVhNSA1IDAgMCAxLTgtMS41In1dXSx1cnQ9W1sicGF0aCIse2Q6Ik0yMCAxMGExIDEgMCAwIDAgMS0xVjZhMSAxIDAgMCAwLTEtMWgtMi41YTEgMSAwIDAgMS0uOC0uNGwtLjktMS4yQTEgMSAwIDAgMCAxNSAzaC0yYTEgMSAwIDAgMC0xIDF2NWExIDEgMCAwIDAgMSAxWiJ9XSxbInBhdGgiLHtkOiJNMjAgMjFhMSAxIDAgMCAwIDEtMXYtM2ExIDEgMCAwIDAtMS0xaC0yLjlhMSAxIDAgMCAxLS44OC0uNTVsLS40Mi0uODVhMSAxIDAgMCAwLS45Mi0uNkgxM2ExIDEgMCAwIDAtMSAxdjVhMSAxIDAgMCAwIDEgMVoifV0sWyJwYXRoIix7ZDoiTTMgNWEyIDIgMCAwIDAgMiAyaDMifV0sWyJwYXRoIix7ZDoiTTMgM3YxM2EyIDIgMCAwIDAgMiAyaDMifV1dLGZydD1bWyJwYXRoIix7ZDoiTTIwIDIwYTIgMiAwIDAgMCAyLTJWOGEyIDIgMCAwIDAtMi0yaC03LjlhMiAyIDAgMCAxLTEuNjktLjlMOS42IDMuOUEyIDIgMCAwIDAgNy45MyAzSDRhMiAyIDAgMCAwLTIgMnYxM2EyIDIgMCAwIDAgMiAyWiJ9XSxbInBhdGgiLHtkOiJNMTIgMTB2NiJ9XSxbInBhdGgiLHtkOiJtOSAxMyAzLTMgMyAzIn1dXSxtcnQ9W1sicGF0aCIse2Q6Ik0yMCAyMGEyIDIgMCAwIDAgMi0yVjhhMiAyIDAgMCAwLTItMmgtNy45YTIgMiAwIDAgMS0xLjY5LS45TDkuNiAzLjlBMiAyIDAgMCAwIDcuOTMgM0g0YTIgMiAwIDAgMC0yIDJ2MTNhMiAyIDAgMCAwIDIgMloifV0sWyJwYXRoIix7ZDoibTkuNSAxMC41IDUgNSJ9XSxbInBhdGgiLHtkOiJtMTQuNSAxMC41LTUgNSJ9XV0sZ3J0PVtbInBhdGgiLHtkOiJNMjAgMjBhMiAyIDAgMCAwIDItMlY4YTIgMiAwIDAgMC0yLTJoLTcuOWEyIDIgMCAwIDEtMS42OS0uOUw5LjYgMy45QTIgMiAwIDAgMCA3LjkzIDNINGEyIDIgMCAwIDAtMiAydjEzYTIgMiAwIDAgMCAyIDJaIn1dXSxicnQ9W1sicGF0aCIse2Q6Ik0yMCA1YTIgMiAwIDAgMSAyIDJ2N2EyIDIgMCAwIDEtMiAySDlhMiAyIDAgMCAxLTItMlY1YTIgMiAwIDAgMSAyLTJoMi41YTEuNSAxLjUgMCAwIDEgMS4yLjZsLjYuOGExLjUgMS41IDAgMCAwIDEuMi42eiJ9XSxbInBhdGgiLHtkOiJNMyA4LjI2OGEyIDIgMCAwIDAtMSAxLjczOFYxOWEyIDIgMCAwIDAgMiAyaDExYTIgMiAwIDAgMCAxLjczMi0xIn1dXSx2cnQ9W1sicGF0aCIse2Q6Ik0xMiAxMkg1YTIgMiAwIDAgMC0yIDJ2NSJ9XSxbImNpcmNsZSIse2N4OiIxMyIsY3k6IjE5IixyOiIyIn1dLFsiY2lyY2xlIix7Y3g6IjUiLGN5OiIxOSIscjoiMiJ9XSxbInBhdGgiLHtkOiJNOCAxOWgzbTUtMTd2MTdoNk02IDEyVjdjMC0xLjEuOS0yIDItMmgzbDUgNSJ9XV0seXJ0PVtbInBhdGgiLHtkOiJNNCAxNnYtMi4zOEM0IDExLjUgMi45NyAxMC41IDMgOGMuMDMtMi43MiAxLjQ5LTYgNC41LTZDOS4zNyAyIDEwIDMuOCAxMCA1LjVjMCAzLjExLTIgNS42Ni0yIDguNjhWMTZhMiAyIDAgMSAxLTQgMFoifV0sWyJwYXRoIix7ZDoiTTIwIDIwdi0yLjM4YzAtMi4xMiAxLjAzLTMuMTIgMS01LjYyLS4wMy0yLjcyLTEuNDktNi00LjUtNkMxNC42MyA2IDE0IDcuOCAxNCA5LjVjMCAzLjExIDIgNS42NiAyIDguNjhWMjBhMiAyIDAgMSAwIDQgMFoifV0sWyJwYXRoIix7ZDoiTTE2IDE3aDQifV0sWyJwYXRoIix7ZDoiTTQgMTNoNCJ9XV0seHJ0PVtbInBhdGgiLHtkOiJNNCAxNGg2In1dLFsicGF0aCIse2Q6Ik00IDJoMTAifV0sWyJyZWN0Iix7eDoiNCIseToiMTgiLHdpZHRoOiIxNiIsaGVpZ2h0OiI0IixyeDoiMSJ9XSxbInJlY3QiLHt4OiI0Iix5OiI2Iix3aWR0aDoiMTYiLGhlaWdodDoiNCIscng6IjEifV1dLHdydD1bWyJwYXRoIix7ZDoibTE1IDE3IDUtNS01LTUifV0sWyJwYXRoIix7ZDoiTTQgMTh2LTJhNCA0IDAgMCAxIDQtNGgxMiJ9XV0sTXJ0PVtbImxpbmUiLHt4MToiMjIiLHgyOiIyIix5MToiNiIseTI6IjYifV0sWyJsaW5lIix7eDE6IjIyIix4MjoiMiIseTE6IjE4Iix5MjoiMTgifV0sWyJsaW5lIix7eDE6IjYiLHgyOiI2Iix5MToiMiIseTI6IjIyIn1dLFsibGluZSIse3gxOiIxOCIseDI6IjE4Iix5MToiMiIseTI6IjIyIn1dXSx6cnQ9W1sicGF0aCIse2Q6Ik01IDE2VjloMTRWMkg1bDE0IDE0aC03bS03IDAgNyA3di03bS03IDBoNyJ9XV0sa3J0PVtbImNpcmNsZSIse2N4OiIxMiIsY3k6IjEyIixyOiIxMCJ9XSxbInBhdGgiLHtkOiJNMTYgMTZzLTEuNS0yLTQtMi00IDItNCAyIn1dLFsibGluZSIse3gxOiI5Iix4MjoiOS4wMSIseTE6IjkiLHkyOiI5In1dLFsibGluZSIse3gxOiIxNSIseDI6IjE1LjAxIix5MToiOSIseTI6IjkifV1dLFNydD1bWyJwYXRoIix7ZDoiTTE0IDEzaDJhMiAyIDAgMCAxIDIgMnYyYTIgMiAwIDAgMCA0IDB2LTYuOTk4YTIgMiAwIDAgMC0uNTktMS40MkwxOCA1In1dLFsicGF0aCIse2Q6Ik0xNCAyMVY1YTIgMiAwIDAgMC0yLTJINWEyIDIgMCAwIDAtMiAydjE2In1dLFsicGF0aCIse2Q6Ik0yIDIxaDEzIn1dLFsicGF0aCIse2Q6Ik0zIDloMTEifV1dLENydD1bWyJwYXRoIix7ZDoiTTMgN1Y1YTIgMiAwIDAgMSAyLTJoMiJ9XSxbInBhdGgiLHtkOiJNMTcgM2gyYTIgMiAwIDAgMSAyIDJ2MiJ9XSxbInBhdGgiLHtkOiJNMjEgMTd2MmEyIDIgMCAwIDEtMiAyaC0yIn1dLFsicGF0aCIse2Q6Ik03IDIxSDVhMiAyIDAgMCAxLTItMnYtMiJ9XSxbInJlY3QiLHt3aWR0aDoiMTAiLGhlaWdodDoiOCIseDoiNyIseToiOCIscng6IjEifV1dLF9ydD1bWyJwYXRoIix7ZDoiTTEzLjM1NCAzSDNhMSAxIDAgMCAwLS43NDIgMS42N2w3LjIyNSA3Ljk4OUEyIDIgMCAwIDEgMTAgMTR2NmExIDEgMCAwIDAgLjU1My44OTVsMiAxQTEgMSAwIDAgMCAxNCAyMXYtN2EyIDIgMCAwIDEgLjUxNy0xLjM0MWwxLjIxOC0xLjM0OCJ9XSxbInBhdGgiLHtkOiJNMTYgNmg2In1dLFsicGF0aCIse2Q6Ik0xOSAzdjYifV1dLGx2PVtbInBhdGgiLHtkOiJNMTIuNTMxIDNIM2ExIDEgMCAwIDAtLjc0MiAxLjY3bDcuMjI1IDcuOTg5QTIgMiAwIDAgMSAxMCAxNHY2YTEgMSAwIDAgMCAuNTUzLjg5NWwyIDFBMSAxIDAgMCAwIDE0IDIxdi03YTIgMiAwIDAgMSAuNTE3LTEuMzQxbC40MjctLjQ3MyJ9XSxbInBhdGgiLHtkOiJtMTYuNSAzLjUgNSA1In1dLFsicGF0aCIse2Q6Im0yMS41IDMuNS01IDUifV1dLGN2PVtbInBhdGgiLHtkOiJNMTAgMjBhMSAxIDAgMCAwIC41NTMuODk1bDIgMUExIDEgMCAwIDAgMTQgMjF2LTdhMiAyIDAgMCAxIC41MTctMS4zNDFMMjEuNzQgNC42N0ExIDEgMCAwIDAgMjEgM0gzYTEgMSAwIDAgMC0uNzQyIDEuNjdsNy4yMjUgNy45ODlBMiAyIDAgMCAxIDEwIDE0eiJ9XV0sVHJ0PVtbInBhdGgiLHtkOiJNMiA3djEwIn1dLFsicGF0aCIse2Q6Ik02IDV2MTQifV0sWyJyZWN0Iix7d2lkdGg6IjEyIixoZWlnaHQ6IjE4Iix4OiIxMCIseToiMyIscng6IjIifV1dLExydD1bWyJwYXRoIix7ZDoiTTIgM3YxOCJ9XSxbInJlY3QiLHt3aWR0aDoiMTIiLGhlaWdodDoiMTgiLHg6IjYiLHk6IjMiLHJ4OiIyIn1dLFsicGF0aCIse2Q6Ik0yMiAzdjE4In1dXSwkcnQ9W1sicmVjdCIse3dpZHRoOiIxOCIsaGVpZ2h0OiIxNCIseDoiMyIseToiMyIscng6IjIifV0sWyJwYXRoIix7ZDoiTTQgMjFoMSJ9XSxbInBhdGgiLHtkOiJNOSAyMWgxIn1dLFsicGF0aCIse2Q6Ik0xNCAyMWgxIn1dLFsicGF0aCIse2Q6Ik0xOSAyMWgxIn1dXSxBcnQ9W1sicGF0aCIse2Q6Ik03IDJoMTAifV0sWyJwYXRoIix7ZDoiTTUgNmgxNCJ9XSxbInJlY3QiLHt3aWR0aDoiMTgiLGhlaWdodDoiMTIiLHg6IjMiLHk6IjEwIixyeDoiMiJ9XV0sRHJ0PVtbInBhdGgiLHtkOiJNMyAyaDE4In1dLFsicmVjdCIse3dpZHRoOiIxOCIsaGVpZ2h0OiIxMiIseDoiMyIseToiNiIscng6IjIifV0sWyJwYXRoIix7ZDoiTTMgMjJoMTgifV1dLEVydD1bWyJsaW5lIix7eDE6IjYiLHgyOiIxMCIseTE6IjExIix5MjoiMTEifV0sWyJsaW5lIix7eDE6IjgiLHgyOiI4Iix5MToiOSIseTI6IjEzIn1dLFsibGluZSIse3gxOiIxNSIseDI6IjE1LjAxIix5MToiMTIiLHkyOiIxMiJ9XSxbImxpbmUiLHt4MToiMTgiLHgyOiIxOC4wMSIseTE6IjEwIix5MjoiMTAifV0sWyJwYXRoIix7ZDoiTTE3LjMyIDVINi42OGE0IDQgMCAwIDAtMy45NzggMy41OWMtLjAwNi4wNTItLjAxLjEwMS0uMDE3LjE1MkMyLjYwNCA5LjQxNiAyIDE0LjQ1NiAyIDE2YTMgMyAwIDAgMCAzIDNjMSAwIDEuNS0uNSAyLTFsMS40MTQtMS40MTRBMiAyIDAgMCAxIDkuODI4IDE2aDQuMzQ0YTIgMiAwIDAgMSAxLjQxNC41ODZMMTcgMThjLjUuNSAxIDEgMiAxYTMgMyAwIDAgMCAzLTNjMC0xLjU0NS0uNjA0LTYuNTg0LS42ODUtNy4yNTgtLjAwNy0uMDUtLjAxMS0uMS0uMDE3LS4xNTFBNCA0IDAgMCAwIDE3LjMyIDV6In1dXSxQcnQ9W1sicGF0aCIse2Q6Ik0xMS4xNDYgMTUuODU0YTEuMjA3IDEuMjA3IDAgMCAxIDEuNzA4IDBsMS41NiAxLjU2QTIgMiAwIDAgMSAxNSAxOC44MjhWMjFhMSAxIDAgMCAxLTEgMWgtNGExIDEgMCAwIDEtMS0xdi0yLjE3MmEyIDIgMCAwIDEgLjU4Ni0xLjQxNHoifV0sWyJwYXRoIix7ZDoiTTE4LjgyOCAxNWEyIDIgMCAwIDEtMS40MTQtLjU4NmwtMS41Ni0xLjU2YTEuMjA3IDEuMjA3IDAgMCAxIDAtMS43MDhsMS41Ni0xLjU2QTIgMiAwIDAgMSAxOC44MjggOUgyMWExIDEgMCAwIDEgMSAxdjRhMSAxIDAgMCAxLTEgMXoifV0sWyJwYXRoIix7ZDoiTTYuNTg2IDE0LjQxNEEyIDIgMCAwIDEgNS4xNzIgMTVIM2ExIDEgMCAwIDEtMS0xdi00YTEgMSAwIDAgMSAxLTFoMi4xNzJhMiAyIDAgMCAxIDEuNDE0LjU4NmwxLjU2IDEuNTZhMS4yMDcgMS4yMDcgMCAwIDEgMCAxLjcwOHoifV0sWyJwYXRoIix7ZDoiTTkgM2ExIDEgMCAwIDEgMS0xaDRhMSAxIDAgMCAxIDEgMXYyLjE3MmEyIDIgMCAwIDEtLjU4NiAxLjQxNGwtMS41NiAxLjU2YTEuMjA3IDEuMjA3IDAgMCAxLTEuNzA4IDBsLTEuNTYtMS41NkEyIDIgMCAwIDEgOSA1LjE3MnoifV1dLElydD1bWyJsaW5lIix7eDE6IjYiLHgyOiIxMCIseTE6IjEyIix5MjoiMTIifV0sWyJsaW5lIix7eDE6IjgiLHgyOiI4Iix5MToiMTAiLHkyOiIxNCJ9XSxbImxpbmUiLHt4MToiMTUiLHgyOiIxNS4wMSIseTE6IjEzIix5MjoiMTMifV0sWyJsaW5lIix7eDE6IjE4Iix4MjoiMTguMDEiLHkxOiIxMSIseTI6IjExIn1dLFsicmVjdCIse3dpZHRoOiIyMCIsaGVpZ2h0OiIxMiIseDoiMiIseToiNiIscng6IjIifV1dLE5ydD1bWyJwYXRoIix7ZDoibTEyIDE0IDQtNCJ9XSxbInBhdGgiLHtkOiJNMy4zNCAxOWExMCAxMCAwIDEgMSAxNy4zMiAwIn1dXSxGcnQ9W1sicGF0aCIse2Q6Im0xNCAxMy04LjM4MSA4LjM4YTEgMSAwIDAgMS0zLjAwMS0zbDguMzg0LTguMzgxIn1dLFsicGF0aCIse2Q6Im0xNiAxNiA2LTYifV0sWyJwYXRoIix7ZDoibTIxLjUgMTAuNS04LTgifV0sWyJwYXRoIix7ZDoibTggOCA2LTYifV0sWyJwYXRoIix7ZDoibTguNSA3LjUgOCA4In1dXSxPcnQ9W1sicGF0aCIse2Q6Ik0xMC41IDMgOCA5bDQgMTMgNC0xMy0yLjUtNiJ9XSxbInBhdGgiLHtkOiJNMTcgM2EyIDIgMCAwIDEgMS42LjhsMyA0YTIgMiAwIDAgMSAuMDEzIDIuMzgybC03Ljk5IDEwLjk4NmEyIDIgMCAwIDEtMy4yNDcgMGwtNy45OS0xMC45ODZBMiAyIDAgMCAxIDIuNCA3LjhsMi45OTgtMy45OTdBMiAyIDAgMCAxIDcgM3oifV0sWyJwYXRoIix7ZDoiTTIgOWgyMCJ9XV0sUnJ0PVtbInBhdGgiLHtkOiJNMTEuNSAyMWE3LjUgNy41IDAgMSAxIDcuMzUtOSJ9XSxbInBhdGgiLHtkOiJNMTMgMTJWMyJ9XSxbInBhdGgiLHtkOiJNNCAyMWgxNiJ9XSxbInBhdGgiLHtkOiJNOSAxMlYzIn1dXSxCcnQ9W1sicGF0aCIse2Q6Ik05IDEwaC4wMSJ9XSxbInBhdGgiLHtkOiJNMTUgMTBoLjAxIn1dLFsicGF0aCIse2Q6Ik0xMiAyYTggOCAwIDAgMC04IDh2MTJsMy0zIDIuNSAyLjVMMTIgMTlsMi41IDIuNUwxNyAxOWwzIDNWMTBhOCA4IDAgMCAwLTgtOHoifV1dLEhydD1bWyJwYXRoIix7ZDoiTTE1IDZhOSA5IDAgMCAwLTkgOVYzIn1dLFsicGF0aCIse2Q6Ik0yMSAxOGgtNiJ9XSxbImNpcmNsZSIse2N4OiIxOCIsY3k6IjYiLHI6IjMifV0sWyJjaXJjbGUiLHtjeDoiNiIsY3k6IjE4IixyOiIzIn1dXSxxcnQ9W1sicGF0aCIse2Q6Ik02IDN2MTIifV0sWyJwYXRoIix7ZDoiTTE4IDlhMyAzIDAgMSAwIDAtNiAzIDMgMCAwIDAgMCA2eiJ9XSxbInBhdGgiLHtkOiJNNiAyMWEzIDMgMCAxIDAgMC02IDMgMyAwIDAgMCAwIDZ6In1dLFsicGF0aCIse2Q6Ik0xNSA2YTkgOSAwIDAgMC05IDkifV0sWyJwYXRoIix7ZDoiTTE4IDE1djYifV0sWyJwYXRoIix7ZDoiTTIxIDE4aC02In1dXSxWcnQ9W1sicmVjdCIse3g6IjMiLHk6IjgiLHdpZHRoOiIxOCIsaGVpZ2h0OiI0IixyeDoiMSJ9XSxbInBhdGgiLHtkOiJNMTIgOHYxMyJ9XSxbInBhdGgiLHtkOiJNMTkgMTJ2N2EyIDIgMCAwIDEtMiAySDdhMiAyIDAgMCAxLTItMnYtNyJ9XSxbInBhdGgiLHtkOiJNNy41IDhhMi41IDIuNSAwIDAgMSAwLTVBNC44IDggMCAwIDEgMTIgOGE0LjggOCAwIDAgMSA0LjUtNSAyLjUgMi41IDAgMCAxIDAgNSJ9XV0sanJ0PVtbInBhdGgiLHtkOiJNMTUgNmE5IDkgMCAwIDAtOSA5VjMifV0sWyJjaXJjbGUiLHtjeDoiMTgiLGN5OiI2IixyOiIzIn1dLFsiY2lyY2xlIix7Y3g6IjYiLGN5OiIxOCIscjoiMyJ9XV0sZHY9W1siY2lyY2xlIix7Y3g6IjEyIixjeToiMTIiLHI6IjMifV0sWyJsaW5lIix7eDE6IjMiLHgyOiI5Iix5MToiMTIiLHkyOiIxMiJ9XSxbImxpbmUiLHt4MToiMTUiLHgyOiIyMSIseTE6IjEyIix5MjoiMTIifV1dLFVydD1bWyJwYXRoIix7ZDoiTTEyIDN2NiJ9XSxbImNpcmNsZSIse2N4OiIxMiIsY3k6IjEyIixyOiIzIn1dLFsicGF0aCIse2Q6Ik0xMiAxNXY2In1dXSxXcnQ9W1siY2lyY2xlIix7Y3g6IjUiLGN5OiI2IixyOiIzIn1dLFsicGF0aCIse2Q6Ik0xMiA2aDVhMiAyIDAgMCAxIDIgMnY3In1dLFsicGF0aCIse2Q6Im0xNSA5LTMtMyAzLTMifV0sWyJjaXJjbGUiLHtjeDoiMTkiLGN5OiIxOCIscjoiMyJ9XSxbInBhdGgiLHtkOiJNMTIgMThIN2EyIDIgMCAwIDEtMi0yVjkifV0sWyJwYXRoIix7ZDoibTkgMTUgMyAzLTMgMyJ9XV0sR3J0PVtbImNpcmNsZSIse2N4OiIxOCIsY3k6IjE4IixyOiIzIn1dLFsiY2lyY2xlIix7Y3g6IjYiLGN5OiI2IixyOiIzIn1dLFsicGF0aCIse2Q6Ik0xMyA2aDNhMiAyIDAgMCAxIDIgMnY3In1dLFsicGF0aCIse2Q6Ik0xMSAxOEg4YTIgMiAwIDAgMS0yLTJWOSJ9XV0sWXJ0PVtbImNpcmNsZSIse2N4OiIxMiIsY3k6IjE4IixyOiIzIn1dLFsiY2lyY2xlIix7Y3g6IjYiLGN5OiI2IixyOiIzIn1dLFsiY2lyY2xlIix7Y3g6IjE4IixjeToiNiIscjoiMyJ9XSxbInBhdGgiLHtkOiJNMTggOXYyYzAgLjYtLjQgMS0xIDFIN2MtLjYgMC0xLS40LTEtMVY5In1dLFsicGF0aCIse2Q6Ik0xMiAxMnYzIn1dXSxacnQ9W1siY2lyY2xlIix7Y3g6IjUiLGN5OiI2IixyOiIzIn1dLFsicGF0aCIse2Q6Ik01IDl2NiJ9XSxbImNpcmNsZSIse2N4OiI1IixjeToiMTgiLHI6IjMifV0sWyJwYXRoIix7ZDoiTTEyIDN2MTgifV0sWyJjaXJjbGUiLHtjeDoiMTkiLGN5OiI2IixyOiIzIn1dLFsicGF0aCIse2Q6Ik0xNiAxNS43QTkgOSAwIDAgMCAxOSA5In1dXSxYcnQ9W1siY2lyY2xlIix7Y3g6IjE4IixjeToiMTgiLHI6IjMifV0sWyJjaXJjbGUiLHtjeDoiNiIsY3k6IjYiLHI6IjMifV0sWyJwYXRoIix7ZDoiTTYgMjFWOWE5IDkgMCAwIDAgOSA5In1dXSxLcnQ9W1siY2lyY2xlIix7Y3g6IjUiLGN5OiI2IixyOiIzIn1dLFsicGF0aCIse2Q6Ik01IDl2MTIifV0sWyJjaXJjbGUiLHtjeDoiMTkiLGN5OiIxOCIscjoiMyJ9XSxbInBhdGgiLHtkOiJtMTUgOS0zLTMgMy0zIn1dLFsicGF0aCIse2Q6Ik0xMiA2aDVhMiAyIDAgMCAxIDIgMnY3In1dXSxRcnQ9W1siY2lyY2xlIix7Y3g6IjYiLGN5OiI2IixyOiIzIn1dLFsicGF0aCIse2Q6Ik02IDl2MTIifV0sWyJwYXRoIix7ZDoibTIxIDMtNiA2In1dLFsicGF0aCIse2Q6Im0yMSA5LTYtNiJ9XSxbInBhdGgiLHtkOiJNMTggMTEuNVYxNSJ9XSxbImNpcmNsZSIse2N4OiIxOCIsY3k6IjE4IixyOiIzIn1dXSxKcnQ9W1siY2lyY2xlIix7Y3g6IjUiLGN5OiI2IixyOiIzIn1dLFsicGF0aCIse2Q6Ik01IDl2MTIifV0sWyJwYXRoIix7ZDoibTE1IDktMy0zIDMtMyJ9XSxbInBhdGgiLHtkOiJNMTIgNmg1YTIgMiAwIDAgMSAyIDJ2MyJ9XSxbInBhdGgiLHtkOiJNMTkgMTV2NiJ9XSxbInBhdGgiLHtkOiJNMjIgMThoLTYifV1dLGVzdD1bWyJjaXJjbGUiLHtjeDoiNiIsY3k6IjYiLHI6IjMifV0sWyJwYXRoIix7ZDoiTTYgOXYxMiJ9XSxbInBhdGgiLHtkOiJNMTMgNmgzYTIgMiAwIDAgMSAyIDJ2MyJ9XSxbInBhdGgiLHtkOiJNMTggMTV2NiJ9XSxbInBhdGgiLHtkOiJNMjEgMThoLTYifV1dLHRzdD1bWyJjaXJjbGUiLHtjeDoiMTgiLGN5OiIxOCIscjoiMyJ9XSxbImNpcmNsZSIse2N4OiI2IixjeToiNiIscjoiMyJ9XSxbInBhdGgiLHtkOiJNMTggNlY1In1dLFsicGF0aCIse2Q6Ik0xOCAxMXYtMSJ9XSxbImxpbmUiLHt4MToiNiIseDI6IjYiLHkxOiI5Iix5MjoiMjEifV1dLGFzdD1bWyJjaXJjbGUiLHtjeDoiMTgiLGN5OiIxOCIscjoiMyJ9XSxbImNpcmNsZSIse2N4OiI2IixjeToiNiIscjoiMyJ9XSxbInBhdGgiLHtkOiJNMTMgNmgzYTIgMiAwIDAgMSAyIDJ2NyJ9XSxbImxpbmUiLHt4MToiNiIseDI6IjYiLHkxOiI5Iix5MjoiMjEifV1dLGlzdD1bWyJwYXRoIix7ZDoiTTE1IDIydi00YTQuOCA0LjggMCAwIDAtMS0zLjVjMyAwIDYtMiA2LTUuNS4wOC0xLjI1LS4yNy0yLjQ4LTEtMy41LjI4LTEuMTUuMjgtMi4zNSAwLTMuNSAwIDAtMSAwLTMgMS41LTIuNjQtLjUtNS4zNi0uNS04IDBDNiAyIDUgMiA1IDJjLS4zIDEuMTUtLjMgMi4zNSAwIDMuNUE1LjQwMyA1LjQwMyAwIDAgMCA0IDljMCAzLjUgMyA1LjUgNiA1LjUtLjM5LjQ5LS42OCAxLjA1LS44NSAxLjY1LS4xNy42LS4yMiAxLjIzLS4xNSAxLjg1djQifV0sWyJwYXRoIix7ZDoiTTkgMThjLTQuNTEgMi01LTItNy0yIn1dXSxyc3Q9W1sicGF0aCIse2Q6Im0yMiAxMy4yOS0zLjMzLTEwYS40Mi40MiAwIDAgMC0uMTQtLjE4LjM4LjM4IDAgMCAwLS4yMi0uMTEuMzkuMzkgMCAwIDAtLjIzLjA3LjQyLjQyIDAgMCAwLS4xNC4xOGwtMi4yNiA2LjY3SDguMzJMNi4xIDMuMjZhLjQyLjQyIDAgMCAwLS4xLS4xOC4zOC4zOCAwIDAgMC0uMjYtLjA4LjM5LjM5IDAgMCAwLS4yMy4wNy40Mi40MiAwIDAgMC0uMTQuMThMMiAxMy4yOWEuNzQuNzQgMCAwIDAgLjI3LjgzTDEyIDIxbDkuNjktNi44OGEuNzEuNzEgMCAwIDAgLjMxLS44M1oifV1dLHNzdD1bWyJwYXRoIix7ZDoiTTUuMTE2IDQuMTA0QTEgMSAwIDAgMSA2LjExIDNoMTEuNzhhMSAxIDAgMCAxIC45OTQgMS4xMDVMMTcuMTkgMjAuMjFBMiAyIDAgMCAxIDE1LjIgMjJIOC44YTIgMiAwIDAgMS0yLTEuNzl6In1dLFsicGF0aCIse2Q6Ik02IDEyYTUgNSAwIDAgMSA2IDAgNSA1IDAgMCAwIDYgMCJ9XV0sbnN0PVtbImNpcmNsZSIse2N4OiI2IixjeToiMTUiLHI6IjQifV0sWyJjaXJjbGUiLHtjeDoiMTgiLGN5OiIxNSIscjoiNCJ9XSxbInBhdGgiLHtkOiJNMTQgMTVhMiAyIDAgMCAwLTItMiAyIDIgMCAwIDAtMiAyIn1dLFsicGF0aCIse2Q6Ik0yLjUgMTMgNSA3Yy43LTEuMyAxLjQtMiAzLTIifV0sWyJwYXRoIix7ZDoiTTIxLjUgMTMgMTkgN2MtLjctMS4zLTEuNS0yLTMtMiJ9XV0sb3N0PVtbInBhdGgiLHtkOiJNMTUuNjg2IDE1QTE0LjUgMTQuNSAwIDAgMSAxMiAyMmExNC41IDE0LjUgMCAwIDEgMC0yMCAxMCAxMCAwIDEgMCA5LjU0MiAxMyJ9XSxbInBhdGgiLHtkOiJNMiAxMmg4LjUifV0sWyJwYXRoIix7ZDoiTTIwIDZWNGEyIDIgMCAxIDAtNCAwdjIifV0sWyJyZWN0Iix7d2lkdGg6IjgiLGhlaWdodDoiNSIseDoiMTQiLHk6IjYiLHJ4OiIxIn1dXSxsc3Q9W1siY2lyY2xlIix7Y3g6IjEyIixjeToiMTIiLHI6IjEwIn1dLFsicGF0aCIse2Q6Ik0xMiAyYTE0LjUgMTQuNSAwIDAgMCAwIDIwIDE0LjUgMTQuNSAwIDAgMCAwLTIwIn1dLFsicGF0aCIse2Q6Ik0yIDEyaDIwIn1dXSxjc3Q9W1sicGF0aCIse2Q6Im0xNiAzIDUgNSJ9XSxbInBhdGgiLHtkOiJNMiAxMmgyMEExMCAxMCAwIDEgMSAxMiAyYTE0LjUgMTQuNSAwIDAgMCAwIDIwIDE0LjUgMTQuNSAwIDAgMCA0LTEwIn1dLFsicGF0aCIse2Q6Im0yMSAzLTUgNSJ9XV0sZHN0PVtbInBhdGgiLHtkOiJNMTIgMTNWMmw4IDQtOCA0In1dLFsicGF0aCIse2Q6Ik0yMC41NjEgMTAuMjIyYTkgOSAwIDEgMS0xMi41NS01LjI5In1dLFsicGF0aCIse2Q6Ik04LjAwMiA5Ljk5N2E1IDUgMCAxIDAgOC45IDIuMDIifV1dLGhzdD1bWyJwYXRoIix7ZDoiTTIgMjFWMyJ9XSxbInBhdGgiLHtkOiJNMiA1aDE4YTIgMiAwIDAgMSAyIDJ2OGEyIDIgMCAwIDEtMiAySDIuMjYifV0sWyJwYXRoIix7ZDoiTTcgMTd2M2ExIDEgMCAwIDAgMSAxaDVhMSAxIDAgMCAwIDEtMXYtMyJ9XSxbImNpcmNsZSIse2N4OiIxNiIsY3k6IjExIixyOiIyIn1dLFsiY2lyY2xlIix7Y3g6IjgiLGN5OiIxMSIscjoiMiJ9XV0scHN0PVtbInBhdGgiLHtkOiJNMjEuNDIgMTAuOTIyYTEgMSAwIDAgMC0uMDE5LTEuODM4TDEyLjgzIDUuMThhMiAyIDAgMCAwLTEuNjYgMEwyLjYgOS4wOGExIDEgMCAwIDAgMCAxLjgzMmw4LjU3IDMuOTA4YTIgMiAwIDAgMCAxLjY2IDB6In1dLFsicGF0aCIse2Q6Ik0yMiAxMHY2In1dLFsicGF0aCIse2Q6Ik02IDEyLjVWMTZhNiAzIDAgMCAwIDEyIDB2LTMuNSJ9XV0sdXN0PVtbInBhdGgiLHtkOiJNMjIgNVYybC01Ljg5IDUuODkifV0sWyJjaXJjbGUiLHtjeDoiMTYuNiIsY3k6IjE1Ljg5IixyOiIzIn1dLFsiY2lyY2xlIix7Y3g6IjguMTEiLGN5OiI3LjQiLHI6IjMifV0sWyJjaXJjbGUiLHtjeDoiMTIuMzUiLGN5OiIxMS42NSIscjoiMyJ9XSxbImNpcmNsZSIse2N4OiIxMy45MSIsY3k6IjUuODUiLHI6IjMifV0sWyJjaXJjbGUiLHtjeDoiMTguMTUiLGN5OiIxMC4wOSIscjoiMyJ9XSxbImNpcmNsZSIse2N4OiI2LjU2IixjeToiMTMuMiIscjoiMyJ9XSxbImNpcmNsZSIse2N4OiIxMC44IixjeToiMTcuNDQiLHI6IjMifV0sWyJjaXJjbGUiLHtjeDoiNSIsY3k6IjE5IixyOiIzIn1dXSxodj1bWyJwYXRoIix7ZDoiTTEyIDN2MTdhMSAxIDAgMCAxLTEgMUg1YTIgMiAwIDAgMS0yLTJWNWEyIDIgMCAwIDEgMi0yaDE0YTIgMiAwIDAgMSAyIDJ2NmExIDEgMCAwIDEtMSAxSDMifV0sWyJwYXRoIix7ZDoibTE2IDE5IDIgMiA0LTQifV1dLHB2PVtbInBhdGgiLHtkOiJNMTIgM3YxN2ExIDEgMCAwIDEtMSAxSDVhMiAyIDAgMCAxLTItMlY1YTIgMiAwIDAgMSAyLTJoMTRhMiAyIDAgMCAxIDIgMnY2YTEgMSAwIDAgMS0xIDFIMyJ9XSxbInBhdGgiLHtkOiJNMTYgMTloNiJ9XSxbInBhdGgiLHtkOiJNMTkgMjJ2LTYifV1dLHV2PVtbInBhdGgiLHtkOiJNMTIgM3YxN2ExIDEgMCAwIDEtMSAxSDVhMiAyIDAgMCAxLTItMlY1YTIgMiAwIDAgMSAyLTJoMTRhMiAyIDAgMCAxIDIgMnY2YTEgMSAwIDAgMS0xIDFIMyJ9XSxbInBhdGgiLHtkOiJtMTYgMTYgNSA1In1dLFsicGF0aCIse2Q6Im0xNiAyMSA1LTUifV1dLGZ2PVtbInBhdGgiLHtkOiJNMTIgM3YxOCJ9XSxbInBhdGgiLHtkOiJNMyAxMmgxOCJ9XSxbInJlY3QiLHt4OiIzIix5OiIzIix3aWR0aDoiMTgiLGhlaWdodDoiMTgiLHJ4OiIyIn1dXSxmc3Q9W1sicGF0aCIse2Q6Ik0xNSAzdjE4In1dLFsicGF0aCIse2Q6Ik0zIDEyaDE4In1dLFsicGF0aCIse2Q6Ik05IDN2MTgifV0sWyJyZWN0Iix7eDoiMyIseToiMyIsd2lkdGg6IjE4IixoZWlnaHQ6IjE4IixyeDoiMiJ9XV0seWw9W1sicmVjdCIse3dpZHRoOiIxOCIsaGVpZ2h0OiIxOCIseDoiMyIseToiMyIscng6IjIifV0sWyJwYXRoIix7ZDoiTTMgOWgxOCJ9XSxbInBhdGgiLHtkOiJNMyAxNWgxOCJ9XSxbInBhdGgiLHtkOiJNOSAzdjE4In1dLFsicGF0aCIse2Q6Ik0xNSAzdjE4In1dXSxtc3Q9W1siY2lyY2xlIix7Y3g6IjEyIixjeToiOSIscjoiMSJ9XSxbImNpcmNsZSIse2N4OiIxOSIsY3k6IjkiLHI6IjEifV0sWyJjaXJjbGUiLHtjeDoiNSIsY3k6IjkiLHI6IjEifV0sWyJjaXJjbGUiLHtjeDoiMTIiLGN5OiIxNSIscjoiMSJ9XSxbImNpcmNsZSIse2N4OiIxOSIsY3k6IjE1IixyOiIxIn1dLFsiY2lyY2xlIix7Y3g6IjUiLGN5OiIxNSIscjoiMSJ9XV0sZ3N0PVtbImNpcmNsZSIse2N4OiI5IixjeToiMTIiLHI6IjEifV0sWyJjaXJjbGUiLHtjeDoiOSIsY3k6IjUiLHI6IjEifV0sWyJjaXJjbGUiLHtjeDoiOSIsY3k6IjE5IixyOiIxIn1dLFsiY2lyY2xlIix7Y3g6IjE1IixjeToiMTIiLHI6IjEifV0sWyJjaXJjbGUiLHtjeDoiMTUiLGN5OiI1IixyOiIxIn1dLFsiY2lyY2xlIix7Y3g6IjE1IixjeToiMTkiLHI6IjEifV1dLGJzdD1bWyJjaXJjbGUiLHtjeDoiMTIiLGN5OiI1IixyOiIxIn1dLFsiY2lyY2xlIix7Y3g6IjE5IixjeToiNSIscjoiMSJ9XSxbImNpcmNsZSIse2N4OiI1IixjeToiNSIscjoiMSJ9XSxbImNpcmNsZSIse2N4OiIxMiIsY3k6IjEyIixyOiIxIn1dLFsiY2lyY2xlIix7Y3g6IjE5IixjeToiMTIiLHI6IjEifV0sWyJjaXJjbGUiLHtjeDoiNSIsY3k6IjEyIixyOiIxIn1dLFsiY2lyY2xlIix7Y3g6IjEyIixjeToiMTkiLHI6IjEifV0sWyJjaXJjbGUiLHtjeDoiMTkiLGN5OiIxOSIscjoiMSJ9XSxbImNpcmNsZSIse2N4OiI1IixjeToiMTkiLHI6IjEifV1dLHZzdD1bWyJwYXRoIix7ZDoiTTMgN1Y1YzAtMS4xLjktMiAyLTJoMiJ9XSxbInBhdGgiLHtkOiJNMTcgM2gyYzEuMSAwIDIgLjkgMiAydjIifV0sWyJwYXRoIix7ZDoiTTIxIDE3djJjMCAxLjEtLjkgMi0yIDJoLTIifV0sWyJwYXRoIix7ZDoiTTcgMjFINWMtMS4xIDAtMi0uOS0yLTJ2LTIifV0sWyJyZWN0Iix7d2lkdGg6IjciLGhlaWdodDoiNSIseDoiNyIseToiNyIscng6IjEifV0sWyJyZWN0Iix7d2lkdGg6IjciLGhlaWdodDoiNSIseDoiMTAiLHk6IjEyIixyeDoiMSJ9XV0seXN0PVtbInBhdGgiLHtkOiJtMTEuOSAxMi4xIDQuNTE0LTQuNTE0In1dLFsicGF0aCIse2Q6Ik0yMC4xIDIuM2ExIDEgMCAwIDAtMS40IDBsLTEuMTE0IDEuMTE0QTIgMiAwIDAgMCAxNyA0LjgyOHYxLjM0NGEyIDIgMCAwIDEtLjU4NiAxLjQxNEEyIDIgMCAwIDEgMTcuODI4IDdoMS4zNDRhMiAyIDAgMCAwIDEuNDE0LS41ODZMMjEuNyA1LjNhMSAxIDAgMCAwIDAtMS40eiJ9XSxbInBhdGgiLHtkOiJtNiAxNiAyIDIifV0sWyJwYXRoIix7ZDoiTTguMjMgOS44NUEzIDMgMCAwIDEgMTEgOGE1IDUgMCAwIDEgNSA1IDMgMyAwIDAgMS0xLjg1IDIuNzdsLS45Mi4zOEEyIDIgMCAwIDAgMTIgMThhNCA0IDAgMCAxLTQgNCA2IDYgMCAwIDEtNi02IDQgNCAwIDAgMSA0LTQgMiAyIDAgMCAwIDEuODUtMS4yM3oifV1dLHhzdD1bWyJwYXRoIix7ZDoiTTEzLjE0NCAyMS4xNDRBNy4yNzQgMTAuNDQ1IDQ1IDEgMCAyLjg1NiAxMC44NTYifV0sWyJwYXRoIix7ZDoiTTEzLjE0NCAyMS4xNDRBNy4yNzQgNC4zNjUgNDUgMCAwIDIuODU2IDEwLjg1NmE3LjI3NCA0LjM2NSA0NSAwIDAgMTAuMjg4IDEwLjI4OCJ9XSxbInBhdGgiLHtkOiJNMTYuNTY1IDEwLjQzNSAxOC42IDguNGEyLjUwMSAyLjUwMSAwIDEgMCAxLjY1LTQuNjUgMi41IDIuNSAwIDEgMC00LjY2IDEuNjZsLTIuMDI0IDIuMDI1In1dLFsicGF0aCIse2Q6Im04LjUgMTYuNS0xLTEifV1dLHdzdD1bWyJwYXRoIix7ZDoiTTEyIDE2SDRhMiAyIDAgMSAxIDAtNGgxNmEyIDIgMCAxIDEgMCA0aC00LjI1In1dLFsicGF0aCIse2Q6Ik01IDEyYTIgMiAwIDAgMS0yLTIgOSA3IDAgMCAxIDE4IDAgMiAyIDAgMCAxLTIgMiJ9XSxbInBhdGgiLHtkOiJNNSAxNmEyIDIgMCAwIDAtMiAyIDMgMyAwIDAgMCAzIDNoMTJhMyAzIDAgMCAwIDMtMyAyIDIgMCAwIDAtMi0ycTAgMCAwIDAifV0sWyJwYXRoIix7ZDoibTYuNjcgMTIgNi4xMyA0LjZhMiAyIDAgMCAwIDIuOC0uNGwzLjE1LTQuMiJ9XV0sTXN0PVtbInBhdGgiLHtkOiJtMTUgMTItOS4zNzMgOS4zNzNhMSAxIDAgMCAxLTMuMDAxLTNMMTIgOSJ9XSxbInBhdGgiLHtkOiJtMTggMTUgNC00In1dLFsicGF0aCIse2Q6Im0yMS41IDExLjUtMS45MTQtMS45MTRBMiAyIDAgMCAxIDE5IDguMTcydi0uMzQ0YTIgMiAwIDAgMC0uNTg2LTEuNDE0bC0xLjY1Ny0xLjY1N0E2IDYgMCAwIDAgMTIuNTE2IDNIOWwxLjI0MyAxLjI0M0E2IDYgMCAwIDEgMTIgOC40ODVWMTBsMiAyaDEuMTcyYTIgMiAwIDAgMSAxLjQxNC41ODZMMTguNSAxNC41In1dXSx6c3Q9W1sicGF0aCIse2Q6Ik0xMSAxNWgyYTIgMiAwIDEgMCAwLTRoLTNjLS42IDAtMS4xLjItMS40LjZMMyAxNyJ9XSxbInBhdGgiLHtkOiJtNyAyMSAxLjYtMS40Yy4zLS40LjgtLjYgMS40LS42aDRjMS4xIDAgMi4xLS40IDIuOC0xLjJsNC42LTQuNGEyIDIgMCAwIDAtMi43NS0yLjkxbC00LjIgMy45In1dLFsicGF0aCIse2Q6Im0yIDE2IDYgNiJ9XSxbImNpcmNsZSIse2N4OiIxNiIsY3k6IjkiLHI6IjIuOSJ9XSxbImNpcmNsZSIse2N4OiI2IixjeToiNSIscjoiMyJ9XV0sa3N0PVtbInBhdGgiLHtkOiJNMTIuMDM1IDE3LjAxMmEzIDMgMCAwIDAtMy0zbC0uMzExLS4wMDJhLjcyLjcyIDAgMCAxLS41MDUtMS4yMjlsMS4xOTUtMS4xOTVBMiAyIDAgMCAxIDEwLjgyOCAxMUgxMmEyIDIgMCAwIDAgMC00SDkuMjQzYTMgMyAwIDAgMC0yLjEyMi44NzlsLTIuNzA3IDIuNzA3QTQuODMgNC44MyAwIDAgMCAzIDE0YTggOCAwIDAgMCA4IDhoMmE4IDggMCAwIDAgOC04VjdhMiAyIDAgMSAwLTQgMHYyYTIgMiAwIDEgMCA0IDAifV0sWyJwYXRoIix7ZDoiTTEzLjg4OCA5LjY2MkEyIDIgMCAwIDAgMTcgOFY1QTIgMiAwIDEgMCAxMyA1In1dLFsicGF0aCIse2Q6Ik05IDVBMiAyIDAgMSAwIDUgNVYxMCJ9XSxbInBhdGgiLHtkOiJNOSA3VjRBMiAyIDAgMSAxIDEzIDRWNy4yNjgifV1dLG12PVtbInBhdGgiLHtkOiJNMTggMTEuNVY5YTIgMiAwIDAgMC0yLTJhMiAyIDAgMCAwLTIgMnYxLjQifV0sWyJwYXRoIix7ZDoiTTE0IDEwVjhhMiAyIDAgMCAwLTItMmEyIDIgMCAwIDAtMiAydjIifV0sWyJwYXRoIix7ZDoiTTEwIDkuOVY5YTIgMiAwIDAgMC0yLTJhMiAyIDAgMCAwLTIgMnY1In1dLFsicGF0aCIse2Q6Ik02IDE0YTIgMiAwIDAgMC0yLTJhMiAyIDAgMCAwLTIgMiJ9XSxbInBhdGgiLHtkOiJNMTggMTFhMiAyIDAgMSAxIDQgMHYzYTggOCAwIDAgMS04IDhoLTRhOCA4IDAgMCAxLTgtOCAyIDIgMCAxIDEgNCAwIn1dXSxTc3Q9W1sicGF0aCIse2Q6Ik0xMSAxNGgyYTIgMiAwIDAgMCAwLTRoLTNjLS42IDAtMS4xLjItMS40LjZMMyAxNiJ9XSxbInBhdGgiLHtkOiJtMTQuNDUgMTMuMzkgNS4wNS00LjY5NEMyMC4xOTYgOCAyMSA2Ljg1IDIxIDUuNzVhMi43NSAyLjc1IDAgMCAwLTQuNzk3LTEuODM3LjI3Ni4yNzYgMCAwIDEtLjQwNiAwQTIuNzUgMi43NSAwIDAgMCAxMSA1Ljc1YzAgMS4yLjgwMiAyLjI0OCAxLjUgMi45NDZMMTYgMTEuOTUifV0sWyJwYXRoIix7ZDoibTIgMTUgNiA2In1dLFsicGF0aCIse2Q6Im03IDIwIDEuNi0xLjRjLjMtLjQuOC0uNiAxLjQtLjZoNGMxLjEgMCAyLjEtLjQgMi44LTEuMmw0LjYtNC40YTEgMSAwIDAgMC0yLjc1LTIuOTEifV1dLGd2PVtbInBhdGgiLHtkOiJNMTEgMTJoMmEyIDIgMCAxIDAgMC00aC0zYy0uNiAwLTEuMS4yLTEuNC42TDMgMTQifV0sWyJwYXRoIix7ZDoibTcgMTggMS42LTEuNGMuMy0uNC44LS42IDEuNC0uNmg0YzEuMSAwIDIuMS0uNCAyLjgtMS4ybDQuNi00LjRhMiAyIDAgMCAwLTIuNzUtMi45MWwtNC4yIDMuOSJ9XSxbInBhdGgiLHtkOiJtMiAxMyA2IDYifV1dLENzdD1bWyJwYXRoIix7ZDoiTTE4IDEyLjVWMTBhMiAyIDAgMCAwLTItMmEyIDIgMCAwIDAtMiAydjEuNCJ9XSxbInBhdGgiLHtkOiJNMTQgMTFWOWEyIDIgMCAxIDAtNCAwdjIifV0sWyJwYXRoIix7ZDoiTTEwIDEwLjVWNWEyIDIgMCAxIDAtNCAwdjkifV0sWyJwYXRoIix7ZDoibTcgMTUtMS43Ni0xLjc2YTIgMiAwIDAgMC0yLjgzIDIuODJsMy42IDMuNkM3LjUgMjEuMTQgOS4yIDIyIDEyIDIyaDJhOCA4IDAgMCAwIDgtOFY3YTIgMiAwIDEgMC00IDB2NSJ9XV0sX3N0PVtbInBhdGgiLHtkOiJNMTIgM1YyIn1dLFsicGF0aCIse2Q6Im0xNS40IDE3LjQgMy4yLTIuOGEyIDIgMCAxIDEgMi44IDIuOWwtMy42IDMuM2MtLjcuOC0xLjcgMS4yLTIuOCAxLjJoLTRjLTEuMSAwLTIuMS0uNC0yLjgtMS4ybC0xLjMwMi0xLjQ2NEExIDEgMCAwIDAgNi4xNTEgMTlINSJ9XSxbInBhdGgiLHtkOiJNMiAxNGgxMmEyIDIgMCAwIDEgMCA0aC0yIn1dLFsicGF0aCIse2Q6Ik00IDEwaDE2In1dLFsicGF0aCIse2Q6Ik01IDEwYTcgNyAwIDAgMSAxNCAwIn1dLFsicGF0aCIse2Q6Ik01IDE0djZhMSAxIDAgMCAxLTEgMUgyIn1dXSxUc3Q9W1sicGF0aCIse2Q6Ik0xOCAxMVY2YTIgMiAwIDAgMC0yLTJhMiAyIDAgMCAwLTIgMiJ9XSxbInBhdGgiLHtkOiJNMTQgMTBWNGEyIDIgMCAwIDAtMi0yYTIgMiAwIDAgMC0yIDJ2MiJ9XSxbInBhdGgiLHtkOiJNMTAgMTAuNVY2YTIgMiAwIDAgMC0yLTJhMiAyIDAgMCAwLTIgMnY4In1dLFsicGF0aCIse2Q6Ik0xOCA4YTIgMiAwIDEgMSA0IDB2NmE4IDggMCAwIDEtOCA4aC0yYy0yLjggMC00LjUtLjg2LTUuOTktMi4zNGwtMy42LTMuNmEyIDIgMCAwIDEgMi44My0yLjgyTDcgMTUifV1dLExzdD1bWyJwYXRoIix7ZDoiTTIuMDQ4IDE4LjU2NkEyIDIgMCAwIDAgNCAyMWgxNmEyIDIgMCAwIDAgMS45NTItMi40MzRsLTItOUEyIDIgMCAwIDAgMTggOEg2YTIgMiAwIDAgMC0xLjk1MiAxLjU2NnoifV0sWyJwYXRoIix7ZDoiTTggMTFWNmE0IDQgMCAwIDEgOCAwdjUifV1dLCRzdD1bWyJwYXRoIix7ZDoibTExIDE3IDIgMmExIDEgMCAxIDAgMy0zIn1dLFsicGF0aCIse2Q6Im0xNCAxNCAyLjUgMi41YTEgMSAwIDEgMCAzLTNsLTMuODgtMy44OGEzIDMgMCAwIDAtNC4yNCAwbC0uODguODhhMSAxIDAgMSAxLTMtM2wyLjgxLTIuODFhNS43OSA1Ljc5IDAgMCAxIDcuMDYtLjg3bC40Ny4yOGEyIDIgMCAwIDAgMS40Mi4yNUwyMSA0In1dLFsicGF0aCIse2Q6Im0yMSAzIDEgMTFoLTIifV0sWyJwYXRoIix7ZDoiTTMgMyAyIDE0bDYuNSA2LjVhMSAxIDAgMSAwIDMtMyJ9XSxbInBhdGgiLHtkOiJNMyA0aDgifV1dLEFzdD1bWyJwYXRoIix7ZDoiTTEyIDJ2OCJ9XSxbInBhdGgiLHtkOiJtMTYgNi00IDQtNC00In1dLFsicmVjdCIse3dpZHRoOiIyMCIsaGVpZ2h0OiI4Iix4OiIyIix5OiIxNCIscng6IjIifV0sWyJwYXRoIix7ZDoiTTYgMThoLjAxIn1dLFsicGF0aCIse2Q6Ik0xMCAxOGguMDEifV1dLERzdD1bWyJwYXRoIix7ZDoibTE2IDYtNC00LTQgNCJ9XSxbInBhdGgiLHtkOiJNMTIgMnY4In1dLFsicmVjdCIse3dpZHRoOiIyMCIsaGVpZ2h0OiI4Iix4OiIyIix5OiIxNCIscng6IjIifV0sWyJwYXRoIix7ZDoiTTYgMThoLjAxIn1dLFsicGF0aCIse2Q6Ik0xMCAxOGguMDEifV1dLEVzdD1bWyJwYXRoIix7ZDoiTTEwIDE2aC4wMSJ9XSxbInBhdGgiLHtkOiJNMi4yMTIgMTEuNTc3YTIgMiAwIDAgMC0uMjEyLjg5NlYxOGEyIDIgMCAwIDAgMiAyaDE2YTIgMiAwIDAgMCAyLTJ2LTUuNTI3YTIgMiAwIDAgMC0uMjEyLS44OTZMMTguNTUgNS4xMUEyIDIgMCAwIDAgMTYuNzYgNEg3LjI0YTIgMiAwIDAgMC0xLjc5IDEuMTF6In1dLFsicGF0aCIse2Q6Ik0yMS45NDYgMTIuMDEzSDIuMDU0In1dLFsicGF0aCIse2Q6Ik02IDE2aC4wMSJ9XV0sUHN0PVtbInBhdGgiLHtkOiJNMTAgMTBWNWExIDEgMCAwIDEgMS0xaDJhMSAxIDAgMCAxIDEgMXY1In1dLFsicGF0aCIse2Q6Ik0xNCA2YTYgNiAwIDAgMSA2IDZ2MyJ9XSxbInBhdGgiLHtkOiJNNCAxNXYtM2E2IDYgMCAwIDEgNi02In1dLFsicmVjdCIse3g6IjIiLHk6IjE1Iix3aWR0aDoiMjAiLGhlaWdodDoiNCIscng6IjEifV1dLElzdD1bWyJsaW5lIix7eDE6IjQiLHgyOiIyMCIseTE6IjkiLHkyOiI5In1dLFsibGluZSIse3gxOiI0Iix4MjoiMjAiLHkxOiIxNSIseTI6IjE1In1dLFsibGluZSIse3gxOiIxMCIseDI6IjgiLHkxOiIzIix5MjoiMjEifV0sWyJsaW5lIix7eDE6IjE2Iix4MjoiMTQiLHkxOiIzIix5MjoiMjEifV1dLE5zdD1bWyJwYXRoIix7ZDoiTTE0IDE4YTIgMiAwIDAgMC00IDAifV0sWyJwYXRoIix7ZDoibTE5IDExLTIuMTEtNi42NTdhMiAyIDAgMCAwLTIuNzUyLTEuMTQ4bC0xLjI3Ni42MUEyIDIgMCAwIDEgMTIgNEg4LjVhMiAyIDAgMCAwLTEuOTI1IDEuNDU2TDUgMTEifV0sWyJwYXRoIix7ZDoiTTIgMTFoMjAifV0sWyJjaXJjbGUiLHtjeDoiMTciLGN5OiIxOCIscjoiMyJ9XSxbImNpcmNsZSIse2N4OiI3IixjeToiMTgiLHI6IjMifV1dLEZzdD1bWyJwYXRoIix7ZDoibTUuMiA2LjIgMS40IDEuNCJ9XSxbInBhdGgiLHtkOiJNMiAxM2gyIn1dLFsicGF0aCIse2Q6Ik0yMCAxM2gyIn1dLFsicGF0aCIse2Q6Im0xNy40IDcuNiAxLjQtMS40In1dLFsicGF0aCIse2Q6Ik0yMiAxN0gyIn1dLFsicGF0aCIse2Q6Ik0yMiAyMUgyIn1dLFsicGF0aCIse2Q6Ik0xNiAxM2E0IDQgMCAwIDAtOCAwIn1dLFsicGF0aCIse2Q6Ik0xMiA1VjIuNSJ9XV0sT3N0PVtbInBhdGgiLHtkOiJNMTAgMTJINiJ9XSxbInBhdGgiLHtkOiJNMTAgMTVWOSJ9XSxbInBhdGgiLHtkOiJNMTQgMTQuNWEuNS41IDAgMCAwIC41LjVoMWEyLjUgMi41IDAgMCAwIDIuNS0yLjV2LTFBMi41IDIuNSAwIDAgMCAxNS41IDloLTFhLjUuNSAwIDAgMC0uNS41eiJ9XSxbInBhdGgiLHtkOiJNNiAxNVY5In1dLFsicmVjdCIse3g6IjIiLHk6IjUiLHdpZHRoOiIyMCIsaGVpZ2h0OiIxNCIscng6IjIifV1dLFJzdD1bWyJwYXRoIix7ZDoiTTIyIDlhMSAxIDAgMCAwLTEtMUgzYTEgMSAwIDAgMC0xIDF2NGExIDEgMCAwIDAgMSAxaDFsMiAyaDEybDItMmgxYTEgMSAwIDAgMCAxLTFaIn1dLFsicGF0aCIse2Q6Ik03LjUgMTJoOSJ9XV0sQnN0PVtbInBhdGgiLHtkOiJNNCAxMmg4In1dLFsicGF0aCIse2Q6Ik00IDE4VjYifV0sWyJwYXRoIix7ZDoiTTEyIDE4VjYifV0sWyJwYXRoIix7ZDoibTE3IDEyIDMtMnY4In1dXSxIc3Q9W1sicGF0aCIse2Q6Ik00IDEyaDgifV0sWyJwYXRoIix7ZDoiTTQgMThWNiJ9XSxbInBhdGgiLHtkOiJNMTIgMThWNiJ9XSxbInBhdGgiLHtkOiJNMjEgMThoLTRjMC00IDQtMyA0LTYgMC0xLjUtMi0yLjUtNC0xIn1dXSxxc3Q9W1sicGF0aCIse2Q6Ik00IDEyaDgifV0sWyJwYXRoIix7ZDoiTTQgMThWNiJ9XSxbInBhdGgiLHtkOiJNMTIgMThWNiJ9XSxbInBhdGgiLHtkOiJNMTcuNSAxMC41YzEuNy0xIDMuNSAwIDMuNSAxLjVhMiAyIDAgMCAxLTIgMiJ9XSxbInBhdGgiLHtkOiJNMTcgMTcuNWMyIDEuNSA0IC4zIDQtMS41YTIgMiAwIDAgMC0yLTIifV1dLFZzdD1bWyJwYXRoIix7ZDoiTTEyIDE4VjYifV0sWyJwYXRoIix7ZDoiTTE3IDEwdjNhMSAxIDAgMCAwIDEgMWgzIn1dLFsicGF0aCIse2Q6Ik0yMSAxMHY4In1dLFsicGF0aCIse2Q6Ik00IDEyaDgifV0sWyJwYXRoIix7ZDoiTTQgMThWNiJ9XV0sanN0PVtbInBhdGgiLHtkOiJNNCAxMmg4In1dLFsicGF0aCIse2Q6Ik00IDE4VjYifV0sWyJwYXRoIix7ZDoiTTEyIDE4VjYifV0sWyJwYXRoIix7ZDoiTTE3IDEzdi0zaDQifV0sWyJwYXRoIix7ZDoiTTE3IDE3LjdjLjQuMi44LjMgMS4zLjMgMS41IDAgMi43LTEuMSAyLjctMi41UzE5LjggMTMgMTguMyAxM0gxNyJ9XV0sVXN0PVtbInBhdGgiLHtkOiJNNCAxMmg4In1dLFsicGF0aCIse2Q6Ik00IDE4VjYifV0sWyJwYXRoIix7ZDoiTTEyIDE4VjYifV0sWyJjaXJjbGUiLHtjeDoiMTkiLGN5OiIxNiIscjoiMiJ9XSxbInBhdGgiLHtkOiJNMjAgMTBjLTIgMi0zIDMuNS0zIDYifV1dLFdzdD1bWyJwYXRoIix7ZDoiTTYgMTJoMTIifV0sWyJwYXRoIix7ZDoiTTYgMjBWNCJ9XSxbInBhdGgiLHtkOiJNMTggMjBWNCJ9XV0sR3N0PVtbInBhdGgiLHtkOiJNMjEgMTRoLTEuMzQzIn1dLFsicGF0aCIse2Q6Ik05LjEyOCAzLjQ3QTkgOSAwIDAgMSAyMSAxMnYzLjM0MyJ9XSxbInBhdGgiLHtkOiJtMiAyIDIwIDIwIn1dLFsicGF0aCIse2Q6Ik0yMC40MTQgMjAuNDE0QTIgMiAwIDAgMSAxOSAyMWgtMWEyIDIgMCAwIDEtMi0ydi0zIn1dLFsicGF0aCIse2Q6Ik0zIDE0aDNhMiAyIDAgMCAxIDIgMnYzYTIgMiAwIDAgMS0yIDJINWEyIDIgMCAwIDEtMi0ydi03YTkgOSAwIDAgMSAyLjYzNi02LjM2NCJ9XV0sWXN0PVtbInBhdGgiLHtkOiJNMyAxNGgzYTIgMiAwIDAgMSAyIDJ2M2EyIDIgMCAwIDEtMiAySDVhMiAyIDAgMCAxLTItMnYtN2E5IDkgMCAwIDEgMTggMHY3YTIgMiAwIDAgMS0yIDJoLTFhMiAyIDAgMCAxLTItMnYtM2EyIDIgMCAwIDEgMi0yaDMifV1dLFpzdD1bWyJwYXRoIix7ZDoiTTEyLjQwOSA1LjgyNGMtLjcwMi43OTItMS4xNSAxLjQ5Ni0xLjQxNSAyLjE2NmwyLjE1MyAyLjE1NmEuNS41IDAgMCAxIDAgLjcwN2wtMi4yOTMgMi4yOTNhLjUuNSAwIDAgMCAwIC43MDdMMTIgMTUifV0sWyJwYXRoIix7ZDoiTTEzLjUwOCAyMC4zMTNhMiAyIDAgMCAxLTMgLjAxOUw1IDE1Yy0xLjUtMS41LTMtMy4yLTMtNS41YTUuNSA1LjUgMCAwIDEgOS41OTEtMy42NzcuNi42IDAgMCAwIC44MTguMDAxQTUuNSA1LjUgMCAwIDEgMjIgOS41YzAgMi4yOS0xLjUgNC0zIDUuNXoifV1dLFhzdD1bWyJwYXRoIix7ZDoiTTMgMTFoM2EyIDIgMCAwIDEgMiAydjNhMiAyIDAgMCAxLTIgMkg1YTIgMiAwIDAgMS0yLTJ2LTVabTAgMGE5IDkgMCAxIDEgMTggMG0wIDB2NWEyIDIgMCAwIDEtMiAyaC0xYTIgMiAwIDAgMS0yLTJ2LTNhMiAyIDAgMCAxIDItMmgzWiJ9XSxbInBhdGgiLHtkOiJNMjEgMTZ2MmE0IDQgMCAwIDEtNCA0aC01In1dXSxLc3Q9W1sicGF0aCIse2Q6Ik0xOS40MTQgMTQuNDE0QzIxIDEyLjgyOCAyMiAxMS41IDIyIDkuNWE1LjUgNS41IDAgMCAwLTkuNTkxLTMuNjc2LjYuNiAwIDAgMS0uODE4LjAwMUE1LjUgNS41IDAgMCAwIDIgOS41YzAgMi4zIDEuNSA0IDMgNS41bDUuNTM1IDUuMzYyYTIgMiAwIDAgMCAyLjg3OS4wNTIgMi4xMiAyLjEyIDAgMCAwLS4wMDQtMyAyLjEyNCAyLjEyNCAwIDEgMCAzLTMgMi4xMjQgMi4xMjQgMCAwIDAgMy4wMDQgMCAyIDIgMCAwIDAgMC0yLjgyOGwtMS44ODEtMS44ODJhMi40MSAyLjQxIDAgMCAwLTMuNDA5IDBsLTEuNzEgMS43MWEyIDIgMCAwIDEtMi44MjggMCAyIDIgMCAwIDEgMC0yLjgyOGwyLjgyMy0yLjc2MiJ9XV0sUXN0PVtbInBhdGgiLHtkOiJtMTQuODc2IDE4Ljk5LTEuMzY4IDEuMzIzYTIgMiAwIDAgMS0zIC4wMTlMNSAxNWMtMS41LTEuNS0zLTMuMi0zLTUuNWE1LjUgNS41IDAgMCAxIDkuNTkxLTMuNjc2LjU2LjU2IDAgMCAwIC44MTggMEE1LjQ5IDUuNDkgMCAwIDEgMjIgOS41YTUuMiA1LjIgMCAwIDEtLjI0NCAxLjU3MiJ9XSxbInBhdGgiLHtkOiJNMTUgMTVoNiJ9XV0sSnN0PVtbInBhdGgiLHtkOiJNMTAuNSA0Ljg5M2E1LjUgNS41IDAgMCAxIDEuMDkxLjkzMS41Ni41NiAwIDAgMCAuODE4IDBBNS40OSA1LjQ5IDAgMCAxIDIyIDkuNWMwIDEuODcyLTEuMDAyIDMuMzU2LTIuMTg3IDQuNjU1In1dLFsicGF0aCIse2Q6Im0xNi45NjcgMTYuOTY3LTMuNDU5IDMuMzQ2YTIgMiAwIDAgMS0zIC4wMTlMNSAxNWMtMS41LTEuNS0zLTMuMi0zLTUuNWE1LjUgNS41IDAgMCAxIDIuNzQ3LTQuNzYxIn1dLFsicGF0aCIse2Q6Im0yIDIgMjAgMjAifV1dLGVudD1bWyJwYXRoIix7ZDoiTTIgOS41YTUuNSA1LjUgMCAwIDEgOS41OTEtMy42NzYuNTYuNTYgMCAwIDAgLjgxOCAwQTUuNDkgNS40OSAwIDAgMSAyMiA5LjVjMCAyLjI5LTEuNSA0LTMgNS41bC01LjQ5MiA1LjMxM2EyIDIgMCAwIDEtMyAuMDE5TDUgMTVjLTEuNS0xLjUtMy0zLjItMy01LjUifV0sWyJwYXRoIix7ZDoiTTMuMjIgMTNIOS41bC41LTEgMiA0LjUgMi03IDEuNSAzLjVoNS4yNyJ9XV0sdG50PVtbInBhdGgiLHtkOiJtMTQuNDc5IDE5LjM3NC0uOTcxLjkzOWEyIDIgMCAwIDEtMyAuMDE5TDUgMTVjLTEuNS0xLjUtMy0zLjItMy01LjVhNS41IDUuNSAwIDAgMSA5LjU5MS0zLjY3Ni41Ni41NiAwIDAgMCAuODE4IDBBNS40OSA1LjQ5IDAgMCAxIDIyIDkuNWE1LjIgNS4yIDAgMCAxLS4yMTkgMS40OSJ9XSxbInBhdGgiLHtkOiJNMTUgMTVoNiJ9XSxbInBhdGgiLHtkOiJNMTggMTJ2NiJ9XV0sYW50PVtbInBhdGgiLHtkOiJNMiA5LjVhNS41IDUuNSAwIDAgMSA5LjU5MS0zLjY3Ni41Ni41NiAwIDAgMCAuODE4IDBBNS40OSA1LjQ5IDAgMCAxIDIyIDkuNWMwIDIuMjktMS41IDQtMyA1LjVsLTUuNDkyIDUuMzEzYTIgMiAwIDAgMS0zIC4wMTlMNSAxNWMtMS41LTEuNS0zLTMuMi0zLTUuNSJ9XV0saW50PVtbInBhdGgiLHtkOiJNMTEgOGMyLTMtMi0zIDAtNiJ9XSxbInBhdGgiLHtkOiJNMTUuNSA4YzItMy0yLTMgMC02In1dLFsicGF0aCIse2Q6Ik02IDEwaC4wMSJ9XSxbInBhdGgiLHtkOiJNNiAxNGguMDEifV0sWyJwYXRoIix7ZDoiTTEwIDE2di00In1dLFsicGF0aCIse2Q6Ik0xNCAxNnYtNCJ9XSxbInBhdGgiLHtkOiJNMTggMTZ2LTQifV0sWyJwYXRoIix7ZDoiTTIwIDZhMiAyIDAgMCAxIDIgMnYxMGEyIDIgMCAwIDEtMiAySDRhMiAyIDAgMCAxLTItMlY4YTIgMiAwIDAgMSAyLTJoMyJ9XSxbInBhdGgiLHtkOiJNNSAyMHYyIn1dLFsicGF0aCIse2Q6Ik0xOSAyMHYyIn1dXSxybnQ9W1sicGF0aCIse2Q6Ik0xMSAxN3Y0In1dLFsicGF0aCIse2Q6Ik0xNCAzdjhhMiAyIDAgMCAwIDIgMmg1Ljg2NSJ9XSxbInBhdGgiLHtkOiJNMTcgMTd2NCJ9XSxbInBhdGgiLHtkOiJNMTggMTdhNCA0IDAgMCAwIDQtNCA4IDYgMCAwIDAtOC02IDYgNSAwIDAgMC02IDV2M2EyIDIgMCAwIDAgMiAyeiJ9XSxbInBhdGgiLHtkOiJNMiAxMHY1In1dLFsicGF0aCIse2Q6Ik02IDNoMTYifV0sWyJwYXRoIix7ZDoiTTcgMjFoMTQifV0sWyJwYXRoIix7ZDoiTTggMTNIMiJ9XV0sc250PVtbInBhdGgiLHtkOiJNMjEgMTZWOGEyIDIgMCAwIDAtMS0xLjczbC03LTRhMiAyIDAgMCAwLTIgMGwtNyA0QTIgMiAwIDAgMCAzIDh2OGEyIDIgMCAwIDAgMSAxLjczbDcgNGEyIDIgMCAwIDAgMiAwbDctNEEyIDIgMCAwIDAgMjEgMTZ6In1dXSxubnQ9W1sicGF0aCIse2Q6Im05IDExLTYgNnYzaDlsMy0zIn1dLFsicGF0aCIse2Q6Im0yMiAxMi00LjYgNC42YTIgMiAwIDAgMS0yLjggMGwtNS4yLTUuMmEyIDIgMCAwIDEgMC0yLjhMMTQgNCJ9XV0sb250PVtbInBhdGgiLHtkOiJNMyAxMmE5IDkgMCAxIDAgOS05IDkuNzUgOS43NSAwIDAgMC02Ljc0IDIuNzRMMyA4In1dLFsicGF0aCIse2Q6Ik0zIDN2NWg1In1dLFsicGF0aCIse2Q6Ik0xMiA3djVsNCAyIn1dXSxsbnQ9W1sicGF0aCIse2Q6Ik0xMC44MiAxNi4xMmMxLjY5LjYgMy45MS43OSA1LjE4Ljg1LjU1LjAzIDEtLjQyLjk3LS45Ny0uMDYtMS4yNy0uMjYtMy41LS44NS01LjE4In1dLFsicGF0aCIse2Q6Ik0xMS41IDYuNWMxLjY0IDAgNS0uMzggNi43MS0xLjA3LjUyLS4yLjU1LS44Mi4xMi0xLjE3QTEwIDEwIDAgMCAwIDQuMjYgMTguMzNjLjM1LjQzLjk2LjQgMS4xNy0uMTIuNjktMS43MSAxLjA3LTUuMDcgMS4wNy02LjcxIDEuMzQuNDUgMy4xLjkgNC44OC42MmEuODguODggMCAwIDAgLjczLS43NGMuMy0yLjE0LS4xNS0zLjUtLjYxLTQuODgifV0sWyJwYXRoIix7ZDoiTTE1LjYyIDE2Ljk1Yy4yLjg1LjYyIDIuNzYuNSA0LjI4YS43Ny43NyAwIDAgMS0uOS43IDE2LjY0IDE2LjY0IDAgMCAxLTQuMDgtMS4zNiJ9XSxbInBhdGgiLHtkOiJNMTYuMTMgMjEuMDVjMS42NS42MyAzLjY4Ljg0IDQuODcuOTFhLjkuOSAwIDAgMCAuOTYtLjk2IDE3LjY4IDE3LjY4IDAgMCAwLS45LTQuODcifV0sWyJwYXRoIix7ZDoiTTE2Ljk0IDE1LjYyYy44Ni4yIDIuNzcuNjIgNC4yOS41YS43Ny43NyAwIDAgMCAuNy0uOSAxNi42NCAxNi42NCAwIDAgMC0xLjM2LTQuMDgifV0sWyJwYXRoIix7ZDoiTTE3Ljk5IDUuNTJhMjAuODIgMjAuODIgMCAwIDEgMy4xNSA0LjUuOC44IDAgMCAxLS42OCAxLjEzYy0yLjMzLjItNS4zLS4zMi04LjI3LTEuNTcifV0sWyJwYXRoIix7ZDoiTTQuOTMgNC45MyAzIDNhLjcuNyAwIDAgMSAwLTEifV0sWyJwYXRoIix7ZDoiTTkuNTggMTIuMThjMS4yNCAyLjk4IDEuNzcgNS45NSAxLjU3IDguMjhhLjguOCAwIDAgMS0xLjEzLjY4IDIwLjgyIDIwLjgyIDAgMCAxLTQuNS0zLjE1In1dXSxjbnQ9W1sicGF0aCIse2Q6Ik0xMC44MiAxNi4xMmMxLjY5LjYgMy45MS43OSA1LjE4Ljg1LjI4LjAxLjUzLS4wOS43LS4yNyJ9XSxbInBhdGgiLHtkOiJNMTEuMTQgMjAuNTdjLjUyLjI0IDIuNDQgMS4xMiA0LjA4IDEuMzcuNDYuMDYuODYtLjI1LjktLjcxLjEyLTEuNTItLjMtMy40My0uNS00LjI4In1dLFsicGF0aCIse2Q6Ik0xNi4xMyAyMS4wNWMxLjY1LjYzIDMuNjguODQgNC44Ny45MWEuOS45IDAgMCAwIC43LS4yNiJ9XSxbInBhdGgiLHtkOiJNMTcuOTkgNS41MmEyMC44MyAyMC44MyAwIDAgMSAzLjE1IDQuNS44LjggMCAwIDEtLjY4IDEuMTNjLTEuMTcuMS0yLjUuMDItMy45LS4yNSJ9XSxbInBhdGgiLHtkOiJNMjAuNTcgMTEuMTRjLjI0LjUyIDEuMTIgMi40NCAxLjM3IDQuMDguMDQuMy0uMDguNTktLjMxLjc1In1dLFsicGF0aCIse2Q6Ik00LjkzIDQuOTNhMTAgMTAgMCAwIDAtLjY3IDEzLjRjLjM1LjQzLjk2LjQgMS4xNy0uMTIuNjktMS43MSAxLjA3LTUuMDcgMS4wNy02LjcxIDEuMzQuNDUgMy4xLjkgNC44OC42MmEuODUuODUgMCAwIDAgLjQ4LS4yNCJ9XSxbInBhdGgiLHtkOiJNNS41MiAxNy45OWMxLjA1Ljk1IDIuOTEgMi40MiA0LjUgMy4xNWEuOC44IDAgMCAwIDEuMTMtLjY4Yy4yLTIuMzQtLjMzLTUuMy0xLjU3LTguMjgifV0sWyJwYXRoIix7ZDoiTTguMzUgMi42OGExMCAxMCAwIDAgMSA5Ljk4IDEuNThjLjQzLjM1LjQuOTYtLjEyIDEuMTctMS41LjYtNC4zLjk4LTYuMDcgMS4wNSJ9XSxbInBhdGgiLHtkOiJtMiAyIDIwIDIwIn1dXSxkbnQ9W1sicGF0aCIse2Q6Ik0xMiA3djQifV0sWyJwYXRoIix7ZDoiTTE0IDIxdi0zYTIgMiAwIDAgMC00IDB2MyJ9XSxbInBhdGgiLHtkOiJNMTQgOWgtNCJ9XSxbInBhdGgiLHtkOiJNMTggMTFoMmEyIDIgMCAwIDEgMiAydjZhMiAyIDAgMCAxLTIgMkg0YTIgMiAwIDAgMS0yLTJ2LTlhMiAyIDAgMCAxIDItMmgyIn1dLFsicGF0aCIse2Q6Ik0xOCAyMVY1YTIgMiAwIDAgMC0yLTJIOGEyIDIgMCAwIDAtMiAydjE2In1dXSxobnQ9W1sicGF0aCIse2Q6Ik0xMCAyMnYtNi41NyJ9XSxbInBhdGgiLHtkOiJNMTIgMTFoLjAxIn1dLFsicGF0aCIse2Q6Ik0xMiA3aC4wMSJ9XSxbInBhdGgiLHtkOiJNMTQgMTUuNDNWMjIifV0sWyJwYXRoIix7ZDoiTTE1IDE2YTUgNSAwIDAgMC02IDAifV0sWyJwYXRoIix7ZDoiTTE2IDExaC4wMSJ9XSxbInBhdGgiLHtkOiJNMTYgN2guMDEifV0sWyJwYXRoIix7ZDoiTTggMTFoLjAxIn1dLFsicGF0aCIse2Q6Ik04IDdoLjAxIn1dLFsicmVjdCIse3g6IjQiLHk6IjIiLHdpZHRoOiIxNiIsaGVpZ2h0OiIyMCIscng6IjIifV1dLHBudD1bWyJwYXRoIix7ZDoiTTUgMjJoMTQifV0sWyJwYXRoIix7ZDoiTTUgMmgxNCJ9XSxbInBhdGgiLHtkOiJNMTcgMjJ2LTQuMTcyYTIgMiAwIDAgMC0uNTg2LTEuNDE0TDEyIDEybC00LjQxNCA0LjQxNEEyIDIgMCAwIDAgNyAxNy44MjhWMjIifV0sWyJwYXRoIix7ZDoiTTcgMnY0LjE3MmEyIDIgMCAwIDAgLjU4NiAxLjQxNEwxMiAxMmw0LjQxNC00LjQxNEEyIDIgMCAwIDAgMTcgNi4xNzJWMiJ9XV0sdW50PVtbInBhdGgiLHtkOiJNOC42MiAxMy44QTIuMjUgMi4yNSAwIDEgMSAxMiAxMC44MzZhMi4yNSAyLjI1IDAgMSAxIDMuMzggMi45NjZsLTIuNjI2IDIuODU2YS45OTguOTk4IDAgMCAxLTEuNTA3IDB6In1dLFsicGF0aCIse2Q6Ik0zIDEwYTIgMiAwIDAgMSAuNzA5LTEuNTI4bDctNmEyIDIgMCAwIDEgMi41ODIgMGw3IDZBMiAyIDAgMCAxIDIxIDEwdjlhMiAyIDAgMCAxLTIgMkg1YTIgMiAwIDAgMS0yLTJ6In1dXSxmbnQ9W1sicGF0aCIse2Q6Ik0xMCAxMlY4Ljk2NCJ9XSxbInBhdGgiLHtkOiJNMTQgMTJWOC45NjQifV0sWyJwYXRoIix7ZDoiTTE1IDEyYTEgMSAwIDAgMSAxIDF2MmEyIDIgMCAwIDEtMiAyaC00YTIgMiAwIDAgMS0yLTJ2LTJhMSAxIDAgMCAxIDEtMXoifV0sWyJwYXRoIix7ZDoiTTguNSAyMUg1YTIgMiAwIDAgMS0yLTJ2LTlhMiAyIDAgMCAxIC43MDktMS41MjhsNy02YTIgMiAwIDAgMSAyLjU4MiAwbDcgNkEyIDIgMCAwIDEgMjEgMTB2OWEyIDIgMCAwIDEtMiAyaC01YTIgMiAwIDAgMS0yLTJ2LTIifV1dLG1udD1bWyJwYXRoIix7ZDoiTTEyLjM1IDIxSDVhMiAyIDAgMCAxLTItMnYtOWEyIDIgMCAwIDEgLjcxLTEuNTNsNy02YTIgMiAwIDAgMSAyLjU4IDBsNyA2QTIgMiAwIDAgMSAyMSAxMHYyLjM1In1dLFsicGF0aCIse2Q6Ik0xNC44IDEyLjRBMSAxIDAgMCAwIDE0IDEyaC00YTEgMSAwIDAgMC0xIDF2OCJ9XSxbInBhdGgiLHtkOiJNMTUgMThoNiJ9XSxbInBhdGgiLHtkOiJNMTggMTV2NiJ9XV0sZ250PVtbInBhdGgiLHtkOiJNOS41IDEzLjg2NmE0IDQgMCAwIDEgNSAuMDEifV0sWyJwYXRoIix7ZDoiTTEyIDE3aC4wMSJ9XSxbInBhdGgiLHtkOiJNMyAxMGEyIDIgMCAwIDEgLjcwOS0xLjUyOGw3LTZhMiAyIDAgMCAxIDIuNTgyIDBsNyA2QTIgMiAwIDAgMSAyMSAxMHY5YTIgMiAwIDAgMS0yIDJINWEyIDIgMCAwIDEtMi0yeiJ9XSxbInBhdGgiLHtkOiJNNyAxMC43NTRhOCA4IDAgMCAxIDEwIDAifV1dLGJ2PVtbInBhdGgiLHtkOiJNMTUgMjF2LThhMSAxIDAgMCAwLTEtMWgtNGExIDEgMCAwIDAtMSAxdjgifV0sWyJwYXRoIix7ZDoiTTMgMTBhMiAyIDAgMCAxIC43MDktMS41MjhsNy02YTIgMiAwIDAgMSAyLjU4MiAwbDcgNkEyIDIgMCAwIDEgMjEgMTB2OWEyIDIgMCAwIDEtMiAySDVhMiAyIDAgMCAxLTItMnoifV1dLHZ2PVtbInBhdGgiLHtkOiJNMTIgMTdjNSAwIDgtMi42OSA4LTZINGMwIDMuMzEgMyA2IDggNm0tNCA0aDhtLTQtM3YzTTUuMTQgMTFhMy41IDMuNSAwIDEgMSA2LjcxIDAifV0sWyJwYXRoIix7ZDoiTTEyLjE0IDExYTMuNSAzLjUgMCAxIDEgNi43MSAwIn1dLFsicGF0aCIse2Q6Ik0xNS41IDYuNWEzLjUgMy41IDAgMSAwLTcgMCJ9XV0seXY9W1sicGF0aCIse2Q6Im03IDExIDQuMDggMTAuMzVhMSAxIDAgMCAwIDEuODQgMEwxNyAxMSJ9XSxbInBhdGgiLHtkOiJNMTcgN0E1IDUgMCAwIDAgNyA3In1dLFsicGF0aCIse2Q6Ik0xNyA3YTIgMiAwIDAgMSAwIDRIN2EyIDIgMCAwIDEgMC00In1dXSxibnQ9W1sicGF0aCIse2Q6Ik0xMy41IDhoLTMifV0sWyJwYXRoIix7ZDoibTE1IDItMSAyaDNhMiAyIDAgMCAxIDIgMnYxNGEyIDIgMCAwIDEtMiAySDdhMiAyIDAgMCAxLTItMlY2YTIgMiAwIDAgMSAyLTJoMyJ9XSxbInBhdGgiLHtkOiJNMTYuODk5IDIyQTUgNSAwIDAgMCA3LjEgMjIifV0sWyJwYXRoIix7ZDoibTkgMiAzIDYifV0sWyJjaXJjbGUiLHtjeDoiMTIiLGN5OiIxNSIscjoiMyJ9XV0sdm50PVtbInBhdGgiLHtkOiJNMTYgMTBoMiJ9XSxbInBhdGgiLHtkOiJNMTYgMTRoMiJ9XSxbInBhdGgiLHtkOiJNNi4xNyAxNWEzIDMgMCAwIDEgNS42NiAwIn1dLFsiY2lyY2xlIix7Y3g6IjkiLGN5OiIxMSIscjoiMiJ9XSxbInJlY3QiLHt4OiIyIix5OiI1Iix3aWR0aDoiMjAiLGhlaWdodDoiMTQiLHJ4OiIyIn1dXSx5bnQ9W1sicGF0aCIse2Q6Ik0xMC4zIDIxSDVhMiAyIDAgMCAxLTItMlY1YTIgMiAwIDAgMSAyLTJoMTRhMiAyIDAgMCAxIDIgMnYxMGwtMy4xLTMuMWEyIDIgMCAwIDAtMi44MTQuMDE0TDYgMjEifV0sWyJwYXRoIix7ZDoibTE0IDE5IDMgM3YtNS41In1dLFsicGF0aCIse2Q6Im0xNyAyMiAzLTMifV0sWyJjaXJjbGUiLHtjeDoiOSIsY3k6IjkiLHI6IjIifV1dLHhudD1bWyJwYXRoIix7ZDoiTTIxIDl2MTBhMiAyIDAgMCAxLTIgMkg1YTIgMiAwIDAgMS0yLTJWNWEyIDIgMCAwIDEgMi0yaDcifV0sWyJsaW5lIix7eDE6IjE2Iix4MjoiMjIiLHkxOiI1Iix5MjoiNSJ9XSxbImNpcmNsZSIse2N4OiI5IixjeToiOSIscjoiMiJ9XSxbInBhdGgiLHtkOiJtMjEgMTUtMy4wODYtMy4wODZhMiAyIDAgMCAwLTIuODI4IDBMNiAyMSJ9XV0sd250PVtbImxpbmUiLHt4MToiMiIseDI6IjIyIix5MToiMiIseTI6IjIyIn1dLFsicGF0aCIse2Q6Ik0xMC40MSAxMC40MWEyIDIgMCAxIDEtMi44My0yLjgzIn1dLFsibGluZSIse3gxOiIxMy41Iix4MjoiNiIseTE6IjEzLjUiLHkyOiIyMSJ9XSxbImxpbmUiLHt4MToiMTgiLHgyOiIyMSIseTE6IjEyIix5MjoiMTUifV0sWyJwYXRoIix7ZDoiTTMuNTkgMy41OUExLjk5IDEuOTkgMCAwIDAgMyA1djE0YTIgMiAwIDAgMCAyIDJoMTRjLjU1IDAgMS4wNTItLjIyIDEuNDEtLjU5In1dLFsicGF0aCIse2Q6Ik0yMSAxNVY1YTIgMiAwIDAgMC0yLTJIOSJ9XV0sTW50PVtbInBhdGgiLHtkOiJNMTUgMTUuMDAzYTEgMSAwIDAgMSAxLjUxNy0uODU5bDQuOTk3IDIuOTk3YTEgMSAwIDAgMSAwIDEuNzE4bC00Ljk5NyAyLjk5N2ExIDEgMCAwIDEtMS41MTctLjg2eiJ9XSxbInBhdGgiLHtkOiJNMjEgMTIuMTdWNWEyIDIgMCAwIDAtMi0ySDVhMiAyIDAgMCAwLTIgMnYxNGEyIDIgMCAwIDAgMiAyaDYifV0sWyJwYXRoIix7ZDoibTYgMjEgNS01In1dLFsiY2lyY2xlIix7Y3g6IjkiLGN5OiI5IixyOiIyIn1dXSx6bnQ9W1sicGF0aCIse2Q6Ik0xNiA1aDYifV0sWyJwYXRoIix7ZDoiTTE5IDJ2NiJ9XSxbInBhdGgiLHtkOiJNMjEgMTEuNVYxOWEyIDIgMCAwIDEtMiAySDVhMiAyIDAgMCAxLTItMlY1YTIgMiAwIDAgMSAyLTJoNy41In1dLFsicGF0aCIse2Q6Im0yMSAxNS0zLjA4Ni0zLjA4NmEyIDIgMCAwIDAtMi44MjggMEw2IDIxIn1dLFsiY2lyY2xlIix7Y3g6IjkiLGN5OiI5IixyOiIyIn1dXSxrbnQ9W1sicGF0aCIse2Q6Ik0xMC4zIDIxSDVhMiAyIDAgMCAxLTItMlY1YTIgMiAwIDAgMSAyLTJoMTRhMiAyIDAgMCAxIDIgMnYxMGwtMy4xLTMuMWEyIDIgMCAwIDAtMi44MTQuMDE0TDYgMjEifV0sWyJwYXRoIix7ZDoibTE0IDE5LjUgMy0zIDMgMyJ9XSxbInBhdGgiLHtkOiJNMTcgMjJ2LTUuNSJ9XSxbImNpcmNsZSIse2N4OiI5IixjeToiOSIscjoiMiJ9XV0sU250PVtbInJlY3QiLHt3aWR0aDoiMTgiLGhlaWdodDoiMTgiLHg6IjMiLHk6IjMiLHJ4OiIyIixyeToiMiJ9XSxbImNpcmNsZSIse2N4OiI5IixjeToiOSIscjoiMiJ9XSxbInBhdGgiLHtkOiJtMjEgMTUtMy4wODYtMy4wODZhMiAyIDAgMCAwLTIuODI4IDBMNiAyMSJ9XV0sQ250PVtbInBhdGgiLHtkOiJNMTYgM2g1djUifV0sWyJwYXRoIix7ZDoiTTE3IDIxaDJhMiAyIDAgMCAwIDItMiJ9XSxbInBhdGgiLHtkOiJNMjEgMTJ2MyJ9XSxbInBhdGgiLHtkOiJtMjEgMy01IDUifV0sWyJwYXRoIix7ZDoiTTMgN1Y1YTIgMiAwIDAgMSAyLTIifV0sWyJwYXRoIix7ZDoibTUgMjEgNC4xNDQtNC4xNDRhMS4yMSAxLjIxIDAgMCAxIDEuNzEyIDBMMTMgMTkifV0sWyJwYXRoIix7ZDoiTTkgM2gzIn1dLFsicmVjdCIse3g6IjMiLHk6IjExIix3aWR0aDoiMTAiLGhlaWdodDoiMTAiLHJ4OiIxIn1dXSxfbnQ9W1sicGF0aCIse2Q6Im0yMiAxMS0xLjI5Ni0xLjI5NmEyLjQgMi40IDAgMCAwLTMuNDA4IDBMMTEgMTYifV0sWyJwYXRoIix7ZDoiTTQgOGEyIDIgMCAwIDAtMiAydjEwYTIgMiAwIDAgMCAyIDJoMTBhMiAyIDAgMCAwIDItMiJ9XSxbImNpcmNsZSIse2N4OiIxMyIsY3k6IjciLHI6IjEiLGZpbGw6ImN1cnJlbnRDb2xvciJ9XSxbInJlY3QiLHt4OiI4Iix5OiIyIix3aWR0aDoiMTQiLGhlaWdodDoiMTQiLHJ4OiIyIn1dXSxUbnQ9W1sicGF0aCIse2Q6Ik0xMiAzdjEyIn1dLFsicGF0aCIse2Q6Im04IDExIDQgNCA0LTQifV0sWyJwYXRoIix7ZDoiTTggNUg0YTIgMiAwIDAgMC0yIDJ2MTBhMiAyIDAgMCAwIDIgMmgxNmEyIDIgMCAwIDAgMi0yVjdhMiAyIDAgMCAwLTItMmgtNCJ9XV0sTG50PVtbInBvbHlsaW5lIix7cG9pbnRzOiIyMiAxMiAxNiAxMiAxNCAxNSAxMCAxNSA4IDEyIDIgMTIifV0sWyJwYXRoIix7ZDoiTTUuNDUgNS4xMSAyIDEydjZhMiAyIDAgMCAwIDIgMmgxNmEyIDIgMCAwIDAgMi0ydi02bC0zLjQ1LTYuODlBMiAyIDAgMCAwIDE2Ljc2IDRINy4yNGEyIDIgMCAwIDAtMS43OSAxLjExeiJ9XV0sJG50PVtbInBhdGgiLHtkOiJNNiAzaDEyIn1dLFsicGF0aCIse2Q6Ik02IDhoMTIifV0sWyJwYXRoIix7ZDoibTYgMTMgOC41IDgifV0sWyJwYXRoIix7ZDoiTTYgMTNoMyJ9XSxbInBhdGgiLHtkOiJNOSAxM2M2LjY2NyAwIDYuNjY3LTEwIDAtMTAifV1dLEFudD1bWyJwYXRoIix7ZDoiTTYgMTZjNSAwIDctOCAxMi04YTQgNCAwIDAgMSAwIDhjLTUgMC03LTgtMTItOGE0IDQgMCAxIDAgMCA4In1dXSxEbnQ9W1siY2lyY2xlIix7Y3g6IjEyIixjeToiMTIiLHI6IjEwIn1dLFsicGF0aCIse2Q6Ik0xMiAxNnYtNCJ9XSxbInBhdGgiLHtkOiJNMTIgOGguMDEifV1dLEVudD1bWyJyZWN0Iix7d2lkdGg6IjE4IixoZWlnaHQ6IjE4Iix4OiIzIix5OiIzIixyeDoiMiJ9XSxbInBhdGgiLHtkOiJNNyA3aC4wMSJ9XSxbInBhdGgiLHtkOiJNMTcgN2guMDEifV0sWyJwYXRoIix7ZDoiTTcgMTdoLjAxIn1dLFsicGF0aCIse2Q6Ik0xNyAxN2guMDEifV1dLFBudD1bWyJyZWN0Iix7d2lkdGg6IjIwIixoZWlnaHQ6IjIwIix4OiIyIix5OiIyIixyeDoiNSIscnk6IjUifV0sWyJwYXRoIix7ZDoiTTE2IDExLjM3QTQgNCAwIDEgMSAxMi42MyA4IDQgNCAwIDAgMSAxNiAxMS4zN3oifV0sWyJsaW5lIix7eDE6IjE3LjUiLHgyOiIxNy41MSIseTE6IjYuNSIseTI6IjYuNSJ9XV0sSW50PVtbInBhdGgiLHtkOiJtMTYgMTQgNCA0LTQgNCJ9XSxbInBhdGgiLHtkOiJNMjAgMTBhOCA4IDAgMSAwLTggOGg4In1dXSxObnQ9W1sibGluZSIse3gxOiIxOSIseDI6IjEwIix5MToiNCIseTI6IjQifV0sWyJsaW5lIix7eDE6IjE0Iix4MjoiNSIseTE6IjIwIix5MjoiMjAifV0sWyJsaW5lIix7eDE6IjE1Iix4MjoiOSIseTE6IjQiLHkyOiIyMCJ9XV0sRm50PVtbInBhdGgiLHtkOiJNNCAxMGE4IDggMCAxIDEgOCA4SDQifV0sWyJwYXRoIix7ZDoibTggMjItNC00IDQtNCJ9XV0sT250PVtbInBhdGgiLHtkOiJNMTIgOS41VjIxbTAtMTEuNUw2IDNtNiA2LjVMMTggMyJ9XSxbInBhdGgiLHtkOiJNNiAxNWgxMiJ9XSxbInBhdGgiLHtkOiJNNiAxMWgxMiJ9XV0sUm50PVtbInBhdGgiLHtkOiJNMjEgMTdhMiAyIDAgMCAwLTItMkg1YTIgMiAwIDAgMC0yIDJ2MmEyIDIgMCAwIDAgMiAyaDE0YTIgMiAwIDAgMCAyLTJ2LTJaIn1dLFsicGF0aCIse2Q6Ik02IDE1di0yIn1dLFsicGF0aCIse2Q6Ik0xMiAxNVY5In1dLFsiY2lyY2xlIix7Y3g6IjEyIixjeToiNiIscjoiMyJ9XV0sQm50PVtbInBhdGgiLHtkOiJNNSAzdjE0In1dLFsicGF0aCIse2Q6Ik0xMiAzdjgifV0sWyJwYXRoIix7ZDoiTTE5IDN2MTgifV1dLEhudD1bWyJwYXRoIix7ZDoiTTE4IDE3YTEgMSAwIDAgMC0xIDF2MWEyIDIgMCAxIDAgMi0yeiJ9XSxbInBhdGgiLHtkOiJNMjAuOTcgMy42MWEuNDUuNDUgMCAwIDAtLjU4LS41OEMxMC4yIDYuNiA2LjYgMTAuMiAzLjAzIDIwLjM5YS40NS40NSAwIDAgMCAuNTguNThDMTMuOCAxNy40IDE3LjQgMTMuOCAyMC45NyAzLjYxIn1dLFsicGF0aCIse2Q6Im02LjcwNyA2LjcwNyAxMC41ODYgMTAuNTg2In1dLFsicGF0aCIse2Q6Ik03IDVhMiAyIDAgMSAwLTIgMmgxYTEgMSAwIDAgMCAxLTF6In1dXSxxbnQ9W1sicGF0aCIse2Q6Ik0yLjU4NiAxNy40MTRBMiAyIDAgMCAwIDIgMTguODI4VjIxYTEgMSAwIDAgMCAxIDFoM2ExIDEgMCAwIDAgMS0xdi0xYTEgMSAwIDAgMSAxLTFoMWExIDEgMCAwIDAgMS0xdi0xYTEgMSAwIDAgMSAxLTFoLjE3MmEyIDIgMCAwIDAgMS40MTQtLjU4NmwuODE0LS44MTRhNi41IDYuNSAwIDEgMC00LTR6In1dLFsiY2lyY2xlIix7Y3g6IjE2LjUiLGN5OiI3LjUiLHI6Ii41IixmaWxsOiJjdXJyZW50Q29sb3IifV1dLFZudD1bWyJwYXRoIix7ZDoiTTEyLjQgMi43YTIuNSAyLjUgMCAwIDEgMy40IDBsNS41IDUuNWEyLjUgMi41IDAgMCAxIDAgMy40bC0zLjcgMy43YTIuNSAyLjUgMCAwIDEtMy40IDBMOC43IDkuOGEyLjUgMi41IDAgMCAxIDAtMy40eiJ9XSxbInBhdGgiLHtkOiJtMTQgNyAzIDMifV0sWyJwYXRoIix7ZDoibTkuNCAxMC42LTYuODE0IDYuODE0QTIgMiAwIDAgMCAyIDE4LjgyOFYyMWExIDEgMCAwIDAgMSAxaDNhMSAxIDAgMCAwIDEtMXYtMWExIDEgMCAwIDEgMS0xaDFhMSAxIDAgMCAwIDEtMXYtMWExIDEgMCAwIDEgMS0xaC4xNzJhMiAyIDAgMCAwIDEuNDE0LS41ODZsLjgxNC0uODE0In1dXSxqbnQ9W1sicGF0aCIse2Q6Im0xNS41IDcuNSAyLjMgMi4zYTEgMSAwIDAgMCAxLjQgMGwyLjEtMi4xYTEgMSAwIDAgMCAwLTEuNEwxOSA0In1dLFsicGF0aCIse2Q6Im0yMSAyLTkuNiA5LjYifV0sWyJjaXJjbGUiLHtjeDoiNy41IixjeToiMTUuNSIscjoiNS41In1dXSxVbnQ9W1sicmVjdCIse3dpZHRoOiIyMCIsaGVpZ2h0OiIxNiIseDoiMiIseToiNCIscng6IjIifV0sWyJwYXRoIix7ZDoiTTYgOGg0In1dLFsicGF0aCIse2Q6Ik0xNCA4aC4wMSJ9XSxbInBhdGgiLHtkOiJNMTggOGguMDEifV0sWyJwYXRoIix7ZDoiTTIgMTJoMjAifV0sWyJwYXRoIix7ZDoiTTYgMTJ2NCJ9XSxbInBhdGgiLHtkOiJNMTAgMTJ2NCJ9XSxbInBhdGgiLHtkOiJNMTQgMTJ2NCJ9XSxbInBhdGgiLHtkOiJNMTggMTJ2NCJ9XV0sV250PVtbInBhdGgiLHtkOiJNIDIwIDQgQTIgMiAwIDAgMSAyMiA2In1dLFsicGF0aCIse2Q6Ik0gMjIgNiBMIDIyIDE2LjQxIn1dLFsicGF0aCIse2Q6Ik0gNyAxNiBMIDE2IDE2In1dLFsicGF0aCIse2Q6Ik0gOS42OSA0IEwgMjAgNCJ9XSxbInBhdGgiLHtkOiJNMTQgOGguMDEifV0sWyJwYXRoIix7ZDoiTTE4IDhoLjAxIn1dLFsicGF0aCIse2Q6Im0yIDIgMjAgMjAifV0sWyJwYXRoIix7ZDoiTTIwIDIwSDRhMiAyIDAgMCAxLTItMlY2YTIgMiAwIDAgMSAyLTIifV0sWyJwYXRoIix7ZDoiTTYgOGguMDEifV0sWyJwYXRoIix7ZDoiTTggMTJoLjAxIn1dXSxHbnQ9W1sicGF0aCIse2Q6Ik0xMCA4aC4wMSJ9XSxbInBhdGgiLHtkOiJNMTIgMTJoLjAxIn1dLFsicGF0aCIse2Q6Ik0xNCA4aC4wMSJ9XSxbInBhdGgiLHtkOiJNMTYgMTJoLjAxIn1dLFsicGF0aCIse2Q6Ik0xOCA4aC4wMSJ9XSxbInBhdGgiLHtkOiJNNiA4aC4wMSJ9XSxbInBhdGgiLHtkOiJNNyAxNmgxMCJ9XSxbInBhdGgiLHtkOiJNOCAxMmguMDEifV0sWyJyZWN0Iix7d2lkdGg6IjIwIixoZWlnaHQ6IjE2Iix4OiIyIix5OiI0IixyeDoiMiJ9XV0sWW50PVtbInBhdGgiLHtkOiJNMTIgMnY1In1dLFsicGF0aCIse2Q6Ik0xNC44MjkgMTUuOTk4YTMgMyAwIDEgMS01LjY1OCAwIn1dLFsicGF0aCIse2Q6Ik0yMC45MiAxNC42MDZBMSAxIDAgMCAxIDIwIDE2SDRhMSAxIDAgMCAxLS45Mi0xLjM5NGwzLTdBMSAxIDAgMCAxIDcgN2gxMGExIDEgMCAwIDEgLjkyLjYwNnoifV1dLFpudD1bWyJwYXRoIix7ZDoiTTEwLjI5MyAyLjI5M2ExIDEgMCAwIDEgMS40MTQgMGwyLjUgMi41IDUuOTk0IDEuMjI3YTEgMSAwIDAgMSAuNTA2IDEuNjg3bC03IDdhMSAxIDAgMCAxLTEuNjg3LS41MDZsLTEuMjI3LTUuOTk0LTIuNS0yLjVhMSAxIDAgMCAxIDAtMS40MTR6In1dLFsicGF0aCIse2Q6Im0xNC4yMDcgNC43OTMtMy40MTQgMy40MTQifV0sWyJwYXRoIix7ZDoiTTMgMjBhMiAyIDAgMCAxIDItMmg0YTIgMiAwIDAgMSAyIDJ2MWExIDEgMCAwIDEtMSAxSDRhMSAxIDAgMCAxLTEtMXoifV0sWyJwYXRoIix7ZDoibTkuMDg2IDYuNS00Ljc5MyA0Ljc5M2ExIDEgMCAwIDAtLjE4IDEuMTdMNyAxOCJ9XV0sWG50PVtbInBhdGgiLHtkOiJNMTIgMTB2MTIifV0sWyJwYXRoIix7ZDoiTTE3LjkyOSA3LjYyOUExIDEgMCAwIDEgMTcgOUg3YTEgMSAwIDAgMS0uOTI4LTEuMzcxbDItNUExIDEgMCAwIDEgOSAyaDZhMSAxIDAgMCAxIC45MjguNjI5eiJ9XSxbInBhdGgiLHtkOiJNOSAyMmg2In1dXSxLbnQ9W1sicGF0aCIse2Q6Ik0xOS45MjkgMTguNjI5QTEgMSAwIDAgMSAxOSAyMEg5YTEgMSAwIDAgMS0uOTI4LTEuMzcxbDItNUExIDEgMCAwIDEgMTEgMTNoNmExIDEgMCAwIDEgLjkyOC42Mjl6In1dLFsicGF0aCIse2Q6Ik02IDNhMiAyIDAgMCAxIDIgMnYyYTIgMiAwIDAgMS0yIDJINWExIDEgMCAwIDEtMS0xVjRhMSAxIDAgMCAxIDEtMXoifV0sWyJwYXRoIix7ZDoiTTggNmg0YTIgMiAwIDAgMSAyIDJ2NSJ9XV0sUW50PVtbInBhdGgiLHtkOiJNMTkuOTI5IDkuNjI5QTEgMSAwIDAgMSAxOSAxMUg5YTEgMSAwIDAgMS0uOTI4LTEuMzcxbDItNUExIDEgMCAwIDEgMTEgNGg2YTEgMSAwIDAgMSAuOTI4LjYyOXoifV0sWyJwYXRoIix7ZDoiTTYgMTVhMiAyIDAgMCAxIDIgMnYyYTIgMiAwIDAgMS0yIDJINWExIDEgMCAwIDEtMS0xdi00YTEgMSAwIDAgMSAxLTF6In1dLFsicGF0aCIse2Q6Ik04IDE4aDRhMiAyIDAgMCAwIDItMnYtNSJ9XV0sSm50PVtbInBhdGgiLHtkOiJNMTIgMTJ2NiJ9XSxbInBhdGgiLHtkOiJNNC4wNzcgMTAuNjE1QTEgMSAwIDAgMCA1IDEyaDE0YTEgMSAwIDAgMCAuOTIzLTEuMzg1bC0zLjA3Ny03LjM4NEEyIDIgMCAwIDAgMTUgMkg5YTIgMiAwIDAgMC0xLjg0NiAxLjIzWiJ9XSxbInBhdGgiLHtkOiJNOCAyMGEyIDIgMCAwIDEgMi0yaDRhMiAyIDAgMCAxIDIgMnYxYTEgMSAwIDAgMS0xIDFIOWExIDEgMCAwIDEtMS0xeiJ9XV0sZW90PVtbInBhdGgiLHtkOiJNMTAgMTh2LTcifV0sWyJwYXRoIix7ZDoiTTExLjEyIDIuMTk4YTIgMiAwIDAgMSAxLjc2LjAwNmw3Ljg2NiAzLjg0N2MuNDc2LjIzMy4zMS45NDktLjIyLjk0OUgzLjQ3NGMtLjUzIDAtLjY5NS0uNzE2LS4yMi0uOTQ5eiJ9XSxbInBhdGgiLHtkOiJNMTQgMTh2LTcifV0sWyJwYXRoIix7ZDoiTTE4IDE4di03In1dLFsicGF0aCIse2Q6Ik0zIDIyaDE4In1dLFsicGF0aCIse2Q6Ik02IDE4di03In1dXSx0b3Q9W1sicGF0aCIse2Q6Im0xMiA4IDYtMy02LTN2MTAifV0sWyJwYXRoIix7ZDoibTggMTEuOTktNS41IDMuMTRhMSAxIDAgMCAwIDAgMS43NGw4LjUgNC44NmEyIDIgMCAwIDAgMiAwbDguNS00Ljg2YTEgMSAwIDAgMCAwLTEuNzRMMTYgMTIifV0sWyJwYXRoIix7ZDoibTYuNDkgMTIuODUgMTEuMDIgNi4zIn1dLFsicGF0aCIse2Q6Ik0xNy41MSAxMi44NSA2LjUgMTkuMTUifV1dLGFvdD1bWyJwYXRoIix7ZDoibTUgOCA2IDYifV0sWyJwYXRoIix7ZDoibTQgMTQgNi02IDItMyJ9XSxbInBhdGgiLHtkOiJNMiA1aDEyIn1dLFsicGF0aCIse2Q6Ik03IDJoMSJ9XSxbInBhdGgiLHtkOiJtMjIgMjItNS0xMC01IDEwIn1dLFsicGF0aCIse2Q6Ik0xNCAxOGg2In1dXSxpb3Q9W1sicGF0aCIse2Q6Ik0yIDIwaDIwIn1dLFsicGF0aCIse2Q6Im05IDEwIDIgMiA0LTQifV0sWyJyZWN0Iix7eDoiMyIseToiNCIsd2lkdGg6IjE4IixoZWlnaHQ6IjEyIixyeDoiMiJ9XV0seHY9W1sicmVjdCIse3dpZHRoOiIxOCIsaGVpZ2h0OiIxMiIseDoiMyIseToiNCIscng6IjIiLHJ5OiIyIn1dLFsibGluZSIse3gxOiIyIix4MjoiMjIiLHkxOiIyMCIseTI6IjIwIn1dXSxyb3Q9W1sicGF0aCIse2Q6Ik0xOCA1YTIgMiAwIDAgMSAyIDJ2OC41MjZhMiAyIDAgMCAwIC4yMTIuODk3bDEuMDY4IDIuMTI3YTEgMSAwIDAgMS0uOSAxLjQ1SDMuNjJhMSAxIDAgMCAxLS45LTEuNDVsMS4wNjgtMi4xMjdBMiAyIDAgMCAwIDQgMTUuNTI2VjdhMiAyIDAgMCAxIDItMnoifV0sWyJwYXRoIix7ZDoiTTIwLjA1NCAxNS45ODdIMy45NDYifV1dLHNvdD1bWyJwYXRoIix7ZDoiTTcgMjJhNSA1IDAgMCAxLTItNCJ9XSxbInBhdGgiLHtkOiJNNyAxNi45M2MuOTYuNDMgMS45Ni43NCAyLjk5LjkxIn1dLFsicGF0aCIse2Q6Ik0zLjM0IDE0QTYuOCA2LjggMCAwIDEgMiAxMGMwLTQuNDIgNC40OC04IDEwLThzMTAgMy41OCAxMCA4YTcuMTkgNy4xOSAwIDAgMS0uMzMgMiJ9XSxbInBhdGgiLHtkOiJNNSAxOGEyIDIgMCAxIDAgMC00IDIgMiAwIDAgMCAwIDR6In1dLFsicGF0aCIse2Q6Ik0xNC4zMyAyMmgtLjA5YS4zNS4zNSAwIDAgMS0uMjQtLjMydi0xMGEuMzQuMzQgMCAwIDEgLjMzLS4zNGMuMDggMCAuMTUuMDMuMjEuMDhsNy4zNCA2YS4zMy4zMyAwIDAgMS0uMjEuNTloLTQuNDlsLTIuNTcgMy44NWEuMzUuMzUgMCAwIDEtLjI4LjE0eiJ9XV0sbm90PVtbInBhdGgiLHtkOiJNMy43MDQgMTQuNDY3YTEwIDggMCAxIDEgMy4xMTUgMi4zNzUifV0sWyJwYXRoIix7ZDoiTTcgMjJhNSA1IDAgMCAxLTItMy45OTQifV0sWyJjaXJjbGUiLHtjeDoiNSIsY3k6IjE2IixyOiIyIn1dXSxvb3Q9W1siY2lyY2xlIix7Y3g6IjEyIixjeToiMTIiLHI6IjEwIn1dLFsicGF0aCIse2Q6Ik0xOCAxM2E2IDYgMCAwIDEtNiA1IDYgNiAwIDAgMS02LTVoMTJaIn1dLFsibGluZSIse3gxOiI5Iix4MjoiOS4wMSIseTE6IjkiLHkyOiI5In1dLFsibGluZSIse3gxOiIxNSIseDI6IjE1LjAxIix5MToiOSIseTI6IjkifV1dLGxvdD1bWyJwYXRoIix7ZDoiTTEzIDEzLjc0YTIgMiAwIDAgMS0yIDBMMi41IDguODdhMSAxIDAgMCAxIDAtMS43NEwxMSAyLjI2YTIgMiAwIDAgMSAyIDBsOC41IDQuODdhMSAxIDAgMCAxIDAgMS43NHoifV0sWyJwYXRoIix7ZDoibTIwIDE0LjI4NSAxLjUuODQ1YTEgMSAwIDAgMSAwIDEuNzRMMTMgMjEuNzRhMiAyIDAgMCAxLTIgMGwtOC41LTQuODdhMSAxIDAgMCAxIDAtMS43NGwxLjUtLjg0NSJ9XV0sY290PVtbInBhdGgiLHtkOiJNMTIuODMgMi4xOGEyIDIgMCAwIDAtMS42NiAwTDIuNiA2LjA4YTEgMSAwIDAgMCAwIDEuODNsOC41OCAzLjkxYTIgMiAwIDAgMCAuODMuMTggMiAyIDAgMCAwIC44My0uMThsOC41OC0zLjlhMSAxIDAgMCAwIDAtMS44MzF6In1dLFsicGF0aCIse2Q6Ik0xNiAxN2g2In1dLFsicGF0aCIse2Q6Ik0xOSAxNHY2In1dLFsicGF0aCIse2Q6Ik0yIDEyYTEgMSAwIDAgMCAuNTguOTFsOC42IDMuOTFhMiAyIDAgMCAwIC44MjUuMTc4In1dLFsicGF0aCIse2Q6Ik0yIDE3YTEgMSAwIDAgMCAuNTguOTFsOC42IDMuOTFhMiAyIDAgMCAwIDEuNjUgMGwyLjExNi0uOTYyIn1dXSx3dj1bWyJwYXRoIix7ZDoiTTEyLjgzIDIuMThhMiAyIDAgMCAwLTEuNjYgMEwyLjYgNi4wOGExIDEgMCAwIDAgMCAxLjgzbDguNTggMy45MWEyIDIgMCAwIDAgMS42NiAwbDguNTgtMy45YTEgMSAwIDAgMCAwLTEuODN6In1dLFsicGF0aCIse2Q6Ik0yIDEyYTEgMSAwIDAgMCAuNTguOTFsOC42IDMuOTFhMiAyIDAgMCAwIDEuNjUgMGw4LjU4LTMuOUExIDEgMCAwIDAgMjIgMTIifV0sWyJwYXRoIix7ZDoiTTIgMTdhMSAxIDAgMCAwIC41OC45MWw4LjYgMy45MWEyIDIgMCAwIDAgMS42NSAwbDguNTgtMy45QTEgMSAwIDAgMCAyMiAxNyJ9XV0sZG90PVtbInJlY3QiLHt3aWR0aDoiNyIsaGVpZ2h0OiI5Iix4OiIzIix5OiIzIixyeDoiMSJ9XSxbInJlY3QiLHt3aWR0aDoiNyIsaGVpZ2h0OiI1Iix4OiIxNCIseToiMyIscng6IjEifV0sWyJyZWN0Iix7d2lkdGg6IjciLGhlaWdodDoiOSIseDoiMTQiLHk6IjEyIixyeDoiMSJ9XSxbInJlY3QiLHt3aWR0aDoiNyIsaGVpZ2h0OiI1Iix4OiIzIix5OiIxNiIscng6IjEifV1dLGhvdD1bWyJyZWN0Iix7d2lkdGg6IjciLGhlaWdodDoiNyIseDoiMyIseToiMyIscng6IjEifV0sWyJyZWN0Iix7d2lkdGg6IjciLGhlaWdodDoiNyIseDoiMTQiLHk6IjMiLHJ4OiIxIn1dLFsicmVjdCIse3dpZHRoOiI3IixoZWlnaHQ6IjciLHg6IjE0Iix5OiIxNCIscng6IjEifV0sWyJyZWN0Iix7d2lkdGg6IjciLGhlaWdodDoiNyIseDoiMyIseToiMTQiLHJ4OiIxIn1dXSxwb3Q9W1sicmVjdCIse3dpZHRoOiI3IixoZWlnaHQ6IjciLHg6IjMiLHk6IjMiLHJ4OiIxIn1dLFsicmVjdCIse3dpZHRoOiI3IixoZWlnaHQ6IjciLHg6IjMiLHk6IjE0IixyeDoiMSJ9XSxbInBhdGgiLHtkOiJNMTQgNGg3In1dLFsicGF0aCIse2Q6Ik0xNCA5aDcifV0sWyJwYXRoIix7ZDoiTTE0IDE1aDcifV0sWyJwYXRoIix7ZDoiTTE0IDIwaDcifV1dLHVvdD1bWyJyZWN0Iix7d2lkdGg6IjciLGhlaWdodDoiMTgiLHg6IjMiLHk6IjMiLHJ4OiIxIn1dLFsicmVjdCIse3dpZHRoOiI3IixoZWlnaHQ6IjciLHg6IjE0Iix5OiIzIixyeDoiMSJ9XSxbInJlY3QiLHt3aWR0aDoiNyIsaGVpZ2h0OiI3Iix4OiIxNCIseToiMTQiLHJ4OiIxIn1dXSxmb3Q9W1sicmVjdCIse3dpZHRoOiIxOCIsaGVpZ2h0OiI3Iix4OiIzIix5OiIzIixyeDoiMSJ9XSxbInJlY3QiLHt3aWR0aDoiNyIsaGVpZ2h0OiI3Iix4OiIzIix5OiIxNCIscng6IjEifV0sWyJyZWN0Iix7d2lkdGg6IjciLGhlaWdodDoiNyIseDoiMTQiLHk6IjE0IixyeDoiMSJ9XV0sbW90PVtbInJlY3QiLHt3aWR0aDoiMTgiLGhlaWdodDoiNyIseDoiMyIseToiMyIscng6IjEifV0sWyJyZWN0Iix7d2lkdGg6IjkiLGhlaWdodDoiNyIseDoiMyIseToiMTQiLHJ4OiIxIn1dLFsicmVjdCIse3dpZHRoOiI1IixoZWlnaHQ6IjciLHg6IjE2Iix5OiIxNCIscng6IjEifV1dLGdvdD1bWyJwYXRoIix7ZDoiTTExIDIwQTcgNyAwIDAgMSA5LjggNi4xQzE1LjUgNSAxNyA0LjQ4IDE5IDJjMSAyIDIgNC4xOCAyIDggMCA1LjUtNC43OCAxMC0xMCAxMFoifV0sWyJwYXRoIix7ZDoiTTIgMjFjMC0zIDEuODUtNS4zNiA1LjA4LTZDOS41IDE0LjUyIDEyIDEzIDEzIDEyIn1dXSxib3Q9W1sicGF0aCIse2Q6Ik0yIDIyYzEuMjUtLjk4NyAyLjI3LTEuOTc1IDMuOS0yLjJhNS41NiA1LjU2IDAgMCAxIDMuOCAxLjUgNCA0IDAgMCAwIDYuMTg3LTIuMzUzIDMuNSAzLjUgMCAwIDAgMy42OS01LjExNkEzLjUgMy41IDAgMCAwIDIwLjk1IDggMy41IDMuNSAwIDEgMCAxNiAzLjA1YTMuNSAzLjUgMCAwIDAtNS44MzEgMS4zNzMgMy41IDMuNSAwIDAgMC01LjExNiAzLjY5IDQgNCAwIDAgMC0yLjM0OCA2LjE1NUMzLjQ5OSAxNS40MiA0LjQwOSAxNi43MTIgNC4yIDE4LjEgMy45MjYgMTkuNzQzIDMuMDE0IDIwLjczMiAyIDIyIn1dLFsicGF0aCIse2Q6Ik0yIDIyIDE3IDcifV1dLHZvdD1bWyJwYXRoIix7ZDoiTTE2IDEyaDNhMiAyIDAgMCAwIDEuOTAyLTEuMzhsMS4wNTYtMy4zMzNBMSAxIDAgMCAwIDIxIDZIM2ExIDEgMCAwIDAtLjk1OCAxLjI4N2wxLjA1NiAzLjMzNEEyIDIgMCAwIDAgNSAxMmgzIn1dLFsicGF0aCIse2Q6Ik0xOCA2VjNhMSAxIDAgMCAwLTEtMWgtMyJ9XSxbInJlY3QiLHt3aWR0aDoiOCIsaGVpZ2h0OiIxMiIseDoiOCIseToiMTAiLHJ4OiIxIn1dXSx5b3Q9W1sicmVjdCIse3dpZHRoOiI4IixoZWlnaHQ6IjE4Iix4OiIzIix5OiIzIixyeDoiMSJ9XSxbInBhdGgiLHtkOiJNNyAzdjE4In1dLFsicGF0aCIse2Q6Ik0yMC40IDE4LjljLjIuNS0uMSAxLjEtLjYgMS4zbC0xLjkuN2MtLjUuMi0xLjEtLjEtMS4zLS42TDExLjEgNS4xYy0uMi0uNS4xLTEuMS42LTEuM2wxLjktLjdjLjUtLjIgMS4xLjEgMS4zLjZaIn1dXSx4b3Q9W1sicGF0aCIse2Q6Im0xNiA2IDQgMTQifV0sWyJwYXRoIix7ZDoiTTEyIDZ2MTQifV0sWyJwYXRoIix7ZDoiTTggOHYxMiJ9XSxbInBhdGgiLHtkOiJNNCA0djE2In1dXSx3b3Q9W1siY2lyY2xlIix7Y3g6IjEyIixjeToiMTIiLHI6IjEwIn1dLFsicGF0aCIse2Q6Im00LjkzIDQuOTMgNC4yNCA0LjI0In1dLFsicGF0aCIse2Q6Im0xNC44MyA5LjE3IDQuMjQtNC4yNCJ9XSxbInBhdGgiLHtkOiJtMTQuODMgMTQuODMgNC4yNCA0LjI0In1dLFsicGF0aCIse2Q6Im05LjE3IDE0LjgzLTQuMjQgNC4yNCJ9XSxbImNpcmNsZSIse2N4OiIxMiIsY3k6IjEyIixyOiI0In1dXSxNb3Q9W1sicGF0aCIse2Q6Ik0xNCAxMmgydjgifV0sWyJwYXRoIix7ZDoiTTE0IDIwaDQifV0sWyJwYXRoIix7ZDoiTTYgMTJoNCJ9XSxbInBhdGgiLHtkOiJNNiAyMGg0In1dLFsicGF0aCIse2Q6Ik04IDIwVjhhNCA0IDAgMCAxIDcuNDY0LTIifV1dLHpvdD1bWyJwYXRoIix7ZDoiTTE2LjggMTEuMmMuOC0uOSAxLjItMiAxLjItMy4yYTYgNiAwIDAgMC05LjMtNSJ9XSxbInBhdGgiLHtkOiJtMiAyIDIwIDIwIn1dLFsicGF0aCIse2Q6Ik02LjMgNi4zYTQuNjcgNC42NyAwIDAgMCAxLjIgNS4yYy43LjcgMS4zIDEuNSAxLjUgMi41In1dLFsicGF0aCIse2Q6Ik05IDE4aDYifV0sWyJwYXRoIix7ZDoiTTEwIDIyaDQifV1dLGtvdD1bWyJwYXRoIix7ZDoiTTE1IDE0Yy4yLTEgLjctMS43IDEuNS0yLjUgMS0uOSAxLjUtMi4yIDEuNS0zLjVBNiA2IDAgMCAwIDYgOGMwIDEgLjIgMi4yIDEuNSAzLjUuNy43IDEuMyAxLjUgMS41IDIuNSJ9XSxbInBhdGgiLHtkOiJNOSAxOGg2In1dLFsicGF0aCIse2Q6Ik0xMCAyMmg0In1dXSxTb3Q9W1sicGF0aCIse2Q6Ik03IDMuNWM1LTIgNyAyLjUgMyA0QzEuNSAxMCAyIDE1IDUgMTZjNSAyIDktMTAgMTQtN3MuNSAxMy41LTQgMTJjLTUtMi41LjUtMTEgNi0yIn1dXSxDb3Q9W1sicGF0aCIse2Q6Ik05IDE3SDdBNSA1IDAgMCAxIDcgNyJ9XSxbInBhdGgiLHtkOiJNMTUgN2gyYTUgNSAwIDAgMSA0IDgifV0sWyJsaW5lIix7eDE6IjgiLHgyOiIxMiIseTE6IjEyIix5MjoiMTIifV0sWyJsaW5lIix7eDE6IjIiLHgyOiIyMiIseTE6IjIiLHkyOiIyMiJ9XV0sX290PVtbInBhdGgiLHtkOiJNOSAxN0g3QTUgNSAwIDAgMSA3IDdoMiJ9XSxbInBhdGgiLHtkOiJNMTUgN2gyYTUgNSAwIDEgMSAwIDEwaC0yIn1dLFsibGluZSIse3gxOiI4Iix4MjoiMTYiLHkxOiIxMiIseTI6IjEyIn1dXSxUb3Q9W1sicGF0aCIse2Q6Ik0xMCAxM2E1IDUgMCAwIDAgNy41NC41NGwzLTNhNSA1IDAgMCAwLTcuMDctNy4wN2wtMS43MiAxLjcxIn1dLFsicGF0aCIse2Q6Ik0xNCAxMWE1IDUgMCAwIDAtNy41NC0uNTRsLTMgM2E1IDUgMCAwIDAgNy4wNyA3LjA3bDEuNzEtMS43MSJ9XV0sTG90PVtbInBhdGgiLHtkOiJNMTYgOGE2IDYgMCAwIDEgNiA2djdoLTR2LTdhMiAyIDAgMCAwLTItMiAyIDIgMCAwIDAtMiAydjdoLTR2LTdhNiA2IDAgMCAxIDYtNnoifV0sWyJyZWN0Iix7d2lkdGg6IjQiLGhlaWdodDoiMTIiLHg6IjIiLHk6IjkifV0sWyJjaXJjbGUiLHtjeDoiNCIsY3k6IjQiLHI6IjIifV1dLCRvdD1bWyJwYXRoIix7ZDoiTTE2IDVIMyJ9XSxbInBhdGgiLHtkOiJNMTYgMTJIMyJ9XSxbInBhdGgiLHtkOiJNMTEgMTlIMyJ9XSxbInBhdGgiLHtkOiJtMTUgMTggMiAyIDQtNCJ9XV0sQW90PVtbInBhdGgiLHtkOiJNMTMgNWg4In1dLFsicGF0aCIse2Q6Ik0xMyAxMmg4In1dLFsicGF0aCIse2Q6Ik0xMyAxOWg4In1dLFsicGF0aCIse2Q6Im0zIDE3IDIgMiA0LTQifV0sWyJwYXRoIix7ZDoibTMgNyAyIDIgNC00In1dXSxEb3Q9W1sicGF0aCIse2Q6Ik0zIDVoOCJ9XSxbInBhdGgiLHtkOiJNMyAxMmg4In1dLFsicGF0aCIse2Q6Ik0zIDE5aDgifV0sWyJwYXRoIix7ZDoibTE1IDUgMyAzIDMtMyJ9XSxbInBhdGgiLHtkOiJtMTUgMTkgMy0zIDMgMyJ9XV0sRW90PVtbInBhdGgiLHtkOiJNMyA1aDgifV0sWyJwYXRoIix7ZDoiTTMgMTJoOCJ9XSxbInBhdGgiLHtkOiJNMyAxOWg4In1dLFsicGF0aCIse2Q6Im0xNSA4IDMtMyAzIDMifV0sWyJwYXRoIix7ZDoibTE1IDE2IDMgMyAzLTMifV1dLFBvdD1bWyJwYXRoIix7ZDoiTTEwIDVoMTEifV0sWyJwYXRoIix7ZDoiTTEwIDEyaDExIn1dLFsicGF0aCIse2Q6Ik0xMCAxOWgxMSJ9XSxbInBhdGgiLHtkOiJtMyAxMCAzLTMtMy0zIn1dLFsicGF0aCIse2Q6Im0zIDIwIDMtMy0zLTMifV1dLElvdD1bWyJwYXRoIix7ZDoiTTE2IDVIMyJ9XSxbInBhdGgiLHtkOiJNMTYgMTJIMyJ9XSxbInBhdGgiLHtkOiJNOSAxOUgzIn1dLFsicGF0aCIse2Q6Im0xNiAxNi0zIDMgMyAzIn1dLFsicGF0aCIse2Q6Ik0yMSA1djEyYTIgMiAwIDAgMS0yIDJoLTYifV1dLE5vdD1bWyJwYXRoIix7ZDoiTTEyIDVIMiJ9XSxbInBhdGgiLHtkOiJNNiAxMmgxMiJ9XSxbInBhdGgiLHtkOiJNOSAxOWg2In1dLFsicGF0aCIse2Q6Ik0xNiA1aDYifV0sWyJwYXRoIix7ZDoiTTE5IDhWMiJ9XV0sRm90PVtbInBhdGgiLHtkOiJNMiA1aDIwIn1dLFsicGF0aCIse2Q6Ik02IDEyaDEyIn1dLFsicGF0aCIse2Q6Ik05IDE5aDYifV1dLHhsPVtbInBhdGgiLHtkOiJNMjEgNUgxMSJ9XSxbInBhdGgiLHtkOiJNMjEgMTJIMTEifV0sWyJwYXRoIix7ZDoiTTIxIDE5SDExIn1dLFsicGF0aCIse2Q6Im03IDgtNCA0IDQgNCJ9XV0sd2w9W1sicGF0aCIse2Q6Ik0yMSA1SDExIn1dLFsicGF0aCIse2Q6Ik0yMSAxMkgxMSJ9XSxbInBhdGgiLHtkOiJNMjEgMTlIMTEifV0sWyJwYXRoIix7ZDoibTMgOCA0IDQtNCA0In1dXSxPb3Q9W1sicGF0aCIse2Q6Ik0xNiA1SDMifV0sWyJwYXRoIix7ZDoiTTExIDEySDMifV0sWyJwYXRoIix7ZDoiTTE2IDE5SDMifV0sWyJwYXRoIix7ZDoiTTIxIDEyaC02In1dXSxSb3Q9W1sicGF0aCIse2Q6Ik0xNiA1SDMifV0sWyJwYXRoIix7ZDoiTTExIDEySDMifV0sWyJwYXRoIix7ZDoiTTExIDE5SDMifV0sWyJwYXRoIix7ZDoiTTIxIDE2VjUifV0sWyJjaXJjbGUiLHtjeDoiMTgiLGN5OiIxNiIscjoiMyJ9XV0sQm90PVtbInBhdGgiLHtkOiJNMTEgNWgxMCJ9XSxbInBhdGgiLHtkOiJNMTEgMTJoMTAifV0sWyJwYXRoIix7ZDoiTTExIDE5aDEwIn1dLFsicGF0aCIse2Q6Ik00IDRoMXY1In1dLFsicGF0aCIse2Q6Ik00IDloMiJ9XSxbInBhdGgiLHtkOiJNNi41IDIwSDMuNGMwLTEgMi42LTEuOTI1IDIuNi0zLjVhMS41IDEuNSAwIDAgMC0yLjYtMS4wMiJ9XV0sSG90PVtbInBhdGgiLHtkOiJNMTYgNUgzIn1dLFsicGF0aCIse2Q6Ik0xMSAxMkgzIn1dLFsicGF0aCIse2Q6Ik0xNiAxOUgzIn1dLFsicGF0aCIse2Q6Ik0xOCA5djYifV0sWyJwYXRoIix7ZDoiTTIxIDEyaC02In1dXSxxb3Q9W1sicGF0aCIse2Q6Ik0yMSA1SDMifV0sWyJwYXRoIix7ZDoiTTcgMTJIMyJ9XSxbInBhdGgiLHtkOiJNNyAxOUgzIn1dLFsicGF0aCIse2Q6Ik0xMiAxOGE1IDUgMCAwIDAgOS0zIDQuNSA0LjUgMCAwIDAtNC41LTQuNWMtMS4zMyAwLTIuNTQuNTQtMy40MSAxLjQxTDExIDE0In1dLFsicGF0aCIse2Q6Ik0xMSAxMHY0aDQifV1dLFZvdD1bWyJwYXRoIix7ZDoiTTMgNWg2In1dLFsicGF0aCIse2Q6Ik0zIDEyaDEzIn1dLFsicGF0aCIse2Q6Ik0zIDE5aDEzIn1dLFsicGF0aCIse2Q6Im0xNiA4LTMtMyAzLTMifV0sWyJwYXRoIix7ZDoiTTIxIDE5VjdhMiAyIDAgMCAwLTItMmgtNiJ9XV0sam90PVtbInBhdGgiLHtkOiJNMTMgNWg4In1dLFsicGF0aCIse2Q6Ik0xMyAxMmg4In1dLFsicGF0aCIse2Q6Ik0xMyAxOWg4In1dLFsicGF0aCIse2Q6Im0zIDE3IDIgMiA0LTQifV0sWyJyZWN0Iix7eDoiMyIseToiNCIsd2lkdGg6IjYiLGhlaWdodDoiNiIscng6IjEifV1dLFVvdD1bWyJwYXRoIix7ZDoiTTggNWgxMyJ9XSxbInBhdGgiLHtkOiJNMTMgMTJoOCJ9XSxbInBhdGgiLHtkOiJNMTMgMTloOCJ9XSxbInBhdGgiLHtkOiJNMyAxMGEyIDIgMCAwIDAgMiAyaDMifV0sWyJwYXRoIix7ZDoiTTMgNXYxMmEyIDIgMCAwIDAgMiAyaDMifV1dLFdvdD1bWyJwYXRoIix7ZDoiTTIxIDVIMyJ9XSxbInBhdGgiLHtkOiJNMTAgMTJIMyJ9XSxbInBhdGgiLHtkOiJNMTAgMTlIMyJ9XSxbInBhdGgiLHtkOiJNMTUgMTIuMDAzYTEgMSAwIDAgMSAxLjUxNy0uODU5bDQuOTk3IDIuOTk3YTEgMSAwIDAgMSAwIDEuNzE4bC00Ljk5NyAyLjk5N2ExIDEgMCAwIDEtMS41MTctLjg2eiJ9XV0sR290PVtbInBhdGgiLHtkOiJNMTYgNUgzIn1dLFsicGF0aCIse2Q6Ik0xMSAxMkgzIn1dLFsicGF0aCIse2Q6Ik0xNiAxOUgzIn1dLFsicGF0aCIse2Q6Im0xNS41IDkuNSA1IDUifV0sWyJwYXRoIix7ZDoibTIwLjUgOS41LTUgNSJ9XV0sWW90PVtbInBhdGgiLHtkOiJNMyA1aC4wMSJ9XSxbInBhdGgiLHtkOiJNMyAxMmguMDEifV0sWyJwYXRoIix7ZDoiTTMgMTloLjAxIn1dLFsicGF0aCIse2Q6Ik04IDVoMTMifV0sWyJwYXRoIix7ZDoiTTggMTJoMTMifV0sWyJwYXRoIix7ZDoiTTggMTloMTMifV1dLE12PVtbInBhdGgiLHtkOiJNMjEgMTJhOSA5IDAgMSAxLTYuMjE5LTguNTYifV1dLFpvdD1bWyJwYXRoIix7ZDoiTTEyIDJ2NCJ9XSxbInBhdGgiLHtkOiJtMTYuMiA3LjggMi45LTIuOSJ9XSxbInBhdGgiLHtkOiJNMTggMTJoNCJ9XSxbInBhdGgiLHtkOiJtMTYuMiAxNi4yIDIuOSAyLjkifV0sWyJwYXRoIix7ZDoiTTEyIDE4djQifV0sWyJwYXRoIix7ZDoibTQuOSAxOS4xIDIuOS0yLjkifV0sWyJwYXRoIix7ZDoiTTIgMTJoNCJ9XSxbInBhdGgiLHtkOiJtNC45IDQuOSAyLjkgMi45In1dXSxYb3Q9W1sicGF0aCIse2Q6Ik0yMiAxMmExIDEgMCAwIDEtMTAgMCAxIDEgMCAwIDAtMTAgMCJ9XSxbInBhdGgiLHtkOiJNNyAyMC43YTEgMSAwIDEgMSA1LTguNyAxIDEgMCAxIDAgNS04LjYifV0sWyJwYXRoIix7ZDoiTTcgMy4zYTEgMSAwIDEgMSA1IDguNiAxIDEgMCAxIDAgNSA4LjYifV0sWyJjaXJjbGUiLHtjeDoiMTIiLGN5OiIxMiIscjoiMTAifV1dLEtvdD1bWyJsaW5lIix7eDE6IjIiLHgyOiI1Iix5MToiMTIiLHkyOiIxMiJ9XSxbImxpbmUiLHt4MToiMTkiLHgyOiIyMiIseTE6IjEyIix5MjoiMTIifV0sWyJsaW5lIix7eDE6IjEyIix4MjoiMTIiLHkxOiIyIix5MjoiNSJ9XSxbImxpbmUiLHt4MToiMTIiLHgyOiIxMiIseTE6IjE5Iix5MjoiMjIifV0sWyJjaXJjbGUiLHtjeDoiMTIiLGN5OiIxMiIscjoiNyJ9XSxbImNpcmNsZSIse2N4OiIxMiIsY3k6IjEyIixyOiIzIn1dXSxRb3Q9W1sicGF0aCIse2Q6Ik0xMiAxOXYzIn1dLFsicGF0aCIse2Q6Ik0xMiAydjMifV0sWyJwYXRoIix7ZDoiTTE4Ljg5IDEzLjI0YTcgNyAwIDAgMC04LjEzLTguMTMifV0sWyJwYXRoIix7ZDoiTTE5IDEyaDMifV0sWyJwYXRoIix7ZDoiTTIgMTJoMyJ9XSxbInBhdGgiLHtkOiJtMiAyIDIwIDIwIn1dLFsicGF0aCIse2Q6Ik03LjA1IDcuMDVhNyA3IDAgMCAwIDkuOSA5LjkifV1dLEpvdD1bWyJsaW5lIix7eDE6IjIiLHgyOiI1Iix5MToiMTIiLHkyOiIxMiJ9XSxbImxpbmUiLHt4MToiMTkiLHgyOiIyMiIseTE6IjEyIix5MjoiMTIifV0sWyJsaW5lIix7eDE6IjEyIix4MjoiMTIiLHkxOiIyIix5MjoiNSJ9XSxbImxpbmUiLHt4MToiMTIiLHgyOiIxMiIseTE6IjE5Iix5MjoiMjIifV0sWyJjaXJjbGUiLHtjeDoiMTIiLGN5OiIxMiIscjoiNyJ9XV0sZTB0PVtbImNpcmNsZSIse2N4OiIxMiIsY3k6IjE2IixyOiIxIn1dLFsicmVjdCIse3g6IjMiLHk6IjEwIix3aWR0aDoiMTgiLGhlaWdodDoiMTIiLHJ4OiIyIn1dLFsicGF0aCIse2Q6Ik03IDEwVjdhNSA1IDAgMCAxIDEwIDB2MyJ9XV0senY9W1siY2lyY2xlIix7Y3g6IjEyIixjeToiMTYiLHI6IjEifV0sWyJyZWN0Iix7d2lkdGg6IjE4IixoZWlnaHQ6IjEyIix4OiIzIix5OiIxMCIscng6IjIifV0sWyJwYXRoIix7ZDoiTTcgMTBWN2E1IDUgMCAwIDEgOS4zMy0yLjUifV1dLHQwdD1bWyJyZWN0Iix7d2lkdGg6IjE4IixoZWlnaHQ6IjExIix4OiIzIix5OiIxMSIscng6IjIiLHJ5OiIyIn1dLFsicGF0aCIse2Q6Ik03IDExVjdhNSA1IDAgMCAxIDEwIDB2NCJ9XV0sa3Y9W1sicmVjdCIse3dpZHRoOiIxOCIsaGVpZ2h0OiIxMSIseDoiMyIseToiMTEiLHJ4OiIyIixyeToiMiJ9XSxbInBhdGgiLHtkOiJNNyAxMVY3YTUgNSAwIDAgMSA5LjktMSJ9XV0sYTB0PVtbInBhdGgiLHtkOiJtMTAgMTcgNS01LTUtNSJ9XSxbInBhdGgiLHtkOiJNMTUgMTJIMyJ9XSxbInBhdGgiLHtkOiJNMTUgM2g0YTIgMiAwIDAgMSAyIDJ2MTRhMiAyIDAgMCAxLTIgMmgtNCJ9XV0saTB0PVtbInBhdGgiLHtkOiJNMyA1aDEifV0sWyJwYXRoIix7ZDoiTTMgMTJoMSJ9XSxbInBhdGgiLHtkOiJNMyAxOWgxIn1dLFsicGF0aCIse2Q6Ik04IDVoMSJ9XSxbInBhdGgiLHtkOiJNOCAxMmgxIn1dLFsicGF0aCIse2Q6Ik04IDE5aDEifV0sWyJwYXRoIix7ZDoiTTEzIDVoOCJ9XSxbInBhdGgiLHtkOiJNMTMgMTJoOCJ9XSxbInBhdGgiLHtkOiJNMTMgMTloOCJ9XV0scjB0PVtbInBhdGgiLHtkOiJtMTYgMTcgNS01LTUtNSJ9XSxbInBhdGgiLHtkOiJNMjEgMTJIOSJ9XSxbInBhdGgiLHtkOiJNOSAyMUg1YTIgMiAwIDAgMS0yLTJWNWEyIDIgMCAwIDEgMi0yaDQifV1dLHMwdD1bWyJjaXJjbGUiLHtjeDoiMTEiLGN5OiIxMSIscjoiOCJ9XSxbInBhdGgiLHtkOiJtMjEgMjEtNC4zLTQuMyJ9XSxbInBhdGgiLHtkOiJNMTEgMTFhMiAyIDAgMCAwIDQgMCA0IDQgMCAwIDAtOCAwIDYgNiAwIDAgMCAxMiAwIn1dXSxuMHQ9W1sicGF0aCIse2Q6Ik02IDIwYTIgMiAwIDAgMS0yLTJWOGEyIDIgMCAwIDEgMi0yaDEyYTIgMiAwIDAgMSAyIDJ2MTBhMiAyIDAgMCAxLTIgMiJ9XSxbInBhdGgiLHtkOiJNOCAxOFY0YTIgMiAwIDAgMSAyLTJoNGEyIDIgMCAwIDEgMiAydjE0In1dLFsicGF0aCIse2Q6Ik0xMCAyMGg0In1dLFsiY2lyY2xlIix7Y3g6IjE2IixjeToiMjAiLHI6IjIifV0sWyJjaXJjbGUiLHtjeDoiOCIsY3k6IjIwIixyOiIyIn1dXSxvMHQ9W1sicGF0aCIse2Q6Im0xMiAxNSA0IDQifV0sWyJwYXRoIix7ZDoiTTIuMzUyIDEwLjY0OGExLjIwNSAxLjIwNSAwIDAgMCAwIDEuNzA0bDIuMjk2IDIuMjk2YTEuMjA1IDEuMjA1IDAgMCAwIDEuNzA0IDBsNi4wMjktNi4wMjlhMSAxIDAgMSAxIDMgM2wtNi4wMjkgNi4wMjlhMS4yMDUgMS4yMDUgMCAwIDAgMCAxLjcwNGwyLjI5NiAyLjI5NmExLjIwNSAxLjIwNSAwIDAgMCAxLjcwNCAwbDYuMzY1LTYuMzY3QTEgMSAwIDAgMCA4LjcxNiA0LjI4MnoifV0sWyJwYXRoIix7ZDoibTUgOCA0IDQifV1dLGwwdD1bWyJwYXRoIix7ZDoiTTIyIDEzVjZhMiAyIDAgMCAwLTItMkg0YTIgMiAwIDAgMC0yIDJ2MTJjMCAxLjEuOSAyIDIgMmg4In1dLFsicGF0aCIse2Q6Im0yMiA3LTguOTcgNS43YTEuOTQgMS45NCAwIDAgMS0yLjA2IDBMMiA3In1dLFsicGF0aCIse2Q6Im0xNiAxOSAyIDIgNC00In1dXSxjMHQ9W1sicGF0aCIse2Q6Ik0yMiAxNVY2YTIgMiAwIDAgMC0yLTJINGEyIDIgMCAwIDAtMiAydjEyYzAgMS4xLjkgMiAyIDJoOCJ9XSxbInBhdGgiLHtkOiJtMjIgNy04Ljk3IDUuN2ExLjk0IDEuOTQgMCAwIDEtMi4wNiAwTDIgNyJ9XSxbInBhdGgiLHtkOiJNMTYgMTloNiJ9XV0sZDB0PVtbInBhdGgiLHtkOiJNMjEuMiA4LjRjLjUuMzguOC45Ny44IDEuNnYxMGEyIDIgMCAwIDEtMiAySDRhMiAyIDAgMCAxLTItMlYxMGEyIDIgMCAwIDEgLjgtMS42bDgtNmEyIDIgMCAwIDEgMi40IDBsOCA2WiJ9XSxbInBhdGgiLHtkOiJtMjIgMTAtOC45NyA1LjdhMS45NCAxLjk0IDAgMCAxLTIuMDYgMEwyIDEwIn1dXSxoMHQ9W1sicGF0aCIse2Q6Ik0yMiAxM1Y2YTIgMiAwIDAgMC0yLTJINGEyIDIgMCAwIDAtMiAydjEyYzAgMS4xLjkgMiAyIDJoOCJ9XSxbInBhdGgiLHtkOiJtMjIgNy04Ljk3IDUuN2ExLjk0IDEuOTQgMCAwIDEtMi4wNiAwTDIgNyJ9XSxbInBhdGgiLHtkOiJNMTkgMTZ2NiJ9XSxbInBhdGgiLHtkOiJNMTYgMTloNiJ9XV0sU3Y9W1sicGF0aCIse2Q6Ik0yMiAxMC41VjZhMiAyIDAgMCAwLTItMkg0YTIgMiAwIDAgMC0yIDJ2MTJjMCAxLjEuOSAyIDIgMmgxMi41In1dLFsicGF0aCIse2Q6Im0yMiA3LTguOTcgNS43YTEuOTQgMS45NCAwIDAgMS0yLjA2IDBMMiA3In1dLFsicGF0aCIse2Q6Ik0xOCAxNS4yOGMuMi0uNC41LS44LjktMWEyLjEgMi4xIDAgMCAxIDIuNi40Yy4zLjQuNS44LjUgMS4zIDAgMS4zLTIgMi0yIDIifV0sWyJwYXRoIix7ZDoiTTIwIDIydi4wMSJ9XV0scDB0PVtbInBhdGgiLHtkOiJNMjIgMTIuNVY2YTIgMiAwIDAgMC0yLTJINGEyIDIgMCAwIDAtMiAydjEyYzAgMS4xLjkgMiAyIDJoNy41In1dLFsicGF0aCIse2Q6Im0yMiA3LTguOTcgNS43YTEuOTQgMS45NCAwIDAgMS0yLjA2IDBMMiA3In1dLFsicGF0aCIse2Q6Ik0xOCAyMWEzIDMgMCAxIDAgMC02IDMgMyAwIDAgMCAwIDZaIn1dLFsiY2lyY2xlIix7Y3g6IjE4IixjeToiMTgiLHI6IjMifV0sWyJwYXRoIix7ZDoibTIyIDIyLTEuNS0xLjUifV1dLHUwdD1bWyJwYXRoIix7ZDoiTTIyIDEwLjVWNmEyIDIgMCAwIDAtMi0ySDRhMiAyIDAgMCAwLTIgMnYxMmMwIDEuMS45IDIgMiAyaDEyLjUifV0sWyJwYXRoIix7ZDoibTIyIDctOC45NyA1LjdhMS45NCAxLjk0IDAgMCAxLTIuMDYgMEwyIDcifV0sWyJwYXRoIix7ZDoiTTIwIDE0djQifV0sWyJwYXRoIix7ZDoiTTIwIDIydi4wMSJ9XV0sZjB0PVtbInBhdGgiLHtkOiJtMjIgNy04Ljk5MSA1LjcyN2EyIDIgMCAwIDEtMi4wMDkgMEwyIDcifV0sWyJyZWN0Iix7eDoiMiIseToiNCIsd2lkdGg6IjIwIixoZWlnaHQ6IjE2IixyeDoiMiJ9XV0sbTB0PVtbInBhdGgiLHtkOiJNMjIgMTNWNmEyIDIgMCAwIDAtMi0ySDRhMiAyIDAgMCAwLTIgMnYxMmMwIDEuMS45IDIgMiAyaDkifV0sWyJwYXRoIix7ZDoibTIyIDctOC45NyA1LjdhMS45NCAxLjk0IDAgMCAxLTIuMDYgMEwyIDcifV0sWyJwYXRoIix7ZDoibTE3IDE3IDQgNCJ9XSxbInBhdGgiLHtkOiJtMjEgMTctNCA0In1dXSxnMHQ9W1sicGF0aCIse2Q6Ik0yMiAxN2EyIDIgMCAwIDEtMiAySDRhMiAyIDAgMCAxLTItMlY5LjVDMiA3IDQgNSA2LjUgNUgxOGMyLjIgMCA0IDEuOCA0IDR2OFoifV0sWyJwb2x5bGluZSIse3BvaW50czoiMTUsOSAxOCw5IDE4LDExIn1dLFsicGF0aCIse2Q6Ik02LjUgNUM5IDUgMTEgNyAxMSA5LjVWMTdhMiAyIDAgMCAxLTIgMiJ9XSxbImxpbmUiLHt4MToiNiIseDI6IjciLHkxOiIxMCIseTI6IjEwIn1dXSxiMHQ9W1sicGF0aCIse2Q6Ik0xNyAxOWEyIDIgMCAwIDEtMiAySDRhMiAyIDAgMCAxLTItMnYtOGEyIDIgMCAwIDEgMS0xLjczMiJ9XSxbInBhdGgiLHtkOiJtMjIgNS41LTYuNDE5IDQuMTc5YTIgMiAwIDAgMS0yLjE2MiAwTDcgNS41In1dLFsicmVjdCIse3g6IjciLHk6IjMiLHdpZHRoOiIxNSIsaGVpZ2h0OiIxMiIscng6IjIifV1dLHYwdD1bWyJwYXRoIix7ZDoibTExIDE5LTEuMTA2LS41NTJhMiAyIDAgMCAwLTEuNzg4IDBsLTMuNjU5IDEuODNBMSAxIDAgMCAxIDMgMTkuMzgxVjYuNjE4YTEgMSAwIDAgMSAuNTUzLS44OTRsNC41NTMtMi4yNzdhMiAyIDAgMCAxIDEuNzg4IDBsNC4yMTIgMi4xMDZhMiAyIDAgMCAwIDEuNzg4IDBsMy42NTktMS44M0ExIDEgMCAwIDEgMjEgNC42MTlWMTQifV0sWyJwYXRoIix7ZDoiTTE1IDUuNzY0VjE0In1dLFsicGF0aCIse2Q6Ik0yMSAxOGgtNiJ9XSxbInBhdGgiLHtkOiJNOSAzLjIzNnYxNSJ9XV0seTB0PVtbInBhdGgiLHtkOiJNMjAgMTBjMCA0Ljk5My01LjUzOSAxMC4xOTMtNy4zOTkgMTEuNzk5YTEgMSAwIDAgMS0xLjIwMiAwQzkuNTM5IDIwLjE5MyA0IDE0Ljk5MyA0IDEwYTggOCAwIDAgMSAxNiAwIn1dLFsicGF0aCIse2Q6Im05IDEwIDIgMiA0LTQifV1dLHgwdD1bWyJwYXRoIix7ZDoiTTE5LjQzIDEyLjkzNWMuMzU3LS45NjcuNTctMS45NTUuNTctMi45MzVhOCA4IDAgMCAwLTE2IDBjMCA0Ljk5MyA1LjUzOSAxMC4xOTMgNy4zOTkgMTEuNzk5YTEgMSAwIDAgMCAxLjIwMiAwIDMyLjE5NyAzMi4xOTcgMCAwIDAgLjgxMy0uNzI4In1dLFsiY2lyY2xlIix7Y3g6IjEyIixjeToiMTAiLHI6IjMifV0sWyJwYXRoIix7ZDoibTE2IDE4IDIgMiA0LTQifV1dLHcwdD1bWyJwYXRoIix7ZDoiTTE1IDIyYTEgMSAwIDAgMS0xLTF2LTRhMSAxIDAgMCAxIC40NDUtLjgzMmwzLTJhMSAxIDAgMCAxIDEuMTEgMGwzIDJBMSAxIDAgMCAxIDIyIDE3djRhMSAxIDAgMCAxLTEgMXoifV0sWyJwYXRoIix7ZDoiTTE4IDEwYTggOCAwIDAgMC0xNiAwYzAgNC45OTMgNS41MzkgMTAuMTkzIDcuMzk5IDExLjc5OWExIDEgMCAwIDAgLjYwMS4yIn1dLFsicGF0aCIse2Q6Ik0xOCAyMnYtMyJ9XSxbImNpcmNsZSIse2N4OiIxMCIsY3k6IjEwIixyOiIzIn1dXSxNMHQ9W1sicGF0aCIse2Q6Ik0yMCAxMGMwIDQuOTkzLTUuNTM5IDEwLjE5My03LjM5OSAxMS43OTlhMSAxIDAgMCAxLTEuMjAyIDBDOS41MzkgMjAuMTkzIDQgMTQuOTkzIDQgMTBhOCA4IDAgMCAxIDE2IDAifV0sWyJwYXRoIix7ZDoiTTkgMTBoNiJ9XV0sejB0PVtbInBhdGgiLHtkOiJNMTguOTc3IDE0QzE5LjYgMTIuNzAxIDIwIDExLjM0MyAyMCAxMGE4IDggMCAwIDAtMTYgMGMwIDQuOTkzIDUuNTM5IDEwLjE5MyA3LjM5OSAxMS43OTlhMSAxIDAgMCAwIDEuMjAyIDAgMzIgMzIgMCAwIDAgLjgyNC0uNzM4In1dLFsiY2lyY2xlIix7Y3g6IjEyIixjeToiMTAiLHI6IjMifV0sWyJwYXRoIix7ZDoiTTE2IDE4aDYifV1dLGswdD1bWyJwYXRoIix7ZDoiTTEyLjc1IDcuMDlhMyAzIDAgMCAxIDIuMTYgMi4xNiJ9XSxbInBhdGgiLHtkOiJNMTcuMDcyIDE3LjA3MmMtMS42MzQgMi4xNy0zLjUyNyAzLjkxMi00LjQ3MSA0LjcyN2ExIDEgMCAwIDEtMS4yMDIgMEM5LjUzOSAyMC4xOTMgNCAxNC45OTMgNCAxMGE4IDggMCAwIDEgMS40MzItNC41NjgifV0sWyJwYXRoIix7ZDoibTIgMiAyMCAyMCJ9XSxbInBhdGgiLHtkOiJNOC40NzUgMi44MThBOCA4IDAgMCAxIDIwIDEwYzAgMS4xODMtLjMxIDIuMzc3LS44MSAzLjUzMyJ9XSxbInBhdGgiLHtkOiJNOS4xMyA5LjEzYTMgMyAwIDAgMCAzLjc0IDMuNzQifV1dLEN2PVtbInBhdGgiLHtkOiJNMTcuOTcgOS4zMDRBOCA4IDAgMCAwIDIgMTBjMCA0LjY5IDQuODg3IDkuNTYyIDcuMDIyIDExLjQ2OCJ9XSxbInBhdGgiLHtkOiJNMjEuMzc4IDE2LjYyNmExIDEgMCAwIDAtMy4wMDQtMy4wMDRsLTQuMDEgNC4wMTJhMiAyIDAgMCAwLS41MDYuODU0bC0uODM3IDIuODdhLjUuNSAwIDAgMCAuNjIuNjJsMi44Ny0uODM3YTIgMiAwIDAgMCAuODU0LS41MDZ6In1dLFsiY2lyY2xlIix7Y3g6IjEwIixjeToiMTAiLHI6IjMifV1dLFMwdD1bWyJwYXRoIix7ZDoiTTIwIDEwYzAgNC45OTMtNS41MzkgMTAuMTkzLTcuMzk5IDExLjc5OWExIDEgMCAwIDEtMS4yMDIgMEM5LjUzOSAyMC4xOTMgNCAxNC45OTMgNCAxMGE4IDggMCAwIDEgMTYgMCJ9XSxbInBhdGgiLHtkOiJNMTIgN3Y2In1dLFsicGF0aCIse2Q6Ik05IDEwaDYifV1dLEMwdD1bWyJwYXRoIix7ZDoiTTE5LjkxNCAxMS4xMDVBNy4yOTggNy4yOTggMCAwIDAgMjAgMTBhOCA4IDAgMCAwLTE2IDBjMCA0Ljk5MyA1LjUzOSAxMC4xOTMgNy4zOTkgMTEuNzk5YTEgMSAwIDAgMCAxLjIwMiAwIDMyIDMyIDAgMCAwIC44MjQtLjczOCJ9XSxbImNpcmNsZSIse2N4OiIxMiIsY3k6IjEwIixyOiIzIn1dLFsicGF0aCIse2Q6Ik0xNiAxOGg2In1dLFsicGF0aCIse2Q6Ik0xOSAxNXY2In1dXSxfMHQ9W1sicGF0aCIse2Q6Ik0yMCAxMGMwIDQuOTkzLTUuNTM5IDEwLjE5My03LjM5OSAxMS43OTlhMSAxIDAgMCAxLTEuMjAyIDBDOS41MzkgMjAuMTkzIDQgMTQuOTkzIDQgMTBhOCA4IDAgMCAxIDE2IDAifV0sWyJwYXRoIix7ZDoibTE0LjUgNy41LTUgNSJ9XSxbInBhdGgiLHtkOiJtOS41IDcuNSA1IDUifV1dLFQwdD1bWyJwYXRoIix7ZDoiTTE5Ljc1MiAxMS45MDFBNy43OCA3Ljc4IDAgMCAwIDIwIDEwYTggOCAwIDAgMC0xNiAwYzAgNC45OTMgNS41MzkgMTAuMTkzIDcuMzk5IDExLjc5OWExIDEgMCAwIDAgMS4yMDIgMCAxOSAxOSAwIDAgMCAuMDktLjA3NyJ9XSxbImNpcmNsZSIse2N4OiIxMiIsY3k6IjEwIixyOiIzIn1dLFsicGF0aCIse2Q6Im0yMS41IDE1LjUtNSA1In1dLFsicGF0aCIse2Q6Im0yMS41IDIwLjUtNS01In1dXSxMMHQ9W1sicGF0aCIse2Q6Ik0yMCAxMGMwIDQuOTkzLTUuNTM5IDEwLjE5My03LjM5OSAxMS43OTlhMSAxIDAgMCAxLTEuMjAyIDBDOS41MzkgMjAuMTkzIDQgMTQuOTkzIDQgMTBhOCA4IDAgMCAxIDE2IDAifV0sWyJjaXJjbGUiLHtjeDoiMTIiLGN5OiIxMCIscjoiMyJ9XV0sJDB0PVtbInBhdGgiLHtkOiJNMTggOGMwIDMuNjEzLTMuODY5IDcuNDI5LTUuMzkzIDguNzk1YTEgMSAwIDAgMS0xLjIxNCAwQzkuODcgMTUuNDI5IDYgMTEuNjEzIDYgOGE2IDYgMCAwIDEgMTIgMCJ9XSxbImNpcmNsZSIse2N4OiIxMiIsY3k6IjgiLHI6IjIifV0sWyJwYXRoIix7ZDoiTTguNzE0IDE0aC0zLjcxYTEgMSAwIDAgMC0uOTQ4LjY4M2wtMi4wMDQgNkExIDEgMCAwIDAgMyAyMmgxOGExIDEgMCAwIDAgLjk0OC0xLjMxNmwtMi02YTEgMSAwIDAgMC0uOTQ5LS42ODRoLTMuNzEyIn1dXSxBMHQ9W1sicGF0aCIse2Q6Im0xMSAxOS0xLjEwNi0uNTUyYTIgMiAwIDAgMC0xLjc4OCAwbC0zLjY1OSAxLjgzQTEgMSAwIDAgMSAzIDE5LjM4MVY2LjYxOGExIDEgMCAwIDEgLjU1My0uODk0bDQuNTUzLTIuMjc3YTIgMiAwIDAgMSAxLjc4OCAwbDQuMjEyIDIuMTA2YTIgMiAwIDAgMCAxLjc4OCAwbDMuNjU5LTEuODNBMSAxIDAgMCAxIDIxIDQuNjE5VjEyIn1dLFsicGF0aCIse2Q6Ik0xNSA1Ljc2NFYxMiJ9XSxbInBhdGgiLHtkOiJNMTggMTV2NiJ9XSxbInBhdGgiLHtkOiJNMjEgMThoLTYifV0sWyJwYXRoIix7ZDoiTTkgMy4yMzZ2MTUifV1dLEQwdD1bWyJwYXRoIix7ZDoiTTE0LjEwNiA1LjU1M2EyIDIgMCAwIDAgMS43ODggMGwzLjY1OS0xLjgzQTEgMSAwIDAgMSAyMSA0LjYxOXYxMi43NjRhMSAxIDAgMCAxLS41NTMuODk0bC00LjU1MyAyLjI3N2EyIDIgMCAwIDEtMS43ODggMGwtNC4yMTItMi4xMDZhMiAyIDAgMCAwLTEuNzg4IDBsLTMuNjU5IDEuODNBMSAxIDAgMCAxIDMgMTkuMzgxVjYuNjE4YTEgMSAwIDAgMSAuNTUzLS44OTRsNC41NTMtMi4yNzdhMiAyIDAgMCAxIDEuNzg4IDB6In1dLFsicGF0aCIse2Q6Ik0xNSA1Ljc2NHYxNSJ9XSxbInBhdGgiLHtkOiJNOSAzLjIzNnYxNSJ9XV0sRTB0PVtbInBhdGgiLHtkOiJtMTQgNiA0IDQifV0sWyJwYXRoIix7ZDoiTTE3IDNoNHY0In1dLFsicGF0aCIse2Q6Im0yMSAzLTcuNzUgNy43NSJ9XSxbImNpcmNsZSIse2N4OiI5IixjeToiMTUiLHI6IjYifV1dLFAwdD1bWyJwYXRoIix7ZDoiTTE2IDNoNXY1In1dLFsicGF0aCIse2Q6Im0yMSAzLTYuNzUgNi43NSJ9XSxbImNpcmNsZSIse2N4OiIxMCIsY3k6IjE0IixyOiI2In1dXSxJMHQ9W1sicGF0aCIse2Q6Ik04IDIyaDgifV0sWyJwYXRoIix7ZDoiTTEyIDExdjExIn1dLFsicGF0aCIse2Q6Im0xOSAzLTcgOC03LThaIn1dXSxOMHQ9W1sicGF0aCIse2Q6Ik0xNSAzaDZ2NiJ9XSxbInBhdGgiLHtkOiJtMjEgMy03IDcifV0sWyJwYXRoIix7ZDoibTMgMjEgNy03In1dLFsicGF0aCIse2Q6Ik05IDIxSDN2LTYifV1dLEYwdD1bWyJwYXRoIix7ZDoiTTggM0g1YTIgMiAwIDAgMC0yIDJ2MyJ9XSxbInBhdGgiLHtkOiJNMjEgOFY1YTIgMiAwIDAgMC0yLTJoLTMifV0sWyJwYXRoIix7ZDoiTTMgMTZ2M2EyIDIgMCAwIDAgMiAyaDMifV0sWyJwYXRoIix7ZDoiTTE2IDIxaDNhMiAyIDAgMCAwIDItMnYtMyJ9XV0sTzB0PVtbInBhdGgiLHtkOiJNNy4yMSAxNSAyLjY2IDcuMTRhMiAyIDAgMCAxIC4xMy0yLjJMNC40IDIuOEEyIDIgMCAwIDEgNiAyaDEyYTIgMiAwIDAgMSAxLjYuOGwxLjYgMi4xNGEyIDIgMCAwIDEgLjE0IDIuMkwxNi43OSAxNSJ9XSxbInBhdGgiLHtkOiJNMTEgMTIgNS4xMiAyLjIifV0sWyJwYXRoIix7ZDoibTEzIDEyIDUuODgtOS44In1dLFsicGF0aCIse2Q6Ik04IDdoOCJ9XSxbImNpcmNsZSIse2N4OiIxMiIsY3k6IjE3IixyOiI1In1dLFsicGF0aCIse2Q6Ik0xMiAxOHYtMmgtLjUifV1dLFIwdD1bWyJwYXRoIix7ZDoiTTExLjYzNiA2QTEzIDEzIDAgMCAwIDE5LjQgMy4yIDEgMSAwIDAgMSAyMSA0djExLjM0NCJ9XSxbInBhdGgiLHtkOiJNMTQuMzc4IDE0LjM1N0ExMyAxMyAwIDAgMCAxMSAxNEg1YTIgMiAwIDAgMS0yLTJWOGEyIDIgMCAwIDEgMi0yaDEifV0sWyJwYXRoIix7ZDoibTIgMiAyMCAyMCJ9XSxbInBhdGgiLHtkOiJNNiAxNGExMiAxMiAwIDAgMCAyLjQgNy4yIDIgMiAwIDAgMCAzLjItMi40QTggOCAwIDAgMSAxMCAxNCJ9XSxbInBhdGgiLHtkOiJNOCA4djYifV1dLEIwdD1bWyJwYXRoIix7ZDoiTTExIDZhMTMgMTMgMCAwIDAgOC40LTIuOEExIDEgMCAwIDEgMjEgNHYxMmExIDEgMCAwIDEtMS42LjhBMTMgMTMgMCAwIDAgMTEgMTRINWEyIDIgMCAwIDEtMi0yVjhhMiAyIDAgMCAxIDItMnoifV0sWyJwYXRoIix7ZDoiTTYgMTRhMTIgMTIgMCAwIDAgMi40IDcuMiAyIDIgMCAwIDAgMy4yLTIuNEE4IDggMCAwIDEgMTAgMTQifV0sWyJwYXRoIix7ZDoiTTggNnY4In1dXSxIMHQ9W1siY2lyY2xlIix7Y3g6IjEyIixjeToiMTIiLHI6IjEwIn1dLFsibGluZSIse3gxOiI4Iix4MjoiMTYiLHkxOiIxNSIseTI6IjE1In1dLFsibGluZSIse3gxOiI5Iix4MjoiOS4wMSIseTE6IjkiLHkyOiI5In1dLFsibGluZSIse3gxOiIxNSIseDI6IjE1LjAxIix5MToiOSIseTI6IjkifV1dLHEwdD1bWyJwYXRoIix7ZDoiTTQgNWgxNiJ9XSxbInBhdGgiLHtkOiJNNCAxMmgxNiJ9XSxbInBhdGgiLHtkOiJNNCAxOWgxNiJ9XV0sVjB0PVtbInBhdGgiLHtkOiJNMTIgMTJ2LTIifV0sWyJwYXRoIix7ZDoiTTEyIDE4di0yIn1dLFsicGF0aCIse2Q6Ik0xNiAxMnYtMiJ9XSxbInBhdGgiLHtkOiJNMTYgMTh2LTIifV0sWyJwYXRoIix7ZDoiTTIgMTFoMS41In1dLFsicGF0aCIse2Q6Ik0yMCAxOHYtMiJ9XSxbInBhdGgiLHtkOiJNMjAuNSAxMUgyMiJ9XSxbInBhdGgiLHtkOiJNNCAxOHYtMiJ9XSxbInBhdGgiLHtkOiJNOCAxMnYtMiJ9XSxbInBhdGgiLHtkOiJNOCAxOHYtMiJ9XSxbInJlY3QiLHt4OiIyIix5OiI2Iix3aWR0aDoiMjAiLGhlaWdodDoiMTAiLHJ4OiIyIn1dXSxqMHQ9W1sicGF0aCIse2Q6Im04IDYgNC00IDQgNCJ9XSxbInBhdGgiLHtkOiJNMTIgMnYxMC4zYTQgNCAwIDAgMS0xLjE3MiAyLjg3Mkw0IDIyIn1dLFsicGF0aCIse2Q6Im0yMCAyMi01LTUifV1dLFUwdD1bWyJwYXRoIix7ZDoibTEwIDktMyAzIDMgMyJ9XSxbInBhdGgiLHtkOiJtMTQgMTUgMy0zLTMtMyJ9XSxbInBhdGgiLHtkOiJNMi45OTIgMTYuMzQyYTIgMiAwIDAgMSAuMDk0IDEuMTY3bC0xLjA2NSAzLjI5YTEgMSAwIDAgMCAxLjIzNiAxLjE2OGwzLjQxMy0uOTk4YTIgMiAwIDAgMSAxLjA5OS4wOTIgMTAgMTAgMCAxIDAtNC43NzctNC43MTkifV1dLFcwdD1bWyJwYXRoIix7ZDoiTTEwLjEgMi4xODJhMTAgMTAgMCAwIDEgMy44IDAifV0sWyJwYXRoIix7ZDoiTTEzLjkgMjEuODE4YTEwIDEwIDAgMCAxLTMuOCAwIn1dLFsicGF0aCIse2Q6Ik0xNy42MDkgMy43MmExMCAxMCAwIDAgMSAyLjY5IDIuNyJ9XSxbInBhdGgiLHtkOiJNMi4xODIgMTMuOWExMCAxMCAwIDAgMSAwLTMuOCJ9XSxbInBhdGgiLHtkOiJNMjAuMjggMTcuNjFhMTAgMTAgMCAwIDEtMi43IDIuNjkifV0sWyJwYXRoIix7ZDoiTTIxLjgxOCAxMC4xYTEwIDEwIDAgMCAxIDAgMy44In1dLFsicGF0aCIse2Q6Ik0zLjcyMSA2LjM5MWExMCAxMCAwIDAgMSAyLjctMi42OSJ9XSxbInBhdGgiLHtkOiJtNi4xNjMgMjEuMTE3LTIuOTA2Ljg1YTEgMSAwIDAgMS0xLjIzNi0xLjE2OWwuOTY1LTIuOTgifV1dLEcwdD1bWyJwYXRoIix7ZDoiTTIuOTkyIDE2LjM0MmEyIDIgMCAwIDEgLjA5NCAxLjE2N2wtMS4wNjUgMy4yOWExIDEgMCAwIDAgMS4yMzYgMS4xNjhsMy40MTMtLjk5OGEyIDIgMCAwIDEgMS4wOTkuMDkyIDEwIDEwIDAgMSAwLTQuNzc3LTQuNzE5In1dLFsicGF0aCIse2Q6Ik03LjgyOCAxMy4wN0EzIDMgMCAwIDEgMTIgOC43NjRhMyAzIDAgMCAxIDUuMDA0IDIuMjI0IDMgMyAwIDAgMS0uODMyIDIuMDgzbC0zLjQ0NyAzLjYyYTEgMSAwIDAgMS0xLjQ1LS4wMDF6In1dXSxZMHQ9W1sicGF0aCIse2Q6Ik0yLjk5MiAxNi4zNDJhMiAyIDAgMCAxIC4wOTQgMS4xNjdsLTEuMDY1IDMuMjlhMSAxIDAgMCAwIDEuMjM2IDEuMTY4bDMuNDEzLS45OThhMiAyIDAgMCAxIDEuMDk5LjA5MiAxMCAxMCAwIDEgMC00Ljc3Ny00LjcxOSJ9XSxbInBhdGgiLHtkOiJNOCAxMmguMDEifV0sWyJwYXRoIix7ZDoiTTEyIDEyaC4wMSJ9XSxbInBhdGgiLHtkOiJNMTYgMTJoLjAxIn1dXSxaMHQ9W1sicGF0aCIse2Q6Im0yIDIgMjAgMjAifV0sWyJwYXRoIix7ZDoiTTQuOTMgNC45MjlhMTAgMTAgMCAwIDAtMS45MzggMTEuNDEyIDIgMiAwIDAgMSAuMDk0IDEuMTY3bC0xLjA2NSAzLjI5YTEgMSAwIDAgMCAxLjIzNiAxLjE2OGwzLjQxMy0uOTk4YTIgMiAwIDAgMSAxLjA5OS4wOTIgMTAgMTAgMCAwIDAgMTEuMzAyLTEuOTg5In1dLFsicGF0aCIse2Q6Ik04LjM1IDIuNjlBMTAgMTAgMCAwIDEgMjEuMyAxNS42NSJ9XV0sWDB0PVtbInBhdGgiLHtkOiJNMi45OTIgMTYuMzQyYTIgMiAwIDAgMSAuMDk0IDEuMTY3bC0xLjA2NSAzLjI5YTEgMSAwIDAgMCAxLjIzNiAxLjE2OGwzLjQxMy0uOTk4YTIgMiAwIDAgMSAxLjA5OS4wOTIgMTAgMTAgMCAxIDAtNC43NzctNC43MTkifV0sWyJwYXRoIix7ZDoiTTggMTJoOCJ9XSxbInBhdGgiLHtkOiJNMTIgOHY4In1dXSxfdj1bWyJwYXRoIix7ZDoiTTIuOTkyIDE2LjM0MmEyIDIgMCAwIDEgLjA5NCAxLjE2N2wtMS4wNjUgMy4yOWExIDEgMCAwIDAgMS4yMzYgMS4xNjhsMy40MTMtLjk5OGEyIDIgMCAwIDEgMS4wOTkuMDkyIDEwIDEwIDAgMSAwLTQuNzc3LTQuNzE5In1dLFsicGF0aCIse2Q6Ik05LjA5IDlhMyAzIDAgMCAxIDUuODMgMWMwIDItMyAzLTMgMyJ9XSxbInBhdGgiLHtkOiJNMTIgMTdoLjAxIn1dXSxLMHQ9W1sicGF0aCIse2Q6Ik0yLjk5MiAxNi4zNDJhMiAyIDAgMCAxIC4wOTQgMS4xNjdsLTEuMDY1IDMuMjlhMSAxIDAgMCAwIDEuMjM2IDEuMTY4bDMuNDEzLS45OThhMiAyIDAgMCAxIDEuMDk5LjA5MiAxMCAxMCAwIDEgMC00Ljc3Ny00LjcxOSJ9XSxbInBhdGgiLHtkOiJNMTIgOHY0In1dLFsicGF0aCIse2Q6Ik0xMiAxNmguMDEifV1dLFEwdD1bWyJwYXRoIix7ZDoiTTIuOTkyIDE2LjM0MmEyIDIgMCAwIDEgLjA5NCAxLjE2N2wtMS4wNjUgMy4yOWExIDEgMCAwIDAgMS4yMzYgMS4xNjhsMy40MTMtLjk5OGEyIDIgMCAwIDEgMS4wOTkuMDkyIDEwIDEwIDAgMSAwLTQuNzc3LTQuNzE5In1dLFsicGF0aCIse2Q6Im0xMCAxNS0zLTMgMy0zIn1dLFsicGF0aCIse2Q6Ik03IDEyaDhhMiAyIDAgMCAxIDIgMnYxIn1dXSxKMHQ9W1sicGF0aCIse2Q6Ik0yLjk5MiAxNi4zNDJhMiAyIDAgMCAxIC4wOTQgMS4xNjdsLTEuMDY1IDMuMjlhMSAxIDAgMCAwIDEuMjM2IDEuMTY4bDMuNDEzLS45OThhMiAyIDAgMCAxIDEuMDk5LjA5MiAxMCAxMCAwIDEgMC00Ljc3Ny00LjcxOSJ9XSxbInBhdGgiLHtkOiJtMTUgOS02IDYifV0sWyJwYXRoIix7ZDoibTkgOSA2IDYifV1dLGU0dD1bWyJwYXRoIix7ZDoiTTIuOTkyIDE2LjM0MmEyIDIgMCAwIDEgLjA5NCAxLjE2N2wtMS4wNjUgMy4yOWExIDEgMCAwIDAgMS4yMzYgMS4xNjhsMy40MTMtLjk5OGEyIDIgMCAwIDEgMS4wOTkuMDkyIDEwIDEwIDAgMSAwLTQuNzc3LTQuNzE5In1dXSx0NHQ9W1sicGF0aCIse2Q6Ik0yMiAxN2EyIDIgMCAwIDEtMiAySDYuODI4YTIgMiAwIDAgMC0xLjQxNC41ODZsLTIuMjAyIDIuMjAyQS43MS43MSAwIDAgMSAyIDIxLjI4NlY1YTIgMiAwIDAgMSAyLTJoMTZhMiAyIDAgMCAxIDIgMnoifV0sWyJwYXRoIix7ZDoibTEwIDgtMyAzIDMgMyJ9XSxbInBhdGgiLHtkOiJtMTQgMTQgMy0zLTMtMyJ9XV0sYTR0PVtbInBhdGgiLHtkOiJNMTQgM2gyIn1dLFsicGF0aCIse2Q6Ik0xNiAxOWgtMiJ9XSxbInBhdGgiLHtkOiJNMiAxMnYtMiJ9XSxbInBhdGgiLHtkOiJNMiAxNnY1LjI4NmEuNzEuNzEgMCAwIDAgMS4yMTIuNTAybDEuMTQ5LTEuMTQ5In1dLFsicGF0aCIse2Q6Ik0yMCAxOWEyIDIgMCAwIDAgMi0ydi0xIn1dLFsicGF0aCIse2Q6Ik0yMiAxMHYyIn1dLFsicGF0aCIse2Q6Ik0yMiA2VjVhMiAyIDAgMCAwLTItMiJ9XSxbInBhdGgiLHtkOiJNNCAzYTIgMiAwIDAgMC0yIDJ2MSJ9XSxbInBhdGgiLHtkOiJNOCAxOWgyIn1dLFsicGF0aCIse2Q6Ik04IDNoMiJ9XV0saTR0PVtbInBhdGgiLHtkOiJNMjIgMTdhMiAyIDAgMCAxLTIgMkg2LjgyOGEyIDIgMCAwIDAtMS40MTQuNTg2bC0yLjIwMiAyLjIwMkEuNzEuNzEgMCAwIDEgMiAyMS4yODZWNWEyIDIgMCAwIDEgMi0yaDE2YTIgMiAwIDAgMSAyIDJ6In1dLFsicGF0aCIse2Q6Ik0xMCAxNWg0In1dLFsicGF0aCIse2Q6Ik0xMCA5aDQifV0sWyJwYXRoIix7ZDoiTTEyIDd2NCJ9XV0scjR0PVtbInBhdGgiLHtkOiJNMTIuNyAzSDRhMiAyIDAgMCAwLTIgMnYxNi4yODZhLjcxLjcxIDAgMCAwIDEuMjEyLjUwMmwyLjIwMi0yLjIwMkEyIDIgMCAwIDEgNi44MjggMTlIMjBhMiAyIDAgMCAwIDItMnYtNC43In1dLFsiY2lyY2xlIix7Y3g6IjE5IixjeToiNiIscjoiMyJ9XV0sczR0PVtbInBhdGgiLHtkOiJNMjIgMTdhMiAyIDAgMCAxLTIgMkg2LjgyOGEyIDIgMCAwIDAtMS40MTQuNTg2bC0yLjIwMiAyLjIwMkEuNzEuNzEgMCAwIDEgMiAyMS4yODZWNWEyIDIgMCAwIDEgMi0yaDE2YTIgMiAwIDAgMSAyIDJ6In1dLFsicGF0aCIse2Q6Ik03LjUgOS41YzAgLjY4Ny4yNjUgMS4zODMuNjk3IDEuODQ0bDMuMDA5IDMuMjY0YTEuMTQgMS4xNCAwIDAgMCAuNDA3LjMxNCAxIDEgMCAwIDAgLjc4My0uMDA0IDEuMTQgMS4xNCAwIDAgMCAuMzk4LS4zMWwzLjAwOC0zLjI2NEEyLjc3IDIuNzcgMCAwIDAgMTYuNSA5LjUgMi41IDIuNSAwIDAgMCAxMiA4YTIuNSAyLjUgMCAwIDAtNC41IDEuNSJ9XV0sbjR0PVtbInBhdGgiLHtkOiJNMjIgOC41VjVhMiAyIDAgMCAwLTItMkg0YTIgMiAwIDAgMC0yIDJ2MTYuMjg2YS43MS43MSAwIDAgMCAxLjIxMi41MDJsMi4yMDItMi4yMDJBMiAyIDAgMCAxIDYuODI4IDE5SDEwIn1dLFsicGF0aCIse2Q6Ik0yMCAxNXYtMmEyIDIgMCAwIDAtNCAwdjIifV0sWyJyZWN0Iix7eDoiMTQiLHk6IjE1Iix3aWR0aDoiOCIsaGVpZ2h0OiI1IixyeDoiMSJ9XV0sbzR0PVtbInBhdGgiLHtkOiJNMjIgMTdhMiAyIDAgMCAxLTIgMkg2LjgyOGEyIDIgMCAwIDAtMS40MTQuNTg2bC0yLjIwMiAyLjIwMkEuNzEuNzEgMCAwIDEgMiAyMS4yODZWNWEyIDIgMCAwIDEgMi0yaDE2YTIgMiAwIDAgMSAyIDJ6In1dLFsicGF0aCIse2Q6Ik0xMiAxMWguMDEifV0sWyJwYXRoIix7ZDoiTTE2IDExaC4wMSJ9XSxbInBhdGgiLHtkOiJNOCAxMWguMDEifV1dLGw0dD1bWyJwYXRoIix7ZDoiTTE5IDE5SDYuODI4YTIgMiAwIDAgMC0xLjQxNC41ODZsLTIuMjAyIDIuMjAyQS43LjcgMCAwIDEgMiAyMS4yODZWNWEyIDIgMCAwIDEgMS4xODQtMS44MjYifV0sWyJwYXRoIix7ZDoibTIgMiAyMCAyMCJ9XSxbInBhdGgiLHtkOiJNOC42NTYgM0gyMGEyIDIgMCAwIDEgMiAydjExLjM0NCJ9XV0sYzR0PVtbInBhdGgiLHtkOiJNMjIgMTdhMiAyIDAgMCAxLTIgMkg2LjgyOGEyIDIgMCAwIDAtMS40MTQuNTg2bC0yLjIwMiAyLjIwMkEuNzEuNzEgMCAwIDEgMiAyMS4yODZWNWEyIDIgMCAwIDEgMi0yaDE2YTIgMiAwIDAgMSAyIDJ6In1dLFsicGF0aCIse2Q6Ik0xMiA4djYifV0sWyJwYXRoIix7ZDoiTTkgMTFoNiJ9XV0sZDR0PVtbInBhdGgiLHtkOiJNMTQgMTRhMiAyIDAgMCAwIDItMlY4aC0yIn1dLFsicGF0aCIse2Q6Ik0yMiAxN2EyIDIgMCAwIDEtMiAySDYuODI4YTIgMiAwIDAgMC0xLjQxNC41ODZsLTIuMjAyIDIuMjAyQS43MS43MSAwIDAgMSAyIDIxLjI4NlY1YTIgMiAwIDAgMSAyLTJoMTZhMiAyIDAgMCAxIDIgMnoifV0sWyJwYXRoIix7ZDoiTTggMTRhMiAyIDAgMCAwIDItMlY4SDgifV1dLGg0dD1bWyJwYXRoIix7ZDoiTTIyIDE3YTIgMiAwIDAgMS0yIDJINi44MjhhMiAyIDAgMCAwLTEuNDE0LjU4NmwtMi4yMDIgMi4yMDJBLjcxLjcxIDAgMCAxIDIgMjEuMjg2VjVhMiAyIDAgMCAxIDItMmgxNmEyIDIgMCAwIDEgMiAyeiJ9XSxbInBhdGgiLHtkOiJtMTAgOC0zIDMgMyAzIn1dLFsicGF0aCIse2Q6Ik0xNyAxNHYtMWEyIDIgMCAwIDAtMi0ySDcifV1dLHA0dD1bWyJwYXRoIix7ZDoiTTEyIDNINGEyIDIgMCAwIDAtMiAydjE2LjI4NmEuNzEuNzEgMCAwIDAgMS4yMTIuNTAybDIuMjAyLTIuMjAyQTIgMiAwIDAgMSA2LjgyOCAxOUgyMGEyIDIgMCAwIDAgMi0ydi00In1dLFsicGF0aCIse2Q6Ik0xNiAzaDZ2NiJ9XSxbInBhdGgiLHtkOiJtMTYgOSA2LTYifV1dLHU0dD1bWyJwYXRoIix7ZDoiTTIyIDE3YTIgMiAwIDAgMS0yIDJINi44MjhhMiAyIDAgMCAwLTEuNDE0LjU4NmwtMi4yMDIgMi4yMDJBLjcxLjcxIDAgMCAxIDIgMjEuMjg2VjVhMiAyIDAgMCAxIDItMmgxNmEyIDIgMCAwIDEgMiAyeiJ9XSxbInBhdGgiLHtkOiJNNyAxMWgxMCJ9XSxbInBhdGgiLHtkOiJNNyAxNWg2In1dLFsicGF0aCIse2Q6Ik03IDdoOCJ9XV0sZjR0PVtbInBhdGgiLHtkOiJNMjIgMTdhMiAyIDAgMCAxLTIgMkg2LjgyOGEyIDIgMCAwIDAtMS40MTQuNTg2bC0yLjIwMiAyLjIwMkEuNzEuNzEgMCAwIDEgMiAyMS4yODZWNWEyIDIgMCAwIDEgMi0yaDE2YTIgMiAwIDAgMSAyIDJ6In1dLFsicGF0aCIse2Q6Ik0xMiAxNWguMDEifV0sWyJwYXRoIix7ZDoiTTEyIDd2NCJ9XV0sbTR0PVtbInBhdGgiLHtkOiJNMjIgMTdhMiAyIDAgMCAxLTIgMkg2LjgyOGEyIDIgMCAwIDAtMS40MTQuNTg2bC0yLjIwMiAyLjIwMkEuNzEuNzEgMCAwIDEgMiAyMS4yODZWNWEyIDIgMCAwIDEgMi0yaDE2YTIgMiAwIDAgMSAyIDJ6In1dLFsicGF0aCIse2Q6Im0xNC41IDguNS01IDUifV0sWyJwYXRoIix7ZDoibTkuNSA4LjUgNSA1In1dXSxnNHQ9W1sicGF0aCIse2Q6Ik0yMiAxN2EyIDIgMCAwIDEtMiAySDYuODI4YTIgMiAwIDAgMC0xLjQxNC41ODZsLTIuMjAyIDIuMjAyQS43MS43MSAwIDAgMSAyIDIxLjI4NlY1YTIgMiAwIDAgMSAyLTJoMTZhMiAyIDAgMCAxIDIgMnoifV1dLGI0dD1bWyJwYXRoIix7ZDoiTTE2IDEwYTIgMiAwIDAgMS0yIDJINi44MjhhMiAyIDAgMCAwLTEuNDE0LjU4NmwtMi4yMDIgMi4yMDJBLjcxLjcxIDAgMCAxIDIgMTQuMjg2VjRhMiAyIDAgMCAxIDItMmgxMGEyIDIgMCAwIDEgMiAyeiJ9XSxbInBhdGgiLHtkOiJNMjAgOWEyIDIgMCAwIDEgMiAydjEwLjI4NmEuNzEuNzEgMCAwIDEtMS4yMTIuNTAybC0yLjIwMi0yLjIwMkEyIDIgMCAwIDAgMTcuMTcyIDE5SDEwYTIgMiAwIDAgMS0yLTJ2LTEifV1dLHY0dD1bWyJwYXRoIix7ZDoiTTEyIDE5djMifV0sWyJwYXRoIix7ZDoiTTE1IDkuMzRWNWEzIDMgMCAwIDAtNS42OC0xLjMzIn1dLFsicGF0aCIse2Q6Ik0xNi45NSAxNi45NUE3IDcgMCAwIDEgNSAxMnYtMiJ9XSxbInBhdGgiLHtkOiJNMTguODkgMTMuMjNBNyA3IDAgMCAwIDE5IDEydi0yIn1dLFsicGF0aCIse2Q6Im0yIDIgMjAgMjAifV0sWyJwYXRoIix7ZDoiTTkgOXYzYTMgMyAwIDAgMCA1LjEyIDIuMTIifV1dLFR2PVtbInBhdGgiLHtkOiJtMTEgNy42MDEtNS45OTQgOC4xOWExIDEgMCAwIDAgLjEgMS4yOThsLjgxNy44MThhMSAxIDAgMCAwIDEuMzE0LjA4N0wxNS4wOSAxMiJ9XSxbInBhdGgiLHtkOiJNMTYuNSAyMS4xNzRDMTUuNSAyMC41IDE0LjM3MiAyMCAxMyAyMGMtMi4wNTggMC0zLjkyOCAyLjM1Ni02IDItMi4wNzItLjM1Ni0yLjc3NS0zLjM2OS0xLjUtNC41In1dLFsiY2lyY2xlIix7Y3g6IjE2IixjeToiNyIscjoiNSJ9XV0seTR0PVtbInBhdGgiLHtkOiJNMTIgMTl2MyJ9XSxbInBhdGgiLHtkOiJNMTkgMTB2MmE3IDcgMCAwIDEtMTQgMHYtMiJ9XSxbInJlY3QiLHt4OiI5Iix5OiIyIix3aWR0aDoiNiIsaGVpZ2h0OiIxMyIscng6IjMifV1dLHg0dD1bWyJwYXRoIix7ZDoiTTEwIDEyaDQifV0sWyJwYXRoIix7ZDoiTTEwIDE3aDQifV0sWyJwYXRoIix7ZDoiTTEwIDdoNCJ9XSxbInBhdGgiLHtkOiJNMTggMTJoMiJ9XSxbInBhdGgiLHtkOiJNMTggMThoMiJ9XSxbInBhdGgiLHtkOiJNMTggNmgyIn1dLFsicGF0aCIse2Q6Ik00IDEyaDIifV0sWyJwYXRoIix7ZDoiTTQgMThoMiJ9XSxbInBhdGgiLHtkOiJNNCA2aDIifV0sWyJyZWN0Iix7eDoiNiIseToiMiIsd2lkdGg6IjEyIixoZWlnaHQ6IjIwIixyeDoiMiJ9XV0sdzR0PVtbInBhdGgiLHtkOiJNNiAxOGg4In1dLFsicGF0aCIse2Q6Ik0zIDIyaDE4In1dLFsicGF0aCIse2Q6Ik0xNCAyMmE3IDcgMCAxIDAgMC0xNGgtMSJ9XSxbInBhdGgiLHtkOiJNOSAxNGgyIn1dLFsicGF0aCIse2Q6Ik05IDEyYTIgMiAwIDAgMS0yLTJWNmg2djRhMiAyIDAgMCAxLTIgMloifV0sWyJwYXRoIix7ZDoiTTEyIDZWM2ExIDEgMCAwIDAtMS0xSDlhMSAxIDAgMCAwLTEgMXYzIn1dXSxNNHQ9W1sicmVjdCIse3dpZHRoOiIyMCIsaGVpZ2h0OiIxNSIseDoiMiIseToiNCIscng6IjIifV0sWyJyZWN0Iix7d2lkdGg6IjgiLGhlaWdodDoiNyIseDoiNiIseToiOCIscng6IjEifV0sWyJwYXRoIix7ZDoiTTE4IDh2NyJ9XSxbInBhdGgiLHtkOiJNNiAxOXYyIn1dLFsicGF0aCIse2Q6Ik0xOCAxOXYyIn1dXSx6NHQ9W1sicGF0aCIse2Q6Ik0xMiAxM3Y4In1dLFsicGF0aCIse2Q6Ik0xMiAzdjMifV0sWyJwYXRoIix7ZDoiTTQgNmExIDEgMCAwIDAtMSAxdjVhMSAxIDAgMCAwIDEgMWgxM2EyIDIgMCAwIDAgMS4xNTItLjM2NWwzLjQyNC0yLjMxN2ExIDEgMCAwIDAgMC0xLjYzNWwtMy40MjQtMi4zMThBMiAyIDAgMCAwIDE3IDZ6In1dXSxrNHQ9W1sicGF0aCIse2Q6Ik04IDJoOCJ9XSxbInBhdGgiLHtkOiJNOSAydjEuMzQzTTE1IDJ2Mi43ODlhNCA0IDAgMCAwIC42NzIgMi4yMTlsLjY1Ni45ODRhNCA0IDAgMCAxIC42NzIgMi4yMnYxLjEzMU03LjggNy44bC0uMTI4LjE5MkE0IDQgMCAwIDAgNyAxMC4yMTJWMjBhMiAyIDAgMCAwIDIgMmg2YTIgMiAwIDAgMCAyLTJ2LTMifV0sWyJwYXRoIix7ZDoiTTcgMTVhNi40NyA2LjQ3IDAgMCAxIDUgMCA2LjQ3MiA2LjQ3MiAwIDAgMCAzLjQzNS40MzUifV0sWyJsaW5lIix7eDE6IjIiLHgyOiIyMiIseTE6IjIiLHkyOiIyMiJ9XV0sUzR0PVtbInBhdGgiLHtkOiJtMTQgMTAgNy03In1dLFsicGF0aCIse2Q6Ik0yMCAxMGgtNlY0In1dLFsicGF0aCIse2Q6Im0zIDIxIDctNyJ9XSxbInBhdGgiLHtkOiJNNCAxNGg2djYifV1dLEM0dD1bWyJwYXRoIix7ZDoiTTggMmg4In1dLFsicGF0aCIse2Q6Ik05IDJ2Mi43ODlhNCA0IDAgMCAxLS42NzIgMi4yMTlsLS42NTYuOTg0QTQgNCAwIDAgMCA3IDEwLjIxMlYyMGEyIDIgMCAwIDAgMiAyaDZhMiAyIDAgMCAwIDItMnYtOS43ODlhNCA0IDAgMCAwLS42NzItMi4yMTlsLS42NTYtLjk4NEE0IDQgMCAwIDEgMTUgNC43ODhWMiJ9XSxbInBhdGgiLHtkOiJNNyAxNWE2LjQ3MiA2LjQ3MiAwIDAgMSA1IDAgNi40NyA2LjQ3IDAgMCAwIDUgMCJ9XV0sXzR0PVtbInBhdGgiLHtkOiJNOCAzdjNhMiAyIDAgMCAxLTIgMkgzIn1dLFsicGF0aCIse2Q6Ik0yMSA4aC0zYTIgMiAwIDAgMS0yLTJWMyJ9XSxbInBhdGgiLHtkOiJNMyAxNmgzYTIgMiAwIDAgMSAyIDJ2MyJ9XSxbInBhdGgiLHtkOiJNMTYgMjF2LTNhMiAyIDAgMCAxIDItMmgzIn1dXSxUNHQ9W1sicGF0aCIse2Q6Ik01IDEyaDE0In1dXSxMNHQ9W1sicGF0aCIse2Q6Im05IDEwIDIgMiA0LTQifV0sWyJyZWN0Iix7d2lkdGg6IjIwIixoZWlnaHQ6IjE0Iix4OiIyIix5OiIzIixyeDoiMiJ9XSxbInBhdGgiLHtkOiJNMTIgMTd2NCJ9XSxbInBhdGgiLHtkOiJNOCAyMWg4In1dXSwkNHQ9W1sicGF0aCIse2Q6Ik0xMSAxM2EzIDMgMCAxIDEgMi44My00SDE0YTIgMiAwIDAgMSAwIDR6In1dLFsicGF0aCIse2Q6Ik0xMiAxN3Y0In1dLFsicGF0aCIse2Q6Ik04IDIxaDgifV0sWyJyZWN0Iix7eDoiMiIseToiMyIsd2lkdGg6IjIwIixoZWlnaHQ6IjE0IixyeDoiMiJ9XV0sQTR0PVtbInBhdGgiLHtkOiJNMTIgMTd2NCJ9XSxbInBhdGgiLHtkOiJtMTQuMzA1IDcuNTMuOTIzLS4zODIifV0sWyJwYXRoIix7ZDoibTE1LjIyOCA0Ljg1Mi0uOTIzLS4zODMifV0sWyJwYXRoIix7ZDoibTE2Ljg1MiAzLjIyOC0uMzgzLS45MjQifV0sWyJwYXRoIix7ZDoibTE2Ljg1MiA4Ljc3Mi0uMzgzLjkyMyJ9XSxbInBhdGgiLHtkOiJtMTkuMTQ4IDMuMjI4LjM4My0uOTI0In1dLFsicGF0aCIse2Q6Im0xOS41MyA5LjY5Ni0uMzgyLS45MjQifV0sWyJwYXRoIix7ZDoibTIwLjc3MiA0Ljg1Mi45MjQtLjM4MyJ9XSxbInBhdGgiLHtkOiJtMjAuNzcyIDcuMTQ4LjkyNC4zODMifV0sWyJwYXRoIix7ZDoiTTIyIDEzdjJhMiAyIDAgMCAxLTIgMkg0YTIgMiAwIDAgMS0yLTJWNWEyIDIgMCAwIDEgMi0yaDcifV0sWyJwYXRoIix7ZDoiTTggMjFoOCJ9XSxbImNpcmNsZSIse2N4OiIxOCIsY3k6IjYiLHI6IjMifV1dLEQ0dD1bWyJwYXRoIix7ZDoiTTEyIDE3djQifV0sWyJwYXRoIix7ZDoiTTIyIDEyLjMwN1YxNWEyIDIgMCAwIDEtMiAySDRhMiAyIDAgMCAxLTItMlY1YTIgMiAwIDAgMSAyLTJoOC42OTMifV0sWyJwYXRoIix7ZDoiTTggMjFoOCJ9XSxbImNpcmNsZSIse2N4OiIxOSIsY3k6IjYiLHI6IjMifV1dLEU0dD1bWyJwYXRoIix7ZDoiTTEyIDEzVjcifV0sWyJwYXRoIix7ZDoibTE1IDEwLTMgMy0zLTMifV0sWyJyZWN0Iix7d2lkdGg6IjIwIixoZWlnaHQ6IjE0Iix4OiIyIix5OiIzIixyeDoiMiJ9XSxbInBhdGgiLHtkOiJNMTIgMTd2NCJ9XSxbInBhdGgiLHtkOiJNOCAyMWg4In1dXSxQNHQ9W1sicGF0aCIse2Q6Ik0xMiAxN3Y0In1dLFsicGF0aCIse2Q6Ik0xNyAxN0g0YTIgMiAwIDAgMS0yLTJWNWEyIDIgMCAwIDEgMS4xODQtMS44MjYifV0sWyJwYXRoIix7ZDoibTIgMiAyMCAyMCJ9XSxbInBhdGgiLHtkOiJNOCAyMWg4In1dLFsicGF0aCIse2Q6Ik04LjY1NiAzSDIwYTIgMiAwIDAgMSAyIDJ2MTBhMiAyIDAgMCAxLS4yOTMgMS4wNDIifV1dLEk0dD1bWyJwYXRoIix7ZDoiTTEwIDEzVjcifV0sWyJwYXRoIix7ZDoiTTE0IDEzVjcifV0sWyJyZWN0Iix7d2lkdGg6IjIwIixoZWlnaHQ6IjE0Iix4OiIyIix5OiIzIixyeDoiMiJ9XSxbInBhdGgiLHtkOiJNMTIgMTd2NCJ9XSxbInBhdGgiLHtkOiJNOCAyMWg4In1dXSxONHQ9W1sicGF0aCIse2Q6Ik0xNS4wMzMgOS40NGEuNjQ3LjY0NyAwIDAgMSAwIDEuMTJsLTQuMDY1IDIuMzUyYS42NDUuNjQ1IDAgMCAxLS45NjgtLjU2VjcuNjQ4YS42NDUuNjQ1IDAgMCAxIC45NjctLjU2eiJ9XSxbInBhdGgiLHtkOiJNMTIgMTd2NCJ9XSxbInBhdGgiLHtkOiJNOCAyMWg4In1dLFsicmVjdCIse3g6IjIiLHk6IjMiLHdpZHRoOiIyMCIsaGVpZ2h0OiIxNCIscng6IjIifV1dLEY0dD1bWyJwYXRoIix7ZDoiTTE4IDhWNmEyIDIgMCAwIDAtMi0ySDRhMiAyIDAgMCAwLTIgMnY3YTIgMiAwIDAgMCAyIDJoOCJ9XSxbInBhdGgiLHtkOiJNMTAgMTl2LTMuOTYgMy4xNSJ9XSxbInBhdGgiLHtkOiJNNyAxOWg1In1dLFsicmVjdCIse3dpZHRoOiI2IixoZWlnaHQ6IjEwIix4OiIxNiIseToiMTIiLHJ4OiIyIn1dXSxPNHQ9W1sicGF0aCIse2Q6Ik01LjUgMjBIOCJ9XSxbInBhdGgiLHtkOiJNMTcgOWguMDEifV0sWyJyZWN0Iix7d2lkdGg6IjEwIixoZWlnaHQ6IjE2Iix4OiIxMiIseToiNCIscng6IjIifV0sWyJwYXRoIix7ZDoiTTggNkg0YTIgMiAwIDAgMC0yIDJ2NmEyIDIgMCAwIDAgMiAyaDQifV0sWyJjaXJjbGUiLHtjeDoiMTciLGN5OiIxNSIscjoiMSJ9XV0sUjR0PVtbInBhdGgiLHtkOiJNMTIgMTd2NCJ9XSxbInBhdGgiLHtkOiJNOCAyMWg4In1dLFsicmVjdCIse3g6IjIiLHk6IjMiLHdpZHRoOiIyMCIsaGVpZ2h0OiIxNCIscng6IjIifV0sWyJyZWN0Iix7eDoiOSIseToiNyIsd2lkdGg6IjYiLGhlaWdodDoiNiIscng6IjEifV1dLEI0dD1bWyJwYXRoIix7ZDoibTkgMTAgMy0zIDMgMyJ9XSxbInBhdGgiLHtkOiJNMTIgMTNWNyJ9XSxbInJlY3QiLHt3aWR0aDoiMjAiLGhlaWdodDoiMTQiLHg6IjIiLHk6IjMiLHJ4OiIyIn1dLFsicGF0aCIse2Q6Ik0xMiAxN3Y0In1dLFsicGF0aCIse2Q6Ik04IDIxaDgifV1dLEg0dD1bWyJwYXRoIix7ZDoibTE0LjUgMTIuNS01LTUifV0sWyJwYXRoIix7ZDoibTkuNSAxMi41IDUtNSJ9XSxbInJlY3QiLHt3aWR0aDoiMjAiLGhlaWdodDoiMTQiLHg6IjIiLHk6IjMiLHJ4OiIyIn1dLFsicGF0aCIse2Q6Ik0xMiAxN3Y0In1dLFsicGF0aCIse2Q6Ik04IDIxaDgifV1dLHE0dD1bWyJyZWN0Iix7d2lkdGg6IjIwIixoZWlnaHQ6IjE0Iix4OiIyIix5OiIzIixyeDoiMiJ9XSxbImxpbmUiLHt4MToiOCIseDI6IjE2Iix5MToiMjEiLHkyOiIyMSJ9XSxbImxpbmUiLHt4MToiMTIiLHgyOiIxMiIseTE6IjE3Iix5MjoiMjEifV1dLFY0dD1bWyJwYXRoIix7ZDoiTTE4IDVoNCJ9XSxbInBhdGgiLHtkOiJNMjAgM3Y0In1dLFsicGF0aCIse2Q6Ik0yMC45ODUgMTIuNDg2YTkgOSAwIDEgMS05LjQ3My05LjQ3MmMuNDA1LS4wMjIuNjE3LjQ2LjQwMi44MDNhNiA2IDAgMCAwIDguMjY4IDguMjY4Yy4zNDQtLjIxNS44MjUtLjAwNC44MDMuNDAxIn1dXSxqNHQ9W1sicGF0aCIse2Q6Ik0yMC45ODUgMTIuNDg2YTkgOSAwIDEgMS05LjQ3My05LjQ3MmMuNDA1LS4wMjIuNjE3LjQ2LjQwMi44MDNhNiA2IDAgMCAwIDguMjY4IDguMjY4Yy4zNDQtLjIxNS44MjUtLjAwNC44MDMuNDAxIn1dXSxVNHQ9W1sicGF0aCIse2Q6Im0xOCAxNC0xLTMifV0sWyJwYXRoIix7ZDoibTMgOSA2IDJhMiAyIDAgMCAxIDItMmgyYTIgMiAwIDAgMSAxLjk5IDEuODEifV0sWyJwYXRoIix7ZDoiTTggMTdoM2ExIDEgMCAwIDAgMS0xIDYgNiAwIDAgMSA2LTYgMSAxIDAgMCAwIDEtMXYtLjc1QTUgNSAwIDAgMCAxNyA1In1dLFsiY2lyY2xlIix7Y3g6IjE5IixjeToiMTciLHI6IjMifV0sWyJjaXJjbGUiLHtjeDoiNSIsY3k6IjE3IixyOiIzIn1dXSxXNHQ9W1sicGF0aCIse2Q6Im04IDMgNCA4IDUtNSA1IDE1SDJMOCAzeiJ9XSxbInBhdGgiLHtkOiJNNC4xNCAxNS4wOGMyLjYyLTEuNTcgNS4yNC0xLjQzIDcuODYuNDIgMi43NCAxLjk0IDUuNDkgMiA4LjIzLjE5In1dXSxHNHQ9W1sicGF0aCIse2Q6Im04IDMgNCA4IDUtNSA1IDE1SDJMOCAzeiJ9XV0sWTR0PVtbInBhdGgiLHtkOiJNMTIgNnYuMzQzIn1dLFsicGF0aCIse2Q6Ik0xOC4yMTggMTguMjE4QTcgNyAwIDAgMSA1IDE1VjlhNyA3IDAgMCAxIC43ODItMy4yMTgifV0sWyJwYXRoIix7ZDoiTTE5IDEzLjM0M1Y5QTcgNyAwIDAgMCA4LjU2IDIuOTAyIn1dLFsicGF0aCIse2Q6Ik0yMiAyMiAyIDIifV1dLFo0dD1bWyJwYXRoIix7ZDoibTE1LjU1IDguNDUgNS4xMzggMi4wODdhLjUuNSAwIDAgMS0uMDYzLjk0N2wtNi4xMjQgMS41OGEyIDIgMCAwIDAtMS40MzggMS40MzVsLTEuNTc5IDYuMTI2YS41LjUgMCAwIDEtLjk0Ny4wNjNMOC40NSAxNS41NTEifV0sWyJwYXRoIix7ZDoiTTIyIDIgMiAyMiJ9XSxbInBhdGgiLHtkOiJtNi44MTYgMTEuNTI4LTIuNzc5LTYuODRhLjQ5NS40OTUgMCAwIDEgLjY1MS0uNjUxbDYuODQgMi43NzkifV1dLFg0dD1bWyJwYXRoIix7ZDoiTTQuMDM3IDQuNjg4YS40OTUuNDk1IDAgMCAxIC42NTEtLjY1MWwxNiA2LjVhLjUuNSAwIDAgMS0uMDYzLjk0N2wtNi4xMjQgMS41OGEyIDIgMCAwIDAtMS40MzggMS40MzVsLTEuNTc5IDYuMTI2YS41LjUgMCAwIDEtLjk0Ny4wNjN6In1dXSxLNHQ9W1sicGF0aCIse2Q6Ik0yLjAzNCAyLjY4MWEuNDk4LjQ5OCAwIDAgMSAuNjQ3LS42NDdsOSAzLjVhLjUuNSAwIDAgMS0uMDMzLjk0NEw4LjIwNCA3LjU0NWExIDEgMCAwIDAtLjY2LjY2bC0xLjA2NiAzLjQ0M2EuNS41IDAgMCAxLS45NDQuMDMzeiJ9XSxbImNpcmNsZSIse2N4OiIxNiIsY3k6IjE2IixyOiI2In1dLFsicGF0aCIse2Q6Im0xMS44IDExLjggOC40IDguNCJ9XV0sUTR0PVtbInBhdGgiLHtkOiJNMTQgNC4xIDEyIDYifV0sWyJwYXRoIix7ZDoibTUuMSA4LTIuOS0uOCJ9XSxbInBhdGgiLHtkOiJtNiAxMi0xLjkgMiJ9XSxbInBhdGgiLHtkOiJNNy4yIDIuMiA4IDUuMSJ9XSxbInBhdGgiLHtkOiJNOS4wMzcgOS42OWEuNDk4LjQ5OCAwIDAgMSAuNjUzLS42NTNsMTEgNC41YS41LjUgMCAwIDEtLjA3NC45NDlsLTQuMzQ5IDEuMDQxYTEgMSAwIDAgMC0uNzQuNzM5bC0xLjA0IDQuMzVhLjUuNSAwIDAgMS0uOTUuMDc0eiJ9XV0sSjR0PVtbInBhdGgiLHtkOiJNMTIuNTg2IDEyLjU4NiAxOSAxOSJ9XSxbInBhdGgiLHtkOiJNMy42ODggMy4wMzdhLjQ5Ny40OTcgMCAwIDAtLjY1MS42NTFsNi41IDE1Ljk5OWEuNTAxLjUwMSAwIDAgMCAuOTQ3LS4wNjJsMS41NjktNi4wODNhMiAyIDAgMCAxIDEuNDQ4LTEuNDc5bDYuMTI0LTEuNTc5YS41LjUgMCAwIDAgLjA2My0uOTQ3eiJ9XV0sZTN0PVtbInJlY3QiLHt4OiI1Iix5OiIyIix3aWR0aDoiMTQiLGhlaWdodDoiMjAiLHJ4OiI3In1dLFsicGF0aCIse2Q6Ik0xMiA2djQifV1dLEx2PVtbInBhdGgiLHtkOiJNNSAzdjE2aDE2In1dLFsicGF0aCIse2Q6Im01IDE5IDYtNiJ9XSxbInBhdGgiLHtkOiJtMiA2IDMtMyAzIDMifV0sWyJwYXRoIix7ZDoibTE4IDE2IDMgMy0zIDMifV1dLHQzdD1bWyJwYXRoIix7ZDoiTTE5IDEzdjZoLTYifV0sWyJwYXRoIix7ZDoiTTUgMTFWNWg2In1dLFsicGF0aCIse2Q6Im01IDUgMTQgMTQifV1dLGEzdD1bWyJwYXRoIix7ZDoiTTExIDE5SDV2LTYifV0sWyJwYXRoIix7ZDoiTTEzIDVoNnY2In1dLFsicGF0aCIse2Q6Ik0xOSA1IDUgMTkifV1dLGkzdD1bWyJwYXRoIix7ZDoiTTExIDE5SDVWMTMifV0sWyJwYXRoIix7ZDoiTTE5IDVMNSAxOSJ9XV0scjN0PVtbInBhdGgiLHtkOiJNMTkgMTNWMTlIMTMifV0sWyJwYXRoIix7ZDoiTTUgNUwxOSAxOSJ9XV0sczN0PVtbInBhdGgiLHtkOiJNOCAxOEwxMiAyMkwxNiAxOCJ9XSxbInBhdGgiLHtkOiJNMTIgMlYyMiJ9XV0sbjN0PVtbInBhdGgiLHtkOiJtMTggOCA0IDQtNCA0In1dLFsicGF0aCIse2Q6Ik0yIDEyaDIwIn1dLFsicGF0aCIse2Q6Im02IDgtNCA0IDQgNCJ9XV0sbzN0PVtbInBhdGgiLHtkOiJNNiA4TDIgMTJMNiAxNiJ9XSxbInBhdGgiLHtkOiJNMiAxMkgyMiJ9XV0sbDN0PVtbInBhdGgiLHtkOiJNMTggOEwyMiAxMkwxOCAxNiJ9XSxbInBhdGgiLHtkOiJNMiAxMkgyMiJ9XV0sYzN0PVtbInBhdGgiLHtkOiJNNSAxMVY1SDExIn1dLFsicGF0aCIse2Q6Ik01IDVMMTkgMTkifV1dLGQzdD1bWyJwYXRoIix7ZDoiTTEzIDVIMTlWMTEifV0sWyJwYXRoIix7ZDoiTTE5IDVMNSAxOSJ9XV0saDN0PVtbInBhdGgiLHtkOiJNOCA2TDEyIDJMMTYgNiJ9XSxbInBhdGgiLHtkOiJNMTIgMlYyMiJ9XV0scDN0PVtbInBhdGgiLHtkOiJNMTIgMnYyMCJ9XSxbInBhdGgiLHtkOiJtOCAxOCA0IDQgNC00In1dLFsicGF0aCIse2Q6Im04IDYgNC00IDQgNCJ9XV0sdTN0PVtbInBhdGgiLHtkOiJNMTIgMnYyMCJ9XSxbInBhdGgiLHtkOiJtMTUgMTktMyAzLTMtMyJ9XSxbInBhdGgiLHtkOiJtMTkgOSAzIDMtMyAzIn1dLFsicGF0aCIse2Q6Ik0yIDEyaDIwIn1dLFsicGF0aCIse2Q6Im01IDktMyAzIDMgMyJ9XSxbInBhdGgiLHtkOiJtOSA1IDMtMyAzIDMifV1dLGYzdD1bWyJjaXJjbGUiLHtjeDoiOCIsY3k6IjE4IixyOiI0In1dLFsicGF0aCIse2Q6Ik0xMiAxOFYybDcgNCJ9XV0sbTN0PVtbImNpcmNsZSIse2N4OiIxMiIsY3k6IjE4IixyOiI0In1dLFsicGF0aCIse2Q6Ik0xNiAxOFYyIn1dXSxnM3Q9W1sicGF0aCIse2Q6Ik05IDE4VjVsMTItMnYxMyJ9XSxbInBhdGgiLHtkOiJtOSA5IDEyLTIifV0sWyJjaXJjbGUiLHtjeDoiNiIsY3k6IjE4IixyOiIzIn1dLFsiY2lyY2xlIix7Y3g6IjE4IixjeToiMTYiLHI6IjMifV1dLGIzdD1bWyJwYXRoIix7ZDoiTTkgMThWNWwxMi0ydjEzIn1dLFsiY2lyY2xlIix7Y3g6IjYiLGN5OiIxOCIscjoiMyJ9XSxbImNpcmNsZSIse2N4OiIxOCIsY3k6IjE2IixyOiIzIn1dXSx2M3Q9W1sicGF0aCIse2Q6Ik05LjMxIDkuMzEgNSAyMWw3LTQgNyA0LTEuMTctMy4xNyJ9XSxbInBhdGgiLHtkOiJNMTQuNTMgOC44OCAxMiAybC0xLjE3IDMuMTcifV0sWyJsaW5lIix7eDE6IjIiLHgyOiIyMiIseTE6IjIiLHkyOiIyMiJ9XV0seTN0PVtbInBvbHlnb24iLHtwb2ludHM6IjEyIDIgMTkgMjEgMTIgMTcgNSAyMSAxMiAyIn1dXSx4M3Q9W1sicG9seWdvbiIse3BvaW50czoiMyAxMSAyMiAyIDEzIDIxIDExIDEzIDMgMTEifV1dLHczdD1bWyJwYXRoIix7ZDoiTTguNDMgOC40MyAzIDExbDggMiAyIDggMi41Ny01LjQzIn1dLFsicGF0aCIse2Q6Ik0xNy4zOSAxMS43MyAyMiAybC05LjczIDQuNjEifV0sWyJsaW5lIix7eDE6IjIiLHgyOiIyMiIseTE6IjIiLHkyOiIyMiJ9XV0sTTN0PVtbInJlY3QiLHt4OiIxNiIseToiMTYiLHdpZHRoOiI2IixoZWlnaHQ6IjYiLHJ4OiIxIn1dLFsicmVjdCIse3g6IjIiLHk6IjE2Iix3aWR0aDoiNiIsaGVpZ2h0OiI2IixyeDoiMSJ9XSxbInJlY3QiLHt4OiI5Iix5OiIyIix3aWR0aDoiNiIsaGVpZ2h0OiI2IixyeDoiMSJ9XSxbInBhdGgiLHtkOiJNNSAxNnYtM2ExIDEgMCAwIDEgMS0xaDEyYTEgMSAwIDAgMSAxIDF2MyJ9XSxbInBhdGgiLHtkOiJNMTIgMTJWOCJ9XV0sejN0PVtbInBhdGgiLHtkOiJNMTUgMThoLTUifV0sWyJwYXRoIix7ZDoiTTE4IDE0aC04In1dLFsicGF0aCIse2Q6Ik00IDIyaDE2YTIgMiAwIDAgMCAyLTJWNGEyIDIgMCAwIDAtMi0ySDhhMiAyIDAgMCAwLTIgMnYxNmEyIDIgMCAwIDEtNCAwdi05YTIgMiAwIDAgMSAyLTJoMiJ9XSxbInJlY3QiLHt3aWR0aDoiOCIsaGVpZ2h0OiI0Iix4OiIxMCIseToiNiIscng6IjEifV1dLGszdD1bWyJwYXRoIix7ZDoiTTYgOC4zMmE3LjQzIDcuNDMgMCAwIDEgMCA3LjM2In1dLFsicGF0aCIse2Q6Ik05LjQ2IDYuMjFhMTEuNzYgMTEuNzYgMCAwIDEgMCAxMS41OCJ9XSxbInBhdGgiLHtkOiJNMTIuOTEgNC4xYTE1LjkxIDE1LjkxIDAgMCAxIC4wMSAxNS44In1dLFsicGF0aCIse2Q6Ik0xNi4zNyAyYTIwLjE2IDIwLjE2IDAgMCAxIDAgMjAifV1dLFMzdD1bWyJwYXRoIix7ZDoiTTEyIDJ2MTAifV0sWyJwYXRoIix7ZDoibTguNSA0IDcgNCJ9XSxbInBhdGgiLHtkOiJtOC41IDggNy00In1dLFsiY2lyY2xlIix7Y3g6IjEyIixjeToiMTciLHI6IjUifV1dLEMzdD1bWyJwYXRoIix7ZDoiTTEzLjQgMkg2YTIgMiAwIDAgMC0yIDJ2MTZhMiAyIDAgMCAwIDIgMmgxMmEyIDIgMCAwIDAgMi0ydi03LjQifV0sWyJwYXRoIix7ZDoiTTIgNmg0In1dLFsicGF0aCIse2Q6Ik0yIDEwaDQifV0sWyJwYXRoIix7ZDoiTTIgMTRoNCJ9XSxbInBhdGgiLHtkOiJNMiAxOGg0In1dLFsicGF0aCIse2Q6Ik0yMS4zNzggNS42MjZhMSAxIDAgMSAwLTMuMDA0LTMuMDA0bC01LjAxIDUuMDEyYTIgMiAwIDAgMC0uNTA2Ljg1NGwtLjgzNyAyLjg3YS41LjUgMCAwIDAgLjYyLjYybDIuODctLjgzN2EyIDIgMCAwIDAgLjg1NC0uNTA2eiJ9XV0sXzN0PVtbInBhdGgiLHtkOiJNMiA2aDQifV0sWyJwYXRoIix7ZDoiTTIgMTBoNCJ9XSxbInBhdGgiLHtkOiJNMiAxNGg0In1dLFsicGF0aCIse2Q6Ik0yIDE4aDQifV0sWyJyZWN0Iix7d2lkdGg6IjE2IixoZWlnaHQ6IjIwIix4OiI0Iix5OiIyIixyeDoiMiJ9XSxbInBhdGgiLHtkOiJNMTUgMnYyMCJ9XSxbInBhdGgiLHtkOiJNMTUgN2g1In1dLFsicGF0aCIse2Q6Ik0xNSAxMmg1In1dLFsicGF0aCIse2Q6Ik0xNSAxN2g1In1dXSxUM3Q9W1sicGF0aCIse2Q6Ik0yIDZoNCJ9XSxbInBhdGgiLHtkOiJNMiAxMGg0In1dLFsicGF0aCIse2Q6Ik0yIDE0aDQifV0sWyJwYXRoIix7ZDoiTTIgMThoNCJ9XSxbInJlY3QiLHt3aWR0aDoiMTYiLGhlaWdodDoiMjAiLHg6IjQiLHk6IjIiLHJ4OiIyIn1dLFsicGF0aCIse2Q6Ik05LjUgOGg1In1dLFsicGF0aCIse2Q6Ik05LjUgMTJIMTYifV0sWyJwYXRoIix7ZDoiTTkuNSAxNkgxNCJ9XV0sTDN0PVtbInBhdGgiLHtkOiJNMiA2aDQifV0sWyJwYXRoIix7ZDoiTTIgMTBoNCJ9XSxbInBhdGgiLHtkOiJNMiAxNGg0In1dLFsicGF0aCIse2Q6Ik0yIDE4aDQifV0sWyJyZWN0Iix7d2lkdGg6IjE2IixoZWlnaHQ6IjIwIix4OiI0Iix5OiIyIixyeDoiMiJ9XSxbInBhdGgiLHtkOiJNMTYgMnYyMCJ9XV0sJDN0PVtbInBhdGgiLHtkOiJNOCAydjQifV0sWyJwYXRoIix7ZDoiTTEyIDJ2NCJ9XSxbInBhdGgiLHtkOiJNMTYgMnY0In1dLFsicGF0aCIse2Q6Ik0xNiA0aDJhMiAyIDAgMCAxIDIgMnYyIn1dLFsicGF0aCIse2Q6Ik0yMCAxMnYyIn1dLFsicGF0aCIse2Q6Ik0yMCAxOHYyYTIgMiAwIDAgMS0yIDJoLTEifV0sWyJwYXRoIix7ZDoiTTEzIDIyaC0yIn1dLFsicGF0aCIse2Q6Ik03IDIySDZhMiAyIDAgMCAxLTItMnYtMiJ9XSxbInBhdGgiLHtkOiJNNCAxNHYtMiJ9XSxbInBhdGgiLHtkOiJNNCA4VjZhMiAyIDAgMCAxIDItMmgyIn1dLFsicGF0aCIse2Q6Ik04IDEwaDYifV0sWyJwYXRoIix7ZDoiTTggMTRoOCJ9XSxbInBhdGgiLHtkOiJNOCAxOGg1In1dXSxBM3Q9W1sicGF0aCIse2Q6Ik04IDJ2NCJ9XSxbInBhdGgiLHtkOiJNMTIgMnY0In1dLFsicGF0aCIse2Q6Ik0xNiAydjQifV0sWyJyZWN0Iix7d2lkdGg6IjE2IixoZWlnaHQ6IjE4Iix4OiI0Iix5OiI0IixyeDoiMiJ9XSxbInBhdGgiLHtkOiJNOCAxMGg2In1dLFsicGF0aCIse2Q6Ik04IDE0aDgifV0sWyJwYXRoIix7ZDoiTTggMThoNSJ9XV0sRDN0PVtbInBhdGgiLHtkOiJNMTIgNFYyIn1dLFsicGF0aCIse2Q6Ik01IDEwdjRhNy4wMDQgNy4wMDQgMCAwIDAgNS4yNzcgNi43ODdjLjQxMi4xMDQuODAyLjI5MiAxLjEwMi41OTJMMTIgMjJsLjYyMS0uNjIxYy4zLS4zLjY5LS40ODggMS4xMDItLjU5MkE3LjAwMyA3LjAwMyAwIDAgMCAxOSAxNHYtNCJ9XSxbInBhdGgiLHtkOiJNMTIgNEM4IDQgNC41IDYgNCA4Yy0uMjQzLjk3LS45MTkgMS45NTItMiAzIDEuMzEtLjA4MiAxLjk3Mi0uMjkgMy0xIC41NC45Mi45ODIgMS4zNTYgMiAyIDEuNDUyLS42NDcgMS45NTQtMS4wOTggMi41LTIgLjU5NS45OTUgMS4xNTEgMS40MjcgMi41IDIgMS4zMS0uNjIxIDEuODYyLTEuMDU4IDIuNS0yIC42MjkuOTc3IDEuMTYyIDEuNDIzIDIuNSAyIDEuMjA5LS41NDggMS42OC0uOTY3IDItMiAxLjAzMi45MTYgMS42ODMgMS4xNTcgMyAxLTEuMjk3LTEuMDM2LTEuNzU4LTIuMDMtMi0zLS41LTItNC00LTgtNFoifV1dLEUzdD1bWyJwYXRoIix7ZDoiTTEyIDRWMiJ9XSxbInBhdGgiLHtkOiJNNSAxMHY0YTcuMDA0IDcuMDA0IDAgMCAwIDUuMjc3IDYuNzg3Yy40MTIuMTA0LjgwMi4yOTIgMS4xMDIuNTkyTDEyIDIybC42MjEtLjYyMWMuMy0uMy42OS0uNDg4IDEuMTAyLS41OTJhNy4wMSA3LjAxIDAgMCAwIDQuMTI1LTIuOTM5In1dLFsicGF0aCIse2Q6Ik0xOSAxMHYzLjM0MyJ9XSxbInBhdGgiLHtkOiJNMTIgMTJjLTEuMzQ5LS41NzMtMS45MDUtMS4wMDUtMi41LTItLjU0Ni45MDItMS4wNDggMS4zNTMtMi41IDItMS4wMTgtLjY0NC0xLjQ2LTEuMDgtMi0yLTEuMDI4LjcxLTEuNjkuOTE4LTMgMSAxLjA4MS0xLjA0OCAxLjc1Ny0yLjAzIDItMyAuMTk0LS43NzYuODQtMS41NTEgMS43OS0yLjIxbTExLjY1NCA1Ljk5N2MuODg3LS40NTcgMS4yOC0uODkxIDEuNTU2LTEuNzg3IDEuMDMyLjkxNiAxLjY4MyAxLjE1NyAzIDEtMS4yOTctMS4wMzYtMS43NTgtMi4wMy0yLTMtLjUtMi00LTQtOC00LS43NCAwLTEuNDYxLjA2OC0yLjE1LjE5MiJ9XSxbImxpbmUiLHt4MToiMiIseDI6IjIyIix5MToiMiIseTI6IjIyIn1dXSwkdj1bWyJwYXRoIix7ZDoiTTEyIDE2aC4wMSJ9XSxbInBhdGgiLHtkOiJNMTIgOHY0In1dLFsicGF0aCIse2Q6Ik0xNS4zMTIgMmEyIDIgMCAwIDEgMS40MTQuNTg2bDQuNjg4IDQuNjg4QTIgMiAwIDAgMSAyMiA4LjY4OHY2LjYyNGEyIDIgMCAwIDEtLjU4NiAxLjQxNGwtNC42ODggNC42ODhhMiAyIDAgMCAxLTEuNDE0LjU4Nkg4LjY4OGEyIDIgMCAwIDEtMS40MTQtLjU4NmwtNC42ODgtNC42ODhBMiAyIDAgMCAxIDIgMTUuMzEyVjguNjg4YTIgMiAwIDAgMSAuNTg2LTEuNDE0bDQuNjg4LTQuNjg4QTIgMiAwIDAgMSA4LjY4OCAyeiJ9XV0sUDN0PVtbInBhdGgiLHtkOiJNMi41ODYgMTYuNzI2QTIgMiAwIDAgMSAyIDE1LjMxMlY4LjY4OGEyIDIgMCAwIDEgLjU4Ni0xLjQxNGw0LjY4OC00LjY4OEEyIDIgMCAwIDEgOC42ODggMmg2LjYyNGEyIDIgMCAwIDEgMS40MTQuNTg2bDQuNjg4IDQuNjg4QTIgMiAwIDAgMSAyMiA4LjY4OHY2LjYyNGEyIDIgMCAwIDEtLjU4NiAxLjQxNGwtNC42ODggNC42ODhhMiAyIDAgMCAxLTEuNDE0LjU4Nkg4LjY4OGEyIDIgMCAwIDEtMS40MTQtLjU4NnoifV0sWyJwYXRoIix7ZDoiTTggMTJoOCJ9XV0sQXY9W1sicGF0aCIse2Q6Ik0xMCAxNVY5In1dLFsicGF0aCIse2Q6Ik0xNCAxNVY5In1dLFsicGF0aCIse2Q6Ik0yLjU4NiAxNi43MjZBMiAyIDAgMCAxIDIgMTUuMzEyVjguNjg4YTIgMiAwIDAgMSAuNTg2LTEuNDE0bDQuNjg4LTQuNjg4QTIgMiAwIDAgMSA4LjY4OCAyaDYuNjI0YTIgMiAwIDAgMSAxLjQxNC41ODZsNC42ODggNC42ODhBMiAyIDAgMCAxIDIyIDguNjg4djYuNjI0YTIgMiAwIDAgMS0uNTg2IDEuNDE0bC00LjY4OCA0LjY4OGEyIDIgMCAwIDEtMS40MTQuNTg2SDguNjg4YTIgMiAwIDAgMS0xLjQxNC0uNTg2eiJ9XV0sRHY9W1sicGF0aCIse2Q6Im0xNSA5LTYgNiJ9XSxbInBhdGgiLHtkOiJNMi41ODYgMTYuNzI2QTIgMiAwIDAgMSAyIDE1LjMxMlY4LjY4OGEyIDIgMCAwIDEgLjU4Ni0xLjQxNGw0LjY4OC00LjY4OEEyIDIgMCAwIDEgOC42ODggMmg2LjYyNGEyIDIgMCAwIDEgMS40MTQuNTg2bDQuNjg4IDQuNjg4QTIgMiAwIDAgMSAyMiA4LjY4OHY2LjYyNGEyIDIgMCAwIDEtLjU4NiAxLjQxNGwtNC42ODggNC42ODhhMiAyIDAgMCAxLTEuNDE0LjU4Nkg4LjY4OGEyIDIgMCAwIDEtMS40MTQtLjU4NnoifV0sWyJwYXRoIix7ZDoibTkgOSA2IDYifV1dLEkzdD1bWyJwYXRoIix7ZDoiTTIuNTg2IDE2LjcyNkEyIDIgMCAwIDEgMiAxNS4zMTJWOC42ODhhMiAyIDAgMCAxIC41ODYtMS40MTRsNC42ODgtNC42ODhBMiAyIDAgMCAxIDguNjg4IDJoNi42MjRhMiAyIDAgMCAxIDEuNDE0LjU4Nmw0LjY4OCA0LjY4OEEyIDIgMCAwIDEgMjIgOC42ODh2Ni42MjRhMiAyIDAgMCAxLS41ODYgMS40MTRsLTQuNjg4IDQuNjg4YTIgMiAwIDAgMS0xLjQxNC41ODZIOC42ODhhMiAyIDAgMCAxLTEuNDE0LS41ODZ6In1dXSxOM3Q9W1sicGF0aCIse2Q6Ik0zIDIwaDQuNWEuNS41IDAgMCAwIC41LS41di0uMjgyYS41Mi41MiAwIDAgMC0uMjQ3LS40MzcgOCA4IDAgMSAxIDguNDk0LS4wMDEuNTIuNTIgMCAwIDAtLjI0Ny40Mzh2LjI4MmEuNS41IDAgMCAwIC41LjVIMjEifV1dLEYzdD1bWyJwYXRoIix7ZDoiTTIwLjM0MSA2LjQ4NEExMCAxMCAwIDAgMSAxMC4yNjYgMjEuODUifV0sWyJwYXRoIix7ZDoiTTMuNjU5IDE3LjUxNkExMCAxMCAwIDAgMSAxMy43NCAyLjE1MiJ9XSxbImNpcmNsZSIse2N4OiIxMiIsY3k6IjEyIixyOiIzIn1dLFsiY2lyY2xlIix7Y3g6IjE5IixjeToiNSIscjoiMiJ9XSxbImNpcmNsZSIse2N4OiI1IixjeToiMTkiLHI6IjIifV1dLE8zdD1bWyJwYXRoIix7ZDoiTTMgM2g2bDYgMThoNiJ9XSxbInBhdGgiLHtkOiJNMTQgM2g3In1dXSxSM3Q9W1sicGF0aCIse2Q6Ik0xMiAxMlY0YTEgMSAwIDAgMSAxLTFoNi4yOTdhMSAxIDAgMCAxIC42NTEgMS43NTlsLTQuNjk2IDQuMDI1In1dLFsicGF0aCIse2Q6Im0xMiAyMS03LjQxNC03LjQxNEEyIDIgMCAwIDEgNCAxMi4xNzJWNi40MTVhMS4wMDIgMS4wMDIgMCAwIDEgMS43MDctLjcwN0wyMCAyMC4wMDkifV0sWyJwYXRoIix7ZDoibTEyLjIxNCAzLjM4MSA4LjQxNCAxNC45NjZhMSAxIDAgMCAxLS4xNjcgMS4xOTlsLTEuMTY4IDEuMTYzYTEgMSAwIDAgMS0uNzA2LjI5MUg2LjM1MWExIDEgMCAwIDEtLjYyNS0uMjE5TDMuMjUgMTguOGExIDEgMCAwIDEgLjYzMS0xLjc4MWw0LjE2NS4wMjcifV1dLEIzdD1bWyJwYXRoIix7ZDoiTTEyIDN2NiJ9XSxbInBhdGgiLHtkOiJNMTYuNzYgM2EyIDIgMCAwIDEgMS44IDEuMWwyLjIzIDQuNDc5YTIgMiAwIDAgMSAuMjEuODkxVjE5YTIgMiAwIDAgMS0yIDJINWEyIDIgMCAwIDEtMi0yVjkuNDcyYTIgMiAwIDAgMSAuMjExLS44OTRMNS40NSA0LjFBMiAyIDAgMCAxIDcuMjQgM3oifV0sWyJwYXRoIix7ZDoiTTMuMDU0IDkuMDEzaDE3Ljg5MyJ9XV0sSDN0PVtbInBhdGgiLHtkOiJtMTYgMTYgMiAyIDQtNCJ9XSxbInBhdGgiLHtkOiJNMjEgMTBWOGEyIDIgMCAwIDAtMS0xLjczbC03LTRhMiAyIDAgMCAwLTIgMGwtNyA0QTIgMiAwIDAgMCAzIDh2OGEyIDIgMCAwIDAgMSAxLjczbDcgNGEyIDIgMCAwIDAgMiAwbDItMS4xNCJ9XSxbInBhdGgiLHtkOiJtNy41IDQuMjcgOSA1LjE1In1dLFsicG9seWxpbmUiLHtwb2ludHM6IjMuMjkgNyAxMiAxMiAyMC43MSA3In1dLFsibGluZSIse3gxOiIxMiIseDI6IjEyIix5MToiMjIiLHkyOiIxMiJ9XV0scTN0PVtbInBhdGgiLHtkOiJNMTYgMTZoNiJ9XSxbInBhdGgiLHtkOiJNMjEgMTBWOGEyIDIgMCAwIDAtMS0xLjczbC03LTRhMiAyIDAgMCAwLTIgMGwtNyA0QTIgMiAwIDAgMCAzIDh2OGEyIDIgMCAwIDAgMSAxLjczbDcgNGEyIDIgMCAwIDAgMiAwbDItMS4xNCJ9XSxbInBhdGgiLHtkOiJtNy41IDQuMjcgOSA1LjE1In1dLFsicG9seWxpbmUiLHtwb2ludHM6IjMuMjkgNyAxMiAxMiAyMC43MSA3In1dLFsibGluZSIse3gxOiIxMiIseDI6IjEyIix5MToiMjIiLHkyOiIxMiJ9XV0sVjN0PVtbInBhdGgiLHtkOiJNMTIgMjJ2LTkifV0sWyJwYXRoIix7ZDoiTTE1LjE3IDIuMjFhMS42NyAxLjY3IDAgMCAxIDEuNjMgMEwyMSA0LjU3YTEuOTMgMS45MyAwIDAgMSAwIDMuMzZMOC44MiAxNC43OWExLjY1NSAxLjY1NSAwIDAgMS0xLjY0IDBMMyAxMi40M2ExLjkzIDEuOTMgMCAwIDEgMC0zLjM2eiJ9XSxbInBhdGgiLHtkOiJNMjAgMTN2My44N2EyLjA2IDIuMDYgMCAwIDEtMS4xMSAxLjgzbC02IDMuMDhhMS45MyAxLjkzIDAgMCAxLTEuNzggMGwtNi0zLjA4QTIuMDYgMi4wNiAwIDAgMSA0IDE2Ljg3VjEzIn1dLFsicGF0aCIse2Q6Ik0yMSAxMi40M2ExLjkzIDEuOTMgMCAwIDAgMC0zLjM2TDguODMgMi4yYTEuNjQgMS42NCAwIDAgMC0xLjYzIDBMMyA0LjU3YTEuOTMgMS45MyAwIDAgMCAwIDMuMzZsMTIuMTggNi44NmExLjYzNiAxLjYzNiAwIDAgMCAxLjYzIDB6In1dXSxqM3Q9W1sicGF0aCIse2Q6Ik0xNiAxNmg2In1dLFsicGF0aCIse2Q6Ik0xOSAxM3Y2In1dLFsicGF0aCIse2Q6Ik0yMSAxMFY4YTIgMiAwIDAgMC0xLTEuNzNsLTctNGEyIDIgMCAwIDAtMiAwbC03IDRBMiAyIDAgMCAwIDMgOHY4YTIgMiAwIDAgMCAxIDEuNzNsNyA0YTIgMiAwIDAgMCAyIDBsMi0xLjE0In1dLFsicGF0aCIse2Q6Im03LjUgNC4yNyA5IDUuMTUifV0sWyJwb2x5bGluZSIse3BvaW50czoiMy4yOSA3IDEyIDEyIDIwLjcxIDcifV0sWyJsaW5lIix7eDE6IjEyIix4MjoiMTIiLHkxOiIyMiIseTI6IjEyIn1dXSxVM3Q9W1sicGF0aCIse2Q6Ik0yMSAxMFY4YTIgMiAwIDAgMC0xLTEuNzNsLTctNGEyIDIgMCAwIDAtMiAwbC03IDRBMiAyIDAgMCAwIDMgOHY4YTIgMiAwIDAgMCAxIDEuNzNsNyA0YTIgMiAwIDAgMCAyIDBsMi0xLjE0In1dLFsicGF0aCIse2Q6Im03LjUgNC4yNyA5IDUuMTUifV0sWyJwb2x5bGluZSIse3BvaW50czoiMy4yOSA3IDEyIDEyIDIwLjcxIDcifV0sWyJsaW5lIix7eDE6IjEyIix4MjoiMTIiLHkxOiIyMiIseTI6IjEyIn1dLFsiY2lyY2xlIix7Y3g6IjE4LjUiLGN5OiIxNS41IixyOiIyLjUifV0sWyJwYXRoIix7ZDoiTTIwLjI3IDE3LjI3IDIyIDE5In1dXSxXM3Q9W1sicGF0aCIse2Q6Ik0yMSAxMFY4YTIgMiAwIDAgMC0xLTEuNzNsLTctNGEyIDIgMCAwIDAtMiAwbC03IDRBMiAyIDAgMCAwIDMgOHY4YTIgMiAwIDAgMCAxIDEuNzNsNyA0YTIgMiAwIDAgMCAyIDBsMi0xLjE0In1dLFsicGF0aCIse2Q6Im03LjUgNC4yNyA5IDUuMTUifV0sWyJwb2x5bGluZSIse3BvaW50czoiMy4yOSA3IDEyIDEyIDIwLjcxIDcifV0sWyJsaW5lIix7eDE6IjEyIix4MjoiMTIiLHkxOiIyMiIseTI6IjEyIn1dLFsicGF0aCIse2Q6Im0xNyAxMyA1IDVtLTUgMCA1LTUifV1dLEczdD1bWyJwYXRoIix7ZDoiTTExIDIxLjczYTIgMiAwIDAgMCAyIDBsNy00QTIgMiAwIDAgMCAyMSAxNlY4YTIgMiAwIDAgMC0xLTEuNzNsLTctNGEyIDIgMCAwIDAtMiAwbC03IDRBMiAyIDAgMCAwIDMgOHY4YTIgMiAwIDAgMCAxIDEuNzN6In1dLFsicGF0aCIse2Q6Ik0xMiAyMlYxMiJ9XSxbInBvbHlsaW5lIix7cG9pbnRzOiIzLjI5IDcgMTIgMTIgMjAuNzEgNyJ9XSxbInBhdGgiLHtkOiJtNy41IDQuMjcgOSA1LjE1In1dXSxZM3Q9W1sicmVjdCIse3dpZHRoOiIxNiIsaGVpZ2h0OiI2Iix4OiIyIix5OiIyIixyeDoiMiJ9XSxbInBhdGgiLHtkOiJNMTAgMTZ2LTJhMiAyIDAgMCAxIDItMmg4YTIgMiAwIDAgMCAyLTJWN2EyIDIgMCAwIDAtMi0yaC0yIn1dLFsicmVjdCIse3dpZHRoOiI0IixoZWlnaHQ6IjYiLHg6IjgiLHk6IjE2IixyeDoiMSJ9XV0sWjN0PVtbInBhdGgiLHtkOiJNMTEgNyA2IDIifV0sWyJwYXRoIix7ZDoiTTE4Ljk5MiAxMkgyLjA0MSJ9XSxbInBhdGgiLHtkOiJNMjEuMTQ1IDE4LjM4QTMuMzQgMy4zNCAwIDAgMSAyMCAxNi41YTMuMyAzLjMgMCAwIDEtMS4xNDUgMS44OGMtLjU3NS40Ni0uODU1IDEuMDItLjg1NSAxLjU5NUEyIDIgMCAwIDAgMjAgMjJhMiAyIDAgMCAwIDItMi4wMjVjMC0uNTgtLjI4NS0xLjEzLS44NTUtMS41OTUifV0sWyJwYXRoIix7ZDoibTguNSA0LjUgMi4xNDgtMi4xNDhhMS4yMDUgMS4yMDUgMCAwIDEgMS43MDQgMGw3LjI5NiA3LjI5NmExLjIwNSAxLjIwNSAwIDAgMSAwIDEuNzA0bC03LjU5MiA3LjU5MmEzLjYxNSAzLjYxNSAwIDAgMS01LjExMiAwbC0zLjg4OC0zLjg4OGEzLjYxNSAzLjYxNSAwIDAgMSAwLTUuMTEyTDUuNjcgNy4zMyJ9XV0sRXY9W1sicGF0aCIse2Q6Ik0xMCAydjIifV0sWyJwYXRoIix7ZDoiTTE0IDJ2NCJ9XSxbInBhdGgiLHtkOiJNMTcgMmExIDEgMCAwIDEgMSAxdjlINlYzYTEgMSAwIDAgMSAxLTF6In1dLFsicGF0aCIse2Q6Ik02IDEyYTEgMSAwIDAgMC0xIDF2MWEyIDIgMCAwIDAgMiAyaDJhMSAxIDAgMCAxIDEgMXYyLjlhMiAyIDAgMSAwIDQgMFYxN2ExIDEgMCAwIDEgMS0xaDJhMiAyIDAgMCAwIDItMnYtMWExIDEgMCAwIDAtMS0xIn1dXSxYM3Q9W1sicGF0aCIse2Q6Im0xNC42MjIgMTcuODk3LTEwLjY4LTIuOTEzIn1dLFsicGF0aCIse2Q6Ik0xOC4zNzYgMi42MjJhMSAxIDAgMSAxIDMuMDAyIDMuMDAyTDE3LjM2IDkuNjQzYS41LjUgMCAwIDAgMCAuNzA3bC45NDQuOTQ0YTIuNDEgMi40MSAwIDAgMSAwIDMuNDA4bC0uOTQ0Ljk0NGEuNS41IDAgMCAxLS43MDcgMEw4LjM1NCA3LjM0OGEuNS41IDAgMCAxIDAtLjcwN2wuOTQ0LS45NDRhMi40MSAyLjQxIDAgMCAxIDMuNDA4IDBsLjk0NC45NDRhLjUuNSAwIDAgMCAuNzA3IDB6In1dLFsicGF0aCIse2Q6Ik05IDhjLTEuODA0IDIuNzEtMy45NyAzLjQ2LTYuNTgzIDMuOTQ4YS41MDcuNTA3IDAgMCAwLS4zMDIuODE5bDcuMzIgOC44ODNhMSAxIDAgMCAwIDEuMTg1LjIwNEMxMi43MzUgMjAuNDA1IDE2IDE2Ljc5MiAxNiAxNSJ9XV0sSzN0PVtbInBhdGgiLHtkOiJNMTIgMjJhMSAxIDAgMCAxIDAtMjAgMTAgOSAwIDAgMSAxMCA5IDUgNSAwIDAgMS01IDVoLTIuMjVhMS43NSAxLjc1IDAgMCAwLTEuNCAyLjhsLjMuNGExLjc1IDEuNzUgMCAwIDEtMS40IDIuOHoifV0sWyJjaXJjbGUiLHtjeDoiMTMuNSIsY3k6IjYuNSIscjoiLjUiLGZpbGw6ImN1cnJlbnRDb2xvciJ9XSxbImNpcmNsZSIse2N4OiIxNy41IixjeToiMTAuNSIscjoiLjUiLGZpbGw6ImN1cnJlbnRDb2xvciJ9XSxbImNpcmNsZSIse2N4OiI2LjUiLGN5OiIxMi41IixyOiIuNSIsZmlsbDoiY3VycmVudENvbG9yIn1dLFsiY2lyY2xlIix7Y3g6IjguNSIsY3k6IjcuNSIscjoiLjUiLGZpbGw6ImN1cnJlbnRDb2xvciJ9XV0sUTN0PVtbInBhdGgiLHtkOiJNMTEuMjUgMTcuMjVoMS41TDEyIDE4eiJ9XSxbInBhdGgiLHtkOiJtMTUgMTIgMiAyIn1dLFsicGF0aCIse2Q6Ik0xOCA2LjVhLjUuNSAwIDAgMC0uNS0uNSJ9XSxbInBhdGgiLHtkOiJNMjAuNjkgOS42N2E0LjUgNC41IDAgMSAwLTcuMDQtNS41IDguMzUgOC4zNSAwIDAgMC0zLjMgMCA0LjUgNC41IDAgMSAwLTcuMDQgNS41QzIuNDkgMTEuMiAyIDEyLjg4IDIgMTQuNSAyIDE5LjQ3IDYuNDggMjIgMTIgMjJzMTAtMi41MyAxMC03LjVjMC0xLjYyLS40OC0zLjMtMS4zLTQuODMifV0sWyJwYXRoIix7ZDoiTTYgNi41YS40OTUuNDk1IDAgMCAxIC41LS41In1dLFsicGF0aCIse2Q6Im05IDEyLTIgMiJ9XV0sSjN0PVtbInJlY3QiLHt3aWR0aDoiMTgiLGhlaWdodDoiMTgiLHg6IjMiLHk6IjMiLHJ4OiIyIn1dLFsicGF0aCIse2Q6Ik0zIDE1aDE4In1dLFsicGF0aCIse2Q6Im0xNSA4LTMgMy0zLTMifV1dLFB2PVtbInJlY3QiLHt3aWR0aDoiMTgiLGhlaWdodDoiMTgiLHg6IjMiLHk6IjMiLHJ4OiIyIn1dLFsicGF0aCIse2Q6Ik0xNCAxNWgxIn1dLFsicGF0aCIse2Q6Ik0xOSAxNWgyIn1dLFsicGF0aCIse2Q6Ik0zIDE1aDIifV0sWyJwYXRoIix7ZDoiTTkgMTVoMSJ9XV0sZWx0PVtbInJlY3QiLHt3aWR0aDoiMTgiLGhlaWdodDoiMTgiLHg6IjMiLHk6IjMiLHJ4OiIyIn1dLFsicGF0aCIse2Q6Ik0zIDE1aDE4In1dLFsicGF0aCIse2Q6Im05IDEwIDMtMyAzIDMifV1dLHRsdD1bWyJyZWN0Iix7d2lkdGg6IjE4IixoZWlnaHQ6IjE4Iix4OiIzIix5OiIzIixyeDoiMiJ9XSxbInBhdGgiLHtkOiJNMyAxNWgxOCJ9XV0sSXY9W1sicmVjdCIse3dpZHRoOiIxOCIsaGVpZ2h0OiIxOCIseDoiMyIseToiMyIscng6IjIifV0sWyJwYXRoIix7ZDoiTTkgM3YxOCJ9XSxbInBhdGgiLHtkOiJtMTYgMTUtMy0zIDMtMyJ9XV0sTnY9W1sicmVjdCIse3dpZHRoOiIxOCIsaGVpZ2h0OiIxOCIseDoiMyIseToiMyIscng6IjIifV0sWyJwYXRoIix7ZDoiTTkgMTR2MSJ9XSxbInBhdGgiLHtkOiJNOSAxOXYyIn1dLFsicGF0aCIse2Q6Ik05IDN2MiJ9XSxbInBhdGgiLHtkOiJNOSA5djEifV1dLEZ2PVtbInJlY3QiLHt3aWR0aDoiMTgiLGhlaWdodDoiMTgiLHg6IjMiLHk6IjMiLHJ4OiIyIn1dLFsicGF0aCIse2Q6Ik05IDN2MTgifV0sWyJwYXRoIix7ZDoibTE0IDkgMyAzLTMgMyJ9XV0sYWx0PVtbInBhdGgiLHtkOiJNMTUgMTBWOSJ9XSxbInBhdGgiLHtkOiJNMTUgMTV2LTEifV0sWyJwYXRoIix7ZDoiTTE1IDIxdi0yIn1dLFsicGF0aCIse2Q6Ik0xNSA1VjMifV0sWyJwYXRoIix7ZDoiTTkgMTBWOSJ9XSxbInBhdGgiLHtkOiJNOSAxNXYtMSJ9XSxbInBhdGgiLHtkOiJNOSAyMXYtMiJ9XSxbInBhdGgiLHtkOiJNOSA1VjMifV0sWyJyZWN0Iix7eDoiMyIseToiMyIsd2lkdGg6IjE4IixoZWlnaHQ6IjE4IixyeDoiMiJ9XV0sT3Y9W1sicmVjdCIse3dpZHRoOiIxOCIsaGVpZ2h0OiIxOCIseDoiMyIseToiMyIscng6IjIifV0sWyJwYXRoIix7ZDoiTTkgM3YxOCJ9XV0saWx0PVtbInJlY3QiLHt3aWR0aDoiMTgiLGhlaWdodDoiMTgiLHg6IjMiLHk6IjMiLHJ4OiIyIn1dLFsicGF0aCIse2Q6Ik0xNSAzdjE4In1dLFsicGF0aCIse2Q6Im04IDkgMyAzLTMgMyJ9XV0sUnY9W1sicmVjdCIse3dpZHRoOiIxOCIsaGVpZ2h0OiIxOCIseDoiMyIseToiMyIscng6IjIifV0sWyJwYXRoIix7ZDoiTTE1IDE0djEifV0sWyJwYXRoIix7ZDoiTTE1IDE5djIifV0sWyJwYXRoIix7ZDoiTTE1IDN2MiJ9XSxbInBhdGgiLHtkOiJNMTUgOXYxIn1dXSxybHQ9W1sicmVjdCIse3dpZHRoOiIxOCIsaGVpZ2h0OiIxOCIseDoiMyIseToiMyIscng6IjIifV0sWyJwYXRoIix7ZDoiTTE1IDN2MTgifV0sWyJwYXRoIix7ZDoibTEwIDE1LTMtMyAzLTMifV1dLHNsdD1bWyJyZWN0Iix7d2lkdGg6IjE4IixoZWlnaHQ6IjE4Iix4OiIzIix5OiIzIixyeDoiMiJ9XSxbInBhdGgiLHtkOiJNMTUgM3YxOCJ9XV0sbmx0PVtbInBhdGgiLHtkOiJNMTQgMTVoMSJ9XSxbInBhdGgiLHtkOiJNMTQgOWgxIn1dLFsicGF0aCIse2Q6Ik0xOSAxNWgyIn1dLFsicGF0aCIse2Q6Ik0xOSA5aDIifV0sWyJwYXRoIix7ZDoiTTMgMTVoMiJ9XSxbInBhdGgiLHtkOiJNMyA5aDIifV0sWyJwYXRoIix7ZDoiTTkgMTVoMSJ9XSxbInBhdGgiLHtkOiJNOSA5aDEifV0sWyJyZWN0Iix7eDoiMyIseToiMyIsd2lkdGg6IjE4IixoZWlnaHQ6IjE4IixyeDoiMiJ9XV0sb2x0PVtbInJlY3QiLHt3aWR0aDoiMTgiLGhlaWdodDoiMTgiLHg6IjMiLHk6IjMiLHJ4OiIyIn1dLFsicGF0aCIse2Q6Ik0zIDloMTgifV0sWyJwYXRoIix7ZDoibTkgMTYgMy0zIDMgMyJ9XV0sQnY9W1sicmVjdCIse3dpZHRoOiIxOCIsaGVpZ2h0OiIxOCIseDoiMyIseToiMyIscng6IjIifV0sWyJwYXRoIix7ZDoiTTE0IDloMSJ9XSxbInBhdGgiLHtkOiJNMTkgOWgyIn1dLFsicGF0aCIse2Q6Ik0zIDloMiJ9XSxbInBhdGgiLHtkOiJNOSA5aDEifV1dLGxsdD1bWyJyZWN0Iix7d2lkdGg6IjE4IixoZWlnaHQ6IjE4Iix4OiIzIix5OiIzIixyeDoiMiJ9XSxbInBhdGgiLHtkOiJNMyA5aDE4In1dLFsicGF0aCIse2Q6Im0xNSAxNC0zIDMtMy0zIn1dXSxjbHQ9W1sicmVjdCIse3dpZHRoOiIxOCIsaGVpZ2h0OiIxOCIseDoiMyIseToiMyIscng6IjIifV0sWyJwYXRoIix7ZDoiTTMgOWgxOCJ9XV0sZGx0PVtbInJlY3QiLHt3aWR0aDoiMTgiLGhlaWdodDoiMTgiLHg6IjMiLHk6IjMiLHJ4OiIyIn1dLFsicGF0aCIse2Q6Ik05IDN2MTgifV0sWyJwYXRoIix7ZDoiTTkgMTVoMTIifV1dLGhsdD1bWyJyZWN0Iix7d2lkdGg6IjE4IixoZWlnaHQ6IjE4Iix4OiIzIix5OiIzIixyeDoiMiJ9XSxbInBhdGgiLHtkOiJNMyAxNWgxMiJ9XSxbInBhdGgiLHtkOiJNMTUgM3YxOCJ9XV0sSHY9W1sicmVjdCIse3dpZHRoOiIxOCIsaGVpZ2h0OiIxOCIseDoiMyIseToiMyIscng6IjIifV0sWyJwYXRoIix7ZDoiTTMgOWgxOCJ9XSxbInBhdGgiLHtkOiJNOSAyMVY5In1dXSxwbHQ9W1sicGF0aCIse2Q6Im0xNiA2LTguNDE0IDguNTg2YTIgMiAwIDAgMCAyLjgyOSAyLjgyOWw4LjQxNC04LjU4NmE0IDQgMCAxIDAtNS42NTctNS42NTdsLTguMzc5IDguNTUxYTYgNiAwIDEgMCA4LjQ4NSA4LjQ4NWw4LjM3OS04LjU1MSJ9XV0sdWx0PVtbInBhdGgiLHtkOiJNOCAyMXMtNC0zLTQtOSA0LTkgNC05In1dLFsicGF0aCIse2Q6Ik0xNiAzczQgMyA0IDktNCA5LTQgOSJ9XV0sZmx0PVtbInBhdGgiLHtkOiJNMTEgMTVoMiJ9XSxbInBhdGgiLHtkOiJNMTIgMTJ2MyJ9XSxbInBhdGgiLHtkOiJNMTIgMTl2MyJ9XSxbInBhdGgiLHtkOiJNMTUuMjgyIDE5YTEgMSAwIDAgMCAuOTQ4LS42OGwyLjM3LTYuOTg4YTcgNyAwIDEgMC0xMy4yIDBsMi4zNyA2Ljk4OGExIDEgMCAwIDAgLjk0OC42OHoifV0sWyJwYXRoIix7ZDoiTTkgOWEzIDMgMCAxIDEgNiAwIn1dXSxtbHQ9W1sicGF0aCIse2Q6Ik01LjggMTEuMyAyIDIybDEwLjctMy43OSJ9XSxbInBhdGgiLHtkOiJNNCAzaC4wMSJ9XSxbInBhdGgiLHtkOiJNMjIgOGguMDEifV0sWyJwYXRoIix7ZDoiTTE1IDJoLjAxIn1dLFsicGF0aCIse2Q6Ik0yMiAyMGguMDEifV0sWyJwYXRoIix7ZDoibTIyIDItMi4yNC43NWEyLjkgMi45IDAgMCAwLTEuOTYgMy4xMmMuMS44Ni0uNTcgMS42My0xLjQ1IDEuNjNoLS4zOGMtLjg2IDAtMS42LjYtMS43NiAxLjQ0TDE0IDEwIn1dLFsicGF0aCIse2Q6Im0yMiAxMy0uODItLjMzYy0uODYtLjM0LTEuODIuMi0xLjk4IDEuMTFjLS4xMS43LS43MiAxLjIyLTEuNDMgMS4yMkgxNyJ9XSxbInBhdGgiLHtkOiJtMTEgMiAuMzMuODJjLjM0Ljg2LS4yIDEuODItMS4xMSAxLjk4QzkuNTIgNC45IDkgNS41MiA5IDYuMjNWNyJ9XSxbInBhdGgiLHtkOiJNMTEgMTNjMS45MyAxLjkzIDIuODMgNC4xNyAyIDUtLjgzLjgzLTMuMDctLjA3LTUtMi0xLjkzLTEuOTMtMi44My00LjE3LTItNSAuODMtLjgzIDMuMDcuMDcgNSAyWiJ9XV0sZ2x0PVtbInJlY3QiLHt4OiIxNCIseToiMyIsd2lkdGg6IjUiLGhlaWdodDoiMTgiLHJ4OiIxIn1dLFsicmVjdCIse3g6IjUiLHk6IjMiLHdpZHRoOiI1IixoZWlnaHQ6IjE4IixyeDoiMSJ9XV0sYmx0PVtbImNpcmNsZSIse2N4OiIxMSIsY3k6IjQiLHI6IjIifV0sWyJjaXJjbGUiLHtjeDoiMTgiLGN5OiI4IixyOiIyIn1dLFsiY2lyY2xlIix7Y3g6IjIwIixjeToiMTYiLHI6IjIifV0sWyJwYXRoIix7ZDoiTTkgMTBhNSA1IDAgMCAxIDUgNXYzLjVhMy41IDMuNSAwIDAgMS02Ljg0IDEuMDQ1UTYuNTIgMTcuNDggNC40NiAxNi44NEEzLjUgMy41IDAgMCAxIDUuNSAxMFoifV1dLHZsdD1bWyJyZWN0Iix7d2lkdGg6IjE0IixoZWlnaHQ6IjIwIix4OiI1Iix5OiIyIixyeDoiMiJ9XSxbInBhdGgiLHtkOiJNMTUgMTRoLjAxIn1dLFsicGF0aCIse2Q6Ik05IDZoNiJ9XSxbInBhdGgiLHtkOiJNOSAxMGg2In1dXSxxdj1bWyJwYXRoIix7ZDoiTTEzIDIxaDgifV0sWyJwYXRoIix7ZDoiTTIxLjE3NCA2LjgxMmExIDEgMCAwIDAtMy45ODYtMy45ODdMMy44NDIgMTYuMTc0YTIgMiAwIDAgMC0uNS44M2wtMS4zMjEgNC4zNTJhLjUuNSAwIDAgMCAuNjIzLjYyMmw0LjM1My0xLjMyYTIgMiAwIDAgMCAuODMtLjQ5N3oifV1dLHlsdD1bWyJwYXRoIix7ZDoibTEwIDEwLTYuMTU3IDYuMTYyYTIgMiAwIDAgMC0uNS44MzNsLTEuMzIyIDQuMzZhLjUuNSAwIDAgMCAuNjIyLjYyNGw0LjM1OC0xLjMyM2EyIDIgMCAwIDAgLjgzLS41TDE0IDEzLjk4MiJ9XSxbInBhdGgiLHtkOiJtMTIuODI5IDcuMTcyIDQuMzU5LTQuMzQ2YTEgMSAwIDEgMSAzLjk4NiAzLjk4NmwtNC4zNTMgNC4zNTMifV0sWyJwYXRoIix7ZDoibTIgMiAyMCAyMCJ9XV0seGx0PVtbInBhdGgiLHtkOiJNMTUuNzA3IDIxLjI5M2ExIDEgMCAwIDEtMS40MTQgMGwtMS41ODYtMS41ODZhMSAxIDAgMCAxIDAtMS40MTRsNS41ODYtNS41ODZhMSAxIDAgMCAxIDEuNDE0IDBsMS41ODYgMS41ODZhMSAxIDAgMCAxIDAgMS40MTR6In1dLFsicGF0aCIse2Q6Im0xOCAxMy0xLjM3NS02Ljg3NGExIDEgMCAwIDAtLjc0Ni0uNzc2TDMuMjM1IDIuMDI4YTEgMSAwIDAgMC0xLjIwNyAxLjIwN0w1LjM1IDE1Ljg3OWExIDEgMCAwIDAgLjc3Ni43NDZMMTMgMTgifV0sWyJwYXRoIix7ZDoibTIuMyAyLjMgNy4yODYgNy4yODYifV0sWyJjaXJjbGUiLHtjeDoiMTEiLGN5OiIxMSIscjoiMiJ9XV0sVnY9W1sicGF0aCIse2Q6Ik0yMS4xNzQgNi44MTJhMSAxIDAgMCAwLTMuOTg2LTMuOTg3TDMuODQyIDE2LjE3NGEyIDIgMCAwIDAtLjUuODNsLTEuMzIxIDQuMzUyYS41LjUgMCAwIDAgLjYyMy42MjJsNC4zNTMtMS4zMmEyIDIgMCAwIDAgLjgzLS40OTd6In1dXSx3bHQ9W1sicGF0aCIse2Q6Ik0xMyAyMWg4In1dLFsicGF0aCIse2Q6Im0xNSA1IDQgNCJ9XSxbInBhdGgiLHtkOiJNMjEuMTc0IDYuODEyYTEgMSAwIDAgMC0zLjk4Ni0zLjk4N0wzLjg0MiAxNi4xNzRhMiAyIDAgMCAwLS41LjgzbC0xLjMyMSA0LjM1MmEuNS41IDAgMCAwIC42MjMuNjIybDQuMzUzLTEuMzJhMiAyIDAgMCAwIC44My0uNDk3eiJ9XV0sTWx0PVtbInBhdGgiLHtkOiJtMTAgMTAtNi4xNTcgNi4xNjJhMiAyIDAgMCAwLS41LjgzM2wtMS4zMjIgNC4zNmEuNS41IDAgMCAwIC42MjIuNjI0bDQuMzU4LTEuMzIzYTIgMiAwIDAgMCAuODMtLjVMMTQgMTMuOTgyIn1dLFsicGF0aCIse2Q6Im0xMi44MjkgNy4xNzIgNC4zNTktNC4zNDZhMSAxIDAgMSAxIDMuOTg2IDMuOTg2bC00LjM1MyA0LjM1MyJ9XSxbInBhdGgiLHtkOiJtMTUgNSA0IDQifV0sWyJwYXRoIix7ZDoibTIgMiAyMCAyMCJ9XV0semx0PVtbInBhdGgiLHtkOiJNMTMgNyA4LjcgMi43YTIuNDEgMi40MSAwIDAgMC0zLjQgMEwyLjcgNS4zYTIuNDEgMi40MSAwIDAgMCAwIDMuNEw3IDEzIn1dLFsicGF0aCIse2Q6Im04IDYgMi0yIn1dLFsicGF0aCIse2Q6Im0xOCAxNiAyLTIifV0sWyJwYXRoIix7ZDoibTE3IDExIDQuMyA0LjNjLjk0Ljk0Ljk0IDIuNDYgMCAzLjRsLTIuNiAyLjZjLS45NC45NC0yLjQ2Ljk0LTMuNCAwTDExIDE3In1dLFsicGF0aCIse2Q6Ik0yMS4xNzQgNi44MTJhMSAxIDAgMCAwLTMuOTg2LTMuOTg3TDMuODQyIDE2LjE3NGEyIDIgMCAwIDAtLjUuODNsLTEuMzIxIDQuMzUyYS41LjUgMCAwIDAgLjYyMy42MjJsNC4zNTMtMS4zMmEyIDIgMCAwIDAgLjgzLS40OTd6In1dLFsicGF0aCIse2Q6Im0xNSA1IDQgNCJ9XV0sa2x0PVtbInBhdGgiLHtkOiJNMTAuODMgMi4zOGEyIDIgMCAwIDEgMi4zNCAwbDggNS43NGEyIDIgMCAwIDEgLjczIDIuMjVsLTMuMDQgOS4yNmEyIDIgMCAwIDEtMS45IDEuMzdINy4wNGEyIDIgMCAwIDEtMS45LTEuMzdMMi4xIDEwLjM3YTIgMiAwIDAgMSAuNzMtMi4yNXoifV1dLFNsdD1bWyJwYXRoIix7ZDoiTTIxLjE3NCA2LjgxMmExIDEgMCAwIDAtMy45ODYtMy45ODdMMy44NDIgMTYuMTc0YTIgMiAwIDAgMC0uNS44M2wtMS4zMjEgNC4zNTJhLjUuNSAwIDAgMCAuNjIzLjYyMmw0LjM1My0xLjMyYTIgMiAwIDAgMCAuODMtLjQ5N3oifV0sWyJwYXRoIix7ZDoibTE1IDUgNCA0In1dXSxDbHQ9W1sibGluZSIse3gxOiIxOSIseDI6IjUiLHkxOiI1Iix5MjoiMTkifV0sWyJjaXJjbGUiLHtjeDoiNi41IixjeToiNi41IixyOiIyLjUifV0sWyJjaXJjbGUiLHtjeDoiMTcuNSIsY3k6IjE3LjUiLHI6IjIuNSJ9XV0sX2x0PVtbImNpcmNsZSIse2N4OiIxMiIsY3k6IjUiLHI6IjEifV0sWyJwYXRoIix7ZDoibTkgMjAgMy02IDMgNiJ9XSxbInBhdGgiLHtkOiJtNiA4IDYgMiA2LTIifV0sWyJwYXRoIix7ZDoiTTEyIDEwdjQifV1dLFRsdD1bWyJwYXRoIix7ZDoiTTIwIDExSDQifV0sWyJwYXRoIix7ZDoiTTIwIDdINCJ9XSxbInBhdGgiLHtkOiJNNyAyMVY0YTEgMSAwIDAgMSAxLTFoNGExIDEgMCAwIDEgMCAxMkg3In1dXSxMbHQ9W1sicGF0aCIse2Q6Ik0xMyAyYTkgOSAwIDAgMSA5IDkifV0sWyJwYXRoIix7ZDoiTTEzIDZhNSA1IDAgMCAxIDUgNSJ9XSxbInBhdGgiLHtkOiJNMTMuODMyIDE2LjU2OGExIDEgMCAwIDAgMS4yMTMtLjMwM2wuMzU1LS40NjVBMiAyIDAgMCAxIDE3IDE1aDNhMiAyIDAgMCAxIDIgMnYzYTIgMiAwIDAgMS0yIDJBMTggMTggMCAwIDEgMiA0YTIgMiAwIDAgMSAyLTJoM2EyIDIgMCAwIDEgMiAydjNhMiAyIDAgMCAxLS44IDEuNmwtLjQ2OC4zNTFhMSAxIDAgMCAwLS4yOTIgMS4yMzMgMTQgMTQgMCAwIDAgNi4zOTIgNi4zODQifV1dLCRsdD1bWyJwYXRoIix7ZDoiTTE0IDZoOCJ9XSxbInBhdGgiLHtkOiJtMTggMiA0IDQtNCA0In1dLFsicGF0aCIse2Q6Ik0xMy44MzIgMTYuNTY4YTEgMSAwIDAgMCAxLjIxMy0uMzAzbC4zNTUtLjQ2NUEyIDIgMCAwIDEgMTcgMTVoM2EyIDIgMCAwIDEgMiAydjNhMiAyIDAgMCAxLTIgMkExOCAxOCAwIDAgMSAyIDRhMiAyIDAgMCAxIDItMmgzYTIgMiAwIDAgMSAyIDJ2M2EyIDIgMCAwIDEtLjggMS42bC0uNDY4LjM1MWExIDEgMCAwIDAtLjI5MiAxLjIzMyAxNCAxNCAwIDAgMCA2LjM5MiA2LjM4NCJ9XV0sQWx0PVtbInBhdGgiLHtkOiJNMTYgMnY2aDYifV0sWyJwYXRoIix7ZDoibTIyIDItNiA2In1dLFsicGF0aCIse2Q6Ik0xMy44MzIgMTYuNTY4YTEgMSAwIDAgMCAxLjIxMy0uMzAzbC4zNTUtLjQ2NUEyIDIgMCAwIDEgMTcgMTVoM2EyIDIgMCAwIDEgMiAydjNhMiAyIDAgMCAxLTIgMkExOCAxOCAwIDAgMSAyIDRhMiAyIDAgMCAxIDItMmgzYTIgMiAwIDAgMSAyIDJ2M2EyIDIgMCAwIDEtLjggMS42bC0uNDY4LjM1MWExIDEgMCAwIDAtLjI5MiAxLjIzMyAxNCAxNCAwIDAgMCA2LjM5MiA2LjM4NCJ9XV0sRGx0PVtbInBhdGgiLHtkOiJtMTYgMiA2IDYifV0sWyJwYXRoIix7ZDoibTIyIDItNiA2In1dLFsicGF0aCIse2Q6Ik0xMy44MzIgMTYuNTY4YTEgMSAwIDAgMCAxLjIxMy0uMzAzbC4zNTUtLjQ2NUEyIDIgMCAwIDEgMTcgMTVoM2EyIDIgMCAwIDEgMiAydjNhMiAyIDAgMCAxLTIgMkExOCAxOCAwIDAgMSAyIDRhMiAyIDAgMCAxIDItMmgzYTIgMiAwIDAgMSAyIDJ2M2EyIDIgMCAwIDEtLjggMS42bC0uNDY4LjM1MWExIDEgMCAwIDAtLjI5MiAxLjIzMyAxNCAxNCAwIDAgMCA2LjM5MiA2LjM4NCJ9XV0sRWx0PVtbInBhdGgiLHtkOiJNMTAuMSAxMy45YTE0IDE0IDAgMCAwIDMuNzMyIDIuNjY4IDEgMSAwIDAgMCAxLjIxMy0uMzAzbC4zNTUtLjQ2NUEyIDIgMCAwIDEgMTcgMTVoM2EyIDIgMCAwIDEgMiAydjNhMiAyIDAgMCAxLTIgMiAxOCAxOCAwIDAgMS0xMi43MjgtNS4yNzIifV0sWyJwYXRoIix7ZDoiTTIyIDIgMiAyMiJ9XSxbInBhdGgiLHtkOiJNNC43NiAxMy41ODJBMTggMTggMCAwIDEgMiA0YTIgMiAwIDAgMSAyLTJoM2EyIDIgMCAwIDEgMiAydjNhMiAyIDAgMCAxLS44IDEuNmwtLjQ2OC4zNTFhMSAxIDAgMCAwLS4yOTIgMS4yMzMgMTQgMTQgMCAwIDAgLjI0NC40NzMifV1dLFBsdD1bWyJwYXRoIix7ZDoibTE2IDggNi02In1dLFsicGF0aCIse2Q6Ik0yMiA4VjJoLTYifV0sWyJwYXRoIix7ZDoiTTEzLjgzMiAxNi41NjhhMSAxIDAgMCAwIDEuMjEzLS4zMDNsLjM1NS0uNDY1QTIgMiAwIDAgMSAxNyAxNWgzYTIgMiAwIDAgMSAyIDJ2M2EyIDIgMCAwIDEtMiAyQTE4IDE4IDAgMCAxIDIgNGEyIDIgMCAwIDEgMi0yaDNhMiAyIDAgMCAxIDIgMnYzYTIgMiAwIDAgMS0uOCAxLjZsLS40NjguMzUxYTEgMSAwIDAgMC0uMjkyIDEuMjMzIDE0IDE0IDAgMCAwIDYuMzkyIDYuMzg0In1dXSxJbHQ9W1sicGF0aCIse2Q6Ik0xMy44MzIgMTYuNTY4YTEgMSAwIDAgMCAxLjIxMy0uMzAzbC4zNTUtLjQ2NUEyIDIgMCAwIDEgMTcgMTVoM2EyIDIgMCAwIDEgMiAydjNhMiAyIDAgMCAxLTIgMkExOCAxOCAwIDAgMSAyIDRhMiAyIDAgMCAxIDItMmgzYTIgMiAwIDAgMSAyIDJ2M2EyIDIgMCAwIDEtLjggMS42bC0uNDY4LjM1MWExIDEgMCAwIDAtLjI5MiAxLjIzMyAxNCAxNCAwIDAgMCA2LjM5MiA2LjM4NCJ9XV0sTmx0PVtbImxpbmUiLHt4MToiOSIseDI6IjkiLHkxOiI0Iix5MjoiMjAifV0sWyJwYXRoIix7ZDoiTTQgN2MwLTEuNyAxLjMtMyAzLTNoMTMifV0sWyJwYXRoIix7ZDoiTTE4IDIwYy0xLjcgMC0zLTEuMy0zLTNWNCJ9XV0sRmx0PVtbInBhdGgiLHtkOiJNMTguNSA4Yy0xLjQgMC0yLjYtLjgtMy4yLTJBNi44NyA2Ljg3IDAgMCAwIDIgOXYxMWEyIDIgMCAwIDAgMiAyaDE2YTIgMiAwIDAgMCAyLTJ2LTguNUMyMiA5LjYgMjAuNCA4IDE4LjUgOCJ9XSxbInBhdGgiLHtkOiJNMiAxNGgyMCJ9XSxbInBhdGgiLHtkOiJNNiAxNHY0In1dLFsicGF0aCIse2Q6Ik0xMCAxNHY0In1dLFsicGF0aCIse2Q6Ik0xNCAxNHY0In1dLFsicGF0aCIse2Q6Ik0xOCAxNHY0In1dXSxPbHQ9W1sicGF0aCIse2Q6Im0xNCAxMy04LjM4MSA4LjM4YTEgMSAwIDAgMS0zLjAwMS0zTDExIDkuOTk5In1dLFsicGF0aCIse2Q6Ik0xNS45NzMgNC4wMjdBMTMgMTMgMCAwIDAgNS45MDIgMi4zNzNjLTEuMzk4LjM0Mi0xLjA5MiAyLjE1OC4yNzcgMi42MDFhMTkuOSAxOS45IDAgMCAxIDUuODIyIDMuMDI0In1dLFsicGF0aCIse2Q6Ik0xNi4wMDEgMTEuOTk5YTE5LjkgMTkuOSAwIDAgMSAzLjAyNCA1LjgyNGMuNDQ0IDEuMzY5IDIuMjYgMS42NzYgMi42MDMuMjc4QTEzIDEzIDAgMCAwIDIwIDguMDY5In1dLFsicGF0aCIse2Q6Ik0xOC4zNTIgMy4zNTJhMS4yMDUgMS4yMDUgMCAwIDAtMS43MDQgMGwtNS4yOTYgNS4yOTZhMS4yMDUgMS4yMDUgMCAwIDAgMCAxLjcwNGwyLjI5NiAyLjI5NmExLjIwNSAxLjIwNSAwIDAgMCAxLjcwNCAwbDUuMjk2LTUuMjk2YTEuMjA1IDEuMjA1IDAgMCAwIDAtMS43MDR6In1dXSxSbHQ9W1sicGF0aCIse2Q6Ik0yMSA5VjZhMiAyIDAgMCAwLTItMkg0YTIgMiAwIDAgMC0yIDJ2MTBjMCAxLjEuOSAyIDIgMmg0In1dLFsicmVjdCIse3dpZHRoOiIxMCIsaGVpZ2h0OiI3Iix4OiIxMiIseToiMTMiLHJ4OiIyIn1dXSxCbHQ9W1sicGF0aCIse2Q6Ik0xMSAxN2gzdjJhMSAxIDAgMCAwIDEgMWgyYTEgMSAwIDAgMCAxLTF2LTNhMy4xNiAzLjE2IDAgMCAwIDItMmgxYTEgMSAwIDAgMCAxLTF2LTJhMSAxIDAgMCAwLTEtMWgtMWE1IDUgMCAwIDAtMi00VjNhNCA0IDAgMCAwLTMuMiAxLjZsLS4zLjRIMTFhNiA2IDAgMCAwLTYgNnYxYTUgNSAwIDAgMCAyIDR2M2ExIDEgMCAwIDAgMSAxaDJhMSAxIDAgMCAwIDEtMXoifV0sWyJwYXRoIix7ZDoiTTE2IDEwaC4wMSJ9XSxbInBhdGgiLHtkOiJNMiA4djFhMiAyIDAgMCAwIDIgMmgxIn1dXSxIbHQ9W1sicGF0aCIse2Q6Ik0yIDEwaDZWNCJ9XSxbInBhdGgiLHtkOiJtMiA0IDYgNiJ9XSxbInBhdGgiLHtkOiJNMjEgMTBWN2EyIDIgMCAwIDAtMi0yaC03In1dLFsicGF0aCIse2Q6Ik0zIDE0djJhMiAyIDAgMCAwIDIgMmgzIn1dLFsicmVjdCIse3g6IjEyIix5OiIxNCIsd2lkdGg6IjEwIixoZWlnaHQ6IjciLHJ4OiIxIn1dXSxxbHQ9W1sicGF0aCIse2Q6Ik0xNCAzdjExIn1dLFsicGF0aCIse2Q6Ik0xNCA5aC0zYTMgMyAwIDAgMSAwLTZoOSJ9XSxbInBhdGgiLHtkOiJNMTggM3YxMSJ9XSxbInBhdGgiLHtkOiJNMjIgMThIMmw0LTQifV0sWyJwYXRoIix7ZDoibTYgMjItNC00In1dXSxWbHQ9W1sicGF0aCIse2Q6Ik0xMCAzdjExIn1dLFsicGF0aCIse2Q6Ik0xMCA5SDdhMSAxIDAgMCAxIDAtNmg4In1dLFsicGF0aCIse2Q6Ik0xNCAzdjExIn1dLFsicGF0aCIse2Q6Im0xOCAxNCA0IDRIMiJ9XSxbInBhdGgiLHtkOiJtMjIgMTgtNCA0In1dXSxqbHQ9W1sicGF0aCIse2Q6Ik0xMyA0djE2In1dLFsicGF0aCIse2Q6Ik0xNyA0djE2In1dLFsicGF0aCIse2Q6Ik0xOSA0SDkuNWE0LjUgNC41IDAgMCAwIDAgOUgxMyJ9XV0sVWx0PVtbInBhdGgiLHtkOiJNMTggMTFoLTRhMSAxIDAgMCAwLTEgMXY1YTEgMSAwIDAgMCAxIDFoNCJ9XSxbInBhdGgiLHtkOiJNNiA3djEzYTIgMiAwIDAgMCAyIDJoOGEyIDIgMCAwIDAgMi0yVjcifV0sWyJyZWN0Iix7d2lkdGg6IjE2IixoZWlnaHQ6IjUiLHg6IjQiLHk6IjIiLHJ4OiIxIn1dXSxXbHQ9W1sicGF0aCIse2Q6Im0xMC41IDIwLjUgMTAtMTBhNC45NSA0Ljk1IDAgMSAwLTctN2wtMTAgMTBhNC45NSA0Ljk1IDAgMSAwIDcgN1oifV0sWyJwYXRoIix7ZDoibTguNSA4LjUgNyA3In1dXSxHbHQ9W1sicGF0aCIse2Q6Ik0xMiAxN3Y1In1dLFsicGF0aCIse2Q6Ik0xNSA5LjM0VjdhMSAxIDAgMCAxIDEtMSAyIDIgMCAwIDAgMC00SDcuODkifV0sWyJwYXRoIix7ZDoibTIgMiAyMCAyMCJ9XSxbInBhdGgiLHtkOiJNOSA5djEuNzZhMiAyIDAgMCAxLTEuMTEgMS43OWwtMS43OC45QTIgMiAwIDAgMCA1IDE1LjI0VjE2YTEgMSAwIDAgMCAxIDFoMTEifV1dLFlsdD1bWyJwYXRoIix7ZDoiTTEyIDE3djUifV0sWyJwYXRoIix7ZDoiTTkgMTAuNzZhMiAyIDAgMCAxLTEuMTEgMS43OWwtMS43OC45QTIgMiAwIDAgMCA1IDE1LjI0VjE2YTEgMSAwIDAgMCAxIDFoMTJhMSAxIDAgMCAwIDEtMXYtLjc2YTIgMiAwIDAgMC0xLjExLTEuNzlsLTEuNzgtLjlBMiAyIDAgMCAxIDE1IDEwLjc2VjdhMSAxIDAgMCAxIDEtMSAyIDIgMCAwIDAgMC00SDhhMiAyIDAgMCAwIDAgNCAxIDEgMCAwIDEgMSAxeiJ9XV0sWmx0PVtbInBhdGgiLHtkOiJtMTIgOS04LjQxNCA4LjQxNEEyIDIgMCAwIDAgMyAxOC44Mjh2MS4zNDRhMiAyIDAgMCAxLS41ODYgMS40MTRBMiAyIDAgMCAxIDMuODI4IDIxaDEuMzQ0YTIgMiAwIDAgMCAxLjQxNC0uNTg2TDE1IDEyIn1dLFsicGF0aCIse2Q6Im0xOCA5IC40LjRhMSAxIDAgMSAxLTMgM2wtMy44LTMuOGExIDEgMCAxIDEgMy0zbC40LjQgMy40LTMuNGExIDEgMCAxIDEgMyAzeiJ9XSxbInBhdGgiLHtkOiJtMiAyMiAuNDE0LS40MTQifV1dLFhsdD1bWyJwYXRoIix7ZDoibTEyIDE0LTEgMSJ9XSxbInBhdGgiLHtkOiJtMTMuNzUgMTguMjUtMS4yNSAxLjQyIn1dLFsicGF0aCIse2Q6Ik0xNy43NzUgNS42NTRhMTUuNjggMTUuNjggMCAwIDAtMTIuMTIxIDEyLjEyIn1dLFsicGF0aCIse2Q6Ik0xOC44IDkuM2ExIDEgMCAwIDAgMi4xIDcuNyJ9XSxbInBhdGgiLHtkOiJNMjEuOTY0IDIwLjczMmExIDEgMCAwIDEtMS4yMzIgMS4yMzJsLTE4LTVhMSAxIDAgMCAxLS42OTUtMS4yMzJBMTkuNjggMTkuNjggMCAwIDEgMTUuNzMyIDIuMDM3YTEgMSAwIDAgMSAxLjIzMi42OTV6In1dXSxLbHQ9W1sicGF0aCIse2Q6Ik0yIDIyaDIwIn1dLFsicGF0aCIse2Q6Ik0zLjc3IDEwLjc3IDIgOWwyLTQuNSAxLjEuNTVjLjU1LjI4LjkuODQuOSAxLjQ1cy4zNSAxLjE3LjkgMS40NUw4IDguNWwzLTYgMS4wNS41M2EyIDIgMCAwIDEgMS4wOSAxLjUybC43MiA1LjRhMiAyIDAgMCAwIDEuMDkgMS41Mmw0LjQgMi4yYy40Mi4yMi43OC41NSAxLjAxLjk2bC42IDEuMDNjLjQ5Ljg4LS4wNiAxLjk4LTEuMDYgMi4xbC0xLjE4LjE1Yy0uNDcuMDYtLjk1LS4wMi0xLjM3LS4yNEw0LjI5IDExLjE1YTIgMiAwIDAgMS0uNTItLjM4WiJ9XV0sUWx0PVtbInBhdGgiLHtkOiJNMiAyMmgyMCJ9XSxbInBhdGgiLHtkOiJNNi4zNiAxNy40IDQgMTdsLTItNCAxLjEtLjU1YTIgMiAwIDAgMSAxLjggMGwuMTcuMWEyIDIgMCAwIDAgMS44IDBMOCAxMiA1IDZsLjktLjQ1YTIgMiAwIDAgMSAyLjA5LjJsNC4wMiAzYTIgMiAwIDAgMCAyLjEuMmw0LjE5LTIuMDZhMi40MSAyLjQxIDAgMCAxIDEuNzMtLjE3TDIxIDdhMS40IDEuNCAwIDAgMSAuODcgMS45OWwtLjM4Ljc2Yy0uMjMuNDYtLjYuODQtMS4wNyAxLjA4TDcuNTggMTcuMmEyIDIgMCAwIDEtMS4yMi4xOFoifV1dLEpsdD1bWyJwYXRoIix7ZDoiTTE3LjggMTkuMiAxNiAxMWwzLjUtMy41QzIxIDYgMjEuNSA0IDIxIDNjLTEtLjUtMyAwLTQuNSAxLjVMMTMgOCA0LjggNi4yYy0uNS0uMS0uOS4xLTEuMS41bC0uMy41Yy0uMi41LS4xIDEgLjMgMS4zTDkgMTJsLTIgM0g0bC0xIDEgMyAyIDIgMyAxLTF2LTNsMy0yIDMuNSA1LjNjLjMuNC44LjUgMS4zLjNsLjUtLjJjLjQtLjMuNi0uNy41LTEuMnoifV1dLGVjdD1bWyJwYXRoIix7ZDoiTTUgNWEyIDIgMCAwIDEgMy4wMDgtMS43MjhsMTEuOTk3IDYuOTk4YTIgMiAwIDAgMSAuMDAzIDMuNDU4bC0xMiA3QTIgMiAwIDAgMSA1IDE5eiJ9XV0sdGN0PVtbInBhdGgiLHtkOiJNOSAydjYifV0sWyJwYXRoIix7ZDoiTTE1IDJ2NiJ9XSxbInBhdGgiLHtkOiJNMTIgMTd2NSJ9XSxbInBhdGgiLHtkOiJNNSA4aDE0In1dLFsicGF0aCIse2Q6Ik02IDExVjhoMTJ2M2E2IDYgMCAxIDEtMTIgMFoifV1dLGp2PVtbInBhdGgiLHtkOiJNNi4zIDIwLjNhMi40IDIuNCAwIDAgMCAzLjQgMEwxMiAxOGwtNi02LTIuMyAyLjNhMi40IDIuNCAwIDAgMCAwIDMuNFoifV0sWyJwYXRoIix7ZDoibTIgMjIgMy0zIn1dLFsicGF0aCIse2Q6Ik03LjUgMTMuNSAxMCAxMSJ9XSxbInBhdGgiLHtkOiJNMTAuNSAxNi41IDEzIDE0In1dLFsicGF0aCIse2Q6Im0xOCAzLTQgNGg2bC00IDQifV1dLGFjdD1bWyJwYXRoIix7ZDoiTTEyIDIydi01In1dLFsicGF0aCIse2Q6Ik0xNSA4VjIifV0sWyJwYXRoIix7ZDoiTTE3IDhhMSAxIDAgMCAxIDEgMXY0YTQgNCAwIDAgMS00IDRoLTRhNCA0IDAgMCAxLTQtNFY5YTEgMSAwIDAgMSAxLTF6In1dLFsicGF0aCIse2Q6Ik05IDhWMiJ9XV0saWN0PVtbInBhdGgiLHtkOiJNNSAxMmgxNCJ9XSxbInBhdGgiLHtkOiJNMTIgNXYxNCJ9XV0scmN0PVtbInBhdGgiLHtkOiJNMyAydjFjMCAxIDIgMSAyIDJTMyA2IDMgN3MyIDEgMiAyLTIgMS0yIDIgMiAxIDIgMiJ9XSxbInBhdGgiLHtkOiJNMTggNmguMDEifV0sWyJwYXRoIix7ZDoiTTYgMThoLjAxIn1dLFsicGF0aCIse2Q6Ik0yMC44MyA4LjgzYTQgNCAwIDAgMC01LjY2LTUuNjZsLTEyIDEyYTQgNCAwIDEgMCA1LjY2IDUuNjZaIn1dLFsicGF0aCIse2Q6Ik0xOCAxMS42NlYyMmE0IDQgMCAwIDAgNC00VjYifV1dLHNjdD1bWyJwYXRoIix7ZDoiTTEzIDE3YTEgMSAwIDEgMC0yIDBsLjUgNC41YTAuNSAwLjUgMCAwIDAgMSAweiIsZmlsbDoiY3VycmVudENvbG9yIn1dLFsicGF0aCIse2Q6Ik0xNi44NSAxOC41OGE5IDkgMCAxIDAtOS43IDAifV0sWyJwYXRoIix7ZDoiTTggMTRhNSA1IDAgMSAxIDggMCJ9XSxbImNpcmNsZSIse2N4OiIxMiIsY3k6IjExIixyOiIxIixmaWxsOiJjdXJyZW50Q29sb3IifV1dLG5jdD1bWyJwYXRoIix7ZDoiTTIwIDNhMiAyIDAgMCAxIDIgMnY2YTEgMSAwIDAgMS0yMCAwVjVhMiAyIDAgMCAxIDItMnoifV0sWyJwYXRoIix7ZDoibTggMTAgNCA0IDQtNCJ9XV0sb2N0PVtbInBhdGgiLHtkOiJNMTAgNC41VjRhMiAyIDAgMCAwLTIuNDEtMS45NTcifV0sWyJwYXRoIix7ZDoiTTEzLjkgOC40YTIgMiAwIDAgMC0xLjI2LTEuMjk1In1dLFsicGF0aCIse2Q6Ik0yMS43IDE2LjJBOCA4IDAgMCAwIDIyIDE0di0zYTIgMiAwIDEgMC00IDB2LTFhMiAyIDAgMCAwLTMuNjMtMS4xNTgifV0sWyJwYXRoIix7ZDoibTcgMTUtMS44LTEuOGEyIDIgMCAwIDAtMi43OSAyLjg2TDYgMTkuN2E3Ljc0IDcuNzQgMCAwIDAgNiAyLjNoMmE4IDggMCAwIDAgNS42NTctMi4zNDMifV0sWyJwYXRoIix7ZDoiTTYgNnY4In1dLFsicGF0aCIse2Q6Im0yIDIgMjAgMjAifV1dLGxjdD1bWyJwYXRoIix7ZDoiTTIyIDE0YTggOCAwIDAgMS04IDgifV0sWyJwYXRoIix7ZDoiTTE4IDExdi0xYTIgMiAwIDAgMC0yLTJhMiAyIDAgMCAwLTIgMiJ9XSxbInBhdGgiLHtkOiJNMTQgMTBWOWEyIDIgMCAwIDAtMi0yYTIgMiAwIDAgMC0yIDJ2MSJ9XSxbInBhdGgiLHtkOiJNMTAgOS41VjRhMiAyIDAgMCAwLTItMmEyIDIgMCAwIDAtMiAydjEwIn1dLFsicGF0aCIse2Q6Ik0xOCAxMWEyIDIgMCAxIDEgNCAwdjNhOCA4IDAgMCAxLTggOGgtMmMtMi44IDAtNC41LS44Ni01Ljk5LTIuMzRsLTMuNi0zLjZhMiAyIDAgMCAxIDIuODMtMi44Mkw3IDE1In1dXSxjY3Q9W1sicGF0aCIse2Q6Ik0xOCA4YTIgMiAwIDAgMCAwLTQgMiAyIDAgMCAwLTQgMCAyIDIgMCAwIDAtNCAwIDIgMiAwIDAgMC00IDAgMiAyIDAgMCAwIDAgNCJ9XSxbInBhdGgiLHtkOiJNMTAgMjIgOSA4In1dLFsicGF0aCIse2Q6Im0xNCAyMiAxLTE0In1dLFsicGF0aCIse2Q6Ik0yMCA4Yy41IDAgLjkuNC44IDFsLTIuNiAxMmMtLjEuNS0uNyAxLTEuMiAxSDdjLS42IDAtMS4xLS40LTEuMi0xTDMuMiA5Yy0uMS0uNi4zLTEgLjgtMVoifV1dLGRjdD1bWyJwYXRoIix7ZDoiTTE4LjYgMTQuNGMuOC0uOC44LTIgMC0yLjhsLTguMS04LjFhNC45NSA0Ljk1IDAgMSAwLTcuMSA3LjFsOC4xIDguMWMuOS43IDIuMS43IDIuOS0uMVoifV0sWyJwYXRoIix7ZDoibTIyIDIyLTUuNS01LjUifV1dLGhjdD1bWyJwYXRoIix7ZDoiTTE4IDdjMC01LjMzMy04LTUuMzMzLTggMCJ9XSxbInBhdGgiLHtkOiJNMTAgN3YxNCJ9XSxbInBhdGgiLHtkOiJNNiAyMWgxMiJ9XSxbInBhdGgiLHtkOiJNNiAxM2gxMCJ9XV0scGN0PVtbInBhdGgiLHtkOiJNMTguMzYgNi42NEE5IDkgMCAwIDEgMjAuNzcgMTUifV0sWyJwYXRoIix7ZDoiTTYuMTYgNi4xNmE5IDkgMCAxIDAgMTIuNjggMTIuNjgifV0sWyJwYXRoIix7ZDoiTTEyIDJ2NCJ9XSxbInBhdGgiLHtkOiJtMiAyIDIwIDIwIn1dXSx1Y3Q9W1sicGF0aCIse2Q6Ik0xMiAydjEwIn1dLFsicGF0aCIse2Q6Ik0xOC40IDYuNmE5IDkgMCAxIDEtMTIuNzcuMDQifV1dLGZjdD1bWyJwYXRoIix7ZDoiTTEzLjUgMjJIN2ExIDEgMCAwIDEtMS0xdi02YTEgMSAwIDAgMSAxLTFoMTBhMSAxIDAgMCAxIDEgMXYuNSJ9XSxbInBhdGgiLHtkOiJtMTYgMTkgMiAyIDQtNCJ9XSxbInBhdGgiLHtkOiJNNiAxOEg0YTIgMiAwIDAgMS0yLTJ2LTVhMiAyIDAgMCAxIDItMmgxNmEyIDIgMCAwIDEgMiAydjIifV0sWyJwYXRoIix7ZDoiTTYgOVYzYTEgMSAwIDAgMSAxLTFoMTBhMSAxIDAgMCAxIDEgMXY2In1dXSxtY3Q9W1sicGF0aCIse2Q6Ik0yIDNoMjAifV0sWyJwYXRoIix7ZDoiTTIxIDN2MTFhMiAyIDAgMCAxLTIgMkg1YTIgMiAwIDAgMS0yLTJWMyJ9XSxbInBhdGgiLHtkOiJtNyAyMSA1LTUgNSA1In1dXSxnY3Q9W1sicGF0aCIse2Q6Ik0xMi41MzEgMjJIN2ExIDEgMCAwIDEtMS0xdi02YTEgMSAwIDAgMSAxLTFoNi4zNzcifV0sWyJwYXRoIix7ZDoibTE2LjUgMTYuNSA1IDUifV0sWyJwYXRoIix7ZDoibTE2LjUgMjEuNSA1LTUifV0sWyJwYXRoIix7ZDoiTTYgMThINGEyIDIgMCAwIDEtMi0ydi01YTIgMiAwIDAgMSAyLTJoMTZhMiAyIDAgMCAxIDIgMnYxLjUifV0sWyJwYXRoIix7ZDoiTTYgOVYzYTEgMSAwIDAgMSAxLTFoMTBhMSAxIDAgMCAxIDEgMXY2In1dXSxiY3Q9W1sicGF0aCIse2Q6Ik02IDE4SDRhMiAyIDAgMCAxLTItMnYtNWEyIDIgMCAwIDEgMi0yaDE2YTIgMiAwIDAgMSAyIDJ2NWEyIDIgMCAwIDEtMiAyaC0yIn1dLFsicGF0aCIse2Q6Ik02IDlWM2ExIDEgMCAwIDEgMS0xaDEwYTEgMSAwIDAgMSAxIDF2NiJ9XSxbInJlY3QiLHt4OiI2Iix5OiIxNCIsd2lkdGg6IjEyIixoZWlnaHQ6IjgiLHJ4OiIxIn1dXSx2Y3Q9W1sicGF0aCIse2Q6Ik01IDcgMyA1In1dLFsicGF0aCIse2Q6Ik05IDZWMyJ9XSxbInBhdGgiLHtkOiJtMTMgNyAyLTIifV0sWyJjaXJjbGUiLHtjeDoiOSIsY3k6IjEzIixyOiIzIn1dLFsicGF0aCIse2Q6Ik0xMS44MyAxMkgyMGEyIDIgMCAwIDEgMiAydjRhMiAyIDAgMCAxLTIgMkg0YTIgMiAwIDAgMS0yLTJ2LTRhMiAyIDAgMCAxIDItMmgyLjE3In1dLFsicGF0aCIse2Q6Ik0xNiAxNmgyIn1dXSx5Y3Q9W1sicmVjdCIse3dpZHRoOiIyMCIsaGVpZ2h0OiIxNiIseDoiMiIseToiNCIscng6IjIifV0sWyJwYXRoIix7ZDoiTTEyIDl2MTEifV0sWyJwYXRoIix7ZDoiTTIgOWgxM2EyIDIgMCAwIDEgMiAydjkifV1dLHhjdD1bWyJwYXRoIix7ZDoiTTE1LjM5IDQuMzlhMSAxIDAgMCAwIDEuNjgtLjQ3NCAyLjUgMi41IDAgMSAxIDMuMDE0IDMuMDE1IDEgMSAwIDAgMC0uNDc0IDEuNjhsMS42ODMgMS42ODJhMi40MTQgMi40MTQgMCAwIDEgMCAzLjQxNEwxOS42MSAxNS4zOWExIDEgMCAwIDEtMS42OC0uNDc0IDIuNSAyLjUgMCAxIDAtMy4wMTQgMy4wMTUgMSAxIDAgMCAxIC40NzQgMS42OGwtMS42ODMgMS42ODJhMi40MTQgMi40MTQgMCAwIDEtMy40MTQgMEw4LjYxIDE5LjYxYTEgMSAwIDAgMC0xLjY4LjQ3NCAyLjUgMi41IDAgMSAxLTMuMDE0LTMuMDE1IDEgMSAwIDAgMCAuNDc0LTEuNjhsLTEuNjgzLTEuNjgyYTIuNDE0IDIuNDE0IDAgMCAxIDAtMy40MTRMNC4zOSA4LjYxYTEgMSAwIDAgMSAxLjY4LjQ3NCAyLjUgMi41IDAgMSAwIDMuMDE0LTMuMDE1IDEgMSAwIDAgMS0uNDc0LTEuNjhsMS42ODMtMS42ODJhMi40MTQgMi40MTQgMCAwIDEgMy40MTQgMHoifV1dLHdjdD1bWyJwYXRoIix7ZDoiTTIuNSAxNi44OGExIDEgMCAwIDEtLjMyLTEuNDNsOS0xMy4wMmExIDEgMCAwIDEgMS42NCAwbDkgMTMuMDFhMSAxIDAgMCAxLS4zMiAxLjQ0bC04LjUxIDQuODZhMiAyIDAgMCAxLTEuOTggMFoifV0sWyJwYXRoIix7ZDoiTTEyIDJ2MjAifV1dLE1jdD1bWyJyZWN0Iix7d2lkdGg6IjUiLGhlaWdodDoiNSIseDoiMyIseToiMyIscng6IjEifV0sWyJyZWN0Iix7d2lkdGg6IjUiLGhlaWdodDoiNSIseDoiMTYiLHk6IjMiLHJ4OiIxIn1dLFsicmVjdCIse3dpZHRoOiI1IixoZWlnaHQ6IjUiLHg6IjMiLHk6IjE2IixyeDoiMSJ9XSxbInBhdGgiLHtkOiJNMjEgMTZoLTNhMiAyIDAgMCAwLTIgMnYzIn1dLFsicGF0aCIse2Q6Ik0yMSAyMXYuMDEifV0sWyJwYXRoIix7ZDoiTTEyIDd2M2EyIDIgMCAwIDEtMiAySDcifV0sWyJwYXRoIix7ZDoiTTMgMTJoLjAxIn1dLFsicGF0aCIse2Q6Ik0xMiAzaC4wMSJ9XSxbInBhdGgiLHtkOiJNMTIgMTZ2LjAxIn1dLFsicGF0aCIse2Q6Ik0xNiAxMmgxIn1dLFsicGF0aCIse2Q6Ik0yMSAxMnYuMDEifV0sWyJwYXRoIix7ZDoiTTEyIDIxdi0xIn1dXSx6Y3Q9W1sicGF0aCIse2Q6Ik0xNiAzYTIgMiAwIDAgMC0yIDJ2NmEyIDIgMCAwIDAgMiAyIDEgMSAwIDAgMSAxIDF2MWEyIDIgMCAwIDEtMiAyIDEgMSAwIDAgMC0xIDF2MmExIDEgMCAwIDAgMSAxIDYgNiAwIDAgMCA2LTZWNWEyIDIgMCAwIDAtMi0yeiJ9XSxbInBhdGgiLHtkOiJNNSAzYTIgMiAwIDAgMC0yIDJ2NmEyIDIgMCAwIDAgMiAyIDEgMSAwIDAgMSAxIDF2MWEyIDIgMCAwIDEtMiAyIDEgMSAwIDAgMC0xIDF2MmExIDEgMCAwIDAgMSAxIDYgNiAwIDAgMCA2LTZWNWEyIDIgMCAwIDAtMi0yeiJ9XV0sa2N0PVtbInBhdGgiLHtkOiJNMTMgMTZhMyAzIDAgMCAxIDIuMjQgNSJ9XSxbInBhdGgiLHtkOiJNMTggMTJoLjAxIn1dLFsicGF0aCIse2Q6Ik0xOCAyMWgtOGE0IDQgMCAwIDEtNC00IDcgNyAwIDAgMSA3LTdoLjJMOS42IDYuNGExIDEgMCAxIDEgMi44LTIuOEwxNS44IDdoLjJjMy4zIDAgNiAyLjcgNiA2djFhMiAyIDAgMCAxLTIgMmgtMWEzIDMgMCAwIDAtMyAzIn1dLFsicGF0aCIse2Q6Ik0yMCA4LjU0VjRhMiAyIDAgMSAwLTQgMHYzIn1dLFsicGF0aCIse2Q6Ik03LjYxMiAxMi41MjRhMyAzIDAgMSAwLTEuNiA0LjMifV1dLFNjdD1bWyJwYXRoIix7ZDoiTTE5LjA3IDQuOTNBMTAgMTAgMCAwIDAgNi45OSAzLjM0In1dLFsicGF0aCIse2Q6Ik00IDZoLjAxIn1dLFsicGF0aCIse2Q6Ik0yLjI5IDkuNjJBMTAgMTAgMCAxIDAgMjEuMzEgOC4zNSJ9XSxbInBhdGgiLHtkOiJNMTYuMjQgNy43NkE2IDYgMCAxIDAgOC4yMyAxNi42NyJ9XSxbInBhdGgiLHtkOiJNMTIgMThoLjAxIn1dLFsicGF0aCIse2Q6Ik0xNy45OSAxMS42NkE2IDYgMCAwIDEgMTUuNzcgMTYuNjcifV0sWyJjaXJjbGUiLHtjeDoiMTIiLGN5OiIxMiIscjoiMiJ9XSxbInBhdGgiLHtkOiJtMTMuNDEgMTAuNTkgNS42Ni01LjY2In1dXSxDY3Q9W1sicGF0aCIse2Q6Ik0xMiAxMmguMDEifV0sWyJwYXRoIix7ZDoiTTE0IDE1LjQ2NDFhNCA0IDAgMCAxLTQgMEw3LjUyNzg2IDE5Ljc0NTk3IEEgMSAxIDAgMCAwIDcuOTkzMDMgMjEuMTYyMTEgMTAgMTAgMCAwIDAgMTYuMDA2OTcgMjEuMTYyMTEgMSAxIDAgMCAwIDE2LjQ3MjE0IDE5Ljc0NTk3eiJ9XSxbInBhdGgiLHtkOiJNMTYgMTJhNCA0IDAgMCAwLTItMy40NjRsMi40NzItNC4yODJhMSAxIDAgMCAxIDEuNDYtLjMwNSAxMCAxMCAwIDAgMSA0LjAwNiA2Ljk0QTEgMSAwIDAgMSAyMSAxMnoifV0sWyJwYXRoIix7ZDoiTTggMTJhNCA0IDAgMCAxIDItMy40NjRMNy41MjggNC4yNTRhMSAxIDAgMCAwLTEuNDYtLjMwNSAxMCAxMCAwIDAgMC00LjAwNiA2Ljk0QTEgMSAwIDAgMCAzIDEyeiJ9XV0sX2N0PVtbInBhdGgiLHtkOiJNMyAxMmgzLjI4YTEgMSAwIDAgMSAuOTQ4LjY4NGwyLjI5OCA3LjkzNGEuNS41IDAgMCAwIC45Ni0uMDQ0TDEzLjgyIDQuNzcxQTEgMSAwIDAgMSAxNC43OTIgNEgyMSJ9XV0sVGN0PVtbInBhdGgiLHtkOiJNNSAxNnYyIn1dLFsicGF0aCIse2Q6Ik0xOSAxNnYyIn1dLFsicmVjdCIse3dpZHRoOiIyMCIsaGVpZ2h0OiI4Iix4OiIyIix5OiI4IixyeDoiMiJ9XSxbInBhdGgiLHtkOiJNMTggMTJoLjAxIn1dXSxMY3Q9W1sicGF0aCIse2Q6Ik00LjkgMTYuMUMxIDEyLjIgMSA1LjggNC45IDEuOSJ9XSxbInBhdGgiLHtkOiJNNy44IDQuN2E2LjE0IDYuMTQgMCAwIDAtLjggNy41In1dLFsiY2lyY2xlIix7Y3g6IjEyIixjeToiOSIscjoiMiJ9XSxbInBhdGgiLHtkOiJNMTYuMiA0LjhjMiAyIDIuMjYgNS4xMS44IDcuNDcifV0sWyJwYXRoIix7ZDoiTTE5LjEgMS45YTkuOTYgOS45NiAwIDAgMSAwIDE0LjEifV0sWyJwYXRoIix7ZDoiTTkuNSAxOGg1In1dLFsicGF0aCIse2Q6Im04IDIyIDQtMTEgNCAxMSJ9XV0sJGN0PVtbInBhdGgiLHtkOiJNMTYuMjQ3IDcuNzYxYTYgNiAwIDAgMSAwIDguNDc4In1dLFsicGF0aCIse2Q6Ik0xOS4wNzUgNC45MzNhMTAgMTAgMCAwIDEgMCAxNC4xMzQifV0sWyJwYXRoIix7ZDoiTTQuOTI1IDE5LjA2N2ExMCAxMCAwIDAgMSAwLTE0LjEzNCJ9XSxbInBhdGgiLHtkOiJNNy43NTMgMTYuMjM5YTYgNiAwIDAgMSAwLTguNDc4In1dLFsiY2lyY2xlIix7Y3g6IjEyIixjeToiMTIiLHI6IjIifV1dLEFjdD1bWyJwYXRoIix7ZDoiTTIwLjM0IDE3LjUyYTEwIDEwIDAgMSAwLTIuODIgMi44MiJ9XSxbImNpcmNsZSIse2N4OiIxOSIsY3k6IjE5IixyOiIyIn1dLFsicGF0aCIse2Q6Im0xMy40MSAxMy40MSA0LjE4IDQuMTgifV0sWyJjaXJjbGUiLHtjeDoiMTIiLGN5OiIxMiIscjoiMiJ9XV0sRGN0PVtbInBhdGgiLHtkOiJNNSAxNWgxNCJ9XSxbInBhdGgiLHtkOiJNNSA5aDE0In1dLFsicGF0aCIse2Q6Im0xNCAyMC01LTUgNi02LTUtNSJ9XV0sRWN0PVtbInBhdGgiLHtkOiJNMjIgMTdhMTAgMTAgMCAwIDAtMjAgMCJ9XSxbInBhdGgiLHtkOiJNNiAxN2E2IDYgMCAwIDEgMTIgMCJ9XSxbInBhdGgiLHtkOiJNMTAgMTdhMiAyIDAgMCAxIDQgMCJ9XV0sUGN0PVtbInBhdGgiLHtkOiJNMTMgMjJINGEyIDIgMCAwIDEgMC00aDEyIn1dLFsicGF0aCIse2Q6Ik0xMy4yMzYgMThhMyAzIDAgMCAwLTIuMi01In1dLFsicGF0aCIse2Q6Ik0xNiA5aC4wMSJ9XSxbInBhdGgiLHtkOiJNMTYuODIgMy45NGEzIDMgMCAxIDEgMy4yMzcgNC44NjhsMS44MTUgMi41ODdhMS41IDEuNSAwIDAgMS0xLjUgMi4xbC0yLjg3Mi0uNDUzYTMgMyAwIDAgMC0zLjUgMyJ9XSxbInBhdGgiLHtkOiJNMTcgNC45ODhhMyAzIDAgMSAwLTUuMiAyLjA1MkE3IDcgMCAwIDAgNCAxNC4wMTUgNCA0IDAgMCAwIDggMTgifV1dLEljdD1bWyJyZWN0Iix7d2lkdGg6IjEyIixoZWlnaHQ6IjIwIix4OiI2Iix5OiIyIixyeDoiMiJ9XSxbInJlY3QiLHt3aWR0aDoiMjAiLGhlaWdodDoiMTIiLHg6IjIiLHk6IjYiLHJ4OiIyIn1dXSxOY3Q9W1sicGF0aCIse2Q6Ik00IDJ2MjBsMi0xIDIgMSAyLTEgMiAxIDItMSAyIDEgMi0xIDIgMVYybC0yIDEtMi0xLTIgMS0yLTEtMiAxLTItMS0yIDFaIn1dLFsicGF0aCIse2Q6Ik0xMiA2LjV2MTEifV0sWyJwYXRoIix7ZDoiTTE1IDkuNGE0IDQgMCAxIDAgMCA1LjIifV1dLEZjdD1bWyJwYXRoIix7ZDoiTTQgMnYyMGwyLTEgMiAxIDItMSAyIDEgMi0xIDIgMSAyLTEgMiAxVjJsLTIgMS0yLTEtMiAxLTItMS0yIDEtMi0xLTIgMVoifV0sWyJwYXRoIix7ZDoiTTggMTJoNSJ9XSxbInBhdGgiLHtkOiJNMTYgOS41YTQgNCAwIDEgMCAwIDUuMiJ9XV0sT2N0PVtbInBhdGgiLHtkOiJNNCAydjIwbDItMSAyIDEgMi0xIDIgMSAyLTEgMiAxIDItMSAyIDFWMmwtMiAxLTItMS0yIDEtMi0xLTIgMS0yLTEtMiAxWiJ9XSxbInBhdGgiLHtkOiJNOCA3aDgifV0sWyJwYXRoIix7ZDoiTTEyIDE3LjUgOCAxNWgxYTQgNCAwIDAgMCAwLTgifV0sWyJwYXRoIix7ZDoiTTggMTFoOCJ9XV0sUmN0PVtbInBhdGgiLHtkOiJNNCAydjIwbDItMSAyIDEgMi0xIDIgMSAyLTEgMiAxIDItMSAyIDFWMmwtMiAxLTItMS0yIDEtMi0xLTIgMS0yLTEtMiAxWiJ9XSxbInBhdGgiLHtkOiJtMTIgMTAgMy0zIn1dLFsicGF0aCIse2Q6Im05IDcgMyAzdjcuNSJ9XSxbInBhdGgiLHtkOiJNOSAxMWg2In1dLFsicGF0aCIse2Q6Ik05IDE1aDYifV1dLEJjdD1bWyJwYXRoIix7ZDoiTTQgMnYyMGwyLTEgMiAxIDItMSAyIDEgMi0xIDIgMSAyLTEgMiAxVjJsLTIgMS0yLTEtMiAxLTItMS0yIDEtMi0xLTIgMVoifV0sWyJwYXRoIix7ZDoiTTggMTNoNSJ9XSxbInBhdGgiLHtkOiJNMTAgMTdWOS41YTIuNSAyLjUgMCAwIDEgNSAwIn1dLFsicGF0aCIse2Q6Ik04IDE3aDcifV1dLEhjdD1bWyJwYXRoIix7ZDoiTTQgMnYyMGwyLTEgMiAxIDItMSAyIDEgMi0xIDIgMSAyLTEgMiAxVjJsLTIgMS0yLTEtMiAxLTItMS0yIDEtMi0xLTIgMVoifV0sWyJwYXRoIix7ZDoiTTggMTVoNSJ9XSxbInBhdGgiLHtkOiJNOCAxMWg1YTIgMiAwIDEgMCAwLTRoLTN2MTAifV1dLHFjdD1bWyJwYXRoIix7ZDoiTTQgMnYyMGwyLTEgMiAxIDItMSAyIDEgMi0xIDIgMSAyLTEgMiAxVjJsLTIgMS0yLTEtMiAxLTItMS0yIDEtMi0xLTIgMVoifV0sWyJwYXRoIix7ZDoiTTEwIDE3VjdoNSJ9XSxbInBhdGgiLHtkOiJNMTAgMTFoNCJ9XSxbInBhdGgiLHtkOiJNOCAxNWg1In1dXSxWY3Q9W1sicGF0aCIse2Q6Ik0xMyAxNkg4In1dLFsicGF0aCIse2Q6Ik0xNCA4SDgifV0sWyJwYXRoIix7ZDoiTTE2IDEySDgifV0sWyJwYXRoIix7ZDoiTTQgM2ExIDEgMCAwIDEgMS0xIDEuMyAxLjMgMCAwIDEgLjcuMmwuOTMzLjZhMS4zIDEuMyAwIDAgMCAxLjQgMGwuOTM0LS42YTEuMyAxLjMgMCAwIDEgMS40IDBsLjkzMy42YTEuMyAxLjMgMCAwIDAgMS40IDBsLjkzMy0uNmExLjMgMS4zIDAgMCAxIDEuNCAwbC45MzQuNmExLjMgMS4zIDAgMCAwIDEuNCAwbC45MzMtLjZBMS4zIDEuMyAwIDAgMSAxOSAyYTEgMSAwIDAgMSAxIDF2MThhMSAxIDAgMCAxLTEgMSAxLjMgMS4zIDAgMCAxLS43LS4ybC0uOTMzLS42YTEuMyAxLjMgMCAwIDAtMS40IDBsLS45MzQuNmExLjMgMS4zIDAgMCAxLTEuNCAwbC0uOTMzLS42YTEuMyAxLjMgMCAwIDAtMS40IDBsLS45MzMuNmExLjMgMS4zIDAgMCAxLTEuNCAwbC0uOTM0LS42YTEuMyAxLjMgMCAwIDAtMS40IDBsLS45MzMuNmExLjMgMS4zIDAgMCAxLS43LjIgMSAxIDAgMCAxLTEtMXoifV1dLGpjdD1bWyJwYXRoIix7ZDoiTTEwIDYuNXYxMWE1LjUgNS41IDAgMCAwIDUuNS01LjUifV0sWyJwYXRoIix7ZDoibTE0IDgtNiAzIn1dLFsicGF0aCIse2Q6Ik00IDJ2MjBsMi0xIDIgMSAyLTEgMiAxIDItMSAyIDEgMi0xIDIgMVYybC0yIDEtMi0xLTIgMS0yLTEtMiAxLTItMS0yIDF6In1dXSxVY3Q9W1sicGF0aCIse2Q6Ik00IDJ2MjBsMi0xIDIgMSAyLTEgMiAxIDItMSAyIDEgMi0xIDIgMVYybC0yIDEtMi0xLTIgMS0yLTEtMiAxLTItMS0yIDFaIn1dLFsicGF0aCIse2Q6Ik0xNiA4aC02YTIgMiAwIDEgMCAwIDRoNGEyIDIgMCAxIDEgMCA0SDgifV0sWyJwYXRoIix7ZDoiTTEyIDE3LjV2LTExIn1dXSxXY3Q9W1sicGF0aCIse2Q6Ik0xNCA0djE2SDNhMSAxIDAgMCAxLTEtMVY1YTEgMSAwIDAgMSAxLTF6In1dLFsiY2lyY2xlIix7Y3g6IjE0IixjeToiMTIiLHI6IjgifV1dLFV2PVtbInJlY3QiLHt3aWR0aDoiMjAiLGhlaWdodDoiMTIiLHg6IjIiLHk6IjYiLHJ4OiIyIn1dLFsicGF0aCIse2Q6Ik0xMiAxMmguMDEifV0sWyJwYXRoIix7ZDoiTTE3IDEyaC4wMSJ9XSxbInBhdGgiLHtkOiJNNyAxMmguMDEifV1dLEdjdD1bWyJyZWN0Iix7d2lkdGg6IjIwIixoZWlnaHQ6IjEyIix4OiIyIix5OiI2IixyeDoiMiJ9XV0sWWN0PVtbInBhdGgiLHtkOiJNMjAgNmEyIDIgMCAwIDEgMiAydjhhMiAyIDAgMCAxLTIgMmgtNGEyIDIgMCAwIDEtMS42LS44bC0xLjYtMi4xM2ExIDEgMCAwIDAtMS42IDBMOS42IDE3LjJBMiAyIDAgMCAxIDggMThINGEyIDIgMCAwIDEtMi0yVjhhMiAyIDAgMCAxIDItMnoifV1dLFpjdD1bWyJyZWN0Iix7d2lkdGg6IjEyIixoZWlnaHQ6IjIwIix4OiI2Iix5OiIyIixyeDoiMiJ9XV0sWGN0PVtbInBhdGgiLHtkOiJNNyAxOUg0LjgxNWExLjgzIDEuODMgMCAwIDEtMS41Ny0uODgxIDEuNzg1IDEuNzg1IDAgMCAxLS4wMDQtMS43ODRMNy4xOTYgOS41In1dLFsicGF0aCIse2Q6Ik0xMSAxOWg4LjIwM2ExLjgzIDEuODMgMCAwIDAgMS41NTYtLjg5IDEuNzg0IDEuNzg0IDAgMCAwIDAtMS43NzVsLTEuMjI2LTIuMTIifV0sWyJwYXRoIix7ZDoibTE0IDE2LTMgMyAzIDMifV0sWyJwYXRoIix7ZDoiTTguMjkzIDEzLjU5NiA3LjE5NiA5LjUgMy4xIDEwLjU5OCJ9XSxbInBhdGgiLHtkOiJtOS4zNDQgNS44MTEgMS4wOTMtMS44OTJBMS44MyAxLjgzIDAgMCAxIDExLjk4NSAzYTEuNzg0IDEuNzg0IDAgMCAxIDEuNTQ2Ljg4OGwzLjk0MyA2Ljg0MyJ9XSxbInBhdGgiLHtkOiJtMTMuMzc4IDkuNjMzIDQuMDk2IDEuMDk4IDEuMDk3LTQuMDk2In1dXSxLY3Q9W1siY2lyY2xlIix7Y3g6IjEyIixjeToiMTciLHI6IjEifV0sWyJwYXRoIix7ZDoiTTIxIDd2NmgtNiJ9XSxbInBhdGgiLHtkOiJNMyAxN2E5IDkgMCAwIDEgOS05IDkgOSAwIDAgMSA2IDIuM2wzIDIuNyJ9XV0sUWN0PVtbInBhdGgiLHtkOiJtMTUgMTQgNS01LTUtNSJ9XSxbInBhdGgiLHtkOiJNMjAgOUg5LjVBNS41IDUuNSAwIDAgMCA0IDE0LjVBNS41IDUuNSAwIDAgMCA5LjUgMjBIMTMifV1dLEpjdD1bWyJwYXRoIix7ZDoiTTIxIDd2NmgtNiJ9XSxbInBhdGgiLHtkOiJNMyAxN2E5IDkgMCAwIDEgOS05IDkgOSAwIDAgMSA2IDIuM2wzIDIuNyJ9XV0sZTZ0PVtbInBhdGgiLHtkOiJNMjEgMTJhOSA5IDAgMCAwLTktOSA5Ljc1IDkuNzUgMCAwIDAtNi43NCAyLjc0TDMgOCJ9XSxbInBhdGgiLHtkOiJNMyAzdjVoNSJ9XSxbInBhdGgiLHtkOiJNMyAxMmE5IDkgMCAwIDAgOSA5IDkuNzUgOS43NSAwIDAgMCA2Ljc0LTIuNzRMMjEgMTYifV0sWyJwYXRoIix7ZDoiTTE2IDE2aDV2NSJ9XSxbImNpcmNsZSIse2N4OiIxMiIsY3k6IjEyIixyOiIxIn1dXSx0NnQ9W1sicGF0aCIse2Q6Ik0yMSAxMmE5IDkgMCAwIDAtOS05IDkuNzUgOS43NSAwIDAgMC02Ljc0IDIuNzRMMyA4In1dLFsicGF0aCIse2Q6Ik0zIDN2NWg1In1dLFsicGF0aCIse2Q6Ik0zIDEyYTkgOSAwIDAgMCA5IDkgOS43NSA5Ljc1IDAgMCAwIDYuNzQtMi43NEwyMSAxNiJ9XSxbInBhdGgiLHtkOiJNMTYgMTZoNXY1In1dXSxhNnQ9W1sicGF0aCIse2Q6Ik0yMSA4TDE4Ljc0IDUuNzRBOS43NSA5Ljc1IDAgMCAwIDEyIDNDMTEgMyAxMC4wMyAzLjE2IDkuMTMgMy40NyJ9XSxbInBhdGgiLHtkOiJNOCAxNkgzdjUifV0sWyJwYXRoIix7ZDoiTTMgMTJDMyA5LjUxIDQgNy4yNiA1LjY0IDUuNjQifV0sWyJwYXRoIix7ZDoibTMgMTYgMi4yNiAyLjI2QTkuNzUgOS43NSAwIDAgMCAxMiAyMWMyLjQ5IDAgNC43NC0xIDYuMzYtMi42NCJ9XSxbInBhdGgiLHtkOiJNMjEgMTJjMCAxLS4xNiAxLjk3LS40NyAyLjg3In1dLFsicGF0aCIse2Q6Ik0yMSAzdjVoLTUifV0sWyJwYXRoIix7ZDoiTTIyIDIyIDIgMiJ9XV0saTZ0PVtbInBhdGgiLHtkOiJNMyAxMmE5IDkgMCAwIDEgOS05IDkuNzUgOS43NSAwIDAgMSA2Ljc0IDIuNzRMMjEgOCJ9XSxbInBhdGgiLHtkOiJNMjEgM3Y1aC01In1dLFsicGF0aCIse2Q6Ik0yMSAxMmE5IDkgMCAwIDEtOSA5IDkuNzUgOS43NSAwIDAgMS02Ljc0LTIuNzRMMyAxNiJ9XSxbInBhdGgiLHtkOiJNOCAxNkgzdjUifV1dLHI2dD1bWyJwYXRoIix7ZDoiTTUgNmE0IDQgMCAwIDEgNC00aDZhNCA0IDAgMCAxIDQgNHYxNGEyIDIgMCAwIDEtMiAySDdhMiAyIDAgMCAxLTItMlY2WiJ9XSxbInBhdGgiLHtkOiJNNSAxMGgxNCJ9XSxbInBhdGgiLHtkOiJNMTUgN3Y2In1dXSxzNnQ9W1sicGF0aCIse2Q6Ik0xNyAzdjEwIn1dLFsicGF0aCIse2Q6Im0xMi42NyA1LjUgOC42NiA1In1dLFsicGF0aCIse2Q6Im0xMi42NyAxMC41IDguNjYtNSJ9XSxbInBhdGgiLHtkOiJNOSAxN2EyIDIgMCAwIDAtMi0ySDVhMiAyIDAgMCAwLTIgMnYyYTIgMiAwIDAgMCAyIDJoMmEyIDIgMCAwIDAgMi0ydi0yeiJ9XV0sbjZ0PVtbInBhdGgiLHtkOiJNNCA3VjRoMTZ2MyJ9XSxbInBhdGgiLHtkOiJNNSAyMGg2In1dLFsicGF0aCIse2Q6Ik0xMyA0IDggMjAifV0sWyJwYXRoIix7ZDoibTE1IDE1IDUgNSJ9XSxbInBhdGgiLHtkOiJtMjAgMTUtNSA1In1dXSxvNnQ9W1sicGF0aCIse2Q6Im0yIDkgMy0zIDMgMyJ9XSxbInBhdGgiLHtkOiJNMTMgMThIN2EyIDIgMCAwIDEtMi0yVjYifV0sWyJwYXRoIix7ZDoibTIyIDE1LTMgMy0zLTMifV0sWyJwYXRoIix7ZDoiTTExIDZoNmEyIDIgMCAwIDEgMiAydjEwIn1dXSxsNnQ9W1sicGF0aCIse2Q6Im0xNyAyIDQgNC00IDQifV0sWyJwYXRoIix7ZDoiTTMgMTF2LTFhNCA0IDAgMCAxIDQtNGgxNCJ9XSxbInBhdGgiLHtkOiJtNyAyMi00LTQgNC00In1dLFsicGF0aCIse2Q6Ik0yMSAxM3YxYTQgNCAwIDAgMS00IDRIMyJ9XSxbInBhdGgiLHtkOiJNMTEgMTBoMXY0In1dXSxjNnQ9W1sicGF0aCIse2Q6Im0xNyAyIDQgNC00IDQifV0sWyJwYXRoIix7ZDoiTTMgMTF2LTFhNCA0IDAgMCAxIDQtNGgxNCJ9XSxbInBhdGgiLHtkOiJtNyAyMi00LTQgNC00In1dLFsicGF0aCIse2Q6Ik0yMSAxM3YxYTQgNCAwIDAgMS00IDRIMyJ9XV0sZDZ0PVtbInBhdGgiLHtkOiJNMTQgMTRhMSAxIDAgMCAxIDEgMXY1YTEgMSAwIDAgMS0xIDEifV0sWyJwYXRoIix7ZDoiTTE0IDRhMSAxIDAgMCAxIDEtMSJ9XSxbInBhdGgiLHtkOiJNMTUgMTBhMSAxIDAgMCAxLTEtMSJ9XSxbInBhdGgiLHtkOiJNMTkgMTRhMSAxIDAgMCAxIDEgMXY1YTEgMSAwIDAgMS0xIDEifV0sWyJwYXRoIix7ZDoiTTIxIDRhMSAxIDAgMCAwLTEtMSJ9XSxbInBhdGgiLHtkOiJNMjEgOWExIDEgMCAwIDEtMSAxIn1dLFsicGF0aCIse2Q6Im0zIDcgMyAzIDMtMyJ9XSxbInBhdGgiLHtkOiJNNiAxMFY1YTIgMiAwIDAgMSAyLTJoMiJ9XSxbInJlY3QiLHt4OiIzIix5OiIxNCIsd2lkdGg6IjciLGhlaWdodDoiNyIscng6IjEifV1dLGg2dD1bWyJwYXRoIix7ZDoiTTE0IDRhMSAxIDAgMCAxIDEtMSJ9XSxbInBhdGgiLHtkOiJNMTUgMTBhMSAxIDAgMCAxLTEtMSJ9XSxbInBhdGgiLHtkOiJNMjEgNGExIDEgMCAwIDAtMS0xIn1dLFsicGF0aCIse2Q6Ik0yMSA5YTEgMSAwIDAgMS0xIDEifV0sWyJwYXRoIix7ZDoibTMgNyAzIDMgMy0zIn1dLFsicGF0aCIse2Q6Ik02IDEwVjVhMiAyIDAgMCAxIDItMmgyIn1dLFsicmVjdCIse3g6IjMiLHk6IjE0Iix3aWR0aDoiNyIsaGVpZ2h0OiI3IixyeDoiMSJ9XV0scDZ0PVtbInBhdGgiLHtkOiJtMTIgMTctNS01IDUtNSJ9XSxbInBhdGgiLHtkOiJNMjIgMTh2LTJhNCA0IDAgMCAwLTQtNEg3In1dLFsicGF0aCIse2Q6Im03IDE3LTUtNSA1LTUifV1dLHU2dD1bWyJwYXRoIix7ZDoiTTIwIDE4di0yYTQgNCAwIDAgMC00LTRINCJ9XSxbInBhdGgiLHtkOiJtOSAxNy01LTUgNS01In1dXSxmNnQ9W1sicGF0aCIse2Q6Ik0xMiA2YTIgMiAwIDAgMC0zLjQxNC0xLjQxNGwtNiA2YTIgMiAwIDAgMCAwIDIuODI4bDYgNkEyIDIgMCAwIDAgMTIgMTh6In1dLFsicGF0aCIse2Q6Ik0yMiA2YTIgMiAwIDAgMC0zLjQxNC0xLjQxNGwtNiA2YTIgMiAwIDAgMCAwIDIuODI4bDYgNkEyIDIgMCAwIDAgMjIgMTh6In1dXSxtNnQ9W1sicGF0aCIse2Q6Ik0xMiAxMS4yMkMxMSA5Ljk5NyAxMCA5IDEwIDhhMiAyIDAgMCAxIDQgMGMwIDEtLjk5OCAyLjAwMi0yLjAxIDMuMjIifV0sWyJwYXRoIix7ZDoibTEyIDE4IDIuNTctMy41In1dLFsicGF0aCIse2Q6Ik02LjI0MyA5LjAxNmE3IDcgMCAwIDEgMTEuNTA3LS4wMDkifV0sWyJwYXRoIix7ZDoiTTkuMzUgMTQuNTMgMTIgMTEuMjIifV0sWyJwYXRoIix7ZDoiTTkuMzUgMTQuNTNDNy43MjggMTIuMjQ2IDYgMTAuMjIxIDYgN2E2IDUgMCAwIDEgMTIgMGMtLjAwNSAzLjIyLTEuNzc4IDUuMjM1LTMuNDMgNy41bDMuNTU3IDQuNTI3YTEgMSAwIDAgMS0uMjAzIDEuNDNsLTEuODk0IDEuMzZhMSAxIDAgMCAxLTEuMzg0LS4yMTVMMTIgMThsLTIuNjc5IDMuNTkzYTEgMSAwIDAgMS0xLjM5LjIxM2wtMS44NjUtMS4zNTNhMSAxIDAgMCAxLS4yMDMtMS40MjJ6In1dXSxnNnQ9W1sicGF0aCIse2Q6Ik00LjUgMTYuNWMtMS41IDEuMjYtMiA1LTIgNXMzLjc0LS41IDUtMmMuNzEtLjg0LjctMi4xMy0uMDktMi45MWEyLjE4IDIuMTggMCAwIDAtMi45MS0uMDl6In1dLFsicGF0aCIse2Q6Im0xMiAxNS0zLTNhMjIgMjIgMCAwIDEgMi0zLjk1QTEyLjg4IDEyLjg4IDAgMCAxIDIyIDJjMCAyLjcyLS43OCA3LjUtNiAxMWEyMi4zNSAyMi4zNSAwIDAgMS00IDJ6In1dLFsicGF0aCIse2Q6Ik05IDEySDRzLjU1LTMuMDMgMi00YzEuNjItMS4wOCA1IDAgNSAwIn1dLFsicGF0aCIse2Q6Ik0xMiAxNXY1czMuMDMtLjU1IDQtMmMxLjA4LTEuNjIgMC01IDAtNSJ9XV0sYjZ0PVtbInBvbHlsaW5lIix7cG9pbnRzOiIzLjUgMiA2LjUgMTIuNSAxOCAxMi41In1dLFsibGluZSIse3gxOiI5LjUiLHgyOiI1LjUiLHkxOiIxMi41Iix5MjoiMjAifV0sWyJsaW5lIix7eDE6IjE1Iix4MjoiMTguNSIseTE6IjEyLjUiLHkyOiIyMCJ9XSxbInBhdGgiLHtkOiJNMi43NSAxOGExMyAxMyAwIDAgMCAxOC41IDAifV1dLHY2dD1bWyJwYXRoIix7ZDoiTTYgMTlWNSJ9XSxbInBhdGgiLHtkOiJNMTAgMTlWNi44In1dLFsicGF0aCIse2Q6Ik0xNCAxOXYtNy44In1dLFsicGF0aCIse2Q6Ik0xOCA1djQifV0sWyJwYXRoIix7ZDoiTTE4IDE5di02In1dLFsicGF0aCIse2Q6Ik0yMiAxOVY5In1dLFsicGF0aCIse2Q6Ik0yIDE5VjlhNCA0IDAgMCAxIDQtNGMyIDAgNCAxLjMzIDYgNHM0IDQgNiA0YTQgNCAwIDEgMC0zLTYuNjUifV1dLHk2dD1bWyJwYXRoIix7ZDoiTTE3IDEwaC0xYTQgNCAwIDEgMSA0LTR2LjUzNCJ9XSxbInBhdGgiLHtkOiJNMTcgNmgxYTQgNCAwIDAgMSAxLjQyIDcuNzRsLTIuMjkuODdhNiA2IDAgMCAxLTUuMzM5LTEwLjY4bDIuMDY5LTEuMzEifV0sWyJwYXRoIix7ZDoiTTQuNSAxN2MyLjgtLjUgNC40IDAgNS41LjhzMS44IDIuMiAyLjMgMy43Yy0yIC40LTMuNS40LTQuOC0uMy0xLjItLjYtMi4zLTEuOS0zLTQuMiJ9XSxbInBhdGgiLHtkOiJNOS43NyAxMkM0IDE1IDIgMjIgMiAyMiJ9XSxbImNpcmNsZSIse2N4OiIxNyIsY3k6IjgiLHI6IjIifV1dLFd2PVtbInBhdGgiLHtkOiJNMTYuNDY2IDcuNUMxNS42NDMgNC4yMzcgMTMuOTUyIDIgMTIgMiA5LjIzOSAyIDcgNi40NzcgNyAxMnMyLjIzOSAxMCA1IDEwYy4zNDIgMCAuNjc3LS4wNjkgMS0uMiJ9XSxbInBhdGgiLHtkOiJtMTUuMTk0IDEzLjcwNyAzLjgxNCAxLjg2LTEuODYgMy44MTQifV0sWyJwYXRoIix7ZDoiTTE5IDE1LjU3Yy0xLjgwNC44ODUtNC4yNzQgMS40My03IDEuNDMtNS41MjMgMC0xMC0yLjIzOS0xMC01czQuNDc3LTUgMTAtNWM0LjgzOCAwIDguODczIDEuNzE4IDkuOCA0In1dXSx4NnQ9W1sicGF0aCIse2Q6Ik0xMiA3djYifV0sWyJwYXRoIix7ZDoiTTEyIDloMiJ9XSxbInBhdGgiLHtkOiJNMyAxMmE5IDkgMCAxIDAgOS05IDkuNzQgOS43NCAwIDAgMC02Ljc0IDIuNzRMMyA4In1dLFsicGF0aCIse2Q6Ik0zIDN2NWg1In1dLFsiY2lyY2xlIix7Y3g6IjEyIixjeToiMTUiLHI6IjIifV1dLHc2dD1bWyJwYXRoIix7ZDoiTTIwIDlWN2EyIDIgMCAwIDAtMi0yaC02In1dLFsicGF0aCIse2Q6Im0xNSAyLTMgMyAzIDMifV0sWyJwYXRoIix7ZDoiTTIwIDEzdjVhMiAyIDAgMCAxLTIgMkg2YTIgMiAwIDAgMS0yLTJWN2EyIDIgMCAwIDEgMi0yaDIifV1dLE02dD1bWyJwYXRoIix7ZDoiTTMgMTJhOSA5IDAgMSAwIDktOSA5Ljc1IDkuNzUgMCAwIDAtNi43NCAyLjc0TDMgOCJ9XSxbInBhdGgiLHtkOiJNMyAzdjVoNSJ9XV0sejZ0PVtbInBhdGgiLHtkOiJNMTIgNUg2YTIgMiAwIDAgMC0yIDJ2MyJ9XSxbInBhdGgiLHtkOiJtOSA4IDMtMy0zLTMifV0sWyJwYXRoIix7ZDoiTTQgMTR2NGEyIDIgMCAwIDAgMiAyaDEyYTIgMiAwIDAgMCAyLTJWN2EyIDIgMCAwIDAtMi0yaC0yIn1dXSxrNnQ9W1sicGF0aCIse2Q6Ik0yMSAxMmE5IDkgMCAxIDEtOS05YzIuNTIgMCA0LjkzIDEgNi43NCAyLjc0TDIxIDgifV0sWyJwYXRoIix7ZDoiTTIxIDN2NWgtNSJ9XV0sUzZ0PVtbImNpcmNsZSIse2N4OiI2IixjeToiMTkiLHI6IjMifV0sWyJwYXRoIix7ZDoiTTkgMTloOC41Yy40IDAgLjktLjEgMS4zLS4yIn1dLFsicGF0aCIse2Q6Ik01LjIgNS4yQTMuNSAzLjUzIDAgMCAwIDYuNSAxMkgxMiJ9XSxbInBhdGgiLHtkOiJtMiAyIDIwIDIwIn1dLFsicGF0aCIse2Q6Ik0yMSAxNS4zYTMuNSAzLjUgMCAwIDAtMy4zLTMuMyJ9XSxbInBhdGgiLHtkOiJNMTUgNWgtNC4zIn1dLFsiY2lyY2xlIix7Y3g6IjE4IixjeToiNSIscjoiMyJ9XV0sQzZ0PVtbImNpcmNsZSIse2N4OiI2IixjeToiMTkiLHI6IjMifV0sWyJwYXRoIix7ZDoiTTkgMTloOC41YTMuNSAzLjUgMCAwIDAgMC03aC0xMWEzLjUgMy41IDAgMCAxIDAtN0gxNSJ9XSxbImNpcmNsZSIse2N4OiIxOCIsY3k6IjUiLHI6IjMifV1dLF82dD1bWyJyZWN0Iix7d2lkdGg6IjIwIixoZWlnaHQ6IjgiLHg6IjIiLHk6IjE0IixyeDoiMiJ9XSxbInBhdGgiLHtkOiJNNi4wMSAxOEg2In1dLFsicGF0aCIse2Q6Ik0xMC4wMSAxOEgxMCJ9XSxbInBhdGgiLHtkOiJNMTUgMTB2NCJ9XSxbInBhdGgiLHtkOiJNMTcuODQgNy4xN2E0IDQgMCAwIDAtNS42NiAwIn1dLFsicGF0aCIse2Q6Ik0yMC42NiA0LjM0YTggOCAwIDAgMC0xMS4zMSAwIn1dXSxHdj1bWyJyZWN0Iix7d2lkdGg6IjE4IixoZWlnaHQ6IjE4Iix4OiIzIix5OiIzIixyeDoiMiJ9XSxbInBhdGgiLHtkOiJNMyAxMmgxOCJ9XV0sWXY9W1sicmVjdCIse3dpZHRoOiIxOCIsaGVpZ2h0OiIxOCIseDoiMyIseToiMyIscng6IjIifV0sWyJwYXRoIix7ZDoiTTIxIDlIMyJ9XSxbInBhdGgiLHtkOiJNMjEgMTVIMyJ9XV0sVDZ0PVtbInJlY3QiLHt3aWR0aDoiMTgiLGhlaWdodDoiMTgiLHg6IjMiLHk6IjMiLHJ4OiIyIn1dLFsicGF0aCIse2Q6Ik0yMSA3LjVIMyJ9XSxbInBhdGgiLHtkOiJNMjEgMTJIMyJ9XSxbInBhdGgiLHtkOiJNMjEgMTYuNUgzIn1dXSxMNnQ9W1sicGF0aCIse2Q6Ik00IDExYTkgOSAwIDAgMSA5IDkifV0sWyJwYXRoIix7ZDoiTTQgNGExNiAxNiAwIDAgMSAxNiAxNiJ9XSxbImNpcmNsZSIse2N4OiI1IixjeToiMTkiLHI6IjEifV1dLCQ2dD1bWyJwYXRoIix7ZDoiTTEwIDE1di0zIn1dLFsicGF0aCIse2Q6Ik0xNCAxNXYtMyJ9XSxbInBhdGgiLHtkOiJNMTggMTV2LTMifV0sWyJwYXRoIix7ZDoiTTIgOFY0In1dLFsicGF0aCIse2Q6Ik0yMiA2SDIifV0sWyJwYXRoIix7ZDoiTTIyIDhWNCJ9XSxbInBhdGgiLHtkOiJNNiAxNXYtMyJ9XSxbInJlY3QiLHt4OiIyIix5OiIxMiIsd2lkdGg6IjIwIixoZWlnaHQ6IjgiLHJ4OiIyIn1dXSxBNnQ9W1sicGF0aCIse2Q6Ik02IDExaDhhNCA0IDAgMCAwIDAtOEg5djE4In1dLFsicGF0aCIse2Q6Ik02IDE1aDgifV1dLEQ2dD1bWyJwYXRoIix7ZDoiTTIxLjMgMTUuM2EyLjQgMi40IDAgMCAxIDAgMy40bC0yLjYgMi42YTIuNCAyLjQgMCAwIDEtMy40IDBMMi43IDguN2EyLjQxIDIuNDEgMCAwIDEgMC0zLjRsMi42LTIuNmEyLjQxIDIuNDEgMCAwIDEgMy40IDBaIn1dLFsicGF0aCIse2Q6Im0xNC41IDEyLjUgMi0yIn1dLFsicGF0aCIse2Q6Im0xMS41IDkuNSAyLTIifV0sWyJwYXRoIix7ZDoibTguNSA2LjUgMi0yIn1dLFsicGF0aCIse2Q6Im0xNy41IDE1LjUgMi0yIn1dXSxFNnQ9W1sicGF0aCIse2Q6Ik03IDIxaDEwIn1dLFsicGF0aCIse2Q6Ik0xMiAyMWE5IDkgMCAwIDAgOS05SDNhOSA5IDAgMCAwIDkgOVoifV0sWyJwYXRoIix7ZDoiTTExLjM4IDEyYTIuNCAyLjQgMCAwIDEtLjQtNC43NyAyLjQgMi40IDAgMCAxIDMuMi0yLjc3IDIuNCAyLjQgMCAwIDEgMy40Ny0uNjMgMi40IDIuNCAwIDAgMSAzLjM3IDMuMzcgMi40IDIuNCAwIDAgMS0xLjEgMy43IDIuNTEgMi41MSAwIDAgMSAuMDMgMS4xIn1dLFsicGF0aCIse2Q6Im0xMyAxMiA0LTQifV0sWyJwYXRoIix7ZDoiTTEwLjkgNy4yNUEzLjk5IDMuOTkgMCAwIDAgNCAxMGMwIC43My4yIDEuNDEuNTQgMiJ9XV0sUDZ0PVtbInBhdGgiLHtkOiJNMTAgMnYxNSJ9XSxbInBhdGgiLHtkOiJNNyAyMmE0IDQgMCAwIDEtNC00IDEgMSAwIDAgMSAxLTFoMTZhMSAxIDAgMCAxIDEgMSA0IDQgMCAwIDEtNCA0eiJ9XSxbInBhdGgiLHtkOiJNOS4xNTkgMi40NmExIDEgMCAwIDEgMS41MjEtLjE5M2w5Ljk3NyA4Ljk4QTEgMSAwIDAgMSAyMCAxM0g0YTEgMSAwIDAgMS0uODI0LTEuNTY3eiJ9XV0sSTZ0PVtbInBhdGgiLHtkOiJtMi4zNyAxMS4yMjMgOC4zNzItNi43NzdhMiAyIDAgMCAxIDIuNTE2IDBsOC4zNzEgNi43NzcifV0sWyJwYXRoIix7ZDoiTTIxIDE1YTEgMSAwIDAgMSAxIDF2MmExIDEgMCAwIDEtMSAxaC01LjI1In1dLFsicGF0aCIse2Q6Ik0zIDE1YTEgMSAwIDAgMC0xIDF2MmExIDEgMCAwIDAgMSAxaDkifV0sWyJwYXRoIix7ZDoibTYuNjcgMTUgNi4xMyA0LjZhMiAyIDAgMCAwIDIuOC0uNGwzLjE1LTQuMiJ9XSxbInJlY3QiLHt3aWR0aDoiMjAiLGhlaWdodDoiNCIseDoiMiIseToiMTEiLHJ4OiIxIn1dXSxONnQ9W1sicGF0aCIse2Q6Ik00IDEwYTcuMzEgNy4zMSAwIDAgMCAxMCAxMFoifV0sWyJwYXRoIix7ZDoibTkgMTUgMy0zIn1dLFsicGF0aCIse2Q6Ik0xNyAxM2E2IDYgMCAwIDAtNi02In1dLFsicGF0aCIse2Q6Ik0yMSAxM0ExMCAxMCAwIDAgMCAxMSAzIn1dXSxGNnQ9W1sicGF0aCIse2Q6Im0xMy41IDYuNS0zLjE0OC0zLjE0OGExLjIwNSAxLjIwNSAwIDAgMC0xLjcwNCAwTDYuMzUyIDUuNjQ4YTEuMjA1IDEuMjA1IDAgMCAwIDAgMS43MDRMOS41IDEwLjUifV0sWyJwYXRoIix7ZDoiTTE2LjUgNy41IDE5IDUifV0sWyJwYXRoIix7ZDoibTE3LjUgMTAuNSAzLjE0OCAzLjE0OGExLjIwNSAxLjIwNSAwIDAgMSAwIDEuNzA0bC0yLjI5NiAyLjI5NmExLjIwNSAxLjIwNSAwIDAgMS0xLjcwNCAwTDEzLjUgMTQuNSJ9XSxbInBhdGgiLHtkOiJNOSAyMWE2IDYgMCAwIDAtNi02In1dLFsicGF0aCIse2Q6Ik05LjM1MiAxMC42NDhhMS4yMDUgMS4yMDUgMCAwIDAgMCAxLjcwNGwyLjI5NiAyLjI5NmExLjIwNSAxLjIwNSAwIDAgMCAxLjcwNCAwbDQuMjk2LTQuMjk2YTEuMjA1IDEuMjA1IDAgMCAwIDAtMS43MDRsLTIuMjk2LTIuMjk2YTEuMjA1IDEuMjA1IDAgMCAwLTEuNzA0IDB6In1dXSxPNnQ9W1sicGF0aCIse2Q6Im0yMCAxOS41LTUuNSAxLjIifV0sWyJwYXRoIix7ZDoiTTE0LjUgNHYxMS4yMmExIDEgMCAwIDAgMS4yNDIuOTdMMjAgMTUuMiJ9XSxbInBhdGgiLHtkOiJtMi45NzggMTkuMzUxIDUuNTQ5LTEuMzYzQTIgMiAwIDAgMCAxMCAxNlYyIn1dLFsicGF0aCIse2Q6Ik0yMCAxMCA0IDEzLjUifV1dLFI2dD1bWyJwYXRoIix7ZDoiTTEwIDJ2M2ExIDEgMCAwIDAgMSAxaDUifV0sWyJwYXRoIix7ZDoiTTE4IDE4di02YTEgMSAwIDAgMC0xLTFoLTZhMSAxIDAgMCAwLTEgMXY2In1dLFsicGF0aCIse2Q6Ik0xOCAyMkg0YTIgMiAwIDAgMS0yLTJWNiJ9XSxbInBhdGgiLHtkOiJNOCAxOGEyIDIgMCAwIDEtMi0yVjRhMiAyIDAgMCAxIDItMmg5LjE3MmEyIDIgMCAwIDEgMS40MTQuNTg2bDIuODI4IDIuODI4QTIgMiAwIDAgMSAyMiA2LjgyOFYxNmEyIDIgMCAwIDEtMi4wMSAyeiJ9XV0sQjZ0PVtbInBhdGgiLHtkOiJNMTMgMTNIOGExIDEgMCAwIDAtMSAxdjcifV0sWyJwYXRoIix7ZDoiTTE0IDhoMSJ9XSxbInBhdGgiLHtkOiJNMTcgMjF2LTQifV0sWyJwYXRoIix7ZDoibTIgMiAyMCAyMCJ9XSxbInBhdGgiLHtkOiJNMjAuNDEgMjAuNDFBMiAyIDAgMCAxIDE5IDIxSDVhMiAyIDAgMCAxLTItMlY1YTIgMiAwIDAgMSAuNTktMS40MSJ9XSxbInBhdGgiLHtkOiJNMjkuNSAxMS41czUgNSA0IDUifV0sWyJwYXRoIix7ZDoiTTkgM2g2LjJhMiAyIDAgMCAxIDEuNC42bDMuOCAzLjhhMiAyIDAgMCAxIC42IDEuNFYxNSJ9XV0sSDZ0PVtbInBhdGgiLHtkOiJNMTUuMiAzYTIgMiAwIDAgMSAxLjQuNmwzLjggMy44YTIgMiAwIDAgMSAuNiAxLjRWMTlhMiAyIDAgMCAxLTIgMkg1YTIgMiAwIDAgMS0yLTJWNWEyIDIgMCAwIDEgMi0yeiJ9XSxbInBhdGgiLHtkOiJNMTcgMjF2LTdhMSAxIDAgMCAwLTEtMUg4YTEgMSAwIDAgMC0xIDF2NyJ9XSxbInBhdGgiLHtkOiJNNyAzdjRhMSAxIDAgMCAwIDEgMWg3In1dXSxadj1bWyJwYXRoIix7ZDoiTTUgN3YxMWExIDEgMCAwIDAgMSAxaDExIn1dLFsicGF0aCIse2Q6Ik01LjI5MyAxOC43MDcgMTEgMTMifV0sWyJjaXJjbGUiLHtjeDoiMTkiLGN5OiIxOSIscjoiMiJ9XSxbImNpcmNsZSIse2N4OiI1IixjeToiNSIscjoiMiJ9XV0scTZ0PVtbInBhdGgiLHtkOiJNMTIgM3YxOCJ9XSxbInBhdGgiLHtkOiJtMTkgOCAzIDhhNSA1IDAgMCAxLTYgMHpWNyJ9XSxbInBhdGgiLHtkOiJNMyA3aDFhMTcgMTcgMCAwIDAgOC0yIDE3IDE3IDAgMCAwIDggMmgxIn1dLFsicGF0aCIse2Q6Im01IDggMyA4YTUgNSAwIDAgMS02IDB6VjcifV0sWyJwYXRoIix7ZDoiTTcgMjFoMTAifV1dLFY2dD1bWyJwYXRoIix7ZDoiTTEyIDNINWEyIDIgMCAwIDAtMiAydjE0YTIgMiAwIDAgMCAyIDJoMTRhMiAyIDAgMCAwIDItMnYtNyJ9XSxbInBhdGgiLHtkOiJNMTQgMTVIOXYtNSJ9XSxbInBhdGgiLHtkOiJNMTYgM2g1djUifV0sWyJwYXRoIix7ZDoiTTIxIDMgOSAxNSJ9XV0sajZ0PVtbInBhdGgiLHtkOiJNMyA3VjVhMiAyIDAgMCAxIDItMmgyIn1dLFsicGF0aCIse2Q6Ik0xNyAzaDJhMiAyIDAgMCAxIDIgMnYyIn1dLFsicGF0aCIse2Q6Ik0yMSAxN3YyYTIgMiAwIDAgMS0yIDJoLTIifV0sWyJwYXRoIix7ZDoiTTcgMjFINWEyIDIgMCAwIDEtMi0ydi0yIn1dLFsiY2lyY2xlIix7Y3g6IjEyIixjeToiMTIiLHI6IjEifV0sWyJwYXRoIix7ZDoiTTE4Ljk0NCAxMi4zM2ExIDEgMCAwIDAgMC0uNjYgNy41IDcuNSAwIDAgMC0xMy44ODggMCAxIDEgMCAwIDAgMCAuNjYgNy41IDcuNSAwIDAgMCAxMy44ODggMCJ9XV0sVTZ0PVtbInBhdGgiLHtkOiJNMyA3VjVhMiAyIDAgMCAxIDItMmgyIn1dLFsicGF0aCIse2Q6Ik0xNyAzaDJhMiAyIDAgMCAxIDIgMnYyIn1dLFsicGF0aCIse2Q6Ik0yMSAxN3YyYTIgMiAwIDAgMS0yIDJoLTIifV0sWyJwYXRoIix7ZDoiTTcgMjFINWEyIDIgMCAwIDEtMi0ydi0yIn1dLFsicGF0aCIse2Q6Ik04IDd2MTAifV0sWyJwYXRoIix7ZDoiTTEyIDd2MTAifV0sWyJwYXRoIix7ZDoiTTE3IDd2MTAifV1dLFc2dD1bWyJwYXRoIix7ZDoiTTMgN1Y1YTIgMiAwIDAgMSAyLTJoMiJ9XSxbInBhdGgiLHtkOiJNMTcgM2gyYTIgMiAwIDAgMSAyIDJ2MiJ9XSxbInBhdGgiLHtkOiJNMjEgMTd2MmEyIDIgMCAwIDEtMiAyaC0yIn1dLFsicGF0aCIse2Q6Ik03IDIxSDVhMiAyIDAgMCAxLTItMnYtMiJ9XSxbInBhdGgiLHtkOiJNOCAxNHMxLjUgMiA0IDIgNC0yIDQtMiJ9XSxbInBhdGgiLHtkOiJNOSA5aC4wMSJ9XSxbInBhdGgiLHtkOiJNMTUgOWguMDEifV1dLEc2dD1bWyJwYXRoIix7ZDoiTTE3IDNoMmEyIDIgMCAwIDEgMiAydjIifV0sWyJwYXRoIix7ZDoiTTIxIDE3djJhMiAyIDAgMCAxLTIgMmgtMiJ9XSxbInBhdGgiLHtkOiJNMyA3VjVhMiAyIDAgMCAxIDItMmgyIn1dLFsicGF0aCIse2Q6Ik03IDIxSDVhMiAyIDAgMCAxLTItMnYtMiJ9XSxbInBhdGgiLHtkOiJNNy44MjggMTMuMDdBMyAzIDAgMCAxIDEyIDguNzY0YTMgMyAwIDAgMSA0LjE3MiA0LjMwNmwtMy40NDcgMy42MmExIDEgMCAwIDEtMS40NDkgMHoifV1dLFk2dD1bWyJwYXRoIix7ZDoiTTMgN1Y1YTIgMiAwIDAgMSAyLTJoMiJ9XSxbInBhdGgiLHtkOiJNMTcgM2gyYTIgMiAwIDAgMSAyIDJ2MiJ9XSxbInBhdGgiLHtkOiJNMjEgMTd2MmEyIDIgMCAwIDEtMiAyaC0yIn1dLFsicGF0aCIse2Q6Ik03IDIxSDVhMiAyIDAgMCAxLTItMnYtMiJ9XSxbInBhdGgiLHtkOiJNNyAxMmgxMCJ9XV0sWjZ0PVtbInBhdGgiLHtkOiJNMTcgMTJ2NGExIDEgMCAwIDEtMSAxaC00In1dLFsicGF0aCIse2Q6Ik0xNyAzaDJhMiAyIDAgMCAxIDIgMnYyIn1dLFsicGF0aCIse2Q6Ik0xNyA4VjcifV0sWyJwYXRoIix7ZDoiTTIxIDE3djJhMiAyIDAgMCAxLTIgMmgtMiJ9XSxbInBhdGgiLHtkOiJNMyA3VjVhMiAyIDAgMCAxIDItMmgyIn1dLFsicGF0aCIse2Q6Ik03IDE3aC4wMSJ9XSxbInBhdGgiLHtkOiJNNyAyMUg1YTIgMiAwIDAgMS0yLTJ2LTIifV0sWyJyZWN0Iix7eDoiNyIseToiNyIsd2lkdGg6IjUiLGhlaWdodDoiNSIscng6IjEifV1dLFg2dD1bWyJwYXRoIix7ZDoiTTMgN1Y1YTIgMiAwIDAgMSAyLTJoMiJ9XSxbInBhdGgiLHtkOiJNMTcgM2gyYTIgMiAwIDAgMSAyIDJ2MiJ9XSxbInBhdGgiLHtkOiJNMjEgMTd2MmEyIDIgMCAwIDEtMiAyaC0yIn1dLFsicGF0aCIse2Q6Ik03IDIxSDVhMiAyIDAgMCAxLTItMnYtMiJ9XSxbImNpcmNsZSIse2N4OiIxMiIsY3k6IjEyIixyOiIzIn1dLFsicGF0aCIse2Q6Im0xNiAxNi0xLjktMS45In1dXSxLNnQ9W1sicGF0aCIse2Q6Ik0zIDdWNWEyIDIgMCAwIDEgMi0yaDIifV0sWyJwYXRoIix7ZDoiTTE3IDNoMmEyIDIgMCAwIDEgMiAydjIifV0sWyJwYXRoIix7ZDoiTTIxIDE3djJhMiAyIDAgMCAxLTIgMmgtMiJ9XSxbInBhdGgiLHtkOiJNNyAyMUg1YTIgMiAwIDAgMS0yLTJ2LTIifV0sWyJwYXRoIix7ZDoiTTcgOGg4In1dLFsicGF0aCIse2Q6Ik03IDEyaDEwIn1dLFsicGF0aCIse2Q6Ik03IDE2aDYifV1dLFE2dD1bWyJwYXRoIix7ZDoiTTMgN1Y1YTIgMiAwIDAgMSAyLTJoMiJ9XSxbInBhdGgiLHtkOiJNMTcgM2gyYTIgMiAwIDAgMSAyIDJ2MiJ9XSxbInBhdGgiLHtkOiJNMjEgMTd2MmEyIDIgMCAwIDEtMiAyaC0yIn1dLFsicGF0aCIse2Q6Ik03IDIxSDVhMiAyIDAgMCAxLTItMnYtMiJ9XV0sSjZ0PVtbInBhdGgiLHtkOiJNMTQgMjF2LTNhMiAyIDAgMCAwLTQgMHYzIn1dLFsicGF0aCIse2Q6Ik0xOCA1djE2In1dLFsicGF0aCIse2Q6Im00IDYgNy4xMDYtMy43OWEyIDIgMCAwIDEgMS43ODggMEwyMCA2In1dLFsicGF0aCIse2Q6Im02IDExLTMuNTIgMi4xNDdhMSAxIDAgMCAwLS40OC44NTRWMTlhMiAyIDAgMCAwIDIgMmgxNmEyIDIgMCAwIDAgMi0ydi01YTEgMSAwIDAgMC0uNDgtLjg1M0wxOCAxMSJ9XSxbInBhdGgiLHtkOiJNNiA1djE2In1dLFsiY2lyY2xlIix7Y3g6IjEyIixjeToiOSIscjoiMiJ9XV0sZTV0PVtbInBhdGgiLHtkOiJNNS40MiA5LjQyIDggMTIifV0sWyJjaXJjbGUiLHtjeDoiNCIsY3k6IjgiLHI6IjIifV0sWyJwYXRoIix7ZDoibTE0IDYtOC41OCA4LjU4In1dLFsiY2lyY2xlIix7Y3g6IjQiLGN5OiIxNiIscjoiMiJ9XSxbInBhdGgiLHtkOiJNMTAuOCAxNC44IDE0IDE4In1dLFsicGF0aCIse2Q6Ik0xNiAxMmgtMiJ9XSxbInBhdGgiLHtkOiJNMjIgMTJoLTIifV1dLHQ1dD1bWyJjaXJjbGUiLHtjeDoiNiIsY3k6IjYiLHI6IjMifV0sWyJwYXRoIix7ZDoiTTguMTIgOC4xMiAxMiAxMiJ9XSxbInBhdGgiLHtkOiJNMjAgNCA4LjEyIDE1Ljg4In1dLFsiY2lyY2xlIix7Y3g6IjYiLGN5OiIxOCIscjoiMyJ9XSxbInBhdGgiLHtkOiJNMTQuOCAxNC44IDIwIDIwIn1dXSxhNXQ9W1sicGF0aCIse2Q6Ik0yMSA0aC0zLjVsMiAxMS4wNSJ9XSxbInBhdGgiLHtkOiJNNi45NSAxN2g1LjE0MmMuNTIzIDAgLjk1LS40MDYgMS4wNjMtLjkxNmE2LjUgNi41IDAgMCAxIDUuMzQ1LTUuMDA5In1dLFsiY2lyY2xlIix7Y3g6IjE5LjUiLGN5OiIxNy41IixyOiIyLjUifV0sWyJjaXJjbGUiLHtjeDoiNC41IixjeToiMTcuNSIscjoiMi41In1dXSxpNXQ9W1sicGF0aCIse2Q6Ik0xMyAzSDRhMiAyIDAgMCAwLTIgMnYxMGEyIDIgMCAwIDAgMiAyaDE2YTIgMiAwIDAgMCAyLTJ2LTMifV0sWyJwYXRoIix7ZDoiTTggMjFoOCJ9XSxbInBhdGgiLHtkOiJNMTIgMTd2NCJ9XSxbInBhdGgiLHtkOiJtMjIgMy01IDUifV0sWyJwYXRoIix7ZDoibTE3IDMgNSA1In1dXSxyNXQ9W1sicGF0aCIse2Q6Ik0xMyAzSDRhMiAyIDAgMCAwLTIgMnYxMGEyIDIgMCAwIDAgMiAyaDE2YTIgMiAwIDAgMCAyLTJ2LTMifV0sWyJwYXRoIix7ZDoiTTggMjFoOCJ9XSxbInBhdGgiLHtkOiJNMTIgMTd2NCJ9XSxbInBhdGgiLHtkOiJtMTcgOCA1LTUifV0sWyJwYXRoIix7ZDoiTTE3IDNoNXY1In1dXSxzNXQ9W1sicGF0aCIse2Q6Ik0xOSAxN1Y1YTIgMiAwIDAgMC0yLTJINCJ9XSxbInBhdGgiLHtkOiJNOCAyMWgxMmEyIDIgMCAwIDAgMi0ydi0xYTEgMSAwIDAgMC0xLTFIMTFhMSAxIDAgMCAwLTEgMXYxYTIgMiAwIDEgMS00IDBWNWEyIDIgMCAxIDAtNCAwdjJhMSAxIDAgMCAwIDEgMWgzIn1dXSxuNXQ9W1sicGF0aCIse2Q6Ik0xNSAxMmgtNSJ9XSxbInBhdGgiLHtkOiJNMTUgOGgtNSJ9XSxbInBhdGgiLHtkOiJNMTkgMTdWNWEyIDIgMCAwIDAtMi0ySDQifV0sWyJwYXRoIix7ZDoiTTggMjFoMTJhMiAyIDAgMCAwIDItMnYtMWExIDEgMCAwIDAtMS0xSDExYTEgMSAwIDAgMC0xIDF2MWEyIDIgMCAxIDEtNCAwVjVhMiAyIDAgMSAwLTQgMHYyYTEgMSAwIDAgMCAxIDFoMyJ9XV0sbzV0PVtbImNpcmNsZSIse2N4OiIxMSIsY3k6IjExIixyOiI4In1dLFsicGF0aCIse2Q6Im0yMSAyMS00LjMtNC4zIn1dLFsicGF0aCIse2Q6Ik0xMSA3djQifV0sWyJwYXRoIix7ZDoiTTExIDE1aC4wMSJ9XV0sbDV0PVtbInBhdGgiLHtkOiJtOCAxMSAyIDIgNC00In1dLFsiY2lyY2xlIix7Y3g6IjExIixjeToiMTEiLHI6IjgifV0sWyJwYXRoIix7ZDoibTIxIDIxLTQuMy00LjMifV1dLGM1dD1bWyJwYXRoIix7ZDoibTEzIDEzLjUgMi0yLjUtMi0yLjUifV0sWyJwYXRoIix7ZDoibTIxIDIxLTQuMy00LjMifV0sWyJwYXRoIix7ZDoiTTkgOC41IDcgMTFsMiAyLjUifV0sWyJjaXJjbGUiLHtjeDoiMTEiLGN5OiIxMSIscjoiOCJ9XV0sZDV0PVtbInBhdGgiLHtkOiJtMTMuNSA4LjUtNSA1In1dLFsiY2lyY2xlIix7Y3g6IjExIixjeToiMTEiLHI6IjgifV0sWyJwYXRoIix7ZDoibTIxIDIxLTQuMy00LjMifV1dLGg1dD1bWyJwYXRoIix7ZDoibTEzLjUgOC41LTUgNSJ9XSxbInBhdGgiLHtkOiJtOC41IDguNSA1IDUifV0sWyJjaXJjbGUiLHtjeDoiMTEiLGN5OiIxMSIscjoiOCJ9XSxbInBhdGgiLHtkOiJtMjEgMjEtNC4zLTQuMyJ9XV0scDV0PVtbInBhdGgiLHtkOiJtMjEgMjEtNC4zNC00LjM0In1dLFsiY2lyY2xlIix7Y3g6IjExIixjeToiMTEiLHI6IjgifV1dLHU1dD1bWyJwYXRoIix7ZDoiTTE2IDVhNCAzIDAgMCAwLTggMGMwIDQgOCAzIDggN2E0IDMgMCAwIDEtOCAwIn1dLFsicGF0aCIse2Q6Ik04IDE5YTQgMyAwIDAgMCA4IDBjMC00LTgtMy04LTdhNCAzIDAgMCAxIDggMCJ9XV0sWHY9W1sicGF0aCIse2Q6Ik0zLjcxNCAzLjA0OGEuNDk4LjQ5OCAwIDAgMC0uNjgzLjYyN2wyLjg0MyA3LjYyN2EyIDIgMCAwIDEgMCAxLjM5NmwtMi44NDIgNy42MjdhLjQ5OC40OTggMCAwIDAgLjY4Mi42MjdsMTgtOC41YS41LjUgMCAwIDAgMC0uOTA0eiJ9XSxbInBhdGgiLHtkOiJNNiAxMmgxNiJ9XV0sZjV0PVtbInJlY3QiLHt4OiIxNCIseToiMTQiLHdpZHRoOiI4IixoZWlnaHQ6IjgiLHJ4OiIyIn1dLFsicmVjdCIse3g6IjIiLHk6IjIiLHdpZHRoOiI4IixoZWlnaHQ6IjgiLHJ4OiIyIn1dLFsicGF0aCIse2Q6Ik03IDE0djFhMiAyIDAgMCAwIDIgMmgxIn1dLFsicGF0aCIse2Q6Ik0xNCA3aDFhMiAyIDAgMCAxIDIgMnYxIn1dXSxtNXQ9W1sicGF0aCIse2Q6Ik0xNC41MzYgMjEuNjg2YS41LjUgMCAwIDAgLjkzNy0uMDI0bDYuNS0xOWEuNDk2LjQ5NiAwIDAgMC0uNjM1LS42MzVsLTE5IDYuNWEuNS41IDAgMCAwLS4wMjQuOTM3bDcuOTMgMy4xOGEyIDIgMCAwIDEgMS4xMTIgMS4xMXoifV0sWyJwYXRoIix7ZDoibTIxLjg1NCAyLjE0Ny0xMC45NCAxMC45MzkifV1dLGc1dD1bWyJwYXRoIix7ZDoiTTEyIDN2MTgifV0sWyJwYXRoIix7ZDoibTE2IDE2IDQtNC00LTQifV0sWyJwYXRoIix7ZDoibTggOC00IDQgNCA0In1dXSxiNXQ9W1sicGF0aCIse2Q6Im0xNiAxNi00IDQtNC00In1dLFsicGF0aCIse2Q6Ik0zIDEyaDE4In1dLFsicGF0aCIse2Q6Im04IDggNC00IDQgNCJ9XV0sdjV0PVtbInBhdGgiLHtkOiJtMTAuODUyIDE0Ljc3Mi0uMzgzLjkyMyJ9XSxbInBhdGgiLHtkOiJNMTMuMTQ4IDE0Ljc3MmEzIDMgMCAxIDAtMi4yOTYtNS41NDRsLS4zODMtLjkyMyJ9XSxbInBhdGgiLHtkOiJtMTMuMTQ4IDkuMjI4LjM4My0uOTIzIn1dLFsicGF0aCIse2Q6Im0xMy41MyAxNS42OTYtLjM4Mi0uOTI0YTMgMyAwIDEgMS0yLjI5Ni01LjU0NCJ9XSxbInBhdGgiLHtkOiJtMTQuNzcyIDEwLjg1Mi45MjMtLjM4MyJ9XSxbInBhdGgiLHtkOiJtMTQuNzcyIDEzLjE0OC45MjMuMzgzIn1dLFsicGF0aCIse2Q6Ik00LjUgMTBINGEyIDIgMCAwIDEtMi0yVjRhMiAyIDAgMCAxIDItMmgxNmEyIDIgMCAwIDEgMiAydjRhMiAyIDAgMCAxLTIgMmgtLjUifV0sWyJwYXRoIix7ZDoiTTQuNSAxNEg0YTIgMiAwIDAgMC0yIDJ2NGEyIDIgMCAwIDAgMiAyaDE2YTIgMiAwIDAgMCAyLTJ2LTRhMiAyIDAgMCAwLTItMmgtLjUifV0sWyJwYXRoIix7ZDoiTTYgMThoLjAxIn1dLFsicGF0aCIse2Q6Ik02IDZoLjAxIn1dLFsicGF0aCIse2Q6Im05LjIyOCAxMC44NTItLjkyMy0uMzgzIn1dLFsicGF0aCIse2Q6Im05LjIyOCAxMy4xNDgtLjkyMy4zODMifV1dLHk1dD1bWyJwYXRoIix7ZDoiTTYgMTBINGEyIDIgMCAwIDEtMi0yVjRhMiAyIDAgMCAxIDItMmgxNmEyIDIgMCAwIDEgMiAydjRhMiAyIDAgMCAxLTIgMmgtMiJ9XSxbInBhdGgiLHtkOiJNNiAxNEg0YTIgMiAwIDAgMC0yIDJ2NGEyIDIgMCAwIDAgMiAyaDE2YTIgMiAwIDAgMCAyLTJ2LTRhMiAyIDAgMCAwLTItMmgtMiJ9XSxbInBhdGgiLHtkOiJNNiA2aC4wMSJ9XSxbInBhdGgiLHtkOiJNNiAxOGguMDEifV0sWyJwYXRoIix7ZDoibTEzIDYtNCA2aDZsLTQgNiJ9XV0seDV0PVtbInBhdGgiLHtkOiJNNyAyaDEzYTIgMiAwIDAgMSAyIDJ2NGEyIDIgMCAwIDEtMiAyaC01In1dLFsicGF0aCIse2Q6Ik0xMCAxMCAyLjUgMi41QzIgMiAyIDIuNSAyIDV2M2EyIDIgMCAwIDAgMiAyaDZ6In1dLFsicGF0aCIse2Q6Ik0yMiAxN3YtMWEyIDIgMCAwIDAtMi0yaC0xIn1dLFsicGF0aCIse2Q6Ik00IDE0YTIgMiAwIDAgMC0yIDJ2NGEyIDIgMCAwIDAgMiAyaDE2LjVsMS0uNS41LjUtOC04SDR6In1dLFsicGF0aCIse2Q6Ik02IDE4aC4wMSJ9XSxbInBhdGgiLHtkOiJtMiAyIDIwIDIwIn1dXSx3NXQ9W1sicmVjdCIse3dpZHRoOiIyMCIsaGVpZ2h0OiI4Iix4OiIyIix5OiIyIixyeDoiMiIscnk6IjIifV0sWyJyZWN0Iix7d2lkdGg6IjIwIixoZWlnaHQ6IjgiLHg6IjIiLHk6IjE0IixyeDoiMiIscnk6IjIifV0sWyJsaW5lIix7eDE6IjYiLHgyOiI2LjAxIix5MToiNiIseTI6IjYifV0sWyJsaW5lIix7eDE6IjYiLHgyOiI2LjAxIix5MToiMTgiLHkyOiIxOCJ9XV0sTTV0PVtbInBhdGgiLHtkOiJNMTQgMTdINSJ9XSxbInBhdGgiLHtkOiJNMTkgN2gtOSJ9XSxbImNpcmNsZSIse2N4OiIxNyIsY3k6IjE3IixyOiIzIn1dLFsiY2lyY2xlIix7Y3g6IjciLGN5OiI3IixyOiIzIn1dXSx6NXQ9W1sicGF0aCIse2Q6Ik05LjY3MSA0LjEzNmEyLjM0IDIuMzQgMCAwIDEgNC42NTkgMCAyLjM0IDIuMzQgMCAwIDAgMy4zMTkgMS45MTUgMi4zNCAyLjM0IDAgMCAxIDIuMzMgNC4wMzMgMi4zNCAyLjM0IDAgMCAwIDAgMy44MzEgMi4zNCAyLjM0IDAgMCAxLTIuMzMgNC4wMzMgMi4zNCAyLjM0IDAgMCAwLTMuMzE5IDEuOTE1IDIuMzQgMi4zNCAwIDAgMS00LjY1OSAwIDIuMzQgMi4zNCAwIDAgMC0zLjMyLTEuOTE1IDIuMzQgMi4zNCAwIDAgMS0yLjMzLTQuMDMzIDIuMzQgMi4zNCAwIDAgMCAwLTMuODMxQTIuMzQgMi4zNCAwIDAgMSA2LjM1IDYuMDUxYTIuMzQgMi4zNCAwIDAgMCAzLjMxOS0xLjkxNSJ9XSxbImNpcmNsZSIse2N4OiIxMiIsY3k6IjEyIixyOiIzIn1dXSxrNXQ9W1sicGF0aCIse2Q6Ik04LjMgMTBhLjcuNyAwIDAgMS0uNjI2LTEuMDc5TDExLjQgM2EuNy43IDAgMCAxIDEuMTk4LS4wNDNMMTYuMyA4LjlhLjcuNyAwIDAgMS0uNTcyIDEuMVoifV0sWyJyZWN0Iix7eDoiMyIseToiMTQiLHdpZHRoOiI3IixoZWlnaHQ6IjciLHJ4OiIxIn1dLFsiY2lyY2xlIix7Y3g6IjE3LjUiLGN5OiIxNy41IixyOiIzLjUifV1dLFM1dD1bWyJjaXJjbGUiLHtjeDoiMTgiLGN5OiI1IixyOiIzIn1dLFsiY2lyY2xlIix7Y3g6IjYiLGN5OiIxMiIscjoiMyJ9XSxbImNpcmNsZSIse2N4OiIxOCIsY3k6IjE5IixyOiIzIn1dLFsibGluZSIse3gxOiI4LjU5Iix4MjoiMTUuNDIiLHkxOiIxMy41MSIseTI6IjE3LjQ5In1dLFsibGluZSIse3gxOiIxNS40MSIseDI6IjguNTkiLHkxOiI2LjUxIix5MjoiMTAuNDkifV1dLEM1dD1bWyJwYXRoIix7ZDoiTTEyIDJ2MTMifV0sWyJwYXRoIix7ZDoibTE2IDYtNC00LTQgNCJ9XSxbInBhdGgiLHtkOiJNNCAxMnY4YTIgMiAwIDAgMCAyIDJoMTJhMiAyIDAgMCAwIDItMnYtOCJ9XV0sXzV0PVtbInJlY3QiLHt3aWR0aDoiMTgiLGhlaWdodDoiMTgiLHg6IjMiLHk6IjMiLHJ4OiIyIixyeToiMiJ9XSxbImxpbmUiLHt4MToiMyIseDI6IjIxIix5MToiOSIseTI6IjkifV0sWyJsaW5lIix7eDE6IjMiLHgyOiIyMSIseTE6IjE1Iix5MjoiMTUifV0sWyJsaW5lIix7eDE6IjkiLHgyOiI5Iix5MToiOSIseTI6IjIxIn1dLFsibGluZSIse3gxOiIxNSIseDI6IjE1Iix5MToiOSIseTI6IjIxIn1dXSxUNXQ9W1sicGF0aCIse2Q6Ik0xNCAxMWEyIDIgMCAxIDEtNCAwIDQgNCAwIDAgMSA4IDAgNiA2IDAgMCAxLTEyIDAgOCA4IDAgMCAxIDE2IDAgMTAgMTAgMCAxIDEtMjAgMCAxMS45MyAxMS45MyAwIDAgMSAyLjQyLTcuMjIgMiAyIDAgMSAxIDMuMTYgMi40NCJ9XV0sTDV0PVtbInBhdGgiLHtkOiJNMjAgMTNjMCA1LTMuNSA3LjUtNy42NiA4Ljk1YTEgMSAwIDAgMS0uNjctLjAxQzcuNSAyMC41IDQgMTggNCAxM1Y2YTEgMSAwIDAgMSAxLTFjMiAwIDQuNS0xLjIgNi4yNC0yLjcyYTEuMTcgMS4xNyAwIDAgMSAxLjUyIDBDMTQuNTEgMy44MSAxNyA1IDE5IDVhMSAxIDAgMCAxIDEgMXoifV0sWyJwYXRoIix7ZDoiTTEyIDh2NCJ9XSxbInBhdGgiLHtkOiJNMTIgMTZoLjAxIn1dXSwkNXQ9W1sicGF0aCIse2Q6Ik0yMCAxM2MwIDUtMy41IDcuNS03LjY2IDguOTVhMSAxIDAgMCAxLS42Ny0uMDFDNy41IDIwLjUgNCAxOCA0IDEzVjZhMSAxIDAgMCAxIDEtMWMyIDAgNC41LTEuMiA2LjI0LTIuNzJhMS4xNyAxLjE3IDAgMCAxIDEuNTIgMEMxNC41MSAzLjgxIDE3IDUgMTkgNWExIDEgMCAwIDEgMSAxeiJ9XSxbInBhdGgiLHtkOiJtNC4yNDMgNS4yMSAxNC4zOSAxMi40NzIifV1dLEE1dD1bWyJwYXRoIix7ZDoiTTIwIDEzYzAgNS0zLjUgNy41LTcuNjYgOC45NWExIDEgMCAwIDEtLjY3LS4wMUM3LjUgMjAuNSA0IDE4IDQgMTNWNmExIDEgMCAwIDEgMS0xYzIgMCA0LjUtMS4yIDYuMjQtMi43MmExLjE3IDEuMTcgMCAwIDEgMS41MiAwQzE0LjUxIDMuODEgMTcgNSAxOSA1YTEgMSAwIDAgMSAxIDF6In1dLFsicGF0aCIse2Q6Im05IDEyIDIgMiA0LTQifV1dLEQ1dD1bWyJwYXRoIix7ZDoiTTIwIDEzYzAgNS0zLjUgNy41LTcuNjYgOC45NWExIDEgMCAwIDEtLjY3LS4wMUM3LjUgMjAuNSA0IDE4IDQgMTNWNmExIDEgMCAwIDEgMS0xYzIgMCA0LjUtMS4yIDYuMjQtMi43MmExLjE3IDEuMTcgMCAwIDEgMS41MiAwQzE0LjUxIDMuODEgMTcgNSAxOSA1YTEgMSAwIDAgMSAxIDF6In1dLFsicGF0aCIse2Q6Ik04IDEyaC4wMSJ9XSxbInBhdGgiLHtkOiJNMTIgMTJoLjAxIn1dLFsicGF0aCIse2Q6Ik0xNiAxMmguMDEifV1dLEU1dD1bWyJwYXRoIix7ZDoiTTIwIDEzYzAgNS0zLjUgNy41LTcuNjYgOC45NWExIDEgMCAwIDEtLjY3LS4wMUM3LjUgMjAuNSA0IDE4IDQgMTNWNmExIDEgMCAwIDEgMS0xYzIgMCA0LjUtMS4yIDYuMjQtMi43MmExLjE3IDEuMTcgMCAwIDEgMS41MiAwQzE0LjUxIDMuODEgMTcgNSAxOSA1YTEgMSAwIDAgMSAxIDF6In1dLFsicGF0aCIse2Q6Ik0xMiAyMlYyIn1dXSxQNXQ9W1sicGF0aCIse2Q6Ik0yMCAxM2MwIDUtMy41IDcuNS03LjY2IDguOTVhMSAxIDAgMCAxLS42Ny0uMDFDNy41IDIwLjUgNCAxOCA0IDEzVjZhMSAxIDAgMCAxIDEtMWMyIDAgNC41LTEuMiA2LjI0LTIuNzJhMS4xNyAxLjE3IDAgMCAxIDEuNTIgMEMxNC41MSAzLjgxIDE3IDUgMTkgNWExIDEgMCAwIDEgMSAxeiJ9XSxbInBhdGgiLHtkOiJNOSAxMmg2In1dXSxJNXQ9W1sicGF0aCIse2Q6Im0yIDIgMjAgMjAifV0sWyJwYXRoIix7ZDoiTTUgNWExIDEgMCAwIDAtMSAxdjdjMCA1IDMuNSA3LjUgNy42NyA4Ljk0YTEgMSAwIDAgMCAuNjcuMDFjMi4zNS0uODIgNC40OC0xLjk3IDUuOS0zLjcxIn1dLFsicGF0aCIse2Q6Ik05LjMwOSAzLjY1MkExMi4yNTIgMTIuMjUyIDAgMCAwIDExLjI0IDIuMjhhMS4xNyAxLjE3IDAgMCAxIDEuNTIgMEMxNC41MSAzLjgxIDE3IDUgMTkgNWExIDEgMCAwIDEgMSAxdjdhOS43ODQgOS43ODQgMCAwIDEtLjA4IDEuMjY0In1dXSxONXQ9W1sicGF0aCIse2Q6Ik0yMCAxM2MwIDUtMy41IDcuNS03LjY2IDguOTVhMSAxIDAgMCAxLS42Ny0uMDFDNy41IDIwLjUgNCAxOCA0IDEzVjZhMSAxIDAgMCAxIDEtMWMyIDAgNC41LTEuMiA2LjI0LTIuNzJhMS4xNyAxLjE3IDAgMCAxIDEuNTIgMEMxNC41MSAzLjgxIDE3IDUgMTkgNWExIDEgMCAwIDEgMSAxeiJ9XSxbInBhdGgiLHtkOiJNOSAxMmg2In1dLFsicGF0aCIse2Q6Ik0xMiA5djYifV1dLEt2PVtbInBhdGgiLHtkOiJNMjAgMTNjMCA1LTMuNSA3LjUtNy42NiA4Ljk1YTEgMSAwIDAgMS0uNjctLjAxQzcuNSAyMC41IDQgMTggNCAxM1Y2YTEgMSAwIDAgMSAxLTFjMiAwIDQuNS0xLjIgNi4yNC0yLjcyYTEuMTcgMS4xNyAwIDAgMSAxLjUyIDBDMTQuNTEgMy44MSAxNyA1IDE5IDVhMSAxIDAgMCAxIDEgMXoifV0sWyJwYXRoIix7ZDoiTTkuMSA5YTMgMyAwIDAgMSA1LjgyIDFjMCAyLTMgMy0zIDMifV0sWyJwYXRoIix7ZDoiTTEyIDE3aC4wMSJ9XV0sRjV0PVtbInBhdGgiLHtkOiJNMjAgMTNjMCA1LTMuNSA3LjUtNy42NiA4Ljk1YTEgMSAwIDAgMS0uNjctLjAxQzcuNSAyMC41IDQgMTggNCAxM1Y2YTEgMSAwIDAgMSAxLTFjMiAwIDQuNS0xLjIgNi4yNC0yLjcyYTEuMTcgMS4xNyAwIDAgMSAxLjUyIDBDMTQuNTEgMy44MSAxNyA1IDE5IDVhMSAxIDAgMCAxIDEgMXoifV0sWyJwYXRoIix7ZDoiTTYuMzc2IDE4LjkxYTYgNiAwIDAgMSAxMS4yNDkuMDAzIn1dLFsiY2lyY2xlIix7Y3g6IjEyIixjeToiMTEiLHI6IjQifV1dLFF2PVtbInBhdGgiLHtkOiJNMjAgMTNjMCA1LTMuNSA3LjUtNy42NiA4Ljk1YTEgMSAwIDAgMS0uNjctLjAxQzcuNSAyMC41IDQgMTggNCAxM1Y2YTEgMSAwIDAgMSAxLTFjMiAwIDQuNS0xLjIgNi4yNC0yLjcyYTEuMTcgMS4xNyAwIDAgMSAxLjUyIDBDMTQuNTEgMy44MSAxNyA1IDE5IDVhMSAxIDAgMCAxIDEgMXoifV0sWyJwYXRoIix7ZDoibTE0LjUgOS41LTUgNSJ9XSxbInBhdGgiLHtkOiJtOS41IDkuNSA1IDUifV1dLE81dD1bWyJwYXRoIix7ZDoiTTIwIDEzYzAgNS0zLjUgNy41LTcuNjYgOC45NWExIDEgMCAwIDEtLjY3LS4wMUM3LjUgMjAuNSA0IDE4IDQgMTNWNmExIDEgMCAwIDEgMS0xYzIgMCA0LjUtMS4yIDYuMjQtMi43MmExLjE3IDEuMTcgMCAwIDEgMS41MiAwQzE0LjUxIDMuODEgMTcgNSAxOSA1YTEgMSAwIDAgMSAxIDF6In1dXSxSNXQ9W1siY2lyY2xlIix7Y3g6IjEyIixjeToiMTIiLHI6IjgifV0sWyJwYXRoIix7ZDoiTTEyIDJ2Ny41In1dLFsicGF0aCIse2Q6Im0xOSA1LTUuMjMgNS4yMyJ9XSxbInBhdGgiLHtkOiJNMjIgMTJoLTcuNSJ9XSxbInBhdGgiLHtkOiJtMTkgMTktNS4yMy01LjIzIn1dLFsicGF0aCIse2Q6Ik0xMiAxNC41VjIyIn1dLFsicGF0aCIse2Q6Ik0xMC4yMyAxMy43NyA1IDE5In1dLFsicGF0aCIse2Q6Ik05LjUgMTJIMiJ9XSxbInBhdGgiLHtkOiJNMTAuMjMgMTAuMjMgNSA1In1dLFsiY2lyY2xlIix7Y3g6IjEyIixjeToiMTIiLHI6IjIuNSJ9XV0sQjV0PVtbInBhdGgiLHtkOiJNMTIgMTAuMTg5VjE0In1dLFsicGF0aCIse2Q6Ik0xMiAydjMifV0sWyJwYXRoIix7ZDoiTTE5IDEzVjdhMiAyIDAgMCAwLTItMkg3YTIgMiAwIDAgMC0yIDJ2NiJ9XSxbInBhdGgiLHtkOiJNMTkuMzggMjBBMTEuNiAxMS42IDAgMCAwIDIxIDE0bC04LjE4OC0zLjYzOWEyIDIgMCAwIDAtMS42MjQgMEwzIDE0YTExLjYgMTEuNiAwIDAgMCAyLjgxIDcuNzYifV0sWyJwYXRoIix7ZDoiTTIgMjFjLjYuNSAxLjIgMSAyLjUgMSAyLjUgMCAyLjUtMiA1LTIgMS4zIDAgMS45LjUgMi41IDFzMS4yIDEgMi41IDFjMi41IDAgMi41LTIgNS0yIDEuMyAwIDEuOS41IDIuNSAxIn1dXSxINXQ9W1sicGF0aCIse2Q6Ik0yMC4zOCAzLjQ2IDE2IDJhNCA0IDAgMCAxLTggMEwzLjYyIDMuNDZhMiAyIDAgMCAwLTEuMzQgMi4yM2wuNTggMy40N2ExIDEgMCAwIDAgLjk5Ljg0SDZ2MTBjMCAxLjEuOSAyIDIgMmg4YTIgMiAwIDAgMCAyLTJWMTBoMi4xNWExIDEgMCAwIDAgLjk5LS44NGwuNTgtMy40N2EyIDIgMCAwIDAtMS4zNC0yLjIzeiJ9XV0scTV0PVtbInBhdGgiLHtkOiJNMTYgMTBhNCA0IDAgMCAxLTggMCJ9XSxbInBhdGgiLHtkOiJNMy4xMDMgNi4wMzRoMTcuNzk0In1dLFsicGF0aCIse2Q6Ik0zLjQgNS40NjdhMiAyIDAgMCAwLS40IDEuMlYyMGEyIDIgMCAwIDAgMiAyaDE0YTIgMiAwIDAgMCAyLTJWNi42NjdhMiAyIDAgMCAwLS40LTEuMmwtMi0yLjY2N0EyIDIgMCAwIDAgMTcgMkg3YTIgMiAwIDAgMC0xLjYuOHoifV1dLFY1dD1bWyJwYXRoIix7ZDoibTE1IDExLTEgOSJ9XSxbInBhdGgiLHtkOiJtMTkgMTEtNC03In1dLFsicGF0aCIse2Q6Ik0yIDExaDIwIn1dLFsicGF0aCIse2Q6Im0zLjUgMTEgMS42IDcuNGEyIDIgMCAwIDAgMiAxLjZoOS44YTIgMiAwIDAgMCAyLTEuNmwxLjctNy40In1dLFsicGF0aCIse2Q6Ik00LjUgMTUuNWgxNSJ9XSxbInBhdGgiLHtkOiJtNSAxMSA0LTcifV0sWyJwYXRoIix7ZDoibTkgMTEgMSA5In1dXSxqNXQ9W1siY2lyY2xlIix7Y3g6IjgiLGN5OiIyMSIscjoiMSJ9XSxbImNpcmNsZSIse2N4OiIxOSIsY3k6IjIxIixyOiIxIn1dLFsicGF0aCIse2Q6Ik0yLjA1IDIuMDVoMmwyLjY2IDEyLjQyYTIgMiAwIDAgMCAyIDEuNThoOS43OGEyIDIgMCAwIDAgMS45NS0xLjU3bDEuNjUtNy40M0g1LjEyIn1dXSxVNXQ9W1sicGF0aCIse2Q6Ik0yMS41NiA0LjU2YTEuNSAxLjUgMCAwIDEgMCAyLjEyMmwtLjQ3LjQ3YTMgMyAwIDAgMS00LjIxMi0uMDMgMyAzIDAgMCAxIDAtNC4yNDNsLjQ0LS40NGExLjUgMS41IDAgMCAxIDIuMTIxIDB6In1dLFsicGF0aCIse2Q6Ik0zIDIyYTEgMSAwIDAgMS0xLTF2LTMuNTg2YTEgMSAwIDAgMSAuMjkzLS43MDdsMy4zNTUtMy4zNTVhMS4yMDUgMS4yMDUgMCAwIDEgMS43MDQgMGwzLjI5NiAzLjI5NmExLjIwNSAxLjIwNSAwIDAgMSAwIDEuNzA0bC0zLjM1NSAzLjM1NWExIDEgMCAwIDEtLjcwNy4yOTN6In1dLFsicGF0aCIse2Q6Im05IDE1IDcuODc5LTcuODc4In1dXSxXNXQ9W1sicGF0aCIse2Q6Im00IDQgMi41IDIuNSJ9XSxbInBhdGgiLHtkOiJNMTMuNSA2LjVhNC45NSA0Ljk1IDAgMCAwLTcgNyJ9XSxbInBhdGgiLHtkOiJNMTUgNSA1IDE1In1dLFsicGF0aCIse2Q6Ik0xNCAxN3YuMDEifV0sWyJwYXRoIix7ZDoiTTEwIDE2di4wMSJ9XSxbInBhdGgiLHtkOiJNMTMgMTN2LjAxIn1dLFsicGF0aCIse2Q6Ik0xNiAxMHYuMDEifV0sWyJwYXRoIix7ZDoiTTExIDIwdi4wMSJ9XSxbInBhdGgiLHtkOiJNMTcgMTR2LjAxIn1dLFsicGF0aCIse2Q6Ik0yMCAxMXYuMDEifV1dLEc1dD1bWyJwYXRoIix7ZDoiTTQgMTNWNGEyIDIgMCAwIDEgMi0yaDhhMi40IDIuNCAwIDAgMSAxLjcwNi43MDZsMy41ODggMy41ODhBMi40IDIuNCAwIDAgMSAyMCA4djUifV0sWyJwYXRoIix7ZDoiTTE0IDJ2NWExIDEgMCAwIDAgMSAxaDUifV0sWyJwYXRoIix7ZDoiTTEwIDIydi01In1dLFsicGF0aCIse2Q6Ik0xNCAxOXYtMiJ9XSxbInBhdGgiLHtkOiJNMTggMjB2LTMifV0sWyJwYXRoIix7ZDoiTTIgMTNoMjAifV0sWyJwYXRoIix7ZDoiTTYgMjB2LTMifV1dLFk1dD1bWyJwYXRoIix7ZDoiTTExIDEyaC4wMSJ9XSxbInBhdGgiLHtkOiJNMTMgMjJjLjUtLjUgMS4xMi0xIDIuNS0xLTEuMzggMC0yLS41LTIuNS0xIn1dLFsicGF0aCIse2Q6Ik0xNCAyYTMuMjggMy4yOCAwIDAgMS0zLjIyNyAxLjc5OGwtNi4xNy0uNTYxQTIuMzg3IDIuMzg3IDAgMSAwIDQuMzg3IDhIMTUuNWExIDEgMCAwIDEgMCAxMyAxIDEgMCAwIDAgMC01SDEyYTcgNyAwIDAgMS03LTdWOCJ9XSxbInBhdGgiLHtkOiJNMTQgOGE4LjUgOC41IDAgMCAxIDAgOCJ9XSxbInBhdGgiLHtkOiJNMTYgMTZjMiAwIDQuNS00IDQtNiJ9XV0sWjV0PVtbInBhdGgiLHtkOiJtMTUgMTUgNiA2bS02LTZ2NC44bTAtNC44aDQuOCJ9XSxbInBhdGgiLHtkOiJNOSAxOS44VjE1bTAgMEg0LjJNOSAxNWwtNiA2In1dLFsicGF0aCIse2Q6Ik0xNSA0LjJWOW0wIDBoNC44TTE1IDlsNi02In1dLFsicGF0aCIse2Q6Ik05IDQuMlY5bTAgMEg0LjJNOSA5IDMgMyJ9XV0sWDV0PVtbInBhdGgiLHtkOiJtMTggMTQgNCA0LTQgNCJ9XSxbInBhdGgiLHtkOiJtMTggMiA0IDQtNCA0In1dLFsicGF0aCIse2Q6Ik0yIDE4aDEuOTczYTQgNCAwIDAgMCAzLjMtMS43bDUuNDU0LTguNmE0IDQgMCAwIDEgMy4zLTEuN0gyMiJ9XSxbInBhdGgiLHtkOiJNMiA2aDEuOTcyYTQgNCAwIDAgMSAzLjYgMi4yIn1dLFsicGF0aCIse2Q6Ik0yMiAxOGgtNi4wNDFhNCA0IDAgMCAxLTMuMy0xLjhsLS4zNTktLjQ1In1dXSxLNXQ9W1sicGF0aCIse2Q6Ik0xMiAyMnYtNS4xNzJhMiAyIDAgMCAwLS41ODYtMS40MTRMOS41IDEzLjUifV0sWyJwYXRoIix7ZDoiTTE0LjUgMTQuNSAxMiAxNyJ9XSxbInBhdGgiLHtkOiJNMTcgOC44QTYgNiAwIDAgMSAxMy44IDIwSDEwQTYuNSA2LjUgMCAwIDEgNyA4YTUgNSAwIDAgMSAxMCAweiJ9XV0sUTV0PVtbInBhdGgiLHtkOiJNMTggN1Y1YTEgMSAwIDAgMC0xLTFINi41YS41LjUgMCAwIDAtLjQuOGw0LjUgNmEyIDIgMCAwIDEgMCAyLjRsLTQuNSA2YS41LjUgMCAwIDAgLjQuOEgxN2ExIDEgMCAwIDAgMS0xdi0yIn1dXSxKNXQ9W1sicGF0aCIse2Q6Ik0yIDIwaC4wMSJ9XSxbInBhdGgiLHtkOiJNNyAyMHYtNCJ9XSxbInBhdGgiLHtkOiJNMTIgMjB2LTgifV0sWyJwYXRoIix7ZDoiTTE3IDIwVjgifV1dLGU4dD1bWyJwYXRoIix7ZDoiTTIgMjBoLjAxIn1dLFsicGF0aCIse2Q6Ik03IDIwdi00In1dXSx0OHQ9W1sicGF0aCIse2Q6Ik0yIDIwaC4wMSJ9XSxbInBhdGgiLHtkOiJNNyAyMHYtNCJ9XSxbInBhdGgiLHtkOiJNMTIgMjB2LTgifV1dLGE4dD1bWyJwYXRoIix7ZDoiTTIgMjBoLjAxIn1dXSxpOHQ9W1sicGF0aCIse2Q6Ik0yIDIwaC4wMSJ9XSxbInBhdGgiLHtkOiJNNyAyMHYtNCJ9XSxbInBhdGgiLHtkOiJNMTIgMjB2LTgifV0sWyJwYXRoIix7ZDoiTTE3IDIwVjgifV0sWyJwYXRoIix7ZDoiTTIyIDR2MTYifV1dLHI4dD1bWyJwYXRoIix7ZDoibTIxIDE3LTIuMTU2LTEuODY4QS41LjUgMCAwIDAgMTggMTUuNXYuNWExIDEgMCAwIDEtMSAxaC0yYTEgMSAwIDAgMS0xLTFjMC0yLjU0NS0zLjk5MS0zLjk3LTguNS00YTEgMSAwIDAgMCAwIDVjNC4xNTMgMCA0Ljc0NS0xMS4yOTUgNS43MDgtMTMuNWEyLjUgMi41IDAgMSAxIDMuMzEgMy4yODQifV0sWyJwYXRoIix7ZDoiTTMgMjFoMTgifV1dLHM4dD1bWyJwYXRoIix7ZDoiTTEwIDlINEwyIDdsMi0yaDYifV0sWyJwYXRoIix7ZDoiTTE0IDVoNmwyIDItMiAyaC02In1dLFsicGF0aCIse2Q6Ik0xMCAyMlY0YTIgMiAwIDEgMSA0IDB2MTgifV0sWyJwYXRoIix7ZDoiTTggMjJoOCJ9XV0sbjh0PVtbInBhdGgiLHtkOiJNMTIgMTN2OCJ9XSxbInBhdGgiLHtkOiJNMTIgM3YzIn1dLFsicGF0aCIse2Q6Ik0xOCA2YTIgMiAwIDAgMSAxLjM4Ny41NmwyLjMwNyAyLjIyYTEgMSAwIDAgMSAwIDEuNDRsLTIuMzA3IDIuMjJBMiAyIDAgMCAxIDE4IDEzSDZhMiAyIDAgMCAxLTEuMzg3LS41NmwtMi4zMDYtMi4yMmExIDEgMCAwIDEgMC0xLjQ0bDIuMzA2LTIuMjJBMiAyIDAgMCAxIDYgNnoifV1dLG84dD1bWyJwYXRoIix7ZDoiTTcgMTh2LTZhNSA1IDAgMSAxIDEwIDB2NiJ9XSxbInBhdGgiLHtkOiJNNSAyMWExIDEgMCAwIDAgMSAxaDEyYTEgMSAwIDAgMCAxLTF2LTFhMiAyIDAgMCAwLTItMkg3YTIgMiAwIDAgMC0yIDJ6In1dLFsicGF0aCIse2Q6Ik0yMSAxMmgxIn1dLFsicGF0aCIse2Q6Ik0xOC41IDQuNSAxOCA1In1dLFsicGF0aCIse2Q6Ik0yIDEyaDEifV0sWyJwYXRoIix7ZDoiTTEyIDJ2MSJ9XSxbInBhdGgiLHtkOiJtNC45MjkgNC45MjkuNzA3LjcwNyJ9XSxbInBhdGgiLHtkOiJNMTIgMTJ2NiJ9XV0sbDh0PVtbInBhdGgiLHtkOiJNMTcuOTcxIDQuMjg1QTIgMiAwIDAgMSAyMSA2djEyYTIgMiAwIDAgMS0zLjAyOSAxLjcxNWwtOS45OTctNS45OThhMiAyIDAgMCAxLS4wMDMtMy40MzJ6In1dLFsicGF0aCIse2Q6Ik0zIDIwVjQifV1dLGM4dD1bWyJwYXRoIix7ZDoiTTIxIDR2MTYifV0sWyJwYXRoIix7ZDoiTTYuMDI5IDQuMjg1QTIgMiAwIDAgMCAzIDZ2MTJhMiAyIDAgMCAwIDMuMDI5IDEuNzE1bDkuOTk3LTUuOTk4YTIgMiAwIDAgMCAuMDAzLTMuNDMyeiJ9XV0sZDh0PVtbInBhdGgiLHtkOiJtMTIuNSAxNy0uNS0xLS41IDFoMXoifV0sWyJwYXRoIix7ZDoiTTE1IDIyYTEgMSAwIDAgMCAxLTF2LTFhMiAyIDAgMCAwIDEuNTYtMy4yNSA4IDggMCAxIDAtMTEuMTIgMEEyIDIgMCAwIDAgOCAyMHYxYTEgMSAwIDAgMCAxIDF6In1dLFsiY2lyY2xlIix7Y3g6IjE1IixjeToiMTIiLHI6IjEifV0sWyJjaXJjbGUiLHtjeDoiOSIsY3k6IjEyIixyOiIxIn1dXSxoOHQ9W1sicmVjdCIse3dpZHRoOiIzIixoZWlnaHQ6IjgiLHg6IjEzIix5OiIyIixyeDoiMS41In1dLFsicGF0aCIse2Q6Ik0xOSA4LjVWMTBoMS41QTEuNSAxLjUgMCAxIDAgMTkgOC41In1dLFsicmVjdCIse3dpZHRoOiIzIixoZWlnaHQ6IjgiLHg6IjgiLHk6IjE0IixyeDoiMS41In1dLFsicGF0aCIse2Q6Ik01IDE1LjVWMTRIMy41QTEuNSAxLjUgMCAxIDAgNSAxNS41In1dLFsicmVjdCIse3dpZHRoOiI4IixoZWlnaHQ6IjMiLHg6IjE0Iix5OiIxMyIscng6IjEuNSJ9XSxbInBhdGgiLHtkOiJNMTUuNSAxOUgxNHYxLjVhMS41IDEuNSAwIDEgMCAxLjUtMS41In1dLFsicmVjdCIse3dpZHRoOiI4IixoZWlnaHQ6IjMiLHg6IjIiLHk6IjgiLHJ4OiIxLjUifV0sWyJwYXRoIix7ZDoiTTguNSA1SDEwVjMuNUExLjUgMS41IDAgMSAwIDguNSA1In1dXSxwOHQ9W1sicGF0aCIse2Q6Ik0yMiAyIDIgMjIifV1dLHU4dD1bWyJwYXRoIix7ZDoiTTExIDE2LjU4NlYxOWExIDEgMCAwIDEtMSAxSDJMMTguMzcgMy42M2ExIDEgMCAxIDEgMyAzbC05LjY2MyA5LjY2M2ExIDEgMCAwIDEtMS40MTQgMEw4IDE0In1dXSxmOHQ9W1sicGF0aCIse2Q6Ik0xMCA1SDMifV0sWyJwYXRoIix7ZDoiTTEyIDE5SDMifV0sWyJwYXRoIix7ZDoiTTE0IDN2NCJ9XSxbInBhdGgiLHtkOiJNMTYgMTd2NCJ9XSxbInBhdGgiLHtkOiJNMjEgMTJoLTkifV0sWyJwYXRoIix7ZDoiTTIxIDE5aC01In1dLFsicGF0aCIse2Q6Ik0yMSA1aC03In1dLFsicGF0aCIse2Q6Ik04IDEwdjQifV0sWyJwYXRoIix7ZDoiTTggMTJIMyJ9XV0sSnY9W1sicGF0aCIse2Q6Ik0xMCA4aDQifV0sWyJwYXRoIix7ZDoiTTEyIDIxdi05In1dLFsicGF0aCIse2Q6Ik0xMiA4VjMifV0sWyJwYXRoIix7ZDoiTTE3IDE2aDQifV0sWyJwYXRoIix7ZDoiTTE5IDEyVjMifV0sWyJwYXRoIix7ZDoiTTE5IDIxdi01In1dLFsicGF0aCIse2Q6Ik0zIDE0aDQifV0sWyJwYXRoIix7ZDoiTTUgMTBWMyJ9XSxbInBhdGgiLHtkOiJNNSAyMXYtNyJ9XV0sbTh0PVtbInJlY3QiLHt3aWR0aDoiMTQiLGhlaWdodDoiMjAiLHg6IjUiLHk6IjIiLHJ4OiIyIixyeToiMiJ9XSxbInBhdGgiLHtkOiJNMTIuNjY3IDggMTAgMTJoNGwtMi42NjcgNCJ9XV0sZzh0PVtbInJlY3QiLHt3aWR0aDoiNyIsaGVpZ2h0OiIxMiIseDoiMiIseToiNiIscng6IjEifV0sWyJwYXRoIix7ZDoiTTEzIDguMzJhNy40MyA3LjQzIDAgMCAxIDAgNy4zNiJ9XSxbInBhdGgiLHtkOiJNMTYuNDYgNi4yMWExMS43NiAxMS43NiAwIDAgMSAwIDExLjU4In1dLFsicGF0aCIse2Q6Ik0xOS45MSA0LjFhMTUuOTEgMTUuOTEgMCAwIDEgLjAxIDE1LjgifV1dLGI4dD1bWyJyZWN0Iix7d2lkdGg6IjE0IixoZWlnaHQ6IjIwIix4OiI1Iix5OiIyIixyeDoiMiIscnk6IjIifV0sWyJwYXRoIix7ZDoiTTEyIDE4aC4wMSJ9XV0sdjh0PVtbInBhdGgiLHtkOiJNMjIgMTF2MWExMCAxMCAwIDEgMS05LTEwIn1dLFsicGF0aCIse2Q6Ik04IDE0czEuNSAyIDQgMiA0LTIgNC0yIn1dLFsibGluZSIse3gxOiI5Iix4MjoiOS4wMSIseTE6IjkiLHkyOiI5In1dLFsibGluZSIse3gxOiIxNSIseDI6IjE1LjAxIix5MToiOSIseTI6IjkifV0sWyJwYXRoIix7ZDoiTTE2IDVoNiJ9XSxbInBhdGgiLHtkOiJNMTkgMnY2In1dXSx5OHQ9W1siY2lyY2xlIix7Y3g6IjEyIixjeToiMTIiLHI6IjEwIn1dLFsicGF0aCIse2Q6Ik04IDE0czEuNSAyIDQgMiA0LTIgNC0yIn1dLFsibGluZSIse3gxOiI5Iix4MjoiOS4wMSIseTE6IjkiLHkyOiI5In1dLFsibGluZSIse3gxOiIxNSIseDI6IjE1LjAxIix5MToiOSIseTI6IjkifV1dLHg4dD1bWyJwYXRoIix7ZDoiTTIgMTNhNiA2IDAgMSAwIDEyIDAgNCA0IDAgMSAwLTggMCAyIDIgMCAwIDAgNCAwIn1dLFsiY2lyY2xlIix7Y3g6IjEwIixjeToiMTMiLHI6IjgifV0sWyJwYXRoIix7ZDoiTTIgMjFoMTJjNC40IDAgOC0zLjYgOC04VjdhMiAyIDAgMSAwLTQgMHY2In1dLFsicGF0aCIse2Q6Ik0xOCAzIDE5LjEgNS4yIn1dLFsicGF0aCIse2Q6Ik0yMiAzIDIwLjkgNS4yIn1dXSx3OHQ9W1sicGF0aCIse2Q6Ik0xMC41IDJ2NCJ9XSxbInBhdGgiLHtkOiJNMTQgMkg3YTIgMiAwIDAgMC0yIDIifV0sWyJwYXRoIix7ZDoiTTE5LjI5IDE0Ljc2QTYuNjcgNi42NyAwIDAgMSAxNyAxMWE2LjYgNi42IDAgMCAxLTIuMjkgMy43NmMtMS4xNS45Mi0xLjcxIDIuMDQtMS43MSAzLjE5IDAgMi4yMiAxLjggNC4wNSA0IDQuMDVzNC0xLjgzIDQtNC4wNWMwLTEuMTYtLjU3LTIuMjYtMS43MS0zLjE5In1dLFsicGF0aCIse2Q6Ik05LjYwNyAyMUg2YTIgMiAwIDAgMS0yLTJ2LTdhMiAyIDAgMCAxIDItMmg3VjdhMSAxIDAgMCAwLTEtMUg5YTEgMSAwIDAgMC0xIDF2MyJ9XV0sTTh0PVtbInBhdGgiLHtkOiJtMTAgMjAtMS4yNS0yLjVMNiAxOCJ9XSxbInBhdGgiLHtkOiJNMTAgNCA4Ljc1IDYuNSA2IDYifV0sWyJwYXRoIix7ZDoibTE0IDIwIDEuMjUtMi41TDE4IDE4In1dLFsicGF0aCIse2Q6Im0xNCA0IDEuMjUgMi41TDE4IDYifV0sWyJwYXRoIix7ZDoibTE3IDIxLTMtNmgtNCJ9XSxbInBhdGgiLHtkOiJtMTcgMy0zIDYgMS41IDMifV0sWyJwYXRoIix7ZDoiTTIgMTJoNi41TDEwIDkifV0sWyJwYXRoIix7ZDoibTIwIDEwLTEuNSAyIDEuNSAyIn1dLFsicGF0aCIse2Q6Ik0yMiAxMmgtNi41TDE0IDE1In1dLFsicGF0aCIse2Q6Im00IDEwIDEuNSAyTDQgMTQifV0sWyJwYXRoIix7ZDoibTcgMjEgMy02LTEuNS0zIn1dLFsicGF0aCIse2Q6Im03IDMgMyA2aDQifV1dLHo4dD1bWyJwYXRoIix7ZDoiTTIwIDlWNmEyIDIgMCAwIDAtMi0ySDZhMiAyIDAgMCAwLTIgMnYzIn1dLFsicGF0aCIse2Q6Ik0yIDE2YTIgMiAwIDAgMCAyIDJoMTZhMiAyIDAgMCAwIDItMnYtNWEyIDIgMCAwIDAtNCAwdjEuNWEuNS41IDAgMCAxLS41LjVoLTExYS41LjUgMCAwIDEtLjUtLjVWMTFhMiAyIDAgMCAwLTQgMHoifV0sWyJwYXRoIix7ZDoiTTQgMTh2MiJ9XSxbInBhdGgiLHtkOiJNMjAgMTh2MiJ9XSxbInBhdGgiLHtkOiJNMTIgNHY5In1dXSxrOHQ9W1sicGF0aCIse2Q6Ik0xMSAyaDIifV0sWyJwYXRoIix7ZDoibTE0LjI4IDE0LTQuNTYgOCJ9XSxbInBhdGgiLHtkOiJtMjEgMjItMS41NTgtNEg0LjU1OCJ9XSxbInBhdGgiLHtkOiJNMyAxMHYyIn1dLFsicGF0aCIse2Q6Ik02LjI0NSAxNS4wNEEyIDIgMCAwIDEgOCAxNGgxMmExIDEgMCAwIDEgLjg2NCAxLjUwNWwtMy4xMSA1LjQ1N0EyIDIgMCAwIDEgMTYgMjJINGExIDEgMCAwIDEtLjg2My0xLjUwNnoifV0sWyJwYXRoIix7ZDoiTTcgMmE0IDQgMCAwIDEtNCA0In1dLFsicGF0aCIse2Q6Im04LjY2IDcuNjYgMS40MSAxLjQxIn1dXSxTOHQ9W1sicGF0aCIse2Q6Ik0xMiAyMWE5IDkgMCAwIDAgOS05SDNhOSA5IDAgMCAwIDkgOVoifV0sWyJwYXRoIix7ZDoiTTcgMjFoMTAifV0sWyJwYXRoIix7ZDoiTTE5LjUgMTIgMjIgNiJ9XSxbInBhdGgiLHtkOiJNMTYuMjUgM2MuMjcuMS44LjUzLjc1IDEuMzYtLjA2LjgzLS45MyAxLjItMSAyLjAyLS4wNS43OC4zNCAxLjI0LjczIDEuNjIifV0sWyJwYXRoIix7ZDoiTTExLjI1IDNjLjI3LjEuOC41My43NCAxLjM2LS4wNS44My0uOTMgMS4yLS45OCAyLjAyLS4wNi43OC4zMyAxLjI0LjcyIDEuNjIifV0sWyJwYXRoIix7ZDoiTTYuMjUgM2MuMjcuMS44LjUzLjc1IDEuMzYtLjA2LjgzLS45MyAxLjItMSAyLjAyLS4wNS43OC4zNCAxLjI0Ljc0IDEuNjIifV1dLEM4dD1bWyJwYXRoIix7ZDoiTTIyIDE3djFjMCAuNS0uNSAxLTEgMUgzYy0uNSAwLTEtLjUtMS0xdi0xIn1dXSxfOHQ9W1sicGF0aCIse2Q6Ik0xMiAxOHY0In1dLFsicGF0aCIse2Q6Ik0yIDE0LjQ5OWE1LjUgNS41IDAgMCAwIDkuNTkxIDMuNjc1LjYuNiAwIDAgMSAuODE4LjAwMUE1LjUgNS41IDAgMCAwIDIyIDE0LjVjMC0yLjI5LTEuNS00LTMtNS41bC01LjQ5Mi01LjMxMmEyIDIgMCAwIDAtMy0uMDJMNSA4Ljk5OWMtMS41IDEuNS0zIDMuMi0zIDUuNSJ9XV0sVDh0PVtbInBhdGgiLHtkOiJNMTEuMDE3IDIuODE0YTEgMSAwIDAgMSAxLjk2NiAwbDEuMDUxIDUuNTU4YTIgMiAwIDAgMCAxLjU5NCAxLjU5NGw1LjU1OCAxLjA1MWExIDEgMCAwIDEgMCAxLjk2NmwtNS41NTggMS4wNTFhMiAyIDAgMCAwLTEuNTk0IDEuNTk0bC0xLjA1MSA1LjU1OGExIDEgMCAwIDEtMS45NjYgMGwtMS4wNTEtNS41NThhMiAyIDAgMCAwLTEuNTk0LTEuNTk0bC01LjU1OC0xLjA1MWExIDEgMCAwIDEgMC0xLjk2Nmw1LjU1OC0xLjA1MWEyIDIgMCAwIDAgMS41OTQtMS41OTR6In1dXSxleT1bWyJwYXRoIix7ZDoiTTExLjAxNyAyLjgxNGExIDEgMCAwIDEgMS45NjYgMGwxLjA1MSA1LjU1OGEyIDIgMCAwIDAgMS41OTQgMS41OTRsNS41NTggMS4wNTFhMSAxIDAgMCAxIDAgMS45NjZsLTUuNTU4IDEuMDUxYTIgMiAwIDAgMC0xLjU5NCAxLjU5NGwtMS4wNTEgNS41NThhMSAxIDAgMCAxLTEuOTY2IDBsLTEuMDUxLTUuNTU4YTIgMiAwIDAgMC0xLjU5NC0xLjU5NGwtNS41NTgtMS4wNTFhMSAxIDAgMCAxIDAtMS45NjZsNS41NTgtMS4wNTFhMiAyIDAgMCAwIDEuNTk0LTEuNTk0eiJ9XSxbInBhdGgiLHtkOiJNMjAgMnY0In1dLFsicGF0aCIse2Q6Ik0yMiA0aC00In1dLFsiY2lyY2xlIix7Y3g6IjQiLGN5OiIyMCIscjoiMiJ9XV0sTDh0PVtbInJlY3QiLHt3aWR0aDoiMTYiLGhlaWdodDoiMjAiLHg6IjQiLHk6IjIiLHJ4OiIyIn1dLFsicGF0aCIse2Q6Ik0xMiA2aC4wMSJ9XSxbImNpcmNsZSIse2N4OiIxMiIsY3k6IjE0IixyOiI0In1dLFsicGF0aCIse2Q6Ik0xMiAxNGguMDEifV1dLCQ4dD1bWyJwYXRoIix7ZDoiTTguOCAyMHYtNC4xbDEuOS4yYTIuMyAyLjMgMCAwIDAgMi4xNjQtMi4xVjguM0E1LjM3IDUuMzcgMCAwIDAgMiA4LjI1YzAgMi44LjY1NiAzLjA1NCAxIDQuNTVhNS43NyA1Ljc3IDAgMCAxIC4wMjkgMi43NThMMiAyMCJ9XSxbInBhdGgiLHtkOiJNMTkuOCAxNy44YTcuNSA3LjUgMCAwIDAgLjAwMy0xMC42MDMifV0sWyJwYXRoIix7ZDoiTTE3IDE1YTMuNSAzLjUgMCAwIDAtLjAyNS00Ljk3NSJ9XV0sQTh0PVtbInBhdGgiLHtkOiJtNiAxNiA2LTEyIDYgMTIifV0sWyJwYXRoIix7ZDoiTTggMTJoOCJ9XSxbInBhdGgiLHtkOiJNNCAyMWMxLjEgMCAxLjEtMSAyLjMtMXMxLjEgMSAyLjMgMWMxLjEgMCAxLjEtMSAyLjMtMSAxLjEgMCAxLjEgMSAyLjMgMSAxLjEgMCAxLjEtMSAyLjMtMSAxLjEgMCAxLjEgMSAyLjMgMSAxLjEgMCAxLjEtMSAyLjMtMSJ9XV0sRDh0PVtbInBhdGgiLHtkOiJtNiAxNiA2LTEyIDYgMTIifV0sWyJwYXRoIix7ZDoiTTggMTJoOCJ9XSxbInBhdGgiLHtkOiJtMTYgMjAgMiAyIDQtNCJ9XV0sRTh0PVtbInBhdGgiLHtkOiJNMTIuMDM0IDEyLjY4MWEuNDk4LjQ5OCAwIDAgMSAuNjQ3LS42NDdsOSAzLjVhLjUuNSAwIDAgMS0uMDMzLjk0M2wtMy40NDQgMS4wNjhhMSAxIDAgMCAwLS42Ni42NmwtMS4wNjcgMy40NDNhLjUuNSAwIDAgMS0uOTQzLjAzM3oifV0sWyJwYXRoIix7ZDoiTTUgMTdBMTIgMTIgMCAwIDEgMTcgNSJ9XSxbImNpcmNsZSIse2N4OiIxOSIsY3k6IjUiLHI6IjIifV0sWyJjaXJjbGUiLHtjeDoiNSIsY3k6IjE5IixyOiIyIn1dXSxQOHQ9W1siY2lyY2xlIix7Y3g6IjE5IixjeToiNSIscjoiMiJ9XSxbImNpcmNsZSIse2N4OiI1IixjeToiMTkiLHI6IjIifV0sWyJwYXRoIix7ZDoiTTUgMTdBMTIgMTIgMCAwIDEgMTcgNSJ9XV0sSTh0PVtbInBhdGgiLHtkOiJNMTYgM2g1djUifV0sWyJwYXRoIix7ZDoiTTggM0gzdjUifV0sWyJwYXRoIix7ZDoiTTEyIDIydi04LjNhNCA0IDAgMCAwLTEuMTcyLTIuODcyTDMgMyJ9XSxbInBhdGgiLHtkOiJtMTUgOSA2LTYifV1dLE44dD1bWyJwYXRoIix7ZDoiTTE3IDEzLjQ0IDQuNDQyIDE3LjA4MkEyIDIgMCAwIDAgNC45ODIgMjFIMTlhMiAyIDAgMCAwIC41NTgtMy45MjFsLTEuMTE1LS4zMkEyIDIgMCAwIDEgMTcgMTQuODM3VjcuNjYifV0sWyJwYXRoIix7ZDoibTcgMTAuNTYgMTIuNTU4LTMuNjQyQTIgMiAwIDAgMCAxOS4wMTggM0g1YTIgMiAwIDAgMC0uNTU4IDMuOTIxbDEuMTE1LjMyQTIgMiAwIDAgMSA3IDkuMTYzdjcuMTc4In1dXSxGOHQ9W1sicGF0aCIse2Q6Ik0xNS4yOTUgMTkuNTYyIDE2IDIyIn1dLFsicGF0aCIse2Q6Im0xNyAxNiAzLjc1OCAyLjA5OCJ9XSxbInBhdGgiLHtkOiJtMTkgMTIuNSAzLjAyNi0uNTk4In1dLFsicGF0aCIse2Q6Ik03LjYxIDYuM2EzIDMgMCAwIDAtMy45MiAxLjNsLTEuMzggMi43OWEzIDMgMCAwIDAgMS4zIDMuOTFsNi44OSAzLjU5N2ExIDEgMCAwIDAgMS4zNDItLjQ0N2wzLjEwNi02LjIxMWExIDEgMCAwIDAtLjQ0Ny0xLjM0MXoifV0sWyJwYXRoIix7ZDoiTTggOVYyIn1dXSxPOHQ9W1sicGF0aCIse2Q6Ik0zIDNoLjAxIn1dLFsicGF0aCIse2Q6Ik03IDVoLjAxIn1dLFsicGF0aCIse2Q6Ik0xMSA3aC4wMSJ9XSxbInBhdGgiLHtkOiJNMyA3aC4wMSJ9XSxbInBhdGgiLHtkOiJNNyA5aC4wMSJ9XSxbInBhdGgiLHtkOiJNMyAxMWguMDEifV0sWyJyZWN0Iix7d2lkdGg6IjQiLGhlaWdodDoiNCIseDoiMTUiLHk6IjUifV0sWyJwYXRoIix7ZDoibTE5IDkgMiAydjEwYzAgLjYtLjQgMS0xIDFoLTZjLS42IDAtMS0uNC0xLTFWMTFsMi0yIn1dLFsicGF0aCIse2Q6Im0xMyAxNCA4LTIifV0sWyJwYXRoIix7ZDoibTEzIDE5IDgtMiJ9XV0sUjh0PVtbInBhdGgiLHtkOiJNMTQgOS41MzZWN2E0IDQgMCAwIDEgNC00aDEuNWEuNS41IDAgMCAxIC41LjVWNWE0IDQgMCAwIDEtNCA0IDQgNCAwIDAgMC00IDRjMCAyIDEgMyAxIDVhNSA1IDAgMCAxLTEgMyJ9XSxbInBhdGgiLHtkOiJNNCA5YTUgNSAwIDAgMSA4IDQgNSA1IDAgMCAxLTgtNCJ9XSxbInBhdGgiLHtkOiJNNSAyMWgxNCJ9XV0sdHk9W1sicmVjdCIse3dpZHRoOiIxOCIsaGVpZ2h0OiIxOCIseDoiMyIseToiMyIscng6IjIifV0sWyJwYXRoIix7ZDoibTE2IDgtOCA4In1dLFsicGF0aCIse2Q6Ik0xNiAxNkg4VjgifV1dLGF5PVtbInJlY3QiLHt3aWR0aDoiMTgiLGhlaWdodDoiMTgiLHg6IjMiLHk6IjMiLHJ4OiIyIn1dLFsicGF0aCIse2Q6Ik0xNyAxMmgtMmwtMiA1LTItMTAtMiA1SDcifV1dLGl5PVtbInJlY3QiLHt3aWR0aDoiMTgiLGhlaWdodDoiMTgiLHg6IjMiLHk6IjMiLHJ4OiIyIn1dLFsicGF0aCIse2Q6Im04IDggOCA4In1dLFsicGF0aCIse2Q6Ik0xNiA4djhIOCJ9XV0scnk9W1sicmVjdCIse3dpZHRoOiIxOCIsaGVpZ2h0OiIxOCIseDoiMyIseToiMyIscng6IjIifV0sWyJwYXRoIix7ZDoiTTEyIDh2OCJ9XSxbInBhdGgiLHtkOiJtOCAxMiA0IDQgNC00In1dXSxzeT1bWyJyZWN0Iix7d2lkdGg6IjE4IixoZWlnaHQ6IjE4Iix4OiIzIix5OiIzIixyeDoiMiJ9XSxbInBhdGgiLHtkOiJtMTIgOC00IDQgNCA0In1dLFsicGF0aCIse2Q6Ik0xNiAxMkg4In1dXSxueT1bWyJwYXRoIix7ZDoiTTEzIDIxaDZhMiAyIDAgMCAwIDItMlY1YTIgMiAwIDAgMC0yLTJINWEyIDIgMCAwIDAtMiAydjYifV0sWyJwYXRoIix7ZDoibTMgMjEgOS05In1dLFsicGF0aCIse2Q6Ik05IDIxSDN2LTYifV1dLG95PVtbInBhdGgiLHtkOiJNMTMgM2g2YTIgMiAwIDAgMSAyIDJ2MTRhMiAyIDAgMCAxLTIgMkg1YTIgMiAwIDAgMS0yLTJ2LTYifV0sWyJwYXRoIix7ZDoibTMgMyA5IDkifV0sWyJwYXRoIix7ZDoiTTMgOVYzaDYifV1dLGx5PVtbInBhdGgiLHtkOiJNMjEgMTFWNWEyIDIgMCAwIDAtMi0ySDVhMiAyIDAgMCAwLTIgMnYxNGEyIDIgMCAwIDAgMiAyaDYifV0sWyJwYXRoIix7ZDoibTIxIDIxLTktOSJ9XSxbInBhdGgiLHtkOiJNMjEgMTV2NmgtNiJ9XV0sY3k9W1sicGF0aCIse2Q6Ik0yMSAxM3Y2YTIgMiAwIDAgMS0yIDJINWEyIDIgMCAwIDEtMi0yVjVhMiAyIDAgMCAxIDItMmg2In1dLFsicGF0aCIse2Q6Im0yMSAzLTkgOSJ9XSxbInBhdGgiLHtkOiJNMTUgM2g2djYifV1dLGR5PVtbInJlY3QiLHt3aWR0aDoiMTgiLGhlaWdodDoiMTgiLHg6IjMiLHk6IjMiLHJ4OiIyIn1dLFsicGF0aCIse2Q6Ik04IDEyaDgifV0sWyJwYXRoIix7ZDoibTEyIDE2IDQtNC00LTQifV1dLGh5PVtbInJlY3QiLHt3aWR0aDoiMTgiLGhlaWdodDoiMTgiLHg6IjMiLHk6IjMiLHJ4OiIyIn1dLFsicGF0aCIse2Q6Ik04IDE2VjhoOCJ9XSxbInBhdGgiLHtkOiJNMTYgMTYgOCA4In1dXSxweT1bWyJyZWN0Iix7d2lkdGg6IjE4IixoZWlnaHQ6IjE4Iix4OiIzIix5OiIzIixyeDoiMiJ9XSxbInBhdGgiLHtkOiJNOCA4aDh2OCJ9XSxbInBhdGgiLHtkOiJtOCAxNiA4LTgifV1dLHV5PVtbInJlY3QiLHt3aWR0aDoiMTgiLGhlaWdodDoiMTgiLHg6IjMiLHk6IjMiLHJ4OiIyIn1dLFsicGF0aCIse2Q6Im0xNiAxMi00LTQtNCA0In1dLFsicGF0aCIse2Q6Ik0xMiAxNlY4In1dXSxmeT1bWyJyZWN0Iix7d2lkdGg6IjE4IixoZWlnaHQ6IjE4Iix4OiIzIix5OiIzIixyeDoiMiJ9XSxbInBhdGgiLHtkOiJNMTIgOHY4In1dLFsicGF0aCIse2Q6Im04LjUgMTQgNy00In1dLFsicGF0aCIse2Q6Im04LjUgMTAgNyA0In1dXSxteT1bWyJsaW5lIix7eDE6IjUiLHkxOiIzIix4MjoiMTkiLHkyOiIzIn1dLFsibGluZSIse3gxOiIzIix5MToiNSIseDI6IjMiLHkyOiIxOSJ9XSxbImxpbmUiLHt4MToiMjEiLHkxOiI1Iix4MjoiMjEiLHkyOiIxOSJ9XSxbImxpbmUiLHt4MToiOSIseTE6IjIxIix4MjoiMTAiLHkyOiIyMSJ9XSxbImxpbmUiLHt4MToiMTQiLHkxOiIyMSIseDI6IjE1Iix5MjoiMjEifV0sWyJwYXRoIix7ZDoiTSAzIDUgQTIgMiAwIDAgMSA1IDMifV0sWyJwYXRoIix7ZDoiTSAxOSAzIEEyIDIgMCAwIDEgMjEgNSJ9XSxbInBhdGgiLHtkOiJNIDUgMjEgQTIgMiAwIDAgMSAzIDE5In1dLFsicGF0aCIse2Q6Ik0gMjEgMTkgQTIgMiAwIDAgMSAxOSAyMSJ9XSxbImNpcmNsZSIse2N4OiI4LjUiLGN5OiI4LjUiLHI6IjEuNSJ9XSxbImxpbmUiLHt4MToiOS41NjA2NiIseTE6IjkuNTYwNjYiLHgyOiIxMiIseTI6IjEyIn1dLFsibGluZSIse3gxOiIxNyIseTE6IjE3Iix4MjoiMTQuODIiLHkyOiIxNC44MiJ9XSxbImNpcmNsZSIse2N4OiI4LjUiLGN5OiIxNS41IixyOiIxLjUifV0sWyJsaW5lIix7eDE6IjkuNTYwNjYiLHkxOiIxNC40MzkzNCIseDI6IjE3Iix5MjoiNyJ9XV0sTWw9W1sicmVjdCIse3dpZHRoOiIxOCIsaGVpZ2h0OiIxOCIseDoiMyIseToiMyIscng6IjIifV0sWyJwYXRoIix7ZDoiTTkgOGg3In1dLFsicGF0aCIse2Q6Ik04IDEyaDYifV0sWyJwYXRoIix7ZDoiTTExIDE2aDUifV1dLGd5PVtbInBhdGgiLHtkOiJNMjEgMTAuNjU2VjE5YTIgMiAwIDAgMS0yIDJINWEyIDIgMCAwIDEtMi0yVjVhMiAyIDAgMCAxIDItMmgxMi4zNDQifV0sWyJwYXRoIix7ZDoibTkgMTEgMyAzTDIyIDQifV1dLGJ5PVtbInJlY3QiLHt3aWR0aDoiMTgiLGhlaWdodDoiMTgiLHg6IjMiLHk6IjMiLHJ4OiIyIn1dLFsicGF0aCIse2Q6Im05IDEyIDIgMiA0LTQifV1dLHZ5PVtbInJlY3QiLHt3aWR0aDoiMTgiLGhlaWdodDoiMTgiLHg6IjMiLHk6IjMiLHJ4OiIyIn1dLFsicGF0aCIse2Q6Im0xNiAxMC00IDQtNC00In1dXSx5eT1bWyJyZWN0Iix7d2lkdGg6IjE4IixoZWlnaHQ6IjE4Iix4OiIzIix5OiIzIixyeDoiMiJ9XSxbInBhdGgiLHtkOiJtMTQgMTYtNC00IDQtNCJ9XV0seHk9W1sicmVjdCIse3dpZHRoOiIxOCIsaGVpZ2h0OiIxOCIseDoiMyIseToiMyIscng6IjIifV0sWyJwYXRoIix7ZDoibTEwIDggNCA0LTQgNCJ9XV0sd3k9W1sicmVjdCIse3dpZHRoOiIxOCIsaGVpZ2h0OiIxOCIseDoiMyIseToiMyIscng6IjIifV0sWyJwYXRoIix7ZDoibTggMTQgNC00IDQgNCJ9XV0sQjh0PVtbInBhdGgiLHtkOiJNMTAgOS41IDggMTJsMiAyLjUifV0sWyJwYXRoIix7ZDoiTTE0IDIxaDEifV0sWyJwYXRoIix7ZDoibTE0IDkuNSAyIDIuNS0yIDIuNSJ9XSxbInBhdGgiLHtkOiJNNSAyMWEyIDIgMCAwIDEtMi0yVjVhMiAyIDAgMCAxIDItMmgxNGEyIDIgMCAwIDEgMiAydjE0YTIgMiAwIDAgMS0yIDIifV0sWyJwYXRoIix7ZDoiTTkgMjFoMSJ9XV0sTXk9W1sicGF0aCIse2Q6Im0xMCA5LTMgMyAzIDMifV0sWyJwYXRoIix7ZDoibTE0IDE1IDMtMy0zLTMifV0sWyJyZWN0Iix7eDoiMyIseToiMyIsd2lkdGg6IjE4IixoZWlnaHQ6IjE4IixyeDoiMiJ9XV0sSDh0PVtbInBhdGgiLHtkOiJNNSAyMWEyIDIgMCAwIDEtMi0yVjVhMiAyIDAgMCAxIDItMmgxNGEyIDIgMCAwIDEgMiAydjE0YTIgMiAwIDAgMS0yIDIifV0sWyJwYXRoIix7ZDoiTTkgMjFoMSJ9XSxbInBhdGgiLHtkOiJNMTQgMjFoMSJ9XV0senk9W1sicGF0aCIse2Q6Ik04IDd2NyJ9XSxbInBhdGgiLHtkOiJNMTIgN3Y0In1dLFsicGF0aCIse2Q6Ik0xNiA3djkifV0sWyJwYXRoIix7ZDoiTTUgM2EyIDIgMCAwIDAtMiAyIn1dLFsicGF0aCIse2Q6Ik05IDNoMSJ9XSxbInBhdGgiLHtkOiJNMTQgM2gxIn1dLFsicGF0aCIse2Q6Ik0xOSAzYTIgMiAwIDAgMSAyIDIifV0sWyJwYXRoIix7ZDoiTTIxIDl2MSJ9XSxbInBhdGgiLHtkOiJNMjEgMTR2MSJ9XSxbInBhdGgiLHtkOiJNMjEgMTlhMiAyIDAgMCAxLTIgMiJ9XSxbInBhdGgiLHtkOiJNMTQgMjFoMSJ9XSxbInBhdGgiLHtkOiJNOSAyMWgxIn1dLFsicGF0aCIse2Q6Ik01IDIxYTIgMiAwIDAgMS0yLTIifV0sWyJwYXRoIix7ZDoiTTMgMTR2MSJ9XSxbInBhdGgiLHtkOiJNMyA5djEifV1dLGt5PVtbInBhdGgiLHtkOiJNMTIuMDM0IDEyLjY4MWEuNDk4LjQ5OCAwIDAgMSAuNjQ3LS42NDdsOSAzLjVhLjUuNSAwIDAgMS0uMDMzLjk0M2wtMy40NDQgMS4wNjhhMSAxIDAgMCAwLS42Ni42NmwtMS4wNjcgMy40NDNhLjUuNSAwIDAgMS0uOTQzLjAzM3oifV0sWyJwYXRoIix7ZDoiTTUgM2EyIDIgMCAwIDAtMiAyIn1dLFsicGF0aCIse2Q6Ik0xOSAzYTIgMiAwIDAgMSAyIDIifV0sWyJwYXRoIix7ZDoiTTUgMjFhMiAyIDAgMCAxLTItMiJ9XSxbInBhdGgiLHtkOiJNOSAzaDEifV0sWyJwYXRoIix7ZDoiTTkgMjFoMiJ9XSxbInBhdGgiLHtkOiJNMTQgM2gxIn1dLFsicGF0aCIse2Q6Ik0zIDl2MSJ9XSxbInBhdGgiLHtkOiJNMjEgOXYyIn1dLFsicGF0aCIse2Q6Ik0zIDE0djEifV1dLFN5PVtbInBhdGgiLHtkOiJNNSAzYTIgMiAwIDAgMC0yIDIifV0sWyJwYXRoIix7ZDoiTTE5IDNhMiAyIDAgMCAxIDIgMiJ9XSxbInBhdGgiLHtkOiJNMjEgMTlhMiAyIDAgMCAxLTIgMiJ9XSxbInBhdGgiLHtkOiJNNSAyMWEyIDIgMCAwIDEtMi0yIn1dLFsicGF0aCIse2Q6Ik05IDNoMSJ9XSxbInBhdGgiLHtkOiJNOSAyMWgxIn1dLFsicGF0aCIse2Q6Ik0xNCAzaDEifV0sWyJwYXRoIix7ZDoiTTE0IDIxaDEifV0sWyJwYXRoIix7ZDoiTTMgOXYxIn1dLFsicGF0aCIse2Q6Ik0yMSA5djEifV0sWyJwYXRoIix7ZDoiTTMgMTR2MSJ9XSxbInBhdGgiLHtkOiJNMjEgMTR2MSJ9XV0scTh0PVtbInBhdGgiLHtkOiJNMTQgMjFoMSJ9XSxbInBhdGgiLHtkOiJNMjEgMTR2MSJ9XSxbInBhdGgiLHtkOiJNMjEgMTlhMiAyIDAgMCAxLTIgMiJ9XSxbInBhdGgiLHtkOiJNMjEgOXYxIn1dLFsicGF0aCIse2Q6Ik0zIDE0djEifV0sWyJwYXRoIix7ZDoiTTMgNWEyIDIgMCAwIDEgMi0yaDE0YTIgMiAwIDAgMSAyIDIifV0sWyJwYXRoIix7ZDoiTTMgOXYxIn1dLFsicGF0aCIse2Q6Ik01IDIxYTIgMiAwIDAgMS0yLTIifV0sWyJwYXRoIix7ZDoiTTkgMjFoMSJ9XV0sQ3k9W1sicmVjdCIse3dpZHRoOiIxOCIsaGVpZ2h0OiIxOCIseDoiMyIseToiMyIscng6IjIiLHJ5OiIyIn1dLFsibGluZSIse3gxOiI4Iix4MjoiMTYiLHkxOiIxMiIseTI6IjEyIn1dLFsibGluZSIse3gxOiIxMiIseDI6IjEyIix5MToiMTYiLHkyOiIxNiJ9XSxbImxpbmUiLHt4MToiMTIiLHgyOiIxMiIseTE6IjgiLHkyOiI4In1dXSxfeT1bWyJyZWN0Iix7d2lkdGg6IjE4IixoZWlnaHQ6IjE4Iix4OiIzIix5OiIzIixyeDoiMiJ9XSxbImNpcmNsZSIse2N4OiIxMiIsY3k6IjEyIixyOiIxIn1dXSxUeT1bWyJyZWN0Iix7d2lkdGg6IjE4IixoZWlnaHQ6IjE4Iix4OiIzIix5OiIzIixyeDoiMiJ9XSxbInBhdGgiLHtkOiJNNyAxMGgxMCJ9XSxbInBhdGgiLHtkOiJNNyAxNGgxMCJ9XV0sTHk9W1sicmVjdCIse3dpZHRoOiIxOCIsaGVpZ2h0OiIxOCIseDoiMyIseToiMyIscng6IjIiLHJ5OiIyIn1dLFsicGF0aCIse2Q6Ik05IDE3YzIgMCAyLjgtMSAyLjgtMi44VjEwYzAtMiAxLTMuMyAzLjItMyJ9XSxbInBhdGgiLHtkOiJNOSAxMS4yaDUuNyJ9XV0sJHk9W1sicmVjdCIse3dpZHRoOiIxOCIsaGVpZ2h0OiIxOCIseDoiMyIseToiMyIscng6IjIifV0sWyJwYXRoIix7ZDoiTTggN3Y3In1dLFsicGF0aCIse2Q6Ik0xMiA3djQifV0sWyJwYXRoIix7ZDoiTTE2IDd2OSJ9XV0sQXk9W1sicmVjdCIse3dpZHRoOiIxOCIsaGVpZ2h0OiIxOCIseDoiMyIseToiMyIscng6IjIifV0sWyJwYXRoIix7ZDoiTTcgN3YxMCJ9XSxbInBhdGgiLHtkOiJNMTEgN3YxMCJ9XSxbInBhdGgiLHtkOiJtMTUgNyAyIDEwIn1dXSxEeT1bWyJwYXRoIix7ZDoiTTggMTZWOC41YS41LjUgMCAwIDEgLjktLjNsMi43IDMuNTk5YS41LjUgMCAwIDAgLjggMGwyLjctMy42YS41LjUgMCAwIDEgLjkuM1YxNiJ9XSxbInJlY3QiLHt4OiIzIix5OiIzIix3aWR0aDoiMTgiLGhlaWdodDoiMTgiLHJ4OiIyIn1dXSxFeT1bWyJyZWN0Iix7d2lkdGg6IjE4IixoZWlnaHQ6IjE4Iix4OiIzIix5OiIzIixyeDoiMiJ9XSxbInBhdGgiLHtkOiJNNyA4aDEwIn1dLFsicGF0aCIse2Q6Ik03IDEyaDEwIn1dLFsicGF0aCIse2Q6Ik03IDE2aDEwIn1dXSxQeT1bWyJyZWN0Iix7d2lkdGg6IjE4IixoZWlnaHQ6IjE4Iix4OiIzIix5OiIzIixyeDoiMiJ9XSxbInBhdGgiLHtkOiJNOCAxMmg4In1dXSxJeT1bWyJwYXRoIix7ZDoiTTEyLjAzNCAxMi42ODFhLjQ5OC40OTggMCAwIDEgLjY0Ny0uNjQ3bDkgMy41YS41LjUgMCAwIDEtLjAzMy45NDNsLTMuNDQ0IDEuMDY4YTEgMSAwIDAgMC0uNjYuNjZsLTEuMDY3IDMuNDQzYS41LjUgMCAwIDEtLjk0My4wMzN6In1dLFsicGF0aCIse2Q6Ik0yMSAxMVY1YTIgMiAwIDAgMC0yLTJINWEyIDIgMCAwIDAtMiAydjE0YTIgMiAwIDAgMCAyIDJoNiJ9XV0sTnk9W1sicGF0aCIse2Q6Ik0zLjYgMy42QTIgMiAwIDAgMSA1IDNoMTRhMiAyIDAgMCAxIDIgMnYxNGEyIDIgMCAwIDEtLjU5IDEuNDEifV0sWyJwYXRoIix7ZDoiTTMgOC43VjE5YTIgMiAwIDAgMCAyIDJoMTAuMyJ9XSxbInBhdGgiLHtkOiJtMiAyIDIwIDIwIn1dLFsicGF0aCIse2Q6Ik0xMyAxM2EzIDMgMCAxIDAgMC02SDl2MiJ9XSxbInBhdGgiLHtkOiJNOSAxN3YtMi4zIn1dXSxGeT1bWyJyZWN0Iix7d2lkdGg6IjE4IixoZWlnaHQ6IjE4Iix4OiIzIix5OiIzIixyeDoiMiJ9XSxbInBhdGgiLHtkOiJNOSAxN1Y3aDRhMyAzIDAgMCAxIDAgNkg5In1dXSxWOHQ9W1sicmVjdCIse3dpZHRoOiIxOCIsaGVpZ2h0OiIxOCIseDoiMyIseToiMyIscng6IjIifV0sWyJsaW5lIix7eDE6IjEwIix4MjoiMTAiLHkxOiIxNSIseTI6IjkifV0sWyJsaW5lIix7eDE6IjE0Iix4MjoiMTQiLHkxOiIxNSIseTI6IjkifV1dLHJvPVtbInBhdGgiLHtkOiJNMTIgM0g1YTIgMiAwIDAgMC0yIDJ2MTRhMiAyIDAgMCAwIDIgMmgxNGEyIDIgMCAwIDAgMi0ydi03In1dLFsicGF0aCIse2Q6Ik0xOC4zNzUgMi42MjVhMSAxIDAgMCAxIDMgM2wtOS4wMTMgOS4wMTRhMiAyIDAgMCAxLS44NTMuNTA1bC0yLjg3My44NGEuNS41IDAgMCAxLS42Mi0uNjJsLjg0LTIuODczYTIgMiAwIDAgMSAuNTA2LS44NTJ6In1dXSxPeT1bWyJyZWN0Iix7d2lkdGg6IjE4IixoZWlnaHQ6IjE4Iix4OiIzIix5OiIzIixyeDoiMiJ9XSxbInBhdGgiLHtkOiJNNyA3aDEwIn1dLFsicGF0aCIse2Q6Ik0xMCA3djEwIn1dLFsicGF0aCIse2Q6Ik0xNiAxN2EyIDIgMCAwIDEtMi0yVjcifV1dLFJ5PVtbInJlY3QiLHt3aWR0aDoiMTgiLGhlaWdodDoiMTgiLHg6IjMiLHk6IjMiLHJ4OiIyIn1dLFsicGF0aCIse2Q6Im0xNSA5LTYgNiJ9XSxbInBhdGgiLHtkOiJNOSA5aC4wMSJ9XSxbInBhdGgiLHtkOiJNMTUgMTVoLjAxIn1dXSxCeT1bWyJyZWN0Iix7d2lkdGg6IjE4IixoZWlnaHQ6IjE4Iix4OiIzIix5OiIzIixyeDoiMiJ9XSxbInBhdGgiLHtkOiJNMTIgMTJIOS41YTIuNSAyLjUgMCAwIDEgMC01SDE3In1dLFsicGF0aCIse2Q6Ik0xMiA3djEwIn1dLFsicGF0aCIse2Q6Ik0xNiA3djEwIn1dXSxIeT1bWyJyZWN0Iix7eDoiMyIseToiMyIsd2lkdGg6IjE4IixoZWlnaHQ6IjE4IixyeDoiMiJ9XSxbInBhdGgiLHtkOiJNOSA5LjAwM2ExIDEgMCAwIDEgMS41MTctLjg1OWw0Ljk5NyAyLjk5N2ExIDEgMCAwIDEgMCAxLjcxOGwtNC45OTcgMi45OTdBMSAxIDAgMCAxIDkgMTQuOTk2eiJ9XV0scXk9W1sicmVjdCIse3dpZHRoOiIxOCIsaGVpZ2h0OiIxOCIseDoiMyIseToiMyIscng6IjIifV0sWyJwYXRoIix7ZDoiTTggMTJoOCJ9XSxbInBhdGgiLHtkOiJNMTIgOHY4In1dXSxWeT1bWyJwYXRoIix7ZDoiTTEyIDd2NCJ9XSxbInBhdGgiLHtkOiJNNy45OTggOS4wMDNhNSA1IDAgMSAwIDgtLjAwNSJ9XSxbInJlY3QiLHt4OiIzIix5OiIzIix3aWR0aDoiMTgiLGhlaWdodDoiMTgiLHJ4OiIyIn1dXSxqOHQ9W1sicGF0aCIse2Q6Ik0yMSAxMWE4IDggMCAwIDAtOC04In1dLFsicGF0aCIse2Q6Ik0yMSAxNXY0YTIgMiAwIDAgMS0yIDJINWEyIDIgMCAwIDEtMi0yVjVhMiAyIDAgMCAxIDItMmg0In1dXSxVOHQ9W1sicGF0aCIse2Q6Ik03IDEyaDJsMiA1IDItMTBoNCJ9XSxbInJlY3QiLHt4OiIzIix5OiIzIix3aWR0aDoiMTgiLGhlaWdodDoiMTgiLHJ4OiIyIn1dXSxqeT1bWyJyZWN0Iix7d2lkdGg6IjE4IixoZWlnaHQ6IjE4Iix4OiIzIix5OiIzIixyeDoiMiJ9XSxbImNpcmNsZSIse2N4OiI4LjUiLGN5OiI4LjUiLHI6IjEuNSJ9XSxbImxpbmUiLHt4MToiOS41NjA2NiIseTE6IjkuNTYwNjYiLHgyOiIxMiIseTI6IjEyIn1dLFsibGluZSIse3gxOiIxNyIseTE6IjE3Iix4MjoiMTQuODIiLHkyOiIxNC44MiJ9XSxbImNpcmNsZSIse2N4OiI4LjUiLGN5OiIxNS41IixyOiIxLjUifV0sWyJsaW5lIix7eDE6IjkuNTYwNjYiLHkxOiIxNC40MzkzNCIseDI6IjE3Iix5MjoiNyJ9XV0sVXk9W1sicmVjdCIse3dpZHRoOiIxOCIsaGVpZ2h0OiIxOCIseDoiMyIseToiMyIscng6IjIifV0sWyJwYXRoIix7ZDoiTTE2IDguOVY3SDhsNCA1LTQgNWg4di0xLjkifV1dLFd5PVtbInJlY3QiLHt3aWR0aDoiMTgiLGhlaWdodDoiMTgiLHg6IjMiLHk6IjMiLHJ4OiIyIn1dLFsibGluZSIse3gxOiI5Iix4MjoiMTUiLHkxOiIxNSIseTI6IjkifV1dLEd5PVtbInBhdGgiLHtkOiJNOCAxOUg1Yy0xIDAtMi0xLTItMlY3YzAtMSAxLTIgMi0yaDMifV0sWyJwYXRoIix7ZDoiTTE2IDVoM2MxIDAgMiAxIDIgMnYxMGMwIDEtMSAyLTIgMmgtMyJ9XSxbImxpbmUiLHt4MToiMTIiLHgyOiIxMiIseTE6IjQiLHkyOiIyMCJ9XV0sWXk9W1sicGF0aCIse2Q6Ik01IDhWNWMwLTEgMS0yIDItMmgxMGMxIDAgMiAxIDIgMnYzIn1dLFsicGF0aCIse2Q6Ik0xOSAxNnYzYzAgMS0xIDItMiAySDdjLTEgMC0yLTEtMi0ydi0zIn1dLFsibGluZSIse3gxOiI0Iix4MjoiMjAiLHkxOiIxMiIseTI6IjEyIn1dXSxXOHQ9W1sicGF0aCIse2Q6Ik00IDEwYy0xLjEgMC0yLS45LTItMlY0YzAtMS4xLjktMiAyLTJoNGMxLjEgMCAyIC45IDIgMiJ9XSxbInBhdGgiLHtkOiJNMTAgMTZjLTEuMSAwLTItLjktMi0ydi00YzAtMS4xLjktMiAyLTJoNGMxLjEgMCAyIC45IDIgMiJ9XSxbInJlY3QiLHt3aWR0aDoiOCIsaGVpZ2h0OiI4Iix4OiIxNCIseToiMTQiLHJ4OiIyIn1dXSxHOHQ9W1sicmVjdCIse3g6IjMiLHk6IjMiLHdpZHRoOiIxOCIsaGVpZ2h0OiIxOCIscng6IjIifV0sWyJyZWN0Iix7eDoiOCIseToiOCIsd2lkdGg6IjgiLGhlaWdodDoiOCIscng6IjEifV1dLFk4dD1bWyJwYXRoIix7ZDoiTTExLjAzNSA3LjY5YTEgMSAwIDAgMSAxLjkwOS4wMjRsLjczNyAxLjQ1MmExIDEgMCAwIDAgLjczNy41MzVsMS42MzQuMjU2YTEgMSAwIDAgMSAuNTg4IDEuODA2bC0xLjE3MiAxLjE2OGExIDEgMCAwIDAtLjI4Mi44NjZsLjI1OSAxLjYxM2ExIDEgMCAwIDEtMS41NDEgMS4xMzRsLTEuNDY1LS43NWExIDEgMCAwIDAtLjkxMiAwbC0xLjQ2NS43NWExIDEgMCAwIDEtMS41MzktMS4xMzNsLjI1OC0xLjYxM2ExIDEgMCAwIDAtLjI4Mi0uODY2bC0xLjE1Ni0xLjE1M2ExIDEgMCAwIDEgLjU3Mi0xLjgyMmwxLjYzMy0uMjU2YTEgMSAwIDAgMCAuNzM3LS41MzV6In1dLFsicmVjdCIse3g6IjMiLHk6IjMiLHdpZHRoOiIxOCIsaGVpZ2h0OiIxOCIscng6IjIifV1dLFo4dD1bWyJyZWN0Iix7d2lkdGg6IjE4IixoZWlnaHQ6IjE4Iix4OiIzIix5OiIzIixyeDoiMiJ9XSxbInJlY3QiLHt4OiI5Iix5OiI5Iix3aWR0aDoiNiIsaGVpZ2h0OiI2IixyeDoiMSJ9XV0sWnk9W1sicGF0aCIse2Q6Im03IDExIDItMi0yLTIifV0sWyJwYXRoIix7ZDoiTTExIDEzaDQifV0sWyJyZWN0Iix7d2lkdGg6IjE4IixoZWlnaHQ6IjE4Iix4OiIzIix5OiIzIixyeDoiMiIscnk6IjIifV1dLFh5PVtbInBhdGgiLHtkOiJNMTggMjFhNiA2IDAgMCAwLTEyIDAifV0sWyJjaXJjbGUiLHtjeDoiMTIiLGN5OiIxMSIscjoiNCJ9XSxbInJlY3QiLHt3aWR0aDoiMTgiLGhlaWdodDoiMTgiLHg6IjMiLHk6IjMiLHJ4OiIyIn1dXSxLeT1bWyJyZWN0Iix7d2lkdGg6IjE4IixoZWlnaHQ6IjE4Iix4OiIzIix5OiIzIixyeDoiMiJ9XSxbImNpcmNsZSIse2N4OiIxMiIsY3k6IjEwIixyOiIzIn1dLFsicGF0aCIse2Q6Ik03IDIxdi0yYTIgMiAwIDAgMSAyLTJoNmEyIDIgMCAwIDEgMiAydjIifV1dLFF5PVtbInJlY3QiLHt3aWR0aDoiMTgiLGhlaWdodDoiMTgiLHg6IjMiLHk6IjMiLHJ4OiIyIixyeToiMiJ9XSxbInBhdGgiLHtkOiJtMTUgOS02IDYifV0sWyJwYXRoIix7ZDoibTkgOSA2IDYifV1dLFg4dD1bWyJyZWN0Iix7d2lkdGg6IjE4IixoZWlnaHQ6IjE4Iix4OiIzIix5OiIzIixyeDoiMiJ9XV0sSzh0PVtbInBhdGgiLHtkOiJNMTYgMTJ2MmEyIDIgMCAwIDEtMiAySDlhMSAxIDAgMCAwLTEgMXYzYTIgMiAwIDAgMCAyIDJoMTBhMiAyIDAgMCAwIDItMlYxMGEyIDIgMCAwIDAtMi0yaDAifV0sWyJwYXRoIix7ZDoiTTQgMTZhMiAyIDAgMCAxLTItMlY0YTIgMiAwIDAgMSAyLTJoMTBhMiAyIDAgMCAxIDIgMnYzYTEgMSAwIDAgMS0xIDFoLTVhMiAyIDAgMCAwLTIgMnYyIn1dXSxROHQ9W1sicGF0aCIse2Q6Ik0xMCAyMmEyIDIgMCAwIDEtMi0yIn1dLFsicGF0aCIse2Q6Ik0xNCAyYTIgMiAwIDAgMSAyIDIifV0sWyJwYXRoIix7ZDoiTTE2IDIyaC0yIn1dLFsicGF0aCIse2Q6Ik0yIDEwVjgifV0sWyJwYXRoIix7ZDoiTTIgNGEyIDIgMCAwIDEgMi0yIn1dLFsicGF0aCIse2Q6Ik0yMCA4YTIgMiAwIDAgMSAyIDIifV0sWyJwYXRoIix7ZDoiTTIyIDE0djIifV0sWyJwYXRoIix7ZDoiTTIyIDIwYTIgMiAwIDAgMS0yIDIifV0sWyJwYXRoIix7ZDoiTTQgMTZhMiAyIDAgMCAxLTItMiJ9XSxbInBhdGgiLHtkOiJNOCAxMGEyIDIgMCAwIDEgMi0yaDVhMSAxIDAgMCAxIDEgMXY1YTIgMiAwIDAgMS0yIDJIOWExIDEgMCAwIDEtMS0xeiJ9XSxbInBhdGgiLHtkOiJNOCAyaDIifV1dLEo4dD1bWyJwYXRoIix7ZDoiTTEwIDIyYTIgMiAwIDAgMS0yLTIifV0sWyJwYXRoIix7ZDoiTTE2IDIyaC0yIn1dLFsicGF0aCIse2Q6Ik0xNiA0YTIgMiAwIDAgMC0yLTJINGEyIDIgMCAwIDAtMiAydjEwYTIgMiAwIDAgMCAyIDJoM2ExIDEgMCAwIDAgMS0xdi01YTIgMiAwIDAgMSAyLTJoNWExIDEgMCAwIDAgMS0xeiJ9XSxbInBhdGgiLHtkOiJNMjAgOGEyIDIgMCAwIDEgMiAyIn1dLFsicGF0aCIse2Q6Ik0yMiAxNHYyIn1dLFsicGF0aCIse2Q6Ik0yMiAyMGEyIDIgMCAwIDEtMiAyIn1dXSxlZHQ9W1sicGF0aCIse2Q6Ik00IDE2YTIgMiAwIDAgMS0yLTJWNGEyIDIgMCAwIDEgMi0yaDEwYTIgMiAwIDAgMSAyIDJ2M2ExIDEgMCAwIDAgMSAxaDNhMiAyIDAgMCAxIDIgMnYxMGEyIDIgMCAwIDEtMiAySDEwYTIgMiAwIDAgMS0yLTJ2LTNhMSAxIDAgMCAwLTEtMXoifV1dLHRkdD1bWyJwYXRoIix7ZDoiTTEzLjc3IDMuMDQzYTM0IDM0IDAgMCAwLTMuNTQgMCJ9XSxbInBhdGgiLHtkOiJNMTMuNzcxIDIwLjk1NmEzMyAzMyAwIDAgMS0zLjU0MS4wMDEifV0sWyJwYXRoIix7ZDoiTTIwLjE4IDE3Ljc0Yy0uNTEgMS4xNS0xLjI5IDEuOTMtMi40MzkgMi40NCJ9XSxbInBhdGgiLHtkOiJNMjAuMTggNi4yNTljLS41MS0xLjE0OC0xLjI5MS0xLjkyOS0yLjQ0LTIuNDM4In1dLFsicGF0aCIse2Q6Ik0yMC45NTcgMTAuMjNhMzMgMzMgMCAwIDEgMCAzLjU0In1dLFsicGF0aCIse2Q6Ik0zLjA0MyAxMC4yM2EzNCAzNCAwIDAgMCAuMDAxIDMuNTQxIn1dLFsicGF0aCIse2Q6Ik02LjI2IDIwLjE3OWMtMS4xNS0uNTA4LTEuOTMtMS4yOS0yLjQ0LTIuNDM4In1dLFsicGF0aCIse2Q6Ik02LjI2IDMuODJjLTEuMTQ5LjUxLTEuOTMgMS4yOTEtMi40NCAyLjQ0In1dXSxhZHQ9W1sicGF0aCIse2Q6Ik0xMiAzYzcuMiAwIDkgMS44IDkgOXMtMS44IDktOSA5LTktMS44LTktOSAxLjgtOSA5LTkifV1dLGlkdD1bWyJwYXRoIix7ZDoiTTE1LjIzNiAyMmEzIDMgMCAwIDAtMi4yLTUifV0sWyJwYXRoIix7ZDoiTTE2IDIwYTMgMyAwIDAgMSAzLTNoMWEyIDIgMCAwIDAgMi0ydi0yYTQgNCAwIDAgMC00LTRWNCJ9XSxbInBhdGgiLHtkOiJNMTggMTNoLjAxIn1dLFsicGF0aCIse2Q6Ik0xOCA2YTQgNCAwIDAgMC00IDQgNyA3IDAgMCAwLTcgN2MwLTUgNC01IDQtMTAuNWE0LjUgNC41IDAgMSAwLTkgMCAyLjUgMi41IDAgMCAwIDUgMEM3IDEwIDMgMTEgMyAxN2MwIDIuOCAyLjIgNSA1IDVoMTAifV1dLHJkdD1bWyJwYXRoIix7ZDoiTTE0IDEzVjguNUMxNCA3IDE1IDcgMTUgNWEzIDMgMCAwIDAtNiAwYzAgMiAxIDIgMSAzLjVWMTMifV0sWyJwYXRoIix7ZDoiTTIwIDE1LjVhMi41IDIuNSAwIDAgMC0yLjUtMi41aC0xMUEyLjUgMi41IDAgMCAwIDQgMTUuNVYxN2ExIDEgMCAwIDAgMSAxaDE0YTEgMSAwIDAgMCAxLTF6In1dLFsicGF0aCIse2Q6Ik01IDIyaDE0In1dXSxzZHQ9W1sicGF0aCIse2Q6Ik0xMiAxOC4zMzhhMi4xIDIuMSAwIDAgMC0uOTg3LjI0NEw2LjM5NiAyMS4wMWEuNTMuNTMgMCAwIDEtLjc3LS41NmwuODgxLTUuMTM5YTIuMTIgMi4xMiAwIDAgMC0uNjExLTEuODc5TDIuMTYgOS43OTVhLjUzLjUzIDAgMCAxIC4yOTQtLjkwNmw1LjE2NS0uNzU1YTIuMTIgMi4xMiAwIDAgMCAxLjU5Ny0xLjE2bDIuMzA5LTQuNjc5QS41My41MyAwIDAgMSAxMiAyIn1dXSxuZHQ9W1sicGF0aCIse2Q6Im0xMC4zNDQgNC42ODggMS4xODEtMi4zOTNhLjUzLjUzIDAgMCAxIC45NSAwbDIuMzEgNC42NzlhMi4xMiAyLjEyIDAgMCAwIDEuNTk1IDEuMTZsNS4xNjYuNzU2YS41My41MyAwIDAgMSAuMjk0LjkwNGwtMy4yMzcgMy4xNTIifV0sWyJwYXRoIix7ZDoibTE3Ljk0NSAxNy45NDUuNDMgMi41MDVhLjUzLjUzIDAgMCAxLS43NzEuNTZsLTQuNjE4LTIuNDI4YTIuMTIgMi4xMiAwIDAgMC0xLjk3MyAwTDYuMzk2IDIxLjAxYS41My41MyAwIDAgMS0uNzctLjU2bC44ODEtNS4xMzlhMi4xMiAyLjEyIDAgMCAwLS42MTEtMS44NzlMMi4xNiA5Ljc5NWEuNTMuNTMgMCAwIDEgLjI5NC0uOTA2bDUuMTY1LS43NTVhOCA4IDAgMCAwIC40LS4wOTkifV0sWyJwYXRoIix7ZDoibTIgMiAyMCAyMCJ9XV0sb2R0PVtbInBhdGgiLHtkOiJNMTEuNTI1IDIuMjk1YS41My41MyAwIDAgMSAuOTUgMGwyLjMxIDQuNjc5YTIuMTIzIDIuMTIzIDAgMCAwIDEuNTk1IDEuMTZsNS4xNjYuNzU2YS41My41MyAwIDAgMSAuMjk0LjkwNGwtMy43MzYgMy42MzhhMi4xMjMgMi4xMjMgMCAwIDAtLjYxMSAxLjg3OGwuODgyIDUuMTRhLjUzLjUzIDAgMCAxLS43NzEuNTZsLTQuNjE4LTIuNDI4YTIuMTIyIDIuMTIyIDAgMCAwLTEuOTczIDBMNi4zOTYgMjEuMDFhLjUzLjUzIDAgMCAxLS43Ny0uNTZsLjg4MS01LjEzOWEyLjEyMiAyLjEyMiAwIDAgMC0uNjExLTEuODc5TDIuMTYgOS43OTVhLjUzLjUzIDAgMCAxIC4yOTQtLjkwNmw1LjE2NS0uNzU1YTIuMTIyIDIuMTIyIDAgMCAwIDEuNTk3LTEuMTZ6In1dXSxsZHQ9W1sicGF0aCIse2Q6Ik0xMy45NzEgNC4yODVBMiAyIDAgMCAxIDE3IDZ2MTJhMiAyIDAgMCAxLTMuMDI5IDEuNzE1bC05Ljk5Ny01Ljk5OGEyIDIgMCAwIDEtLjAwMy0zLjQzMnoifV0sWyJwYXRoIix7ZDoiTTIxIDIwVjQifV1dLGNkdD1bWyJwYXRoIix7ZDoiTTEwLjAyOSA0LjI4NUEyIDIgMCAwIDAgNyA2djEyYTIgMiAwIDAgMCAzLjAyOSAxLjcxNWw5Ljk5Ny01Ljk5OGEyIDIgMCAwIDAgLjAwMy0zLjQzMnoifV0sWyJwYXRoIix7ZDoiTTMgNHYxNiJ9XV0sZGR0PVtbInBhdGgiLHtkOiJNMTEgMnYyIn1dLFsicGF0aCIse2Q6Ik01IDJ2MiJ9XSxbInBhdGgiLHtkOiJNNSAzSDRhMiAyIDAgMCAwLTIgMnY0YTYgNiAwIDAgMCAxMiAwVjVhMiAyIDAgMCAwLTItMmgtMSJ9XSxbInBhdGgiLHtkOiJNOCAxNWE2IDYgMCAwIDAgMTIgMHYtMyJ9XSxbImNpcmNsZSIse2N4OiIyMCIsY3k6IjEwIixyOiIyIn1dXSxoZHQ9W1sicGF0aCIse2Q6Ik0yMSA5YTIuNCAyLjQgMCAwIDAtLjcwNi0xLjcwNmwtMy41ODgtMy41ODhBMi40IDIuNCAwIDAgMCAxNSAzSDVhMiAyIDAgMCAwLTIgMnYxNGEyIDIgMCAwIDAgMiAyaDE0YTIgMiAwIDAgMCAyLTJ6In1dLFsicGF0aCIse2Q6Ik0xNSAzdjVhMSAxIDAgMCAwIDEgMWg1In1dLFsicGF0aCIse2Q6Ik04IDEzaC4wMSJ9XSxbInBhdGgiLHtkOiJNMTYgMTNoLjAxIn1dLFsicGF0aCIse2Q6Ik0xMCAxNnMuOCAxIDIgMWMxLjMgMCAyLTEgMi0xIn1dXSxwZHQ9W1sicGF0aCIse2Q6Ik0yMSA5YTIuNCAyLjQgMCAwIDAtLjcwNi0xLjcwNmwtMy41ODgtMy41ODhBMi40IDIuNCAwIDAgMCAxNSAzSDVhMiAyIDAgMCAwLTIgMnYxNGEyIDIgMCAwIDAgMiAyaDE0YTIgMiAwIDAgMCAyLTJ6In1dLFsicGF0aCIse2Q6Ik0xNSAzdjVhMSAxIDAgMCAwIDEgMWg1In1dXSx1ZHQ9W1sicGF0aCIse2Q6Ik0xMS4yNjQgMi4yMDVBNCA0IDAgMCAwIDYuNDIgNC4yMTFsLTQgOGE0IDQgMCAwIDAgMS4zNTkgNS4xMTdsNiA0YTQgNCAwIDAgMCA0LjQzOCAwbDYtNGE0IDQgMCAwIDAgMS41NzYtNC41OTJsLTItNmE0IDQgMCAwIDAtMi41My0yLjUzeiJ9XSxbInBhdGgiLHtkOiJNMTEuOTkgMjIgMTQgMTJsNy44MjIgMy4xODQifV0sWyJwYXRoIix7ZDoiTTE0IDEyIDguNDcgMi4zMDIifV1dLGZkdD1bWyJwYXRoIix7ZDoiTTE1IDIxdi01YTEgMSAwIDAgMC0xLTFoLTRhMSAxIDAgMCAwLTEgMXY1In1dLFsicGF0aCIse2Q6Ik0xNy43NzQgMTAuMzFhMS4xMiAxLjEyIDAgMCAwLTEuNTQ5IDAgMi41IDIuNSAwIDAgMS0zLjQ1MSAwIDEuMTIgMS4xMiAwIDAgMC0xLjU0OCAwIDIuNSAyLjUgMCAwIDEtMy40NTIgMCAxLjEyIDEuMTIgMCAwIDAtMS41NDkgMCAyLjUgMi41IDAgMCAxLTMuNzctMy4yNDhsMi44ODktNC4xODRBMiAyIDAgMCAxIDcgMmgxMGEyIDIgMCAwIDEgMS42NTMuODczbDIuODk1IDQuMTkyYTIuNSAyLjUgMCAwIDEtMy43NzQgMy4yNDQifV0sWyJwYXRoIix7ZDoiTTQgMTAuOTVWMTlhMiAyIDAgMCAwIDIgMmgxMmEyIDIgMCAwIDAgMi0ydi04LjA1In1dXSxtZHQ9W1sicmVjdCIse3dpZHRoOiIyMCIsaGVpZ2h0OiI2Iix4OiIyIix5OiI0IixyeDoiMiJ9XSxbInJlY3QiLHt3aWR0aDoiMjAiLGhlaWdodDoiNiIseDoiMiIseToiMTQiLHJ4OiIyIn1dXSxnZHQ9W1sicmVjdCIse3dpZHRoOiI2IixoZWlnaHQ6IjIwIix4OiI0Iix5OiIyIixyeDoiMiJ9XSxbInJlY3QiLHt3aWR0aDoiNiIsaGVpZ2h0OiIyMCIseDoiMTQiLHk6IjIiLHJ4OiIyIn1dXSxiZHQ9W1sicGF0aCIse2Q6Ik0xNiA0SDlhMyAzIDAgMCAwLTIuODMgNCJ9XSxbInBhdGgiLHtkOiJNMTQgMTJhNCA0IDAgMCAxIDAgOEg2In1dLFsibGluZSIse3gxOiI0Iix4MjoiMjAiLHkxOiIxMiIseTI6IjEyIn1dXSx2ZHQ9W1sicGF0aCIse2Q6Im00IDUgOCA4In1dLFsicGF0aCIse2Q6Im0xMiA1LTggOCJ9XSxbInBhdGgiLHtkOiJNMjAgMTloLTRjMC0xLjUuNDQtMiAxLjUtMi41UzIwIDE1LjMzIDIwIDE0YzAtLjQ3LS4xNy0uOTMtLjQ4LTEuMjlhMi4xMSAyLjExIDAgMCAwLTIuNjItLjQ0Yy0uNDIuMjQtLjc0LjYyLS45IDEuMDcifV1dLHlkdD1bWyJjaXJjbGUiLHtjeDoiMTIiLGN5OiIxMiIscjoiNCJ9XSxbInBhdGgiLHtkOiJNMTIgNGguMDEifV0sWyJwYXRoIix7ZDoiTTIwIDEyaC4wMSJ9XSxbInBhdGgiLHtkOiJNMTIgMjBoLjAxIn1dLFsicGF0aCIse2Q6Ik00IDEyaC4wMSJ9XSxbInBhdGgiLHtkOiJNMTcuNjU3IDYuMzQzaC4wMSJ9XSxbInBhdGgiLHtkOiJNMTcuNjU3IDE3LjY1N2guMDEifV0sWyJwYXRoIix7ZDoiTTYuMzQzIDE3LjY1N2guMDEifV0sWyJwYXRoIix7ZDoiTTYuMzQzIDYuMzQzaC4wMSJ9XV0seGR0PVtbImNpcmNsZSIse2N4OiIxMiIsY3k6IjEyIixyOiI0In1dLFsicGF0aCIse2Q6Ik0xMiAzdjEifV0sWyJwYXRoIix7ZDoiTTEyIDIwdjEifV0sWyJwYXRoIix7ZDoiTTMgMTJoMSJ9XSxbInBhdGgiLHtkOiJNMjAgMTJoMSJ9XSxbInBhdGgiLHtkOiJtMTguMzY0IDUuNjM2LS43MDcuNzA3In1dLFsicGF0aCIse2Q6Im02LjM0MyAxNy42NTctLjcwNy43MDcifV0sWyJwYXRoIix7ZDoibTUuNjM2IDUuNjM2LjcwNy43MDcifV0sWyJwYXRoIix7ZDoibTE3LjY1NyAxNy42NTcuNzA3LjcwNyJ9XV0sd2R0PVtbInBhdGgiLHtkOiJNMTIgMnYyIn1dLFsicGF0aCIse2Q6Ik0xNC44MzcgMTYuMzg1YTYgNiAwIDEgMS03LjIyMy03LjIyMmMuNjI0LS4xNDcuOTcuNjYuNzE1IDEuMjQ4YTQgNCAwIDAgMCA1LjI2IDUuMjU5Yy41ODktLjI1NSAxLjM5Ni4wOSAxLjI0OC43MTUifV0sWyJwYXRoIix7ZDoiTTE2IDEyYTQgNCAwIDAgMC00LTQifV0sWyJwYXRoIix7ZDoibTE5IDUtMS4yNTYgMS4yNTYifV0sWyJwYXRoIix7ZDoiTTIwIDEyaDIifV1dLE1kdD1bWyJwYXRoIix7ZDoiTTEwIDIxdi0xIn1dLFsicGF0aCIse2Q6Ik0xMCA0VjMifV0sWyJwYXRoIix7ZDoiTTEwIDlhMyAzIDAgMCAwIDAgNiJ9XSxbInBhdGgiLHtkOiJtMTQgMjAgMS4yNS0yLjVMMTggMTgifV0sWyJwYXRoIix7ZDoibTE0IDQgMS4yNSAyLjVMMTggNiJ9XSxbInBhdGgiLHtkOiJtMTcgMjEtMy02IDEuNS0zSDIyIn1dLFsicGF0aCIse2Q6Im0xNyAzLTMgNiAxLjUgMyJ9XSxbInBhdGgiLHtkOiJNMiAxMmgxIn1dLFsicGF0aCIse2Q6Im0yMCAxMC0xLjUgMiAxLjUgMiJ9XSxbInBhdGgiLHtkOiJtMy42NCAxOC4zNi43LS43In1dLFsicGF0aCIse2Q6Im00LjM0IDYuMzQtLjctLjcifV1dLHpkdD1bWyJjaXJjbGUiLHtjeDoiMTIiLGN5OiIxMiIscjoiNCJ9XSxbInBhdGgiLHtkOiJNMTIgMnYyIn1dLFsicGF0aCIse2Q6Ik0xMiAyMHYyIn1dLFsicGF0aCIse2Q6Im00LjkzIDQuOTMgMS40MSAxLjQxIn1dLFsicGF0aCIse2Q6Im0xNy42NiAxNy42NiAxLjQxIDEuNDEifV0sWyJwYXRoIix7ZDoiTTIgMTJoMiJ9XSxbInBhdGgiLHtkOiJNMjAgMTJoMiJ9XSxbInBhdGgiLHtkOiJtNi4zNCAxNy42Ni0xLjQxIDEuNDEifV0sWyJwYXRoIix7ZDoibTE5LjA3IDQuOTMtMS40MSAxLjQxIn1dXSxrZHQ9W1sicGF0aCIse2Q6Ik0xMiAydjgifV0sWyJwYXRoIix7ZDoibTQuOTMgMTAuOTMgMS40MSAxLjQxIn1dLFsicGF0aCIse2Q6Ik0yIDE4aDIifV0sWyJwYXRoIix7ZDoiTTIwIDE4aDIifV0sWyJwYXRoIix7ZDoibTE5LjA3IDEwLjkzLTEuNDEgMS40MSJ9XSxbInBhdGgiLHtkOiJNMjIgMjJIMiJ9XSxbInBhdGgiLHtkOiJtOCA2IDQtNCA0IDQifV0sWyJwYXRoIix7ZDoiTTE2IDE4YTQgNCAwIDAgMC04IDAifV1dLFNkdD1bWyJwYXRoIix7ZDoiTTEyIDEwVjIifV0sWyJwYXRoIix7ZDoibTQuOTMgMTAuOTMgMS40MSAxLjQxIn1dLFsicGF0aCIse2Q6Ik0yIDE4aDIifV0sWyJwYXRoIix7ZDoiTTIwIDE4aDIifV0sWyJwYXRoIix7ZDoibTE5LjA3IDEwLjkzLTEuNDEgMS40MSJ9XSxbInBhdGgiLHtkOiJNMjIgMjJIMiJ9XSxbInBhdGgiLHtkOiJtMTYgNi00IDQtNC00In1dLFsicGF0aCIse2Q6Ik0xNiAxOGE0IDQgMCAwIDAtOCAwIn1dXSxDZHQ9W1sicGF0aCIse2Q6Im00IDE5IDgtOCJ9XSxbInBhdGgiLHtkOiJtMTIgMTktOC04In1dLFsicGF0aCIse2Q6Ik0yMCAxMmgtNGMwLTEuNS40NDItMiAxLjUtMi41UzIwIDguMzM0IDIwIDcuMDAyYzAtLjQ3Mi0uMTctLjkzLS40ODQtMS4yOWEyLjEwNSAyLjEwNSAwIDAgMC0yLjYxNy0uNDM2Yy0uNDIuMjM5LS43MzguNjE0LS44OTkgMS4wNiJ9XV0sX2R0PVtbInBhdGgiLHtkOiJNMTEgMTdhNCA0IDAgMCAxLTggMFY1YTIgMiAwIDAgMSAyLTJoNGEyIDIgMCAwIDEgMiAyWiJ9XSxbInBhdGgiLHtkOiJNMTYuNyAxM0gxOWEyIDIgMCAwIDEgMiAydjRhMiAyIDAgMCAxLTIgMkg3In1dLFsicGF0aCIse2Q6Ik0gNyAxN2guMDEifV0sWyJwYXRoIix7ZDoibTExIDggMi4zLTIuM2EyLjQgMi40IDAgMCAxIDMuNDA0LjAwNEwxOC42IDcuNmEyLjQgMi40IDAgMCAxIC4wMjYgMy40MzRMOS45IDE5LjgifV1dLFRkdD1bWyJwYXRoIix7ZDoiTTEwIDIxVjNoOCJ9XSxbInBhdGgiLHtkOiJNNiAxNmg5In1dLFsicGF0aCIse2Q6Ik0xMCA5LjVoNyJ9XV0sTGR0PVtbInBhdGgiLHtkOiJNMTEgMTlINGEyIDIgMCAwIDEtMi0yVjdhMiAyIDAgMCAxIDItMmg1In1dLFsicGF0aCIse2Q6Ik0xMyA1aDdhMiAyIDAgMCAxIDIgMnYxMGEyIDIgMCAwIDEtMiAyaC01In1dLFsiY2lyY2xlIix7Y3g6IjEyIixjeToiMTIiLHI6IjMifV0sWyJwYXRoIix7ZDoibTE4IDIyLTMtMyAzLTMifV0sWyJwYXRoIix7ZDoibTYgMiAzIDMtMyAzIn1dXSwkZHQ9W1sicGF0aCIse2Q6Im0xMSAxOS02LTYifV0sWyJwYXRoIix7ZDoibTUgMjEtMi0yIn1dLFsicGF0aCIse2Q6Im04IDE2LTQgNCJ9XSxbInBhdGgiLHtkOiJNOS41IDE3LjUgMjEgNlYzaC0zTDYuNSAxNC41In1dXSxBZHQ9W1sicG9seWxpbmUiLHtwb2ludHM6IjE0LjUgMTcuNSAzIDYgMyAzIDYgMyAxNy41IDE0LjUifV0sWyJsaW5lIix7eDE6IjEzIix4MjoiMTkiLHkxOiIxOSIseTI6IjEzIn1dLFsibGluZSIse3gxOiIxNiIseDI6IjIwIix5MToiMTYiLHkyOiIyMCJ9XSxbImxpbmUiLHt4MToiMTkiLHgyOiIyMSIseTE6IjIxIix5MjoiMTkifV0sWyJwb2x5bGluZSIse3BvaW50czoiMTQuNSA2LjUgMTggMyAyMSAzIDIxIDYgMTcuNSA5LjUifV0sWyJsaW5lIix7eDE6IjUiLHgyOiI5Iix5MToiMTQiLHkyOiIxOCJ9XSxbImxpbmUiLHt4MToiNyIseDI6IjQiLHkxOiIxNyIseTI6IjIwIn1dLFsibGluZSIse3gxOiIzIix4MjoiNSIseTE6IjE5Iix5MjoiMjEifV1dLERkdD1bWyJwYXRoIix7ZDoibTE4IDIgNCA0In1dLFsicGF0aCIse2Q6Im0xNyA3IDMtMyJ9XSxbInBhdGgiLHtkOiJNMTkgOSA4LjcgMTkuM2MtMSAxLTIuNSAxLTMuNCAwbC0uNi0uNmMtMS0xLTEtMi41IDAtMy40TDE1IDUifV0sWyJwYXRoIix7ZDoibTkgMTEgNCA0In1dLFsicGF0aCIse2Q6Im01IDE5LTMgMyJ9XSxbInBhdGgiLHtkOiJtMTQgNCA2IDYifV1dLEVkdD1bWyJwYXRoIix7ZDoiTTkgM0g1YTIgMiAwIDAgMC0yIDJ2NG02LTZoMTBhMiAyIDAgMCAxIDIgMnY0TTkgM3YxOG0wIDBoMTBhMiAyIDAgMCAwIDItMlY5TTkgMjFINWEyIDIgMCAwIDEtMi0yVjltMCAwaDE4In1dXSxQZHQ9W1sicGF0aCIse2Q6Ik0xMiAyMXYtNiJ9XSxbInBhdGgiLHtkOiJNMTIgOVYzIn1dLFsicGF0aCIse2Q6Ik0zIDE1aDE4In1dLFsicGF0aCIse2Q6Ik0zIDloMTgifV0sWyJyZWN0Iix7d2lkdGg6IjE4IixoZWlnaHQ6IjE4Iix4OiIzIix5OiIzIixyeDoiMiJ9XV0sSWR0PVtbInBhdGgiLHtkOiJNMTIgMTVWOSJ9XSxbInBhdGgiLHtkOiJNMyAxNWgxOCJ9XSxbInBhdGgiLHtkOiJNMyA5aDE4In1dLFsicmVjdCIse3dpZHRoOiIxOCIsaGVpZ2h0OiIxOCIseDoiMyIseToiMyIscng6IjIifV1dLE5kdD1bWyJwYXRoIix7ZDoiTTE0IDE0djIifV0sWyJwYXRoIix7ZDoiTTE0IDIwdjIifV0sWyJwYXRoIix7ZDoiTTE0IDJ2MiJ9XSxbInBhdGgiLHtkOiJNMTQgOHYyIn1dLFsicGF0aCIse2Q6Ik0yIDE1aDgifV0sWyJwYXRoIix7ZDoiTTIgM2g2YTIgMiAwIDAgMSAyIDJ2MTRhMiAyIDAgMCAxLTIgMkgyIn1dLFsicGF0aCIse2Q6Ik0yIDloOCJ9XSxbInBhdGgiLHtkOiJNMjIgMTVoLTQifV0sWyJwYXRoIix7ZDoiTTIyIDNoLTJhMiAyIDAgMCAwLTIgMnYxNGEyIDIgMCAwIDAgMiAyaDIifV0sWyJwYXRoIix7ZDoiTTIyIDloLTQifV0sWyJwYXRoIix7ZDoiTTUgM3YxOCJ9XV0sRmR0PVtbInBhdGgiLHtkOiJNMTYgNUgzIn1dLFsicGF0aCIse2Q6Ik0xNiAxMkgzIn1dLFsicGF0aCIse2Q6Ik0xNiAxOUgzIn1dLFsicGF0aCIse2Q6Ik0yMSA1aC4wMSJ9XSxbInBhdGgiLHtkOiJNMjEgMTJoLjAxIn1dLFsicGF0aCIse2Q6Ik0yMSAxOWguMDEifV1dLE9kdD1bWyJwYXRoIix7ZDoiTTE1IDN2MTgifV0sWyJyZWN0Iix7d2lkdGg6IjE4IixoZWlnaHQ6IjE4Iix4OiIzIix5OiIzIixyeDoiMiJ9XSxbInBhdGgiLHtkOiJNMjEgOUgzIn1dLFsicGF0aCIse2Q6Ik0yMSAxNUgzIn1dXSxSZHQ9W1sicGF0aCIse2Q6Ik0xNCAxMGgyIn1dLFsicGF0aCIse2Q6Ik0xNSAyMnYtOCJ9XSxbInBhdGgiLHtkOiJNMTUgMnY0In1dLFsicGF0aCIse2Q6Ik0yIDEwaDIifV0sWyJwYXRoIix7ZDoiTTIwIDEwaDIifV0sWyJwYXRoIix7ZDoiTTMgMTloMTgifV0sWyJwYXRoIix7ZDoiTTMgMjJ2LTZhMiAyIDEzNSAwIDEgMi0yaDE0YTIgMiA0NSAwIDEgMiAydjYifV0sWyJwYXRoIix7ZDoiTTMgMnYyYTIgMiA0NSAwIDAgMiAyaDE0YTIgMiAxMzUgMCAwIDItMlYyIn1dLFsicGF0aCIse2Q6Ik04IDEwaDIifV0sWyJwYXRoIix7ZDoiTTkgMjJ2LTgifV0sWyJwYXRoIix7ZDoiTTkgMnY0In1dXSxCZHQ9W1sicGF0aCIse2Q6Ik0xMiAzdjE4In1dLFsicmVjdCIse3dpZHRoOiIxOCIsaGVpZ2h0OiIxOCIseDoiMyIseToiMyIscng6IjIifV0sWyJwYXRoIix7ZDoiTTMgOWgxOCJ9XSxbInBhdGgiLHtkOiJNMyAxNWgxOCJ9XV0sSGR0PVtbInJlY3QiLHt3aWR0aDoiMTYiLGhlaWdodDoiMjAiLHg6IjQiLHk6IjIiLHJ4OiIyIixyeToiMiJ9XSxbImxpbmUiLHt4MToiMTIiLHgyOiIxMi4wMSIseTE6IjE4Iix5MjoiMTgifV1dLHFkdD1bWyJyZWN0Iix7d2lkdGg6IjEwIixoZWlnaHQ6IjE0Iix4OiIzIix5OiI4IixyeDoiMiJ9XSxbInBhdGgiLHtkOiJNNSA0YTIgMiAwIDAgMSAyLTJoMTJhMiAyIDAgMCAxIDIgMnYxNmEyIDIgMCAwIDEtMiAyaC0yLjQifV0sWyJwYXRoIix7ZDoiTTggMThoLjAxIn1dXSxWZHQ9W1siY2lyY2xlIix7Y3g6IjciLGN5OiI3IixyOiI1In1dLFsiY2lyY2xlIix7Y3g6IjE3IixjeToiMTciLHI6IjUifV0sWyJwYXRoIix7ZDoiTTEyIDE3aDEwIn1dLFsicGF0aCIse2Q6Im0zLjQ2IDEwLjU0IDcuMDgtNy4wOCJ9XV0samR0PVtbInBhdGgiLHtkOiJNMTIuNTg2IDIuNTg2QTIgMiAwIDAgMCAxMS4xNzIgMkg0YTIgMiAwIDAgMC0yIDJ2Ny4xNzJhMiAyIDAgMCAwIC41ODYgMS40MTRsOC43MDQgOC43MDRhMi40MjYgMi40MjYgMCAwIDAgMy40MiAwbDYuNTgtNi41OGEyLjQyNiAyLjQyNiAwIDAgMCAwLTMuNDJ6In1dLFsiY2lyY2xlIix7Y3g6IjcuNSIsY3k6IjcuNSIscjoiLjUiLGZpbGw6ImN1cnJlbnRDb2xvciJ9XV0sVWR0PVtbInBhdGgiLHtkOiJNMTMuMTcyIDJhMiAyIDAgMCAxIDEuNDE0LjU4Nmw2LjcxIDYuNzFhMi40IDIuNCAwIDAgMSAwIDMuNDA4bC00LjU5MiA0LjU5MmEyLjQgMi40IDAgMCAxLTMuNDA4IDBsLTYuNzEtNi43MUEyIDIgMCAwIDEgNiA5LjE3MlYzYTEgMSAwIDAgMSAxLTF6In1dLFsicGF0aCIse2Q6Ik0yIDd2Ni4xNzJhMiAyIDAgMCAwIC41ODYgMS40MTRsNi43MSA2LjcxYTIuNCAyLjQgMCAwIDAgMy4xOTEuMTkzIn1dLFsiY2lyY2xlIix7Y3g6IjEwLjUiLGN5OiI2LjUiLHI6Ii41IixmaWxsOiJjdXJyZW50Q29sb3IifV1dLFdkdD1bWyJwYXRoIix7ZDoiTTQgNHYxNiJ9XV0sR2R0PVtbInBhdGgiLHtkOiJNNCA0djE2In1dLFsicGF0aCIse2Q6Ik05IDR2MTYifV1dLFlkdD1bWyJwYXRoIix7ZDoiTTQgNHYxNiJ9XSxbInBhdGgiLHtkOiJNOSA0djE2In1dLFsicGF0aCIse2Q6Ik0xNCA0djE2In1dXSxaZHQ9W1sicGF0aCIse2Q6Ik00IDR2MTYifV0sWyJwYXRoIix7ZDoiTTkgNHYxNiJ9XSxbInBhdGgiLHtkOiJNMTQgNHYxNiJ9XSxbInBhdGgiLHtkOiJNMTkgNHYxNiJ9XV0sWGR0PVtbInBhdGgiLHtkOiJNNCA0djE2In1dLFsicGF0aCIse2Q6Ik05IDR2MTYifV0sWyJwYXRoIix7ZDoiTTE0IDR2MTYifV0sWyJwYXRoIix7ZDoiTTE5IDR2MTYifV0sWyJwYXRoIix7ZDoiTTIyIDYgMiAxOCJ9XV0sS2R0PVtbImNpcmNsZSIse2N4OiIxNyIsY3k6IjQiLHI6IjIifV0sWyJwYXRoIix7ZDoiTTE1LjU5IDUuNDEgNS40MSAxNS41OSJ9XSxbImNpcmNsZSIse2N4OiI0IixjeToiMTciLHI6IjIifV0sWyJwYXRoIix7ZDoiTTEyIDIycy00LTktMS41LTExLjVTMjIgMTIgMjIgMTIifV1dLFFkdD1bWyJjaXJjbGUiLHtjeDoiMTIiLGN5OiIxMiIscjoiMTAifV0sWyJjaXJjbGUiLHtjeDoiMTIiLGN5OiIxMiIscjoiNiJ9XSxbImNpcmNsZSIse2N4OiIxMiIsY3k6IjEyIixyOiIyIn1dXSxKZHQ9W1sicGF0aCIse2Q6Im0xMC4wNjUgMTIuNDkzLTYuMTggMS4zMThhLjkzNC45MzQgMCAwIDEtMS4xMDgtLjcwMmwtLjUzNy0yLjE1YTEuMDcgMS4wNyAwIDAgMSAuNjkxLTEuMjY1bDEzLjUwNC00LjQ0In1dLFsicGF0aCIse2Q6Im0xMy41NiAxMS43NDcgNC4zMzItLjkyNCJ9XSxbInBhdGgiLHtkOiJtMTYgMjEtMy4xMDUtNi4yMSJ9XSxbInBhdGgiLHtkOiJNMTYuNDg1IDUuOTRhMiAyIDAgMCAxIDEuNDU1LTIuNDI1bDEuMDktLjI3MmExIDEgMCAwIDEgMS4yMTIuNzI3bDEuNTE1IDYuMDZhMSAxIDAgMCAxLS43MjcgMS4yMTNsLTEuMDkuMjcyYTIgMiAwIDAgMS0yLjQyNS0xLjQ1NXoifV0sWyJwYXRoIix7ZDoibTYuMTU4IDguNjMzIDEuMTE0IDQuNDU2In1dLFsicGF0aCIse2Q6Im04IDIxIDMuMTA1LTYuMjEifV0sWyJjaXJjbGUiLHtjeDoiMTIiLGN5OiIxMyIscjoiMiJ9XV0sZTd0PVtbImNpcmNsZSIse2N4OiI0IixjeToiNCIscjoiMiJ9XSxbInBhdGgiLHtkOiJtMTQgNSAzLTMgMyAzIn1dLFsicGF0aCIse2Q6Im0xNCAxMCAzLTMgMyAzIn1dLFsicGF0aCIse2Q6Ik0xNyAxNFYyIn1dLFsicGF0aCIse2Q6Ik0xNyAxNEg3bC01IDhoMjBaIn1dLFsicGF0aCIse2Q6Ik04IDE0djgifV0sWyJwYXRoIix7ZDoibTkgMTQgNSA4In1dXSx0N3Q9W1sicGF0aCIse2Q6Ik0zLjUgMjEgMTQgMyJ9XSxbInBhdGgiLHtkOiJNMjAuNSAyMSAxMCAzIn1dLFsicGF0aCIse2Q6Ik0xNS41IDIxIDEyIDE1bC0zLjUgNiJ9XSxbInBhdGgiLHtkOiJNMiAyMWgyMCJ9XV0sYTd0PVtbInBhdGgiLHtkOiJNMTIgMTloOCJ9XSxbInBhdGgiLHtkOiJtNCAxNyA2LTYtNi02In1dXSxKeT1bWyJwYXRoIix7ZDoiTTIxIDcgNi44MiAyMS4xOGEyLjgzIDIuODMgMCAwIDEtMy45OS0uMDFhMi44MyAyLjgzIDAgMCAxIDAtNEwxNyAzIn1dLFsicGF0aCIse2Q6Im0xNiAyIDYgNiJ9XSxbInBhdGgiLHtkOiJNMTIgMTZINCJ9XV0saTd0PVtbInBhdGgiLHtkOiJNMTQuNSAydjE3LjVjMCAxLjQtMS4xIDIuNS0yLjUgMi41Yy0xLjQgMC0yLjUtMS4xLTIuNS0yLjVWMiJ9XSxbInBhdGgiLHtkOiJNOC41IDJoNyJ9XSxbInBhdGgiLHtkOiJNMTQuNSAxNmgtNSJ9XV0scjd0PVtbInBhdGgiLHtkOiJNOSAydjE3LjVBMi41IDIuNSAwIDAgMSA2LjUgMjJBMi41IDIuNSAwIDAgMSA0IDE5LjVWMiJ9XSxbInBhdGgiLHtkOiJNMjAgMnYxNy41YTIuNSAyLjUgMCAwIDEtMi41IDIuNWEyLjUgMi41IDAgMCAxLTIuNS0yLjVWMiJ9XSxbInBhdGgiLHtkOiJNMyAyaDcifV0sWyJwYXRoIix7ZDoiTTE0IDJoNyJ9XSxbInBhdGgiLHtkOiJNOSAxNkg0In1dLFsicGF0aCIse2Q6Ik0yMCAxNmgtNSJ9XV0sZXg9W1sicGF0aCIse2Q6Ik0yMSA1SDMifV0sWyJwYXRoIix7ZDoiTTE3IDEySDcifV0sWyJwYXRoIix7ZDoiTTE5IDE5SDUifV1dLHR4PVtbInBhdGgiLHtkOiJNMjEgNUgzIn1dLFsicGF0aCIse2Q6Ik0yMSAxMkg5In1dLFsicGF0aCIse2Q6Ik0yMSAxOUg3In1dXSxheD1bWyJwYXRoIix7ZDoiTTMgNWgxOCJ9XSxbInBhdGgiLHtkOiJNMyAxMmgxOCJ9XSxbInBhdGgiLHtkOiJNMyAxOWgxOCJ9XV0sczd0PVtbInBhdGgiLHtkOiJNMTIgMjBoLTFhMiAyIDAgMCAxLTItMiAyIDIgMCAwIDEtMiAySDYifV0sWyJwYXRoIix7ZDoiTTEzIDhoN2EyIDIgMCAwIDEgMiAydjRhMiAyIDAgMCAxLTIgMmgtNyJ9XSxbInBhdGgiLHtkOiJNNSAxNkg0YTIgMiAwIDAgMS0yLTJ2LTRhMiAyIDAgMCAxIDItMmgxIn1dLFsicGF0aCIse2Q6Ik02IDRoMWEyIDIgMCAwIDEgMiAyIDIgMiAwIDAgMSAyLTJoMSJ9XSxbInBhdGgiLHtkOiJNOSA2djEyIn1dXSx6bD1bWyJwYXRoIix7ZDoiTTIxIDVIMyJ9XSxbInBhdGgiLHtkOiJNMTUgMTJIMyJ9XSxbInBhdGgiLHtkOiJNMTcgMTlIMyJ9XV0sbjd0PVtbInBhdGgiLHtkOiJNMTcgMjJoLTFhNCA0IDAgMCAxLTQtNFY2YTQgNCAwIDAgMSA0LTRoMSJ9XSxbInBhdGgiLHtkOiJNNyAyMmgxYTQgNCAwIDAgMCA0LTR2LTEifV0sWyJwYXRoIix7ZDoiTTcgMmgxYTQgNCAwIDAgMSA0IDR2MSJ9XV0saXg9W1sicGF0aCIse2Q6Ik0xNSA1aDYifV0sWyJwYXRoIix7ZDoiTTE1IDEyaDYifV0sWyJwYXRoIix7ZDoiTTMgMTloMTgifV0sWyJwYXRoIix7ZDoibTMgMTIgMy41NTMtNy43MjRhLjUuNSAwIDAgMSAuODk0IDBMMTEgMTIifV0sWyJwYXRoIix7ZDoiTTMuOTIgMTBoNi4xNiJ9XV0sbzd0PVtbInBhdGgiLHtkOiJNMTcgNUgzIn1dLFsicGF0aCIse2Q6Ik0yMSAxMkg4In1dLFsicGF0aCIse2Q6Ik0yMSAxOUg4In1dLFsicGF0aCIse2Q6Ik0zIDEydjcifV1dLGw3dD1bWyJwYXRoIix7ZDoiTTIxIDVIMyJ9XSxbInBhdGgiLHtkOiJNMTAgMTJIMyJ9XSxbInBhdGgiLHtkOiJNMTAgMTlIMyJ9XSxbImNpcmNsZSIse2N4OiIxNyIsY3k6IjE1IixyOiIzIn1dLFsicGF0aCIse2Q6Im0yMSAxOS0xLjktMS45In1dXSxyeD1bWyJwYXRoIix7ZDoiTTE0IDIxaDEifV0sWyJwYXRoIix7ZDoiTTE0IDNoMSJ9XSxbInBhdGgiLHtkOiJNMTkgM2EyIDIgMCAwIDEgMiAyIn1dLFsicGF0aCIse2Q6Ik0yMSAxNHYxIn1dLFsicGF0aCIse2Q6Ik0yMSAxOWEyIDIgMCAwIDEtMiAyIn1dLFsicGF0aCIse2Q6Ik0yMSA5djEifV0sWyJwYXRoIix7ZDoiTTMgMTR2MSJ9XSxbInBhdGgiLHtkOiJNMyA5djEifV0sWyJwYXRoIix7ZDoiTTUgMjFhMiAyIDAgMCAxLTItMiJ9XSxbInBhdGgiLHtkOiJNNSAzYTIgMiAwIDAgMC0yIDIifV0sWyJwYXRoIix7ZDoiTTcgMTJoMTAifV0sWyJwYXRoIix7ZDoiTTcgMTZoNiJ9XSxbInBhdGgiLHtkOiJNNyA4aDgifV0sWyJwYXRoIix7ZDoiTTkgMjFoMSJ9XSxbInBhdGgiLHtkOiJNOSAzaDEifV1dLHN4PVtbInBhdGgiLHtkOiJtMTYgMTYtMyAzIDMgMyJ9XSxbInBhdGgiLHtkOiJNMyAxMmgxNC41YTEgMSAwIDAgMSAwIDdIMTMifV0sWyJwYXRoIix7ZDoiTTMgMTloNiJ9XSxbInBhdGgiLHtkOiJNMyA1aDE4In1dXSxjN3Q9W1sicGF0aCIse2Q6Ik0yIDEwczMtMyAzLTgifV0sWyJwYXRoIix7ZDoiTTIyIDEwcy0zLTMtMy04In1dLFsicGF0aCIse2Q6Ik0xMCAyYzAgNC40LTMuNiA4LTggOCJ9XSxbInBhdGgiLHtkOiJNMTQgMmMwIDQuNCAzLjYgOCA4IDgifV0sWyJwYXRoIix7ZDoiTTIgMTBzMiAyIDIgNSJ9XSxbInBhdGgiLHtkOiJNMjIgMTBzLTIgMi0yIDUifV0sWyJwYXRoIix7ZDoiTTggMTVoOCJ9XSxbInBhdGgiLHtkOiJNMiAyMnYtMWEyIDIgMCAwIDEgMi0yaDRhMiAyIDAgMCAxIDIgMnYxIn1dLFsicGF0aCIse2Q6Ik0xNCAyMnYtMWEyIDIgMCAwIDEgMi0yaDRhMiAyIDAgMCAxIDIgMnYxIn1dXSxkN3Q9W1sicGF0aCIse2Q6Im0xMCAyMC0xLjI1LTIuNUw2IDE4In1dLFsicGF0aCIse2Q6Ik0xMCA0IDguNzUgNi41IDYgNiJ9XSxbInBhdGgiLHtkOiJNMTAuNTg1IDE1SDEwIn1dLFsicGF0aCIse2Q6Ik0yIDEyaDYuNUwxMCA5In1dLFsicGF0aCIse2Q6Ik0yMCAxNC41NGE0IDQgMCAxIDEtNCAwVjRhMiAyIDAgMCAxIDQgMHoifV0sWyJwYXRoIix7ZDoibTQgMTAgMS41IDJMNCAxNCJ9XSxbInBhdGgiLHtkOiJtNyAyMSAzLTYtMS41LTMifV0sWyJwYXRoIix7ZDoibTcgMyAzIDZoMiJ9XV0saDd0PVtbInBhdGgiLHtkOiJNMTIgMnYyIn1dLFsicGF0aCIse2Q6Ik0xMiA4YTQgNCAwIDAgMC0xLjY0NSA3LjY0NyJ9XSxbInBhdGgiLHtkOiJNMiAxMmgyIn1dLFsicGF0aCIse2Q6Ik0yMCAxNC41NGE0IDQgMCAxIDEtNCAwVjRhMiAyIDAgMCAxIDQgMHoifV0sWyJwYXRoIix7ZDoibTQuOTMgNC45MyAxLjQxIDEuNDEifV0sWyJwYXRoIix7ZDoibTYuMzQgMTcuNjYtMS40MSAxLjQxIn1dXSxwN3Q9W1sicGF0aCIse2Q6Ik0xNCA0djEwLjU0YTQgNCAwIDEgMS00IDBWNGEyIDIgMCAwIDEgNCAwWiJ9XV0sdTd0PVtbInBhdGgiLHtkOiJNOSAxOC4xMiAxMCAxNEg0LjE3YTIgMiAwIDAgMS0xLjkyLTIuNTZsMi4zMy04QTIgMiAwIDAgMSA2LjUgMkgyMGEyIDIgMCAwIDEgMiAydjhhMiAyIDAgMCAxLTIgMmgtMi43NmEyIDIgMCAwIDAtMS43OSAxLjExTDEyIDIyYTMuMTMgMy4xMyAwIDAgMS0zLTMuODhaIn1dLFsicGF0aCIse2Q6Ik0xNyAxNFYyIn1dXSxmN3Q9W1sicGF0aCIse2Q6Ik0xNSA1Ljg4IDE0IDEwaDUuODNhMiAyIDAgMCAxIDEuOTIgMi41NmwtMi4zMyA4QTIgMiAwIDAgMSAxNy41IDIySDRhMiAyIDAgMCAxLTItMnYtOGEyIDIgMCAwIDEgMi0yaDIuNzZhMiAyIDAgMCAwIDEuNzktMS4xMUwxMiAyYTMuMTMgMy4xMyAwIDAgMSAzIDMuODhaIn1dLFsicGF0aCIse2Q6Ik03IDEwdjEyIn1dXSxtN3Q9W1sicGF0aCIse2Q6Ik0yIDlhMyAzIDAgMCAxIDAgNnYyYTIgMiAwIDAgMCAyIDJoMTZhMiAyIDAgMCAwIDItMnYtMmEzIDMgMCAwIDEgMC02VjdhMiAyIDAgMCAwLTItMkg0YTIgMiAwIDAgMC0yIDJaIn1dLFsicGF0aCIse2Q6Im05IDEyIDIgMiA0LTQifV1dLGc3dD1bWyJwYXRoIix7ZDoiTTIgOWEzIDMgMCAwIDEgMCA2djJhMiAyIDAgMCAwIDIgMmgxNmEyIDIgMCAwIDAgMi0ydi0yYTMgMyAwIDAgMSAwLTZWN2EyIDIgMCAwIDAtMi0ySDRhMiAyIDAgMCAwLTIgMloifV0sWyJwYXRoIix7ZDoiTTkgMTJoNiJ9XV0sYjd0PVtbInBhdGgiLHtkOiJNMiA5YTMgMyAwIDEgMSAwIDZ2MmEyIDIgMCAwIDAgMiAyaDE2YTIgMiAwIDAgMCAyLTJ2LTJhMyAzIDAgMSAxIDAtNlY3YTIgMiAwIDAgMC0yLTJINGEyIDIgMCAwIDAtMiAyWiJ9XSxbInBhdGgiLHtkOiJNOSA5aC4wMSJ9XSxbInBhdGgiLHtkOiJtMTUgOS02IDYifV0sWyJwYXRoIix7ZDoiTTE1IDE1aC4wMSJ9XV0sdjd0PVtbInBhdGgiLHtkOiJNMiA5YTMgMyAwIDAgMSAwIDZ2MmEyIDIgMCAwIDAgMiAyaDE2YTIgMiAwIDAgMCAyLTJ2LTJhMyAzIDAgMCAxIDAtNlY3YTIgMiAwIDAgMC0yLTJINGEyIDIgMCAwIDAtMiAyWiJ9XSxbInBhdGgiLHtkOiJNOSAxMmg2In1dLFsicGF0aCIse2Q6Ik0xMiA5djYifV1dLHk3dD1bWyJwYXRoIix7ZDoiTTIgOWEzIDMgMCAwIDEgMCA2djJhMiAyIDAgMCAwIDIgMmgxNmEyIDIgMCAwIDAgMi0ydi0yYTMgMyAwIDAgMSAwLTZWN2EyIDIgMCAwIDAtMi0ySDRhMiAyIDAgMCAwLTIgMloifV0sWyJwYXRoIix7ZDoibTkuNSAxNC41IDUtNSJ9XV0seDd0PVtbInBhdGgiLHtkOiJNMiA5YTMgMyAwIDAgMSAwIDZ2MmEyIDIgMCAwIDAgMiAyaDE2YTIgMiAwIDAgMCAyLTJ2LTJhMyAzIDAgMCAxIDAtNlY3YTIgMiAwIDAgMC0yLTJINGEyIDIgMCAwIDAtMiAyWiJ9XSxbInBhdGgiLHtkOiJtOS41IDE0LjUgNS01In1dLFsicGF0aCIse2Q6Im05LjUgOS41IDUgNSJ9XV0sdzd0PVtbInBhdGgiLHtkOiJNMiA5YTMgMyAwIDAgMSAwIDZ2MmEyIDIgMCAwIDAgMiAyaDE2YTIgMiAwIDAgMCAyLTJ2LTJhMyAzIDAgMCAxIDAtNlY3YTIgMiAwIDAgMC0yLTJINGEyIDIgMCAwIDAtMiAyWiJ9XSxbInBhdGgiLHtkOiJNMTMgNXYyIn1dLFsicGF0aCIse2Q6Ik0xMyAxN3YyIn1dLFsicGF0aCIse2Q6Ik0xMyAxMXYyIn1dXSxNN3Q9W1sicGF0aCIse2Q6Ik0xMC41IDE3aDEuMjI3YTIgMiAwIDAgMCAxLjM0NS0uNTJMMTggMTIifV0sWyJwYXRoIix7ZDoibTEyIDEzLjUgMy43OTQuNTA2In1dLFsicGF0aCIse2Q6Im0zLjE3MyA4LjE4IDExLTVhMiAyIDAgMCAxIDIuNjQ3Ljk5M0wxOC41NiA4In1dLFsicGF0aCIse2Q6Ik02IDEwVjgifV0sWyJwYXRoIix7ZDoiTTYgMTR2MSJ9XSxbInBhdGgiLHtkOiJNNiAxOXYyIn1dLFsicmVjdCIse3g6IjIiLHk6IjgiLHdpZHRoOiIyMCIsaGVpZ2h0OiIxMyIscng6IjIifV1dLHo3dD1bWyJwYXRoIix7ZDoiTTEwIDJoNCJ9XSxbInBhdGgiLHtkOiJNNC42IDExYTggOCAwIDAgMCAxLjcgOC43IDggOCAwIDAgMCA4LjcgMS43In1dLFsicGF0aCIse2Q6Ik03LjQgNy40YTggOCAwIDAgMSAxMC4zIDEgOCA4IDAgMCAxIC45IDEwLjIifV0sWyJwYXRoIix7ZDoibTIgMiAyMCAyMCJ9XSxbInBhdGgiLHtkOiJNMTIgMTJ2LTIifV1dLGs3dD1bWyJwYXRoIix7ZDoibTMuMTczIDguMTggMTEtNWEyIDIgMCAwIDEgMi42NDcuOTkzTDE4LjU2IDgifV0sWyJwYXRoIix7ZDoiTTYgMTBWOCJ9XSxbInBhdGgiLHtkOiJNNiAxNHYxIn1dLFsicGF0aCIse2Q6Ik02IDE5djIifV0sWyJyZWN0Iix7eDoiMiIseToiOCIsd2lkdGg6IjIwIixoZWlnaHQ6IjEzIixyeDoiMiJ9XV0sUzd0PVtbInBhdGgiLHtkOiJNMTAgMmg0In1dLFsicGF0aCIse2Q6Ik0xMiAxNHYtNCJ9XSxbInBhdGgiLHtkOiJNNCAxM2E4IDggMCAwIDEgOC03IDggOCAwIDEgMS01LjMgMTRMNCAxNy42In1dLFsicGF0aCIse2Q6Ik05IDE3SDR2NSJ9XV0sQzd0PVtbImxpbmUiLHt4MToiMTAiLHgyOiIxNCIseTE6IjIiLHkyOiIyIn1dLFsibGluZSIse3gxOiIxMiIseDI6IjE1Iix5MToiMTQiLHkyOiIxMSJ9XSxbImNpcmNsZSIse2N4OiIxMiIsY3k6IjE0IixyOiI4In1dXSxfN3Q9W1siY2lyY2xlIix7Y3g6IjkiLGN5OiIxMiIscjoiMyJ9XSxbInJlY3QiLHt3aWR0aDoiMjAiLGhlaWdodDoiMTQiLHg6IjIiLHk6IjUiLHJ4OiI3In1dXSxUN3Q9W1siY2lyY2xlIix7Y3g6IjE1IixjeToiMTIiLHI6IjMifV0sWyJyZWN0Iix7d2lkdGg6IjIwIixoZWlnaHQ6IjE0Iix4OiIyIix5OiI1IixyeDoiNyJ9XV0sTDd0PVtbInBhdGgiLHtkOiJNNyAxMmgxM2ExIDEgMCAwIDEgMSAxIDUgNSAwIDAgMS01IDVoLS41OThhLjUuNSAwIDAgMC0uNDI0Ljc2NWwxLjU0NCAyLjQ3YS41LjUgMCAwIDEtLjQyNC43NjVINS40MDJhLjUuNSAwIDAgMS0uNDI0LS43NjVMNyAxOCJ9XSxbInBhdGgiLHtkOiJNOCAxOGE1IDUgMCAwIDEtNS01VjRhMiAyIDAgMCAxIDItMmg4YTIgMiAwIDAgMSAyIDJ2OCJ9XV0sJDd0PVtbInBhdGgiLHtkOiJNMTAgMTVoNCJ9XSxbInBhdGgiLHtkOiJtMTQuODE3IDEwLjk5NS0uOTcxLTEuNDUgMS4wMzQtMS4yMzJhMiAyIDAgMCAwLTIuMDI1LTMuMjM4bC0xLjgyLjM2NEw5LjkxIDMuODg1YTIgMiAwIDAgMC0zLjYyNS43NDhMNi4xNDEgNi41NWwtMS43MjUuNDI2YTIgMiAwIDAgMC0uMTkgMy43NTZsLjY1Ny4yNyJ9XSxbInBhdGgiLHtkOiJtMTguODIyIDEwLjk5NSAyLjI2LTUuMzhhMSAxIDAgMCAwLS41NTctMS4zMThMMTYuOTU0IDIuOWExIDEgMCAwIDAtMS4yODEuNTMzbC0uOTI0IDIuMTIyIn1dLFsicGF0aCIse2Q6Ik00IDEyLjAwNkExIDEgMCAwIDEgNC45OTQgMTFIMTlhMSAxIDAgMCAxIDEgMXY3YTIgMiAwIDAgMS0yIDJINmEyIDIgMCAwIDEtMi0yeiJ9XV0sQTd0PVtbInBhdGgiLHtkOiJNMTYgMTJ2NCJ9XSxbInBhdGgiLHtkOiJNMTYgNmEyIDIgMCAwIDEgMS40MTQuNTg2bDQgNEEyIDIgMCAwIDEgMjIgMTJ2N2EyIDIgMCAwIDEtMiAySDRhMiAyIDAgMCAxLTItMnYtN2EyIDIgMCAwIDEgLjU4Ni0xLjQxNGw0LTRBMiAyIDAgMCAxIDggNnoifV0sWyJwYXRoIix7ZDoiTTE2IDZWNGEyIDIgMCAwIDAtMi0yaC00YTIgMiAwIDAgMC0yIDJ2MiJ9XSxbInBhdGgiLHtkOiJNMiAxNGgyMCJ9XSxbInBhdGgiLHtkOiJNOCAxMnY0In1dXSxEN3Q9W1sicGF0aCIse2Q6Ik0yMSA0SDMifV0sWyJwYXRoIix7ZDoiTTE4IDhINiJ9XSxbInBhdGgiLHtkOiJNMTkgMTJIOSJ9XSxbInBhdGgiLHtkOiJNMTYgMTZoLTYifV0sWyJwYXRoIix7ZDoiTTExIDIwSDkifV1dLEU3dD1bWyJlbGxpcHNlIix7Y3g6IjEyIixjeToiMTEiLHJ4OiIzIixyeToiMiJ9XSxbImVsbGlwc2UiLHtjeDoiMTIiLGN5OiIxMi41IixyeDoiMTAiLHJ5OiI4LjUifV1dLFA3dD1bWyJwYXRoIix7ZDoiTTEyIDIwdi02In1dLFsicGF0aCIse2Q6Ik0xOS42NTYgMTRIMjIifV0sWyJwYXRoIix7ZDoiTTIgMTRoMTIifV0sWyJwYXRoIix7ZDoibTIgMiAyMCAyMCJ9XSxbInBhdGgiLHtkOiJNMjAgMjBINGEyIDIgMCAwIDEtMi0yVjZhMiAyIDAgMCAxIDItMiJ9XSxbInBhdGgiLHtkOiJNOS42NTYgNEgyMGEyIDIgMCAwIDEgMiAydjEwLjM0NCJ9XV0sSTd0PVtbInJlY3QiLHt3aWR0aDoiMjAiLGhlaWdodDoiMTYiLHg6IjIiLHk6IjQiLHJ4OiIyIn1dLFsicGF0aCIse2Q6Ik0yIDE0aDIwIn1dLFsicGF0aCIse2Q6Ik0xMiAyMHYtNiJ9XV0sTjd0PVtbInBhdGgiLHtkOiJNMTguMiAxMi4yNyAyMCA2SDRsMS44IDYuMjdhMSAxIDAgMCAwIC45NS43M2gxMC41YTEgMSAwIDAgMCAuOTYtLjczWiJ9XSxbInBhdGgiLHtkOiJNOCAxM3Y5In1dLFsicGF0aCIse2Q6Ik0xNiAyMnYtOSJ9XSxbInBhdGgiLHtkOiJtOSA2IDEgNyJ9XSxbInBhdGgiLHtkOiJtMTUgNi0xIDcifV0sWyJwYXRoIix7ZDoiTTEyIDZWMiJ9XSxbInBhdGgiLHtkOiJNMTMgMmgtMiJ9XV0sRjd0PVtbInJlY3QiLHt3aWR0aDoiMTgiLGhlaWdodDoiMTIiLHg6IjMiLHk6IjgiLHJ4OiIxIn1dLFsicGF0aCIse2Q6Ik0xMCA4VjVjMC0uNi0uNC0xLTEtMUg2YTEgMSAwIDAgMC0xIDF2MyJ9XSxbInBhdGgiLHtkOiJNMTkgOFY1YzAtLjYtLjQtMS0xLTFoLTNhMSAxIDAgMCAwLTEgMXYzIn1dXSxPN3Q9W1sicGF0aCIse2Q6Im0xMCAxMSAxMSAuOWExIDEgMCAwIDEgLjggMS4xbC0uNjY1IDQuMTU4YTEgMSAwIDAgMS0uOTg4Ljg0MkgyMCJ9XSxbInBhdGgiLHtkOiJNMTYgMThoLTUifV0sWyJwYXRoIix7ZDoiTTE4IDVhMSAxIDAgMCAwLTEgMXY1LjU3MyJ9XSxbInBhdGgiLHtkOiJNMyA0aDguMTI5YTEgMSAwIDAgMSAuOTkuODYzTDEzIDExLjI0NiJ9XSxbInBhdGgiLHtkOiJNNCAxMVY0In1dLFsicGF0aCIse2Q6Ik03IDE1aC4wMSJ9XSxbInBhdGgiLHtkOiJNOCAxMC4xVjQifV0sWyJjaXJjbGUiLHtjeDoiMTgiLGN5OiIxOCIscjoiMiJ9XSxbImNpcmNsZSIse2N4OiI3IixjeToiMTUiLHI6IjUifV1dLFI3dD1bWyJwYXRoIix7ZDoiTTE2LjA1IDEwLjk2NmE1IDIuNSAwIDAgMS04LjEgMCJ9XSxbInBhdGgiLHtkOiJtMTYuOTIzIDE0LjA0OSA0LjQ4IDIuMDRhMSAxIDAgMCAxIC4wMDEgMS44MzFsLTguNTc0IDMuOWEyIDIgMCAwIDEtMS42NiAwbC04LjU3NC0zLjkxYTEgMSAwIDAgMSAwLTEuODNsNC40ODQtMi4wNCJ9XSxbInBhdGgiLHtkOiJNMTYuOTQ5IDE0LjE0YTUgMi41IDAgMSAxLTkuOSAwTDEwLjA2MyAzLjVhMiAyIDAgMCAxIDMuODc0IDB6In1dLFsicGF0aCIse2Q6Ik05LjE5NCA2LjU3YTUgMi41IDAgMCAwIDUuNjEgMCJ9XV0sQjd0PVtbInBhdGgiLHtkOiJNMiAyMlYxMmExMCAxMCAwIDEgMSAyMCAwdjEwIn1dLFsicGF0aCIse2Q6Ik0xNSA2Ljh2MS40YTMgMi44IDAgMSAxLTYgMFY2LjgifV0sWyJwYXRoIix7ZDoiTTEwIDE1aC4wMSJ9XSxbInBhdGgiLHtkOiJNMTQgMTVoLjAxIn1dLFsicGF0aCIse2Q6Ik0xMCAxOWE0IDQgMCAwIDEtNC00di0zYTYgNiAwIDEgMSAxMiAwdjNhNCA0IDAgMCAxLTQgNFoifV0sWyJwYXRoIix7ZDoibTkgMTktMiAzIn1dLFsicGF0aCIse2Q6Im0xNSAxOSAyIDMifV1dLEg3dD1bWyJwYXRoIix7ZDoiTTggMy4xVjdhNCA0IDAgMCAwIDggMFYzLjEifV0sWyJwYXRoIix7ZDoibTkgMTUtMS0xIn1dLFsicGF0aCIse2Q6Im0xNSAxNSAxLTEifV0sWyJwYXRoIix7ZDoiTTkgMTljLTIuOCAwLTUtMi4yLTUtNXYtNGE4IDggMCAwIDEgMTYgMHY0YzAgMi44LTIuMiA1LTUgNVoifV0sWyJwYXRoIix7ZDoibTggMTktMiAzIn1dLFsicGF0aCIse2Q6Im0xNiAxOSAyIDMifV1dLHE3dD1bWyJwYXRoIix7ZDoiTTIgMTcgMTcgMiJ9XSxbInBhdGgiLHtkOiJtMiAxNCA4IDgifV0sWyJwYXRoIix7ZDoibTUgMTEgOCA4In1dLFsicGF0aCIse2Q6Im04IDggOCA4In1dLFsicGF0aCIse2Q6Im0xMSA1IDggOCJ9XSxbInBhdGgiLHtkOiJtMTQgMiA4IDgifV0sWyJwYXRoIix7ZDoiTTcgMjIgMjIgNyJ9XV0sbng9W1sicmVjdCIse3dpZHRoOiIxNiIsaGVpZ2h0OiIxNiIseDoiNCIseToiMyIscng6IjIifV0sWyJwYXRoIix7ZDoiTTQgMTFoMTYifV0sWyJwYXRoIix7ZDoiTTEyIDN2OCJ9XSxbInBhdGgiLHtkOiJtOCAxOS0yIDMifV0sWyJwYXRoIix7ZDoibTE4IDIyLTItMyJ9XSxbInBhdGgiLHtkOiJNOCAxNWguMDEifV0sWyJwYXRoIix7ZDoiTTE2IDE1aC4wMSJ9XV0sVjd0PVtbInBhdGgiLHtkOiJNMTIgMTZ2NiJ9XSxbInBhdGgiLHtkOiJNMTQgMjBoLTQifV0sWyJwYXRoIix7ZDoiTTE4IDJoNHY0In1dLFsicGF0aCIse2Q6Im0yIDIgNy4xNyA3LjE3In1dLFsicGF0aCIse2Q6Ik0yIDUuMzU1VjJoMy4zNTcifV0sWyJwYXRoIix7ZDoibTIyIDItNy4xNyA3LjE3In1dLFsicGF0aCIse2Q6Ik04IDUgNSA4In1dLFsiY2lyY2xlIix7Y3g6IjEyIixjeToiMTIiLHI6IjQifV1dLGo3dD1bWyJwYXRoIix7ZDoiTTEwIDExdjYifV0sWyJwYXRoIix7ZDoiTTE0IDExdjYifV0sWyJwYXRoIix7ZDoiTTE5IDZ2MTRhMiAyIDAgMCAxLTIgMkg3YTIgMiAwIDAgMS0yLTJWNiJ9XSxbInBhdGgiLHtkOiJNMyA2aDE4In1dLFsicGF0aCIse2Q6Ik04IDZWNGEyIDIgMCAwIDEgMi0yaDRhMiAyIDAgMCAxIDIgMnYyIn1dXSxVN3Q9W1sicGF0aCIse2Q6Ik0xOSA2djE0YTIgMiAwIDAgMS0yIDJIN2EyIDIgMCAwIDEtMi0yVjYifV0sWyJwYXRoIix7ZDoiTTMgNmgxOCJ9XSxbInBhdGgiLHtkOiJNOCA2VjRhMiAyIDAgMCAxIDItMmg0YTIgMiAwIDAgMSAyIDJ2MiJ9XV0sVzd0PVtbInBhdGgiLHtkOiJNOCAxOWE0IDQgMCAwIDEtMi4yNC03LjMyQTMuNSAzLjUgMCAwIDEgOSA2LjAzVjZhMyAzIDAgMSAxIDYgMHYuMDRhMy41IDMuNSAwIDAgMSAzLjI0IDUuNjVBNCA0IDAgMCAxIDE2IDE5WiJ9XSxbInBhdGgiLHtkOiJNMTIgMTl2MyJ9XV0sb3g9W1sicGF0aCIse2Q6Ik0xMyA4YzAtMi43Ni0yLjQ2LTUtNS41LTVTMiA1LjI0IDIgOGgybDEtMSAxIDFoNCJ9XSxbInBhdGgiLHtkOiJNMTMgNy4xNEE1LjgyIDUuODIgMCAwIDEgMTYuNSA2YzMuMDQgMCA1LjUgMi4yNCA1LjUgNWgtM2wtMS0xLTEgMWgtMyJ9XSxbInBhdGgiLHtkOiJNNS44OSA5LjcxYy0yLjE1IDIuMTUtMi4zIDUuNDctLjM1IDcuNDNsNC4yNC00LjI1LjctLjcuNzEtLjcxIDIuMTItMi4xMmMtMS45NS0xLjk2LTUuMjctMS44LTcuNDIuMzUifV0sWyJwYXRoIix7ZDoiTTExIDE1LjVjLjUgMi41LS4xNyA0LjUtMSA2LjVoNGMyLTUuNS0uNS0xMi0xLTE0In1dXSxHN3Q9W1sicGF0aCIse2Q6Im0xNyAxNCAzIDMuM2ExIDEgMCAwIDEtLjcgMS43SDQuN2ExIDEgMCAwIDEtLjctMS43TDcgMTRoLS4zYTEgMSAwIDAgMS0uNy0xLjdMOSA5aC0uMkExIDEgMCAwIDEgOCA3LjNMMTIgM2w0IDQuM2ExIDEgMCAwIDEtLjggMS43SDE1bDMgMy4zYTEgMSAwIDAgMS0uNyAxLjdIMTdaIn1dLFsicGF0aCIse2Q6Ik0xMiAyMnYtMyJ9XV0sWTd0PVtbInBhdGgiLHtkOiJNMTAgMTB2LjJBMyAzIDAgMCAxIDguOSAxNkg1YTMgMyAwIDAgMS0xLTUuOFYxMGEzIDMgMCAwIDEgNiAwWiJ9XSxbInBhdGgiLHtkOiJNNyAxNnY2In1dLFsicGF0aCIse2Q6Ik0xMyAxOXYzIn1dLFsicGF0aCIse2Q6Ik0xMiAxOWg4LjNhMSAxIDAgMCAwIC43LTEuN0wxOCAxNGguM2ExIDEgMCAwIDAgLjctMS43TDE2IDloLjJhMSAxIDAgMCAwIC44LTEuN0wxMyAzbC0xLjQgMS41In1dXSxaN3Q9W1sicmVjdCIse3dpZHRoOiIxOCIsaGVpZ2h0OiIxOCIseDoiMyIseToiMyIscng6IjIiLHJ5OiIyIn1dLFsicmVjdCIse3dpZHRoOiIzIixoZWlnaHQ6IjkiLHg6IjciLHk6IjcifV0sWyJyZWN0Iix7d2lkdGg6IjMiLGhlaWdodDoiNSIseDoiMTQiLHk6IjcifV1dLFg3dD1bWyJwYXRoIix7ZDoiTTE2IDE3aDZ2LTYifV0sWyJwYXRoIix7ZDoibTIyIDE3LTguNS04LjUtNSA1TDIgNyJ9XV0sSzd0PVtbInBhdGgiLHtkOiJNMTQuODI4IDE0LjgyOCAyMSAyMSJ9XSxbInBhdGgiLHtkOiJNMjEgMTZ2NWgtNSJ9XSxbInBhdGgiLHtkOiJtMjEgMy05IDktNC00LTYgNiJ9XSxbInBhdGgiLHtkOiJNMjEgOFYzaC01In1dXSxRN3Q9W1sicGF0aCIse2Q6Ik0xNiA3aDZ2NiJ9XSxbInBhdGgiLHtkOiJtMjIgNy04LjUgOC41LTUtNUwyIDE3In1dXSxseD1bWyJwYXRoIix7ZDoibTIxLjczIDE4LTgtMTRhMiAyIDAgMCAwLTMuNDggMGwtOCAxNEEyIDIgMCAwIDAgNCAyMWgxNmEyIDIgMCAwIDAgMS43My0zIn1dLFsicGF0aCIse2Q6Ik0xMiA5djQifV0sWyJwYXRoIix7ZDoiTTEyIDE3aC4wMSJ9XV0sSjd0PVtbInBhdGgiLHtkOiJNMTAuMTcgNC4xOTNhMiAyIDAgMCAxIDMuNjY2LjAxMyJ9XSxbInBhdGgiLHtkOiJNMTQgMjFoMiJ9XSxbInBhdGgiLHtkOiJtMTUuODc0IDcuNzQzIDEgMS43MzIifV0sWyJwYXRoIix7ZDoibTE4Ljg0OSAxMi45NTIgMSAxLjczMiJ9XSxbInBhdGgiLHtkOiJNMjEuODI0IDE4LjE4YTIgMiAwIDAgMS0xLjgzNSAyLjgyNCJ9XSxbInBhdGgiLHtkOiJNNC4wMjQgMjFhMiAyIDAgMCAxLTEuODM5LTIuODM5In1dLFsicGF0aCIse2Q6Im01LjEzNiAxMi45NTItMSAxLjczMiJ9XSxbInBhdGgiLHtkOiJNOCAyMWgyIn1dLFsicGF0aCIse2Q6Im04LjEwMiA3Ljc0My0xIDEuNzMyIn1dXSxlaHQ9W1sicGF0aCIse2Q6Ik0yMiAxOGEyIDIgMCAwIDEtMiAySDNjLTEuMSAwLTEuMy0uNi0uNC0xLjNMMjAuNCA0LjNjLjktLjcgMS42LS40IDEuNi43WiJ9XV0sdGh0PVtbInBhdGgiLHtkOiJNMTMuNzMgNGEyIDIgMCAwIDAtMy40NiAwbC04IDE0QTIgMiAwIDAgMCA0IDIxaDE2YTIgMiAwIDAgMCAxLjczLTNaIn1dXSxhaHQ9W1sicGF0aCIse2Q6Ik0xNCAxOVY3YTIgMiAwIDAgMC0yLTJIOSJ9XSxbInBhdGgiLHtkOiJNMTUgMTlIOSJ9XSxbInBhdGgiLHtkOiJNMTkgMTloMmExIDEgMCAwIDAgMS0xdi0zLjY1YTEgMSAwIDAgMC0uMjItLjYyTDE4LjMgOS4zOGExIDEgMCAwIDAtLjc4LS4zOEgxNCJ9XSxbInBhdGgiLHtkOiJNMiAxM3Y1YTEgMSAwIDAgMCAxIDFoMiJ9XSxbInBhdGgiLHtkOiJNNCAzIDIuMTUgNS4xNWEuNDk1LjQ5NSAwIDAgMCAuMzUuODZoMi4xNWEuNDcuNDcgMCAwIDEgLjM1Ljg2TDMgOS4wMiJ9XSxbImNpcmNsZSIse2N4OiIxNyIsY3k6IjE5IixyOiIyIn1dLFsiY2lyY2xlIix7Y3g6IjciLGN5OiIxOSIscjoiMiJ9XV0saWh0PVtbInBhdGgiLHtkOiJNMTAgMTQuNjZ2MS42MjZhMiAyIDAgMCAxLS45NzYgMS42OTZBNSA1IDAgMCAwIDcgMjEuOTc4In1dLFsicGF0aCIse2Q6Ik0xNCAxNC42NnYxLjYyNmEyIDIgMCAwIDAgLjk3NiAxLjY5NkE1IDUgMCAwIDEgMTcgMjEuOTc4In1dLFsicGF0aCIse2Q6Ik0xOCA5aDEuNWExIDEgMCAwIDAgMC01SDE4In1dLFsicGF0aCIse2Q6Ik00IDIyaDE2In1dLFsicGF0aCIse2Q6Ik02IDlhNiA2IDAgMCAwIDEyIDBWM2ExIDEgMCAwIDAtMS0xSDdhMSAxIDAgMCAwLTEgMXoifV0sWyJwYXRoIix7ZDoiTTYgOUg0LjVhMSAxIDAgMCAxIDAtNUg2In1dXSxyaHQ9W1sicGF0aCIse2Q6Ik0xNCAxOFY2YTIgMiAwIDAgMC0yLTJINGEyIDIgMCAwIDAtMiAydjExYTEgMSAwIDAgMCAxIDFoMiJ9XSxbInBhdGgiLHtkOiJNMTUgMThIOSJ9XSxbInBhdGgiLHtkOiJNMTkgMThoMmExIDEgMCAwIDAgMS0xdi0zLjY1YTEgMSAwIDAgMC0uMjItLjYyNGwtMy40OC00LjM1QTEgMSAwIDAgMCAxNy41MiA4SDE0In1dLFsiY2lyY2xlIix7Y3g6IjE3IixjeToiMTgiLHI6IjIifV0sWyJjaXJjbGUiLHtjeDoiNyIsY3k6IjE4IixyOiIyIn1dXSxzaHQ9W1sicGF0aCIse2Q6Ik0xNSA0IDUgOSJ9XSxbInBhdGgiLHtkOiJtMTUgOC41LTEwIDUifV0sWyJwYXRoIix7ZDoiTTE4IDEyYTkgOSAwIDAgMS05IDlWMyJ9XV0sbmh0PVtbInBhdGgiLHtkOiJNMTAgMTIuMDFoLjAxIn1dLFsicGF0aCIse2Q6Ik0xOCA4djRhOCA4IDAgMCAxLTEuMDcgNCJ9XSxbImNpcmNsZSIse2N4OiIxMCIsY3k6IjEyIixyOiI0In1dLFsicmVjdCIse3g6IjIiLHk6IjQiLHdpZHRoOiIyMCIsaGVpZ2h0OiIxNiIscng6IjIifV1dLG9odD1bWyJwYXRoIix7ZDoibTEyIDEwIDIgNHYzYTEgMSAwIDAgMCAxIDFoMmExIDEgMCAwIDAgMS0xdi0zYTggOCAwIDEgMC0xNiAwdjNhMSAxIDAgMCAwIDEgMWgyYTEgMSAwIDAgMCAxLTF2LTNsMi00aDRaIn1dLFsicGF0aCIse2Q6Ik00LjgyIDcuOSA4IDEwIn1dLFsicGF0aCIse2Q6Ik0xNS4xOCA3LjkgMTIgMTAifV0sWyJwYXRoIix7ZDoiTTE2LjkzIDEwSDIwYTIgMiAwIDAgMSAwIDRIMiJ9XV0sbGh0PVtbInBhdGgiLHtkOiJNMTUuMDMzIDkuNDRhLjY0Ny42NDcgMCAwIDEgMCAxLjEybC00LjA2NSAyLjM1MmEuNjQ1LjY0NSAwIDAgMS0uOTY4LS41NlY3LjY0OGEuNjQ1LjY0NSAwIDAgMSAuOTY3LS41NnoifV0sWyJwYXRoIix7ZDoiTTcgMjFoMTAifV0sWyJyZWN0Iix7d2lkdGg6IjIwIixoZWlnaHQ6IjE0Iix4OiIyIix5OiIzIixyeDoiMiJ9XV0sY3g9W1sicGF0aCIse2Q6Ik03IDIxaDEwIn1dLFsicmVjdCIse3dpZHRoOiIyMCIsaGVpZ2h0OiIxNCIseDoiMiIseToiMyIscng6IjIifV1dLGNodD1bWyJwYXRoIix7ZDoibTE3IDItNSA1LTUtNSJ9XSxbInJlY3QiLHt3aWR0aDoiMjAiLGhlaWdodDoiMTUiLHg6IjIiLHk6IjciLHJ4OiIyIn1dXSxkaHQ9W1sicGF0aCIse2Q6Ik0yMSAySDN2MTZoNXY0bDQtNGg1bDQtNFYyem0tMTAgOVY3bTUgNFY3In1dXSxoaHQ9W1sicGF0aCIse2Q6Ik0yMiA0cy0uNyAyLjEtMiAzLjRjMS42IDEwLTkuNCAxNy4zLTE4IDExLjYgMi4yLjEgNC40LS42IDYtMkMzIDE1LjUuNSA5LjYgMyA1YzIuMiAyLjYgNS42IDQuMSA5IDQtLjktNC4yIDQtNi42IDctMy44IDEuMSAwIDMtMS4yIDMtMS4yeiJ9XV0scGh0PVtbInBhdGgiLHtkOiJNMTQgMTYuNWEuNS41IDAgMCAwIC41LjVoLjVhMiAyIDAgMCAxIDAgNEg5YTIgMiAwIDAgMSAwLTRoLjVhLjUuNSAwIDAgMCAuNS0uNXYtOWEuNS41IDAgMCAwLS41LS41aC0zYS41LjUgMCAwIDAtLjUuNVY4YTIgMiAwIDAgMS00IDBWNWEyIDIgMCAwIDEgMi0yaDE2YTIgMiAwIDAgMSAyIDJ2M2EyIDIgMCAwIDEtNCAwdi0uNWEuNS41IDAgMCAwLS41LS41aC0zYS41LjUgMCAwIDAtLjUuNVoifV1dLHVodD1bWyJwYXRoIix7ZDoiTTEyIDR2MTYifV0sWyJwYXRoIix7ZDoiTTQgN1Y1YTEgMSAwIDAgMSAxLTFoMTRhMSAxIDAgMCAxIDEgMXYyIn1dLFsicGF0aCIse2Q6Ik05IDIwaDYifV1dLGZodD1bWyJwYXRoIix7ZDoiTTEyIDEzdjdhMiAyIDAgMCAwIDQgMCJ9XSxbInBhdGgiLHtkOiJNMTIgMnYyIn1dLFsicGF0aCIse2Q6Ik0xOC42NTYgMTNoMi4zMzZhMSAxIDAgMCAwIC45Ny0xLjI3NCAxMC4yODQgMTAuMjg0IDAgMCAwLTEyLjA3LTcuNTEifV0sWyJwYXRoIix7ZDoibTIgMiAyMCAyMCJ9XSxbInBhdGgiLHtkOiJNNS45NjEgNS45NTdhMTAuMjggMTAuMjggMCAwIDAtMy45MjIgNS43NjlBMSAxIDAgMCAwIDMgMTNoMTAifV1dLG1odD1bWyJwYXRoIix7ZDoiTTEyIDEzdjdhMiAyIDAgMCAwIDQgMCJ9XSxbInBhdGgiLHtkOiJNMTIgMnYyIn1dLFsicGF0aCIse2Q6Ik0yMC45OTIgMTNhMSAxIDAgMCAwIC45Ny0xLjI3NCAxMC4yODQgMTAuMjg0IDAgMCAwLTE5LjkyMyAwQTEgMSAwIDAgMCAzIDEzeiJ9XV0sZ2h0PVtbInBhdGgiLHtkOiJNNiA0djZhNiA2IDAgMCAwIDEyIDBWNCJ9XSxbImxpbmUiLHt4MToiNCIseDI6IjIwIix5MToiMjAiLHkyOiIyMCJ9XV0sYmh0PVtbInBhdGgiLHtkOiJNOSAxNCA0IDlsNS01In1dLFsicGF0aCIse2Q6Ik00IDloMTAuNWE1LjUgNS41IDAgMCAxIDUuNSA1LjVhNS41IDUuNSAwIDAgMS01LjUgNS41SDExIn1dXSx2aHQ9W1sicGF0aCIse2Q6Ik0yMSAxN2E5IDkgMCAwIDAtMTUtNi43TDMgMTMifV0sWyJwYXRoIix7ZDoiTTMgN3Y2aDYifV0sWyJjaXJjbGUiLHtjeDoiMTIiLGN5OiIxNyIscjoiMSJ9XV0seWh0PVtbInBhdGgiLHtkOiJNMyA3djZoNiJ9XSxbInBhdGgiLHtkOiJNMjEgMTdhOSA5IDAgMCAwLTktOSA5IDkgMCAwIDAtNiAyLjNMMyAxMyJ9XV0seGh0PVtbInBhdGgiLHtkOiJNMTYgMTJoNiJ9XSxbInBhdGgiLHtkOiJNOCAxMkgyIn1dLFsicGF0aCIse2Q6Ik0xMiAydjIifV0sWyJwYXRoIix7ZDoiTTEyIDh2MiJ9XSxbInBhdGgiLHtkOiJNMTIgMTR2MiJ9XSxbInBhdGgiLHtkOiJNMTIgMjB2MiJ9XSxbInBhdGgiLHtkOiJtMTkgMTUgMy0zLTMtMyJ9XSxbInBhdGgiLHtkOiJtNSA5LTMgMyAzIDMifV1dLHdodD1bWyJwYXRoIix7ZDoiTTEyIDIydi02In1dLFsicGF0aCIse2Q6Ik0xMiA4VjIifV0sWyJwYXRoIix7ZDoiTTQgMTJIMiJ9XSxbInBhdGgiLHtkOiJNMTAgMTJIOCJ9XSxbInBhdGgiLHtkOiJNMTYgMTJoLTIifV0sWyJwYXRoIix7ZDoiTTIyIDEyaC0yIn1dLFsicGF0aCIse2Q6Im0xNSAxOS0zIDMtMy0zIn1dLFsicGF0aCIse2Q6Im0xNSA1LTMtMy0zIDMifV1dLE1odD1bWyJyZWN0Iix7d2lkdGg6IjgiLGhlaWdodDoiNiIseDoiNSIseToiNCIscng6IjEifV0sWyJyZWN0Iix7d2lkdGg6IjgiLGhlaWdodDoiNiIseDoiMTEiLHk6IjE0IixyeDoiMSJ9XV0sZHg9W1sicGF0aCIse2Q6Ik0xNCAyMXYtM2EyIDIgMCAwIDAtNCAwdjMifV0sWyJwYXRoIix7ZDoiTTE4IDEyaC4wMSJ9XSxbInBhdGgiLHtkOiJNMTggMTZoLjAxIn1dLFsicGF0aCIse2Q6Ik0yMiA3YTEgMSAwIDAgMC0xLTFoLTJhMiAyIDAgMCAxLTEuMTQzLS4zNTlMMTMuMTQzIDIuMzZhMiAyIDAgMCAwLTIuMjg2LS4wMDFMNi4xNDMgNS42NEEyIDIgMCAwIDEgNSA2SDNhMSAxIDAgMCAwLTEgMXYxMmEyIDIgMCAwIDAgMiAyaDE2YTIgMiAwIDAgMCAyLTJ6In1dLFsicGF0aCIse2Q6Ik02IDEyaC4wMSJ9XSxbInBhdGgiLHtkOiJNNiAxNmguMDEifV0sWyJjaXJjbGUiLHtjeDoiMTIiLGN5OiIxMCIscjoiMiJ9XV0semh0PVtbInBhdGgiLHtkOiJtMTguODQgMTIuMjUgMS43Mi0xLjcxaC0uMDJhNS4wMDQgNS4wMDQgMCAwIDAtLjEyLTcuMDcgNS4wMDYgNS4wMDYgMCAwIDAtNi45NSAwbC0xLjcyIDEuNzEifV0sWyJwYXRoIix7ZDoibTUuMTcgMTEuNzUtMS43MSAxLjcxYTUuMDA0IDUuMDA0IDAgMCAwIC4xMiA3LjA3IDUuMDA2IDUuMDA2IDAgMCAwIDYuOTUgMGwxLjcxLTEuNzEifV0sWyJsaW5lIix7eDE6IjgiLHgyOiI4Iix5MToiMiIseTI6IjUifV0sWyJsaW5lIix7eDE6IjIiLHgyOiI1Iix5MToiOCIseTI6IjgifV0sWyJsaW5lIix7eDE6IjE2Iix4MjoiMTYiLHkxOiIxOSIseTI6IjIyIn1dLFsibGluZSIse3gxOiIxOSIseDI6IjIyIix5MToiMTYiLHkyOiIxNiJ9XV0sa2h0PVtbInBhdGgiLHtkOiJNMTUgN2gyYTUgNSAwIDAgMSAwIDEwaC0ybS02IDBIN0E1IDUgMCAwIDEgNyA3aDIifV1dLFNodD1bWyJwYXRoIix7ZDoibTE5IDUgMy0zIn1dLFsicGF0aCIse2Q6Im0yIDIyIDMtMyJ9XSxbInBhdGgiLHtkOiJNNi4zIDIwLjNhMi40IDIuNCAwIDAgMCAzLjQgMEwxMiAxOGwtNi02LTIuMyAyLjNhMi40IDIuNCAwIDAgMCAwIDMuNFoifV0sWyJwYXRoIix7ZDoiTTcuNSAxMy41IDEwIDExIn1dLFsicGF0aCIse2Q6Ik0xMC41IDE2LjUgMTMgMTQifV0sWyJwYXRoIix7ZDoibTEyIDYgNiA2IDIuMy0yLjNhMi40IDIuNCAwIDAgMCAwLTMuNGwtMi42LTIuNmEyLjQgMi40IDAgMCAwLTMuNCAwWiJ9XV0sQ2h0PVtbInBhdGgiLHtkOiJNMTIgM3YxMiJ9XSxbInBhdGgiLHtkOiJtMTcgOC01LTUtNSA1In1dLFsicGF0aCIse2Q6Ik0yMSAxNXY0YTIgMiAwIDAgMS0yIDJINWEyIDIgMCAwIDEtMi0ydi00In1dXSxfaHQ9W1siY2lyY2xlIix7Y3g6IjEwIixjeToiNyIscjoiMSJ9XSxbImNpcmNsZSIse2N4OiI0IixjeToiMjAiLHI6IjEifV0sWyJwYXRoIix7ZDoiTTQuNyAxOS4zIDE5IDUifV0sWyJwYXRoIix7ZDoibTIxIDMtMyAxIDIgMloifV0sWyJwYXRoIix7ZDoiTTkuMjYgNy42OCA1IDEybDIgNSJ9XSxbInBhdGgiLHtkOiJtMTAgMTQgNSAyIDMuNS0zLjUifV0sWyJwYXRoIix7ZDoibTE4IDEyIDEtMSAxIDEtMSAxWiJ9XV0sVGh0PVtbInBhdGgiLHtkOiJtMTYgMTEgMiAyIDQtNCJ9XSxbInBhdGgiLHtkOiJNMTYgMjF2LTJhNCA0IDAgMCAwLTQtNEg2YTQgNCAwIDAgMC00IDR2MiJ9XSxbImNpcmNsZSIse2N4OiI5IixjeToiNyIscjoiNCJ9XV0sTGh0PVtbInBhdGgiLHtkOiJNMTAgMTVINmE0IDQgMCAwIDAtNCA0djIifV0sWyJwYXRoIix7ZDoibTE0LjMwNSAxNi41My45MjMtLjM4MiJ9XSxbInBhdGgiLHtkOiJtMTUuMjI4IDEzLjg1Mi0uOTIzLS4zODMifV0sWyJwYXRoIix7ZDoibTE2Ljg1MiAxMi4yMjgtLjM4My0uOTIzIn1dLFsicGF0aCIse2Q6Im0xNi44NTIgMTcuNzcyLS4zODMuOTI0In1dLFsicGF0aCIse2Q6Im0xOS4xNDggMTIuMjI4LjM4My0uOTIzIn1dLFsicGF0aCIse2Q6Im0xOS41MyAxOC42OTYtLjM4Mi0uOTI0In1dLFsicGF0aCIse2Q6Im0yMC43NzIgMTMuODUyLjkyNC0uMzgzIn1dLFsicGF0aCIse2Q6Im0yMC43NzIgMTYuMTQ4LjkyNC4zODMifV0sWyJjaXJjbGUiLHtjeDoiMTgiLGN5OiIxNSIscjoiMyJ9XSxbImNpcmNsZSIse2N4OiI5IixjeToiNyIscjoiNCJ9XV0sJGh0PVtbInBhdGgiLHtkOiJNMjAgMTF2NiJ9XSxbInBhdGgiLHtkOiJNMjAgMTNoMiJ9XSxbInBhdGgiLHtkOiJNMyAyMXYtMmE0IDQgMCAwIDEgNC00aDZhNCA0IDAgMCAxIDIuMDcyLjU3OCJ9XSxbImNpcmNsZSIse2N4OiIxMCIsY3k6IjciLHI6IjQifV0sWyJjaXJjbGUiLHtjeDoiMjAiLGN5OiIxOSIscjoiMiJ9XV0sQWh0PVtbInBhdGgiLHtkOiJNMTkgMTZ2LTJhMiAyIDAgMCAwLTQgMHYyIn1dLFsicGF0aCIse2Q6Ik05LjUgMTVIN2E0IDQgMCAwIDAtNCA0djIifV0sWyJjaXJjbGUiLHtjeDoiMTAiLGN5OiI3IixyOiI0In1dLFsicmVjdCIse3g6IjEzIix5OiIxNiIsd2lkdGg6IjgiLGhlaWdodDoiNSIscng6Ii44OTkifV1dLERodD1bWyJwYXRoIix7ZDoiTTE2IDIxdi0yYTQgNCAwIDAgMC00LTRINmE0IDQgMCAwIDAtNCA0djIifV0sWyJjaXJjbGUiLHtjeDoiOSIsY3k6IjciLHI6IjQifV0sWyJsaW5lIix7eDE6IjIyIix4MjoiMTYiLHkxOiIxMSIseTI6IjExIn1dXSxFaHQ9W1sicGF0aCIse2Q6Ik0xMS41IDE1SDdhNCA0IDAgMCAwLTQgNHYyIn1dLFsicGF0aCIse2Q6Ik0yMS4zNzggMTYuNjI2YTEgMSAwIDAgMC0zLjAwNC0zLjAwNGwtNC4wMSA0LjAxMmEyIDIgMCAwIDAtLjUwNi44NTRsLS44MzcgMi44N2EuNS41IDAgMCAwIC42Mi42MmwyLjg3LS44MzdhMiAyIDAgMCAwIC44NTQtLjUwNnoifV0sWyJjaXJjbGUiLHtjeDoiMTAiLGN5OiI3IixyOiI0In1dXSxQaHQ9W1sicGF0aCIse2Q6Ik0xNiAyMXYtMmE0IDQgMCAwIDAtNC00SDZhNCA0IDAgMCAwLTQgNHYyIn1dLFsiY2lyY2xlIix7Y3g6IjkiLGN5OiI3IixyOiI0In1dLFsibGluZSIse3gxOiIxOSIseDI6IjE5Iix5MToiOCIseTI6IjE0In1dLFsibGluZSIse3gxOiIyMiIseDI6IjE2Iix5MToiMTEiLHkyOiIxMSJ9XV0saHg9W1sicGF0aCIse2Q6Ik0yIDIxYTggOCAwIDAgMSAxMy4yOTItNiJ9XSxbImNpcmNsZSIse2N4OiIxMCIsY3k6IjgiLHI6IjUifV0sWyJwYXRoIix7ZDoibTE2IDE5IDIgMiA0LTQifV1dLHB4PVtbInBhdGgiLHtkOiJtMTQuMzA1IDE5LjUzLjkyMy0uMzgyIn1dLFsicGF0aCIse2Q6Im0xNS4yMjggMTYuODUyLS45MjMtLjM4MyJ9XSxbInBhdGgiLHtkOiJtMTYuODUyIDE1LjIyOC0uMzgzLS45MjMifV0sWyJwYXRoIix7ZDoibTE2Ljg1MiAyMC43NzItLjM4My45MjQifV0sWyJwYXRoIix7ZDoibTE5LjE0OCAxNS4yMjguMzgzLS45MjMifV0sWyJwYXRoIix7ZDoibTE5LjUzIDIxLjY5Ni0uMzgyLS45MjQifV0sWyJwYXRoIix7ZDoiTTIgMjFhOCA4IDAgMCAxIDEwLjQzNC03LjYyIn1dLFsicGF0aCIse2Q6Im0yMC43NzIgMTYuODUyLjkyNC0uMzgzIn1dLFsicGF0aCIse2Q6Im0yMC43NzIgMTkuMTQ4LjkyNC4zODMifV0sWyJjaXJjbGUiLHtjeDoiMTAiLGN5OiI4IixyOiI1In1dLFsiY2lyY2xlIix7Y3g6IjE4IixjeToiMTgiLHI6IjMifV1dLElodD1bWyJwYXRoIix7ZDoiTTE5IDExdjYifV0sWyJwYXRoIix7ZDoiTTE5IDEzaDIifV0sWyJwYXRoIix7ZDoiTTIgMjFhOCA4IDAgMCAxIDEyLjg2OC02LjM0OSJ9XSxbImNpcmNsZSIse2N4OiIxMCIsY3k6IjgiLHI6IjUifV0sWyJjaXJjbGUiLHtjeDoiMTkiLGN5OiIxOSIscjoiMiJ9XV0sdXg9W1sicGF0aCIse2Q6Ik0yIDIxYTggOCAwIDAgMSAxMy4yOTItNiJ9XSxbImNpcmNsZSIse2N4OiIxMCIsY3k6IjgiLHI6IjUifV0sWyJwYXRoIix7ZDoiTTIyIDE5aC02In1dXSxOaHQ9W1sicGF0aCIse2Q6Ik0yIDIxYTggOCAwIDAgMSAxMC44MjEtNy40ODcifV0sWyJwYXRoIix7ZDoiTTIxLjM3OCAxNi42MjZhMSAxIDAgMCAwLTMuMDA0LTMuMDA0bC00LjAxIDQuMDEyYTIgMiAwIDAgMC0uNTA2Ljg1NGwtLjgzNyAyLjg3YS41LjUgMCAwIDAgLjYyLjYybDIuODctLjgzN2EyIDIgMCAwIDAgLjg1NC0uNTA2eiJ9XSxbImNpcmNsZSIse2N4OiIxMCIsY3k6IjgiLHI6IjUifV1dLGZ4PVtbInBhdGgiLHtkOiJNMiAyMWE4IDggMCAwIDEgMTMuMjkyLTYifV0sWyJjaXJjbGUiLHtjeDoiMTAiLGN5OiI4IixyOiI1In1dLFsicGF0aCIse2Q6Ik0xOSAxNnY2In1dLFsicGF0aCIse2Q6Ik0yMiAxOWgtNiJ9XV0sRmh0PVtbImNpcmNsZSIse2N4OiIxMCIsY3k6IjgiLHI6IjUifV0sWyJwYXRoIix7ZDoiTTIgMjFhOCA4IDAgMCAxIDEwLjQzNC03LjYyIn1dLFsiY2lyY2xlIix7Y3g6IjE4IixjeToiMTgiLHI6IjMifV0sWyJwYXRoIix7ZDoibTIyIDIyLTEuOS0xLjkifV1dLG14PVtbInBhdGgiLHtkOiJNMiAyMWE4IDggMCAwIDEgMTEuODczLTcifV0sWyJjaXJjbGUiLHtjeDoiMTAiLGN5OiI4IixyOiI1In1dLFsicGF0aCIse2Q6Im0xNyAxNyA1IDUifV0sWyJwYXRoIix7ZDoibTIyIDE3LTUgNSJ9XV0sZ3g9W1siY2lyY2xlIix7Y3g6IjEyIixjeToiOCIscjoiNSJ9XSxbInBhdGgiLHtkOiJNMjAgMjFhOCA4IDAgMCAwLTE2IDAifV1dLE9odD1bWyJjaXJjbGUiLHtjeDoiMTAiLGN5OiI3IixyOiI0In1dLFsicGF0aCIse2Q6Ik0xMC4zIDE1SDdhNCA0IDAgMCAwLTQgNHYyIn1dLFsiY2lyY2xlIix7Y3g6IjE3IixjeToiMTciLHI6IjMifV0sWyJwYXRoIix7ZDoibTIxIDIxLTEuOS0xLjkifV1dLFJodD1bWyJwYXRoIix7ZDoiTTE2LjA1MSAxMi42MTZhMSAxIDAgMCAxIDEuOTA5LjAyNGwuNzM3IDEuNDUyYTEgMSAwIDAgMCAuNzM3LjUzNWwxLjYzNC4yNTZhMSAxIDAgMCAxIC41ODggMS44MDZsLTEuMTcyIDEuMTY4YTEgMSAwIDAgMC0uMjgyLjg2NmwuMjU5IDEuNjEzYTEgMSAwIDAgMS0xLjU0MSAxLjEzNGwtMS40NjUtLjc1YTEgMSAwIDAgMC0uOTEyIDBsLTEuNDY1Ljc1YTEgMSAwIDAgMS0xLjUzOS0xLjEzM2wuMjU4LTEuNjEzYTEgMSAwIDAgMC0uMjgyLS44NjZsLTEuMTU2LTEuMTUzYTEgMSAwIDAgMSAuNTcyLTEuODIybDEuNjMzLS4yNTZhMSAxIDAgMCAwIC43MzctLjUzNXoifV0sWyJwYXRoIix7ZDoiTTggMTVIN2E0IDQgMCAwIDAtNCA0djIifV0sWyJjaXJjbGUiLHtjeDoiMTAiLGN5OiI3IixyOiI0In1dXSxCaHQ9W1sicGF0aCIse2Q6Ik0xNiAyMXYtMmE0IDQgMCAwIDAtNC00SDZhNCA0IDAgMCAwLTQgNHYyIn1dLFsiY2lyY2xlIix7Y3g6IjkiLGN5OiI3IixyOiI0In1dLFsibGluZSIse3gxOiIxNyIseDI6IjIyIix5MToiOCIseTI6IjEzIn1dLFsibGluZSIse3gxOiIyMiIseDI6IjE3Iix5MToiOCIseTI6IjEzIn1dXSxIaHQ9W1sicGF0aCIse2Q6Ik0xOSAyMXYtMmE0IDQgMCAwIDAtNC00SDlhNCA0IDAgMCAwLTQgNHYyIn1dLFsiY2lyY2xlIix7Y3g6IjEyIixjeToiNyIscjoiNCJ9XV0sYng9W1sicGF0aCIse2Q6Ik0xOCAyMWE4IDggMCAwIDAtMTYgMCJ9XSxbImNpcmNsZSIse2N4OiIxMCIsY3k6IjgiLHI6IjUifV0sWyJwYXRoIix7ZDoiTTIyIDIwYzAtMy4zNy0yLTYuNS00LThhNSA1IDAgMCAwLS40NS04LjMifV1dLHFodD1bWyJwYXRoIix7ZDoiTTE2IDIxdi0yYTQgNCAwIDAgMC00LTRINmE0IDQgMCAwIDAtNCA0djIifV0sWyJwYXRoIix7ZDoiTTE2IDMuMTI4YTQgNCAwIDAgMSAwIDcuNzQ0In1dLFsicGF0aCIse2Q6Ik0yMiAyMXYtMmE0IDQgMCAwIDAtMy0zLjg3In1dLFsiY2lyY2xlIix7Y3g6IjkiLGN5OiI3IixyOiI0In1dXSx2eD1bWyJwYXRoIix7ZDoibTE2IDItMi4zIDIuM2EzIDMgMCAwIDAgMCA0LjJsMS44IDEuOGEzIDMgMCAwIDAgNC4yIDBMMjIgOCJ9XSxbInBhdGgiLHtkOiJNMTUgMTUgMy4zIDMuM2E0LjIgNC4yIDAgMCAwIDAgNmw3LjMgNy4zYy43LjcgMiAuNyAyLjggMEwxNSAxNVptMCAwIDcgNyJ9XSxbInBhdGgiLHtkOiJtMi4xIDIxLjggNi40LTYuMyJ9XSxbInBhdGgiLHtkOiJtMTkgNS03IDcifV1dLHl4PVtbInBhdGgiLHtkOiJNMyAydjdjMCAxLjEuOSAyIDIgMmg0YTIgMiAwIDAgMCAyLTJWMiJ9XSxbInBhdGgiLHtkOiJNNyAydjIwIn1dLFsicGF0aCIse2Q6Ik0yMSAxNVYyYTUgNSAwIDAgMC01IDV2NmMwIDEuMS45IDIgMiAyaDNabTAgMHY3In1dXSxWaHQ9W1sicGF0aCIse2Q6Ik0xMiAydjIwIn1dLFsicGF0aCIse2Q6Ik0yIDVoMjAifV0sWyJwYXRoIix7ZDoiTTMgM3YyIn1dLFsicGF0aCIse2Q6Ik03IDN2MiJ9XSxbInBhdGgiLHtkOiJNMTcgM3YyIn1dLFsicGF0aCIse2Q6Ik0yMSAzdjIifV0sWyJwYXRoIix7ZDoibTE5IDUtNyA3LTctNyJ9XV0samh0PVtbInBhdGgiLHtkOiJNMTMgNnY1YTEgMSAwIDAgMCAxIDFoNi4xMDJhMSAxIDAgMCAxIC43MTIuMjk4bC44OTguOTFhMSAxIDAgMCAxIC4yODguNzAyVjE3YTEgMSAwIDAgMS0xIDFoLTMifV0sWyJwYXRoIix7ZDoiTTUgMThIM2ExIDEgMCAwIDEtMS0xVjhhMiAyIDAgMCAxIDItMmgxMmMxLjEgMCAyLjEuOCAyLjQgMS44bDEuMTc2IDQuMiJ9XSxbInBhdGgiLHtkOiJNOSAxOGg1In1dLFsiY2lyY2xlIix7Y3g6IjE2IixjeToiMTgiLHI6IjIifV0sWyJjaXJjbGUiLHtjeDoiNyIsY3k6IjE4IixyOiIyIn1dXSxVaHQ9W1sicGF0aCIse2Q6Ik04IDIxcy00LTMtNC05IDQtOSA0LTkifV0sWyJwYXRoIix7ZDoiTTE2IDNzNCAzIDQgOS00IDktNCA5In1dLFsibGluZSIse3gxOiIxNSIseDI6IjkiLHkxOiI5Iix5MjoiMTUifV0sWyJsaW5lIix7eDE6IjkiLHgyOiIxNSIseTE6IjkiLHkyOiIxNSJ9XV0sV2h0PVtbInJlY3QiLHt3aWR0aDoiMTgiLGhlaWdodDoiMTgiLHg6IjMiLHk6IjMiLHJ4OiIyIn1dLFsiY2lyY2xlIix7Y3g6IjcuNSIsY3k6IjcuNSIscjoiLjUiLGZpbGw6ImN1cnJlbnRDb2xvciJ9XSxbInBhdGgiLHtkOiJtNy45IDcuOSAyLjcgMi43In1dLFsiY2lyY2xlIix7Y3g6IjE2LjUiLGN5OiI3LjUiLHI6Ii41IixmaWxsOiJjdXJyZW50Q29sb3IifV0sWyJwYXRoIix7ZDoibTEzLjQgMTAuNiAyLjctMi43In1dLFsiY2lyY2xlIix7Y3g6IjcuNSIsY3k6IjE2LjUiLHI6Ii41IixmaWxsOiJjdXJyZW50Q29sb3IifV0sWyJwYXRoIix7ZDoibTcuOSAxNi4xIDIuNy0yLjcifV0sWyJjaXJjbGUiLHtjeDoiMTYuNSIsY3k6IjE2LjUiLHI6Ii41IixmaWxsOiJjdXJyZW50Q29sb3IifV0sWyJwYXRoIix7ZDoibTEzLjQgMTMuNCAyLjcgMi43In1dLFsiY2lyY2xlIix7Y3g6IjEyIixjeToiMTIiLHI6IjIifV1dLEdodD1bWyJwYXRoIix7ZDoiTTE5LjUgN2EyNCAyNCAwIDAgMSAwIDEwIn1dLFsicGF0aCIse2Q6Ik00LjUgN2EyNCAyNCAwIDAgMCAwIDEwIn1dLFsicGF0aCIse2Q6Ik03IDE5LjVhMjQgMjQgMCAwIDAgMTAgMCJ9XSxbInBhdGgiLHtkOiJNNyA0LjVhMjQgMjQgMCAwIDEgMTAgMCJ9XSxbInJlY3QiLHt4OiIxNyIseToiMTciLHdpZHRoOiI1IixoZWlnaHQ6IjUiLHJ4OiIxIn1dLFsicmVjdCIse3g6IjE3Iix5OiIyIix3aWR0aDoiNSIsaGVpZ2h0OiI1IixyeDoiMSJ9XSxbInJlY3QiLHt4OiIyIix5OiIxNyIsd2lkdGg6IjUiLGhlaWdodDoiNSIscng6IjEifV0sWyJyZWN0Iix7eDoiMiIseToiMiIsd2lkdGg6IjUiLGhlaWdodDoiNSIscng6IjEifV1dLFlodD1bWyJwYXRoIix7ZDoiTTE2IDhxNiAwIDYtNi02IDAtNiA2In1dLFsicGF0aCIse2Q6Ik0xNy40MSAzLjU5YTEwIDEwIDAgMSAwIDMgMyJ9XSxbInBhdGgiLHtkOiJNMiAyYTI2LjYgMjYuNiAwIDAgMSAxMCAyMGMuOS02LjgyIDEuNS05LjUgNC0xNCJ9XV0sWmh0PVtbInBhdGgiLHtkOiJNMTggMTFjLTEuNSAwLTIuNS41LTMgMiJ9XSxbInBhdGgiLHtkOiJNNCA2YTIgMiAwIDAgMC0yIDJ2NGE1IDUgMCAwIDAgNSA1IDggOCAwIDAgMSA1IDIgOCA4IDAgMCAxIDUtMiA1IDUgMCAwIDAgNS01VjhhMiAyIDAgMCAwLTItMmgtM2E4IDggMCAwIDAtNSAyIDggOCAwIDAgMC01LTJ6In1dLFsicGF0aCIse2Q6Ik02IDExYzEuNSAwIDIuNS41IDMgMiJ9XV0sWGh0PVtbInBhdGgiLHtkOiJNMTAgMjBoNCJ9XSxbInBhdGgiLHtkOiJNMTIgMTZ2NiJ9XSxbInBhdGgiLHtkOiJNMTcgMmg0djQifV0sWyJwYXRoIix7ZDoibTIxIDItNS40NiA1LjQ2In1dLFsiY2lyY2xlIix7Y3g6IjEyIixjeToiMTEiLHI6IjUifV1dLEtodD1bWyJwYXRoIix7ZDoiTTEyIDE1djcifV0sWyJwYXRoIix7ZDoiTTkgMTloNiJ9XSxbImNpcmNsZSIse2N4OiIxMiIsY3k6IjkiLHI6IjYifV1dLFFodD1bWyJwYXRoIix7ZDoibTIgOCAyIDItMiAyIDIgMi0yIDIifV0sWyJwYXRoIix7ZDoibTIyIDgtMiAyIDIgMi0yIDIgMiAyIn1dLFsicGF0aCIse2Q6Ik04IDh2MTBjMCAuNTUuNDUgMSAxIDFoNmMuNTUgMCAxLS40NSAxLTF2LTIifV0sWyJwYXRoIix7ZDoiTTE2IDEwLjM0VjZjMC0uNTUtLjQ1LTEtMS0xaC00LjM0In1dLFsibGluZSIse3gxOiIyIix4MjoiMjIiLHkxOiIyIix5MjoiMjIifV1dLEpodD1bWyJwYXRoIix7ZDoibTIgOCAyIDItMiAyIDIgMi0yIDIifV0sWyJwYXRoIix7ZDoibTIyIDgtMiAyIDIgMi0yIDIgMiAyIn1dLFsicmVjdCIse3dpZHRoOiI4IixoZWlnaHQ6IjE0Iix4OiI4Iix5OiI1IixyeDoiMSJ9XV0sZXB0PVtbInBhdGgiLHtkOiJNMTAuNjYgNkgxNGEyIDIgMCAwIDEgMiAydjIuNWw1LjI0OC0zLjA2MkEuNS41IDAgMCAxIDIyIDcuODd2OC4xOTYifV0sWyJwYXRoIix7ZDoiTTE2IDE2YTIgMiAwIDAgMS0yIDJINGEyIDIgMCAwIDEtMi0yVjhhMiAyIDAgMCAxIDItMmgyIn1dLFsicGF0aCIse2Q6Im0yIDIgMjAgMjAifV1dLHRwdD1bWyJwYXRoIix7ZDoibTE2IDEzIDUuMjIzIDMuNDgyYS41LjUgMCAwIDAgLjc3Ny0uNDE2VjcuODdhLjUuNSAwIDAgMC0uNzUyLS40MzJMMTYgMTAuNSJ9XSxbInJlY3QiLHt4OiIyIix5OiI2Iix3aWR0aDoiMTQiLGhlaWdodDoiMTIiLHJ4OiIyIn1dXSxhcHQ9W1sicmVjdCIse3dpZHRoOiIyMCIsaGVpZ2h0OiIxNiIseDoiMiIseToiNCIscng6IjIifV0sWyJwYXRoIix7ZDoiTTIgOGgyMCJ9XSxbImNpcmNsZSIse2N4OiI4IixjeToiMTQiLHI6IjIifV0sWyJwYXRoIix7ZDoiTTggMTJoOCJ9XSxbImNpcmNsZSIse2N4OiIxNiIsY3k6IjE0IixyOiIyIn1dXSxpcHQ9W1sicGF0aCIse2Q6Ik0yMSAxN3YyYTIgMiAwIDAgMS0yIDJINWEyIDIgMCAwIDEtMi0ydi0yIn1dLFsicGF0aCIse2Q6Ik0yMSA3VjVhMiAyIDAgMCAwLTItMkg1YTIgMiAwIDAgMC0yIDJ2MiJ9XSxbImNpcmNsZSIse2N4OiIxMiIsY3k6IjEyIixyOiIxIn1dLFsicGF0aCIse2Q6Ik0xOC45NDQgMTIuMzNhMSAxIDAgMCAwIDAtLjY2IDcuNSA3LjUgMCAwIDAtMTMuODg4IDAgMSAxIDAgMCAwIDAgLjY2IDcuNSA3LjUgMCAwIDAgMTMuODg4IDAifV1dLHJwdD1bWyJjaXJjbGUiLHtjeDoiNiIsY3k6IjEyIixyOiI0In1dLFsiY2lyY2xlIix7Y3g6IjE4IixjeToiMTIiLHI6IjQifV0sWyJsaW5lIix7eDE6IjYiLHgyOiIxOCIseTE6IjE2Iix5MjoiMTYifV1dLHNwdD1bWyJwYXRoIix7ZDoiTTExLjEgNy4xYTE2LjU1IDE2LjU1IDAgMCAxIDEwLjkgNCJ9XSxbInBhdGgiLHtkOiJNMTIgMTJhMTIuNiAxMi42IDAgMCAxLTguNyA1In1dLFsicGF0aCIse2Q6Ik0xNi44IDEzLjZhMTYuNTUgMTYuNTUgMCAwIDEtOSA3LjUifV0sWyJwYXRoIix7ZDoiTTIwLjcgMTdhMTIuOCAxMi44IDAgMCAwLTguNy01IDEzLjMgMTMuMyAwIDAgMSAwLTEwIn1dLFsicGF0aCIse2Q6Ik02LjMgMy44YTE2LjU1IDE2LjU1IDAgMCAwIDEuOSAxMS41In1dLFsiY2lyY2xlIix7Y3g6IjEyIixjeToiMTIiLHI6IjEwIn1dXSxucHQ9W1sicGF0aCIse2Q6Ik0xMSA0LjcwMmEuNzA1LjcwNSAwIDAgMC0xLjIwMy0uNDk4TDYuNDEzIDcuNTg3QTEuNCAxLjQgMCAwIDEgNS40MTYgOEgzYTEgMSAwIDAgMC0xIDF2NmExIDEgMCAwIDAgMSAxaDIuNDE2YTEuNCAxLjQgMCAwIDEgLjk5Ny40MTNsMy4zODMgMy4zODRBLjcwNS43MDUgMCAwIDAgMTEgMTkuMjk4eiJ9XSxbInBhdGgiLHtkOiJNMTYgOWE1IDUgMCAwIDEgMCA2In1dXSxvcHQ9W1sicGF0aCIse2Q6Ik0xMSA0LjcwMmEuNzA1LjcwNSAwIDAgMC0xLjIwMy0uNDk4TDYuNDEzIDcuNTg3QTEuNCAxLjQgMCAwIDEgNS40MTYgOEgzYTEgMSAwIDAgMC0xIDF2NmExIDEgMCAwIDAgMSAxaDIuNDE2YTEuNCAxLjQgMCAwIDEgLjk5Ny40MTNsMy4zODMgMy4zODRBLjcwNS43MDUgMCAwIDAgMTEgMTkuMjk4eiJ9XSxbInBhdGgiLHtkOiJNMTYgOWE1IDUgMCAwIDEgMCA2In1dLFsicGF0aCIse2Q6Ik0xOS4zNjQgMTguMzY0YTkgOSAwIDAgMCAwLTEyLjcyOCJ9XV0sbHB0PVtbInBhdGgiLHtkOiJNMTYgOWE1IDUgMCAwIDEgLjk1IDIuMjkzIn1dLFsicGF0aCIse2Q6Ik0xOS4zNjQgNS42MzZhOSA5IDAgMCAxIDEuODg5IDkuOTYifV0sWyJwYXRoIix7ZDoibTIgMiAyMCAyMCJ9XSxbInBhdGgiLHtkOiJtNyA3LS41ODcuNTg3QTEuNCAxLjQgMCAwIDEgNS40MTYgOEgzYTEgMSAwIDAgMC0xIDF2NmExIDEgMCAwIDAgMSAxaDIuNDE2YTEuNCAxLjQgMCAwIDEgLjk5Ny40MTNsMy4zODMgMy4zODRBLjcwNS43MDUgMCAwIDAgMTEgMTkuMjk4VjExIn1dLFsicGF0aCIse2Q6Ik05LjgyOCA0LjE3MkEuNjg2LjY4NiAwIDAgMSAxMSA0LjY1N3YuNjg2In1dXSxjcHQ9W1sicGF0aCIse2Q6Ik0xMSA0LjcwMmEuNzA1LjcwNSAwIDAgMC0xLjIwMy0uNDk4TDYuNDEzIDcuNTg3QTEuNCAxLjQgMCAwIDEgNS40MTYgOEgzYTEgMSAwIDAgMC0xIDF2NmExIDEgMCAwIDAgMSAxaDIuNDE2YTEuNCAxLjQgMCAwIDEgLjk5Ny40MTNsMy4zODMgMy4zODRBLjcwNS43MDUgMCAwIDAgMTEgMTkuMjk4eiJ9XSxbImxpbmUiLHt4MToiMjIiLHgyOiIxNiIseTE6IjkiLHkyOiIxNSJ9XSxbImxpbmUiLHt4MToiMTYiLHgyOiIyMiIseTE6IjkiLHkyOiIxNSJ9XV0sZHB0PVtbInBhdGgiLHtkOiJtOSAxMiAyIDIgNC00In1dLFsicGF0aCIse2Q6Ik01IDdjMC0xLjEuOS0yIDItMmgxMGEyIDIgMCAwIDEgMiAydjEySDVWN1oifV0sWyJwYXRoIix7ZDoiTTIyIDE5SDIifV1dLGhwdD1bWyJwYXRoIix7ZDoiTTExIDQuNzAyYS43MDUuNzA1IDAgMCAwLTEuMjAzLS40OThMNi40MTMgNy41ODdBMS40IDEuNCAwIDAgMSA1LjQxNiA4SDNhMSAxIDAgMCAwLTEgMXY2YTEgMSAwIDAgMCAxIDFoMi40MTZhMS40IDEuNCAwIDAgMSAuOTk3LjQxM2wzLjM4MyAzLjM4NEEuNzA1LjcwNSAwIDAgMCAxMSAxOS4yOTh6In1dXSxwcHQ9W1sicmVjdCIse3dpZHRoOiIxOCIsaGVpZ2h0OiIxOCIseDoiMyIseToiMyIscng6IjIifV0sWyJwYXRoIix7ZDoiTTMgOWEyIDIgMCAwIDEgMi0yaDE0YTIgMiAwIDAgMSAyIDIifV0sWyJwYXRoIix7ZDoiTTMgMTFoM2MuOCAwIDEuNi4zIDIuMS45bDEuMS45YzEuNiAxLjYgNC4xIDEuNiA1LjcgMGwxLjEtLjljLjUtLjUgMS4zLS45IDIuMS0uOUgyMSJ9XV0seHg9W1sicGF0aCIse2Q6Ik0xNyAxNGguMDEifV0sWyJwYXRoIix7ZDoiTTcgN2gxMmEyIDIgMCAwIDEgMiAydjEwYTIgMiAwIDAgMS0yIDJINWEyIDIgMCAwIDEtMi0yVjVhMiAyIDAgMCAxIDItMmgxNCJ9XV0sdXB0PVtbInBhdGgiLHtkOiJNMTkgN1Y0YTEgMSAwIDAgMC0xLTFINWEyIDIgMCAwIDAgMCA0aDE1YTEgMSAwIDAgMSAxIDF2NGgtM2EyIDIgMCAwIDAgMCA0aDNhMSAxIDAgMCAwIDEtMXYtMmExIDEgMCAwIDAtMS0xIn1dLFsicGF0aCIse2Q6Ik0zIDV2MTRhMiAyIDAgMCAwIDIgMmgxNWExIDEgMCAwIDAgMS0xdi00In1dXSxmcHQ9W1sicGF0aCIse2Q6Ik0xMiAxN3Y0In1dLFsicGF0aCIse2Q6Ik04IDIxaDgifV0sWyJwYXRoIix7ZDoibTkgMTcgNi4xLTYuMWEyIDIgMCAwIDEgMi44MS4wMUwyMiAxNSJ9XSxbImNpcmNsZSIse2N4OiI4IixjeToiOSIscjoiMiJ9XSxbInJlY3QiLHt4OiIyIix5OiIzIix3aWR0aDoiMjAiLGhlaWdodDoiMTQiLHJ4OiIyIn1dXSx3eD1bWyJwYXRoIix7ZDoibTIxLjY0IDMuNjQtMS4yOC0xLjI4YTEuMjEgMS4yMSAwIDAgMC0xLjcyIDBMMi4zNiAxOC42NGExLjIxIDEuMjEgMCAwIDAgMCAxLjcybDEuMjggMS4yOGExLjIgMS4yIDAgMCAwIDEuNzIgMEwyMS42NCA1LjM2YTEuMiAxLjIgMCAwIDAgMC0xLjcyIn1dLFsicGF0aCIse2Q6Im0xNCA3IDMgMyJ9XSxbInBhdGgiLHtkOiJNNSA2djQifV0sWyJwYXRoIix7ZDoiTTE5IDE0djQifV0sWyJwYXRoIix7ZDoiTTEwIDJ2MiJ9XSxbInBhdGgiLHtkOiJNNyA4SDMifV0sWyJwYXRoIix7ZDoiTTIxIDE2aC00In1dLFsicGF0aCIse2Q6Ik0xMSAzSDkifV1dLG1wdD1bWyJwYXRoIix7ZDoiTTE1IDRWMiJ9XSxbInBhdGgiLHtkOiJNMTUgMTZ2LTIifV0sWyJwYXRoIix7ZDoiTTggOWgyIn1dLFsicGF0aCIse2Q6Ik0yMCA5aDIifV0sWyJwYXRoIix7ZDoiTTE3LjggMTEuOCAxOSAxMyJ9XSxbInBhdGgiLHtkOiJNMTUgOWguMDEifV0sWyJwYXRoIix7ZDoiTTE3LjggNi4yIDE5IDUifV0sWyJwYXRoIix7ZDoibTMgMjEgOS05In1dLFsicGF0aCIse2Q6Ik0xMi4yIDYuMiAxMSA1In1dXSxncHQ9W1sicGF0aCIse2Q6Ik0xOCAyMVYxMGExIDEgMCAwIDAtMS0xSDdhMSAxIDAgMCAwLTEgMXYxMSJ9XSxbInBhdGgiLHtkOiJNMjIgMTlhMiAyIDAgMCAxLTIgMkg0YTIgMiAwIDAgMS0yLTJWOGEyIDIgMCAwIDEgMS4xMzItMS44MDNsNy45NS0zLjk3NGEyIDIgMCAwIDEgMS44MzcgMGw3Ljk0OCAzLjk3NEEyIDIgMCAwIDEgMjIgOHoifV0sWyJwYXRoIix7ZDoiTTYgMTNoMTIifV0sWyJwYXRoIix7ZDoiTTYgMTdoMTIifV1dLGJwdD1bWyJwYXRoIix7ZDoiTTMgNmgzIn1dLFsicGF0aCIse2Q6Ik0xNyA2aC4wMSJ9XSxbInJlY3QiLHt3aWR0aDoiMTgiLGhlaWdodDoiMjAiLHg6IjMiLHk6IjIiLHJ4OiIyIn1dLFsiY2lyY2xlIix7Y3g6IjEyIixjeToiMTMiLHI6IjUifV0sWyJwYXRoIix7ZDoiTTEyIDE4YTIuNSAyLjUgMCAwIDAgMC01IDIuNSAyLjUgMCAwIDEgMC01In1dXSx2cHQ9W1sicGF0aCIse2Q6Ik0xMiAxMHYyLjJsMS42IDEifV0sWyJwYXRoIix7ZDoibTE2LjEzIDcuNjYtLjgxLTQuMDVhMiAyIDAgMCAwLTItMS42MWgtMi42OGEyIDIgMCAwIDAtMiAxLjYxbC0uNzggNC4wNSJ9XSxbInBhdGgiLHtkOiJtNy44OCAxNi4zNi44IDRhMiAyIDAgMCAwIDIgMS42MWgyLjcyYTIgMiAwIDAgMCAyLTEuNjFsLjgxLTQuMDUifV0sWyJjaXJjbGUiLHtjeDoiMTIiLGN5OiIxMiIscjoiNiJ9XV0seXB0PVtbInBhdGgiLHtkOiJNMTIgMTBMMTIgMiJ9XSxbInBhdGgiLHtkOiJNMTYgNkwxMiAxMEw4IDYifV0sWyJwYXRoIix7ZDoiTTIgMTVDMi42IDE1LjUgMy4yIDE2IDQuNSAxNkM3IDE2IDcgMTQgOS41IDE0QzEyLjEgMTQgMTEuOSAxNiAxNC41IDE2QzE3IDE2IDE3IDE0IDE5LjUgMTRDMjAuOCAxNCAyMS40IDE0LjUgMjIgMTUifV0sWyJwYXRoIix7ZDoiTTIgMjFDMi42IDIxLjUgMy4yIDIyIDQuNSAyMkM3IDIyIDcgMjAgOS41IDIwQzEyLjEgMjAgMTEuOSAyMiAxNC41IDIyQzE3IDIyIDE3IDIwIDE5LjUgMjBDMjAuOCAyMCAyMS40IDIwLjUgMjIgMjEifV1dLHhwdD1bWyJwYXRoIix7ZDoiTTEyIDJ2OCJ9XSxbInBhdGgiLHtkOiJNMiAxNWMuNi41IDEuMiAxIDIuNSAxIDIuNSAwIDIuNS0yIDUtMiAyLjYgMCAyLjQgMiA1IDIgMi41IDAgMi41LTIgNS0yIDEuMyAwIDEuOS41IDIuNSAxIn1dLFsicGF0aCIse2Q6Ik0yIDIxYy42LjUgMS4yIDEgMi41IDEgMi41IDAgMi41LTIgNS0yIDIuNiAwIDIuNCAyIDUgMiAyLjUgMCAyLjUtMiA1LTIgMS4zIDAgMS45LjUgMi41IDEifV0sWyJwYXRoIix7ZDoibTggNiA0LTQgNCA0In1dXSx3cHQ9W1sicGF0aCIse2Q6Ik0xOSA1YTIgMiAwIDAgMC0yIDJ2MTEifV0sWyJwYXRoIix7ZDoiTTIgMThjLjYuNSAxLjIgMSAyLjUgMSAyLjUgMCAyLjUtMiA1LTIgMi42IDAgMi40IDIgNSAyIDIuNSAwIDIuNS0yIDUtMiAxLjMgMCAxLjkuNSAyLjUgMSJ9XSxbInBhdGgiLHtkOiJNNyAxM2gxMCJ9XSxbInBhdGgiLHtkOiJNNyA5aDEwIn1dLFsicGF0aCIse2Q6Ik05IDVhMiAyIDAgMCAwLTIgMnYxMSJ9XV0sTXB0PVtbInBhdGgiLHtkOiJNMiA2Yy42LjUgMS4yIDEgMi41IDFDNyA3IDcgNSA5LjUgNWMyLjYgMCAyLjQgMiA1IDIgMi41IDAgMi41LTIgNS0yIDEuMyAwIDEuOS41IDIuNSAxIn1dLFsicGF0aCIse2Q6Ik0yIDEyYy42LjUgMS4yIDEgMi41IDEgMi41IDAgMi41LTIgNS0yIDIuNiAwIDIuNCAyIDUgMiAyLjUgMCAyLjUtMiA1LTIgMS4zIDAgMS45LjUgMi41IDEifV0sWyJwYXRoIix7ZDoiTTIgMThjLjYuNSAxLjIgMSAyLjUgMSAyLjUgMCAyLjUtMiA1LTIgMi42IDAgMi40IDIgNSAyIDIuNSAwIDIuNS0yIDUtMiAxLjMgMCAxLjkuNSAyLjUgMSJ9XV0senB0PVtbInBhdGgiLHtkOiJtMTAuNTg2IDUuNDE0LTUuMTcyIDUuMTcyIn1dLFsicGF0aCIse2Q6Im0xOC41ODYgMTMuNDE0LTUuMTcyIDUuMTcyIn1dLFsicGF0aCIse2Q6Ik02IDEyaDEyIn1dLFsiY2lyY2xlIix7Y3g6IjEyIixjeToiMjAiLHI6IjIifV0sWyJjaXJjbGUiLHtjeDoiMTIiLGN5OiI0IixyOiIyIn1dLFsiY2lyY2xlIix7Y3g6IjIwIixjeToiMTIiLHI6IjIifV0sWyJjaXJjbGUiLHtjeDoiNCIsY3k6IjEyIixyOiIyIn1dXSxrcHQ9W1siY2lyY2xlIix7Y3g6IjEyIixjeToiMTAiLHI6IjgifV0sWyJjaXJjbGUiLHtjeDoiMTIiLGN5OiIxMCIscjoiMyJ9XSxbInBhdGgiLHtkOiJNNyAyMmgxMCJ9XSxbInBhdGgiLHtkOiJNMTIgMjJ2LTQifV1dLFNwdD1bWyJwYXRoIix7ZDoiTTE3IDE3aC01Yy0xLjA5LS4wMi0xLjk0LjkyLTIuNSAxLjlBMyAzIDAgMSAxIDIuNTcgMTUifV0sWyJwYXRoIix7ZDoiTTkgMy40YTQgNCAwIDAgMSA2LjUyLjY2In1dLFsicGF0aCIse2Q6Im02IDE3IDMuMS01LjhhMi41IDIuNSAwIDAgMCAuMDU3LTIuMDUifV0sWyJwYXRoIix7ZDoiTTIwLjMgMjAuM2E0IDQgMCAwIDEtMi4zLjcifV0sWyJwYXRoIix7ZDoiTTE4LjYgMTNhNCA0IDAgMCAxIDMuMzU3IDMuNDE0In1dLFsicGF0aCIse2Q6Im0xMiA2IC42IDEifV0sWyJwYXRoIix7ZDoibTIgMiAyMCAyMCJ9XV0sQ3B0PVtbInBhdGgiLHtkOiJNMTggMTYuOThoLTUuOTljLTEuMSAwLTEuOTUuOTQtMi40OCAxLjlBNCA0IDAgMCAxIDIgMTdjLjAxLS43LjItMS40LjU3LTIifV0sWyJwYXRoIix7ZDoibTYgMTcgMy4xMy01Ljc4Yy41My0uOTcuMS0yLjE4LS41LTMuMWE0IDQgMCAxIDEgNi44OS00LjA2In1dLFsicGF0aCIse2Q6Im0xMiA2IDMuMTMgNS43M0MxNS42NiAxMi43IDE2LjkgMTMgMTggMTNhNCA0IDAgMCAxIDAgOCJ9XV0sX3B0PVtbInBhdGgiLHtkOiJNNi41IDhhMiAyIDAgMCAwLTEuOTA2IDEuNDZMMi4xIDE4LjVBMiAyIDAgMCAwIDQgMjFoMTZhMiAyIDAgMCAwIDEuOTI1LTIuNTRMMTkuNCA5LjVBMiAyIDAgMCAwIDE3LjQ4IDh6In1dLFsicGF0aCIse2Q6Ik03Ljk5OSAxNWEyLjUgMi41IDAgMCAxIDQgMCAyLjUgMi41IDAgMCAwIDQgMCJ9XSxbImNpcmNsZSIse2N4OiIxMiIsY3k6IjUiLHI6IjMifV1dLFRwdD1bWyJwYXRoIix7ZDoibTIgMjIgMTAtMTAifV0sWyJwYXRoIix7ZDoibTE2IDgtMS4xNyAxLjE3In1dLFsicGF0aCIse2Q6Ik0zLjQ3IDEyLjUzIDUgMTFsMS41MyAxLjUzYTMuNSAzLjUgMCAwIDEgMCA0Ljk0TDUgMTlsLTEuNTMtMS41M2EzLjUgMy41IDAgMCAxIDAtNC45NFoifV0sWyJwYXRoIix7ZDoibTggOC0uNTMuNTNhMy41IDMuNSAwIDAgMCAwIDQuOTRMOSAxNWwxLjUzLTEuNTNjLjU1LS41NS44OC0xLjI1Ljk4LTEuOTcifV0sWyJwYXRoIix7ZDoiTTEwLjkxIDUuMjZjLjE1LS4yNi4zNC0uNTEuNTYtLjczTDEzIDNsMS41MyAxLjUzYTMuNSAzLjUgMCAwIDEgLjI4IDQuNjIifV0sWyJwYXRoIix7ZDoiTTIwIDJoMnYyYTQgNCAwIDAgMS00IDRoLTJWNmE0IDQgMCAwIDEgNC00WiJ9XSxbInBhdGgiLHtkOiJNMTEuNDcgMTcuNDcgMTMgMTlsLTEuNTMgMS41M2EzLjUgMy41IDAgMCAxLTQuOTQgMEw1IDE5bDEuNTMtMS41M2EzLjUgMy41IDAgMCAxIDQuOTQgMFoifV0sWyJwYXRoIix7ZDoibTE2IDE2LS41My41M2EzLjUgMy41IDAgMCAxLTQuOTQgMEw5IDE1bDEuNTMtMS41M2EzLjQ5IDMuNDkgMCAwIDEgMS45Ny0uOTgifV0sWyJwYXRoIix7ZDoiTTE4Ljc0IDEzLjA5Yy4yNi0uMTUuNTEtLjM0LjczLS41NkwyMSAxMWwtMS41My0xLjUzYTMuNSAzLjUgMCAwIDAtNC42Mi0uMjgifV0sWyJsaW5lIix7eDE6IjIiLHgyOiIyMiIseTE6IjIiLHkyOiIyMiJ9XV0sTHB0PVtbImNpcmNsZSIse2N4OiIxMiIsY3k6IjUiLHI6IjMifV0sWyJwYXRoIix7ZDoiTTYuNSA4YTIgMiAwIDAgMC0xLjkwNSAxLjQ2TDIuMSAxOC41QTIgMiAwIDAgMCA0IDIxaDE2YTIgMiAwIDAgMCAxLjkyNS0yLjU0TDE5LjQgOS41QTIgMiAwIDAgMCAxNy40OCA4WiJ9XV0sJHB0PVtbInBhdGgiLHtkOiJNMiAyMiAxNiA4In1dLFsicGF0aCIse2Q6Ik0zLjQ3IDEyLjUzIDUgMTFsMS41MyAxLjUzYTMuNSAzLjUgMCAwIDEgMCA0Ljk0TDUgMTlsLTEuNTMtMS41M2EzLjUgMy41IDAgMCAxIDAtNC45NFoifV0sWyJwYXRoIix7ZDoiTTcuNDcgOC41MyA5IDdsMS41MyAxLjUzYTMuNSAzLjUgMCAwIDEgMCA0Ljk0TDkgMTVsLTEuNTMtMS41M2EzLjUgMy41IDAgMCAxIDAtNC45NFoifV0sWyJwYXRoIix7ZDoiTTExLjQ3IDQuNTMgMTMgM2wxLjUzIDEuNTNhMy41IDMuNSAwIDAgMSAwIDQuOTRMMTMgMTFsLTEuNTMtMS41M2EzLjUgMy41IDAgMCAxIDAtNC45NFoifV0sWyJwYXRoIix7ZDoiTTIwIDJoMnYyYTQgNCAwIDAgMS00IDRoLTJWNmE0IDQgMCAwIDEgNC00WiJ9XSxbInBhdGgiLHtkOiJNMTEuNDcgMTcuNDcgMTMgMTlsLTEuNTMgMS41M2EzLjUgMy41IDAgMCAxLTQuOTQgMEw1IDE5bDEuNTMtMS41M2EzLjUgMy41IDAgMCAxIDQuOTQgMFoifV0sWyJwYXRoIix7ZDoiTTE1LjQ3IDEzLjQ3IDE3IDE1bC0xLjUzIDEuNTNhMy41IDMuNSAwIDAgMS00Ljk0IDBMOSAxNWwxLjUzLTEuNTNhMy41IDMuNSAwIDAgMSA0Ljk0IDBaIn1dLFsicGF0aCIse2Q6Ik0xOS40NyA5LjQ3IDIxIDExbC0xLjUzIDEuNTNhMy41IDMuNSAwIDAgMS00Ljk0IDBMMTMgMTFsMS41My0xLjUzYTMuNSAzLjUgMCAwIDEgNC45NCAwWiJ9XV0sQXB0PVtbImNpcmNsZSIse2N4OiI3IixjeToiMTIiLHI6IjMifV0sWyJwYXRoIix7ZDoiTTEwIDl2NiJ9XSxbImNpcmNsZSIse2N4OiIxNyIsY3k6IjEyIixyOiIzIn1dLFsicGF0aCIse2Q6Ik0xNCA3djgifV0sWyJwYXRoIix7ZDoiTTIyIDE3djFjMCAuNS0uNSAxLTEgMUgzYy0uNSAwLTEtLjUtMS0xdi0xIn1dXSxEcHQ9W1sicGF0aCIse2Q6Im0xNC4zMDUgMTkuNTMuOTIzLS4zODIifV0sWyJwYXRoIix7ZDoibTE1LjIyOCAxNi44NTItLjkyMy0uMzgzIn1dLFsicGF0aCIse2Q6Im0xNi44NTIgMTUuMjI4LS4zODMtLjkyMyJ9XSxbInBhdGgiLHtkOiJtMTYuODUyIDIwLjc3Mi0uMzgzLjkyNCJ9XSxbInBhdGgiLHtkOiJtMTkuMTQ4IDE1LjIyOC4zODMtLjkyMyJ9XSxbInBhdGgiLHtkOiJtMTkuNTMgMjEuNjk2LS4zODItLjkyNCJ9XSxbInBhdGgiLHtkOiJNMiA3LjgyYTE1IDE1IDAgMCAxIDIwIDAifV0sWyJwYXRoIix7ZDoibTIwLjc3MiAxNi44NTIuOTI0LS4zODMifV0sWyJwYXRoIix7ZDoibTIwLjc3MiAxOS4xNDguOTI0LjM4MyJ9XSxbInBhdGgiLHtkOiJNNSAxMS44NThhMTAgMTAgMCAwIDEgMTEuNS0xLjc4NSJ9XSxbInBhdGgiLHtkOiJNOC41IDE1LjQyOWE1IDUgMCAwIDEgMi40MTMtMS4zMSJ9XSxbImNpcmNsZSIse2N4OiIxOCIsY3k6IjE4IixyOiIzIn1dXSxFcHQ9W1sicGF0aCIse2Q6Ik0xMiAyMGguMDEifV0sWyJwYXRoIix7ZDoiTTUgMTIuODU5YTEwIDEwIDAgMCAxIDE0IDAifV0sWyJwYXRoIix7ZDoiTTguNSAxNi40MjlhNSA1IDAgMCAxIDcgMCJ9XV0sUHB0PVtbInBhdGgiLHtkOiJNMTIgMjBoLjAxIn1dLFsicGF0aCIse2Q6Ik04LjUgMTYuNDI5YTUgNSAwIDAgMSA3IDAifV1dLElwdD1bWyJwYXRoIix7ZDoiTTEyIDIwaC4wMSJ9XSxbInBhdGgiLHtkOiJNOC41IDE2LjQyOWE1IDUgMCAwIDEgNyAwIn1dLFsicGF0aCIse2Q6Ik01IDEyLjg1OWExMCAxMCAwIDAgMSA1LjE3LTIuNjkifV0sWyJwYXRoIix7ZDoiTTE5IDEyLjg1OWExMCAxMCAwIDAgMC0yLjAwNy0xLjUyMyJ9XSxbInBhdGgiLHtkOiJNMiA4LjgyYTE1IDE1IDAgMCAxIDQuMTc3LTIuNjQzIn1dLFsicGF0aCIse2Q6Ik0yMiA4LjgyYTE1IDE1IDAgMCAwLTExLjI4OC0zLjc2NCJ9XSxbInBhdGgiLHtkOiJtMiAyIDIwIDIwIn1dXSxOcHQ9W1sicGF0aCIse2Q6Ik0yIDguODJhMTUgMTUgMCAwIDEgMjAgMCJ9XSxbInBhdGgiLHtkOiJNMjEuMzc4IDE2LjYyNmExIDEgMCAwIDAtMy4wMDQtMy4wMDRsLTQuMDEgNC4wMTJhMiAyIDAgMCAwLS41MDYuODU0bC0uODM3IDIuODdhLjUuNSAwIDAgMCAuNjIuNjJsMi44Ny0uODM3YTIgMiAwIDAgMCAuODU0LS41MDZ6In1dLFsicGF0aCIse2Q6Ik01IDEyLjg1OWExMCAxMCAwIDAgMSAxMC41LTIuMjIyIn1dLFsicGF0aCIse2Q6Ik04LjUgMTYuNDI5YTUgNSAwIDAgMSAzLTEuNDA2In1dXSxGcHQ9W1sicGF0aCIse2Q6Ik0xMS45NjUgMTAuMTA1djRMMTMuNSAxMi41YTUgNSAwIDAgMSA4IDEuNSJ9XSxbInBhdGgiLHtkOiJNMTEuOTY1IDE0LjEwNWg0In1dLFsicGF0aCIse2Q6Ik0xNy45NjUgMTguMTA1aDRMMjAuNDMgMTkuNzFhNSA1IDAgMCAxLTgtMS41In1dLFsicGF0aCIse2Q6Ik0yIDguODJhMTUgMTUgMCAwIDEgMjAgMCJ9XSxbInBhdGgiLHtkOiJNMjEuOTY1IDIyLjEwNXYtNCJ9XSxbInBhdGgiLHtkOiJNNSAxMi44NmExMCAxMCAwIDAgMSAzLTIuMDMyIn1dLFsicGF0aCIse2Q6Ik04LjUgMTYuNDI5aC4wMSJ9XV0sT3B0PVtbInBhdGgiLHtkOiJNMTIgMjBoLjAxIn1dXSxScHQ9W1sicGF0aCIse2Q6Ik0xMiAyMGguMDEifV0sWyJwYXRoIix7ZDoiTTIgOC44MmExNSAxNSAwIDAgMSAyMCAwIn1dLFsicGF0aCIse2Q6Ik01IDEyLjg1OWExMCAxMCAwIDAgMSAxNCAwIn1dLFsicGF0aCIse2Q6Ik04LjUgMTYuNDI5YTUgNSAwIDAgMSA3IDAifV1dLEJwdD1bWyJwYXRoIix7ZDoiTTEwIDJ2OCJ9XSxbInBhdGgiLHtkOiJNMTIuOCAyMS42QTIgMiAwIDEgMCAxNCAxOEgyIn1dLFsicGF0aCIse2Q6Ik0xNy41IDEwYTIuNSAyLjUgMCAxIDEgMiA0SDIifV0sWyJwYXRoIix7ZDoibTYgNiA0IDQgNC00In1dXSxIcHQ9W1sicGF0aCIse2Q6Ik0xMi44IDE5LjZBMiAyIDAgMSAwIDE0IDE2SDIifV0sWyJwYXRoIix7ZDoiTTE3LjUgOGEyLjUgMi41IDAgMSAxIDIgNEgyIn1dLFsicGF0aCIse2Q6Ik05LjggNC40QTIgMiAwIDEgMSAxMSA4SDIifV1dLHFwdD1bWyJwYXRoIix7ZDoiTTggMjJoOCJ9XSxbInBhdGgiLHtkOiJNNyAxMGgxMCJ9XSxbInBhdGgiLHtkOiJNMTIgMTV2NyJ9XSxbInBhdGgiLHtkOiJNMTIgMTVhNSA1IDAgMCAwIDUtNWMwLTItLjUtNC0yLThIOWMtMS41IDQtMiA2LTIgOGE1IDUgMCAwIDAgNSA1WiJ9XV0sVnB0PVtbInJlY3QiLHt3aWR0aDoiOCIsaGVpZ2h0OiI4Iix4OiIzIix5OiIzIixyeDoiMiJ9XSxbInBhdGgiLHtkOiJNNyAxMXY0YTIgMiAwIDAgMCAyIDJoNCJ9XSxbInJlY3QiLHt3aWR0aDoiOCIsaGVpZ2h0OiI4Iix4OiIxMyIseToiMTMiLHJ4OiIyIn1dXSxqcHQ9W1sicGF0aCIse2Q6Ik04IDIyaDgifV0sWyJwYXRoIix7ZDoiTTcgMTBoM203IDBoLTEuMzQzIn1dLFsicGF0aCIse2Q6Ik0xMiAxNXY3In1dLFsicGF0aCIse2Q6Ik03LjMwNyA3LjMwN0ExMi4zMyAxMi4zMyAwIDAgMCA3IDEwYTUgNSAwIDAgMCA3LjM5MSA0LjM5MU04LjYzOCAyLjk4MUM4Ljc1IDIuNjY4IDguODcyIDIuMzQgOSAyaDZjMS41IDQgMiA2IDIgOCAwIC40MDctLjA1LjgwOS0uMTQ1IDEuMTk4In1dLFsibGluZSIse3gxOiIyIix4MjoiMjIiLHkxOiIyIix5MjoiMjIifV1dLFVwdD1bWyJwYXRoIix7ZDoibTE5IDEyLTEuNSAzIn1dLFsicGF0aCIse2Q6Ik0xOS42MyAxOC44MSAyMiAyMCJ9XSxbInBhdGgiLHtkOiJNNi40NyA4LjIzYTEuNjggMS42OCAwIDAgMSAyLjQ0IDEuOTNsLS42NCAyLjA4YTYuNzYgNi43NiAwIDAgMCAxMC4xNiA3LjY3bC40Mi0uMjdhMSAxIDAgMSAwLTIuNzMtNC4yMWwtLjQyLjI3YTEuNzYgMS43NiAwIDAgMS0yLjYzLTEuOTlsLjY0LTIuMDhBNi42NiA2LjY2IDAgMCAwIDMuOTQgMy45bC0uNy40YTEgMSAwIDEgMCAyLjU1IDQuMzR6In1dXSxXcHQ9W1sicGF0aCIse2Q6Ik0xOCA2IDYgMTgifV0sWyJwYXRoIix7ZDoibTYgNiAxMiAxMiJ9XV0sR3B0PVtbInBhdGgiLHtkOiJNMi41IDE3YTI0LjEyIDI0LjEyIDAgMCAxIDAtMTAgMiAyIDAgMCAxIDEuNC0xLjQgNDkuNTYgNDkuNTYgMCAwIDEgMTYuMiAwQTIgMiAwIDAgMSAyMS41IDdhMjQuMTIgMjQuMTIgMCAwIDEgMCAxMCAyIDIgMCAwIDEtMS40IDEuNCA0OS41NSA0OS41NSAwIDAgMS0xNi4yIDBBMiAyIDAgMCAxIDIuNSAxNyJ9XSxbInBhdGgiLHtkOiJtMTAgMTUgNS0zLTUtM3oifV1dLFlwdD1bWyJwYXRoIix7ZDoiTTE0LjcgNi4zYTEgMSAwIDAgMCAwIDEuNGwxLjYgMS42YTEgMSAwIDAgMCAxLjQgMGwzLjEwNi0zLjEwNWMuMzItLjMyMi44NjMtLjIyLjk4My4yMThhNiA2IDAgMCAxLTguMjU5IDcuMDU3bC03LjkxIDcuOTFhMSAxIDAgMCAxLTIuOTk5LTNsNy45MS03LjkxYTYgNiAwIDAgMSA3LjA1Ny04LjI1OWMuNDM4LjEyLjU0LjY2Mi4yMTkuOTg0eiJ9XV0sWnB0PVtbInBhdGgiLHtkOiJNMTAuNTEzIDQuODU2IDEzLjEyIDIuMTdhLjUuNSAwIDAgMSAuODYuNDZsLTEuMzc3IDQuMzE3In1dLFsicGF0aCIse2Q6Ik0xNS42NTYgMTBIMjBhMSAxIDAgMCAxIC43OCAxLjYzbC0xLjcyIDEuNzczIn1dLFsicGF0aCIse2Q6Ik0xNi4yNzMgMTYuMjczIDEwLjg4IDIxLjgzYS41LjUgMCAwIDEtLjg2LS40NmwxLjkyLTYuMDJBMSAxIDAgMCAwIDExIDE0SDRhMSAxIDAgMCAxLS43OC0xLjYzbDQuNTA3LTQuNjQzIn1dLFsicGF0aCIse2Q6Im0yIDIgMjAgMjAifV1dLFhwdD1bWyJwYXRoIix7ZDoiTTQgMTRhMSAxIDAgMCAxLS43OC0xLjYzbDkuOS0xMC4yYS41LjUgMCAwIDEgLjg2LjQ2bC0xLjkyIDYuMDJBMSAxIDAgMCAwIDEzIDEwaDdhMSAxIDAgMCAxIC43OCAxLjYzbC05LjkgMTAuMmEuNS41IDAgMCAxLS44Ni0uNDZsMS45Mi02LjAyQTEgMSAwIDAgMCAxMSAxNHoifV1dLEtwdD1bWyJjaXJjbGUiLHtjeDoiMTEiLGN5OiIxMSIscjoiOCJ9XSxbImxpbmUiLHt4MToiMjEiLHgyOiIxNi42NSIseTE6IjIxIix5MjoiMTYuNjUifV0sWyJsaW5lIix7eDE6IjgiLHgyOiIxNCIseTE6IjExIix5MjoiMTEifV1dLFFwdD1bWyJjaXJjbGUiLHtjeDoiMTEiLGN5OiIxMSIscjoiOCJ9XSxbImxpbmUiLHt4MToiMjEiLHgyOiIxNi42NSIseTE6IjIxIix5MjoiMTYuNjUifV0sWyJsaW5lIix7eDE6IjExIix4MjoiMTEiLHkxOiI4Iix5MjoiMTQifV0sWyJsaW5lIix7eDE6IjgiLHgyOiIxNCIseTE6IjExIix5MjoiMTEifV1dLERqdD1PYmplY3QuZnJlZXplKHtfX3Byb3RvX186bnVsbCxBQXJyb3dEb3duOmdaZSxBQXJyb3dVcDpiWmUsQUxhcmdlU21hbGw6dlplLEFjY2Vzc2liaWxpdHk6eVplLEFjdGl2aXR5OndaZSxBY3Rpdml0eVNxdWFyZTpheSxBaXJWZW50OnhaZSxBaXJwbGF5Ok1aZSxBbGFybUNoZWNrOm1nLEFsYXJtQ2xvY2s6a1plLEFsYXJtQ2xvY2tDaGVjazptZyxBbGFybUNsb2NrTWludXM6Z2csQWxhcm1DbG9ja09mZjp6WmUsQWxhcm1DbG9ja1BsdXM6YmcsQWxhcm1NaW51czpnZyxBbGFybVBsdXM6YmcsQWxhcm1TbW9rZTpTWmUsQWxidW06Q1plLEFsZXJ0Q2lyY2xlOldnLEFsZXJ0T2N0YWdvbjokdixBbGVydFRyaWFuZ2xlOmx4LEFsaWduQ2VudGVyOmV4LEFsaWduQ2VudGVySG9yaXpvbnRhbDpfWmUsQWxpZ25DZW50ZXJWZXJ0aWNhbDpUWmUsQWxpZ25FbmRIb3Jpem9udGFsOkxaZSxBbGlnbkVuZFZlcnRpY2FsOiRaZSxBbGlnbkhvcml6b250YWxEaXN0cmlidXRlQ2VudGVyOkFaZSxBbGlnbkhvcml6b250YWxEaXN0cmlidXRlRW5kOkRaZSxBbGlnbkhvcml6b250YWxEaXN0cmlidXRlU3RhcnQ6RVplLEFsaWduSG9yaXpvbnRhbEp1c3RpZnlDZW50ZXI6UFplLEFsaWduSG9yaXpvbnRhbEp1c3RpZnlFbmQ6SVplLEFsaWduSG9yaXpvbnRhbEp1c3RpZnlTdGFydDpOWmUsQWxpZ25Ib3Jpem9udGFsU3BhY2VBcm91bmQ6RlplLEFsaWduSG9yaXpvbnRhbFNwYWNlQmV0d2VlbjpPWmUsQWxpZ25KdXN0aWZ5OmF4LEFsaWduTGVmdDp6bCxBbGlnblJpZ2h0OnR4LEFsaWduU3RhcnRIb3Jpem9udGFsOlJaZSxBbGlnblN0YXJ0VmVydGljYWw6QlplLEFsaWduVmVydGljYWxEaXN0cmlidXRlQ2VudGVyOkhaZSxBbGlnblZlcnRpY2FsRGlzdHJpYnV0ZUVuZDpxWmUsQWxpZ25WZXJ0aWNhbERpc3RyaWJ1dGVTdGFydDpWWmUsQWxpZ25WZXJ0aWNhbEp1c3RpZnlDZW50ZXI6alplLEFsaWduVmVydGljYWxKdXN0aWZ5RW5kOlVaZSxBbGlnblZlcnRpY2FsSnVzdGlmeVN0YXJ0OldaZSxBbGlnblZlcnRpY2FsU3BhY2VBcm91bmQ6R1plLEFsaWduVmVydGljYWxTcGFjZUJldHdlZW46WVplLEFtYnVsYW5jZTpaWmUsQW1wZXJzYW5kOlhaZSxBbXBlcnNhbmRzOktaZSxBbXBob3JhOlFaZSxBbmNob3I6SlplLEFuZ3J5OmVYZSxBbm5veWVkOnRYZSxBbnRlbm5hOmFYZSxBbnZpbDppWGUsQXBlcnR1cmU6clhlLEFwcFdpbmRvdzpuWGUsQXBwV2luZG93TWFjOnNYZSxBcHBsZTpvWGUsQXJjaGl2ZTpkWGUsQXJjaGl2ZVJlc3RvcmU6bFhlLEFyY2hpdmVYOmNYZSxBcmVhQ2hhcnQ6RGcsQXJtY2hhaXI6aFhlLEFycm93QmlnRG93bjp1WGUsQXJyb3dCaWdEb3duRGFzaDpwWGUsQXJyb3dCaWdMZWZ0Om1YZSxBcnJvd0JpZ0xlZnREYXNoOmZYZSxBcnJvd0JpZ1JpZ2h0OmJYZSxBcnJvd0JpZ1JpZ2h0RGFzaDpnWGUsQXJyb3dCaWdVcDp5WGUsQXJyb3dCaWdVcERhc2g6dlhlLEFycm93RG93bjpMWGUsQXJyb3dEb3duMDE6eFhlLEFycm93RG93bjEwOndYZSxBcnJvd0Rvd25BWjp2ZyxBcnJvd0Rvd25Bejp2ZyxBcnJvd0Rvd25DaXJjbGU6R2csQXJyb3dEb3duRnJvbUxpbmU6TVhlLEFycm93RG93bkxlZnQ6elhlLEFycm93RG93bkxlZnRGcm9tQ2lyY2xlOlpnLEFycm93RG93bkxlZnRGcm9tU3F1YXJlOm55LEFycm93RG93bkxlZnRTcXVhcmU6dHksQXJyb3dEb3duTmFycm93V2lkZTprWGUsQXJyb3dEb3duUmlnaHQ6U1hlLEFycm93RG93blJpZ2h0RnJvbUNpcmNsZTpYZyxBcnJvd0Rvd25SaWdodEZyb21TcXVhcmU6bHksQXJyb3dEb3duUmlnaHRTcXVhcmU6aXksQXJyb3dEb3duU3F1YXJlOnJ5LEFycm93RG93blRvRG90OkNYZSxBcnJvd0Rvd25Ub0xpbmU6X1hlLEFycm93RG93blVwOlRYZSxBcnJvd0Rvd25XaWRlTmFycm93OnlnLEFycm93RG93blpBOnhnLEFycm93RG93blphOnhnLEFycm93TGVmdDpFWGUsQXJyb3dMZWZ0Q2lyY2xlOllnLEFycm93TGVmdEZyb21MaW5lOiRYZSxBcnJvd0xlZnRSaWdodDpBWGUsQXJyb3dMZWZ0U3F1YXJlOnN5LEFycm93TGVmdFRvTGluZTpEWGUsQXJyb3dSaWdodDpGWGUsQXJyb3dSaWdodENpcmNsZTpKZyxBcnJvd1JpZ2h0RnJvbUxpbmU6UFhlLEFycm93UmlnaHRMZWZ0OklYZSxBcnJvd1JpZ2h0U3F1YXJlOmR5LEFycm93UmlnaHRUb0xpbmU6TlhlLEFycm93VXA6R1hlLEFycm93VXAwMTpPWGUsQXJyb3dVcDEwOlJYZSxBcnJvd1VwQVo6d2csQXJyb3dVcEF6OndnLEFycm93VXBDaXJjbGU6ZWIsQXJyb3dVcERvd246QlhlLEFycm93VXBGcm9tRG90OkhYZSxBcnJvd1VwRnJvbUxpbmU6cVhlLEFycm93VXBMZWZ0OlZYZSxBcnJvd1VwTGVmdEZyb21DaXJjbGU6S2csQXJyb3dVcExlZnRGcm9tU3F1YXJlOm95LEFycm93VXBMZWZ0U3F1YXJlOmh5LEFycm93VXBOYXJyb3dXaWRlOk1nLEFycm93VXBSaWdodDpqWGUsQXJyb3dVcFJpZ2h0RnJvbUNpcmNsZTpRZyxBcnJvd1VwUmlnaHRGcm9tU3F1YXJlOmN5LEFycm93VXBSaWdodFNxdWFyZTpweSxBcnJvd1VwU3F1YXJlOnV5LEFycm93VXBUb0xpbmU6VVhlLEFycm93VXBXaWRlTmFycm93OldYZSxBcnJvd1VwWkE6emcsQXJyb3dVcFphOnpnLEFycm93c1VwRnJvbUxpbmU6WVhlLEFzdGVyaXNrOlpYZSxBc3Rlcmlza1NxdWFyZTpmeSxBdFNpZ246WFhlLEF0b206S1hlLEF1ZGlvTGluZXM6UVhlLEF1ZGlvV2F2ZWZvcm06SlhlLEF3YXJkOmVLZSxBeGU6dEtlLEF4aXMzRDprZyxBeGlzM2Q6a2csQmFieTppS2UsQmFja3BhY2s6YUtlLEJhZGdlOnlLZSxCYWRnZUFsZXJ0OnJLZSxCYWRnZUNlbnQ6c0tlLEJhZGdlQ2hlY2s6U2csQmFkZ2VEb2xsYXJTaWduOm9LZSxCYWRnZUV1cm86bEtlLEJhZGdlSGVscDpDZyxCYWRnZUluZGlhblJ1cGVlOm5LZSxCYWRnZUluZm86Y0tlLEJhZGdlSmFwYW5lc2VZZW46ZEtlLEJhZGdlTWludXM6aEtlLEJhZGdlUGVyY2VudDpwS2UsQmFkZ2VQbHVzOnVLZSxCYWRnZVBvdW5kU3Rlcmxpbmc6ZktlLEJhZGdlUXVlc3Rpb25NYXJrOkNnLEJhZGdlUnVzc2lhblJ1YmxlOm1LZSxCYWRnZVN3aXNzRnJhbmM6Z0tlLEJhZGdlVHVya2lzaExpcmE6YktlLEJhZGdlWDp2S2UsQmFnZ2FnZUNsYWltOnhLZSxCYWxsb29uOndLZSxCYW46TUtlLEJhbmFuYTp6S2UsQmFuZGFnZTprS2UsQmFua25vdGU6VEtlLEJhbmtub3RlQXJyb3dEb3duOlNLZSxCYW5rbm90ZUFycm93VXA6Q0tlLEJhbmtub3RlWDpfS2UsQmFyQ2hhcnQ6QmcsQmFyQ2hhcnQyOkhnLEJhckNoYXJ0MzpPZyxCYXJDaGFydDQ6RmcsQmFyQ2hhcnRCaWc6SWcsQmFyQ2hhcnRIb3Jpem9udGFsOk5nLEJhckNoYXJ0SG9yaXpvbnRhbEJpZzpFZyxCYXJjb2RlOkxLZSxCYXJyZWw6JEtlLEJhc2VsaW5lOkFLZSxCYXRoOkRLZSxCYXR0ZXJ5OlJLZSxCYXR0ZXJ5Q2hhcmdpbmc6RUtlLEJhdHRlcnlGdWxsOlBLZSxCYXR0ZXJ5TG93OklLZSxCYXR0ZXJ5TWVkaXVtOk5LZSxCYXR0ZXJ5UGx1czpGS2UsQmF0dGVyeVdhcm5pbmc6T0tlLEJlYWtlcjpCS2UsQmVhbjpxS2UsQmVhbk9mZjpIS2UsQmVkOlVLZSxCZWREb3VibGU6VktlLEJlZFNpbmdsZTpqS2UsQmVlZjpXS2UsQmVlcjpZS2UsQmVlck9mZjpHS2UsQmVsbDp0UWUsQmVsbERvdDpaS2UsQmVsbEVsZWN0cmljOlhLZSxCZWxsTWludXM6S0tlLEJlbGxPZmY6UUtlLEJlbGxQbHVzOkpLZSxCZWxsUmluZzplUWUsQmV0d2Vlbkhvcml6b25hbEVuZDpfZyxCZXR3ZWVuSG9yaXpvbmFsU3RhcnQ6VGcsQmV0d2Vlbkhvcml6b250YWxFbmQ6X2csQmV0d2Vlbkhvcml6b250YWxTdGFydDpUZyxCZXR3ZWVuVmVydGljYWxFbmQ6YVFlLEJldHdlZW5WZXJ0aWNhbFN0YXJ0OmlRZSxCaWNlcHNGbGV4ZWQ6clFlLEJpa2U6c1FlLEJpbmFyeTpuUWUsQmlub2N1bGFyczpvUWUsQmlvaGF6YXJkOmxRZSxCaXJkOmNRZSxCaXJkaG91c2U6ZFFlLEJpdGNvaW46aFFlLEJsZW5kOnBRZSxCbGluZHM6dVFlLEJsb2NrczptUWUsQmx1ZXRvb3RoOnlRZSxCbHVldG9vdGhDb25uZWN0ZWQ6ZlFlLEJsdWV0b290aE9mZjpnUWUsQmx1ZXRvb3RoU2VhcmNoaW5nOmJRZSxCb2xkOnZRZSxCb2x0OndRZSxCb21iOnhRZSxCb25lOk1RZSxCb29rOkdRZSxCb29rQTp6UWUsQm9va0FsZXJ0OmtRZSxCb29rQXVkaW86Q1FlLEJvb2tDaGVjazpTUWUsQm9va0NvcHk6X1FlLEJvb2tEYXNoZWQ6TGcsQm9va0Rvd246VFFlLEJvb2tIZWFkcGhvbmVzOkxRZSxCb29rSGVhcnQ6JFFlLEJvb2tJbWFnZTpBUWUsQm9va0tleTpEUWUsQm9va0xvY2s6RVFlLEJvb2tNYXJrZWQ6UFFlLEJvb2tNaW51czpJUWUsQm9va09wZW46T1FlLEJvb2tPcGVuQ2hlY2s6TlFlLEJvb2tPcGVuVGV4dDpGUWUsQm9va1BsdXM6UlFlLEJvb2tTZWFyY2g6QlFlLEJvb2tUZW1wbGF0ZTpMZyxCb29rVGV4dDpIUWUsQm9va1R5cGU6cVFlLEJvb2tVcDpqUWUsQm9va1VwMjpWUWUsQm9va1VzZXI6VVFlLEJvb2tYOldRZSxCb29rbWFyazpRUWUsQm9va21hcmtDaGVjazpZUWUsQm9va21hcmtNaW51czpaUWUsQm9va21hcmtQbHVzOlhRZSxCb29rbWFya1g6S1FlLEJvb21Cb3g6SlFlLEJvdDp0SmUsQm90TWVzc2FnZVNxdWFyZTplSmUsQm90T2ZmOmFKZSxCb3R0bGVXaW5lOmlKZSxCb3dBcnJvdzpySmUsQm94OnNKZSxCb3hTZWxlY3Q6U3ksQm94ZXM6bkplLEJyYWNlczokZyxCcmFja2V0czpvSmUsQnJhaW46ZEplLEJyYWluQ2lyY3VpdDpsSmUsQnJhaW5Db2c6Y0plLEJyaWNrV2FsbDpmSmUsQnJpY2tXYWxsRmlyZTpoSmUsQnJpY2tXYWxsU2hpZWxkOnBKZSxCcmllZmNhc2U6YkplLEJyaWVmY2FzZUJ1c2luZXNzOnVKZSxCcmllZmNhc2VDb252ZXlvckJlbHQ6bUplLEJyaWVmY2FzZU1lZGljYWw6Z0plLEJyaW5nVG9Gcm9udDp2SmUsQnJ1c2g6eEplLEJydXNoQ2xlYW5pbmc6eUplLEJ1YmJsZXM6d0plLEJ1ZzprSmUsQnVnT2ZmOk1KZSxCdWdQbGF5OnpKZSxCdWlsZGluZzpDSmUsQnVpbGRpbmcyOlNKZSxCdXM6VEplLEJ1c0Zyb250Ol9KZSxDYWJsZTokSmUsQ2FibGVDYXI6TEplLENha2U6REplLENha2VTbGljZTpBSmUsQ2FsY3VsYXRvcjpFSmUsQ2FsZW5kYXI6ZWV0LENhbGVuZGFyMTpQSmUsQ2FsZW5kYXJBcnJvd0Rvd246SUplLENhbGVuZGFyQXJyb3dVcDpOSmUsQ2FsZW5kYXJDaGVjazpPSmUsQ2FsZW5kYXJDaGVjazI6RkplLENhbGVuZGFyQ2xvY2s6UkplLENhbGVuZGFyQ29nOkJKZSxDYWxlbmRhckRheXM6SEplLENhbGVuZGFyRm9sZDpxSmUsQ2FsZW5kYXJIZWFydDpWSmUsQ2FsZW5kYXJNaW51czpVSmUsQ2FsZW5kYXJNaW51czI6akplLENhbGVuZGFyT2ZmOldKZSxDYWxlbmRhclBsdXM6WUplLENhbGVuZGFyUGx1czI6R0plLENhbGVuZGFyUmFuZ2U6WkplLENhbGVuZGFyU2VhcmNoOlhKZSxDYWxlbmRhclN5bmM6S0plLENhbGVuZGFyWDpKSmUsQ2FsZW5kYXJYMjpRSmUsQ2FsZW5kYXJzOnRldCxDYW1lcmE6aWV0LENhbWVyYU9mZjphZXQsQ2FuZGxlc3RpY2tDaGFydDpQZyxDYW5keTpuZXQsQ2FuZHlDYW5lOnJldCxDYW5keU9mZjpzZXQsQ2FubmFiaXM6Y2V0LENhbm5hYmlzT2ZmOm9ldCxDYXB0aW9uczpBZyxDYXB0aW9uc09mZjpkZXQsQ2FyOnVldCxDYXJGcm9udDpoZXQsQ2FyVGF4aUZyb250OnBldCxDYXJhdmFuOmZldCxDYXJkU2ltOm1ldCxDYXJyb3Q6Z2V0LENhc2VMb3dlcjpiZXQsQ2FzZVNlbnNpdGl2ZTp2ZXQsQ2FzZVVwcGVyOnlldCxDYXNzZXR0ZVRhcGU6eGV0LENhc3Q6d2V0LENhc3RsZTpNZXQsQ2F0OnpldCxDY3R2OmtldCxDaGFydEFyZWE6RGcsQ2hhcnRCYXI6TmcsQ2hhcnRCYXJCaWc6RWcsQ2hhcnRCYXJEZWNyZWFzaW5nOkNldCxDaGFydEJhckluY3JlYXNpbmc6X2V0LENoYXJ0QmFyU3RhY2tlZDpUZXQsQ2hhcnRDYW5kbGVzdGljazpQZyxDaGFydENvbHVtbjpPZyxDaGFydENvbHVtbkJpZzpJZyxDaGFydENvbHVtbkRlY3JlYXNpbmc6TGV0LENoYXJ0Q29sdW1uSW5jcmVhc2luZzpGZyxDaGFydENvbHVtblN0YWNrZWQ6JGV0LENoYXJ0R2FudHQ6QWV0LENoYXJ0TGluZTpSZyxDaGFydE5ldHdvcms6RGV0LENoYXJ0Tm9BeGVzQ29sdW1uOkhnLENoYXJ0Tm9BeGVzQ29sdW1uRGVjcmVhc2luZzpFZXQsQ2hhcnROb0F4ZXNDb2x1bW5JbmNyZWFzaW5nOkJnLENoYXJ0Tm9BeGVzQ29tYmluZWQ6UGV0LENoYXJ0Tm9BeGVzR2FudHQ6cWcsQ2hhcnRQaWU6VmcsQ2hhcnRTY2F0dGVyOmpnLENoYXJ0U3BsaW5lOklldCxDaGVjazpCZXQsQ2hlY2tDaGVjazpGZXQsQ2hlY2tDaXJjbGU6dGIsQ2hlY2tDaXJjbGUyOmFiLENoZWNrTGluZTpOZXQsQ2hlY2tTcXVhcmU6Z3ksQ2hlY2tTcXVhcmUyOmJ5LENoZWZIYXQ6T2V0LENoZXJyeTpSZXQsQ2hlc3NCaXNob3A6SGV0LENoZXNzS2luZzpxZXQsQ2hlc3NLbmlnaHQ6VWV0LENoZXNzUGF3bjpWZXQsQ2hlc3NRdWVlbjpqZXQsQ2hlc3NSb29rOldldCxDaGV2cm9uRG93bjpHZXQsQ2hldnJvbkRvd25DaXJjbGU6aWIsQ2hldnJvbkRvd25TcXVhcmU6dnksQ2hldnJvbkZpcnN0OllldCxDaGV2cm9uTGFzdDpaZXQsQ2hldnJvbkxlZnQ6WGV0LENoZXZyb25MZWZ0Q2lyY2xlOnJiLENoZXZyb25MZWZ0U3F1YXJlOnl5LENoZXZyb25SaWdodDpLZXQsQ2hldnJvblJpZ2h0Q2lyY2xlOnNiLENoZXZyb25SaWdodFNxdWFyZTp4eSxDaGV2cm9uVXA6UWV0LENoZXZyb25VcENpcmNsZTpuYixDaGV2cm9uVXBTcXVhcmU6d3ksQ2hldnJvbnNEb3duOmV0dCxDaGV2cm9uc0Rvd25VcDpKZXQsQ2hldnJvbnNMZWZ0Oml0dCxDaGV2cm9uc0xlZnRSaWdodDphdHQsQ2hldnJvbnNMZWZ0UmlnaHRFbGxpcHNpczp0dHQsQ2hldnJvbnNSaWdodDpzdHQsQ2hldnJvbnNSaWdodExlZnQ6cnR0LENoZXZyb25zVXA6bnR0LENoZXZyb25zVXBEb3duOm90dCxDaHJvbWU6VWcsQ2hyb21pdW06VWcsQ2h1cmNoOmN0dCxDaWdhcmV0dGU6ZHR0LENpZ2FyZXR0ZU9mZjpsdHQsQ2lyY2xlOlN0dCxDaXJjbGVBbGVydDpXZyxDaXJjbGVBcnJvd0Rvd246R2csQ2lyY2xlQXJyb3dMZWZ0OllnLENpcmNsZUFycm93T3V0RG93bkxlZnQ6WmcsQ2lyY2xlQXJyb3dPdXREb3duUmlnaHQ6WGcsQ2lyY2xlQXJyb3dPdXRVcExlZnQ6S2csQ2lyY2xlQXJyb3dPdXRVcFJpZ2h0OlFnLENpcmNsZUFycm93UmlnaHQ6SmcsQ2lyY2xlQXJyb3dVcDplYixDaXJjbGVDaGVjazphYixDaXJjbGVDaGVja0JpZzp0YixDaXJjbGVDaGV2cm9uRG93bjppYixDaXJjbGVDaGV2cm9uTGVmdDpyYixDaXJjbGVDaGV2cm9uUmlnaHQ6c2IsQ2lyY2xlQ2hldnJvblVwOm5iLENpcmNsZURhc2hlZDpodHQsQ2lyY2xlRGl2aWRlOm9iLENpcmNsZURvbGxhclNpZ246cHR0LENpcmNsZURvdDpmdHQsQ2lyY2xlRG90RGFzaGVkOnV0dCxDaXJjbGVFbGxpcHNpczptdHQsQ2lyY2xlRXF1YWw6Z3R0LENpcmNsZUZhZGluZ0Fycm93VXA6YnR0LENpcmNsZUZhZGluZ1BsdXM6dnR0LENpcmNsZUdhdWdlOmxiLENpcmNsZUhlbHA6Z2wsQ2lyY2xlTWludXM6Y2IsQ2lyY2xlT2ZmOnl0dCxDaXJjbGVQYXJraW5nOmhiLENpcmNsZVBhcmtpbmdPZmY6ZGIsQ2lyY2xlUGF1c2U6cGIsQ2lyY2xlUGVyY2VudDp1YixDaXJjbGVQaWxlOnh0dCxDaXJjbGVQbGF5OmZiLENpcmNsZVBsdXM6bWIsQ2lyY2xlUG91bmRTdGVybGluZzp3dHQsQ2lyY2xlUG93ZXI6Z2IsQ2lyY2xlUXVlc3Rpb25NYXJrOmdsLENpcmNsZVNsYXNoOk10dCxDaXJjbGVTbGFzaDI6YmIsQ2lyY2xlU2xhc2hlZDpiYixDaXJjbGVTbWFsbDp6dHQsQ2lyY2xlU3RhcjprdHQsQ2lyY2xlU3RvcDp2YixDaXJjbGVVc2VyOnhiLENpcmNsZVVzZXJSb3VuZDp5YixDaXJjbGVYOndiLENpcmN1aXRCb2FyZDpDdHQsQ2l0cnVzOl90dCxDbGFwcGVyYm9hcmQ6VHR0LENsaXBib2FyZDpSdHQsQ2xpcGJvYXJkQ2hlY2s6THR0LENsaXBib2FyZENsb2NrOiR0dCxDbGlwYm9hcmRDb3B5OkF0dCxDbGlwYm9hcmRFZGl0OnpiLENsaXBib2FyZExpc3Q6RHR0LENsaXBib2FyZE1pbnVzOkV0dCxDbGlwYm9hcmRQYXN0ZTpQdHQsQ2xpcGJvYXJkUGVuOnpiLENsaXBib2FyZFBlbkxpbmU6TWIsQ2xpcGJvYXJkUGx1czpJdHQsQ2xpcGJvYXJkU2lnbmF0dXJlOk1iLENsaXBib2FyZFR5cGU6TnR0LENsaXBib2FyZFg6RnR0LENsb2NrOmkxdCxDbG9jazE6T3R0LENsb2NrMTA6QnR0LENsb2NrMTE6SHR0LENsb2NrMTI6cXR0LENsb2NrMjpWdHQsQ2xvY2szOmp0dCxDbG9jazQ6VXR0LENsb2NrNTpXdHQsQ2xvY2s2Okd0dCxDbG9jazc6WXR0LENsb2NrODpadHQsQ2xvY2s5Olh0dCxDbG9ja0FsZXJ0OlF0dCxDbG9ja0Fycm93RG93bjpLdHQsQ2xvY2tBcnJvd1VwOkp0dCxDbG9ja0NoZWNrOmUxdCxDbG9ja0ZhZGluZzp0MXQsQ2xvY2tQbHVzOmExdCxDbG9zZWRDYXB0aW9uOnIxdCxDbG91ZDpNMXQsQ2xvdWRBbGVydDpzMXQsQ2xvdWRCYWNrdXA6bjF0LENsb3VkQ2hlY2s6bzF0LENsb3VkQ29nOmwxdCxDbG91ZERvd25sb2FkOmtiLENsb3VkRHJpenpsZTpjMXQsQ2xvdWRGb2c6ZDF0LENsb3VkSGFpbDpoMXQsQ2xvdWRMaWdodG5pbmc6dTF0LENsb3VkTW9vbjpmMXQsQ2xvdWRNb29uUmFpbjpwMXQsQ2xvdWRPZmY6bTF0LENsb3VkUmFpbjpiMXQsQ2xvdWRSYWluV2luZDpnMXQsQ2xvdWRTbm93OnYxdCxDbG91ZFN1bjp4MXQsQ2xvdWRTdW5SYWluOnkxdCxDbG91ZFN5bmM6dzF0LENsb3VkVXBsb2FkOlNiLENsb3VkeTp6MXQsQ2xvdmVyOmsxdCxDbHViOlMxdCxDb2RlOkMxdCxDb2RlMjpDYixDb2RlU3F1YXJlOk15LENvZGVYbWw6Q2IsQ29kZXBlbjpfMXQsQ29kZXNhbmRib3g6VDF0LENvZmZlZTpMMXQsQ29nOiQxdCxDb2luczpBMXQsQ29sdW1uczpfYixDb2x1bW5zMjpfYixDb2x1bW5zMzpUYixDb2x1bW5zM0NvZzpibCxDb2x1bW5zNDpEMXQsQ29sdW1uc1NldHRpbmdzOmJsLENvbWJpbmU6RTF0LENvbW1hbmQ6UDF0LENvbXBhc3M6STF0LENvbXBvbmVudDpOMXQsQ29tcHV0ZXI6RjF0LENvbmNpZXJnZUJlbGw6TzF0LENvbmU6UjF0LENvbnN0cnVjdGlvbjpCMXQsQ29udGFjdDpIMXQsQ29udGFjdDI6TGIsQ29udGFjdFJvdW5kOkxiLENvbnRhaW5lcjpxMXQsQ29udHJhc3Q6ajF0LENvb2tpZTpWMXQsQ29va2luZ1BvdDpVMXQsQ29weTpLMXQsQ29weUNoZWNrOlcxdCxDb3B5TWludXM6RzF0LENvcHlQbHVzOlkxdCxDb3B5U2xhc2g6WjF0LENvcHlYOlgxdCxDb3B5bGVmdDpRMXQsQ29weXJpZ2h0OkoxdCxDb3JuZXJEb3duTGVmdDplMnQsQ29ybmVyRG93blJpZ2h0OnQydCxDb3JuZXJMZWZ0RG93bjphMnQsQ29ybmVyTGVmdFVwOmkydCxDb3JuZXJSaWdodERvd246cjJ0LENvcm5lclJpZ2h0VXA6czJ0LENvcm5lclVwTGVmdDpuMnQsQ29ybmVyVXBSaWdodDpvMnQsQ3B1OmwydCxDcmVhdGl2ZUNvbW1vbnM6YzJ0LENyZWRpdENhcmQ6ZDJ0LENyb2lzc2FudDpoMnQsQ3JvcDpwMnQsQ3Jvc3M6dTJ0LENyb3NzaGFpcjpmMnQsQ3Jvd246bTJ0LEN1Ym9pZDpnMnQsQ3VwU29kYTpiMnQsQ3VybHlCcmFjZXM6JGcsQ3VycmVuY3k6eTJ0LEN5bGluZGVyOnYydCxEYW06dzJ0LERhdGFiYXNlOmsydCxEYXRhYmFzZUJhY2t1cDp4MnQsRGF0YWJhc2VTZWFyY2g6TTJ0LERhdGFiYXNlWmFwOnoydCxEZWNpbWFsc0Fycm93TGVmdDpTMnQsRGVjaW1hbHNBcnJvd1JpZ2h0OkMydCxEZWxldGU6XzJ0LERlc3NlcnQ6VDJ0LERpYW1ldGVyOkwydCxEaWFtb25kOkQydCxEaWFtb25kTWludXM6JDJ0LERpYW1vbmRQZXJjZW50OiRiLERpYW1vbmRQbHVzOkEydCxEaWNlMTpFMnQsRGljZTI6UDJ0LERpY2UzOkkydCxEaWNlNDpOMnQsRGljZTU6RjJ0LERpY2U2Ok8ydCxEaWNlczpSMnQsRGlmZjpCMnQsRGlzYzpqMnQsRGlzYzI6SDJ0LERpc2MzOnEydCxEaXNjQWxidW06VjJ0LERpdmlkZTpVMnQsRGl2aWRlQ2lyY2xlOm9iLERpdmlkZVNxdWFyZTpDeSxEbmE6RzJ0LERuYU9mZjpXMnQsRG9jazpYMnQsRG9nOlkydCxEb2xsYXJTaWduOloydCxEb251dDpLMnQsRG9vckNsb3NlZDpKMnQsRG9vckNsb3NlZExvY2tlZDpRMnQsRG9vck9wZW46ZWF0LERvdDp0YXQsRG90U3F1YXJlOl95LERvd25sb2FkOmFhdCxEb3dubG9hZENsb3VkOmtiLERyYWZ0aW5nQ29tcGFzczppYXQsRHJhbWE6c2F0LERyaWJiYmxlOnJhdCxEcmlsbDpuYXQsRHJvbmU6b2F0LERyb3BsZXQ6Y2F0LERyb3BsZXRPZmY6bGF0LERyb3BsZXRzOmRhdCxEcnVtOmhhdCxEcnVtc3RpY2s6cGF0LER1bWJiZWxsOnVhdCxFYXI6Z2F0LEVhck9mZjpmYXQsRWFydGg6QWIsRWFydGhMb2NrOm1hdCxFY2xpcHNlOmJhdCxFZGl0OnJvLEVkaXQyOlZ2LEVkaXQzOnF2LEVnZzp4YXQsRWdnRnJpZWQ6dmF0LEVnZ09mZjp5YXQsRWxsaXBzaXM6RWIsRWxsaXBzaXNWZXJ0aWNhbDpEYixFcXVhbDp6YXQsRXF1YWxBcHByb3hpbWF0ZWx5OndhdCxFcXVhbE5vdDpNYXQsRXF1YWxTcXVhcmU6VHksRXJhc2VyOlNhdCxFdGhlcm5ldFBvcnQ6a2F0LEV1cm86Q2F0LEV2Q2hhcmdlcjpfYXQsRXhwYW5kOlRhdCxFeHRlcm5hbExpbms6TGF0LEV5ZTpBYXQsRXllQ2xvc2VkOiRhdCxFeWVPZmY6RGF0LEZhY2Vib29rOkVhdCxGYWN0b3J5OlBhdCxGYW46SWF0LEZhc3RGb3J3YXJkOk5hdCxGZWF0aGVyOkZhdCxGZW5jZTpPYXQsRmVycmlzV2hlZWw6UmF0LEZpZ21hOkJhdCxGaWxlOm1pdCxGaWxlQXJjaGl2ZTpIYXQsRmlsZUF1ZGlvOnZsLEZpbGVBdWRpbzI6dmwsRmlsZUF4aXMzRDpQYixGaWxlQXhpczNkOlBiLEZpbGVCYWRnZTpJYixGaWxlQmFkZ2UyOkliLEZpbGVCYXJDaGFydDpPYixGaWxlQmFyQ2hhcnQyOlJiLEZpbGVCb3g6cWF0LEZpbGVCcmFjZXM6RmIsRmlsZUJyYWNlc0Nvcm5lcjpOYixGaWxlQ2hhcnRDb2x1bW46UmIsRmlsZUNoYXJ0Q29sdW1uSW5jcmVhc2luZzpPYixGaWxlQ2hhcnRMaW5lOkJiLEZpbGVDaGFydFBpZTpIYixGaWxlQ2hlY2s6amF0LEZpbGVDaGVjazI6cWIsRmlsZUNoZWNrQ29ybmVyOnFiLEZpbGVDbG9jazpWYXQsRmlsZUNvZGU6VWF0LEZpbGVDb2RlMjpWYixGaWxlQ29kZUNvcm5lcjpWYixGaWxlQ29nOmpiLEZpbGVDb2cyOmpiLEZpbGVEaWZmOldhdCxGaWxlRGlnaXQ6R2F0LEZpbGVEb3duOllhdCxGaWxlRWRpdDpYYixGaWxlRXhjbGFtYXRpb25Qb2ludDpVYixGaWxlSGVhZHBob25lOnZsLEZpbGVIZWFydDpaYXQsRmlsZUltYWdlOlhhdCxGaWxlSW5wdXQ6S2F0LEZpbGVKc29uOkZiLEZpbGVKc29uMjpOYixGaWxlS2V5OldiLEZpbGVLZXkyOldiLEZpbGVMaW5lQ2hhcnQ6QmIsRmlsZUxvY2s6R2IsRmlsZUxvY2syOkdiLEZpbGVNaW51czpRYXQsRmlsZU1pbnVzMjpZYixGaWxlTWludXNDb3JuZXI6WWIsRmlsZU11c2ljOkphdCxGaWxlT3V0cHV0OmVpdCxGaWxlUGVuOlhiLEZpbGVQZW5MaW5lOlpiLEZpbGVQaWVDaGFydDpIYixGaWxlUGxheTpLYixGaWxlUGx1czp0aXQsRmlsZVBsdXMyOlFiLEZpbGVQbHVzQ29ybmVyOlFiLEZpbGVRdWVzdGlvbjpKYixGaWxlUXVlc3Rpb25NYXJrOkpiLEZpbGVTY2FuOmFpdCxGaWxlU2VhcmNoOmlpdCxGaWxlU2VhcmNoMjpldixGaWxlU2VhcmNoQ29ybmVyOmV2LEZpbGVTaWduYWw6dHYsRmlsZVNpZ25hdHVyZTpaYixGaWxlU2xpZGVyczpyaXQsRmlsZVNwcmVhZHNoZWV0OnNpdCxGaWxlU3RhY2s6bml0LEZpbGVTeW1saW5rOm9pdCxGaWxlVGVybWluYWw6bGl0LEZpbGVUZXh0OmNpdCxGaWxlVHlwZTpkaXQsRmlsZVR5cGUyOmF2LEZpbGVUeXBlQ29ybmVyOmF2LEZpbGVVcDpoaXQsRmlsZVVzZXI6cGl0LEZpbGVWaWRlbzpLYixGaWxlVmlkZW8yOml2LEZpbGVWaWRlb0NhbWVyYTppdixGaWxlVm9sdW1lOnVpdCxGaWxlVm9sdW1lMjp0dixGaWxlV2FybmluZzpVYixGaWxlWDpmaXQsRmlsZVgyOnJ2LEZpbGVYQ29ybmVyOnJ2LEZpbGVzOmdpdCxGaWxtOmJpdCxGaWx0ZXI6Y3YsRmlsdGVyWDpsdixGaW5nZXJwcmludDpzdixGaW5nZXJwcmludFBhdHRlcm46c3YsRmlyZUV4dGluZ3Vpc2hlcjp2aXQsRmlzaDp3aXQsRmlzaE9mZjp5aXQsRmlzaFN5bWJvbDp4aXQsRmlzaGluZ0hvb2s6TWl0LEZsYWc6Q2l0LEZsYWdPZmY6eml0LEZsYWdUcmlhbmdsZUxlZnQ6a2l0LEZsYWdUcmlhbmdsZVJpZ2h0OlNpdCxGbGFtZTpUaXQsRmxhbWVLaW5kbGluZzpfaXQsRmxhc2hsaWdodDokaXQsRmxhc2hsaWdodE9mZjpMaXQsRmxhc2tDb25pY2FsOkRpdCxGbGFza0NvbmljYWxPZmY6QWl0LEZsYXNrUm91bmQ6RWl0LEZsaXBIb3Jpem9udGFsOklpdCxGbGlwSG9yaXpvbnRhbDI6UGl0LEZsaXBWZXJ0aWNhbDpGaXQsRmxpcFZlcnRpY2FsMjpOaXQsRmxvd2VyOlJpdCxGbG93ZXIyOk9pdCxGb2N1czpCaXQsRm9sZEhvcml6b250YWw6SGl0LEZvbGRWZXJ0aWNhbDpxaXQsRm9sZGVyOmdydCxGb2xkZXJBcmNoaXZlOmppdCxGb2xkZXJDaGVjazpWaXQsRm9sZGVyQ2xvY2s6VWl0LEZvbGRlckNsb3NlZDpXaXQsRm9sZGVyQ29kZTpHaXQsRm9sZGVyQ29nOm52LEZvbGRlckNvZzI6bnYsRm9sZGVyRG90OllpdCxGb2xkZXJEb3duOlppdCxGb2xkZXJFZGl0Om92LEZvbGRlckdpdDpLaXQsRm9sZGVyR2l0MjpYaXQsRm9sZGVySGVhcnQ6UWl0LEZvbGRlcklucHV0OkppdCxGb2xkZXJLYW5iYW46ZXJ0LEZvbGRlcktleTp0cnQsRm9sZGVyTG9jazphcnQsRm9sZGVyTWludXM6aXJ0LEZvbGRlck9wZW46c3J0LEZvbGRlck9wZW5Eb3Q6cnJ0LEZvbGRlck91dHB1dDpucnQsRm9sZGVyUGVuOm92LEZvbGRlclBsdXM6b3J0LEZvbGRlclJvb3Q6bHJ0LEZvbGRlclNlYXJjaDpkcnQsRm9sZGVyU2VhcmNoMjpjcnQsRm9sZGVyU3ltbGluazpocnQsRm9sZGVyU3luYzpwcnQsRm9sZGVyVHJlZTp1cnQsRm9sZGVyVXA6ZnJ0LEZvbGRlclg6bXJ0LEZvbGRlcnM6YnJ0LEZvb3RwcmludHM6eXJ0LEZvcmtLbmlmZTp5eCxGb3JrS25pZmVDcm9zc2VkOnZ4LEZvcmtsaWZ0OnZydCxGb3JtOnhydCxGb3JtSW5wdXQ6VXYsRm9yd2FyZDp3cnQsRnJhbWU6TXJ0LEZyYW1lcjp6cnQsRnJvd246a3J0LEZ1ZWw6U3J0LEZ1bGxzY3JlZW46Q3J0LEZ1bmN0aW9uU3F1YXJlOkx5LEZ1bm5lbDpjdixGdW5uZWxQbHVzOl9ydCxGdW5uZWxYOmx2LEdhbGxlcnlIb3Jpem9udGFsOkxydCxHYWxsZXJ5SG9yaXpvbnRhbEVuZDpUcnQsR2FsbGVyeVRodW1ibmFpbHM6JHJ0LEdhbGxlcnlWZXJ0aWNhbDpEcnQsR2FsbGVyeVZlcnRpY2FsRW5kOkFydCxHYW1lcGFkOklydCxHYW1lcGFkMjpFcnQsR2FtZXBhZERpcmVjdGlvbmFsOlBydCxHYW50dENoYXJ0OnFnLEdhbnR0Q2hhcnRTcXVhcmU6TWwsR2F1Z2U6TnJ0LEdhdWdlQ2lyY2xlOmxiLEdhdmVsOkZydCxHZW06T3J0LEdlb3JnaWFuTGFyaTpScnQsR2hvc3Q6QnJ0LEdpZnQ6VnJ0LEdpdEJyYW5jaDpqcnQsR2l0QnJhbmNoTWludXM6SHJ0LEdpdEJyYW5jaFBsdXM6cXJ0LEdpdENvbW1pdDpkdixHaXRDb21taXRIb3Jpem9udGFsOmR2LEdpdENvbW1pdFZlcnRpY2FsOlVydCxHaXRDb21wYXJlOkdydCxHaXRDb21wYXJlQXJyb3dzOldydCxHaXRGb3JrOllydCxHaXRHcmFwaDpacnQsR2l0TWVyZ2U6WHJ0LEdpdFB1bGxSZXF1ZXN0OmFzdCxHaXRQdWxsUmVxdWVzdEFycm93OktydCxHaXRQdWxsUmVxdWVzdENsb3NlZDpRcnQsR2l0UHVsbFJlcXVlc3RDcmVhdGU6ZXN0LEdpdFB1bGxSZXF1ZXN0Q3JlYXRlQXJyb3c6SnJ0LEdpdFB1bGxSZXF1ZXN0RHJhZnQ6dHN0LEdpdGh1Yjppc3QsR2l0bGFiOnJzdCxHbGFzc1dhdGVyOnNzdCxHbGFzc2VzOm5zdCxHbG9iZTpsc3QsR2xvYmUyOkFiLEdsb2JlTG9jazpvc3QsR2xvYmVYOmNzdCxHb2FsOmRzdCxHcHU6aHN0LEdyYWI6bXYsR3JhZHVhdGlvbkNhcDpwc3QsR3JhcGU6dXN0LEdyaWQ6eWwsR3JpZDJYMjpmdixHcmlkMlgyQ2hlY2s6aHYsR3JpZDJYMlBsdXM6cHYsR3JpZDJYMlg6dXYsR3JpZDJ4MjpmdixHcmlkMngyQ2hlY2s6aHYsR3JpZDJ4MlBsdXM6cHYsR3JpZDJ4Mlg6dXYsR3JpZDNYMzp5bCxHcmlkM3gyOmZzdCxHcmlkM3gzOnlsLEdyaXA6YnN0LEdyaXBIb3Jpem9udGFsOm1zdCxHcmlwVmVydGljYWw6Z3N0LEdyb3VwOnZzdCxHdWl0YXI6eXN0LEhhbTp4c3QsSGFtYnVyZ2VyOndzdCxIYW1tZXI6TXN0LEhhbmQ6VHN0LEhhbmRDb2luczp6c3QsSGFuZEZpc3Q6a3N0LEhhbmRHcmFiOm12LEhhbmRIZWFydDpTc3QsSGFuZEhlbHBpbmc6Z3YsSGFuZE1ldGFsOkNzdCxIYW5kUGxhdHRlcjpfc3QsSGFuZGJhZzpMc3QsSGFuZHNoYWtlOiRzdCxIYXJkRHJpdmU6RXN0LEhhcmREcml2ZURvd25sb2FkOkFzdCxIYXJkRHJpdmVVcGxvYWQ6RHN0LEhhcmRIYXQ6UHN0LEhhc2g6SXN0LEhhdEdsYXNzZXM6TnN0LEhhemU6RnN0LEhkOk9zdCxIZG1pUG9ydDpSc3QsSGVhZGluZzpXc3QsSGVhZGluZzE6QnN0LEhlYWRpbmcyOkhzdCxIZWFkaW5nMzpxc3QsSGVhZGluZzQ6VnN0LEhlYWRpbmc1OmpzdCxIZWFkaW5nNjpVc3QsSGVhZHBob25lT2ZmOkdzdCxIZWFkcGhvbmVzOllzdCxIZWFkc2V0OlhzdCxIZWFydDphbnQsSGVhcnRDcmFjazpac3QsSGVhcnRIYW5kc2hha2U6S3N0LEhlYXJ0TWludXM6UXN0LEhlYXJ0T2ZmOkpzdCxIZWFydFBsdXM6dG50LEhlYXJ0UHVsc2U6ZW50LEhlYXRlcjppbnQsSGVsaWNvcHRlcjpybnQsSGVscENpcmNsZTpnbCxIZWxwaW5nSGFuZDpndixIZXhhZ29uOnNudCxIaWdobGlnaHRlcjpubnQsSGlzdG9yeTpvbnQsSG9tZTpidixIb3A6bG50LEhvcE9mZjpjbnQsSG9zcGl0YWw6ZG50LEhvdGVsOmhudCxIb3VyZ2xhc3M6cG50LEhvdXNlOmJ2LEhvdXNlSGVhcnQ6dW50LEhvdXNlUGx1ZzpmbnQsSG91c2VQbHVzOm1udCxIb3VzZVdpZmk6Z250LEljZUNyZWFtOnl2LEljZUNyZWFtMjp2dixJY2VDcmVhbUJvd2w6dnYsSWNlQ3JlYW1Db25lOnl2LElkQ2FyZDp2bnQsSWRDYXJkTGFueWFyZDpibnQsSW1hZ2U6U250LEltYWdlRG93bjp5bnQsSW1hZ2VNaW51czp4bnQsSW1hZ2VPZmY6d250LEltYWdlUGxheTpNbnQsSW1hZ2VQbHVzOnpudCxJbWFnZVVwOmtudCxJbWFnZVVwc2NhbGU6Q250LEltYWdlczpfbnQsSW1wb3J0OlRudCxJbmJveDpMbnQsSW5kZW50OndsLEluZGVudERlY3JlYXNlOnhsLEluZGVudEluY3JlYXNlOndsLEluZGlhblJ1cGVlOiRudCxJbmZpbml0eTpBbnQsSW5mbzpEbnQsSW5zcGVjdDpJeSxJbnNwZWN0aW9uUGFuZWw6RW50LEluc3RhZ3JhbTpQbnQsSXRhbGljOk5udCxJdGVyYXRpb25DY3c6SW50LEl0ZXJhdGlvbkN3OkZudCxKYXBhbmVzZVllbjpPbnQsSm95c3RpY2s6Um50LEthbmJhbjpCbnQsS2FuYmFuU3F1YXJlOiR5LEthbmJhblNxdWFyZURhc2hlZDp6eSxLYXlhazpIbnQsS2V5OmpudCxLZXlSb3VuZDpxbnQsS2V5U3F1YXJlOlZudCxLZXlib2FyZDpHbnQsS2V5Ym9hcmRNdXNpYzpVbnQsS2V5Ym9hcmRPZmY6V250LExhbXA6Sm50LExhbXBDZWlsaW5nOlludCxMYW1wRGVzazpabnQsTGFtcEZsb29yOlhudCxMYW1wV2FsbERvd246S250LExhbXBXYWxsVXA6UW50LExhbmRQbG90OnRvdCxMYW5kbWFyazplb3QsTGFuZ3VhZ2VzOmFvdCxMYXB0b3A6cm90LExhcHRvcDI6eHYsTGFwdG9wTWluaW1hbDp4dixMYXB0b3BNaW5pbWFsQ2hlY2s6aW90LExhc3NvOm5vdCxMYXNzb1NlbGVjdDpzb3QsTGF1Z2g6b290LExheWVyczp3dixMYXllcnMyOmxvdCxMYXllcnMzOnd2LExheWVyc1BsdXM6Y290LExheW91dDpIdixMYXlvdXREYXNoYm9hcmQ6ZG90LExheW91dEdyaWQ6aG90LExheW91dExpc3Q6cG90LExheW91dFBhbmVsTGVmdDp1b3QsTGF5b3V0UGFuZWxUb3A6Zm90LExheW91dFRlbXBsYXRlOm1vdCxMZWFmOmdvdCxMZWFmeUdyZWVuOmJvdCxMZWN0ZXJuOnZvdCxMZXR0ZXJUZXh0Oml4LExpYnJhcnk6eG90LExpYnJhcnlCaWc6eW90LExpYnJhcnlTcXVhcmU6QXksTGlmZUJ1b3k6d290LExpZ2F0dXJlOk1vdCxMaWdodGJ1bGI6a290LExpZ2h0YnVsYk9mZjp6b3QsTGluZUNoYXJ0OlJnLExpbmVTcXVpZ2dsZTpTb3QsTGluazpUb3QsTGluazI6X290LExpbmsyT2ZmOkNvdCxMaW5rZWRpbjpMb3QsTGlzdDpZb3QsTGlzdENoZWNrOiRvdCxMaXN0Q2hlY2tzOkFvdCxMaXN0Q2hldnJvbnNEb3duVXA6RG90LExpc3RDaGV2cm9uc1VwRG93bjpFb3QsTGlzdENvbGxhcHNlOlBvdCxMaXN0RW5kOklvdCxMaXN0RmlsdGVyOkZvdCxMaXN0RmlsdGVyUGx1czpOb3QsTGlzdEluZGVudERlY3JlYXNlOnhsLExpc3RJbmRlbnRJbmNyZWFzZTp3bCxMaXN0TWludXM6T290LExpc3RNdXNpYzpSb3QsTGlzdE9yZGVyZWQ6Qm90LExpc3RQbHVzOkhvdCxMaXN0UmVzdGFydDpxb3QsTGlzdFN0YXJ0OlZvdCxMaXN0VG9kbzpqb3QsTGlzdFRyZWU6VW90LExpc3RWaWRlbzpXb3QsTGlzdFg6R290LExvYWRlcjpab3QsTG9hZGVyMjpNdixMb2FkZXJDaXJjbGU6TXYsTG9hZGVyUGlud2hlZWw6WG90LExvY2F0ZTpKb3QsTG9jYXRlRml4ZWQ6S290LExvY2F0ZU9mZjpRb3QsTG9jYXRpb25FZGl0OkN2LExvY2s6dDB0LExvY2tLZXlob2xlOmUwdCxMb2NrS2V5aG9sZU9wZW46enYsTG9ja09wZW46a3YsTG9nSW46YTB0LExvZ091dDpyMHQsTG9nczppMHQsTG9sbGlwb3A6czB0LEx1Z2dhZ2U6bjB0LE1TcXVhcmU6RHksTWFnbmV0Om8wdCxNYWlsOmYwdCxNYWlsQ2hlY2s6bDB0LE1haWxNaW51czpjMHQsTWFpbE9wZW46ZDB0LE1haWxQbHVzOmgwdCxNYWlsUXVlc3Rpb246U3YsTWFpbFF1ZXN0aW9uTWFyazpTdixNYWlsU2VhcmNoOnAwdCxNYWlsV2FybmluZzp1MHQsTWFpbFg6bTB0LE1haWxib3g6ZzB0LE1haWxzOmIwdCxNYXA6RDB0LE1hcE1pbnVzOnYwdCxNYXBQaW46TDB0LE1hcFBpbkNoZWNrOngwdCxNYXBQaW5DaGVja0luc2lkZTp5MHQsTWFwUGluSG91c2U6dzB0LE1hcFBpbk1pbnVzOnowdCxNYXBQaW5NaW51c0luc2lkZTpNMHQsTWFwUGluT2ZmOmswdCxNYXBQaW5QZW46Q3YsTWFwUGluUGx1czpDMHQsTWFwUGluUGx1c0luc2lkZTpTMHQsTWFwUGluWDpUMHQsTWFwUGluWEluc2lkZTpfMHQsTWFwUGlubmVkOiQwdCxNYXBQbHVzOkEwdCxNYXJzOlAwdCxNYXJzU3Ryb2tlOkUwdCxNYXJ0aW5pOkkwdCxNYXhpbWl6ZTpGMHQsTWF4aW1pemUyOk4wdCxNZWRhbDpPMHQsTWVnYXBob25lOkIwdCxNZWdhcGhvbmVPZmY6UjB0LE1laDpIMHQsTWVtb3J5U3RpY2s6VjB0LE1lbnU6cTB0LE1lbnVTcXVhcmU6RXksTWVyZ2U6ajB0LE1lc3NhZ2VDaXJjbGU6ZTR0LE1lc3NhZ2VDaXJjbGVDb2RlOlUwdCxNZXNzYWdlQ2lyY2xlRGFzaGVkOlcwdCxNZXNzYWdlQ2lyY2xlSGVhcnQ6RzB0LE1lc3NhZ2VDaXJjbGVNb3JlOlkwdCxNZXNzYWdlQ2lyY2xlT2ZmOlowdCxNZXNzYWdlQ2lyY2xlUGx1czpYMHQsTWVzc2FnZUNpcmNsZVF1ZXN0aW9uOl92LE1lc3NhZ2VDaXJjbGVRdWVzdGlvbk1hcms6X3YsTWVzc2FnZUNpcmNsZVJlcGx5OlEwdCxNZXNzYWdlQ2lyY2xlV2FybmluZzpLMHQsTWVzc2FnZUNpcmNsZVg6SjB0LE1lc3NhZ2VTcXVhcmU6ZzR0LE1lc3NhZ2VTcXVhcmVDb2RlOnQ0dCxNZXNzYWdlU3F1YXJlRGFzaGVkOmE0dCxNZXNzYWdlU3F1YXJlRGlmZjppNHQsTWVzc2FnZVNxdWFyZURvdDpyNHQsTWVzc2FnZVNxdWFyZUhlYXJ0OnM0dCxNZXNzYWdlU3F1YXJlTG9jazpuNHQsTWVzc2FnZVNxdWFyZU1vcmU6bzR0LE1lc3NhZ2VTcXVhcmVPZmY6bDR0LE1lc3NhZ2VTcXVhcmVQbHVzOmM0dCxNZXNzYWdlU3F1YXJlUXVvdGU6ZDR0LE1lc3NhZ2VTcXVhcmVSZXBseTpoNHQsTWVzc2FnZVNxdWFyZVNoYXJlOnA0dCxNZXNzYWdlU3F1YXJlVGV4dDp1NHQsTWVzc2FnZVNxdWFyZVdhcm5pbmc6ZjR0LE1lc3NhZ2VTcXVhcmVYOm00dCxNZXNzYWdlc1NxdWFyZTpiNHQsTWljOnk0dCxNaWMyOlR2LE1pY09mZjp2NHQsTWljVm9jYWw6VHYsTWljcm9jaGlwOng0dCxNaWNyb3Njb3BlOnc0dCxNaWNyb3dhdmU6TTR0LE1pbGVzdG9uZTp6NHQsTWlsazpDNHQsTWlsa09mZjprNHQsTWluaW1pemU6XzR0LE1pbmltaXplMjpTNHQsTWludXM6VDR0LE1pbnVzQ2lyY2xlOmNiLE1pbnVzU3F1YXJlOlB5LE1vbml0b3I6cTR0LE1vbml0b3JDaGVjazpMNHQsTW9uaXRvckNsb3VkOiQ0dCxNb25pdG9yQ29nOkE0dCxNb25pdG9yRG90OkQ0dCxNb25pdG9yRG93bjpFNHQsTW9uaXRvck9mZjpQNHQsTW9uaXRvclBhdXNlOkk0dCxNb25pdG9yUGxheTpONHQsTW9uaXRvclNtYXJ0cGhvbmU6RjR0LE1vbml0b3JTcGVha2VyOk80dCxNb25pdG9yU3RvcDpSNHQsTW9uaXRvclVwOkI0dCxNb25pdG9yWDpINHQsTW9vbjpqNHQsTW9vblN0YXI6VjR0LE1vcmVIb3Jpem9udGFsOkViLE1vcmVWZXJ0aWNhbDpEYixNb3RvcmJpa2U6VTR0LE1vdW50YWluOkc0dCxNb3VudGFpblNub3c6VzR0LE1vdXNlOmUzdCxNb3VzZU9mZjpZNHQsTW91c2VQb2ludGVyOko0dCxNb3VzZVBvaW50ZXIyOlg0dCxNb3VzZVBvaW50ZXIyT2ZmOlo0dCxNb3VzZVBvaW50ZXJCYW46SzR0LE1vdXNlUG9pbnRlckNsaWNrOlE0dCxNb3VzZVBvaW50ZXJTcXVhcmVEYXNoZWQ6a3ksTW92ZTp1M3QsTW92ZTNEOkx2LE1vdmUzZDpMdixNb3ZlRGlhZ29uYWw6YTN0LE1vdmVEaWFnb25hbDI6dDN0LE1vdmVEb3duOnMzdCxNb3ZlRG93bkxlZnQ6aTN0LE1vdmVEb3duUmlnaHQ6cjN0LE1vdmVIb3Jpem9udGFsOm4zdCxNb3ZlTGVmdDpvM3QsTW92ZVJpZ2h0OmwzdCxNb3ZlVXA6aDN0LE1vdmVVcExlZnQ6YzN0LE1vdmVVcFJpZ2h0OmQzdCxNb3ZlVmVydGljYWw6cDN0LE11c2ljOmIzdCxNdXNpYzI6ZjN0LE11c2ljMzptM3QsTXVzaWM0OmczdCxOYXZpZ2F0aW9uOngzdCxOYXZpZ2F0aW9uMjp5M3QsTmF2aWdhdGlvbjJPZmY6djN0LE5hdmlnYXRpb25PZmY6dzN0LE5ldHdvcms6TTN0LE5ld3NwYXBlcjp6M3QsTmZjOmszdCxOb25CaW5hcnk6UzN0LE5vdGVib29rOkwzdCxOb3RlYm9va1BlbjpDM3QsTm90ZWJvb2tUYWJzOl8zdCxOb3RlYm9va1RleHQ6VDN0LE5vdGVwYWRUZXh0OkEzdCxOb3RlcGFkVGV4dERhc2hlZDokM3QsTnV0OkQzdCxOdXRPZmY6RTN0LE9jdGFnb246STN0LE9jdGFnb25BbGVydDokdixPY3RhZ29uTWludXM6UDN0LE9jdGFnb25QYXVzZTpBdixPY3RhZ29uWDpEdixPbWVnYTpOM3QsT3B0aW9uOk8zdCxPcmJpdDpGM3QsT3JpZ2FtaTpSM3QsT3V0ZGVudDp4bCxQYWNrYWdlOkczdCxQYWNrYWdlMjpCM3QsUGFja2FnZUNoZWNrOkgzdCxQYWNrYWdlTWludXM6cTN0LFBhY2thZ2VPcGVuOlYzdCxQYWNrYWdlUGx1czpqM3QsUGFja2FnZVNlYXJjaDpVM3QsUGFja2FnZVg6VzN0LFBhaW50QnVja2V0OlozdCxQYWludFJvbGxlcjpZM3QsUGFpbnRicnVzaDpYM3QsUGFpbnRicnVzaDI6RXYsUGFpbnRicnVzaFZlcnRpY2FsOkV2LFBhbGV0dGU6SzN0LFBhbG10cmVlOm94LFBhbmRhOlEzdCxQYW5lbEJvdHRvbTp0bHQsUGFuZWxCb3R0b21DbG9zZTpKM3QsUGFuZWxCb3R0b21EYXNoZWQ6UHYsUGFuZWxCb3R0b21JbmFjdGl2ZTpQdixQYW5lbEJvdHRvbU9wZW46ZWx0LFBhbmVsTGVmdDpPdixQYW5lbExlZnRDbG9zZTpJdixQYW5lbExlZnREYXNoZWQ6TnYsUGFuZWxMZWZ0SW5hY3RpdmU6TnYsUGFuZWxMZWZ0T3BlbjpGdixQYW5lbExlZnRSaWdodERhc2hlZDphbHQsUGFuZWxSaWdodDpzbHQsUGFuZWxSaWdodENsb3NlOmlsdCxQYW5lbFJpZ2h0RGFzaGVkOlJ2LFBhbmVsUmlnaHRJbmFjdGl2ZTpSdixQYW5lbFJpZ2h0T3BlbjpybHQsUGFuZWxUb3A6Y2x0LFBhbmVsVG9wQm90dG9tRGFzaGVkOm5sdCxQYW5lbFRvcENsb3NlOm9sdCxQYW5lbFRvcERhc2hlZDpCdixQYW5lbFRvcEluYWN0aXZlOkJ2LFBhbmVsVG9wT3BlbjpsbHQsUGFuZWxzTGVmdEJvdHRvbTpkbHQsUGFuZWxzTGVmdFJpZ2h0OlRiLFBhbmVsc1JpZ2h0Qm90dG9tOmhsdCxQYW5lbHNUb3BCb3R0b206WXYsUGFuZWxzVG9wTGVmdDpIdixQYXBlcmNsaXA6cGx0LFBhcmVudGhlc2VzOnVsdCxQYXJraW5nQ2lyY2xlOmhiLFBhcmtpbmdDaXJjbGVPZmY6ZGIsUGFya2luZ01ldGVyOmZsdCxQYXJraW5nU3F1YXJlOkZ5LFBhcmtpbmdTcXVhcmVPZmY6TnksUGFydHlQb3BwZXI6bWx0LFBhdXNlOmdsdCxQYXVzZUNpcmNsZTpwYixQYXVzZU9jdGFnb246QXYsUGF3UHJpbnQ6Ymx0LFBjQ2FzZTp2bHQsUGVuOlZ2LFBlbkJveDpybyxQZW5MaW5lOnF2LFBlbk9mZjp5bHQsUGVuU3F1YXJlOnJvLFBlblRvb2w6eGx0LFBlbmNpbDpTbHQsUGVuY2lsTGluZTp3bHQsUGVuY2lsT2ZmOk1sdCxQZW5jaWxSdWxlcjp6bHQsUGVudGFnb246a2x0LFBlcmNlbnQ6Q2x0LFBlcmNlbnRDaXJjbGU6dWIsUGVyY2VudERpYW1vbmQ6JGIsUGVyY2VudFNxdWFyZTpSeSxQZXJzb25TdGFuZGluZzpfbHQsUGhpbGlwcGluZVBlc286VGx0LFBob25lOklsdCxQaG9uZUNhbGw6TGx0LFBob25lRm9yd2FyZGVkOiRsdCxQaG9uZUluY29taW5nOkFsdCxQaG9uZU1pc3NlZDpEbHQsUGhvbmVPZmY6RWx0LFBob25lT3V0Z29pbmc6UGx0LFBpOk5sdCxQaVNxdWFyZTpPeSxQaWFubzpGbHQsUGlja2F4ZTpPbHQsUGljdHVyZUluUGljdHVyZTpIbHQsUGljdHVyZUluUGljdHVyZTI6Umx0LFBpZUNoYXJ0OlZnLFBpZ2d5QmFuazpCbHQsUGlsY3JvdzpqbHQsUGlsY3Jvd0xlZnQ6cWx0LFBpbGNyb3dSaWdodDpWbHQsUGlsY3Jvd1NxdWFyZTpCeSxQaWxsOldsdCxQaWxsQm90dGxlOlVsdCxQaW46WWx0LFBpbk9mZjpHbHQsUGlwZXR0ZTpabHQsUGl6emE6WGx0LFBsYW5lOkpsdCxQbGFuZUxhbmRpbmc6S2x0LFBsYW5lVGFrZW9mZjpRbHQsUGxheTplY3QsUGxheUNpcmNsZTpmYixQbGF5U3F1YXJlOkh5LFBsdWc6YWN0LFBsdWcyOnRjdCxQbHVnWmFwOmp2LFBsdWdaYXAyOmp2LFBsdXM6aWN0LFBsdXNDaXJjbGU6bWIsUGx1c1NxdWFyZTpxeSxQb2NrZXQ6bmN0LFBvY2tldEtuaWZlOnJjdCxQb2RjYXN0OnNjdCxQb2ludGVyOmxjdCxQb2ludGVyT2ZmOm9jdCxQb3Bjb3JuOmNjdCxQb3BzaWNsZTpkY3QsUG91bmRTdGVybGluZzpoY3QsUG93ZXI6dWN0LFBvd2VyQ2lyY2xlOmdiLFBvd2VyT2ZmOnBjdCxQb3dlclNxdWFyZTpWeSxQcmVzZW50YXRpb246bWN0LFByaW50ZXI6YmN0LFByaW50ZXJDaGVjazpmY3QsUHJpbnRlclg6Z2N0LFByb2plY3Rvcjp2Y3QsUHJvcG9ydGlvbnM6eWN0LFB1enpsZTp4Y3QsUHlyYW1pZDp3Y3QsUXJDb2RlOk1jdCxRdW90ZTp6Y3QsUmFiYml0OmtjdCxSYWRhcjpTY3QsUmFkaWF0aW9uOkNjdCxSYWRpY2FsOl9jdCxSYWRpbzokY3QsUmFkaW9SZWNlaXZlcjpUY3QsUmFkaW9Ub3dlcjpMY3QsUmFkaXVzOkFjdCxSYWlsU3ltYm9sOkRjdCxSYWluYm93OkVjdCxSYXQ6UGN0LFJhdGlvOkljdCxSZWNlaXB0OlVjdCxSZWNlaXB0Q2VudDpOY3QsUmVjZWlwdEV1cm86RmN0LFJlY2VpcHRJbmRpYW5SdXBlZTpPY3QsUmVjZWlwdEphcGFuZXNlWWVuOlJjdCxSZWNlaXB0UG91bmRTdGVybGluZzpCY3QsUmVjZWlwdFJ1c3NpYW5SdWJsZTpIY3QsUmVjZWlwdFN3aXNzRnJhbmM6cWN0LFJlY2VpcHRUZXh0OlZjdCxSZWNlaXB0VHVya2lzaExpcmE6amN0LFJlY3RhbmdsZUNpcmNsZTpXY3QsUmVjdGFuZ2xlRWxsaXBzaXM6VXYsUmVjdGFuZ2xlR29nZ2xlczpZY3QsUmVjdGFuZ2xlSG9yaXpvbnRhbDpHY3QsUmVjdGFuZ2xlVmVydGljYWw6WmN0LFJlY3ljbGU6WGN0LFJlZG86SmN0LFJlZG8yOlFjdCxSZWRvRG90OktjdCxSZWZyZXNoQ2N3OnQ2dCxSZWZyZXNoQ2N3RG90OmU2dCxSZWZyZXNoQ3c6aTZ0LFJlZnJlc2hDd09mZjphNnQsUmVmcmlnZXJhdG9yOnI2dCxSZWdleDpzNnQsUmVtb3ZlRm9ybWF0dGluZzpuNnQsUmVwZWF0OmM2dCxSZXBlYXQxOmw2dCxSZXBlYXQyOm82dCxSZXBsYWNlOmg2dCxSZXBsYWNlQWxsOmQ2dCxSZXBseTp1NnQsUmVwbHlBbGw6cDZ0LFJld2luZDpmNnQsUmliYm9uOm02dCxSb2NrZXQ6ZzZ0LFJvY2tpbmdDaGFpcjpiNnQsUm9sbGVyQ29hc3Rlcjp2NnQsUm9zZTp5NnQsUm90YXRlM0Q6V3YsUm90YXRlM2Q6V3YsUm90YXRlQ2N3Ok02dCxSb3RhdGVDY3dLZXk6eDZ0LFJvdGF0ZUNjd1NxdWFyZTp3NnQsUm90YXRlQ3c6azZ0LFJvdGF0ZUN3U3F1YXJlOno2dCxSb3V0ZTpDNnQsUm91dGVPZmY6UzZ0LFJvdXRlcjpfNnQsUm93czpHdixSb3dzMjpHdixSb3dzMzpZdixSb3dzNDpUNnQsUnNzOkw2dCxSdWxlcjpENnQsUnVsZXJEaW1lbnNpb25MaW5lOiQ2dCxSdXNzaWFuUnVibGU6QTZ0LFNhaWxib2F0OlA2dCxTYWxhZDpFNnQsU2FuZHdpY2g6STZ0LFNhdGVsbGl0ZTpGNnQsU2F0ZWxsaXRlRGlzaDpONnQsU2F1ZGlSaXlhbDpPNnQsU2F2ZTpINnQsU2F2ZUFsbDpSNnQsU2F2ZU9mZjpCNnQsU2NhbGU6cTZ0LFNjYWxlM0Q6WnYsU2NhbGUzZDpadixTY2FsaW5nOlY2dCxTY2FuOlE2dCxTY2FuQmFyY29kZTpVNnQsU2NhbkV5ZTpqNnQsU2NhbkZhY2U6VzZ0LFNjYW5IZWFydDpHNnQsU2NhbkxpbmU6WTZ0LFNjYW5RckNvZGU6WjZ0LFNjYW5TZWFyY2g6WDZ0LFNjYW5UZXh0Oks2dCxTY2F0dGVyQ2hhcnQ6amcsU2Nob29sOko2dCxTY2hvb2wyOmR4LFNjaXNzb3JzOnQ1dCxTY2lzc29yc0xpbmVEYXNoZWQ6ZTV0LFNjaXNzb3JzU3F1YXJlOmp5LFNjaXNzb3JzU3F1YXJlRGFzaGVkQm90dG9tOm15LFNjb290ZXI6YTV0LFNjcmVlblNoYXJlOnI1dCxTY3JlZW5TaGFyZU9mZjppNXQsU2Nyb2xsOnM1dCxTY3JvbGxUZXh0Om41dCxTZWFyY2g6cDV0LFNlYXJjaEFsZXJ0Om81dCxTZWFyY2hDaGVjazpsNXQsU2VhcmNoQ29kZTpjNXQsU2VhcmNoU2xhc2g6ZDV0LFNlYXJjaFg6aDV0LFNlY3Rpb246dTV0LFNlbmQ6bTV0LFNlbmRIb3Jpem9uYWw6WHYsU2VuZEhvcml6b250YWw6WHYsU2VuZFRvQmFjazpmNXQsU2VwYXJhdG9ySG9yaXpvbnRhbDpiNXQsU2VwYXJhdG9yVmVydGljYWw6ZzV0LFNlcnZlcjp3NXQsU2VydmVyQ29nOnY1dCxTZXJ2ZXJDcmFzaDp5NXQsU2VydmVyT2ZmOng1dCxTZXR0aW5nczp6NXQsU2V0dGluZ3MyOk01dCxTaGFwZXM6azV0LFNoYXJlOkM1dCxTaGFyZTI6UzV0LFNoZWV0Ol81dCxTaGVsbDpUNXQsU2hpZWxkOk81dCxTaGllbGRBbGVydDpMNXQsU2hpZWxkQmFuOiQ1dCxTaGllbGRDaGVjazpBNXQsU2hpZWxkQ2xvc2U6UXYsU2hpZWxkRWxsaXBzaXM6RDV0LFNoaWVsZEhhbGY6RTV0LFNoaWVsZE1pbnVzOlA1dCxTaGllbGRPZmY6STV0LFNoaWVsZFBsdXM6TjV0LFNoaWVsZFF1ZXN0aW9uOkt2LFNoaWVsZFF1ZXN0aW9uTWFyazpLdixTaGllbGRVc2VyOkY1dCxTaGllbGRYOlF2LFNoaXA6QjV0LFNoaXBXaGVlbDpSNXQsU2hpcnQ6SDV0LFNob3BwaW5nQmFnOnE1dCxTaG9wcGluZ0Jhc2tldDpWNXQsU2hvcHBpbmdDYXJ0Omo1dCxTaG92ZWw6VTV0LFNob3dlckhlYWQ6VzV0LFNocmVkZGVyOkc1dCxTaHJpbXA6WTV0LFNocmluazpaNXQsU2hydWI6SzV0LFNodWZmbGU6WDV0LFNpZGViYXI6T3YsU2lkZWJhckNsb3NlOkl2LFNpZGViYXJPcGVuOkZ2LFNpZ21hOlE1dCxTaWdtYVNxdWFyZTpVeSxTaWduYWw6aTh0LFNpZ25hbEhpZ2g6SjV0LFNpZ25hbExvdzplOHQsU2lnbmFsTWVkaXVtOnQ4dCxTaWduYWxaZXJvOmE4dCxTaWduYXR1cmU6cjh0LFNpZ25wb3N0Om44dCxTaWducG9zdEJpZzpzOHQsU2lyZW46bzh0LFNraXBCYWNrOmw4dCxTa2lwRm9yd2FyZDpjOHQsU2t1bGw6ZDh0LFNsYWNrOmg4dCxTbGFzaDpwOHQsU2xhc2hTcXVhcmU6V3ksU2xpY2U6dTh0LFNsaWRlcnM6SnYsU2xpZGVyc0hvcml6b250YWw6Zjh0LFNsaWRlcnNWZXJ0aWNhbDpKdixTbWFydHBob25lOmI4dCxTbWFydHBob25lQ2hhcmdpbmc6bTh0LFNtYXJ0cGhvbmVOZmM6Zzh0LFNtaWxlOnk4dCxTbWlsZVBsdXM6djh0LFNuYWlsOng4dCxTbm93Zmxha2U6TTh0LFNvYXBEaXNwZW5zZXJEcm9wbGV0Onc4dCxTb2ZhOno4dCxTb2xhclBhbmVsOms4dCxTb3J0QXNjOk1nLFNvcnREZXNjOnlnLFNvdXA6Uzh0LFNwYWNlOkM4dCxTcGFkZTpfOHQsU3BhcmtsZTpUOHQsU3BhcmtsZXM6ZXksU3BlYWtlcjpMOHQsU3BlZWNoOiQ4dCxTcGVsbENoZWNrOkQ4dCxTcGVsbENoZWNrMjpBOHQsU3BsaW5lOlA4dCxTcGxpbmVQb2ludGVyOkU4dCxTcGxpdDpJOHQsU3BsaXRTcXVhcmVIb3Jpem9udGFsOkd5LFNwbGl0U3F1YXJlVmVydGljYWw6WXksU3Bvb2w6Tjh0LFNwb3RsaWdodDpGOHQsU3ByYXlDYW46Tzh0LFNwcm91dDpSOHQsU3F1YXJlOlg4dCxTcXVhcmVBY3Rpdml0eTpheSxTcXVhcmVBcnJvd0Rvd246cnksU3F1YXJlQXJyb3dEb3duTGVmdDp0eSxTcXVhcmVBcnJvd0Rvd25SaWdodDppeSxTcXVhcmVBcnJvd0xlZnQ6c3ksU3F1YXJlQXJyb3dPdXREb3duTGVmdDpueSxTcXVhcmVBcnJvd091dERvd25SaWdodDpseSxTcXVhcmVBcnJvd091dFVwTGVmdDpveSxTcXVhcmVBcnJvd091dFVwUmlnaHQ6Y3ksU3F1YXJlQXJyb3dSaWdodDpkeSxTcXVhcmVBcnJvd1VwOnV5LFNxdWFyZUFycm93VXBMZWZ0Omh5LFNxdWFyZUFycm93VXBSaWdodDpweSxTcXVhcmVBc3RlcmlzazpmeSxTcXVhcmVCb3R0b21EYXNoZWRTY2lzc29yczpteSxTcXVhcmVDaGFydEdhbnR0Ok1sLFNxdWFyZUNoZWNrOmJ5LFNxdWFyZUNoZWNrQmlnOmd5LFNxdWFyZUNoZXZyb25Eb3duOnZ5LFNxdWFyZUNoZXZyb25MZWZ0Onl5LFNxdWFyZUNoZXZyb25SaWdodDp4eSxTcXVhcmVDaGV2cm9uVXA6d3ksU3F1YXJlQ29kZTpNeSxTcXVhcmVEYXNoZWQ6U3ksU3F1YXJlRGFzaGVkQm90dG9tOkg4dCxTcXVhcmVEYXNoZWRCb3R0b21Db2RlOkI4dCxTcXVhcmVEYXNoZWRLYW5iYW46enksU3F1YXJlRGFzaGVkTW91c2VQb2ludGVyOmt5LFNxdWFyZURhc2hlZFRvcFNvbGlkOnE4dCxTcXVhcmVEaXZpZGU6Q3ksU3F1YXJlRG90Ol95LFNxdWFyZUVxdWFsOlR5LFNxdWFyZUZ1bmN0aW9uOkx5LFNxdWFyZUdhbnR0Q2hhcnQ6TWwsU3F1YXJlS2FuYmFuOiR5LFNxdWFyZUxpYnJhcnk6QXksU3F1YXJlTTpEeSxTcXVhcmVNZW51OkV5LFNxdWFyZU1pbnVzOlB5LFNxdWFyZU1vdXNlUG9pbnRlcjpJeSxTcXVhcmVQYXJraW5nOkZ5LFNxdWFyZVBhcmtpbmdPZmY6TnksU3F1YXJlUGF1c2U6Vjh0LFNxdWFyZVBlbjpybyxTcXVhcmVQZXJjZW50OlJ5LFNxdWFyZVBpOk95LFNxdWFyZVBpbGNyb3c6QnksU3F1YXJlUGxheTpIeSxTcXVhcmVQbHVzOnF5LFNxdWFyZVBvd2VyOlZ5LFNxdWFyZVJhZGljYWw6VTh0LFNxdWFyZVJvdW5kQ29ybmVyOmo4dCxTcXVhcmVTY2lzc29yczpqeSxTcXVhcmVTaWdtYTpVeSxTcXVhcmVTbGFzaDpXeSxTcXVhcmVTcGxpdEhvcml6b250YWw6R3ksU3F1YXJlU3BsaXRWZXJ0aWNhbDpZeSxTcXVhcmVTcXVhcmU6Rzh0LFNxdWFyZVN0YWNrOlc4dCxTcXVhcmVTdGFyOlk4dCxTcXVhcmVTdG9wOlo4dCxTcXVhcmVUZXJtaW5hbDpaeSxTcXVhcmVVc2VyOkt5LFNxdWFyZVVzZXJSb3VuZDpYeSxTcXVhcmVYOlF5LFNxdWFyZXNFeGNsdWRlOks4dCxTcXVhcmVzSW50ZXJzZWN0OlE4dCxTcXVhcmVzU3VidHJhY3Q6Sjh0LFNxdWFyZXNVbml0ZTplZHQsU3F1aXJjbGU6YWR0LFNxdWlyY2xlRGFzaGVkOnRkdCxTcXVpcnJlbDppZHQsU3RhbXA6cmR0LFN0YXI6b2R0LFN0YXJIYWxmOnNkdCxTdGFyT2ZmOm5kdCxTdGFyczpleSxTdGVwQmFjazpsZHQsU3RlcEZvcndhcmQ6Y2R0LFN0ZXRob3Njb3BlOmRkdCxTdGlja2VyOmhkdCxTdGlja3lOb3RlOnBkdCxTdG9uZTp1ZHQsU3RvcENpcmNsZTp2YixTdG9yZTpmZHQsU3RyZXRjaEhvcml6b250YWw6bWR0LFN0cmV0Y2hWZXJ0aWNhbDpnZHQsU3RyaWtldGhyb3VnaDpiZHQsU3Vic2NyaXB0OnZkdCxTdWJ0aXRsZXM6QWcsU3VuOnpkdCxTdW5EaW06eWR0LFN1bk1lZGl1bTp4ZHQsU3VuTW9vbjp3ZHQsU3VuU25vdzpNZHQsU3VucmlzZTprZHQsU3Vuc2V0OlNkdCxTdXBlcnNjcmlwdDpDZHQsU3dhdGNoQm9vazpfZHQsU3dpc3NGcmFuYzpUZHQsU3dpdGNoQ2FtZXJhOkxkdCxTd29yZDokZHQsU3dvcmRzOkFkdCxTeXJpbmdlOkRkdCxUYWJsZTpCZHQsVGFibGUyOkVkdCxUYWJsZUNlbGxzTWVyZ2U6UGR0LFRhYmxlQ2VsbHNTcGxpdDpJZHQsVGFibGVDb2x1bW5zU3BsaXQ6TmR0LFRhYmxlQ29uZmlnOmJsLFRhYmxlT2ZDb250ZW50czpGZHQsVGFibGVQcm9wZXJ0aWVzOk9kdCxUYWJsZVJvd3NTcGxpdDpSZHQsVGFibGV0OkhkdCxUYWJsZXRTbWFydHBob25lOnFkdCxUYWJsZXRzOlZkdCxUYWc6amR0LFRhZ3M6VWR0LFRhbGx5MTpXZHQsVGFsbHkyOkdkdCxUYWxseTM6WWR0LFRhbGx5NDpaZHQsVGFsbHk1OlhkdCxUYW5nZW50OktkdCxUYXJnZXQ6UWR0LFRlbGVzY29wZTpKZHQsVGVudDp0N3QsVGVudFRyZWU6ZTd0LFRlcm1pbmFsOmE3dCxUZXJtaW5hbFNxdWFyZTpaeSxUZXN0VHViZTppN3QsVGVzdFR1YmUyOkp5LFRlc3RUdWJlRGlhZ29uYWw6SnksVGVzdFR1YmVzOnI3dCxUZXh0OnpsLFRleHRBbGlnbkNlbnRlcjpleCxUZXh0QWxpZ25FbmQ6dHgsVGV4dEFsaWduSnVzdGlmeTpheCxUZXh0QWxpZ25TdGFydDp6bCxUZXh0Q3Vyc29yOm43dCxUZXh0Q3Vyc29ySW5wdXQ6czd0LFRleHRJbml0aWFsOml4LFRleHRRdW90ZTpvN3QsVGV4dFNlYXJjaDpsN3QsVGV4dFNlbGVjdDpyeCxUZXh0U2VsZWN0aW9uOnJ4LFRleHRXcmFwOnN4LFRoZWF0ZXI6Yzd0LFRoZXJtb21ldGVyOnA3dCxUaGVybW9tZXRlclNub3dmbGFrZTpkN3QsVGhlcm1vbWV0ZXJTdW46aDd0LFRodW1ic0Rvd246dTd0LFRodW1ic1VwOmY3dCxUaWNrZXQ6dzd0LFRpY2tldENoZWNrOm03dCxUaWNrZXRNaW51czpnN3QsVGlja2V0UGVyY2VudDpiN3QsVGlja2V0UGx1czp2N3QsVGlja2V0U2xhc2g6eTd0LFRpY2tldFg6eDd0LFRpY2tldHM6azd0LFRpY2tldHNQbGFuZTpNN3QsVGltZXI6Qzd0LFRpbWVyT2ZmOno3dCxUaW1lclJlc2V0OlM3dCxUb2dnbGVMZWZ0Ol83dCxUb2dnbGVSaWdodDpUN3QsVG9pbGV0Okw3dCxUb29sQ2FzZTokN3QsVG9vbGJveDpBN3QsVG9ybmFkbzpEN3QsVG9ydXM6RTd0LFRvdWNocGFkOkk3dCxUb3VjaHBhZE9mZjpQN3QsVG93ZXJDb250cm9sOk43dCxUb3lCcmljazpGN3QsVHJhY3RvcjpPN3QsVHJhZmZpY0NvbmU6Ujd0LFRyYWluOm54LFRyYWluRnJvbnQ6SDd0LFRyYWluRnJvbnRUdW5uZWw6Qjd0LFRyYWluVHJhY2s6cTd0LFRyYW1Gcm9udDpueCxUcmFuc2dlbmRlcjpWN3QsVHJhc2g6VTd0LFRyYXNoMjpqN3QsVHJlZURlY2lkdW91czpXN3QsVHJlZVBhbG06b3gsVHJlZVBpbmU6Rzd0LFRyZWVzOlk3dCxUcmVsbG86Wjd0LFRyZW5kaW5nRG93bjpYN3QsVHJlbmRpbmdVcDpRN3QsVHJlbmRpbmdVcERvd246Szd0LFRyaWFuZ2xlOnRodCxUcmlhbmdsZUFsZXJ0Omx4LFRyaWFuZ2xlRGFzaGVkOko3dCxUcmlhbmdsZVJpZ2h0OmVodCxUcm9waHk6aWh0LFRydWNrOnJodCxUcnVja0VsZWN0cmljOmFodCxUdXJraXNoTGlyYTpzaHQsVHVybnRhYmxlOm5odCxUdXJ0bGU6b2h0LFR2OmNodCxUdjI6Y3gsVHZNaW5pbWFsOmN4LFR2TWluaW1hbFBsYXk6bGh0LFR3aXRjaDpkaHQsVHdpdHRlcjpoaHQsVHlwZTp1aHQsVHlwZU91dGxpbmU6cGh0LFVtYnJlbGxhOm1odCxVbWJyZWxsYU9mZjpmaHQsVW5kZXJsaW5lOmdodCxVbmRvOnlodCxVbmRvMjpiaHQsVW5kb0RvdDp2aHQsVW5mb2xkSG9yaXpvbnRhbDp4aHQsVW5mb2xkVmVydGljYWw6d2h0LFVuZ3JvdXA6TWh0LFVuaXZlcnNpdHk6ZHgsVW5saW5rOnpodCxVbmxpbmsyOmtodCxVbmxvY2s6a3YsVW5sb2NrS2V5aG9sZTp6dixVbnBsdWc6U2h0LFVwbG9hZDpDaHQsVXBsb2FkQ2xvdWQ6U2IsVXNiOl9odCxVc2VyOkhodCxVc2VyMjpneCxVc2VyQ2hlY2s6VGh0LFVzZXJDaGVjazI6aHgsVXNlckNpcmNsZTp4YixVc2VyQ2lyY2xlMjp5YixVc2VyQ29nOkxodCxVc2VyQ29nMjpweCxVc2VyS2V5OiRodCxVc2VyTG9jazpBaHQsVXNlck1pbnVzOkRodCxVc2VyTWludXMyOnV4LFVzZXJQZW46RWh0LFVzZXJQbHVzOlBodCxVc2VyUGx1czI6ZngsVXNlclJvdW5kOmd4LFVzZXJSb3VuZENoZWNrOmh4LFVzZXJSb3VuZENvZzpweCxVc2VyUm91bmRLZXk6SWh0LFVzZXJSb3VuZE1pbnVzOnV4LFVzZXJSb3VuZFBlbjpOaHQsVXNlclJvdW5kUGx1czpmeCxVc2VyUm91bmRTZWFyY2g6Rmh0LFVzZXJSb3VuZFg6bXgsVXNlclNlYXJjaDpPaHQsVXNlclNxdWFyZTpLeSxVc2VyU3F1YXJlMjpYeSxVc2VyU3RhcjpSaHQsVXNlclg6Qmh0LFVzZXJYMjpteCxVc2VyczpxaHQsVXNlcnMyOmJ4LFVzZXJzUm91bmQ6YngsVXRlbnNpbHM6eXgsVXRlbnNpbHNDcm9zc2VkOnZ4LFV0aWxpdHlQb2xlOlZodCxWYW46amh0LFZhcmlhYmxlOlVodCxWYXVsdDpXaHQsVmVjdG9yU3F1YXJlOkdodCxWZWdhbjpZaHQsVmVuZXRpYW5NYXNrOlpodCxWZW51czpLaHQsVmVudXNBbmRNYXJzOlhodCxWZXJpZmllZDpTZyxWaWJyYXRlOkpodCxWaWJyYXRlT2ZmOlFodCxWaWRlbzp0cHQsVmlkZW9PZmY6ZXB0LFZpZGVvdGFwZTphcHQsVmlldzppcHQsVm9pY2VtYWlsOnJwdCxWb2xsZXliYWxsOnNwdCxWb2x1bWU6aHB0LFZvbHVtZTE6bnB0LFZvbHVtZTI6b3B0LFZvbHVtZU9mZjpscHQsVm9sdW1lWDpjcHQsVm90ZTpkcHQsV2FsbGV0OnVwdCxXYWxsZXQyOnh4LFdhbGxldENhcmRzOnBwdCxXYWxsZXRNaW5pbWFsOnh4LFdhbGxwYXBlcjpmcHQsV2FuZDptcHQsV2FuZDI6d3gsV2FuZFNwYXJrbGVzOnd4LFdhcmVob3VzZTpncHQsV2FzaGluZ01hY2hpbmU6YnB0LFdhdGNoOnZwdCxXYXZlczpNcHQsV2F2ZXNBcnJvd0Rvd246eXB0LFdhdmVzQXJyb3dVcDp4cHQsV2F2ZXNMYWRkZXI6d3B0LFdheXBvaW50czp6cHQsV2ViY2FtOmtwdCxXZWJob29rOkNwdCxXZWJob29rT2ZmOlNwdCxXZWlnaHQ6THB0LFdlaWdodFRpbGRlOl9wdCxXaGVhdDokcHQsV2hlYXRPZmY6VHB0LFdob2xlV29yZDpBcHQsV2lmaTpScHQsV2lmaUNvZzpEcHQsV2lmaUhpZ2g6RXB0LFdpZmlMb3c6UHB0LFdpZmlPZmY6SXB0LFdpZmlQZW46TnB0LFdpZmlTeW5jOkZwdCxXaWZpWmVybzpPcHQsV2luZDpIcHQsV2luZEFycm93RG93bjpCcHQsV2luZTpxcHQsV2luZU9mZjpqcHQsV29ya2Zsb3c6VnB0LFdvcm06VXB0LFdyYXBUZXh0OnN4LFdyZW5jaDpZcHQsWDpXcHQsWENpcmNsZTp3YixYT2N0YWdvbjpEdixYU3F1YXJlOlF5LFlvdXR1YmU6R3B0LFphcDpYcHQsWmFwT2ZmOlpwdCxab29tSW46UXB0LFpvb21PdXQ6S3B0fSksSnB0PSh7aWNvbnM6dD17fSxuYW1lQXR0cjplPSJkYXRhLWx1Y2lkZSIsYXR0cnM6YT17fSxyb290Omk9ZG9jdW1lbnQsaW5UZW1wbGF0ZXM6cn09e30pPT57aWYoIU9iamVjdC52YWx1ZXModCkubGVuZ3RoKXRocm93IG5ldyBFcnJvcihgUGxlYXNlIHByb3ZpZGUgYW4gaWNvbnMgb2JqZWN0LgpJZiB5b3Ugd2FudCB0byB1c2UgYWxsIHRoZSBpY29ucyB5b3UgY2FuIGltcG9ydCBpdCBsaWtlOgogXGBpbXBvcnQgeyBjcmVhdGVJY29ucywgaWNvbnMgfSBmcm9tICdsdWNpZGUnOwpsdWNpZGUuY3JlYXRlSWNvbnMoe2ljb25zfSk7XGBgKTtpZih0eXBlb2YgaT4idSIpdGhyb3cgbmV3IEVycm9yKCJgY3JlYXRlSWNvbnMoKWAgb25seSB3b3JrcyBpbiBhIGJyb3dzZXIgZW52aXJvbm1lbnQuIik7aWYoQXJyYXkuZnJvbShpLnF1ZXJ5U2VsZWN0b3JBbGwoYFske2V9XWApKS5mb3JFYWNoKG49Pm1aZShuLHtuYW1lQXR0cjplLGljb25zOnQsYXR0cnM6YX0pKSxyJiZBcnJheS5mcm9tKGkucXVlcnlTZWxlY3RvckFsbCgidGVtcGxhdGUiKSkuZm9yRWFjaChvPT5KcHQoe2ljb25zOnQsbmFtZUF0dHI6ZSxhdHRyczphLHJvb3Q6by5jb250ZW50LGluVGVtcGxhdGVzOnJ9KSksZT09PSJkYXRhLWx1Y2lkZSIpe2xldCBuPWkucXVlcnlTZWxlY3RvckFsbCgiW2ljb24tbmFtZV0iKTtuLmxlbmd0aD4wJiYoY29uc29sZS53YXJuKCJbTHVjaWRlXSBTb21lIGljb25zIHdlcmUgZm91bmQgd2l0aCB0aGUgbm93IGRlcHJlY2F0ZWQgaWNvbi1uYW1lIGF0dHJpYnV0ZS4gVGhlc2Ugd2lsbCBzdGlsbCBiZSByZXBsYWNlZCBmb3IgYmFja3dhcmRzIGNvbXBhdGliaWxpdHksIGJ1dCB3aWxsIG5vIGxvbmdlciBiZSBzdXBwb3J0ZWQgaW4gdjEuMCBhbmQgeW91IHNob3VsZCBzd2l0Y2ggdG8gZGF0YS1sdWNpZGUiKSxBcnJheS5mcm9tKG4pLmZvckVhY2gobz0+bVplKG8se25hbWVBdHRyOiJpY29uLW5hbWUiLGljb25zOnQsYXR0cnM6YX0pKSl9fTt1LkFBcnJvd0Rvd249Z1plLHUuQUFycm93VXA9YlplLHUuQUxhcmdlU21hbGw9dlplLHUuQWNjZXNzaWJpbGl0eT15WmUsdS5BY3Rpdml0eT13WmUsdS5BY3Rpdml0eVNxdWFyZT1heSx1LkFpclZlbnQ9eFplLHUuQWlycGxheT1NWmUsdS5BbGFybUNoZWNrPW1nLHUuQWxhcm1DbG9jaz1rWmUsdS5BbGFybUNsb2NrQ2hlY2s9bWcsdS5BbGFybUNsb2NrTWludXM9Z2csdS5BbGFybUNsb2NrT2ZmPXpaZSx1LkFsYXJtQ2xvY2tQbHVzPWJnLHUuQWxhcm1NaW51cz1nZyx1LkFsYXJtUGx1cz1iZyx1LkFsYXJtU21va2U9U1plLHUuQWxidW09Q1plLHUuQWxlcnRDaXJjbGU9V2csdS5BbGVydE9jdGFnb249JHYsdS5BbGVydFRyaWFuZ2xlPWx4LHUuQWxpZ25DZW50ZXI9ZXgsdS5BbGlnbkNlbnRlckhvcml6b250YWw9X1plLHUuQWxpZ25DZW50ZXJWZXJ0aWNhbD1UWmUsdS5BbGlnbkVuZEhvcml6b250YWw9TFplLHUuQWxpZ25FbmRWZXJ0aWNhbD0kWmUsdS5BbGlnbkhvcml6b250YWxEaXN0cmlidXRlQ2VudGVyPUFaZSx1LkFsaWduSG9yaXpvbnRhbERpc3RyaWJ1dGVFbmQ9RFplLHUuQWxpZ25Ib3Jpem9udGFsRGlzdHJpYnV0ZVN0YXJ0PUVaZSx1LkFsaWduSG9yaXpvbnRhbEp1c3RpZnlDZW50ZXI9UFplLHUuQWxpZ25Ib3Jpem9udGFsSnVzdGlmeUVuZD1JWmUsdS5BbGlnbkhvcml6b250YWxKdXN0aWZ5U3RhcnQ9TlplLHUuQWxpZ25Ib3Jpem9udGFsU3BhY2VBcm91bmQ9RlplLHUuQWxpZ25Ib3Jpem9udGFsU3BhY2VCZXR3ZWVuPU9aZSx1LkFsaWduSnVzdGlmeT1heCx1LkFsaWduTGVmdD16bCx1LkFsaWduUmlnaHQ9dHgsdS5BbGlnblN0YXJ0SG9yaXpvbnRhbD1SWmUsdS5BbGlnblN0YXJ0VmVydGljYWw9QlplLHUuQWxpZ25WZXJ0aWNhbERpc3RyaWJ1dGVDZW50ZXI9SFplLHUuQWxpZ25WZXJ0aWNhbERpc3RyaWJ1dGVFbmQ9cVplLHUuQWxpZ25WZXJ0aWNhbERpc3RyaWJ1dGVTdGFydD1WWmUsdS5BbGlnblZlcnRpY2FsSnVzdGlmeUNlbnRlcj1qWmUsdS5BbGlnblZlcnRpY2FsSnVzdGlmeUVuZD1VWmUsdS5BbGlnblZlcnRpY2FsSnVzdGlmeVN0YXJ0PVdaZSx1LkFsaWduVmVydGljYWxTcGFjZUFyb3VuZD1HWmUsdS5BbGlnblZlcnRpY2FsU3BhY2VCZXR3ZWVuPVlaZSx1LkFtYnVsYW5jZT1aWmUsdS5BbXBlcnNhbmQ9WFplLHUuQW1wZXJzYW5kcz1LWmUsdS5BbXBob3JhPVFaZSx1LkFuY2hvcj1KWmUsdS5BbmdyeT1lWGUsdS5Bbm5veWVkPXRYZSx1LkFudGVubmE9YVhlLHUuQW52aWw9aVhlLHUuQXBlcnR1cmU9clhlLHUuQXBwV2luZG93PW5YZSx1LkFwcFdpbmRvd01hYz1zWGUsdS5BcHBsZT1vWGUsdS5BcmNoaXZlPWRYZSx1LkFyY2hpdmVSZXN0b3JlPWxYZSx1LkFyY2hpdmVYPWNYZSx1LkFyZWFDaGFydD1EZyx1LkFybWNoYWlyPWhYZSx1LkFycm93QmlnRG93bj11WGUsdS5BcnJvd0JpZ0Rvd25EYXNoPXBYZSx1LkFycm93QmlnTGVmdD1tWGUsdS5BcnJvd0JpZ0xlZnREYXNoPWZYZSx1LkFycm93QmlnUmlnaHQ9YlhlLHUuQXJyb3dCaWdSaWdodERhc2g9Z1hlLHUuQXJyb3dCaWdVcD15WGUsdS5BcnJvd0JpZ1VwRGFzaD12WGUsdS5BcnJvd0Rvd249TFhlLHUuQXJyb3dEb3duMDE9eFhlLHUuQXJyb3dEb3duMTA9d1hlLHUuQXJyb3dEb3duQVo9dmcsdS5BcnJvd0Rvd25Bej12Zyx1LkFycm93RG93bkNpcmNsZT1HZyx1LkFycm93RG93bkZyb21MaW5lPU1YZSx1LkFycm93RG93bkxlZnQ9elhlLHUuQXJyb3dEb3duTGVmdEZyb21DaXJjbGU9WmcsdS5BcnJvd0Rvd25MZWZ0RnJvbVNxdWFyZT1ueSx1LkFycm93RG93bkxlZnRTcXVhcmU9dHksdS5BcnJvd0Rvd25OYXJyb3dXaWRlPWtYZSx1LkFycm93RG93blJpZ2h0PVNYZSx1LkFycm93RG93blJpZ2h0RnJvbUNpcmNsZT1YZyx1LkFycm93RG93blJpZ2h0RnJvbVNxdWFyZT1seSx1LkFycm93RG93blJpZ2h0U3F1YXJlPWl5LHUuQXJyb3dEb3duU3F1YXJlPXJ5LHUuQXJyb3dEb3duVG9Eb3Q9Q1hlLHUuQXJyb3dEb3duVG9MaW5lPV9YZSx1LkFycm93RG93blVwPVRYZSx1LkFycm93RG93bldpZGVOYXJyb3c9eWcsdS5BcnJvd0Rvd25aQT14Zyx1LkFycm93RG93blphPXhnLHUuQXJyb3dMZWZ0PUVYZSx1LkFycm93TGVmdENpcmNsZT1ZZyx1LkFycm93TGVmdEZyb21MaW5lPSRYZSx1LkFycm93TGVmdFJpZ2h0PUFYZSx1LkFycm93TGVmdFNxdWFyZT1zeSx1LkFycm93TGVmdFRvTGluZT1EWGUsdS5BcnJvd1JpZ2h0PUZYZSx1LkFycm93UmlnaHRDaXJjbGU9SmcsdS5BcnJvd1JpZ2h0RnJvbUxpbmU9UFhlLHUuQXJyb3dSaWdodExlZnQ9SVhlLHUuQXJyb3dSaWdodFNxdWFyZT1keSx1LkFycm93UmlnaHRUb0xpbmU9TlhlLHUuQXJyb3dVcD1HWGUsdS5BcnJvd1VwMDE9T1hlLHUuQXJyb3dVcDEwPVJYZSx1LkFycm93VXBBWj13Zyx1LkFycm93VXBBej13Zyx1LkFycm93VXBDaXJjbGU9ZWIsdS5BcnJvd1VwRG93bj1CWGUsdS5BcnJvd1VwRnJvbURvdD1IWGUsdS5BcnJvd1VwRnJvbUxpbmU9cVhlLHUuQXJyb3dVcExlZnQ9VlhlLHUuQXJyb3dVcExlZnRGcm9tQ2lyY2xlPUtnLHUuQXJyb3dVcExlZnRGcm9tU3F1YXJlPW95LHUuQXJyb3dVcExlZnRTcXVhcmU9aHksdS5BcnJvd1VwTmFycm93V2lkZT1NZyx1LkFycm93VXBSaWdodD1qWGUsdS5BcnJvd1VwUmlnaHRGcm9tQ2lyY2xlPVFnLHUuQXJyb3dVcFJpZ2h0RnJvbVNxdWFyZT1jeSx1LkFycm93VXBSaWdodFNxdWFyZT1weSx1LkFycm93VXBTcXVhcmU9dXksdS5BcnJvd1VwVG9MaW5lPVVYZSx1LkFycm93VXBXaWRlTmFycm93PVdYZSx1LkFycm93VXBaQT16Zyx1LkFycm93VXBaYT16Zyx1LkFycm93c1VwRnJvbUxpbmU9WVhlLHUuQXN0ZXJpc2s9WlhlLHUuQXN0ZXJpc2tTcXVhcmU9ZnksdS5BdFNpZ249WFhlLHUuQXRvbT1LWGUsdS5BdWRpb0xpbmVzPVFYZSx1LkF1ZGlvV2F2ZWZvcm09SlhlLHUuQXdhcmQ9ZUtlLHUuQXhlPXRLZSx1LkF4aXMzRD1rZyx1LkF4aXMzZD1rZyx1LkJhYnk9aUtlLHUuQmFja3BhY2s9YUtlLHUuQmFkZ2U9eUtlLHUuQmFkZ2VBbGVydD1yS2UsdS5CYWRnZUNlbnQ9c0tlLHUuQmFkZ2VDaGVjaz1TZyx1LkJhZGdlRG9sbGFyU2lnbj1vS2UsdS5CYWRnZUV1cm89bEtlLHUuQmFkZ2VIZWxwPUNnLHUuQmFkZ2VJbmRpYW5SdXBlZT1uS2UsdS5CYWRnZUluZm89Y0tlLHUuQmFkZ2VKYXBhbmVzZVllbj1kS2UsdS5CYWRnZU1pbnVzPWhLZSx1LkJhZGdlUGVyY2VudD1wS2UsdS5CYWRnZVBsdXM9dUtlLHUuQmFkZ2VQb3VuZFN0ZXJsaW5nPWZLZSx1LkJhZGdlUXVlc3Rpb25NYXJrPUNnLHUuQmFkZ2VSdXNzaWFuUnVibGU9bUtlLHUuQmFkZ2VTd2lzc0ZyYW5jPWdLZSx1LkJhZGdlVHVya2lzaExpcmE9YktlLHUuQmFkZ2VYPXZLZSx1LkJhZ2dhZ2VDbGFpbT14S2UsdS5CYWxsb29uPXdLZSx1LkJhbj1NS2UsdS5CYW5hbmE9ektlLHUuQmFuZGFnZT1rS2UsdS5CYW5rbm90ZT1US2UsdS5CYW5rbm90ZUFycm93RG93bj1TS2UsdS5CYW5rbm90ZUFycm93VXA9Q0tlLHUuQmFua25vdGVYPV9LZSx1LkJhckNoYXJ0PUJnLHUuQmFyQ2hhcnQyPUhnLHUuQmFyQ2hhcnQzPU9nLHUuQmFyQ2hhcnQ0PUZnLHUuQmFyQ2hhcnRCaWc9SWcsdS5CYXJDaGFydEhvcml6b250YWw9TmcsdS5CYXJDaGFydEhvcml6b250YWxCaWc9RWcsdS5CYXJjb2RlPUxLZSx1LkJhcnJlbD0kS2UsdS5CYXNlbGluZT1BS2UsdS5CYXRoPURLZSx1LkJhdHRlcnk9UktlLHUuQmF0dGVyeUNoYXJnaW5nPUVLZSx1LkJhdHRlcnlGdWxsPVBLZSx1LkJhdHRlcnlMb3c9SUtlLHUuQmF0dGVyeU1lZGl1bT1OS2UsdS5CYXR0ZXJ5UGx1cz1GS2UsdS5CYXR0ZXJ5V2FybmluZz1PS2UsdS5CZWFrZXI9QktlLHUuQmVhbj1xS2UsdS5CZWFuT2ZmPUhLZSx1LkJlZD1VS2UsdS5CZWREb3VibGU9VktlLHUuQmVkU2luZ2xlPWpLZSx1LkJlZWY9V0tlLHUuQmVlcj1ZS2UsdS5CZWVyT2ZmPUdLZSx1LkJlbGw9dFFlLHUuQmVsbERvdD1aS2UsdS5CZWxsRWxlY3RyaWM9WEtlLHUuQmVsbE1pbnVzPUtLZSx1LkJlbGxPZmY9UUtlLHUuQmVsbFBsdXM9SktlLHUuQmVsbFJpbmc9ZVFlLHUuQmV0d2Vlbkhvcml6b25hbEVuZD1fZyx1LkJldHdlZW5Ib3Jpem9uYWxTdGFydD1UZyx1LkJldHdlZW5Ib3Jpem9udGFsRW5kPV9nLHUuQmV0d2Vlbkhvcml6b250YWxTdGFydD1UZyx1LkJldHdlZW5WZXJ0aWNhbEVuZD1hUWUsdS5CZXR3ZWVuVmVydGljYWxTdGFydD1pUWUsdS5CaWNlcHNGbGV4ZWQ9clFlLHUuQmlrZT1zUWUsdS5CaW5hcnk9blFlLHUuQmlub2N1bGFycz1vUWUsdS5CaW9oYXphcmQ9bFFlLHUuQmlyZD1jUWUsdS5CaXJkaG91c2U9ZFFlLHUuQml0Y29pbj1oUWUsdS5CbGVuZD1wUWUsdS5CbGluZHM9dVFlLHUuQmxvY2tzPW1RZSx1LkJsdWV0b290aD15UWUsdS5CbHVldG9vdGhDb25uZWN0ZWQ9ZlFlLHUuQmx1ZXRvb3RoT2ZmPWdRZSx1LkJsdWV0b290aFNlYXJjaGluZz1iUWUsdS5Cb2xkPXZRZSx1LkJvbHQ9d1FlLHUuQm9tYj14UWUsdS5Cb25lPU1RZSx1LkJvb2s9R1FlLHUuQm9va0E9elFlLHUuQm9va0FsZXJ0PWtRZSx1LkJvb2tBdWRpbz1DUWUsdS5Cb29rQ2hlY2s9U1FlLHUuQm9va0NvcHk9X1FlLHUuQm9va0Rhc2hlZD1MZyx1LkJvb2tEb3duPVRRZSx1LkJvb2tIZWFkcGhvbmVzPUxRZSx1LkJvb2tIZWFydD0kUWUsdS5Cb29rSW1hZ2U9QVFlLHUuQm9va0tleT1EUWUsdS5Cb29rTG9jaz1FUWUsdS5Cb29rTWFya2VkPVBRZSx1LkJvb2tNaW51cz1JUWUsdS5Cb29rT3Blbj1PUWUsdS5Cb29rT3BlbkNoZWNrPU5RZSx1LkJvb2tPcGVuVGV4dD1GUWUsdS5Cb29rUGx1cz1SUWUsdS5Cb29rU2VhcmNoPUJRZSx1LkJvb2tUZW1wbGF0ZT1MZyx1LkJvb2tUZXh0PUhRZSx1LkJvb2tUeXBlPXFRZSx1LkJvb2tVcD1qUWUsdS5Cb29rVXAyPVZRZSx1LkJvb2tVc2VyPVVRZSx1LkJvb2tYPVdRZSx1LkJvb2ttYXJrPVFRZSx1LkJvb2ttYXJrQ2hlY2s9WVFlLHUuQm9va21hcmtNaW51cz1aUWUsdS5Cb29rbWFya1BsdXM9WFFlLHUuQm9va21hcmtYPUtRZSx1LkJvb21Cb3g9SlFlLHUuQm90PXRKZSx1LkJvdE1lc3NhZ2VTcXVhcmU9ZUplLHUuQm90T2ZmPWFKZSx1LkJvdHRsZVdpbmU9aUplLHUuQm93QXJyb3c9ckplLHUuQm94PXNKZSx1LkJveFNlbGVjdD1TeSx1LkJveGVzPW5KZSx1LkJyYWNlcz0kZyx1LkJyYWNrZXRzPW9KZSx1LkJyYWluPWRKZSx1LkJyYWluQ2lyY3VpdD1sSmUsdS5CcmFpbkNvZz1jSmUsdS5Ccmlja1dhbGw9ZkplLHUuQnJpY2tXYWxsRmlyZT1oSmUsdS5Ccmlja1dhbGxTaGllbGQ9cEplLHUuQnJpZWZjYXNlPWJKZSx1LkJyaWVmY2FzZUJ1c2luZXNzPXVKZSx1LkJyaWVmY2FzZUNvbnZleW9yQmVsdD1tSmUsdS5CcmllZmNhc2VNZWRpY2FsPWdKZSx1LkJyaW5nVG9Gcm9udD12SmUsdS5CcnVzaD14SmUsdS5CcnVzaENsZWFuaW5nPXlKZSx1LkJ1YmJsZXM9d0plLHUuQnVnPWtKZSx1LkJ1Z09mZj1NSmUsdS5CdWdQbGF5PXpKZSx1LkJ1aWxkaW5nPUNKZSx1LkJ1aWxkaW5nMj1TSmUsdS5CdXM9VEplLHUuQnVzRnJvbnQ9X0plLHUuQ2FibGU9JEplLHUuQ2FibGVDYXI9TEplLHUuQ2FrZT1ESmUsdS5DYWtlU2xpY2U9QUplLHUuQ2FsY3VsYXRvcj1FSmUsdS5DYWxlbmRhcj1lZXQsdS5DYWxlbmRhcjE9UEplLHUuQ2FsZW5kYXJBcnJvd0Rvd249SUplLHUuQ2FsZW5kYXJBcnJvd1VwPU5KZSx1LkNhbGVuZGFyQ2hlY2s9T0plLHUuQ2FsZW5kYXJDaGVjazI9RkplLHUuQ2FsZW5kYXJDbG9jaz1SSmUsdS5DYWxlbmRhckNvZz1CSmUsdS5DYWxlbmRhckRheXM9SEplLHUuQ2FsZW5kYXJGb2xkPXFKZSx1LkNhbGVuZGFySGVhcnQ9VkplLHUuQ2FsZW5kYXJNaW51cz1VSmUsdS5DYWxlbmRhck1pbnVzMj1qSmUsdS5DYWxlbmRhck9mZj1XSmUsdS5DYWxlbmRhclBsdXM9WUplLHUuQ2FsZW5kYXJQbHVzMj1HSmUsdS5DYWxlbmRhclJhbmdlPVpKZSx1LkNhbGVuZGFyU2VhcmNoPVhKZSx1LkNhbGVuZGFyU3luYz1LSmUsdS5DYWxlbmRhclg9SkplLHUuQ2FsZW5kYXJYMj1RSmUsdS5DYWxlbmRhcnM9dGV0LHUuQ2FtZXJhPWlldCx1LkNhbWVyYU9mZj1hZXQsdS5DYW5kbGVzdGlja0NoYXJ0PVBnLHUuQ2FuZHk9bmV0LHUuQ2FuZHlDYW5lPXJldCx1LkNhbmR5T2ZmPXNldCx1LkNhbm5hYmlzPWNldCx1LkNhbm5hYmlzT2ZmPW9ldCx1LkNhcHRpb25zPUFnLHUuQ2FwdGlvbnNPZmY9ZGV0LHUuQ2FyPXVldCx1LkNhckZyb250PWhldCx1LkNhclRheGlGcm9udD1wZXQsdS5DYXJhdmFuPWZldCx1LkNhcmRTaW09bWV0LHUuQ2Fycm90PWdldCx1LkNhc2VMb3dlcj1iZXQsdS5DYXNlU2Vuc2l0aXZlPXZldCx1LkNhc2VVcHBlcj15ZXQsdS5DYXNzZXR0ZVRhcGU9eGV0LHUuQ2FzdD13ZXQsdS5DYXN0bGU9TWV0LHUuQ2F0PXpldCx1LkNjdHY9a2V0LHUuQ2hhcnRBcmVhPURnLHUuQ2hhcnRCYXI9TmcsdS5DaGFydEJhckJpZz1FZyx1LkNoYXJ0QmFyRGVjcmVhc2luZz1DZXQsdS5DaGFydEJhckluY3JlYXNpbmc9X2V0LHUuQ2hhcnRCYXJTdGFja2VkPVRldCx1LkNoYXJ0Q2FuZGxlc3RpY2s9UGcsdS5DaGFydENvbHVtbj1PZyx1LkNoYXJ0Q29sdW1uQmlnPUlnLHUuQ2hhcnRDb2x1bW5EZWNyZWFzaW5nPUxldCx1LkNoYXJ0Q29sdW1uSW5jcmVhc2luZz1GZyx1LkNoYXJ0Q29sdW1uU3RhY2tlZD0kZXQsdS5DaGFydEdhbnR0PUFldCx1LkNoYXJ0TGluZT1SZyx1LkNoYXJ0TmV0d29yaz1EZXQsdS5DaGFydE5vQXhlc0NvbHVtbj1IZyx1LkNoYXJ0Tm9BeGVzQ29sdW1uRGVjcmVhc2luZz1FZXQsdS5DaGFydE5vQXhlc0NvbHVtbkluY3JlYXNpbmc9QmcsdS5DaGFydE5vQXhlc0NvbWJpbmVkPVBldCx1LkNoYXJ0Tm9BeGVzR2FudHQ9cWcsdS5DaGFydFBpZT1WZyx1LkNoYXJ0U2NhdHRlcj1qZyx1LkNoYXJ0U3BsaW5lPUlldCx1LkNoZWNrPUJldCx1LkNoZWNrQ2hlY2s9RmV0LHUuQ2hlY2tDaXJjbGU9dGIsdS5DaGVja0NpcmNsZTI9YWIsdS5DaGVja0xpbmU9TmV0LHUuQ2hlY2tTcXVhcmU9Z3ksdS5DaGVja1NxdWFyZTI9YnksdS5DaGVmSGF0PU9ldCx1LkNoZXJyeT1SZXQsdS5DaGVzc0Jpc2hvcD1IZXQsdS5DaGVzc0tpbmc9cWV0LHUuQ2hlc3NLbmlnaHQ9VWV0LHUuQ2hlc3NQYXduPVZldCx1LkNoZXNzUXVlZW49amV0LHUuQ2hlc3NSb29rPVdldCx1LkNoZXZyb25Eb3duPUdldCx1LkNoZXZyb25Eb3duQ2lyY2xlPWliLHUuQ2hldnJvbkRvd25TcXVhcmU9dnksdS5DaGV2cm9uRmlyc3Q9WWV0LHUuQ2hldnJvbkxhc3Q9WmV0LHUuQ2hldnJvbkxlZnQ9WGV0LHUuQ2hldnJvbkxlZnRDaXJjbGU9cmIsdS5DaGV2cm9uTGVmdFNxdWFyZT15eSx1LkNoZXZyb25SaWdodD1LZXQsdS5DaGV2cm9uUmlnaHRDaXJjbGU9c2IsdS5DaGV2cm9uUmlnaHRTcXVhcmU9eHksdS5DaGV2cm9uVXA9UWV0LHUuQ2hldnJvblVwQ2lyY2xlPW5iLHUuQ2hldnJvblVwU3F1YXJlPXd5LHUuQ2hldnJvbnNEb3duPWV0dCx1LkNoZXZyb25zRG93blVwPUpldCx1LkNoZXZyb25zTGVmdD1pdHQsdS5DaGV2cm9uc0xlZnRSaWdodD1hdHQsdS5DaGV2cm9uc0xlZnRSaWdodEVsbGlwc2lzPXR0dCx1LkNoZXZyb25zUmlnaHQ9c3R0LHUuQ2hldnJvbnNSaWdodExlZnQ9cnR0LHUuQ2hldnJvbnNVcD1udHQsdS5DaGV2cm9uc1VwRG93bj1vdHQsdS5DaHJvbWU9VWcsdS5DaHJvbWl1bT1VZyx1LkNodXJjaD1jdHQsdS5DaWdhcmV0dGU9ZHR0LHUuQ2lnYXJldHRlT2ZmPWx0dCx1LkNpcmNsZT1TdHQsdS5DaXJjbGVBbGVydD1XZyx1LkNpcmNsZUFycm93RG93bj1HZyx1LkNpcmNsZUFycm93TGVmdD1ZZyx1LkNpcmNsZUFycm93T3V0RG93bkxlZnQ9WmcsdS5DaXJjbGVBcnJvd091dERvd25SaWdodD1YZyx1LkNpcmNsZUFycm93T3V0VXBMZWZ0PUtnLHUuQ2lyY2xlQXJyb3dPdXRVcFJpZ2h0PVFnLHUuQ2lyY2xlQXJyb3dSaWdodD1KZyx1LkNpcmNsZUFycm93VXA9ZWIsdS5DaXJjbGVDaGVjaz1hYix1LkNpcmNsZUNoZWNrQmlnPXRiLHUuQ2lyY2xlQ2hldnJvbkRvd249aWIsdS5DaXJjbGVDaGV2cm9uTGVmdD1yYix1LkNpcmNsZUNoZXZyb25SaWdodD1zYix1LkNpcmNsZUNoZXZyb25VcD1uYix1LkNpcmNsZURhc2hlZD1odHQsdS5DaXJjbGVEaXZpZGU9b2IsdS5DaXJjbGVEb2xsYXJTaWduPXB0dCx1LkNpcmNsZURvdD1mdHQsdS5DaXJjbGVEb3REYXNoZWQ9dXR0LHUuQ2lyY2xlRWxsaXBzaXM9bXR0LHUuQ2lyY2xlRXF1YWw9Z3R0LHUuQ2lyY2xlRmFkaW5nQXJyb3dVcD1idHQsdS5DaXJjbGVGYWRpbmdQbHVzPXZ0dCx1LkNpcmNsZUdhdWdlPWxiLHUuQ2lyY2xlSGVscD1nbCx1LkNpcmNsZU1pbnVzPWNiLHUuQ2lyY2xlT2ZmPXl0dCx1LkNpcmNsZVBhcmtpbmc9aGIsdS5DaXJjbGVQYXJraW5nT2ZmPWRiLHUuQ2lyY2xlUGF1c2U9cGIsdS5DaXJjbGVQZXJjZW50PXViLHUuQ2lyY2xlUGlsZT14dHQsdS5DaXJjbGVQbGF5PWZiLHUuQ2lyY2xlUGx1cz1tYix1LkNpcmNsZVBvdW5kU3Rlcmxpbmc9d3R0LHUuQ2lyY2xlUG93ZXI9Z2IsdS5DaXJjbGVRdWVzdGlvbk1hcms9Z2wsdS5DaXJjbGVTbGFzaD1NdHQsdS5DaXJjbGVTbGFzaDI9YmIsdS5DaXJjbGVTbGFzaGVkPWJiLHUuQ2lyY2xlU21hbGw9enR0LHUuQ2lyY2xlU3Rhcj1rdHQsdS5DaXJjbGVTdG9wPXZiLHUuQ2lyY2xlVXNlcj14Yix1LkNpcmNsZVVzZXJSb3VuZD15Yix1LkNpcmNsZVg9d2IsdS5DaXJjdWl0Qm9hcmQ9Q3R0LHUuQ2l0cnVzPV90dCx1LkNsYXBwZXJib2FyZD1UdHQsdS5DbGlwYm9hcmQ9UnR0LHUuQ2xpcGJvYXJkQ2hlY2s9THR0LHUuQ2xpcGJvYXJkQ2xvY2s9JHR0LHUuQ2xpcGJvYXJkQ29weT1BdHQsdS5DbGlwYm9hcmRFZGl0PXpiLHUuQ2xpcGJvYXJkTGlzdD1EdHQsdS5DbGlwYm9hcmRNaW51cz1FdHQsdS5DbGlwYm9hcmRQYXN0ZT1QdHQsdS5DbGlwYm9hcmRQZW49emIsdS5DbGlwYm9hcmRQZW5MaW5lPU1iLHUuQ2xpcGJvYXJkUGx1cz1JdHQsdS5DbGlwYm9hcmRTaWduYXR1cmU9TWIsdS5DbGlwYm9hcmRUeXBlPU50dCx1LkNsaXBib2FyZFg9RnR0LHUuQ2xvY2s9aTF0LHUuQ2xvY2sxPU90dCx1LkNsb2NrMTA9QnR0LHUuQ2xvY2sxMT1IdHQsdS5DbG9jazEyPXF0dCx1LkNsb2NrMj1WdHQsdS5DbG9jazM9anR0LHUuQ2xvY2s0PVV0dCx1LkNsb2NrNT1XdHQsdS5DbG9jazY9R3R0LHUuQ2xvY2s3PVl0dCx1LkNsb2NrOD1adHQsdS5DbG9jazk9WHR0LHUuQ2xvY2tBbGVydD1RdHQsdS5DbG9ja0Fycm93RG93bj1LdHQsdS5DbG9ja0Fycm93VXA9SnR0LHUuQ2xvY2tDaGVjaz1lMXQsdS5DbG9ja0ZhZGluZz10MXQsdS5DbG9ja1BsdXM9YTF0LHUuQ2xvc2VkQ2FwdGlvbj1yMXQsdS5DbG91ZD1NMXQsdS5DbG91ZEFsZXJ0PXMxdCx1LkNsb3VkQmFja3VwPW4xdCx1LkNsb3VkQ2hlY2s9bzF0LHUuQ2xvdWRDb2c9bDF0LHUuQ2xvdWREb3dubG9hZD1rYix1LkNsb3VkRHJpenpsZT1jMXQsdS5DbG91ZEZvZz1kMXQsdS5DbG91ZEhhaWw9aDF0LHUuQ2xvdWRMaWdodG5pbmc9dTF0LHUuQ2xvdWRNb29uPWYxdCx1LkNsb3VkTW9vblJhaW49cDF0LHUuQ2xvdWRPZmY9bTF0LHUuQ2xvdWRSYWluPWIxdCx1LkNsb3VkUmFpbldpbmQ9ZzF0LHUuQ2xvdWRTbm93PXYxdCx1LkNsb3VkU3VuPXgxdCx1LkNsb3VkU3VuUmFpbj15MXQsdS5DbG91ZFN5bmM9dzF0LHUuQ2xvdWRVcGxvYWQ9U2IsdS5DbG91ZHk9ejF0LHUuQ2xvdmVyPWsxdCx1LkNsdWI9UzF0LHUuQ29kZT1DMXQsdS5Db2RlMj1DYix1LkNvZGVTcXVhcmU9TXksdS5Db2RlWG1sPUNiLHUuQ29kZXBlbj1fMXQsdS5Db2Rlc2FuZGJveD1UMXQsdS5Db2ZmZWU9TDF0LHUuQ29nPSQxdCx1LkNvaW5zPUExdCx1LkNvbHVtbnM9X2IsdS5Db2x1bW5zMj1fYix1LkNvbHVtbnMzPVRiLHUuQ29sdW1uczNDb2c9YmwsdS5Db2x1bW5zND1EMXQsdS5Db2x1bW5zU2V0dGluZ3M9YmwsdS5Db21iaW5lPUUxdCx1LkNvbW1hbmQ9UDF0LHUuQ29tcGFzcz1JMXQsdS5Db21wb25lbnQ9TjF0LHUuQ29tcHV0ZXI9RjF0LHUuQ29uY2llcmdlQmVsbD1PMXQsdS5Db25lPVIxdCx1LkNvbnN0cnVjdGlvbj1CMXQsdS5Db250YWN0PUgxdCx1LkNvbnRhY3QyPUxiLHUuQ29udGFjdFJvdW5kPUxiLHUuQ29udGFpbmVyPXExdCx1LkNvbnRyYXN0PWoxdCx1LkNvb2tpZT1WMXQsdS5Db29raW5nUG90PVUxdCx1LkNvcHk9SzF0LHUuQ29weUNoZWNrPVcxdCx1LkNvcHlNaW51cz1HMXQsdS5Db3B5UGx1cz1ZMXQsdS5Db3B5U2xhc2g9WjF0LHUuQ29weVg9WDF0LHUuQ29weWxlZnQ9UTF0LHUuQ29weXJpZ2h0PUoxdCx1LkNvcm5lckRvd25MZWZ0PWUydCx1LkNvcm5lckRvd25SaWdodD10MnQsdS5Db3JuZXJMZWZ0RG93bj1hMnQsdS5Db3JuZXJMZWZ0VXA9aTJ0LHUuQ29ybmVyUmlnaHREb3duPXIydCx1LkNvcm5lclJpZ2h0VXA9czJ0LHUuQ29ybmVyVXBMZWZ0PW4ydCx1LkNvcm5lclVwUmlnaHQ9bzJ0LHUuQ3B1PWwydCx1LkNyZWF0aXZlQ29tbW9ucz1jMnQsdS5DcmVkaXRDYXJkPWQydCx1LkNyb2lzc2FudD1oMnQsdS5Dcm9wPXAydCx1LkNyb3NzPXUydCx1LkNyb3NzaGFpcj1mMnQsdS5Dcm93bj1tMnQsdS5DdWJvaWQ9ZzJ0LHUuQ3VwU29kYT1iMnQsdS5DdXJseUJyYWNlcz0kZyx1LkN1cnJlbmN5PXkydCx1LkN5bGluZGVyPXYydCx1LkRhbT13MnQsdS5EYXRhYmFzZT1rMnQsdS5EYXRhYmFzZUJhY2t1cD14MnQsdS5EYXRhYmFzZVNlYXJjaD1NMnQsdS5EYXRhYmFzZVphcD16MnQsdS5EZWNpbWFsc0Fycm93TGVmdD1TMnQsdS5EZWNpbWFsc0Fycm93UmlnaHQ9QzJ0LHUuRGVsZXRlPV8ydCx1LkRlc3NlcnQ9VDJ0LHUuRGlhbWV0ZXI9TDJ0LHUuRGlhbW9uZD1EMnQsdS5EaWFtb25kTWludXM9JDJ0LHUuRGlhbW9uZFBlcmNlbnQ9JGIsdS5EaWFtb25kUGx1cz1BMnQsdS5EaWNlMT1FMnQsdS5EaWNlMj1QMnQsdS5EaWNlMz1JMnQsdS5EaWNlND1OMnQsdS5EaWNlNT1GMnQsdS5EaWNlNj1PMnQsdS5EaWNlcz1SMnQsdS5EaWZmPUIydCx1LkRpc2M9ajJ0LHUuRGlzYzI9SDJ0LHUuRGlzYzM9cTJ0LHUuRGlzY0FsYnVtPVYydCx1LkRpdmlkZT1VMnQsdS5EaXZpZGVDaXJjbGU9b2IsdS5EaXZpZGVTcXVhcmU9Q3ksdS5EbmE9RzJ0LHUuRG5hT2ZmPVcydCx1LkRvY2s9WDJ0LHUuRG9nPVkydCx1LkRvbGxhclNpZ249WjJ0LHUuRG9udXQ9SzJ0LHUuRG9vckNsb3NlZD1KMnQsdS5Eb29yQ2xvc2VkTG9ja2VkPVEydCx1LkRvb3JPcGVuPWVhdCx1LkRvdD10YXQsdS5Eb3RTcXVhcmU9X3ksdS5Eb3dubG9hZD1hYXQsdS5Eb3dubG9hZENsb3VkPWtiLHUuRHJhZnRpbmdDb21wYXNzPWlhdCx1LkRyYW1hPXNhdCx1LkRyaWJiYmxlPXJhdCx1LkRyaWxsPW5hdCx1LkRyb25lPW9hdCx1LkRyb3BsZXQ9Y2F0LHUuRHJvcGxldE9mZj1sYXQsdS5Ecm9wbGV0cz1kYXQsdS5EcnVtPWhhdCx1LkRydW1zdGljaz1wYXQsdS5EdW1iYmVsbD11YXQsdS5FYXI9Z2F0LHUuRWFyT2ZmPWZhdCx1LkVhcnRoPUFiLHUuRWFydGhMb2NrPW1hdCx1LkVjbGlwc2U9YmF0LHUuRWRpdD1ybyx1LkVkaXQyPVZ2LHUuRWRpdDM9cXYsdS5FZ2c9eGF0LHUuRWdnRnJpZWQ9dmF0LHUuRWdnT2ZmPXlhdCx1LkVsbGlwc2lzPUViLHUuRWxsaXBzaXNWZXJ0aWNhbD1EYix1LkVxdWFsPXphdCx1LkVxdWFsQXBwcm94aW1hdGVseT13YXQsdS5FcXVhbE5vdD1NYXQsdS5FcXVhbFNxdWFyZT1UeSx1LkVyYXNlcj1TYXQsdS5FdGhlcm5ldFBvcnQ9a2F0LHUuRXVybz1DYXQsdS5FdkNoYXJnZXI9X2F0LHUuRXhwYW5kPVRhdCx1LkV4dGVybmFsTGluaz1MYXQsdS5FeWU9QWF0LHUuRXllQ2xvc2VkPSRhdCx1LkV5ZU9mZj1EYXQsdS5GYWNlYm9vaz1FYXQsdS5GYWN0b3J5PVBhdCx1LkZhbj1JYXQsdS5GYXN0Rm9yd2FyZD1OYXQsdS5GZWF0aGVyPUZhdCx1LkZlbmNlPU9hdCx1LkZlcnJpc1doZWVsPVJhdCx1LkZpZ21hPUJhdCx1LkZpbGU9bWl0LHUuRmlsZUFyY2hpdmU9SGF0LHUuRmlsZUF1ZGlvPXZsLHUuRmlsZUF1ZGlvMj12bCx1LkZpbGVBeGlzM0Q9UGIsdS5GaWxlQXhpczNkPVBiLHUuRmlsZUJhZGdlPUliLHUuRmlsZUJhZGdlMj1JYix1LkZpbGVCYXJDaGFydD1PYix1LkZpbGVCYXJDaGFydDI9UmIsdS5GaWxlQm94PXFhdCx1LkZpbGVCcmFjZXM9RmIsdS5GaWxlQnJhY2VzQ29ybmVyPU5iLHUuRmlsZUNoYXJ0Q29sdW1uPVJiLHUuRmlsZUNoYXJ0Q29sdW1uSW5jcmVhc2luZz1PYix1LkZpbGVDaGFydExpbmU9QmIsdS5GaWxlQ2hhcnRQaWU9SGIsdS5GaWxlQ2hlY2s9amF0LHUuRmlsZUNoZWNrMj1xYix1LkZpbGVDaGVja0Nvcm5lcj1xYix1LkZpbGVDbG9jaz1WYXQsdS5GaWxlQ29kZT1VYXQsdS5GaWxlQ29kZTI9VmIsdS5GaWxlQ29kZUNvcm5lcj1WYix1LkZpbGVDb2c9amIsdS5GaWxlQ29nMj1qYix1LkZpbGVEaWZmPVdhdCx1LkZpbGVEaWdpdD1HYXQsdS5GaWxlRG93bj1ZYXQsdS5GaWxlRWRpdD1YYix1LkZpbGVFeGNsYW1hdGlvblBvaW50PVViLHUuRmlsZUhlYWRwaG9uZT12bCx1LkZpbGVIZWFydD1aYXQsdS5GaWxlSW1hZ2U9WGF0LHUuRmlsZUlucHV0PUthdCx1LkZpbGVKc29uPUZiLHUuRmlsZUpzb24yPU5iLHUuRmlsZUtleT1XYix1LkZpbGVLZXkyPVdiLHUuRmlsZUxpbmVDaGFydD1CYix1LkZpbGVMb2NrPUdiLHUuRmlsZUxvY2syPUdiLHUuRmlsZU1pbnVzPVFhdCx1LkZpbGVNaW51czI9WWIsdS5GaWxlTWludXNDb3JuZXI9WWIsdS5GaWxlTXVzaWM9SmF0LHUuRmlsZU91dHB1dD1laXQsdS5GaWxlUGVuPVhiLHUuRmlsZVBlbkxpbmU9WmIsdS5GaWxlUGllQ2hhcnQ9SGIsdS5GaWxlUGxheT1LYix1LkZpbGVQbHVzPXRpdCx1LkZpbGVQbHVzMj1RYix1LkZpbGVQbHVzQ29ybmVyPVFiLHUuRmlsZVF1ZXN0aW9uPUpiLHUuRmlsZVF1ZXN0aW9uTWFyaz1KYix1LkZpbGVTY2FuPWFpdCx1LkZpbGVTZWFyY2g9aWl0LHUuRmlsZVNlYXJjaDI9ZXYsdS5GaWxlU2VhcmNoQ29ybmVyPWV2LHUuRmlsZVNpZ25hbD10dix1LkZpbGVTaWduYXR1cmU9WmIsdS5GaWxlU2xpZGVycz1yaXQsdS5GaWxlU3ByZWFkc2hlZXQ9c2l0LHUuRmlsZVN0YWNrPW5pdCx1LkZpbGVTeW1saW5rPW9pdCx1LkZpbGVUZXJtaW5hbD1saXQsdS5GaWxlVGV4dD1jaXQsdS5GaWxlVHlwZT1kaXQsdS5GaWxlVHlwZTI9YXYsdS5GaWxlVHlwZUNvcm5lcj1hdix1LkZpbGVVcD1oaXQsdS5GaWxlVXNlcj1waXQsdS5GaWxlVmlkZW89S2IsdS5GaWxlVmlkZW8yPWl2LHUuRmlsZVZpZGVvQ2FtZXJhPWl2LHUuRmlsZVZvbHVtZT11aXQsdS5GaWxlVm9sdW1lMj10dix1LkZpbGVXYXJuaW5nPVViLHUuRmlsZVg9Zml0LHUuRmlsZVgyPXJ2LHUuRmlsZVhDb3JuZXI9cnYsdS5GaWxlcz1naXQsdS5GaWxtPWJpdCx1LkZpbHRlcj1jdix1LkZpbHRlclg9bHYsdS5GaW5nZXJwcmludD1zdix1LkZpbmdlcnByaW50UGF0dGVybj1zdix1LkZpcmVFeHRpbmd1aXNoZXI9dml0LHUuRmlzaD13aXQsdS5GaXNoT2ZmPXlpdCx1LkZpc2hTeW1ib2w9eGl0LHUuRmlzaGluZ0hvb2s9TWl0LHUuRmxhZz1DaXQsdS5GbGFnT2ZmPXppdCx1LkZsYWdUcmlhbmdsZUxlZnQ9a2l0LHUuRmxhZ1RyaWFuZ2xlUmlnaHQ9U2l0LHUuRmxhbWU9VGl0LHUuRmxhbWVLaW5kbGluZz1faXQsdS5GbGFzaGxpZ2h0PSRpdCx1LkZsYXNobGlnaHRPZmY9TGl0LHUuRmxhc2tDb25pY2FsPURpdCx1LkZsYXNrQ29uaWNhbE9mZj1BaXQsdS5GbGFza1JvdW5kPUVpdCx1LkZsaXBIb3Jpem9udGFsPUlpdCx1LkZsaXBIb3Jpem9udGFsMj1QaXQsdS5GbGlwVmVydGljYWw9Rml0LHUuRmxpcFZlcnRpY2FsMj1OaXQsdS5GbG93ZXI9Uml0LHUuRmxvd2VyMj1PaXQsdS5Gb2N1cz1CaXQsdS5Gb2xkSG9yaXpvbnRhbD1IaXQsdS5Gb2xkVmVydGljYWw9cWl0LHUuRm9sZGVyPWdydCx1LkZvbGRlckFyY2hpdmU9aml0LHUuRm9sZGVyQ2hlY2s9Vml0LHUuRm9sZGVyQ2xvY2s9VWl0LHUuRm9sZGVyQ2xvc2VkPVdpdCx1LkZvbGRlckNvZGU9R2l0LHUuRm9sZGVyQ29nPW52LHUuRm9sZGVyQ29nMj1udix1LkZvbGRlckRvdD1ZaXQsdS5Gb2xkZXJEb3duPVppdCx1LkZvbGRlckVkaXQ9b3YsdS5Gb2xkZXJHaXQ9S2l0LHUuRm9sZGVyR2l0Mj1YaXQsdS5Gb2xkZXJIZWFydD1RaXQsdS5Gb2xkZXJJbnB1dD1KaXQsdS5Gb2xkZXJLYW5iYW49ZXJ0LHUuRm9sZGVyS2V5PXRydCx1LkZvbGRlckxvY2s9YXJ0LHUuRm9sZGVyTWludXM9aXJ0LHUuRm9sZGVyT3Blbj1zcnQsdS5Gb2xkZXJPcGVuRG90PXJydCx1LkZvbGRlck91dHB1dD1ucnQsdS5Gb2xkZXJQZW49b3YsdS5Gb2xkZXJQbHVzPW9ydCx1LkZvbGRlclJvb3Q9bHJ0LHUuRm9sZGVyU2VhcmNoPWRydCx1LkZvbGRlclNlYXJjaDI9Y3J0LHUuRm9sZGVyU3ltbGluaz1ocnQsdS5Gb2xkZXJTeW5jPXBydCx1LkZvbGRlclRyZWU9dXJ0LHUuRm9sZGVyVXA9ZnJ0LHUuRm9sZGVyWD1tcnQsdS5Gb2xkZXJzPWJydCx1LkZvb3RwcmludHM9eXJ0LHUuRm9ya0tuaWZlPXl4LHUuRm9ya0tuaWZlQ3Jvc3NlZD12eCx1LkZvcmtsaWZ0PXZydCx1LkZvcm09eHJ0LHUuRm9ybUlucHV0PVV2LHUuRm9yd2FyZD13cnQsdS5GcmFtZT1NcnQsdS5GcmFtZXI9enJ0LHUuRnJvd249a3J0LHUuRnVlbD1TcnQsdS5GdWxsc2NyZWVuPUNydCx1LkZ1bmN0aW9uU3F1YXJlPUx5LHUuRnVubmVsPWN2LHUuRnVubmVsUGx1cz1fcnQsdS5GdW5uZWxYPWx2LHUuR2FsbGVyeUhvcml6b250YWw9THJ0LHUuR2FsbGVyeUhvcml6b250YWxFbmQ9VHJ0LHUuR2FsbGVyeVRodW1ibmFpbHM9JHJ0LHUuR2FsbGVyeVZlcnRpY2FsPURydCx1LkdhbGxlcnlWZXJ0aWNhbEVuZD1BcnQsdS5HYW1lcGFkPUlydCx1LkdhbWVwYWQyPUVydCx1LkdhbWVwYWREaXJlY3Rpb25hbD1QcnQsdS5HYW50dENoYXJ0PXFnLHUuR2FudHRDaGFydFNxdWFyZT1NbCx1LkdhdWdlPU5ydCx1LkdhdWdlQ2lyY2xlPWxiLHUuR2F2ZWw9RnJ0LHUuR2VtPU9ydCx1Lkdlb3JnaWFuTGFyaT1ScnQsdS5HaG9zdD1CcnQsdS5HaWZ0PVZydCx1LkdpdEJyYW5jaD1qcnQsdS5HaXRCcmFuY2hNaW51cz1IcnQsdS5HaXRCcmFuY2hQbHVzPXFydCx1LkdpdENvbW1pdD1kdix1LkdpdENvbW1pdEhvcml6b250YWw9ZHYsdS5HaXRDb21taXRWZXJ0aWNhbD1VcnQsdS5HaXRDb21wYXJlPUdydCx1LkdpdENvbXBhcmVBcnJvd3M9V3J0LHUuR2l0Rm9yaz1ZcnQsdS5HaXRHcmFwaD1acnQsdS5HaXRNZXJnZT1YcnQsdS5HaXRQdWxsUmVxdWVzdD1hc3QsdS5HaXRQdWxsUmVxdWVzdEFycm93PUtydCx1LkdpdFB1bGxSZXF1ZXN0Q2xvc2VkPVFydCx1LkdpdFB1bGxSZXF1ZXN0Q3JlYXRlPWVzdCx1LkdpdFB1bGxSZXF1ZXN0Q3JlYXRlQXJyb3c9SnJ0LHUuR2l0UHVsbFJlcXVlc3REcmFmdD10c3QsdS5HaXRodWI9aXN0LHUuR2l0bGFiPXJzdCx1LkdsYXNzV2F0ZXI9c3N0LHUuR2xhc3Nlcz1uc3QsdS5HbG9iZT1sc3QsdS5HbG9iZTI9QWIsdS5HbG9iZUxvY2s9b3N0LHUuR2xvYmVYPWNzdCx1LkdvYWw9ZHN0LHUuR3B1PWhzdCx1LkdyYWI9bXYsdS5HcmFkdWF0aW9uQ2FwPXBzdCx1LkdyYXBlPXVzdCx1LkdyaWQ9eWwsdS5HcmlkMlgyPWZ2LHUuR3JpZDJYMkNoZWNrPWh2LHUuR3JpZDJYMlBsdXM9cHYsdS5HcmlkMlgyWD11dix1LkdyaWQyeDI9ZnYsdS5HcmlkMngyQ2hlY2s9aHYsdS5HcmlkMngyUGx1cz1wdix1LkdyaWQyeDJYPXV2LHUuR3JpZDNYMz15bCx1LkdyaWQzeDI9ZnN0LHUuR3JpZDN4Mz15bCx1LkdyaXA9YnN0LHUuR3JpcEhvcml6b250YWw9bXN0LHUuR3JpcFZlcnRpY2FsPWdzdCx1Lkdyb3VwPXZzdCx1Lkd1aXRhcj15c3QsdS5IYW09eHN0LHUuSGFtYnVyZ2VyPXdzdCx1LkhhbW1lcj1Nc3QsdS5IYW5kPVRzdCx1LkhhbmRDb2lucz16c3QsdS5IYW5kRmlzdD1rc3QsdS5IYW5kR3JhYj1tdix1LkhhbmRIZWFydD1Tc3QsdS5IYW5kSGVscGluZz1ndix1LkhhbmRNZXRhbD1Dc3QsdS5IYW5kUGxhdHRlcj1fc3QsdS5IYW5kYmFnPUxzdCx1LkhhbmRzaGFrZT0kc3QsdS5IYXJkRHJpdmU9RXN0LHUuSGFyZERyaXZlRG93bmxvYWQ9QXN0LHUuSGFyZERyaXZlVXBsb2FkPURzdCx1LkhhcmRIYXQ9UHN0LHUuSGFzaD1Jc3QsdS5IYXRHbGFzc2VzPU5zdCx1LkhhemU9RnN0LHUuSGQ9T3N0LHUuSGRtaVBvcnQ9UnN0LHUuSGVhZGluZz1Xc3QsdS5IZWFkaW5nMT1Cc3QsdS5IZWFkaW5nMj1Ic3QsdS5IZWFkaW5nMz1xc3QsdS5IZWFkaW5nND1Wc3QsdS5IZWFkaW5nNT1qc3QsdS5IZWFkaW5nNj1Vc3QsdS5IZWFkcGhvbmVPZmY9R3N0LHUuSGVhZHBob25lcz1Zc3QsdS5IZWFkc2V0PVhzdCx1LkhlYXJ0PWFudCx1LkhlYXJ0Q3JhY2s9WnN0LHUuSGVhcnRIYW5kc2hha2U9S3N0LHUuSGVhcnRNaW51cz1Rc3QsdS5IZWFydE9mZj1Kc3QsdS5IZWFydFBsdXM9dG50LHUuSGVhcnRQdWxzZT1lbnQsdS5IZWF0ZXI9aW50LHUuSGVsaWNvcHRlcj1ybnQsdS5IZWxwQ2lyY2xlPWdsLHUuSGVscGluZ0hhbmQ9Z3YsdS5IZXhhZ29uPXNudCx1LkhpZ2hsaWdodGVyPW5udCx1Lkhpc3Rvcnk9b250LHUuSG9tZT1idix1LkhvcD1sbnQsdS5Ib3BPZmY9Y250LHUuSG9zcGl0YWw9ZG50LHUuSG90ZWw9aG50LHUuSG91cmdsYXNzPXBudCx1LkhvdXNlPWJ2LHUuSG91c2VIZWFydD11bnQsdS5Ib3VzZVBsdWc9Zm50LHUuSG91c2VQbHVzPW1udCx1LkhvdXNlV2lmaT1nbnQsdS5JY2VDcmVhbT15dix1LkljZUNyZWFtMj12dix1LkljZUNyZWFtQm93bD12dix1LkljZUNyZWFtQ29uZT15dix1LklkQ2FyZD12bnQsdS5JZENhcmRMYW55YXJkPWJudCx1LkltYWdlPVNudCx1LkltYWdlRG93bj15bnQsdS5JbWFnZU1pbnVzPXhudCx1LkltYWdlT2ZmPXdudCx1LkltYWdlUGxheT1NbnQsdS5JbWFnZVBsdXM9em50LHUuSW1hZ2VVcD1rbnQsdS5JbWFnZVVwc2NhbGU9Q250LHUuSW1hZ2VzPV9udCx1LkltcG9ydD1UbnQsdS5JbmJveD1MbnQsdS5JbmRlbnQ9d2wsdS5JbmRlbnREZWNyZWFzZT14bCx1LkluZGVudEluY3JlYXNlPXdsLHUuSW5kaWFuUnVwZWU9JG50LHUuSW5maW5pdHk9QW50LHUuSW5mbz1EbnQsdS5JbnNwZWN0PUl5LHUuSW5zcGVjdGlvblBhbmVsPUVudCx1Lkluc3RhZ3JhbT1QbnQsdS5JdGFsaWM9Tm50LHUuSXRlcmF0aW9uQ2N3PUludCx1Lkl0ZXJhdGlvbkN3PUZudCx1LkphcGFuZXNlWWVuPU9udCx1LkpveXN0aWNrPVJudCx1LkthbmJhbj1CbnQsdS5LYW5iYW5TcXVhcmU9JHksdS5LYW5iYW5TcXVhcmVEYXNoZWQ9enksdS5LYXlhaz1IbnQsdS5LZXk9am50LHUuS2V5Um91bmQ9cW50LHUuS2V5U3F1YXJlPVZudCx1LktleWJvYXJkPUdudCx1LktleWJvYXJkTXVzaWM9VW50LHUuS2V5Ym9hcmRPZmY9V250LHUuTGFtcD1KbnQsdS5MYW1wQ2VpbGluZz1ZbnQsdS5MYW1wRGVzaz1abnQsdS5MYW1wRmxvb3I9WG50LHUuTGFtcFdhbGxEb3duPUtudCx1LkxhbXBXYWxsVXA9UW50LHUuTGFuZFBsb3Q9dG90LHUuTGFuZG1hcms9ZW90LHUuTGFuZ3VhZ2VzPWFvdCx1LkxhcHRvcD1yb3QsdS5MYXB0b3AyPXh2LHUuTGFwdG9wTWluaW1hbD14dix1LkxhcHRvcE1pbmltYWxDaGVjaz1pb3QsdS5MYXNzbz1ub3QsdS5MYXNzb1NlbGVjdD1zb3QsdS5MYXVnaD1vb3QsdS5MYXllcnM9d3YsdS5MYXllcnMyPWxvdCx1LkxheWVyczM9d3YsdS5MYXllcnNQbHVzPWNvdCx1LkxheW91dD1Idix1LkxheW91dERhc2hib2FyZD1kb3QsdS5MYXlvdXRHcmlkPWhvdCx1LkxheW91dExpc3Q9cG90LHUuTGF5b3V0UGFuZWxMZWZ0PXVvdCx1LkxheW91dFBhbmVsVG9wPWZvdCx1LkxheW91dFRlbXBsYXRlPW1vdCx1LkxlYWY9Z290LHUuTGVhZnlHcmVlbj1ib3QsdS5MZWN0ZXJuPXZvdCx1LkxldHRlclRleHQ9aXgsdS5MaWJyYXJ5PXhvdCx1LkxpYnJhcnlCaWc9eW90LHUuTGlicmFyeVNxdWFyZT1BeSx1LkxpZmVCdW95PXdvdCx1LkxpZ2F0dXJlPU1vdCx1LkxpZ2h0YnVsYj1rb3QsdS5MaWdodGJ1bGJPZmY9em90LHUuTGluZUNoYXJ0PVJnLHUuTGluZVNxdWlnZ2xlPVNvdCx1Lkxpbms9VG90LHUuTGluazI9X290LHUuTGluazJPZmY9Q290LHUuTGlua2VkaW49TG90LHUuTGlzdD1Zb3QsdS5MaXN0Q2hlY2s9JG90LHUuTGlzdENoZWNrcz1Bb3QsdS5MaXN0Q2hldnJvbnNEb3duVXA9RG90LHUuTGlzdENoZXZyb25zVXBEb3duPUVvdCx1Lkxpc3RDb2xsYXBzZT1Qb3QsdS5MaXN0RW5kPUlvdCx1Lkxpc3RGaWx0ZXI9Rm90LHUuTGlzdEZpbHRlclBsdXM9Tm90LHUuTGlzdEluZGVudERlY3JlYXNlPXhsLHUuTGlzdEluZGVudEluY3JlYXNlPXdsLHUuTGlzdE1pbnVzPU9vdCx1Lkxpc3RNdXNpYz1Sb3QsdS5MaXN0T3JkZXJlZD1Cb3QsdS5MaXN0UGx1cz1Ib3QsdS5MaXN0UmVzdGFydD1xb3QsdS5MaXN0U3RhcnQ9Vm90LHUuTGlzdFRvZG89am90LHUuTGlzdFRyZWU9VW90LHUuTGlzdFZpZGVvPVdvdCx1Lkxpc3RYPUdvdCx1LkxvYWRlcj1ab3QsdS5Mb2FkZXIyPU12LHUuTG9hZGVyQ2lyY2xlPU12LHUuTG9hZGVyUGlud2hlZWw9WG90LHUuTG9jYXRlPUpvdCx1LkxvY2F0ZUZpeGVkPUtvdCx1LkxvY2F0ZU9mZj1Rb3QsdS5Mb2NhdGlvbkVkaXQ9Q3YsdS5Mb2NrPXQwdCx1LkxvY2tLZXlob2xlPWUwdCx1LkxvY2tLZXlob2xlT3Blbj16dix1LkxvY2tPcGVuPWt2LHUuTG9nSW49YTB0LHUuTG9nT3V0PXIwdCx1LkxvZ3M9aTB0LHUuTG9sbGlwb3A9czB0LHUuTHVnZ2FnZT1uMHQsdS5NU3F1YXJlPUR5LHUuTWFnbmV0PW8wdCx1Lk1haWw9ZjB0LHUuTWFpbENoZWNrPWwwdCx1Lk1haWxNaW51cz1jMHQsdS5NYWlsT3Blbj1kMHQsdS5NYWlsUGx1cz1oMHQsdS5NYWlsUXVlc3Rpb249U3YsdS5NYWlsUXVlc3Rpb25NYXJrPVN2LHUuTWFpbFNlYXJjaD1wMHQsdS5NYWlsV2FybmluZz11MHQsdS5NYWlsWD1tMHQsdS5NYWlsYm94PWcwdCx1Lk1haWxzPWIwdCx1Lk1hcD1EMHQsdS5NYXBNaW51cz12MHQsdS5NYXBQaW49TDB0LHUuTWFwUGluQ2hlY2s9eDB0LHUuTWFwUGluQ2hlY2tJbnNpZGU9eTB0LHUuTWFwUGluSG91c2U9dzB0LHUuTWFwUGluTWludXM9ejB0LHUuTWFwUGluTWludXNJbnNpZGU9TTB0LHUuTWFwUGluT2ZmPWswdCx1Lk1hcFBpblBlbj1Ddix1Lk1hcFBpblBsdXM9QzB0LHUuTWFwUGluUGx1c0luc2lkZT1TMHQsdS5NYXBQaW5YPVQwdCx1Lk1hcFBpblhJbnNpZGU9XzB0LHUuTWFwUGlubmVkPSQwdCx1Lk1hcFBsdXM9QTB0LHUuTWFycz1QMHQsdS5NYXJzU3Ryb2tlPUUwdCx1Lk1hcnRpbmk9STB0LHUuTWF4aW1pemU9RjB0LHUuTWF4aW1pemUyPU4wdCx1Lk1lZGFsPU8wdCx1Lk1lZ2FwaG9uZT1CMHQsdS5NZWdhcGhvbmVPZmY9UjB0LHUuTWVoPUgwdCx1Lk1lbW9yeVN0aWNrPVYwdCx1Lk1lbnU9cTB0LHUuTWVudVNxdWFyZT1FeSx1Lk1lcmdlPWowdCx1Lk1lc3NhZ2VDaXJjbGU9ZTR0LHUuTWVzc2FnZUNpcmNsZUNvZGU9VTB0LHUuTWVzc2FnZUNpcmNsZURhc2hlZD1XMHQsdS5NZXNzYWdlQ2lyY2xlSGVhcnQ9RzB0LHUuTWVzc2FnZUNpcmNsZU1vcmU9WTB0LHUuTWVzc2FnZUNpcmNsZU9mZj1aMHQsdS5NZXNzYWdlQ2lyY2xlUGx1cz1YMHQsdS5NZXNzYWdlQ2lyY2xlUXVlc3Rpb249X3YsdS5NZXNzYWdlQ2lyY2xlUXVlc3Rpb25NYXJrPV92LHUuTWVzc2FnZUNpcmNsZVJlcGx5PVEwdCx1Lk1lc3NhZ2VDaXJjbGVXYXJuaW5nPUswdCx1Lk1lc3NhZ2VDaXJjbGVYPUowdCx1Lk1lc3NhZ2VTcXVhcmU9ZzR0LHUuTWVzc2FnZVNxdWFyZUNvZGU9dDR0LHUuTWVzc2FnZVNxdWFyZURhc2hlZD1hNHQsdS5NZXNzYWdlU3F1YXJlRGlmZj1pNHQsdS5NZXNzYWdlU3F1YXJlRG90PXI0dCx1Lk1lc3NhZ2VTcXVhcmVIZWFydD1zNHQsdS5NZXNzYWdlU3F1YXJlTG9jaz1uNHQsdS5NZXNzYWdlU3F1YXJlTW9yZT1vNHQsdS5NZXNzYWdlU3F1YXJlT2ZmPWw0dCx1Lk1lc3NhZ2VTcXVhcmVQbHVzPWM0dCx1Lk1lc3NhZ2VTcXVhcmVRdW90ZT1kNHQsdS5NZXNzYWdlU3F1YXJlUmVwbHk9aDR0LHUuTWVzc2FnZVNxdWFyZVNoYXJlPXA0dCx1Lk1lc3NhZ2VTcXVhcmVUZXh0PXU0dCx1Lk1lc3NhZ2VTcXVhcmVXYXJuaW5nPWY0dCx1Lk1lc3NhZ2VTcXVhcmVYPW00dCx1Lk1lc3NhZ2VzU3F1YXJlPWI0dCx1Lk1pYz15NHQsdS5NaWMyPVR2LHUuTWljT2ZmPXY0dCx1Lk1pY1ZvY2FsPVR2LHUuTWljcm9jaGlwPXg0dCx1Lk1pY3Jvc2NvcGU9dzR0LHUuTWljcm93YXZlPU00dCx1Lk1pbGVzdG9uZT16NHQsdS5NaWxrPUM0dCx1Lk1pbGtPZmY9azR0LHUuTWluaW1pemU9XzR0LHUuTWluaW1pemUyPVM0dCx1Lk1pbnVzPVQ0dCx1Lk1pbnVzQ2lyY2xlPWNiLHUuTWludXNTcXVhcmU9UHksdS5Nb25pdG9yPXE0dCx1Lk1vbml0b3JDaGVjaz1MNHQsdS5Nb25pdG9yQ2xvdWQ9JDR0LHUuTW9uaXRvckNvZz1BNHQsdS5Nb25pdG9yRG90PUQ0dCx1Lk1vbml0b3JEb3duPUU0dCx1Lk1vbml0b3JPZmY9UDR0LHUuTW9uaXRvclBhdXNlPUk0dCx1Lk1vbml0b3JQbGF5PU40dCx1Lk1vbml0b3JTbWFydHBob25lPUY0dCx1Lk1vbml0b3JTcGVha2VyPU80dCx1Lk1vbml0b3JTdG9wPVI0dCx1Lk1vbml0b3JVcD1CNHQsdS5Nb25pdG9yWD1INHQsdS5Nb29uPWo0dCx1Lk1vb25TdGFyPVY0dCx1Lk1vcmVIb3Jpem9udGFsPUViLHUuTW9yZVZlcnRpY2FsPURiLHUuTW90b3JiaWtlPVU0dCx1Lk1vdW50YWluPUc0dCx1Lk1vdW50YWluU25vdz1XNHQsdS5Nb3VzZT1lM3QsdS5Nb3VzZU9mZj1ZNHQsdS5Nb3VzZVBvaW50ZXI9SjR0LHUuTW91c2VQb2ludGVyMj1YNHQsdS5Nb3VzZVBvaW50ZXIyT2ZmPVo0dCx1Lk1vdXNlUG9pbnRlckJhbj1LNHQsdS5Nb3VzZVBvaW50ZXJDbGljaz1RNHQsdS5Nb3VzZVBvaW50ZXJTcXVhcmVEYXNoZWQ9a3ksdS5Nb3ZlPXUzdCx1Lk1vdmUzRD1Mdix1Lk1vdmUzZD1Mdix1Lk1vdmVEaWFnb25hbD1hM3QsdS5Nb3ZlRGlhZ29uYWwyPXQzdCx1Lk1vdmVEb3duPXMzdCx1Lk1vdmVEb3duTGVmdD1pM3QsdS5Nb3ZlRG93blJpZ2h0PXIzdCx1Lk1vdmVIb3Jpem9udGFsPW4zdCx1Lk1vdmVMZWZ0PW8zdCx1Lk1vdmVSaWdodD1sM3QsdS5Nb3ZlVXA9aDN0LHUuTW92ZVVwTGVmdD1jM3QsdS5Nb3ZlVXBSaWdodD1kM3QsdS5Nb3ZlVmVydGljYWw9cDN0LHUuTXVzaWM9YjN0LHUuTXVzaWMyPWYzdCx1Lk11c2ljMz1tM3QsdS5NdXNpYzQ9ZzN0LHUuTmF2aWdhdGlvbj14M3QsdS5OYXZpZ2F0aW9uMj15M3QsdS5OYXZpZ2F0aW9uMk9mZj12M3QsdS5OYXZpZ2F0aW9uT2ZmPXczdCx1Lk5ldHdvcms9TTN0LHUuTmV3c3BhcGVyPXozdCx1Lk5mYz1rM3QsdS5Ob25CaW5hcnk9UzN0LHUuTm90ZWJvb2s9TDN0LHUuTm90ZWJvb2tQZW49QzN0LHUuTm90ZWJvb2tUYWJzPV8zdCx1Lk5vdGVib29rVGV4dD1UM3QsdS5Ob3RlcGFkVGV4dD1BM3QsdS5Ob3RlcGFkVGV4dERhc2hlZD0kM3QsdS5OdXQ9RDN0LHUuTnV0T2ZmPUUzdCx1Lk9jdGFnb249STN0LHUuT2N0YWdvbkFsZXJ0PSR2LHUuT2N0YWdvbk1pbnVzPVAzdCx1Lk9jdGFnb25QYXVzZT1Bdix1Lk9jdGFnb25YPUR2LHUuT21lZ2E9TjN0LHUuT3B0aW9uPU8zdCx1Lk9yYml0PUYzdCx1Lk9yaWdhbWk9UjN0LHUuT3V0ZGVudD14bCx1LlBhY2thZ2U9RzN0LHUuUGFja2FnZTI9QjN0LHUuUGFja2FnZUNoZWNrPUgzdCx1LlBhY2thZ2VNaW51cz1xM3QsdS5QYWNrYWdlT3Blbj1WM3QsdS5QYWNrYWdlUGx1cz1qM3QsdS5QYWNrYWdlU2VhcmNoPVUzdCx1LlBhY2thZ2VYPVczdCx1LlBhaW50QnVja2V0PVozdCx1LlBhaW50Um9sbGVyPVkzdCx1LlBhaW50YnJ1c2g9WDN0LHUuUGFpbnRicnVzaDI9RXYsdS5QYWludGJydXNoVmVydGljYWw9RXYsdS5QYWxldHRlPUszdCx1LlBhbG10cmVlPW94LHUuUGFuZGE9UTN0LHUuUGFuZWxCb3R0b209dGx0LHUuUGFuZWxCb3R0b21DbG9zZT1KM3QsdS5QYW5lbEJvdHRvbURhc2hlZD1Qdix1LlBhbmVsQm90dG9tSW5hY3RpdmU9UHYsdS5QYW5lbEJvdHRvbU9wZW49ZWx0LHUuUGFuZWxMZWZ0PU92LHUuUGFuZWxMZWZ0Q2xvc2U9SXYsdS5QYW5lbExlZnREYXNoZWQ9TnYsdS5QYW5lbExlZnRJbmFjdGl2ZT1Odix1LlBhbmVsTGVmdE9wZW49RnYsdS5QYW5lbExlZnRSaWdodERhc2hlZD1hbHQsdS5QYW5lbFJpZ2h0PXNsdCx1LlBhbmVsUmlnaHRDbG9zZT1pbHQsdS5QYW5lbFJpZ2h0RGFzaGVkPVJ2LHUuUGFuZWxSaWdodEluYWN0aXZlPVJ2LHUuUGFuZWxSaWdodE9wZW49cmx0LHUuUGFuZWxUb3A9Y2x0LHUuUGFuZWxUb3BCb3R0b21EYXNoZWQ9bmx0LHUuUGFuZWxUb3BDbG9zZT1vbHQsdS5QYW5lbFRvcERhc2hlZD1Cdix1LlBhbmVsVG9wSW5hY3RpdmU9QnYsdS5QYW5lbFRvcE9wZW49bGx0LHUuUGFuZWxzTGVmdEJvdHRvbT1kbHQsdS5QYW5lbHNMZWZ0UmlnaHQ9VGIsdS5QYW5lbHNSaWdodEJvdHRvbT1obHQsdS5QYW5lbHNUb3BCb3R0b209WXYsdS5QYW5lbHNUb3BMZWZ0PUh2LHUuUGFwZXJjbGlwPXBsdCx1LlBhcmVudGhlc2VzPXVsdCx1LlBhcmtpbmdDaXJjbGU9aGIsdS5QYXJraW5nQ2lyY2xlT2ZmPWRiLHUuUGFya2luZ01ldGVyPWZsdCx1LlBhcmtpbmdTcXVhcmU9RnksdS5QYXJraW5nU3F1YXJlT2ZmPU55LHUuUGFydHlQb3BwZXI9bWx0LHUuUGF1c2U9Z2x0LHUuUGF1c2VDaXJjbGU9cGIsdS5QYXVzZU9jdGFnb249QXYsdS5QYXdQcmludD1ibHQsdS5QY0Nhc2U9dmx0LHUuUGVuPVZ2LHUuUGVuQm94PXJvLHUuUGVuTGluZT1xdix1LlBlbk9mZj15bHQsdS5QZW5TcXVhcmU9cm8sdS5QZW5Ub29sPXhsdCx1LlBlbmNpbD1TbHQsdS5QZW5jaWxMaW5lPXdsdCx1LlBlbmNpbE9mZj1NbHQsdS5QZW5jaWxSdWxlcj16bHQsdS5QZW50YWdvbj1rbHQsdS5QZXJjZW50PUNsdCx1LlBlcmNlbnRDaXJjbGU9dWIsdS5QZXJjZW50RGlhbW9uZD0kYix1LlBlcmNlbnRTcXVhcmU9UnksdS5QZXJzb25TdGFuZGluZz1fbHQsdS5QaGlsaXBwaW5lUGVzbz1UbHQsdS5QaG9uZT1JbHQsdS5QaG9uZUNhbGw9TGx0LHUuUGhvbmVGb3J3YXJkZWQ9JGx0LHUuUGhvbmVJbmNvbWluZz1BbHQsdS5QaG9uZU1pc3NlZD1EbHQsdS5QaG9uZU9mZj1FbHQsdS5QaG9uZU91dGdvaW5nPVBsdCx1LlBpPU5sdCx1LlBpU3F1YXJlPU95LHUuUGlhbm89Rmx0LHUuUGlja2F4ZT1PbHQsdS5QaWN0dXJlSW5QaWN0dXJlPUhsdCx1LlBpY3R1cmVJblBpY3R1cmUyPVJsdCx1LlBpZUNoYXJ0PVZnLHUuUGlnZ3lCYW5rPUJsdCx1LlBpbGNyb3c9amx0LHUuUGlsY3Jvd0xlZnQ9cWx0LHUuUGlsY3Jvd1JpZ2h0PVZsdCx1LlBpbGNyb3dTcXVhcmU9QnksdS5QaWxsPVdsdCx1LlBpbGxCb3R0bGU9VWx0LHUuUGluPVlsdCx1LlBpbk9mZj1HbHQsdS5QaXBldHRlPVpsdCx1LlBpenphPVhsdCx1LlBsYW5lPUpsdCx1LlBsYW5lTGFuZGluZz1LbHQsdS5QbGFuZVRha2VvZmY9UWx0LHUuUGxheT1lY3QsdS5QbGF5Q2lyY2xlPWZiLHUuUGxheVNxdWFyZT1IeSx1LlBsdWc9YWN0LHUuUGx1ZzI9dGN0LHUuUGx1Z1phcD1qdix1LlBsdWdaYXAyPWp2LHUuUGx1cz1pY3QsdS5QbHVzQ2lyY2xlPW1iLHUuUGx1c1NxdWFyZT1xeSx1LlBvY2tldD1uY3QsdS5Qb2NrZXRLbmlmZT1yY3QsdS5Qb2RjYXN0PXNjdCx1LlBvaW50ZXI9bGN0LHUuUG9pbnRlck9mZj1vY3QsdS5Qb3Bjb3JuPWNjdCx1LlBvcHNpY2xlPWRjdCx1LlBvdW5kU3Rlcmxpbmc9aGN0LHUuUG93ZXI9dWN0LHUuUG93ZXJDaXJjbGU9Z2IsdS5Qb3dlck9mZj1wY3QsdS5Qb3dlclNxdWFyZT1WeSx1LlByZXNlbnRhdGlvbj1tY3QsdS5QcmludGVyPWJjdCx1LlByaW50ZXJDaGVjaz1mY3QsdS5QcmludGVyWD1nY3QsdS5Qcm9qZWN0b3I9dmN0LHUuUHJvcG9ydGlvbnM9eWN0LHUuUHV6emxlPXhjdCx1LlB5cmFtaWQ9d2N0LHUuUXJDb2RlPU1jdCx1LlF1b3RlPXpjdCx1LlJhYmJpdD1rY3QsdS5SYWRhcj1TY3QsdS5SYWRpYXRpb249Q2N0LHUuUmFkaWNhbD1fY3QsdS5SYWRpbz0kY3QsdS5SYWRpb1JlY2VpdmVyPVRjdCx1LlJhZGlvVG93ZXI9TGN0LHUuUmFkaXVzPUFjdCx1LlJhaWxTeW1ib2w9RGN0LHUuUmFpbmJvdz1FY3QsdS5SYXQ9UGN0LHUuUmF0aW89SWN0LHUuUmVjZWlwdD1VY3QsdS5SZWNlaXB0Q2VudD1OY3QsdS5SZWNlaXB0RXVybz1GY3QsdS5SZWNlaXB0SW5kaWFuUnVwZWU9T2N0LHUuUmVjZWlwdEphcGFuZXNlWWVuPVJjdCx1LlJlY2VpcHRQb3VuZFN0ZXJsaW5nPUJjdCx1LlJlY2VpcHRSdXNzaWFuUnVibGU9SGN0LHUuUmVjZWlwdFN3aXNzRnJhbmM9cWN0LHUuUmVjZWlwdFRleHQ9VmN0LHUuUmVjZWlwdFR1cmtpc2hMaXJhPWpjdCx1LlJlY3RhbmdsZUNpcmNsZT1XY3QsdS5SZWN0YW5nbGVFbGxpcHNpcz1Vdix1LlJlY3RhbmdsZUdvZ2dsZXM9WWN0LHUuUmVjdGFuZ2xlSG9yaXpvbnRhbD1HY3QsdS5SZWN0YW5nbGVWZXJ0aWNhbD1aY3QsdS5SZWN5Y2xlPVhjdCx1LlJlZG89SmN0LHUuUmVkbzI9UWN0LHUuUmVkb0RvdD1LY3QsdS5SZWZyZXNoQ2N3PXQ2dCx1LlJlZnJlc2hDY3dEb3Q9ZTZ0LHUuUmVmcmVzaEN3PWk2dCx1LlJlZnJlc2hDd09mZj1hNnQsdS5SZWZyaWdlcmF0b3I9cjZ0LHUuUmVnZXg9czZ0LHUuUmVtb3ZlRm9ybWF0dGluZz1uNnQsdS5SZXBlYXQ9YzZ0LHUuUmVwZWF0MT1sNnQsdS5SZXBlYXQyPW82dCx1LlJlcGxhY2U9aDZ0LHUuUmVwbGFjZUFsbD1kNnQsdS5SZXBseT11NnQsdS5SZXBseUFsbD1wNnQsdS5SZXdpbmQ9ZjZ0LHUuUmliYm9uPW02dCx1LlJvY2tldD1nNnQsdS5Sb2NraW5nQ2hhaXI9YjZ0LHUuUm9sbGVyQ29hc3Rlcj12NnQsdS5Sb3NlPXk2dCx1LlJvdGF0ZTNEPVd2LHUuUm90YXRlM2Q9V3YsdS5Sb3RhdGVDY3c9TTZ0LHUuUm90YXRlQ2N3S2V5PXg2dCx1LlJvdGF0ZUNjd1NxdWFyZT13NnQsdS5Sb3RhdGVDdz1rNnQsdS5Sb3RhdGVDd1NxdWFyZT16NnQsdS5Sb3V0ZT1DNnQsdS5Sb3V0ZU9mZj1TNnQsdS5Sb3V0ZXI9XzZ0LHUuUm93cz1Hdix1LlJvd3MyPUd2LHUuUm93czM9WXYsdS5Sb3dzND1UNnQsdS5Sc3M9TDZ0LHUuUnVsZXI9RDZ0LHUuUnVsZXJEaW1lbnNpb25MaW5lPSQ2dCx1LlJ1c3NpYW5SdWJsZT1BNnQsdS5TYWlsYm9hdD1QNnQsdS5TYWxhZD1FNnQsdS5TYW5kd2ljaD1JNnQsdS5TYXRlbGxpdGU9RjZ0LHUuU2F0ZWxsaXRlRGlzaD1ONnQsdS5TYXVkaVJpeWFsPU82dCx1LlNhdmU9SDZ0LHUuU2F2ZUFsbD1SNnQsdS5TYXZlT2ZmPUI2dCx1LlNjYWxlPXE2dCx1LlNjYWxlM0Q9WnYsdS5TY2FsZTNkPVp2LHUuU2NhbGluZz1WNnQsdS5TY2FuPVE2dCx1LlNjYW5CYXJjb2RlPVU2dCx1LlNjYW5FeWU9ajZ0LHUuU2NhbkZhY2U9VzZ0LHUuU2NhbkhlYXJ0PUc2dCx1LlNjYW5MaW5lPVk2dCx1LlNjYW5RckNvZGU9WjZ0LHUuU2NhblNlYXJjaD1YNnQsdS5TY2FuVGV4dD1LNnQsdS5TY2F0dGVyQ2hhcnQ9amcsdS5TY2hvb2w9SjZ0LHUuU2Nob29sMj1keCx1LlNjaXNzb3JzPXQ1dCx1LlNjaXNzb3JzTGluZURhc2hlZD1lNXQsdS5TY2lzc29yc1NxdWFyZT1qeSx1LlNjaXNzb3JzU3F1YXJlRGFzaGVkQm90dG9tPW15LHUuU2Nvb3Rlcj1hNXQsdS5TY3JlZW5TaGFyZT1yNXQsdS5TY3JlZW5TaGFyZU9mZj1pNXQsdS5TY3JvbGw9czV0LHUuU2Nyb2xsVGV4dD1uNXQsdS5TZWFyY2g9cDV0LHUuU2VhcmNoQWxlcnQ9bzV0LHUuU2VhcmNoQ2hlY2s9bDV0LHUuU2VhcmNoQ29kZT1jNXQsdS5TZWFyY2hTbGFzaD1kNXQsdS5TZWFyY2hYPWg1dCx1LlNlY3Rpb249dTV0LHUuU2VuZD1tNXQsdS5TZW5kSG9yaXpvbmFsPVh2LHUuU2VuZEhvcml6b250YWw9WHYsdS5TZW5kVG9CYWNrPWY1dCx1LlNlcGFyYXRvckhvcml6b250YWw9YjV0LHUuU2VwYXJhdG9yVmVydGljYWw9ZzV0LHUuU2VydmVyPXc1dCx1LlNlcnZlckNvZz12NXQsdS5TZXJ2ZXJDcmFzaD15NXQsdS5TZXJ2ZXJPZmY9eDV0LHUuU2V0dGluZ3M9ejV0LHUuU2V0dGluZ3MyPU01dCx1LlNoYXBlcz1rNXQsdS5TaGFyZT1DNXQsdS5TaGFyZTI9UzV0LHUuU2hlZXQ9XzV0LHUuU2hlbGw9VDV0LHUuU2hpZWxkPU81dCx1LlNoaWVsZEFsZXJ0PUw1dCx1LlNoaWVsZEJhbj0kNXQsdS5TaGllbGRDaGVjaz1BNXQsdS5TaGllbGRDbG9zZT1Rdix1LlNoaWVsZEVsbGlwc2lzPUQ1dCx1LlNoaWVsZEhhbGY9RTV0LHUuU2hpZWxkTWludXM9UDV0LHUuU2hpZWxkT2ZmPUk1dCx1LlNoaWVsZFBsdXM9TjV0LHUuU2hpZWxkUXVlc3Rpb249S3YsdS5TaGllbGRRdWVzdGlvbk1hcms9S3YsdS5TaGllbGRVc2VyPUY1dCx1LlNoaWVsZFg9UXYsdS5TaGlwPUI1dCx1LlNoaXBXaGVlbD1SNXQsdS5TaGlydD1INXQsdS5TaG9wcGluZ0JhZz1xNXQsdS5TaG9wcGluZ0Jhc2tldD1WNXQsdS5TaG9wcGluZ0NhcnQ9ajV0LHUuU2hvdmVsPVU1dCx1LlNob3dlckhlYWQ9VzV0LHUuU2hyZWRkZXI9RzV0LHUuU2hyaW1wPVk1dCx1LlNocmluaz1aNXQsdS5TaHJ1Yj1LNXQsdS5TaHVmZmxlPVg1dCx1LlNpZGViYXI9T3YsdS5TaWRlYmFyQ2xvc2U9SXYsdS5TaWRlYmFyT3Blbj1Gdix1LlNpZ21hPVE1dCx1LlNpZ21hU3F1YXJlPVV5LHUuU2lnbmFsPWk4dCx1LlNpZ25hbEhpZ2g9SjV0LHUuU2lnbmFsTG93PWU4dCx1LlNpZ25hbE1lZGl1bT10OHQsdS5TaWduYWxaZXJvPWE4dCx1LlNpZ25hdHVyZT1yOHQsdS5TaWducG9zdD1uOHQsdS5TaWducG9zdEJpZz1zOHQsdS5TaXJlbj1vOHQsdS5Ta2lwQmFjaz1sOHQsdS5Ta2lwRm9yd2FyZD1jOHQsdS5Ta3VsbD1kOHQsdS5TbGFjaz1oOHQsdS5TbGFzaD1wOHQsdS5TbGFzaFNxdWFyZT1XeSx1LlNsaWNlPXU4dCx1LlNsaWRlcnM9SnYsdS5TbGlkZXJzSG9yaXpvbnRhbD1mOHQsdS5TbGlkZXJzVmVydGljYWw9SnYsdS5TbWFydHBob25lPWI4dCx1LlNtYXJ0cGhvbmVDaGFyZ2luZz1tOHQsdS5TbWFydHBob25lTmZjPWc4dCx1LlNtaWxlPXk4dCx1LlNtaWxlUGx1cz12OHQsdS5TbmFpbD14OHQsdS5Tbm93Zmxha2U9TTh0LHUuU29hcERpc3BlbnNlckRyb3BsZXQ9dzh0LHUuU29mYT16OHQsdS5Tb2xhclBhbmVsPWs4dCx1LlNvcnRBc2M9TWcsdS5Tb3J0RGVzYz15Zyx1LlNvdXA9Uzh0LHUuU3BhY2U9Qzh0LHUuU3BhZGU9Xzh0LHUuU3BhcmtsZT1UOHQsdS5TcGFya2xlcz1leSx1LlNwZWFrZXI9TDh0LHUuU3BlZWNoPSQ4dCx1LlNwZWxsQ2hlY2s9RDh0LHUuU3BlbGxDaGVjazI9QTh0LHUuU3BsaW5lPVA4dCx1LlNwbGluZVBvaW50ZXI9RTh0LHUuU3BsaXQ9STh0LHUuU3BsaXRTcXVhcmVIb3Jpem9udGFsPUd5LHUuU3BsaXRTcXVhcmVWZXJ0aWNhbD1ZeSx1LlNwb29sPU44dCx1LlNwb3RsaWdodD1GOHQsdS5TcHJheUNhbj1POHQsdS5TcHJvdXQ9Ujh0LHUuU3F1YXJlPVg4dCx1LlNxdWFyZUFjdGl2aXR5PWF5LHUuU3F1YXJlQXJyb3dEb3duPXJ5LHUuU3F1YXJlQXJyb3dEb3duTGVmdD10eSx1LlNxdWFyZUFycm93RG93blJpZ2h0PWl5LHUuU3F1YXJlQXJyb3dMZWZ0PXN5LHUuU3F1YXJlQXJyb3dPdXREb3duTGVmdD1ueSx1LlNxdWFyZUFycm93T3V0RG93blJpZ2h0PWx5LHUuU3F1YXJlQXJyb3dPdXRVcExlZnQ9b3ksdS5TcXVhcmVBcnJvd091dFVwUmlnaHQ9Y3ksdS5TcXVhcmVBcnJvd1JpZ2h0PWR5LHUuU3F1YXJlQXJyb3dVcD11eSx1LlNxdWFyZUFycm93VXBMZWZ0PWh5LHUuU3F1YXJlQXJyb3dVcFJpZ2h0PXB5LHUuU3F1YXJlQXN0ZXJpc2s9ZnksdS5TcXVhcmVCb3R0b21EYXNoZWRTY2lzc29ycz1teSx1LlNxdWFyZUNoYXJ0R2FudHQ9TWwsdS5TcXVhcmVDaGVjaz1ieSx1LlNxdWFyZUNoZWNrQmlnPWd5LHUuU3F1YXJlQ2hldnJvbkRvd249dnksdS5TcXVhcmVDaGV2cm9uTGVmdD15eSx1LlNxdWFyZUNoZXZyb25SaWdodD14eSx1LlNxdWFyZUNoZXZyb25VcD13eSx1LlNxdWFyZUNvZGU9TXksdS5TcXVhcmVEYXNoZWQ9U3ksdS5TcXVhcmVEYXNoZWRCb3R0b209SDh0LHUuU3F1YXJlRGFzaGVkQm90dG9tQ29kZT1COHQsdS5TcXVhcmVEYXNoZWRLYW5iYW49enksdS5TcXVhcmVEYXNoZWRNb3VzZVBvaW50ZXI9a3ksdS5TcXVhcmVEYXNoZWRUb3BTb2xpZD1xOHQsdS5TcXVhcmVEaXZpZGU9Q3ksdS5TcXVhcmVEb3Q9X3ksdS5TcXVhcmVFcXVhbD1UeSx1LlNxdWFyZUZ1bmN0aW9uPUx5LHUuU3F1YXJlR2FudHRDaGFydD1NbCx1LlNxdWFyZUthbmJhbj0keSx1LlNxdWFyZUxpYnJhcnk9QXksdS5TcXVhcmVNPUR5LHUuU3F1YXJlTWVudT1FeSx1LlNxdWFyZU1pbnVzPVB5LHUuU3F1YXJlTW91c2VQb2ludGVyPUl5LHUuU3F1YXJlUGFya2luZz1GeSx1LlNxdWFyZVBhcmtpbmdPZmY9TnksdS5TcXVhcmVQYXVzZT1WOHQsdS5TcXVhcmVQZW49cm8sdS5TcXVhcmVQZXJjZW50PVJ5LHUuU3F1YXJlUGk9T3ksdS5TcXVhcmVQaWxjcm93PUJ5LHUuU3F1YXJlUGxheT1IeSx1LlNxdWFyZVBsdXM9cXksdS5TcXVhcmVQb3dlcj1WeSx1LlNxdWFyZVJhZGljYWw9VTh0LHUuU3F1YXJlUm91bmRDb3JuZXI9ajh0LHUuU3F1YXJlU2Npc3NvcnM9anksdS5TcXVhcmVTaWdtYT1VeSx1LlNxdWFyZVNsYXNoPVd5LHUuU3F1YXJlU3BsaXRIb3Jpem9udGFsPUd5LHUuU3F1YXJlU3BsaXRWZXJ0aWNhbD1ZeSx1LlNxdWFyZVNxdWFyZT1HOHQsdS5TcXVhcmVTdGFjaz1XOHQsdS5TcXVhcmVTdGFyPVk4dCx1LlNxdWFyZVN0b3A9Wjh0LHUuU3F1YXJlVGVybWluYWw9WnksdS5TcXVhcmVVc2VyPUt5LHUuU3F1YXJlVXNlclJvdW5kPVh5LHUuU3F1YXJlWD1ReSx1LlNxdWFyZXNFeGNsdWRlPUs4dCx1LlNxdWFyZXNJbnRlcnNlY3Q9UTh0LHUuU3F1YXJlc1N1YnRyYWN0PUo4dCx1LlNxdWFyZXNVbml0ZT1lZHQsdS5TcXVpcmNsZT1hZHQsdS5TcXVpcmNsZURhc2hlZD10ZHQsdS5TcXVpcnJlbD1pZHQsdS5TdGFtcD1yZHQsdS5TdGFyPW9kdCx1LlN0YXJIYWxmPXNkdCx1LlN0YXJPZmY9bmR0LHUuU3RhcnM9ZXksdS5TdGVwQmFjaz1sZHQsdS5TdGVwRm9yd2FyZD1jZHQsdS5TdGV0aG9zY29wZT1kZHQsdS5TdGlja2VyPWhkdCx1LlN0aWNreU5vdGU9cGR0LHUuU3RvbmU9dWR0LHUuU3RvcENpcmNsZT12Yix1LlN0b3JlPWZkdCx1LlN0cmV0Y2hIb3Jpem9udGFsPW1kdCx1LlN0cmV0Y2hWZXJ0aWNhbD1nZHQsdS5TdHJpa2V0aHJvdWdoPWJkdCx1LlN1YnNjcmlwdD12ZHQsdS5TdWJ0aXRsZXM9QWcsdS5TdW49emR0LHUuU3VuRGltPXlkdCx1LlN1bk1lZGl1bT14ZHQsdS5TdW5Nb29uPXdkdCx1LlN1blNub3c9TWR0LHUuU3VucmlzZT1rZHQsdS5TdW5zZXQ9U2R0LHUuU3VwZXJzY3JpcHQ9Q2R0LHUuU3dhdGNoQm9vaz1fZHQsdS5Td2lzc0ZyYW5jPVRkdCx1LlN3aXRjaENhbWVyYT1MZHQsdS5Td29yZD0kZHQsdS5Td29yZHM9QWR0LHUuU3lyaW5nZT1EZHQsdS5UYWJsZT1CZHQsdS5UYWJsZTI9RWR0LHUuVGFibGVDZWxsc01lcmdlPVBkdCx1LlRhYmxlQ2VsbHNTcGxpdD1JZHQsdS5UYWJsZUNvbHVtbnNTcGxpdD1OZHQsdS5UYWJsZUNvbmZpZz1ibCx1LlRhYmxlT2ZDb250ZW50cz1GZHQsdS5UYWJsZVByb3BlcnRpZXM9T2R0LHUuVGFibGVSb3dzU3BsaXQ9UmR0LHUuVGFibGV0PUhkdCx1LlRhYmxldFNtYXJ0cGhvbmU9cWR0LHUuVGFibGV0cz1WZHQsdS5UYWc9amR0LHUuVGFncz1VZHQsdS5UYWxseTE9V2R0LHUuVGFsbHkyPUdkdCx1LlRhbGx5Mz1ZZHQsdS5UYWxseTQ9WmR0LHUuVGFsbHk1PVhkdCx1LlRhbmdlbnQ9S2R0LHUuVGFyZ2V0PVFkdCx1LlRlbGVzY29wZT1KZHQsdS5UZW50PXQ3dCx1LlRlbnRUcmVlPWU3dCx1LlRlcm1pbmFsPWE3dCx1LlRlcm1pbmFsU3F1YXJlPVp5LHUuVGVzdFR1YmU9aTd0LHUuVGVzdFR1YmUyPUp5LHUuVGVzdFR1YmVEaWFnb25hbD1KeSx1LlRlc3RUdWJlcz1yN3QsdS5UZXh0PXpsLHUuVGV4dEFsaWduQ2VudGVyPWV4LHUuVGV4dEFsaWduRW5kPXR4LHUuVGV4dEFsaWduSnVzdGlmeT1heCx1LlRleHRBbGlnblN0YXJ0PXpsLHUuVGV4dEN1cnNvcj1uN3QsdS5UZXh0Q3Vyc29ySW5wdXQ9czd0LHUuVGV4dEluaXRpYWw9aXgsdS5UZXh0UXVvdGU9bzd0LHUuVGV4dFNlYXJjaD1sN3QsdS5UZXh0U2VsZWN0PXJ4LHUuVGV4dFNlbGVjdGlvbj1yeCx1LlRleHRXcmFwPXN4LHUuVGhlYXRlcj1jN3QsdS5UaGVybW9tZXRlcj1wN3QsdS5UaGVybW9tZXRlclNub3dmbGFrZT1kN3QsdS5UaGVybW9tZXRlclN1bj1oN3QsdS5UaHVtYnNEb3duPXU3dCx1LlRodW1ic1VwPWY3dCx1LlRpY2tldD13N3QsdS5UaWNrZXRDaGVjaz1tN3QsdS5UaWNrZXRNaW51cz1nN3QsdS5UaWNrZXRQZXJjZW50PWI3dCx1LlRpY2tldFBsdXM9djd0LHUuVGlja2V0U2xhc2g9eTd0LHUuVGlja2V0WD14N3QsdS5UaWNrZXRzPWs3dCx1LlRpY2tldHNQbGFuZT1NN3QsdS5UaW1lcj1DN3QsdS5UaW1lck9mZj16N3QsdS5UaW1lclJlc2V0PVM3dCx1LlRvZ2dsZUxlZnQ9Xzd0LHUuVG9nZ2xlUmlnaHQ9VDd0LHUuVG9pbGV0PUw3dCx1LlRvb2xDYXNlPSQ3dCx1LlRvb2xib3g9QTd0LHUuVG9ybmFkbz1EN3QsdS5Ub3J1cz1FN3QsdS5Ub3VjaHBhZD1JN3QsdS5Ub3VjaHBhZE9mZj1QN3QsdS5Ub3dlckNvbnRyb2w9Tjd0LHUuVG95QnJpY2s9Rjd0LHUuVHJhY3Rvcj1PN3QsdS5UcmFmZmljQ29uZT1SN3QsdS5UcmFpbj1ueCx1LlRyYWluRnJvbnQ9SDd0LHUuVHJhaW5Gcm9udFR1bm5lbD1CN3QsdS5UcmFpblRyYWNrPXE3dCx1LlRyYW1Gcm9udD1ueCx1LlRyYW5zZ2VuZGVyPVY3dCx1LlRyYXNoPVU3dCx1LlRyYXNoMj1qN3QsdS5UcmVlRGVjaWR1b3VzPVc3dCx1LlRyZWVQYWxtPW94LHUuVHJlZVBpbmU9Rzd0LHUuVHJlZXM9WTd0LHUuVHJlbGxvPVo3dCx1LlRyZW5kaW5nRG93bj1YN3QsdS5UcmVuZGluZ1VwPVE3dCx1LlRyZW5kaW5nVXBEb3duPUs3dCx1LlRyaWFuZ2xlPXRodCx1LlRyaWFuZ2xlQWxlcnQ9bHgsdS5UcmlhbmdsZURhc2hlZD1KN3QsdS5UcmlhbmdsZVJpZ2h0PWVodCx1LlRyb3BoeT1paHQsdS5UcnVjaz1yaHQsdS5UcnVja0VsZWN0cmljPWFodCx1LlR1cmtpc2hMaXJhPXNodCx1LlR1cm50YWJsZT1uaHQsdS5UdXJ0bGU9b2h0LHUuVHY9Y2h0LHUuVHYyPWN4LHUuVHZNaW5pbWFsPWN4LHUuVHZNaW5pbWFsUGxheT1saHQsdS5Ud2l0Y2g9ZGh0LHUuVHdpdHRlcj1oaHQsdS5UeXBlPXVodCx1LlR5cGVPdXRsaW5lPXBodCx1LlVtYnJlbGxhPW1odCx1LlVtYnJlbGxhT2ZmPWZodCx1LlVuZGVybGluZT1naHQsdS5VbmRvPXlodCx1LlVuZG8yPWJodCx1LlVuZG9Eb3Q9dmh0LHUuVW5mb2xkSG9yaXpvbnRhbD14aHQsdS5VbmZvbGRWZXJ0aWNhbD13aHQsdS5Vbmdyb3VwPU1odCx1LlVuaXZlcnNpdHk9ZHgsdS5Vbmxpbms9emh0LHUuVW5saW5rMj1raHQsdS5VbmxvY2s9a3YsdS5VbmxvY2tLZXlob2xlPXp2LHUuVW5wbHVnPVNodCx1LlVwbG9hZD1DaHQsdS5VcGxvYWRDbG91ZD1TYix1LlVzYj1faHQsdS5Vc2VyPUhodCx1LlVzZXIyPWd4LHUuVXNlckNoZWNrPVRodCx1LlVzZXJDaGVjazI9aHgsdS5Vc2VyQ2lyY2xlPXhiLHUuVXNlckNpcmNsZTI9eWIsdS5Vc2VyQ29nPUxodCx1LlVzZXJDb2cyPXB4LHUuVXNlcktleT0kaHQsdS5Vc2VyTG9jaz1BaHQsdS5Vc2VyTWludXM9RGh0LHUuVXNlck1pbnVzMj11eCx1LlVzZXJQZW49RWh0LHUuVXNlclBsdXM9UGh0LHUuVXNlclBsdXMyPWZ4LHUuVXNlclJvdW5kPWd4LHUuVXNlclJvdW5kQ2hlY2s9aHgsdS5Vc2VyUm91bmRDb2c9cHgsdS5Vc2VyUm91bmRLZXk9SWh0LHUuVXNlclJvdW5kTWludXM9dXgsdS5Vc2VyUm91bmRQZW49Tmh0LHUuVXNlclJvdW5kUGx1cz1meCx1LlVzZXJSb3VuZFNlYXJjaD1GaHQsdS5Vc2VyUm91bmRYPW14LHUuVXNlclNlYXJjaD1PaHQsdS5Vc2VyU3F1YXJlPUt5LHUuVXNlclNxdWFyZTI9WHksdS5Vc2VyU3Rhcj1SaHQsdS5Vc2VyWD1CaHQsdS5Vc2VyWDI9bXgsdS5Vc2Vycz1xaHQsdS5Vc2VyczI9YngsdS5Vc2Vyc1JvdW5kPWJ4LHUuVXRlbnNpbHM9eXgsdS5VdGVuc2lsc0Nyb3NzZWQ9dngsdS5VdGlsaXR5UG9sZT1WaHQsdS5WYW49amh0LHUuVmFyaWFibGU9VWh0LHUuVmF1bHQ9V2h0LHUuVmVjdG9yU3F1YXJlPUdodCx1LlZlZ2FuPVlodCx1LlZlbmV0aWFuTWFzaz1aaHQsdS5WZW51cz1LaHQsdS5WZW51c0FuZE1hcnM9WGh0LHUuVmVyaWZpZWQ9U2csdS5WaWJyYXRlPUpodCx1LlZpYnJhdGVPZmY9UWh0LHUuVmlkZW89dHB0LHUuVmlkZW9PZmY9ZXB0LHUuVmlkZW90YXBlPWFwdCx1LlZpZXc9aXB0LHUuVm9pY2VtYWlsPXJwdCx1LlZvbGxleWJhbGw9c3B0LHUuVm9sdW1lPWhwdCx1LlZvbHVtZTE9bnB0LHUuVm9sdW1lMj1vcHQsdS5Wb2x1bWVPZmY9bHB0LHUuVm9sdW1lWD1jcHQsdS5Wb3RlPWRwdCx1LldhbGxldD11cHQsdS5XYWxsZXQyPXh4LHUuV2FsbGV0Q2FyZHM9cHB0LHUuV2FsbGV0TWluaW1hbD14eCx1LldhbGxwYXBlcj1mcHQsdS5XYW5kPW1wdCx1LldhbmQyPXd4LHUuV2FuZFNwYXJrbGVzPXd4LHUuV2FyZWhvdXNlPWdwdCx1Lldhc2hpbmdNYWNoaW5lPWJwdCx1LldhdGNoPXZwdCx1LldhdmVzPU1wdCx1LldhdmVzQXJyb3dEb3duPXlwdCx1LldhdmVzQXJyb3dVcD14cHQsdS5XYXZlc0xhZGRlcj13cHQsdS5XYXlwb2ludHM9enB0LHUuV2ViY2FtPWtwdCx1LldlYmhvb2s9Q3B0LHUuV2ViaG9va09mZj1TcHQsdS5XZWlnaHQ9THB0LHUuV2VpZ2h0VGlsZGU9X3B0LHUuV2hlYXQ9JHB0LHUuV2hlYXRPZmY9VHB0LHUuV2hvbGVXb3JkPUFwdCx1LldpZmk9UnB0LHUuV2lmaUNvZz1EcHQsdS5XaWZpSGlnaD1FcHQsdS5XaWZpTG93PVBwdCx1LldpZmlPZmY9SXB0LHUuV2lmaVBlbj1OcHQsdS5XaWZpU3luYz1GcHQsdS5XaWZpWmVybz1PcHQsdS5XaW5kPUhwdCx1LldpbmRBcnJvd0Rvd249QnB0LHUuV2luZT1xcHQsdS5XaW5lT2ZmPWpwdCx1LldvcmtmbG93PVZwdCx1Lldvcm09VXB0LHUuV3JhcFRleHQ9c3gsdS5XcmVuY2g9WXB0LHUuWD1XcHQsdS5YQ2lyY2xlPXdiLHUuWE9jdGFnb249RHYsdS5YU3F1YXJlPVF5LHUuWW91dHViZT1HcHQsdS5aYXA9WHB0LHUuWmFwT2ZmPVpwdCx1Llpvb21Jbj1RcHQsdS5ab29tT3V0PUtwdCx1LmNyZWF0ZUVsZW1lbnQ9dVplLHUuY3JlYXRlSWNvbnM9SnB0LHUuaWNvbnM9RGp0fSk7dmFyIGtsLGU5dCx0OXQ9YigoKT0+e3VlKCk7RHQoKTtrbD1VMShNeCgpLDEpLGU5dD0oKT0+e2xldCB0PU9iamVjdC5rZXlzKHp4LmZhKTtjb25zb2xlLmxvZygiRmlyc3QgZmV3IEx1Y2lkZSBrZXlzOiIsT2JqZWN0LmtleXMoa2wpLnNsaWNlKDAsNSkpO2xldCBlPU9iamVjdC5rZXlzKGtsKS5maWx0ZXIocz0+e2xldCBuPXNbMF09PT1zWzBdLnRvVXBwZXJDYXNlKCkmJnNbMF0hPT1zWzBdLnRvTG93ZXJDYXNlKCksbz10eXBlb2Yga2xbc109PSJmdW5jdGlvbiIsZD0hWyJjcmVhdGVFbGVtZW50IiwiY3JlYXRlSWNvbnMiLCJkZWZhdWx0Il0uaW5jbHVkZXMocyk7cmV0dXJuIG8mJm4mJmR9KS5tYXAocz0+cy5jaGFyQXQoMCkudG9Mb3dlckNhc2UoKStzLnNsaWNlKDEpKTtpZihjb25zb2xlLmxvZyhgRm91bmQgJHtlLmxlbmd0aH0gTHVjaWRlIGljb25zYCksZS5sZW5ndGg9PT0wJiYoY29uc29sZS5sb2coIlRyeWluZyBhbHRlcm5hdGl2ZSBhcHByb2FjaCB0byBmaW5kIEx1Y2lkZSBpY29ucyIpLGtsLmljb25zKSl7bGV0IHM9a2wuaWNvbnN8fHt9O2UucHVzaCguLi5PYmplY3Qua2V5cyhzKSksY29uc29sZS5sb2coYEZvdW5kICR7ZS5sZW5ndGh9IGljb25zIHZpYSBhbHRlcm5hdGl2ZSBtZXRob2RgKX1sZXQgYT0oKT0+e2xldCBzPXQubWFwKGM9PmBmYToke2N9YCksbj1lLm1hcChjPT5gbHVjaWRlOiR7Y31gKSxvPVsuLi5zLC4uLm5dLGQ9by5qb2luKGAKYCk7bmF2aWdhdG9yLmNsaXBib2FyZC53cml0ZVRleHQoZCkudGhlbigoKT0+e2xldCBoPXdpbmRvdy5ldmVudC5jdXJyZW50VGFyZ2V0LGw9aC50ZXh0Q29udGVudDtoLnRleHRDb250ZW50PWBcdTI3MTMgQ29waWVkICR7by5sZW5ndGh9IGljb24gbmFtZXMhYCxzZXRUaW1lb3V0KCgpPT57aC50ZXh0Q29udGVudD1sfSwyZTMpfSl9LGk9cz0+e2xldCBuPXMudGFyZ2V0LnZhbHVlLnRvTG93ZXJDYXNlKCkudHJpbSgpLG89cy50YXJnZXQuY2xvc2VzdCgiLmRlbW9Db250YWluZXIiKTtvLnF1ZXJ5U2VsZWN0b3JBbGwoIi5pY29uQ29udGFpbmVyIikuZm9yRWFjaChjPT57bGV0IGg9Yy5nZXRBdHRyaWJ1dGUoImRhdGEtbmFtZSIpO249PT0iInx8aCYmaC5pbmNsdWRlcyhuKT9jLmNsYXNzTGlzdC5yZW1vdmUoImhpZGRlbiIpOmMuY2xhc3NMaXN0LmFkZCgiaGlkZGVuIil9KSxvLnF1ZXJ5U2VsZWN0b3JBbGwoIi5zZWN0aW9uLWNvbnRhaW5lciIpLmZvckVhY2goYz0+e2xldCBoPWMucXVlcnlTZWxlY3RvckFsbCgiLmljb25Db250YWluZXI6bm90KC5oaWRkZW4pIikubGVuZ3RoLGw9Yy5xdWVyeVNlbGVjdG9yKCIuaWNvbi1jb3VudCIpO2lmKGwpe2xldCBmPWMuY2xhc3NMaXN0LmNvbnRhaW5zKCJmYS1zZWN0aW9uIik/dC5sZW5ndGg6ZS5sZW5ndGg7bC50ZXh0Q29udGVudD1oPT09Zj9gJHtmfSBpY29uc2A6YCR7aH0gb2YgJHtmfSBpY29uc2B9fSl9LHI9KHMsbik9PntsZXQgbz1gJHtufToke3N9YDtuYXZpZ2F0b3IuY2xpcGJvYXJkLndyaXRlVGV4dChvKS50aGVuKCgpPT57bGV0IGg9d2luZG93LmV2ZW50LmN1cnJlbnRUYXJnZXQucXVlcnlTZWxlY3RvcigiLmNvcHktdG9vbHRpcCIpO2gmJihoLnRleHRDb250ZW50PSJDb3BpZWQhIixzZXRUaW1lb3V0KCgpPT57aC50ZXh0Q29udGVudD0iQ2xpY2sgdG8gY29weSJ9LDJlMykpfSl9O3JldHVybiB3YAogIDxzdHlsZT4KICAgIC5kZW1vQ29udGFpbmVyIHsKICAgICAgd2lkdGg6IDEwMCU7CiAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7CiAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgIGZsZXgtd3JhcDogd3JhcDsKICAgICAgYmFja2dyb3VuZDogIzExMTExMTsKICAgICAgcGFkZGluZzogMjBweDsKICAgICAgZm9udC1zaXplOiAzMHB4OwogICAgICBmb250LWZhbWlseTogLWFwcGxlLXN5c3RlbSwgQmxpbmtNYWNTeXN0ZW1Gb250LCAiU2Vnb2UgVUkiLCBSb2JvdG8sIE94eWdlbi1TYW5zLCBVYnVudHUsIENhbnRhcmVsbCwgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjsKICAgIH0KICAgIAogICAgLnNlYXJjaC1jb250YWluZXIgewogICAgICB3aWR0aDogMTAwJTsKICAgICAgbWFyZ2luLWJvdHRvbTogMjBweDsKICAgICAgZGlzcGxheTogZmxleDsKICAgICAgZ2FwOiAxMHB4OwogICAgfQogICAgCiAgICAjaWNvblNlYXJjaCB7CiAgICAgIGZsZXg6IDE7CiAgICAgIHBhZGRpbmc6IDEycHggMTZweDsKICAgICAgZm9udC1zaXplOiAxNnB4OwogICAgICBib3JkZXI6IG5vbmU7CiAgICAgIGJvcmRlci1yYWRpdXM6IDRweDsKICAgICAgYmFja2dyb3VuZDogIzIyMjsKICAgICAgY29sb3I6ICNmZmY7CiAgICAgIGJvcmRlcjogMXB4IHNvbGlkICMzMzM7CiAgICB9CiAgICAKICAgICNpY29uU2VhcmNoOmZvY3VzIHsKICAgICAgb3V0bGluZTogbm9uZTsKICAgICAgYm9yZGVyLWNvbG9yOiAjZTQwMDJiOwogICAgfQogICAgCiAgICAuY29weS1hbGwtYnV0dG9uIHsKICAgICAgcGFkZGluZzogMTJweCAyMHB4OwogICAgICBmb250LXNpemU6IDE2cHg7CiAgICAgIGJvcmRlcjogbm9uZTsKICAgICAgYm9yZGVyLXJhZGl1czogNHB4OwogICAgICBiYWNrZ3JvdW5kOiAjZTQwMDJiOwogICAgICBjb2xvcjogI2ZmZjsKICAgICAgY3Vyc29yOiBwb2ludGVyOwogICAgICB0cmFuc2l0aW9uOiBhbGwgMC4yczsKICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDsKICAgIH0KICAgIAogICAgLmNvcHktYWxsLWJ1dHRvbjpob3ZlciB7CiAgICAgIGJhY2tncm91bmQ6ICNjNDAwMWI7CiAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtMXB4KTsKICAgIH0KICAgIAogICAgLmNvcHktYWxsLWJ1dHRvbjphY3RpdmUgewogICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMCk7CiAgICB9CiAgICAKICAgIGRlZXMtaWNvbiB7CiAgICAgIHRyYW5zaXRpb246IGFsbCAwLjJzIGVhc2U7CiAgICAgIGNvbG9yOiAjZmZmZmZmOwogICAgfQoKICAgIC5pY29uQ29udGFpbmVyIHsKICAgICAgZGlzcGxheTogZmxleDsKICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgcGFkZGluZzogMjBweCAxNnB4IDBweCAxNnB4OwogICAgICBib3JkZXI6IDFweCBzb2xpZCAjMzMzMzMzOwogICAgICBtYXJnaW4tcmlnaHQ6IDEwcHg7CiAgICAgIG1hcmdpbi1ib3R0b206IDEwcHg7CiAgICAgIGJvcmRlci1yYWRpdXM6IDRweDsKICAgICAgdHJhbnNpdGlvbjogYmFja2dyb3VuZC1jb2xvciAwLjJzOwogICAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgIH0KICAgIAogICAgLmljb25Db250YWluZXI6aG92ZXIgewogICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMjIyOwogICAgfQoKICAgIC5pY29uTmFtZSB7CiAgICAgIGZvbnQtc2l6ZTogMTJweDsKICAgICAgdGV4dC1hbGlnbjogY2VudGVyOwogICAgICBjb2xvcjogI2NjYzsKICAgICAgYmFja2dyb3VuZDogIzMzMzMzMzsKICAgICAgcGFkZGluZzogNnB4IDEwcHg7CiAgICAgIG1hcmdpbi1sZWZ0OiAtMTZweDsKICAgICAgbWFyZ2luLXJpZ2h0OiAtMTZweDsKICAgICAgbWFyZ2luLXRvcDogMjBweDsKICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDsKICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7CiAgICAgIG1heC13aWR0aDogMTIwcHg7CiAgICAgIGJvcmRlci1yYWRpdXM6IDAgMCA0cHggNHB4OwogICAgfQoKICAgIC5zZWN0aW9uLXRpdGxlIHsKICAgICAgd2lkdGg6IDEwMCU7CiAgICAgIGNvbG9yOiAjZmZmZmZmOwogICAgICBmb250LXNpemU6IDI0cHg7CiAgICAgIG1hcmdpbjogMjBweCAwOwogICAgICBwYWRkaW5nLWJvdHRvbTogMTBweDsKICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICMzMzMzMzM7CiAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjsKICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgIH0KICAgIAogICAgLmFwaS1ub3RlIHsKICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgICBjb2xvcjogI2U0MDAyYjsKICAgICAgbWFyZ2luLWJvdHRvbTogMjBweDsKICAgICAgcGFkZGluZzogMTBweDsKICAgICAgYm9yZGVyOiAxcHggc29saWQgI2U0MDAyYjsKICAgICAgYm9yZGVyLXJhZGl1czogNHB4OwogICAgICBiYWNrZ3JvdW5kOiByZ2JhKDIyOCwgMCwgNDMsIDAuMSk7CiAgICB9CiAgICAKICAgIC5pY29uLWNvdW50IHsKICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgICBjb2xvcjogIzg4ODsKICAgICAgZm9udC13ZWlnaHQ6IG5vcm1hbDsKICAgICAgYmFja2dyb3VuZDogIzIyMjsKICAgICAgcGFkZGluZzogNXB4IDEwcHg7CiAgICAgIGJvcmRlci1yYWRpdXM6IDIwcHg7CiAgICB9CiAgICAKICAgIC5pY29ucy1ncmlkIHsKICAgICAgZGlzcGxheTogZmxleDsKICAgICAgZmxleC13cmFwOiB3cmFwOwogICAgICB3aWR0aDogMTAwJTsKICAgIH0KICAgIAogICAgLnNlY3Rpb24tY29udGFpbmVyIHsKICAgICAgd2lkdGg6IDEwMCU7CiAgICAgIG1hcmdpbi1ib3R0b206IDMwcHg7CiAgICB9CiAgICAKICAgIC5jb3B5LXRvb2x0aXAgewogICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgIGJhY2tncm91bmQ6ICMzMzM7CiAgICAgIGNvbG9yOiB3aGl0ZTsKICAgICAgcGFkZGluZzogNXB4IDEwcHg7CiAgICAgIGJvcmRlci1yYWRpdXM6IDRweDsKICAgICAgZm9udC1zaXplOiAxMnB4OwogICAgICB0b3A6IC0zMHB4OwogICAgICBvcGFjaXR5OiAwOwogICAgICB0cmFuc2l0aW9uOiBvcGFjaXR5IDAuM3M7CiAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lOwogICAgfQogICAgCiAgICAuaWNvbkNvbnRhaW5lcjpob3ZlciAuY29weS10b29sdGlwIHsKICAgICAgb3BhY2l0eTogMTsKICAgIH0KCiAgICAuaWNvbkNvbnRhaW5lcjpob3ZlciBkZWVzLWljb24gewogICAgICB0cmFuc2Zvcm06IHNjYWxlKDEuMSk7CiAgICB9CiAgICAKICAgIC5oaWRkZW4gewogICAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7CiAgICB9CiAgPC9zdHlsZT4KICAKICA8ZGl2IGNsYXNzPSJkZW1vQ29udGFpbmVyIj4KICAgIDxkaXYgY2xhc3M9InNlYXJjaC1jb250YWluZXIiPgogICAgICA8aW5wdXQgdHlwZT0idGV4dCIgaWQ9Imljb25TZWFyY2giIHBsYWNlaG9sZGVyPSJTZWFyY2ggaWNvbnMuLi4iIEBpbnB1dD0ke2l9PgogICAgICA8YnV0dG9uIGNsYXNzPSJjb3B5LWFsbC1idXR0b24iIEBjbGljaz0ke2F9PvCfk4sgQ29weSBBbGwgSWNvbiBOYW1lczwvYnV0dG9uPgogICAgPC9kaXY+CiAgICAKICAgIDxkaXYgY2xhc3M9ImFwaS1ub3RlIj4KICAgICAgTmV3IEFQSTogVXNlIDxjb2RlPmljb249ImZhOmljb25OYW1lIjwvY29kZT4gb3IgPGNvZGU+aWNvbj0ibHVjaWRlOmljb25OYW1lIjwvY29kZT4gaW5zdGVhZCBvZiA8Y29kZT5pY29uRkE8L2NvZGU+LiAKICAgICAgQ2xpY2sgYW55IGljb24gdG8gY29weSBpdHMgbmV3IGZvcm1hdCB0byBjbGlwYm9hcmQuCiAgICA8L2Rpdj4KICAgIAogICAgPGRpdiBjbGFzcz0ic2VjdGlvbi1jb250YWluZXIgZmEtc2VjdGlvbiI+CiAgICAgIDxkaXYgY2xhc3M9InNlY3Rpb24tdGl0bGUiPgogICAgICAgIEZvbnRBd2Vzb21lIEljb25zCiAgICAgICAgPHNwYW4gY2xhc3M9Imljb24tY291bnQiPiR7dC5sZW5ndGh9IGljb25zPC9zcGFuPgogICAgICA8L2Rpdj4KICAgICAgPGRpdiBjbGFzcz0iaWNvbnMtZ3JpZCI+CiAgICAgICAgJHt0Lm1hcChzPT57bGV0IG49YGZhOiR7c31gO3JldHVybiB3YAogICAgICAgICAgICAgIDxkaXYgY2xhc3M9Imljb25Db250YWluZXIgZmEtaWNvbiIgZGF0YS1uYW1lPSR7cy50b0xvd2VyQ2FzZSgpfSBAY2xpY2s9JHsoKT0+cihzLCJmYSIpfT4KICAgICAgICAgICAgICAgIDxkZWVzLWljb24gLmljb249JHtufSBpY29uU2l6ZT0iMjQiPjwvZGVlcy1pY29uPgogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iaWNvbk5hbWUiPmZhOiR7c308L2Rpdj4KICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJjb3B5LXRvb2x0aXAiPkNsaWNrIHRvIGNvcHk8L3NwYW4+CiAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIGB9KX0KICAgICAgPC9kaXY+CiAgICA8L2Rpdj4KCiAgICA8ZGl2IGNsYXNzPSJzZWN0aW9uLWNvbnRhaW5lciBsdWNpZGUtc2VjdGlvbiI+CiAgICAgIDxkaXYgY2xhc3M9InNlY3Rpb24tdGl0bGUiPgogICAgICAgIEx1Y2lkZSBJY29ucwogICAgICAgIDxzcGFuIGNsYXNzPSJpY29uLWNvdW50Ij4ke2UubGVuZ3RofSBpY29uczwvc3Bhbj4KICAgICAgPC9kaXY+CiAgICAgIDxkaXYgY2xhc3M9Imljb25zLWdyaWQiPgogICAgICAgICR7ZS5tYXAocz0+e2xldCBuPWBsdWNpZGU6JHtzfWA7cmV0dXJuIHdgCiAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iaWNvbkNvbnRhaW5lciBsdWNpZGUtaWNvbiIgZGF0YS1uYW1lPSR7cy50b0xvd2VyQ2FzZSgpfSBAY2xpY2s9JHsoKT0+cihzLCJsdWNpZGUiKX0+CiAgICAgICAgICAgICAgICA8ZGVlcy1pY29uIC5pY29uPSR7bn0gaWNvblNpemU9IjI0Ij48L2RlZXMtaWNvbj4KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9Imljb25OYW1lIj5sdWNpZGU6JHtzfTwvZGl2PgogICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImNvcHktdG9vbHRpcCI+Q2xpY2sgdG8gY29weTwvc3Bhbj4KICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgYH0pfQogICAgICA8L2Rpdj4KICAgIDwvZGl2PgogIDwvZGl2PgogIGB9fSk7ZnVuY3Rpb24gUGp0KCl7Q2wuc2l6ZT5hOXQmJkFycmF5LmZyb20oQ2wua2V5cygpKS5zbGljZSgwLGE5dC81KS5mb3JFYWNoKGU9PkNsLmRlbGV0ZShlKSl9dmFyIGt4LHlxLFNsLGppLEVqdCx6eCxDbCxhOXQsaTl0LER0PWIoKCk9Pnt1ZSgpO1R0KCk7cWUoKTtYOGUoKTt0dmUoKTt4d2UoKTtkWmUoKTt0OXQoKTtreD1VMShNeCgpLDEpLHlxPVUxKE14KCksMSksU2w9ZnVuY3Rpb24odCxlLGEsaSxyLHMpe2Z1bmN0aW9uIG4oeCl7aWYoeCE9PXZvaWQgMCYmdHlwZW9mIHghPSJmdW5jdGlvbiIpdGhyb3cgbmV3IFR5cGVFcnJvcigiRnVuY3Rpb24gZXhwZWN0ZWQiKTtyZXR1cm4geH1mb3IodmFyIG89aS5raW5kLGQ9bz09PSJnZXR0ZXIiPyJnZXQiOm89PT0ic2V0dGVyIj8ic2V0IjoidmFsdWUiLGM9IWUmJnQ/aS5zdGF0aWM/dDp0LnByb3RvdHlwZTpudWxsLGg9ZXx8KGM/T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihjLGkubmFtZSk6e30pLGwsZj0hMSxnPWEubGVuZ3RoLTE7Zz49MDtnLS0pe3ZhciB5PXt9O2Zvcih2YXIgdiBpbiBpKXlbdl09dj09PSJhY2Nlc3MiP3t9Omlbdl07Zm9yKHZhciB2IGluIGkuYWNjZXNzKXkuYWNjZXNzW3ZdPWkuYWNjZXNzW3ZdO3kuYWRkSW5pdGlhbGl6ZXI9ZnVuY3Rpb24oeCl7aWYoZil0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgYWRkIGluaXRpYWxpemVycyBhZnRlciBkZWNvcmF0aW9uIGhhcyBjb21wbGV0ZWQiKTtzLnB1c2gobih4fHxudWxsKSl9O3ZhciBtPSgwLGFbZ10pKG89PT0iYWNjZXNzb3IiP3tnZXQ6aC5nZXQsc2V0Omguc2V0fTpoW2RdLHkpO2lmKG89PT0iYWNjZXNzb3IiKXtpZihtPT09dm9pZCAwKWNvbnRpbnVlO2lmKG09PT1udWxsfHx0eXBlb2YgbSE9Im9iamVjdCIpdGhyb3cgbmV3IFR5cGVFcnJvcigiT2JqZWN0IGV4cGVjdGVkIik7KGw9bihtLmdldCkpJiYoaC5nZXQ9bCksKGw9bihtLnNldCkpJiYoaC5zZXQ9bCksKGw9bihtLmluaXQpKSYmci51bnNoaWZ0KGwpfWVsc2UobD1uKG0pKSYmKG89PT0iZmllbGQiP3IudW5zaGlmdChsKTpoW2RdPWwpfWMmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShjLGkubmFtZSxoKSxmPSEwfSxqaT1mdW5jdGlvbih0LGUsYSl7Zm9yKHZhciBpPWFyZ3VtZW50cy5sZW5ndGg+MixyPTA7cjxlLmxlbmd0aDtyKyspYT1pP2Vbcl0uY2FsbCh0LGEpOmVbcl0uY2FsbCh0KTtyZXR1cm4gaT9hOnZvaWQgMH0sRWp0PXthcnJvd1JpZ2h0OmxnLGFycm93VXBSaWdodEZyb21TcXVhcmU6aDgsYmVsbDpYbSxidWc6aGcsYnVpbGRpbmc6c2csY2FyZXRMZWZ0OkptLGNhcmV0UmlnaHQ6Wm0sY2hlY2s6b2csY2lyY2xlSW5mbzp1OCxjaXJjbGVDaGVjazpJNSxjaXJjbGVDaGVja1NvbGlkOm84LGNpcmNsZVhtYXJrOmNsLGNpcmNsZVhtYXJrU29saWQ6ZmwsY2xvY2tSb3RhdGVMZWZ0Omw4LGNvcHk6S2YsY29weVNvbGlkOnBnLGRlc2t0b3A6cDgsZXllOlFtLGV5ZVNsYXNoOnVnLGZpbGVJbnZvaWNlOmNnLGZpbGVJbnZvaWNlRG9sbGVyOmRnLGdlYXI6czgsZ3JpcDptbCxtYWduaWZ5aW5nR2xhc3M6YTgsbWVzc2FnZTpFNSxtZXNzYWdlU29saWQ6ZTgsbW9uZXlDaGVja0RvbGxhcjpkOCxtdWdIb3Q6ZmcsbWludXM6SjUsbmV0d29ya1dpcmVkOmlnLHBhcGVyY2xpcDpuZyxwYXN0ZTpENSxwYXN0ZVNvbGlkOlE1LHBlblRvU3F1YXJlOmk4LHBsdXM6YzgscmVjZWlwdDplZyxyc3M6dDgsc2hhcmU6cjgsc3VuOlhmLHN1blNvbGlkOmFnLHRlcm1pbmFsOnJnLHRyYXNoOmY4LHRyYXNoU29saWQ6ZjgsdHJhc2hDYW46UDUsdHJhc2hDYW5Tb2xpZDpuOCx1c2Vyczp0Zyx3YWxsZXQ6S20seG1hcms6aW8sZmFjZWJvb2s6RmYsZ29vZ2xlOklmLGluc3RhZ3JhbTpCZixsaW5rZWRpbjpOZixtZWRpdW06TDUsc2xhY2s6T2YsdGlrdG9rOlJmLHR3aXR0ZXI6SGZ9LHp4PXtmYTpFanR9LENsPW5ldyBNYXAsYTl0PTUwMDtpOXQ9KCgpPT57bGV0IHQ9W3BlKCJkZWVzLWljb24iKV0sZSxhPVtdLGkscj14ZSxzLG49W10sbz1bXSxkLGM9W10saD1bXSxsLGY9W10sZz1bXSx5LHY9W10sbT1bXSx4LE09W10sUz1bXTt2YXIgRj1jbGFzcyBleHRlbmRzIHJ7c3RhdGlje2k9dGhpc31zdGF0aWN7bGV0IF89dHlwZW9mIFN5bWJvbD09ImZ1bmN0aW9uIiYmU3ltYm9sLm1ldGFkYXRhP09iamVjdC5jcmVhdGUocltTeW1ib2wubWV0YWRhdGFdPz9udWxsKTp2b2lkIDA7cz1bSSh7dHlwZTpTdHJpbmcsY29udmVydGVyOntmcm9tQXR0cmlidXRlOms9PmssdG9BdHRyaWJ1dGU6az0+a319KV0sZD1bSSh7dHlwZTpTdHJpbmcsY29udmVydGVyOntmcm9tQXR0cmlidXRlOms9PmssdG9BdHRyaWJ1dGU6az0+a319KV0sbD1bSSh7dHlwZTpOdW1iZXJ9KV0seT1bSSh7dHlwZTpTdHJpbmd9KV0seD1bSSh7dHlwZTpOdW1iZXJ9KV0sU2wodGhpcyxudWxsLHMse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJpY29uRkEiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOms9PiJpY29uRkEiaW4gayxnZXQ6az0+ay5pY29uRkEsc2V0OihrLE4pPT57ay5pY29uRkE9Tn19LG1ldGFkYXRhOl99LG4sbyksU2wodGhpcyxudWxsLGQse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJpY29uIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczprPT4iaWNvbiJpbiBrLGdldDprPT5rLmljb24sc2V0OihrLE4pPT57ay5pY29uPU59fSxtZXRhZGF0YTpffSxjLGgpLFNsKHRoaXMsbnVsbCxsLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiaWNvblNpemUiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOms9PiJpY29uU2l6ZSJpbiBrLGdldDprPT5rLmljb25TaXplLHNldDooayxOKT0+e2suaWNvblNpemU9Tn19LG1ldGFkYXRhOl99LGYsZyksU2wodGhpcyxudWxsLHkse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJjb2xvciIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6az0+ImNvbG9yImluIGssZ2V0Oms9PmsuY29sb3Isc2V0OihrLE4pPT57ay5jb2xvcj1OfX0sbWV0YWRhdGE6X30sdixtKSxTbCh0aGlzLG51bGwseCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InN0cm9rZVdpZHRoIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczprPT4ic3Ryb2tlV2lkdGgiaW4gayxnZXQ6az0+ay5zdHJva2VXaWR0aCxzZXQ6KGssTik9PntrLnN0cm9rZVdpZHRoPU59fSxtZXRhZGF0YTpffSxNLFMpLFNsKG51bGwsZT17dmFsdWU6aX0sdCx7a2luZDoiY2xhc3MiLG5hbWU6aS5uYW1lLG1ldGFkYXRhOl99LG51bGwsYSksRj1pPWUudmFsdWUsXyYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGksU3ltYm9sLm1ldGFkYXRhLHtlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMCx2YWx1ZTpffSl9c3RhdGljIGRlbW89ZTl0O3N0YXRpYyBkZW1vR3JvdXBzPVsiVXRpbGl0eSJdOyNlPWppKHRoaXMsbix2b2lkIDApO2dldCBpY29uRkEoKXtyZXR1cm4gdGhpcy4jZX1zZXQgaWNvbkZBKF8pe3RoaXMuI2U9X30jdD0oamkodGhpcyxvKSxqaSh0aGlzLGMsdm9pZCAwKSk7Z2V0IGljb24oKXtyZXR1cm4gdGhpcy4jdH1zZXQgaWNvbihfKXt0aGlzLiN0PV99I2E9KGppKHRoaXMsaCksamkodGhpcyxmLHZvaWQgMCkpO2dldCBpY29uU2l6ZSgpe3JldHVybiB0aGlzLiNhfXNldCBpY29uU2l6ZShfKXt0aGlzLiNhPV99I2k9KGppKHRoaXMsZyksamkodGhpcyx2LCJjdXJyZW50Q29sb3IiKSk7Z2V0IGNvbG9yKCl7cmV0dXJuIHRoaXMuI2l9c2V0IGNvbG9yKF8pe3RoaXMuI2k9X30jcj0oamkodGhpcyxtKSxqaSh0aGlzLE0sMikpO2dldCBzdHJva2VXaWR0aCgpe3JldHVybiB0aGlzLiNyfXNldCBzdHJva2VXaWR0aChfKXt0aGlzLiNyPV99bGFzdEljb249KGppKHRoaXMsUyksbnVsbCk7bGFzdEljb25TaXplPW51bGw7bGFzdENvbG9yPW51bGw7bGFzdFN0cm9rZVdpZHRoPW51bGw7Y29uc3RydWN0b3IoKXtzdXBlcigpLHYxLnNldHVwKCl9Z2V0RWZmZWN0aXZlSWNvbigpe3JldHVybiB0aGlzLmljb24/dGhpcy5pY29uOnRoaXMuaWNvbkZBP3RoaXMuaWNvbkZBLnN0YXJ0c1dpdGgoImx1Y2lkZToiKT90aGlzLmljb25GQTpgZmE6JHt0aGlzLmljb25GQX1gOm51bGx9cGFyc2VJY29uU3RyaW5nKF8pe2xldCBrPV8udG9Mb3dlckNhc2UoKTtyZXR1cm4gay5zdGFydHNXaXRoKCJmYToiKT97dHlwZToiZmEiLG5hbWU6Xy5zdWJzdHJpbmcoMyl9Omsuc3RhcnRzV2l0aCgibHVjaWRlOiIpP3t0eXBlOiJsdWNpZGUiLG5hbWU6Xy5zdWJzdHJpbmcoNyl9Ont0eXBlOiJsdWNpZGUiLG5hbWU6X319cmVuZGVyTHVjaWRlSWNvbihfKXtsZXQgaz1gbHVjaWRlOiR7X306JHt0aGlzLmljb25TaXplfToke3RoaXMuY29sb3J9OiR7dGhpcy5zdHJva2VXaWR0aH1gO2lmKENsLmhhcyhrKSlyZXR1cm4gQ2wuZ2V0KGspfHwiIjt0cnl7bGV0IE49Xy5jaGFyQXQoMCkudG9VcHBlckNhc2UoKStfLnNsaWNlKDEpO2lmKCFreFtOXSlyZXR1cm4gY29uc29sZS53YXJuKGBMdWNpZGUgaWNvbiAnJHtOfScgbm90IGZvdW5kIGluIGx1Y2lkZUljb25zIG9iamVjdGApLCIiO2xldCBMPSgwLHlxLmNyZWF0ZUVsZW1lbnQpKGt4W05dLHtjb2xvcjp0aGlzLmNvbG9yLHNpemU6dGhpcy5pY29uU2l6ZSxzdHJva2VXaWR0aDp0aGlzLnN0cm9rZVdpZHRofSk7aWYoIUwpcmV0dXJuIGNvbnNvbGUud2FybihgY3JlYXRlRWxlbWVudCByZXR1cm5lZCBlbXB0eSByZXN1bHQgZm9yICR7Tn1gKSwiIjtsZXQgQT1MLm91dGVySFRNTDtyZXR1cm4gQ2wuc2V0KGssQSksUGp0KCksQX1jYXRjaChOKXtyZXR1cm4gY29uc29sZS5lcnJvcihgRXJyb3IgcmVuZGVyaW5nIEx1Y2lkZSBpY29uICR7X306YCxOKSxgPHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIke3RoaXMuaWNvblNpemV9IiBoZWlnaHQ9IiR7dGhpcy5pY29uU2l6ZX0iIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0ibm9uZSIgc3Ryb2tlPSIke3RoaXMuY29sb3J9IiBzdHJva2Utd2lkdGg9IiR7dGhpcy5zdHJva2VXaWR0aH0iIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIgc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCI+CiAgICAgICAgPHRleHQgeD0iNTAlIiB5PSI1MCUiIGZvbnQtc2l6ZT0iNiIgdGV4dC1hbmNob3I9Im1pZGRsZSIgZG9taW5hbnQtYmFzZWxpbmU9Im1pZGRsZSIgZmlsbD0iJHt0aGlzLmNvbG9yfSI+JHtffTwvdGV4dD4KICAgICAgPC9zdmc+YH19c3RhdGljIHN0eWxlcz1bQ2UscC5kZWZhdWx0U3R5bGVzLFFgCiAgICAgIC8qIFRPRE86IE1pZ3JhdGUgaGFyZGNvZGVkIHZhbHVlcyB0byAtLWRlZXMtKiBDU1MgdmFyaWFibGVzICovCiAgICAgIDpob3N0IHsKICAgICAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOwogICAgICAgIGxpbmUtaGVpZ2h0OiAxOwogICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7CiAgICAgIH0KCiAgICAgIC8qIEltcHJvdmUgcmVuZGVyaW5nIHBlcmZvcm1hbmNlICovCiAgICAgICNpY29uQ29udGFpbmVyIHN2ZyB7CiAgICAgICAgZGlzcGxheTogYmxvY2s7CiAgICAgICAgaGVpZ2h0OiAxMDAlOwogICAgICAgIHdpZHRoOiAxMDAlOwogICAgICAgIHdpbGwtY2hhbmdlOiB0cmFuc2Zvcm07IC8qIEhlbHBzIHdpdGggYW5pbWF0aW9ucyAqLwogICAgICAgIGNvbnRhaW46IHN0cmljdDsgLyogUGVyZm9ybWFuY2Ugb3B0aW1pemF0aW9uICovCiAgICAgIH0KICAgIGBdO3JlbmRlcigpe3JldHVybiB3YAogICAgICAke3YxLnN0eWxlc30KICAgICAgPHN0eWxlPgogICAgICAgICNpY29uQ29udGFpbmVyIHsKICAgICAgICAgIHdpZHRoOiAke3RoaXMuaWNvblNpemV9cHg7CiAgICAgICAgICBoZWlnaHQ6ICR7dGhpcy5pY29uU2l6ZX1weDsKICAgICAgICB9CiAgICAgIDwvc3R5bGU+CiAgICAgIDxkaXYgaWQ9Imljb25Db250YWluZXIiPjwvZGl2PgogICAgYH11cGRhdGVkKCl7dGhpcy5pY29uU2l6ZXx8KHRoaXMuaWNvblNpemU9cGFyc2VJbnQoZ2xvYmFsVGhpcy5nZXRDb21wdXRlZFN0eWxlKHRoaXMpLmZvbnRTaXplLnJlcGxhY2UoL1xEL2csIiIpKSk7bGV0IF89dGhpcy5nZXRFZmZlY3RpdmVJY29uKCk7aWYodGhpcy5sYXN0SWNvbj09PV8mJnRoaXMubGFzdEljb25TaXplPT09dGhpcy5pY29uU2l6ZSYmdGhpcy5sYXN0Q29sb3I9PT10aGlzLmNvbG9yJiZ0aGlzLmxhc3RTdHJva2VXaWR0aD09PXRoaXMuc3Ryb2tlV2lkdGgpcmV0dXJuO3RoaXMubGFzdEljb249Xyx0aGlzLmxhc3RJY29uU2l6ZT10aGlzLmljb25TaXplLHRoaXMubGFzdENvbG9yPXRoaXMuY29sb3IsdGhpcy5sYXN0U3Ryb2tlV2lkdGg9dGhpcy5zdHJva2VXaWR0aDtsZXQgaz10aGlzLnNoYWRvd1Jvb3Q/LnF1ZXJ5U2VsZWN0b3IoIiNpY29uQ29udGFpbmVyIik7aWYoISgha3x8IV8pKXRyeXtsZXR7dHlwZTpOLG5hbWU6TH09dGhpcy5wYXJzZUljb25TdHJpbmcoXyk7aWYoTj09PSJsdWNpZGUiKXtrLmlubmVySFRNTD0iIjt0cnl7bGV0IEE9TC5jaGFyQXQoMCkudG9VcHBlckNhc2UoKStMLnNsaWNlKDEpO2lmKGt4W0FdKXtsZXQgcT0oMCx5cS5jcmVhdGVFbGVtZW50KShreFtBXSx7Y29sb3I6dGhpcy5jb2xvcixzaXplOnRoaXMuaWNvblNpemUsc3Ryb2tlV2lkdGg6dGhpcy5zdHJva2VXaWR0aH0pO2lmKHEpe2suYXBwZW5kQ2hpbGQocSk7cmV0dXJufX10aHJvdyBuZXcgRXJyb3IoYENvdWxkIG5vdCBjcmVhdGUgZWxlbWVudCBmb3IgJHtBfWApfWNhdGNoKEEpe2NvbnNvbGUuZXJyb3IoIkVycm9yIHJlbmRlcmluZyBMdWNpZGUgaWNvbjoiLEEpO2xldCBxPXRoaXMucmVuZGVyTHVjaWRlSWNvbihMKTtxJiYoay5pbm5lckhUTUw9cSl9fWVsc2V7bGV0IEE9enguZmFbTF07aWYoQSl7bGV0IHE9bkUoQSkuaHRtbFswXTtrLmlubmVySFRNTD1xfWVsc2UgY29uc29sZS53YXJuKGBGb250QXdlc29tZSBpY29uIG5vdCBmb3VuZDogJHtMfWApfX1jYXRjaChOKXtjb25zb2xlLmVycm9yKGBFcnJvciB1cGRhdGluZyBpY29uICR7X306YCxOKX19YXN5bmMgZGlzY29ubmVjdGVkQ2FsbGJhY2soKXtzdXBlci5kaXNjb25uZWN0ZWRDYWxsYmFjaygpLHRoaXMubGFzdEljb249bnVsbCx0aGlzLmxhc3RJY29uU2l6ZT1udWxsLHRoaXMubGFzdENvbG9yPW51bGwsdGhpcy5sYXN0U3Ryb2tlV2lkdGg9bnVsbH1zdGF0aWN7amkoaSxhKX19O3JldHVybiBGPWl9KSgpfSk7dmFyIHI5dCx4cSxVdCxuMj1iKCgpPT57czIoKTttNWUoKTt1ZSgpO1R0KCk7THMoKTt1aSgpO0R0KCk7cWUoKTtyOXQ9ZnVuY3Rpb24odCxlLGEsaSxyLHMpe2Z1bmN0aW9uIG4oeCl7aWYoeCE9PXZvaWQgMCYmdHlwZW9mIHghPSJmdW5jdGlvbiIpdGhyb3cgbmV3IFR5cGVFcnJvcigiRnVuY3Rpb24gZXhwZWN0ZWQiKTtyZXR1cm4geH1mb3IodmFyIG89aS5raW5kLGQ9bz09PSJnZXR0ZXIiPyJnZXQiOm89PT0ic2V0dGVyIj8ic2V0IjoidmFsdWUiLGM9IWUmJnQ/aS5zdGF0aWM/dDp0LnByb3RvdHlwZTpudWxsLGg9ZXx8KGM/T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihjLGkubmFtZSk6e30pLGwsZj0hMSxnPWEubGVuZ3RoLTE7Zz49MDtnLS0pe3ZhciB5PXt9O2Zvcih2YXIgdiBpbiBpKXlbdl09dj09PSJhY2Nlc3MiP3t9Omlbdl07Zm9yKHZhciB2IGluIGkuYWNjZXNzKXkuYWNjZXNzW3ZdPWkuYWNjZXNzW3ZdO3kuYWRkSW5pdGlhbGl6ZXI9ZnVuY3Rpb24oeCl7aWYoZil0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgYWRkIGluaXRpYWxpemVycyBhZnRlciBkZWNvcmF0aW9uIGhhcyBjb21wbGV0ZWQiKTtzLnB1c2gobih4fHxudWxsKSl9O3ZhciBtPSgwLGFbZ10pKG89PT0iYWNjZXNzb3IiP3tnZXQ6aC5nZXQsc2V0Omguc2V0fTpoW2RdLHkpO2lmKG89PT0iYWNjZXNzb3IiKXtpZihtPT09dm9pZCAwKWNvbnRpbnVlO2lmKG09PT1udWxsfHx0eXBlb2YgbSE9Im9iamVjdCIpdGhyb3cgbmV3IFR5cGVFcnJvcigiT2JqZWN0IGV4cGVjdGVkIik7KGw9bihtLmdldCkpJiYoaC5nZXQ9bCksKGw9bihtLnNldCkpJiYoaC5zZXQ9bCksKGw9bihtLmluaXQpKSYmci51bnNoaWZ0KGwpfWVsc2UobD1uKG0pKSYmKG89PT0iZmllbGQiP3IudW5zaGlmdChsKTpoW2RdPWwpfWMmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShjLGkubmFtZSxoKSxmPSEwfSx4cT1mdW5jdGlvbih0LGUsYSl7Zm9yKHZhciBpPWFyZ3VtZW50cy5sZW5ndGg+MixyPTA7cjxlLmxlbmd0aDtyKyspYT1pP2Vbcl0uY2FsbCh0LGEpOmVbcl0uY2FsbCh0KTtyZXR1cm4gaT9hOnZvaWQgMH0sVXQ9KCgpPT57bGV0IHQ9W3BlKCJkZWVzLWNvbnRleHRtZW51IildLGUsYT1bXSxpLHI9eGUscyxuPVtdLG89W107dmFyIGQ9Y2xhc3MgZXh0ZW5kcyBye3N0YXRpY3tpPXRoaXN9c3RhdGlje2xldCBjPXR5cGVvZiBTeW1ib2w9PSJmdW5jdGlvbiImJlN5bWJvbC5tZXRhZGF0YT9PYmplY3QuY3JlYXRlKHJbU3ltYm9sLm1ldGFkYXRhXT8/bnVsbCk6dm9pZCAwO3M9W0koe3R5cGU6QXJyYXl9KV0scjl0KHRoaXMsbnVsbCxzLHtraW5kOiJhY2Nlc3NvciIsbmFtZToibWVudUl0ZW1zIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpoPT4ibWVudUl0ZW1zImluIGgsZ2V0Omg9PmgubWVudUl0ZW1zLHNldDooaCxsKT0+e2gubWVudUl0ZW1zPWx9fSxtZXRhZGF0YTpjfSxuLG8pLHI5dChudWxsLGU9e3ZhbHVlOml9LHQse2tpbmQ6ImNsYXNzIixuYW1lOmkubmFtZSxtZXRhZGF0YTpjfSxudWxsLGEpLGQ9aT1lLnZhbHVlLGMmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShpLFN5bWJvbC5tZXRhZGF0YSx7ZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITAsdmFsdWU6Y30pfXN0YXRpYyBkZW1vPWY1ZTtzdGF0aWMgZGVtb0dyb3Vwcz1bIk92ZXJsYXkiXTtzdGF0aWMgY29udGV4dE1lbnVEZWFjdGl2YXRlZD0hMTtzdGF0aWMgYWNjdW11bGF0ZWRNZW51SXRlbXM9W107c3RhdGljIGluaXRpYWxpemVHbG9iYWxMaXN0ZW5lcigpe2RvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoImNvbnRleHRtZW51IixjPT57aWYodGhpcy5jb250ZXh0TWVudURlYWN0aXZhdGVkKXJldHVybjtjLnByZXZlbnREZWZhdWx0KCksZC5hY2N1bXVsYXRlZE1lbnVJdGVtcz1bXTtsZXQgaD1jLmNvbXBvc2VkUGF0aCgpO2ZvcihsZXQgbCBvZiBoKWlmKGwuZ2V0Q29udGV4dE1lbnVJdGVtcyl7bGV0IGY9bC5nZXRDb250ZXh0TWVudUl0ZW1zKCk7ZiYmZi5sZW5ndGg+MCYmKGQuYWNjdW11bGF0ZWRNZW51SXRlbXMubGVuZ3RoPjAmJmQuYWNjdW11bGF0ZWRNZW51SXRlbXMucHVzaCh7ZGl2aWRlcjohMH0pLGQuYWNjdW11bGF0ZWRNZW51SXRlbXMucHVzaCguLi5mKSl9ZC5vcGVuQ29udGV4dE1lbnVXaXRoT3B0aW9ucyhjLGQuYWNjdW11bGF0ZWRNZW51SXRlbXMpfSl9c3RhdGljIGFzeW5jIG9wZW5Db250ZXh0TWVudVdpdGhPcHRpb25zKGMsaCl7aWYodGhpcy5jb250ZXh0TWVudURlYWN0aXZhdGVkKXJldHVybjtjLnByZXZlbnREZWZhdWx0KCksYy5zdG9wUHJvcGFnYXRpb24oKTtsZXQgbD1uZXcgZDtsLnN0eWxlLnBvc2l0aW9uPSJmaXhlZCIsbC5zdHlsZS56SW5kZXg9U3RyaW5nKHIyLm92ZXJsYXkuY29udGV4dE1lbnUpLGwuc3R5bGUub3BhY2l0eT0iMCIsbC5zdHlsZS50cmFuc2Zvcm09InNjYWxlKDAuOTUpIHRyYW5zbGF0ZVkoLTEwcHgpIixsLm1lbnVJdGVtcz1oLGwud2luZG93TGF5ZXI9YXdhaXQgZmkuY3JlYXRlQW5kU2hvdygpLGwud2luZG93TGF5ZXIuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLGFzeW5jIHg9Pnt4LnRhcmdldC5jbG9zZXN0KCJkZWVzLWNvbnRleHRtZW51Iil8fGF3YWl0IGwuZGVzdHJveSgpfSksZG9jdW1lbnQuYm9keS5hcHBlbmQobCksYXdhaXQgTXQuc21hcnRkZWxheS5kZWxheUZvcigwKTtsZXQgZj1sLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLGc9d2luZG93LmlubmVyV2lkdGgseT13aW5kb3cuaW5uZXJIZWlnaHQsdj1jLmNsaWVudFksbT1jLmNsaWVudFg7bStmLndpZHRoPmcmJihtPWctZi53aWR0aC0xMCksditmLmhlaWdodD55JiYodj15LWYuaGVpZ2h0LTEwKSxtPDEwJiYobT0xMCksdjwxMCYmKHY9MTApLGwuc3R5bGUudG9wPWAke3Z9cHhgLGwuc3R5bGUubGVmdD1gJHttfXB4YCxsLnN0eWxlLnRyYW5zZm9ybU9yaWdpbj0idG9wIGxlZnQiLGF3YWl0IE10LnNtYXJ0ZGVsYXkuZGVsYXlGb3IoMCksbC5zdHlsZS5vcGFjaXR5PSIxIixsLnN0eWxlLnRyYW5zZm9ybT0ic2NhbGUoMSkgdHJhbnNsYXRlWSgwKSJ9I2U9eHEodGhpcyxuLFtdKTtnZXQgbWVudUl0ZW1zKCl7cmV0dXJuIHRoaXMuI2V9c2V0IG1lbnVJdGVtcyhjKXt0aGlzLiNlPWN9d2luZG93TGF5ZXI9eHEodGhpcyxvKTtzdWJtZW51PW51bGw7c3VibWVudVRpbWVvdXQ9bnVsbDtwYXJlbnRNZW51PW51bGw7aXNEZXN0cm95aW5nPSExO2NvbnN0cnVjdG9yKCl7c3VwZXIoKSx0aGlzLnRhYkluZGV4PTB9c3RhdGljIHN0eWxlcz1bQ2UscC5kZWZhdWx0U3R5bGVzLFFgCiAgICAgIC8qIFRPRE86IE1pZ3JhdGUgaGFyZGNvZGVkIHZhbHVlcyB0byAtLWRlZXMtKiBDU1MgdmFyaWFibGVzICovCiAgICAgIDpob3N0IHsKICAgICAgICBkaXNwbGF5OiBibG9jazsKICAgICAgICB0cmFuc2l0aW9uOiBvcGFjaXR5IDAuMnMsIHRyYW5zZm9ybSAwLjJzOwogICAgICAgIG91dGxpbmU6IG5vbmU7CiAgICAgIH0KCiAgICAgIC5tYWluYm94IHsKICAgICAgICBtaW4td2lkdGg6IDIwMHB4OwogICAgICAgIG1heC13aWR0aDogMjgwcHg7CiAgICAgICAgYmFja2dyb3VuZDogJHtwLmJkVGhlbWUoIiNmZmZmZmYiLCIjMDAwMDAwIil9OwogICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICR7cC5iZFRoZW1lKCIjZTBlMGUwIiwiIzIwMjAyMCIpfTsKICAgICAgICBib3JkZXItcmFkaXVzOiA0cHg7CiAgICAgICAgYm94LXNoYWRvdzogJHtwLmJkVGhlbWUoIjAgNHB4IDEycHggcmdiYSgwLCAwLCAwLCAwLjE1KSIsIjAgNHB4IDEycHggcmdiYSgwLCAwLCAwLCAwLjMpIil9OwogICAgICAgIHVzZXItc2VsZWN0OiBub25lOwogICAgICAgIHBhZGRpbmc6IDRweCAwOwogICAgICAgIGZvbnQtc2l6ZTogMTJweDsKICAgICAgICBjb2xvcjogJHtwLmJkVGhlbWUoIiMzMzMiLCIjY2NjIil9OwogICAgICB9CgogICAgICAubWVudWl0ZW0gewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBnYXA6IDhweDsKICAgICAgICBwYWRkaW5nOiA4cHggMTJweDsKICAgICAgICBjdXJzb3I6IGRlZmF1bHQ7CiAgICAgICAgdHJhbnNpdGlvbjogYmFja2dyb3VuZCAwLjFzOwogICAgICAgIGxpbmUtaGVpZ2h0OiAxOwogICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgfQoKICAgICAgLm1lbnVpdGVtOmhvdmVyIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke3AuYmRUaGVtZSgicmdiYSgwLCAwLCAwLCAwLjA0KSIsInJnYmEoMjU1LCAyNTUsIDI1NSwgMC4wOCkiKX07CiAgICAgIH0KICAgICAgCiAgICAgIC5tZW51aXRlbS5oYXMtc3VibWVudTo6YWZ0ZXIgewogICAgICAgIGNvbnRlbnQ6ICfigLonOwogICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgICByaWdodDogOHB4OwogICAgICAgIGZvbnQtc2l6ZTogMTZweDsKICAgICAgICBvcGFjaXR5OiAwLjU7CiAgICAgIH0KCiAgICAgIC5tZW51aXRlbTphY3RpdmU6bm90KC5oYXMtc3VibWVudSkgewogICAgICAgIGJhY2tncm91bmQ6ICR7cC5iZFRoZW1lKCJyZ2JhKDAsIDAsIDAsIDAuMDgpIiwicmdiYSgyNTUsIDI1NSwgMjU1LCAwLjEyKSIpfTsKICAgICAgfQogICAgICAKICAgICAgLm1lbnVpdGVtLmRpc2FibGVkIHsKICAgICAgICBvcGFjaXR5OiAwLjU7CiAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDsKICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTsKICAgICAgfQoKICAgICAgLm1lbnVpdGVtIGRlZXMtaWNvbiB7CiAgICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgICAgIG9wYWNpdHk6IDAuNzsKICAgICAgfQoKICAgICAgLm1lbnVpdGVtLXRleHQgewogICAgICAgIGZsZXg6IDE7CiAgICAgIH0KCiAgICAgIC5tZW51aXRlbS1zaG9ydGN1dCB7CiAgICAgICAgZm9udC1zaXplOiAxMXB4OwogICAgICAgIGNvbG9yOiAke3AuYmRUaGVtZSgiIzk5OSIsIiM2NjYiKX07CiAgICAgICAgbWFyZ2luLWxlZnQ6IGF1dG87CiAgICAgICAgb3BhY2l0eTogMC43OwogICAgICB9CgogICAgICAubWVudS1kaXZpZGVyIHsKICAgICAgICBoZWlnaHQ6IDFweDsKICAgICAgICBiYWNrZ3JvdW5kOiAke3AuYmRUaGVtZSgiI2UwZTBlMCIsIiMyMDIwMjAiKX07CiAgICAgICAgbWFyZ2luOiA0cHggMDsKICAgICAgfQogICAgYF07cmVuZGVyKCl7cmV0dXJuIHdgCiAgICAgIDxkaXYgY2xhc3M9Im1haW5ib3giPgogICAgICAgICR7dGhpcy5tZW51SXRlbXMubWFwKGM9PntpZigiZGl2aWRlciJpbiBjJiZjLmRpdmlkZXIpcmV0dXJuIHdgPGRpdiBjbGFzcz0ibWVudS1kaXZpZGVyIj48L2Rpdj5gO2xldCBoPWMsbD1oLnN1Ym1lbnUmJmguc3VibWVudS5sZW5ndGg+MDtyZXR1cm4gd2AKICAgICAgICAgICAgPGRpdiAKICAgICAgICAgICAgICBjbGFzcz0ibWVudWl0ZW0gJHtoLmRpc2FibGVkPyJkaXNhYmxlZCI6IiJ9ICR7bD8iaGFzLXN1Ym1lbnUiOiIifSIgCiAgICAgICAgICAgICAgQGNsaWNrPSR7KCk9PiFoLmRpc2FibGVkJiYhbCYmdGhpcy5oYW5kbGVDbGljayhoKX0KICAgICAgICAgICAgICBAbW91c2VlbnRlcj0keygpPT50aGlzLmhhbmRsZU1lbnVJdGVtSG92ZXIoaCxsKX0KICAgICAgICAgICAgICBAbW91c2VsZWF2ZT0keygpPT50aGlzLmhhbmRsZU1lbnVJdGVtTGVhdmUoKX0KICAgICAgICAgICAgPgogICAgICAgICAgICAgICR7aC5pY29uTmFtZT93YAogICAgICAgICAgICAgICAgPGRlZXMtaWNvbiAuaWNvbj0iJHtoLmljb25OYW1lfSI+PC9kZWVzLWljb24+CiAgICAgICAgICAgICAgYDoiIn0KICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0ibWVudWl0ZW0tdGV4dCI+JHtoLm5hbWV9PC9zcGFuPgogICAgICAgICAgICAgICR7aC5zaG9ydGN1dCYmIWw/d2AKICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJtZW51aXRlbS1zaG9ydGN1dCI+JHtoLnNob3J0Y3V0fTwvc3Bhbj4KICAgICAgICAgICAgICBgOiIifQogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIGB9KX0KICAgICAgICAke3RoaXMubWVudUl0ZW1zLmxlbmd0aD09PTA/d2AKICAgICAgICAgICAgPGRpdiBjbGFzcz0ibWVudWl0ZW0iIEBjbGljaz0keygpPT57ZC5jb250ZXh0TWVudURlYWN0aXZhdGVkPSEwLHRoaXMuZGVzdHJveSgpfX0+CiAgICAgICAgICAgICAgPGRlZXMtaWNvbiAuaWNvbj0ibHVjaWRlOngiPjwvZGVlcy1pY29uPgogICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJtZW51aXRlbS10ZXh0Ij5BbGxvdyBuYXRpdmUgY29udGV4dDwvc3Bhbj4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgYDp3YGB9CiAgICAgIDwvZGl2PgogICAgYH1hc3luYyBmaXJzdFVwZGF0ZWQoKXt0aGlzLmZvY3VzKCksdGhpcy5hZGRFdmVudExpc3RlbmVyKCJrZXlkb3duIix0aGlzLmhhbmRsZUtleWRvd24pfWhhbmRsZUtleWRvd249Yz0+e2xldCBoPUFycmF5LmZyb20odGhpcy5zaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3JBbGwoIi5tZW51aXRlbTpub3QoLmRpc2FibGVkKSIpKSxsPWguZmluZEluZGV4KGY9PmYubWF0Y2hlcygiOmhvdmVyIikpO3N3aXRjaChjLmtleSl7Y2FzZSJBcnJvd0Rvd24iOmMucHJldmVudERlZmF1bHQoKTtsZXQgZj1sKzE8aC5sZW5ndGg/bCsxOjA7aFtmXS5kaXNwYXRjaEV2ZW50KG5ldyBNb3VzZUV2ZW50KCJtb3VzZWVudGVyIikpO2JyZWFrO2Nhc2UiQXJyb3dVcCI6Yy5wcmV2ZW50RGVmYXVsdCgpO2xldCBnPWwtMT49MD9sLTE6aC5sZW5ndGgtMTtoW2ddLmRpc3BhdGNoRXZlbnQobmV3IE1vdXNlRXZlbnQoIm1vdXNlZW50ZXIiKSk7YnJlYWs7Y2FzZSJFbnRlciI6Yy5wcmV2ZW50RGVmYXVsdCgpLGw+PTAmJmhbbF0uY2xpY2soKTticmVhaztjYXNlIkVzY2FwZSI6Yy5wcmV2ZW50RGVmYXVsdCgpLHRoaXMuZGVzdHJveSgpO2JyZWFrfX07YXN5bmMgaGFuZGxlQ2xpY2soYyl7Yy5hY3Rpb24oKSxhd2FpdCB0aGlzLmRlc3Ryb3lBbGwoKX1hc3luYyBoYW5kbGVNZW51SXRlbUhvdmVyKGMsaCl7dGhpcy5zdWJtZW51VGltZW91dCYmKGNsZWFyVGltZW91dCh0aGlzLnN1Ym1lbnVUaW1lb3V0KSx0aGlzLnN1Ym1lbnVUaW1lb3V0PW51bGwpLHRoaXMuc3VibWVudSYmYXdhaXQgdGhpcy5oaWRlU3VibWVudSgpLGgmJmMuc3VibWVudSYmKHRoaXMuc3VibWVudVRpbWVvdXQ9c2V0VGltZW91dCgoKT0+e3RoaXMuc2hvd1N1Ym1lbnUoYyl9LDIwMCkpfWhhbmRsZU1lbnVJdGVtTGVhdmUoKXt0aGlzLnN1Ym1lbnVUaW1lb3V0JiZjbGVhclRpbWVvdXQodGhpcy5zdWJtZW51VGltZW91dCksdGhpcy5zdWJtZW51VGltZW91dD1zZXRUaW1lb3V0KCgpPT57dGhpcy5zdWJtZW51JiYhdGhpcy5zdWJtZW51Lm1hdGNoZXMoIjpob3ZlciIpJiZ0aGlzLmhpZGVTdWJtZW51KCl9LDMwMCl9YXN5bmMgc2hvd1N1Ym1lbnUoYyl7aWYoIWMuc3VibWVudXx8Yy5zdWJtZW51Lmxlbmd0aD09PTApcmV0dXJuO2xldCBsPUFycmF5LmZyb20odGhpcy5zaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3JBbGwoIi5tZW51aXRlbSIpKS5maW5kKE09Pk0ucXVlcnlTZWxlY3RvcigiLm1lbnVpdGVtLXRleHQiKT8udGV4dENvbnRlbnQ9PT1jLm5hbWUpO2lmKCFsKXJldHVybjt0aGlzLnN1Ym1lbnU9bmV3IGQsdGhpcy5zdWJtZW51Lm1lbnVJdGVtcz1jLnN1Ym1lbnUsdGhpcy5zdWJtZW51LnBhcmVudE1lbnU9dGhpcyx0aGlzLnN1Ym1lbnUuc3R5bGUucG9zaXRpb249ImZpeGVkIix0aGlzLnN1Ym1lbnUuc3R5bGUuekluZGV4PVN0cmluZyhwYXJzZUludCh0aGlzLnN0eWxlLnpJbmRleCkrMSksdGhpcy5zdWJtZW51LnN0eWxlLm9wYWNpdHk9IjAiLHRoaXMuc3VibWVudS5zdHlsZS50cmFuc2Zvcm09InNjYWxlKDAuOTUpIixkb2N1bWVudC5ib2R5LmFwcGVuZCh0aGlzLnN1Ym1lbnUpLGF3YWl0IE10LnNtYXJ0ZGVsYXkuZGVsYXlGb3IoMCk7bGV0IGY9bC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKSxnPXRoaXMuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkseT10aGlzLnN1Ym1lbnUuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCksdj13aW5kb3cuaW5uZXJXaWR0aCxtPWcucmlnaHQtNCx4PWYudG9wO20reS53aWR0aD52LTEwJiYobT1nLmxlZnQteS53aWR0aCs0KSx4K3kuaGVpZ2h0PndpbmRvdy5pbm5lckhlaWdodC0xMCYmKHg9d2luZG93LmlubmVySGVpZ2h0LXkuaGVpZ2h0LTEwKSx0aGlzLnN1Ym1lbnUuc3R5bGUubGVmdD1gJHttfXB4YCx0aGlzLnN1Ym1lbnUuc3R5bGUudG9wPWAke3h9cHhgLGF3YWl0IE10LnNtYXJ0ZGVsYXkuZGVsYXlGb3IoMCksdGhpcy5zdWJtZW51LnN0eWxlLm9wYWNpdHk9IjEiLHRoaXMuc3VibWVudS5zdHlsZS50cmFuc2Zvcm09InNjYWxlKDEpIix0aGlzLnN1Ym1lbnUuYWRkRXZlbnRMaXN0ZW5lcigibW91c2VlbnRlciIsKCk9Pnt0aGlzLnN1Ym1lbnVUaW1lb3V0JiYoY2xlYXJUaW1lb3V0KHRoaXMuc3VibWVudVRpbWVvdXQpLHRoaXMuc3VibWVudVRpbWVvdXQ9bnVsbCl9KSx0aGlzLnN1Ym1lbnUuYWRkRXZlbnRMaXN0ZW5lcigibW91c2VsZWF2ZSIsKCk9Pnt0aGlzLmhhbmRsZU1lbnVJdGVtTGVhdmUoKX0pfWFzeW5jIGhpZGVTdWJtZW51KCl7dGhpcy5zdWJtZW51JiYoYXdhaXQgdGhpcy5zdWJtZW51LmRlc3Ryb3koKSx0aGlzLnN1Ym1lbnU9bnVsbCl9YXN5bmMgZGVzdHJveSgpe3RoaXMuaXNEZXN0cm95aW5nfHwodGhpcy5pc0Rlc3Ryb3lpbmc9ITAsdGhpcy5zdWJtZW51VGltZW91dCYmKGNsZWFyVGltZW91dCh0aGlzLnN1Ym1lbnVUaW1lb3V0KSx0aGlzLnN1Ym1lbnVUaW1lb3V0PW51bGwpLHRoaXMuc3VibWVudSYmKGF3YWl0IHRoaXMuc3VibWVudS5kZXN0cm95KCksdGhpcy5zdWJtZW51PW51bGwpLHRoaXMud2luZG93TGF5ZXImJiF0aGlzLnBhcmVudE1lbnUmJnRoaXMud2luZG93TGF5ZXIuZGVzdHJveSgpLHRoaXMuc3R5bGUub3BhY2l0eT0iMCIsdGhpcy5zdHlsZS50cmFuc2Zvcm09InNjYWxlKDAuOTUpIHRyYW5zbGF0ZVkoLTEwcHgpIixhd2FpdCBNdC5zbWFydGRlbGF5LmRlbGF5Rm9yKDEwMCksdGhpcy5wYXJlbnRFbGVtZW50JiZ0aGlzLnBhcmVudEVsZW1lbnQucmVtb3ZlQ2hpbGQodGhpcykpfWFzeW5jIGRlc3Ryb3lBbGwoKXtsZXQgYz10aGlzO2Zvcig7Yy5wYXJlbnRNZW51OyljPWMucGFyZW50TWVudTthd2FpdCBjLmRlc3Ryb3koKX1zdGF0aWN7eHEoaSxhKX19O3JldHVybiBkPWl9KSgpO1V0LmluaXRpYWxpemVHbG9iYWxMaXN0ZW5lcigpfSk7dmFyIHM5dCx3cSxJanQsbjl0PWIoKCk9Pnt1ZSgpO3M5dD1mdW5jdGlvbih0LGUsYSxpLHIscyl7ZnVuY3Rpb24gbih4KXtpZih4IT09dm9pZCAwJiZ0eXBlb2YgeCE9ImZ1bmN0aW9uIil0aHJvdyBuZXcgVHlwZUVycm9yKCJGdW5jdGlvbiBleHBlY3RlZCIpO3JldHVybiB4fWZvcih2YXIgbz1pLmtpbmQsZD1vPT09ImdldHRlciI/ImdldCI6bz09PSJzZXR0ZXIiPyJzZXQiOiJ2YWx1ZSIsYz0hZSYmdD9pLnN0YXRpYz90OnQucHJvdG90eXBlOm51bGwsaD1lfHwoYz9PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGMsaS5uYW1lKTp7fSksbCxmPSExLGc9YS5sZW5ndGgtMTtnPj0wO2ctLSl7dmFyIHk9e307Zm9yKHZhciB2IGluIGkpeVt2XT12PT09ImFjY2VzcyI/e306aVt2XTtmb3IodmFyIHYgaW4gaS5hY2Nlc3MpeS5hY2Nlc3Nbdl09aS5hY2Nlc3Nbdl07eS5hZGRJbml0aWFsaXplcj1mdW5jdGlvbih4KXtpZihmKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBhZGQgaW5pdGlhbGl6ZXJzIGFmdGVyIGRlY29yYXRpb24gaGFzIGNvbXBsZXRlZCIpO3MucHVzaChuKHh8fG51bGwpKX07dmFyIG09KDAsYVtnXSkobz09PSJhY2Nlc3NvciI/e2dldDpoLmdldCxzZXQ6aC5zZXR9OmhbZF0seSk7aWYobz09PSJhY2Nlc3NvciIpe2lmKG09PT12b2lkIDApY29udGludWU7aWYobT09PW51bGx8fHR5cGVvZiBtIT0ib2JqZWN0Iil0aHJvdyBuZXcgVHlwZUVycm9yKCJPYmplY3QgZXhwZWN0ZWQiKTsobD1uKG0uZ2V0KSkmJihoLmdldD1sKSwobD1uKG0uc2V0KSkmJihoLnNldD1sKSwobD1uKG0uaW5pdCkpJiZyLnVuc2hpZnQobCl9ZWxzZShsPW4obSkpJiYobz09PSJmaWVsZCI/ci51bnNoaWZ0KGwpOmhbZF09bCl9YyYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGMsaS5uYW1lLGgpLGY9ITB9LHdxPWZ1bmN0aW9uKHQsZSxhKXtmb3IodmFyIGk9YXJndW1lbnRzLmxlbmd0aD4yLHI9MDtyPGUubGVuZ3RoO3IrKylhPWk/ZVtyXS5jYWxsKHQsYSk6ZVtyXS5jYWxsKHQpO3JldHVybiBpP2E6dm9pZCAwfSxJanQ9KCgpPT57bGV0IHQ9W3BlKCJkZWVzLWRlbW93cmFwcGVyIildLGUsYT1bXSxpLHI9eGUscyxuPVtdLG89W107dmFyIGQ9Y2xhc3MgZXh0ZW5kcyBye3N0YXRpY3tpPXRoaXN9c3RhdGlje2xldCBjPXR5cGVvZiBTeW1ib2w9PSJmdW5jdGlvbiImJlN5bWJvbC5tZXRhZGF0YT9PYmplY3QuY3JlYXRlKHJbU3ltYm9sLm1ldGFkYXRhXT8/bnVsbCk6dm9pZCAwO3M9W0koe2F0dHJpYnV0ZTohMX0pXSxzOXQodGhpcyxudWxsLHMse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJydW5BZnRlclJlbmRlciIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aD0+InJ1bkFmdGVyUmVuZGVyImluIGgsZ2V0Omg9PmgucnVuQWZ0ZXJSZW5kZXIsc2V0OihoLGwpPT57aC5ydW5BZnRlclJlbmRlcj1sfX0sbWV0YWRhdGE6Y30sbixvKSxzOXQobnVsbCxlPXt2YWx1ZTppfSx0LHtraW5kOiJjbGFzcyIsbmFtZTppLm5hbWUsbWV0YWRhdGE6Y30sbnVsbCxhKSxkPWk9ZS52YWx1ZSxjJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoaSxTeW1ib2wubWV0YWRhdGEse2VudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwLHZhbHVlOmN9KX0jZT13cSh0aGlzLG4sdm9pZCAwKTtnZXQgcnVuQWZ0ZXJSZW5kZXIoKXtyZXR1cm4gdGhpcy4jZX1zZXQgcnVuQWZ0ZXJSZW5kZXIoYyl7dGhpcy4jZT1jfXN0YXRpYyBzdHlsZXM9W1FgCiAgICAgIDpob3N0IHsKICAgICAgICBkaXNwbGF5OiBjb250ZW50czsKICAgICAgfQogICAgYF07cmVuZGVyKCl7cmV0dXJuIHdgCiAgICAgIDxzbG90Pjwvc2xvdD4KICAgIGB9YXN5bmMgZmlyc3RVcGRhdGVkKCl7aWYoYXdhaXQgdGhpcy51cGRhdGVDb21wbGV0ZSxhd2FpdCBuZXcgUHJvbWlzZShjPT5zZXRUaW1lb3V0KGMsNTApKSx0aGlzLmNoaWxkcmVuLmxlbmd0aD4wJiZ0aGlzLnJ1bkFmdGVyUmVuZGVyKXRyeXthd2FpdCB0aGlzLnJ1bkFmdGVyUmVuZGVyKHRoaXMpfWNhdGNoKGMpe2NvbnNvbGUuZXJyb3IoIkVycm9yIGluIHJ1bkFmdGVyUmVuZGVyOiIsYyl9fWNvbnN0cnVjdG9yKCl7c3VwZXIoLi4uYXJndW1lbnRzKSx3cSh0aGlzLG8pfXN0YXRpY3t3cShpLGEpfX07cmV0dXJuIGQ9aX0pKCl9KTt2YXIgeDE9YigoKT0+e245dCgpfSk7dmFyIG85dCxsOXQ9YigoKT0+e3VlKCk7eDEoKTtvOXQ9KCk9PntsZXQgdD1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkZWVzLWFwcHVpLWFjdGl2aXR5bG9nIik7cmV0dXJuIHNldFRpbWVvdXQoKCk9Pnt0LmFkZE1hbnkoW3t0eXBlOiJsb2dpbiIsdXNlcjoiSm9obiBEb2UiLG1lc3NhZ2U6ImxvZ2dlZCBpbiBmcm9tIENocm9tZSBvbiBtYWNPUyJ9LHt0eXBlOiJjcmVhdGUiLHVzZXI6IkpvaG4gRG9lIixtZXNzYWdlOidjcmVhdGVkIGEgbmV3IHByb2plY3QgIkZyb250ZW5kIEFwcCInfSx7dHlwZToidXBkYXRlIix1c2VyOiJKYW5lIFNtaXRoIixtZXNzYWdlOiJ1cGRhdGVkIEFQSSBkb2N1bWVudGF0aW9uIn0se3R5cGU6InZpZXciLHVzZXI6IkpvaG4gRG9lIixtZXNzYWdlOiJ2aWV3ZWQgZGFzaGJvYXJkIGFuYWx5dGljcyJ9LHt0eXBlOiJkZWxldGUiLHVzZXI6IkFkbWluIixtZXNzYWdlOiJyZW1vdmVkIGRlcHJlY2F0ZWQgZW5kcG9pbnQifSx7dHlwZToiY3VzdG9tIix1c2VyOiJTeXN0ZW0iLG1lc3NhZ2U6InNjaGVkdWxlZCBiYWNrdXAgY29tcGxldGVkIixpY29uTmFtZToibHVjaWRlOmRhdGFiYXNlIn0se3R5cGU6ImxvZ291dCIsdXNlcjoiQWxpY2UgQnJvd24iLG1lc3NhZ2U6ImxvZ2dlZCBvdXQifSx7dHlwZToiY3JlYXRlIix1c2VyOiJKYW5lIFNtaXRoIixtZXNzYWdlOiJjcmVhdGVkIGludm9pY2UgIzEyMzQifV0pLHQuZW50cmllcyQuc3Vic2NyaWJlKGU9Pntjb25zb2xlLmxvZygiQWN0aXZpdHkgbG9nIHVwZGF0ZWQ6IixlLmxlbmd0aCwiZW50cmllcyIpfSl9LDEwMCksd2AKICAgIDxkZWVzLWRlbW93cmFwcGVyPgogICAgICA8c3R5bGU+CiAgICAgICAgLmRlbW8tY29udGFpbmVyIHsKICAgICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgICBoZWlnaHQ6IDYwMHB4OwogICAgICAgICAgYmFja2dyb3VuZDogJHtwLmJkVGhlbWUoIiNmNGY0ZjUiLCIjMDkwOTBiIil9OwogICAgICAgICAgcGFkZGluZzogMzJweDsKICAgICAgICB9CiAgICAgIDwvc3R5bGU+CiAgICAgIDxkaXYgY2xhc3M9ImRlbW8tY29udGFpbmVyIj4KICAgICAgICAke3R9CiAgICAgIDwvZGl2PgogICAgPC9kZWVzLWRlbW93cmFwcGVyPgogIGB9fSk7dmFyIFN4LHEwLGM5dCxNcT1iKCgpPT57dWUoKTtUdCgpO24yKCk7RHQoKTtsOXQoKTtxZSgpO1N4PWZ1bmN0aW9uKHQsZSxhLGkscixzKXtmdW5jdGlvbiBuKHgpe2lmKHghPT12b2lkIDAmJnR5cGVvZiB4IT0iZnVuY3Rpb24iKXRocm93IG5ldyBUeXBlRXJyb3IoIkZ1bmN0aW9uIGV4cGVjdGVkIik7cmV0dXJuIHh9Zm9yKHZhciBvPWkua2luZCxkPW89PT0iZ2V0dGVyIj8iZ2V0IjpvPT09InNldHRlciI/InNldCI6InZhbHVlIixjPSFlJiZ0P2kuc3RhdGljP3Q6dC5wcm90b3R5cGU6bnVsbCxoPWV8fChjP09iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoYyxpLm5hbWUpOnt9KSxsLGY9ITEsZz1hLmxlbmd0aC0xO2c+PTA7Zy0tKXt2YXIgeT17fTtmb3IodmFyIHYgaW4gaSl5W3ZdPXY9PT0iYWNjZXNzIj97fTppW3ZdO2Zvcih2YXIgdiBpbiBpLmFjY2Vzcyl5LmFjY2Vzc1t2XT1pLmFjY2Vzc1t2XTt5LmFkZEluaXRpYWxpemVyPWZ1bmN0aW9uKHgpe2lmKGYpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGFkZCBpbml0aWFsaXplcnMgYWZ0ZXIgZGVjb3JhdGlvbiBoYXMgY29tcGxldGVkIik7cy5wdXNoKG4oeHx8bnVsbCkpfTt2YXIgbT0oMCxhW2ddKShvPT09ImFjY2Vzc29yIj97Z2V0OmguZ2V0LHNldDpoLnNldH06aFtkXSx5KTtpZihvPT09ImFjY2Vzc29yIil7aWYobT09PXZvaWQgMCljb250aW51ZTtpZihtPT09bnVsbHx8dHlwZW9mIG0hPSJvYmplY3QiKXRocm93IG5ldyBUeXBlRXJyb3IoIk9iamVjdCBleHBlY3RlZCIpOyhsPW4obS5nZXQpKSYmKGguZ2V0PWwpLChsPW4obS5zZXQpKSYmKGguc2V0PWwpLChsPW4obS5pbml0KSkmJnIudW5zaGlmdChsKX1lbHNlKGw9bihtKSkmJihvPT09ImZpZWxkIj9yLnVuc2hpZnQobCk6aFtkXT1sKX1jJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoYyxpLm5hbWUsaCksZj0hMH0scTA9ZnVuY3Rpb24odCxlLGEpe2Zvcih2YXIgaT1hcmd1bWVudHMubGVuZ3RoPjIscj0wO3I8ZS5sZW5ndGg7cisrKWE9aT9lW3JdLmNhbGwodCxhKTplW3JdLmNhbGwodCk7cmV0dXJuIGk/YTp2b2lkIDB9LGM5dD0oKCk9PntsZXQgdD1bcGUoImRlZXMtYXBwdWktYWN0aXZpdHlsb2ciKV0sZSxhPVtdLGkscj14ZSxzLG49W10sbz1bXSxkLGM9W10saD1bXSxsLGY9W10sZz1bXTt2YXIgeT1jbGFzcyBleHRlbmRzIHJ7c3RhdGlje2k9dGhpc31zdGF0aWN7bGV0IHY9dHlwZW9mIFN5bWJvbD09ImZ1bmN0aW9uIiYmU3ltYm9sLm1ldGFkYXRhP09iamVjdC5jcmVhdGUocltTeW1ib2wubWV0YWRhdGFdPz9udWxsKTp2b2lkIDA7cz1bSigpXSxkPVtKKCldLGw9W0ooKV0sU3godGhpcyxudWxsLHMse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJlbnRyaWVzIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczptPT4iZW50cmllcyJpbiBtLGdldDptPT5tLmVudHJpZXMsc2V0OihtLHgpPT57bS5lbnRyaWVzPXh9fSxtZXRhZGF0YTp2fSxuLG8pLFN4KHRoaXMsbnVsbCxkLHtraW5kOiJhY2Nlc3NvciIsbmFtZToic2VhcmNoUXVlcnkiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOm09PiJzZWFyY2hRdWVyeSJpbiBtLGdldDptPT5tLnNlYXJjaFF1ZXJ5LHNldDoobSx4KT0+e20uc2VhcmNoUXVlcnk9eH19LG1ldGFkYXRhOnZ9LGMsaCksU3godGhpcyxudWxsLGwse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJmaWx0ZXJDcml0ZXJpYSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6bT0+ImZpbHRlckNyaXRlcmlhImluIG0sZ2V0Om09Pm0uZmlsdGVyQ3JpdGVyaWEsc2V0OihtLHgpPT57bS5maWx0ZXJDcml0ZXJpYT14fX0sbWV0YWRhdGE6dn0sZixnKSxTeChudWxsLGU9e3ZhbHVlOml9LHQse2tpbmQ6ImNsYXNzIixuYW1lOmkubmFtZSxtZXRhZGF0YTp2fSxudWxsLGEpLHk9aT1lLnZhbHVlLHYmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShpLFN5bWJvbC5tZXRhZGF0YSx7ZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITAsdmFsdWU6dn0pfXN0YXRpYyBkZW1vPW85dDtzdGF0aWMgZGVtb0dyb3Vwcz1bIkFwcCBVSSJdOyNlPXEwKHRoaXMsbixbXSk7Z2V0IGVudHJpZXMoKXtyZXR1cm4gdGhpcy4jZX1zZXQgZW50cmllcyh2KXt0aGlzLiNlPXZ9I3Q9KHEwKHRoaXMsbykscTAodGhpcyxjLCIiKSk7Z2V0IHNlYXJjaFF1ZXJ5KCl7cmV0dXJuIHRoaXMuI3R9c2V0IHNlYXJjaFF1ZXJ5KHYpe3RoaXMuI3Q9dn0jYT0ocTAodGhpcyxoKSxxMCh0aGlzLGYse30pKTtnZXQgZmlsdGVyQ3JpdGVyaWEoKXtyZXR1cm4gdGhpcy4jYX1zZXQgZmlsdGVyQ3JpdGVyaWEodil7dGhpcy4jYT12fWVudHJpZXMkPShxMCh0aGlzLGcpLG5ldyBNdC5zbWFydHJ4LnJ4anMuU3ViamVjdCk7c3RhdGljIHN0eWxlcz1bQ2UscC5kZWZhdWx0U3R5bGVzLFFgCiAgICAgIDpob3N0IHsKICAgICAgICAvKiBDU1MgVmFyaWFibGVzIGFsaWduZWQgd2l0aCBzZWNvbmRhcnkgbWVudSAqLwogICAgICAgIC0tYWN0aXZpdHlsb2ctYmc6ICR7cC5iZFRoZW1lKCIjZmFmYWZhIiwiIzBhMGEwYSIpfTsKICAgICAgICAtLWFjdGl2aXR5bG9nLWZnOiAke3AuYmRUaGVtZSgiIzUyNTI1MiIsIiNhM2EzYTMiKX07CiAgICAgICAgLS1hY3Rpdml0eWxvZy1mZy1tdXRlZDogJHtwLmJkVGhlbWUoIiM3MzczNzMiLCIjNzM3MzczIil9OwogICAgICAgIC0tYWN0aXZpdHlsb2ctZmctYWN0aXZlOiAke3AuYmRUaGVtZSgiIzBhMGEwYSIsIiNmYWZhZmEiKX07CiAgICAgICAgLS1hY3Rpdml0eWxvZy1ib3JkZXI6ICR7cC5iZFRoZW1lKCIjZTVlNWU1IiwiIzFhMWExYSIpfTsKICAgICAgICAtLWFjdGl2aXR5bG9nLWhvdmVyOiAke3AuYmRUaGVtZSgicmdiYSgwLCAwLCAwLCAwLjA0KSIsInJnYmEoMjU1LCAyNTUsIDI1NSwgMC4wNikiKX07CiAgICAgICAgLS1hY3Rpdml0eWxvZy1hY2NlbnQ6ICR7cC5iZFRoZW1lKCIjNzg3MTZjIiwiI2I1YTk5YSIpfTsKCiAgICAgICAgY29sb3I6IHZhcigtLWFjdGl2aXR5bG9nLWZnKTsKICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgICAgZGlzcGxheTogYmxvY2s7CiAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgICAgaGVpZ2h0OiAxMDAlOwogICAgICAgIGJhY2tncm91bmQ6IHZhcigtLWFjdGl2aXR5bG9nLWJnKTsKICAgICAgICBmb250LWZhbWlseTogJ0dlaXN0IFNhbnMnLCAtYXBwbGUtc3lzdGVtLCBCbGlua01hY1N5c3RlbUZvbnQsIHNhbnMtc2VyaWY7CiAgICAgICAgYm9yZGVyLWxlZnQ6IDFweCBzb2xpZCB2YXIoLS1hY3Rpdml0eWxvZy1ib3JkZXIpOwogICAgICAgIGN1cnNvcjogZGVmYXVsdDsKICAgICAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgICB9CgogICAgICAubWFpbmNvbnRhaW5lciB7CiAgICAgICAgcG9zaXRpb246IGFic29sdXRlOwogICAgICAgIHRvcDogMHB4OwogICAgICAgIGxlZnQ6IDBweDsKICAgICAgICBoZWlnaHQ6IDEwMCU7CiAgICAgICAgd2lkdGg6IDI4MHB4OwogICAgICB9CgogICAgICAvKiBIZWFkZXIgd2l0aCBzdHJlYW1pbmcgaW5kaWNhdG9yICovCiAgICAgIC50b3BiYXIgewogICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgICB0b3A6IDBweDsKICAgICAgICBoZWlnaHQ6IDQ4cHg7CiAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgICAgcGFkZGluZzogMHB4IDEycHg7CiAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tYWN0aXZpdHlsb2ctYmcpOwogICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCB2YXIoLS1hY3Rpdml0eWxvZy1ib3JkZXIpOwogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47CiAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDsKICAgICAgfQoKICAgICAgLnRvcGJhciAuaGVhZGluZyB7CiAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDsKICAgICAgICBmb250LXNpemU6IDE0cHg7CiAgICAgICAgY29sb3I6IHZhcigtLWFjdGl2aXR5bG9nLWZnLWFjdGl2ZSk7CiAgICAgIH0KCiAgICAgIC5saXZlLWluZGljYXRvciB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGdhcDogNnB4OwogICAgICAgIGZvbnQtc2l6ZTogMTBweDsKICAgICAgICBmb250LXdlaWdodDogNTAwOwogICAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7CiAgICAgICAgbGV0dGVyLXNwYWNpbmc6IDAuMDVlbTsKICAgICAgICBjb2xvcjogdmFyKC0tYWN0aXZpdHlsb2ctZmctbXV0ZWQpOwogICAgICB9CgogICAgICAubGl2ZS1pbmRpY2F0b3IgLmRvdCB7CiAgICAgICAgd2lkdGg6IDZweDsKICAgICAgICBoZWlnaHQ6IDZweDsKICAgICAgICBiYWNrZ3JvdW5kOiAke3AuYmRUaGVtZSgiIzIyYzU1ZSIsIiMyMmM1NWUiKX07CiAgICAgICAgYm9yZGVyLXJhZGl1czogNTAlOwogICAgICAgIGFuaW1hdGlvbjogcHVsc2UgMnMgZWFzZS1pbi1vdXQgaW5maW5pdGU7CiAgICAgIH0KCiAgICAgIEBrZXlmcmFtZXMgcHVsc2UgewogICAgICAgIDAlLCAxMDAlIHsgb3BhY2l0eTogMC41OyB0cmFuc2Zvcm06IHNjYWxlKDAuOSk7IH0KICAgICAgICA1MCUgeyBvcGFjaXR5OiAxOyB0cmFuc2Zvcm06IHNjYWxlKDEuMSk7IH0KICAgICAgfQoKICAgICAgLyogQWN0aXZpdHkgY29udGFpbmVyICovCiAgICAgIC5hY3Rpdml0eUNvbnRhaW5lciB7CiAgICAgICAgcG9zaXRpb246IGFic29sdXRlOwogICAgICAgIHRvcDogNDhweDsKICAgICAgICBib3R0b206IDQ4cHg7CiAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgICAgcGFkZGluZzogOHB4IDA7CiAgICAgICAgb3ZlcmZsb3cteTogYXV0bzsKICAgICAgICBvdmVyc2Nyb2xsLWJlaGF2aW9yOiBjb250YWluOwogICAgICAgIHNjcm9sbGJhci13aWR0aDogdGhpbjsKICAgICAgICBzY3JvbGxiYXItY29sb3I6ICR7cC5iZFRoZW1lKCIjZDRkNGQ0IiwiIzMzMzMzMyIpfSB0cmFuc3BhcmVudDsKICAgICAgfQoKICAgICAgLmFjdGl2aXR5Q29udGFpbmVyOjotd2Via2l0LXNjcm9sbGJhciB7CiAgICAgICAgd2lkdGg6IDZweDsKICAgICAgfQoKICAgICAgLmFjdGl2aXR5Q29udGFpbmVyOjotd2Via2l0LXNjcm9sbGJhci10cmFjayB7CiAgICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7CiAgICAgIH0KCiAgICAgIC5hY3Rpdml0eUNvbnRhaW5lcjo6LXdlYmtpdC1zY3JvbGxiYXItdGh1bWIgewogICAgICAgIGJhY2tncm91bmQ6ICR7cC5iZFRoZW1lKCIjZDRkNGQ0IiwiIzMzMzMzMyIpfTsKICAgICAgICBib3JkZXItcmFkaXVzOiAzcHg7CiAgICAgIH0KCiAgICAgIC5hY3Rpdml0eUNvbnRhaW5lcjo6LXdlYmtpdC1zY3JvbGxiYXItdGh1bWI6aG92ZXIgewogICAgICAgIGJhY2tncm91bmQ6ICR7cC5iZFRoZW1lKCIjYTNhM2EzIiwiIzUyNTI1MiIpfTsKICAgICAgfQoKICAgICAgLmVtcHR5LXN0YXRlIHsKICAgICAgICBmb250LXNpemU6IDEzcHg7CiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyOwogICAgICAgIHBhZGRpbmc6IDQwcHggMTZweDsKICAgICAgICBjb2xvcjogdmFyKC0tYWN0aXZpdHlsb2ctZmctbXV0ZWQpOwogICAgICB9CgogICAgICAvKiBEYXRlIHNlcGFyYXRvciAtIHdhcm0gdGF1cGUgc3R5bGluZyAqLwogICAgICAuZGF0ZS1zZXBhcmF0b3IgewogICAgICAgIHBhZGRpbmc6IDEycHggMTJweCA2cHg7CiAgICAgICAgZm9udC1zaXplOiAxMHB4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7CiAgICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTsKICAgICAgICBsZXR0ZXItc3BhY2luZzogMC41cHg7CiAgICAgICAgY29sb3I6IHZhcigtLWFjdGl2aXR5bG9nLWFjY2VudCk7CiAgICAgICAgcG9zaXRpb246IHN0aWNreTsKICAgICAgICB0b3A6IDA7CiAgICAgICAgei1pbmRleDogMTsKICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1hY3Rpdml0eWxvZy1iZyk7CiAgICAgIH0KCiAgICAgIC8qIEFjdGl2aXR5IGVudHJ5IC0gbW9kZXJuIHN0YWNrZWQgbGF5b3V0ICovCiAgICAgIC5hY3Rpdml0eWVudHJ5IHsKICAgICAgICBmb250LXNpemU6IDEycHg7CiAgICAgICAgcGFkZGluZzogOHB4IDEycHg7CiAgICAgICAgbWFyZ2luOiAycHggNHB4OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDZweDsKICAgICAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kIDAuMTVzIGVhc2U7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogZmxleC1zdGFydDsKICAgICAgICBnYXA6IDEwcHg7CiAgICAgICAgbGluZS1oZWlnaHQ6IDEuNDsKICAgICAgICBhbmltYXRpb246IGZhZGVJbiAwLjJzIGVhc2Utb3V0OwogICAgICB9CgogICAgICBAa2V5ZnJhbWVzIGZhZGVJbiB7CiAgICAgICAgZnJvbSB7CiAgICAgICAgICBvcGFjaXR5OiAwOwogICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0ycHgpOwogICAgICAgIH0KICAgICAgICB0byB7CiAgICAgICAgICBvcGFjaXR5OiAxOwogICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDApOwogICAgICAgIH0KICAgICAgfQoKICAgICAgLmFjdGl2aXR5ZW50cnk6aG92ZXIgewogICAgICAgIGJhY2tncm91bmQ6IHZhcigtLWFjdGl2aXR5bG9nLWhvdmVyKTsKICAgICAgfQoKICAgICAgLmFjdGl2aXR5LWljb24gewogICAgICAgIHdpZHRoOiAyOHB4OwogICAgICAgIGhlaWdodDogMjhweDsKICAgICAgICBib3JkZXItcmFkaXVzOiA2cHg7CiAgICAgICAgYmFja2dyb3VuZDogJHtwLmJkVGhlbWUoInJnYmEoMCwgMCwgMCwgMC4wNCkiLCJyZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMDYpIil9OwogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKICAgICAgICBmbGV4LXNocmluazogMDsKICAgICAgICBmb250LXNpemU6IDEzcHg7CiAgICAgICAgY29sb3I6IHZhcigtLWFjdGl2aXR5bG9nLWZnLW11dGVkKTsKICAgICAgICBtYXJnaW4tdG9wOiAxcHg7CiAgICAgIH0KCiAgICAgIC5hY3Rpdml0eS1pY29uLmxvZ2luIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke3AuYmRUaGVtZSgicmdiYSgzNCwgMTk3LCA5NCwgMC4wOCkiLCJyZ2JhKDM0LCAxOTcsIDk0LCAwLjEyKSIpfTsKICAgICAgICBjb2xvcjogJHtwLmJkVGhlbWUoIiMxNmEzNGEiLCIjNGFkZTgwIil9OwogICAgICB9CgogICAgICAuYWN0aXZpdHktaWNvbi5sb2dvdXQgewogICAgICAgIGJhY2tncm91bmQ6ICR7cC5iZFRoZW1lKCJyZ2JhKDIzOSwgNjgsIDY4LCAwLjA4KSIsInJnYmEoMjM5LCA2OCwgNjgsIDAuMTIpIil9OwogICAgICAgIGNvbG9yOiAke3AuYmRUaGVtZSgiI2RjMjYyNiIsIiNmODcxNzEiKX07CiAgICAgIH0KCiAgICAgIC5hY3Rpdml0eS1pY29uLnZpZXcgewogICAgICAgIGJhY2tncm91bmQ6ICR7cC5iZFRoZW1lKCJyZ2JhKDU5LCAxMzAsIDI0NiwgMC4wOCkiLCJyZ2JhKDU5LCAxMzAsIDI0NiwgMC4xMikiKX07CiAgICAgICAgY29sb3I6ICR7cC5iZFRoZW1lKCIjMjU2M2ViIiwiIzYwYTVmYSIpfTsKICAgICAgfQoKICAgICAgLmFjdGl2aXR5LWljb24uY3JlYXRlIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke3AuYmRUaGVtZSgicmdiYSgxNjgsIDg1LCAyNDcsIDAuMDgpIiwicmdiYSgxNjgsIDg1LCAyNDcsIDAuMTIpIil9OwogICAgICAgIGNvbG9yOiAke3AuYmRUaGVtZSgiIzkzMzNlYSIsIiNjMDg0ZmMiKX07CiAgICAgIH0KCiAgICAgIC5hY3Rpdml0eS1pY29uLnVwZGF0ZSB7CiAgICAgICAgYmFja2dyb3VuZDogJHtwLmJkVGhlbWUoInJnYmEoMjUxLCAxNDYsIDYwLCAwLjA4KSIsInJnYmEoMjUxLCAxNDYsIDYwLCAwLjEyKSIpfTsKICAgICAgICBjb2xvcjogJHtwLmJkVGhlbWUoIiNlYTU4MGMiLCIjZmI5MjNjIil9OwogICAgICB9CgogICAgICAuYWN0aXZpdHktaWNvbi5kZWxldGUgewogICAgICAgIGJhY2tncm91bmQ6ICR7cC5iZFRoZW1lKCJyZ2JhKDIzOSwgNjgsIDY4LCAwLjA4KSIsInJnYmEoMjM5LCA2OCwgNjgsIDAuMTIpIil9OwogICAgICAgIGNvbG9yOiAke3AuYmRUaGVtZSgiI2RjMjYyNiIsIiNmODcxNzEiKX07CiAgICAgIH0KCiAgICAgIC5hY3Rpdml0eS1pY29uLmN1c3RvbSB7CiAgICAgICAgYmFja2dyb3VuZDogJHtwLmJkVGhlbWUoInJnYmEoMTAwLCAxMTYsIDEzOSwgMC4wOCkiLCJyZ2JhKDEwMCwgMTE2LCAxMzksIDAuMTIpIil9OwogICAgICAgIGNvbG9yOiAke3AuYmRUaGVtZSgiIzQ3NTU2OSIsIiM5NGEzYjgiKX07CiAgICAgIH0KCiAgICAgIC5hY3Rpdml0eS1jb250ZW50IHsKICAgICAgICBmbGV4OiAxOwogICAgICAgIG1pbi13aWR0aDogMDsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgICAgZ2FwOiAycHg7CiAgICAgIH0KCiAgICAgIC5hY3Rpdml0eS1oZWFkZXIgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBnYXA6IDZweDsKICAgICAgfQoKICAgICAgLmFjdGl2aXR5LXVzZXIgewogICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7CiAgICAgICAgZm9udC1zaXplOiAxMnB4OwogICAgICAgIGNvbG9yOiB2YXIoLS1hY3Rpdml0eWxvZy1mZy1hY3RpdmUpOwogICAgICB9CgogICAgICAuYWN0aXZpdHktc2VwYXJhdG9yIHsKICAgICAgICBjb2xvcjogdmFyKC0tYWN0aXZpdHlsb2ctZmctbXV0ZWQpOwogICAgICAgIGZvbnQtc2l6ZTogMTBweDsKICAgICAgfQoKICAgICAgLnRpbWVzdGFtcCB7CiAgICAgICAgY29sb3I6IHZhcigtLWFjdGl2aXR5bG9nLWZnLW11dGVkKTsKICAgICAgICBmb250LXdlaWdodDogNDAwOwogICAgICAgIGZvbnQtc2l6ZTogMTFweDsKICAgICAgICBmb250LXZhcmlhbnQtbnVtZXJpYzogdGFidWxhci1udW1zOwogICAgICAgIGZvbnQtZmFtaWx5OiAnR2Vpc3QgTW9ubycsIG1vbm9zcGFjZTsKICAgICAgfQoKICAgICAgLmFjdGl2aXR5LW1lc3NhZ2UgewogICAgICAgIGNvbG9yOiB2YXIoLS1hY3Rpdml0eWxvZy1mZyk7CiAgICAgICAgZm9udC1zaXplOiAxMnB4OwogICAgICAgIGxpbmUtaGVpZ2h0OiAxLjU7CiAgICAgICAgd29yZC1icmVhazogYnJlYWstd29yZDsKICAgICAgfQoKICAgICAgLyogU2VhcmNoIGJveCAtIHJlZmluZWQgc3R5bGluZyAqLwogICAgICAuc2VhcmNoYm94IHsKICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgICAgYm90dG9tOiAwcHg7CiAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgICAgaGVpZ2h0OiA0OHB4OwogICAgICAgIGJhY2tncm91bmQ6IHZhcigtLWFjdGl2aXR5bG9nLWJnKTsKICAgICAgICBib3JkZXItdG9wOiAxcHggc29saWQgdmFyKC0tYWN0aXZpdHlsb2ctYm9yZGVyKTsKICAgICAgICBwYWRkaW5nOiA4cHggMTJweDsKICAgICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94OwogICAgICB9CgogICAgICAuc2VhcmNoLXdyYXBwZXIgewogICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgICB3aWR0aDogMTAwJTsKICAgICAgICBoZWlnaHQ6IDMycHg7CiAgICAgIH0KCiAgICAgIC5zZWFyY2gtaWNvbiB7CiAgICAgICAgcG9zaXRpb246IGFic29sdXRlOwogICAgICAgIGxlZnQ6IDEwcHg7CiAgICAgICAgdG9wOiA1MCU7CiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpOwogICAgICAgIGNvbG9yOiB2YXIoLS1hY3Rpdml0eWxvZy1mZy1tdXRlZCk7CiAgICAgICAgZm9udC1zaXplOiAxM3B4OwogICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lOwogICAgICAgIHRyYW5zaXRpb246IGNvbG9yIDAuMTVzIGVhc2U7CiAgICAgIH0KCiAgICAgIC5zZWFyY2hib3ggaW5wdXQgewogICAgICAgIGNvbG9yOiB2YXIoLS1hY3Rpdml0eWxvZy1mZy1hY3RpdmUpOwogICAgICAgIGJhY2tncm91bmQ6ICR7cC5iZFRoZW1lKCJyZ2JhKDAsIDAsIDAsIDAuMDMpIiwicmdiYSgyNTUsIDI1NSwgMjU1LCAwLjA0KSIpfTsKICAgICAgICB3aWR0aDogMTAwJTsKICAgICAgICBoZWlnaHQ6IDEwMCU7CiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHtwLmJkVGhlbWUoInJnYmEoMCwgMCwgMCwgMC4wOCkiLCJyZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMDgpIil9OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDZweDsKICAgICAgICBwYWRkaW5nOiAwIDEycHggMCAzNHB4OwogICAgICAgIGZvbnQtZmFtaWx5OiAnR2Vpc3QgU2FucycsIHNhbnMtc2VyaWY7CiAgICAgICAgZm9udC1zaXplOiAxMnB4OwogICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjE1cyBlYXNlOwogICAgICB9CgogICAgICAuc2VhcmNoYm94IGlucHV0OjpwbGFjZWhvbGRlciB7CiAgICAgICAgY29sb3I6IHZhcigtLWFjdGl2aXR5bG9nLWZnLW11dGVkKTsKICAgICAgfQoKICAgICAgLnNlYXJjaGJveCBpbnB1dDpmb2N1cyB7CiAgICAgICAgb3V0bGluZTogbm9uZTsKICAgICAgICBib3JkZXItY29sb3I6ICR7cC5iZFRoZW1lKCJyZ2JhKDAsIDAsIDAsIDAuMTUpIiwicmdiYSgyNTUsIDI1NSwgMjU1LCAwLjE1KSIpfTsKICAgICAgICBiYWNrZ3JvdW5kOiAke3AuYmRUaGVtZSgicmdiYSgwLCAwLCAwLCAwLjAyKSIsInJnYmEoMjU1LCAyNTUsIDI1NSwgMC4wNikiKX07CiAgICAgIH0KCiAgICAgIC5zZWFyY2gtd3JhcHBlcjpoYXMoaW5wdXQ6Zm9jdXMpIC5zZWFyY2gtaWNvbiB7CiAgICAgICAgY29sb3I6IHZhcigtLWFjdGl2aXR5bG9nLWZnKTsKICAgICAgfQogICAgYF07cmVuZGVyKCl7bGV0IHY9dGhpcy5nZXRGaWx0ZXJlZEVudHJpZXMoKSxtPXRoaXMuZ3JvdXBFbnRyaWVzQnlEYXRlKHYpO3JldHVybiB3YAogICAgICAke3YxLnN0eWxlc30KICAgICAgPHN0eWxlPjwvc3R5bGU+CiAgICAgIDxkaXYgY2xhc3M9Im1haW5jb250YWluZXIiPgogICAgICAgIDxkaXYgY2xhc3M9InRvcGJhciI+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJoZWFkaW5nIj5BY3Rpdml0eSBMb2c8L2Rpdj4KICAgICAgICAgICR7di5sZW5ndGg+MD93YDxkaXYgY2xhc3M9ImxpdmUtaW5kaWNhdG9yIj48c3BhbiBjbGFzcz0iZG90Ij48L3NwYW4+TGl2ZTwvZGl2PmA6IiJ9CiAgICAgICAgPC9kaXY+CiAgICAgICAgPGRpdiBjbGFzcz0iYWN0aXZpdHlDb250YWluZXIiPgogICAgICAgICAgJHt2Lmxlbmd0aD09PTA/d2A8ZGl2IGNsYXNzPSJlbXB0eS1zdGF0ZSI+Tm8gYWN0aXZpdHkgZW50cmllczwvZGl2PmA6bS5tYXAoeD0+d2AKICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iZGF0ZS1zZXBhcmF0b3IiPiR7eC5sYWJlbH08L2Rpdj4KICAgICAgICAgICAgICAgICAgJHt4LmVudHJpZXMubWFwKE09PnRoaXMucmVuZGVyQWN0aXZpdHlFbnRyeShNKSl9CiAgICAgICAgICAgICAgICBgKX0KICAgICAgICA8L2Rpdj4KICAgICAgICA8ZGl2IGNsYXNzPSJzZWFyY2hib3giPgogICAgICAgICAgPGRpdiBjbGFzcz0ic2VhcmNoLXdyYXBwZXIiPgogICAgICAgICAgICA8ZGVlcy1pY29uIGNsYXNzPSJzZWFyY2gtaWNvbiIgLmljb249JHsibHVjaWRlOnNlYXJjaCJ9PjwvZGVlcy1pY29uPgogICAgICAgICAgICA8aW5wdXQKICAgICAgICAgICAgICB0eXBlPSJ0ZXh0IgogICAgICAgICAgICAgIHBsYWNlaG9sZGVyPSJTZWFyY2ggYWN0aXZpdGllcywgdXNlcnMuLi4iCiAgICAgICAgICAgICAgLnZhbHVlPSR7dGhpcy5zZWFyY2hRdWVyeX0KICAgICAgICAgICAgICBAaW5wdXQ9JHt0aGlzLmhhbmRsZVNlYXJjaElucHV0fQogICAgICAgICAgICAvPgogICAgICAgICAgPC9kaXY+CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGl2PgogICAgYH1yZW5kZXJBY3Rpdml0eUVudHJ5KHYpe2xldCBtPXYudGltZXN0YW1wfHxuZXcgRGF0ZSx4PXRoaXMuZm9ybWF0VGltZShtKSxNPXYuaWNvbk5hbWV8fHRoaXMuZ2V0SWNvbkZvclR5cGUodi50eXBlKTtyZXR1cm4gd2AKICAgICAgPGRpdgogICAgICAgIGNsYXNzPSJhY3Rpdml0eWVudHJ5IgogICAgICAgIEBjb250ZXh0bWVudT0ke1M9PnRoaXMuaGFuZGxlQ29udGV4dE1lbnUoUyx2KX0KICAgICAgPgogICAgICAgIDxkaXYgY2xhc3M9ImFjdGl2aXR5LWljb24gJHt2LnR5cGV9Ij4KICAgICAgICAgIDxkZWVzLWljb24gLmljb249JHtNfT48L2RlZXMtaWNvbj4KICAgICAgICA8L2Rpdj4KICAgICAgICA8ZGl2IGNsYXNzPSJhY3Rpdml0eS1jb250ZW50Ij4KICAgICAgICAgIDxkaXYgY2xhc3M9ImFjdGl2aXR5LWhlYWRlciI+CiAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJhY3Rpdml0eS11c2VyIj4ke3YudXNlcn08L3NwYW4+CiAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJhY3Rpdml0eS1zZXBhcmF0b3IiPsK3PC9zcGFuPgogICAgICAgICAgICA8c3BhbiBjbGFzcz0idGltZXN0YW1wIj4ke3h9PC9zcGFuPgogICAgICAgICAgPC9kaXY+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJhY3Rpdml0eS1tZXNzYWdlIj4ke3YubWVzc2FnZX08L2Rpdj4KICAgICAgICA8L2Rpdj4KICAgICAgPC9kaXY+CiAgICBgfWFkZCh2KXtsZXQgbT17Li4udixpZDp2LmlkfHx0aGlzLmdlbmVyYXRlSWQoKSx0aW1lc3RhbXA6di50aW1lc3RhbXB8fG5ldyBEYXRlfTt0aGlzLmVudHJpZXM9W20sLi4udGhpcy5lbnRyaWVzXSx0aGlzLmVudHJpZXMkLm5leHQodGhpcy5lbnRyaWVzKX1hZGRNYW55KHYpe2xldCBtPXYubWFwKHg9Pih7Li4ueCxpZDp4LmlkfHx0aGlzLmdlbmVyYXRlSWQoKSx0aW1lc3RhbXA6eC50aW1lc3RhbXB8fG5ldyBEYXRlfSkpO3RoaXMuZW50cmllcz1bLi4ubS5yZXZlcnNlKCksLi4udGhpcy5lbnRyaWVzXSx0aGlzLmVudHJpZXMkLm5leHQodGhpcy5lbnRyaWVzKX1jbGVhcigpe3RoaXMuZW50cmllcz1bXSx0aGlzLmVudHJpZXMkLm5leHQodGhpcy5lbnRyaWVzKX1nZXRFbnRyaWVzKCl7cmV0dXJuWy4uLnRoaXMuZW50cmllc119ZmlsdGVyKHYpe3JldHVybiB0aGlzLmVudHJpZXMuZmlsdGVyKG09PiEodi51c2VyJiZtLnVzZXIhPT12LnVzZXJ8fHYudHlwZSYmbS50eXBlIT09di50eXBlKSl9c2VhcmNoKHYpe2xldCBtPXYudG9Mb3dlckNhc2UoKTtyZXR1cm4gdGhpcy5lbnRyaWVzLmZpbHRlcih4PT54Lm1lc3NhZ2UudG9Mb3dlckNhc2UoKS5pbmNsdWRlcyhtKXx8eC51c2VyLnRvTG93ZXJDYXNlKCkuaW5jbHVkZXMobSkpfWdlbmVyYXRlSWQoKXtyZXR1cm5gYWN0aXZpdHktJHtEYXRlLm5vdygpfS0ke01hdGgucmFuZG9tKCkudG9TdHJpbmcoMzYpLnN1YnN0cigyLDkpfWB9Z2V0RmlsdGVyZWRFbnRyaWVzKCl7bGV0IHY9dGhpcy5lbnRyaWVzO2lmKHRoaXMuc2VhcmNoUXVlcnkpe2xldCBtPXRoaXMuc2VhcmNoUXVlcnkudG9Mb3dlckNhc2UoKTt2PXYuZmlsdGVyKHg9PngubWVzc2FnZS50b0xvd2VyQ2FzZSgpLmluY2x1ZGVzKG0pfHx4LnVzZXIudG9Mb3dlckNhc2UoKS5pbmNsdWRlcyhtKSl9cmV0dXJuKHRoaXMuZmlsdGVyQ3JpdGVyaWEudXNlcnx8dGhpcy5maWx0ZXJDcml0ZXJpYS50eXBlKSYmKHY9di5maWx0ZXIobT0+ISh0aGlzLmZpbHRlckNyaXRlcmlhLnVzZXImJm0udXNlciE9PXRoaXMuZmlsdGVyQ3JpdGVyaWEudXNlcnx8dGhpcy5maWx0ZXJDcml0ZXJpYS50eXBlJiZtLnR5cGUhPT10aGlzLmZpbHRlckNyaXRlcmlhLnR5cGUpKSksdn1ncm91cEVudHJpZXNCeURhdGUodil7bGV0IG09bmV3IE1hcCx4PW5ldyBEYXRlLE09bmV3IERhdGUoeCk7TS5zZXREYXRlKE0uZ2V0RGF0ZSgpLTEpO2ZvcihsZXQgUyBvZiB2KXtsZXQgRj1TLnRpbWVzdGFtcHx8bmV3IERhdGUsXzt0aGlzLmlzU2FtZURheShGLHgpP189IlRvZGF5Ijp0aGlzLmlzU2FtZURheShGLE0pP189Illlc3RlcmRheSI6Xz1GLnRvTG9jYWxlRGF0ZVN0cmluZygiZW4tVVMiLHttb250aDoic2hvcnQiLGRheToibnVtZXJpYyIseWVhcjpGLmdldEZ1bGxZZWFyKCkhPT14LmdldEZ1bGxZZWFyKCk/Im51bWVyaWMiOnZvaWQgMH0pLG0uaGFzKF8pfHxtLnNldChfLFtdKSxtLmdldChfKS5wdXNoKFMpfXJldHVybiBBcnJheS5mcm9tKG0uZW50cmllcygpKS5tYXAoKFtTLEZdKT0+KHtsYWJlbDpTLGVudHJpZXM6Rn0pKX1pc1NhbWVEYXkodixtKXtyZXR1cm4gdi5nZXRGdWxsWWVhcigpPT09bS5nZXRGdWxsWWVhcigpJiZ2LmdldE1vbnRoKCk9PT1tLmdldE1vbnRoKCkmJnYuZ2V0RGF0ZSgpPT09bS5nZXREYXRlKCl9Zm9ybWF0VGltZSh2KXtyZXR1cm4gdi50b0xvY2FsZVRpbWVTdHJpbmcoImVuLVVTIix7aG91cjoiMi1kaWdpdCIsbWludXRlOiIyLWRpZ2l0Iixob3VyMTI6ITF9KX1nZXRJY29uRm9yVHlwZSh2KXtsZXQgbT17bG9naW46Imx1Y2lkZTpsb2dJbiIsbG9nb3V0OiJsdWNpZGU6bG9nT3V0Iix2aWV3OiJsdWNpZGU6ZXllIixjcmVhdGU6Imx1Y2lkZTpwbHVzIix1cGRhdGU6Imx1Y2lkZTplZGl0IixkZWxldGU6Imx1Y2lkZTp0cmFzaDIiLGN1c3RvbToibHVjaWRlOmFjdGl2aXR5In07cmV0dXJuIG1bdl18fG0uY3VzdG9tfWhhbmRsZVNlYXJjaElucHV0KHYpe2xldCBtPXYudGFyZ2V0O3RoaXMuc2VhcmNoUXVlcnk9bS52YWx1ZX1oYW5kbGVDb250ZXh0TWVudSh2LG0pe3YucHJldmVudERlZmF1bHQoKSxVdC5vcGVuQ29udGV4dE1lbnVXaXRoT3B0aW9ucyh2LFt7bmFtZToiQ29weSBhY3Rpdml0eSIsaWNvbk5hbWU6Imx1Y2lkZTpjb3B5IixhY3Rpb246YXN5bmMoKT0+e2F3YWl0IG5hdmlnYXRvci5jbGlwYm9hcmQud3JpdGVUZXh0KGAke20udXNlcn0gJHttLm1lc3NhZ2V9YCl9fSx7bmFtZToiRmlsdGVyIGJ5IHVzZXIiLGljb25OYW1lOiJsdWNpZGU6dXNlciIsYWN0aW9uOmFzeW5jKCk9Pnt0aGlzLmZpbHRlckNyaXRlcmlhPXt1c2VyOm0udXNlcn19fSx7bmFtZToiRmlsdGVyIGJ5IHR5cGUiLGljb25OYW1lOiJsdWNpZGU6ZmlsdGVyIixhY3Rpb246YXN5bmMoKT0+e3RoaXMuZmlsdGVyQ3JpdGVyaWE9e3R5cGU6bS50eXBlfX19LHtuYW1lOiJDbGVhciBmaWx0ZXJzIixpY29uTmFtZToibHVjaWRlOngiLGFjdGlvbjphc3luYygpPT57dGhpcy5maWx0ZXJDcml0ZXJpYT17fSx0aGlzLnNlYXJjaFF1ZXJ5PSIifX1dKX1zdGF0aWN7cTAoaSxhKX19O3JldHVybiB5PWl9KSgpfSk7dmFyIGQ5dD1iKCgpPT57TXEoKX0pO3ZhciBoOXQ9YigoKT0+e30pO3ZhciBwOXQ9YigoKT0+e3MyKCl9KTt2YXIgdTl0PWIoKCk9Pnt9KTt2YXIgZjl0PWIoKCk9Pnt9KTt2YXIgbTl0PWIoKCk9Pnt9KTt2YXIgc289YigoKT0+e2g5dCgpO3A5dCgpO3U5dCgpO2Y5dCgpO205dCgpfSk7dmFyIGc5dCxiOXQ9YigoKT0+e3VlKCk7eDEoKTt6cSgpO2c5dD0oKT0+e2xldCB0PVt7bmFtZToiRmlsZSIsYWN0aW9uOmFzeW5jKCk9Pnt9LHN1Ym1lbnU6W3tuYW1lOiJOZXcgRmlsZSIsc2hvcnRjdXQ6IkNtZCtOIixpY29uTmFtZToiZmlsZS1wbHVzIixhY3Rpb246YXN5bmMoKT0+Y29uc29sZS5sb2coIk5ldyBmaWxlIil9LHtuYW1lOiJPcGVuLi4uIixzaG9ydGN1dDoiQ21kK08iLGljb25OYW1lOiJmb2xkZXItb3BlbiIsYWN0aW9uOmFzeW5jKCk9PmNvbnNvbGUubG9nKCJPcGVuIil9LHtuYW1lOiJPcGVuIFJlY2VudCIsYWN0aW9uOmFzeW5jKCk9Pnt9LHN1Ym1lbnU6W3tuYW1lOiJwcm9qZWN0LWFscGhhLnRzIixhY3Rpb246YXN5bmMoKT0+Y29uc29sZS5sb2coIk9wZW4gcmVjZW50IDEiKX0se25hbWU6ImNvbmZpZy5qc29uIixhY3Rpb246YXN5bmMoKT0+Y29uc29sZS5sb2coIk9wZW4gcmVjZW50IDIiKX0se25hbWU6InJlYWRtZS5tZCIsYWN0aW9uOmFzeW5jKCk9PmNvbnNvbGUubG9nKCJPcGVuIHJlY2VudCAzIil9XX0se2RpdmlkZXI6ITB9LHtuYW1lOiJTYXZlIixzaG9ydGN1dDoiQ21kK1MiLGljb25OYW1lOiJzYXZlIixhY3Rpb246YXN5bmMoKT0+Y29uc29sZS5sb2coIlNhdmUiKX0se25hbWU6IlNhdmUgQXMuLi4iLHNob3J0Y3V0OiJDbWQrU2hpZnQrUyIsYWN0aW9uOmFzeW5jKCk9PmNvbnNvbGUubG9nKCJTYXZlIGFzIiksZGlzYWJsZWQ6ITB9LHtkaXZpZGVyOiEwfSx7bmFtZToiRXhpdCIsc2hvcnRjdXQ6IkNtZCtRIixhY3Rpb246YXN5bmMoKT0+Y29uc29sZS5sb2coIkV4aXQiKX1dfSx7bmFtZToiRWRpdCIsYWN0aW9uOmFzeW5jKCk9Pnt9LHN1Ym1lbnU6W3tuYW1lOiJVbmRvIixzaG9ydGN1dDoiQ21kK1oiLGljb25OYW1lOiJ1bmRvIixhY3Rpb246YXN5bmMoKT0+Y29uc29sZS5sb2coIlVuZG8iKX0se25hbWU6IlJlZG8iLHNob3J0Y3V0OiJDbWQrU2hpZnQrWiIsaWNvbk5hbWU6InJlZG8iLGFjdGlvbjphc3luYygpPT5jb25zb2xlLmxvZygiUmVkbyIpfSx7ZGl2aWRlcjohMH0se25hbWU6IkN1dCIsc2hvcnRjdXQ6IkNtZCtYIixpY29uTmFtZToic2Npc3NvcnMiLGFjdGlvbjphc3luYygpPT5jb25zb2xlLmxvZygiQ3V0Iil9LHtuYW1lOiJDb3B5IixzaG9ydGN1dDoiQ21kK0MiLGljb25OYW1lOiJjb3B5IixhY3Rpb246YXN5bmMoKT0+Y29uc29sZS5sb2coIkNvcHkiKX0se25hbWU6IlBhc3RlIixzaG9ydGN1dDoiQ21kK1YiLGljb25OYW1lOiJjbGlwYm9hcmQiLGFjdGlvbjphc3luYygpPT5jb25zb2xlLmxvZygiUGFzdGUiKX0se2RpdmlkZXI6ITB9LHtuYW1lOiJGaW5kIixzaG9ydGN1dDoiQ21kK0YiLGljb25OYW1lOiJzZWFyY2giLGFjdGlvbjphc3luYygpPT5jb25zb2xlLmxvZygiRmluZCIpfSx7bmFtZToiUmVwbGFjZSIsc2hvcnRjdXQ6IkNtZCtIIixhY3Rpb246YXN5bmMoKT0+Y29uc29sZS5sb2coIlJlcGxhY2UiKX1dfSx7bmFtZToiVmlldyIsYWN0aW9uOmFzeW5jKCk9Pnt9LHN1Ym1lbnU6W3tuYW1lOiJUb2dnbGUgRnVsbHNjcmVlbiIsc2hvcnRjdXQ6IkYxMSIsaWNvbk5hbWU6ImV4cGFuZCIsYWN0aW9uOmFzeW5jKCk9PmNvbnNvbGUubG9nKCJGdWxsc2NyZWVuIil9LHtuYW1lOiJab29tIEluIixzaG9ydGN1dDoiQ21kKysiLGljb25OYW1lOiJ6b29tLWluIixhY3Rpb246YXN5bmMoKT0+Y29uc29sZS5sb2coIlpvb20gaW4iKX0se25hbWU6Ilpvb20gT3V0IixzaG9ydGN1dDoiQ21kKy0iLGljb25OYW1lOiJ6b29tLW91dCIsYWN0aW9uOmFzeW5jKCk9PmNvbnNvbGUubG9nKCJab29tIG91dCIpfSx7bmFtZToiUmVzZXQgWm9vbSIsc2hvcnRjdXQ6IkNtZCswIixhY3Rpb246YXN5bmMoKT0+Y29uc29sZS5sb2coIlJlc2V0IHpvb20iKX0se2RpdmlkZXI6ITB9LHtuYW1lOiJUb2dnbGUgU2lkZWJhciIsc2hvcnRjdXQ6IkNtZCtCIixhY3Rpb246YXN5bmMoKT0+Y29uc29sZS5sb2coIlRvZ2dsZSBzaWRlYmFyIil9LHtuYW1lOiJUb2dnbGUgVGVybWluYWwiLHNob3J0Y3V0OiJDbWQrSiIsaWNvbk5hbWU6InRlcm1pbmFsIixhY3Rpb246YXN5bmMoKT0+Y29uc29sZS5sb2coIlRvZ2dsZSB0ZXJtaW5hbCIpfV19LHtuYW1lOiJIZWxwIixhY3Rpb246YXN5bmMoKT0+e30sc3VibWVudTpbe25hbWU6IkRvY3VtZW50YXRpb24iLGljb25OYW1lOiJib29rIixhY3Rpb246YXN5bmMoKT0+Y29uc29sZS5sb2coIkRvY3VtZW50YXRpb24iKX0se25hbWU6IlJlbGVhc2UgTm90ZXMiLGljb25OYW1lOiJmaWxlLXRleHQiLGFjdGlvbjphc3luYygpPT5jb25zb2xlLmxvZygiUmVsZWFzZSBub3RlcyIpfSx7ZGl2aWRlcjohMH0se25hbWU6IlJlcG9ydCBJc3N1ZSIsaWNvbk5hbWU6ImJ1ZyIsYWN0aW9uOmFzeW5jKCk9PmNvbnNvbGUubG9nKCJSZXBvcnQgaXNzdWUiKX0se25hbWU6IkFib3V0IixpY29uTmFtZToiaW5mbyIsYWN0aW9uOmFzeW5jKCk9PmNvbnNvbGUubG9nKCJBYm91dCIpfV19XTtyZXR1cm4gd2AKICAgIDxkZWVzLWRlbW93cmFwcGVyIC5ydW5BZnRlclJlbmRlcj0ke2FzeW5jIGU9PntsZXQgYT1lLnF1ZXJ5U2VsZWN0b3IoIiNhcHBiYXIiKSxpPWUucXVlcnlTZWxlY3RvckFsbCgiLnN0YXR1cy10b2dnbGUgZGVlcy1idXR0b24iKTtpWzBdLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIiwoKT0+e2EudXNlcj17Li4uYS51c2VyLHN0YXR1czoib25saW5lIn19KSxpWzFdLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIiwoKT0+e2EudXNlcj17Li4uYS51c2VyLHN0YXR1czoiYnVzeSJ9fSksaVsyXS5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsKCk9PnthLnVzZXI9ey4uLmEudXNlcixzdGF0dXM6ImF3YXkifX0pLGlbM10uYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLCgpPT57YS51c2VyPXsuLi5hLnVzZXIsc3RhdHVzOiJvZmZsaW5lIn19KSxlLnF1ZXJ5U2VsZWN0b3IoIi53aW5kb3ctY29udHJvbHMtdG9nZ2xlIGRlZXMtYnV0dG9uIikuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLCgpPT57YS5zaG93V2luZG93Q29udHJvbHM9IWEuc2hvd1dpbmRvd0NvbnRyb2xzfSk7bGV0IHM9ZS5xdWVyeVNlbGVjdG9yQWxsKCIuYnJlYWRjcnVtYi10b2dnbGUgZGVlcy1idXR0b24iKTtzWzBdLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIiwoKT0+e2EuYnJlYWRjcnVtYnM9IkhvbWUgPiBEb2N1bWVudHMgPiBQcm9qZWN0cyA+IE15QXBwID4gc3JjID4gaW5kZXgudHMifSksc1sxXS5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsKCk9PnthLmJyZWFkY3J1bWJzPSJEYXNoYm9hcmQifSl9fT4KICAgICAgPHN0eWxlPgogICAgICAgICR7UWAKICAgICAgICAuZGVtby1jb250YWluZXIgewogICAgICAgICAgaGVpZ2h0OiA2MDBweDsKICAgICAgICAgIHdpZHRoOiAxMDAlOwogICAgICAgICAgYmFja2dyb3VuZDogIzFhMWExYTsKICAgICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICAgIH0KICAgICAgICAKICAgICAgICAuY29udGVudCB7CiAgICAgICAgICBmbGV4OiAxOwogICAgICAgICAgcGFkZGluZzogMjBweDsKICAgICAgICAgIGNvbG9yOiAjY2NjOwogICAgICAgIH0KICAgICAgICAKICAgICAgICAuY29udHJvbHMgewogICAgICAgICAgcGFkZGluZzogMjBweDsKICAgICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgICBnYXA6IDE2cHg7CiAgICAgICAgICBmbGV4LXdyYXA6IHdyYXA7CiAgICAgICAgfQogICAgICAgIAogICAgICAgIC5jb250cm9sLWdyb3VwIHsKICAgICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICAgICAgZ2FwOiA4cHg7CiAgICAgICAgfQogICAgICAgIAogICAgICAgIC5jb250cm9sLWdyb3VwIGxhYmVsIHsKICAgICAgICAgIGZvbnQtc2l6ZTogMTJweDsKICAgICAgICAgIGNvbG9yOiAjODg4OwogICAgICAgIH0KICAgICAgYH0KICAgIDwvc3R5bGU+CiAgICAKICAgIDxkaXYgY2xhc3M9ImRlbW8tY29udGFpbmVyIj4KICAgICAgPGRlZXMtYXBwdWktYXBwYmFyCiAgICAgICAgaWQ9ImFwcGJhciIKICAgICAgICAubWVudUl0ZW1zPSR7dH0KICAgICAgICAuYnJlYWRjcnVtYnM9JHsiUHJvamVjdCA+IHNyYyA+IGNvbXBvbmVudHMgPiBBcHBCYXIudHMifQogICAgICAgIC5icmVhZGNydW1iU2VwYXJhdG9yPSR7IiA+ICJ9CiAgICAgICAgLnNob3dXaW5kb3dDb250cm9scz0keyEwfQogICAgICAgIC5zaG93U2VhcmNoPSR7ITB9CiAgICAgICAgLnRoZW1lPSR7ImRhcmsifQogICAgICAgIC51c2VyPSR7e25hbWU6IkpvaG4gRG9lIixzdGF0dXM6Im9ubGluZSJ9fQogICAgICAgIEBtZW51LXNlbGVjdD0ke2U9PmNvbnNvbGUubG9nKCJNZW51IHNlbGVjdGVkOiIsZS5kZXRhaWwuaXRlbSl9CiAgICAgICAgQGJyZWFkY3J1bWItbmF2aWdhdGU9JHtlPT5jb25zb2xlLmxvZygiQnJlYWRjcnVtYiBjbGlja2VkOiIsZS5kZXRhaWwpfQogICAgICAgIEBzZWFyY2gtY2xpY2s9JHsoKT0+Y29uc29sZS5sb2coIlNlYXJjaCBjbGlja2VkIil9CiAgICAgICAgQHVzZXItbWVudS1vcGVuPSR7KCk9PmNvbnNvbGUubG9nKCJVc2VyIG1lbnUgY2xpY2tlZCIpfQogICAgICA+PC9kZWVzLWFwcHVpLWFwcGJhcj4KICAgICAgCiAgICAgIDxkaXYgY2xhc3M9ImNvbnRlbnQiPgogICAgICAgIDxoMj5BcHAgQmFyIERlbW88L2gyPgogICAgICAgIDxwPlRoaXMgZGVtbyBzaG93cyB2YXJpb3VzIGZlYXR1cmVzIG9mIHRoZSBhcHAgYmFyIGNvbXBvbmVudDo8L3A+CiAgICAgICAgPHVsPgogICAgICAgICAgPGxpPkR5bmFtaWMgbWVudSBpdGVtcyB3aXRoIGljb25zLCBzaG9ydGN1dHMsIGFuZCBzdWJtZW51czwvbGk+CiAgICAgICAgICA8bGk+QnJlYWRjcnVtYiBuYXZpZ2F0aW9uPC9saT4KICAgICAgICAgIDxsaT5Vc2VyIGFjY291bnQgc2VjdGlvbiB3aXRoIHN0YXR1cyBpbmRpY2F0b3I8L2xpPgogICAgICAgICAgPGxpPlNlYXJjaCBpY29uPC9saT4KICAgICAgICAgIDxsaT5XaW5kb3cgY29udHJvbHMgKHBsYXRmb3JtLXNwZWNpZmljKTwvbGk+CiAgICAgICAgICA8bGk+RGFyay9saWdodCB0aGVtZSBzdXBwb3J0PC9saT4KICAgICAgICAgIDxsaT5LZXlib2FyZCBuYXZpZ2F0aW9uIChUYWIsIEVudGVyLCBFc2NhcGUpPC9saT4KICAgICAgICAgIDxsaT5DdXN0b20gZXZlbnRzIGZvciBhbGwgaW50ZXJhY3Rpb25zPC9saT4KICAgICAgICA8L3VsPgogICAgICA8L2Rpdj4KICAgICAgCiAgICAgIDxkaXYgY2xhc3M9ImNvbnRyb2xzIj4KICAgICAgICA8ZGl2IGNsYXNzPSJjb250cm9sLWdyb3VwIj4KICAgICAgICAgIDxsYWJlbD5UaGVtZTwvbGFiZWw+CiAgICAgICAgICA8ZGVlcy1idXR0b24tZ3JvdXAgY2xhc3M9InRoZW1lLXRvZ2dsZSI+CiAgICAgICAgICAgIDxkZWVzLWJ1dHRvbj5EYXJrPC9kZWVzLWJ1dHRvbj4KICAgICAgICAgICAgPGRlZXMtYnV0dG9uPkxpZ2h0PC9kZWVzLWJ1dHRvbj4KICAgICAgICAgIDwvZGVlcy1idXR0b24tZ3JvdXA+CiAgICAgICAgPC9kaXY+CiAgICAgICAgCiAgICAgICAgPGRpdiBjbGFzcz0iY29udHJvbC1ncm91cCI+CiAgICAgICAgICA8bGFiZWw+VXNlciBTdGF0dXM8L2xhYmVsPgogICAgICAgICAgPGRlZXMtYnV0dG9uLWdyb3VwIGNsYXNzPSJzdGF0dXMtdG9nZ2xlIj4KICAgICAgICAgICAgPGRlZXMtYnV0dG9uPk9ubGluZTwvZGVlcy1idXR0b24+CiAgICAgICAgICAgIDxkZWVzLWJ1dHRvbj5CdXN5PC9kZWVzLWJ1dHRvbj4KICAgICAgICAgICAgPGRlZXMtYnV0dG9uPkF3YXk8L2RlZXMtYnV0dG9uPgogICAgICAgICAgICA8ZGVlcy1idXR0b24+T2ZmbGluZTwvZGVlcy1idXR0b24+CiAgICAgICAgICA8L2RlZXMtYnV0dG9uLWdyb3VwPgogICAgICAgIDwvZGl2PgogICAgICAgIAogICAgICAgIDxkaXYgY2xhc3M9ImNvbnRyb2wtZ3JvdXAiPgogICAgICAgICAgPGxhYmVsPldpbmRvdyBDb250cm9sczwvbGFiZWw+CiAgICAgICAgICA8ZGVlcy1idXR0b24tZ3JvdXAgY2xhc3M9IndpbmRvdy1jb250cm9scy10b2dnbGUiPgogICAgICAgICAgICA8ZGVlcy1idXR0b24+VG9nZ2xlPC9kZWVzLWJ1dHRvbj4KICAgICAgICAgIDwvZGVlcy1idXR0b24tZ3JvdXA+CiAgICAgICAgPC9kaXY+CiAgICAgICAgCiAgICAgICAgPGRpdiBjbGFzcz0iY29udHJvbC1ncm91cCI+CiAgICAgICAgICA8bGFiZWw+QnJlYWRjcnVtYnM8L2xhYmVsPgogICAgICAgICAgPGRlZXMtYnV0dG9uLWdyb3VwIGNsYXNzPSJicmVhZGNydW1iLXRvZ2dsZSI+CiAgICAgICAgICAgIDxkZWVzLWJ1dHRvbj5Mb25nIFBhdGg8L2RlZXMtYnV0dG9uPgogICAgICAgICAgICA8ZGVlcy1idXR0b24+U2hvcnQgUGF0aDwvZGVlcy1idXR0b24+CiAgICAgICAgICA8L2RlZXMtYnV0dG9uLWdyb3VwPgogICAgICAgIDwvZGl2PgogICAgICA8L2Rpdj4KICAgIDwvZGl2PgogICAgPC9kZWVzLWRlbW93cmFwcGVyPgogIGB9fSk7dmFyIHY5dCx5OXQ9YigoKT0+e3VlKCk7djl0PVtwLmRlZmF1bHRTdHlsZXMsUWAKICAgICAgOmhvc3QgewogICAgICAgIC8qIENTUyBWYXJpYWJsZXMgZm9yIHRoZW1pbmcgKi8KICAgICAgICAtLWFwcGJhci1oZWlnaHQ6IDQwcHg7CiAgICAgICAgLS1hcHBiYXItZm9udC1zaXplOiAxMnB4OwogICAgICAgIAogICAgICAgIGRpc3BsYXk6IGJsb2NrOwogICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgICB3aWR0aDogMTAwJTsKICAgICAgICBoZWlnaHQ6IHZhcigtLWFwcGJhci1oZWlnaHQpOwogICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAke3AuYmRUaGVtZSgiI2UwZTBlMCIsIiMyMDIwMjAiKX07CiAgICAgICAgYmFja2dyb3VuZDogJHtwLmJkVGhlbWUoIiNmZmZmZmYiLCIjMDAwMDAwIil9OwogICAgICAgIGNvbG9yOiAke3AuYmRUaGVtZSgiIzAwMDAwMDgwIiwiI2ZmZmZmZjgwIil9OwogICAgICAgIGZvbnQtc2l6ZTogdmFyKC0tYXBwYmFyLWZvbnQtc2l6ZSk7CiAgICAgICAgZGlzcGxheTogZ3JpZDsKICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IGF1dG8gMWZyIGF1dG87CiAgICAgICAgLXdlYmtpdC1hcHAtcmVnaW9uOiBkcmFnOwogICAgICAgIHVzZXItc2VsZWN0OiBub25lOwogICAgICB9CgogICAgICAubWVudXMgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBnYXA6IDRweDsKICAgICAgICBwYWRkaW5nOiAwIDhweDsKICAgICAgICBjdXJzb3I6IGRlZmF1bHQ7CiAgICAgIH0KCiAgICAgIC5tZW51SXRlbSB7CiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICAgIGxpbmUtaGVpZ2h0OiAyNHB4OwogICAgICAgIHBhZGRpbmc6IDBweCAxMnB4OwogICAgICAgIG1hcmdpbjogOHB4IDBweDsKICAgICAgICBib3JkZXItcmFkaXVzOiA0cHg7CiAgICAgICAgLXdlYmtpdC1hcHAtcmVnaW9uOiBuby1kcmFnOwogICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjJzIGVhc2U7CiAgICAgICAgY3Vyc29yOiBkZWZhdWx0OwogICAgICAgIG91dGxpbmU6IG5vbmU7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGdhcDogNHB4OwogICAgICB9CgogICAgICAvKiBPcHRpb25hbDogU3R5bGUgZm9yIG1lbnUgaXRlbXMgd2l0aCBpY29ucyAobm90IHR5cGljYWxseSB1c2VkIGZvciB0b3AtbGV2ZWwgaXRlbXMpICovCiAgICAgIC5tZW51SXRlbSBkZWVzLWljb24gewogICAgICAgIGZvbnQtc2l6ZTogMTRweDsKICAgICAgICBvcGFjaXR5OiAwLjg7CiAgICAgIH0KCiAgICAgIC5tZW51SXRlbTpob3ZlciB7CiAgICAgICAgYmFja2dyb3VuZDogJHtwLmJkVGhlbWUoIiMwMDAwMDAxMCIsIiNmZmZmZmYyMCIpfTsKICAgICAgICBjb2xvcjogJHtwLmJkVGhlbWUoIiMwMDAwMDAiLCIjZmZmZmZmIil9OwogICAgICB9CgogICAgICAubWVudUl0ZW0uYWN0aXZlIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke3AuYmRUaGVtZSgiIzAwMDAwMDIwIiwiI2ZmZmZmZjMwIil9OwogICAgICAgIGNvbG9yOiAke3AuYmRUaGVtZSgiIzAwMDAwMCIsIiNmZmZmZmYiKX07CiAgICAgIH0KCiAgICAgIC5tZW51SXRlbVtkaXNhYmxlZF0gewogICAgICAgIG9wYWNpdHk6IDAuNTsKICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkOwogICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lOwogICAgICB9CgogICAgICAubWVudUl0ZW06Zm9jdXMtdmlzaWJsZSB7CiAgICAgICAgYm94LXNoYWRvdzogMCAwIDAgMnB4ICR7cC5iZFRoZW1lKCIjMDAwMDAwODAiLCIjZmZmZmZmODAiKX07CiAgICAgIH0KCgogICAgICAvKiBEcm9wZG93biBzdHlsZXMgKi8KICAgICAgLmRyb3Bkb3duIHsKICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgICAgdG9wOiAxMDAlOwogICAgICAgIGxlZnQ6IDA7CiAgICAgICAgbWluLXdpZHRoOiAyMDBweDsKICAgICAgICBiYWNrZ3JvdW5kOiAke3AuYmRUaGVtZSgiI2ZmZmZmZiIsIiMwMDAwMDAiKX07CiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHtwLmJkVGhlbWUoIiNlMGUwZTAiLCIjMjAyMDIwIil9OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDRweDsKICAgICAgICBib3gtc2hhZG93OiAke3AuYmRUaGVtZSgiMCA0cHggMTJweCByZ2JhKDAsIDAsIDAsIDAuMTUpIiwiMCA0cHggMTJweCByZ2JhKDAsIDAsIDAsIDAuMykiKX07CiAgICAgICAgbWFyZ2luLXRvcDogNHB4OwogICAgICAgIHotaW5kZXg6IDEwMDA7CiAgICAgICAgb3BhY2l0eTogMDsKICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTEwcHgpOwogICAgICAgIHRyYW5zaXRpb246IG9wYWNpdHkgMC4ycywgdHJhbnNmb3JtIDAuMnM7CiAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7CiAgICAgIH0KCiAgICAgIC5kcm9wZG93bi5vcGVuIHsKICAgICAgICBvcGFjaXR5OiAxOwogICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgwKTsKICAgICAgICBwb2ludGVyLWV2ZW50czogYXV0bzsKICAgICAgfQoKICAgICAgLmRyb3Bkb3duLWl0ZW0gewogICAgICAgIHBhZGRpbmc6IDhweCAxNnB4OwogICAgICAgIGN1cnNvcjogZGVmYXVsdDsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgZ2FwOiA4cHg7CiAgICAgICAgdHJhbnNpdGlvbjogYmFja2dyb3VuZCAwLjFzOwogICAgICB9CgogICAgICAuZHJvcGRvd24taXRlbTpob3ZlciwKICAgICAgLmRyb3Bkb3duLWl0ZW0uZm9jdXNlZCB7CiAgICAgICAgYmFja2dyb3VuZDogJHtwLmJkVGhlbWUoIiMwMDAwMDAxMCIsIiNmZmZmZmYyMCIpfTsKICAgICAgfQoKICAgICAgLmRyb3Bkb3duLWRpdmlkZXIgewogICAgICAgIGhlaWdodDogMXB4OwogICAgICAgIGJhY2tncm91bmQ6ICR7cC5iZFRoZW1lKCIjZTBlMGUwIiwiIzIwMjAyMCIpfTsKICAgICAgICBtYXJnaW46IDRweCAwOwogICAgICB9CgogICAgICAuZHJvcGRvd24taXRlbVtkaXNhYmxlZF0gewogICAgICAgIG9wYWNpdHk6IDAuNTsKICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkOwogICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lOwogICAgICB9CgogICAgICAuZHJvcGRvd24taXRlbSAuc2hvcnRjdXQgewogICAgICAgIG1hcmdpbi1sZWZ0OiBhdXRvOwogICAgICAgIG9wYWNpdHk6IDAuNjsKICAgICAgICBmb250LXNpemU6IDExcHg7CiAgICAgIH0KCiAgICAgIC8qIEJyZWFkY3J1bWJzICovCiAgICAgIC5icmVhZGNydW1icyB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOwogICAgICAgIGhlaWdodDogMTAwJTsKICAgICAgICBwYWRkaW5nOiAwIDE2cHg7CiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpczsKICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwOwogICAgICB9CgogICAgICAuYnJlYWRjcnVtYi1pdGVtIHsKICAgICAgICBjb2xvcjogJHtwLmJkVGhlbWUoIiMwMDAwMDA4MCIsIiNmZmZmZmY4MCIpfTsKICAgICAgICBjdXJzb3I6IGRlZmF1bHQ7CiAgICAgICAgdHJhbnNpdGlvbjogY29sb3IgMC4yczsKICAgICAgfQoKICAgICAgLmJyZWFkY3J1bWItaXRlbTpob3ZlciB7CiAgICAgICAgY29sb3I6ICR7cC5iZFRoZW1lKCIjMDAwMDAwIiwiI2ZmZmZmZiIpfTsKICAgICAgfQoKICAgICAgLmJyZWFkY3J1bWItc2VwYXJhdG9yIHsKICAgICAgICBtYXJnaW46IDAgOHB4OwogICAgICAgIG9wYWNpdHk6IDAuNTsKICAgICAgfQoKICAgICAgLyogQWNjb3VudCBzZWN0aW9uICovCiAgICAgIC5hY2NvdW50IHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDsKICAgICAgICBwYWRkaW5nOiAwIDE2cHg7CiAgICAgICAgZ2FwOiAxMnB4OwogICAgICB9CgogICAgICAuc2VhcmNoLWljb24gewogICAgICAgIGN1cnNvcjogZGVmYXVsdDsKICAgICAgICBvcGFjaXR5OiAwLjc7CiAgICAgICAgdHJhbnNpdGlvbjogb3BhY2l0eSAwLjJzOwogICAgICB9CgogICAgICAuc2VhcmNoLWljb246aG92ZXIgewogICAgICAgIG9wYWNpdHk6IDE7CiAgICAgIH0KCiAgICAgIC51c2VyLWluZm8gewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBnYXA6IDhweDsKICAgICAgICBjdXJzb3I6IGRlZmF1bHQ7CiAgICAgICAgcGFkZGluZzogNHB4IDhweDsKICAgICAgICBib3JkZXItcmFkaXVzOiA0cHg7CiAgICAgICAgdHJhbnNpdGlvbjogYmFja2dyb3VuZCAwLjJzOwogICAgICB9CgogICAgICAudXNlci1pbmZvOmhvdmVyIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke3AuYmRUaGVtZSgiIzAwMDAwMDEwIiwiI2ZmZmZmZjIwIil9OwogICAgICB9CgogICAgICAudXNlci1hdmF0YXIgewogICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgICB3aWR0aDogMjRweDsKICAgICAgICBoZWlnaHQ6IDI0cHg7CiAgICAgICAgYm9yZGVyLXJhZGl1czogNTAlOwogICAgICAgIGJhY2tncm91bmQ6ICR7cC5iZFRoZW1lKCIjMDAwMDAwMjAiLCIjZmZmZmZmMzAiKX07CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOwogICAgICAgIGZvbnQtc2l6ZTogMTBweDsKICAgICAgICBmb250LXdlaWdodDogYm9sZDsKICAgICAgfQoKICAgICAgLnVzZXItYXZhdGFyIGltZyB7CiAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgICAgaGVpZ2h0OiAxMDAlOwogICAgICAgIGJvcmRlci1yYWRpdXM6IDUwJTsKICAgICAgICBvYmplY3QtZml0OiBjb3ZlcjsKICAgICAgfQoKICAgICAgLnVzZXItc3RhdHVzIHsKICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgICAgYm90dG9tOiAtMnB4OwogICAgICAgIHJpZ2h0OiAtMnB4OwogICAgICAgIHdpZHRoOiA4cHg7CiAgICAgICAgaGVpZ2h0OiA4cHg7CiAgICAgICAgYm9yZGVyLXJhZGl1czogNTAlOwogICAgICAgIGJvcmRlcjogMnB4IHNvbGlkICR7cC5iZFRoZW1lKCIjZmZmZmZmIiwiIzAwMDAwMCIpfTsKICAgICAgfQoKICAgICAgLnVzZXItc3RhdHVzLm9ubGluZSB7CiAgICAgICAgYmFja2dyb3VuZDogIzRjYWY1MDsKICAgICAgfQoKICAgICAgLnVzZXItc3RhdHVzLm9mZmxpbmUgewogICAgICAgIGJhY2tncm91bmQ6ICM3NTc1NzU7CiAgICAgIH0KCiAgICAgIC51c2VyLXN0YXR1cy5idXN5IHsKICAgICAgICBiYWNrZ3JvdW5kOiAjZjQ0MzM2OwogICAgICB9CgogICAgICAudXNlci1zdGF0dXMuYXdheSB7CiAgICAgICAgYmFja2dyb3VuZDogI2ZmOTgwMDsKICAgICAgfQoKICAgICAgLyogQWN0aXZpdHkgbG9nIHRvZ2dsZSBidXR0b24gKi8KICAgICAgLmFjdGl2aXR5LXRvZ2dsZSB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGdhcDogMnB4OwogICAgICAgIGhlaWdodDogMjhweDsKICAgICAgICBwYWRkaW5nOiAwIDhweDsKICAgICAgICBib3JkZXItcmFkaXVzOiA2cHg7CiAgICAgICAgY3Vyc29yOiBkZWZhdWx0OwogICAgICAgIC13ZWJraXQtYXBwLXJlZ2lvbjogbm8tZHJhZzsKICAgICAgICBjb2xvcjogJHtwLmJkVGhlbWUoIiMwMDAwMDA2MCIsIiNmZmZmZmY2MCIpfTsKICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAke3AuYmRUaGVtZSgicmdiYSgwLCAwLCAwLCAwLjEpIiwicmdiYSgyNTUsIDI1NSwgMjU1LCAwLjEpIil9OwogICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjE1cyBlYXNlOwogICAgICB9CgogICAgICAuYWN0aXZpdHktdG9nZ2xlOmhvdmVyIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke3AuYmRUaGVtZSgiIzAwMDAwMDEwIiwiI2ZmZmZmZjE1Iil9OwogICAgICAgIGNvbG9yOiAke3AuYmRUaGVtZSgiIzAwMDAwMCIsIiNmZmZmZmYiKX07CiAgICAgICAgYm9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudDsKICAgICAgfQoKICAgICAgLmFjdGl2aXR5LXRvZ2dsZS5hY3RpdmUgewogICAgICAgIGJhY2tncm91bmQ6ICR7cC5iZFRoZW1lKCIjMDAwMDAwMTUiLCIjZmZmZmZmMjAiKX07CiAgICAgICAgY29sb3I6ICR7cC5iZFRoZW1lKCIjMDAwMDAwIiwiI2ZmZmZmZiIpfTsKICAgICAgICBib3JkZXItY29sb3I6IHRyYW5zcGFyZW50OwogICAgICB9CgogICAgICAuYWN0aXZpdHktdG9nZ2xlIGRlZXMtaWNvbiB7CiAgICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgICB9CgogICAgICAuYWN0aXZpdHktYmFkZ2UgewogICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgICBtYXJnaW4tbGVmdDogNHB4OwogICAgICAgIG1pbi13aWR0aDogMTZweDsKICAgICAgICBoZWlnaHQ6IDE2cHg7CiAgICAgICAgcGFkZGluZzogMCA0cHg7CiAgICAgICAgYmFja2dyb3VuZDogJHtwLmJkVGhlbWUoIiM1MjUyNTIiLCIjNTI1MjUyIil9OwogICAgICAgIGNvbG9yOiAjZmFmYWZhOwogICAgICAgIGZvbnQtc2l6ZTogMTBweDsKICAgICAgICBmb250LXdlaWdodDogNjAwOwogICAgICAgIGJvcmRlci1yYWRpdXM6IDhweDsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7CiAgICAgICAgbGluZS1oZWlnaHQ6IDE7CiAgICAgIH0KICAgIGBdfSk7dmFyIHg5dCx3OXQ9YigoKT0+e3VlKCk7eDl0PXQ9PndgCiAgICAgICAgPGRpdiBjbGFzcz0ibWVudXMiPgogICAgICAgICAgJHt0LnNob3dXaW5kb3dDb250cm9scz93YDxkZWVzLXdpbmRvd2NvbnRyb2xzPjwvZGVlcy13aW5kb3djb250cm9scz5gOiIifQogICAgICAgICAgJHt0LnJlbmRlck1lbnVJdGVtcygpfQogICAgICAgIDwvZGl2PgogICAgICAgIDxkaXYgY2xhc3M9ImJyZWFkY3J1bWJzIj4KICAgICAgICAgICR7dC5yZW5kZXJCcmVhZGNydW1icygpfQogICAgICAgIDwvZGl2PgogICAgICAgIDxkaXYgY2xhc3M9ImFjY291bnQiPgogICAgICAgICAgJHt0LnJlbmRlckFjY291bnRTZWN0aW9uKCl9CiAgICAgICAgPC9kaXY+CiAgICAgIGB9KTt2YXIga3EsbTgsTTl0LFNxPWIoKCk9Pnt1ZSgpO3FlKCk7a3E9ZnVuY3Rpb24odCxlLGEsaSxyLHMpe2Z1bmN0aW9uIG4oeCl7aWYoeCE9PXZvaWQgMCYmdHlwZW9mIHghPSJmdW5jdGlvbiIpdGhyb3cgbmV3IFR5cGVFcnJvcigiRnVuY3Rpb24gZXhwZWN0ZWQiKTtyZXR1cm4geH1mb3IodmFyIG89aS5raW5kLGQ9bz09PSJnZXR0ZXIiPyJnZXQiOm89PT0ic2V0dGVyIj8ic2V0IjoidmFsdWUiLGM9IWUmJnQ/aS5zdGF0aWM/dDp0LnByb3RvdHlwZTpudWxsLGg9ZXx8KGM/T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihjLGkubmFtZSk6e30pLGwsZj0hMSxnPWEubGVuZ3RoLTE7Zz49MDtnLS0pe3ZhciB5PXt9O2Zvcih2YXIgdiBpbiBpKXlbdl09dj09PSJhY2Nlc3MiP3t9Omlbdl07Zm9yKHZhciB2IGluIGkuYWNjZXNzKXkuYWNjZXNzW3ZdPWkuYWNjZXNzW3ZdO3kuYWRkSW5pdGlhbGl6ZXI9ZnVuY3Rpb24oeCl7aWYoZil0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgYWRkIGluaXRpYWxpemVycyBhZnRlciBkZWNvcmF0aW9uIGhhcyBjb21wbGV0ZWQiKTtzLnB1c2gobih4fHxudWxsKSl9O3ZhciBtPSgwLGFbZ10pKG89PT0iYWNjZXNzb3IiP3tnZXQ6aC5nZXQsc2V0Omguc2V0fTpoW2RdLHkpO2lmKG89PT0iYWNjZXNzb3IiKXtpZihtPT09dm9pZCAwKWNvbnRpbnVlO2lmKG09PT1udWxsfHx0eXBlb2YgbSE9Im9iamVjdCIpdGhyb3cgbmV3IFR5cGVFcnJvcigiT2JqZWN0IGV4cGVjdGVkIik7KGw9bihtLmdldCkpJiYoaC5nZXQ9bCksKGw9bihtLnNldCkpJiYoaC5zZXQ9bCksKGw9bihtLmluaXQpKSYmci51bnNoaWZ0KGwpfWVsc2UobD1uKG0pKSYmKG89PT0iZmllbGQiP3IudW5zaGlmdChsKTpoW2RdPWwpfWMmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShjLGkubmFtZSxoKSxmPSEwfSxtOD1mdW5jdGlvbih0LGUsYSl7Zm9yKHZhciBpPWFyZ3VtZW50cy5sZW5ndGg+MixyPTA7cjxlLmxlbmd0aDtyKyspYT1pP2Vbcl0uY2FsbCh0LGEpOmVbcl0uY2FsbCh0KTtyZXR1cm4gaT9hOnZvaWQgMH0sTTl0PSgoKT0+e2xldCB0PVtwZSgiZGVlcy13aW5kb3djb250cm9scyIpXSxlLGE9W10saSxyPXhlLHMsbj1bXSxvPVtdLGQsYz1bXSxoPVtdO3ZhciBsPWNsYXNzIGV4dGVuZHMgcntzdGF0aWN7aT10aGlzfXN0YXRpY3tsZXQgZj10eXBlb2YgU3ltYm9sPT0iZnVuY3Rpb24iJiZTeW1ib2wubWV0YWRhdGE/T2JqZWN0LmNyZWF0ZShyW1N5bWJvbC5tZXRhZGF0YV0/P251bGwpOnZvaWQgMDtzPVtJKHtyZWZsZWN0OiEwfSldLGQ9W0koe3JlZmxlY3Q6ITB9KV0sa3EodGhpcyxudWxsLHMse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJ0eXBlIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpnPT4idHlwZSJpbiBnLGdldDpnPT5nLnR5cGUsc2V0OihnLHkpPT57Zy50eXBlPXl9fSxtZXRhZGF0YTpmfSxuLG8pLGtxKHRoaXMsbnVsbCxkLHtraW5kOiJhY2Nlc3NvciIsbmFtZToicG9zaXRpb24iLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmc9PiJwb3NpdGlvbiJpbiBnLGdldDpnPT5nLnBvc2l0aW9uLHNldDooZyx5KT0+e2cucG9zaXRpb249eX19LG1ldGFkYXRhOmZ9LGMsaCksa3EobnVsbCxlPXt2YWx1ZTppfSx0LHtraW5kOiJjbGFzcyIsbmFtZTppLm5hbWUsbWV0YWRhdGE6Zn0sbnVsbCxhKSxsPWk9ZS52YWx1ZSxmJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoaSxTeW1ib2wubWV0YWRhdGEse2VudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwLHZhbHVlOmZ9KX1zdGF0aWMgZGVtbz0oKT0+d2A8ZGVlcy13aW5kb3djb250cm9scz48L2RlZXMtd2luZG93Y29udHJvbHM+YDtzdGF0aWMgZGVtb0dyb3Vwcz1bIlV0aWxpdHkiXTsjZT1tOCh0aGlzLG4sIm1hYyIpO2dldCB0eXBlKCl7cmV0dXJuIHRoaXMuI2V9c2V0IHR5cGUoZil7dGhpcy4jZT1mfSN0PShtOCh0aGlzLG8pLG04KHRoaXMsYywibGVmdCIpKTtnZXQgcG9zaXRpb24oKXtyZXR1cm4gdGhpcy4jdH1zZXQgcG9zaXRpb24oZil7dGhpcy4jdD1mfXN0YXRpYyBzdHlsZXM9W0NlLHAuZGVmYXVsdFN0eWxlcyxRYAogICAgICAvKiBUT0RPOiBNaWdyYXRlIGhhcmRjb2RlZCB2YWx1ZXMgdG8gLS1kZWVzLSogQ1NTIHZhcmlhYmxlcyAqLwogICAgICA6aG9zdCB7CiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICAgIGRpc3BsYXk6IGJsb2NrOwogICAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7CiAgICAgICAgcGFkZGluZy1sZWZ0OiAxNnB4OwogICAgICAgIHBhZGRpbmctcmlnaHQ6IDE2cHg7CiAgICAgIH0KCiAgICAgIC53aW5kb3dDb250cm9scyB7CiAgICAgICAgaGVpZ2h0OiAxMDAlOwogICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgIH0KCiAgICAgIC53aW5kb3dDb250cm9scyBkaXYgewogICAgICAgIHdpZHRoOiAxMnB4OwogICAgICAgIGhlaWdodDogMTJweDsKICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7CiAgICAgICAgYm9yZGVyLXJhZGl1czogNTAlOwogICAgICAgIG1hcmdpbjogMHB4OwogICAgICAgIHBhZGRpbmc6IDBweDsKICAgICAgICBiYWNrZ3JvdW5kOiAjMjIyMjIyOwogICAgICB9CgogICAgICAud2luZG93Q29udHJvbHMgZGl2LmNsb3NlIHsKICAgICAgICBiYWNrZ3JvdW5kOiAjZmY1ZjU3OwogICAgICAgIG1hcmdpbi1yaWdodDogMTJweDsKICAgICAgfQoKICAgICAgLndpbmRvd0NvbnRyb2xzIGRpdi50b0RvY2sgewogICAgICAgIGJhY2tncm91bmQ6ICNmZmJkMmU7CiAgICAgICAgbWFyZ2luLXJpZ2h0OiAxMnB4OwogICAgICB9CgogICAgICAud2luZG93Q29udHJvbHMgZGl2Lm1pbk1heCB7CiAgICAgICAgYmFja2dyb3VuZDogIzI3YzkzZjsKICAgICAgfQoKICAgICAgLndpbmRvd0NvbnRyb2xzIGRpdjpob3ZlciB7CiAgICAgICAgYmFja2dyb3VuZDogIzMzMzMzMzsKICAgICAgfQogICAgYF07cmVuZGVyKCl7cmV0dXJuIHdgCiAgICAgICR7dGhpcy50eXBlPT09Im1hYyImJnRoaXMucG9zaXRpb249PT0ibGVmdCJ8fCh0aGlzLnR5cGU9PT0ibGludXgifHx0aGlzLnR5cGU9PT0id2luZG93cyIpJiZ0aGlzLnBvc2l0aW9uPT09InJpZ2h0Ij93YAogICAgICAgICAgICA8ZGl2IGNsYXNzPSJ3aW5kb3dDb250cm9scyI+CiAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iY2xvc2UiPjwvZGl2PgogICAgICAgICAgICAgIDxkaXYgY2xhc3M9InRvRG9jayI+PC9kaXY+CiAgICAgICAgICAgICAgPGRpdiBjbGFzcz0ibWluTWF4Ij48L2Rpdj4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICBgOndgYH0KICAgIGB9Y29uc3RydWN0b3IoKXtzdXBlciguLi5hcmd1bWVudHMpLG04KHRoaXMsaCl9c3RhdGlje204KGksYSl9fTtyZXR1cm4gbD1pfSkoKX0pO3ZhciBnOCxFcyx6OXQsQ3E9YigoKT0+e3MyKCk7dWkoKTt1ZSgpO3FlKCk7Zzg9ZnVuY3Rpb24odCxlLGEsaSxyLHMpe2Z1bmN0aW9uIG4oeCl7aWYoeCE9PXZvaWQgMCYmdHlwZW9mIHghPSJmdW5jdGlvbiIpdGhyb3cgbmV3IFR5cGVFcnJvcigiRnVuY3Rpb24gZXhwZWN0ZWQiKTtyZXR1cm4geH1mb3IodmFyIG89aS5raW5kLGQ9bz09PSJnZXR0ZXIiPyJnZXQiOm89PT0ic2V0dGVyIj8ic2V0IjoidmFsdWUiLGM9IWUmJnQ/aS5zdGF0aWM/dDp0LnByb3RvdHlwZTpudWxsLGg9ZXx8KGM/T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihjLGkubmFtZSk6e30pLGwsZj0hMSxnPWEubGVuZ3RoLTE7Zz49MDtnLS0pe3ZhciB5PXt9O2Zvcih2YXIgdiBpbiBpKXlbdl09dj09PSJhY2Nlc3MiP3t9Omlbdl07Zm9yKHZhciB2IGluIGkuYWNjZXNzKXkuYWNjZXNzW3ZdPWkuYWNjZXNzW3ZdO3kuYWRkSW5pdGlhbGl6ZXI9ZnVuY3Rpb24oeCl7aWYoZil0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgYWRkIGluaXRpYWxpemVycyBhZnRlciBkZWNvcmF0aW9uIGhhcyBjb21wbGV0ZWQiKTtzLnB1c2gobih4fHxudWxsKSl9O3ZhciBtPSgwLGFbZ10pKG89PT0iYWNjZXNzb3IiP3tnZXQ6aC5nZXQsc2V0Omguc2V0fTpoW2RdLHkpO2lmKG89PT0iYWNjZXNzb3IiKXtpZihtPT09dm9pZCAwKWNvbnRpbnVlO2lmKG09PT1udWxsfHx0eXBlb2YgbSE9Im9iamVjdCIpdGhyb3cgbmV3IFR5cGVFcnJvcigiT2JqZWN0IGV4cGVjdGVkIik7KGw9bihtLmdldCkpJiYoaC5nZXQ9bCksKGw9bihtLnNldCkpJiYoaC5zZXQ9bCksKGw9bihtLmluaXQpKSYmci51bnNoaWZ0KGwpfWVsc2UobD1uKG0pKSYmKG89PT0iZmllbGQiP3IudW5zaGlmdChsKTpoW2RdPWwpfWMmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShjLGkubmFtZSxoKSxmPSEwfSxFcz1mdW5jdGlvbih0LGUsYSl7Zm9yKHZhciBpPWFyZ3VtZW50cy5sZW5ndGg+MixyPTA7cjxlLmxlbmd0aDtyKyspYT1pP2Vbcl0uY2FsbCh0LGEpOmVbcl0uY2FsbCh0KTtyZXR1cm4gaT9hOnZvaWQgMH0sejl0PSgoKT0+e2xldCB0PVtwZSgiZGVlcy1hcHB1aS1wcm9maWxlZHJvcGRvd24iKV0sZSxhPVtdLGkscj14ZSxzLG49W10sbz1bXSxkLGM9W10saD1bXSxsLGY9W10sZz1bXSx5LHY9W10sbT1bXTt2YXIgeD1jbGFzcyBleHRlbmRzIHJ7c3RhdGlje2k9dGhpc31zdGF0aWN7bGV0IE09dHlwZW9mIFN5bWJvbD09ImZ1bmN0aW9uIiYmU3ltYm9sLm1ldGFkYXRhP09iamVjdC5jcmVhdGUocltTeW1ib2wubWV0YWRhdGFdPz9udWxsKTp2b2lkIDA7cz1bSSh7dHlwZTpPYmplY3R9KV0sZD1bSSh7dHlwZTpBcnJheX0pXSxsPVtJKHt0eXBlOkJvb2xlYW4scmVmbGVjdDohMH0pXSx5PVtJKHt0eXBlOlN0cmluZ30pXSxnOCh0aGlzLG51bGwscyx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InVzZXIiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOlM9PiJ1c2VyImluIFMsZ2V0OlM9PlMudXNlcixzZXQ6KFMsRik9PntTLnVzZXI9Rn19LG1ldGFkYXRhOk19LG4sbyksZzgodGhpcyxudWxsLGQse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJtZW51SXRlbXMiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOlM9PiJtZW51SXRlbXMiaW4gUyxnZXQ6Uz0+Uy5tZW51SXRlbXMsc2V0OihTLEYpPT57Uy5tZW51SXRlbXM9Rn19LG1ldGFkYXRhOk19LGMsaCksZzgodGhpcyxudWxsLGwse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJpc09wZW4iLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOlM9PiJpc09wZW4iaW4gUyxnZXQ6Uz0+Uy5pc09wZW4sc2V0OihTLEYpPT57Uy5pc09wZW49Rn19LG1ldGFkYXRhOk19LGYsZyksZzgodGhpcyxudWxsLHkse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJwb3NpdGlvbiIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6Uz0+InBvc2l0aW9uImluIFMsZ2V0OlM9PlMucG9zaXRpb24sc2V0OihTLEYpPT57Uy5wb3NpdGlvbj1GfX0sbWV0YWRhdGE6TX0sdixtKSxnOChudWxsLGU9e3ZhbHVlOml9LHQse2tpbmQ6ImNsYXNzIixuYW1lOmkubmFtZSxtZXRhZGF0YTpNfSxudWxsLGEpLHg9aT1lLnZhbHVlLE0mJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShpLFN5bWJvbC5tZXRhZGF0YSx7ZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITAsdmFsdWU6TX0pfXN0YXRpYyBkZW1vPSgpPT53YAogICAgPGRlZXMtYXBwdWktcHJvZmlsZWRyb3Bkb3duCiAgICAgIC51c2VyPSR7e25hbWU6IkpvaG4gRG9lIixlbWFpbDoiam9obi5kb2VAZXhhbXBsZS5jb20iLGF2YXRhcjoiaHR0cHM6Ly9yYW5kb211c2VyLm1lL2FwaS9wb3J0cmFpdHMvbWVuLzEuanBnIixzdGF0dXM6Im9ubGluZSJ9fQogICAgICAubWVudUl0ZW1zPSR7W3tuYW1lOiJQcm9maWxlIFNldHRpbmdzIixpY29uTmFtZToidXNlciIsYWN0aW9uOmFzeW5jKCk9PmNvbnNvbGUubG9nKCJQcm9maWxlIil9LHtuYW1lOiJBY2NvdW50IixpY29uTmFtZToic2V0dGluZ3MiLGFjdGlvbjphc3luYygpPT5jb25zb2xlLmxvZygiQWNjb3VudCIpfSx7ZGl2aWRlcjohMH0se25hbWU6IkhlbHAgJiBTdXBwb3J0IixpY29uTmFtZToiaGVscENpcmNsZSIsYWN0aW9uOmFzeW5jKCk9PmNvbnNvbGUubG9nKCJIZWxwIil9LHtuYW1lOiJLZXlib2FyZCBTaG9ydGN1dHMiLGljb25OYW1lOiJrZXlib2FyZCIsc2hvcnRjdXQ6IkNtZCtLIixhY3Rpb246YXN5bmMoKT0+Y29uc29sZS5sb2coIlNob3J0Y3V0cyIpfSx7ZGl2aWRlcjohMH0se25hbWU6IlNpZ24gT3V0IixpY29uTmFtZToibG9nT3V0IixhY3Rpb246YXN5bmMoKT0+Y29uc29sZS5sb2coIlNpZ24gb3V0Iil9XX0KICAgICAgLmlzT3Blbj0keyEwfQogICAgPjwvZGVlcy1hcHB1aS1wcm9maWxlZHJvcGRvd24+CiAgYDtzdGF0aWMgZGVtb0dyb3Vwcz1bIkFwcCBVSSJdOyNlPUVzKHRoaXMsbix2b2lkIDApO2dldCB1c2VyKCl7cmV0dXJuIHRoaXMuI2V9c2V0IHVzZXIoTSl7dGhpcy4jZT1NfSN0PShFcyh0aGlzLG8pLEVzKHRoaXMsYyxbXSkpO2dldCBtZW51SXRlbXMoKXtyZXR1cm4gdGhpcy4jdH1zZXQgbWVudUl0ZW1zKE0pe3RoaXMuI3Q9TX0jYT0oRXModGhpcyxoKSxFcyh0aGlzLGYsITEpKTtnZXQgaXNPcGVuKCl7cmV0dXJuIHRoaXMuI2F9c2V0IGlzT3BlbihNKXt0aGlzLiNhPU19I2k9KEVzKHRoaXMsZyksRXModGhpcyx2LCJ0b3AtcmlnaHQiKSk7Z2V0IHBvc2l0aW9uKCl7cmV0dXJuIHRoaXMuI2l9c2V0IHBvc2l0aW9uKE0pe3RoaXMuI2k9TX1zdGF0aWMgc3R5bGVzPVtDZSxwLmRlZmF1bHRTdHlsZXMsUWAKICAgICAgLyogVE9ETzogTWlncmF0ZSBoYXJkY29kZWQgdmFsdWVzIHRvIC0tZGVlcy0qIENTUyB2YXJpYWJsZXMgKi8KICAgICAgOmhvc3QgewogICAgICAgIGRpc3BsYXk6IGJsb2NrOwogICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgICB0b3A6IDEwMCU7CiAgICAgICAgbGVmdDogMDsKICAgICAgICByaWdodDogMDsKICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTsKICAgICAgfQoKICAgICAgLmRyb3Bkb3duIHsKICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgICAgbWluLXdpZHRoOiAyMjBweDsKICAgICAgICBiYWNrZ3JvdW5kOiAke3AuYmRUaGVtZSgiI2ZmZmZmZiIsIiMwMDAwMDAiKX07CiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHtwLmJkVGhlbWUoIiNlMGUwZTAiLCIjMjAyMDIwIil9OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDRweDsKICAgICAgICBib3gtc2hhZG93OiAke3AuYmRUaGVtZSgiMCA0cHggMTJweCByZ2JhKDAsIDAsIDAsIDAuMTUpIiwiMCA0cHggMTJweCByZ2JhKDAsIDAsIDAsIDAuMykiKX07CiAgICAgICAgei1pbmRleDogJHtyMi5vdmVybGF5LmRyb3Bkb3dufTsKICAgICAgICBvcGFjaXR5OiAwOwogICAgICAgIHRyYW5zZm9ybTogc2NhbGUoMC45NSkgdHJhbnNsYXRlWSgtMTBweCk7CiAgICAgICAgdHJhbnNpdGlvbjogb3BhY2l0eSAwLjJzLCB0cmFuc2Zvcm0gMC4yczsKICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTsKICAgICAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgICAgIGZvbnQtc2l6ZTogMTJweDsKICAgICAgfQoKICAgICAgOmhvc3QoW2lzb3Blbl0pIC5kcm9wZG93biB7CiAgICAgICAgb3BhY2l0eTogMTsKICAgICAgICB0cmFuc2Zvcm06IHNjYWxlKDEpIHRyYW5zbGF0ZVkoMCk7CiAgICAgICAgcG9pbnRlci1ldmVudHM6IGF1dG87CiAgICAgIH0KICAgICAgCiAgICAgIC5iYWNrZHJvcCB7CiAgICAgICAgZGlzcGxheTogbm9uZTsKICAgICAgfQoKICAgICAgLyogUG9zaXRpb24gdmFyaWFudHMgKi8KICAgICAgLmRyb3Bkb3duLnRvcC1yaWdodCB7CiAgICAgICAgdG9wOiAxMDAlOwogICAgICAgIHJpZ2h0OiAwOwogICAgICAgIG1hcmdpbi10b3A6IDRweDsKICAgICAgfQoKICAgICAgLmRyb3Bkb3duLnRvcC1sZWZ0IHsKICAgICAgICB0b3A6IDEwMCU7CiAgICAgICAgbGVmdDogMDsKICAgICAgICBtYXJnaW4tdG9wOiA4cHg7CiAgICAgIH0KCiAgICAgIC5kcm9wZG93bi5ib3R0b20tcmlnaHQgewogICAgICAgIGJvdHRvbTogMTAwJTsKICAgICAgICByaWdodDogMDsKICAgICAgICBtYXJnaW4tYm90dG9tOiA4cHg7CiAgICAgIH0KCiAgICAgIC5kcm9wZG93bi5ib3R0b20tbGVmdCB7CiAgICAgICAgYm90dG9tOiAxMDAlOwogICAgICAgIGxlZnQ6IDA7CiAgICAgICAgbWFyZ2luLWJvdHRvbTogOHB4OwogICAgICB9CgogICAgICAvKiBVc2VyIHNlY3Rpb24gKi8KICAgICAgLnVzZXItc2VjdGlvbiB7CiAgICAgICAgcGFkZGluZzogMTJweDsKICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHtwLmJkVGhlbWUoIiNlMGUwZTAiLCIjMjAyMDIwIil9OwogICAgICB9CgogICAgICAudXNlci1pbmZvIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgZ2FwOiAxMHB4OwogICAgICB9CgogICAgICAudXNlci1hdmF0YXIgewogICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgICB3aWR0aDogMzZweDsKICAgICAgICBoZWlnaHQ6IDM2cHg7CiAgICAgICAgYm9yZGVyLXJhZGl1czogNTAlOwogICAgICAgIGJhY2tncm91bmQ6ICR7cC5iZFRoZW1lKCIjZjBmMGYwIiwiIzFhMWExYSIpfTsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7CiAgICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7CiAgICAgICAgY29sb3I6ICR7cC5iZFRoZW1lKCIjNjY2IiwiIzk5OSIpfTsKICAgICAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgICB9CgogICAgICAudXNlci1hdmF0YXIgaW1nIHsKICAgICAgICB3aWR0aDogMTAwJTsKICAgICAgICBoZWlnaHQ6IDEwMCU7CiAgICAgICAgb2JqZWN0LWZpdDogY292ZXI7CiAgICAgIH0KCiAgICAgIC51c2VyLXN0YXR1cyB7CiAgICAgICAgcG9zaXRpb246IGFic29sdXRlOwogICAgICAgIGJvdHRvbTogMDsKICAgICAgICByaWdodDogMDsKICAgICAgICB3aWR0aDogMTBweDsKICAgICAgICBoZWlnaHQ6IDEwcHg7CiAgICAgICAgYm9yZGVyLXJhZGl1czogNTAlOwogICAgICAgIGJvcmRlcjogMnB4IHNvbGlkICR7cC5iZFRoZW1lKCIjZmZmZmZmIiwiIzAwMDAwMCIpfTsKICAgICAgfQoKICAgICAgLnVzZXItc3RhdHVzLm9ubGluZSB7CiAgICAgICAgYmFja2dyb3VuZDogIzRjYWY1MDsKICAgICAgfQoKICAgICAgLnVzZXItc3RhdHVzLm9mZmxpbmUgewogICAgICAgIGJhY2tncm91bmQ6ICM3NTc1NzU7CiAgICAgIH0KCiAgICAgIC51c2VyLXN0YXR1cy5idXN5IHsKICAgICAgICBiYWNrZ3JvdW5kOiAjZjQ0MzM2OwogICAgICB9CgogICAgICAudXNlci1zdGF0dXMuYXdheSB7CiAgICAgICAgYmFja2dyb3VuZDogI2ZmOTgwMDsKICAgICAgfQoKICAgICAgLnVzZXItZGV0YWlscyB7CiAgICAgICAgZmxleDogMTsKICAgICAgICBtaW4td2lkdGg6IDA7CiAgICAgIH0KCiAgICAgIC51c2VyLW5hbWUgewogICAgICAgIGZvbnQtc2l6ZTogMTNweDsKICAgICAgICBmb250LXdlaWdodDogNjAwOwogICAgICAgIGNvbG9yOiAke3AuYmRUaGVtZSgiIzAwMCIsIiNmZmYiKX07CiAgICAgICAgbGluZS1oZWlnaHQ6IDEuMjsKICAgICAgICBtYXJnaW46IDA7CiAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDsKICAgICAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzOwogICAgICB9CgogICAgICAudXNlci1lbWFpbCB7CiAgICAgICAgZm9udC1zaXplOiAxMXB4OwogICAgICAgIGNvbG9yOiAke3AuYmRUaGVtZSgiIzY2NiIsIiM5OTkiKX07CiAgICAgICAgbWFyZ2luLXRvcDogMnB4OwogICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7CiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpczsKICAgICAgfQoKICAgICAgLyogTWVudSBzZWN0aW9uICovCiAgICAgIC5tZW51LXNlY3Rpb24gewogICAgICAgIHBhZGRpbmc6IDRweCAwOwogICAgICB9CgogICAgICAubWVudS1pdGVtIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgZ2FwOiA4cHg7CiAgICAgICAgcGFkZGluZzogOHB4IDEycHg7CiAgICAgICAgY3Vyc29yOiBkZWZhdWx0OwogICAgICAgIHRyYW5zaXRpb246IGJhY2tncm91bmQgMC4xczsKICAgICAgICBjb2xvcjogJHtwLmJkVGhlbWUoIiMzMzMiLCIjY2NjIil9OwogICAgICAgIGZvbnQtc2l6ZTogMTJweDsKICAgICAgICBsaW5lLWhlaWdodDogMTsKICAgICAgICB1c2VyLXNlbGVjdDogbm9uZTsKICAgICAgfQoKICAgICAgLm1lbnUtaXRlbTpob3ZlciB7CiAgICAgICAgYmFja2dyb3VuZDogJHtwLmJkVGhlbWUoInJnYmEoMCwgMCwgMCwgMC4wNCkiLCJyZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMDgpIil9OwogICAgICB9CgogICAgICAubWVudS1pdGVtOmFjdGl2ZSB7CiAgICAgICAgYmFja2dyb3VuZDogJHtwLmJkVGhlbWUoInJnYmEoMCwgMCwgMCwgMC4wOCkiLCJyZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMTIpIil9OwogICAgICB9CgogICAgICAubWVudS1pdGVtIGRlZXMtaWNvbiB7CiAgICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgICAgIG9wYWNpdHk6IDAuNzsKICAgICAgfQoKICAgICAgLm1lbnUtaXRlbS10ZXh0IHsKICAgICAgICBmbGV4OiAxOwogICAgICB9CgogICAgICAubWVudS1zaG9ydGN1dCB7CiAgICAgICAgZm9udC1zaXplOiAxMXB4OwogICAgICAgIGNvbG9yOiAke3AuYmRUaGVtZSgiIzk5OSIsIiM2NjYiKX07CiAgICAgICAgbWFyZ2luLWxlZnQ6IGF1dG87CiAgICAgICAgb3BhY2l0eTogMC43OwogICAgICB9CgogICAgICAubWVudS1kaXZpZGVyIHsKICAgICAgICBoZWlnaHQ6IDFweDsKICAgICAgICBiYWNrZ3JvdW5kOiAke3AuYmRUaGVtZSgiI2UwZTBlMCIsIiMyMDIwMjAiKX07CiAgICAgICAgbWFyZ2luOiA0cHggMDsKICAgICAgfQoKICAgICAgLyogQmFja2Ryb3AgZm9yIG1vYmlsZSAqLwogICAgICBAbWVkaWEgKG1heC13aWR0aDogNzY4cHgpIHsKICAgICAgICAuYmFja2Ryb3AgewogICAgICAgICAgcG9zaXRpb246IGZpeGVkOwogICAgICAgICAgdG9wOiAwOwogICAgICAgICAgbGVmdDogMDsKICAgICAgICAgIHJpZ2h0OiAwOwogICAgICAgICAgYm90dG9tOiAwOwogICAgICAgICAgYmFja2dyb3VuZDogcmdiYSgwLCAwLCAwLCAwLjMpOwogICAgICAgICAgei1pbmRleDogJHtyMi5iYWNrZHJvcC5kcm9wZG93bn07CiAgICAgICAgICBvcGFjaXR5OiAwOwogICAgICAgICAgdHJhbnNpdGlvbjogb3BhY2l0eSAwLjJzOwogICAgICAgICAgZGlzcGxheTogbm9uZTsKICAgICAgICB9CgogICAgICAgIDpob3N0KFtpc29wZW5dKSAuYmFja2Ryb3AgewogICAgICAgICAgZGlzcGxheTogYmxvY2s7CiAgICAgICAgICBvcGFjaXR5OiAxOwogICAgICAgICAgcG9pbnRlci1ldmVudHM6IGF1dG87CiAgICAgICAgfQoKICAgICAgICAuZHJvcGRvd24gewogICAgICAgICAgcG9zaXRpb246IGZpeGVkOwogICAgICAgICAgdG9wOiA1MCU7CiAgICAgICAgICBsZWZ0OiA1MCU7CiAgICAgICAgICByaWdodDogYXV0bzsKICAgICAgICAgIGJvdHRvbTogYXV0bzsKICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUsIC01MCUpIHNjYWxlKDAuOTUpOwogICAgICAgICAgbWFyZ2luOiAwOwogICAgICAgICAgbWF4LXdpZHRoOiBjYWxjKDEwMHZ3IC0gMzJweCk7CiAgICAgICAgICBtYXgtaGVpZ2h0OiBjYWxjKDEwMHZoIC0gMzJweCk7CiAgICAgICAgICBvdmVyZmxvdy15OiBhdXRvOwogICAgICAgICAgb3ZlcnNjcm9sbC1iZWhhdmlvcjogY29udGFpbjsKICAgICAgICB9CgogICAgICAgIDpob3N0KFtpc29wZW5dKSAuZHJvcGRvd24gewogICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSwgLTUwJSkgc2NhbGUoMSk7CiAgICAgICAgfQogICAgICB9CiAgICBgXTtyZW5kZXIoKXtyZXR1cm4gd2AKICAgICAgPGRpdiBjbGFzcz0iYmFja2Ryb3AiIEBjbGljaz0keygpPT50aGlzLmNsb3NlKCl9PjwvZGl2PgogICAgICA8ZGl2IGNsYXNzPSJkcm9wZG93biAke3RoaXMucG9zaXRpb259Ij4KICAgICAgICAke3RoaXMudXNlcj93YAogICAgICAgICAgPGRpdiBjbGFzcz0idXNlci1zZWN0aW9uIj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0idXNlci1pbmZvIj4KICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJ1c2VyLWF2YXRhciI+CiAgICAgICAgICAgICAgICAke3RoaXMudXNlci5hdmF0YXI/d2A8aW1nIHNyYz0iJHt0aGlzLnVzZXIuYXZhdGFyfSIgYWx0PSIke3RoaXMudXNlci5uYW1lfSI+YDp0aGlzLmdldEluaXRpYWxzKHRoaXMudXNlci5uYW1lKX0KICAgICAgICAgICAgICAgICR7dGhpcy51c2VyLnN0YXR1cz93YAogICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJ1c2VyLXN0YXR1cyAke3RoaXMudXNlci5zdGF0dXN9Ij48L2Rpdj4KICAgICAgICAgICAgICAgIGA6IiJ9CiAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgPGRpdiBjbGFzcz0idXNlci1kZXRhaWxzIj4KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InVzZXItbmFtZSI+JHt0aGlzLnVzZXIubmFtZX08L2Rpdj4KICAgICAgICAgICAgICAgICR7dGhpcy51c2VyLmVtYWlsP3dgCiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InVzZXItZW1haWwiPiR7dGhpcy51c2VyLmVtYWlsfTwvZGl2PgogICAgICAgICAgICAgICAgYDoiIn0KICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICBgOiIifQogICAgICAgIAogICAgICAgIDxkaXYgY2xhc3M9Im1lbnUtc2VjdGlvbiI+CiAgICAgICAgICAke3RoaXMubWVudUl0ZW1zLm1hcChNPT50aGlzLnJlbmRlck1lbnVJdGVtKE0pKX0KICAgICAgICA8L2Rpdj4KICAgICAgPC9kaXY+CiAgICBgfXJlbmRlck1lbnVJdGVtKE0pe2lmKCJkaXZpZGVyImluIE0mJk0uZGl2aWRlcilyZXR1cm4gd2A8ZGl2IGNsYXNzPSJtZW51LWRpdmlkZXIiPjwvZGl2PmA7bGV0IFM9TTtyZXR1cm4gd2AKICAgICAgPGRpdiBjbGFzcz0ibWVudS1pdGVtIiBAY2xpY2s9JHsoKT0+dGhpcy5oYW5kbGVNZW51Q2xpY2soUyl9PgogICAgICAgICR7Uy5pY29uTmFtZT93YAogICAgICAgICAgPGRlZXMtaWNvbiAuaWNvbj0iJHtgbHVjaWRlOiR7Uy5pY29uTmFtZX1gfSI+PC9kZWVzLWljb24+CiAgICAgICAgYDoiIn0KICAgICAgICA8c3BhbiBjbGFzcz0ibWVudS1pdGVtLXRleHQiPiR7Uy5uYW1lfTwvc3Bhbj4KICAgICAgICAke1Muc2hvcnRjdXQ/d2AKICAgICAgICAgIDxzcGFuIGNsYXNzPSJtZW51LXNob3J0Y3V0Ij4ke1Muc2hvcnRjdXR9PC9zcGFuPgogICAgICAgIGA6IiJ9CiAgICAgIDwvZGl2PgogICAgYH1nZXRJbml0aWFscyhNKXtyZXR1cm4gTS5zcGxpdCgiICIpLm1hcChTPT5TWzBdKS5qb2luKCIiKS50b1VwcGVyQ2FzZSgpLnNsaWNlKDAsMil9YXN5bmMgaGFuZGxlTWVudUNsaWNrKE0pe2F3YWl0IE0uYWN0aW9uKCksdGhpcy5jbG9zZSgpLHRoaXMuZGlzcGF0Y2hFdmVudChuZXcgQ3VzdG9tRXZlbnQoIm1lbnUtc2VsZWN0Iix7ZGV0YWlsOntpdGVtOk19LGJ1YmJsZXM6ITAsY29tcG9zZWQ6ITB9KSl9b3Blbigpe3RoaXMuaXNPcGVuPSEwfWNsb3NlKCl7dGhpcy5pc09wZW49ITF9dG9nZ2xlKCl7dGhpcy5pc09wZW49IXRoaXMuaXNPcGVufWFzeW5jIGNvbm5lY3RlZENhbGxiYWNrKCl7YXdhaXQgc3VwZXIuY29ubmVjdGVkQ2FsbGJhY2soKSx0aGlzLmhhbmRsZU91dHNpZGVDbGljaz10aGlzLmhhbmRsZU91dHNpZGVDbGljay5iaW5kKHRoaXMpLGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIix0aGlzLmhhbmRsZU91dHNpZGVDbGljayl9YXN5bmMgZGlzY29ubmVjdGVkQ2FsbGJhY2soKXthd2FpdCBzdXBlci5kaXNjb25uZWN0ZWRDYWxsYmFjaygpLGRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoImNsaWNrIix0aGlzLmhhbmRsZU91dHNpZGVDbGljayl9aGFuZGxlT3V0c2lkZUNsaWNrKE0pe2lmKHRoaXMuaXNPcGVuJiYhdGhpcy5jb250YWlucyhNLnRhcmdldCkpe2xldCBTPXRoaXMucGFyZW50RWxlbWVudDtpZihTJiZTLmNvbnRhaW5zKE0udGFyZ2V0KSlyZXR1cm47dGhpcy5jbG9zZSgpfX1jb25zdHJ1Y3Rvcigpe3N1cGVyKC4uLmFyZ3VtZW50cyksRXModGhpcyxtKX1zdGF0aWN7RXMoaSxhKX19O3JldHVybiB4PWl9KSgpfSk7dmFyIFoyLFd0LGs5dCx6cT1iKCgpPT57dWUoKTtUdCgpO3NvKCk7czIoKTtiOXQoKTt5OXQoKTt3OXQoKTtEdCgpO1NxKCk7Q3EoKTtaMj1mdW5jdGlvbih0LGUsYSxpLHIscyl7ZnVuY3Rpb24gbih4KXtpZih4IT09dm9pZCAwJiZ0eXBlb2YgeCE9ImZ1bmN0aW9uIil0aHJvdyBuZXcgVHlwZUVycm9yKCJGdW5jdGlvbiBleHBlY3RlZCIpO3JldHVybiB4fWZvcih2YXIgbz1pLmtpbmQsZD1vPT09ImdldHRlciI/ImdldCI6bz09PSJzZXR0ZXIiPyJzZXQiOiJ2YWx1ZSIsYz0hZSYmdD9pLnN0YXRpYz90OnQucHJvdG90eXBlOm51bGwsaD1lfHwoYz9PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGMsaS5uYW1lKTp7fSksbCxmPSExLGc9YS5sZW5ndGgtMTtnPj0wO2ctLSl7dmFyIHk9e307Zm9yKHZhciB2IGluIGkpeVt2XT12PT09ImFjY2VzcyI/e306aVt2XTtmb3IodmFyIHYgaW4gaS5hY2Nlc3MpeS5hY2Nlc3Nbdl09aS5hY2Nlc3Nbdl07eS5hZGRJbml0aWFsaXplcj1mdW5jdGlvbih4KXtpZihmKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBhZGQgaW5pdGlhbGl6ZXJzIGFmdGVyIGRlY29yYXRpb24gaGFzIGNvbXBsZXRlZCIpO3MucHVzaChuKHh8fG51bGwpKX07dmFyIG09KDAsYVtnXSkobz09PSJhY2Nlc3NvciI/e2dldDpoLmdldCxzZXQ6aC5zZXR9OmhbZF0seSk7aWYobz09PSJhY2Nlc3NvciIpe2lmKG09PT12b2lkIDApY29udGludWU7aWYobT09PW51bGx8fHR5cGVvZiBtIT0ib2JqZWN0Iil0aHJvdyBuZXcgVHlwZUVycm9yKCJPYmplY3QgZXhwZWN0ZWQiKTsobD1uKG0uZ2V0KSkmJihoLmdldD1sKSwobD1uKG0uc2V0KSkmJihoLnNldD1sKSwobD1uKG0uaW5pdCkpJiZyLnVuc2hpZnQobCl9ZWxzZShsPW4obSkpJiYobz09PSJmaWVsZCI/ci51bnNoaWZ0KGwpOmhbZF09bCl9YyYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGMsaS5uYW1lLGgpLGY9ITB9LFd0PWZ1bmN0aW9uKHQsZSxhKXtmb3IodmFyIGk9YXJndW1lbnRzLmxlbmd0aD4yLHI9MDtyPGUubGVuZ3RoO3IrKylhPWk/ZVtyXS5jYWxsKHQsYSk6ZVtyXS5jYWxsKHQpO3JldHVybiBpP2E6dm9pZCAwfSxrOXQ9KCgpPT57bGV0IHQ9W3BlKCJkZWVzLWFwcHVpLWFwcGJhciIpXSxlLGE9W10saSxyPXhlLHMsbj1bXSxvPVtdLGQsYz1bXSxoPVtdLGwsZj1bXSxnPVtdLHksdj1bXSxtPVtdLHgsTT1bXSxTPVtdLEYsXz1bXSxrPVtdLE4sTD1bXSxBPVtdLHEsQz1bXSx6PVtdLEUsVD1bXSwkPVtdLFYsUj1bXSxVPVtdLHJlLGo9W10sbWU9W10sd2UsSD1bXSxjZT1bXSxrZSxXPVtdLEQ9W10sTyxaPVtdLFk9W10sb2UsZ2U9W10sYmU9W107dmFyICRlPWNsYXNzIGV4dGVuZHMgcntzdGF0aWN7aT10aGlzfXN0YXRpY3tsZXQgQj10eXBlb2YgU3ltYm9sPT0iZnVuY3Rpb24iJiZTeW1ib2wubWV0YWRhdGE/T2JqZWN0LmNyZWF0ZShyW1N5bWJvbC5tZXRhZGF0YV0/P251bGwpOnZvaWQgMDtzPVtJKHt0eXBlOkFycmF5fSldLGQ9W0koe3R5cGU6U3RyaW5nfSldLGw9W0koe3R5cGU6U3RyaW5nfSldLHk9W0koe3R5cGU6Qm9vbGVhbn0pXSx4PVtJKHt0eXBlOk9iamVjdH0pXSxGPVtJKHt0eXBlOkFycmF5fSldLE49W0koe3R5cGU6Qm9vbGVhbn0pXSxxPVtJKHt0eXBlOkJvb2xlYW59KV0sRT1bSSh7dHlwZTpOdW1iZXJ9KV0sVj1bSSh7dHlwZTpCb29sZWFufSldLHJlPVtKKCldLHdlPVtKKCldLGtlPVtKKCldLE89W0ooKV0sb2U9W0ooKV0sWjIodGhpcyxudWxsLHMse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJtZW51SXRlbXMiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOlA9PiJtZW51SXRlbXMiaW4gUCxnZXQ6UD0+UC5tZW51SXRlbXMsc2V0OihQLEspPT57UC5tZW51SXRlbXM9S319LG1ldGFkYXRhOkJ9LG4sbyksWjIodGhpcyxudWxsLGQse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJicmVhZGNydW1icyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6UD0+ImJyZWFkY3J1bWJzImluIFAsZ2V0OlA9PlAuYnJlYWRjcnVtYnMsc2V0OihQLEspPT57UC5icmVhZGNydW1icz1LfX0sbWV0YWRhdGE6Qn0sYyxoKSxaMih0aGlzLG51bGwsbCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImJyZWFkY3J1bWJTZXBhcmF0b3IiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOlA9PiJicmVhZGNydW1iU2VwYXJhdG9yImluIFAsZ2V0OlA9PlAuYnJlYWRjcnVtYlNlcGFyYXRvcixzZXQ6KFAsSyk9PntQLmJyZWFkY3J1bWJTZXBhcmF0b3I9S319LG1ldGFkYXRhOkJ9LGYsZyksWjIodGhpcyxudWxsLHkse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJzaG93V2luZG93Q29udHJvbHMiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOlA9PiJzaG93V2luZG93Q29udHJvbHMiaW4gUCxnZXQ6UD0+UC5zaG93V2luZG93Q29udHJvbHMsc2V0OihQLEspPT57UC5zaG93V2luZG93Q29udHJvbHM9S319LG1ldGFkYXRhOkJ9LHYsbSksWjIodGhpcyxudWxsLHgse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJ1c2VyIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpQPT4idXNlciJpbiBQLGdldDpQPT5QLnVzZXIsc2V0OihQLEspPT57UC51c2VyPUt9fSxtZXRhZGF0YTpCfSxNLFMpLFoyKHRoaXMsbnVsbCxGLHtraW5kOiJhY2Nlc3NvciIsbmFtZToicHJvZmlsZU1lbnVJdGVtcyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6UD0+InByb2ZpbGVNZW51SXRlbXMiaW4gUCxnZXQ6UD0+UC5wcm9maWxlTWVudUl0ZW1zLHNldDooUCxLKT0+e1AucHJvZmlsZU1lbnVJdGVtcz1LfX0sbWV0YWRhdGE6Qn0sXyxrKSxaMih0aGlzLG51bGwsTix7a2luZDoiYWNjZXNzb3IiLG5hbWU6InNob3dTZWFyY2giLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOlA9PiJzaG93U2VhcmNoImluIFAsZ2V0OlA9PlAuc2hvd1NlYXJjaCxzZXQ6KFAsSyk9PntQLnNob3dTZWFyY2g9S319LG1ldGFkYXRhOkJ9LEwsQSksWjIodGhpcyxudWxsLHEse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJzaG93QWN0aXZpdHlMb2dUb2dnbGUiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOlA9PiJzaG93QWN0aXZpdHlMb2dUb2dnbGUiaW4gUCxnZXQ6UD0+UC5zaG93QWN0aXZpdHlMb2dUb2dnbGUsc2V0OihQLEspPT57UC5zaG93QWN0aXZpdHlMb2dUb2dnbGU9S319LG1ldGFkYXRhOkJ9LEMseiksWjIodGhpcyxudWxsLEUse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJhY3Rpdml0eUxvZ0NvdW50IixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpQPT4iYWN0aXZpdHlMb2dDb3VudCJpbiBQLGdldDpQPT5QLmFjdGl2aXR5TG9nQ291bnQsc2V0OihQLEspPT57UC5hY3Rpdml0eUxvZ0NvdW50PUt9fSxtZXRhZGF0YTpCfSxULCQpLFoyKHRoaXMsbnVsbCxWLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiYWN0aXZpdHlMb2dBY3RpdmUiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOlA9PiJhY3Rpdml0eUxvZ0FjdGl2ZSJpbiBQLGdldDpQPT5QLmFjdGl2aXR5TG9nQWN0aXZlLHNldDooUCxLKT0+e1AuYWN0aXZpdHlMb2dBY3RpdmU9S319LG1ldGFkYXRhOkJ9LFIsVSksWjIodGhpcyxudWxsLHJlLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiYWN0aXZlTWVudSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6UD0+ImFjdGl2ZU1lbnUiaW4gUCxnZXQ6UD0+UC5hY3RpdmVNZW51LHNldDooUCxLKT0+e1AuYWN0aXZlTWVudT1LfX0sbWV0YWRhdGE6Qn0saixtZSksWjIodGhpcyxudWxsLHdlLHtraW5kOiJhY2Nlc3NvciIsbmFtZToib3BlbkRyb3Bkb3ducyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6UD0+Im9wZW5Ecm9wZG93bnMiaW4gUCxnZXQ6UD0+UC5vcGVuRHJvcGRvd25zLHNldDooUCxLKT0+e1Aub3BlbkRyb3Bkb3ducz1LfX0sbWV0YWRhdGE6Qn0sSCxjZSksWjIodGhpcyxudWxsLGtlLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiZm9jdXNlZEl0ZW0iLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOlA9PiJmb2N1c2VkSXRlbSJpbiBQLGdldDpQPT5QLmZvY3VzZWRJdGVtLHNldDooUCxLKT0+e1AuZm9jdXNlZEl0ZW09S319LG1ldGFkYXRhOkJ9LFcsRCksWjIodGhpcyxudWxsLE8se2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJmb2N1c2VkRHJvcGRvd25JdGVtIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpQPT4iZm9jdXNlZERyb3Bkb3duSXRlbSJpbiBQLGdldDpQPT5QLmZvY3VzZWREcm9wZG93bkl0ZW0sc2V0OihQLEspPT57UC5mb2N1c2VkRHJvcGRvd25JdGVtPUt9fSxtZXRhZGF0YTpCfSxaLFkpLFoyKHRoaXMsbnVsbCxvZSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImlzUHJvZmlsZURyb3Bkb3duT3BlbiIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6UD0+ImlzUHJvZmlsZURyb3Bkb3duT3BlbiJpbiBQLGdldDpQPT5QLmlzUHJvZmlsZURyb3Bkb3duT3BlbixzZXQ6KFAsSyk9PntQLmlzUHJvZmlsZURyb3Bkb3duT3Blbj1LfX0sbWV0YWRhdGE6Qn0sZ2UsYmUpLFoyKG51bGwsZT17dmFsdWU6aX0sdCx7a2luZDoiY2xhc3MiLG5hbWU6aS5uYW1lLG1ldGFkYXRhOkJ9LG51bGwsYSksJGU9aT1lLnZhbHVlLEImJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShpLFN5bWJvbC5tZXRhZGF0YSx7ZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITAsdmFsdWU6Qn0pfXN0YXRpYyBkZW1vPWc5dDtzdGF0aWMgZGVtb0dyb3Vwcz1bIkFwcCBVSSJdOyNlPVd0KHRoaXMsbixbXSk7Z2V0IG1lbnVJdGVtcygpe3JldHVybiB0aGlzLiNlfXNldCBtZW51SXRlbXMoQil7dGhpcy4jZT1CfSN0PShXdCh0aGlzLG8pLFd0KHRoaXMsYywiIikpO2dldCBicmVhZGNydW1icygpe3JldHVybiB0aGlzLiN0fXNldCBicmVhZGNydW1icyhCKXt0aGlzLiN0PUJ9I2E9KFd0KHRoaXMsaCksV3QodGhpcyxmLCIgPiAiKSk7Z2V0IGJyZWFkY3J1bWJTZXBhcmF0b3IoKXtyZXR1cm4gdGhpcy4jYX1zZXQgYnJlYWRjcnVtYlNlcGFyYXRvcihCKXt0aGlzLiNhPUJ9I2k9KFd0KHRoaXMsZyksV3QodGhpcyx2LCEwKSk7Z2V0IHNob3dXaW5kb3dDb250cm9scygpe3JldHVybiB0aGlzLiNpfXNldCBzaG93V2luZG93Q29udHJvbHMoQil7dGhpcy4jaT1CfSNyPShXdCh0aGlzLG0pLFd0KHRoaXMsTSx2b2lkIDApKTtnZXQgdXNlcigpe3JldHVybiB0aGlzLiNyfXNldCB1c2VyKEIpe3RoaXMuI3I9Qn0jcz0oV3QodGhpcyxTKSxXdCh0aGlzLF8sW10pKTtnZXQgcHJvZmlsZU1lbnVJdGVtcygpe3JldHVybiB0aGlzLiNzfXNldCBwcm9maWxlTWVudUl0ZW1zKEIpe3RoaXMuI3M9Qn0jbj0oV3QodGhpcyxrKSxXdCh0aGlzLEwsITEpKTtnZXQgc2hvd1NlYXJjaCgpe3JldHVybiB0aGlzLiNufXNldCBzaG93U2VhcmNoKEIpe3RoaXMuI249Qn0jbz0oV3QodGhpcyxBKSxXdCh0aGlzLEMsITEpKTtnZXQgc2hvd0FjdGl2aXR5TG9nVG9nZ2xlKCl7cmV0dXJuIHRoaXMuI299c2V0IHNob3dBY3Rpdml0eUxvZ1RvZ2dsZShCKXt0aGlzLiNvPUJ9I2w9KFd0KHRoaXMseiksV3QodGhpcyxULDApKTtnZXQgYWN0aXZpdHlMb2dDb3VudCgpe3JldHVybiB0aGlzLiNsfXNldCBhY3Rpdml0eUxvZ0NvdW50KEIpe3RoaXMuI2w9Qn0jYz0oV3QodGhpcywkKSxXdCh0aGlzLFIsITEpKTtnZXQgYWN0aXZpdHlMb2dBY3RpdmUoKXtyZXR1cm4gdGhpcy4jY31zZXQgYWN0aXZpdHlMb2dBY3RpdmUoQil7dGhpcy4jYz1CfSNkPShXdCh0aGlzLFUpLFd0KHRoaXMsaixudWxsKSk7Z2V0IGFjdGl2ZU1lbnUoKXtyZXR1cm4gdGhpcy4jZH1zZXQgYWN0aXZlTWVudShCKXt0aGlzLiNkPUJ9I2g9KFd0KHRoaXMsbWUpLFd0KHRoaXMsSCxuZXcgU2V0KSk7Z2V0IG9wZW5Ecm9wZG93bnMoKXtyZXR1cm4gdGhpcy4jaH1zZXQgb3BlbkRyb3Bkb3ducyhCKXt0aGlzLiNoPUJ9I3A9KFd0KHRoaXMsY2UpLFd0KHRoaXMsVyxudWxsKSk7Z2V0IGZvY3VzZWRJdGVtKCl7cmV0dXJuIHRoaXMuI3B9c2V0IGZvY3VzZWRJdGVtKEIpe3RoaXMuI3A9Qn0jdT0oV3QodGhpcyxEKSxXdCh0aGlzLFosLTEpKTtnZXQgZm9jdXNlZERyb3Bkb3duSXRlbSgpe3JldHVybiB0aGlzLiN1fXNldCBmb2N1c2VkRHJvcGRvd25JdGVtKEIpe3RoaXMuI3U9Qn0jZj0oV3QodGhpcyxZKSxXdCh0aGlzLGdlLCExKSk7Z2V0IGlzUHJvZmlsZURyb3Bkb3duT3Blbigpe3JldHVybiB0aGlzLiNmfXNldCBpc1Byb2ZpbGVEcm9wZG93bk9wZW4oQil7dGhpcy4jZj1CfXN0YXRpYyBzdHlsZXM9djl0O3JlbmRlcigpe3JldHVybiB4OXQodGhpcyl9cmVuZGVyTWVudUl0ZW1zKCl7cmV0dXJuIHdgCiAgICAgICR7dGhpcy5tZW51SXRlbXMubWFwKChCLFApPT50aGlzLnJlbmRlck1lbnVJdGVtKEIsYG1lbnUtJHtQfWApKX0KICAgIGB9cmVuZGVyTWVudUl0ZW0oQixQKXtpZigiZGl2aWRlciJpbiBCJiZCLmRpdmlkZXIpcmV0dXJuIHdgPGRpdiBjbGFzcz0iZHJvcGRvd24tZGl2aWRlciI+PC9kaXY+YDtsZXQgSz1CLGZlPXRoaXMuYWN0aXZlTWVudT09PVAsZGU9Sy5zdWJtZW51JiZLLnN1Ym1lbnUubGVuZ3RoPjA7cmV0dXJuIHdgCiAgICAgIDxkaXYKICAgICAgICBjbGFzcz0ibWVudUl0ZW0gJHtmZT8iYWN0aXZlIjoiIn0iCiAgICAgICAgP2Rpc2FibGVkPSR7Sy5kaXNhYmxlZH0KICAgICAgICB0YWJpbmRleD0iJHtLLmRpc2FibGVkPy0xOjB9IgogICAgICAgIGRhdGEtaXRlbS1pZD0iJHtQfSIKICAgICAgICBAY2xpY2s9JHsoKT0+dGhpcy5oYW5kbGVNZW51Q2xpY2soSyxQKX0KICAgICAgICBAa2V5ZG93bj0ke19lPT50aGlzLmhhbmRsZU1lbnVLZXlkb3duKF9lLEssUCl9CiAgICAgICAgcm9sZT0ibWVudWl0ZW0iCiAgICAgICAgYXJpYS1oYXNwb3B1cD0iJHtkZX0iCiAgICAgICAgYXJpYS1leHBhbmRlZD0iJHtmZX0iCiAgICAgID4KICAgICAgICAke0suaWNvbk5hbWU/d2A8ZGVlcy1pY29uIC5pY29uPSIke2BsdWNpZGU6JHtLLmljb25OYW1lfWB9Ij48L2RlZXMtaWNvbj5gOiIifQogICAgICAgICR7Sy5uYW1lfQogICAgICAgICR7ZGU/dGhpcy5yZW5kZXJEcm9wZG93bihLLnN1Ym1lbnUsUCxmZSk6IiJ9CiAgICAgIDwvZGl2PgogICAgYH1yZW5kZXJEcm9wZG93bihCLFAsSyl7cmV0dXJuIHdgCiAgICAgIDxkaXYgCiAgICAgICAgY2xhc3M9ImRyb3Bkb3duICR7Sz8ib3BlbiI6IiJ9IiAKICAgICAgICBAY2xpY2s9JHtmZT0+ZmUuc3RvcFByb3BhZ2F0aW9uKCl9CiAgICAgICAgQGtleWRvd249JHtmZT0+dGhpcy5oYW5kbGVEcm9wZG93bktleWRvd24oZmUsQixQKX0KICAgICAgICB0YWJpbmRleD0iJHtLPzA6LTF9IgogICAgICAgIHJvbGU9Im1lbnUiCiAgICAgID4KICAgICAgICAke0IubWFwKChmZSxkZSk9PnRoaXMucmVuZGVyRHJvcGRvd25JdGVtKGZlLGAke1B9LSR7ZGV9YCkpfQogICAgICA8L2Rpdj4KICAgIGB9cmVuZGVyRHJvcGRvd25JdGVtKEIsUCl7aWYoImRpdmlkZXIiaW4gQiYmQi5kaXZpZGVyKXJldHVybiB3YDxkaXYgY2xhc3M9ImRyb3Bkb3duLWRpdmlkZXIiPjwvZGl2PmA7bGV0IEs9QixmZT1wYXJzZUludChQLnNwbGl0KCItIikucG9wKCl8fCIwIiksZGU9dGhpcy5mb2N1c2VkRHJvcGRvd25JdGVtPT09ZmU7cmV0dXJuIHdgCiAgICAgIDxkaXYKICAgICAgICBjbGFzcz0iZHJvcGRvd24taXRlbSAke2RlPyJmb2N1c2VkIjoiIn0iCiAgICAgICAgP2Rpc2FibGVkPSR7Sy5kaXNhYmxlZH0KICAgICAgICBAY2xpY2s9JHsoKT0+dGhpcy5oYW5kbGVEcm9wZG93bkl0ZW1DbGljayhLKX0KICAgICAgICBAbW91c2VlbnRlcj0keygpPT50aGlzLmZvY3VzZWREcm9wZG93bkl0ZW09ZmV9CiAgICAgICAgcm9sZT0ibWVudWl0ZW0iCiAgICAgICAgdGFiaW5kZXg9IiR7Sy5kaXNhYmxlZD8tMTowfSIKICAgICAgPgogICAgICAgICR7Sy5pY29uTmFtZT93YDxkZWVzLWljb24gLmljb249IiR7YGx1Y2lkZToke0suaWNvbk5hbWV9YH0iPjwvZGVlcy1pY29uPmA6IiJ9CiAgICAgICAgPHNwYW4+JHtLLm5hbWV9PC9zcGFuPgogICAgICAgICR7Sy5zaG9ydGN1dD93YDxzcGFuIGNsYXNzPSJzaG9ydGN1dCI+JHtLLnNob3J0Y3V0fTwvc3Bhbj5gOiIifQogICAgICA8L2Rpdj4KICAgIGB9cmVuZGVyQnJlYWRjcnVtYnMoKXtpZighdGhpcy5icmVhZGNydW1icylyZXR1cm4gd2BgO2xldCBCPXRoaXMuYnJlYWRjcnVtYnMuc3BsaXQodGhpcy5icmVhZGNydW1iU2VwYXJhdG9yKTtyZXR1cm4gd2AKICAgICAgJHtCLm1hcCgoUCxLKT0+d2AKICAgICAgICAke0s+MD93YDxzcGFuIGNsYXNzPSJicmVhZGNydW1iLXNlcGFyYXRvciI+JHt0aGlzLmJyZWFkY3J1bWJTZXBhcmF0b3J9PC9zcGFuPmA6IiJ9CiAgICAgICAgPHNwYW4gCiAgICAgICAgICBjbGFzcz0iYnJlYWRjcnVtYi1pdGVtIiAKICAgICAgICAgIEBjbGljaz0keygpPT50aGlzLmhhbmRsZUJyZWFkY3J1bWJDbGljayhQLEspfQogICAgICAgID4KICAgICAgICAgICR7UH0KICAgICAgICA8L3NwYW4+CiAgICAgIGApfQogICAgYH1yZW5kZXJBY2NvdW50U2VjdGlvbigpe3JldHVybiB3YAogICAgICAke3RoaXMuc2hvd1NlYXJjaD93YAogICAgICAgIDxkZWVzLWljb24KICAgICAgICAgIGNsYXNzPSJzZWFyY2gtaWNvbiIKICAgICAgICAgIC5pY29uPSR7Imx1Y2lkZTpzZWFyY2gifQogICAgICAgICAgQGNsaWNrPSR7dGhpcy5oYW5kbGVTZWFyY2hDbGlja30KICAgICAgICA+PC9kZWVzLWljb24+CiAgICAgIGA6IiJ9CiAgICAgICR7dGhpcy51c2VyP3dgCiAgICAgICAgPGRpdiBzdHlsZT0icG9zaXRpb246IHJlbGF0aXZlOyI+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJ1c2VyLWluZm8iIEBjbGljaz0ke3RoaXMuaGFuZGxlVXNlckNsaWNrfT4KICAgICAgICAgICAgPGRpdiBjbGFzcz0idXNlci1hdmF0YXIiPgogICAgICAgICAgICAgICR7dGhpcy51c2VyLmF2YXRhcj93YDxpbWcgc3JjPSIke3RoaXMudXNlci5hdmF0YXJ9IiBhbHQ9IiR7dGhpcy51c2VyLm5hbWV9Ij5gOndgJHt0aGlzLnVzZXIubmFtZS5jaGFyQXQoMCkudG9VcHBlckNhc2UoKX1gfQogICAgICAgICAgICAgICR7dGhpcy51c2VyLnN0YXR1cz93YAogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0idXNlci1zdGF0dXMgJHt0aGlzLnVzZXIuc3RhdHVzfSI+PC9kaXY+CiAgICAgICAgICAgICAgYDoiIn0KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDxzcGFuPiR7dGhpcy51c2VyLm5hbWV9PC9zcGFuPgogICAgICAgICAgPC9kaXY+CiAgICAgICAgICA8ZGVlcy1hcHB1aS1wcm9maWxlZHJvcGRvd24KICAgICAgICAgICAgLnVzZXI9JHt0aGlzLnVzZXJ9CiAgICAgICAgICAgIC5tZW51SXRlbXM9JHt0aGlzLnByb2ZpbGVNZW51SXRlbXN9CiAgICAgICAgICAgIC5pc09wZW49JHt0aGlzLmlzUHJvZmlsZURyb3Bkb3duT3Blbn0KICAgICAgICAgICAgLnBvc2l0aW9uPSR7InRvcC1yaWdodCJ9CiAgICAgICAgICAgIEBtZW51LXNlbGVjdD0ke0I9PnRoaXMuaGFuZGxlUHJvZmlsZU1lbnVTZWxlY3QoQil9CiAgICAgICAgICA+PC9kZWVzLWFwcHVpLXByb2ZpbGVkcm9wZG93bj4KICAgICAgICA8L2Rpdj4KICAgICAgYDoiIn0KICAgICAgJHt0aGlzLnNob3dBY3Rpdml0eUxvZ1RvZ2dsZT93YAogICAgICAgIDxkaXYKICAgICAgICAgIGNsYXNzPSJhY3Rpdml0eS10b2dnbGUgJHt0aGlzLmFjdGl2aXR5TG9nQWN0aXZlPyJhY3RpdmUiOiIifSIKICAgICAgICAgIEBjbGljaz0ke3RoaXMuaGFuZGxlQWN0aXZpdHlUb2dnbGV9CiAgICAgICAgICB0aXRsZT0iQWN0aXZpdHkgTG9nIgogICAgICAgID4KICAgICAgICAgIDxkZWVzLWljb24gLmljb249JHsibHVjaWRlOmFjdGl2aXR5In0+PC9kZWVzLWljb24+CiAgICAgICAgICAke3RoaXMuYWN0aXZpdHlMb2dDb3VudD4wP3dgCiAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJhY3Rpdml0eS1iYWRnZSI+JHt0aGlzLmFjdGl2aXR5TG9nQ291bnQ+OTk/Ijk5KyI6dGhpcy5hY3Rpdml0eUxvZ0NvdW50fTwvc3Bhbj4KICAgICAgICAgIGA6IiJ9CiAgICAgICAgPC9kaXY+CiAgICAgIGA6IiJ9CiAgICBgfWhhbmRsZU1lbnVDbGljayhCLFApe0IuZGlzYWJsZWR8fChCLnN1Ym1lbnUmJkIuc3VibWVudS5sZW5ndGg+MD90aGlzLmFjdGl2ZU1lbnU9PT1QP3RoaXMuYWN0aXZlTWVudT1udWxsOnRoaXMuYWN0aXZlTWVudT1QOih0aGlzLmFjdGl2ZU1lbnU9bnVsbCxCLmFjdGlvbiYmQi5hY3Rpb24oKSx0aGlzLmRpc3BhdGNoRXZlbnQobmV3IEN1c3RvbUV2ZW50KCJtZW51LXNlbGVjdCIse2RldGFpbDp7aXRlbTpCfSxidWJibGVzOiEwLGNvbXBvc2VkOiEwfSkpKSl9aGFuZGxlRHJvcGRvd25JdGVtQ2xpY2soQil7Qi5kaXNhYmxlZHx8KHRoaXMuYWN0aXZlTWVudT1udWxsLEIuYWN0aW9uJiZCLmFjdGlvbigpLHRoaXMuZGlzcGF0Y2hFdmVudChuZXcgQ3VzdG9tRXZlbnQoIm1lbnUtc2VsZWN0Iix7ZGV0YWlsOntpdGVtOkJ9LGJ1YmJsZXM6ITAsY29tcG9zZWQ6ITB9KSkpfWhhbmRsZU1lbnVLZXlkb3duKEIsUCxLKXtzd2l0Y2goQi5rZXkpe2Nhc2UiRW50ZXIiOmNhc2UiICI6Qi5wcmV2ZW50RGVmYXVsdCgpLHRoaXMuaGFuZGxlTWVudUNsaWNrKFAsSyk7YnJlYWs7Y2FzZSJBcnJvd0Rvd24iOmlmKFAuc3VibWVudSYmdGhpcy5hY3RpdmVNZW51PT09Syl7Qi5wcmV2ZW50RGVmYXVsdCgpLHRoaXMuZm9jdXNlZERyb3Bkb3duSXRlbT0wO2xldCBmZT10aGlzLmZpbmROZXh0VmFsaWRJdGVtKFAuc3VibWVudSwtMSwxKTtmZSE9PS0xJiYodGhpcy5mb2N1c2VkRHJvcGRvd25JdGVtPWZlLHNldFRpbWVvdXQoKCk9PntsZXQgZGU9dGhpcy5yZW5kZXJSb290LnF1ZXJ5U2VsZWN0b3IoIi5kcm9wZG93bi5vcGVuIik7ZGUmJmRlLmZvY3VzKCl9LDApKX1icmVhaztjYXNlIkVzY2FwZSI6dGhpcy5hY3RpdmVNZW51PW51bGwsdGhpcy5mb2N1c2VkRHJvcGRvd25JdGVtPS0xO2JyZWFrO2Nhc2UiVGFiIjp0aGlzLmFjdGl2ZU1lbnU9PT1LJiYodGhpcy5hY3RpdmVNZW51PW51bGwsdGhpcy5mb2N1c2VkRHJvcGRvd25JdGVtPS0xKTticmVhaztjYXNlIkFycm93UmlnaHQiOkIucHJldmVudERlZmF1bHQoKSx0aGlzLmZvY3VzTmV4dE1lbnVJdGVtKEssMSk7YnJlYWs7Y2FzZSJBcnJvd0xlZnQiOkIucHJldmVudERlZmF1bHQoKSx0aGlzLmZvY3VzTmV4dE1lbnVJdGVtKEssLTEpO2JyZWFrfX1oYW5kbGVCcmVhZGNydW1iQ2xpY2soQixQKXt0aGlzLmRpc3BhdGNoRXZlbnQobmV3IEN1c3RvbUV2ZW50KCJicmVhZGNydW1iLW5hdmlnYXRlIix7ZGV0YWlsOnticmVhZGNydW1iOkIsaW5kZXg6UH0sYnViYmxlczohMCxjb21wb3NlZDohMH0pKX1oYW5kbGVTZWFyY2hDbGljaygpe3RoaXMuZGlzcGF0Y2hFdmVudChuZXcgQ3VzdG9tRXZlbnQoInNlYXJjaC1jbGljayIse2J1YmJsZXM6ITAsY29tcG9zZWQ6ITB9KSl9aGFuZGxlQWN0aXZpdHlUb2dnbGUoKXt0aGlzLmRpc3BhdGNoRXZlbnQobmV3IEN1c3RvbUV2ZW50KCJhY3Rpdml0eS10b2dnbGUiLHtidWJibGVzOiEwLGNvbXBvc2VkOiEwfSkpfWhhbmRsZVVzZXJDbGljaygpe3RoaXMuaXNQcm9maWxlRHJvcGRvd25PcGVuPSF0aGlzLmlzUHJvZmlsZURyb3Bkb3duT3Blbix0aGlzLmRpc3BhdGNoRXZlbnQobmV3IEN1c3RvbUV2ZW50KCJ1c2VyLW1lbnUtb3BlbiIse2J1YmJsZXM6ITAsY29tcG9zZWQ6ITB9KSl9aGFuZGxlUHJvZmlsZU1lbnVTZWxlY3QoQil7dGhpcy5pc1Byb2ZpbGVEcm9wZG93bk9wZW49ITEsdGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBDdXN0b21FdmVudCgicHJvZmlsZS1tZW51LXNlbGVjdCIse2RldGFpbDpCLmRldGFpbCxidWJibGVzOiEwLGNvbXBvc2VkOiEwfSkpfWFzeW5jIGNvbm5lY3RlZENhbGxiYWNrKCl7YXdhaXQgc3VwZXIuY29ubmVjdGVkQ2FsbGJhY2soKSx0aGlzLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIix0aGlzLmhhbmRsZUdsb2JhbENsaWNrKSxkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsdGhpcy5oYW5kbGVEb2N1bWVudENsaWNrKX1hc3luYyBkaXNjb25uZWN0ZWRDYWxsYmFjaygpe2F3YWl0IHN1cGVyLmRpc2Nvbm5lY3RlZENhbGxiYWNrKCksZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcigiY2xpY2siLHRoaXMuaGFuZGxlRG9jdW1lbnRDbGljayl9aGFuZGxlR2xvYmFsQ2xpY2s9KFd0KHRoaXMsYmUpLEI9PntCLnN0b3BQcm9wYWdhdGlvbigpfSk7aGFuZGxlRG9jdW1lbnRDbGljaz0oKT0+e3RoaXMuYWN0aXZlTWVudT1udWxsLHRoaXMuZm9jdXNlZERyb3Bkb3duSXRlbT0tMX07aGFuZGxlRHJvcGRvd25LZXlkb3duKEIsUCxLKXtsZXQgZmU9UC5maWx0ZXIoZGU9PiEoImRpdmlkZXIiaW4gZGUmJmRlLmRpdmlkZXIpKTtzd2l0Y2goQi5rZXkpe2Nhc2UiQXJyb3dEb3duIjpCLnByZXZlbnREZWZhdWx0KCk7bGV0IGRlPXRoaXMuZmluZE5leHRWYWxpZEl0ZW0oUCx0aGlzLmZvY3VzZWREcm9wZG93bkl0ZW0sMSk7ZGUhPT0tMSYmKHRoaXMuZm9jdXNlZERyb3Bkb3duSXRlbT1kZSk7YnJlYWs7Y2FzZSJBcnJvd1VwIjpCLnByZXZlbnREZWZhdWx0KCk7bGV0IF9lPXRoaXMuZmluZE5leHRWYWxpZEl0ZW0oUCx0aGlzLmZvY3VzZWREcm9wZG93bkl0ZW0sLTEpO19lIT09LTEmJih0aGlzLmZvY3VzZWREcm9wZG93bkl0ZW09X2UpO2JyZWFrO2Nhc2UiRW50ZXIiOmlmKEIucHJldmVudERlZmF1bHQoKSx0aGlzLmZvY3VzZWREcm9wZG93bkl0ZW0hPT0tMSl7bGV0IEZlPWZlW3RoaXMuZm9jdXNlZERyb3Bkb3duSXRlbV07RmUmJiJhY3Rpb24iaW4gRmUmJiFGZS5kaXNhYmxlZCYmdGhpcy5oYW5kbGVEcm9wZG93bkl0ZW1DbGljayhGZSl9YnJlYWs7Y2FzZSJIb21lIjpCLnByZXZlbnREZWZhdWx0KCk7bGV0IGhlPXRoaXMuZmluZE5leHRWYWxpZEl0ZW0oUCwtMSwxKTtoZSE9PS0xJiYodGhpcy5mb2N1c2VkRHJvcGRvd25JdGVtPWhlKTticmVhaztjYXNlIkVuZCI6Qi5wcmV2ZW50RGVmYXVsdCgpO2xldCB0ZT10aGlzLmZpbmROZXh0VmFsaWRJdGVtKFAsUC5sZW5ndGgsLTEpO3RlIT09LTEmJih0aGlzLmZvY3VzZWREcm9wZG93bkl0ZW09dGUpO2JyZWFrO2Nhc2UiRXNjYXBlIjpCLnByZXZlbnREZWZhdWx0KCksdGhpcy5hY3RpdmVNZW51PW51bGwsdGhpcy5mb2N1c2VkRHJvcGRvd25JdGVtPS0xO2xldCB6ZT10aGlzLnJlbmRlclJvb3QucXVlcnlTZWxlY3RvcigiLm1lbnVJdGVtLmFjdGl2ZSIpO3plJiZ6ZS5mb2N1cygpO2JyZWFrfX1maW5kTmV4dFZhbGlkSXRlbShCLFAsSyl7bGV0IGZlPVArSztmb3IoO2ZlPj0wJiZmZTxCLmxlbmd0aDspe2xldCBkZT1CW2ZlXTtpZighKCJkaXZpZGVyImluIGRlJiZkZS5kaXZpZGVyKSYmISgiZGlzYWJsZWQiaW4gZGUmJmRlLmRpc2FibGVkKSlyZXR1cm4gZmU7ZmUrPUt9cmV0dXJuLTF9Zm9jdXNOZXh0TWVudUl0ZW0oQixQKXtsZXQgSz1BcnJheS5mcm9tKHRoaXMucmVuZGVyUm9vdC5xdWVyeVNlbGVjdG9yQWxsKCIubWVudUl0ZW0iKSksZmU9Sy5maW5kSW5kZXgoaGU9PmhlLmdldEF0dHJpYnV0ZSgiZGF0YS1pdGVtLWlkIik9PT1CKTtpZihmZT09PS0xKXJldHVybjtsZXQgZGU9ZmUrUDtkZTwwP2RlPUsubGVuZ3RoLTE6ZGU+PUsubGVuZ3RoJiYoZGU9MCk7bGV0IF9lPTA7Zm9yKDtfZTxLLmxlbmd0aDspe2xldCBoZT1LW2RlXTtpZighaGUuaGFzQXR0cmlidXRlKCJkaXNhYmxlZCIpKXtoZS5mb2N1cygpLHRoaXMuYWN0aXZlTWVudSYmKHRoaXMuYWN0aXZlTWVudT1udWxsLHRoaXMuZm9jdXNlZERyb3Bkb3duSXRlbT0tMSk7YnJlYWt9ZGU9KGRlK1ArSy5sZW5ndGgpJUsubGVuZ3RoLF9lKyt9fXN0YXRpY3tXdChpLGEpfX07cmV0dXJuICRlPWl9KSgpfSk7dmFyIF9xPWIoKCk9Pnt6cSgpfSk7dmFyIFM5dCxDOXQsXzl0PWIoKCk9Pnt1ZSgpO3gxKCk7Qzl0PSgpPT53KFM5dHx8KFM5dD14NChbYAogICAgPGRlZXMtZGVtb3dyYXBwZXI+CiAgICAgIDxzdHlsZT4KICAgICAgICAuZGVtby1jb250YWluZXIgewogICAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgICAgICBnYXA6IDI0cHg7CiAgICAgICAgICBwYWRkaW5nOiAyNHB4OwogICAgICAgICAgYmFja2dyb3VuZDogIzFhMWExYTsKICAgICAgICB9CgogICAgICAgIC5kZW1vLXNlY3Rpb24gewogICAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgICAgICBnYXA6IDhweDsKICAgICAgICB9CgogICAgICAgIC5kZW1vLWxhYmVsIHsKICAgICAgICAgIGZvbnQtc2l6ZTogMTJweDsKICAgICAgICAgIGNvbG9yOiAjNzM3MzczOwogICAgICAgICAgZm9udC1mYW1pbHk6ICdHZWlzdCBTYW5zJywgc2Fucy1zZXJpZjsKICAgICAgICB9CgogICAgICAgIC5kZW1vLWJvdHRvbWJhci13cmFwcGVyIHsKICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIGhzbCgwIDAlIDIwJSk7CiAgICAgICAgICBib3JkZXItcmFkaXVzOiA0cHg7CiAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgICAgIH0KICAgICAgPC9zdHlsZT4KICAgICAgPGRpdiBjbGFzcz0iZGVtby1jb250YWluZXIiPgogICAgICAgIDxkaXYgY2xhc3M9ImRlbW8tc2VjdGlvbiI+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJkZW1vLWxhYmVsIj5Cb3R0b20gYmFyIHdpdGggc3RhdHVzIHdpZGdldHMgYW5kIGFjdGlvbnM8L2Rpdj4KICAgICAgICAgIDxkaXYgY2xhc3M9ImRlbW8tYm90dG9tYmFyLXdyYXBwZXIiPgogICAgICAgICAgICA8ZGVlcy1hcHB1aS1ib3R0b21iYXIKICAgICAgICAgICAgICBpZD0iZGVtby1ib3R0b21iYXIiCiAgICAgICAgICAgID48L2RlZXMtYXBwdWktYm90dG9tYmFyPgogICAgICAgICAgPC9kaXY+CiAgICAgICAgPC9kaXY+CgogICAgICAgIDxkaXYgY2xhc3M9ImRlbW8tc2VjdGlvbiI+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJkZW1vLWxhYmVsIj5Db250cm9sczwvZGl2PgogICAgICAgICAgPGRpdiBzdHlsZT0iZGlzcGxheTogZmxleDsgZ2FwOiA4cHg7IGZsZXgtd3JhcDogd3JhcDsiPgogICAgICAgICAgICA8YnV0dG9uIG9uY2xpY2s9ImFkZFN1Y2Nlc3NXaWRnZXQoKSI+QWRkIFN1Y2Nlc3MgV2lkZ2V0PC9idXR0b24+CiAgICAgICAgICAgIDxidXR0b24gb25jbGljaz0iYWRkV2FybmluZ1dpZGdldCgpIj5BZGQgV2FybmluZyBXaWRnZXQ8L2J1dHRvbj4KICAgICAgICAgICAgPGJ1dHRvbiBvbmNsaWNrPSJhZGRFcnJvcldpZGdldCgpIj5BZGQgRXJyb3IgV2lkZ2V0PC9idXR0b24+CiAgICAgICAgICAgIDxidXR0b24gb25jbGljaz0iYWRkTG9hZGluZ1dpZGdldCgpIj5BZGQgTG9hZGluZyBXaWRnZXQ8L2J1dHRvbj4KICAgICAgICAgICAgPGJ1dHRvbiBvbmNsaWNrPSJhZGRSaWdodFdpZGdldCgpIj5BZGQgUmlnaHQgV2lkZ2V0PC9idXR0b24+CiAgICAgICAgICAgIDxidXR0b24gb25jbGljaz0iYWRkQWN0aW9uKCkiPkFkZCBBY3Rpb248L2J1dHRvbj4KICAgICAgICAgICAgPGJ1dHRvbiBvbmNsaWNrPSJjbGVhckFsbCgpIj5DbGVhciBBbGw8L2J1dHRvbj4KICAgICAgICAgIDwvZGl2PgogICAgICAgIDwvZGl2PgogICAgICA8L2Rpdj4KICAgICAgPHNjcmlwdCB0eXBlPSJtb2R1bGUiPgogICAgICAgIGNvbnN0IGJvdHRvbWJhciA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdkZW1vLWJvdHRvbWJhcicpOwoKICAgICAgICAvLyBXYWl0IGZvciBjb21wb25lbnQgdG8gaW5pdGlhbGl6ZQogICAgICAgIGF3YWl0IGJvdHRvbWJhci51cGRhdGVDb21wbGV0ZTsKCiAgICAgICAgLy8gQWRkIGluaXRpYWwgd2lkZ2V0cwogICAgICAgIGJvdHRvbWJhci5hZGRXaWRnZXQoewogICAgICAgICAgaWQ6ICdzdGF0dXMnLAogICAgICAgICAgaWNvbk5hbWU6ICdsdWNpZGU6YWN0aXZpdHknLAogICAgICAgICAgbGFiZWw6ICdTeXN0ZW0gT25saW5lJywKICAgICAgICAgIHN0YXR1czogJ3N1Y2Nlc3MnLAogICAgICAgICAgdG9vbHRpcDogJ0FsbCBzeXN0ZW1zIG9wZXJhdGlvbmFsJywKICAgICAgICAgIG9uQ2xpY2s6ICgpID0+IGNvbnNvbGUubG9nKCdTdGF0dXMgY2xpY2tlZCcpLAogICAgICAgICAgY29udGV4dE1lbnVJdGVtczogWwogICAgICAgICAgICB7IG5hbWU6ICdWaWV3IERldGFpbHMnLCBpY29uTmFtZTogJ2x1Y2lkZTppbmZvJywgYWN0aW9uOiAoKSA9PiBhbGVydCgnU3lzdGVtIGRldGFpbHMnKSB9LAogICAgICAgICAgICB7IGRpdmlkZXI6IHRydWUgfSwKICAgICAgICAgICAgeyBuYW1lOiAnUmVmcmVzaCBTdGF0dXMnLCBpY29uTmFtZTogJ2x1Y2lkZTpyZWZyZXNoQ3cnLCBhY3Rpb246ICgpID0+IGFsZXJ0KCdSZWZyZXNoaW5nLi4uJykgfSwKICAgICAgICAgIF0sCiAgICAgICAgfSk7CgogICAgICAgIGJvdHRvbWJhci5hZGRXaWRnZXQoewogICAgICAgICAgaWQ6ICdub3RpZmljYXRpb25zJywKICAgICAgICAgIGljb25OYW1lOiAnbHVjaWRlOmJlbGwnLAogICAgICAgICAgbGFiZWw6ICczIG5vdGlmaWNhdGlvbnMnLAogICAgICAgICAgc3RhdHVzOiAnd2FybmluZycsCiAgICAgICAgICB0b29sdGlwOiAnWW91IGhhdmUgdW5yZWFkIG5vdGlmaWNhdGlvbnMnLAogICAgICAgICAgb25DbGljazogKCkgPT4gY29uc29sZS5sb2coJ05vdGlmaWNhdGlvbnMgY2xpY2tlZCcpLAogICAgICAgIH0pOwoKICAgICAgICBib3R0b21iYXIuYWRkV2lkZ2V0KHsKICAgICAgICAgIGlkOiAndmVyc2lvbicsCiAgICAgICAgICBpY29uTmFtZTogJ2x1Y2lkZTpnaXRCcmFuY2gnLAogICAgICAgICAgbGFiZWw6ICd2MS4yLjMnLAogICAgICAgICAgdG9vbHRpcDogJ0N1cnJlbnQgdmVyc2lvbicsCiAgICAgICAgICBwb3NpdGlvbjogJ3JpZ2h0JywKICAgICAgICAgIG9uQ2xpY2s6ICgpID0+IGNvbnNvbGUubG9nKCdWZXJzaW9uIGNsaWNrZWQnKSwKICAgICAgICB9KTsKCiAgICAgICAgLy8gQWRkIGluaXRpYWwgYWN0aW9ucwogICAgICAgIGJvdHRvbWJhci5hZGRBY3Rpb24oewogICAgICAgICAgaWQ6ICdzZXR0aW5ncycsCiAgICAgICAgICBpY29uTmFtZTogJ2x1Y2lkZTpzZXR0aW5ncycsCiAgICAgICAgICB0b29sdGlwOiAnU2V0dGluZ3MnLAogICAgICAgICAgcG9zaXRpb246ICdyaWdodCcsCiAgICAgICAgICBvbkNsaWNrOiAoKSA9PiBhbGVydCgnU2V0dGluZ3MgY2xpY2tlZCcpLAogICAgICAgIH0pOwoKICAgICAgICBib3R0b21iYXIuYWRkQWN0aW9uKHsKICAgICAgICAgIGlkOiAnaGVscCcsCiAgICAgICAgICBpY29uTmFtZTogJ2x1Y2lkZTpoZWxwQ2lyY2xlJywKICAgICAgICAgIHRvb2x0aXA6ICdIZWxwJywKICAgICAgICAgIHBvc2l0aW9uOiAncmlnaHQnLAogICAgICAgICAgb25DbGljazogKCkgPT4gYWxlcnQoJ0hlbHAgY2xpY2tlZCcpLAogICAgICAgIH0pOwoKICAgICAgICAvLyBEZW1vIGNvbnRyb2wgZnVuY3Rpb25zCiAgICAgICAgbGV0IHdpZGdldENvdW50ZXIgPSAwOwogICAgICAgIGxldCBhY3Rpb25Db3VudGVyID0gMDsKCiAgICAgICAgd2luZG93LmFkZFN1Y2Nlc3NXaWRnZXQgPSAoKSA9PiB7CiAgICAgICAgICB3aWRnZXRDb3VudGVyKys7CiAgICAgICAgICBib3R0b21iYXIuYWRkV2lkZ2V0KHsKICAgICAgICAgICAgaWQ6ICdzdWNjZXNzLScgKyB3aWRnZXRDb3VudGVyLAogICAgICAgICAgICBpY29uTmFtZTogJ2x1Y2lkZTpjaGVja0NpcmNsZScsCiAgICAgICAgICAgIGxhYmVsOiAnU3VjY2VzcyAnICsgd2lkZ2V0Q291bnRlciwKICAgICAgICAgICAgc3RhdHVzOiAnc3VjY2VzcycsCiAgICAgICAgICAgIHRvb2x0aXA6ICdTdWNjZXNzIHdpZGdldCcsCiAgICAgICAgICAgIG9uQ2xpY2s6ICgpID0+IGJvdHRvbWJhci5yZW1vdmVXaWRnZXQoJ3N1Y2Nlc3MtJyArIHdpZGdldENvdW50ZXIpLAogICAgICAgICAgfSk7CiAgICAgICAgfTsKCiAgICAgICAgd2luZG93LmFkZFdhcm5pbmdXaWRnZXQgPSAoKSA9PiB7CiAgICAgICAgICB3aWRnZXRDb3VudGVyKys7CiAgICAgICAgICBib3R0b21iYXIuYWRkV2lkZ2V0KHsKICAgICAgICAgICAgaWQ6ICd3YXJuaW5nLScgKyB3aWRnZXRDb3VudGVyLAogICAgICAgICAgICBpY29uTmFtZTogJ2x1Y2lkZTphbGVydFRyaWFuZ2xlJywKICAgICAgICAgICAgbGFiZWw6ICdXYXJuaW5nICcgKyB3aWRnZXRDb3VudGVyLAogICAgICAgICAgICBzdGF0dXM6ICd3YXJuaW5nJywKICAgICAgICAgICAgdG9vbHRpcDogJ1dhcm5pbmcgd2lkZ2V0JywKICAgICAgICAgICAgb25DbGljazogKCkgPT4gYm90dG9tYmFyLnJlbW92ZVdpZGdldCgnd2FybmluZy0nICsgd2lkZ2V0Q291bnRlciksCiAgICAgICAgICB9KTsKICAgICAgICB9OwoKICAgICAgICB3aW5kb3cuYWRkRXJyb3JXaWRnZXQgPSAoKSA9PiB7CiAgICAgICAgICB3aWRnZXRDb3VudGVyKys7CiAgICAgICAgICBib3R0b21iYXIuYWRkV2lkZ2V0KHsKICAgICAgICAgICAgaWQ6ICdlcnJvci0nICsgd2lkZ2V0Q291bnRlciwKICAgICAgICAgICAgaWNvbk5hbWU6ICdsdWNpZGU6eENpcmNsZScsCiAgICAgICAgICAgIGxhYmVsOiAnRXJyb3IgJyArIHdpZGdldENvdW50ZXIsCiAgICAgICAgICAgIHN0YXR1czogJ2Vycm9yJywKICAgICAgICAgICAgdG9vbHRpcDogJ0Vycm9yIHdpZGdldCcsCiAgICAgICAgICAgIG9uQ2xpY2s6ICgpID0+IGJvdHRvbWJhci5yZW1vdmVXaWRnZXQoJ2Vycm9yLScgKyB3aWRnZXRDb3VudGVyKSwKICAgICAgICAgIH0pOwogICAgICAgIH07CgogICAgICAgIHdpbmRvdy5hZGRMb2FkaW5nV2lkZ2V0ID0gKCkgPT4gewogICAgICAgICAgd2lkZ2V0Q291bnRlcisrOwogICAgICAgICAgY29uc3QgaWQgPSAnbG9hZGluZy0nICsgd2lkZ2V0Q291bnRlcjsKICAgICAgICAgIGJvdHRvbWJhci5hZGRXaWRnZXQoewogICAgICAgICAgICBpZDogaWQsCiAgICAgICAgICAgIGljb25OYW1lOiAnbHVjaWRlOmxvYWRlcjInLAogICAgICAgICAgICBsYWJlbDogJ0xvYWRpbmcuLi4nLAogICAgICAgICAgICBzdGF0dXM6ICdhY3RpdmUnLAogICAgICAgICAgICBsb2FkaW5nOiB0cnVlLAogICAgICAgICAgICB0b29sdGlwOiAnTG9hZGluZyBpbiBwcm9ncmVzcycsCiAgICAgICAgICB9KTsKCiAgICAgICAgICAvLyBTaW11bGF0ZSBjb21wbGV0aW9uIGFmdGVyIDMgc2Vjb25kcwogICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7CiAgICAgICAgICAgIGJvdHRvbWJhci51cGRhdGVXaWRnZXQoaWQsIHsKICAgICAgICAgICAgICBpY29uTmFtZTogJ2x1Y2lkZTpjaGVjaycsCiAgICAgICAgICAgICAgbGFiZWw6ICdEb25lIScsCiAgICAgICAgICAgICAgc3RhdHVzOiAnc3VjY2VzcycsCiAgICAgICAgICAgICAgbG9hZGluZzogZmFsc2UsCiAgICAgICAgICAgIH0pOwogICAgICAgICAgfSwgMzAwMCk7CiAgICAgICAgfTsKCiAgICAgICAgd2luZG93LmFkZFJpZ2h0V2lkZ2V0ID0gKCkgPT4gewogICAgICAgICAgd2lkZ2V0Q291bnRlcisrOwogICAgICAgICAgYm90dG9tYmFyLmFkZFdpZGdldCh7CiAgICAgICAgICAgIGlkOiAncmlnaHQtJyArIHdpZGdldENvdW50ZXIsCiAgICAgICAgICAgIGljb25OYW1lOiAnbHVjaWRlOmluZm8nLAogICAgICAgICAgICBsYWJlbDogJ1JpZ2h0ICcgKyB3aWRnZXRDb3VudGVyLAogICAgICAgICAgICBwb3NpdGlvbjogJ3JpZ2h0JywKICAgICAgICAgICAgb25DbGljazogKCkgPT4gYm90dG9tYmFyLnJlbW92ZVdpZGdldCgncmlnaHQtJyArIHdpZGdldENvdW50ZXIpLAogICAgICAgICAgfSk7CiAgICAgICAgfTsKCiAgICAgICAgd2luZG93LmFkZEFjdGlvbiA9ICgpID0+IHsKICAgICAgICAgIGFjdGlvbkNvdW50ZXIrKzsKICAgICAgICAgIGJvdHRvbWJhci5hZGRBY3Rpb24oewogICAgICAgICAgICBpZDogJ2FjdGlvbi0nICsgYWN0aW9uQ291bnRlciwKICAgICAgICAgICAgaWNvbk5hbWU6ICdsdWNpZGU6emFwJywKICAgICAgICAgICAgdG9vbHRpcDogJ0FjdGlvbiAnICsgYWN0aW9uQ291bnRlciwKICAgICAgICAgICAgb25DbGljazogKCkgPT4gewogICAgICAgICAgICAgIGFsZXJ0KCdBY3Rpb24gJyArIGFjdGlvbkNvdW50ZXIgKyAnIGNsaWNrZWQnKTsKICAgICAgICAgICAgICBib3R0b21iYXIucmVtb3ZlQWN0aW9uKCdhY3Rpb24tJyArIGFjdGlvbkNvdW50ZXIpOwogICAgICAgICAgICB9LAogICAgICAgICAgfSk7CiAgICAgICAgfTsKCiAgICAgICAgd2luZG93LmNsZWFyQWxsID0gKCkgPT4gewogICAgICAgICAgYm90dG9tYmFyLmNsZWFyV2lkZ2V0cygpOwogICAgICAgICAgYm90dG9tYmFyLmNsZWFyQWN0aW9ucygpOwogICAgICAgICAgd2lkZ2V0Q291bnRlciA9IDA7CiAgICAgICAgICBhY3Rpb25Db3VudGVyID0gMDsKICAgICAgICB9OwogICAgICA8XC9zY3JpcHQ+CiAgICA8L2RlZXMtZGVtb3dyYXBwZXI+CiAgYF0pKSl9KTt2YXIgVHEsYjgsVDl0LExxPWIoKCk9Pnt1ZSgpO3FlKCk7RHQoKTtuMigpO185dCgpO1RxPWZ1bmN0aW9uKHQsZSxhLGkscixzKXtmdW5jdGlvbiBuKHgpe2lmKHghPT12b2lkIDAmJnR5cGVvZiB4IT0iZnVuY3Rpb24iKXRocm93IG5ldyBUeXBlRXJyb3IoIkZ1bmN0aW9uIGV4cGVjdGVkIik7cmV0dXJuIHh9Zm9yKHZhciBvPWkua2luZCxkPW89PT0iZ2V0dGVyIj8iZ2V0IjpvPT09InNldHRlciI/InNldCI6InZhbHVlIixjPSFlJiZ0P2kuc3RhdGljP3Q6dC5wcm90b3R5cGU6bnVsbCxoPWV8fChjP09iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoYyxpLm5hbWUpOnt9KSxsLGY9ITEsZz1hLmxlbmd0aC0xO2c+PTA7Zy0tKXt2YXIgeT17fTtmb3IodmFyIHYgaW4gaSl5W3ZdPXY9PT0iYWNjZXNzIj97fTppW3ZdO2Zvcih2YXIgdiBpbiBpLmFjY2Vzcyl5LmFjY2Vzc1t2XT1pLmFjY2Vzc1t2XTt5LmFkZEluaXRpYWxpemVyPWZ1bmN0aW9uKHgpe2lmKGYpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGFkZCBpbml0aWFsaXplcnMgYWZ0ZXIgZGVjb3JhdGlvbiBoYXMgY29tcGxldGVkIik7cy5wdXNoKG4oeHx8bnVsbCkpfTt2YXIgbT0oMCxhW2ddKShvPT09ImFjY2Vzc29yIj97Z2V0OmguZ2V0LHNldDpoLnNldH06aFtkXSx5KTtpZihvPT09ImFjY2Vzc29yIil7aWYobT09PXZvaWQgMCljb250aW51ZTtpZihtPT09bnVsbHx8dHlwZW9mIG0hPSJvYmplY3QiKXRocm93IG5ldyBUeXBlRXJyb3IoIk9iamVjdCBleHBlY3RlZCIpOyhsPW4obS5nZXQpKSYmKGguZ2V0PWwpLChsPW4obS5zZXQpKSYmKGguc2V0PWwpLChsPW4obS5pbml0KSkmJnIudW5zaGlmdChsKX1lbHNlKGw9bihtKSkmJihvPT09ImZpZWxkIj9yLnVuc2hpZnQobCk6aFtkXT1sKX1jJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoYyxpLm5hbWUsaCksZj0hMH0sYjg9ZnVuY3Rpb24odCxlLGEpe2Zvcih2YXIgaT1hcmd1bWVudHMubGVuZ3RoPjIscj0wO3I8ZS5sZW5ndGg7cisrKWE9aT9lW3JdLmNhbGwodCxhKTplW3JdLmNhbGwodCk7cmV0dXJuIGk/YTp2b2lkIDB9LFQ5dD0oKCk9PntsZXQgdD1bcGUoImRlZXMtYXBwdWktYm90dG9tYmFyIildLGUsYT1bXSxpLHI9eGUscyxuPVtdLG89W10sZCxjPVtdLGg9W107dmFyIGw9Y2xhc3MgZXh0ZW5kcyBye3N0YXRpY3tpPXRoaXN9c3RhdGlje2xldCBmPXR5cGVvZiBTeW1ib2w9PSJmdW5jdGlvbiImJlN5bWJvbC5tZXRhZGF0YT9PYmplY3QuY3JlYXRlKHJbU3ltYm9sLm1ldGFkYXRhXT8/bnVsbCk6dm9pZCAwO3M9W0ooKV0sZD1bSigpXSxUcSh0aGlzLG51bGwscyx7a2luZDoiYWNjZXNzb3IiLG5hbWU6IndpZGdldHMiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmc9PiJ3aWRnZXRzImluIGcsZ2V0Omc9Pmcud2lkZ2V0cyxzZXQ6KGcseSk9PntnLndpZGdldHM9eX19LG1ldGFkYXRhOmZ9LG4sbyksVHEodGhpcyxudWxsLGQse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJhY3Rpb25zIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpnPT4iYWN0aW9ucyJpbiBnLGdldDpnPT5nLmFjdGlvbnMsc2V0OihnLHkpPT57Zy5hY3Rpb25zPXl9fSxtZXRhZGF0YTpmfSxjLGgpLFRxKG51bGwsZT17dmFsdWU6aX0sdCx7a2luZDoiY2xhc3MiLG5hbWU6aS5uYW1lLG1ldGFkYXRhOmZ9LG51bGwsYSksbD1pPWUudmFsdWUsZiYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGksU3ltYm9sLm1ldGFkYXRhLHtlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMCx2YWx1ZTpmfSl9c3RhdGljIGRlbW89Qzl0O3N0YXRpYyBkZW1vR3JvdXBzPVsiQXBwIFVJIl07I2U9YjgodGhpcyxuLFtdKTtnZXQgd2lkZ2V0cygpe3JldHVybiB0aGlzLiNlfXNldCB3aWRnZXRzKGYpe3RoaXMuI2U9Zn0jdD0oYjgodGhpcyxvKSxiOCh0aGlzLGMsW10pKTtnZXQgYWN0aW9ucygpe3JldHVybiB0aGlzLiN0fXNldCBhY3Rpb25zKGYpe3RoaXMuI3Q9Zn1zdGF0aWMgc3R5bGVzPVtDZSxwLmRlZmF1bHRTdHlsZXMsUWAKICAgICAgOmhvc3QgewogICAgICAgIGRpc3BsYXk6IGJsb2NrOwogICAgICAgIGhlaWdodDogMjRweDsKICAgICAgICBmbGV4LXNocmluazogMDsKICAgICAgICB1c2VyLXNlbGVjdDogbm9uZTsKICAgICAgfQoKICAgICAgLmJvdHRvbS1iYXIgewogICAgICAgIGhlaWdodDogMjRweDsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgcGFkZGluZzogMCA4cHg7CiAgICAgICAgZ2FwOiA0cHg7CiAgICAgICAgYmFja2dyb3VuZDogJHtwLmJkVGhlbWUoImhzbCgwIDAlIDk0JSkiLCJoc2woMCAwJSA2JSkiKX07CiAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICR7cC5iZFRoZW1lKCJoc2woMCAwJSA4NSUpIiwiaHNsKDAgMCUgMTUlKSIpfTsKICAgICAgICBmb250LXNpemU6IDExcHg7CiAgICAgICAgY29sb3I6ICR7cC5iZFRoZW1lKCJoc2woMCAwJSA0MCUpIiwiaHNsKDAgMCUgNjAlKSIpfTsKICAgICAgfQoKICAgICAgLndpZGdldCB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGdhcDogNHB4OwogICAgICAgIHBhZGRpbmc6IDJweCA2cHg7CiAgICAgICAgYm9yZGVyLXJhZGl1czogM3B4OwogICAgICAgIGN1cnNvcjogcG9pbnRlcjsKICAgICAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kIDAuMTVzIGVhc2UsIGNvbG9yIDAuMTVzIGVhc2U7CiAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDsKICAgICAgfQoKICAgICAgLndpZGdldDpob3ZlciB7CiAgICAgICAgYmFja2dyb3VuZDogJHtwLmJkVGhlbWUoImhzbCgwIDAlIDg4JSkiLCJoc2woMCAwJSAxMiUpIil9OwogICAgICAgIGNvbG9yOiAke3AuYmRUaGVtZSgiaHNsKDAgMCUgMjAlKSIsImhzbCgwIDAlIDgwJSkiKX07CiAgICAgIH0KCiAgICAgIC53aWRnZXQgZGVlcy1pY29uIHsKICAgICAgICBmbGV4LXNocmluazogMDsKICAgICAgfQoKICAgICAgLndpZGdldC1zZXBhcmF0b3IgewogICAgICAgIHdpZHRoOiAxcHg7CiAgICAgICAgaGVpZ2h0OiAxNHB4OwogICAgICAgIGJhY2tncm91bmQ6ICR7cC5iZFRoZW1lKCJoc2woMCAwJSA4MCUpIiwiaHNsKDAgMCUgMjAlKSIpfTsKICAgICAgICBtYXJnaW46IDAgNHB4OwogICAgICB9CgogICAgICAvKiBTdGF0dXMgY29sb3JzIG1hdGNoaW5nIGRlZXMtd29ya3NwYWNlLWJvdHRvbWJhciAqLwogICAgICAud2lkZ2V0LmFjdGl2ZSB7CiAgICAgICAgY29sb3I6ICR7cC5iZFRoZW1lKCJoc2woMjEwIDEwMCUgNDUlKSIsImhzbCgyMTAgMTAwJSA2MCUpIil9OwogICAgICB9CgogICAgICAud2lkZ2V0LnN1Y2Nlc3MgewogICAgICAgIGNvbG9yOiAke3AuYmRUaGVtZSgiaHNsKDE0MiA3MCUgMzUlKSIsImhzbCgxNDIgNzAlIDUwJSkiKX07CiAgICAgIH0KCiAgICAgIC53aWRnZXQud2FybmluZyB7CiAgICAgICAgY29sb3I6ICR7cC5iZFRoZW1lKCJoc2woMzggOTIlIDQ1JSkiLCJoc2woMzggOTIlIDU1JSkiKX07CiAgICAgIH0KCiAgICAgIC53aWRnZXQuZXJyb3IgewogICAgICAgIGNvbG9yOiAke3AuYmRUaGVtZSgiaHNsKDAgNzAlIDUwJSkiLCJoc2woMCA3MCUgNjAlKSIpfTsKICAgICAgfQoKICAgICAgQGtleWZyYW1lcyBzcGluIHsKICAgICAgICBmcm9tIHsgdHJhbnNmb3JtOiByb3RhdGUoMGRlZyk7IH0KICAgICAgICB0byB7IHRyYW5zZm9ybTogcm90YXRlKDM2MGRlZyk7IH0KICAgICAgfQoKICAgICAgLnNwaW5uaW5nIHsKICAgICAgICBhbmltYXRpb246IHNwaW4gMXMgbGluZWFyIGluZmluaXRlOwogICAgICB9CgogICAgICAuc3BhY2VyIHsKICAgICAgICBmbGV4OiAxOwogICAgICB9CgogICAgICAuYWN0aW9uLWJ1dHRvbiB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOwogICAgICAgIHdpZHRoOiAyMHB4OwogICAgICAgIGhlaWdodDogMjBweDsKICAgICAgICBib3JkZXItcmFkaXVzOiAzcHg7CiAgICAgICAgY3Vyc29yOiBwb2ludGVyOwogICAgICAgIHRyYW5zaXRpb246IGJhY2tncm91bmQgMC4xNXMgZWFzZTsKICAgICAgICBjb2xvcjogJHtwLmJkVGhlbWUoImhzbCgwIDAlIDQwJSkiLCJoc2woMCAwJSA2MCUpIil9OwogICAgICB9CgogICAgICAuYWN0aW9uLWJ1dHRvbjpob3ZlciB7CiAgICAgICAgYmFja2dyb3VuZDogJHtwLmJkVGhlbWUoImhzbCgwIDAlIDg4JSkiLCJoc2woMCAwJSAxMiUpIil9OwogICAgICAgIGNvbG9yOiAke3AuYmRUaGVtZSgiaHNsKDAgMCUgMjAlKSIsImhzbCgwIDAlIDgwJSkiKX07CiAgICAgIH0KCiAgICAgIC5hY3Rpb24tYnV0dG9uLmRpc2FibGVkIHsKICAgICAgICBvcGFjaXR5OiAwLjU7CiAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDsKICAgICAgfQoKICAgICAgLmFjdGlvbi1idXR0b24uZGlzYWJsZWQ6aG92ZXIgewogICAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50OwogICAgICAgIGNvbG9yOiAke3AuYmRUaGVtZSgiaHNsKDAgMCUgNDAlKSIsImhzbCgwIDAlIDYwJSkiKX07CiAgICAgIH0KICAgIGBdO3JlbmRlcigpe2xldCBmPXRoaXMud2lkZ2V0cy5maWx0ZXIobT0+bS5wb3NpdGlvbiE9PSJyaWdodCIpLnNvcnQoKG0seCk9PihtLm9yZGVyfHwwKS0oeC5vcmRlcnx8MCkpLGc9dGhpcy53aWRnZXRzLmZpbHRlcihtPT5tLnBvc2l0aW9uPT09InJpZ2h0Iikuc29ydCgobSx4KT0+KG0ub3JkZXJ8fDApLSh4Lm9yZGVyfHwwKSkseT10aGlzLmFjdGlvbnMuZmlsdGVyKG09Pm0ucG9zaXRpb249PT0ibGVmdCIpLHY9dGhpcy5hY3Rpb25zLmZpbHRlcihtPT5tLnBvc2l0aW9uIT09ImxlZnQiKTtyZXR1cm4gd2AKICAgICAgPGRpdiBjbGFzcz0iYm90dG9tLWJhciI+CiAgICAgICAgPCEtLSBMZWZ0IGFjdGlvbnMgLS0+CiAgICAgICAgJHt5Lm1hcChtPT50aGlzLnJlbmRlckFjdGlvbihtKSl9CgogICAgICAgIDwhLS0gTGVmdCB3aWRnZXRzIC0tPgogICAgICAgICR7Zi5tYXAoKG0seCk9PndgCiAgICAgICAgICAke3g+MHx8eS5sZW5ndGg+MD93YDxkaXYgY2xhc3M9IndpZGdldC1zZXBhcmF0b3IiPjwvZGl2PmA6IiJ9CiAgICAgICAgICAke3RoaXMucmVuZGVyV2lkZ2V0KG0pfQogICAgICAgIGApfQoKICAgICAgICA8ZGl2IGNsYXNzPSJzcGFjZXIiPjwvZGl2PgoKICAgICAgICA8IS0tIFJpZ2h0IHdpZGdldHMgLS0+CiAgICAgICAgJHtnLm1hcCgobSx4KT0+d2AKICAgICAgICAgICR7dGhpcy5yZW5kZXJXaWRnZXQobSl9CiAgICAgICAgICAke3g8Zy5sZW5ndGgtMXx8di5sZW5ndGg+MD93YDxkaXYgY2xhc3M9IndpZGdldC1zZXBhcmF0b3IiPjwvZGl2PmA6IiJ9CiAgICAgICAgYCl9CgogICAgICAgIDwhLS0gUmlnaHQgYWN0aW9ucyAtLT4KICAgICAgICAke3YubWFwKG09PnRoaXMucmVuZGVyQWN0aW9uKG0pKX0KICAgICAgPC9kaXY+CiAgICBgfXJlbmRlcldpZGdldChmKXtsZXQgZz1mLnN0YXR1cyYmZi5zdGF0dXMhPT0iaWRsZSI/Zi5zdGF0dXM6IiIseT1mLmljb25OYW1lP2YuaWNvbk5hbWUuc3RhcnRzV2l0aCgibHVjaWRlOiIpP2YuaWNvbk5hbWU6YGx1Y2lkZToke2YuaWNvbk5hbWV9YDoiIjtyZXR1cm4gd2AKICAgICAgPGRpdgogICAgICAgIGNsYXNzPSJ3aWRnZXQgJHtnfSIKICAgICAgICB0aXRsZT0iJHtmLnRvb2x0aXB8fCIifSIKICAgICAgICBAY2xpY2s9JHsoKT0+Zi5vbkNsaWNrPy4oKX0KICAgICAgICBAY29udGV4dG1lbnU9JHt2PT50aGlzLmhhbmRsZVdpZGdldENvbnRleHRNZW51KHYsZil9CiAgICAgID4KICAgICAgICAke3k/d2AKICAgICAgICAgIDxkZWVzLWljb24KICAgICAgICAgICAgLmljb249JHt5fQogICAgICAgICAgICBpY29uU2l6ZT0iMTIiCiAgICAgICAgICAgIGNsYXNzPSIke2YubG9hZGluZz8ic3Bpbm5pbmciOiIifSIKICAgICAgICAgID48L2RlZXMtaWNvbj4KICAgICAgICBgOiIifQogICAgICAgICR7Zi5sYWJlbD93YDxzcGFuPiR7Zi5sYWJlbH08L3NwYW4+YDoiIn0KICAgICAgPC9kaXY+CiAgICBgfXJlbmRlckFjdGlvbihmKXtsZXQgZz1mLmljb25OYW1lLnN0YXJ0c1dpdGgoImx1Y2lkZToiKT9mLmljb25OYW1lOmBsdWNpZGU6JHtmLmljb25OYW1lfWA7cmV0dXJuIHdgCiAgICAgIDxkaXYKICAgICAgICBjbGFzcz0iYWN0aW9uLWJ1dHRvbiAke2YuZGlzYWJsZWQ/ImRpc2FibGVkIjoiIn0iCiAgICAgICAgdGl0bGU9IiR7Zi50b29sdGlwfHwiIn0iCiAgICAgICAgQGNsaWNrPSR7KCk9PiFmLmRpc2FibGVkJiZmLm9uQ2xpY2s/LigpfQogICAgICA+CiAgICAgICAgPGRlZXMtaWNvbgogICAgICAgICAgLmljb249JHtnfQogICAgICAgICAgaWNvblNpemU9IjEyIgogICAgICAgID48L2RlZXMtaWNvbj4KICAgICAgPC9kaXY+CiAgICBgfWFzeW5jIGhhbmRsZVdpZGdldENvbnRleHRNZW51KGYsZyl7aWYoIWcuY29udGV4dE1lbnVJdGVtc3x8Zy5jb250ZXh0TWVudUl0ZW1zLmxlbmd0aD09PTApcmV0dXJuO2YucHJldmVudERlZmF1bHQoKTtsZXQgeT1bXTtmb3IobGV0IHYgb2YgZy5jb250ZXh0TWVudUl0ZW1zKXYuZGl2aWRlcj95LnB1c2goe2RpdmlkZXI6ITB9KTp5LnB1c2goe25hbWU6di5uYW1lLGljb25OYW1lOnYuaWNvbk5hbWUsYWN0aW9uOmFzeW5jKCk9Pnthd2FpdCB2LmFjdGlvbigpfSxkaXNhYmxlZDp2LmRpc2FibGVkfSk7YXdhaXQgVXQub3BlbkNvbnRleHRNZW51V2l0aE9wdGlvbnMoZix5KX1hZGRXaWRnZXQoZil7dGhpcy53aWRnZXRzPXRoaXMud2lkZ2V0cy5maWx0ZXIoZz0+Zy5pZCE9PWYuaWQpLHRoaXMud2lkZ2V0cz1bLi4udGhpcy53aWRnZXRzLGZdfXVwZGF0ZVdpZGdldChmLGcpe3RoaXMud2lkZ2V0cz10aGlzLndpZGdldHMubWFwKHk9PnkuaWQ9PT1mP3suLi55LC4uLmd9OnkpfXJlbW92ZVdpZGdldChmKXt0aGlzLndpZGdldHM9dGhpcy53aWRnZXRzLmZpbHRlcihnPT5nLmlkIT09Zil9Z2V0V2lkZ2V0KGYpe3JldHVybiB0aGlzLndpZGdldHMuZmluZChnPT5nLmlkPT09Zil9Y2xlYXJXaWRnZXRzKCl7dGhpcy53aWRnZXRzPVtdfWFkZEFjdGlvbihmKXt0aGlzLmFjdGlvbnM9dGhpcy5hY3Rpb25zLmZpbHRlcihnPT5nLmlkIT09Zi5pZCksdGhpcy5hY3Rpb25zPVsuLi50aGlzLmFjdGlvbnMsZl19cmVtb3ZlQWN0aW9uKGYpe3RoaXMuYWN0aW9ucz10aGlzLmFjdGlvbnMuZmlsdGVyKGc9PmcuaWQhPT1mKX1jbGVhckFjdGlvbnMoKXt0aGlzLmFjdGlvbnM9W119Y29uc3RydWN0b3IoKXtzdXBlciguLi5hcmd1bWVudHMpLGI4KHRoaXMsaCl9c3RhdGlje2I4KGksYSl9fTtyZXR1cm4gbD1pfSkoKX0pO3ZhciBMOXQ9YigoKT0+e0xxKCl9KTt2YXIgJDl0LEE5dD1iKCgpPT57dWUoKTskOXQ9KCk9PndgCiAgPHN0eWxlPgogICAgJHtRYAogICAgICAuZGVtby1iYWNrZ3JvdW5kIHsKICAgICAgICBwYWRkaW5nOiAyNHB4OwogICAgICAgIGJhY2tncm91bmQ6ICR7cC5iZFRoZW1lKCJoc2woMCAwJSA5NSUpIiwiaHNsKDAgMCUgNSUpIil9OwogICAgICAgIG1pbi1oZWlnaHQ6IDEwMHZoOwogICAgICB9CiAgICAgIAogICAgICAuZGVtby1jb250YWluZXIgewogICAgICAgIG1heC13aWR0aDogMTIwMHB4OwogICAgICAgIG1hcmdpbjogMCBhdXRvOwogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgICBnYXA6IDI0cHg7CiAgICAgIH0KICAgICAgCiAgICAgIC5zZWN0aW9uLXRpdGxlIHsKICAgICAgICBmb250LXNpemU6IDI0cHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDcwMDsKICAgICAgICBtYXJnaW46IDMycHggMCAxNnB4IDA7CiAgICAgICAgY29sb3I6ICR7cC5iZFRoZW1lKCJoc2woMCAwJSA5JSkiLCJoc2woMCAwJSA5NSUpIil9OwogICAgICAgIGxldHRlci1zcGFjaW5nOiAtMC4wMjVlbTsKICAgICAgfQogICAgICAKICAgICAgLnNlY3Rpb24tdGl0bGU6Zmlyc3QtY2hpbGQgewogICAgICAgIG1hcmdpbi10b3A6IDA7CiAgICAgIH0KICAgICAgCiAgICAgIC5ncmlkLWxheW91dCB7CiAgICAgICAgZGlzcGxheTogZ3JpZDsKICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDFmciAxZnI7CiAgICAgICAgZ2FwOiAyNHB4OwogICAgICB9CiAgICAgIAogICAgICAuZ3JpZC0zY29sIHsKICAgICAgICBkaXNwbGF5OiBncmlkOwogICAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogMWZyIDFmciAxZnI7CiAgICAgICAgZ2FwOiAyNHB4OwogICAgICB9CiAgICAgIAogICAgICBAbWVkaWEgKG1heC13aWR0aDogOTY4cHgpIHsKICAgICAgICAuZ3JpZC0zY29sIHsKICAgICAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogMWZyOwogICAgICAgIH0KICAgICAgfQogICAgICAKICAgICAgQG1lZGlhIChtYXgtd2lkdGg6IDc2OHB4KSB7CiAgICAgICAgLmdyaWQtbGF5b3V0IHsKICAgICAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogMWZyOwogICAgICAgIH0KICAgICAgfQogICAgICAKICAgICAgY29kZSB7CiAgICAgICAgYmFja2dyb3VuZDogJHtwLmJkVGhlbWUoImhzbCgwIDAlIDg5LjglKSIsImhzbCgwIDAlIDE0LjklKSIpfTsKICAgICAgICBwYWRkaW5nOiAycHggNnB4OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDNweDsKICAgICAgICBmb250LXNpemU6IDEzcHg7CiAgICAgIH0KICAgIGB9CiAgPC9zdHlsZT4KICAKICA8ZGl2IGNsYXNzPSJkZW1vLWJhY2tncm91bmQiPgogICAgPGRpdiBjbGFzcz0iZGVtby1jb250YWluZXIiPgogICAgICA8aDIgY2xhc3M9InNlY3Rpb24tdGl0bGUiPkRlZmF1bHQgUGFuZWxzPC9oMj4KICAgICAgCiAgICAgIDxkZWVzLXBhbmVsIC50aXRsZT0keyJQYW5lbCBDb21wb25lbnQifSAuc3VidGl0bGU9JHsiVGhlIGRlZmF1bHQgcGFuZWwgdmFyaWFudCB3aXRoIHNoYWRjbi1pbnNwaXJlZCBzdHlsaW5nIn0+CiAgICAgICAgPHA+VGhlIHBhbmVsIGNvbXBvbmVudCBhdXRvbWF0aWNhbGx5IGZvbGxvd3MgdGhlIHRoZW1lIGFuZCBwcm92aWRlcyBjb25zaXN0ZW50IHN0eWxpbmcgZm9yIGdyb3VwZWQgY29udGVudC48L3A+CiAgICAgICAgPHA+SXQncyBwZXJmZWN0IGZvciBjcmVhdGluZyBzZWN0aW9ucyBpbiB5b3VyIGFwcGxpY2F0aW9uIHdpdGggcHJvcGVyIHNwYWNpbmcgYW5kIGJvcmRlcnMuPC9wPgogICAgICA8L2RlZXMtcGFuZWw+CiAgICAgIAogICAgICA8ZGl2IGNsYXNzPSJncmlkLWxheW91dCI+CiAgICAgICAgPGRlZXMtcGFuZWwgLnRpdGxlPSR7IkZlYXR1cmUgT3ZlcnZpZXcifSAuc3VidGl0bGU9JHsiS2V5IGNhcGFiaWxpdGllcyJ9PgogICAgICAgICAgPHA+R3JpZCBsYXlvdXRzIHdvcmsgZ3JlYXQgd2l0aCBwYW5lbHMgZm9yIGNyZWF0aW5nIGRhc2hib2FyZHMgYW5kIGZlYXR1cmUgc2VjdGlvbnMuPC9wPgogICAgICAgICAgPGRlZXMtYnV0dG9uPkxlYXJuIE1vcmU8L2RlZXMtYnV0dG9uPgogICAgICAgIDwvZGVlcy1wYW5lbD4KICAgICAgICAKICAgICAgICA8ZGVlcy1wYW5lbCAudGl0bGU9JHsiUXVpY2sgQWN0aW9ucyJ9IC5zdWJ0aXRsZT0keyJDb21tb24gdGFza3MifT4KICAgICAgICAgIDxwPkVhY2ggcGFuZWwgbWFpbnRhaW5zIGNvbnNpc3RlbnQgc3BhY2luZyBhbmQgc3R5bGluZyBhY3Jvc3MgeW91ciBhcHBsaWNhdGlvbi48L3A+CiAgICAgICAgICA8ZGVlcy1idXR0b24+R2V0IFN0YXJ0ZWQ8L2RlZXMtYnV0dG9uPgogICAgICAgIDwvZGVlcy1wYW5lbD4KICAgICAgPC9kaXY+CiAgICAgIAogICAgICA8aDIgY2xhc3M9InNlY3Rpb24tdGl0bGUiPlBhbmVsIFZhcmlhbnRzPC9oMj4KICAgICAgCiAgICAgIDxkZWVzLXBhbmVsIC50aXRsZT0keyJEZWZhdWx0IFZhcmlhbnQifSAudmFyaWFudD0keyJkZWZhdWx0In0+CiAgICAgICAgPHA+VGhlIGRlZmF1bHQgdmFyaWFudCBoYXMgYSB3aGl0ZSBiYWNrZ3JvdW5kLCBzdWJ0bGUgYm9yZGVyLCBhbmQgbWluaW1hbCBzaGFkb3cuIEl0J3MgdGhlIHN0YW5kYXJkIGNob2ljZSBmb3IgbW9zdCBjb250ZW50LjwvcD4KICAgICAgICA8cD5Vc2UgPGNvZGU+dmFyaWFudD0iZGVmYXVsdCI8L2NvZGU+IG9yIG9taXQgdGhlIHZhcmlhbnQgcHJvcGVydHkuPC9wPgogICAgICA8L2RlZXMtcGFuZWw+CiAgICAgIAogICAgICA8ZGVlcy1wYW5lbCAudGl0bGU9JHsiT3V0bGluZSBWYXJpYW50In0gLnN1YnRpdGxlPSR7IlRyYW5zcGFyZW50IGJhY2tncm91bmQgd2l0aCBib3JkZXIifSAudmFyaWFudD0keyJvdXRsaW5lIn0+CiAgICAgICAgPHA+VGhlIG91dGxpbmUgdmFyaWFudCByZW1vdmVzIHRoZSBiYWNrZ3JvdW5kIGNvbG9yIGFuZCBzaGFkb3csIGtlZXBpbmcgb25seSB0aGUgYm9yZGVyLjwvcD4KICAgICAgICA8cD5Vc2UgPGNvZGU+dmFyaWFudD0ib3V0bGluZSI8L2NvZGU+IGZvciBhIGxpZ2h0ZXIgdmlzdWFsIHdlaWdodC48L3A+CiAgICAgIDwvZGVlcy1wYW5lbD4KICAgICAgCiAgICAgIDxkZWVzLXBhbmVsIC50aXRsZT0keyJHaG9zdCBWYXJpYW50In0gLnN1YnRpdGxlPSR7Ik1pbmltYWwgc3R5bGluZyBmb3Igc3VidGxlIHNlY3Rpb25zIn0gLnZhcmlhbnQ9JHsiZ2hvc3QifT4KICAgICAgICA8cD5UaGUgZ2hvc3QgdmFyaWFudCBoYXMgbm8gYm9yZGVyIG9yIGJhY2tncm91bmQgYnkgZGVmYXVsdCwgb25seSBzaG93aW5nIGEgc3VidGxlIGJhY2tncm91bmQgb24gaG92ZXIuPC9wPgogICAgICAgIDxwPlVzZSA8Y29kZT52YXJpYW50PSJnaG9zdCI8L2NvZGU+IGZvciB0aGUgbW9zdCBtaW5pbWFsIGFwcGVhcmFuY2UuPC9wPgogICAgICA8L2RlZXMtcGFuZWw+CiAgICAgIAogICAgICA8aDIgY2xhc3M9InNlY3Rpb24tdGl0bGUiPlBhbmVsIFNpemVzPC9oMj4KICAgICAgCiAgICAgIDxkaXYgY2xhc3M9ImdyaWQtM2NvbCI+CiAgICAgICAgPGRlZXMtcGFuZWwgLnRpdGxlPSR7IlNtYWxsIFBhbmVsIn0gLnNpemU9JHsic20ifT4KICAgICAgICAgIDxwPkNvbXBhY3QgcGFkZGluZyBmb3IgZGVuc2UgbGF5b3V0cy48L3A+CiAgICAgICAgICA8cD5Vc2UgPGNvZGU+c2l6ZT0ic20iPC9jb2RlPjwvcD4KICAgICAgICA8L2RlZXMtcGFuZWw+CiAgICAgICAgCiAgICAgICAgPGRlZXMtcGFuZWwgLnRpdGxlPSR7Ik1lZGl1bSBQYW5lbCJ9IC5zaXplPSR7Im1kIn0+CiAgICAgICAgICA8cD5EZWZhdWx0IHNpemUgd2l0aCBiYWxhbmNlZCBzcGFjaW5nLjwvcD4KICAgICAgICAgIDxwPlVzZSA8Y29kZT5zaXplPSJtZCI8L2NvZGU+IG9yIG9taXQuPC9wPgogICAgICAgIDwvZGVlcy1wYW5lbD4KICAgICAgICAKICAgICAgICA8ZGVlcy1wYW5lbCAudGl0bGU9JHsiTGFyZ2UgUGFuZWwifSAuc2l6ZT0keyJsZyJ9PgogICAgICAgICAgPHA+R2VuZXJvdXMgcGFkZGluZyBmb3IgcHJvbWluZW50IHNlY3Rpb25zLjwvcD4KICAgICAgICAgIDxwPlVzZSA8Y29kZT5zaXplPSJsZyI8L2NvZGU+PC9wPgogICAgICAgIDwvZGVlcy1wYW5lbD4KICAgICAgPC9kaXY+CiAgICAgIAogICAgICA8aDIgY2xhc3M9InNlY3Rpb24tdGl0bGUiPkNvbXBsZXggRXhhbXBsZXM8L2gyPgogICAgICAKICAgICAgPGRlZXMtcGFuZWwgLnRpdGxlPSR7IkZvcm0gRXhhbXBsZSJ9IC5zdWJ0aXRsZT0keyJQYW5lbHMgd29yayBncmVhdCBmb3Igb3JnYW5pemluZyBmb3JtIHNlY3Rpb25zIn0+CiAgICAgICAgPGRlZXMtZm9ybT4KICAgICAgICAgIDxkZWVzLWlucHV0LXRleHQgLmxhYmVsPSR7IlByb2plY3QgTmFtZSJ9IC5yZXF1aXJlZD0keyEwfT48L2RlZXMtaW5wdXQtdGV4dD4KICAgICAgICAgIDxkZWVzLWlucHV0LXRleHQgLmxhYmVsPSR7IkRlc2NyaXB0aW9uIn0gLmlucHV0VHlwZT0keyJ0ZXh0YXJlYSJ9PjwvZGVlcy1pbnB1dC10ZXh0PgogICAgICAgICAgPGRlZXMtaW5wdXQtZHJvcGRvd24gCiAgICAgICAgICAgIC5sYWJlbD0keyJDYXRlZ29yeSJ9IAogICAgICAgICAgICAub3B0aW9ucz0ke1t7b3B0aW9uOiJXZWIgRGV2ZWxvcG1lbnQiLGtleToid2ViIn0se29wdGlvbjoiTW9iaWxlIEFwcCIsa2V5OiJtb2JpbGUifSx7b3B0aW9uOiJEZXNrdG9wIFNvZnR3YXJlIixrZXk6ImRlc2t0b3AifV19CiAgICAgICAgICA+PC9kZWVzLWlucHV0LWRyb3Bkb3duPgogICAgICAgICAgPGRlZXMtZm9ybS1zdWJtaXQ+Q3JlYXRlIFByb2plY3Q8L2RlZXMtZm9ybS1zdWJtaXQ+CiAgICAgICAgPC9kZWVzLWZvcm0+CiAgICAgIDwvZGVlcy1wYW5lbD4KICAgICAgCiAgICAgIDxkZWVzLXBhbmVsIC50aXRsZT0keyJOZXN0ZWQgUGFuZWxzIn0gLnN1YnRpdGxlPSR7IlBhbmVscyBjYW4gYmUgbmVzdGVkIGZvciBoaWVyYXJjaGljYWwgb3JnYW5pemF0aW9uIn0+CiAgICAgICAgPHA+WW91IGNhbiBuZXN0IHBhbmVscyB0byBjcmVhdGUgbW9yZSBjb21wbGV4IGxheW91dHM6PC9wPgogICAgICAgIAogICAgICAgIDxkZWVzLXBhbmVsIC50aXRsZT0keyJOZXN0ZWQgUGFuZWwgMSJ9IC52YXJpYW50PSR7Im91dGxpbmUifSAuc2l6ZT0keyJzbSJ9PgogICAgICAgICAgPHA+VGhpcyBpcyBhIG5lc3RlZCBwYW5lbCB3aXRoIG91dGxpbmUgdmFyaWFudCBhbmQgc21hbGwgc2l6ZS48L3A+CiAgICAgICAgPC9kZWVzLXBhbmVsPgogICAgICAgIAogICAgICAgIDxkZWVzLXBhbmVsIC50aXRsZT0keyJOZXN0ZWQgUGFuZWwgMiJ9IC52YXJpYW50PSR7Imdob3N0In0gLnNpemU9JHsic20ifT4KICAgICAgICAgIDxwPlRoaXMgaXMgYW5vdGhlciBuZXN0ZWQgcGFuZWwgd2l0aCBnaG9zdCB2YXJpYW50LjwvcD4KICAgICAgICA8L2RlZXMtcGFuZWw+CiAgICAgIDwvZGVlcy1wYW5lbD4KICAgICAgCiAgICAgIDxoMiBjbGFzcz0ic2VjdGlvbi10aXRsZSI+VW50aXRsZWQgUGFuZWxzPC9oMj4KICAgICAgCiAgICAgIDxkZWVzLXBhbmVsPgogICAgICAgIDxwPlBhbmVscyB3b3JrIGdyZWF0IGV2ZW4gd2l0aG91dCBhIHRpdGxlIGZvciBzaW1wbGUgY29udGVudCBncm91cGluZy48L3A+CiAgICAgICAgPHA+VGhleSBwcm92aWRlIHZpc3VhbCBzZXBhcmF0aW9uIGFuZCBjb25zaXN0ZW50IHBhZGRpbmcgdGhyb3VnaG91dCB5b3VyIGludGVyZmFjZS48L3A+CiAgICAgIDwvZGVlcy1wYW5lbD4KICAgICAgCiAgICAgIDxkaXYgY2xhc3M9ImdyaWQtbGF5b3V0Ij4KICAgICAgICA8ZGVlcy1wYW5lbCAudmFyaWFudD0keyJvdXRsaW5lIn0+CiAgICAgICAgICA8aDQgc3R5bGU9Im1hcmdpbi10b3A6IDA7Ij5DdXN0b20gQ29udGVudDwvaDQ+CiAgICAgICAgICA8cD5Zb3UgY2FuIGFkZCB5b3VyIG93biBoZWFkaW5ncyBhbmQgc3RydWN0dXJlIHdpdGhpbiB1bnRpdGxlZCBwYW5lbHMuPC9wPgogICAgICAgIDwvZGVlcy1wYW5lbD4KICAgICAgICAKICAgICAgICA8ZGVlcy1wYW5lbCAudmFyaWFudD0keyJnaG9zdCJ9PgogICAgICAgICAgPGg0IHN0eWxlPSJtYXJnaW4tdG9wOiAwOyI+TWluaW1hbCBTdHlsZTwvaDQ+CiAgICAgICAgICA8cD5HaG9zdCBwYW5lbHMgd2l0aG91dCB0aXRsZXMgY3JlYXRlIHZlcnkgc3VidGxlIGNvbnRlbnQgc2VjdGlvbnMuPC9wPgogICAgICAgIDwvZGVlcy1wYW5lbD4KICAgICAgPC9kaXY+CiAgICA8L2Rpdj4KICA8L2Rpdj4KYH0pO3ZhciBOanQsRmp0LCRxLE9qdCxKdCxWMCxSanQsQmp0LEQ5dCxIanQscWp0LFJYMSxCWDEsZGE9YigoKT0+e3VlKCk7Tmp0PSJHZWlzdCBTYW5zIixGanQ9IkludGVsIE9uZSBNb25vIiwkcT1gJyR7Tmp0fScsIC1hcHBsZS1zeXN0ZW0sIEJsaW5rTWFjU3lzdGVtRm9udCwgJ1NlZ29lIFVJJywgJ1JvYm90bycsICdPeHlnZW4nLCAnVWJ1bnR1JywgJ0NhbnRhcmVsbCcsICdGaXJhIFNhbnMnLCAnRHJvaWQgU2FucycsICdIZWx2ZXRpY2EgTmV1ZScsIHNhbnMtc2VyaWZgLE9qdD1gJyR7Rmp0fScsICdTRiBNb25vJywgJ01vbmFjbycsICdJbmNvbnNvbGF0YScsICdGaXJhIENvZGUnLCAnRmlyYSBNb25vJywgJ0Ryb2lkIFNhbnMgTW9ubycsICdDb3VyaWVyIE5ldycsIG1vbm9zcGFjZWAsSnQ9cXQoJHEpLFYwPXF0KE9qdCksUmp0PSJDYWwgU2FucyIsQmp0PWAnJHtSanR9JywgJHskcX1gLEQ5dD1xdChCanQpLEhqdD0iUm9ib3RvIFNsYWIiLHFqdD1gJyR7SGp0fScsIEdlb3JnaWEsIHNlcmlmYCxSWDE9cXQocWp0KSxCWDE9cXQoYAogIGZvbnQtZmFtaWx5OiAkeyRxfTsKICAtd2Via2l0LWZvbnQtc21vb3RoaW5nOiBhbnRpYWxpYXNlZDsKICAtbW96LW9zeC1mb250LXNtb290aGluZzogZ3JheXNjYWxlOwogIGZvbnQtZmVhdHVyZS1zZXR0aW5nczogJ2N2MTEnLCAndG51bScsICdjdjA1JyAxOwpgKX0pO3ZhciBfbCxVaSxFOXQsbTI9YigoKT0+e3VlKCk7QTl0KCk7ZGEoKTtxZSgpO19sPWZ1bmN0aW9uKHQsZSxhLGkscixzKXtmdW5jdGlvbiBuKHgpe2lmKHghPT12b2lkIDAmJnR5cGVvZiB4IT0iZnVuY3Rpb24iKXRocm93IG5ldyBUeXBlRXJyb3IoIkZ1bmN0aW9uIGV4cGVjdGVkIik7cmV0dXJuIHh9Zm9yKHZhciBvPWkua2luZCxkPW89PT0iZ2V0dGVyIj8iZ2V0IjpvPT09InNldHRlciI/InNldCI6InZhbHVlIixjPSFlJiZ0P2kuc3RhdGljP3Q6dC5wcm90b3R5cGU6bnVsbCxoPWV8fChjP09iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoYyxpLm5hbWUpOnt9KSxsLGY9ITEsZz1hLmxlbmd0aC0xO2c+PTA7Zy0tKXt2YXIgeT17fTtmb3IodmFyIHYgaW4gaSl5W3ZdPXY9PT0iYWNjZXNzIj97fTppW3ZdO2Zvcih2YXIgdiBpbiBpLmFjY2Vzcyl5LmFjY2Vzc1t2XT1pLmFjY2Vzc1t2XTt5LmFkZEluaXRpYWxpemVyPWZ1bmN0aW9uKHgpe2lmKGYpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGFkZCBpbml0aWFsaXplcnMgYWZ0ZXIgZGVjb3JhdGlvbiBoYXMgY29tcGxldGVkIik7cy5wdXNoKG4oeHx8bnVsbCkpfTt2YXIgbT0oMCxhW2ddKShvPT09ImFjY2Vzc29yIj97Z2V0OmguZ2V0LHNldDpoLnNldH06aFtkXSx5KTtpZihvPT09ImFjY2Vzc29yIil7aWYobT09PXZvaWQgMCljb250aW51ZTtpZihtPT09bnVsbHx8dHlwZW9mIG0hPSJvYmplY3QiKXRocm93IG5ldyBUeXBlRXJyb3IoIk9iamVjdCBleHBlY3RlZCIpOyhsPW4obS5nZXQpKSYmKGguZ2V0PWwpLChsPW4obS5zZXQpKSYmKGguc2V0PWwpLChsPW4obS5pbml0KSkmJnIudW5zaGlmdChsKX1lbHNlKGw9bihtKSkmJihvPT09ImZpZWxkIj9yLnVuc2hpZnQobCk6aFtkXT1sKX1jJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoYyxpLm5hbWUsaCksZj0hMH0sVWk9ZnVuY3Rpb24odCxlLGEpe2Zvcih2YXIgaT1hcmd1bWVudHMubGVuZ3RoPjIscj0wO3I8ZS5sZW5ndGg7cisrKWE9aT9lW3JdLmNhbGwodCxhKTplW3JdLmNhbGwodCk7cmV0dXJuIGk/YTp2b2lkIDB9LEU5dD0oKCk9PntsZXQgdD1bcGUoImRlZXMtcGFuZWwiKV0sZSxhPVtdLGkscj14ZSxzLG49W10sbz1bXSxkLGM9W10saD1bXSxsLGY9W10sZz1bXSx5LHY9W10sbT1bXSx4LE09W10sUz1bXTt2YXIgRj1jbGFzcyBleHRlbmRzIHJ7c3RhdGlje2k9dGhpc31zdGF0aWN7bGV0IF89dHlwZW9mIFN5bWJvbD09ImZ1bmN0aW9uIiYmU3ltYm9sLm1ldGFkYXRhP09iamVjdC5jcmVhdGUocltTeW1ib2wubWV0YWRhdGFdPz9udWxsKTp2b2lkIDA7cz1bSSh7dHlwZTpTdHJpbmd9KV0sZD1bSSh7dHlwZTpTdHJpbmd9KV0sbD1bSSh7dHlwZTpTdHJpbmd9KV0seT1bSSh7dHlwZTpTdHJpbmd9KV0seD1bSSh7YXR0cmlidXRlOiExfSldLF9sKHRoaXMsbnVsbCxzLHtraW5kOiJhY2Nlc3NvciIsbmFtZToidGl0bGUiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOms9PiJ0aXRsZSJpbiBrLGdldDprPT5rLnRpdGxlLHNldDooayxOKT0+e2sudGl0bGU9Tn19LG1ldGFkYXRhOl99LG4sbyksX2wodGhpcyxudWxsLGQse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJzdWJ0aXRsZSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6az0+InN1YnRpdGxlImluIGssZ2V0Oms9Pmsuc3VidGl0bGUsc2V0OihrLE4pPT57ay5zdWJ0aXRsZT1OfX0sbWV0YWRhdGE6X30sYyxoKSxfbCh0aGlzLG51bGwsbCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InZhcmlhbnQiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOms9PiJ2YXJpYW50ImluIGssZ2V0Oms9PmsudmFyaWFudCxzZXQ6KGssTik9PntrLnZhcmlhbnQ9Tn19LG1ldGFkYXRhOl99LGYsZyksX2wodGhpcyxudWxsLHkse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJzaXplIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczprPT4ic2l6ZSJpbiBrLGdldDprPT5rLnNpemUsc2V0OihrLE4pPT57ay5zaXplPU59fSxtZXRhZGF0YTpffSx2LG0pLF9sKHRoaXMsbnVsbCx4LHtraW5kOiJhY2Nlc3NvciIsbmFtZToicnVuQWZ0ZXJSZW5kZXIiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOms9PiJydW5BZnRlclJlbmRlciJpbiBrLGdldDprPT5rLnJ1bkFmdGVyUmVuZGVyLHNldDooayxOKT0+e2sucnVuQWZ0ZXJSZW5kZXI9Tn19LG1ldGFkYXRhOl99LE0sUyksX2wobnVsbCxlPXt2YWx1ZTppfSx0LHtraW5kOiJjbGFzcyIsbmFtZTppLm5hbWUsbWV0YWRhdGE6X30sbnVsbCxhKSxGPWk9ZS52YWx1ZSxfJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoaSxTeW1ib2wubWV0YWRhdGEse2VudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwLHZhbHVlOl99KX1zdGF0aWMgZGVtbz0kOXQ7c3RhdGljIGRlbW9Hcm91cHM9WyJMYXlvdXQiXTsjZT1VaSh0aGlzLG4sIiIpO2dldCB0aXRsZSgpe3JldHVybiB0aGlzLiNlfXNldCB0aXRsZShfKXt0aGlzLiNlPV99I3Q9KFVpKHRoaXMsbyksVWkodGhpcyxjLCIiKSk7Z2V0IHN1YnRpdGxlKCl7cmV0dXJuIHRoaXMuI3R9c2V0IHN1YnRpdGxlKF8pe3RoaXMuI3Q9X30jYT0oVWkodGhpcyxoKSxVaSh0aGlzLGYsImRlZmF1bHQiKSk7Z2V0IHZhcmlhbnQoKXtyZXR1cm4gdGhpcy4jYX1zZXQgdmFyaWFudChfKXt0aGlzLiNhPV99I2k9KFVpKHRoaXMsZyksVWkodGhpcyx2LCJtZCIpKTtnZXQgc2l6ZSgpe3JldHVybiB0aGlzLiNpfXNldCBzaXplKF8pe3RoaXMuI2k9X30jcj0oVWkodGhpcyxtKSxVaSh0aGlzLE0sdm9pZCAwKSk7Z2V0IHJ1bkFmdGVyUmVuZGVyKCl7cmV0dXJuIHRoaXMuI3J9c2V0IHJ1bkFmdGVyUmVuZGVyKF8pe3RoaXMuI3I9X31zdGF0aWMgc3R5bGVzPVtDZSxwLmRlZmF1bHRTdHlsZXMsUWAKICAgICAgLyogVE9ETzogTWlncmF0ZSBoYXJkY29kZWQgdmFsdWVzIHRvIC0tZGVlcy0qIENTUyB2YXJpYWJsZXMgKi8KICAgICAgOmhvc3QgewogICAgICAgIGRpc3BsYXk6IGJsb2NrOwogICAgICAgIGZvbnQtZmFtaWx5OiAke0p0fTsKICAgICAgICBiYWNrZ3JvdW5kOiAke3AuYmRUaGVtZSgiaHNsKDAgMCUgMTAwJSkiLCJoc2woMCAwJSAzLjklKSIpfTsKICAgICAgICBib3JkZXItcmFkaXVzOiA2cHg7CiAgICAgICAgcGFkZGluZzogMjRweDsKICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAke3AuYmRUaGVtZSgiaHNsKDAgMCUgODkuOCUpIiwiaHNsKDAgMCUgMTQuOSUpIil9OwogICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjJzIGN1YmljLWJlemllcigwLjQsIDAsIDAuMiwgMSk7CiAgICAgIH0KCiAgICAgIC8qIFZhcmlhbnQ6IGRlZmF1bHQgKi8KICAgICAgOmhvc3QoW3ZhcmlhbnQ9ImRlZmF1bHQiXSkgewogICAgICAgIGJveC1zaGFkb3c6IDAgMXB4IDJweCAwIGhzbCgwIDAlIDAlIC8gMC4wNSk7CiAgICAgIH0KCiAgICAgIC8qIFZhcmlhbnQ6IG91dGxpbmUgKi8KICAgICAgOmhvc3QoW3ZhcmlhbnQ9Im91dGxpbmUiXSkgewogICAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50OwogICAgICAgIGJveC1zaGFkb3c6IG5vbmU7CiAgICAgIH0KCiAgICAgIC8qIFZhcmlhbnQ6IGdob3N0ICovCiAgICAgIDpob3N0KFt2YXJpYW50PSJnaG9zdCJdKSB7CiAgICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7CiAgICAgICAgYm9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudDsKICAgICAgICBib3gtc2hhZG93OiBub25lOwogICAgICAgIHBhZGRpbmc6IDE2cHg7CiAgICAgIH0KCiAgICAgIC8qIFNpemUgdmFyaWF0aW9ucyAqLwogICAgICA6aG9zdChbc2l6ZT0ic20iXSkgewogICAgICAgIHBhZGRpbmc6IDE2cHg7CiAgICAgIH0KCiAgICAgIDpob3N0KFtzaXplPSJsZyJdKSB7CiAgICAgICAgcGFkZGluZzogMzJweDsKICAgICAgfQoKICAgICAgLmhlYWRlciB7CiAgICAgICAgbWFyZ2luLWJvdHRvbTogMTZweDsKICAgICAgfQoKICAgICAgLmhlYWRlcjplbXB0eSB7CiAgICAgICAgZGlzcGxheTogbm9uZTsKICAgICAgfQoKICAgICAgLnRpdGxlIHsKICAgICAgICBtYXJnaW46IDA7CiAgICAgICAgZm9udC1zaXplOiAxOHB4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7CiAgICAgICAgY29sb3I6ICR7cC5iZFRoZW1lKCJoc2woMCAwJSA5JSkiLCJoc2woMCAwJSA5NSUpIil9OwogICAgICAgIGxldHRlci1zcGFjaW5nOiAtMC4wMjVlbTsKICAgICAgICBsaW5lLWhlaWdodDogMS41OwogICAgICB9CgogICAgICAvKiBUaXRsZSBzaXplIHZhcmlhdGlvbnMgKi8KICAgICAgOmhvc3QoW3NpemU9InNtIl0pIC50aXRsZSB7CiAgICAgICAgZm9udC1zaXplOiAxNnB4OwogICAgICB9CgogICAgICA6aG9zdChbc2l6ZT0ibGciXSkgLnRpdGxlIHsKICAgICAgICBmb250LXNpemU6IDIwcHg7CiAgICAgIH0KCiAgICAgIC5zdWJ0aXRsZSB7CiAgICAgICAgbWFyZ2luOiA0cHggMCAwIDA7CiAgICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgICAgIGNvbG9yOiAke3AuYmRUaGVtZSgiaHNsKDIxNS40IDE2LjMlIDU2LjklKSIsImhzbCgyMTUgMjAuMiUgNTUuMSUpIil9OwogICAgICAgIGxldHRlci1zcGFjaW5nOiAtMC4wMDZlbTsKICAgICAgICBsaW5lLWhlaWdodDogMS41OwogICAgICB9CgogICAgICAvKiBTdWJ0aXRsZSBzaXplIHZhcmlhdGlvbnMgKi8KICAgICAgOmhvc3QoW3NpemU9InNtIl0pIC5zdWJ0aXRsZSB7CiAgICAgICAgZm9udC1zaXplOiAxM3B4OwogICAgICB9CgogICAgICA6aG9zdChbc2l6ZT0ibGciXSkgLnN1YnRpdGxlIHsKICAgICAgICBmb250LXNpemU6IDE1cHg7CiAgICAgICAgbWFyZ2luLXRvcDogNnB4OwogICAgICB9CgogICAgICAuY29udGVudCB7CiAgICAgICAgY29sb3I6ICR7cC5iZFRoZW1lKCJoc2woMjE1LjMgMjUlIDI2LjclKSIsImhzbCgyMTcuOSAxMC42JSA4NC45JSkiKX07CiAgICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgICAgIGxpbmUtaGVpZ2h0OiAxLjY7CiAgICAgIH0KCiAgICAgIC8qIENvbnRlbnQgc2l6ZSB2YXJpYXRpb25zICovCiAgICAgIDpob3N0KFtzaXplPSJzbSJdKSAuY29udGVudCB7CiAgICAgICAgZm9udC1zaXplOiAxM3B4OwogICAgICB9CgogICAgICA6aG9zdChbc2l6ZT0ibGciXSkgLmNvbnRlbnQgewogICAgICAgIGZvbnQtc2l6ZTogMTVweDsKICAgICAgfQoKICAgICAgLyogUmVtb3ZlIG1hcmdpbnMgZnJvbSBmaXJzdCBhbmQgbGFzdCBjaGlsZHJlbiAqLwogICAgICAuY29udGVudCA6OnNsb3R0ZWQoKjpmaXJzdC1jaGlsZCkgewogICAgICAgIG1hcmdpbi10b3A6IDA7CiAgICAgIH0KCiAgICAgIC5jb250ZW50IDo6c2xvdHRlZCgqOmxhc3QtY2hpbGQpIHsKICAgICAgICBtYXJnaW4tYm90dG9tOiAwOwogICAgICB9CgogICAgICAvKiBJbnRlcmFjdGl2ZSBzdGF0ZXMgZm9yIGRlZmF1bHQgdmFyaWFudCAqLwogICAgICA6aG9zdChbdmFyaWFudD0iZGVmYXVsdCJdOmhvdmVyKSB7CiAgICAgICAgYm9yZGVyLWNvbG9yOiAke3AuYmRUaGVtZSgiaHNsKDAgMCUgNzkuOCUpIiwiaHNsKDAgMCUgMjAuOSUpIil9OwogICAgICAgIGJveC1zaGFkb3c6IDAgNHB4IDZweCAtMXB4IGhzbCgwIDAlIDAlIC8gMC4xKSwgMCAycHggNHB4IC0ycHggaHNsKDAgMCUgMCUgLyAwLjEpOwogICAgICB9CgogICAgICAvKiBJbnRlcmFjdGl2ZSBzdGF0ZXMgZm9yIG91dGxpbmUgdmFyaWFudCAqLwogICAgICA6aG9zdChbdmFyaWFudD0ib3V0bGluZSJdOmhvdmVyKSB7CiAgICAgICAgYm9yZGVyLWNvbG9yOiAke3AuYmRUaGVtZSgiaHNsKDAgMCUgNzkuOCUpIiwiaHNsKDAgMCUgMjAuOSUpIil9OwogICAgICAgIGJhY2tncm91bmQ6ICR7cC5iZFRoZW1lKCJoc2woMCAwJSA5OCUpIiwiaHNsKDAgMCUgNy44JSkiKX07CiAgICAgIH0KCiAgICAgIC8qIEludGVyYWN0aXZlIHN0YXRlcyBmb3IgZ2hvc3QgdmFyaWFudCAqLwogICAgICA6aG9zdChbdmFyaWFudD0iZ2hvc3QiXTpob3ZlcikgewogICAgICAgIGJhY2tncm91bmQ6ICR7cC5iZFRoZW1lKCJoc2woMCAwJSA5NS4xJSkiLCJoc2woMCAwJSAxNC45JSkiKX07CiAgICAgIH0KCiAgICAgIC8qIEZvY3VzIHN0YXRlcyAqLwogICAgICA6aG9zdCg6Zm9jdXMtd2l0aGluKSB7CiAgICAgICAgb3V0bGluZTogbm9uZTsKICAgICAgICBib3JkZXItY29sb3I6ICR7cC5iZFRoZW1lKCJoc2woMjIyLjIgNDcuNCUgNTEuMiUpIiwiaHNsKDIxNy4yIDkxLjIlIDU5LjglKSIpfTsKICAgICAgICBib3gtc2hhZG93OiAwIDAgMCAzcHggJHtwLmJkVGhlbWUoImhzbCgyMjIuMiA0Ny40JSA1MS4yJSAvIDAuMSkiLCJoc2woMjE3LjIgOTEuMiUgNTkuOCUgLyAwLjEpIil9OwogICAgICB9CgogICAgICAvKiBOZXN0ZWQgcGFuZWxzIHNwYWNpbmcgKi8KICAgICAgOjpzbG90dGVkKGRlZXMtcGFuZWwpIHsKICAgICAgICBtYXJnaW4tdG9wOiAxNnB4OwogICAgICB9CgogICAgICA6OnNsb3R0ZWQoZGVlcy1wYW5lbDpmaXJzdC1jaGlsZCkgewogICAgICAgIG1hcmdpbi10b3A6IDA7CiAgICAgIH0KICAgIGBdO3JlbmRlcigpe3JldHVybiB3YAogICAgICA8ZGl2IGNsYXNzPSJoZWFkZXIiPgogICAgICAgICR7dGhpcy50aXRsZT93YDxoMyBjbGFzcz0idGl0bGUiPiR7dGhpcy50aXRsZX08L2gzPmA6IiJ9CiAgICAgICAgJHt0aGlzLnN1YnRpdGxlP3dgPHAgY2xhc3M9InN1YnRpdGxlIj4ke3RoaXMuc3VidGl0bGV9PC9wPmA6IiJ9CiAgICAgIDwvZGl2PgogICAgICA8ZGl2IGNsYXNzPSJjb250ZW50Ij4KICAgICAgICA8c2xvdD48L3Nsb3Q+CiAgICAgIDwvZGl2PgogICAgYH1hc3luYyBmaXJzdFVwZGF0ZWQoKXt0aGlzLnJ1bkFmdGVyUmVuZGVyJiZhd2FpdCB0aGlzLnJ1bkFmdGVyUmVuZGVyKHRoaXMpfWNvbnN0cnVjdG9yKCl7c3VwZXIoLi4uYXJndW1lbnRzKSxVaSh0aGlzLFMpfXN0YXRpY3tVaShpLGEpfX07cmV0dXJuIEY9aX0pKCl9KTt2YXIgUDl0LEFxLEk5dCxOOXQ9YigoKT0+e3VlKCk7eDEoKTttMigpO0FxPXQ9PkFycmF5LmZyb20oe2xlbmd0aDp0fSwoZSxhKT0+KHtpZDphLHVzYWdlOk1hdGgucm91bmQoTWF0aC5yYW5kb20oKSoxMDApLGxhYmVsOmAke2F9YH0pKSxJOXQ9KCk9PncoUDl0fHwoUDl0PXg0KFtgCiAgPGRlZXMtZGVtb3dyYXBwZXI+CiAgICA8c3R5bGU+CiAgICAgIGAsYAogICAgPC9zdHlsZT4KICAgIAogICAgPGRpdiBjbGFzcz0iZGVtby1jb250YWluZXIiPgogICAgICA8ZGVlcy1wYW5lbCAudGl0bGU9YCwiIC5zdWJ0aXRsZT0iLGA+CiAgICAgICAgPGRlZXMtc3RhdHNncmlkCiAgICAgICAgICAudGlsZXM9YCxgCiAgICAgICAgICAuZ3JpZEFjdGlvbnM9YCxgCiAgICAgICAgICAubWluVGlsZVdpZHRoPWAsYAogICAgICAgICAgLmdhcD1gLGAKICAgICAgICA+PC9kZWVzLXN0YXRzZ3JpZD4KICAgICAgICAKICAgICAgICA8ZGl2IGlkPSJhY3Rpb24tb3V0cHV0IiBzdHlsZT0ibWFyZ2luLXRvcDogMTZweDsgcGFkZGluZzogMTJweDsgYmFja2dyb3VuZDogYCwiOyBib3JkZXItcmFkaXVzOiA2cHg7IGZvbnQtc2l6ZTogMTRweDsgZm9udC1mYW1pbHk6IG1vbm9zcGFjZTsgY29sb3I6ICIsYDsiPgogICAgICAgICAgPGVtPkNsaWNrIG9uIHRpbGUgYWN0aW9ucyBvciBncmlkIGFjdGlvbnMgdG8gc2VlIHRoZSByZXN1bHQuLi48L2VtPgogICAgICAgIDwvZGl2PgogICAgICA8L2RlZXMtcGFuZWw+CiAgICAgIAogICAgICA8ZGVlcy1wYW5lbCAudGl0bGU9YCwiIC5zdWJ0aXRsZT0iLGA+CiAgICAgICAgPGRlZXMtc3RhdHNncmlkCiAgICAgICAgICAudGlsZXM9YCxgCiAgICAgICAgICAubWluVGlsZVdpZHRoPWAsYAogICAgICAgICAgLmdhcD1gLGAKICAgICAgICA+PC9kZWVzLXN0YXRzZ3JpZD4KICAgICAgICAKICAgICAgICA8ZGl2IGNsYXNzPSJ0aWxlLWNvbmZpZyI+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJjb25maWctc2VjdGlvbiI+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNvbmZpZy10aXRsZSI+Q29uZmlndXJhdGlvbiBPcHRpb25zPC9kaXY+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNvbmZpZy1kZXNjcmlwdGlvbiI+CiAgICAgICAgICAgICAgRWFjaCB0aWxlIHR5cGUgc3VwcG9ydHMgZGlmZmVyZW50IHByb3BlcnRpZXM6CiAgICAgICAgICAgICAgPHVsIHN0eWxlPSJtYXJnaW46IDhweCAwOyBwYWRkaW5nLWxlZnQ6IDIwcHg7Ij4KICAgICAgICAgICAgICAgIDxsaT48c3Ryb25nPk51bWJlcjo8L3N0cm9uZz4gdmFsdWUsIHVuaXQsIGNvbG9yLCBkZXNjcmlwdGlvbjwvbGk+CiAgICAgICAgICAgICAgICA8bGk+PHN0cm9uZz5HYXVnZTo8L3N0cm9uZz4gdmFsdWUsIHVuaXQsIGdhdWdlT3B0aW9ucyAobWluLCBtYXgsIHRocmVzaG9sZHMpPC9saT4KICAgICAgICAgICAgICAgIDxsaT48c3Ryb25nPlBlcmNlbnRhZ2U6PC9zdHJvbmc+IHZhbHVlICgwLTEwMCksIGNvbG9yLCBkZXNjcmlwdGlvbjwvbGk+CiAgICAgICAgICAgICAgICA8bGk+PHN0cm9uZz5UcmVuZDo8L3N0cm9uZz4gdmFsdWUsIHVuaXQsIHRyZW5kRGF0YSBhcnJheSwgZGVzY3JpcHRpb248L2xpPgogICAgICAgICAgICAgICAgPGxpPjxzdHJvbmc+VGV4dDo8L3N0cm9uZz4gdmFsdWUgKHN0cmluZyksIGNvbG9yLCBkZXNjcmlwdGlvbjwvbGk+CiAgICAgICAgICAgICAgPC91bD4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICA8L2Rpdj4KICAgICAgPC9kZWVzLXBhbmVsPgogICAgICAKICAgICAgPGRlZXMtcGFuZWwgLnRpdGxlPWAsIiAuc3VidGl0bGU9IixgPgogICAgICAgIDxoNCBzdHlsZT0ibWFyZ2luOiAwIDAgMTZweCAwOyBmb250LXNpemU6IDE2cHg7IGZvbnQtd2VpZ2h0OiA2MDA7Ij5Db21wYWN0IExheW91dCAoMTgwcHggdGlsZXMpPC9oND4KICAgICAgICA8ZGVlcy1zdGF0c2dyaWQKICAgICAgICAgIC50aWxlcz1gLGAKICAgICAgICAgIC5taW5UaWxlV2lkdGg9YCxgCiAgICAgICAgICAuZ2FwPWAsYAogICAgICAgID48L2RlZXMtc3RhdHNncmlkPgogICAgICAgIAogICAgICAgIDxoNCBzdHlsZT0ibWFyZ2luOiAyNHB4IDAgMTZweCAwOyBmb250LXNpemU6IDE2cHg7IGZvbnQtd2VpZ2h0OiA2MDA7Ij5TcGFjaW91cyBMYXlvdXQgKDMyMHB4IHRpbGVzKTwvaDQ+CiAgICAgICAgPGRlZXMtc3RhdHNncmlkCiAgICAgICAgICAudGlsZXM9YCxgCiAgICAgICAgICAubWluVGlsZVdpZHRoPWAsYAogICAgICAgICAgLmdhcD1gLGAKICAgICAgICA+PC9kZWVzLXN0YXRzZ3JpZD4KICAgICAgPC9kZWVzLXBhbmVsPgogICAgICAKICAgICAgPGRlZXMtcGFuZWwgLnRpdGxlPWAsIiAuc3VidGl0bGU9IixgPgogICAgICAgIDxkZWVzLXN0YXRzZ3JpZAogICAgICAgICAgaWQ9ImNwdS1jb3Jlcy1ncmlkIgogICAgICAgICAgLnRpbGVzPWAsYAogICAgICAgICAgLmdyaWRBY3Rpb25zPWAsYAogICAgICAgICAgLm1pblRpbGVXaWR0aD1gLGAKICAgICAgICAgIC5nYXA9YCxgCiAgICAgICAgPjwvZGVlcy1zdGF0c2dyaWQ+CiAgICAgIDwvZGVlcy1wYW5lbD4KCiAgICAgIDxkZWVzLXBhbmVsIC50aXRsZT1gLCIgLnN1YnRpdGxlPSIsYD4KICAgICAgICA8ZGVlcy1zdGF0c2dyaWQKICAgICAgICAgIGlkPSJpbnRlcmFjdGl2ZS1ncmlkIgogICAgICAgICAgLnRpbGVzPWAsYAogICAgICAgICAgLmdyaWRBY3Rpb25zPWAsYAogICAgICAgICAgLm1pblRpbGVXaWR0aD1gLGAKICAgICAgICAgIC5nYXA9YCxgCiAgICAgICAgPjwvZGVlcy1zdGF0c2dyaWQ+CiAgICAgIDwvZGVlcy1wYW5lbD4KICAgICAgCiAgICAgIDxkZWVzLXBhbmVsIC50aXRsZT1gLCIgLnN1YnRpdGxlPSIsYD4KICAgICAgICA8ZGl2IGNsYXNzPSJjb2RlLWJsb2NrIj5gLGA8L2Rpdj4KICAgICAgPC9kZWVzLXBhbmVsPgoKICAgICAgPGRlZXMtcGFuZWwgLnRpdGxlPWAsIiAuc3VidGl0bGU9IixgPgogICAgICAgIDxkZWVzLXN0YXRzZ3JpZAogICAgICAgICAgLnRpbGVzPWAsYAogICAgICAgICAgLm1pblRpbGVXaWR0aD1gLGAKICAgICAgICAgIC5nYXA9YCxgCiAgICAgICAgPjwvZGVlcy1zdGF0c2dyaWQ+CgogICAgICAgIDxkaXYgY2xhc3M9InRpbGUtY29uZmlnIj4KICAgICAgICAgIDxkaXYgY2xhc3M9ImNvbmZpZy1zZWN0aW9uIj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0iY29uZmlnLXRpdGxlIj5QYXJ0aXRpb24gVGlsZSBQcm9wZXJ0aWVzPC9kaXY+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNvbmZpZy1kZXNjcmlwdGlvbiI+CiAgICAgICAgICAgICAgPHVsIHN0eWxlPSJtYXJnaW46IDhweCAwOyBwYWRkaW5nLWxlZnQ6IDIwcHg7Ij4KICAgICAgICAgICAgICAgIDxsaT48c3Ryb25nPnBhcnRpdGlvbkRhdGEudXNlZDo8L3N0cm9uZz4gVXNlZCBzcGFjZSBpbiBieXRlcyAoYXV0by1mb3JtYXR0ZWQpPC9saT4KICAgICAgICAgICAgICAgIDxsaT48c3Ryb25nPnBhcnRpdGlvbkRhdGEudG90YWw6PC9zdHJvbmc+IFRvdGFsIGNhcGFjaXR5IGluIGJ5dGVzPC9saT4KICAgICAgICAgICAgICAgIDxsaT48c3Ryb25nPnBhcnRpdGlvbkRhdGEuZmlsZXN5c3RlbTo8L3N0cm9uZz4gRmlsZXN5c3RlbSB0eXBlIChleHQ0LCB4ZnMsIG50ZnMpPC9saT4KICAgICAgICAgICAgICAgIDxsaT48c3Ryb25nPnBhcnRpdGlvbkRhdGEubW91bnRQb2ludDo8L3N0cm9uZz4gTW91bnQgcG9pbnQgcGF0aCAob3B0aW9uYWwpPC9saT4KICAgICAgICAgICAgICA8L3VsPgogICAgICAgICAgICAgIENvbG9yIHRocmVzaG9sZHM6IE5vcm1hbCAoJmx0Ozc1JSksIFdhcm5pbmcgKDc1LTkwJSksIENyaXRpY2FsICgmZ3Q7OTAlKQogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIDwvZGl2PgogICAgICAgICAgPGRpdiBjbGFzcz0iY29uZmlnLXNlY3Rpb24iPgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJjb25maWctdGl0bGUiPkRpc2sgVGlsZSBQcm9wZXJ0aWVzPC9kaXY+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNvbmZpZy1kZXNjcmlwdGlvbiI+CiAgICAgICAgICAgICAgPHVsIHN0eWxlPSJtYXJnaW46IDhweCAwOyBwYWRkaW5nLWxlZnQ6IDIwcHg7Ij4KICAgICAgICAgICAgICAgIDxsaT48c3Ryb25nPmRpc2tEYXRhLmNhcGFjaXR5Ojwvc3Ryb25nPiBUb3RhbCBjYXBhY2l0eSBpbiBieXRlczwvbGk+CiAgICAgICAgICAgICAgICA8bGk+PHN0cm9uZz5kaXNrRGF0YS5tb2RlbDo8L3N0cm9uZz4gRGlzayBtb2RlbCBuYW1lIChvcHRpb25hbCk8L2xpPgogICAgICAgICAgICAgICAgPGxpPjxzdHJvbmc+ZGlza0RhdGEudHlwZTo8L3N0cm9uZz4gRGlzayB0eXBlOiAnc3NkJywgJ2hkZCcsIG9yICdudm1lJzwvbGk+CiAgICAgICAgICAgICAgICA8bGk+PHN0cm9uZz5kaXNrRGF0YS5pb3BzOjwvc3Ryb25nPiBSZWFkL3dyaXRlIElPUFMgKG9wdGlvbmFsKTwvbGk+CiAgICAgICAgICAgICAgICA8bGk+PHN0cm9uZz5kaXNrRGF0YS5oZWFsdGg6PC9zdHJvbmc+IEhlYWx0aCBwZXJjZW50YWdlIDAtMTAwIChvcHRpb25hbCk8L2xpPgogICAgICAgICAgICAgIDwvdWw+CiAgICAgICAgICAgICAgSGVhbHRoIHRocmVzaG9sZHM6IEdvb2QgKDcwLTEwMCUpLCBXYXJuaW5nICgzMC03MCUpLCBDcml0aWNhbCAoJmx0OzMwJSkKICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICA8L2Rpdj4KICAgICAgPC9kZWVzLXBhbmVsPgogICAgPC9kaXY+CgogICAgPHNjcmlwdD4KICAgICAgLy8gQ2xlYW51cCBsaXZlIHVwZGF0ZXMgb24gcGFnZSB1bmxvYWQKICAgICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ2JlZm9yZXVubG9hZCcsICgpID0+IHsKICAgICAgICBpZiAoKHdpbmRvdyBhcyBhbnkpLmxpdmVVcGRhdGVJbnRlcnZhbCkgewogICAgICAgICAgY2xlYXJJbnRlcnZhbCgod2luZG93IGFzIGFueSkubGl2ZVVwZGF0ZUludGVydmFsKTsKICAgICAgICB9CiAgICAgIH0pOwogICAgPFwvc2NyaXB0PgogIDwvZGVlcy1kZW1vd3JhcHBlcj4KICBgXSkpLFFgCiAgICAgICAgLmRlbW8tY29udGFpbmVyIHsKICAgICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICAgICAgZ2FwOiAyNHB4OwogICAgICAgICAgcGFkZGluZzogMjRweDsKICAgICAgICAgIG1heC13aWR0aDogMTQwMHB4OwogICAgICAgICAgbWFyZ2luOiAwIGF1dG87CiAgICAgICAgfQogICAgICAgIAogICAgICAgIGRlZXMtcGFuZWwgewogICAgICAgICAgbWFyZ2luLWJvdHRvbTogMjRweDsKICAgICAgICB9CiAgICAgICAgCiAgICAgICAgZGVlcy1wYW5lbDpsYXN0LWNoaWxkIHsKICAgICAgICAgIG1hcmdpbi1ib3R0b206IDA7CiAgICAgICAgfQogICAgICAgIAogICAgICAgIC50aWxlLWNvbmZpZyB7CiAgICAgICAgICBkaXNwbGF5OiBncmlkOwogICAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoYXV0by1maXQsIG1pbm1heCgzMDBweCwgMWZyKSk7CiAgICAgICAgICBnYXA6IDE2cHg7CiAgICAgICAgICBtYXJnaW4tdG9wOiAxNnB4OwogICAgICAgIH0KICAgICAgICAKICAgICAgICAuY29uZmlnLXNlY3Rpb24gewogICAgICAgICAgcGFkZGluZzogMTZweDsKICAgICAgICAgIGJhY2tncm91bmQ6ICR7cC5iZFRoZW1lKCJoc2woMjEwIDQwJSA5Ni4xJSkiLCJoc2woMjE1IDIwLjIlIDE2LjglKSIpfTsKICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDZweDsKICAgICAgICB9CiAgICAgICAgCiAgICAgICAgLmNvbmZpZy10aXRsZSB7CiAgICAgICAgICBmb250LXNpemU6IDE0cHg7CiAgICAgICAgICBmb250LXdlaWdodDogNjAwOwogICAgICAgICAgbWFyZ2luLWJvdHRvbTogOHB4OwogICAgICAgICAgY29sb3I6ICR7cC5iZFRoZW1lKCJoc2woMjE1LjMgMjUlIDguOCUpIiwiaHNsKDIxMCA0MCUgOTglKSIpfTsKICAgICAgICB9CiAgICAgICAgCiAgICAgICAgLmNvbmZpZy1kZXNjcmlwdGlvbiB7CiAgICAgICAgICBmb250LXNpemU6IDEzcHg7CiAgICAgICAgICBjb2xvcjogJHtwLmJkVGhlbWUoImhzbCgyMTUuNCAxNi4zJSA1Ni45JSkiLCJoc2woMjE1IDIwLjIlIDU1LjElKSIpfTsKICAgICAgICB9CiAgICAgICAgCiAgICAgICAgLmNvZGUtYmxvY2sgewogICAgICAgICAgYmFja2dyb3VuZDogJHtwLmJkVGhlbWUoImhzbCgyMTAgNDAlIDk2LjElKSIsImhzbCgyMTUgMjAuMiUgMTEuOCUpIil9OwogICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHtwLmJkVGhlbWUoImhzbCgyMTQuMyAzMS44JSA5MS40JSkiLCJoc2woMjE1IDIwLjIlIDE2LjglKSIpfTsKICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDZweDsKICAgICAgICAgIHBhZGRpbmc6IDE2cHg7CiAgICAgICAgICBmb250LWZhbWlseTogbW9ub3NwYWNlOwogICAgICAgICAgZm9udC1zaXplOiAxM3B4OwogICAgICAgICAgb3ZlcmZsb3cteDogYXV0bzsKICAgICAgICAgIHdoaXRlLXNwYWNlOiBwcmU7CiAgICAgICAgfQogICAgICBgLCIxLiBDb21wcmVoZW5zaXZlIERhc2hib2FyZCIsIkZ1bGwtZmVhdHVyZWQgc3RhdHMgZ3JpZCB3aXRoIHZhcmlvdXMgdGlsZSB0eXBlcywgYWN0aW9ucywgYW5kIEx1Y2lkZSBpY29ucyIsW3tpZDoicmV2ZW51ZSIsdGl0bGU6IlRvdGFsIFJldmVudWUiLHZhbHVlOjEyNTQyMCx1bml0OiIkIix0eXBlOiJudW1iZXIiLGljb246Imx1Y2lkZTpkb2xsYXItc2lnbiIsZGVzY3JpcHRpb246IisxMi41JSBmcm9tIGxhc3QgbW9udGgiLGFjdGlvbnM6W3tuYW1lOiJWaWV3IERldGFpbHMiLGljb25OYW1lOiJsdWNpZGU6dHJlbmRpbmctdXAiLGFjdGlvbjphc3luYygpPT57bGV0IHQ9ZG9jdW1lbnQucXVlcnlTZWxlY3RvcigiI2FjdGlvbi1vdXRwdXQiKTt0JiYodC50ZXh0Q29udGVudD0iVmlld2luZyByZXZlbnVlIGRldGFpbHM6ICQxMjUsNDIwICgrMTIuNSUpIil9fSx7bmFtZToiRXhwb3J0IERhdGEiLGljb25OYW1lOiJsdWNpZGU6ZG93bmxvYWQiLGFjdGlvbjphc3luYygpPT57bGV0IHQ9ZG9jdW1lbnQucXVlcnlTZWxlY3RvcigiI2FjdGlvbi1vdXRwdXQiKTt0JiYodC50ZXh0Q29udGVudD0iRXhwb3J0aW5nIHJldmVudWUgZGF0YSB0byBDU1YuLi4iKX19XX0se2lkOiJ1c2VycyIsdGl0bGU6IkFjdGl2ZSBVc2VycyIsdmFsdWU6Mzg0Nyx0eXBlOiJudW1iZXIiLGljb246Imx1Y2lkZTp1c2VycyIsZGVzY3JpcHRpb246IjMyNCBuZXcgdGhpcyB3ZWVrIixhY3Rpb25zOlt7bmFtZToiVmlldyBVc2VyIExpc3QiLGljb25OYW1lOiJsdWNpZGU6bGlzdCIsYWN0aW9uOmFzeW5jKCk9PntsZXQgdD1kb2N1bWVudC5xdWVyeVNlbGVjdG9yKCIjYWN0aW9uLW91dHB1dCIpO3QmJih0LnRleHRDb250ZW50PSJPcGVuaW5nIHVzZXIgbGlzdC4uLiIpfX1dfSx7aWQ6ImNwdSIsdGl0bGU6IkNQVSBVc2FnZSIsdmFsdWU6NzMsdW5pdDoiJSIsdHlwZToiZ2F1Z2UiLGljb246Imx1Y2lkZTpjcHUiLGdhdWdlT3B0aW9uczp7bWluOjAsbWF4OjEwMCx0aHJlc2hvbGRzOlt7dmFsdWU6MCxjb2xvcjoiaHNsKDE0Mi4xIDc2LjIlIDM2LjMlKSJ9LHt2YWx1ZTo2MCxjb2xvcjoiaHNsKDQ1LjQgOTMuNCUgNDcuNSUpIn0se3ZhbHVlOjgwLGNvbG9yOiJoc2woMCA4NC4yJSA2MC4yJSkifV19fSx7aWQ6InN0b3JhZ2UiLHRpdGxlOiJTdG9yYWdlIFVzZWQiLHZhbHVlOjY1LHR5cGU6InBlcmNlbnRhZ2UiLGljb246Imx1Y2lkZTpoYXJkLWRyaXZlIixkZXNjcmlwdGlvbjoiNjUwIEdCIG9mIDEgVEIifSx7aWQ6ImxhdGVuY3kiLHRpdGxlOiJSZXNwb25zZSBUaW1lIix2YWx1ZToxNDIsdW5pdDoibXMiLHR5cGU6InRyZW5kIixpY29uOiJsdWNpZGU6YWN0aXZpdHkiLHRyZW5kRGF0YTpbMTUwLDE0NSwxNDgsMTQyLDEzOCwxNDAsMTM1LDE0NSwxNDJdLGRlc2NyaXB0aW9uOiJQOTUifSx7aWQ6InVwdGltZSIsdGl0bGU6IlN5c3RlbSBVcHRpbWUiLHZhbHVlOiI5OS45NSUiLHR5cGU6InRleHQiLGljb246Imx1Y2lkZTpjaGVjay1jaXJjbGUiLGNvbG9yOiJoc2woMTQyLjEgNzYuMiUgMzYuMyUpIixkZXNjcmlwdGlvbjoiTGFzdCAzMCBkYXlzIn1dLFt7bmFtZToiUmVmcmVzaCIsaWNvbk5hbWU6Imx1Y2lkZTpyZWZyZXNoLWN3IixhY3Rpb246YXN5bmMoKT0+e2xldCB0PWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoImRlZXMtc3RhdHNncmlkIik7dCYmKHQuc3R5bGUub3BhY2l0eT0iMC41IixzZXRUaW1lb3V0KCgpPT57dC5zdHlsZS5vcGFjaXR5PSIxIn0sMzAwKSl9fSx7bmFtZToiRXhwb3J0IixpY29uTmFtZToibHVjaWRlOnNoYXJlIixhY3Rpb246YXN5bmMoKT0+e2xldCB0PWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoIiNhY3Rpb24tb3V0cHV0Iik7dCYmKHQudGV4dENvbnRlbnQ9IkV4cG9ydGluZyBkYXNoYm9hcmQgcmVwb3J0Li4uIil9fSx7bmFtZToiU2V0dGluZ3MiLGljb25OYW1lOiJsdWNpZGU6c2V0dGluZ3MiLGFjdGlvbjphc3luYygpPT57bGV0IHQ9ZG9jdW1lbnQucXVlcnlTZWxlY3RvcigiI2FjdGlvbi1vdXRwdXQiKTt0JiYodC50ZXh0Q29udGVudD0iT3BlbmluZyBkYXNoYm9hcmQgc2V0dGluZ3MuLi4iKX19XSwyNTAsMTYscC5iZFRoZW1lKCJoc2woMjEwIDQwJSA5Ni4xJSkiLCJoc2woMjE1IDIwLjIlIDE2LjglKSIpLHAuYmRUaGVtZSgiaHNsKDIxNS4zIDI1JSA4LjglKSIsImhzbCgyMTAgNDAlIDk4JSkiKSwiMi4gVGlsZSBUeXBlcyIsIkRpZmZlcmVudCB2aXN1YWxpemF0aW9uIHR5cGVzIGF2YWlsYWJsZSBpbiB0aGUgc3RhdHMgZ3JpZCIsW3tpZDoibnVtYmVyLWV4YW1wbGUiLHRpdGxlOiJOdW1iZXIgVGlsZSIsdmFsdWU6NDIxOTUsdW5pdDoiJCIsdHlwZToibnVtYmVyIixpY29uOiJsdWNpZGU6aGFzaCIsZGVzY3JpcHRpb246IlNpbXBsZSBudW1lcmljIGRpc3BsYXkifSx7aWQ6ImdhdWdlLWV4YW1wbGUiLHRpdGxlOiJHYXVnZSBUaWxlIix2YWx1ZTo2OCx1bml0OiIlIix0eXBlOiJnYXVnZSIsaWNvbjoibHVjaWRlOmdhdWdlIixnYXVnZU9wdGlvbnM6e21pbjowLG1heDoxMDAsdGhyZXNob2xkczpbe3ZhbHVlOjAsY29sb3I6ImhzbCgxNDIuMSA3Ni4yJSAzNi4zJSkifSx7dmFsdWU6NTAsY29sb3I6ImhzbCg0NS40IDkzLjQlIDQ3LjUlKSJ9LHt2YWx1ZTo4MCxjb2xvcjoiaHNsKDAgODQuMiUgNjAuMiUpIn1dfX0se2lkOiJwZXJjZW50YWdlLWV4YW1wbGUiLHRpdGxlOiJQZXJjZW50YWdlIFRpbGUiLHZhbHVlOjc4LHR5cGU6InBlcmNlbnRhZ2UiLGljb246Imx1Y2lkZTpwZXJjZW50IixkZXNjcmlwdGlvbjoiUHJvZ3Jlc3MgYmFyIHZpc3VhbGl6YXRpb24ifSx7aWQ6InRyZW5kLWV4YW1wbGUiLHRpdGxlOiJUcmVuZCBUaWxlIix2YWx1ZTo4OTIsdW5pdDoib3BzL3MiLHR5cGU6InRyZW5kIixpY29uOiJsdWNpZGU6dHJlbmRpbmctdXAiLHRyZW5kRGF0YTpbNzIwLDc1MCw3ODAsNzk1LDgxMCw4MzUsODUwLDg2NSw4ODAsODkyXSxkZXNjcmlwdGlvbjoiYXZnIn0se2lkOiJ0ZXh0LWV4YW1wbGUiLHRpdGxlOiJUZXh0IFRpbGUiLHZhbHVlOiJPcGVyYXRpb25hbCIsdHlwZToidGV4dCIsaWNvbjoibHVjaWRlOmluZm8iLGNvbG9yOiJoc2woMTQyLjEgNzYuMiUgMzYuMyUpIixkZXNjcmlwdGlvbjoiU3RhdHVzIGRpc3BsYXkifV0sMjgwLDE2LCIzLiBHcmlkIENvbmZpZ3VyYXRpb25zIiwiRGlmZmVyZW50IGxheW91dCBvcHRpb25zIGFuZCByZXNwb25zaXZlIGJlaGF2aW9yIixbe2lkOiIxIix0aXRsZToiT3JkZXJzIix2YWx1ZToxNTYsdHlwZToibnVtYmVyIixpY29uOiJsdWNpZGU6c2hvcHBpbmctY2FydCJ9LHtpZDoiMiIsdGl0bGU6IlJldmVudWUiLHZhbHVlOjg0MjAsdW5pdDoiJCIsdHlwZToibnVtYmVyIixpY29uOiJsdWNpZGU6ZG9sbGFyLXNpZ24ifSx7aWQ6IjMiLHRpdGxlOiJVc2VycyIsdmFsdWU6NDIzLHR5cGU6Im51bWJlciIsaWNvbjoibHVjaWRlOnVzZXJzIn0se2lkOiI0Iix0aXRsZToiR3Jvd3RoIix2YWx1ZToxMi41LHVuaXQ6IiUiLHR5cGU6Im51bWJlciIsaWNvbjoibHVjaWRlOnRyZW5kaW5nLXVwIixjb2xvcjoiaHNsKDE0Mi4xIDc2LjIlIDM2LjMlKSJ9XSwxODAsMTIsW3tpZDoic3BhY2lvdXMxIix0aXRsZToiTW9udGhseSBSZXZlbnVlIix2YWx1ZToxODQ1MDAsdW5pdDoiJCIsdHlwZToibnVtYmVyIixpY29uOiJsdWNpZGU6Y3JlZGl0LWNhcmQiLGRlc2NyaXB0aW9uOiJUb3RhbCByZXZlbnVlIHRoaXMgbW9udGgifSx7aWQ6InNwYWNpb3VzMiIsdGl0bGU6IkN1c3RvbWVyIFNhdGlzZmFjdGlvbiIsdmFsdWU6OTQsdHlwZToicGVyY2VudGFnZSIsaWNvbjoibHVjaWRlOnNtaWxlIixkZXNjcmlwdGlvbjoiQmFzZWQgb24gMSwyMzQgcmV2aWV3cyJ9LHtpZDoic3BhY2lvdXMzIix0aXRsZToiU2VydmVyIFJlc3BvbnNlIix2YWx1ZTo5OCx1bml0OiJtcyIsdHlwZToidHJlbmQiLGljb246Imx1Y2lkZTpzZXJ2ZXIiLHRyZW5kRGF0YTpbMTA1LDEwMiwxMDAsOTksOTgsOTgsOTcsOThdLGRlc2NyaXB0aW9uOiJhdmcgcmVzcG9uc2UgdGltZSJ9XSwzMjAsMjAsIjQuIENQVSBDb3JlcyBWaXN1YWxpemF0aW9uIiwiVmVydGljYWwgYmFyIHZpc3VhbGl6YXRpb24gZm9yIG11bHRpLWNvcmUgQ1BVIHVzYWdlIHdpdGggY29sdW1uIHNwYW5uaW5nIixbe2lkOiJjcHUtY29yZXMtOCIsdGl0bGU6IkNQVSBDb3JlcyAoOC1jb3JlKSIsdmFsdWU6MCx0eXBlOiJjcHVDb3JlcyIsaWNvbjoibHVjaWRlOmNwdSIsY29sdW1uU3BhbjoyLGNvcmVzRGF0YTpBcSg4KSxkZXNjcmlwdGlvbjoiSW50ZWwgaTcgLSA4IGNvcmVzIn0se2lkOiJtZW1vcnkiLHRpdGxlOiJNZW1vcnkgVXNhZ2UiLHZhbHVlOjY4LHR5cGU6InBlcmNlbnRhZ2UiLGljb246Imx1Y2lkZTpkYXRhYmFzZSIsZGVzY3JpcHRpb246IjEzLjYgR0Igb2YgMjAgR0IifSx7aWQ6ImNwdS1jb3Jlcy0xNiIsdGl0bGU6IkNQVSBDb3JlcyAoMTYtY29yZSkiLHZhbHVlOjAsdHlwZToiY3B1Q29yZXMiLGljb246Imx1Y2lkZTpjcHUiLGNvbHVtblNwYW46Mixjb3Jlc0RhdGE6QXEoMTYpLGRlc2NyaXB0aW9uOiJBTUQgUnl6ZW4gOSAtIDE2IGNvcmVzIn0se2lkOiJuZXR3b3JrIix0aXRsZToiTmV0d29yayBJL08iLHZhbHVlOjI0NSx1bml0OiJNQi9zIix0eXBlOiJ0cmVuZCIsaWNvbjoibHVjaWRlOm5ldHdvcmsiLHRyZW5kRGF0YTpbMjAwLDIyMCwyMzUsMjQwLDIzOCwyNDVdLGRlc2NyaXB0aW9uOiJ0aHJvdWdocHV0In0se2lkOiJjcHUtY29yZXMtMzIiLHRpdGxlOiJTZXJ2ZXIgQ1BVICgzMi1jb3JlKSIsdmFsdWU6MCx0eXBlOiJjcHVDb3JlcyIsaWNvbjoibHVjaWRlOnNlcnZlciIsY29sdW1uU3BhbjozLGNvcmVzRGF0YTpBcSgzMiksZGVzY3JpcHRpb246IkFNRCBFUFlDIC0gMzIgY29yZXMifSx7aWQ6ImRpc2siLHRpdGxlOiJEaXNrIFVzYWdlIix2YWx1ZTo0Mix0eXBlOiJwZXJjZW50YWdlIixpY29uOiJsdWNpZGU6aGFyZC1kcml2ZSIsZGVzY3JpcHRpb246IjQyMCBHQiBvZiAxIFRCIn1dLFt7bmFtZToiUmFuZG9taXplIixpY29uTmFtZToibHVjaWRlOnNodWZmbGUiLGFjdGlvbjphc3luYygpPT57bGV0IHQ9ZG9jdW1lbnQucXVlcnlTZWxlY3RvcigiI2NwdS1jb3Jlcy1ncmlkIik7aWYoIXQpcmV0dXJuO2xldCBlPXQudGlsZXMubWFwKGE9PmEudHlwZT09PSJjcHVDb3JlcyImJmEuY29yZXNEYXRhP3suLi5hLGNvcmVzRGF0YTphLmNvcmVzRGF0YS5tYXAoaT0+KHsuLi5pLHVzYWdlOk1hdGgucm91bmQoTWF0aC5yYW5kb20oKSoxMDApfSkpfTphKTt0LnRpbGVzPWV9fV0sMjUwLDE2LCI1LiBJbnRlcmFjdGl2ZSBGZWF0dXJlcyIsIlRpbGVzIHdpdGggYWN0aW9ucyBhbmQgcmVhbC10aW1lIHVwZGF0ZXMiLFt7aWQ6ImxpdmUtY3B1Iix0aXRsZToiTGl2ZSBDUFUiLHZhbHVlOjQ1LHVuaXQ6IiUiLHR5cGU6ImdhdWdlIixpY29uOiJsdWNpZGU6Y3B1IixnYXVnZU9wdGlvbnM6e21pbjowLG1heDoxMDAsdGhyZXNob2xkczpbe3ZhbHVlOjAsY29sb3I6ImhzbCgxNDIuMSA3Ni4yJSAzNi4zJSkifSx7dmFsdWU6NjAsY29sb3I6ImhzbCg0NS40IDkzLjQlIDQ3LjUlKSJ9LHt2YWx1ZTo4MCxjb2xvcjoiaHNsKDAgODQuMiUgNjAuMiUpIn1dfX0se2lkOiJsaXZlLXJlcXVlc3RzIix0aXRsZToiUmVxdWVzdHMvc2VjIix2YWx1ZTo4OTIsdHlwZToidHJlbmQiLGljb246Imx1Y2lkZTphY3Rpdml0eSIsdHJlbmREYXRhOls4NTAsODYwLDg3MCw4ODAsODg1LDg5MCw4OTJdfSx7aWQ6ImxpdmUtbWVtb3J5Iix0aXRsZToiTWVtb3J5IFVzYWdlIix2YWx1ZTo2Mix0eXBlOiJwZXJjZW50YWdlIixpY29uOiJsdWNpZGU6ZGF0YWJhc2UifSx7aWQ6ImNvdW50ZXIiLHRpdGxlOiJFdmVudCBDb3VudGVyIix2YWx1ZTowLHR5cGU6Im51bWJlciIsaWNvbjoibHVjaWRlOnphcCIsYWN0aW9uczpbe25hbWU6IkluY3JlbWVudCIsaWNvbk5hbWU6Imx1Y2lkZTpwbHVzIixhY3Rpb246YXN5bmMoKT0+e2xldCB0PWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoIiNpbnRlcmFjdGl2ZS1ncmlkIik7aWYoIXQpcmV0dXJuO2xldCBlPXQudGlsZXMuZmluZChhPT5hLmlkPT09ImNvdW50ZXIiKTtlLnZhbHVlPXR5cGVvZiBlLnZhbHVlPT0ibnVtYmVyIj9lLnZhbHVlKzE6MSx0LnRpbGVzPVsuLi50LnRpbGVzXX19LHtuYW1lOiJSZXNldCIsaWNvbk5hbWU6Imx1Y2lkZTpyb3RhdGUtY2N3IixhY3Rpb246YXN5bmMoKT0+e2xldCB0PWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoIiNpbnRlcmFjdGl2ZS1ncmlkIik7aWYoIXQpcmV0dXJuO2xldCBlPXQudGlsZXMuZmluZChhPT5hLmlkPT09ImNvdW50ZXIiKTtlLnZhbHVlPTAsdC50aWxlcz1bLi4udC50aWxlc119fV19XSxbe25hbWU6IlN0YXJ0IExpdmUgVXBkYXRlcyIsaWNvbk5hbWU6Imx1Y2lkZTpwbGF5IixhY3Rpb246YXN5bmMgZnVuY3Rpb24oKXt3aW5kb3cubGl2ZVVwZGF0ZUludGVydmFsPyhjbGVhckludGVydmFsKHdpbmRvdy5saXZlVXBkYXRlSW50ZXJ2YWwpLHdpbmRvdy5saXZlVXBkYXRlSW50ZXJ2YWw9bnVsbCx0aGlzLm5hbWU9IlN0YXJ0IExpdmUgVXBkYXRlcyIsdGhpcy5pY29uTmFtZT0ibHVjaWRlOnBsYXkiKTood2luZG93LmxpdmVVcGRhdGVJbnRlcnZhbD1zZXRJbnRlcnZhbCgoKT0+e2xldCB0PWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoIiNpbnRlcmFjdGl2ZS1ncmlkIik7aWYodCl7bGV0IGU9Wy4uLnQudGlsZXNdLGE9ZS5maW5kKG49Pm4uaWQ9PT0ibGl2ZS1jcHUiKTthLnZhbHVlPU1hdGgubWF4KDAsTWF0aC5taW4oMTAwLGEudmFsdWUrKE1hdGgucmFuZG9tKCkqMjAtMTApKSk7bGV0IGk9ZS5maW5kKG49Pm4uaWQ9PT0ibGl2ZS1yZXF1ZXN0cyIpLHI9aS52YWx1ZStNYXRoLnJvdW5kKE1hdGgucmFuZG9tKCkqNTAtMjUpO2kudmFsdWU9TWF0aC5tYXgoODAwLHIpLGkudHJlbmREYXRhPVsuLi5pLnRyZW5kRGF0YS5zbGljZSgxKSxpLnZhbHVlXTtsZXQgcz1lLmZpbmQobj0+bi5pZD09PSJsaXZlLW1lbW9yeSIpO3MudmFsdWU9TWF0aC5tYXgoMCxNYXRoLm1pbigxMDAscy52YWx1ZSsoTWF0aC5yYW5kb20oKSoxMC01KSkpLHQudGlsZXM9ZX19LDFlMyksdGhpcy5uYW1lPSJTdG9wIExpdmUgVXBkYXRlcyIsdGhpcy5pY29uTmFtZT0ibHVjaWRlOnBhdXNlIil9fV0sMjUwLDE2LCI2LiBDb2RlIEV4YW1wbGUiLCJIb3cgdG8gaW1wbGVtZW50IGEgc3RhdHMgZ3JpZCB3aXRoIFR5cGVTY3JpcHQiLGBjb25zdCB0aWxlczogSVN0YXRzVGlsZVtdID0gWwogIHsKICAgIGlkOiAncmV2ZW51ZScsCiAgICB0aXRsZTogJ1RvdGFsIFJldmVudWUnLAogICAgdmFsdWU6IDEyNTQyMCwKICAgIHVuaXQ6ICckJywKICAgIHR5cGU6ICdudW1iZXInLAogICAgaWNvbjogJ2x1Y2lkZTpkb2xsYXItc2lnbicsCiAgICBkZXNjcmlwdGlvbjogJysxMi41JSBmcm9tIGxhc3QgbW9udGgnLAogICAgYWN0aW9uczogWwogICAgICB7CiAgICAgICAgbmFtZTogJ1ZpZXcgRGV0YWlscycsCiAgICAgICAgaWNvbk5hbWU6ICdsdWNpZGU6dHJlbmRpbmctdXAnLAogICAgICAgIGFjdGlvbjogYXN5bmMgKCkgPT4gewogICAgICAgICAgY29uc29sZS5sb2coJ1ZpZXcgcmV2ZW51ZSBkZXRhaWxzJyk7CiAgICAgICAgfQogICAgICB9CiAgICBdCiAgfSwKICB7CiAgICBpZDogJ2NwdScsCiAgICB0aXRsZTogJ0NQVSBVc2FnZScsCiAgICB2YWx1ZTogNzMsCiAgICB1bml0OiAnJScsCiAgICB0eXBlOiAnZ2F1Z2UnLAogICAgaWNvbjogJ2x1Y2lkZTpjcHUnLAogICAgZ2F1Z2VPcHRpb25zOiB7CiAgICAgIG1pbjogMCwKICAgICAgbWF4OiAxMDAsCiAgICAgIHRocmVzaG9sZHM6IFsKICAgICAgICB7IHZhbHVlOiAwLCBjb2xvcjogJ2hzbCgxNDIuMSA3Ni4yJSAzNi4zJSknIH0sCiAgICAgICAgeyB2YWx1ZTogNjAsIGNvbG9yOiAnaHNsKDQ1LjQgOTMuNCUgNDcuNSUpJyB9LAogICAgICAgIHsgdmFsdWU6IDgwLCBjb2xvcjogJ2hzbCgwIDg0LjIlIDYwLjIlKScgfQogICAgICBdCiAgICB9CiAgfQpdOwoKLy8gUmVuZGVyIHRoZSBzdGF0cyBncmlkCmh0bWxcYAogIDxkZWVzLXN0YXRzZ3JpZAogICAgLnRpbGVzPVwke3RpbGVzfQogICAgLm1pblRpbGVXaWR0aD1cJHsyNTB9CiAgICAuZ2FwPVwkezE2fQogICAgLmdyaWRBY3Rpb25zPVwke1sKICAgICAgewogICAgICAgIG5hbWU6ICdSZWZyZXNoJywKICAgICAgICBpY29uTmFtZTogJ2x1Y2lkZTpyZWZyZXNoLWN3JywKICAgICAgICBhY3Rpb246IGFzeW5jICgpID0+IGNvbnNvbGUubG9nKCdSZWZyZXNoJykKICAgICAgfQogICAgXX0KICA+PC9kZWVzLXN0YXRzZ3JpZD4KXGA7YCwiNy4gRGlzayAmIFN0b3JhZ2UgVGlsZXMiLCJQYXJ0aXRpb24gYW5kIHBoeXNpY2FsIGRpc2sgdmlzdWFsaXphdGlvbiB0aWxlcyIsW3tpZDoicm9vdC1wYXJ0aXRpb24iLHRpdGxlOiJSb290IFBhcnRpdGlvbiIsdmFsdWU6MCx0eXBlOiJwYXJ0aXRpb24iLGljb246Imx1Y2lkZTpmb2xkZXItcm9vdCIscGFydGl0aW9uRGF0YTp7dXNlZDo2OTgzNDE0MjUxNTIsdG90YWw6MTA3Mzc0MTgyNGUzLGZpbGVzeXN0ZW06ImV4dDQiLG1vdW50UG9pbnQ6Ii8ifX0se2lkOiJob21lLXBhcnRpdGlvbiIsdGl0bGU6IkhvbWUgUGFydGl0aW9uIix2YWx1ZTowLHR5cGU6InBhcnRpdGlvbiIsaWNvbjoibHVjaWRlOmhvbWUiLHBhcnRpdGlvbkRhdGE6e3VzZWQ6MjE0NzQ4MzY0ODAwLHRvdGFsOjUzNjg3MDkxMmUzLGZpbGVzeXN0ZW06ImV4dDQiLG1vdW50UG9pbnQ6Ii9ob21lIn19LHtpZDoiZGF0YS1wYXJ0aXRpb24iLHRpdGxlOiJEYXRhIFBhcnRpdGlvbiIsdmFsdWU6MCx0eXBlOiJwYXJ0aXRpb24iLGljb246Imx1Y2lkZTpkYXRhYmFzZSIscGFydGl0aW9uRGF0YTp7dXNlZDoxOTMyNzM1MjgzMjAwLHRvdGFsOjIxNDc0ODM2NDhlMyxmaWxlc3lzdGVtOiJ4ZnMiLG1vdW50UG9pbnQ6Ii9kYXRhIn19LHtpZDoibnZtZS1zc2QiLHRpdGxlOiJQcmltYXJ5IE5WTWUiLHZhbHVlOjAsdHlwZToiZGlzayIsaWNvbjoibHVjaWRlOmhhcmQtZHJpdmUiLGNvbHVtblNwYW46MixkaXNrRGF0YTp7Y2FwYWNpdHk6MmUxMixtb2RlbDoiU2Ftc3VuZyA5OTAgUHJvIix0eXBlOiJudm1lIixpb3BzOntyZWFkOjc0NTAsd3JpdGU6NjkwMH0saGVhbHRoOjk4fX0se2lkOiJzYXRhLXNzZCIsdGl0bGU6IlNlY29uZGFyeSBTU0QiLHZhbHVlOjAsdHlwZToiZGlzayIsaWNvbjoibHVjaWRlOmhhcmQtZHJpdmUiLGRpc2tEYXRhOntjYXBhY2l0eToxZTEyLG1vZGVsOiJDcnVjaWFsIE1YNTAwIix0eXBlOiJzc2QiLGlvcHM6e3JlYWQ6NTYwLHdyaXRlOjUxMH0saGVhbHRoOjg1fX0se2lkOiJoZGQtc3RvcmFnZSIsdGl0bGU6IkJhY2t1cCBIREQiLHZhbHVlOjAsdHlwZToiZGlzayIsaWNvbjoibHVjaWRlOmFyY2hpdmUiLGRpc2tEYXRhOntjYXBhY2l0eTo4ZTEyLG1vZGVsOiJTZWFnYXRlIElyb25Xb2xmIix0eXBlOiJoZGQiLGlvcHM6e3JlYWQ6MjEwLHdyaXRlOjE5NX0saGVhbHRoOjQyfX1dLDI4MCwxNil9KTt2YXIgajAsJGEsWGUsXzE9YigoKT0+e3VlKCk7VHQoKTtqMD1mdW5jdGlvbih0LGUsYSxpLHIscyl7ZnVuY3Rpb24gbih4KXtpZih4IT09dm9pZCAwJiZ0eXBlb2YgeCE9ImZ1bmN0aW9uIil0aHJvdyBuZXcgVHlwZUVycm9yKCJGdW5jdGlvbiBleHBlY3RlZCIpO3JldHVybiB4fWZvcih2YXIgbz1pLmtpbmQsZD1vPT09ImdldHRlciI/ImdldCI6bz09PSJzZXR0ZXIiPyJzZXQiOiJ2YWx1ZSIsYz0hZSYmdD9pLnN0YXRpYz90OnQucHJvdG90eXBlOm51bGwsaD1lfHwoYz9PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGMsaS5uYW1lKTp7fSksbCxmPSExLGc9YS5sZW5ndGgtMTtnPj0wO2ctLSl7dmFyIHk9e307Zm9yKHZhciB2IGluIGkpeVt2XT12PT09ImFjY2VzcyI/e306aVt2XTtmb3IodmFyIHYgaW4gaS5hY2Nlc3MpeS5hY2Nlc3Nbdl09aS5hY2Nlc3Nbdl07eS5hZGRJbml0aWFsaXplcj1mdW5jdGlvbih4KXtpZihmKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBhZGQgaW5pdGlhbGl6ZXJzIGFmdGVyIGRlY29yYXRpb24gaGFzIGNvbXBsZXRlZCIpO3MucHVzaChuKHh8fG51bGwpKX07dmFyIG09KDAsYVtnXSkobz09PSJhY2Nlc3NvciI/e2dldDpoLmdldCxzZXQ6aC5zZXR9OmhbZF0seSk7aWYobz09PSJhY2Nlc3NvciIpe2lmKG09PT12b2lkIDApY29udGludWU7aWYobT09PW51bGx8fHR5cGVvZiBtIT0ib2JqZWN0Iil0aHJvdyBuZXcgVHlwZUVycm9yKCJPYmplY3QgZXhwZWN0ZWQiKTsobD1uKG0uZ2V0KSkmJihoLmdldD1sKSwobD1uKG0uc2V0KSkmJihoLnNldD1sKSwobD1uKG0uaW5pdCkpJiZyLnVuc2hpZnQobCl9ZWxzZShsPW4obSkpJiYobz09PSJmaWVsZCI/ci51bnNoaWZ0KGwpOmhbZF09bCl9YyYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGMsaS5uYW1lLGgpLGY9ITB9LCRhPWZ1bmN0aW9uKHQsZSxhKXtmb3IodmFyIGk9YXJndW1lbnRzLmxlbmd0aD4yLHI9MDtyPGUubGVuZ3RoO3IrKylhPWk/ZVtyXS5jYWxsKHQsYSk6ZVtyXS5jYWxsKHQpO3JldHVybiBpP2E6dm9pZCAwfSxYZT0oKCk9PntsZXQgdD14ZSxlLGE9W10saT1bXSxyLHM9W10sbj1bXSxvLGQ9W10sYz1bXSxoLGw9W10sZj1bXSxnLHk9W10sdj1bXSxtLHg9W10sTT1bXSxTLEY9W10sXz1bXTtyZXR1cm4gY2xhc3MgZXh0ZW5kcyB0e3N0YXRpY3tsZXQgTj10eXBlb2YgU3ltYm9sPT0iZnVuY3Rpb24iJiZTeW1ib2wubWV0YWRhdGE/T2JqZWN0LmNyZWF0ZSh0W1N5bWJvbC5tZXRhZGF0YV0/P251bGwpOnZvaWQgMDtlPVtJKHt0eXBlOlN0cmluZ30pXSxyPVtJKHt0eXBlOlN0cmluZ30pXSxvPVtJKHt0eXBlOlN0cmluZ30pXSxoPVtJKHt0eXBlOlN0cmluZ30pXSxnPVtJKHt0eXBlOkJvb2xlYW59KV0sbT1bSSh7dHlwZTpCb29sZWFufSldLFM9W0koe3R5cGU6U3RyaW5nfSldLGowKHRoaXMsbnVsbCxlLHtraW5kOiJhY2Nlc3NvciIsbmFtZToibGF5b3V0TW9kZSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6TD0+ImxheW91dE1vZGUiaW4gTCxnZXQ6TD0+TC5sYXlvdXRNb2RlLHNldDooTCxBKT0+e0wubGF5b3V0TW9kZT1BfX0sbWV0YWRhdGE6Tn0sYSxpKSxqMCh0aGlzLG51bGwscix7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImxhYmVsUG9zaXRpb24iLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOkw9PiJsYWJlbFBvc2l0aW9uImluIEwsZ2V0Okw9PkwubGFiZWxQb3NpdGlvbixzZXQ6KEwsQSk9PntMLmxhYmVsUG9zaXRpb249QX19LG1ldGFkYXRhOk59LHMsbiksajAodGhpcyxudWxsLG8se2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJrZXkiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOkw9PiJrZXkiaW4gTCxnZXQ6TD0+TC5rZXksc2V0OihMLEEpPT57TC5rZXk9QX19LG1ldGFkYXRhOk59LGQsYyksajAodGhpcyxudWxsLGgse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJsYWJlbCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6TD0+ImxhYmVsImluIEwsZ2V0Okw9PkwubGFiZWwsc2V0OihMLEEpPT57TC5sYWJlbD1BfX0sbWV0YWRhdGE6Tn0sbCxmKSxqMCh0aGlzLG51bGwsZyx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InJlcXVpcmVkIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpMPT4icmVxdWlyZWQiaW4gTCxnZXQ6TD0+TC5yZXF1aXJlZCxzZXQ6KEwsQSk9PntMLnJlcXVpcmVkPUF9fSxtZXRhZGF0YTpOfSx5LHYpLGowKHRoaXMsbnVsbCxtLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiZGlzYWJsZWQiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOkw9PiJkaXNhYmxlZCJpbiBMLGdldDpMPT5MLmRpc2FibGVkLHNldDooTCxBKT0+e0wuZGlzYWJsZWQ9QX19LG1ldGFkYXRhOk59LHgsTSksajAodGhpcyxudWxsLFMse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJkZXNjcmlwdGlvbiIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6TD0+ImRlc2NyaXB0aW9uImluIEwsZ2V0Okw9PkwuZGVzY3JpcHRpb24sc2V0OihMLEEpPT57TC5kZXNjcmlwdGlvbj1BfX0sbWV0YWRhdGE6Tn0sRixfKSxOJiZPYmplY3QuZGVmaW5lUHJvcGVydHkodGhpcyxTeW1ib2wubWV0YWRhdGEse2VudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwLHZhbHVlOk59KX0jZT0kYSh0aGlzLGEsImF1dG8iKTtnZXQgbGF5b3V0TW9kZSgpe3JldHVybiB0aGlzLiNlfXNldCBsYXlvdXRNb2RlKE4pe3RoaXMuI2U9Tn0jdD0oJGEodGhpcyxpKSwkYSh0aGlzLHMsInRvcCIpKTtnZXQgbGFiZWxQb3NpdGlvbigpe3JldHVybiB0aGlzLiN0fXNldCBsYWJlbFBvc2l0aW9uKE4pe3RoaXMuI3Q9Tn0jYT0oJGEodGhpcyxuKSwkYSh0aGlzLGQsdm9pZCAwKSk7Z2V0IGtleSgpe3JldHVybiB0aGlzLiNhfXNldCBrZXkoTil7dGhpcy4jYT1OfSNpPSgkYSh0aGlzLGMpLCRhKHRoaXMsbCx2b2lkIDApKTtnZXQgbGFiZWwoKXtyZXR1cm4gdGhpcy4jaX1zZXQgbGFiZWwoTil7dGhpcy4jaT1OfSNyPSgkYSh0aGlzLGYpLCRhKHRoaXMseSwhMSkpO2dldCByZXF1aXJlZCgpe3JldHVybiB0aGlzLiNyfXNldCByZXF1aXJlZChOKXt0aGlzLiNyPU59I3M9KCRhKHRoaXMsdiksJGEodGhpcyx4LCExKSk7Z2V0IGRpc2FibGVkKCl7cmV0dXJuIHRoaXMuI3N9c2V0IGRpc2FibGVkKE4pe3RoaXMuI3M9Tn0jbj0oJGEodGhpcyxNKSwkYSh0aGlzLEYsdm9pZCAwKSk7Z2V0IGRlc2NyaXB0aW9uKCl7cmV0dXJuIHRoaXMuI259c2V0IGRlc2NyaXB0aW9uKE4pe3RoaXMuI249Tn1zdGF0aWMgZ2V0IGJhc2VTdHlsZXMoKXtyZXR1cm5bUWAKICAgICAgICAvKiBDU1MgVmFyaWFibGVzIGZvciBjb25zaXN0ZW50IHNwYWNpbmcgKi8KICAgICAgICA6aG9zdCB7CiAgICAgICAgICAtLWRlZXMtaW5wdXQtc3BhY2luZy11bml0OiA4cHg7CiAgICAgICAgICAtLWRlZXMtaW5wdXQtbGFiZWwtZ2FwOiB2YXIoLS1kZWVzLWlucHV0LXNwYWNpbmctdW5pdCk7IC8qIDhweCAqLwogICAgICAgIH0KCiAgICAgICAgLyogRGVmYXVsdCBibG9jayBkaXNwbGF5IHdpdGggbm8gbWFyZ2lucyAtIHNwYWNpbmcgaXMgY29udGFpbmVyLWRyaXZlbiAqLwogICAgICAgIDpob3N0IHsKICAgICAgICAgIGRpc3BsYXk6IGJsb2NrOwogICAgICAgICAgbWFyZ2luOiAwOwogICAgICAgIH0KCiAgICAgICAgLyogSG9yaXpvbnRhbCBsYXlvdXQgbW9kZSAtIGFjdGl2YXRlZCBieSBhdHRyaWJ1dGUgKi8KICAgICAgICA6aG9zdChbbGF5b3V0LW1vZGU9Imhvcml6b250YWwiXSkgewogICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrOwogICAgICAgIH0KCiAgICAgICAgLyogTGFiZWwgcG9zaXRpb24gdmFyaWF0aW9ucyAqLwogICAgICAgIDpob3N0KFtsYWJlbC1wb3NpdGlvbj0ibGVmdCJdKSAuaW5wdXQtd3JhcHBlciB7CiAgICAgICAgICBkaXNwbGF5OiBncmlkOwogICAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiBhdXRvIDFmcjsKICAgICAgICAgIGdhcDogdmFyKC0tZGVlcy1pbnB1dC1sYWJlbC1nYXApOwogICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICB9CgogICAgICAgIDpob3N0KFtsYWJlbC1wb3NpdGlvbj0icmlnaHQiXSkgLmlucHV0LXdyYXBwZXIgewogICAgICAgICAgZGlzcGxheTogZ3JpZDsKICAgICAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogMWZyIGF1dG87CiAgICAgICAgICBnYXA6IHZhcigtLWRlZXMtaW5wdXQtbGFiZWwtZ2FwKTsKICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgfQoKICAgICAgICA6aG9zdChbbGFiZWwtcG9zaXRpb249InRvcCJdKSAuaW5wdXQtd3JhcHBlciB7CiAgICAgICAgICBkaXNwbGF5OiBibG9jazsKICAgICAgICB9CgogICAgICAgIDpob3N0KFtsYWJlbC1wb3NpdGlvbj0ibm9uZSJdKSBkZWVzLWxhYmVsIHsKICAgICAgICAgIGRpc3BsYXk6IG5vbmU7CiAgICAgICAgfQogICAgICBgXX1jaGFuZ2VTdWJqZWN0PSgkYSh0aGlzLF8pLG5ldyBNdC5zbWFydHJ4LnJ4anMuU3ViamVjdCk7YXN5bmMgY29ubmVjdGVkQ2FsbGJhY2soKXthd2FpdCBzdXBlci5jb25uZWN0ZWRDYWxsYmFjaygpLHRoaXMuZGV0ZWN0TGF5b3V0TW9kZSgpfWRldGVjdExheW91dE1vZGUoKXtpZih0aGlzLmxheW91dE1vZGUhPT0iYXV0byIpe3RoaXMuc2V0QXR0cmlidXRlKCJsYXlvdXQtbW9kZSIsdGhpcy5sYXlvdXRNb2RlKTtyZXR1cm59bGV0IE49dGhpcy5jbG9zZXN0KCJkZWVzLWZvcm0iKTtOJiZOLmhhc0F0dHJpYnV0ZSgiaG9yaXpvbnRhbC1sYXlvdXQiKT90aGlzLnNldEF0dHJpYnV0ZSgibGF5b3V0LW1vZGUiLCJob3Jpem9udGFsIik6dGhpcy5zZXRBdHRyaWJ1dGUoImxheW91dC1tb2RlIiwidmVydGljYWwiKX11cGRhdGVkKE4pe3N1cGVyLnVwZGF0ZWQoTiksTi5oYXMoImxheW91dE1vZGUiKSYmdGhpcy5kZXRlY3RMYXlvdXRNb2RlKCksTi5oYXMoImxhYmVsUG9zaXRpb24iKSYmdGhpcy5zZXRBdHRyaWJ1dGUoImxhYmVsLXBvc2l0aW9uIix0aGlzLmxhYmVsUG9zaXRpb24pfWFzeW5jIGZyZWV6ZSgpe3RoaXMuZGlzYWJsZWQ9ITB9YXN5bmMgdW5mcmVlemUoKXt0aGlzLmRpc2FibGVkPSExfX19KSgpfSk7dmFyIEY5dCxPOXQ9YigoKT0+e3VlKCk7eDEoKTttMigpO25vKCk7Rjl0PSgpPT53YAogIDxkZWVzLWRlbW93cmFwcGVyIC5ydW5BZnRlclJlbmRlcj0ke2FzeW5jIHQ9PntsZXQgZT10LnF1ZXJ5U2VsZWN0b3JBbGwoImRlZXMtaW5wdXQtY2hlY2tib3giKSxhPXQucXVlcnlTZWxlY3RvcigiI3NlbGVjdC1hbGwtYnRuIiksaT10LnF1ZXJ5U2VsZWN0b3IoIiNjbGVhci1hbGwtYnRuIik7YSYmaSYmKGEuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLCgpPT57ZS5mb3JFYWNoKHI9Pnshci5kaXNhYmxlZCYmci5rZXk/LnN0YXJ0c1dpdGgoImZlYXR1cmUiKSYmKHIudmFsdWU9ITApfSl9KSxpLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIiwoKT0+e2UuZm9yRWFjaChyPT57IXIuZGlzYWJsZWQmJnIua2V5Py5zdGFydHNXaXRoKCJmZWF0dXJlIikmJihyLnZhbHVlPSExKX0pfSkpfX0+CiAgICA8c3R5bGU+CiAgICAgICR7UWAKICAgICAgICAuZGVtby1jb250YWluZXIgewogICAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgICAgICBnYXA6IDI0cHg7CiAgICAgICAgICBwYWRkaW5nOiAyNHB4OwogICAgICAgICAgbWF4LXdpZHRoOiAxMjAwcHg7CiAgICAgICAgICBtYXJnaW46IDAgYXV0bzsKICAgICAgICB9CiAgICAgICAgCiAgICAgICAgZGVlcy1wYW5lbCB7CiAgICAgICAgICBtYXJnaW4tYm90dG9tOiAyNHB4OwogICAgICAgIH0KICAgICAgICAKICAgICAgICBkZWVzLXBhbmVsOmxhc3QtY2hpbGQgewogICAgICAgICAgbWFyZ2luLWJvdHRvbTogMDsKICAgICAgICB9CiAgICAgICAgCiAgICAgICAgLmNoZWNrYm94LWdyb3VwIHsKICAgICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICAgICAgZ2FwOiAxMnB4OwogICAgICAgIH0KICAgICAgICAKICAgICAgICAuaG9yaXpvbnRhbC1jaGVja2JveGVzIHsKICAgICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgICBnYXA6IDI0cHg7CiAgICAgICAgICBmbGV4LXdyYXA6IHdyYXA7CiAgICAgICAgfQogICAgICAgIAogICAgICAgIC5pbnRlcmFjdGl2ZS1zZWN0aW9uIHsKICAgICAgICAgIGJhY2tncm91bmQ6ICR7cC5iZFRoZW1lKCJoc2woMjEwIDQwJSA5Ni4xJSkiLCJoc2woMjE1IDIwLjIlIDE2LjglKSIpfTsKICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDhweDsKICAgICAgICAgIHBhZGRpbmc6IDE2cHg7CiAgICAgICAgICBtYXJnaW4tdG9wOiAxNnB4OwogICAgICAgIH0KICAgICAgICAKICAgICAgICAub3V0cHV0LXRleHQgewogICAgICAgICAgZm9udC1mYW1pbHk6IG1vbm9zcGFjZTsKICAgICAgICAgIGZvbnQtc2l6ZTogMTNweDsKICAgICAgICAgIGNvbG9yOiAke3AuYmRUaGVtZSgiaHNsKDIxNS4zIDI1JSAyNi43JSkiLCJoc2woMjEwIDQwJSA4MCUpIil9OwogICAgICAgICAgcGFkZGluZzogOHB4OwogICAgICAgICAgYmFja2dyb3VuZDogJHtwLmJkVGhlbWUoImhzbCgyMTAgNDAlIDk4JSkiLCJoc2woMjE1IDIwLjIlIDExLjglKSIpfTsKICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDRweDsKICAgICAgICAgIG1pbi1oZWlnaHQ6IDI0cHg7CiAgICAgICAgfQogICAgICAgIAogICAgICAgIC5mb3JtLXNlY3Rpb24gewogICAgICAgICAgYmFja2dyb3VuZDogJHtwLmJkVGhlbWUoImhzbCgwIDAlIDk3JSkiLCJoc2woMCAwJSA3JSkiKX07CiAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAke3AuYmRUaGVtZSgiaHNsKDAgMCUgODkuOCUpIiwiaHNsKDAgMCUgMTQuOSUpIil9OwogICAgICAgICAgYm9yZGVyLXJhZGl1czogOHB4OwogICAgICAgICAgcGFkZGluZzogMjBweDsKICAgICAgICAgIG1hcmdpbi10b3A6IDE2cHg7CiAgICAgICAgfQogICAgICAgIAogICAgICAgIC5idXR0b24tZ3JvdXAgewogICAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICAgIGdhcDogOHB4OwogICAgICAgICAgbWFyZ2luLWJvdHRvbTogMTZweDsKICAgICAgICB9CiAgICAgICAgCiAgICAgICAgLmZlYXR1cmUtbGlzdCB7CiAgICAgICAgICBiYWNrZ3JvdW5kOiAke3AuYmRUaGVtZSgiaHNsKDIxMCA0MCUgOTYuMSUpIiwiaHNsKDIxNSAyMC4yJSAxMS44JSkiKX07CiAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAke3AuYmRUaGVtZSgiaHNsKDIxNC4zIDMxLjglIDkxLjQlKSIsImhzbCgyMTUgMjAuMiUgMTYuOCUpIil9OwogICAgICAgICAgYm9yZGVyLXJhZGl1czogNnB4OwogICAgICAgICAgcGFkZGluZzogMTZweDsKICAgICAgICB9CiAgICAgICAgCiAgICAgICAgLnNlY3Rpb24tdGl0bGUgewogICAgICAgICAgZm9udC1zaXplOiAxNnB4OwogICAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDsKICAgICAgICAgIG1hcmdpbi1ib3R0b206IDE2cHg7CiAgICAgICAgICBjb2xvcjogJHtwLmJkVGhlbWUoImhzbCgyMTUuMyAyNSUgOC44JSkiLCJoc2woMjEwIDQwJSA5OCUpIil9OwogICAgICAgIH0KICAgICAgYH0KICAgIDwvc3R5bGU+CiAgICAKICAgIDxkaXYgY2xhc3M9ImRlbW8tY29udGFpbmVyIj4KICAgICAgPGRlZXMtcGFuZWwgLnRpdGxlPSR7IkJhc2ljIENoZWNrYm94ZXMifSAuc3VidGl0bGU9JHsiU2ltcGxlIGNoZWNrYm94IGV4YW1wbGVzIHdpdGggdmFyaW91cyBsYWJlbHMifT4KICAgICAgICA8ZGl2IGNsYXNzPSJjaGVja2JveC1ncm91cCI+CiAgICAgICAgICA8ZGVlcy1pbnB1dC1jaGVja2JveCAKICAgICAgICAgICAgLmxhYmVsPSR7IkkgYWdyZWUgdG8gdGhlIFRlcm1zIGFuZCBDb25kaXRpb25zIn0gCiAgICAgICAgICAgIC52YWx1ZT0keyEwfQogICAgICAgICAgICAua2V5PSR7InRlcm1zIn0KICAgICAgICAgID48L2RlZXMtaW5wdXQtY2hlY2tib3g+CiAgICAgICAgICAKICAgICAgICAgIDxkZWVzLWlucHV0LWNoZWNrYm94IAogICAgICAgICAgICAubGFiZWw9JHsiU3Vic2NyaWJlIHRvIG5ld3NsZXR0ZXIifSAKICAgICAgICAgICAgLnZhbHVlPSR7ITF9CiAgICAgICAgICAgIC5rZXk9JHsibmV3c2xldHRlciJ9CiAgICAgICAgICA+PC9kZWVzLWlucHV0LWNoZWNrYm94PgogICAgICAgICAgCiAgICAgICAgICA8ZGVlcy1pbnB1dC1jaGVja2JveCAKICAgICAgICAgICAgLmxhYmVsPSR7IkVuYWJsZSBub3RpZmljYXRpb25zIn0gCiAgICAgICAgICAgIC52YWx1ZT0keyExfQogICAgICAgICAgICAuZGVzY3JpcHRpb249JHsiUmVjZWl2ZSBlbWFpbCB1cGRhdGVzIGFib3V0IHlvdXIgYWNjb3VudCJ9CiAgICAgICAgICAgIC5rZXk9JHsibm90aWZpY2F0aW9ucyJ9CiAgICAgICAgICA+PC9kZWVzLWlucHV0LWNoZWNrYm94PgogICAgICAgIDwvZGl2PgogICAgICA8L2RlZXMtcGFuZWw+CiAgICAgIAogICAgICA8ZGVlcy1wYW5lbCAudGl0bGU9JHsiQ2hlY2tib3ggU3RhdGVzIn0gLnN1YnRpdGxlPSR7IkRpZmZlcmVudCBjaGVja2JveCBzdGF0ZXMgYW5kIGNvbmZpZ3VyYXRpb25zIn0+CiAgICAgICAgPGRpdiBjbGFzcz0iY2hlY2tib3gtZ3JvdXAiPgogICAgICAgICAgPGRlZXMtaW5wdXQtY2hlY2tib3ggCiAgICAgICAgICAgIC5sYWJlbD0keyJEZWZhdWx0IHN0YXRlIn0gCiAgICAgICAgICAgIC52YWx1ZT0keyExfQogICAgICAgICAgPjwvZGVlcy1pbnB1dC1jaGVja2JveD4KICAgICAgICAgIAogICAgICAgICAgPGRlZXMtaW5wdXQtY2hlY2tib3ggCiAgICAgICAgICAgIC5sYWJlbD0keyJDaGVja2VkIHN0YXRlIn0gCiAgICAgICAgICAgIC52YWx1ZT0keyEwfQogICAgICAgICAgPjwvZGVlcy1pbnB1dC1jaGVja2JveD4KICAgICAgICAgIAogICAgICAgICAgPGRlZXMtaW5wdXQtY2hlY2tib3ggCiAgICAgICAgICAgIC5sYWJlbD0keyJEaXNhYmxlZCB1bmNoZWNrZWQifSAKICAgICAgICAgICAgLnZhbHVlPSR7ITF9CiAgICAgICAgICAgIC5kaXNhYmxlZD0keyEwfQogICAgICAgICAgPjwvZGVlcy1pbnB1dC1jaGVja2JveD4KICAgICAgICAgIAogICAgICAgICAgPGRlZXMtaW5wdXQtY2hlY2tib3ggCiAgICAgICAgICAgIC5sYWJlbD0keyJEaXNhYmxlZCBjaGVja2VkIn0gCiAgICAgICAgICAgIC52YWx1ZT0keyEwfQogICAgICAgICAgICAuZGlzYWJsZWQ9JHshMH0KICAgICAgICAgID48L2RlZXMtaW5wdXQtY2hlY2tib3g+CiAgICAgICAgICAKICAgICAgICAgIDxkZWVzLWlucHV0LWNoZWNrYm94IAogICAgICAgICAgICAubGFiZWw9JHsiUmVxdWlyZWQgY2hlY2tib3gifSAKICAgICAgICAgICAgLnJlcXVpcmVkPSR7ITB9CiAgICAgICAgICAgIC5rZXk9JHsicmVxdWlyZWQifQogICAgICAgICAgPjwvZGVlcy1pbnB1dC1jaGVja2JveD4KICAgICAgICA8L2Rpdj4KICAgICAgPC9kZWVzLXBhbmVsPgogICAgICAKICAgICAgPGRlZXMtcGFuZWwgLnRpdGxlPSR7Ikhvcml6b250YWwgTGF5b3V0In0gLnN1YnRpdGxlPSR7IkNoZWNrYm94ZXMgYXJyYW5nZWQgaG9yaXpvbnRhbGx5IGZvciBjb21wYWN0IGZvcm1zIn0+CiAgICAgICAgPGRpdiBjbGFzcz0iaG9yaXpvbnRhbC1jaGVja2JveGVzIj4KICAgICAgICAgIDxkZWVzLWlucHV0LWNoZWNrYm94IAogICAgICAgICAgICAubGFiZWw9JHsiT3B0aW9uIEEifSAKICAgICAgICAgICAgLnZhbHVlPSR7ITF9CiAgICAgICAgICAgIC5sYXlvdXRNb2RlPSR7Imhvcml6b250YWwifQogICAgICAgICAgICAua2V5PSR7Im9wdGlvbkEifQogICAgICAgICAgPjwvZGVlcy1pbnB1dC1jaGVja2JveD4KICAgICAgICAgIAogICAgICAgICAgPGRlZXMtaW5wdXQtY2hlY2tib3ggCiAgICAgICAgICAgIC5sYWJlbD0keyJPcHRpb24gQiJ9IAogICAgICAgICAgICAudmFsdWU9JHshMH0KICAgICAgICAgICAgLmxheW91dE1vZGU9JHsiaG9yaXpvbnRhbCJ9CiAgICAgICAgICAgIC5rZXk9JHsib3B0aW9uQiJ9CiAgICAgICAgICA+PC9kZWVzLWlucHV0LWNoZWNrYm94PgogICAgICAgICAgCiAgICAgICAgICA8ZGVlcy1pbnB1dC1jaGVja2JveCAKICAgICAgICAgICAgLmxhYmVsPSR7Ik9wdGlvbiBDIn0gCiAgICAgICAgICAgIC52YWx1ZT0keyExfQogICAgICAgICAgICAubGF5b3V0TW9kZT0keyJob3Jpem9udGFsIn0KICAgICAgICAgICAgLmtleT0keyJvcHRpb25DIn0KICAgICAgICAgID48L2RlZXMtaW5wdXQtY2hlY2tib3g+CiAgICAgICAgICAKICAgICAgICAgIDxkZWVzLWlucHV0LWNoZWNrYm94IAogICAgICAgICAgICAubGFiZWw9JHsiT3B0aW9uIEQifSAKICAgICAgICAgICAgLnZhbHVlPSR7ITB9CiAgICAgICAgICAgIC5sYXlvdXRNb2RlPSR7Imhvcml6b250YWwifQogICAgICAgICAgICAua2V5PSR7Im9wdGlvbkQifQogICAgICAgICAgPjwvZGVlcy1pbnB1dC1jaGVja2JveD4KICAgICAgICA8L2Rpdj4KICAgICAgPC9kZWVzLXBhbmVsPgogICAgICAKICAgICAgPGRlZXMtcGFuZWwgLnRpdGxlPSR7IkZlYXR1cmUgU2VsZWN0aW9uIEV4YW1wbGUifSAuc3VidGl0bGU9JHsiQ29tbW9uIHVzZSBjYXNlIGZvciBmZWF0dXJlIHRvZ2dsZXMgd2l0aCBiYXRjaCBvcGVyYXRpb25zIn0+CiAgICAgICAgPGRpdiBjbGFzcz0iYnV0dG9uLWdyb3VwIj4KICAgICAgICAgIDxkZWVzLWJ1dHRvbiBpZD0ic2VsZWN0LWFsbC1idG4iIHR5cGU9InNlY29uZGFyeSI+U2VsZWN0IEFsbDwvZGVlcy1idXR0b24+CiAgICAgICAgICA8ZGVlcy1idXR0b24gaWQ9ImNsZWFyLWFsbC1idG4iIHR5cGU9InNlY29uZGFyeSI+Q2xlYXIgQWxsPC9kZWVzLWJ1dHRvbj4KICAgICAgICA8L2Rpdj4KICAgICAgICAKICAgICAgICA8ZGl2IGNsYXNzPSJmZWF0dXJlLWxpc3QiPgogICAgICAgICAgPGRpdiBjbGFzcz0iY2hlY2tib3gtZ3JvdXAiPgogICAgICAgICAgICA8ZGVlcy1pbnB1dC1jaGVja2JveCAKICAgICAgICAgICAgICAubGFiZWw9JHsiRGFyayBNb2RlIFN1cHBvcnQifSAKICAgICAgICAgICAgICAudmFsdWU9JHshMH0KICAgICAgICAgICAgICAua2V5PSR7ImZlYXR1cmUxIn0KICAgICAgICAgICAgPjwvZGVlcy1pbnB1dC1jaGVja2JveD4KICAgICAgICAgICAgCiAgICAgICAgICAgIDxkZWVzLWlucHV0LWNoZWNrYm94IAogICAgICAgICAgICAgIC5sYWJlbD0keyJFbWFpbCBOb3RpZmljYXRpb25zIn0gCiAgICAgICAgICAgICAgLnZhbHVlPSR7ITB9CiAgICAgICAgICAgICAgLmtleT0keyJmZWF0dXJlMiJ9CiAgICAgICAgICAgID48L2RlZXMtaW5wdXQtY2hlY2tib3g+CiAgICAgICAgICAgIAogICAgICAgICAgICA8ZGVlcy1pbnB1dC1jaGVja2JveCAKICAgICAgICAgICAgICAubGFiZWw9JHsiVHdvLUZhY3RvciBBdXRoZW50aWNhdGlvbiJ9IAogICAgICAgICAgICAgIC52YWx1ZT0keyExfQogICAgICAgICAgICAgIC5rZXk9JHsiZmVhdHVyZTMifQogICAgICAgICAgICA+PC9kZWVzLWlucHV0LWNoZWNrYm94PgogICAgICAgICAgICAKICAgICAgICAgICAgPGRlZXMtaW5wdXQtY2hlY2tib3ggCiAgICAgICAgICAgICAgLmxhYmVsPSR7IkFQSSBBY2Nlc3MifSAKICAgICAgICAgICAgICAudmFsdWU9JHshMH0KICAgICAgICAgICAgICAua2V5PSR7ImZlYXR1cmU0In0KICAgICAgICAgICAgPjwvZGVlcy1pbnB1dC1jaGVja2JveD4KICAgICAgICAgICAgCiAgICAgICAgICAgIDxkZWVzLWlucHV0LWNoZWNrYm94IAogICAgICAgICAgICAgIC5sYWJlbD0keyJBZHZhbmNlZCBBbmFseXRpY3MifSAKICAgICAgICAgICAgICAudmFsdWU9JHshMX0KICAgICAgICAgICAgICAua2V5PSR7ImZlYXR1cmU1In0KICAgICAgICAgICAgPjwvZGVlcy1pbnB1dC1jaGVja2JveD4KICAgICAgICAgIDwvZGl2PgogICAgICAgIDwvZGl2PgogICAgICA8L2RlZXMtcGFuZWw+CiAgICAgIAogICAgICA8ZGVlcy1wYW5lbCAudGl0bGU9JHsiUHJpdmFjeSBTZXR0aW5ncyBFeGFtcGxlIn0gLnN1YnRpdGxlPSR7IkNoZWNrYm94ZXMgaW4gYSB0eXBpY2FsIGZvcm0gY29udGV4dCJ9PgogICAgICAgIDxkaXYgY2xhc3M9ImZvcm0tc2VjdGlvbiI+CiAgICAgICAgICA8aDQgY2xhc3M9InNlY3Rpb24tdGl0bGUiPlByaXZhY3kgUHJlZmVyZW5jZXM8L2g0PgogICAgICAgICAgCiAgICAgICAgICA8ZGl2IGNsYXNzPSJjaGVja2JveC1ncm91cCI+CiAgICAgICAgICAgIDxkZWVzLWlucHV0LWNoZWNrYm94IAogICAgICAgICAgICAgIC5sYWJlbD0keyJTaGFyZSBhbmFseXRpY3MgZGF0YSJ9IAogICAgICAgICAgICAgIC52YWx1ZT0keyEwfQogICAgICAgICAgICAgIC5kZXNjcmlwdGlvbj0keyJIZWxwIHVzIGltcHJvdmUgYnkgc2hhcmluZyBhbm9ueW1vdXMgdXNhZ2UgZGF0YSJ9CiAgICAgICAgICAgID48L2RlZXMtaW5wdXQtY2hlY2tib3g+CiAgICAgICAgICAgIAogICAgICAgICAgICA8ZGVlcy1pbnB1dC1jaGVja2JveCAKICAgICAgICAgICAgICAubGFiZWw9JHsiUGVyc29uYWxpemVkIHJlY29tbWVuZGF0aW9ucyJ9IAogICAgICAgICAgICAgIC52YWx1ZT0keyEwfQogICAgICAgICAgICAgIC5kZXNjcmlwdGlvbj0keyJHZXQgc3VnZ2VzdGlvbnMgYmFzZWQgb24geW91ciBhY3Rpdml0eSJ9CiAgICAgICAgICAgID48L2RlZXMtaW5wdXQtY2hlY2tib3g+CiAgICAgICAgICAgIAogICAgICAgICAgICA8ZGVlcy1pbnB1dC1jaGVja2JveCAKICAgICAgICAgICAgICAubGFiZWw9JHsiTWFya2V0aW5nIGNvbW11bmljYXRpb25zIn0gCiAgICAgICAgICAgICAgLnZhbHVlPSR7ITF9CiAgICAgICAgICAgICAgLmRlc2NyaXB0aW9uPSR7IlJlY2VpdmUgcHJvbW90aW9uYWwgZW1haWxzIGFuZCBzcGVjaWFsIG9mZmVycyJ9CiAgICAgICAgICAgID48L2RlZXMtaW5wdXQtY2hlY2tib3g+CiAgICAgICAgICAgIAogICAgICAgICAgICA8ZGVlcy1pbnB1dC1jaGVja2JveCAKICAgICAgICAgICAgICAubGFiZWw9JHsiVGhpcmQtcGFydHkgaW50ZWdyYXRpb25zIn0gCiAgICAgICAgICAgICAgLnZhbHVlPSR7ITF9CiAgICAgICAgICAgICAgLmRlc2NyaXB0aW9uPSR7IkFsbG93IGFwcHJvdmVkIHBhcnRuZXJzIHRvIGFjY2VzcyB5b3VyIGRhdGEifQogICAgICAgICAgICA+PC9kZWVzLWlucHV0LWNoZWNrYm94PgogICAgICAgICAgPC9kaXY+CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGVlcy1wYW5lbD4KICAgICAgCiAgICAgIDxkZWVzLXBhbmVsIC50aXRsZT0keyJJbnRlcmFjdGl2ZSBFeGFtcGxlIn0gLnN1YnRpdGxlPSR7IkNsaWNrIGNoZWNrYm94ZXMgdG8gc2VlIHZhbHVlIGNoYW5nZXMifT4KICAgICAgICA8ZGl2IGNsYXNzPSJjaGVja2JveC1ncm91cCI+CiAgICAgICAgICA8ZGVlcy1pbnB1dC1jaGVja2JveCAKICAgICAgICAgICAgLmxhYmVsPSR7IkZlYXR1cmUgdG9nZ2xlIn0gCiAgICAgICAgICAgIC52YWx1ZT0keyExfQogICAgICAgICAgICBAY2hhbmdlU3ViamVjdD0ke3Q9PntsZXQgZT1kb2N1bWVudC5xdWVyeVNlbGVjdG9yKCIjY2hlY2tib3gtb3V0cHV0Iik7aWYoZSYmdC5kZXRhaWwpe2xldCBhPXQuZGV0YWlsLmdldFZhbHVlKCk7ZS50ZXh0Q29udGVudD1gRmVhdHVyZSBpcyAke2E/ImVuYWJsZWQiOiJkaXNhYmxlZCJ9YH19fQogICAgICAgICAgPjwvZGVlcy1pbnB1dC1jaGVja2JveD4KICAgICAgICAgIAogICAgICAgICAgPGRlZXMtaW5wdXQtY2hlY2tib3ggCiAgICAgICAgICAgIC5sYWJlbD0keyJEZWJ1ZyBtb2RlIn0gCiAgICAgICAgICAgIC52YWx1ZT0keyExfQogICAgICAgICAgICBAY2hhbmdlU3ViamVjdD0ke3Q9PntsZXQgZT1kb2N1bWVudC5xdWVyeVNlbGVjdG9yKCIjZGVidWctb3V0cHV0Iik7aWYoZSYmdC5kZXRhaWwpe2xldCBhPXQuZGV0YWlsLmdldFZhbHVlKCk7ZS50ZXh0Q29udGVudD1gRGVidWcgbW9kZTogJHthPyJPTiI6Ik9GRiJ9YH19fQogICAgICAgICAgPjwvZGVlcy1pbnB1dC1jaGVja2JveD4KICAgICAgICA8L2Rpdj4KICAgICAgICAKICAgICAgICA8ZGl2IGNsYXNzPSJpbnRlcmFjdGl2ZS1zZWN0aW9uIj4KICAgICAgICAgIDxkaXYgaWQ9ImNoZWNrYm94LW91dHB1dCIgY2xhc3M9Im91dHB1dC10ZXh0Ij5GZWF0dXJlIGlzIGRpc2FibGVkPC9kaXY+CiAgICAgICAgICA8ZGl2IGlkPSJkZWJ1Zy1vdXRwdXQiIGNsYXNzPSJvdXRwdXQtdGV4dCIgc3R5bGU9Im1hcmdpbi10b3A6IDhweDsiPkRlYnVnIG1vZGU6IE9GRjwvZGl2PgogICAgICAgIDwvZGl2PgogICAgICA8L2RlZXMtcGFuZWw+CiAgICA8L2Rpdj4KICA8L2RlZXMtZGVtb3dyYXBwZXI+CmB9KTt2YXIgRHEsdjgsQ3gsX3g9YigoKT0+e3VlKCk7XzEoKTtPOXQoKTtkYSgpO3FlKCk7RHE9ZnVuY3Rpb24odCxlLGEsaSxyLHMpe2Z1bmN0aW9uIG4oeCl7aWYoeCE9PXZvaWQgMCYmdHlwZW9mIHghPSJmdW5jdGlvbiIpdGhyb3cgbmV3IFR5cGVFcnJvcigiRnVuY3Rpb24gZXhwZWN0ZWQiKTtyZXR1cm4geH1mb3IodmFyIG89aS5raW5kLGQ9bz09PSJnZXR0ZXIiPyJnZXQiOm89PT0ic2V0dGVyIj8ic2V0IjoidmFsdWUiLGM9IWUmJnQ/aS5zdGF0aWM/dDp0LnByb3RvdHlwZTpudWxsLGg9ZXx8KGM/T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihjLGkubmFtZSk6e30pLGwsZj0hMSxnPWEubGVuZ3RoLTE7Zz49MDtnLS0pe3ZhciB5PXt9O2Zvcih2YXIgdiBpbiBpKXlbdl09dj09PSJhY2Nlc3MiP3t9Omlbdl07Zm9yKHZhciB2IGluIGkuYWNjZXNzKXkuYWNjZXNzW3ZdPWkuYWNjZXNzW3ZdO3kuYWRkSW5pdGlhbGl6ZXI9ZnVuY3Rpb24oeCl7aWYoZil0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgYWRkIGluaXRpYWxpemVycyBhZnRlciBkZWNvcmF0aW9uIGhhcyBjb21wbGV0ZWQiKTtzLnB1c2gobih4fHxudWxsKSl9O3ZhciBtPSgwLGFbZ10pKG89PT0iYWNjZXNzb3IiP3tnZXQ6aC5nZXQsc2V0Omguc2V0fTpoW2RdLHkpO2lmKG89PT0iYWNjZXNzb3IiKXtpZihtPT09dm9pZCAwKWNvbnRpbnVlO2lmKG09PT1udWxsfHx0eXBlb2YgbSE9Im9iamVjdCIpdGhyb3cgbmV3IFR5cGVFcnJvcigiT2JqZWN0IGV4cGVjdGVkIik7KGw9bihtLmdldCkpJiYoaC5nZXQ9bCksKGw9bihtLnNldCkpJiYoaC5zZXQ9bCksKGw9bihtLmluaXQpKSYmci51bnNoaWZ0KGwpfWVsc2UobD1uKG0pKSYmKG89PT0iZmllbGQiP3IudW5zaGlmdChsKTpoW2RdPWwpfWMmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShjLGkubmFtZSxoKSxmPSEwfSx2OD1mdW5jdGlvbih0LGUsYSl7Zm9yKHZhciBpPWFyZ3VtZW50cy5sZW5ndGg+MixyPTA7cjxlLmxlbmd0aDtyKyspYT1pP2Vbcl0uY2FsbCh0LGEpOmVbcl0uY2FsbCh0KTtyZXR1cm4gaT9hOnZvaWQgMH0sQ3g9KCgpPT57bGV0IHQ9W3BlKCJkZWVzLWlucHV0LWNoZWNrYm94IildLGUsYT1bXSxpLHI9WGUscyxuPVtdLG89W10sZCxjPVtdLGg9W107dmFyIGw9Y2xhc3MgZXh0ZW5kcyBye3N0YXRpY3tpPXRoaXN9c3RhdGlje2xldCBmPXR5cGVvZiBTeW1ib2w9PSJmdW5jdGlvbiImJlN5bWJvbC5tZXRhZGF0YT9PYmplY3QuY3JlYXRlKHJbU3ltYm9sLm1ldGFkYXRhXT8/bnVsbCk6dm9pZCAwO3M9W0koe3R5cGU6Qm9vbGVhbn0pXSxkPVtJKHt0eXBlOkJvb2xlYW59KV0sRHEodGhpcyxudWxsLHMse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJ2YWx1ZSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6Zz0+InZhbHVlImluIGcsZ2V0Omc9PmcudmFsdWUsc2V0OihnLHkpPT57Zy52YWx1ZT15fX0sbWV0YWRhdGE6Zn0sbixvKSxEcSh0aGlzLG51bGwsZCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImluZGV0ZXJtaW5hdGUiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmc9PiJpbmRldGVybWluYXRlImluIGcsZ2V0Omc9PmcuaW5kZXRlcm1pbmF0ZSxzZXQ6KGcseSk9PntnLmluZGV0ZXJtaW5hdGU9eX19LG1ldGFkYXRhOmZ9LGMsaCksRHEobnVsbCxlPXt2YWx1ZTppfSx0LHtraW5kOiJjbGFzcyIsbmFtZTppLm5hbWUsbWV0YWRhdGE6Zn0sbnVsbCxhKSxsPWk9ZS52YWx1ZSxmJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoaSxTeW1ib2wubWV0YWRhdGEse2VudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwLHZhbHVlOmZ9KX1zdGF0aWMgZGVtbz1GOXQ7c3RhdGljIGRlbW9Hcm91cHM9WyJJbnB1dCJdOyNlPXY4KHRoaXMsbiwhMSk7Z2V0IHZhbHVlKCl7cmV0dXJuIHRoaXMuI2V9c2V0IHZhbHVlKGYpe3RoaXMuI2U9Zn0jdD0odjgodGhpcyxvKSx2OCh0aGlzLGMsITEpKTtnZXQgaW5kZXRlcm1pbmF0ZSgpe3JldHVybiB0aGlzLiN0fXNldCBpbmRldGVybWluYXRlKGYpe3RoaXMuI3Q9Zn1jb25zdHJ1Y3Rvcigpe3N1cGVyKCksdjgodGhpcyxoKSx0aGlzLmxhYmVsUG9zaXRpb249InJpZ2h0In1zdGF0aWMgc3R5bGVzPVtDZSwuLi5YZS5iYXNlU3R5bGVzLHAuZGVmYXVsdFN0eWxlcyxRYAogICAgICAgIC8qIFRPRE86IE1pZ3JhdGUgaGFyZGNvZGVkIHZhbHVlcyB0byAtLWRlZXMtKiBDU1MgdmFyaWFibGVzICovCiAgICAgICAgKiB7CiAgICAgICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94OwogICAgICAgIH0KCiAgICAgICAgOmhvc3QgewogICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICAgICAgY3Vyc29yOiBkZWZhdWx0OwogICAgICAgICAgZm9udC1mYW1pbHk6ICR7SnR9OwogICAgICAgIH0KCiAgICAgICAgLm1haW5jb250YWluZXIgewogICAgICAgICAgZGlzcGxheTogaW5saW5lLWZsZXg7CiAgICAgICAgICBhbGlnbi1pdGVtczogZmxleC1zdGFydDsKICAgICAgICAgIGdhcDogOHB4OwogICAgICAgICAgY3Vyc29yOiBwb2ludGVyOwogICAgICAgICAgdXNlci1zZWxlY3Q6IG5vbmU7CiAgICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC4xNXMgZWFzZTsKICAgICAgICB9CgogICAgICAgIC5jaGVja2JveCB7CiAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgICAgICBoZWlnaHQ6IDE4cHg7CiAgICAgICAgICB3aWR0aDogMThweDsKICAgICAgICAgIGZsZXgtc2hyaW5rOiAwOwogICAgICAgICAgYm9yZGVyLXJhZGl1czogNHB4OwogICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHtwLmJkVGhlbWUoImhzbCgwIDAlIDg5LjglKSIsImhzbCgwIDAlIDE0LjklKSIpfTsKICAgICAgICAgIGJhY2tncm91bmQ6ICR7cC5iZFRoZW1lKCJoc2woMCAwJSAxMDAlKSIsImhzbCgwIDAlIDMuOSUpIil9OwogICAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuMTVzIGVhc2U7CiAgICAgICAgICBtYXJnaW4tdG9wOiAxcHg7CiAgICAgICAgfQoKICAgICAgICAubWFpbmNvbnRhaW5lcjpob3ZlciAuY2hlY2tib3ggewogICAgICAgICAgYm9yZGVyLWNvbG9yOiAke3AuYmRUaGVtZSgiaHNsKDAgMCUgNzkuOCUpIiwiaHNsKDAgMCUgMjAuOSUpIil9OwogICAgICAgIH0KCiAgICAgICAgLmNoZWNrYm94LnNlbGVjdGVkIHsKICAgICAgICAgIGJhY2tncm91bmQ6ICR7cC5iZFRoZW1lKCJoc2woMjIyLjIgNDcuNCUgNTEuMiUpIiwiaHNsKDIxNy4yIDkxLjIlIDU5LjglKSIpfTsKICAgICAgICAgIGJvcmRlci1jb2xvcjogJHtwLmJkVGhlbWUoImhzbCgyMjIuMiA0Ny40JSA1MS4yJSkiLCJoc2woMjE3LjIgOTEuMiUgNTkuOCUpIil9OwogICAgICAgIH0KCiAgICAgICAgLmNoZWNrYm94OmZvY3VzLXZpc2libGUgewogICAgICAgICAgb3V0bGluZTogbm9uZTsKICAgICAgICAgIGJveC1zaGFkb3c6IDAgMCAwIDNweCAke3AuYmRUaGVtZSgiaHNsKDIyMi4yIDQ3LjQlIDUxLjIlIC8gMC4xKSIsImhzbCgyMTcuMiA5MS4yJSA1OS44JSAvIDAuMSkiKX07CiAgICAgICAgfQoKICAgICAgICAvKiBDaGVja21hcmsgdXNpbmcgTHVjaWRlIGljb24gc3R5bGUgKi8KICAgICAgICAuY2hlY2tib3ggLmNoZWNrbWFyayB7CiAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgICAgICB0b3A6IDUwJTsKICAgICAgICAgIGxlZnQ6IDUwJTsKICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUsIC01MCUpOwogICAgICAgICAgb3BhY2l0eTogMDsKICAgICAgICAgIHRyYW5zaXRpb246IG9wYWNpdHkgMC4xNXMgZWFzZTsKICAgICAgICB9CgogICAgICAgIC5jaGVja2JveC5zZWxlY3RlZCAuY2hlY2ttYXJrIHsKICAgICAgICAgIG9wYWNpdHk6IDE7CiAgICAgICAgfQoKICAgICAgICAuY2hlY2tib3ggLmNoZWNrbWFyayBzdmcgewogICAgICAgICAgd2lkdGg6IDEycHg7CiAgICAgICAgICBoZWlnaHQ6IDEycHg7CiAgICAgICAgICBzdHJva2U6IHdoaXRlOwogICAgICAgICAgc3Ryb2tlLXdpZHRoOiAzOwogICAgICAgIH0KCiAgICAgICAgLyogRGlzYWJsZWQgc3RhdGUgKi8KICAgICAgICAubWFpbmNvbnRhaW5lci5kaXNhYmxlZCB7CiAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkOwogICAgICAgICAgb3BhY2l0eTogMC41OwogICAgICAgIH0KCiAgICAgICAgLmNoZWNrYm94LmRpc2FibGVkIHsKICAgICAgICAgIGJhY2tncm91bmQ6ICR7cC5iZFRoZW1lKCJoc2woMCAwJSA5NS4xJSkiLCJoc2woMCAwJSAxNC45JSkiKX07CiAgICAgICAgICBib3JkZXItY29sb3I6ICR7cC5iZFRoZW1lKCJoc2woMCAwJSA4OS44JSkiLCJoc2woMCAwJSAxNC45JSkiKX07CiAgICAgICAgfQoKICAgICAgICAvKiBMYWJlbCAqLwogICAgICAgIC5sYWJlbC1jb250YWluZXIgewogICAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgICAgICBnYXA6IDJweDsKICAgICAgICAgIGZsZXg6IDE7CiAgICAgICAgfQoKICAgICAgICAuY2hlY2tib3gtbGFiZWwgewogICAgICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDsKICAgICAgICAgIGxpbmUtaGVpZ2h0OiAyMHB4OwogICAgICAgICAgY29sb3I6ICR7cC5iZFRoZW1lKCJoc2woMCAwJSAxNSUpIiwiaHNsKDAgMCUgOTAlKSIpfTsKICAgICAgICAgIHRyYW5zaXRpb246IGNvbG9yIDAuMTVzIGVhc2U7CiAgICAgICAgICBsZXR0ZXItc3BhY2luZzogLTAuMDFlbTsKICAgICAgICB9CgogICAgICAgIC5tYWluY29udGFpbmVyOmhvdmVyIC5jaGVja2JveC1sYWJlbCB7CiAgICAgICAgICBjb2xvcjogJHtwLmJkVGhlbWUoImhzbCgwIDAlIDklKSIsImhzbCgwIDAlIDk1JSkiKX07CiAgICAgICAgfQoKICAgICAgICAubWFpbmNvbnRhaW5lci5kaXNhYmxlZDpob3ZlciAuY2hlY2tib3gtbGFiZWwgewogICAgICAgICAgY29sb3I6ICR7cC5iZFRoZW1lKCJoc2woMCAwJSAxNSUpIiwiaHNsKDAgMCUgOTAlKSIpfTsKICAgICAgICB9CgogICAgICAgIC8qIERlc2NyaXB0aW9uICovCiAgICAgICAgLmRlc2NyaXB0aW9uLXRleHQgewogICAgICAgICAgZm9udC1zaXplOiAxMnB4OwogICAgICAgICAgY29sb3I6ICR7cC5iZFRoZW1lKCJoc2woMCAwJSA0NS4xJSkiLCJoc2woMCAwJSA2My45JSkiKX07CiAgICAgICAgICBsaW5lLWhlaWdodDogMS41OwogICAgICAgIH0KICAgIGBdO3JlbmRlcigpe3JldHVybiB3YAogICAgICA8ZGl2IGNsYXNzPSJpbnB1dC13cmFwcGVyIj4KICAgICAgICA8ZGl2IGNsYXNzPSJtYWluY29udGFpbmVyICR7dGhpcy5kaXNhYmxlZD8iZGlzYWJsZWQiOiIifSIgQGNsaWNrPSIke3RoaXMudG9nZ2xlU2VsZWN0ZWR9Ij4KICAgICAgICAgIDxkaXYgCiAgICAgICAgICAgIGNsYXNzPSJjaGVja2JveCAke3RoaXMudmFsdWU/InNlbGVjdGVkIjoiIn0gJHt0aGlzLmRpc2FibGVkPyJkaXNhYmxlZCI6IiJ9IiAKICAgICAgICAgICAgdGFiaW5kZXg9IiR7dGhpcy5kaXNhYmxlZD8iLTEiOiIwIn0iCiAgICAgICAgICAgIEBrZXlkb3duPSIke3RoaXMuaGFuZGxlS2V5ZG93bn0iCiAgICAgICAgICA+CiAgICAgICAgICAgICR7dGhpcy52YWx1ZT93YAogICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iY2hlY2ttYXJrIj4KICAgICAgICAgICAgICAgICAgICA8c3ZnIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KICAgICAgICAgICAgICAgICAgICAgIDxwYXRoIGQ9Ik0yMCA2TDkgMTdMNCAxMiIgc3Ryb2tlPSJjdXJyZW50Q29sb3IiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIgc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCIvPgogICAgICAgICAgICAgICAgICAgIDwvc3ZnPgogICAgICAgICAgICAgICAgICA8L3NwYW4+CiAgICAgICAgICAgICAgICBgOnRoaXMuaW5kZXRlcm1pbmF0ZT93YAogICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJjaGVja21hcmsiPgogICAgICAgICAgICAgICAgICAgICAgPHN2ZyB2aWV3Qm94PSIwIDAgMjQgMjQiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CiAgICAgICAgICAgICAgICAgICAgICAgIDxwYXRoIGQ9Ik01IDEySDE5IiBzdHJva2U9ImN1cnJlbnRDb2xvciIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBzdHJva2UtbGluZWpvaW49InJvdW5kIi8+CiAgICAgICAgICAgICAgICAgICAgICA8L3N2Zz4KICAgICAgICAgICAgICAgICAgICA8L3NwYW4+CiAgICAgICAgICAgICAgICAgIGA6d2BgfQogICAgICAgICAgPC9kaXY+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJsYWJlbC1jb250YWluZXIiPgogICAgICAgICAgICAke3RoaXMubGFiZWw/d2A8ZGl2IGNsYXNzPSJjaGVja2JveC1sYWJlbCI+JHt0aGlzLmxhYmVsfTwvZGl2PmA6IiJ9CiAgICAgICAgICAgICR7dGhpcy5kZXNjcmlwdGlvbj93YDxkaXYgY2xhc3M9ImRlc2NyaXB0aW9uLXRleHQiPiR7dGhpcy5kZXNjcmlwdGlvbn08L2Rpdj5gOiIifQogICAgICAgICAgPC9kaXY+CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGl2PgogICAgYH1hc3luYyB0b2dnbGVTZWxlY3RlZCgpe3RoaXMuZGlzYWJsZWR8fCh0aGlzLnZhbHVlPSF0aGlzLnZhbHVlLHRoaXMuZGlzcGF0Y2hFdmVudChuZXcgQ3VzdG9tRXZlbnQoIm5ld1ZhbHVlIix7ZGV0YWlsOnRoaXMudmFsdWUsYnViYmxlczohMH0pKSx0aGlzLmNoYW5nZVN1YmplY3QubmV4dCh0aGlzKSl9Z2V0VmFsdWUoKXtyZXR1cm4gdGhpcy52YWx1ZX1zZXRWYWx1ZShmKXt0aGlzLnZhbHVlPWZ9Zm9jdXMoKXtsZXQgZj10aGlzLnNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvcigiLmNoZWNrYm94Iik7ZiYmZi5mb2N1cygpfWhhbmRsZUtleWRvd24oZil7KGYua2V5PT09IiAifHxmLmtleT09PSJFbnRlciIpJiYoZi5wcmV2ZW50RGVmYXVsdCgpLHRoaXMudG9nZ2xlU2VsZWN0ZWQoKSl9c3RhdGlje3Y4KGksYSl9fTtyZXR1cm4gbD1pfSkoKX0pO3ZhciBXMD17fTtHZShXMCx7YnJpZ2h0OigpPT5VMCxkYXJrOigpPT5taX0pO3ZhciBtaSxVMCxnaT1iKCgpPT57bWk9e2JsdWU6IiMwMDUwYjkiLGJsdWVBY3RpdmU6IiMwMDY5ZjIiLGJsdWVNdXRlZDoiIzAxMjQ1MiIsdGV4dDoiI2ZmZmZmZiJ9LFUwPXtibHVlOiIjMDA1MGI5IixibHVlQWN0aXZlOiIjMDA2OWYyIixibHVlTXV0ZWQ6IiMwMDY5ZjIiLHRleHQ6IiMzMzMzMzMifX0pO3ZhciBSOXQsQjl0PWIoKCk9Pnt1ZSgpO0cwKCk7Ujl0PSgpPT53YAogIDxzdHlsZT4KICAgICR7UWAKICAgICAgLmRlbW8tY29udGFpbmVyIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgICAgZ2FwOiAyNHB4OwogICAgICAgIHBhZGRpbmc6IDI0cHg7CiAgICAgICAgbWF4LXdpZHRoOiAxMjAwcHg7CiAgICAgICAgbWFyZ2luOiAwIGF1dG87CiAgICAgIH0KICAgICAgCiAgICAgIC5kZW1vLXNlY3Rpb24gewogICAgICAgIGJhY2tncm91bmQ6ICR7cC5iZFRoZW1lKCIjZjhmOWZhIiwiIzFhMWExYSIpfTsKICAgICAgICBib3JkZXItcmFkaXVzOiA4cHg7CiAgICAgICAgcGFkZGluZzogMjRweDsKICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAke3AuYmRUaGVtZSgiI2UwZTBlMCIsIiMzMzMiKX07CiAgICAgIH0KICAgICAgCiAgICAgIC5kZW1vLXNlY3Rpb24gaDMgewogICAgICAgIG1hcmdpbi10b3A6IDA7CiAgICAgICAgbWFyZ2luLWJvdHRvbTogMTZweDsKICAgICAgICBjb2xvcjogJHtwLmJkVGhlbWUoIiMzMzMiLCIjZmZmIil9OwogICAgICB9CiAgICAgIAogICAgICAuZGVtby1zZWN0aW9uIHAgewogICAgICAgIGNvbG9yOiAke3AuYmRUaGVtZSgiIzY2NiIsIiM5OTkiKX07CiAgICAgICAgbWFyZ2luLWJvdHRvbTogMTZweDsKICAgICAgfQogICAgICAKICAgICAgLmJ1dHRvbi1ncmlkIHsKICAgICAgICBkaXNwbGF5OiBncmlkOwogICAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KGF1dG8tZml0LCBtaW5tYXgoMTUwcHgsIDFmcikpOwogICAgICAgIGdhcDogMTZweDsKICAgICAgfQogICAgYH0KICA8L3N0eWxlPgogIAogIDxkaXYgY2xhc3M9ImRlbW8tY29udGFpbmVyIj4KICAgIDxkaXYgY2xhc3M9ImRlbW8tc2VjdGlvbiI+CiAgICAgIDxoMz5IZWFkZXIgQnV0dG9uczwvaDM+CiAgICAgIDxwPk1vZGFscyBjYW4gaGF2ZSBvcHRpb25hbCBoZWFkZXIgYnV0dG9ucyBmb3IgaGVscCBhbmQgY2xvc2luZy48L3A+CiAgICAgIDxkaXYgY2xhc3M9ImJ1dHRvbi1ncmlkIj4KICAgICAgICA8ZGVlcy1idXR0b24gQGNsaWNrPSR7KCk9PntvMS5jcmVhdGVBbmRTaG93KHtoZWFkaW5nOiJXaXRoIEhlbHAgQnV0dG9uIixzaG93SGVscEJ1dHRvbjohMCxvbkhlbHA6YXN5bmMoKT0+e2xldCB0PWF3YWl0IG8xLmNyZWF0ZUFuZFNob3coe2hlYWRpbmc6IkhlbHAiLHdpZHRoOiJzbWFsbCIsc2hvd0Nsb3NlQnV0dG9uOiEwLHNob3dIZWxwQnV0dG9uOiExLGNvbnRlbnQ6d2AKICAgICAgICAgICAgICAgICAgPHA+VGhpcyBpcyB0aGUgaGVscCBjb250ZW50IGZvciB0aGUgbW9kYWwuPC9wPgogICAgICAgICAgICAgICAgICA8cD5Zb3UgY2FuIHByb3ZpZGUgY29udGV4dC1zcGVjaWZpYyBoZWxwIGhlcmUuPC9wPgogICAgICAgICAgICAgICAgYCxtZW51T3B0aW9uczpbe25hbWU6IkdvdCBpdCIsYWN0aW9uOmFzeW5jIGU9PmUuZGVzdHJveSgpfV19KX0sY29udGVudDp3YAogICAgICAgICAgICAgIDxwPlRoaXMgbW9kYWwgaGFzIGEgaGVscCBidXR0b24gaW4gdGhlIGhlYWRlci4gQ2xpY2sgaXQgdG8gc2VlIGhlbHAgY29udGVudC48L3A+CiAgICAgICAgICAgICAgPHA+VGhlIGNsb3NlIGJ1dHRvbiBpcyBhbHNvIHZpc2libGUgYnkgZGVmYXVsdC48L3A+CiAgICAgICAgICAgIGAsbWVudU9wdGlvbnM6W3tuYW1lOiJPSyIsYWN0aW9uOmFzeW5jIHQ9PnQuZGVzdHJveSgpfV19KX19PldpdGggSGVscCBCdXR0b248L2RlZXMtYnV0dG9uPgogICAgICAgIAogICAgICAgIDxkZWVzLWJ1dHRvbiBAY2xpY2s9JHsoKT0+e28xLmNyZWF0ZUFuZFNob3coe2hlYWRpbmc6Ik5vIENsb3NlIEJ1dHRvbiIsc2hvd0Nsb3NlQnV0dG9uOiExLGNvbnRlbnQ6d2AKICAgICAgICAgICAgICA8cD5UaGlzIG1vZGFsIGhhcyBubyBjbG9zZSBidXR0b24gaW4gdGhlIGhlYWRlci48L3A+CiAgICAgICAgICAgICAgPHA+WW91IG11c3QgdXNlIHRoZSBhY3Rpb24gYnV0dG9ucyBvciBjbGljayBvdXRzaWRlIHRvIGNsb3NlIGl0LjwvcD4KICAgICAgICAgICAgYCxtZW51T3B0aW9uczpbe25hbWU6IkNsb3NlIixhY3Rpb246YXN5bmMgdD0+dC5kZXN0cm95KCl9XX0pfX0+Tm8gQ2xvc2UgQnV0dG9uPC9kZWVzLWJ1dHRvbj4KICAgICAgICAKICAgICAgICA8ZGVlcy1idXR0b24gQGNsaWNrPSR7KCk9PntvMS5jcmVhdGVBbmRTaG93KHtoZWFkaW5nOiJCb3RoIEJ1dHRvbnMiLHNob3dIZWxwQnV0dG9uOiEwLHNob3dDbG9zZUJ1dHRvbjohMCxvbkhlbHA6KCk9PmFsZXJ0KCJIZWxwIGNsaWNrZWQhIiksY29udGVudDp3YAogICAgICAgICAgICAgIDxwPlRoaXMgbW9kYWwgaGFzIGJvdGggaGVscCBhbmQgY2xvc2UgYnV0dG9ucy48L3A+CiAgICAgICAgICAgIGAsbWVudU9wdGlvbnM6W3tuYW1lOiJEb25lIixhY3Rpb246YXN5bmMgdD0+dC5kZXN0cm95KCl9XX0pfX0+Qm90aCBCdXR0b25zPC9kZWVzLWJ1dHRvbj4KICAgICAgICAKICAgICAgICA8ZGVlcy1idXR0b24gQGNsaWNrPSR7KCk9PntvMS5jcmVhdGVBbmRTaG93KHtoZWFkaW5nOiJDbGVhbiBIZWFkZXIiLHNob3dDbG9zZUJ1dHRvbjohMSxzaG93SGVscEJ1dHRvbjohMSxjb250ZW50OndgCiAgICAgICAgICAgICAgPHA+VGhpcyBtb2RhbCBoYXMgYSBjbGVhbiBoZWFkZXIgd2l0aCBubyBidXR0b25zLjwvcD4KICAgICAgICAgICAgYCxtZW51T3B0aW9uczpbe25hbWU6IkNsb3NlIixhY3Rpb246YXN5bmMgdD0+dC5kZXN0cm95KCl9XX0pfX0+Q2xlYW4gSGVhZGVyPC9kZWVzLWJ1dHRvbj4KICAgICAgPC9kaXY+CiAgICA8L2Rpdj4KICAgIAogICAgPGRpdiBjbGFzcz0iZGVtby1zZWN0aW9uIj4KICAgICAgPGgzPk1vZGFsIFdpZHRoIFZhcmlhdGlvbnM8L2gzPgogICAgICA8cD5Nb2RhbHMgY2FuIGhhdmUgZGlmZmVyZW50IHdpZHRoczogc21hbGwsIG1lZGl1bSwgbGFyZ2UsIGZ1bGxzY3JlZW4sIG9yIGN1c3RvbSBwaXhlbCB2YWx1ZXMuPC9wPgogICAgICA8ZGl2IGNsYXNzPSJidXR0b24tZ3JpZCI+CiAgICAgICAgPGRlZXMtYnV0dG9uIEBjbGljaz0keygpPT57bzEuY3JlYXRlQW5kU2hvdyh7aGVhZGluZzoiU21hbGwgTW9kYWwiLHdpZHRoOiJzbWFsbCIsY29udGVudDp3YAogICAgICAgICAgICAgIDxwPlRoaXMgaXMgYSBzbWFsbCBtb2RhbCB3aXRoIGEgd2lkdGggb2YgMzgwcHguIFBlcmZlY3QgZm9yIHNpbXBsZSBjb25maXJtYXRpb25zIG9yIGJyaWVmIG1lc3NhZ2VzLjwvcD4KICAgICAgICAgICAgYCxtZW51T3B0aW9uczpbe25hbWU6IkNhbmNlbCIsYWN0aW9uOmFzeW5jIHQ9PnQuZGVzdHJveSgpfSx7bmFtZToiT0siLGFjdGlvbjphc3luYyB0PT50LmRlc3Ryb3koKX1dfSl9fT5TbWFsbCBNb2RhbDwvZGVlcy1idXR0b24+CiAgICAgICAgCiAgICAgICAgPGRlZXMtYnV0dG9uIEBjbGljaz0keygpPT57bzEuY3JlYXRlQW5kU2hvdyh7aGVhZGluZzoiTWVkaXVtIE1vZGFsIChEZWZhdWx0KSIsd2lkdGg6Im1lZGl1bSIsY29udGVudDp3YAogICAgICAgICAgICAgIDxkZWVzLWZvcm0+CiAgICAgICAgICAgICAgICA8ZGVlcy1pbnB1dC10ZXh0IC5sYWJlbD0keyJVc2VybmFtZSJ9PjwvZGVlcy1pbnB1dC10ZXh0PgogICAgICAgICAgICAgICAgPGRlZXMtaW5wdXQtdGV4dCAubGFiZWw9JHsiRW1haWwifSAuaW5wdXRUeXBlPSR7ImVtYWlsIn0+PC9kZWVzLWlucHV0LXRleHQ+CiAgICAgICAgICAgICAgICA8ZGVlcy1pbnB1dC10ZXh0IC5sYWJlbD0keyJQYXNzd29yZCJ9IC5pbnB1dFR5cGU9JHsicGFzc3dvcmQifT48L2RlZXMtaW5wdXQtdGV4dD4KICAgICAgICAgICAgICA8L2RlZXMtZm9ybT4KICAgICAgICAgICAgYCxtZW51T3B0aW9uczpbe25hbWU6IkNhbmNlbCIsYWN0aW9uOmFzeW5jIHQ9PnQuZGVzdHJveSgpfSx7bmFtZToiU2lnbiBVcCIsYWN0aW9uOmFzeW5jIHQ9PnQuZGVzdHJveSgpfV19KX19Pk1lZGl1bSBNb2RhbDwvZGVlcy1idXR0b24+CiAgICAgICAgCiAgICAgICAgPGRlZXMtYnV0dG9uIEBjbGljaz0keygpPT57bzEuY3JlYXRlQW5kU2hvdyh7aGVhZGluZzoiTGFyZ2UgTW9kYWwiLHdpZHRoOiJsYXJnZSIsY29udGVudDp3YAogICAgICAgICAgICAgIDxoND5XaWRlIENvbnRlbnQgQXJlYTwvaDQ+CiAgICAgICAgICAgICAgPHA+VGhpcyBsYXJnZSBtb2RhbCBpcyA4MDBweCB3aWRlIGFuZCBwZXJmZWN0IGZvciBkaXNwbGF5aW5nIG1vcmUgY29tcGxleCBjb250ZW50IGxpa2UgZm9ybXMgd2l0aCBtdWx0aXBsZSBjb2x1bW5zLCB0YWJsZXMsIG9yIGRldGFpbGVkIGluZm9ybWF0aW9uLjwvcD4KICAgICAgICAgICAgICA8ZGl2IHN0eWxlPSJkaXNwbGF5OiBncmlkOyBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDFmciAxZnI7IGdhcDogMTZweDsgbWFyZ2luLXRvcDogMTZweDsiPgogICAgICAgICAgICAgICAgPGRlZXMtaW5wdXQtdGV4dCAubGFiZWw9JHsiRmlyc3QgTmFtZSJ9PjwvZGVlcy1pbnB1dC10ZXh0PgogICAgICAgICAgICAgICAgPGRlZXMtaW5wdXQtdGV4dCAubGFiZWw9JHsiTGFzdCBOYW1lIn0+PC9kZWVzLWlucHV0LXRleHQ+CiAgICAgICAgICAgICAgICA8ZGVlcy1pbnB1dC10ZXh0IC5sYWJlbD0keyJDb21wYW55In0+PC9kZWVzLWlucHV0LXRleHQ+CiAgICAgICAgICAgICAgICA8ZGVlcy1pbnB1dC10ZXh0IC5sYWJlbD0keyJQb3NpdGlvbiJ9PjwvZGVlcy1pbnB1dC10ZXh0PgogICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICBgLG1lbnVPcHRpb25zOlt7bmFtZToiQ2FuY2VsIixhY3Rpb246YXN5bmMgdD0+dC5kZXN0cm95KCl9LHtuYW1lOiJTYXZlIixhY3Rpb246YXN5bmMgdD0+dC5kZXN0cm95KCl9XX0pfX0+TGFyZ2UgTW9kYWw8L2RlZXMtYnV0dG9uPgogICAgICAgIAogICAgICAgIDxkZWVzLWJ1dHRvbiBAY2xpY2s9JHsoKT0+e28xLmNyZWF0ZUFuZFNob3coe2hlYWRpbmc6IkZ1bGxzY3JlZW4gRWRpdG9yIix3aWR0aDoiZnVsbHNjcmVlbiIsc2hvd0hlbHBCdXR0b246ITAsb25IZWxwOmFzeW5jKCk9PnthbGVydCgiSW4gYSByZWFsIGFwcCwgdGhpcyB3b3VsZCBzaG93IGVkaXRvciBkb2N1bWVudGF0aW9uIil9LGNvbnRlbnQ6d2AKICAgICAgICAgICAgICA8aDQ+RnVsbHNjcmVlbiBFeHBlcmllbmNlIHdpdGggSGVhZGVyIENvbnRyb2xzPC9oND4KICAgICAgICAgICAgICA8cD5UaGlzIG1vZGFsIHRha2VzIHVwIGFsbW9zdCB0aGUgZW50aXJlIHZpZXdwb3J0IHdpdGggYSAyMHB4IG1hcmdpbiBvbiBhbGwgc2lkZXMuIFRoZSBoZWFkZXIgYnV0dG9ucyBhcmUgcGFydGljdWxhcmx5IHVzZWZ1bCBpbiBmdWxsc2NyZWVuIG1vZGUuPC9wPgogICAgICAgICAgICAgIDxwPlRoZSBjb250ZW50IGFyZWEgY2FuIGJlIGFzIHRhbGwgYXMgbmVlZGVkIGFuZCB3aWxsIHNjcm9sbCBpZiBuZWNlc3NhcnkuPC9wPgogICAgICAgICAgICAgIDxkaXYgc3R5bGU9ImhlaWdodDogMjAwcHg7IGJhY2tncm91bmQ6ICR7cC5iZFRoZW1lKCIjZjBmMGYwIiwiIzJhMmEyYSIpfTsgYm9yZGVyLXJhZGl1czogOHB4OyBkaXNwbGF5OiBmbGV4OyBhbGlnbi1pdGVtczogY2VudGVyOyBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsgbWFyZ2luLXRvcDogMTZweDsiPgogICAgICAgICAgICAgICAgPHNwYW4gc3R5bGU9ImNvbG9yOiAke3AuYmRUaGVtZSgiIzk5OSIsIiM2NjYiKX0iPkxhcmdlIGNvbnRlbnQgYXJlYTwvc3Bhbj4KICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgYCxtZW51T3B0aW9uczpbe25hbWU6IlNhdmUiLGFjdGlvbjphc3luYyB0PT50LmRlc3Ryb3koKX0se25hbWU6IkNhbmNlbCIsYWN0aW9uOmFzeW5jIHQ9PnQuZGVzdHJveSgpfV19KX19PkZ1bGxzY3JlZW4gTW9kYWw8L2RlZXMtYnV0dG9uPgogICAgICA8L2Rpdj4KICAgIDwvZGl2PgogICAgCiAgICA8ZGl2IGNsYXNzPSJkZW1vLXNlY3Rpb24iPgogICAgICA8aDM+Q3VzdG9tIFdpZHRoICYgQ29uc3RyYWludHM8L2gzPgogICAgICA8cD5Zb3UgY2FuIGFsc28gc2V0IGN1c3RvbSBwaXhlbCB3aWR0aHMgYW5kIG1pbi9tYXggY29uc3RyYWludHMuPC9wPgogICAgICA8ZGl2IGNsYXNzPSJidXR0b24tZ3JpZCI+CiAgICAgICAgPGRlZXMtYnV0dG9uIEBjbGljaz0keygpPT57bzEuY3JlYXRlQW5kU2hvdyh7aGVhZGluZzoiQ3VzdG9tIFdpZHRoICg3MDBweCkiLHdpZHRoOjcwMCxjb250ZW50OndgCiAgICAgICAgICAgICAgPHA+VGhpcyBtb2RhbCBoYXMgYSBjdXN0b20gd2lkdGggb2YgZXhhY3RseSA3MDAgcGl4ZWxzLjwvcD4KICAgICAgICAgICAgYCxtZW51T3B0aW9uczpbe25hbWU6IkNsb3NlIixhY3Rpb246YXN5bmMgdD0+dC5kZXN0cm95KCl9XX0pfX0+Q3VzdG9tIDcwMHB4PC9kZWVzLWJ1dHRvbj4KICAgICAgICAKICAgICAgICA8ZGVlcy1idXR0b24gQGNsaWNrPSR7KCk9PntvMS5jcmVhdGVBbmRTaG93KHtoZWFkaW5nOiJXaXRoIE1heCBXaWR0aCIsd2lkdGg6ImxhcmdlIixtYXhXaWR0aDo2MDAsY29udGVudDp3YAogICAgICAgICAgICAgIDxwPlRoaXMgbW9kYWwgaXMgc2V0IHRvICdsYXJnZScgYnV0IGNvbnN0cmFpbmVkIGJ5IGEgbWF4V2lkdGggb2YgNjAwcHguPC9wPgogICAgICAgICAgICBgLG1lbnVPcHRpb25zOlt7bmFtZToiR290IGl0IixhY3Rpb246YXN5bmMgdD0+dC5kZXN0cm95KCl9XX0pfX0+TWF4IFdpZHRoIDYwMHB4PC9kZWVzLWJ1dHRvbj4KICAgICAgICAKICAgICAgICA8ZGVlcy1idXR0b24gQGNsaWNrPSR7KCk9PntvMS5jcmVhdGVBbmRTaG93KHtoZWFkaW5nOiJXaXRoIE1pbiBXaWR0aCIsd2lkdGg6MzAwLG1pbldpZHRoOjQwMCxjb250ZW50OndgCiAgICAgICAgICAgICAgPHA+VGhpcyBtb2RhbCB3aWR0aCBpcyBzZXQgdG8gMzAwcHggYnV0IGhhcyBhIG1pbldpZHRoIG9mIDQwMHB4LCBzbyBpdCB3aWxsIGJlIDQwMHB4IHdpZGUuPC9wPgogICAgICAgICAgICBgLG1lbnVPcHRpb25zOlt7bmFtZToiT0siLGFjdGlvbjphc3luYyB0PT50LmRlc3Ryb3koKX1dfSl9fT5NaW4gV2lkdGggNDAwcHg8L2RlZXMtYnV0dG9uPgogICAgICA8L2Rpdj4KICAgIDwvZGl2PgogICAgCiAgICA8ZGl2IGNsYXNzPSJkZW1vLXNlY3Rpb24iPgogICAgICA8aDM+QnV0dG9uIFZhcmlhdGlvbnM8L2gzPgogICAgICA8cD5Nb2RhbHMgY2FuIGhhdmUgZGlmZmVyZW50IGJ1dHRvbiBjb25maWd1cmF0aW9ucyB3aXRoIHByb3BlciBzcGFjaW5nLjwvcD4KICAgICAgPGRpdiBjbGFzcz0iYnV0dG9uLWdyaWQiPgogICAgICAgIDxkZWVzLWJ1dHRvbiBAY2xpY2s9JHsoKT0+e28xLmNyZWF0ZUFuZFNob3coe2hlYWRpbmc6Ik11bHRpcGxlIEFjdGlvbnMiLGNvbnRlbnQ6d2AKICAgICAgICAgICAgICA8cD5UaGlzIG1vZGFsIGRlbW9uc3RyYXRlcyBtdWx0aXBsZSBidXR0b25zIHdpdGggcHJvcGVyIHNwYWNpbmcgYmV0d2VlbiB0aGVtLjwvcD4KICAgICAgICAgICAgYCxtZW51T3B0aW9uczpbe25hbWU6IkRlbGV0ZSIsYWN0aW9uOmFzeW5jIHQ9PnQuZGVzdHJveSgpfSx7bmFtZToiQ2FuY2VsIixhY3Rpb246YXN5bmMgdD0+dC5kZXN0cm95KCl9LHtuYW1lOiJTYXZlIENoYW5nZXMiLGFjdGlvbjphc3luYyB0PT50LmRlc3Ryb3koKX1dfSl9fT5UaHJlZSBCdXR0b25zPC9kZWVzLWJ1dHRvbj4KICAgICAgICAKICAgICAgICA8ZGVlcy1idXR0b24gQGNsaWNrPSR7KCk9PntvMS5jcmVhdGVBbmRTaG93KHtoZWFkaW5nOiJTaW5nbGUgQWN0aW9uIixjb250ZW50OndgCiAgICAgICAgICAgICAgPHA+U29tZXRpbWVzIHlvdSBqdXN0IG5lZWQgb25lIGJ1dHRvbi48L3A+CiAgICAgICAgICAgIGAsbWVudU9wdGlvbnM6W3tuYW1lOiJBY2tub3dsZWRnZSIsYWN0aW9uOmFzeW5jIHQ9PnQuZGVzdHJveSgpfV19KX19PlNpbmdsZSBCdXR0b248L2RlZXMtYnV0dG9uPgogICAgICAgIAogICAgICAgIDxkZWVzLWJ1dHRvbiBAY2xpY2s9JHsoKT0+e28xLmNyZWF0ZUFuZFNob3coe2hlYWRpbmc6Ik5vIEFjdGlvbnMiLGNvbnRlbnQ6d2AKICAgICAgICAgICAgICA8cD5UaGlzIG1vZGFsIGhhcyBubyBib3R0b20gYnV0dG9ucy4gVXNlIHRoZSBYIGJ1dHRvbiBvciBjbGljayBvdXRzaWRlIHRvIGNsb3NlLjwvcD4KICAgICAgICAgICAgICA8cCBzdHlsZT0ibWFyZ2luLXRvcDogMTZweDsgY29sb3I6ICR7cC5iZFRoZW1lKCIjNjY2IiwiIzk5OSIpfTsiPlRoaXMgaXMgdXNlZnVsIGZvciBpbmZvcm1hdGlvbmFsIG1vZGFscyB0aGF0IGRvbid0IHJlcXVpcmUgdXNlciBhY3Rpb24uPC9wPgogICAgICAgICAgICBgLG1lbnVPcHRpb25zOltdfSl9fT5ObyBCdXR0b25zPC9kZWVzLWJ1dHRvbj4KICAgICAgICAKICAgICAgICA8ZGVlcy1idXR0b24gQGNsaWNrPSR7KCk9PntvMS5jcmVhdGVBbmRTaG93KHtoZWFkaW5nOiJMb25nIEJ1dHRvbiBMYWJlbHMiLGNvbnRlbnQ6d2AKICAgICAgICAgICAgICA8cD5UZXN0aW5nIGJ1dHRvbiBsYXlvdXQgd2l0aCBsb25nZXIgbGFiZWxzLjwvcD4KICAgICAgICAgICAgYCxtZW51T3B0aW9uczpbe25hbWU6IkRpc2NhcmQgQWxsIENoYW5nZXMiLGFjdGlvbjphc3luYyB0PT50LmRlc3Ryb3koKX0se25hbWU6IlNhdmUgYW5kIENvbnRpbnVlIEVkaXRpbmciLGFjdGlvbjphc3luYyB0PT50LmRlc3Ryb3koKX1dfSl9fT5Mb25nIExhYmVsczwvZGVlcy1idXR0b24+CiAgICAgIDwvZGl2PgogICAgPC9kaXY+CiAgICAKICAgIDxkaXYgY2xhc3M9ImRlbW8tc2VjdGlvbiI+CiAgICAgIDxoMz5SZXNwb25zaXZlIEJlaGF2aW9yPC9oMz4KICAgICAgPHA+QWxsIG1vZGFscyBhdXRvbWF0aWNhbGx5IGJlY29tZSBmdWxsLXdpZHRoIG9uIG1vYmlsZSBkZXZpY2VzICg8IDc2OHB4IHZpZXdwb3J0IHdpZHRoKSBmb3IgYmV0dGVyIHVzYWJpbGl0eS48L3A+CiAgICAgIDxkZWVzLWJ1dHRvbiBAY2xpY2s9JHsoKT0+e28xLmNyZWF0ZUFuZFNob3coe2hlYWRpbmc6IlJlc3BvbnNpdmUgTW9kYWwiLHdpZHRoOiJsYXJnZSIsc2hvd0hlbHBCdXR0b246ITAsb25IZWxwOigpPT5jb25zb2xlLmxvZygiSGVscCByZXF1ZXN0ZWQgZm9yIHJlc3BvbnNpdmUgbW9kYWwiKSxjb250ZW50OndgCiAgICAgICAgICAgIDxwPlJlc2l6ZSB5b3VyIGJyb3dzZXIgd2luZG93IHRvIHNlZSBob3cgdGhpcyBtb2RhbCBhZGFwdHMuIE9uIG1vYmlsZSB2aWV3cG9ydHMsIGl0IHdpbGwgYXV0b21hdGljYWxseSB0YWtlIHRoZSBmdWxsIHdpZHRoIG1pbnVzIG1hcmdpbnMuPC9wPgogICAgICAgICAgICA8cD5UaGUgaGVhZGVyIGJ1dHRvbnMgcmVtYWluIGFjY2Vzc2libGUgYXQgYWxsIHZpZXdwb3J0IHNpemVzLjwvcD4KICAgICAgICAgIGAsbWVudU9wdGlvbnM6W3tuYW1lOiJDbG9zZSIsYWN0aW9uOmFzeW5jIHQ9PnQuZGVzdHJveSgpfV19KX19PlRlc3QgUmVzcG9uc2l2ZTwvZGVlcy1idXR0b24+CiAgICA8L2Rpdj4KICA8L2Rpdj4KYH0pO3ZhciBqYSx3MSxvMSxHMD1iKCgpPT57Z2koKTtzMigpO3VpKCk7ZGEoKTtCOXQoKTt1ZSgpO1R0KCk7THMoKTtEdCgpO3FlKCk7amE9ZnVuY3Rpb24odCxlLGEsaSxyLHMpe2Z1bmN0aW9uIG4oeCl7aWYoeCE9PXZvaWQgMCYmdHlwZW9mIHghPSJmdW5jdGlvbiIpdGhyb3cgbmV3IFR5cGVFcnJvcigiRnVuY3Rpb24gZXhwZWN0ZWQiKTtyZXR1cm4geH1mb3IodmFyIG89aS5raW5kLGQ9bz09PSJnZXR0ZXIiPyJnZXQiOm89PT0ic2V0dGVyIj8ic2V0IjoidmFsdWUiLGM9IWUmJnQ/aS5zdGF0aWM/dDp0LnByb3RvdHlwZTpudWxsLGg9ZXx8KGM/T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihjLGkubmFtZSk6e30pLGwsZj0hMSxnPWEubGVuZ3RoLTE7Zz49MDtnLS0pe3ZhciB5PXt9O2Zvcih2YXIgdiBpbiBpKXlbdl09dj09PSJhY2Nlc3MiP3t9Omlbdl07Zm9yKHZhciB2IGluIGkuYWNjZXNzKXkuYWNjZXNzW3ZdPWkuYWNjZXNzW3ZdO3kuYWRkSW5pdGlhbGl6ZXI9ZnVuY3Rpb24oeCl7aWYoZil0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgYWRkIGluaXRpYWxpemVycyBhZnRlciBkZWNvcmF0aW9uIGhhcyBjb21wbGV0ZWQiKTtzLnB1c2gobih4fHxudWxsKSl9O3ZhciBtPSgwLGFbZ10pKG89PT0iYWNjZXNzb3IiP3tnZXQ6aC5nZXQsc2V0Omguc2V0fTpoW2RdLHkpO2lmKG89PT0iYWNjZXNzb3IiKXtpZihtPT09dm9pZCAwKWNvbnRpbnVlO2lmKG09PT1udWxsfHx0eXBlb2YgbSE9Im9iamVjdCIpdGhyb3cgbmV3IFR5cGVFcnJvcigiT2JqZWN0IGV4cGVjdGVkIik7KGw9bihtLmdldCkpJiYoaC5nZXQ9bCksKGw9bihtLnNldCkpJiYoaC5zZXQ9bCksKGw9bihtLmluaXQpKSYmci51bnNoaWZ0KGwpfWVsc2UobD1uKG0pKSYmKG89PT0iZmllbGQiP3IudW5zaGlmdChsKTpoW2RdPWwpfWMmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShjLGkubmFtZSxoKSxmPSEwfSx3MT1mdW5jdGlvbih0LGUsYSl7Zm9yKHZhciBpPWFyZ3VtZW50cy5sZW5ndGg+MixyPTA7cjxlLmxlbmd0aDtyKyspYT1pP2Vbcl0uY2FsbCh0LGEpOmVbcl0uY2FsbCh0KTtyZXR1cm4gaT9hOnZvaWQgMH0sbzE9KCgpPT57bGV0IHQ9W3BlKCJkZWVzLW1vZGFsIildLGUsYT1bXSxpLHI9eGUscyxuPVtdLG89W10sZCxjPVtdLGg9W10sbCxmPVtdLGc9W10seSx2PVtdLG09W10seCxNPVtdLFM9W10sRixfPVtdLGs9W10sTixMPVtdLEE9W10scSxDPVtdLHo9W10sRSxUPVtdLCQ9W10sVixSPVtdLFU9W10scmUsaj1bXSxtZT1bXSx3ZSxIPVtdLGNlPVtdO3ZhciBrZT1jbGFzcyBleHRlbmRzIHJ7c3RhdGlje2k9dGhpc31zdGF0aWN7bGV0IFc9dHlwZW9mIFN5bWJvbD09ImZ1bmN0aW9uIiYmU3ltYm9sLm1ldGFkYXRhP09iamVjdC5jcmVhdGUocltTeW1ib2wubWV0YWRhdGFdPz9udWxsKTp2b2lkIDA7cz1bSSh7dHlwZTpTdHJpbmd9KV0sZD1bSih7fSldLGw9W0ooe30pXSx5PVtJKHt0eXBlOlN0cmluZ30pXSx4PVtJKHt0eXBlOk51bWJlcn0pXSxGPVtJKHt0eXBlOk51bWJlcn0pXSxOPVtJKHt0eXBlOkJvb2xlYW59KV0scT1bSSh7dHlwZTpCb29sZWFufSldLEU9W0koe2F0dHJpYnV0ZTohMX0pXSxWPVtJKHt0eXBlOkJvb2xlYW59KV0scmU9W0koe3R5cGU6TnVtYmVyfSldLHdlPVtKKCldLGphKHRoaXMsbnVsbCxzLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiaGVhZGluZyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6RD0+ImhlYWRpbmciaW4gRCxnZXQ6RD0+RC5oZWFkaW5nLHNldDooRCxPKT0+e0QuaGVhZGluZz1PfX0sbWV0YWRhdGE6V30sbixvKSxqYSh0aGlzLG51bGwsZCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImNvbnRlbnQiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOkQ9PiJjb250ZW50ImluIEQsZ2V0OkQ9PkQuY29udGVudCxzZXQ6KEQsTyk9PntELmNvbnRlbnQ9T319LG1ldGFkYXRhOld9LGMsaCksamEodGhpcyxudWxsLGwse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJtZW51T3B0aW9ucyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6RD0+Im1lbnVPcHRpb25zImluIEQsZ2V0OkQ9PkQubWVudU9wdGlvbnMsc2V0OihELE8pPT57RC5tZW51T3B0aW9ucz1PfX0sbWV0YWRhdGE6V30sZixnKSxqYSh0aGlzLG51bGwseSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6IndpZHRoIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpEPT4id2lkdGgiaW4gRCxnZXQ6RD0+RC53aWR0aCxzZXQ6KEQsTyk9PntELndpZHRoPU99fSxtZXRhZGF0YTpXfSx2LG0pLGphKHRoaXMsbnVsbCx4LHtraW5kOiJhY2Nlc3NvciIsbmFtZToibWF4V2lkdGgiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOkQ9PiJtYXhXaWR0aCJpbiBELGdldDpEPT5ELm1heFdpZHRoLHNldDooRCxPKT0+e0QubWF4V2lkdGg9T319LG1ldGFkYXRhOld9LE0sUyksamEodGhpcyxudWxsLEYse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJtaW5XaWR0aCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6RD0+Im1pbldpZHRoImluIEQsZ2V0OkQ9PkQubWluV2lkdGgsc2V0OihELE8pPT57RC5taW5XaWR0aD1PfX0sbWV0YWRhdGE6V30sXyxrKSxqYSh0aGlzLG51bGwsTix7a2luZDoiYWNjZXNzb3IiLG5hbWU6InNob3dDbG9zZUJ1dHRvbiIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6RD0+InNob3dDbG9zZUJ1dHRvbiJpbiBELGdldDpEPT5ELnNob3dDbG9zZUJ1dHRvbixzZXQ6KEQsTyk9PntELnNob3dDbG9zZUJ1dHRvbj1PfX0sbWV0YWRhdGE6V30sTCxBKSxqYSh0aGlzLG51bGwscSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InNob3dIZWxwQnV0dG9uIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpEPT4ic2hvd0hlbHBCdXR0b24iaW4gRCxnZXQ6RD0+RC5zaG93SGVscEJ1dHRvbixzZXQ6KEQsTyk9PntELnNob3dIZWxwQnV0dG9uPU99fSxtZXRhZGF0YTpXfSxDLHopLGphKHRoaXMsbnVsbCxFLHtraW5kOiJhY2Nlc3NvciIsbmFtZToib25IZWxwIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpEPT4ib25IZWxwImluIEQsZ2V0OkQ9PkQub25IZWxwLHNldDooRCxPKT0+e0Qub25IZWxwPU99fSxtZXRhZGF0YTpXfSxULCQpLGphKHRoaXMsbnVsbCxWLHtraW5kOiJhY2Nlc3NvciIsbmFtZToibW9iaWxlRnVsbHNjcmVlbiIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6RD0+Im1vYmlsZUZ1bGxzY3JlZW4iaW4gRCxnZXQ6RD0+RC5tb2JpbGVGdWxsc2NyZWVuLHNldDooRCxPKT0+e0QubW9iaWxlRnVsbHNjcmVlbj1PfX0sbWV0YWRhdGE6V30sUixVKSxqYSh0aGlzLG51bGwscmUse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJjb250ZW50UGFkZGluZyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6RD0+ImNvbnRlbnRQYWRkaW5nImluIEQsZ2V0OkQ9PkQuY29udGVudFBhZGRpbmcsc2V0OihELE8pPT57RC5jb250ZW50UGFkZGluZz1PfX0sbWV0YWRhdGE6V30saixtZSksamEodGhpcyxudWxsLHdlLHtraW5kOiJhY2Nlc3NvciIsbmFtZToibW9kYWxaSW5kZXgiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOkQ9PiJtb2RhbFpJbmRleCJpbiBELGdldDpEPT5ELm1vZGFsWkluZGV4LHNldDooRCxPKT0+e0QubW9kYWxaSW5kZXg9T319LG1ldGFkYXRhOld9LEgsY2UpLGphKG51bGwsZT17dmFsdWU6aX0sdCx7a2luZDoiY2xhc3MiLG5hbWU6aS5uYW1lLG1ldGFkYXRhOld9LG51bGwsYSksa2U9aT1lLnZhbHVlLFcmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShpLFN5bWJvbC5tZXRhZGF0YSx7ZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITAsdmFsdWU6V30pfXN0YXRpYyBkZW1vPVI5dDtzdGF0aWMgZGVtb0dyb3Vwcz1bIk92ZXJsYXkiXTtzdGF0aWMgYXN5bmMgY3JlYXRlQW5kU2hvdyhXKXtsZXQgRD1kb2N1bWVudC5ib2R5LE89bmV3IGtlO3JldHVybiBPLmhlYWRpbmc9Vy5oZWFkaW5nLE8uY29udGVudD1XLmNvbnRlbnQsTy5tZW51T3B0aW9ucz1XLm1lbnVPcHRpb25zLFcud2lkdGgmJihPLndpZHRoPVcud2lkdGgpLFcubWF4V2lkdGgmJihPLm1heFdpZHRoPVcubWF4V2lkdGgpLFcubWluV2lkdGgmJihPLm1pbldpZHRoPVcubWluV2lkdGgpLFcuc2hvd0Nsb3NlQnV0dG9uIT09dm9pZCAwJiYoTy5zaG93Q2xvc2VCdXR0b249Vy5zaG93Q2xvc2VCdXR0b24pLFcuc2hvd0hlbHBCdXR0b24hPT12b2lkIDAmJihPLnNob3dIZWxwQnV0dG9uPVcuc2hvd0hlbHBCdXR0b24pLFcub25IZWxwJiYoTy5vbkhlbHA9Vy5vbkhlbHApLFcubW9iaWxlRnVsbHNjcmVlbiE9PXZvaWQgMCYmKE8ubW9iaWxlRnVsbHNjcmVlbj1XLm1vYmlsZUZ1bGxzY3JlZW4pLFcuY29udGVudFBhZGRpbmchPT12b2lkIDAmJihPLmNvbnRlbnRQYWRkaW5nPVcuY29udGVudFBhZGRpbmcpLE8ud2luZG93TGF5ZXI9YXdhaXQgZmkuY3JlYXRlQW5kU2hvdyh7Ymx1cjohMH0pLE8ud2luZG93TGF5ZXIuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLGFzeW5jKCk9Pnthd2FpdCBPLmRlc3Ryb3koKX0pLEQuYXBwZW5kKE8ud2luZG93TGF5ZXIpLEQuYXBwZW5kKE8pLE8ubW9kYWxaSW5kZXg9aDEuZ2V0TmV4dFpJbmRleCgpLGgxLnJlZ2lzdGVyKE8sTy5tb2RhbFpJbmRleCksT30jZT13MSh0aGlzLG4sIiIpO2dldCBoZWFkaW5nKCl7cmV0dXJuIHRoaXMuI2V9c2V0IGhlYWRpbmcoVyl7dGhpcy4jZT1XfSN0PSh3MSh0aGlzLG8pLHcxKHRoaXMsYyx2b2lkIDApKTtnZXQgY29udGVudCgpe3JldHVybiB0aGlzLiN0fXNldCBjb250ZW50KFcpe3RoaXMuI3Q9V30jYT0odzEodGhpcyxoKSx3MSh0aGlzLGYsW10pKTtnZXQgbWVudU9wdGlvbnMoKXtyZXR1cm4gdGhpcy4jYX1zZXQgbWVudU9wdGlvbnMoVyl7dGhpcy4jYT1XfSNpPSh3MSh0aGlzLGcpLHcxKHRoaXMsdiwibWVkaXVtIikpO2dldCB3aWR0aCgpe3JldHVybiB0aGlzLiNpfXNldCB3aWR0aChXKXt0aGlzLiNpPVd9I3I9KHcxKHRoaXMsbSksdzEodGhpcyxNLHZvaWQgMCkpO2dldCBtYXhXaWR0aCgpe3JldHVybiB0aGlzLiNyfXNldCBtYXhXaWR0aChXKXt0aGlzLiNyPVd9I3M9KHcxKHRoaXMsUyksdzEodGhpcyxfLHZvaWQgMCkpO2dldCBtaW5XaWR0aCgpe3JldHVybiB0aGlzLiNzfXNldCBtaW5XaWR0aChXKXt0aGlzLiNzPVd9I249KHcxKHRoaXMsayksdzEodGhpcyxMLCEwKSk7Z2V0IHNob3dDbG9zZUJ1dHRvbigpe3JldHVybiB0aGlzLiNufXNldCBzaG93Q2xvc2VCdXR0b24oVyl7dGhpcy4jbj1XfSNvPSh3MSh0aGlzLEEpLHcxKHRoaXMsQywhMSkpO2dldCBzaG93SGVscEJ1dHRvbigpe3JldHVybiB0aGlzLiNvfXNldCBzaG93SGVscEJ1dHRvbihXKXt0aGlzLiNvPVd9I2w9KHcxKHRoaXMseiksdzEodGhpcyxULHZvaWQgMCkpO2dldCBvbkhlbHAoKXtyZXR1cm4gdGhpcy4jbH1zZXQgb25IZWxwKFcpe3RoaXMuI2w9V30jYz0odzEodGhpcywkKSx3MSh0aGlzLFIsITEpKTtnZXQgbW9iaWxlRnVsbHNjcmVlbigpe3JldHVybiB0aGlzLiNjfXNldCBtb2JpbGVGdWxsc2NyZWVuKFcpe3RoaXMuI2M9V30jZD0odzEodGhpcyxVKSx3MSh0aGlzLGosMTYpKTtnZXQgY29udGVudFBhZGRpbmcoKXtyZXR1cm4gdGhpcy4jZH1zZXQgY29udGVudFBhZGRpbmcoVyl7dGhpcy4jZD1XfSNoPSh3MSh0aGlzLG1lKSx3MSh0aGlzLEgsMWUzKSk7Z2V0IG1vZGFsWkluZGV4KCl7cmV0dXJuIHRoaXMuI2h9c2V0IG1vZGFsWkluZGV4KFcpe3RoaXMuI2g9V31jb25zdHJ1Y3Rvcigpe3N1cGVyKCl9c3RhdGljIHN0eWxlcz1bQ2UscC5kZWZhdWx0U3R5bGVzLFFgCiAgICAgIC8qIFRPRE86IE1pZ3JhdGUgaGFyZGNvZGVkIHZhbHVlcyB0byAtLWRlZXMtKiBDU1MgdmFyaWFibGVzICovCiAgICAgIDpob3N0IHsKICAgICAgICBmb250LWZhbWlseTogJHtKdH07CiAgICAgICAgY29sb3I6ICR7cC5iZFRoZW1lKCIjMzMzIiwiI2ZmZiIpfTsKICAgICAgICB3aWxsLWNoYW5nZTogdHJhbnNmb3JtOwogICAgICB9CiAgICAgIC5tb2RhbENvbnRhaW5lciB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBwb3NpdGlvbjogZml4ZWQ7CiAgICAgICAgdG9wOiAwcHg7CiAgICAgICAgbGVmdDogMHB4OwogICAgICAgIHdpZHRoOiAxMDB2dzsKICAgICAgICBoZWlnaHQ6IDEwMHZoOwogICAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKICAgICAgfQogICAgICAubW9kYWwgewogICAgICAgIHdpbGwtY2hhbmdlOiB0cmFuc2Zvcm07CiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDBweCkgc2NhbGUoMC45NSk7CiAgICAgICAgb3BhY2l0eTogMDsKICAgICAgICBtaW4taGVpZ2h0OiAxMjBweDsKICAgICAgICBtYXgtaGVpZ2h0OiBjYWxjKDEwMHZoIC0gNDBweCk7CiAgICAgICAgYmFja2dyb3VuZDogJHtwLmJkVGhlbWUoIiNmZmZmZmYiLCIjMDkwOTBiIil9OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDZweDsKICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAke3AuYmRUaGVtZSgiI2U1ZTdlYiIsIiMyNzI3MmEiKX07CiAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuMnMgZWFzZTsKICAgICAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgICAgIGJveC1zaGFkb3c6IDAgMXB4IDNweCByZ2JhKDAsIDAsIDAsIDAuMSksIDAgMXB4IDJweCByZ2JhKDAsIDAsIDAsIDAuMDYpOwogICAgICAgIG1hcmdpbjogMjBweDsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgICAgb3ZlcnNjcm9sbC1iZWhhdmlvcjogY29udGFpbjsKICAgICAgfQoKICAgICAgLyogV2lkdGggdmFyaWF0aW9ucyAqLwogICAgICAubW9kYWwud2lkdGgtc21hbGwgewogICAgICAgIHdpZHRoOiAzODBweDsKICAgICAgfQoKICAgICAgLm1vZGFsLndpZHRoLW1lZGl1bSB7CiAgICAgICAgd2lkdGg6IDU2MHB4OwogICAgICB9CgogICAgICAubW9kYWwud2lkdGgtbGFyZ2UgewogICAgICAgIHdpZHRoOiA4MDBweDsKICAgICAgfQoKICAgICAgLm1vZGFsLndpZHRoLWZ1bGxzY3JlZW4gewogICAgICAgIHdpZHRoOiBjYWxjKDEwMHZ3IC0gNDBweCk7CiAgICAgICAgaGVpZ2h0OiBjYWxjKDEwMHZoIC0gNDBweCk7CiAgICAgICAgbWF4LWhlaWdodDogY2FsYygxMDB2aCAtIDQwcHgpOwogICAgICB9CgogICAgICBAbWVkaWEgKG1heC13aWR0aDogNzY4cHgpIHsKICAgICAgICAubW9kYWwgewogICAgICAgICAgd2lkdGg6IGNhbGMoMTAwdncgLSA0MHB4KSAhaW1wb3J0YW50OwogICAgICAgICAgbWF4LXdpZHRoOiBub25lICFpbXBvcnRhbnQ7CiAgICAgICAgfQogICAgICAgIAogICAgICAgIC8qIEFsbG93IGZ1bGwgaGVpZ2h0IG9uIG1vYmlsZSB3aGVuIGNvbnRlbnQgbmVlZHMgaXQgKi8KICAgICAgICAubW9kYWxDb250YWluZXIgewogICAgICAgICAgcGFkZGluZzogMTBweDsKICAgICAgICB9CiAgICAgICAgCiAgICAgICAgLm1vZGFsIHsKICAgICAgICAgIG1hcmdpbjogMTBweDsKICAgICAgICAgIG1heC1oZWlnaHQ6IGNhbGMoMTAwdmggLSAyMHB4KTsKICAgICAgICB9CiAgICAgICAgCiAgICAgICAgLyogRnVsbCBzY3JlZW4gbW9kZSBvbiBtb2JpbGUgKi8KICAgICAgICAubW9kYWwubW9iaWxlLWZ1bGxzY3JlZW4gewogICAgICAgICAgd2lkdGg6IDEwMHZ3ICFpbXBvcnRhbnQ7CiAgICAgICAgICBoZWlnaHQ6IDEwMHZoICFpbXBvcnRhbnQ7CiAgICAgICAgICBtYXgtaGVpZ2h0OiAxMDB2aCAhaW1wb3J0YW50OwogICAgICAgICAgbWFyZ2luOiAwOwogICAgICAgICAgYm9yZGVyLXJhZGl1czogMDsKICAgICAgICAgIGJvcmRlcjogbm9uZTsKICAgICAgICB9CiAgICAgIH0KCiAgICAgIC5tb2RhbC5zaG93IHsKICAgICAgICBvcGFjaXR5OiAxOwogICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgwcHgpIHNjYWxlKDEpOwogICAgICB9CgogICAgICAubW9kYWwuc2hvdy5wcmVkZXN0cm95IHsKICAgICAgICBvcGFjaXR5OiAwOwogICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgxMHB4KSBzY2FsZSgxKTsKICAgICAgfQoKICAgICAgLm1vZGFsIC5oZWFkaW5nIHsKICAgICAgICBoZWlnaHQ6IDQwcHg7CiAgICAgICAgbWluLWhlaWdodDogNDBweDsKICAgICAgICBmb250LWZhbWlseTogJHtKdH07CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjsKICAgICAgICBwYWRkaW5nOiAwIDEycHg7CiAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICR7cC5iZFRoZW1lKCIjZTVlN2ViIiwiIzI3MjcyYSIpfTsKICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgICAgZmxleC1zaHJpbms6IDA7CiAgICAgIH0KCiAgICAgIC5tb2RhbCAuaGVhZGluZyAuaGVhZGVyLWJ1dHRvbnMgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBnYXA6IDRweDsKICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgICAgcmlnaHQ6IDhweDsKICAgICAgICB0b3A6IDUwJTsKICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSk7CiAgICAgIH0KCiAgICAgIC5tb2RhbCAuaGVhZGluZyAuaGVhZGVyLWJ1dHRvbiB7CiAgICAgICAgd2lkdGg6IDI4cHg7CiAgICAgICAgaGVpZ2h0OiAyOHB4OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDRweDsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7CiAgICAgICAgY3Vyc29yOiBwb2ludGVyOwogICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjE1cyBlYXNlOwogICAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50OwogICAgICAgIGNvbG9yOiAke3AuYmRUaGVtZSgiIzcxNzE3YSIsIiNhMWExYWEiKX07CiAgICAgIH0KCiAgICAgIC5tb2RhbCAuaGVhZGluZyAuaGVhZGVyLWJ1dHRvbjpob3ZlciB7CiAgICAgICAgYmFja2dyb3VuZDogJHtwLmJkVGhlbWUoIiNmNGY0ZjUiLCIjMjcyNzJhIil9OwogICAgICAgIGNvbG9yOiAke3AuYmRUaGVtZSgiIzA5MDkwYiIsIiNmYWZhZmEiKX07CiAgICAgIH0KCiAgICAgIC5tb2RhbCAuaGVhZGluZyAuaGVhZGVyLWJ1dHRvbjphY3RpdmUgewogICAgICAgIGJhY2tncm91bmQ6ICR7cC5iZFRoZW1lKCIjZTVlN2ViIiwiIzNmM2Y0NiIpfTsKICAgICAgfQoKICAgICAgLm1vZGFsIC5oZWFkaW5nIC5oZWFkZXItYnV0dG9uIGRlZXMtaWNvbiB7CiAgICAgICAgd2lkdGg6IDE2cHg7CiAgICAgICAgaGVpZ2h0OiAxNnB4OwogICAgICAgIGRpc3BsYXk6IGJsb2NrOwogICAgICB9CgogICAgICAubW9kYWwgLmhlYWRpbmcgLmhlYWRpbmctdGV4dCB7CiAgICAgICAgZmxleDogMTsKICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7CiAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDsKICAgICAgICBmb250LXNpemU6IDE0cHg7CiAgICAgICAgbGluZS1oZWlnaHQ6IDQwcHg7CiAgICAgICAgcGFkZGluZzogMCA0MHB4OwogICAgICAgIGNvbG9yOiAke3AuYmRUaGVtZSgiIzA5MDkwYiIsIiNmYWZhZmEiKX07CiAgICAgIH0KCiAgICAgIC5tb2RhbCAuY29udGVudCB7CiAgICAgICAgZmxleDogMTsKICAgICAgICBvdmVyZmxvdy15OiBhdXRvOwogICAgICAgIG92ZXJmbG93LXg6IGhpZGRlbjsKICAgICAgICBvdmVyc2Nyb2xsLWJlaGF2aW9yOiBjb250YWluOwogICAgICB9CiAgICAgIC5tb2RhbCAuYm90dG9tQnV0dG9ucyB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93OwogICAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAke3AuYmRUaGVtZSgiI2U1ZTdlYiIsIiMyNzI3MmEiKX07CiAgICAgICAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDsKICAgICAgICBnYXA6IDhweDsKICAgICAgICBwYWRkaW5nOiA4cHg7CiAgICAgICAgZmxleC1zaHJpbms6IDA7CiAgICAgIH0KCiAgICAgIC5tb2RhbCAuYm90dG9tQnV0dG9ucyAuYm90dG9tQnV0dG9uIHsKICAgICAgICBwYWRkaW5nOiA4cHggMTZweDsKICAgICAgICBib3JkZXItcmFkaXVzOiA0cHg7CiAgICAgICAgbGluZS1oZWlnaHQ6IDE2cHg7CiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyOwogICAgICAgIGZvbnQtc2l6ZTogMTRweDsKICAgICAgICBmb250LXdlaWdodDogNTAwOwogICAgICAgIGN1cnNvcjogcG9pbnRlcjsKICAgICAgICB1c2VyLXNlbGVjdDogbm9uZTsKICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC4xNXMgZWFzZTsKICAgICAgICBiYWNrZ3JvdW5kOiAke3AuYmRUaGVtZSgiI2ZmZmZmZiIsIiMyNzI3MmEiKX07CiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHtwLmJkVGhlbWUoIiNlNWU3ZWIiLCIjM2YzZjQ2Iil9OwogICAgICAgIGNvbG9yOiAke3AuYmRUaGVtZSgiIzA5MDkwYiIsIiNmYWZhZmEiKX07CiAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDsKICAgICAgfQoKICAgICAgLm1vZGFsIC5ib3R0b21CdXR0b25zIC5ib3R0b21CdXR0b246aG92ZXIgewogICAgICAgIGJhY2tncm91bmQ6ICR7cC5iZFRoZW1lKCIjZjRmNGY1IiwiIzNmM2Y0NiIpfTsKICAgICAgICBib3JkZXItY29sb3I6ICR7cC5iZFRoZW1lKCIjZDFkNWRiIiwiIzUyNTI1YiIpfTsKICAgICAgfQogICAgICAubW9kYWwgLmJvdHRvbUJ1dHRvbnMgLmJvdHRvbUJ1dHRvbjphY3RpdmUgewogICAgICAgIGJhY2tncm91bmQ6ICR7cC5iZFRoZW1lKCIjZTVlN2ViIiwiIzUyNTI1YiIpfTsKICAgICAgfQogICAgICAubW9kYWwgLmJvdHRvbUJ1dHRvbnMgLmJvdHRvbUJ1dHRvbjpsYXN0LWNoaWxkIHsKICAgICAgICBib3JkZXItcmlnaHQ6IG5vbmU7CiAgICAgIH0KCiAgICAgIC5tb2RhbCAuYm90dG9tQnV0dG9ucyAuYm90dG9tQnV0dG9uLnByaW1hcnkgewogICAgICAgIGJhY2tncm91bmQ6ICR7cC5iZFRoZW1lKCIjM2I4MmY2IiwiIzNiODJmNiIpfTsKICAgICAgICBib3JkZXItY29sb3I6ICR7cC5iZFRoZW1lKCIjM2I4MmY2IiwiIzNiODJmNiIpfTsKICAgICAgICBjb2xvcjogI2ZmZmZmZjsKICAgICAgfQogICAgICAubW9kYWwgLmJvdHRvbUJ1dHRvbnMgLmJvdHRvbUJ1dHRvbi5wcmltYXJ5OmhvdmVyIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke3AuYmRUaGVtZSgiIzI1NjNlYiIsIiMyNTYzZWIiKX07CiAgICAgICAgYm9yZGVyLWNvbG9yOiAke3AuYmRUaGVtZSgiIzI1NjNlYiIsIiMyNTYzZWIiKX07CiAgICAgIH0KICAgICAgLm1vZGFsIC5ib3R0b21CdXR0b25zIC5ib3R0b21CdXR0b24ucHJpbWFyeTphY3RpdmUgewogICAgICAgIGJhY2tncm91bmQ6ICR7cC5iZFRoZW1lKCIjMWQ0ZWQ4IiwiIzFkNGVkOCIpfTsKICAgICAgICBib3JkZXItY29sb3I6ICR7cC5iZFRoZW1lKCIjMWQ0ZWQ4IiwiIzFkNGVkOCIpfTsKICAgICAgfQogICAgYF07cmVuZGVyKCl7bGV0IFc9dHlwZW9mIHRoaXMud2lkdGg9PSJzdHJpbmciP2B3aWR0aC0ke3RoaXMud2lkdGh9YDoiIixEPXR5cGVvZiB0aGlzLndpZHRoPT0ibnVtYmVyIj9gJHt0aGlzLndpZHRofXB4YDoiIixPPXRoaXMubWF4V2lkdGg/YCR7dGhpcy5tYXhXaWR0aH1weGA6IiIsWj10aGlzLm1pbldpZHRoP2Ake3RoaXMubWluV2lkdGh9cHhgOiIiLFk9dGhpcy5tb2JpbGVGdWxsc2NyZWVuPyJtb2JpbGUtZnVsbHNjcmVlbiI6IiI7cmV0dXJuIHdgCiAgICAgIDxzdHlsZT4KICAgICAgICAke0Q/YC5tb2RhbCB7IHdpZHRoOiAke0R9OyB9YDoiIn0KICAgICAgICAke08/YC5tb2RhbCB7IG1heC13aWR0aDogJHtPfTsgfWA6IiJ9CiAgICAgICAgJHtaP2AubW9kYWwgeyBtaW4td2lkdGg6ICR7Wn07IH1gOiIifQogICAgICA8L3N0eWxlPgogICAgICA8ZGl2IGNsYXNzPSJtb2RhbENvbnRhaW5lciIgQGNsaWNrPSR7dGhpcy5oYW5kbGVPdXRzaWRlQ2xpY2t9IHN0eWxlPSJ6LWluZGV4OiAke3RoaXMubW9kYWxaSW5kZXh9Ij4KICAgICAgICA8ZGl2IGNsYXNzPSJtb2RhbCAke1d9ICR7WX0iPgogICAgICAgICAgPGRpdiBjbGFzcz0iaGVhZGluZyI+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9ImhlYWRpbmctdGV4dCI+JHt0aGlzLmhlYWRpbmd9PC9kaXY+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9ImhlYWRlci1idXR0b25zIj4KICAgICAgICAgICAgICAke3RoaXMuc2hvd0hlbHBCdXR0b24/d2AKICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImhlYWRlci1idXR0b24iIEBjbGljaz0ke3RoaXMuaGFuZGxlSGVscH0gdGl0bGU9IkhlbHAiPgogICAgICAgICAgICAgICAgICA8ZGVlcy1pY29uIC5pY29uPSR7Imx1Y2lkZTpoZWxwQ2lyY2xlIn0+PC9kZWVzLWljb24+CiAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICBgOiIifQogICAgICAgICAgICAgICR7dGhpcy5zaG93Q2xvc2VCdXR0b24/d2AKICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImhlYWRlci1idXR0b24iIEBjbGljaz0keygpPT50aGlzLmRlc3Ryb3koKX0gdGl0bGU9IkNsb3NlIj4KICAgICAgICAgICAgICAgICAgPGRlZXMtaWNvbiAuaWNvbj0keyJsdWNpZGU6eCJ9PjwvZGVlcy1pY29uPgogICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgYDoiIn0KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIDxkaXYgY2xhc3M9ImNvbnRlbnQiIHN0eWxlPSJwYWRkaW5nOiAke3RoaXMuY29udGVudFBhZGRpbmd9cHg7Ij4ke3RoaXMuY29udGVudH08L2Rpdj4KICAgICAgICAgICR7dGhpcy5tZW51T3B0aW9ucy5sZW5ndGg+MD93YAogICAgICAgICAgICA8ZGl2IGNsYXNzPSJib3R0b21CdXR0b25zIj4KICAgICAgICAgICAgICAke3RoaXMubWVudU9wdGlvbnMubWFwKChvZSxnZSk9PndgCiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImJvdHRvbUJ1dHRvbiAke2dlPT09dGhpcy5tZW51T3B0aW9ucy5sZW5ndGgtMT8icHJpbWFyeSI6IiJ9ICR7b2UubmFtZT09PSJPSyI/Im9rIjoiIn0iIEBjbGljaz0keygpPT57b2UuYWN0aW9uKHRoaXMpfX0+JHtvZS5uYW1lfTwvZGl2PgogICAgICAgICAgICAgICAgYCl9CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgYDoiIn0KICAgICAgICA8L2Rpdj4KICAgICAgPC9kaXY+CiAgICBgfXdpbmRvd0xheWVyPXcxKHRoaXMsY2UpO2FzeW5jIGZpcnN0VXBkYXRlZChXKXtzdXBlci5maXJzdFVwZGF0ZWQoVyksYXdhaXQoYXdhaXQgdGhpcy5kb210b29sc1Byb21pc2UpLmNvbnZlbmllbmNlLnNtYXJ0ZGVsYXkuZGVsYXlGb3IoMzApLHRoaXMuc2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yKCIubW9kYWwiKS5jbGFzc0xpc3QuYWRkKCJzaG93Iil9YXN5bmMgaGFuZGxlT3V0c2lkZUNsaWNrKFcpe1cuc3RvcFByb3BhZ2F0aW9uKCk7bGV0IEQ9dGhpcy5zaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3IoIi5tb2RhbENvbnRhaW5lciIpO1cudGFyZ2V0PT09RCYmYXdhaXQgdGhpcy5kZXN0cm95KCl9YXN5bmMgZGVzdHJveSgpe2xldCBXPWF3YWl0IHRoaXMuZG9tdG9vbHNQcm9taXNlO3RoaXMuc2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yKCIubW9kYWwiKS5jbGFzc0xpc3QuYWRkKCJwcmVkZXN0cm95IiksYXdhaXQgVy5jb252ZW5pZW5jZS5zbWFydGRlbGF5LmRlbGF5Rm9yKDIwMCksZG9jdW1lbnQuYm9keS5yZW1vdmVDaGlsZCh0aGlzKSxhd2FpdCB0aGlzLndpbmRvd0xheWVyLmRlc3Ryb3koKSxoMS51bnJlZ2lzdGVyKHRoaXMpfWFzeW5jIGhhbmRsZUhlbHAoKXt0aGlzLm9uSGVscCYmYXdhaXQgdGhpcy5vbkhlbHAoKX1zdGF0aWN7dzEoaSxhKX19O3JldHVybiBrZT1pfSkoKX0pO3ZhciBIOXQscTl0PWIoKCk9Pnt1ZSgpO0g5dD0oKT0+d2AKICAgIDxkZWVzLWxhYmVsIC5sYWJlbD0keyJhIGxhYmVsIn0+PC9kZWVzLWxhYmVsPgogIGB9KTt2YXIgVHgsWTAsVjl0LFRsPWIoKCk9PntzMigpO2dpKCk7dWUoKTtxOXQoKTtxZSgpO1R4PWZ1bmN0aW9uKHQsZSxhLGkscixzKXtmdW5jdGlvbiBuKHgpe2lmKHghPT12b2lkIDAmJnR5cGVvZiB4IT0iZnVuY3Rpb24iKXRocm93IG5ldyBUeXBlRXJyb3IoIkZ1bmN0aW9uIGV4cGVjdGVkIik7cmV0dXJuIHh9Zm9yKHZhciBvPWkua2luZCxkPW89PT0iZ2V0dGVyIj8iZ2V0IjpvPT09InNldHRlciI/InNldCI6InZhbHVlIixjPSFlJiZ0P2kuc3RhdGljP3Q6dC5wcm90b3R5cGU6bnVsbCxoPWV8fChjP09iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoYyxpLm5hbWUpOnt9KSxsLGY9ITEsZz1hLmxlbmd0aC0xO2c+PTA7Zy0tKXt2YXIgeT17fTtmb3IodmFyIHYgaW4gaSl5W3ZdPXY9PT0iYWNjZXNzIj97fTppW3ZdO2Zvcih2YXIgdiBpbiBpLmFjY2Vzcyl5LmFjY2Vzc1t2XT1pLmFjY2Vzc1t2XTt5LmFkZEluaXRpYWxpemVyPWZ1bmN0aW9uKHgpe2lmKGYpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGFkZCBpbml0aWFsaXplcnMgYWZ0ZXIgZGVjb3JhdGlvbiBoYXMgY29tcGxldGVkIik7cy5wdXNoKG4oeHx8bnVsbCkpfTt2YXIgbT0oMCxhW2ddKShvPT09ImFjY2Vzc29yIj97Z2V0OmguZ2V0LHNldDpoLnNldH06aFtkXSx5KTtpZihvPT09ImFjY2Vzc29yIil7aWYobT09PXZvaWQgMCljb250aW51ZTtpZihtPT09bnVsbHx8dHlwZW9mIG0hPSJvYmplY3QiKXRocm93IG5ldyBUeXBlRXJyb3IoIk9iamVjdCBleHBlY3RlZCIpOyhsPW4obS5nZXQpKSYmKGguZ2V0PWwpLChsPW4obS5zZXQpKSYmKGguc2V0PWwpLChsPW4obS5pbml0KSkmJnIudW5zaGlmdChsKX1lbHNlKGw9bihtKSkmJihvPT09ImZpZWxkIj9yLnVuc2hpZnQobCk6aFtkXT1sKX1jJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoYyxpLm5hbWUsaCksZj0hMH0sWTA9ZnVuY3Rpb24odCxlLGEpe2Zvcih2YXIgaT1hcmd1bWVudHMubGVuZ3RoPjIscj0wO3I8ZS5sZW5ndGg7cisrKWE9aT9lW3JdLmNhbGwodCxhKTplW3JdLmNhbGwodCk7cmV0dXJuIGk/YTp2b2lkIDB9LFY5dD0oKCk9PntsZXQgdD1bcGUoImRlZXMtbGFiZWwiKV0sZSxhPVtdLGkscj14ZSxzLG49W10sbz1bXSxkLGM9W10saD1bXSxsLGY9W10sZz1bXTt2YXIgeT1jbGFzcyBleHRlbmRzIHJ7c3RhdGlje2k9dGhpc31zdGF0aWN7bGV0IHY9dHlwZW9mIFN5bWJvbD09ImZ1bmN0aW9uIiYmU3ltYm9sLm1ldGFkYXRhP09iamVjdC5jcmVhdGUocltTeW1ib2wubWV0YWRhdGFdPz9udWxsKTp2b2lkIDA7cz1bSSh7dHlwZTpTdHJpbmcscmVmbGVjdDohMH0pXSxkPVtJKHt0eXBlOlN0cmluZyxyZWZsZWN0OiEwfSldLGw9W0koe3R5cGU6Qm9vbGVhbixyZWZsZWN0OiEwfSldLFR4KHRoaXMsbnVsbCxzLHtraW5kOiJhY2Nlc3NvciIsbmFtZToibGFiZWwiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOm09PiJsYWJlbCJpbiBtLGdldDptPT5tLmxhYmVsLHNldDoobSx4KT0+e20ubGFiZWw9eH19LG1ldGFkYXRhOnZ9LG4sbyksVHgodGhpcyxudWxsLGQse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJkZXNjcmlwdGlvbiIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6bT0+ImRlc2NyaXB0aW9uImluIG0sZ2V0Om09Pm0uZGVzY3JpcHRpb24sc2V0OihtLHgpPT57bS5kZXNjcmlwdGlvbj14fX0sbWV0YWRhdGE6dn0sYyxoKSxUeCh0aGlzLG51bGwsbCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InJlcXVpcmVkIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczptPT4icmVxdWlyZWQiaW4gbSxnZXQ6bT0+bS5yZXF1aXJlZCxzZXQ6KG0seCk9PnttLnJlcXVpcmVkPXh9fSxtZXRhZGF0YTp2fSxmLGcpLFR4KG51bGwsZT17dmFsdWU6aX0sdCx7a2luZDoiY2xhc3MiLG5hbWU6aS5uYW1lLG1ldGFkYXRhOnZ9LG51bGwsYSkseT1pPWUudmFsdWUsdiYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGksU3ltYm9sLm1ldGFkYXRhLHtlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMCx2YWx1ZTp2fSl9c3RhdGljIGRlbW89SDl0O3N0YXRpYyBkZW1vR3JvdXBzPVsiTGF5b3V0IiwiSW5wdXQiXTsjZT1ZMCh0aGlzLG4sIiIpO2dldCBsYWJlbCgpe3JldHVybiB0aGlzLiNlfXNldCBsYWJlbCh2KXt0aGlzLiNlPXZ9I3Q9KFkwKHRoaXMsbyksWTAodGhpcyxjLHZvaWQgMCkpO2dldCBkZXNjcmlwdGlvbigpe3JldHVybiB0aGlzLiN0fXNldCBkZXNjcmlwdGlvbih2KXt0aGlzLiN0PXZ9I2E9KFkwKHRoaXMsaCksWTAodGhpcyxmLCExKSk7Z2V0IHJlcXVpcmVkKCl7cmV0dXJuIHRoaXMuI2F9c2V0IHJlcXVpcmVkKHYpe3RoaXMuI2E9dn1zdGF0aWMgc3R5bGVzPVtDZSxwLmRlZmF1bHRTdHlsZXMsUWAKICAgICAgLyogVE9ETzogTWlncmF0ZSBoYXJkY29kZWQgdmFsdWVzIHRvIC0tZGVlcy0qIENTUyB2YXJpYWJsZXMgKi8KICAgICAgOmhvc3QgewogICAgICAgIGZvbnQtZmFtaWx5OiAtYXBwbGUtc3lzdGVtLCBCbGlua01hY1N5c3RlbUZvbnQsICdTZWdvZSBVSScsICdSb2JvdG8nLCBzYW5zLXNlcmlmOwogICAgICB9CgogICAgICAubGFiZWwgewogICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jazsKICAgICAgICBjb2xvcjogJHtwLmJkVGhlbWUoImhzbCgwIDAlIDE1JSkiLCJoc2woMCAwJSA5MCUpIil9OwogICAgICAgIGZvbnQtc2l6ZTogMTRweDsKICAgICAgICBmb250LXdlaWdodDogNTAwOwogICAgICAgIGxpbmUtaGVpZ2h0OiAxLjU7CiAgICAgICAgbWFyZ2luLWJvdHRvbTogNnB4OwogICAgICAgIGN1cnNvcjogZGVmYXVsdDsKICAgICAgICB1c2VyLXNlbGVjdDogbm9uZTsKICAgICAgICBsZXR0ZXItc3BhY2luZzogLTAuMDFlbTsKICAgICAgfQoKICAgICAgLnJlcXVpcmVkIHsKICAgICAgICBjb2xvcjogJHtwLmJkVGhlbWUoImhzbCgwIDg0LjIlIDYwLjIlKSIsImhzbCgwIDcyLjIlIDUwLjYlKSIpfTsKICAgICAgICBtYXJnaW4tbGVmdDogMnB4OwogICAgICB9CgogICAgICBkZWVzLWljb24gewogICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jazsKICAgICAgICBmb250LXNpemU6IDEycHg7CiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDFweCk7CiAgICAgICAgbWFyZ2luLWxlZnQ6IDRweDsKICAgICAgICBjb2xvcjogJHtwLmJkVGhlbWUoImhzbCgwIDAlIDQ1LjElKSIsImhzbCgwIDAlIDYzLjklKSIpfTsKICAgICAgICBjdXJzb3I6IGhlbHA7CiAgICAgIH0KICAgIGBdO3JlbmRlcigpe3JldHVybiB3YAogICAgICAke3RoaXMubGFiZWw/d2AKICAgICAgICAgICAgPGRpdiBjbGFzcz0ibGFiZWwiPgogICAgICAgICAgICAgICR7dGhpcy5sYWJlbH0KICAgICAgICAgICAgICAke3RoaXMucmVxdWlyZWQ/d2A8c3BhbiBjbGFzcz0icmVxdWlyZWQiPio8L3NwYW4+YDoiIn0KICAgICAgICAgICAgICAke3RoaXMuZGVzY3JpcHRpb24/d2AKICAgICAgICAgICAgICAgICAgICA8ZGVlcy1pY29uIC5pY29uPSR7Imx1Y2lkZTppbmZvIn0+PC9kZWVzLWljb24+CiAgICAgICAgICAgICAgICAgICAgPGRlZXMtc3BlZWNoYnViYmxlIC50ZXh0PSR7dGhpcy5kZXNjcmlwdGlvbn0+PC9kZWVzLXNwZWVjaGJ1YmJsZT4KICAgICAgICAgICAgICAgICAgYDp3YGB9CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgYDp3YGB9CiAgICBgfWNvbnN0cnVjdG9yKCl7c3VwZXIoLi4uYXJndW1lbnRzKSxZMCh0aGlzLGcpfXN0YXRpY3tZMChpLGEpfX07cmV0dXJuIHk9aX0pKCl9KTt2YXIgTHgsRXE9YigoKT0+e0x4PSIwLjU1LjEifSk7dmFyIExsLFdpLGo5dCxaMD1iKCgpPT57dWUoKTtUdCgpO0VxKCk7cWUoKTtMbD1mdW5jdGlvbih0LGUsYSxpLHIscyl7ZnVuY3Rpb24gbih4KXtpZih4IT09dm9pZCAwJiZ0eXBlb2YgeCE9ImZ1bmN0aW9uIil0aHJvdyBuZXcgVHlwZUVycm9yKCJGdW5jdGlvbiBleHBlY3RlZCIpO3JldHVybiB4fWZvcih2YXIgbz1pLmtpbmQsZD1vPT09ImdldHRlciI/ImdldCI6bz09PSJzZXR0ZXIiPyJzZXQiOiJ2YWx1ZSIsYz0hZSYmdD9pLnN0YXRpYz90OnQucHJvdG90eXBlOm51bGwsaD1lfHwoYz9PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGMsaS5uYW1lKTp7fSksbCxmPSExLGc9YS5sZW5ndGgtMTtnPj0wO2ctLSl7dmFyIHk9e307Zm9yKHZhciB2IGluIGkpeVt2XT12PT09ImFjY2VzcyI/e306aVt2XTtmb3IodmFyIHYgaW4gaS5hY2Nlc3MpeS5hY2Nlc3Nbdl09aS5hY2Nlc3Nbdl07eS5hZGRJbml0aWFsaXplcj1mdW5jdGlvbih4KXtpZihmKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBhZGQgaW5pdGlhbGl6ZXJzIGFmdGVyIGRlY29yYXRpb24gaGFzIGNvbXBsZXRlZCIpO3MucHVzaChuKHh8fG51bGwpKX07dmFyIG09KDAsYVtnXSkobz09PSJhY2Nlc3NvciI/e2dldDpoLmdldCxzZXQ6aC5zZXR9OmhbZF0seSk7aWYobz09PSJhY2Nlc3NvciIpe2lmKG09PT12b2lkIDApY29udGludWU7aWYobT09PW51bGx8fHR5cGVvZiBtIT0ib2JqZWN0Iil0aHJvdyBuZXcgVHlwZUVycm9yKCJPYmplY3QgZXhwZWN0ZWQiKTsobD1uKG0uZ2V0KSkmJihoLmdldD1sKSwobD1uKG0uc2V0KSkmJihoLnNldD1sKSwobD1uKG0uaW5pdCkpJiZyLnVuc2hpZnQobCl9ZWxzZShsPW4obSkpJiYobz09PSJmaWVsZCI/ci51bnNoaWZ0KGwpOmhbZF09bCl9YyYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGMsaS5uYW1lLGgpLGY9ITB9LFdpPWZ1bmN0aW9uKHQsZSxhKXtmb3IodmFyIGk9YXJndW1lbnRzLmxlbmd0aD4yLHI9MDtyPGUubGVuZ3RoO3IrKylhPWk/ZVtyXS5jYWxsKHQsYSk6ZVtyXS5jYWxsKHQpO3JldHVybiBpP2E6dm9pZCAwfSxqOXQ9KCgpPT57bGV0IHQ9W3BlKCJkZWVzLXdvcmtzcGFjZS1tb25hY28iKV0sZSxhPVtdLGkscj14ZSxzLG49W10sbz1bXSxkLGM9W10saD1bXSxsLGY9W10sZz1bXSx5LHY9W10sbT1bXSx4LE09W10sUz1bXTt2YXIgRj1jbGFzcyBleHRlbmRzIHJ7c3RhdGlje2k9dGhpc31zdGF0aWN7bGV0IF89dHlwZW9mIFN5bWJvbD09ImZ1bmN0aW9uIiYmU3ltYm9sLm1ldGFkYXRhP09iamVjdC5jcmVhdGUocltTeW1ib2wubWV0YWRhdGFdPz9udWxsKTp2b2lkIDA7cz1bSSh7dHlwZTpTdHJpbmd9KV0sZD1bSSh7dHlwZTpTdHJpbmd9KV0sbD1bSSh7dHlwZTpTdHJpbmd9KV0seT1bSSh7dHlwZTpPYmplY3R9KV0seD1bSSh7dHlwZTpCb29sZWFufSldLExsKHRoaXMsbnVsbCxzLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiY29udGVudCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6az0+ImNvbnRlbnQiaW4gayxnZXQ6az0+ay5jb250ZW50LHNldDooayxOKT0+e2suY29udGVudD1OfX0sbWV0YWRhdGE6X30sbixvKSxMbCh0aGlzLG51bGwsZCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6Imxhbmd1YWdlIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczprPT4ibGFuZ3VhZ2UiaW4gayxnZXQ6az0+ay5sYW5ndWFnZSxzZXQ6KGssTik9PntrLmxhbmd1YWdlPU59fSxtZXRhZGF0YTpffSxjLGgpLExsKHRoaXMsbnVsbCxsLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiZmlsZVBhdGgiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOms9PiJmaWxlUGF0aCJpbiBrLGdldDprPT5rLmZpbGVQYXRoLHNldDooayxOKT0+e2suZmlsZVBhdGg9Tn19LG1ldGFkYXRhOl99LGYsZyksTGwodGhpcyxudWxsLHkse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJjb250ZW50U3ViamVjdCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6az0+ImNvbnRlbnRTdWJqZWN0ImluIGssZ2V0Oms9PmsuY29udGVudFN1YmplY3Qsc2V0OihrLE4pPT57ay5jb250ZW50U3ViamVjdD1OfX0sbWV0YWRhdGE6X30sdixtKSxMbCh0aGlzLG51bGwseCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6IndvcmRXcmFwIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczprPT4id29yZFdyYXAiaW4gayxnZXQ6az0+ay53b3JkV3JhcCxzZXQ6KGssTik9PntrLndvcmRXcmFwPU59fSxtZXRhZGF0YTpffSxNLFMpLExsKG51bGwsZT17dmFsdWU6aX0sdCx7a2luZDoiY2xhc3MiLG5hbWU6aS5uYW1lLG1ldGFkYXRhOl99LG51bGwsYSksRj1pPWUudmFsdWUsXyYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGksU3ltYm9sLm1ldGFkYXRhLHtlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMCx2YWx1ZTpffSl9c3RhdGljIGRlbW89KCk9PndgPGRlZXMtd29ya3NwYWNlLW1vbmFjbz48L2RlZXMtd29ya3NwYWNlLW1vbmFjbz5gO3N0YXRpYyBkZW1vR3JvdXBzPVsiV29ya3NwYWNlIl07c3RhdGljIG1vbmFjb0RlZmVycmVkO2VkaXRvckRlZmVycmVkPU10LnNtYXJ0cHJvbWlzZS5kZWZlcigpOyNlPVdpKHRoaXMsbixgZnVuY3Rpb24gaGVsbG8oKSB7CglhbGVydCgnSGVsbG8gd29ybGQhJyk7Cn1gKTtnZXQgY29udGVudCgpe3JldHVybiB0aGlzLiNlfXNldCBjb250ZW50KF8pe3RoaXMuI2U9X30jdD0oV2kodGhpcyxvKSxXaSh0aGlzLGMsInR5cGVzY3JpcHQiKSk7Z2V0IGxhbmd1YWdlKCl7cmV0dXJuIHRoaXMuI3R9c2V0IGxhbmd1YWdlKF8pe3RoaXMuI3Q9X30jYT0oV2kodGhpcyxoKSxXaSh0aGlzLGYsIiIpKTtnZXQgZmlsZVBhdGgoKXtyZXR1cm4gdGhpcy4jYX1zZXQgZmlsZVBhdGgoXyl7dGhpcy4jYT1ffSNpPShXaSh0aGlzLGcpLFdpKHRoaXMsdixuZXcgTXQuc21hcnRyeC5yeGpzLlN1YmplY3QpKTtnZXQgY29udGVudFN1YmplY3QoKXtyZXR1cm4gdGhpcy4jaX1zZXQgY29udGVudFN1YmplY3QoXyl7dGhpcy4jaT1ffSNyPShXaSh0aGlzLG0pLFdpKHRoaXMsTSwib2ZmIikpO2dldCB3b3JkV3JhcCgpe3JldHVybiB0aGlzLiNyfXNldCB3b3JkV3JhcChfKXt0aGlzLiNyPV99bW9uYWNvVGhlbWVTdWJzY3JpcHRpb249KFdpKHRoaXMsUyksbnVsbCk7aXNVcGRhdGluZ0Zyb21FeHRlcm5hbD0hMTtjb25zdHJ1Y3Rvcigpe3N1cGVyKCksRzIuc2V0dXBEb21Ub29scygpfXN0YXRpYyBzdHlsZXM9W0NlLHAuZGVmYXVsdFN0eWxlcyxRYAogICAgICAvKiBUT0RPOiBNaWdyYXRlIGhhcmRjb2RlZCB2YWx1ZXMgdG8gLS1kZWVzLSogQ1NTIHZhcmlhYmxlcyAqLwogICAgICA6aG9zdCB7CiAgICAgICAgZGlzcGxheTogYmxvY2s7CiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICAgIGhlaWdodDogMTAwJTsKICAgICAgICB3aWR0aDogMTAwJTsKICAgICAgfQoKICAgICAgKiB7CiAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDsKICAgICAgfQoKICAgICAgLm1haW5ib3ggewogICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgICBoZWlnaHQ6IDEwMCU7CiAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgIH0KCiAgICAgICNjb250YWluZXIgewogICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgICBoZWlnaHQ6IDEwMCU7CiAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgIH0KICAgIGBdO3JlbmRlcigpe3JldHVybiB3YAogICAgICA8ZGl2IGNsYXNzPSJtYWluYm94Ij4KICAgICAgICA8ZGl2IGlkPSJjb250YWluZXIiPjwvZGl2PgogICAgICA8L2Rpdj4KICAgIGB9YXN5bmMgZmlyc3RVcGRhdGVkKF8pe3N1cGVyLmZpcnN0VXBkYXRlZChfKTtsZXQgaz10aGlzLnNoYWRvd1Jvb3QuZ2V0RWxlbWVudEJ5SWQoImNvbnRhaW5lciIpLE49YGh0dHBzOi8vY2RuLmpzZGVsaXZyLm5ldC9ucG0vbW9uYWNvLWVkaXRvckAke0x4fWA7aWYoIUYubW9uYWNvRGVmZXJyZWQpe0YubW9uYWNvRGVmZXJyZWQ9TXQuc21hcnRwcm9taXNlLmRlZmVyKCk7bGV0IEM9YCR7Tn0vbWluL3ZzL2xvYWRlci5qc2Asej1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJzY3JpcHQiKTt6LnNyYz1DLHoub25sb2FkPSgpPT57Ri5tb25hY29EZWZlcnJlZC5yZXNvbHZlKCl9LGRvY3VtZW50LmhlYWQuYXBwZW5kQ2hpbGQoeil9YXdhaXQgRi5tb25hY29EZWZlcnJlZC5wcm9taXNlLHdpbmRvdy5yZXF1aXJlLmNvbmZpZyh7cGF0aHM6e3ZzOmAke059L21pbi92c2B9fSksd2luZG93LnJlcXVpcmUoWyJ2cy9lZGl0b3IvZWRpdG9yLm1haW4iXSxhc3luYygpPT57bGV0IEM9YXdhaXQgdGhpcy5kb210b29sc1Byb21pc2UsRT1DLnRoZW1lTWFuYWdlci5nb0JyaWdodEJvb2xlYW4/InZzIjoidnMtZGFyayIsVD13aW5kb3cubW9uYWNvLCQ9bnVsbDtpZih0aGlzLmZpbGVQYXRoKXtsZXQgUj1ULlVyaS5wYXJzZShgZmlsZTovLyR7dGhpcy5maWxlUGF0aH1gKTskPVQuZWRpdG9yLmdldE1vZGVsKFIpLCQ/JC5zZXRWYWx1ZSh0aGlzLmNvbnRlbnQpOiQ9VC5lZGl0b3IuY3JlYXRlTW9kZWwodGhpcy5jb250ZW50LHRoaXMubGFuZ3VhZ2UsUil9bGV0IFY9VC5lZGl0b3IuY3JlYXRlKGsse21vZGVsOiR8fHZvaWQgMCx2YWx1ZTokP3ZvaWQgMDp0aGlzLmNvbnRlbnQsbGFuZ3VhZ2U6JD92b2lkIDA6dGhpcy5sYW5ndWFnZSx0aGVtZTpFLHVzZVNoYWRvd0RPTTohMCxmb250U2l6ZToxNixhdXRvbWF0aWNMYXlvdXQ6ITAsd29yZFdyYXA6dGhpcy53b3JkV3JhcCxob3Zlcjp7ZW5hYmxlZDohMCxkZWxheTozMDAsc3RpY2t5OiEwLGFib3ZlOiExfX0pO3RoaXMubW9uYWNvVGhlbWVTdWJzY3JpcHRpb249Qy50aGVtZU1hbmFnZXIudGhlbWVPYnNlcnZhYmxlLnN1YnNjcmliZShSPT57bGV0IFU9Uj8idnMiOiJ2cy1kYXJrIjtWLnVwZGF0ZU9wdGlvbnMoe3RoZW1lOlV9KX0pLHRoaXMuZWRpdG9yRGVmZXJyZWQucmVzb2x2ZShWKX0pO2xldCBMPWF3YWl0KGF3YWl0IGZldGNoKGAke059L21pbi92cy9lZGl0b3IvZWRpdG9yLm1haW4uY3NzYCkpLnRleHQoKSxBPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInN0eWxlIik7QS50ZXh0Q29udGVudD1MLHRoaXMuc2hhZG93Um9vdC5hcHBlbmQoQSk7bGV0IHE9YXdhaXQgdGhpcy5lZGl0b3JEZWZlcnJlZC5wcm9taXNlO3Eub25EaWRDaGFuZ2VNb2RlbENvbnRlbnQoYXN5bmMgQz0+e2lmKHRoaXMuaXNVcGRhdGluZ0Zyb21FeHRlcm5hbClyZXR1cm47bGV0IHo9cS5nZXRWYWx1ZSgpO3RoaXMuY29udGVudFN1YmplY3QubmV4dCh6KSx0aGlzLmRpc3BhdGNoRXZlbnQobmV3IEN1c3RvbUV2ZW50KCJjb250ZW50LWNoYW5nZSIse2RldGFpbDp6LGJ1YmJsZXM6ITAsY29tcG9zZWQ6ITB9KSl9KSx0aGlzLmNvbnRlbnRTdWJqZWN0Lm5leHQocS5nZXRWYWx1ZSgpKX1hc3luYyB1cGRhdGVkKF8pe3N1cGVyLnVwZGF0ZWQoXyk7bGV0IGs9d2luZG93Lm1vbmFjbztpZihrKXtpZihfLmhhcygiZmlsZVBhdGgiKSYmdGhpcy5maWxlUGF0aCl7bGV0IE49YXdhaXQgdGhpcy5lZGl0b3JEZWZlcnJlZC5wcm9taXNlLEw9ay5VcmkucGFyc2UoYGZpbGU6Ly8ke3RoaXMuZmlsZVBhdGh9YCksQT1rLmVkaXRvci5nZXRNb2RlbChMKTtBP0EuZ2V0VmFsdWUoKSE9PXRoaXMuY29udGVudCYmKHRoaXMuaXNVcGRhdGluZ0Zyb21FeHRlcm5hbD0hMCxBLnNldFZhbHVlKHRoaXMuY29udGVudCksdGhpcy5pc1VwZGF0aW5nRnJvbUV4dGVybmFsPSExKTpBPWsuZWRpdG9yLmNyZWF0ZU1vZGVsKHRoaXMuY29udGVudCx0aGlzLmxhbmd1YWdlLEwpLE4uZ2V0TW9kZWwoKT8udXJpLnRvU3RyaW5nKCkhPT1MLnRvU3RyaW5nKCkmJk4uc2V0TW9kZWwoQSk7cmV0dXJufWlmKF8uaGFzKCJjb250ZW50Iikpe2xldCBOPWF3YWl0IHRoaXMuZWRpdG9yRGVmZXJyZWQucHJvbWlzZTtOLmdldFZhbHVlKCkhPT10aGlzLmNvbnRlbnQmJih0aGlzLmlzVXBkYXRpbmdGcm9tRXh0ZXJuYWw9ITAsTi5zZXRWYWx1ZSh0aGlzLmNvbnRlbnQpLHRoaXMuaXNVcGRhdGluZ0Zyb21FeHRlcm5hbD0hMSl9aWYoXy5oYXMoImxhbmd1YWdlIikpe2xldCBMPShhd2FpdCB0aGlzLmVkaXRvckRlZmVycmVkLnByb21pc2UpLmdldE1vZGVsKCk7TCYmay5lZGl0b3Iuc2V0TW9kZWxMYW5ndWFnZShMLHRoaXMubGFuZ3VhZ2UpfX19YXN5bmMgZGlzY29ubmVjdGVkQ2FsbGJhY2soKXthd2FpdCBzdXBlci5kaXNjb25uZWN0ZWRDYWxsYmFjaygpLHRoaXMubW9uYWNvVGhlbWVTdWJzY3JpcHRpb24mJih0aGlzLm1vbmFjb1RoZW1lU3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCksdGhpcy5tb25hY29UaGVtZVN1YnNjcmlwdGlvbj1udWxsKX1hc3luYyBzZXRDb250ZW50RXh0ZXJuYWwoXyxrPSEwKXtsZXQgTj1hd2FpdCB0aGlzLmVkaXRvckRlZmVycmVkLnByb21pc2U7aWYoTi5nZXRWYWx1ZSgpPT09XylyZXR1cm47bGV0IEE9az9OLmdldFBvc2l0aW9uKCk6bnVsbCxxPWs/Ti5nZXRTZWxlY3Rpb25zKCk6bnVsbCxDPWs/Ti5nZXRTY3JvbGxUb3AoKTowLHo9az9OLmdldFNjcm9sbExlZnQoKTowO2lmKHRoaXMuaXNVcGRhdGluZ0Zyb21FeHRlcm5hbD0hMCxOLnNldFZhbHVlKF8pLHRoaXMuaXNVcGRhdGluZ0Zyb21FeHRlcm5hbD0hMSxrKXtpZihBKXtsZXQgRT1OLmdldE1vZGVsKCksVD1FPy5nZXRMaW5lQ291bnQoKXx8MSwkPU1hdGgubWluKEEubGluZU51bWJlcixUKSxWPUU/LmdldExpbmVNYXhDb2x1bW4oJCl8fDEsUj1NYXRoLm1pbihBLmNvbHVtbixWKTtOLnNldFBvc2l0aW9uKHtsaW5lTnVtYmVyOiQsY29sdW1uOlJ9KX1pZihxJiZxLmxlbmd0aD4wKXRyeXtOLnNldFNlbGVjdGlvbnMocSl9Y2F0Y2h7fU4uc2V0U2Nyb2xsUG9zaXRpb24oe3Njcm9sbFRvcDpDLHNjcm9sbExlZnQ6en0pfX1zdGF0aWN7V2koaSxhKX19O3JldHVybiBGPWl9KSgpfSk7dmFyIG9vLGhhLHk4LCR4LFBxPWIoKCk9PntfMSgpO3VlKCk7cWUoKTtHMCgpO0R0KCk7VGwoKTtaMCgpO1owKCk7b289ZnVuY3Rpb24odCxlLGEsaSxyLHMpe2Z1bmN0aW9uIG4oeCl7aWYoeCE9PXZvaWQgMCYmdHlwZW9mIHghPSJmdW5jdGlvbiIpdGhyb3cgbmV3IFR5cGVFcnJvcigiRnVuY3Rpb24gZXhwZWN0ZWQiKTtyZXR1cm4geH1mb3IodmFyIG89aS5raW5kLGQ9bz09PSJnZXR0ZXIiPyJnZXQiOm89PT0ic2V0dGVyIj8ic2V0IjoidmFsdWUiLGM9IWUmJnQ/aS5zdGF0aWM/dDp0LnByb3RvdHlwZTpudWxsLGg9ZXx8KGM/T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihjLGkubmFtZSk6e30pLGwsZj0hMSxnPWEubGVuZ3RoLTE7Zz49MDtnLS0pe3ZhciB5PXt9O2Zvcih2YXIgdiBpbiBpKXlbdl09dj09PSJhY2Nlc3MiP3t9Omlbdl07Zm9yKHZhciB2IGluIGkuYWNjZXNzKXkuYWNjZXNzW3ZdPWkuYWNjZXNzW3ZdO3kuYWRkSW5pdGlhbGl6ZXI9ZnVuY3Rpb24oeCl7aWYoZil0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgYWRkIGluaXRpYWxpemVycyBhZnRlciBkZWNvcmF0aW9uIGhhcyBjb21wbGV0ZWQiKTtzLnB1c2gobih4fHxudWxsKSl9O3ZhciBtPSgwLGFbZ10pKG89PT0iYWNjZXNzb3IiP3tnZXQ6aC5nZXQsc2V0Omguc2V0fTpoW2RdLHkpO2lmKG89PT0iYWNjZXNzb3IiKXtpZihtPT09dm9pZCAwKWNvbnRpbnVlO2lmKG09PT1udWxsfHx0eXBlb2YgbSE9Im9iamVjdCIpdGhyb3cgbmV3IFR5cGVFcnJvcigiT2JqZWN0IGV4cGVjdGVkIik7KGw9bihtLmdldCkpJiYoaC5nZXQ9bCksKGw9bihtLnNldCkpJiYoaC5zZXQ9bCksKGw9bihtLmluaXQpKSYmci51bnNoaWZ0KGwpfWVsc2UobD1uKG0pKSYmKG89PT0iZmllbGQiP3IudW5zaGlmdChsKTpoW2RdPWwpfWMmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShjLGkubmFtZSxoKSxmPSEwfSxoYT1mdW5jdGlvbih0LGUsYSl7Zm9yKHZhciBpPWFyZ3VtZW50cy5sZW5ndGg+MixyPTA7cjxlLmxlbmd0aDtyKyspYT1pP2Vbcl0uY2FsbCh0LGEpOmVbcl0uY2FsbCh0KTtyZXR1cm4gaT9hOnZvaWQgMH0seTg9W3trZXk6InR5cGVzY3JpcHQiLGxhYmVsOiJUeXBlU2NyaXB0In0se2tleToiamF2YXNjcmlwdCIsbGFiZWw6IkphdmFTY3JpcHQifSx7a2V5OiJqc29uIixsYWJlbDoiSlNPTiJ9LHtrZXk6Imh0bWwiLGxhYmVsOiJIVE1MIn0se2tleToiY3NzIixsYWJlbDoiQ1NTIn0se2tleToic2NzcyIsbGFiZWw6IlNDU1MifSx7a2V5OiJtYXJrZG93biIsbGFiZWw6Ik1hcmtkb3duIn0se2tleToieWFtbCIsbGFiZWw6IllBTUwifSx7a2V5OiJ4bWwiLGxhYmVsOiJYTUwifSx7a2V5OiJzcWwiLGxhYmVsOiJTUUwifSx7a2V5OiJweXRob24iLGxhYmVsOiJQeXRob24ifSx7a2V5OiJqYXZhIixsYWJlbDoiSmF2YSJ9LHtrZXk6ImNzaGFycCIsbGFiZWw6IkMjIn0se2tleToiY3BwIixsYWJlbDoiQysrIn0se2tleToiZ28iLGxhYmVsOiJHbyJ9LHtrZXk6InJ1c3QiLGxhYmVsOiJSdXN0In0se2tleToic2hlbGwiLGxhYmVsOiJTaGVsbCJ9LHtrZXk6InBsYWludGV4dCIsbGFiZWw6IlBsYWluIFRleHQifV0sJHg9KCgpPT57bGV0IHQ9W3BlKCJkZWVzLWlucHV0LWNvZGUiKV0sZSxhPVtdLGkscj1YZSxzLG49W10sbz1bXSxkLGM9W10saD1bXSxsLGY9W10sZz1bXSx5LHY9W10sbT1bXSx4LE09W10sUz1bXSxGLF89W10saz1bXSxOLEw9W10sQT1bXTt2YXIgcT1jbGFzcyBleHRlbmRzIHJ7c3RhdGlje2k9dGhpc31zdGF0aWN7bGV0IEM9dHlwZW9mIFN5bWJvbD09ImZ1bmN0aW9uIiYmU3ltYm9sLm1ldGFkYXRhP09iamVjdC5jcmVhdGUocltTeW1ib2wubWV0YWRhdGFdPz9udWxsKTp2b2lkIDA7cz1bSSh7dHlwZTpTdHJpbmd9KV0sZD1bSSh7dHlwZTpTdHJpbmd9KV0sbD1bSSh7dHlwZTpTdHJpbmd9KV0seT1bSSh7dHlwZTpTdHJpbmd9KV0seD1bSSh7dHlwZTpCb29sZWFufSldLEY9W0ooKV0sTj1bSigpXSxvbyh0aGlzLG51bGwscyx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InZhbHVlIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczp6PT4idmFsdWUiaW4geixnZXQ6ej0+ei52YWx1ZSxzZXQ6KHosRSk9Pnt6LnZhbHVlPUV9fSxtZXRhZGF0YTpDfSxuLG8pLG9vKHRoaXMsbnVsbCxkLHtraW5kOiJhY2Nlc3NvciIsbmFtZToibGFuZ3VhZ2UiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOno9PiJsYW5ndWFnZSJpbiB6LGdldDp6PT56Lmxhbmd1YWdlLHNldDooeixFKT0+e3oubGFuZ3VhZ2U9RX19LG1ldGFkYXRhOkN9LGMsaCksb28odGhpcyxudWxsLGwse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJoZWlnaHQiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOno9PiJoZWlnaHQiaW4geixnZXQ6ej0+ei5oZWlnaHQsc2V0Oih6LEUpPT57ei5oZWlnaHQ9RX19LG1ldGFkYXRhOkN9LGYsZyksb28odGhpcyxudWxsLHkse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJ3b3JkV3JhcCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6ej0+IndvcmRXcmFwImluIHosZ2V0Ono9Pnoud29yZFdyYXAsc2V0Oih6LEUpPT57ei53b3JkV3JhcD1FfX0sbWV0YWRhdGE6Q30sdixtKSxvbyh0aGlzLG51bGwseCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InNob3dMaW5lTnVtYmVycyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6ej0+InNob3dMaW5lTnVtYmVycyJpbiB6LGdldDp6PT56LnNob3dMaW5lTnVtYmVycyxzZXQ6KHosRSk9Pnt6LnNob3dMaW5lTnVtYmVycz1FfX0sbWV0YWRhdGE6Q30sTSxTKSxvbyh0aGlzLG51bGwsRix7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImlzTGFuZ3VhZ2VEcm9wZG93bk9wZW4iLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOno9PiJpc0xhbmd1YWdlRHJvcGRvd25PcGVuImluIHosZ2V0Ono9PnouaXNMYW5ndWFnZURyb3Bkb3duT3BlbixzZXQ6KHosRSk9Pnt6LmlzTGFuZ3VhZ2VEcm9wZG93bk9wZW49RX19LG1ldGFkYXRhOkN9LF8sayksb28odGhpcyxudWxsLE4se2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJjb3B5U3VjY2VzcyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6ej0+ImNvcHlTdWNjZXNzImluIHosZ2V0Ono9PnouY29weVN1Y2Nlc3Msc2V0Oih6LEUpPT57ei5jb3B5U3VjY2Vzcz1FfX0sbWV0YWRhdGE6Q30sTCxBKSxvbyhudWxsLGU9e3ZhbHVlOml9LHQse2tpbmQ6ImNsYXNzIixuYW1lOmkubmFtZSxtZXRhZGF0YTpDfSxudWxsLGEpLHE9aT1lLnZhbHVlLEMmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShpLFN5bWJvbC5tZXRhZGF0YSx7ZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITAsdmFsdWU6Q30pfXN0YXRpYyBkZW1vPSgpPT53YAogICAgPGRlZXMtaW5wdXQtY29kZQogICAgICBsYWJlbD0iVHlwZVNjcmlwdCBDb2RlIgogICAgICBrZXk9ImNvZGUiCiAgICAgIGxhbmd1YWdlPSJ0eXBlc2NyaXB0IgogICAgICBoZWlnaHQ9IjMwMHB4IgogICAgICAudmFsdWU9JHtgY29uc3QgZ3JlZXRpbmc6IHN0cmluZyA9ICJIZWxsbyBXb3JsZCI7CmNvbnNvbGUubG9nKGdyZWV0aW5nKTtgfQogICAgPjwvZGVlcy1pbnB1dC1jb2RlPgogIGA7c3RhdGljIGRlbW9Hcm91cHM9WyJJbnB1dCIsIldvcmtzcGFjZSJdOyNlPWhhKHRoaXMsbiwiIik7Z2V0IHZhbHVlKCl7cmV0dXJuIHRoaXMuI2V9c2V0IHZhbHVlKEMpe3RoaXMuI2U9Q30jdD0oaGEodGhpcyxvKSxoYSh0aGlzLGMsInR5cGVzY3JpcHQiKSk7Z2V0IGxhbmd1YWdlKCl7cmV0dXJuIHRoaXMuI3R9c2V0IGxhbmd1YWdlKEMpe3RoaXMuI3Q9Q30jYT0oaGEodGhpcyxoKSxoYSh0aGlzLGYsIjIwMHB4IikpO2dldCBoZWlnaHQoKXtyZXR1cm4gdGhpcy4jYX1zZXQgaGVpZ2h0KEMpe3RoaXMuI2E9Q30jaT0oaGEodGhpcyxnKSxoYSh0aGlzLHYsIm9mZiIpKTtnZXQgd29yZFdyYXAoKXtyZXR1cm4gdGhpcy4jaX1zZXQgd29yZFdyYXAoQyl7dGhpcy4jaT1DfSNyPShoYSh0aGlzLG0pLGhhKHRoaXMsTSwhMCkpO2dldCBzaG93TGluZU51bWJlcnMoKXtyZXR1cm4gdGhpcy4jcn1zZXQgc2hvd0xpbmVOdW1iZXJzKEMpe3RoaXMuI3I9Q30jcz0oaGEodGhpcyxTKSxoYSh0aGlzLF8sITEpKTtnZXQgaXNMYW5ndWFnZURyb3Bkb3duT3Blbigpe3JldHVybiB0aGlzLiNzfXNldCBpc0xhbmd1YWdlRHJvcGRvd25PcGVuKEMpe3RoaXMuI3M9Q30jbj0oaGEodGhpcyxrKSxoYSh0aGlzLEwsITEpKTtnZXQgY29weVN1Y2Nlc3MoKXtyZXR1cm4gdGhpcy4jbn1zZXQgY29weVN1Y2Nlc3MoQyl7dGhpcy4jbj1DfWVkaXRvckVsZW1lbnQ9KGhhKHRoaXMsQSksbnVsbCk7c3RhdGljIHN0eWxlcz1bQ2UsLi4uWGUuYmFzZVN0eWxlcyxwLmRlZmF1bHRTdHlsZXMsUWAKICAgICAgKiB7CiAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDsKICAgICAgfQoKICAgICAgOmhvc3QgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgICBtaW4taGVpZ2h0OiAwOwogICAgICB9CgogICAgICAuaW5wdXQtd3JhcHBlciwKICAgICAgOmhvc3QoW2xhYmVsLXBvc2l0aW9uPSJ0b3AiXSkgLmlucHV0LXdyYXBwZXIsCiAgICAgIDpob3N0KFtsYWJlbC1wb3NpdGlvbj0ibGVmdCJdKSAuaW5wdXQtd3JhcHBlciwKICAgICAgOmhvc3QoW2xhYmVsLXBvc2l0aW9uPSJyaWdodCJdKSAuaW5wdXQtd3JhcHBlciB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICAgIGZsZXg6IDE7CiAgICAgICAgbWluLWhlaWdodDogMDsKICAgICAgfQoKICAgICAgLmNvZGUtY29udGFpbmVyIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgICAgZmxleDogMTsKICAgICAgICBtaW4taGVpZ2h0OiAwOwogICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICR7cC5iZFRoZW1lKCJoc2woMCAwJSA4OS44JSkiLCJoc2woMCAwJSAxNC45JSkiKX07CiAgICAgICAgYm9yZGVyLXJhZGl1czogNnB4OwogICAgICAgIG92ZXJmbG93OiBoaWRkZW47CiAgICAgICAgYmFja2dyb3VuZDogJHtwLmJkVGhlbWUoImhzbCgwIDAlIDEwMCUpIiwiaHNsKDAgMCUgOSUpIil9OwogICAgICB9CgogICAgICAudG9vbGJhciB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjsKICAgICAgICBwYWRkaW5nOiA4cHggMTJweDsKICAgICAgICBiYWNrZ3JvdW5kOiAke3AuYmRUaGVtZSgiaHNsKDAgMCUgOTclKSIsImhzbCgwIDAlIDclKSIpfTsKICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHtwLmJkVGhlbWUoImhzbCgwIDAlIDg5LjglKSIsImhzbCgwIDAlIDE0LjklKSIpfTsKICAgICAgICBnYXA6IDhweDsKICAgICAgfQoKICAgICAgLnRvb2xiYXItbGVmdCB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGdhcDogOHB4OwogICAgICB9CgogICAgICAudG9vbGJhci1yaWdodCB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGdhcDogNHB4OwogICAgICB9CgogICAgICAubGFuZ3VhZ2Utc2VsZWN0b3IgewogICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgfQoKICAgICAgLmxhbmd1YWdlLWJ1dHRvbiB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGdhcDogNnB4OwogICAgICAgIHBhZGRpbmc6IDRweCAxMHB4OwogICAgICAgIGZvbnQtc2l6ZTogMTJweDsKICAgICAgICBmb250LXdlaWdodDogNTAwOwogICAgICAgIGJhY2tncm91bmQ6ICR7cC5iZFRoZW1lKCJoc2woMCAwJSAxMDAlKSIsImhzbCgwIDAlIDEyJSkiKX07CiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHtwLmJkVGhlbWUoImhzbCgwIDAlIDg5LjglKSIsImhzbCgwIDAlIDIwJSkiKX07CiAgICAgICAgYm9yZGVyLXJhZGl1czogNHB4OwogICAgICAgIGN1cnNvcjogcG9pbnRlcjsKICAgICAgICBjb2xvcjogJHtwLmJkVGhlbWUoImhzbCgwIDAlIDIwJSkiLCJoc2woMCAwJSA5MCUpIil9OwogICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjE1cyBlYXNlOwogICAgICB9CgogICAgICAubGFuZ3VhZ2UtYnV0dG9uOmhvdmVyIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke3AuYmRUaGVtZSgiaHNsKDAgMCUgOTUlKSIsImhzbCgwIDAlIDE1JSkiKX07CiAgICAgIH0KCiAgICAgIC5sYW5ndWFnZS1kcm9wZG93biB7CiAgICAgICAgcG9zaXRpb246IGFic29sdXRlOwogICAgICAgIHRvcDogMTAwJTsKICAgICAgICBsZWZ0OiAwOwogICAgICAgIG1hcmdpbi10b3A6IDRweDsKICAgICAgICBiYWNrZ3JvdW5kOiAke3AuYmRUaGVtZSgiaHNsKDAgMCUgMTAwJSkiLCJoc2woMCAwJSA5JSkiKX07CiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHtwLmJkVGhlbWUoImhzbCgwIDAlIDg5LjglKSIsImhzbCgwIDAlIDIwJSkiKX07CiAgICAgICAgYm9yZGVyLXJhZGl1czogNnB4OwogICAgICAgIGJveC1zaGFkb3c6IDAgNHB4IDEycHggcmdiYSgwLCAwLCAwLCAwLjE1KTsKICAgICAgICB6LWluZGV4OiAxMDA7CiAgICAgICAgbWF4LWhlaWdodDogMjUwcHg7CiAgICAgICAgb3ZlcmZsb3cteTogYXV0bzsKICAgICAgICBtaW4td2lkdGg6IDE0MHB4OwogICAgICB9CgogICAgICAubGFuZ3VhZ2Utb3B0aW9uIHsKICAgICAgICBwYWRkaW5nOiA4cHggMTJweDsKICAgICAgICBmb250LXNpemU6IDEycHg7CiAgICAgICAgY3Vyc29yOiBwb2ludGVyOwogICAgICAgIGNvbG9yOiAke3AuYmRUaGVtZSgiaHNsKDAgMCUgMjAlKSIsImhzbCgwIDAlIDkwJSkiKX07CiAgICAgICAgdHJhbnNpdGlvbjogYmFja2dyb3VuZCAwLjE1cyBlYXNlOwogICAgICB9CgogICAgICAubGFuZ3VhZ2Utb3B0aW9uOmhvdmVyIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke3AuYmRUaGVtZSgiaHNsKDAgMCUgOTUlKSIsImhzbCgwIDAlIDE1JSkiKX07CiAgICAgIH0KCiAgICAgIC5sYW5ndWFnZS1vcHRpb24uc2VsZWN0ZWQgewogICAgICAgIGJhY2tncm91bmQ6ICR7cC5iZFRoZW1lKCJoc2woMCAwJSA5MCUpIiwiaHNsKDAgMCUgMjAlKSIpfTsKICAgICAgfQoKICAgICAgLnRvb2xiYXItYnV0dG9uIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7CiAgICAgICAgd2lkdGg6IDMycHg7CiAgICAgICAgaGVpZ2h0OiAzMnB4OwogICAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50OwogICAgICAgIGJvcmRlcjogbm9uZTsKICAgICAgICBib3JkZXItcmFkaXVzOiA0cHg7CiAgICAgICAgY3Vyc29yOiBwb2ludGVyOwogICAgICAgIGNvbG9yOiAke3AuYmRUaGVtZSgiaHNsKDAgMCUgNDUlKSIsImhzbCgwIDAlIDYwJSkiKX07CiAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuMTVzIGVhc2U7CiAgICAgIH0KCiAgICAgIC50b29sYmFyLWJ1dHRvbjpob3ZlciB7CiAgICAgICAgYmFja2dyb3VuZDogJHtwLmJkVGhlbWUoImhzbCgwIDAlIDkwJSkiLCJoc2woMCAwJSAxNSUpIil9OwogICAgICAgIGNvbG9yOiAke3AuYmRUaGVtZSgiaHNsKDAgMCUgMjAlKSIsImhzbCgwIDAlIDkwJSkiKX07CiAgICAgIH0KCiAgICAgIC50b29sYmFyLWJ1dHRvbi5hY3RpdmUgewogICAgICAgIGJhY2tncm91bmQ6ICR7cC5iZFRoZW1lKCJoc2woMCAwJSA4NSUpIiwiaHNsKDAgMCUgMjAlKSIpfTsKICAgICAgICBjb2xvcjogJHtwLmJkVGhlbWUoImhzbCgwIDAlIDIwJSkiLCJoc2woMCAwJSA5MCUpIil9OwogICAgICB9CgogICAgICAudG9vbGJhci1idXR0b24uc3VjY2VzcyB7CiAgICAgICAgY29sb3I6IGhzbCgxNDIuMSA3Ni4yJSAzNi4zJSk7CiAgICAgIH0KCiAgICAgIC5lZGl0b3Itd3JhcHBlciB7CiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICAgIGZsZXg6IDE7CiAgICAgICAgbWluLWhlaWdodDogMDsKICAgICAgfQoKICAgICAgZGVlcy13b3Jrc3BhY2UtbW9uYWNvIHsKICAgICAgICBkaXNwbGF5OiBibG9jazsKICAgICAgICBoZWlnaHQ6IDEwMCU7CiAgICAgIH0KCiAgICAgIC50b29sYmFyLWRpdmlkZXIgewogICAgICAgIHdpZHRoOiAxcHg7CiAgICAgICAgaGVpZ2h0OiAyMHB4OwogICAgICAgIGJhY2tncm91bmQ6ICR7cC5iZFRoZW1lKCJoc2woMCAwJSA4NSUpIiwiaHNsKDAgMCUgMjAlKSIpfTsKICAgICAgICBtYXJnaW46IDAgNHB4OwogICAgICB9CgogICAgICA6aG9zdChbZGlzYWJsZWRdKSAuY29kZS1jb250YWluZXIgewogICAgICAgIG9wYWNpdHk6IDAuNTsKICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTsKICAgICAgfQogICAgYF07cmVuZGVyKCl7bGV0IEM9eTguZmluZCh6PT56LmtleT09PXRoaXMubGFuZ3VhZ2UpfHx5OFswXTtyZXR1cm4gd2AKICAgICAgPHN0eWxlPgogICAgICAgIDpob3N0IHsKICAgICAgICAgIGhlaWdodDogJHt0aGlzLmhlaWdodH07CiAgICAgICAgfQogICAgICA8L3N0eWxlPgogICAgICA8ZGl2IGNsYXNzPSJpbnB1dC13cmFwcGVyIj4KICAgICAgICA8ZGVlcy1sYWJlbCAubGFiZWw9JHt0aGlzLmxhYmVsfSAuZGVzY3JpcHRpb249JHt0aGlzLmRlc2NyaXB0aW9ufSAucmVxdWlyZWQ9JHt0aGlzLnJlcXVpcmVkfT48L2RlZXMtbGFiZWw+CiAgICAgICAgPGRpdiBjbGFzcz0iY29kZS1jb250YWluZXIiPgogICAgICAgICAgPGRpdiBjbGFzcz0idG9vbGJhciI+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9InRvb2xiYXItbGVmdCI+CiAgICAgICAgICAgICAgPGRpdiBjbGFzcz0ibGFuZ3VhZ2Utc2VsZWN0b3IiPgogICAgICAgICAgICAgICAgPGJ1dHRvbgogICAgICAgICAgICAgICAgICBjbGFzcz0ibGFuZ3VhZ2UtYnV0dG9uIgogICAgICAgICAgICAgICAgICBAY2xpY2s9JHt0aGlzLnRvZ2dsZUxhbmd1YWdlRHJvcGRvd259CiAgICAgICAgICAgICAgICAgIEBibHVyPSR7dGhpcy5oYW5kbGVMYW5ndWFnZUJsdXJ9CiAgICAgICAgICAgICAgICA+CiAgICAgICAgICAgICAgICAgICR7Qy5sYWJlbH0KICAgICAgICAgICAgICAgICAgPGRlZXMtaWNvbiAuaWNvbj0keyJsdWNpZGU6Q2hldnJvbkRvd24ifSBpY29uU2l6ZT0iMTQiPjwvZGVlcy1pY29uPgogICAgICAgICAgICAgICAgPC9idXR0b24+CiAgICAgICAgICAgICAgICAke3RoaXMuaXNMYW5ndWFnZURyb3Bkb3duT3Blbj93YAogICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJsYW5ndWFnZS1kcm9wZG93biI+CiAgICAgICAgICAgICAgICAgICAgJHt5OC5tYXAoej0+d2AKICAgICAgICAgICAgICAgICAgICAgIDxkaXYKICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9Imxhbmd1YWdlLW9wdGlvbiAke3oua2V5PT09dGhpcy5sYW5ndWFnZT8ic2VsZWN0ZWQiOiIifSIKICAgICAgICAgICAgICAgICAgICAgICAgQG1vdXNlZG93bj0ke0U9PnRoaXMuc2VsZWN0TGFuZ3VhZ2UoRSx6LmtleSl9CiAgICAgICAgICAgICAgICAgICAgICA+CiAgICAgICAgICAgICAgICAgICAgICAgICR7ei5sYWJlbH0KICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgIGApfQogICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgIGA6IiJ9CiAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJ0b29sYmFyLXJpZ2h0Ij4KICAgICAgICAgICAgICA8YnV0dG9uCiAgICAgICAgICAgICAgICBjbGFzcz0idG9vbGJhci1idXR0b24gJHt0aGlzLndvcmRXcmFwPT09Im9uIj8iYWN0aXZlIjoiIn0iCiAgICAgICAgICAgICAgICB0aXRsZT0iV29yZCBXcmFwIgogICAgICAgICAgICAgICAgQGNsaWNrPSR7dGhpcy50b2dnbGVXb3JkV3JhcH0KICAgICAgICAgICAgICA+CiAgICAgICAgICAgICAgICA8ZGVlcy1pY29uIC5pY29uPSR7Imx1Y2lkZTpXcmFwVGV4dCJ9IGljb25TaXplPSIxNiI+PC9kZWVzLWljb24+CiAgICAgICAgICAgICAgPC9idXR0b24+CiAgICAgICAgICAgICAgPGJ1dHRvbgogICAgICAgICAgICAgICAgY2xhc3M9InRvb2xiYXItYnV0dG9uICR7dGhpcy5zaG93TGluZU51bWJlcnM/ImFjdGl2ZSI6IiJ9IgogICAgICAgICAgICAgICAgdGl0bGU9IkxpbmUgTnVtYmVycyIKICAgICAgICAgICAgICAgIEBjbGljaz0ke3RoaXMudG9nZ2xlTGluZU51bWJlcnN9CiAgICAgICAgICAgICAgPgogICAgICAgICAgICAgICAgPGRlZXMtaWNvbiAuaWNvbj0keyJsdWNpZGU6SGFzaCJ9IGljb25TaXplPSIxNiI+PC9kZWVzLWljb24+CiAgICAgICAgICAgICAgPC9idXR0b24+CiAgICAgICAgICAgICAgPGRpdiBjbGFzcz0idG9vbGJhci1kaXZpZGVyIj48L2Rpdj4KICAgICAgICAgICAgICA8YnV0dG9uCiAgICAgICAgICAgICAgICBjbGFzcz0idG9vbGJhci1idXR0b24gJHt0aGlzLmNvcHlTdWNjZXNzPyJzdWNjZXNzIjoiIn0iCiAgICAgICAgICAgICAgICB0aXRsZT0iQ29weSBDb2RlIgogICAgICAgICAgICAgICAgQGNsaWNrPSR7dGhpcy5jb3B5Q29kZX0KICAgICAgICAgICAgICA+CiAgICAgICAgICAgICAgICA8ZGVlcy1pY29uIC5pY29uPSR7dGhpcy5jb3B5U3VjY2Vzcz8ibHVjaWRlOkNoZWNrIjoibHVjaWRlOkNvcHkifSBpY29uU2l6ZT0iMTYiPjwvZGVlcy1pY29uPgogICAgICAgICAgICAgIDwvYnV0dG9uPgogICAgICAgICAgICAgIDxidXR0b24KICAgICAgICAgICAgICAgIGNsYXNzPSJ0b29sYmFyLWJ1dHRvbiIKICAgICAgICAgICAgICAgIHRpdGxlPSJFeHBhbmQiCiAgICAgICAgICAgICAgICBAY2xpY2s9JHt0aGlzLm9wZW5GdWxsc2NyZWVufQogICAgICAgICAgICAgID4KICAgICAgICAgICAgICAgIDxkZWVzLWljb24gLmljb249JHsibHVjaWRlOk1heGltaXplMiJ9IGljb25TaXplPSIxNiI+PC9kZWVzLWljb24+CiAgICAgICAgICAgICAgPC9idXR0b24+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgPC9kaXY+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJlZGl0b3Itd3JhcHBlciI+CiAgICAgICAgICAgIDxkZWVzLXdvcmtzcGFjZS1tb25hY28KICAgICAgICAgICAgICAuY29udGVudD0ke3RoaXMudmFsdWV9CiAgICAgICAgICAgICAgLmxhbmd1YWdlPSR7dGhpcy5sYW5ndWFnZX0KICAgICAgICAgICAgICAud29yZFdyYXA9JHt0aGlzLndvcmRXcmFwfQogICAgICAgICAgICAgIEBjb250ZW50LWNoYW5nZT0ke3RoaXMuaGFuZGxlQ29udGVudENoYW5nZX0KICAgICAgICAgICAgPjwvZGVlcy13b3Jrc3BhY2UtbW9uYWNvPgogICAgICAgICAgPC9kaXY+CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGl2PgogICAgYH1hc3luYyBmaXJzdFVwZGF0ZWQoKXt0aGlzLmVkaXRvckVsZW1lbnQ9dGhpcy5zaGFkb3dSb290Py5xdWVyeVNlbGVjdG9yKCJkZWVzLXdvcmtzcGFjZS1tb25hY28iKSx0aGlzLmVkaXRvckVsZW1lbnQmJnRoaXMuZWRpdG9yRWxlbWVudC5jb250ZW50U3ViamVjdC5zdWJzY3JpYmUoQz0+e3RoaXMudmFsdWUhPT1DJiYodGhpcy52YWx1ZT1DLHRoaXMuY2hhbmdlU3ViamVjdC5uZXh0KHRoaXMpKX0pfXRvZ2dsZUxhbmd1YWdlRHJvcGRvd24oKXt0aGlzLmlzTGFuZ3VhZ2VEcm9wZG93bk9wZW49IXRoaXMuaXNMYW5ndWFnZURyb3Bkb3duT3Blbn1oYW5kbGVMYW5ndWFnZUJsdXIoKXtzZXRUaW1lb3V0KCgpPT57dGhpcy5pc0xhbmd1YWdlRHJvcGRvd25PcGVuPSExfSwxNTApfWFzeW5jIHNlbGVjdExhbmd1YWdlKEMseil7aWYoQy5wcmV2ZW50RGVmYXVsdCgpLHRoaXMubGFuZ3VhZ2U9eix0aGlzLmlzTGFuZ3VhZ2VEcm9wZG93bk9wZW49ITEsdGhpcy5lZGl0b3JFbGVtZW50KXt0aGlzLmVkaXRvckVsZW1lbnQubGFuZ3VhZ2U9ejtsZXQgVD0oYXdhaXQgdGhpcy5lZGl0b3JFbGVtZW50LmVkaXRvckRlZmVycmVkLnByb21pc2UpLmdldE1vZGVsKCk7VCYmd2luZG93Lm1vbmFjby5lZGl0b3Iuc2V0TW9kZWxMYW5ndWFnZShULHopfX10b2dnbGVXb3JkV3JhcCgpe3RoaXMud29yZFdyYXA9dGhpcy53b3JkV3JhcD09PSJvbiI/Im9mZiI6Im9uIix0aGlzLnVwZGF0ZUVkaXRvck9wdGlvbigid29yZFdyYXAiLHRoaXMud29yZFdyYXApfXRvZ2dsZUxpbmVOdW1iZXJzKCl7dGhpcy5zaG93TGluZU51bWJlcnM9IXRoaXMuc2hvd0xpbmVOdW1iZXJzLHRoaXMudXBkYXRlRWRpdG9yT3B0aW9uKCJsaW5lTnVtYmVycyIsdGhpcy5zaG93TGluZU51bWJlcnM/Im9uIjoib2ZmIil9YXN5bmMgdXBkYXRlRWRpdG9yT3B0aW9uKEMseil7dGhpcy5lZGl0b3JFbGVtZW50JiYoYXdhaXQgdGhpcy5lZGl0b3JFbGVtZW50LmVkaXRvckRlZmVycmVkLnByb21pc2UpLnVwZGF0ZU9wdGlvbnMoe1tDXTp6fSl9YXN5bmMgY29weUNvZGUoKXt0cnl7YXdhaXQgbmF2aWdhdG9yLmNsaXBib2FyZC53cml0ZVRleHQodGhpcy52YWx1ZSksdGhpcy5jb3B5U3VjY2Vzcz0hMCxzZXRUaW1lb3V0KCgpPT57dGhpcy5jb3B5U3VjY2Vzcz0hMX0sMmUzKX1jYXRjaChDKXtjb25zb2xlLmVycm9yKCJGYWlsZWQgdG8gY29weSBjb2RlOiIsQyl9fWhhbmRsZUNvbnRlbnRDaGFuZ2UoQyl7bGV0IHo9Qy5kZXRhaWw7dGhpcy52YWx1ZSE9PXomJih0aGlzLnZhbHVlPXosdGhpcy5jaGFuZ2VTdWJqZWN0Lm5leHQodGhpcykpfWFzeW5jIG9wZW5GdWxsc2NyZWVuKCl7bGV0IEM9dGhpcy52YWx1ZSx6PW51bGwsRT10aGlzLmxhbmd1YWdlLFQ9dGhpcy53b3JkV3JhcCwkPXRoaXMuc2hvd0xpbmVOdW1iZXJzLFY9ITEsUj0hMSxVPSgpPT57bGV0IHdlPXk4LmZpbmQoSD0+SC5rZXk9PT1FKTtyZXR1cm4gd2U/d2UubGFiZWw6IlR5cGVTY3JpcHQifSxyZT13ZT0+e2xldCBIPXdlLnNoYWRvd1Jvb3Q/LnF1ZXJ5U2VsZWN0b3IoIi5tb2RhbC10b29sYmFyIik7aWYoIUgpcmV0dXJuO2xldCBjZT1ILnF1ZXJ5U2VsZWN0b3IoIi5sYW5ndWFnZS1idXR0b24gc3BhbiIpO2NlJiYoY2UudGV4dENvbnRlbnQ9VSgpKTtsZXQga2U9SC5xdWVyeVNlbGVjdG9yKCIud3JhcC1idG4iKTtrZSYma2UuY2xhc3NMaXN0LnRvZ2dsZSgiYWN0aXZlIixUPT09Im9uIik7bGV0IFc9SC5xdWVyeVNlbGVjdG9yKCIubGluZXMtYnRuIik7VyYmVy5jbGFzc0xpc3QudG9nZ2xlKCJhY3RpdmUiLCQpO2xldCBEPUgucXVlcnlTZWxlY3RvcigiLmNvcHktYnRuIiksTz1EPy5xdWVyeVNlbGVjdG9yKCJkZWVzLWljb24iKTtEJiZPJiYoRC5jbGFzc0xpc3QudG9nZ2xlKCJzdWNjZXNzIixSKSxPLmljb249Uj8ibHVjaWRlOkNoZWNrIjoibHVjaWRlOkNvcHkiKTtsZXQgWj1ILnF1ZXJ5U2VsZWN0b3IoIi5sYW5ndWFnZS1kcm9wZG93biIpO1omJihaLnN0eWxlLmRpc3BsYXk9Vj8iYmxvY2siOiJub25lIil9LGo9YXdhaXQgbzEuY3JlYXRlQW5kU2hvdyh7aGVhZGluZzp0aGlzLmxhYmVsfHwiQ29kZSBFZGl0b3IiLHdpZHRoOiJmdWxsc2NyZWVuIixjb250ZW50UGFkZGluZzowLGNvbnRlbnQ6d2AKICAgICAgICA8c3R5bGU+CiAgICAgICAgICAubW9kYWwtdG9vbGJhciB7CiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjsKICAgICAgICAgICAgcGFkZGluZzogOHB4IDEycHg7CiAgICAgICAgICAgIGJhY2tncm91bmQ6ICR7cC5iZFRoZW1lKCJoc2woMCAwJSA5NyUpIiwiaHNsKDAgMCUgNyUpIil9OwogICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHtwLmJkVGhlbWUoImhzbCgwIDAlIDg5LjglKSIsImhzbCgwIDAlIDE0LjklKSIpfTsKICAgICAgICAgICAgZ2FwOiA4cHg7CiAgICAgICAgICB9CiAgICAgICAgICAubW9kYWwtdG9vbGJhciAudG9vbGJhci1sZWZ0IHsKICAgICAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICAgICAgZ2FwOiA4cHg7CiAgICAgICAgICB9CiAgICAgICAgICAubW9kYWwtdG9vbGJhciAudG9vbGJhci1yaWdodCB7CiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgICAgIGdhcDogNHB4OwogICAgICAgICAgfQogICAgICAgICAgLm1vZGFsLXRvb2xiYXIgLmxhbmd1YWdlLXNlbGVjdG9yIHsKICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICAgICAgfQogICAgICAgICAgLm1vZGFsLXRvb2xiYXIgLmxhbmd1YWdlLWJ1dHRvbiB7CiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgICAgIGdhcDogNnB4OwogICAgICAgICAgICBwYWRkaW5nOiA0cHggMTBweDsKICAgICAgICAgICAgZm9udC1zaXplOiAxMnB4OwogICAgICAgICAgICBmb250LXdlaWdodDogNTAwOwogICAgICAgICAgICBiYWNrZ3JvdW5kOiAke3AuYmRUaGVtZSgiaHNsKDAgMCUgMTAwJSkiLCJoc2woMCAwJSAxMiUpIil9OwogICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAke3AuYmRUaGVtZSgiaHNsKDAgMCUgODkuOCUpIiwiaHNsKDAgMCUgMjAlKSIpfTsKICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogNHB4OwogICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICAgICAgICAgIGNvbG9yOiAke3AuYmRUaGVtZSgiaHNsKDAgMCUgMjAlKSIsImhzbCgwIDAlIDkwJSkiKX07CiAgICAgICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjE1cyBlYXNlOwogICAgICAgICAgfQogICAgICAgICAgLm1vZGFsLXRvb2xiYXIgLmxhbmd1YWdlLWJ1dHRvbjpob3ZlciB7CiAgICAgICAgICAgIGJhY2tncm91bmQ6ICR7cC5iZFRoZW1lKCJoc2woMCAwJSA5NSUpIiwiaHNsKDAgMCUgMTUlKSIpfTsKICAgICAgICAgIH0KICAgICAgICAgIC5tb2RhbC10b29sYmFyIC5sYW5ndWFnZS1kcm9wZG93biB7CiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgICAgICAgdG9wOiAxMDAlOwogICAgICAgICAgICBsZWZ0OiAwOwogICAgICAgICAgICBtYXJnaW4tdG9wOiA0cHg7CiAgICAgICAgICAgIGJhY2tncm91bmQ6ICR7cC5iZFRoZW1lKCJoc2woMCAwJSAxMDAlKSIsImhzbCgwIDAlIDklKSIpfTsKICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHtwLmJkVGhlbWUoImhzbCgwIDAlIDg5LjglKSIsImhzbCgwIDAlIDIwJSkiKX07CiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDZweDsKICAgICAgICAgICAgYm94LXNoYWRvdzogMCA0cHggMTJweCByZ2JhKDAsIDAsIDAsIDAuMTUpOwogICAgICAgICAgICB6LWluZGV4OiAxMDA7CiAgICAgICAgICAgIG1heC1oZWlnaHQ6IDI1MHB4OwogICAgICAgICAgICBvdmVyZmxvdy15OiBhdXRvOwogICAgICAgICAgICBtaW4td2lkdGg6IDE0MHB4OwogICAgICAgICAgICBkaXNwbGF5OiBub25lOwogICAgICAgICAgfQogICAgICAgICAgLm1vZGFsLXRvb2xiYXIgLmxhbmd1YWdlLW9wdGlvbiB7CiAgICAgICAgICAgIHBhZGRpbmc6IDhweCAxMnB4OwogICAgICAgICAgICBmb250LXNpemU6IDEycHg7CiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjsKICAgICAgICAgICAgY29sb3I6ICR7cC5iZFRoZW1lKCJoc2woMCAwJSAyMCUpIiwiaHNsKDAgMCUgOTAlKSIpfTsKICAgICAgICAgICAgdHJhbnNpdGlvbjogYmFja2dyb3VuZCAwLjE1cyBlYXNlOwogICAgICAgICAgfQogICAgICAgICAgLm1vZGFsLXRvb2xiYXIgLmxhbmd1YWdlLW9wdGlvbjpob3ZlciB7CiAgICAgICAgICAgIGJhY2tncm91bmQ6ICR7cC5iZFRoZW1lKCJoc2woMCAwJSA5NSUpIiwiaHNsKDAgMCUgMTUlKSIpfTsKICAgICAgICAgIH0KICAgICAgICAgIC5tb2RhbC10b29sYmFyIC5sYW5ndWFnZS1vcHRpb24uc2VsZWN0ZWQgewogICAgICAgICAgICBiYWNrZ3JvdW5kOiAke3AuYmRUaGVtZSgiaHNsKDAgMCUgOTAlKSIsImhzbCgwIDAlIDIwJSkiKX07CiAgICAgICAgICB9CiAgICAgICAgICAubW9kYWwtdG9vbGJhciAudG9vbGJhci1idXR0b24gewogICAgICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKICAgICAgICAgICAgd2lkdGg6IDMycHg7CiAgICAgICAgICAgIGhlaWdodDogMzJweDsKICAgICAgICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7CiAgICAgICAgICAgIGJvcmRlcjogbm9uZTsKICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogNHB4OwogICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICAgICAgICAgIGNvbG9yOiAke3AuYmRUaGVtZSgiaHNsKDAgMCUgNDUlKSIsImhzbCgwIDAlIDYwJSkiKX07CiAgICAgICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjE1cyBlYXNlOwogICAgICAgICAgfQogICAgICAgICAgLm1vZGFsLXRvb2xiYXIgLnRvb2xiYXItYnV0dG9uOmhvdmVyIHsKICAgICAgICAgICAgYmFja2dyb3VuZDogJHtwLmJkVGhlbWUoImhzbCgwIDAlIDkwJSkiLCJoc2woMCAwJSAxNSUpIil9OwogICAgICAgICAgICBjb2xvcjogJHtwLmJkVGhlbWUoImhzbCgwIDAlIDIwJSkiLCJoc2woMCAwJSA5MCUpIil9OwogICAgICAgICAgfQogICAgICAgICAgLm1vZGFsLXRvb2xiYXIgLnRvb2xiYXItYnV0dG9uLmFjdGl2ZSB7CiAgICAgICAgICAgIGJhY2tncm91bmQ6ICR7cC5iZFRoZW1lKCJoc2woMCAwJSA4NSUpIiwiaHNsKDAgMCUgMjAlKSIpfTsKICAgICAgICAgICAgY29sb3I6ICR7cC5iZFRoZW1lKCJoc2woMCAwJSAyMCUpIiwiaHNsKDAgMCUgOTAlKSIpfTsKICAgICAgICAgIH0KICAgICAgICAgIC5tb2RhbC10b29sYmFyIC50b29sYmFyLWJ1dHRvbi5zdWNjZXNzIHsKICAgICAgICAgICAgY29sb3I6IGhzbCgxNDIuMSA3Ni4yJSAzNi4zJSk7CiAgICAgICAgICB9CiAgICAgICAgICAubW9kYWwtdG9vbGJhciAudG9vbGJhci1kaXZpZGVyIHsKICAgICAgICAgICAgd2lkdGg6IDFweDsKICAgICAgICAgICAgaGVpZ2h0OiAyMHB4OwogICAgICAgICAgICBiYWNrZ3JvdW5kOiAke3AuYmRUaGVtZSgiaHNsKDAgMCUgODUlKSIsImhzbCgwIDAlIDIwJSkiKX07CiAgICAgICAgICAgIG1hcmdpbjogMCA0cHg7CiAgICAgICAgICB9CiAgICAgICAgICAubW9kYWwtZWRpdG9yLXdyYXBwZXIgewogICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgICAgICAgIGhlaWdodDogY2FsYygxMDB2aCAtIDE3NXB4KTsKICAgICAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgICAgICB9CiAgICAgICAgPC9zdHlsZT4KICAgICAgICA8ZGl2IGNsYXNzPSJtb2RhbC10b29sYmFyIj4KICAgICAgICAgIDxkaXYgY2xhc3M9InRvb2xiYXItbGVmdCI+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9Imxhbmd1YWdlLXNlbGVjdG9yIj4KICAgICAgICAgICAgICA8YnV0dG9uIGNsYXNzPSJsYW5ndWFnZS1idXR0b24iPgogICAgICAgICAgICAgICAgPHNwYW4+JHtVKCl9PC9zcGFuPgogICAgICAgICAgICAgICAgPGRlZXMtaWNvbiAuaWNvbj0keyJsdWNpZGU6Q2hldnJvbkRvd24ifSBpY29uU2l6ZT0iMTQiPjwvZGVlcy1pY29uPgogICAgICAgICAgICAgIDwvYnV0dG9uPgogICAgICAgICAgICAgIDxkaXYgY2xhc3M9Imxhbmd1YWdlLWRyb3Bkb3duIj4KICAgICAgICAgICAgICAgICR7eTgubWFwKHdlPT53YAogICAgICAgICAgICAgICAgICA8ZGl2CiAgICAgICAgICAgICAgICAgICAgY2xhc3M9Imxhbmd1YWdlLW9wdGlvbiAke3dlLmtleT09PUU/InNlbGVjdGVkIjoiIn0iCiAgICAgICAgICAgICAgICAgICAgZGF0YS1sYW5nPSIke3dlLmtleX0iCiAgICAgICAgICAgICAgICAgID4KICAgICAgICAgICAgICAgICAgICAke3dlLmxhYmVsfQogICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgIGApfQogICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIDwvZGl2PgogICAgICAgICAgPGRpdiBjbGFzcz0idG9vbGJhci1yaWdodCI+CiAgICAgICAgICAgIDxidXR0b24gY2xhc3M9InRvb2xiYXItYnV0dG9uIHdyYXAtYnRuICR7VD09PSJvbiI/ImFjdGl2ZSI6IiJ9IiB0aXRsZT0iV29yZCBXcmFwIj4KICAgICAgICAgICAgICA8ZGVlcy1pY29uIC5pY29uPSR7Imx1Y2lkZTpXcmFwVGV4dCJ9IGljb25TaXplPSIxNiI+PC9kZWVzLWljb24+CiAgICAgICAgICAgIDwvYnV0dG9uPgogICAgICAgICAgICA8YnV0dG9uIGNsYXNzPSJ0b29sYmFyLWJ1dHRvbiBsaW5lcy1idG4gJHskPyJhY3RpdmUiOiIifSIgdGl0bGU9IkxpbmUgTnVtYmVycyI+CiAgICAgICAgICAgICAgPGRlZXMtaWNvbiAuaWNvbj0keyJsdWNpZGU6SGFzaCJ9IGljb25TaXplPSIxNiI+PC9kZWVzLWljb24+CiAgICAgICAgICAgIDwvYnV0dG9uPgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJ0b29sYmFyLWRpdmlkZXIiPjwvZGl2PgogICAgICAgICAgICA8YnV0dG9uIGNsYXNzPSJ0b29sYmFyLWJ1dHRvbiBjb3B5LWJ0biIgdGl0bGU9IkNvcHkgQ29kZSI+CiAgICAgICAgICAgICAgPGRlZXMtaWNvbiAuaWNvbj0keyJsdWNpZGU6Q29weSJ9IGljb25TaXplPSIxNiI+PC9kZWVzLWljb24+CiAgICAgICAgICAgIDwvYnV0dG9uPgogICAgICAgICAgPC9kaXY+CiAgICAgICAgPC9kaXY+CiAgICAgICAgPGRpdiBjbGFzcz0ibW9kYWwtZWRpdG9yLXdyYXBwZXIiPgogICAgICAgICAgPGRlZXMtd29ya3NwYWNlLW1vbmFjbwogICAgICAgICAgICAuY29udGVudD0ke0N9CiAgICAgICAgICAgIC5sYW5ndWFnZT0ke0V9CiAgICAgICAgICAgIC53b3JkV3JhcD0ke1R9CiAgICAgICAgICA+PC9kZWVzLXdvcmtzcGFjZS1tb25hY28+CiAgICAgICAgPC9kaXY+CiAgICAgIGAsbWVudU9wdGlvbnM6W3tuYW1lOiJDYW5jZWwiLGFjdGlvbjphc3luYyB3ZT0+e2F3YWl0IHdlLmRlc3Ryb3koKX19LHtuYW1lOiJTYXZlICYgQ2xvc2UiLGFjdGlvbjphc3luYyB3ZT0+e2lmKHo9d2Uuc2hhZG93Um9vdD8ucXVlcnlTZWxlY3RvcigiZGVlcy13b3Jrc3BhY2UtbW9uYWNvIikseil7bGV0IGNlPShhd2FpdCB6LmVkaXRvckRlZmVycmVkLnByb21pc2UpLmdldFZhbHVlKCk7dGhpcy5zZXRWYWx1ZShjZSl9YXdhaXQgd2UuZGVzdHJveSgpfX1dfSk7YXdhaXQgbmV3IFByb21pc2Uod2U9PnNldFRpbWVvdXQod2UsMTAwKSksej1qLnNoYWRvd1Jvb3Q/LnF1ZXJ5U2VsZWN0b3IoImRlZXMtd29ya3NwYWNlLW1vbmFjbyIpO2xldCBtZT1qLnNoYWRvd1Jvb3Q/LnF1ZXJ5U2VsZWN0b3IoIi5tb2RhbC10b29sYmFyIik7aWYobWUpe2xldCB3ZT1tZS5xdWVyeVNlbGVjdG9yKCIubGFuZ3VhZ2UtYnV0dG9uIik7d2U/LmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIiwoKT0+e1Y9IVYscmUoail9KTtsZXQgSD1tZS5xdWVyeVNlbGVjdG9yQWxsKCIubGFuZ3VhZ2Utb3B0aW9uIik7SC5mb3JFYWNoKEQ9PntELmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIixhc3luYygpPT57bGV0IE89RC5kYXRhc2V0Lmxhbmc7aWYoTyYmeil7RT1PLFY9ITE7bGV0IFk9KGF3YWl0IHouZWRpdG9yRGVmZXJyZWQucHJvbWlzZSkuZ2V0TW9kZWwoKTtZJiZ3aW5kb3cubW9uYWNvLmVkaXRvci5zZXRNb2RlbExhbmd1YWdlKFksTyksSC5mb3JFYWNoKG9lPT5vZS5jbGFzc0xpc3QucmVtb3ZlKCJzZWxlY3RlZCIpKSxELmNsYXNzTGlzdC5hZGQoInNlbGVjdGVkIikscmUoail9fSl9KSxtZS5xdWVyeVNlbGVjdG9yKCIud3JhcC1idG4iKT8uYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLGFzeW5jKCk9PntUPVQ9PT0ib24iPyJvZmYiOiJvbiIseiYmKGF3YWl0IHouZWRpdG9yRGVmZXJyZWQucHJvbWlzZSkudXBkYXRlT3B0aW9ucyh7d29yZFdyYXA6VH0pLHJlKGopfSksbWUucXVlcnlTZWxlY3RvcigiLmxpbmVzLWJ0biIpPy5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsYXN5bmMoKT0+eyQ9ISQseiYmKGF3YWl0IHouZWRpdG9yRGVmZXJyZWQucHJvbWlzZSkudXBkYXRlT3B0aW9ucyh7bGluZU51bWJlcnM6JD8ib24iOiJvZmYifSkscmUoail9KSxtZS5xdWVyeVNlbGVjdG9yKCIuY29weS1idG4iKT8uYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLGFzeW5jKCk9PntpZih6KXtsZXQgTz0oYXdhaXQgei5lZGl0b3JEZWZlcnJlZC5wcm9taXNlKS5nZXRWYWx1ZSgpO3RyeXthd2FpdCBuYXZpZ2F0b3IuY2xpcGJvYXJkLndyaXRlVGV4dChPKSxSPSEwLHJlKGopLHNldFRpbWVvdXQoKCk9PntSPSExLHJlKGopfSwyZTMpfWNhdGNoKFope2NvbnNvbGUuZXJyb3IoIkZhaWxlZCB0byBjb3B5IGNvZGU6IixaKX19fSksZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLEQ9PntWJiYhd2U/LmNvbnRhaW5zKEQudGFyZ2V0KSYmKFY9ITEscmUoaikpfSx7b25jZTohMH0pfX1nZXRWYWx1ZSgpe3JldHVybiB0aGlzLnZhbHVlfXNldFZhbHVlKEMpe3RoaXMudmFsdWU9Qyx0aGlzLmVkaXRvckVsZW1lbnQmJih0aGlzLmVkaXRvckVsZW1lbnQuY29udGVudD1DLHRoaXMuZWRpdG9yRWxlbWVudC5lZGl0b3JEZWZlcnJlZC5wcm9taXNlLnRoZW4oej0+e3ouZ2V0VmFsdWUoKSE9PUMmJnouc2V0VmFsdWUoQyl9KSksdGhpcy5jaGFuZ2VTdWJqZWN0Lm5leHQodGhpcyl9c3RhdGlje2hhKGksYSl9fTtyZXR1cm4gcT1pfSkoKX0pO3ZhciBVOXQsVzl0PWIoKCk9Pnt1ZSgpO3gxKCk7bTIoKTtJcSgpO1U5dD0oKT0+d2AKICA8c3R5bGU+CiAgICAke1FgCiAgICAgIC5kZW1vLWNvbnRhaW5lciB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICAgIGdhcDogMjRweDsKICAgICAgICBwYWRkaW5nOiAyNHB4OwogICAgICAgIG1heC13aWR0aDogMTIwMHB4OwogICAgICAgIG1hcmdpbjogMCBhdXRvOwogICAgICB9CiAgICAgIAogICAgICBkZWVzLXBhbmVsIHsKICAgICAgICBtYXJnaW4tYm90dG9tOiAyNHB4OwogICAgICB9CiAgICAgIAogICAgICBkZWVzLXBhbmVsOmxhc3QtY2hpbGQgewogICAgICAgIG1hcmdpbi1ib3R0b206IDA7CiAgICAgIH0KICAgICAgCiAgICAgIC5kZW1vLW91dHB1dCB7CiAgICAgICAgbWFyZ2luLXRvcDogMTZweDsKICAgICAgICBwYWRkaW5nOiAxMnB4OwogICAgICAgIGJhY2tncm91bmQ6IHJnYmEoMCwgMTA1LCAyNDIsIDAuMSk7CiAgICAgICAgYm9yZGVyLXJhZGl1czogNHB4OwogICAgICAgIGZvbnQtc2l6ZTogMTRweDsKICAgICAgICBmb250LWZhbWlseTogbW9ub3NwYWNlOwogICAgICB9CiAgICAgIAogICAgICAuZGF0ZS1ncm91cCB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBnYXA6IDE2cHg7CiAgICAgICAgZmxleC13cmFwOiB3cmFwOwogICAgICB9CiAgICBgfQogIDwvc3R5bGU+CiAgCiAgPGRpdiBjbGFzcz0iZGVtby1jb250YWluZXIiPgogICAgPGRlZXMtZGVtb3dyYXBwZXIgLnJ1bkFmdGVyUmVuZGVyPSR7YXN5bmMgdD0+e2xldCBlPXQucXVlcnlTZWxlY3RvcigiZGVlcy1pbnB1dC1kYXRlcGlja2VyIik7ZSYmZS5hZGRFdmVudExpc3RlbmVyKCJjaGFuZ2UiLGE9Pntjb25zb2xlLmxvZygiQmFzaWMgZGF0ZSBzZWxlY3RlZDoiLGEudGFyZ2V0LnZhbHVlKX0pfX0+CiAgICAgIDxkZWVzLXBhbmVsIC50aXRsZT0keyJCYXNpYyBEYXRlIFBpY2tlciJ9IC5zdWJ0aXRsZT0keyJTaW1wbGUgZGF0ZSBzZWxlY3Rpb24gd2l0aG91dCB0aW1lIn0+CiAgICAgICAgPGRlZXMtaW5wdXQtZGF0ZXBpY2tlcgogICAgICAgICAgbGFiZWw9IlNlbGVjdCBEYXRlIgogICAgICAgICAgZGVzY3JpcHRpb249IkNob29zZSBhIGRhdGUgZnJvbSB0aGUgY2FsZW5kYXIiCiAgICAgICAgPjwvZGVlcy1pbnB1dC1kYXRlcGlja2VyPgogICAgICA8L2RlZXMtcGFuZWw+CiAgICA8L2RlZXMtZGVtb3dyYXBwZXI+CgogICAgPGRlZXMtZGVtb3dyYXBwZXIgLnJ1bkFmdGVyUmVuZGVyPSR7YXN5bmMgdD0+e2xldCBlPXQucXVlcnlTZWxlY3RvcignZGVlcy1pbnB1dC1kYXRlcGlja2VyW2xhYmVsPSJFdmVudCBEYXRlICYgVGltZSJdJyksYT10LnF1ZXJ5U2VsZWN0b3IoJ2RlZXMtaW5wdXQtZGF0ZXBpY2tlcltsYWJlbD0iQXBwb2ludG1lbnQiXScpO2UmJmUuYWRkRXZlbnRMaXN0ZW5lcigiY2hhbmdlIixpPT57bGV0IHI9aS50YXJnZXQudmFsdWU7Y29uc29sZS5sb2coIjI0aCBmb3JtYXQgZGF0ZXRpbWU6IixyKX0pLGEmJmEuYWRkRXZlbnRMaXN0ZW5lcigiY2hhbmdlIixpPT57bGV0IHI9aS50YXJnZXQudmFsdWU7Y29uc29sZS5sb2coIjEyaCBmb3JtYXQgZGF0ZXRpbWU6IixyKX0pfX0+CiAgICAgIDxkZWVzLXBhbmVsIC50aXRsZT0keyJEYXRlIGFuZCBUaW1lIFNlbGVjdGlvbiJ9IC5zdWJ0aXRsZT0keyJEYXRlIHBpY2tlcnMgd2l0aCB0aW1lIHNlbGVjdGlvbiBpbiBkaWZmZXJlbnQgZm9ybWF0cyJ9PgogICAgICAgIDxkZWVzLWlucHV0LWRhdGVwaWNrZXIKICAgICAgICAgIGxhYmVsPSJFdmVudCBEYXRlICYgVGltZSIKICAgICAgICAgIGRlc2NyaXB0aW9uPSJTZWxlY3QgYm90aCBkYXRlIGFuZCB0aW1lICgyNC1ob3VyIGZvcm1hdCkiCiAgICAgICAgICAuZW5hYmxlVGltZT0keyEwfQogICAgICAgICAgdGltZUZvcm1hdD0iMjRoIgogICAgICAgID48L2RlZXMtaW5wdXQtZGF0ZXBpY2tlcj4KICAgICAgICAKICAgICAgICA8ZGVlcy1pbnB1dC1kYXRlcGlja2VyCiAgICAgICAgICBsYWJlbD0iQXBwb2ludG1lbnQiCiAgICAgICAgICBkZXNjcmlwdGlvbj0iRGF0ZSBhbmQgdGltZSB3aXRoIEFNL1BNIHNlbGVjdG9yICgxNS1taW51dGUgaW5jcmVtZW50cykiCiAgICAgICAgICAuZW5hYmxlVGltZT0keyEwfQogICAgICAgICAgdGltZUZvcm1hdD0iMTJoIgogICAgICAgICAgLm1pbnV0ZUluY3JlbWVudD0kezE1fQogICAgICAgID48L2RlZXMtaW5wdXQtZGF0ZXBpY2tlcj4KICAgICAgPC9kZWVzLXBhbmVsPgogICAgPC9kZWVzLWRlbW93cmFwcGVyPgoKICAgIDxkZWVzLWRlbW93cmFwcGVyIC5ydW5BZnRlclJlbmRlcj0ke2FzeW5jIHQ9Pnt0LnF1ZXJ5U2VsZWN0b3JBbGwoImRlZXMtaW5wdXQtZGF0ZXBpY2tlciIpLmZvckVhY2goYT0+e2EuYWRkRXZlbnRMaXN0ZW5lcigiY2hhbmdlIixpPT57bGV0IHI9aS50YXJnZXQ7Y29uc29sZS5sb2coYCR7ci5sYWJlbH0gdmFsdWU6YCxyLnZhbHVlKTtsZXQgcz1yLnNoYWRvd1Jvb3Q/LnF1ZXJ5U2VsZWN0b3IoIi5kYXRlLWlucHV0Iik7cyYmY29uc29sZS5sb2coYCR7ci5sYWJlbH0gZm9ybWF0dGVkOmAscy52YWx1ZSl9KX0pfX0+CiAgICAgIDxkZWVzLXBhbmVsIC50aXRsZT0keyJUaW1lem9uZSBTdXBwb3J0In0gLnN1YnRpdGxlPSR7IkRhdGUgYW5kIHRpbWUgc2VsZWN0aW9uIHdpdGggdGltZXpvbmUgYXdhcmVuZXNzIn0+CiAgICAgICAgPGRlZXMtaW5wdXQtZGF0ZXBpY2tlcgogICAgICAgICAgbGFiZWw9Ik1lZXRpbmcgVGltZSAod2l0aCBUaW1lem9uZSkiCiAgICAgICAgICBkZXNjcmlwdGlvbj0iU2VsZWN0IGEgZGF0ZS90aW1lIGFuZCB0aW1lem9uZSBmb3IgdGhlIG1lZXRpbmciCiAgICAgICAgICAuZW5hYmxlVGltZT0keyEwfQogICAgICAgICAgLmVuYWJsZVRpbWV6b25lPSR7ITB9CiAgICAgICAgICB0aW1lRm9ybWF0PSIyNGgiCiAgICAgICAgICB0aW1lem9uZT0iQW1lcmljYS9OZXdfWW9yayIKICAgICAgICA+PC9kZWVzLWlucHV0LWRhdGVwaWNrZXI+CiAgICAgICAgCiAgICAgICAgPGRlZXMtaW5wdXQtZGF0ZXBpY2tlcgogICAgICAgICAgbGFiZWw9Ikdsb2JhbCBFdmVudCBTY2hlZHVsZSIKICAgICAgICAgIGRlc2NyaXB0aW9uPSJTY2hlZHVsZSBhbiBldmVudCBhY3Jvc3MgZGlmZmVyZW50IHRpbWV6b25lcyIKICAgICAgICAgIC5lbmFibGVUaW1lPSR7ITB9CiAgICAgICAgICAuZW5hYmxlVGltZXpvbmU9JHshMH0KICAgICAgICAgIHRpbWVGb3JtYXQ9IjEyaCIKICAgICAgICAgIHRpbWV6b25lPSJFdXJvcGUvTG9uZG9uIgogICAgICAgICAgLm1pbnV0ZUluY3JlbWVudD0kezMwfQogICAgICAgID48L2RlZXMtaW5wdXQtZGF0ZXBpY2tlcj4KICAgICAgPC9kZWVzLXBhbmVsPgogICAgPC9kZWVzLWRlbW93cmFwcGVyPgoKICAgIDxkZWVzLWRlbW93cmFwcGVyIC5ydW5BZnRlclJlbmRlcj0ke2FzeW5jIHQ9PntsZXQgZT10LnF1ZXJ5U2VsZWN0b3IoImRlZXMtaW5wdXQtZGF0ZXBpY2tlciIpO2UmJmUuYWRkRXZlbnRMaXN0ZW5lcigiY2hhbmdlIixhPT57bGV0IGk9YS50YXJnZXQudmFsdWU7aWYoaSl7bGV0IHI9bmV3IERhdGUoaSkscz1uZXcgRGF0ZSxuPU1hdGguZmxvb3IoKHIuZ2V0VGltZSgpLXMuZ2V0VGltZSgpKS8oMWUzKjYwKjYwKjI0KSk7Y29uc29sZS5sb2coYFNlbGVjdGVkIGRhdGUgaXMgJHtufSBkYXlzIGZyb20gdG9kYXlgKX19KX19PgogICAgICA8ZGVlcy1wYW5lbCAudGl0bGU9JHsiRGF0ZSBSYW5nZSBDb25zdHJhaW50cyJ9IC5zdWJ0aXRsZT0keyJMaW1pdCBzZWxlY3RhYmxlIGRhdGVzIHdpdGggbWluIGFuZCBtYXggdmFsdWVzIn0+CiAgICAgICAgPGRlZXMtaW5wdXQtZGF0ZXBpY2tlcgogICAgICAgICAgbGFiZWw9IkZ1dHVyZSBEYXRlIE9ubHkiCiAgICAgICAgICBkZXNjcmlwdGlvbj0iQ2FuIG9ubHkgc2VsZWN0IGRhdGVzIGZyb20gdG9kYXkgdG8gOTAgZGF5cyBpbiB0aGUgZnV0dXJlIgogICAgICAgICAgLm1pbkRhdGU9JHtuZXcgRGF0ZSgpLnRvSVNPU3RyaW5nKCl9CiAgICAgICAgICAubWF4RGF0ZT0ke25ldyBEYXRlKERhdGUubm93KCkrMjE2MCo2MCo2MCoxZTMpLnRvSVNPU3RyaW5nKCl9CiAgICAgICAgPjwvZGVlcy1pbnB1dC1kYXRlcGlja2VyPgogICAgICA8L2RlZXMtcGFuZWw+CiAgICA8L2RlZXMtZGVtb3dyYXBwZXI+CgogICAgPGRlZXMtZGVtb3dyYXBwZXIgLnJ1bkFmdGVyUmVuZGVyPSR7YXN5bmMgdD0+e2xldCBlPXsiREQvTU0vWVlZWSI6IkV1cm9wZWFuIiwiTU0vREQvWVlZWSI6IlVTIiwiWVlZWS1NTS1ERCI6IklTTyJ9O3QucXVlcnlTZWxlY3RvckFsbCgiZGVlcy1pbnB1dC1kYXRlcGlja2VyIikuZm9yRWFjaChpPT57aS5hZGRFdmVudExpc3RlbmVyKCJjaGFuZ2UiLHI9PntsZXQgcz1yLnRhcmdldCxuPXMuc2hhZG93Um9vdD8ucXVlcnlTZWxlY3RvcigiLmRhdGUtaW5wdXQiKTtuJiZjb25zb2xlLmxvZyhgJHtzLmxhYmVsfSBmb3JtYXQ6YCxuLnZhbHVlKX0pfSl9fT4KICAgICAgPGRlZXMtcGFuZWwgLnRpdGxlPSR7IkRhdGUgRm9ybWF0cyJ9IC5zdWJ0aXRsZT0keyJEaWZmZXJlbnQgZGF0ZSBkaXNwbGF5IGZvcm1hdHMgZm9yIHZhcmlvdXMgcmVnaW9ucyJ9PgogICAgICAgIDxkaXYgY2xhc3M9ImRhdGUtZ3JvdXAiPgogICAgICAgICAgPGRlZXMtaW5wdXQtZGF0ZXBpY2tlcgogICAgICAgICAgICBsYWJlbD0iRXVyb3BlYW4gRm9ybWF0IgogICAgICAgICAgICBkYXRlRm9ybWF0PSJERC9NTS9ZWVlZIgogICAgICAgICAgICAudmFsdWU9JHtuZXcgRGF0ZSgpLnRvSVNPU3RyaW5nKCl9CiAgICAgICAgICA+PC9kZWVzLWlucHV0LWRhdGVwaWNrZXI+CiAgICAgICAgICAKICAgICAgICAgIDxkZWVzLWlucHV0LWRhdGVwaWNrZXIKICAgICAgICAgICAgbGFiZWw9IlVTIEZvcm1hdCIKICAgICAgICAgICAgZGF0ZUZvcm1hdD0iTU0vREQvWVlZWSIKICAgICAgICAgICAgLnZhbHVlPSR7bmV3IERhdGUoKS50b0lTT1N0cmluZygpfQogICAgICAgICAgPjwvZGVlcy1pbnB1dC1kYXRlcGlja2VyPgogICAgICAgICAgCiAgICAgICAgICA8ZGVlcy1pbnB1dC1kYXRlcGlja2VyCiAgICAgICAgICAgIGxhYmVsPSJJU08gRm9ybWF0IgogICAgICAgICAgICBkYXRlRm9ybWF0PSJZWVlZLU1NLUREIgogICAgICAgICAgICAudmFsdWU9JHtuZXcgRGF0ZSgpLnRvSVNPU3RyaW5nKCl9CiAgICAgICAgICA+PC9kZWVzLWlucHV0LWRhdGVwaWNrZXI+CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGVlcy1wYW5lbD4KICAgIDwvZGVlcy1kZW1vd3JhcHBlcj4KCiAgICA8ZGVlcy1kZW1vd3JhcHBlciAucnVuQWZ0ZXJSZW5kZXI9JHthc3luYyB0PT57bGV0IGU9dC5xdWVyeVNlbGVjdG9yKCJkZWVzLWlucHV0LWRhdGVwaWNrZXJbcmVxdWlyZWRdIik7ZSYmZS5hZGRFdmVudExpc3RlbmVyKCJibHVyIiwoKT0+e2UuZ2V0VmFsdWUoKXx8Y29uc29sZS5sb2coIlJlcXVpcmVkIGRhdGUgZmllbGQgaXMgZW1wdHkiKX0pfX0+CiAgICAgIDxkZWVzLXBhbmVsIC50aXRsZT0keyJGb3JtIFN0YXRlcyJ9IC5zdWJ0aXRsZT0keyJSZXF1aXJlZCBhbmQgZGlzYWJsZWQgc3RhdGVzIn0+CiAgICAgICAgPGRlZXMtaW5wdXQtZGF0ZXBpY2tlcgogICAgICAgICAgbGFiZWw9IkJpcnRoIERhdGUiCiAgICAgICAgICBkZXNjcmlwdGlvbj0iVGhpcyBmaWVsZCBpcyByZXF1aXJlZCIKICAgICAgICAgIC5yZXF1aXJlZD0keyEwfQogICAgICAgICAgcGxhY2Vob2xkZXI9IlNlbGVjdCB5b3VyIGJpcnRoIGRhdGUiCiAgICAgICAgPjwvZGVlcy1pbnB1dC1kYXRlcGlja2VyPgogICAgICAgIAogICAgICAgIDxkZWVzLWlucHV0LWRhdGVwaWNrZXIKICAgICAgICAgIGxhYmVsPSJEaXNhYmxlZCBEYXRlIgogICAgICAgICAgZGVzY3JpcHRpb249IlRoaXMgZmllbGQgY2Fubm90IGJlIGVkaXRlZCIKICAgICAgICAgIC5kaXNhYmxlZD0keyEwfQogICAgICAgICAgLnZhbHVlPSR7bmV3IERhdGUoKS50b0lTT1N0cmluZygpfQogICAgICAgID48L2RlZXMtaW5wdXQtZGF0ZXBpY2tlcj4KICAgICAgPC9kZWVzLXBhbmVsPgogICAgPC9kZWVzLWRlbW93cmFwcGVyPgoKICAgIDxkZWVzLWRlbW93cmFwcGVyIC5ydW5BZnRlclJlbmRlcj0ke2FzeW5jIHQ9PntsZXQgZT10LnF1ZXJ5U2VsZWN0b3IoJ2RlZXMtaW5wdXQtZGF0ZXBpY2tlcltsYWJlbD0iVVMgQ2FsZW5kYXIiXScpLGE9dC5xdWVyeVNlbGVjdG9yKCdkZWVzLWlucHV0LWRhdGVwaWNrZXJbbGFiZWw9IkVVIENhbGVuZGFyIl0nKTtlJiZjb25zb2xlLmxvZygiVVMgQ2FsZW5kYXIgc3RhcnRzIG9uIFN1bmRheSAoMCkiKSxhJiZjb25zb2xlLmxvZygiRVUgQ2FsZW5kYXIgc3RhcnRzIG9uIE1vbmRheSAoMSkiKX19PgogICAgICA8ZGVlcy1wYW5lbCAudGl0bGU9JHsiQ2FsZW5kYXIgQ3VzdG9taXphdGlvbiJ9IC5zdWJ0aXRsZT0keyJEaWZmZXJlbnQgd2VlayBzdGFydCBkYXlzIGZvciB2YXJpb3VzIHJlZ2lvbnMifT4KICAgICAgICA8ZGl2IGNsYXNzPSJkYXRlLWdyb3VwIj4KICAgICAgICAgIDxkZWVzLWlucHV0LWRhdGVwaWNrZXIKICAgICAgICAgICAgbGFiZWw9IlVTIENhbGVuZGFyIgogICAgICAgICAgICBkZXNjcmlwdGlvbj0iV2VlayBzdGFydHMgb24gU3VuZGF5IgogICAgICAgICAgICAud2Vla1N0YXJ0c09uPSR7MH0KICAgICAgICAgID48L2RlZXMtaW5wdXQtZGF0ZXBpY2tlcj4KICAgICAgICAgIAogICAgICAgICAgPGRlZXMtaW5wdXQtZGF0ZXBpY2tlcgogICAgICAgICAgICBsYWJlbD0iRVUgQ2FsZW5kYXIiCiAgICAgICAgICAgIGRlc2NyaXB0aW9uPSJXZWVrIHN0YXJ0cyBvbiBNb25kYXkiCiAgICAgICAgICAgIC53ZWVrU3RhcnRzT249JHsxfQogICAgICAgICAgPjwvZGVlcy1pbnB1dC1kYXRlcGlja2VyPgogICAgICAgIDwvZGl2PgogICAgICA8L2RlZXMtcGFuZWw+CiAgICA8L2RlZXMtZGVtb3dyYXBwZXI+CgogICAgPGRlZXMtZGVtb3dyYXBwZXIgLnJ1bkFmdGVyUmVuZGVyPSR7YXN5bmMgdD0+e2xldCBlPSgpPT57bGV0IGk9W10scj1uZXcgRGF0ZSxzPXIuZ2V0RnVsbFllYXIoKSxuPXIuZ2V0TW9udGgoKSxvPW5ldyBEYXRlKHMsbiwxKTtmb3IoO28uZ2V0TW9udGgoKT09PW47KShvLmdldERheSgpPT09MHx8by5nZXREYXkoKT09PTYpJiZpLnB1c2gobmV3IERhdGUobykudG9JU09TdHJpbmcoKSksby5zZXREYXRlKG8uZ2V0RGF0ZSgpKzEpO3JldHVybiBpfSxhPXQucXVlcnlTZWxlY3RvcigiZGVlcy1pbnB1dC1kYXRlcGlja2VyIik7YSYmKGEuZGlzYWJsZWREYXRlcz1lKCksY29uc29sZS5sb2coIkRpc2FibGVkIHdlZWtlbmQgZGF0ZXMgZm9yIGN1cnJlbnQgbW9udGgiKSl9fT4KICAgICAgPGRlZXMtcGFuZWwgLnRpdGxlPSR7IkRpc2FibGVkIERhdGVzIn0gLnN1YnRpdGxlPSR7IkNhbGVuZGFyIHdpdGggc3BlY2lmaWMgZGF0ZXMgZGlzYWJsZWQgKHdlZWtlbmRzIGluIGN1cnJlbnQgbW9udGgpIn0+CiAgICAgICAgPGRlZXMtaW5wdXQtZGF0ZXBpY2tlcgogICAgICAgICAgbGFiZWw9IkF2YWlsYWJpbGl0eSBDYWxlbmRhciIKICAgICAgICAgIGRlc2NyaXB0aW9uPSJXZWVrZW5kcyBhcmUgZGlzYWJsZWQgZm9yIHRoZSBjdXJyZW50IG1vbnRoIgogICAgICAgID48L2RlZXMtaW5wdXQtZGF0ZXBpY2tlcj4KICAgICAgPC9kZWVzLXBhbmVsPgogICAgPC9kZWVzLWRlbW93cmFwcGVyPgoKICAgIDxkZWVzLWRlbW93cmFwcGVyIC5ydW5BZnRlclJlbmRlcj0ke2FzeW5jIHQ9PntsZXQgZT1uZXcgRGF0ZSxhPWUuZ2V0TW9udGgoKSxpPWUuZ2V0RnVsbFllYXIoKSxyPVt7ZGF0ZTpgJHtpfS0keyhhKzEpLnRvU3RyaW5nKCkucGFkU3RhcnQoMiwiMCIpfS0ke2UuZ2V0RGF0ZSgpLnRvU3RyaW5nKCkucGFkU3RhcnQoMiwiMCIpfWAsdGl0bGU6IlRlYW0gTWVldGluZyIsdHlwZToiaW5mbyIsY291bnQ6Mn0se2RhdGU6YCR7aX0tJHsoYSsxKS50b1N0cmluZygpLnBhZFN0YXJ0KDIsIjAiKX0tJHsoZS5nZXREYXRlKCkrMSkudG9TdHJpbmcoKS5wYWRTdGFydCgyLCIwIil9YCx0aXRsZToiUHJvamVjdCBEZWFkbGluZSIsdHlwZToid2FybmluZyJ9LHtkYXRlOmAke2l9LSR7KGErMSkudG9TdHJpbmcoKS5wYWRTdGFydCgyLCIwIil9LSR7KGUuZ2V0RGF0ZSgpKzIpLnRvU3RyaW5nKCkucGFkU3RhcnQoMiwiMCIpfWAsdGl0bGU6IlJlbGVhc2UgRGF5Iix0eXBlOiJzdWNjZXNzIn0se2RhdGU6YCR7aX0tJHsoYSsxKS50b1N0cmluZygpLnBhZFN0YXJ0KDIsIjAiKX0tJHsoZS5nZXREYXRlKCkrNSkudG9TdHJpbmcoKS5wYWRTdGFydCgyLCIwIil9YCx0aXRsZToiVXJnZW50IEZpeCBSZXF1aXJlZCIsdHlwZToiZXJyb3IifSx7ZGF0ZTpgJHtpfS0keyhhKzEpLnRvU3RyaW5nKCkucGFkU3RhcnQoMiwiMCIpfS0keyhlLmdldERhdGUoKSs3KS50b1N0cmluZygpLnBhZFN0YXJ0KDIsIjAiKX1gLHRpdGxlOiJNdWx0aXBsZSBFdmVudHMgVG9kYXkiLHR5cGU6ImluZm8iLGNvdW50OjV9LHtkYXRlOmAke2l9LSR7KGErMikudG9TdHJpbmcoKS5wYWRTdGFydCgyLCIwIil9LTE1YCx0aXRsZToiRnV0dXJlIFBsYW5uaW5nIFNlc3Npb24iLHR5cGU6ImluZm8ifV0scz10LnF1ZXJ5U2VsZWN0b3IoImRlZXMtaW5wdXQtZGF0ZXBpY2tlciIpO3MmJihzLmV2ZW50cz1yLGNvbnNvbGUubG9nKCJDYWxlbmRhciBldmVudHMgbG9hZGVkOiIscikpfX0+CiAgICAgIDxkZWVzLXBhbmVsIC50aXRsZT0keyJDYWxlbmRhciB3aXRoIEV2ZW50cyJ9IC5zdWJ0aXRsZT0keyJWaXN1YWwgZmVlZGJhY2sgZm9yIHNjaGVkdWxlZCBldmVudHMifT4KICAgICAgICA8ZGVlcy1pbnB1dC1kYXRlcGlja2VyCiAgICAgICAgICBsYWJlbD0iRXZlbnQgQ2FsZW5kYXIiCiAgICAgICAgICBkZXNjcmlwdGlvbj0iRGF5cyB3aXRoIGNvbG9yZWQgZG90cyBoYXZlIGV2ZW50cy4gSG92ZXIgdG8gc2VlIGRldGFpbHMuIgogICAgICAgID48L2RlZXMtaW5wdXQtZGF0ZXBpY2tlcj4KICAgICAgICAKICAgICAgICA8ZGl2IGNsYXNzPSJkZW1vLW91dHB1dCIgc3R5bGU9Im1hcmdpbi10b3A6IDE2cHg7Ij4KICAgICAgICAgIDxzdHJvbmc+RXZlbnQgTGVnZW5kOjwvc3Ryb25nPjxicj4KICAgICAgICAgIDxzcGFuIHN0eWxlPSJjb2xvcjogIzA5NjlkYTsiPuKXjyBJbmZvPC9zcGFuPiB8IAogICAgICAgICAgPHNwYW4gc3R5bGU9ImNvbG9yOiAjZDI5OTIyOyI+4pePIFdhcm5pbmc8L3NwYW4+IHwgCiAgICAgICAgICA8c3BhbiBzdHlsZT0iY29sb3I6ICMyZWEwNDM7Ij7il48gU3VjY2Vzczwvc3Bhbj4gfCAKICAgICAgICAgIDxzcGFuIHN0eWxlPSJjb2xvcjogI2NmMjIyZTsiPuKXjyBFcnJvcjwvc3Bhbj48YnI+CiAgICAgICAgICA8ZW0+RGF5cyB3aXRoIG1vcmUgdGhhbiAzIGV2ZW50cyBzaG93IGEgY291bnQgYmFkZ2U8L2VtPgogICAgICAgIDwvZGl2PgogICAgICA8L2RlZXMtcGFuZWw+CiAgICA8L2RlZXMtZGVtb3dyYXBwZXI+CgogICAgPGRlZXMtZGVtb3dyYXBwZXIgLnJ1bkFmdGVyUmVuZGVyPSR7YXN5bmMgdD0+e2xldCBlPXQucXVlcnlTZWxlY3RvcigiZGVlcy1pbnB1dC1kYXRlcGlja2VyIiksYT10LnF1ZXJ5U2VsZWN0b3IoIiNldmVudC1vdXRwdXQiKTtlJiZhJiYoZS5hZGRFdmVudExpc3RlbmVyKCJjaGFuZ2UiLGk9PntsZXQgcj1pLnRhcmdldCxzPXIudmFsdWU7aWYocyl7bGV0IG49bmV3IERhdGUocyksZD1yLnNoYWRvd1Jvb3Q/LnF1ZXJ5U2VsZWN0b3IoIi5kYXRlLWlucHV0Iik/LnZhbHVlfHwiTi9BIjthLmlubmVySFRNTD1gCiAgICAgICAgICAgICAgPHN0cm9uZz5FdmVudCB0cmlnZ2VyZWQhPC9zdHJvbmc+PGJyPgogICAgICAgICAgICAgIElTTyBWYWx1ZTogJHtzfTxicj4KICAgICAgICAgICAgICBGb3JtYXR0ZWQ6ICR7ZH08YnI+CiAgICAgICAgICAgICAgRGF0ZSBvYmplY3Q6ICR7bi50b0xvY2FsZVN0cmluZygpfQogICAgICAgICAgICBgfWVsc2UgYS5pbm5lckhUTUw9IjxlbT5EYXRlIGNsZWFyZWQ8L2VtPiJ9KSxlLmFkZEV2ZW50TGlzdGVuZXIoImJsdXIiLCgpPT57Y29uc29sZS5sb2coIkRhdGVwaWNrZXIgbG9zdCBmb2N1cyIpfSkpfX0+CiAgICAgIDxkZWVzLXBhbmVsIC50aXRsZT0keyJFdmVudCBIYW5kbGluZyJ9IC5zdWJ0aXRsZT0keyJJbnRlcmFjdGl2ZSBkZW1vbnN0cmF0aW9uIG9mIGNoYW5nZSBldmVudHMifT4KICAgICAgICA8ZGVlcy1pbnB1dC1kYXRlcGlja2VyCiAgICAgICAgICBsYWJlbD0iRXZlbnQgRGVtbyIKICAgICAgICAgIGRlc2NyaXB0aW9uPSJTZWxlY3QgYSBkYXRlIHRvIHNlZSB0aGUgZXZlbnQgZGV0YWlscyIKICAgICAgICA+PC9kZWVzLWlucHV0LWRhdGVwaWNrZXI+CiAgICAgICAgCiAgICAgICAgPGRpdiBpZD0iZXZlbnQtb3V0cHV0IiBjbGFzcz0iZGVtby1vdXRwdXQiPgogICAgICAgICAgPGVtPlNlbGVjdCBhIGRhdGUgdG8gc2VlIGV2ZW50IGRldGFpbHMuLi48L2VtPgogICAgICAgIDwvZGl2PgogICAgICA8L2RlZXMtcGFuZWw+CiAgICA8L2RlZXMtZGVtb3dyYXBwZXI+CiAgPC9kaXY+CmB9KTt2YXIgRzl0LFk5dD1iKCgpPT57dWUoKTtfMSgpO0c5dD1bLi4uWGUuYmFzZVN0eWxlcyxwLmRlZmF1bHRTdHlsZXMsUWAKICAgICAgOmhvc3QgewogICAgICAgIGRpc3BsYXk6IGJsb2NrOwogICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgfQoKICAgICAgLmlucHV0LWNvbnRhaW5lciB7CiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICAgIHdpZHRoOiAxMDAlOwogICAgICB9CgogICAgICAuZGF0ZS1pbnB1dCB7CiAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgICAgaGVpZ2h0OiA0MHB4OwogICAgICAgIHBhZGRpbmc6IDAgMTJweDsKICAgICAgICBiYWNrZ3JvdW5kOiAke3AuYmRUaGVtZSgiaHNsKDAgMCUgMTAwJSkiLCJoc2woMjI0IDcxLjQlIDQuMSUpIil9OwogICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICR7cC5iZFRoZW1lKCJoc2woMjE0LjMgMzEuOCUgOTEuNCUpIiwiaHNsKDIxNy4yIDMyLjYlIDE3LjUlKSIpfTsKICAgICAgICBib3JkZXItcmFkaXVzOiA2cHg7CiAgICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgICAgIGxpbmUtaGVpZ2h0OiAxLjU7CiAgICAgICAgY29sb3I6ICR7cC5iZFRoZW1lKCJoc2woMjI0IDcxLjQlIDQuMSUpIiwiaHNsKDIxMCAyMCUgOTglKSIpfTsKICAgICAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuMnMgZWFzZTsKICAgICAgICBvdXRsaW5lOiBub25lOwogICAgICAgIGZvbnQtZmFtaWx5OiBpbmhlcml0OwogICAgICB9CgogICAgICAuZGF0ZS1pbnB1dDo6cGxhY2Vob2xkZXIgewogICAgICAgIGNvbG9yOiAke3AuYmRUaGVtZSgiaHNsKDIyMCA4LjklIDQ2LjElKSIsImhzbCgyMTUgMjAuMiUgNjUuMSUpIil9OwogICAgICB9CgogICAgICAuZGF0ZS1pbnB1dDpob3Zlcjpub3QoOmRpc2FibGVkKSB7CiAgICAgICAgYm9yZGVyLWNvbG9yOiAke3AuYmRUaGVtZSgiaHNsKDIxNC4zIDMxLjglIDkxLjQlKSIsImhzbCgyMTcuMiAzMi42JSAxNy41JSkiKX07CiAgICAgICAgYmFja2dyb3VuZDogJHtwLmJkVGhlbWUoImhzbCgyMTAgMjAlIDk4JSkiLCJoc2woMjE1IDI3LjklIDE2LjklKSIpfTsKICAgICAgfQoKICAgICAgLmRhdGUtaW5wdXQ6Zm9jdXMsCiAgICAgIC5kYXRlLWlucHV0Lm9wZW4gewogICAgICAgIGJvcmRlci1jb2xvcjogJHtwLmJkVGhlbWUoImhzbCgyMjIuMiA0Ny40JSAxMS4yJSkiLCJoc2woMjEwIDIwJSA5OCUpIil9OwogICAgICAgIG91dGxpbmU6IDJweCBzb2xpZCB0cmFuc3BhcmVudDsKICAgICAgICBvdXRsaW5lLW9mZnNldDogMnB4OwogICAgICAgIGJveC1zaGFkb3c6IDAgMCAwIDJweCAke3AuYmRUaGVtZSgiaHNsKDAgMCUgMTAwJSkiLCJoc2woMjI0IDcxLjQlIDQuMSUpIil9LAogICAgICAgICAgICAgICAgICAgIDAgMCAwIDRweCAke3AuYmRUaGVtZSgiaHNsKDIyMi4yIDQ3LjQlIDExLjIlIC8gMC4xKSIsImhzbCgyMTAgMjAlIDk4JSAvIDAuMSkiKX07CiAgICAgIH0KCiAgICAgIC5kYXRlLWlucHV0OmRpc2FibGVkIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke3AuYmRUaGVtZSgiaHNsKDIxMCAyMCUgOTglKSIsImhzbCgyMTUgMjcuOSUgMTYuOSUpIil9OwogICAgICAgIGNvbG9yOiAke3AuYmRUaGVtZSgiaHNsKDIyMCA4LjklIDQ2LjElKSIsImhzbCgyMTUgMjAuMiUgNjUuMSUpIil9OwogICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7CiAgICAgICAgb3BhY2l0eTogMC41OwogICAgICB9CgogICAgICAvKiBJY29uIGNvbnRhaW5lciB1c2luZyBmbGV4Ym94IGZvciBiZXR0ZXIgcG9zaXRpb25pbmcgKi8KICAgICAgLmljb24tY29udGFpbmVyIHsKICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgICAgcmlnaHQ6IDA7CiAgICAgICAgdG9wOiAwOwogICAgICAgIGJvdHRvbTogMDsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgZ2FwOiA0cHg7CiAgICAgICAgcGFkZGluZzogMCAxMnB4OwogICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lOwogICAgICB9CgogICAgICAuaWNvbi1jb250YWluZXIgPiAqIHsKICAgICAgICBwb2ludGVyLWV2ZW50czogYXV0bzsKICAgICAgfQoKICAgICAgLmNhbGVuZGFyLWljb24gewogICAgICAgIGNvbG9yOiAke3AuYmRUaGVtZSgiaHNsKDIyMCA4LjklIDQ2LjElKSIsImhzbCgyMTUgMjAuMiUgNjUuMSUpIil9OwogICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lOwogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKICAgICAgfQoKICAgICAgLmNsZWFyLWJ1dHRvbiB7CiAgICAgICAgd2lkdGg6IDIwcHg7CiAgICAgICAgaGVpZ2h0OiAyMHB4OwogICAgICAgIGJvcmRlcjogbm9uZTsKICAgICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDsKICAgICAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOwogICAgICAgIGJvcmRlci1yYWRpdXM6IDRweDsKICAgICAgICBjb2xvcjogJHtwLmJkVGhlbWUoImhzbCgyMjAgOC45JSA0Ni4xJSkiLCJoc2woMjE1IDIwLjIlIDY1LjElKSIpfTsKICAgICAgICB0cmFuc2l0aW9uOiBvcGFjaXR5IDAuMnMgZWFzZSwgYmFja2dyb3VuZC1jb2xvciAwLjJzIGVhc2U7CiAgICAgICAgcGFkZGluZzogMDsKICAgICAgICBmbGV4LXNocmluazogMDsKICAgICAgfQoKICAgICAgLmNsZWFyLWJ1dHRvbjpob3ZlciB7CiAgICAgICAgYmFja2dyb3VuZDogJHtwLmJkVGhlbWUoImhzbCgyMTAgMjAlIDk4JSkiLCJoc2woMjE1IDI3LjklIDE2LjklKSIpfTsKICAgICAgICBjb2xvcjogJHtwLmJkVGhlbWUoImhzbCgyMjQgNzEuNCUgNC4xJSkiLCJoc2woMjEwIDIwJSA5OCUpIil9OwogICAgICB9CgogICAgICAuY2xlYXItYnV0dG9uOmRpc2FibGVkIHsKICAgICAgICBkaXNwbGF5OiBub25lOwogICAgICB9CgogICAgICAvKiBDYWxlbmRhciBQb3B1cCBTdHlsZXMgKi8KICAgICAgLmNhbGVuZGFyLXBvcHVwIHsKICAgICAgICB3aWxsLWNoYW5nZTogdHJhbnNmb3JtLCBvcGFjaXR5OwogICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lOwogICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjJzIGVhc2U7CiAgICAgICAgb3BhY2l0eTogMDsKICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTRweCk7CiAgICAgICAgYmFja2dyb3VuZDogJHtwLmJkVGhlbWUoImhzbCgwIDAlIDEwMCUpIiwiaHNsKDIyNCA3MS40JSA0LjElKSIpfTsKICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAke3AuYmRUaGVtZSgiaHNsKDIxNC4zIDMxLjglIDkxLjQlKSIsImhzbCgyMTcuMiAzMi42JSAxNy41JSkiKX07CiAgICAgICAgYm94LXNoYWRvdzogJHtwLmJkVGhlbWUoIjAgMTBweCAxNXB4IC0zcHggaHNsKDAgMCUgMCUgLyAwLjEpLCAwIDRweCA2cHggLTRweCBoc2woMCAwJSAwJSAvIDAuMSkiLCIwIDEwcHggMTVweCAtM3B4IGhzbCgwIDAlIDAlIC8gMC4yKSwgMCA0cHggNnB4IC00cHggaHNsKDAgMCUgMCUgLyAwLjIpIil9OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDZweDsKICAgICAgICBwYWRkaW5nOiAxMnB4OwogICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgICB1c2VyLXNlbGVjdDogbm9uZTsKICAgICAgICBtYXJnaW4tdG9wOiA0cHg7CiAgICAgICAgei1pbmRleDogNTA7CiAgICAgICAgbGVmdDogMDsKICAgICAgICBtaW4td2lkdGg6IDI4MHB4OwogICAgICB9CgogICAgICAuY2FsZW5kYXItcG9wdXAudG9wIHsKICAgICAgICBib3R0b206IGNhbGMoMTAwJSArIDRweCk7CiAgICAgICAgdG9wOiBhdXRvOwogICAgICAgIG1hcmdpbi10b3A6IDA7CiAgICAgICAgbWFyZ2luLWJvdHRvbTogNHB4OwogICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSg0cHgpOwogICAgICB9CgogICAgICAuY2FsZW5kYXItcG9wdXAuYm90dG9tIHsKICAgICAgICB0b3A6IDEwMCU7CiAgICAgIH0KCiAgICAgIC5jYWxlbmRhci1wb3B1cC5zaG93IHsKICAgICAgICBwb2ludGVyLWV2ZW50czogYWxsOwogICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgwKTsKICAgICAgICBvcGFjaXR5OiAxOwogICAgICB9CgogICAgICAvKiBDYWxlbmRhciBIZWFkZXIgKi8KICAgICAgLmNhbGVuZGFyLWhlYWRlciB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjsKICAgICAgICBtYXJnaW4tYm90dG9tOiAxNnB4OwogICAgICAgIGdhcDogOHB4OwogICAgICB9CgogICAgICAubW9udGgteWVhci1kaXNwbGF5IHsKICAgICAgICBmb250LXdlaWdodDogNTAwOwogICAgICAgIGZvbnQtc2l6ZTogMTRweDsKICAgICAgICBjb2xvcjogJHtwLmJkVGhlbWUoImhzbCgyMjQgNzEuNCUgNC4xJSkiLCJoc2woMjEwIDIwJSA5OCUpIil9OwogICAgICAgIGZsZXg6IDE7CiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyOwogICAgICB9CgogICAgICAubmF2LWJ1dHRvbiB7CiAgICAgICAgd2lkdGg6IDI4cHg7CiAgICAgICAgaGVpZ2h0OiAyOHB4OwogICAgICAgIGJvcmRlcjogbm9uZTsKICAgICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDsKICAgICAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICAgICAgYm9yZGVyLXJhZGl1czogNnB4OwogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKICAgICAgICBjb2xvcjogJHtwLmJkVGhlbWUoImhzbCgyMjAgOC45JSA0Ni4xJSkiLCJoc2woMjE1IDIwLjIlIDY1LjElKSIpfTsKICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC4ycyBlYXNlOwogICAgICB9CgogICAgICAubmF2LWJ1dHRvbjpob3ZlciB7CiAgICAgICAgYmFja2dyb3VuZDogJHtwLmJkVGhlbWUoImhzbCgyMTAgMjAlIDk4JSkiLCJoc2woMjE1IDI3LjklIDE2LjklKSIpfTsKICAgICAgICBjb2xvcjogJHtwLmJkVGhlbWUoImhzbCgyMjQgNzEuNCUgNC4xJSkiLCJoc2woMjEwIDIwJSA5OCUpIil9OwogICAgICB9CgogICAgICAubmF2LWJ1dHRvbjphY3RpdmUgewogICAgICAgIGJhY2tncm91bmQ6ICR7cC5iZFRoZW1lKCJoc2woMjE0LjMgMzEuOCUgOTEuNCUpIiwiaHNsKDIxNy4yIDMyLjYlIDE3LjUlKSIpfTsKICAgICAgfQoKICAgICAgLyogV2Vla2RheSBoZWFkZXJzICovCiAgICAgIC53ZWVrZGF5cyB7CiAgICAgICAgZGlzcGxheTogZ3JpZDsKICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdCg3LCAxZnIpOwogICAgICAgIGdhcDogMDsKICAgICAgICBtYXJnaW4tYm90dG9tOiA0cHg7CiAgICAgIH0KCiAgICAgIC53ZWVrZGF5IHsKICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7CiAgICAgICAgZm9udC1zaXplOiAxMnB4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA0MDA7CiAgICAgICAgY29sb3I6ICR7cC5iZFRoZW1lKCJoc2woMjIwIDguOSUgNDYuMSUpIiwiaHNsKDIxNSAyMC4yJSA2NS4xJSkiKX07CiAgICAgICAgcGFkZGluZzogMCAwIDhweCAwOwogICAgICB9CgogICAgICAvKiBEYXlzIGdyaWQgKi8KICAgICAgLmRheXMtZ3JpZCB7CiAgICAgICAgZGlzcGxheTogZ3JpZDsKICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdCg3LCAxZnIpOwogICAgICAgIGdhcDogMnB4OwogICAgICB9CgogICAgICAuZGF5IHsKICAgICAgICBhc3BlY3QtcmF0aW86IDE7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOwogICAgICAgIGN1cnNvcjogcG9pbnRlcjsKICAgICAgICBib3JkZXItcmFkaXVzOiA2cHg7CiAgICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjJzIGVhc2U7CiAgICAgICAgY29sb3I6ICR7cC5iZFRoZW1lKCJoc2woMjI0IDcxLjQlIDQuMSUpIiwiaHNsKDIxMCAyMCUgOTglKSIpfTsKICAgICAgICBib3JkZXI6IG5vbmU7CiAgICAgICAgd2lkdGg6IDM2cHg7CiAgICAgICAgaGVpZ2h0OiAzNnB4OwogICAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50OwogICAgICB9CgogICAgICAuZGF5OmhvdmVyOm5vdCguZGlzYWJsZWQpIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke3AuYmRUaGVtZSgiaHNsKDIxMCAyMCUgOTglKSIsImhzbCgyMTUgMjcuOSUgMTYuOSUpIil9OwogICAgICB9CgogICAgICAuZGF5Lm90aGVyLW1vbnRoIHsKICAgICAgICBjb2xvcjogJHtwLmJkVGhlbWUoImhzbCgyMjAgOC45JSA0Ni4xJSkiLCJoc2woMjE1IDIwLjIlIDY1LjElKSIpfTsKICAgICAgICBvcGFjaXR5OiAwLjU7CiAgICAgIH0KCiAgICAgIC5kYXkudG9kYXkgewogICAgICAgIGJhY2tncm91bmQ6ICR7cC5iZFRoZW1lKCJoc2woMjEwIDIwJSA5OCUpIiwiaHNsKDIxNSAyNy45JSAxNi45JSkiKX07CiAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDsKICAgICAgfQoKICAgICAgLmRheS5zZWxlY3RlZCB7CiAgICAgICAgYmFja2dyb3VuZDogJHtwLmJkVGhlbWUoImhzbCgyMjIuMiA0Ny40JSAxMS4yJSkiLCJoc2woMjEwIDIwJSA5OCUpIil9OwogICAgICAgIGNvbG9yOiAke3AuYmRUaGVtZSgiaHNsKDIxMCAyMCUgOTglKSIsImhzbCgyMjIuMiA0Ny40JSAxMS4yJSkiKX07CiAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDsKICAgICAgfQoKICAgICAgLmRheS5kaXNhYmxlZCB7CiAgICAgICAgY29sb3I6ICR7cC5iZFRoZW1lKCJoc2woMjIwIDguOSUgNDYuMSUpIiwiaHNsKDIxNSAyMC4yJSA2NS4xJSkiKX07CiAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDsKICAgICAgICBvcGFjaXR5OiAwLjM7CiAgICAgIH0KCiAgICAgIC8qIEV2ZW50IGluZGljYXRvcnMgKi8KICAgICAgLmRheS5oYXMtZXZlbnQgewogICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgfQoKICAgICAgLmV2ZW50LWluZGljYXRvciB7CiAgICAgICAgcG9zaXRpb246IGFic29sdXRlOwogICAgICAgIGJvdHRvbTogNHB4OwogICAgICAgIGxlZnQ6IDUwJTsKICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTUwJSk7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBnYXA6IDJweDsKICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKICAgICAgfQoKICAgICAgLmV2ZW50LWRvdCB7CiAgICAgICAgd2lkdGg6IDRweDsKICAgICAgICBoZWlnaHQ6IDRweDsKICAgICAgICBib3JkZXItcmFkaXVzOiA1MCU7CiAgICAgICAgYmFja2dyb3VuZDogJHtwLmJkVGhlbWUoImhzbCgyMjAgOC45JSA0Ni4xJSkiLCJoc2woMjE1IDIwLjIlIDY1LjElKSIpfTsKICAgICAgfQoKICAgICAgLmV2ZW50LWRvdC5pbmZvIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke3AuYmRUaGVtZSgiaHNsKDIxMSA3MCUgNTIlKSIsImhzbCgyMTEgNzAlIDYyJSkiKX07CiAgICAgIH0KCiAgICAgIC5ldmVudC1kb3Qud2FybmluZyB7CiAgICAgICAgYmFja2dyb3VuZDogJHtwLmJkVGhlbWUoImhzbCg0NSA5MCUgNDUlKSIsImhzbCg0NSA5MCUgNTUlKSIpfTsKICAgICAgfQoKICAgICAgLmV2ZW50LWRvdC5zdWNjZXNzIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke3AuYmRUaGVtZSgiaHNsKDE0MiA2OSUgNDUlKSIsImhzbCgxNDIgNjklIDU1JSkiKX07CiAgICAgIH0KCiAgICAgIC5ldmVudC1kb3QuZXJyb3IgewogICAgICAgIGJhY2tncm91bmQ6ICR7cC5iZFRoZW1lKCJoc2woMCA3MiUgNTElKSIsImhzbCgwIDcyJSA2MSUpIil9OwogICAgICB9CgogICAgICAuZXZlbnQtY291bnQgewogICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgICB0b3A6IDJweDsKICAgICAgICByaWdodDogMnB4OwogICAgICAgIG1pbi13aWR0aDogMTZweDsKICAgICAgICBoZWlnaHQ6IDE2cHg7CiAgICAgICAgcGFkZGluZzogMCA0cHg7CiAgICAgICAgYmFja2dyb3VuZDogJHtwLmJkVGhlbWUoImhzbCgwIDcyJSA1MSUpIiwiaHNsKDAgNzIlIDYxJSkiKX07CiAgICAgICAgY29sb3I6IHdoaXRlOwogICAgICAgIGJvcmRlci1yYWRpdXM6IDhweDsKICAgICAgICBmb250LXNpemU6IDEwcHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7CiAgICAgICAgbGluZS1oZWlnaHQ6IDE7CiAgICAgIH0KCiAgICAgIC8qIFRvb2x0aXAgZm9yIGV2ZW50IGRldGFpbHMgKi8KICAgICAgLmV2ZW50LXRvb2x0aXAgewogICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgICBib3R0b206IGNhbGMoMTAwJSArIDhweCk7CiAgICAgICAgbGVmdDogNTAlOwogICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNTAlKTsKICAgICAgICBiYWNrZ3JvdW5kOiAke3AuYmRUaGVtZSgiaHNsKDAgMCUgMjAlKSIsImhzbCgwIDAlIDkwJSkiKX07CiAgICAgICAgY29sb3I6ICR7cC5iZFRoZW1lKCJoc2woMCAwJSAxMDAlKSIsImhzbCgwIDAlIDAlKSIpfTsKICAgICAgICBwYWRkaW5nOiA4cHggMTJweDsKICAgICAgICBib3JkZXItcmFkaXVzOiA2cHg7CiAgICAgICAgZm9udC1zaXplOiAxMnB4OwogICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7CiAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7CiAgICAgICAgb3BhY2l0eTogMDsKICAgICAgICB0cmFuc2l0aW9uOiBvcGFjaXR5IDAuMnMgZWFzZTsKICAgICAgICB6LWluZGV4OiAxMDsKICAgICAgICBib3gtc2hhZG93OiAwIDJweCA4cHggcmdiYSgwLCAwLCAwLCAwLjIpOwogICAgICB9CgogICAgICAuZXZlbnQtdG9vbHRpcDo6YWZ0ZXIgewogICAgICAgIGNvbnRlbnQ6ICcnOwogICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgICB0b3A6IDEwMCU7CiAgICAgICAgbGVmdDogNTAlOwogICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNTAlKTsKICAgICAgICBib3JkZXI6IDRweCBzb2xpZCB0cmFuc3BhcmVudDsKICAgICAgICBib3JkZXItdG9wLWNvbG9yOiAke3AuYmRUaGVtZSgiaHNsKDAgMCUgMjAlKSIsImhzbCgwIDAlIDkwJSkiKX07CiAgICAgIH0KCiAgICAgIC5kYXkuaGFzLWV2ZW50OmhvdmVyIC5ldmVudC10b29sdGlwIHsKICAgICAgICBvcGFjaXR5OiAxOwogICAgICB9CgogICAgICAvKiBUaW1lIHNlbGVjdG9yICovCiAgICAgIC50aW1lLXNlbGVjdG9yIHsKICAgICAgICBtYXJnaW4tdG9wOiAxMnB4OwogICAgICAgIHBhZGRpbmctdG9wOiAxMnB4OwogICAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAke3AuYmRUaGVtZSgiaHNsKDIxNC4zIDMxLjglIDkxLjQlKSIsImhzbCgyMTcuMiAzMi42JSAxNy41JSkiKX07CiAgICAgIH0KCiAgICAgIC50aW1lLXNlbGVjdG9yLXRpdGxlIHsKICAgICAgICBmb250LXNpemU6IDEycHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDsKICAgICAgICBtYXJnaW4tYm90dG9tOiA4cHg7CiAgICAgICAgY29sb3I6ICR7cC5iZFRoZW1lKCJoc2woMjIwIDguOSUgNDYuMSUpIiwiaHNsKDIxNSAyMC4yJSA2NS4xJSkiKX07CiAgICAgIH0KCiAgICAgIC50aW1lLWlucHV0cyB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBnYXA6IDhweDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICB9CgogICAgICAudGltZS1pbnB1dCB7CiAgICAgICAgd2lkdGg6IDY1cHg7CiAgICAgICAgaGVpZ2h0OiAzNnB4OwogICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICR7cC5iZFRoZW1lKCJoc2woMjE0LjMgMzEuOCUgOTEuNCUpIiwiaHNsKDIxNy4yIDMyLjYlIDE3LjUlKSIpfTsKICAgICAgICBib3JkZXItcmFkaXVzOiA2cHg7CiAgICAgICAgcGFkZGluZzogMCAxMnB4OwogICAgICAgIGZvbnQtc2l6ZTogMTRweDsKICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7CiAgICAgICAgYmFja2dyb3VuZDogJHtwLmJkVGhlbWUoImhzbCgwIDAlIDEwMCUpIiwiaHNsKDIyNCA3MS40JSA0LjElKSIpfTsKICAgICAgICBjb2xvcjogJHtwLmJkVGhlbWUoImhzbCgyMjQgNzEuNCUgNC4xJSkiLCJoc2woMjEwIDIwJSA5OCUpIil9OwogICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjJzIGVhc2U7CiAgICAgIH0KCiAgICAgIC50aW1lLWlucHV0OmhvdmVyIHsKICAgICAgICBib3JkZXItY29sb3I6ICR7cC5iZFRoZW1lKCJoc2woMjE0LjMgMzEuOCUgOTEuNCUpIiwiaHNsKDIxNy4yIDMyLjYlIDE3LjUlKSIpfTsKICAgICAgICBiYWNrZ3JvdW5kOiAke3AuYmRUaGVtZSgiaHNsKDIxMCAyMCUgOTglKSIsImhzbCgyMTUgMjcuOSUgMTYuOSUpIil9OwogICAgICB9CgogICAgICAudGltZS1pbnB1dDpmb2N1cyB7CiAgICAgICAgb3V0bGluZTogbm9uZTsKICAgICAgICBib3JkZXItY29sb3I6ICR7cC5iZFRoZW1lKCJoc2woMjIyLjIgNDcuNCUgMTEuMiUpIiwiaHNsKDIxMCAyMCUgOTglKSIpfTsKICAgICAgICBib3gtc2hhZG93OiAwIDAgMCAycHggJHtwLmJkVGhlbWUoImhzbCgyMjIuMiA0Ny40JSAxMS4yJSAvIDAuMSkiLCJoc2woMjEwIDIwJSA5OCUgLyAwLjEpIil9OwogICAgICB9CgogICAgICAudGltZS1zZXBhcmF0b3IgewogICAgICAgIGZvbnQtc2l6ZTogMTRweDsKICAgICAgICBmb250LXdlaWdodDogNTAwOwogICAgICAgIGNvbG9yOiAke3AuYmRUaGVtZSgiaHNsKDIyMCA4LjklIDQ2LjElKSIsImhzbCgyMTUgMjAuMiUgNjUuMSUpIil9OwogICAgICB9CgogICAgICAuYW0tcG0tc2VsZWN0b3IgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgZ2FwOiA0cHg7CiAgICAgICAgbWFyZ2luLWxlZnQ6IDhweDsKICAgICAgfQoKICAgICAgLmFtLXBtLWJ1dHRvbiB7CiAgICAgICAgcGFkZGluZzogNnB4IDEycHg7CiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHtwLmJkVGhlbWUoImhzbCgyMTQuMyAzMS44JSA5MS40JSkiLCJoc2woMjE3LjIgMzIuNiUgMTcuNSUpIil9OwogICAgICAgIGJhY2tncm91bmQ6ICR7cC5iZFRoZW1lKCJoc2woMCAwJSAxMDAlKSIsImhzbCgyMjQgNzEuNCUgNC4xJSkiKX07CiAgICAgICAgYm9yZGVyLXJhZGl1czogNnB4OwogICAgICAgIGZvbnQtc2l6ZTogMTJweDsKICAgICAgICBmb250LXdlaWdodDogNTAwOwogICAgICAgIGN1cnNvcjogcG9pbnRlcjsKICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC4ycyBlYXNlOwogICAgICAgIGNvbG9yOiAke3AuYmRUaGVtZSgiaHNsKDIyMCA4LjklIDQ2LjElKSIsImhzbCgyMTUgMjAuMiUgNjUuMSUpIil9OwogICAgICB9CgogICAgICAuYW0tcG0tYnV0dG9uLnNlbGVjdGVkIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke3AuYmRUaGVtZSgiaHNsKDIyMi4yIDQ3LjQlIDExLjIlKSIsImhzbCgyMTAgMjAlIDk4JSkiKX07CiAgICAgICAgY29sb3I6ICR7cC5iZFRoZW1lKCJoc2woMjEwIDIwJSA5OCUpIiwiaHNsKDIyMi4yIDQ3LjQlIDExLjIlKSIpfTsKICAgICAgICBib3JkZXItY29sb3I6ICR7cC5iZFRoZW1lKCJoc2woMjIyLjIgNDcuNCUgMTEuMiUpIiwiaHNsKDIxMCAyMCUgOTglKSIpfTsKICAgICAgfQoKICAgICAgLmFtLXBtLWJ1dHRvbjpob3Zlcjpub3QoLnNlbGVjdGVkKSB7CiAgICAgICAgYmFja2dyb3VuZDogJHtwLmJkVGhlbWUoImhzbCgyMTAgMjAlIDk4JSkiLCJoc2woMjE1IDI3LjklIDE2LjklKSIpfTsKICAgICAgICBib3JkZXItY29sb3I6ICR7cC5iZFRoZW1lKCJoc2woMjE0LjMgMzEuOCUgOTEuNCUpIiwiaHNsKDIxNy4yIDMyLjYlIDE3LjUlKSIpfTsKICAgICAgfQoKICAgICAgLyogQWN0aW9uIGJ1dHRvbnMgKi8KICAgICAgLmNhbGVuZGFyLWFjdGlvbnMgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgZ2FwOiA4cHg7CiAgICAgICAgbWFyZ2luLXRvcDogMTJweDsKICAgICAgICBwYWRkaW5nLXRvcDogMTJweDsKICAgICAgICBib3JkZXItdG9wOiAxcHggc29saWQgJHtwLmJkVGhlbWUoImhzbCgyMTQuMyAzMS44JSA5MS40JSkiLCJoc2woMjE3LjIgMzIuNiUgMTcuNSUpIil9OwogICAgICB9CgogICAgICAuYWN0aW9uLWJ1dHRvbiB7CiAgICAgICAgZmxleDogMTsKICAgICAgICBoZWlnaHQ6IDM2cHg7CiAgICAgICAgYm9yZGVyOiBub25lOwogICAgICAgIGJvcmRlci1yYWRpdXM6IDZweDsKICAgICAgICBmb250LXNpemU6IDE0cHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDsKICAgICAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuMnMgZWFzZTsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7CiAgICAgIH0KCiAgICAgIC50b2RheS1idXR0b24gewogICAgICAgIGJhY2tncm91bmQ6ICR7cC5iZFRoZW1lKCJoc2woMCAwJSAxMDAlKSIsImhzbCgyMjQgNzEuNCUgNC4xJSkiKX07CiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHtwLmJkVGhlbWUoImhzbCgyMTQuMyAzMS44JSA5MS40JSkiLCJoc2woMjE3LjIgMzIuNiUgMTcuNSUpIil9OwogICAgICAgIGNvbG9yOiAke3AuYmRUaGVtZSgiaHNsKDIyNCA3MS40JSA0LjElKSIsImhzbCgyMTAgMjAlIDk4JSkiKX07CiAgICAgIH0KCiAgICAgIC50b2RheS1idXR0b246aG92ZXIgewogICAgICAgIGJhY2tncm91bmQ6ICR7cC5iZFRoZW1lKCJoc2woMjEwIDIwJSA5OCUpIiwiaHNsKDIxNSAyNy45JSAxNi45JSkiKX07CiAgICAgICAgYm9yZGVyLWNvbG9yOiAke3AuYmRUaGVtZSgiaHNsKDIxNC4zIDMxLjglIDkxLjQlKSIsImhzbCgyMTcuMiAzMi42JSAxNy41JSkiKX07CiAgICAgIH0KCiAgICAgIC50b2RheS1idXR0b246YWN0aXZlIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke3AuYmRUaGVtZSgiaHNsKDIxNC4zIDMxLjglIDkxLjQlKSIsImhzbCgyMTcuMiAzMi42JSAxNy41JSkiKX07CiAgICAgIH0KCiAgICAgIC5jbGVhci1idXR0b24gewogICAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50OwogICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIHRyYW5zcGFyZW50OwogICAgICAgIGNvbG9yOiAke3AuYmRUaGVtZSgiaHNsKDIyMCA4LjklIDQ2LjElKSIsImhzbCgyMTUgMjAuMiUgNjUuMSUpIil9OwogICAgICB9CgogICAgICAuY2xlYXItYnV0dG9uOmhvdmVyIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke3AuYmRUaGVtZSgiaHNsKDAgNzIuMiUgNTAuNiUgLyAwLjEpIiwiaHNsKDAgNjIuOCUgMzAuNiUgLyAwLjEpIil9OwogICAgICAgIGNvbG9yOiAke3AuYmRUaGVtZSgiaHNsKDAgNzIuMiUgNTAuNiUpIiwiaHNsKDAgNjIuOCUgMzAuNiUpIil9OwogICAgICB9CgogICAgICAuY2xlYXItYnV0dG9uOmFjdGl2ZSB7CiAgICAgICAgYmFja2dyb3VuZDogJHtwLmJkVGhlbWUoImhzbCgwIDcyLjIlIDUwLjYlIC8gMC4yKSIsImhzbCgwIDYyLjglIDMwLjYlIC8gMC4yKSIpfTsKICAgICAgfQoKICAgICAgLyogVGltZXpvbmUgc2VsZWN0b3IgKi8KICAgICAgLnRpbWV6b25lLXNlbGVjdG9yIHsKICAgICAgICBtYXJnaW4tdG9wOiAxMnB4OwogICAgICAgIHBhZGRpbmctdG9wOiAxMnB4OwogICAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAke3AuYmRUaGVtZSgiaHNsKDIxNC4zIDMxLjglIDkxLjQlKSIsImhzbCgyMTcuMiAzMi42JSAxNy41JSkiKX07CiAgICAgIH0KCiAgICAgIC50aW1lem9uZS1zZWxlY3Rvci10aXRsZSB7CiAgICAgICAgZm9udC1zaXplOiAxMnB4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7CiAgICAgICAgbWFyZ2luLWJvdHRvbTogOHB4OwogICAgICAgIGNvbG9yOiAke3AuYmRUaGVtZSgiaHNsKDIyMCA4LjklIDQ2LjElKSIsImhzbCgyMTUgMjAuMiUgNjUuMSUpIil9OwogICAgICB9CgogICAgICAudGltZXpvbmUtc2VsZWN0IHsKICAgICAgICB3aWR0aDogMTAwJTsKICAgICAgICBoZWlnaHQ6IDM2cHg7CiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHtwLmJkVGhlbWUoImhzbCgyMTQuMyAzMS44JSA5MS40JSkiLCJoc2woMjE3LjIgMzIuNiUgMTcuNSUpIil9OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDZweDsKICAgICAgICBwYWRkaW5nOiAwIDEycHg7CiAgICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgICAgIGJhY2tncm91bmQ6ICR7cC5iZFRoZW1lKCJoc2woMCAwJSAxMDAlKSIsImhzbCgyMjQgNzEuNCUgNC4xJSkiKX07CiAgICAgICAgY29sb3I6ICR7cC5iZFRoZW1lKCJoc2woMjI0IDcxLjQlIDQuMSUpIiwiaHNsKDIxMCAyMCUgOTglKSIpfTsKICAgICAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuMnMgZWFzZTsKICAgICAgfQoKICAgICAgLnRpbWV6b25lLXNlbGVjdDpob3ZlciB7CiAgICAgICAgYm9yZGVyLWNvbG9yOiAke3AuYmRUaGVtZSgiaHNsKDIxNC4zIDMxLjglIDkxLjQlKSIsImhzbCgyMTcuMiAzMi42JSAxNy41JSkiKX07CiAgICAgICAgYmFja2dyb3VuZDogJHtwLmJkVGhlbWUoImhzbCgyMTAgMjAlIDk4JSkiLCJoc2woMjE1IDI3LjklIDE2LjklKSIpfTsKICAgICAgfQoKICAgICAgLnRpbWV6b25lLXNlbGVjdDpmb2N1cyB7CiAgICAgICAgb3V0bGluZTogbm9uZTsKICAgICAgICBib3JkZXItY29sb3I6ICR7cC5iZFRoZW1lKCJoc2woMjIyLjIgNDcuNCUgMTEuMiUpIiwiaHNsKDIxMCAyMCUgOTglKSIpfTsKICAgICAgICBib3gtc2hhZG93OiAwIDAgMCAycHggJHtwLmJkVGhlbWUoImhzbCgyMjIuMiA0Ny40JSAxMS4yJSAvIDAuMSkiLCJoc2woMjEwIDIwJSA5OCUgLyAwLjEpIil9OwogICAgICB9CiAgICBgXX0pO3ZhciBaOXQsWDl0PWIoKCk9Pnt1ZSgpO1o5dD10PT57bGV0IGU9WyJKYW51YXJ5IiwiRmVicnVhcnkiLCJNYXJjaCIsIkFwcmlsIiwiTWF5IiwiSnVuZSIsIkp1bHkiLCJBdWd1c3QiLCJTZXB0ZW1iZXIiLCJPY3RvYmVyIiwiTm92ZW1iZXIiLCJEZWNlbWJlciJdLGE9dC53ZWVrU3RhcnRzT249PT0xP1siTW8iLCJUdSIsIldlIiwiVGgiLCJGciIsIlNhIiwiU3UiXTpbIlN1IiwiTW8iLCJUdSIsIldlIiwiVGgiLCJGciIsIlNhIl0saT10LmdldERheXNJbk1vbnRoKCkscj10LnNlbGVjdGVkSG91cjwxMixzPXQuZ2V0VGltZXpvbmVzKCk7cmV0dXJuIHdgCiAgICAgICAgPGRpdiBjbGFzcz0iaW5wdXQtd3JhcHBlciI+CiAgICAgICAgICA8ZGVlcy1sYWJlbCAubGFiZWw9JHt0LmxhYmVsfSAuZGVzY3JpcHRpb249JHt0LmRlc2NyaXB0aW9ufSAucmVxdWlyZWQ9JHt0LnJlcXVpcmVkfT48L2RlZXMtbGFiZWw+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJpbnB1dC1jb250YWluZXIiPgogICAgICAgICAgICA8aW5wdXQKICAgICAgICAgICAgICB0eXBlPSJ0ZXh0IgogICAgICAgICAgICAgIGNsYXNzPSJkYXRlLWlucHV0ICR7dC5pc09wZW5lZD8ib3BlbiI6IiJ9IgogICAgICAgICAgICAgIC52YWx1ZT0ke3QuZm9ybWF0RGF0ZSh0LnZhbHVlKX0KICAgICAgICAgICAgICAucGxhY2Vob2xkZXI9JHt0LnBsYWNlaG9sZGVyfQogICAgICAgICAgICAgID9kaXNhYmxlZD0ke3QuZGlzYWJsZWR9CiAgICAgICAgICAgICAgQGNsaWNrPSR7dC50b2dnbGVDYWxlbmRhcn0KICAgICAgICAgICAgICBAa2V5ZG93bj0ke3QuaGFuZGxlS2V5ZG93bn0KICAgICAgICAgICAgICBAaW5wdXQ9JHt0LmhhbmRsZU1hbnVhbElucHV0fQogICAgICAgICAgICAgIEBibHVyPSR7dC5oYW5kbGVJbnB1dEJsdXJ9CiAgICAgICAgICAgICAgc3R5bGU9InBhZGRpbmctcmlnaHQ6ICR7dC52YWx1ZT8iNjRweCI6IjQwcHgifSIKICAgICAgICAgICAgLz4KICAgICAgICAgICAgPGRpdiBjbGFzcz0iaWNvbi1jb250YWluZXIiPgogICAgICAgICAgICAgICR7dC52YWx1ZSYmIXQuZGlzYWJsZWQ/d2AKICAgICAgICAgICAgICAgIDxidXR0b24gY2xhc3M9ImNsZWFyLWJ1dHRvbiIgQGNsaWNrPSR7dC5jbGVhclZhbHVlfSB0aXRsZT0iQ2xlYXIiPgogICAgICAgICAgICAgICAgICA8ZGVlcy1pY29uIGljb249Imx1Y2lkZTp4IiBpY29uU2l6ZT0iMTQiPjwvZGVlcy1pY29uPgogICAgICAgICAgICAgICAgPC9idXR0b24+CiAgICAgICAgICAgICAgYDoiIn0KICAgICAgICAgICAgICA8ZGVlcy1pY29uIGNsYXNzPSJjYWxlbmRhci1pY29uIiBpY29uPSJsdWNpZGU6Y2FsZW5kYXIiIGljb25TaXplPSIxNiI+PC9kZWVzLWljb24+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgCiAgICAgICAgICAgIDwhLS0gQ2FsZW5kYXIgUG9wdXAgLS0+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNhbGVuZGFyLXBvcHVwICR7dC5pc09wZW5lZD8ic2hvdyI6IiJ9ICR7dC5vcGVuc1RvVG9wPyJ0b3AiOiJib3R0b20ifSI+CiAgICAgICAgICAgICAgPCEtLSBNb250aC9ZZWFyIE5hdmlnYXRpb24gLS0+CiAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iY2FsZW5kYXItaGVhZGVyIj4KICAgICAgICAgICAgICAgIDxidXR0b24gY2xhc3M9Im5hdi1idXR0b24iIEBjbGljaz0ke3QucHJldmlvdXNNb250aH0+CiAgICAgICAgICAgICAgICAgIDxkZWVzLWljb24gaWNvbj0ibHVjaWRlOmNoZXZyb25MZWZ0IiBpY29uU2l6ZT0iMTYiPjwvZGVlcy1pY29uPgogICAgICAgICAgICAgICAgPC9idXR0b24+CiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJtb250aC15ZWFyLWRpc3BsYXkiPgogICAgICAgICAgICAgICAgICAke2VbdC52aWV3RGF0ZS5nZXRNb250aCgpXX0gJHt0LnZpZXdEYXRlLmdldEZ1bGxZZWFyKCl9CiAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgIDxidXR0b24gY2xhc3M9Im5hdi1idXR0b24iIEBjbGljaz0ke3QubmV4dE1vbnRofT4KICAgICAgICAgICAgICAgICAgPGRlZXMtaWNvbiBpY29uPSJsdWNpZGU6Y2hldnJvblJpZ2h0IiBpY29uU2l6ZT0iMTYiPjwvZGVlcy1pY29uPgogICAgICAgICAgICAgICAgPC9idXR0b24+CiAgICAgICAgICAgICAgPC9kaXY+CgogICAgICAgICAgICAgIDwhLS0gV2Vla2RheSBIZWFkZXJzIC0tPgogICAgICAgICAgICAgIDxkaXYgY2xhc3M9IndlZWtkYXlzIj4KICAgICAgICAgICAgICAgICR7YS5tYXAobj0+d2A8ZGl2IGNsYXNzPSJ3ZWVrZGF5Ij4ke259PC9kaXY+YCl9CiAgICAgICAgICAgICAgPC9kaXY+CgogICAgICAgICAgICAgIDwhLS0gRGF5cyBHcmlkIC0tPgogICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImRheXMtZ3JpZCI+CiAgICAgICAgICAgICAgICAke2kubWFwKG49PntsZXQgbz10LmlzVG9kYXkobiksZD10LmlzU2VsZWN0ZWQobiksYz1uLmdldE1vbnRoKCkhPT10LnZpZXdEYXRlLmdldE1vbnRoKCksaD10LmlzRGlzYWJsZWQobiksbD10LmdldEV2ZW50c0ZvckRhdGUobiksZj1sLmxlbmd0aD4wLGc9bC5yZWR1Y2UoKHksdik9PnkrKHYuY291bnR8fDEpLDApO3JldHVybiB3YAogICAgICAgICAgICAgICAgICAgIDxkaXYgCiAgICAgICAgICAgICAgICAgICAgICBjbGFzcz0iZGF5ICR7Yz8ib3RoZXItbW9udGgiOiIifSAke28/InRvZGF5IjoiIn0gJHtkPyJzZWxlY3RlZCI6IiJ9ICR7aD8iZGlzYWJsZWQiOiIifSAke2Y/Imhhcy1ldmVudCI6IiJ9IgogICAgICAgICAgICAgICAgICAgICAgQGNsaWNrPSR7KCk9PiFoJiZ0LnNlbGVjdERhdGUobil9CiAgICAgICAgICAgICAgICAgICAgPgogICAgICAgICAgICAgICAgICAgICAgJHtuLmdldERhdGUoKX0KICAgICAgICAgICAgICAgICAgICAgICR7Zj93YAogICAgICAgICAgICAgICAgICAgICAgICAke2c+Mz93YAogICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImV2ZW50LWNvdW50Ij4ke2d9PC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgIGA6d2AKICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJldmVudC1pbmRpY2F0b3IiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgJHtsLnNsaWNlKDAsMykubWFwKHk9PndgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImV2ZW50LWRvdCAke3kudHlwZXx8ImluZm8ifSI+PC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBgKX0KICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgYH0KICAgICAgICAgICAgICAgICAgICAgICAgJHtsWzBdLnRpdGxlP3dgCiAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iZXZlbnQtdG9vbHRpcCI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAke2xbMF0udGl0bGV9CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAke2c+MT93YCAoKyR7Zy0xfSBtb3JlKWA6IiJ9CiAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgIGA6IiJ9CiAgICAgICAgICAgICAgICAgICAgICBgOiIifQogICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICBgfSl9CiAgICAgICAgICAgICAgPC9kaXY+CgogICAgICAgICAgICAgIDwhLS0gVGltZSBTZWxlY3RvciAtLT4KICAgICAgICAgICAgICAke3QuZW5hYmxlVGltZT93YAogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0idGltZS1zZWxlY3RvciI+CiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InRpbWUtc2VsZWN0b3ItdGl0bGUiPlRpbWU8L2Rpdj4KICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0idGltZS1pbnB1dHMiPgogICAgICAgICAgICAgICAgICAgIDxpbnB1dCAKICAgICAgICAgICAgICAgICAgICAgIHR5cGU9Im51bWJlciIgCiAgICAgICAgICAgICAgICAgICAgICBjbGFzcz0idGltZS1pbnB1dCIgCiAgICAgICAgICAgICAgICAgICAgICAudmFsdWU9JHt0LnRpbWVGb3JtYXQ9PT0iMTJoIj8odC5zZWxlY3RlZEhvdXI9PT0wPzEyOnQuc2VsZWN0ZWRIb3VyPjEyP3Quc2VsZWN0ZWRIb3VyLTEyOnQuc2VsZWN0ZWRIb3VyKS50b1N0cmluZygpLnBhZFN0YXJ0KDIsIjAiKTp0LnNlbGVjdGVkSG91ci50b1N0cmluZygpLnBhZFN0YXJ0KDIsIjAiKX0KICAgICAgICAgICAgICAgICAgICAgIEBpbnB1dD0ke249PnQuaGFuZGxlSG91cklucHV0KG4pfQogICAgICAgICAgICAgICAgICAgICAgbWluPSIke3QudGltZUZvcm1hdD09PSIxMmgiPzE6MH0iCiAgICAgICAgICAgICAgICAgICAgICBtYXg9IiR7dC50aW1lRm9ybWF0PT09IjEyaCI/MTI6MjN9IgogICAgICAgICAgICAgICAgICAgIC8+CiAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9InRpbWUtc2VwYXJhdG9yIj46PC9zcGFuPgogICAgICAgICAgICAgICAgICAgIDxpbnB1dCAKICAgICAgICAgICAgICAgICAgICAgIHR5cGU9Im51bWJlciIgCiAgICAgICAgICAgICAgICAgICAgICBjbGFzcz0idGltZS1pbnB1dCIgCiAgICAgICAgICAgICAgICAgICAgICAudmFsdWU9JHt0LnNlbGVjdGVkTWludXRlLnRvU3RyaW5nKCkucGFkU3RhcnQoMiwiMCIpfQogICAgICAgICAgICAgICAgICAgICAgQGlucHV0PSR7bj0+dC5oYW5kbGVNaW51dGVJbnB1dChuKX0KICAgICAgICAgICAgICAgICAgICAgIG1pbj0iMCIKICAgICAgICAgICAgICAgICAgICAgIG1heD0iNTkiCiAgICAgICAgICAgICAgICAgICAgICBzdGVwPSIke3QubWludXRlSW5jcmVtZW50fHwxfSIKICAgICAgICAgICAgICAgICAgICAvPgogICAgICAgICAgICAgICAgICAgICR7dC50aW1lRm9ybWF0PT09IjEyaCI/d2AKICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImFtLXBtLXNlbGVjdG9yIj4KICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiAKICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz0iYW0tcG0tYnV0dG9uICR7cj8ic2VsZWN0ZWQiOiIifSIKICAgICAgICAgICAgICAgICAgICAgICAgICBAY2xpY2s9JHsoKT0+dC5zZXRBTVBNKCJhbSIpfQogICAgICAgICAgICAgICAgICAgICAgICA+CiAgICAgICAgICAgICAgICAgICAgICAgICAgQU0KICAgICAgICAgICAgICAgICAgICAgICAgPC9idXR0b24+CiAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b24gCiAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9ImFtLXBtLWJ1dHRvbiAke3I/IiI6InNlbGVjdGVkIn0iCiAgICAgICAgICAgICAgICAgICAgICAgICAgQGNsaWNrPSR7KCk9PnQuc2V0QU1QTSgicG0iKX0KICAgICAgICAgICAgICAgICAgICAgICAgPgogICAgICAgICAgICAgICAgICAgICAgICAgIFBNCiAgICAgICAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPgogICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgYDoiIn0KICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICBgOiIifQoKICAgICAgICAgICAgICA8IS0tIFRpbWV6b25lIFNlbGVjdG9yIC0tPgogICAgICAgICAgICAgICR7dC5lbmFibGVUaW1lem9uZT93YAogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0idGltZXpvbmUtc2VsZWN0b3IiPgogICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJ0aW1lem9uZS1zZWxlY3Rvci10aXRsZSI+VGltZXpvbmU8L2Rpdj4KICAgICAgICAgICAgICAgICAgPHNlbGVjdCAKICAgICAgICAgICAgICAgICAgICBjbGFzcz0idGltZXpvbmUtc2VsZWN0IiAKICAgICAgICAgICAgICAgICAgICAudmFsdWU9JHt0LnRpbWV6b25lfQogICAgICAgICAgICAgICAgICAgIEBjaGFuZ2U9JHtuPT50LmhhbmRsZVRpbWV6b25lQ2hhbmdlKG4pfQogICAgICAgICAgICAgICAgICA+CiAgICAgICAgICAgICAgICAgICAgJHtzLm1hcChuPT53YAogICAgICAgICAgICAgICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iJHtuLnZhbHVlfSIgP3NlbGVjdGVkPSR7bi52YWx1ZT09PXQudGltZXpvbmV9PgogICAgICAgICAgICAgICAgICAgICAgICAke24ubGFiZWx9CiAgICAgICAgICAgICAgICAgICAgICA8L29wdGlvbj4KICAgICAgICAgICAgICAgICAgICBgKX0KICAgICAgICAgICAgICAgICAgPC9zZWxlY3Q+CiAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICBgOiIifQoKICAgICAgICAgICAgICA8IS0tIEFjdGlvbiBCdXR0b25zIC0tPgogICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNhbGVuZGFyLWFjdGlvbnMiPgogICAgICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz0iYWN0aW9uLWJ1dHRvbiB0b2RheS1idXR0b24iIEBjbGljaz0ke3Quc2VsZWN0VG9kYXl9PgogICAgICAgICAgICAgICAgICBUb2RheQogICAgICAgICAgICAgICAgPC9idXR0b24+CiAgICAgICAgICAgICAgICA8YnV0dG9uIGNsYXNzPSJhY3Rpb24tYnV0dG9uIGNsZWFyLWJ1dHRvbiIgQGNsaWNrPSR7dC5jbGVhcn0+CiAgICAgICAgICAgICAgICAgIENsZWFyCiAgICAgICAgICAgICAgICA8L2J1dHRvbj4KICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICA8L2Rpdj4KICAgICAgYH19KTt2YXIgSzEsenQsQXgsSXE9YigoKT0+e3VlKCk7XzEoKTtXOXQoKTtZOXQoKTtYOXQoKTtEdCgpO1RsKCk7SzE9ZnVuY3Rpb24odCxlLGEsaSxyLHMpe2Z1bmN0aW9uIG4oeCl7aWYoeCE9PXZvaWQgMCYmdHlwZW9mIHghPSJmdW5jdGlvbiIpdGhyb3cgbmV3IFR5cGVFcnJvcigiRnVuY3Rpb24gZXhwZWN0ZWQiKTtyZXR1cm4geH1mb3IodmFyIG89aS5raW5kLGQ9bz09PSJnZXR0ZXIiPyJnZXQiOm89PT0ic2V0dGVyIj8ic2V0IjoidmFsdWUiLGM9IWUmJnQ/aS5zdGF0aWM/dDp0LnByb3RvdHlwZTpudWxsLGg9ZXx8KGM/T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihjLGkubmFtZSk6e30pLGwsZj0hMSxnPWEubGVuZ3RoLTE7Zz49MDtnLS0pe3ZhciB5PXt9O2Zvcih2YXIgdiBpbiBpKXlbdl09dj09PSJhY2Nlc3MiP3t9Omlbdl07Zm9yKHZhciB2IGluIGkuYWNjZXNzKXkuYWNjZXNzW3ZdPWkuYWNjZXNzW3ZdO3kuYWRkSW5pdGlhbGl6ZXI9ZnVuY3Rpb24oeCl7aWYoZil0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgYWRkIGluaXRpYWxpemVycyBhZnRlciBkZWNvcmF0aW9uIGhhcyBjb21wbGV0ZWQiKTtzLnB1c2gobih4fHxudWxsKSl9O3ZhciBtPSgwLGFbZ10pKG89PT0iYWNjZXNzb3IiP3tnZXQ6aC5nZXQsc2V0Omguc2V0fTpoW2RdLHkpO2lmKG89PT0iYWNjZXNzb3IiKXtpZihtPT09dm9pZCAwKWNvbnRpbnVlO2lmKG09PT1udWxsfHx0eXBlb2YgbSE9Im9iamVjdCIpdGhyb3cgbmV3IFR5cGVFcnJvcigiT2JqZWN0IGV4cGVjdGVkIik7KGw9bihtLmdldCkpJiYoaC5nZXQ9bCksKGw9bihtLnNldCkpJiYoaC5zZXQ9bCksKGw9bihtLmluaXQpKSYmci51bnNoaWZ0KGwpfWVsc2UobD1uKG0pKSYmKG89PT0iZmllbGQiP3IudW5zaGlmdChsKTpoW2RdPWwpfWMmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShjLGkubmFtZSxoKSxmPSEwfSx6dD1mdW5jdGlvbih0LGUsYSl7Zm9yKHZhciBpPWFyZ3VtZW50cy5sZW5ndGg+MixyPTA7cjxlLmxlbmd0aDtyKyspYT1pP2Vbcl0uY2FsbCh0LGEpOmVbcl0uY2FsbCh0KTtyZXR1cm4gaT9hOnZvaWQgMH0sQXg9KCgpPT57bGV0IHQ9W3BlKCJkZWVzLWlucHV0LWRhdGVwaWNrZXIiKV0sZSxhPVtdLGkscj1YZSxzLG49W10sbz1bXSxkLGM9W10saD1bXSxsLGY9W10sZz1bXSx5LHY9W10sbT1bXSx4LE09W10sUz1bXSxGLF89W10saz1bXSxOLEw9W10sQT1bXSxxLEM9W10sej1bXSxFLFQ9W10sJD1bXSxWLFI9W10sVT1bXSxyZSxqPVtdLG1lPVtdLHdlLEg9W10sY2U9W10sa2UsVz1bXSxEPVtdLE8sWj1bXSxZPVtdLG9lLGdlPVtdLGJlPVtdLCRlLEI9W10sUD1bXSxLLGZlPVtdLGRlPVtdLF9lLGhlPVtdLHRlPVtdLHplLEZlPVtdLFdlPVtdO3ZhciB5ZT1jbGFzcyBleHRlbmRzIHJ7c3RhdGlje2k9dGhpc31zdGF0aWN7bGV0IGVlPXR5cGVvZiBTeW1ib2w9PSJmdW5jdGlvbiImJlN5bWJvbC5tZXRhZGF0YT9PYmplY3QuY3JlYXRlKHJbU3ltYm9sLm1ldGFkYXRhXT8/bnVsbCk6dm9pZCAwO3M9W0koe3R5cGU6U3RyaW5nfSldLGQ9W0koe3R5cGU6Qm9vbGVhbn0pXSxsPVtJKHt0eXBlOlN0cmluZ30pXSx5PVtJKHt0eXBlOk51bWJlcn0pXSx4PVtJKHt0eXBlOlN0cmluZ30pXSxGPVtJKHt0eXBlOlN0cmluZ30pXSxOPVtJKHt0eXBlOlN0cmluZ30pXSxxPVtJKHt0eXBlOkFycmF5fSldLEU9W0koe3R5cGU6TnVtYmVyfSldLFY9W0koe3R5cGU6U3RyaW5nfSldLHJlPVtJKHt0eXBlOkJvb2xlYW59KV0sd2U9W0koe3R5cGU6U3RyaW5nfSldLGtlPVtJKHt0eXBlOkFycmF5fSldLE89W0ooKV0sb2U9W0ooKV0sJGU9W0ooKV0sSz1bSigpXSxfZT1bSigpXSx6ZT1bSigpXSxLMSh0aGlzLG51bGwscyx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InZhbHVlIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczphZT0+InZhbHVlImluIGFlLGdldDphZT0+YWUudmFsdWUsc2V0OihhZSx2ZSk9PnthZS52YWx1ZT12ZX19LG1ldGFkYXRhOmVlfSxuLG8pLEsxKHRoaXMsbnVsbCxkLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiZW5hYmxlVGltZSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6YWU9PiJlbmFibGVUaW1lImluIGFlLGdldDphZT0+YWUuZW5hYmxlVGltZSxzZXQ6KGFlLHZlKT0+e2FlLmVuYWJsZVRpbWU9dmV9fSxtZXRhZGF0YTplZX0sYyxoKSxLMSh0aGlzLG51bGwsbCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InRpbWVGb3JtYXQiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmFlPT4idGltZUZvcm1hdCJpbiBhZSxnZXQ6YWU9PmFlLnRpbWVGb3JtYXQsc2V0OihhZSx2ZSk9PnthZS50aW1lRm9ybWF0PXZlfX0sbWV0YWRhdGE6ZWV9LGYsZyksSzEodGhpcyxudWxsLHkse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJtaW51dGVJbmNyZW1lbnQiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmFlPT4ibWludXRlSW5jcmVtZW50ImluIGFlLGdldDphZT0+YWUubWludXRlSW5jcmVtZW50LHNldDooYWUsdmUpPT57YWUubWludXRlSW5jcmVtZW50PXZlfX0sbWV0YWRhdGE6ZWV9LHYsbSksSzEodGhpcyxudWxsLHgse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJkYXRlRm9ybWF0IixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczphZT0+ImRhdGVGb3JtYXQiaW4gYWUsZ2V0OmFlPT5hZS5kYXRlRm9ybWF0LHNldDooYWUsdmUpPT57YWUuZGF0ZUZvcm1hdD12ZX19LG1ldGFkYXRhOmVlfSxNLFMpLEsxKHRoaXMsbnVsbCxGLHtraW5kOiJhY2Nlc3NvciIsbmFtZToibWluRGF0ZSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6YWU9PiJtaW5EYXRlImluIGFlLGdldDphZT0+YWUubWluRGF0ZSxzZXQ6KGFlLHZlKT0+e2FlLm1pbkRhdGU9dmV9fSxtZXRhZGF0YTplZX0sXyxrKSxLMSh0aGlzLG51bGwsTix7a2luZDoiYWNjZXNzb3IiLG5hbWU6Im1heERhdGUiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmFlPT4ibWF4RGF0ZSJpbiBhZSxnZXQ6YWU9PmFlLm1heERhdGUsc2V0OihhZSx2ZSk9PnthZS5tYXhEYXRlPXZlfX0sbWV0YWRhdGE6ZWV9LEwsQSksSzEodGhpcyxudWxsLHEse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJkaXNhYmxlZERhdGVzIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczphZT0+ImRpc2FibGVkRGF0ZXMiaW4gYWUsZ2V0OmFlPT5hZS5kaXNhYmxlZERhdGVzLHNldDooYWUsdmUpPT57YWUuZGlzYWJsZWREYXRlcz12ZX19LG1ldGFkYXRhOmVlfSxDLHopLEsxKHRoaXMsbnVsbCxFLHtraW5kOiJhY2Nlc3NvciIsbmFtZToid2Vla1N0YXJ0c09uIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczphZT0+IndlZWtTdGFydHNPbiJpbiBhZSxnZXQ6YWU9PmFlLndlZWtTdGFydHNPbixzZXQ6KGFlLHZlKT0+e2FlLndlZWtTdGFydHNPbj12ZX19LG1ldGFkYXRhOmVlfSxULCQpLEsxKHRoaXMsbnVsbCxWLHtraW5kOiJhY2Nlc3NvciIsbmFtZToicGxhY2Vob2xkZXIiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmFlPT4icGxhY2Vob2xkZXIiaW4gYWUsZ2V0OmFlPT5hZS5wbGFjZWhvbGRlcixzZXQ6KGFlLHZlKT0+e2FlLnBsYWNlaG9sZGVyPXZlfX0sbWV0YWRhdGE6ZWV9LFIsVSksSzEodGhpcyxudWxsLHJlLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiZW5hYmxlVGltZXpvbmUiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmFlPT4iZW5hYmxlVGltZXpvbmUiaW4gYWUsZ2V0OmFlPT5hZS5lbmFibGVUaW1lem9uZSxzZXQ6KGFlLHZlKT0+e2FlLmVuYWJsZVRpbWV6b25lPXZlfX0sbWV0YWRhdGE6ZWV9LGosbWUpLEsxKHRoaXMsbnVsbCx3ZSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InRpbWV6b25lIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczphZT0+InRpbWV6b25lImluIGFlLGdldDphZT0+YWUudGltZXpvbmUsc2V0OihhZSx2ZSk9PnthZS50aW1lem9uZT12ZX19LG1ldGFkYXRhOmVlfSxILGNlKSxLMSh0aGlzLG51bGwsa2Use2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJldmVudHMiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmFlPT4iZXZlbnRzImluIGFlLGdldDphZT0+YWUuZXZlbnRzLHNldDooYWUsdmUpPT57YWUuZXZlbnRzPXZlfX0sbWV0YWRhdGE6ZWV9LFcsRCksSzEodGhpcyxudWxsLE8se2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJpc09wZW5lZCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6YWU9PiJpc09wZW5lZCJpbiBhZSxnZXQ6YWU9PmFlLmlzT3BlbmVkLHNldDooYWUsdmUpPT57YWUuaXNPcGVuZWQ9dmV9fSxtZXRhZGF0YTplZX0sWixZKSxLMSh0aGlzLG51bGwsb2Use2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJvcGVuc1RvVG9wIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczphZT0+Im9wZW5zVG9Ub3AiaW4gYWUsZ2V0OmFlPT5hZS5vcGVuc1RvVG9wLHNldDooYWUsdmUpPT57YWUub3BlbnNUb1RvcD12ZX19LG1ldGFkYXRhOmVlfSxnZSxiZSksSzEodGhpcyxudWxsLCRlLHtraW5kOiJhY2Nlc3NvciIsbmFtZToic2VsZWN0ZWREYXRlIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczphZT0+InNlbGVjdGVkRGF0ZSJpbiBhZSxnZXQ6YWU9PmFlLnNlbGVjdGVkRGF0ZSxzZXQ6KGFlLHZlKT0+e2FlLnNlbGVjdGVkRGF0ZT12ZX19LG1ldGFkYXRhOmVlfSxCLFApLEsxKHRoaXMsbnVsbCxLLHtraW5kOiJhY2Nlc3NvciIsbmFtZToidmlld0RhdGUiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmFlPT4idmlld0RhdGUiaW4gYWUsZ2V0OmFlPT5hZS52aWV3RGF0ZSxzZXQ6KGFlLHZlKT0+e2FlLnZpZXdEYXRlPXZlfX0sbWV0YWRhdGE6ZWV9LGZlLGRlKSxLMSh0aGlzLG51bGwsX2Use2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJzZWxlY3RlZEhvdXIiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmFlPT4ic2VsZWN0ZWRIb3VyImluIGFlLGdldDphZT0+YWUuc2VsZWN0ZWRIb3VyLHNldDooYWUsdmUpPT57YWUuc2VsZWN0ZWRIb3VyPXZlfX0sbWV0YWRhdGE6ZWV9LGhlLHRlKSxLMSh0aGlzLG51bGwsemUse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJzZWxlY3RlZE1pbnV0ZSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6YWU9PiJzZWxlY3RlZE1pbnV0ZSJpbiBhZSxnZXQ6YWU9PmFlLnNlbGVjdGVkTWludXRlLHNldDooYWUsdmUpPT57YWUuc2VsZWN0ZWRNaW51dGU9dmV9fSxtZXRhZGF0YTplZX0sRmUsV2UpLEsxKG51bGwsZT17dmFsdWU6aX0sdCx7a2luZDoiY2xhc3MiLG5hbWU6aS5uYW1lLG1ldGFkYXRhOmVlfSxudWxsLGEpLHllPWk9ZS52YWx1ZSxlZSYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGksU3ltYm9sLm1ldGFkYXRhLHtlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMCx2YWx1ZTplZX0pfXN0YXRpYyBkZW1vPVU5dDtzdGF0aWMgZGVtb0dyb3Vwcz1bIklucHV0Il07I2U9enQodGhpcyxuLCIiKTtnZXQgdmFsdWUoKXtyZXR1cm4gdGhpcy4jZX1zZXQgdmFsdWUoZWUpe3RoaXMuI2U9ZWV9I3Q9KHp0KHRoaXMsbyksenQodGhpcyxjLCExKSk7Z2V0IGVuYWJsZVRpbWUoKXtyZXR1cm4gdGhpcy4jdH1zZXQgZW5hYmxlVGltZShlZSl7dGhpcy4jdD1lZX0jYT0oenQodGhpcyxoKSx6dCh0aGlzLGYsIjI0aCIpKTtnZXQgdGltZUZvcm1hdCgpe3JldHVybiB0aGlzLiNhfXNldCB0aW1lRm9ybWF0KGVlKXt0aGlzLiNhPWVlfSNpPSh6dCh0aGlzLGcpLHp0KHRoaXMsdiwxKSk7Z2V0IG1pbnV0ZUluY3JlbWVudCgpe3JldHVybiB0aGlzLiNpfXNldCBtaW51dGVJbmNyZW1lbnQoZWUpe3RoaXMuI2k9ZWV9I3I9KHp0KHRoaXMsbSksenQodGhpcyxNLCJZWVlZLU1NLUREIikpO2dldCBkYXRlRm9ybWF0KCl7cmV0dXJuIHRoaXMuI3J9c2V0IGRhdGVGb3JtYXQoZWUpe3RoaXMuI3I9ZWV9I3M9KHp0KHRoaXMsUyksenQodGhpcyxfLCIiKSk7Z2V0IG1pbkRhdGUoKXtyZXR1cm4gdGhpcy4jc31zZXQgbWluRGF0ZShlZSl7dGhpcy4jcz1lZX0jbj0oenQodGhpcyxrKSx6dCh0aGlzLEwsIiIpKTtnZXQgbWF4RGF0ZSgpe3JldHVybiB0aGlzLiNufXNldCBtYXhEYXRlKGVlKXt0aGlzLiNuPWVlfSNvPSh6dCh0aGlzLEEpLHp0KHRoaXMsQyxbXSkpO2dldCBkaXNhYmxlZERhdGVzKCl7cmV0dXJuIHRoaXMuI299c2V0IGRpc2FibGVkRGF0ZXMoZWUpe3RoaXMuI289ZWV9I2w9KHp0KHRoaXMseiksenQodGhpcyxULDEpKTtnZXQgd2Vla1N0YXJ0c09uKCl7cmV0dXJuIHRoaXMuI2x9c2V0IHdlZWtTdGFydHNPbihlZSl7dGhpcy4jbD1lZX0jYz0oenQodGhpcywkKSx6dCh0aGlzLFIsIllZWVktTU0tREQiKSk7Z2V0IHBsYWNlaG9sZGVyKCl7cmV0dXJuIHRoaXMuI2N9c2V0IHBsYWNlaG9sZGVyKGVlKXt0aGlzLiNjPWVlfSNkPSh6dCh0aGlzLFUpLHp0KHRoaXMsaiwhMSkpO2dldCBlbmFibGVUaW1lem9uZSgpe3JldHVybiB0aGlzLiNkfXNldCBlbmFibGVUaW1lem9uZShlZSl7dGhpcy4jZD1lZX0jaD0oenQodGhpcyxtZSksenQodGhpcyxILEludGwuRGF0ZVRpbWVGb3JtYXQoKS5yZXNvbHZlZE9wdGlvbnMoKS50aW1lWm9uZSkpO2dldCB0aW1lem9uZSgpe3JldHVybiB0aGlzLiNofXNldCB0aW1lem9uZShlZSl7dGhpcy4jaD1lZX0jcD0oenQodGhpcyxjZSksenQodGhpcyxXLFtdKSk7Z2V0IGV2ZW50cygpe3JldHVybiB0aGlzLiNwfXNldCBldmVudHMoZWUpe3RoaXMuI3A9ZWV9I3U9KHp0KHRoaXMsRCksenQodGhpcyxaLCExKSk7Z2V0IGlzT3BlbmVkKCl7cmV0dXJuIHRoaXMuI3V9c2V0IGlzT3BlbmVkKGVlKXt0aGlzLiN1PWVlfSNmPSh6dCh0aGlzLFkpLHp0KHRoaXMsZ2UsITEpKTtnZXQgb3BlbnNUb1RvcCgpe3JldHVybiB0aGlzLiNmfXNldCBvcGVuc1RvVG9wKGVlKXt0aGlzLiNmPWVlfSNtPSh6dCh0aGlzLGJlKSx6dCh0aGlzLEIsbnVsbCkpO2dldCBzZWxlY3RlZERhdGUoKXtyZXR1cm4gdGhpcy4jbX1zZXQgc2VsZWN0ZWREYXRlKGVlKXt0aGlzLiNtPWVlfSNnPSh6dCh0aGlzLFApLHp0KHRoaXMsZmUsbmV3IERhdGUpKTtnZXQgdmlld0RhdGUoKXtyZXR1cm4gdGhpcy4jZ31zZXQgdmlld0RhdGUoZWUpe3RoaXMuI2c9ZWV9I2I9KHp0KHRoaXMsZGUpLHp0KHRoaXMsaGUsMCkpO2dldCBzZWxlY3RlZEhvdXIoKXtyZXR1cm4gdGhpcy4jYn1zZXQgc2VsZWN0ZWRIb3VyKGVlKXt0aGlzLiNiPWVlfSN2PSh6dCh0aGlzLHRlKSx6dCh0aGlzLEZlLDApKTtnZXQgc2VsZWN0ZWRNaW51dGUoKXtyZXR1cm4gdGhpcy4jdn1zZXQgc2VsZWN0ZWRNaW51dGUoZWUpe3RoaXMuI3Y9ZWV9c3RhdGljIHN0eWxlcz1HOXQ7Z2V0VGltZXpvbmVzKCl7cmV0dXJuW3t2YWx1ZToiVVRDIixsYWJlbDoiVVRDIChDb29yZGluYXRlZCBVbml2ZXJzYWwgVGltZSkifSx7dmFsdWU6IkFtZXJpY2EvTmV3X1lvcmsiLGxhYmVsOiJFYXN0ZXJuIFRpbWUgKFVTICYgQ2FuYWRhKSJ9LHt2YWx1ZToiQW1lcmljYS9DaGljYWdvIixsYWJlbDoiQ2VudHJhbCBUaW1lIChVUyAmIENhbmFkYSkifSx7dmFsdWU6IkFtZXJpY2EvRGVudmVyIixsYWJlbDoiTW91bnRhaW4gVGltZSAoVVMgJiBDYW5hZGEpIn0se3ZhbHVlOiJBbWVyaWNhL0xvc19BbmdlbGVzIixsYWJlbDoiUGFjaWZpYyBUaW1lIChVUyAmIENhbmFkYSkifSx7dmFsdWU6IkFtZXJpY2EvUGhvZW5peCIsbGFiZWw6IkFyaXpvbmEifSx7dmFsdWU6IkFtZXJpY2EvQW5jaG9yYWdlIixsYWJlbDoiQWxhc2thIn0se3ZhbHVlOiJQYWNpZmljL0hvbm9sdWx1IixsYWJlbDoiSGF3YWlpIn0se3ZhbHVlOiJFdXJvcGUvTG9uZG9uIixsYWJlbDoiTG9uZG9uIn0se3ZhbHVlOiJFdXJvcGUvUGFyaXMiLGxhYmVsOiJQYXJpcyJ9LHt2YWx1ZToiRXVyb3BlL0JlcmxpbiIsbGFiZWw6IkJlcmxpbiJ9LHt2YWx1ZToiRXVyb3BlL01vc2NvdyIsbGFiZWw6Ik1vc2NvdyJ9LHt2YWx1ZToiQXNpYS9EdWJhaSIsbGFiZWw6IkR1YmFpIn0se3ZhbHVlOiJBc2lhL0tvbGthdGEiLGxhYmVsOiJJbmRpYSBTdGFuZGFyZCBUaW1lIn0se3ZhbHVlOiJBc2lhL1NoYW5naGFpIixsYWJlbDoiQ2hpbmEgU3RhbmRhcmQgVGltZSJ9LHt2YWx1ZToiQXNpYS9Ub2t5byIsbGFiZWw6IlRva3lvIn0se3ZhbHVlOiJBdXN0cmFsaWEvU3lkbmV5IixsYWJlbDoiU3lkbmV5In0se3ZhbHVlOiJQYWNpZmljL0F1Y2tsYW5kIixsYWJlbDoiQXVja2xhbmQifV19cmVuZGVyKCl7cmV0dXJuIFo5dCh0aGlzKX1hc3luYyBjb25uZWN0ZWRDYWxsYmFjaygpe3N1cGVyLmNvbm5lY3RlZENhbGxiYWNrKCksdGhpcy5oYW5kbGVDbGlja091dHNpZGU9dGhpcy5oYW5kbGVDbGlja091dHNpZGUuYmluZCh0aGlzKX1hc3luYyBkaXNjb25uZWN0ZWRDYWxsYmFjaygpe2F3YWl0IHN1cGVyLmRpc2Nvbm5lY3RlZENhbGxiYWNrKCksZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcigiY2xpY2siLHRoaXMuaGFuZGxlQ2xpY2tPdXRzaWRlKX1hc3luYyBmaXJzdFVwZGF0ZWQoKXtpZih0aGlzLnZhbHVlfHwodGhpcy52YWx1ZT0iIiksdGhpcy52YWx1ZSl0cnl7bGV0IGVlPW5ldyBEYXRlKHRoaXMudmFsdWUpO2lzTmFOKGVlLmdldFRpbWUoKSl8fCh0aGlzLnNlbGVjdGVkRGF0ZT1lZSx0aGlzLnZpZXdEYXRlPW5ldyBEYXRlKGVlKSx0aGlzLnNlbGVjdGVkSG91cj1lZS5nZXRIb3VycygpLHRoaXMuc2VsZWN0ZWRNaW51dGU9ZWUuZ2V0TWludXRlcygpKX1jYXRjaHt9ZWxzZXtsZXQgZWU9bmV3IERhdGU7dGhpcy52aWV3RGF0ZT1uZXcgRGF0ZShlZSksdGhpcy5zZWxlY3RlZEhvdXI9ZWUuZ2V0SG91cnMoKSx0aGlzLnNlbGVjdGVkTWludXRlPTB9fWZvcm1hdERhdGUoZWUpe2lmKCFlZSlyZXR1cm4iIjt0cnl7bGV0IGFlPW5ldyBEYXRlKGVlKTtpZihpc05hTihhZS5nZXRUaW1lKCkpKXJldHVybiIiO2xldCB2ZT10aGlzLmRhdGVGb3JtYXQsUGU9YWUuZ2V0RGF0ZSgpLnRvU3RyaW5nKCkucGFkU3RhcnQoMiwiMCIpLFZlPShhZS5nZXRNb250aCgpKzEpLnRvU3RyaW5nKCkucGFkU3RhcnQoMiwiMCIpLHh0PWFlLmdldEZ1bGxZZWFyKCkudG9TdHJpbmcoKTtpZih2ZT12ZS5yZXBsYWNlKCJZWVlZIix4dCksdmU9dmUucmVwbGFjZSgiWVkiLHh0LnNsaWNlKC0yKSksdmU9dmUucmVwbGFjZSgiTU0iLFZlKSx2ZT12ZS5yZXBsYWNlKCJERCIsUGUpLHRoaXMuZW5hYmxlVGltZSl7bGV0IG90PWFlLmdldEhvdXJzKCksTHQ9b3Q9PT0wPzEyOm90PjEyP290LTEyOm90LFp0PWFlLmdldE1pbnV0ZXMoKS50b1N0cmluZygpLnBhZFN0YXJ0KDIsIjAiKSxpZT1vdD49MTI/IlBNIjoiQU0iO3RoaXMudGltZUZvcm1hdD09PSIxMmgiP3ZlKz1gICR7THR9OiR7WnR9ICR7aWV9YDp2ZSs9YCAke290LnRvU3RyaW5nKCkucGFkU3RhcnQoMiwiMCIpfToke1p0fWB9aWYodGhpcy5lbmFibGVUaW1lem9uZSl7bGV0IFp0PW5ldyBJbnRsLkRhdGVUaW1lRm9ybWF0KCJlbi1VUyIse3RpbWVab25lTmFtZToic2hvcnQiLHRpbWVab25lOnRoaXMudGltZXpvbmV9KS5mb3JtYXRUb1BhcnRzKGFlKS5maW5kKGllPT5pZS50eXBlPT09InRpbWVab25lTmFtZSIpO1p0JiYodmUrPWAgJHtadC52YWx1ZX1gKX1yZXR1cm4gdmV9Y2F0Y2h7cmV0dXJuIiJ9fWhhbmRsZUNsaWNrT3V0c2lkZT0oenQodGhpcyxXZSksZWU9PntlZS5jb21wb3NlZFBhdGgoKS5pbmNsdWRlcyh0aGlzKXx8KHRoaXMuaXNPcGVuZWQ9ITEsZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcigiY2xpY2siLHRoaXMuaGFuZGxlQ2xpY2tPdXRzaWRlKSl9KTthc3luYyB0b2dnbGVDYWxlbmRhcigpe2lmKCF0aGlzLmRpc2FibGVkKWlmKHRoaXMuaXNPcGVuZWQ9IXRoaXMuaXNPcGVuZWQsdGhpcy5pc09wZW5lZCl7bGV0IGFlPXRoaXMuc2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yKCIuaW5wdXQtY29udGFpbmVyIikuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCksdmU9d2luZG93LmlubmVySGVpZ2h0LWFlLmJvdHRvbSxQZT1hZS50b3A7dGhpcy5vcGVuc1RvVG9wPXZlPDQwMCYmUGU+dmUsc2V0VGltZW91dCgoKT0+e2RvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIix0aGlzLmhhbmRsZUNsaWNrT3V0c2lkZSl9LDApfWVsc2UgZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcigiY2xpY2siLHRoaXMuaGFuZGxlQ2xpY2tPdXRzaWRlKX1nZXREYXlzSW5Nb250aCgpe2xldCBlZT10aGlzLnZpZXdEYXRlLmdldEZ1bGxZZWFyKCksYWU9dGhpcy52aWV3RGF0ZS5nZXRNb250aCgpLHZlPW5ldyBEYXRlKGVlLGFlLDEpLFBlPW5ldyBEYXRlKGVlLGFlKzEsMCksVmU9W10seHQ9dGhpcy53ZWVrU3RhcnRzT249PT0xP3ZlLmdldERheSgpPT09MD82OnZlLmdldERheSgpLTE6dmUuZ2V0RGF5KCk7Zm9yKGxldCBMdD14dDtMdD4wO0x0LS0pVmUucHVzaChuZXcgRGF0ZShlZSxhZSwxLUx0KSk7Zm9yKGxldCBMdD0xO0x0PD1QZS5nZXREYXRlKCk7THQrKylWZS5wdXNoKG5ldyBEYXRlKGVlLGFlLEx0KSk7bGV0IG90PTQyLVZlLmxlbmd0aDtmb3IobGV0IEx0PTE7THQ8PW90O0x0KyspVmUucHVzaChuZXcgRGF0ZShlZSxhZSsxLEx0KSk7cmV0dXJuIFZlfWlzVG9kYXkoZWUpe2xldCBhZT1uZXcgRGF0ZTtyZXR1cm4gZWUuZ2V0RGF0ZSgpPT09YWUuZ2V0RGF0ZSgpJiZlZS5nZXRNb250aCgpPT09YWUuZ2V0TW9udGgoKSYmZWUuZ2V0RnVsbFllYXIoKT09PWFlLmdldEZ1bGxZZWFyKCl9aXNTZWxlY3RlZChlZSl7cmV0dXJuIHRoaXMuc2VsZWN0ZWREYXRlP2VlLmdldERhdGUoKT09PXRoaXMuc2VsZWN0ZWREYXRlLmdldERhdGUoKSYmZWUuZ2V0TW9udGgoKT09PXRoaXMuc2VsZWN0ZWREYXRlLmdldE1vbnRoKCkmJmVlLmdldEZ1bGxZZWFyKCk9PT10aGlzLnNlbGVjdGVkRGF0ZS5nZXRGdWxsWWVhcigpOiExfWlzRGlzYWJsZWQoZWUpe2lmKHRoaXMubWluRGF0ZSl7bGV0IGFlPW5ldyBEYXRlKHRoaXMubWluRGF0ZSk7aWYoZWU8YWUpcmV0dXJuITB9aWYodGhpcy5tYXhEYXRlKXtsZXQgYWU9bmV3IERhdGUodGhpcy5tYXhEYXRlKTtpZihlZT5hZSlyZXR1cm4hMH1yZXR1cm4gdGhpcy5kaXNhYmxlZERhdGVzJiZ0aGlzLmRpc2FibGVkRGF0ZXMubGVuZ3RoPjA/dGhpcy5kaXNhYmxlZERhdGVzLnNvbWUoYWU9Pnt0cnl7bGV0IHZlPW5ldyBEYXRlKGFlKTtyZXR1cm4gZWUuZ2V0RGF0ZSgpPT09dmUuZ2V0RGF0ZSgpJiZlZS5nZXRNb250aCgpPT09dmUuZ2V0TW9udGgoKSYmZWUuZ2V0RnVsbFllYXIoKT09PXZlLmdldEZ1bGxZZWFyKCl9Y2F0Y2h7cmV0dXJuITF9fSk6ITF9Z2V0RXZlbnRzRm9yRGF0ZShlZSl7aWYoIXRoaXMuZXZlbnRzfHx0aGlzLmV2ZW50cy5sZW5ndGg9PT0wKXJldHVybltdO2xldCBhZT1gJHtlZS5nZXRGdWxsWWVhcigpfS0keyhlZS5nZXRNb250aCgpKzEpLnRvU3RyaW5nKCkucGFkU3RhcnQoMiwiMCIpfS0ke2VlLmdldERhdGUoKS50b1N0cmluZygpLnBhZFN0YXJ0KDIsIjAiKX1gO3JldHVybiB0aGlzLmV2ZW50cy5maWx0ZXIodmU9PnZlLmRhdGU9PT1hZSl9c2VsZWN0RGF0ZShlZSl7dGhpcy5zZWxlY3RlZERhdGU9bmV3IERhdGUoZWUuZ2V0RnVsbFllYXIoKSxlZS5nZXRNb250aCgpLGVlLmdldERhdGUoKSx0aGlzLnNlbGVjdGVkSG91cix0aGlzLnNlbGVjdGVkTWludXRlKSx0aGlzLnZhbHVlPXRoaXMuZm9ybWF0VmFsdWVXaXRoVGltZXpvbmUodGhpcy5zZWxlY3RlZERhdGUpLHRoaXMuY2hhbmdlU3ViamVjdC5uZXh0KHRoaXMpLHRoaXMuZW5hYmxlVGltZXx8KHRoaXMuaXNPcGVuZWQ9ITEpfXNlbGVjdFRvZGF5KCl7bGV0IGVlPW5ldyBEYXRlO3RoaXMuc2VsZWN0ZWREYXRlPWVlLHRoaXMudmlld0RhdGU9bmV3IERhdGUoZWUpLHRoaXMuc2VsZWN0ZWRIb3VyPWVlLmdldEhvdXJzKCksdGhpcy5zZWxlY3RlZE1pbnV0ZT1lZS5nZXRNaW51dGVzKCksdGhpcy52YWx1ZT10aGlzLmZvcm1hdFZhbHVlV2l0aFRpbWV6b25lKHRoaXMuc2VsZWN0ZWREYXRlKSx0aGlzLmNoYW5nZVN1YmplY3QubmV4dCh0aGlzKSx0aGlzLmVuYWJsZVRpbWV8fCh0aGlzLmlzT3BlbmVkPSExKX1jbGVhcigpe3RoaXMudmFsdWU9IiIsdGhpcy5zZWxlY3RlZERhdGU9bnVsbCx0aGlzLmNoYW5nZVN1YmplY3QubmV4dCh0aGlzKSx0aGlzLmlzT3BlbmVkPSExfXByZXZpb3VzTW9udGgoKXt0aGlzLnZpZXdEYXRlPW5ldyBEYXRlKHRoaXMudmlld0RhdGUuZ2V0RnVsbFllYXIoKSx0aGlzLnZpZXdEYXRlLmdldE1vbnRoKCktMSwxKX1uZXh0TW9udGgoKXt0aGlzLnZpZXdEYXRlPW5ldyBEYXRlKHRoaXMudmlld0RhdGUuZ2V0RnVsbFllYXIoKSx0aGlzLnZpZXdEYXRlLmdldE1vbnRoKCkrMSwxKX1oYW5kbGVIb3VySW5wdXQoZWUpe2xldCBhZT1lZS50YXJnZXQsdmU9cGFyc2VJbnQoYWUudmFsdWUpfHwwO3RoaXMudGltZUZvcm1hdD09PSIxMmgiPyh2ZT1NYXRoLm1heCgxLE1hdGgubWluKDEyLHZlKSksdGhpcy5zZWxlY3RlZEhvdXI+PTEyJiZ2ZSE9PTEyP3RoaXMuc2VsZWN0ZWRIb3VyPXZlKzEyOnRoaXMuc2VsZWN0ZWRIb3VyPDEyJiZ2ZT09PTEyP3RoaXMuc2VsZWN0ZWRIb3VyPTA6dGhpcy5zZWxlY3RlZEhvdXI9dmUpOnRoaXMuc2VsZWN0ZWRIb3VyPU1hdGgubWF4KDAsTWF0aC5taW4oMjMsdmUpKSx0aGlzLnVwZGF0ZVNlbGVjdGVkRGF0ZVRpbWUoKX1oYW5kbGVNaW51dGVJbnB1dChlZSl7bGV0IGFlPWVlLnRhcmdldCx2ZT1wYXJzZUludChhZS52YWx1ZSl8fDA7dmU9TWF0aC5tYXgoMCxNYXRoLm1pbig1OSx2ZSkpLHRoaXMubWludXRlSW5jcmVtZW50JiZ0aGlzLm1pbnV0ZUluY3JlbWVudD4xJiYodmU9TWF0aC5yb3VuZCh2ZS90aGlzLm1pbnV0ZUluY3JlbWVudCkqdGhpcy5taW51dGVJbmNyZW1lbnQpLHRoaXMuc2VsZWN0ZWRNaW51dGU9dmUsdGhpcy51cGRhdGVTZWxlY3RlZERhdGVUaW1lKCl9c2V0QU1QTShlZSl7ZWU9PT0iYW0iJiZ0aGlzLnNlbGVjdGVkSG91cj49MTI/dGhpcy5zZWxlY3RlZEhvdXItPTEyOmVlPT09InBtIiYmdGhpcy5zZWxlY3RlZEhvdXI8MTImJih0aGlzLnNlbGVjdGVkSG91cis9MTIpLHRoaXMudXBkYXRlU2VsZWN0ZWREYXRlVGltZSgpfXVwZGF0ZVNlbGVjdGVkRGF0ZVRpbWUoKXt0aGlzLnNlbGVjdGVkRGF0ZSYmKHRoaXMuc2VsZWN0ZWREYXRlPW5ldyBEYXRlKHRoaXMuc2VsZWN0ZWREYXRlLmdldEZ1bGxZZWFyKCksdGhpcy5zZWxlY3RlZERhdGUuZ2V0TW9udGgoKSx0aGlzLnNlbGVjdGVkRGF0ZS5nZXREYXRlKCksdGhpcy5zZWxlY3RlZEhvdXIsdGhpcy5zZWxlY3RlZE1pbnV0ZSksdGhpcy52YWx1ZT10aGlzLmZvcm1hdFZhbHVlV2l0aFRpbWV6b25lKHRoaXMuc2VsZWN0ZWREYXRlKSx0aGlzLmNoYW5nZVN1YmplY3QubmV4dCh0aGlzKSl9aGFuZGxlVGltZXpvbmVDaGFuZ2UoZWUpe2xldCBhZT1lZS50YXJnZXQ7dGhpcy50aW1lem9uZT1hZS52YWx1ZSx0aGlzLnVwZGF0ZVNlbGVjdGVkRGF0ZVRpbWUoKX1mb3JtYXRWYWx1ZVdpdGhUaW1lem9uZShlZSl7aWYoIXRoaXMuZW5hYmxlVGltZXpvbmUpcmV0dXJuIGVlLnRvSVNPU3RyaW5nKCk7bGV0IHZlPW5ldyBJbnRsLkRhdGVUaW1lRm9ybWF0KCJlbi1VUyIse3llYXI6Im51bWVyaWMiLG1vbnRoOiIyLWRpZ2l0IixkYXk6IjItZGlnaXQiLGhvdXI6IjItZGlnaXQiLG1pbnV0ZToiMi1kaWdpdCIsc2Vjb25kOiIyLWRpZ2l0Iixob3VyMTI6ITEsdGltZVpvbmU6dGhpcy50aW1lem9uZSx0aW1lWm9uZU5hbWU6InNob3J0In0pLmZvcm1hdFRvUGFydHMoZWUpLFBlPXt9O3ZlLmZvckVhY2gob3Q9PntQZVtvdC50eXBlXT1vdC52YWx1ZX0pO2xldCBWZT1gJHtQZS55ZWFyfS0ke1BlLm1vbnRofS0ke1BlLmRheX1UJHtQZS5ob3VyfToke1BlLm1pbnV0ZX06JHtQZS5zZWNvbmR9YCx4dD10aGlzLmdldFRpbWV6b25lT2Zmc2V0KGVlLHRoaXMudGltZXpvbmUpO3JldHVybmAke1ZlfSR7eHR9YH1nZXRUaW1lem9uZU9mZnNldChlZSxhZSl7bGV0IHZlPW5ldyBEYXRlKGVlLnRvTG9jYWxlU3RyaW5nKCJlbi1VUyIse3RpbWVab25lOmFlfSkpLFBlPW5ldyBEYXRlKGVlLnRvTG9jYWxlU3RyaW5nKCJlbi1VUyIse3RpbWVab25lOiJVVEMifSkpLFZlPSh2ZS5nZXRUaW1lKCktUGUuZ2V0VGltZSgpKS8oMWUzKjYwKSx4dD1NYXRoLmZsb29yKE1hdGguYWJzKFZlKS82MCksb3Q9TWF0aC5hYnMoVmUpJTYwO3JldHVybmAke1ZlPj0wPyIrIjoiLSJ9JHt4dC50b1N0cmluZygpLnBhZFN0YXJ0KDIsIjAiKX06JHtvdC50b1N0cmluZygpLnBhZFN0YXJ0KDIsIjAiKX1gfWhhbmRsZUtleWRvd24oZWUpe2VlLmtleT09PSJFbnRlciJ8fGVlLmtleT09PSIgIj8oZWUucHJldmVudERlZmF1bHQoKSx0aGlzLnRvZ2dsZUNhbGVuZGFyKCkpOmVlLmtleT09PSJFc2NhcGUiJiZ0aGlzLmlzT3BlbmVkJiYoZWUucHJldmVudERlZmF1bHQoKSx0aGlzLmlzT3BlbmVkPSExKX1jbGVhclZhbHVlKGVlKXtlZS5zdG9wUHJvcGFnYXRpb24oKSx0aGlzLnZhbHVlPSIiLHRoaXMuc2VsZWN0ZWREYXRlPW51bGwsdGhpcy5jaGFuZ2VTdWJqZWN0Lm5leHQodGhpcyl9aGFuZGxlTWFudWFsSW5wdXQoZWUpe2xldCB2ZT1lZS50YXJnZXQudmFsdWUudHJpbSgpO2lmKCF2ZSl7dGhpcy52YWx1ZT0iIix0aGlzLnNlbGVjdGVkRGF0ZT1udWxsO3JldHVybn1sZXQgUGU9dGhpcy5wYXJzZU1hbnVhbERhdGUodmUpO1BlJiYhaXNOYU4oUGUuZ2V0VGltZSgpKSYmKHRoaXMudmFsdWU9UGUudG9JU09TdHJpbmcoKSx0aGlzLnNlbGVjdGVkRGF0ZT1QZSx0aGlzLnZpZXdEYXRlPW5ldyBEYXRlKFBlKSx0aGlzLnNlbGVjdGVkSG91cj1QZS5nZXRIb3VycygpLHRoaXMuc2VsZWN0ZWRNaW51dGU9UGUuZ2V0TWludXRlcygpLHRoaXMuY2hhbmdlU3ViamVjdC5uZXh0KHRoaXMpKX1oYW5kbGVJbnB1dEJsdXIoZWUpe2xldCBhZT1lZS50YXJnZXQsdmU9YWUudmFsdWUudHJpbSgpO2lmKCF2ZSl7dGhpcy52YWx1ZT0iIix0aGlzLnNlbGVjdGVkRGF0ZT1udWxsLHRoaXMuY2hhbmdlU3ViamVjdC5uZXh0KHRoaXMpO3JldHVybn1sZXQgUGU9dGhpcy5wYXJzZU1hbnVhbERhdGUodmUpO1BlJiYhaXNOYU4oUGUuZ2V0VGltZSgpKT8odGhpcy52YWx1ZT1QZS50b0lTT1N0cmluZygpLHRoaXMuc2VsZWN0ZWREYXRlPVBlLHRoaXMudmlld0RhdGU9bmV3IERhdGUoUGUpLHRoaXMuc2VsZWN0ZWRIb3VyPVBlLmdldEhvdXJzKCksdGhpcy5zZWxlY3RlZE1pbnV0ZT1QZS5nZXRNaW51dGVzKCksdGhpcy5jaGFuZ2VTdWJqZWN0Lm5leHQodGhpcyksYWUudmFsdWU9dGhpcy5mb3JtYXREYXRlKHRoaXMudmFsdWUpKTphZS52YWx1ZT10aGlzLmZvcm1hdERhdGUodGhpcy52YWx1ZSl9cGFyc2VNYW51YWxEYXRlKGVlKXtpZighZWUpcmV0dXJuIG51bGw7bGV0IGFlPWVlLnNwbGl0KCIgIiksdmU9YWVbMF0sUGU9YWVbMV18fCIiLFZlPW51bGwseHQ9dmUubWF0Y2goL14oXGR7NH0pLShcZHsxLDJ9KS0oXGR7MSwyfSkkLyk7aWYoeHQpe2xldFtvdCxMdCxadCxpZV09eHQ7VmU9bmV3IERhdGUocGFyc2VJbnQoTHQpLHBhcnNlSW50KFp0KS0xLHBhcnNlSW50KGllKSl9aWYoIVZlKXtsZXQgb3Q9dmUubWF0Y2goL14oXGR7MSwyfSlcLihcZHsxLDJ9KVwuKFxkezR9KSQvKTtpZihvdCl7bGV0W0x0LFp0LGllLHNlXT1vdDtWZT1uZXcgRGF0ZShwYXJzZUludChzZSkscGFyc2VJbnQoaWUpLTEscGFyc2VJbnQoWnQpKX19aWYoIVZlKXtsZXQgb3Q9dmUubWF0Y2goL14oXGR7MSwyfSlcLyhcZHsxLDJ9KVwvKFxkezR9KSQvKTtpZihvdCl7bGV0W0x0LFp0LGllLHNlXT1vdDtWZT1uZXcgRGF0ZShwYXJzZUludChzZSkscGFyc2VJbnQoWnQpLTEscGFyc2VJbnQoaWUpKX19aWYoIVZlfHxpc05hTihWZS5nZXRUaW1lKCkpKXJldHVybiBudWxsO2lmKFBlKXtsZXQgb3Q9UGUubWF0Y2goL14oXGR7MSwyfSk6KFxkezJ9KSQvKTtpZihvdCl7bGV0W0x0LFp0LGllXT1vdDtWZS5zZXRIb3VycyhwYXJzZUludChadCkpLFZlLnNldE1pbnV0ZXMocGFyc2VJbnQoaWUpKX19ZWxzZSBpZighdGhpcy5lbmFibGVUaW1lKXtsZXQgb3Q9bmV3IERhdGU7VmUuc2V0SG91cnMob3QuZ2V0SG91cnMoKSksVmUuc2V0TWludXRlcyhvdC5nZXRNaW51dGVzKCkpLFZlLnNldFNlY29uZHMoMCksVmUuc2V0TWlsbGlzZWNvbmRzKDApfXJldHVybiBWZX1nZXRWYWx1ZSgpe3JldHVybiB0aGlzLnZhbHVlfXNldFZhbHVlKGVlKXtpZih0aGlzLnZhbHVlPWVlLGVlKXRyeXtsZXQgYWU9bmV3IERhdGUoZWUpO2lzTmFOKGFlLmdldFRpbWUoKSl8fCh0aGlzLnNlbGVjdGVkRGF0ZT1hZSx0aGlzLnZpZXdEYXRlPW5ldyBEYXRlKGFlKSx0aGlzLnNlbGVjdGVkSG91cj1hZS5nZXRIb3VycygpLHRoaXMuc2VsZWN0ZWRNaW51dGU9YWUuZ2V0TWludXRlcygpKX1jYXRjaHt9fXN0YXRpY3t6dChpLGEpfX07cmV0dXJuIHllPWl9KSgpfSk7dmFyIE5xPWIoKCk9PntJcSgpfSk7dmFyIEs5dCxROXQ9YigoKT0+e3VlKCk7eDEoKTttMigpO0s5dD0oKT0+d2AKICA8c3R5bGU+CiAgICAke1FgCiAgICAgIC5kZW1vLWNvbnRhaW5lciB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICAgIGdhcDogMjRweDsKICAgICAgICBwYWRkaW5nOiAyNHB4OwogICAgICAgIG1heC13aWR0aDogMTIwMHB4OwogICAgICAgIG1hcmdpbjogMCBhdXRvOwogICAgICB9CiAgICAgIAogICAgICBkZWVzLXBhbmVsIHsKICAgICAgICBtYXJnaW4tYm90dG9tOiAyNHB4OwogICAgICB9CiAgICAgIAogICAgICBkZWVzLXBhbmVsOmxhc3QtY2hpbGQgewogICAgICAgIG1hcmdpbi1ib3R0b206IDA7CiAgICAgIH0KICAgICAgCiAgICAgIC5ob3Jpem9udGFsLWdyb3VwIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgZ2FwOiAxNnB4OwogICAgICAgIGZsZXgtd3JhcDogd3JhcDsKICAgICAgfQogICAgICAKICAgICAgLmlucHV0LWdyb3VwIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgICAgZ2FwOiAxNnB4OwogICAgICB9CgogICAgICAuZ3JpZC1sYXlvdXQgewogICAgICAgIGRpc3BsYXk6IGdyaWQ7CiAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAxZnIgMWZyOwogICAgICAgIGdhcDogMTZweDsKICAgICAgfQogICAgICAKICAgICAgQG1lZGlhIChtYXgtd2lkdGg6IDc2OHB4KSB7CiAgICAgICAgLmdyaWQtbGF5b3V0IHsKICAgICAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogMWZyOwogICAgICAgIH0KICAgICAgfQogICAgICAKICAgICAgLmludGVyYWN0aXZlLXNlY3Rpb24gewogICAgICAgIGJhY2tncm91bmQ6ICR7cC5iZFRoZW1lKCJoc2woMjEwIDQwJSA5Ni4xJSkiLCJoc2woMjE1IDIwLjIlIDE2LjglKSIpfTsKICAgICAgICBib3JkZXItcmFkaXVzOiA4cHg7CiAgICAgICAgcGFkZGluZzogMTZweDsKICAgICAgICBtYXJnaW4tdG9wOiAxNnB4OwogICAgICB9CiAgICAgIAogICAgICAub3V0cHV0LXRleHQgewogICAgICAgIGZvbnQtZmFtaWx5OiBtb25vc3BhY2U7CiAgICAgICAgZm9udC1zaXplOiAxM3B4OwogICAgICAgIGNvbG9yOiAke3AuYmRUaGVtZSgiaHNsKDIxNS4zIDI1JSAyNi43JSkiLCJoc2woMjEwIDQwJSA4MCUpIil9OwogICAgICAgIHBhZGRpbmc6IDhweDsKICAgICAgICBiYWNrZ3JvdW5kOiAke3AuYmRUaGVtZSgiaHNsKDIxMCA0MCUgOTglKSIsImhzbCgyMTUgMjAuMiUgMTEuOCUpIil9OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDRweDsKICAgICAgICBtaW4taGVpZ2h0OiAyNHB4OwogICAgICB9CiAgICBgfQogIDwvc3R5bGU+CiAgCiAgPGRpdiBjbGFzcz0iZGVtby1jb250YWluZXIiPgogICAgPGRlZXMtZGVtb3dyYXBwZXIgLnJ1bkFmdGVyUmVuZGVyPSR7YXN5bmMgdD0+e3QucXVlcnlTZWxlY3RvckFsbCgiZGVlcy1pbnB1dC10ZXh0IikuZm9yRWFjaChpPT57aS5hZGRFdmVudExpc3RlbmVyKCJjaGFuZ2VTdWJqZWN0IixyPT57Y29uc29sZS5sb2coYElucHV0ICIke2kubGFiZWx9IiBjaGFuZ2VkIHRvOmAsaS5nZXRWYWx1ZSgpKX0pLGkuYWRkRXZlbnRMaXN0ZW5lcigiYmx1ciIsKCk9Pntjb25zb2xlLmxvZyhgSW5wdXQgIiR7aS5sYWJlbH0iIGxvc3QgZm9jdXNgKX0pfSksdC5xdWVyeVNlbGVjdG9yKCdkZWVzLWlucHV0LXRleHRba2V5PSJwYXNzd29yZCJdJykmJmNvbnNvbGUubG9nKCJQYXNzd29yZCBpbnB1dCBpbmNsdWRlcyB2aXNpYmlsaXR5IHRvZ2dsZSIpfX0+CiAgICAgIDxkZWVzLXBhbmVsIC50aXRsZT0keyJCYXNpYyBUZXh0IElucHV0cyJ9IC5zdWJ0aXRsZT0keyJTdGFuZGFyZCB0ZXh0IGlucHV0cyB3aXRoIGxhYmVscyBhbmQgZGVzY3JpcHRpb25zIn0+CiAgICAgICAgPGRpdiBjbGFzcz0iaW5wdXQtZ3JvdXAiPgogICAgICAgICAgPGRlZXMtaW5wdXQtdGV4dAogICAgICAgICAgICAubGFiZWw9JHsiVXNlcm5hbWUifQogICAgICAgICAgICAudmFsdWU9JHsiam9obmRvZSJ9CiAgICAgICAgICAgIC5rZXk9JHsidXNlcm5hbWUifQogICAgICAgICAgPjwvZGVlcy1pbnB1dC10ZXh0PgoKICAgICAgICAgIDxkZWVzLWlucHV0LXRleHQKICAgICAgICAgICAgLmxhYmVsPSR7IkVtYWlsIEFkZHJlc3MifQogICAgICAgICAgICAudmFsdWU9JHsiam9obkBleGFtcGxlLmNvbSJ9CiAgICAgICAgICAgIC5kZXNjcmlwdGlvbj0keyJXZSB3aWxsIG5ldmVyIHNoYXJlIHlvdXIgZW1haWwgd2l0aCBhbnlvbmUifQogICAgICAgICAgICAua2V5PSR7ImVtYWlsIn0KICAgICAgICAgID48L2RlZXMtaW5wdXQtdGV4dD4KCiAgICAgICAgICA8ZGVlcy1pbnB1dC10ZXh0CiAgICAgICAgICAgIC5sYWJlbD0keyJQYXNzd29yZCJ9CiAgICAgICAgICAgIC5pc1Bhc3N3b3JkQm9vbD0keyEwfQogICAgICAgICAgICAudmFsdWU9JHsic2VjcmV0MTIzIn0KICAgICAgICAgICAgLmtleT0keyJwYXNzd29yZCJ9CiAgICAgICAgICA+PC9kZWVzLWlucHV0LXRleHQ+CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGVlcy1wYW5lbD4KICAgIDwvZGVlcy1kZW1vd3JhcHBlcj4KICAgIAogICAgPGRlZXMtZGVtb3dyYXBwZXIgLnJ1bkFmdGVyUmVuZGVyPSR7YXN5bmMgdD0+e3QucXVlcnlTZWxlY3RvckFsbCgiZGVlcy1pbnB1dC10ZXh0IikuZm9yRWFjaChyPT57bGV0IHM9d2luZG93LmdldENvbXB1dGVkU3R5bGUocik7Y29uc29sZS5sb2coYEhvcml6b250YWwgaW5wdXQgIiR7ci5sYWJlbH0iIGRpc3BsYXk6YCxzLmRpc3BsYXkpfSk7bGV0IGE9dC5xdWVyeVNlbGVjdG9yKCdkZWVzLWlucHV0LXRleHRba2V5PSJmaXJzdE5hbWUiXScpLGk9dC5xdWVyeVNlbGVjdG9yKCdkZWVzLWlucHV0LXRleHRba2V5PSJsYXN0TmFtZSJdJyk7aWYoYSYmaSl7bGV0IHI9KCk9PntsZXQgcz1hLmdldFZhbHVlKCksbj1pLmdldFZhbHVlKCk7Y29uc29sZS5sb2coYEZ1bGwgbmFtZTogJHtzfSAke259YCl9O2EuYWRkRXZlbnRMaXN0ZW5lcigiY2hhbmdlU3ViamVjdCIsciksaS5hZGRFdmVudExpc3RlbmVyKCJjaGFuZ2VTdWJqZWN0IixyKX19fT4KICAgICAgPGRlZXMtcGFuZWwgLnRpdGxlPSR7Ikhvcml6b250YWwgTGF5b3V0In0gLnN1YnRpdGxlPSR7Ik11bHRpcGxlIGlucHV0cyBhcnJhbmdlZCBob3Jpem9udGFsbHkgZm9yIGNvbXBhY3QgZm9ybXMifT4KICAgICAgICA8ZGl2IGNsYXNzPSJob3Jpem9udGFsLWdyb3VwIj4KICAgICAgICAgIDxkZWVzLWlucHV0LXRleHQgCiAgICAgICAgICAgIC5sYWJlbD0keyJGaXJzdCBOYW1lIn0gCiAgICAgICAgICAgIC52YWx1ZT0keyJKb2huIn0gCiAgICAgICAgICAgIC5sYXlvdXRNb2RlPSR7Imhvcml6b250YWwifQogICAgICAgICAgICAua2V5PSR7ImZpcnN0TmFtZSJ9CiAgICAgICAgICA+PC9kZWVzLWlucHV0LXRleHQ+CiAgICAgICAgICAKICAgICAgICAgIDxkZWVzLWlucHV0LXRleHQgCiAgICAgICAgICAgIC5sYWJlbD0keyJMYXN0IE5hbWUifSAKICAgICAgICAgICAgLnZhbHVlPSR7IkRvZSJ9IAogICAgICAgICAgICAubGF5b3V0TW9kZT0keyJob3Jpem9udGFsIn0KICAgICAgICAgICAgLmtleT0keyJsYXN0TmFtZSJ9CiAgICAgICAgICA+PC9kZWVzLWlucHV0LXRleHQ+CiAgICAgICAgICAKICAgICAgICAgIDxkZWVzLWlucHV0LXRleHQgCiAgICAgICAgICAgIC5sYWJlbD0keyJBZ2UifSAKICAgICAgICAgICAgLnZhbHVlPSR7IjI4In0gCiAgICAgICAgICAgIC5sYXlvdXRNb2RlPSR7Imhvcml6b250YWwifQogICAgICAgICAgICAua2V5PSR7ImFnZSJ9CiAgICAgICAgICA+PC9kZWVzLWlucHV0LXRleHQ+CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGVlcy1wYW5lbD4KICAgIDwvZGVlcy1kZW1vd3JhcHBlcj4KICAgIAogICAgPGRlZXMtZGVtb3dyYXBwZXIgLnJ1bkFmdGVyUmVuZGVyPSR7YXN5bmMgdD0+e3QucXVlcnlTZWxlY3RvckFsbCgiZGVlcy1pbnB1dC10ZXh0IikuZm9yRWFjaChpPT57bGV0IHI9aS5sYWJlbFBvc2l0aW9uO2NvbnNvbGUubG9nKGBJbnB1dCAiJHtpLmxhYmVsfSIgaGFzIGxhYmVsIHBvc2l0aW9uOiAke3J9YCl9KTtsZXQgYT10LnF1ZXJ5U2VsZWN0b3JBbGwoJ2RlZXMtaW5wdXQtdGV4dFtsYWJlbFBvc2l0aW9uPSJsZWZ0Il0nKTthLmxlbmd0aD4wJiZjb25zb2xlLmxvZyhgJHthLmxlbmd0aH0gaW5wdXRzIGhhdmUgbGVmdC1hbGlnbmVkIGxhYmVscyBmb3IgaW5saW5lIGxheW91dGApfX0+CiAgICAgIDxkZWVzLXBhbmVsIC50aXRsZT0keyJMYWJlbCBQb3NpdGlvbnMifSAuc3VidGl0bGU9JHsiRGlmZmVyZW50IGxhYmVsIHBvc2l0aW9uaW5nIG9wdGlvbnMgZm9yIHZhcmlvdXMgbGF5b3V0cyJ9PgogICAgICAgIDxkaXYgY2xhc3M9ImlucHV0LWdyb3VwIj4KICAgICAgICAgIDxkZWVzLWlucHV0LXRleHQKICAgICAgICAgICAgLmxhYmVsPSR7IkxhYmVsIG9uIFRvcCAoRGVmYXVsdCkifQogICAgICAgICAgICAudmFsdWU9JHsiU3RhbmRhcmQgbGF5b3V0In0KICAgICAgICAgICAgLmxhYmVsUG9zaXRpb249JHsidG9wIn0KICAgICAgICAgID48L2RlZXMtaW5wdXQtdGV4dD4KCiAgICAgICAgICA8ZGVlcy1pbnB1dC10ZXh0CiAgICAgICAgICAgIC5sYWJlbD0keyJMYWJlbCBvbiBMZWZ0In0KICAgICAgICAgICAgLnZhbHVlPSR7IklubGluZSBsYWJlbCJ9CiAgICAgICAgICAgIC5sYWJlbFBvc2l0aW9uPSR7ImxlZnQifQogICAgICAgICAgPjwvZGVlcy1pbnB1dC10ZXh0PgoKICAgICAgICAgIDxkaXYgY2xhc3M9ImdyaWQtbGF5b3V0Ij4KICAgICAgICAgIDxkZWVzLWlucHV0LXRleHQgCiAgICAgICAgICAgIC5sYWJlbD0keyJDaXR5In0gCiAgICAgICAgICAgIC52YWx1ZT0keyJOZXcgWW9yayJ9IAogICAgICAgICAgICAubGFiZWxQb3NpdGlvbj0keyJsZWZ0In0KICAgICAgICAgID48L2RlZXMtaW5wdXQtdGV4dD4KICAgICAgICAgIAogICAgICAgICAgPGRlZXMtaW5wdXQtdGV4dAogICAgICAgICAgICAubGFiZWw9JHsiWklQIENvZGUifQogICAgICAgICAgICAudmFsdWU9JHsiMTAwMDEifQogICAgICAgICAgICAubGFiZWxQb3NpdGlvbj0keyJsZWZ0In0KICAgICAgICAgID48L2RlZXMtaW5wdXQtdGV4dD4KICAgICAgICA8L2Rpdj4KICAgICAgICA8L2Rpdj4KICAgICAgPC9kZWVzLXBhbmVsPgogICAgPC9kZWVzLWRlbW93cmFwcGVyPgogICAgCiAgICA8ZGVlcy1kZW1vd3JhcHBlciAucnVuQWZ0ZXJSZW5kZXI9JHthc3luYyB0PT57bGV0IGU9dC5xdWVyeVNlbGVjdG9yKCJkZWVzLWlucHV0LXRleHRbcmVxdWlyZWRdIiksYT10LnF1ZXJ5U2VsZWN0b3IoImRlZXMtaW5wdXQtdGV4dFtkaXNhYmxlZF0iKSxpPXQucXVlcnlTZWxlY3RvcignZGVlcy1pbnB1dC10ZXh0W3ZhbGlkYXRpb25TdGF0ZT0iaW52YWxpZCJdJyk7ZSYmZS5hZGRFdmVudExpc3RlbmVyKCJibHVyIiwoKT0+e2UuZ2V0VmFsdWUoKXx8Y29uc29sZS5sb2coIlJlcXVpcmVkIGZpZWxkIGlzIGVtcHR5ISIpfSksYSYmY29uc29sZS5sb2coIkRpc2FibGVkIGlucHV0IGNhbm5vdCBiZSBlZGl0ZWQiKSxpJiYoY29uc29sZS5sb2coIkVycm9yIGlucHV0IHNob3dzIHZhbGlkYXRpb24gbWVzc2FnZToiLGkudmFsaWRhdGlvblRleHQpLGkuYWRkRXZlbnRMaXN0ZW5lcigiY2hhbmdlU3ViamVjdCIsKCk9PntsZXQgcj1pLmdldFZhbHVlKCk7ci5pbmNsdWRlcygiQCIpJiZyLmluY2x1ZGVzKCIuIikmJihpLnZhbGlkYXRpb25TdGF0ZT0idmFsaWQiLGkudmFsaWRhdGlvblRleHQ9IiIsY29uc29sZS5sb2coIkVtYWlsIHZhbGlkYXRpb24gcGFzc2VkISIpKX0pKX19PgogICAgICA8ZGVlcy1wYW5lbCAudGl0bGU9JHsiVmFsaWRhdGlvbiAmIFN0YXRlcyJ9IC5zdWJ0aXRsZT0keyJEaWZmZXJlbnQgdmFsaWRhdGlvbiBzdGF0ZXMgYW5kIGlucHV0IGNvbmZpZ3VyYXRpb25zIn0+CiAgICAgICAgPGRpdiBjbGFzcz0iaW5wdXQtZ3JvdXAiPgogICAgICAgICAgPGRlZXMtaW5wdXQtdGV4dAogICAgICAgICAgICAubGFiZWw9JHsiUmVxdWlyZWQgRmllbGQifQogICAgICAgICAgICAucmVxdWlyZWQ9JHshMH0KICAgICAgICAgICAgLmtleT0keyJyZXF1aXJlZEZpZWxkIn0KICAgICAgICAgID48L2RlZXMtaW5wdXQtdGV4dD4KCiAgICAgICAgICA8ZGVlcy1pbnB1dC10ZXh0CiAgICAgICAgICAgIC5sYWJlbD0keyJEaXNhYmxlZCBGaWVsZCJ9CiAgICAgICAgICAgIC52YWx1ZT0keyJDYW5ub3QgZWRpdCB0aGlzIn0KICAgICAgICAgICAgLmRpc2FibGVkPSR7ITB9CiAgICAgICAgICA+PC9kZWVzLWlucHV0LXRleHQ+CgogICAgICAgICAgPGRlZXMtaW5wdXQtdGV4dAogICAgICAgICAgICAubGFiZWw9JHsiRmllbGQgd2l0aCBFcnJvciJ9CiAgICAgICAgICAgIC52YWx1ZT0keyJpbnZhbGlkQCJ9CiAgICAgICAgICAgIC52YWxpZGF0aW9uVGV4dD0keyJQbGVhc2UgZW50ZXIgYSB2YWxpZCBlbWFpbCBhZGRyZXNzIn0KICAgICAgICAgICAgLnZhbGlkYXRpb25TdGF0ZT0keyJpbnZhbGlkIn0KICAgICAgICAgID48L2RlZXMtaW5wdXQtdGV4dD4KICAgICAgICA8L2Rpdj4KICAgICAgPC9kZWVzLXBhbmVsPgogICAgPC9kZWVzLWRlbW93cmFwcGVyPgogICAgCiAgICA8ZGVlcy1kZW1vd3JhcHBlciAucnVuQWZ0ZXJSZW5kZXI9JHthc3luYyB0PT57dC5xdWVyeVNlbGVjdG9yQWxsKCJkZWVzLWlucHV0LXRleHRbaXNQYXNzd29yZEJvb2xdIikuZm9yRWFjaChhPT57bGV0IGk9KCk9PntsZXQgcj1hLnNoYWRvd1Jvb3Q/LnF1ZXJ5U2VsZWN0b3IoImlucHV0Iik7ciYmY29uc29sZS5sb2coYFBhc3N3b3JkIGZpZWxkICIke2EubGFiZWx9IiB0eXBlOmAsci50eXBlKX07aWYoYS5zaGFkb3dSb290KXtsZXQgcj1uZXcgTXV0YXRpb25PYnNlcnZlcihpKSxzPWEuc2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yKCJpbnB1dCIpO3MmJnIub2JzZXJ2ZShzLHthdHRyaWJ1dGVzOiEwLGF0dHJpYnV0ZUZpbHRlcjpbInR5cGUiXX0pfX0pfX0+CiAgICAgIDxkZWVzLXBhbmVsIC50aXRsZT0keyJBZHZhbmNlZCBGZWF0dXJlcyJ9IC5zdWJ0aXRsZT0keyJQYXNzd29yZCB2aXNpYmlsaXR5IHRvZ2dsZSBhbmQgb3RoZXIgYWR2YW5jZWQgZmVhdHVyZXMifT4KICAgICAgICA8ZGl2IGNsYXNzPSJpbnB1dC1ncm91cCI+CiAgICAgICAgICA8ZGVlcy1pbnB1dC10ZXh0CiAgICAgICAgICAgIC5sYWJlbD0keyJQYXNzd29yZCB3aXRoIFRvZ2dsZSJ9CiAgICAgICAgICAgIC5pc1Bhc3N3b3JkQm9vbD0keyEwfQogICAgICAgICAgICAudmFsdWU9JHsibXlTZWN1cmVQYXNzd29yZDEyMyJ9CiAgICAgICAgICAgIC5kZXNjcmlwdGlvbj0keyJDbGljayB0aGUgZXllIGljb24gdG8gc2hvdy9oaWRlIHBhc3N3b3JkIn0KICAgICAgICAgID48L2RlZXMtaW5wdXQtdGV4dD4KCiAgICAgICAgICA8ZGVlcy1pbnB1dC10ZXh0CiAgICAgICAgICAgIC5sYWJlbD0keyJBUEkgS2V5In0KICAgICAgICAgICAgLmlzUGFzc3dvcmRCb29sPSR7ITB9CiAgICAgICAgICAgIC52YWx1ZT0keyJzay0xMjM0NTY3ODkwYWJjZGVmIn0KICAgICAgICAgICAgLmRlc2NyaXB0aW9uPSR7IktlZXAgdGhpcyBrZXkgc2VjdXJlIGFuZCBuZXZlciBzaGFyZSBpdCJ9CiAgICAgICAgICA+PC9kZWVzLWlucHV0LXRleHQ+CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGVlcy1wYW5lbD4KICAgIDwvZGVlcy1kZW1vd3JhcHBlcj4KICAgIAogICAgPGRlZXMtZGVtb3dyYXBwZXIgLnJ1bkFmdGVyUmVuZGVyPSR7YXN5bmMgdD0+e2xldCBlPXQucXVlcnlTZWxlY3RvcigiZGVlcy1pbnB1dC10ZXh0IiksYT10LnF1ZXJ5U2VsZWN0b3IoIiN0ZXh0LWlucHV0LW91dHB1dCIpO2lmKGUmJmEpe2UuYWRkRXZlbnRMaXN0ZW5lcigiY2hhbmdlU3ViamVjdCIscj0+e2xldCBzPXIuZGV0YWlsLmdldFZhbHVlKCk7YS50ZXh0Q29udGVudD1gQ3VycmVudCB2YWx1ZTogIiR7c30iYH0pLGUuYWRkRXZlbnRMaXN0ZW5lcigiZm9jdXMiLCgpPT57Y29uc29sZS5sb2coIklucHV0IGZvY3VzZWQiKX0pLGUuYWRkRXZlbnRMaXN0ZW5lcigiYmx1ciIsKCk9Pntjb25zb2xlLmxvZygiSW5wdXQgYmx1cnJlZCIpfSk7bGV0IGk9MDtlLmFkZEV2ZW50TGlzdGVuZXIoImtleWRvd24iLCgpPT57aSsrLGNvbnNvbGUubG9nKGBLZXlwcmVzcyBjb3VudDogJHtpfWApfSl9fX0+CiAgICAgIDxkZWVzLXBhbmVsIC50aXRsZT0keyJJbnRlcmFjdGl2ZSBFeGFtcGxlIn0gLnN1YnRpdGxlPSR7IlRyeSB0eXBpbmcgaW4gdGhlIGlucHV0cyB0byBzZWUgcmVhbC10aW1lIHZhbHVlIGNoYW5nZXMifT4KICAgICAgICA8ZGVlcy1pbnB1dC10ZXh0IAogICAgICAgICAgLmxhYmVsPSR7IkR5bmFtaWMgSW5wdXQifSAKICAgICAgICAgIC5wbGFjZWhvbGRlcj0keyJUeXBlIHNvbWV0aGluZyBoZXJlLi4uIn0KICAgICAgICA+PC9kZWVzLWlucHV0LXRleHQ+CiAgICAgICAgCiAgICAgICAgPGRpdiBjbGFzcz0iaW50ZXJhY3RpdmUtc2VjdGlvbiI+CiAgICAgICAgICA8ZGl2IGlkPSJ0ZXh0LWlucHV0LW91dHB1dCIgY2xhc3M9Im91dHB1dC10ZXh0Ij5DdXJyZW50IHZhbHVlOiAiIjwvZGl2PgogICAgICAgIDwvZGl2PgogICAgICA8L2RlZXMtcGFuZWw+CiAgICA8L2RlZXMtZGVtb3dyYXBwZXI+CiAgPC9kaXY+CmB9KTt2YXIgWDAsVWEsRHgsbG89YigoKT0+e2dpKCk7XzEoKTtROXQoKTtkYSgpO3VlKCk7cWUoKTtYMD1mdW5jdGlvbih0LGUsYSxpLHIscyl7ZnVuY3Rpb24gbih4KXtpZih4IT09dm9pZCAwJiZ0eXBlb2YgeCE9ImZ1bmN0aW9uIil0aHJvdyBuZXcgVHlwZUVycm9yKCJGdW5jdGlvbiBleHBlY3RlZCIpO3JldHVybiB4fWZvcih2YXIgbz1pLmtpbmQsZD1vPT09ImdldHRlciI/ImdldCI6bz09PSJzZXR0ZXIiPyJzZXQiOiJ2YWx1ZSIsYz0hZSYmdD9pLnN0YXRpYz90OnQucHJvdG90eXBlOm51bGwsaD1lfHwoYz9PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGMsaS5uYW1lKTp7fSksbCxmPSExLGc9YS5sZW5ndGgtMTtnPj0wO2ctLSl7dmFyIHk9e307Zm9yKHZhciB2IGluIGkpeVt2XT12PT09ImFjY2VzcyI/e306aVt2XTtmb3IodmFyIHYgaW4gaS5hY2Nlc3MpeS5hY2Nlc3Nbdl09aS5hY2Nlc3Nbdl07eS5hZGRJbml0aWFsaXplcj1mdW5jdGlvbih4KXtpZihmKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBhZGQgaW5pdGlhbGl6ZXJzIGFmdGVyIGRlY29yYXRpb24gaGFzIGNvbXBsZXRlZCIpO3MucHVzaChuKHh8fG51bGwpKX07dmFyIG09KDAsYVtnXSkobz09PSJhY2Nlc3NvciI/e2dldDpoLmdldCxzZXQ6aC5zZXR9OmhbZF0seSk7aWYobz09PSJhY2Nlc3NvciIpe2lmKG09PT12b2lkIDApY29udGludWU7aWYobT09PW51bGx8fHR5cGVvZiBtIT0ib2JqZWN0Iil0aHJvdyBuZXcgVHlwZUVycm9yKCJPYmplY3QgZXhwZWN0ZWQiKTsobD1uKG0uZ2V0KSkmJihoLmdldD1sKSwobD1uKG0uc2V0KSkmJihoLnNldD1sKSwobD1uKG0uaW5pdCkpJiZyLnVuc2hpZnQobCl9ZWxzZShsPW4obSkpJiYobz09PSJmaWVsZCI/ci51bnNoaWZ0KGwpOmhbZF09bCl9YyYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGMsaS5uYW1lLGgpLGY9ITB9LFVhPWZ1bmN0aW9uKHQsZSxhKXtmb3IodmFyIGk9YXJndW1lbnRzLmxlbmd0aD4yLHI9MDtyPGUubGVuZ3RoO3IrKylhPWk/ZVtyXS5jYWxsKHQsYSk6ZVtyXS5jYWxsKHQpO3JldHVybiBpP2E6dm9pZCAwfSxEeD0oKCk9PntsZXQgdD1bcGUoImRlZXMtaW5wdXQtdGV4dCIpXSxlLGE9W10saSxyPVhlLHMsbj1bXSxvPVtdLGQsYz1bXSxoPVtdLGwsZj1bXSxnPVtdLHksdj1bXSxtPVtdLHgsTT1bXSxTPVtdLEYsXz1bXSxrPVtdO3ZhciBOPWNsYXNzIGV4dGVuZHMgcntzdGF0aWN7aT10aGlzfXN0YXRpY3tsZXQgTD10eXBlb2YgU3ltYm9sPT0iZnVuY3Rpb24iJiZTeW1ib2wubWV0YWRhdGE/T2JqZWN0LmNyZWF0ZShyW1N5bWJvbC5tZXRhZGF0YV0/P251bGwpOnZvaWQgMDtzPVtJKHt0eXBlOlN0cmluZyxyZWZsZWN0OiEwfSldLGQ9W0koe3R5cGU6Qm9vbGVhbixyZWZsZWN0OiEwfSldLGw9W0koe3R5cGU6Qm9vbGVhbixyZWZsZWN0OiEwfSldLHk9W0koe3R5cGU6Qm9vbGVhbixyZWZsZWN0OiEwfSldLHg9W0koe3JlZmxlY3Q6ITB9KV0sRj1bSSh7fSldLFgwKHRoaXMsbnVsbCxzLHtraW5kOiJhY2Nlc3NvciIsbmFtZToidmFsdWUiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOkE9PiJ2YWx1ZSJpbiBBLGdldDpBPT5BLnZhbHVlLHNldDooQSxxKT0+e0EudmFsdWU9cX19LG1ldGFkYXRhOkx9LG4sbyksWDAodGhpcyxudWxsLGQse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJpc1Bhc3N3b3JkQm9vbCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6QT0+ImlzUGFzc3dvcmRCb29sImluIEEsZ2V0OkE9PkEuaXNQYXNzd29yZEJvb2wsc2V0OihBLHEpPT57QS5pc1Bhc3N3b3JkQm9vbD1xfX0sbWV0YWRhdGE6TH0sYyxoKSxYMCh0aGlzLG51bGwsbCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InNob3dQYXNzd29yZEJvb2wiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOkE9PiJzaG93UGFzc3dvcmRCb29sImluIEEsZ2V0OkE9PkEuc2hvd1Bhc3N3b3JkQm9vbCxzZXQ6KEEscSk9PntBLnNob3dQYXNzd29yZEJvb2w9cX19LG1ldGFkYXRhOkx9LGYsZyksWDAodGhpcyxudWxsLHkse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJ2YWxpZGF0aW9uU3RhdGUiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOkE9PiJ2YWxpZGF0aW9uU3RhdGUiaW4gQSxnZXQ6QT0+QS52YWxpZGF0aW9uU3RhdGUsc2V0OihBLHEpPT57QS52YWxpZGF0aW9uU3RhdGU9cX19LG1ldGFkYXRhOkx9LHYsbSksWDAodGhpcyxudWxsLHgse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJ2YWxpZGF0aW9uVGV4dCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6QT0+InZhbGlkYXRpb25UZXh0ImluIEEsZ2V0OkE9PkEudmFsaWRhdGlvblRleHQsc2V0OihBLHEpPT57QS52YWxpZGF0aW9uVGV4dD1xfX0sbWV0YWRhdGE6TH0sTSxTKSxYMCh0aGlzLG51bGwsRix7a2luZDoiYWNjZXNzb3IiLG5hbWU6InZhbGlkYXRpb25GdW5jdGlvbiIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6QT0+InZhbGlkYXRpb25GdW5jdGlvbiJpbiBBLGdldDpBPT5BLnZhbGlkYXRpb25GdW5jdGlvbixzZXQ6KEEscSk9PntBLnZhbGlkYXRpb25GdW5jdGlvbj1xfX0sbWV0YWRhdGE6TH0sXyxrKSxYMChudWxsLGU9e3ZhbHVlOml9LHQse2tpbmQ6ImNsYXNzIixuYW1lOmkubmFtZSxtZXRhZGF0YTpMfSxudWxsLGEpLE49aT1lLnZhbHVlLEwmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShpLFN5bWJvbC5tZXRhZGF0YSx7ZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITAsdmFsdWU6TH0pfXN0YXRpYyBkZW1vPUs5dDtzdGF0aWMgZGVtb0dyb3Vwcz1bIklucHV0Il07I2U9VWEodGhpcyxuLCIiKTtnZXQgdmFsdWUoKXtyZXR1cm4gdGhpcy4jZX1zZXQgdmFsdWUoTCl7dGhpcy4jZT1MfSN0PShVYSh0aGlzLG8pLFVhKHRoaXMsYywhMSkpO2dldCBpc1Bhc3N3b3JkQm9vbCgpe3JldHVybiB0aGlzLiN0fXNldCBpc1Bhc3N3b3JkQm9vbChMKXt0aGlzLiN0PUx9I2E9KFVhKHRoaXMsaCksVWEodGhpcyxmLCExKSk7Z2V0IHNob3dQYXNzd29yZEJvb2woKXtyZXR1cm4gdGhpcy4jYX1zZXQgc2hvd1Bhc3N3b3JkQm9vbChMKXt0aGlzLiNhPUx9I2k9KFVhKHRoaXMsZyksVWEodGhpcyx2LHZvaWQgMCkpO2dldCB2YWxpZGF0aW9uU3RhdGUoKXtyZXR1cm4gdGhpcy4jaX1zZXQgdmFsaWRhdGlvblN0YXRlKEwpe3RoaXMuI2k9TH0jcj0oVWEodGhpcyxtKSxVYSh0aGlzLE0sIiIpKTtnZXQgdmFsaWRhdGlvblRleHQoKXtyZXR1cm4gdGhpcy4jcn1zZXQgdmFsaWRhdGlvblRleHQoTCl7dGhpcy4jcj1MfSNzPShVYSh0aGlzLFMpLFVhKHRoaXMsXyx2b2lkIDApKTtnZXQgdmFsaWRhdGlvbkZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuI3N9c2V0IHZhbGlkYXRpb25GdW5jdGlvbihMKXt0aGlzLiNzPUx9c3RhdGljIHN0eWxlcz1bQ2UsLi4uWGUuYmFzZVN0eWxlcyxwLmRlZmF1bHRTdHlsZXMsUWAKICAgICAgLyogVE9ETzogTWlncmF0ZSBoYXJkY29kZWQgdmFsdWVzIHRvIC0tZGVlcy0qIENTUyB2YXJpYWJsZXMgKi8KICAgICAgKiB7CiAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDsKICAgICAgfQoKICAgICAgOmhvc3QgewogICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgICB6LWluZGV4OiBhdXRvOwogICAgICAgIGZvbnQtZmFtaWx5OiAke0p0fTsKICAgICAgfQoKICAgICAgLm1haW5jb250YWluZXIgewogICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgICBjb2xvcjogJHtwLmJkVGhlbWUoImhzbCgwIDAlIDE1JSkiLCJoc2woMCAwJSA5MCUpIil9OwogICAgICB9CgogICAgICBpbnB1dCB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBoZWlnaHQ6IDQwcHg7CiAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgICAgcGFkZGluZzogMCAxMnB4OwogICAgICAgIGZvbnQtc2l6ZTogMTRweDsKICAgICAgICBsaW5lLWhlaWdodDogNDBweDsKICAgICAgICBiYWNrZ3JvdW5kOiAke3AuYmRUaGVtZSgiaHNsKDAgMCUgMTAwJSkiLCJoc2woMCAwJSA5JSkiKX07CiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHtwLmJkVGhlbWUoImhzbCgwIDAlIDg5LjglKSIsImhzbCgwIDAlIDE0LjklKSIpfTsKICAgICAgICBib3JkZXItcmFkaXVzOiA2cHg7CiAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuMnMgY3ViaWMtYmV6aWVyKDAuNCwgMCwgMC4yLCAxKTsKICAgICAgICBvdXRsaW5lOiBub25lOwogICAgICAgIGN1cnNvcjogdGV4dDsKICAgICAgICBmb250LWZhbWlseTogaW5oZXJpdDsKICAgICAgICBjb2xvcjogJHtwLmJkVGhlbWUoImhzbCgwIDAlIDMuOSUpIiwiaHNsKDAgMCUgOTglKSIpfTsKICAgICAgfQoKICAgICAgaW5wdXQ6OnBsYWNlaG9sZGVyIHsKICAgICAgICBjb2xvcjogJHtwLmJkVGhlbWUoImhzbCgwIDAlIDQ1LjElKSIsImhzbCgwIDAlIDYzLjklKSIpfTsKICAgICAgfQoKICAgICAgaW5wdXQ6aG92ZXI6bm90KDpkaXNhYmxlZCk6bm90KDpmb2N1cykgewogICAgICAgIGJvcmRlci1jb2xvcjogJHtwLmJkVGhlbWUoImhzbCgwIDAlIDc5LjglKSIsImhzbCgwIDAlIDIwLjklKSIpfTsKICAgICAgfQoKICAgICAgaW5wdXQ6Zm9jdXMgewogICAgICAgIG91dGxpbmU6IG5vbmU7CiAgICAgICAgYm9yZGVyLWNvbG9yOiAke3AuYmRUaGVtZSgiaHNsKDAgMCUgOSUpIiwiaHNsKDAgMCUgOTglKSIpfTsKICAgICAgICBib3gtc2hhZG93OiAwIDAgMCAycHggJHtwLmJkVGhlbWUoImhzbCgwIDAlIDklIC8gMC4wNSkiLCJoc2woMCAwJSA5OCUgLyAwLjA1KSIpfTsKICAgICAgfQoKICAgICAgaW5wdXQ6ZGlzYWJsZWQgewogICAgICAgIGJhY2tncm91bmQ6ICR7cC5iZFRoZW1lKCJoc2woMCAwJSA5NS4xJSkiLCJoc2woMCAwJSAxNC45JSkiKX07CiAgICAgICAgYm9yZGVyLWNvbG9yOiAke3AuYmRUaGVtZSgiaHNsKDAgMCUgODkuOCUpIiwiaHNsKDAgMCUgMTQuOSUpIil9OwogICAgICAgIGNvbG9yOiAke3AuYmRUaGVtZSgiaHNsKDAgMCUgNDUuMSUpIiwiaHNsKDAgMCUgNjMuOSUpIil9OwogICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7CiAgICAgICAgb3BhY2l0eTogMC41OwogICAgICB9CgogICAgICAvKiBQYXNzd29yZCB0b2dnbGUgYnV0dG9uICovCiAgICAgIC5zaG93UGFzc3dvcmQgewogICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgICByaWdodDogMXB4OwogICAgICAgIHRvcDogNTAlOwogICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7CiAgICAgICAgd2lkdGg6IDM4cHg7CiAgICAgICAgaGVpZ2h0OiAzOHB4OwogICAgICAgIGN1cnNvcjogcG9pbnRlcjsKICAgICAgICBjb2xvcjogJHtwLmJkVGhlbWUoImhzbCgwIDAlIDQ1LjElKSIsImhzbCgwIDAlIDYzLjklKSIpfTsKICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC4xNXMgZWFzZTsKICAgICAgICBib3JkZXItcmFkaXVzOiAwIDVweCA1cHggMDsKICAgICAgfQoKICAgICAgLnNob3dQYXNzd29yZDpob3ZlciB7CiAgICAgICAgYmFja2dyb3VuZDogJHtwLmJkVGhlbWUoImhzbCgwIDAlIDk1LjElKSIsImhzbCgwIDAlIDE0LjklKSIpfTsKICAgICAgICBjb2xvcjogJHtwLmJkVGhlbWUoImhzbCgwIDAlIDE1JSkiLCJoc2woMCAwJSA5My45JSkiKX07CiAgICAgIH0KCiAgICAgIC8qIFZhbGlkYXRpb24gc3R5bGVzICovCiAgICAgIC52YWxpZGF0aW9uQ29udGFpbmVyIHsKICAgICAgICBtYXJnaW4tdG9wOiA0cHg7CiAgICAgICAgcGFkZGluZzogNHB4IDhweDsKICAgICAgICBmb250LXNpemU6IDEycHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDsKICAgICAgICBib3JkZXItcmFkaXVzOiA0cHg7CiAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuMnMgZWFzZTsKICAgICAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgICB9CgogICAgICAudmFsaWRhdGlvbkNvbnRhaW5lci5lcnJvciB7CiAgICAgICAgYmFja2dyb3VuZDogJHtwLmJkVGhlbWUoImhzbCgwIDg0LjIlIDYwLjIlIC8gMC4xKSIsImhzbCgwIDcyLjIlIDUwLjYlIC8gMC4xKSIpfTsKICAgICAgICBjb2xvcjogJHtwLmJkVGhlbWUoImhzbCgwIDg0LjIlIDYwLjIlKSIsImhzbCgwIDcyLjIlIDUwLjYlKSIpfTsKICAgICAgfQoKICAgICAgLnZhbGlkYXRpb25Db250YWluZXIud2FybiB7CiAgICAgICAgYmFja2dyb3VuZDogJHtwLmJkVGhlbWUoImhzbCgyNSA5NSUgNTMlIC8gMC4xKSIsImhzbCgyNSA5NSUgNjMlIC8gMC4xKSIpfTsKICAgICAgICBjb2xvcjogJHtwLmJkVGhlbWUoImhzbCgyNSA5NSUgNTMlKSIsImhzbCgyNSA5NSUgNjMlKSIpfTsKICAgICAgfQoKICAgICAgLnZhbGlkYXRpb25Db250YWluZXIudmFsaWQgewogICAgICAgIGJhY2tncm91bmQ6ICR7cC5iZFRoZW1lKCJoc2woMTQyLjEgNzYuMiUgMzYuMyUgLyAwLjEpIiwiaHNsKDE0Mi4xIDcwLjYlIDQ1LjMlIC8gMC4xKSIpfTsKICAgICAgICBjb2xvcjogJHtwLmJkVGhlbWUoImhzbCgxNDIuMSA3Ni4yJSAzNi4zJSkiLCJoc2woMTQyLjEgNzAuNiUgNDUuMyUpIil9OwogICAgICB9CgogICAgICAvKiBFcnJvciBzdGF0ZSBmb3IgaW5wdXQgKi8KICAgICAgOmhvc3QoW3ZhbGlkYXRpb24tc3RhdGU9ImludmFsaWQiXSkgaW5wdXQgewogICAgICAgIGJvcmRlci1jb2xvcjogJHtwLmJkVGhlbWUoImhzbCgwIDg0LjIlIDYwLjIlKSIsImhzbCgwIDcyLjIlIDUwLjYlKSIpfTsKICAgICAgfQoKICAgICAgOmhvc3QoW3ZhbGlkYXRpb24tc3RhdGU9ImludmFsaWQiXSkgaW5wdXQ6Zm9jdXMgewogICAgICAgIGJvcmRlci1jb2xvcjogJHtwLmJkVGhlbWUoImhzbCgwIDg0LjIlIDYwLjIlKSIsImhzbCgwIDcyLjIlIDUwLjYlKSIpfTsKICAgICAgICBib3gtc2hhZG93OiAwIDAgMCAycHggJHtwLmJkVGhlbWUoImhzbCgwIDg0LjIlIDYwLjIlIC8gMC4wNSkiLCJoc2woMCA3Mi4yJSA1MC42JSAvIDAuMDUpIil9OwogICAgICB9CgogICAgICAvKiBXYXJuaW5nIHN0YXRlIGZvciBpbnB1dCAqLwogICAgICA6aG9zdChbdmFsaWRhdGlvbi1zdGF0ZT0id2FybiJdKSBpbnB1dCB7CiAgICAgICAgYm9yZGVyLWNvbG9yOiAke3AuYmRUaGVtZSgiaHNsKDI1IDk1JSA1MyUpIiwiaHNsKDI1IDk1JSA2MyUpIil9OwogICAgICB9CgogICAgICA6aG9zdChbdmFsaWRhdGlvbi1zdGF0ZT0id2FybiJdKSBpbnB1dDpmb2N1cyB7CiAgICAgICAgYm9yZGVyLWNvbG9yOiAke3AuYmRUaGVtZSgiaHNsKDI1IDk1JSA1MyUpIiwiaHNsKDI1IDk1JSA2MyUpIil9OwogICAgICAgIGJveC1zaGFkb3c6IDAgMCAwIDJweCAke3AuYmRUaGVtZSgiaHNsKDI1IDk1JSA1MyUgLyAwLjA1KSIsImhzbCgyNSA5NSUgNjMlIC8gMC4wNSkiKX07CiAgICAgIH0KCiAgICAgIC8qIFZhbGlkIHN0YXRlIGZvciBpbnB1dCAqLwogICAgICA6aG9zdChbdmFsaWRhdGlvbi1zdGF0ZT0idmFsaWQiXSkgaW5wdXQgewogICAgICAgIGJvcmRlci1jb2xvcjogJHtwLmJkVGhlbWUoImhzbCgxNDIuMSA3Ni4yJSAzNi4zJSkiLCJoc2woMTQyLjEgNzAuNiUgNDUuMyUpIil9OwogICAgICB9CgogICAgICA6aG9zdChbdmFsaWRhdGlvbi1zdGF0ZT0idmFsaWQiXSkgaW5wdXQ6Zm9jdXMgewogICAgICAgIGJvcmRlci1jb2xvcjogJHtwLmJkVGhlbWUoImhzbCgxNDIuMSA3Ni4yJSAzNi4zJSkiLCJoc2woMTQyLjEgNzAuNiUgNDUuMyUpIil9OwogICAgICAgIGJveC1zaGFkb3c6IDAgMCAwIDJweCAke3AuYmRUaGVtZSgiaHNsKDE0Mi4xIDc2LjIlIDM2LjMlIC8gMC4wNSkiLCJoc2woMTQyLjEgNzAuNiUgNDUuMyUgLyAwLjA1KSIpfTsKICAgICAgfQogICAgYF07cmVuZGVyKCl7cmV0dXJuIHdgCiAgICAgIDxzdHlsZT4KICAgICAgICBpbnB1dCB7CiAgICAgICAgICBmb250LWZhbWlseTogJHt0aGlzLmlzUGFzc3dvcmRCb29sP1YwOiJpbmhlcml0In07CiAgICAgICAgICBsZXR0ZXItc3BhY2luZzogJHt0aGlzLmlzUGFzc3dvcmRCb29sPyIwLjVweCI6Im5vcm1hbCJ9OwogICAgICAgICAgcGFkZGluZy1yaWdodDogJHt0aGlzLmlzUGFzc3dvcmRCb29sPyI0OHB4IjoiMTJweCJ9OwogICAgICAgIH0KICAgICAgICAke3RoaXMudmFsaWRhdGlvblRleHQ/UWAKICAgICAgICAgICAgICAudmFsaWRhdGlvbkNvbnRhaW5lciB7CiAgICAgICAgICAgICAgICBoZWlnaHQ6IGF1dG87CiAgICAgICAgICAgICAgICBvcGFjaXR5OiAxOwogICAgICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDApOwogICAgICAgICAgICAgIH0KICAgICAgICAgICAgYDpRYAogICAgICAgICAgICAgIC52YWxpZGF0aW9uQ29udGFpbmVyIHsKICAgICAgICAgICAgICAgIGhlaWdodDogMDsKICAgICAgICAgICAgICAgIHBhZGRpbmc6IDAgIWltcG9ydGFudDsKICAgICAgICAgICAgICAgIG9wYWNpdHk6IDA7CiAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTRweCk7CiAgICAgICAgICAgICAgfQogICAgICAgICAgICBgfQogICAgICA8L3N0eWxlPgogICAgICA8ZGl2IGNsYXNzPSJpbnB1dC13cmFwcGVyIj4KICAgICAgICA8ZGVlcy1sYWJlbCAubGFiZWw9JHt0aGlzLmxhYmVsfSAuZGVzY3JpcHRpb249JHt0aGlzLmRlc2NyaXB0aW9ufSAucmVxdWlyZWQ9JHt0aGlzLnJlcXVpcmVkfT48L2RlZXMtbGFiZWw+CiAgICAgICAgPGRpdiBjbGFzcz0ibWFpbmNvbnRhaW5lciI+CiAgICAgICAgICA8aW5wdXQKICAgICAgICAgICAgdHlwZT0iJHt0aGlzLmlzUGFzc3dvcmRCb29sJiYhdGhpcy5zaG93UGFzc3dvcmRCb29sPyJwYXNzd29yZCI6InRleHQifSIKICAgICAgICAgICAgLnZhbHVlPSR7dGhpcy52YWx1ZX0KICAgICAgICAgICAgQGlucHV0PSIke3RoaXMudXBkYXRlVmFsdWV9IgogICAgICAgICAgICAuZGlzYWJsZWQ9JHt0aGlzLmRpc2FibGVkfQogICAgICAgICAgICBwbGFjZWhvbGRlcj0iJHt0aGlzLmxhYmVsPyIiOiJFbnRlciB0ZXh0Li4uIn0iCiAgICAgICAgICAvPgogICAgICAgICAgJHt0aGlzLmlzUGFzc3dvcmRCb29sP3dgCiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJzaG93UGFzc3dvcmQiIEBjbGljaz0ke3RoaXMudG9nZ2xlUGFzc3dvcmRWaWV3fT4KICAgICAgICAgICAgICAgICAgPGRlZXMtaWNvbiAuaWNvbj0ke3RoaXMuc2hvd1Bhc3N3b3JkQm9vbD8ibHVjaWRlOkV5ZSI6Imx1Y2lkZTpFeWVPZmYifT48L2RlZXMtaWNvbj4KICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgIGA6d2BgfQogICAgICAgICAgJHt0aGlzLnZhbGlkYXRpb25UZXh0P3dgCiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJ2YWxpZGF0aW9uQ29udGFpbmVyICR7dGhpcy52YWxpZGF0aW9uU3RhdGV8fCJlcnJvciJ9Ij4KICAgICAgICAgICAgICAgICAgJHt0aGlzLnZhbGlkYXRpb25UZXh0fQogICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgYDp3YDxkaXYgY2xhc3M9InZhbGlkYXRpb25Db250YWluZXIiPjwvZGl2PmB9CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGl2PgogICAgYH1maXJzdFVwZGF0ZWQoKXt9YXN5bmMgdXBkYXRlVmFsdWUoTCl7bGV0IEE9TC50YXJnZXQ7dGhpcy52YWx1ZT1BLnZhbHVlLHRoaXMuY2hhbmdlU3ViamVjdC5uZXh0KHRoaXMpfWdldFZhbHVlKCl7cmV0dXJuIHRoaXMudmFsdWV9c2V0VmFsdWUoTCl7dGhpcy52YWx1ZT1MfWFzeW5jIHRvZ2dsZVBhc3N3b3JkVmlldygpe3RoaXMuc2hvd1Bhc3N3b3JkQm9vbD0hdGhpcy5zaG93UGFzc3dvcmRCb29sfWFzeW5jIGZvY3VzKCl7dGhpcy5zaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3IoImlucHV0IikuZm9jdXMoKX1hc3luYyBibHVyKCl7dGhpcy5zaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3IoImlucHV0IikuYmx1cigpfWNvbnN0cnVjdG9yKCl7c3VwZXIoLi4uYXJndW1lbnRzKSxVYSh0aGlzLGspfXN0YXRpY3tVYShpLGEpfX07cmV0dXJuIE49aX0pKCl9KTt2YXIgSjl0LGV1dD1iKCgpPT57dWUoKTt4MSgpO20yKCk7Sjl0PSgpPT53YAogIDxkZWVzLWRlbW93cmFwcGVyPgogICAgPHN0eWxlPgogICAgICAke1FgCiAgICAgICAgLmRlbW8tY29udGFpbmVyIHsKICAgICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICAgICAgZ2FwOiAyNHB4OwogICAgICAgICAgcGFkZGluZzogMjRweDsKICAgICAgICAgIG1heC13aWR0aDogMTIwMHB4OwogICAgICAgICAgbWFyZ2luOiAwIGF1dG87CiAgICAgICAgfQogICAgICAgIAogICAgICAgIC5wcm9kdWN0LWdyaWQgewogICAgICAgICAgZGlzcGxheTogZ3JpZDsKICAgICAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KGF1dG8tZmlsbCwgbWlubWF4KDI4MHB4LCAxZnIpKTsKICAgICAgICAgIGdhcDogMjBweDsKICAgICAgICB9CgogICAgICAgIC5jYXJ0LXN1bW1hcnkgewogICAgICAgICAgbWFyZ2luLXRvcDogMjRweDsKICAgICAgICAgIHBhZGRpbmc6IDIwcHg7CiAgICAgICAgICBiYWNrZ3JvdW5kOiAke3AuYmRUaGVtZSgiaHNsKDIxMCA0MCUgOTYuMSUpIiwiaHNsKDIxNSAyMC4yJSAxNi44JSkiKX07CiAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAke3AuYmRUaGVtZSgiaHNsKDIxNC4zIDMxLjglIDkxLjQlKSIsImhzbCgyMTUgMjAuMiUgMjEuOCUpIil9OwogICAgICAgICAgYm9yZGVyLXJhZGl1czogOHB4OwogICAgICAgIH0KCiAgICAgICAgLmNhcnQtc3VtbWFyeS10aXRsZSB7CiAgICAgICAgICBmb250LXNpemU6IDE4cHg7CiAgICAgICAgICBmb250LXdlaWdodDogNjAwOwogICAgICAgICAgbWFyZ2luLWJvdHRvbTogMTZweDsKICAgICAgICAgIGNvbG9yOiAke3AuYmRUaGVtZSgiaHNsKDAgMCUgOSUpIiwiaHNsKDAgMCUgOTUlKSIpfTsKICAgICAgICB9CgogICAgICAgIC5jYXJ0LWl0ZW0gewogICAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjsKICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgICBwYWRkaW5nOiA4cHggMDsKICAgICAgICAgIGZvbnQtc2l6ZTogMTRweDsKICAgICAgICAgIGNvbG9yOiAke3AuYmRUaGVtZSgiaHNsKDIxNS4zIDI1JSAyNi43JSkiLCJoc2woMjE3LjkgMTAuNiUgNzQuOSUpIil9OwogICAgICAgIH0KCiAgICAgICAgLmNhcnQtdG90YWwgewogICAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjsKICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgICBwYWRkaW5nLXRvcDogMTZweDsKICAgICAgICAgIG1hcmdpbi10b3A6IDE2cHg7CiAgICAgICAgICBib3JkZXItdG9wOiAycHggc29saWQgJHtwLmJkVGhlbWUoImhzbCgwIDAlIDg5LjglKSIsImhzbCgwIDAlIDE0LjklKSIpfTsKICAgICAgICAgIGZvbnQtc2l6ZTogMThweDsKICAgICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7CiAgICAgICAgICBjb2xvcjogJHtwLmJkVGhlbWUoImhzbCgwIDAlIDklKSIsImhzbCgwIDAlIDk1JSkiKX07CiAgICAgICAgfQoKICAgICAgICAuc2VsZWN0ZWQtcHJvZHVjdHMgewogICAgICAgICAgcGFkZGluZzogMTZweDsKICAgICAgICAgIGJhY2tncm91bmQ6ICR7cC5iZFRoZW1lKCJoc2woMjEwIDQwJSA5Ni4xJSkiLCJoc2woMjE1IDIwLjIlIDE2LjglKSIpfTsKICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDZweDsKICAgICAgICAgIGZvbnQtc2l6ZTogMTRweDsKICAgICAgICAgIGNvbG9yOiAke3AuYmRUaGVtZSgiaHNsKDIxNS4zIDI1JSAyNi43JSkiLCJoc2woMjE3LjkgMTAuNiUgNzQuOSUpIil9OwogICAgICAgIH0KICAgICAgYH0KICAgIDwvc3R5bGU+CiAgICAKICAgIDxkaXYgY2xhc3M9ImRlbW8tY29udGFpbmVyIj4KICAgICAgPGRlZXMtcGFuZWwgLnRpdGxlPSR7IkJhc2ljIFByb2R1Y3QgQ2FyZHMifSAuc3VidGl0bGU9JHsiU2ltcGxlIHByb2R1Y3QgZGlzcGxheSB3aXRoIHZhcmlvdXMgY29uZmlndXJhdGlvbnMifT4KICAgICAgICA8ZGl2IGNsYXNzPSJwcm9kdWN0LWdyaWQiPgogICAgICAgICAgPGRlZXMtc2hvcHBpbmctcHJvZHVjdGNhcmQKICAgICAgICAgICAgLnByb2R1Y3REYXRhPSR7e25hbWU6IldpcmVsZXNzIEJsdWV0b290aCBIZWFkcGhvbmVzIixjYXRlZ29yeToiQXVkaW8iLGRlc2NyaXB0aW9uOiJQcmVtaXVtIHNvdW5kIHF1YWxpdHkgd2l0aCBhY3RpdmUgbm9pc2UgY2FuY2VsbGF0aW9uIixwcmljZToxNDkuOTksb3JpZ2luYWxQcmljZToxOTkuOTksaWNvbk5hbWU6Imx1Y2lkZTpoZWFkcGhvbmVzIn19CiAgICAgICAgICAgIC5xdWFudGl0eT0kezF9CiAgICAgICAgICA+PC9kZWVzLXNob3BwaW5nLXByb2R1Y3RjYXJkPgoKICAgICAgICAgIDxkZWVzLXNob3BwaW5nLXByb2R1Y3RjYXJkCiAgICAgICAgICAgIC5wcm9kdWN0RGF0YT0ke3tuYW1lOiJTbWFydCBXYXRjaCBTZXJpZXMgNyIsY2F0ZWdvcnk6IldlYXJhYmxlcyIsZGVzY3JpcHRpb246IlRyYWNrIHlvdXIgZml0bmVzcyBhbmQgc3RheSBjb25uZWN0ZWQgb24gdGhlIGdvIixwcmljZTozOTksaWNvbk5hbWU6Imx1Y2lkZTp3YXRjaCJ9fQogICAgICAgICAgICAucXVhbnRpdHk9JHsxfQogICAgICAgICAgPjwvZGVlcy1zaG9wcGluZy1wcm9kdWN0Y2FyZD4KCiAgICAgICAgICA8ZGVlcy1zaG9wcGluZy1wcm9kdWN0Y2FyZAogICAgICAgICAgICAucHJvZHVjdERhdGE9JHt7bmFtZToiVVNCLUMgSHViIixjYXRlZ29yeToiQWNjZXNzb3JpZXMiLHByaWNlOjQ5Ljk5LGljb25OYW1lOiJsdWNpZGU6dXNiIixpblN0b2NrOiExfX0KICAgICAgICAgICAgLnF1YW50aXR5PSR7MH0KICAgICAgICAgID48L2RlZXMtc2hvcHBpbmctcHJvZHVjdGNhcmQ+CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGVlcy1wYW5lbD4KCiAgICAgIDxkZWVzLXBhbmVsIC50aXRsZT0keyJJbnRlcmFjdGl2ZSBTaG9wcGluZyBDYXJ0In0gLnN1YnRpdGxlPSR7IlByb2R1Y3QgY2FyZHMgd2l0aCBkeW5hbWljIGNhcnQgY2FsY3VsYXRpb24ifSAucnVuQWZ0ZXJSZW5kZXI9JHthc3luYyB0PT57bGV0IGU9W3tpZDoibGFwdG9wIixlbGVtZW50Om51bGwsZGF0YTp7bmFtZTonTWFjQm9vayBQcm8gMTQiJyxjYXRlZ29yeToiQ29tcHV0ZXJzIixkZXNjcmlwdGlvbjoiTTMgUHJvIGNoaXAgd2l0aCAxOEdCIFJBTSIscHJpY2U6MTk5OSxvcmlnaW5hbFByaWNlOjIxOTksaWNvbk5hbWU6Imx1Y2lkZTpsYXB0b3AifX0se2lkOiJpcGFkIixlbGVtZW50Om51bGwsZGF0YTp7bmFtZToiaVBhZCBBaXIiLGNhdGVnb3J5OiJUYWJsZXRzIixkZXNjcmlwdGlvbjonMTAuOSIgTGlxdWlkIFJldGluYSBkaXNwbGF5JyxwcmljZTo1OTksaWNvbk5hbWU6Imx1Y2lkZTp0YWJsZXQifX0se2lkOiJrZXlib2FyZCIsZWxlbWVudDpudWxsLGRhdGE6e25hbWU6Ik1hZ2ljIEtleWJvYXJkIixjYXRlZ29yeToiQWNjZXNzb3JpZXMiLGRlc2NyaXB0aW9uOiJXaXJlbGVzcyBrZXlib2FyZCB3aXRoIFRvdWNoIElEIixwcmljZToxNDksaWNvbk5hbWU6Imx1Y2lkZTprZXlib2FyZCJ9fV0sYT0oKT0+e2xldCBpPTAscj1bXTtlLmZvckVhY2gobj0+e2xldCBvPXQucXVlcnlTZWxlY3RvcihgIyR7bi5pZH1gKTtpZihvJiZvLnF1YW50aXR5PjApe2xldCBkPW4uZGF0YS5wcmljZSpvLnF1YW50aXR5O2krPWQsci5wdXNoKGAKICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNhcnQtaXRlbSI+CiAgICAgICAgICAgICAgICAgIDxzcGFuPiR7bi5kYXRhLm5hbWV9ICgke28ucXVhbnRpdHl9KTwvc3Bhbj4KICAgICAgICAgICAgICAgICAgPHNwYW4+JCR7ZC50b0ZpeGVkKDIpfTwvc3Bhbj4KICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgIGApfX0pO2xldCBzPXQucXVlcnlTZWxlY3RvcigiI2ludGVyYWN0aXZlLWNhcnQtc3VtbWFyeSIpO3MmJihzLmlubmVySFRNTD1gCiAgICAgICAgICAgICAgJHtyLmpvaW4oIiIpfQogICAgICAgICAgICAgICR7ci5sZW5ndGg9PT0wPyc8ZGl2IGNsYXNzPSJjYXJ0LWl0ZW0iIHN0eWxlPSJ0ZXh0LWFsaWduOiBjZW50ZXI7IGNvbG9yOiAjOTk5OyI+WW91ciBjYXJ0IGlzIGVtcHR5PC9kaXY+JzoiIn0KICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJjYXJ0LXRvdGFsIj4KICAgICAgICAgICAgICAgIDxzcGFuPlRvdGFsPC9zcGFuPgogICAgICAgICAgICAgICAgPHNwYW4+JCR7aS50b0ZpeGVkKDIpfTwvc3Bhbj4KICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgYCl9O3NldFRpbWVvdXQoYSwxMDApLHQucXVlcnlTZWxlY3RvckFsbCgiZGVlcy1zaG9wcGluZy1wcm9kdWN0Y2FyZCIpLmZvckVhY2goaT0+e2kuYWRkRXZlbnRMaXN0ZW5lcigicXVhbnRpdHlDaGFuZ2UiLGEpfSl9fT4KICAgICAgICA8ZGl2IGNsYXNzPSJwcm9kdWN0LWdyaWQiPgogICAgICAgICAgPGRlZXMtc2hvcHBpbmctcHJvZHVjdGNhcmQKICAgICAgICAgICAgaWQ9ImxhcHRvcCIKICAgICAgICAgICAgLnByb2R1Y3REYXRhPSR7e25hbWU6J01hY0Jvb2sgUHJvIDE0IicsY2F0ZWdvcnk6IkNvbXB1dGVycyIsZGVzY3JpcHRpb246Ik0zIFBybyBjaGlwIHdpdGggMThHQiBSQU0iLHByaWNlOjE5OTksb3JpZ2luYWxQcmljZToyMTk5LGljb25OYW1lOiJsdWNpZGU6bGFwdG9wIn19CiAgICAgICAgICAgIC5xdWFudGl0eT0kezF9CiAgICAgICAgICA+PC9kZWVzLXNob3BwaW5nLXByb2R1Y3RjYXJkPgoKICAgICAgICAgIDxkZWVzLXNob3BwaW5nLXByb2R1Y3RjYXJkCiAgICAgICAgICAgIGlkPSJpcGFkIgogICAgICAgICAgICAucHJvZHVjdERhdGE9JHt7bmFtZToiaVBhZCBBaXIiLGNhdGVnb3J5OiJUYWJsZXRzIixkZXNjcmlwdGlvbjonMTAuOSIgTGlxdWlkIFJldGluYSBkaXNwbGF5JyxwcmljZTo1OTksaWNvbk5hbWU6Imx1Y2lkZTp0YWJsZXQifX0KICAgICAgICAgICAgLnF1YW50aXR5PSR7MH0KICAgICAgICAgID48L2RlZXMtc2hvcHBpbmctcHJvZHVjdGNhcmQ+CgogICAgICAgICAgPGRlZXMtc2hvcHBpbmctcHJvZHVjdGNhcmQKICAgICAgICAgICAgaWQ9ImtleWJvYXJkIgogICAgICAgICAgICAucHJvZHVjdERhdGE9JHt7bmFtZToiTWFnaWMgS2V5Ym9hcmQiLGNhdGVnb3J5OiJBY2Nlc3NvcmllcyIsZGVzY3JpcHRpb246IldpcmVsZXNzIGtleWJvYXJkIHdpdGggVG91Y2ggSUQiLHByaWNlOjE0OSxpY29uTmFtZToibHVjaWRlOmtleWJvYXJkIn19CiAgICAgICAgICAgIC5xdWFudGl0eT0kezJ9CiAgICAgICAgICA+PC9kZWVzLXNob3BwaW5nLXByb2R1Y3RjYXJkPgogICAgICAgIDwvZGl2PgoKICAgICAgICA8ZGl2IGNsYXNzPSJjYXJ0LXN1bW1hcnkiPgogICAgICAgICAgPGgzIGNsYXNzPSJjYXJ0LXN1bW1hcnktdGl0bGUiPlNob3BwaW5nIENhcnQ8L2gzPgogICAgICAgICAgPGRpdiBpZD0iaW50ZXJhY3RpdmUtY2FydC1zdW1tYXJ5Ij4KICAgICAgICAgICAgPCEtLSBEeW5hbWljYWxseSB1cGRhdGVkIC0tPgogICAgICAgICAgPC9kaXY+CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGVlcy1wYW5lbD4KCiAgICAgIDxkZWVzLXBhbmVsIC50aXRsZT0keyJTZWxlY3RhYmxlIFByb2R1Y3QgQ2FyZHMifSAuc3VidGl0bGU9JHsiQ2xpY2sgY2FyZHMgb3IgY2hlY2tib3hlcyB0byBzZWxlY3QgcHJvZHVjdHMifT4KICAgICAgICA8ZGl2IGNsYXNzPSJwcm9kdWN0LWdyaWQiPgogICAgICAgICAgPGRlZXMtc2hvcHBpbmctcHJvZHVjdGNhcmQKICAgICAgICAgICAgLnByb2R1Y3REYXRhPSR7e25hbWU6IlNvbnkgQWxwaGEgNyBJViIsY2F0ZWdvcnk6IkNhbWVyYXMiLGRlc2NyaXB0aW9uOiJGdWxsLWZyYW1lIG1pcnJvcmxlc3MgY2FtZXJhIixwcmljZToyNDk4LGljb25OYW1lOiJsdWNpZGU6Y2FtZXJhIn19CiAgICAgICAgICAgIC5zZWxlY3RhYmxlPSR7ITB9CiAgICAgICAgICAgIC5zaG93UXVhbnRpdHlTZWxlY3Rvcj0keyExfQogICAgICAgICAgICBAc2VsZWN0aW9uQ2hhbmdlPSR7dD0+e2xldCBlPWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoIiNzZWxlY3Rpb24tb3V0cHV0Iik7aWYoZSl7bGV0IGE9ZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgiZGVlcy1zaG9wcGluZy1wcm9kdWN0Y2FyZFtzZWxlY3RhYmxlXSIpLGk9W107YS5mb3JFYWNoKHI9PntyLnNlbGVjdGVkJiZpLnB1c2goci5wcm9kdWN0RGF0YS5uYW1lKX0pLGUudGV4dENvbnRlbnQ9aS5sZW5ndGg+MD9gU2VsZWN0ZWQ6ICR7aS5qb2luKCIsICIpfWA6Ik5vIHByb2R1Y3RzIHNlbGVjdGVkIn19fQogICAgICAgICAgPjwvZGVlcy1zaG9wcGluZy1wcm9kdWN0Y2FyZD4KCiAgICAgICAgICA8ZGVlcy1zaG9wcGluZy1wcm9kdWN0Y2FyZAogICAgICAgICAgICAucHJvZHVjdERhdGE9JHt7bmFtZToiREpJIE1pbmkgMyBQcm8iLGNhdGVnb3J5OiJEcm9uZXMiLGRlc2NyaXB0aW9uOiJMaWdodHdlaWdodCBkcm9uZSB3aXRoIDRLIGNhbWVyYSIscHJpY2U6NzU5LGljb25OYW1lOiJsdWNpZGU6cGxhbmUifX0KICAgICAgICAgICAgLnNlbGVjdGFibGU9JHshMH0KICAgICAgICAgICAgLnNob3dRdWFudGl0eVNlbGVjdG9yPSR7ITF9CiAgICAgICAgICAgIEBzZWxlY3Rpb25DaGFuZ2U9JHt0PT57bGV0IGU9ZG9jdW1lbnQucXVlcnlTZWxlY3RvcigiI3NlbGVjdGlvbi1vdXRwdXQiKTtpZihlKXtsZXQgYT1kb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCJkZWVzLXNob3BwaW5nLXByb2R1Y3RjYXJkW3NlbGVjdGFibGVdIiksaT1bXTthLmZvckVhY2gocj0+e3Iuc2VsZWN0ZWQmJmkucHVzaChyLnByb2R1Y3REYXRhLm5hbWUpfSksZS50ZXh0Q29udGVudD1pLmxlbmd0aD4wP2BTZWxlY3RlZDogJHtpLmpvaW4oIiwgIil9YDoiTm8gcHJvZHVjdHMgc2VsZWN0ZWQifX19CiAgICAgICAgICA+PC9kZWVzLXNob3BwaW5nLXByb2R1Y3RjYXJkPgoKICAgICAgICAgIDxkZWVzLXNob3BwaW5nLXByb2R1Y3RjYXJkCiAgICAgICAgICAgIC5wcm9kdWN0RGF0YT0ke3tuYW1lOiJHb1BybyBIRVJPMTIiLGNhdGVnb3J5OiJBY3Rpb24gQ2FtZXJhcyIsZGVzY3JpcHRpb246IjUuM0sgdmlkZW8gd2l0aCBIeXBlclNtb290aCA2LjAiLHByaWNlOjM5OSxvcmlnaW5hbFByaWNlOjQ0OSxpY29uTmFtZToibHVjaWRlOnZpZGVvIn19CiAgICAgICAgICAgIC5zZWxlY3RhYmxlPSR7ITB9CiAgICAgICAgICAgIC5zaG93UXVhbnRpdHlTZWxlY3Rvcj0keyExfQogICAgICAgICAgICBAc2VsZWN0aW9uQ2hhbmdlPSR7dD0+e2xldCBlPWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoIiNzZWxlY3Rpb24tb3V0cHV0Iik7aWYoZSl7bGV0IGE9ZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgiZGVlcy1zaG9wcGluZy1wcm9kdWN0Y2FyZFtzZWxlY3RhYmxlXSIpLGk9W107YS5mb3JFYWNoKHI9PntyLnNlbGVjdGVkJiZpLnB1c2goci5wcm9kdWN0RGF0YS5uYW1lKX0pLGUudGV4dENvbnRlbnQ9aS5sZW5ndGg+MD9gU2VsZWN0ZWQ6ICR7aS5qb2luKCIsICIpfWA6Ik5vIHByb2R1Y3RzIHNlbGVjdGVkIn19fQogICAgICAgICAgPjwvZGVlcy1zaG9wcGluZy1wcm9kdWN0Y2FyZD4KICAgICAgICA8L2Rpdj4KICAgICAgICAKICAgICAgICA8ZGl2IGNsYXNzPSJzZWxlY3RlZC1wcm9kdWN0cyIgaWQ9InNlbGVjdGlvbi1vdXRwdXQiIHN0eWxlPSJtYXJnaW4tdG9wOiAxNnB4OyI+CiAgICAgICAgICBObyBwcm9kdWN0cyBzZWxlY3RlZAogICAgICAgIDwvZGl2PgogICAgICA8L2RlZXMtcGFuZWw+CgogICAgICA8ZGVlcy1wYW5lbCAudGl0bGU9JHsiUHJvZHVjdCBWYXJpYXRpb25zIn0gLnN1YnRpdGxlPSR7IkRpZmZlcmVudCBzdGF0ZXMgYW5kIGNvbmZpZ3VyYXRpb25zIn0+CiAgICAgICAgPGRpdiBjbGFzcz0icHJvZHVjdC1ncmlkIj4KICAgICAgICAgIDxkZWVzLXNob3BwaW5nLXByb2R1Y3RjYXJkCiAgICAgICAgICAgIC5wcm9kdWN0RGF0YT0ke3tuYW1lOiJMaW1pdGVkIEVkaXRpb24gU25lYWtlcnMiLGNhdGVnb3J5OiJGb290d2VhciIsZGVzY3JpcHRpb246IkV4Y2x1c2l2ZSBjb2xvcndheSAtIE9ubHkgNTAwIHBhaXJzIixwcmljZToyOTksaWNvbk5hbWU6Imx1Y2lkZTpmb290cHJpbnRzIixpblN0b2NrOiExLHN0b2NrVGV4dDoiU29sZCBPdXQifX0KICAgICAgICAgICAgLnF1YW50aXR5PSR7MH0KICAgICAgICAgID48L2RlZXMtc2hvcHBpbmctcHJvZHVjdGNhcmQ+CgogICAgICAgICAgPGRlZXMtc2hvcHBpbmctcHJvZHVjdGNhcmQKICAgICAgICAgICAgLnByb2R1Y3REYXRhPSR7e25hbWU6Ik1pbmltYWxpc3QgV2FsbGV0IixwcmljZTozOS45OSxpY29uTmFtZToibHVjaWRlOndhbGxldCJ9fQogICAgICAgICAgICAucXVhbnRpdHk9JHsxfQogICAgICAgICAgPjwvZGVlcy1zaG9wcGluZy1wcm9kdWN0Y2FyZD4KCiAgICAgICAgICA8ZGVlcy1zaG9wcGluZy1wcm9kdWN0Y2FyZAogICAgICAgICAgICAucHJvZHVjdERhdGE9JHt7bmFtZToiUHJlbWl1bSBDb2ZmZWUgQmVhbnMiLGNhdGVnb3J5OiJGb29kICYgQmV2ZXJhZ2UiLGRlc2NyaXB0aW9uOiJTaW5nbGUgb3JpZ2luLCBtZWRpdW0gcm9hc3QiLHByaWNlOjE4LjUsaWNvbk5hbWU6Imx1Y2lkZTpjb2ZmZWUiLGN1cnJlbmN5OiJcdTIwQUMifX0KICAgICAgICAgICAgLnF1YW50aXR5PSR7Mn0KICAgICAgICAgID48L2RlZXMtc2hvcHBpbmctcHJvZHVjdGNhcmQ+CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGVlcy1wYW5lbD4KICAgIDwvZGl2PgogIDwvZGVlcy1kZW1vd3JhcHBlcj4KYH0pO3ZhciAkbCxHaSx0dXQsRnE9YigoKT0+e3VlKCk7ZXV0KCk7cWUoKTskbD1mdW5jdGlvbih0LGUsYSxpLHIscyl7ZnVuY3Rpb24gbih4KXtpZih4IT09dm9pZCAwJiZ0eXBlb2YgeCE9ImZ1bmN0aW9uIil0aHJvdyBuZXcgVHlwZUVycm9yKCJGdW5jdGlvbiBleHBlY3RlZCIpO3JldHVybiB4fWZvcih2YXIgbz1pLmtpbmQsZD1vPT09ImdldHRlciI/ImdldCI6bz09PSJzZXR0ZXIiPyJzZXQiOiJ2YWx1ZSIsYz0hZSYmdD9pLnN0YXRpYz90OnQucHJvdG90eXBlOm51bGwsaD1lfHwoYz9PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGMsaS5uYW1lKTp7fSksbCxmPSExLGc9YS5sZW5ndGgtMTtnPj0wO2ctLSl7dmFyIHk9e307Zm9yKHZhciB2IGluIGkpeVt2XT12PT09ImFjY2VzcyI/e306aVt2XTtmb3IodmFyIHYgaW4gaS5hY2Nlc3MpeS5hY2Nlc3Nbdl09aS5hY2Nlc3Nbdl07eS5hZGRJbml0aWFsaXplcj1mdW5jdGlvbih4KXtpZihmKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBhZGQgaW5pdGlhbGl6ZXJzIGFmdGVyIGRlY29yYXRpb24gaGFzIGNvbXBsZXRlZCIpO3MucHVzaChuKHh8fG51bGwpKX07dmFyIG09KDAsYVtnXSkobz09PSJhY2Nlc3NvciI/e2dldDpoLmdldCxzZXQ6aC5zZXR9OmhbZF0seSk7aWYobz09PSJhY2Nlc3NvciIpe2lmKG09PT12b2lkIDApY29udGludWU7aWYobT09PW51bGx8fHR5cGVvZiBtIT0ib2JqZWN0Iil0aHJvdyBuZXcgVHlwZUVycm9yKCJPYmplY3QgZXhwZWN0ZWQiKTsobD1uKG0uZ2V0KSkmJihoLmdldD1sKSwobD1uKG0uc2V0KSkmJihoLnNldD1sKSwobD1uKG0uaW5pdCkpJiZyLnVuc2hpZnQobCl9ZWxzZShsPW4obSkpJiYobz09PSJmaWVsZCI/ci51bnNoaWZ0KGwpOmhbZF09bCl9YyYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGMsaS5uYW1lLGgpLGY9ITB9LEdpPWZ1bmN0aW9uKHQsZSxhKXtmb3IodmFyIGk9YXJndW1lbnRzLmxlbmd0aD4yLHI9MDtyPGUubGVuZ3RoO3IrKylhPWk/ZVtyXS5jYWxsKHQsYSk6ZVtyXS5jYWxsKHQpO3JldHVybiBpP2E6dm9pZCAwfSx0dXQ9KCgpPT57bGV0IHQ9W3BlKCJkZWVzLXNob3BwaW5nLXByb2R1Y3RjYXJkIildLGUsYT1bXSxpLHI9eGUscyxuPVtdLG89W10sZCxjPVtdLGg9W10sbCxmPVtdLGc9W10seSx2PVtdLG09W10seCxNPVtdLFM9W107dmFyIEY9Y2xhc3MgZXh0ZW5kcyBye3N0YXRpY3tpPXRoaXN9c3RhdGlje2xldCBfPXR5cGVvZiBTeW1ib2w9PSJmdW5jdGlvbiImJlN5bWJvbC5tZXRhZGF0YT9PYmplY3QuY3JlYXRlKHJbU3ltYm9sLm1ldGFkYXRhXT8/bnVsbCk6dm9pZCAwO3M9W0koe3R5cGU6T2JqZWN0fSldLGQ9W0koe3R5cGU6TnVtYmVyfSldLGw9W0koe3R5cGU6Qm9vbGVhbn0pXSx5PVtJKHt0eXBlOkJvb2xlYW59KV0seD1bSSh7dHlwZTpCb29sZWFufSldLCRsKHRoaXMsbnVsbCxzLHtraW5kOiJhY2Nlc3NvciIsbmFtZToicHJvZHVjdERhdGEiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOms9PiJwcm9kdWN0RGF0YSJpbiBrLGdldDprPT5rLnByb2R1Y3REYXRhLHNldDooayxOKT0+e2sucHJvZHVjdERhdGE9Tn19LG1ldGFkYXRhOl99LG4sbyksJGwodGhpcyxudWxsLGQse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJxdWFudGl0eSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6az0+InF1YW50aXR5ImluIGssZ2V0Oms9PmsucXVhbnRpdHksc2V0OihrLE4pPT57ay5xdWFudGl0eT1OfX0sbWV0YWRhdGE6X30sYyxoKSwkbCh0aGlzLG51bGwsbCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InNob3dRdWFudGl0eVNlbGVjdG9yIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczprPT4ic2hvd1F1YW50aXR5U2VsZWN0b3IiaW4gayxnZXQ6az0+ay5zaG93UXVhbnRpdHlTZWxlY3RvcixzZXQ6KGssTik9PntrLnNob3dRdWFudGl0eVNlbGVjdG9yPU59fSxtZXRhZGF0YTpffSxmLGcpLCRsKHRoaXMsbnVsbCx5LHtraW5kOiJhY2Nlc3NvciIsbmFtZToic2VsZWN0YWJsZSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6az0+InNlbGVjdGFibGUiaW4gayxnZXQ6az0+ay5zZWxlY3RhYmxlLHNldDooayxOKT0+e2suc2VsZWN0YWJsZT1OfX0sbWV0YWRhdGE6X30sdixtKSwkbCh0aGlzLG51bGwseCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InNlbGVjdGVkIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczprPT4ic2VsZWN0ZWQiaW4gayxnZXQ6az0+ay5zZWxlY3RlZCxzZXQ6KGssTik9PntrLnNlbGVjdGVkPU59fSxtZXRhZGF0YTpffSxNLFMpLCRsKG51bGwsZT17dmFsdWU6aX0sdCx7a2luZDoiY2xhc3MiLG5hbWU6aS5uYW1lLG1ldGFkYXRhOl99LG51bGwsYSksRj1pPWUudmFsdWUsXyYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGksU3ltYm9sLm1ldGFkYXRhLHtlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMCx2YWx1ZTpffSl9c3RhdGljIGRlbW89Sjl0O3N0YXRpYyBkZW1vR3JvdXBzPVsiU2ltcGxlIl07I2U9R2kodGhpcyxuLHtuYW1lOiJQcm9kdWN0IE5hbWUiLHByaWNlOjB9KTtnZXQgcHJvZHVjdERhdGEoKXtyZXR1cm4gdGhpcy4jZX1zZXQgcHJvZHVjdERhdGEoXyl7dGhpcy4jZT1ffSN0PShHaSh0aGlzLG8pLEdpKHRoaXMsYywwKSk7Z2V0IHF1YW50aXR5KCl7cmV0dXJuIHRoaXMuI3R9c2V0IHF1YW50aXR5KF8pe3RoaXMuI3Q9X30jYT0oR2kodGhpcyxoKSxHaSh0aGlzLGYsITApKTtnZXQgc2hvd1F1YW50aXR5U2VsZWN0b3IoKXtyZXR1cm4gdGhpcy4jYX1zZXQgc2hvd1F1YW50aXR5U2VsZWN0b3IoXyl7dGhpcy4jYT1ffSNpPShHaSh0aGlzLGcpLEdpKHRoaXMsdiwhMSkpO2dldCBzZWxlY3RhYmxlKCl7cmV0dXJuIHRoaXMuI2l9c2V0IHNlbGVjdGFibGUoXyl7dGhpcy4jaT1ffSNyPShHaSh0aGlzLG0pLEdpKHRoaXMsTSwhMSkpO2dldCBzZWxlY3RlZCgpe3JldHVybiB0aGlzLiNyfXNldCBzZWxlY3RlZChfKXt0aGlzLiNyPV99c3RhdGljIHN0eWxlcz1bQ2UscC5kZWZhdWx0U3R5bGVzLFFgCiAgICAgIC8qIFRPRE86IE1pZ3JhdGUgaGFyZGNvZGVkIHZhbHVlcyB0byAtLWRlZXMtKiBDU1MgdmFyaWFibGVzICovCiAgICAgIDpob3N0IHsKICAgICAgICBkaXNwbGF5OiBibG9jazsKICAgICAgfQoKICAgICAgLnByb2R1Y3QtY2FyZCB7CiAgICAgICAgYmFja2dyb3VuZDogJHtwLmJkVGhlbWUoImhzbCgwIDAlIDEwMCUpIiwiaHNsKDIxNSAyMC4yJSAxMS44JSkiKX07CiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHtwLmJkVGhlbWUoImhzbCgwIDAlIDg5LjglKSIsImhzbCgwIDAlIDE0LjklKSIpfTsKICAgICAgICBib3JkZXItcmFkaXVzOiA4cHg7CiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC4ycyBlYXNlOwogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgICBoZWlnaHQ6IDEwMCU7CiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICB9CgogICAgICAucHJvZHVjdC1jYXJkOmhvdmVyIHsKICAgICAgICBib3JkZXItY29sb3I6ICR7cC5iZFRoZW1lKCJoc2woMCAwJSA3OS44JSkiLCJoc2woMCAwJSAyMC45JSkiKX07CiAgICAgICAgYm94LXNoYWRvdzogMCA0cHggNnB4IC0xcHggaHNsKDAgMCUgMCUgLyAwLjEpLCAwIDJweCA0cHggLTJweCBoc2woMCAwJSAwJSAvIDAuMSk7CiAgICAgIH0KCiAgICAgIC5wcm9kdWN0LWNhcmQuc2VsZWN0YWJsZSB7CiAgICAgICAgY3Vyc29yOiBwb2ludGVyOwogICAgICB9CgogICAgICAucHJvZHVjdC1jYXJkLnNlbGVjdGVkIHsKICAgICAgICBib3JkZXItY29sb3I6ICR7cC5iZFRoZW1lKCJoc2woMjE3LjIgOTEuMiUgNTkuOCUpIiwiaHNsKDIxMy4xIDkzLjklIDY3LjglKSIpfTsKICAgICAgICBib3gtc2hhZG93OiAwIDAgMCAzcHggJHtwLmJkVGhlbWUoImhzbCgyMTcuMiA5MS4yJSA1OS44JSAvIDAuMSkiLCJoc2woMjEzLjEgOTMuOSUgNjcuOCUgLyAwLjEpIil9OwogICAgICB9CgogICAgICAucHJvZHVjdC1pbWFnZSB7CiAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgICAgaGVpZ2h0OiAxODBweDsKICAgICAgICBiYWNrZ3JvdW5kOiAke3AuYmRUaGVtZSgiaHNsKDIxMCA0MCUgOTYuMSUpIiwiaHNsKDIxNSAyMC4yJSAxNi44JSkiKX07CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOwogICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgICB9CgogICAgICAucHJvZHVjdC1pbWFnZSBpbWcgewogICAgICAgIHdpZHRoOiAxMDAlOwogICAgICAgIGhlaWdodDogMTAwJTsKICAgICAgICBvYmplY3QtZml0OiBjb3ZlcjsKICAgICAgfQoKICAgICAgLnByb2R1Y3QtaW1hZ2UgZGVlcy1pY29uIHsKICAgICAgICBmb250LXNpemU6IDQ4cHg7CiAgICAgICAgY29sb3I6ICR7cC5iZFRoZW1lKCJoc2woMjE1IDIwLjIlIDY1LjElKSIsImhzbCgyMTUgMjAuMiUgMzUuMSUpIil9OwogICAgICB9CgogICAgICAuc2VsZWN0aW9uLWNoZWNrYm94IHsKICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgICAgdG9wOiAxMnB4OwogICAgICAgIHJpZ2h0OiAxMnB4OwogICAgICAgIHdpZHRoOiAyMHB4OwogICAgICAgIGhlaWdodDogMjBweDsKICAgICAgICBiYWNrZ3JvdW5kOiAke3AuYmRUaGVtZSgiaHNsKDAgMCUgMTAwJSkiLCJoc2woMjE1IDMwJSA2LjglKSIpfTsKICAgICAgICBib3JkZXI6IDJweCBzb2xpZCAke3AuYmRUaGVtZSgiaHNsKDIxNSAyMC4yJSA2NS4xJSkiLCJoc2woMjE1IDIwLjIlIDM1LjElKSIpfTsKICAgICAgICBib3JkZXItcmFkaXVzOiA0cHg7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOwogICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjJzIGVhc2U7CiAgICAgICAgY3Vyc29yOiBwb2ludGVyOwogICAgICB9CgogICAgICAuc2VsZWN0aW9uLWNoZWNrYm94LmNoZWNrZWQgewogICAgICAgIGJhY2tncm91bmQ6ICR7cC5iZFRoZW1lKCJoc2woMjE3LjIgOTEuMiUgNTkuOCUpIiwiaHNsKDIxMy4xIDkzLjklIDY3LjglKSIpfTsKICAgICAgICBib3JkZXItY29sb3I6ICR7cC5iZFRoZW1lKCJoc2woMjE3LjIgOTEuMiUgNTkuOCUpIiwiaHNsKDIxMy4xIDkzLjklIDY3LjglKSIpfTsKICAgICAgfQoKICAgICAgLnNlbGVjdGlvbi1jaGVja2JveCBkZWVzLWljb24gewogICAgICAgIGNvbG9yOiB3aGl0ZTsKICAgICAgICBmb250LXNpemU6IDEycHg7CiAgICAgICAgb3BhY2l0eTogMDsKICAgICAgICB0cmFuc2Zvcm06IHNjYWxlKDApOwogICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjJzIGVhc2U7CiAgICAgIH0KCiAgICAgIC5zZWxlY3Rpb24tY2hlY2tib3guY2hlY2tlZCBkZWVzLWljb24gewogICAgICAgIG9wYWNpdHk6IDE7CiAgICAgICAgdHJhbnNmb3JtOiBzY2FsZSgxKTsKICAgICAgfQoKICAgICAgLnByb2R1Y3QtY29udGVudCB7CiAgICAgICAgcGFkZGluZzogMTZweDsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgICAgZ2FwOiAxMnB4OwogICAgICAgIGZsZXg6IDE7CiAgICAgIH0KICAgICAgCiAgICAgIC5wcm9kdWN0LWhlYWRlciB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICAgIGdhcDogNHB4OwogICAgICB9CgogICAgICAucHJvZHVjdC1jYXRlZ29yeSB7CiAgICAgICAgZm9udC1zaXplOiAxMnB4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7CiAgICAgICAgY29sb3I6ICR7cC5iZFRoZW1lKCJoc2woMjE1LjQgMTYuMyUgNTYuOSUpIiwiaHNsKDIxNSAyMC4yJSA1NS4xJSkiKX07CiAgICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTsKICAgICAgICBsZXR0ZXItc3BhY2luZzogMC4wNWVtOwogICAgICAgIGxpbmUtaGVpZ2h0OiAxLjM7CiAgICAgIH0KICAgICAgCiAgICAgIC5wcm9kdWN0LW5hbWUgewogICAgICAgIGZvbnQtc2l6ZTogMTZweDsKICAgICAgICBmb250LXdlaWdodDogNjAwOwogICAgICAgIGNvbG9yOiAke3AuYmRUaGVtZSgiaHNsKDAgMCUgOSUpIiwiaHNsKDAgMCUgOTUlKSIpfTsKICAgICAgICBsaW5lLWhlaWdodDogMS40OwogICAgICB9CgogICAgICAucHJvZHVjdC1kZXNjcmlwdGlvbiB7CiAgICAgICAgZm9udC1zaXplOiAxM3B4OwogICAgICAgIGNvbG9yOiAke3AuYmRUaGVtZSgiaHNsKDIxNS40IDE2LjMlIDQ2LjklKSIsImhzbCgyMTUgMjAuMiUgNjUuMSUpIil9OwogICAgICAgIGxpbmUtaGVpZ2h0OiAxLjU7CiAgICAgICAgZmxleDogMTsKICAgICAgfQogICAgICAKICAgICAgLnByb2R1Y3QtZm9vdGVyIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuOwogICAgICAgIGdhcDogMTZweDsKICAgICAgICBwYWRkaW5nLXRvcDogMTJweDsKICAgICAgICBib3JkZXItdG9wOiAxcHggc29saWQgJHtwLmJkVGhlbWUoImhzbCgwIDAlIDg5LjglKSIsImhzbCgwIDAlIDE0LjklKSIpfTsKICAgICAgfQoKICAgICAgLnByb2R1Y3QtcHJpY2UgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgICBnYXA6IDJweDsKICAgICAgfQoKICAgICAgLnByaWNlLWN1cnJlbnQgewogICAgICAgIGZvbnQtc2l6ZTogMjBweDsKICAgICAgICBmb250LXdlaWdodDogNjAwOwogICAgICAgIGNvbG9yOiAke3AuYmRUaGVtZSgiaHNsKDAgMCUgOSUpIiwiaHNsKDAgMCUgOTUlKSIpfTsKICAgICAgfQoKICAgICAgLnByaWNlLW9yaWdpbmFsIHsKICAgICAgICBmb250LXNpemU6IDE0cHg7CiAgICAgICAgY29sb3I6ICR7cC5iZFRoZW1lKCJoc2woMjE1LjQgMTYuMyUgNTYuOSUpIiwiaHNsKDIxNSAyMC4yJSA1NS4xJSkiKX07CiAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBsaW5lLXRocm91Z2g7CiAgICAgIH0KCiAgICAgIC5zdG9jay1zdGF0dXMgewogICAgICAgIGRpc3BsYXk6IGlubGluZS1mbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgZ2FwOiA0cHg7CiAgICAgICAgZm9udC1zaXplOiAxMnB4OwogICAgICAgIG1hcmdpbi10b3A6IDhweDsKICAgICAgfQoKICAgICAgLnN0b2NrLXN0YXR1cy5pbi1zdG9jayB7CiAgICAgICAgY29sb3I6ICR7cC5iZFRoZW1lKCJoc2woMTQyLjEgNzAuNiUgNDUuMyUpIiwiaHNsKDE0Mi4xIDc2LjIlIDM2LjMlKSIpfTsKICAgICAgfQoKICAgICAgLnN0b2NrLXN0YXR1cy5vdXQtb2Ytc3RvY2sgewogICAgICAgIGNvbG9yOiAke3AuYmRUaGVtZSgiaHNsKDAgNzIuMiUgNTAuNiUpIiwiaHNsKDAgNjIuOCUgMzAuNiUpIil9OwogICAgICB9CgogICAgICAuc3RvY2stc3RhdHVzIGRlZXMtaWNvbiB7CiAgICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgICB9CiAgICBgXTtyZW5kZXIoKXtsZXR7bmFtZTpfLGNhdGVnb3J5OmssZGVzY3JpcHRpb246TixwcmljZTpMLG9yaWdpbmFsUHJpY2U6QSxjdXJyZW5jeTpxPSIkIixpblN0b2NrOkM9ITAsc3RvY2tUZXh0Ono9Qz8iSW4gU3RvY2siOiJPdXQgb2YgU3RvY2siLGltYWdlVXJsOkUsaWNvbk5hbWU6VD0ibHVjaWRlOnBhY2thZ2UifT10aGlzLnByb2R1Y3REYXRhLCQ9Vj0+YCR7cX0ke1YudG9GaXhlZCgyKX1gO3JldHVybiB3YAogICAgICA8ZGl2IAogICAgICAgIGNsYXNzPSJwcm9kdWN0LWNhcmQgJHt0aGlzLnNlbGVjdGFibGU/InNlbGVjdGFibGUiOiIifSAke3RoaXMuc2VsZWN0ZWQ/InNlbGVjdGVkIjoiIn0iCiAgICAgICAgQGNsaWNrPSR7dGhpcy5oYW5kbGVDYXJkQ2xpY2t9CiAgICAgID4KICAgICAgICA8ZGl2IGNsYXNzPSJwcm9kdWN0LWltYWdlIj4KICAgICAgICAgICR7RT93YAogICAgICAgICAgICA8aW1nIHNyYz0iJHtFfSIgYWx0PSIke199Ij4KICAgICAgICAgIGA6d2AKICAgICAgICAgICAgPGRlZXMtaWNvbiAuaWNvbj0ke1R9PjwvZGVlcy1pY29uPgogICAgICAgICAgYH0KICAgICAgICAgICR7dGhpcy5zZWxlY3RhYmxlP3dgCiAgICAgICAgICAgIDxkaXYgCiAgICAgICAgICAgICAgY2xhc3M9InNlbGVjdGlvbi1jaGVja2JveCAke3RoaXMuc2VsZWN0ZWQ/ImNoZWNrZWQiOiIifSIKICAgICAgICAgICAgICBAY2xpY2s9JHtWPT57Vi5zdG9wUHJvcGFnYXRpb24oKSx0aGlzLmhhbmRsZVNlbGVjdGlvblRvZ2dsZSgpfX0KICAgICAgICAgICAgPgogICAgICAgICAgICAgIDxkZWVzLWljb24gLmljb249JHsibHVjaWRlOmNoZWNrIn0+PC9kZWVzLWljb24+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgYDoiIn0KICAgICAgICA8L2Rpdj4KICAgICAgICA8ZGl2IGNsYXNzPSJwcm9kdWN0LWNvbnRlbnQiPgogICAgICAgICAgPGRpdiBjbGFzcz0icHJvZHVjdC1oZWFkZXIiPgogICAgICAgICAgICAke2s/d2A8ZGl2IGNsYXNzPSJwcm9kdWN0LWNhdGVnb3J5Ij4ke2t9PC9kaXY+YDoiIn0KICAgICAgICAgICAgPGRpdiBjbGFzcz0icHJvZHVjdC1uYW1lIj4ke199PC9kaXY+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICR7Tj93YAogICAgICAgICAgICA8ZGl2IGNsYXNzPSJwcm9kdWN0LWRlc2NyaXB0aW9uIj4ke059PC9kaXY+CiAgICAgICAgICBgOiIifQogICAgICAgICAgPGRpdiBjbGFzcz0ic3RvY2stc3RhdHVzICR7Qz8iaW4tc3RvY2siOiJvdXQtb2Ytc3RvY2sifSI+CiAgICAgICAgICAgIDxkZWVzLWljb24gLmljb249JHtDPyJsdWNpZGU6Y2hlY2stY2lyY2xlIjoibHVjaWRlOngtY2lyY2xlIn0+PC9kZWVzLWljb24+CiAgICAgICAgICAgICR7en0KICAgICAgICAgIDwvZGl2PgogICAgICAgICAgPGRpdiBjbGFzcz0icHJvZHVjdC1mb290ZXIiPgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJwcm9kdWN0LXByaWNlIj4KICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0icHJpY2UtY3VycmVudCI+JHskKEwpfTwvc3Bhbj4KICAgICAgICAgICAgICAke0EmJkE+TD93YAogICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9InByaWNlLW9yaWdpbmFsIj4keyQoQSl9PC9zcGFuPgogICAgICAgICAgICAgIGA6IiJ9CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAke3RoaXMuc2hvd1F1YW50aXR5U2VsZWN0b3I/d2AKICAgICAgICAgICAgICA8ZGVlcy1pbnB1dC1xdWFudGl0eXNlbGVjdG9yCiAgICAgICAgICAgICAgICAudmFsdWU9JHt0aGlzLnF1YW50aXR5fQogICAgICAgICAgICAgICAgQGNoYW5nZVN1YmplY3Q9JHtWPT57dGhpcy5xdWFudGl0eT1WLmRldGFpbC5nZXRWYWx1ZSgpLHRoaXMuZGlzcGF0Y2hFdmVudChuZXcgQ3VzdG9tRXZlbnQoInF1YW50aXR5Q2hhbmdlIix7ZGV0YWlsOntxdWFudGl0eTp0aGlzLnF1YW50aXR5LHByb2R1Y3REYXRhOnRoaXMucHJvZHVjdERhdGF9LGJ1YmJsZXM6ITAsY29tcG9zZWQ6ITB9KSl9fQogICAgICAgICAgICAgID48L2RlZXMtaW5wdXQtcXVhbnRpdHlzZWxlY3Rvcj4KICAgICAgICAgICAgYDoiIn0KICAgICAgICAgIDwvZGl2PgogICAgICAgIDwvZGl2PgogICAgICA8L2Rpdj4KICAgIGB9aGFuZGxlQ2FyZENsaWNrKCl7dGhpcy5zZWxlY3RhYmxlJiYodGhpcy5zZWxlY3RlZD0hdGhpcy5zZWxlY3RlZCx0aGlzLmRpc3BhdGNoRXZlbnQobmV3IEN1c3RvbUV2ZW50KCJzZWxlY3Rpb25DaGFuZ2UiLHtkZXRhaWw6e3NlbGVjdGVkOnRoaXMuc2VsZWN0ZWQscHJvZHVjdERhdGE6dGhpcy5wcm9kdWN0RGF0YX0sYnViYmxlczohMCxjb21wb3NlZDohMH0pKSl9aGFuZGxlU2VsZWN0aW9uVG9nZ2xlKCl7dGhpcy5zZWxlY3RlZD0hdGhpcy5zZWxlY3RlZCx0aGlzLmRpc3BhdGNoRXZlbnQobmV3IEN1c3RvbUV2ZW50KCJzZWxlY3Rpb25DaGFuZ2UiLHtkZXRhaWw6e3NlbGVjdGVkOnRoaXMuc2VsZWN0ZWQscHJvZHVjdERhdGE6dGhpcy5wcm9kdWN0RGF0YX0sYnViYmxlczohMCxjb21wb3NlZDohMH0pKX1jb25zdHJ1Y3Rvcigpe3N1cGVyKC4uLmFyZ3VtZW50cyksR2kodGhpcyxTKX1zdGF0aWN7R2koaSxhKX19O3JldHVybiBGPWl9KSgpfSk7dmFyIGF1dCxpdXQ9YigoKT0+e3VlKCk7RnEoKTthdXQ9KCk9PndgCiAgPGRlZXMtZGVtb3dyYXBwZXI+CiAgICA8c3R5bGU+CiAgICAgICR7UWAKICAgICAgICAuZGVtby1jb250YWluZXIgewogICAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgICAgICBnYXA6IDI0cHg7CiAgICAgICAgICBwYWRkaW5nOiAyNHB4OwogICAgICAgICAgbWF4LXdpZHRoOiAxMjAwcHg7CiAgICAgICAgICBtYXJnaW46IDAgYXV0bzsKICAgICAgICB9CiAgICAgICAgCiAgICAgICAgLmlucHV0LWdyb3VwIHsKICAgICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICAgICAgZ2FwOiAxNnB4OwogICAgICAgIH0KCiAgICAgICAgLnNob3BwaW5nLWdyaWQgewogICAgICAgICAgZGlzcGxheTogZ3JpZDsKICAgICAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KGF1dG8tZmlsbCwgbWlubWF4KDI4MHB4LCAxZnIpKTsKICAgICAgICAgIGdhcDogMjBweDsKICAgICAgICB9CgogICAgICAgIC5jYXJ0LXN1bW1hcnkgewogICAgICAgICAgbWFyZ2luLXRvcDogMjRweDsKICAgICAgICAgIHBhZGRpbmc6IDIwcHg7CiAgICAgICAgICBiYWNrZ3JvdW5kOiAke3AuYmRUaGVtZSgiaHNsKDIxMCA0MCUgOTYuMSUpIiwiaHNsKDIxNSAyMC4yJSAxNi44JSkiKX07CiAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAke3AuYmRUaGVtZSgiaHNsKDIxNC4zIDMxLjglIDkxLjQlKSIsImhzbCgyMTUgMjAuMiUgMjEuOCUpIil9OwogICAgICAgICAgYm9yZGVyLXJhZGl1czogOHB4OwogICAgICAgIH0KCiAgICAgICAgLmNhcnQtc3VtbWFyeS10aXRsZSB7CiAgICAgICAgICBmb250LXNpemU6IDE4cHg7CiAgICAgICAgICBmb250LXdlaWdodDogNjAwOwogICAgICAgICAgbWFyZ2luLWJvdHRvbTogMTZweDsKICAgICAgICAgIGNvbG9yOiAke3AuYmRUaGVtZSgiaHNsKDAgMCUgOSUpIiwiaHNsKDAgMCUgOTUlKSIpfTsKICAgICAgICB9CgogICAgICAgIC5jYXJ0LWl0ZW0gewogICAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjsKICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgICBwYWRkaW5nOiA4cHggMDsKICAgICAgICAgIGZvbnQtc2l6ZTogMTRweDsKICAgICAgICAgIGNvbG9yOiAke3AuYmRUaGVtZSgiaHNsKDIxNS4zIDI1JSAyNi43JSkiLCJoc2woMjE3LjkgMTAuNiUgNzQuOSUpIil9OwogICAgICAgIH0KCiAgICAgICAgLmNhcnQtdG90YWwgewogICAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjsKICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgICBwYWRkaW5nLXRvcDogMTZweDsKICAgICAgICAgIG1hcmdpbi10b3A6IDE2cHg7CiAgICAgICAgICBib3JkZXItdG9wOiAycHggc29saWQgJHtwLmJkVGhlbWUoImhzbCgwIDAlIDg5LjglKSIsImhzbCgwIDAlIDE0LjklKSIpfTsKICAgICAgICAgIGZvbnQtc2l6ZTogMThweDsKICAgICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7CiAgICAgICAgICBjb2xvcjogJHtwLmJkVGhlbWUoImhzbCgwIDAlIDklKSIsImhzbCgwIDAlIDk1JSkiKX07CiAgICAgICAgfQogICAgICBgfQogICAgPC9zdHlsZT4KICAgIAogICAgPGRpdiBjbGFzcz0iZGVtby1jb250YWluZXIiPgogICAgICA8ZGVlcy1wYW5lbCAudGl0bGU9JHsiQmFzaWMgUXVhbnRpdHkgU2VsZWN0b3IifSAuc3VidGl0bGU9JHsiU2ltcGxlIHF1YW50aXR5IGlucHV0IHdpdGggaW5jcmVtZW50L2RlY3JlbWVudCBidXR0b25zIn0+CiAgICAgICAgPGRpdiBjbGFzcz0iaW5wdXQtZ3JvdXAiPgogICAgICAgICAgPGRlZXMtaW5wdXQtcXVhbnRpdHlzZWxlY3RvcgogICAgICAgICAgICAubGFiZWw9JHsiUXVhbnRpdHkifQogICAgICAgICAgICAuZGVzY3JpcHRpb249JHsiU2VsZWN0IHRoZSBkZXNpcmVkIHF1YW50aXR5In0KICAgICAgICAgICAgLnZhbHVlPSR7MX0KICAgICAgICAgID48L2RlZXMtaW5wdXQtcXVhbnRpdHlzZWxlY3Rvcj4KCiAgICAgICAgICA8ZGVlcy1pbnB1dC1xdWFudGl0eXNlbGVjdG9yCiAgICAgICAgICAgIC5sYWJlbD0keyJJdGVtcyBpbiBDYXJ0In0KICAgICAgICAgICAgLmRlc2NyaXB0aW9uPSR7IkFkanVzdCB0aGUgcXVhbnRpdHkgb2YgaXRlbXMifQogICAgICAgICAgICAudmFsdWU9JHszfQogICAgICAgICAgPjwvZGVlcy1pbnB1dC1xdWFudGl0eXNlbGVjdG9yPgogICAgICAgIDwvZGl2PgogICAgICA8L2RlZXMtcGFuZWw+CiAgICAgIAogICAgICA8ZGVlcy1wYW5lbCAudGl0bGU9JHsiU2hvcHBpbmcgQ2FydCJ9IC5zdWJ0aXRsZT0keyJNb2Rlcm4gZS1jb21tZXJjZSBwcm9kdWN0IGNhcmRzIHdpdGggaW50ZXJhY3RpdmUgcXVhbnRpdHkgc2VsZWN0b3JzIn0gLnJ1bkFmdGVyUmVuZGVyPSR7YXN5bmMgdD0+e2xldCBlPSgpPT57bGV0IGE9dC5xdWVyeVNlbGVjdG9yKCIjaGVhZHBob25lcy1xdHkiKSxpPXQucXVlcnlTZWxlY3RvcigiI21vdXNlLXF0eSIpLHI9dC5xdWVyeVNlbGVjdG9yKCIja2V5Ym9hcmQtcXR5Iikscz1hPy5xdWFudGl0eXx8MCxuPWk/LnF1YW50aXR5fHwwLG89cj8ucXVhbnRpdHl8fDAsZD0zNDkuOTkqcyxjPTk5Ljk5Km4saD03OS45OSpvLGw9ZCtjK2gsZj10LnF1ZXJ5U2VsZWN0b3IoIiNjYXJ0LXN1bW1hcnktY29udGVudCIpO2YmJihmLmlubmVySFRNTD1gCiAgICAgICAgICAgICAgJHtzPjA/YDxkaXYgY2xhc3M9ImNhcnQtaXRlbSI+CiAgICAgICAgICAgICAgICA8c3Bhbj5Tb255IFdILTEwMDBYTTUgKCR7c30pPC9zcGFuPgogICAgICAgICAgICAgICAgPHNwYW4+JCR7ZC50b0ZpeGVkKDIpfTwvc3Bhbj4KICAgICAgICAgICAgICA8L2Rpdj5gOiIifQogICAgICAgICAgICAgICR7bj4wP2A8ZGl2IGNsYXNzPSJjYXJ0LWl0ZW0iPgogICAgICAgICAgICAgICAgPHNwYW4+TG9naXRlY2ggTVggTWFzdGVyIDNTICgke259KTwvc3Bhbj4KICAgICAgICAgICAgICAgIDxzcGFuPiQke2MudG9GaXhlZCgyKX08L3NwYW4+CiAgICAgICAgICAgICAgPC9kaXY+YDoiIn0KICAgICAgICAgICAgICAke28+MD9gPGRpdiBjbGFzcz0iY2FydC1pdGVtIj4KICAgICAgICAgICAgICAgIDxzcGFuPktleWNocm9uIEsyICgke299KTwvc3Bhbj4KICAgICAgICAgICAgICAgIDxzcGFuPiQke2gudG9GaXhlZCgyKX08L3NwYW4+CiAgICAgICAgICAgICAgPC9kaXY+YDoiIn0KICAgICAgICAgICAgICAke2w9PT0wPyc8ZGl2IGNsYXNzPSJjYXJ0LWl0ZW0iIHN0eWxlPSJ0ZXh0LWFsaWduOiBjZW50ZXI7IGNvbG9yOiAjOTk5OyI+WW91ciBjYXJ0IGlzIGVtcHR5PC9kaXY+JzoiIn0KICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJjYXJ0LXRvdGFsIj4KICAgICAgICAgICAgICAgIDxzcGFuPlRvdGFsPC9zcGFuPgogICAgICAgICAgICAgICAgPHNwYW4+JCR7bC50b0ZpeGVkKDIpfTwvc3Bhbj4KICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgYCl9O3NldFRpbWVvdXQoZSwxMDApLHQucXVlcnlTZWxlY3RvckFsbCgiZGVlcy1zaG9wcGluZy1wcm9kdWN0Y2FyZCIpLmZvckVhY2goYT0+e2EuYWRkRXZlbnRMaXN0ZW5lcigicXVhbnRpdHlDaGFuZ2UiLGUpfSl9fT4KICAgICAgICA8ZGl2IGNsYXNzPSJzaG9wcGluZy1ncmlkIj4KICAgICAgICAgIDxkZWVzLXNob3BwaW5nLXByb2R1Y3RjYXJkCiAgICAgICAgICAgIGlkPSJoZWFkcGhvbmVzLXF0eSIKICAgICAgICAgICAgLnByb2R1Y3REYXRhPSR7e25hbWU6IlNvbnkgV0gtMTAwMFhNNSBXaXJlbGVzcyBIZWFkcGhvbmVzIixjYXRlZ29yeToiQXVkaW8iLGRlc2NyaXB0aW9uOiJJbmR1c3RyeS1sZWFkaW5nIG5vaXNlIGNhbmNlbGluZyB3aXRoIEF1dG8gTkMgT3B0aW1pemVyIixwcmljZTozNDkuOTksb3JpZ2luYWxQcmljZTozOTkuOTksaWNvbk5hbWU6Imx1Y2lkZTpoZWFkcGhvbmVzIn19CiAgICAgICAgICAgIC5xdWFudGl0eT0kezF9CiAgICAgICAgICA+PC9kZWVzLXNob3BwaW5nLXByb2R1Y3RjYXJkPgogICAgICAgICAgCiAgICAgICAgICA8ZGVlcy1zaG9wcGluZy1wcm9kdWN0Y2FyZAogICAgICAgICAgICBpZD0ibW91c2UtcXR5IgogICAgICAgICAgICAucHJvZHVjdERhdGE9JHt7bmFtZToiTG9naXRlY2ggTVggTWFzdGVyIDNTIixjYXRlZ29yeToiQWNjZXNzb3JpZXMiLGRlc2NyaXB0aW9uOiJQZXJmb3JtYW5jZSB3aXJlbGVzcyBtb3VzZSB3aXRoIHVsdHJhLWZhc3Qgc2Nyb2xsaW5nIixwcmljZTo5OS45OSxpY29uTmFtZToibHVjaWRlOm1vdXNlLXBvaW50ZXIifX0KICAgICAgICAgICAgLnF1YW50aXR5PSR7Mn0KICAgICAgICAgID48L2RlZXMtc2hvcHBpbmctcHJvZHVjdGNhcmQ+CiAgICAgICAgICAKICAgICAgICAgIDxkZWVzLXNob3BwaW5nLXByb2R1Y3RjYXJkCiAgICAgICAgICAgIGlkPSJrZXlib2FyZC1xdHkiCiAgICAgICAgICAgIC5wcm9kdWN0RGF0YT0ke3tuYW1lOiJLZXljaHJvbiBLMiBXaXJlbGVzcyBNZWNoYW5pY2FsIEtleWJvYXJkIixjYXRlZ29yeToiS2V5Ym9hcmRzIixkZXNjcmlwdGlvbjoiQ29tcGFjdCA3NSUgbGF5b3V0IHdpdGggaG90LXN3YXBwYWJsZSBzd2l0Y2hlcyIscHJpY2U6NzkuOTksb3JpZ2luYWxQcmljZTo5NC45OSxpY29uTmFtZToibHVjaWRlOmtleWJvYXJkIn19CiAgICAgICAgICAgIC5xdWFudGl0eT0kezF9CiAgICAgICAgICA+PC9kZWVzLXNob3BwaW5nLXByb2R1Y3RjYXJkPgogICAgICAgIDwvZGl2PgoKICAgICAgICA8ZGl2IGNsYXNzPSJjYXJ0LXN1bW1hcnkiPgogICAgICAgICAgPGgzIGNsYXNzPSJjYXJ0LXN1bW1hcnktdGl0bGUiPk9yZGVyIFN1bW1hcnk8L2gzPgogICAgICAgICAgPGRpdiBpZD0iY2FydC1zdW1tYXJ5LWNvbnRlbnQiPgogICAgICAgICAgICA8IS0tIENvbnRlbnQgd2lsbCBiZSBkeW5hbWljYWxseSB1cGRhdGVkIC0tPgogICAgICAgICAgPC9kaXY+CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGVlcy1wYW5lbD4KICAgICAgCiAgICAgIDxkZWVzLXBhbmVsIC50aXRsZT0keyJSZXF1aXJlZCAmIERpc2FibGVkIFN0YXRlcyJ9IC5zdWJ0aXRsZT0keyJEaWZmZXJlbnQgc3RhdGVzIGZvciB2YWxpZGF0aW9uIGFuZCByZXN0cmljdGlvbnMifT4KICAgICAgICA8ZGl2IGNsYXNzPSJpbnB1dC1ncm91cCI+CiAgICAgICAgICA8ZGVlcy1pbnB1dC1xdWFudGl0eXNlbGVjdG9yCiAgICAgICAgICAgIC5sYWJlbD0keyJOdW1iZXIgb2YgTGljZW5zZXMifQogICAgICAgICAgICAuZGVzY3JpcHRpb249JHsiU2VsZWN0IGhvdyBtYW55IGxpY2Vuc2VzIHlvdSBuZWVkIn0KICAgICAgICAgICAgLnJlcXVpcmVkPSR7ITB9CiAgICAgICAgICAgIC52YWx1ZT0kezF9CiAgICAgICAgICA+PC9kZWVzLWlucHV0LXF1YW50aXR5c2VsZWN0b3I+CgogICAgICAgICAgPGRlZXMtaW5wdXQtcXVhbnRpdHlzZWxlY3RvcgogICAgICAgICAgICAubGFiZWw9JHsiRml4ZWQgUXVhbnRpdHkifQogICAgICAgICAgICAuZGVzY3JpcHRpb249JHsiVGhpcyBxdWFudGl0eSBjYW5ub3QgYmUgY2hhbmdlZCJ9CiAgICAgICAgICAgIC5kaXNhYmxlZD0keyEwfQogICAgICAgICAgICAudmFsdWU9JHs1fQogICAgICAgICAgPjwvZGVlcy1pbnB1dC1xdWFudGl0eXNlbGVjdG9yPgogICAgICAgIDwvZGl2PgogICAgICA8L2RlZXMtcGFuZWw+CiAgICAgIAogICAgICA8ZGVlcy1wYW5lbCAudGl0bGU9JHsiT3JkZXIgRm9ybSJ9IC5zdWJ0aXRsZT0keyJDb21wbGV0ZSBvcmRlciBmb3JtIHdpdGggcXVhbnRpdHkgc2VsZWN0aW9uIn0+CiAgICAgICAgPGRlZXMtZm9ybT4KICAgICAgICAgIDxkZWVzLWlucHV0LXRleHQgLmxhYmVsPSR7IkN1c3RvbWVyIE5hbWUifSAucmVxdWlyZWQ9JHshMH0+PC9kZWVzLWlucHV0LXRleHQ+CiAgICAgICAgICA8ZGVlcy1pbnB1dC1kcm9wZG93bgogICAgICAgICAgICAubGFiZWw9JHsiUHJvZHVjdCJ9CiAgICAgICAgICAgIC5vcHRpb25zPSR7WyJCYXNpYyBQbGFuIiwiUHJvIFBsYW4iLCJFbnRlcnByaXNlIFBsYW4iXX0KICAgICAgICAgICAgLnJlcXVpcmVkPSR7ITB9CiAgICAgICAgICA+PC9kZWVzLWlucHV0LWRyb3Bkb3duPgogICAgICAgICAgPGRlZXMtaW5wdXQtcXVhbnRpdHlzZWxlY3RvcgogICAgICAgICAgICAubGFiZWw9JHsiUXVhbnRpdHkifQogICAgICAgICAgICAuZGVzY3JpcHRpb249JHsiTnVtYmVyIG9mIGxpY2Vuc2VzIn0KICAgICAgICAgICAgLnZhbHVlPSR7MX0KICAgICAgICAgID48L2RlZXMtaW5wdXQtcXVhbnRpdHlzZWxlY3Rvcj4KICAgICAgICAgIDxkZWVzLWlucHV0LXRleHQKICAgICAgICAgICAgLmxhYmVsPSR7IlNwZWNpYWwgSW5zdHJ1Y3Rpb25zIn0KICAgICAgICAgICAgLmlucHV0VHlwZT0keyJ0ZXh0YXJlYSJ9CiAgICAgICAgICA+PC9kZWVzLWlucHV0LXRleHQ+CiAgICAgICAgPC9kZWVzLWZvcm0+CiAgICAgIDwvZGVlcy1wYW5lbD4KICAgIDwvZGl2PgogIDwvZGVlcy1kZW1vd3JhcHBlcj4KYH0pO3ZhciBydXQsT3EsRXgsUnE9YigoKT0+e3VlKCk7VHQoKTtfMSgpO2l1dCgpO3FlKCk7cnV0PWZ1bmN0aW9uKHQsZSxhLGkscixzKXtmdW5jdGlvbiBuKHgpe2lmKHghPT12b2lkIDAmJnR5cGVvZiB4IT0iZnVuY3Rpb24iKXRocm93IG5ldyBUeXBlRXJyb3IoIkZ1bmN0aW9uIGV4cGVjdGVkIik7cmV0dXJuIHh9Zm9yKHZhciBvPWkua2luZCxkPW89PT0iZ2V0dGVyIj8iZ2V0IjpvPT09InNldHRlciI/InNldCI6InZhbHVlIixjPSFlJiZ0P2kuc3RhdGljP3Q6dC5wcm90b3R5cGU6bnVsbCxoPWV8fChjP09iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoYyxpLm5hbWUpOnt9KSxsLGY9ITEsZz1hLmxlbmd0aC0xO2c+PTA7Zy0tKXt2YXIgeT17fTtmb3IodmFyIHYgaW4gaSl5W3ZdPXY9PT0iYWNjZXNzIj97fTppW3ZdO2Zvcih2YXIgdiBpbiBpLmFjY2Vzcyl5LmFjY2Vzc1t2XT1pLmFjY2Vzc1t2XTt5LmFkZEluaXRpYWxpemVyPWZ1bmN0aW9uKHgpe2lmKGYpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGFkZCBpbml0aWFsaXplcnMgYWZ0ZXIgZGVjb3JhdGlvbiBoYXMgY29tcGxldGVkIik7cy5wdXNoKG4oeHx8bnVsbCkpfTt2YXIgbT0oMCxhW2ddKShvPT09ImFjY2Vzc29yIj97Z2V0OmguZ2V0LHNldDpoLnNldH06aFtkXSx5KTtpZihvPT09ImFjY2Vzc29yIil7aWYobT09PXZvaWQgMCljb250aW51ZTtpZihtPT09bnVsbHx8dHlwZW9mIG0hPSJvYmplY3QiKXRocm93IG5ldyBUeXBlRXJyb3IoIk9iamVjdCBleHBlY3RlZCIpOyhsPW4obS5nZXQpKSYmKGguZ2V0PWwpLChsPW4obS5zZXQpKSYmKGguc2V0PWwpLChsPW4obS5pbml0KSkmJnIudW5zaGlmdChsKX1lbHNlKGw9bihtKSkmJihvPT09ImZpZWxkIj9yLnVuc2hpZnQobCk6aFtkXT1sKX1jJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoYyxpLm5hbWUsaCksZj0hMH0sT3E9ZnVuY3Rpb24odCxlLGEpe2Zvcih2YXIgaT1hcmd1bWVudHMubGVuZ3RoPjIscj0wO3I8ZS5sZW5ndGg7cisrKWE9aT9lW3JdLmNhbGwodCxhKTplW3JdLmNhbGwodCk7cmV0dXJuIGk/YTp2b2lkIDB9LEV4PSgoKT0+e2xldCB0PVtwZSgiZGVlcy1pbnB1dC1xdWFudGl0eXNlbGVjdG9yIildLGUsYT1bXSxpLHI9WGUscyxuPVtdLG89W107dmFyIGQ9Y2xhc3MgZXh0ZW5kcyBye3N0YXRpY3tpPXRoaXN9c3RhdGlje2xldCBjPXR5cGVvZiBTeW1ib2w9PSJmdW5jdGlvbiImJlN5bWJvbC5tZXRhZGF0YT9PYmplY3QuY3JlYXRlKHJbU3ltYm9sLm1ldGFkYXRhXT8/bnVsbCk6dm9pZCAwO3M9W0koe3R5cGU6TnVtYmVyfSldLHJ1dCh0aGlzLG51bGwscyx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InZhbHVlIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpoPT4idmFsdWUiaW4gaCxnZXQ6aD0+aC52YWx1ZSxzZXQ6KGgsbCk9PntoLnZhbHVlPWx9fSxtZXRhZGF0YTpjfSxuLG8pLHJ1dChudWxsLGU9e3ZhbHVlOml9LHQse2tpbmQ6ImNsYXNzIixuYW1lOmkubmFtZSxtZXRhZGF0YTpjfSxudWxsLGEpLGQ9aT1lLnZhbHVlLGMmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShpLFN5bWJvbC5tZXRhZGF0YSx7ZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITAsdmFsdWU6Y30pfXN0YXRpYyBkZW1vPWF1dDtzdGF0aWMgZGVtb0dyb3Vwcz1bIklucHV0Il07I2U9T3EodGhpcyxuLDEpO2dldCB2YWx1ZSgpe3JldHVybiB0aGlzLiNlfXNldCB2YWx1ZShjKXt0aGlzLiNlPWN9c3RhdGljIHN0eWxlcz1bQ2UsLi4uWGUuYmFzZVN0eWxlcyxwLmRlZmF1bHRTdHlsZXMsUWAKICAgICAgICAvKiBUT0RPOiBNaWdyYXRlIGhhcmRjb2RlZCB2YWx1ZXMgdG8gLS1kZWVzLSogQ1NTIHZhcmlhYmxlcyAqLwogICAgICAgIDpob3N0IHsKICAgICAgICAgIHdpZHRoOiBhdXRvOwogICAgICAgICAgdXNlci1zZWxlY3Q6IG5vbmU7CiAgICAgICAgfQoKICAgICAgICAucXVhbnRpdHktY29udGFpbmVyIHsKICAgICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjE1cyBlYXNlOwogICAgICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgICAgICAgZGlzcGxheTogaW5saW5lLWZsZXg7CiAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7CiAgICAgICAgICBoZWlnaHQ6IDQwcHg7CiAgICAgICAgICBwYWRkaW5nOiAwOwogICAgICAgICAgbWluLXdpZHRoOiAxMjBweDsKICAgICAgICAgIGNvbG9yOiAke3AuYmRUaGVtZSgiaHNsKDAgMCUgOSUpIiwiaHNsKDAgMCUgOTUlKSIpfTsKICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICR7cC5iZFRoZW1lKCJoc2woMCAwJSA4OS44JSkiLCJoc2woMCAwJSAxNC45JSkiKX07CiAgICAgICAgICBib3JkZXItcmFkaXVzOiA2cHg7CiAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgICAgIH0KICAgICAgICAKICAgICAgICAucXVhbnRpdHktY29udGFpbmVyLmRpc2FibGVkIHsKICAgICAgICAgIGJhY2tncm91bmQ6ICR7cC5iZFRoZW1lKCJoc2woMCAwJSA5NS4xJSkiLCJoc2woMCAwJSAxNC45JSkiKX07CiAgICAgICAgICBib3JkZXItY29sb3I6ICR7cC5iZFRoZW1lKCJoc2woMCAwJSA4OS44JSkiLCJoc2woMCAwJSAxNC45JSkiKX07CiAgICAgICAgICBvcGFjaXR5OiAwLjU7CiAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTsKICAgICAgICB9CgogICAgICAgIC5xdWFudGl0eS1jb250YWluZXI6aG92ZXI6bm90KC5kaXNhYmxlZCkgewogICAgICAgICAgYm9yZGVyLWNvbG9yOiAke3AuYmRUaGVtZSgiaHNsKDAgMCUgNzkuOCUpIiwiaHNsKDAgMCUgMjAuOSUpIil9OwogICAgICAgIH0KCiAgICAgICAgLnF1YW50aXR5LWNvbnRhaW5lcjpmb2N1cy13aXRoaW4gewogICAgICAgICAgYm9yZGVyLWNvbG9yOiAke3AuYmRUaGVtZSgiaHNsKDIyMi4yIDQ3LjQlIDUxLjIlKSIsImhzbCgyMTcuMiA5MS4yJSA1OS44JSkiKX07CiAgICAgICAgICBib3gtc2hhZG93OiAwIDAgMCAzcHggJHtwLmJkVGhlbWUoImhzbCgyMjIuMiA0Ny40JSA1MS4yJSAvIDAuMSkiLCJoc2woMjE3LjIgOTEuMiUgNTkuOCUgLyAwLjEpIil9OwogICAgICAgIH0KCiAgICAgICAgLnNlbGVjdG9yIHsKICAgICAgICAgIGZsZXg6IDAgMCA0MHB4OwogICAgICAgICAgaGVpZ2h0OiAxMDAlOwogICAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKICAgICAgICAgIGZvbnQtc2l6ZTogMTZweDsKICAgICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7CiAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC4xNXMgZWFzZTsKICAgICAgICAgIGNvbG9yOiAke3AuYmRUaGVtZSgiaHNsKDIxNS40IDE2LjMlIDU2LjklKSIsImhzbCgyMTUgMjAuMiUgNTUuMSUpIil9OwogICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICAgIH0KCiAgICAgICAgLnNlbGVjdG9yOmhvdmVyIHsKICAgICAgICAgIGJhY2tncm91bmQ6ICR7cC5iZFRoZW1lKCJoc2woMCAwJSA5NS4xJSkiLCJoc2woMCAwJSAxNC45JSkiKX07CiAgICAgICAgICBjb2xvcjogJHtwLmJkVGhlbWUoImhzbCgwIDAlIDklKSIsImhzbCgwIDAlIDk1JSkiKX07CiAgICAgICAgfQoKICAgICAgICAuc2VsZWN0b3I6YWN0aXZlIHsKICAgICAgICAgIGJhY2tncm91bmQ6ICR7cC5iZFRoZW1lKCJoc2woMCAwJSA5MSUpIiwiaHNsKDAgMCUgMTElKSIpfTsKICAgICAgICB9CgogICAgICAgIC5zZWxlY3Rvci5taW51cyB7CiAgICAgICAgICBib3JkZXItcmlnaHQ6IDFweCBzb2xpZCAke3AuYmRUaGVtZSgiaHNsKDAgMCUgODkuOCUpIiwiaHNsKDAgMCUgMTQuOSUpIil9OwogICAgICAgIH0KCiAgICAgICAgLnNlbGVjdG9yLnBsdXMgewogICAgICAgICAgYm9yZGVyLWxlZnQ6IDFweCBzb2xpZCAke3AuYmRUaGVtZSgiaHNsKDAgMCUgODkuOCUpIiwiaHNsKDAgMCUgMTQuOSUpIil9OwogICAgICAgIH0KCiAgICAgICAgLnF1YW50aXR5IHsKICAgICAgICAgIGZsZXg6IDE7CiAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7CiAgICAgICAgICBmb250LXdlaWdodDogNTAwOwogICAgICAgICAgZm9udC12YXJpYW50LW51bWVyaWM6IHRhYnVsYXItbnVtczsKICAgICAgICAgIGxldHRlci1zcGFjaW5nOiAtMC4wMDZlbTsKICAgICAgICB9CgogICAgICAgIC8qIEtleWJvYXJkIG5hdmlnYXRpb24gZm9jdXMgc3R5bGVzICovCiAgICAgICAgLnNlbGVjdG9yOmZvY3VzIHsKICAgICAgICAgIG91dGxpbmU6IG5vbmU7CiAgICAgICAgICBiYWNrZ3JvdW5kOiAke3AuYmRUaGVtZSgiaHNsKDIxMCA0MCUgOTYuMSUpIiwiaHNsKDIxNSAyMC4yJSAxNi44JSkiKX07CiAgICAgICAgICB6LWluZGV4OiAxOwogICAgICAgIH0KCiAgICAgICAgLyogTWluIHZhbHVlIHN0YXRlICovCiAgICAgICAgLnF1YW50aXR5LWNvbnRhaW5lcltkYXRhLW1pbj0idHJ1ZSJdIC5zZWxlY3Rvci5taW51cyB7CiAgICAgICAgICBvcGFjaXR5OiAwLjM7CiAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkOwogICAgICAgIH0KCiAgICAgICAgLnF1YW50aXR5LWNvbnRhaW5lcltkYXRhLW1pbj0idHJ1ZSJdIC5zZWxlY3Rvci5taW51czpob3ZlciB7CiAgICAgICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDsKICAgICAgICAgIGNvbG9yOiAke3AuYmRUaGVtZSgiaHNsKDIxNS40IDE2LjMlIDU2LjklKSIsImhzbCgyMTUgMjAuMiUgNTUuMSUpIil9OwogICAgICAgIH0KCiAgICBgXTtyZW5kZXIoKXtyZXR1cm4gd2AKICAgICAgPGRpdiBjbGFzcz0iaW5wdXQtd3JhcHBlciI+CiAgICAgICAgJHt0aGlzLmxhYmVsP3dgPGRlZXMtbGFiZWwgLmxhYmVsPSR7dGhpcy5sYWJlbH0gLmRlc2NyaXB0aW9uPSR7dGhpcy5kZXNjcmlwdGlvbn0gLnJlcXVpcmVkPSR7dGhpcy5yZXF1aXJlZH0+PC9kZWVzLWxhYmVsPmA6IiJ9CiAgICAgICAgPGRpdiAKICAgICAgICAgIGNsYXNzPSJxdWFudGl0eS1jb250YWluZXIgJHt0aGlzLmRpc2FibGVkPyJkaXNhYmxlZCI6IiJ9IgogICAgICAgICAgZGF0YS1taW49IiR7dGhpcy52YWx1ZTw9MH0iCiAgICAgICAgPgogICAgICAgICAgPGRpdiAKICAgICAgICAgICAgY2xhc3M9InNlbGVjdG9yIG1pbnVzIiAKICAgICAgICAgICAgQGNsaWNrPSIkeygpPT57dGhpcy5kZWNyZWFzZSgpfX0iCiAgICAgICAgICAgIHRhYmluZGV4PSIke3RoaXMuZGlzYWJsZWQ/Ii0xIjoiMCJ9IgogICAgICAgICAgICBAa2V5ZG93bj0iJHtjPT57KGMua2V5PT09IkVudGVyInx8Yy5rZXk9PT0iICIpJiYoYy5wcmV2ZW50RGVmYXVsdCgpLHRoaXMuZGVjcmVhc2UoKSl9fSIKICAgICAgICAgICAgcm9sZT0iYnV0dG9uIgogICAgICAgICAgICBhcmlhLWxhYmVsPSJEZWNyZWFzZSBxdWFudGl0eSIKICAgICAgICAgID7iiJI8L2Rpdj4KICAgICAgICAgIDxkaXYgY2xhc3M9InF1YW50aXR5IiBhcmlhLWxpdmU9InBvbGl0ZSIgYXJpYS1hdG9taWM9InRydWUiPiR7dGhpcy52YWx1ZX08L2Rpdj4KICAgICAgICAgIDxkaXYgCiAgICAgICAgICAgIGNsYXNzPSJzZWxlY3RvciBwbHVzIiAKICAgICAgICAgICAgQGNsaWNrPSIkeygpPT57dGhpcy5pbmNyZWFzZSgpfX0iCiAgICAgICAgICAgIHRhYmluZGV4PSIke3RoaXMuZGlzYWJsZWQ/Ii0xIjoiMCJ9IgogICAgICAgICAgICBAa2V5ZG93bj0iJHtjPT57KGMua2V5PT09IkVudGVyInx8Yy5rZXk9PT0iICIpJiYoYy5wcmV2ZW50RGVmYXVsdCgpLHRoaXMuaW5jcmVhc2UoKSl9fSIKICAgICAgICAgICAgcm9sZT0iYnV0dG9uIgogICAgICAgICAgICBhcmlhLWxhYmVsPSJJbmNyZWFzZSBxdWFudGl0eSIKICAgICAgICAgID4rPC9kaXY+CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGl2PgogICAgYH1pbmNyZWFzZSgpe3RoaXMuZGlzYWJsZWR8fCh0aGlzLnZhbHVlKyssdGhpcy5jaGFuZ2VTdWJqZWN0Lm5leHQodGhpcykpfWRlY3JlYXNlKCl7IXRoaXMuZGlzYWJsZWQmJnRoaXMudmFsdWU+MCYmKHRoaXMudmFsdWUtLSx0aGlzLmNoYW5nZVN1YmplY3QubmV4dCh0aGlzKSl9Z2V0VmFsdWUoKXtyZXR1cm4gdGhpcy52YWx1ZX1zZXRWYWx1ZShjKXt0aGlzLnZhbHVlPWN9Y29uc3RydWN0b3IoKXtzdXBlciguLi5hcmd1bWVudHMpLE9xKHRoaXMsbyl9c3RhdGlje09xKGksYSl9fTtyZXR1cm4gZD1pfSkoKX0pO3ZhciBzdXQsbnV0PWIoKCk9Pnt1ZSgpO3gxKCk7bTIoKTtzdXQ9KCk9PndgCiAgPGRlZXMtZGVtb3dyYXBwZXI+CiAgICA8c3R5bGU+CiAgICAgICR7UWAKICAgICAgICAuZGVtby1jb250YWluZXIgewogICAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgICAgICBnYXA6IDI0cHg7CiAgICAgICAgICBwYWRkaW5nOiAyNHB4OwogICAgICAgICAgbWF4LXdpZHRoOiAxMjAwcHg7CiAgICAgICAgICBtYXJnaW46IDAgYXV0bzsKICAgICAgICB9CiAgICAgICAgCiAgICAgICAgZGVlcy1wYW5lbCB7CiAgICAgICAgICBtYXJnaW4tYm90dG9tOiAyNHB4OwogICAgICAgIH0KICAgICAgICAKICAgICAgICBkZWVzLXBhbmVsOmxhc3QtY2hpbGQgewogICAgICAgICAgbWFyZ2luLWJvdHRvbTogMDsKICAgICAgICB9CiAgICAgICAgCiAgICAgICAgLmlucHV0LWdyb3VwIHsKICAgICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICAgICAgZ2FwOiAxNnB4OwogICAgICAgIH0KCiAgICAgICAgLmRlbW8tZ3JpZCB7CiAgICAgICAgICBkaXNwbGF5OiBncmlkOwogICAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoYXV0by1maXQsIG1pbm1heCgzMDBweCwgMWZyKSk7CiAgICAgICAgICBnYXA6IDI0cHg7CiAgICAgICAgfQogICAgICAgIAogICAgICAgIC5yZXN1bHQtZGlzcGxheSB7CiAgICAgICAgICBtYXJnaW4tdG9wOiAxNnB4OwogICAgICAgICAgcGFkZGluZzogMTJweDsKICAgICAgICAgIGJhY2tncm91bmQ6IHJnYmEoMCwgMTA1LCAyNDIsIDAuMSk7CiAgICAgICAgICBib3JkZXItcmFkaXVzOiA0cHg7CiAgICAgICAgICBmb250LWZhbWlseTogbW9ub3NwYWNlOwogICAgICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgICAgIH0KICAgICAgYH0KICAgIDwvc3R5bGU+CiAgICAKICAgIDxkaXYgY2xhc3M9ImRlbW8tY29udGFpbmVyIj4KICAgICAgPGRlZXMtcGFuZWwgLnRpdGxlPSR7IjEuIEJhc2ljIFJhZGlvIEdyb3VwcyJ9IC5zdWJ0aXRsZT0keyJTaW1wbGUgc3RyaW5nIG9wdGlvbnMgZm9yIGNvbW1vbiB1c2UgY2FzZXMifT4KICAgICAgICA8ZGl2IGNsYXNzPSJkZW1vLWdyaWQiPgogICAgICAgICAgPGRlZXMtaW5wdXQtcmFkaW9ncm91cAogICAgICAgICAgICAubGFiZWw9JHsiU3Vic2NyaXB0aW9uIFBsYW4ifQogICAgICAgICAgICAub3B0aW9ucz0ke1siQmFzaWMgLSAkOS9tb250aCIsIlBybyAtICQyOS9tb250aCIsIkVudGVycHJpc2UgLSAkOTkvbW9udGgiXX0KICAgICAgICAgICAgLnNlbGVjdGVkT3B0aW9uPSR7IlBybyAtICQyOS9tb250aCJ9CiAgICAgICAgICAgIC5kZXNjcmlwdGlvbj0keyJDaG9vc2UgeW91ciBzdWJzY3JpcHRpb24gdGllciJ9CiAgICAgICAgICA+PC9kZWVzLWlucHV0LXJhZGlvZ3JvdXA+CiAgICAgICAgICAKICAgICAgICAgIDxkZWVzLWlucHV0LXJhZGlvZ3JvdXAKICAgICAgICAgICAgLmxhYmVsPSR7IlByaW9yaXR5IExldmVsIn0KICAgICAgICAgICAgLm9wdGlvbnM9JHtbIkhpZ2giLCJNZWRpdW0iLCJMb3ciXX0KICAgICAgICAgICAgLnNlbGVjdGVkT3B0aW9uPSR7Ik1lZGl1bSJ9CiAgICAgICAgICAgIC5yZXF1aXJlZD0keyEwfQogICAgICAgICAgPjwvZGVlcy1pbnB1dC1yYWRpb2dyb3VwPgogICAgICAgIDwvZGl2PgogICAgICA8L2RlZXMtcGFuZWw+CiAgICAgIAogICAgICA8ZGVlcy1wYW5lbCAudGl0bGU9JHsiMi4gSG9yaXpvbnRhbCBMYXlvdXQifSAuc3VidGl0bGU9JHsiUmFkaW8gZ3JvdXBzIHdpdGggaG9yaXpvbnRhbCBhcnJhbmdlbWVudCJ9PgogICAgICAgIDxkaXYgY2xhc3M9ImlucHV0LWdyb3VwIj4KICAgICAgICAgIDxkZWVzLWlucHV0LXJhZGlvZ3JvdXAKICAgICAgICAgICAgLmxhYmVsPSR7IkRvIHlvdSBhZ3JlZSB3aXRoIHRoZSB0ZXJtcz8ifQogICAgICAgICAgICAub3B0aW9ucz0ke1siWWVzIiwiTm8iLCJNYXliZSJdfQogICAgICAgICAgICAuZGlyZWN0aW9uPSR7Imhvcml6b250YWwifQogICAgICAgICAgICAuc2VsZWN0ZWRPcHRpb249JHsiWWVzIn0KICAgICAgICAgID48L2RlZXMtaW5wdXQtcmFkaW9ncm91cD4KCiAgICAgICAgICA8ZGVlcy1pbnB1dC1yYWRpb2dyb3VwCiAgICAgICAgICAgIC5sYWJlbD0keyJFeHBlcmllbmNlIExldmVsIn0KICAgICAgICAgICAgLm9wdGlvbnM9JHtbIkJlZ2lubmVyIiwiSW50ZXJtZWRpYXRlIiwiRXhwZXJ0Il19CiAgICAgICAgICAgIC5kaXJlY3Rpb249JHsiaG9yaXpvbnRhbCJ9CiAgICAgICAgICAgIC5zZWxlY3RlZE9wdGlvbj0keyJJbnRlcm1lZGlhdGUifQogICAgICAgICAgICAuZGVzY3JpcHRpb249JHsiU2VsZWN0IHlvdXIgZXhwZXJpZW5jZSBsZXZlbCB3aXRoIHdlYiBkZXZlbG9wbWVudCJ9CiAgICAgICAgICA+PC9kZWVzLWlucHV0LXJhZGlvZ3JvdXA+CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGVlcy1wYW5lbD4KICAgICAgCiAgICAgIDxkZWVzLXBhbmVsIC50aXRsZT0keyIzLiBBZHZhbmNlZCBPcHRpb25zIn0gLnN1YnRpdGxlPSR7IlVzaW5nIG9iamVjdCBmb3JtYXQgd2l0aCBrZXlzIGFuZCBwYXlsb2FkcyJ9PgogICAgICAgIDxkZWVzLWlucHV0LXJhZGlvZ3JvdXAKICAgICAgICAgIGlkPSJhZHZhbmNlZC1yYWRpbyIKICAgICAgICAgIC5sYWJlbD0keyJTZWxlY3QgUmVnaW9uIn0KICAgICAgICAgIC5vcHRpb25zPSR7W3tvcHRpb246IlVuaXRlZCBTdGF0ZXMgKFVTIEVhc3QpIixrZXk6InVzLWVhc3QiLHBheWxvYWQ6e3JlZ2lvbjoidXMtZWFzdC0xIixsYXRlbmN5OjIwfX0se29wdGlvbjoiRXVyb3BlIChGcmFua2Z1cnQpIixrZXk6ImV1LWNlbnRyYWwiLHBheWxvYWQ6e3JlZ2lvbjoiZXUtY2VudHJhbC0xIixsYXRlbmN5OjUwfX0se29wdGlvbjoiQXNpYSBQYWNpZmljIChTaW5nYXBvcmUpIixrZXk6ImFwLXNvdXRoZWFzdCIscGF5bG9hZDp7cmVnaW9uOiJhcC1zb3V0aGVhc3QtMSIsbGF0ZW5jeToxMjB9fV19CiAgICAgICAgICAuc2VsZWN0ZWRPcHRpb249JHsiZXUtY2VudHJhbCJ9CiAgICAgICAgICAuZGVzY3JpcHRpb249JHsiQ2hvb3NlIHRoZSBjbG9zZXN0IHJlZ2lvbiBmb3Igb3B0aW1hbCBwZXJmb3JtYW5jZSJ9CiAgICAgICAgICBAY2hhbmdlPSR7dD0+e2xldCBlPWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoIiNyZWdpb24tcmVzdWx0Iik7ZSYmKGUudGV4dENvbnRlbnQ9IlNlbGVjdGVkOiAiK0pTT04uc3RyaW5naWZ5KHQuZGV0YWlsLnZhbHVlLG51bGwsMikpfX0KICAgICAgICA+PC9kZWVzLWlucHV0LXJhZGlvZ3JvdXA+CiAgICAgICAgPGRpdiBpZD0icmVnaW9uLXJlc3VsdCIgY2xhc3M9InJlc3VsdC1kaXNwbGF5Ij5TZWxlY3RlZDogeyAicmVnaW9uIjogImV1LWNlbnRyYWwtMSIsICJsYXRlbmN5IjogNTAgfTwvZGl2PgogICAgICA8L2RlZXMtcGFuZWw+CiAgICAgIAogICAgICA8ZGVlcy1wYW5lbCAudGl0bGU9JHsiNC4gU3VydmV5IEV4YW1wbGUifSAuc3VidGl0bGU9JHsiTXVsdGlwbGUgcmFkaW8gZ3JvdXBzIGZvciBzdXJ2ZXlzIGFuZCBmb3JtcyJ9PgogICAgICAgIDxkaXYgY2xhc3M9ImRlbW8tZ3JpZCI+CiAgICAgICAgICA8ZGVlcy1pbnB1dC1yYWRpb2dyb3VwCiAgICAgICAgICAgIC5sYWJlbD0keyJIb3cgc2F0aXNmaWVkIGFyZSB5b3U/In0KICAgICAgICAgICAgLm9wdGlvbnM9JHtbIlZlcnkgU2F0aXNmaWVkIiwiU2F0aXNmaWVkIiwiTmV1dHJhbCIsIkRpc3NhdGlzZmllZCIsIlZlcnkgRGlzc2F0aXNmaWVkIl19CiAgICAgICAgICAgIC5zZWxlY3RlZE9wdGlvbj0keyJTYXRpc2ZpZWQifQogICAgICAgICAgPjwvZGVlcy1pbnB1dC1yYWRpb2dyb3VwPgogICAgICAgICAgCiAgICAgICAgICA8ZGVlcy1pbnB1dC1yYWRpb2dyb3VwCiAgICAgICAgICAgIC5sYWJlbD0keyJXb3VsZCB5b3UgcmVjb21tZW5kIHVzPyJ9CiAgICAgICAgICAgIC5vcHRpb25zPSR7WyJEZWZpbml0ZWx5IiwiUHJvYmFibHkiLCJOb3QgU3VyZSIsIlByb2JhYmx5IE5vdCIsIkRlZmluaXRlbHkgTm90Il19CiAgICAgICAgICAgIC5zZWxlY3RlZE9wdGlvbj0keyJQcm9iYWJseSJ9CiAgICAgICAgICA+PC9kZWVzLWlucHV0LXJhZGlvZ3JvdXA+CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGVlcy1wYW5lbD4KICAgICAgCiAgICAgIDxkZWVzLXBhbmVsIC50aXRsZT0keyI1LiBTdGF0ZXMgJiBWYWxpZGF0aW9uIn0gLnN1YnRpdGxlPSR7IkRpZmZlcmVudCBzdGF0ZXMgYW5kIHZhbGlkYXRpb24gZXhhbXBsZXMifT4KICAgICAgICA8ZGl2IGNsYXNzPSJkZW1vLWdyaWQiPgogICAgICAgICAgPGRlZXMtaW5wdXQtcmFkaW9ncm91cAogICAgICAgICAgICAubGFiZWw9JHsiUmVxdWlyZWQgU2VsZWN0aW9uIn0KICAgICAgICAgICAgLm9wdGlvbnM9JHtbIk9wdGlvbiBBIiwiT3B0aW9uIEIiLCJPcHRpb24gQyJdfQogICAgICAgICAgICAucmVxdWlyZWQ9JHshMH0KICAgICAgICAgICAgLmRlc2NyaXB0aW9uPSR7IlRoaXMgZmllbGQgaXMgcmVxdWlyZWQifQogICAgICAgICAgPjwvZGVlcy1pbnB1dC1yYWRpb2dyb3VwPgogICAgICAgICAgCiAgICAgICAgICA8ZGVlcy1pbnB1dC1yYWRpb2dyb3VwCiAgICAgICAgICAgIC5sYWJlbD0keyJEaXNhYmxlZCBTdGF0ZSJ9CiAgICAgICAgICAgIC5vcHRpb25zPSR7WyJEaXNhYmxlZCBPcHRpb24gMSIsIkRpc2FibGVkIE9wdGlvbiAyIiwiRGlzYWJsZWQgT3B0aW9uIDMiXX0KICAgICAgICAgICAgLnNlbGVjdGVkT3B0aW9uPSR7IkRpc2FibGVkIE9wdGlvbiAyIn0KICAgICAgICAgICAgLmRpc2FibGVkPSR7ITB9CiAgICAgICAgICA+PC9kZWVzLWlucHV0LXJhZGlvZ3JvdXA+CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGVlcy1wYW5lbD4KICAgICAgCiAgICAgIDxkZWVzLXBhbmVsIC50aXRsZT0keyI2LiBTZXR0aW5ncyBFeGFtcGxlIn0gLnN1YnRpdGxlPSR7IkNvbW1vbiBwYXR0ZXJucyBpbiBhcHBsaWNhdGlvbiBzZXR0aW5ncyJ9PgogICAgICAgIDxkaXYgY2xhc3M9ImlucHV0LWdyb3VwIj4KICAgICAgICAgIDxkZWVzLWlucHV0LXJhZGlvZ3JvdXAKICAgICAgICAgICAgLmxhYmVsPSR7IlRoZW1lIFByZWZlcmVuY2UifQogICAgICAgICAgICAub3B0aW9ucz0ke1t7b3B0aW9uOiJMaWdodCBUaGVtZSIsa2V5OiJsaWdodCIscGF5bG9hZDoibGlnaHQifSx7b3B0aW9uOiJEYXJrIFRoZW1lIixrZXk6ImRhcmsiLHBheWxvYWQ6ImRhcmsifSx7b3B0aW9uOiJTeXN0ZW0gRGVmYXVsdCIsa2V5OiJzeXN0ZW0iLHBheWxvYWQ6ImF1dG8ifV19CiAgICAgICAgICAgIC5zZWxlY3RlZE9wdGlvbj0keyJkYXJrIn0KICAgICAgICAgICAgLmRlc2NyaXB0aW9uPSR7IkNob29zZSBob3cgdGhlIGFwcGxpY2F0aW9uIHNob3VsZCBhcHBlYXIifQogICAgICAgICAgPjwvZGVlcy1pbnB1dC1yYWRpb2dyb3VwPgoKICAgICAgICAgIDxkZWVzLWlucHV0LXJhZGlvZ3JvdXAKICAgICAgICAgICAgLmxhYmVsPSR7Ik5vdGlmaWNhdGlvbiBGcmVxdWVuY3kifQogICAgICAgICAgICAub3B0aW9ucz0ke1siQWxsIE5vdGlmaWNhdGlvbnMiLCJJbXBvcnRhbnQgT25seSIsIk5vbmUiXX0KICAgICAgICAgICAgLnNlbGVjdGVkT3B0aW9uPSR7IkltcG9ydGFudCBPbmx5In0KICAgICAgICAgICAgLmRlc2NyaXB0aW9uPSR7IkNvbnRyb2wgaG93IG9mdGVuIHlvdSByZWNlaXZlIG5vdGlmaWNhdGlvbnMifQogICAgICAgICAgPjwvZGVlcy1pbnB1dC1yYWRpb2dyb3VwPgoKICAgICAgICAgIDxkZWVzLWlucHV0LXJhZGlvZ3JvdXAKICAgICAgICAgICAgLmxhYmVsPSR7Ikxhbmd1YWdlIn0KICAgICAgICAgICAgLm9wdGlvbnM9JHtbIkVuZ2xpc2giLCJHZXJtYW4iLCJGcmVuY2giLCJTcGFuaXNoIiwiSmFwYW5lc2UiXX0KICAgICAgICAgICAgLnNlbGVjdGVkT3B0aW9uPSR7IkVuZ2xpc2gifQogICAgICAgICAgICAuZGlyZWN0aW9uPSR7Imhvcml6b250YWwifQogICAgICAgICAgPjwvZGVlcy1pbnB1dC1yYWRpb2dyb3VwPgogICAgICAgIDwvZGl2PgogICAgICA8L2RlZXMtcGFuZWw+CiAgICAgIAogICAgICA8ZGVlcy1wYW5lbCAudGl0bGU9JHsiNy4gRm9ybSBJbnRlZ3JhdGlvbiJ9IC5zdWJ0aXRsZT0keyJXb3JrcyBzZWFtbGVzc2x5IHdpdGggZGVlcy1mb3JtIn0+CiAgICAgICAgPGRlZXMtZm9ybT4KICAgICAgICAgIDxkZWVzLWlucHV0LXRleHQKICAgICAgICAgICAgLmxhYmVsPSR7IlByb2R1Y3QgTmFtZSJ9CiAgICAgICAgICAgIC5yZXF1aXJlZD0keyEwfQogICAgICAgICAgICAua2V5PSR7InByb2R1Y3ROYW1lIn0KICAgICAgICAgID48L2RlZXMtaW5wdXQtdGV4dD4KICAgICAgICAgIAogICAgICAgICAgPGRlZXMtaW5wdXQtcmFkaW9ncm91cAogICAgICAgICAgICAubGFiZWw9JHsiUHJvZHVjdCBDYXRlZ29yeSJ9CiAgICAgICAgICAgIC5vcHRpb25zPSR7WyJFbGVjdHJvbmljcyIsIkNsb3RoaW5nIiwiQm9va3MiLCJIb21lICYgR2FyZGVuIiwiU3BvcnRzIl19CiAgICAgICAgICAgIC5yZXF1aXJlZD0keyEwfQogICAgICAgICAgICAua2V5PSR7ImNhdGVnb3J5In0KICAgICAgICAgID48L2RlZXMtaW5wdXQtcmFkaW9ncm91cD4KICAgICAgICAgIAogICAgICAgICAgPGRlZXMtaW5wdXQtcmFkaW9ncm91cAogICAgICAgICAgICAubGFiZWw9JHsiQ29uZGl0aW9uIn0KICAgICAgICAgICAgLm9wdGlvbnM9JHtbIk5ldyIsIkxpa2UgTmV3IiwiR29vZCIsIkZhaXIiLCJQb29yIl19CiAgICAgICAgICAgIC5kaXJlY3Rpb249JHsiaG9yaXpvbnRhbCJ9CiAgICAgICAgICAgIC5rZXk9JHsiY29uZGl0aW9uIn0KICAgICAgICAgICAgLnNlbGVjdGVkT3B0aW9uPSR7Ik5ldyJ9CiAgICAgICAgICA+PC9kZWVzLWlucHV0LXJhZGlvZ3JvdXA+CiAgICAgICAgICAKICAgICAgICAgIDxkZWVzLWlucHV0LXJhZGlvZ3JvdXAKICAgICAgICAgICAgLmxhYmVsPSR7IlNoaXBwaW5nIFNwZWVkIn0KICAgICAgICAgICAgLm9wdGlvbnM9JHtbe29wdGlvbjoiU3RhbmRhcmQgKDUtNyBkYXlzKSIsa2V5OiJzdGFuZGFyZCIscGF5bG9hZDp7ZGF5czo3LHByaWNlOjB9fSx7b3B0aW9uOiJFeHByZXNzICgyLTMgZGF5cykiLGtleToiZXhwcmVzcyIscGF5bG9hZDp7ZGF5czozLHByaWNlOjEwfX0se29wdGlvbjoiT3Zlcm5pZ2h0IixrZXk6Im92ZXJuaWdodCIscGF5bG9hZDp7ZGF5czoxLHByaWNlOjI1fX1dfQogICAgICAgICAgICAuc2VsZWN0ZWRPcHRpb249JHsic3RhbmRhcmQifQogICAgICAgICAgICAua2V5PSR7InNoaXBwaW5nIn0KICAgICAgICAgID48L2RlZXMtaW5wdXQtcmFkaW9ncm91cD4KICAgICAgICAgIAogICAgICAgICAgPGRlZXMtZm9ybS1zdWJtaXQgLnRleHQ9JHsiU3VibWl0IFByb2R1Y3QifT48L2RlZXMtZm9ybS1zdWJtaXQ+CiAgICAgICAgPC9kZWVzLWZvcm0+CiAgICAgIDwvZGVlcy1wYW5lbD4KICAgIDwvZGl2PgogIDwvZGVlcy1kZW1vd3JhcHBlcj4KYH0pO3ZhciB4OCxQcyxQeCxJeD1iKCgpPT57dWUoKTtfMSgpO251dCgpO3FlKCk7eDg9ZnVuY3Rpb24odCxlLGEsaSxyLHMpe2Z1bmN0aW9uIG4oeCl7aWYoeCE9PXZvaWQgMCYmdHlwZW9mIHghPSJmdW5jdGlvbiIpdGhyb3cgbmV3IFR5cGVFcnJvcigiRnVuY3Rpb24gZXhwZWN0ZWQiKTtyZXR1cm4geH1mb3IodmFyIG89aS5raW5kLGQ9bz09PSJnZXR0ZXIiPyJnZXQiOm89PT0ic2V0dGVyIj8ic2V0IjoidmFsdWUiLGM9IWUmJnQ/aS5zdGF0aWM/dDp0LnByb3RvdHlwZTpudWxsLGg9ZXx8KGM/T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihjLGkubmFtZSk6e30pLGwsZj0hMSxnPWEubGVuZ3RoLTE7Zz49MDtnLS0pe3ZhciB5PXt9O2Zvcih2YXIgdiBpbiBpKXlbdl09dj09PSJhY2Nlc3MiP3t9Omlbdl07Zm9yKHZhciB2IGluIGkuYWNjZXNzKXkuYWNjZXNzW3ZdPWkuYWNjZXNzW3ZdO3kuYWRkSW5pdGlhbGl6ZXI9ZnVuY3Rpb24oeCl7aWYoZil0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgYWRkIGluaXRpYWxpemVycyBhZnRlciBkZWNvcmF0aW9uIGhhcyBjb21wbGV0ZWQiKTtzLnB1c2gobih4fHxudWxsKSl9O3ZhciBtPSgwLGFbZ10pKG89PT0iYWNjZXNzb3IiP3tnZXQ6aC5nZXQsc2V0Omguc2V0fTpoW2RdLHkpO2lmKG89PT0iYWNjZXNzb3IiKXtpZihtPT09dm9pZCAwKWNvbnRpbnVlO2lmKG09PT1udWxsfHx0eXBlb2YgbSE9Im9iamVjdCIpdGhyb3cgbmV3IFR5cGVFcnJvcigiT2JqZWN0IGV4cGVjdGVkIik7KGw9bihtLmdldCkpJiYoaC5nZXQ9bCksKGw9bihtLnNldCkpJiYoaC5zZXQ9bCksKGw9bihtLmluaXQpKSYmci51bnNoaWZ0KGwpfWVsc2UobD1uKG0pKSYmKG89PT0iZmllbGQiP3IudW5zaGlmdChsKTpoW2RdPWwpfWMmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShjLGkubmFtZSxoKSxmPSEwfSxQcz1mdW5jdGlvbih0LGUsYSl7Zm9yKHZhciBpPWFyZ3VtZW50cy5sZW5ndGg+MixyPTA7cjxlLmxlbmd0aDtyKyspYT1pP2Vbcl0uY2FsbCh0LGEpOmVbcl0uY2FsbCh0KTtyZXR1cm4gaT9hOnZvaWQgMH0sUHg9KCgpPT57bGV0IHQ9W3BlKCJkZWVzLWlucHV0LXJhZGlvZ3JvdXAiKV0sZSxhPVtdLGkscj1YZSxzLG49W10sbz1bXSxkLGM9W10saD1bXSxsLGY9W10sZz1bXSx5LHY9W10sbT1bXTt2YXIgeD1jbGFzcyBleHRlbmRzIHJ7c3RhdGlje2k9dGhpc31zdGF0aWN7bGV0IE09dHlwZW9mIFN5bWJvbD09ImZ1bmN0aW9uIiYmU3ltYm9sLm1ldGFkYXRhP09iamVjdC5jcmVhdGUocltTeW1ib2wubWV0YWRhdGFdPz9udWxsKTp2b2lkIDA7cz1bSSh7dHlwZTpBcnJheX0pXSxkPVtJKCldLGw9W0koe3R5cGU6U3RyaW5nfSldLHk9W0koe3R5cGU6U3RyaW5nLHJlZmxlY3Q6ITB9KV0seDgodGhpcyxudWxsLHMse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJvcHRpb25zIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpTPT4ib3B0aW9ucyJpbiBTLGdldDpTPT5TLm9wdGlvbnMsc2V0OihTLEYpPT57Uy5vcHRpb25zPUZ9fSxtZXRhZGF0YTpNfSxuLG8pLHg4KHRoaXMsbnVsbCxkLHtraW5kOiJhY2Nlc3NvciIsbmFtZToic2VsZWN0ZWRPcHRpb24iLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOlM9PiJzZWxlY3RlZE9wdGlvbiJpbiBTLGdldDpTPT5TLnNlbGVjdGVkT3B0aW9uLHNldDooUyxGKT0+e1Muc2VsZWN0ZWRPcHRpb249Rn19LG1ldGFkYXRhOk19LGMsaCkseDgodGhpcyxudWxsLGwse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJkaXJlY3Rpb24iLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOlM9PiJkaXJlY3Rpb24iaW4gUyxnZXQ6Uz0+Uy5kaXJlY3Rpb24sc2V0OihTLEYpPT57Uy5kaXJlY3Rpb249Rn19LG1ldGFkYXRhOk19LGYsZykseDgodGhpcyxudWxsLHkse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJ2YWxpZGF0aW9uU3RhdGUiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOlM9PiJ2YWxpZGF0aW9uU3RhdGUiaW4gUyxnZXQ6Uz0+Uy52YWxpZGF0aW9uU3RhdGUsc2V0OihTLEYpPT57Uy52YWxpZGF0aW9uU3RhdGU9Rn19LG1ldGFkYXRhOk19LHYsbSkseDgobnVsbCxlPXt2YWx1ZTppfSx0LHtraW5kOiJjbGFzcyIsbmFtZTppLm5hbWUsbWV0YWRhdGE6TX0sbnVsbCxhKSx4PWk9ZS52YWx1ZSxNJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoaSxTeW1ib2wubWV0YWRhdGEse2VudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwLHZhbHVlOk19KX1zdGF0aWMgZGVtbz1zdXQ7c3RhdGljIGRlbW9Hcm91cHM9WyJJbnB1dCJdOyNlPVBzKHRoaXMsbixbXSk7Z2V0IG9wdGlvbnMoKXtyZXR1cm4gdGhpcy4jZX1zZXQgb3B0aW9ucyhNKXt0aGlzLiNlPU19I3Q9KFBzKHRoaXMsbyksUHModGhpcyxjLCIiKSk7Z2V0IHNlbGVjdGVkT3B0aW9uKCl7cmV0dXJuIHRoaXMuI3R9c2V0IHNlbGVjdGVkT3B0aW9uKE0pe3RoaXMuI3Q9TX0jYT0oUHModGhpcyxoKSxQcyh0aGlzLGYsInZlcnRpY2FsIikpO2dldCBkaXJlY3Rpb24oKXtyZXR1cm4gdGhpcy4jYX1zZXQgZGlyZWN0aW9uKE0pe3RoaXMuI2E9TX0jaT0oUHModGhpcyxnKSxQcyh0aGlzLHYsbnVsbCkpO2dldCB2YWxpZGF0aW9uU3RhdGUoKXtyZXR1cm4gdGhpcy4jaX1zZXQgdmFsaWRhdGlvblN0YXRlKE0pe3RoaXMuI2k9TX1nZXQgdmFsdWUoKXtsZXQgTT10aGlzLmdldE9wdGlvbkJ5S2V5KHRoaXMuc2VsZWN0ZWRPcHRpb24pO3JldHVybiB0eXBlb2YgTT09Im9iamVjdCImJk0ucGF5bG9hZCE9PXZvaWQgMD9NLnBheWxvYWQ6dGhpcy5zZWxlY3RlZE9wdGlvbn1zZXQgdmFsdWUoTSl7aWYodHlwZW9mIE09PSJzdHJpbmciKXRoaXMuc2VsZWN0ZWRPcHRpb249TTtlbHNle2xldCBTPXRoaXMub3B0aW9ucy5maW5kKEY9PnR5cGVvZiBGPT0ib2JqZWN0IiYmRi5wYXlsb2FkPT09TSk7UyYmdHlwZW9mIFM9PSJvYmplY3QiJiYodGhpcy5zZWxlY3RlZE9wdGlvbj1TLmtleSl9fXN0YXRpYyBzdHlsZXM9W0NlLC4uLlhlLmJhc2VTdHlsZXMscC5kZWZhdWx0U3R5bGVzLFFgCiAgICAgIC8qIFRPRE86IE1pZ3JhdGUgaGFyZGNvZGVkIHZhbHVlcyB0byAtLWRlZXMtKiBDU1MgdmFyaWFibGVzICovCiAgICAgICogewogICAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7CiAgICAgIH0KCiAgICAgIDpob3N0IHsKICAgICAgICBkaXNwbGF5OiBibG9jazsKICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgICAgZm9udC1mYW1pbHk6IC1hcHBsZS1zeXN0ZW0sIEJsaW5rTWFjU3lzdGVtRm9udCwgJ1NlZ29lIFVJJywgJ1JvYm90bycsIHNhbnMtc2VyaWY7CiAgICAgIH0KCiAgICAgIC5tYWluY29udGFpbmVyIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgICAgZ2FwOiAxMHB4OwogICAgICB9CgogICAgICAubWFpbmNvbnRhaW5lci5ob3Jpem9udGFsIHsKICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93OwogICAgICAgIGZsZXgtd3JhcDogd3JhcDsKICAgICAgICBnYXA6IDIwcHg7CiAgICAgIH0KCiAgICAgIC5yYWRpby1vcHRpb24gewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBnYXA6IDEwcHg7CiAgICAgICAgcGFkZGluZzogNnB4IDA7CiAgICAgICAgY3Vyc29yOiBwb2ludGVyOwogICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjJzIGN1YmljLWJlemllcigwLjQsIDAsIDAuMiwgMSk7CiAgICAgICAgdXNlci1zZWxlY3Q6IG5vbmU7CiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICAgIGJvcmRlci1yYWRpdXM6IDRweDsKICAgICAgfQoKICAgICAgLm1haW5jb250YWluZXIuaG9yaXpvbnRhbCAucmFkaW8tb3B0aW9uIHsKICAgICAgICBwYWRkaW5nOiA2cHggMjBweCA2cHggMDsKICAgICAgfQoKICAgICAgLnJhZGlvLW9wdGlvbjpob3ZlciAucmFkaW8tY2lyY2xlIHsKICAgICAgICBib3JkZXItY29sb3I6ICR7cC5iZFRoZW1lKCJoc2woMjE1IDIwLjIlIDY1LjElKSIsImhzbCgyMTUgMjAuMiUgMzUuMSUpIil9OwogICAgICAgIGJhY2tncm91bmQ6ICR7cC5iZFRoZW1lKCJoc2woMjEwIDQwJSA5Ni4xJSkiLCJoc2woMjE1IDIwLjIlIDExLjglKSIpfTsKICAgICAgfQoKICAgICAgLnJhZGlvLW9wdGlvbjpob3ZlciAucmFkaW8tbGFiZWwgewogICAgICAgIGNvbG9yOiAke3AuYmRUaGVtZSgiaHNsKDIxNS4zIDI1JSA4LjglKSIsImhzbCgyMTAgNDAlIDk4JSkiKX07CiAgICAgIH0KCiAgICAgIC5yYWRpby1jaXJjbGUgewogICAgICAgIHdpZHRoOiAyMHB4OwogICAgICAgIGhlaWdodDogMjBweDsKICAgICAgICBib3JkZXItcmFkaXVzOiA1MCU7CiAgICAgICAgYm9yZGVyOiAycHggc29saWQgJHtwLmJkVGhlbWUoImhzbCgyMTUgMjAuMiUgNjUuMSUpIiwiaHNsKDIxNSAyMC4yJSAzNS4xJSkiKX07CiAgICAgICAgYmFja2dyb3VuZDogJHtwLmJkVGhlbWUoImhzbCgwIDAlIDEwMCUpIiwiaHNsKDIxNSAzMCUgNi44JSkiKX07CiAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuMnMgY3ViaWMtYmV6aWVyKDAuNCwgMCwgMC4yLCAxKTsKICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgICAgZmxleC1zaHJpbms6IDA7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOwogICAgICB9CgogICAgICAucmFkaW8tb3B0aW9uLnNlbGVjdGVkIC5yYWRpby1jaXJjbGUgewogICAgICAgIGJvcmRlci1jb2xvcjogJHtwLmJkVGhlbWUoImhzbCgyMTcuMiA5MS4yJSA1OS44JSkiLCJoc2woMjEzLjEgOTMuOSUgNjcuOCUpIil9OwogICAgICAgIGJhY2tncm91bmQ6ICR7cC5iZFRoZW1lKCJoc2woMjE3LjIgOTEuMiUgNTkuOCUpIiwiaHNsKDIxMy4xIDkzLjklIDY3LjglKSIpfTsKICAgICAgfQoKICAgICAgLnJhZGlvLW9wdGlvbi5zZWxlY3RlZCAucmFkaW8tY2lyY2xlOjphZnRlciB7CiAgICAgICAgY29udGVudDogJyc7CiAgICAgICAgcG9zaXRpb246IGFic29sdXRlOwogICAgICAgIHdpZHRoOiA4cHg7CiAgICAgICAgaGVpZ2h0OiA4cHg7CiAgICAgICAgYm9yZGVyLXJhZGl1czogNTAlOwogICAgICAgIGJhY2tncm91bmQ6ICR7cC5iZFRoZW1lKCJoc2woMCAwJSAxMDAlKSIsImhzbCgyMTUgMzAlIDYuOCUpIil9OwogICAgICAgIHRyYW5zZm9ybTogc2NhbGUoMCk7CiAgICAgICAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDAuMnMgY3ViaWMtYmV6aWVyKDAuNCwgMCwgMC4yLCAxKTsKICAgICAgfQoKICAgICAgLnJhZGlvLW9wdGlvbi5zZWxlY3RlZCAucmFkaW8tY2lyY2xlOjphZnRlciB7CiAgICAgICAgdHJhbnNmb3JtOiBzY2FsZSgxKTsKICAgICAgfQoKICAgICAgLnJhZGlvLWNpcmNsZTpmb2N1cy12aXNpYmxlIHsKICAgICAgICBvdXRsaW5lOiBub25lOwogICAgICAgIGJveC1zaGFkb3c6IDAgMCAwIDJweCAke3AuYmRUaGVtZSgiaHNsKDAgMCUgMTAwJSkiLCJoc2woMjE1IDMwJSAzLjklKSIpfSwKICAgICAgICAgICAgICAgICAgICAwIDAgMCA0cHggJHtwLmJkVGhlbWUoImhzbCgyMTcuMiA5MS4yJSA1OS44JSkiLCJoc2woMjEzLjEgOTMuOSUgNjcuOCUpIil9OwogICAgICB9CgogICAgICAucmFkaW8tbGFiZWwgewogICAgICAgIGZvbnQtc2l6ZTogMTRweDsKICAgICAgICBmb250LXdlaWdodDogNTAwOwogICAgICAgIGNvbG9yOiAke3AuYmRUaGVtZSgiaHNsKDIxNS4zIDI1JSAyNi43JSkiLCJoc2woMjE3LjkgMTAuNiUgNzQuOSUpIil9OwogICAgICAgIHRyYW5zaXRpb246IGNvbG9yIDAuMnMgY3ViaWMtYmV6aWVyKDAuNCwgMCwgMC4yLCAxKTsKICAgICAgICBsZXR0ZXItc3BhY2luZzogLTAuMDA2ZW07CiAgICAgICAgbGluZS1oZWlnaHQ6IDIwcHg7CiAgICAgIH0KCiAgICAgIC5yYWRpby1vcHRpb24uc2VsZWN0ZWQgLnJhZGlvLWxhYmVsIHsKICAgICAgICBjb2xvcjogJHtwLmJkVGhlbWUoImhzbCgyMTUuMyAyNSUgOC44JSkiLCJoc2woMjEwIDQwJSA5OCUpIil9OwogICAgICB9CgogICAgICA6aG9zdChbZGlzYWJsZWRdKSAucmFkaW8tb3B0aW9uIHsKICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkOwogICAgICAgIG9wYWNpdHk6IDAuNTsKICAgICAgfQoKICAgICAgOmhvc3QoW2Rpc2FibGVkXSkgLnJhZGlvLW9wdGlvbjpob3ZlciAucmFkaW8tY2lyY2xlIHsKICAgICAgICBib3JkZXItY29sb3I6ICR7cC5iZFRoZW1lKCJoc2woMjE1IDIwLjIlIDY1LjElKSIsImhzbCgyMTUgMjAuMiUgMzUuMSUpIil9OwogICAgICAgIGJhY2tncm91bmQ6ICR7cC5iZFRoZW1lKCJoc2woMCAwJSAxMDAlKSIsImhzbCgyMTUgMzAlIDYuOCUpIil9OwogICAgICB9CgogICAgICA6aG9zdChbZGlzYWJsZWRdKSAucmFkaW8tb3B0aW9uOmhvdmVyIC5yYWRpby1sYWJlbCB7CiAgICAgICAgY29sb3I6ICR7cC5iZFRoZW1lKCJoc2woMjE1LjMgMjUlIDI2LjclKSIsImhzbCgyMTcuOSAxMC42JSA3NC45JSkiKX07CiAgICAgIH0KCiAgICAgIC5sYWJlbC10ZXh0IHsKICAgICAgICBmb250LXNpemU6IDE0cHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDsKICAgICAgICBjb2xvcjogJHtwLmJkVGhlbWUoImhzbCgyMTUuMyAyNSUgOC44JSkiLCJoc2woMjEwIDQwJSA5OCUpIil9OwogICAgICAgIG1hcmdpbi1ib3R0b206IDEwcHg7CiAgICAgICAgbGV0dGVyLXNwYWNpbmc6IC0wLjAwNmVtOwogICAgICAgIGxpbmUtaGVpZ2h0OiAyMHB4OwogICAgICB9CgogICAgICAuZGVzY3JpcHRpb24tdGV4dCB7CiAgICAgICAgZm9udC1zaXplOiAxM3B4OwogICAgICAgIGNvbG9yOiAke3AuYmRUaGVtZSgiaHNsKDIxNS40IDE2LjMlIDU2LjklKSIsImhzbCgyMTUgMjAuMiUgNTUuMSUpIil9OwogICAgICAgIG1hcmdpbi10b3A6IDEwcHg7CiAgICAgICAgbGluZS1oZWlnaHQ6IDEuNTsKICAgICAgICBsZXR0ZXItc3BhY2luZzogLTAuMDAzZW07CiAgICAgIH0KCiAgICAgIC8qIFZhbGlkYXRpb24gc3R5bGVzICovCiAgICAgIDpob3N0KFt2YWxpZGF0aW9uU3RhdGU9ImludmFsaWQiXSkgLnJhZGlvLWNpcmNsZSB7CiAgICAgICAgYm9yZGVyLWNvbG9yOiAke3AuYmRUaGVtZSgiaHNsKDAgNzIuMiUgNTAuNiUpIiwiaHNsKDAgNjIuOCUgMzAuNiUpIil9OwogICAgICB9CgogICAgICA6aG9zdChbdmFsaWRhdGlvblN0YXRlPSJpbnZhbGlkIl0pIC5yYWRpby1vcHRpb24uc2VsZWN0ZWQgLnJhZGlvLWNpcmNsZSB7CiAgICAgICAgYm9yZGVyLWNvbG9yOiAke3AuYmRUaGVtZSgiaHNsKDAgNzIuMiUgNTAuNiUpIiwiaHNsKDAgNjIuOCUgMzAuNiUpIil9OwogICAgICAgIGJhY2tncm91bmQ6ICR7cC5iZFRoZW1lKCJoc2woMCA3Mi4yJSA1MC42JSkiLCJoc2woMCA2Mi44JSAzMC42JSkiKX07CiAgICAgIH0KCiAgICAgIDpob3N0KFt2YWxpZGF0aW9uU3RhdGU9InZhbGlkIl0pIC5yYWRpby1vcHRpb24uc2VsZWN0ZWQgLnJhZGlvLWNpcmNsZSB7CiAgICAgICAgYm9yZGVyLWNvbG9yOiAke3AuYmRUaGVtZSgiaHNsKDE0Mi4xIDcwLjYlIDQ1LjMlKSIsImhzbCgxNDIuMSA3Ni4yJSAzNi4zJSkiKX07CiAgICAgICAgYmFja2dyb3VuZDogJHtwLmJkVGhlbWUoImhzbCgxNDIuMSA3MC42JSA0NS4zJSkiLCJoc2woMTQyLjEgNzYuMiUgMzYuMyUpIil9OwogICAgICB9CgogICAgICA6aG9zdChbdmFsaWRhdGlvblN0YXRlPSJ3YXJuIl0pIC5yYWRpby1vcHRpb24uc2VsZWN0ZWQgLnJhZGlvLWNpcmNsZSB7CiAgICAgICAgYm9yZGVyLWNvbG9yOiAke3AuYmRUaGVtZSgiaHNsKDQ1LjQgOTMuNCUgNDcuNSUpIiwiaHNsKDQ1LjQgOTMuNCUgNDcuNSUpIil9OwogICAgICAgIGJhY2tncm91bmQ6ICR7cC5iZFRoZW1lKCJoc2woNDUuNCA5My40JSA0Ny41JSkiLCJoc2woNDUuNCA5My40JSA0Ny41JSkiKX07CiAgICAgIH0KCiAgICAgIC8qIE92ZXJyaWRlIGJhc2UgZ3JpZCBsYXlvdXQgZm9yIHJhZGlvZ3JvdXAgdG8gcHJldmVudCBsYXJnZSBnYXBzICovCiAgICAgIDpob3N0KFtsYWJlbC1wb3NpdGlvbj0ibGVmdCJdKSAuaW5wdXQtd3JhcHBlciB7CiAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiBhdXRvIGF1dG87CiAgICAgIH0KCiAgICAgIDpob3N0KFtsYWJlbC1wb3NpdGlvbj0icmlnaHQiXSkgLmlucHV0LXdyYXBwZXIgewogICAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogYXV0byBhdXRvOwogICAgICB9CiAgICBgXTtyZW5kZXIoKXtyZXR1cm4gd2AKICAgICAgPGRpdiBjbGFzcz0iaW5wdXQtd3JhcHBlciI+CiAgICAgICAgJHt0aGlzLmxhYmVsP3dgPGRpdiBjbGFzcz0ibGFiZWwtdGV4dCI+JHt0aGlzLmxhYmVsfTwvZGl2PmA6IiJ9CiAgICAgICAgPGRpdiBjbGFzcz0ibWFpbmNvbnRhaW5lciAke3RoaXMuZGlyZWN0aW9ufSI+CiAgICAgICAgICAke3RoaXMub3B0aW9ucy5tYXAoTT0+e2xldCBTPXRoaXMuZ2V0T3B0aW9uS2V5KE0pLEY9dGhpcy5nZXRPcHRpb25MYWJlbChNKSxfPXRoaXMuc2VsZWN0ZWRPcHRpb249PT1TO3JldHVybiB3YAogICAgICAgICAgICAgIDxkaXYgCiAgICAgICAgICAgICAgICBjbGFzcz0icmFkaW8tb3B0aW9uICR7Xz8ic2VsZWN0ZWQiOiIifSIKICAgICAgICAgICAgICAgIEBjbGljaz0iJHsoKT0+dGhpcy5zZWxlY3RPcHRpb24oUyl9IgogICAgICAgICAgICAgICAgQGtleWRvd249IiR7az0+dGhpcy5oYW5kbGVLZXlkb3duKGssUyl9IgogICAgICAgICAgICAgID4KICAgICAgICAgICAgICAgIDxkaXYgCiAgICAgICAgICAgICAgICAgIGNsYXNzPSJyYWRpby1jaXJjbGUiIAogICAgICAgICAgICAgICAgICB0YWJpbmRleD0iJHt0aGlzLmRpc2FibGVkPyItMSI6IjAifSIKICAgICAgICAgICAgICAgICAgcm9sZT0icmFkaW8iCiAgICAgICAgICAgICAgICAgIGFyaWEtY2hlY2tlZD0iJHtffSIKICAgICAgICAgICAgICAgICAgYXJpYS1sYWJlbD0iJHtGfSIKICAgICAgICAgICAgICAgID48L2Rpdj4KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InJhZGlvLWxhYmVsIj4ke0Z9PC9kaXY+CiAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIGB9KX0KICAgICAgICA8L2Rpdj4KICAgICAgICAke3RoaXMuZGVzY3JpcHRpb24/d2A8ZGl2IGNsYXNzPSJkZXNjcmlwdGlvbi10ZXh0Ij4ke3RoaXMuZGVzY3JpcHRpb259PC9kaXY+YDoiIn0KICAgICAgPC9kaXY+CiAgICBgfWdldE9wdGlvbktleShNKXtyZXR1cm4gdHlwZW9mIE09PSJzdHJpbmciP006TS5rZXl9Z2V0T3B0aW9uTGFiZWwoTSl7cmV0dXJuIHR5cGVvZiBNPT0ic3RyaW5nIj9NOk0ub3B0aW9ufWdldE9wdGlvbkJ5S2V5KE0pe3JldHVybiB0aGlzLm9wdGlvbnMuZmluZChTPT50aGlzLmdldE9wdGlvbktleShTKT09PU0pfXNlbGVjdE9wdGlvbihNKXtpZih0aGlzLmRpc2FibGVkKXJldHVybjtsZXQgUz10aGlzLnNlbGVjdGVkT3B0aW9uO3RoaXMuc2VsZWN0ZWRPcHRpb249TSxTIT09TSYmKHRoaXMuZGlzcGF0Y2hFdmVudChuZXcgQ3VzdG9tRXZlbnQoImNoYW5nZSIse2RldGFpbDp7dmFsdWU6dGhpcy52YWx1ZX0sYnViYmxlczohMCxjb21wb3NlZDohMH0pKSx0aGlzLmRpc3BhdGNoRXZlbnQobmV3IEN1c3RvbUV2ZW50KCJpbnB1dCIse2RldGFpbDp7dmFsdWU6dGhpcy52YWx1ZX0sYnViYmxlczohMCxjb21wb3NlZDohMH0pKSx0aGlzLmNoYW5nZVN1YmplY3QubmV4dCh0aGlzKSl9Z2V0VmFsdWUoKXtyZXR1cm4gdGhpcy52YWx1ZX1zZXRWYWx1ZShNKXt0aGlzLnZhbHVlPU19YXN5bmMgdmFsaWRhdGUoKXtyZXR1cm4gdGhpcy5yZXF1aXJlZCYmIXRoaXMuc2VsZWN0ZWRPcHRpb24/KHRoaXMudmFsaWRhdGlvblN0YXRlPSJpbnZhbGlkIiwhMSk6KHRoaXMudmFsaWRhdGlvblN0YXRlPSJ2YWxpZCIsITApfWFzeW5jIGZpcnN0VXBkYXRlZCgpe2lmKCF0aGlzLnNlbGVjdGVkT3B0aW9uJiZ0aGlzLm9wdGlvbnMubGVuZ3RoPjAmJiF0aGlzLnJlcXVpcmVkKXtsZXQgTT10aGlzLm9wdGlvbnNbMF07dGhpcy5zZWxlY3RlZE9wdGlvbj10aGlzLmdldE9wdGlvbktleShNKX19aGFuZGxlS2V5ZG93bihNLFMpe3RoaXMuZGlzYWJsZWR8fChNLmtleT09PSIgInx8TS5rZXk9PT0iRW50ZXIiPyhNLnByZXZlbnREZWZhdWx0KCksdGhpcy5zZWxlY3RPcHRpb24oUykpOk0ua2V5PT09IkFycm93RG93biJ8fE0ua2V5PT09IkFycm93UmlnaHQiPyhNLnByZXZlbnREZWZhdWx0KCksdGhpcy5mb2N1c05leHRPcHRpb24oKSk6KE0ua2V5PT09IkFycm93VXAifHxNLmtleT09PSJBcnJvd0xlZnQiKSYmKE0ucHJldmVudERlZmF1bHQoKSx0aGlzLmZvY3VzUHJldmlvdXNPcHRpb24oKSkpfWZvY3VzTmV4dE9wdGlvbigpe2xldCBNPUFycmF5LmZyb20odGhpcy5zaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3JBbGwoIi5yYWRpby1jaXJjbGUiKSksRj0oTS5maW5kSW5kZXgoXz0+Xz09PXRoaXMuc2hhZG93Um9vdC5hY3RpdmVFbGVtZW50KSsxKSVNLmxlbmd0aDtNW0ZdLmZvY3VzKCl9Zm9jdXNQcmV2aW91c09wdGlvbigpe2xldCBNPUFycmF5LmZyb20odGhpcy5zaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3JBbGwoIi5yYWRpby1jaXJjbGUiKSksUz1NLmZpbmRJbmRleChfPT5fPT09dGhpcy5zaGFkb3dSb290LmFjdGl2ZUVsZW1lbnQpLEY9Uzw9MD9NLmxlbmd0aC0xOlMtMTtNW0ZdLmZvY3VzKCl9Y29uc3RydWN0b3IoKXtzdXBlciguLi5hcmd1bWVudHMpLFBzKHRoaXMsbSl9c3RhdGlje1BzKGksYSl9fTtyZXR1cm4geD1pfSkoKX0pO3ZhciBvdXQsbHV0PWIoKCk9Pnt1ZSgpO291dD0oKT0+d2AKICA8c3R5bGU+CiAgICAuZGVtby1jb250YWluZXIgewogICAgICBkaXNwbGF5OiBmbGV4OwogICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICBnYXA6IDI0cHg7CiAgICAgIHBhZGRpbmc6IDI0cHg7CiAgICB9CiAgICAuZGVtby1zZWN0aW9uIHsKICAgICAgZGlzcGxheTogZmxleDsKICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgZ2FwOiAxMnB4OwogICAgfQogICAgLmRlbW8tc2VjdGlvbiBoMyB7CiAgICAgIG1hcmdpbjogMCAwIDhweCAwOwogICAgICBmb250LXNpemU6IDE0cHg7CiAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7CiAgICAgIGNvbG9yOiAjODg4OwogICAgfQogICAgLmRlbW8tcm93IHsKICAgICAgZGlzcGxheTogZmxleDsKICAgICAgZ2FwOiAxMnB4OwogICAgICBmbGV4LXdyYXA6IHdyYXA7CiAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICB9CiAgPC9zdHlsZT4KICA8ZGl2IGNsYXNzPSJkZW1vLWNvbnRhaW5lciI+CiAgICA8ZGl2IGNsYXNzPSJkZW1vLXNlY3Rpb24iPgogICAgICA8aDM+QmFzaWMgVXNhZ2U8L2gzPgogICAgICA8ZGl2IGNsYXNzPSJkZW1vLXJvdyI+CiAgICAgICAgPGRlZXMtZm9ybS1zdWJtaXQ+U3VibWl0IEZvcm08L2RlZXMtZm9ybS1zdWJtaXQ+CiAgICAgICAgPGRlZXMtZm9ybS1zdWJtaXQgdGV4dD0iV2l0aCBUZXh0IFByb3BlcnR5Ij48L2RlZXMtZm9ybS1zdWJtaXQ+CiAgICAgIDwvZGl2PgogICAgPC9kaXY+CgogICAgPGRpdiBjbGFzcz0iZGVtby1zZWN0aW9uIj4KICAgICAgPGgzPldpdGggSWNvbnMgKGluaGVyaXRlZCBmcm9tIERlZXNCdXR0b24pPC9oMz4KICAgICAgPGRpdiBjbGFzcz0iZGVtby1yb3ciPgogICAgICAgIDxkZWVzLWZvcm0tc3VibWl0IGljb249Imx1Y2lkZTpzZW5kIj5TdWJtaXQ8L2RlZXMtZm9ybS1zdWJtaXQ+CiAgICAgICAgPGRlZXMtZm9ybS1zdWJtaXQgaWNvbj0ibHVjaWRlOnNhdmUiIGljb25Qb3NpdGlvbj0ibGVmdCI+U2F2ZSBGb3JtPC9kZWVzLWZvcm0tc3VibWl0PgogICAgICAgIDxkZWVzLWZvcm0tc3VibWl0IGljb249Imx1Y2lkZTphcnJvdy1yaWdodCIgaWNvblBvc2l0aW9uPSJyaWdodCI+Q29udGludWU8L2RlZXMtZm9ybS1zdWJtaXQ+CiAgICAgIDwvZGl2PgogICAgPC9kaXY+CgogICAgPGRpdiBjbGFzcz0iZGVtby1zZWN0aW9uIj4KICAgICAgPGgzPkJ1dHRvbiBUeXBlczwvaDM+CiAgICAgIDxkaXYgY2xhc3M9ImRlbW8tcm93Ij4KICAgICAgICA8ZGVlcy1mb3JtLXN1Ym1pdCB0eXBlPSJoaWdobGlnaHRlZCIgaWNvbj0ibHVjaWRlOnNlbmQiPkhpZ2hsaWdodGVkPC9kZWVzLWZvcm0tc3VibWl0PgogICAgICAgIDxkZWVzLWZvcm0tc3VibWl0IHR5cGU9Im5vcm1hbCIgaWNvbj0ibHVjaWRlOnNlbmQiPk5vcm1hbDwvZGVlcy1mb3JtLXN1Ym1pdD4KICAgICAgICA8ZGVlcy1mb3JtLXN1Ym1pdCB0eXBlPSJkaXNjcmVldCIgaWNvbj0ibHVjaWRlOnNlbmQiPkRpc2NyZWV0PC9kZWVzLWZvcm0tc3VibWl0PgogICAgICA8L2Rpdj4KICAgIDwvZGl2PgoKICAgIDxkaXYgY2xhc3M9ImRlbW8tc2VjdGlvbiI+CiAgICAgIDxoMz5TaXplczwvaDM+CiAgICAgIDxkaXYgY2xhc3M9ImRlbW8tcm93Ij4KICAgICAgICA8ZGVlcy1mb3JtLXN1Ym1pdCBzaXplPSJzbWFsbCIgaWNvbj0ibHVjaWRlOnNlbmQiPlNtYWxsPC9kZWVzLWZvcm0tc3VibWl0PgogICAgICAgIDxkZWVzLWZvcm0tc3VibWl0IHNpemU9Im5vcm1hbCIgaWNvbj0ibHVjaWRlOnNlbmQiPk5vcm1hbDwvZGVlcy1mb3JtLXN1Ym1pdD4KICAgICAgICA8ZGVlcy1mb3JtLXN1Ym1pdCBzaXplPSJsYXJnZSIgaWNvbj0ibHVjaWRlOnNlbmQiPkxhcmdlPC9kZWVzLWZvcm0tc3VibWl0PgogICAgICA8L2Rpdj4KICAgIDwvZGl2PgoKICAgIDxkaXYgY2xhc3M9ImRlbW8tc2VjdGlvbiI+CiAgICAgIDxoMz5TdGF0ZXM8L2gzPgogICAgICA8ZGl2IGNsYXNzPSJkZW1vLXJvdyI+CiAgICAgICAgPGRlZXMtZm9ybS1zdWJtaXQgc3RhdHVzPSJub3JtYWwiIGljb249Imx1Y2lkZTpzZW5kIj5Ob3JtYWw8L2RlZXMtZm9ybS1zdWJtaXQ+CiAgICAgICAgPGRlZXMtZm9ybS1zdWJtaXQgc3RhdHVzPSJwZW5kaW5nIiBpY29uPSJsdWNpZGU6c2VuZCI+UGVuZGluZzwvZGVlcy1mb3JtLXN1Ym1pdD4KICAgICAgICA8ZGVlcy1mb3JtLXN1Ym1pdCBzdGF0dXM9InN1Y2Nlc3MiIGljb249Imx1Y2lkZTpjaGVjayI+U3VjY2VzczwvZGVlcy1mb3JtLXN1Ym1pdD4KICAgICAgICA8ZGVlcy1mb3JtLXN1Ym1pdCBzdGF0dXM9ImVycm9yIiBpY29uPSJsdWNpZGU6eCI+RXJyb3I8L2RlZXMtZm9ybS1zdWJtaXQ+CiAgICAgICAgPGRlZXMtZm9ybS1zdWJtaXQgZGlzYWJsZWQgaWNvbj0ibHVjaWRlOnNlbmQiPkRpc2FibGVkPC9kZWVzLWZvcm0tc3VibWl0PgogICAgICA8L2Rpdj4KICAgIDwvZGl2PgoKICAgIDxkaXYgY2xhc3M9ImRlbW8tc2VjdGlvbiI+CiAgICAgIDxoMz5JbiBhIEZvcm0gQ29udGV4dDwvaDM+CiAgICAgIDxkZWVzLWZvcm0+CiAgICAgICAgPGRlZXMtaW5wdXQtdGV4dCBsYWJlbD0iTmFtZSIga2V5PSJuYW1lIj48L2RlZXMtaW5wdXQtdGV4dD4KICAgICAgICA8ZGVlcy1pbnB1dC10ZXh0IGxhYmVsPSJFbWFpbCIga2V5PSJlbWFpbCI+PC9kZWVzLWlucHV0LXRleHQ+CiAgICAgICAgPGRlZXMtZm9ybS1zdWJtaXQgaWNvbj0ibHVjaWRlOnNlbmQiIHR5cGU9ImhpZ2hsaWdodGVkIj5TdWJtaXQgRm9ybTwvZGVlcy1mb3JtLXN1Ym1pdD4KICAgICAgPC9kZWVzLWZvcm0+CiAgICA8L2Rpdj4KICA8L2Rpdj4KYH0pO3ZhciBjbyxwYSxOeCxLMD1iKCgpPT57bHV0KCk7dWUoKTtxZSgpO2NvPWZ1bmN0aW9uKHQsZSxhLGkscixzKXtmdW5jdGlvbiBuKHgpe2lmKHghPT12b2lkIDAmJnR5cGVvZiB4IT0iZnVuY3Rpb24iKXRocm93IG5ldyBUeXBlRXJyb3IoIkZ1bmN0aW9uIGV4cGVjdGVkIik7cmV0dXJuIHh9Zm9yKHZhciBvPWkua2luZCxkPW89PT0iZ2V0dGVyIj8iZ2V0IjpvPT09InNldHRlciI/InNldCI6InZhbHVlIixjPSFlJiZ0P2kuc3RhdGljP3Q6dC5wcm90b3R5cGU6bnVsbCxoPWV8fChjP09iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoYyxpLm5hbWUpOnt9KSxsLGY9ITEsZz1hLmxlbmd0aC0xO2c+PTA7Zy0tKXt2YXIgeT17fTtmb3IodmFyIHYgaW4gaSl5W3ZdPXY9PT0iYWNjZXNzIj97fTppW3ZdO2Zvcih2YXIgdiBpbiBpLmFjY2Vzcyl5LmFjY2Vzc1t2XT1pLmFjY2Vzc1t2XTt5LmFkZEluaXRpYWxpemVyPWZ1bmN0aW9uKHgpe2lmKGYpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGFkZCBpbml0aWFsaXplcnMgYWZ0ZXIgZGVjb3JhdGlvbiBoYXMgY29tcGxldGVkIik7cy5wdXNoKG4oeHx8bnVsbCkpfTt2YXIgbT0oMCxhW2ddKShvPT09ImFjY2Vzc29yIj97Z2V0OmguZ2V0LHNldDpoLnNldH06aFtkXSx5KTtpZihvPT09ImFjY2Vzc29yIil7aWYobT09PXZvaWQgMCljb250aW51ZTtpZihtPT09bnVsbHx8dHlwZW9mIG0hPSJvYmplY3QiKXRocm93IG5ldyBUeXBlRXJyb3IoIk9iamVjdCBleHBlY3RlZCIpOyhsPW4obS5nZXQpKSYmKGguZ2V0PWwpLChsPW4obS5zZXQpKSYmKGguc2V0PWwpLChsPW4obS5pbml0KSkmJnIudW5zaGlmdChsKX1lbHNlKGw9bihtKSkmJihvPT09ImZpZWxkIj9yLnVuc2hpZnQobCk6aFtkXT1sKX1jJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoYyxpLm5hbWUsaCksZj0hMH0scGE9ZnVuY3Rpb24odCxlLGEpe2Zvcih2YXIgaT1hcmd1bWVudHMubGVuZ3RoPjIscj0wO3I8ZS5sZW5ndGg7cisrKWE9aT9lW3JdLmNhbGwodCxhKTplW3JdLmNhbGwodCk7cmV0dXJuIGk/YTp2b2lkIDB9LE54PSgoKT0+e2xldCB0PVtwZSgiZGVlcy1mb3JtLXN1Ym1pdCIpXSxlLGE9W10saSxyPXhlLHMsbj1bXSxvPVtdLGQsYz1bXSxoPVtdLGwsZj1bXSxnPVtdLHksdj1bXSxtPVtdLHgsTT1bXSxTPVtdLEYsXz1bXSxrPVtdLE4sTD1bXSxBPVtdO3ZhciBxPWNsYXNzIGV4dGVuZHMgcntzdGF0aWN7aT10aGlzfXN0YXRpY3tsZXQgQz10eXBlb2YgU3ltYm9sPT0iZnVuY3Rpb24iJiZTeW1ib2wubWV0YWRhdGE/T2JqZWN0LmNyZWF0ZShyW1N5bWJvbC5tZXRhZGF0YV0/P251bGwpOnZvaWQgMDtzPVtJKHt0eXBlOkJvb2xlYW4scmVmbGVjdDohMH0pXSxkPVtJKHt0eXBlOlN0cmluZ30pXSxsPVtJKHt0eXBlOlN0cmluZ30pXSx5PVtJKHt0eXBlOlN0cmluZyxyZWZsZWN0OiEwfSldLHg9W0koe3R5cGU6U3RyaW5nLHJlZmxlY3Q6ITB9KV0sRj1bSSh7dHlwZTpTdHJpbmd9KV0sTj1bSSh7dHlwZTpTdHJpbmd9KV0sY28odGhpcyxudWxsLHMse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJkaXNhYmxlZCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6ej0+ImRpc2FibGVkImluIHosZ2V0Ono9PnouZGlzYWJsZWQsc2V0Oih6LEUpPT57ei5kaXNhYmxlZD1FfX0sbWV0YWRhdGE6Q30sbixvKSxjbyh0aGlzLG51bGwsZCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InRleHQiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOno9PiJ0ZXh0ImluIHosZ2V0Ono9PnoudGV4dCxzZXQ6KHosRSk9Pnt6LnRleHQ9RX19LG1ldGFkYXRhOkN9LGMsaCksY28odGhpcyxudWxsLGwse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJzdGF0dXMiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOno9PiJzdGF0dXMiaW4geixnZXQ6ej0+ei5zdGF0dXMsc2V0Oih6LEUpPT57ei5zdGF0dXM9RX19LG1ldGFkYXRhOkN9LGYsZyksY28odGhpcyxudWxsLHkse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJ0eXBlIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczp6PT4idHlwZSJpbiB6LGdldDp6PT56LnR5cGUsc2V0Oih6LEUpPT57ei50eXBlPUV9fSxtZXRhZGF0YTpDfSx2LG0pLGNvKHRoaXMsbnVsbCx4LHtraW5kOiJhY2Nlc3NvciIsbmFtZToic2l6ZSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6ej0+InNpemUiaW4geixnZXQ6ej0+ei5zaXplLHNldDooeixFKT0+e3ouc2l6ZT1FfX0sbWV0YWRhdGE6Q30sTSxTKSxjbyh0aGlzLG51bGwsRix7a2luZDoiYWNjZXNzb3IiLG5hbWU6Imljb24iLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOno9PiJpY29uImluIHosZ2V0Ono9PnouaWNvbixzZXQ6KHosRSk9Pnt6Lmljb249RX19LG1ldGFkYXRhOkN9LF8sayksY28odGhpcyxudWxsLE4se2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJpY29uUG9zaXRpb24iLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOno9PiJpY29uUG9zaXRpb24iaW4geixnZXQ6ej0+ei5pY29uUG9zaXRpb24sc2V0Oih6LEUpPT57ei5pY29uUG9zaXRpb249RX19LG1ldGFkYXRhOkN9LEwsQSksY28obnVsbCxlPXt2YWx1ZTppfSx0LHtraW5kOiJjbGFzcyIsbmFtZTppLm5hbWUsbWV0YWRhdGE6Q30sbnVsbCxhKSxxPWk9ZS52YWx1ZSxDJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoaSxTeW1ib2wubWV0YWRhdGEse2VudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwLHZhbHVlOkN9KX1zdGF0aWMgZGVtbz1vdXQ7c3RhdGljIGRlbW9Hcm91cHM9WyJGb3JtIiwiQnV0dG9uIl07I2U9cGEodGhpcyxuLCExKTtnZXQgZGlzYWJsZWQoKXtyZXR1cm4gdGhpcy4jZX1zZXQgZGlzYWJsZWQoQyl7dGhpcy4jZT1DfSN0PShwYSh0aGlzLG8pLHBhKHRoaXMsYyx2b2lkIDApKTtnZXQgdGV4dCgpe3JldHVybiB0aGlzLiN0fXNldCB0ZXh0KEMpe3RoaXMuI3Q9Q30jYT0ocGEodGhpcyxoKSxwYSh0aGlzLGYsIm5vcm1hbCIpKTtnZXQgc3RhdHVzKCl7cmV0dXJuIHRoaXMuI2F9c2V0IHN0YXR1cyhDKXt0aGlzLiNhPUN9I2k9KHBhKHRoaXMsZykscGEodGhpcyx2LCJkZWZhdWx0IikpO2dldCB0eXBlKCl7cmV0dXJuIHRoaXMuI2l9c2V0IHR5cGUoQyl7dGhpcy4jaT1DfSNyPShwYSh0aGlzLG0pLHBhKHRoaXMsTSwiZGVmYXVsdCIpKTtnZXQgc2l6ZSgpe3JldHVybiB0aGlzLiNyfXNldCBzaXplKEMpe3RoaXMuI3I9Q30jcz0ocGEodGhpcyxTKSxwYSh0aGlzLF8sdm9pZCAwKSk7Z2V0IGljb24oKXtyZXR1cm4gdGhpcy4jc31zZXQgaWNvbihDKXt0aGlzLiNzPUN9I249KHBhKHRoaXMsaykscGEodGhpcyxMLCJsZWZ0IikpO2dldCBpY29uUG9zaXRpb24oKXtyZXR1cm4gdGhpcy4jbn1zZXQgaWNvblBvc2l0aW9uKEMpe3RoaXMuI249Q31jb25zdHJ1Y3Rvcigpe3N1cGVyKCkscGEodGhpcyxBKX1zdGF0aWMgc3R5bGVzPVtDZSxwLmRlZmF1bHRTdHlsZXMsUWAKICAgICAgOmhvc3QgewogICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jazsKICAgICAgfQogICAgICBkZWVzLWJ1dHRvbiB7CiAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgIH0KICAgIGBdO3JlbmRlcigpe3JldHVybiB3YAogICAgICA8ZGVlcy1idXR0b24KICAgICAgICAuc3RhdHVzPSR7dGhpcy5zdGF0dXN9CiAgICAgICAgLnR5cGU9JHt0aGlzLnR5cGV9CiAgICAgICAgLnNpemU9JHt0aGlzLnNpemV9CiAgICAgICAgLmljb249JHt0aGlzLmljb259CiAgICAgICAgLmljb25Qb3NpdGlvbj0ke3RoaXMuaWNvblBvc2l0aW9ufQogICAgICAgIC50ZXh0PSR7dGhpcy50ZXh0fQogICAgICAgID9kaXNhYmxlZD0ke3RoaXMuZGlzYWJsZWR9CiAgICAgICAgQGNsaWNrZWQ9JHt0aGlzLnN1Ym1pdH0KICAgICAgPgogICAgICAgIDxzbG90Pjwvc2xvdD4KICAgICAgPC9kZWVzLWJ1dHRvbj4KICAgIGB9YXN5bmMgc3VibWl0KCl7aWYodGhpcy5kaXNhYmxlZClyZXR1cm47bGV0IEM9dGhpcy5jbG9zZXN0KCJkZWVzLWZvcm0iKTtDJiZDLmdhdGhlckFuZERpc3BhdGNoJiZDLmdhdGhlckFuZERpc3BhdGNoKCl9YXN5bmMgZm9jdXMoKXtsZXQgQz1hd2FpdCB0aGlzLmRvbXRvb2xzUHJvbWlzZTt0aGlzLmRpc2FibGVkfHwoYXdhaXQgQy5jb252ZW5pZW5jZS5zbWFydGRlbGF5LmRlbGF5Rm9yKDApLHRoaXMuc3VibWl0KCkpfXN0YXRpY3twYShpLGEpfX07cmV0dXJuIHE9aX0pKCl9KTt2YXIgY3V0LGR1dD1iKCgpPT57dWUoKTt4MSgpO20yKCk7QWwoKTtLMCgpO2N1dD0oKT0+d2AKICA8c3R5bGU+CiAgICAke1FgCiAgICAgIC5kZW1vLWNvbnRhaW5lciB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICAgIGdhcDogMjRweDsKICAgICAgICBwYWRkaW5nOiAyNHB4OwogICAgICAgIG1heC13aWR0aDogMTIwMHB4OwogICAgICAgIG1hcmdpbjogMCBhdXRvOwogICAgICB9CiAgICAgIAogICAgICBkZWVzLXBhbmVsIHsKICAgICAgICBtYXJnaW4tYm90dG9tOiAyNHB4OwogICAgICB9CiAgICAgIAogICAgICBkZWVzLXBhbmVsOmxhc3QtY2hpbGQgewogICAgICAgIG1hcmdpbi1ib3R0b206IDA7CiAgICAgIH0KICAgICAgCiAgICAgIC5ob3Jpem9udGFsLWdyb3VwIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgZ2FwOiAxNnB4OwogICAgICAgIGZsZXgtd3JhcDogd3JhcDsKICAgICAgfQogICAgICAKICAgICAgLmlucHV0LWdyb3VwIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgICAgZ2FwOiAxNnB4OwogICAgICB9CgogICAgICAuc3BhY2VyIHsKICAgICAgICBoZWlnaHQ6IDIwMHB4OwogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKICAgICAgICBjb2xvcjogIzk5OTsKICAgICAgICBmb250LXNpemU6IDE0cHg7CiAgICAgIH0KICAgIGB9CiAgPC9zdHlsZT4KICAKICA8ZGl2IGNsYXNzPSJkZW1vLWNvbnRhaW5lciI+CiAgICA8ZGVlcy1kZW1vd3JhcHBlciAucnVuQWZ0ZXJSZW5kZXI9JHthc3luYyB0PT57bGV0IGU9dC5xdWVyeVNlbGVjdG9yKCdkZWVzLWlucHV0LWRyb3Bkb3duW2xhYmVsPSJTZWxlY3QgQ291bnRyeSJdJyksYT10LnF1ZXJ5U2VsZWN0b3IoJ2RlZXMtaW5wdXQtZHJvcGRvd25bbGFiZWw9IlNlbGVjdCBSb2xlIl0nKTtlJiZlLmFkZEV2ZW50TGlzdGVuZXIoInNlbGVjdGVkT3B0aW9uIixpPT57Y29uc29sZS5sb2coIkNvdW50cnkgc2VsZWN0ZWQ6IixpLmRldGFpbCl9KSxhJiZhLmFkZEV2ZW50TGlzdGVuZXIoInNlbGVjdGVkT3B0aW9uIixpPT57Y29uc29sZS5sb2coIlJvbGUgc2VsZWN0ZWQ6IixpLmRldGFpbCl9KX19PgogICAgICA8ZGVlcy1wYW5lbCAudGl0bGU9JHsiMS4gQmFzaWMgRHJvcGRvd25zIn0gLnN1YnRpdGxlPSR7IlN0YW5kYXJkIGRyb3Bkb3duIHdpdGggc2VhcmNoIGZ1bmN0aW9uYWxpdHkgYW5kIHZhcmlvdXMgb3B0aW9ucyJ9PgogICAgICAgIDxkaXYgY2xhc3M9ImlucHV0LWdyb3VwIj4KICAgICAgICAgIDxkZWVzLWlucHV0LWRyb3Bkb3duCiAgICAgICAgICAgIC5sYWJlbD0keyJTZWxlY3QgQ291bnRyeSJ9CiAgICAgICAgICAgIC5vcHRpb25zPSR7W3tvcHRpb246IlVuaXRlZCBTdGF0ZXMiLGtleToidXMifSx7b3B0aW9uOiJDYW5hZGEiLGtleToiY2EifSx7b3B0aW9uOiJHZXJtYW55IixrZXk6ImRlIn0se29wdGlvbjoiRnJhbmNlIixrZXk6ImZyIn0se29wdGlvbjoiVW5pdGVkIEtpbmdkb20iLGtleToidWsifSx7b3B0aW9uOiJBdXN0cmFsaWEiLGtleToiYXUifSx7b3B0aW9uOiJKYXBhbiIsa2V5OiJqcCJ9LHtvcHRpb246IkJyYXppbCIsa2V5OiJiciJ9XX0KICAgICAgICAgICAgLnNlbGVjdGVkT3B0aW9uPSR7e29wdGlvbjoiVW5pdGVkIFN0YXRlcyIsa2V5OiJ1cyJ9fQogICAgICAgICAgPjwvZGVlcy1pbnB1dC1kcm9wZG93bj4KCiAgICAgICAgICA8ZGVlcy1pbnB1dC1kcm9wZG93bgogICAgICAgICAgICAubGFiZWw9JHsiU2VsZWN0IFJvbGUifQogICAgICAgICAgICAub3B0aW9ucz0ke1t7b3B0aW9uOiJBZG1pbmlzdHJhdG9yIixrZXk6ImFkbWluIn0se29wdGlvbjoiRWRpdG9yIixrZXk6ImVkaXRvciJ9LHtvcHRpb246IlZpZXdlciIsa2V5OiJ2aWV3ZXIifSx7b3B0aW9uOiJHdWVzdCIsa2V5OiJndWVzdCJ9XX0KICAgICAgICAgID48L2RlZXMtaW5wdXQtZHJvcGRvd24+CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGVlcy1wYW5lbD4KICAgIDwvZGVlcy1kZW1vd3JhcHBlcj4KICAgIAogICAgPGRlZXMtZGVtb3dyYXBwZXIgLnJ1bkFmdGVyUmVuZGVyPSR7YXN5bmMgdD0+e2xldCBlPXQucXVlcnlTZWxlY3RvcigiZGVlcy1pbnB1dC1kcm9wZG93biIpO2UmJmUuYWRkRXZlbnRMaXN0ZW5lcigic2VsZWN0ZWRPcHRpb24iLGE9Pntjb25zb2xlLmxvZyhgUHJpb3JpdHkgY2hhbmdlZCB0bzogJHthLmRldGFpbC5vcHRpb259YCl9KX19PgogICAgICA8ZGVlcy1wYW5lbCAudGl0bGU9JHsiMi4gV2l0aG91dCBTZWFyY2gifSAuc3VidGl0bGU9JHsiRHJvcGRvd24gd2l0aCBzZWFyY2ggZnVuY3Rpb25hbGl0eSBkaXNhYmxlZCBmb3Igc2ltcGxlciBzZWxlY3Rpb24ifT4KICAgICAgICA8ZGVlcy1pbnB1dC1kcm9wZG93bgogICAgICAgICAgLmxhYmVsPSR7IlByaW9yaXR5IExldmVsIn0KICAgICAgICAgIC5lbmFibGVTZWFyY2g9JHshMX0KICAgICAgICAgIC5vcHRpb25zPSR7W3tvcHRpb246IkhpZ2giLGtleToiaGlnaCJ9LHtvcHRpb246Ik1lZGl1bSIsa2V5OiJtZWRpdW0ifSx7b3B0aW9uOiJMb3ciLGtleToibG93In1dfQogICAgICAgICAgLnNlbGVjdGVkT3B0aW9uPSR7e29wdGlvbjoiTWVkaXVtIixrZXk6Im1lZGl1bSJ9fQogICAgICAgID48L2RlZXMtaW5wdXQtZHJvcGRvd24+CiAgICAgIDwvZGVlcy1wYW5lbD4KICAgIDwvZGVlcy1kZW1vd3JhcHBlcj4KICAgIAogICAgPGRlZXMtZGVtb3dyYXBwZXIgLnJ1bkFmdGVyUmVuZGVyPSR7YXN5bmMgdD0+e3QucXVlcnlTZWxlY3RvckFsbCgiZGVlcy1pbnB1dC1kcm9wZG93biIpLmZvckVhY2goYT0+e2EuYWRkRXZlbnRMaXN0ZW5lcigic2VsZWN0ZWRPcHRpb24iLGk9PntsZXQgcj1hLmdldEF0dHJpYnV0ZSgibGFiZWwiKTtjb25zb2xlLmxvZyhgJHtyfTogJHtpLmRldGFpbC5vcHRpb259YCl9KX0pfX0+CiAgICAgIDxkZWVzLXBhbmVsIC50aXRsZT0keyIzLiBIb3Jpem9udGFsIExheW91dCJ9IC5zdWJ0aXRsZT0keyJNdWx0aXBsZSBkcm9wZG93bnMgaW4gYSBob3Jpem9udGFsIGxheW91dCBmb3IgY29tcGFjdCBmb3JtcyJ9PgogICAgICAgIDxkaXYgY2xhc3M9Imhvcml6b250YWwtZ3JvdXAiPgogICAgICAgICAgPGRlZXMtaW5wdXQtZHJvcGRvd24KICAgICAgICAgICAgLmxhYmVsPSR7IkRlcGFydG1lbnQifQogICAgICAgICAgICAubGF5b3V0TW9kZT0keyJob3Jpem9udGFsIn0KICAgICAgICAgICAgLm9wdGlvbnM9JHtbe29wdGlvbjoiRW5naW5lZXJpbmciLGtleToiZW5nIn0se29wdGlvbjoiRGVzaWduIixrZXk6ImRlc2lnbiJ9LHtvcHRpb246Ik1hcmtldGluZyIsa2V5OiJtYXJrZXRpbmcifSx7b3B0aW9uOiJTYWxlcyIsa2V5OiJzYWxlcyJ9XX0KICAgICAgICAgID48L2RlZXMtaW5wdXQtZHJvcGRvd24+CiAgICAgICAgICAKICAgICAgICAgIDxkZWVzLWlucHV0LWRyb3Bkb3duCiAgICAgICAgICAgIC5sYWJlbD0keyJUZWFtIFNpemUifQogICAgICAgICAgICAubGF5b3V0TW9kZT0keyJob3Jpem9udGFsIn0KICAgICAgICAgICAgLmVuYWJsZVNlYXJjaD0keyExfQogICAgICAgICAgICAub3B0aW9ucz0ke1t7b3B0aW9uOiIxLTUiLGtleToic21hbGwifSx7b3B0aW9uOiI2LTIwIixrZXk6Im1lZGl1bSJ9LHtvcHRpb246IjIxLTUwIixrZXk6ImxhcmdlIn0se29wdGlvbjoiNTArIixrZXk6InhsYXJnZSJ9XX0KICAgICAgICAgID48L2RlZXMtaW5wdXQtZHJvcGRvd24+CiAgICAgICAgICAKICAgICAgICAgIDxkZWVzLWlucHV0LWRyb3Bkb3duCiAgICAgICAgICAgIC5sYWJlbD0keyJMb2NhdGlvbiJ9CiAgICAgICAgICAgIC5sYXlvdXRNb2RlPSR7Imhvcml6b250YWwifQogICAgICAgICAgICAub3B0aW9ucz0ke1t7b3B0aW9uOiJSZW1vdGUiLGtleToicmVtb3RlIn0se29wdGlvbjoiT24tc2l0ZSIsa2V5OiJvbnNpdGUifSx7b3B0aW9uOiJIeWJyaWQiLGtleToiaHlicmlkIn1dfQogICAgICAgICAgPjwvZGVlcy1pbnB1dC1kcm9wZG93bj4KICAgICAgICA8L2Rpdj4KICAgICAgPC9kZWVzLXBhbmVsPgogICAgPC9kZWVzLWRlbW93cmFwcGVyPgogICAgCiAgICA8ZGVlcy1kZW1vd3JhcHBlciAucnVuQWZ0ZXJSZW5kZXI9JHthc3luYyB0PT57bGV0IGU9dC5xdWVyeVNlbGVjdG9yKCJkZWVzLWlucHV0LWRyb3Bkb3duW3JlcXVpcmVkXSIpO2UmJmUuYWRkRXZlbnRMaXN0ZW5lcigiYmx1ciIsKCk9Pntjb25zb2xlLmxvZygiUmVxdWlyZWQgZHJvcGRvd24gbG9zdCBmb2N1cyIpfSl9fT4KICAgICAgPGRlZXMtcGFuZWwgLnRpdGxlPSR7IjQuIFN0YXRlcyJ9IC5zdWJ0aXRsZT0keyJEaWZmZXJlbnQgc3RhdGVzIGFuZCBjb25maWd1cmF0aW9ucyJ9PgogICAgICAgIDxkaXYgY2xhc3M9ImlucHV0LWdyb3VwIj4KICAgICAgICAgIDxkZWVzLWlucHV0LWRyb3Bkb3duCiAgICAgICAgICAgIC5sYWJlbD0keyJSZXF1aXJlZCBGaWVsZCJ9CiAgICAgICAgICAgIC5yZXF1aXJlZD0keyEwfQogICAgICAgICAgICAub3B0aW9ucz0ke1t7b3B0aW9uOiJPcHRpb24gQSIsa2V5OiJhIn0se29wdGlvbjoiT3B0aW9uIEIiLGtleToiYiJ9LHtvcHRpb246Ik9wdGlvbiBDIixrZXk6ImMifV19CiAgICAgICAgICA+PC9kZWVzLWlucHV0LWRyb3Bkb3duPgoKICAgICAgICAgIDxkZWVzLWlucHV0LWRyb3Bkb3duCiAgICAgICAgICAgIC5sYWJlbD0keyJEaXNhYmxlZCBEcm9wZG93biJ9CiAgICAgICAgICAgIC5kaXNhYmxlZD0keyEwfQogICAgICAgICAgICAub3B0aW9ucz0ke1t7b3B0aW9uOiJDYW5ub3QgU2VsZWN0IixrZXk6ImRpc2FibGVkIn1dfQogICAgICAgICAgICAuc2VsZWN0ZWRPcHRpb249JHt7b3B0aW9uOiJDYW5ub3QgU2VsZWN0IixrZXk6ImRpc2FibGVkIn19CiAgICAgICAgICA+PC9kZWVzLWlucHV0LWRyb3Bkb3duPgogICAgICAgIDwvZGl2PgogICAgICA8L2RlZXMtcGFuZWw+CiAgICA8L2RlZXMtZGVtb3dyYXBwZXI+CiAgICAKICAgIDxkaXYgY2xhc3M9InNwYWNlciI+CiAgICAgIChTcGFjZXIgdG8gdGVzdCBkcm9wZG93biBwb3NpdGlvbmluZykKICAgIDwvZGl2PgogICAgCiAgICA8ZGVlcy1kZW1vd3JhcHBlciAucnVuQWZ0ZXJSZW5kZXI9JHthc3luYyB0PT57bGV0IGU9dC5xdWVyeVNlbGVjdG9yKCJkZWVzLWlucHV0LWRyb3Bkb3duIik7ZSYmZS5hZGRFdmVudExpc3RlbmVyKCJzZWxlY3RlZE9wdGlvbiIsYT0+e2NvbnNvbGUubG9nKCJCb3R0b20gZHJvcGRvd24gc2VsZWN0ZWQ6IixhLmRldGFpbCl9KX19PgogICAgICA8ZGVlcy1wYW5lbCAudGl0bGU9JHsiNS4gQm90dG9tIFBvc2l0aW9uaW5nIn0gLnN1YnRpdGxlPSR7IkRyb3Bkb3duIHRoYXQgb3BlbnMgdXB3YXJkIHdoZW4gbmVhciBib3R0b20gb2Ygdmlld3BvcnQifT4KICAgICAgICA8ZGVlcy1pbnB1dC1kcm9wZG93bgogICAgICAgICAgLmxhYmVsPSR7Ik9wZW5zIFVwd2FyZCJ9CiAgICAgICAgICAub3B0aW9ucz0ke1t7b3B0aW9uOiJGaXJzdCBPcHRpb24iLGtleToiZmlyc3QifSx7b3B0aW9uOiJTZWNvbmQgT3B0aW9uIixrZXk6InNlY29uZCJ9LHtvcHRpb246IlRoaXJkIE9wdGlvbiIsa2V5OiJ0aGlyZCJ9LHtvcHRpb246IkZvdXJ0aCBPcHRpb24iLGtleToiZm91cnRoIn0se29wdGlvbjoiRmlmdGggT3B0aW9uIixrZXk6ImZpZnRoIn1dfQogICAgICAgID48L2RlZXMtaW5wdXQtZHJvcGRvd24+CiAgICAgIDwvZGVlcy1wYW5lbD4KICAgIDwvZGVlcy1kZW1vd3JhcHBlcj4KCiAgICA8ZGVlcy1kZW1vd3JhcHBlciAucnVuQWZ0ZXJSZW5kZXI9JHthc3luYyB0PT57bGV0IGU9dC5xdWVyeVNlbGVjdG9yKCJkZWVzLWlucHV0LWRyb3Bkb3duIiksYT10LnF1ZXJ5U2VsZWN0b3IoIiNzZWxlY3Rpb24tb3V0cHV0Iik7ZSYmYSYmKGEuaW5uZXJIVE1MPSI8ZW0+U2VsZWN0IGEgcHJvZHVjdCB0byBzZWUgZGV0YWlscy4uLjwvZW0+IixlLmFkZEV2ZW50TGlzdGVuZXIoImNoYW5nZSIsaT0+e2kuZGV0YWlsLnZhbHVlJiYoYS5pbm5lckhUTUw9YAogICAgICAgICAgICAgIDxzdHJvbmc+U2VsZWN0ZWQ6PC9zdHJvbmc+ICR7aS5kZXRhaWwudmFsdWUub3B0aW9ufTxicj4KICAgICAgICAgICAgICA8c3Ryb25nPktleTo8L3N0cm9uZz4gJHtpLmRldGFpbC52YWx1ZS5rZXl9PGJyPgogICAgICAgICAgICAgIDxzdHJvbmc+UHJpY2U6PC9zdHJvbmc+ICQke2kuZGV0YWlsLnZhbHVlLnBheWxvYWQ/LnByaWNlfHwiTi9BIn08YnI+CiAgICAgICAgICAgICAgPHN0cm9uZz5GZWF0dXJlczo8L3N0cm9uZz4gJHtpLmRldGFpbC52YWx1ZS5wYXlsb2FkPy5mZWF0dXJlcz8uam9pbigiLCAiKXx8Ik4vQSJ9CiAgICAgICAgICAgIGApfSkpfX0+CiAgICAgIDxkZWVzLXBhbmVsIC50aXRsZT0keyI2LiBFdmVudCBIYW5kbGluZyAmIFBheWxvYWQifSAuc3VidGl0bGU9JHsiRHJvcGRvd24gd2l0aCBwYXlsb2FkIGRhdGEgYW5kIGNoYW5nZSBldmVudCBoYW5kbGluZyJ9PgogICAgICAgIDxkZWVzLWlucHV0LWRyb3Bkb3duCiAgICAgICAgICAubGFiZWw9JHsiU2VsZWN0IFByb2R1Y3QifQogICAgICAgICAgLm9wdGlvbnM9JHtbe29wdGlvbjoiQmFzaWMgUGxhbiIsa2V5OiJiYXNpYyIscGF5bG9hZDp7cHJpY2U6OS45OSxmZWF0dXJlczpbIkZlYXR1cmUgQSJdfX0se29wdGlvbjoiUHJvIFBsYW4iLGtleToicHJvIixwYXlsb2FkOntwcmljZToxOS45OSxmZWF0dXJlczpbIkZlYXR1cmUgQSIsIkZlYXR1cmUgQiJdfX0se29wdGlvbjoiRW50ZXJwcmlzZSBQbGFuIixrZXk6ImVudGVycHJpc2UiLHBheWxvYWQ6e3ByaWNlOjQ5Ljk5LGZlYXR1cmVzOlsiRmVhdHVyZSBBIiwiRmVhdHVyZSBCIiwiRmVhdHVyZSBDIl19fV19CiAgICAgICAgPjwvZGVlcy1pbnB1dC1kcm9wZG93bj4KICAgICAgICAKICAgICAgICA8ZGl2IGlkPSJzZWxlY3Rpb24tb3V0cHV0IiBzdHlsZT0ibWFyZ2luLXRvcDogMTZweDsgcGFkZGluZzogMTJweDsgYmFja2dyb3VuZDogcmdiYSgwLCAxMDUsIDI0MiwgMC4xKTsgYm9yZGVyLXJhZGl1czogNHB4OyBmb250LXNpemU6IDE0cHg7Ij48L2Rpdj4KICAgICAgPC9kZWVzLXBhbmVsPgogICAgPC9kZWVzLWRlbW93cmFwcGVyPgoKICAgIDxkZWVzLWRlbW93cmFwcGVyIC5ydW5BZnRlclJlbmRlcj0ke2FzeW5jIHQ9PntsZXQgZT10LnF1ZXJ5U2VsZWN0b3IoImRlZXMtZm9ybSIpLGE9dC5xdWVyeVNlbGVjdG9yKCdkZWVzLWlucHV0LWRyb3Bkb3duW2tleT0icHJvamVjdFR5cGUiXScpLGk9dC5xdWVyeVNlbGVjdG9yKCdkZWVzLWlucHV0LWRyb3Bkb3duW2tleT0iZnJhbWV3b3JrIl0nKTtlJiZlLmFkZEV2ZW50TGlzdGVuZXIoImZvcm1EYXRhIixyPT57Y29uc29sZS5sb2coIkZvcm0gc3VibWl0dGVkIHdpdGggZGF0YToiLHIuZGV0YWlsLmRhdGEpfSksYSYmaSYmYS5hZGRFdmVudExpc3RlbmVyKCJzZWxlY3RlZE9wdGlvbiIscj0+e2xldCBzPXIuZGV0YWlsLmtleTtjb25zb2xlLmxvZyhgUHJvamVjdCB0eXBlIGNoYW5nZWQgdG86ICR7c31gKX0pfX0+CiAgICAgIDxkZWVzLXBhbmVsIC50aXRsZT0keyI3LiBGb3JtIEludGVncmF0aW9uIn0gLnN1YnRpdGxlPSR7IkRyb3Bkb3duIHdvcmtpbmcgd2l0aGluIGEgZm9ybSB3aXRoIHZhbGlkYXRpb24ifT4KICAgICAgICA8ZGVlcy1mb3JtPgogICAgICAgICAgPGRlZXMtaW5wdXQtZHJvcGRvd24KICAgICAgICAgICAgLmxhYmVsPSR7IlByb2plY3QgVHlwZSJ9CiAgICAgICAgICAgIC5rZXk9JHsicHJvamVjdFR5cGUifQogICAgICAgICAgICAucmVxdWlyZWQ9JHshMH0KICAgICAgICAgICAgLm9wdGlvbnM9JHtbe29wdGlvbjoiV2ViIEFwcGxpY2F0aW9uIixrZXk6IndlYiJ9LHtvcHRpb246Ik1vYmlsZSBBcHBsaWNhdGlvbiIsa2V5OiJtb2JpbGUifSx7b3B0aW9uOiJEZXNrdG9wIEFwcGxpY2F0aW9uIixrZXk6ImRlc2t0b3AifSx7b3B0aW9uOiJBUEkgU2VydmljZSIsa2V5OiJhcGkifV19CiAgICAgICAgICA+PC9kZWVzLWlucHV0LWRyb3Bkb3duPgogICAgICAgICAgCiAgICAgICAgICA8ZGVlcy1pbnB1dC1kcm9wZG93bgogICAgICAgICAgICAubGFiZWw9JHsiRGV2ZWxvcG1lbnQgRnJhbWV3b3JrIn0KICAgICAgICAgICAgLmtleT0keyJmcmFtZXdvcmsifQogICAgICAgICAgICAucmVxdWlyZWQ9JHshMH0KICAgICAgICAgICAgLm9wdGlvbnM9JHtbe29wdGlvbjoiUmVhY3QiLGtleToicmVhY3QiLHBheWxvYWQ6e3R5cGU6IndlYiJ9fSx7b3B0aW9uOiJWdWUuanMiLGtleToidnVlIixwYXlsb2FkOnt0eXBlOiJ3ZWIifX0se29wdGlvbjoiQW5ndWxhciIsa2V5OiJhbmd1bGFyIixwYXlsb2FkOnt0eXBlOiJ3ZWIifX0se29wdGlvbjoiUmVhY3QgTmF0aXZlIixrZXk6InJlYWN0LW5hdGl2ZSIscGF5bG9hZDp7dHlwZToibW9iaWxlIn19LHtvcHRpb246IkZsdXR0ZXIiLGtleToiZmx1dHRlciIscGF5bG9hZDp7dHlwZToibW9iaWxlIn19LHtvcHRpb246IkVsZWN0cm9uIixrZXk6ImVsZWN0cm9uIixwYXlsb2FkOnt0eXBlOiJkZXNrdG9wIn19XX0KICAgICAgICAgID48L2RlZXMtaW5wdXQtZHJvcGRvd24+CiAgICAgICAgICAKICAgICAgICAgIDxkZWVzLWZvcm0tc3VibWl0IC50ZXh0PSR7IkNyZWF0ZSBQcm9qZWN0In0+PC9kZWVzLWZvcm0tc3VibWl0PgogICAgICAgIDwvZGVlcy1mb3JtPgogICAgICA8L2RlZXMtcGFuZWw+CiAgICA8L2RlZXMtZGVtb3dyYXBwZXI+CiAgPC9kaXY+CmB9KTt2YXIgSXMsQzIsRngsT3g9YigoKT0+e3VlKCk7VHQoKTtkdXQoKTtfMSgpO2RhKCk7cWUoKTtJcz1mdW5jdGlvbih0LGUsYSxpLHIscyl7ZnVuY3Rpb24gbih4KXtpZih4IT09dm9pZCAwJiZ0eXBlb2YgeCE9ImZ1bmN0aW9uIil0aHJvdyBuZXcgVHlwZUVycm9yKCJGdW5jdGlvbiBleHBlY3RlZCIpO3JldHVybiB4fWZvcih2YXIgbz1pLmtpbmQsZD1vPT09ImdldHRlciI/ImdldCI6bz09PSJzZXR0ZXIiPyJzZXQiOiJ2YWx1ZSIsYz0hZSYmdD9pLnN0YXRpYz90OnQucHJvdG90eXBlOm51bGwsaD1lfHwoYz9PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGMsaS5uYW1lKTp7fSksbCxmPSExLGc9YS5sZW5ndGgtMTtnPj0wO2ctLSl7dmFyIHk9e307Zm9yKHZhciB2IGluIGkpeVt2XT12PT09ImFjY2VzcyI/e306aVt2XTtmb3IodmFyIHYgaW4gaS5hY2Nlc3MpeS5hY2Nlc3Nbdl09aS5hY2Nlc3Nbdl07eS5hZGRJbml0aWFsaXplcj1mdW5jdGlvbih4KXtpZihmKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBhZGQgaW5pdGlhbGl6ZXJzIGFmdGVyIGRlY29yYXRpb24gaGFzIGNvbXBsZXRlZCIpO3MucHVzaChuKHh8fG51bGwpKX07dmFyIG09KDAsYVtnXSkobz09PSJhY2Nlc3NvciI/e2dldDpoLmdldCxzZXQ6aC5zZXR9OmhbZF0seSk7aWYobz09PSJhY2Nlc3NvciIpe2lmKG09PT12b2lkIDApY29udGludWU7aWYobT09PW51bGx8fHR5cGVvZiBtIT0ib2JqZWN0Iil0aHJvdyBuZXcgVHlwZUVycm9yKCJPYmplY3QgZXhwZWN0ZWQiKTsobD1uKG0uZ2V0KSkmJihoLmdldD1sKSwobD1uKG0uc2V0KSkmJihoLnNldD1sKSwobD1uKG0uaW5pdCkpJiZyLnVuc2hpZnQobCl9ZWxzZShsPW4obSkpJiYobz09PSJmaWVsZCI/ci51bnNoaWZ0KGwpOmhbZF09bCl9YyYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGMsaS5uYW1lLGgpLGY9ITB9LEMyPWZ1bmN0aW9uKHQsZSxhKXtmb3IodmFyIGk9YXJndW1lbnRzLmxlbmd0aD4yLHI9MDtyPGUubGVuZ3RoO3IrKylhPWk/ZVtyXS5jYWxsKHQsYSk6ZVtyXS5jYWxsKHQpO3JldHVybiBpP2E6dm9pZCAwfSxGeD0oKCk9PntsZXQgdD1bcGUoImRlZXMtaW5wdXQtZHJvcGRvd24iKV0sZSxhPVtdLGkscj1YZSxzLG49W10sbz1bXSxkLGM9W10saD1bXSxsLGY9W10sZz1bXSx5LHY9W10sbT1bXSx4LE09W10sUz1bXSxGLF89W10saz1bXSxOLEw9W10sQT1bXSxxLEM9W10sej1bXTt2YXIgRT1jbGFzcyBleHRlbmRzIHJ7c3RhdGlje2k9dGhpc31zdGF0aWN7bGV0IFQ9dHlwZW9mIFN5bWJvbD09ImZ1bmN0aW9uIiYmU3ltYm9sLm1ldGFkYXRhP09iamVjdC5jcmVhdGUocltTeW1ib2wubWV0YWRhdGFdPz9udWxsKTp2b2lkIDA7cz1bSSgpXSxkPVtJKCldLGw9W0koe3R5cGU6Qm9vbGVhbn0pXSx5PVtKKCldLHg9W0ooKV0sRj1bSigpXSxOPVtKKCldLHE9W0ooKV0sSXModGhpcyxudWxsLHMse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJvcHRpb25zIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczokPT4ib3B0aW9ucyJpbiAkLGdldDokPT4kLm9wdGlvbnMsc2V0OigkLFYpPT57JC5vcHRpb25zPVZ9fSxtZXRhZGF0YTpUfSxuLG8pLElzKHRoaXMsbnVsbCxkLHtraW5kOiJhY2Nlc3NvciIsbmFtZToic2VsZWN0ZWRPcHRpb24iLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOiQ9PiJzZWxlY3RlZE9wdGlvbiJpbiAkLGdldDokPT4kLnNlbGVjdGVkT3B0aW9uLHNldDooJCxWKT0+eyQuc2VsZWN0ZWRPcHRpb249Vn19LG1ldGFkYXRhOlR9LGMsaCksSXModGhpcyxudWxsLGwse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJlbmFibGVTZWFyY2giLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOiQ9PiJlbmFibGVTZWFyY2giaW4gJCxnZXQ6JD0+JC5lbmFibGVTZWFyY2gsc2V0OigkLFYpPT57JC5lbmFibGVTZWFyY2g9Vn19LG1ldGFkYXRhOlR9LGYsZyksSXModGhpcyxudWxsLHkse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJvcGVuc1RvVG9wIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczokPT4ib3BlbnNUb1RvcCJpbiAkLGdldDokPT4kLm9wZW5zVG9Ub3Asc2V0OigkLFYpPT57JC5vcGVuc1RvVG9wPVZ9fSxtZXRhZGF0YTpUfSx2LG0pLElzKHRoaXMsbnVsbCx4LHtraW5kOiJhY2Nlc3NvciIsbmFtZToiZmlsdGVyZWRPcHRpb25zIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczokPT4iZmlsdGVyZWRPcHRpb25zImluICQsZ2V0OiQ9PiQuZmlsdGVyZWRPcHRpb25zLHNldDooJCxWKT0+eyQuZmlsdGVyZWRPcHRpb25zPVZ9fSxtZXRhZGF0YTpUfSxNLFMpLElzKHRoaXMsbnVsbCxGLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiaGlnaGxpZ2h0ZWRJbmRleCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6JD0+ImhpZ2hsaWdodGVkSW5kZXgiaW4gJCxnZXQ6JD0+JC5oaWdobGlnaHRlZEluZGV4LHNldDooJCxWKT0+eyQuaGlnaGxpZ2h0ZWRJbmRleD1WfX0sbWV0YWRhdGE6VH0sXyxrKSxJcyh0aGlzLG51bGwsTix7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImlzT3BlbmVkIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczokPT4iaXNPcGVuZWQiaW4gJCxnZXQ6JD0+JC5pc09wZW5lZCxzZXQ6KCQsVik9PnskLmlzT3BlbmVkPVZ9fSxtZXRhZGF0YTpUfSxMLEEpLElzKHRoaXMsbnVsbCxxLHtraW5kOiJhY2Nlc3NvciIsbmFtZToic2VhcmNoVmFsdWUiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOiQ9PiJzZWFyY2hWYWx1ZSJpbiAkLGdldDokPT4kLnNlYXJjaFZhbHVlLHNldDooJCxWKT0+eyQuc2VhcmNoVmFsdWU9Vn19LG1ldGFkYXRhOlR9LEMseiksSXMobnVsbCxlPXt2YWx1ZTppfSx0LHtraW5kOiJjbGFzcyIsbmFtZTppLm5hbWUsbWV0YWRhdGE6VH0sbnVsbCxhKSxFPWk9ZS52YWx1ZSxUJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoaSxTeW1ib2wubWV0YWRhdGEse2VudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwLHZhbHVlOlR9KX1zdGF0aWMgZGVtbz1jdXQ7c3RhdGljIGRlbW9Hcm91cHM9WyJJbnB1dCJdOyNlPUMyKHRoaXMsbixbXSk7Z2V0IG9wdGlvbnMoKXtyZXR1cm4gdGhpcy4jZX1zZXQgb3B0aW9ucyhUKXt0aGlzLiNlPVR9I3Q9KEMyKHRoaXMsbyksQzIodGhpcyxjLG51bGwpKTtnZXQgc2VsZWN0ZWRPcHRpb24oKXtyZXR1cm4gdGhpcy4jdH1zZXQgc2VsZWN0ZWRPcHRpb24oVCl7dGhpcy4jdD1UfWdldCB2YWx1ZSgpe3JldHVybiB0aGlzLnNlbGVjdGVkT3B0aW9ufXNldCB2YWx1ZShUKXt0aGlzLnNlbGVjdGVkT3B0aW9uPVR9I2E9KEMyKHRoaXMsaCksQzIodGhpcyxmLCEwKSk7Z2V0IGVuYWJsZVNlYXJjaCgpe3JldHVybiB0aGlzLiNhfXNldCBlbmFibGVTZWFyY2goVCl7dGhpcy4jYT1UfSNpPShDMih0aGlzLGcpLEMyKHRoaXMsdiwhMSkpO2dldCBvcGVuc1RvVG9wKCl7cmV0dXJuIHRoaXMuI2l9c2V0IG9wZW5zVG9Ub3AoVCl7dGhpcy4jaT1UfSNyPShDMih0aGlzLG0pLEMyKHRoaXMsTSxbXSkpO2dldCBmaWx0ZXJlZE9wdGlvbnMoKXtyZXR1cm4gdGhpcy4jcn1zZXQgZmlsdGVyZWRPcHRpb25zKFQpe3RoaXMuI3I9VH0jcz0oQzIodGhpcyxTKSxDMih0aGlzLF8sMCkpO2dldCBoaWdobGlnaHRlZEluZGV4KCl7cmV0dXJuIHRoaXMuI3N9c2V0IGhpZ2hsaWdodGVkSW5kZXgoVCl7dGhpcy4jcz1UfSNuPShDMih0aGlzLGspLEMyKHRoaXMsTCwhMSkpO2dldCBpc09wZW5lZCgpe3JldHVybiB0aGlzLiNufXNldCBpc09wZW5lZChUKXt0aGlzLiNuPVR9I289KEMyKHRoaXMsQSksQzIodGhpcyxDLCIiKSk7Z2V0IHNlYXJjaFZhbHVlKCl7cmV0dXJuIHRoaXMuI299c2V0IHNlYXJjaFZhbHVlKFQpe3RoaXMuI289VH1zdGF0aWMgc3R5bGVzPVtDZSwuLi5YZS5iYXNlU3R5bGVzLHAuZGVmYXVsdFN0eWxlcyxRYAogICAgICAvKiBUT0RPOiBNaWdyYXRlIGhhcmRjb2RlZCB2YWx1ZXMgdG8gLS1kZWVzLSogQ1NTIHZhcmlhYmxlcyAqLwogICAgICAqIHsKICAgICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94OwogICAgICB9CgogICAgICA6aG9zdCB7CiAgICAgICAgZm9udC1mYW1pbHk6ICR7SnR9OwogICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgICBjb2xvcjogJHtwLmJkVGhlbWUoImhzbCgwIDAlIDE1JSkiLCJoc2woMCAwJSA5MCUpIil9OwogICAgICB9CgogICAgICAubWFpbmNvbnRhaW5lciB7CiAgICAgICAgZGlzcGxheTogYmxvY2s7CiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICB9CgogICAgICAuc2VsZWN0ZWRCb3ggewogICAgICAgIHVzZXItc2VsZWN0OiBub25lOwogICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgICB3aWR0aDogMTAwJTsKICAgICAgICBoZWlnaHQ6IDQwcHg7CiAgICAgICAgbGluZS1oZWlnaHQ6IDM4cHg7CiAgICAgICAgcGFkZGluZzogMCA0MHB4IDAgMTJweDsKICAgICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDsKICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAke3AuYmRUaGVtZSgiaHNsKDAgMCUgODkuOCUpIiwiaHNsKDAgMCUgMTQuOSUpIil9OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDZweDsKICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC4xNXMgZWFzZTsKICAgICAgICBmb250LXNpemU6IDE0cHg7CiAgICAgICAgY29sb3I6ICR7cC5iZFRoZW1lKCJoc2woMCAwJSA5JSkiLCJoc2woMCAwJSA5NSUpIil9OwogICAgICAgIGN1cnNvcjogcG9pbnRlcjsKICAgICAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzOwogICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7CiAgICAgIH0KCiAgICAgIC5zZWxlY3RlZEJveDpob3Zlcjpub3QoLmRpc2FibGVkKSB7CiAgICAgICAgYm9yZGVyLWNvbG9yOiAke3AuYmRUaGVtZSgiaHNsKDAgMCUgNzkuOCUpIiwiaHNsKDAgMCUgMjAuOSUpIil9OwogICAgICB9CgogICAgICAuc2VsZWN0ZWRCb3g6Zm9jdXMtdmlzaWJsZSB7CiAgICAgICAgb3V0bGluZTogbm9uZTsKICAgICAgICBib3JkZXItY29sb3I6ICR7cC5iZFRoZW1lKCJoc2woMjIyLjIgNDcuNCUgNTEuMiUpIiwiaHNsKDIxNy4yIDkxLjIlIDU5LjglKSIpfTsKICAgICAgICBib3gtc2hhZG93OiAwIDAgMCAzcHggJHtwLmJkVGhlbWUoImhzbCgyMjIuMiA0Ny40JSA1MS4yJSAvIDAuMSkiLCJoc2woMjE3LjIgOTEuMiUgNTkuOCUgLyAwLjEpIil9OwogICAgICB9CgogICAgICAuc2VsZWN0ZWRCb3guZGlzYWJsZWQgewogICAgICAgIGJhY2tncm91bmQ6ICR7cC5iZFRoZW1lKCJoc2woMCAwJSA5NS4xJSkiLCJoc2woMCAwJSAxNC45JSkiKX07CiAgICAgICAgYm9yZGVyLWNvbG9yOiAke3AuYmRUaGVtZSgiaHNsKDAgMCUgODkuOCUpIiwiaHNsKDAgMCUgMTQuOSUpIil9OwogICAgICAgIGNvbG9yOiAke3AuYmRUaGVtZSgiaHNsKDAgMCUgNjMuOSUpIiwiaHNsKDAgMCUgNDUuMSUpIil9OwogICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7CiAgICAgICAgb3BhY2l0eTogMC41OwogICAgICB9CgogICAgICAvKiBEcm9wZG93biBhcnJvdyAqLwogICAgICAuc2VsZWN0ZWRCb3g6OmFmdGVyIHsKICAgICAgICBjb250ZW50OiAnJzsKICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgICAgcmlnaHQ6IDEycHg7CiAgICAgICAgdG9wOiA1MCU7CiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpOwogICAgICAgIHdpZHRoOiAwOwogICAgICAgIGhlaWdodDogMDsKICAgICAgICBib3JkZXItbGVmdDogNHB4IHNvbGlkIHRyYW5zcGFyZW50OwogICAgICAgIGJvcmRlci1yaWdodDogNHB4IHNvbGlkIHRyYW5zcGFyZW50OwogICAgICAgIGJvcmRlci10b3A6IDRweCBzb2xpZCAke3AuYmRUaGVtZSgiaHNsKDAgMCUgNDUuMSUpIiwiaHNsKDAgMCUgNjMuOSUpIil9OwogICAgICAgIHRyYW5zaXRpb246IHRyYW5zZm9ybSAwLjE1cyBlYXNlOwogICAgICB9CgogICAgICAuc2VsZWN0ZWRCb3gub3Blbjo6YWZ0ZXIgewogICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKSByb3RhdGUoMTgwZGVnKTsKICAgICAgfQoKICAgICAgLnNlbGVjdGlvbkJveCB7CiAgICAgICAgd2lsbC1jaGFuZ2U6IHRyYW5zZm9ybSwgb3BhY2l0eTsKICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTsKICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC4xNXMgZWFzZTsKICAgICAgICBvcGFjaXR5OiAwOwogICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtOHB4KSBzY2FsZSgwLjk4KTsKICAgICAgICBiYWNrZ3JvdW5kOiAke3AuYmRUaGVtZSgiaHNsKDAgMCUgMTAwJSkiLCJoc2woMCAwJSAzLjklKSIpfTsKICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAke3AuYmRUaGVtZSgiaHNsKDAgMCUgODkuOCUpIiwiaHNsKDAgMCUgMTQuOSUpIil9OwogICAgICAgIGJveC1zaGFkb3c6IDAgNHB4IDZweCAtMXB4IGhzbCgwIDAlIDAlIC8gMC4xKSwgMCAycHggNHB4IC0ycHggaHNsKDAgMCUgMCUgLyAwLjEpOwogICAgICAgIG1pbi1oZWlnaHQ6IDQwcHg7CiAgICAgICAgbWF4LWhlaWdodDogMzAwcHg7CiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgICAgICBib3JkZXItcmFkaXVzOiA2cHg7CiAgICAgICAgcG9zaXRpb246IGFic29sdXRlOwogICAgICAgIHVzZXItc2VsZWN0OiBub25lOwogICAgICAgIG1hcmdpbi10b3A6IDRweDsKICAgICAgICB6LWluZGV4OiA1MDsKICAgICAgICBsZWZ0OiAwOwogICAgICAgIHJpZ2h0OiAwOwogICAgICB9CiAgICAgIAogICAgICAuc2VsZWN0aW9uQm94LnRvcCB7CiAgICAgICAgYm90dG9tOiBjYWxjKDEwMCUgKyA0cHgpOwogICAgICAgIHRvcDogYXV0bzsKICAgICAgICBtYXJnaW4tdG9wOiAwOwogICAgICAgIG1hcmdpbi1ib3R0b206IDRweDsKICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoOHB4KSBzY2FsZSgwLjk4KTsKICAgICAgfQogICAgICAKICAgICAgLnNlbGVjdGlvbkJveC5ib3R0b20gewogICAgICAgIHRvcDogMTAwJTsKICAgICAgfQoKICAgICAgLnNlbGVjdGlvbkJveC5zaG93IHsKICAgICAgICBwb2ludGVyLWV2ZW50czogYWxsOwogICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgwKSBzY2FsZSgxKTsKICAgICAgICBvcGFjaXR5OiAxOwogICAgICB9CgogICAgICAvKiBPcHRpb25zIGNvbnRhaW5lciAqLwogICAgICAub3B0aW9ucy1jb250YWluZXIgewogICAgICAgIG1heC1oZWlnaHQ6IDI1MHB4OwogICAgICAgIG92ZXJmbG93LXk6IGF1dG87CiAgICAgICAgcGFkZGluZzogNHB4OwogICAgICB9CgogICAgICAvKiBPcHRpb25zICovCiAgICAgIC5vcHRpb24gewogICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjE1cyBlYXNlOwogICAgICAgIGxpbmUtaGVpZ2h0OiAzMnB4OwogICAgICAgIHBhZGRpbmc6IDAgOHB4OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDRweDsKICAgICAgICBtYXJnaW46IDJweCAwOwogICAgICAgIGN1cnNvcjogcG9pbnRlcjsKICAgICAgICBmb250LXNpemU6IDE0cHg7CiAgICAgICAgY29sb3I6ICR7cC5iZFRoZW1lKCJoc2woMCAwJSAxNSUpIiwiaHNsKDAgMCUgOTAlKSIpfTsKICAgICAgfQoKICAgICAgLm9wdGlvbi5oaWdobGlnaHRlZCB7CiAgICAgICAgYmFja2dyb3VuZDogJHtwLmJkVGhlbWUoImhzbCgwIDAlIDk1LjElKSIsImhzbCgwIDAlIDE0LjklKSIpfTsKICAgICAgfQoKICAgICAgLm9wdGlvbjpob3ZlciB7CiAgICAgICAgYmFja2dyb3VuZDogJHtwLmJkVGhlbWUoImhzbCgwIDAlIDk1LjElKSIsImhzbCgwIDAlIDE0LjklKSIpfTsKICAgICAgICBjb2xvcjogJHtwLmJkVGhlbWUoImhzbCgwIDAlIDklKSIsImhzbCgwIDAlIDk1JSkiKX07CiAgICAgIH0KCiAgICAgIC8qIE5vIG9wdGlvbnMgbWVzc2FnZSAqLwogICAgICAubm8tb3B0aW9ucyB7CiAgICAgICAgcGFkZGluZzogOHB4OwogICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjsKICAgICAgICBmb250LXNpemU6IDE0cHg7CiAgICAgICAgY29sb3I6ICR7cC5iZFRoZW1lKCJoc2woMCAwJSA0NS4xJSkiLCJoc2woMCAwJSA2My45JSkiKX07CiAgICAgICAgZm9udC1zdHlsZTogaXRhbGljOwogICAgICB9CgogICAgICAvKiBTZWFyY2ggKi8KICAgICAgLnNlYXJjaCB7CiAgICAgICAgcGFkZGluZzogNHB4OwogICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAke3AuYmRUaGVtZSgiaHNsKDAgMCUgODkuOCUpIiwiaHNsKDAgMCUgMTQuOSUpIil9OwogICAgICAgIG1hcmdpbi1ib3R0b206IDRweDsKICAgICAgfQogICAgICAKICAgICAgLnNlYXJjaC5ib3R0b20gewogICAgICAgIGJvcmRlci1ib3R0b206IG5vbmU7CiAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICR7cC5iZFRoZW1lKCJoc2woMCAwJSA4OS44JSkiLCJoc2woMCAwJSAxNC45JSkiKX07CiAgICAgICAgbWFyZ2luLWJvdHRvbTogMDsKICAgICAgICBtYXJnaW4tdG9wOiA0cHg7CiAgICAgIH0KICAgICAgCiAgICAgIC5zZWFyY2ggaW5wdXQgewogICAgICAgIGRpc3BsYXk6IGJsb2NrOwogICAgICAgIHdpZHRoOiAxMDAlOwogICAgICAgIGhlaWdodDogMzJweDsKICAgICAgICBwYWRkaW5nOiAwIDhweDsKICAgICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDsKICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAke3AuYmRUaGVtZSgiaHNsKDAgMCUgODkuOCUpIiwiaHNsKDAgMCUgMTQuOSUpIil9OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDRweDsKICAgICAgICBjb2xvcjogaW5oZXJpdDsKICAgICAgICBmb250LXNpemU6IDE0cHg7CiAgICAgICAgZm9udC1mYW1pbHk6IGluaGVyaXQ7CiAgICAgICAgb3V0bGluZTogbm9uZTsKICAgICAgICB0cmFuc2l0aW9uOiBib3JkZXItY29sb3IgMC4xNXMgZWFzZTsKICAgICAgfQoKICAgICAgLnNlYXJjaCBpbnB1dDo6cGxhY2Vob2xkZXIgewogICAgICAgIGNvbG9yOiAke3AuYmRUaGVtZSgiaHNsKDAgMCUgNjMuOSUpIiwiaHNsKDAgMCUgNDUuMSUpIil9OwogICAgICB9CgogICAgICAuc2VhcmNoIGlucHV0OmZvY3VzIHsKICAgICAgICBib3JkZXItY29sb3I6ICR7cC5iZFRoZW1lKCJoc2woMjIyLjIgNDcuNCUgNTEuMiUpIiwiaHNsKDIxNy4yIDkxLjIlIDU5LjglKSIpfTsKICAgICAgfQoKICAgICAgLyogU2Nyb2xsYmFyIHN0eWxpbmcgKi8KICAgICAgLm9wdGlvbnMtY29udGFpbmVyOjotd2Via2l0LXNjcm9sbGJhciB7CiAgICAgICAgd2lkdGg6IDhweDsKICAgICAgfQoKICAgICAgLm9wdGlvbnMtY29udGFpbmVyOjotd2Via2l0LXNjcm9sbGJhci10cmFjayB7CiAgICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7CiAgICAgIH0KCiAgICAgIC5vcHRpb25zLWNvbnRhaW5lcjo6LXdlYmtpdC1zY3JvbGxiYXItdGh1bWIgewogICAgICAgIGJhY2tncm91bmQ6ICR7cC5iZFRoZW1lKCJoc2woMCAwJSA4OS44JSkiLCJoc2woMCAwJSAxNC45JSkiKX07CiAgICAgICAgYm9yZGVyLXJhZGl1czogNHB4OwogICAgICB9CgogICAgICAub3B0aW9ucy1jb250YWluZXI6Oi13ZWJraXQtc2Nyb2xsYmFyLXRodW1iOmhvdmVyIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke3AuYmRUaGVtZSgiaHNsKDAgMCUgNzkuOCUpIiwiaHNsKDAgMCUgMjAuOSUpIil9OwogICAgICB9CiAgICBgXTtyZW5kZXIoKXtyZXR1cm4gd2AKICAgICAgPGRpdiBjbGFzcz0iaW5wdXQtd3JhcHBlciI+CiAgICAgICAgPGRlZXMtbGFiZWwgLmxhYmVsPSR7dGhpcy5sYWJlbH0gLmRlc2NyaXB0aW9uPSR7dGhpcy5kZXNjcmlwdGlvbn0gLnJlcXVpcmVkPSR7dGhpcy5yZXF1aXJlZH0+PC9kZWVzLWxhYmVsPgogICAgICAgIDxkaXYgY2xhc3M9Im1haW5jb250YWluZXIiPgogICAgICAgICAgPGRpdgogICAgICAgICAgICBjbGFzcz0ic2VsZWN0ZWRCb3ggJHt0aGlzLmlzT3BlbmVkPyJvcGVuIjoiIn0gJHt0aGlzLmRpc2FibGVkPyJkaXNhYmxlZCI6IiJ9IgogICAgICAgICAgICBAY2xpY2s9IiR7KCk9PiF0aGlzLmRpc2FibGVkJiZ0aGlzLnRvZ2dsZVNlbGVjdGlvbkJveCgpfSIKICAgICAgICAgICAgdGFiaW5kZXg9IiR7dGhpcy5kaXNhYmxlZD8iLTEiOiIwIn0iCiAgICAgICAgICAgIEBrZXlkb3duPSIke3RoaXMuaGFuZGxlU2VsZWN0ZWRCb3hLZXlkb3dufSIKICAgICAgICAgID4KICAgICAgICAgICAgJHt0aGlzLnNlbGVjdGVkT3B0aW9uPy5vcHRpb258fCJTZWxlY3QgYW4gb3B0aW9uIn0KICAgICAgICAgIDwvZGl2PgogICAgICAgICAgPGRpdiBjbGFzcz0ic2VsZWN0aW9uQm94ICR7dGhpcy5pc09wZW5lZD8ic2hvdyI6IiJ9ICR7dGhpcy5vcGVuc1RvVG9wPyJ0b3AiOiJib3R0b20ifSI+CiAgICAgICAgICAgICR7dGhpcy5lbmFibGVTZWFyY2g/d2AKICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0ic2VhcmNoIj4KICAgICAgICAgICAgICAgICAgICA8aW5wdXQgCiAgICAgICAgICAgICAgICAgICAgICB0eXBlPSJ0ZXh0IiAKICAgICAgICAgICAgICAgICAgICAgIHBsYWNlaG9sZGVyPSJTZWFyY2ggb3B0aW9ucy4uLiIgCiAgICAgICAgICAgICAgICAgICAgICAudmFsdWU9IiR7dGhpcy5zZWFyY2hWYWx1ZX0iCiAgICAgICAgICAgICAgICAgICAgICBAaW5wdXQ9IiR7dGhpcy5oYW5kbGVTZWFyY2h9IgogICAgICAgICAgICAgICAgICAgICAgQGNsaWNrPSIke1Q9PlQuc3RvcFByb3BhZ2F0aW9uKCl9IgogICAgICAgICAgICAgICAgICAgICAgQGtleWRvd249IiR7dGhpcy5oYW5kbGVTZWFyY2hLZXlkb3dufSIKICAgICAgICAgICAgICAgICAgICAvPgogICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgIGA6bnVsbH0KICAgICAgICAgICAgPGRpdiBjbGFzcz0ib3B0aW9ucy1jb250YWluZXIiPgogICAgICAgICAgICAgICR7dGhpcy5maWx0ZXJlZE9wdGlvbnMubGVuZ3RoPT09MD93YDxkaXYgY2xhc3M9Im5vLW9wdGlvbnMiPk5vIG9wdGlvbnMgZm91bmQ8L2Rpdj5gOnRoaXMuZmlsdGVyZWRPcHRpb25zLm1hcCgoVCwkKT0+e2xldCBWPXRoaXMuaGlnaGxpZ2h0ZWRJbmRleD09PSQ7cmV0dXJuIHdgCiAgICAgICAgICAgICAgICAgICAgICA8ZGl2CiAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPSJvcHRpb24gJHtWPyJoaWdobGlnaHRlZCI6IiJ9IgogICAgICAgICAgICAgICAgICAgICAgICBAY2xpY2s9IiR7KCk9PnRoaXMudXBkYXRlU2VsZWN0aW9uKFQpfSIKICAgICAgICAgICAgICAgICAgICAgICAgQG1vdXNlZW50ZXI9IiR7KCk9PnRoaXMuaGlnaGxpZ2h0ZWRJbmRleD0kfSIKICAgICAgICAgICAgICAgICAgICAgID4KICAgICAgICAgICAgICAgICAgICAgICAgJHtULm9wdGlvbn0KICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgIGB9KX0KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICA8L2Rpdj4KICAgICAgPC9kaXY+CiAgICBgfWFzeW5jIGNvbm5lY3RlZENhbGxiYWNrKCl7c3VwZXIuY29ubmVjdGVkQ2FsbGJhY2soKSx0aGlzLmhhbmRsZUNsaWNrT3V0c2lkZT10aGlzLmhhbmRsZUNsaWNrT3V0c2lkZS5iaW5kKHRoaXMpfWZpcnN0VXBkYXRlZCgpe3RoaXMuc2VsZWN0ZWRPcHRpb249dGhpcy5zZWxlY3RlZE9wdGlvbnx8bnVsbCx0aGlzLmZpbHRlcmVkT3B0aW9ucz10aGlzLm9wdGlvbnN9dXBkYXRlZChUKXtzdXBlci51cGRhdGVkKFQpLFQuaGFzKCJvcHRpb25zIikmJih0aGlzLmZpbHRlcmVkT3B0aW9ucz10aGlzLm9wdGlvbnMpfWFzeW5jIHVwZGF0ZVNlbGVjdGlvbihUKXt0aGlzLnNlbGVjdGVkT3B0aW9uPVQsdGhpcy5pc09wZW5lZD0hMSx0aGlzLnNlYXJjaFZhbHVlPSIiLHRoaXMuZmlsdGVyZWRPcHRpb25zPXRoaXMub3B0aW9ucyx0aGlzLmhpZ2hsaWdodGVkSW5kZXg9MCx0aGlzLmRpc3BhdGNoRXZlbnQobmV3IEN1c3RvbUV2ZW50KCJzZWxlY3RlZE9wdGlvbiIse2RldGFpbDpULGJ1YmJsZXM6ITB9KSksdGhpcy5jaGFuZ2VTdWJqZWN0Lm5leHQodGhpcyl9aGFuZGxlQ2xpY2tPdXRzaWRlPShDMih0aGlzLHopLFQ9PntULmNvbXBvc2VkUGF0aCgpLmluY2x1ZGVzKHRoaXMpfHwodGhpcy5pc09wZW5lZD0hMSx0aGlzLnNlYXJjaFZhbHVlPSIiLHRoaXMuZmlsdGVyZWRPcHRpb25zPXRoaXMub3B0aW9ucyxkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCJjbGljayIsdGhpcy5oYW5kbGVDbGlja091dHNpZGUpKX0pO2FzeW5jIHRvZ2dsZVNlbGVjdGlvbkJveCgpe2lmKHRoaXMuaXNPcGVuZWQ9IXRoaXMuaXNPcGVuZWQsdGhpcy5pc09wZW5lZCl7bGV0ICQ9dGhpcy5zaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3IoIi5zZWxlY3RlZEJveCIpLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLFY9d2luZG93LmlubmVySGVpZ2h0LSQuYm90dG9tLFI9JC50b3A7dGhpcy5vcGVuc1RvVG9wPVY8MzAwJiZSPlYsYXdhaXQgdGhpcy51cGRhdGVDb21wbGV0ZTtsZXQgVT10aGlzLnNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvcigiLnNlYXJjaCBpbnB1dCIpO1UmJlUuZm9jdXMoKSxzZXRUaW1lb3V0KCgpPT57ZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLHRoaXMuaGFuZGxlQ2xpY2tPdXRzaWRlKX0sMCl9ZWxzZSB0aGlzLnNlYXJjaFZhbHVlPSIiLHRoaXMuZmlsdGVyZWRPcHRpb25zPXRoaXMub3B0aW9ucyxkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCJjbGljayIsdGhpcy5oYW5kbGVDbGlja091dHNpZGUpfWhhbmRsZVNlYXJjaChUKXtsZXQgJD1ULnRhcmdldC52YWx1ZTt0aGlzLnNlYXJjaFZhbHVlPSQ7bGV0IFY9JC50b0xvd2VyQ2FzZSgpO3RoaXMuZmlsdGVyZWRPcHRpb25zPXRoaXMub3B0aW9ucy5maWx0ZXIoUj0+Ui5vcHRpb24udG9Mb3dlckNhc2UoKS5pbmNsdWRlcyhWKSksdGhpcy5oaWdobGlnaHRlZEluZGV4PTB9aGFuZGxlS2V5RG93bihUKXtsZXQgJD1ULmtleSxWPXRoaXMuZmlsdGVyZWRPcHRpb25zLmxlbmd0aC0xOyQ9PT0iQXJyb3dEb3duIj8oVC5wcmV2ZW50RGVmYXVsdCgpLHRoaXMuaGlnaGxpZ2h0ZWRJbmRleD10aGlzLmhpZ2hsaWdodGVkSW5kZXgrMT5WPzA6dGhpcy5oaWdobGlnaHRlZEluZGV4KzEpOiQ9PT0iQXJyb3dVcCI/KFQucHJldmVudERlZmF1bHQoKSx0aGlzLmhpZ2hsaWdodGVkSW5kZXg9dGhpcy5oaWdobGlnaHRlZEluZGV4LTE8MD9WOnRoaXMuaGlnaGxpZ2h0ZWRJbmRleC0xKTokPT09IkVudGVyIj8oVC5wcmV2ZW50RGVmYXVsdCgpLHRoaXMuZmlsdGVyZWRPcHRpb25zW3RoaXMuaGlnaGxpZ2h0ZWRJbmRleF0mJnRoaXMudXBkYXRlU2VsZWN0aW9uKHRoaXMuZmlsdGVyZWRPcHRpb25zW3RoaXMuaGlnaGxpZ2h0ZWRJbmRleF0pKTokPT09IkVzY2FwZSImJihULnByZXZlbnREZWZhdWx0KCksdGhpcy5pc09wZW5lZD0hMSl9aGFuZGxlU2VhcmNoS2V5ZG93bihUKXsoVC5rZXk9PT0iQXJyb3dEb3duInx8VC5rZXk9PT0iQXJyb3dVcCJ8fFQua2V5PT09IkVudGVyIikmJnRoaXMuaGFuZGxlS2V5RG93bihUKX1oYW5kbGVTZWxlY3RlZEJveEtleWRvd24oVCl7dGhpcy5kaXNhYmxlZHx8KFQua2V5PT09IkVudGVyInx8VC5rZXk9PT0iICI/KFQucHJldmVudERlZmF1bHQoKSx0aGlzLnRvZ2dsZVNlbGVjdGlvbkJveCgpKTpULmtleT09PSJBcnJvd0Rvd24ifHxULmtleT09PSJBcnJvd1VwIj8oVC5wcmV2ZW50RGVmYXVsdCgpLHRoaXMuaXNPcGVuZWR8fHRoaXMudG9nZ2xlU2VsZWN0aW9uQm94KCkpOlQua2V5PT09IkVzY2FwZSImJihULnByZXZlbnREZWZhdWx0KCksdGhpcy5pc09wZW5lZCYmKHRoaXMuaXNPcGVuZWQ9ITEpKSl9Z2V0VmFsdWUoKXtyZXR1cm4gdGhpcy5zZWxlY3RlZE9wdGlvbn1zZXRWYWx1ZShUKXt0aGlzLnNlbGVjdGVkT3B0aW9uPVR9YXN5bmMgZGlzY29ubmVjdGVkQ2FsbGJhY2soKXthd2FpdCBzdXBlci5kaXNjb25uZWN0ZWRDYWxsYmFjaygpLGRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoImNsaWNrIix0aGlzLmhhbmRsZUNsaWNrT3V0c2lkZSl9c3RhdGlje0MyKGksYSl9fTtyZXR1cm4gRT1pfSkoKX0pO3ZhciBodXQscHV0PWIoKCk9Pnt1ZSgpO0JxKCk7bTIoKTtodXQ9KCk9PndgCiAgPGRlZXMtZGVtb3dyYXBwZXI+CiAgICA8c3R5bGU+CiAgICAgICR7UWAKICAgICAgICAuZGVtby1zaGVsbCB7CiAgICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgICAgIGdhcDogMzJweDsKICAgICAgICAgIHBhZGRpbmc6IDI0cHg7CiAgICAgICAgICBtYXgtd2lkdGg6IDExNjBweDsKICAgICAgICAgIG1hcmdpbjogMCBhdXRvOwogICAgICAgIH0KCiAgICAgICAgLmRlbW8tZ3JpZCB7CiAgICAgICAgICBkaXNwbGF5OiBncmlkOwogICAgICAgICAgZ2FwOiAyNHB4OwogICAgICAgIH0KCiAgICAgICAgQG1lZGlhIChtaW4td2lkdGg6IDk2MHB4KSB7CiAgICAgICAgICAuZGVtby1ncmlkLS10d28gewogICAgICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdCgyLCBtaW5tYXgoMCwgMWZyKSk7CiAgICAgICAgICB9CiAgICAgICAgfQoKICAgICAgICAuZGVtby1zdGFjayB7CiAgICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgICAgIGdhcDogMThweDsKICAgICAgICB9CgogICAgICAgIC5kZW1vLW5vdGUgewogICAgICAgICAgbWFyZ2luLXRvcDogMTZweDsKICAgICAgICAgIHBhZGRpbmc6IDE2cHg7CiAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMnB4OwogICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHtwLmJkVGhlbWUoImhzbCgyMTcgOTElIDkwJSkiLCJoc2woMjE1IDIwJSAyNiUpIil9OwogICAgICAgICAgYmFja2dyb3VuZDogJHtwLmJkVGhlbWUoImhzbCgyMTMgMTAwJSA5NyUpIiwiaHNsKDIxNSAyMCUgMTIlKSIpfTsKICAgICAgICAgIGNvbG9yOiAke3AuYmRUaGVtZSgiaHNsKDIxNSAyNSUgMzIlKSIsImhzbCgyMTUgMjAlIDgyJSkiKX07CiAgICAgICAgICBmb250LXNpemU6IDEzcHg7CiAgICAgICAgICBsaW5lLWhlaWdodDogMS41NTsKICAgICAgICB9CgogICAgICAgIC5kZW1vLW5vdGUgc3Ryb25nIHsKICAgICAgICAgIGNvbG9yOiAke3AuYmRUaGVtZSgiaHNsKDIxNyA5MSUgNDUlKSIsImhzbCgyMTMgOTMlIDY4JSkiKX07CiAgICAgICAgICBmb250LXdlaWdodDogNjAwOwogICAgICAgIH0KICAgICAgYH0KICAgIDwvc3R5bGU+CgogICAgPGRpdiBjbGFzcz0iZGVtby1zaGVsbCI+CiAgICAgIDxkZWVzLXBhbmVsCiAgICAgICAgLnRpdGxlPSR7Ik1vZGVybiBmaWxlIHVwbG9hZGVyIn0KICAgICAgICAuc3VidGl0bGU9JHsiU2hhZGNuLWluc3BpcmVkIGxheW91dCB3aXRoIGRyYWcgJiBkcm9wLCBwcmV2aWV3cyBhbmQgdmFsaWRhdGlvbiJ9CiAgICAgID4KICAgICAgICA8ZGl2IGNsYXNzPSJkZW1vLWdyaWQgZGVtby1ncmlkLS10d28iPgogICAgICAgICAgPGRpdiBjbGFzcz0iZGVtby1zdGFjayI+CiAgICAgICAgICAgIDxkZWVzLWlucHV0LWZpbGV1cGxvYWQKICAgICAgICAgICAgICAubGFiZWw9JHsiQXR0YWNobWVudHMifQogICAgICAgICAgICAgIC5kZXNjcmlwdGlvbj0keyJVcGxvYWQgc3VwcG9ydGluZyBkb2N1bWVudHMgZm9yIHlvdXIgcmVxdWVzdCJ9CiAgICAgICAgICAgICAgLmFjY2VwdD0keyJpbWFnZS8qLC5wZGYsLnppcCJ9CiAgICAgICAgICAgICAgLm1heFNpemU9JHsxMCoxMDI0KjEwMjR9CiAgICAgICAgICAgID48L2RlZXMtaW5wdXQtZmlsZXVwbG9hZD4KCiAgICAgICAgICAgIDxkZWVzLWlucHV0LWZpbGV1cGxvYWQKICAgICAgICAgICAgICAubGFiZWw9JHsiQnJhbmQgYXNzZXRzIn0KICAgICAgICAgICAgICAuZGVzY3JpcHRpb249JHsiVXBsb2FkIGhpZ2gtcmVzb2x1dGlvbiBpbWFnZXJ5IChKUEcvUE5HKSJ9CiAgICAgICAgICAgICAgLmFjY2VwdD0keyJpbWFnZS9qcGVnLGltYWdlL3BuZyJ9CiAgICAgICAgICAgICAgLm11bHRpcGxlPSR7ITF9CiAgICAgICAgICAgICAgLm1heFNpemU9JHs1KjEwMjQqMTAyNH0KICAgICAgICAgICAgICAuYnV0dG9uVGV4dD0keyJTZWxlY3QgY292ZXIgaW1hZ2UifQogICAgICAgICAgICA+PC9kZWVzLWlucHV0LWZpbGV1cGxvYWQ+CiAgICAgICAgICA8L2Rpdj4KCiAgICAgICAgICA8ZGl2IGNsYXNzPSJkZW1vLXN0YWNrIj4KICAgICAgICAgICAgPGRlZXMtaW5wdXQtZmlsZXVwbG9hZAogICAgICAgICAgICAgIC5sYWJlbD0keyJBdWRpbyB1cGxvYWRzIn0KICAgICAgICAgICAgICAuZGVzY3JpcHRpb249JHsiU2hhcmUgcG9kY2FzdCBkcmFmdHMgKE1QMy9XQVYsIG1heCAyNU1CIGVhY2gpIn0KICAgICAgICAgICAgICAuYWNjZXB0PSR7ImF1ZGlvLyoifQogICAgICAgICAgICAgIC5tYXhTaXplPSR7MjUqMTAyNCoxMDI0fQogICAgICAgICAgICA+PC9kZWVzLWlucHV0LWZpbGV1cGxvYWQ+CgogICAgICAgICAgICA8ZGVlcy1pbnB1dC1maWxldXBsb2FkCiAgICAgICAgICAgICAgLmxhYmVsPSR7IkRpc2FibGVkIGV4YW1wbGUifQogICAgICAgICAgICAgIC5kZXNjcmlwdGlvbj0keyJVcGxvYWRlciBpcyBkaXNhYmxlZCB3aGlsZSBtb2RlcmF0aW9uIGlzIHBlbmRpbmcifQogICAgICAgICAgICAgIC5kaXNhYmxlZD0keyEwfQogICAgICAgICAgICA+PC9kZWVzLWlucHV0LWZpbGV1cGxvYWQ+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICA8L2Rpdj4KICAgICAgPC9kZWVzLXBhbmVsPgoKICAgICAgPGRlZXMtcGFuZWwKICAgICAgICAudGl0bGU9JHsiRm9ybSBpbnRlZ3JhdGlvbiJ9CiAgICAgICAgLnN1YnRpdGxlPSR7IkNvbWJpbmUgZmlsZSB1cGxvYWRzIHdpdGggdGhlIHJlc3Qgb2YgdGhlIERFRVMgZm9ybSBlY29zeXN0ZW0ifQogICAgICA+CiAgICAgICAgPGRpdiBjbGFzcz0iZGVtby1ncmlkIj4KICAgICAgICAgIDxkZWVzLWZvcm0+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9ImRlbW8tc3RhY2siPgogICAgICAgICAgICAgIDxkZWVzLWlucHV0LXRleHQKICAgICAgICAgICAgICAgIC5sYWJlbD0keyJQcm9qZWN0IG5hbWUifQogICAgICAgICAgICAgICAgLmRlc2NyaXB0aW9uPSR7IkhvdyBzaG91bGQgd2UgcmVmZXIgdG8gdGhpcyBwcm9qZWN0IGludGVybmFsbHk/In0KICAgICAgICAgICAgICAgIC5yZXF1aXJlZD0keyEwfQogICAgICAgICAgICAgICAgLmtleT0keyJwcm9qZWN0TmFtZSJ9CiAgICAgICAgICAgICAgPjwvZGVlcy1pbnB1dC10ZXh0PgoKICAgICAgICAgICAgICA8ZGVlcy1pbnB1dC10ZXh0CiAgICAgICAgICAgICAgICAubGFiZWw9JHsiQ29udGFjdCBlbWFpbCJ9CiAgICAgICAgICAgICAgICAuaW5wdXRUeXBlPSR7ImVtYWlsIn0KICAgICAgICAgICAgICAgIC5yZXF1aXJlZD0keyEwfQogICAgICAgICAgICAgICAgLmtleT0keyJjb250YWN0RW1haWwifQogICAgICAgICAgICAgID48L2RlZXMtaW5wdXQtdGV4dD4KCiAgICAgICAgICAgICAgPGRlZXMtaW5wdXQtZmlsZXVwbG9hZAogICAgICAgICAgICAgICAgLmxhYmVsPSR7IlN0YXRlbWVudCBvZiB3b3JrIn0KICAgICAgICAgICAgICAgIC5kZXNjcmlwdGlvbj0keyJVcGxvYWQgYSBzaWduZWQgc3RhdGVtZW50IG9mIHdvcmsgKFBERiwgbWF4IDE1TUIpIn0KICAgICAgICAgICAgICAgIC5yZXF1aXJlZD0keyEwfQogICAgICAgICAgICAgICAgLmFjY2VwdD0keyJhcHBsaWNhdGlvbi9wZGYifQogICAgICAgICAgICAgICAgLm1heFNpemU9JHsxNSoxMDI0KjEwMjR9CiAgICAgICAgICAgICAgICAubXVsdGlwbGU9JHshMX0KICAgICAgICAgICAgICAgIC5rZXk9JHsic293In0KICAgICAgICAgICAgICA+PC9kZWVzLWlucHV0LWZpbGV1cGxvYWQ+CgogICAgICAgICAgICAgIDxkZWVzLWlucHV0LWZpbGV1cGxvYWQKICAgICAgICAgICAgICAgIC5sYWJlbD0keyJDcmVhdGl2ZSByZWZlcmVuY2VzIn0KICAgICAgICAgICAgICAgIC5kZXNjcmlwdGlvbj0keyJPcHRpb25hbC4gVXBsb2FkIHVwIHRvIGZpdmUgdmlzdWFsIHJlZmVyZW5jZXMifQogICAgICAgICAgICAgICAgLmFjY2VwdD0keyJpbWFnZS8qIn0KICAgICAgICAgICAgICAgIC5tYXhGaWxlcz0kezV9CiAgICAgICAgICAgICAgICAubWF4U2l6ZT0kezgqMTAyNCoxMDI0fQogICAgICAgICAgICAgICAgLmtleT0keyJyZWZlcmVuY2VzIn0KICAgICAgICAgICAgICA+PC9kZWVzLWlucHV0LWZpbGV1cGxvYWQ+CgogICAgICAgICAgICAgIDxkZWVzLWlucHV0LXRleHQKICAgICAgICAgICAgICAgIC5sYWJlbD0keyJOb3RlcyJ9CiAgICAgICAgICAgICAgICAuZGVzY3JpcHRpb249JHsiQWRkIG9wdGlvbmFsIGNvbnRleHQgZm9yIHJldmlld2VycyJ9CiAgICAgICAgICAgICAgICAuaW5wdXRUeXBlPSR7InRleHRhcmVhIn0KICAgICAgICAgICAgICAgIC5rZXk9JHsibm90ZXMifQogICAgICAgICAgICAgID48L2RlZXMtaW5wdXQtdGV4dD4KCiAgICAgICAgICAgICAgPGRlZXMtZm9ybS1zdWJtaXQgLnRleHQ9JHsiU3VibWl0IGJyaWVmaW5nIn0+PC9kZWVzLWZvcm0tc3VibWl0PgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIDwvZGVlcy1mb3JtPgoKICAgICAgICAgIDxkaXYgY2xhc3M9ImRlbW8tbm90ZSI+CiAgICAgICAgICAgIDxzdHJvbmc+R29vZCB0byBrbm93Ojwvc3Ryb25nPgogICAgICAgICAgICA8dWw+CiAgICAgICAgICAgICAgPGxpPkRyYWcgJiBkcm9wIGhpZ2hsaWdodHMgdGhlIGRyb3B6b25lIGFuZCBzdXBwb3J0cyBrZXlib2FyZCBhY3RpdmF0aW9uLjwvbGk+CiAgICAgICAgICAgICAgPGxpPkFjY2VwdGVkIGZpbGUgdHlwZXMgYXJlIHN1bW1hcmlzZWQgYXV0b21hdGljYWxseSBmcm9tIHRoZSA8Y29kZT5hY2NlcHQ8L2NvZGU+IGF0dHJpYnV0ZS48L2xpPgogICAgICAgICAgICAgIDxsaT5JbWFnZSB1cGxvYWRzIHNob3cgbGl2ZSBwcmV2aWV3cyBnZW5lcmF0ZWQgdmlhIDxjb2RlPlVSTC5jcmVhdGVPYmplY3RVUkw8L2NvZGU+LjwvbGk+CiAgICAgICAgICAgICAgPGxpPkZpbGUgc2l6ZSBhbmQgZmlsZS1jb3VudCBsaW1pdHMgc3VyZmFjZSBpbmxpbmUgdmFsaWRhdGlvbiBtZXNzYWdlcy48L2xpPgogICAgICAgICAgICAgIDxsaT5UaGUgY29tcG9uZW50IHN0YXlzIGNvbXBhdGlibGUgd2l0aCA8Y29kZT5kZWVzLWZvcm08L2NvZGU+IHZhbHVlIGFjY2Vzc29ycy48L2xpPgogICAgICAgICAgICA8L3VsPgogICAgICAgICAgPC9kaXY+CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGVlcy1wYW5lbD4KICAgIDwvZGl2PgogIDwvZGVlcy1kZW1vd3JhcHBlcj4KYH0pO3ZhciB1dXQsZnV0PWIoKCk9Pnt1ZSgpO18xKCk7dXV0PVtwLmRlZmF1bHRTdHlsZXMsLi4uWGUuYmFzZVN0eWxlcyxRYAogICAgOmhvc3QgewogICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgIGRpc3BsYXk6IGJsb2NrOwogICAgfQoKCiAgICAuaW5wdXQtd3JhcHBlciB7CiAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgIGdhcDogMTJweDsKICAgIH0KCiAgICAuZHJvcHpvbmUgewogICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgIHBhZGRpbmc6IDIwcHg7CiAgICAgIGJvcmRlci1yYWRpdXM6IDEycHg7CiAgICAgIGJvcmRlcjogMS41cHggZGFzaGVkICR7cC5iZFRoZW1lKCJoc2woMjE1IDE2JSA4MCUpIiwiaHNsKDIxNyAyMCUgMjUlKSIpfTsKICAgICAgYmFja2dyb3VuZDogJHtwLmJkVGhlbWUoImhzbCgwIDAlIDEwMCUpIiwiaHNsKDIxNSAyMCUgMTIlKSIpfTsKICAgICAgdHJhbnNpdGlvbjogYm9yZGVyLWNvbG9yIDAuMnMgZWFzZSwgYm94LXNoYWRvdyAwLjJzIGVhc2UsIGJhY2tncm91bmQgMC4ycyBlYXNlOwogICAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICAgIG91dGxpbmU6IG5vbmU7CiAgICB9CgogICAgLmRyb3B6b25lOmZvY3VzLXZpc2libGUgewogICAgICBib3gtc2hhZG93OiAwIDAgMCAycHggJHtwLmJkVGhlbWUoImhzbCgwIDAlIDEwMCUpIiwiaHNsKDIxNSAyMCUgMTIlKSIpfSwKICAgICAgICAwIDAgMCA0cHggJHtwLmJkVGhlbWUoImhzbCgyMTcgOTElIDYwJSAvIDAuNSkiLCJoc2woMjEzIDkzJSA2OCUgLyAwLjQpIil9OwogICAgICBib3JkZXItY29sb3I6ICR7cC5iZFRoZW1lKCJoc2woMjE3IDkxJSA2MCUpIiwiaHNsKDIxMyA5MyUgNjglKSIpfTsKICAgIH0KCiAgICAuZHJvcHpvbmUtLWFjdGl2ZSB7CiAgICAgIGJvcmRlci1jb2xvcjogJHtwLmJkVGhlbWUoImhzbCgyMTcgOTElIDYwJSkiLCJoc2woMjEzIDkzJSA2OCUpIil9OwogICAgICBib3gtc2hhZG93OiAwIDEycHggMzJweCAke3AuYmRUaGVtZSgicmdiYSgxNSwgMjMsIDQyLCAwLjEyKSIsInJnYmEoMCwgMCwgMCwgMC4zNSkiKX07CiAgICAgIGJhY2tncm91bmQ6ICR7cC5iZFRoZW1lKCJoc2woMjE3IDkxJSA2MCUgLyAwLjA2KSIsImhzbCgyMTMgOTMlIDY4JSAvIDAuMTIpIil9OwogICAgfQoKICAgIC5kcm9wem9uZS0taGFzLWZpbGVzIHsKICAgICAgYmFja2dyb3VuZDogJHtwLmJkVGhlbWUoImhzbCgwIDAlIDk5JSkiLCJoc2woMjE1IDIwJSAxMSUpIil9OwogICAgfQoKICAgIC5kcm9wem9uZS0tZGlzYWJsZWQgewogICAgICBvcGFjaXR5OiAwLjY7CiAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lOwogICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkOwogICAgfQoKICAgIC5kcm9wem9uZV9fYm9keSB7CiAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgIGdhcDogMTZweDsKICAgIH0KCiAgICAuZHJvcHpvbmVfX2ljb24gewogICAgICB3aWR0aDogNDhweDsKICAgICAgaGVpZ2h0OiA0OHB4OwogICAgICBib3JkZXItcmFkaXVzOiAxNnB4OwogICAgICBkaXNwbGF5OiBmbGV4OwogICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKICAgICAgY29sb3I6ICR7cC5iZFRoZW1lKCJoc2woMjE3IDkxJSA2MCUpIiwiaHNsKDIxMyA5MyUgNjglKSIpfTsKICAgICAgYmFja2dyb3VuZDogJHtwLmJkVGhlbWUoImhzbCgyMTcgOTElIDYwJSAvIDAuMTIpIiwiaHNsKDIxMyA5MyUgNjglIC8gMC4xMikiKX07CiAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgZmxleC1zaHJpbms6IDA7CiAgICB9CgogICAgLmRyb3B6b25lX19pY29uIGRlZXMtaWNvbiB7CiAgICAgIGZvbnQtc2l6ZTogMjJweDsKICAgIH0KCiAgICAuZHJvcHpvbmVfX2xvYWRlciB7CiAgICAgIHdpZHRoOiAyMHB4OwogICAgICBoZWlnaHQ6IDIwcHg7CiAgICAgIGJvcmRlci1yYWRpdXM6IDk5OXB4OwogICAgICBib3JkZXI6IDJweCBzb2xpZCAke3AuYmRUaGVtZSgicmdiYSgxNSwgMjMsIDQyLCAwLjE1KSIsInJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xNSkiKX07CiAgICAgIGJvcmRlci10b3AtY29sb3I6ICR7cC5iZFRoZW1lKCJoc2woMjE3IDkxJSA2MCUpIiwiaHNsKDIxMyA5MyUgNjglKSIpfTsKICAgICAgYW5pbWF0aW9uOiBsb2FkZXItc3BpbiAwLjZzIGxpbmVhciBpbmZpbml0ZTsKICAgIH0KCiAgICAuZHJvcHpvbmVfX2NvbnRlbnQgewogICAgICBkaXNwbGF5OiBmbGV4OwogICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICBnYXA6IDRweDsKICAgICAgbWluLXdpZHRoOiAwOwogICAgfQoKICAgIC5kcm9wem9uZV9faGVhZGxpbmUgewogICAgICBmb250LXNpemU6IDE1cHg7CiAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7CiAgICAgIGNvbG9yOiAke3AuYmRUaGVtZSgiaHNsKDIyMiA0NyUgMTElKSIsImhzbCgyMTAgMjAlIDk2JSkiKX07CiAgICB9CgogICAgLmRyb3B6b25lX19zdWJsaW5lIHsKICAgICAgZm9udC1zaXplOiAxM3B4OwogICAgICBjb2xvcjogJHtwLmJkVGhlbWUoImhzbCgyMTUgMTYlIDQ2JSkiLCJoc2woMjE1IDE2JSA3MCUpIil9OwogICAgfQoKICAgIC5kcm9wem9uZV9fYnJvd3NlIHsKICAgICAgYXBwZWFyYW5jZTogbm9uZTsKICAgICAgYm9yZGVyOiBub25lOwogICAgICBiYWNrZ3JvdW5kOiBub25lOwogICAgICBwYWRkaW5nOiAwOwogICAgICBtYXJnaW4tbGVmdDogNHB4OwogICAgICBjb2xvcjogJHtwLmJkVGhlbWUoImhzbCgyMTcgOTElIDYwJSkiLCJoc2woMjEzIDkzJSA2OCUpIil9OwogICAgICBmb250LXdlaWdodDogNjAwOwogICAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTsKICAgIH0KCiAgICAuZHJvcHpvbmVfX2Jyb3dzZTpob3ZlciB7CiAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lOwogICAgfQoKICAgIC5kcm9wem9uZV9fYnJvd3NlOmRpc2FibGVkIHsKICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDsKICAgICAgb3BhY2l0eTogMC42OwogICAgfQoKICAgIC5kcm9wem9uZV9fbWV0YSB7CiAgICAgIG1hcmdpbi10b3A6IDE0cHg7CiAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgIGZsZXgtd3JhcDogd3JhcDsKICAgICAgZ2FwOiA4cHg7CiAgICAgIGZvbnQtc2l6ZTogMTJweDsKICAgICAgY29sb3I6ICR7cC5iZFRoZW1lKCJoc2woMjE1IDE2JSA1MCUpIiwiaHNsKDIxNSAxNiUgNzIlKSIpfTsKICAgIH0KCiAgICAuZHJvcHpvbmVfX21ldGEgc3BhbiB7CiAgICAgIHBhZGRpbmc6IDRweCAxMHB4OwogICAgICBib3JkZXItcmFkaXVzOiA5OTlweDsKICAgICAgYmFja2dyb3VuZDogJHtwLmJkVGhlbWUoImhzbCgyMTcgOTElIDk1JSkiLCJoc2woMjEzIDkzJSAxOCUpIil9OwogICAgICBib3JkZXI6IDFweCBzb2xpZCAke3AuYmRUaGVtZSgiaHNsKDIxNyA5MSUgOTAlKSIsImhzbCgyMTMgOTMlIDI0JSkiKX07CiAgICB9CgogICAgLmZpbGUtbGlzdCB7CiAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgIGdhcDogMTJweDsKICAgICAgbWFyZ2luLXRvcDogMjBweDsKICAgICAgcGFkZGluZy10b3A6IDIwcHg7CiAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAke3AuYmRUaGVtZSgiaHNsKDIxNyA5MSUgOTAlKSIsImhzbCgyMTMgOTMlIDI0JSkiKX07CiAgICB9CgogICAgLmZpbGUtbGlzdF9faGVhZGVyIHsKICAgICAgZGlzcGxheTogZmxleDsKICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuOwogICAgICBmb250LXNpemU6IDEzcHg7CiAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7CiAgICAgIGNvbG9yOiAke3AuYmRUaGVtZSgiaHNsKDIxNSAxNiUgNDUlKSIsImhzbCgyMTUgMTYlIDY4JSkiKX07CiAgICB9CgogICAgLmZpbGUtbGlzdF9fY2xlYXIgewogICAgICBhcHBlYXJhbmNlOiBub25lOwogICAgICBib3JkZXI6IG5vbmU7CiAgICAgIGJhY2tncm91bmQ6IG5vbmU7CiAgICAgIGNvbG9yOiAke3AuYmRUaGVtZSgiaHNsKDIxNyA5MSUgNjAlKSIsImhzbCgyMTMgOTMlIDY4JSkiKX07CiAgICAgIGN1cnNvcjogcG9pbnRlcjsKICAgICAgZm9udC13ZWlnaHQ6IDUwMDsKICAgICAgZm9udC1zaXplOiAxM3B4OwogICAgICBwYWRkaW5nOiAwOwogICAgfQoKICAgIC5maWxlLWxpc3RfX2NsZWFyOmhvdmVyIHsKICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7CiAgICB9CgogICAgLmZpbGUtbGlzdF9faXRlbXMgewogICAgICBkaXNwbGF5OiBmbGV4OwogICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICBnYXA6IDEycHg7CiAgICB9CgogICAgLmZpbGUtcm93IHsKICAgICAgZGlzcGxheTogZmxleDsKICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgZ2FwOiAxMnB4OwogICAgICBwYWRkaW5nOiAxMHB4IDEycHg7CiAgICAgIGJhY2tncm91bmQ6ICR7cC5iZFRoZW1lKCJoc2woMCAwJSAxMDAlIC8gMC41KSIsImhzbCgyMTUgMjAlIDE2JSAvIDAuNSkiKX07CiAgICAgIGJvcmRlcjogMXB4IHNvbGlkICR7cC5iZFRoZW1lKCJoc2woMjEzIDI3JSA5MiUpIiwiaHNsKDIxNyAyNSUgMjYlKSIpfTsKICAgICAgYm9yZGVyLXJhZGl1czogOHB4OwogICAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kIDAuMTVzIGVhc2U7CiAgICB9CgogICAgLmZpbGUtcm93OmhvdmVyIHsKICAgICAgYmFja2dyb3VuZDogJHtwLmJkVGhlbWUoImhzbCgwIDAlIDEwMCUgLyAwLjgpIiwiaHNsKDIxNSAyMCUgMTYlIC8gMC44KSIpfTsKICAgIH0KCiAgICAuZmlsZS10aHVtYiB7CiAgICAgIHdpZHRoOiAzNnB4OwogICAgICBoZWlnaHQ6IDM2cHg7CiAgICAgIGJvcmRlci1yYWRpdXM6IDhweDsKICAgICAgYmFja2dyb3VuZDogJHtwLmJkVGhlbWUoImhzbCgyMTQgMzElIDkyJSkiLCJoc2woMjE3IDMyJSAxOCUpIil9OwogICAgICBkaXNwbGF5OiBmbGV4OwogICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgICAgZmxleC1zaHJpbms6IDA7CiAgICB9CgogICAgLmZpbGUtdGh1bWIgZGVlcy1pY29uIHsKICAgICAgZm9udC1zaXplOiAxOHB4OwogICAgICBjb2xvcjogJHtwLmJkVGhlbWUoImhzbCgyMTUgMTYlIDQ1JSkiLCJoc2woMjE1IDE2JSA3MCUpIil9OwogICAgICBkaXNwbGF5OiBibG9jazsKICAgICAgd2lkdGg6IDE4cHg7CiAgICAgIGhlaWdodDogMThweDsKICAgICAgbGluZS1oZWlnaHQ6IDE7CiAgICAgIGZsZXgtc2hyaW5rOiAwOwogICAgfQoKCiAgICAudGh1bWItaW1hZ2UgewogICAgICB3aWR0aDogMTAwJTsKICAgICAgaGVpZ2h0OiAxMDAlOwogICAgICBvYmplY3QtZml0OiBjb3ZlcjsKICAgIH0KCiAgICAuZmlsZS1tZXRhIHsKICAgICAgZGlzcGxheTogZmxleDsKICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgZ2FwOiA0cHg7CiAgICAgIG1pbi13aWR0aDogMDsKICAgIH0KCiAgICAuZmlsZS1uYW1lIHsKICAgICAgZm9udC13ZWlnaHQ6IDYwMDsKICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgICBjb2xvcjogJHtwLmJkVGhlbWUoImhzbCgyMjIgNDclIDExJSkiLCJoc2woMjEwIDIwJSA5NiUpIil9OwogICAgICB3aGl0ZS1zcGFjZTogbm93cmFwOwogICAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpczsKICAgIH0KCiAgICAuZmlsZS1kZXRhaWxzIHsKICAgICAgZGlzcGxheTogZmxleDsKICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgZ2FwOiA4cHg7CiAgICAgIGZsZXgtd3JhcDogd3JhcDsKICAgICAgZm9udC1zaXplOiAxMnB4OwogICAgICBjb2xvcjogJHtwLmJkVGhlbWUoImhzbCgyMTUgMTYlIDQ2JSkiLCJoc2woMjE1IDE2JSA3MCUpIil9OwogICAgfQoKICAgIC5maWxlLXNpemUgewogICAgICBmb250LXZhcmlhbnQtbnVtZXJpYzogdGFidWxhci1udW1zOwogICAgfQoKICAgIC5maWxlLXR5cGUgewogICAgICBwYWRkaW5nOiAycHggOHB4OwogICAgICBib3JkZXItcmFkaXVzOiA5OTlweDsKICAgICAgYm9yZGVyOiAxcHggc29saWQgJHtwLmJkVGhlbWUoImhzbCgyMTQgMzElIDg2JSkiLCJoc2woMjE3IDMyJSAyOCUpIil9OwogICAgICBjb2xvcjogJHtwLmJkVGhlbWUoImhzbCgyMTUgMTYlIDQ2JSkiLCJoc2woMjE1IDE2JSA3MCUpIil9OwogICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlOwogICAgICBsZXR0ZXItc3BhY2luZzogMC4wOGVtOwogICAgICBsaW5lLWhlaWdodDogMTsKICAgIH0KCiAgICAuZmlsZS1hY3Rpb25zIHsKICAgICAgZGlzcGxheTogZmxleDsKICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgZ2FwOiA4cHg7CiAgICAgIG1hcmdpbi1sZWZ0OiBhdXRvOwogICAgfQoKICAgIC5yZW1vdmUtYnV0dG9uIHsKICAgICAgd2lkdGg6IDI4cHg7CiAgICAgIGhlaWdodDogMjhweDsKICAgICAgYm9yZGVyLXJhZGl1czogNnB4OwogICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDsKICAgICAgYm9yZGVyOiBub25lOwogICAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOwogICAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kIDAuMTVzIGVhc2UsIHRyYW5zZm9ybSAwLjE1cyBlYXNlLCBjb2xvciAwLjE1cyBlYXNlOwogICAgICBjb2xvcjogJHtwLmJkVGhlbWUoImhzbCgyMTUgMTYlIDUyJSkiLCJoc2woMjE1IDE2JSA2OCUpIil9OwogICAgfQoKICAgIC5yZW1vdmUtYnV0dG9uOmhvdmVyIHsKICAgICAgYmFja2dyb3VuZDogJHtwLmJkVGhlbWUoImhzbCgwIDcyJSA1MCUgLyAwLjA4KSIsImhzbCgwIDYyJSAzMiUgLyAwLjE1KSIpfTsKICAgICAgY29sb3I6ICR7cC5iZFRoZW1lKCJoc2woMCA3MiUgNDYlKSIsImhzbCgwIDcwJSA3MCUpIil9OwogICAgfQoKICAgIC5yZW1vdmUtYnV0dG9uOmFjdGl2ZSB7CiAgICAgIHRyYW5zZm9ybTogc2NhbGUoMC45Nik7CiAgICB9CgogICAgLnJlbW92ZS1idXR0b24gZGVlcy1pY29uIHsKICAgICAgZGlzcGxheTogYmxvY2s7CiAgICAgIHdpZHRoOiAxNHB4OwogICAgICBoZWlnaHQ6IDE0cHg7CiAgICAgIGZvbnQtc2l6ZTogMTRweDsKICAgICAgbGluZS1oZWlnaHQ6IDE7CiAgICAgIGZsZXgtc2hyaW5rOiAwOwogICAgfQoKICAgIC52YWxpZGF0aW9uLW1lc3NhZ2UgewogICAgICBmb250LXNpemU6IDEzcHg7CiAgICAgIGNvbG9yOiAke3AuYmRUaGVtZSgiaHNsKDAgNzIlIDQwJSkiLCJoc2woMCA3MCUgNjglKSIpfTsKICAgICAgbGluZS1oZWlnaHQ6IDEuNTsKICAgIH0KCiAgICBAa2V5ZnJhbWVzIGxvYWRlci1zcGluIHsKICAgICAgdG8gewogICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDM2MGRlZyk7CiAgICAgIH0KICAgIH0KICBgXX0pO3ZhciBxcixvMixSeCxCcT1iKCgpPT57XzEoKTtwdXQoKTtmdXQoKTtEdCgpO1RsKCk7dWUoKTtxcj1mdW5jdGlvbih0LGUsYSxpLHIscyl7ZnVuY3Rpb24gbih4KXtpZih4IT09dm9pZCAwJiZ0eXBlb2YgeCE9ImZ1bmN0aW9uIil0aHJvdyBuZXcgVHlwZUVycm9yKCJGdW5jdGlvbiBleHBlY3RlZCIpO3JldHVybiB4fWZvcih2YXIgbz1pLmtpbmQsZD1vPT09ImdldHRlciI/ImdldCI6bz09PSJzZXR0ZXIiPyJzZXQiOiJ2YWx1ZSIsYz0hZSYmdD9pLnN0YXRpYz90OnQucHJvdG90eXBlOm51bGwsaD1lfHwoYz9PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGMsaS5uYW1lKTp7fSksbCxmPSExLGc9YS5sZW5ndGgtMTtnPj0wO2ctLSl7dmFyIHk9e307Zm9yKHZhciB2IGluIGkpeVt2XT12PT09ImFjY2VzcyI/e306aVt2XTtmb3IodmFyIHYgaW4gaS5hY2Nlc3MpeS5hY2Nlc3Nbdl09aS5hY2Nlc3Nbdl07eS5hZGRJbml0aWFsaXplcj1mdW5jdGlvbih4KXtpZihmKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBhZGQgaW5pdGlhbGl6ZXJzIGFmdGVyIGRlY29yYXRpb24gaGFzIGNvbXBsZXRlZCIpO3MucHVzaChuKHh8fG51bGwpKX07dmFyIG09KDAsYVtnXSkobz09PSJhY2Nlc3NvciI/e2dldDpoLmdldCxzZXQ6aC5zZXR9OmhbZF0seSk7aWYobz09PSJhY2Nlc3NvciIpe2lmKG09PT12b2lkIDApY29udGludWU7aWYobT09PW51bGx8fHR5cGVvZiBtIT0ib2JqZWN0Iil0aHJvdyBuZXcgVHlwZUVycm9yKCJPYmplY3QgZXhwZWN0ZWQiKTsobD1uKG0uZ2V0KSkmJihoLmdldD1sKSwobD1uKG0uc2V0KSkmJihoLnNldD1sKSwobD1uKG0uaW5pdCkpJiZyLnVuc2hpZnQobCl9ZWxzZShsPW4obSkpJiYobz09PSJmaWVsZCI/ci51bnNoaWZ0KGwpOmhbZF09bCl9YyYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGMsaS5uYW1lLGgpLGY9ITB9LG8yPWZ1bmN0aW9uKHQsZSxhKXtmb3IodmFyIGk9YXJndW1lbnRzLmxlbmd0aD4yLHI9MDtyPGUubGVuZ3RoO3IrKylhPWk/ZVtyXS5jYWxsKHQsYSk6ZVtyXS5jYWxsKHQpO3JldHVybiBpP2E6dm9pZCAwfSxSeD0oKCk9PntsZXQgdD1bcGUoImRlZXMtaW5wdXQtZmlsZXVwbG9hZCIpXSxlLGE9W10saSxyPVhlLHMsbj1bXSxvPVtdLGQsYz1bXSxoPVtdLGwsZj1bXSxnPVtdLHksdj1bXSxtPVtdLHgsTT1bXSxTPVtdLEYsXz1bXSxrPVtdLE4sTD1bXSxBPVtdLHEsQz1bXSx6PVtdLEUsVD1bXSwkPVtdO3ZhciBWPWNsYXNzIGV4dGVuZHMgcntzdGF0aWN7aT10aGlzfXN0YXRpY3tsZXQgUj10eXBlb2YgU3ltYm9sPT0iZnVuY3Rpb24iJiZTeW1ib2wubWV0YWRhdGE/T2JqZWN0LmNyZWF0ZShyW1N5bWJvbC5tZXRhZGF0YV0/P251bGwpOnZvaWQgMDtzPVtJKHthdHRyaWJ1dGU6ITF9KV0sZD1bSigpXSxsPVtKKCldLHk9W0koe3R5cGU6U3RyaW5nfSldLHg9W0koe3R5cGU6U3RyaW5nfSldLEY9W0koe3R5cGU6Qm9vbGVhbn0pXSxOPVtJKHt0eXBlOk51bWJlcn0pXSxxPVtJKHt0eXBlOk51bWJlcn0pXSxFPVtJKHt0eXBlOlN0cmluZyxyZWZsZWN0OiEwfSldLHFyKHRoaXMsbnVsbCxzLHtraW5kOiJhY2Nlc3NvciIsbmFtZToidmFsdWUiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOlU9PiJ2YWx1ZSJpbiBVLGdldDpVPT5VLnZhbHVlLHNldDooVSxyZSk9PntVLnZhbHVlPXJlfX0sbWV0YWRhdGE6Un0sbixvKSxxcih0aGlzLG51bGwsZCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InN0YXRlIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpVPT4ic3RhdGUiaW4gVSxnZXQ6VT0+VS5zdGF0ZSxzZXQ6KFUscmUpPT57VS5zdGF0ZT1yZX19LG1ldGFkYXRhOlJ9LGMsaCkscXIodGhpcyxudWxsLGwse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJpc0xvYWRpbmciLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOlU9PiJpc0xvYWRpbmciaW4gVSxnZXQ6VT0+VS5pc0xvYWRpbmcsc2V0OihVLHJlKT0+e1UuaXNMb2FkaW5nPXJlfX0sbWV0YWRhdGE6Un0sZixnKSxxcih0aGlzLG51bGwseSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImJ1dHRvblRleHQiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOlU9PiJidXR0b25UZXh0ImluIFUsZ2V0OlU9PlUuYnV0dG9uVGV4dCxzZXQ6KFUscmUpPT57VS5idXR0b25UZXh0PXJlfX0sbWV0YWRhdGE6Un0sdixtKSxxcih0aGlzLG51bGwseCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImFjY2VwdCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6VT0+ImFjY2VwdCJpbiBVLGdldDpVPT5VLmFjY2VwdCxzZXQ6KFUscmUpPT57VS5hY2NlcHQ9cmV9fSxtZXRhZGF0YTpSfSxNLFMpLHFyKHRoaXMsbnVsbCxGLHtraW5kOiJhY2Nlc3NvciIsbmFtZToibXVsdGlwbGUiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOlU9PiJtdWx0aXBsZSJpbiBVLGdldDpVPT5VLm11bHRpcGxlLHNldDooVSxyZSk9PntVLm11bHRpcGxlPXJlfX0sbWV0YWRhdGE6Un0sXyxrKSxxcih0aGlzLG51bGwsTix7a2luZDoiYWNjZXNzb3IiLG5hbWU6Im1heFNpemUiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOlU9PiJtYXhTaXplImluIFUsZ2V0OlU9PlUubWF4U2l6ZSxzZXQ6KFUscmUpPT57VS5tYXhTaXplPXJlfX0sbWV0YWRhdGE6Un0sTCxBKSxxcih0aGlzLG51bGwscSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6Im1heEZpbGVzIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpVPT4ibWF4RmlsZXMiaW4gVSxnZXQ6VT0+VS5tYXhGaWxlcyxzZXQ6KFUscmUpPT57VS5tYXhGaWxlcz1yZX19LG1ldGFkYXRhOlJ9LEMseikscXIodGhpcyxudWxsLEUse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJ2YWxpZGF0aW9uU3RhdGUiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOlU9PiJ2YWxpZGF0aW9uU3RhdGUiaW4gVSxnZXQ6VT0+VS52YWxpZGF0aW9uU3RhdGUsc2V0OihVLHJlKT0+e1UudmFsaWRhdGlvblN0YXRlPXJlfX0sbWV0YWRhdGE6Un0sVCwkKSxxcihudWxsLGU9e3ZhbHVlOml9LHQse2tpbmQ6ImNsYXNzIixuYW1lOmkubmFtZSxtZXRhZGF0YTpSfSxudWxsLGEpLFY9aT1lLnZhbHVlLFImJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShpLFN5bWJvbC5tZXRhZGF0YSx7ZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITAsdmFsdWU6Un0pfXN0YXRpYyBkZW1vPWh1dDtzdGF0aWMgZGVtb0dyb3Vwcz1bIklucHV0Il07I2U9bzIodGhpcyxuLFtdKTtnZXQgdmFsdWUoKXtyZXR1cm4gdGhpcy4jZX1zZXQgdmFsdWUoUil7dGhpcy4jZT1SfSN0PShvMih0aGlzLG8pLG8yKHRoaXMsYywiaWRsZSIpKTtnZXQgc3RhdGUoKXtyZXR1cm4gdGhpcy4jdH1zZXQgc3RhdGUoUil7dGhpcy4jdD1SfSNhPShvMih0aGlzLGgpLG8yKHRoaXMsZiwhMSkpO2dldCBpc0xvYWRpbmcoKXtyZXR1cm4gdGhpcy4jYX1zZXQgaXNMb2FkaW5nKFIpe3RoaXMuI2E9Un0jaT0obzIodGhpcyxnKSxvMih0aGlzLHYsIlNlbGVjdCBmaWxlcyIpKTtnZXQgYnV0dG9uVGV4dCgpe3JldHVybiB0aGlzLiNpfXNldCBidXR0b25UZXh0KFIpe3RoaXMuI2k9Un0jcj0obzIodGhpcyxtKSxvMih0aGlzLE0sIiIpKTtnZXQgYWNjZXB0KCl7cmV0dXJuIHRoaXMuI3J9c2V0IGFjY2VwdChSKXt0aGlzLiNyPVJ9I3M9KG8yKHRoaXMsUyksbzIodGhpcyxfLCEwKSk7Z2V0IG11bHRpcGxlKCl7cmV0dXJuIHRoaXMuI3N9c2V0IG11bHRpcGxlKFIpe3RoaXMuI3M9Un0jbj0obzIodGhpcyxrKSxvMih0aGlzLEwsMCkpO2dldCBtYXhTaXplKCl7cmV0dXJuIHRoaXMuI259c2V0IG1heFNpemUoUil7dGhpcy4jbj1SfSNvPShvMih0aGlzLEEpLG8yKHRoaXMsQywwKSk7Z2V0IG1heEZpbGVzKCl7cmV0dXJuIHRoaXMuI299c2V0IG1heEZpbGVzKFIpe3RoaXMuI289Un0jbD0obzIodGhpcyx6KSxvMih0aGlzLFQsbnVsbCkpO2dldCB2YWxpZGF0aW9uU3RhdGUoKXtyZXR1cm4gdGhpcy4jbH1zZXQgdmFsaWRhdGlvblN0YXRlKFIpe3RoaXMuI2w9Un0jYz0obzIodGhpcywkKSwiIik7Z2V0IHZhbGlkYXRpb25NZXNzYWdlKCl7cmV0dXJuIHRoaXMuI2N9c2V0IHZhbGlkYXRpb25NZXNzYWdlKFIpe3RoaXMuI2M9Un1wcmV2aWV3VXJsTWFwPW5ldyBXZWFrTWFwO2Ryb3BBcmVhPW51bGw7c3RhdGljIHN0eWxlcz11dXQ7cmVuZGVyKCl7bGV0IFI9dGhpcy5nZXRBY2NlcHRlZFN1bW1hcnkoKSxVPVt0aGlzLm11bHRpcGxlPyJNdWx0aXBsZSBmaWxlcyBzdXBwb3J0ZWQiOiJTaW5nbGUgZmlsZSBvbmx5Iix0aGlzLm1heFNpemU+MD9gTWF4ICR7dGhpcy5mb3JtYXRGaWxlU2l6ZSh0aGlzLm1heFNpemUpfWA6Ik5vIHNpemUgbGltaXQiXTtyZXR1cm4gUiYmVS5wdXNoKGBBY2NlcHRzICR7Un1gKSx3YAogICAgICA8ZGl2IGNsYXNzPSJpbnB1dC13cmFwcGVyIj4KICAgICAgICA8ZGVlcy1sYWJlbAogICAgICAgICAgLmxhYmVsPSR7dGhpcy5sYWJlbH0KICAgICAgICAgIC5kZXNjcmlwdGlvbj0ke3RoaXMuZGVzY3JpcHRpb259CiAgICAgICAgICAucmVxdWlyZWQ9JHt0aGlzLnJlcXVpcmVkfQogICAgICAgID48L2RlZXMtbGFiZWw+CiAgICAgICAgPGRpdgogICAgICAgICAgY2xhc3M9ImRyb3B6b25lICR7dGhpcy5zdGF0ZT09PSJkcmFnT3ZlciI/ImRyb3B6b25lLS1hY3RpdmUiOiIifSAke3RoaXMuZGlzYWJsZWQ/ImRyb3B6b25lLS1kaXNhYmxlZCI6IiJ9ICR7dGhpcy52YWx1ZS5sZW5ndGg+MD8iZHJvcHpvbmUtLWhhcy1maWxlcyI6IiJ9IgogICAgICAgICAgcm9sZT0iYnV0dG9uIgogICAgICAgICAgdGFiaW5kZXg9JHt0aGlzLmRpc2FibGVkPy0xOjB9CiAgICAgICAgICBhcmlhLWRpc2FibGVkPSR7dGhpcy5kaXNhYmxlZH0KICAgICAgICAgIGFyaWEtbGFiZWw9JHtgU2VsZWN0IGZpbGVzJHtSP2AgKCR7Un0pYDoiIn1gfQogICAgICAgICAgQGNsaWNrPSR7dGhpcy5oYW5kbGVEcm9wem9uZUNsaWNrfQogICAgICAgICAgQGtleWRvd249JHt0aGlzLmhhbmRsZURyb3B6b25lS2V5ZG93bn0KICAgICAgICA+CiAgICAgICAgICA8aW5wdXQKICAgICAgICAgICAgY2xhc3M9ImZpbGUtaW5wdXQiCiAgICAgICAgICAgIHN0eWxlPSJwb3NpdGlvbjogYWJzb2x1dGU7IG9wYWNpdHk6IDA7IHBvaW50ZXItZXZlbnRzOiBub25lOyB3aWR0aDogMXB4OyBoZWlnaHQ6IDFweDsgdG9wOiAwOyBsZWZ0OiAwOyBvdmVyZmxvdzogaGlkZGVuOyIKICAgICAgICAgICAgdHlwZT0iZmlsZSIKICAgICAgICAgICAgP211bHRpcGxlPSR7dGhpcy5tdWx0aXBsZX0KICAgICAgICAgICAgYWNjZXB0PSR7dGhpcy5hY2NlcHR8fCIifQogICAgICAgICAgICA/ZGlzYWJsZWQ9JHt0aGlzLmRpc2FibGVkfQogICAgICAgICAgICBAY2hhbmdlPSR7dGhpcy5oYW5kbGVGaWxlSW5wdXRDaGFuZ2V9CiAgICAgICAgICAgIHRhYmluZGV4PSItMSIKICAgICAgICAgIC8+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJkcm9wem9uZV9fYm9keSI+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9ImRyb3B6b25lX19pY29uIj4KICAgICAgICAgICAgICAke3RoaXMuaXNMb2FkaW5nP3dgPHNwYW4gY2xhc3M9ImRyb3B6b25lX19sb2FkZXIiIGFyaWEtaGlkZGVuPSJ0cnVlIj48L3NwYW4+YDp3YDxkZWVzLWljb24gaWNvbj0ibHVjaWRlOkZvbGRlck9wZW4iPjwvZGVlcy1pY29uPmB9CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJkcm9wem9uZV9fY29udGVudCI+CiAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImRyb3B6b25lX19oZWFkbGluZSI+JHt0aGlzLmJ1dHRvblRleHR8fCJTZWxlY3QgZmlsZXMifTwvc3Bhbj4KICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZHJvcHpvbmVfX3N1YmxpbmUiPgogICAgICAgICAgICAgICAgRHJhZyBhbmQgZHJvcCBmaWxlcyBoZXJlIG9yCiAgICAgICAgICAgICAgICA8YnV0dG9uCiAgICAgICAgICAgICAgICAgIHR5cGU9ImJ1dHRvbiIKICAgICAgICAgICAgICAgICAgY2xhc3M9ImRyb3B6b25lX19icm93c2UiCiAgICAgICAgICAgICAgICAgIEBjbGljaz0ke3RoaXMuaGFuZGxlQnJvd3NlQ2xpY2t9CiAgICAgICAgICAgICAgICAgID9kaXNhYmxlZD0ke3RoaXMuZGlzYWJsZWR9CiAgICAgICAgICAgICAgICA+CiAgICAgICAgICAgICAgICAgIGJyb3dzZQogICAgICAgICAgICAgICAgPC9idXR0b24+CiAgICAgICAgICAgICAgPC9zcGFuPgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIDwvZGl2PgogICAgICAgICAgPGRpdiBjbGFzcz0iZHJvcHpvbmVfX21ldGEiPgogICAgICAgICAgICAke1UubWFwKHJlPT53YDxzcGFuPiR7cmV9PC9zcGFuPmApfQogICAgICAgICAgPC9kaXY+CiAgICAgICAgICAke3RoaXMucmVuZGVyRmlsZUxpc3QoKX0KICAgICAgICA8L2Rpdj4KICAgICAgICAke3RoaXMudmFsaWRhdGlvbk1lc3NhZ2U/d2A8ZGl2IGNsYXNzPSJ2YWxpZGF0aW9uLW1lc3NhZ2UiIGFyaWEtbGl2ZT0icG9saXRlIj4ke3RoaXMudmFsaWRhdGlvbk1lc3NhZ2V9PC9kaXY+YDp3YGB9CiAgICAgIDwvZGl2PgogICAgYH1yZW5kZXJGaWxlTGlzdCgpe3JldHVybiB0aGlzLnZhbHVlLmxlbmd0aD09PTA/d2BgOndgCiAgICAgIDxkaXYgY2xhc3M9ImZpbGUtbGlzdCI+CiAgICAgICAgPGRpdiBjbGFzcz0iZmlsZS1saXN0X19oZWFkZXIiPgogICAgICAgICAgPHNwYW4+JHt0aGlzLnZhbHVlLmxlbmd0aH0gZmlsZSR7dGhpcy52YWx1ZS5sZW5ndGg9PT0xPyIiOiJzIn0gc2VsZWN0ZWQ8L3NwYW4+CiAgICAgICAgICAke3RoaXMudmFsdWUubGVuZ3RoPjA/d2A8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImZpbGUtbGlzdF9fY2xlYXIiIEBjbGljaz0ke3RoaXMuaGFuZGxlQ2xlYXJBbGx9PkNsZWFyICR7dGhpcy52YWx1ZS5sZW5ndGg+MT8iYWxsIjoiIn08L2J1dHRvbj5gOndgYH0KICAgICAgICA8L2Rpdj4KICAgICAgICA8ZGl2IGNsYXNzPSJmaWxlLWxpc3RfX2l0ZW1zIj4KICAgICAgICAgICR7dGhpcy52YWx1ZS5tYXAoUj0+dGhpcy5yZW5kZXJGaWxlUm93KFIpKX0KICAgICAgICA8L2Rpdj4KICAgICAgPC9kaXY+CiAgICBgfXJlbmRlckZpbGVSb3coUil7bGV0IFU9dGhpcy5nZXRGaWxlVHlwZShSKSxyZT10aGlzLmNhblNob3dQcmV2aWV3KFIpP3RoaXMuZ2V0UHJldmlld1VybChSKTpudWxsO3JldHVybiB3YAogICAgICA8ZGl2IGNsYXNzPSJmaWxlLXJvdyAke1V9LWZpbGUiPgogICAgICAgIDxkaXYgY2xhc3M9ImZpbGUtdGh1bWIiIGFyaWEtaGlkZGVuPSJ0cnVlIj4KICAgICAgICAgICR7cmU/d2A8aW1nIGNsYXNzPSJ0aHVtYi1pbWFnZSIgc3JjPSR7cmV9IGFsdD0ke2BQcmV2aWV3IG9mICR7Ui5uYW1lfWB9PmA6d2A8ZGVlcy1pY29uIGljb249JHt0aGlzLmdldEZpbGVJY29uKFIpfT48L2RlZXMtaWNvbj5gfQogICAgICAgIDwvZGl2PgogICAgICAgIDxkaXYgY2xhc3M9ImZpbGUtbWV0YSI+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJmaWxlLW5hbWUiIHRpdGxlPSR7Ui5uYW1lfT4ke1IubmFtZX08L2Rpdj4KICAgICAgICAgIDxkaXYgY2xhc3M9ImZpbGUtZGV0YWlscyI+CiAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJmaWxlLXNpemUiPiR7dGhpcy5mb3JtYXRGaWxlU2l6ZShSLnNpemUpfTwvc3Bhbj4KICAgICAgICAgICAgJHtVIT09ImZpbGUiP3dgPHNwYW4gY2xhc3M9ImZpbGUtdHlwZSI+JHtVfTwvc3Bhbj5gOndgYH0KICAgICAgICAgIDwvZGl2PgogICAgICAgIDwvZGl2PgogICAgICAgIDxkaXYgY2xhc3M9ImZpbGUtYWN0aW9ucyI+CiAgICAgICAgICA8YnV0dG9uCiAgICAgICAgICAgIHR5cGU9ImJ1dHRvbiIKICAgICAgICAgICAgY2xhc3M9InJlbW92ZS1idXR0b24iCiAgICAgICAgICAgIEBjbGljaz0keygpPT50aGlzLnJlbW92ZUZpbGUoUil9CiAgICAgICAgICAgIGFyaWEtbGFiZWw9JHtgUmVtb3ZlICR7Ui5uYW1lfWB9CiAgICAgICAgICA+CiAgICAgICAgICAgIDxkZWVzLWljb24gaWNvbj0ibHVjaWRlOlgiPjwvZGVlcy1pY29uPgogICAgICAgICAgPC9idXR0b24+CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGl2PgogICAgYH1oYW5kbGVGaWxlSW5wdXRDaGFuZ2U9YXN5bmMgUj0+e3RoaXMuaXNMb2FkaW5nPSExO2xldCBVPVIudGFyZ2V0LHJlPUFycmF5LmZyb20oVS5maWxlcz8/W10pO3JlLmxlbmd0aD4wJiZhd2FpdCB0aGlzLmFkZEZpbGVzKHJlKSxVLnZhbHVlPSIifTtoYW5kbGVEcm9wem9uZUNsaWNrPVI9Pnt0aGlzLmRpc2FibGVkfHxSLnRhcmdldC5jbG9zZXN0KCIuZHJvcHpvbmVfX2Jyb3dzZSwgLmZpbGUtbGlzdCIpfHx0aGlzLm9wZW5GaWxlU2VsZWN0b3IoKX07aGFuZGxlQnJvd3NlQ2xpY2s9Uj0+e3RoaXMuZGlzYWJsZWR8fChSLnN0b3BQcm9wYWdhdGlvbigpLHRoaXMub3BlbkZpbGVTZWxlY3RvcigpKX07aGFuZGxlRHJvcHpvbmVLZXlkb3duPVI9Pnt0aGlzLmRpc2FibGVkfHwoUi5rZXk9PT0iRW50ZXIifHxSLmtleT09PSIgIikmJihSLnByZXZlbnREZWZhdWx0KCksdGhpcy5vcGVuRmlsZVNlbGVjdG9yKCkpfTtoYW5kbGVDbGVhckFsbD1SPT57Ui5wcmV2ZW50RGVmYXVsdCgpLHRoaXMuY2xlYXJBbGwoKX07aGFuZGxlRHJhZ0V2ZW50PWFzeW5jIFI9PntpZihSLnByZXZlbnREZWZhdWx0KCksUi5zdG9wUHJvcGFnYXRpb24oKSwhdGhpcy5kaXNhYmxlZCl7aWYoUi50eXBlPT09ImRyYWdlbnRlciJ8fFIudHlwZT09PSJkcmFnb3ZlciIpe1IuZGF0YVRyYW5zZmVyJiYoUi5kYXRhVHJhbnNmZXIuZHJvcEVmZmVjdD0iY29weSIpLHRoaXMuc3RhdGU9ImRyYWdPdmVyIjtyZXR1cm59aWYoUi50eXBlPT09ImRyYWdsZWF2ZSIpe2lmKCF0aGlzLmRyb3BBcmVhKXt0aGlzLnN0YXRlPSJpZGxlIjtyZXR1cm59bGV0IFU9dGhpcy5kcm9wQXJlYS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKSx7Y2xpZW50WDpyZT0wLGNsaWVudFk6aj0wfT1SOyhyZTw9VS5sZWZ0fHxyZT49VS5yaWdodHx8ajw9VS50b3B8fGo+PVUuYm90dG9tKSYmKHRoaXMuc3RhdGU9ImlkbGUiKTtyZXR1cm59aWYoUi50eXBlPT09ImRyb3AiKXt0aGlzLnN0YXRlPSJpZGxlIjtsZXQgVT1BcnJheS5mcm9tKFIuZGF0YVRyYW5zZmVyPy5maWxlcz8/W10pO1UubGVuZ3RoPjAmJmF3YWl0IHRoaXMuYWRkRmlsZXMoVSl9fX07YXR0YWNoRHJvcExpc3RlbmVycygpe3RoaXMuZHJvcEFyZWEmJlsiZHJhZ2VudGVyIiwiZHJhZ292ZXIiLCJkcmFnbGVhdmUiLCJkcm9wIl0uZm9yRWFjaChSPT57dGhpcy5kcm9wQXJlYS5hZGRFdmVudExpc3RlbmVyKFIsdGhpcy5oYW5kbGVEcmFnRXZlbnQpfSl9ZGV0YWNoRHJvcExpc3RlbmVycygpe3RoaXMuZHJvcEFyZWEmJlsiZHJhZ2VudGVyIiwiZHJhZ292ZXIiLCJkcmFnbGVhdmUiLCJkcm9wIl0uZm9yRWFjaChSPT57dGhpcy5kcm9wQXJlYS5yZW1vdmVFdmVudExpc3RlbmVyKFIsdGhpcy5oYW5kbGVEcmFnRXZlbnQpfSl9cmViaW5kSW50ZXJhY3RpdmVFbGVtZW50cygpe2xldCBSPXRoaXMuc2hhZG93Um9vdD8ucXVlcnlTZWxlY3RvcigiLmRyb3B6b25lIik7UiE9PXRoaXMuZHJvcEFyZWEmJih0aGlzLmRldGFjaERyb3BMaXN0ZW5lcnMoKSx0aGlzLmRyb3BBcmVhPVIsdGhpcy5hdHRhY2hEcm9wTGlzdGVuZXJzKCkpfWZvcm1hdEZpbGVTaXplKFIpe2xldCBVPVsiQnl0ZXMiLCJLQiIsIk1CIiwiR0IiXTtpZihSPT09MClyZXR1cm4iMCBCeXRlcyI7bGV0IHJlPU1hdGgubWluKE1hdGguZmxvb3IoTWF0aC5sb2coUikvTWF0aC5sb2coMTAyNCkpLFUubGVuZ3RoLTEpLGo9Ui9NYXRoLnBvdygxMDI0LHJlKTtyZXR1cm5gJHtNYXRoLnJvdW5kKGoqMTAwKS8xMDB9ICR7VVtyZV19YH1nZXRGaWxlVHlwZShSKXtsZXQgVT1SLnR5cGUudG9Mb3dlckNhc2UoKTtyZXR1cm4gVS5zdGFydHNXaXRoKCJpbWFnZS8iKT8iaW1hZ2UiOlU9PT0iYXBwbGljYXRpb24vcGRmIj8icGRmIjpVLmluY2x1ZGVzKCJ3b3JkIil8fFUuaW5jbHVkZXMoImRvY3VtZW50Iik/ImRvYyI6VS5pbmNsdWRlcygic2hlZXQiKXx8VS5pbmNsdWRlcygiZXhjZWwiKT8ic3ByZWFkc2hlZXQiOlUuaW5jbHVkZXMoInByZXNlbnRhdGlvbiIpfHxVLmluY2x1ZGVzKCJwb3dlcnBvaW50Iik/InByZXNlbnRhdGlvbiI6VS5zdGFydHNXaXRoKCJ2aWRlby8iKT8idmlkZW8iOlUuc3RhcnRzV2l0aCgiYXVkaW8vIik/ImF1ZGlvIjpVLmluY2x1ZGVzKCJ6aXAiKXx8VS5pbmNsdWRlcygiY29tcHJlc3NlZCIpPyJhcmNoaXZlIjoiZmlsZSJ9Z2V0RmlsZUljb24oUil7bGV0IFU9dGhpcy5nZXRGaWxlVHlwZShSKTtyZXR1cm57aW1hZ2U6Imx1Y2lkZTpGaWxlSW1hZ2UiLHBkZjoibHVjaWRlOkZpbGVUZXh0Iixkb2M6Imx1Y2lkZTpGaWxlVGV4dCIsc3ByZWFkc2hlZXQ6Imx1Y2lkZTpGaWxlU3ByZWFkc2hlZXQiLHByZXNlbnRhdGlvbjoibHVjaWRlOkZpbGVCYXJDaGFydCIsdmlkZW86Imx1Y2lkZTpGaWxlVmlkZW8iLGF1ZGlvOiJsdWNpZGU6RmlsZUF1ZGlvIixhcmNoaXZlOiJsdWNpZGU6RmlsZUFyY2hpdmUiLGZpbGU6Imx1Y2lkZTpGaWxlIn1bVV0/PyJsdWNpZGU6RmlsZSJ9Y2FuU2hvd1ByZXZpZXcoUil7cmV0dXJuIFIudHlwZS5zdGFydHNXaXRoKCJpbWFnZS8iKSYmUi5zaXplPDUqMTAyNCoxMDI0fXZhbGlkYXRlRmlsZShSKXtpZih0aGlzLm1heFNpemU+MCYmUi5zaXplPnRoaXMubWF4U2l6ZSlyZXR1cm4gdGhpcy52YWxpZGF0aW9uTWVzc2FnZT1gRmlsZSAiJHtSLm5hbWV9IiBleGNlZWRzIHRoZSBtYXhpbXVtIHNpemUgb2YgJHt0aGlzLmZvcm1hdEZpbGVTaXplKHRoaXMubWF4U2l6ZSl9YCx0aGlzLnZhbGlkYXRpb25TdGF0ZT0iaW52YWxpZCIsITE7aWYodGhpcy5hY2NlcHQpe2xldCBVPXRoaXMuYWNjZXB0LnNwbGl0KCIsIikubWFwKHJlPT5yZS50cmltKCkpLmZpbHRlcihyZT0+cmUubGVuZ3RoPjApO2lmKFUubGVuZ3RoPjApe2xldCByZT0hMTtmb3IobGV0IGogb2YgVSlpZihqLnN0YXJ0c1dpdGgoIi4iKSl7aWYoUi5uYW1lLnRvTG93ZXJDYXNlKCkuZW5kc1dpdGgoai50b0xvd2VyQ2FzZSgpKSl7cmU9ITA7YnJlYWt9fWVsc2UgaWYoai5lbmRzV2l0aCgiLyoiKSl7bGV0IG1lPWouc2xpY2UoMCwtMik7aWYoUi50eXBlLnN0YXJ0c1dpdGgobWUpKXtyZT0hMDticmVha319ZWxzZSBpZihSLnR5cGU9PT1qKXtyZT0hMDticmVha31pZighcmUpcmV0dXJuIHRoaXMudmFsaWRhdGlvbk1lc3NhZ2U9YEZpbGUgdHlwZSBub3QgYWNjZXB0ZWQuIEFsbG93ZWQ6ICR7VS5qb2luKCIsICIpfWAsdGhpcy52YWxpZGF0aW9uU3RhdGU9ImludmFsaWQiLCExfX1yZXR1cm4hMH1nZXRQcmV2aWV3VXJsKFIpe2xldCBVPXRoaXMucHJldmlld1VybE1hcC5nZXQoUik7cmV0dXJuIFV8fChVPVVSTC5jcmVhdGVPYmplY3RVUkwoUiksdGhpcy5wcmV2aWV3VXJsTWFwLnNldChSLFUpKSxVfXJlbGVhc2VQcmV2aWV3KFIpe2xldCBVPXRoaXMucHJldmlld1VybE1hcC5nZXQoUik7VSYmKFVSTC5yZXZva2VPYmplY3RVUkwoVSksdGhpcy5wcmV2aWV3VXJsTWFwLmRlbGV0ZShSKSl9Z2V0QWNjZXB0ZWRTdW1tYXJ5KCl7aWYoIXRoaXMuYWNjZXB0KXJldHVybiBudWxsO2xldCBSPUFycmF5LmZyb20obmV3IFNldCh0aGlzLmFjY2VwdC5zcGxpdCgiLCIpLm1hcChVPT5VLnRyaW0oKSkuZmlsdGVyKFU9PlUubGVuZ3RoPjApLm1hcChVPT50aGlzLmZvcm1hdEFjY2VwdFRva2VuKFUpKSkpLmZpbHRlcihCb29sZWFuKTtyZXR1cm4gUi5sZW5ndGg9PT0wP251bGw6Ui5sZW5ndGg9PT0xP1JbMF06Ui5sZW5ndGg9PT0yP2Ake1JbMF19LCAke1JbMV19YDpgJHtSLnNsaWNlKDAsMikuam9pbigiLCAiKX1cdTIwMjZgfWZvcm1hdEFjY2VwdFRva2VuKFIpe2lmKFI9PT0iKi8qIilyZXR1cm4iQWxsIGZpbGVzIjtpZihSLmVuZHNXaXRoKCIvKiIpKXtsZXQgaj1SLnNwbGl0KCIvIilbMF07cmV0dXJuIGo/YCR7ai5jaGFyQXQoMCkudG9VcHBlckNhc2UoKX0ke2ouc2xpY2UoMSl9IGZpbGVzYDoiQWxsIGZpbGVzIn1yZXR1cm4gUi5zdGFydHNXaXRoKCIuIik/Ui5zbGljZSgxKS50b1VwcGVyQ2FzZSgpOlIuaW5jbHVkZXMoInBkZiIpPyJQREYiOlIuaW5jbHVkZXMoInppcCIpPyJaSVAiOlIuaW5jbHVkZXMoImpzb24iKT8iSlNPTiI6Ui5pbmNsdWRlcygibXN3b3JkIik/IkRPQyI6Ui5pbmNsdWRlcygid29yZHByb2Nlc3NpbmdtbCIpPyJET0NYIjpSLmluY2x1ZGVzKCJleGNlbCIpPyJYTFMiOlIuaW5jbHVkZXMoInByZXNlbnRhdGlvbiIpPyJQUFQiOihSLnNwbGl0KCIvIikucG9wKCk/P1IpLnRvVXBwZXJDYXNlKCl9YXR0YWNoTGlmZWN5Y2xlTGlzdGVuZXJzKCl7dGhpcy5yZWJpbmRJbnRlcmFjdGl2ZUVsZW1lbnRzKCl9Zmlyc3RVcGRhdGVkKFIpe3N1cGVyLmZpcnN0VXBkYXRlZChSKSx0aGlzLmF0dGFjaExpZmVjeWNsZUxpc3RlbmVycygpfXVwZGF0ZWQoUil7c3VwZXIudXBkYXRlZChSKSxSLmhhcygidmFsdWUiKSYmdGhpcy52YWxpZGF0ZSgpLHRoaXMucmViaW5kSW50ZXJhY3RpdmVFbGVtZW50cygpfWFzeW5jIGRpc2Nvbm5lY3RlZENhbGxiYWNrKCl7dGhpcy5kZXRhY2hEcm9wTGlzdGVuZXJzKCksdGhpcy52YWx1ZS5mb3JFYWNoKFI9PnRoaXMucmVsZWFzZVByZXZpZXcoUikpLHRoaXMucHJldmlld1VybE1hcD1uZXcgV2Vha01hcCxhd2FpdCBzdXBlci5kaXNjb25uZWN0ZWRDYWxsYmFjaygpfWFzeW5jIG9wZW5GaWxlU2VsZWN0b3IoKXtpZih0aGlzLmRpc2FibGVkfHx0aGlzLmlzTG9hZGluZylyZXR1cm47dGhpcy5pc0xvYWRpbmc9ITA7bGV0IFI9dGhpcy5zaGFkb3dSb290Py5xdWVyeVNlbGVjdG9yKCIuZmlsZS1pbnB1dCIpO2lmKCFSKXt0aGlzLmlzTG9hZGluZz0hMTtyZXR1cm59bGV0IFU9KCk9PntzZXRUaW1lb3V0KCgpPT57KCFSLmZpbGVzfHxSLmZpbGVzLmxlbmd0aD09PTApJiYodGhpcy5pc0xvYWRpbmc9ITEpLHdpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyKCJmb2N1cyIsVSl9LDMwMCl9O3dpbmRvdy5hZGRFdmVudExpc3RlbmVyKCJmb2N1cyIsVSksUi5jbGljaygpfXJlbW92ZUZpbGUoUil7bGV0IFU9dGhpcy52YWx1ZS5pbmRleE9mKFIpO1U+LTEmJih0aGlzLnJlbGVhc2VQcmV2aWV3KFIpLHRoaXMudmFsdWUuc3BsaWNlKFUsMSksdGhpcy5yZXF1ZXN0VXBkYXRlKCJ2YWx1ZSIpLHRoaXMudmFsaWRhdGUoKSx0aGlzLmNoYW5nZVN1YmplY3QubmV4dCh0aGlzKSl9Y2xlYXJBbGwoKXtsZXQgUj1bLi4udGhpcy52YWx1ZV07dGhpcy52YWx1ZT1bXSxSLmZvckVhY2goVT0+dGhpcy5yZWxlYXNlUHJldmlldyhVKSksdGhpcy5yZXF1ZXN0VXBkYXRlKCJ2YWx1ZSIpLHRoaXMudmFsaWRhdGUoKSx0aGlzLmNoYW5nZVN1YmplY3QubmV4dCh0aGlzKSx0aGlzLmJ1dHRvblRleHQ9IlNlbGVjdCBmaWxlcyJ9YXN5bmMgdXBkYXRlVmFsdWUoUil7bGV0IFU9Ui50YXJnZXQ7dGhpcy52YWx1ZT1BcnJheS5mcm9tKFUuZmlsZXM/P1tdKSx0aGlzLmNoYW5nZVN1YmplY3QubmV4dCh0aGlzKX1zZXRWYWx1ZShSKXt0aGlzLnZhbHVlLmZvckVhY2goVT0+dGhpcy5yZWxlYXNlUHJldmlldyhVKSksdGhpcy52YWx1ZT1SLFIubGVuZ3RoPjA/dGhpcy5idXR0b25UZXh0PXRoaXMubXVsdGlwbGU/IkFkZCBtb3JlIGZpbGVzIjoiUmVwbGFjZSBmaWxlIjp0aGlzLmJ1dHRvblRleHQ9IlNlbGVjdCBmaWxlcyIsdGhpcy5yZXF1ZXN0VXBkYXRlKCJ2YWx1ZSIpLHRoaXMudmFsaWRhdGUoKX1nZXRWYWx1ZSgpe3JldHVybiB0aGlzLnZhbHVlfWFzeW5jIGFkZEZpbGVzKFIpe2xldCBVPVtdO2ZvcihsZXQgcmUgb2YgUil0aGlzLnZhbGlkYXRlRmlsZShyZSkmJlUucHVzaChyZSk7aWYoVS5sZW5ndGg9PT0wKXt0aGlzLmlzTG9hZGluZz0hMTtyZXR1cm59aWYodGhpcy5tYXhGaWxlcz4wJiZ0aGlzLnZhbHVlLmxlbmd0aCtVLmxlbmd0aD50aGlzLm1heEZpbGVzKXtsZXQgaj10aGlzLm1heEZpbGVzLXRoaXMudmFsdWUubGVuZ3RoO2lmKGo8PTApe3RoaXMudmFsaWRhdGlvbk1lc3NhZ2U9YE1heGltdW0gJHt0aGlzLm1heEZpbGVzfSBmaWxlcyBhbGxvd2VkYCx0aGlzLnZhbGlkYXRpb25TdGF0ZT0iaW52YWxpZCIsdGhpcy5pc0xvYWRpbmc9ITE7cmV0dXJufVUuc3BsaWNlKGopLHRoaXMudmFsaWRhdGlvbk1lc3NhZ2U9YE9ubHkgJHtqfSBtb3JlIGZpbGUocykgY2FuIGJlIGFkZGVkYCx0aGlzLnZhbGlkYXRpb25TdGF0ZT0id2FybiJ9IXRoaXMubXVsdGlwbGUmJlUubGVuZ3RoPjA/KHRoaXMudmFsdWUuZm9yRWFjaChyZT0+dGhpcy5yZWxlYXNlUHJldmlldyhyZSkpLHRoaXMudmFsdWU9W1VbMF1dKTp0aGlzLnZhbHVlLnB1c2goLi4uVSksdGhpcy52YWxpZGF0aW9uTWVzc2FnZT0iIix0aGlzLnZhbGlkYXRpb25TdGF0ZT1udWxsLHRoaXMucmVxdWVzdFVwZGF0ZSgidmFsdWUiKSxhd2FpdCB0aGlzLnZhbGlkYXRlKCksdGhpcy5jaGFuZ2VTdWJqZWN0Lm5leHQodGhpcyksdGhpcy5pc0xvYWRpbmc9ITEsdGhpcy52YWx1ZS5sZW5ndGg+MD90aGlzLmJ1dHRvblRleHQ9dGhpcy5tdWx0aXBsZT8iQWRkIG1vcmUgZmlsZXMiOiJSZXBsYWNlIGZpbGUiOnRoaXMuYnV0dG9uVGV4dD0iU2VsZWN0IGZpbGVzIn1hc3luYyB2YWxpZGF0ZSgpe2lmKHRoaXMudmFsaWRhdGlvbk1lc3NhZ2U9IiIsdGhpcy5yZXF1aXJlZCYmdGhpcy52YWx1ZS5sZW5ndGg9PT0wKXJldHVybiB0aGlzLnZhbGlkYXRpb25TdGF0ZT0iaW52YWxpZCIsdGhpcy52YWxpZGF0aW9uTWVzc2FnZT0iUGxlYXNlIHNlbGVjdCBhdCBsZWFzdCBvbmUgZmlsZSIsITE7Zm9yKGxldCBSIG9mIHRoaXMudmFsdWUpaWYoIXRoaXMudmFsaWRhdGVGaWxlKFIpKXJldHVybiExO3JldHVybiB0aGlzLnZhbGlkYXRpb25TdGF0ZT10aGlzLnZhbHVlLmxlbmd0aD4wPyJ2YWxpZCI6bnVsbCwhMH1zdGF0aWN7bzIoaSxhKX19O3JldHVybiBWPWl9KSgpfSk7dmFyIEhxPWIoKCk9PntCcSgpfSk7ZnVuY3Rpb24ganEodCxlKXtpZihlPT09dm9pZCAwJiYoZT17YWxsb3dRUklCQU46ITB9KSx0PT1udWxsKXJldHVybiExO3ZhciBhPW5ldyBSZWdFeHAoIl5bMC05XXsyfSQiLCIiKSxpPXQuc2xpY2UoMCwyKSxyPWJpW2ldO3JldHVybiByPT09dm9pZCAwfHxyLmJiYW5fcmVnZXhwPT09dm9pZCAwfHxyLmJiYW5fcmVnZXhwPT09bnVsbHx8ci5jaGFycz09PXZvaWQgMD8hMTpyLmNoYXJzPT09dC5sZW5ndGgmJmEudGVzdCh0LnNsaWNlKDIsNCkpJiZWanQodC5zbGljZSg0KSxpKSYmZ3V0KHQpJiYoZS5hbGxvd1FSSUJBTnx8IW11dCh0KSl9ZnVuY3Rpb24gZWUyKHQsZSl7ZT09PXZvaWQgMCYmKGU9e2FsbG93UVJJQkFOOiEwfSk7dmFyIGE9e2Vycm9yQ29kZXM6W10sdmFsaWQ6ITB9O2lmKHQhPW51bGwmJnQhPT0iIil7dmFyIGk9YmlbdC5zbGljZSgwLDIpXTtpZighaXx8IShpLmJiYW5fcmVnZXhwfHxpLmNoYXJzKSlyZXR1cm4gYS52YWxpZD0hMSxhLmVycm9yQ29kZXMucHVzaChZaS5Ob0lCQU5Db3VudHJ5KSxhO2kmJmkuY2hhcnMmJmkuY2hhcnMhPT10Lmxlbmd0aCYmKGEudmFsaWQ9ITEsYS5lcnJvckNvZGVzLnB1c2goWWkuV3JvbmdCQkFOTGVuZ3RoKSksaSYmaS5iYmFuX3JlZ2V4cCYmIXFxKHQuc2xpY2UoNCksaS5iYmFuX3JlZ2V4cCkmJihhLnZhbGlkPSExLGEuZXJyb3JDb2Rlcy5wdXNoKFlpLldyb25nQkJBTkZvcm1hdCkpLGkmJmkuYmJhbl92YWxpZGF0aW9uX2Z1bmMmJiFpLmJiYW5fdmFsaWRhdGlvbl9mdW5jKHQuc2xpY2UoNCkpJiYoYS52YWxpZD0hMSxhLmVycm9yQ29kZXMucHVzaChZaS5Xcm9uZ0FjY291bnRCYW5rQnJhbmNoQ2hlY2tzdW0pKTt2YXIgcj1uZXcgUmVnRXhwKCJeWzAtOV17Mn0kIiwiIik7ci50ZXN0KHQuc2xpY2UoMiw0KSl8fChhLnZhbGlkPSExLGEuZXJyb3JDb2Rlcy5wdXNoKFlpLkNoZWNrc3VtTm90TnVtYmVyKSksKGEuZXJyb3JDb2Rlcy5pbmRleE9mKFlpLldyb25nQkJBTkZvcm1hdCkhPT0tMXx8IWd1dCh0KSkmJihhLnZhbGlkPSExLGEuZXJyb3JDb2Rlcy5wdXNoKFlpLldyb25nSUJBTkNoZWNrc3VtKSksIWUuYWxsb3dRUklCQU4mJm11dCh0KSYmKGEudmFsaWQ9ITEsYS5lcnJvckNvZGVzLnB1c2goWWkuUVJJQkFOTm90QWxsb3dlZCkpfWVsc2UgYS52YWxpZD0hMSxhLmVycm9yQ29kZXMucHVzaChZaS5Ob0lCQU5Qcm92aWRlZCk7cmV0dXJuIGF9ZnVuY3Rpb24gVmp0KHQsZSl7aWYodD09bnVsbHx8ZT09PXZvaWQgMHx8ZT09PW51bGwpcmV0dXJuITE7dmFyIGE9YmlbZV07cmV0dXJuIGE9PW51bGx8fGEuYmJhbl9yZWdleHA9PT12b2lkIDB8fGEuYmJhbl9yZWdleHA9PT1udWxsfHxhLmNoYXJzPT09dm9pZCAwfHxhLmNoYXJzPT09bnVsbD8hMTphLmNoYXJzLTQ9PT10Lmxlbmd0aCYmcXEodCxhLmJiYW5fcmVnZXhwKT9hLmJiYW5fdmFsaWRhdGlvbl9mdW5jP2EuYmJhbl92YWxpZGF0aW9uX2Z1bmModC5yZXBsYWNlKC9bXHMuXSsvZywiIikpOiEwOiExfWZ1bmN0aW9uIHRlMih0KXtpZih0IT1udWxsKXt2YXIgZT1iaVt0XTtpZihlIT09dm9pZCAwKXJldHVybiBlLlNFUEE/ZS5TRVBBOiExfXJldHVybiExfWZ1bmN0aW9uIG11dCh0KXtpZih0PT1udWxsKXJldHVybiExO3ZhciBlPXQuc2xpY2UoMCwyKSxhPVsiTEkiLCJDSCJdO2lmKCFhLmluY2x1ZGVzKGUpKXJldHVybiExO3ZhciBpPW5ldyBSZWdFeHAoIl4zWzAtMV17MX1bMC05XXszfSQiLCIiKTtyZXR1cm4gaS50ZXN0KHQuc2xpY2UoNCw5KSl9ZnVuY3Rpb24gYWUyKHQpe3ZhciBlPVZxKHQuYmJhbil8fCIiO2lmKHQuY291bnRyeUNvZGU9PT1udWxsfHx0LmNvdW50cnlDb2RlPT09dm9pZCAwKXJldHVybiBudWxsO3ZhciBhPWJpW3QuY291bnRyeUNvZGVdO2lmKGUhPT0iIiYmYSE9PXZvaWQgMCYmYS5jaGFycyYmYS5jaGFycyE9PW51bGwmJmEuY2hhcnM9PT1lLmxlbmd0aCs0JiZhLmJiYW5fcmVnZXhwJiZhLmJiYW5fcmVnZXhwIT09bnVsbCYmcXEoZSxhLmJiYW5fcmVnZXhwKSl7dmFyIGk9amp0KHQuY291bnRyeUNvZGUrIjAwIitlKTtyZXR1cm4gdC5jb3VudHJ5Q29kZSsoIjAiKyg5OC1pKSkuc2xpY2UoLTIpK2V9cmV0dXJuIG51bGx9ZnVuY3Rpb24gaWUyKHQpe3ZhciBlPXt9LGE9VnEodCk7aWYoZS5pYmFuPWF8fHQsYSYmanEoYSkpe2UuYmJhbj1hLnNsaWNlKDQpLGUuY291bnRyeUNvZGU9YS5zbGljZSgwLDIpLGUudmFsaWQ9ITA7dmFyIGk9YmlbZS5jb3VudHJ5Q29kZV07aWYoaS5hY2NvdW50X2luZGVudGlmaWVyKXt2YXIgcj1pLmFjY291bnRfaW5kZW50aWZpZXIuc3BsaXQoIi0iKSxzPXBhcnNlSW50KHJbMF0pLG49cGFyc2VJbnQoclsxXSk7ZS5hY2NvdW50TnVtYmVyPWUuaWJhbi5zbGljZShzLG4rMSl9aWYoaS5iYW5rX2lkZW50aWZpZXIpe3ZhciByPWkuYmFua19pZGVudGlmaWVyLnNwbGl0KCItIikscz1wYXJzZUludChyWzBdKSxuPXBhcnNlSW50KHJbMV0pO2UuYmFua0lkZW50aWZpZXI9ZS5iYmFuLnNsaWNlKHMsbisxKX1pZihpLmJyYW5jaF9pbmRlbnRpZmllcil7dmFyIHI9aS5icmFuY2hfaW5kZW50aWZpZXIuc3BsaXQoIi0iKSxzPXBhcnNlSW50KHJbMF0pLG49cGFyc2VJbnQoclsxXSk7ZS5icmFuY2hJZGVudGlmaWVyPWUuYmJhbi5zbGljZShzLG4rMSl9fWVsc2UgZS52YWxpZD0hMTtyZXR1cm4gZX1mdW5jdGlvbiBxcSh0LGUpe3ZhciBhPW5ldyBSZWdFeHAoZSwiIik7cmV0dXJuIGEudGVzdCh0KX1mdW5jdGlvbiBWcSh0KXtyZXR1cm4gdHlwZW9mIHQhPSJzdHJpbmciP251bGw6dC5yZXBsYWNlKC9bLVwgXS9nLCIiKS50b1VwcGVyQ2FzZSgpfWZ1bmN0aW9uIFVxKHQsZSl7aWYodHlwZW9mIHQhPSJzdHJpbmciKXJldHVybiBudWxsO2U9PW51bGwmJihlPSIgIik7dmFyIGE9VnEodCk7cmV0dXJuIGE9PT1udWxsP251bGw6YS5yZXBsYWNlKC8oLns0fSkoPyEkKS9nLCIkMSIrZSl9ZnVuY3Rpb24gZ3V0KHQpe3ZhciBlPXQuc2xpY2UoMCwyKSxhPXBhcnNlSW50KHQuc2xpY2UoMiw0KSwxMCksaT10LnNsaWNlKDQpLHI9YnV0KCIiLmNvbmNhdChpKS5jb25jYXQoZSwiMDAiKSkscz1CeChyKTtyZXR1cm4gOTgtcz09PWF9ZnVuY3Rpb24gYnV0KHQpe3JldHVybiB0LnNwbGl0KCIiKS5tYXAoZnVuY3Rpb24oZSl7dmFyIGE9ZS5jaGFyQ29kZUF0KDApO3JldHVybiBhPj02NT8oYS01NSkudG9TdHJpbmcoKTplfSkuam9pbigiIil9ZnVuY3Rpb24gamp0KHQpe3JldHVybiBCeChidXQodC5zbGljZSg0KSt0LnNsaWNlKDAsNCkpKX1mdW5jdGlvbiByZTIoKXt2YXIgdD17fTtmb3IodmFyIGUgaW4gYmkpe3ZhciBhPWJpW2VdO3RbZV09e2NoYXJzOmEuY2hhcnN8fG51bGwsYmJhbl9yZWdleHA6YS5iYmFuX3JlZ2V4cHx8bnVsbCxJQkFOUmVnaXN0cnk6YS5JQkFOUmVnaXN0cnl8fCExLFNFUEE6YS5TRVBBfHwhMX19cmV0dXJuIHR9ZnVuY3Rpb24gVWp0KHQpe2lmKCF0KXJldHVybiExO3ZhciBlPW5ldyBSZWdFeHAoIl5bYS16QS1aXXs2fVthLXpBLVowLTldezJ9KFthLXpBLVowLTldezN9KT8kIiwiIiksYT1iaVt0LnRvVXBwZXJDYXNlKCkuc2xpY2UoNCw2KV07cmV0dXJuIGUudGVzdCh0KSYmYSE9PXZvaWQgMH1mdW5jdGlvbiBzZTIodCl7dmFyIGU9e2Vycm9yQ29kZXM6W10sdmFsaWQ6ITB9O2lmKHQhPW51bGwmJnQhPT0iIil7dmFyIGE9YmlbdC50b1VwcGVyQ2FzZSgpLnNsaWNlKDQsNildO2lmKGE9PT12b2lkIDApZS52YWxpZD0hMSxlLmVycm9yQ29kZXMucHVzaCh3OC5Ob0JJQ0NvdW50cnkpO2Vsc2V7dmFyIGk9bmV3IFJlZ0V4cCgiXlthLXpBLVpdezZ9W2EtekEtWjAtOV17Mn0oW2EtekEtWjAtOV17M30pPyQiLCIiKTtpLnRlc3QodCl8fChlLnZhbGlkPSExLGUuZXJyb3JDb2Rlcy5wdXNoKHc4Lldyb25nQklDRm9ybWF0KSl9fWVsc2UgZS52YWxpZD0hMSxlLmVycm9yQ29kZXMucHVzaCh3OC5Ob0JJQ1Byb3ZpZGVkKTtyZXR1cm4gZX1mdW5jdGlvbiBuZTIodCl7dmFyIGU9e30sYT10LnRvVXBwZXJDYXNlKCk7cmV0dXJuIFVqdChhKT8oZS5iYW5rQ29kZT1hLnNsaWNlKDAsNCksZS5jb3VudHJ5Q29kZT1hLnNsaWNlKDQsNiksZS5sb2NhdGlvbkNvZGU9YS5zbGljZSg2LDgpLGUudGVzdEJJQz1lLmxvY2F0aW9uQ29kZVsxXT09PSIwIixlLmJyYW5jaENvZGU9YS5sZW5ndGg+OD9hLnNsaWNlKDgpOm51bGwsZS52YWxpZD0hMCk6ZS52YWxpZD0hMSxlfXZhciBZaSx3OCxXanQsR2p0LEJ4LERsLFlqdCxaanQsdnV0LFhqdCx5dXQsS2p0LHh1dCxRanQsb2UyLGJpLHd1dD1iKCgpPT57InVzZSBzdHJpY3QiOyhmdW5jdGlvbih0KXt0W3QuTm9JQkFOUHJvdmlkZWQ9MF09Ik5vSUJBTlByb3ZpZGVkIix0W3QuTm9JQkFOQ291bnRyeT0xXT0iTm9JQkFOQ291bnRyeSIsdFt0Lldyb25nQkJBTkxlbmd0aD0yXT0iV3JvbmdCQkFOTGVuZ3RoIix0W3QuV3JvbmdCQkFORm9ybWF0PTNdPSJXcm9uZ0JCQU5Gb3JtYXQiLHRbdC5DaGVja3N1bU5vdE51bWJlcj00XT0iQ2hlY2tzdW1Ob3ROdW1iZXIiLHRbdC5Xcm9uZ0lCQU5DaGVja3N1bT01XT0iV3JvbmdJQkFOQ2hlY2tzdW0iLHRbdC5Xcm9uZ0FjY291bnRCYW5rQnJhbmNoQ2hlY2tzdW09Nl09Ildyb25nQWNjb3VudEJhbmtCcmFuY2hDaGVja3N1bSIsdFt0LlFSSUJBTk5vdEFsbG93ZWQ9N109IlFSSUJBTk5vdEFsbG93ZWQifSkoWWl8fChZaT17fSkpOyhmdW5jdGlvbih0KXt0W3QuTm9CSUNQcm92aWRlZD0wXT0iTm9CSUNQcm92aWRlZCIsdFt0Lk5vQklDQ291bnRyeT0xXT0iTm9CSUNDb3VudHJ5Iix0W3QuV3JvbmdCSUNGb3JtYXQ9Ml09Ildyb25nQklDRm9ybWF0In0pKHc4fHwodzg9e30pKTtXanQ9ZnVuY3Rpb24odCl7Zm9yKHZhciBlPVs1LDQsMywyLDcsNiw1LDQsMywyXSxhPXQucmVwbGFjZSgvW1xzLl0rL2csIiIpLGk9cGFyc2VJbnQoYS5jaGFyQXQoMTApLDEwKSxyPWEuc3Vic3RyaW5nKDAsMTApLHM9MCxuPTA7bjwxMDtuKyspcys9cGFyc2VJbnQoci5jaGFyQXQobiksMTApKmVbbl07dmFyIG89cyUxMTtyZXR1cm4gaT09PShvPT09MD8wOjExLW8pfSxHanQ9ZnVuY3Rpb24odCl7dmFyIGU9dC5yZXBsYWNlKC9bXHMuXSsvZywiIiksYT1wYXJzZUludChlLnN1YnN0cmluZygwLGUubGVuZ3RoLTIpLDEwKSxpPXBhcnNlSW50KGUuc3Vic3RyaW5nKGUubGVuZ3RoLTIsZS5sZW5ndGgpLDEwKSxyPWElOTc9PT0wPzk3OmElOTc7cmV0dXJuIHI9PT1pfSxCeD1mdW5jdGlvbih0KXtmb3IoO3QubGVuZ3RoPjI7KXt2YXIgZT10LnNsaWNlKDAsNiksYT1wYXJzZUludChlLDEwKTtpZihpc05hTihhKSlyZXR1cm4gTmFOO3Q9YSU5Nyt0LnNsaWNlKGUubGVuZ3RoKX1yZXR1cm4gcGFyc2VJbnQodCwxMCklOTd9LERsPWZ1bmN0aW9uKHQpe3ZhciBlPXQucmVwbGFjZSgvW1xzLl0rL2csIiIpLGE9QngoZSk7cmV0dXJuIGE9PT0xfSxZanQ9ZnVuY3Rpb24odCl7Zm9yKHZhciBlPVszLDksNywxLDMsOSw3XSxhPXBhcnNlSW50KHQuY2hhckF0KDcpLDEwKSxpPXQuc3Vic3RyaW5nKDAsNykscj0wLHM9MDtzPDc7cysrKXIrPXBhcnNlSW50KGkuY2hhckF0KHMpLDEwKSplW3NdO3ZhciBuPXIlMTA7cmV0dXJuIGE9PT0obj09PTA/MDoxMC1uKX0sWmp0PWZ1bmN0aW9uKHQpe2Zvcih2YXIgZT1bNCw4LDUsMTAsOSw3LDMsNl0sYT1bMSwyLDQsOCw1LDEwLDksNywzLDZdLGk9cGFyc2VJbnQodC5jaGFyQXQoOCksMTApLHI9cGFyc2VJbnQodC5jaGFyQXQoOSksMTApLHM9dC5zdWJzdHJpbmcoMCw4KSxuPXQuc3Vic3RyaW5nKDEwLDIwKSxvPTAsZD0wO2Q8ODtkKyspbys9cGFyc2VJbnQocy5jaGFyQXQoZCksMTApKmVbZF07dmFyIGM9byUxMTtpZihpIT09KGM9PT0wPzA6Yz09PTE/MToxMS1jKSlyZXR1cm4hMTtvPTA7Zm9yKHZhciBkPTA7ZDwxMDtkKyspbys9cGFyc2VJbnQobi5jaGFyQXQoZCksMTApKmFbZF07cmV0dXJuIGM9byUxMSxyPT09KGM9PT0wPzA6Yz09PTE/MToxMS1jKX0sdnV0PWZ1bmN0aW9uKHQsZSl7Zm9yKHZhciBhPTEwLGk9MDtpPHQubGVuZ3RoO2krKylhKz1wYXJzZUludCh0LmNoYXJBdChpKSwxMCksYSUxMCE9PTAmJihhPWElMTApLGE9YSoyLGE9YSUxMTtyZXR1cm4gZT09PSgxMS1hPT09MTA/MDoxMS1hKX0sWGp0PWZ1bmN0aW9uKHQpe3ZhciBlPXBhcnNlSW50KHQuY2hhckF0KDYpLDEwKSxhPXBhcnNlSW50KHQuY2hhckF0KDE2KSwxMCksaT10LnN1YnN0cmluZygwLDYpLHI9dC5zdWJzdHJpbmcoNywxNik7cmV0dXJuIHZ1dChpLGUpJiZ2dXQocixhKX0seXV0PWZ1bmN0aW9uKHQpe2Zvcih2YXIgZT1bMTAsNSw4LDQsMiwxXSxhPVs2LDMsNyw5LDEwLDUsOCw0LDIsMV0saT1wYXJzZUludCh0LmNoYXJBdCg5KSwxMCkscj1wYXJzZUludCh0LmNoYXJBdCgxOSksMTApLHM9dC5zdWJzdHJpbmcoNCw5KSxuPXQuc3Vic3RyaW5nKDEwLDE5KSxvPTAsZD0wO2Q8cy5sZW5ndGg7ZCsrKW8rPXBhcnNlSW50KHMuY2hhckF0KGQpLDEwKSplW2RdO3ZhciBjPW8lMTE7aWYoaSE9PShjPT09MD8wOmM9PT0xPzE6MTEtYykpcmV0dXJuITE7bz0wO2Zvcih2YXIgZD0wO2Q8bi5sZW5ndGg7ZCsrKW8rPXBhcnNlSW50KG4uY2hhckF0KGQpLDEwKSphW2RdO3JldHVybiBjPW8lMTEscj09PShjPT09MD8wOmM9PT0xPzE6MTEtYyl9LEtqdD1mdW5jdGlvbih0KXtmb3IodmFyIGU9WzcsMSwzLDcsMSwzLDcsMSwzLDcsMSwzLDddLGE9cGFyc2VJbnQodC5jaGFyQXQoMTUpLDEwKSxpPXQuc3Vic3RyaW5nKDIsMTUpLHI9MCxzPTA7czxpLmxlbmd0aDtzKyspcis9cGFyc2VJbnQoaS5jaGFyQXQocyksMTApKmVbc107dmFyIG49ciUxMDtyZXR1cm4gYT09PShuPT09MD8wOjEwLW4pfSx4dXQ9ZnVuY3Rpb24odCl7Zm9yKHZhciBlPXQucmVwbGFjZSgvW1xzLl0rL2csIiIpLGE9QXJyYXkuZnJvbShlKSxpPTA7aTxlLmxlbmd0aDtpKyspe3ZhciByPWFbaV0uY2hhckNvZGVBdCgwKTtpZihyPj02NSlzd2l0Y2gocil7Y2FzZSA2NTpjYXNlIDc0OmFbaV09IjEiO2JyZWFrO2Nhc2UgNjY6Y2FzZSA3NTpjYXNlIDgzOmFbaV09IjIiO2JyZWFrO2Nhc2UgNjc6Y2FzZSA3NjpjYXNlIDg0OmFbaV09IjMiO2JyZWFrO2Nhc2UgNjg6Y2FzZSA3NzpjYXNlIDg1OmFbaV09IjQiO2JyZWFrO2Nhc2UgNjk6Y2FzZSA3ODpjYXNlIDg2OmFbaV09IjUiO2JyZWFrO2Nhc2UgNzA6Y2FzZSA3OTpjYXNlIDg3OmFbaV09IjYiO2JyZWFrO2Nhc2UgNzE6Y2FzZSA4MDpjYXNlIDg4OmFbaV09IjciO2JyZWFrO2Nhc2UgNzI6Y2FzZSA4MTpjYXNlIDg5OmFbaV09IjgiO2JyZWFrO2Nhc2UgNzM6Y2FzZSA4MjpjYXNlIDkwOmFbaV09IjkiO2JyZWFrfX12YXIgcz1CeChhLmpvaW4oIiIpKTtyZXR1cm4gcz09PTB9LFFqdD1mdW5jdGlvbih0KXtmb3IodmFyIGU9WzksNywzLDEsOSw3LDMsMSw5LDcsMywxLDksNywzXSxhPXBhcnNlSW50KHQuY2hhckF0KDcpLDEwKSxpPXQuc3Vic3RyaW5nKDAsNykscj0wLHM9MDtzPGkubGVuZ3RoO3MrKylyKz1wYXJzZUludChpLmNoYXJBdChzKSwxMCkqZVtzXTt2YXIgbj1yJTEwO2lmKGEhPT0obj09PTA/MDoxMC1uKSlyZXR1cm4hMTtpZihyPTAsdC5lbmRzV2l0aCgiMDAwMDAwMDAiKSl7Zm9yKHZhciBvPXQuc3Vic3RyaW5nKDgsMTUpLGQ9cGFyc2VJbnQodC5jaGFyQXQoMTUpLDEwKSxzPTA7czxvLmxlbmd0aDtzKyspcis9cGFyc2VJbnQoby5jaGFyQXQocyksMTApKmVbc107dmFyIGM9ciUxMDtyZXR1cm4gZD09PShjPT09MD8wOjEwLWMpfWVsc2V7Zm9yKHZhciBvPXQuc3Vic3RyaW5nKDgsMjMpLGQ9cGFyc2VJbnQodC5jaGFyQXQoMjMpLDEwKSxzPTA7czxvLmxlbmd0aDtzKyspcis9cGFyc2VJbnQoby5jaGFyQXQocyksMTApKmVbc107dmFyIGg9ciUxMDtyZXR1cm4gZD09PShoPT09MD8wOjEwLWgpfX0sb2UyPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIHR5cGVvZiBiaVt0XT4idSI/ITE6KGJpW3RdLmJiYW5fdmFsaWRhdGlvbl9mdW5jPWUsITApfSxiaT17QUQ6e2NoYXJzOjI0LGJiYW5fcmVnZXhwOiJeWzAtOV17OH1bQS1aMC05XXsxMn0kIixJQkFOUmVnaXN0cnk6ITAsU0VQQTohMCxicmFuY2hfaW5kZW50aWZpZXI6IjQtNyIsYmFua19pZGVudGlmaWVyOiIwLTMiLGFjY291bnRfaW5kZW50aWZpZXI6IjgtMjQifSxBRTp7Y2hhcnM6MjMsYmJhbl9yZWdleHA6Il5bMC05XXszfVswLTldezE2fSQiLElCQU5SZWdpc3RyeTohMCxiYW5rX2lkZW50aWZpZXI6IjAtMiIsYWNjb3VudF9pbmRlbnRpZmllcjoiNy0yMyJ9LEFGOnt9LEFHOnt9LEFJOnt9LEFMOntjaGFyczoyOCxiYmFuX3JlZ2V4cDoiXlswLTldezh9W0EtWjAtOV17MTZ9JCIsSUJBTlJlZ2lzdHJ5OiEwLGJyYW5jaF9pbmRlbnRpZmllcjoiMy03IixiYW5rX2lkZW50aWZpZXI6IjAtMiIsYWNjb3VudF9pbmRlbnRpZmllcjoiMTItMjgifSxBTTp7fSxBTzp7Y2hhcnM6MjUsYmJhbl9yZWdleHA6Il5bMC05XXsyMX0kIn0sQVE6e30sQVI6e30sQVM6e30sQVQ6e2NoYXJzOjIwLGJiYW5fcmVnZXhwOiJeWzAtOV17MTZ9JCIsSUJBTlJlZ2lzdHJ5OiEwLFNFUEE6ITAsYmFua19pZGVudGlmaWVyOiIwLTQifSxBVTp7fSxBVzp7fSxBWDp7Y2hhcnM6MTgsYmJhbl9yZWdleHA6Il5bMC05XXsxNH0kIixJQkFOUmVnaXN0cnk6ITB9LEFaOntjaGFyczoyOCxiYmFuX3JlZ2V4cDoiXltBLVpdezR9W0EtWjAtOV17MjB9JCIsSUJBTlJlZ2lzdHJ5OiEwLGJhbmtfaWRlbnRpZmllcjoiMC0zIixhY2NvdW50X2luZGVudGlmaWVyOiI0LTI4In0sQkE6e2NoYXJzOjIwLGJiYW5fcmVnZXhwOiJeWzAtOV17MTZ9JCIsYmJhbl92YWxpZGF0aW9uX2Z1bmM6RGwsSUJBTlJlZ2lzdHJ5OiEwLGJyYW5jaF9pbmRlbnRpZmllcjoiMy01IixiYW5rX2lkZW50aWZpZXI6IjAtMiJ9LEJCOnt9LEJEOnt9LEJFOntjaGFyczoxNixiYmFuX3JlZ2V4cDoiXlswLTldezEyfSQiLGJiYW5fdmFsaWRhdGlvbl9mdW5jOkdqdCxJQkFOUmVnaXN0cnk6ITAsU0VQQTohMCxiYW5rX2lkZW50aWZpZXI6IjAtMiIsYWNjb3VudF9pbmRlbnRpZmllcjoiMC0xNiJ9LEJGOntjaGFyczoyOCxiYmFuX3JlZ2V4cDoiXltBLVowLTldezJ9WzAtOV17MjJ9JCJ9LEJHOntjaGFyczoyMixiYmFuX3JlZ2V4cDoiXltBLVpdezR9WzAtOV17Nn1bQS1aMC05XXs4fSQiLElCQU5SZWdpc3RyeTohMCxTRVBBOiEwLGJyYW5jaF9pbmRlbnRpZmllcjoiNC03IixiYW5rX2lkZW50aWZpZXI6IjAtMyJ9LEJIOntjaGFyczoyMixiYmFuX3JlZ2V4cDoiXltBLVpdezR9W0EtWjAtOV17MTR9JCIsSUJBTlJlZ2lzdHJ5OiEwLGJhbmtfaWRlbnRpZmllcjoiMC0zIixhY2NvdW50X2luZGVudGlmaWVyOiI4LTIyIn0sQkk6e2NoYXJzOjI3LGJiYW5fcmVnZXhwOiJeWzAtOV17MjN9JCIsYnJhbmNoX2luZGVudGlmaWVyOiI1LTkiLGJhbmtfaWRlbnRpZmllcjoiMC00IixhY2NvdW50X2luZGVudGlmaWVyOiIxNC0yNyJ9LEJKOntjaGFyczoyOCxiYmFuX3JlZ2V4cDoiXltBLVowLTldezJ9WzAtOV17MjJ9JCJ9LEJMOntjaGFyczoyNyxiYmFuX3JlZ2V4cDoiXlswLTldezEwfVtBLVowLTldezExfVswLTldezJ9JCJ9LEJNOnt9LEJOOnt9LEJPOnt9LEJROnt9LEJSOntjaGFyczoyOSxiYmFuX3JlZ2V4cDoiXlswLTldezIzfVtBLVpdezF9W0EtWjAtOV17MX0kIixJQkFOUmVnaXN0cnk6ITAsYnJhbmNoX2luZGVudGlmaWVyOiI4LTEyIixiYW5rX2lkZW50aWZpZXI6IjAtNyIsYWNjb3VudF9pbmRlbnRpZmllcjoiMTctMjkifSxCUzp7fSxCVDp7fSxCVjp7fSxCVzp7fSxCWTp7Y2hhcnM6MjgsYmJhbl9yZWdleHA6Il5bQS1aXXs0fVswLTldezR9W0EtWjAtOV17MTZ9JCIsSUJBTlJlZ2lzdHJ5OiEwLGJhbmtfaWRlbnRpZmllcjoiMC0zIn0sQlo6e30sQ0E6e30sQ0M6e30sQ0Q6e30sQ0Y6e2NoYXJzOjI3LGJiYW5fcmVnZXhwOiJeWzAtOV17MjN9JCJ9LENHOntjaGFyczoyNyxiYmFuX3JlZ2V4cDoiXlswLTldezIzfSQifSxDSDp7Y2hhcnM6MjEsYmJhbl9yZWdleHA6Il5bMC05XXs1fVtBLVowLTldezEyfSQiLElCQU5SZWdpc3RyeTohMCxTRVBBOiEwLGJhbmtfaWRlbnRpZmllcjoiMC00In0sQ0k6e2NoYXJzOjI4LGJiYW5fcmVnZXhwOiJeW0EtWl17MX1bMC05XXsyM30kIn0sQ0s6e30sQ0w6e30sQ006e2NoYXJzOjI3LGJiYW5fcmVnZXhwOiJeWzAtOV17MjN9JCJ9LENOOnt9LENPOnt9LENSOntjaGFyczoyMixiYmFuX3JlZ2V4cDoiXlswLTldezE4fSQiLElCQU5SZWdpc3RyeTohMCxiYW5rX2lkZW50aWZpZXI6IjAtMyIsYWNjb3VudF9pbmRlbnRpZmllcjoiOC0yMiJ9LENVOnt9LENWOntjaGFyczoyNSxiYmFuX3JlZ2V4cDoiXlswLTldezIxfSQifSxDVzp7fSxDWDp7fSxDWTp7Y2hhcnM6MjgsYmJhbl9yZWdleHA6Il5bMC05XXs4fVtBLVowLTldezE2fSQiLElCQU5SZWdpc3RyeTohMCxTRVBBOiEwLGJyYW5jaF9pbmRlbnRpZmllcjoiMy03IixiYW5rX2lkZW50aWZpZXI6IjAtMiIsYWNjb3VudF9pbmRlbnRpZmllcjoiMTItMjgifSxDWjp7Y2hhcnM6MjQsYmJhbl9yZWdleHA6Il5bMC05XXsyMH0kIixiYmFuX3ZhbGlkYXRpb25fZnVuYzp5dXQsSUJBTlJlZ2lzdHJ5OiEwLFNFUEE6ITAsYmFua19pZGVudGlmaWVyOiIwLTMifSxERTp7Y2hhcnM6MjIsYmJhbl9yZWdleHA6Il5bMC05XXsxOH0kIixJQkFOUmVnaXN0cnk6ITAsU0VQQTohMCxiYW5rX2lkZW50aWZpZXI6IjAtNyIsYWNjb3VudF9pbmRlbnRpZmllcjoiMTMtMjIifSxESjp7Y2hhcnM6MjcsYmJhbl9yZWdleHA6Il5bMC05XXsyM30kIixicmFuY2hfaW5kZW50aWZpZXI6IjUtOSIsYmFua19pZGVudGlmaWVyOiIwLTQiLGFjY291bnRfaW5kZW50aWZpZXI6IjE0LTI3In0sREs6e2NoYXJzOjE4LGJiYW5fcmVnZXhwOiJeWzAtOV17MTR9JCIsSUJBTlJlZ2lzdHJ5OiEwLFNFUEE6ITAsYmFua19pZGVudGlmaWVyOiIwLTMiLGFjY291bnRfaW5kZW50aWZpZXI6IjQtMTgifSxETTp7fSxETzp7Y2hhcnM6MjgsYmJhbl9yZWdleHA6Il5bQS1aXXs0fVswLTldezIwfSQiLElCQU5SZWdpc3RyeTohMCxiYW5rX2lkZW50aWZpZXI6IjAtMyIsYWNjb3VudF9pbmRlbnRpZmllcjoiOC0yOCJ9LERaOntjaGFyczoyNixiYmFuX3JlZ2V4cDoiXlswLTldezIyfSQifSxFQzp7fSxFRTp7Y2hhcnM6MjAsYmJhbl9yZWdleHA6Il5bMC05XXsxNn0kIixiYmFuX3ZhbGlkYXRpb25fZnVuYzpLanQsSUJBTlJlZ2lzdHJ5OiEwLFNFUEE6ITAsYmFua19pZGVudGlmaWVyOiIwLTEiLGFjY291bnRfaW5kZW50aWZpZXI6IjgtMjAifSxFRzp7Y2hhcnM6MjksYmJhbl9yZWdleHA6Il5bMC05XXsyNX0iLElCQU5SZWdpc3RyeTohMCxicmFuY2hfaW5kZW50aWZpZXI6IjQtNyIsYmFua19pZGVudGlmaWVyOiIwLTMiLGFjY291bnRfaW5kZW50aWZpZXI6IjE3LTI5In0sRUg6e30sRVI6e30sRVM6e2NoYXJzOjI0LGJiYW5fdmFsaWRhdGlvbl9mdW5jOlpqdCxiYmFuX3JlZ2V4cDoiXlswLTldezIwfSQiLElCQU5SZWdpc3RyeTohMCxTRVBBOiEwLGJyYW5jaF9pbmRlbnRpZmllcjoiNC03IixiYW5rX2lkZW50aWZpZXI6IjAtMyIsYWNjb3VudF9pbmRlbnRpZmllcjoiMTQtMjQifSxFVDp7fSxGSTp7Y2hhcnM6MTgsYmJhbl9yZWdleHA6Il5bMC05XXsxNH0kIixJQkFOUmVnaXN0cnk6ITAsU0VQQTohMCxiYW5rX2lkZW50aWZpZXI6IjAtMiIsYWNjb3VudF9pbmRlbnRpZmllcjoiMC0wIn0sRko6e30sRks6e2NoYXJzOjE4LGJiYW5fcmVnZXhwOiJeW0EtWl17Mn1bMC05XXsxMn0kIixiYW5rX2lkZW50aWZpZXI6IjAtMSIsYWNjb3VudF9pbmRlbnRpZmllcjoiNi0xOCJ9LEZNOnt9LEZPOntjaGFyczoxOCxiYmFuX3JlZ2V4cDoiXlswLTldezE0fSQiLElCQU5SZWdpc3RyeTohMCxiYW5rX2lkZW50aWZpZXI6IjAtMyIsYWNjb3VudF9pbmRlbnRpZmllcjoiNC0xOCJ9LEZSOntjaGFyczoyNyxiYmFuX3JlZ2V4cDoiXlswLTldezEwfVtBLVowLTldezExfVswLTldezJ9JCIsYmJhbl92YWxpZGF0aW9uX2Z1bmM6eHV0LElCQU5SZWdpc3RyeTohMCxTRVBBOiEwLGJhbmtfaWRlbnRpZmllcjoiMC00IixicmFuY2hfaW5kZW50aWZpZXI6IjUtOSIsYWNjb3VudF9pbmRlbnRpZmllcjoiMTQtMjQifSxHQTp7Y2hhcnM6MjcsYmJhbl9yZWdleHA6Il5bMC05XXsyM30kIn0sR0I6e2NoYXJzOjIyLGJiYW5fcmVnZXhwOiJeW0EtWl17NH1bMC05XXsxNH0kIixJQkFOUmVnaXN0cnk6ITAsU0VQQTohMCxicmFuY2hfaW5kZW50aWZpZXI6IjQtOSIsYmFua19pZGVudGlmaWVyOiIwLTMifSxHRDp7fSxHRTp7Y2hhcnM6MjIsYmJhbl9yZWdleHA6Il5bQS1aMC05XXsyfVswLTldezE2fSQiLElCQU5SZWdpc3RyeTohMCxiYW5rX2lkZW50aWZpZXI6IjAtMSIsYWNjb3VudF9pbmRlbnRpZmllcjoiNi0yMiJ9LEdGOntjaGFyczoyNyxiYmFuX3JlZ2V4cDoiXlswLTldezEwfVtBLVowLTldezExfVswLTldezJ9JCIsSUJBTlJlZ2lzdHJ5OiEwfSxHRzp7fSxHSDp7fSxHSTp7Y2hhcnM6MjMsYmJhbl9yZWdleHA6Il5bQS1aXXs0fVtBLVowLTldezE1fSQiLElCQU5SZWdpc3RyeTohMCxTRVBBOiEwLGJhbmtfaWRlbnRpZmllcjoiMC0zIixhY2NvdW50X2luZGVudGlmaWVyOiI4LTIzIn0sR0w6e2NoYXJzOjE4LGJiYW5fcmVnZXhwOiJeWzAtOV17MTR9JCIsSUJBTlJlZ2lzdHJ5OiEwLGJhbmtfaWRlbnRpZmllcjoiMC0zIixhY2NvdW50X2luZGVudGlmaWVyOiI0LTE4In0sR006e30sR046e30sR1A6e2NoYXJzOjI3LGJiYW5fcmVnZXhwOiJeWzAtOV17MTB9W0EtWjAtOV17MTF9WzAtOV17Mn0kIixJQkFOUmVnaXN0cnk6ITB9LEdROntjaGFyczoyNyxiYmFuX3JlZ2V4cDoiXlswLTldezIzfSQifSxHUjp7Y2hhcnM6MjcsYmJhbl9yZWdleHA6Il5bMC05XXs3fVtBLVowLTldezE2fSQiLElCQU5SZWdpc3RyeTohMCxTRVBBOiEwLGJyYW5jaF9pbmRlbnRpZmllcjoiMy02IixiYW5rX2lkZW50aWZpZXI6IjAtMiIsYWNjb3VudF9pbmRlbnRpZmllcjoiNy0yNyJ9LEdTOnt9LEdUOntjaGFyczoyOCxiYmFuX3JlZ2V4cDoiXltBLVowLTldezI0fSQiLElCQU5SZWdpc3RyeTohMCxiYW5rX2lkZW50aWZpZXI6IjAtMyIsYWNjb3VudF9pbmRlbnRpZmllcjoiOC0yOCJ9LEdVOnt9LEdXOntjaGFyczoyNSxiYmFuX3JlZ2V4cDoiXltBLVpdezJ9WzAtOV17MTl9JCJ9LEdZOnt9LEhLOnt9LEhNOnt9LEhOOntjaGFyczoyOCxiYmFuX3JlZ2V4cDoiXltBLVpdezR9WzAtOV17MjB9JCJ9LEhSOntjaGFyczoyMSxiYmFuX3JlZ2V4cDoiXlswLTldezE3fSQiLGJiYW5fdmFsaWRhdGlvbl9mdW5jOlhqdCxJQkFOUmVnaXN0cnk6ITAsU0VQQTohMCxiYW5rX2lkZW50aWZpZXI6IjAtNiJ9LEhUOnt9LEhVOntjaGFyczoyOCxiYmFuX3JlZ2V4cDoiXlswLTldezI0fSQiLGJiYW5fdmFsaWRhdGlvbl9mdW5jOlFqdCxJQkFOUmVnaXN0cnk6ITAsU0VQQTohMCxicmFuY2hfaW5kZW50aWZpZXI6IjMtNiIsYmFua19pZGVudGlmaWVyOiIwLTIifSxJRDp7fSxJRTp7Y2hhcnM6MjIsYmJhbl9yZWdleHA6Il5bQS1aMC05XXs0fVswLTldezE0fSQiLElCQU5SZWdpc3RyeTohMCxTRVBBOiEwLGJyYW5jaF9pbmRlbnRpZmllcjoiNC05IixiYW5rX2lkZW50aWZpZXI6IjAtMyJ9LElMOntjaGFyczoyMyxiYmFuX3JlZ2V4cDoiXlswLTldezE5fSQiLElCQU5SZWdpc3RyeTohMCxicmFuY2hfaW5kZW50aWZpZXI6IjMtNSIsYmFua19pZGVudGlmaWVyOiIwLTIifSxJTTp7fSxJTjp7fSxJTzp7fSxJUTp7Y2hhcnM6MjMsYmJhbl9yZWdleHA6Il5bQS1aXXs0fVswLTldezE1fSQiLElCQU5SZWdpc3RyeTohMCxicmFuY2hfaW5kZW50aWZpZXI6IjQtNiIsYmFua19pZGVudGlmaWVyOiIwLTMiLGFjY291bnRfaW5kZW50aWZpZXI6IjExLTIzIn0sSVI6e2NoYXJzOjI2LGJiYW5fcmVnZXhwOiJeWzAtOV17MjJ9JCJ9LElTOntjaGFyczoyNixiYmFuX3JlZ2V4cDoiXlswLTldezIyfSQiLElCQU5SZWdpc3RyeTohMCxTRVBBOiEwLGJyYW5jaF9pbmRlbnRpZmllcjoiMi0zIixiYW5rX2lkZW50aWZpZXI6IjAtMSJ9LElUOntjaGFyczoyNyxiYmFuX3JlZ2V4cDoiXltBLVpdezF9WzAtOV17MTB9W0EtWjAtOV17MTJ9JCIsSUJBTlJlZ2lzdHJ5OiEwLFNFUEE6ITAsYnJhbmNoX2luZGVudGlmaWVyOiI2LTEwIixiYW5rX2lkZW50aWZpZXI6IjEtNSIsYWNjb3VudF9pbmRlbnRpZmllcjoiNC0yNyJ9LEpFOnt9LEpNOnt9LEpPOntjaGFyczozMCxiYmFuX3JlZ2V4cDoiXltBLVpdezR9WzAtOV17NH1bQS1aMC05XXsxOH0kIixJQkFOUmVnaXN0cnk6ITAsYnJhbmNoX2luZGVudGlmaWVyOiI0LTciLGJhbmtfaWRlbnRpZmllcjoiNC03In0sSlA6e30sS0U6e30sS0c6e30sS0g6e30sS0k6e30sS006e2NoYXJzOjI3LGJiYW5fcmVnZXhwOiJeWzAtOV17MjN9JCJ9LEtOOnt9LEtQOnt9LEtSOnt9LEtXOntjaGFyczozMCxiYmFuX3JlZ2V4cDoiXltBLVpdezR9W0EtWjAtOV17MjJ9JCIsSUJBTlJlZ2lzdHJ5OiEwLGJhbmtfaWRlbnRpZmllcjoiMC0zIixhY2NvdW50X2luZGVudGlmaWVyOiIyMC0zMCJ9LEtZOnt9LEtaOntjaGFyczoyMCxiYmFuX3JlZ2V4cDoiXlswLTldezN9W0EtWjAtOV17MTN9JCIsSUJBTlJlZ2lzdHJ5OiEwLGJhbmtfaWRlbnRpZmllcjoiMC0yIixhY2NvdW50X2luZGVudGlmaWVyOiIwLTIwIn0sTEE6e30sTEI6e2NoYXJzOjI4LGJiYW5fcmVnZXhwOiJeWzAtOV17NH1bQS1aMC05XXsyMH0kIixJQkFOUmVnaXN0cnk6ITAsYmFua19pZGVudGlmaWVyOiIwLTMiLGFjY291bnRfaW5kZW50aWZpZXI6IjE0LTI4In0sTEM6e2NoYXJzOjMyLGJiYW5fcmVnZXhwOiJeW0EtWl17NH1bQS1aMC05XXsyNH0kIixJQkFOUmVnaXN0cnk6ITAsYmFua19pZGVudGlmaWVyOiIwLTMiLGFjY291bnRfaW5kZW50aWZpZXI6IjgtMzIifSxMSTp7Y2hhcnM6MjEsYmJhbl9yZWdleHA6Il5bMC05XXs1fVtBLVowLTldezEyfSQiLElCQU5SZWdpc3RyeTohMCxTRVBBOiEwLGJhbmtfaWRlbnRpZmllcjoiMC00In0sTEs6e30sTFI6e30sTFM6e30sTFQ6e2NoYXJzOjIwLGJiYW5fcmVnZXhwOiJeWzAtOV17MTZ9JCIsSUJBTlJlZ2lzdHJ5OiEwLFNFUEE6ITAsYmFua19pZGVudGlmaWVyOiIwLTQifSxMVTp7Y2hhcnM6MjAsYmJhbl9yZWdleHA6Il5bMC05XXszfVtBLVowLTldezEzfSQiLElCQU5SZWdpc3RyeTohMCxTRVBBOiEwLGJhbmtfaWRlbnRpZmllcjoiMC0yIn0sTFY6e2NoYXJzOjIxLGJiYW5fcmVnZXhwOiJeW0EtWl17NH1bQS1aMC05XXsxM30kIixJQkFOUmVnaXN0cnk6ITAsU0VQQTohMCxiYW5rX2lkZW50aWZpZXI6IjAtMyIsYWNjb3VudF9pbmRlbnRpZmllcjoiMC0yMSJ9LExZOntjaGFyczoyNSxiYmFuX3JlZ2V4cDoiXlswLTldezIxfSQiLElCQU5SZWdpc3RyeTohMCxicmFuY2hfaW5kZW50aWZpZXI6IjMtNSIsYmFua19pZGVudGlmaWVyOiIwLTIiLGFjY291bnRfaW5kZW50aWZpZXI6IjEwLTI1In0sTUE6e2NoYXJzOjI4LGJiYW5fcmVnZXhwOiJeWzAtOV17MjR9JCJ9LE1DOntjaGFyczoyNyxiYmFuX3JlZ2V4cDoiXlswLTldezEwfVtBLVowLTldezExfVswLTldezJ9JCIsYmJhbl92YWxpZGF0aW9uX2Z1bmM6eHV0LElCQU5SZWdpc3RyeTohMCxTRVBBOiEwLGJyYW5jaF9pbmRlbnRpZmllcjoiNS05IixiYW5rX2lkZW50aWZpZXI6IjAtNCJ9LE1EOntjaGFyczoyNCxiYmFuX3JlZ2V4cDoiXltBLVowLTldezJ9W0EtWjAtOV17MTh9JCIsSUJBTlJlZ2lzdHJ5OiEwLGJhbmtfaWRlbnRpZmllcjoiMC0xIixhY2NvdW50X2luZGVudGlmaWVyOiI2LTI0In0sTUU6e2NoYXJzOjIyLGJiYW5fcmVnZXhwOiJeWzAtOV17MTh9JCIsYmJhbl92YWxpZGF0aW9uX2Z1bmM6RGwsSUJBTlJlZ2lzdHJ5OiEwLGJhbmtfaWRlbnRpZmllcjoiMC0yIixhY2NvdW50X2luZGVudGlmaWVyOiI0LTIyIn0sTUY6e2NoYXJzOjI3LGJiYW5fcmVnZXhwOiJeWzAtOV17MTB9W0EtWjAtOV17MTF9WzAtOV17Mn0kIixJQkFOUmVnaXN0cnk6ITB9LE1HOntjaGFyczoyNyxiYmFuX3JlZ2V4cDoiXlswLTldezIzfSQifSxNSDp7fSxNSzp7Y2hhcnM6MTksYmJhbl9yZWdleHA6Il5bMC05XXszfVtBLVowLTldezEwfVswLTldezJ9JCIsYmJhbl92YWxpZGF0aW9uX2Z1bmM6RGwsSUJBTlJlZ2lzdHJ5OiEwLGJhbmtfaWRlbnRpZmllcjoiMC0yIn0sTUw6e2NoYXJzOjI4LGJiYW5fcmVnZXhwOiJeW0EtWjAtOV17Mn1bMC05XXsyMn0kIn0sTU06e30sTU46e2NoYXJzOjIwLGJiYW5fcmVnZXhwOiJeWzAtOV17MTZ9JCIsSUJBTlJlZ2lzdHJ5OiEwLGJhbmtfaWRlbnRpZmllcjoiMC0zIixhY2NvdW50X2luZGVudGlmaWVyOiI4LTIwIn0sTU86e30sTVA6e30sTVE6e2NoYXJzOjI3LGJiYW5fcmVnZXhwOiJeWzAtOV17MTB9W0EtWjAtOV17MTF9WzAtOV17Mn0kIixJQkFOUmVnaXN0cnk6ITB9LE1SOntjaGFyczoyNyxiYmFuX3JlZ2V4cDoiXlswLTldezIzfSQiLElCQU5SZWdpc3RyeTohMCxicmFuY2hfaW5kZW50aWZpZXI6IjUtOSIsYmFua19pZGVudGlmaWVyOiIwLTQiLGFjY291bnRfaW5kZW50aWZpZXI6IjQtMjcifSxNUzp7fSxNVDp7Y2hhcnM6MzEsYmJhbl9yZWdleHA6Il5bQS1aXXs0fVswLTldezV9W0EtWjAtOV17MTh9JCIsSUJBTlJlZ2lzdHJ5OiEwLFNFUEE6ITAsYnJhbmNoX2luZGVudGlmaWVyOiI0LTgiLGJhbmtfaWRlbnRpZmllcjoiMC0zIixhY2NvdW50X2luZGVudGlmaWVyOiIxNS0zMSJ9LE1VOntjaGFyczozMCxiYmFuX3JlZ2V4cDoiXltBLVpdezR9WzAtOV17MTl9W0EtWl17M30kIixJQkFOUmVnaXN0cnk6ITAsYnJhbmNoX2luZGVudGlmaWVyOiI2LTciLGJhbmtfaWRlbnRpZmllcjoiMC01IixhY2NvdW50X2luZGVudGlmaWVyOiIwLTMwIn0sTVY6e30sTVc6e30sTVg6e30sTVk6e30sTVo6e2NoYXJzOjI1LGJiYW5fcmVnZXhwOiJeWzAtOV17MjF9JCJ9LE5BOnt9LE5DOntjaGFyczoyNyxiYmFuX3JlZ2V4cDoiXlswLTldezEwfVtBLVowLTldezExfVswLTldezJ9JCIsSUJBTlJlZ2lzdHJ5OiEwfSxORTp7Y2hhcnM6MjgsYmJhbl9yZWdleHA6Il5bQS1aXXsyfVswLTldezIyfSQifSxORjp7fSxORzp7fSxOSTp7Y2hhcnM6MjgsYmJhbl9yZWdleHA6Il5bQS1aXXs0fVswLTldezIwfSQiLGJhbmtfaWRlbnRpZmllcjoiMC0zIixJQkFOUmVnaXN0cnk6ITAsYWNjb3VudF9pbmRlbnRpZmllcjoiOC0yOCJ9LE5MOntjaGFyczoxOCxiYmFuX3JlZ2V4cDoiXltBLVpdezR9WzAtOV17MTB9JCIsSUJBTlJlZ2lzdHJ5OiEwLFNFUEE6ITAsYmFua19pZGVudGlmaWVyOiIwLTMiLGFjY291bnRfaW5kZW50aWZpZXI6IjgtMTgifSxOTzp7Y2hhcnM6MTUsYmJhbl9yZWdleHA6Il5bMC05XXsxMX0kIixiYmFuX3ZhbGlkYXRpb25fZnVuYzpXanQsSUJBTlJlZ2lzdHJ5OiEwLFNFUEE6ITAsYmFua19pZGVudGlmaWVyOiIwLTMiLGFjY291bnRfaW5kZW50aWZpZXI6IjQtMTUifSxOUDp7fSxOUjp7fSxOVTp7fSxOWjp7fSxPTTp7Y2hhcnM6MjMsYmJhbl9yZWdleHA6Il5bMC05XXszfVtBLVowLTldezE2fSQiLElCQU5SZWdpc3RyeTohMCxTRVBBOiExLGJhbmtfaWRlbnRpZmllcjoiMC0yIn0sUEE6e30sUEU6e30sUEY6e2NoYXJzOjI3LGJiYW5fcmVnZXhwOiJeWzAtOV17MTB9W0EtWjAtOV17MTF9WzAtOV17Mn0kIixJQkFOUmVnaXN0cnk6ITB9LFBHOnt9LFBIOnt9LFBLOntjaGFyczoyNCxiYmFuX3JlZ2V4cDoiXltBLVowLTldezR9WzAtOV17MTZ9JCIsSUJBTlJlZ2lzdHJ5OiEwLGJhbmtfaWRlbnRpZmllcjoiMC0zIn0sUEw6e2NoYXJzOjI4LGJiYW5fdmFsaWRhdGlvbl9mdW5jOllqdCxiYmFuX3JlZ2V4cDoiXlswLTldezI0fSQiLElCQU5SZWdpc3RyeTohMCxTRVBBOiEwLGJyYW5jaF9pbmRlbnRpZmllcjoiMC03IixhY2NvdW50X2luZGVudGlmaWVyOiIyLTI4In0sUE06e2NoYXJzOjI3LGJiYW5fcmVnZXhwOiJeWzAtOV17MTB9W0EtWjAtOV17MTF9WzAtOV17Mn0kIixJQkFOUmVnaXN0cnk6ITB9LFBOOnt9LFBSOnt9LFBTOntjaGFyczoyOSxiYmFuX3JlZ2V4cDoiXltBLVowLTldezR9WzAtOV17MjF9JCIsSUJBTlJlZ2lzdHJ5OiEwLGJhbmtfaWRlbnRpZmllcjoiMC0zIixhY2NvdW50X2luZGVudGlmaWVyOiIxNy0yOSJ9LFBUOntjaGFyczoyNSxiYmFuX3JlZ2V4cDoiXlswLTldezIxfSQiLGJiYW5fdmFsaWRhdGlvbl9mdW5jOkRsLElCQU5SZWdpc3RyeTohMCxTRVBBOiEwLGJhbmtfaWRlbnRpZmllcjoiMC0zIn0sUFc6e30sUFk6e30sUUE6e2NoYXJzOjI5LGJiYW5fcmVnZXhwOiJeW0EtWl17NH1bQS1aMC05XXsyMX0kIixJQkFOUmVnaXN0cnk6ITAsYmFua19pZGVudGlmaWVyOiIwLTMiLGFjY291bnRfaW5kZW50aWZpZXI6IjgtMjkifSxSRTp7Y2hhcnM6MjcsYmJhbl9yZWdleHA6Il5bMC05XXsxMH1bQS1aMC05XXsxMX1bMC05XXsyfSQiLElCQU5SZWdpc3RyeTohMH0sUk86e2NoYXJzOjI0LGJiYW5fcmVnZXhwOiJeW0EtWl17NH1bQS1aMC05XXsxNn0kIixJQkFOUmVnaXN0cnk6ITAsU0VQQTohMCxiYW5rX2lkZW50aWZpZXI6IjAtMyIsYWNjb3VudF9pbmRlbnRpZmllcjoiMC0yNCJ9LFJTOntjaGFyczoyMixiYmFuX3JlZ2V4cDoiXlswLTldezE4fSQiLGJiYW5fdmFsaWRhdGlvbl9mdW5jOkRsLElCQU5SZWdpc3RyeTohMCxiYW5rX2lkZW50aWZpZXI6IjAtMiJ9LFJVOntjaGFyczozMyxiYmFuX3JlZ2V4cDoiXlswLTldezE0fVtBLVowLTldezE1fSQiLElCQU5SZWdpc3RyeTohMCxicmFuY2hfaW5kZW50aWZpZXI6IjktMTMiLGJhbmtfaWRlbnRpZmllcjoiMC04IixhY2NvdW50X2luZGVudGlmaWVyOiIxMy0zMyJ9LFJXOnt9LFNBOntjaGFyczoyNCxiYmFuX3JlZ2V4cDoiXlswLTldezJ9W0EtWjAtOV17MTh9JCIsSUJBTlJlZ2lzdHJ5OiEwLGJhbmtfaWRlbnRpZmllcjoiMC0xIixhY2NvdW50X2luZGVudGlmaWVyOiIxMi0yNCJ9LFNCOnt9LFNDOntjaGFyczozMSxiYmFuX3JlZ2V4cDoiXltBLVpdezR9WzAtOV17MjB9W0EtWl17M30kIixJQkFOUmVnaXN0cnk6ITAsYnJhbmNoX2luZGVudGlmaWVyOiI2LTciLGJhbmtfaWRlbnRpZmllcjoiMC01IixhY2NvdW50X2luZGVudGlmaWVyOiIxMi0yOCJ9LFNEOntjaGFyczoxOCxiYmFuX3JlZ2V4cDoiXlswLTldezE0fSQiLElCQU5SZWdpc3RyeTohMCxiYW5rX2lkZW50aWZpZXI6IjAtMSIsYWNjb3VudF9pbmRlbnRpZmllcjoiNi0xOCJ9LFNFOntjaGFyczoyNCxiYmFuX3JlZ2V4cDoiXlswLTldezIwfSQiLElCQU5SZWdpc3RyeTohMCxTRVBBOiEwLGJhbmtfaWRlbnRpZmllcjoiMC0yIn0sU0c6e30sU0g6e30sU0k6e2NoYXJzOjE5LGJiYW5fcmVnZXhwOiJeWzAtOV17MTV9JCIsYmJhbl92YWxpZGF0aW9uX2Z1bmM6RGwsSUJBTlJlZ2lzdHJ5OiEwLFNFUEE6ITAsYnJhbmNoX2luZGVudGlmaWVyOiIyLTQiLGJhbmtfaWRlbnRpZmllcjoiMC0xIixhY2NvdW50X2luZGVudGlmaWVyOiI5LTE2In0sU0o6e30sU0s6e2NoYXJzOjI0LGJiYW5fcmVnZXhwOiJeWzAtOV17MjB9JCIsYmJhbl92YWxpZGF0aW9uX2Z1bmM6eXV0LElCQU5SZWdpc3RyeTohMCxTRVBBOiEwfSxTTDp7fSxTTTp7Y2hhcnM6MjcsYmJhbl9yZWdleHA6Il5bQS1aXXsxfVswLTldezEwfVtBLVowLTldezEyfSQiLElCQU5SZWdpc3RyeTohMCxTRVBBOiEwLGJyYW5jaF9pbmRlbnRpZmllcjoiNi0xMCJ9LFNOOntjaGFyczoyOCxiYmFuX3JlZ2V4cDoiXltBLVpdezJ9WzAtOV17MjJ9JCJ9LFNPOntjaGFyczoyMyxiYmFuX3JlZ2V4cDoiXlswLTldezE5fSQiLElCQU5SZWdpc3RyeTohMCxicmFuY2hfaW5kZW50aWZpZXI6IjQtNiIsYWNjb3VudF9pbmRlbnRpZmllcjoiMTEtMjMifSxTUjp7fSxTUzp7fSxTVDp7Y2hhcnM6MjUsYmJhbl9yZWdleHA6Il5bMC05XXsyMX0kIixJQkFOUmVnaXN0cnk6ITAsYnJhbmNoX2luZGVudGlmaWVyOiI0LTcifSxTVjp7Y2hhcnM6MjgsYmJhbl9yZWdleHA6Il5bQS1aXXs0fVswLTldezIwfSQiLElCQU5SZWdpc3RyeTohMCxhY2NvdW50X2luZGVudGlmaWVyOiI4LTI4In0sU1g6e30sU1k6e30sU1o6e30sVEM6e30sVEQ6e2NoYXJzOjI3LGJiYW5fcmVnZXhwOiJeWzAtOV17MjN9JCJ9LFRGOntjaGFyczoyNyxiYmFuX3JlZ2V4cDoiXlswLTldezEwfVtBLVowLTldezExfVswLTldezJ9JCIsSUJBTlJlZ2lzdHJ5OiEwfSxURzp7Y2hhcnM6MjgsYmJhbl9yZWdleHA6Il5bQS1aXXsyfVswLTldezIyfSQifSxUSDp7fSxUSjp7fSxUSzp7fSxUTDp7Y2hhcnM6MjMsYmJhbl9yZWdleHA6Il5bMC05XXsxOX0kIixJQkFOUmVnaXN0cnk6ITAsYWNjb3VudF9pbmRlbnRpZmllcjoiNC0yMyJ9LFRNOnt9LFROOntjaGFyczoyNCxiYmFuX3JlZ2V4cDoiXlswLTldezIwfSQiLElCQU5SZWdpc3RyeTohMCxicmFuY2hfaW5kZW50aWZpZXI6IjItNCIsYWNjb3VudF9pbmRlbnRpZmllcjoiNC0yNCJ9LFRPOnt9LFRSOntjaGFyczoyNixiYmFuX3JlZ2V4cDoiXlswLTldezV9W0EtWjAtOV17MTd9JCIsSUJBTlJlZ2lzdHJ5OiEwfSxUVDp7fSxUVjp7fSxUVzp7fSxUWjp7fSxVQTp7Y2hhcnM6MjksYmJhbl9yZWdleHA6Il5bMC05XXs2fVtBLVowLTldezE5fSQiLElCQU5SZWdpc3RyeTohMCxhY2NvdW50X2luZGVudGlmaWVyOiIxNS0yOSJ9LFVHOnt9LFVNOnt9LFVTOnt9LFVZOnt9LFVaOnt9LFZBOntjaGFyczoyMixiYmFuX3JlZ2V4cDoiXlswLTldezE4fSIsSUJBTlJlZ2lzdHJ5OiEwLFNFUEE6ITAsYWNjb3VudF9pbmRlbnRpZmllcjoiNy0yMiJ9LFZDOnt9LFZFOnt9LFZHOntjaGFyczoyNCxiYmFuX3JlZ2V4cDoiXltBLVowLTldezR9WzAtOV17MTZ9JCIsSUJBTlJlZ2lzdHJ5OiEwLGFjY291bnRfaW5kZW50aWZpZXI6IjgtMjQifSxWSTp7fSxWTjp7fSxWVTp7fSxXRjp7Y2hhcnM6MjcsYmJhbl9yZWdleHA6Il5bMC05XXsxMH1bQS1aMC05XXsxMX1bMC05XXsyfSQiLElCQU5SZWdpc3RyeTohMH0sV1M6e30sWEs6e2NoYXJzOjIwLGJiYW5fcmVnZXhwOiJeWzAtOV17MTZ9JCIsSUJBTlJlZ2lzdHJ5OiEwLGJyYW5jaF9pbmRlbnRpZmllcjoiMi0zIixhY2NvdW50X2luZGVudGlmaWVyOiI0LTIwIn0sWUU6e30sWVQ6e2NoYXJzOjI3LGJiYW5fcmVnZXhwOiJeWzAtOV17MTB9W0EtWjAtOV17MTF9WzAtOV17Mn0kIixJQkFOUmVnaXN0cnk6ITB9LFpBOnt9LFpNOnt9LFpXOnt9fX0pO3ZhciBNdXQsenV0PWIoKCk9Pnt1ZSgpO011dD0oKT0+d2AKICA8ZGVlcy1kZW1vd3JhcHBlcj4KICAgIDxzdHlsZT4KICAgICAgJHtRYAogICAgICAgIC5kZW1vLWNvbnRhaW5lciB7CiAgICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgICAgIGdhcDogMjRweDsKICAgICAgICAgIHBhZGRpbmc6IDI0cHg7CiAgICAgICAgICBtYXgtd2lkdGg6IDEyMDBweDsKICAgICAgICAgIG1hcmdpbjogMCBhdXRvOwogICAgICAgIH0KICAgICAgICAKICAgICAgICAuaW5wdXQtZ3JvdXAgewogICAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgICAgICBnYXA6IDE2cHg7CiAgICAgICAgfQoKICAgICAgICAucGF5bWVudC1ncm91cCB7CiAgICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICAgIGdhcDogMTZweDsKICAgICAgICAgIGZsZXgtd3JhcDogd3JhcDsKICAgICAgICB9CiAgICAgIGB9CiAgICA8L3N0eWxlPgogICAgCiAgICA8ZGl2IGNsYXNzPSJkZW1vLWNvbnRhaW5lciI+CiAgICAgIDxkZWVzLXBhbmVsIC50aXRsZT0keyJCYXNpYyBJQkFOIElucHV0In0gLnN1YnRpdGxlPSR7IkludGVybmF0aW9uYWwgQmFuayBBY2NvdW50IE51bWJlciB3aXRoIGF1dG9tYXRpYyBmb3JtYXR0aW5nIn0+CiAgICAgICAgPGRpdiBjbGFzcz0iaW5wdXQtZ3JvdXAiPgogICAgICAgICAgPGRlZXMtaW5wdXQtaWJhbgogICAgICAgICAgICAubGFiZWw9JHsiQmFuayBBY2NvdW50IElCQU4ifQogICAgICAgICAgICAuZGVzY3JpcHRpb249JHsiRW50ZXIgeW91ciBJbnRlcm5hdGlvbmFsIEJhbmsgQWNjb3VudCBOdW1iZXIifQogICAgICAgICAgPjwvZGVlcy1pbnB1dC1pYmFuPgoKICAgICAgICAgIDxkZWVzLWlucHV0LWliYW4KICAgICAgICAgICAgLmxhYmVsPSR7IlZlcmlmaWVkIElCQU4ifQogICAgICAgICAgICAuZGVzY3JpcHRpb249JHsiVGhpcyBJQkFOIGhhcyBiZWVuIHZlcmlmaWVkIn0KICAgICAgICAgICAgLnZhbHVlPSR7IkRFODkzNzA0MDA0NDA1MzIwMTMwMDAifQogICAgICAgICAgPjwvZGVlcy1pbnB1dC1pYmFuPgogICAgICAgIDwvZGl2PgogICAgICA8L2RlZXMtcGFuZWw+CiAgICAgIAogICAgICA8ZGVlcy1wYW5lbCAudGl0bGU9JHsiUGF5bWVudCBJbmZvcm1hdGlvbiJ9IC5zdWJ0aXRsZT0keyJJQkFOIGlucHV0IHdpdGggaG9yaXpvbnRhbCBsYXlvdXQgZm9yIHBheW1lbnQgZm9ybXMifT4KICAgICAgICA8ZGl2IGNsYXNzPSJwYXltZW50LWdyb3VwIj4KICAgICAgICAgIDxkZWVzLWlucHV0LXRleHQgCiAgICAgICAgICAgIC5sYWJlbD0keyJBY2NvdW50IEhvbGRlciJ9IAogICAgICAgICAgICAubGF5b3V0TW9kZT0keyJob3Jpem9udGFsIn0KICAgICAgICAgICAgLnZhbHVlPSR7IkpvaG4gRG9lIn0KICAgICAgICAgID48L2RlZXMtaW5wdXQtdGV4dD4KICAgICAgICAgIAogICAgICAgICAgPGRlZXMtaW5wdXQtaWJhbiAKICAgICAgICAgICAgLmxhYmVsPSR7IklCQU4ifSAKICAgICAgICAgICAgLmxheW91dE1vZGU9JHsiaG9yaXpvbnRhbCJ9CiAgICAgICAgICAgIC52YWx1ZT0keyJHQjgyV0VTVDEyMzQ1Njk4NzY1NDMyIn0KICAgICAgICAgID48L2RlZXMtaW5wdXQtaWJhbj4KICAgICAgICA8L2Rpdj4KICAgICAgPC9kZWVzLXBhbmVsPgogICAgICAKICAgICAgPGRlZXMtcGFuZWwgLnRpdGxlPSR7IlZhbGlkYXRpb24gJiBTdGF0ZXMifSAuc3VidGl0bGU9JHsiUmVxdWlyZWQgZmllbGRzIGFuZCBkaXNhYmxlZCBzdGF0ZXMifT4KICAgICAgICA8ZGl2IGNsYXNzPSJpbnB1dC1ncm91cCI+CiAgICAgICAgICA8ZGVlcy1pbnB1dC1pYmFuCiAgICAgICAgICAgIC5sYWJlbD0keyJQYXltZW50IEFjY291bnQifQogICAgICAgICAgICAuZGVzY3JpcHRpb249JHsiUmVxdWlyZWQgZm9yIHByb2Nlc3NpbmcgcGF5bWVudHMifQogICAgICAgICAgICAucmVxdWlyZWQ9JHshMH0KICAgICAgICAgID48L2RlZXMtaW5wdXQtaWJhbj4KCiAgICAgICAgICA8ZGVlcy1pbnB1dC1pYmFuCiAgICAgICAgICAgIC5sYWJlbD0keyJMb2NrZWQgSUJBTiJ9CiAgICAgICAgICAgIC5kZXNjcmlwdGlvbj0keyJUaGlzIElCQU4gY2Fubm90IGJlIGNoYW5nZWQifQogICAgICAgICAgICAudmFsdWU9JHsiRlIxNDIwMDQxMDEwMDUwNTAwMDEzTTAyNjA2In0KICAgICAgICAgICAgLmRpc2FibGVkPSR7ITB9CiAgICAgICAgICA+PC9kZWVzLWlucHV0LWliYW4+CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGVlcy1wYW5lbD4KICAgICAgCiAgICAgIDxkZWVzLXBhbmVsIC50aXRsZT0keyJCYW5rIFRyYW5zZmVyIEZvcm0ifSAuc3VidGl0bGU9JHsiQ29tcGxldGUgZm9ybSBleGFtcGxlIHdpdGggSUJBTiB2YWxpZGF0aW9uIn0+CiAgICAgICAgPGRlZXMtZm9ybT4KICAgICAgICAgIDxkZWVzLWlucHV0LXRleHQgLmxhYmVsPSR7IlJlY2lwaWVudCBOYW1lIn0gLnJlcXVpcmVkPSR7ITB9PjwvZGVlcy1pbnB1dC10ZXh0PgogICAgICAgICAgPGRlZXMtaW5wdXQtaWJhbiAubGFiZWw9JHsiUmVjaXBpZW50IElCQU4ifSAucmVxdWlyZWQ9JHshMH0+PC9kZWVzLWlucHV0LWliYW4+CiAgICAgICAgICA8ZGVlcy1pbnB1dC10ZXh0IC5sYWJlbD0keyJUcmFuc2ZlciBSZWZlcmVuY2UifSAuZGVzY3JpcHRpb249JHsiT3B0aW9uYWwgcmVmZXJlbmNlIGZvciB0aGUgdHJhbnNmZXIifT48L2RlZXMtaW5wdXQtdGV4dD4KICAgICAgICAgIDxkZWVzLWlucHV0LXRleHQgLmxhYmVsPSR7IkFtb3VudCJ9IC5pbnB1dFR5cGU9JHsibnVtYmVyIn0gLnJlcXVpcmVkPSR7ITB9PjwvZGVlcy1pbnB1dC10ZXh0PgogICAgICAgIDwvZGVlcy1mb3JtPgogICAgICA8L2RlZXMtcGFuZWw+CiAgICA8L2Rpdj4KICA8L2RlZXMtZGVtb3dyYXBwZXI+CmB9KTt2YXIgSHgsUTAscXgsV3E9YigoKT0+e3VlKCk7VHQoKTtfMSgpO3d1dCgpO3p1dCgpO3FlKCk7SHg9ZnVuY3Rpb24odCxlLGEsaSxyLHMpe2Z1bmN0aW9uIG4oeCl7aWYoeCE9PXZvaWQgMCYmdHlwZW9mIHghPSJmdW5jdGlvbiIpdGhyb3cgbmV3IFR5cGVFcnJvcigiRnVuY3Rpb24gZXhwZWN0ZWQiKTtyZXR1cm4geH1mb3IodmFyIG89aS5raW5kLGQ9bz09PSJnZXR0ZXIiPyJnZXQiOm89PT0ic2V0dGVyIj8ic2V0IjoidmFsdWUiLGM9IWUmJnQ/aS5zdGF0aWM/dDp0LnByb3RvdHlwZTpudWxsLGg9ZXx8KGM/T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihjLGkubmFtZSk6e30pLGwsZj0hMSxnPWEubGVuZ3RoLTE7Zz49MDtnLS0pe3ZhciB5PXt9O2Zvcih2YXIgdiBpbiBpKXlbdl09dj09PSJhY2Nlc3MiP3t9Omlbdl07Zm9yKHZhciB2IGluIGkuYWNjZXNzKXkuYWNjZXNzW3ZdPWkuYWNjZXNzW3ZdO3kuYWRkSW5pdGlhbGl6ZXI9ZnVuY3Rpb24oeCl7aWYoZil0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgYWRkIGluaXRpYWxpemVycyBhZnRlciBkZWNvcmF0aW9uIGhhcyBjb21wbGV0ZWQiKTtzLnB1c2gobih4fHxudWxsKSl9O3ZhciBtPSgwLGFbZ10pKG89PT0iYWNjZXNzb3IiP3tnZXQ6aC5nZXQsc2V0Omguc2V0fTpoW2RdLHkpO2lmKG89PT0iYWNjZXNzb3IiKXtpZihtPT09dm9pZCAwKWNvbnRpbnVlO2lmKG09PT1udWxsfHx0eXBlb2YgbSE9Im9iamVjdCIpdGhyb3cgbmV3IFR5cGVFcnJvcigiT2JqZWN0IGV4cGVjdGVkIik7KGw9bihtLmdldCkpJiYoaC5nZXQ9bCksKGw9bihtLnNldCkpJiYoaC5zZXQ9bCksKGw9bihtLmluaXQpKSYmci51bnNoaWZ0KGwpfWVsc2UobD1uKG0pKSYmKG89PT0iZmllbGQiP3IudW5zaGlmdChsKTpoW2RdPWwpfWMmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShjLGkubmFtZSxoKSxmPSEwfSxRMD1mdW5jdGlvbih0LGUsYSl7Zm9yKHZhciBpPWFyZ3VtZW50cy5sZW5ndGg+MixyPTA7cjxlLmxlbmd0aDtyKyspYT1pP2Vbcl0uY2FsbCh0LGEpOmVbcl0uY2FsbCh0KTtyZXR1cm4gaT9hOnZvaWQgMH0scXg9KCgpPT57bGV0IHQ9W3BlKCJkZWVzLWlucHV0LWliYW4iKV0sZSxhPVtdLGkscj1YZSxzLG49W10sbz1bXSxkLGM9W10saD1bXSxsLGY9W10sZz1bXTt2YXIgeT1jbGFzcyBleHRlbmRzIHJ7c3RhdGlje2k9dGhpc31zdGF0aWN7bGV0IHY9dHlwZW9mIFN5bWJvbD09ImZ1bmN0aW9uIiYmU3ltYm9sLm1ldGFkYXRhP09iamVjdC5jcmVhdGUocltTeW1ib2wubWV0YWRhdGFdPz9udWxsKTp2b2lkIDA7cz1bSigpXSxkPVtKKCldLGw9W0koe3R5cGU6U3RyaW5nfSldLEh4KHRoaXMsbnVsbCxzLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiZW50ZXJlZFN0cmluZyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6bT0+ImVudGVyZWRTdHJpbmciaW4gbSxnZXQ6bT0+bS5lbnRlcmVkU3RyaW5nLHNldDoobSx4KT0+e20uZW50ZXJlZFN0cmluZz14fX0sbWV0YWRhdGE6dn0sbixvKSxIeCh0aGlzLG51bGwsZCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImVudGVyZWRJYmFuSXNWYWxpZCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6bT0+ImVudGVyZWRJYmFuSXNWYWxpZCJpbiBtLGdldDptPT5tLmVudGVyZWRJYmFuSXNWYWxpZCxzZXQ6KG0seCk9PnttLmVudGVyZWRJYmFuSXNWYWxpZD14fX0sbWV0YWRhdGE6dn0sYyxoKSxIeCh0aGlzLG51bGwsbCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InZhbHVlIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczptPT4idmFsdWUiaW4gbSxnZXQ6bT0+bS52YWx1ZSxzZXQ6KG0seCk9PnttLnZhbHVlPXh9fSxtZXRhZGF0YTp2fSxmLGcpLEh4KG51bGwsZT17dmFsdWU6aX0sdCx7a2luZDoiY2xhc3MiLG5hbWU6aS5uYW1lLG1ldGFkYXRhOnZ9LG51bGwsYSkseT1pPWUudmFsdWUsdiYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGksU3ltYm9sLm1ldGFkYXRhLHtlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMCx2YWx1ZTp2fSl9c3RhdGljIGRlbW89TXV0O3N0YXRpYyBkZW1vR3JvdXBzPVsiSW5wdXQiXTsjZT1RMCh0aGlzLG4sIiIpO2dldCBlbnRlcmVkU3RyaW5nKCl7cmV0dXJuIHRoaXMuI2V9c2V0IGVudGVyZWRTdHJpbmcodil7dGhpcy4jZT12fSN0PShRMCh0aGlzLG8pLFEwKHRoaXMsYywhMSkpO2dldCBlbnRlcmVkSWJhbklzVmFsaWQoKXtyZXR1cm4gdGhpcy4jdH1zZXQgZW50ZXJlZEliYW5Jc1ZhbGlkKHYpe3RoaXMuI3Q9dn0jYT0oUTAodGhpcyxoKSxRMCh0aGlzLGYsIiIpKTtnZXQgdmFsdWUoKXtyZXR1cm4gdGhpcy4jYX1zZXQgdmFsdWUodil7dGhpcy4jYT12fXN0YXRpYyBzdHlsZXM9W0NlLC4uLlhlLmJhc2VTdHlsZXMscC5kZWZhdWx0U3R5bGVzLFFgCiAgICAgIC8qIFRPRE86IE1pZ3JhdGUgaGFyZGNvZGVkIHZhbHVlcyB0byAtLWRlZXMtKiBDU1MgdmFyaWFibGVzICovCiAgICAgIC8qIElCQU4gaW5wdXQgc3BlY2lmaWMgc3R5bGVzIGNhbiBnbyBoZXJlICovCiAgICBgXTtyZW5kZXIoKXtyZXR1cm4gd2AKICAgICAgPGRpdiBjbGFzcz0iaW5wdXQtd3JhcHBlciI+CiAgICAgICAgPGRlZXMtbGFiZWwgLmxhYmVsPSR7dGhpcy5sYWJlbHx8IklCQU4ifSAuZGVzY3JpcHRpb249JHt0aGlzLmRlc2NyaXB0aW9ufT48L2RlZXMtbGFiZWw+CiAgICAgICAgPGRlZXMtaW5wdXQtdGV4dAogICAgICAgICAgLnZhbHVlPSR7dGhpcy52YWx1ZX0KICAgICAgICAgIC5kaXNhYmxlZD0ke3RoaXMuZGlzYWJsZWR9CiAgICAgICAgICAucmVxdWlyZWQ9JHt0aGlzLnJlcXVpcmVkfQogICAgICAgICAgLnBsYWNlaG9sZGVyPSR7IkRFODkgMzcwNCAwMDQ0IDA1MzIgMDEzMCAwMCJ9CiAgICAgICAgICBAaW5wdXQ9JHt2PT57dGhpcy52YWxpZGF0ZUliYW4odil9fQogICAgICAgID48L2RlZXMtaW5wdXQtdGV4dD4KICAgICAgPC9kaXY+CiAgICBgfWZpcnN0VXBkYXRlZCh2KXtzdXBlci5maXJzdFVwZGF0ZWQodik7bGV0IG09dGhpcy5zaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3IoImRlZXMtaW5wdXQtdGV4dCIpO20mJm0uY2hhbmdlU3ViamVjdCYmbS5jaGFuZ2VTdWJqZWN0LnN1YnNjcmliZSgoKT0+e3RoaXMuY2hhbmdlU3ViamVjdC5uZXh0KHRoaXMpfSl9YXN5bmMgdmFsaWRhdGVJYmFuKHYpe2xldCBtPXYudGFyZ2V0LHg9bT8udmFsdWU7eD14fHwiIix0aGlzLmVudGVyZWRTdHJpbmchPT14JiYodGhpcy5lbnRlcmVkU3RyaW5nPVVxKHgpfHwiIixtJiYobS52YWx1ZT10aGlzLmVudGVyZWRTdHJpbmcsdGhpcy52YWx1ZT10aGlzLmVudGVyZWRTdHJpbmcsdGhpcy5jaGFuZ2VTdWJqZWN0Lm5leHQodGhpcykpKSx0aGlzLmVudGVyZWRJYmFuSXNWYWxpZD1qcSh0aGlzLmVudGVyZWRTdHJpbmcucmVwbGFjZSgvIC9nLCIiKSk7bGV0IE09dGhpcy5zaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3IoImRlZXMtaW5wdXQtdGV4dCIpO00udmFsaWRhdGlvblRleHQ9YElCQU4gaXMgdmFsaWQ6ICR7dGhpcy5lbnRlcmVkSWJhbklzVmFsaWR9YH1nZXRWYWx1ZSgpe3JldHVybiB0aGlzLnZhbHVlfXNldFZhbHVlKHYpe3RoaXMudmFsdWU9dix0aGlzLmVudGVyZWRTdHJpbmc9VXEodil8fCIifWNvbnN0cnVjdG9yKCl7c3VwZXIoLi4uYXJndW1lbnRzKSxRMCh0aGlzLGcpfXN0YXRpY3tRMChpLGEpfX07cmV0dXJuIHk9aX0pKCl9KTt2YXIga3V0LFN1dD1iKCgpPT57dWUoKTtrdXQ9KCk9PndgCiAgPGRlZXMtZGVtb3dyYXBwZXI+CiAgICA8c3R5bGU+CiAgICAgICR7UWAKICAgICAgICAuZGVtby1jb250YWluZXIgewogICAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgICAgICBnYXA6IDMycHg7CiAgICAgICAgICBwYWRkaW5nOiA0OHB4OwogICAgICAgICAgYmFja2dyb3VuZDogJHtwLmJkVGhlbWUoIiNmOGY5ZmEiLCIjMGEwYTBhIil9OwogICAgICAgICAgbWluLWhlaWdodDogMTAwdmg7CiAgICAgICAgfQogICAgICAgIAogICAgICAgIC5zZWN0aW9uIHsKICAgICAgICAgIGJhY2tncm91bmQ6ICR7cC5iZFRoZW1lKCIjZmZmZmZmIiwiIzE4MTgxYiIpfTsKICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICR7cC5iZFRoZW1lKCIjZTVlN2ViIiwiIzI3MjcyYSIpfTsKICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDhweDsKICAgICAgICAgIHBhZGRpbmc6IDI0cHg7CiAgICAgICAgICBib3gtc2hhZG93OiAwIDFweCAzcHggcmdiYSgwLCAwLCAwLCAwLjEpOwogICAgICAgIH0KICAgICAgICAKICAgICAgICAuc2VjdGlvbi10aXRsZSB7CiAgICAgICAgICBmb250LXNpemU6IDE4cHg7CiAgICAgICAgICBmb250LXdlaWdodDogNjAwOwogICAgICAgICAgbWFyZ2luLWJvdHRvbTogOHB4OwogICAgICAgICAgY29sb3I6ICR7cC5iZFRoZW1lKCIjMDkwOTBiIiwiI2ZhZmFmYSIpfTsKICAgICAgICB9CiAgICAgICAgCiAgICAgICAgLnNlY3Rpb24tZGVzY3JpcHRpb24gewogICAgICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgICAgICAgY29sb3I6ICR7cC5iZFRoZW1lKCIjNzE3MTdhIiwiI2ExYTFhYSIpfTsKICAgICAgICAgIG1hcmdpbi1ib3R0b206IDI0cHg7CiAgICAgICAgfQogICAgICAgIAogICAgICAgIC5zZXR0aW5ncy1ncmlkIHsKICAgICAgICAgIGRpc3BsYXk6IGdyaWQ7CiAgICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDFmciAxZnI7CiAgICAgICAgICBnYXA6IDI0cHg7CiAgICAgICAgfQogICAgICAgIAogICAgICAgIEBtZWRpYSAobWF4LXdpZHRoOiA3NjhweCkgewogICAgICAgICAgLnNldHRpbmdzLWdyaWQgewogICAgICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDFmcjsKICAgICAgICAgIH0KICAgICAgICB9CiAgICAgIGB9CiAgICA8L3N0eWxlPgogICAgCiAgICA8ZGl2IGNsYXNzPSJkZW1vLWNvbnRhaW5lciI+CiAgICAgIDxkaXYgY2xhc3M9InNlY3Rpb24iPgogICAgICAgIDxkaXYgY2xhc3M9InNlY3Rpb24tdGl0bGUiPk11bHRpLU9wdGlvbiBUb2dnbGU8L2Rpdj4KICAgICAgICA8ZGl2IGNsYXNzPSJzZWN0aW9uLWRlc2NyaXB0aW9uIj5TZWxlY3QgZnJvbSBtdWx0aXBsZSBvcHRpb25zIHdpdGggYSBzbW9vdGggc2xpZGluZyBpbmRpY2F0b3IgYW5pbWF0aW9uLjwvZGl2PgogICAgICAgIAogICAgICAgIDxkZWVzLWlucHV0LW11bHRpdG9nZ2xlCiAgICAgICAgICAubGFiZWw9JHsiRGlzcGxheSBNb2RlIn0KICAgICAgICAgIC5kZXNjcmlwdGlvbj0keyJDaG9vc2UgaG93IGNvbnRlbnQgaXMgZGlzcGxheWVkIn0KICAgICAgICAgIC5vcHRpb25zPSR7WyJMaXN0IFZpZXciLCJHcmlkIFZpZXciLCJDb21wYWN0Il19CiAgICAgICAgICAuc2VsZWN0ZWRPcHRpb249JHsiR3JpZCBWaWV3In0KICAgICAgICA+PC9kZWVzLWlucHV0LW11bHRpdG9nZ2xlPgogICAgICAgIAogICAgICAgIDxicj48YnI+CiAgICAgICAgCiAgICAgICAgPGRlZXMtaW5wdXQtbXVsdGl0b2dnbGUKICAgICAgICAgIC5sYWJlbD0keyJULVNoaXJ0IFNpemUifQogICAgICAgICAgLmRlc2NyaXB0aW9uPSR7IlNlbGVjdCB5b3VyIHByZWZlcnJlZCBzaXplIn0KICAgICAgICAgIC5vcHRpb25zPSR7WyJYUyIsIlMiLCJNIiwiTCIsIlhMIiwiWFhMIl19CiAgICAgICAgICAuc2VsZWN0ZWRPcHRpb249JHsiTSJ9CiAgICAgICAgPjwvZGVlcy1pbnB1dC1tdWx0aXRvZ2dsZT4KICAgICAgPC9kaXY+CiAgICAgIAogICAgICA8ZGl2IGNsYXNzPSJzZWN0aW9uIj4KICAgICAgICA8ZGl2IGNsYXNzPSJzZWN0aW9uLXRpdGxlIj5Cb29sZWFuIFRvZ2dsZTwvZGl2PgogICAgICAgIDxkaXYgY2xhc3M9InNlY3Rpb24tZGVzY3JpcHRpb24iPlNpbXBsZSBvbi9vZmYgc3dpdGNoZXMgd2l0aCBjdXN0b21pemFibGUgbGFiZWxzIGZvciBjbGVhcmVyIGNvbnRleHQuPC9kaXY+CiAgICAgICAgCiAgICAgICAgPGRlZXMtaW5wdXQtbXVsdGl0b2dnbGUKICAgICAgICAgIC5sYWJlbD0keyJOb3RpZmljYXRpb25zIn0KICAgICAgICAgIC5kZXNjcmlwdGlvbj0keyJFbmFibGUgb3IgZGlzYWJsZSBwdXNoIG5vdGlmaWNhdGlvbnMifQogICAgICAgICAgLnR5cGU9JHsiYm9vbGVhbiJ9CiAgICAgICAgICAuc2VsZWN0ZWRPcHRpb249JHsidHJ1ZSJ9CiAgICAgICAgPjwvZGVlcy1pbnB1dC1tdWx0aXRvZ2dsZT4KICAgICAgICAKICAgICAgICA8YnI+PGJyPgogICAgICAgIAogICAgICAgIDxkZWVzLWlucHV0LW11bHRpdG9nZ2xlCiAgICAgICAgICAubGFiZWw9JHsiVGhlbWUgTW9kZSJ9CiAgICAgICAgICAuZGVzY3JpcHRpb249JHsiU3dpdGNoIGJldHdlZW4gbGlnaHQgYW5kIGRhcmsgdGhlbWUifQogICAgICAgICAgLnR5cGU9JHsiYm9vbGVhbiJ9CiAgICAgICAgICAuYm9vbGVhblRydWVOYW1lPSR7IkRhcmsifQogICAgICAgICAgLmJvb2xlYW5GYWxzZU5hbWU9JHsiTGlnaHQifQogICAgICAgICAgLnNlbGVjdGVkT3B0aW9uPSR7IkRhcmsifQogICAgICAgID48L2RlZXMtaW5wdXQtbXVsdGl0b2dnbGU+CiAgICAgIDwvZGl2PgogICAgICAKICAgICAgPGRpdiBjbGFzcz0ic2VjdGlvbiI+CiAgICAgICAgPGRpdiBjbGFzcz0ic2VjdGlvbi10aXRsZSI+U2V0dGluZ3MgR3JpZDwvZGl2PgogICAgICAgIDxkaXYgY2xhc3M9InNlY3Rpb24tZGVzY3JpcHRpb24iPkNvbmZpZ3VyYXRpb24gb3B0aW9ucyBhcnJhbmdlZCBpbiBhIHJlc3BvbnNpdmUgZ3JpZCBsYXlvdXQuPC9kaXY+CiAgICAgICAgCiAgICAgICAgPGRpdiBjbGFzcz0ic2V0dGluZ3MtZ3JpZCI+CiAgICAgICAgICA8ZGVlcy1pbnB1dC1tdWx0aXRvZ2dsZQogICAgICAgICAgICAubGFiZWw9JHsiQXV0by1TYXZlIn0KICAgICAgICAgICAgLnR5cGU9JHsiYm9vbGVhbiJ9CiAgICAgICAgICAgIC5ib29sZWFuVHJ1ZU5hbWU9JHsiRW5hYmxlZCJ9CiAgICAgICAgICAgIC5ib29sZWFuRmFsc2VOYW1lPSR7IkRpc2FibGVkIn0KICAgICAgICAgICAgLnNlbGVjdGVkT3B0aW9uPSR7IkVuYWJsZWQifQogICAgICAgICAgPjwvZGVlcy1pbnB1dC1tdWx0aXRvZ2dsZT4KICAgICAgICAgIAogICAgICAgICAgPGRlZXMtaW5wdXQtbXVsdGl0b2dnbGUKICAgICAgICAgICAgLmxhYmVsPSR7Ikxhbmd1YWdlIn0KICAgICAgICAgICAgLm9wdGlvbnM9JHtbIkVuZ2xpc2giLCJHZXJtYW4iLCJGcmVuY2giLCJTcGFuaXNoIl19CiAgICAgICAgICAgIC5zZWxlY3RlZE9wdGlvbj0keyJFbmdsaXNoIn0KICAgICAgICAgID48L2RlZXMtaW5wdXQtbXVsdGl0b2dnbGU+CiAgICAgICAgICAKICAgICAgICAgIDxkZWVzLWlucHV0LW11bHRpdG9nZ2xlCiAgICAgICAgICAgIC5sYWJlbD0keyJRdWFsaXR5In0KICAgICAgICAgICAgLm9wdGlvbnM9JHtbIkxvdyIsIk1lZGl1bSIsIkhpZ2giLCJVbHRyYSJdfQogICAgICAgICAgICAuc2VsZWN0ZWRPcHRpb249JHsiSGlnaCJ9CiAgICAgICAgICA+PC9kZWVzLWlucHV0LW11bHRpdG9nZ2xlPgogICAgICAgICAgCiAgICAgICAgICA8ZGVlcy1pbnB1dC1tdWx0aXRvZ2dsZQogICAgICAgICAgICAubGFiZWw9JHsiUHJpdmFjeSJ9CiAgICAgICAgICAgIC50eXBlPSR7ImJvb2xlYW4ifQogICAgICAgICAgICAuYm9vbGVhblRydWVOYW1lPSR7IlByaXZhdGUifQogICAgICAgICAgICAuYm9vbGVhbkZhbHNlTmFtZT0keyJQdWJsaWMifQogICAgICAgICAgICAuc2VsZWN0ZWRPcHRpb249JHsiUHJpdmF0ZSJ9CiAgICAgICAgICA+PC9kZWVzLWlucHV0LW11bHRpdG9nZ2xlPgogICAgICAgIDwvZGl2PgogICAgICA8L2Rpdj4KICAgICAgCiAgICAgIDxkaXYgY2xhc3M9InNlY3Rpb24iPgogICAgICAgIDxkaXYgY2xhc3M9InNlY3Rpb24tdGl0bGUiPlN0YXRlcyAmIEZvcm0gSW50ZWdyYXRpb248L2Rpdj4KICAgICAgICA8ZGl2IGNsYXNzPSJzZWN0aW9uLWRlc2NyaXB0aW9uIj5FeGFtcGxlcyBvZiBkaXNhYmxlZCBzdGF0ZXMgYW5kIGludGVncmF0aW9uIHdpdGhpbiBmb3Jtcy48L2Rpdj4KICAgICAgICAKICAgICAgICA8ZGVlcy1pbnB1dC1tdWx0aXRvZ2dsZQogICAgICAgICAgLmxhYmVsPSR7IkFjY291bnQgVHlwZSJ9CiAgICAgICAgICAuZGVzY3JpcHRpb249JHsiVGhpcyBzZXR0aW5nIGlzIGxvY2tlZCJ9CiAgICAgICAgICAub3B0aW9ucz0ke1siRnJlZSIsIlBybyIsIkVudGVycHJpc2UiXX0KICAgICAgICAgIC5zZWxlY3RlZE9wdGlvbj0keyJFbnRlcnByaXNlIn0KICAgICAgICAgIC5kaXNhYmxlZD0keyEwfQogICAgICAgID48L2RlZXMtaW5wdXQtbXVsdGl0b2dnbGU+CiAgICAgICAgCiAgICAgICAgPGJyPjxicj4KICAgICAgICAKICAgICAgICA8ZGVlcy1mb3JtPgogICAgICAgICAgPGRlZXMtaW5wdXQtdGV4dCAubGFiZWw9JHsiUHJvamVjdCBOYW1lIn0gLnJlcXVpcmVkPSR7ITB9PjwvZGVlcy1pbnB1dC10ZXh0PgogICAgICAgICAgPGRlZXMtaW5wdXQtbXVsdGl0b2dnbGUKICAgICAgICAgICAgLmxhYmVsPSR7IlZpc2liaWxpdHkifQogICAgICAgICAgICAudHlwZT0keyJib29sZWFuIn0KICAgICAgICAgICAgLmJvb2xlYW5UcnVlTmFtZT0keyJQdWJsaWMifQogICAgICAgICAgICAuYm9vbGVhbkZhbHNlTmFtZT0keyJQcml2YXRlIn0KICAgICAgICAgICAgLnNlbGVjdGVkT3B0aW9uPSR7IlByaXZhdGUifQogICAgICAgICAgPjwvZGVlcy1pbnB1dC1tdWx0aXRvZ2dsZT4KICAgICAgICAgIDxkZWVzLWlucHV0LW11bHRpdG9nZ2xlCiAgICAgICAgICAgIC5sYWJlbD0keyJMaWNlbnNlIn0KICAgICAgICAgICAgLm9wdGlvbnM9JHtbIk1JVCIsIkFwYWNoZSAyLjAiLCJHUEwgdjMiLCJQcm9wcmlldGFyeSJdfQogICAgICAgICAgICAuc2VsZWN0ZWRPcHRpb249JHsiTUlUIn0KICAgICAgICAgID48L2RlZXMtaW5wdXQtbXVsdGl0b2dnbGU+CiAgICAgICAgPC9kZWVzLWZvcm0+CiAgICAgIDwvZGl2PgogICAgPC9kaXY+CiAgPC9kZWVzLWRlbW93cmFwcGVyPgpgfSk7dmFyIEowLFdhLFZ4LEdxPWIoKCk9Pnt1ZSgpO18xKCk7Z2koKTtTdXQoKTtxZSgpO0owPWZ1bmN0aW9uKHQsZSxhLGkscixzKXtmdW5jdGlvbiBuKHgpe2lmKHghPT12b2lkIDAmJnR5cGVvZiB4IT0iZnVuY3Rpb24iKXRocm93IG5ldyBUeXBlRXJyb3IoIkZ1bmN0aW9uIGV4cGVjdGVkIik7cmV0dXJuIHh9Zm9yKHZhciBvPWkua2luZCxkPW89PT0iZ2V0dGVyIj8iZ2V0IjpvPT09InNldHRlciI/InNldCI6InZhbHVlIixjPSFlJiZ0P2kuc3RhdGljP3Q6dC5wcm90b3R5cGU6bnVsbCxoPWV8fChjP09iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoYyxpLm5hbWUpOnt9KSxsLGY9ITEsZz1hLmxlbmd0aC0xO2c+PTA7Zy0tKXt2YXIgeT17fTtmb3IodmFyIHYgaW4gaSl5W3ZdPXY9PT0iYWNjZXNzIj97fTppW3ZdO2Zvcih2YXIgdiBpbiBpLmFjY2Vzcyl5LmFjY2Vzc1t2XT1pLmFjY2Vzc1t2XTt5LmFkZEluaXRpYWxpemVyPWZ1bmN0aW9uKHgpe2lmKGYpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGFkZCBpbml0aWFsaXplcnMgYWZ0ZXIgZGVjb3JhdGlvbiBoYXMgY29tcGxldGVkIik7cy5wdXNoKG4oeHx8bnVsbCkpfTt2YXIgbT0oMCxhW2ddKShvPT09ImFjY2Vzc29yIj97Z2V0OmguZ2V0LHNldDpoLnNldH06aFtkXSx5KTtpZihvPT09ImFjY2Vzc29yIil7aWYobT09PXZvaWQgMCljb250aW51ZTtpZihtPT09bnVsbHx8dHlwZW9mIG0hPSJvYmplY3QiKXRocm93IG5ldyBUeXBlRXJyb3IoIk9iamVjdCBleHBlY3RlZCIpOyhsPW4obS5nZXQpKSYmKGguZ2V0PWwpLChsPW4obS5zZXQpKSYmKGguc2V0PWwpLChsPW4obS5pbml0KSkmJnIudW5zaGlmdChsKX1lbHNlKGw9bihtKSkmJihvPT09ImZpZWxkIj9yLnVuc2hpZnQobCk6aFtkXT1sKX1jJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoYyxpLm5hbWUsaCksZj0hMH0sV2E9ZnVuY3Rpb24odCxlLGEpe2Zvcih2YXIgaT1hcmd1bWVudHMubGVuZ3RoPjIscj0wO3I8ZS5sZW5ndGg7cisrKWE9aT9lW3JdLmNhbGwodCxhKTplW3JdLmNhbGwodCk7cmV0dXJuIGk/YTp2b2lkIDB9LFZ4PSgoKT0+e2xldCB0PVtwZSgiZGVlcy1pbnB1dC1tdWx0aXRvZ2dsZSIpXSxlLGE9W10saSxyPVhlLHMsbj1bXSxvPVtdLGQsYz1bXSxoPVtdLGwsZj1bXSxnPVtdLHksdj1bXSxtPVtdLHgsTT1bXSxTPVtdLEYsXz1bXSxrPVtdO3ZhciBOPWNsYXNzIGV4dGVuZHMgcntzdGF0aWN7aT10aGlzfXN0YXRpY3tsZXQgTD10eXBlb2YgU3ltYm9sPT0iZnVuY3Rpb24iJiZTeW1ib2wubWV0YWRhdGE/T2JqZWN0LmNyZWF0ZShyW1N5bWJvbC5tZXRhZGF0YV0/P251bGwpOnZvaWQgMDtzPVtJKCldLGQ9W0koKV0sbD1bSSgpXSx5PVtJKHt0eXBlOkFycmF5fSldLHg9W0koKV0sRj1bSSh7dHlwZTpCb29sZWFufSldLEowKHRoaXMsbnVsbCxzLHtraW5kOiJhY2Nlc3NvciIsbmFtZToidHlwZSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6QT0+InR5cGUiaW4gQSxnZXQ6QT0+QS50eXBlLHNldDooQSxxKT0+e0EudHlwZT1xfX0sbWV0YWRhdGE6TH0sbixvKSxKMCh0aGlzLG51bGwsZCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImJvb2xlYW5UcnVlTmFtZSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6QT0+ImJvb2xlYW5UcnVlTmFtZSJpbiBBLGdldDpBPT5BLmJvb2xlYW5UcnVlTmFtZSxzZXQ6KEEscSk9PntBLmJvb2xlYW5UcnVlTmFtZT1xfX0sbWV0YWRhdGE6TH0sYyxoKSxKMCh0aGlzLG51bGwsbCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImJvb2xlYW5GYWxzZU5hbWUiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOkE9PiJib29sZWFuRmFsc2VOYW1lImluIEEsZ2V0OkE9PkEuYm9vbGVhbkZhbHNlTmFtZSxzZXQ6KEEscSk9PntBLmJvb2xlYW5GYWxzZU5hbWU9cX19LG1ldGFkYXRhOkx9LGYsZyksSjAodGhpcyxudWxsLHkse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJvcHRpb25zIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpBPT4ib3B0aW9ucyJpbiBBLGdldDpBPT5BLm9wdGlvbnMsc2V0OihBLHEpPT57QS5vcHRpb25zPXF9fSxtZXRhZGF0YTpMfSx2LG0pLEowKHRoaXMsbnVsbCx4LHtraW5kOiJhY2Nlc3NvciIsbmFtZToic2VsZWN0ZWRPcHRpb24iLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOkE9PiJzZWxlY3RlZE9wdGlvbiJpbiBBLGdldDpBPT5BLnNlbGVjdGVkT3B0aW9uLHNldDooQSxxKT0+e0Euc2VsZWN0ZWRPcHRpb249cX19LG1ldGFkYXRhOkx9LE0sUyksSjAodGhpcyxudWxsLEYse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJib29sVmFsdWUiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOkE9PiJib29sVmFsdWUiaW4gQSxnZXQ6QT0+QS5ib29sVmFsdWUsc2V0OihBLHEpPT57QS5ib29sVmFsdWU9cX19LG1ldGFkYXRhOkx9LF8sayksSjAobnVsbCxlPXt2YWx1ZTppfSx0LHtraW5kOiJjbGFzcyIsbmFtZTppLm5hbWUsbWV0YWRhdGE6TH0sbnVsbCxhKSxOPWk9ZS52YWx1ZSxMJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoaSxTeW1ib2wubWV0YWRhdGEse2VudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwLHZhbHVlOkx9KX1zdGF0aWMgZGVtbz1rdXQ7c3RhdGljIGRlbW9Hcm91cHM9WyJJbnB1dCJdOyNlPVdhKHRoaXMsbiwibXVsdGkiKTtnZXQgdHlwZSgpe3JldHVybiB0aGlzLiNlfXNldCB0eXBlKEwpe3RoaXMuI2U9TH0jdD0oV2EodGhpcyxvKSxXYSh0aGlzLGMsInRydWUiKSk7Z2V0IGJvb2xlYW5UcnVlTmFtZSgpe3JldHVybiB0aGlzLiN0fXNldCBib29sZWFuVHJ1ZU5hbWUoTCl7dGhpcy4jdD1MfSNhPShXYSh0aGlzLGgpLFdhKHRoaXMsZiwiZmFsc2UiKSk7Z2V0IGJvb2xlYW5GYWxzZU5hbWUoKXtyZXR1cm4gdGhpcy4jYX1zZXQgYm9vbGVhbkZhbHNlTmFtZShMKXt0aGlzLiNhPUx9I2k9KFdhKHRoaXMsZyksV2EodGhpcyx2LFtdKSk7Z2V0IG9wdGlvbnMoKXtyZXR1cm4gdGhpcy4jaX1zZXQgb3B0aW9ucyhMKXt0aGlzLiNpPUx9I3I9KFdhKHRoaXMsbSksV2EodGhpcyxNLCIiKSk7Z2V0IHNlbGVjdGVkT3B0aW9uKCl7cmV0dXJuIHRoaXMuI3J9c2V0IHNlbGVjdGVkT3B0aW9uKEwpe3RoaXMuI3I9TH0jcz0oV2EodGhpcyxTKSxXYSh0aGlzLF8sITEpKTtnZXQgYm9vbFZhbHVlKCl7cmV0dXJuIHRoaXMuI3N9c2V0IGJvb2xWYWx1ZShMKXt0aGlzLiNzPUx9Z2V0IHZhbHVlKCl7cmV0dXJuIHRoaXMudHlwZT09PSJib29sZWFuIj90aGlzLnNlbGVjdGVkT3B0aW9uPT09dGhpcy5ib29sZWFuVHJ1ZU5hbWU6dGhpcy5zZWxlY3RlZE9wdGlvbn1zZXQgdmFsdWUoTCl7dGhpcy50eXBlPT09ImJvb2xlYW4iJiZ0eXBlb2YgTD09ImJvb2xlYW4iP3RoaXMuc2VsZWN0ZWRPcHRpb249TD90aGlzLmJvb2xlYW5UcnVlTmFtZTp0aGlzLmJvb2xlYW5GYWxzZU5hbWU6dGhpcy5zZWxlY3RlZE9wdGlvbj1MLHRoaXMucmVxdWVzdFVwZGF0ZSgpLHRoaXMuaGFzVXBkYXRlZCYmcmVxdWVzdEFuaW1hdGlvbkZyYW1lKCgpPT57dGhpcy5zZXRJbmRpY2F0b3IoKX0pfXN0YXRpYyBzdHlsZXM9W0NlLC4uLlhlLmJhc2VTdHlsZXMscC5kZWZhdWx0U3R5bGVzLFFgCiAgICAgIC8qIFRPRE86IE1pZ3JhdGUgaGFyZGNvZGVkIHZhbHVlcyB0byAtLWRlZXMtKiBDU1MgdmFyaWFibGVzICovCiAgICAgIDpob3N0IHsKICAgICAgICBjb2xvcjogJHtwLmJkVGhlbWUoIiMwOTA5MGIiLCIjZmFmYWZhIil9OwogICAgICAgIHVzZXItc2VsZWN0OiBub25lOwogICAgICB9CgogICAgICAuc2VsZWN0aW9ucyB7CiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICAgIGRpc3BsYXk6IGlubGluZS1mbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgYmFja2dyb3VuZDogJHtwLmJkVGhlbWUoIiNmZmZmZmYiLCIjMTgxODFiIil9OwogICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICR7cC5iZFRoZW1lKCIjZTVlN2ViIiwiIzI3MjcyYSIpfTsKICAgICAgICBwYWRkaW5nOiA0cHg7CiAgICAgICAgYm9yZGVyLXJhZGl1czogOHB4OwogICAgICAgIGJveC1zaGFkb3c6IDAgMXB4IDJweCAwIHJnYmEoMCwgMCwgMCwgMC4wNSk7CiAgICAgIH0KCiAgICAgIC5vcHRpb24gewogICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgICBwYWRkaW5nOiA4cHggMjBweDsKICAgICAgICBib3JkZXItcmFkaXVzOiA2cHg7CiAgICAgICAgY3Vyc29yOiBwb2ludGVyOwogICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7CiAgICAgICAgdHJhbnNpdGlvbjogY29sb3IgMC4ycyBlYXNlOwogICAgICAgIGZvbnQtc2l6ZTogMTRweDsKICAgICAgICBmb250LXdlaWdodDogNTAwOwogICAgICAgIGNvbG9yOiAke3AuYmRUaGVtZSgiIzcxNzE3YSIsIiM3MTcxN2EiKX07CiAgICAgICAgbGluZS1oZWlnaHQ6IDE7CiAgICAgICAgei1pbmRleDogMjsKICAgICAgfQoKICAgICAgLm9wdGlvbjpob3ZlciB7CiAgICAgICAgY29sb3I6ICR7cC5iZFRoZW1lKCIjMTgxODFiIiwiI2U0ZTRlNyIpfTsKICAgICAgfQoKICAgICAgLm9wdGlvbi5zZWxlY3RlZCB7CiAgICAgICAgY29sb3I6ICR7cC5iZFRoZW1lKCIjM2I4MmY2IiwiIzYwYTVmYSIpfTsKICAgICAgfQoKICAgICAgLmluZGljYXRvciB7CiAgICAgICAgb3BhY2l0eTogMDsKICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgICAgaGVpZ2h0OiBjYWxjKDEwMCUgLSA4cHgpOwogICAgICAgIHRvcDogNHB4OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDZweDsKICAgICAgICBiYWNrZ3JvdW5kOiAke3AuYmRUaGVtZSgicmdiYSg1OSwgMTMwLCAyNDYsIDAuMTUpIiwicmdiYSg1OSwgMTMwLCAyNDYsIDAuMTUpIil9OwogICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjJzIGN1YmljLWJlemllcigwLjQsIDAsIDAuMiwgMSk7CiAgICAgICAgei1pbmRleDogMTsKICAgICAgfQogICAgICAKICAgICAgLmluZGljYXRvci5uby10cmFuc2l0aW9uIHsKICAgICAgICB0cmFuc2l0aW9uOiBub25lOwogICAgICB9CiAgICAgIAogICAgICA6aG9zdChbZGlzYWJsZWRdKSAuc2VsZWN0aW9ucyB7CiAgICAgICAgb3BhY2l0eTogMC41OwogICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7CiAgICAgIH0KCiAgICAgIDpob3N0KFtkaXNhYmxlZF0pIC5vcHRpb24gewogICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7CiAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7CiAgICAgIH0KCiAgICAgIDpob3N0KFtkaXNhYmxlZF0pIC5pbmRpY2F0b3IgewogICAgICAgIGJhY2tncm91bmQ6ICR7cC5iZFRoZW1lKCJyZ2JhKDExMywgMTEzLCAxMjIsIDAuMTUpIiwicmdiYSgxMTMsIDExMywgMTIyLCAwLjE1KSIpfTsKICAgICAgfQogICAgYF07cmVuZGVyKCl7cmV0dXJuIHdgCiAgICAgIDxkaXYgY2xhc3M9ImlucHV0LXdyYXBwZXIiPgogICAgICAgIDxkZWVzLWxhYmVsIC5sYWJlbD0ke3RoaXMubGFiZWx9IC5kZXNjcmlwdGlvbj0ke3RoaXMuZGVzY3JpcHRpb259PjwvZGVlcy1sYWJlbD4KICAgICAgICA8ZGl2IGNsYXNzPSJtYWluYm94Ij4KICAgICAgICAgIDxkaXYgY2xhc3M9InNlbGVjdGlvbnMiPgogICAgICAgICAgPGRpdiBjbGFzcz0iaW5kaWNhdG9yIj48L2Rpdj4KICAgICAgICAgICR7dGhpcy5vcHRpb25zLm1hcChMPT53YDxkaXYgY2xhc3M9Im9wdGlvbiAke0w9PT10aGlzLnNlbGVjdGVkT3B0aW9uPyJzZWxlY3RlZCI6IiJ9IiBAY2xpY2s9JHsoKT0+dGhpcy5oYW5kbGVTZWxlY3Rpb24oTCl9PgogICAgICAgICAgICAgICAgJHtMfQogICAgICAgICAgICAgIDwvZGl2PiBgKX0KICAgICAgICAgIDwvZGl2PgogICAgICAgIDwvZGl2PgogICAgICA8L2Rpdj4KICAgIGB9YXN5bmMgY29ubmVjdGVkQ2FsbGJhY2soKXthd2FpdCBzdXBlci5jb25uZWN0ZWRDYWxsYmFjaygpLHRoaXMudHlwZT09PSJib29sZWFuIiYmdGhpcy5vcHRpb25zLmxlbmd0aD09PTAmJih0aGlzLm9wdGlvbnM9W3RoaXMuYm9vbGVhblRydWVOYW1lfHwidHJ1ZSIsdGhpcy5ib29sZWFuRmFsc2VOYW1lfHwiZmFsc2UiXSx0aGlzLnNlbGVjdGVkT3B0aW9ufHwodGhpcy5zZWxlY3RlZE9wdGlvbj10aGlzLmJvb2xlYW5GYWxzZU5hbWV8fCJmYWxzZSIpKSwhdGhpcy5zZWxlY3RlZE9wdGlvbiYmdGhpcy5vcHRpb25zLmxlbmd0aD4wJiYodGhpcy5zZWxlY3RlZE9wdGlvbj10aGlzLm9wdGlvbnNbMF0pfWFzeW5jIGZpcnN0VXBkYXRlZChMKXtzdXBlci5maXJzdFVwZGF0ZWQoTCksdGhpcy50eXBlPT09ImJvb2xlYW4iJiYodGhpcy5vcHRpb25zPVt0aGlzLmJvb2xlYW5UcnVlTmFtZXx8InRydWUiLHRoaXMuYm9vbGVhbkZhbHNlTmFtZXx8ImZhbHNlIl0pLGF3YWl0IHRoaXMudXBkYXRlQ29tcGxldGUsZG9jdW1lbnQuZm9udHMmJmF3YWl0IGRvY3VtZW50LmZvbnRzLnJlYWR5LGF3YWl0IG5ldyBQcm9taXNlKEE9PnJlcXVlc3RBbmltYXRpb25GcmFtZShBKSksdGhpcy5zZXRJbmRpY2F0b3IoKX1hc3luYyBoYW5kbGVTZWxlY3Rpb24oTCl7dGhpcy5kaXNhYmxlZHx8KHRoaXMuc2VsZWN0ZWRPcHRpb249TCx0aGlzLnJlcXVlc3RVcGRhdGUoKSx0aGlzLmNoYW5nZVN1YmplY3QubmV4dCh0aGlzKSxhd2FpdCB0aGlzLnVwZGF0ZUNvbXBsZXRlLHRoaXMuc2V0SW5kaWNhdG9yKCkpfWluZGljYXRvckluaXRpYWxpemVkPShXYSh0aGlzLGspLCExKTthc3luYyBzZXRJbmRpY2F0b3IoKXtsZXQgTD10aGlzLnNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvcigiLmluZGljYXRvciIpLEE9dGhpcy5vcHRpb25zLmluZGV4T2YodGhpcy5zZWxlY3RlZE9wdGlvbik7aWYoQT09PS0xfHwhTCl7TCYmKEwuc3R5bGUub3BhY2l0eT0iMCIpO3JldHVybn1sZXQgcT10aGlzLnNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvcihgLm9wdGlvbjpudGgtY2hpbGQoJHtBKzJ9KWApO0wmJnEmJih0aGlzLmluZGljYXRvckluaXRpYWxpemVkfHwoTC5jbGFzc0xpc3QuYWRkKCJuby10cmFuc2l0aW9uIiksdGhpcy5pbmRpY2F0b3JJbml0aWFsaXplZD0hMCxzZXRUaW1lb3V0KCgpPT57TC5jbGFzc0xpc3QucmVtb3ZlKCJuby10cmFuc2l0aW9uIil9LDUwKSksTC5zdHlsZS53aWR0aD1gJHtxLmNsaWVudFdpZHRofXB4YCxMLnN0eWxlLmxlZnQ9YCR7cS5vZmZzZXRMZWZ0fXB4YCxMLnN0eWxlLm9wYWNpdHk9IjEiKX1nZXRWYWx1ZSgpe3JldHVybiB0aGlzLnR5cGU9PT0iYm9vbGVhbiI/dGhpcy5zZWxlY3RlZE9wdGlvbj09PXRoaXMuYm9vbGVhblRydWVOYW1lOnRoaXMuc2VsZWN0ZWRPcHRpb259c2V0VmFsdWUoTCl7dGhpcy50eXBlPT09ImJvb2xlYW4iJiZ0eXBlb2YgTD09ImJvb2xlYW4iP3RoaXMuc2VsZWN0ZWRPcHRpb249TD90aGlzLmJvb2xlYW5UcnVlTmFtZXx8InRydWUiOnRoaXMuYm9vbGVhbkZhbHNlTmFtZXx8ImZhbHNlIjp0aGlzLnNlbGVjdGVkT3B0aW9uPUwsdGhpcy5yZXF1ZXN0VXBkYXRlKCksdGhpcy5oYXNVcGRhdGVkJiZyZXF1ZXN0QW5pbWF0aW9uRnJhbWUoKCk9Pnt0aGlzLnNldEluZGljYXRvcigpfSl9c3RhdGlje1dhKGksYSl9fTtyZXR1cm4gTj1pfSkoKX0pO3ZhciBDdXQsX3V0PWIoKCk9Pnt1ZSgpO0N1dD0oKT0+d2AKICA8ZGVlcy1kZW1vd3JhcHBlcj4KICAgIDxzdHlsZT4KICAgICAgJHtRYAogICAgICAgIC5kZW1vLWNvbnRhaW5lciB7CiAgICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgICAgIGdhcDogMjRweDsKICAgICAgICAgIHBhZGRpbmc6IDI0cHg7CiAgICAgICAgICBtYXgtd2lkdGg6IDEyMDBweDsKICAgICAgICAgIG1hcmdpbjogMCBhdXRvOwogICAgICAgIH0KICAgICAgICAKICAgICAgICAuaW5wdXQtZ3JvdXAgewogICAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgICAgICBnYXA6IDE2cHg7CiAgICAgICAgfQoKICAgICAgICAuaG9yaXpvbnRhbC1ncm91cCB7CiAgICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICAgIGdhcDogMTZweDsKICAgICAgICAgIGZsZXgtd3JhcDogd3JhcDsKICAgICAgICB9CiAgICAgIGB9CiAgICA8L3N0eWxlPgogICAgCiAgICA8ZGl2IGNsYXNzPSJkZW1vLWNvbnRhaW5lciI+CiAgICAgIDxkZWVzLXBhbmVsIC50aXRsZT0keyJCYXNpYyBQaG9uZSBJbnB1dCJ9IC5zdWJ0aXRsZT0keyJBdXRvbWF0aWMgZm9ybWF0dGluZyBmb3IgcGhvbmUgbnVtYmVycyJ9PgogICAgICAgIDxkaXYgY2xhc3M9ImlucHV0LWdyb3VwIj4KICAgICAgICAgIDxkZWVzLWlucHV0LXBob25lCiAgICAgICAgICAgIC5sYWJlbD0keyJQaG9uZSBOdW1iZXIifQogICAgICAgICAgICAuZGVzY3JpcHRpb249JHsiRW50ZXIgeW91ciBwaG9uZSBudW1iZXIgd2l0aCBjb3VudHJ5IGNvZGUifQogICAgICAgICAgICAudmFsdWU9JHsiNTU1MTIzNDU2NyJ9CiAgICAgICAgICA+PC9kZWVzLWlucHV0LXBob25lPgoKICAgICAgICAgIDxkZWVzLWlucHV0LXBob25lCiAgICAgICAgICAgIC5sYWJlbD0keyJDb250YWN0IFBob25lIn0KICAgICAgICAgICAgLmRlc2NyaXB0aW9uPSR7IlJlcXVpcmVkIGZvciBhY2NvdW50IHZlcmlmaWNhdGlvbiJ9CiAgICAgICAgICAgIC5yZXF1aXJlZD0keyEwfQogICAgICAgICAgICAucGxhY2Vob2xkZXI9JHsiKzEgKDU1NSkgMDAwLTAwMDAifQogICAgICAgICAgPjwvZGVlcy1pbnB1dC1waG9uZT4KICAgICAgICA8L2Rpdj4KICAgICAgPC9kZWVzLXBhbmVsPgogICAgICAKICAgICAgPGRlZXMtcGFuZWwgLnRpdGxlPSR7Ikhvcml6b250YWwgTGF5b3V0In0gLnN1YnRpdGxlPSR7IlBob25lIGlucHV0cyBhcnJhbmdlZCBob3Jpem9udGFsbHkifT4KICAgICAgICA8ZGl2IGNsYXNzPSJob3Jpem9udGFsLWdyb3VwIj4KICAgICAgICAgIDxkZWVzLWlucHV0LXBob25lIAogICAgICAgICAgICAubGFiZWw9JHsiTW9iaWxlIn0gCiAgICAgICAgICAgIC5sYXlvdXRNb2RlPSR7Imhvcml6b250YWwifQogICAgICAgICAgICAudmFsdWU9JHsiNDE1NTU1MTIzNCJ9CiAgICAgICAgICA+PC9kZWVzLWlucHV0LXBob25lPgogICAgICAgICAgCiAgICAgICAgICA8ZGVlcy1pbnB1dC1waG9uZSAKICAgICAgICAgICAgLmxhYmVsPSR7Ik9mZmljZSJ9IAogICAgICAgICAgICAubGF5b3V0TW9kZT0keyJob3Jpem9udGFsIn0KICAgICAgICAgICAgLnBsYWNlaG9sZGVyPSR7IisxICg4MDApIDU1NS0wMDAwIn0KICAgICAgICAgID48L2RlZXMtaW5wdXQtcGhvbmU+CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGVlcy1wYW5lbD4KICAgICAgCiAgICAgIDxkZWVzLXBhbmVsIC50aXRsZT0keyJJbnRlcm5hdGlvbmFsIE51bWJlcnMifSAuc3VidGl0bGU9JHsiU3VwcG9ydHMgZm9ybWF0dGluZyBmb3IgbnVtYmVycyB3aXRoIGNvdW50cnkgY29kZXMifT4KICAgICAgICA8ZGl2IGNsYXNzPSJpbnB1dC1ncm91cCI+CiAgICAgICAgICA8ZGVlcy1pbnB1dC1waG9uZQogICAgICAgICAgICAubGFiZWw9JHsiSW50ZXJuYXRpb25hbCBDb250YWN0In0KICAgICAgICAgICAgLmRlc2NyaXB0aW9uPSR7IkF1dG9tYXRpY2FsbHkgZm9ybWF0cyBpbnRlcm5hdGlvbmFsIG51bWJlcnMifQogICAgICAgICAgICAudmFsdWU9JHsiNDQxMjM0NTY3ODkwIn0KICAgICAgICAgID48L2RlZXMtaW5wdXQtcGhvbmU+CgogICAgICAgICAgPGRlZXMtaW5wdXQtcGhvbmUKICAgICAgICAgICAgLmxhYmVsPSR7IkVtZXJnZW5jeSBDb250YWN0In0KICAgICAgICAgICAgLnZhbHVlPSR7IjkxMSJ9CiAgICAgICAgICAgIC5kaXNhYmxlZD0keyEwfQogICAgICAgICAgPjwvZGVlcy1pbnB1dC1waG9uZT4KICAgICAgICA8L2Rpdj4KICAgICAgPC9kZWVzLXBhbmVsPgogICAgICAKICAgICAgPGRlZXMtcGFuZWwgLnRpdGxlPSR7IkZvcm0gSW50ZWdyYXRpb24ifSAuc3VidGl0bGU9JHsiUGhvbmUgaW5wdXQgYXMgcGFydCBvZiBhIGNvbnRhY3QgZm9ybSJ9PgogICAgICAgIDxkZWVzLWZvcm0+CiAgICAgICAgICA8ZGVlcy1pbnB1dC10ZXh0IC5sYWJlbD0keyJGdWxsIE5hbWUifSAucmVxdWlyZWQ9JHshMH0+PC9kZWVzLWlucHV0LXRleHQ+CiAgICAgICAgICA8ZGVlcy1pbnB1dC1waG9uZSAubGFiZWw9JHsiUGhvbmUgTnVtYmVyIn0gLnJlcXVpcmVkPSR7ITB9PjwvZGVlcy1pbnB1dC1waG9uZT4KICAgICAgICAgIDxkZWVzLWlucHV0LXRleHQgLmxhYmVsPSR7IkVtYWlsIn0gLmlucHV0VHlwZT0keyJlbWFpbCJ9PjwvZGVlcy1pbnB1dC10ZXh0PgogICAgICAgIDwvZGVlcy1mb3JtPgogICAgICA8L2RlZXMtcGFuZWw+CiAgICA8L2Rpdj4KICA8L2RlZXMtZGVtb3dyYXBwZXI+CmB9KTt2YXIgangsZTQsVXgsWXE9YigoKT0+e3VlKCk7VHQoKTtfMSgpO191dCgpO3FlKCk7ang9ZnVuY3Rpb24odCxlLGEsaSxyLHMpe2Z1bmN0aW9uIG4oeCl7aWYoeCE9PXZvaWQgMCYmdHlwZW9mIHghPSJmdW5jdGlvbiIpdGhyb3cgbmV3IFR5cGVFcnJvcigiRnVuY3Rpb24gZXhwZWN0ZWQiKTtyZXR1cm4geH1mb3IodmFyIG89aS5raW5kLGQ9bz09PSJnZXR0ZXIiPyJnZXQiOm89PT0ic2V0dGVyIj8ic2V0IjoidmFsdWUiLGM9IWUmJnQ/aS5zdGF0aWM/dDp0LnByb3RvdHlwZTpudWxsLGg9ZXx8KGM/T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihjLGkubmFtZSk6e30pLGwsZj0hMSxnPWEubGVuZ3RoLTE7Zz49MDtnLS0pe3ZhciB5PXt9O2Zvcih2YXIgdiBpbiBpKXlbdl09dj09PSJhY2Nlc3MiP3t9Omlbdl07Zm9yKHZhciB2IGluIGkuYWNjZXNzKXkuYWNjZXNzW3ZdPWkuYWNjZXNzW3ZdO3kuYWRkSW5pdGlhbGl6ZXI9ZnVuY3Rpb24oeCl7aWYoZil0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgYWRkIGluaXRpYWxpemVycyBhZnRlciBkZWNvcmF0aW9uIGhhcyBjb21wbGV0ZWQiKTtzLnB1c2gobih4fHxudWxsKSl9O3ZhciBtPSgwLGFbZ10pKG89PT0iYWNjZXNzb3IiP3tnZXQ6aC5nZXQsc2V0Omguc2V0fTpoW2RdLHkpO2lmKG89PT0iYWNjZXNzb3IiKXtpZihtPT09dm9pZCAwKWNvbnRpbnVlO2lmKG09PT1udWxsfHx0eXBlb2YgbSE9Im9iamVjdCIpdGhyb3cgbmV3IFR5cGVFcnJvcigiT2JqZWN0IGV4cGVjdGVkIik7KGw9bihtLmdldCkpJiYoaC5nZXQ9bCksKGw9bihtLnNldCkpJiYoaC5zZXQ9bCksKGw9bihtLmluaXQpKSYmci51bnNoaWZ0KGwpfWVsc2UobD1uKG0pKSYmKG89PT0iZmllbGQiP3IudW5zaGlmdChsKTpoW2RdPWwpfWMmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShjLGkubmFtZSxoKSxmPSEwfSxlND1mdW5jdGlvbih0LGUsYSl7Zm9yKHZhciBpPWFyZ3VtZW50cy5sZW5ndGg+MixyPTA7cjxlLmxlbmd0aDtyKyspYT1pP2Vbcl0uY2FsbCh0LGEpOmVbcl0uY2FsbCh0KTtyZXR1cm4gaT9hOnZvaWQgMH0sVXg9KCgpPT57bGV0IHQ9W3BlKCJkZWVzLWlucHV0LXBob25lIildLGUsYT1bXSxpLHI9WGUscyxuPVtdLG89W10sZCxjPVtdLGg9W10sbCxmPVtdLGc9W107dmFyIHk9Y2xhc3MgZXh0ZW5kcyBye3N0YXRpY3tpPXRoaXN9c3RhdGlje2xldCB2PXR5cGVvZiBTeW1ib2w9PSJmdW5jdGlvbiImJlN5bWJvbC5tZXRhZGF0YT9PYmplY3QuY3JlYXRlKHJbU3ltYm9sLm1ldGFkYXRhXT8/bnVsbCk6dm9pZCAwO3M9W0ooKV0sZD1bSSh7dHlwZTpTdHJpbmd9KV0sbD1bSSh7dHlwZTpTdHJpbmd9KV0sangodGhpcyxudWxsLHMse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJmb3JtYXR0ZWRQaG9uZSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6bT0+ImZvcm1hdHRlZFBob25lImluIG0sZ2V0Om09Pm0uZm9ybWF0dGVkUGhvbmUsc2V0OihtLHgpPT57bS5mb3JtYXR0ZWRQaG9uZT14fX0sbWV0YWRhdGE6dn0sbixvKSxqeCh0aGlzLG51bGwsZCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InZhbHVlIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczptPT4idmFsdWUiaW4gbSxnZXQ6bT0+bS52YWx1ZSxzZXQ6KG0seCk9PnttLnZhbHVlPXh9fSxtZXRhZGF0YTp2fSxjLGgpLGp4KHRoaXMsbnVsbCxsLHtraW5kOiJhY2Nlc3NvciIsbmFtZToicGxhY2Vob2xkZXIiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOm09PiJwbGFjZWhvbGRlciJpbiBtLGdldDptPT5tLnBsYWNlaG9sZGVyLHNldDoobSx4KT0+e20ucGxhY2Vob2xkZXI9eH19LG1ldGFkYXRhOnZ9LGYsZyksangobnVsbCxlPXt2YWx1ZTppfSx0LHtraW5kOiJjbGFzcyIsbmFtZTppLm5hbWUsbWV0YWRhdGE6dn0sbnVsbCxhKSx5PWk9ZS52YWx1ZSx2JiZPYmplY3QuZGVmaW5lUHJvcGVydHkoaSxTeW1ib2wubWV0YWRhdGEse2VudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwLHZhbHVlOnZ9KX1zdGF0aWMgZGVtbz1DdXQ7c3RhdGljIGRlbW9Hcm91cHM9WyJJbnB1dCJdOyNlPWU0KHRoaXMsbiwiIik7Z2V0IGZvcm1hdHRlZFBob25lKCl7cmV0dXJuIHRoaXMuI2V9c2V0IGZvcm1hdHRlZFBob25lKHYpe3RoaXMuI2U9dn0jdD0oZTQodGhpcyxvKSxlNCh0aGlzLGMsIiIpKTtnZXQgdmFsdWUoKXtyZXR1cm4gdGhpcy4jdH1zZXQgdmFsdWUodil7dGhpcy4jdD12fSNhPShlNCh0aGlzLGgpLGU0KHRoaXMsZiwiKzEgKDU1NSkgMTIzLTQ1NjciKSk7Z2V0IHBsYWNlaG9sZGVyKCl7cmV0dXJuIHRoaXMuI2F9c2V0IHBsYWNlaG9sZGVyKHYpe3RoaXMuI2E9dn1zdGF0aWMgc3R5bGVzPVtDZSwuLi5YZS5iYXNlU3R5bGVzLHAuZGVmYXVsdFN0eWxlcyxRYAogICAgICAvKiBUT0RPOiBNaWdyYXRlIGhhcmRjb2RlZCB2YWx1ZXMgdG8gLS1kZWVzLSogQ1NTIHZhcmlhYmxlcyAqLwogICAgICAvKiBQaG9uZSBpbnB1dCBzcGVjaWZpYyBzdHlsZXMgY2FuIGdvIGhlcmUgKi8KICAgIGBdO3JlbmRlcigpe3JldHVybiB3YAogICAgICA8ZGl2IGNsYXNzPSJpbnB1dC13cmFwcGVyIj4KICAgICAgICA8ZGVlcy1sYWJlbCAubGFiZWw9JHt0aGlzLmxhYmVsfSAuZGVzY3JpcHRpb249JHt0aGlzLmRlc2NyaXB0aW9ufT48L2RlZXMtbGFiZWw+CiAgICAgICAgPGRlZXMtaW5wdXQtdGV4dAogICAgICAgICAgLnZhbHVlPSR7dGhpcy5mb3JtYXR0ZWRQaG9uZX0KICAgICAgICAgIC5kaXNhYmxlZD0ke3RoaXMuZGlzYWJsZWR9CiAgICAgICAgICAucmVxdWlyZWQ9JHt0aGlzLnJlcXVpcmVkfQogICAgICAgICAgLnBsYWNlaG9sZGVyPSR7dGhpcy5wbGFjZWhvbGRlcn0KICAgICAgICAgIEBpbnB1dD0ke3Y9PnRoaXMuaGFuZGxlUGhvbmVJbnB1dCh2KX0KICAgICAgICA+PC9kZWVzLWlucHV0LXRleHQ+CiAgICAgIDwvZGl2PgogICAgYH1maXJzdFVwZGF0ZWQodil7c3VwZXIuZmlyc3RVcGRhdGVkKHYpLHRoaXMudmFsdWUmJih0aGlzLmZvcm1hdHRlZFBob25lPXRoaXMuZm9ybWF0UGhvbmVOdW1iZXIodGhpcy52YWx1ZSkpO2xldCBtPXRoaXMuc2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yKCJkZWVzLWlucHV0LXRleHQiKTttJiZtLmNoYW5nZVN1YmplY3QmJm0uY2hhbmdlU3ViamVjdC5zdWJzY3JpYmUoKCk9Pnt0aGlzLmNoYW5nZVN1YmplY3QubmV4dCh0aGlzKX0pfWhhbmRsZVBob25lSW5wdXQodil7bGV0IG09di50YXJnZXQseD10aGlzLmNsZWFuUGhvbmVOdW1iZXIobS52YWx1ZSksTT10aGlzLmZvcm1hdFBob25lTnVtYmVyKHgpO2lmKG0udmFsdWUhPT1NKXtsZXQgUz1tLnNlbGVjdGlvblN0YXJ0fHwwO20udmFsdWU9TTtsZXQgRj10aGlzLmNhbGN1bGF0ZUN1cnNvclBvc2l0aW9uKHgsTSxTKTttLnNldFNlbGVjdGlvblJhbmdlKEYsRil9dGhpcy5mb3JtYXR0ZWRQaG9uZT1NLHRoaXMudmFsdWU9eCx0aGlzLmNoYW5nZVN1YmplY3QubmV4dCh0aGlzKX1jbGVhblBob25lTnVtYmVyKHYpe3JldHVybiB2LnJlcGxhY2UoL1xEL2csIiIpfWZvcm1hdFBob25lTnVtYmVyKHYpe2xldCBtPXRoaXMuY2xlYW5QaG9uZU51bWJlcih2KTtyZXR1cm4gbS5sZW5ndGg9PT0wPyIiOm0ubGVuZ3RoPD0zP206bS5sZW5ndGg8PTY/YCgke20uc2xpY2UoMCwzKX0pICR7bS5zbGljZSgzKX1gOm0ubGVuZ3RoPD0xMD9gKCR7bS5zbGljZSgwLDMpfSkgJHttLnNsaWNlKDMsNil9LSR7bS5zbGljZSg2KX1gOmArJHttLnNsaWNlKDAsbS5sZW5ndGgtMTApfSAoJHttLnNsaWNlKC0xMCwtNyl9KSAke20uc2xpY2UoLTcsLTQpfS0ke20uc2xpY2UoLTQpfWB9Y2FsY3VsYXRlQ3Vyc29yUG9zaXRpb24odixtLHgpe2xldCBNPTA7Zm9yKGxldCBTPTA7Uzx4JiZTPG0ubGVuZ3RoO1MrKykvXGQvLnRlc3QobVtTXSl8fE0rKztyZXR1cm4gTWF0aC5taW4oeCtNLG0ubGVuZ3RoKX1nZXRWYWx1ZSgpe3JldHVybiB0aGlzLnZhbHVlfXNldFZhbHVlKHYpe3RoaXMudmFsdWU9dix0aGlzLmZvcm1hdHRlZFBob25lPXRoaXMuZm9ybWF0UGhvbmVOdW1iZXIodil9Y29uc3RydWN0b3IoKXtzdXBlciguLi5hcmd1bWVudHMpLGU0KHRoaXMsZyl9c3RhdGlje2U0KGksYSl9fTtyZXR1cm4geT1pfSkoKX0pO3ZhciBUdXQsTHV0PWIoKCk9Pnt1ZSgpO3gxKCk7bTIoKTtUdXQ9KCk9PndgCiAgPGRlZXMtZGVtb3dyYXBwZXIgLnJ1bkFmdGVyUmVuZGVyPSR7YXN5bmMgdD0+e2xldCBlPXQucXVlcnlTZWxlY3RvcigiI3RvZ2dsZS1hbGwtb24iKSxhPXQucXVlcnlTZWxlY3RvcigiI3RvZ2dsZS1hbGwtb2ZmIiksaT10LnF1ZXJ5U2VsZWN0b3JBbGwoIi5mZWF0dXJlLXRvZ2dsZXMgZGVlcy1pbnB1dC10b2dnbGUiKTtlJiZhJiYoZS5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsKCk9PntpLmZvckVhY2gocj0+eyFyLmRpc2FibGVkJiYhci5yZXF1aXJlZCYmKHIudmFsdWU9ITApfSl9KSxhLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIiwoKT0+e2kuZm9yRWFjaChyPT57IXIuZGlzYWJsZWQmJiFyLnJlcXVpcmVkJiYoci52YWx1ZT0hMSl9KX0pKX19PgogICAgPHN0eWxlPgogICAgICAke1FgCiAgICAgICAgLmRlbW8tY29udGFpbmVyIHsKICAgICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICAgICAgZ2FwOiAyNHB4OwogICAgICAgICAgcGFkZGluZzogMjRweDsKICAgICAgICAgIG1heC13aWR0aDogMTIwMHB4OwogICAgICAgICAgbWFyZ2luOiAwIGF1dG87CiAgICAgICAgfQoKICAgICAgICBkZWVzLXBhbmVsIHsKICAgICAgICAgIG1hcmdpbi1ib3R0b206IDI0cHg7CiAgICAgICAgfQoKICAgICAgICBkZWVzLXBhbmVsOmxhc3QtY2hpbGQgewogICAgICAgICAgbWFyZ2luLWJvdHRvbTogMDsKICAgICAgICB9CgogICAgICAgIC50b2dnbGUtZ3JvdXAgewogICAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgICAgICBnYXA6IDE2cHg7CiAgICAgICAgfQoKICAgICAgICAuaG9yaXpvbnRhbC10b2dnbGVzIHsKICAgICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgICBnYXA6IDMycHg7CiAgICAgICAgICBmbGV4LXdyYXA6IHdyYXA7CiAgICAgICAgfQoKICAgICAgICAuaW50ZXJhY3RpdmUtc2VjdGlvbiB7CiAgICAgICAgICBiYWNrZ3JvdW5kOiAke3AuYmRUaGVtZSgiaHNsKDIxMCA0MCUgOTYuMSUpIiwiaHNsKDIxNSAyMC4yJSAxNi44JSkiKX07CiAgICAgICAgICBib3JkZXItcmFkaXVzOiA4cHg7CiAgICAgICAgICBwYWRkaW5nOiAxNnB4OwogICAgICAgICAgbWFyZ2luLXRvcDogMTZweDsKICAgICAgICB9CgogICAgICAgIC5vdXRwdXQtdGV4dCB7CiAgICAgICAgICBmb250LWZhbWlseTogbW9ub3NwYWNlOwogICAgICAgICAgZm9udC1zaXplOiAxM3B4OwogICAgICAgICAgY29sb3I6ICR7cC5iZFRoZW1lKCJoc2woMjE1LjMgMjUlIDI2LjclKSIsImhzbCgyMTAgNDAlIDgwJSkiKX07CiAgICAgICAgICBwYWRkaW5nOiA4cHg7CiAgICAgICAgICBiYWNrZ3JvdW5kOiAke3AuYmRUaGVtZSgiaHNsKDIxMCA0MCUgOTglKSIsImhzbCgyMTUgMjAuMiUgMTEuOCUpIil9OwogICAgICAgICAgYm9yZGVyLXJhZGl1czogNHB4OwogICAgICAgICAgbWluLWhlaWdodDogMjRweDsKICAgICAgICB9CgogICAgICAgIC5zZXR0aW5ncy1zZWN0aW9uIHsKICAgICAgICAgIGJhY2tncm91bmQ6ICR7cC5iZFRoZW1lKCJoc2woMCAwJSA5NyUpIiwiaHNsKDAgMCUgNyUpIil9OwogICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHtwLmJkVGhlbWUoImhzbCgwIDAlIDg5LjglKSIsImhzbCgwIDAlIDE0LjklKSIpfTsKICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDhweDsKICAgICAgICAgIHBhZGRpbmc6IDIwcHg7CiAgICAgICAgfQoKICAgICAgICAuYnV0dG9uLWdyb3VwIHsKICAgICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgICBnYXA6IDhweDsKICAgICAgICAgIG1hcmdpbi1ib3R0b206IDE2cHg7CiAgICAgICAgfQoKICAgICAgICAuZmVhdHVyZS10b2dnbGVzIHsKICAgICAgICAgIGJhY2tncm91bmQ6ICR7cC5iZFRoZW1lKCJoc2woMjEwIDQwJSA5Ni4xJSkiLCJoc2woMjE1IDIwLjIlIDExLjglKSIpfTsKICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICR7cC5iZFRoZW1lKCJoc2woMjE0LjMgMzEuOCUgOTEuNCUpIiwiaHNsKDIxNSAyMC4yJSAxNi44JSkiKX07CiAgICAgICAgICBib3JkZXItcmFkaXVzOiA2cHg7CiAgICAgICAgICBwYWRkaW5nOiAxNnB4OwogICAgICAgIH0KCiAgICAgICAgLnNlY3Rpb24tdGl0bGUgewogICAgICAgICAgZm9udC1zaXplOiAxNnB4OwogICAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDsKICAgICAgICAgIG1hcmdpbi1ib3R0b206IDE2cHg7CiAgICAgICAgICBjb2xvcjogJHtwLmJkVGhlbWUoImhzbCgyMTUuMyAyNSUgOC44JSkiLCJoc2woMjEwIDQwJSA5OCUpIil9OwogICAgICAgIH0KCiAgICAgICAgLmRyYWctaGludCB7CiAgICAgICAgICBmb250LXNpemU6IDEycHg7CiAgICAgICAgICBjb2xvcjogJHtwLmJkVGhlbWUoImhzbCgwIDAlIDQ1LjElKSIsImhzbCgwIDAlIDYzLjklKSIpfTsKICAgICAgICAgIG1hcmdpbi10b3A6IDhweDsKICAgICAgICAgIGZvbnQtc3R5bGU6IGl0YWxpYzsKICAgICAgICB9CiAgICAgIGB9CiAgICA8L3N0eWxlPgoKICAgIDxkaXYgY2xhc3M9ImRlbW8tY29udGFpbmVyIj4KICAgICAgPGRlZXMtcGFuZWwgLnRpdGxlPSR7IkJhc2ljIFRvZ2dsZSJ9IC5zdWJ0aXRsZT0keyJTaW1wbGUgb24vb2ZmIHRvZ2dsZSBzd2l0Y2ggd2l0aCBkcmFnIHN1cHBvcnQifT4KICAgICAgICA8ZGl2IGNsYXNzPSJ0b2dnbGUtZ3JvdXAiPgogICAgICAgICAgPGRlZXMtaW5wdXQtdG9nZ2xlCiAgICAgICAgICAgIC5sYWJlbD0keyJFbmFibGUgZmVhdHVyZSJ9CiAgICAgICAgICAgIC52YWx1ZT0keyExfQogICAgICAgICAgICAua2V5PSR7ImJhc2ljIn0KICAgICAgICAgID48L2RlZXMtaW5wdXQtdG9nZ2xlPgoKICAgICAgICAgIDxkZWVzLWlucHV0LXRvZ2dsZQogICAgICAgICAgICAubGFiZWw9JHsiQWN0aXZlIHRvZ2dsZSJ9CiAgICAgICAgICAgIC52YWx1ZT0keyEwfQogICAgICAgICAgICAua2V5PSR7ImFjdGl2ZSJ9CiAgICAgICAgICA+PC9kZWVzLWlucHV0LXRvZ2dsZT4KCiAgICAgICAgICA8ZGVlcy1pbnB1dC10b2dnbGUKICAgICAgICAgICAgLmxhYmVsPSR7IldpdGggZGVzY3JpcHRpb24ifQogICAgICAgICAgICAudmFsdWU9JHshMX0KICAgICAgICAgICAgLmRlc2NyaXB0aW9uPSR7IlRoaXMgdG9nZ2xlIGhhcyBhZGRpdGlvbmFsIGhlbHBlciB0ZXh0IGV4cGxhaW5pbmcgaXRzIHB1cnBvc2UifQogICAgICAgICAgICAua2V5PSR7IndpdGhEZXNjIn0KICAgICAgICAgID48L2RlZXMtaW5wdXQtdG9nZ2xlPgogICAgICAgIDwvZGl2PgogICAgICAgIDxwIGNsYXNzPSJkcmFnLWhpbnQiPlRpcDogWW91IGNhbiBkcmFnIHRoZSB0b2dnbGUga25vYiB0byBzd2l0Y2ggc3RhdGVzPC9wPgogICAgICA8L2RlZXMtcGFuZWw+CgogICAgICA8ZGVlcy1wYW5lbCAudGl0bGU9JHsiVG9nZ2xlIFN0YXRlcyJ9IC5zdWJ0aXRsZT0keyJEaWZmZXJlbnQgdG9nZ2xlIHN0YXRlcyBhbmQgY29uZmlndXJhdGlvbnMifT4KICAgICAgICA8ZGl2IGNsYXNzPSJ0b2dnbGUtZ3JvdXAiPgogICAgICAgICAgPGRlZXMtaW5wdXQtdG9nZ2xlCiAgICAgICAgICAgIC5sYWJlbD0keyJEZWZhdWx0IChvZmYpIn0KICAgICAgICAgICAgLnZhbHVlPSR7ITF9CiAgICAgICAgICA+PC9kZWVzLWlucHV0LXRvZ2dsZT4KCiAgICAgICAgICA8ZGVlcy1pbnB1dC10b2dnbGUKICAgICAgICAgICAgLmxhYmVsPSR7IkVuYWJsZWQgKG9uKSJ9CiAgICAgICAgICAgIC52YWx1ZT0keyEwfQogICAgICAgICAgPjwvZGVlcy1pbnB1dC10b2dnbGU+CgogICAgICAgICAgPGRlZXMtaW5wdXQtdG9nZ2xlCiAgICAgICAgICAgIC5sYWJlbD0keyJEaXNhYmxlZCAob2ZmKSJ9CiAgICAgICAgICAgIC52YWx1ZT0keyExfQogICAgICAgICAgICAuZGlzYWJsZWQ9JHshMH0KICAgICAgICAgID48L2RlZXMtaW5wdXQtdG9nZ2xlPgoKICAgICAgICAgIDxkZWVzLWlucHV0LXRvZ2dsZQogICAgICAgICAgICAubGFiZWw9JHsiRGlzYWJsZWQgKG9uKSJ9CiAgICAgICAgICAgIC52YWx1ZT0keyEwfQogICAgICAgICAgICAuZGlzYWJsZWQ9JHshMH0KICAgICAgICAgID48L2RlZXMtaW5wdXQtdG9nZ2xlPgoKICAgICAgICAgIDxkZWVzLWlucHV0LXRvZ2dsZQogICAgICAgICAgICAubGFiZWw9JHsiUmVxdWlyZWQgKGFsd2F5cyBvbikifQogICAgICAgICAgICAudmFsdWU9JHshMH0KICAgICAgICAgICAgLnJlcXVpcmVkPSR7ITB9CiAgICAgICAgICAgIC5kZXNjcmlwdGlvbj0keyJUaGlzIHRvZ2dsZSBjYW5ub3QgYmUgdHVybmVkIG9mZiJ9CiAgICAgICAgICA+PC9kZWVzLWlucHV0LXRvZ2dsZT4KICAgICAgICA8L2Rpdj4KICAgICAgPC9kZWVzLXBhbmVsPgoKICAgICAgPGRlZXMtcGFuZWwgLnRpdGxlPSR7Ikhvcml6b250YWwgTGF5b3V0In0gLnN1YnRpdGxlPSR7IlRvZ2dsZXMgYXJyYW5nZWQgaG9yaXpvbnRhbGx5IGZvciBjb21wYWN0IGludGVyZmFjZXMifT4KICAgICAgICA8ZGl2IGNsYXNzPSJob3Jpem9udGFsLXRvZ2dsZXMiPgogICAgICAgICAgPGRlZXMtaW5wdXQtdG9nZ2xlCiAgICAgICAgICAgIC5sYWJlbD0keyJXaUZpIn0KICAgICAgICAgICAgLnZhbHVlPSR7ITB9CiAgICAgICAgICAgIC5sYXlvdXRNb2RlPSR7Imhvcml6b250YWwifQogICAgICAgICAgPjwvZGVlcy1pbnB1dC10b2dnbGU+CgogICAgICAgICAgPGRlZXMtaW5wdXQtdG9nZ2xlCiAgICAgICAgICAgIC5sYWJlbD0keyJCbHVldG9vdGgifQogICAgICAgICAgICAudmFsdWU9JHshMX0KICAgICAgICAgICAgLmxheW91dE1vZGU9JHsiaG9yaXpvbnRhbCJ9CiAgICAgICAgICA+PC9kZWVzLWlucHV0LXRvZ2dsZT4KCiAgICAgICAgICA8ZGVlcy1pbnB1dC10b2dnbGUKICAgICAgICAgICAgLmxhYmVsPSR7IkdQUyJ9CiAgICAgICAgICAgIC52YWx1ZT0keyEwfQogICAgICAgICAgICAubGF5b3V0TW9kZT0keyJob3Jpem9udGFsIn0KICAgICAgICAgID48L2RlZXMtaW5wdXQtdG9nZ2xlPgoKICAgICAgICAgIDxkZWVzLWlucHV0LXRvZ2dsZQogICAgICAgICAgICAubGFiZWw9JHsiTkZDIn0KICAgICAgICAgICAgLnZhbHVlPSR7ITF9CiAgICAgICAgICAgIC5sYXlvdXRNb2RlPSR7Imhvcml6b250YWwifQogICAgICAgICAgPjwvZGVlcy1pbnB1dC10b2dnbGU+CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGVlcy1wYW5lbD4KCiAgICAgIDxkZWVzLXBhbmVsIC50aXRsZT0keyJTZXR0aW5ncyBFeGFtcGxlIn0gLnN1YnRpdGxlPSR7IlRvZ2dsZXMgaW4gYSB0eXBpY2FsIHNldHRpbmdzIGNvbnRleHQifT4KICAgICAgICA8ZGl2IGNsYXNzPSJzZXR0aW5ncy1zZWN0aW9uIj4KICAgICAgICAgIDxoNCBjbGFzcz0ic2VjdGlvbi10aXRsZSI+Tm90aWZpY2F0aW9uIFNldHRpbmdzPC9oND4KCiAgICAgICAgICA8ZGl2IGNsYXNzPSJ0b2dnbGUtZ3JvdXAiPgogICAgICAgICAgICA8ZGVlcy1pbnB1dC10b2dnbGUKICAgICAgICAgICAgICAubGFiZWw9JHsiUHVzaCBub3RpZmljYXRpb25zIn0KICAgICAgICAgICAgICAudmFsdWU9JHshMH0KICAgICAgICAgICAgICAuZGVzY3JpcHRpb249JHsiUmVjZWl2ZSBwdXNoIG5vdGlmaWNhdGlvbnMgb24geW91ciBkZXZpY2UifQogICAgICAgICAgICAgIC5rZXk9JHsicHVzaCJ9CiAgICAgICAgICAgID48L2RlZXMtaW5wdXQtdG9nZ2xlPgoKICAgICAgICAgICAgPGRlZXMtaW5wdXQtdG9nZ2xlCiAgICAgICAgICAgICAgLmxhYmVsPSR7IkVtYWlsIG5vdGlmaWNhdGlvbnMifQogICAgICAgICAgICAgIC52YWx1ZT0keyEwfQogICAgICAgICAgICAgIC5kZXNjcmlwdGlvbj0keyJHZXQgaW1wb3J0YW50IHVwZGF0ZXMgdmlhIGVtYWlsIn0KICAgICAgICAgICAgICAua2V5PSR7ImVtYWlsIn0KICAgICAgICAgICAgPjwvZGVlcy1pbnB1dC10b2dnbGU+CgogICAgICAgICAgICA8ZGVlcy1pbnB1dC10b2dnbGUKICAgICAgICAgICAgICAubGFiZWw9JHsiU291bmQifQogICAgICAgICAgICAgIC52YWx1ZT0keyExfQogICAgICAgICAgICAgIC5kZXNjcmlwdGlvbj0keyJQbGF5IGEgc291bmQgZm9yIG5vdGlmaWNhdGlvbnMifQogICAgICAgICAgICAgIC5rZXk9JHsic291bmQifQogICAgICAgICAgICA+PC9kZWVzLWlucHV0LXRvZ2dsZT4KCiAgICAgICAgICAgIDxkZWVzLWlucHV0LXRvZ2dsZQogICAgICAgICAgICAgIC5sYWJlbD0keyJWaWJyYXRpb24ifQogICAgICAgICAgICAgIC52YWx1ZT0keyEwfQogICAgICAgICAgICAgIC5kZXNjcmlwdGlvbj0keyJWaWJyYXRlIGZvciBub3RpZmljYXRpb25zIn0KICAgICAgICAgICAgICAua2V5PSR7InZpYnJhdGlvbiJ9CiAgICAgICAgICAgID48L2RlZXMtaW5wdXQtdG9nZ2xlPgogICAgICAgICAgPC9kaXY+CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGVlcy1wYW5lbD4KCiAgICAgIDxkZWVzLXBhbmVsIC50aXRsZT0keyJGZWF0dXJlIFRvZ2dsZXMifSAuc3VidGl0bGU9JHsiQmF0Y2ggb3BlcmF0aW9ucyBvbiBtdWx0aXBsZSB0b2dnbGVzIn0+CiAgICAgICAgPGRpdiBjbGFzcz0iYnV0dG9uLWdyb3VwIj4KICAgICAgICAgIDxkZWVzLWJ1dHRvbiBpZD0idG9nZ2xlLWFsbC1vbiIgdHlwZT0ic2Vjb25kYXJ5Ij5FbmFibGUgQWxsPC9kZWVzLWJ1dHRvbj4KICAgICAgICAgIDxkZWVzLWJ1dHRvbiBpZD0idG9nZ2xlLWFsbC1vZmYiIHR5cGU9InNlY29uZGFyeSI+RGlzYWJsZSBBbGw8L2RlZXMtYnV0dG9uPgogICAgICAgIDwvZGl2PgoKICAgICAgICA8ZGl2IGNsYXNzPSJmZWF0dXJlLXRvZ2dsZXMiPgogICAgICAgICAgPGRpdiBjbGFzcz0idG9nZ2xlLWdyb3VwIj4KICAgICAgICAgICAgPGRlZXMtaW5wdXQtdG9nZ2xlCiAgICAgICAgICAgICAgLmxhYmVsPSR7IkRhcmsgTW9kZSJ9CiAgICAgICAgICAgICAgLnZhbHVlPSR7ITB9CiAgICAgICAgICAgICAgLmtleT0keyJkYXJrTW9kZSJ9CiAgICAgICAgICAgID48L2RlZXMtaW5wdXQtdG9nZ2xlPgoKICAgICAgICAgICAgPGRlZXMtaW5wdXQtdG9nZ2xlCiAgICAgICAgICAgICAgLmxhYmVsPSR7IkF1dG8tc2F2ZSJ9CiAgICAgICAgICAgICAgLnZhbHVlPSR7ITB9CiAgICAgICAgICAgICAgLmtleT0keyJhdXRvU2F2ZSJ9CiAgICAgICAgICAgID48L2RlZXMtaW5wdXQtdG9nZ2xlPgoKICAgICAgICAgICAgPGRlZXMtaW5wdXQtdG9nZ2xlCiAgICAgICAgICAgICAgLmxhYmVsPSR7IlNwZWxsIGNoZWNrIn0KICAgICAgICAgICAgICAudmFsdWU9JHshMX0KICAgICAgICAgICAgICAua2V5PSR7InNwZWxsQ2hlY2sifQogICAgICAgICAgICA+PC9kZWVzLWlucHV0LXRvZ2dsZT4KCiAgICAgICAgICAgIDxkZWVzLWlucHV0LXRvZ2dsZQogICAgICAgICAgICAgIC5sYWJlbD0keyJEZXZlbG9wZXIgbW9kZSJ9CiAgICAgICAgICAgICAgLnZhbHVlPSR7ITF9CiAgICAgICAgICAgICAgLmtleT0keyJkZXZNb2RlIn0KICAgICAgICAgICAgPjwvZGVlcy1pbnB1dC10b2dnbGU+CgogICAgICAgICAgICA8ZGVlcy1pbnB1dC10b2dnbGUKICAgICAgICAgICAgICAubGFiZWw9JHsiQmV0YSBmZWF0dXJlcyJ9CiAgICAgICAgICAgICAgLnZhbHVlPSR7ITF9CiAgICAgICAgICAgICAgLmtleT0keyJiZXRhIn0KICAgICAgICAgICAgPjwvZGVlcy1pbnB1dC10b2dnbGU+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICA8L2Rpdj4KICAgICAgPC9kZWVzLXBhbmVsPgoKICAgICAgPGRlZXMtcGFuZWwgLnRpdGxlPSR7IkludGVyYWN0aXZlIEV4YW1wbGUifSAuc3VidGl0bGU9JHsiVG9nZ2xlIHRvIHNlZSB2YWx1ZSBjaGFuZ2VzIGluIHJlYWwtdGltZSJ9PgogICAgICAgIDxkaXYgY2xhc3M9InRvZ2dsZS1ncm91cCI+CiAgICAgICAgICA8ZGVlcy1pbnB1dC10b2dnbGUKICAgICAgICAgICAgLmxhYmVsPSR7IkFpcnBsYW5lIG1vZGUifQogICAgICAgICAgICAudmFsdWU9JHshMX0KICAgICAgICAgICAgQG5ld1ZhbHVlPSR7dD0+e2xldCBlPWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoIiNhaXJwbGFuZS1vdXRwdXQiKTtlJiYoZS50ZXh0Q29udGVudD1gQWlycGxhbmUgbW9kZTogJHt0LmRldGFpbD8iT04iOiJPRkYifWApfX0KICAgICAgICAgID48L2RlZXMtaW5wdXQtdG9nZ2xlPgoKICAgICAgICAgIDxkZWVzLWlucHV0LXRvZ2dsZQogICAgICAgICAgICAubGFiZWw9JHsiRG8gbm90IGRpc3R1cmIifQogICAgICAgICAgICAudmFsdWU9JHshMX0KICAgICAgICAgICAgQG5ld1ZhbHVlPSR7dD0+e2xldCBlPWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoIiNkbmQtb3V0cHV0Iik7ZSYmKGUudGV4dENvbnRlbnQ9YERvIG5vdCBkaXN0dXJiOiAke3QuZGV0YWlsPyJFTkFCTEVEIjoiRElTQUJMRUQifWApfX0KICAgICAgICAgID48L2RlZXMtaW5wdXQtdG9nZ2xlPgogICAgICAgIDwvZGl2PgoKICAgICAgICA8ZGl2IGNsYXNzPSJpbnRlcmFjdGl2ZS1zZWN0aW9uIj4KICAgICAgICAgIDxkaXYgaWQ9ImFpcnBsYW5lLW91dHB1dCIgY2xhc3M9Im91dHB1dC10ZXh0Ij5BaXJwbGFuZSBtb2RlOiBPRkY8L2Rpdj4KICAgICAgICAgIDxkaXYgaWQ9ImRuZC1vdXRwdXQiIGNsYXNzPSJvdXRwdXQtdGV4dCIgc3R5bGU9Im1hcmdpbi10b3A6IDhweDsiPkRvIG5vdCBkaXN0dXJiOiBESVNBQkxFRDwvZGl2PgogICAgICAgIDwvZGl2PgogICAgICA8L2RlZXMtcGFuZWw+CiAgICA8L2Rpdj4KICA8L2RlZXMtZGVtb3dyYXBwZXI+CmB9KTt2YXIgJHV0LFpxLFd4LFhxPWIoKCk9Pnt1ZSgpO1R0KCk7XzEoKTtMdXQoKTtkYSgpO3FlKCk7JHV0PWZ1bmN0aW9uKHQsZSxhLGkscixzKXtmdW5jdGlvbiBuKHgpe2lmKHghPT12b2lkIDAmJnR5cGVvZiB4IT0iZnVuY3Rpb24iKXRocm93IG5ldyBUeXBlRXJyb3IoIkZ1bmN0aW9uIGV4cGVjdGVkIik7cmV0dXJuIHh9Zm9yKHZhciBvPWkua2luZCxkPW89PT0iZ2V0dGVyIj8iZ2V0IjpvPT09InNldHRlciI/InNldCI6InZhbHVlIixjPSFlJiZ0P2kuc3RhdGljP3Q6dC5wcm90b3R5cGU6bnVsbCxoPWV8fChjP09iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoYyxpLm5hbWUpOnt9KSxsLGY9ITEsZz1hLmxlbmd0aC0xO2c+PTA7Zy0tKXt2YXIgeT17fTtmb3IodmFyIHYgaW4gaSl5W3ZdPXY9PT0iYWNjZXNzIj97fTppW3ZdO2Zvcih2YXIgdiBpbiBpLmFjY2Vzcyl5LmFjY2Vzc1t2XT1pLmFjY2Vzc1t2XTt5LmFkZEluaXRpYWxpemVyPWZ1bmN0aW9uKHgpe2lmKGYpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGFkZCBpbml0aWFsaXplcnMgYWZ0ZXIgZGVjb3JhdGlvbiBoYXMgY29tcGxldGVkIik7cy5wdXNoKG4oeHx8bnVsbCkpfTt2YXIgbT0oMCxhW2ddKShvPT09ImFjY2Vzc29yIj97Z2V0OmguZ2V0LHNldDpoLnNldH06aFtkXSx5KTtpZihvPT09ImFjY2Vzc29yIil7aWYobT09PXZvaWQgMCljb250aW51ZTtpZihtPT09bnVsbHx8dHlwZW9mIG0hPSJvYmplY3QiKXRocm93IG5ldyBUeXBlRXJyb3IoIk9iamVjdCBleHBlY3RlZCIpOyhsPW4obS5nZXQpKSYmKGguZ2V0PWwpLChsPW4obS5zZXQpKSYmKGguc2V0PWwpLChsPW4obS5pbml0KSkmJnIudW5zaGlmdChsKX1lbHNlKGw9bihtKSkmJihvPT09ImZpZWxkIj9yLnVuc2hpZnQobCk6aFtkXT1sKX1jJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoYyxpLm5hbWUsaCksZj0hMH0sWnE9ZnVuY3Rpb24odCxlLGEpe2Zvcih2YXIgaT1hcmd1bWVudHMubGVuZ3RoPjIscj0wO3I8ZS5sZW5ndGg7cisrKWE9aT9lW3JdLmNhbGwodCxhKTplW3JdLmNhbGwodCk7cmV0dXJuIGk/YTp2b2lkIDB9LFd4PSgoKT0+e2xldCB0PVtwZSgiZGVlcy1pbnB1dC10b2dnbGUiKV0sZSxhPVtdLGkscj1YZSxzLG49W10sbz1bXTt2YXIgZD1jbGFzcyBleHRlbmRzIHJ7c3RhdGlje2k9dGhpc31zdGF0aWN7bGV0IGM9dHlwZW9mIFN5bWJvbD09ImZ1bmN0aW9uIiYmU3ltYm9sLm1ldGFkYXRhP09iamVjdC5jcmVhdGUocltTeW1ib2wubWV0YWRhdGFdPz9udWxsKTp2b2lkIDA7cz1bSSh7dHlwZTpCb29sZWFuLHJlZmxlY3Q6ITB9KV0sJHV0KHRoaXMsbnVsbCxzLHtraW5kOiJhY2Nlc3NvciIsbmFtZToidmFsdWUiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmg9PiJ2YWx1ZSJpbiBoLGdldDpoPT5oLnZhbHVlLHNldDooaCxsKT0+e2gudmFsdWU9bH19LG1ldGFkYXRhOmN9LG4sbyksJHV0KG51bGwsZT17dmFsdWU6aX0sdCx7a2luZDoiY2xhc3MiLG5hbWU6aS5uYW1lLG1ldGFkYXRhOmN9LG51bGwsYSksZD1pPWUudmFsdWUsYyYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGksU3ltYm9sLm1ldGFkYXRhLHtlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMCx2YWx1ZTpjfSl9c3RhdGljIGRlbW89VHV0O3N0YXRpYyBkZW1vR3JvdXBzPVsiSW5wdXQiXTsjZT1acSh0aGlzLG4sITEpO2dldCB2YWx1ZSgpe3JldHVybiB0aGlzLiNlfXNldCB2YWx1ZShjKXt0aGlzLiNlPWN9Y3VycmVudFg9KFpxKHRoaXMsbyksMCk7aXNEcmFnZ2luZz0hMTtoYXNEcmFnZ2VkPSExO3N0YXJ0WD0wO3RyYWNrV2lkdGg9MzY7dHJhY2tIZWlnaHQ9MjA7a25vYlNpemU9MTQ7cGFkZGluZz0yO21heFRyYXZlbD0xNjtjb25zdHJ1Y3Rvcigpe3N1cGVyKCksdGhpcy5sYWJlbFBvc2l0aW9uPSJyaWdodCJ9c3RhdGljIHN0eWxlcz1bQ2UsLi4uWGUuYmFzZVN0eWxlcyxwLmRlZmF1bHRTdHlsZXMsUWAKICAgICAgKiB7CiAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDsKICAgICAgfQoKICAgICAgOmhvc3QgewogICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgICBjdXJzb3I6IGRlZmF1bHQ7CiAgICAgICAgZm9udC1mYW1pbHk6ICR7SnR9OwogICAgICB9CgogICAgICAubWFpbmNvbnRhaW5lciB7CiAgICAgICAgZGlzcGxheTogaW5saW5lLWZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7CiAgICAgICAgZ2FwOiA4cHg7CiAgICAgICAgY3Vyc29yOiBwb2ludGVyOwogICAgICAgIHVzZXItc2VsZWN0OiBub25lOwogICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjE1cyBlYXNlOwogICAgICB9CgogICAgICAudG9nZ2xlLXRyYWNrIHsKICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgICAgZmxleC1zaHJpbms6IDA7CiAgICAgICAgaGVpZ2h0OiAyMHB4OwogICAgICAgIHdpZHRoOiAzNnB4OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDEwcHg7CiAgICAgICAgYmFja2dyb3VuZDogJHtwLmJkVGhlbWUoImhzbCgwIDAlIDEwMCUpIiwiaHNsKDAgMCUgMy45JSkiKX07CiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHtwLmJkVGhlbWUoImhzbCgwIDAlIDg5LjglKSIsImhzbCgwIDAlIDE0LjklKSIpfTsKICAgICAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjE1cyBlYXNlOwogICAgICAgIG1hcmdpbi10b3A6IDFweDsKICAgICAgfQoKICAgICAgLm1haW5jb250YWluZXI6aG92ZXIgLnRvZ2dsZS10cmFjayB7CiAgICAgICAgYm9yZGVyLWNvbG9yOiAke3AuYmRUaGVtZSgiaHNsKDAgMCUgNzkuOCUpIiwiaHNsKDAgMCUgMjAuOSUpIil9OwogICAgICB9CgogICAgICA6aG9zdChbdmFsdWVdKSAudG9nZ2xlLXRyYWNrIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke3AuYmRUaGVtZSgiaHNsKDIyMi4yIDQ3LjQlIDUxLjIlKSIsImhzbCgyMTcuMiA5MS4yJSA1OS44JSkiKX07CiAgICAgICAgYm9yZGVyLWNvbG9yOiAke3AuYmRUaGVtZSgiaHNsKDIyMi4yIDQ3LjQlIDUxLjIlKSIsImhzbCgyMTcuMiA5MS4yJSA1OS44JSkiKX07CiAgICAgIH0KCiAgICAgIC50b2dnbGUtdHJhY2s6Zm9jdXMtdmlzaWJsZSB7CiAgICAgICAgb3V0bGluZTogbm9uZTsKICAgICAgICBib3gtc2hhZG93OiAwIDAgMCAzcHggJHtwLmJkVGhlbWUoImhzbCgyMjIuMiA0Ny40JSA1MS4yJSAvIDAuMSkiLCJoc2woMjE3LjIgOTEuMiUgNTkuOCUgLyAwLjEpIil9OwogICAgICB9CgogICAgICAudG9nZ2xlLWtub2IgewogICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgICB0b3A6IDJweDsKICAgICAgICB3aWR0aDogMTRweDsKICAgICAgICBoZWlnaHQ6IDE0cHg7CiAgICAgICAgYm9yZGVyLXJhZGl1czogN3B4OwogICAgICAgIGJhY2tncm91bmQ6ICR7cC5iZFRoZW1lKCJoc2woMCAwJSA2My45JSkiLCJoc2woMCAwJSA0NS4xJSkiKX07CiAgICAgICAgdHJhbnNpdGlvbjogbGVmdCAwLjE1cyBlYXNlLCBiYWNrZ3JvdW5kIDAuMTVzIGVhc2U7CiAgICAgICAgdG91Y2gtYWN0aW9uOiBub25lOwogICAgICB9CgogICAgICAudG9nZ2xlLWtub2IuZHJhZ2dpbmcgewogICAgICAgIHRyYW5zaXRpb246IGJhY2tncm91bmQgMC4xNXMgZWFzZTsKICAgICAgfQoKICAgICAgOmhvc3QoW3ZhbHVlXSkgLnRvZ2dsZS1rbm9iIHsKICAgICAgICBiYWNrZ3JvdW5kOiB3aGl0ZTsKICAgICAgfQoKICAgICAgLyogRGlzYWJsZWQgc3RhdGUgKi8KICAgICAgLm1haW5jb250YWluZXIuZGlzYWJsZWQgewogICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7CiAgICAgICAgb3BhY2l0eTogMC41OwogICAgICB9CgogICAgICAudG9nZ2xlLXRyYWNrLmRpc2FibGVkIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke3AuYmRUaGVtZSgiaHNsKDAgMCUgOTUuMSUpIiwiaHNsKDAgMCUgMTQuOSUpIil9OwogICAgICAgIGJvcmRlci1jb2xvcjogJHtwLmJkVGhlbWUoImhzbCgwIDAlIDg5LjglKSIsImhzbCgwIDAlIDE0LjklKSIpfTsKICAgICAgfQoKICAgICAgLyogUmVxdWlyZWQgc3RhdGUgKGxvY2tlZCBvbikgKi8KICAgICAgOmhvc3QoW3JlcXVpcmVkXVt2YWx1ZV0pIC50b2dnbGUtdHJhY2sgewogICAgICAgIGJhY2tncm91bmQ6ICR7cC5iZFRoZW1lKCJoc2woMjIyLjIgNDcuNCUgNjEuMiUpIiwiaHNsKDIxNy4yIDkxLjIlIDQ5LjglKSIpfTsKICAgICAgICBib3JkZXItY29sb3I6ICR7cC5iZFRoZW1lKCJoc2woMjIyLjIgNDcuNCUgNjEuMiUpIiwiaHNsKDIxNy4yIDkxLjIlIDQ5LjglKSIpfTsKICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkOwogICAgICB9CgogICAgICA6aG9zdChbcmVxdWlyZWRdW3ZhbHVlXSkgLnRvZ2dsZS1rbm9iIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke3AuYmRUaGVtZSgiaHNsKDAgMCUgODUlKSIsImhzbCgwIDAlIDcwJSkiKX07CiAgICAgIH0KCiAgICAgIC8qIExhYmVsICovCiAgICAgIC5sYWJlbC1jb250YWluZXIgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgICBnYXA6IDJweDsKICAgICAgICBmbGV4OiAxOwogICAgICB9CgogICAgICAudG9nZ2xlLWxhYmVsIHsKICAgICAgICBmb250LXNpemU6IDE0cHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDsKICAgICAgICBsaW5lLWhlaWdodDogMjBweDsKICAgICAgICBjb2xvcjogJHtwLmJkVGhlbWUoImhzbCgwIDAlIDE1JSkiLCJoc2woMCAwJSA5MCUpIil9OwogICAgICAgIHRyYW5zaXRpb246IGNvbG9yIDAuMTVzIGVhc2U7CiAgICAgICAgbGV0dGVyLXNwYWNpbmc6IC0wLjAxZW07CiAgICAgIH0KCiAgICAgIC5tYWluY29udGFpbmVyOmhvdmVyIC50b2dnbGUtbGFiZWwgewogICAgICAgIGNvbG9yOiAke3AuYmRUaGVtZSgiaHNsKDAgMCUgOSUpIiwiaHNsKDAgMCUgOTUlKSIpfTsKICAgICAgfQoKICAgICAgLm1haW5jb250YWluZXIuZGlzYWJsZWQ6aG92ZXIgLnRvZ2dsZS1sYWJlbCB7CiAgICAgICAgY29sb3I6ICR7cC5iZFRoZW1lKCJoc2woMCAwJSAxNSUpIiwiaHNsKDAgMCUgOTAlKSIpfTsKICAgICAgfQoKICAgICAgLyogRGVzY3JpcHRpb24gKi8KICAgICAgLmRlc2NyaXB0aW9uLXRleHQgewogICAgICAgIGZvbnQtc2l6ZTogMTJweDsKICAgICAgICBjb2xvcjogJHtwLmJkVGhlbWUoImhzbCgwIDAlIDQ1LjElKSIsImhzbCgwIDAlIDYzLjklKSIpfTsKICAgICAgICBsaW5lLWhlaWdodDogMS41OwogICAgICB9CiAgICBgXTtyZW5kZXIoKXtyZXR1cm4gd2AKICAgICAgPGRpdiBjbGFzcz0iaW5wdXQtd3JhcHBlciI+CiAgICAgICAgPGRpdiBjbGFzcz0ibWFpbmNvbnRhaW5lciAke3RoaXMuZGlzYWJsZWQ/ImRpc2FibGVkIjoiIn0iIEBjbGljaz0iJHt0aGlzLmhhbmRsZUNsaWNrfSI+CiAgICAgICAgICA8ZGl2CiAgICAgICAgICAgIGNsYXNzPSJ0b2dnbGUtdHJhY2sgJHt0aGlzLmRpc2FibGVkPyJkaXNhYmxlZCI6IiJ9IgogICAgICAgICAgICB0YWJpbmRleD0iJHt0aGlzLmRpc2FibGVkPyItMSI6IjAifSIKICAgICAgICAgICAgQGtleWRvd249IiR7dGhpcy5oYW5kbGVLZXlkb3dufSIKICAgICAgICAgID4KICAgICAgICAgICAgPGRpdgogICAgICAgICAgICAgIGNsYXNzPSJ0b2dnbGUta25vYiIKICAgICAgICAgICAgICBzdHlsZT0ibGVmdDogJHt0aGlzLnBhZGRpbmcrdGhpcy5jdXJyZW50WH1weDsiCiAgICAgICAgICAgICAgQHBvaW50ZXJkb3duPSIke3RoaXMub25Qb2ludGVyRG93bn0iCiAgICAgICAgICAgICAgQHBvaW50ZXJtb3ZlPSIke3RoaXMub25Qb2ludGVyTW92ZX0iCiAgICAgICAgICAgICAgQHBvaW50ZXJ1cD0iJHt0aGlzLm9uUG9pbnRlclVwfSIKICAgICAgICAgICAgICBAcG9pbnRlcmNhbmNlbD0iJHt0aGlzLm9uUG9pbnRlclVwfSIKICAgICAgICAgICAgPjwvZGl2PgogICAgICAgICAgPC9kaXY+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJsYWJlbC1jb250YWluZXIiPgogICAgICAgICAgICAke3RoaXMubGFiZWw/d2A8ZGl2IGNsYXNzPSJ0b2dnbGUtbGFiZWwiPiR7dGhpcy5sYWJlbH08L2Rpdj5gOiIifQogICAgICAgICAgICAke3RoaXMuZGVzY3JpcHRpb24/d2A8ZGl2IGNsYXNzPSJkZXNjcmlwdGlvbi10ZXh0Ij4ke3RoaXMuZGVzY3JpcHRpb259PC9kaXY+YDoiIn0KICAgICAgICAgIDwvZGl2PgogICAgICAgIDwvZGl2PgogICAgICA8L2Rpdj4KICAgIGB9YXN5bmMgZmlyc3RVcGRhdGVkKGMpe2F3YWl0IHN1cGVyLmZpcnN0VXBkYXRlZChjKSx0aGlzLnJlcXVpcmVkJiYhdGhpcy52YWx1ZSYmKHRoaXMudmFsdWU9ITApLHRoaXMuY3VycmVudFg9dGhpcy52YWx1ZT90aGlzLm1heFRyYXZlbDowLHRoaXMucmVxdWVzdFVwZGF0ZSgpfWFzeW5jIGhhbmRsZUNsaWNrKGMpe2lmKHRoaXMuaXNEcmFnZ2luZ3x8dGhpcy5oYXNEcmFnZ2VkKXtjLnN0b3BQcm9wYWdhdGlvbigpLGMucHJldmVudERlZmF1bHQoKTtyZXR1cm59aWYoIXRoaXMuZGlzYWJsZWQpe2lmKHRoaXMucmVxdWlyZWQpe3RoaXMuY3VycmVudFg9dGhpcy5tYXhUcmF2ZWwsdGhpcy5yZXF1ZXN0VXBkYXRlKCksYXdhaXQgbmV3IFByb21pc2UoaD0+c2V0VGltZW91dChoLDEwKSksdGhpcy5jdXJyZW50WD10aGlzLm1heFRyYXZlbC0zLHRoaXMucmVxdWVzdFVwZGF0ZSgpLGF3YWl0IE10LnNtYXJ0ZGVsYXkuZGVsYXlGb3IoMTUwKSx0aGlzLmN1cnJlbnRYPXRoaXMubWF4VHJhdmVsLHRoaXMucmVxdWVzdFVwZGF0ZSgpO3JldHVybn1jLnN0b3BQcm9wYWdhdGlvbigpLGMucHJldmVudERlZmF1bHQoKSx0aGlzLnZhbHVlPSF0aGlzLnZhbHVlLHRoaXMuY3VycmVudFg9dGhpcy52YWx1ZT90aGlzLm1heFRyYXZlbDowLHRoaXMucmVxdWVzdFVwZGF0ZSgpLHRoaXMuZGlzcGF0Y2hFdmVudChuZXcgQ3VzdG9tRXZlbnQoIm5ld1ZhbHVlIix7ZGV0YWlsOnRoaXMudmFsdWUsYnViYmxlczohMH0pKSx0aGlzLmNoYW5nZVN1YmplY3QubmV4dCh0aGlzKSxNdC5zbWFydGRlbGF5LmRlbGF5Rm9yKDApLnRoZW4oKCk9Pnt0aGlzLmhhc0RyYWdnZWQ9ITF9KX19b25Qb2ludGVyRG93bihjKXt0aGlzLnJlcXVpcmVkfHx0aGlzLmRpc2FibGVkfHwodGhpcy5pc0RyYWdnaW5nPSEwLHRoaXMuc3RhcnRYPWMuY2xpZW50WC10aGlzLmN1cnJlbnRYLGMudGFyZ2V0LnNldFBvaW50ZXJDYXB0dXJlKGMucG9pbnRlcklkKSl9b25Qb2ludGVyTW92ZShjKXtpZighdGhpcy5pc0RyYWdnaW5nKXJldHVybjtsZXQgaD1jLmNsaWVudFgtdGhpcy5zdGFydFg7dGhpcy5oYXNEcmFnZ2VkPSEwO2xldCBsPXRoaXMuc2hhZG93Um9vdD8ucXVlcnlTZWxlY3RvcigiLnRvZ2dsZS1rbm9iIik7bCYmbC5jbGFzc0xpc3QuYWRkKCJkcmFnZ2luZyIpLHRoaXMuY3VycmVudFg9TWF0aC5tYXgoMCxNYXRoLm1pbihoLHRoaXMubWF4VHJhdmVsKSksdGhpcy5yZXF1ZXN0VXBkYXRlKCl9b25Qb2ludGVyVXAoYyl7aWYoIXRoaXMuaXNEcmFnZ2luZ3x8KGMudGFyZ2V0LnJlbGVhc2VQb2ludGVyQ2FwdHVyZShjLnBvaW50ZXJJZCksdGhpcy5pc0RyYWdnaW5nPSExLCF0aGlzLmhhc0RyYWdnZWQpKXJldHVybjtsZXQgaD10aGlzLnNoYWRvd1Jvb3Q/LnF1ZXJ5U2VsZWN0b3IoIi50b2dnbGUta25vYiIpO2gmJmguY2xhc3NMaXN0LnJlbW92ZSgiZHJhZ2dpbmciKTtsZXQgbD10aGlzLm1heFRyYXZlbC8yO3RoaXMudmFsdWU9dGhpcy5jdXJyZW50WD5sLHRoaXMuY3VycmVudFg9dGhpcy52YWx1ZT90aGlzLm1heFRyYXZlbDowLHRoaXMucmVxdWVzdFVwZGF0ZSgpLHRoaXMuZGlzcGF0Y2hFdmVudChuZXcgQ3VzdG9tRXZlbnQoIm5ld1ZhbHVlIix7ZGV0YWlsOnRoaXMudmFsdWUsYnViYmxlczohMH0pKSx0aGlzLmNoYW5nZVN1YmplY3QubmV4dCh0aGlzKSxNdC5zbWFydGRlbGF5LmRlbGF5Rm9yKDApLnRoZW4oKCk9Pnt0aGlzLmhhc0RyYWdnZWQ9ITF9KX11cGRhdGVkKGMpe3N1cGVyLnVwZGF0ZWQoYyksYy5oYXMoInZhbHVlIikmJiF0aGlzLmlzRHJhZ2dpbmcmJiF0aGlzLmhhc0RyYWdnZWQmJih0aGlzLmN1cnJlbnRYPXRoaXMudmFsdWU/dGhpcy5tYXhUcmF2ZWw6MCx0aGlzLnJlcXVlc3RVcGRhdGUoKSl9aGFuZGxlS2V5ZG93bihjKXsoYy5rZXk9PT0iICJ8fGMua2V5PT09IkVudGVyIikmJihjLnByZXZlbnREZWZhdWx0KCksdGhpcy5oYW5kbGVDbGljayhjKSl9Z2V0VmFsdWUoKXtyZXR1cm4gdGhpcy52YWx1ZX1zZXRWYWx1ZShjKXt0aGlzLnZhbHVlPWN9Zm9jdXMoKXtsZXQgYz10aGlzLnNoYWRvd1Jvb3Q/LnF1ZXJ5U2VsZWN0b3IoIi50b2dnbGUtdHJhY2siKTtjJiZjLmZvY3VzKCl9c3RhdGlje1pxKGksYSl9fTtyZXR1cm4gZD1pfSkoKX0pO3ZhciBBdXQsRHV0PWIoKCk9Pnt1ZSgpO0F1dD0oKT0+d2AKICA8ZGVlcy1kZW1vd3JhcHBlcj4KICAgIDxzdHlsZT4KICAgICAgJHtRYAogICAgICAgIC5kZW1vLWNvbnRhaW5lciB7CiAgICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgICAgIGdhcDogMjRweDsKICAgICAgICAgIHBhZGRpbmc6IDI0cHg7CiAgICAgICAgICBtYXgtd2lkdGg6IDEyMDBweDsKICAgICAgICAgIG1hcmdpbjogMCBhdXRvOwogICAgICAgIH0KICAgICAgICAKICAgICAgICAuaW5wdXQtZ3JvdXAgewogICAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgICAgICBnYXA6IDE2cHg7CiAgICAgICAgfQoKICAgICAgICAuaG9yaXpvbnRhbC1ncm91cCB7CiAgICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgICAgZ2FwOiAyNHB4OwogICAgICAgICAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7CiAgICAgICAgfQogICAgICAgIAogICAgICAgIC5pbmZvLWJveCB7CiAgICAgICAgICBtYXJnaW4tdG9wOiAxNnB4OwogICAgICAgICAgcGFkZGluZzogMTJweDsKICAgICAgICAgIGJhY2tncm91bmQ6ICNlM2YyZmQ7CiAgICAgICAgICBib3JkZXItcmFkaXVzOiA0cHg7CiAgICAgICAgICBmb250LXNpemU6IDE0cHg7CiAgICAgICAgICBjb2xvcjogIzE5NzZkMjsKICAgICAgICB9CiAgICAgICAgCiAgICAgICAgQG1lZGlhIChwcmVmZXJzLWNvbG9yLXNjaGVtZTogZGFyaykgewogICAgICAgICAgLmluZm8tYm94IHsKICAgICAgICAgICAgYmFja2dyb3VuZDogIzFlM2E1ZjsKICAgICAgICAgICAgY29sb3I6ICM5MGNhZjk7CiAgICAgICAgICB9CiAgICAgICAgfQogICAgICBgfQogICAgPC9zdHlsZT4KICAgIAogICAgPGRpdiBjbGFzcz0iZGVtby1jb250YWluZXIiPgogICAgICA8ZGVlcy1wYW5lbCAudGl0bGU9JHsiQmFzaWMgVHlwZSBMaXN0In0gLnN1YnRpdGxlPSR7IkFkZCBhbmQgcmVtb3ZlIGl0ZW1zIGZyb20gYSBsaXN0In0+CiAgICAgICAgPGRpdiBjbGFzcz0iaW5wdXQtZ3JvdXAiPgogICAgICAgICAgPGRlZXMtaW5wdXQtdHlwZWxpc3QKICAgICAgICAgICAgLmxhYmVsPSR7IlRhZ3MifQogICAgICAgICAgICAuZGVzY3JpcHRpb249JHsiQWRkIHRhZ3MgYnkgdHlwaW5nIGFuZCBwcmVzc2luZyBFbnRlciJ9CiAgICAgICAgICAgIC52YWx1ZT0ke1siamF2YXNjcmlwdCIsInR5cGVzY3JpcHQiLCJ3ZWItY29tcG9uZW50cyJdfQogICAgICAgICAgPjwvZGVlcy1pbnB1dC10eXBlbGlzdD4KCiAgICAgICAgICA8ZGVlcy1pbnB1dC10eXBlbGlzdAogICAgICAgICAgICAubGFiZWw9JHsiVGVhbSBNZW1iZXJzIn0KICAgICAgICAgICAgLmRlc2NyaXB0aW9uPSR7IkFkZCBlbWFpbCBhZGRyZXNzZXMgb2YgdGVhbSBtZW1iZXJzIn0KICAgICAgICAgICAgLnZhbHVlPSR7WyJhbGljZUBleGFtcGxlLmNvbSIsImJvYkBleGFtcGxlLmNvbSJdfQogICAgICAgICAgPjwvZGVlcy1pbnB1dC10eXBlbGlzdD4KICAgICAgICA8L2Rpdj4KICAgICAgPC9kZWVzLXBhbmVsPgogICAgICAKICAgICAgPGRlZXMtcGFuZWwgLnRpdGxlPSR7IlNraWxscyAmIEtleXdvcmRzIn0gLnN1YnRpdGxlPSR7Ik1hbmFnZSBsaXN0cyBvZiBza2lsbHMgYW5kIGtleXdvcmRzIn0+CiAgICAgICAgPGRpdiBjbGFzcz0iaW5wdXQtZ3JvdXAiPgogICAgICAgICAgPGRlZXMtaW5wdXQtdHlwZWxpc3QKICAgICAgICAgICAgLmxhYmVsPSR7IllvdXIgU2tpbGxzIn0KICAgICAgICAgICAgLmRlc2NyaXB0aW9uPSR7Ikxpc3QgeW91ciBwcm9mZXNzaW9uYWwgc2tpbGxzIn0KICAgICAgICAgICAgLnZhbHVlPSR7WyJIVE1MIiwiQ1NTIiwiSmF2YVNjcmlwdCIsIk5vZGUuanMiLCJSZWFjdCJdfQogICAgICAgICAgPjwvZGVlcy1pbnB1dC10eXBlbGlzdD4KCiAgICAgICAgICA8ZGl2IGNsYXNzPSJob3Jpem9udGFsLWdyb3VwIj4KICAgICAgICAgIDxkZWVzLWlucHV0LXR5cGVsaXN0CiAgICAgICAgICAgIC5sYWJlbD0keyJDYXRlZ29yaWVzIn0KICAgICAgICAgICAgLmxheW91dE1vZGU9JHsiaG9yaXpvbnRhbCJ9CiAgICAgICAgICAgIC52YWx1ZT0ke1siVGVjaG5vbG9neSIsIkRlc2lnbiIsIkJ1c2luZXNzIl19CiAgICAgICAgICA+PC9kZWVzLWlucHV0LXR5cGVsaXN0PgogICAgICAgICAgCiAgICAgICAgICA8ZGVlcy1pbnB1dC10eXBlbGlzdAogICAgICAgICAgICAubGFiZWw9JHsiS2V5d29yZHMifQogICAgICAgICAgICAubGF5b3V0TW9kZT0keyJob3Jpem9udGFsIn0KICAgICAgICAgICAgLnZhbHVlPSR7WyJpbm5vdmF0aW9uIiwic3RhcnR1cCIsImdyb3d0aCJdfQogICAgICAgICAgPjwvZGVlcy1pbnB1dC10eXBlbGlzdD4KICAgICAgICA8L2Rpdj4KICAgICAgICA8L2Rpdj4KICAgICAgPC9kZWVzLXBhbmVsPgogICAgICAKICAgICAgPGRlZXMtcGFuZWwgLnRpdGxlPSR7IlJlcXVpcmVkICYgRGlzYWJsZWQgU3RhdGVzIn0gLnN1YnRpdGxlPSR7IkRpZmZlcmVudCBpbnB1dCBzdGF0ZXMgZm9yIHZhbGlkYXRpb24ifT4KICAgICAgICA8ZGl2IGNsYXNzPSJpbnB1dC1ncm91cCI+CiAgICAgICAgICA8ZGVlcy1pbnB1dC10eXBlbGlzdAogICAgICAgICAgICAubGFiZWw9JHsiUHJvamVjdCBEZXBlbmRlbmNpZXMifQogICAgICAgICAgICAuZGVzY3JpcHRpb249JHsiTGlzdCBhbGwgcmVxdWlyZWQgbnBtIHBhY2thZ2VzIn0KICAgICAgICAgICAgLnJlcXVpcmVkPSR7ITB9CiAgICAgICAgICAgIC52YWx1ZT0ke1siQGRlc2lnbi5lc3RhdGUvZGVlcy1lbGVtZW50IiwiQGRlc2lnbi5lc3RhdGUvZGVlcy1kb210b29scyJdfQogICAgICAgICAgPjwvZGVlcy1pbnB1dC10eXBlbGlzdD4KCiAgICAgICAgICA8ZGVlcy1pbnB1dC10eXBlbGlzdAogICAgICAgICAgICAubGFiZWw9JHsiU3lzdGVtIFRhZ3MifQogICAgICAgICAgICAuZGVzY3JpcHRpb249JHsiVGhlc2UgdGFncyBhcmUgbWFuYWdlZCBieSB0aGUgc3lzdGVtIn0KICAgICAgICAgICAgLmRpc2FibGVkPSR7ITB9CiAgICAgICAgICAgIC52YWx1ZT0ke1sic3lzdGVtIiwicHJvdGVjdGVkIiwicmVhZG9ubHkiXX0KICAgICAgICAgID48L2RlZXMtaW5wdXQtdHlwZWxpc3Q+CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGVlcy1wYW5lbD4KICAgICAgCiAgICAgIDxkZWVzLXBhbmVsIC50aXRsZT0keyJBcnRpY2xlIFB1Ymxpc2hpbmcgRm9ybSJ9IC5zdWJ0aXRsZT0keyJDb21wbGV0ZSBmb3JtIHdpdGggdGFnIG1hbmFnZW1lbnQifT4KICAgICAgICA8ZGVlcy1mb3JtPgogICAgICAgICAgPGRlZXMtaW5wdXQtdGV4dCAubGFiZWw9JHsiQXJ0aWNsZSBUaXRsZSJ9IC5yZXF1aXJlZD0keyEwfT48L2RlZXMtaW5wdXQtdGV4dD4KICAgICAgICAgIDxkZWVzLWlucHV0LXRleHQgCiAgICAgICAgICAgIC5sYWJlbD0keyJTdW1tYXJ5In0gCiAgICAgICAgICAgIC5pbnB1dFR5cGU9JHsidGV4dGFyZWEifQogICAgICAgICAgICAuZGVzY3JpcHRpb249JHsiQnJpZWYgZGVzY3JpcHRpb24gb2YgdGhlIGFydGljbGUifQogICAgICAgICAgPjwvZGVlcy1pbnB1dC10ZXh0PgogICAgICAgICAgPGRlZXMtaW5wdXQtdHlwZWxpc3QKICAgICAgICAgICAgLmxhYmVsPSR7IlRhZ3MifQogICAgICAgICAgICAuZGVzY3JpcHRpb249JHsiQWRkIHJlbGV2YW50IHRhZ3MgZm9yIGJldHRlciBkaXNjb3ZlcmFiaWxpdHkifQogICAgICAgICAgICAudmFsdWU9JHtbInR1dG9yaWFsIiwid2ViLWRldmVsb3BtZW50Il19CiAgICAgICAgICA+PC9kZWVzLWlucHV0LXR5cGVsaXN0PgogICAgICAgICAgPGRlZXMtaW5wdXQtdHlwZWxpc3QKICAgICAgICAgICAgLmxhYmVsPSR7IkNvLUF1dGhvcnMifQogICAgICAgICAgICAuZGVzY3JpcHRpb249JHsiQWRkIGVtYWlsIGFkZHJlc3NlcyBvZiBjby1hdXRob3JzIn0KICAgICAgICAgID48L2RlZXMtaW5wdXQtdHlwZWxpc3Q+CiAgICAgICAgPC9kZWVzLWZvcm0+CiAgICAgICAgCiAgICAgICAgPGRpdiBjbGFzcz0iaW5mby1ib3giPgogICAgICAgICAgPHN0cm9uZz5UaXA6PC9zdHJvbmc+IFR5cGUgYSB2YWx1ZSBhbmQgcHJlc3MgRW50ZXIgdG8gYWRkIGl0IHRvIHRoZSBsaXN0LiBDbGljayBvbiBhbnkgaXRlbSB0byByZW1vdmUgaXQuCiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGVlcy1wYW5lbD4KICAgIDwvZGl2PgogIDwvZGVlcy1kZW1vd3JhcHBlcj4KYH0pO3ZhciBLcSxNOCxHeCxRcT1iKCgpPT57dWUoKTtUdCgpO18xKCk7RHV0KCk7cWUoKTtLcT1mdW5jdGlvbih0LGUsYSxpLHIscyl7ZnVuY3Rpb24gbih4KXtpZih4IT09dm9pZCAwJiZ0eXBlb2YgeCE9ImZ1bmN0aW9uIil0aHJvdyBuZXcgVHlwZUVycm9yKCJGdW5jdGlvbiBleHBlY3RlZCIpO3JldHVybiB4fWZvcih2YXIgbz1pLmtpbmQsZD1vPT09ImdldHRlciI/ImdldCI6bz09PSJzZXR0ZXIiPyJzZXQiOiJ2YWx1ZSIsYz0hZSYmdD9pLnN0YXRpYz90OnQucHJvdG90eXBlOm51bGwsaD1lfHwoYz9PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGMsaS5uYW1lKTp7fSksbCxmPSExLGc9YS5sZW5ndGgtMTtnPj0wO2ctLSl7dmFyIHk9e307Zm9yKHZhciB2IGluIGkpeVt2XT12PT09ImFjY2VzcyI/e306aVt2XTtmb3IodmFyIHYgaW4gaS5hY2Nlc3MpeS5hY2Nlc3Nbdl09aS5hY2Nlc3Nbdl07eS5hZGRJbml0aWFsaXplcj1mdW5jdGlvbih4KXtpZihmKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBhZGQgaW5pdGlhbGl6ZXJzIGFmdGVyIGRlY29yYXRpb24gaGFzIGNvbXBsZXRlZCIpO3MucHVzaChuKHh8fG51bGwpKX07dmFyIG09KDAsYVtnXSkobz09PSJhY2Nlc3NvciI/e2dldDpoLmdldCxzZXQ6aC5zZXR9OmhbZF0seSk7aWYobz09PSJhY2Nlc3NvciIpe2lmKG09PT12b2lkIDApY29udGludWU7aWYobT09PW51bGx8fHR5cGVvZiBtIT0ib2JqZWN0Iil0aHJvdyBuZXcgVHlwZUVycm9yKCJPYmplY3QgZXhwZWN0ZWQiKTsobD1uKG0uZ2V0KSkmJihoLmdldD1sKSwobD1uKG0uc2V0KSkmJihoLnNldD1sKSwobD1uKG0uaW5pdCkpJiZyLnVuc2hpZnQobCl9ZWxzZShsPW4obSkpJiYobz09PSJmaWVsZCI/ci51bnNoaWZ0KGwpOmhbZF09bCl9YyYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGMsaS5uYW1lLGgpLGY9ITB9LE04PWZ1bmN0aW9uKHQsZSxhKXtmb3IodmFyIGk9YXJndW1lbnRzLmxlbmd0aD4yLHI9MDtyPGUubGVuZ3RoO3IrKylhPWk/ZVtyXS5jYWxsKHQsYSk6ZVtyXS5jYWxsKHQpO3JldHVybiBpP2E6dm9pZCAwfSxHeD0oKCk9PntsZXQgdD1bcGUoImRlZXMtaW5wdXQtdHlwZWxpc3QiKV0sZSxhPVtdLGkscj1YZSxzLG49W10sbz1bXSxkLGM9W10saD1bXTt2YXIgbD1jbGFzcyBleHRlbmRzIHJ7c3RhdGlje2k9dGhpc31zdGF0aWN7bGV0IGY9dHlwZW9mIFN5bWJvbD09ImZ1bmN0aW9uIiYmU3ltYm9sLm1ldGFkYXRhP09iamVjdC5jcmVhdGUocltTeW1ib2wubWV0YWRhdGFdPz9udWxsKTp2b2lkIDA7cz1bSSh7dHlwZTpBcnJheX0pXSxkPVtKKCldLEtxKHRoaXMsbnVsbCxzLHtraW5kOiJhY2Nlc3NvciIsbmFtZToidmFsdWUiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmc9PiJ2YWx1ZSJpbiBnLGdldDpnPT5nLnZhbHVlLHNldDooZyx5KT0+e2cudmFsdWU9eX19LG1ldGFkYXRhOmZ9LG4sbyksS3EodGhpcyxudWxsLGQse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJpbnB1dFZhbHVlIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpnPT4iaW5wdXRWYWx1ZSJpbiBnLGdldDpnPT5nLmlucHV0VmFsdWUsc2V0OihnLHkpPT57Zy5pbnB1dFZhbHVlPXl9fSxtZXRhZGF0YTpmfSxjLGgpLEtxKG51bGwsZT17dmFsdWU6aX0sdCx7a2luZDoiY2xhc3MiLG5hbWU6aS5uYW1lLG1ldGFkYXRhOmZ9LG51bGwsYSksbD1pPWUudmFsdWUsZiYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGksU3ltYm9sLm1ldGFkYXRhLHtlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMCx2YWx1ZTpmfSl9c3RhdGljIGRlbW89QXV0O3N0YXRpYyBkZW1vR3JvdXBzPVsiSW5wdXQiXTsjZT1NOCh0aGlzLG4sW10pO2dldCB2YWx1ZSgpe3JldHVybiB0aGlzLiNlfXNldCB2YWx1ZShmKXt0aGlzLiNlPWZ9I3Q9KE04KHRoaXMsbyksTTgodGhpcyxjLCIiKSk7Z2V0IGlucHV0VmFsdWUoKXtyZXR1cm4gdGhpcy4jdH1zZXQgaW5wdXRWYWx1ZShmKXt0aGlzLiN0PWZ9c3RhdGljIHN0eWxlcz1bQ2UsLi4uWGUuYmFzZVN0eWxlcyxwLmRlZmF1bHRTdHlsZXMsUWAKICAgICAgLyogVE9ETzogTWlncmF0ZSBoYXJkY29kZWQgdmFsdWVzIHRvIC0tZGVlcy0qIENTUyB2YXJpYWJsZXMgKi8KICAgICAgOmhvc3QgewogICAgICAgIGNvbG9yOiAke3AuYmRUaGVtZSgiIzMzMyIsIiNmZmYiKX07CiAgICAgIH0KICAgICAgLm1haW5ib3ggewogICAgICAgIGJvcmRlci1yYWRpdXM6IDNweDsKICAgICAgICBiYWNrZ3JvdW5kOiAke3AuYmRUaGVtZSgiI2ZhZmFmYSIsIiMyMjIyMjIiKX07CiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgICAgICBib3JkZXItdG9wOiAke3AuYmRUaGVtZSgiMXB4IHNvbGlkICNDQ0MiLCIxcHggc29saWQgI2ZmZmZmZjEwIil9OwogICAgICAgIGJvcmRlci1ib3R0b206ICR7cC5iZFRoZW1lKCIxcHggc29saWQgI0NDQyIsIjFweCBzb2xpZCAjMjIyIil9OwogICAgICAgIGJvcmRlci1yaWdodDogJHtwLmJkVGhlbWUoIjFweCBzb2xpZCAjQ0NDIiwiMXB4IHNvbGlkICNmZmZmZmYxMCIpfTsKICAgICAgICBib3JkZXItbGVmdDogJHtwLmJkVGhlbWUoIjFweCBzb2xpZCAjQ0NDIiwiMXB4IHNvbGlkICNmZmZmZmYxMCIpfTsKICAgICAgICBib3gtc2hhZG93OiAke3AuYmRUaGVtZSgiMHB4IDFweCA0cHggcmdiYSgwLDAsMCwwLjMpIiwibm9uZSIpfTsKICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC4yczsKICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgIH0KICAgICAgCiAgICAgIC5tYWluYm94OmhvdmVyIHsKICAgICAgICBmaWx0ZXI6ICR7cC5iZFRoZW1lKCJicmlnaHRuZXNzKDAuOTgpIiwiYnJpZ2h0bmVzcygxLjA1KSIpfTsKICAgICAgfQogICAgICAKICAgICAgLm1haW5ib3g6Zm9jdXMtd2l0aGluIHsKICAgICAgICBvdXRsaW5lOiAycHggc29saWQgJHtwLmJkVGhlbWUoIiMwMDY5ZjIiLCIjMDA4NGZmIil9OwogICAgICAgIG91dGxpbmUtb2Zmc2V0OiAtMnB4OwogICAgICB9CgogICAgICAudGFncyB7CiAgICAgICAgcGFkZGluZzogMTZweDsKICAgICAgICBjdXJzb3I6IGRlZmF1bHQ7CiAgICAgIH0KCiAgICAgIC5ub3RhZ3MgewogICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjsKICAgICAgICBjb2xvcjogJHtwLmJkVGhlbWUoIiM5OTkiLCIjNjY2Iil9OwogICAgICAgIGZvbnQtc2l6ZTogMTNweDsKICAgICAgICBmb250LXN0eWxlOiBpdGFsaWM7CiAgICAgIH0KCiAgICAgIGlucHV0IHsKICAgICAgICBkaXNwbGF5OiBibG9jazsKICAgICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94OwogICAgICAgIGJhY2tncm91bmQ6ICR7cC5iZFRoZW1lKCIjZjVmNWY1IiwiIzE4MTgxOCIpfTsKICAgICAgICB3aWR0aDogMTAwJTsKICAgICAgICBvdXRsaW5lOiBub25lOwogICAgICAgIGJvcmRlcjogbm9uZTsKICAgICAgICBjb2xvcjogaW5oZXJpdDsKICAgICAgICBwYWRkaW5nOiAwcHggMTZweDsKICAgICAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgICAgIGxpbmUtaGVpZ2h0OiAzMnB4OwogICAgICAgIGhlaWdodDogMHB4OwogICAgICAgIHRyYW5zaXRpb246IGhlaWdodCAwLjJzOwogICAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAke3AuYmRUaGVtZSgiI2UwZTBlMCIsIiMzMzMiKX07CiAgICAgIH0KCiAgICAgIGlucHV0OmZvY3VzIHsKICAgICAgICBoZWlnaHQ6IDMycHg7CiAgICAgICAgYmFja2dyb3VuZDogJHtwLmJkVGhlbWUoIiNmYWZhZmEiLCIjMWExYTFhIil9OwogICAgICB9CiAgICAgIAogICAgICBpbnB1dDo6cGxhY2Vob2xkZXIgewogICAgICAgIGNvbG9yOiAke3AuYmRUaGVtZSgiIzk5OSIsIiM2NjYiKX07CiAgICAgIH0KCiAgICAgIC50YWcgewogICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jazsKICAgICAgICBiYWNrZ3JvdW5kOiAke3AuYmRUaGVtZSgiI2U4ZjVlOSIsIiMyZDNhMmQiKX07CiAgICAgICAgY29sb3I6ICR7cC5iZFRoZW1lKCIjMmU3ZDMyIiwiIzgxYzc4NCIpfTsKICAgICAgICBwYWRkaW5nOiA0cHggMTBweDsKICAgICAgICBib3JkZXItcmFkaXVzOiA0cHg7CiAgICAgICAgbWFyZ2luOiAzcHg7CiAgICAgICAgZm9udC1zaXplOiAxM3B4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7CiAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuMnM7CiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHtwLmJkVGhlbWUoIiNjOGU2YzkiLCIjMWI1ZTIwIil9OwogICAgICB9CiAgICAgIAogICAgICAudGFnOmhvdmVyIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke3AuYmRUaGVtZSgiI2M4ZTZjOSIsIiMzZDRmM2QiKX07CiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0xcHgpOwogICAgICB9CgogICAgICAudGFnIC5yZW1vdmUgewogICAgICAgIG1hcmdpbi1sZWZ0OiA4cHg7CiAgICAgICAgY3Vyc29yOiBwb2ludGVyOwogICAgICAgIG9wYWNpdHk6IDAuNzsKICAgICAgICBmb250LXdlaWdodDogNzAwOwogICAgICAgIGZvbnQtc2l6ZTogMTZweDsKICAgICAgICBsaW5lLWhlaWdodDogMTsKICAgICAgICB0cmFuc2l0aW9uOiBvcGFjaXR5IDAuMnM7CiAgICAgIH0KCiAgICAgIC50YWcgLnJlbW92ZTpob3ZlciB7CiAgICAgICAgb3BhY2l0eTogMTsKICAgICAgICBjb2xvcjogJHtwLmJkVGhlbWUoIiNjNjI4MjgiLCIjZWY1MzUwIil9OwogICAgICB9CiAgICAgIAogICAgICAvKiBEaXNhYmxlZCBzdGF0ZSAqLwogICAgICA6aG9zdChbZGlzYWJsZWRdKSAubWFpbmJveCB7CiAgICAgICAgb3BhY2l0eTogMC42OwogICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7CiAgICAgIH0KICAgICAgCiAgICAgIDpob3N0KFtkaXNhYmxlZF0pIC50YWdzIHsKICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkOwogICAgICB9CiAgICAgIAogICAgICA6aG9zdChbZGlzYWJsZWRdKSAudGFnIHsKICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTsKICAgICAgfQogICAgICAKICAgICAgOmhvc3QoW2Rpc2FibGVkXSkgaW5wdXQgewogICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7CiAgICAgICAgYmFja2dyb3VuZDogJHtwLmJkVGhlbWUoIiNmMGYwZjAiLCIjMWExYTFhIil9OwogICAgICB9CiAgICBgXTtyZW5kZXIoKXtyZXR1cm4gd2AKICAgICAgPGRpdiBjbGFzcz0iaW5wdXQtd3JhcHBlciI+CiAgICAgICAgPGRlZXMtbGFiZWwgLmxhYmVsPSR7dGhpcy5sYWJlbH0gLmRlc2NyaXB0aW9uPSR7dGhpcy5kZXNjcmlwdGlvbn0+PC9kZWVzLWxhYmVsPgogICAgICAgIDxkaXYgY2xhc3M9Im1haW5ib3giPgogICAgICAgICAgPGRpdiBjbGFzcz0idGFncyIgQGNsaWNrPSR7KCk9Pnt0aGlzLnNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvcigiaW5wdXQiKS5mb2N1cygpfX0+CiAgICAgICAgICAgICR7dGhpcy52YWx1ZS5sZW5ndGg9PT0wP3dgPGRpdiBjbGFzcz0ibm90YWdzIj5ObyB0YWdzIHlldDwvZGl2PmA6dGhpcy52YWx1ZS5tYXAoZj0+d2AKICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0idGFnIj4KICAgICAgICAgICAgICAgICAgICAgICR7Zn0KICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJyZW1vdmUiIEBjbGljaz0ke2c9PntnLnN0b3BQcm9wYWdhdGlvbigpLHRoaXMucmVtb3ZlVGFnKGYpfX0+w5c8L3NwYW4+CiAgICAgICAgICAgICAgICAgICAgPC9zcGFuPgogICAgICAgICAgICAgICAgICBgKX0KICAgICAgICAgIDwvZGl2PgogICAgICAgICAgPGlucHV0CiAgICAgICAgICAgIHR5cGU9InRleHQiCiAgICAgICAgICAgIHBsYWNlaG9sZGVyPSJUeXBlLCBwcmVzcyBFbnRlciB0byBhZGQgaXQuLi4iCiAgICAgICAgICAgIC52YWx1ZT0ke3RoaXMuaW5wdXRWYWx1ZX0KICAgICAgICAgICAgQGlucHV0PSR7Zj0+e3RoaXMuaW5wdXRWYWx1ZT1mLnRhcmdldC52YWx1ZX19CiAgICAgICAgICAgIEBrZXlkb3duPSR7Zj0+e2Yua2V5PT09IkVudGVyIiYmdGhpcy5pbnB1dFZhbHVlLnRyaW0oKSYmKGYucHJldmVudERlZmF1bHQoKSx0aGlzLmFkZFRhZyh0aGlzLmlucHV0VmFsdWUudHJpbSgpKSl9fQogICAgICAgICAgICAuZGlzYWJsZWQ9JHt0aGlzLmRpc2FibGVkfQogICAgICAgICAgLz4KICAgICAgICA8L2Rpdj4KICAgICAgPC9kaXY+CiAgICBgfWFkZFRhZyhmKXt0aGlzLnZhbHVlLmluY2x1ZGVzKGYpfHwodGhpcy52YWx1ZT1bLi4udGhpcy52YWx1ZSxmXSx0aGlzLmlucHV0VmFsdWU9IiIsdGhpcy5jaGFuZ2VTdWJqZWN0Lm5leHQodGhpcykpfXJlbW92ZVRhZyhmKXt0aGlzLnZhbHVlPXRoaXMudmFsdWUuZmlsdGVyKGc9PmchPT1mKSx0aGlzLmNoYW5nZVN1YmplY3QubmV4dCh0aGlzKX1nZXRWYWx1ZSgpe3JldHVybiB0aGlzLnZhbHVlfXNldFZhbHVlKGYpe3RoaXMudmFsdWU9Zn1jb25zdHJ1Y3Rvcigpe3N1cGVyKC4uLmFyZ3VtZW50cyksTTgodGhpcyxoKX1zdGF0aWN7TTgoaSxhKX19O3JldHVybiBsPWl9KSgpfSk7dmFyIEV1dCxQdXQ9YigoKT0+e0pxKCk7czIoKTt1ZSgpO0V1dD0oKT0+d2AKICA8c3R5bGU+CiAgICAke1FgCiAgICAgIC5kZW1vV3JhcHBlciB7CiAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDsKICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgICAgaGVpZ2h0OiAxMDAlOwogICAgICAgIHBhZGRpbmc6IDMycHg7CiAgICAgICAgYmFja2dyb3VuZDogJHtwLmJkVGhlbWUoImhzbCgwIDAlIDk1JSkiLCJoc2woMCAwJSA1JSkiKX07CiAgICAgICAgb3ZlcmZsb3cteTogYXV0bzsKICAgICAgfQogICAgICAuZGVtby1jb250YWluZXIgewogICAgICAgIG1heC13aWR0aDogMTIwMHB4OwogICAgICAgIG1hcmdpbjogMCBhdXRvOwogICAgICB9CiAgICAgIC5kZW1vLXNlY3Rpb24gewogICAgICAgIG1hcmdpbi1ib3R0b206IDQ4cHg7CiAgICAgIH0KICAgICAgLmRlbW8tdGl0bGUgewogICAgICAgIGZvbnQtc2l6ZTogMjRweDsKICAgICAgICBmb250LXdlaWdodDogNjAwOwogICAgICAgIG1hcmdpbi1ib3R0b206IDhweDsKICAgICAgICBjb2xvcjogJHtwLmJkVGhlbWUoImhzbCgwIDAlIDklKSIsImhzbCgwIDAlIDk1JSkiKX07CiAgICAgIH0KICAgICAgLmRlbW8tZGVzY3JpcHRpb24gewogICAgICAgIGZvbnQtc2l6ZTogMTRweDsKICAgICAgICBjb2xvcjogJHtwLmJkVGhlbWUoImhzbCgyMTUuNCAxNi4zJSA0Ni45JSkiLCJoc2woMjE1IDIwLjIlIDY1LjElKSIpfTsKICAgICAgICBtYXJnaW4tYm90dG9tOiAyNHB4OwogICAgICB9CiAgICAgIC50aGVtZS10b2dnbGUgewogICAgICAgIHBvc2l0aW9uOiBmaXhlZDsKICAgICAgICB0b3A6IDE2cHg7CiAgICAgICAgcmlnaHQ6IDE2cHg7CiAgICAgICAgei1pbmRleDogMTAwMDsKICAgICAgfQogICAgYH0KICA8L3N0eWxlPgogIDxkaXYgY2xhc3M9ImRlbW9XcmFwcGVyIj4KICAgIDxkZWVzLWJ1dHRvbiBjbGFzcz0idGhlbWUtdG9nZ2xlIiBAY2xpY2s9JHsoKT0+e2RvY3VtZW50LmJvZHkuY2xhc3NMaXN0LnRvZ2dsZSgiYnJpZ2h0IiksZG9jdW1lbnQuYm9keS5jbGFzc0xpc3QudG9nZ2xlKCJkYXJrIil9fT5Ub2dnbGUgVGhlbWU8L2RlZXMtYnV0dG9uPgogICAgCiAgICA8ZGl2IGNsYXNzPSJkZW1vLWNvbnRhaW5lciI+CiAgICAgIDxkaXYgY2xhc3M9ImRlbW8tc2VjdGlvbiI+CiAgICAgICAgPGgyIGNsYXNzPSJkZW1vLXRpdGxlIj5CYXNpYyBUYWJsZSB3aXRoIEFjdGlvbnM8L2gyPgogICAgICAgIDxwIGNsYXNzPSJkZW1vLWRlc2NyaXB0aW9uIj5BIHN0YW5kYXJkIHRhYmxlIHdpdGggcm93IGFjdGlvbnMsIGVkaXRhYmxlIGZpZWxkcywgYW5kIGNvbnRleHQgbWVudSBzdXBwb3J0LiBEb3VibGUtY2xpY2sgb24gZGVzY3JpcHRpb25zIHRvIGVkaXQuIEdyaWQgbGluZXMgYXJlIGVuYWJsZWQgYnkgZGVmYXVsdC48L3A+CiAgICAgICAgPGRlZXMtdGFibGUKICAgICAgICAgIGhlYWRpbmcxPSJDdXJyZW50IEFjY291bnQgU3RhdGVtZW50IgogICAgICAgICAgaGVhZGluZzI9IkJ1bnEgLSBQYXltZW50IEFjY291bnQgMiAtIEFwcmlsIDIwMjEiCiAgICAgICAgICAuZWRpdGFibGVGaWVsZHM9IiR7WyJkZXNjcmlwdGlvbiJdfSIKICAgICAgICAgIC5kYXRhPSR7W3tkYXRlOiIyMDIxLTA0LTAxIixhbW91bnQ6IjI0NjQuNjUgXHUyMEFDIixkZXNjcmlwdGlvbjoiUHJpbnRpbmcgUGFwZXIgKE9mZmljZSBTdXBwbGllcykgLSBTVEFQTEVTIEJSRU1FTiJ9LHtkYXRlOiIyMDIxLTA0LTAyIixhbW91bnQ6IjE2NS42NSBcdTIwQUMiLGRlc2NyaXB0aW9uOiJMb2dpdGVjaCBNb3VzZSAoSGFyZHdhcmUpIC0gbG9naS5jb20gT25saW5lU2hvcCJ9LHtkYXRlOiIyMDIxLTA0LTAzIixhbW91bnQ6IjI5OTksMDAgXHUyMEFDIixkZXNjcmlwdGlvbjoiTWFjYm9vayBQcm8gMTZpbmNoIChIYXJkd2FyZSkgLSBBcHBsZS5kZSBPbmxpbmVTaG9wIn0se2RhdGU6IjIwMjEtMDQtMDEiLGFtb3VudDoiMjQ2NC42NSBcdTIwQUMiLGRlc2NyaXB0aW9uOiJPZmZpY2UtU3VwcGxpZXMgLSBTVEFQTEVTIEJSRU1FTiJ9LHtkYXRlOiIyMDIxLTA0LTAxIixhbW91bnQ6IjI0NjQuNjUgXHUyMEFDIixkZXNjcmlwdGlvbjoiT2ZmaWNlLVN1cHBsaWVzIC0gU1RBUExFUyBCUkVNRU4ifV19CiAgICAgICAgICBkYXRhTmFtZT0idHJhbnNhY3Rpb25zIgogICAgICAgICAgLmRhdGFBY3Rpb25zPSIke1t7bmFtZToidXBsb2FkIixpY29uTmFtZToiYmVsbCIsdXNlVGFibGVCZWhhdmlvdXI6InVwbG9hZCIsdHlwZTpbImluUm93Il0sYWN0aW9uRnVuYzphc3luYyB0PT57YWxlcnQodC5pdGVtLmFtb3VudCl9fSx7bmFtZToidmlzaWJpbGl0eSIsaWNvbk5hbWU6ImNvcHkiLHR5cGU6WyJpblJvdyJdLHVzZVRhYmxlQmVoYXZpb3VyOiJwcmV2aWV3IixhY3Rpb25GdW5jOmFzeW5jIHQ9Pnt9fSx7bmFtZToiY3JlYXRlIG5ldyIsaWNvbk5hbWU6Imluc3RhZ3JhbSIsdHlwZTpbImhlYWRlciJdLHVzZVRhYmxlQmVoYXZpb3VyOiJwcmV2aWV3IixhY3Rpb25GdW5jOmFzeW5jIHQ9Pnt9fSx7bmFtZToidG8gZ2FsbGVyeSIsaWNvbk5hbWU6Im1lc3NhZ2UiLHR5cGU6WyJmb290ZXIiXSx1c2VUYWJsZUJlaGF2aW91cjoicHJldmlldyIsYWN0aW9uRnVuYzphc3luYyB0PT57fX0se25hbWU6ImNvcHkiLGljb25OYW1lOiJjb3B5U29saWQiLHR5cGU6WyJjb250ZXh0bWVudSIsImluUm93Il0sYWN0aW9uOmFzeW5jKCk9Pm51bGx9LHtuYW1lOiJlZGl0IChmcm9tIGRlbW8pIixpY29uTmFtZToicGVuVG9TcXVhcmUiLHR5cGU6WyJjb250ZXh0bWVudSJdLGFjdGlvbjphc3luYygpPT5udWxsfSx7bmFtZToicGFzdGUiLGljb25OYW1lOiJwYXN0ZVNvbGlkIix0eXBlOlsiY29udGV4dG1lbnUiXSxhY3Rpb246YXN5bmMoKT0+bnVsbH0se25hbWU6InByZXZpZXciLHR5cGU6WyJkb3VibGVDbGljayIsImNvbnRleHRtZW51Il0saWNvbk5hbWU6ImV5ZSIsYWN0aW9uRnVuYzphc3luYyB0PT4oYWxlcnQodC5pdGVtLmFtb3VudCksbnVsbCl9XX0iCiAgICAgICAgPjwvZGVlcy10YWJsZT4KICAgICAgPC9kaXY+CiAgICAgIAogICAgICA8ZGl2IGNsYXNzPSJkZW1vLXNlY3Rpb24iPgogICAgICAgIDxoMiBjbGFzcz0iZGVtby10aXRsZSI+VGFibGUgd2l0aCBWZXJ0aWNhbCBMaW5lczwvaDI+CiAgICAgICAgPHAgY2xhc3M9ImRlbW8tZGVzY3JpcHRpb24iPkVuaGFuY2VkIGNvbHVtbiBzZXBhcmF0aW9uIGZvciBiZXR0ZXIgZGF0YSB0cmFja2luZy48L3A+CiAgICAgICAgPGRlZXMtdGFibGUKICAgICAgICAgIGhlYWRpbmcxPSJQcm9kdWN0IEludmVudG9yeSIKICAgICAgICAgIGhlYWRpbmcyPSJDdXJyZW50IHN0b2NrIGxldmVscyBhY3Jvc3Mgd2FyZWhvdXNlcyIKICAgICAgICAgIC5zaG93VmVydGljYWxMaW5lcz0keyEwfQogICAgICAgICAgLmRhdGE9JHtbe3Byb2R1Y3Q6J01hY0Jvb2sgUHJvIDE2Iicsd2FyZWhvdXNlX2E6IjQ1Iix3YXJlaG91c2VfYjoiMzIiLHdhcmVob3VzZV9jOiIyOCIsdG90YWw6IjEwNSIsc3RhdHVzOiJcdTI3MTMgSW4gU3RvY2sifSx7cHJvZHVjdDoiaVBob25lIDE1IFBybyIsd2FyZWhvdXNlX2E6IjEyMCIsd2FyZWhvdXNlX2I6Ijg5Iix3YXJlaG91c2VfYzoiMTU2Iix0b3RhbDoiMzY1IixzdGF0dXM6Ilx1MjcxMyBJbiBTdG9jayJ9LHtwcm9kdWN0OiJBaXJQb2RzIFBybyIsd2FyZWhvdXNlX2E6IjAiLHdhcmVob3VzZV9iOiIxMiIsd2FyZWhvdXNlX2M6IjUiLHRvdGFsOiIxNyIsc3RhdHVzOiJcdTI2QTAgTG93IFN0b2NrIn0se3Byb2R1Y3Q6ImlQYWQgQWlyIix3YXJlaG91c2VfYToiMjMiLHdhcmVob3VzZV9iOiI0NSIsd2FyZWhvdXNlX2M6IjY3Iix0b3RhbDoiMTM1IixzdGF0dXM6Ilx1MjcxMyBJbiBTdG9jayJ9XX0KICAgICAgICAgIGRhdGFOYW1lPSJwcm9kdWN0cyIKICAgICAgICA+PC9kZWVzLXRhYmxlPgogICAgICA8L2Rpdj4KICAgICAgCiAgICAgIDxkaXYgY2xhc3M9ImRlbW8tc2VjdGlvbiI+CiAgICAgICAgPGgyIGNsYXNzPSJkZW1vLXRpdGxlIj5UYWJsZSB3aXRoIEZ1bGwgR3JpZDwvaDI+CiAgICAgICAgPHAgY2xhc3M9ImRlbW8tZGVzY3JpcHRpb24iPkNvbXBsZXRlIGdyaWQgbGluZXMgZm9yIG1heGltdW0gcmVhZGFiaWxpdHkgYW5kIHN0cnVjdHVyZS48L3A+CiAgICAgICAgPGRlZXMtdGFibGUKICAgICAgICAgIGhlYWRpbmcxPSJTZXJ2ZXIgTW9uaXRvcmluZyBEYXNoYm9hcmQiCiAgICAgICAgICBoZWFkaW5nMj0iUmVhbC10aW1lIG1ldHJpY3MgYWNyb3NzIHJlZ2lvbnMiCiAgICAgICAgICAuc2hvd0dyaWQ9JHshMH0KICAgICAgICAgIC5kYXRhPSR7W3tzZXJ2ZXI6IkFQSS0xIixyZWdpb246IlVTLUVhc3QiLGNwdToiNDUlIixtZW1vcnk6IjYyJSIsZGlzazoiNzglIixsYXRlbmN5OiIxMm1zIix1cHRpbWU6Ijk5LjklIixzdGF0dXM6Ilx1ezFGN0UyfSBIZWFsdGh5In0se3NlcnZlcjoiQVBJLTIiLHJlZ2lvbjoiRVUtV2VzdCIsY3B1OiIzOCUiLG1lbW9yeToiNTUlIixkaXNrOiI0NSUiLGxhdGVuY3k6IjI1bXMiLHVwdGltZToiOTkuOCUiLHN0YXR1czoiXHV7MUY3RTJ9IEhlYWx0aHkifSx7c2VydmVyOiJEQi1NYXN0ZXIiLHJlZ2lvbjoiVVMtRWFzdCIsY3B1OiI3MiUiLG1lbW9yeToiODElIixkaXNrOiI5MiUiLGxhdGVuY3k6IjhtcyIsdXB0aW1lOiIxMDAlIixzdGF0dXM6Ilx1ezFGN0UxfSBXYXJuaW5nIn0se3NlcnZlcjoiREItUmVwbGljYSIscmVnaW9uOiJFVS1XZXN0IixjcHU6IjIzJSIsbWVtb3J5OiIzNCUiLGRpc2s6IjQ1JSIsbGF0ZW5jeToiMTVtcyIsdXB0aW1lOiI5OS43JSIsc3RhdHVzOiJcdXsxRjdFMn0gSGVhbHRoeSJ9LHtzZXJ2ZXI6IkNhY2hlLTEiLHJlZ2lvbjoiQVAtU291dGgiLGNwdToiODklIixtZW1vcnk6IjkyJSIsZGlzazoiMTIlIixsYXRlbmN5OiIxMjBtcyIsdXB0aW1lOiI5OC41JSIsc3RhdHVzOiJcdXsxRjUzNH0gQ3JpdGljYWwifV19CiAgICAgICAgICBkYXRhTmFtZT0ic2VydmVycyIKICAgICAgICAgIC5kYXRhQWN0aW9ucz0iJHtbe25hbWU6IlNTSCBDb25uZWN0IixpY29uTmFtZToibHVjaWRlOnRlcm1pbmFsIix0eXBlOlsiaW5Sb3ciXSxhY3Rpb25GdW5jOmFzeW5jIHQ9Pntjb25zb2xlLmxvZygiQ29ubmVjdGluZyB0bzoiLHQuaXRlbS5zZXJ2ZXIpfX0se25hbWU6IlZpZXcgTG9ncyIsaWNvbk5hbWU6Imx1Y2lkZTpmaWxlLXRleHQiLHR5cGU6WyJpblJvdyIsImNvbnRleHRtZW51Il0sYWN0aW9uRnVuYzphc3luYyB0PT57Y29uc29sZS5sb2coIlZpZXdpbmcgbG9ncyBmb3I6Iix0Lml0ZW0uc2VydmVyKX19LHtuYW1lOiJSZXN0YXJ0IFNlcnZlciIsaWNvbk5hbWU6Imx1Y2lkZTpyZWZyZXNoLWN3Iix0eXBlOlsiY29udGV4dG1lbnUiXSxhY3Rpb25GdW5jOmFzeW5jIHQ9Pntjb25zb2xlLmxvZygiUmVzdGFydGluZzoiLHQuaXRlbS5zZXJ2ZXIpfX1dfSIKICAgICAgICA+PC9kZWVzLXRhYmxlPgogICAgICA8L2Rpdj4KICAgICAgCiAgICAgIDxkaXYgY2xhc3M9ImRlbW8tc2VjdGlvbiI+CiAgICAgICAgPGgyIGNsYXNzPSJkZW1vLXRpdGxlIj5UYWJsZSB3aXRoIEhvcml6b250YWwgTGluZXMgT25seTwvaDI+CiAgICAgICAgPHAgY2xhc3M9ImRlbW8tZGVzY3JpcHRpb24iPkVtcGhhc2lzIG9uIHJvdyBzZXBhcmF0aW9uIHdpdGhvdXQgY29sdW1uIGRpdmlkZXJzLjwvcD4KICAgICAgICA8ZGVlcy10YWJsZQogICAgICAgICAgaGVhZGluZzE9IlNhbGVzIFBlcmZvcm1hbmNlIgogICAgICAgICAgaGVhZGluZzI9IlRvcCBwZXJmb3JtZXJzIHRoaXMgcXVhcnRlciIKICAgICAgICAgIC5zaG93SG9yaXpvbnRhbExpbmVzPSR7ITB9CiAgICAgICAgICAuc2hvd1ZlcnRpY2FsTGluZXM9JHshMX0KICAgICAgICAgIC5kYXRhPSR7W3tzYWxlc3BlcnNvbjoiRW1pbHkgSm9obnNvbiIscmVnaW9uOiJOb3J0aCBBbWVyaWNhIixkZWFsc19jbG9zZWQ6IjQyIixyZXZlbnVlOiIkMS4yTSIscXVvdGFfYWNoaWV2ZW1lbnQ6IjEyOCUiLHJhdGluZzoiXHUyQjUwXHUyQjUwXHUyQjUwXHUyQjUwXHUyQjUwIn0se3NhbGVzcGVyc29uOiJNaWNoYWVsIENoZW4iLHJlZ2lvbjoiQXNpYSBQYWNpZmljIixkZWFsc19jbG9zZWQ6IjM4IixyZXZlbnVlOiIkOTgwSyIscXVvdGFfYWNoaWV2ZW1lbnQ6IjExNSUiLHJhdGluZzoiXHUyQjUwXHUyQjUwXHUyQjUwXHUyQjUwXHUyQjUwIn0se3NhbGVzcGVyc29uOiJTYXJhaCBXaWxsaWFtcyIscmVnaW9uOiJFdXJvcGUiLGRlYWxzX2Nsb3NlZDoiMzUiLHJldmVudWU6IiQ4NzVLIixxdW90YV9hY2hpZXZlbWVudDoiMTA4JSIscmF0aW5nOiJcdTJCNTBcdTJCNTBcdTJCNTBcdTJCNTAifSx7c2FsZXNwZXJzb246IkRhdmlkIEdhcmNpYSIscmVnaW9uOiJMYXRpbiBBbWVyaWNhIixkZWFsc19jbG9zZWQ6IjMxIixyZXZlbnVlOiIkNzUwSyIscXVvdGFfYWNoaWV2ZW1lbnQ6Ijk1JSIscmF0aW5nOiJcdTJCNTBcdTJCNTBcdTJCNTBcdTJCNTAifV19CiAgICAgICAgICBkYXRhTmFtZT0ic2FsZXMgcmVwcyIKICAgICAgICA+PC9kZWVzLXRhYmxlPgogICAgICA8L2Rpdj4KICAgICAgCiAgICAgIDxkaXYgY2xhc3M9ImRlbW8tc2VjdGlvbiI+CiAgICAgICAgPGgyIGNsYXNzPSJkZW1vLXRpdGxlIj5TaW1wbGUgVGFibGUgKE5vIEdyaWQpPC9oMj4KICAgICAgICA8cCBjbGFzcz0iZGVtby1kZXNjcmlwdGlvbiI+Q2xlYW4sIG1pbmltYWwgZGVzaWduIHdpdGhvdXQgZ3JpZCBsaW5lcy4gU2V0IHNob3dHcmlkIHRvIGZhbHNlIHRvIGRpc2FibGUgdGhlIGRlZmF1bHQgZ3JpZC48L3A+CiAgICAgICAgPGRlZXMtdGFibGUKICAgICAgICAgIGhlYWRpbmcxPSJUZWFtIE1lbWJlcnMiCiAgICAgICAgICBoZWFkaW5nMj0iRW5naW5lZXJpbmcgRGVwYXJ0bWVudCIKICAgICAgICAgIC5zaG93R3JpZD0keyExfQogICAgICAgICAgLmRhdGE9JHtbe25hbWU6IkFsaWNlIEpvaG5zb24iLHJvbGU6IkxlYWQgRW5naW5lZXIiLGVtYWlsOiJhbGljZUBjb21wYW55LmNvbSIsbG9jYXRpb246IlNhbiBGcmFuY2lzY28iLGpvaW5lZDoiMjAyMC0wMy0xNSJ9LHtuYW1lOiJCb2IgU21pdGgiLHJvbGU6IlNlbmlvciBEZXZlbG9wZXIiLGVtYWlsOiJib2JAY29tcGFueS5jb20iLGxvY2F0aW9uOiJOZXcgWW9yayIsam9pbmVkOiIyMDE5LTA3LTIyIn0se25hbWU6IkNoYXJsaWUgRGF2aXMiLHJvbGU6IkRldk9wcyBFbmdpbmVlciIsZW1haWw6ImNoYXJsaWVAY29tcGFueS5jb20iLGxvY2F0aW9uOiJMb25kb24iLGpvaW5lZDoiMjAyMS0wMS0xMCJ9LHtuYW1lOiJEaWFuYSBNYXJ0aW5leiIscm9sZToiRnJvbnRlbmQgRGV2ZWxvcGVyIixlbWFpbDoiZGlhbmFAY29tcGFueS5jb20iLGxvY2F0aW9uOiJCYXJjZWxvbmEiLGpvaW5lZDoiMjAyMi0wNS0xOCJ9XX0KICAgICAgICAgIGRhdGFOYW1lPSJ0ZWFtIG1lbWJlcnMiCiAgICAgICAgPjwvZGVlcy10YWJsZT4KICAgICAgPC9kaXY+CiAgICAgIAogICAgICA8ZGl2IGNsYXNzPSJkZW1vLXNlY3Rpb24iPgogICAgICAgIDxoMiBjbGFzcz0iZGVtby10aXRsZSI+VGFibGUgd2l0aCBDdXN0b20gRGlzcGxheSBGdW5jdGlvbjwvaDI+CiAgICAgICAgPHAgY2xhc3M9ImRlbW8tZGVzY3JpcHRpb24iPlRyYW5zZm9ybSBkYXRhIGZvciBkaXNwbGF5IHVzaW5nIGN1c3RvbSBmb3JtYXR0aW5nLjwvcD4KICAgICAgICA8ZGVlcy10YWJsZQogICAgICAgICAgaGVhZGluZzE9IlNhbGVzIFJlcG9ydCIKICAgICAgICAgIGhlYWRpbmcyPSJRNCAyMDIzIFBlcmZvcm1hbmNlIgogICAgICAgICAgLmRhdGE9JHtbe3Byb2R1Y3Q6IkVudGVycHJpc2UgTGljZW5zZSIsdW5pdHM6NDUscmV2ZW51ZToyMjVlMyxncm93dGg6LjIzLGZvcmVjYXN0OjI4ZTR9LHtwcm9kdWN0OiJQcm9mZXNzaW9uYWwgTGljZW5zZSIsdW5pdHM6MTI4LHJldmVudWU6MTI4ZTMsZ3Jvd3RoOi4xNSxmb3JlY2FzdDoxNDdlM30se3Byb2R1Y3Q6IlN0YXJ0ZXIgTGljZW5zZSIsdW5pdHM6MzQyLHJldmVudWU6Njg0MDAsZ3Jvd3RoOi40Mixmb3JlY2FzdDo5N2UzfV19CiAgICAgICAgICAuZGlzcGxheUZ1bmN0aW9uPSR7dD0+KHtQcm9kdWN0OnQucHJvZHVjdCwiVW5pdHMgU29sZCI6dC51bml0cy50b0xvY2FsZVN0cmluZygpLFJldmVudWU6IiQiK3QucmV2ZW51ZS50b0xvY2FsZVN0cmluZygpLEdyb3d0aDoodC5ncm93dGgqMTAwKS50b0ZpeGVkKDEpKyIlIiwiUTEgMjAyNCBGb3JlY2FzdCI6IiQiK3QuZm9yZWNhc3QudG9Mb2NhbGVTdHJpbmcoKX0pfQogICAgICAgICAgZGF0YU5hbWU9InByb2R1Y3RzIgogICAgICAgID48L2RlZXMtdGFibGU+CiAgICAgIDwvZGl2PgogICAgICAKICAgICAgPGRpdiBjbGFzcz0iZGVtby1zZWN0aW9uIj4KICAgICAgICA8aDIgY2xhc3M9ImRlbW8tdGl0bGUiPkVtcHR5IFRhYmxlIFN0YXRlPC9oMj4KICAgICAgICA8cCBjbGFzcz0iZGVtby1kZXNjcmlwdGlvbiI+SG93IHRoZSB0YWJsZSBsb29rcyB3aGVuIG5vIGRhdGEgaXMgYXZhaWxhYmxlLjwvcD4KICAgICAgICA8ZGVlcy10YWJsZQogICAgICAgICAgaGVhZGluZzE9Ik5vIERhdGEgQXZhaWxhYmxlIgogICAgICAgICAgaGVhZGluZzI9IlRoaXMgdGFibGUgaXMgY3VycmVudGx5IGVtcHR5IgogICAgICAgICAgLmRhdGE9JHtbXX0KICAgICAgICAgIGRhdGFOYW1lPSJpdGVtcyIKICAgICAgICA+PC9kZWVzLXRhYmxlPgogICAgICA8L2Rpdj4KCiAgICAgIDxkaXYgY2xhc3M9ImRlbW8tc2VjdGlvbiI+CiAgICAgICAgPGgyIGNsYXNzPSJkZW1vLXRpdGxlIj5TY2hlbWEtRmlyc3QgQ29sdW1ucyAoTmV3KTwvaDI+CiAgICAgICAgPHAgY2xhc3M9ImRlbW8tZGVzY3JpcHRpb24iPkRlZmluZXMgY29sdW1ucyBleHBsaWNpdGx5IGFuZCByZW5kZXJzIHZpYSBzY2hlbWEuIE5vIGRpc3BsYXlGdW5jdGlvbiBuZWVkZWQuPC9wPgogICAgICAgIDxkZWVzLXRhYmxlCiAgICAgICAgICBoZWFkaW5nMT0iVXNlcnMgKFNjaGVtYS1GaXJzdCkiCiAgICAgICAgICBoZWFkaW5nMj0iQ29sdW1ucyBkZWZpbmUgcmVuZGVyaW5nIGFuZCBvcmRlciIKICAgICAgICAgIC5jb2x1bW5zPSR7W3trZXk6Im5hbWUiLGhlYWRlcjoiTmFtZSIsc29ydGFibGU6ITB9LHtrZXk6ImVtYWlsIixoZWFkZXI6IkVtYWlsIixyZW5kZXJlcjp0PT53YDxkZWVzLWJhZGdlPiR7dH08L2RlZXMtYmFkZ2U+YH0se2tleToiam9pbmVkQXQiLGhlYWRlcjoiSm9pbmVkIixyZW5kZXJlcjp0PT5uZXcgRGF0ZSh0KS50b0xvY2FsZURhdGVTdHJpbmcoKX1dfQogICAgICAgICAgLmRhdGE9JHtbe25hbWU6IkFsaWNlIixlbWFpbDoiYWxpY2VAZXhhbXBsZS5jb20iLGpvaW5lZEF0OiIyMDIyLTA4LTAxIn0se25hbWU6IkJvYiIsZW1haWw6ImJvYkBleGFtcGxlLmNvbSIsam9pbmVkQXQ6IjIwMjEtMTItMTEifSx7bmFtZToiQ2Fyb2wiLGVtYWlsOiJjYXJvbEBleGFtcGxlLmNvbSIsam9pbmVkQXQ6IjIwMjMtMDMtMjIifV19CiAgICAgICAgICBkYXRhTmFtZT0idXNlcnMiCiAgICAgICAgPjwvZGVlcy10YWJsZT4KICAgICAgPC9kaXY+CgogICAgICA8ZGl2IGNsYXNzPSJkZW1vLXNlY3Rpb24iPgogICAgICAgIDxoMiBjbGFzcz0iZGVtby10aXRsZSI+UGFydGlhbCBTY2hlbWEgKyBBdWdtZW50IChOZXcpPC9oMj4KICAgICAgICA8cCBjbGFzcz0iZGVtby1kZXNjcmlwdGlvbiI+UHJvdmlkZXMgb25seSB0aGUgaW1wb3J0YW50IGNvbHVtbnM7IHRoZSByZXN0IGFyZSBtZXJnZWQgaW4gZnJvbSBkaXNwbGF5RnVuY3Rpb24uPC9wPgogICAgICAgIDxkZWVzLXRhYmxlCiAgICAgICAgICBoZWFkaW5nMT0iVXNlcnMgKFBhcnRpYWwgKyBBdWdtZW50KSIKICAgICAgICAgIGhlYWRpbmcyPSJNaXNzaW5nIGNvbHVtbnMgYXJlIGRlcml2ZWQiCiAgICAgICAgICAuY29sdW1ucz0ke1t7a2V5OiJuYW1lIixoZWFkZXI6Ik5hbWUiLHNvcnRhYmxlOiEwfV19CiAgICAgICAgICAuZGlzcGxheUZ1bmN0aW9uPSR7dD0+KHtuYW1lOnQubmFtZSxlbWFpbDp0LmVtYWlsLHJvbGU6dC5yb2xlfSl9CiAgICAgICAgICAuYXVnbWVudEZyb21EaXNwbGF5RnVuY3Rpb249JHshMH0KICAgICAgICAgIC5kYXRhPSR7W3tuYW1lOiJFcmluIixlbWFpbDoiZXJpbkBleGFtcGxlLmNvbSIscm9sZToiQWRtaW4ifSx7bmFtZToiRmlubiIsZW1haWw6ImZpbm5AZXhhbXBsZS5jb20iLHJvbGU6IlVzZXIifSx7bmFtZToiR2luYSIsZW1haWw6ImdpbmFAZXhhbXBsZS5jb20iLHJvbGU6IlVzZXIifV19CiAgICAgICAgICBkYXRhTmFtZT0idXNlcnMiCiAgICAgICAgPjwvZGVlcy10YWJsZT4KICAgICAgPC9kaXY+CgogICAgICA8ZGl2IGNsYXNzPSJkZW1vLXNlY3Rpb24iIAogICAgICAgICAgIEBzZWxlY3Rpb25DaGFuZ2U9JHt0PT57Y29uc29sZS5sb2coIlNlbGVjdGlvbiBjaGFuZ2VkIix0LmRldGFpbCl9fQogICAgICAgICAgIEBzZWFyY2gtY2hhbmdlZD0ke3Q9PntsZXQgZT1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgidGFibGVGaWx0ZXJTZWxlY3REZW1vIik7ZSYmZS5zZXRGaWx0ZXJUZXh0KHQuZGV0YWlsLnZhbHVlKX19CiAgICAgICAgICAgQHNlYXJjaC1zdWJtaXQ9JHt0PT57bGV0IGU9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInRhYmxlRmlsdGVyU2VsZWN0RGVtbyIpO2UmJmUuc2V0RmlsdGVyVGV4dCh0LmRldGFpbC52YWx1ZSl9fQogICAgICA+CiAgICAgICAgPGgyIGNsYXNzPSJkZW1vLXRpdGxlIj5GaWx0ZXJpbmcgKyBNdWx0aS1TZWxlY3Rpb24gKE5ldyk8L2gyPgogICAgICAgIDxwIGNsYXNzPSJkZW1vLWRlc2NyaXB0aW9uIj5Vc2UgdGhlIHNlYXJjaCBiYXIgdG8gZmlsdGVyIHJvd3M7IHRvZ2dsZSBzZWxlY3Rpb24gdmlhIGNoZWNrYm94ZXMuIENsaWNrIGhlYWRlcnMgdG8gc29ydC48L3A+CiAgICAgICAgPGRlZXMtc2VhcmNoYmFyPjwvZGVlcy1zZWFyY2hiYXI+CiAgICAgICAgPGRpdiBzdHlsZT0iaGVpZ2h0OiAxMnB4Ij48L2Rpdj4KICAgICAgICA8ZGVlcy10YWJsZQogICAgICAgICAgaWQ9InRhYmxlRmlsdGVyU2VsZWN0RGVtbyIKICAgICAgICAgIGhlYWRpbmcxPSJJbnZlbnRvcnkgKEZpbHRlciArIFNlbGVjdCkiCiAgICAgICAgICBoZWFkaW5nMj0iVHJ5IHR5cGluZyB0byBmaWx0ZXIgYW5kIHNlbGVjdGluZyBtdWx0aXBsZSByb3dzIgogICAgICAgICAgLnNlbGVjdGlvbk1vZGU9JHsibXVsdGkifQogICAgICAgICAgLnJvd0tleT0keyJza3UifQogICAgICAgICAgLmNvbHVtbnM9JHtbe2tleToic2t1IixoZWFkZXI6IlNLVSIsc29ydGFibGU6ITB9LHtrZXk6Im5hbWUiLGhlYWRlcjoiTmFtZSIsc29ydGFibGU6ITB9LHtrZXk6InN0b2NrIixoZWFkZXI6IlN0b2NrIixzb3J0YWJsZTohMH1dfQogICAgICAgICAgLmRhdGE9JHtbe3NrdToiQS0xMDAiLG5hbWU6IlVTQi1DIENhYmxlIixzdG9jazoxMjB9LHtza3U6IkEtMTAxIixuYW1lOiJXaXJlbGVzcyBNb3VzZSIsc3RvY2s6NTV9LHtza3U6IkEtMTAyIixuYW1lOiJMYXB0b3AgU3RhbmQiLHN0b2NrOjE4fSx7c2t1OiJCLTIwMCIsbmFtZToiS2V5Ym9hcmQgKElTTykiLHN0b2NrOjg5fSx7c2t1OiJCLTIwMSIsbmFtZToiSERNSSBBZGFwdGVyIixzdG9jazowfSx7c2t1OiJDLTMwMCIsbmFtZToiV2ViY2FtIDEwODBwIixzdG9jazo0Mn1dfQogICAgICAgICAgZGF0YU5hbWU9Iml0ZW1zIgogICAgICAgID48L2RlZXMtdGFibGU+CiAgICAgIDwvZGl2PgoKICAgICAgPGRpdiBjbGFzcz0iZGVtby1zZWN0aW9uIj4KICAgICAgICA8aDIgY2xhc3M9ImRlbW8tdGl0bGUiPkNvbHVtbiBGaWx0ZXJzICsgU3RpY2t5IEhlYWRlciAoTmV3KTwvaDI+CiAgICAgICAgPHAgY2xhc3M9ImRlbW8tZGVzY3JpcHRpb24iPlBlci1jb2x1bW4gcXVpY2sgZmlsdGVycyBhbmQgc3RpY2t5IGhlYWRlciB3aXRoIGludGVybmFsIHNjcm9sbC4gVHJ5IGZpbHRlcmluZyB0aGUgTmFtZSBjb2x1bW4uIFVzZXMgLS10YWJsZS1tYXgtaGVpZ2h0IHZhci48L3A+CiAgICAgICAgPHN0eWxlPgogICAgICAgICAgZGVlcy10YWJsZVtzdGlja3ktaGVhZGVyXSB7IC0tdGFibGUtbWF4LWhlaWdodDogMjIwcHg7IH0KICAgICAgICA8L3N0eWxlPgogICAgICAgIDxkZWVzLXRhYmxlCiAgICAgICAgICBoZWFkaW5nMT0iRW1wbG95ZWVzIgogICAgICAgICAgaGVhZGluZzI9IlF1aWNrIGZpbHRlciBwZXIgY29sdW1uICsgc3RpY2t5IGhlYWRlciIKICAgICAgICAgIC5zaG93Q29sdW1uRmlsdGVycz0keyEwfQogICAgICAgICAgLnN0aWNreUhlYWRlcj0keyEwfQogICAgICAgICAgLmNvbHVtbnM9JHtbe2tleToibmFtZSIsaGVhZGVyOiJOYW1lIixzb3J0YWJsZTohMH0se2tleToiZW1haWwiLGhlYWRlcjoiRW1haWwiLHNvcnRhYmxlOiEwfSx7a2V5OiJkZXBhcnRtZW50IixoZWFkZXI6IkRlcGFydG1lbnQiLHNvcnRhYmxlOiEwfV19CiAgICAgICAgICAuZGF0YT0ke1t7bmFtZToiQWxpY2UgSm9obnNvbiIsZW1haWw6ImFsaWNlQGNvcnAuY29tIixkZXBhcnRtZW50OiJFbmdpbmVlcmluZyJ9LHtuYW1lOiJCb2IgU21pdGgiLGVtYWlsOiJib2JAY29ycC5jb20iLGRlcGFydG1lbnQ6IlNhbGVzIn0se25hbWU6IkNoYXJsaWUgRGF2aXMiLGVtYWlsOiJjaGFybGllQGNvcnAuY29tIixkZXBhcnRtZW50OiJIUiJ9LHtuYW1lOiJEaWFuYSBNYXJ0aW5leiIsZW1haWw6ImRpYW5hQGNvcnAuY29tIixkZXBhcnRtZW50OiJFbmdpbmVlcmluZyJ9LHtuYW1lOiJFdGhhbiBCcm93biIsZW1haWw6ImV0aGFuQGNvcnAuY29tIixkZXBhcnRtZW50OiJGaW5hbmNlIn0se25hbWU6IkZpb25hIENsYXJrIixlbWFpbDoiZmlvbmFAY29ycC5jb20iLGRlcGFydG1lbnQ6IlNhbGVzIn0se25hbWU6IkdyYWNlIExlZSIsZW1haWw6ImdyYWNlQGNvcnAuY29tIixkZXBhcnRtZW50OiJFbmdpbmVlcmluZyJ9LHtuYW1lOiJIZW5yeSBXaWxzb24iLGVtYWlsOiJoZW5yeUBjb3JwLmNvbSIsZGVwYXJ0bWVudDoiTWFya2V0aW5nIn0se25hbWU6IklyZW5lIFdhbGtlciIsZW1haWw6ImlyZW5lQGNvcnAuY29tIixkZXBhcnRtZW50OiJGaW5hbmNlIn0se25hbWU6IkphY2sgVHVybmVyIixlbWFpbDoiamFja0Bjb3JwLmNvbSIsZGVwYXJ0bWVudDoiU3VwcG9ydCJ9XX0KICAgICAgICAgIGRhdGFOYW1lPSJlbXBsb3llZXMiCiAgICAgICAgPjwvZGVlcy10YWJsZT4KICAgICAgPC9kaXY+CgogICAgICA8ZGl2IGNsYXNzPSJkZW1vLXNlY3Rpb24iCiAgICAgICAgQHNlYXJjaFJlcXVlc3Q9JHthc3luYyB0PT57bGV0e3F1ZXJ5OmV9PXQuZGV0YWlsfHx7cXVlcnk6IiJ9LGE9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInNlcnZlclNlYXJjaERlbW8iKSxpPVt7aWQ6MSxuYW1lOiJBbGljZSIsY2l0eToiQmVybGluIix0aXRsZToiRW5naW5lZXIifSx7aWQ6MixuYW1lOiJCb2IiLGNpdHk6IlBhcmlzIix0aXRsZToiRGVzaWduZXIifSx7aWQ6MyxuYW1lOiJDaGFybGllIixjaXR5OiJMb25kb24iLHRpdGxlOiJNYW5hZ2VyIn0se2lkOjQsbmFtZToiRGlhbmEiLGNpdHk6Ik1hZHJpZCIsdGl0bGU6IkVuZ2luZWVyIn0se2lkOjUsbmFtZToiRXRoYW4iLGNpdHk6IlJvbWUiLHRpdGxlOiJTdXBwb3J0In1dO2F3YWl0IG5ldyBQcm9taXNlKG49PnNldFRpbWVvdXQobiwzMDApKTtsZXQgcj1TdHJpbmcoZXx8IiIpLnRvTG93ZXJDYXNlKCkscz1yP2kuZmlsdGVyKG49Pk9iamVjdC52YWx1ZXMobikuc29tZShvPT5TdHJpbmcobykudG9Mb3dlckNhc2UoKS5pbmNsdWRlcyhyKSkpOmk7YS5kYXRhPXN9fQogICAgICA+CiAgICAgICAgPGgyIGNsYXNzPSJkZW1vLXRpdGxlIj5TZXJ2ZXIgU2VhcmNoIChOZXcpPC9oMj4KICAgICAgICA8cCBjbGFzcz0iZGVtby1kZXNjcmlwdGlvbiI+U2VsZWN0IFNlcnZlciBtb2RlLCB0eXBlIGEgcXVlcnksIGFuZCB3YXRjaCB0aGUgdGFibGUgZmV0Y2ggc2ltdWxhdGVkIHJlc3VsdHMuPC9wPgogICAgICAgIDxkZWVzLXRhYmxlCiAgICAgICAgICBpZD0ic2VydmVyU2VhcmNoRGVtbyIKICAgICAgICAgIGhlYWRpbmcxPSJQZW9wbGUgKFNlcnZlciBTZWFyY2gpIgogICAgICAgICAgaGVhZGluZzI9IkNsaWNrIFNlYXJjaCwgY2hvb3NlIFNlcnZlciBtb2RlLCBhbmQgdHlwZSIKICAgICAgICAgIC5jb2x1bW5zPSR7W3trZXk6Im5hbWUiLGhlYWRlcjoiTmFtZSJ9LHtrZXk6ImNpdHkiLGhlYWRlcjoiQ2l0eSJ9LHtrZXk6InRpdGxlIixoZWFkZXI6IlRpdGxlIn1dfQogICAgICAgICAgLmRhdGE9JHtbe2lkOjEsbmFtZToiQWxpY2UiLGNpdHk6IkJlcmxpbiIsdGl0bGU6IkVuZ2luZWVyIn0se2lkOjIsbmFtZToiQm9iIixjaXR5OiJQYXJpcyIsdGl0bGU6IkRlc2lnbmVyIn0se2lkOjMsbmFtZToiQ2hhcmxpZSIsY2l0eToiTG9uZG9uIix0aXRsZToiTWFuYWdlciJ9LHtpZDo0LG5hbWU6IkRpYW5hIixjaXR5OiJNYWRyaWQiLHRpdGxlOiJFbmdpbmVlciJ9LHtpZDo1LG5hbWU6IkV0aGFuIixjaXR5OiJSb21lIix0aXRsZToiU3VwcG9ydCJ9XX0KICAgICAgICAgIGRhdGFOYW1lPSJwZW9wbGUiCiAgICAgICAgPjwvZGVlcy10YWJsZT4KICAgICAgPC9kaXY+CgogICAgICA8ZGl2IGNsYXNzPSJkZW1vLXNlY3Rpb24iPgogICAgICAgIDxoMiBjbGFzcz0iZGVtby10aXRsZSI+V2lkZSBQcm9wZXJ0aWVzICsgTWFueSBBY3Rpb25zPC9oMj4KICAgICAgICA8cCBjbGFzcz0iZGVtby1kZXNjcmlwdGlvbiI+QSB0YWJsZSB3aXRoIG1hbnkgY29sdW1ucyBhbmQgcmljaCBhY3Rpb25zIHRvIHN0cmVzcyB0ZXN0IGxheW91dCBhbmQgc3RpY2t5IEFjdGlvbnMuPC9wPgogICAgICAgIDxkZWVzLXRhYmxlCiAgICAgICAgICBoZWFkaW5nMT0iUGVvcGxlIERpcmVjdG9yeSIKICAgICAgICAgIGhlYWRpbmcyPSJNYW55IHByb3BlcnRpZXMgYW5kIGFjdGlvbnMiCiAgICAgICAgICAuY29sdW1ucz0ke1t7a2V5OiJpZCIsaGVhZGVyOiJJRCIsc29ydGFibGU6ITB9LHtrZXk6Im5hbWUiLGhlYWRlcjoiTmFtZSIsc29ydGFibGU6ITB9LHtrZXk6InJvbGUiLGhlYWRlcjoiUm9sZSIsc29ydGFibGU6ITB9LHtrZXk6ImRlcGFydG1lbnQiLGhlYWRlcjoiRGVwYXJ0bWVudCIsc29ydGFibGU6ITB9LHtrZXk6ImVtYWlsIixoZWFkZXI6IkVtYWlsIn0se2tleToicGhvbmUiLGhlYWRlcjoiUGhvbmUifSx7a2V5OiJsb2NhdGlvbiIsaGVhZGVyOiJMb2NhdGlvbiIsc29ydGFibGU6ITB9LHtrZXk6InN0YXR1cyIsaGVhZGVyOiJTdGF0dXMiLHNvcnRhYmxlOiEwfSx7a2V5OiJjcmVhdGVkQXQiLGhlYWRlcjoiQ3JlYXRlZCIsc29ydGFibGU6ITB9LHtrZXk6InVwZGF0ZWRBdCIsaGVhZGVyOiJVcGRhdGVkIixzb3J0YWJsZTohMH0se2tleToibGFzdExvZ2luIixoZWFkZXI6Ikxhc3QgTG9naW4iLHNvcnRhYmxlOiEwfSx7a2V5OiJwcm9qZWN0cyIsaGVhZGVyOiJQcm9qZWN0cyJ9LHtrZXk6InRhZ3MiLGhlYWRlcjoiVGFncyJ9LHtrZXk6Im5vdGVzIixoZWFkZXI6Ik5vdGVzIn1dfQogICAgICAgICAgLmRhdGE9JHtbe2lkOjEsbmFtZToiQWxpY2UgSm9obnNvbiIscm9sZToiRW5naW5lZXIiLGRlcGFydG1lbnQ6IlImRCIsZW1haWw6ImFsaWNlQGNvcnAuY29tIixwaG9uZToiKzEgMjAyIDU1NSAwMTExIixsb2NhdGlvbjoiQmVybGluIixzdGF0dXM6IkFjdGl2ZSIsY3JlYXRlZEF0OiIyMDIzLTAxLTEyIix1cGRhdGVkQXQ6IjIwMjQtMDUtMDMiLGxhc3RMb2dpbjoiMjAyNC0xMC0wMSIscHJvamVjdHM6NSx0YWdzOiJ0eXBlc2NyaXB0LCB1aSIsbm90ZXM6Ik1lbnRvciJ9LHtpZDoyLG5hbWU6IkJvYiBTbWl0aCIscm9sZToiRGVzaWduZXIiLGRlcGFydG1lbnQ6IkRlc2lnbiIsZW1haWw6ImJvYkBjb3JwLmNvbSIscGhvbmU6IisxIDIwMiA1NTUgMDExMiIsbG9jYXRpb246IlBhcmlzIixzdGF0dXM6IkFjdGl2ZSIsY3JlYXRlZEF0OiIyMDIyLTExLTA1Iix1cGRhdGVkQXQ6IjIwMjQtMDQtMTAiLGxhc3RMb2dpbjoiMjAyNC0wOS0yOCIscHJvamVjdHM6OCx0YWdzOiJmaWdtYSwgYnJhbmQiLG5vdGVzOiJQYXJ0LXRpbWUifSx7aWQ6MyxuYW1lOiJDaGFybGllIERhdmlzIixyb2xlOiJNYW5hZ2VyIixkZXBhcnRtZW50OiJPcHMiLGVtYWlsOiJjaGFybGllQGNvcnAuY29tIixwaG9uZToiKzEgMjAyIDU1NSAwMTEzIixsb2NhdGlvbjoiTG9uZG9uIixzdGF0dXM6Ik9uIExlYXZlIixjcmVhdGVkQXQ6IjIwMjEtMDQtMjEiLHVwZGF0ZWRBdDoiMjAyNC0wMi0xNSIsbGFzdExvZ2luOiIyMDI0LTA4LTEyIixwcm9qZWN0czozLHRhZ3M6InNyZSwgbGVhZGVyc2hpcCIsbm90ZXM6IiJ9LHtpZDo0LG5hbWU6IkRpYW5hIE1hcnRpbmV6Iixyb2xlOiJFbmdpbmVlciIsZGVwYXJ0bWVudDoiUGxhdGZvcm0iLGVtYWlsOiJkaWFuYUBjb3JwLmNvbSIscGhvbmU6IisxIDIwMiA1NTUgMDExNCIsbG9jYXRpb246Ik1hZHJpZCIsc3RhdHVzOiJBY3RpdmUiLGNyZWF0ZWRBdDoiMjAyMC0wNi0zMCIsdXBkYXRlZEF0OiIyMDI0LTA2LTI1IixsYXN0TG9naW46IjIwMjQtMTAtMDIiLHByb2plY3RzOjYsdGFnczoibm9kZSwgYXBpIixub3RlczoiT24tY2FsbCJ9LHtpZDo1LG5hbWU6IkV0aGFuIEJyb3duIixyb2xlOiJTdXBwb3J0IixkZXBhcnRtZW50OiJDUyIsZW1haWw6ImV0aGFuQGNvcnAuY29tIixwaG9uZToiKzEgMjAyIDU1NSAwMTE1Iixsb2NhdGlvbjoiUm9tZSIsc3RhdHVzOiJJbmFjdGl2ZSIsY3JlYXRlZEF0OiIyMDE5LTA5LTE4Iix1cGRhdGVkQXQ6IjIwMjQtMDMtMDkiLGxhc3RMb2dpbjoiMjAyNC0wNi0xOSIscHJvamVjdHM6Mix0YWdzOiJ6ZW5kZXNrIixub3RlczoiUmVoaXJlIn0se2lkOjYsbmFtZToiRmlvbmEgQ2xhcmsiLHJvbGU6IlFBIixkZXBhcnRtZW50OiJRQSIsZW1haWw6ImZpb25hQGNvcnAuY29tIixwaG9uZToiKzEgMjAyIDU1NSAwMTE2Iixsb2NhdGlvbjoiVmllbm5hIixzdGF0dXM6IkFjdGl2ZSIsY3JlYXRlZEF0OiIyMDIyLTAzLTE0Iix1cGRhdGVkQXQ6IjIwMjQtMDMtMDEiLGxhc3RMb2dpbjoiMjAyNC0wOS0wNyIscHJvamVjdHM6Nyx0YWdzOiJwbGF5d3JpZ2h0Iixub3RlczoiIn1dfQogICAgICAgICAgLmRhdGFBY3Rpb25zPSR7W3tuYW1lOiJWaWV3IixpY29uTmFtZToibHVjaWRlOmV5ZSIsdHlwZTpbImluUm93IiwiY29udGV4dG1lbnUiXSxhY3Rpb25GdW5jOmFzeW5jKHtpdGVtOnR9KT0+e2NvbnNvbGUubG9nKCJ2aWV3Iix0KX19LHtuYW1lOiJFZGl0IixpY29uTmFtZToibHVjaWRlOmVkaXQiLHR5cGU6WyJpblJvdyIsImNvbnRleHRtZW51Il0sYWN0aW9uRnVuYzphc3luYyh7aXRlbTp0fSk9Pntjb25zb2xlLmxvZygiZWRpdCIsdCl9fSx7bmFtZToiRGVsZXRlIixpY29uTmFtZToibHVjaWRlOnRyYXNoIix0eXBlOlsiaW5Sb3ciLCJjb250ZXh0bWVudSJdLGFjdGlvbkZ1bmM6YXN5bmMoe2l0ZW06dH0pPT57Y29uc29sZS5sb2coImRlbGV0ZSIsdCl9fSx7bmFtZToiTWVzc2FnZSIsaWNvbk5hbWU6Imx1Y2lkZTptZXNzYWdlLXNxdWFyZSIsdHlwZTpbImluUm93Il0sYWN0aW9uRnVuYzphc3luYyh7aXRlbTp0fSk9Pntjb25zb2xlLmxvZygibWVzc2FnZSIsdCl9fSx7bmFtZToiSGlzdG9yeSIsaWNvbk5hbWU6Imx1Y2lkZTpjbG9jayIsdHlwZTpbImluUm93Il0sYWN0aW9uRnVuYzphc3luYyh7aXRlbTp0fSk9Pntjb25zb2xlLmxvZygiaGlzdG9yeSIsdCl9fSx7bmFtZToiQWRkIE5ldyIsaWNvbk5hbWU6Imx1Y2lkZTpwbHVzIix0eXBlOlsiaGVhZGVyIl0sYWN0aW9uRnVuYzphc3luYyh7dGFibGU6dH0pPT57Y29uc29sZS5sb2coImFkZCIpfX0se25hbWU6IkV4cG9ydCBDU1YiLGljb25OYW1lOiJsdWNpZGU6ZG93bmxvYWQiLHR5cGU6WyJoZWFkZXIiXSxhY3Rpb25GdW5jOmFzeW5jKHt0YWJsZTp0fSk9Pntjb25zb2xlLmxvZygiZXhwb3J0Iil9fSx7bmFtZToiQnVsayBEZWxldGUiLGljb25OYW1lOiJsdWNpZGU6dHJhc2gtMiIsdHlwZTpbImZvb3RlciJdLGFjdGlvbkZ1bmM6YXN5bmMoe3RhYmxlOnR9KT0+e2NvbnNvbGUubG9nKCJidWxrIGRlbGV0ZSIpfX1dfQogICAgICAgID48L2RlZXMtdGFibGU+CiAgICAgIDwvZGl2PgoKICAgICAgPGRpdiBjbGFzcz0iZGVtby1zZWN0aW9uIj4KICAgICAgICA8aDIgY2xhc3M9ImRlbW8tdGl0bGUiPlNjcm9sbGFibGUgU21hbGwgSGVpZ2h0PC9oMj4KICAgICAgICA8cCBjbGFzcz0iZGVtby1kZXNjcmlwdGlvbiI+U2FtZSBhcyBhYm92ZSwgYnV0IHdpdGggbWFueSBpdGVtcyBhbmQgYSBzbWFsbCBmaXhlZCBoZWlnaHQgdG8gZm9yY2UgdmVydGljYWwgc2Nyb2xsaW5nIGluc2lkZSB0aGUgdGFibGUuIEFjdGlvbnMgcmVtYWluIHZpc2libGUgb24gdGhlIHJpZ2h0OyBob3Jpem9udGFsIHNjcm9sbCBhcHBlYXJzIGlmIG5lZWRlZC48L3A+CiAgICAgICAgPHN0eWxlPgogICAgICAgICAgI3Njcm9sbFNtYWxsSGVpZ2h0IHsgLS10YWJsZS1tYXgtaGVpZ2h0OiAyNDBweDsgfQogICAgICAgIDwvc3R5bGU+CiAgICAgICAgPGRlZXMtdGFibGUKICAgICAgICAgIGlkPSJzY3JvbGxTbWFsbEhlaWdodCIKICAgICAgICAgIC5zdGlja3lIZWFkZXI9JHshMH0KICAgICAgICAgIGhlYWRpbmcxPSJQZW9wbGUgRGlyZWN0b3J5IChTY3JvbGxhYmxlKSIKICAgICAgICAgIGhlYWRpbmcyPSJGb3JjZWQgc2Nyb2xsaW5nIHdpdGggbWFueSBpdGVtcyIKICAgICAgICAgIC5jb2x1bW5zPSR7W3trZXk6ImlkIixoZWFkZXI6IklEIixzb3J0YWJsZTohMH0se2tleToibmFtZSIsaGVhZGVyOiJOYW1lIixzb3J0YWJsZTohMH0se2tleToicm9sZSIsaGVhZGVyOiJSb2xlIixzb3J0YWJsZTohMH0se2tleToiZGVwYXJ0bWVudCIsaGVhZGVyOiJEZXBhcnRtZW50Iixzb3J0YWJsZTohMH0se2tleToiZW1haWwiLGhlYWRlcjoiRW1haWwifSx7a2V5OiJwaG9uZSIsaGVhZGVyOiJQaG9uZSJ9LHtrZXk6ImxvY2F0aW9uIixoZWFkZXI6IkxvY2F0aW9uIixzb3J0YWJsZTohMH0se2tleToic3RhdHVzIixoZWFkZXI6IlN0YXR1cyIsc29ydGFibGU6ITB9LHtrZXk6ImNyZWF0ZWRBdCIsaGVhZGVyOiJDcmVhdGVkIixzb3J0YWJsZTohMH0se2tleToidXBkYXRlZEF0IixoZWFkZXI6IlVwZGF0ZWQiLHNvcnRhYmxlOiEwfSx7a2V5OiJsYXN0TG9naW4iLGhlYWRlcjoiTGFzdCBMb2dpbiIsc29ydGFibGU6ITB9LHtrZXk6InByb2plY3RzIixoZWFkZXI6IlByb2plY3RzIn0se2tleToidGFncyIsaGVhZGVyOiJUYWdzIn0se2tleToibm90ZXMiLGhlYWRlcjoiTm90ZXMifV19CiAgICAgICAgICAuZGF0YT0ke0FycmF5LmZyb20oe2xlbmd0aDoxMDB9LCh0LGUpPT4oe2lkOmUrMSxuYW1lOmBVc2VyICR7ZSsxfWAscm9sZTpbIkVuZ2luZWVyIiwiRGVzaWduZXIiLCJNYW5hZ2VyIiwiUUEiLCJTdXBwb3J0Il1bZSU1XSxkZXBhcnRtZW50OlsiUiZEIiwiRGVzaWduIiwiT3BzIiwiUUEiLCJDUyJdW2UlNV0sZW1haWw6YHVzZXIke2UrMX1AY29ycC5jb21gLHBob25lOmArMSAyMDIgNTU1ICR7U3RyaW5nKDFlMytlKS5zbGljZSgtNCl9YCxsb2NhdGlvbjpbIkJlcmxpbiIsIlBhcmlzIiwiTG9uZG9uIiwiTWFkcmlkIiwiUm9tZSJdW2UlNV0sc3RhdHVzOlsiQWN0aXZlIiwiSW5hY3RpdmUiLCJPbiBMZWF2ZSJdW2UlM10sY3JlYXRlZEF0OmAyMDIzLSR7U3RyaW5nKGUlMTIrMSkucGFkU3RhcnQoMiwiMCIpfS0ke1N0cmluZyhlJTI4KzEpLnBhZFN0YXJ0KDIsIjAiKX1gLHVwZGF0ZWRBdDpgMjAyNC0ke1N0cmluZygoZSszKSUxMisxKS5wYWRTdGFydCgyLCIwIil9LSR7U3RyaW5nKChlKzcpJTI4KzEpLnBhZFN0YXJ0KDIsIjAiKX1gLGxhc3RMb2dpbjpgMjAyNC0ke1N0cmluZygoZSs2KSUxMisxKS5wYWRTdGFydCgyLCIwIil9LSR7U3RyaW5nKChlKzEwKSUyOCsxKS5wYWRTdGFydCgyLCIwIil9YCxwcm9qZWN0czplJTEyLHRhZ3M6ZSUyPyJ0eXBlc2NyaXB0IjoiZGVzaWduIixub3RlczplJTM/IiI6Ik5vdGUifSkpfQogICAgICAgICAgLmRhdGFBY3Rpb25zPSR7W3tuYW1lOiJWaWV3IixpY29uTmFtZToibHVjaWRlOmV5ZSIsdHlwZTpbImluUm93Il0sYWN0aW9uRnVuYzphc3luYyh7aXRlbTp0fSk9Pnt9fSx7bmFtZToiRWRpdCIsaWNvbk5hbWU6Imx1Y2lkZTplZGl0Iix0eXBlOlsiaW5Sb3ciXSxhY3Rpb25GdW5jOmFzeW5jKHtpdGVtOnR9KT0+e319LHtuYW1lOiJEZWxldGUiLGljb25OYW1lOiJsdWNpZGU6dHJhc2giLHR5cGU6WyJpblJvdyJdLGFjdGlvbkZ1bmM6YXN5bmMoe2l0ZW06dH0pPT57fX1dfQogICAgICAgID48L2RlZXMtdGFibGU+CiAgICAgIDwvZGl2PgogICAgPC9kaXY+CiAgPC9kaXY+CmB9KTt2YXIgSXV0LE51dD1iKCgpPT57dWUoKTtkYSgpO3FlKCk7SXV0PVtDZSxwLmRlZmF1bHRTdHlsZXMsUWAKICAgICAgLyogVE9ETzogTWlncmF0ZSBoYXJkY29kZWQgdmFsdWVzIHRvIC0tZGVlcy0qIENTUyB2YXJpYWJsZXMgKi8KICAgICAgOmhvc3QgewogICAgICAgIGRpc3BsYXk6IGJsb2NrOwogICAgICAgIHdpZHRoOiAxMDAlOwogICAgICB9CgogICAgICAubWFpbmJveCB7CiAgICAgICAgY29sb3I6ICR7cC5iZFRoZW1lKCJoc2woMCAwJSAzLjklKSIsImhzbCgwIDAlIDk4JSkiKX07CiAgICAgICAgZm9udC1mYW1pbHk6ICR7SnR9OwogICAgICAgIGZvbnQtd2VpZ2h0OiA0MDA7CiAgICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgICAgIGRpc3BsYXk6IGJsb2NrOwogICAgICAgIHdpZHRoOiAxMDAlOwogICAgICAgIGJhY2tncm91bmQ6ICR7cC5iZFRoZW1lKCJoc2woMCAwJSAxMDAlKSIsImhzbCgwIDAlIDMuOSUpIil9OwogICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICR7cC5iZFRoZW1lKCJoc2woMCAwJSA4OS44JSkiLCJoc2woMCAwJSAxNC45JSkiKX07CiAgICAgICAgYm9yZGVyLXJhZGl1czogOHB4OwogICAgICAgIG92ZXJmbG93OiBoaWRkZW47CiAgICAgICAgY3Vyc29yOiBkZWZhdWx0OwogICAgICB9CgogICAgICAuaGVhZGVyIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIHBhZGRpbmc6IDE2cHggMjRweDsKICAgICAgICBtaW4taGVpZ2h0OiA2NHB4OwogICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAke3AuYmRUaGVtZSgiaHNsKDAgMCUgODkuOCUpIiwiaHNsKDAgMCUgMTQuOSUpIil9OwogICAgICB9CgogICAgICAuaGVhZGluZ0NvbnRhaW5lciB7CiAgICAgICAgZmxleDogMTsKICAgICAgfQoKICAgICAgLmhlYWRpbmcgewogICAgICAgIGxpbmUtaGVpZ2h0OiAxLjU7CiAgICAgIH0KCiAgICAgIC5oZWFkaW5nMSB7CiAgICAgICAgZm9udC1zaXplOiAxOHB4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7CiAgICAgICAgY29sb3I6ICR7cC5iZFRoZW1lKCJoc2woMCAwJSA5JSkiLCJoc2woMCAwJSA5NSUpIil9OwogICAgICAgIGxldHRlci1zcGFjaW5nOiAtMC4wMjVlbTsKICAgICAgfQogICAgICAKICAgICAgLmhlYWRpbmcyIHsKICAgICAgICBmb250LXNpemU6IDE0cHg7CiAgICAgICAgY29sb3I6ICR7cC5iZFRoZW1lKCJoc2woMjE1LjQgMTYuMyUgNTYuOSUpIiwiaHNsKDIxNSAyMC4yJSA1NS4xJSkiKX07CiAgICAgICAgbWFyZ2luLXRvcDogMnB4OwogICAgICB9CgogICAgICAuaGVhZGluZ1NlcGFyYXRpb24gewogICAgICAgIGRpc3BsYXk6IG5vbmU7CiAgICAgIH0KCiAgICAgIC5oZWFkZXJBY3Rpb25zIHsKICAgICAgICB1c2VyLXNlbGVjdDogbm9uZTsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7CiAgICAgICAgZ2FwOiA4cHg7CiAgICAgIH0KICAgICAgCiAgICAgIC5oZWFkZXJBY3Rpb24gewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBnYXA6IDZweDsKICAgICAgICBwYWRkaW5nOiA2cHggMTJweDsKICAgICAgICBmb250LXNpemU6IDE0cHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDsKICAgICAgICBjb2xvcjogJHtwLmJkVGhlbWUoImhzbCgwIDAlIDQ1LjElKSIsImhzbCgwIDAlIDYzLjklKSIpfTsKICAgICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDsKICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAke3AuYmRUaGVtZSgiaHNsKDAgMCUgODkuOCUpIiwiaHNsKDAgMCUgMTQuOSUpIil9OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDZweDsKICAgICAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuMTVzIGVhc2U7CiAgICAgIH0KCiAgICAgIC5oZWFkZXJBY3Rpb246aG92ZXIgewogICAgICAgIGNvbG9yOiAke3AuYmRUaGVtZSgiaHNsKDAgMCUgOSUpIiwiaHNsKDAgMCUgOTUlKSIpfTsKICAgICAgICBiYWNrZ3JvdW5kOiAke3AuYmRUaGVtZSgiaHNsKDAgMCUgOTUuMSUpIiwiaHNsKDAgMCUgMTQuOSUpIil9OwogICAgICAgIGJvcmRlci1jb2xvcjogJHtwLmJkVGhlbWUoImhzbCgwIDAlIDc5LjglKSIsImhzbCgwIDAlIDIwLjklKSIpfTsKICAgICAgfQoKICAgICAgLmhlYWRlckFjdGlvbiBkZWVzLWljb24gewogICAgICAgIHdpZHRoOiAxNHB4OwogICAgICAgIGhlaWdodDogMTRweDsKICAgICAgfQoKICAgICAgLnNlYXJjaEdyaWQgewogICAgICAgIGRpc3BsYXk6IGdyaWQ7CiAgICAgICAgZ3JpZC1nYXA6IDE2cHg7CiAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAxZnIgbWF4LWNvbnRlbnQ7CiAgICAgICAgcGFkZGluZzogMTZweCAyNHB4OwogICAgICAgIGJhY2tncm91bmQ6ICR7cC5iZFRoZW1lKCJoc2woMjEwIDQwJSA5OCUpIiwiaHNsKDAgMCUgMy45JSkiKX07CiAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICR7cC5iZFRoZW1lKCJoc2woMCAwJSA4OS44JSkiLCJoc2woMCAwJSAxNC45JSkiKX07CiAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuMnMgZWFzZTsKICAgICAgfQoKICAgICAgQG1lZGlhIChtYXgtd2lkdGg6IDkwMHB4KSB7CiAgICAgICAgLnNlYXJjaEdyaWQgewogICAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAxZnI7CiAgICAgICAgfQogICAgICB9CgogICAgICAvKiBsZXQgc2VhcmNoIG1vZGUgc2l6ZSB0byBjb250ZW50IChubyBmb3JjZWQgd2lkdGgpICovCgogICAgICAuc2VhcmNoR3JpZC5oaWRkZW4gewogICAgICAgIGhlaWdodDogMHB4OwogICAgICAgIG9wYWNpdHk6IDA7CiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgICAgICBwYWRkaW5nOiAwcHggMjRweDsKICAgICAgICBib3JkZXItYm90dG9tLXdpZHRoOiAwcHg7CiAgICAgIH0KCiAgICAgIC50YWJsZVNjcm9sbCB7CiAgICAgICAgLyogZW5hYmxlIGhvcml6b250YWwgc2Nyb2xsIG9ubHkgd2hlbiBjb250ZW50IGV4Y2VlZHMgd2lkdGggKi8KICAgICAgICBvdmVyZmxvdy14OiBhdXRvOwogICAgICAgIC8qIHByZXZlbnQgdmVydGljYWwgc2Nyb2xsIGluc2lkZSB0aGUgdGFibGUgY29udGFpbmVyICovCiAgICAgICAgb3ZlcmZsb3cteTogaGlkZGVuOwogICAgICAgIC8qIGF2b2lkIHJlc2VydmluZyBleHRyYSBzcGFjZSBmb3IgY2xhc3NpYyBzY3JvbGxiYXJzIHdoZXJlIHBvc3NpYmxlICovCiAgICAgICAgc2Nyb2xsYmFyLWd1dHRlcjogc3RhYmxlIGJvdGgtZWRnZXM7CiAgICAgIH0KICAgICAgLyogSGlkZSBob3Jpem9udGFsIHNjcm9sbGJhciBlbnRpcmVseSB3aGVuIG5vdCB1c2luZyBzdGlja3kgaGVhZGVyICovCiAgICAgIDpob3N0KDpub3QoW3N0aWNreS1oZWFkZXJdKSkgLnRhYmxlU2Nyb2xsIHsKICAgICAgICAtbXMtb3ZlcmZsb3ctc3R5bGU6IG5vbmU7IC8qIElFL0VkZ2UgKi8KICAgICAgICBzY3JvbGxiYXItd2lkdGg6IG5vbmU7ICAgLyogRmlyZWZveCAoaGlkZXMgYm90aCBheGVzKSAqLwogICAgICB9CiAgICAgIDpob3N0KDpub3QoW3N0aWNreS1oZWFkZXJdKSkgLnRhYmxlU2Nyb2xsOjotd2Via2l0LXNjcm9sbGJhciB7CiAgICAgICAgZGlzcGxheTogbm9uZTsgLyogQ2hyb21lL1NhZmFyaSAqLwogICAgICB9CiAgICAgIC8qIEluIHN0aWNreS1oZWFkZXIgbW9kZSwgaGlkZSBvbmx5IHRoZSBob3Jpem9udGFsIHNjcm9sbGJhciBpbiBXZWJLaXQvQmxpbmsgKi8KICAgICAgOmhvc3QoW3N0aWNreS1oZWFkZXJdKSAudGFibGVTY3JvbGw6Oi13ZWJraXQtc2Nyb2xsYmFyOmhvcml6b250YWwgewogICAgICAgIGhlaWdodDogMHB4OwogICAgICB9CiAgICAgIDpob3N0KFtzdGlja3ktaGVhZGVyXSkgLnRhYmxlU2Nyb2xsIHsKICAgICAgICBtYXgtaGVpZ2h0OiB2YXIoLS10YWJsZS1tYXgtaGVpZ2h0LCAzNjBweCk7CiAgICAgICAgb3ZlcmZsb3c6IGF1dG87CiAgICAgIH0KCiAgICAgIHRhYmxlIHsKICAgICAgICAvKiBhbGxvdyB0YWJsZSB0byBncm93IHdpZGVyIHRoYW4gY29udGFpbmVyIHNvIGFjdGlvbnMgY29sdW1uIGNhbiBzdGljayAqLwogICAgICAgIHdpZHRoOiBtYXgtY29udGVudDsKICAgICAgICBtaW4td2lkdGg6IDEwMCU7CiAgICAgICAgY2FwdGlvbi1zaWRlOiBib3R0b207CiAgICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgICAgIGJvcmRlci1jb2xsYXBzZTogc2VwYXJhdGU7CiAgICAgICAgYm9yZGVyLXNwYWNpbmc6IDA7CiAgICAgIH0KICAgICAgCiAgICAgIC5ub0RhdGFTZXQgewogICAgICAgIHBhZGRpbmc6IDQ4cHggMjRweDsKICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7CiAgICAgICAgY29sb3I6ICR7cC5iZFRoZW1lKCJoc2woMjE1LjQgMTYuMyUgNTYuOSUpIiwiaHNsKDIxNSAyMC4yJSA1NS4xJSkiKX07CiAgICAgIH0KICAgICAgCiAgICAgIHRoZWFkIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke3AuYmRUaGVtZSgiaHNsKDIxMCA0MCUgOTYuMSUpIiwiaHNsKDAgMCUgOSUpIil9OwogICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAke3AuYmRUaGVtZSgiaHNsKDAgMCUgNzkuOCUpIiwiaHNsKDAgMCUgMjAuOSUpIil9OwogICAgICB9CiAgICAgIDpob3N0KFtzdGlja3ktaGVhZGVyXSkgdGhlYWQgdGggewogICAgICAgIHBvc2l0aW9uOiBzdGlja3k7CiAgICAgICAgdG9wOiAwOwogICAgICAgIHotaW5kZXg6IDI7CiAgICAgIH0KICAgICAgCiAgICAgIHRib2R5IHRyIHsKICAgICAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kLWNvbG9yIDAuMTVzIGVhc2U7CiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICB9CiAgICAgIAogICAgICAvKiBEZWZhdWx0IGhvcml6b250YWwgbGluZXMgKGJvdHRvbSBib3JkZXIgb25seSkgKi8KICAgICAgdGJvZHkgdHIgewogICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAke3AuYmRUaGVtZSgiaHNsKDAgMCUgODkuOCUpIiwiaHNsKDAgMCUgMTQuOSUpIil9OwogICAgICB9CiAgICAgIAogICAgICB0Ym9keSB0cjpsYXN0LWNoaWxkIHsKICAgICAgICBib3JkZXItYm90dG9tOiBub25lOwogICAgICB9CiAgICAgIAogICAgICAvKiBGdWxsIGhvcml6b250YWwgbGluZXMgd2hlbiBlbmFibGVkICovCiAgICAgIDpob3N0KFtzaG93LWhvcml6b250YWwtbGluZXNdKSB0Ym9keSB0ciB7CiAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICR7cC5iZFRoZW1lKCJoc2woMCAwJSA4OS44JSkiLCJoc2woMCAwJSAxNC45JSkiKX07CiAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICR7cC5iZFRoZW1lKCJoc2woMCAwJSA4OS44JSkiLCJoc2woMCAwJSAxNC45JSkiKX07CiAgICAgIH0KICAgICAgCiAgICAgIDpob3N0KFtzaG93LWhvcml6b250YWwtbGluZXNdKSB0Ym9keSB0cjpmaXJzdC1jaGlsZCB7CiAgICAgICAgYm9yZGVyLXRvcDogbm9uZTsKICAgICAgfQogICAgICAKICAgICAgOmhvc3QoW3Nob3ctaG9yaXpvbnRhbC1saW5lc10pIHRib2R5IHRyOmxhc3QtY2hpbGQgewogICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAke3AuYmRUaGVtZSgiaHNsKDAgMCUgODkuOCUpIiwiaHNsKDAgMCUgMTQuOSUpIil9OwogICAgICB9CiAgICAgIAogICAgICB0Ym9keSB0cjpob3ZlciB7CiAgICAgICAgYmFja2dyb3VuZDogJHtwLmJkVGhlbWUoImhzbCgyMTAgNDAlIDk2LjElIC8gMC41KSIsImhzbCgwIDAlIDE0LjklIC8gMC41KSIpfTsKICAgICAgfQogICAgICAKICAgICAgLyogQ29sdW1uIGhvdmVyIGVmZmVjdCBmb3IgYmV0dGVyIHRyYWNlYWJpbGl0eSAqLwogICAgICB0ZCB7CiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICB9CiAgICAgIAogICAgICB0ZDo6YWZ0ZXIgewogICAgICAgIGNvbnRlbnQ6ICcnOwogICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgICB0b3A6IDA7CiAgICAgICAgYm90dG9tOiAwOwogICAgICAgIGxlZnQ6IDA7CiAgICAgICAgcmlnaHQ6IDA7CiAgICAgICAgYmFja2dyb3VuZDogJHtwLmJkVGhlbWUoImhzbCgyMTAgNDAlIDk2LjElIC8gMC4zKSIsImhzbCgwIDAlIDE0LjklIC8gMC4zKSIpfTsKICAgICAgICBvcGFjaXR5OiAwOwogICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lOwogICAgICAgIHRyYW5zaXRpb246IG9wYWNpdHkgMC4xNXMgZWFzZTsKICAgICAgICB6LWluZGV4OiAtMTsKICAgICAgfQogICAgICAKICAgICAgdGQ6aG92ZXI6OmFmdGVyIHsKICAgICAgICBvcGFjaXR5OiAxOwogICAgICB9CiAgICAgIAogICAgICAvKiBHcmlkIG1vZGUgLSBzaG93cyBib3RoIHZlcnRpY2FsIGFuZCBob3Jpem9udGFsIGxpbmVzICovCiAgICAgIDpob3N0KFtzaG93LWdyaWRdKSB0aCB7CiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHtwLmJkVGhlbWUoImhzbCgwIDAlIDg5LjglKSIsImhzbCgwIDAlIDE0LjklKSIpfTsKICAgICAgICBib3JkZXItbGVmdDogbm9uZTsKICAgICAgICBib3JkZXItdG9wOiBub25lOwogICAgICB9CiAgICAgIAogICAgICA6aG9zdChbc2hvdy1ncmlkXSkgdGQgewogICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICR7cC5iZFRoZW1lKCJoc2woMCAwJSA4OS44JSkiLCJoc2woMCAwJSAxNC45JSkiKX07CiAgICAgICAgYm9yZGVyLWxlZnQ6IG5vbmU7CiAgICAgICAgYm9yZGVyLXRvcDogbm9uZTsKICAgICAgfQogICAgICAKICAgICAgOmhvc3QoW3Nob3ctZ3JpZF0pIHRoOmZpcnN0LWNoaWxkLAogICAgICA6aG9zdChbc2hvdy1ncmlkXSkgdGQ6Zmlyc3QtY2hpbGQgewogICAgICAgIGJvcmRlci1sZWZ0OiAxcHggc29saWQgJHtwLmJkVGhlbWUoImhzbCgwIDAlIDg5LjglKSIsImhzbCgwIDAlIDE0LjklKSIpfTsKICAgICAgfQogICAgICAKICAgICAgOmhvc3QoW3Nob3ctZ3JpZF0pIHRib2R5IHRyOmZpcnN0LWNoaWxkIHRkIHsKICAgICAgICBib3JkZXItdG9wOiBub25lOwogICAgICB9CgogICAgICAvKiBTdGlja3kgQWN0aW9ucyBjb2x1bW4gKHJpZ2h0IHBpbm5lZCkgKi8KICAgICAgdGhlYWQgdGguYWN0aW9uc0NvbCwKICAgICAgdGJvZHkgdGQuYWN0aW9uc0NvbCB7CiAgICAgICAgcG9zaXRpb246IHN0aWNreTsKICAgICAgICByaWdodDogMDsKICAgICAgICBiYWNrZ3JvdW5kOiAke3AuYmRUaGVtZSgiaHNsKDAgMCUgMTAwJSkiLCJoc2woMCAwJSAzLjklKSIpfTsKICAgICAgfQogICAgICB0aGVhZCB0aC5hY3Rpb25zQ29sIHsgei1pbmRleDogMzsgfQogICAgICB0Ym9keSB0ZC5hY3Rpb25zQ29sIHsKICAgICAgICB6LWluZGV4OiAxOwogICAgICAgIGJveC1zaGFkb3c6IC0xcHggMCAwIDAgJHtwLmJkVGhlbWUoImhzbCgwIDAlIDg5LjglKSIsImhzbCgwIDAlIDE0LjklKSIpfTsKICAgICAgfQogICAgICAKICAgICAgdGJvZHkgdHIuc2VsZWN0ZWQgewogICAgICAgIGJhY2tncm91bmQ6ICR7cC5iZFRoZW1lKCJoc2woMjEwIDQwJSA5Ni4xJSkiLCJoc2woMCAwJSAxNC45JSkiKX07CiAgICAgIH0KCiAgICAgIHRib2R5IHRyLmhhc0F0dGFjaG1lbnQgewogICAgICAgIGJhY2tncm91bmQ6ICR7cC5iZFRoZW1lKCJoc2woMTQyLjEgNzYuMiUgMzYuMyUgLyAwLjEpIiwiaHNsKDE0Mi4xIDc2LjIlIDM2LjMlIC8gMC4xKSIpfTsKICAgICAgfQoKICAgICAgdGggewogICAgICAgIGhlaWdodDogNDhweDsKICAgICAgICBwYWRkaW5nOiAxMnB4IDI0cHg7CiAgICAgICAgdGV4dC1hbGlnbjogbGVmdDsKICAgICAgICBmb250LXdlaWdodDogNTAwOwogICAgICAgIGNvbG9yOiAke3AuYmRUaGVtZSgiaHNsKDIxNS40IDE2LjMlIDQ2LjklKSIsImhzbCgyMTUgMjAuMiUgNjUuMSUpIil9OwogICAgICAgIGxldHRlci1zcGFjaW5nOiAtMC4wMWVtOwogICAgICB9CiAgICAgIAogICAgICA6aG9zdChbc2hvdy12ZXJ0aWNhbC1saW5lc10pIHRoIHsKICAgICAgICBib3JkZXItcmlnaHQ6IDFweCBzb2xpZCAke3AuYmRUaGVtZSgiaHNsKDAgMCUgODkuOCUpIiwiaHNsKDAgMCUgMTQuOSUpIil9OwogICAgICB9CiAgICAgIAogICAgICB0ZCB7CiAgICAgICAgcGFkZGluZzogMTJweCAyNHB4OwogICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7CiAgICAgICAgY29sb3I6ICR7cC5iZFRoZW1lKCJoc2woMCAwJSAzLjklKSIsImhzbCgwIDAlIDk4JSkiKX07CiAgICAgIH0KICAgICAgCiAgICAgIDpob3N0KFtzaG93LXZlcnRpY2FsLWxpbmVzXSkgdGQgewogICAgICAgIGJvcmRlci1yaWdodDogMXB4IHNvbGlkICR7cC5iZFRoZW1lKCJoc2woMCAwJSA4OS44JSkiLCJoc2woMCAwJSAxNC45JSkiKX07CiAgICAgIH0KICAgICAgCiAgICAgIHRoOmZpcnN0LWNoaWxkLAogICAgICB0ZDpmaXJzdC1jaGlsZCB7CiAgICAgICAgcGFkZGluZy1sZWZ0OiAyNHB4OwogICAgICB9CiAgICAgIAogICAgICB0aDpsYXN0LWNoaWxkLAogICAgICB0ZDpsYXN0LWNoaWxkIHsKICAgICAgICBwYWRkaW5nLXJpZ2h0OiAyNHB4OwogICAgICB9CiAgICAgIAogICAgICA6aG9zdChbc2hvdy12ZXJ0aWNhbC1saW5lc10pIHRoOmxhc3QtY2hpbGQsCiAgICAgIDpob3N0KFtzaG93LXZlcnRpY2FsLWxpbmVzXSkgdGQ6bGFzdC1jaGlsZCB7CiAgICAgICAgYm9yZGVyLXJpZ2h0OiBub25lOwogICAgICB9CiAgICAgIAogICAgICAuaW5uZXJDZWxsQ29udGFpbmVyIHsKICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgICAgbWluLWhlaWdodDogMjRweDsKICAgICAgICBsaW5lLWhlaWdodDogMjRweDsKICAgICAgfQogICAgICB0ZCBpbnB1dCB7CiAgICAgICAgcG9zaXRpb246IGFic29sdXRlOwogICAgICAgIHRvcDogNHB4OwogICAgICAgIGJvdHRvbTogNHB4OwogICAgICAgIGxlZnQ6IDIwcHg7CiAgICAgICAgcmlnaHQ6IDIwcHg7CiAgICAgICAgd2lkdGg6IGNhbGMoMTAwJSAtIDQwcHgpOwogICAgICAgIGhlaWdodDogY2FsYygxMDAlIC0gOHB4KTsKICAgICAgICBwYWRkaW5nOiAwIDEycHg7CiAgICAgICAgb3V0bGluZTogbm9uZTsKICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAke3AuYmRUaGVtZSgiaHNsKDAgMCUgODkuOCUpIiwiaHNsKDAgMCUgMTQuOSUpIil9OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDZweDsKICAgICAgICBiYWNrZ3JvdW5kOiAke3AuYmRUaGVtZSgiaHNsKDAgMCUgMTAwJSkiLCJoc2woMCAwJSA5JSkiKX07CiAgICAgICAgY29sb3I6ICR7cC5iZFRoZW1lKCJoc2woMCAwJSAzLjklKSIsImhzbCgwIDAlIDk4JSkiKX07CiAgICAgICAgZm9udC1mYW1pbHk6IGluaGVyaXQ7CiAgICAgICAgZm9udC1zaXplOiBpbmhlcml0OwogICAgICAgIGZvbnQtd2VpZ2h0OiBpbmhlcml0OwogICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjE1cyBlYXNlOwogICAgICAgIGJveC1zaGFkb3c6IDAgMXB4IDJweCAwIHJnYigwIDAgMCAvIDAuMDUpOwogICAgICB9CiAgICAgIAogICAgICB0ZCBpbnB1dDpmb2N1cyB7CiAgICAgICAgYm9yZGVyLWNvbG9yOiAke3AuYmRUaGVtZSgiaHNsKDIyMi4yIDQ3LjQlIDUxLjIlKSIsImhzbCgyMTcuMiA5MS4yJSA1OS44JSkiKX07CiAgICAgICAgb3V0bGluZTogMnB4IHNvbGlkIHRyYW5zcGFyZW50OwogICAgICAgIG91dGxpbmUtb2Zmc2V0OiAycHg7CiAgICAgICAgYm94LXNoYWRvdzogMCAwIDAgMnB4ICR7cC5iZFRoZW1lKCJoc2woMjIyLjIgNDcuNCUgNTEuMiUgLyAwLjIpIiwiaHNsKDIxNy4yIDkxLjIlIDU5LjglIC8gMC4yKSIpfTsKICAgICAgfQoKICAgICAgLyogZmlsdGVyIHJvdyAqLwogICAgICB0aGVhZCB0ci5maWx0ZXJzUm93IHRoIHsKICAgICAgICBwYWRkaW5nOiA4cHggMTJweCAxMnB4IDEycHg7CiAgICAgIH0KICAgICAgdGhlYWQgdHIuZmlsdGVyc1JvdyB0aCBpbnB1dFt0eXBlPSd0ZXh0J10gewogICAgICAgIHdpZHRoOiAxMDAlOwogICAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7CiAgICAgICAgcGFkZGluZzogNnB4IDhweDsKICAgICAgICBmb250LXNpemU6IDEzcHg7CiAgICAgICAgYm9yZGVyLXJhZGl1czogNnB4OwogICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICR7cC5iZFRoZW1lKCJoc2woMCAwJSA4OS44JSkiLCJoc2woMCAwJSAxNC45JSkiKX07CiAgICAgICAgYmFja2dyb3VuZDogJHtwLmJkVGhlbWUoImhzbCgwIDAlIDEwMCUpIiwiaHNsKDAgMCUgOSUpIil9OwogICAgICAgIGNvbG9yOiAke3AuYmRUaGVtZSgiaHNsKDAgMCUgMy45JSkiLCJoc2woMCAwJSA5OCUpIil9OwogICAgICB9CiAgICAgIC5hY3Rpb25zQ29udGFpbmVyIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7CiAgICAgICAgZ2FwOiA0cHg7CiAgICAgIH0KICAgICAgCiAgICAgIC5hY3Rpb24gewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKICAgICAgICB3aWR0aDogMzJweDsKICAgICAgICBoZWlnaHQ6IDMycHg7CiAgICAgICAgYm9yZGVyLXJhZGl1czogNnB4OwogICAgICAgIGNvbG9yOiAke3AuYmRUaGVtZSgiaHNsKDIxNS40IDE2LjMlIDQ2LjklKSIsImhzbCgyMTUgMjAuMiUgNjUuMSUpIil9OwogICAgICAgIGN1cnNvcjogcG9pbnRlcjsKICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC4xNXMgZWFzZTsKICAgICAgfQoKICAgICAgLmFjdGlvbjpob3ZlciB7CiAgICAgICAgYmFja2dyb3VuZDogJHtwLmJkVGhlbWUoImhzbCgyMTAgNDAlIDk2LjElKSIsImhzbCgwIDAlIDE0LjklKSIpfTsKICAgICAgICBjb2xvcjogJHtwLmJkVGhlbWUoImhzbCgwIDAlIDklKSIsImhzbCgwIDAlIDk1JSkiKX07CiAgICAgIH0KCiAgICAgIC5hY3Rpb246YWN0aXZlIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke3AuYmRUaGVtZSgiaHNsKDIxMCA0MCUgOTYuMSUpIiwiaHNsKDAgMCUgMTEuOCUpIil9OwogICAgICB9CiAgICAgIAogICAgICAuYWN0aW9uIGRlZXMtaWNvbiB7CiAgICAgICAgd2lkdGg6IDE2cHg7CiAgICAgICAgaGVpZ2h0OiAxNnB4OwogICAgICB9CgogICAgICAuZm9vdGVyIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuOwogICAgICAgIGhlaWdodDogNTJweDsKICAgICAgICBwYWRkaW5nOiAwIDI0cHg7CiAgICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgICAgIGNvbG9yOiAke3AuYmRUaGVtZSgiaHNsKDIxNS40IDE2LjMlIDQ2LjklKSIsImhzbCgyMTUgMjAuMiUgNjUuMSUpIil9OwogICAgICAgIGJhY2tncm91bmQ6ICR7cC5iZFRoZW1lKCJoc2woMjEwIDQwJSA5Ni4xJSkiLCJoc2woMCAwJSA5JSkiKX07CiAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICR7cC5iZFRoZW1lKCJoc2woMCAwJSA4OS44JSkiLCJoc2woMCAwJSAxNC45JSkiKX07CiAgICAgIH0KCiAgICAgIC50YWJsZVN0YXRpc3RpY3MgewogICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7CiAgICAgIH0KCiAgICAgIC5mb290ZXJBY3Rpb25zIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGdhcDogOHB4OwogICAgICB9CgogICAgICAuZm9vdGVyQWN0aW9ucyAuZm9vdGVyQWN0aW9uIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgZ2FwOiA2cHg7CiAgICAgICAgcGFkZGluZzogNnB4IDEycHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDsKICAgICAgICBjb2xvcjogJHtwLmJkVGhlbWUoImhzbCgyMTUuNCAxNi4zJSA0Ni45JSkiLCJoc2woMjE1IDIwLjIlIDY1LjElKSIpfTsKICAgICAgICBib3JkZXItcmFkaXVzOiA2cHg7CiAgICAgICAgY3Vyc29yOiBwb2ludGVyOwogICAgICAgIHVzZXItc2VsZWN0OiBub25lOwogICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjE1cyBlYXNlOwogICAgICB9CgogICAgICAuZm9vdGVyQWN0aW9ucyAuZm9vdGVyQWN0aW9uOmhvdmVyIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke3AuYmRUaGVtZSgiaHNsKDAgMCUgOTUuMSUpIiwiaHNsKDAgMCUgMTQuOSUpIil9OwogICAgICAgIGNvbG9yOiAke3AuYmRUaGVtZSgiaHNsKDAgMCUgOSUpIiwiaHNsKDAgMCUgOTUlKSIpfTsKICAgICAgfQoKICAgICAgLmZvb3RlckFjdGlvbnMgLmZvb3RlckFjdGlvbiBkZWVzLWljb24gewogICAgICAgIHdpZHRoOiAxNHB4OwogICAgICAgIGhlaWdodDogMTRweDsKICAgICAgfQogIGBdfSk7ZnVuY3Rpb24gZVYodCxlKXtpZighZXx8ZS5sZW5ndGg9PT0wKXJldHVybltdO2xldCBhPXQoZVswXSk7cmV0dXJuIE9iamVjdC5rZXlzKGEpLm1hcChyPT4oe2tleTpyLGhlYWRlcjpyLHZhbHVlOnM9PnQocylbcl19KSl9ZnVuY3Rpb24gRnV0KHQsZSxhLGkpe2xldCByPSh0fHxbXSkuc2xpY2UoKTtpZighZSlyZXR1cm4gcjtsZXQgcz1lVihhLGkpLG49bmV3IFNldChyLm1hcChvPT5TdHJpbmcoby5rZXkpKSk7Zm9yKGxldCBvIG9mIHMpbi5oYXMoU3RyaW5nKG8ua2V5KSl8fHIucHVzaChvKTtyZXR1cm4gcn1mdW5jdGlvbiBFbCh0LGUsYSl7cmV0dXJuIGUudmFsdWU/ZS52YWx1ZSh0KTp0W2Uua2V5XX1mdW5jdGlvbiBPdXQodCxlLGEsaSxyLHMsbj0idGFibGUiLG8pe2xldCBkPXQuc2xpY2UoKSxjPShyfHwiIikudHJpbSgpLnRvTG93ZXJDYXNlKCksaD1zfHx7fSxsPU9iamVjdC5rZXlzKGgpLmZpbHRlcih5PT4oaFt5XT8/IiIpLnRyaW0oKS5sZW5ndGg+MCk7aWYoKGN8fGwubGVuZ3RoPjApJiYoZD1kLmZpbHRlcih5PT57Zm9yKGxldCB2IG9mIGwpaWYobj09PSJkYXRhIil7bGV0IG09eVt2XSx4PVN0cmluZyhtPz8iIikudG9Mb3dlckNhc2UoKSxNPVN0cmluZyhoW3ZdKS50b0xvd2VyQ2FzZSgpO2lmKCF4LmluY2x1ZGVzKE0pKXJldHVybiExfWVsc2V7bGV0IG09ZS5maW5kKEY9PlN0cmluZyhGLmtleSk9PT12KTtpZighbXx8bS5oaWRkZW58fG0uZmlsdGVyYWJsZT09PSExKWNvbnRpbnVlO2xldCB4PUVsKHksbSksTT1TdHJpbmcoeD8/IiIpLnRvTG93ZXJDYXNlKCksUz1TdHJpbmcoaFt2XSkudG9Mb3dlckNhc2UoKTtpZighTS5pbmNsdWRlcyhTKSlyZXR1cm4hMX1pZihjKXtpZihvKXJldHVybiEhbyh5KTtsZXQgdj0hMTtpZihuPT09ImRhdGEiKXtmb3IobGV0IG0gb2YgT2JqZWN0LnZhbHVlcyh5KSlpZihTdHJpbmcobT8/IiIpLnRvTG93ZXJDYXNlKCkuaW5jbHVkZXMoYykpe3Y9ITA7YnJlYWt9fWVsc2UgZm9yKGxldCBtIG9mIGUpe2lmKG0uaGlkZGVuKWNvbnRpbnVlO2xldCB4PUVsKHksbSk7aWYoU3RyaW5nKHg/PyIiKS50b0xvd2VyQ2FzZSgpLmluY2x1ZGVzKGMpKXt2PSEwO2JyZWFrfX1pZighdilyZXR1cm4hMX1yZXR1cm4hMH0pKSwhYXx8IWkpcmV0dXJuIGQ7bGV0IGY9ZS5maW5kKHk9PlN0cmluZyh5LmtleSk9PT1hKTtpZighZilyZXR1cm4gZDtsZXQgZz1pPT09ImFzYyI/MTotMTtyZXR1cm4gZC5zb3J0KCh5LHYpPT57bGV0IG09RWwoeSxmKSx4PUVsKHYsZik7aWYobT09bnVsbCYmeD09bnVsbClyZXR1cm4gMDtpZihtPT1udWxsKXJldHVybi0xKmc7aWYoeD09bnVsbClyZXR1cm4gMSpnO2lmKHR5cGVvZiBtPT0ibnVtYmVyIiYmdHlwZW9mIHg9PSJudW1iZXIiKXJldHVybihtLXgpKmc7bGV0IE09U3RyaW5nKG0pLnRvTG93ZXJDYXNlKCksUz1TdHJpbmcoeCkudG9Mb3dlckNhc2UoKTtyZXR1cm4gTTxTPy0xKmc6TT5TPzEqZzowfSksZH12YXIgUnV0PWIoKCk9Pnt9KTtmdW5jdGlvbiBZeCh0KXtyZXR1cm4gdC5zdGFydHNXaXRoKCciJykmJnQuZW5kc1dpdGgoJyInKXx8dC5zdGFydHNXaXRoKCInIikmJnQuZW5kc1dpdGgoIiciKT90LnNsaWNlKDEsLTEpOnR9ZnVuY3Rpb24gZVV0KHQpe3JldHVybiB0LnNwbGl0KC9ccytPUlxzKy9pKS5tYXAoZT0+ZS50cmltKCkpLmZpbHRlcihCb29sZWFuKX1mdW5jdGlvbiB0VXQodCl7cmV0dXJuIHQuc3BsaXQoL1xzK0FORFxzKy9pKS5tYXAoZT0+ZS50cmltKCkpLmZpbHRlcihCb29sZWFuKX1mdW5jdGlvbiBhVXQodCl7aWYoIXQpcmV0dXJuIG51bGw7bGV0IGU9ITEsYT10Lm1hdGNoKC9eXHMqKE5PVFxzK3wtKVxzKiguKikkL2kpO2EmJihlPSEwLHQ9YVsyXSk7bGV0IGk9dC5tYXRjaCgvXihbXjpcc10rKVxzKjpccypcWyguKj8pXHMrVE9ccysoLio/KVxdJC9pKTtpZihpKXJldHVybntmaWVsZDppWzFdLG5lZ2F0ZTplLHJhbmdlOntsb3dlcjpZeChpWzJdKS50b0xvd2VyQ2FzZSgpLHVwcGVyOll4KGlbM10pLnRvTG93ZXJDYXNlKCksaW5jbHVzaXZlOiEwfX07bGV0IHI9dC5tYXRjaCgvXihbXjpcc10rKVxzKjpccyooIlteIl0qInwnW14nXSonfFteIidcc10rKSQvKTtyZXR1cm4gcj97ZmllbGQ6clsxXSx2YWx1ZTpZeChyWzJdKS50b0xvd2VyQ2FzZSgpLG5lZ2F0ZTplfTp0Lmxlbmd0aD4wP3t2YWx1ZTpZeCh0KS50b0xvd2VyQ2FzZSgpLG5lZ2F0ZTplfTpudWxsfWZ1bmN0aW9uIGlVdCh0KXtpZighdClyZXR1cm4gbnVsbDtsZXQgZT1lVXQodCkubWFwKGE9Pih7dGVybXM6dFV0KGEpLm1hcChhVXQpLmZpbHRlcihyPT4hIXImJiEhci52YWx1ZSl9KSkuZmlsdGVyKGE9PmEudGVybXMubGVuZ3RoPjApO3JldHVybiBlLmxlbmd0aD09PTA/bnVsbDp7Y2xhdXNlczplfX1mdW5jdGlvbiBCdXQodCxlLGEpe2xldCBpPWlVdCh0KTtpZighaSlyZXR1cm4gbnVsbDtsZXQgcj1uZXcgTWFwKGEubWFwKGQ9PltTdHJpbmcoZC5rZXkpLGRdKSkscz0oZCxjKT0+ZDxjPy0xOmQ+Yz8xOjAsbj1kPT57bGV0IGM9U3RyaW5nKGQ/PyIiKS50b0xvd2VyQ2FzZSgpLGg9TnVtYmVyKGMpLGw9RGF0ZS5wYXJzZShjKTtyZXR1cm4hTnVtYmVyLmlzTmFOKGgpJiZjLnRyaW0oKSE9PSIiP3t0OiJuIix2Omh9Ok51bWJlci5pc05hTihsKT97dDoicyIsdjpjfTp7dDoiZCIsdjpsfX0sbz0oZCxjLGgpPT57bGV0IGw9bihkKSxmPW4oYyksZz1uKGgpO2lmKGwudD09PSJzIiYmZi50PT09InMiJiZnLnQ9PT0icyIpe2xldCB2PWwudjtyZXR1cm4gcyh2LGYudik+PTAmJnModixnLnYpPD0wfWlmKGwudD09PSJuIiYmZi50PT09Im4iJiZnLnQ9PT0ibiIpe2xldCB2PWwudjtyZXR1cm4gdj49Zi52JiZ2PD1nLnZ9aWYobC50PT09ImQiJiZmLnQ9PT0iZCImJmcudD09PSJkIil7bGV0IHY9bC52O3JldHVybiB2Pj1mLnYmJnY8PWcudn1sZXQgeT1TdHJpbmcoZD8/IiIpLnRvTG93ZXJDYXNlKCk7cmV0dXJuIHMoeSxjKT49MCYmcyh5LGgpPD0wfTtyZXR1cm4gZD0+e2ZvcihsZXQgYyBvZiBpLmNsYXVzZXMpe2xldCBoPSEwO2ZvcihsZXQgbCBvZiBjLnRlcm1zKXtsZXQgZj0hMTtpZihsLnJhbmdlJiZsLmZpZWxkKWlmKGU9PT0iZGF0YSIpZj1vKGRbbC5maWVsZF0sbC5yYW5nZS5sb3dlcixsLnJhbmdlLnVwcGVyKTtlbHNle2xldCBnPXIuZ2V0KGwuZmllbGQpO2lmKCFnfHxnLmhpZGRlbilmPSExO2Vsc2V7bGV0IHk9Zy52YWx1ZT9nLnZhbHVlKGQpOmRbZy5rZXldO2Y9byh5LGwucmFuZ2UubG93ZXIsbC5yYW5nZS51cHBlcil9fWVsc2UgaWYobC5maWVsZCYmbC52YWx1ZSE9bnVsbClpZihlPT09ImRhdGEiKWY9U3RyaW5nKGRbbC5maWVsZF0/PyIiKS50b0xvd2VyQ2FzZSgpLmluY2x1ZGVzKGwudmFsdWUpO2Vsc2V7bGV0IGc9ci5nZXQobC5maWVsZCk7aWYoIWd8fGcuaGlkZGVuPT09ITApZj0hMTtlbHNle2xldCB5PWcudmFsdWU/Zy52YWx1ZShkKTpkW2cua2V5XTtmPVN0cmluZyh5Pz8iIikudG9Mb3dlckNhc2UoKS5pbmNsdWRlcyhsLnZhbHVlKX19ZWxzZSBsLnZhbHVlIT1udWxsJiYoZT09PSJkYXRhIj9mPU9iamVjdC52YWx1ZXMoZCkuc29tZShnPT5TdHJpbmcoZz8/IiIpLnRvTG93ZXJDYXNlKCkuaW5jbHVkZXMobC52YWx1ZSkpOmY9YS5zb21lKGc9PntpZihnLmhpZGRlbilyZXR1cm4hMTtsZXQgeT1nLnZhbHVlP2cudmFsdWUoZCk6ZFtnLmtleV07cmV0dXJuIFN0cmluZyh5Pz8iIikudG9Mb3dlckNhc2UoKS5pbmNsdWRlcyhsLnZhbHVlKX0pKTtpZihsLm5lZ2F0ZSYmKGY9IWYpLCFmKXtoPSExO2JyZWFrfX1pZihoKXJldHVybiEwfXJldHVybiExfX12YXIgSHV0PWIoKCk9Pnt9KTt2YXIgZTEsS2UsWngsSnE9YigoKT0+e3MyKCk7UHV0KCk7dWUoKTtuMigpO1R0KCk7RHQoKTtOdXQoKTtSdXQoKTtIdXQoKTtxZSgpO2UxPWZ1bmN0aW9uKHQsZSxhLGkscixzKXtmdW5jdGlvbiBuKHgpe2lmKHghPT12b2lkIDAmJnR5cGVvZiB4IT0iZnVuY3Rpb24iKXRocm93IG5ldyBUeXBlRXJyb3IoIkZ1bmN0aW9uIGV4cGVjdGVkIik7cmV0dXJuIHh9Zm9yKHZhciBvPWkua2luZCxkPW89PT0iZ2V0dGVyIj8iZ2V0IjpvPT09InNldHRlciI/InNldCI6InZhbHVlIixjPSFlJiZ0P2kuc3RhdGljP3Q6dC5wcm90b3R5cGU6bnVsbCxoPWV8fChjP09iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoYyxpLm5hbWUpOnt9KSxsLGY9ITEsZz1hLmxlbmd0aC0xO2c+PTA7Zy0tKXt2YXIgeT17fTtmb3IodmFyIHYgaW4gaSl5W3ZdPXY9PT0iYWNjZXNzIj97fTppW3ZdO2Zvcih2YXIgdiBpbiBpLmFjY2Vzcyl5LmFjY2Vzc1t2XT1pLmFjY2Vzc1t2XTt5LmFkZEluaXRpYWxpemVyPWZ1bmN0aW9uKHgpe2lmKGYpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGFkZCBpbml0aWFsaXplcnMgYWZ0ZXIgZGVjb3JhdGlvbiBoYXMgY29tcGxldGVkIik7cy5wdXNoKG4oeHx8bnVsbCkpfTt2YXIgbT0oMCxhW2ddKShvPT09ImFjY2Vzc29yIj97Z2V0OmguZ2V0LHNldDpoLnNldH06aFtkXSx5KTtpZihvPT09ImFjY2Vzc29yIil7aWYobT09PXZvaWQgMCljb250aW51ZTtpZihtPT09bnVsbHx8dHlwZW9mIG0hPSJvYmplY3QiKXRocm93IG5ldyBUeXBlRXJyb3IoIk9iamVjdCBleHBlY3RlZCIpOyhsPW4obS5nZXQpKSYmKGguZ2V0PWwpLChsPW4obS5zZXQpKSYmKGguc2V0PWwpLChsPW4obS5pbml0KSkmJnIudW5zaGlmdChsKX1lbHNlKGw9bihtKSkmJihvPT09ImZpZWxkIj9yLnVuc2hpZnQobCk6aFtkXT1sKX1jJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoYyxpLm5hbWUsaCksZj0hMH0sS2U9ZnVuY3Rpb24odCxlLGEpe2Zvcih2YXIgaT1hcmd1bWVudHMubGVuZ3RoPjIscj0wO3I8ZS5sZW5ndGg7cisrKWE9aT9lW3JdLmNhbGwodCxhKTplW3JdLmNhbGwodCk7cmV0dXJuIGk/YTp2b2lkIDB9LFp4PSgoKT0+e2xldCB0PVtwZSgiZGVlcy10YWJsZSIpXSxlLGE9W10saSxyPXhlLHMsbj1bXSxvPVtdLGQsYz1bXSxoPVtdLGwsZj1bXSxnPVtdLHksdj1bXSxtPVtdLHgsTT1bXSxTPVtdLEYsXz1bXSxrPVtdLE4sTD1bXSxBPVtdLHEsQz1bXSx6PVtdLEUsVD1bXSwkPVtdLFYsUj1bXSxVPVtdLHJlLGo9W10sbWU9W10sd2UsSD1bXSxjZT1bXSxrZSxXPVtdLEQ9W10sTyxaPVtdLFk9W10sb2UsZ2U9W10sYmU9W10sJGUsQj1bXSxQPVtdLEssZmU9W10sZGU9W10sX2UsaGU9W10sdGU9W10semUsRmU9W10sV2U9W10seWUsZWU9W10sYWU9W10sdmUsUGU9W10sVmU9W10seHQsb3Q9W10sTHQ9W10sWnQsaWU9W10sc2U9W10sVGUsbHQ9W10sY3Q9W10sbTEsZWk9W10sUXI9W10sSnIsSWU9W10sWmU9W10sJDEseTI9W10sRTI9W10sYWEsUDI9W10sZW49W10sdG4sYW49W10sWmw9W107dmFyIFhsPWNsYXNzIGV4dGVuZHMgcntzdGF0aWN7aT10aGlzfXN0YXRpY3tsZXQgTWU9dHlwZW9mIFN5bWJvbD09ImZ1bmN0aW9uIiYmU3ltYm9sLm1ldGFkYXRhP09iamVjdC5jcmVhdGUocltTeW1ib2wubWV0YWRhdGFdPz9udWxsKTp2b2lkIDA7cz1bSSh7dHlwZTpTdHJpbmd9KV0sZD1bSSh7dHlwZTpTdHJpbmd9KV0sbD1bSSh7dHlwZTpBcnJheX0pXSx5PVtJKHt0eXBlOlN0cmluZ30pXSx4PVtJKHt0eXBlOlN0cmluZ30pXSxGPVtJKHt0eXBlOkJvb2xlYW59KV0sTj1bSSh7dHlwZTpCb29sZWFufSldLHE9W0koe3R5cGU6U3RyaW5nLHJlZmxlY3Q6ITB9KV0sRT1bSSh7dHlwZTpCb29sZWFufSldLFY9W0koe3R5cGU6QXJyYXl9KV0scmU9W0koe2F0dHJpYnV0ZTohMX0pXSx3ZT1bSSh7YXR0cmlidXRlOiExfSldLGtlPVtJKHt0eXBlOkJvb2xlYW59KV0sTz1bSSh7YXR0cmlidXRlOiExfSldLG9lPVtJKHthdHRyaWJ1dGU6ITF9KV0sJGU9W0koe3R5cGU6T2JqZWN0fSldLEs9W0koe3R5cGU6QXJyYXl9KV0sX2U9W0koe3R5cGU6Qm9vbGVhbixyZWZsZWN0OiEwLGF0dHJpYnV0ZToic2hvdy12ZXJ0aWNhbC1saW5lcyJ9KV0semU9W0koe3R5cGU6Qm9vbGVhbixyZWZsZWN0OiEwLGF0dHJpYnV0ZToic2hvdy1ob3Jpem9udGFsLWxpbmVzIn0pXSx5ZT1bSSh7dHlwZTpCb29sZWFuLHJlZmxlY3Q6ITAsYXR0cmlidXRlOiJzaG93LWdyaWQifSldLHZlPVtJKHthdHRyaWJ1dGU6ITF9KV0seHQ9W0koe2F0dHJpYnV0ZTohMX0pXSxadD1bSSh7dHlwZTpTdHJpbmd9KV0sVGU9W0koe2F0dHJpYnV0ZTohMX0pXSxtMT1bSSh7dHlwZTpCb29sZWFuLGF0dHJpYnV0ZToic2hvdy1jb2x1bW4tZmlsdGVycyJ9KV0sSnI9W0koe3R5cGU6Qm9vbGVhbixyZWZsZWN0OiEwLGF0dHJpYnV0ZToic3RpY2t5LWhlYWRlciJ9KV0sJDE9W0koe3R5cGU6U3RyaW5nfSldLGFhPVtJKHt0eXBlOlN0cmluZ30pXSx0bj1bSSh7YXR0cmlidXRlOiExfSldLGUxKHRoaXMsbnVsbCxzLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiaGVhZGluZzEiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmxlPT4iaGVhZGluZzEiaW4gbGUsZ2V0OmxlPT5sZS5oZWFkaW5nMSxzZXQ6KGxlLERlKT0+e2xlLmhlYWRpbmcxPURlfX0sbWV0YWRhdGE6TWV9LG4sbyksZTEodGhpcyxudWxsLGQse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJoZWFkaW5nMiIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6bGU9PiJoZWFkaW5nMiJpbiBsZSxnZXQ6bGU9PmxlLmhlYWRpbmcyLHNldDoobGUsRGUpPT57bGUuaGVhZGluZzI9RGV9fSxtZXRhZGF0YTpNZX0sYyxoKSxlMSh0aGlzLG51bGwsbCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImRhdGEiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmxlPT4iZGF0YSJpbiBsZSxnZXQ6bGU9PmxlLmRhdGEsc2V0OihsZSxEZSk9PntsZS5kYXRhPURlfX0sbWV0YWRhdGE6TWV9LGYsZyksZTEodGhpcyxudWxsLHkse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJrZXkiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmxlPT4ia2V5ImluIGxlLGdldDpsZT0+bGUua2V5LHNldDoobGUsRGUpPT57bGUua2V5PURlfX0sbWV0YWRhdGE6TWV9LHYsbSksZTEodGhpcyxudWxsLHgse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJsYWJlbCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6bGU9PiJsYWJlbCJpbiBsZSxnZXQ6bGU9PmxlLmxhYmVsLHNldDoobGUsRGUpPT57bGUubGFiZWw9RGV9fSxtZXRhZGF0YTpNZX0sTSxTKSxlMSh0aGlzLG51bGwsRix7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImRpc2FibGVkIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpsZT0+ImRpc2FibGVkImluIGxlLGdldDpsZT0+bGUuZGlzYWJsZWQsc2V0OihsZSxEZSk9PntsZS5kaXNhYmxlZD1EZX19LG1ldGFkYXRhOk1lfSxfLGspLGUxKHRoaXMsbnVsbCxOLHtraW5kOiJhY2Nlc3NvciIsbmFtZToicmVxdWlyZWQiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmxlPT4icmVxdWlyZWQiaW4gbGUsZ2V0OmxlPT5sZS5yZXF1aXJlZCxzZXQ6KGxlLERlKT0+e2xlLnJlcXVpcmVkPURlfX0sbWV0YWRhdGE6TWV9LEwsQSksZTEodGhpcyxudWxsLHEse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJkYXRhTmFtZSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6bGU9PiJkYXRhTmFtZSJpbiBsZSxnZXQ6bGU9PmxlLmRhdGFOYW1lLHNldDoobGUsRGUpPT57bGUuZGF0YU5hbWU9RGV9fSxtZXRhZGF0YTpNZX0sQyx6KSxlMSh0aGlzLG51bGwsRSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InNlYXJjaGFibGUiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmxlPT4ic2VhcmNoYWJsZSJpbiBsZSxnZXQ6bGU9PmxlLnNlYXJjaGFibGUsc2V0OihsZSxEZSk9PntsZS5zZWFyY2hhYmxlPURlfX0sbWV0YWRhdGE6TWV9LFQsJCksZTEodGhpcyxudWxsLFYse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJkYXRhQWN0aW9ucyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6bGU9PiJkYXRhQWN0aW9ucyJpbiBsZSxnZXQ6bGU9PmxlLmRhdGFBY3Rpb25zLHNldDoobGUsRGUpPT57bGUuZGF0YUFjdGlvbnM9RGV9fSxtZXRhZGF0YTpNZX0sUixVKSxlMSh0aGlzLG51bGwscmUse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJjb2x1bW5zIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpsZT0+ImNvbHVtbnMiaW4gbGUsZ2V0OmxlPT5sZS5jb2x1bW5zLHNldDoobGUsRGUpPT57bGUuY29sdW1ucz1EZX19LG1ldGFkYXRhOk1lfSxqLG1lKSxlMSh0aGlzLG51bGwsd2Use2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJyb3dLZXkiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmxlPT4icm93S2V5ImluIGxlLGdldDpsZT0+bGUucm93S2V5LHNldDoobGUsRGUpPT57bGUucm93S2V5PURlfX0sbWV0YWRhdGE6TWV9LEgsY2UpLGUxKHRoaXMsbnVsbCxrZSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImF1Z21lbnRGcm9tRGlzcGxheUZ1bmN0aW9uIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpsZT0+ImF1Z21lbnRGcm9tRGlzcGxheUZ1bmN0aW9uImluIGxlLGdldDpsZT0+bGUuYXVnbWVudEZyb21EaXNwbGF5RnVuY3Rpb24sc2V0OihsZSxEZSk9PntsZS5hdWdtZW50RnJvbURpc3BsYXlGdW5jdGlvbj1EZX19LG1ldGFkYXRhOk1lfSxXLEQpLGUxKHRoaXMsbnVsbCxPLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiZGlzcGxheUZ1bmN0aW9uIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpsZT0+ImRpc3BsYXlGdW5jdGlvbiJpbiBsZSxnZXQ6bGU9PmxlLmRpc3BsYXlGdW5jdGlvbixzZXQ6KGxlLERlKT0+e2xlLmRpc3BsYXlGdW5jdGlvbj1EZX19LG1ldGFkYXRhOk1lfSxaLFkpLGUxKHRoaXMsbnVsbCxvZSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InJldmVyc2VEaXNwbGF5RnVuY3Rpb24iLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmxlPT4icmV2ZXJzZURpc3BsYXlGdW5jdGlvbiJpbiBsZSxnZXQ6bGU9PmxlLnJldmVyc2VEaXNwbGF5RnVuY3Rpb24sc2V0OihsZSxEZSk9PntsZS5yZXZlcnNlRGlzcGxheUZ1bmN0aW9uPURlfX0sbWV0YWRhdGE6TWV9LGdlLGJlKSxlMSh0aGlzLG51bGwsJGUse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJzZWxlY3RlZERhdGFSb3ciLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmxlPT4ic2VsZWN0ZWREYXRhUm93ImluIGxlLGdldDpsZT0+bGUuc2VsZWN0ZWREYXRhUm93LHNldDoobGUsRGUpPT57bGUuc2VsZWN0ZWREYXRhUm93PURlfX0sbWV0YWRhdGE6TWV9LEIsUCksZTEodGhpcyxudWxsLEsse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJlZGl0YWJsZUZpZWxkcyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6bGU9PiJlZGl0YWJsZUZpZWxkcyJpbiBsZSxnZXQ6bGU9PmxlLmVkaXRhYmxlRmllbGRzLHNldDoobGUsRGUpPT57bGUuZWRpdGFibGVGaWVsZHM9RGV9fSxtZXRhZGF0YTpNZX0sZmUsZGUpLGUxKHRoaXMsbnVsbCxfZSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InNob3dWZXJ0aWNhbExpbmVzIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpsZT0+InNob3dWZXJ0aWNhbExpbmVzImluIGxlLGdldDpsZT0+bGUuc2hvd1ZlcnRpY2FsTGluZXMsc2V0OihsZSxEZSk9PntsZS5zaG93VmVydGljYWxMaW5lcz1EZX19LG1ldGFkYXRhOk1lfSxoZSx0ZSksZTEodGhpcyxudWxsLHplLHtraW5kOiJhY2Nlc3NvciIsbmFtZToic2hvd0hvcml6b250YWxMaW5lcyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6bGU9PiJzaG93SG9yaXpvbnRhbExpbmVzImluIGxlLGdldDpsZT0+bGUuc2hvd0hvcml6b250YWxMaW5lcyxzZXQ6KGxlLERlKT0+e2xlLnNob3dIb3Jpem9udGFsTGluZXM9RGV9fSxtZXRhZGF0YTpNZX0sRmUsV2UpLGUxKHRoaXMsbnVsbCx5ZSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InNob3dHcmlkIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpsZT0+InNob3dHcmlkImluIGxlLGdldDpsZT0+bGUuc2hvd0dyaWQsc2V0OihsZSxEZSk9PntsZS5zaG93R3JpZD1EZX19LG1ldGFkYXRhOk1lfSxlZSxhZSksZTEodGhpcyxudWxsLHZlLHtraW5kOiJhY2Nlc3NvciIsbmFtZToic29ydEtleSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6bGU9PiJzb3J0S2V5ImluIGxlLGdldDpsZT0+bGUuc29ydEtleSxzZXQ6KGxlLERlKT0+e2xlLnNvcnRLZXk9RGV9fSxtZXRhZGF0YTpNZX0sUGUsVmUpLGUxKHRoaXMsbnVsbCx4dCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InNvcnREaXIiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmxlPT4ic29ydERpciJpbiBsZSxnZXQ6bGU9PmxlLnNvcnREaXIsc2V0OihsZSxEZSk9PntsZS5zb3J0RGlyPURlfX0sbWV0YWRhdGE6TWV9LG90LEx0KSxlMSh0aGlzLG51bGwsWnQse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJmaWx0ZXJUZXh0IixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpsZT0+ImZpbHRlclRleHQiaW4gbGUsZ2V0OmxlPT5sZS5maWx0ZXJUZXh0LHNldDoobGUsRGUpPT57bGUuZmlsdGVyVGV4dD1EZX19LG1ldGFkYXRhOk1lfSxpZSxzZSksZTEodGhpcyxudWxsLFRlLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiY29sdW1uRmlsdGVycyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6bGU9PiJjb2x1bW5GaWx0ZXJzImluIGxlLGdldDpsZT0+bGUuY29sdW1uRmlsdGVycyxzZXQ6KGxlLERlKT0+e2xlLmNvbHVtbkZpbHRlcnM9RGV9fSxtZXRhZGF0YTpNZX0sbHQsY3QpLGUxKHRoaXMsbnVsbCxtMSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InNob3dDb2x1bW5GaWx0ZXJzIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpsZT0+InNob3dDb2x1bW5GaWx0ZXJzImluIGxlLGdldDpsZT0+bGUuc2hvd0NvbHVtbkZpbHRlcnMsc2V0OihsZSxEZSk9PntsZS5zaG93Q29sdW1uRmlsdGVycz1EZX19LG1ldGFkYXRhOk1lfSxlaSxRciksZTEodGhpcyxudWxsLEpyLHtraW5kOiJhY2Nlc3NvciIsbmFtZToic3RpY2t5SGVhZGVyIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpsZT0+InN0aWNreUhlYWRlciJpbiBsZSxnZXQ6bGU9PmxlLnN0aWNreUhlYWRlcixzZXQ6KGxlLERlKT0+e2xlLnN0aWNreUhlYWRlcj1EZX19LG1ldGFkYXRhOk1lfSxJZSxaZSksZTEodGhpcyxudWxsLCQxLHtraW5kOiJhY2Nlc3NvciIsbmFtZToic2VhcmNoTW9kZSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6bGU9PiJzZWFyY2hNb2RlImluIGxlLGdldDpsZT0+bGUuc2VhcmNoTW9kZSxzZXQ6KGxlLERlKT0+e2xlLnNlYXJjaE1vZGU9RGV9fSxtZXRhZGF0YTpNZX0seTIsRTIpLGUxKHRoaXMsbnVsbCxhYSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InNlbGVjdGlvbk1vZGUiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmxlPT4ic2VsZWN0aW9uTW9kZSJpbiBsZSxnZXQ6bGU9PmxlLnNlbGVjdGlvbk1vZGUsc2V0OihsZSxEZSk9PntsZS5zZWxlY3Rpb25Nb2RlPURlfX0sbWV0YWRhdGE6TWV9LFAyLGVuKSxlMSh0aGlzLG51bGwsdG4se2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJzZWxlY3RlZElkcyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6bGU9PiJzZWxlY3RlZElkcyJpbiBsZSxnZXQ6bGU9PmxlLnNlbGVjdGVkSWRzLHNldDoobGUsRGUpPT57bGUuc2VsZWN0ZWRJZHM9RGV9fSxtZXRhZGF0YTpNZX0sYW4sWmwpLGUxKG51bGwsZT17dmFsdWU6aX0sdCx7a2luZDoiY2xhc3MiLG5hbWU6aS5uYW1lLG1ldGFkYXRhOk1lfSxudWxsLGEpLFhsPWk9ZS52YWx1ZSxNZSYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGksU3ltYm9sLm1ldGFkYXRhLHtlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMCx2YWx1ZTpNZX0pfXN0YXRpYyBkZW1vPUV1dDtzdGF0aWMgZGVtb0dyb3Vwcz1bIkRhdGEgVmlldyJdOyNlPUtlKHRoaXMsbiwiaGVhZGluZyAxIik7Z2V0IGhlYWRpbmcxKCl7cmV0dXJuIHRoaXMuI2V9c2V0IGhlYWRpbmcxKE1lKXt0aGlzLiNlPU1lfSN0PShLZSh0aGlzLG8pLEtlKHRoaXMsYywiaGVhZGluZyAyIikpO2dldCBoZWFkaW5nMigpe3JldHVybiB0aGlzLiN0fXNldCBoZWFkaW5nMihNZSl7dGhpcy4jdD1NZX0jYT0oS2UodGhpcyxoKSxLZSh0aGlzLGYsW10pKTtnZXQgZGF0YSgpe3JldHVybiB0aGlzLiNhfXNldCBkYXRhKE1lKXt0aGlzLiNhPU1lfSNpPShLZSh0aGlzLGcpLEtlKHRoaXMsdix2b2lkIDApKTtnZXQga2V5KCl7cmV0dXJuIHRoaXMuI2l9c2V0IGtleShNZSl7dGhpcy4jaT1NZX0jcj0oS2UodGhpcyxtKSxLZSh0aGlzLE0sdm9pZCAwKSk7Z2V0IGxhYmVsKCl7cmV0dXJuIHRoaXMuI3J9c2V0IGxhYmVsKE1lKXt0aGlzLiNyPU1lfSNzPShLZSh0aGlzLFMpLEtlKHRoaXMsXywhMSkpO2dldCBkaXNhYmxlZCgpe3JldHVybiB0aGlzLiNzfXNldCBkaXNhYmxlZChNZSl7dGhpcy4jcz1NZX0jbj0oS2UodGhpcyxrKSxLZSh0aGlzLEwsITEpKTtnZXQgcmVxdWlyZWQoKXtyZXR1cm4gdGhpcy4jbn1zZXQgcmVxdWlyZWQoTWUpe3RoaXMuI249TWV9Z2V0IHZhbHVlKCl7cmV0dXJuIHRoaXMuZGF0YX1zZXQgdmFsdWUoTWUpe31jaGFuZ2VTdWJqZWN0PShLZSh0aGlzLEEpLG5ldyBNdC5zbWFydHJ4LnJ4anMuU3ViamVjdCk7I289S2UodGhpcyxDLHZvaWQgMCk7Z2V0IGRhdGFOYW1lKCl7cmV0dXJuIHRoaXMuI299c2V0IGRhdGFOYW1lKE1lKXt0aGlzLiNvPU1lfSNsPShLZSh0aGlzLHopLEtlKHRoaXMsVCwhMCkpO2dldCBzZWFyY2hhYmxlKCl7cmV0dXJuIHRoaXMuI2x9c2V0IHNlYXJjaGFibGUoTWUpe3RoaXMuI2w9TWV9I2M9KEtlKHRoaXMsJCksS2UodGhpcyxSLFtdKSk7Z2V0IGRhdGFBY3Rpb25zKCl7cmV0dXJuIHRoaXMuI2N9c2V0IGRhdGFBY3Rpb25zKE1lKXt0aGlzLiNjPU1lfSNkPShLZSh0aGlzLFUpLEtlKHRoaXMsaixbXSkpO2dldCBjb2x1bW5zKCl7cmV0dXJuIHRoaXMuI2R9c2V0IGNvbHVtbnMoTWUpe3RoaXMuI2Q9TWV9I2g9KEtlKHRoaXMsbWUpLEtlKHRoaXMsSCx2b2lkIDApKTtnZXQgcm93S2V5KCl7cmV0dXJuIHRoaXMuI2h9c2V0IHJvd0tleShNZSl7dGhpcy4jaD1NZX0jcD0oS2UodGhpcyxjZSksS2UodGhpcyxXLCExKSk7Z2V0IGF1Z21lbnRGcm9tRGlzcGxheUZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuI3B9c2V0IGF1Z21lbnRGcm9tRGlzcGxheUZ1bmN0aW9uKE1lKXt0aGlzLiNwPU1lfSN1PShLZSh0aGlzLEQpLEtlKHRoaXMsWixNZT0+TWUpKTtnZXQgZGlzcGxheUZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuI3V9c2V0IGRpc3BsYXlGdW5jdGlvbihNZSl7dGhpcy4jdT1NZX0jZj0oS2UodGhpcyxZKSxLZSh0aGlzLGdlLE1lPT5NZSkpO2dldCByZXZlcnNlRGlzcGxheUZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuI2Z9c2V0IHJldmVyc2VEaXNwbGF5RnVuY3Rpb24oTWUpe3RoaXMuI2Y9TWV9I209KEtlKHRoaXMsYmUpLEtlKHRoaXMsQix2b2lkIDApKTtnZXQgc2VsZWN0ZWREYXRhUm93KCl7cmV0dXJuIHRoaXMuI219c2V0IHNlbGVjdGVkRGF0YVJvdyhNZSl7dGhpcy4jbT1NZX0jZz0oS2UodGhpcyxQKSxLZSh0aGlzLGZlLFtdKSk7Z2V0IGVkaXRhYmxlRmllbGRzKCl7cmV0dXJuIHRoaXMuI2d9c2V0IGVkaXRhYmxlRmllbGRzKE1lKXt0aGlzLiNnPU1lfSNiPShLZSh0aGlzLGRlKSxLZSh0aGlzLGhlLCExKSk7Z2V0IHNob3dWZXJ0aWNhbExpbmVzKCl7cmV0dXJuIHRoaXMuI2J9c2V0IHNob3dWZXJ0aWNhbExpbmVzKE1lKXt0aGlzLiNiPU1lfSN2PShLZSh0aGlzLHRlKSxLZSh0aGlzLEZlLCExKSk7Z2V0IHNob3dIb3Jpem9udGFsTGluZXMoKXtyZXR1cm4gdGhpcy4jdn1zZXQgc2hvd0hvcml6b250YWxMaW5lcyhNZSl7dGhpcy4jdj1NZX0jeT0oS2UodGhpcyxXZSksS2UodGhpcyxlZSwhMCkpO2dldCBzaG93R3JpZCgpe3JldHVybiB0aGlzLiN5fXNldCBzaG93R3JpZChNZSl7dGhpcy4jeT1NZX1maWxlcz0oS2UodGhpcyxhZSksW10pO2ZpbGVXZWFrTWFwPW5ldyBXZWFrTWFwO2RhdGFDaGFuZ2VTdWJqZWN0PW5ldyBNdC5zbWFydHJ4LnJ4anMuU3ViamVjdDsjeD1LZSh0aGlzLFBlLHZvaWQgMCk7Z2V0IHNvcnRLZXkoKXtyZXR1cm4gdGhpcy4jeH1zZXQgc29ydEtleShNZSl7dGhpcy4jeD1NZX0jdz0oS2UodGhpcyxWZSksS2UodGhpcyxvdCxudWxsKSk7Z2V0IHNvcnREaXIoKXtyZXR1cm4gdGhpcy4jd31zZXQgc29ydERpcihNZSl7dGhpcy4jdz1NZX0jTT0oS2UodGhpcyxMdCksS2UodGhpcyxpZSwiIikpO2dldCBmaWx0ZXJUZXh0KCl7cmV0dXJuIHRoaXMuI019c2V0IGZpbHRlclRleHQoTWUpe3RoaXMuI009TWV9I3o9KEtlKHRoaXMsc2UpLEtlKHRoaXMsbHQse30pKTtnZXQgY29sdW1uRmlsdGVycygpe3JldHVybiB0aGlzLiN6fXNldCBjb2x1bW5GaWx0ZXJzKE1lKXt0aGlzLiN6PU1lfSNrPShLZSh0aGlzLGN0KSxLZSh0aGlzLGVpLCExKSk7Z2V0IHNob3dDb2x1bW5GaWx0ZXJzKCl7cmV0dXJuIHRoaXMuI2t9c2V0IHNob3dDb2x1bW5GaWx0ZXJzKE1lKXt0aGlzLiNrPU1lfSNTPShLZSh0aGlzLFFyKSxLZSh0aGlzLEllLCExKSk7Z2V0IHN0aWNreUhlYWRlcigpe3JldHVybiB0aGlzLiNTfXNldCBzdGlja3lIZWFkZXIoTWUpe3RoaXMuI1M9TWV9I0M9KEtlKHRoaXMsWmUpLEtlKHRoaXMseTIsInRhYmxlIikpO2dldCBzZWFyY2hNb2RlKCl7cmV0dXJuIHRoaXMuI0N9c2V0IHNlYXJjaE1vZGUoTWUpe3RoaXMuI0M9TWV9X19zZWFyY2hUZXh0U3ViPUtlKHRoaXMsRTIpO19fc2VhcmNoTW9kZVN1YjsjXz1LZSh0aGlzLFAyLCJub25lIik7Z2V0IHNlbGVjdGlvbk1vZGUoKXtyZXR1cm4gdGhpcy4jX31zZXQgc2VsZWN0aW9uTW9kZShNZSl7dGhpcy4jXz1NZX0jVD0oS2UodGhpcyxlbiksS2UodGhpcyxhbixuZXcgU2V0KSk7Z2V0IHNlbGVjdGVkSWRzKCl7cmV0dXJuIHRoaXMuI1R9c2V0IHNlbGVjdGVkSWRzKE1lKXt0aGlzLiNUPU1lfV9yb3dJZE1hcD0oS2UodGhpcyxabCksbmV3IFdlYWtNYXApO19yb3dJZENvdW50ZXI9MDtjb25zdHJ1Y3Rvcigpe3N1cGVyKCl9c3RhdGljIHN0eWxlcz1JdXQ7cmVuZGVyKCl7bGV0IGxlPUFycmF5LmlzQXJyYXkodGhpcy5jb2x1bW5zKSYmdGhpcy5jb2x1bW5zLmxlbmd0aD4wP0Z1dCh0aGlzLmNvbHVtbnMsdGhpcy5hdWdtZW50RnJvbURpc3BsYXlGdW5jdGlvbix0aGlzLmRpc3BsYXlGdW5jdGlvbix0aGlzLmRhdGEpOmVWKHRoaXMuZGlzcGxheUZ1bmN0aW9uLHRoaXMuZGF0YSksRGU9QnV0KHRoaXMuZmlsdGVyVGV4dCx0aGlzLnNlYXJjaE1vZGU9PT0iZGF0YSI/ImRhdGEiOiJ0YWJsZSIsbGUpLEYxPU91dCh0aGlzLmRhdGEsbGUsdGhpcy5zb3J0S2V5LHRoaXMuc29ydERpcix0aGlzLmZpbHRlclRleHQsdGhpcy5jb2x1bW5GaWx0ZXJzLHRoaXMuc2VhcmNoTW9kZT09PSJkYXRhIj8iZGF0YSI6InRhYmxlIixEZXx8dm9pZCAwKTtyZXR1cm4gdGhpcy5fbGFzdFZpZXdEYXRhPUYxLHdgCiAgICAgIDxkaXYgY2xhc3M9Im1haW5ib3giPgogICAgICAgIDwhLS0gdGhlIGhlYWRpbmcgcGFydCAtLT4KICAgICAgICA8ZGl2IGNsYXNzPSJoZWFkZXIiPgogICAgICAgICAgPGRpdiBjbGFzcz0iaGVhZGluZ0NvbnRhaW5lciI+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9ImhlYWRpbmcgaGVhZGluZzEiPiR7dGhpcy5sYWJlbHx8dGhpcy5oZWFkaW5nMX08L2Rpdj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0iaGVhZGluZyBoZWFkaW5nMiI+JHt0aGlzLmhlYWRpbmcyfTwvZGl2PgogICAgICAgICAgPC9kaXY+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJoZWFkZXJBY3Rpb25zIj4KICAgICAgICAgICAgJHtWYS5yZXNvbHZlRXhlYyhhc3luYygpPT57bGV0IHN0PVtdO2ZvcihsZXQgYzEgb2YgdGhpcy5kYXRhQWN0aW9ucyljMS50eXBlPy5pbmNsdWRlcygiaGVhZGVyIikmJnN0LnB1c2god2A8ZGl2CiAgICAgICAgICAgICAgICAgICAgY2xhc3M9ImhlYWRlckFjdGlvbiIKICAgICAgICAgICAgICAgICAgICBAY2xpY2s9JHsoKT0+e2MxLmFjdGlvbkZ1bmMoe2l0ZW06dGhpcy5zZWxlY3RlZERhdGFSb3csdGFibGU6dGhpc30pfX0KICAgICAgICAgICAgICAgICAgPgogICAgICAgICAgICAgICAgICAgICR7YzEuaWNvbk5hbWU/d2A8ZGVlcy1pY29uIC5pY29uU2l6ZT0kezE0fSAuaWNvbj0ke2MxLmljb25OYW1lfT48L2RlZXMtaWNvbj4KICAgICAgICAgICAgICAgICAgICAgICAgICAke2MxLm5hbWV9YDpjMS5uYW1lfQogICAgICAgICAgICAgICAgICA8L2Rpdj5gKTtyZXR1cm4gc3R9KX0KICAgICAgICAgIDwvZGl2PgogICAgICAgIDwvZGl2PgogICAgICAgIDxkaXYgY2xhc3M9ImhlYWRpbmdTZXBhcmF0aW9uIj48L2Rpdj4KICAgICAgICA8ZGl2IGNsYXNzPSJzZWFyY2hHcmlkIGhpZGRlbiI+CiAgICAgICAgICA8ZGVlcy1pbnB1dC10ZXh0CiAgICAgICAgICAgIC5sYWJlbD0keyJsdWNlbmUgc3ludGF4IHNlYXJjaCJ9CiAgICAgICAgICAgIC5kZXNjcmlwdGlvbj0ke2AKICAgICAgICAgICAgICBZb3UgY2FuIHVzZSB0aGUgbHVjZW5lIHN5bnRheCB0byBzZWFyY2ggZm9yIGRhdGEsIGUuZy46CiAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgXGBcYFxgCiAgICAgICAgICAgICAgbmFtZTogImpvaG4iIEFORCBhZ2U6IDE4CiAgICAgICAgICAgICAgXGBcYFxgCiAgICAgICAgICAgICAgCiAgICAgICAgICAgIGB9CiAgICAgICAgICA+PC9kZWVzLWlucHV0LXRleHQ+CiAgICAgICAgICA8ZGVlcy1pbnB1dC1tdWx0aXRvZ2dsZQogICAgICAgICAgICAubGFiZWw9JHsic2VhcmNoIG1vZGUifQogICAgICAgICAgICAub3B0aW9ucz0ke1sidGFibGUiLCJkYXRhIiwic2VydmVyIl19CiAgICAgICAgICAgIC5zZWxlY3RlZE9wdGlvbj0keyJ0YWJsZSJ9CiAgICAgICAgICAgIC5kZXNjcmlwdGlvbj0ke2AKICAgICAgICAgICAgICBUaGVyZSBhcmUgdGhyZWUgYmFzaWMgbW9kZXM6CiAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgKiB0YWJsZTogb25seSBzZWFyY2hlcyBkYXRhIGFscmVhZHkgaW4gdGhlIHRhYmxlCiAgICAgICAgICAgICAgKiBkYXRhOiBzZWFyY2hlcyBvcmlnaW5hbCBkYXRhLCBpZ25vcmluZyB0YWJsZSB0cmFuc2Zvcm1zCiAgICAgICAgICAgICAgKiBzZXJ2ZXI6IHNlYXJjaGVzIGRhdGEgb24gdGhlIHNlcnZlcgogICAgICAgICAgICAgIAogICAgICAgICAgICBgfQogICAgICAgICAgPjwvZGVlcy1pbnB1dC1tdWx0aXRvZ2dsZT4KICAgICAgICA8L2Rpdj4KCiAgICAgICAgPCEtLSB0aGUgYWN0dWFsIHRhYmxlIC0tPgogICAgICAgIDxzdHlsZT48L3N0eWxlPgogICAgICAgICR7dGhpcy5kYXRhLmxlbmd0aD4wP3dgCiAgICAgICAgICAgICAgPGRpdiBjbGFzcz0idGFibGVTY3JvbGwiPgogICAgICAgICAgICAgIDx0YWJsZT4KICAgICAgICAgICAgICAgIDx0aGVhZD4KICAgICAgICAgICAgICAgICAgPHRyPgogICAgICAgICAgICAgICAgICAgICR7dGhpcy5zZWxlY3Rpb25Nb2RlIT09Im5vbmUiP3dgCiAgICAgICAgICAgICAgICAgICAgICAgICAgPHRoIHN0eWxlPSJ3aWR0aDo0MnB4OyB0ZXh0LWFsaWduOmNlbnRlcjsiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgJHt0aGlzLnNlbGVjdGlvbk1vZGU9PT0ibXVsdGkiP3dgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGVlcy1pbnB1dC1jaGVja2JveAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAudmFsdWU9JHt0aGlzLmFyZUFsbFZpc2libGVTZWxlY3RlZCgpfQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuaW5kZXRlcm1pbmF0ZT0ke3RoaXMuaXNWaXNpYmxlU2VsZWN0aW9uSW5kZXRlcm1pbmF0ZSgpfQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBAbmV3VmFsdWU9JHtzdD0+e3N0LnN0b3BQcm9wYWdhdGlvbigpLHRoaXMuc2V0U2VsZWN0VmlzaWJsZShzdC5kZXRhaWw9PT0hMCl9fQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPjwvZGVlcy1pbnB1dC1jaGVja2JveD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBgOndgYH0KICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RoPgogICAgICAgICAgICAgICAgICAgICAgICBgOndgYH0KICAgICAgICAgICAgICAgICAgICAke2xlLmZpbHRlcihzdD0+IXN0LmhpZGRlbikubWFwKHN0PT57bGV0IGMxPSEhc3Quc29ydGFibGUsaWE9dGhpcy5nZXRBcmlhU29ydChzdCk7cmV0dXJuIHdgCiAgICAgICAgICAgICAgICAgICAgICAgICAgPHRoCiAgICAgICAgICAgICAgICAgICAgICAgICAgICByb2xlPSJjb2x1bW5oZWFkZXIiCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcmlhLXNvcnQ9JHtpYX0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0eWxlPSIke2MxPyJjdXJzb3I6IHBvaW50ZXI7IjoiIn0iCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBAY2xpY2s9JHsoKT0+YzE/dGhpcy50b2dnbGVTb3J0KHN0KTpudWxsfQogICAgICAgICAgICAgICAgICAgICAgICAgID4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICR7c3QuaGVhZGVyPz9zdC5rZXl9CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAke3RoaXMucmVuZGVyU29ydEluZGljYXRvcihzdCl9CiAgICAgICAgICAgICAgICAgICAgICAgICAgPC90aD5gfSl9CiAgICAgICAgICAgICAgICAgICAgJHsoKCk9PntpZih0aGlzLmRhdGFBY3Rpb25zJiZ0aGlzLmRhdGFBY3Rpb25zLmxlbmd0aD4wKXJldHVybiB3YCA8dGggY2xhc3M9ImFjdGlvbnNDb2wiPkFjdGlvbnM8L3RoPiBgfSkoKX0KICAgICAgICAgICAgICAgICAgPC90cj4KICAgICAgICAgICAgICAgICAgJHt0aGlzLnNob3dDb2x1bW5GaWx0ZXJzP3dgPHRyIGNsYXNzPSJmaWx0ZXJzUm93Ij4KICAgICAgICAgICAgICAgICAgICAgICAgJHt0aGlzLnNlbGVjdGlvbk1vZGUhPT0ibm9uZSI/d2A8dGggc3R5bGU9IndpZHRoOjQycHg7Ij48L3RoPmA6d2BgfQogICAgICAgICAgICAgICAgICAgICAgICAke2xlLmZpbHRlcihzdD0+IXN0LmhpZGRlbikubWFwKHN0PT57bGV0IGMxPVN0cmluZyhzdC5rZXkpO3JldHVybiBzdC5maWx0ZXJhYmxlPT09ITE/d2A8dGg+PC90aD5gOndgPHRoPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT0idGV4dCIgcGxhY2Vob2xkZXI9IkZpbHRlci4uLiIgLnZhbHVlPSR7dGhpcy5jb2x1bW5GaWx0ZXJzW2MxXXx8IiJ9CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQGlucHV0PSR7aWE9PnRoaXMuc2V0Q29sdW1uRmlsdGVyKGMxLGlhLnRhcmdldC52YWx1ZSl9IC8+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RoPmB9KX0KICAgICAgICAgICAgICAgICAgICAgICAgJHsoKCk9PntpZih0aGlzLmRhdGFBY3Rpb25zJiZ0aGlzLmRhdGFBY3Rpb25zLmxlbmd0aD4wKXJldHVybiB3YCA8dGg+PC90aD4gYH0pKCl9CiAgICAgICAgICAgICAgICAgICAgICA8L3RyPmA6d2BgfQogICAgICAgICAgICAgICAgPC90aGVhZD4KICAgICAgICAgICAgICAgIDx0Ym9keT4KICAgICAgICAgICAgICAgICAgJHtGMS5tYXAoKHN0LGMxKT0+e2xldCBpYT10dD0+dHQudGFnTmFtZT09PSJUUiI/dHQ6aWEodHQucGFyZW50RWxlbWVudCk7cmV0dXJuIHdgCiAgICAgICAgICAgICAgICAgICAgICA8dHIKICAgICAgICAgICAgICAgICAgICAgICAgQGNsaWNrPSR7KCk9PntpZih0aGlzLnNlbGVjdGVkRGF0YVJvdz1zdCx0aGlzLnNlbGVjdGlvbk1vZGU9PT0ic2luZ2xlIil7bGV0IHR0PXRoaXMuZ2V0Um93SWQoc3QpO3RoaXMuc2VsZWN0ZWRJZHMuY2xlYXIoKSx0aGlzLnNlbGVjdGVkSWRzLmFkZCh0dCksdGhpcy5lbWl0U2VsZWN0aW9uQ2hhbmdlKCksdGhpcy5yZXF1ZXN0VXBkYXRlKCl9fX0KICAgICAgICAgICAgICAgICAgICAgICAgQGRyYWdlbnRlcj0ke2FzeW5jIHR0PT57dHQucHJldmVudERlZmF1bHQoKSx0dC5zdG9wUHJvcGFnYXRpb24oKTtsZXQgajE9aWEodHQudGFyZ2V0KTtzZXRUaW1lb3V0KCgpPT57ajEuY2xhc3NMaXN0LmFkZCgiaGFzQXR0YWNobWVudCIpfSwwKX19CiAgICAgICAgICAgICAgICAgICAgICAgIEBkcmFnbGVhdmU9JHthc3luYyB0dD0+e3R0LnByZXZlbnREZWZhdWx0KCksdHQuc3RvcFByb3BhZ2F0aW9uKCksaWEodHQudGFyZ2V0KS5jbGFzc0xpc3QucmVtb3ZlKCJoYXNBdHRhY2htZW50Iil9fQogICAgICAgICAgICAgICAgICAgICAgICBAZHJhZ292ZXI9JHthc3luYyB0dD0+e3R0LnByZXZlbnREZWZhdWx0KCl9fQogICAgICAgICAgICAgICAgICAgICAgICBAZHJvcD0ke2FzeW5jIHR0PT57dHQucHJldmVudERlZmF1bHQoKTtsZXQgajE9W107Zm9yKGxldCBfaSBvZiBBcnJheS5mcm9tKHR0LmRhdGFUcmFuc2Zlci5maWxlcykpdGhpcy5maWxlcy5wdXNoKF9pKSxqMS5wdXNoKF9pKSx0aGlzLnJlcXVlc3RVcGRhdGUoKTtsZXQgcmE9dGhpcy5maWxlV2Vha01hcC5nZXQoc3QpO3JhP3JhLnB1c2goLi4uajEpOnRoaXMuZmlsZVdlYWtNYXAuc2V0KHN0LGoxKX19CiAgICAgICAgICAgICAgICAgICAgICAgIEBjb250ZXh0bWVudT0ke2FzeW5jIHR0PT57VXQub3BlbkNvbnRleHRNZW51V2l0aE9wdGlvbnModHQsdGhpcy5nZXRBY3Rpb25zRm9yVHlwZSgiY29udGV4dG1lbnUiKS5tYXAoajE9Pih7bmFtZTpqMS5uYW1lLGljb25OYW1lOmoxLmljb25OYW1lLGFjdGlvbjphc3luYygpPT4oYXdhaXQgajEuYWN0aW9uRnVuYyh7aXRlbTpzdCx0YWJsZTp0aGlzfSksbnVsbCl9KSkpfX0KICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9IiR7c3Q9PT10aGlzLnNlbGVjdGVkRGF0YVJvdz8ic2VsZWN0ZWQiOiIifSIKICAgICAgICAgICAgICAgICAgICAgID4KICAgICAgICAgICAgICAgICAgICAgICAgJHt0aGlzLnNlbGVjdGlvbk1vZGUhPT0ibm9uZSI/d2A8dGQgc3R5bGU9IndpZHRoOjQycHg7IHRleHQtYWxpZ246Y2VudGVyOyI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkZWVzLWlucHV0LWNoZWNrYm94CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLnZhbHVlPSR7dGhpcy5pc1Jvd1NlbGVjdGVkKHN0KX0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBAbmV3VmFsdWU9JHt0dD0+e3R0LnN0b3BQcm9wYWdhdGlvbigpLHRoaXMuc2V0Um93U2VsZWN0ZWQoc3QsdHQuZGV0YWlsPT09ITApfX0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPjwvZGVlcy1pbnB1dC1jaGVja2JveD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdGQ+YDp3YGB9CiAgICAgICAgICAgICAgICAgICAgICAgICR7bGUuZmlsdGVyKHR0PT4hdHQuaGlkZGVuKS5tYXAoKHR0LGoxKT0+e2xldCByYT1FbChzdCx0dCx0aGlzLmRpc3BsYXlGdW5jdGlvbiksX2k9dHQucmVuZGVyZXI/dHQucmVuZGVyZXIocmEsc3Qse3Jvd0luZGV4OmMxLGNvbEluZGV4OmoxLGNvbHVtbjp0dH0pOnJhLEtsPVN0cmluZyh0dC5rZXkpO3JldHVybiB3YAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBAZGJsY2xpY2s9JHtsZD0+e2xldCBRbD10aGlzLmRhdGFBY3Rpb25zLmZpbmQoY2Q9PmNkLnR5cGU/LmluY2x1ZGVzKCJkb3VibGVDbGljayIpKTt0aGlzLmVkaXRhYmxlRmllbGRzLmluY2x1ZGVzKEtsKT90aGlzLmhhbmRsZUNlbGxFZGl0aW5nKGxkLHN0LEtsKTpRbCYmUWwuYWN0aW9uRnVuYyh7aXRlbTpzdCx0YWJsZTp0aGlzfSl9fQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICA+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iaW5uZXJDZWxsQ29udGFpbmVyIj4ke19pfTwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RkPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgYH0pfQogICAgICAgICAgICAgICAgICAgICAgICAkeygoKT0+e2lmKHRoaXMuZGF0YUFjdGlvbnMmJnRoaXMuZGF0YUFjdGlvbnMubGVuZ3RoPjApcmV0dXJuIHdgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZCBjbGFzcz0iYWN0aW9uc0NvbCI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iYWN0aW9uc0NvbnRhaW5lciI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAke3RoaXMuZ2V0QWN0aW9uc0ZvclR5cGUoImluUm93IikubWFwKHR0PT53YAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPSJhY3Rpb24iCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBAY2xpY2s9JHsoKT0+dHQuYWN0aW9uRnVuYyh7aXRlbTpzdCx0YWJsZTp0aGlzfSl9CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJHt0dC5pY29uTmFtZT93YCA8ZGVlcy1pY29uIC5pY29uPSR7dHQuaWNvbk5hbWV9PjwvZGVlcy1pY29uPiBgOnR0Lm5hbWV9CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGApfQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RkPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgYH0pKCl9CiAgICAgICAgICAgICAgICAgICAgICA8L3RyPmB9KX0KICAgICAgICAgICAgICAgIDwvdGJvZHk+CiAgICAgICAgICAgICAgPC90YWJsZT4KICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgYDp3YCA8ZGl2IGNsYXNzPSJub0RhdGFTZXQiPk5vIGRhdGEgc2V0ITwvZGl2PiBgfQogICAgICAgIDxkaXYgY2xhc3M9ImZvb3RlciI+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJ0YWJsZVN0YXRpc3RpY3MiPgogICAgICAgICAgICAke3RoaXMuZGF0YS5sZW5ndGh9ICR7dGhpcy5kYXRhTmFtZXx8ImRhdGEgcm93cyJ9ICh0b3RhbCkgfAogICAgICAgICAgICAke3RoaXMuc2VsZWN0ZWREYXRhUm93P2AjICR7dGhpcy5kYXRhLmluZGV4T2YodGhpcy5zZWxlY3RlZERhdGFSb3cpKzF9YDoiTm8ifQogICAgICAgICAgICBzZWxlY3RlZAogICAgICAgICAgPC9kaXY+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJmb290ZXJBY3Rpb25zIj4KICAgICAgICAgICAgJHtWYS5yZXNvbHZlRXhlYyhhc3luYygpPT57bGV0IHN0PVtdO2ZvcihsZXQgYzEgb2YgdGhpcy5kYXRhQWN0aW9ucyljMS50eXBlPy5pbmNsdWRlcygiZm9vdGVyIikmJnN0LnB1c2god2A8ZGl2CiAgICAgICAgICAgICAgICAgICAgY2xhc3M9ImZvb3RlckFjdGlvbiIKICAgICAgICAgICAgICAgICAgICBAY2xpY2s9JHsoKT0+e2MxLmFjdGlvbkZ1bmMoe2l0ZW06dGhpcy5zZWxlY3RlZERhdGFSb3csdGFibGU6dGhpc30pfX0KICAgICAgICAgICAgICAgICAgPgogICAgICAgICAgICAgICAgICAgICR7YzEuaWNvbk5hbWU/d2A8ZGVlcy1pY29uIC5pY29uU2l6ZT0kezE0fSAuaWNvbj0ke2MxLmljb25OYW1lfT48L2RlZXMtaWNvbj4KICAgICAgICAgICAgICAgICAgICAgICAgICAke2MxLm5hbWV9YDpjMS5uYW1lfQogICAgICAgICAgICAgICAgICA8L2Rpdj5gKTtyZXR1cm4gc3R9KX0KICAgICAgICAgIDwvZGl2PgogICAgICAgIDwvZGl2PgogICAgICA8L2Rpdj4KICAgIGB9YXN5bmMgZmlyc3RVcGRhdGVkKCl7fWFzeW5jIHVwZGF0ZWQoTWUpe3N1cGVyLnVwZGF0ZWQoTWUpLHRoaXMuZGV0ZXJtaW5lQ29sdW1uV2lkdGhzKCksdGhpcy5zZWFyY2hhYmxlJiYodGhpcy5kYXRhQWN0aW9ucy5maW5kKERlPT5EZS50eXBlPy5pbmNsdWRlcygiaGVhZGVyIikmJkRlLm5hbWU9PT0iU2VhcmNoIil8fCh0aGlzLmRhdGFBY3Rpb25zLnVuc2hpZnQoe25hbWU6IlNlYXJjaCIsaWNvbk5hbWU6Imx1Y2lkZTpTZWFyY2giLHR5cGU6WyJoZWFkZXIiXSxhY3Rpb25GdW5jOmFzeW5jKCk9Pntjb25zb2xlLmxvZygib3BlbiBzZWFyY2giKSx0aGlzLnNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvcigiLnNlYXJjaEdyaWQiKS5jbGFzc0xpc3QudG9nZ2xlKCJoaWRkZW4iKX19KSxjb25zb2xlLmxvZyh0aGlzLmRhdGFBY3Rpb25zKSx0aGlzLnJlcXVlc3RVcGRhdGUoKSksdGhpcy53aXJlU2VhcmNoSW5wdXRzKCkpfV9fZGVib3VuY2VUaW1lcjtkZWJvdW5jZVJ1bihNZSxsZT0yMDApe3RoaXMuX19kZWJvdW5jZVRpbWVyJiZjbGVhclRpbWVvdXQodGhpcy5fX2RlYm91bmNlVGltZXIpLHRoaXMuX19kZWJvdW5jZVRpbWVyPXNldFRpbWVvdXQoTWUsbGUpfXdpcmVTZWFyY2hJbnB1dHMoKXtsZXQgTWU9dGhpcy5zaGFkb3dSb290Py5xdWVyeVNlbGVjdG9yKCIuc2VhcmNoR3JpZCBkZWVzLWlucHV0LXRleHQiKSxsZT10aGlzLnNoYWRvd1Jvb3Q/LnF1ZXJ5U2VsZWN0b3IoIi5zZWFyY2hHcmlkIGRlZXMtaW5wdXQtbXVsdGl0b2dnbGUiKTtNZSYmIXRoaXMuX19zZWFyY2hUZXh0U3ViJiYodGhpcy5fX3NlYXJjaFRleHRTdWI9TWUuY2hhbmdlU3ViamVjdC5zdWJzY3JpYmUoRGU9PntsZXQgRjE9RGU/LnZhbHVlPz8iIjt0aGlzLmRlYm91bmNlUnVuKCgpPT57dGhpcy5zZWFyY2hNb2RlPT09InNlcnZlciI/dGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBDdXN0b21FdmVudCgic2VhcmNoUmVxdWVzdCIse2RldGFpbDp7cXVlcnk6RjEsbW9kZToic2VydmVyIn0sYnViYmxlczohMH0pKTp0aGlzLnNldEZpbHRlclRleHQoRjEpfSl9KSksbGUmJiF0aGlzLl9fc2VhcmNoTW9kZVN1YiYmKHRoaXMuX19zZWFyY2hNb2RlU3ViPWxlLmNoYW5nZVN1YmplY3Quc3Vic2NyaWJlKERlPT57bGV0IEYxPURlPy5zZWxlY3RlZE9wdGlvbnx8RGU/LnZhbHVlfHwidGFibGUiO2lmKEYxPT09InRhYmxlInx8RjE9PT0iZGF0YSJ8fEYxPT09InNlcnZlciIpe3RoaXMuc2VhcmNoTW9kZT1GMTtsZXQgc3Q9TWU/LnZhbHVlPz8iIjt0aGlzLmRlYm91bmNlUnVuKCgpPT57dGhpcy5zZWFyY2hNb2RlPT09InNlcnZlciI/dGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBDdXN0b21FdmVudCgic2VhcmNoUmVxdWVzdCIse2RldGFpbDp7cXVlcnk6c3QsbW9kZToic2VydmVyIn0sYnViYmxlczohMH0pKTp0aGlzLnNldEZpbHRlclRleHQoc3QpfSl9fSkpfWFzeW5jIGRldGVybWluZUNvbHVtbldpZHRocygpe2F3YWl0KGF3YWl0IHRoaXMuZG9tdG9vbHNQcm9taXNlKS5jb252ZW5pZW5jZS5zbWFydGRlbGF5LmRlbGF5Rm9yKDApO2xldCBsZT10aGlzLnNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvcigidGFibGUiKTtpZighbGUpcmV0dXJuO2xldCBEZT1sZS5yb3dzWzBdLmNlbGxzLEYxPWFzeW5jKHN0LGMxPSExKT0+e2xldCBpYT1CZS5kZWZlcigpLHR0PURlW3N0XSxqMT13aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZSh0dCkud2lkdGg7aWYodHQudGV4dENvbnRlbnQuaW5jbHVkZXMoIkFjdGlvbnMiKSl7bGV0IHJhPXRoaXMuZGF0YUFjdGlvbnMuZmlsdGVyKF9pPT5faS50eXBlPy5pbmNsdWRlcygiaW5Sb3ciKSkubGVuZ3RoKjM2O3R0LnN0eWxlLndpZHRoPWAke01hdGgubWF4KHJhLDY4KX1weGB9ZWxzZSB0dC5zdHlsZS53aWR0aD1qMTtjMSYmKHJlcXVlc3RBbmltYXRpb25GcmFtZSgoKT0+e2lhLnJlc29sdmUoKX0pLGF3YWl0IGlhLnByb21pc2UpfTtEZVtEZS5sZW5ndGgtMV0udGV4dENvbnRlbnQuaW5jbHVkZXMoIkFjdGlvbnMiKSYmYXdhaXQgRjEoRGUubGVuZ3RoLTEsITApO2ZvcihsZXQgc3Q9MDtzdDxEZS5sZW5ndGg7c3QrKylEZVtzdF0udGV4dENvbnRlbnQuaW5jbHVkZXMoIkFjdGlvbnMiKXx8YXdhaXQgRjEoc3QpO2xlLnN0eWxlLnRhYmxlTGF5b3V0PSJmaXhlZCJ9dG9nZ2xlU29ydChNZSl7bGV0IGxlPVN0cmluZyhNZS5rZXkpO3RoaXMuc29ydEtleSE9PWxlPyh0aGlzLnNvcnRLZXk9bGUsdGhpcy5zb3J0RGlyPSJhc2MiKTp0aGlzLnNvcnREaXI9PT0iYXNjIj90aGlzLnNvcnREaXI9ImRlc2MiOnRoaXMuc29ydERpcj09PSJkZXNjIj8odGhpcy5zb3J0RGlyPW51bGwsdGhpcy5zb3J0S2V5PXZvaWQgMCk6dGhpcy5zb3J0RGlyPSJhc2MiLHRoaXMuZGlzcGF0Y2hFdmVudChuZXcgQ3VzdG9tRXZlbnQoInNvcnRDaGFuZ2UiLHtkZXRhaWw6e2tleTp0aGlzLnNvcnRLZXksZGlyOnRoaXMuc29ydERpcn0sYnViYmxlczohMH0pKSx0aGlzLnJlcXVlc3RVcGRhdGUoKX1nZXRBcmlhU29ydChNZSl7cmV0dXJuIFN0cmluZyhNZS5rZXkpIT09dGhpcy5zb3J0S2V5fHwhdGhpcy5zb3J0RGlyPyJub25lIjp0aGlzLnNvcnREaXI9PT0iYXNjIj8iYXNjZW5kaW5nIjoiZGVzY2VuZGluZyJ9cmVuZGVyU29ydEluZGljYXRvcihNZSl7cmV0dXJuIFN0cmluZyhNZS5rZXkpIT09dGhpcy5zb3J0S2V5fHwhdGhpcy5zb3J0RGlyP3dgYDp3YDxzcGFuIHN0eWxlPSJtYXJnaW4tbGVmdDo2cHg7IG9wYWNpdHk6MC43OyI+JHt0aGlzLnNvcnREaXI9PT0iYXNjIj8iXHUyNUIyIjoiXHUyNUJDIn08L3NwYW4+YH1zZXRGaWx0ZXJUZXh0KE1lKXtsZXQgbGU9dGhpcy5maWx0ZXJUZXh0O3RoaXMuZmlsdGVyVGV4dD1NZT8/IiIsbGUhPT10aGlzLmZpbHRlclRleHQmJih0aGlzLmRpc3BhdGNoRXZlbnQobmV3IEN1c3RvbUV2ZW50KCJmaWx0ZXJDaGFuZ2UiLHtkZXRhaWw6e3RleHQ6dGhpcy5maWx0ZXJUZXh0LGNvbHVtbnM6ey4uLnRoaXMuY29sdW1uRmlsdGVyc319LGJ1YmJsZXM6ITB9KSksdGhpcy5yZXF1ZXN0VXBkYXRlKCkpfXNldENvbHVtbkZpbHRlcihNZSxsZSl7dGhpcy5jb2x1bW5GaWx0ZXJzPXsuLi50aGlzLmNvbHVtbkZpbHRlcnMsW01lXTpsZX0sdGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBDdXN0b21FdmVudCgiZmlsdGVyQ2hhbmdlIix7ZGV0YWlsOnt0ZXh0OnRoaXMuZmlsdGVyVGV4dCxjb2x1bW5zOnsuLi50aGlzLmNvbHVtbkZpbHRlcnN9fSxidWJibGVzOiEwfSkpLHRoaXMucmVxdWVzdFVwZGF0ZSgpfWdldFJvd0lkKE1lKXtpZih0aGlzLnJvd0tleSlyZXR1cm4gdHlwZW9mIHRoaXMucm93S2V5PT0iZnVuY3Rpb24iP3RoaXMucm93S2V5KE1lKTpTdHJpbmcoTWVbdGhpcy5yb3dLZXldKTtsZXQgbGU9TWU7cmV0dXJuIHRoaXMuX3Jvd0lkTWFwLmhhcyhsZSl8fHRoaXMuX3Jvd0lkTWFwLnNldChsZSxTdHJpbmcoKyt0aGlzLl9yb3dJZENvdW50ZXIpKSx0aGlzLl9yb3dJZE1hcC5nZXQobGUpfWlzUm93U2VsZWN0ZWQoTWUpe3JldHVybiB0aGlzLnNlbGVjdGVkSWRzLmhhcyh0aGlzLmdldFJvd0lkKE1lKSl9dG9nZ2xlUm93U2VsZWN0ZWQoTWUpe2xldCBsZT10aGlzLmdldFJvd0lkKE1lKTt0aGlzLnNlbGVjdGlvbk1vZGU9PT0ic2luZ2xlIj8odGhpcy5zZWxlY3RlZElkcy5jbGVhcigpLHRoaXMuc2VsZWN0ZWRJZHMuYWRkKGxlKSk6dGhpcy5zZWxlY3Rpb25Nb2RlPT09Im11bHRpIiYmKHRoaXMuc2VsZWN0ZWRJZHMuaGFzKGxlKT90aGlzLnNlbGVjdGVkSWRzLmRlbGV0ZShsZSk6dGhpcy5zZWxlY3RlZElkcy5hZGQobGUpKSx0aGlzLmVtaXRTZWxlY3Rpb25DaGFuZ2UoKSx0aGlzLnJlcXVlc3RVcGRhdGUoKX1zZXRSb3dTZWxlY3RlZChNZSxsZSl7bGV0IERlPXRoaXMuZ2V0Um93SWQoTWUpO3RoaXMuc2VsZWN0aW9uTW9kZT09PSJzaW5nbGUiPyh0aGlzLnNlbGVjdGVkSWRzLmNsZWFyKCksbGUmJnRoaXMuc2VsZWN0ZWRJZHMuYWRkKERlKSk6dGhpcy5zZWxlY3Rpb25Nb2RlPT09Im11bHRpIiYmKGxlP3RoaXMuc2VsZWN0ZWRJZHMuYWRkKERlKTp0aGlzLnNlbGVjdGVkSWRzLmRlbGV0ZShEZSkpLHRoaXMuZW1pdFNlbGVjdGlvbkNoYW5nZSgpLHRoaXMucmVxdWVzdFVwZGF0ZSgpfWFyZUFsbFZpc2libGVTZWxlY3RlZCgpe2xldCBNZT10aGlzLl9sYXN0Vmlld0RhdGF8fFtdO2lmKE1lLmxlbmd0aD09PTApcmV0dXJuITE7Zm9yKGxldCBsZSBvZiBNZSlpZighdGhpcy5zZWxlY3RlZElkcy5oYXModGhpcy5nZXRSb3dJZChsZSkpKXJldHVybiExO3JldHVybiEwfWlzVmlzaWJsZVNlbGVjdGlvbkluZGV0ZXJtaW5hdGUoKXtsZXQgTWU9dGhpcy5fbGFzdFZpZXdEYXRhfHxbXTtpZihNZS5sZW5ndGg9PT0wKXJldHVybiExO2xldCBsZT0wO2ZvcihsZXQgRGUgb2YgTWUpdGhpcy5zZWxlY3RlZElkcy5oYXModGhpcy5nZXRSb3dJZChEZSkpJiZsZSsrO3JldHVybiBsZT4wJiZsZTxNZS5sZW5ndGh9c2V0U2VsZWN0VmlzaWJsZShNZSl7bGV0IGxlPXRoaXMuX2xhc3RWaWV3RGF0YXx8W107aWYoTWUpZm9yKGxldCBEZSBvZiBsZSl0aGlzLnNlbGVjdGVkSWRzLmFkZCh0aGlzLmdldFJvd0lkKERlKSk7ZWxzZSBmb3IobGV0IERlIG9mIGxlKXRoaXMuc2VsZWN0ZWRJZHMuZGVsZXRlKHRoaXMuZ2V0Um93SWQoRGUpKTt0aGlzLmVtaXRTZWxlY3Rpb25DaGFuZ2UoKSx0aGlzLnJlcXVlc3RVcGRhdGUoKX1lbWl0U2VsZWN0aW9uQ2hhbmdlKCl7bGV0IE1lPUFycmF5LmZyb20odGhpcy5zZWxlY3RlZElkcyksbGU9dGhpcy5kYXRhLmZpbHRlcihEZT0+dGhpcy5zZWxlY3RlZElkcy5oYXModGhpcy5nZXRSb3dJZChEZSkpKTt0aGlzLmRpc3BhdGNoRXZlbnQobmV3IEN1c3RvbUV2ZW50KCJzZWxlY3Rpb25DaGFuZ2UiLHtkZXRhaWw6e3NlbGVjdGVkSWRzOk1lLHNlbGVjdGVkUm93czpsZX0sYnViYmxlczohMH0pKX1nZXRBY3Rpb25zRm9yVHlwZShNZSl7bGV0IGxlPVtdO2ZvcihsZXQgRGUgb2YgdGhpcy5kYXRhQWN0aW9ucylEZS50eXBlPy5pbmNsdWRlcyhNZSkmJmxlLnB1c2goRGUpO3JldHVybiBsZX1hc3luYyBoYW5kbGVDZWxsRWRpdGluZyhNZSxsZSxEZSl7YXdhaXQgdGhpcy5kb210b29sc1Byb21pc2U7bGV0IEYxPU1lLnRhcmdldCxzdD1GMS5zdHlsZS5jb2xvcjtGMS5zdHlsZS5jb2xvcj0idHJhbnNwYXJlbnQiO2xldCBpYT10aGlzLmRpc3BsYXlGdW5jdGlvbihsZSlbRGVdPz9sZVtEZV0/PyIiLHR0PWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImlucHV0Iik7dHQudHlwZT0idGV4dCIsdHQudmFsdWU9aWE7bGV0IGoxPWFzeW5jKHJhPSEwLF9pPSExKT0+e3JhJiZ0dC5ibHVyKCksX2kmJihsZVtEZV09dHQudmFsdWUsdGhpcy5jaGFuZ2VTdWJqZWN0Lm5leHQodGhpcykpLHR0LnJlbW92ZSgpLEYxLnN0eWxlLmNvbG9yPXN0LHRoaXMucmVxdWVzdFVwZGF0ZSgpfTt0dC5hZGRFdmVudExpc3RlbmVyKCJibHVyIiwoKT0+e2oxKCExLCExKX0pLHR0LmFkZEV2ZW50TGlzdGVuZXIoImtleWRvd24iLHJhPT57cmEua2V5PT09IkVudGVyIiYmajEoITAsITApfSksRjEuYXBwZW5kQ2hpbGQodHQpLHR0LmZvY3VzKCl9c3RhdGlje0tlKGksYSl9fTtyZXR1cm4gWGw9aX0pKCl9KTt2YXIgdFY9YigoKT0+e0pxKCl9KTt2YXIgcXV0LFZ1dD1iKCgpPT57dWUoKTt4MSgpO3F1dD0oKT0+d2AKICA8c3R5bGU+CiAgICAke1FgCiAgICAgIC5kZW1vLWNvbnRhaW5lciB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICAgIGdhcDogMjRweDsKICAgICAgICBwYWRkaW5nOiAyNHB4OwogICAgICAgIG1heC13aWR0aDogMTIwMHB4OwogICAgICAgIG1hcmdpbjogMCBhdXRvOwogICAgICB9CiAgICAgIAogICAgICBkZWVzLXBhbmVsIHsKICAgICAgICBtYXJnaW4tYm90dG9tOiAyNHB4OwogICAgICB9CiAgICAgIAogICAgICBkZWVzLXBhbmVsOmxhc3QtY2hpbGQgewogICAgICAgIG1hcmdpbi1ib3R0b206IDA7CiAgICAgIH0KICAgICAgCiAgICAgIC5mb3JtLW91dHB1dCB7CiAgICAgICAgbWFyZ2luLXRvcDogMTZweDsKICAgICAgICBwYWRkaW5nOiAxMnB4OwogICAgICAgIGJhY2tncm91bmQ6ICR7cC5iZFRoZW1lKCJoc2woMjEwIDQwJSA5Ni4xJSkiLCJoc2woMjE1IDIwLjIlIDE2LjglKSIpfTsKICAgICAgICBib3JkZXItcmFkaXVzOiA2cHg7CiAgICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgICAgIGZvbnQtZmFtaWx5OiBtb25vc3BhY2U7CiAgICAgICAgd2hpdGUtc3BhY2U6IHByZS13cmFwOwogICAgICB9CiAgICAgIAogICAgICAuc3RhdHVzLW1lc3NhZ2UgewogICAgICAgIG1hcmdpbi10b3A6IDE2cHg7CiAgICAgICAgcGFkZGluZzogMTJweDsKICAgICAgICBib3JkZXItcmFkaXVzOiA2cHg7CiAgICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgICB9CiAgICAgIAogICAgICAuc3RhdHVzLW1lc3NhZ2Uuc3VjY2VzcyB7CiAgICAgICAgYmFja2dyb3VuZDogJHtwLmJkVGhlbWUoImhzbCgxNDIuMSA3MC42JSA0NS4zJSAvIDAuMSkiLCJoc2woMTQyLjEgNzAuNiUgNDUuMyUgLyAwLjIpIil9OwogICAgICAgIGNvbG9yOiAke3AuYmRUaGVtZSgiaHNsKDE0Mi4xIDcwLjYlIDM1LjMlKSIsImhzbCgxNDIuMSA3MC42JSA2NS4zJSkiKX07CiAgICAgIH0KICAgICAgCiAgICAgIC5zdGF0dXMtbWVzc2FnZS5lcnJvciB7CiAgICAgICAgYmFja2dyb3VuZDogJHtwLmJkVGhlbWUoImhzbCgwIDcyLjIlIDUwLjYlIC8gMC4xKSIsImhzbCgwIDcyLjIlIDUwLjYlIC8gMC4yKSIpfTsKICAgICAgICBjb2xvcjogJHtwLmJkVGhlbWUoImhzbCgwIDcyLjIlIDQwLjYlKSIsImhzbCgwIDcyLjIlIDYwLjYlKSIpfTsKICAgICAgfQogICAgYH0KICA8L3N0eWxlPgogIAogIDxkaXYgY2xhc3M9ImRlbW8tY29udGFpbmVyIj4KICAgIDxkZWVzLWRlbW93cmFwcGVyIC5ydW5BZnRlclJlbmRlcj0ke2FzeW5jIHQ9PntsZXQgZT10LnF1ZXJ5U2VsZWN0b3IoImRlZXMtZm9ybSIpLGE9dC5xdWVyeVNlbGVjdG9yKCIuZm9ybS1vdXRwdXQiKTtlJiZhJiYoZS5hZGRFdmVudExpc3RlbmVyKCJmb3JtRGF0YSIsYXN5bmMgcj0+e2xldCBzPXIuZGV0YWlsLmRhdGE7Y29uc29sZS5sb2coIkZvcm0gc3VibWl0dGVkIHdpdGggZGF0YToiLHMpLGUuc2V0U3RhdHVzKCJwZW5kaW5nIiwiUHJvY2Vzc2luZyB5b3VyIHJlZ2lzdHJhdGlvbi4uLiIpLGEuaW5uZXJIVE1MPWA8c3Ryb25nPlN1Ym1pdHRlZCBEYXRhOjwvc3Ryb25nPgoke0pTT04uc3RyaW5naWZ5KHMsbnVsbCwyKX1gLGF3YWl0IHJ0LnBsdWdpbnMuc21hcnRkZWxheS5kZWxheUZvcigyZTMpLGUuc2V0U3RhdHVzKCJzdWNjZXNzIiwiUmVnaXN0cmF0aW9uIGNvbXBsZXRlZCBzdWNjZXNzZnVsbHkhIiksYXdhaXQgcnQucGx1Z2lucy5zbWFydGRlbGF5LmRlbGF5Rm9yKDJlMyksZS5yZXNldCgpLGEuaW5uZXJIVE1MPSI8ZW0+Rm9ybSBoYXMgYmVlbiByZXNldDwvZW0+In0pLGUucXVlcnlTZWxlY3RvckFsbCgiZGVlcy1pbnB1dC10ZXh0LCBkZWVzLWlucHV0LWRyb3Bkb3duLCBkZWVzLWlucHV0LWNoZWNrYm94IikuZm9yRWFjaChyPT57ci5hZGRFdmVudExpc3RlbmVyKCJjaGFuZ2VTdWJqZWN0IiwoKT0+e2NvbnNvbGUubG9nKCJGaWVsZCBjaGFuZ2VkOiIsci5nZXRBdHRyaWJ1dGUoImtleSIpKX0pfSkpfX0+CiAgICAgIDxkZWVzLXBhbmVsIC5oZWFkaW5nPSJDb21wbGV0ZSBGb3JtIEV4YW1wbGUiIC5kZXNjcmlwdGlvbj0iQSBjb21wcmVoZW5zaXZlIGZvcm0gd2l0aCB2YXJpb3VzIGlucHV0IHR5cGVzLCB2YWxpZGF0aW9uLCBhbmQgZm9ybSBzdWJtaXNzaW9uIGhhbmRsaW5nIj4KICAgICAgICA8ZGVlcy1mb3JtPgogICAgICAgICAgPGRlZXMtaW5wdXQtdGV4dCAKICAgICAgICAgICAgLnJlcXVpcmVkPSR7ITB9IAogICAgICAgICAgICBrZXk9ImZpcnN0TmFtZSIgCiAgICAgICAgICAgIGxhYmVsPSJGaXJzdCBOYW1lIgogICAgICAgICAgICAuZGVzY3JpcHRpb249JHsiWW91ciBnaXZlbiBuYW1lIn0KICAgICAgICAgID48L2RlZXMtaW5wdXQtdGV4dD4KICAgICAgICAgIAogICAgICAgICAgPGRlZXMtaW5wdXQtdGV4dCAKICAgICAgICAgICAgLnJlcXVpcmVkPSR7ITB9IAogICAgICAgICAgICBrZXk9Imxhc3ROYW1lIiAKICAgICAgICAgICAgbGFiZWw9Ikxhc3QgTmFtZSIKICAgICAgICAgID48L2RlZXMtaW5wdXQtdGV4dD4KICAgICAgICAgIAogICAgICAgICAgPGRlZXMtaW5wdXQtdGV4dCAKICAgICAgICAgICAgLnJlcXVpcmVkPSR7ITB9IAogICAgICAgICAgICBrZXk9ImVtYWlsIiAKICAgICAgICAgICAgbGFiZWw9IkVtYWlsIEFkZHJlc3MiCiAgICAgICAgICAgIC5kZXNjcmlwdGlvbj0keyJXZSB3aWxsIHVzZSB0aGlzIHRvIGNvbnRhY3QgeW91In0KICAgICAgICAgID48L2RlZXMtaW5wdXQtdGV4dD4KICAgICAgICAgIAogICAgICAgICAgPGRlZXMtaW5wdXQtZHJvcGRvd24KICAgICAgICAgICAgLnJlcXVpcmVkPSR7ITB9CiAgICAgICAgICAgIGtleT0iY291bnRyeSIKICAgICAgICAgICAgLmxhYmVsPSR7IkNvdW50cnkifQogICAgICAgICAgICAub3B0aW9ucz0ke1t7b3B0aW9uOiJVbml0ZWQgU3RhdGVzIixrZXk6InVzIn0se29wdGlvbjoiQ2FuYWRhIixrZXk6ImNhIn0se29wdGlvbjoiR2VybWFueSIsa2V5OiJkZSJ9LHtvcHRpb246IkZyYW5jZSIsa2V5OiJmciJ9LHtvcHRpb246IlVuaXRlZCBLaW5nZG9tIixrZXk6InVrIn1dfQogICAgICAgICAgPjwvZGVlcy1pbnB1dC1kcm9wZG93bj4KICAgICAgICAgIAogICAgICAgICAgPGRlZXMtaW5wdXQtdGV4dAogICAgICAgICAgICAucmVxdWlyZWQ9JHshMH0KICAgICAgICAgICAga2V5PSJwYXNzd29yZCIKICAgICAgICAgICAgbGFiZWw9IlBhc3N3b3JkIgogICAgICAgICAgICBpc1Bhc3N3b3JkQm9vbAogICAgICAgICAgICAuZGVzY3JpcHRpb249JHsiTWluaW11bSA4IGNoYXJhY3RlcnMifQogICAgICAgICAgPjwvZGVlcy1pbnB1dC10ZXh0PgogICAgICAgICAgCiAgICAgICAgICA8ZGVlcy1pbnB1dC1jaGVja2JveAogICAgICAgICAgICAucmVxdWlyZWQ9JHshMH0KICAgICAgICAgICAga2V5PSJ0ZXJtcyIKICAgICAgICAgICAgbGFiZWw9IkkgYWdyZWUgdG8gdGhlIFRlcm1zIGFuZCBDb25kaXRpb25zIgogICAgICAgICAgPjwvZGVlcy1pbnB1dC1jaGVja2JveD4KICAgICAgICAgIAogICAgICAgICAgPGRlZXMtaW5wdXQtY2hlY2tib3gKICAgICAgICAgICAga2V5PSJuZXdzbGV0dGVyIgogICAgICAgICAgICBsYWJlbD0iU2VuZCBtZSBwcm9tb3Rpb25hbCBlbWFpbHMiCiAgICAgICAgICAgIC52YWx1ZT0keyEwfQogICAgICAgICAgPjwvZGVlcy1pbnB1dC1jaGVja2JveD4KICAgICAgICAgIAogICAgICAgICAgPGRlZXMtZm9ybS1zdWJtaXQ+Q3JlYXRlIEFjY291bnQ8L2RlZXMtZm9ybS1zdWJtaXQ+CiAgICAgICAgPC9kZWVzLWZvcm0+CiAgICAgICAgCiAgICAgICAgPGRpdiBjbGFzcz0iZm9ybS1vdXRwdXQiPgogICAgICAgICAgPGVtPlN1Ym1pdCB0aGUgZm9ybSB0byBzZWUgdGhlIGNvbGxlY3RlZCBkYXRhLi4uPC9lbT4KICAgICAgICA8L2Rpdj4KICAgICAgPC9kZWVzLXBhbmVsPgogICAgPC9kZWVzLWRlbW93cmFwcGVyPgogICAgCiAgICA8ZGVlcy1kZW1vd3JhcHBlciAucnVuQWZ0ZXJSZW5kZXI9JHthc3luYyB0PT57bGV0IGU9dC5xdWVyeVNlbGVjdG9yKCJkZWVzLWZvcm0iKTtlJiYoY29uc29sZS5sb2coIkhvcml6b250YWwgZm9ybSBsYXlvdXQgYWN0aXZlIiksZS5hZGRFdmVudExpc3RlbmVyKCJmb3JtRGF0YSIsaT0+e2xldCByPWkuZGV0YWlsLmRhdGE7Y29uc29sZS5sb2coIkZpbHRlciBhcHBsaWVkOiIscik7bGV0IHM9TWF0aC5mbG9vcihNYXRoLnJhbmRvbSgpKjEwMCkrMTtjb25zb2xlLmxvZyhgRm91bmQgJHtzfSByZXN1bHRzIHdpdGggZmlsdGVyczpgLHIpfSksZS5xdWVyeVNlbGVjdG9yQWxsKCJba2V5XSIpLmZvckVhY2goaT0+e2kuYWRkRXZlbnRMaXN0ZW5lcigiY2hhbmdlU3ViamVjdCIsYXN5bmMoKT0+e2xldCByPWF3YWl0IGUuY29sbGVjdEZvcm1EYXRhKCk7Y29uc29sZS5sb2coIkxpdmUgZmlsdGVyIHVwZGF0ZToiLHIpfSl9KSl9fT4KICAgICAgPGRlZXMtcGFuZWwgLmhlYWRpbmc9Ikhvcml6b250YWwgRm9ybSBMYXlvdXQiIC5kZXNjcmlwdGlvbj0iQ29tcGFjdCBmb3JtIHdpdGggaW5wdXRzIGFycmFuZ2VkIGhvcml6b250YWxseSAtIHBlcmZlY3QgZm9yIGZpbHRlcnMgYW5kIHF1aWNrIGZvcm1zIj4KICAgICAgICA8ZGVlcy1mb3JtIGhvcml6b250YWwtbGF5b3V0PgogICAgICAgICAgPGRlZXMtaW5wdXQtdGV4dCAKICAgICAgICAgICAga2V5PSJzZWFyY2giIAogICAgICAgICAgICBsYWJlbD0iU2VhcmNoIgogICAgICAgICAgICBwbGFjZWhvbGRlcj0iRW50ZXIga2V5d29yZHMuLi4iCiAgICAgICAgICA+PC9kZWVzLWlucHV0LXRleHQ+CiAgICAgICAgICAKICAgICAgICAgIDxkZWVzLWlucHV0LWRyb3Bkb3duCiAgICAgICAgICAgIGtleT0iY2F0ZWdvcnkiCiAgICAgICAgICAgIC5sYWJlbD0keyJDYXRlZ29yeSJ9CiAgICAgICAgICAgIC5lbmFibGVTZWFyY2g9JHshMX0KICAgICAgICAgICAgLm9wdGlvbnM9JHtbe29wdGlvbjoiQWxsIixrZXk6ImFsbCJ9LHtvcHRpb246IlByb2R1Y3RzIixrZXk6InByb2R1Y3RzIn0se29wdGlvbjoiU2VydmljZXMiLGtleToic2VydmljZXMifSx7b3B0aW9uOiJTdXBwb3J0IixrZXk6InN1cHBvcnQifV19CiAgICAgICAgICA+PC9kZWVzLWlucHV0LWRyb3Bkb3duPgogICAgICAgICAgCiAgICAgICAgICA8ZGVlcy1pbnB1dC1kcm9wZG93bgogICAgICAgICAgICBrZXk9InNvcnQiCiAgICAgICAgICAgIC5sYWJlbD0keyJTb3J0IEJ5In0KICAgICAgICAgICAgLmVuYWJsZVNlYXJjaD0keyExfQogICAgICAgICAgICAub3B0aW9ucz0ke1t7b3B0aW9uOiJOZXdlc3QiLGtleToibmV3ZXN0In0se29wdGlvbjoiUG9wdWxhciIsa2V5OiJwb3B1bGFyIn0se29wdGlvbjoiUHJpY2U6IExvdyB0byBIaWdoIixrZXk6InByaWNlX2FzYyJ9LHtvcHRpb246IlByaWNlOiBIaWdoIHRvIExvdyIsa2V5OiJwcmljZV9kZXNjIn1dfQogICAgICAgICAgPjwvZGVlcy1pbnB1dC1kcm9wZG93bj4KICAgICAgICAgIAogICAgICAgICAgPGRlZXMtaW5wdXQtY2hlY2tib3gKICAgICAgICAgICAga2V5PSJpblN0b2NrIgogICAgICAgICAgICBsYWJlbD0iSW4gU3RvY2sgT25seSIKICAgICAgICAgICAgLnZhbHVlPSR7ITB9CiAgICAgICAgICA+PC9kZWVzLWlucHV0LWNoZWNrYm94PgogICAgICAgIDwvZGVlcy1mb3JtPgogICAgICA8L2RlZXMtcGFuZWw+CiAgICA8L2RlZXMtZGVtb3dyYXBwZXI+CiAgICAKICAgIDxkZWVzLWRlbW93cmFwcGVyIC5ydW5BZnRlclJlbmRlcj0ke2FzeW5jIHQ9PntsZXQgZT10LnF1ZXJ5U2VsZWN0b3IoImRlZXMtZm9ybSIpLGE9dC5xdWVyeVNlbGVjdG9yKCIjc3RhdHVzLWRpc3BsYXkiKTtpZihlKXtlLmFkZEV2ZW50TGlzdGVuZXIoImZvcm1EYXRhIixhc3luYyByPT57bGV0IHM9ci5kZXRhaWwuZGF0YTtjb25zb2xlLmxvZygiQWR2YW5jZWQgZm9ybSBkYXRhOiIscyksZS5zZXRTdGF0dXMoInBlbmRpbmciLCJWYWxpZGF0aW5nIHlvdXIgaW5mb3JtYXRpb24uLi4iKSxhd2FpdCBydC5wbHVnaW5zLnNtYXJ0ZGVsYXkuZGVsYXlGb3IoMTUwMCkscy5pYmFuJiZzLmliYW4ubGVuZ3RoPjE1PyhlLnNldFN0YXR1cygic3VjY2VzcyIsIkFwcGxpY2F0aW9uIHN1Ym1pdHRlZCBzdWNjZXNzZnVsbHkhIiksYSYmKGEuY2xhc3NOYW1lPSJzdGF0dXMtbWVzc2FnZSBzdWNjZXNzIixhLnRleHRDb250ZW50PSJcdTI3MTMgWW91ciBhcHBsaWNhdGlvbiBoYXMgYmVlbiBzdWJtaXR0ZWQuIFdlIHdpbGwgY29udGFjdCB5b3Ugc29vbi4iKSk6KGUuc2V0U3RhdHVzKCJlcnJvciIsIlBsZWFzZSBjaGVjayB5b3VyIElCQU4iKSxhJiYoYS5jbGFzc05hbWU9InN0YXR1cy1tZXNzYWdlIGVycm9yIixhLnRleHRDb250ZW50PSJcdTI3MTcgSW52YWxpZCBJQkFOIGZvcm1hdC4gUGxlYXNlIGNoZWNrIGFuZCB0cnkgYWdhaW4uIikpLGNvbnNvbGUubG9nKCJGb3JtIGRhdGEgbG9nZ2VkOiIscyl9KTtsZXQgaT1lLnF1ZXJ5U2VsZWN0b3IoImRlZXMtaW5wdXQtZmlsZXVwbG9hZCIpO2kmJmkuYWRkRXZlbnRMaXN0ZW5lcigiY2hhbmdlIixyPT57bGV0IHM9ci5kZXRhaWw/LmZpbGVzfHxbXTtjb25zb2xlLmxvZyhgJHtzLmxlbmd0aH0gZmlsZShzKSBzZWxlY3RlZCBmb3IgdXBsb2FkYCl9KX19fT4KICAgICAgPGRlZXMtcGFuZWwgLmhlYWRpbmc9IkFkdmFuY2VkIEZvcm0gRmVhdHVyZXMiIC5kZXNjcmlwdGlvbj0iRm9ybSB3aXRoIHNwZWNpYWxpemVkIGlucHV0IHR5cGVzIGFuZCBjb21wbGV4IHZhbGlkYXRpb24iPgogICAgICAgIDxkZWVzLWZvcm0+CiAgICAgICAgICA8ZGVlcy1pbnB1dC1pYmFuIAogICAgICAgICAgICBrZXk9ImliYW4iCiAgICAgICAgICAgIGxhYmVsPSJJQkFOIgogICAgICAgICAgICAucmVxdWlyZWQ9JHshMH0KICAgICAgICAgID48L2RlZXMtaW5wdXQtaWJhbj4KICAgICAgICAgIAogICAgICAgICAgPGRlZXMtaW5wdXQtcGhvbmUKICAgICAgICAgICAga2V5PSJwaG9uZSIKICAgICAgICAgICAgbGFiZWw9IlBob25lIE51bWJlciIKICAgICAgICAgICAgLnJlcXVpcmVkPSR7ITB9CiAgICAgICAgICA+PC9kZWVzLWlucHV0LXBob25lPgogICAgICAgICAgCiAgICAgICAgICA8ZGVlcy1pbnB1dC1tdWx0aXRvZ2dsZQogICAgICAgICAgICBrZXk9InByZWZlcmVuY2VzIgogICAgICAgICAgICAubGFiZWw9JHsiTm90aWZpY2F0aW9uIFByZWZlcmVuY2VzIn0KICAgICAgICAgICAgLm9wdGlvbnM9JHtbIkVtYWlsIiwiU01TIiwiUHVzaCIsIkluLUFwcCJdfQogICAgICAgICAgICAuc2VsZWN0ZWRPcHRpb249JHsiRW1haWwifQogICAgICAgICAgPjwvZGVlcy1pbnB1dC1tdWx0aXRvZ2dsZT4KICAgICAgICAgIAogICAgICAgICAgPGRlZXMtaW5wdXQtbXVsdGlzZWxlY3QKICAgICAgICAgICAga2V5PSJpbnRlcmVzdHMiCiAgICAgICAgICAgIC5sYWJlbD0keyJBcmVhcyBvZiBJbnRlcmVzdCJ9CiAgICAgICAgICAgIC5vcHRpb25zPSR7W3tvcHRpb246IlRlY2hub2xvZ3kiLGtleToidGVjaCJ9LHtvcHRpb246IkRlc2lnbiIsa2V5OiJkZXNpZ24ifSx7b3B0aW9uOiJCdXNpbmVzcyIsa2V5OiJidXNpbmVzcyJ9LHtvcHRpb246Ik1hcmtldGluZyIsa2V5OiJtYXJrZXRpbmcifSx7b3B0aW9uOiJTYWxlcyIsa2V5OiJzYWxlcyJ9XX0KICAgICAgICAgID48L2RlZXMtaW5wdXQtbXVsdGlzZWxlY3Q+CiAgICAgICAgICAKICAgICAgICAgIDxkZWVzLWlucHV0LWZpbGV1cGxvYWQKICAgICAgICAgICAga2V5PSJkb2N1bWVudHMiCiAgICAgICAgICAgIC5sYWJlbD0keyJVcGxvYWQgRG9jdW1lbnRzIn0KICAgICAgICAgICAgLmRlc2NyaXB0aW9uPSR7IlBERiwgRE9DLCBvciBET0NYIGZpbGVzIHVwIHRvIDEwTUIifQogICAgICAgICAgPjwvZGVlcy1pbnB1dC1maWxldXBsb2FkPgogICAgICAgICAgCiAgICAgICAgICA8ZGVlcy1mb3JtLXN1Ym1pdD5TdWJtaXQgQXBwbGljYXRpb248L2RlZXMtZm9ybS1zdWJtaXQ+CiAgICAgICAgPC9kZWVzLWZvcm0+CiAgICAgICAgCiAgICAgICAgPGRpdiBpZD0ic3RhdHVzLWRpc3BsYXkiPjwvZGl2PgogICAgICA8L2RlZXMtcGFuZWw+CiAgICA8L2RlZXMtZGVtb3dyYXBwZXI+CiAgPC9kaXY+CmB9KTt2YXIganV0LGFWLFV1dCxXdXQsQWw9YigoKT0+e3VlKCk7VHQoKTtfeCgpO1BxKCk7TnEoKTtsbygpO1JxKCk7SXgoKTtPeCgpO0hxKCk7V3EoKTtHcSgpO1lxKCk7WHEoKTtRcSgpO0swKCk7dFYoKTtWdXQoKTtqdXQ9ZnVuY3Rpb24odCxlLGEsaSxyLHMpe2Z1bmN0aW9uIG4oeCl7aWYoeCE9PXZvaWQgMCYmdHlwZW9mIHghPSJmdW5jdGlvbiIpdGhyb3cgbmV3IFR5cGVFcnJvcigiRnVuY3Rpb24gZXhwZWN0ZWQiKTtyZXR1cm4geH1mb3IodmFyIG89aS5raW5kLGQ9bz09PSJnZXR0ZXIiPyJnZXQiOm89PT0ic2V0dGVyIj8ic2V0IjoidmFsdWUiLGM9IWUmJnQ/aS5zdGF0aWM/dDp0LnByb3RvdHlwZTpudWxsLGg9ZXx8KGM/T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihjLGkubmFtZSk6e30pLGwsZj0hMSxnPWEubGVuZ3RoLTE7Zz49MDtnLS0pe3ZhciB5PXt9O2Zvcih2YXIgdiBpbiBpKXlbdl09dj09PSJhY2Nlc3MiP3t9Omlbdl07Zm9yKHZhciB2IGluIGkuYWNjZXNzKXkuYWNjZXNzW3ZdPWkuYWNjZXNzW3ZdO3kuYWRkSW5pdGlhbGl6ZXI9ZnVuY3Rpb24oeCl7aWYoZil0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgYWRkIGluaXRpYWxpemVycyBhZnRlciBkZWNvcmF0aW9uIGhhcyBjb21wbGV0ZWQiKTtzLnB1c2gobih4fHxudWxsKSl9O3ZhciBtPSgwLGFbZ10pKG89PT0iYWNjZXNzb3IiP3tnZXQ6aC5nZXQsc2V0Omguc2V0fTpoW2RdLHkpO2lmKG89PT0iYWNjZXNzb3IiKXtpZihtPT09dm9pZCAwKWNvbnRpbnVlO2lmKG09PT1udWxsfHx0eXBlb2YgbSE9Im9iamVjdCIpdGhyb3cgbmV3IFR5cGVFcnJvcigiT2JqZWN0IGV4cGVjdGVkIik7KGw9bihtLmdldCkpJiYoaC5nZXQ9bCksKGw9bihtLnNldCkpJiYoaC5zZXQ9bCksKGw9bihtLmluaXQpKSYmci51bnNoaWZ0KGwpfWVsc2UobD1uKG0pKSYmKG89PT0iZmllbGQiP3IudW5zaGlmdChsKTpoW2RdPWwpfWMmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShjLGkubmFtZSxoKSxmPSEwfSxhVj1mdW5jdGlvbih0LGUsYSl7Zm9yKHZhciBpPWFyZ3VtZW50cy5sZW5ndGg+MixyPTA7cjxlLmxlbmd0aDtyKyspYT1pP2Vbcl0uY2FsbCh0LGEpOmVbcl0uY2FsbCh0KTtyZXR1cm4gaT9hOnZvaWQgMH0sVXV0PVtDeCwkeCxBeCxGeCxSeCxxeCxWeCxVeCxFeCxQeCxEeCxXeCxHeCxaeF0sV3V0PSgoKT0+e2xldCB0PVtwZSgiZGVlcy1mb3JtIildLGUsYT1bXSxpLHI9eGUscyxuPVtdLG89W107dmFyIGQ9Y2xhc3MgZXh0ZW5kcyBye3N0YXRpY3tpPXRoaXN9c3RhdGlje2xldCBjPXR5cGVvZiBTeW1ib2w9PSJmdW5jdGlvbiImJlN5bWJvbC5tZXRhZGF0YT9PYmplY3QuY3JlYXRlKHJbU3ltYm9sLm1ldGFkYXRhXT8/bnVsbCk6dm9pZCAwO3M9W0koe3R5cGU6Qm9vbGVhbixyZWZsZWN0OiEwLGF0dHJpYnV0ZToiaG9yaXpvbnRhbC1sYXlvdXQifSldLGp1dCh0aGlzLG51bGwscyx7a2luZDoiYWNjZXNzb3IiLG5hbWU6Imhvcml6b250YWxMYXlvdXQiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmg9PiJob3Jpem9udGFsTGF5b3V0ImluIGgsZ2V0Omg9PmguaG9yaXpvbnRhbExheW91dCxzZXQ6KGgsbCk9PntoLmhvcml6b250YWxMYXlvdXQ9bH19LG1ldGFkYXRhOmN9LG4sbyksanV0KG51bGwsZT17dmFsdWU6aX0sdCx7a2luZDoiY2xhc3MiLG5hbWU6aS5uYW1lLG1ldGFkYXRhOmN9LG51bGwsYSksZD1pPWUudmFsdWUsYyYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGksU3ltYm9sLm1ldGFkYXRhLHtlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMCx2YWx1ZTpjfSl9c3RhdGljIGRlbW89cXV0O3N0YXRpYyBkZW1vR3JvdXBzPVsiRm9ybSJdO25hbWU9Im15Zm9ybSI7Y2hhbmdlU3ViamVjdD1uZXcgTXQuc21hcnRyeC5yeGpzLlN1YmplY3Q7cmVhZHlEZWZlcnJlZD1NdC5zbWFydHByb21pc2UuZGVmZXIoKTsjZT1hVih0aGlzLG4sITEpO2dldCBob3Jpem9udGFsTGF5b3V0KCl7cmV0dXJuIHRoaXMuI2V9c2V0IGhvcml6b250YWxMYXlvdXQoYyl7dGhpcy4jZT1jfXN0YXRpYyBzdHlsZXM9W1FgCiAgICAgIDpob3N0IHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgICAgZ2FwOiAxNnB4OwogICAgICB9CgogICAgICA6aG9zdChbaG9yaXpvbnRhbC1sYXlvdXRdKSB7CiAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdzsKICAgICAgICBmbGV4LXdyYXA6IHdyYXA7CiAgICAgICAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7CiAgICAgICAgZ2FwOiAxNnB4OwogICAgICB9CiAgICBgXTtyZW5kZXIoKXtyZXR1cm4gd2AKICAgICAgPHNsb3Q+PC9zbG90PgogICAgYH1hc3luYyBmaXJzdFVwZGF0ZWQoKXtsZXQgYz10aGlzLmdldEZvcm1FbGVtZW50cygpO3RoaXMudXBkYXRlUmVxdWlyZWRTdGF0dXMoKSx0aGlzLnVwZGF0ZUNoaWxkcmVuTGF5b3V0TW9kZSgpO2ZvcihsZXQgaCBvZiBjKWguY2hhbmdlU3ViamVjdC5zdWJzY3JpYmUoYXN5bmMoKT0+e2xldCBsPWF3YWl0IHRoaXMuY29sbGVjdEZvcm1EYXRhKCk7dGhpcy5jaGFuZ2VTdWJqZWN0Lm5leHQobCksY29uc29sZS5sb2cobCksdGhpcy51cGRhdGVSZXF1aXJlZFN0YXR1cygpfSk7YXdhaXQgdGhpcy5hZGRCZWhhdmlvdXJzKCksdGhpcy5yZWFkeURlZmVycmVkLnJlc29sdmUoKX1nZXRGb3JtRWxlbWVudHMoKXtyZXR1cm4gQXJyYXkuZnJvbSh0aGlzLmNoaWxkcmVuKS5maWx0ZXIoYz0+VXV0LmluY2x1ZGVzKGMuY29uc3RydWN0b3IpKX1nZXRTdWJtaXRCdXR0b24oKXtyZXR1cm4gQXJyYXkuZnJvbSh0aGlzLmNoaWxkcmVuKS5maW5kKGM9PmMgaW5zdGFuY2VvZiBOeCl9YXN5bmMgdXBkYXRlUmVxdWlyZWRTdGF0dXMoKXtjb25zb2xlLmxvZygiY2hlY2tpbmcgdGhlIHJlcXVpcmVkIHN0YXR1cy4iKTtsZXQgYz0hMDtmb3IobGV0IGggb2YgdGhpcy5nZXRGb3JtRWxlbWVudHMoKSloLnJlcXVpcmVkJiYhaC52YWx1ZSYmKGM9ITEpO3RoaXMuZ2V0U3VibWl0QnV0dG9uKCkmJih0aGlzLmdldFN1Ym1pdEJ1dHRvbigpLmRpc2FibGVkPSFjKX1hc3luYyBjb2xsZWN0Rm9ybURhdGEoKXtsZXQgYz10aGlzLmdldEZvcm1FbGVtZW50cygpLGg9e307Zm9yKGxldCBsIG9mIGMpe2lmKCFsLmtleSl7Y29uc29sZS5sb2coYGZvcm0gZWxlbWVudCB3aXRoIGxhYmVsICIke2wubGFiZWx9IiBoYXMgbm8ga2V5LiBza2lwcGluZy5gKTtjb250aW51ZX1oW2wua2V5XT1sLnZhbHVlfXJldHVybiBofWFzeW5jIGdhdGhlckFuZERpc3BhdGNoKCl7bGV0IGM9YXdhaXQgdGhpcy5jb2xsZWN0Rm9ybURhdGEoKSxoPW5ldyBDdXN0b21FdmVudCgiZm9ybURhdGEiLHtkZXRhaWw6e2RhdGE6Y30sYnViYmxlczohMH0pO3RoaXMuZGlzcGF0Y2hFdmVudChoKSxjb25zb2xlLmxvZygiZGlzcGF0Y2hlZCBkYXRhOiIpLGNvbnNvbGUubG9nKGMpfXNldFN0YXR1cyhjLGgpe2xldCBsPXRoaXMuZ2V0Rm9ybUVsZW1lbnRzKCksZj10aGlzLmdldFN1Ym1pdEJ1dHRvbigpO3N3aXRjaChjKXtjYXNlIm5vcm1hbCI6Zi5kaXNhYmxlZD0hMSxmLnN0YXR1cz0ibm9ybWFsIjtmb3IobGV0IGcgb2YgbClnLmRpc2FibGVkPSExO2JyZWFrO2Nhc2UicGVuZGluZyI6Zi5kaXNhYmxlZD0hMCxmLnN0YXR1cz0icGVuZGluZyI7Zm9yKGxldCBnIG9mIGwpZy5kaXNhYmxlZD0hMDticmVhaztjYXNlInN1Y2Nlc3MiOmYuZGlzYWJsZWQ9ITAsZi5zdGF0dXM9InN1Y2Nlc3MiO2ZvcihsZXQgZyBvZiBsKWcuZGlzYWJsZWQ9ITA7YnJlYWs7Y2FzZSJlcnJvciI6Zi5kaXNhYmxlZD0hMCxmLnN0YXR1cz0iZXJyb3IiO2ZvcihsZXQgZyBvZiBsKWcuZGlzYWJsZWQ9ITA7YnJlYWt9Zi50ZXh0PWh9cmVzZXQoKXtsZXQgYz10aGlzLmdldEZvcm1FbGVtZW50cygpLGg9dGhpcy5nZXRTdWJtaXRCdXR0b24oKTtmb3IobGV0IGwgb2YgYylsLnZhbHVlPW51bGw7dGhpcy5zZXRTdGF0dXMoIm5vcm1hbCIsIlN1Ym1pdCIpfWFzeW5jIGFkZEJlaGF2aW91cnMoKXt0aGlzLmFkZEV2ZW50TGlzdGVuZXIoImtleWRvd24iLGM9PntsZXQgaD1jLnRhcmdldDtpZihVdXQuaW5jbHVkZXMoaC5jb25zdHJ1Y3RvcikmJmMua2V5PT09IkVudGVyIil7bGV0IGw9dGhpcy5nZXRGb3JtRWxlbWVudHMoKSxmPWwuaW5kZXhPZihoKTtmPGwubGVuZ3RoLTE/bFtmKzFdLmZvY3VzKCk6KGguYmx1cigpLHRoaXMuZ2V0U3VibWl0QnV0dG9uKCk/LmZvY3VzKCkpfX0pfXVwZGF0ZUNoaWxkcmVuTGF5b3V0TW9kZSgpe2xldCBjPXRoaXMuZ2V0Rm9ybUVsZW1lbnRzKCk7Zm9yKGxldCBoIG9mIGMpImxheW91dE1vZGUiaW4gaCYmKGgubGF5b3V0TW9kZT0iYXV0byIpfXVwZGF0ZWQoYyl7c3VwZXIudXBkYXRlZChjKSxjLmhhcygiaG9yaXpvbnRhbExheW91dCIpJiZ0aGlzLnVwZGF0ZUNoaWxkcmVuTGF5b3V0TW9kZSgpfWNvbnN0cnVjdG9yKCl7c3VwZXIoLi4uYXJndW1lbnRzKSxhVih0aGlzLG8pfXN0YXRpY3thVihpLGEpfX07cmV0dXJuIGQ9aX0pKCl9KTt2YXIgR3V0LFl1dD1iKCgpPT57dWUoKTt4MSgpO20yKCk7QWwoKTtLMCgpO2xvKCk7RHQoKTtHdXQ9KCk9PndgCiAgPHN0eWxlPgogICAgJHtRYAogICAgICAuZGVtby1jb250YWluZXIgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgICBnYXA6IDI0cHg7CiAgICAgICAgcGFkZGluZzogMjRweDsKICAgICAgICBtYXgtd2lkdGg6IDEyMDBweDsKICAgICAgICBtYXJnaW46IDAgYXV0bzsKICAgICAgfQogICAgICAKICAgICAgZGVlcy1wYW5lbCB7CiAgICAgICAgbWFyZ2luLWJvdHRvbTogMjRweDsKICAgICAgfQogICAgICAKICAgICAgZGVlcy1wYW5lbDpsYXN0LWNoaWxkIHsKICAgICAgICBtYXJnaW4tYm90dG9tOiAwOwogICAgICB9CiAgICAgIAogICAgICAuYnV0dG9uLWdyb3VwIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgZ2FwOiAxMnB4OwogICAgICAgIGZsZXgtd3JhcDogd3JhcDsKICAgICAgfQogICAgICAKICAgICAgLnZlcnRpY2FsLWdyb3VwIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgICAgZ2FwOiA4cHg7CiAgICAgICAgbWF4LXdpZHRoOiAzMDBweDsKICAgICAgfQogICAgICAKICAgICAgLmhvcml6b250YWwtZ3JvdXAgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBnYXA6IDE2cHg7CiAgICAgICAgZmxleC13cmFwOiB3cmFwOwogICAgICB9CiAgICAgIAogICAgICAuZGVtby1vdXRwdXQgewogICAgICAgIG1hcmdpbi10b3A6IDE2cHg7CiAgICAgICAgcGFkZGluZzogMTJweDsKICAgICAgICBiYWNrZ3JvdW5kOiAke3AuYmRUaGVtZSgiaHNsKDIxMCA0MCUgOTYuMSUpIiwiaHNsKDIxNSAyMC4yJSAxNi44JSkiKX07CiAgICAgICAgYm9yZGVyLXJhZGl1czogNnB4OwogICAgICAgIGZvbnQtc2l6ZTogMTRweDsKICAgICAgICBmb250LWZhbWlseTogbW9ub3NwYWNlOwogICAgICAgIGNvbG9yOiAke3AuYmRUaGVtZSgiaHNsKDIxNS4zIDI1JSA4LjglKSIsImhzbCgyMTAgNDAlIDk4JSkiKX07CiAgICAgIH0KICAgICAgCiAgICAgIC5pY29uLXJvdyB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGdhcDogMTJweDsKICAgICAgICBtYXJnaW46IDhweCAwOwogICAgICB9CiAgICAgIAogICAgICAuY29kZS1zbmlwcGV0IHsKICAgICAgICBiYWNrZ3JvdW5kOiAke3AuYmRUaGVtZSgiaHNsKDIxMCA0MCUgOTYuMSUpIiwiaHNsKDIxNSAyMC4yJSAxMS44JSkiKX07CiAgICAgICAgcGFkZGluZzogOHB4IDEycHg7CiAgICAgICAgYm9yZGVyLXJhZGl1czogNHB4OwogICAgICAgIGZvbnQtZmFtaWx5OiBtb25vc3BhY2U7CiAgICAgICAgZm9udC1zaXplOiAxM3B4OwogICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jazsKICAgICAgICBtYXJnaW46IDRweCAwOwogICAgICB9CiAgICBgfQogIDwvc3R5bGU+CiAgCiAgPGRpdiBjbGFzcz0iZGVtby1jb250YWluZXIiPgogICAgPGRlZXMtZGVtb3dyYXBwZXIgLnJ1bkFmdGVyUmVuZGVyPSR7YXN5bmMgdD0+e3QucXVlcnlTZWxlY3RvckFsbCgiZGVlcy1idXR0b24iKS5mb3JFYWNoKGE9PnthLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrZWQiLCgpPT57bGV0IGk9YS5nZXRBdHRyaWJ1dGUoInR5cGUiKXx8ImRlZmF1bHQiO2NvbnNvbGUubG9nKGBCdXR0b24gdmFyaWFudCBjbGlja2VkOiAke2l9YCl9KX0pfX0+CiAgICAgIDxkZWVzLXBhbmVsIC50aXRsZT0keyIxLiBCdXR0b24gVmFyaWFudHMifSAuc3VidGl0bGU9JHsiRGlmZmVyZW50IHZpc3VhbCBzdHlsZXMgZm9yIHZhcmlvdXMgdXNlIGNhc2VzIn0+CiAgICAgICAgPGRpdiBjbGFzcz0iYnV0dG9uLWdyb3VwIj4KICAgICAgICAgIDxkZWVzLWJ1dHRvbiB0eXBlPSJkZWZhdWx0Ij5EZWZhdWx0PC9kZWVzLWJ1dHRvbj4KICAgICAgICAgIDxkZWVzLWJ1dHRvbiB0eXBlPSJzZWNvbmRhcnkiPlNlY29uZGFyeTwvZGVlcy1idXR0b24+CiAgICAgICAgICA8ZGVlcy1idXR0b24gdHlwZT0iZGVzdHJ1Y3RpdmUiPkRlc3RydWN0aXZlPC9kZWVzLWJ1dHRvbj4KICAgICAgICAgIDxkZWVzLWJ1dHRvbiB0eXBlPSJvdXRsaW5lIj5PdXRsaW5lPC9kZWVzLWJ1dHRvbj4KICAgICAgICAgIDxkZWVzLWJ1dHRvbiB0eXBlPSJnaG9zdCI+R2hvc3Q8L2RlZXMtYnV0dG9uPgogICAgICAgICAgPGRlZXMtYnV0dG9uIHR5cGU9ImxpbmsiPkxpbmsgQnV0dG9uPC9kZWVzLWJ1dHRvbj4KICAgICAgICA8L2Rpdj4KICAgICAgPC9kZWVzLXBhbmVsPgogICAgPC9kZWVzLWRlbW93cmFwcGVyPgogICAgCiAgICA8ZGVlcy1kZW1vd3JhcHBlciAucnVuQWZ0ZXJSZW5kZXI9JHthc3luYyB0PT57dC5xdWVyeVNlbGVjdG9yQWxsKCJkZWVzLWJ1dHRvbiIpLmZvckVhY2goYT0+e2EuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2tlZCIsKCk9PntsZXQgaT1hLmdldEF0dHJpYnV0ZSgic2l6ZSIpfHwiZGVmYXVsdCI7Y29uc29sZS5sb2coYEJ1dHRvbiBzaXplOiAke2l9YCl9KX0pfX0+CiAgICAgIDxkZWVzLXBhbmVsIC50aXRsZT0keyIyLiBCdXR0b24gU2l6ZXMifSAuc3VidGl0bGU9JHsiTXVsdGlwbGUgc2l6ZXMgZm9yIGRpZmZlcmVudCBjb250ZXh0cyBhbmQgdXNlIGNhc2VzIn0+CiAgICAgICAgPGRpdiBjbGFzcz0iYnV0dG9uLWdyb3VwIj4KICAgICAgICAgIDxkZWVzLWJ1dHRvbiBzaXplPSJzbSI+U21hbGwgQnV0dG9uPC9kZWVzLWJ1dHRvbj4KICAgICAgICAgIDxkZWVzLWJ1dHRvbiBzaXplPSJkZWZhdWx0Ij5EZWZhdWx0IFNpemU8L2RlZXMtYnV0dG9uPgogICAgICAgICAgPGRlZXMtYnV0dG9uIHNpemU9ImxnIj5MYXJnZSBCdXR0b248L2RlZXMtYnV0dG9uPgogICAgICAgICAgPGRlZXMtYnV0dG9uIHNpemU9Imljb24iIHR5cGU9Im91dGxpbmUiIC50ZXh0PSR7Ilx1ezFGNjgwfSJ9PjwvZGVlcy1idXR0b24+CiAgICAgICAgPC9kaXY+CiAgICAgICAgCiAgICAgICAgPGRpdiBjbGFzcz0iYnV0dG9uLWdyb3VwIiBzdHlsZT0ibWFyZ2luLXRvcDogMTZweDsiPgogICAgICAgICAgPGRlZXMtYnV0dG9uIHNpemU9InNtIiB0eXBlPSJzZWNvbmRhcnkiPlNtYWxsIFNlY29uZGFyeTwvZGVlcy1idXR0b24+CiAgICAgICAgICA8ZGVlcy1idXR0b24gc2l6ZT0iZGVmYXVsdCIgdHlwZT0iZGVzdHJ1Y3RpdmUiPkRlZmF1bHQgRGVzdHJ1Y3RpdmU8L2RlZXMtYnV0dG9uPgogICAgICAgICAgPGRlZXMtYnV0dG9uIHNpemU9ImxnIiB0eXBlPSJvdXRsaW5lIj5MYXJnZSBPdXRsaW5lPC9kZWVzLWJ1dHRvbj4KICAgICAgICA8L2Rpdj4KICAgICAgPC9kZWVzLXBhbmVsPgogICAgPC9kZWVzLWRlbW93cmFwcGVyPgogICAgCiAgICA8ZGVlcy1kZW1vd3JhcHBlciAucnVuQWZ0ZXJSZW5kZXI9JHthc3luYyB0PT57dC5xdWVyeVNlbGVjdG9yQWxsKCJkZWVzLWJ1dHRvbiIpLmZvckVhY2goYT0+e2EuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2tlZCIsKCk9PntsZXQgaT1hLnF1ZXJ5U2VsZWN0b3IoImRlZXMtaWNvbiIpO2lmKGkpe2xldCByPWkuZ2V0QXR0cmlidXRlKCJpY29uRkEiKXx8InVua25vd24iO2NvbnNvbGUubG9nKGBJY29uIGJ1dHRvbiBjbGlja2VkOiAke3J9YCl9fSl9KX19PgogICAgICA8ZGVlcy1wYW5lbCAudGl0bGU9JHsiMy4gQnV0dG9ucyB3aXRoIEljb25zIn0gLnN1YnRpdGxlPSR7IkNvbWJpbmluZyBpY29ucyB3aXRoIHRleHQgZm9yIGVuaGFuY2VkIHZpc3VhbCBjb21tdW5pY2F0aW9uIn0+CiAgICAgICAgPGRpdiBjbGFzcz0iaWNvbi1yb3ciPgogICAgICAgICAgPGRlZXMtYnV0dG9uPgogICAgICAgICAgICA8ZGVlcy1pY29uIGljb249ImZhOnBsdXMiPjwvZGVlcy1pY29uPgogICAgICAgICAgICBBZGQgSXRlbQogICAgICAgICAgPC9kZWVzLWJ1dHRvbj4KICAgICAgICAgIDxkZWVzLWJ1dHRvbiB0eXBlPSJkZXN0cnVjdGl2ZSI+CiAgICAgICAgICAgIDxkZWVzLWljb24gaWNvbj0iZmE6dHJhc2giPjwvZGVlcy1pY29uPgogICAgICAgICAgICBEZWxldGUKICAgICAgICAgIDwvZGVlcy1idXR0b24+CiAgICAgICAgICA8ZGVlcy1idXR0b24gdHlwZT0ib3V0bGluZSI+CiAgICAgICAgICAgIDxkZWVzLWljb24gaWNvbj0ibHVjaWRlOkRvd25sb2FkIj48L2RlZXMtaWNvbj4KICAgICAgICAgICAgRG93bmxvYWQKICAgICAgICAgIDwvZGVlcy1idXR0b24+CiAgICAgICAgPC9kaXY+CgogICAgICAgIDxkaXYgY2xhc3M9Imljb24tcm93Ij4KICAgICAgICAgIDxkZWVzLWJ1dHRvbiB0eXBlPSJzZWNvbmRhcnkiIHNpemU9InNtIj4KICAgICAgICAgICAgPGRlZXMtaWNvbiBpY29uPSJmYTpnZWFyIj48L2RlZXMtaWNvbj4KICAgICAgICAgICAgU2V0dGluZ3MKICAgICAgICAgIDwvZGVlcy1idXR0b24+CiAgICAgICAgICA8ZGVlcy1idXR0b24gdHlwZT0iZ2hvc3QiPgogICAgICAgICAgICA8ZGVlcy1pY29uIGljb249ImZhOmNhcmV0TGVmdCI+PC9kZWVzLWljb24+CiAgICAgICAgICAgIEJhY2sKICAgICAgICAgIDwvZGVlcy1idXR0b24+CiAgICAgICAgICA8ZGVlcy1idXR0b24gdHlwZT0iZ2hvc3QiPgogICAgICAgICAgICBOZXh0CiAgICAgICAgICAgIDxkZWVzLWljb24gaWNvbj0iZmE6Y2FyZXRSaWdodCI+PC9kZWVzLWljb24+CiAgICAgICAgICA8L2RlZXMtYnV0dG9uPgogICAgICAgIDwvZGl2PgoKICAgICAgICA8ZGl2IGNsYXNzPSJpY29uLXJvdyI+CiAgICAgICAgICA8ZGVlcy1idXR0b24gc2l6ZT0iaWNvbiIgdHlwZT0iZGVmYXVsdCI+CiAgICAgICAgICAgIDxkZWVzLWljb24gaWNvbj0iZmE6cGx1cyI+PC9kZWVzLWljb24+CiAgICAgICAgICA8L2RlZXMtYnV0dG9uPgogICAgICAgICAgPGRlZXMtYnV0dG9uIHNpemU9Imljb24iIHR5cGU9InNlY29uZGFyeSI+CiAgICAgICAgICAgIDxkZWVzLWljb24gaWNvbj0iZmE6Z2VhciI+PC9kZWVzLWljb24+CiAgICAgICAgICA8L2RlZXMtYnV0dG9uPgogICAgICAgICAgPGRlZXMtYnV0dG9uIHNpemU9Imljb24iIHR5cGU9Im91dGxpbmUiPgogICAgICAgICAgICA8ZGVlcy1pY29uIGljb249Imx1Y2lkZTpTZWFyY2giPjwvZGVlcy1pY29uPgogICAgICAgICAgPC9kZWVzLWJ1dHRvbj4KICAgICAgICAgIDxkZWVzLWJ1dHRvbiBzaXplPSJpY29uIiB0eXBlPSJnaG9zdCI+CiAgICAgICAgICAgIDxkZWVzLWljb24gaWNvbj0ibHVjaWRlOk1vcmVWZXJ0aWNhbCI+PC9kZWVzLWljb24+CiAgICAgICAgICA8L2RlZXMtYnV0dG9uPgogICAgICAgICAgPGRlZXMtYnV0dG9uIHNpemU9Imljb24iIHR5cGU9ImRlc3RydWN0aXZlIj4KICAgICAgICAgICAgPGRlZXMtaWNvbiBpY29uPSJmYTp0cmFzaCI+PC9kZWVzLWljb24+CiAgICAgICAgICA8L2RlZXMtYnV0dG9uPgogICAgICAgIDwvZGl2PgogICAgICA8L2RlZXMtcGFuZWw+CiAgICA8L2RlZXMtZGVtb3dyYXBwZXI+CgogICAgPGRlZXMtZGVtb3dyYXBwZXIgLnJ1bkFmdGVyUmVuZGVyPSR7YXN5bmMgdD0+e3QucXVlcnlTZWxlY3RvckFsbCgiZGVlcy1idXR0b24iKS5mb3JFYWNoKGE9PnthLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrZWQiLCgpPT57bGV0IGk9YS5nZXRBdHRyaWJ1dGUoImljb24iKXx8Im5vbmUiLHI9YS5nZXRBdHRyaWJ1dGUoImljb25Qb3NpdGlvbiIpfHwibGVmdCI7Y29uc29sZS5sb2coYEljb24gcHJvcGVydHkgYnV0dG9uOiBpY29uPSR7aX0sIHBvc2l0aW9uPSR7cn1gKX0pfSl9fT4KICAgICAgPGRlZXMtcGFuZWwgLnRpdGxlPSR7IjQuIEljb25zIHZpYSBQcm9wZXJ0eSJ9IC5zdWJ0aXRsZT0keyJTaW1wbGlmaWVkIGljb24gc3ludGF4IHVzaW5nIHRoZSBpY29uIHByb3BlcnR5In0+CiAgICAgICAgPGRpdiBjbGFzcz0iaWNvbi1yb3ciPgogICAgICAgICAgPGRlZXMtYnV0dG9uIGljb249ImZhOnBsdXMiPkFkZCBJdGVtPC9kZWVzLWJ1dHRvbj4KICAgICAgICAgIDxkZWVzLWJ1dHRvbiB0eXBlPSJkZXN0cnVjdGl2ZSIgaWNvbj0iZmE6dHJhc2giPkRlbGV0ZTwvZGVlcy1idXR0b24+CiAgICAgICAgICA8ZGVlcy1idXR0b24gdHlwZT0ib3V0bGluZSIgaWNvbj0ibHVjaWRlOkRvd25sb2FkIj5Eb3dubG9hZDwvZGVlcy1idXR0b24+CiAgICAgICAgPC9kaXY+CgogICAgICAgIDxkaXYgY2xhc3M9Imljb24tcm93Ij4KICAgICAgICAgIDxkZWVzLWJ1dHRvbiB0eXBlPSJzZWNvbmRhcnkiIHNpemU9InNtIiBpY29uPSJmYTpnZWFyIj5TZXR0aW5nczwvZGVlcy1idXR0b24+CiAgICAgICAgICA8ZGVlcy1idXR0b24gdHlwZT0iZ2hvc3QiIGljb249ImZhOmNhcmV0TGVmdCI+QmFjazwvZGVlcy1idXR0b24+CiAgICAgICAgICA8ZGVlcy1idXR0b24gdHlwZT0iZ2hvc3QiIGljb249ImZhOmNhcmV0UmlnaHQiIGljb25Qb3NpdGlvbj0icmlnaHQiPk5leHQ8L2RlZXMtYnV0dG9uPgogICAgICAgIDwvZGl2PgoKICAgICAgICA8ZGl2IGNsYXNzPSJpY29uLXJvdyI+CiAgICAgICAgICA8ZGVlcy1idXR0b24gc2l6ZT0iaWNvbiIgdHlwZT0iZGVmYXVsdCIgaWNvbj0iZmE6cGx1cyI+PC9kZWVzLWJ1dHRvbj4KICAgICAgICAgIDxkZWVzLWJ1dHRvbiBzaXplPSJpY29uIiB0eXBlPSJzZWNvbmRhcnkiIGljb249Imx1Y2lkZTpTZXR0aW5ncyI+PC9kZWVzLWJ1dHRvbj4KICAgICAgICAgIDxkZWVzLWJ1dHRvbiBzaXplPSJpY29uIiB0eXBlPSJvdXRsaW5lIiBpY29uPSJsdWNpZGU6U2VhcmNoIj48L2RlZXMtYnV0dG9uPgogICAgICAgICAgPGRlZXMtYnV0dG9uIHNpemU9Imljb24iIHR5cGU9Imdob3N0IiBpY29uPSJsdWNpZGU6TW9yZVZlcnRpY2FsIj48L2RlZXMtYnV0dG9uPgogICAgICAgICAgPGRlZXMtYnV0dG9uIHNpemU9Imljb24iIHR5cGU9ImRlc3RydWN0aXZlIiBpY29uPSJmYTp0cmFzaCI+PC9kZWVzLWJ1dHRvbj4KICAgICAgICA8L2Rpdj4KCiAgICAgICAgPGRpdiBzdHlsZT0ibWFyZ2luLXRvcDogMTZweDsiPgogICAgICAgICAgPGRpdiBjbGFzcz0iY29kZS1zbmlwcGV0Ij4KICAgICAgICAgICAgJmx0O2RlZXMtYnV0dG9uIGljb249ImZhOnBsdXMiJmd0O0FkZCBJdGVtJmx0Oy9kZWVzLWJ1dHRvbiZndDs8YnI+CiAgICAgICAgICAgICZsdDtkZWVzLWJ1dHRvbiBpY29uPSJmYTpjYXJldFJpZ2h0IiBpY29uUG9zaXRpb249InJpZ2h0IiZndDtOZXh0Jmx0Oy9kZWVzLWJ1dHRvbiZndDsKICAgICAgICAgIDwvZGl2PgogICAgICAgIDwvZGl2PgogICAgICA8L2RlZXMtcGFuZWw+CiAgICA8L2RlZXMtZGVtb3dyYXBwZXI+CgogICAgPGRlZXMtZGVtb3dyYXBwZXIgLnJ1bkFmdGVyUmVuZGVyPSR7YXN5bmMgdD0+e2xldCBlPXQucXVlcnlTZWxlY3RvcignZGVlcy1idXR0b25bc3RhdHVzPSJwZW5kaW5nIl0nKSxhPXQucXVlcnlTZWxlY3RvcignZGVlcy1idXR0b25bc3RhdHVzPSJzdWNjZXNzIl0nKSxpPXQucXVlcnlTZWxlY3RvcignZGVlcy1idXR0b25bc3RhdHVzPSJlcnJvciJdJyk7ZSYmc2V0VGltZW91dCgoKT0+e2NvbnNvbGUubG9nKCJQZW5kaW5nIGJ1dHRvbiBpcyBzaG93aW5nIGxvYWRpbmcgc3RhdGUiKX0sMWUzKSxhJiZhLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrZWQiLCgpPT57Y29uc29sZS5sb2coIlN1Y2Nlc3Mgc3RhdGUgYnV0dG9uIGNsaWNrZWQiKX0pLGkmJmkuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2tlZCIsKCk9Pntjb25zb2xlLmxvZygiRXJyb3Igc3RhdGUgYnV0dG9uIGNsaWNrZWQiKX0pfX0+CiAgICAgIDxkZWVzLXBhbmVsIC50aXRsZT0keyI1LiBCdXR0b24gU3RhdGVzIn0gLnN1YnRpdGxlPSR7IkRpZmZlcmVudCBzdGF0ZXMgdG8gaW5kaWNhdGUgYnV0dG9uIHN0YXR1cyBhbmQgbG9hZGluZyBjb25kaXRpb25zIn0+CiAgICAgICAgPGRpdiBjbGFzcz0iYnV0dG9uLWdyb3VwIj4KICAgICAgICAgIDxkZWVzLWJ1dHRvbiBzdGF0dXM9Im5vcm1hbCI+Tm9ybWFsPC9kZWVzLWJ1dHRvbj4KICAgICAgICAgIDxkZWVzLWJ1dHRvbiBzdGF0dXM9InBlbmRpbmciPlByb2Nlc3NpbmcuLi48L2RlZXMtYnV0dG9uPgogICAgICAgICAgPGRlZXMtYnV0dG9uIHN0YXR1cz0ic3VjY2VzcyI+U3VjY2VzcyE8L2RlZXMtYnV0dG9uPgogICAgICAgICAgPGRlZXMtYnV0dG9uIHN0YXR1cz0iZXJyb3IiPkVycm9yITwvZGVlcy1idXR0b24+CiAgICAgICAgICA8ZGVlcy1idXR0b24gZGlzYWJsZWQ+RGlzYWJsZWQ8L2RlZXMtYnV0dG9uPgogICAgICAgIDwvZGl2PgogICAgICAgIAogICAgICAgIDxkaXYgY2xhc3M9ImJ1dHRvbi1ncm91cCIgc3R5bGU9Im1hcmdpbi10b3A6IDE2cHg7Ij4KICAgICAgICAgIDxkZWVzLWJ1dHRvbiB0eXBlPSJzZWNvbmRhcnkiIHN0YXR1cz0icGVuZGluZyIgc2l6ZT0ic20iPlNtYWxsIExvYWRpbmc8L2RlZXMtYnV0dG9uPgogICAgICAgICAgPGRlZXMtYnV0dG9uIHR5cGU9Im91dGxpbmUiIHN0YXR1cz0icGVuZGluZyI+RGVmYXVsdCBMb2FkaW5nPC9kZWVzLWJ1dHRvbj4KICAgICAgICAgIDxkZWVzLWJ1dHRvbiB0eXBlPSJkZXN0cnVjdGl2ZSIgc3RhdHVzPSJwZW5kaW5nIiBzaXplPSJsZyI+TGFyZ2UgTG9hZGluZzwvZGVlcy1idXR0b24+CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGVlcy1wYW5lbD4KICAgIDwvZGVlcy1kZW1vd3JhcHBlcj4KICAgIAogICAgPGRlZXMtZGVtb3dyYXBwZXIgLnJ1bkFmdGVyUmVuZGVyPSR7YXN5bmMgdD0+e2xldCBlPXQucXVlcnlTZWxlY3RvcigiI2NsaWNrLW91dHB1dCIpLGE9dC5xdWVyeVNlbGVjdG9yKCJkZWVzLWJ1dHRvbjpmaXJzdC1vZi10eXBlIiksaT10LnF1ZXJ5U2VsZWN0b3IoJ2RlZXMtYnV0dG9uW3R5cGU9InNlY29uZGFyeSJdJykscj10LnF1ZXJ5U2VsZWN0b3IoJ2RlZXMtYnV0dG9uW3R5cGU9ImRlc3RydWN0aXZlIl0nKTthJiZlJiZhLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrZWQiLCgpPT57ZS50ZXh0Q29udGVudD1gQ2xpY2tlZDogRGVmYXVsdCBidXR0b24gYXQgJHtuZXcgRGF0ZSgpLnRvTG9jYWxlVGltZVN0cmluZygpfWB9KSxpJiZlJiZpLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrZWQiLHM9PntlLnRleHRDb250ZW50PWBDbGlja2VkOiBTZWNvbmRhcnkgYnV0dG9uIHdpdGggZGF0YTogJHtzLmRldGFpbC5kYXRhfWB9KSxyJiZlJiZyLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrZWQiLGFzeW5jKCk9PntlLnRleHRDb250ZW50PSJQcm9jZXNzaW5nLi4uIixhd2FpdCBydC5wbHVnaW5zLnNtYXJ0ZGVsYXkuZGVsYXlGb3IoMmUzKSxlLnRleHRDb250ZW50PSJBY3Rpb24gY29tcGxldGVkISJ9KX19PgogICAgICA8ZGVlcy1wYW5lbCAudGl0bGU9JHsiNi4gRXZlbnQgSGFuZGxpbmcifSAuc3VidGl0bGU9JHsiSW50ZXJhY3RpdmUgZXhhbXBsZXMgd2l0aCBjbGljayBldmVudCBoYW5kbGluZyJ9PgogICAgICAgIDxkaXYgY2xhc3M9ImJ1dHRvbi1ncm91cCI+CiAgICAgICAgICA8ZGVlcy1idXR0b24+Q2xpY2sgTWU8L2RlZXMtYnV0dG9uPgogICAgICAgICAgPGRlZXMtYnV0dG9uIHR5cGU9InNlY29uZGFyeSIgLmV2ZW50RGV0YWlsRGF0YT0keyJjdXN0b20tZGF0YS0xMjMifT4KICAgICAgICAgICAgQ2xpY2sgd2l0aCBEYXRhCiAgICAgICAgICA8L2RlZXMtYnV0dG9uPgogICAgICAgICAgPGRlZXMtYnV0dG9uIHR5cGU9ImRlc3RydWN0aXZlIj5Bc3luYyBBY3Rpb248L2RlZXMtYnV0dG9uPgogICAgICAgIDwvZGl2PgogICAgICAgIAogICAgICAgIDxkaXYgaWQ9ImNsaWNrLW91dHB1dCIgY2xhc3M9ImRlbW8tb3V0cHV0Ij4KICAgICAgICAgIDxlbT5DbGljayBhIGJ1dHRvbiB0byBzZWUgdGhlIHJlc3VsdC4uLjwvZW0+CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGVlcy1wYW5lbD4KICAgIDwvZGVlcy1kZW1vd3JhcHBlcj4KICAgIAogICAgPGRlZXMtZGVtb3dyYXBwZXIgLnJ1bkFmdGVyUmVuZGVyPSR7YXN5bmMgdD0+e2xldCBlPXQucXVlcnlTZWxlY3RvcigiZGVlcy1mb3JtIiksYT10LnF1ZXJ5U2VsZWN0b3IoIiNmb3JtLW91dHB1dCIpO2UmJmEmJmUuYWRkRXZlbnRMaXN0ZW5lcigiZm9ybURhdGEiLHM9PnthLmlubmVySFRNTD0iPHN0cm9uZz5Gb3JtIHN1Ym1pdHRlZCB3aXRoIGRhdGE6PC9zdHJvbmc+PGJyPiIrSlNPTi5zdHJpbmdpZnkocy5kZXRhaWwuZGF0YSxudWxsLDIpfSk7bGV0IGk9dC5xdWVyeVNlbGVjdG9yKCdkZWVzLWJ1dHRvblt0eXBlPSJzZWNvbmRhcnkiXScpLHI9dC5xdWVyeVNlbGVjdG9yKCdkZWVzLWJ1dHRvblt0eXBlPSJnaG9zdCJdJyk7aSYmaS5hZGRFdmVudExpc3RlbmVyKCJjbGlja2VkIiwoKT0+e2NvbnNvbGUubG9nKCJTYXZlIERyYWZ0IGNsaWNrZWQiKX0pLHImJnIuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2tlZCIsKCk9Pntjb25zb2xlLmxvZygiQ2FuY2VsIGNsaWNrZWQiKX0pfX0+CiAgICAgIDxkZWVzLXBhbmVsIC50aXRsZT0keyI3LiBGb3JtIEludGVncmF0aW9uIn0gLnN1YnRpdGxlPSR7IkJ1dHRvbnMgd29ya2luZyB3aXRoaW4gZm9ybXMgd2l0aCBhdXRvbWF0aWMgc3BhY2luZyJ9PgogICAgICAgIDxkZWVzLWZvcm0+CiAgICAgICAgICA8ZGVlcy1pbnB1dC10ZXh0IGxhYmVsPSJOYW1lIiBrZXk9Im5hbWUiIHJlcXVpcmVkPjwvZGVlcy1pbnB1dC10ZXh0PgogICAgICAgICAgPGRlZXMtaW5wdXQtdGV4dCBsYWJlbD0iRW1haWwiIGtleT0iZW1haWwiIHR5cGU9ImVtYWlsIiByZXF1aXJlZD48L2RlZXMtaW5wdXQtdGV4dD4KICAgICAgICAgIDxkZWVzLWlucHV0LXRleHQgbGFiZWw9Ik1lc3NhZ2UiIGtleT0ibWVzc2FnZSIgaXNNdWx0aWxpbmU+PC9kZWVzLWlucHV0LXRleHQ+CiAgICAgICAgICAKICAgICAgICAgIDxkZWVzLWJ1dHRvbiB0eXBlPSJzZWNvbmRhcnkiPlNhdmUgRHJhZnQ8L2RlZXMtYnV0dG9uPgogICAgICAgICAgPGRlZXMtYnV0dG9uIHR5cGU9Imdob3N0Ij5DYW5jZWw8L2RlZXMtYnV0dG9uPgogICAgICAgICAgPGRlZXMtZm9ybS1zdWJtaXQ+U3VibWl0IEZvcm08L2RlZXMtZm9ybS1zdWJtaXQ+CiAgICAgICAgPC9kZWVzLWZvcm0+CiAgICAgICAgCiAgICAgICAgPGRpdiBpZD0iZm9ybS1vdXRwdXQiIGNsYXNzPSJkZW1vLW91dHB1dCIgc3R5bGU9IndoaXRlLXNwYWNlOiBwcmUtd3JhcDsiPgogICAgICAgICAgPGVtPlN1Ym1pdCB0aGUgZm9ybSB0byBzZWUgdGhlIGRhdGEuLi48L2VtPgogICAgICAgIDwvZGl2PgogICAgICA8L2RlZXMtcGFuZWw+CiAgICA8L2RlZXMtZGVtb3dyYXBwZXI+CiAgICAKICAgIDxkZWVzLWRlbW93cmFwcGVyIC5ydW5BZnRlclJlbmRlcj0ke2FzeW5jIHQ9Pnt0LnF1ZXJ5U2VsZWN0b3JBbGwoImRlZXMtYnV0dG9uIikuZm9yRWFjaChhPT57bGV0IGk9YS5nZXRBdHRyaWJ1dGUoInR5cGUiKTtpJiZjb25zb2xlLmxvZyhgTGVnYWN5IHR5cGUgIiR7aX0iIGlzIHN1cHBvcnRlZCBmb3IgYmFja3dhcmQgY29tcGF0aWJpbGl0eWApfSl9fT4KICAgICAgPGRlZXMtcGFuZWwgLnRpdGxlPSR7IjguIEJhY2t3YXJkIENvbXBhdGliaWxpdHkifSAuc3VidGl0bGU9JHsiT2xkIGJ1dHRvbiB0eXBlcyBhcmUgYXV0b21hdGljYWxseSBtYXBwZWQgdG8gbmV3IHZhcmlhbnRzIn0+CiAgICAgICAgPGRpdiBjbGFzcz0iYnV0dG9uLWdyb3VwIj4KICAgICAgICAgIDxkZWVzLWJ1dHRvbiB0eXBlPSJub3JtYWwiPk5vcm1hbCDihpIgRGVmYXVsdDwvZGVlcy1idXR0b24+CiAgICAgICAgICA8ZGVlcy1idXR0b24gdHlwZT0iaGlnaGxpZ2h0ZWQiPkhpZ2hsaWdodGVkIOKGkiBEZXN0cnVjdGl2ZTwvZGVlcy1idXR0b24+CiAgICAgICAgICA8ZGVlcy1idXR0b24gdHlwZT0iZGlzY3JlZXQiPkRpc2NyZWV0IOKGkiBPdXRsaW5lPC9kZWVzLWJ1dHRvbj4KICAgICAgICAgIDxkZWVzLWJ1dHRvbiB0eXBlPSJiaWciPkJpZyDihpIgTGFyZ2UgU2l6ZTwvZGVlcy1idXR0b24+CiAgICAgICAgPC9kaXY+CiAgICAgICAgCiAgICAgICAgPHAgc3R5bGU9Im1hcmdpbi10b3A6IDE2cHg7IGZvbnQtc2l6ZTogMTRweDsgY29sb3I6ICR7cC5iZFRoZW1lKCJoc2woMjE1LjQgMTYuMyUgNTYuOSUpIiwiaHNsKDIxNSAyMC4yJSA1NS4xJSkiKX07Ij4KICAgICAgICAgIFRoZXNlIGxlZ2FjeSB0eXBlIHZhbHVlcyBhcmUgbWFpbnRhaW5lZCBmb3IgYmFja3dhcmQgY29tcGF0aWJpbGl0eSBidXQgd2UgcmVjb21tZW5kIHVzaW5nIHRoZSBuZXcgdmFyaWFudCBzeXN0ZW0uCiAgICAgICAgPC9wPgogICAgICA8L2RlZXMtcGFuZWw+CiAgICA8L2RlZXMtZGVtb3dyYXBwZXI+CiAgICAKICAgIDxkZWVzLWRlbW93cmFwcGVyIC5ydW5BZnRlclJlbmRlcj0ke2FzeW5jIHQ9PntsZXQgZT10LnF1ZXJ5U2VsZWN0b3JBbGwoIi52ZXJ0aWNhbC1ncm91cCIpWzBdLGE9dC5xdWVyeVNlbGVjdG9yQWxsKCIudmVydGljYWwtZ3JvdXAiKVsxXTtlJiZlLnF1ZXJ5U2VsZWN0b3JBbGwoImRlZXMtYnV0dG9uIikuZm9yRWFjaCgocixzKT0+e3IuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2tlZCIsKCk9PntsZXQgbj1bIlNhdmUgQ2hhbmdlcyIsIkRpc2NhcmQiLCJIZWxwIl1bc107Y29uc29sZS5sb2coYEFjdGlvbiBncm91cDogJHtufSBjbGlja2VkYCl9KX0pLGEmJmEucXVlcnlTZWxlY3RvckFsbCgiZGVlcy1idXR0b24iKS5mb3JFYWNoKChyLHMpPT57ci5hZGRFdmVudExpc3RlbmVyKCJjbGlja2VkIiwoKT0+e2xldCBuPVsiRGVsZXRlIEFjY291bnQiLCJBcmNoaXZlIERhdGEiLCJOb3QgQXZhaWxhYmxlIl1bc107cyE9PTImJmNvbnNvbGUubG9nKGBEYW5nZXIgem9uZTogJHtufSBjbGlja2VkYCl9KX0pfX0+CiAgICAgIDxkZWVzLXBhbmVsIC50aXRsZT0keyI5LiBBZHZhbmNlZCBFeGFtcGxlcyJ9IC5zdWJ0aXRsZT0keyJDb21wbGV4IGJ1dHRvbiBjb25maWd1cmF0aW9ucyBhbmQgcmVhbC13b3JsZCB1c2UgY2FzZXMifT4KICAgICAgICA8ZGl2IGNsYXNzPSJob3Jpem9udGFsLWdyb3VwIj4KICAgICAgICAgIDxkaXYgY2xhc3M9InZlcnRpY2FsLWdyb3VwIj4KICAgICAgICAgICAgPGg0IHN0eWxlPSJtYXJnaW46IDAgMCA4cHggMDsgZm9udC1zaXplOiAxNHB4OyBmb250LXdlaWdodDogNTAwOyI+QWN0aW9uIEdyb3VwPC9oND4KICAgICAgICAgICAgPGRlZXMtYnV0dG9uIHR5cGU9ImRlZmF1bHQiIHNpemU9InNtIj4KICAgICAgICAgICAgICA8ZGVlcy1pY29uIGljb249Imx1Y2lkZTpTYXZlIj48L2RlZXMtaWNvbj4KICAgICAgICAgICAgICBTYXZlIENoYW5nZXMKICAgICAgICAgICAgPC9kZWVzLWJ1dHRvbj4KICAgICAgICAgICAgPGRlZXMtYnV0dG9uIHR5cGU9InNlY29uZGFyeSIgc2l6ZT0ic20iPgogICAgICAgICAgICAgIDxkZWVzLWljb24gaWNvbj0ibHVjaWRlOlVuZG8yIj48L2RlZXMtaWNvbj4KICAgICAgICAgICAgICBEaXNjYXJkCiAgICAgICAgICAgIDwvZGVlcy1idXR0b24+CiAgICAgICAgICAgIDxkZWVzLWJ1dHRvbiB0eXBlPSJnaG9zdCIgc2l6ZT0ic20iPgogICAgICAgICAgICAgIDxkZWVzLWljb24gaWNvbj0ibHVjaWRlOkhlbHBDaXJjbGUiPjwvZGVlcy1pY29uPgogICAgICAgICAgICAgIEhlbHAKICAgICAgICAgICAgPC9kZWVzLWJ1dHRvbj4KICAgICAgICAgIDwvZGl2PgoKICAgICAgICAgIDxkaXYgY2xhc3M9InZlcnRpY2FsLWdyb3VwIj4KICAgICAgICAgICAgPGg0IHN0eWxlPSJtYXJnaW46IDAgMCA4cHggMDsgZm9udC1zaXplOiAxNHB4OyBmb250LXdlaWdodDogNTAwOyI+RGFuZ2VyIFpvbmU8L2g0PgogICAgICAgICAgICA8ZGVlcy1idXR0b24gdHlwZT0iZGVzdHJ1Y3RpdmUiIHNpemU9InNtIj4KICAgICAgICAgICAgICA8ZGVlcy1pY29uIGljb249ImZhOnRyYXNoIj48L2RlZXMtaWNvbj4KICAgICAgICAgICAgICBEZWxldGUgQWNjb3VudAogICAgICAgICAgICA8L2RlZXMtYnV0dG9uPgogICAgICAgICAgICA8ZGVlcy1idXR0b24gdHlwZT0ib3V0bGluZSIgc2l6ZT0ic20iPgogICAgICAgICAgICAgIDxkZWVzLWljb24gaWNvbj0ibHVjaWRlOkFyY2hpdmUiPjwvZGVlcy1pY29uPgogICAgICAgICAgICAgIEFyY2hpdmUgRGF0YQogICAgICAgICAgICA8L2RlZXMtYnV0dG9uPgogICAgICAgICAgICA8ZGVlcy1idXR0b24gdHlwZT0iZ2hvc3QiIHNpemU9InNtIiBkaXNhYmxlZD4KICAgICAgICAgICAgICA8ZGVlcy1pY29uIGljb249Imx1Y2lkZTpCYW4iPjwvZGVlcy1pY29uPgogICAgICAgICAgICAgIE5vdCBBdmFpbGFibGUKICAgICAgICAgICAgPC9kZWVzLWJ1dHRvbj4KICAgICAgICAgIDwvZGl2PgogICAgICAgIDwvZGl2PgogICAgICAgIAogICAgICAgIDxkaXYgc3R5bGU9Im1hcmdpbi10b3A6IDI0cHg7Ij4KICAgICAgICAgIDxoNCBzdHlsZT0ibWFyZ2luOiAwIDAgOHB4IDA7IGZvbnQtc2l6ZTogMTRweDsgZm9udC13ZWlnaHQ6IDUwMDsiPkNvZGUgRXhhbXBsZTo8L2g0PgogICAgICAgICAgPGRpdiBjbGFzcz0iY29kZS1zbmlwcGV0Ij4KICAgICAgICAgICAgJmx0O2RlZXMtYnV0dG9uIHR5cGU9ImRlZmF1bHQiIHNpemU9InNtIiBpY29uPSJsdWNpZGU6U2F2ZSIgQGNsaWNrZWQ9Ilwke2hhbmRsZUNsaWNrfSImZ3Q7PGJyPgogICAgICAgICAgICAmbmJzcDsmbmJzcDtTYXZlIENoYW5nZXM8YnI+CiAgICAgICAgICAgICZsdDsvZGVlcy1idXR0b24mZ3Q7CiAgICAgICAgICA8L2Rpdj4KICAgICAgICA8L2Rpdj4KICAgICAgPC9kZWVzLXBhbmVsPgogICAgPC9kZWVzLWRlbW93cmFwcGVyPgogIDwvZGl2PgpgfSk7dmFyIFppLHExLFp1dCxubz1iKCgpPT57dWUoKTtUdCgpO1l1dCgpO3FlKCk7Wmk9ZnVuY3Rpb24odCxlLGEsaSxyLHMpe2Z1bmN0aW9uIG4oeCl7aWYoeCE9PXZvaWQgMCYmdHlwZW9mIHghPSJmdW5jdGlvbiIpdGhyb3cgbmV3IFR5cGVFcnJvcigiRnVuY3Rpb24gZXhwZWN0ZWQiKTtyZXR1cm4geH1mb3IodmFyIG89aS5raW5kLGQ9bz09PSJnZXR0ZXIiPyJnZXQiOm89PT0ic2V0dGVyIj8ic2V0IjoidmFsdWUiLGM9IWUmJnQ/aS5zdGF0aWM/dDp0LnByb3RvdHlwZTpudWxsLGg9ZXx8KGM/T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihjLGkubmFtZSk6e30pLGwsZj0hMSxnPWEubGVuZ3RoLTE7Zz49MDtnLS0pe3ZhciB5PXt9O2Zvcih2YXIgdiBpbiBpKXlbdl09dj09PSJhY2Nlc3MiP3t9Omlbdl07Zm9yKHZhciB2IGluIGkuYWNjZXNzKXkuYWNjZXNzW3ZdPWkuYWNjZXNzW3ZdO3kuYWRkSW5pdGlhbGl6ZXI9ZnVuY3Rpb24oeCl7aWYoZil0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgYWRkIGluaXRpYWxpemVycyBhZnRlciBkZWNvcmF0aW9uIGhhcyBjb21wbGV0ZWQiKTtzLnB1c2gobih4fHxudWxsKSl9O3ZhciBtPSgwLGFbZ10pKG89PT0iYWNjZXNzb3IiP3tnZXQ6aC5nZXQsc2V0Omguc2V0fTpoW2RdLHkpO2lmKG89PT0iYWNjZXNzb3IiKXtpZihtPT09dm9pZCAwKWNvbnRpbnVlO2lmKG09PT1udWxsfHx0eXBlb2YgbSE9Im9iamVjdCIpdGhyb3cgbmV3IFR5cGVFcnJvcigiT2JqZWN0IGV4cGVjdGVkIik7KGw9bihtLmdldCkpJiYoaC5nZXQ9bCksKGw9bihtLnNldCkpJiYoaC5zZXQ9bCksKGw9bihtLmluaXQpKSYmci51bnNoaWZ0KGwpfWVsc2UobD1uKG0pKSYmKG89PT0iZmllbGQiP3IudW5zaGlmdChsKTpoW2RdPWwpfWMmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShjLGkubmFtZSxoKSxmPSEwfSxxMT1mdW5jdGlvbih0LGUsYSl7Zm9yKHZhciBpPWFyZ3VtZW50cy5sZW5ndGg+MixyPTA7cjxlLmxlbmd0aDtyKyspYT1pP2Vbcl0uY2FsbCh0LGEpOmVbcl0uY2FsbCh0KTtyZXR1cm4gaT9hOnZvaWQgMH0sWnV0PSgoKT0+e2xldCB0PVtwZSgiZGVlcy1idXR0b24iKV0sZSxhPVtdLGkscj14ZSxzLG49W10sbz1bXSxkLGM9W10saD1bXSxsLGY9W10sZz1bXSx5LHY9W10sbT1bXSx4LE09W10sUz1bXSxGLF89W10saz1bXSxOLEw9W10sQT1bXSxxLEM9W10sej1bXSxFLFQ9W10sJD1bXSxWLFI9W10sVT1bXTt2YXIgcmU9Y2xhc3MgZXh0ZW5kcyBye3N0YXRpY3tpPXRoaXN9c3RhdGlje2xldCBqPXR5cGVvZiBTeW1ib2w9PSJmdW5jdGlvbiImJlN5bWJvbC5tZXRhZGF0YT9PYmplY3QuY3JlYXRlKHJbU3ltYm9sLm1ldGFkYXRhXT8/bnVsbCk6dm9pZCAwO3M9W0koe3JlZmxlY3Q6ITAsaGFzQ2hhbmdlZCgpe3JldHVybiEwfX0pXSxkPVtJKCldLGw9W0koe3R5cGU6Qm9vbGVhbixyZWZsZWN0OiEwfSldLHk9W0koe3R5cGU6Qm9vbGVhbn0pXSx4PVtJKHt0eXBlOlN0cmluZ30pXSxGPVtJKHt0eXBlOlN0cmluZ30pXSxOPVtJKHt0eXBlOlN0cmluZ30pXSxxPVtJKHt0eXBlOkJvb2xlYW4scmVmbGVjdDohMH0pXSxFPVtJKHt0eXBlOlN0cmluZyxyZWZsZWN0OiEwfSldLFY9W0koe3R5cGU6U3RyaW5nLHJlZmxlY3Q6ITB9KV0sWmkodGhpcyxudWxsLHMse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJ0ZXh0IixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczptZT0+InRleHQiaW4gbWUsZ2V0Om1lPT5tZS50ZXh0LHNldDoobWUsd2UpPT57bWUudGV4dD13ZX19LG1ldGFkYXRhOmp9LG4sbyksWmkodGhpcyxudWxsLGQse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJldmVudERldGFpbERhdGEiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOm1lPT4iZXZlbnREZXRhaWxEYXRhImluIG1lLGdldDptZT0+bWUuZXZlbnREZXRhaWxEYXRhLHNldDoobWUsd2UpPT57bWUuZXZlbnREZXRhaWxEYXRhPXdlfX0sbWV0YWRhdGE6an0sYyxoKSxaaSh0aGlzLG51bGwsbCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImRpc2FibGVkIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczptZT0+ImRpc2FibGVkImluIG1lLGdldDptZT0+bWUuZGlzYWJsZWQsc2V0OihtZSx3ZSk9PnttZS5kaXNhYmxlZD13ZX19LG1ldGFkYXRhOmp9LGYsZyksWmkodGhpcyxudWxsLHkse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJpc0hpZGRlbiIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6bWU9PiJpc0hpZGRlbiJpbiBtZSxnZXQ6bWU9Pm1lLmlzSGlkZGVuLHNldDoobWUsd2UpPT57bWUuaXNIaWRkZW49d2V9fSxtZXRhZGF0YTpqfSx2LG0pLFppKHRoaXMsbnVsbCx4LHtraW5kOiJhY2Nlc3NvciIsbmFtZToidHlwZSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6bWU9PiJ0eXBlImluIG1lLGdldDptZT0+bWUudHlwZSxzZXQ6KG1lLHdlKT0+e21lLnR5cGU9d2V9fSxtZXRhZGF0YTpqfSxNLFMpLFppKHRoaXMsbnVsbCxGLHtraW5kOiJhY2Nlc3NvciIsbmFtZToic2l6ZSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6bWU9PiJzaXplImluIG1lLGdldDptZT0+bWUuc2l6ZSxzZXQ6KG1lLHdlKT0+e21lLnNpemU9d2V9fSxtZXRhZGF0YTpqfSxfLGspLFppKHRoaXMsbnVsbCxOLHtraW5kOiJhY2Nlc3NvciIsbmFtZToic3RhdHVzIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczptZT0+InN0YXR1cyJpbiBtZSxnZXQ6bWU9Pm1lLnN0YXR1cyxzZXQ6KG1lLHdlKT0+e21lLnN0YXR1cz13ZX19LG1ldGFkYXRhOmp9LEwsQSksWmkodGhpcyxudWxsLHEse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJpbnNpZGVGb3JtIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczptZT0+Imluc2lkZUZvcm0iaW4gbWUsZ2V0Om1lPT5tZS5pbnNpZGVGb3JtLHNldDoobWUsd2UpPT57bWUuaW5zaWRlRm9ybT13ZX19LG1ldGFkYXRhOmp9LEMseiksWmkodGhpcyxudWxsLEUse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJpY29uIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczptZT0+Imljb24iaW4gbWUsZ2V0Om1lPT5tZS5pY29uLHNldDoobWUsd2UpPT57bWUuaWNvbj13ZX19LG1ldGFkYXRhOmp9LFQsJCksWmkodGhpcyxudWxsLFYse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJpY29uUG9zaXRpb24iLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOm1lPT4iaWNvblBvc2l0aW9uImluIG1lLGdldDptZT0+bWUuaWNvblBvc2l0aW9uLHNldDoobWUsd2UpPT57bWUuaWNvblBvc2l0aW9uPXdlfX0sbWV0YWRhdGE6an0sUixVKSxaaShudWxsLGU9e3ZhbHVlOml9LHQse2tpbmQ6ImNsYXNzIixuYW1lOmkubmFtZSxtZXRhZGF0YTpqfSxudWxsLGEpLHJlPWk9ZS52YWx1ZSxqJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoaSxTeW1ib2wubWV0YWRhdGEse2VudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwLHZhbHVlOmp9KX1zdGF0aWMgZGVtbz1HdXQ7c3RhdGljIGRlbW9Hcm91cHM9WyJCdXR0b24iXTsjZT1xMSh0aGlzLG4sdm9pZCAwKTtnZXQgdGV4dCgpe3JldHVybiB0aGlzLiNlfXNldCB0ZXh0KGope3RoaXMuI2U9an0jdD0ocTEodGhpcyxvKSxxMSh0aGlzLGMsdm9pZCAwKSk7Z2V0IGV2ZW50RGV0YWlsRGF0YSgpe3JldHVybiB0aGlzLiN0fXNldCBldmVudERldGFpbERhdGEoail7dGhpcy4jdD1qfSNhPShxMSh0aGlzLGgpLHExKHRoaXMsZiwhMSkpO2dldCBkaXNhYmxlZCgpe3JldHVybiB0aGlzLiNhfXNldCBkaXNhYmxlZChqKXt0aGlzLiNhPWp9I2k9KHExKHRoaXMsZykscTEodGhpcyx2LCExKSk7Z2V0IGlzSGlkZGVuKCl7cmV0dXJuIHRoaXMuI2l9c2V0IGlzSGlkZGVuKGope3RoaXMuI2k9an0jcj0ocTEodGhpcyxtKSxxMSh0aGlzLE0sImRlZmF1bHQiKSk7Z2V0IHR5cGUoKXtyZXR1cm4gdGhpcy4jcn1zZXQgdHlwZShqKXt0aGlzLiNyPWp9I3M9KHExKHRoaXMsUykscTEodGhpcyxfLCJkZWZhdWx0IikpO2dldCBzaXplKCl7cmV0dXJuIHRoaXMuI3N9c2V0IHNpemUoail7dGhpcy4jcz1qfSNuPShxMSh0aGlzLGspLHExKHRoaXMsTCwibm9ybWFsIikpO2dldCBzdGF0dXMoKXtyZXR1cm4gdGhpcy4jbn1zZXQgc3RhdHVzKGope3RoaXMuI249an0jbz0ocTEodGhpcyxBKSxxMSh0aGlzLEMsITEpKTtnZXQgaW5zaWRlRm9ybSgpe3JldHVybiB0aGlzLiNvfXNldCBpbnNpZGVGb3JtKGope3RoaXMuI289an0jbD0ocTEodGhpcyx6KSxxMSh0aGlzLFQsdm9pZCAwKSk7Z2V0IGljb24oKXtyZXR1cm4gdGhpcy4jbH1zZXQgaWNvbihqKXt0aGlzLiNsPWp9I2M9KHExKHRoaXMsJCkscTEodGhpcyxSLCJsZWZ0IikpO2dldCBpY29uUG9zaXRpb24oKXtyZXR1cm4gdGhpcy4jY31zZXQgaWNvblBvc2l0aW9uKGope3RoaXMuI2M9an1jb25zdHJ1Y3Rvcigpe3N1cGVyKCkscTEodGhpcyxVKX1hc3luYyBjb25uZWN0ZWRDYWxsYmFjaygpe2F3YWl0IHN1cGVyLmNvbm5lY3RlZENhbGxiYWNrKCksIXRoaXMuaW5zaWRlRm9ybSYmdGhpcy5jbG9zZXN0KCJkZWVzLWZvcm0iKSYmKHRoaXMuaW5zaWRlRm9ybT0hMCl9c3RhdGljIHN0eWxlcz1bQ2UscC5kZWZhdWx0U3R5bGVzLFFgCiAgICAgIC8qIFRPRE86IE1pZ3JhdGUgaGFyZGNvZGVkIHZhbHVlcyB0byAtLWRlZXMtKiBDU1MgdmFyaWFibGVzICovCiAgICAgIDpob3N0IHsKICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7CiAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDsKICAgICAgICBmb250LWZhbWlseTogaW5oZXJpdDsKICAgICAgfQogICAgICA6aG9zdChbaGlkZGVuXSkgewogICAgICAgIGRpc3BsYXk6IG5vbmU7CiAgICAgIH0KCiAgICAgIC8qIEZvcm0gc3BhY2luZyBzdHlsZXMgKi8KICAgICAgOmhvc3QoW2luc2lkZS1mb3JtXSkgewogICAgICAgIG1hcmdpbi1ib3R0b206IDE2cHg7CiAgICAgIH0KICAgICAgCiAgICAgIDpob3N0KFtpbnNpZGUtZm9ybV06bGFzdC1jaGlsZCkgewogICAgICAgIG1hcmdpbi1ib3R0b206IDA7CiAgICAgIH0KICAgICAgCiAgICAgIGRlZXMtZm9ybVtob3Jpem9udGFsLWxheW91dF0gOmhvc3QoW2luc2lkZS1mb3JtXSkgewogICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jazsKICAgICAgICBtYXJnaW4tcmlnaHQ6IDE2cHg7CiAgICAgICAgbWFyZ2luLWJvdHRvbTogMDsKICAgICAgfQogICAgICAKICAgICAgZGVlcy1mb3JtW2hvcml6b250YWwtbGF5b3V0XSA6aG9zdChbaW5zaWRlLWZvcm1dOmxhc3QtY2hpbGQpIHsKICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7CiAgICAgIH0KCiAgICAgIC5idXR0b24gewogICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOwogICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7CiAgICAgICAgYm9yZGVyLXJhZGl1czogNnB4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7CiAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuMTVzIGVhc2U7CiAgICAgICAgY3Vyc29yOiBwb2ludGVyOwogICAgICAgIHVzZXItc2VsZWN0OiBub25lOwogICAgICAgIG91dGxpbmU6IG5vbmU7CiAgICAgICAgbGV0dGVyLXNwYWNpbmc6IC0wLjAxZW07CiAgICAgICAgZ2FwOiA4cHg7CiAgICAgIH0KCiAgICAgIC8qIFNpemUgdmFyaWFudHMgKi8KICAgICAgLmJ1dHRvbi5zaXplLWRlZmF1bHQgewogICAgICAgIGhlaWdodDogMzZweDsKICAgICAgICBwYWRkaW5nOiAwIDE2cHg7CiAgICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgICB9CgogICAgICAuYnV0dG9uLnNpemUtc20gewogICAgICAgIGhlaWdodDogMzJweDsKICAgICAgICBwYWRkaW5nOiAwIDEycHg7CiAgICAgICAgZm9udC1zaXplOiAxM3B4OwogICAgICB9CgogICAgICAuYnV0dG9uLnNpemUtbGcgewogICAgICAgIGhlaWdodDogNDRweDsKICAgICAgICBwYWRkaW5nOiAwIDI0cHg7CiAgICAgICAgZm9udC1zaXplOiAxNnB4OwogICAgICB9CgogICAgICAuYnV0dG9uLnNpemUtaWNvbiB7CiAgICAgICAgaGVpZ2h0OiAzNnB4OwogICAgICAgIHdpZHRoOiAzNnB4OwogICAgICAgIHBhZGRpbmc6IDA7CiAgICAgIH0KCiAgICAgIC8qIERlZmF1bHQgdmFyaWFudCAqLwogICAgICAuYnV0dG9uLmRlZmF1bHQgewogICAgICAgIGJhY2tncm91bmQ6ICR7cC5iZFRoZW1lKCJoc2woMCAwJSAxMDAlKSIsImhzbCgyMTUgMjAuMiUgMTEuOCUpIil9OwogICAgICAgIGNvbG9yOiAke3AuYmRUaGVtZSgiaHNsKDIxNS4zIDI1JSA4LjglKSIsImhzbCgyMTAgNDAlIDk4JSkiKX07CiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHtwLmJkVGhlbWUoImhzbCgyMTQuMyAzMS44JSA5MS40JSkiLCJoc2woMjE1IDIwLjIlIDE2LjglKSIpfTsKICAgICAgICBib3gtc2hhZG93OiAwIDFweCAycHggMCByZ2IoMCAwIDAgLyAwLjA1KTsKICAgICAgfQoKICAgICAgLmJ1dHRvbi5kZWZhdWx0OmhvdmVyOm5vdCguZGlzYWJsZWQpIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke3AuYmRUaGVtZSgiaHNsKDIxMCA0MCUgOTYuMSUpIiwiaHNsKDIxNSAyMC4yJSAxMC4yJSkiKX07CiAgICAgICAgYm9yZGVyLWNvbG9yOiAke3AuYmRUaGVtZSgiaHNsKDIxNC4zIDMxLjglIDg1JSkiLCJoc2woMjE1IDIwLjIlIDIwJSkiKX07CiAgICAgIH0KCiAgICAgIC5idXR0b24uZGVmYXVsdDphY3RpdmU6bm90KC5kaXNhYmxlZCkgewogICAgICAgIGJhY2tncm91bmQ6ICR7cC5iZFRoZW1lKCJoc2woMjE0LjMgMzEuOCUgOTEuNCUpIiwiaHNsKDIxNSAyMC4yJSA5JSkiKX07CiAgICAgIH0KCiAgICAgIC8qIERlc3RydWN0aXZlIHZhcmlhbnQgKi8KICAgICAgLmJ1dHRvbi5kZXN0cnVjdGl2ZSB7CiAgICAgICAgYmFja2dyb3VuZDogaHNsKDAgODQuMiUgNjAuMiUpOwogICAgICAgIGNvbG9yOiBoc2woMCAwJSA5OCUpOwogICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIHRyYW5zcGFyZW50OwogICAgICB9CgogICAgICAuYnV0dG9uLmRlc3RydWN0aXZlOmhvdmVyOm5vdCguZGlzYWJsZWQpIHsKICAgICAgICBiYWNrZ3JvdW5kOiBoc2woMCA4NC4yJSA1Ni4yJSk7CiAgICAgIH0KCiAgICAgIC5idXR0b24uZGVzdHJ1Y3RpdmU6YWN0aXZlOm5vdCguZGlzYWJsZWQpIHsKICAgICAgICBiYWNrZ3JvdW5kOiBoc2woMCA4NC4yJSA1Mi4yJSk7CiAgICAgIH0KCiAgICAgIC8qIE91dGxpbmUgdmFyaWFudCAqLwogICAgICAuYnV0dG9uLm91dGxpbmUgewogICAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50OwogICAgICAgIGNvbG9yOiAke3AuYmRUaGVtZSgiaHNsKDIxNS4zIDI1JSA4LjglKSIsImhzbCgyMTAgNDAlIDk4JSkiKX07CiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHtwLmJkVGhlbWUoImhzbCgyMTQuMyAzMS44JSA5MS40JSkiLCJoc2woMjE1IDIwLjIlIDIxLjglKSIpfTsKICAgICAgfQoKICAgICAgLmJ1dHRvbi5vdXRsaW5lOmhvdmVyOm5vdCguZGlzYWJsZWQpIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke3AuYmRUaGVtZSgiaHNsKDIxMCA0MCUgOTYuMSUpIiwiaHNsKDIxNSAyMC4yJSAxNi44JSkiKX07CiAgICAgICAgYm9yZGVyLWNvbG9yOiAke3AuYmRUaGVtZSgiaHNsKDIxNC4zIDMxLjglIDg1JSkiLCJoc2woMjE1IDIwLjIlIDI2LjglKSIpfTsKICAgICAgfQoKICAgICAgLmJ1dHRvbi5vdXRsaW5lOmFjdGl2ZTpub3QoLmRpc2FibGVkKSB7CiAgICAgICAgYmFja2dyb3VuZDogJHtwLmJkVGhlbWUoImhzbCgyMTQuMyAzMS44JSA5MS40JSkiLCJoc2woMjE1IDIwLjIlIDEzLjglKSIpfTsKICAgICAgfQoKICAgICAgLyogU2Vjb25kYXJ5IHZhcmlhbnQgKi8KICAgICAgLmJ1dHRvbi5zZWNvbmRhcnkgewogICAgICAgIGJhY2tncm91bmQ6ICR7cC5iZFRoZW1lKCJoc2woMjEwIDQwJSA5Ni4xJSkiLCJoc2woMjE1IDIwLjIlIDE2LjglKSIpfTsKICAgICAgICBjb2xvcjogJHtwLmJkVGhlbWUoImhzbCgyMTUuMyAyNSUgOC44JSkiLCJoc2woMjEwIDQwJSA5OCUpIil9OwogICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIHRyYW5zcGFyZW50OwogICAgICB9CgogICAgICAuYnV0dG9uLnNlY29uZGFyeTpob3Zlcjpub3QoLmRpc2FibGVkKSB7CiAgICAgICAgYmFja2dyb3VuZDogJHtwLmJkVGhlbWUoImhzbCgyMTQuMyAzMS44JSA5MS40JSkiLCJoc2woMjE1IDIwLjIlIDEzLjglKSIpfTsKICAgICAgfQoKICAgICAgLmJ1dHRvbi5zZWNvbmRhcnk6YWN0aXZlOm5vdCguZGlzYWJsZWQpIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke3AuYmRUaGVtZSgiaHNsKDIxNC4zIDMxLjglIDg1JSkiLCJoc2woMjE1IDIwLjIlIDExLjglKSIpfTsKICAgICAgfQoKICAgICAgLyogR2hvc3QgdmFyaWFudCAqLwogICAgICAuYnV0dG9uLmdob3N0IHsKICAgICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDsKICAgICAgICBjb2xvcjogJHtwLmJkVGhlbWUoImhzbCgyMTUuMyAyNSUgOC44JSkiLCJoc2woMjEwIDQwJSA5OCUpIil9OwogICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIHRyYW5zcGFyZW50OwogICAgICB9CgogICAgICAuYnV0dG9uLmdob3N0OmhvdmVyOm5vdCguZGlzYWJsZWQpIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke3AuYmRUaGVtZSgiaHNsKDIxMCA0MCUgOTYuMSUpIiwiaHNsKDIxNSAyMC4yJSAxNi44JSkiKX07CiAgICAgIH0KCiAgICAgIC5idXR0b24uZ2hvc3Q6YWN0aXZlOm5vdCguZGlzYWJsZWQpIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke3AuYmRUaGVtZSgiaHNsKDIxNC4zIDMxLjglIDkxLjQlKSIsImhzbCgyMTUgMjAuMiUgMTMuOCUpIil9OwogICAgICB9CgogICAgICAvKiBMaW5rIHZhcmlhbnQgKi8KICAgICAgLmJ1dHRvbi5saW5rIHsKICAgICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDsKICAgICAgICBjb2xvcjogJHtwLmJkVGhlbWUoImhzbCgyMjIuMiA0Ny40JSA1MS4yJSkiLCJoc2woMjEzLjEgOTMuOSUgNjcuOCUpIil9OwogICAgICAgIGJvcmRlcjogbm9uZTsKICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTsKICAgICAgICB0ZXh0LWRlY29yYXRpb24tY29sb3I6IHRyYW5zcGFyZW50OwogICAgICAgIGhlaWdodDogYXV0bzsKICAgICAgICBwYWRkaW5nOiAwOwogICAgICB9CgogICAgICAuYnV0dG9uLmxpbms6aG92ZXI6bm90KC5kaXNhYmxlZCkgewogICAgICAgIHRleHQtZGVjb3JhdGlvbi1jb2xvcjogY3VycmVudENvbG9yOwogICAgICB9CgogICAgICAvKiBTdGF0dXMgc3RhdGVzICovCiAgICAgIC5idXR0b24ucGVuZGluZywKICAgICAgLmJ1dHRvbi5zdWNjZXNzLAogICAgICAuYnV0dG9uLmVycm9yIHsKICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTsKICAgICAgICBwYWRkaW5nLWxlZnQ6IDM2cHg7IC8qIFNwYWNlIGZvciBzcGlubmVyICovCiAgICAgIH0KICAgICAgCiAgICAgIC5idXR0b24uc2l6ZS1zbS5wZW5kaW5nLAogICAgICAuYnV0dG9uLnNpemUtc20uc3VjY2VzcywKICAgICAgLmJ1dHRvbi5zaXplLXNtLmVycm9yIHsKICAgICAgICBwYWRkaW5nLWxlZnQ6IDMycHg7CiAgICAgIH0KICAgICAgCiAgICAgIC5idXR0b24uc2l6ZS1sZy5wZW5kaW5nLAogICAgICAuYnV0dG9uLnNpemUtbGcuc3VjY2VzcywKICAgICAgLmJ1dHRvbi5zaXplLWxnLmVycm9yIHsKICAgICAgICBwYWRkaW5nLWxlZnQ6IDQ0cHg7CiAgICAgIH0KCiAgICAgIC5idXR0b24ucGVuZGluZyB7CiAgICAgICAgYmFja2dyb3VuZDogJHtwLmJkVGhlbWUoImhzbCgyMjIuMiA0Ny40JSA1MS4yJSkiLCJoc2woMjEzLjEgOTMuOSUgNjcuOCUgLyAwLjIpIil9OwogICAgICAgIGNvbG9yOiAke3AuYmRUaGVtZSgiaHNsKDAgMCUgMTAwJSkiLCJoc2woMjEzLjEgOTMuOSUgNjcuOCUpIil9OwogICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIHRyYW5zcGFyZW50OwogICAgICB9CgogICAgICAuYnV0dG9uLnN1Y2Nlc3MgewogICAgICAgIGJhY2tncm91bmQ6ICR7cC5iZFRoZW1lKCJoc2woMTQyLjEgNzYuMiUgMzYuMyUpIiwiaHNsKDE0Mi4xIDcwLjYlIDQ1LjMlIC8gMC4yKSIpfTsKICAgICAgICBjb2xvcjogJHtwLmJkVGhlbWUoImhzbCgwIDAlIDEwMCUpIiwiaHNsKDE0Mi4xIDcwLjYlIDQ1LjMlKSIpfTsKICAgICAgICBib3JkZXI6IDFweCBzb2xpZCB0cmFuc3BhcmVudDsKICAgICAgfQoKICAgICAgLmJ1dHRvbi5lcnJvciB7CiAgICAgICAgYmFja2dyb3VuZDogJHtwLmJkVGhlbWUoImhzbCgwIDg0LjIlIDYwLjIlKSIsImhzbCgwIDYyLjglIDcwLjYlIC8gMC4yKSIpfTsKICAgICAgICBjb2xvcjogJHtwLmJkVGhlbWUoImhzbCgwIDAlIDEwMCUpIiwiaHNsKDAgNjIuOCUgNzAuNiUpIil9OwogICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIHRyYW5zcGFyZW50OwogICAgICB9CgogICAgICAvKiBEaXNhYmxlZCBzdGF0ZSAqLwogICAgICAuYnV0dG9uLmRpc2FibGVkIHsKICAgICAgICBvcGFjaXR5OiAwLjU7CiAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDsKICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTsKICAgICAgfQoKICAgICAgLyogSGlkZGVuIHN0YXRlICovCiAgICAgIC5idXR0b24uaGlkZGVuIHsKICAgICAgICBkaXNwbGF5OiBub25lOwogICAgICB9CgogICAgICAvKiBGb2N1cyBzdGF0ZSAqLwogICAgICAuYnV0dG9uOmZvY3VzLXZpc2libGUgewogICAgICAgIG91dGxpbmU6IDJweCBzb2xpZCAke3AuYmRUaGVtZSgiaHNsKDIyMi4yIDQ3LjQlIDUxLjIlKSIsImhzbCgyMTMuMSA5My45JSA2Ny44JSkiKX07CiAgICAgICAgb3V0bGluZS1vZmZzZXQ6IDJweDsKICAgICAgfQoKICAgICAgLyogTG9hZGluZyBzcGlubmVyICovCiAgICAgIGRlZXMtc3Bpbm5lciB7CiAgICAgICAgcG9zaXRpb246IGFic29sdXRlOwogICAgICAgIGxlZnQ6IDEwcHg7CiAgICAgICAgd2lkdGg6IDE2cHg7CiAgICAgICAgaGVpZ2h0OiAxNnB4OwogICAgICB9CiAgICAgIAogICAgICAuYnV0dG9uLnNpemUtc20gZGVlcy1zcGlubmVyIHsKICAgICAgICBsZWZ0OiA4cHg7CiAgICAgICAgd2lkdGg6IDE0cHg7CiAgICAgICAgaGVpZ2h0OiAxNHB4OwogICAgICB9CiAgICAgIAogICAgICAuYnV0dG9uLnNpemUtbGcgZGVlcy1zcGlubmVyIHsKICAgICAgICBsZWZ0OiAxNHB4OwogICAgICAgIHdpZHRoOiAxOHB4OwogICAgICAgIGhlaWdodDogMThweDsKICAgICAgfQogICAgICAKICAgICAgLyogSWNvbiBzaXppbmcgd2l0aGluIGJ1dHRvbnMgKi8KICAgICAgLmJ1dHRvbiBkZWVzLWljb24gewogICAgICAgIHdpZHRoOiAxNnB4OwogICAgICAgIGhlaWdodDogMTZweDsKICAgICAgICBmbGV4LXNocmluazogMDsKICAgICAgfQogICAgICAKICAgICAgLmJ1dHRvbi5zaXplLXNtIGRlZXMtaWNvbiB7CiAgICAgICAgd2lkdGg6IDE0cHg7CiAgICAgICAgaGVpZ2h0OiAxNHB4OwogICAgICB9CiAgICAgIAogICAgICAuYnV0dG9uLnNpemUtbGcgZGVlcy1pY29uIHsKICAgICAgICB3aWR0aDogMThweDsKICAgICAgICBoZWlnaHQ6IDE4cHg7CiAgICAgIH0KCiAgICAgIC8qIFRleHQgYWxpZ25tZW50ICovCiAgICAgIC50ZXh0Ym94IHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgIH0KCiAgICBgXTtleHRyYWN0TGlnaHREb20oKXtsZXQgaj10aGlzLnF1ZXJ5U2VsZWN0b3IoImRlZXMtaWNvbiIpLG1lPUFycmF5LmZyb20odGhpcy5jaGlsZE5vZGVzKS5maWx0ZXIod2U9PndlLm5vZGVUeXBlPT09Tm9kZS5URVhUX05PREUpLm1hcCh3ZT0+d2UudGV4dENvbnRlbnQ/LnRyaW0oKSkuZmlsdGVyKEJvb2xlYW4pLmpvaW4oIiAiKTtpZihtZSYmIXRoaXMudGV4dCYmKHRoaXMudGV4dD1tZSksail7bGV0IHdlPWouaWNvbnx8ai5nZXRBdHRyaWJ1dGUoImljb24iKXx8KGouaWNvbkZBP2BmYToke2ouaWNvbkZBfWA6bnVsbCk7aWYod2Upe2xldCBIPUFycmF5LmZyb20odGhpcy5jaGlsZE5vZGVzKSxjZT1ILmluZGV4T2Yoaiksa2U9SC5maWx0ZXIoVz0+Vy5ub2RlVHlwZT09PU5vZGUuVEVYVF9OT0RFJiZXLnRleHRDb250ZW50Py50cmltKCkpO2lmKGtlLmxlbmd0aD4wKXtsZXQgVz1ILmluZGV4T2Yoa2VbMF0pO3RoaXMuaWNvblBvc2l0aW9uPWNlPFc/ImxlZnQiOiJyaWdodCJ9dGhpcy5pY29uPXdlfWoucmVtb3ZlKCl9dGhpcy5pbm5lckhUTUw9IiJ9cmVuZGVyKCl7bGV0IG1lPXtub3JtYWw6ImRlZmF1bHQiLGhpZ2hsaWdodGVkOiJkZXN0cnVjdGl2ZSIsZGlzY3JlZXQ6Im91dGxpbmUiLGJpZzoiZGVmYXVsdCJ9W3RoaXMudHlwZV18fHRoaXMudHlwZSx3ZT10aGlzLnR5cGU9PT0iYmlnIj8ibGciOnRoaXMuc2l6ZSxIPXRoaXMuaWNvblBvc2l0aW9uPT09ImxlZnQiJiZ0aGlzLmljb24/d2A8ZGVlcy1pY29uIC5pY29uPSR7dGhpcy5pY29ufT48L2RlZXMtaWNvbj5gOiIiLGNlPXRoaXMuaWNvblBvc2l0aW9uPT09InJpZ2h0IiYmdGhpcy5pY29uP3dgPGRlZXMtaWNvbiAuaWNvbj0ke3RoaXMuaWNvbn0+PC9kZWVzLWljb24+YDoiIixrZT13ZT09PSJpY29uIiYmdGhpcy5pY29uO3JldHVybiB3YAogICAgICA8ZGl2CiAgICAgICAgY2xhc3M9ImJ1dHRvbiAke3RoaXMuaXNIaWRkZW4/ImhpZGRlbiI6IiJ9ICR7bWV9IHNpemUtJHt3ZX0gJHt0aGlzLnN0YXR1c30gJHt0aGlzLmRpc2FibGVkPyJkaXNhYmxlZCI6IiJ9IgogICAgICAgIEBjbGljaz0iJHt0aGlzLmRpc3BhdGNoQ2xpY2t9IgogICAgICA+CiAgICAgICAgJHt0aGlzLnN0YXR1cz09PSJub3JtYWwiP3dgYDp3YAogICAgICAgICAgPGRlZXMtc3Bpbm5lcgogICAgICAgICAgICAuYm53PSR7ITB9CiAgICAgICAgICAgIHN0YXR1cz0iJHt0aGlzLnN0YXR1c30iCiAgICAgICAgICAgIHNpemU9IiR7d2U9PT0ic20iPzE0OndlPT09ImxnIj8xODoxNn0iCiAgICAgICAgICA+PC9kZWVzLXNwaW5uZXI+CiAgICAgICAgYH0KICAgICAgICAke0h9CiAgICAgICAgJHtrZT8iIjp3YDxkaXYgY2xhc3M9InRleHRib3giPiR7dGhpcy50ZXh0fHwiQnV0dG9uIn08L2Rpdj5gfQogICAgICAgICR7Y2V9CiAgICAgIDwvZGl2PgogICAgYH1hc3luYyBkaXNwYXRjaENsaWNrKCl7dGhpcy5kaXNhYmxlZHx8dGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBDdXN0b21FdmVudCgiY2xpY2tlZCIse2RldGFpbDp7ZGF0YTp0aGlzLmV2ZW50RGV0YWlsRGF0YX0sYnViYmxlczohMH0pKX1hc3luYyBmaXJzdFVwZGF0ZWQoKXt0aGlzLmV4dHJhY3RMaWdodERvbSgpfXN0YXRpY3txMShpLGEpfX07cmV0dXJuIHJlPWl9KSgpfSk7dmFyIGhvLHVhLFh1dCxYeD1iKCgpPT57Tjl0KCk7czIoKTtkYSgpO3VlKCk7RHQoKTtuMigpO25vKCk7cWUoKTtobz1mdW5jdGlvbih0LGUsYSxpLHIscyl7ZnVuY3Rpb24gbih4KXtpZih4IT09dm9pZCAwJiZ0eXBlb2YgeCE9ImZ1bmN0aW9uIil0aHJvdyBuZXcgVHlwZUVycm9yKCJGdW5jdGlvbiBleHBlY3RlZCIpO3JldHVybiB4fWZvcih2YXIgbz1pLmtpbmQsZD1vPT09ImdldHRlciI/ImdldCI6bz09PSJzZXR0ZXIiPyJzZXQiOiJ2YWx1ZSIsYz0hZSYmdD9pLnN0YXRpYz90OnQucHJvdG90eXBlOm51bGwsaD1lfHwoYz9PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGMsaS5uYW1lKTp7fSksbCxmPSExLGc9YS5sZW5ndGgtMTtnPj0wO2ctLSl7dmFyIHk9e307Zm9yKHZhciB2IGluIGkpeVt2XT12PT09ImFjY2VzcyI/e306aVt2XTtmb3IodmFyIHYgaW4gaS5hY2Nlc3MpeS5hY2Nlc3Nbdl09aS5hY2Nlc3Nbdl07eS5hZGRJbml0aWFsaXplcj1mdW5jdGlvbih4KXtpZihmKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBhZGQgaW5pdGlhbGl6ZXJzIGFmdGVyIGRlY29yYXRpb24gaGFzIGNvbXBsZXRlZCIpO3MucHVzaChuKHh8fG51bGwpKX07dmFyIG09KDAsYVtnXSkobz09PSJhY2Nlc3NvciI/e2dldDpoLmdldCxzZXQ6aC5zZXR9OmhbZF0seSk7aWYobz09PSJhY2Nlc3NvciIpe2lmKG09PT12b2lkIDApY29udGludWU7aWYobT09PW51bGx8fHR5cGVvZiBtIT0ib2JqZWN0Iil0aHJvdyBuZXcgVHlwZUVycm9yKCJPYmplY3QgZXhwZWN0ZWQiKTsobD1uKG0uZ2V0KSkmJihoLmdldD1sKSwobD1uKG0uc2V0KSkmJihoLnNldD1sKSwobD1uKG0uaW5pdCkpJiZyLnVuc2hpZnQobCl9ZWxzZShsPW4obSkpJiYobz09PSJmaWVsZCI/ci51bnNoaWZ0KGwpOmhbZF09bCl9YyYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGMsaS5uYW1lLGgpLGY9ITB9LHVhPWZ1bmN0aW9uKHQsZSxhKXtmb3IodmFyIGk9YXJndW1lbnRzLmxlbmd0aD4yLHI9MDtyPGUubGVuZ3RoO3IrKylhPWk/ZVtyXS5jYWxsKHQsYSk6ZVtyXS5jYWxsKHQpO3JldHVybiBpP2E6dm9pZCAwfSxYdXQ9KCgpPT57bGV0IHQ9W3BlKCJkZWVzLXN0YXRzZ3JpZCIpXSxlLGE9W10saSxyPXhlLHMsbj1bXSxvPVtdLGQsYz1bXSxoPVtdLGwsZj1bXSxnPVtdLHksdj1bXSxtPVtdLHgsTT1bXSxTPVtdLEYsXz1bXSxrPVtdLE4sTD1bXSxBPVtdO3ZhciBxPWNsYXNzIGV4dGVuZHMgcntzdGF0aWN7aT10aGlzfXN0YXRpY3tsZXQgQz10eXBlb2YgU3ltYm9sPT0iZnVuY3Rpb24iJiZTeW1ib2wubWV0YWRhdGE/T2JqZWN0LmNyZWF0ZShyW1N5bWJvbC5tZXRhZGF0YV0/P251bGwpOnZvaWQgMDtzPVtJKHt0eXBlOkFycmF5fSldLGQ9W0koe3R5cGU6TnVtYmVyfSldLGw9W0koe3R5cGU6TnVtYmVyfSldLHk9W0koe3R5cGU6QXJyYXl9KV0seD1bSigpXSxGPVtKKCldLE49W0ooKV0saG8odGhpcyxudWxsLHMse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJ0aWxlcyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6ej0+InRpbGVzImluIHosZ2V0Ono9PnoudGlsZXMsc2V0Oih6LEUpPT57ei50aWxlcz1FfX0sbWV0YWRhdGE6Q30sbixvKSxobyh0aGlzLG51bGwsZCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6Im1pblRpbGVXaWR0aCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6ej0+Im1pblRpbGVXaWR0aCJpbiB6LGdldDp6PT56Lm1pblRpbGVXaWR0aCxzZXQ6KHosRSk9Pnt6Lm1pblRpbGVXaWR0aD1FfX0sbWV0YWRhdGE6Q30sYyxoKSxobyh0aGlzLG51bGwsbCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImdhcCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6ej0+ImdhcCJpbiB6LGdldDp6PT56LmdhcCxzZXQ6KHosRSk9Pnt6LmdhcD1FfX0sbWV0YWRhdGE6Q30sZixnKSxobyh0aGlzLG51bGwseSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImdyaWRBY3Rpb25zIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczp6PT4iZ3JpZEFjdGlvbnMiaW4geixnZXQ6ej0+ei5ncmlkQWN0aW9ucyxzZXQ6KHosRSk9Pnt6LmdyaWRBY3Rpb25zPUV9fSxtZXRhZGF0YTpDfSx2LG0pLGhvKHRoaXMsbnVsbCx4LHtraW5kOiJhY2Nlc3NvciIsbmFtZToiY29udGV4dE1lbnVWaXNpYmxlIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczp6PT4iY29udGV4dE1lbnVWaXNpYmxlImluIHosZ2V0Ono9PnouY29udGV4dE1lbnVWaXNpYmxlLHNldDooeixFKT0+e3ouY29udGV4dE1lbnVWaXNpYmxlPUV9fSxtZXRhZGF0YTpDfSxNLFMpLGhvKHRoaXMsbnVsbCxGLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiY29udGV4dE1lbnVQb3NpdGlvbiIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6ej0+ImNvbnRleHRNZW51UG9zaXRpb24iaW4geixnZXQ6ej0+ei5jb250ZXh0TWVudVBvc2l0aW9uLHNldDooeixFKT0+e3ouY29udGV4dE1lbnVQb3NpdGlvbj1FfX0sbWV0YWRhdGE6Q30sXyxrKSxobyh0aGlzLG51bGwsTix7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImNvbnRleHRNZW51QWN0aW9ucyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6ej0+ImNvbnRleHRNZW51QWN0aW9ucyJpbiB6LGdldDp6PT56LmNvbnRleHRNZW51QWN0aW9ucyxzZXQ6KHosRSk9Pnt6LmNvbnRleHRNZW51QWN0aW9ucz1FfX0sbWV0YWRhdGE6Q30sTCxBKSxobyhudWxsLGU9e3ZhbHVlOml9LHQse2tpbmQ6ImNsYXNzIixuYW1lOmkubmFtZSxtZXRhZGF0YTpDfSxudWxsLGEpLHE9aT1lLnZhbHVlLEMmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShpLFN5bWJvbC5tZXRhZGF0YSx7ZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITAsdmFsdWU6Q30pfXN0YXRpYyBkZW1vPUk5dDtzdGF0aWMgZGVtb0dyb3Vwcz1bIkRhdGEgVmlldyJdOyNlPXVhKHRoaXMsbixbXSk7Z2V0IHRpbGVzKCl7cmV0dXJuIHRoaXMuI2V9c2V0IHRpbGVzKEMpe3RoaXMuI2U9Q30jdD0odWEodGhpcyxvKSx1YSh0aGlzLGMsMjUwKSk7Z2V0IG1pblRpbGVXaWR0aCgpe3JldHVybiB0aGlzLiN0fXNldCBtaW5UaWxlV2lkdGgoQyl7dGhpcy4jdD1DfSNhPSh1YSh0aGlzLGgpLHVhKHRoaXMsZiwxNikpO2dldCBnYXAoKXtyZXR1cm4gdGhpcy4jYX1zZXQgZ2FwKEMpe3RoaXMuI2E9Q30jaT0odWEodGhpcyxnKSx1YSh0aGlzLHYsW10pKTtnZXQgZ3JpZEFjdGlvbnMoKXtyZXR1cm4gdGhpcy4jaX1zZXQgZ3JpZEFjdGlvbnMoQyl7dGhpcy4jaT1DfSNyPSh1YSh0aGlzLG0pLHVhKHRoaXMsTSwhMSkpO2dldCBjb250ZXh0TWVudVZpc2libGUoKXtyZXR1cm4gdGhpcy4jcn1zZXQgY29udGV4dE1lbnVWaXNpYmxlKEMpe3RoaXMuI3I9Q30jcz0odWEodGhpcyxTKSx1YSh0aGlzLF8se3g6MCx5OjB9KSk7Z2V0IGNvbnRleHRNZW51UG9zaXRpb24oKXtyZXR1cm4gdGhpcy4jc31zZXQgY29udGV4dE1lbnVQb3NpdGlvbihDKXt0aGlzLiNzPUN9I249KHVhKHRoaXMsayksdWEodGhpcyxMLFtdKSk7Z2V0IGNvbnRleHRNZW51QWN0aW9ucygpe3JldHVybiB0aGlzLiNufXNldCBjb250ZXh0TWVudUFjdGlvbnMoQyl7dGhpcy4jbj1DfXN0YXRpYyBzdHlsZXM9W0NlLHAuZGVmYXVsdFN0eWxlcyxRYAogICAgICAvKiBUT0RPOiBNaWdyYXRlIGhhcmRjb2RlZCB2YWx1ZXMgdG8gLS1kZWVzLSogQ1NTIHZhcmlhYmxlcyAqLwogICAgICA6aG9zdCB7CiAgICAgICAgZGlzcGxheTogYmxvY2s7CiAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgICAgZm9udC1mYW1pbHk6ICR7SnR9OwogICAgICB9CgogICAgICAvKiBDU1MgVmFyaWFibGVzIGZvciBjb25zaXN0ZW50IHNwYWNpbmcgYW5kIHNpemluZyAqLwogICAgICA6aG9zdCB7CiAgICAgICAgLS1ncmlkLWdhcDogMTJweDsKICAgICAgICAtLXRpbGUtcGFkZGluZzogMTZweDsKICAgICAgICAtLWhlYWRlci1zcGFjaW5nOiAxMnB4OwogICAgICAgIC0tY29udGVudC1taW4taGVpZ2h0OiA0MHB4OwogICAgICAgIC0tdmFsdWUtZm9udC1zaXplOiAyNnB4OwogICAgICAgIC0tdW5pdC1mb250LXNpemU6IDE0cHg7CiAgICAgICAgLS1sYWJlbC1mb250LXNpemU6IDEycHg7CiAgICAgICAgLS10aXRsZS1mb250LXNpemU6IDEzcHg7CiAgICAgICAgLS1kZXNjcmlwdGlvbi1zcGFjaW5nOiA4cHg7CiAgICAgICAgLS1ib3JkZXItcmFkaXVzOiA2cHg7CiAgICAgICAgLS10cmFuc2l0aW9uLWR1cmF0aW9uOiAwLjE1czsKICAgICAgfQoKICAgICAgLyogR3JpZCBMYXlvdXQgKi8KICAgICAgLmdyaWQtaGVhZGVyIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIG1hcmdpbi1ib3R0b206IGNhbGModmFyKC0tZ3JpZC1nYXApICogMS41KTsKICAgICAgICBtaW4taGVpZ2h0OiA0MHB4OwogICAgICB9CgogICAgICAuZ3JpZC10aXRsZSB7CiAgICAgICAgZm9udC1zaXplOiAxNnB4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7CiAgICAgICAgY29sb3I6ICR7cC5iZFRoZW1lKCIjMDkwOTBiIiwiI2ZhZmFmYSIpfTsKICAgICAgICBsZXR0ZXItc3BhY2luZzogLTAuMDFlbTsKICAgICAgfQoKICAgICAgLmdyaWQtYWN0aW9ucyB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBnYXA6IDZweDsKICAgICAgfQoKICAgICAgLmdyaWQtYWN0aW9ucyBkZWVzLWJ1dHRvbiB7CiAgICAgICAgZm9udC1zaXplOiB2YXIoLS1sYWJlbC1mb250LXNpemUpOwogICAgICB9CgogICAgICAuc3RhdHMtZ3JpZCB7CiAgICAgICAgZGlzcGxheTogZ3JpZDsKICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdChhdXRvLWZpdCwgbWlubWF4KCR7cXQoMjUwKX1weCwgMWZyKSk7CiAgICAgICAgZ2FwOiAke3F0KDE2KX1weDsKICAgICAgICB3aWR0aDogMTAwJTsKICAgICAgfQoKICAgICAgLyogVGlsZSBCYXNlIFN0eWxlcyAqLwogICAgICAuc3RhdHMtdGlsZSB7CiAgICAgICAgYmFja2dyb3VuZDogJHtwLmJkVGhlbWUoIiNmZmZmZmYiLCIjMDkwOTBiIil9OwogICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICR7cC5iZFRoZW1lKCIjZTBlMGUwIiwiIzIwMjAyMCIpfTsKICAgICAgICBib3JkZXItcmFkaXVzOiB2YXIoLS1ib3JkZXItcmFkaXVzKTsKICAgICAgICBwYWRkaW5nOiB2YXIoLS10aWxlLXBhZGRpbmcpOwogICAgICAgIHRyYW5zaXRpb246IGFsbCB2YXIoLS10cmFuc2l0aW9uLWR1cmF0aW9uKSBlYXNlOwogICAgICAgIGN1cnNvcjogZGVmYXVsdDsKICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgIH0KCiAgICAgIC5zdGF0cy10aWxlOmhvdmVyIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke3AuYmRUaGVtZSgiI2ZhZmFmYSIsIiMwZDBkMGQiKX07CiAgICAgICAgYm9yZGVyLWNvbG9yOiAke3AuYmRUaGVtZSgiI2QwZDBkMCIsIiMyYTJhMmEiKX07CiAgICAgIH0KCiAgICAgIC5zdGF0cy10aWxlLmNsaWNrYWJsZSB7CiAgICAgICAgY3Vyc29yOiBwb2ludGVyOwogICAgICB9CgogICAgICAuc3RhdHMtdGlsZS5jbGlja2FibGU6aG92ZXIgewogICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtMXB4KTsKICAgICAgICBib3gtc2hhZG93OiAwIDJweCA2cHggJHtwLmJkVGhlbWUoInJnYmEoMCwwLDAsMC4wMykiLCJyZ2JhKDAsMCwwLDAuMTUpIil9OwogICAgICB9CgogICAgICAvKiBUaWxlIEhlYWRlciAqLwogICAgICAudGlsZS1oZWFkZXIgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuOwogICAgICAgIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0OwogICAgICAgIG1hcmdpbi1ib3R0b206IHZhcigtLWhlYWRlci1zcGFjaW5nKTsKICAgICAgICBmbGV4LXNocmluazogMDsKICAgICAgfQoKICAgICAgLnRpbGUtdGl0bGUgewogICAgICAgIGZvbnQtc2l6ZTogdmFyKC0tdGl0bGUtZm9udC1zaXplKTsKICAgICAgICBmb250LXdlaWdodDogNTAwOwogICAgICAgIGNvbG9yOiAke3AuYmRUaGVtZSgiaHNsKDIxNS40IDE2LjMlIDQ2LjklKSIsImhzbCgyMTUgMjAuMiUgNjUuMSUpIil9OwogICAgICAgIG1hcmdpbjogMDsKICAgICAgICBsZXR0ZXItc3BhY2luZzogLTAuMDFlbTsKICAgICAgICBsaW5lLWhlaWdodDogMS4yOwogICAgICB9CgogICAgICAudGlsZS1pY29uIHsKICAgICAgICBvcGFjaXR5OiAwLjc7CiAgICAgICAgY29sb3I6ICR7cC5iZFRoZW1lKCJoc2woMjE1LjQgMTYuMyUgNDYuOSUpIiwiaHNsKDIxNSAyMC4yJSA2NS4xJSkiKX07CiAgICAgICAgZm9udC1zaXplOiAxNnB4OwogICAgICAgIGZsZXgtc2hyaW5rOiAwOwogICAgICB9CgogICAgICAvKiBUaWxlIENvbnRlbnQgKi8KICAgICAgLnRpbGUtY29udGVudCB7CiAgICAgICAgbWluLWhlaWdodDogdmFyKC0tY29udGVudC1taW4taGVpZ2h0KTsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgICAgZmxleDogMTsKICAgICAgfQoKICAgICAgLnRpbGUtdmFsdWUgewogICAgICAgIGZvbnQtc2l6ZTogdmFyKC0tdmFsdWUtZm9udC1zaXplKTsKICAgICAgICBmb250LXdlaWdodDogNjAwOwogICAgICAgIGNvbG9yOiAke3AuYmRUaGVtZSgiaHNsKDIxNS4zIDI1JSA4LjglKSIsImhzbCgyMTAgNDAlIDk4JSkiKX07CiAgICAgICAgbGluZS1oZWlnaHQ6IDEuMTsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBiYXNlbGluZTsKICAgICAgICBnYXA6IDRweDsKICAgICAgICBsZXR0ZXItc3BhY2luZzogLTAuMDI1ZW07CiAgICAgIH0KCiAgICAgIC50aWxlLXVuaXQgewogICAgICAgIGZvbnQtc2l6ZTogdmFyKC0tdW5pdC1mb250LXNpemUpOwogICAgICAgIGZvbnQtd2VpZ2h0OiA0MDA7CiAgICAgICAgY29sb3I6ICR7cC5iZFRoZW1lKCJoc2woMjE1LjQgMTYuMyUgNDYuOSUpIiwiaHNsKDIxNSAyMC4yJSA2NS4xJSkiKX07CiAgICAgICAgbGV0dGVyLXNwYWNpbmc6IC0wLjAxZW07CiAgICAgIH0KCiAgICAgIC50aWxlLWRlc2NyaXB0aW9uIHsKICAgICAgICBmb250LXNpemU6IHZhcigtLWxhYmVsLWZvbnQtc2l6ZSk7CiAgICAgICAgY29sb3I6ICR7cC5iZFRoZW1lKCJoc2woMjE1LjQgMTYuMyUgNTYuOSUpIiwiaHNsKDIxNSAyMC4yJSA1NS4xJSkiKX07CiAgICAgICAgbWFyZ2luLXRvcDogdmFyKC0tZGVzY3JpcHRpb24tc3BhY2luZyk7CiAgICAgICAgbGV0dGVyLXNwYWNpbmc6IC0wLjAxZW07CiAgICAgICAgZmxleC1zaHJpbms6IDA7CiAgICAgIH0KCiAgICAgIC8qIEdhdWdlIFN0eWxlcyAqLwogICAgICAuZ2F1Z2Utd3JhcHBlciB7CiAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICB9CgogICAgICAuZ2F1Z2UtY29udGFpbmVyIHsKICAgICAgICB3aWR0aDogMTIwcHg7CiAgICAgICAgaGVpZ2h0OiA3MHB4OwogICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgICBtYXJnaW4tdG9wOiAtOHB4OwogICAgICB9CgogICAgICAuZ2F1Z2Utc3ZnIHsKICAgICAgICB3aWR0aDogMTAwJTsKICAgICAgICBoZWlnaHQ6IDEwMCU7CiAgICAgIH0KCiAgICAgIC5nYXVnZS1iYWNrZ3JvdW5kIHsKICAgICAgICBmaWxsOiBub25lOwogICAgICAgIHN0cm9rZTogJHtwLmJkVGhlbWUoIiNlOGU4ZTgiLCIjMWExYTFhIil9OwogICAgICAgIHN0cm9rZS13aWR0aDogNjsKICAgICAgfQoKICAgICAgLmdhdWdlLWZpbGwgewogICAgICAgIGZpbGw6IG5vbmU7CiAgICAgICAgc3Ryb2tlLXdpZHRoOiA2OwogICAgICAgIHN0cm9rZS1saW5lY2FwOiByb3VuZDsKICAgICAgICB0cmFuc2l0aW9uOiBzdHJva2UtZGFzaG9mZnNldCAwLjZzIGN1YmljLWJlemllcigwLjQsIDAsIDAuMiwgMSk7CiAgICAgIH0KCiAgICAgIC5nYXVnZS10ZXh0IHsKICAgICAgICBmaWxsOiAke3AuYmRUaGVtZSgiaHNsKDIxNS4zIDI1JSA4LjglKSIsImhzbCgyMTAgNDAlIDk4JSkiKX07CiAgICAgICAgZm9udC1mYW1pbHk6ICR7SnR9OwogICAgICAgIGZvbnQtc2l6ZTogdmFyKC0tdmFsdWUtZm9udC1zaXplKTsKICAgICAgICBmb250LXdlaWdodDogNjAwOwogICAgICAgIHRleHQtYW5jaG9yOiBtaWRkbGU7CiAgICAgICAgbGV0dGVyLXNwYWNpbmc6IC0wLjAyNWVtOwogICAgICB9CiAgICAgIAogICAgICAuZ2F1Z2UtdW5pdCB7CiAgICAgICAgZm9udC1zaXplOiB2YXIoLS11bml0LWZvbnQtc2l6ZSk7CiAgICAgICAgZmlsbDogJHtwLmJkVGhlbWUoImhzbCgyMTUuNCAxNi4zJSA0Ni45JSkiLCJoc2woMjE1IDIwLjIlIDY1LjElKSIpfTsKICAgICAgICBmb250LXdlaWdodDogNDAwOwogICAgICAgIGZvbnQtZmFtaWx5OiAke0p0fTsKICAgICAgfQoKICAgICAgLyogUGVyY2VudGFnZSBTdHlsZXMgKi8KICAgICAgLnBlcmNlbnRhZ2Utd3JhcHBlciB7CiAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgICBmbGV4OiAxOwogICAgICB9CgogICAgICAucGVyY2VudGFnZS12YWx1ZSB7CiAgICAgICAgZm9udC1zaXplOiB2YXIoLS12YWx1ZS1mb250LXNpemUpOwogICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7CiAgICAgICAgY29sb3I6ICR7cC5iZFRoZW1lKCJoc2woMjE1LjMgMjUlIDguOCUpIiwiaHNsKDIxMCA0MCUgOTglKSIpfTsKICAgICAgICBsaW5lLWhlaWdodDogMS4xOwogICAgICAgIGxldHRlci1zcGFjaW5nOiAtMC4wMjVlbTsKICAgICAgICBtYXJnaW4tYm90dG9tOiA4cHg7CiAgICAgIH0KCiAgICAgIC5wZXJjZW50YWdlLWJhciB7CiAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgICAgaGVpZ2h0OiA2cHg7CiAgICAgICAgYmFja2dyb3VuZDogJHtwLmJkVGhlbWUoIiNlOGU4ZTgiLCIjMWExYTFhIil9OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDNweDsKICAgICAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgICAgIG1hcmdpbi10b3A6IGF1dG87CiAgICAgIH0KCiAgICAgIC5wZXJjZW50YWdlLWZpbGwgewogICAgICAgIGhlaWdodDogMTAwJTsKICAgICAgICBiYWNrZ3JvdW5kOiAke3AuYmRUaGVtZSgiIzMzMzMzMyIsIiNlMGUwZTAiKX07CiAgICAgICAgdHJhbnNpdGlvbjogd2lkdGggMC42cyBjdWJpYy1iZXppZXIoMC40LCAwLCAwLjIsIDEpOwogICAgICAgIGJvcmRlci1yYWRpdXM6IDNweDsKICAgICAgfQoKICAgICAgLyogTXVsdGkgUGVyY2VudGFnZSBTdHlsZXMgKi8KICAgICAgLm11bHRpLXBlcmNlbnRhZ2Utd3JhcHBlciB7CiAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICAgIGZsZXg6IDE7CiAgICAgIH0KCiAgICAgIC5tdWx0aS1wZXJjZW50YWdlLWl0ZW1zIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgICAgZ2FwOiAxMnB4OwogICAgICAgIG1hcmdpbi10b3A6IGF1dG87CiAgICAgIH0KCiAgICAgIC5tdWx0aS1wZXJjZW50YWdlLWl0ZW0gewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgICBnYXA6IDRweDsKICAgICAgfQoKICAgICAgLm11bHRpLXBlcmNlbnRhZ2UtaGVhZGVyIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjsKICAgICAgICBhbGlnbi1pdGVtczogYmFzZWxpbmU7CiAgICAgIH0KCiAgICAgIC5tdWx0aS1wZXJjZW50YWdlLWxhYmVsIHsKICAgICAgICBmb250LXNpemU6IDExcHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDsKICAgICAgICBjb2xvcjogJHtwLmJkVGhlbWUoImhzbCgyMTUuNCAxNi4zJSA0Ni45JSkiLCJoc2woMjE1IDIwLjIlIDY1LjElKSIpfTsKICAgICAgICBsZXR0ZXItc3BhY2luZzogLTAuMDFlbTsKICAgICAgfQoKICAgICAgLm11bHRpLXBlcmNlbnRhZ2UtdmFsdWUgewogICAgICAgIGZvbnQtc2l6ZTogMTNweDsKICAgICAgICBmb250LXdlaWdodDogNjAwOwogICAgICAgIGNvbG9yOiAke3AuYmRUaGVtZSgiaHNsKDIxNS4zIDI1JSA4LjglKSIsImhzbCgyMTAgNDAlIDk4JSkiKX07CiAgICAgICAgbGV0dGVyLXNwYWNpbmc6IC0wLjAxZW07CiAgICAgIH0KCiAgICAgIC5tdWx0aS1wZXJjZW50YWdlLWJhciB7CiAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgICAgaGVpZ2h0OiA0cHg7CiAgICAgICAgYmFja2dyb3VuZDogJHtwLmJkVGhlbWUoIiNlOGU4ZTgiLCIjMWExYTFhIil9OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDJweDsKICAgICAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgICB9CgogICAgICAubXVsdGktcGVyY2VudGFnZS1maWxsIHsKICAgICAgICBoZWlnaHQ6IDEwMCU7CiAgICAgICAgYmFja2dyb3VuZDogJHtwLmJkVGhlbWUoIiMzMzMzMzMiLCIjZTBlMGUwIil9OwogICAgICAgIHRyYW5zaXRpb246IHdpZHRoIDAuNnMgY3ViaWMtYmV6aWVyKDAuNCwgMCwgMC4yLCAxKTsKICAgICAgICBib3JkZXItcmFkaXVzOiAycHg7CiAgICAgIH0KCiAgICAgIC8qIENQVSBDb3JlcyBTdHlsZXMgKi8KICAgICAgLmNwdS1jb3Jlcy13cmFwcGVyIHsKICAgICAgICB3aWR0aDogMTAwJTsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgICAgZmxleDogMTsKICAgICAgICBtaW4taGVpZ2h0OiA4MHB4OwogICAgICB9CgogICAgICAuY3B1LWNvcmVzLWhlYWRlciB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogYmFzZWxpbmU7CiAgICAgICAgZ2FwOiA4cHg7CiAgICAgICAgbWFyZ2luLWJvdHRvbTogMTJweDsKICAgICAgfQoKICAgICAgLmNwdS1jb3Jlcy12YWx1ZSB7CiAgICAgICAgZm9udC1zaXplOiB2YXIoLS12YWx1ZS1mb250LXNpemUpOwogICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7CiAgICAgICAgY29sb3I6ICR7cC5iZFRoZW1lKCJoc2woMjE1LjMgMjUlIDguOCUpIiwiaHNsKDIxMCA0MCUgOTglKSIpfTsKICAgICAgICBsaW5lLWhlaWdodDogMS4xOwogICAgICAgIGxldHRlci1zcGFjaW5nOiAtMC4wMjVlbTsKICAgICAgfQoKICAgICAgLmNwdS1jb3Jlcy11bml0IHsKICAgICAgICBmb250LXNpemU6IHZhcigtLXVuaXQtZm9udC1zaXplKTsKICAgICAgICBmb250LXdlaWdodDogNDAwOwogICAgICAgIGNvbG9yOiAke3AuYmRUaGVtZSgiaHNsKDIxNS40IDE2LjMlIDQ2LjklKSIsImhzbCgyMTUgMjAuMiUgNjUuMSUpIil9OwogICAgICAgIGxldHRlci1zcGFjaW5nOiAtMC4wMWVtOwogICAgICB9CgogICAgICAuY3B1LWNvcmVzLWxhYmVsIHsKICAgICAgICBmb250LXNpemU6IHZhcigtLWxhYmVsLWZvbnQtc2l6ZSk7CiAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDsKICAgICAgICBjb2xvcjogJHtwLmJkVGhlbWUoImhzbCgyMTUuNCAxNi4zJSA1Ni45JSkiLCJoc2woMjE1IDIwLjIlIDU1LjElKSIpfTsKICAgICAgICBsZXR0ZXItc3BhY2luZzogLTAuMDFlbTsKICAgICAgICBtYXJnaW4tbGVmdDogYXV0bzsKICAgICAgfQoKICAgICAgLmNwdS1jb3Jlcy1iYXJzIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBmbGV4LWVuZDsKICAgICAgICBnYXA6IDNweDsKICAgICAgICBmbGV4OiAxOwogICAgICAgIG1pbi1oZWlnaHQ6IDYwcHg7CiAgICAgICAgcGFkZGluZzogNHB4IDA7CiAgICAgIH0KCiAgICAgIC5jcHUtY29yZXMtYmFycy5jZW50ZXJlZCB7CiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7CiAgICAgIH0KCiAgICAgIC5jcHUtY29yZS1iYXItY29udGFpbmVyIHsKICAgICAgICBmbGV4OiAxOwogICAgICAgIG1pbi13aWR0aDogNnB4OwogICAgICAgIG1heC13aWR0aDogMjRweDsKICAgICAgICBoZWlnaHQ6IDEwMCU7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgZ2FwOiA0cHg7CiAgICAgIH0KCiAgICAgIC5jcHUtY29yZS1iYXItd3JhcHBlciB7CiAgICAgICAgZmxleDogMTsKICAgICAgICB3aWR0aDogMTAwJTsKICAgICAgICBiYWNrZ3JvdW5kOiAke3AuYmRUaGVtZSgiI2U4ZThlOCIsIiMxYTFhMWEiKX07CiAgICAgICAgYm9yZGVyLXJhZGl1czogMnB4OwogICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgICAgIG1pbi1oZWlnaHQ6IDQwcHg7CiAgICAgIH0KCiAgICAgIC5jcHUtY29yZS1iYXItZmlsbCB7CiAgICAgICAgcG9zaXRpb246IGFic29sdXRlOwogICAgICAgIGJvdHRvbTogMDsKICAgICAgICBsZWZ0OiAwOwogICAgICAgIHJpZ2h0OiAwOwogICAgICAgIHdpZHRoOiAxMDAlOwogICAgICAgIGJhY2tncm91bmQ6ICR7cC5iZFRoZW1lKCIjNjY2NjY2IiwiIzg4ODg4OCIpfTsKICAgICAgICB0cmFuc2l0aW9uOiBoZWlnaHQgMC4zcyBjdWJpYy1iZXppZXIoMC40LCAwLCAwLjIsIDEpLCBiYWNrZ3JvdW5kLWNvbG9yIDAuM3MgZWFzZTsKICAgICAgICBib3JkZXItcmFkaXVzOiAycHggMnB4IDAgMDsKICAgICAgfQoKICAgICAgLmNwdS1jb3JlLWJhci1maWxsLmxvdyB7CiAgICAgICAgYmFja2dyb3VuZDogJHtwLmJkVGhlbWUoImhzbCgxNDIuMSA3Ni4yJSAzNi4zJSkiLCJoc2woMTQyLjEgNzAuNiUgNDUuMyUpIil9OwogICAgICB9CgogICAgICAuY3B1LWNvcmUtYmFyLWZpbGwubWVkaXVtIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke3AuYmRUaGVtZSgiaHNsKDQ1LjQgOTMuNCUgNDcuNSUpIiwiaHNsKDQ1LjQgOTMuNCUgNDcuNSUpIil9OwogICAgICB9CgogICAgICAuY3B1LWNvcmUtYmFyLWZpbGwuaGlnaCB7CiAgICAgICAgYmFja2dyb3VuZDogJHtwLmJkVGhlbWUoImhzbCgwIDg0LjIlIDYwLjIlKSIsImhzbCgwIDg0LjIlIDYwLjIlKSIpfTsKICAgICAgfQoKICAgICAgLmNwdS1jb3JlLWxhYmVsIHsKICAgICAgICBmb250LXNpemU6IDlweDsKICAgICAgICBmb250LXdlaWdodDogNTAwOwogICAgICAgIGNvbG9yOiAke3AuYmRUaGVtZSgiaHNsKDIxNS40IDE2LjMlIDU2LjklKSIsImhzbCgyMTUgMjAuMiUgNTUuMSUpIil9OwogICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjsKICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwOwogICAgICAgIG92ZXJmbG93OiBoaWRkZW47CiAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7CiAgICAgICAgbWF4LXdpZHRoOiAxMDAlOwogICAgICB9CgogICAgICAvKiBQYXJ0aXRpb24gU3R5bGVzICovCiAgICAgIC5wYXJ0aXRpb24td3JhcHBlciB7CiAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICAgIGZsZXg6IDE7CiAgICAgICAgZ2FwOiA4cHg7CiAgICAgIH0KCiAgICAgIC5wYXJ0aXRpb24taGVhZGVyIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBiYXNlbGluZTsKICAgICAgICBnYXA6IDhweDsKICAgICAgfQoKICAgICAgLnBhcnRpdGlvbi1wZXJjZW50YWdlIHsKICAgICAgICBmb250LXNpemU6IHZhcigtLXZhbHVlLWZvbnQtc2l6ZSk7CiAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDsKICAgICAgICBjb2xvcjogJHtwLmJkVGhlbWUoImhzbCgyMTUuMyAyNSUgOC44JSkiLCJoc2woMjEwIDQwJSA5OCUpIil9OwogICAgICAgIGxpbmUtaGVpZ2h0OiAxLjE7CiAgICAgICAgbGV0dGVyLXNwYWNpbmc6IC0wLjAyNWVtOwogICAgICB9CgogICAgICAucGFydGl0aW9uLWJhciB7CiAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgICAgaGVpZ2h0OiA2cHg7CiAgICAgICAgYmFja2dyb3VuZDogJHtwLmJkVGhlbWUoIiNlOGU4ZTgiLCIjMWExYTFhIil9OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDNweDsKICAgICAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgICB9CgogICAgICAucGFydGl0aW9uLWJhci1maWxsIHsKICAgICAgICBoZWlnaHQ6IDEwMCU7CiAgICAgICAgYmFja2dyb3VuZDogJHtwLmJkVGhlbWUoIiMzMzMzMzMiLCIjZTBlMGUwIil9OwogICAgICAgIHRyYW5zaXRpb246IHdpZHRoIDAuNnMgY3ViaWMtYmV6aWVyKDAuNCwgMCwgMC4yLCAxKTsKICAgICAgICBib3JkZXItcmFkaXVzOiAzcHg7CiAgICAgIH0KCiAgICAgIC5wYXJ0aXRpb24tYmFyLWZpbGwud2FybmluZyB7CiAgICAgICAgYmFja2dyb3VuZDogJHtwLmJkVGhlbWUoImhzbCg0NS40IDkzLjQlIDQ3LjUlKSIsImhzbCg0NS40IDkzLjQlIDQ3LjUlKSIpfTsKICAgICAgfQoKICAgICAgLnBhcnRpdGlvbi1iYXItZmlsbC5jcml0aWNhbCB7CiAgICAgICAgYmFja2dyb3VuZDogJHtwLmJkVGhlbWUoImhzbCgwIDg0LjIlIDYwLjIlKSIsImhzbCgwIDg0LjIlIDYwLjIlKSIpfTsKICAgICAgfQoKICAgICAgLnBhcnRpdGlvbi1zdGF0cyB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBtYXJnaW4tdG9wOiBhdXRvOwogICAgICB9CgogICAgICAucGFydGl0aW9uLXN0YXQgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgICBnYXA6IDJweDsKICAgICAgfQoKICAgICAgLnBhcnRpdGlvbi1zdGF0LWxhYmVsIHsKICAgICAgICBmb250LXNpemU6IDEwcHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDsKICAgICAgICBjb2xvcjogJHtwLmJkVGhlbWUoImhzbCgyMTUuNCAxNi4zJSA1Ni45JSkiLCJoc2woMjE1IDIwLjIlIDU1LjElKSIpfTsKICAgICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlOwogICAgICAgIGxldHRlci1zcGFjaW5nOiAwLjAyZW07CiAgICAgIH0KCiAgICAgIC5wYXJ0aXRpb24tc3RhdC12YWx1ZSB7CiAgICAgICAgZm9udC1zaXplOiAxM3B4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7CiAgICAgICAgY29sb3I6ICR7cC5iZFRoZW1lKCJoc2woMjE1LjMgMjUlIDguOCUpIiwiaHNsKDIxMCA0MCUgOTglKSIpfTsKICAgICAgICBsZXR0ZXItc3BhY2luZzogLTAuMDFlbTsKICAgICAgfQoKICAgICAgLnBhcnRpdGlvbi1tZXRhIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgZ2FwOiA2cHg7CiAgICAgICAgbWFyZ2luLXRvcDogNHB4OwogICAgICB9CgogICAgICAucGFydGl0aW9uLWZpbGVzeXN0ZW0gewogICAgICAgIGZvbnQtc2l6ZTogMTFweDsKICAgICAgICBmb250LXdlaWdodDogNTAwOwogICAgICAgIGNvbG9yOiAke3AuYmRUaGVtZSgiaHNsKDIxNS40IDE2LjMlIDQ2LjklKSIsImhzbCgyMTUgMjAuMiUgNjUuMSUpIil9OwogICAgICAgIGJhY2tncm91bmQ6ICR7cC5iZFRoZW1lKCJoc2woMjEwIDQwJSA5Ni4xJSkiLCJoc2woMjE1IDIwLjIlIDE2LjglKSIpfTsKICAgICAgICBwYWRkaW5nOiAycHggNnB4OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDNweDsKICAgICAgfQoKICAgICAgLnBhcnRpdGlvbi1tb3VudHBvaW50IHsKICAgICAgICBmb250LXNpemU6IDExcHg7CiAgICAgICAgY29sb3I6ICR7cC5iZFRoZW1lKCJoc2woMjE1LjQgMTYuMyUgNTYuOSUpIiwiaHNsKDIxNSAyMC4yJSA1NS4xJSkiKX07CiAgICAgIH0KCiAgICAgIC8qIERpc2sgU3R5bGVzICovCiAgICAgIC5kaXNrLXdyYXBwZXIgewogICAgICAgIHdpZHRoOiAxMDAlOwogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgICBmbGV4OiAxOwogICAgICAgIGdhcDogOHB4OwogICAgICB9CgogICAgICAuZGlzay1jYXBhY2l0eSB7CiAgICAgICAgZm9udC1zaXplOiB2YXIoLS12YWx1ZS1mb250LXNpemUpOwogICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7CiAgICAgICAgY29sb3I6ICR7cC5iZFRoZW1lKCJoc2woMjE1LjMgMjUlIDguOCUpIiwiaHNsKDIxMCA0MCUgOTglKSIpfTsKICAgICAgICBsaW5lLWhlaWdodDogMS4xOwogICAgICAgIGxldHRlci1zcGFjaW5nOiAtMC4wMjVlbTsKICAgICAgfQoKICAgICAgLmRpc2stbW9kZWwgewogICAgICAgIGZvbnQtc2l6ZTogMTJweDsKICAgICAgICBjb2xvcjogJHtwLmJkVGhlbWUoImhzbCgyMTUuNCAxNi4zJSA0Ni45JSkiLCJoc2woMjE1IDIwLjIlIDY1LjElKSIpfTsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgZ2FwOiA2cHg7CiAgICAgIH0KCiAgICAgIC5kaXNrLXR5cGUtYmFkZ2UgewogICAgICAgIGZvbnQtc2l6ZTogMTBweDsKICAgICAgICBmb250LXdlaWdodDogNjAwOwogICAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7CiAgICAgICAgY29sb3I6ICR7cC5iZFRoZW1lKCJoc2woMjE1LjQgMTYuMyUgNDYuOSUpIiwiaHNsKDIxNSAyMC4yJSA2NS4xJSkiKX07CiAgICAgICAgYmFja2dyb3VuZDogJHtwLmJkVGhlbWUoImhzbCgyMTAgNDAlIDk2LjElKSIsImhzbCgyMTUgMjAuMiUgMTYuOCUpIil9OwogICAgICAgIHBhZGRpbmc6IDJweCA2cHg7CiAgICAgICAgYm9yZGVyLXJhZGl1czogM3B4OwogICAgICB9CgogICAgICAuZGlzay1tZXRyaWNzIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgICAgZ2FwOiA4cHg7CiAgICAgICAgbWFyZ2luLXRvcDogYXV0bzsKICAgICAgfQoKICAgICAgLmRpc2staW9wcyB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGdhcDogMTJweDsKICAgICAgfQoKICAgICAgLmRpc2staW9wcy1pdGVtIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBiYXNlbGluZTsKICAgICAgICBnYXA6IDRweDsKICAgICAgfQoKICAgICAgLmRpc2staW9wcy1sYWJlbCB7CiAgICAgICAgZm9udC1zaXplOiAxMHB4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7CiAgICAgICAgY29sb3I6ICR7cC5iZFRoZW1lKCJoc2woMjE1LjQgMTYuMyUgNTYuOSUpIiwiaHNsKDIxNSAyMC4yJSA1NS4xJSkiKX07CiAgICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTsKICAgICAgfQoKICAgICAgLmRpc2staW9wcy12YWx1ZSB7CiAgICAgICAgZm9udC1zaXplOiAxM3B4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7CiAgICAgICAgY29sb3I6ICR7cC5iZFRoZW1lKCJoc2woMjE1LjMgMjUlIDguOCUpIiwiaHNsKDIxMCA0MCUgOTglKSIpfTsKICAgICAgfQoKICAgICAgLmRpc2staGVhbHRoIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgICAgZ2FwOiA0cHg7CiAgICAgIH0KCiAgICAgIC5kaXNrLWhlYWx0aC1oZWFkZXIgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuOwogICAgICAgIGFsaWduLWl0ZW1zOiBiYXNlbGluZTsKICAgICAgfQoKICAgICAgLmRpc2staGVhbHRoLWxhYmVsIHsKICAgICAgICBmb250LXNpemU6IDEwcHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDsKICAgICAgICBjb2xvcjogJHtwLmJkVGhlbWUoImhzbCgyMTUuNCAxNi4zJSA1Ni45JSkiLCJoc2woMjE1IDIwLjIlIDU1LjElKSIpfTsKICAgICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlOwogICAgICB9CgogICAgICAuZGlzay1oZWFsdGgtdmFsdWUgewogICAgICAgIGZvbnQtc2l6ZTogMTJweDsKICAgICAgICBmb250LXdlaWdodDogNjAwOwogICAgICAgIGNvbG9yOiAke3AuYmRUaGVtZSgiaHNsKDIxNS4zIDI1JSA4LjglKSIsImhzbCgyMTAgNDAlIDk4JSkiKX07CiAgICAgIH0KCiAgICAgIC5kaXNrLWhlYWx0aC1iYXIgewogICAgICAgIHdpZHRoOiAxMDAlOwogICAgICAgIGhlaWdodDogNHB4OwogICAgICAgIGJhY2tncm91bmQ6ICR7cC5iZFRoZW1lKCIjZThlOGU4IiwiIzFhMWExYSIpfTsKICAgICAgICBib3JkZXItcmFkaXVzOiAycHg7CiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgICAgfQoKICAgICAgLmRpc2staGVhbHRoLWZpbGwgewogICAgICAgIGhlaWdodDogMTAwJTsKICAgICAgICB0cmFuc2l0aW9uOiB3aWR0aCAwLjZzIGN1YmljLWJlemllcigwLjQsIDAsIDAuMiwgMSk7CiAgICAgICAgYm9yZGVyLXJhZGl1czogMnB4OwogICAgICB9CgogICAgICAuZGlzay1oZWFsdGgtZmlsbC5nb29kIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke3AuYmRUaGVtZSgiaHNsKDE0Mi4xIDc2LjIlIDM2LjMlKSIsImhzbCgxNDIuMSA3MC42JSA0NS4zJSkiKX07CiAgICAgIH0KCiAgICAgIC5kaXNrLWhlYWx0aC1maWxsLndhcm5pbmcgewogICAgICAgIGJhY2tncm91bmQ6ICR7cC5iZFRoZW1lKCJoc2woNDUuNCA5My40JSA0Ny41JSkiLCJoc2woNDUuNCA5My40JSA0Ny41JSkiKX07CiAgICAgIH0KCiAgICAgIC5kaXNrLWhlYWx0aC1maWxsLmNyaXRpY2FsIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke3AuYmRUaGVtZSgiaHNsKDAgODQuMiUgNjAuMiUpIiwiaHNsKDAgODQuMiUgNjAuMiUpIil9OwogICAgICB9CgogICAgICAvKiBUcmVuZCBTdHlsZXMgKi8KICAgICAgLnRyZW5kLWNvbnRhaW5lciB7CiAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICAgIGdhcDogOHB4OwogICAgICAgIGZsZXg6IDE7CiAgICAgIH0KCiAgICAgIC50cmVuZC1oZWFkZXIgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGJhc2VsaW5lOwogICAgICAgIGdhcDogOHB4OwogICAgICB9CgogICAgICAudHJlbmQtdmFsdWUgewogICAgICAgIGZvbnQtc2l6ZTogdmFyKC0tdmFsdWUtZm9udC1zaXplKTsKICAgICAgICBmb250LXdlaWdodDogNjAwOwogICAgICAgIGNvbG9yOiAke3AuYmRUaGVtZSgiaHNsKDIxNS4zIDI1JSA4LjglKSIsImhzbCgyMTAgNDAlIDk4JSkiKX07CiAgICAgICAgbGluZS1oZWlnaHQ6IDEuMTsKICAgICAgICBsZXR0ZXItc3BhY2luZzogLTAuMDI1ZW07CiAgICAgIH0KCiAgICAgIC50cmVuZC11bml0IHsKICAgICAgICBmb250LXNpemU6IHZhcigtLXVuaXQtZm9udC1zaXplKTsKICAgICAgICBmb250LXdlaWdodDogNDAwOwogICAgICAgIGNvbG9yOiAke3AuYmRUaGVtZSgiaHNsKDIxNS40IDE2LjMlIDQ2LjklKSIsImhzbCgyMTUgMjAuMiUgNjUuMSUpIil9OwogICAgICAgIGxldHRlci1zcGFjaW5nOiAtMC4wMWVtOwogICAgICB9CgogICAgICAudHJlbmQtbGFiZWwgewogICAgICAgIGZvbnQtc2l6ZTogdmFyKC0tbGFiZWwtZm9udC1zaXplKTsKICAgICAgICBmb250LXdlaWdodDogNTAwOwogICAgICAgIGNvbG9yOiAke3AuYmRUaGVtZSgiaHNsKDIxNS40IDE2LjMlIDU2LjklKSIsImhzbCgyMTUgMjAuMiUgNTUuMSUpIil9OwogICAgICAgIGxldHRlci1zcGFjaW5nOiAtMC4wMWVtOwogICAgICAgIG1hcmdpbi1sZWZ0OiBhdXRvOwogICAgICB9CgogICAgICAudHJlbmQtZ3JhcGggewogICAgICAgIHdpZHRoOiAxMDAlOwogICAgICAgIGhlaWdodDogMjhweDsKICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgICAgbWFyZ2luLXRvcDogYXV0bzsKICAgICAgfQoKICAgICAgLnRyZW5kLXN2ZyB7CiAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgICAgaGVpZ2h0OiAxMDAlOwogICAgICAgIGRpc3BsYXk6IGJsb2NrOwogICAgICB9CgogICAgICAudHJlbmQtbGluZSB7CiAgICAgICAgZmlsbDogbm9uZTsKICAgICAgICBzdHJva2U6ICR7cC5iZFRoZW1lKCIjOTk5OTk5IiwiIzY2NjY2NiIpfTsKICAgICAgICBzdHJva2Utd2lkdGg6IDEuNTsKICAgICAgICBzdHJva2UtbGluZWpvaW46IHJvdW5kOwogICAgICAgIHN0cm9rZS1saW5lY2FwOiByb3VuZDsKICAgICAgfQoKICAgICAgLnRyZW5kLWFyZWEgewogICAgICAgIGZpbGw6ICR7cC5iZFRoZW1lKCJyZ2JhKDE1MCwgMTUwLCAxNTAsIDAuMDgpIiwicmdiYSgxMDAsIDEwMCwgMTAwLCAwLjA4KSIpfTsKICAgICAgfQoKICAgICAgLyogVGV4dCBWYWx1ZSBTdHlsZXMgKi8KICAgICAgLnRleHQtdmFsdWUgewogICAgICAgIGZvbnQtc2l6ZTogdmFyKC0tdmFsdWUtZm9udC1zaXplKTsKICAgICAgICBmb250LXdlaWdodDogNjAwOwogICAgICAgIGNvbG9yOiAke3AuYmRUaGVtZSgiaHNsKDIxNS4zIDI1JSA4LjglKSIsImhzbCgyMTAgNDAlIDk4JSkiKX07CiAgICAgICAgbGluZS1oZWlnaHQ6IDEuMTsKICAgICAgICBsZXR0ZXItc3BhY2luZzogLTAuMDI1ZW07CiAgICAgIH0KCiAgICAgIC8qIENvbnRleHQgTWVudSAqLwogICAgICBkZWVzLWNvbnRleHRtZW51IHsKICAgICAgICBwb3NpdGlvbjogZml4ZWQ7CiAgICAgICAgei1pbmRleDogMTAwMDsKICAgICAgfQogICAgYF07Y29uc3RydWN0b3IoKXtzdXBlcigpLHVhKHRoaXMsQSl9cmVuZGVyKCl7cmV0dXJuIHdgCiAgICAgICR7dGhpcy5ncmlkQWN0aW9ucy5sZW5ndGg+MD93YAogICAgICAgIDxkaXYgY2xhc3M9ImdyaWQtaGVhZGVyIj4KICAgICAgICAgIDxkaXYgY2xhc3M9ImdyaWQtdGl0bGUiPjwvZGl2PgogICAgICAgICAgPGRpdiBjbGFzcz0iZ3JpZC1hY3Rpb25zIj4KICAgICAgICAgICAgJHt0aGlzLmdyaWRBY3Rpb25zLm1hcChDPT53YAogICAgICAgICAgICAgIDxkZWVzLWJ1dHRvbiAKICAgICAgICAgICAgICAgIEBjbGlja2VkPSR7KCk9PnRoaXMuaGFuZGxlR3JpZEFjdGlvbihDKX0KICAgICAgICAgICAgICAgIHR5cGU9Im91dGxpbmUiCiAgICAgICAgICAgICAgICBzaXplPSJzbSIKICAgICAgICAgICAgICA+CiAgICAgICAgICAgICAgICAke0MuaWNvbk5hbWU/d2A8ZGVlcy1pY29uIC5pY29uPSR7Qy5pY29uTmFtZX0gc2l6ZT0ic21hbGwiPjwvZGVlcy1pY29uPmA6IiJ9CiAgICAgICAgICAgICAgICAke0MubmFtZX0KICAgICAgICAgICAgICA8L2RlZXMtYnV0dG9uPgogICAgICAgICAgICBgKX0KICAgICAgICAgIDwvZGl2PgogICAgICAgIDwvZGl2PgogICAgICBgOiIifQogICAgICAKICAgICAgPGRpdiBjbGFzcz0ic3RhdHMtZ3JpZCIgc3R5bGU9ImdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KGF1dG8tZml0LCBtaW5tYXgoJHt0aGlzLm1pblRpbGVXaWR0aH1weCwgMWZyKSk7IGdhcDogJHt0aGlzLmdhcH1weDsiPgogICAgICAgICR7dGhpcy50aWxlcy5tYXAoQz0+dGhpcy5yZW5kZXJUaWxlKEMpKX0KICAgICAgPC9kaXY+CgogICAgICAke3RoaXMuY29udGV4dE1lbnVWaXNpYmxlP3dgCiAgICAgICAgPGRlZXMtY29udGV4dG1lbnUKICAgICAgICAgIC54PSR7dGhpcy5jb250ZXh0TWVudVBvc2l0aW9uLnh9CiAgICAgICAgICAueT0ke3RoaXMuY29udGV4dE1lbnVQb3NpdGlvbi55fQogICAgICAgICAgLm1lbnVJdGVtcz0ke3RoaXMuY29udGV4dE1lbnVBY3Rpb25zfQogICAgICAgICAgQGNsaWNrZWQ9JHsoKT0+dGhpcy5jb250ZXh0TWVudVZpc2libGU9ITF9CiAgICAgICAgPjwvZGVlcy1jb250ZXh0bWVudT4KICAgICAgYDoiIn0KICAgIGB9cmVuZGVyVGlsZShDKXtsZXQgej1DLmFjdGlvbnMmJkMuYWN0aW9ucy5sZW5ndGg+MCxFPXomJkMuYWN0aW9ucy5sZW5ndGg9PT0xLFQ9Qy5jb2x1bW5TcGFuJiZDLmNvbHVtblNwYW4+MT9DLmNvbHVtblNwYW46dm9pZCAwO3JldHVybiB3YAogICAgICA8ZGl2CiAgICAgICAgY2xhc3M9InN0YXRzLXRpbGUgJHtFPyJjbGlja2FibGUiOiIifSIKICAgICAgICBzdHlsZT0iJHtUP2BncmlkLWNvbHVtbjogc3BhbiAke1R9YDoiIn0iCiAgICAgICAgQGNsaWNrPSR7RT8oKT0+dGhpcy5oYW5kbGVUaWxlQWN0aW9uKEMuYWN0aW9uc1swXSxDKTp2b2lkIDB9CiAgICAgICAgQGNvbnRleHRtZW51PSR7ej8kPT50aGlzLnNob3dDb250ZXh0TWVudSgkLEMpOnZvaWQgMH0KICAgICAgPgogICAgICAgIDxkaXYgY2xhc3M9InRpbGUtaGVhZGVyIj4KICAgICAgICAgIDxoMyBjbGFzcz0idGlsZS10aXRsZSI+JHtDLnRpdGxlfTwvaDM+CiAgICAgICAgICAke0MuaWNvbj93YAogICAgICAgICAgICA8ZGVlcy1pY29uIGNsYXNzPSJ0aWxlLWljb24iIC5pY29uPSR7Qy5pY29ufSBzaXplPSJzbWFsbCI+PC9kZWVzLWljb24+CiAgICAgICAgICBgOiIifQogICAgICAgIDwvZGl2PgogICAgICAgIAogICAgICAgIDxkaXYgY2xhc3M9InRpbGUtY29udGVudCI+CiAgICAgICAgICAke3RoaXMucmVuZGVyVGlsZUNvbnRlbnQoQyl9CiAgICAgICAgPC9kaXY+CiAgICAgICAgCiAgICAgICAgJHtDLmRlc2NyaXB0aW9uJiZDLnR5cGUhPT0idHJlbmQiP3dgCiAgICAgICAgICA8ZGl2IGNsYXNzPSJ0aWxlLWRlc2NyaXB0aW9uIj4ke0MuZGVzY3JpcHRpb259PC9kaXY+CiAgICAgICAgYDoiIn0KICAgICAgPC9kaXY+CiAgICBgfXJlbmRlclRpbGVDb250ZW50KEMpe3N3aXRjaChDLnR5cGUpe2Nhc2UibnVtYmVyIjpyZXR1cm4gd2AKICAgICAgICAgIDxkaXYgY2xhc3M9InRpbGUtdmFsdWUiIHN0eWxlPSIke0MuY29sb3I/YGNvbG9yOiAke0MuY29sb3J9YDoiIn0iPgogICAgICAgICAgICA8c3Bhbj4ke0MudmFsdWV9PC9zcGFuPgogICAgICAgICAgICAke0MudW5pdD93YDxzcGFuIGNsYXNzPSJ0aWxlLXVuaXQiPiR7Qy51bml0fTwvc3Bhbj5gOiIifQogICAgICAgICAgPC9kaXY+CiAgICAgICAgYDtjYXNlImdhdWdlIjpyZXR1cm4gdGhpcy5yZW5kZXJHYXVnZShDKTtjYXNlInBlcmNlbnRhZ2UiOnJldHVybiB0aGlzLnJlbmRlclBlcmNlbnRhZ2UoQyk7Y2FzZSJ0cmVuZCI6cmV0dXJuIHRoaXMucmVuZGVyVHJlbmQoQyk7Y2FzZSJtdWx0aVBlcmNlbnRhZ2UiOnJldHVybiB0aGlzLnJlbmRlck11bHRpUGVyY2VudGFnZShDKTtjYXNlImNwdUNvcmVzIjpyZXR1cm4gdGhpcy5yZW5kZXJDcHVDb3JlcyhDKTtjYXNlInBhcnRpdGlvbiI6cmV0dXJuIHRoaXMucmVuZGVyUGFydGl0aW9uKEMpO2Nhc2UiZGlzayI6cmV0dXJuIHRoaXMucmVuZGVyRGlzayhDKTtjYXNlInRleHQiOnJldHVybiB3YAogICAgICAgICAgPGRpdiBjbGFzcz0idGV4dC12YWx1ZSIgc3R5bGU9IiR7Qy5jb2xvcj9gY29sb3I6ICR7Qy5jb2xvcn1gOiIifSI+CiAgICAgICAgICAgICR7Qy52YWx1ZX0KICAgICAgICAgIDwvZGl2PgogICAgICAgIGA7ZGVmYXVsdDpyZXR1cm4gd2A8ZGl2IGNsYXNzPSJ0aWxlLXZhbHVlIj4ke0MudmFsdWV9PC9kaXY+YH19cmVuZGVyR2F1Z2UoQyl7bGV0IHo9dHlwZW9mIEMudmFsdWU9PSJudW1iZXIiP0MudmFsdWU6cGFyc2VGbG9hdChDLnZhbHVlKSxFPUMuZ2F1Z2VPcHRpb25zfHx7bWluOjAsbWF4OjEwMH0sVD0oei1FLm1pbikvKEUubWF4LUUubWluKSoxMDAsJD0xMjAsVj03MCxVPTYvMisyLHJlPTQwLGo9JC8yLG1lPVYtVSx3ZT1qLXJlLEg9bWUsY2U9aityZSxXPWBNICR7d2V9ICR7SH0gQSAke3JlfSAke3JlfSAwIDAgMSAke2NlfSAke21lfWAsRD1NYXRoLlBJKnJlLE89RC1EKlQvMTAwLFo9Qy5jb2xvcnx8cC5iZFRoZW1lKCJoc2woMjE1LjMgMjUlIDI4LjglKSIsImhzbCgyMTAgNDAlIDc4JSkiKTtpZihFLnRocmVzaG9sZHMpe2xldCBZPVsuLi5FLnRocmVzaG9sZHNdLnNvcnQoKG9lLGdlKT0+Z2UudmFsdWUtb2UudmFsdWUpO2ZvcihsZXQgb2Ugb2YgWSlpZih6Pj1vZS52YWx1ZSl7Wj1vZS5jb2xvcjticmVha319cmV0dXJuIHdgCiAgICAgIDxkaXYgY2xhc3M9ImdhdWdlLXdyYXBwZXIiPgogICAgICAgIDxkaXYgY2xhc3M9ImdhdWdlLWNvbnRhaW5lciI+CiAgICAgICAgICA8c3ZnIGNsYXNzPSJnYXVnZS1zdmciIHZpZXdCb3g9IjAgMCAkeyR9ICR7Vn0iIHByZXNlcnZlQXNwZWN0UmF0aW89InhNaWRZTWlkIG1lZXQiPgogICAgICAgICAgICA8IS0tIEJhY2tncm91bmQgYXJjIC0tPgogICAgICAgICAgICA8cGF0aAogICAgICAgICAgICAgIGNsYXNzPSJnYXVnZS1iYWNrZ3JvdW5kIgogICAgICAgICAgICAgIGQ9IiR7V30iCiAgICAgICAgICAgIC8+CiAgICAgICAgICAgIDwhLS0gRmlsbGVkIGFyYyAtLT4KICAgICAgICAgICAgPHBhdGgKICAgICAgICAgICAgICBjbGFzcz0iZ2F1Z2UtZmlsbCIKICAgICAgICAgICAgICBkPSIke1d9IgogICAgICAgICAgICAgIHN0cm9rZT0iJHtafSIKICAgICAgICAgICAgICBzdHJva2UtZGFzaGFycmF5PSIke0R9IgogICAgICAgICAgICAgIHN0cm9rZS1kYXNob2Zmc2V0PSIke099IgogICAgICAgICAgICAvPgogICAgICAgICAgICA8IS0tIFZhbHVlIHRleHQgLS0+CiAgICAgICAgICAgIDx0ZXh0IGNsYXNzPSJnYXVnZS10ZXh0IiB4PSIke2p9IiB5PSIke21lLTh9IiBkb21pbmFudC1iYXNlbGluZT0ibWlkZGxlIj4KICAgICAgICAgICAgICA8dHNwYW4+JHt6fTwvdHNwYW4+JHtDLnVuaXQ/d2A8dHNwYW4gY2xhc3M9ImdhdWdlLXVuaXQiIGR4PSIyIiBkeT0iMCI+JHtDLnVuaXR9PC90c3Bhbj5gOiIifQogICAgICAgICAgICA8L3RleHQ+CiAgICAgICAgICA8L3N2Zz4KICAgICAgICA8L2Rpdj4KICAgICAgPC9kaXY+CiAgICBgfXJlbmRlclBlcmNlbnRhZ2UoQyl7bGV0IHo9dHlwZW9mIEMudmFsdWU9PSJudW1iZXIiP0MudmFsdWU6cGFyc2VGbG9hdChDLnZhbHVlKSxFPU1hdGgubWluKDEwMCxNYXRoLm1heCgwLHopKTtyZXR1cm4gd2AKICAgICAgPGRpdiBjbGFzcz0icGVyY2VudGFnZS13cmFwcGVyIj4KICAgICAgICA8ZGl2IGNsYXNzPSJwZXJjZW50YWdlLXZhbHVlIj4ke0V9JTwvZGl2PgogICAgICAgIDxkaXYgY2xhc3M9InBlcmNlbnRhZ2UtYmFyIj4KICAgICAgICAgIDxkaXYgCiAgICAgICAgICAgIGNsYXNzPSJwZXJjZW50YWdlLWZpbGwiIAogICAgICAgICAgICBzdHlsZT0id2lkdGg6ICR7RX0lOyAke0MuY29sb3I/YGJhY2tncm91bmQ6ICR7Qy5jb2xvcn1gOiIifSIKICAgICAgICAgID48L2Rpdj4KICAgICAgICA8L2Rpdj4KICAgICAgPC9kaXY+CiAgICBgfXJlbmRlclRyZW5kKEMpe2lmKCFDLnRyZW5kRGF0YXx8Qy50cmVuZERhdGEubGVuZ3RoPDIpcmV0dXJuIHdgPGRpdiBjbGFzcz0idGlsZS12YWx1ZSI+JHtDLnZhbHVlfTwvZGl2PmA7bGV0IHo9Qy50cmVuZERhdGEsRT1NYXRoLm1heCguLi56KSxUPU1hdGgubWluKC4uLnopLCQ9RS1UfHwxLFY9MzAwLFI9MzIsVT0yLHJlPXoubWFwKChtZSx3ZSk9PntsZXQgSD13ZS8oei5sZW5ndGgtMSkqVixjZT1VKyhSLTIqVSktKG1lLVQpLyQqKFItMipVKTtyZXR1cm5gJHtIfSwke2NlfWB9KS5qb2luKCIgIiksaj1gMCwke1J9ICR7cmV9ICR7Vn0sJHtSfWA7cmV0dXJuIHdgCiAgICAgIDxkaXYgY2xhc3M9InRyZW5kLWNvbnRhaW5lciI+CiAgICAgICAgPGRpdiBjbGFzcz0idHJlbmQtaGVhZGVyIj4KICAgICAgICAgIDxzcGFuIGNsYXNzPSJ0cmVuZC12YWx1ZSI+JHtDLnZhbHVlfTwvc3Bhbj4KICAgICAgICAgICR7Qy51bml0P3dgPHNwYW4gY2xhc3M9InRyZW5kLXVuaXQiPiR7Qy51bml0fTwvc3Bhbj5gOiIifQogICAgICAgICAgJHtDLmRlc2NyaXB0aW9uP3dgPHNwYW4gY2xhc3M9InRyZW5kLWxhYmVsIj4ke0MuZGVzY3JpcHRpb259PC9zcGFuPmA6IiJ9CiAgICAgICAgPC9kaXY+CiAgICAgICAgPGRpdiBjbGFzcz0idHJlbmQtZ3JhcGgiPgogICAgICAgICAgPHN2ZyBjbGFzcz0idHJlbmQtc3ZnIiB2aWV3Qm94PSIwIDAgJHtWfSAke1J9IiBwcmVzZXJ2ZUFzcGVjdFJhdGlvPSJub25lIj4KICAgICAgICAgICAgPHBvbHlnb24gY2xhc3M9InRyZW5kLWFyZWEiIHBvaW50cz0iJHtqfSIgLz4KICAgICAgICAgICAgPHBvbHlsaW5lIGNsYXNzPSJ0cmVuZC1saW5lIiBwb2ludHM9IiR7cmV9IiAvPgogICAgICAgICAgPC9zdmc+CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGl2PgogICAgYH1yZW5kZXJNdWx0aVBlcmNlbnRhZ2UoQyl7aWYoIUMucGVyY2VudGFnZXN8fEMucGVyY2VudGFnZXMubGVuZ3RoPT09MClyZXR1cm4gd2A8ZGl2IGNsYXNzPSJ0aWxlLXZhbHVlIj4ke0MudmFsdWV9PC9kaXY+YDtsZXQgej1DLnBlcmNlbnRhZ2VzLnNsaWNlKDAsMyk7cmV0dXJuIHdgCiAgICAgIDxkaXYgY2xhc3M9Im11bHRpLXBlcmNlbnRhZ2Utd3JhcHBlciI+CiAgICAgICAgPGRpdiBjbGFzcz0ibXVsdGktcGVyY2VudGFnZS1pdGVtcyI+CiAgICAgICAgICAke3oubWFwKEU9PntsZXQgVD1NYXRoLm1pbigxMDAsTWF0aC5tYXgoMCxFLnZhbHVlKSk7cmV0dXJuIHdgCiAgICAgICAgICAgICAgPGRpdiBjbGFzcz0ibXVsdGktcGVyY2VudGFnZS1pdGVtIj4KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9Im11bHRpLXBlcmNlbnRhZ2UtaGVhZGVyIj4KICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9Im11bHRpLXBlcmNlbnRhZ2UtbGFiZWwiPiR7RS5sYWJlbH08L3NwYW4+CiAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJtdWx0aS1wZXJjZW50YWdlLXZhbHVlIj4ke1R9JTwvc3Bhbj4KICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0ibXVsdGktcGVyY2VudGFnZS1iYXIiPgogICAgICAgICAgICAgICAgICA8ZGl2CiAgICAgICAgICAgICAgICAgICAgY2xhc3M9Im11bHRpLXBlcmNlbnRhZ2UtZmlsbCIKICAgICAgICAgICAgICAgICAgICBzdHlsZT0id2lkdGg6ICR7VH0lOyAke0UuY29sb3I/YGJhY2tncm91bmQ6ICR7RS5jb2xvcn1gOiIifSIKICAgICAgICAgICAgICAgICAgPjwvZGl2PgogICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIGB9KX0KICAgICAgICA8L2Rpdj4KICAgICAgPC9kaXY+CiAgICBgfXJlbmRlckNwdUNvcmVzKEMpe2lmKCFDLmNvcmVzRGF0YXx8Qy5jb3Jlc0RhdGEubGVuZ3RoPT09MClyZXR1cm4gd2A8ZGl2IGNsYXNzPSJ0aWxlLXZhbHVlIj4ke0MudmFsdWV9PC9kaXY+YDtsZXQgej1DLmNvcmVzRGF0YSxFPU1hdGgucm91bmQoei5yZWR1Y2UoKHJlLGopPT5yZStqLnVzYWdlLDApL3oubGVuZ3RoKSxUPXJlPT5yZTw1MD8ibG93IjpyZTw4MD8ibWVkaXVtIjoiaGlnaCIsJD16Lmxlbmd0aCoyNCsoei5sZW5ndGgtMSkqMyxWPUMuY29sdW1uU3Bhbnx8MSxSPXRoaXMubWluVGlsZVdpZHRoKlYrKFYtMSkqdGhpcy5nYXAtMzIsVT0kPFIqLjY2NjtyZXR1cm4gd2AKICAgICAgPGRpdiBjbGFzcz0iY3B1LWNvcmVzLXdyYXBwZXIiPgogICAgICAgIDxkaXYgY2xhc3M9ImNwdS1jb3Jlcy1oZWFkZXIiPgogICAgICAgICAgPHNwYW4gY2xhc3M9ImNwdS1jb3Jlcy12YWx1ZSI+JHtFfTwvc3Bhbj4KICAgICAgICAgIDxzcGFuIGNsYXNzPSJjcHUtY29yZXMtdW5pdCI+JTwvc3Bhbj4KICAgICAgICAgIDxzcGFuIGNsYXNzPSJjcHUtY29yZXMtbGFiZWwiPiR7ei5sZW5ndGh9IGNvcmVzPC9zcGFuPgogICAgICAgIDwvZGl2PgogICAgICAgIDxkaXYgY2xhc3M9ImNwdS1jb3Jlcy1iYXJzICR7VT8iY2VudGVyZWQiOiIifSI+CiAgICAgICAgICAke3oubWFwKHJlPT57bGV0IGo9TWF0aC5taW4oMTAwLE1hdGgubWF4KDAscmUudXNhZ2UpKSxtZT1UKGopO3JldHVybiB3YAogICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNwdS1jb3JlLWJhci1jb250YWluZXIiIHRpdGxlPSJDb3JlICR7cmUubGFiZWx8fHJlLmlkfTogJHtqfSUiPgogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iY3B1LWNvcmUtYmFyLXdyYXBwZXIiPgogICAgICAgICAgICAgICAgICA8ZGl2CiAgICAgICAgICAgICAgICAgICAgY2xhc3M9ImNwdS1jb3JlLWJhci1maWxsICR7bWV9IgogICAgICAgICAgICAgICAgICAgIHN0eWxlPSJoZWlnaHQ6ICR7an0lIgogICAgICAgICAgICAgICAgICA+PC9kaXY+CiAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICR7ei5sZW5ndGg8PTE2P3dgCiAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJjcHUtY29yZS1sYWJlbCI+JHtyZS5sYWJlbHx8cmUuaWR9PC9zcGFuPgogICAgICAgICAgICAgICAgYDoiIn0KICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgYH0pfQogICAgICAgIDwvZGl2PgogICAgICA8L2Rpdj4KICAgIGB9Zm9ybWF0Qnl0ZXMoQyl7aWYoQz09PTApcmV0dXJuIjAgQiI7bGV0IHo9MTAyNCxFPVsiQiIsIktCIiwiTUIiLCJHQiIsIlRCIiwiUEIiXSxUPU1hdGguZmxvb3IoTWF0aC5sb2coQykvTWF0aC5sb2coeikpO3JldHVybiBwYXJzZUZsb2F0KChDL01hdGgucG93KHosVCkpLnRvRml4ZWQoMSkpKyIgIitFW1RdfXJlbmRlclBhcnRpdGlvbihDKXtpZighQy5wYXJ0aXRpb25EYXRhKXJldHVybiB3YDxkaXYgY2xhc3M9InRpbGUtdmFsdWUiPiR7Qy52YWx1ZX08L2Rpdj5gO2xldHt1c2VkOnosdG90YWw6RSxmaWxlc3lzdGVtOlQsbW91bnRQb2ludDokfT1DLnBhcnRpdGlvbkRhdGEsVj1NYXRoLm1pbigxMDAsTWF0aC5tYXgoMCx6L0UqMTAwKSksUj1FLXosVT0oKT0+Vj49OTA/ImNyaXRpY2FsIjpWPj03NT8id2FybmluZyI6IiI7cmV0dXJuIHdgCiAgICAgIDxkaXYgY2xhc3M9InBhcnRpdGlvbi13cmFwcGVyIj4KICAgICAgICA8ZGl2IGNsYXNzPSJwYXJ0aXRpb24taGVhZGVyIj4KICAgICAgICAgIDxzcGFuIGNsYXNzPSJwYXJ0aXRpb24tcGVyY2VudGFnZSI+JHtNYXRoLnJvdW5kKFYpfSU8L3NwYW4+CiAgICAgICAgPC9kaXY+CiAgICAgICAgPGRpdiBjbGFzcz0icGFydGl0aW9uLWJhciI+CiAgICAgICAgICA8ZGl2CiAgICAgICAgICAgIGNsYXNzPSJwYXJ0aXRpb24tYmFyLWZpbGwgJHtVKCl9IgogICAgICAgICAgICBzdHlsZT0id2lkdGg6ICR7Vn0lIgogICAgICAgICAgPjwvZGl2PgogICAgICAgIDwvZGl2PgogICAgICAgIDxkaXYgY2xhc3M9InBhcnRpdGlvbi1zdGF0cyI+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJwYXJ0aXRpb24tc3RhdCI+CiAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJwYXJ0aXRpb24tc3RhdC1sYWJlbCI+VXNlZDwvc3Bhbj4KICAgICAgICAgICAgPHNwYW4gY2xhc3M9InBhcnRpdGlvbi1zdGF0LXZhbHVlIj4ke3RoaXMuZm9ybWF0Qnl0ZXMoeil9PC9zcGFuPgogICAgICAgICAgPC9kaXY+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJwYXJ0aXRpb24tc3RhdCI+CiAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJwYXJ0aXRpb24tc3RhdC1sYWJlbCI+RnJlZTwvc3Bhbj4KICAgICAgICAgICAgPHNwYW4gY2xhc3M9InBhcnRpdGlvbi1zdGF0LXZhbHVlIj4ke3RoaXMuZm9ybWF0Qnl0ZXMoUil9PC9zcGFuPgogICAgICAgICAgPC9kaXY+CiAgICAgICAgPC9kaXY+CiAgICAgICAgPGRpdiBjbGFzcz0icGFydGl0aW9uLW1ldGEiPgogICAgICAgICAgPHNwYW4gY2xhc3M9InBhcnRpdGlvbi1maWxlc3lzdGVtIj4ke1R9PC9zcGFuPgogICAgICAgICAgJHskP3dgPHNwYW4gY2xhc3M9InBhcnRpdGlvbi1tb3VudHBvaW50Ij4keyR9PC9zcGFuPmA6IiJ9CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGl2PgogICAgYH1yZW5kZXJEaXNrKEMpe2lmKCFDLmRpc2tEYXRhKXJldHVybiB3YDxkaXYgY2xhc3M9InRpbGUtdmFsdWUiPiR7Qy52YWx1ZX08L2Rpdj5gO2xldHtjYXBhY2l0eTp6LG1vZGVsOkUsdHlwZTpULGlvcHM6JCxoZWFsdGg6Vn09Qy5kaXNrRGF0YSxSPVU9PlU+PTcwPyJnb29kIjpVPj0zMD8id2FybmluZyI6ImNyaXRpY2FsIjtyZXR1cm4gd2AKICAgICAgPGRpdiBjbGFzcz0iZGlzay13cmFwcGVyIj4KICAgICAgICA8ZGl2IGNsYXNzPSJkaXNrLWNhcGFjaXR5Ij4ke3RoaXMuZm9ybWF0Qnl0ZXMoeil9PC9kaXY+CiAgICAgICAgJHtFfHxUP3dgCiAgICAgICAgICA8ZGl2IGNsYXNzPSJkaXNrLW1vZGVsIj4KICAgICAgICAgICAgJHtFP3dgPHNwYW4+JHtFfTwvc3Bhbj5gOiIifQogICAgICAgICAgICAke1Q/d2A8c3BhbiBjbGFzcz0iZGlzay10eXBlLWJhZGdlIj4ke1R9PC9zcGFuPmA6IiJ9CiAgICAgICAgICA8L2Rpdj4KICAgICAgICBgOiIifQogICAgICAgIDxkaXYgY2xhc3M9ImRpc2stbWV0cmljcyI+CiAgICAgICAgICAkeyQ/d2AKICAgICAgICAgICAgPGRpdiBjbGFzcz0iZGlzay1pb3BzIj4KICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJkaXNrLWlvcHMtaXRlbSI+CiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZGlzay1pb3BzLWxhYmVsIj5SZWFkPC9zcGFuPgogICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImRpc2staW9wcy12YWx1ZSI+JHskLnJlYWQudG9Mb2NhbGVTdHJpbmcoKX08L3NwYW4+CiAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iZGlzay1pb3BzLWl0ZW0iPgogICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImRpc2staW9wcy1sYWJlbCI+V3JpdGU8L3NwYW4+CiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZGlzay1pb3BzLXZhbHVlIj4keyQud3JpdGUudG9Mb2NhbGVTdHJpbmcoKX08L3NwYW4+CiAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgYDoiIn0KICAgICAgICAgICR7ViE9PXZvaWQgMD93YAogICAgICAgICAgICA8ZGl2IGNsYXNzPSJkaXNrLWhlYWx0aCI+CiAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iZGlzay1oZWFsdGgtaGVhZGVyIj4KICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJkaXNrLWhlYWx0aC1sYWJlbCI+SGVhbHRoPC9zcGFuPgogICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImRpc2staGVhbHRoLXZhbHVlIj4ke1Z9JTwvc3Bhbj4KICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJkaXNrLWhlYWx0aC1iYXIiPgogICAgICAgICAgICAgICAgPGRpdgogICAgICAgICAgICAgICAgICBjbGFzcz0iZGlzay1oZWFsdGgtZmlsbCAke1IoVil9IgogICAgICAgICAgICAgICAgICBzdHlsZT0id2lkdGg6ICR7Vn0lIgogICAgICAgICAgICAgICAgPjwvZGl2PgogICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIGA6IiJ9CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGl2PgogICAgYH1hc3luYyBoYW5kbGVHcmlkQWN0aW9uKEMpe0MuYWN0aW9uJiZhd2FpdCBDLmFjdGlvbigpfWFzeW5jIGhhbmRsZVRpbGVBY3Rpb24oQyx6KXtDLmFjdGlvbiYmYXdhaXQgQy5hY3Rpb24oKX1zaG93Q29udGV4dE1lbnUoQyx6KXtpZighei5hY3Rpb25zfHx6LmFjdGlvbnMubGVuZ3RoPT09MClyZXR1cm47Qy5wcmV2ZW50RGVmYXVsdCgpLHRoaXMuY29udGV4dE1lbnVQb3NpdGlvbj17eDpDLmNsaWVudFgseTpDLmNsaWVudFl9LHRoaXMuY29udGV4dE1lbnVBY3Rpb25zPXouYWN0aW9ucyx0aGlzLmNvbnRleHRNZW51VmlzaWJsZT0hMDtsZXQgRT0oKT0+e3RoaXMuY29udGV4dE1lbnVWaXNpYmxlPSExLGRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoImNsaWNrIixFKX07c2V0VGltZW91dCgoKT0+e2RvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIixFKX0sMTAwKX1zdGF0aWN7dWEoaSxhKX19O3JldHVybiBxPWl9KSgpfSk7dmFyIHQ0LFZyLHcxMixNMTIsejEyLGsxMixLdXQsUXV0PWIoKCk9Pnt1ZSgpO3gxKCk7WHgoKTt0ND1mdW5jdGlvbih0LGUsYSxpLHIscyl7ZnVuY3Rpb24gbih4KXtpZih4IT09dm9pZCAwJiZ0eXBlb2YgeCE9ImZ1bmN0aW9uIil0aHJvdyBuZXcgVHlwZUVycm9yKCJGdW5jdGlvbiBleHBlY3RlZCIpO3JldHVybiB4fWZvcih2YXIgbz1pLmtpbmQsZD1vPT09ImdldHRlciI/ImdldCI6bz09PSJzZXR0ZXIiPyJzZXQiOiJ2YWx1ZSIsYz0hZSYmdD9pLnN0YXRpYz90OnQucHJvdG90eXBlOm51bGwsaD1lfHwoYz9PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGMsaS5uYW1lKTp7fSksbCxmPSExLGc9YS5sZW5ndGgtMTtnPj0wO2ctLSl7dmFyIHk9e307Zm9yKHZhciB2IGluIGkpeVt2XT12PT09ImFjY2VzcyI/e306aVt2XTtmb3IodmFyIHYgaW4gaS5hY2Nlc3MpeS5hY2Nlc3Nbdl09aS5hY2Nlc3Nbdl07eS5hZGRJbml0aWFsaXplcj1mdW5jdGlvbih4KXtpZihmKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBhZGQgaW5pdGlhbGl6ZXJzIGFmdGVyIGRlY29yYXRpb24gaGFzIGNvbXBsZXRlZCIpO3MucHVzaChuKHh8fG51bGwpKX07dmFyIG09KDAsYVtnXSkobz09PSJhY2Nlc3NvciI/e2dldDpoLmdldCxzZXQ6aC5zZXR9OmhbZF0seSk7aWYobz09PSJhY2Nlc3NvciIpe2lmKG09PT12b2lkIDApY29udGludWU7aWYobT09PW51bGx8fHR5cGVvZiBtIT0ib2JqZWN0Iil0aHJvdyBuZXcgVHlwZUVycm9yKCJPYmplY3QgZXhwZWN0ZWQiKTsobD1uKG0uZ2V0KSkmJihoLmdldD1sKSwobD1uKG0uc2V0KSkmJihoLnNldD1sKSwobD1uKG0uaW5pdCkpJiZyLnVuc2hpZnQobCl9ZWxzZShsPW4obSkpJiYobz09PSJmaWVsZCI/ci51bnNoaWZ0KGwpOmhbZF09bCl9YyYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGMsaS5uYW1lLGgpLGY9ITB9LFZyPWZ1bmN0aW9uKHQsZSxhKXtmb3IodmFyIGk9YXJndW1lbnRzLmxlbmd0aD4yLHI9MDtyPGUubGVuZ3RoO3IrKylhPWk/ZVtyXS5jYWxsKHQsYSk6ZVtyXS5jYWxsKHQpO3JldHVybiBpP2E6dm9pZCAwfSx3MTI9KCgpPT57bGV0IHQ9W3BlKCJkZW1vLWRhc2hib2FyZC12aWV3IildLGUsYT1bXSxpLHI9eGUscyxuPVtdLG89W107dmFyIGQ9Y2xhc3MgZXh0ZW5kcyBye3N0YXRpY3tpPXRoaXN9c3RhdGlje2xldCBjPXR5cGVvZiBTeW1ib2w9PSJmdW5jdGlvbiImJlN5bWJvbC5tZXRhZGF0YT9PYmplY3QuY3JlYXRlKHJbU3ltYm9sLm1ldGFkYXRhXT8/bnVsbCk6dm9pZCAwO3M9W0ooKV0sdDQodGhpcyxudWxsLHMse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJhY3RpdmF0ZWQiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmg9PiJhY3RpdmF0ZWQiaW4gaCxnZXQ6aD0+aC5hY3RpdmF0ZWQsc2V0OihoLGwpPT57aC5hY3RpdmF0ZWQ9bH19LG1ldGFkYXRhOmN9LG4sbyksdDQobnVsbCxlPXt2YWx1ZTppfSx0LHtraW5kOiJjbGFzcyIsbmFtZTppLm5hbWUsbWV0YWRhdGE6Y30sbnVsbCxhKSxkPWk9ZS52YWx1ZSxjJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoaSxTeW1ib2wubWV0YWRhdGEse2VudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwLHZhbHVlOmN9KSxWcihpLGEpfSNlPVZyKHRoaXMsbiwhMSk7Z2V0IGFjdGl2YXRlZCgpe3JldHVybiB0aGlzLiNlfXNldCBhY3RpdmF0ZWQoYyl7dGhpcy4jZT1jfWN0eD1Wcih0aGlzLG8pO3N0YXRzVGlsZXM9W3tpZDoidXNlcnMiLHRpdGxlOiJBY3RpdmUgVXNlcnMiLHZhbHVlOjEyMzQsdHlwZToibnVtYmVyIixpY29uOiJsdWNpZGU6dXNlcnMiLGRlc2NyaXB0aW9uOiJPbmxpbmUgbm93Iixjb2xvcjoiIzIyYzU1ZSJ9LHtpZDoiYXBpLWNhbGxzIix0aXRsZToiQVBJIENhbGxzIix2YWx1ZTo0NTIwMCx0eXBlOiJ0cmVuZCIsaWNvbjoibHVjaWRlOmFjdGl2aXR5IixkZXNjcmlwdGlvbjoiKzEyJSBmcm9tIGxhc3QgaG91ciIsY29sb3I6IiMzYjgyZjYiLHRyZW5kRGF0YTpbMzJlMywzNWUzLDM4ZTMsNDFlMywzOWUzLDQyZTMsNDUyMDBdfSx7aWQ6ImhlYWx0aCIsdGl0bGU6IlN5c3RlbSBIZWFsdGgiLHZhbHVlOjk5LjksdW5pdDoiJSIsdHlwZToiZ2F1Z2UiLGljb246Imx1Y2lkZTpoZWFydC1wdWxzZSIsZGVzY3JpcHRpb246IkFsbCBzeXN0ZW1zIG9wZXJhdGlvbmFsIixjb2xvcjoiIzEwYjk4MSIsZ2F1Z2VPcHRpb25zOnttaW46MCxtYXg6MTAwLHRocmVzaG9sZHM6W3t2YWx1ZTo4MCxjb2xvcjoiI2VmNDQ0NCJ9LHt2YWx1ZTo5NSxjb2xvcjoiI2Y1OWUwYiJ9LHt2YWx1ZToxMDAsY29sb3I6IiMxMGI5ODEifV19fSx7aWQ6InJlc3BvbnNlIix0aXRsZToiQXZnIFJlc3BvbnNlIix2YWx1ZToxMjcsdW5pdDoibXMiLHR5cGU6Im51bWJlciIsaWNvbjoibHVjaWRlOnRpbWVyIixkZXNjcmlwdGlvbjoiLTE1bXMgZnJvbSB5ZXN0ZXJkYXkiLGNvbG9yOiIjOGI1Y2Y2In0se2lkOiJyZXNvdXJjZXMiLHRpdGxlOiJSZXNvdXJjZSBVc2FnZSIsdmFsdWU6IiIsdHlwZToibXVsdGlQZXJjZW50YWdlIixpY29uOiJsdWNpZGU6c2VydmVyIixwZXJjZW50YWdlczpbe2xhYmVsOiJDUFUiLHZhbHVlOjY3LGNvbG9yOiIjM2I4MmY2In0se2xhYmVsOiJNZW1vcnkiLHZhbHVlOjg0LGNvbG9yOiIjOGI1Y2Y2In0se2xhYmVsOiJEaXNrIix2YWx1ZTo0NSxjb2xvcjoiIzEwYjk4MSJ9XX0se2lkOiJyZXF1ZXN0cyIsdGl0bGU6IlJlcXVlc3RzL3NlYyIsdmFsdWU6MTg1MCx0eXBlOiJ0cmVuZCIsaWNvbjoibHVjaWRlOnphcCIsZGVzY3JpcHRpb246IkN1cnJlbnQgdGhyb3VnaHB1dCIsY29sb3I6IiMwNmI2ZDQiLHRyZW5kRGF0YTpbMTIwMCwxNDAwLDEzNTAsMTYwMCwxNzUwLDE2ODAsMTg1MF19XTtvbkFjdGl2YXRlKGMpe3RoaXMuY3R4PWMsdGhpcy5hY3RpdmF0ZWQ9ITAsY29uc29sZS5sb2coIkRhc2hib2FyZCBhY3RpdmF0ZWQgd2l0aCBjb250ZXh0OiIsYyksYy5hcHB1aS5zZXRTZWNvbmRhcnlNZW51KHtoZWFkaW5nOiJEYXNoYm9hcmQiLGdyb3Vwczpbe25hbWU6IlF1aWNrIEFjY2VzcyIsaWNvbk5hbWU6Imx1Y2lkZTp6YXAiLGl0ZW1zOlt7a2V5OiJPdmVydmlldyIsaWNvbk5hbWU6ImxheW91dERhc2hib2FyZCIsYWN0aW9uOigpPT5jb25zb2xlLmxvZygiT3ZlcnZpZXciKX0se2tleToiUmVjZW50IixpY29uTmFtZToiY2xvY2siLGJhZGdlOjUsYWN0aW9uOigpPT5jb25zb2xlLmxvZygiUmVjZW50Iil9LHt0eXBlOiJkaXZpZGVyIn0se3R5cGU6ImFjdGlvbiIsa2V5OiJSZWZyZXNoIERhdGEiLGljb25OYW1lOiJsdWNpZGU6cmVmcmVzaEN3IixhY3Rpb246KCk9PmFsZXJ0KCJSZWZyZXNoaW5nIGRhc2hib2FyZCBkYXRhLi4uIil9XX0se25hbWU6IkZpbHRlcnMiLGljb25OYW1lOiJsdWNpZGU6ZmlsdGVyIixpdGVtczpbe3R5cGU6ImhlYWRlciIsbGFiZWw6IlRpbWUgUmFuZ2UifSx7dHlwZToiZmlsdGVyIixrZXk6IkxpdmUgVXBkYXRlcyIsaWNvbk5hbWU6Imx1Y2lkZTpyYWRpbyIsYWN0aXZlOiEwLG9uVG9nZ2xlOmg9PmNvbnNvbGUubG9nKCJMaXZlIHVwZGF0ZXM6IixoKX0se3R5cGU6ImZpbHRlciIsa2V5OiJTaG93IEFyY2hpdmVkIixpY29uTmFtZToibHVjaWRlOmFyY2hpdmUiLGFjdGl2ZTohMSxvblRvZ2dsZTpoPT5jb25zb2xlLmxvZygiU2hvdyBhcmNoaXZlZDoiLGgpfSx7dHlwZToiZGl2aWRlciJ9LHt0eXBlOiJtdWx0aUZpbHRlciIsa2V5OiJEYXRhIFNvdXJjZXMiLGljb25OYW1lOiJsdWNpZGU6ZGF0YWJhc2UiLG9wdGlvbnM6W3trZXk6ImFwaSIsbGFiZWw6IkFQSSBTZXJ2ZXIiLGNoZWNrZWQ6ITAsaWNvbk5hbWU6Imx1Y2lkZTpzZXJ2ZXIifSx7a2V5OiJ3ZWIiLGxhYmVsOiJXZWIgVHJhZmZpYyIsY2hlY2tlZDohMCxpY29uTmFtZToibHVjaWRlOmdsb2JlIn0se2tleToibW9iaWxlIixsYWJlbDoiTW9iaWxlIEFwcCIsY2hlY2tlZDohMSxpY29uTmFtZToibHVjaWRlOnNtYXJ0cGhvbmUifV0sb25DaGFuZ2U6aD0+Y29uc29sZS5sb2coIkRhdGEgc291cmNlczoiLGgpfV19LHtuYW1lOiJBbmFseXRpY3MiLGljb25OYW1lOiJsdWNpZGU6YmFyQ2hhcnQzIixpdGVtczpbe2tleToiTWV0cmljcyIsaWNvbk5hbWU6ImFjdGl2aXR5IixhY3Rpb246KCk9PmNvbnNvbGUubG9nKCJNZXRyaWNzIil9LHtrZXk6IlJlcG9ydHMiLGljb25OYW1lOiJmaWxlVGV4dCIsYmFkZ2U6Im5ldyIsYmFkZ2VWYXJpYW50OiJzdWNjZXNzIixhY3Rpb246KCk9PmNvbnNvbGUubG9nKCJSZXBvcnRzIil9LHt0eXBlOiJkaXZpZGVyIn0se3R5cGU6ImxpbmsiLGtleToiQW5hbHl0aWNzIERvY3MiLGljb25OYW1lOiJsdWNpZGU6ZXh0ZXJuYWxMaW5rIixocmVmOiJodHRwczovL2RvY3MuZXhhbXBsZS5jb20vYW5hbHl0aWNzIn1dfV19KSxjLmFwcHVpLnNldENvbnRlbnRUYWJzKFt7a2V5OiJPdmVydmlldyIsaWNvbk5hbWU6Imx1Y2lkZTpsYXlvdXREYXNoYm9hcmQiLGFjdGlvbjooKT0+Y29uc29sZS5sb2coIk92ZXJ2aWV3IHRhYiIpfSx7a2V5OiJBbmFseXRpY3MiLGljb25OYW1lOiJsdWNpZGU6YmFyQ2hhcnQiLGFjdGlvbjooKT0+Y29uc29sZS5sb2coIkFuYWx5dGljcyB0YWIiKX0se2tleToiUmVwb3J0cyIsaWNvbk5hbWU6Imx1Y2lkZTpmaWxlVGV4dCIsYWN0aW9uOigpPT5jb25zb2xlLmxvZygiUmVwb3J0cyB0YWIiKX1dKX1vbkRlYWN0aXZhdGUoKXt0aGlzLmFjdGl2YXRlZD0hMSxjb25zb2xlLmxvZygiRGFzaGJvYXJkIGRlYWN0aXZhdGVkIil9cmVuZGVyKCl7cmV0dXJuIHdgCiAgICAgIDxzdHlsZT4KICAgICAgICA6aG9zdCB7CiAgICAgICAgICBkaXNwbGF5OiBibG9jazsKICAgICAgICAgIHBhZGRpbmc6IDQwcHg7CiAgICAgICAgICBjb2xvcjogI2EzYTNhMzsKICAgICAgICAgIGZvbnQtZmFtaWx5OiAnR2Vpc3QgU2FucycsICdJbnRlcicsIC1hcHBsZS1zeXN0ZW0sIHNhbnMtc2VyaWY7CiAgICAgICAgfQogICAgICAgIGgxIHsgY29sb3I6ICNmYWZhZmE7IGZvbnQtd2VpZ2h0OiA2MDA7IGZvbnQtc2l6ZTogMjRweDsgbWFyZ2luLWJvdHRvbTogOHB4OyB9CiAgICAgICAgcCB7IGNvbG9yOiAjNzM3MzczOyBtYXJnaW4tYm90dG9tOiAzMnB4OyB9CiAgICAgICAgZGVlcy1zdGF0c2dyaWQgewogICAgICAgICAgbWFyZ2luLWJvdHRvbTogMzJweDsKICAgICAgICB9CgogICAgICAgIC5jdHgtYWN0aW9ucyB7CiAgICAgICAgICBtYXJnaW4tdG9wOiAzMnB4OwogICAgICAgICAgcGFkZGluZzogMjRweDsKICAgICAgICAgIGJhY2tncm91bmQ6IHJnYmEoMjU1LDI1NSwyNTUsMC4wMik7CiAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCByZ2JhKDI1NSwyNTUsMjU1LDAuMDgpOwogICAgICAgICAgYm9yZGVyLXJhZGl1czogOHB4OwogICAgICAgIH0KICAgICAgICAuY3R4LWFjdGlvbnMgaDIgeyBjb2xvcjogI2ZhZmFmYTsgZm9udC1zaXplOiAxNnB4OyBmb250LXdlaWdodDogNjAwOyBtYXJnaW4tYm90dG9tOiAxNnB4OyB9CiAgICAgICAgLmJ1dHRvbi1ncmlkIHsKICAgICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgICBmbGV4LXdyYXA6IHdyYXA7CiAgICAgICAgICBnYXA6IDhweDsKICAgICAgICB9CiAgICAgICAgLmN0eC1idG4gewogICAgICAgICAgYmFja2dyb3VuZDogcmdiYSg1OSwgMTMwLCAyNDYsIDAuMSk7CiAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCByZ2JhKDU5LCAxMzAsIDI0NiwgMC4zKTsKICAgICAgICAgIGNvbG9yOiAjNjBhNWZhOwogICAgICAgICAgcGFkZGluZzogOHB4IDE2cHg7CiAgICAgICAgICBib3JkZXItcmFkaXVzOiA2cHg7CiAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICAgICAgICBmb250LXNpemU6IDEzcHg7CiAgICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC4xNXMgZWFzZTsKICAgICAgICB9CiAgICAgICAgLmN0eC1idG46aG92ZXIgewogICAgICAgICAgYmFja2dyb3VuZDogcmdiYSg1OSwgMTMwLCAyNDYsIDAuMik7CiAgICAgICAgICBib3JkZXItY29sb3I6IHJnYmEoNTksIDEzMCwgMjQ2LCAwLjUpOwogICAgICAgIH0KICAgICAgICAuY3R4LWJ0bi5kYW5nZXIgewogICAgICAgICAgYmFja2dyb3VuZDogcmdiYSgyMzksIDY4LCA2OCwgMC4xKTsKICAgICAgICAgIGJvcmRlci1jb2xvcjogcmdiYSgyMzksIDY4LCA2OCwgMC4zKTsKICAgICAgICAgIGNvbG9yOiAjZjg3MTcxOwogICAgICAgIH0KICAgICAgICAuY3R4LWJ0bi5kYW5nZXI6aG92ZXIgewogICAgICAgICAgYmFja2dyb3VuZDogcmdiYSgyMzksIDY4LCA2OCwgMC4yKTsKICAgICAgICAgIGJvcmRlci1jb2xvcjogcmdiYSgyMzksIDY4LCA2OCwgMC41KTsKICAgICAgICB9CiAgICAgICAgLmN0eC1idG4uc3VjY2VzcyB7CiAgICAgICAgICBiYWNrZ3JvdW5kOiByZ2JhKDM0LCAxOTcsIDk0LCAwLjEpOwogICAgICAgICAgYm9yZGVyLWNvbG9yOiByZ2JhKDM0LCAxOTcsIDk0LCAwLjMpOwogICAgICAgICAgY29sb3I6ICM0YWRlODA7CiAgICAgICAgfQogICAgICAgIC5jdHgtYnRuLnN1Y2Nlc3M6aG92ZXIgewogICAgICAgICAgYmFja2dyb3VuZDogcmdiYSgzNCwgMTk3LCA5NCwgMC4yKTsKICAgICAgICAgIGJvcmRlci1jb2xvcjogcmdiYSgzNCwgMTk3LCA5NCwgMC41KTsKICAgICAgICB9CiAgICAgIDwvc3R5bGU+CiAgICAgIDxoMT5EYXNoYm9hcmQ8L2gxPgogICAgICA8cD5XZWxjb21lIGJhY2shIEhlcmUncyBhbiBvdmVydmlldyBvZiB5b3VyIHN5c3RlbS48L3A+CiAgICAgIDxkZWVzLXN0YXRzZ3JpZAogICAgICAgIC50aWxlcz0ke3RoaXMuc3RhdHNUaWxlc30KICAgICAgICBAdGlsZS1hY3Rpb249JHtjPT5jb25zb2xlLmxvZygiVGlsZSBhY3Rpb246IixjLmRldGFpbCl9CiAgICAgID48L2RlZXMtc3RhdHNncmlkPgoKICAgICAgPGRpdiBjbGFzcz0iY3R4LWFjdGlvbnMiPgogICAgICAgIDxoMj5Db250ZXh0IEFjdGlvbnMgKGN0eC5hcHB1aSk8L2gyPgogICAgICAgIDxkaXYgY2xhc3M9ImJ1dHRvbi1ncmlkIj4KICAgICAgICAgIDxidXR0b24gY2xhc3M9ImN0eC1idG4iIEBjbGljaz0keygpPT50aGlzLmN0eD8uYXBwdWkuc2V0TWFpbk1lbnVWaXNpYmxlKCExKX0+SGlkZSBNYWluIE1lbnU8L2J1dHRvbj4KICAgICAgICAgIDxidXR0b24gY2xhc3M9ImN0eC1idG4gc3VjY2VzcyIgQGNsaWNrPSR7KCk9PnRoaXMuY3R4Py5hcHB1aS5zZXRNYWluTWVudVZpc2libGUoITApfT5TaG93IE1haW4gTWVudTwvYnV0dG9uPgogICAgICAgICAgPGJ1dHRvbiBjbGFzcz0iY3R4LWJ0biIgQGNsaWNrPSR7KCk9PnRoaXMuY3R4Py5hcHB1aS5zZXRTZWNvbmRhcnlNZW51VmlzaWJsZSghMSl9PkhpZGUgU2Vjb25kYXJ5IE1lbnU8L2J1dHRvbj4KICAgICAgICAgIDxidXR0b24gY2xhc3M9ImN0eC1idG4gc3VjY2VzcyIgQGNsaWNrPSR7KCk9PnRoaXMuY3R4Py5hcHB1aS5zZXRTZWNvbmRhcnlNZW51VmlzaWJsZSghMCl9PlNob3cgU2Vjb25kYXJ5IE1lbnU8L2J1dHRvbj4KICAgICAgICAgIDxidXR0b24gY2xhc3M9ImN0eC1idG4iIEBjbGljaz0keygpPT50aGlzLmN0eD8uYXBwdWkuc2V0Q29udGVudFRhYnNWaXNpYmxlKCExKX0+SGlkZSBDb250ZW50IFRhYnM8L2J1dHRvbj4KICAgICAgICAgIDxidXR0b24gY2xhc3M9ImN0eC1idG4gc3VjY2VzcyIgQGNsaWNrPSR7KCk9PnRoaXMuY3R4Py5hcHB1aS5zZXRDb250ZW50VGFic1Zpc2libGUoITApfT5TaG93IENvbnRlbnQgVGFiczwvYnV0dG9uPgogICAgICAgICAgPGJ1dHRvbiBjbGFzcz0iY3R4LWJ0biIgQGNsaWNrPSR7KCk9PnRoaXMuY3R4Py5hcHB1aS5zZXRNYWluTWVudUNvbGxhcHNlZCghMCl9PkNvbGxhcHNlIE1haW4gTWVudTwvYnV0dG9uPgogICAgICAgICAgPGJ1dHRvbiBjbGFzcz0iY3R4LWJ0biBzdWNjZXNzIiBAY2xpY2s9JHsoKT0+dGhpcy5jdHg/LmFwcHVpLnNldE1haW5NZW51Q29sbGFwc2VkKCExKX0+RXhwYW5kIE1haW4gTWVudTwvYnV0dG9uPgogICAgICAgICAgPGJ1dHRvbiBjbGFzcz0iY3R4LWJ0biIgQGNsaWNrPSR7KCk9PnRoaXMuY3R4Py5hcHB1aS5zZXRCcmVhZGNydW1icyhbIkRhc2hib2FyZCIsIk92ZXJ2aWV3IiwiU3RhdHMiXSl9PlNldCBCcmVhZGNydW1iczwvYnV0dG9uPgogICAgICAgICAgPGJ1dHRvbiBjbGFzcz0iY3R4LWJ0biIgQGNsaWNrPSR7KCk9PnRoaXMuY3R4Py5hcHB1aS5uYXZpZ2F0ZVRvVmlldygicHJvamVjdHMiKX0+R28gdG8gUHJvamVjdHM8L2J1dHRvbj4KICAgICAgICAgIDxidXR0b24gY2xhc3M9ImN0eC1idG4iIEBjbGljaz0keygpPT50aGlzLmN0eD8uYXBwdWkubmF2aWdhdGVUb1ZpZXcoInNldHRpbmdzIix7c2VjdGlvbjoic2VjdXJpdHkifSl9PkdvIHRvIFNldHRpbmdzL1NlY3VyaXR5PC9idXR0b24+CiAgICAgICAgICA8YnV0dG9uIGNsYXNzPSJjdHgtYnRuIiBAY2xpY2s9JHsoKT0+dGhpcy5jdHg/LmFwcHVpLmFjdGl2aXR5TG9nLmFkZCh7dHlwZToiY3VzdG9tIix1c2VyOiJEZW1vIFVzZXIiLG1lc3NhZ2U6IkJ1dHRvbiBjbGlja2VkIGZyb20gY3R4ISIsaWNvbk5hbWU6Imx1Y2lkZTptb3VzZS1wb2ludGVyLWNsaWNrIn0pfT5BZGQgQWN0aXZpdHkgRW50cnk8L2J1dHRvbj4KICAgICAgICAgIDxidXR0b24gY2xhc3M9ImN0eC1idG4iIEBjbGljaz0keygpPT50aGlzLmN0eD8uYXBwdWkuc2V0TWFpbk1lbnVCYWRnZSgidGFza3MiLDk5KX0+U2V0IFRhc2tzIEJhZGdlIHRvIDk5PC9idXR0b24+CiAgICAgICAgICA8YnV0dG9uIGNsYXNzPSJjdHgtYnRuIGRhbmdlciIgQGNsaWNrPSR7KCk9PnRoaXMuY3R4Py5hcHB1aS5jbGVhck1haW5NZW51QmFkZ2UoInRhc2tzIil9PkNsZWFyIFRhc2tzIEJhZGdlPC9idXR0b24+CiAgICAgICAgICA8YnV0dG9uIGNsYXNzPSJjdHgtYnRuIiBAY2xpY2s9JHsoKT0+dGhpcy5jdHg/LmFwcHVpLnNldENvbnRlbnRUYWJzQXV0b0hpZGUoITAsMSl9PkF1dG8taGlkZSBUYWJzICjiiaQxKTwvYnV0dG9uPgogICAgICAgICAgPGJ1dHRvbiBjbGFzcz0iY3R4LWJ0biBkYW5nZXIiIEBjbGljaz0keygpPT50aGlzLmN0eD8uYXBwdWkuc2V0Q29udGVudFRhYnNBdXRvSGlkZSghMSl9PkRpc2FibGUgQXV0by1oaWRlPC9idXR0b24+CiAgICAgICAgICA8YnV0dG9uIGNsYXNzPSJjdHgtYnRuIHN1Y2Nlc3MiIEBjbGljaz0keygpPT50aGlzLmFkZENsb3NlYWJsZVRhYigpfT5BZGQgQ2xvc2VhYmxlIFRhYjwvYnV0dG9uPgogICAgICAgIDwvZGl2PgogICAgICA8L2Rpdj4KICAgIGB9dGFiQ291bnRlcj0wO2FkZENsb3NlYWJsZVRhYigpe2lmKCF0aGlzLmN0eClyZXR1cm47dGhpcy50YWJDb3VudGVyKys7bGV0IGM9YFRhYiAke3RoaXMudGFiQ291bnRlcn1gO3RoaXMuY3R4LmFwcHVpLmFkZENvbnRlbnRUYWIoe2tleTpjLGljb25OYW1lOiJsdWNpZGU6ZmlsZSIsYWN0aW9uOigpPT5jb25zb2xlLmxvZyhgU2VsZWN0ZWQgJHtjfWApLGNsb3NlYWJsZTohMCxvbkNsb3NlOigpPT57dGhpcy5jdHg/LmFwcHVpLnJlbW92ZUNvbnRlbnRUYWIoYyl9fSl9fTtyZXR1cm4gZD1pfSkoKSxNMTI9KCgpPT57bGV0IHQ9W3BlKCJkZW1vLXNldHRpbmdzLXZpZXciKV0sZSxhPVtdLGkscj14ZSxzLG49W10sbz1bXSxkLGM9W10saD1bXTt2YXIgbD1jbGFzcyBleHRlbmRzIHJ7c3RhdGlje2k9dGhpc31zdGF0aWN7bGV0IGY9dHlwZW9mIFN5bWJvbD09ImZ1bmN0aW9uIiYmU3ltYm9sLm1ldGFkYXRhP09iamVjdC5jcmVhdGUocltTeW1ib2wubWV0YWRhdGFdPz9udWxsKTp2b2lkIDA7cz1bSigpXSxkPVtKKCldLHQ0KHRoaXMsbnVsbCxzLHtraW5kOiJhY2Nlc3NvciIsbmFtZToic2VjdGlvbiIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6Zz0+InNlY3Rpb24iaW4gZyxnZXQ6Zz0+Zy5zZWN0aW9uLHNldDooZyx5KT0+e2cuc2VjdGlvbj15fX0sbWV0YWRhdGE6Zn0sbixvKSx0NCh0aGlzLG51bGwsZCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6Imhhc0NoYW5nZXMiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmc9PiJoYXNDaGFuZ2VzImluIGcsZ2V0Omc9PmcuaGFzQ2hhbmdlcyxzZXQ6KGcseSk9PntnLmhhc0NoYW5nZXM9eX19LG1ldGFkYXRhOmZ9LGMsaCksdDQobnVsbCxlPXt2YWx1ZTppfSx0LHtraW5kOiJjbGFzcyIsbmFtZTppLm5hbWUsbWV0YWRhdGE6Zn0sbnVsbCxhKSxsPWk9ZS52YWx1ZSxmJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoaSxTeW1ib2wubWV0YWRhdGEse2VudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwLHZhbHVlOmZ9KSxWcihpLGEpfSNlPVZyKHRoaXMsbiwiZ2VuZXJhbCIpO2dldCBzZWN0aW9uKCl7cmV0dXJuIHRoaXMuI2V9c2V0IHNlY3Rpb24oZil7dGhpcy4jZT1mfSN0PShWcih0aGlzLG8pLFZyKHRoaXMsYywhMSkpO2dldCBoYXNDaGFuZ2VzKCl7cmV0dXJuIHRoaXMuI3R9c2V0IGhhc0NoYW5nZXMoZil7dGhpcy4jdD1mfWFwcHVpPVZyKHRoaXMsaCk7b25BY3RpdmF0ZShmKXt0aGlzLmFwcHVpPWYuYXBwdWksY29uc29sZS5sb2coIlNldHRpbmdzIGFjdGl2YXRlZCB3aXRoIHBhcmFtczoiLGYucGFyYW1zKSxmLnBhcmFtcz8uc2VjdGlvbiYmKHRoaXMuc2VjdGlvbj1mLnBhcmFtcy5zZWN0aW9uKSxmLmFwcHVpLnNldFNlY29uZGFyeU1lbnUoe2hlYWRpbmc6IlNldHRpbmdzIixncm91cHM6W3tuYW1lOiJBY2NvdW50IixpY29uTmFtZToibHVjaWRlOnVzZXIiLGl0ZW1zOlt7a2V5OiJnZW5lcmFsIixpY29uTmFtZToic2V0dGluZ3MiLGFjdGlvbjooKT0+dGhpcy5zaG93U2VjdGlvbigiZ2VuZXJhbCIpfSx7a2V5OiJwcm9maWxlIixpY29uTmFtZToidXNlciIsYWN0aW9uOigpPT50aGlzLnNob3dTZWN0aW9uKCJwcm9maWxlIil9LHtrZXk6InNlY3VyaXR5IixpY29uTmFtZToic2hpZWxkIixhY3Rpb246KCk9PnRoaXMuc2hvd1NlY3Rpb24oInNlY3VyaXR5Iil9XX0se25hbWU6IlByZWZlcmVuY2VzIixpY29uTmFtZToibHVjaWRlOnNsaWRlcnMiLGl0ZW1zOlt7a2V5OiJub3RpZmljYXRpb25zIixpY29uTmFtZToiYmVsbCIsYmFkZ2U6MyxhY3Rpb246KCk9PnRoaXMuc2hvd1NlY3Rpb24oIm5vdGlmaWNhdGlvbnMiKX0se2tleToiYXBwZWFyYW5jZSIsaWNvbk5hbWU6InBhbGV0dGUiLGFjdGlvbjooKT0+dGhpcy5zaG93U2VjdGlvbigiYXBwZWFyYW5jZSIpfV19XX0pLGYuYXBwdWkuc2V0U2Vjb25kYXJ5TWVudVNlbGVjdGlvbih0aGlzLnNlY3Rpb24pLGYuYXBwdWkuc2V0Q29udGVudFRhYnMoW10pfW9uRGVhY3RpdmF0ZSgpe2NvbnNvbGUubG9nKCJTZXR0aW5ncyBkZWFjdGl2YXRlZCIpLHRoaXMuaGFzQ2hhbmdlcz0hMX1jYW5EZWFjdGl2YXRlKCl7cmV0dXJuIHRoaXMuaGFzQ2hhbmdlcz8iWW91IGhhdmUgdW5zYXZlZCBjaGFuZ2VzLiBMZWF2ZSBhbnl3YXk/IjohMH1zaG93U2VjdGlvbihmKXt0aGlzLnNlY3Rpb249Zix0aGlzLmFwcHVpPy5zZXRTZWNvbmRhcnlNZW51U2VsZWN0aW9uKGYpfXNpbXVsYXRlQ2hhbmdlKCl7dGhpcy5oYXNDaGFuZ2VzPSEwfXJlbmRlcigpe3JldHVybiB3YAogICAgICA8c3R5bGU+CiAgICAgICAgOmhvc3QgewogICAgICAgICAgZGlzcGxheTogYmxvY2s7CiAgICAgICAgICBwYWRkaW5nOiA0MHB4OwogICAgICAgICAgY29sb3I6ICNhM2EzYTM7CiAgICAgICAgICBmb250LWZhbWlseTogJ0dlaXN0IFNhbnMnLCAnSW50ZXInLCAtYXBwbGUtc3lzdGVtLCBzYW5zLXNlcmlmOwogICAgICAgIH0KICAgICAgICBoMSB7IGNvbG9yOiAjZmFmYWZhOyBmb250LXdlaWdodDogNjAwOyBmb250LXNpemU6IDI0cHg7IG1hcmdpbi1ib3R0b206IDhweDsgfQogICAgICAgIHAgeyBjb2xvcjogIzczNzM3MzsgbWFyZ2luLWJvdHRvbTogMjRweDsgfQogICAgICAgIC5zZWN0aW9uLW5hbWUgewogICAgICAgICAgYmFja2dyb3VuZDogcmdiYSgyNTUsMjU1LDI1NSwwLjA1KTsKICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIHJnYmEoMjU1LDI1NSwyNTUsMC4xKTsKICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDhweDsKICAgICAgICAgIHBhZGRpbmc6IDI0cHg7CiAgICAgICAgICBmb250LXNpemU6IDE4cHg7CiAgICAgICAgICBjb2xvcjogI2ZhZmFmYTsKICAgICAgICAgIG1hcmdpbi1ib3R0b206IDE2cHg7CiAgICAgICAgfQogICAgICAgIC5hY3Rpb25zIHsKICAgICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgICBnYXA6IDEycHg7CiAgICAgICAgfQogICAgICAgIGJ1dHRvbiB7CiAgICAgICAgICBiYWNrZ3JvdW5kOiAjM2I4MmY2OwogICAgICAgICAgY29sb3I6IHdoaXRlOwogICAgICAgICAgYm9yZGVyOiBub25lOwogICAgICAgICAgcGFkZGluZzogOHB4IDE2cHg7CiAgICAgICAgICBib3JkZXItcmFkaXVzOiA2cHg7CiAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICAgICAgICBmb250LXNpemU6IDE0cHg7CiAgICAgICAgfQogICAgICAgIGJ1dHRvbjpob3ZlciB7CiAgICAgICAgICBiYWNrZ3JvdW5kOiAjMjU2M2ViOwogICAgICAgIH0KICAgICAgICAud2FybmluZyB7CiAgICAgICAgICBjb2xvcjogI2ZiYmYyNDsKICAgICAgICAgIGZvbnQtc2l6ZTogMTNweDsKICAgICAgICAgIG1hcmdpbi10b3A6IDE2cHg7CiAgICAgICAgfQogICAgICA8L3N0eWxlPgogICAgICA8aDE+U2V0dGluZ3M8L2gxPgogICAgICA8cD5NYW5hZ2UgeW91ciBhY2NvdW50IGFuZCBhcHBsaWNhdGlvbiBwcmVmZXJlbmNlcy48L3A+CiAgICAgIDxkaXYgY2xhc3M9InNlY3Rpb24tbmFtZSI+CiAgICAgICAgQ3VycmVudCBzZWN0aW9uOiA8c3Ryb25nPiR7dGhpcy5zZWN0aW9ufTwvc3Ryb25nPgogICAgICA8L2Rpdj4KICAgICAgPGRpdiBjbGFzcz0iYWN0aW9ucyI+CiAgICAgICAgPGJ1dHRvbiBAY2xpY2s9JHsoKT0+dGhpcy5zaW11bGF0ZUNoYW5nZSgpfT5NYWtlIENoYW5nZXM8L2J1dHRvbj4KICAgICAgPC9kaXY+CiAgICAgICR7dGhpcy5oYXNDaGFuZ2VzP3dgPHAgY2xhc3M9Indhcm5pbmciPllvdSBoYXZlIHVuc2F2ZWQgY2hhbmdlcy4gTmF2aWdhdGlvbiB3aWxsIHByb21wdCBmb3IgY29uZmlybWF0aW9uLjwvcD5gOiIifQogICAgYH19O3JldHVybiBsPWl9KSgpLHoxMj0oKCk9PntsZXQgdD1bcGUoImRlbW8tcHJvamVjdHMtdmlldyIpXSxlLGE9W10saSxyPXhlO3ZhciBzPWNsYXNzIGV4dGVuZHMgcntzdGF0aWN7aT10aGlzfXN0YXRpY3tsZXQgbj10eXBlb2YgU3ltYm9sPT0iZnVuY3Rpb24iJiZTeW1ib2wubWV0YWRhdGE/T2JqZWN0LmNyZWF0ZShyW1N5bWJvbC5tZXRhZGF0YV0/P251bGwpOnZvaWQgMDt0NChudWxsLGU9e3ZhbHVlOml9LHQse2tpbmQ6ImNsYXNzIixuYW1lOmkubmFtZSxtZXRhZGF0YTpufSxudWxsLGEpLHM9aT1lLnZhbHVlLG4mJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShpLFN5bWJvbC5tZXRhZGF0YSx7ZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITAsdmFsdWU6bn0pLFZyKGksYSl9b25BY3RpdmF0ZShuKXtuLmFwcHVpLnNldFNlY29uZGFyeU1lbnUoe2hlYWRpbmc6IlByb2plY3RzIixncm91cHM6W3tuYW1lOiJNeSBQcm9qZWN0cyIsaWNvbk5hbWU6Imx1Y2lkZTpmb2xkZXIiLGl0ZW1zOlt7a2V5OiJBY3RpdmUiLGljb25OYW1lOiJmb2xkZXIiLGJhZGdlOjMsYWN0aW9uOigpPT5jb25zb2xlLmxvZygiQWN0aXZlIil9LHtrZXk6IkFyY2hpdmVkIixpY29uTmFtZToiYXJjaGl2ZSIsYWN0aW9uOigpPT5jb25zb2xlLmxvZygiQXJjaGl2ZWQiKX0se2tleToiU2hhcmVkIixpY29uTmFtZToidXNlcnMiLGJhZGdlOjIsYmFkZ2VWYXJpYW50OiJ3YXJuaW5nIixhY3Rpb246KCk9PmNvbnNvbGUubG9nKCJTaGFyZWQiKX1dfSx7bmFtZToiUXVpY2sgQWN0aW9ucyIsaWNvbk5hbWU6Imx1Y2lkZTp6YXAiLGl0ZW1zOlt7dHlwZToiYWN0aW9uIixrZXk6Ik5ldyBQcm9qZWN0IixpY29uTmFtZToibHVjaWRlOmZvbGRlclBsdXMiLGFjdGlvbjooKT0+YWxlcnQoIkNyZWF0ZSBuZXcgcHJvamVjdCIpfSx7dHlwZToiYWN0aW9uIixrZXk6IkltcG9ydCIsaWNvbk5hbWU6Imx1Y2lkZTpkb3dubG9hZCIsYWN0aW9uOigpPT5hbGVydCgiSW1wb3J0IHByb2plY3QiKX0se3R5cGU6ImRpdmlkZXIifSx7dHlwZToibGluayIsa2V5OiJUZW1wbGF0ZXMiLGljb25OYW1lOiJsdWNpZGU6bGF5b3V0VGVtcGxhdGUiLGhyZWY6Imh0dHBzOi8vdGVtcGxhdGVzLmV4YW1wbGUuY29tIn1dfV19KSxuLmFwcHVpLnNldENvbnRlbnRUYWJzKFt7a2V5OiJHcmlkIixpY29uTmFtZToibHVjaWRlOmdyaWQiLGFjdGlvbjooKT0+Y29uc29sZS5sb2coIkdyaWQgdmlldyIpfSx7a2V5OiJMaXN0IixpY29uTmFtZToibHVjaWRlOmxpc3QiLGFjdGlvbjooKT0+Y29uc29sZS5sb2coIkxpc3QgdmlldyIpfSx7a2V5OiJCb2FyZCIsaWNvbk5hbWU6Imx1Y2lkZTprYW5iYW4iLGFjdGlvbjooKT0+Y29uc29sZS5sb2coIkJvYXJkIHZpZXciKX1dKX1yZW5kZXIoKXtyZXR1cm4gd2AKICAgICAgPHN0eWxlPgogICAgICAgIDpob3N0IHsKICAgICAgICAgIGRpc3BsYXk6IGJsb2NrOwogICAgICAgICAgcGFkZGluZzogNDBweDsKICAgICAgICAgIGNvbG9yOiAjYTNhM2EzOwogICAgICAgICAgZm9udC1mYW1pbHk6ICdHZWlzdCBTYW5zJywgJ0ludGVyJywgLWFwcGxlLXN5c3RlbSwgc2Fucy1zZXJpZjsKICAgICAgICB9CiAgICAgICAgaDEgeyBjb2xvcjogI2ZhZmFmYTsgZm9udC13ZWlnaHQ6IDYwMDsgZm9udC1zaXplOiAyNHB4OyBtYXJnaW4tYm90dG9tOiAyNHB4OyB9CiAgICAgICAgLnByb2plY3RzIHsKICAgICAgICAgIGRpc3BsYXk6IGdyaWQ7CiAgICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdCgyLCAxZnIpOwogICAgICAgICAgZ2FwOiAxNnB4OwogICAgICAgIH0KICAgICAgICAucHJvamVjdCB7CiAgICAgICAgICBiYWNrZ3JvdW5kOiByZ2JhKDI1NSwyNTUsMjU1LDAuMDMpOwogICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgcmdiYSgyNTUsMjU1LDI1NSwwLjA4KTsKICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDhweDsKICAgICAgICAgIHBhZGRpbmc6IDIwcHg7CiAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICAgICAgICB0cmFuc2l0aW9uOiBib3JkZXItY29sb3IgMC4yczsKICAgICAgICB9CiAgICAgICAgLnByb2plY3Q6aG92ZXIgewogICAgICAgICAgYm9yZGVyLWNvbG9yOiByZ2JhKDI1NSwyNTUsMjU1LDAuMik7CiAgICAgICAgfQogICAgICAgIC5wcm9qZWN0IGgzIHsgY29sb3I6ICNmYWZhZmE7IG1hcmdpbjogMCAwIDhweCAwOyBmb250LXNpemU6IDE2cHg7IH0KICAgICAgICAucHJvamVjdCBwIHsgY29sb3I6ICM3MzczNzM7IG1hcmdpbjogMDsgZm9udC1zaXplOiAxM3B4OyB9CiAgICAgICAgLmJhZGdlIHsKICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jazsKICAgICAgICAgIGJhY2tncm91bmQ6ICMxNDUzMmQ7CiAgICAgICAgICBjb2xvcjogIzRhZGU4MDsKICAgICAgICAgIHBhZGRpbmc6IDJweCA4cHg7CiAgICAgICAgICBib3JkZXItcmFkaXVzOiA5cHg7CiAgICAgICAgICBmb250LXNpemU6IDExcHg7CiAgICAgICAgICBtYXJnaW4tbGVmdDogOHB4OwogICAgICAgIH0KICAgICAgPC9zdHlsZT4KICAgICAgPGgxPlByb2plY3RzPC9oMT4KICAgICAgPGRpdiBjbGFzcz0icHJvamVjdHMiPgogICAgICAgIDxkaXYgY2xhc3M9InByb2plY3QiPgogICAgICAgICAgPGgzPkZyb250ZW5kIEFwcCA8c3BhbiBjbGFzcz0iYmFkZ2UiPkFjdGl2ZTwvc3Bhbj48L2gzPgogICAgICAgICAgPHA+UmVhY3QtYmFzZWQgZGFzaGJvYXJkIGFwcGxpY2F0aW9uPC9wPgogICAgICAgIDwvZGl2PgogICAgICAgIDxkaXYgY2xhc3M9InByb2plY3QiPgogICAgICAgICAgPGgzPkFQSSBTZXJ2ZXIgPHNwYW4gY2xhc3M9ImJhZGdlIj5BY3RpdmU8L3NwYW4+PC9oMz4KICAgICAgICAgIDxwPk5vZGUuanMgUkVTVCBBUEkgYmFja2VuZDwvcD4KICAgICAgICA8L2Rpdj4KICAgICAgICA8ZGl2IGNsYXNzPSJwcm9qZWN0Ij4KICAgICAgICAgIDxoMz5Nb2JpbGUgQXBwIDxzcGFuIGNsYXNzPSJiYWRnZSI+QWN0aXZlPC9zcGFuPjwvaDM+CiAgICAgICAgICA8cD5SZWFjdCBOYXRpdmUgaU9TL0FuZHJvaWQgYXBwPC9wPgogICAgICAgIDwvZGl2PgogICAgICAgIDxkaXYgY2xhc3M9InByb2plY3QiPgogICAgICAgICAgPGgzPkRvY3VtZW50YXRpb248L2gzPgogICAgICAgICAgPHA+VGVjaG5pY2FsIGRvY3VtZW50YXRpb24gc2l0ZTwvcD4KICAgICAgICA8L2Rpdj4KICAgICAgPC9kaXY+CiAgICBgfX07cmV0dXJuIHM9aX0pKCksazEyPSgoKT0+e2xldCB0PVtwZSgiZGVtby10YXNrcy12aWV3IildLGUsYT1bXSxpLHI9eGU7dmFyIHM9Y2xhc3MgZXh0ZW5kcyBye3N0YXRpY3tpPXRoaXN9c3RhdGlje2xldCBuPXR5cGVvZiBTeW1ib2w9PSJmdW5jdGlvbiImJlN5bWJvbC5tZXRhZGF0YT9PYmplY3QuY3JlYXRlKHJbU3ltYm9sLm1ldGFkYXRhXT8/bnVsbCk6dm9pZCAwO3Q0KG51bGwsZT17dmFsdWU6aX0sdCx7a2luZDoiY2xhc3MiLG5hbWU6aS5uYW1lLG1ldGFkYXRhOm59LG51bGwsYSkscz1pPWUudmFsdWUsbiYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGksU3ltYm9sLm1ldGFkYXRhLHtlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMCx2YWx1ZTpufSksVnIoaSxhKX1vbkFjdGl2YXRlKG4pe24uYXBwdWkuc2V0U2Vjb25kYXJ5TWVudSh7aGVhZGluZzoiVGFza3MiLGdyb3Vwczpbe25hbWU6IlZpZXdzIixpY29uTmFtZToibHVjaWRlOmV5ZSIsaXRlbXM6W3trZXk6IkFsbCBUYXNrcyIsaWNvbk5hbWU6Imxpc3QiLGJhZGdlOjEyLGFjdGlvbjooKT0+Y29uc29sZS5sb2coIkFsbCIpfSx7a2V5OiJUb2RheSIsaWNvbk5hbWU6ImNhbGVuZGFyIixiYWRnZTozLGFjdGlvbjooKT0+Y29uc29sZS5sb2coIlRvZGF5Iil9LHtrZXk6IlVwY29taW5nIixpY29uTmFtZToiY2xvY2siLGFjdGlvbjooKT0+Y29uc29sZS5sb2coIlVwY29taW5nIil9LHtrZXk6IkNvbXBsZXRlZCIsaWNvbk5hbWU6ImNoZWNrQ2lyY2xlIixhY3Rpb246KCk9PmNvbnNvbGUubG9nKCJDb21wbGV0ZWQiKX1dfSx7bmFtZToiRmlsdGVycyIsaWNvbk5hbWU6Imx1Y2lkZTpmaWx0ZXIiLGl0ZW1zOlt7dHlwZToiaGVhZGVyIixsYWJlbDoiUHJpb3JpdHkifSx7dHlwZToibXVsdGlGaWx0ZXIiLGtleToiUHJpb3JpdHkiLGljb25OYW1lOiJsdWNpZGU6ZmxhZyIsb3B0aW9uczpbe2tleToiaGlnaCIsbGFiZWw6IkhpZ2giLGNoZWNrZWQ6ITAsaWNvbk5hbWU6Imx1Y2lkZTphbGVydENpcmNsZSJ9LHtrZXk6Im1lZGl1bSIsbGFiZWw6Ik1lZGl1bSIsY2hlY2tlZDohMCxpY29uTmFtZToibHVjaWRlOm1pbnVzQ2lyY2xlIn0se2tleToibG93IixsYWJlbDoiTG93IixjaGVja2VkOiExLGljb25OYW1lOiJsdWNpZGU6Y2lyY2xlIn1dLG9uQ2hhbmdlOm89PmNvbnNvbGUubG9nKCJQcmlvcml0eSBmaWx0ZXI6IixvKX0se3R5cGU6ImRpdmlkZXIifSx7dHlwZToiaGVhZGVyIixsYWJlbDoiT3B0aW9ucyJ9LHt0eXBlOiJmaWx0ZXIiLGtleToiU2hvdyBTdWJ0YXNrcyIsaWNvbk5hbWU6Imx1Y2lkZTpsaXN0VHJlZSIsYWN0aXZlOiEwLG9uVG9nZ2xlOm89PmNvbnNvbGUubG9nKCJTaG93IHN1YnRhc2tzOiIsbyl9LHt0eXBlOiJmaWx0ZXIiLGtleToiU2hvdyBDb21wbGV0ZWQiLGljb25OYW1lOiJsdWNpZGU6Y2hlY2tTcXVhcmUiLGFjdGl2ZTohMSxvblRvZ2dsZTpvPT5jb25zb2xlLmxvZygiU2hvdyBjb21wbGV0ZWQ6IixvKX1dfSx7bmFtZToiQWN0aW9ucyIsaWNvbk5hbWU6Imx1Y2lkZTp6YXAiLGl0ZW1zOlt7dHlwZToiYWN0aW9uIixrZXk6IkFkZCBUYXNrIixpY29uTmFtZToibHVjaWRlOnBsdXMiLGFjdGlvbjooKT0+YWxlcnQoIkFkZCBuZXcgdGFzayIpfSx7dHlwZToiYWN0aW9uIixrZXk6IkltcG9ydCBUYXNrcyIsaWNvbk5hbWU6Imx1Y2lkZTp1cGxvYWQiLGFjdGlvbjooKT0+YWxlcnQoIkltcG9ydCB0YXNrcyIpfSx7dHlwZToiZGl2aWRlciJ9LHt0eXBlOiJhY3Rpb24iLGtleToiQ2xlYXIgQ29tcGxldGVkIixpY29uTmFtZToibHVjaWRlOnRyYXNoMiIsdmFyaWFudDoiZGFuZ2VyIixjb25maXJtTWVzc2FnZToiRGVsZXRlIGFsbCBjb21wbGV0ZWQgdGFza3M/IixhY3Rpb246KCk9PmFsZXJ0KCJDbGVhcmVkIGNvbXBsZXRlZCB0YXNrcyIpfV19XX0pLG4uYXBwdWkuc2V0Q29udGVudFRhYnMoW3trZXk6Ikxpc3QiLGljb25OYW1lOiJsdWNpZGU6bGlzdCIsYWN0aW9uOigpPT5jb25zb2xlLmxvZygiTGlzdCIpfSx7a2V5OiJDYWxlbmRhciIsaWNvbk5hbWU6Imx1Y2lkZTpjYWxlbmRhciIsYWN0aW9uOigpPT5jb25zb2xlLmxvZygiQ2FsZW5kYXIiKX1dKX1yZW5kZXIoKXtyZXR1cm4gd2AKICAgICAgPHN0eWxlPgogICAgICAgIDpob3N0IHsKICAgICAgICAgIGRpc3BsYXk6IGJsb2NrOwogICAgICAgICAgcGFkZGluZzogNDBweDsKICAgICAgICAgIGNvbG9yOiAjYTNhM2EzOwogICAgICAgICAgZm9udC1mYW1pbHk6ICdHZWlzdCBTYW5zJywgJ0ludGVyJywgLWFwcGxlLXN5c3RlbSwgc2Fucy1zZXJpZjsKICAgICAgICB9CiAgICAgICAgaDEgeyBjb2xvcjogI2ZhZmFmYTsgZm9udC13ZWlnaHQ6IDYwMDsgZm9udC1zaXplOiAyNHB4OyBtYXJnaW4tYm90dG9tOiAyNHB4OyB9CiAgICAgICAgLnRhc2stbGlzdCB7CiAgICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgICAgIGdhcDogOHB4OwogICAgICAgIH0KICAgICAgICAudGFzayB7CiAgICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICAgIGdhcDogMTJweDsKICAgICAgICAgIGJhY2tncm91bmQ6IHJnYmEoMjU1LDI1NSwyNTUsMC4wMyk7CiAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCByZ2JhKDI1NSwyNTUsMjU1LDAuMDgpOwogICAgICAgICAgYm9yZGVyLXJhZGl1czogOHB4OwogICAgICAgICAgcGFkZGluZzogMTJweCAxNnB4OwogICAgICAgIH0KICAgICAgICAuY2hlY2tib3ggewogICAgICAgICAgd2lkdGg6IDE4cHg7CiAgICAgICAgICBoZWlnaHQ6IDE4cHg7CiAgICAgICAgICBib3JkZXI6IDJweCBzb2xpZCAjNTI1MjUyOwogICAgICAgICAgYm9yZGVyLXJhZGl1czogNHB4OwogICAgICAgICAgY3Vyc29yOiBwb2ludGVyOwogICAgICAgIH0KICAgICAgICAudGFzay10ZXh0IHsgY29sb3I6ICNmYWZhZmE7IGZsZXg6IDE7IH0KICAgICAgICAuZHVlLWRhdGUgeyBjb2xvcjogIzczNzM3MzsgZm9udC1zaXplOiAxMnB4OyB9CiAgICAgICAgLnByaW9yaXR5IHsKICAgICAgICAgIHBhZGRpbmc6IDJweCA4cHg7CiAgICAgICAgICBib3JkZXItcmFkaXVzOiA0cHg7CiAgICAgICAgICBmb250LXNpemU6IDExcHg7CiAgICAgICAgfQogICAgICAgIC5wcmlvcml0eS5oaWdoIHsgYmFja2dyb3VuZDogIzQ1MGEwYTsgY29sb3I6ICNmODcxNzE7IH0KICAgICAgICAucHJpb3JpdHkubWVkaXVtIHsgYmFja2dyb3VuZDogIzQ1MWEwMzsgY29sb3I6ICNmYmJmMjQ7IH0KICAgICAgPC9zdHlsZT4KICAgICAgPGgxPlRhc2tzPC9oMT4KICAgICAgPGRpdiBjbGFzcz0idGFzay1saXN0Ij4KICAgICAgICA8ZGl2IGNsYXNzPSJ0YXNrIj4KICAgICAgICAgIDxkaXYgY2xhc3M9ImNoZWNrYm94Ij48L2Rpdj4KICAgICAgICAgIDxzcGFuIGNsYXNzPSJ0YXNrLXRleHQiPlJldmlldyBwdWxsIHJlcXVlc3QgIzQyPC9zcGFuPgogICAgICAgICAgPHNwYW4gY2xhc3M9ImR1ZS1kYXRlIj5Ub2RheTwvc3Bhbj4KICAgICAgICAgIDxzcGFuIGNsYXNzPSJwcmlvcml0eSBoaWdoIj5IaWdoPC9zcGFuPgogICAgICAgIDwvZGl2PgogICAgICAgIDxkaXYgY2xhc3M9InRhc2siPgogICAgICAgICAgPGRpdiBjbGFzcz0iY2hlY2tib3giPjwvZGl2PgogICAgICAgICAgPHNwYW4gY2xhc3M9InRhc2stdGV4dCI+VXBkYXRlIGRvY3VtZW50YXRpb248L3NwYW4+CiAgICAgICAgICA8c3BhbiBjbGFzcz0iZHVlLWRhdGUiPlRvbW9ycm93PC9zcGFuPgogICAgICAgICAgPHNwYW4gY2xhc3M9InByaW9yaXR5IG1lZGl1bSI+TWVkaXVtPC9zcGFuPgogICAgICAgIDwvZGl2PgogICAgICAgIDxkaXYgY2xhc3M9InRhc2siPgogICAgICAgICAgPGRpdiBjbGFzcz0iY2hlY2tib3giPjwvZGl2PgogICAgICAgICAgPHNwYW4gY2xhc3M9InRhc2stdGV4dCI+V3JpdGUgdW5pdCB0ZXN0czwvc3Bhbj4KICAgICAgICAgIDxzcGFuIGNsYXNzPSJkdWUtZGF0ZSI+RGVjIDIwPC9zcGFuPgogICAgICAgIDwvZGl2PgogICAgICA8L2Rpdj4KICAgIGB9fTtyZXR1cm4gcz1pfSkoKSxLdXQ9KCk9PntsZXQgdD17YnJhbmRpbmc6e2xvZ29JY29uOiJsdWNpZGU6Ym94Iixsb2dvVGV4dDoiQWNtZSBBcHAifSxhcHBCYXI6e21lbnVJdGVtczpbe25hbWU6IkZpbGUiLGFjdGlvbjphc3luYygpPT57fSxzdWJtZW51Olt7bmFtZToiTmV3IFByb2plY3QiLHNob3J0Y3V0OiJDbWQrTiIsaWNvbk5hbWU6ImZpbGVQbHVzIixhY3Rpb246YXN5bmMoKT0+Y29uc29sZS5sb2coIk5ldyIpfSx7bmFtZToiT3Blbi4uLiIsc2hvcnRjdXQ6IkNtZCtPIixpY29uTmFtZToiZm9sZGVyT3BlbiIsYWN0aW9uOmFzeW5jKCk9PmNvbnNvbGUubG9nKCJPcGVuIil9LHtuYW1lOiJSZWNlbnQgUHJvamVjdHMiLGFjdGlvbjphc3luYygpPT57fSxzdWJtZW51Olt7bmFtZToibXktYXBwIixhY3Rpb246YXN5bmMoKT0+Y29uc29sZS5sb2coIk9wZW4gbXktYXBwIil9LHtuYW1lOiJjb21wb25lbnQtbGliIixhY3Rpb246YXN5bmMoKT0+Y29uc29sZS5sb2coIk9wZW4gY29tcG9uZW50LWxpYiIpfV19LHtkaXZpZGVyOiEwfSx7bmFtZToiU2F2ZSBBbGwiLHNob3J0Y3V0OiJDbWQrUyIsaWNvbk5hbWU6InNhdmUiLGFjdGlvbjphc3luYygpPT5jb25zb2xlLmxvZygiU2F2ZSIpfV19LHtuYW1lOiJFZGl0IixhY3Rpb246YXN5bmMoKT0+e30sc3VibWVudTpbe25hbWU6IlVuZG8iLHNob3J0Y3V0OiJDbWQrWiIsaWNvbk5hbWU6InVuZG8iLGFjdGlvbjphc3luYygpPT5jb25zb2xlLmxvZygiVW5kbyIpfSx7bmFtZToiUmVkbyIsc2hvcnRjdXQ6IkNtZCtTaGlmdCtaIixpY29uTmFtZToicmVkbyIsYWN0aW9uOmFzeW5jKCk9PmNvbnNvbGUubG9nKCJSZWRvIil9LHtkaXZpZGVyOiEwfSx7bmFtZToiQ3V0IixzaG9ydGN1dDoiQ21kK1giLGljb25OYW1lOiJzY2lzc29ycyIsYWN0aW9uOmFzeW5jKCk9PmNvbnNvbGUubG9nKCJDdXQiKX0se25hbWU6IkNvcHkiLHNob3J0Y3V0OiJDbWQrQyIsaWNvbk5hbWU6ImNvcHkiLGFjdGlvbjphc3luYygpPT5jb25zb2xlLmxvZygiQ29weSIpfSx7bmFtZToiUGFzdGUiLHNob3J0Y3V0OiJDbWQrViIsaWNvbk5hbWU6ImNsaXBib2FyZCIsYWN0aW9uOmFzeW5jKCk9PmNvbnNvbGUubG9nKCJQYXN0ZSIpfV19LHtuYW1lOiJWaWV3IixhY3Rpb246YXN5bmMoKT0+e30sc3VibWVudTpbe25hbWU6IlRvZ2dsZSBTaWRlYmFyIixzaG9ydGN1dDoiQ21kK0IiLGFjdGlvbjphc3luYygpPT5jb25zb2xlLmxvZygiVG9nZ2xlIHNpZGViYXIiKX0se25hbWU6IlRvZ2dsZSBBY3Rpdml0eSBMb2ciLHNob3J0Y3V0OiJDbWQrU2hpZnQrQSIsYWN0aW9uOmFzeW5jKCk9PmNvbnNvbGUubG9nKCJUb2dnbGUgYWN0aXZpdHkiKX1dfSx7bmFtZToiSGVscCIsYWN0aW9uOmFzeW5jKCk9Pnt9LHN1Ym1lbnU6W3tuYW1lOiJEb2N1bWVudGF0aW9uIixpY29uTmFtZToiYm9vayIsYWN0aW9uOmFzeW5jKCk9PmNvbnNvbGUubG9nKCJEb2NzIil9LHtuYW1lOiJLZXlib2FyZCBTaG9ydGN1dHMiLGljb25OYW1lOiJrZXlib2FyZCIsc2hvcnRjdXQ6IkNtZCsvIixhY3Rpb246YXN5bmMoKT0+Y29uc29sZS5sb2coIlNob3J0Y3V0cyIpfSx7ZGl2aWRlcjohMH0se25hbWU6IkFib3V0IixpY29uTmFtZToiaW5mbyIsYWN0aW9uOmFzeW5jKCk9PmNvbnNvbGUubG9nKCJBYm91dCIpfV19XSxicmVhZGNydW1iczoiRGFzaGJvYXJkIixzaG93V2luZG93Q29udHJvbHM6ITAsc2hvd1NlYXJjaDohMCx1c2VyOntuYW1lOiJKYW5lIFNtaXRoIixlbWFpbDoiamFuZS5zbWl0aEBleGFtcGxlLmNvbSIsc3RhdHVzOiJvbmxpbmUifSxwcm9maWxlTWVudUl0ZW1zOlt7bmFtZToiUHJvZmlsZSIsaWNvbk5hbWU6InVzZXIiLGFjdGlvbjphc3luYygpPT5jb25zb2xlLmxvZygiUHJvZmlsZSIpfSx7bmFtZToiQWNjb3VudCBTZXR0aW5ncyIsaWNvbk5hbWU6InNldHRpbmdzIixhY3Rpb246YXN5bmMoKT0+Y29uc29sZS5sb2coIlNldHRpbmdzIil9LHtkaXZpZGVyOiEwfSx7bmFtZToiSGVscCAmIFN1cHBvcnQiLGljb25OYW1lOiJoZWxwQ2lyY2xlIixhY3Rpb246YXN5bmMoKT0+Y29uc29sZS5sb2coIkhlbHAiKX0se2RpdmlkZXI6ITB9LHtuYW1lOiJTaWduIE91dCIsaWNvbk5hbWU6ImxvZ091dCIsYWN0aW9uOmFzeW5jKCk9PmNvbnNvbGUubG9nKCJTaWduIG91dCIpfV19LHZpZXdzOlt7aWQ6ImRhc2hib2FyZCIsbmFtZToiRGFzaGJvYXJkIixpY29uTmFtZToibHVjaWRlOmhvbWUiLGNvbnRlbnQ6ImRlbW8tZGFzaGJvYXJkLXZpZXciLHJvdXRlOiJkYXNoYm9hcmQifSx7aWQ6InByb2plY3RzIixuYW1lOiJQcm9qZWN0cyIsaWNvbk5hbWU6Imx1Y2lkZTpmb2xkZXIiLGNvbnRlbnQ6ImRlbW8tcHJvamVjdHMtdmlldyIscm91dGU6InByb2plY3RzIixiYWRnZTozfSx7aWQ6InRhc2tzIixuYW1lOiJUYXNrcyIsaWNvbk5hbWU6Imx1Y2lkZTpjaGVja1NxdWFyZSIsY29udGVudDoiZGVtby10YXNrcy12aWV3Iixyb3V0ZToidGFza3MiLGJhZGdlOjEyfSx7aWQ6InNldHRpbmdzIixuYW1lOiJTZXR0aW5ncyIsaWNvbk5hbWU6Imx1Y2lkZTpzZXR0aW5ncyIsY29udGVudDoiZGVtby1zZXR0aW5ncy12aWV3Iixyb3V0ZToic2V0dGluZ3MvOnNlY3Rpb24/In1dLG1haW5NZW51OntzZWN0aW9uczpbe25hbWU6Ik1haW4iLHZpZXdzOlsiZGFzaGJvYXJkIl19LHtuYW1lOiJXb3Jrc3BhY2UiLHZpZXdzOlsicHJvamVjdHMiLCJ0YXNrcyJdfV0sYm90dG9tSXRlbXM6WyJzZXR0aW5ncyJdfSxkZWZhdWx0VmlldzoiZGFzaGJvYXJkIixib3R0b21CYXI6e3Zpc2libGU6ITAsd2lkZ2V0czpbe2lkOiJzdGF0dXMiLGljb25OYW1lOiJsdWNpZGU6YWN0aXZpdHkiLGxhYmVsOiJTeXN0ZW0gT25saW5lIixzdGF0dXM6InN1Y2Nlc3MiLHRvb2x0aXA6IkFsbCBzeXN0ZW1zIG9wZXJhdGlvbmFsIixvbkNsaWNrOigpPT5jb25zb2xlLmxvZygiU3RhdHVzIGNsaWNrZWQiKX0se2lkOiJub3RpZmljYXRpb25zIixpY29uTmFtZToibHVjaWRlOmJlbGwiLGxhYmVsOiIzIG5vdGlmaWNhdGlvbnMiLHN0YXR1czoid2FybmluZyIsdG9vbHRpcDoiWW91IGhhdmUgdW5yZWFkIG5vdGlmaWNhdGlvbnMiLG9uQ2xpY2s6KCk9PmNvbnNvbGUubG9nKCJOb3RpZmljYXRpb25zIGNsaWNrZWQiKX0se2lkOiJ2ZXJzaW9uIixpY29uTmFtZToibHVjaWRlOmdpdEJyYW5jaCIsbGFiZWw6InYxLjIuMyIscG9zaXRpb246InJpZ2h0Iix0b29sdGlwOiJDdXJyZW50IHZlcnNpb24ifV0sYWN0aW9uczpbe2lkOiJ0ZXJtaW5hbCIsaWNvbk5hbWU6Imx1Y2lkZTp0ZXJtaW5hbCIsdG9vbHRpcDoiT3BlbiBUZXJtaW5hbCIscG9zaXRpb246InJpZ2h0IixvbkNsaWNrOigpPT5jb25zb2xlLmxvZygiVGVybWluYWwgY2xpY2tlZCIpfV19LG9uVmlld0NoYW5nZTooaSxyKT0+e2NvbnNvbGUubG9nKGBWaWV3IGNoYW5nZWQgdG86ICR7aX0gKCR7ci5uYW1lfSlgKX0sb25TZWFyY2g6aT0+e2NvbnNvbGUubG9nKCJTZWFyY2ggcXVlcnk6IixpKX19LGU9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7ZS5jbGFzc05hbWU9ImRlbW8tY29udGFpbmVyIixlLnN0eWxlLmNzc1RleHQ9InBvc2l0aW9uOiBhYnNvbHV0ZTsgdG9wOiAwOyBsZWZ0OiAwOyBoZWlnaHQ6IDEwMCU7IHdpZHRoOiAxMDAlOyBvdmVyZmxvdzogaGlkZGVuOyI7bGV0IGE9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGVlcy1hcHB1aSIpO3JldHVybiBlLmFwcGVuZENoaWxkKGEpLHNldFRpbWVvdXQoYXN5bmMoKT0+e2F3YWl0IGEudXBkYXRlQ29tcGxldGUsYS5jb25maWd1cmUodCksc2V0VGltZW91dCgoKT0+e2EuYWN0aXZpdHlMb2cuYWRkTWFueShbe3R5cGU6ImxvZ2luIix1c2VyOiJKYW5lIFNtaXRoIixtZXNzYWdlOiJsb2dnZWQgaW4gZnJvbSBDaHJvbWUgb24gbWFjT1MifSx7dHlwZToiY3JlYXRlIix1c2VyOiJKYW5lIFNtaXRoIixtZXNzYWdlOidjcmVhdGVkIHByb2plY3QgIkZyb250ZW5kIEFwcCInfSx7dHlwZToidXBkYXRlIix1c2VyOiJKb2huIERvZSIsbWVzc2FnZToidXBkYXRlZCBBUEkgZG9jdW1lbnRhdGlvbiJ9LHt0eXBlOiJ2aWV3Iix1c2VyOiJKYW5lIFNtaXRoIixtZXNzYWdlOiJ2aWV3ZWQgZGFzaGJvYXJkIGFuYWx5dGljcyJ9LHt0eXBlOiJkZWxldGUiLHVzZXI6IkFkbWluIixtZXNzYWdlOiJyZW1vdmVkIGRlcHJlY2F0ZWQgZW5kcG9pbnQifSx7dHlwZToiY3VzdG9tIix1c2VyOiJTeXN0ZW0iLG1lc3NhZ2U6InNjaGVkdWxlZCBiYWNrdXAgY29tcGxldGVkIixpY29uTmFtZToibHVjaWRlOmRhdGFiYXNlIn1dKX0sNTAwKSxhLnZpZXdDaGFuZ2VkJC5zdWJzY3JpYmUoaT0+e2NvbnNvbGUubG9nKCJWaWV3IGNoYW5nZWQgZXZlbnQ6IixpKSxhLnNldEJyZWFkY3J1bWJzKGkudmlldy5uYW1lKX0pLGEudmlld0xpZmVjeWNsZSQuc3Vic2NyaWJlKGk9Pntjb25zb2xlLmxvZygiTGlmZWN5Y2xlIGV2ZW50OiIsaS50eXBlLGkudmlld0lkKX0pLHNldFRpbWVvdXQoKCk9PnthLnNldE1haW5NZW51QmFkZ2UoInRhc2tzIiwxNSksYS5hY3Rpdml0eUxvZy5hZGQoe3R5cGU6InVwZGF0ZSIsdXNlcjoiU3lzdGVtIixtZXNzYWdlOiJuZXcgdGFza3MgYWRkZWQifSl9LDVlMyl9LDApLHdgCiAgICA8ZGVlcy1kZW1vd3JhcHBlcj4KICAgICAgJHtlfQogICAgPC9kZWVzLWRlbW93cmFwcGVyPgogIGB9fSk7dmFyIHo4LGlWPWIoKCk9Pnt1ZSgpO3o4PWNsYXNze3ZpZXdzPW5ldyBNYXA7aW5zdGFuY2VzPW5ldyBNYXA7Y3VycmVudFZpZXdJZD1udWxsO2FwcHVpPW51bGw7c2V0QXBwdWlSZWYoZSl7dGhpcy5hcHB1aT1lfXJlZ2lzdGVyKGUpe3RoaXMudmlld3MuaGFzKGUuaWQpJiZjb25zb2xlLndhcm4oYFZpZXcgd2l0aCBpZCAiJHtlLmlkfSIgYWxyZWFkeSByZWdpc3RlcmVkLiBPdmVyd3JpdGluZy5gKSx0aGlzLnZpZXdzLnNldChlLmlkLGUpfXJlZ2lzdGVyQWxsKGUpe2UuZm9yRWFjaChhPT50aGlzLnJlZ2lzdGVyKGEpKX1nZXQoZSl7cmV0dXJuIHRoaXMudmlld3MuZ2V0KGUpfWdldFZpZXdJZHMoKXtyZXR1cm4gQXJyYXkuZnJvbSh0aGlzLnZpZXdzLmtleXMoKSl9Z2V0QWxsKCl7cmV0dXJuIEFycmF5LmZyb20odGhpcy52aWV3cy52YWx1ZXMoKSl9Z2V0Um91dGUoZSl7bGV0IGE9dGhpcy52aWV3cy5nZXQoZSk7cmV0dXJuIGE/LnJvdXRlfHxhPy5pZHx8IiJ9ZmluZEJ5Um91dGUoZSl7Zm9yKGxldCBhIG9mIHRoaXMudmlld3MudmFsdWVzKCkpe2xldCBpPWEucm91dGV8fGEuaWQscj10aGlzLm1hdGNoUm91dGUoaSxlKTtpZihyIT09bnVsbClyZXR1cm57dmlldzphLHBhcmFtczpyfX19bWF0Y2hSb3V0ZShlLGEpe2xldCBpPWUuc3BsaXQoIi8iKSxyPWEuc3BsaXQoIi8iKTtpZihpLmxlbmd0aD4wJiZpW2kubGVuZ3RoLTFdLmVuZHNXaXRoKCI/Iikpe2lmKHIubGVuZ3RoPGkubGVuZ3RoLTF8fHIubGVuZ3RoPmkubGVuZ3RoKXJldHVybiBudWxsfWVsc2UgaWYoaS5sZW5ndGghPT1yLmxlbmd0aClyZXR1cm4gbnVsbDtsZXQgbj17fTtmb3IobGV0IG89MDtvPGkubGVuZ3RoO28rKyl7bGV0IGQ9aVtvXSxjPWQuZW5kc1dpdGgoIj8iKTtpZihjJiYoZD1kLnNsaWNlKDAsLTEpKSxkLnN0YXJ0c1dpdGgoIjoiKSl7bGV0IGg9ZC5zbGljZSgxKTtpZihyW29dIT09dm9pZCAwKW5baF09cltvXTtlbHNlIGlmKCFjKXJldHVybiBudWxsfWVsc2UgaWYocltvXSE9PWQpcmV0dXJuIG51bGx9cmV0dXJuIG59YXN5bmMgY2FuTGVhdmVDdXJyZW50Vmlldygpe2lmKCF0aGlzLmN1cnJlbnRWaWV3SWQpcmV0dXJuITA7bGV0IGU9dGhpcy5pbnN0YW5jZXMuZ2V0KHRoaXMuY3VycmVudFZpZXdJZCk7aWYoIWUpcmV0dXJuITA7bGV0IGE9ZTtyZXR1cm4gdHlwZW9mIGEuY2FuRGVhY3RpdmF0ZT09ImZ1bmN0aW9uIj9hd2FpdCBhLmNhbkRlYWN0aXZhdGUoKTohMH1hc3luYyBhY3RpdmF0ZVZpZXcoZSxhLGkpe2xldCByPXRoaXMudmlld3MuZ2V0KGUpO2lmKCFyKXJldHVybiBjb25zb2xlLmVycm9yKGBWaWV3ICIke2V9IiBub3QgZm91bmQgaW4gcmVnaXN0cnlgKSxudWxsO2xldCBzPXIuY2FjaGUhPT0hMTt0aGlzLmN1cnJlbnRWaWV3SWQmJnRoaXMuY3VycmVudFZpZXdJZCE9PWUmJmF3YWl0IHRoaXMuZGVhY3RpdmF0ZVZpZXcodGhpcy5jdXJyZW50Vmlld0lkKTtsZXQgbj1zP3RoaXMuaW5zdGFuY2VzLmdldChlKTp2b2lkIDA7aWYobiluLnN0eWxlLmRpc3BsYXk9IiI7ZWxzZXtpZihuPWF3YWl0IHRoaXMuY3JlYXRlVmlld0VsZW1lbnQociksIW4pcmV0dXJuIGNvbnNvbGUuZXJyb3IoYEZhaWxlZCB0byBjcmVhdGUgZWxlbWVudCBmb3IgdmlldyAiJHtlfSJgKSxudWxsO2EuYXBwZW5kQ2hpbGQobikscyYmdGhpcy5pbnN0YW5jZXMuc2V0KGUsbil9cmV0dXJuIHRoaXMuY3VycmVudFZpZXdJZD1lLGF3YWl0IHRoaXMuY2FsbE9uQWN0aXZhdGUobixlLGkpLG59YXN5bmMgZGVhY3RpdmF0ZVZpZXcoZSl7bGV0IGE9dGhpcy5pbnN0YW5jZXMuZ2V0KGUpO2lmKCFhKXJldHVybjtsZXQgaT1hO3R5cGVvZiBpLm9uRGVhY3RpdmF0ZT09ImZ1bmN0aW9uIiYmYXdhaXQgaS5vbkRlYWN0aXZhdGUoKSxhLnN0eWxlLmRpc3BsYXk9Im5vbmUifWFzeW5jIGNyZWF0ZVZpZXdFbGVtZW50KGUpe2xldCBhPWUuY29udGVudDtpZih0eXBlb2YgYT09ImZ1bmN0aW9uIiYmIShhLnByb3RvdHlwZSBpbnN0YW5jZW9mIEhUTUxFbGVtZW50KSYmYS5jb25zdHJ1Y3Rvci5uYW1lPT09IkFzeW5jRnVuY3Rpb24iKXRyeXthPWF3YWl0IGEoKX1jYXRjaChyKXtyZXR1cm4gY29uc29sZS5lcnJvcihgRmFpbGVkIHRvIGxvYWQgYXN5bmMgY29udGVudCBmb3IgdmlldyAiJHtlLmlkfSI6YCxyKSxudWxsfWxldCBpO2lmKHR5cGVvZiBhPT0ic3RyaW5nIilpPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoYSk7ZWxzZSBpZih0eXBlb2YgYT09ImZ1bmN0aW9uIilpZihhLnByb3RvdHlwZSBpbnN0YW5jZW9mIEhUTUxFbGVtZW50KWk9bmV3IGE7ZWxzZXtsZXQgcj1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTtyLmNsYXNzTmFtZT0idmlldy1jb250ZW50LXdyYXBwZXIiLHIuc3R5bGUuY3NzVGV4dD0iZGlzcGxheTogY29udGVudHM7IjtsZXQgcz1hKCk7cm4ocyxyKSxpPXJ9ZWxzZSByZXR1cm4gY29uc29sZS5lcnJvcihgSW52YWxpZCBjb250ZW50IHR5cGUgZm9yIHZpZXcgIiR7ZS5pZH0iYCksbnVsbDtyZXR1cm4gaS5kYXRhc2V0LnZpZXdJZD1lLmlkLGl9YXN5bmMgY2FsbE9uQWN0aXZhdGUoZSxhLGkpe2xldCByPWU7aWYodHlwZW9mIHIub25BY3RpdmF0ZT09ImZ1bmN0aW9uIil7bGV0IHM9e2FwcHVpOnRoaXMuYXBwdWksdmlld0lkOmEscGFyYW1zOml9O2F3YWl0IHIub25BY3RpdmF0ZShzKX19cmVuZGVyVmlldyhlLGEpe2xldCBpPXRoaXMudmlld3MuZ2V0KGUpO2lmKCFpKXJldHVybiBjb25zb2xlLmVycm9yKGBWaWV3ICIke2V9IiBub3QgZm91bmQgaW4gcmVnaXN0cnlgKSxudWxsO2EuaW5uZXJIVE1MPSIiO2xldCByLHM9aS5jb250ZW50O2lmKHR5cGVvZiBzPT0ic3RyaW5nIilyPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQocyk7ZWxzZSBpZih0eXBlb2Ygcz09ImZ1bmN0aW9uIilpZihzLnByb3RvdHlwZSBpbnN0YW5jZW9mIEhUTUxFbGVtZW50KXI9bmV3IHM7ZWxzZXtsZXQgbj1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTtuLmNsYXNzTmFtZT0idmlldy1jb250ZW50LXdyYXBwZXIiLG4uc3R5bGUuY3NzVGV4dD0iZGlzcGxheTogY29udGVudHM7IjtsZXQgbz1zKCk7cm4obyxuKSxyPW59ZWxzZSByZXR1cm4gY29uc29sZS5lcnJvcihgSW52YWxpZCBjb250ZW50IHR5cGUgZm9yIHZpZXcgIiR7ZX0iYCksbnVsbDtyZXR1cm4gYS5hcHBlbmRDaGlsZChyKSx0aGlzLmluc3RhbmNlcy5zZXQoZSxyKSx0aGlzLmN1cnJlbnRWaWV3SWQ9ZSxyfWdldEN1cnJlbnRWaWV3SWQoKXtyZXR1cm4gdGhpcy5jdXJyZW50Vmlld0lkfWdldEluc3RhbmNlKGUpe3JldHVybiB0aGlzLmluc3RhbmNlcy5nZXQoZSl9Y2xlYXJJbnN0YW5jZShlKXtsZXQgYT10aGlzLmluc3RhbmNlcy5nZXQoZSk7YSYmYS5wYXJlbnROb2RlJiZhLnBhcmVudE5vZGUucmVtb3ZlQ2hpbGQoYSksdGhpcy5pbnN0YW5jZXMuZGVsZXRlKGUpLHRoaXMuY3VycmVudFZpZXdJZD09PWUmJih0aGlzLmN1cnJlbnRWaWV3SWQ9bnVsbCl9Y2xlYXJJbnN0YW5jZXMoKXtmb3IobGV0W2UsYV1vZiB0aGlzLmluc3RhbmNlcylhLnBhcmVudE5vZGUmJmEucGFyZW50Tm9kZS5yZW1vdmVDaGlsZChhKTt0aGlzLmluc3RhbmNlcy5jbGVhcigpLHRoaXMuY3VycmVudFZpZXdJZD1udWxsfXVucmVnaXN0ZXIoZSl7cmV0dXJuIHRoaXMuY2xlYXJJbnN0YW5jZShlKSx0aGlzLnZpZXdzLmRlbGV0ZShlKX1jbGVhcigpe3RoaXMudmlld3MuY2xlYXIoKSx0aGlzLmNsZWFySW5zdGFuY2VzKCl9aGFzKGUpe3JldHVybiB0aGlzLnZpZXdzLmhhcyhlKX1nZXQgc2l6ZSgpe3JldHVybiB0aGlzLnZpZXdzLnNpemV9fX0pO3ZhciBKdXQsZWZ0PWIoKCk9Pnt1ZSgpO0p1dD0oKT0+d2AKICA8c3R5bGU+CiAgICAuZGVtby1tYWlubWVudS1jb250YWluZXIgewogICAgICBkaXNwbGF5OiBmbGV4OwogICAgICBoZWlnaHQ6IDEwMCU7CiAgICAgIGJhY2tncm91bmQ6ICMxYTFhMWE7CiAgICAgIGJvcmRlci1yYWRpdXM6IDhweDsKICAgIH0KICAgIC5kZW1vLW1haW5tZW51LWNvbnRhaW5lciAuc3BhY2VyIHsKICAgICAgZmxleDogMTsKICAgICAgYmFja2dyb3VuZDogIzBmMGYwZjsKICAgIH0KICA8L3N0eWxlPgogIDxkaXYgY2xhc3M9ImRlbW8tbWFpbm1lbnUtY29udGFpbmVyIj4KICAgIDxkZWVzLWFwcHVpLW1haW5tZW51CiAgICAgIC5sb2dvSWNvbj0keyJsdWNpZGU6Ym94In0KICAgICAgLmxvZ29UZXh0PSR7IkFjbWUgQXBwIn0KICAgICAgLm1lbnVHcm91cHM9JHtbe3RhYnM6W3trZXk6IkRhc2hib2FyZCIsaWNvbk5hbWU6Imx1Y2lkZTpob21lIixhY3Rpb246KCk9PmNvbnNvbGUubG9nKCJEYXNoYm9hcmQiKX0se2tleToiSW5ib3giLGljb25OYW1lOiJsdWNpZGU6aW5ib3giLGFjdGlvbjooKT0+Y29uc29sZS5sb2coIkluYm94Iil9XX0se25hbWU6IldvcmtzcGFjZSIsdGFiczpbe2tleToiUHJvamVjdHMiLGljb25OYW1lOiJsdWNpZGU6Zm9sZGVyIixhY3Rpb246KCk9PmNvbnNvbGUubG9nKCJQcm9qZWN0cyIpfSx7a2V5OiJUYXNrcyIsaWNvbk5hbWU6Imx1Y2lkZTpjaGVja1NxdWFyZSIsYWN0aW9uOigpPT5jb25zb2xlLmxvZygiVGFza3MiKX0se2tleToiRG9jdW1lbnRzIixpY29uTmFtZToibHVjaWRlOmZpbGVUZXh0IixhY3Rpb246KCk9PmNvbnNvbGUubG9nKCJEb2N1bWVudHMiKX1dfSx7bmFtZToiQW5hbHl0aWNzIix0YWJzOlt7a2V5OiJSZXBvcnRzIixpY29uTmFtZToibHVjaWRlOmJhckNoYXJ0MyIsYWN0aW9uOigpPT5jb25zb2xlLmxvZygiUmVwb3J0cyIpfSx7a2V5OiJJbnNpZ2h0cyIsaWNvbk5hbWU6Imx1Y2lkZTpsaWdodGJ1bGIiLGFjdGlvbjooKT0+Y29uc29sZS5sb2coIkluc2lnaHRzIil9XX1dfQogICAgICAuYm90dG9tVGFicz0ke1t7a2V5OiJTZXR0aW5ncyIsaWNvbk5hbWU6Imx1Y2lkZTpzZXR0aW5ncyIsYWN0aW9uOigpPT5jb25zb2xlLmxvZygiU2V0dGluZ3MiKX0se2tleToiSGVscCIsaWNvbk5hbWU6Imx1Y2lkZTpoZWxwQ2lyY2xlIixhY3Rpb246KCk9PmNvbnNvbGUubG9nKCJIZWxwIil9XX0KICAgID48L2RlZXMtYXBwdWktbWFpbm1lbnU+CiAgICA8ZGl2IGNsYXNzPSJzcGFjZXIiPjwvZGl2PgogIDwvZGl2PgpgfSk7dmFyIHBvLGZhLHRmdCxyVj1iKCgpPT57czIoKTtzbygpO3VpKCk7dWUoKTtuMigpO2VmdCgpO3FlKCk7cG89ZnVuY3Rpb24odCxlLGEsaSxyLHMpe2Z1bmN0aW9uIG4oeCl7aWYoeCE9PXZvaWQgMCYmdHlwZW9mIHghPSJmdW5jdGlvbiIpdGhyb3cgbmV3IFR5cGVFcnJvcigiRnVuY3Rpb24gZXhwZWN0ZWQiKTtyZXR1cm4geH1mb3IodmFyIG89aS5raW5kLGQ9bz09PSJnZXR0ZXIiPyJnZXQiOm89PT0ic2V0dGVyIj8ic2V0IjoidmFsdWUiLGM9IWUmJnQ/aS5zdGF0aWM/dDp0LnByb3RvdHlwZTpudWxsLGg9ZXx8KGM/T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihjLGkubmFtZSk6e30pLGwsZj0hMSxnPWEubGVuZ3RoLTE7Zz49MDtnLS0pe3ZhciB5PXt9O2Zvcih2YXIgdiBpbiBpKXlbdl09dj09PSJhY2Nlc3MiP3t9Omlbdl07Zm9yKHZhciB2IGluIGkuYWNjZXNzKXkuYWNjZXNzW3ZdPWkuYWNjZXNzW3ZdO3kuYWRkSW5pdGlhbGl6ZXI9ZnVuY3Rpb24oeCl7aWYoZil0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgYWRkIGluaXRpYWxpemVycyBhZnRlciBkZWNvcmF0aW9uIGhhcyBjb21wbGV0ZWQiKTtzLnB1c2gobih4fHxudWxsKSl9O3ZhciBtPSgwLGFbZ10pKG89PT0iYWNjZXNzb3IiP3tnZXQ6aC5nZXQsc2V0Omguc2V0fTpoW2RdLHkpO2lmKG89PT0iYWNjZXNzb3IiKXtpZihtPT09dm9pZCAwKWNvbnRpbnVlO2lmKG09PT1udWxsfHx0eXBlb2YgbSE9Im9iamVjdCIpdGhyb3cgbmV3IFR5cGVFcnJvcigiT2JqZWN0IGV4cGVjdGVkIik7KGw9bihtLmdldCkpJiYoaC5nZXQ9bCksKGw9bihtLnNldCkpJiYoaC5zZXQ9bCksKGw9bihtLmluaXQpKSYmci51bnNoaWZ0KGwpfWVsc2UobD1uKG0pKSYmKG89PT0iZmllbGQiP3IudW5zaGlmdChsKTpoW2RdPWwpfWMmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShjLGkubmFtZSxoKSxmPSEwfSxmYT1mdW5jdGlvbih0LGUsYSl7Zm9yKHZhciBpPWFyZ3VtZW50cy5sZW5ndGg+MixyPTA7cjxlLmxlbmd0aDtyKyspYT1pP2Vbcl0uY2FsbCh0LGEpOmVbcl0uY2FsbCh0KTtyZXR1cm4gaT9hOnZvaWQgMH0sdGZ0PSgoKT0+e2xldCB0PVtwZSgiZGVlcy1hcHB1aS1tYWlubWVudSIpXSxlLGE9W10saSxyPXhlLHMsbj1bXSxvPVtdLGQsYz1bXSxoPVtdLGwsZj1bXSxnPVtdLHksdj1bXSxtPVtdLHgsTT1bXSxTPVtdLEYsXz1bXSxrPVtdLE4sTD1bXSxBPVtdO3ZhciBxPWNsYXNzIGV4dGVuZHMgcntzdGF0aWN7aT10aGlzfXN0YXRpY3tsZXQgQz10eXBlb2YgU3ltYm9sPT0iZnVuY3Rpb24iJiZTeW1ib2wubWV0YWRhdGE/T2JqZWN0LmNyZWF0ZShyW1N5bWJvbC5tZXRhZGF0YV0/P251bGwpOnZvaWQgMDtzPVtJKHt0eXBlOlN0cmluZ30pXSxkPVtJKHt0eXBlOlN0cmluZ30pXSxsPVtJKHt0eXBlOkFycmF5fSldLHk9W0koe3R5cGU6QXJyYXl9KV0seD1bSSh7dHlwZTpBcnJheX0pXSxGPVtJKCldLE49W0koe3R5cGU6Qm9vbGVhbixyZWZsZWN0OiEwfSldLHBvKHRoaXMsbnVsbCxzLHtraW5kOiJhY2Nlc3NvciIsbmFtZToibG9nb0ljb24iLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOno9PiJsb2dvSWNvbiJpbiB6LGdldDp6PT56LmxvZ29JY29uLHNldDooeixFKT0+e3oubG9nb0ljb249RX19LG1ldGFkYXRhOkN9LG4sbykscG8odGhpcyxudWxsLGQse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJsb2dvVGV4dCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6ej0+ImxvZ29UZXh0ImluIHosZ2V0Ono9PnoubG9nb1RleHQsc2V0Oih6LEUpPT57ei5sb2dvVGV4dD1FfX0sbWV0YWRhdGE6Q30sYyxoKSxwbyh0aGlzLG51bGwsbCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6Im1lbnVHcm91cHMiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOno9PiJtZW51R3JvdXBzImluIHosZ2V0Ono9PnoubWVudUdyb3VwcyxzZXQ6KHosRSk9Pnt6Lm1lbnVHcm91cHM9RX19LG1ldGFkYXRhOkN9LGYsZykscG8odGhpcyxudWxsLHkse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJib3R0b21UYWJzIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczp6PT4iYm90dG9tVGFicyJpbiB6LGdldDp6PT56LmJvdHRvbVRhYnMsc2V0Oih6LEUpPT57ei5ib3R0b21UYWJzPUV9fSxtZXRhZGF0YTpDfSx2LG0pLHBvKHRoaXMsbnVsbCx4LHtraW5kOiJhY2Nlc3NvciIsbmFtZToidGFicyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6ej0+InRhYnMiaW4geixnZXQ6ej0+ei50YWJzLHNldDooeixFKT0+e3oudGFicz1FfX0sbWV0YWRhdGE6Q30sTSxTKSxwbyh0aGlzLG51bGwsRix7a2luZDoiYWNjZXNzb3IiLG5hbWU6InNlbGVjdGVkVGFiIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczp6PT4ic2VsZWN0ZWRUYWIiaW4geixnZXQ6ej0+ei5zZWxlY3RlZFRhYixzZXQ6KHosRSk9Pnt6LnNlbGVjdGVkVGFiPUV9fSxtZXRhZGF0YTpDfSxfLGspLHBvKHRoaXMsbnVsbCxOLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiY29sbGFwc2VkIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczp6PT4iY29sbGFwc2VkImluIHosZ2V0Ono9PnouY29sbGFwc2VkLHNldDooeixFKT0+e3ouY29sbGFwc2VkPUV9fSxtZXRhZGF0YTpDfSxMLEEpLHBvKG51bGwsZT17dmFsdWU6aX0sdCx7a2luZDoiY2xhc3MiLG5hbWU6aS5uYW1lLG1ldGFkYXRhOkN9LG51bGwsYSkscT1pPWUudmFsdWUsQyYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGksU3ltYm9sLm1ldGFkYXRhLHtlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMCx2YWx1ZTpDfSl9c3RhdGljIGRlbW89SnV0O3N0YXRpYyBkZW1vR3JvdXBzPVsiQXBwIFVJIl07I2U9ZmEodGhpcyxuLCIiKTtnZXQgbG9nb0ljb24oKXtyZXR1cm4gdGhpcy4jZX1zZXQgbG9nb0ljb24oQyl7dGhpcy4jZT1DfSN0PShmYSh0aGlzLG8pLGZhKHRoaXMsYywiIikpO2dldCBsb2dvVGV4dCgpe3JldHVybiB0aGlzLiN0fXNldCBsb2dvVGV4dChDKXt0aGlzLiN0PUN9I2E9KGZhKHRoaXMsaCksZmEodGhpcyxmLFtdKSk7Z2V0IG1lbnVHcm91cHMoKXtyZXR1cm4gdGhpcy4jYX1zZXQgbWVudUdyb3VwcyhDKXt0aGlzLiNhPUN9I2k9KGZhKHRoaXMsZyksZmEodGhpcyx2LFtdKSk7Z2V0IGJvdHRvbVRhYnMoKXtyZXR1cm4gdGhpcy4jaX1zZXQgYm90dG9tVGFicyhDKXt0aGlzLiNpPUN9I3I9KGZhKHRoaXMsbSksZmEodGhpcyxNLFtdKSk7Z2V0IHRhYnMoKXtyZXR1cm4gdGhpcy4jcn1zZXQgdGFicyhDKXt0aGlzLiNyPUN9I3M9KGZhKHRoaXMsUyksZmEodGhpcyxfLHZvaWQgMCkpO2dldCBzZWxlY3RlZFRhYigpe3JldHVybiB0aGlzLiNzfXNldCBzZWxlY3RlZFRhYihDKXt0aGlzLiNzPUN9I249KGZhKHRoaXMsayksZmEodGhpcyxMLCExKSk7Z2V0IGNvbGxhcHNlZCgpe3JldHVybiB0aGlzLiNufXNldCBjb2xsYXBzZWQoQyl7dGhpcy4jbj1DfXN0YXRpYyBzdHlsZXM9W0NlLHAuZGVmYXVsdFN0eWxlcyxRYAogICAgICAvKiBUT0RPOiBNaWdyYXRlIGhhcmRjb2RlZCB2YWx1ZXMgdG8gLS1kZWVzLSogQ1NTIHZhcmlhYmxlcyAqLwogICAgICA6aG9zdCB7CiAgICAgICAgLS1tZW51LXdpZHRoLWV4cGFuZGVkOiAyMDBweDsKICAgICAgICAtLW1lbnUtd2lkdGgtY29sbGFwc2VkOiA1NnB4OwogICAgICAgIC0tdG9vbHRpcC1iZzogJHtwLmJkVGhlbWUoIiMxODE4MWIiLCIjZmFmYWZhIil9OwogICAgICAgIC0tdG9vbHRpcC1mZzogJHtwLmJkVGhlbWUoIiNmYWZhZmEiLCIjMTgxODFiIil9OwogICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgICBkaXNwbGF5OiBibG9jazsKICAgICAgICBoZWlnaHQ6IDEwMCU7CiAgICAgIH0KCiAgICAgIC5tYWluQ29udGFpbmVyIHsKICAgICAgICBjb2xvcjogJHtwLmJkVGhlbWUoIiM2NjYiLCIjY2NjIil9OwogICAgICAgIHotaW5kZXg6ICR7cjIuZml4ZWQuYXBwQmFyfTsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICAgIHdpZHRoOiB2YXIoLS1tZW51LXdpZHRoLWV4cGFuZGVkKTsKICAgICAgICBoZWlnaHQ6IDEwMCU7CiAgICAgICAgYmFja2dyb3VuZDogJHtwLmJkVGhlbWUoIiNmYWZhZmEiLCIjMGEwYTBhIil9OwogICAgICAgIHVzZXItc2VsZWN0OiBub25lOwogICAgICAgIGJvcmRlci1yaWdodDogMXB4IHNvbGlkICR7cC5iZFRoZW1lKCIjZTVlNWU1IiwiIzFhMWExYSIpfTsKICAgICAgICBmb250LWZhbWlseTogJ0dlaXN0IFNhbnMnLCAnSW50ZXInLCAtYXBwbGUtc3lzdGVtLCBCbGlua01hY1N5c3RlbUZvbnQsIHNhbnMtc2VyaWY7CiAgICAgICAgdHJhbnNpdGlvbjogd2lkdGggMC4yNXMgZWFzZTsKICAgICAgfQoKICAgICAgOmhvc3QoW2NvbGxhcHNlZF0pIC5tYWluQ29udGFpbmVyIHsKICAgICAgICB3aWR0aDogdmFyKC0tbWVudS13aWR0aC1jb2xsYXBzZWQpOwogICAgICB9CgogICAgICAvKiBGbG9hdGluZyBjb2xsYXBzZSB0b2dnbGUgYnV0dG9uICovCiAgICAgIC5jb2xsYXBzZS10b2dnbGUgewogICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgICByaWdodDogLTEycHg7CiAgICAgICAgdG9wOiAyNHB4OwogICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTsKICAgICAgICB3aWR0aDogMjRweDsKICAgICAgICBoZWlnaHQ6IDI0cHg7CiAgICAgICAgYm9yZGVyLXJhZGl1czogNTAlOwogICAgICAgIGJhY2tncm91bmQ6ICR7cC5iZFRoZW1lKCIjZmZmZmZmIiwiIzI3MjcyYSIpfTsKICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAke3AuYmRUaGVtZSgiI2U1ZTVlNSIsIiMzZjNmNDYiKX07CiAgICAgICAgYm94LXNoYWRvdzogMCAycHggNHB4IHJnYmEoMCwgMCwgMCwgMC4xKTsKICAgICAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICAgICAgei1pbmRleDogMTA7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOwogICAgICAgIGNvbG9yOiAke3AuYmRUaGVtZSgiIzczNzM3MyIsIiNhMWExYWEiKX07CiAgICAgICAgb3BhY2l0eTogMDsKICAgICAgICB0cmFuc2l0aW9uOiBvcGFjaXR5IDAuMnMgZWFzZSwgYmFja2dyb3VuZCAwLjE1cyBlYXNlOwogICAgICAgIHBhZGRpbmc6IDA7CiAgICAgIH0KCiAgICAgIC5jb2xsYXBzZS10b2dnbGU6aG92ZXIgewogICAgICAgIGJhY2tncm91bmQ6ICR7cC5iZFRoZW1lKCIjZjRmNGY1IiwiIzNmM2Y0NiIpfTsKICAgICAgICBjb2xvcjogJHtwLmJkVGhlbWUoIiMwYTBhMGEiLCIjZmFmYWZhIil9OwogICAgICB9CgogICAgICA6aG9zdCg6aG92ZXIpIC5jb2xsYXBzZS10b2dnbGUgewogICAgICAgIG9wYWNpdHk6IDE7CiAgICAgIH0KCiAgICAgIC5jb2xsYXBzZS10b2dnbGUgZGVlcy1pY29uIHsKICAgICAgICBmb250LXNpemU6IDE0cHg7CiAgICAgIH0KCiAgICAgIC8qIExvZ28gU2VjdGlvbiAqLwogICAgICAubG9nb1NlY3Rpb24gewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBnYXA6IDEwcHg7CiAgICAgICAgaGVpZ2h0OiA0OHB4OwogICAgICAgIHBhZGRpbmc6IDAgMTRweDsKICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHtwLmJkVGhlbWUoIiNlNWU1ZTUiLCIjMWExYTFhIil9OwogICAgICAgIGZsZXgtc2hyaW5rOiAwOwogICAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7CiAgICAgIH0KCiAgICAgIC5sb2dvU2VjdGlvbiAubG9nb0ljb24gewogICAgICAgIGZvbnQtc2l6ZTogMjJweDsKICAgICAgICBjb2xvcjogJHtwLmJkVGhlbWUoIiMwYTBhMGEiLCIjZmFmYWZhIil9OwogICAgICAgIGZsZXgtc2hyaW5rOiAwOwogICAgICB9CgogICAgICAubG9nb1NlY3Rpb24gLmxvZ29UZXh0IHsKICAgICAgICBmbGV4OiAxOwogICAgICAgIGZvbnQtc2l6ZTogMTVweDsKICAgICAgICBmb250LXdlaWdodDogNjAwOwogICAgICAgIGNvbG9yOiAke3AuYmRUaGVtZSgiIzBhMGEwYSIsIiNmYWZhZmEiKX07CiAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDsKICAgICAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzOwogICAgICAgIHRyYW5zaXRpb246IG9wYWNpdHkgMC4ycyBlYXNlLCB3aWR0aCAwLjI1cyBlYXNlOwogICAgICB9CgogICAgICA6aG9zdChbY29sbGFwc2VkXSkgLmxvZ29TZWN0aW9uIHsKICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKICAgICAgICBwYWRkaW5nOiAwOwogICAgICAgIGdhcDogMDsKICAgICAgfQoKICAgICAgOmhvc3QoW2NvbGxhcHNlZF0pIC5sb2dvU2VjdGlvbiAubG9nb1RleHQgewogICAgICAgIGRpc3BsYXk6IG5vbmU7CiAgICAgIH0KCiAgICAgIC8qIE1pZGRsZSBTZWN0aW9uIChzY3JvbGxhYmxlKSAqLwogICAgICAubWVudVNlY3Rpb24gewogICAgICAgIGZsZXg6IDE7CiAgICAgICAgb3ZlcmZsb3cteTogYXV0bzsKICAgICAgICBvdmVyZmxvdy14OiBoaWRkZW47CiAgICAgICAgb3ZlcnNjcm9sbC1iZWhhdmlvcjogY29udGFpbjsKICAgICAgICBwYWRkaW5nOiA4cHggMDsKICAgICAgfQoKICAgICAgLm1lbnVTZWN0aW9uOjotd2Via2l0LXNjcm9sbGJhciB7CiAgICAgICAgd2lkdGg6IDZweDsKICAgICAgfQoKICAgICAgLm1lbnVTZWN0aW9uOjotd2Via2l0LXNjcm9sbGJhci10cmFjayB7CiAgICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7CiAgICAgIH0KCiAgICAgIC5tZW51U2VjdGlvbjo6LXdlYmtpdC1zY3JvbGxiYXItdGh1bWIgewogICAgICAgIGJhY2tncm91bmQ6ICR7cC5iZFRoZW1lKCJyZ2JhKDAsIDAsIDAsIDAuMTUpIiwicmdiYSgyNTUsIDI1NSwgMjU1LCAwLjE1KSIpfTsKICAgICAgICBib3JkZXItcmFkaXVzOiAzcHg7CiAgICAgIH0KCiAgICAgIC5tZW51U2VjdGlvbjo6LXdlYmtpdC1zY3JvbGxiYXItdGh1bWI6aG92ZXIgewogICAgICAgIGJhY2tncm91bmQ6ICR7cC5iZFRoZW1lKCJyZ2JhKDAsIDAsIDAsIDAuMjUpIiwicmdiYSgyNTUsIDI1NSwgMjU1LCAwLjI1KSIpfTsKICAgICAgfQoKICAgICAgLyogTWVudSBHcm91cCAqLwogICAgICAubWVudUdyb3VwIHsKICAgICAgICBwYWRkaW5nOiAwIDhweDsKICAgICAgICBtYXJnaW4tYm90dG9tOiA4cHg7CiAgICAgIH0KCiAgICAgIC5tZW51R3JvdXA6bGFzdC1jaGlsZCB7CiAgICAgICAgbWFyZ2luLWJvdHRvbTogMDsKICAgICAgfQoKICAgICAgLmdyb3VwSGVhZGVyIHsKICAgICAgICBwYWRkaW5nOiA4cHggMTJweCA2cHg7CiAgICAgICAgZm9udC1zaXplOiAxMXB4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7CiAgICAgICAgY29sb3I6ICR7cC5iZFRoZW1lKCIjNzM3MzczIiwiIzczNzM3MyIpfTsKICAgICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlOwogICAgICAgIGxldHRlci1zcGFjaW5nOiAwLjVweDsKICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwOwogICAgICAgIG92ZXJmbG93OiBoaWRkZW47CiAgICAgICAgdHJhbnNpdGlvbjogb3BhY2l0eSAwLjJzIGVhc2UsIG1heC1oZWlnaHQgMC4yNXMgZWFzZTsKICAgICAgICBtYXgtaGVpZ2h0OiAzMHB4OwogICAgICB9CgogICAgICA6aG9zdChbY29sbGFwc2VkXSkgLmdyb3VwSGVhZGVyIHsKICAgICAgICBvcGFjaXR5OiAwOwogICAgICAgIG1heC1oZWlnaHQ6IDA7CiAgICAgICAgcGFkZGluZzogMDsKICAgICAgICBtYXJnaW46IDA7CiAgICAgIH0KCiAgICAgIC5ncm91cFRhYnMgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgICBnYXA6IDJweDsKICAgICAgfQoKICAgICAgOmhvc3QoW2NvbGxhcHNlZF0pIC5tZW51R3JvdXAgewogICAgICAgIHBhZGRpbmc6IDAgNHB4OwogICAgICB9CgogICAgICAvKiBUYWIgSXRlbSAqLwogICAgICAudGFiIHsKICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGdhcDogMTJweDsKICAgICAgICBwYWRkaW5nOiAxMHB4IDEycHg7CiAgICAgICAgZm9udC1zaXplOiAxM3B4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7CiAgICAgICAgYm9yZGVyLXJhZGl1czogNnB4OwogICAgICAgIGN1cnNvcjogcG9pbnRlcjsKICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC4xNXMgZWFzZTsKICAgICAgICBjb2xvcjogJHtwLmJkVGhlbWUoIiM1MjUyNTIiLCIjYTNhM2EzIil9OwogICAgICB9CgogICAgICAudGFiOmhvdmVyIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke3AuYmRUaGVtZSgicmdiYSgwLCAwLCAwLCAwLjA0KSIsInJnYmEoMjU1LCAyNTUsIDI1NSwgMC4wNikiKX07CiAgICAgICAgY29sb3I6ICR7cC5iZFRoZW1lKCIjMjYyNjI2IiwiI2U1ZTVlNSIpfTsKICAgICAgfQoKICAgICAgLnRhYjphY3RpdmUgewogICAgICAgIGJhY2tncm91bmQ6ICR7cC5iZFRoZW1lKCJyZ2JhKDAsIDAsIDAsIDAuMDYpIiwicmdiYSgyNTUsIDI1NSwgMjU1LCAwLjA4KSIpfTsKICAgICAgfQoKICAgICAgLnRhYi5zZWxlY3RlZFRhYiB7CiAgICAgICAgYmFja2dyb3VuZDogJHtwLmJkVGhlbWUoInJnYmEoMCwgMCwgMCwgMC4wNikiLCJyZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMDgpIil9OwogICAgICAgIGNvbG9yOiAke3AuYmRUaGVtZSgiIzBhMGEwYSIsIiNmYWZhZmEiKX07CiAgICAgIH0KCiAgICAgIC50YWIuc2VsZWN0ZWRUYWI6OmJlZm9yZSB7CiAgICAgICAgY29udGVudDogJyc7CiAgICAgICAgcG9zaXRpb246IGFic29sdXRlOwogICAgICAgIGxlZnQ6IDA7CiAgICAgICAgdG9wOiA1MCU7CiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpOwogICAgICAgIHdpZHRoOiAzcHg7CiAgICAgICAgaGVpZ2h0OiAxNnB4OwogICAgICAgIGJhY2tncm91bmQ6ICR7cC5iZFRoZW1lKCIjMGEwYTBhIiwiI2ZhZmFmYSIpfTsKICAgICAgICBib3JkZXItcmFkaXVzOiAwIDJweCAycHggMDsKICAgICAgfQoKICAgICAgLnRhYiBkZWVzLWljb24gewogICAgICAgIGZvbnQtc2l6ZTogMThweDsKICAgICAgICBvcGFjaXR5OiAwLjg1OwogICAgICAgIGZsZXgtc2hyaW5rOiAwOwogICAgICB9CgogICAgICAudGFiLnNlbGVjdGVkVGFiIGRlZXMtaWNvbiB7CiAgICAgICAgb3BhY2l0eTogMTsKICAgICAgfQoKICAgICAgLnRhYiAudGFiTGFiZWwgewogICAgICAgIGZsZXg6IDE7CiAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDsKICAgICAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzOwogICAgICAgIHRyYW5zaXRpb246IG9wYWNpdHkgMC4ycyBlYXNlLCB3aWR0aCAwLjI1cyBlYXNlOwogICAgICB9CgogICAgICAvKiBDb2xsYXBzZWQgdGFiIHN0eWxlcyAqLwogICAgICA6aG9zdChbY29sbGFwc2VkXSkgLnRhYiB7CiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7CiAgICAgICAgcGFkZGluZzogMTBweDsKICAgICAgICBnYXA6IDA7CiAgICAgIH0KCiAgICAgIDpob3N0KFtjb2xsYXBzZWRdKSAudGFiIC50YWJMYWJlbCB7CiAgICAgICAgb3BhY2l0eTogMDsKICAgICAgICB3aWR0aDogMDsKICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgIH0KCiAgICAgIDpob3N0KFtjb2xsYXBzZWRdKSAudGFiLnNlbGVjdGVkVGFiOjpiZWZvcmUgewogICAgICAgIGxlZnQ6IC00cHg7CiAgICAgIH0KCiAgICAgIC8qIFRvb2x0aXAgZm9yIGNvbGxhcHNlZCBzdGF0ZSAqLwogICAgICAudGFiLXRvb2x0aXAgewogICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgICBsZWZ0OiAxMDAlOwogICAgICAgIHRvcDogNTAlOwogICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTsKICAgICAgICBtYXJnaW4tbGVmdDogMTJweDsKICAgICAgICBwYWRkaW5nOiA2cHggMTJweDsKICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS10b29sdGlwLWJnKTsKICAgICAgICBjb2xvcjogdmFyKC0tdG9vbHRpcC1mZyk7CiAgICAgICAgYm9yZGVyLXJhZGl1czogNnB4OwogICAgICAgIGZvbnQtc2l6ZTogMTNweDsKICAgICAgICBmb250LXdlaWdodDogNTAwOwogICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7CiAgICAgICAgb3BhY2l0eTogMDsKICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTsKICAgICAgICB0cmFuc2l0aW9uOiBvcGFjaXR5IDAuMTVzIGVhc2U7CiAgICAgICAgei1pbmRleDogMTAwMDsKICAgICAgICBib3gtc2hhZG93OiAwIDJweCA4cHggcmdiYSgwLCAwLCAwLCAwLjE1KTsKICAgICAgfQoKICAgICAgLnRhYi10b29sdGlwOjpiZWZvcmUgewogICAgICAgIGNvbnRlbnQ6ICcnOwogICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgICBsZWZ0OiAtNHB4OwogICAgICAgIHRvcDogNTAlOwogICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTsKICAgICAgICBib3JkZXI6IDRweCBzb2xpZCB0cmFuc3BhcmVudDsKICAgICAgICBib3JkZXItcmlnaHQtY29sb3I6IHZhcigtLXRvb2x0aXAtYmcpOwogICAgICB9CgogICAgICA6aG9zdChbY29sbGFwc2VkXSkgLnRhYjpob3ZlciAudGFiLXRvb2x0aXAgewogICAgICAgIG9wYWNpdHk6IDE7CiAgICAgICAgdHJhbnNpdGlvbi1kZWxheTogMXM7CiAgICAgIH0KCiAgICAgIC8qIEJhZGdlIHN0eWxlcyAqLwogICAgICAuYmFkZ2UgewogICAgICAgIGRpc3BsYXk6IGlubGluZS1mbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7CiAgICAgICAgbWluLXdpZHRoOiAxOHB4OwogICAgICAgIGhlaWdodDogMThweDsKICAgICAgICBwYWRkaW5nOiAwIDZweDsKICAgICAgICBmb250LXNpemU6IDExcHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDsKICAgICAgICBib3JkZXItcmFkaXVzOiA5cHg7CiAgICAgICAgbWFyZ2luLWxlZnQ6IGF1dG87CiAgICAgIH0KCiAgICAgIC5iYWRnZS5kZWZhdWx0IHsKICAgICAgICBiYWNrZ3JvdW5kOiAke3AuYmRUaGVtZSgiI2Y0ZjRmNSIsIiMyNzI3MmEiKX07CiAgICAgICAgY29sb3I6ICR7cC5iZFRoZW1lKCIjM2YzZjQ2IiwiI2ExYTFhYSIpfTsKICAgICAgfQoKICAgICAgLmJhZGdlLnN1Y2Nlc3MgewogICAgICAgIGJhY2tncm91bmQ6ICR7cC5iZFRoZW1lKCIjZGNmY2U3IiwiIzE0NTMyZCIpfTsKICAgICAgICBjb2xvcjogJHtwLmJkVGhlbWUoIiMxNjY1MzQiLCIjNGFkZTgwIil9OwogICAgICB9CgogICAgICAuYmFkZ2Uud2FybmluZyB7CiAgICAgICAgYmFja2dyb3VuZDogJHtwLmJkVGhlbWUoIiNmZWYzYzciLCIjNDUxYTAzIil9OwogICAgICAgIGNvbG9yOiAke3AuYmRUaGVtZSgiIzkyNDAwZSIsIiNmYmJmMjQiKX07CiAgICAgIH0KCiAgICAgIC5iYWRnZS5lcnJvciB7CiAgICAgICAgYmFja2dyb3VuZDogJHtwLmJkVGhlbWUoIiNmZWUyZTIiLCIjNDUwYTBhIil9OwogICAgICAgIGNvbG9yOiAke3AuYmRUaGVtZSgiIzk5MWIxYiIsIiNmODcxNzEiKX07CiAgICAgIH0KCiAgICAgIDpob3N0KFtjb2xsYXBzZWRdKSAuYmFkZ2UgewogICAgICAgIGRpc3BsYXk6IG5vbmU7CiAgICAgIH0KCiAgICAgIC8qIEJvdHRvbSBTZWN0aW9uICovCiAgICAgIC5ib3R0b21TZWN0aW9uIHsKICAgICAgICBmbGV4LXNocmluazogMDsKICAgICAgICBwYWRkaW5nOiA4cHg7CiAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICR7cC5iZFRoZW1lKCIjZTVlNWU1IiwiIzFhMWExYSIpfTsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgICAgZ2FwOiAycHg7CiAgICAgIH0KCiAgICAgIDpob3N0KFtjb2xsYXBzZWRdKSAuYm90dG9tU2VjdGlvbiB7CiAgICAgICAgcGFkZGluZzogOHB4IDRweDsKICAgICAgfQogICAgYF07cmVuZGVyKCl7bGV0IEM9dGhpcy5nZXRBbGxUYWJzKCk7cmV0dXJuIHdgCiAgICAgIDxkaXYgY2xhc3M9Im1haW5Db250YWluZXIiIEBjb250ZXh0bWVudT0ke3o9PntVdC5vcGVuQ29udGV4dE1lbnVXaXRoT3B0aW9ucyh6LFt7bmFtZToiYXBwIHNldHRpbmdzIixhY3Rpb246YXN5bmMoKT0+e30saWNvbk5hbWU6ImdlYXIifV0pfX0+CiAgICAgICAgJHt0aGlzLmxvZ29JY29ufHx0aGlzLmxvZ29UZXh0P3dgCiAgICAgICAgICA8ZGl2IGNsYXNzPSJsb2dvU2VjdGlvbiI+CiAgICAgICAgICAgICR7dGhpcy5sb2dvSWNvbj93YDxkZWVzLWljb24gY2xhc3M9ImxvZ29JY29uIiAuaWNvbj0iJHt0aGlzLmxvZ29JY29ufSI+PC9kZWVzLWljb24+YDoiIn0KICAgICAgICAgICAgJHt0aGlzLmxvZ29UZXh0P3dgPHNwYW4gY2xhc3M9ImxvZ29UZXh0Ij4ke3RoaXMubG9nb1RleHR9PC9zcGFuPmA6IiJ9CiAgICAgICAgICA8L2Rpdj4KICAgICAgICBgOiIifQoKICAgICAgICA8ZGl2IGNsYXNzPSJtZW51U2VjdGlvbiI+CiAgICAgICAgICAke3RoaXMubWVudUdyb3Vwcy5sZW5ndGg+MD90aGlzLnJlbmRlck1lbnVHcm91cHMoKTp0aGlzLnJlbmRlckxlZ2FjeVRhYnMoKX0KICAgICAgICA8L2Rpdj4KCiAgICAgICAgJHt0aGlzLmJvdHRvbVRhYnMubGVuZ3RoPjA/d2AKICAgICAgICAgIDxkaXYgY2xhc3M9ImJvdHRvbVNlY3Rpb24iPgogICAgICAgICAgICAke3RoaXMuYm90dG9tVGFicy5tYXAoej0+dGhpcy5yZW5kZXJUYWIoeikpfQogICAgICAgICAgPC9kaXY+CiAgICAgICAgYDoiIn0KICAgICAgPC9kaXY+CiAgICAgIDxidXR0b24gY2xhc3M9ImNvbGxhcHNlLXRvZ2dsZSIgQGNsaWNrPSIkeygpPT50aGlzLnRvZ2dsZUNvbGxhcHNlKCl9Ij4KICAgICAgICA8ZGVlcy1pY29uIC5pY29uPSIke3RoaXMuY29sbGFwc2VkPyJsdWNpZGU6Y2hldnJvblJpZ2h0IjoibHVjaWRlOmNoZXZyb25MZWZ0In0iPjwvZGVlcy1pY29uPgogICAgICA8L2J1dHRvbj4KICAgIGB9cmVuZGVyTWVudUdyb3Vwcygpe3JldHVybiB3YAogICAgICAke3RoaXMubWVudUdyb3Vwcy5tYXAoQz0+d2AKICAgICAgICA8ZGl2IGNsYXNzPSJtZW51R3JvdXAiPgogICAgICAgICAgJHtDLm5hbWU/d2A8ZGl2IGNsYXNzPSJncm91cEhlYWRlciI+JHtDLm5hbWV9PC9kaXY+YDoiIn0KICAgICAgICAgIDxkaXYgY2xhc3M9Imdyb3VwVGFicyI+CiAgICAgICAgICAgICR7Qy5pdGVtcy5tYXAoej0+dGhpcy5yZW5kZXJUYWIoeikpfQogICAgICAgICAgPC9kaXY+CiAgICAgICAgPC9kaXY+CiAgICAgIGApfQogICAgYH1yZW5kZXJMZWdhY3lUYWJzKCl7cmV0dXJuIHdgCiAgICAgIDxkaXYgY2xhc3M9Im1lbnVHcm91cCI+CiAgICAgICAgPGRpdiBjbGFzcz0iZ3JvdXBUYWJzIj4KICAgICAgICAgICR7dGhpcy50YWJzLm1hcChDPT50aGlzLnJlbmRlclRhYihDKSl9CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGl2PgogICAgYH1yZW5kZXJUYWIoQyl7cmV0dXJuIHdgCiAgICAgIDxkaXYKICAgICAgICBjbGFzcz0idGFiICR7Qz09PXRoaXMuc2VsZWN0ZWRUYWI/InNlbGVjdGVkVGFiIjoiIn0iCiAgICAgICAgQGNsaWNrPSIkeygpPT57dGhpcy51cGRhdGVUYWIoQyl9fSIKICAgICAgPgogICAgICAgIDxkZWVzLWljb24gLmljb249IiR7Qy5pY29uTmFtZXx8IiJ9Ij48L2RlZXMtaWNvbj4KICAgICAgICA8c3BhbiBjbGFzcz0idGFiTGFiZWwiPiR7Qy5rZXl9PC9zcGFuPgogICAgICAgICR7Qy5iYWRnZSE9PXZvaWQgMD93YAogICAgICAgICAgPHNwYW4gY2xhc3M9ImJhZGdlICR7Qy5iYWRnZVZhcmlhbnR8fCJkZWZhdWx0In0iPiR7Qy5iYWRnZX08L3NwYW4+CiAgICAgICAgYDoiIn0KICAgICAgICA8c3BhbiBjbGFzcz0idGFiLXRvb2x0aXAiPiR7Qy5rZXl9PC9zcGFuPgogICAgICA8L2Rpdj4KICAgIGB9Z2V0QWxsVGFicygpe3JldHVybiB0aGlzLm1lbnVHcm91cHMubGVuZ3RoPjA/Wy4uLnRoaXMubWVudUdyb3Vwcy5mbGF0TWFwKHo9PnouaXRlbXMpLC4uLnRoaXMuYm90dG9tVGFic106Wy4uLnRoaXMudGFicywuLi50aGlzLmJvdHRvbVRhYnNdfXVwZGF0ZVRhYihDKXt0aGlzLnNlbGVjdGVkVGFiPUMsdGhpcy5zZWxlY3RlZFRhYi5hY3Rpb24oKSx0aGlzLmRpc3BhdGNoRXZlbnQobmV3IEN1c3RvbUV2ZW50KCJ0YWItc2VsZWN0Iix7ZGV0YWlsOnt0YWI6Q30sYnViYmxlczohMCxjb21wb3NlZDohMH0pKX1maXJzdFVwZGF0ZWQoKXtsZXQgQz10aGlzLmdldEFsbFRhYnMoKTtDLmxlbmd0aD4wJiZ0aGlzLnVwZGF0ZVRhYihDWzBdKX10b2dnbGVDb2xsYXBzZSgpe3RoaXMuY29sbGFwc2VkPSF0aGlzLmNvbGxhcHNlZCx0aGlzLmRpc3BhdGNoRXZlbnQobmV3IEN1c3RvbUV2ZW50KCJjb2xsYXBzZS1jaGFuZ2UiLHtkZXRhaWw6e2NvbGxhcHNlZDp0aGlzLmNvbGxhcHNlZH0sYnViYmxlczohMCxjb21wb3NlZDohMH0pKX1jb25zdHJ1Y3Rvcigpe3N1cGVyKC4uLmFyZ3VtZW50cyksZmEodGhpcyxBKX1zdGF0aWN7ZmEoaSxhKX19O3JldHVybiBxPWl9KSgpfSk7dmFyIGFmdCxpZnQ9YigoKT0+e3VlKCk7YWZ0PSgpPT53YAogIDxzdHlsZT4KICAgIC5kZW1vLXNlY29uZGFyeW1lbnUtY29udGFpbmVyIHsKICAgICAgZGlzcGxheTogZmxleDsKICAgICAgaGVpZ2h0OiAxMDAlOwogICAgICBiYWNrZ3JvdW5kOiAjMWExYTFhOwogICAgICBib3JkZXItcmFkaXVzOiA4cHg7CiAgICB9CiAgICAuZGVtby1zZWNvbmRhcnltZW51LWNvbnRhaW5lciAuc3BhY2VyIHsKICAgICAgZmxleDogMTsKICAgICAgYmFja2dyb3VuZDogIzBmMGYwZjsKICAgICAgcGFkZGluZzogMjBweDsKICAgICAgY29sb3I6ICNhM2EzYTM7CiAgICAgIGZvbnQtZmFtaWx5OiAnR2Vpc3QgU2FucycsIHNhbnMtc2VyaWY7CiAgICB9CiAgICAuZGVtby1zZWNvbmRhcnltZW51LWNvbnRhaW5lciAuc3BhY2VyIGgzIHsKICAgICAgY29sb3I6ICNmYWZhZmE7CiAgICAgIG1hcmdpbi10b3A6IDA7CiAgICB9CiAgICAuZGVtby1zZWNvbmRhcnltZW51LWNvbnRhaW5lciAuc3BhY2VyIGNvZGUgewogICAgICBiYWNrZ3JvdW5kOiAjMjcyNzJhOwogICAgICBwYWRkaW5nOiAycHggNnB4OwogICAgICBib3JkZXItcmFkaXVzOiA0cHg7CiAgICAgIGZvbnQtc2l6ZTogMTJweDsKICAgIH0KICAgIC5kZW1vLXNlY29uZGFyeW1lbnUtY29udGFpbmVyIC5zcGFjZXIgdWwgewogICAgICBsaW5lLWhlaWdodDogMS44OwogICAgfQogIDwvc3R5bGU+CiAgPGRpdiBjbGFzcz0iZGVtby1zZWNvbmRhcnltZW51LWNvbnRhaW5lciI+CiAgICA8ZGVlcy1hcHB1aS1zZWNvbmRhcnltZW51CiAgICAgIC5oZWFkaW5nPSR7IlByb2plY3RzIn0KICAgICAgLmdyb3Vwcz0ke1t7bmFtZToiTmF2aWdhdGlvbiIsaWNvbk5hbWU6Imx1Y2lkZTpjb21wYXNzIixpdGVtczpbe2tleToiRGFzaGJvYXJkIixpY29uTmFtZToibHVjaWRlOmxheW91dERhc2hib2FyZCIsYWN0aW9uOigpPT5jb25zb2xlLmxvZygiRGFzaGJvYXJkIGNsaWNrZWQiKSxiYWRnZTozLGJhZGdlVmFyaWFudDoid2FybmluZyJ9LHtrZXk6IlByb2plY3RzIixpY29uTmFtZToibHVjaWRlOmZvbGRlciIsYWN0aW9uOigpPT5jb25zb2xlLmxvZygiUHJvamVjdHMgY2xpY2tlZCIpLGJhZGdlOiJuZXciLGJhZGdlVmFyaWFudDoic3VjY2VzcyJ9LHtrZXk6IkFuYWx5dGljcyIsaWNvbk5hbWU6Imx1Y2lkZTpiYXJDaGFydDIiLGFjdGlvbjooKT0+Y29uc29sZS5sb2coIkFuYWx5dGljcyBjbGlja2VkIil9XX0se25hbWU6IkFjdGlvbnMiLGljb25OYW1lOiJsdWNpZGU6emFwIixpdGVtczpbe3R5cGU6ImFjdGlvbiIsa2V5OiJDcmVhdGUgTmV3IixpY29uTmFtZToibHVjaWRlOnBsdXMiLGFjdGlvbjooKT0+YWxlcnQoIkNyZWF0ZSBOZXcgY2xpY2tlZCEiKX0se3R5cGU6ImFjdGlvbiIsa2V5OiJJbXBvcnQgRGF0YSIsaWNvbk5hbWU6Imx1Y2lkZTp1cGxvYWQiLGFjdGlvbjooKT0+YWxlcnQoIkltcG9ydCBEYXRhIGNsaWNrZWQhIil9LHt0eXBlOiJkaXZpZGVyIn0se3R5cGU6ImFjdGlvbiIsa2V5OiJEZWxldGUgQWxsIixpY29uTmFtZToibHVjaWRlOnRyYXNoMiIsdmFyaWFudDoiZGFuZ2VyIixjb25maXJtTWVzc2FnZToiQXJlIHlvdSBzdXJlIHlvdSB3YW50IHRvIGRlbGV0ZSBhbGwgaXRlbXM/IixhY3Rpb246KCk9PmFsZXJ0KCJEZWxldGVkISIpfV19LHtuYW1lOiJGaWx0ZXJzIixpY29uTmFtZToibHVjaWRlOmZpbHRlciIsaXRlbXM6W3t0eXBlOiJoZWFkZXIiLGxhYmVsOiJTdGF0dXMifSx7dHlwZToiZmlsdGVyIixrZXk6IlNob3cgQWN0aXZlIixpY29uTmFtZToibHVjaWRlOmNoZWNrQ2lyY2xlIixhY3RpdmU6ITAsb25Ub2dnbGU6dD0+Y29uc29sZS5sb2coIlNob3cgQWN0aXZlOiIsdCl9LHt0eXBlOiJmaWx0ZXIiLGtleToiU2hvdyBBcmNoaXZlZCIsaWNvbk5hbWU6Imx1Y2lkZTphcmNoaXZlIixhY3RpdmU6ITEsb25Ub2dnbGU6dD0+Y29uc29sZS5sb2coIlNob3cgQXJjaGl2ZWQ6Iix0KX0se3R5cGU6ImRpdmlkZXIifSx7dHlwZToibXVsdGlGaWx0ZXIiLGtleToiQ2F0ZWdvcmllcyIsaWNvbk5hbWU6Imx1Y2lkZTp0YWciLGNvbGxhcHNlZDohMSxvcHRpb25zOlt7a2V5OiJmcm9udGVuZCIsbGFiZWw6IkZyb250ZW5kIixjaGVja2VkOiEwLGljb25OYW1lOiJsdWNpZGU6bW9uaXRvciJ9LHtrZXk6ImJhY2tlbmQiLGxhYmVsOiJCYWNrZW5kIixjaGVja2VkOiEwLGljb25OYW1lOiJsdWNpZGU6c2VydmVyIn0se2tleToiZGV2b3BzIixsYWJlbDoiRGV2T3BzIixjaGVja2VkOiExLGljb25OYW1lOiJsdWNpZGU6Y2xvdWQifSx7a2V5OiJkZXNpZ24iLGxhYmVsOiJEZXNpZ24iLGNoZWNrZWQ6ITEsaWNvbk5hbWU6Imx1Y2lkZTpwYWxldHRlIn1dLG9uQ2hhbmdlOnQ9PmNvbnNvbGUubG9nKCJTZWxlY3RlZCBjYXRlZ29yaWVzOiIsdCl9XX0se25hbWU6IlJlc291cmNlcyIsaWNvbk5hbWU6Imx1Y2lkZTpib29rT3BlbiIsY29sbGFwc2VkOiEwLGl0ZW1zOlt7dHlwZToiaGVhZGVyIixsYWJlbDoiRG9jdW1lbnRhdGlvbiJ9LHt0eXBlOiJsaW5rIixrZXk6IkFQSSBSZWZlcmVuY2UiLGljb25OYW1lOiJsdWNpZGU6ZmlsZVRleHQiLGhyZWY6Imh0dHBzOi8vYXBpLmV4YW1wbGUuY29tL2RvY3MifSx7dHlwZToibGluayIsa2V5OiJVc2VyIEd1aWRlIixpY29uTmFtZToibHVjaWRlOmJvb2siLGhyZWY6Imh0dHBzOi8vZG9jcy5leGFtcGxlLmNvbS9ndWlkZSJ9LHt0eXBlOiJkaXZpZGVyIn0se3R5cGU6ImhlYWRlciIsbGFiZWw6IlN1cHBvcnQifSx7dHlwZToibGluayIsa2V5OiJIZWxwIENlbnRlciIsaWNvbk5hbWU6Imx1Y2lkZTpoZWxwQ2lyY2xlIixocmVmOiIvaGVscCIsZXh0ZXJuYWw6ITF9LHt0eXBlOiJsaW5rIixrZXk6IkdpdEh1YiBJc3N1ZXMiLGljb25OYW1lOiJsdWNpZGU6Z2l0aHViIixocmVmOiJodHRwczovL2dpdGh1Yi5jb20vZXhhbXBsZS9pc3N1ZXMifV19XX0KICAgICAgQGl0ZW0tc2VsZWN0PSR7dD0+Y29uc29sZS5sb2coIlRhYiBzZWxlY3RlZDoiLHQuZGV0YWlsKX0KICAgICAgQGFjdGlvbi1jbGljaz0ke3Q9PmNvbnNvbGUubG9nKCJBY3Rpb24gY2xpY2tlZDoiLHQuZGV0YWlsKX0KICAgICAgQGZpbHRlci10b2dnbGU9JHt0PT5jb25zb2xlLmxvZygiRmlsdGVyIHRvZ2dsZWQ6Iix0LmRldGFpbCl9CiAgICAgIEBtdWx0aWZpbHRlci1jaGFuZ2U9JHt0PT5jb25zb2xlLmxvZygiTXVsdGktZmlsdGVyIGNoYW5nZWQ6Iix0LmRldGFpbCl9CiAgICAgIEBsaW5rLWNsaWNrPSR7dD0+Y29uc29sZS5sb2coIkxpbmsgY2xpY2tlZDoiLHQuZGV0YWlsKX0KICAgID48L2RlZXMtYXBwdWktc2Vjb25kYXJ5bWVudT4KICAgIDxkaXYgY2xhc3M9InNwYWNlciI+CiAgICAgIDxoMz5TZWNvbmRhcnkgTWVudSBEZW1vPC9oMz4KICAgICAgPHA+VGhpcyBkZW1vIHNob3djYXNlcyBhbGwgOCBpdGVtIHR5cGVzOjwvcD4KICAgICAgPHVsPgogICAgICAgIDxsaT48Y29kZT50YWI8L2NvZGU+IC0gU2VsZWN0YWJsZSBpdGVtcyAoTmF2aWdhdGlvbiBncm91cCk8L2xpPgogICAgICAgIDxsaT48Y29kZT5hY3Rpb248L2NvZGU+IC0gQmx1ZSBhY3Rpb25zIChBY3Rpb25zIGdyb3VwKTwvbGk+CiAgICAgICAgPGxpPjxjb2RlPmFjdGlvbjwvY29kZT4gd2l0aCA8Y29kZT52YXJpYW50OiAnZGFuZ2VyJzwvY29kZT4gLSBSZWQgZGFuZ2VyIGFjdGlvbjwvbGk+CiAgICAgICAgPGxpPjxjb2RlPmZpbHRlcjwvY29kZT4gLSBDaGVja2JveCB0b2dnbGVzIChGaWx0ZXJzIGdyb3VwKTwvbGk+CiAgICAgICAgPGxpPjxjb2RlPm11bHRpRmlsdGVyPC9jb2RlPiAtIENvbGxhcHNpYmxlIG11bHRpLXNlbGVjdCAoQ2F0ZWdvcmllcyk8L2xpPgogICAgICAgIDxsaT48Y29kZT5kaXZpZGVyPC9jb2RlPiAtIFZpc3VhbCBzZXBhcmF0b3JzPC9saT4KICAgICAgICA8bGk+PGNvZGU+aGVhZGVyPC9jb2RlPiAtIFNlY3Rpb24gbGFiZWxzPC9saT4KICAgICAgICA8bGk+PGNvZGU+bGluazwvY29kZT4gLSBFeHRlcm5hbC9pbnRlcm5hbCBsaW5rcyAoUmVzb3VyY2VzIGdyb3VwKTwvbGk+CiAgICAgIDwvdWw+CiAgICAgIDxwPlRyeSB0aGUgY29sbGFwc2UgdG9nZ2xlIG9uIHRoZSBsZWZ0IGVkZ2UhPC9wPgogICAgPC9kaXY+CiAgPC9kaXY+CmB9KTt2YXIgTnMsXzIscmZ0LHNWPWIoKCk9PntzMigpO3NvKCk7bjIoKTtEdCgpO3VlKCk7aWZ0KCk7cWUoKTtOcz1mdW5jdGlvbih0LGUsYSxpLHIscyl7ZnVuY3Rpb24gbih4KXtpZih4IT09dm9pZCAwJiZ0eXBlb2YgeCE9ImZ1bmN0aW9uIil0aHJvdyBuZXcgVHlwZUVycm9yKCJGdW5jdGlvbiBleHBlY3RlZCIpO3JldHVybiB4fWZvcih2YXIgbz1pLmtpbmQsZD1vPT09ImdldHRlciI/ImdldCI6bz09PSJzZXR0ZXIiPyJzZXQiOiJ2YWx1ZSIsYz0hZSYmdD9pLnN0YXRpYz90OnQucHJvdG90eXBlOm51bGwsaD1lfHwoYz9PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGMsaS5uYW1lKTp7fSksbCxmPSExLGc9YS5sZW5ndGgtMTtnPj0wO2ctLSl7dmFyIHk9e307Zm9yKHZhciB2IGluIGkpeVt2XT12PT09ImFjY2VzcyI/e306aVt2XTtmb3IodmFyIHYgaW4gaS5hY2Nlc3MpeS5hY2Nlc3Nbdl09aS5hY2Nlc3Nbdl07eS5hZGRJbml0aWFsaXplcj1mdW5jdGlvbih4KXtpZihmKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBhZGQgaW5pdGlhbGl6ZXJzIGFmdGVyIGRlY29yYXRpb24gaGFzIGNvbXBsZXRlZCIpO3MucHVzaChuKHh8fG51bGwpKX07dmFyIG09KDAsYVtnXSkobz09PSJhY2Nlc3NvciI/e2dldDpoLmdldCxzZXQ6aC5zZXR9OmhbZF0seSk7aWYobz09PSJhY2Nlc3NvciIpe2lmKG09PT12b2lkIDApY29udGludWU7aWYobT09PW51bGx8fHR5cGVvZiBtIT0ib2JqZWN0Iil0aHJvdyBuZXcgVHlwZUVycm9yKCJPYmplY3QgZXhwZWN0ZWQiKTsobD1uKG0uZ2V0KSkmJihoLmdldD1sKSwobD1uKG0uc2V0KSkmJihoLnNldD1sKSwobD1uKG0uaW5pdCkpJiZyLnVuc2hpZnQobCl9ZWxzZShsPW4obSkpJiYobz09PSJmaWVsZCI/ci51bnNoaWZ0KGwpOmhbZF09bCl9YyYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGMsaS5uYW1lLGgpLGY9ITB9LF8yPWZ1bmN0aW9uKHQsZSxhKXtmb3IodmFyIGk9YXJndW1lbnRzLmxlbmd0aD4yLHI9MDtyPGUubGVuZ3RoO3IrKylhPWk/ZVtyXS5jYWxsKHQsYSk6ZVtyXS5jYWxsKHQpO3JldHVybiBpP2E6dm9pZCAwfSxyZnQ9KCgpPT57bGV0IHQ9W3BlKCJkZWVzLWFwcHVpLXNlY29uZGFyeW1lbnUiKV0sZSxhPVtdLGkscj14ZSxzLG49W10sbz1bXSxkLGM9W10saD1bXSxsLGY9W10sZz1bXSx5LHY9W10sbT1bXSx4LE09W10sUz1bXSxGLF89W10saz1bXSxOLEw9W10sQT1bXSxxLEM9W10sej1bXTt2YXIgRT1jbGFzcyBleHRlbmRzIHJ7c3RhdGlje2k9dGhpc31zdGF0aWN7bGV0IFQ9dHlwZW9mIFN5bWJvbD09ImZ1bmN0aW9uIiYmU3ltYm9sLm1ldGFkYXRhP09iamVjdC5jcmVhdGUocltTeW1ib2wubWV0YWRhdGFdPz9udWxsKTp2b2lkIDA7cz1bSSh7dHlwZTpTdHJpbmd9KV0sZD1bSSh7dHlwZTpBcnJheX0pXSxsPVtJKHt0eXBlOkFycmF5fSldLHk9W0koe3R5cGU6T2JqZWN0fSldLHg9W0ooKV0sRj1bSigpXSxOPVtKKCldLHE9W0koe3R5cGU6Qm9vbGVhbixyZWZsZWN0OiEwfSldLE5zKHRoaXMsbnVsbCxzLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiaGVhZGluZyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6JD0+ImhlYWRpbmciaW4gJCxnZXQ6JD0+JC5oZWFkaW5nLHNldDooJCxWKT0+eyQuaGVhZGluZz1WfX0sbWV0YWRhdGE6VH0sbixvKSxOcyh0aGlzLG51bGwsZCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6Imdyb3VwcyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6JD0+Imdyb3VwcyJpbiAkLGdldDokPT4kLmdyb3VwcyxzZXQ6KCQsVik9PnskLmdyb3Vwcz1WfX0sbWV0YWRhdGE6VH0sYyxoKSxOcyh0aGlzLG51bGwsbCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InNlbGVjdGlvbk9wdGlvbnMiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOiQ9PiJzZWxlY3Rpb25PcHRpb25zImluICQsZ2V0OiQ9PiQuc2VsZWN0aW9uT3B0aW9ucyxzZXQ6KCQsVik9PnskLnNlbGVjdGlvbk9wdGlvbnM9Vn19LG1ldGFkYXRhOlR9LGYsZyksTnModGhpcyxudWxsLHkse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJzZWxlY3RlZEl0ZW0iLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOiQ9PiJzZWxlY3RlZEl0ZW0iaW4gJCxnZXQ6JD0+JC5zZWxlY3RlZEl0ZW0sc2V0OigkLFYpPT57JC5zZWxlY3RlZEl0ZW09Vn19LG1ldGFkYXRhOlR9LHYsbSksTnModGhpcyxudWxsLHgse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJjb2xsYXBzZWRHcm91cHMiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOiQ9PiJjb2xsYXBzZWRHcm91cHMiaW4gJCxnZXQ6JD0+JC5jb2xsYXBzZWRHcm91cHMsc2V0OigkLFYpPT57JC5jb2xsYXBzZWRHcm91cHM9Vn19LG1ldGFkYXRhOlR9LE0sUyksTnModGhpcyxudWxsLEYse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJjb2xsYXBzZWRNdWx0aUZpbHRlcnMiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOiQ9PiJjb2xsYXBzZWRNdWx0aUZpbHRlcnMiaW4gJCxnZXQ6JD0+JC5jb2xsYXBzZWRNdWx0aUZpbHRlcnMsc2V0OigkLFYpPT57JC5jb2xsYXBzZWRNdWx0aUZpbHRlcnM9Vn19LG1ldGFkYXRhOlR9LF8sayksTnModGhpcyxudWxsLE4se2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJyZW5kZXJDb3VudGVyIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczokPT4icmVuZGVyQ291bnRlciJpbiAkLGdldDokPT4kLnJlbmRlckNvdW50ZXIsc2V0OigkLFYpPT57JC5yZW5kZXJDb3VudGVyPVZ9fSxtZXRhZGF0YTpUfSxMLEEpLE5zKHRoaXMsbnVsbCxxLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiY29sbGFwc2VkIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczokPT4iY29sbGFwc2VkImluICQsZ2V0OiQ9PiQuY29sbGFwc2VkLHNldDooJCxWKT0+eyQuY29sbGFwc2VkPVZ9fSxtZXRhZGF0YTpUfSxDLHopLE5zKG51bGwsZT17dmFsdWU6aX0sdCx7a2luZDoiY2xhc3MiLG5hbWU6aS5uYW1lLG1ldGFkYXRhOlR9LG51bGwsYSksRT1pPWUudmFsdWUsVCYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGksU3ltYm9sLm1ldGFkYXRhLHtlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMCx2YWx1ZTpUfSl9c3RhdGljIGRlbW89YWZ0O3N0YXRpYyBkZW1vR3JvdXBzPVsiQXBwIFVJIl07I2U9XzIodGhpcyxuLCJNZW51Iik7Z2V0IGhlYWRpbmcoKXtyZXR1cm4gdGhpcy4jZX1zZXQgaGVhZGluZyhUKXt0aGlzLiNlPVR9I3Q9KF8yKHRoaXMsbyksXzIodGhpcyxjLFtdKSk7Z2V0IGdyb3Vwcygpe3JldHVybiB0aGlzLiN0fXNldCBncm91cHMoVCl7dGhpcy4jdD1UfSNhPShfMih0aGlzLGgpLF8yKHRoaXMsZixbXSkpO2dldCBzZWxlY3Rpb25PcHRpb25zKCl7cmV0dXJuIHRoaXMuI2F9c2V0IHNlbGVjdGlvbk9wdGlvbnMoVCl7dGhpcy4jYT1UfSNpPShfMih0aGlzLGcpLF8yKHRoaXMsdixudWxsKSk7Z2V0IHNlbGVjdGVkSXRlbSgpe3JldHVybiB0aGlzLiNpfXNldCBzZWxlY3RlZEl0ZW0oVCl7dGhpcy4jaT1UfSNyPShfMih0aGlzLG0pLF8yKHRoaXMsTSxuZXcgU2V0KSk7Z2V0IGNvbGxhcHNlZEdyb3Vwcygpe3JldHVybiB0aGlzLiNyfXNldCBjb2xsYXBzZWRHcm91cHMoVCl7dGhpcy4jcj1UfSNzPShfMih0aGlzLFMpLF8yKHRoaXMsXyxuZXcgU2V0KSk7Z2V0IGNvbGxhcHNlZE11bHRpRmlsdGVycygpe3JldHVybiB0aGlzLiNzfXNldCBjb2xsYXBzZWRNdWx0aUZpbHRlcnMoVCl7dGhpcy4jcz1UfSNuPShfMih0aGlzLGspLF8yKHRoaXMsTCwwKSk7Z2V0IHJlbmRlckNvdW50ZXIoKXtyZXR1cm4gdGhpcy4jbn1zZXQgcmVuZGVyQ291bnRlcihUKXt0aGlzLiNuPVR9I289KF8yKHRoaXMsQSksXzIodGhpcyxDLCExKSk7Z2V0IGNvbGxhcHNlZCgpe3JldHVybiB0aGlzLiNvfXNldCBjb2xsYXBzZWQoVCl7dGhpcy4jbz1UfXN0YXRpYyBzdHlsZXM9W0NlLHAuZGVmYXVsdFN0eWxlcyxRYAogICAgICAvKiBUT0RPOiBNaWdyYXRlIGhhcmRjb2RlZCB2YWx1ZXMgdG8gLS1kZWVzLSogQ1NTIHZhcmlhYmxlcyAqLwogICAgICA6aG9zdCB7CiAgICAgICAgLS1zaWRlYmFyLXdpZHRoLWV4cGFuZGVkOiAyNDBweDsKICAgICAgICAtLXNpZGViYXItd2lkdGgtY29sbGFwc2VkOiA1NnB4OwogICAgICAgIC0tc2lkZWJhci1iZzogJHtwLmJkVGhlbWUoIiNmYWZhZmEiLCIjMGEwYTBhIil9OwogICAgICAgIC0tc2lkZWJhci1mZzogJHtwLmJkVGhlbWUoIiM1MjUyNTIiLCIjYTNhM2EzIil9OwogICAgICAgIC0tc2lkZWJhci1mZy1tdXRlZDogJHtwLmJkVGhlbWUoIiM3MzczNzMiLCIjNzM3MzczIil9OwogICAgICAgIC0tc2lkZWJhci1mZy1hY3RpdmU6ICR7cC5iZFRoZW1lKCIjMGEwYTBhIiwiI2ZhZmFmYSIpfTsKICAgICAgICAtLXNpZGViYXItYm9yZGVyOiAke3AuYmRUaGVtZSgiI2U1ZTVlNSIsIiMxYTFhMWEiKX07CiAgICAgICAgLS1zaWRlYmFyLWhvdmVyOiAke3AuYmRUaGVtZSgicmdiYSgwLCAwLCAwLCAwLjA0KSIsInJnYmEoMjU1LCAyNTUsIDI1NSwgMC4wNikiKX07CiAgICAgICAgLS1zaWRlYmFyLWFjdGl2ZTogJHtwLmJkVGhlbWUoInJnYmEoMCwgMCwgMCwgMC4wNikiLCJyZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMDgpIil9OwogICAgICAgIC0tc2lkZWJhci1hY2NlbnQ6ICR7cC5iZFRoZW1lKCIjMGEwYTBhIiwiI2ZhZmFmYSIpfTsKICAgICAgICAtLXRvb2x0aXAtYmc6ICR7cC5iZFRoZW1lKCIjMTgxODFiIiwiI2ZhZmFmYSIpfTsKICAgICAgICAtLXRvb2x0aXAtZmc6ICR7cC5iZFRoZW1lKCIjZmFmYWZhIiwiIzE4MTgxYiIpfTsKCiAgICAgICAgLyogQmFkZ2UgY29sb3JzICovCiAgICAgICAgLS1iYWRnZS1kZWZhdWx0LWJnOiAke3AuYmRUaGVtZSgiI2Y0ZjRmNSIsIiMyNzI3MmEiKX07CiAgICAgICAgLS1iYWRnZS1kZWZhdWx0LWZnOiAke3AuYmRUaGVtZSgiIzNmM2Y0NiIsIiNhMWExYWEiKX07CiAgICAgICAgLS1iYWRnZS1zdWNjZXNzLWJnOiAke3AuYmRUaGVtZSgiI2RjZmNlNyIsIiMxNDUzMmQiKX07CiAgICAgICAgLS1iYWRnZS1zdWNjZXNzLWZnOiAke3AuYmRUaGVtZSgiIzE2NjUzNCIsIiM0YWRlODAiKX07CiAgICAgICAgLS1iYWRnZS13YXJuaW5nLWJnOiAke3AuYmRUaGVtZSgiI2ZlZjNjNyIsIiM0NTFhMDMiKX07CiAgICAgICAgLS1iYWRnZS13YXJuaW5nLWZnOiAke3AuYmRUaGVtZSgiIzkyNDAwZSIsIiNmYmJmMjQiKX07CiAgICAgICAgLS1iYWRnZS1lcnJvci1iZzogJHtwLmJkVGhlbWUoIiNmZWUyZTIiLCIjNDUwYTBhIil9OwogICAgICAgIC0tYmFkZ2UtZXJyb3ItZmc6ICR7cC5iZFRoZW1lKCIjOTkxYjFiIiwiI2Y4NzE3MSIpfTsKCiAgICAgICAgLyogQWN0aW9uIGNvbG9ycyAqLwogICAgICAgIC0tYWN0aW9uLXByaW1hcnk6ICR7cC5iZFRoZW1lKCIjMjU2M2ViIiwiIzNiODJmNiIpfTsKICAgICAgICAtLWFjdGlvbi1wcmltYXJ5LWhvdmVyOiAke3AuYmRUaGVtZSgiIzFkNGVkOCIsIiM2MGE1ZmEiKX07CiAgICAgICAgLS1hY3Rpb24tZGFuZ2VyOiAke3AuYmRUaGVtZSgiI2RjMjYyNiIsIiNlZjQ0NDQiKX07CiAgICAgICAgLS1hY3Rpb24tZGFuZ2VyLWhvdmVyOiAke3AuYmRUaGVtZSgiI2I5MWMxYyIsIiNmODcxNzEiKX07CgogICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgICBkaXNwbGF5OiBibG9jazsKICAgICAgICBoZWlnaHQ6IDEwMCU7CiAgICAgICAgd2lkdGg6IHZhcigtLXNpZGViYXItd2lkdGgtZXhwYW5kZWQpOwogICAgICAgIGJhY2tncm91bmQ6IHZhcigtLXNpZGViYXItYmcpOwogICAgICAgIGJvcmRlci1yaWdodDogMXB4IHNvbGlkIHZhcigtLXNpZGViYXItYm9yZGVyKTsKICAgICAgICBmb250LWZhbWlseTogJ0dlaXN0IFNhbnMnLCAnSW50ZXInLCAtYXBwbGUtc3lzdGVtLCBCbGlua01hY1N5c3RlbUZvbnQsIHNhbnMtc2VyaWY7CiAgICAgICAgdXNlci1zZWxlY3Q6IG5vbmU7CiAgICAgICAgdHJhbnNpdGlvbjogd2lkdGggMC4yNXMgZWFzZTsKICAgICAgfQoKICAgICAgOmhvc3QoW2NvbGxhcHNlZF0pIHsKICAgICAgICB3aWR0aDogdmFyKC0tc2lkZWJhci13aWR0aC1jb2xsYXBzZWQpOwogICAgICB9CgogICAgICAubWFpbmNvbnRhaW5lciB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICAgIGhlaWdodDogMTAwJTsKICAgICAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgfQoKICAgICAgLyogRmxvYXRpbmcgY29sbGFwc2UgdG9nZ2xlIGJ1dHRvbiAqLwogICAgICAuY29sbGFwc2UtdG9nZ2xlIHsKICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgICAgcmlnaHQ6IC0xMnB4OwogICAgICAgIHRvcDogMjRweDsKICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSk7CiAgICAgICAgd2lkdGg6IDI0cHg7CiAgICAgICAgaGVpZ2h0OiAyNHB4OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDUwJTsKICAgICAgICBiYWNrZ3JvdW5kOiAke3AuYmRUaGVtZSgiI2ZmZmZmZiIsIiMyNzI3MmEiKX07CiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHtwLmJkVGhlbWUoIiNlNWU1ZTUiLCIjM2YzZjQ2Iil9OwogICAgICAgIGJveC1zaGFkb3c6IDAgMnB4IDRweCByZ2JhKDAsIDAsIDAsIDAuMSk7CiAgICAgICAgY3Vyc29yOiBwb2ludGVyOwogICAgICAgIHotaW5kZXg6IDEwOwogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKICAgICAgICBjb2xvcjogJHtwLmJkVGhlbWUoIiM3MzczNzMiLCIjYTFhMWFhIil9OwogICAgICAgIG9wYWNpdHk6IDA7CiAgICAgICAgdHJhbnNpdGlvbjogb3BhY2l0eSAwLjJzIGVhc2UsIGJhY2tncm91bmQgMC4xNXMgZWFzZTsKICAgICAgICBwYWRkaW5nOiAwOwogICAgICB9CgogICAgICAuY29sbGFwc2UtdG9nZ2xlOmhvdmVyIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke3AuYmRUaGVtZSgiI2Y0ZjRmNSIsIiMzZjNmNDYiKX07CiAgICAgICAgY29sb3I6ICR7cC5iZFRoZW1lKCIjMGEwYTBhIiwiI2ZhZmFmYSIpfTsKICAgICAgfQoKICAgICAgOmhvc3QoOmhvdmVyKSAuY29sbGFwc2UtdG9nZ2xlIHsKICAgICAgICBvcGFjaXR5OiAxOwogICAgICB9CgogICAgICAuY29sbGFwc2UtdG9nZ2xlIGRlZXMtaWNvbiB7CiAgICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgICB9CgogICAgICAvKiBIZWFkZXIgU2VjdGlvbiAqLwogICAgICAuaGVhZGVyIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuOwogICAgICAgIGhlaWdodDogNDhweDsKICAgICAgICBwYWRkaW5nOiAwIDE2cHg7CiAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIHZhcigtLXNpZGViYXItYm9yZGVyKTsKICAgICAgICBmbGV4LXNocmluazogMDsKICAgICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94OwogICAgICB9CgogICAgICAuaGVhZGVyIC5oZWFkaW5nIHsKICAgICAgICBmbGV4OiAxOwogICAgICAgIGZvbnQtc2l6ZTogMTRweDsKICAgICAgICBmb250LXdlaWdodDogNjAwOwogICAgICAgIGNvbG9yOiB2YXIoLS1zaWRlYmFyLWZnLWFjdGl2ZSk7CiAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDsKICAgICAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzOwogICAgICAgIHRyYW5zaXRpb246IG9wYWNpdHkgMC4ycyBlYXNlLCB3aWR0aCAwLjI1cyBlYXNlOwogICAgICB9CgogICAgICA6aG9zdChbY29sbGFwc2VkXSkgLmhlYWRlciB7CiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7CiAgICAgICAgcGFkZGluZzogMCA4cHg7CiAgICAgIH0KCiAgICAgIDpob3N0KFtjb2xsYXBzZWRdKSAuaGVhZGVyIC5oZWFkaW5nIHsKICAgICAgICBvcGFjaXR5OiAwOwogICAgICAgIHdpZHRoOiAwOwogICAgICAgIG92ZXJmbG93OiBoaWRkZW47CiAgICAgIH0KCiAgICAgIC8qIFNjcm9sbGFibGUgTWVudSBTZWN0aW9uICovCiAgICAgIC5tZW51U2VjdGlvbiB7CiAgICAgICAgZmxleDogMTsKICAgICAgICBvdmVyZmxvdy15OiBhdXRvOwogICAgICAgIG92ZXJmbG93LXg6IGhpZGRlbjsKICAgICAgICBvdmVyc2Nyb2xsLWJlaGF2aW9yOiBjb250YWluOwogICAgICAgIHBhZGRpbmc6IDhweCAwOwogICAgICB9CgogICAgICAubWVudVNlY3Rpb246Oi13ZWJraXQtc2Nyb2xsYmFyIHsKICAgICAgICB3aWR0aDogNnB4OwogICAgICB9CgogICAgICAubWVudVNlY3Rpb246Oi13ZWJraXQtc2Nyb2xsYmFyLXRyYWNrIHsKICAgICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDsKICAgICAgfQoKICAgICAgLm1lbnVTZWN0aW9uOjotd2Via2l0LXNjcm9sbGJhci10aHVtYiB7CiAgICAgICAgYmFja2dyb3VuZDogJHtwLmJkVGhlbWUoInJnYmEoMCwgMCwgMCwgMC4xNSkiLCJyZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMTUpIil9OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDNweDsKICAgICAgfQoKICAgICAgLm1lbnVTZWN0aW9uOjotd2Via2l0LXNjcm9sbGJhci10aHVtYjpob3ZlciB7CiAgICAgICAgYmFja2dyb3VuZDogJHtwLmJkVGhlbWUoInJnYmEoMCwgMCwgMCwgMC4yNSkiLCJyZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMjUpIil9OwogICAgICB9CgogICAgICAvKiBNZW51IEdyb3VwICovCiAgICAgIC5tZW51R3JvdXAgewogICAgICAgIHBhZGRpbmc6IDAgOHB4OwogICAgICAgIG1hcmdpbi1ib3R0b206IDRweDsKICAgICAgfQoKICAgICAgOmhvc3QoW2NvbGxhcHNlZF0pIC5tZW51R3JvdXAgewogICAgICAgIHBhZGRpbmc6IDAgNHB4OwogICAgICB9CgogICAgICAuZ3JvdXBIZWFkZXIgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47CiAgICAgICAgcGFkZGluZzogOHB4IDEycHg7CiAgICAgICAgY3Vyc29yOiBwb2ludGVyOwogICAgICAgIGJvcmRlci1yYWRpdXM6IDZweDsKICAgICAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kIDAuMTVzIGVhc2UsIG9wYWNpdHkgMC4ycyBlYXNlLCBtYXgtaGVpZ2h0IDAuMjVzIGVhc2U7CiAgICAgICAgbWF4LWhlaWdodDogNDBweDsKICAgICAgfQoKICAgICAgLmdyb3VwSGVhZGVyOmhvdmVyIHsKICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAke3AuYmRUaGVtZSgicmdiYSgxNDAsIDEyMCwgMTAwLCAwLjA2KSIsInJnYmEoMTgwLCAxNjAsIDE0MCwgMC4wOCkiKX07CiAgICAgICAgcGFkZGluZzogN3B4IDExcHg7CiAgICAgIH0KCiAgICAgIC5ncm91cEhlYWRlcjpub3QoLmNvbGxhcHNlZCkgewogICAgICAgIGJhY2tncm91bmQ6ICR7cC5iZFRoZW1lKCJyZ2JhKDE0MCwgMTIwLCAxMDAsIDAuMDYpIiwicmdiYSgxODAsIDE2MCwgMTQwLCAwLjA4KSIpfTsKICAgICAgICBib3JkZXI6IG5vbmU7CiAgICAgICAgcGFkZGluZzogOHB4IDEycHg7CiAgICAgIH0KCiAgICAgIC5ncm91cEhlYWRlciAuZ3JvdXBUaXRsZSB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGdhcDogOHB4OwogICAgICAgIGZvbnQtc2l6ZTogMTFweDsKICAgICAgICBmb250LXdlaWdodDogNjAwOwogICAgICAgIGNvbG9yOiAke3AuYmRUaGVtZSgiIzc4NzE2YyIsIiNiNWE5OWEiKX07CiAgICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTsKICAgICAgICBsZXR0ZXItc3BhY2luZzogMC41cHg7CiAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDsKICAgICAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgICB9CgogICAgICAuZ3JvdXBIZWFkZXIgLmdyb3VwVGl0bGUgZGVlcy1pY29uIHsKICAgICAgICBmb250LXNpemU6IDE2cHg7CiAgICAgICAgY29sb3I6ICR7cC5iZFRoZW1lKCIjNzg3MTZjIiwiI2I1YTk5YSIpfTsKICAgICAgfQoKICAgICAgLmdyb3VwSGVhZGVyIC5jaGV2cm9uIHsKICAgICAgICBmb250LXNpemU6IDEycHg7CiAgICAgICAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDAuMnMgZWFzZTsKICAgICAgICBjb2xvcjogJHtwLmJkVGhlbWUoIiM3ODcxNmMiLCIjYjVhOTlhIil9OwogICAgICB9CgogICAgICAuZ3JvdXBIZWFkZXIuY29sbGFwc2VkIC5jaGV2cm9uIHsKICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgtOTBkZWcpOwogICAgICB9CgogICAgICAvKiBIaWRlIGdyb3VwIGhlYWRlcnMgd2hlbiBob3Jpem9udGFsbHkgY29sbGFwc2VkICovCiAgICAgIDpob3N0KFtjb2xsYXBzZWRdKSAuZ3JvdXBIZWFkZXIgewogICAgICAgIG9wYWNpdHk6IDA7CiAgICAgICAgbWF4LWhlaWdodDogMDsKICAgICAgICBwYWRkaW5nOiAwOwogICAgICAgIG1hcmdpbjogMDsKICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTsKICAgICAgfQoKICAgICAgLyogR3JvdXAgSXRlbXMgQ29udGFpbmVyICovCiAgICAgIC5ncm91cEl0ZW1zIHsKICAgICAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgICAgIHRyYW5zaXRpb246IG1heC1oZWlnaHQgMC4yNXMgZWFzZSwgb3BhY2l0eSAwLjJzIGVhc2UsIG1hcmdpbiAwLjI1cyBlYXNlOwogICAgICAgIG1heC1oZWlnaHQ6IDEwMDBweDsKICAgICAgICBvcGFjaXR5OiAxOwogICAgICAgIG1hcmdpbi1ib3R0b206IDEycHg7CiAgICAgIH0KCiAgICAgIC5ncm91cEl0ZW1zLmNvbGxhcHNlZCB7CiAgICAgICAgbWF4LWhlaWdodDogMDsKICAgICAgICBvcGFjaXR5OiAwOwogICAgICAgIG1hcmdpbi1ib3R0b206IDA7CiAgICAgIH0KCiAgICAgIC8qIEFsd2F5cyBzaG93IGl0ZW1zIHdoZW4gaG9yaXpvbnRhbGx5IGNvbGxhcHNlZCAocmVnYXJkbGVzcyBvZiBncm91cCBjb2xsYXBzZSBzdGF0ZSkgKi8KICAgICAgOmhvc3QoW2NvbGxhcHNlZF0pIC5ncm91cEl0ZW1zIHsKICAgICAgICBtYXgtaGVpZ2h0OiBub25lOwogICAgICAgIG9wYWNpdHk6IDE7CiAgICAgIH0KCiAgICAgIC8qIE1lbnUgSXRlbSBCYXNlICovCiAgICAgIC5tZW51SXRlbSB7CiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBnYXA6IDEwcHg7CiAgICAgICAgcGFkZGluZzogOHB4IDEycHg7CiAgICAgICAgbWFyZ2luOiAycHggMDsKICAgICAgICBmb250LXNpemU6IDEzcHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDQ1MDsKICAgICAgICBib3JkZXItcmFkaXVzOiA2cHg7CiAgICAgICAgY3Vyc29yOiBwb2ludGVyOwogICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjE1cyBlYXNlOwogICAgICAgIGNvbG9yOiB2YXIoLS1zaWRlYmFyLWZnKTsKICAgICAgfQoKICAgICAgLm1lbnVJdGVtOmhvdmVyIHsKICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1zaWRlYmFyLWhvdmVyKTsKICAgICAgICBjb2xvcjogdmFyKC0tc2lkZWJhci1mZy1hY3RpdmUpOwogICAgICB9CgogICAgICAubWVudUl0ZW06YWN0aXZlIHsKICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1zaWRlYmFyLWFjdGl2ZSk7CiAgICAgIH0KCiAgICAgIC5tZW51SXRlbS5kaXNhYmxlZCB7CiAgICAgICAgb3BhY2l0eTogMC41OwogICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7CiAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7CiAgICAgIH0KCiAgICAgIC5tZW51SXRlbS5zZWxlY3RlZCB7CiAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tc2lkZWJhci1hY3RpdmUpOwogICAgICAgIGNvbG9yOiB2YXIoLS1zaWRlYmFyLWZnLWFjdGl2ZSk7CiAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDsKICAgICAgfQoKICAgICAgLm1lbnVJdGVtLnNlbGVjdGVkOjpiZWZvcmUgewogICAgICAgIGNvbnRlbnQ6ICcnOwogICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgICBsZWZ0OiAwOwogICAgICAgIHRvcDogNTAlOwogICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTsKICAgICAgICB3aWR0aDogM3B4OwogICAgICAgIGhlaWdodDogMTZweDsKICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1zaWRlYmFyLWFjY2VudCk7CiAgICAgICAgYm9yZGVyLXJhZGl1czogMCAycHggMnB4IDA7CiAgICAgIH0KCiAgICAgIC5tZW51SXRlbSBkZWVzLWljb24gewogICAgICAgIGZvbnQtc2l6ZTogMTZweDsKICAgICAgICBvcGFjaXR5OiAwLjc7CiAgICAgICAgZmxleC1zaHJpbms6IDA7CiAgICAgIH0KCiAgICAgIC5tZW51SXRlbS5zZWxlY3RlZCBkZWVzLWljb24gewogICAgICAgIG9wYWNpdHk6IDE7CiAgICAgIH0KCiAgICAgIC5tZW51SXRlbSAuaXRlbUxhYmVsIHsKICAgICAgICBmbGV4OiAxOwogICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7CiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpczsKICAgICAgICB0cmFuc2l0aW9uOiBvcGFjaXR5IDAuMnMgZWFzZSwgd2lkdGggMC4yNXMgZWFzZTsKICAgICAgfQoKICAgICAgLyogQWN0aW9uIEl0ZW0gU3R5bGVzICovCiAgICAgIC5tZW51SXRlbS5hY3Rpb24tcHJpbWFyeSB7CiAgICAgICAgY29sb3I6IHZhcigtLWFjdGlvbi1wcmltYXJ5KTsKICAgICAgfQoKICAgICAgLm1lbnVJdGVtLmFjdGlvbi1wcmltYXJ5OmhvdmVyIHsKICAgICAgICBjb2xvcjogdmFyKC0tYWN0aW9uLXByaW1hcnktaG92ZXIpOwogICAgICAgIGJhY2tncm91bmQ6ICR7cC5iZFRoZW1lKCJyZ2JhKDM3LCA5OSwgMjM1LCAwLjA4KSIsInJnYmEoNTksIDEzMCwgMjQ2LCAwLjEyKSIpfTsKICAgICAgfQoKICAgICAgLm1lbnVJdGVtLmFjdGlvbi1wcmltYXJ5IGRlZXMtaWNvbiB7CiAgICAgICAgb3BhY2l0eTogMTsKICAgICAgfQoKICAgICAgLm1lbnVJdGVtLmFjdGlvbi1kYW5nZXIgewogICAgICAgIGNvbG9yOiB2YXIoLS1hY3Rpb24tZGFuZ2VyKTsKICAgICAgfQoKICAgICAgLm1lbnVJdGVtLmFjdGlvbi1kYW5nZXI6aG92ZXIgewogICAgICAgIGNvbG9yOiB2YXIoLS1hY3Rpb24tZGFuZ2VyLWhvdmVyKTsKICAgICAgICBiYWNrZ3JvdW5kOiAke3AuYmRUaGVtZSgicmdiYSgyMjAsIDM4LCAzOCwgMC4wOCkiLCJyZ2JhKDIzOSwgNjgsIDY4LCAwLjEyKSIpfTsKICAgICAgfQoKICAgICAgLm1lbnVJdGVtLmFjdGlvbi1kYW5nZXIgZGVlcy1pY29uIHsKICAgICAgICBvcGFjaXR5OiAxOwogICAgICB9CgogICAgICAvKiBGaWx0ZXIgSXRlbSBTdHlsZXMgKi8KICAgICAgLm1lbnVJdGVtLmZpbHRlciB7CiAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuOwogICAgICB9CgogICAgICAubWVudUl0ZW0uZmlsdGVyIC5maWx0ZXItY2hlY2tib3ggewogICAgICAgIHdpZHRoOiAxNnB4OwogICAgICAgIGhlaWdodDogMTZweDsKICAgICAgICBib3JkZXI6IDJweCBzb2xpZCAke3AuYmRUaGVtZSgiI2Q0ZDRkNCIsIiM1MjUyNTIiKX07CiAgICAgICAgYm9yZGVyLXJhZGl1czogNHB4OwogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC4xNXMgZWFzZTsKICAgICAgICBmbGV4LXNocmluazogMDsKICAgICAgfQoKICAgICAgLm1lbnVJdGVtLmZpbHRlciAuZmlsdGVyLWNoZWNrYm94LmNoZWNrZWQgewogICAgICAgIGJhY2tncm91bmQ6IHZhcigtLXNpZGViYXItYWNjZW50KTsKICAgICAgICBib3JkZXItY29sb3I6IHZhcigtLXNpZGViYXItYWNjZW50KTsKICAgICAgfQoKICAgICAgLm1lbnVJdGVtLmZpbHRlciAuZmlsdGVyLWNoZWNrYm94IGRlZXMtaWNvbiB7CiAgICAgICAgZm9udC1zaXplOiAxMnB4OwogICAgICAgIGNvbG9yOiAke3AuYmRUaGVtZSgiI2ZhZmFmYSIsIiMwYTBhMGEiKX07CiAgICAgICAgb3BhY2l0eTogMTsKICAgICAgfQoKICAgICAgLm1lbnVJdGVtLmZpbHRlci5hY3RpdmUgewogICAgICAgIGNvbG9yOiB2YXIoLS1zaWRlYmFyLWZnLWFjdGl2ZSk7CiAgICAgIH0KCiAgICAgIC8qIE11bHRpLUZpbHRlciBDb250YWluZXIgKi8KICAgICAgLm11bHRpRmlsdGVyIHsKICAgICAgICBtYXJnaW46IDRweCAwOwogICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLXNpZGViYXItYm9yZGVyKTsKICAgICAgICBib3JkZXItcmFkaXVzOiA4cHg7CiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgICAgICBiYWNrZ3JvdW5kOiAke3AuYmRUaGVtZSgicmdiYSgwLCAwLCAwLCAwLjAyKSIsInJnYmEoMjU1LCAyNTUsIDI1NSwgMC4wMikiKX07CiAgICAgIH0KCiAgICAgIC5tdWx0aUZpbHRlci1oZWFkZXIgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47CiAgICAgICAgcGFkZGluZzogMTBweCAxMnB4OwogICAgICAgIGN1cnNvcjogcG9pbnRlcjsKICAgICAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kIDAuMTVzIGVhc2U7CiAgICAgIH0KCiAgICAgIC5tdWx0aUZpbHRlci1oZWFkZXI6aG92ZXIgewogICAgICAgIGJhY2tncm91bmQ6IHZhcigtLXNpZGViYXItaG92ZXIpOwogICAgICB9CgogICAgICAubXVsdGlGaWx0ZXItaGVhZGVyIC5tdWx0aUZpbHRlci10aXRsZSB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGdhcDogOHB4OwogICAgICAgIGZvbnQtc2l6ZTogMTNweDsKICAgICAgICBmb250LXdlaWdodDogNTAwOwogICAgICAgIGNvbG9yOiB2YXIoLS1zaWRlYmFyLWZnLWFjdGl2ZSk7CiAgICAgIH0KCiAgICAgIC5tdWx0aUZpbHRlci1oZWFkZXIgLm11bHRpRmlsdGVyLXRpdGxlIGRlZXMtaWNvbiB7CiAgICAgICAgZm9udC1zaXplOiAxNnB4OwogICAgICAgIG9wYWNpdHk6IDAuNzsKICAgICAgfQoKICAgICAgLm11bHRpRmlsdGVyLWhlYWRlciAubXVsdGlGaWx0ZXItY291bnQgewogICAgICAgIGZvbnQtc2l6ZTogMTFweDsKICAgICAgICBjb2xvcjogdmFyKC0tc2lkZWJhci1mZy1tdXRlZCk7CiAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tYmFkZ2UtZGVmYXVsdC1iZyk7CiAgICAgICAgcGFkZGluZzogMnB4IDZweDsKICAgICAgICBib3JkZXItcmFkaXVzOiA0cHg7CiAgICAgIH0KCiAgICAgIC5tdWx0aUZpbHRlci1oZWFkZXIgLmNoZXZyb24gewogICAgICAgIGZvbnQtc2l6ZTogMTJweDsKICAgICAgICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMC4ycyBlYXNlOwogICAgICAgIGNvbG9yOiB2YXIoLS1zaWRlYmFyLWZnLW11dGVkKTsKICAgICAgfQoKICAgICAgLm11bHRpRmlsdGVyLWhlYWRlci5jb2xsYXBzZWQgLmNoZXZyb24gewogICAgICAgIHRyYW5zZm9ybTogcm90YXRlKC05MGRlZyk7CiAgICAgIH0KCiAgICAgIC5tdWx0aUZpbHRlci1vcHRpb25zIHsKICAgICAgICBib3JkZXItdG9wOiAxcHggc29saWQgdmFyKC0tc2lkZWJhci1ib3JkZXIpOwogICAgICAgIG92ZXJmbG93OiBoaWRkZW47CiAgICAgICAgdHJhbnNpdGlvbjogbWF4LWhlaWdodCAwLjI1cyBlYXNlLCBvcGFjaXR5IDAuMnMgZWFzZTsKICAgICAgICBtYXgtaGVpZ2h0OiA1MDBweDsKICAgICAgICBvcGFjaXR5OiAxOwogICAgICB9CgogICAgICAubXVsdGlGaWx0ZXItb3B0aW9ucy5jb2xsYXBzZWQgewogICAgICAgIG1heC1oZWlnaHQ6IDA7CiAgICAgICAgb3BhY2l0eTogMDsKICAgICAgICBib3JkZXItdG9wOiBub25lOwogICAgICB9CgogICAgICAubXVsdGlGaWx0ZXItb3B0aW9uIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgZ2FwOiAxMHB4OwogICAgICAgIHBhZGRpbmc6IDhweCAxMnB4OwogICAgICAgIGN1cnNvcjogcG9pbnRlcjsKICAgICAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kIDAuMTVzIGVhc2U7CiAgICAgICAgZm9udC1zaXplOiAxM3B4OwogICAgICAgIGNvbG9yOiB2YXIoLS1zaWRlYmFyLWZnKTsKICAgICAgfQoKICAgICAgLm11bHRpRmlsdGVyLW9wdGlvbjpob3ZlciB7CiAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tc2lkZWJhci1ob3Zlcik7CiAgICAgICAgY29sb3I6IHZhcigtLXNpZGViYXItZmctYWN0aXZlKTsKICAgICAgfQoKICAgICAgLm11bHRpRmlsdGVyLW9wdGlvbiAub3B0aW9uLWNoZWNrYm94IHsKICAgICAgICB3aWR0aDogMTZweDsKICAgICAgICBoZWlnaHQ6IDE2cHg7CiAgICAgICAgYm9yZGVyOiAycHggc29saWQgJHtwLmJkVGhlbWUoIiNkNGQ0ZDQiLCIjNTI1MjUyIil9OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDRweDsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7CiAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuMTVzIGVhc2U7CiAgICAgICAgZmxleC1zaHJpbms6IDA7CiAgICAgIH0KCiAgICAgIC5tdWx0aUZpbHRlci1vcHRpb24gLm9wdGlvbi1jaGVja2JveC5jaGVja2VkIHsKICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1zaWRlYmFyLWFjY2VudCk7CiAgICAgICAgYm9yZGVyLWNvbG9yOiB2YXIoLS1zaWRlYmFyLWFjY2VudCk7CiAgICAgIH0KCiAgICAgIC5tdWx0aUZpbHRlci1vcHRpb24gLm9wdGlvbi1jaGVja2JveCBkZWVzLWljb24gewogICAgICAgIGZvbnQtc2l6ZTogMTJweDsKICAgICAgICBjb2xvcjogJHtwLmJkVGhlbWUoIiNmYWZhZmEiLCIjMGEwYTBhIil9OwogICAgICB9CgogICAgICAubXVsdGlGaWx0ZXItb3B0aW9uIGRlZXMtaWNvbi5vcHRpb24taWNvbiB7CiAgICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgICAgIG9wYWNpdHk6IDAuNzsKICAgICAgfQoKICAgICAgLyogRGl2aWRlciAqLwogICAgICAubWVudURpdmlkZXIgewogICAgICAgIGhlaWdodDogMXB4OwogICAgICAgIGJhY2tncm91bmQ6IHZhcigtLXNpZGViYXItYm9yZGVyKTsKICAgICAgICBtYXJnaW46IDhweCAxMnB4OwogICAgICB9CgogICAgICA6aG9zdChbY29sbGFwc2VkXSkgLm1lbnVEaXZpZGVyIHsKICAgICAgICBtYXJnaW46IDhweCA0cHg7CiAgICAgIH0KCiAgICAgIC8qIEhlYWRlci9MYWJlbCAqLwogICAgICAubWVudUhlYWRlciB7CiAgICAgICAgcGFkZGluZzogMTJweCAxMnB4IDRweCAxMnB4OwogICAgICAgIGZvbnQtc2l6ZTogMTBweDsKICAgICAgICBmb250LXdlaWdodDogNjAwOwogICAgICAgIGNvbG9yOiB2YXIoLS1zaWRlYmFyLWZnLW11dGVkKTsKICAgICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlOwogICAgICAgIGxldHRlci1zcGFjaW5nOiAwLjVweDsKICAgICAgfQoKICAgICAgOmhvc3QoW2NvbGxhcHNlZF0pIC5tZW51SGVhZGVyIHsKICAgICAgICBkaXNwbGF5OiBub25lOwogICAgICB9CgogICAgICAvKiBMaW5rIEl0ZW0gKi8KICAgICAgLm1lbnVJdGVtLmxpbmsgLmV4dGVybmFsLWljb24gewogICAgICAgIGZvbnQtc2l6ZTogMTJweDsKICAgICAgICBvcGFjaXR5OiAwLjU7CiAgICAgICAgbWFyZ2luLWxlZnQ6IGF1dG87CiAgICAgIH0KCiAgICAgIC8qIENvbGxhcHNlZCBtZW51IGl0ZW0gc3R5bGVzICovCiAgICAgIDpob3N0KFtjb2xsYXBzZWRdKSAubWVudUl0ZW0gewogICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOwogICAgICAgIHBhZGRpbmc6IDhweDsKICAgICAgICBnYXA6IDA7CiAgICAgIH0KCiAgICAgIDpob3N0KFtjb2xsYXBzZWRdKSAubWVudUl0ZW0gLml0ZW1MYWJlbCB7CiAgICAgICAgb3BhY2l0eTogMDsKICAgICAgICB3aWR0aDogMDsKICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgIH0KCiAgICAgIDpob3N0KFtjb2xsYXBzZWRdKSAubWVudUl0ZW0uc2VsZWN0ZWQ6OmJlZm9yZSB7CiAgICAgICAgbGVmdDogLTRweDsKICAgICAgfQoKICAgICAgOmhvc3QoW2NvbGxhcHNlZF0pIC5tZW51SXRlbSAuZmlsdGVyLWNoZWNrYm94LAogICAgICA6aG9zdChbY29sbGFwc2VkXSkgLm1lbnVJdGVtIC5leHRlcm5hbC1pY29uIHsKICAgICAgICBkaXNwbGF5OiBub25lOwogICAgICB9CgogICAgICA6aG9zdChbY29sbGFwc2VkXSkgLm11bHRpRmlsdGVyIHsKICAgICAgICBkaXNwbGF5OiBub25lOwogICAgICB9CgogICAgICAvKiBUb29sdGlwIGZvciBjb2xsYXBzZWQgc3RhdGUgKi8KICAgICAgLml0ZW0tdG9vbHRpcCB7CiAgICAgICAgcG9zaXRpb246IGFic29sdXRlOwogICAgICAgIGxlZnQ6IDEwMCU7CiAgICAgICAgdG9wOiA1MCU7CiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpOwogICAgICAgIG1hcmdpbi1sZWZ0OiAxMnB4OwogICAgICAgIHBhZGRpbmc6IDZweCAxMnB4OwogICAgICAgIGJhY2tncm91bmQ6IHZhcigtLXRvb2x0aXAtYmcpOwogICAgICAgIGNvbG9yOiB2YXIoLS10b29sdGlwLWZnKTsKICAgICAgICBib3JkZXItcmFkaXVzOiA2cHg7CiAgICAgICAgZm9udC1zaXplOiAxM3B4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7CiAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDsKICAgICAgICBvcGFjaXR5OiAwOwogICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lOwogICAgICAgIHRyYW5zaXRpb246IG9wYWNpdHkgMC4xNXMgZWFzZTsKICAgICAgICB6LWluZGV4OiAxMDAwOwogICAgICAgIGJveC1zaGFkb3c6IDAgMnB4IDhweCByZ2JhKDAsIDAsIDAsIDAuMTUpOwogICAgICB9CgogICAgICAuaXRlbS10b29sdGlwOjpiZWZvcmUgewogICAgICAgIGNvbnRlbnQ6ICcnOwogICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgICBsZWZ0OiAtNHB4OwogICAgICAgIHRvcDogNTAlOwogICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTsKICAgICAgICBib3JkZXI6IDRweCBzb2xpZCB0cmFuc3BhcmVudDsKICAgICAgICBib3JkZXItcmlnaHQtY29sb3I6IHZhcigtLXRvb2x0aXAtYmcpOwogICAgICB9CgogICAgICA6aG9zdChbY29sbGFwc2VkXSkgLm1lbnVJdGVtOmhvdmVyIC5pdGVtLXRvb2x0aXAgewogICAgICAgIG9wYWNpdHk6IDE7CiAgICAgICAgdHJhbnNpdGlvbi1kZWxheTogMXM7CiAgICAgIH0KCiAgICAgIC8qIEJhZGdlIFN0eWxlcyAqLwogICAgICAuYmFkZ2UgewogICAgICAgIGRpc3BsYXk6IGlubGluZS1mbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7CiAgICAgICAgbWluLXdpZHRoOiAxOHB4OwogICAgICAgIGhlaWdodDogMThweDsKICAgICAgICBwYWRkaW5nOiAwIDZweDsKICAgICAgICBmb250LXNpemU6IDEwcHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDsKICAgICAgICBib3JkZXItcmFkaXVzOiA5cHg7CiAgICAgICAgZmxleC1zaHJpbms6IDA7CiAgICAgIH0KCiAgICAgIC5iYWRnZS5kZWZhdWx0IHsKICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1iYWRnZS1kZWZhdWx0LWJnKTsKICAgICAgICBjb2xvcjogdmFyKC0tYmFkZ2UtZGVmYXVsdC1mZyk7CiAgICAgIH0KCiAgICAgIC5iYWRnZS5zdWNjZXNzIHsKICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1iYWRnZS1zdWNjZXNzLWJnKTsKICAgICAgICBjb2xvcjogdmFyKC0tYmFkZ2Utc3VjY2Vzcy1mZyk7CiAgICAgIH0KCiAgICAgIC5iYWRnZS53YXJuaW5nIHsKICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1iYWRnZS13YXJuaW5nLWJnKTsKICAgICAgICBjb2xvcjogdmFyKC0tYmFkZ2Utd2FybmluZy1mZyk7CiAgICAgIH0KCiAgICAgIC5iYWRnZS5lcnJvciB7CiAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tYmFkZ2UtZXJyb3ItYmcpOwogICAgICAgIGNvbG9yOiB2YXIoLS1iYWRnZS1lcnJvci1mZyk7CiAgICAgIH0KCiAgICAgIDpob3N0KFtjb2xsYXBzZWRdKSAuYmFkZ2UgewogICAgICAgIGRpc3BsYXk6IG5vbmU7CiAgICAgIH0KCiAgICAgIC8qIExlZ2FjeSBvcHRpb25zIGNvbnRhaW5lciAqLwogICAgICAubGVnYWN5T3B0aW9ucyB7CiAgICAgICAgcGFkZGluZzogMCA4cHg7CiAgICAgIH0KCiAgICAgIC8qIERpdmlkZXIgKGxlZ2FjeSkgKi8KICAgICAgLmRpdmlkZXIgewogICAgICAgIGhlaWdodDogMXB4OwogICAgICAgIGJhY2tncm91bmQ6IHZhcigtLXNpZGViYXItYm9yZGVyKTsKICAgICAgICBtYXJnaW46IDhweCAxMnB4OwogICAgICB9CiAgICBgXTtyZW5kZXIoKXtyZXR1cm4gd2AKICAgICAgPGRpdiBjbGFzcz0ibWFpbmNvbnRhaW5lciI+CiAgICAgICAgPGRpdiBjbGFzcz0iaGVhZGVyIj4KICAgICAgICAgIDxzcGFuIGNsYXNzPSJoZWFkaW5nIj4ke3RoaXMuaGVhZGluZ308L3NwYW4+CiAgICAgICAgPC9kaXY+CiAgICAgICAgPGRpdiBjbGFzcz0ibWVudVNlY3Rpb24iPgogICAgICAgICAgJHt0aGlzLmdyb3Vwcy5sZW5ndGg+MD90aGlzLnJlbmRlckdyb3VwcygpOnRoaXMucmVuZGVyTGVnYWN5T3B0aW9ucygpfQogICAgICAgIDwvZGl2PgogICAgICA8L2Rpdj4KICAgICAgPGJ1dHRvbiBjbGFzcz0iY29sbGFwc2UtdG9nZ2xlIiBAY2xpY2s9IiR7KCk9PnRoaXMudG9nZ2xlQ29sbGFwc2UoKX0iPgogICAgICAgIDxkZWVzLWljb24gLmljb249IiR7dGhpcy5jb2xsYXBzZWQ/Imx1Y2lkZTpjaGV2cm9uUmlnaHQiOiJsdWNpZGU6Y2hldnJvbkxlZnQifSI+PC9kZWVzLWljb24+CiAgICAgIDwvYnV0dG9uPgogICAgYH1yZW5kZXJHcm91cHMoKXtyZXR1cm4gd2AKICAgICAgJHt0aGlzLmdyb3Vwcy5tYXAoVD0+d2AKICAgICAgICA8ZGl2IGNsYXNzPSJtZW51R3JvdXAiPgogICAgICAgICAgPGRpdgogICAgICAgICAgICBjbGFzcz0iZ3JvdXBIZWFkZXIgJHt0aGlzLmNvbGxhcHNlZEdyb3Vwcy5oYXMoVC5uYW1lKT8iY29sbGFwc2VkIjoiIn0iCiAgICAgICAgICAgIEBjbGljaz0iJHsoKT0+dGhpcy50b2dnbGVHcm91cChULm5hbWUpfSIKICAgICAgICAgID4KICAgICAgICAgICAgPHNwYW4gY2xhc3M9Imdyb3VwVGl0bGUiPgogICAgICAgICAgICAgICR7VC5pY29uTmFtZT93YDxkZWVzLWljb24gLmljb249IiR7dGhpcy5ub3JtYWxpemVJY29uKFQuaWNvbk5hbWUpfSI+PC9kZWVzLWljb24+YDoiIn0KICAgICAgICAgICAgICAke1QubmFtZX0KICAgICAgICAgICAgPC9zcGFuPgogICAgICAgICAgICA8ZGVlcy1pY29uIGNsYXNzPSJjaGV2cm9uIiAuaWNvbj0iJHsibHVjaWRlOmNoZXZyb25Eb3duIn0iPjwvZGVlcy1pY29uPgogICAgICAgICAgPC9kaXY+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJncm91cEl0ZW1zICR7dGhpcy5jb2xsYXBzZWRHcm91cHMuaGFzKFQubmFtZSk/ImNvbGxhcHNlZCI6IiJ9Ij4KICAgICAgICAgICAgJHtULml0ZW1zLm1hcCgkPT50aGlzLnJlbmRlckl0ZW0oJCxUKSl9CiAgICAgICAgICA8L2Rpdj4KICAgICAgICA8L2Rpdj4KICAgICAgYCl9CiAgICBgfXJlbmRlckl0ZW0oVCwkKXtpZigiaGlkZGVuImluIFQmJlQuaGlkZGVuKXJldHVybiB3YGA7c3dpdGNoKCJ0eXBlImluIFQ/VC50eXBlOiJ0YWIiKXtjYXNlImFjdGlvbiI6cmV0dXJuIHRoaXMucmVuZGVyQWN0aW9uSXRlbShUKTtjYXNlImZpbHRlciI6cmV0dXJuIHRoaXMucmVuZGVyRmlsdGVySXRlbShUKTtjYXNlIm11bHRpRmlsdGVyIjpyZXR1cm4gdGhpcy5yZW5kZXJNdWx0aUZpbHRlckl0ZW0oVCk7Y2FzZSJkaXZpZGVyIjpyZXR1cm4gdGhpcy5yZW5kZXJEaXZpZGVyKCk7Y2FzZSJoZWFkZXIiOnJldHVybiB0aGlzLnJlbmRlckhlYWRlcihUKTtjYXNlImxpbmsiOnJldHVybiB0aGlzLnJlbmRlckxpbmtJdGVtKFQpO2RlZmF1bHQ6cmV0dXJuIHRoaXMucmVuZGVyVGFiSXRlbShULCQpfX1yZW5kZXJUYWJJdGVtKFQsJCl7bGV0IFY9dGhpcy5zZWxlY3RlZEl0ZW0/LmtleT09PVQua2V5LFI9VC5kaXNhYmxlZD09PSEwO3JldHVybiB3YAogICAgICA8ZGl2CiAgICAgICAgY2xhc3M9Im1lbnVJdGVtICR7Vj8ic2VsZWN0ZWQiOiIifSAke1I/ImRpc2FibGVkIjoiIn0iCiAgICAgICAgQGNsaWNrPSIkeygpPT4hUiYmdGhpcy5zZWxlY3RUYWJJdGVtKFQsJCl9IgogICAgICAgIEBjb250ZXh0bWVudT0iJHtVPT50aGlzLmhhbmRsZUNvbnRleHRNZW51KFUsVCl9IgogICAgICA+CiAgICAgICAgJHtULmljb25OYW1lP3dgPGRlZXMtaWNvbiAuaWNvbj0iJHt0aGlzLm5vcm1hbGl6ZUljb24oVC5pY29uTmFtZSl9Ij48L2RlZXMtaWNvbj5gOiIifQogICAgICAgIDxzcGFuIGNsYXNzPSJpdGVtTGFiZWwiPiR7VC5rZXl9PC9zcGFuPgogICAgICAgICR7VC5iYWRnZSE9PXZvaWQgMD93YAogICAgICAgICAgPHNwYW4gY2xhc3M9ImJhZGdlICR7VC5iYWRnZVZhcmlhbnR8fCJkZWZhdWx0In0iPiR7VC5iYWRnZX08L3NwYW4+CiAgICAgICAgYDoiIn0KICAgICAgICA8c3BhbiBjbGFzcz0iaXRlbS10b29sdGlwIj4ke1Qua2V5fTwvc3Bhbj4KICAgICAgPC9kaXY+CiAgICBgfXJlbmRlckFjdGlvbkl0ZW0oVCl7bGV0ICQ9VC52YXJpYW50fHwicHJpbWFyeSIsVj1ULmRpc2FibGVkPT09ITA7cmV0dXJuIHdgCiAgICAgIDxkaXYKICAgICAgICBjbGFzcz0ibWVudUl0ZW0gYWN0aW9uLSR7JH0gJHtWPyJkaXNhYmxlZCI6IiJ9IgogICAgICAgIEBjbGljaz0iJHsoKT0+IVYmJnRoaXMuaGFuZGxlQWN0aW9uQ2xpY2soVCl9IgogICAgICA+CiAgICAgICAgJHtULmljb25OYW1lP3dgPGRlZXMtaWNvbiAuaWNvbj0iJHt0aGlzLm5vcm1hbGl6ZUljb24oVC5pY29uTmFtZSl9Ij48L2RlZXMtaWNvbj5gOiIifQogICAgICAgIDxzcGFuIGNsYXNzPSJpdGVtTGFiZWwiPiR7VC5rZXl9PC9zcGFuPgogICAgICAgIDxzcGFuIGNsYXNzPSJpdGVtLXRvb2x0aXAiPiR7VC5rZXl9PC9zcGFuPgogICAgICA8L2Rpdj4KICAgIGB9cmVuZGVyRmlsdGVySXRlbShUKXtsZXQgJD1ULmRpc2FibGVkPT09ITA7cmV0dXJuIHdgCiAgICAgIDxkaXYKICAgICAgICBjbGFzcz0ibWVudUl0ZW0gZmlsdGVyICR7VC5hY3RpdmU/ImFjdGl2ZSI6IiJ9ICR7JD8iZGlzYWJsZWQiOiIifSIKICAgICAgICBAY2xpY2s9IiR7KCk9PiEkJiZ0aGlzLmhhbmRsZUZpbHRlclRvZ2dsZShUKX0iCiAgICAgID4KICAgICAgICAke1QuaWNvbk5hbWU/d2A8ZGVlcy1pY29uIC5pY29uPSIke3RoaXMubm9ybWFsaXplSWNvbihULmljb25OYW1lKX0iPjwvZGVlcy1pY29uPmA6IiJ9CiAgICAgICAgPHNwYW4gY2xhc3M9Iml0ZW1MYWJlbCI+JHtULmtleX08L3NwYW4+CiAgICAgICAgPGRpdiBjbGFzcz0iZmlsdGVyLWNoZWNrYm94ICR7VC5hY3RpdmU/ImNoZWNrZWQiOiIifSI+CiAgICAgICAgICAke1QuYWN0aXZlP3dgPGRlZXMtaWNvbiAuaWNvbj0iJHsibHVjaWRlOmNoZWNrIn0iPjwvZGVlcy1pY29uPmA6IiJ9CiAgICAgICAgPC9kaXY+CiAgICAgICAgPHNwYW4gY2xhc3M9Iml0ZW0tdG9vbHRpcCI+JHtULmtleX08L3NwYW4+CiAgICAgIDwvZGl2PgogICAgYH1yZW5kZXJNdWx0aUZpbHRlckl0ZW0oVCl7bGV0ICQ9dGhpcy5jb2xsYXBzZWRNdWx0aUZpbHRlcnMuaGFzKFQua2V5KSxWPVQub3B0aW9ucy5maWx0ZXIoUj0+Ui5jaGVja2VkKS5sZW5ndGg7cmV0dXJuIHdgCiAgICAgIDxkaXYgY2xhc3M9Im11bHRpRmlsdGVyIj4KICAgICAgICA8ZGl2CiAgICAgICAgICBjbGFzcz0ibXVsdGlGaWx0ZXItaGVhZGVyICR7JD8iY29sbGFwc2VkIjoiIn0iCiAgICAgICAgICBAY2xpY2s9IiR7KCk9PnRoaXMudG9nZ2xlTXVsdGlGaWx0ZXIoVC5rZXkpfSIKICAgICAgICA+CiAgICAgICAgICA8c3BhbiBjbGFzcz0ibXVsdGlGaWx0ZXItdGl0bGUiPgogICAgICAgICAgICAke1QuaWNvbk5hbWU/d2A8ZGVlcy1pY29uIC5pY29uPSIke3RoaXMubm9ybWFsaXplSWNvbihULmljb25OYW1lKX0iPjwvZGVlcy1pY29uPmA6IiJ9CiAgICAgICAgICAgICR7VC5rZXl9CiAgICAgICAgICA8L3NwYW4+CiAgICAgICAgICAke1Y+MD93YDxzcGFuIGNsYXNzPSJtdWx0aUZpbHRlci1jb3VudCI+JHtWfTwvc3Bhbj5gOiIifQogICAgICAgICAgPGRlZXMtaWNvbiBjbGFzcz0iY2hldnJvbiIgLmljb249IiR7Imx1Y2lkZTpjaGV2cm9uRG93biJ9Ij48L2RlZXMtaWNvbj4KICAgICAgICA8L2Rpdj4KICAgICAgICA8ZGl2IGNsYXNzPSJtdWx0aUZpbHRlci1vcHRpb25zICR7JD8iY29sbGFwc2VkIjoiIn0iPgogICAgICAgICAgJHtULm9wdGlvbnMubWFwKFI9PndgCiAgICAgICAgICAgIDxkaXYKICAgICAgICAgICAgICBjbGFzcz0ibXVsdGlGaWx0ZXItb3B0aW9uIgogICAgICAgICAgICAgIEBjbGljaz0iJHsoKT0+dGhpcy5oYW5kbGVNdWx0aUZpbHRlck9wdGlvblRvZ2dsZShULFIua2V5KX0iCiAgICAgICAgICAgID4KICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJvcHRpb24tY2hlY2tib3ggJHtSLmNoZWNrZWQ/ImNoZWNrZWQiOiIifSI+CiAgICAgICAgICAgICAgICAke1IuY2hlY2tlZD93YDxkZWVzLWljb24gLmljb249IiR7Imx1Y2lkZTpjaGVjayJ9Ij48L2RlZXMtaWNvbj5gOiIifQogICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICR7Ui5pY29uTmFtZT93YDxkZWVzLWljb24gY2xhc3M9Im9wdGlvbi1pY29uIiAuaWNvbj0iJHt0aGlzLm5vcm1hbGl6ZUljb24oUi5pY29uTmFtZSl9Ij48L2RlZXMtaWNvbj5gOiIifQogICAgICAgICAgICAgIDxzcGFuPiR7Ui5sYWJlbH08L3NwYW4+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgYCl9CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGl2PgogICAgYH1yZW5kZXJEaXZpZGVyKCl7cmV0dXJuIHdgPGRpdiBjbGFzcz0ibWVudURpdmlkZXIiPjwvZGl2PmB9cmVuZGVySGVhZGVyKFQpe3JldHVybiB3YDxkaXYgY2xhc3M9Im1lbnVIZWFkZXIiPiR7VC5sYWJlbH08L2Rpdj5gfXJlbmRlckxpbmtJdGVtKFQpe2xldCAkPVQuZXh0ZXJuYWw/P1QuaHJlZi5zdGFydHNXaXRoKCJodHRwIiksVj1ULmRpc2FibGVkPT09ITA7cmV0dXJuIHdgCiAgICAgIDxkaXYKICAgICAgICBjbGFzcz0ibWVudUl0ZW0gbGluayAke1Y/ImRpc2FibGVkIjoiIn0iCiAgICAgICAgQGNsaWNrPSIkeygpPT4hViYmdGhpcy5oYW5kbGVMaW5rQ2xpY2soVCl9IgogICAgICA+CiAgICAgICAgJHtULmljb25OYW1lP3dgPGRlZXMtaWNvbiAuaWNvbj0iJHt0aGlzLm5vcm1hbGl6ZUljb24oVC5pY29uTmFtZSl9Ij48L2RlZXMtaWNvbj5gOiIifQogICAgICAgIDxzcGFuIGNsYXNzPSJpdGVtTGFiZWwiPiR7VC5rZXl9PC9zcGFuPgogICAgICAgICR7JD93YDxkZWVzLWljb24gY2xhc3M9ImV4dGVybmFsLWljb24iIC5pY29uPSIkeyJsdWNpZGU6ZXh0ZXJuYWxMaW5rIn0iPjwvZGVlcy1pY29uPmA6IiJ9CiAgICAgICAgPHNwYW4gY2xhc3M9Iml0ZW0tdG9vbHRpcCI+JHtULmtleX08L3NwYW4+CiAgICAgIDwvZGl2PgogICAgYH1yZW5kZXJMZWdhY3lPcHRpb25zKCl7cmV0dXJuIHdgCiAgICAgIDxkaXYgY2xhc3M9ImxlZ2FjeU9wdGlvbnMiPgogICAgICAgICR7dGhpcy5zZWxlY3Rpb25PcHRpb25zLm1hcChUPT57aWYoImRpdmlkZXIiaW4gVCYmVC5kaXZpZGVyKXJldHVybiB3YDxkaXYgY2xhc3M9ImRpdmlkZXIiPjwvZGl2PmA7bGV0ICQ9VCxWPXtrZXk6JC5rZXksaWNvbk5hbWU6JC5pY29uTmFtZSxhY3Rpb246JC5hY3Rpb24sYmFkZ2U6JC5iYWRnZSxiYWRnZVZhcmlhbnQ6JC5iYWRnZVZhcmlhbnR9O3JldHVybiB0aGlzLnJlbmRlclRhYkl0ZW0oVil9KX0KICAgICAgPC9kaXY+CiAgICBgfW5vcm1hbGl6ZUljb24oVCl7cmV0dXJuIFQuc3RhcnRzV2l0aCgibHVjaWRlOiIpP1Q6YGx1Y2lkZToke1R9YH10b2dnbGVHcm91cChUKXtsZXQgJD1uZXcgU2V0KHRoaXMuY29sbGFwc2VkR3JvdXBzKTskLmhhcyhUKT8kLmRlbGV0ZShUKTokLmFkZChUKSx0aGlzLmNvbGxhcHNlZEdyb3Vwcz0kfXRvZ2dsZU11bHRpRmlsdGVyKFQpe2xldCAkPW5ldyBTZXQodGhpcy5jb2xsYXBzZWRNdWx0aUZpbHRlcnMpOyQuaGFzKFQpPyQuZGVsZXRlKFQpOiQuYWRkKFQpLHRoaXMuY29sbGFwc2VkTXVsdGlGaWx0ZXJzPSR9dG9nZ2xlQ29sbGFwc2UoKXt0aGlzLmNvbGxhcHNlZD0hdGhpcy5jb2xsYXBzZWQsdGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBDdXN0b21FdmVudCgiY29sbGFwc2UtY2hhbmdlIix7ZGV0YWlsOntjb2xsYXBzZWQ6dGhpcy5jb2xsYXBzZWR9LGJ1YmJsZXM6ITAsY29tcG9zZWQ6ITB9KSl9c2VsZWN0VGFiSXRlbShULCQpe3RoaXMuc2VsZWN0ZWRJdGVtPVQsVC5hY3Rpb24oKSx0aGlzLmRpc3BhdGNoRXZlbnQobmV3IEN1c3RvbUV2ZW50KCJpdGVtLXNlbGVjdCIse2RldGFpbDp7aXRlbTpULGdyb3VwOiR9LGJ1YmJsZXM6ITAsY29tcG9zZWQ6ITB9KSl9YXN5bmMgaGFuZGxlQWN0aW9uQ2xpY2soVCl7VC5jb25maXJtTWVzc2FnZSYmIXdpbmRvdy5jb25maXJtKFQuY29uZmlybU1lc3NhZ2UpfHwoYXdhaXQgVC5hY3Rpb24oKSx0aGlzLmRpc3BhdGNoRXZlbnQobmV3IEN1c3RvbUV2ZW50KCJhY3Rpb24tY2xpY2siLHtkZXRhaWw6e2l0ZW06VH0sYnViYmxlczohMCxjb21wb3NlZDohMH0pKSl9aGFuZGxlRmlsdGVyVG9nZ2xlKFQpe2xldCAkPSFULmFjdGl2ZTtULmFjdGl2ZT0kLFQub25Ub2dnbGUoJCksdGhpcy5yZW5kZXJDb3VudGVyKyssdGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBDdXN0b21FdmVudCgiZmlsdGVyLXRvZ2dsZSIse2RldGFpbDp7aXRlbTpULGFjdGl2ZTokfSxidWJibGVzOiEwLGNvbXBvc2VkOiEwfSkpfWhhbmRsZU11bHRpRmlsdGVyT3B0aW9uVG9nZ2xlKFQsJCl7bGV0IFY9VC5vcHRpb25zLmZpbmQoVT0+VS5rZXk9PT0kKTtWJiYoVi5jaGVja2VkPSFWLmNoZWNrZWQpO2xldCBSPVQub3B0aW9ucy5maWx0ZXIoVT0+VS5jaGVja2VkKS5tYXAoVT0+VS5rZXkpO1Qub25DaGFuZ2UoUiksdGhpcy5yZW5kZXJDb3VudGVyKyssdGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBDdXN0b21FdmVudCgibXVsdGlmaWx0ZXItY2hhbmdlIix7ZGV0YWlsOntpdGVtOlQsc2VsZWN0ZWRLZXlzOlJ9LGJ1YmJsZXM6ITAsY29tcG9zZWQ6ITB9KSl9aGFuZGxlTGlua0NsaWNrKFQpe1QuZXh0ZXJuYWw/P1QuaHJlZi5zdGFydHNXaXRoKCJodHRwIik/d2luZG93Lm9wZW4oVC5ocmVmLCJfYmxhbmsiLCJub29wZW5lcixub3JlZmVycmVyIik6d2luZG93LmxvY2F0aW9uLmhyZWY9VC5ocmVmLHRoaXMuZGlzcGF0Y2hFdmVudChuZXcgQ3VzdG9tRXZlbnQoImxpbmstY2xpY2siLHtkZXRhaWw6e2l0ZW06VH0sYnViYmxlczohMCxjb21wb3NlZDohMH0pKX1oYW5kbGVDb250ZXh0TWVudShULCQpe1V0Lm9wZW5Db250ZXh0TWVudVdpdGhPcHRpb25zKFQsW3tuYW1lOiJWaWV3IGRldGFpbHMiLGFjdGlvbjphc3luYygpPT57fSxpY29uTmFtZToibHVjaWRlOmV5ZSJ9LHtuYW1lOiJFZGl0IixhY3Rpb246YXN5bmMoKT0+e30saWNvbk5hbWU6Imx1Y2lkZTpwZW5jaWwifV0pfWFzeW5jIGZpcnN0VXBkYXRlZChUKXtpZihhd2FpdCBzdXBlci5maXJzdFVwZGF0ZWQoVCksdGhpcy5ncm91cHMubGVuZ3RoPjApe2xldCAkPW5ldyBTZXQsVj1uZXcgU2V0O2lmKHRoaXMuZ3JvdXBzLmZvckVhY2goUj0+e1IuY29sbGFwc2VkJiYkLmFkZChSLm5hbWUpLFIuaXRlbXMuZm9yRWFjaChVPT57aWYoInR5cGUiaW4gVSYmVS50eXBlPT09Im11bHRpRmlsdGVyIil7bGV0IHJlPVU7cmUuY29sbGFwc2VkJiZWLmFkZChyZS5rZXkpfX0pfSksdGhpcy5jb2xsYXBzZWRHcm91cHM9JCx0aGlzLmNvbGxhcHNlZE11bHRpRmlsdGVycz1WLCF0aGlzLnNlbGVjdGVkSXRlbSlmb3IobGV0IFIgb2YgdGhpcy5ncm91cHMpZm9yKGxldCBVIG9mIFIuaXRlbXMpe2xldCByZT0idHlwZSJpbiBVP1UudHlwZToidGFiIjtpZihyZT09PSJ0YWIifHxyZT09PXZvaWQgMCl7bGV0IGo9VTtpZighai5kaXNhYmxlZCl7dGhpcy5zZWxlY3RUYWJJdGVtKGosUik7cmV0dXJufX19fWVsc2UgaWYodGhpcy5zZWxlY3Rpb25PcHRpb25zLmxlbmd0aD4wKXtsZXQgJD10aGlzLnNlbGVjdGlvbk9wdGlvbnMuZmluZChWPT4hKCJkaXZpZGVyImluIFYpKTtpZigkJiYhdGhpcy5zZWxlY3RlZEl0ZW0pe2xldCBWPXtrZXk6JC5rZXksaWNvbk5hbWU6JC5pY29uTmFtZSxhY3Rpb246JC5hY3Rpb259O3RoaXMuc2VsZWN0VGFiSXRlbShWKX19fWNvbnN0cnVjdG9yKCl7c3VwZXIoLi4uYXJndW1lbnRzKSxfMih0aGlzLHopfXN0YXRpY3tfMihpLGEpfX07cmV0dXJuIEU9aX0pKCl9KTt2YXIgYTQsdmksaTIyLHIyMixzZnQsbmZ0PWIoKCk9Pnt1ZSgpO3NvKCk7YTQ9ZnVuY3Rpb24odCxlLGEsaSxyLHMpe2Z1bmN0aW9uIG4oeCl7aWYoeCE9PXZvaWQgMCYmdHlwZW9mIHghPSJmdW5jdGlvbiIpdGhyb3cgbmV3IFR5cGVFcnJvcigiRnVuY3Rpb24gZXhwZWN0ZWQiKTtyZXR1cm4geH1mb3IodmFyIG89aS5raW5kLGQ9bz09PSJnZXR0ZXIiPyJnZXQiOm89PT0ic2V0dGVyIj8ic2V0IjoidmFsdWUiLGM9IWUmJnQ/aS5zdGF0aWM/dDp0LnByb3RvdHlwZTpudWxsLGg9ZXx8KGM/T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihjLGkubmFtZSk6e30pLGwsZj0hMSxnPWEubGVuZ3RoLTE7Zz49MDtnLS0pe3ZhciB5PXt9O2Zvcih2YXIgdiBpbiBpKXlbdl09dj09PSJhY2Nlc3MiP3t9Omlbdl07Zm9yKHZhciB2IGluIGkuYWNjZXNzKXkuYWNjZXNzW3ZdPWkuYWNjZXNzW3ZdO3kuYWRkSW5pdGlhbGl6ZXI9ZnVuY3Rpb24oeCl7aWYoZil0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgYWRkIGluaXRpYWxpemVycyBhZnRlciBkZWNvcmF0aW9uIGhhcyBjb21wbGV0ZWQiKTtzLnB1c2gobih4fHxudWxsKSl9O3ZhciBtPSgwLGFbZ10pKG89PT0iYWNjZXNzb3IiP3tnZXQ6aC5nZXQsc2V0Omguc2V0fTpoW2RdLHkpO2lmKG89PT0iYWNjZXNzb3IiKXtpZihtPT09dm9pZCAwKWNvbnRpbnVlO2lmKG09PT1udWxsfHx0eXBlb2YgbSE9Im9iamVjdCIpdGhyb3cgbmV3IFR5cGVFcnJvcigiT2JqZWN0IGV4cGVjdGVkIik7KGw9bihtLmdldCkpJiYoaC5nZXQ9bCksKGw9bihtLnNldCkpJiYoaC5zZXQ9bCksKGw9bihtLmluaXQpKSYmci51bnNoaWZ0KGwpfWVsc2UobD1uKG0pKSYmKG89PT0iZmllbGQiP3IudW5zaGlmdChsKTpoW2RdPWwpfWMmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShjLGkubmFtZSxoKSxmPSEwfSx2aT1mdW5jdGlvbih0LGUsYSl7Zm9yKHZhciBpPWFyZ3VtZW50cy5sZW5ndGg+MixyPTA7cjxlLmxlbmd0aDtyKyspYT1pP2Vbcl0uY2FsbCh0LGEpOmVbcl0uY2FsbCh0KTtyZXR1cm4gaT9hOnZvaWQgMH0saTIyPSgoKT0+e2xldCB0PVtwZSgiZGVtby1jbG9zZWFibGUtdGFicyIpXSxlLGE9W10saSxyPXhlLHMsbj1bXSxvPVtdLGQsYz1bXSxoPVtdO3ZhciBsPWNsYXNzIGV4dGVuZHMgcntzdGF0aWN7aT10aGlzfXN0YXRpY3tsZXQgZj10eXBlb2YgU3ltYm9sPT0iZnVuY3Rpb24iJiZTeW1ib2wubWV0YWRhdGE/T2JqZWN0LmNyZWF0ZShyW1N5bWJvbC5tZXRhZGF0YV0/P251bGwpOnZvaWQgMDtzPVtKKCldLGQ9W0ooKV0sYTQodGhpcyxudWxsLHMse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJ0YWJzIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpnPT4idGFicyJpbiBnLGdldDpnPT5nLnRhYnMsc2V0OihnLHkpPT57Zy50YWJzPXl9fSxtZXRhZGF0YTpmfSxuLG8pLGE0KHRoaXMsbnVsbCxkLHtraW5kOiJhY2Nlc3NvciIsbmFtZToidGFiQ291bnRlciIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6Zz0+InRhYkNvdW50ZXIiaW4gZyxnZXQ6Zz0+Zy50YWJDb3VudGVyLHNldDooZyx5KT0+e2cudGFiQ291bnRlcj15fX0sbWV0YWRhdGE6Zn0sYyxoKSxhNChudWxsLGU9e3ZhbHVlOml9LHQse2tpbmQ6ImNsYXNzIixuYW1lOmkubmFtZSxtZXRhZGF0YTpmfSxudWxsLGEpLGw9aT1lLnZhbHVlLGYmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShpLFN5bWJvbC5tZXRhZGF0YSx7ZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITAsdmFsdWU6Zn0pfSNlPXZpKHRoaXMsbixbe2tleToiTWFpbiIsaWNvbk5hbWU6Imx1Y2lkZTpob21lIixhY3Rpb246KCk9PmNvbnNvbGUubG9nKCJNYWluIGNsaWNrZWQiKX1dKTtnZXQgdGFicygpe3JldHVybiB0aGlzLiNlfXNldCB0YWJzKGYpe3RoaXMuI2U9Zn0jdD0odmkodGhpcyxvKSx2aSh0aGlzLGMsMCkpO2dldCB0YWJDb3VudGVyKCl7cmV0dXJuIHRoaXMuI3R9c2V0IHRhYkNvdW50ZXIoZil7dGhpcy4jdD1mfXN0YXRpYyBzdHlsZXM9W1FgCiAgICAgIDpob3N0IHsKICAgICAgICBkaXNwbGF5OiBibG9jazsKICAgICAgfQogICAgICAuY29udHJvbHMgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgZ2FwOiA4cHg7CiAgICAgICAgbWFyZ2luLXRvcDogMTZweDsKICAgICAgfQogICAgICBidXR0b24gewogICAgICAgIGJhY2tncm91bmQ6ICR7cC5iZFRoZW1lKCJyZ2JhKDU5LCAxMzAsIDI0NiwgMC4xKSIsInJnYmEoNTksIDEzMCwgMjQ2LCAwLjEpIil9OwogICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICR7cC5iZFRoZW1lKCJyZ2JhKDU5LCAxMzAsIDI0NiwgMC4zKSIsInJnYmEoNTksIDEzMCwgMjQ2LCAwLjMpIil9OwogICAgICAgIGNvbG9yOiAke3AuYmRUaGVtZSgiIzNiODJmNiIsIiM2MGE1ZmEiKX07CiAgICAgICAgcGFkZGluZzogOHB4IDE2cHg7CiAgICAgICAgYm9yZGVyLXJhZGl1czogNnB4OwogICAgICAgIGN1cnNvcjogcG9pbnRlcjsKICAgICAgICBmb250LXNpemU6IDEzcHg7CiAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuMTVzIGVhc2U7CiAgICAgIH0KICAgICAgYnV0dG9uOmhvdmVyIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke3AuYmRUaGVtZSgicmdiYSg1OSwgMTMwLCAyNDYsIDAuMikiLCJyZ2JhKDU5LCAxMzAsIDI0NiwgMC4yKSIpfTsKICAgICAgfQogICAgICAuaW5mbyB7CiAgICAgICAgbWFyZ2luLXRvcDogMTZweDsKICAgICAgICBwYWRkaW5nOiAxMnB4IDE2cHg7CiAgICAgICAgYmFja2dyb3VuZDogJHtwLmJkVGhlbWUoInJnYmEoMCwwLDAsMC4wMikiLCJyZ2JhKDI1NSwyNTUsMjU1LDAuMDIpIil9OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDZweDsKICAgICAgICBmb250LXNpemU6IDEzcHg7CiAgICAgICAgY29sb3I6ICR7cC5iZFRoZW1lKCIjNzE3MTdhIiwiI2ExYTFhYSIpfTsKICAgICAgfQogICAgYF07YWRkVGFiKCl7dGhpcy50YWJDb3VudGVyKys7bGV0IGY9YERvY3VtZW50ICR7dGhpcy50YWJDb3VudGVyfWA7dGhpcy50YWJzPVsuLi50aGlzLnRhYnMse2tleTpmLGljb25OYW1lOiJsdWNpZGU6ZmlsZSIsYWN0aW9uOigpPT5jb25zb2xlLmxvZyhgJHtmfSBjbGlja2VkYCksY2xvc2VhYmxlOiEwLG9uQ2xvc2U6KCk9PnRoaXMucmVtb3ZlVGFiKGYpfV19cmVtb3ZlVGFiKGYpe3RoaXMudGFicz10aGlzLnRhYnMuZmlsdGVyKGc9Pmcua2V5IT09Zil9cmVuZGVyKCl7cmV0dXJuIHdgCiAgICAgIDxkZWVzLWFwcHVpLXRhYnMKICAgICAgICAudGFicz0ke3RoaXMudGFic30KICAgICAgICBAdGFiLWNsb3NlPSR7Zj0+dGhpcy5yZW1vdmVUYWIoZi5kZXRhaWwudGFiLmtleSl9CiAgICAgID48L2RlZXMtYXBwdWktdGFicz4KICAgICAgPGRpdiBjbGFzcz0iY29udHJvbHMiPgogICAgICAgIDxidXR0b24gQGNsaWNrPSR7KCk9PnRoaXMuYWRkVGFiKCl9PisgQWRkIE5ldyBUYWI8L2J1dHRvbj4KICAgICAgPC9kaXY+CiAgICAgIDxkaXYgY2xhc3M9ImluZm8iPgogICAgICAgIENsaWNrIHRoZSBYIGJ1dHRvbiBvbiB0YWJzIHRvIGNsb3NlIHRoZW0uIFRoZSAiTWFpbiIgdGFiIGlzIG5vdCBjbG9zZWFibGUuCiAgICAgICAgPGJyPkN1cnJlbnQgdGFiczogJHt0aGlzLnRhYnMubGVuZ3RofQogICAgICA8L2Rpdj4KICAgIGB9Y29uc3RydWN0b3IoKXtzdXBlciguLi5hcmd1bWVudHMpLHZpKHRoaXMsaCl9c3RhdGlje3ZpKGksYSl9fTtyZXR1cm4gbD1pfSkoKSxyMjI9KCgpPT57bGV0IHQ9W3BlKCJkZW1vLWF1dG9oaWRlLXRhYnMiKV0sZSxhPVtdLGkscj14ZSxzLG49W10sbz1bXSxkLGM9W10saD1bXSxsLGY9W10sZz1bXTt2YXIgeT1jbGFzcyBleHRlbmRzIHJ7c3RhdGlje2k9dGhpc31zdGF0aWN7bGV0IHY9dHlwZW9mIFN5bWJvbD09ImZ1bmN0aW9uIiYmU3ltYm9sLm1ldGFkYXRhP09iamVjdC5jcmVhdGUocltTeW1ib2wubWV0YWRhdGFdPz9udWxsKTp2b2lkIDA7cz1bSigpXSxkPVtKKCldLGw9W0ooKV0sYTQodGhpcyxudWxsLHMse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJ0YWJzIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczptPT4idGFicyJpbiBtLGdldDptPT5tLnRhYnMsc2V0OihtLHgpPT57bS50YWJzPXh9fSxtZXRhZGF0YTp2fSxuLG8pLGE0KHRoaXMsbnVsbCxkLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiYXV0b0hpZGUiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOm09PiJhdXRvSGlkZSJpbiBtLGdldDptPT5tLmF1dG9IaWRlLHNldDoobSx4KT0+e20uYXV0b0hpZGU9eH19LG1ldGFkYXRhOnZ9LGMsaCksYTQodGhpcyxudWxsLGwse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJ0aHJlc2hvbGQiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOm09PiJ0aHJlc2hvbGQiaW4gbSxnZXQ6bT0+bS50aHJlc2hvbGQsc2V0OihtLHgpPT57bS50aHJlc2hvbGQ9eH19LG1ldGFkYXRhOnZ9LGYsZyksYTQobnVsbCxlPXt2YWx1ZTppfSx0LHtraW5kOiJjbGFzcyIsbmFtZTppLm5hbWUsbWV0YWRhdGE6dn0sbnVsbCxhKSx5PWk9ZS52YWx1ZSx2JiZPYmplY3QuZGVmaW5lUHJvcGVydHkoaSxTeW1ib2wubWV0YWRhdGEse2VudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwLHZhbHVlOnZ9KX0jZT12aSh0aGlzLG4sW3trZXk6IlRhYiAxIixpY29uTmFtZToibHVjaWRlOmZpbGUiLGFjdGlvbjooKT0+Y29uc29sZS5sb2coIlRhYiAxIil9LHtrZXk6IlRhYiAyIixpY29uTmFtZToibHVjaWRlOmZpbGUiLGFjdGlvbjooKT0+Y29uc29sZS5sb2coIlRhYiAyIil9XSk7Z2V0IHRhYnMoKXtyZXR1cm4gdGhpcy4jZX1zZXQgdGFicyh2KXt0aGlzLiNlPXZ9I3Q9KHZpKHRoaXMsbyksdmkodGhpcyxjLCEwKSk7Z2V0IGF1dG9IaWRlKCl7cmV0dXJuIHRoaXMuI3R9c2V0IGF1dG9IaWRlKHYpe3RoaXMuI3Q9dn0jYT0odmkodGhpcyxoKSx2aSh0aGlzLGYsMSkpO2dldCB0aHJlc2hvbGQoKXtyZXR1cm4gdGhpcy4jYX1zZXQgdGhyZXNob2xkKHYpe3RoaXMuI2E9dn1zdGF0aWMgc3R5bGVzPVtRYAogICAgICA6aG9zdCB7CiAgICAgICAgZGlzcGxheTogYmxvY2s7CiAgICAgIH0KICAgICAgLnRhYnMtY29udGFpbmVyIHsKICAgICAgICBtaW4taGVpZ2h0OiA2MHB4OwogICAgICAgIGJvcmRlcjogMXB4IGRhc2hlZCAke3AuYmRUaGVtZSgiI2U1ZTdlYiIsIiMyNzI3MmEiKX07CiAgICAgICAgYm9yZGVyLXJhZGl1czogNnB4OwogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKICAgICAgfQogICAgICAudGFicy1jb250YWluZXIgZGVlcy1hcHB1aS10YWJzIHsKICAgICAgICB3aWR0aDogMTAwJTsKICAgICAgfQogICAgICAucGxhY2Vob2xkZXIgewogICAgICAgIGNvbG9yOiAke3AuYmRUaGVtZSgiI2ExYTFhYSIsIiM3MTcxN2EiKX07CiAgICAgICAgZm9udC1zaXplOiAxM3B4OwogICAgICAgIGZvbnQtc3R5bGU6IGl0YWxpYzsKICAgICAgfQogICAgICAuY29udHJvbHMgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgZ2FwOiA4cHg7CiAgICAgICAgbWFyZ2luLXRvcDogMTZweDsKICAgICAgICBmbGV4LXdyYXA6IHdyYXA7CiAgICAgIH0KICAgICAgYnV0dG9uIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke3AuYmRUaGVtZSgicmdiYSg1OSwgMTMwLCAyNDYsIDAuMSkiLCJyZ2JhKDU5LCAxMzAsIDI0NiwgMC4xKSIpfTsKICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAke3AuYmRUaGVtZSgicmdiYSg1OSwgMTMwLCAyNDYsIDAuMykiLCJyZ2JhKDU5LCAxMzAsIDI0NiwgMC4zKSIpfTsKICAgICAgICBjb2xvcjogJHtwLmJkVGhlbWUoIiMzYjgyZjYiLCIjNjBhNWZhIil9OwogICAgICAgIHBhZGRpbmc6IDhweCAxNnB4OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDZweDsKICAgICAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICAgICAgZm9udC1zaXplOiAxM3B4OwogICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjE1cyBlYXNlOwogICAgICB9CiAgICAgIGJ1dHRvbjpob3ZlciB7CiAgICAgICAgYmFja2dyb3VuZDogJHtwLmJkVGhlbWUoInJnYmEoNTksIDEzMCwgMjQ2LCAwLjIpIiwicmdiYSg1OSwgMTMwLCAyNDYsIDAuMikiKX07CiAgICAgIH0KICAgICAgYnV0dG9uLmRhbmdlciB7CiAgICAgICAgYmFja2dyb3VuZDogJHtwLmJkVGhlbWUoInJnYmEoMjM5LCA2OCwgNjgsIDAuMSkiLCJyZ2JhKDIzOSwgNjgsIDY4LCAwLjEpIil9OwogICAgICAgIGJvcmRlci1jb2xvcjogJHtwLmJkVGhlbWUoInJnYmEoMjM5LCA2OCwgNjgsIDAuMykiLCJyZ2JhKDIzOSwgNjgsIDY4LCAwLjMpIil9OwogICAgICAgIGNvbG9yOiAke3AuYmRUaGVtZSgiI2VmNDQ0NCIsIiNmODcxNzEiKX07CiAgICAgIH0KICAgICAgYnV0dG9uLmRhbmdlcjpob3ZlciB7CiAgICAgICAgYmFja2dyb3VuZDogJHtwLmJkVGhlbWUoInJnYmEoMjM5LCA2OCwgNjgsIDAuMikiLCJyZ2JhKDIzOSwgNjgsIDY4LCAwLjIpIil9OwogICAgICB9CiAgICAgIC5pbmZvIHsKICAgICAgICBtYXJnaW4tdG9wOiAxNnB4OwogICAgICAgIHBhZGRpbmc6IDEycHggMTZweDsKICAgICAgICBiYWNrZ3JvdW5kOiAke3AuYmRUaGVtZSgicmdiYSgwLDAsMCwwLjAyKSIsInJnYmEoMjU1LDI1NSwyNTUsMC4wMikiKX07CiAgICAgICAgYm9yZGVyLXJhZGl1czogNnB4OwogICAgICAgIGZvbnQtc2l6ZTogMTNweDsKICAgICAgICBjb2xvcjogJHtwLmJkVGhlbWUoIiM3MTcxN2EiLCIjYTFhMWFhIil9OwogICAgICB9CiAgICBgXTt0YWJDb3VudGVyPSh2aSh0aGlzLGcpLDIpO2FkZFRhYigpe3RoaXMudGFiQ291bnRlcisrLHRoaXMudGFicz1bLi4udGhpcy50YWJzLHtrZXk6YFRhYiAke3RoaXMudGFiQ291bnRlcn1gLGljb25OYW1lOiJsdWNpZGU6ZmlsZSIsYWN0aW9uOigpPT5jb25zb2xlLmxvZyhgVGFiICR7dGhpcy50YWJDb3VudGVyfWApfV19cmVtb3ZlTGFzdFRhYigpe3RoaXMudGFicy5sZW5ndGg+MCYmKHRoaXMudGFicz10aGlzLnRhYnMuc2xpY2UoMCwtMSkpfWNsZWFyVGFicygpe3RoaXMudGFicz1bXX1yZW5kZXIoKXtsZXQgdj10aGlzLmF1dG9IaWRlJiZ0aGlzLnRhYnMubGVuZ3RoPD10aGlzLnRocmVzaG9sZDtyZXR1cm4gd2AKICAgICAgPGRpdiBjbGFzcz0idGFicy1jb250YWluZXIiPgogICAgICAgICR7dj93YDxzcGFuIGNsYXNzPSJwbGFjZWhvbGRlciI+VGFicyBoaWRkZW4gKCR7dGhpcy50YWJzLmxlbmd0aH0gdGFicyDiiaQgdGhyZXNob2xkICR7dGhpcy50aHJlc2hvbGR9KTwvc3Bhbj5gOndgPGRlZXMtYXBwdWktdGFicwogICAgICAgICAgICAgIC50YWJzPSR7dGhpcy50YWJzfQogICAgICAgICAgICAgIC5hdXRvSGlkZT0ke3RoaXMuYXV0b0hpZGV9CiAgICAgICAgICAgICAgLmF1dG9IaWRlVGhyZXNob2xkPSR7dGhpcy50aHJlc2hvbGR9CiAgICAgICAgICAgID48L2RlZXMtYXBwdWktdGFicz5gfQogICAgICA8L2Rpdj4KICAgICAgPGRpdiBjbGFzcz0iY29udHJvbHMiPgogICAgICAgIDxidXR0b24gQGNsaWNrPSR7KCk9PnRoaXMuYWRkVGFiKCl9PisgQWRkIFRhYjwvYnV0dG9uPgogICAgICAgIDxidXR0b24gY2xhc3M9ImRhbmdlciIgQGNsaWNrPSR7KCk9PnRoaXMucmVtb3ZlTGFzdFRhYigpfT4tIFJlbW92ZSBUYWI8L2J1dHRvbj4KICAgICAgICA8YnV0dG9uIGNsYXNzPSJkYW5nZXIiIEBjbGljaz0keygpPT50aGlzLmNsZWFyVGFicygpfT5DbGVhciBBbGw8L2J1dHRvbj4KICAgICAgICA8YnV0dG9uIEBjbGljaz0keygpPT57dGhpcy50aHJlc2hvbGQ9MH19PlRocmVzaG9sZDogMDwvYnV0dG9uPgogICAgICAgIDxidXR0b24gQGNsaWNrPSR7KCk9Pnt0aGlzLnRocmVzaG9sZD0xfX0+VGhyZXNob2xkOiAxPC9idXR0b24+CiAgICAgICAgPGJ1dHRvbiBAY2xpY2s9JHsoKT0+e3RoaXMudGhyZXNob2xkPTJ9fT5UaHJlc2hvbGQ6IDI8L2J1dHRvbj4KICAgICAgPC9kaXY+CiAgICAgIDxkaXYgY2xhc3M9ImluZm8iPgogICAgICAgIEF1dG8taGlkZTogJHt0aGlzLmF1dG9IaWRlPyJPTiI6Ik9GRiJ9IHwgVGhyZXNob2xkOiAke3RoaXMudGhyZXNob2xkfSB8IFRhYnM6ICR7dGhpcy50YWJzLmxlbmd0aH0KICAgICAgICA8YnI+VGFicyB3aWxsIGhpZGUgd2hlbiBjb3VudCDiiaQgdGhyZXNob2xkLgogICAgICA8L2Rpdj4KICAgIGB9c3RhdGlje3ZpKGksYSl9fTtyZXR1cm4geT1pfSkoKSxzZnQ9KCk9PntsZXQgdD1be2tleToiSG9tZSIsaWNvbk5hbWU6Imx1Y2lkZTpob21lIixhY3Rpb246KCk9PmNvbnNvbGUubG9nKCJIb21lIGNsaWNrZWQiKX0se2tleToiQW5hbHl0aWNzIERhc2hib2FyZCIsaWNvbk5hbWU6Imx1Y2lkZTpsaW5lQ2hhcnQiLGFjdGlvbjooKT0+Y29uc29sZS5sb2coIkFuYWx5dGljcyBjbGlja2VkIil9LHtrZXk6IlJlcG9ydHMiLGljb25OYW1lOiJsdWNpZGU6ZmlsZVRleHQiLGFjdGlvbjooKT0+Y29uc29sZS5sb2coIlJlcG9ydHMgY2xpY2tlZCIpfSx7a2V5OiJVc2VyIFNldHRpbmdzIixpY29uTmFtZToibHVjaWRlOnNldHRpbmdzIixhY3Rpb246KCk9PmNvbnNvbGUubG9nKCJTZXR0aW5ncyBjbGlja2VkIil9LHtrZXk6IkhlbHAiLGljb25OYW1lOiJsdWNpZGU6aGVscENpcmNsZSIsYWN0aW9uOigpPT5jb25zb2xlLmxvZygiSGVscCBjbGlja2VkIil9XSxlPVt7a2V5OiJQcm9maWxlIixpY29uTmFtZToibHVjaWRlOnVzZXIiLGFjdGlvbjooKT0+Y29uc29sZS5sb2coIlByb2ZpbGUgY2xpY2tlZCIpfSx7a2V5OiJTZWN1cml0eSIsaWNvbk5hbWU6Imx1Y2lkZTpzaGllbGQiLGFjdGlvbjooKT0+Y29uc29sZS5sb2coIlNlY3VyaXR5IGNsaWNrZWQiKX0se2tleToiTm90aWZpY2F0aW9ucyIsaWNvbk5hbWU6Imx1Y2lkZTpiZWxsIixhY3Rpb246KCk9PmNvbnNvbGUubG9nKCJOb3RpZmljYXRpb25zIGNsaWNrZWQiKX0se2tleToiSW50ZWdyYXRpb25zIixpY29uTmFtZToibHVjaWRlOmxpbmsiLGFjdGlvbjooKT0+Y29uc29sZS5sb2coIkludGVncmF0aW9ucyBjbGlja2VkIil9LHtrZXk6IkFkdmFuY2VkIixpY29uTmFtZToibHVjaWRlOmNvZGUiLGFjdGlvbjooKT0+Y29uc29sZS5sb2coIkFkdmFuY2VkIGNsaWNrZWQiKX1dLGE9W3trZXk6IkFsbCIsYWN0aW9uOigpPT5jb25zb2xlLmxvZygiQWxsIGNsaWNrZWQiKX0se2tleToiQWN0aXZlIixhY3Rpb246KCk9PmNvbnNvbGUubG9nKCJBY3RpdmUgY2xpY2tlZCIpfSx7a2V5OiJDb21wbGV0ZWQiLGFjdGlvbjooKT0+Y29uc29sZS5sb2coIkNvbXBsZXRlZCBjbGlja2VkIil9LHtrZXk6IkFyY2hpdmVkIixhY3Rpb246KCk9PmNvbnNvbGUubG9nKCJBcmNoaXZlZCBjbGlja2VkIil9XSxpPXI9PndgCiAgICA8ZGl2IHN0eWxlPSJwYWRkaW5nOiAyNHB4OyBjb2xvcjogJHtwLmJkVGhlbWUoIiM3MTcxN2EiLCIjYTFhMWFhIil9OyI+CiAgICAgICR7cn0KICAgIDwvZGl2PgogIGA7cmV0dXJuIHdgCiAgICA8c3R5bGU+CiAgICAgIC5kZW1vLWNvbnRhaW5lciB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICAgIGdhcDogMzJweDsKICAgICAgICBwYWRkaW5nOiA0OHB4OwogICAgICAgIGJhY2tncm91bmQ6ICR7cC5iZFRoZW1lKCIjZjhmOWZhIiwiIzBhMGEwYSIpfTsKICAgICAgICBtaW4taGVpZ2h0OiAxMDB2aDsKICAgICAgfQoKICAgICAgLnNlY3Rpb24gewogICAgICAgIGJhY2tncm91bmQ6ICR7cC5iZFRoZW1lKCIjZmZmZmZmIiwiIzE4MTgxYiIpfTsKICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAke3AuYmRUaGVtZSgiI2U1ZTdlYiIsIiMyNzI3MmEiKX07CiAgICAgICAgYm9yZGVyLXJhZGl1czogOHB4OwogICAgICAgIHBhZGRpbmc6IDI0cHg7CiAgICAgICAgYm94LXNoYWRvdzogMCAxcHggM3B4IHJnYmEoMCwgMCwgMCwgMC4xKTsKICAgICAgfQoKICAgICAgLnNlY3Rpb24tdGl0bGUgewogICAgICAgIGZvbnQtc2l6ZTogMThweDsKICAgICAgICBmb250LXdlaWdodDogNjAwOwogICAgICAgIG1hcmdpbi1ib3R0b206IDE2cHg7CiAgICAgICAgY29sb3I6ICR7cC5iZFRoZW1lKCIjMDkwOTBiIiwiI2ZhZmFmYSIpfTsKICAgICAgfQoKICAgICAgLnR3by1jb2x1bW4gewogICAgICAgIGRpc3BsYXk6IGdyaWQ7CiAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAyMDBweCAxZnI7CiAgICAgICAgZ2FwOiAyNHB4OwogICAgICAgIGFsaWduLWl0ZW1zOiBzdGFydDsKICAgICAgfQogICAgPC9zdHlsZT4KICAgIDxkaXYgY2xhc3M9ImRlbW8tY29udGFpbmVyIj4KICAgICAgPGRpdiBjbGFzcz0ic2VjdGlvbiI+CiAgICAgICAgPGRpdiBjbGFzcz0ic2VjdGlvbi10aXRsZSI+SG9yaXpvbnRhbCBUYWJzIHdpdGggQW5pbWF0ZWQgSW5kaWNhdG9yPC9kaXY+CiAgICAgICAgPGRlZXMtYXBwdWktdGFicyAudGFicz0ke3R9PjwvZGVlcy1hcHB1aS10YWJzPgogICAgICAgICR7aSgiU2VsZWN0IGEgdGFiIHRvIHNlZSB0aGUgc21vb3RoIHNsaWRpbmcgYW5pbWF0aW9uIG9mIHRoZSBpbmRpY2F0b3IuIFRoZSBpbmRpY2F0b3IgYXV0b21hdGljYWxseSBhZGp1c3RzIGl0cyB3aWR0aCB0byBtYXRjaCB0aGUgdGFiIGNvbnRlbnQgd2l0aCBtaW5pbWFsIHBhZGRpbmcuIil9CiAgICAgIDwvZGl2PgoKICAgICAgPGRpdiBjbGFzcz0ic2VjdGlvbiI+CiAgICAgICAgPGRpdiBjbGFzcz0ic2VjdGlvbi10aXRsZSI+Q2xvc2VhYmxlIFRhYnMgKEJyb3dzZXItc3R5bGUpPC9kaXY+CiAgICAgICAgPGRlbW8tY2xvc2VhYmxlLXRhYnM+PC9kZW1vLWNsb3NlYWJsZS10YWJzPgogICAgICA8L2Rpdj4KCiAgICAgIDxkaXYgY2xhc3M9InNlY3Rpb24iPgogICAgICAgIDxkaXYgY2xhc3M9InNlY3Rpb24tdGl0bGUiPkF1dG8taGlkZSBUYWJzPC9kaXY+CiAgICAgICAgPGRlbW8tYXV0b2hpZGUtdGFicz48L2RlbW8tYXV0b2hpZGUtdGFicz4KICAgICAgPC9kaXY+CgogICAgICA8ZGl2IGNsYXNzPSJzZWN0aW9uIj4KICAgICAgICA8ZGl2IGNsYXNzPSJzZWN0aW9uLXRpdGxlIj5WZXJ0aWNhbCBUYWJzIExheW91dDwvZGl2PgogICAgICAgIDxkaXYgY2xhc3M9InR3by1jb2x1bW4iPgogICAgICAgICAgPGRlZXMtYXBwdWktdGFicyAudGFiU3R5bGU9JHsidmVydGljYWwifSAudGFicz0ke2V9PjwvZGVlcy1hcHB1aS10YWJzPgogICAgICAgICAgJHtpKCJWZXJ0aWNhbCB0YWJzIHdvcmsgZ3JlYXQgZm9yIHNldHRpbmdzIHBhZ2VzIGFuZCBuYXZpZ2F0aW9uIG1lbnVzLiBUaGUgYW5pbWF0ZWQgaW5kaWNhdG9yIHNtb290aGx5IHRyYW5zaXRpb25zIGJldHdlZW4gc2VsZWN0aW9ucy4iKX0KICAgICAgICA8L2Rpdj4KICAgICAgPC9kaXY+CgogICAgICA8ZGl2IGNsYXNzPSJzZWN0aW9uIj4KICAgICAgICA8ZGl2IGNsYXNzPSJzZWN0aW9uLXRpdGxlIj5XaXRob3V0IEluZGljYXRvcjwvZGl2PgogICAgICAgIDxkZWVzLWFwcHVpLXRhYnMgLnNob3dUYWJJbmRpY2F0b3I9JHshMX0gLnRhYnM9JHthfT48L2RlZXMtYXBwdWktdGFicz4KICAgICAgICAke2koIlRhYnMgY2FuIGFsc28gYmUgdXNlZCB3aXRob3V0IHRoZSBhbmltYXRlZCBpbmRpY2F0b3IgYnkgc2V0dGluZyBzaG93VGFiSW5kaWNhdG9yIHRvIGZhbHNlLiIpfQogICAgICA8L2Rpdj4KICAgIDwvZGl2PgogIGB9fSk7dmFyIEZzLFQyLG9mdCxuVj1iKCgpPT57c28oKTt1ZSgpO1R0KCk7bmZ0KCk7cWUoKTtGcz1mdW5jdGlvbih0LGUsYSxpLHIscyl7ZnVuY3Rpb24gbih4KXtpZih4IT09dm9pZCAwJiZ0eXBlb2YgeCE9ImZ1bmN0aW9uIil0aHJvdyBuZXcgVHlwZUVycm9yKCJGdW5jdGlvbiBleHBlY3RlZCIpO3JldHVybiB4fWZvcih2YXIgbz1pLmtpbmQsZD1vPT09ImdldHRlciI/ImdldCI6bz09PSJzZXR0ZXIiPyJzZXQiOiJ2YWx1ZSIsYz0hZSYmdD9pLnN0YXRpYz90OnQucHJvdG90eXBlOm51bGwsaD1lfHwoYz9PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGMsaS5uYW1lKTp7fSksbCxmPSExLGc9YS5sZW5ndGgtMTtnPj0wO2ctLSl7dmFyIHk9e307Zm9yKHZhciB2IGluIGkpeVt2XT12PT09ImFjY2VzcyI/e306aVt2XTtmb3IodmFyIHYgaW4gaS5hY2Nlc3MpeS5hY2Nlc3Nbdl09aS5hY2Nlc3Nbdl07eS5hZGRJbml0aWFsaXplcj1mdW5jdGlvbih4KXtpZihmKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBhZGQgaW5pdGlhbGl6ZXJzIGFmdGVyIGRlY29yYXRpb24gaGFzIGNvbXBsZXRlZCIpO3MucHVzaChuKHh8fG51bGwpKX07dmFyIG09KDAsYVtnXSkobz09PSJhY2Nlc3NvciI/e2dldDpoLmdldCxzZXQ6aC5zZXR9OmhbZF0seSk7aWYobz09PSJhY2Nlc3NvciIpe2lmKG09PT12b2lkIDApY29udGludWU7aWYobT09PW51bGx8fHR5cGVvZiBtIT0ib2JqZWN0Iil0aHJvdyBuZXcgVHlwZUVycm9yKCJPYmplY3QgZXhwZWN0ZWQiKTsobD1uKG0uZ2V0KSkmJihoLmdldD1sKSwobD1uKG0uc2V0KSkmJihoLnNldD1sKSwobD1uKG0uaW5pdCkpJiZyLnVuc2hpZnQobCl9ZWxzZShsPW4obSkpJiYobz09PSJmaWVsZCI/ci51bnNoaWZ0KGwpOmhbZF09bCl9YyYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGMsaS5uYW1lLGgpLGY9ITB9LFQyPWZ1bmN0aW9uKHQsZSxhKXtmb3IodmFyIGk9YXJndW1lbnRzLmxlbmd0aD4yLHI9MDtyPGUubGVuZ3RoO3IrKylhPWk/ZVtyXS5jYWxsKHQsYSk6ZVtyXS5jYWxsKHQpO3JldHVybiBpP2E6dm9pZCAwfSxvZnQ9KCgpPT57bGV0IHQ9W3BlKCJkZWVzLWFwcHVpLXRhYnMiKV0sZSxhPVtdLGkscj14ZSxzLG49W10sbz1bXSxkLGM9W10saD1bXSxsLGY9W10sZz1bXSx5LHY9W10sbT1bXSx4LE09W10sUz1bXSxGLF89W10saz1bXSxOLEw9W10sQT1bXSxxLEM9W10sej1bXTt2YXIgRT1jbGFzcyBleHRlbmRzIHJ7c3RhdGlje2k9dGhpc31zdGF0aWN7bGV0IFQ9dHlwZW9mIFN5bWJvbD09ImZ1bmN0aW9uIiYmU3ltYm9sLm1ldGFkYXRhP09iamVjdC5jcmVhdGUocltTeW1ib2wubWV0YWRhdGFdPz9udWxsKTp2b2lkIDA7cz1bSSh7dHlwZTpBcnJheX0pXSxkPVtJKHt0eXBlOk9iamVjdH0pXSxsPVtJKHt0eXBlOkJvb2xlYW59KV0seT1bSSh7dHlwZTpTdHJpbmd9KV0seD1bSSh7dHlwZTpCb29sZWFufSldLEY9W0koe3R5cGU6TnVtYmVyfSldLE49W0ooKV0scT1bSigpXSxGcyh0aGlzLG51bGwscyx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InRhYnMiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOiQ9PiJ0YWJzImluICQsZ2V0OiQ9PiQudGFicyxzZXQ6KCQsVik9PnskLnRhYnM9Vn19LG1ldGFkYXRhOlR9LG4sbyksRnModGhpcyxudWxsLGQse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJzZWxlY3RlZFRhYiIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6JD0+InNlbGVjdGVkVGFiImluICQsZ2V0OiQ9PiQuc2VsZWN0ZWRUYWIsc2V0OigkLFYpPT57JC5zZWxlY3RlZFRhYj1WfX0sbWV0YWRhdGE6VH0sYyxoKSxGcyh0aGlzLG51bGwsbCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InNob3dUYWJJbmRpY2F0b3IiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOiQ9PiJzaG93VGFiSW5kaWNhdG9yImluICQsZ2V0OiQ9PiQuc2hvd1RhYkluZGljYXRvcixzZXQ6KCQsVik9PnskLnNob3dUYWJJbmRpY2F0b3I9Vn19LG1ldGFkYXRhOlR9LGYsZyksRnModGhpcyxudWxsLHkse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJ0YWJTdHlsZSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6JD0+InRhYlN0eWxlImluICQsZ2V0OiQ9PiQudGFiU3R5bGUsc2V0OigkLFYpPT57JC50YWJTdHlsZT1WfX0sbWV0YWRhdGE6VH0sdixtKSxGcyh0aGlzLG51bGwseCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImF1dG9IaWRlIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczokPT4iYXV0b0hpZGUiaW4gJCxnZXQ6JD0+JC5hdXRvSGlkZSxzZXQ6KCQsVik9PnskLmF1dG9IaWRlPVZ9fSxtZXRhZGF0YTpUfSxNLFMpLEZzKHRoaXMsbnVsbCxGLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiYXV0b0hpZGVUaHJlc2hvbGQiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOiQ9PiJhdXRvSGlkZVRocmVzaG9sZCJpbiAkLGdldDokPT4kLmF1dG9IaWRlVGhyZXNob2xkLHNldDooJCxWKT0+eyQuYXV0b0hpZGVUaHJlc2hvbGQ9Vn19LG1ldGFkYXRhOlR9LF8sayksRnModGhpcyxudWxsLE4se2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJjYW5TY3JvbGxMZWZ0IixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczokPT4iY2FuU2Nyb2xsTGVmdCJpbiAkLGdldDokPT4kLmNhblNjcm9sbExlZnQsc2V0OigkLFYpPT57JC5jYW5TY3JvbGxMZWZ0PVZ9fSxtZXRhZGF0YTpUfSxMLEEpLEZzKHRoaXMsbnVsbCxxLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiY2FuU2Nyb2xsUmlnaHQiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOiQ9PiJjYW5TY3JvbGxSaWdodCJpbiAkLGdldDokPT4kLmNhblNjcm9sbFJpZ2h0LHNldDooJCxWKT0+eyQuY2FuU2Nyb2xsUmlnaHQ9Vn19LG1ldGFkYXRhOlR9LEMseiksRnMobnVsbCxlPXt2YWx1ZTppfSx0LHtraW5kOiJjbGFzcyIsbmFtZTppLm5hbWUsbWV0YWRhdGE6VH0sbnVsbCxhKSxFPWk9ZS52YWx1ZSxUJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoaSxTeW1ib2wubWV0YWRhdGEse2VudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwLHZhbHVlOlR9KX1zdGF0aWMgZGVtbz1zZnQ7c3RhdGljIGRlbW9Hcm91cHM9WyJBcHAgVUkiXTsjZT1UMih0aGlzLG4sW10pO2dldCB0YWJzKCl7cmV0dXJuIHRoaXMuI2V9c2V0IHRhYnMoVCl7dGhpcy4jZT1UfSN0PShUMih0aGlzLG8pLFQyKHRoaXMsYyxudWxsKSk7Z2V0IHNlbGVjdGVkVGFiKCl7cmV0dXJuIHRoaXMuI3R9c2V0IHNlbGVjdGVkVGFiKFQpe3RoaXMuI3Q9VH0jYT0oVDIodGhpcyxoKSxUMih0aGlzLGYsITApKTtnZXQgc2hvd1RhYkluZGljYXRvcigpe3JldHVybiB0aGlzLiNhfXNldCBzaG93VGFiSW5kaWNhdG9yKFQpe3RoaXMuI2E9VH0jaT0oVDIodGhpcyxnKSxUMih0aGlzLHYsImhvcml6b250YWwiKSk7Z2V0IHRhYlN0eWxlKCl7cmV0dXJuIHRoaXMuI2l9c2V0IHRhYlN0eWxlKFQpe3RoaXMuI2k9VH0jcj0oVDIodGhpcyxtKSxUMih0aGlzLE0sITEpKTtnZXQgYXV0b0hpZGUoKXtyZXR1cm4gdGhpcy4jcn1zZXQgYXV0b0hpZGUoVCl7dGhpcy4jcj1UfSNzPShUMih0aGlzLFMpLFQyKHRoaXMsXywwKSk7Z2V0IGF1dG9IaWRlVGhyZXNob2xkKCl7cmV0dXJuIHRoaXMuI3N9c2V0IGF1dG9IaWRlVGhyZXNob2xkKFQpe3RoaXMuI3M9VH0jbj0oVDIodGhpcyxrKSxUMih0aGlzLEwsITEpKTtnZXQgY2FuU2Nyb2xsTGVmdCgpe3JldHVybiB0aGlzLiNufXNldCBjYW5TY3JvbGxMZWZ0KFQpe3RoaXMuI249VH0jbz0oVDIodGhpcyxBKSxUMih0aGlzLEMsITEpKTtnZXQgY2FuU2Nyb2xsUmlnaHQoKXtyZXR1cm4gdGhpcy4jb31zZXQgY2FuU2Nyb2xsUmlnaHQoVCl7dGhpcy4jbz1UfXJlc2l6ZU9ic2VydmVyPShUMih0aGlzLHopLG51bGwpO3N0YXRpYyBzdHlsZXM9W0NlLHAuZGVmYXVsdFN0eWxlcyxRYAogICAgICAvKiBUT0RPOiBNaWdyYXRlIGhhcmRjb2RlZCB2YWx1ZXMgdG8gLS1kZWVzLSogQ1NTIHZhcmlhYmxlcyAqLwogICAgICA6aG9zdCB7CiAgICAgICAgZGlzcGxheTogYmxvY2s7CiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICAgIHdpZHRoOiAxMDAlOwogICAgICAgIG1pbi13aWR0aDogMDsKICAgICAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgICB9CgogICAgICAudGFicy13cmFwcGVyIHsKICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgICAgbWluLXdpZHRoOiAwOwogICAgICB9CgogICAgICAudGFicy13cmFwcGVyLmhvcml6b250YWwtd3JhcHBlciB7CiAgICAgICAgaGVpZ2h0OiA0OHB4OwogICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAke3AuYmRUaGVtZSgiI2U1ZTdlYiIsIiMyNzI3MmEiKX07CiAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDsKICAgICAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgICB9CgogICAgICAvKiBTY3JvbGwgZmFkZSBpbmRpY2F0b3JzICovCiAgICAgIC5zY3JvbGwtZmFkZSB7CiAgICAgICAgcG9zaXRpb246IGFic29sdXRlOwogICAgICAgIHRvcDogMDsKICAgICAgICBib3R0b206IDFweDsKICAgICAgICB3aWR0aDogNDhweDsKICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTsKICAgICAgICBvcGFjaXR5OiAwOwogICAgICAgIHRyYW5zaXRpb246IG9wYWNpdHkgMC4ycyBlYXNlOwogICAgICAgIHotaW5kZXg6IDEwOwogICAgICB9CgogICAgICAuc2Nyb2xsLWZhZGUtbGVmdCB7CiAgICAgICAgbGVmdDogMDsKICAgICAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQodG8gcmlnaHQsCiAgICAgICAgICAke3AuYmRUaGVtZSgiI2ZmZmZmZiIsIiMxNjE2MTYiKX0gMCUsCiAgICAgICAgICAke3AuYmRUaGVtZSgicmdiYSgyNTUsMjU1LDI1NSwwKSIsInJnYmEoMjIsMjIsMjIsMCkiKX0gMTAwJSk7CiAgICAgIH0KCiAgICAgIC5zY3JvbGwtZmFkZS1yaWdodCB7CiAgICAgICAgcmlnaHQ6IDA7CiAgICAgICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KHRvIGxlZnQsCiAgICAgICAgICAke3AuYmRUaGVtZSgiI2ZmZmZmZiIsIiMxNjE2MTYiKX0gMCUsCiAgICAgICAgICAke3AuYmRUaGVtZSgicmdiYSgyNTUsMjU1LDI1NSwwKSIsInJnYmEoMjIsMjIsMjIsMCkiKX0gMTAwJSk7CiAgICAgIH0KCiAgICAgIC5zY3JvbGwtZmFkZS52aXNpYmxlIHsKICAgICAgICBvcGFjaXR5OiAxOwogICAgICB9CgogICAgICAudGFic0NvbnRhaW5lciB7CiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICAgIHVzZXItc2VsZWN0OiBub25lOwogICAgICAgIG1pbi13aWR0aDogMDsKICAgICAgfQoKICAgICAgLnRhYnNDb250YWluZXIuaG9yaXpvbnRhbCB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGZvbnQtc2l6ZTogMTRweDsKICAgICAgICBvdmVyZmxvdy14OiBhdXRvOwogICAgICAgIG92ZXJmbG93LXk6IGhpZGRlbjsKICAgICAgICBvdmVyc2Nyb2xsLWJlaGF2aW9yOiBjb250YWluOwogICAgICAgIHNjcm9sbGJhci13aWR0aDogdGhpbjsKICAgICAgICBzY3JvbGxiYXItY29sb3I6IHRyYW5zcGFyZW50IHRyYW5zcGFyZW50OwogICAgICAgIGhlaWdodDogMTAwJTsKICAgICAgICBwYWRkaW5nOiAwIDE2cHg7CiAgICAgICAgZ2FwOiA0cHg7CiAgICAgIH0KCiAgICAgIC8qIFNob3cgc2Nyb2xsYmFyIG9uIGhvdmVyICovCiAgICAgIC50YWJzLXdyYXBwZXI6aG92ZXIgLnRhYnNDb250YWluZXIuaG9yaXpvbnRhbCB7CiAgICAgICAgc2Nyb2xsYmFyLWNvbG9yOiAke3AuYmRUaGVtZSgicmdiYSgwLDAsMCwwLjIpIiwicmdiYSgyNTUsMjU1LDI1NSwwLjIpIil9IHRyYW5zcGFyZW50OwogICAgICB9CgogICAgICAudGFic0NvbnRhaW5lci5ob3Jpem9udGFsOjotd2Via2l0LXNjcm9sbGJhciB7CiAgICAgICAgaGVpZ2h0OiA0cHg7CiAgICAgIH0KCiAgICAgIC50YWJzQ29udGFpbmVyLmhvcml6b250YWw6Oi13ZWJraXQtc2Nyb2xsYmFyLXRyYWNrIHsKICAgICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDsKICAgICAgfQoKICAgICAgLnRhYnNDb250YWluZXIuaG9yaXpvbnRhbDo6LXdlYmtpdC1zY3JvbGxiYXItdGh1bWIgewogICAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDJweDsKICAgICAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kIDAuMnMgZWFzZTsKICAgICAgfQoKICAgICAgLnRhYnMtd3JhcHBlcjpob3ZlciAudGFic0NvbnRhaW5lci5ob3Jpem9udGFsOjotd2Via2l0LXNjcm9sbGJhci10aHVtYiB7CiAgICAgICAgYmFja2dyb3VuZDogJHtwLmJkVGhlbWUoInJnYmEoMCwwLDAsMC4yKSIsInJnYmEoMjU1LDI1NSwyNTUsMC4yKSIpfTsKICAgICAgfQoKICAgICAgLnRhYnMtd3JhcHBlcjpob3ZlciAudGFic0NvbnRhaW5lci5ob3Jpem9udGFsOjotd2Via2l0LXNjcm9sbGJhci10aHVtYjpob3ZlciB7CiAgICAgICAgYmFja2dyb3VuZDogJHtwLmJkVGhlbWUoInJnYmEoMCwwLDAsMC4zNSkiLCJyZ2JhKDI1NSwyNTUsMjU1LDAuMzUpIil9OwogICAgICB9CgogICAgICAudGFic0NvbnRhaW5lci52ZXJ0aWNhbCB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICAgIHBhZGRpbmc6IDhweDsKICAgICAgICBmb250LXNpemU6IDE0cHg7CiAgICAgICAgZ2FwOiAycHg7CiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICAgIGJhY2tncm91bmQ6ICR7cC5iZFRoZW1lKCIjZjlmYWZiIiwiIzE4MTgxYiIpfTsKICAgICAgICBib3JkZXItcmFkaXVzOiA4cHg7CiAgICAgIH0KCiAgICAgIC50YWIgewogICAgICAgIGNvbG9yOiAke3AuYmRUaGVtZSgiIzcxNzE3YSIsIiM3MTcxN2EiKX07CiAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDsKICAgICAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICAgICAgdHJhbnNpdGlvbjogY29sb3IgMC4xNXMgZWFzZTsKICAgICAgICBmb250LXdlaWdodDogNTAwOwogICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgICB6LWluZGV4OiAyOwogICAgICB9CgogICAgICAuaG9yaXpvbnRhbCAudGFiIHsKICAgICAgICBwYWRkaW5nOiAwIDE2cHg7CiAgICAgICAgaGVpZ2h0OiAxMDAlOwogICAgICAgIGRpc3BsYXk6IGlubGluZS1mbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgZ2FwOiA4cHg7CiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICAgIGJvcmRlci1yYWRpdXM6IDZweCA2cHggMCAwOwogICAgICAgIHRyYW5zaXRpb246IGJhY2tncm91bmQtY29sb3IgMC4xNXMgZWFzZTsKICAgICAgfQogICAgICAKICAgICAgLmhvcml6b250YWwgLnRhYjpub3QoOmxhc3QtY2hpbGQpOjphZnRlciB7CiAgICAgICAgY29udGVudDogJyc7CiAgICAgICAgcG9zaXRpb246IGFic29sdXRlOwogICAgICAgIHJpZ2h0OiAtMnB4OwogICAgICAgIHRvcDogNTAlOwogICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTsKICAgICAgICBoZWlnaHQ6IDIwcHg7CiAgICAgICAgd2lkdGg6IDFweDsKICAgICAgICBiYWNrZ3JvdW5kOiAke3AuYmRUaGVtZSgiI2U1ZTdlYiIsIiMyNzI3MmEiKX07CiAgICAgICAgb3BhY2l0eTogMC41OwogICAgICB9CiAgICAgIAogICAgICAuaG9yaXpvbnRhbCAudGFiIC50YWItY29udGVudCB7CiAgICAgICAgZGlzcGxheTogaW5saW5lLWZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBnYXA6IDhweDsKICAgICAgfQoKICAgICAgLnZlcnRpY2FsIC50YWIgewogICAgICAgIHBhZGRpbmc6IDEwcHggMTZweDsKICAgICAgICBib3JkZXItcmFkaXVzOiA2cHg7CiAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGdhcDogOHB4OwogICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjE1cyBlYXNlOwogICAgICB9CgogICAgICAudGFiOmhvdmVyIHsKICAgICAgICBjb2xvcjogJHtwLmJkVGhlbWUoIiMwOTA5MGIiLCIjZmFmYWZhIil9OwogICAgICB9CiAgICAgIAogICAgICAuaG9yaXpvbnRhbCAudGFiOmhvdmVyIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke3AuYmRUaGVtZSgicmdiYSgwLCAwLCAwLCAwLjAzKSIsInJnYmEoMjU1LCAyNTUsIDI1NSwgMC4wMykiKX07CiAgICAgIH0KICAgICAgCiAgICAgIC5ob3Jpem9udGFsIC50YWI6aG92ZXI6OmFmdGVyLAogICAgICAuaG9yaXpvbnRhbCAudGFiOmhvdmVyICsgLnRhYjo6YWZ0ZXIgewogICAgICAgIG9wYWNpdHk6IDA7CiAgICAgIH0KCiAgICAgIC52ZXJ0aWNhbCAudGFiOmhvdmVyIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke3AuYmRUaGVtZSgicmdiYSgyNDQsIDI0NCwgMjQ1LCAwLjUpIiwicmdiYSgzOSwgMzksIDQyLCAwLjUpIil9OwogICAgICB9CgogICAgICAuaG9yaXpvbnRhbCAudGFiLnNlbGVjdGVkVGFiIHsKICAgICAgICBjb2xvcjogJHtwLmJkVGhlbWUoIiMwOTA5MGIiLCIjZmFmYWZhIil9OwogICAgICB9CiAgICAgIAogICAgICAuaG9yaXpvbnRhbCAudGFiLnNlbGVjdGVkVGFiOjphZnRlciwKICAgICAgLmhvcml6b250YWwgLnRhYi5zZWxlY3RlZFRhYiArIC50YWI6OmFmdGVyIHsKICAgICAgICBvcGFjaXR5OiAwOwogICAgICB9CgogICAgICAudmVydGljYWwgLnRhYi5zZWxlY3RlZFRhYiB7CiAgICAgICAgY29sb3I6ICR7cC5iZFRoZW1lKCIjMDkwOTBiIiwiI2ZhZmFmYSIpfTsKICAgICAgfQoKICAgICAgLnRhYiBkZWVzLWljb24gewogICAgICAgIGZvbnQtc2l6ZTogMTZweDsKICAgICAgfQoKICAgICAgLnRhYkluZGljYXRvciB7CiAgICAgICAgcG9zaXRpb246IGFic29sdXRlOwogICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjNzIGN1YmljLWJlemllcigwLjQsIDAsIDAuMiwgMSk7CiAgICAgICAgb3BhY2l0eTogMDsKICAgICAgfQogICAgICAKICAgICAgLnRhYkluZGljYXRvci5uby10cmFuc2l0aW9uIHsKICAgICAgICB0cmFuc2l0aW9uOiBub25lOwogICAgICB9CgogICAgICAudGFicy13cmFwcGVyIC50YWJJbmRpY2F0b3IgewogICAgICAgIGhlaWdodDogM3B4OwogICAgICAgIGJvdHRvbTogMDsKICAgICAgICBiYWNrZ3JvdW5kOiAke3AuYmRUaGVtZSgiIzNiODJmNiIsIiMzYjgyZjYiKX07CiAgICAgICAgYm9yZGVyLXJhZGl1czogM3B4IDNweCAwIDA7CiAgICAgICAgei1pbmRleDogMzsKICAgICAgfQoKICAgICAgLnZlcnRpY2FsLXdyYXBwZXIgewogICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgfQoKICAgICAgLnZlcnRpY2FsLXdyYXBwZXIgLnRhYkluZGljYXRvciB7CiAgICAgICAgbGVmdDogOHB4OwogICAgICAgIHJpZ2h0OiA4cHg7CiAgICAgICAgYm9yZGVyLXJhZGl1czogNnB4OwogICAgICAgIGJhY2tncm91bmQ6ICR7cC5iZFRoZW1lKCIjZmZmZmZmIiwiIzI3MjcyYSIpfTsKICAgICAgICB6LWluZGV4OiAxOwogICAgICAgIGJveC1zaGFkb3c6IDAgMXB4IDNweCByZ2JhKDAsIDAsIDAsIDAuMDgpOwogICAgICB9CgogICAgICAvKiBDbG9zZSBidXR0b24gKi8KICAgICAgLnRhYi1jbG9zZSB7CiAgICAgICAgZGlzcGxheTogaW5saW5lLWZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKICAgICAgICB3aWR0aDogMTZweDsKICAgICAgICBoZWlnaHQ6IDE2cHg7CiAgICAgICAgYm9yZGVyLXJhZGl1czogNHB4OwogICAgICAgIG1hcmdpbi1sZWZ0OiA4cHg7CiAgICAgICAgb3BhY2l0eTogMC40OwogICAgICAgIHRyYW5zaXRpb246IG9wYWNpdHkgMC4xNXMsIGJhY2tncm91bmQgMC4xNXM7CiAgICAgICAgY29sb3I6ICR7cC5iZFRoZW1lKCIjNzE3MTdhIiwiIzcxNzE3YSIpfTsKICAgICAgfQoKICAgICAgLnRhYjpob3ZlciAudGFiLWNsb3NlIHsKICAgICAgICBvcGFjaXR5OiAwLjc7CiAgICAgIH0KCiAgICAgIC50YWItY2xvc2U6aG92ZXIgewogICAgICAgIG9wYWNpdHk6IDE7CiAgICAgICAgYmFja2dyb3VuZDogJHtwLmJkVGhlbWUoInJnYmEoMCwwLDAsMC4xKSIsInJnYmEoMjU1LDI1NSwyNTUsMC4xKSIpfTsKICAgICAgICBjb2xvcjogJHtwLmJkVGhlbWUoIiNlZjQ0NDQiLCIjZjg3MTcxIil9OwogICAgICB9CgogICAgICAudGFiLnNlbGVjdGVkVGFiIC50YWItY2xvc2UgewogICAgICAgIG9wYWNpdHk6IDAuNTsKICAgICAgfQoKICAgICAgLnRhYi5zZWxlY3RlZFRhYjpob3ZlciAudGFiLWNsb3NlIHsKICAgICAgICBvcGFjaXR5OiAwLjg7CiAgICAgIH0KCiAgICAgIC50YWIuc2VsZWN0ZWRUYWIgLnRhYi1jbG9zZTpob3ZlciB7CiAgICAgICAgb3BhY2l0eTogMTsKICAgICAgfQogICAgYF07cmVuZGVyKCl7cmV0dXJuIHRoaXMuYXV0b0hpZGUmJnRoaXMudGFicy5sZW5ndGg8PXRoaXMuYXV0b0hpZGVUaHJlc2hvbGQ/d2BgOndgCiAgICAgICR7dGhpcy5yZW5kZXJUYWJzV3JhcHBlcigpfQogICAgYH1yZW5kZXJUYWJzV3JhcHBlcigpe2xldCBUPXRoaXMudGFiU3R5bGU9PT0iaG9yaXpvbnRhbCIsJD1UPyJ0YWJzLXdyYXBwZXIgaG9yaXpvbnRhbC13cmFwcGVyIjoidmVydGljYWwtd3JhcHBlciIsVj1gdGFic0NvbnRhaW5lciAke3RoaXMudGFiU3R5bGV9YDtyZXR1cm4gVD93YAogICAgICAgIDxkaXYgY2xhc3M9IiR7JH0iPgogICAgICAgICAgPGRpdiBjbGFzcz0ic2Nyb2xsLWZhZGUgc2Nyb2xsLWZhZGUtbGVmdCAke3RoaXMuY2FuU2Nyb2xsTGVmdD8idmlzaWJsZSI6IiJ9Ij48L2Rpdj4KICAgICAgICAgIDxkaXYgY2xhc3M9IiR7Vn0iIEBzY3JvbGw9JHt0aGlzLmhhbmRsZVNjcm9sbH0+CiAgICAgICAgICAgICR7dGhpcy50YWJzLm1hcChSPT50aGlzLnJlbmRlclRhYihSLFQpKX0KICAgICAgICAgIDwvZGl2PgogICAgICAgICAgPGRpdiBjbGFzcz0ic2Nyb2xsLWZhZGUgc2Nyb2xsLWZhZGUtcmlnaHQgJHt0aGlzLmNhblNjcm9sbFJpZ2h0PyJ2aXNpYmxlIjoiIn0iPjwvZGl2PgogICAgICAgICAgJHt0aGlzLnNob3dUYWJJbmRpY2F0b3I/d2A8ZGl2IGNsYXNzPSJ0YWJJbmRpY2F0b3IiPjwvZGl2PmA6IiJ9CiAgICAgICAgPC9kaXY+CiAgICAgIGA6d2AKICAgICAgPGRpdiBjbGFzcz0iJHskfSI+CiAgICAgICAgPGRpdiBjbGFzcz0iJHtWfSI+CiAgICAgICAgICAke3RoaXMudGFicy5tYXAoUj0+dGhpcy5yZW5kZXJUYWIoUixUKSl9CiAgICAgICAgPC9kaXY+CiAgICAgICAgJHt0aGlzLnNob3dUYWJJbmRpY2F0b3I/d2A8ZGl2IGNsYXNzPSJ0YWJJbmRpY2F0b3IiPjwvZGl2PmA6IiJ9CiAgICAgIDwvZGl2PgogICAgYH1yZW5kZXJUYWIoVCwkKXtsZXQgUj1gdGFiICR7VD09PXRoaXMuc2VsZWN0ZWRUYWI/InNlbGVjdGVkVGFiIjoiIn1gLFU9VC5jbG9zZWFibGU/d2AKICAgICAgPHNwYW4gY2xhc3M9InRhYi1jbG9zZSIgQGNsaWNrPSIke2o9PnRoaXMuY2xvc2VUYWIoaixUKX0iPgogICAgICAgIDxkZWVzLWljb24gLmljb249JHsibHVjaWRlOngifSBzdHlsZT0iZm9udC1zaXplOiAxMnB4OyI+PC9kZWVzLWljb24+CiAgICAgIDwvc3Bhbj4KICAgIGA6IiIscmU9JD93YAogICAgICA8c3BhbiBjbGFzcz0idGFiLWNvbnRlbnQiPgogICAgICAgICR7dGhpcy5yZW5kZXJUYWJJY29uKFQpfQogICAgICAgICR7VC5rZXl9CiAgICAgIDwvc3Bhbj4KICAgICAgJHtVfQogICAgYDp3YAogICAgICAke3RoaXMucmVuZGVyVGFiSWNvbihUKX0KICAgICAgJHtULmtleX0KICAgICAgJHtVfQogICAgYDtyZXR1cm4gd2AKICAgICAgPGRpdgogICAgICAgIGNsYXNzPSIke1J9IgogICAgICAgIEBjbGljaz0iJHsoKT0+dGhpcy5zZWxlY3RUYWIoVCl9IgogICAgICA+CiAgICAgICAgJHtyZX0KICAgICAgPC9kaXY+CiAgICBgfXJlbmRlclRhYkljb24oVCl7cmV0dXJuIFQuaWNvbk5hbWU/d2A8ZGVlcy1pY29uIC5pY29uPSR7VC5pY29uTmFtZX0+PC9kZWVzLWljb24+YDoiIn1zZWxlY3RUYWIoVCl7dGhpcy5zZWxlY3RlZFRhYj1ULFQuYWN0aW9uKCkscmVxdWVzdEFuaW1hdGlvbkZyYW1lKCgpPT57dGhpcy5zY3JvbGxUYWJJbnRvVmlldyhUKX0pLHRoaXMuZGlzcGF0Y2hFdmVudChuZXcgQ3VzdG9tRXZlbnQoInRhYi1zZWxlY3QiLHtkZXRhaWw6e3RhYjpUfSxidWJibGVzOiEwLGNvbXBvc2VkOiEwfSkpfWNsb3NlVGFiKFQsJCl7VC5zdG9wUHJvcGFnYXRpb24oKSwkLm9uQ2xvc2UmJiQub25DbG9zZSgpLHRoaXMuZGlzcGF0Y2hFdmVudChuZXcgQ3VzdG9tRXZlbnQoInRhYi1jbG9zZSIse2RldGFpbDp7dGFiOiR9LGJ1YmJsZXM6ITAsY29tcG9zZWQ6ITB9KSl9Zmlyc3RVcGRhdGVkKCl7dGhpcy50YWJzJiZ0aGlzLnRhYnMubGVuZ3RoPjAmJnRoaXMuc2VsZWN0VGFiKHRoaXMudGFic1swXSksdGhpcy5zZXR1cFJlc2l6ZU9ic2VydmVyKCkscmVxdWVzdEFuaW1hdGlvbkZyYW1lKCgpPT57dGhpcy51cGRhdGVTY3JvbGxTdGF0ZSgpfSl9YXN5bmMgZGlzY29ubmVjdGVkQ2FsbGJhY2soKXthd2FpdCBzdXBlci5kaXNjb25uZWN0ZWRDYWxsYmFjaygpLHRoaXMucmVzaXplT2JzZXJ2ZXImJih0aGlzLnJlc2l6ZU9ic2VydmVyLmRpc2Nvbm5lY3QoKSx0aGlzLnJlc2l6ZU9ic2VydmVyPW51bGwpfXNldHVwUmVzaXplT2JzZXJ2ZXIoKXtpZih0aGlzLnRhYlN0eWxlIT09Imhvcml6b250YWwiKXJldHVybjt0aGlzLnJlc2l6ZU9ic2VydmVyPW5ldyBSZXNpemVPYnNlcnZlcigoKT0+e3RoaXMudXBkYXRlU2Nyb2xsU3RhdGUoKX0pO2xldCBUPXRoaXMuc2hhZG93Um9vdD8ucXVlcnlTZWxlY3RvcigiLnRhYnNDb250YWluZXIuaG9yaXpvbnRhbCIpO1QmJnRoaXMucmVzaXplT2JzZXJ2ZXIub2JzZXJ2ZShUKX1oYW5kbGVTY3JvbGw9KCk9Pnt0aGlzLnVwZGF0ZVNjcm9sbFN0YXRlKCl9O3VwZGF0ZVNjcm9sbFN0YXRlKCl7bGV0IFQ9dGhpcy5zaGFkb3dSb290Py5xdWVyeVNlbGVjdG9yKCIudGFic0NvbnRhaW5lci5ob3Jpem9udGFsIik7aWYoIVQpcmV0dXJuO2xldCAkPVQuc2Nyb2xsTGVmdCxWPVQuc2Nyb2xsV2lkdGgsUj1ULmNsaWVudFdpZHRoLFU9Mjt0aGlzLmNhblNjcm9sbExlZnQ9JD5VLHRoaXMuY2FuU2Nyb2xsUmlnaHQ9JDxWLVItVX1zY3JvbGxUYWJJbnRvVmlldyhUKXtpZih0aGlzLnRhYlN0eWxlIT09Imhvcml6b250YWwiKXJldHVybjtsZXQgJD10aGlzLnRhYnMuaW5kZXhPZihUKTtpZigkPT09LTEpcmV0dXJuO2xldCBWPXRoaXMuc2hhZG93Um9vdD8ucXVlcnlTZWxlY3RvcigiLnRhYnNDb250YWluZXIuaG9yaXpvbnRhbCIpLFI9Vj8ucXVlcnlTZWxlY3RvcihgLnRhYjpudGgtY2hpbGQoJHskKzF9KWApO2lmKFImJlYpe2xldCBVPVYuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkscmU9Ui5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtyZS5sZWZ0Pj1VLmxlZnQmJnJlLnJpZ2h0PD1VLnJpZ2h0fHxSLnNjcm9sbEludG9WaWV3KHtiZWhhdmlvcjoic21vb3RoIixibG9jazoibmVhcmVzdCIsaW5saW5lOiJuZWFyZXN0In0pfX1hc3luYyB1cGRhdGVkKFQpe3N1cGVyLnVwZGF0ZWQoVCksVC5oYXMoInRhYnMiKSYmdGhpcy50YWJzJiZ0aGlzLnRhYnMubGVuZ3RoPjAmJiF0aGlzLnNlbGVjdGVkVGFiJiZ0aGlzLnNlbGVjdFRhYih0aGlzLnRhYnNbMF0pLChULmhhcygic2VsZWN0ZWRUYWIiKXx8VC5oYXMoInRhYnMiKSkmJihhd2FpdCB0aGlzLnVwZGF0ZUNvbXBsZXRlLCF0aGlzLmluZGljYXRvckluaXRpYWxpemVkJiZkb2N1bWVudC5mb250cyYmYXdhaXQgZG9jdW1lbnQuZm9udHMucmVhZHkscmVxdWVzdEFuaW1hdGlvbkZyYW1lKCgpPT57dGhpcy51cGRhdGVUYWJJbmRpY2F0b3IoKSx0aGlzLnVwZGF0ZVNjcm9sbFN0YXRlKCl9KSl9aW5kaWNhdG9ySW5pdGlhbGl6ZWQ9ITE7dXBkYXRlVGFiSW5kaWNhdG9yKCl7aWYoIXRoaXMuc2hvdWxkU2hvd0luZGljYXRvcigpKXJldHVybjtsZXQgVD10aGlzLmdldFNlbGVjdGVkVGFiRWxlbWVudCgpO2lmKCFUKXJldHVybjtsZXQgJD10aGlzLmdldEluZGljYXRvckVsZW1lbnQoKTskJiYodGhpcy5oYW5kbGVJbml0aWFsVHJhbnNpdGlvbigkKSx0aGlzLnRhYlN0eWxlPT09Imhvcml6b250YWwiP3RoaXMudXBkYXRlSG9yaXpvbnRhbEluZGljYXRvcigkLFQpOnRoaXMudXBkYXRlVmVydGljYWxJbmRpY2F0b3IoJCxUKSwkLnN0eWxlLm9wYWNpdHk9IjEiKX1zaG91bGRTaG93SW5kaWNhdG9yKCl7cmV0dXJuIHRoaXMuc2VsZWN0ZWRUYWImJnRoaXMuc2hvd1RhYkluZGljYXRvciYmdGhpcy50YWJzLmluY2x1ZGVzKHRoaXMuc2VsZWN0ZWRUYWIpfWdldFNlbGVjdGVkVGFiRWxlbWVudCgpe2xldCBUPXRoaXMudGFicy5pbmRleE9mKHRoaXMuc2VsZWN0ZWRUYWIpLFY9dGhpcy50YWJTdHlsZT09PSJob3Jpem9udGFsIj9gLnRhYnMtd3JhcHBlciAudGFic0NvbnRhaW5lciAudGFiOm50aC1jaGlsZCgke1QrMX0pYDpgLnZlcnRpY2FsLXdyYXBwZXIgLnRhYnNDb250YWluZXIgLnRhYjpudGgtY2hpbGQoJHtUKzF9KWA7cmV0dXJuIHRoaXMuc2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yKFYpfWdldEluZGljYXRvckVsZW1lbnQoKXtyZXR1cm4gdGhpcy5zaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3IoIi50YWJJbmRpY2F0b3IiKX1oYW5kbGVJbml0aWFsVHJhbnNpdGlvbihUKXt0aGlzLmluZGljYXRvckluaXRpYWxpemVkfHwoVC5jbGFzc0xpc3QuYWRkKCJuby10cmFuc2l0aW9uIiksdGhpcy5pbmRpY2F0b3JJbml0aWFsaXplZD0hMCxzZXRUaW1lb3V0KCgpPT57VC5jbGFzc0xpc3QucmVtb3ZlKCJuby10cmFuc2l0aW9uIil9LDUwKSl9dXBkYXRlSG9yaXpvbnRhbEluZGljYXRvcihULCQpe2xldCBWPSQucXVlcnlTZWxlY3RvcigiLnRhYi1jb250ZW50Iik7aWYoIVYpcmV0dXJuO2xldCBSPVQucGFyZW50RWxlbWVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKSxVPVYuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkscmU9VS5sZWZ0LVIubGVmdCxqPVUud2lkdGgrOCxtZT1yZS00O1Quc3R5bGUud2lkdGg9YCR7an1weGAsVC5zdHlsZS5sZWZ0PWAke21lfXB4YH11cGRhdGVWZXJ0aWNhbEluZGljYXRvcihULCQpe2xldCBWPXRoaXMuc2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yKCIudmVydGljYWwtd3JhcHBlciAudGFic0NvbnRhaW5lciIpO1YmJihULnN0eWxlLnRvcD1gJHskLm9mZnNldFRvcCtWLm9mZnNldFRvcH1weGAsVC5zdHlsZS5oZWlnaHQ9YCR7JC5jbGllbnRIZWlnaHR9cHhgKX1zdGF0aWN7VDIoaSxhKX19O3JldHVybiBFPWl9KSgpfSk7dmFyIFBsLFhpLGxmdCxvVj1iKCgpPT57c28oKTt1ZSgpO1R0KCk7blYoKTtxZSgpO1BsPWZ1bmN0aW9uKHQsZSxhLGkscixzKXtmdW5jdGlvbiBuKHgpe2lmKHghPT12b2lkIDAmJnR5cGVvZiB4IT0iZnVuY3Rpb24iKXRocm93IG5ldyBUeXBlRXJyb3IoIkZ1bmN0aW9uIGV4cGVjdGVkIik7cmV0dXJuIHh9Zm9yKHZhciBvPWkua2luZCxkPW89PT0iZ2V0dGVyIj8iZ2V0IjpvPT09InNldHRlciI/InNldCI6InZhbHVlIixjPSFlJiZ0P2kuc3RhdGljP3Q6dC5wcm90b3R5cGU6bnVsbCxoPWV8fChjP09iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoYyxpLm5hbWUpOnt9KSxsLGY9ITEsZz1hLmxlbmd0aC0xO2c+PTA7Zy0tKXt2YXIgeT17fTtmb3IodmFyIHYgaW4gaSl5W3ZdPXY9PT0iYWNjZXNzIj97fTppW3ZdO2Zvcih2YXIgdiBpbiBpLmFjY2Vzcyl5LmFjY2Vzc1t2XT1pLmFjY2Vzc1t2XTt5LmFkZEluaXRpYWxpemVyPWZ1bmN0aW9uKHgpe2lmKGYpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGFkZCBpbml0aWFsaXplcnMgYWZ0ZXIgZGVjb3JhdGlvbiBoYXMgY29tcGxldGVkIik7cy5wdXNoKG4oeHx8bnVsbCkpfTt2YXIgbT0oMCxhW2ddKShvPT09ImFjY2Vzc29yIj97Z2V0OmguZ2V0LHNldDpoLnNldH06aFtkXSx5KTtpZihvPT09ImFjY2Vzc29yIil7aWYobT09PXZvaWQgMCljb250aW51ZTtpZihtPT09bnVsbHx8dHlwZW9mIG0hPSJvYmplY3QiKXRocm93IG5ldyBUeXBlRXJyb3IoIk9iamVjdCBleHBlY3RlZCIpOyhsPW4obS5nZXQpKSYmKGguZ2V0PWwpLChsPW4obS5zZXQpKSYmKGguc2V0PWwpLChsPW4obS5pbml0KSkmJnIudW5zaGlmdChsKX1lbHNlKGw9bihtKSkmJihvPT09ImZpZWxkIj9yLnVuc2hpZnQobCk6aFtkXT1sKX1jJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoYyxpLm5hbWUsaCksZj0hMH0sWGk9ZnVuY3Rpb24odCxlLGEpe2Zvcih2YXIgaT1hcmd1bWVudHMubGVuZ3RoPjIscj0wO3I8ZS5sZW5ndGg7cisrKWE9aT9lW3JdLmNhbGwodCxhKTplW3JdLmNhbGwodCk7cmV0dXJuIGk/YTp2b2lkIDB9LGxmdD0oKCk9PntsZXQgdD1bcGUoImRlZXMtYXBwdWktbWFpbmNvbnRlbnQiKV0sZSxhPVtdLGkscj14ZSxzLG49W10sbz1bXSxkLGM9W10saD1bXSxsLGY9W10sZz1bXSx5LHY9W10sbT1bXSx4LE09W10sUz1bXTt2YXIgRj1jbGFzcyBleHRlbmRzIHJ7c3RhdGlje2k9dGhpc31zdGF0aWN7bGV0IF89dHlwZW9mIFN5bWJvbD09ImZ1bmN0aW9uIiYmU3ltYm9sLm1ldGFkYXRhP09iamVjdC5jcmVhdGUocltTeW1ib2wubWV0YWRhdGFdPz9udWxsKTp2b2lkIDA7cz1bSSh7dHlwZTpBcnJheX0pXSxkPVtJKHt0eXBlOk9iamVjdH0pXSxsPVtJKHt0eXBlOkJvb2xlYW59KV0seT1bSSh7dHlwZTpCb29sZWFufSldLHg9W0koe3R5cGU6TnVtYmVyfSldLFBsKHRoaXMsbnVsbCxzLHtraW5kOiJhY2Nlc3NvciIsbmFtZToidGFicyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6az0+InRhYnMiaW4gayxnZXQ6az0+ay50YWJzLHNldDooayxOKT0+e2sudGFicz1OfX0sbWV0YWRhdGE6X30sbixvKSxQbCh0aGlzLG51bGwsZCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InNlbGVjdGVkVGFiIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczprPT4ic2VsZWN0ZWRUYWIiaW4gayxnZXQ6az0+ay5zZWxlY3RlZFRhYixzZXQ6KGssTik9PntrLnNlbGVjdGVkVGFiPU59fSxtZXRhZGF0YTpffSxjLGgpLFBsKHRoaXMsbnVsbCxsLHtraW5kOiJhY2Nlc3NvciIsbmFtZToic2hvd1RhYnMiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOms9PiJzaG93VGFicyJpbiBrLGdldDprPT5rLnNob3dUYWJzLHNldDooayxOKT0+e2suc2hvd1RhYnM9Tn19LG1ldGFkYXRhOl99LGYsZyksUGwodGhpcyxudWxsLHkse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJ0YWJzQXV0b0hpZGUiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOms9PiJ0YWJzQXV0b0hpZGUiaW4gayxnZXQ6az0+ay50YWJzQXV0b0hpZGUsc2V0OihrLE4pPT57ay50YWJzQXV0b0hpZGU9Tn19LG1ldGFkYXRhOl99LHYsbSksUGwodGhpcyxudWxsLHgse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJ0YWJzQXV0b0hpZGVUaHJlc2hvbGQiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOms9PiJ0YWJzQXV0b0hpZGVUaHJlc2hvbGQiaW4gayxnZXQ6az0+ay50YWJzQXV0b0hpZGVUaHJlc2hvbGQsc2V0OihrLE4pPT57ay50YWJzQXV0b0hpZGVUaHJlc2hvbGQ9Tn19LG1ldGFkYXRhOl99LE0sUyksUGwobnVsbCxlPXt2YWx1ZTppfSx0LHtraW5kOiJjbGFzcyIsbmFtZTppLm5hbWUsbWV0YWRhdGE6X30sbnVsbCxhKSxGPWk9ZS52YWx1ZSxfJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoaSxTeW1ib2wubWV0YWRhdGEse2VudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwLHZhbHVlOl99KX1zdGF0aWMgZGVtbz0oKT0+d2AKICAgIDxkZWVzLWFwcHVpLW1haW5jb250ZW50CiAgICAgIC50YWJzPSR7W3trZXk6Ik92ZXJ2aWV3IixpY29uTmFtZToibHVjaWRlOmhvbWUiLGFjdGlvbjooKT0+Y29uc29sZS5sb2coIk92ZXJ2aWV3Iil9LHtrZXk6IkRldGFpbHMiLGljb25OYW1lOiJsdWNpZGU6ZmlsZSIsYWN0aW9uOigpPT5jb25zb2xlLmxvZygiRGV0YWlscyIpfSx7a2V5OiJTZXR0aW5ncyIsaWNvbk5hbWU6Imx1Y2lkZTpzZXR0aW5ncyIsYWN0aW9uOigpPT5jb25zb2xlLmxvZygiU2V0dGluZ3MiKX1dfQogICAgPgogICAgICA8ZGl2IHNsb3Q9ImNvbnRlbnQiIHN0eWxlPSJwYWRkaW5nOiA0MHB4OyBjb2xvcjogI2NjYzsiPgogICAgICAgIDxoMT5NYWluIENvbnRlbnQgQXJlYTwvaDE+CiAgICAgICAgPHA+VGhpcyBpcyB3aGVyZSB5b3VyIGFwcGxpY2F0aW9uIGNvbnRlbnQgZ29lcy48L3A+CiAgICAgIDwvZGl2PgogICAgPC9kZWVzLWFwcHVpLW1haW5jb250ZW50PgogIGA7c3RhdGljIGRlbW9Hcm91cHM9WyJBcHAgVUkiXTsjZT1YaSh0aGlzLG4sW3trZXk6Ilx1MjZBMFx1RkUwRiBQbGVhc2Ugc2V0IHRhYnMiLGFjdGlvbjooKT0+Y29uc29sZS53YXJuKCJObyB0YWJzIGNvbmZpZ3VyZWQgZm9yIG1haW5jb250ZW50Iil9XSk7Z2V0IHRhYnMoKXtyZXR1cm4gdGhpcy4jZX1zZXQgdGFicyhfKXt0aGlzLiNlPV99I3Q9KFhpKHRoaXMsbyksWGkodGhpcyxjLG51bGwpKTtnZXQgc2VsZWN0ZWRUYWIoKXtyZXR1cm4gdGhpcy4jdH1zZXQgc2VsZWN0ZWRUYWIoXyl7dGhpcy4jdD1ffSNhPShYaSh0aGlzLGgpLFhpKHRoaXMsZiwhMCkpO2dldCBzaG93VGFicygpe3JldHVybiB0aGlzLiNhfXNldCBzaG93VGFicyhfKXt0aGlzLiNhPV99I2k9KFhpKHRoaXMsZyksWGkodGhpcyx2LCExKSk7Z2V0IHRhYnNBdXRvSGlkZSgpe3JldHVybiB0aGlzLiNpfXNldCB0YWJzQXV0b0hpZGUoXyl7dGhpcy4jaT1ffSNyPShYaSh0aGlzLG0pLFhpKHRoaXMsTSwwKSk7Z2V0IHRhYnNBdXRvSGlkZVRocmVzaG9sZCgpe3JldHVybiB0aGlzLiNyfXNldCB0YWJzQXV0b0hpZGVUaHJlc2hvbGQoXyl7dGhpcy4jcj1ffXN0YXRpYyBzdHlsZXM9W0NlLHAuZGVmYXVsdFN0eWxlcyxRYAogICAgICAvKiBUT0RPOiBNaWdyYXRlIGhhcmRjb2RlZCB2YWx1ZXMgdG8gLS1kZWVzLSogQ1NTIHZhcmlhYmxlcyAqLwogICAgICA6aG9zdCB7CiAgICAgICAgY29sb3I6ICR7cC5iZFRoZW1lKCIjMzMzIiwiI2ZmZiIpfTsKICAgICAgICBkaXNwbGF5OiBncmlkOwogICAgICAgIGdyaWQtdGVtcGxhdGUtcm93czogYXV0byAxZnI7CiAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgICAgaGVpZ2h0OiAxMDAlOwogICAgICAgIGJhY2tncm91bmQ6ICR7cC5iZFRoZW1lKCIjZmZmZmZmIiwiIzE2MTYxNiIpfTsKICAgICAgfQoKICAgICAgLm1haW5jb250YWluZXIgewogICAgICAgIGRpc3BsYXk6IGNvbnRlbnRzOwogICAgICB9CgogICAgICAudG9wYmFyIHsKICAgICAgICBkaXNwbGF5OiBncmlkOwogICAgICAgIGdyaWQtdGVtcGxhdGUtcm93czogMWZyOwogICAgICAgIG92ZXJmbG93OiBoaWRkZW47CiAgICAgICAgdXNlci1zZWxlY3Q6IG5vbmU7CiAgICAgICAgdHJhbnNpdGlvbjogZ3JpZC10ZW1wbGF0ZS1yb3dzIDAuM3MgZWFzZTsKICAgICAgfQoKICAgICAgLnRvcGJhciA+ICogewogICAgICAgIG1pbi1oZWlnaHQ6IDA7CiAgICAgIH0KCiAgICAgIC5jb250ZW50LWFyZWEgewogICAgICAgIG92ZXJmbG93OiBhdXRvOwogICAgICAgIG1pbi1oZWlnaHQ6IDA7CiAgICAgICAgb3ZlcnNjcm9sbC1iZWhhdmlvcjogY29udGFpbjsKICAgICAgfQoKICAgICAgOmhvc3QoW25vdGFic10pIC50b3BiYXIgewogICAgICAgIGdyaWQtdGVtcGxhdGUtcm93czogMGZyOwogICAgICB9CiAgICBgXTtyZW5kZXIoKXtyZXR1cm4gd2AKICAgICAgPGRpdiBjbGFzcz0ibWFpbmNvbnRhaW5lciI+CiAgICAgICAgPGRpdiBjbGFzcz0idG9wYmFyIj4KICAgICAgICAgIDxkZWVzLWFwcHVpLXRhYnMKICAgICAgICAgICAgLnRhYnM9JHt0aGlzLnRhYnN9CiAgICAgICAgICAgIC5zZWxlY3RlZFRhYj0ke3RoaXMuc2VsZWN0ZWRUYWJ9CiAgICAgICAgICAgIC5zaG93VGFiSW5kaWNhdG9yPSR7ITB9CiAgICAgICAgICAgIC50YWJTdHlsZT0keyJob3Jpem9udGFsIn0KICAgICAgICAgICAgLmF1dG9IaWRlPSR7dGhpcy50YWJzQXV0b0hpZGV9CiAgICAgICAgICAgIC5hdXRvSGlkZVRocmVzaG9sZD0ke3RoaXMudGFic0F1dG9IaWRlVGhyZXNob2xkfQogICAgICAgICAgICBAdGFiLXNlbGVjdD0ke189PnRoaXMuaGFuZGxlVGFiU2VsZWN0KF8pfQogICAgICAgICAgICBAdGFiLWNsb3NlPSR7Xz0+dGhpcy5oYW5kbGVUYWJDbG9zZShfKX0KICAgICAgICAgID48L2RlZXMtYXBwdWktdGFicz4KICAgICAgICA8L2Rpdj4KICAgICAgICA8ZGl2IGNsYXNzPSJjb250ZW50LWFyZWEiPgogICAgICAgICAgPHNsb3Q+PC9zbG90PgogICAgICAgICAgPHNsb3QgbmFtZT0iY29udGVudCI+PC9zbG90PgogICAgICAgIDwvZGl2PgogICAgICA8L2Rpdj4KICAgIGB9aGFuZGxlVGFiU2VsZWN0KF8pe3RoaXMuc2VsZWN0ZWRUYWI9Xy5kZXRhaWwudGFiLHRoaXMuZGlzcGF0Y2hFdmVudChuZXcgQ3VzdG9tRXZlbnQoInRhYi1zZWxlY3QiLHtkZXRhaWw6Xy5kZXRhaWwsYnViYmxlczohMCxjb21wb3NlZDohMH0pKX1oYW5kbGVUYWJDbG9zZShfKXt0aGlzLmRpc3BhdGNoRXZlbnQobmV3IEN1c3RvbUV2ZW50KCJ0YWItY2xvc2UiLHtkZXRhaWw6Xy5kZXRhaWwsYnViYmxlczohMCxjb21wb3NlZDohMH0pKX11cGRhdGVkKF8pe3N1cGVyLnVwZGF0ZWQoXyksXy5oYXMoInNob3dUYWJzIikmJih0aGlzLnNob3dUYWJzP3RoaXMucmVtb3ZlQXR0cmlidXRlKCJub3RhYnMiKTp0aGlzLnNldEF0dHJpYnV0ZSgibm90YWJzIiwiIikpfWFzeW5jIGZpcnN0VXBkYXRlZChfKXthd2FpdCBzdXBlci5maXJzdFVwZGF0ZWQoXyksdGhpcy5zaG93VGFic3x8dGhpcy5zZXRBdHRyaWJ1dGUoIm5vdGFicyIsIiIpO2xldCBrPXRoaXMuc2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yKCJkZWVzLWFwcHVpLXRhYnMiKTtrJiZhd2FpdCBrLnVwZGF0ZUNvbXBsZXRlfWNvbnN0cnVjdG9yKCl7c3VwZXIoLi4uYXJndW1lbnRzKSxYaSh0aGlzLFMpfXN0YXRpY3tYaShpLGEpfX07cmV0dXJuIEY9aX0pKCl9KTt2YXIgRXQsSGUsY2Z0LGRmdD1iKCgpPT57dWUoKTtUdCgpO3NvKCk7UXV0KCk7cWUoKTtpVigpO19xKCk7THEoKTtyVigpO3NWKCk7b1YoKTtNcSgpO0V0PWZ1bmN0aW9uKHQsZSxhLGkscixzKXtmdW5jdGlvbiBuKHgpe2lmKHghPT12b2lkIDAmJnR5cGVvZiB4IT0iZnVuY3Rpb24iKXRocm93IG5ldyBUeXBlRXJyb3IoIkZ1bmN0aW9uIGV4cGVjdGVkIik7cmV0dXJuIHh9Zm9yKHZhciBvPWkua2luZCxkPW89PT0iZ2V0dGVyIj8iZ2V0IjpvPT09InNldHRlciI/InNldCI6InZhbHVlIixjPSFlJiZ0P2kuc3RhdGljP3Q6dC5wcm90b3R5cGU6bnVsbCxoPWV8fChjP09iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoYyxpLm5hbWUpOnt9KSxsLGY9ITEsZz1hLmxlbmd0aC0xO2c+PTA7Zy0tKXt2YXIgeT17fTtmb3IodmFyIHYgaW4gaSl5W3ZdPXY9PT0iYWNjZXNzIj97fTppW3ZdO2Zvcih2YXIgdiBpbiBpLmFjY2Vzcyl5LmFjY2Vzc1t2XT1pLmFjY2Vzc1t2XTt5LmFkZEluaXRpYWxpemVyPWZ1bmN0aW9uKHgpe2lmKGYpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGFkZCBpbml0aWFsaXplcnMgYWZ0ZXIgZGVjb3JhdGlvbiBoYXMgY29tcGxldGVkIik7cy5wdXNoKG4oeHx8bnVsbCkpfTt2YXIgbT0oMCxhW2ddKShvPT09ImFjY2Vzc29yIj97Z2V0OmguZ2V0LHNldDpoLnNldH06aFtkXSx5KTtpZihvPT09ImFjY2Vzc29yIil7aWYobT09PXZvaWQgMCljb250aW51ZTtpZihtPT09bnVsbHx8dHlwZW9mIG0hPSJvYmplY3QiKXRocm93IG5ldyBUeXBlRXJyb3IoIk9iamVjdCBleHBlY3RlZCIpOyhsPW4obS5nZXQpKSYmKGguZ2V0PWwpLChsPW4obS5zZXQpKSYmKGguc2V0PWwpLChsPW4obS5pbml0KSkmJnIudW5zaGlmdChsKX1lbHNlKGw9bihtKSkmJihvPT09ImZpZWxkIj9yLnVuc2hpZnQobCk6aFtkXT1sKX1jJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoYyxpLm5hbWUsaCksZj0hMH0sSGU9ZnVuY3Rpb24odCxlLGEpe2Zvcih2YXIgaT1hcmd1bWVudHMubGVuZ3RoPjIscj0wO3I8ZS5sZW5ndGg7cisrKWE9aT9lW3JdLmNhbGwodCxhKTplW3JdLmNhbGwodCk7cmV0dXJuIGk/YTp2b2lkIDB9LGNmdD0oKCk9PntsZXQgdD1bcGUoImRlZXMtYXBwdWkiKV0sZSxhPVtdLGkscj14ZSxzLG49W10sbz1bXSxkLGM9W10saD1bXSxsLGY9W10sZz1bXSx5LHY9W10sbT1bXSx4LE09W10sUz1bXSxGLF89W10saz1bXSxOLEw9W10sQT1bXSxxLEM9W10sej1bXSxFLFQ9W10sJD1bXSxWLFI9W10sVT1bXSxyZSxqPVtdLG1lPVtdLHdlLEg9W10sY2U9W10sa2UsVz1bXSxEPVtdLE8sWj1bXSxZPVtdLG9lLGdlPVtdLGJlPVtdLCRlLEI9W10sUD1bXSxLLGZlPVtdLGRlPVtdLF9lLGhlPVtdLHRlPVtdLHplLEZlPVtdLFdlPVtdLHllLGVlPVtdLGFlPVtdLHZlLFBlPVtdLFZlPVtdLHh0LG90PVtdLEx0PVtdLFp0LGllPVtdLHNlPVtdLFRlLGx0PVtdLGN0PVtdLG0xLGVpPVtdLFFyPVtdLEpyLEllPVtdLFplPVtdLCQxLHkyPVtdLEUyPVtdLGFhLFAyPVtdLGVuPVtdLHRuLGFuPVtdLFpsPVtdLFhsLE1lPVtdLGxlPVtdLERlLEYxPVtdLHN0PVtdLGMxLGlhPVtdLHR0PVtdLGoxLHJhPVtdLF9pPVtdLEtsLGxkPVtdLFFsPVtdLGNkLGRVPVtdLGhVPVtdO3ZhciBwVT1jbGFzcyBleHRlbmRzIHJ7c3RhdGlje2k9dGhpc31zdGF0aWN7bGV0IEc9dHlwZW9mIFN5bWJvbD09ImZ1bmN0aW9uIiYmU3ltYm9sLm1ldGFkYXRhP09iamVjdC5jcmVhdGUocltTeW1ib2wubWV0YWRhdGFdPz9udWxsKTp2b2lkIDA7cz1bSSh7dHlwZTpBcnJheX0pXSxkPVtJKHt0eXBlOlN0cmluZ30pXSxsPVtJKHt0eXBlOlN0cmluZ30pXSx5PVtJKHt0eXBlOkJvb2xlYW59KV0seD1bSSh7dHlwZTpPYmplY3R9KV0sRj1bSSh7dHlwZTpBcnJheX0pXSxOPVtJKHt0eXBlOkJvb2xlYW59KV0scT1bSSh7dHlwZTpTdHJpbmd9KV0sRT1bSSh7dHlwZTpTdHJpbmd9KV0sVj1bSSh7dHlwZTpBcnJheX0pXSxyZT1bSSh7dHlwZTpBcnJheX0pXSx3ZT1bSSh7dHlwZTpBcnJheX0pXSxrZT1bSSh7dHlwZTpPYmplY3R9KV0sTz1bSSh7dHlwZTpTdHJpbmd9KV0sb2U9W0koe3R5cGU6QXJyYXl9KV0sJGU9W0koe3R5cGU6T2JqZWN0fSldLEs9W0koe3R5cGU6Qm9vbGVhbn0pXSxfZT1bSSh7dHlwZTpCb29sZWFufSldLHplPVtJKHt0eXBlOkJvb2xlYW59KV0seWU9W0koe3R5cGU6Qm9vbGVhbn0pXSx2ZT1bSSh7dHlwZTpCb29sZWFufSldLHh0PVtJKHt0eXBlOkJvb2xlYW59KV0sWnQ9W0koe3R5cGU6TnVtYmVyfSldLFRlPVtKKCldLG0xPVtKKCldLEpyPVtJKHt0eXBlOkFycmF5fSldLCQxPVtJKHt0eXBlOk9iamVjdH0pXSxhYT1bSigpXSx0bj1bSigpXSxYbD1bSigpXSxEZT1bSigpXSxjMT1bSigpXSxqMT1bSigpXSxLbD1bSigpXSxjZD1bSigpXSxFdCh0aGlzLG51bGwscyx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImFwcGJhck1lbnVJdGVtcyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6WD0+ImFwcGJhck1lbnVJdGVtcyJpbiBYLGdldDpYPT5YLmFwcGJhck1lbnVJdGVtcyxzZXQ6KFgsU2UpPT57WC5hcHBiYXJNZW51SXRlbXM9U2V9fSxtZXRhZGF0YTpHfSxuLG8pLEV0KHRoaXMsbnVsbCxkLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiYXBwYmFyQnJlYWRjcnVtYnMiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOlg9PiJhcHBiYXJCcmVhZGNydW1icyJpbiBYLGdldDpYPT5YLmFwcGJhckJyZWFkY3J1bWJzLHNldDooWCxTZSk9PntYLmFwcGJhckJyZWFkY3J1bWJzPVNlfX0sbWV0YWRhdGE6R30sYyxoKSxFdCh0aGlzLG51bGwsbCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImFwcGJhckJyZWFkY3J1bWJTZXBhcmF0b3IiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOlg9PiJhcHBiYXJCcmVhZGNydW1iU2VwYXJhdG9yImluIFgsZ2V0Olg9PlguYXBwYmFyQnJlYWRjcnVtYlNlcGFyYXRvcixzZXQ6KFgsU2UpPT57WC5hcHBiYXJCcmVhZGNydW1iU2VwYXJhdG9yPVNlfX0sbWV0YWRhdGE6R30sZixnKSxFdCh0aGlzLG51bGwseSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImFwcGJhclNob3dXaW5kb3dDb250cm9scyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6WD0+ImFwcGJhclNob3dXaW5kb3dDb250cm9scyJpbiBYLGdldDpYPT5YLmFwcGJhclNob3dXaW5kb3dDb250cm9scyxzZXQ6KFgsU2UpPT57WC5hcHBiYXJTaG93V2luZG93Q29udHJvbHM9U2V9fSxtZXRhZGF0YTpHfSx2LG0pLEV0KHRoaXMsbnVsbCx4LHtraW5kOiJhY2Nlc3NvciIsbmFtZToiYXBwYmFyVXNlciIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6WD0+ImFwcGJhclVzZXIiaW4gWCxnZXQ6WD0+WC5hcHBiYXJVc2VyLHNldDooWCxTZSk9PntYLmFwcGJhclVzZXI9U2V9fSxtZXRhZGF0YTpHfSxNLFMpLEV0KHRoaXMsbnVsbCxGLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiYXBwYmFyUHJvZmlsZU1lbnVJdGVtcyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6WD0+ImFwcGJhclByb2ZpbGVNZW51SXRlbXMiaW4gWCxnZXQ6WD0+WC5hcHBiYXJQcm9maWxlTWVudUl0ZW1zLHNldDooWCxTZSk9PntYLmFwcGJhclByb2ZpbGVNZW51SXRlbXM9U2V9fSxtZXRhZGF0YTpHfSxfLGspLEV0KHRoaXMsbnVsbCxOLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiYXBwYmFyU2hvd1NlYXJjaCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6WD0+ImFwcGJhclNob3dTZWFyY2giaW4gWCxnZXQ6WD0+WC5hcHBiYXJTaG93U2VhcmNoLHNldDooWCxTZSk9PntYLmFwcGJhclNob3dTZWFyY2g9U2V9fSxtZXRhZGF0YTpHfSxMLEEpLEV0KHRoaXMsbnVsbCxxLHtraW5kOiJhY2Nlc3NvciIsbmFtZToibWFpbm1lbnVMb2dvSWNvbiIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6WD0+Im1haW5tZW51TG9nb0ljb24iaW4gWCxnZXQ6WD0+WC5tYWlubWVudUxvZ29JY29uLHNldDooWCxTZSk9PntYLm1haW5tZW51TG9nb0ljb249U2V9fSxtZXRhZGF0YTpHfSxDLHopLEV0KHRoaXMsbnVsbCxFLHtraW5kOiJhY2Nlc3NvciIsbmFtZToibWFpbm1lbnVMb2dvVGV4dCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6WD0+Im1haW5tZW51TG9nb1RleHQiaW4gWCxnZXQ6WD0+WC5tYWlubWVudUxvZ29UZXh0LHNldDooWCxTZSk9PntYLm1haW5tZW51TG9nb1RleHQ9U2V9fSxtZXRhZGF0YTpHfSxULCQpLEV0KHRoaXMsbnVsbCxWLHtraW5kOiJhY2Nlc3NvciIsbmFtZToibWFpbm1lbnVHcm91cHMiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOlg9PiJtYWlubWVudUdyb3VwcyJpbiBYLGdldDpYPT5YLm1haW5tZW51R3JvdXBzLHNldDooWCxTZSk9PntYLm1haW5tZW51R3JvdXBzPVNlfX0sbWV0YWRhdGE6R30sUixVKSxFdCh0aGlzLG51bGwscmUse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJtYWlubWVudUJvdHRvbVRhYnMiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOlg9PiJtYWlubWVudUJvdHRvbVRhYnMiaW4gWCxnZXQ6WD0+WC5tYWlubWVudUJvdHRvbVRhYnMsc2V0OihYLFNlKT0+e1gubWFpbm1lbnVCb3R0b21UYWJzPVNlfX0sbWV0YWRhdGE6R30saixtZSksRXQodGhpcyxudWxsLHdlLHtraW5kOiJhY2Nlc3NvciIsbmFtZToibWFpbm1lbnVUYWJzIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpYPT4ibWFpbm1lbnVUYWJzImluIFgsZ2V0Olg9PlgubWFpbm1lbnVUYWJzLHNldDooWCxTZSk9PntYLm1haW5tZW51VGFicz1TZX19LG1ldGFkYXRhOkd9LEgsY2UpLEV0KHRoaXMsbnVsbCxrZSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6Im1haW5tZW51U2VsZWN0ZWRUYWIiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOlg9PiJtYWlubWVudVNlbGVjdGVkVGFiImluIFgsZ2V0Olg9PlgubWFpbm1lbnVTZWxlY3RlZFRhYixzZXQ6KFgsU2UpPT57WC5tYWlubWVudVNlbGVjdGVkVGFiPVNlfX0sbWV0YWRhdGE6R30sVyxEKSxFdCh0aGlzLG51bGwsTyx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InNlY29uZGFyeW1lbnVIZWFkaW5nIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpYPT4ic2Vjb25kYXJ5bWVudUhlYWRpbmciaW4gWCxnZXQ6WD0+WC5zZWNvbmRhcnltZW51SGVhZGluZyxzZXQ6KFgsU2UpPT57WC5zZWNvbmRhcnltZW51SGVhZGluZz1TZX19LG1ldGFkYXRhOkd9LFosWSksRXQodGhpcyxudWxsLG9lLHtraW5kOiJhY2Nlc3NvciIsbmFtZToic2Vjb25kYXJ5bWVudUdyb3VwcyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6WD0+InNlY29uZGFyeW1lbnVHcm91cHMiaW4gWCxnZXQ6WD0+WC5zZWNvbmRhcnltZW51R3JvdXBzLHNldDooWCxTZSk9PntYLnNlY29uZGFyeW1lbnVHcm91cHM9U2V9fSxtZXRhZGF0YTpHfSxnZSxiZSksRXQodGhpcyxudWxsLCRlLHtraW5kOiJhY2Nlc3NvciIsbmFtZToic2Vjb25kYXJ5bWVudVNlbGVjdGVkSXRlbSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6WD0+InNlY29uZGFyeW1lbnVTZWxlY3RlZEl0ZW0iaW4gWCxnZXQ6WD0+WC5zZWNvbmRhcnltZW51U2VsZWN0ZWRJdGVtLHNldDooWCxTZSk9PntYLnNlY29uZGFyeW1lbnVTZWxlY3RlZEl0ZW09U2V9fSxtZXRhZGF0YTpHfSxCLFApLEV0KHRoaXMsbnVsbCxLLHtraW5kOiJhY2Nlc3NvciIsbmFtZToibWFpbm1lbnVDb2xsYXBzZWQiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOlg9PiJtYWlubWVudUNvbGxhcHNlZCJpbiBYLGdldDpYPT5YLm1haW5tZW51Q29sbGFwc2VkLHNldDooWCxTZSk9PntYLm1haW5tZW51Q29sbGFwc2VkPVNlfX0sbWV0YWRhdGE6R30sZmUsZGUpLEV0KHRoaXMsbnVsbCxfZSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InNlY29uZGFyeW1lbnVDb2xsYXBzZWQiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOlg9PiJzZWNvbmRhcnltZW51Q29sbGFwc2VkImluIFgsZ2V0Olg9Plguc2Vjb25kYXJ5bWVudUNvbGxhcHNlZCxzZXQ6KFgsU2UpPT57WC5zZWNvbmRhcnltZW51Q29sbGFwc2VkPVNlfX0sbWV0YWRhdGE6R30saGUsdGUpLEV0KHRoaXMsbnVsbCx6ZSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6Im1haW5tZW51VmlzaWJsZSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6WD0+Im1haW5tZW51VmlzaWJsZSJpbiBYLGdldDpYPT5YLm1haW5tZW51VmlzaWJsZSxzZXQ6KFgsU2UpPT57WC5tYWlubWVudVZpc2libGU9U2V9fSxtZXRhZGF0YTpHfSxGZSxXZSksRXQodGhpcyxudWxsLHllLHtraW5kOiJhY2Nlc3NvciIsbmFtZToic2Vjb25kYXJ5bWVudVZpc2libGUiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOlg9PiJzZWNvbmRhcnltZW51VmlzaWJsZSJpbiBYLGdldDpYPT5YLnNlY29uZGFyeW1lbnVWaXNpYmxlLHNldDooWCxTZSk9PntYLnNlY29uZGFyeW1lbnVWaXNpYmxlPVNlfX0sbWV0YWRhdGE6R30sZWUsYWUpLEV0KHRoaXMsbnVsbCx2ZSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6Im1haW5jb250ZW50VGFic1Zpc2libGUiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOlg9PiJtYWluY29udGVudFRhYnNWaXNpYmxlImluIFgsZ2V0Olg9PlgubWFpbmNvbnRlbnRUYWJzVmlzaWJsZSxzZXQ6KFgsU2UpPT57WC5tYWluY29udGVudFRhYnNWaXNpYmxlPVNlfX0sbWV0YWRhdGE6R30sUGUsVmUpLEV0KHRoaXMsbnVsbCx4dCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImNvbnRlbnRUYWJzQXV0b0hpZGUiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOlg9PiJjb250ZW50VGFic0F1dG9IaWRlImluIFgsZ2V0Olg9PlguY29udGVudFRhYnNBdXRvSGlkZSxzZXQ6KFgsU2UpPT57WC5jb250ZW50VGFic0F1dG9IaWRlPVNlfX0sbWV0YWRhdGE6R30sb3QsTHQpLEV0KHRoaXMsbnVsbCxadCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImNvbnRlbnRUYWJzQXV0b0hpZGVUaHJlc2hvbGQiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOlg9PiJjb250ZW50VGFic0F1dG9IaWRlVGhyZXNob2xkImluIFgsZ2V0Olg9PlguY29udGVudFRhYnNBdXRvSGlkZVRocmVzaG9sZCxzZXQ6KFgsU2UpPT57WC5jb250ZW50VGFic0F1dG9IaWRlVGhyZXNob2xkPVNlfX0sbWV0YWRhdGE6R30saWUsc2UpLEV0KHRoaXMsbnVsbCxUZSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImFjdGl2aXR5TG9nVmlzaWJsZSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6WD0+ImFjdGl2aXR5TG9nVmlzaWJsZSJpbiBYLGdldDpYPT5YLmFjdGl2aXR5TG9nVmlzaWJsZSxzZXQ6KFgsU2UpPT57WC5hY3Rpdml0eUxvZ1Zpc2libGU9U2V9fSxtZXRhZGF0YTpHfSxsdCxjdCksRXQodGhpcyxudWxsLG0xLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiYWN0aXZpdHlMb2dDb3VudCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6WD0+ImFjdGl2aXR5TG9nQ291bnQiaW4gWCxnZXQ6WD0+WC5hY3Rpdml0eUxvZ0NvdW50LHNldDooWCxTZSk9PntYLmFjdGl2aXR5TG9nQ291bnQ9U2V9fSxtZXRhZGF0YTpHfSxlaSxRciksRXQodGhpcyxudWxsLEpyLHtraW5kOiJhY2Nlc3NvciIsbmFtZToibWFpbmNvbnRlbnRUYWJzIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpYPT4ibWFpbmNvbnRlbnRUYWJzImluIFgsZ2V0Olg9PlgubWFpbmNvbnRlbnRUYWJzLHNldDooWCxTZSk9PntYLm1haW5jb250ZW50VGFicz1TZX19LG1ldGFkYXRhOkd9LEllLFplKSxFdCh0aGlzLG51bGwsJDEse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJtYWluY29udGVudFNlbGVjdGVkVGFiIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpYPT4ibWFpbmNvbnRlbnRTZWxlY3RlZFRhYiJpbiBYLGdldDpYPT5YLm1haW5jb250ZW50U2VsZWN0ZWRUYWIsc2V0OihYLFNlKT0+e1gubWFpbmNvbnRlbnRTZWxlY3RlZFRhYj1TZX19LG1ldGFkYXRhOkd9LHkyLEUyKSxFdCh0aGlzLG51bGwsYWEse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJhcHBiYXIiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOlg9PiJhcHBiYXIiaW4gWCxnZXQ6WD0+WC5hcHBiYXIsc2V0OihYLFNlKT0+e1guYXBwYmFyPVNlfX0sbWV0YWRhdGE6R30sUDIsZW4pLEV0KHRoaXMsbnVsbCx0bix7a2luZDoiYWNjZXNzb3IiLG5hbWU6Im1haW5tZW51IixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpYPT4ibWFpbm1lbnUiaW4gWCxnZXQ6WD0+WC5tYWlubWVudSxzZXQ6KFgsU2UpPT57WC5tYWlubWVudT1TZX19LG1ldGFkYXRhOkd9LGFuLFpsKSxFdCh0aGlzLG51bGwsWGwse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJzZWNvbmRhcnltZW51IixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpYPT4ic2Vjb25kYXJ5bWVudSJpbiBYLGdldDpYPT5YLnNlY29uZGFyeW1lbnUsc2V0OihYLFNlKT0+e1guc2Vjb25kYXJ5bWVudT1TZX19LG1ldGFkYXRhOkd9LE1lLGxlKSxFdCh0aGlzLG51bGwsRGUse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJtYWluY29udGVudCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6WD0+Im1haW5jb250ZW50ImluIFgsZ2V0Olg9PlgubWFpbmNvbnRlbnQsc2V0OihYLFNlKT0+e1gubWFpbmNvbnRlbnQ9U2V9fSxtZXRhZGF0YTpHfSxGMSxzdCksRXQodGhpcyxudWxsLGMxLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiYWN0aXZpdHlsb2dFbGVtZW50IixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpYPT4iYWN0aXZpdHlsb2dFbGVtZW50ImluIFgsZ2V0Olg9PlguYWN0aXZpdHlsb2dFbGVtZW50LHNldDooWCxTZSk9PntYLmFjdGl2aXR5bG9nRWxlbWVudD1TZX19LG1ldGFkYXRhOkd9LGlhLHR0KSxFdCh0aGlzLG51bGwsajEse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJib3R0b21iYXJFbGVtZW50IixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpYPT4iYm90dG9tYmFyRWxlbWVudCJpbiBYLGdldDpYPT5YLmJvdHRvbWJhckVsZW1lbnQsc2V0OihYLFNlKT0+e1guYm90dG9tYmFyRWxlbWVudD1TZX19LG1ldGFkYXRhOkd9LHJhLF9pKSxFdCh0aGlzLG51bGwsS2wse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJib3R0b21iYXJWaXNpYmxlIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpYPT4iYm90dG9tYmFyVmlzaWJsZSJpbiBYLGdldDpYPT5YLmJvdHRvbWJhclZpc2libGUsc2V0OihYLFNlKT0+e1guYm90dG9tYmFyVmlzaWJsZT1TZX19LG1ldGFkYXRhOkd9LGxkLFFsKSxFdCh0aGlzLG51bGwsY2Qse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJjdXJyZW50VmlldyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6WD0+ImN1cnJlbnRWaWV3ImluIFgsZ2V0Olg9PlguY3VycmVudFZpZXcsc2V0OihYLFNlKT0+e1guY3VycmVudFZpZXc9U2V9fSxtZXRhZGF0YTpHfSxkVSxoVSksRXQobnVsbCxlPXt2YWx1ZTppfSx0LHtraW5kOiJjbGFzcyIsbmFtZTppLm5hbWUsbWV0YWRhdGE6R30sbnVsbCxhKSxwVT1pPWUudmFsdWUsRyYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGksU3ltYm9sLm1ldGFkYXRhLHtlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMCx2YWx1ZTpHfSl9c3RhdGljIGRlbW89S3V0O3N0YXRpYyBkZW1vR3JvdXBzPVsiQXBwIFVJIl07dmlld0xpZmVjeWNsZSQ9bmV3IE10LnNtYXJ0cngucnhqcy5TdWJqZWN0O3ZpZXdDaGFuZ2VkJD1uZXcgTXQuc21hcnRyeC5yeGpzLlN1YmplY3Q7I2U9SGUodGhpcyxuLFtdKTtnZXQgYXBwYmFyTWVudUl0ZW1zKCl7cmV0dXJuIHRoaXMuI2V9c2V0IGFwcGJhck1lbnVJdGVtcyhHKXt0aGlzLiNlPUd9I3Q9KEhlKHRoaXMsbyksSGUodGhpcyxjLCIiKSk7Z2V0IGFwcGJhckJyZWFkY3J1bWJzKCl7cmV0dXJuIHRoaXMuI3R9c2V0IGFwcGJhckJyZWFkY3J1bWJzKEcpe3RoaXMuI3Q9R30jYT0oSGUodGhpcyxoKSxIZSh0aGlzLGYsIiA+ICIpKTtnZXQgYXBwYmFyQnJlYWRjcnVtYlNlcGFyYXRvcigpe3JldHVybiB0aGlzLiNhfXNldCBhcHBiYXJCcmVhZGNydW1iU2VwYXJhdG9yKEcpe3RoaXMuI2E9R30jaT0oSGUodGhpcyxnKSxIZSh0aGlzLHYsITApKTtnZXQgYXBwYmFyU2hvd1dpbmRvd0NvbnRyb2xzKCl7cmV0dXJuIHRoaXMuI2l9c2V0IGFwcGJhclNob3dXaW5kb3dDb250cm9scyhHKXt0aGlzLiNpPUd9I3I9KEhlKHRoaXMsbSksSGUodGhpcyxNLHZvaWQgMCkpO2dldCBhcHBiYXJVc2VyKCl7cmV0dXJuIHRoaXMuI3J9c2V0IGFwcGJhclVzZXIoRyl7dGhpcy4jcj1HfSNzPShIZSh0aGlzLFMpLEhlKHRoaXMsXyxbXSkpO2dldCBhcHBiYXJQcm9maWxlTWVudUl0ZW1zKCl7cmV0dXJuIHRoaXMuI3N9c2V0IGFwcGJhclByb2ZpbGVNZW51SXRlbXMoRyl7dGhpcy4jcz1HfSNuPShIZSh0aGlzLGspLEhlKHRoaXMsTCwhMSkpO2dldCBhcHBiYXJTaG93U2VhcmNoKCl7cmV0dXJuIHRoaXMuI259c2V0IGFwcGJhclNob3dTZWFyY2goRyl7dGhpcy4jbj1HfSNvPShIZSh0aGlzLEEpLEhlKHRoaXMsQywiIikpO2dldCBtYWlubWVudUxvZ29JY29uKCl7cmV0dXJuIHRoaXMuI299c2V0IG1haW5tZW51TG9nb0ljb24oRyl7dGhpcy4jbz1HfSNsPShIZSh0aGlzLHopLEhlKHRoaXMsVCwiIikpO2dldCBtYWlubWVudUxvZ29UZXh0KCl7cmV0dXJuIHRoaXMuI2x9c2V0IG1haW5tZW51TG9nb1RleHQoRyl7dGhpcy4jbD1HfSNjPShIZSh0aGlzLCQpLEhlKHRoaXMsUixbXSkpO2dldCBtYWlubWVudUdyb3Vwcygpe3JldHVybiB0aGlzLiNjfXNldCBtYWlubWVudUdyb3VwcyhHKXt0aGlzLiNjPUd9I2Q9KEhlKHRoaXMsVSksSGUodGhpcyxqLFtdKSk7Z2V0IG1haW5tZW51Qm90dG9tVGFicygpe3JldHVybiB0aGlzLiNkfXNldCBtYWlubWVudUJvdHRvbVRhYnMoRyl7dGhpcy4jZD1HfSNoPShIZSh0aGlzLG1lKSxIZSh0aGlzLEgsW10pKTtnZXQgbWFpbm1lbnVUYWJzKCl7cmV0dXJuIHRoaXMuI2h9c2V0IG1haW5tZW51VGFicyhHKXt0aGlzLiNoPUd9I3A9KEhlKHRoaXMsY2UpLEhlKHRoaXMsVyx2b2lkIDApKTtnZXQgbWFpbm1lbnVTZWxlY3RlZFRhYigpe3JldHVybiB0aGlzLiNwfXNldCBtYWlubWVudVNlbGVjdGVkVGFiKEcpe3RoaXMuI3A9R30jdT0oSGUodGhpcyxEKSxIZSh0aGlzLFosIiIpKTtnZXQgc2Vjb25kYXJ5bWVudUhlYWRpbmcoKXtyZXR1cm4gdGhpcy4jdX1zZXQgc2Vjb25kYXJ5bWVudUhlYWRpbmcoRyl7dGhpcy4jdT1HfSNmPShIZSh0aGlzLFkpLEhlKHRoaXMsZ2UsW10pKTtnZXQgc2Vjb25kYXJ5bWVudUdyb3Vwcygpe3JldHVybiB0aGlzLiNmfXNldCBzZWNvbmRhcnltZW51R3JvdXBzKEcpe3RoaXMuI2Y9R30jbT0oSGUodGhpcyxiZSksSGUodGhpcyxCLHZvaWQgMCkpO2dldCBzZWNvbmRhcnltZW51U2VsZWN0ZWRJdGVtKCl7cmV0dXJuIHRoaXMuI219c2V0IHNlY29uZGFyeW1lbnVTZWxlY3RlZEl0ZW0oRyl7dGhpcy4jbT1HfSNnPShIZSh0aGlzLFApLEhlKHRoaXMsZmUsITEpKTtnZXQgbWFpbm1lbnVDb2xsYXBzZWQoKXtyZXR1cm4gdGhpcy4jZ31zZXQgbWFpbm1lbnVDb2xsYXBzZWQoRyl7dGhpcy4jZz1HfSNiPShIZSh0aGlzLGRlKSxIZSh0aGlzLGhlLCExKSk7Z2V0IHNlY29uZGFyeW1lbnVDb2xsYXBzZWQoKXtyZXR1cm4gdGhpcy4jYn1zZXQgc2Vjb25kYXJ5bWVudUNvbGxhcHNlZChHKXt0aGlzLiNiPUd9I3Y9KEhlKHRoaXMsdGUpLEhlKHRoaXMsRmUsITApKTtnZXQgbWFpbm1lbnVWaXNpYmxlKCl7cmV0dXJuIHRoaXMuI3Z9c2V0IG1haW5tZW51VmlzaWJsZShHKXt0aGlzLiN2PUd9I3k9KEhlKHRoaXMsV2UpLEhlKHRoaXMsZWUsITApKTtnZXQgc2Vjb25kYXJ5bWVudVZpc2libGUoKXtyZXR1cm4gdGhpcy4jeX1zZXQgc2Vjb25kYXJ5bWVudVZpc2libGUoRyl7dGhpcy4jeT1HfSN4PShIZSh0aGlzLGFlKSxIZSh0aGlzLFBlLCEwKSk7Z2V0IG1haW5jb250ZW50VGFic1Zpc2libGUoKXtyZXR1cm4gdGhpcy4jeH1zZXQgbWFpbmNvbnRlbnRUYWJzVmlzaWJsZShHKXt0aGlzLiN4PUd9I3c9KEhlKHRoaXMsVmUpLEhlKHRoaXMsb3QsITEpKTtnZXQgY29udGVudFRhYnNBdXRvSGlkZSgpe3JldHVybiB0aGlzLiN3fXNldCBjb250ZW50VGFic0F1dG9IaWRlKEcpe3RoaXMuI3c9R30jTT0oSGUodGhpcyxMdCksSGUodGhpcyxpZSwwKSk7Z2V0IGNvbnRlbnRUYWJzQXV0b0hpZGVUaHJlc2hvbGQoKXtyZXR1cm4gdGhpcy4jTX1zZXQgY29udGVudFRhYnNBdXRvSGlkZVRocmVzaG9sZChHKXt0aGlzLiNNPUd9I3o9KEhlKHRoaXMsc2UpLEhlKHRoaXMsbHQsITEpKTtnZXQgYWN0aXZpdHlMb2dWaXNpYmxlKCl7cmV0dXJuIHRoaXMuI3p9c2V0IGFjdGl2aXR5TG9nVmlzaWJsZShHKXt0aGlzLiN6PUd9I2s9KEhlKHRoaXMsY3QpLEhlKHRoaXMsZWksMCkpO2dldCBhY3Rpdml0eUxvZ0NvdW50KCl7cmV0dXJuIHRoaXMuI2t9c2V0IGFjdGl2aXR5TG9nQ291bnQoRyl7dGhpcy4jaz1HfSNTPShIZSh0aGlzLFFyKSxIZSh0aGlzLEllLFtdKSk7Z2V0IG1haW5jb250ZW50VGFicygpe3JldHVybiB0aGlzLiNTfXNldCBtYWluY29udGVudFRhYnMoRyl7dGhpcy4jUz1HfSNDPShIZSh0aGlzLFplKSxIZSh0aGlzLHkyLHZvaWQgMCkpO2dldCBtYWluY29udGVudFNlbGVjdGVkVGFiKCl7cmV0dXJuIHRoaXMuI0N9c2V0IG1haW5jb250ZW50U2VsZWN0ZWRUYWIoRyl7dGhpcy4jQz1HfSNfPShIZSh0aGlzLEUyKSxIZSh0aGlzLFAyLHZvaWQgMCkpO2dldCBhcHBiYXIoKXtyZXR1cm4gdGhpcy4jX31zZXQgYXBwYmFyKEcpe3RoaXMuI189R30jVD0oSGUodGhpcyxlbiksSGUodGhpcyxhbix2b2lkIDApKTtnZXQgbWFpbm1lbnUoKXtyZXR1cm4gdGhpcy4jVH1zZXQgbWFpbm1lbnUoRyl7dGhpcy4jVD1HfSNMPShIZSh0aGlzLFpsKSxIZSh0aGlzLE1lLHZvaWQgMCkpO2dldCBzZWNvbmRhcnltZW51KCl7cmV0dXJuIHRoaXMuI0x9c2V0IHNlY29uZGFyeW1lbnUoRyl7dGhpcy4jTD1HfSMkPShIZSh0aGlzLGxlKSxIZSh0aGlzLEYxLHZvaWQgMCkpO2dldCBtYWluY29udGVudCgpe3JldHVybiB0aGlzLiMkfXNldCBtYWluY29udGVudChHKXt0aGlzLiMkPUd9I0E9KEhlKHRoaXMsc3QpLEhlKHRoaXMsaWEsdm9pZCAwKSk7Z2V0IGFjdGl2aXR5bG9nRWxlbWVudCgpe3JldHVybiB0aGlzLiNBfXNldCBhY3Rpdml0eWxvZ0VsZW1lbnQoRyl7dGhpcy4jQT1HfSNEPShIZSh0aGlzLHR0KSxIZSh0aGlzLHJhLHZvaWQgMCkpO2dldCBib3R0b21iYXJFbGVtZW50KCl7cmV0dXJuIHRoaXMuI0R9c2V0IGJvdHRvbWJhckVsZW1lbnQoRyl7dGhpcy4jRD1HfSNFPShIZSh0aGlzLF9pKSxIZSh0aGlzLGxkLCEwKSk7Z2V0IGJvdHRvbWJhclZpc2libGUoKXtyZXR1cm4gdGhpcy4jRX1zZXQgYm90dG9tYmFyVmlzaWJsZShHKXt0aGlzLiNFPUd9I1A9KEhlKHRoaXMsUWwpLEhlKHRoaXMsZFUsdm9pZCAwKSk7Z2V0IGN1cnJlbnRWaWV3KCl7cmV0dXJuIHRoaXMuI1B9c2V0IGN1cnJlbnRWaWV3KEcpe3RoaXMuI1A9R312aWV3UmVnaXN0cnk9KEhlKHRoaXMsaFUpLG5ldyB6OCk7cm91dGVyQ2xlYW51cD1udWxsO3NlYXJjaENhbGxiYWNrPW51bGw7c3RhdGljIHN0eWxlcz1bQ2UscC5kZWZhdWx0U3R5bGVzLFFgCiAgICAgIC8qIFRPRE86IE1pZ3JhdGUgaGFyZGNvZGVkIHZhbHVlcyB0byAtLWRlZXMtKiBDU1MgdmFyaWFibGVzICovCiAgICAgIDpob3N0IHsKICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgICAgaGVpZ2h0OiAxMDAlOwogICAgICAgIHdpZHRoOiAxMDAlOwogICAgICAgIGJhY2tncm91bmQ6ICR7cC5iZFRoZW1lKCIjZjBmMGYwIiwiIzFhMWExYSIpfTsKICAgICAgfQogICAgICAubWFpbmdyaWQgewogICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgICB0b3A6IDQwcHg7CiAgICAgICAgaGVpZ2h0OiBjYWxjKDEwMCUgLSA0MHB4IC0gMjRweCk7CiAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgICAgZGlzcGxheTogZ3JpZDsKICAgICAgICAvKiBncmlkLXRlbXBsYXRlLWNvbHVtbnMgc2V0IGR5bmFtaWNhbGx5IGluIHRlbXBsYXRlICovCiAgICAgICAgZ3JpZC10ZW1wbGF0ZS1yb3dzOiAxZnI7CiAgICAgICAgdHJhbnNpdGlvbjogZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zIDAuM3MgZWFzZSwgaGVpZ2h0IDAuM3MgZWFzZTsKICAgICAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgICB9CgogICAgICA6aG9zdChbYm90dG9tYmFyLWhpZGRlbl0pIC5tYWluZ3JpZCB7CiAgICAgICAgaGVpZ2h0OiBjYWxjKDEwMCUgLSA0MHB4KTsKICAgICAgfQoKICAgICAgZGVlcy1hcHB1aS1ib3R0b21iYXIgewogICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgICBib3R0b206IDA7CiAgICAgICAgbGVmdDogMDsKICAgICAgICByaWdodDogMDsKICAgICAgICB6LWluZGV4OiA0OwogICAgICB9CgogICAgICAvKiBaLWluZGV4IGxheWVyaW5nIGZvciBwcm9wZXIgc3RhY2tpbmcgKi8KICAgICAgLm1haW5ncmlkID4gZGVlcy1hcHB1aS1tYWlubWVudSB7CiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICAgIHotaW5kZXg6IDM7CiAgICAgIH0KCiAgICAgIC5tYWluZ3JpZCA+IGRlZXMtYXBwdWktc2Vjb25kYXJ5bWVudSB7CiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICAgIHotaW5kZXg6IDI7CiAgICAgIH0KCiAgICAgIC5tYWluZ3JpZCA+IGRlZXMtYXBwdWktbWFpbmNvbnRlbnQgewogICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgICB6LWluZGV4OiAxOwogICAgICAgIG1pbi1oZWlnaHQ6IDA7CiAgICAgIH0KCiAgICAgIC5tYWluZ3JpZCA+IGRlZXMtYXBwdWktYWN0aXZpdHlsb2cgewogICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgICB6LWluZGV4OiAxOwogICAgICAgIG92ZXJmbG93OiBoaWRkZW47CiAgICAgICAgdHJhbnNpdGlvbjogb3BhY2l0eSAwLjNzIGVhc2UsIHRyYW5zZm9ybSAwLjNzIGVhc2U7CiAgICAgIH0KCiAgICAgIC5tYWluZ3JpZCA+IGRlZXMtYXBwdWktYWN0aXZpdHlsb2cuaGlkZGVuIHsKICAgICAgICBvcGFjaXR5OiAwOwogICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgyMHB4KTsKICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTsKICAgICAgfQoKICAgICAgLm1haW5ncmlkID4gZGVlcy1hcHB1aS1hY3Rpdml0eWxvZy52aXNpYmxlIHsKICAgICAgICBvcGFjaXR5OiAxOwogICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgwKTsKICAgICAgfQoKICAgICAgLyogVmlldyBjb250YWluZXIgZm9yIGR5bmFtaWNhbGx5IGxvYWRlZCB2aWV3cyAqLwogICAgICAudmlldy1jb250YWluZXIgewogICAgICAgIGRpc3BsYXk6IGNvbnRlbnRzOwogICAgICB9CgogICAgICAudmlldy1jb250YWluZXI6ZW1wdHkgewogICAgICAgIGRpc3BsYXk6IG5vbmU7CiAgICAgIH0KICAgIGBdO3JlbmRlcigpe3JldHVybiB3YAogICAgICA8ZGVlcy1hcHB1aS1hcHBiYXIKICAgICAgICAubWVudUl0ZW1zPSR7dGhpcy5hcHBiYXJNZW51SXRlbXN9CiAgICAgICAgLmJyZWFkY3J1bWJzPSR7dGhpcy5hcHBiYXJCcmVhZGNydW1ic30KICAgICAgICAuYnJlYWRjcnVtYlNlcGFyYXRvcj0ke3RoaXMuYXBwYmFyQnJlYWRjcnVtYlNlcGFyYXRvcn0KICAgICAgICAuc2hvd1dpbmRvd0NvbnRyb2xzPSR7dGhpcy5hcHBiYXJTaG93V2luZG93Q29udHJvbHN9CiAgICAgICAgLnVzZXI9JHt0aGlzLmFwcGJhclVzZXJ9CiAgICAgICAgLnByb2ZpbGVNZW51SXRlbXM9JHt0aGlzLmFwcGJhclByb2ZpbGVNZW51SXRlbXN9CiAgICAgICAgLnNob3dTZWFyY2g9JHt0aGlzLmFwcGJhclNob3dTZWFyY2h9CiAgICAgICAgLnNob3dBY3Rpdml0eUxvZ1RvZ2dsZT0keyEwfQogICAgICAgIC5hY3Rpdml0eUxvZ0NvdW50PSR7dGhpcy5hY3Rpdml0eUxvZ0NvdW50fQogICAgICAgIC5hY3Rpdml0eUxvZ0FjdGl2ZT0ke3RoaXMuYWN0aXZpdHlMb2dWaXNpYmxlfQogICAgICAgIEBtZW51LXNlbGVjdD0ke0c9PnRoaXMuaGFuZGxlQXBwYmFyTWVudVNlbGVjdChHKX0KICAgICAgICBAYnJlYWRjcnVtYi1uYXZpZ2F0ZT0ke0c9PnRoaXMuaGFuZGxlQXBwYmFyQnJlYWRjcnVtYk5hdmlnYXRlKEcpfQogICAgICAgIEBzZWFyY2gtY2xpY2s9JHsoKT0+dGhpcy5oYW5kbGVBcHBiYXJTZWFyY2hDbGljaygpfQogICAgICAgIEBzZWFyY2gtcXVlcnk9JHtHPT50aGlzLmhhbmRsZUFwcGJhclNlYXJjaFF1ZXJ5KEcpfQogICAgICAgIEB1c2VyLW1lbnUtb3Blbj0keygpPT50aGlzLmhhbmRsZUFwcGJhclVzZXJNZW51T3BlbigpfQogICAgICAgIEBwcm9maWxlLW1lbnUtc2VsZWN0PSR7Rz0+dGhpcy5oYW5kbGVBcHBiYXJQcm9maWxlTWVudVNlbGVjdChHKX0KICAgICAgICBAYWN0aXZpdHktdG9nZ2xlPSR7KCk9PnRoaXMudG9nZ2xlQWN0aXZpdHlMb2coKX0KICAgICAgPjwvZGVlcy1hcHB1aS1hcHBiYXI+CiAgICAgIDxkaXYgY2xhc3M9Im1haW5ncmlkIiBzdHlsZT0iZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiBhdXRvIGF1dG8gMWZyICR7dGhpcy5hY3Rpdml0eUxvZ1Zpc2libGU/IjI4MHB4IjoiMHB4In07Ij4KICAgICAgICAke3RoaXMubWFpbm1lbnVWaXNpYmxlP3dgCiAgICAgICAgICA8ZGVlcy1hcHB1aS1tYWlubWVudQogICAgICAgICAgICAubG9nb0ljb249JHt0aGlzLm1haW5tZW51TG9nb0ljb259CiAgICAgICAgICAgIC5sb2dvVGV4dD0ke3RoaXMubWFpbm1lbnVMb2dvVGV4dH0KICAgICAgICAgICAgLm1lbnVHcm91cHM9JHt0aGlzLm1haW5tZW51R3JvdXBzfQogICAgICAgICAgICAuYm90dG9tVGFicz0ke3RoaXMubWFpbm1lbnVCb3R0b21UYWJzfQogICAgICAgICAgICAudGFicz0ke3RoaXMubWFpbm1lbnVUYWJzfQogICAgICAgICAgICAuc2VsZWN0ZWRUYWI9JHt0aGlzLm1haW5tZW51U2VsZWN0ZWRUYWJ9CiAgICAgICAgICAgIC5jb2xsYXBzZWQ9JHt0aGlzLm1haW5tZW51Q29sbGFwc2VkfQogICAgICAgICAgICBAdGFiLXNlbGVjdD0ke0c9PnRoaXMuaGFuZGxlTWFpbm1lbnVUYWJTZWxlY3QoRyl9CiAgICAgICAgICAgIEBjb2xsYXBzZS1jaGFuZ2U9JHtHPT50aGlzLmhhbmRsZU1haW5tZW51Q29sbGFwc2VDaGFuZ2UoRyl9CiAgICAgICAgICA+PC9kZWVzLWFwcHVpLW1haW5tZW51PgogICAgICAgIGA6IiJ9CiAgICAgICAgJHt0aGlzLnNlY29uZGFyeW1lbnVWaXNpYmxlP3dgCiAgICAgICAgICA8ZGVlcy1hcHB1aS1zZWNvbmRhcnltZW51CiAgICAgICAgICAgIC5oZWFkaW5nPSR7dGhpcy5zZWNvbmRhcnltZW51SGVhZGluZ30KICAgICAgICAgICAgLmdyb3Vwcz0ke3RoaXMuc2Vjb25kYXJ5bWVudUdyb3Vwc30KICAgICAgICAgICAgLnNlbGVjdGVkSXRlbT0ke3RoaXMuc2Vjb25kYXJ5bWVudVNlbGVjdGVkSXRlbX0KICAgICAgICAgICAgLmNvbGxhcHNlZD0ke3RoaXMuc2Vjb25kYXJ5bWVudUNvbGxhcHNlZH0KICAgICAgICAgICAgQGl0ZW0tc2VsZWN0PSR7Rz0+dGhpcy5oYW5kbGVTZWNvbmRhcnltZW51SXRlbVNlbGVjdChHKX0KICAgICAgICAgICAgQGNvbGxhcHNlLWNoYW5nZT0ke0c9PnRoaXMuaGFuZGxlU2Vjb25kYXJ5bWVudUNvbGxhcHNlQ2hhbmdlKEcpfQogICAgICAgICAgPjwvZGVlcy1hcHB1aS1zZWNvbmRhcnltZW51PgogICAgICAgIGA6IiJ9CiAgICAgICAgPGRlZXMtYXBwdWktbWFpbmNvbnRlbnQKICAgICAgICAgIC50YWJzPSR7dGhpcy5tYWluY29udGVudFRhYnN9CiAgICAgICAgICAuc2VsZWN0ZWRUYWI9JHt0aGlzLm1haW5jb250ZW50U2VsZWN0ZWRUYWJ9CiAgICAgICAgICAuc2hvd1RhYnM9JHt0aGlzLm1haW5jb250ZW50VGFic1Zpc2libGV9CiAgICAgICAgICAudGFic0F1dG9IaWRlPSR7dGhpcy5jb250ZW50VGFic0F1dG9IaWRlfQogICAgICAgICAgLnRhYnNBdXRvSGlkZVRocmVzaG9sZD0ke3RoaXMuY29udGVudFRhYnNBdXRvSGlkZVRocmVzaG9sZH0KICAgICAgICAgIEB0YWItc2VsZWN0PSR7Rz0+dGhpcy5oYW5kbGVDb250ZW50VGFiU2VsZWN0KEcpfQogICAgICAgICAgQHRhYi1jbG9zZT0ke0c9PnRoaXMuaGFuZGxlQ29udGVudFRhYkNsb3NlKEcpfQogICAgICAgID4KICAgICAgICAgIDxkaXYgY2xhc3M9InZpZXctY29udGFpbmVyIj48L2Rpdj4KICAgICAgICAgIDxzbG90IG5hbWU9Im1haW5jb250ZW50Ij48L3Nsb3Q+CiAgICAgICAgPC9kZWVzLWFwcHVpLW1haW5jb250ZW50PgogICAgICAgIDxkZWVzLWFwcHVpLWFjdGl2aXR5bG9nCiAgICAgICAgICBjbGFzcz0iJHt0aGlzLmFjdGl2aXR5TG9nVmlzaWJsZT8idmlzaWJsZSI6ImhpZGRlbiJ9IgogICAgICAgID48L2RlZXMtYXBwdWktYWN0aXZpdHlsb2c+CiAgICAgIDwvZGl2PgogICAgICAke3RoaXMuYm90dG9tYmFyVmlzaWJsZT93YAogICAgICAgIDxkZWVzLWFwcHVpLWJvdHRvbWJhcj48L2RlZXMtYXBwdWktYm90dG9tYmFyPgogICAgICBgOiIifQogICAgYH1hc3luYyBmaXJzdFVwZGF0ZWQoKXt0aGlzLmFwcGJhcj10aGlzLnNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvcigiZGVlcy1hcHB1aS1hcHBiYXIiKSx0aGlzLm1haW5tZW51PXRoaXMuc2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yKCJkZWVzLWFwcHVpLW1haW5tZW51IiksdGhpcy5zZWNvbmRhcnltZW51PXRoaXMuc2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yKCJkZWVzLWFwcHVpLXNlY29uZGFyeW1lbnUiKSx0aGlzLm1haW5jb250ZW50PXRoaXMuc2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yKCJkZWVzLWFwcHVpLW1haW5jb250ZW50IiksdGhpcy5hY3Rpdml0eWxvZ0VsZW1lbnQ9dGhpcy5zaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3IoImRlZXMtYXBwdWktYWN0aXZpdHlsb2ciKSx0aGlzLmJvdHRvbWJhckVsZW1lbnQ9dGhpcy5zaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3IoImRlZXMtYXBwdWktYm90dG9tYmFyIiksdGhpcy5hY3Rpdml0eWxvZ0VsZW1lbnQmJnRoaXMuYWN0aXZpdHlsb2dFbGVtZW50LmVudHJpZXMkLnN1YnNjcmliZShHPT57dGhpcy5hY3Rpdml0eUxvZ0NvdW50PUcubGVuZ3RofSksdGhpcy52aWV3UmVnaXN0cnkuc2V0QXBwdWlSZWYodGhpcyl9YXN5bmMgZGlzY29ubmVjdGVkQ2FsbGJhY2soKXthd2FpdCBzdXBlci5kaXNjb25uZWN0ZWRDYWxsYmFjaygpLHRoaXMucm91dGVyQ2xlYW51cCYmKHRoaXMucm91dGVyQ2xlYW51cCgpLHRoaXMucm91dGVyQ2xlYW51cD1udWxsKSx0aGlzLnZpZXdMaWZlY3ljbGUkLmNvbXBsZXRlKCksdGhpcy52aWV3Q2hhbmdlZCQuY29tcGxldGUoKX1zZXRBcHBCYXJNZW51cyhHKXt0aGlzLmFwcGJhck1lbnVJdGVtcz1bLi4uR119dXBkYXRlQXBwQmFyTWVudShHLFgpe3RoaXMuYXBwYmFyTWVudUl0ZW1zPXRoaXMuYXBwYmFyTWVudUl0ZW1zLm1hcChTZT0+Im5hbWUiaW4gU2UmJlNlLm5hbWU9PT1HP3suLi5TZSwuLi5YfTpTZSl9c2V0QnJlYWRjcnVtYnMoRyl7QXJyYXkuaXNBcnJheShHKT90aGlzLmFwcGJhckJyZWFkY3J1bWJzPUcuam9pbih0aGlzLmFwcGJhckJyZWFkY3J1bWJTZXBhcmF0b3IpOnRoaXMuYXBwYmFyQnJlYWRjcnVtYnM9R31zZXRVc2VyKEcpe3RoaXMuYXBwYmFyVXNlcj1HfXNldFByb2ZpbGVNZW51SXRlbXMoRyl7dGhpcy5hcHBiYXJQcm9maWxlTWVudUl0ZW1zPVsuLi5HXX1zZXRTZWFyY2hWaXNpYmxlKEcpe3RoaXMuYXBwYmFyU2hvd1NlYXJjaD1HfXNldFdpbmRvd0NvbnRyb2xzVmlzaWJsZShHKXt0aGlzLmFwcGJhclNob3dXaW5kb3dDb250cm9scz1HfW9uU2VhcmNoKEcpe3RoaXMuc2VhcmNoQ2FsbGJhY2s9R31zZXRNYWluTWVudShHKXtHLmxvZ29JY29uIT09dm9pZCAwJiYodGhpcy5tYWlubWVudUxvZ29JY29uPUcubG9nb0ljb24pLEcubG9nb1RleHQhPT12b2lkIDAmJih0aGlzLm1haW5tZW51TG9nb1RleHQ9Ry5sb2dvVGV4dCksRy5ncm91cHMhPT12b2lkIDAmJih0aGlzLm1haW5tZW51R3JvdXBzPVsuLi5HLmdyb3Vwc10pLEcuYm90dG9tVGFicyE9PXZvaWQgMCYmKHRoaXMubWFpbm1lbnVCb3R0b21UYWJzPVsuLi5HLmJvdHRvbVRhYnNdKX11cGRhdGVNYWluTWVudUdyb3VwKEcsWCl7dGhpcy5tYWlubWVudUdyb3Vwcz10aGlzLm1haW5tZW51R3JvdXBzLm1hcChTZT0+U2UubmFtZT09PUc/ey4uLlNlLC4uLlh9OlNlKX1hZGRNYWluTWVudUl0ZW0oRyxYKXt0aGlzLm1haW5tZW51R3JvdXBzPXRoaXMubWFpbm1lbnVHcm91cHMubWFwKFNlPT5TZS5uYW1lPT09Rz97Li4uU2UsaXRlbXM6Wy4uLlNlLml0ZW1zfHxbXSxYXX06U2UpfXJlbW92ZU1haW5NZW51SXRlbShHLFgpe3RoaXMubWFpbm1lbnVHcm91cHM9dGhpcy5tYWlubWVudUdyb3Vwcy5tYXAoU2U9PlNlLm5hbWU9PT1HP3suLi5TZSxpdGVtczooU2UuaXRlbXN8fFtdKS5maWx0ZXIoT3Q9Pk90LmtleSE9PVgpfTpTZSl9c2V0TWFpbk1lbnVTZWxlY3Rpb24oRyl7Zm9yKGxldCBTZSBvZiB0aGlzLm1haW5tZW51R3JvdXBzKXtsZXQgT3Q9U2UuaXRlbXM/LmZpbmQoTWE9Pk1hLmtleT09PUcpO2lmKE90KXt0aGlzLm1haW5tZW51U2VsZWN0ZWRUYWI9T3Q7cmV0dXJufX1sZXQgWD10aGlzLm1haW5tZW51Qm90dG9tVGFicy5maW5kKFNlPT5TZS5rZXk9PT1HKTtYJiYodGhpcy5tYWlubWVudVNlbGVjdGVkVGFiPVgpfXNldE1haW5NZW51Q29sbGFwc2VkKEcpe3RoaXMubWFpbm1lbnVDb2xsYXBzZWQ9R31zZXRNYWluTWVudVZpc2libGUoRyl7dGhpcy5tYWlubWVudVZpc2libGU9R31zZXRTZWNvbmRhcnlNZW51Q29sbGFwc2VkKEcpe3RoaXMuc2Vjb25kYXJ5bWVudUNvbGxhcHNlZD1HfXNldFNlY29uZGFyeU1lbnVWaXNpYmxlKEcpe3RoaXMuc2Vjb25kYXJ5bWVudVZpc2libGU9R31zZXRDb250ZW50VGFic1Zpc2libGUoRyl7dGhpcy5tYWluY29udGVudFRhYnNWaXNpYmxlPUd9c2V0Q29udGVudFRhYnNBdXRvSGlkZShHLFg9MCl7dGhpcy5jb250ZW50VGFic0F1dG9IaWRlPUcsdGhpcy5jb250ZW50VGFic0F1dG9IaWRlVGhyZXNob2xkPVh9c2V0TWFpbk1lbnVCYWRnZShHLFgpe3RoaXMubWFpbm1lbnVHcm91cHM9dGhpcy5tYWlubWVudUdyb3Vwcy5tYXAoU2U9Pih7Li4uU2UsaXRlbXM6KFNlLml0ZW1zfHxbXSkubWFwKE90PT5PdC5rZXk9PT1HP3suLi5PdCxiYWRnZTpYfTpPdCl9KSksdGhpcy5tYWlubWVudUJvdHRvbVRhYnM9dGhpcy5tYWlubWVudUJvdHRvbVRhYnMubWFwKFNlPT5TZS5rZXk9PT1HP3suLi5TZSxiYWRnZTpYfTpTZSl9Y2xlYXJNYWluTWVudUJhZGdlKEcpe3RoaXMubWFpbm1lbnVHcm91cHM9dGhpcy5tYWlubWVudUdyb3Vwcy5tYXAoWD0+KHsuLi5YLGl0ZW1zOihYLml0ZW1zfHxbXSkubWFwKFNlPT57aWYoU2Uua2V5PT09Ryl7bGV0e2JhZGdlOk90LC4uLk1hfT1TZTtyZXR1cm4gTWF9cmV0dXJuIFNlfSl9KSksdGhpcy5tYWlubWVudUJvdHRvbVRhYnM9dGhpcy5tYWlubWVudUJvdHRvbVRhYnMubWFwKFg9PntpZihYLmtleT09PUcpe2xldHtiYWRnZTpTZSwuLi5PdH09WDtyZXR1cm4gT3R9cmV0dXJuIFh9KX1zZXRTZWNvbmRhcnlNZW51KEcpe0cuaGVhZGluZyE9PXZvaWQgMCYmKHRoaXMuc2Vjb25kYXJ5bWVudUhlYWRpbmc9Ry5oZWFkaW5nKSx0aGlzLnNlY29uZGFyeW1lbnVHcm91cHM9Wy4uLkcuZ3JvdXBzXX11cGRhdGVTZWNvbmRhcnlNZW51R3JvdXAoRyxYKXt0aGlzLnNlY29uZGFyeW1lbnVHcm91cHM9dGhpcy5zZWNvbmRhcnltZW51R3JvdXBzLm1hcChTZT0+U2UubmFtZT09PUc/ey4uLlNlLC4uLlh9OlNlKX1hZGRTZWNvbmRhcnlNZW51SXRlbShHLFgpe3RoaXMuc2Vjb25kYXJ5bWVudUdyb3Vwcz10aGlzLnNlY29uZGFyeW1lbnVHcm91cHMubWFwKFNlPT5TZS5uYW1lPT09Rz97Li4uU2UsaXRlbXM6Wy4uLlNlLml0ZW1zLFhdfTpTZSl9c2V0U2Vjb25kYXJ5TWVudVNlbGVjdGlvbihHKXtmb3IobGV0IFggb2YgdGhpcy5zZWNvbmRhcnltZW51R3JvdXBzKXtsZXQgU2U9WC5pdGVtcy5maW5kKE90PT4ia2V5ImluIE90JiZPdC5rZXk9PT1HKTtpZihTZSYmKCEoInR5cGUiaW4gU2UpfHxTZS50eXBlPT09InRhYiJ8fFNlLnR5cGU9PT12b2lkIDApKXt0aGlzLnNlY29uZGFyeW1lbnVTZWxlY3RlZEl0ZW09U2U7cmV0dXJufX19Y2xlYXJTZWNvbmRhcnlNZW51KCl7dGhpcy5zZWNvbmRhcnltZW51SGVhZGluZz0iIix0aGlzLnNlY29uZGFyeW1lbnVHcm91cHM9W10sdGhpcy5zZWNvbmRhcnltZW51U2VsZWN0ZWRJdGVtPXZvaWQgMH1zZXRDb250ZW50VGFicyhHKXt0aGlzLm1haW5jb250ZW50VGFicz1bLi4uR10sRy5sZW5ndGg+MCYmIXRoaXMubWFpbmNvbnRlbnRTZWxlY3RlZFRhYiYmKHRoaXMubWFpbmNvbnRlbnRTZWxlY3RlZFRhYj1HWzBdKX1hZGRDb250ZW50VGFiKEcpe3RoaXMubWFpbmNvbnRlbnRUYWJzPVsuLi50aGlzLm1haW5jb250ZW50VGFicyxHXX1yZW1vdmVDb250ZW50VGFiKEcpe3RoaXMubWFpbmNvbnRlbnRUYWJzPXRoaXMubWFpbmNvbnRlbnRUYWJzLmZpbHRlcihYPT5YLmtleSE9PUcpLHRoaXMubWFpbmNvbnRlbnRTZWxlY3RlZFRhYj8ua2V5PT09RyYmKHRoaXMubWFpbmNvbnRlbnRTZWxlY3RlZFRhYj10aGlzLm1haW5jb250ZW50VGFic1swXSl9c2VsZWN0Q29udGVudFRhYihHKXtsZXQgWD10aGlzLm1haW5jb250ZW50VGFicy5maW5kKFNlPT5TZS5rZXk9PT1HKTtYJiYodGhpcy5tYWluY29udGVudFNlbGVjdGVkVGFiPVgpfWdldFNlbGVjdGVkQ29udGVudFRhYigpe3JldHVybiB0aGlzLm1haW5jb250ZW50U2VsZWN0ZWRUYWJ9Z2V0IGFjdGl2aXR5TG9nKCl7cmV0dXJuIHRoaXMuYWN0aXZpdHlsb2dFbGVtZW50P3thZGQ6Rz0+dGhpcy5hY3Rpdml0eWxvZ0VsZW1lbnQuYWRkKEcpLGFkZE1hbnk6Rz0+dGhpcy5hY3Rpdml0eWxvZ0VsZW1lbnQuYWRkTWFueShHKSxjbGVhcjooKT0+dGhpcy5hY3Rpdml0eWxvZ0VsZW1lbnQuY2xlYXIoKSxnZXRFbnRyaWVzOigpPT50aGlzLmFjdGl2aXR5bG9nRWxlbWVudC5nZXRFbnRyaWVzKCksZmlsdGVyOkc9PnRoaXMuYWN0aXZpdHlsb2dFbGVtZW50LmZpbHRlcihHKSxzZWFyY2g6Rz0+dGhpcy5hY3Rpdml0eWxvZ0VsZW1lbnQuc2VhcmNoKEcpfTp7YWRkOkc9Pnt0aGlzLnVwZGF0ZUNvbXBsZXRlLnRoZW4oKCk9PnRoaXMuYWN0aXZpdHlsb2dFbGVtZW50Py5hZGQoRykpfSxhZGRNYW55Okc9Pnt0aGlzLnVwZGF0ZUNvbXBsZXRlLnRoZW4oKCk9PnRoaXMuYWN0aXZpdHlsb2dFbGVtZW50Py5hZGRNYW55KEcpKX0sY2xlYXI6KCk9Pnt0aGlzLnVwZGF0ZUNvbXBsZXRlLnRoZW4oKCk9PnRoaXMuYWN0aXZpdHlsb2dFbGVtZW50Py5jbGVhcigpKX0sZ2V0RW50cmllczooKT0+dGhpcy5hY3Rpdml0eWxvZ0VsZW1lbnQ/LmdldEVudHJpZXMoKXx8W10sZmlsdGVyOkc9PnRoaXMuYWN0aXZpdHlsb2dFbGVtZW50Py5maWx0ZXIoRyl8fFtdLHNlYXJjaDpHPT50aGlzLmFjdGl2aXR5bG9nRWxlbWVudD8uc2VhcmNoKEcpfHxbXX19c2V0QWN0aXZpdHlMb2dWaXNpYmxlKEcpe3RoaXMuYWN0aXZpdHlMb2dWaXNpYmxlPUd9dG9nZ2xlQWN0aXZpdHlMb2coKXt0aGlzLmFjdGl2aXR5TG9nVmlzaWJsZT0hdGhpcy5hY3Rpdml0eUxvZ1Zpc2libGV9Z2V0QWN0aXZpdHlMb2dWaXNpYmxlKCl7cmV0dXJuIHRoaXMuYWN0aXZpdHlMb2dWaXNpYmxlfWdldCBib3R0b21CYXIoKXtyZXR1cm4gdGhpcy5ib3R0b21iYXJFbGVtZW50P3thZGRXaWRnZXQ6Rz0+dGhpcy5ib3R0b21iYXJFbGVtZW50LmFkZFdpZGdldChHKSx1cGRhdGVXaWRnZXQ6KEcsWCk9PnRoaXMuYm90dG9tYmFyRWxlbWVudC51cGRhdGVXaWRnZXQoRyxYKSxyZW1vdmVXaWRnZXQ6Rz0+dGhpcy5ib3R0b21iYXJFbGVtZW50LnJlbW92ZVdpZGdldChHKSxnZXRXaWRnZXQ6Rz0+dGhpcy5ib3R0b21iYXJFbGVtZW50LmdldFdpZGdldChHKSxjbGVhcldpZGdldHM6KCk9PnRoaXMuYm90dG9tYmFyRWxlbWVudC5jbGVhcldpZGdldHMoKSxhZGRBY3Rpb246Rz0+dGhpcy5ib3R0b21iYXJFbGVtZW50LmFkZEFjdGlvbihHKSxyZW1vdmVBY3Rpb246Rz0+dGhpcy5ib3R0b21iYXJFbGVtZW50LnJlbW92ZUFjdGlvbihHKSxjbGVhckFjdGlvbnM6KCk9PnRoaXMuYm90dG9tYmFyRWxlbWVudC5jbGVhckFjdGlvbnMoKX06e2FkZFdpZGdldDpHPT57dGhpcy51cGRhdGVDb21wbGV0ZS50aGVuKCgpPT50aGlzLmJvdHRvbWJhckVsZW1lbnQ/LmFkZFdpZGdldChHKSl9LHVwZGF0ZVdpZGdldDooRyxYKT0+e3RoaXMudXBkYXRlQ29tcGxldGUudGhlbigoKT0+dGhpcy5ib3R0b21iYXJFbGVtZW50Py51cGRhdGVXaWRnZXQoRyxYKSl9LHJlbW92ZVdpZGdldDpHPT57dGhpcy51cGRhdGVDb21wbGV0ZS50aGVuKCgpPT50aGlzLmJvdHRvbWJhckVsZW1lbnQ/LnJlbW92ZVdpZGdldChHKSl9LGdldFdpZGdldDpHPT50aGlzLmJvdHRvbWJhckVsZW1lbnQ/LmdldFdpZGdldChHKSxjbGVhcldpZGdldHM6KCk9Pnt0aGlzLnVwZGF0ZUNvbXBsZXRlLnRoZW4oKCk9PnRoaXMuYm90dG9tYmFyRWxlbWVudD8uY2xlYXJXaWRnZXRzKCkpfSxhZGRBY3Rpb246Rz0+e3RoaXMudXBkYXRlQ29tcGxldGUudGhlbigoKT0+dGhpcy5ib3R0b21iYXJFbGVtZW50Py5hZGRBY3Rpb24oRykpfSxyZW1vdmVBY3Rpb246Rz0+e3RoaXMudXBkYXRlQ29tcGxldGUudGhlbigoKT0+dGhpcy5ib3R0b21iYXJFbGVtZW50Py5yZW1vdmVBY3Rpb24oRykpfSxjbGVhckFjdGlvbnM6KCk9Pnt0aGlzLnVwZGF0ZUNvbXBsZXRlLnRoZW4oKCk9PnRoaXMuYm90dG9tYmFyRWxlbWVudD8uY2xlYXJBY3Rpb25zKCkpfX19c2V0Qm90dG9tQmFyVmlzaWJsZShHKXt0aGlzLmJvdHRvbWJhclZpc2libGU9RyxHP3RoaXMucmVtb3ZlQXR0cmlidXRlKCJib3R0b21iYXItaGlkZGVuIik6dGhpcy5zZXRBdHRyaWJ1dGUoImJvdHRvbWJhci1oaWRkZW4iLCIiKX1nZXRCb3R0b21CYXJWaXNpYmxlKCl7cmV0dXJuIHRoaXMuYm90dG9tYmFyVmlzaWJsZX1hc3luYyBuYXZpZ2F0ZVRvVmlldyhHLFgpe2xldCBTZT10aGlzLnZpZXdSZWdpc3RyeS5nZXQoRyk7aWYoIVNlKXJldHVybiBjb25zb2xlLndhcm4oYENhbm5vdCBuYXZpZ2F0ZSB0byB1bmtub3duIHZpZXc6ICR7R31gKSwhMTtsZXQgT3Q9YXdhaXQgdGhpcy52aWV3UmVnaXN0cnkuY2FuTGVhdmVDdXJyZW50VmlldygpO2lmKE90IT09ITApaWYodHlwZW9mIE90PT0ic3RyaW5nIil7aWYoIXdpbmRvdy5jb25maXJtKE90KSlyZXR1cm4hMX1lbHNlIHJldHVybiExO3RoaXMudmlld0xpZmVjeWNsZSQubmV4dCh7dHlwZToibG9hZGluZyIsdmlld0lkOkd9KTt0cnl7YXdhaXQgdGhpcy5sb2FkVmlldyhTZSxYKTtsZXQgSmw9YCMke1NlLnJvdXRlfHxHfWA7cmV0dXJuIHdpbmRvdy5sb2NhdGlvbi5oYXNoIT09SmwmJndpbmRvdy5oaXN0b3J5LnB1c2hTdGF0ZSh7dmlld0lkOkd9LCIiLEpsKSwhMH1jYXRjaChNYSl7cmV0dXJuIHRoaXMudmlld0xpZmVjeWNsZSQubmV4dCh7dHlwZToibG9hZEVycm9yIix2aWV3SWQ6RyxlcnJvcjpNYX0pLCExfX1nZXRDdXJyZW50Vmlldygpe3JldHVybiB0aGlzLmN1cnJlbnRWaWV3fWdldFZpZXdSZWdpc3RyeSgpe3JldHVybiB0aGlzLnZpZXdSZWdpc3RyeX1jb25maWd1cmUoRyl7Ry52aWV3cyYmKHRoaXMudmlld1JlZ2lzdHJ5LmNsZWFyKCksdGhpcy52aWV3UmVnaXN0cnkucmVnaXN0ZXJBbGwoRy52aWV3cykpLEcuYnJhbmRpbmcmJih0aGlzLm1haW5tZW51TG9nb0ljb249Ry5icmFuZGluZy5sb2dvSWNvbnx8IiIsdGhpcy5tYWlubWVudUxvZ29UZXh0PUcuYnJhbmRpbmcubG9nb1RleHR8fCIiKSxHLmFwcEJhciYmKHRoaXMuYXBwYmFyTWVudUl0ZW1zPUcuYXBwQmFyLm1lbnVJdGVtc3x8W10sdGhpcy5hcHBiYXJCcmVhZGNydW1icz1HLmFwcEJhci5icmVhZGNydW1ic3x8IiIsdGhpcy5hcHBiYXJCcmVhZGNydW1iU2VwYXJhdG9yPUcuYXBwQmFyLmJyZWFkY3J1bWJTZXBhcmF0b3J8fCIgPiAiLHRoaXMuYXBwYmFyU2hvd1dpbmRvd0NvbnRyb2xzPUcuYXBwQmFyLnNob3dXaW5kb3dDb250cm9scz8/ITAsdGhpcy5hcHBiYXJTaG93U2VhcmNoPUcuYXBwQmFyLnNob3dTZWFyY2g/PyExLHRoaXMuYXBwYmFyVXNlcj1HLmFwcEJhci51c2VyLHRoaXMuYXBwYmFyUHJvZmlsZU1lbnVJdGVtcz1HLmFwcEJhci5wcm9maWxlTWVudUl0ZW1zfHxbXSksRy5tYWluTWVudSYmKEcubWFpbk1lbnUuc2VjdGlvbnM/dGhpcy5tYWlubWVudUdyb3Vwcz10aGlzLmJ1aWxkTWFpbk1lbnVGcm9tU2VjdGlvbnMoRyk6Ry5tYWluTWVudS5ncm91cHMmJih0aGlzLm1haW5tZW51R3JvdXBzPUcubWFpbk1lbnUuZ3JvdXBzKSxHLm1haW5NZW51LmxvZ29JY29uJiYodGhpcy5tYWlubWVudUxvZ29JY29uPUcubWFpbk1lbnUubG9nb0ljb24pLEcubWFpbk1lbnUubG9nb1RleHQmJih0aGlzLm1haW5tZW51TG9nb1RleHQ9Ry5tYWluTWVudS5sb2dvVGV4dCksRy5tYWluTWVudS5ib3R0b21UYWJzP3RoaXMubWFpbm1lbnVCb3R0b21UYWJzPUcubWFpbk1lbnUuYm90dG9tVGFiczpHLm1haW5NZW51LmJvdHRvbUl0ZW1zJiYodGhpcy5tYWlubWVudUJvdHRvbVRhYnM9dGhpcy5idWlsZEJvdHRvbVRhYnNGcm9tSXRlbXMoRy5tYWluTWVudS5ib3R0b21JdGVtcykpKSxHLmJvdHRvbUJhciYmKHRoaXMuc2V0Qm90dG9tQmFyVmlzaWJsZShHLmJvdHRvbUJhci52aXNpYmxlPz8hMCksRy5ib3R0b21CYXIud2lkZ2V0cyYmRy5ib3R0b21CYXIud2lkZ2V0cy5mb3JFYWNoKFg9Pnt0aGlzLmJvdHRvbUJhci5hZGRXaWRnZXQoWCl9KSxHLmJvdHRvbUJhci5hY3Rpb25zJiZHLmJvdHRvbUJhci5hY3Rpb25zLmZvckVhY2goWD0+e3RoaXMuYm90dG9tQmFyLmFkZEFjdGlvbihYKX0pKSx0aGlzLnNldHVwUm91dGVySW50ZWdyYXRpb24oRyksRy5vblZpZXdDaGFuZ2UmJnRoaXMudmlld0NoYW5nZWQkLnN1YnNjcmliZShYPT57Ry5vblZpZXdDaGFuZ2UoWC52aWV3SWQsWC52aWV3KX0pLEcub25TZWFyY2gmJih0aGlzLnNlYXJjaENhbGxiYWNrPUcub25TZWFyY2gpLEcuZGVmYXVsdFZpZXcmJnRoaXMubmF2aWdhdGVUb1ZpZXcoRy5kZWZhdWx0Vmlldyl9c2V0dXBSb3V0ZXJJbnRlZ3JhdGlvbihHKXtsZXQgWD0oKT0+e2xldCBPdD13aW5kb3cubG9jYXRpb24uaGFzaC5zbGljZSgxKTtpZighT3QpcmV0dXJuO2xldCBNYT10aGlzLnZpZXdSZWdpc3RyeS5maW5kQnlSb3V0ZShPdCk7TWEmJnRoaXMubmF2aWdhdGVUb1ZpZXcoTWEudmlldy5pZCxNYS5wYXJhbXMpfTt3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigiaGFzaGNoYW5nZSIsWCksdGhpcy5yb3V0ZXJDbGVhbnVwPSgpPT57d2luZG93LnJlbW92ZUV2ZW50TGlzdGVuZXIoImhhc2hjaGFuZ2UiLFgpfTtsZXQgU2U9d2luZG93LmxvY2F0aW9uLmhhc2guc2xpY2UoMSk7aWYoU2Upe2xldCBPdD10aGlzLnZpZXdSZWdpc3RyeS5maW5kQnlSb3V0ZShTZSk7T3QmJnNldFRpbWVvdXQoKCk9PnRoaXMubmF2aWdhdGVUb1ZpZXcoT3Qudmlldy5pZCxPdC5wYXJhbXMpLDApfX1idWlsZE1haW5NZW51RnJvbVNlY3Rpb25zKEcpe3JldHVybiBHLm1haW5NZW51Py5zZWN0aW9ucz9HLm1haW5NZW51LnNlY3Rpb25zLm1hcChYPT4oe25hbWU6WC5uYW1lLGl0ZW1zOlgudmlld3MubWFwKFNlPT57bGV0IE90PXRoaXMudmlld1JlZ2lzdHJ5LmdldChTZSk7cmV0dXJuIE90P3trZXk6T3QuaWQsaWNvbk5hbWU6T3QuaWNvbk5hbWUsYWN0aW9uOigpPT50aGlzLm5hdmlnYXRlVG9WaWV3KFNlKSxiYWRnZTpPdC5iYWRnZX06KGNvbnNvbGUud2FybihgVmlldyAiJHtTZX0iIG5vdCBmb3VuZCBpbiByZWdpc3RyeWApLG51bGwpfSkuZmlsdGVyKEJvb2xlYW4pfSkpOltdfWJ1aWxkQm90dG9tVGFic0Zyb21JdGVtcyhHKXtyZXR1cm4gRy5tYXAoWD0+e2xldCBTZT10aGlzLnZpZXdSZWdpc3RyeS5nZXQoWCk7cmV0dXJuIFNlP3trZXk6U2UuaWQsaWNvbk5hbWU6U2UuaWNvbk5hbWUsYWN0aW9uOigpPT50aGlzLm5hdmlnYXRlVG9WaWV3KFgpfTooY29uc29sZS53YXJuKGBWaWV3ICIke1h9IiBub3QgZm91bmQgaW4gcmVnaXN0cnlgKSxudWxsKX0pLmZpbHRlcihCb29sZWFuKX1hc3luYyBsb2FkVmlldyhHLFgpe2xldCBTZT10aGlzLmN1cnJlbnRWaWV3O3RoaXMuY3VycmVudFZpZXc9RztsZXQgT3Q9dGhpcy5tYWluY29udGVudD8ucXVlcnlTZWxlY3RvcigiLnZpZXctY29udGFpbmVyIil8fHRoaXMuc2hhZG93Um9vdD8ucXVlcnlTZWxlY3RvcigiLnZpZXctY29udGFpbmVyIik7aWYoT3Qpe2xldCBKbD1hd2FpdCB0aGlzLnZpZXdSZWdpc3RyeS5hY3RpdmF0ZVZpZXcoRy5pZCxPdCxYKTtKbCYmdGhpcy52aWV3TGlmZWN5Y2xlJC5uZXh0KHt0eXBlOiJhY3RpdmF0ZWQiLHZpZXdJZDpHLmlkLGVsZW1lbnQ6SmwscGFyYW1zOlh9KX1HLnNlY29uZGFyeU1lbnUmJih0aGlzLnNlY29uZGFyeW1lbnVHcm91cHM9Ry5zZWNvbmRhcnlNZW51LHRoaXMuc2Vjb25kYXJ5bWVudUhlYWRpbmc9Ry5uYW1lKSxHLmNvbnRlbnRUYWJzJiYodGhpcy5tYWluY29udGVudFRhYnM9Ry5jb250ZW50VGFicyksdGhpcy5zZXRNYWluTWVudVNlbGVjdGlvbihHLmlkKTtsZXQgTWE9e3ZpZXdJZDpHLmlkLHZpZXc6RyxwcmV2aW91c1ZpZXc6U2UscGFyYW1zOlh9O3RoaXMudmlld0NoYW5nZWQkLm5leHQoTWEpLHRoaXMuZGlzcGF0Y2hFdmVudChuZXcgQ3VzdG9tRXZlbnQoInZpZXctY2hhbmdlIix7ZGV0YWlsOk1hLGJ1YmJsZXM6ITAsY29tcG9zZWQ6ITB9KSl9aGFuZGxlQXBwYmFyTWVudVNlbGVjdChHKXt0aGlzLmRpc3BhdGNoRXZlbnQobmV3IEN1c3RvbUV2ZW50KCJhcHBiYXItbWVudS1zZWxlY3QiLHtkZXRhaWw6Ry5kZXRhaWwsYnViYmxlczohMCxjb21wb3NlZDohMH0pKX1oYW5kbGVBcHBiYXJCcmVhZGNydW1iTmF2aWdhdGUoRyl7dGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBDdXN0b21FdmVudCgiYXBwYmFyLWJyZWFkY3J1bWItbmF2aWdhdGUiLHtkZXRhaWw6Ry5kZXRhaWwsYnViYmxlczohMCxjb21wb3NlZDohMH0pKX1oYW5kbGVBcHBiYXJTZWFyY2hDbGljaygpe3RoaXMuZGlzcGF0Y2hFdmVudChuZXcgQ3VzdG9tRXZlbnQoImFwcGJhci1zZWFyY2gtY2xpY2siLHtidWJibGVzOiEwLGNvbXBvc2VkOiEwfSkpfWhhbmRsZUFwcGJhclNlYXJjaFF1ZXJ5KEcpe3RoaXMuc2VhcmNoQ2FsbGJhY2smJnRoaXMuc2VhcmNoQ2FsbGJhY2soRy5kZXRhaWwucXVlcnkpLHRoaXMuZGlzcGF0Y2hFdmVudChuZXcgQ3VzdG9tRXZlbnQoInNlYXJjaC1xdWVyeSIse2RldGFpbDpHLmRldGFpbCxidWJibGVzOiEwLGNvbXBvc2VkOiEwfSkpfWhhbmRsZUFwcGJhclVzZXJNZW51T3Blbigpe3RoaXMuZGlzcGF0Y2hFdmVudChuZXcgQ3VzdG9tRXZlbnQoImFwcGJhci11c2VyLW1lbnUtb3BlbiIse2J1YmJsZXM6ITAsY29tcG9zZWQ6ITB9KSl9aGFuZGxlQXBwYmFyUHJvZmlsZU1lbnVTZWxlY3QoRyl7dGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBDdXN0b21FdmVudCgiYXBwYmFyLXByb2ZpbGUtbWVudS1zZWxlY3QiLHtkZXRhaWw6Ry5kZXRhaWwsYnViYmxlczohMCxjb21wb3NlZDohMH0pKX1oYW5kbGVNYWlubWVudVRhYlNlbGVjdChHKXt0aGlzLm1haW5tZW51U2VsZWN0ZWRUYWI9Ry5kZXRhaWwudGFiLHRoaXMuZGlzcGF0Y2hFdmVudChuZXcgQ3VzdG9tRXZlbnQoIm1haW5tZW51LXRhYi1zZWxlY3QiLHtkZXRhaWw6Ry5kZXRhaWwsYnViYmxlczohMCxjb21wb3NlZDohMH0pKX1oYW5kbGVTZWNvbmRhcnltZW51SXRlbVNlbGVjdChHKXt0aGlzLnNlY29uZGFyeW1lbnVTZWxlY3RlZEl0ZW09Ry5kZXRhaWwuaXRlbSx0aGlzLmRpc3BhdGNoRXZlbnQobmV3IEN1c3RvbUV2ZW50KCJzZWNvbmRhcnltZW51LWl0ZW0tc2VsZWN0Iix7ZGV0YWlsOkcuZGV0YWlsLGJ1YmJsZXM6ITAsY29tcG9zZWQ6ITB9KSl9aGFuZGxlTWFpbm1lbnVDb2xsYXBzZUNoYW5nZShHKXt0aGlzLm1haW5tZW51Q29sbGFwc2VkPUcuZGV0YWlsLmNvbGxhcHNlZCx0aGlzLmRpc3BhdGNoRXZlbnQobmV3IEN1c3RvbUV2ZW50KCJtYWlubWVudS1jb2xsYXBzZS1jaGFuZ2UiLHtkZXRhaWw6Ry5kZXRhaWwsYnViYmxlczohMCxjb21wb3NlZDohMH0pKX1oYW5kbGVTZWNvbmRhcnltZW51Q29sbGFwc2VDaGFuZ2UoRyl7dGhpcy5zZWNvbmRhcnltZW51Q29sbGFwc2VkPUcuZGV0YWlsLmNvbGxhcHNlZCx0aGlzLmRpc3BhdGNoRXZlbnQobmV3IEN1c3RvbUV2ZW50KCJzZWNvbmRhcnltZW51LWNvbGxhcHNlLWNoYW5nZSIse2RldGFpbDpHLmRldGFpbCxidWJibGVzOiEwLGNvbXBvc2VkOiEwfSkpfWhhbmRsZUNvbnRlbnRUYWJTZWxlY3QoRyl7dGhpcy5tYWluY29udGVudFNlbGVjdGVkVGFiPUcuZGV0YWlsLnRhYix0aGlzLmRpc3BhdGNoRXZlbnQobmV3IEN1c3RvbUV2ZW50KCJjb250ZW50LXRhYi1zZWxlY3QiLHtkZXRhaWw6Ry5kZXRhaWwsYnViYmxlczohMCxjb21wb3NlZDohMH0pKX1oYW5kbGVDb250ZW50VGFiQ2xvc2UoRyl7dGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBDdXN0b21FdmVudCgiY29udGVudC10YWItY2xvc2UiLHtkZXRhaWw6Ry5kZXRhaWwsYnViYmxlczohMCxjb21wb3NlZDohMH0pKX1zdGF0aWN7SGUoaSxhKX19O3JldHVybiBwVT1pfSkoKX0pO3ZhciBoZnQ9YigoKT0+e2RmdCgpO2lWKCl9KTt2YXIgcGZ0PWIoKCk9PntvVigpfSk7dmFyIHVmdD1iKCgpPT57clYoKX0pO3ZhciBmZnQ9YigoKT0+e3NWKCl9KTt2YXIgbWZ0PWIoKCk9PntDcSgpfSk7dmFyIGdmdD1iKCgpPT57blYoKX0pO3ZhciBLeCxpNCxiZnQsdmZ0PWIoKCk9PntzMigpO3VpKCk7ZGEoKTt1ZSgpO0xzKCk7RHQoKTtxZSgpO0t4PWZ1bmN0aW9uKHQsZSxhLGkscixzKXtmdW5jdGlvbiBuKHgpe2lmKHghPT12b2lkIDAmJnR5cGVvZiB4IT0iZnVuY3Rpb24iKXRocm93IG5ldyBUeXBlRXJyb3IoIkZ1bmN0aW9uIGV4cGVjdGVkIik7cmV0dXJuIHh9Zm9yKHZhciBvPWkua2luZCxkPW89PT0iZ2V0dGVyIj8iZ2V0IjpvPT09InNldHRlciI/InNldCI6InZhbHVlIixjPSFlJiZ0P2kuc3RhdGljP3Q6dC5wcm90b3R5cGU6bnVsbCxoPWV8fChjP09iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoYyxpLm5hbWUpOnt9KSxsLGY9ITEsZz1hLmxlbmd0aC0xO2c+PTA7Zy0tKXt2YXIgeT17fTtmb3IodmFyIHYgaW4gaSl5W3ZdPXY9PT0iYWNjZXNzIj97fTppW3ZdO2Zvcih2YXIgdiBpbiBpLmFjY2Vzcyl5LmFjY2Vzc1t2XT1pLmFjY2Vzc1t2XTt5LmFkZEluaXRpYWxpemVyPWZ1bmN0aW9uKHgpe2lmKGYpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGFkZCBpbml0aWFsaXplcnMgYWZ0ZXIgZGVjb3JhdGlvbiBoYXMgY29tcGxldGVkIik7cy5wdXNoKG4oeHx8bnVsbCkpfTt2YXIgbT0oMCxhW2ddKShvPT09ImFjY2Vzc29yIj97Z2V0OmguZ2V0LHNldDpoLnNldH06aFtkXSx5KTtpZihvPT09ImFjY2Vzc29yIil7aWYobT09PXZvaWQgMCljb250aW51ZTtpZihtPT09bnVsbHx8dHlwZW9mIG0hPSJvYmplY3QiKXRocm93IG5ldyBUeXBlRXJyb3IoIk9iamVjdCBleHBlY3RlZCIpOyhsPW4obS5nZXQpKSYmKGguZ2V0PWwpLChsPW4obS5zZXQpKSYmKGguc2V0PWwpLChsPW4obS5pbml0KSkmJnIudW5zaGlmdChsKX1lbHNlKGw9bihtKSkmJihvPT09ImZpZWxkIj9yLnVuc2hpZnQobCk6aFtkXT1sKX1jJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoYyxpLm5hbWUsaCksZj0hMH0saTQ9ZnVuY3Rpb24odCxlLGEpe2Zvcih2YXIgaT1hcmd1bWVudHMubGVuZ3RoPjIscj0wO3I8ZS5sZW5ndGg7cisrKWE9aT9lW3JdLmNhbGwodCxhKTplW3JdLmNhbGwodCk7cmV0dXJuIGk/YTp2b2lkIDB9LGJmdD0oKCk9PntsZXQgdD1bcGUoImRlZXMtbW9iaWxlbmF2aWdhdGlvbiIpXSxlLGE9W10saSxyPXhlLHMsbj1bXSxvPVtdLGQsYz1bXSxoPVtdLGwsZj1bXSxnPVtdO3ZhciB5PWNsYXNzIGV4dGVuZHMgcntzdGF0aWN7aT10aGlzfXN0YXRpY3tsZXQgdj10eXBlb2YgU3ltYm9sPT0iZnVuY3Rpb24iJiZTeW1ib2wubWV0YWRhdGE/T2JqZWN0LmNyZWF0ZShyW1N5bWJvbC5tZXRhZGF0YV0/P251bGwpOnZvaWQgMDtzPVtJKHt0eXBlOlN0cmluZ30pXSxkPVtJKHt0eXBlOkFycmF5fSldLGw9W0ooKV0sS3godGhpcyxudWxsLHMse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJoZWFkaW5nIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczptPT4iaGVhZGluZyJpbiBtLGdldDptPT5tLmhlYWRpbmcsc2V0OihtLHgpPT57bS5oZWFkaW5nPXh9fSxtZXRhZGF0YTp2fSxuLG8pLEt4KHRoaXMsbnVsbCxkLHtraW5kOiJhY2Nlc3NvciIsbmFtZToibWVudUl0ZW1zIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczptPT4ibWVudUl0ZW1zImluIG0sZ2V0Om09Pm0ubWVudUl0ZW1zLHNldDoobSx4KT0+e20ubWVudUl0ZW1zPXh9fSxtZXRhZGF0YTp2fSxjLGgpLEt4KHRoaXMsbnVsbCxsLHtraW5kOiJhY2Nlc3NvciIsbmFtZToibW9iaWxlTmF2WkluZGV4IixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczptPT4ibW9iaWxlTmF2WkluZGV4ImluIG0sZ2V0Om09Pm0ubW9iaWxlTmF2WkluZGV4LHNldDoobSx4KT0+e20ubW9iaWxlTmF2WkluZGV4PXh9fSxtZXRhZGF0YTp2fSxmLGcpLEt4KG51bGwsZT17dmFsdWU6aX0sdCx7a2luZDoiY2xhc3MiLG5hbWU6aS5uYW1lLG1ldGFkYXRhOnZ9LG51bGwsYSkseT1pPWUudmFsdWUsdiYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGksU3ltYm9sLm1ldGFkYXRhLHtlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMCx2YWx1ZTp2fSl9c3RhdGljIGRlbW9Hcm91cHM9WyJBcHAgVUkiXTtzdGF0aWMgZGVtbz0oKT0+d2AKICAgIDxkZWVzLWJ1dHRvbiBAY2xpY2s9JHsoKT0+e3kuY3JlYXRlQW5kU2hvdyhbe25hbWU6IkRhc2hib2FyZCIsaWNvbk5hbWU6Imx1Y2lkZTpsYXlvdXQtZGFzaGJvYXJkIixhY3Rpb246YXN5bmMgdj0+KGNvbnNvbGUubG9nKCJOYXZpZ2F0ZSB0byBkYXNoYm9hcmQiKSxudWxsKX0se25hbWU6IlByb2ZpbGUiLGljb25OYW1lOiJsdWNpZGU6dXNlciIsYWN0aW9uOmFzeW5jIHY9Pihjb25zb2xlLmxvZygiTmF2aWdhdGUgdG8gcHJvZmlsZSIpLG51bGwpfSx7bmFtZToiU2V0dGluZ3MiLGljb25OYW1lOiJsdWNpZGU6c2V0dGluZ3MiLGFjdGlvbjphc3luYyB2PT4oY29uc29sZS5sb2coIk5hdmlnYXRlIHRvIHNldHRpbmdzIiksbnVsbCl9LHtkaXZpZGVyOiEwfSx7bmFtZToiSGVscCIsaWNvbk5hbWU6Imx1Y2lkZTpoZWxwLWNpcmNsZSIsYWN0aW9uOmFzeW5jIHY9Pihjb25zb2xlLmxvZygiU2hvdyBoZWxwIiksbnVsbCl9LHtuYW1lOiJTaWduIE91dCIsaWNvbk5hbWU6Imx1Y2lkZTpsb2ctb3V0IixhY3Rpb246YXN5bmMgdj0+KGNvbnNvbGUubG9nKCJTaWduIG91dCIpLG51bGwpfV0pfX0+T3BlbiBNb2JpbGUgTmF2aWdhdGlvbjwvZGVlcy1idXR0b24+CiAgYDtzdGF0aWMgc2luZ2xldG9uUmVmO3N0YXRpYyBhc3luYyBjcmVhdGVBbmRTaG93KHYpe3JldHVybiB0aGlzLnNpbmdsZXRvblJlZnx8KHRoaXMuc2luZ2xldG9uUmVmPW5ldyB5LGRvY3VtZW50LmJvZHkuYXBwZW5kKHRoaXMuc2luZ2xldG9uUmVmKSxhd2FpdCB0aGlzLnNpbmdsZXRvblJlZi5pbml0KCkpLHRoaXMuc2luZ2xldG9uUmVmLm1lbnVJdGVtcz12LGF3YWl0IHRoaXMuc2luZ2xldG9uUmVmLnJlYWR5RGVmZXJyZWQucHJvbWlzZSx0aGlzLnNpbmdsZXRvblJlZi5zaG93KCksdGhpcy5zaW5nbGV0b25SZWZ9I2U9aTQodGhpcyxuLCJNZW51Iik7Z2V0IGhlYWRpbmcoKXtyZXR1cm4gdGhpcy4jZX1zZXQgaGVhZGluZyh2KXt0aGlzLiNlPXZ9I3Q9KGk0KHRoaXMsbyksaTQodGhpcyxjLFtdKSk7Z2V0IG1lbnVJdGVtcygpe3JldHVybiB0aGlzLiN0fXNldCBtZW51SXRlbXModil7dGhpcy4jdD12fSNhPShpNCh0aGlzLGgpLGk0KHRoaXMsZiwxZTMpKTtnZXQgbW9iaWxlTmF2WkluZGV4KCl7cmV0dXJuIHRoaXMuI2F9c2V0IG1vYmlsZU5hdlpJbmRleCh2KXt0aGlzLiNhPXZ9cmVhZHlEZWZlcnJlZD0oaTQodGhpcyxnKSxydC5wbHVnaW5zLnNtYXJ0cHJvbWlzZS5kZWZlcigpKTtjb25zdHJ1Y3Rvcigpe3N1cGVyKCl9YXN5bmMgaW5pdCgpe2F3YWl0IHRoaXMudXBkYXRlQ29tcGxldGUsdGhpcy5yZWFkeURlZmVycmVkLnJlc29sdmUoKX1zdGF0aWMgc3R5bGVzPVtDZSxwLmRlZmF1bHRTdHlsZXMsUWAKICAgICAgLyogVE9ETzogTWlncmF0ZSBoYXJkY29kZWQgdmFsdWVzIHRvIC0tZGVlcy0qIENTUyB2YXJpYWJsZXMgKi8KICAgICAgOmhvc3QgewogICAgICAgIGZvbnQtZmFtaWx5OiAke0p0fTsKICAgICAgfQoKICAgICAgLm1haW4gewogICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjNzIGN1YmljLWJlemllcigwLjQsIDAsIDAuMiwgMSk7CiAgICAgICAgd2lsbC1jaGFuZ2U6IHRyYW5zZm9ybTsKICAgICAgICBwb3NpdGlvbjogZml4ZWQ7CiAgICAgICAgaGVpZ2h0OiAxMDB2aDsKICAgICAgICB3aWR0aDogMTAwJTsKICAgICAgICBtYXgtd2lkdGg6IDMyMHB4OwogICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgxMDAlKTsKICAgICAgICBjb2xvcjogJHtwLmJkVGhlbWUoIiMwOTA5MGIiLCIjZmFmYWZhIil9OwogICAgICAgIHotaW5kZXg6IHZhcigtLXotaW5kZXgpOwogICAgICAgIG9wYWNpdHk6IDA7CiAgICAgICAgcmlnaHQ6IDBweDsKICAgICAgICB0b3A6IDBweDsKICAgICAgICBib3R0b206IDBweDsKICAgICAgICBiYWNrZ3JvdW5kOiAke3AuYmRUaGVtZSgiI2ZmZmZmZiIsIiMwOTA5MGIiKX07CiAgICAgICAgYm9yZGVyLWxlZnQ6IDFweCBzb2xpZCAke3AuYmRUaGVtZSgiI2U1ZTdlYiIsIiMyNzI3MmEiKX07CiAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7CiAgICAgICAgYm94LXNoYWRvdzogJHtwLmJkVGhlbWUoIi0yMHB4IDAgMjVweCAtNXB4IHJnYmEoMCwgMCwgMCwgMC4xKSwgLTEwcHggMCAxMHB4IC01cHggcmdiYSgwLCAwLCAwLCAwLjA0KSIsIi0yMHB4IDAgMjVweCAtNXB4IHJnYmEoMCwgMCwgMCwgMC4zKSwgLTEwcHggMCAxMHB4IC01cHggcmdiYSgwLCAwLCAwLCAwLjIpIil9OwogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgfQoKICAgICAgLm1haW4uc2hvdyB7CiAgICAgICAgcG9pbnRlci1ldmVudHM6IGFsbDsKICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMHB4KTsKICAgICAgICBvcGFjaXR5OiAxOwogICAgICB9CgogICAgICAuaGVhZGVyIHsKICAgICAgICBwYWRkaW5nOiAyNHB4OwogICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAke3AuYmRUaGVtZSgiI2U1ZTdlYiIsIiMyNzI3MmEiKX07CiAgICAgIH0KCiAgICAgIC5oZWFkaW5nIHsKICAgICAgICBmb250LXNpemU6IDE4cHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDsKICAgICAgICBsZXR0ZXItc3BhY2luZzogLTAuMDJlbTsKICAgICAgICBjb2xvcjogJHtwLmJkVGhlbWUoIiMwOTA5MGIiLCIjZmFmYWZhIil9OwogICAgICAgIG1hcmdpbjogMDsKICAgICAgfQoKICAgICAgLm1lbnUtY29udGFpbmVyIHsKICAgICAgICBmbGV4OiAxOwogICAgICAgIG92ZXJmbG93LXk6IGF1dG87CiAgICAgICAgcGFkZGluZzogOHB4OwogICAgICB9CgogICAgICAubWVudUl0ZW0gewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBnYXA6IDEycHg7CiAgICAgICAgcGFkZGluZzogMTJweCAxNnB4OwogICAgICAgIG1hcmdpbi1ib3R0b206IDJweDsKICAgICAgICBib3JkZXItcmFkaXVzOiA2cHg7CiAgICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7CiAgICAgICAgY3Vyc29yOiBwb2ludGVyOwogICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjE1cyBlYXNlOwogICAgICAgIGNvbG9yOiAke3AuYmRUaGVtZSgiIzcxNzE3YSIsIiNhMWExYWEiKX07CiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICAgIHVzZXItc2VsZWN0OiBub25lOwogICAgICB9CgogICAgICAubWVudUl0ZW06aG92ZXIgewogICAgICAgIGJhY2tncm91bmQ6ICR7cC5iZFRoZW1lKCIjZjRmNGY1IiwiIzI3MjcyYSIpfTsKICAgICAgICBjb2xvcjogJHtwLmJkVGhlbWUoIiMwOTA5MGIiLCIjZmFmYWZhIil9OwogICAgICB9CgogICAgICAubWVudUl0ZW06YWN0aXZlIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke3AuYmRUaGVtZSgiI2U1ZTdlYiIsIiMzZjNmNDYiKX07CiAgICAgICAgdHJhbnNmb3JtOiBzY2FsZSgwLjk4KTsKICAgICAgfQoKICAgICAgLm1lbnVJdGVtIGRlZXMtaWNvbiB7CiAgICAgICAgZmxleC1zaHJpbms6IDA7CiAgICAgICAgY29sb3I6ICR7cC5iZFRoZW1lKCIjNzE3MTdhIiwiIzcxNzE3YSIpfTsKICAgICAgICB0cmFuc2l0aW9uOiBjb2xvciAwLjE1cyBlYXNlOwogICAgICB9CgogICAgICAubWVudUl0ZW06aG92ZXIgZGVlcy1pY29uIHsKICAgICAgICBjb2xvcjogJHtwLmJkVGhlbWUoIiMwOTA5MGIiLCIjZmFmYWZhIil9OwogICAgICB9CgogICAgICAubWVudUl0ZW0tdGV4dCB7CiAgICAgICAgZmxleDogMTsKICAgICAgICBsZXR0ZXItc3BhY2luZzogLTAuMDFlbTsKICAgICAgfQoKICAgICAgLm1lbnVJdGVtLWRpdmlkZXIgewogICAgICAgIGhlaWdodDogMXB4OwogICAgICAgIGJhY2tncm91bmQ6ICR7cC5iZFRoZW1lKCIjZTVlN2ViIiwiIzI3MjcyYSIpfTsKICAgICAgICBtYXJnaW46IDhweCAxNnB4OwogICAgICB9CgogICAgICAvKiBNb2JpbGUgcmVzcG9uc2l2ZW5lc3MgKi8KICAgICAgQG1lZGlhIChtYXgtd2lkdGg6IDQwMHB4KSB7CiAgICAgICAgLm1haW4gewogICAgICAgICAgbWF4LXdpZHRoOiAxMDB2dzsKICAgICAgICAgIHdpZHRoOiA4NXZ3OwogICAgICAgIH0KICAgICAgfQoKICAgICAgLyogQW5pbWF0aW9uIGZvciBtZW51IGl0ZW1zICovCiAgICAgIEBrZXlmcmFtZXMgc2xpZGVJblJpZ2h0IHsKICAgICAgICBmcm9tIHsKICAgICAgICAgIG9wYWNpdHk6IDA7CiAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMjBweCk7CiAgICAgICAgfQogICAgICAgIHRvIHsKICAgICAgICAgIG9wYWNpdHk6IDE7CiAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMCk7CiAgICAgICAgfQogICAgICB9CgogICAgICAubWFpbi5zaG93IC5tZW51SXRlbSB7CiAgICAgICAgYW5pbWF0aW9uOiBzbGlkZUluUmlnaHQgMC4zcyBlYXNlLW91dCBmb3J3YXJkczsKICAgICAgICBhbmltYXRpb24tZGVsYXk6IGNhbGModmFyKC0taXRlbS1pbmRleCwgMCkgKiAwLjA1cyk7CiAgICAgICAgb3BhY2l0eTogMDsKICAgICAgfQoKICAgICAgLyogU2Nyb2xsYmFyIHN0eWxpbmcgKi8KICAgICAgLm1lbnUtY29udGFpbmVyOjotd2Via2l0LXNjcm9sbGJhciB7CiAgICAgICAgd2lkdGg6IDZweDsKICAgICAgfQoKICAgICAgLm1lbnUtY29udGFpbmVyOjotd2Via2l0LXNjcm9sbGJhci10cmFjayB7CiAgICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7CiAgICAgIH0KCiAgICAgIC5tZW51LWNvbnRhaW5lcjo6LXdlYmtpdC1zY3JvbGxiYXItdGh1bWIgewogICAgICAgIGJhY2tncm91bmQ6ICR7cC5iZFRoZW1lKCIjZTVlN2ViIiwiIzNmM2Y0NiIpfTsKICAgICAgICBib3JkZXItcmFkaXVzOiAzcHg7CiAgICAgIH0KCiAgICAgIC5tZW51LWNvbnRhaW5lcjo6LXdlYmtpdC1zY3JvbGxiYXItdGh1bWI6aG92ZXIgewogICAgICAgIGJhY2tncm91bmQ6ICR7cC5iZFRoZW1lKCIjZDFkNWRiIiwiIzUyNTI1YiIpfTsKICAgICAgfQogICAgYF07cmVuZGVyKCl7cmV0dXJuIHdgCiAgICAgIDxzdHlsZT4KICAgICAgICAubWFpbiB7CiAgICAgICAgICAtLXotaW5kZXg6ICR7dGhpcy5tb2JpbGVOYXZaSW5kZXh9OwogICAgICAgIH0KICAgICAgPC9zdHlsZT4KICAgICAgPGRpdiBjbGFzcz0ibWFpbiI+CiAgICAgICAgPGRpdiBjbGFzcz0iaGVhZGVyIj4KICAgICAgICAgIDxoMiBjbGFzcz0iaGVhZGluZyI+JHt0aGlzLmhlYWRpbmd9PC9oMj4KICAgICAgICA8L2Rpdj4KICAgICAgICA8ZGl2IGNsYXNzPSJtZW51LWNvbnRhaW5lciI+CiAgICAgICAgICAke3RoaXMubWVudUl0ZW1zLm1hcCgodixtKT0+ImRpdmlkZXIiaW4gdiYmdi5kaXZpZGVyP3dgPGRpdiBjbGFzcz0ibWVudUl0ZW0tZGl2aWRlciI+PC9kaXY+YDp3YAogICAgICAgICAgICAgIDxkaXYKICAgICAgICAgICAgICAgIGNsYXNzPSJtZW51SXRlbSIKICAgICAgICAgICAgICAgIHN0eWxlPSItLWl0ZW0taW5kZXg6ICR7bX0iCiAgICAgICAgICAgICAgICBAY2xpY2s9IiR7KCk9Pnt0aGlzLmhpZGUoKSx2LmFjdGlvbih0aGlzKX19IgogICAgICAgICAgICAgID4KICAgICAgICAgICAgICAgICR7di5pY29uTmFtZT93YAogICAgICAgICAgICAgICAgICA8ZGVlcy1pY29uIC5pY29uPSR7di5pY29uTmFtZX0gc2l6ZT0iMjAiPjwvZGVlcy1pY29uPgogICAgICAgICAgICAgICAgYDoiIn0KICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJtZW51SXRlbS10ZXh0Ij4ke3YubmFtZX08L3NwYW4+CiAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIGApfQogICAgICAgIDwvZGl2PgogICAgICA8L2Rpdj4KICAgIGB9d2luZG93TGF5ZXI7YXN5bmMgc2hvdygpe2xldCB2PWF3YWl0IHRoaXMuZG9tdG9vbHNQcm9taXNlLG09dGhpcy5zaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3IoIi5tYWluIik7dGhpcy53aW5kb3dMYXllcj8oZG9jdW1lbnQuYm9keS5hcHBlbmQodGhpcy53aW5kb3dMYXllciksYXdhaXQgdGhpcy53aW5kb3dMYXllci5zaG93KCkpOih0aGlzLndpbmRvd0xheWVyPWF3YWl0IGZpLmNyZWF0ZUFuZFNob3coe2JsdXI6ITB9KSx0aGlzLndpbmRvd0xheWVyLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIiwoKT0+e3RoaXMuaGlkZSgpfSkpLHRoaXMubW9iaWxlTmF2WkluZGV4PWgxLmdldE5leHRaSW5kZXgoKSxoMS5yZWdpc3Rlcih0aGlzLHRoaXMubW9iaWxlTmF2WkluZGV4KSxhd2FpdCB2LmNvbnZlbmllbmNlLnNtYXJ0ZGVsYXkuZGVsYXlGb3IoMTApLG0uY2xhc3NMaXN0LmFkZCgic2hvdyIpfWFzeW5jIGhpZGUoKXtsZXQgdj1hd2FpdCB0aGlzLmRvbXRvb2xzUHJvbWlzZTt0aGlzLnNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvcigiLm1haW4iKS5jbGFzc0xpc3QucmVtb3ZlKCJzaG93IiksaDEudW5yZWdpc3Rlcih0aGlzKSx0aGlzLndpbmRvd0xheWVyJiZhd2FpdCB0aGlzLndpbmRvd0xheWVyLmRlc3Ryb3koKX1hc3luYyBkaXNjb25uZWN0ZWRDYWxsYmFjaygpe3N1cGVyLmRpc2Nvbm5lY3RlZENhbGxiYWNrKCksaDEudW5yZWdpc3Rlcih0aGlzKSx0aGlzLndpbmRvd0xheWVyJiZhd2FpdCB0aGlzLndpbmRvd0xheWVyLmRlc3Ryb3koKX1zdGF0aWN7aTQoaSxhKX19O3JldHVybiB5PWl9KSgpfSk7dmFyIHlmdD1iKCgpPT57dmZ0KCl9KTt2YXIgeGZ0PWIoKCk9PntkOXQoKTtfcSgpO0w5dCgpO2hmdCgpO3BmdCgpO3VmdCgpO2ZmdCgpO21mdCgpO2dmdCgpO3lmdCgpfSk7dmFyIHdmdD1iKCgpPT57bm8oKX0pO3ZhciBNZnQsbFYsemZ0LGtmdD1iKCgpPT57dWUoKTtNZnQ9ZnVuY3Rpb24odCxlLGEsaSxyLHMpe2Z1bmN0aW9uIG4oeCl7aWYoeCE9PXZvaWQgMCYmdHlwZW9mIHghPSJmdW5jdGlvbiIpdGhyb3cgbmV3IFR5cGVFcnJvcigiRnVuY3Rpb24gZXhwZWN0ZWQiKTtyZXR1cm4geH1mb3IodmFyIG89aS5raW5kLGQ9bz09PSJnZXR0ZXIiPyJnZXQiOm89PT0ic2V0dGVyIj8ic2V0IjoidmFsdWUiLGM9IWUmJnQ/aS5zdGF0aWM/dDp0LnByb3RvdHlwZTpudWxsLGg9ZXx8KGM/T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihjLGkubmFtZSk6e30pLGwsZj0hMSxnPWEubGVuZ3RoLTE7Zz49MDtnLS0pe3ZhciB5PXt9O2Zvcih2YXIgdiBpbiBpKXlbdl09dj09PSJhY2Nlc3MiP3t9Omlbdl07Zm9yKHZhciB2IGluIGkuYWNjZXNzKXkuYWNjZXNzW3ZdPWkuYWNjZXNzW3ZdO3kuYWRkSW5pdGlhbGl6ZXI9ZnVuY3Rpb24oeCl7aWYoZil0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgYWRkIGluaXRpYWxpemVycyBhZnRlciBkZWNvcmF0aW9uIGhhcyBjb21wbGV0ZWQiKTtzLnB1c2gobih4fHxudWxsKSl9O3ZhciBtPSgwLGFbZ10pKG89PT0iYWNjZXNzb3IiP3tnZXQ6aC5nZXQsc2V0Omguc2V0fTpoW2RdLHkpO2lmKG89PT0iYWNjZXNzb3IiKXtpZihtPT09dm9pZCAwKWNvbnRpbnVlO2lmKG09PT1udWxsfHx0eXBlb2YgbSE9Im9iamVjdCIpdGhyb3cgbmV3IFR5cGVFcnJvcigiT2JqZWN0IGV4cGVjdGVkIik7KGw9bihtLmdldCkpJiYoaC5nZXQ9bCksKGw9bihtLnNldCkpJiYoaC5zZXQ9bCksKGw9bihtLmluaXQpKSYmci51bnNoaWZ0KGwpfWVsc2UobD1uKG0pKSYmKG89PT0iZmllbGQiP3IudW5zaGlmdChsKTpoW2RdPWwpfWMmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShjLGkubmFtZSxoKSxmPSEwfSxsVj1mdW5jdGlvbih0LGUsYSl7Zm9yKHZhciBpPWFyZ3VtZW50cy5sZW5ndGg+MixyPTA7cjxlLmxlbmd0aDtyKyspYT1pP2Vbcl0uY2FsbCh0LGEpOmVbcl0uY2FsbCh0KTtyZXR1cm4gaT9hOnZvaWQgMH0semZ0PSgoKT0+e2xldCB0PVtwZSgiZGVlcy1idXR0b24tZXhpdCIpXSxlLGE9W10saSxyPXhlLHMsbj1bXSxvPVtdO3ZhciBkPWNsYXNzIGV4dGVuZHMgcntzdGF0aWN7aT10aGlzfXN0YXRpY3tsZXQgYz10eXBlb2YgU3ltYm9sPT0iZnVuY3Rpb24iJiZTeW1ib2wubWV0YWRhdGE/T2JqZWN0LmNyZWF0ZShyW1N5bWJvbC5tZXRhZGF0YV0/P251bGwpOnZvaWQgMDtzPVtJKHt0eXBlOk51bWJlcn0pXSxNZnQodGhpcyxudWxsLHMse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJzaXplIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpoPT4ic2l6ZSJpbiBoLGdldDpoPT5oLnNpemUsc2V0OihoLGwpPT57aC5zaXplPWx9fSxtZXRhZGF0YTpjfSxuLG8pLE1mdChudWxsLGU9e3ZhbHVlOml9LHQse2tpbmQ6ImNsYXNzIixuYW1lOmkubmFtZSxtZXRhZGF0YTpjfSxudWxsLGEpLGQ9aT1lLnZhbHVlLGMmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShpLFN5bWJvbC5tZXRhZGF0YSx7ZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITAsdmFsdWU6Y30pfXN0YXRpYyBkZW1vPSgpPT53YAogICAgPGRlZXMtYnV0dG9uLWV4aXQ+PC9kZWVzLWJ1dHRvbi1leGl0PgogIGA7c3RhdGljIGRlbW9Hcm91cHM9WyJCdXR0b24iXTsjZT1sVih0aGlzLG4sMjQpO2dldCBzaXplKCl7cmV0dXJuIHRoaXMuI2V9c2V0IHNpemUoYyl7dGhpcy4jZT1jfXN0eWxlcz0obFYodGhpcyxvKSxbcC5kZWZhdWx0U3R5bGVzLFFgCgogICAgYF0pO3JlbmRlcigpe3JldHVybiB3YAogICAgICA8c3R5bGU+CiAgICAgICAgLm1haW5jb250YWluZXIgewogICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICAgICAgd2lkdGg6ICR7dGhpcy5zaXplfXB4OwogICAgICAgICAgaGVpZ2h0OiAke3RoaXMuc2l6ZX1weDsKICAgICAgICB9CiAgICAgIDwvc3R5bGU+CiAgICAgIDxkaXYgY2xhc3M9Im1haW5jb250YWluZXIiPgogICAgICAgIDxkaXYgY2xhc3M9ImZpcnN0TGluZSI+PC9kaXY+CiAgICAgICAgPGRpdiBjbGFzcz0ic2Vjb25kTGluZSI+PC9kaXY+CiAgICAgIDwvZGl2PgogICAgYH1zdGF0aWN7bFYoaSxhKX19O3JldHVybiBkPWl9KSgpfSk7dmFyIFNmdD1iKCgpPT57a2Z0KCl9KTt2YXIgQ2Z0LF9mdD1iKCgpPT57dWUoKTtDZnQ9KCk9PndgCiAgICA8c3R5bGU+CiAgICAgICR7UWAKICAgICAgICAuZGVtb0JveCB7CiAgICAgICAgICBiYWNrZ3JvdW5kOiAjMDAwMDAwOwogICAgICAgICAgcGFkZGluZzogNDBweDsKICAgICAgICAgIG1pbi1oZWlnaHQ6IDEwMHZoOwogICAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDsKICAgICAgICB9CgogICAgICAgIC5kZW1vLXNlY3Rpb24gewogICAgICAgICAgbWFyZ2luLWJvdHRvbTogMzJweDsKICAgICAgICB9CgogICAgICAgIC5kZW1vLXRpdGxlIHsKICAgICAgICAgIGNvbG9yOiAjZmZmOwogICAgICAgICAgZm9udC1zaXplOiAyMHB4OwogICAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDsKICAgICAgICAgIG1hcmdpbi1ib3R0b206IDE2cHg7CiAgICAgICAgICBmb250LWZhbWlseTogJ0dlaXN0IFNhbnMnLCBzYW5zLXNlcmlmOwogICAgICAgIH0KCiAgICAgICAgLmRlbW8tZGVzY3JpcHRpb24gewogICAgICAgICAgY29sb3I6ICM5OTk7CiAgICAgICAgICBmb250LXNpemU6IDE0cHg7CiAgICAgICAgICBtYXJnaW4tYm90dG9tOiAyNHB4OwogICAgICAgICAgZm9udC1mYW1pbHk6ICdHZWlzdCBTYW5zJywgc2Fucy1zZXJpZjsKICAgICAgICB9CiAgICAgIGB9CiAgICA8L3N0eWxlPgogICAgPGRpdiBjbGFzcz0iZGVtb0JveCI+CiAgICAgIDxkaXYgY2xhc3M9ImRlbW8tc2VjdGlvbiI+CiAgICAgICAgPGgyIGNsYXNzPSJkZW1vLXRpdGxlIj5CYXNpYyBCdXR0b24gR3JvdXBzPC9oMj4KICAgICAgICA8cCBjbGFzcz0iZGVtby1kZXNjcmlwdGlvbiI+QnV0dG9uIGdyb3VwcyB3aXRob3V0IGxhYmVscyBmb3Igc2ltcGxlIGdyb3VwaW5nPC9wPgogICAgICAgIAogICAgICAgIDxkZWVzLWJ1dHRvbi1ncm91cD4KICAgICAgICAgIDxkZWVzLWJ1dHRvbj5PcHRpb24gMTwvZGVlcy1idXR0b24+CiAgICAgICAgICA8ZGVlcy1idXR0b24+T3B0aW9uIDI8L2RlZXMtYnV0dG9uPgogICAgICAgICAgPGRlZXMtYnV0dG9uPk9wdGlvbiAzPC9kZWVzLWJ1dHRvbj4KICAgICAgICA8L2RlZXMtYnV0dG9uLWdyb3VwPgogICAgICA8L2Rpdj4KCiAgICAgIDxkaXYgY2xhc3M9ImRlbW8tc2VjdGlvbiI+CiAgICAgICAgPGgyIGNsYXNzPSJkZW1vLXRpdGxlIj5MYWJlbGVkIEJ1dHRvbiBHcm91cHM8L2gyPgogICAgICAgIDxwIGNsYXNzPSJkZW1vLWRlc2NyaXB0aW9uIj5CdXR0b24gZ3JvdXBzIHdpdGggZGVzY3JpcHRpdmUgbGFiZWxzPC9wPgogICAgICAgIAogICAgICAgIDxkZWVzLWJ1dHRvbi1ncm91cCBsYWJlbD0iVmlldyBNb2RlOiI+CiAgICAgICAgICA8ZGVlcy1idXR0b24gdHlwZT0iaGlnaGxpZ2h0ZWQiPkdyaWQ8L2RlZXMtYnV0dG9uPgogICAgICAgICAgPGRlZXMtYnV0dG9uPkxpc3Q8L2RlZXMtYnV0dG9uPgogICAgICAgICAgPGRlZXMtYnV0dG9uPkNhcmRzPC9kZWVzLWJ1dHRvbj4KICAgICAgICA8L2RlZXMtYnV0dG9uLWdyb3VwPgogICAgICA8L2Rpdj4KCiAgICAgIDxkaXYgY2xhc3M9ImRlbW8tc2VjdGlvbiI+CiAgICAgICAgPGgyIGNsYXNzPSJkZW1vLXRpdGxlIj5NdWx0aXBsZSBHcm91cHM8L2gyPgogICAgICAgIDxwIGNsYXNzPSJkZW1vLWRlc2NyaXB0aW9uIj5NdWx0aXBsZSBidXR0b24gZ3JvdXBzIHVzZWQgdG9nZXRoZXI8L3A+CiAgICAgICAgCiAgICAgICAgPGRpdiBzdHlsZT0iZGlzcGxheTogZmxleDsgZ2FwOiAxNnB4OyBmbGV4LXdyYXA6IHdyYXA7Ij4KICAgICAgICAgIDxkZWVzLWJ1dHRvbi1ncm91cCBsYWJlbD0iRGF0YXNldDoiPgogICAgICAgICAgICA8ZGVlcy1idXR0b24gdHlwZT0iaGlnaGxpZ2h0ZWQiPlN5c3RlbTwvZGVlcy1idXR0b24+CiAgICAgICAgICAgIDxkZWVzLWJ1dHRvbj5OZXR3b3JrPC9kZWVzLWJ1dHRvbj4KICAgICAgICAgICAgPGRlZXMtYnV0dG9uPlNhbGVzPC9kZWVzLWJ1dHRvbj4KICAgICAgICAgIDwvZGVlcy1idXR0b24tZ3JvdXA+CiAgICAgICAgICAKICAgICAgICAgIDxkZWVzLWJ1dHRvbi1ncm91cCBsYWJlbD0iVGltZSBSYW5nZToiPgogICAgICAgICAgICA8ZGVlcy1idXR0b24+MUg8L2RlZXMtYnV0dG9uPgogICAgICAgICAgICA8ZGVlcy1idXR0b24gdHlwZT0iaGlnaGxpZ2h0ZWQiPjI0SDwvZGVlcy1idXR0b24+CiAgICAgICAgICAgIDxkZWVzLWJ1dHRvbj43RDwvZGVlcy1idXR0b24+CiAgICAgICAgICAgIDxkZWVzLWJ1dHRvbj4zMEQ8L2RlZXMtYnV0dG9uPgogICAgICAgICAgPC9kZWVzLWJ1dHRvbi1ncm91cD4KICAgICAgICAgIAogICAgICAgICAgPGRlZXMtYnV0dG9uLWdyb3VwIGxhYmVsPSJBY3Rpb25zOiI+CiAgICAgICAgICAgIDxkZWVzLWJ1dHRvbj5SZWZyZXNoPC9kZWVzLWJ1dHRvbj4KICAgICAgICAgICAgPGRlZXMtYnV0dG9uPkV4cG9ydDwvZGVlcy1idXR0b24+CiAgICAgICAgICA8L2RlZXMtYnV0dG9uLWdyb3VwPgogICAgICAgIDwvZGl2PgogICAgICA8L2Rpdj4KCiAgICAgIDxkaXYgY2xhc3M9ImRlbW8tc2VjdGlvbiI+CiAgICAgICAgPGgyIGNsYXNzPSJkZW1vLXRpdGxlIj5WZXJ0aWNhbCBCdXR0b24gR3JvdXBzPC9oMj4KICAgICAgICA8cCBjbGFzcz0iZGVtby1kZXNjcmlwdGlvbiI+QnV0dG9uIGdyb3VwcyB3aXRoIHZlcnRpY2FsIGxheW91dDwvcD4KICAgICAgICAKICAgICAgICA8ZGl2IHN0eWxlPSJkaXNwbGF5OiBmbGV4OyBnYXA6IDI0cHg7Ij4KICAgICAgICAgIDxkZWVzLWJ1dHRvbi1ncm91cCBkaXJlY3Rpb249InZlcnRpY2FsIiBsYWJlbD0iTmF2aWdhdGlvbjoiPgogICAgICAgICAgICA8ZGVlcy1idXR0b24+RGFzaGJvYXJkPC9kZWVzLWJ1dHRvbj4KICAgICAgICAgICAgPGRlZXMtYnV0dG9uIHR5cGU9ImhpZ2hsaWdodGVkIj5BbmFseXRpY3M8L2RlZXMtYnV0dG9uPgogICAgICAgICAgICA8ZGVlcy1idXR0b24+UmVwb3J0czwvZGVlcy1idXR0b24+CiAgICAgICAgICAgIDxkZWVzLWJ1dHRvbj5TZXR0aW5nczwvZGVlcy1idXR0b24+CiAgICAgICAgICA8L2RlZXMtYnV0dG9uLWdyb3VwPgogICAgICAgICAgCiAgICAgICAgICA8ZGVlcy1idXR0b24tZ3JvdXAgZGlyZWN0aW9uPSJ2ZXJ0aWNhbCI+CiAgICAgICAgICAgIDxkZWVzLWJ1dHRvbj5BZGQgSXRlbTwvZGVlcy1idXR0b24+CiAgICAgICAgICAgIDxkZWVzLWJ1dHRvbj5FZGl0IEl0ZW08L2RlZXMtYnV0dG9uPgogICAgICAgICAgICA8ZGVlcy1idXR0b24+RGVsZXRlIEl0ZW08L2RlZXMtYnV0dG9uPgogICAgICAgICAgPC9kZWVzLWJ1dHRvbi1ncm91cD4KICAgICAgICA8L2Rpdj4KICAgICAgPC9kaXY+CgogICAgICA8ZGl2IGNsYXNzPSJkZW1vLXNlY3Rpb24iPgogICAgICAgIDxoMiBjbGFzcz0iZGVtby10aXRsZSI+TWl4ZWQgQnV0dG9uIFR5cGVzPC9oMj4KICAgICAgICA8cCBjbGFzcz0iZGVtby1kZXNjcmlwdGlvbiI+RGlmZmVyZW50IGJ1dHRvbiB0eXBlcyB3aXRoaW4gZ3JvdXBzPC9wPgogICAgICAgIAogICAgICAgIDxkZWVzLWJ1dHRvbi1ncm91cCBsYWJlbD0iU3RhdHVzOiI+CiAgICAgICAgICA8ZGVlcy1idXR0b24gdHlwZT0ic3VjY2VzcyI+QWN0aXZlPC9kZWVzLWJ1dHRvbj4KICAgICAgICAgIDxkZWVzLWJ1dHRvbj5QZW5kaW5nPC9kZWVzLWJ1dHRvbj4KICAgICAgICAgIDxkZWVzLWJ1dHRvbiB0eXBlPSJkYW5nZXIiPkluYWN0aXZlPC9kZWVzLWJ1dHRvbj4KICAgICAgICA8L2RlZXMtYnV0dG9uLWdyb3VwPgogICAgICA8L2Rpdj4KICAgIDwvZGl2PgogIGB9KTt2YXIgY1YsazgsVGZ0LExmdD1iKCgpPT57dWUoKTtUdCgpO19mdCgpO3FlKCk7Y1Y9ZnVuY3Rpb24odCxlLGEsaSxyLHMpe2Z1bmN0aW9uIG4oeCl7aWYoeCE9PXZvaWQgMCYmdHlwZW9mIHghPSJmdW5jdGlvbiIpdGhyb3cgbmV3IFR5cGVFcnJvcigiRnVuY3Rpb24gZXhwZWN0ZWQiKTtyZXR1cm4geH1mb3IodmFyIG89aS5raW5kLGQ9bz09PSJnZXR0ZXIiPyJnZXQiOm89PT0ic2V0dGVyIj8ic2V0IjoidmFsdWUiLGM9IWUmJnQ/aS5zdGF0aWM/dDp0LnByb3RvdHlwZTpudWxsLGg9ZXx8KGM/T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihjLGkubmFtZSk6e30pLGwsZj0hMSxnPWEubGVuZ3RoLTE7Zz49MDtnLS0pe3ZhciB5PXt9O2Zvcih2YXIgdiBpbiBpKXlbdl09dj09PSJhY2Nlc3MiP3t9Omlbdl07Zm9yKHZhciB2IGluIGkuYWNjZXNzKXkuYWNjZXNzW3ZdPWkuYWNjZXNzW3ZdO3kuYWRkSW5pdGlhbGl6ZXI9ZnVuY3Rpb24oeCl7aWYoZil0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgYWRkIGluaXRpYWxpemVycyBhZnRlciBkZWNvcmF0aW9uIGhhcyBjb21wbGV0ZWQiKTtzLnB1c2gobih4fHxudWxsKSl9O3ZhciBtPSgwLGFbZ10pKG89PT0iYWNjZXNzb3IiP3tnZXQ6aC5nZXQsc2V0Omguc2V0fTpoW2RdLHkpO2lmKG89PT0iYWNjZXNzb3IiKXtpZihtPT09dm9pZCAwKWNvbnRpbnVlO2lmKG09PT1udWxsfHx0eXBlb2YgbSE9Im9iamVjdCIpdGhyb3cgbmV3IFR5cGVFcnJvcigiT2JqZWN0IGV4cGVjdGVkIik7KGw9bihtLmdldCkpJiYoaC5nZXQ9bCksKGw9bihtLnNldCkpJiYoaC5zZXQ9bCksKGw9bihtLmluaXQpKSYmci51bnNoaWZ0KGwpfWVsc2UobD1uKG0pKSYmKG89PT0iZmllbGQiP3IudW5zaGlmdChsKTpoW2RdPWwpfWMmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShjLGkubmFtZSxoKSxmPSEwfSxrOD1mdW5jdGlvbih0LGUsYSl7Zm9yKHZhciBpPWFyZ3VtZW50cy5sZW5ndGg+MixyPTA7cjxlLmxlbmd0aDtyKyspYT1pP2Vbcl0uY2FsbCh0LGEpOmVbcl0uY2FsbCh0KTtyZXR1cm4gaT9hOnZvaWQgMH0sVGZ0PSgoKT0+e2xldCB0PVtwZSgiZGVlcy1idXR0b24tZ3JvdXAiKV0sZSxhPVtdLGkscj14ZSxzLG49W10sbz1bXSxkLGM9W10saD1bXTt2YXIgbD1jbGFzcyBleHRlbmRzIHJ7c3RhdGlje2k9dGhpc31zdGF0aWN7bGV0IGY9dHlwZW9mIFN5bWJvbD09ImZ1bmN0aW9uIiYmU3ltYm9sLm1ldGFkYXRhP09iamVjdC5jcmVhdGUocltTeW1ib2wubWV0YWRhdGFdPz9udWxsKTp2b2lkIDA7cz1bSSgpXSxkPVtJKCldLGNWKHRoaXMsbnVsbCxzLHtraW5kOiJhY2Nlc3NvciIsbmFtZToibGFiZWwiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmc9PiJsYWJlbCJpbiBnLGdldDpnPT5nLmxhYmVsLHNldDooZyx5KT0+e2cubGFiZWw9eX19LG1ldGFkYXRhOmZ9LG4sbyksY1YodGhpcyxudWxsLGQse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJkaXJlY3Rpb24iLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmc9PiJkaXJlY3Rpb24iaW4gZyxnZXQ6Zz0+Zy5kaXJlY3Rpb24sc2V0OihnLHkpPT57Zy5kaXJlY3Rpb249eX19LG1ldGFkYXRhOmZ9LGMsaCksY1YobnVsbCxlPXt2YWx1ZTppfSx0LHtraW5kOiJjbGFzcyIsbmFtZTppLm5hbWUsbWV0YWRhdGE6Zn0sbnVsbCxhKSxsPWk9ZS52YWx1ZSxmJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoaSxTeW1ib2wubWV0YWRhdGEse2VudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwLHZhbHVlOmZ9KX1zdGF0aWMgZGVtbz1DZnQ7c3RhdGljIGRlbW9Hcm91cHM9WyJCdXR0b24iXTsjZT1rOCh0aGlzLG4sIiIpO2dldCBsYWJlbCgpe3JldHVybiB0aGlzLiNlfXNldCBsYWJlbChmKXt0aGlzLiNlPWZ9I3Q9KGs4KHRoaXMsbyksazgodGhpcyxjLCJob3Jpem9udGFsIikpO2dldCBkaXJlY3Rpb24oKXtyZXR1cm4gdGhpcy4jdH1zZXQgZGlyZWN0aW9uKGYpe3RoaXMuI3Q9Zn1jb25zdHJ1Y3Rvcigpe3N1cGVyKCksazgodGhpcyxoKSx2MS5zZXR1cCgpfXN0YXRpYyBzdHlsZXM9W0NlLHAuZGVmYXVsdFN0eWxlcyxRYAogICAgICAvKiBUT0RPOiBNaWdyYXRlIGhhcmRjb2RlZCB2YWx1ZXMgdG8gLS1kZWVzLSogQ1NTIHZhcmlhYmxlcyAqLwogICAgICA6aG9zdCB7CiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrOwogICAgICB9CgogICAgICAuYnV0dG9uLWdyb3VwIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGdhcDogOHB4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgcGFkZGluZzogOHB4OwogICAgICAgIGJhY2tncm91bmQ6ICR7cC5iZFRoZW1lKCJyZ2JhKDAsIDAsIDAsIDAuMDUpIiwicmdiYSgyNTUsIDI1NSwgMjU1LCAwLjA1KSIpfTsKICAgICAgICBib3JkZXItcmFkaXVzOiA2cHg7CiAgICAgIH0KCiAgICAgIC5idXR0b24tZ3JvdXAudmVydGljYWwgewogICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgICAgYWxpZ24taXRlbXM6IHN0cmV0Y2g7CiAgICAgIH0KCiAgICAgIC5sYWJlbCB7CiAgICAgICAgY29sb3I6ICR7cC5iZFRoZW1lKCIjNjY2IiwiIzk5OSIpfTsKICAgICAgICBmb250LXNpemU6IDEycHg7CiAgICAgICAgZm9udC1mYW1pbHk6ICdHZWlzdCBTYW5zJywgc2Fucy1zZXJpZjsKICAgICAgICBtYXJnaW4tcmlnaHQ6IDhweDsKICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwOwogICAgICB9CgogICAgICAuYnV0dG9uLWdyb3VwLnZlcnRpY2FsIC5sYWJlbCB7CiAgICAgICAgbWFyZ2luLXJpZ2h0OiAwOwogICAgICAgIG1hcmdpbi1ib3R0b206IDhweDsKICAgICAgfQoKICAgICAgOjpzbG90dGVkKCopIHsKICAgICAgICBtYXJnaW46IDAgIWltcG9ydGFudDsKICAgICAgfQogICAgYF07cmVuZGVyKCl7cmV0dXJuIHdgCiAgICAgIDxkaXYgY2xhc3M9ImJ1dHRvbi1ncm91cCAke3RoaXMuZGlyZWN0aW9ufSI+CiAgICAgICAgJHt0aGlzLmxhYmVsP3dgPHNwYW4gY2xhc3M9ImxhYmVsIj4ke3RoaXMubGFiZWx9PC9zcGFuPmA6IiJ9CiAgICAgICAgPHNsb3Q+PC9zbG90PgogICAgICA8L2Rpdj4KICAgIGB9c3RhdGlje2s4KGksYSl9fTtyZXR1cm4gbD1pfSkoKX0pO3ZhciAkZnQ9YigoKT0+e0xmdCgpfSk7dmFyIEFmdD1iKCgpPT57d2Z0KCk7U2Z0KCk7JGZ0KCl9KTt2YXIgRGZ0LEVmdD1iKCgpPT57dWUoKTt4MSgpO2RWKCk7RGZ0PSgpPT57bGV0IHQ9e3N5c3RlbTp7bGFiZWw6IlN5c3RlbSBVc2FnZSAoJSkiLHNlcmllczpbe25hbWU6IkNQVSIsZGF0YTpbe3g6bmV3IERhdGUoRGF0ZS5ub3coKS0zZTUpLnRvSVNPU3RyaW5nKCkseToyNX0se3g6bmV3IERhdGUoRGF0ZS5ub3coKS0yNGU0KS50b0lTT1N0cmluZygpLHk6MzB9LHt4Om5ldyBEYXRlKERhdGUubm93KCktMThlNCkudG9JU09TdHJpbmcoKSx5OjI4fSx7eDpuZXcgRGF0ZShEYXRlLm5vdygpLTEyZTQpLnRvSVNPU3RyaW5nKCkseTozNX0se3g6bmV3IERhdGUoRGF0ZS5ub3coKS02ZTQpLnRvSVNPU3RyaW5nKCkseTozMn0se3g6bmV3IERhdGUoKS50b0lTT1N0cmluZygpLHk6Mzh9XX0se25hbWU6Ik1lbW9yeSIsZGF0YTpbe3g6bmV3IERhdGUoRGF0ZS5ub3coKS0zZTUpLnRvSVNPU3RyaW5nKCkseTo0NX0se3g6bmV3IERhdGUoRGF0ZS5ub3coKS0yNGU0KS50b0lTT1N0cmluZygpLHk6NDh9LHt4Om5ldyBEYXRlKERhdGUubm93KCktMThlNCkudG9JU09TdHJpbmcoKSx5OjQ2fSx7eDpuZXcgRGF0ZShEYXRlLm5vdygpLTEyZTQpLnRvSVNPU3RyaW5nKCkseTo1Mn0se3g6bmV3IERhdGUoRGF0ZS5ub3coKS02ZTQpLnRvSVNPU3RyaW5nKCkseTo1MH0se3g6bmV3IERhdGUoKS50b0lTT1N0cmluZygpLHk6NTV9XX1dfX0sZT17c3lzdGVtOmE9PmAke2F9JWB9O3JldHVybiB3YAogICAgPGRlZXMtZGVtb3dyYXBwZXIgLnJ1bkFmdGVyUmVuZGVyPSR7YXN5bmMgYT0+e2xldCBpPWEucXVlcnlTZWxlY3RvcigiI21haW4tY2hhcnQiKSxyPWEucXVlcnlTZWxlY3RvcigiI2Nvbm5lY3Rpb25zLWNoYXJ0IikscyxuLG89InN5c3RlbSIsZD17c3lzdGVtOno9PmAke3p9JWAsbmV0d29yazp6PT5gJHt6fSBNYnBzYCxzYWxlczp6PT5gJCR7ei50b0xvY2FsZVN0cmluZygpfWB9LGM9MTIwKjFlMyxoPTFlMyxsPTVlMyxmPXtjcHU6MzAsbWVtb3J5OjUwLGRvd25sb2FkOjE1MCx1cGxvYWQ6MzAsY29ubmVjdGlvbnM6MTUwfSxnPSh6LEUsVD1sKT0+e2xldCAkPVtdLFY9RGF0ZS5ub3coKSxSPU1hdGguZmxvb3IoYy9UKTtmb3IobGV0IFU9UjtVPj0wO1UtLSl7bGV0IHJlPW5ldyBEYXRlKFYtVSpUKS50b0lTT1N0cmluZygpLGo9eisoTWF0aC5yYW5kb20oKS0uNSkqRTskLnB1c2goe3g6cmUseTpNYXRoLnJvdW5kKGopfSl9cmV0dXJuICR9LHk9e3N5c3RlbTp7bGFiZWw6IlN5c3RlbSBVc2FnZSAoJSkiLHNlcmllczpbe25hbWU6IkNQVSIsZGF0YTpnKGYuY3B1LDEwKX0se25hbWU6Ik1lbW9yeSIsZGF0YTpnKGYubWVtb3J5LDgpfV19LG5ldHdvcms6e2xhYmVsOiJOZXR3b3JrIFRyYWZmaWMgKE1icHMpIixzZXJpZXM6W3tuYW1lOiJEb3dubG9hZCIsZGF0YTpnKGYuZG93bmxvYWQsMzApfSx7bmFtZToiVXBsb2FkIixkYXRhOmcoZi51cGxvYWQsMTApfV19LHNhbGVzOntsYWJlbDoiU2FsZXMgQW5hbHl0aWNzIixzZXJpZXM6W3tuYW1lOiJSZXZlbnVlIixkYXRhOlt7eDoiMjAyNS0wMS0wMSIseTo0NWUzfSx7eDoiMjAyNS0wMS0wMiIseTo1MmUzfSx7eDoiMjAyNS0wMS0wMyIseTo0OGUzfSx7eDoiMjAyNS0wMS0wNCIseTo2MWUzfSx7eDoiMjAyNS0wMS0wNSIseTo1OGUzfSx7eDoiMjAyNS0wMS0wNiIseTo2NWUzfV19LHtuYW1lOiJQcm9maXQiLGRhdGE6W3t4OiIyMDI1LTAxLTAxIix5OjEyZTN9LHt4OiIyMDI1LTAxLTAyIix5OjE0ZTN9LHt4OiIyMDI1LTAxLTAzIix5OjExZTN9LHt4OiIyMDI1LTAxLTA0Iix5OjE4ZTN9LHt4OiIyMDI1LTAxLTA1Iix5OjE2ZTN9LHt4OiIyMDI1LTAxLTA2Iix5OjJlNH1dfV19fSx2PSh6LEUsVCwkPTUpPT57bGV0IFY9KE1hdGgucmFuZG9tKCktLjUpKiQqMixSPXorVixyZT0oKEUrVCkvMi1SKSouMTtyZXR1cm4gUis9cmUsUj1NYXRoLm1heChFLE1hdGgubWluKFQsUikpLE1hdGgucm91bmQoUil9LG09RGF0ZS5ub3coKSx4PURhdGUubm93KCksTT0oKT0+e2lmKCFpKXJldHVybjtsZXQgej1EYXRlLm5vdygpO2lmKHotbT49bCl7bT16O2xldCBUPW5ldyBEYXRlKHopLnRvSVNPU3RyaW5nKCk7aWYobz09PSJzeXN0ZW0iKXtmLmNwdT12KGYuY3B1LDIwLDUwLDMpLGYubWVtb3J5PXYoZi5tZW1vcnksNDAsNzAsMik7bGV0ICQ9aS5jaGFydFNlcmllcy5tYXAoKFYsUik9Pih7bmFtZTpWLm5hbWUsZGF0YTpbLi4uVi5kYXRhLFI9PT0wP3t4OlQseTpmLmNwdX06e3g6VCx5OmYubWVtb3J5fV19KSk7aS51cGRhdGVTZXJpZXMoJCwhMSl9ZWxzZSBpZihvPT09Im5ldHdvcmsiKXtmLmRvd25sb2FkPXYoZi5kb3dubG9hZCwxMDAsMjAwLDEwKSxmLnVwbG9hZD12KGYudXBsb2FkLDIwLDUwLDUpO2xldCAkPWkuY2hhcnRTZXJpZXMubWFwKChWLFIpPT4oe25hbWU6Vi5uYW1lLGRhdGE6Wy4uLlYuZGF0YSxSPT09MD97eDpULHk6Zi5kb3dubG9hZH06e3g6VCx5OmYudXBsb2FkfV19KSk7aS51cGRhdGVTZXJpZXMoJCwhMSl9fX0sUz0oKT0+e2lmKCFyKXJldHVybjtsZXQgej1EYXRlLm5vdygpLEU9bmV3IERhdGUoeikudG9JU09TdHJpbmcoKSxUPU1hdGguZmxvb3IoTWF0aC5yYW5kb20oKSoyMSktMTA7Zi5jb25uZWN0aW9ucz1NYXRoLm1heCg1MCxNYXRoLm1pbigzMDAsZi5jb25uZWN0aW9ucytUKSk7bGV0ICQ9ci5jaGFydFNlcmllcyxWPVt7bmFtZTokWzBdPy5uYW1lfHwiQ29ubmVjdGlvbnMiLGRhdGE6Wy4uLiRbMF0/LmRhdGF8fFtdLHt4OkUseTpmLmNvbm5lY3Rpb25zfV19XTtyLnVwZGF0ZVNlcmllcyhWLCExKX0sRj16PT57bz16O2xldCBFPXlbel07aS5sYWJlbD1FLmxhYmVsLGkuc2VyaWVzPUUuc2VyaWVzLGkueUF4aXNGb3JtYXR0ZXI9ZFt6XSx6PT09InN5c3RlbSI/KGkueUF4aXNTY2FsaW5nPSJwZXJjZW50YWdlIixpLnlBeGlzTWF4PTEwMCk6aS55QXhpc1NjYWxpbmc9ImR5bmFtaWMiLG09RGF0ZS5ub3coKS1sfSxfPSgpPT57IXMmJihvPT09InN5c3RlbSJ8fG89PT0ibmV0d29yayIpJiYoaS5yZWFsdGltZU1vZGU9ITAscz13aW5kb3cuc2V0SW50ZXJ2YWwoKCk9Pk0oKSxsKSksbnx8KHIucmVhbHRpbWVNb2RlPSEwLG49d2luZG93LnNldEludGVydmFsKCgpPT5TKCksaCkpfSxrPSgpPT57cyYmKHdpbmRvdy5jbGVhckludGVydmFsKHMpLHM9bnVsbCxpLnJlYWx0aW1lTW9kZT0hMSksbiYmKHdpbmRvdy5jbGVhckludGVydmFsKG4pLG49bnVsbCxyLnJlYWx0aW1lTW9kZT0hMSl9LE49KCk9PntvPT09InN5c3RlbSI/KGYuY3B1PU1hdGgucmFuZG9tKCk+LjU/ODU6MjUsZi5tZW1vcnk9TWF0aC5yYW5kb20oKT4uNT84MDo0NSk6bz09PSJuZXR3b3JrIiYmKGYuZG93bmxvYWQ9TWF0aC5yYW5kb20oKT4uNT8yNTA6MTAwLGYudXBsb2FkPU1hdGgucmFuZG9tKCk+LjU/ODA6MjApLGYuY29ubmVjdGlvbnM9TWF0aC5yYW5kb20oKT4uNT8yODA6ODAsbT0wLHg9MH0sTD1hLnF1ZXJ5U2VsZWN0b3JBbGwoImRlZXMtYnV0dG9uIik7TC5mb3JFYWNoKHo9PntsZXQgRT16LnRleHRDb250ZW50Py50cmltKCk7RT09PSJTeXN0ZW0gVXNhZ2UiP3ouYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLCgpPT5GKCJzeXN0ZW0iKSk6RT09PSJOZXR3b3JrIFRyYWZmaWMiP3ouYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLCgpPT5GKCJuZXR3b3JrIikpOkU9PT0iU2FsZXMgRGF0YSI/ei5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsKCk9PkYoInNhbGVzIikpOkU9PT0iU3RhcnQgTGl2ZSI/ei5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsKCk9Pl8oKSk6RT09PSJTdG9wIExpdmUiP3ouYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLCgpPT5rKCkpOkU9PT0iU3Bpa2UgVmFsdWVzIiYmei5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsKCk9Pk4oKSl9KTtsZXQgQT0oKT0+e2EucXVlcnlTZWxlY3RvckFsbCgiZGVlcy1idXR0b24iKS5mb3JFYWNoKEU9PntsZXQgVD1FLnRleHRDb250ZW50Py50cmltKCk7VD09PSJTeXN0ZW0gVXNhZ2UiP0UudHlwZT1vPT09InN5c3RlbSI/ImhpZ2hsaWdodGVkIjoibm9ybWFsIjpUPT09Ik5ldHdvcmsgVHJhZmZpYyI/RS50eXBlPW89PT0ibmV0d29yayI/ImhpZ2hsaWdodGVkIjoibm9ybWFsIjpUPT09IlNhbGVzIERhdGEiJiYoRS50eXBlPW89PT0ic2FsZXMiPyJoaWdobGlnaHRlZCI6Im5vcm1hbCIpfSl9O2kucm9sbGluZ1dpbmRvdz1jLGkucmVhbHRpbWVNb2RlPSExLGkueUF4aXNTY2FsaW5nPSJwZXJjZW50YWdlIixpLnlBeGlzTWF4PTEwMCxpLmF1dG9TY3JvbGxJbnRlcnZhbD0xZTMsc2V0VGltZW91dCgoKT0+e2kudXBkYXRlVGltZVdpbmRvdygpfSwxMDApO2xldCBxPUYsQz16PT57cSh6KSxBKCl9O2lmKEwuZm9yRWFjaCh6PT57bGV0IEU9ei50ZXh0Q29udGVudD8udHJpbSgpO0U9PT0iU3lzdGVtIFVzYWdlIj8oei5yZW1vdmVFdmVudExpc3RlbmVyKCJjbGljayIsKCk9PkYoInN5c3RlbSIpKSx6LmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIiwoKT0+Qygic3lzdGVtIikpKTpFPT09Ik5ldHdvcmsgVHJhZmZpYyI/KHoucmVtb3ZlRXZlbnRMaXN0ZW5lcigiY2xpY2siLCgpPT5GKCJuZXR3b3JrIikpLHouYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLCgpPT5DKCJuZXR3b3JrIikpKTpFPT09IlNhbGVzIERhdGEiJiYoei5yZW1vdmVFdmVudExpc3RlbmVyKCJjbGljayIsKCk9PkYoInNhbGVzIikpLHouYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLCgpPT5DKCJzYWxlcyIpKSl9KSxyKXtsZXQgej1nKGYuY29ubmVjdGlvbnMsMzAsaCk7ci5zZXJpZXM9W3tuYW1lOiJDb25uZWN0aW9ucyIsZGF0YTp6fV0sci5yb2xsaW5nV2luZG93PWMsci5yZWFsdGltZU1vZGU9ITEsci55QXhpc1NjYWxpbmc9ImZpeGVkIixyLnlBeGlzTWF4PTM1MCxyLmF1dG9TY3JvbGxJbnRlcnZhbD0xZTMsc2V0VGltZW91dCgoKT0+e3IudXBkYXRlVGltZVdpbmRvdygpfSwxMDApfX19PgogICAgICA8c3R5bGU+CiAgICAgICAgJHtRYAogICAgICAgIC5kZW1vQm94IHsKICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgICAgIGJhY2tncm91bmQ6ICR7cC5iZFRoZW1lKCJoc2woMCAwJSA5NSUpIiwiaHNsKDAgMCUgOSUpIil9OwogICAgICAgICAgaGVpZ2h0OiAxMDAlOwogICAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgICAgICBwYWRkaW5nOiA0MHB4OwogICAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDsKICAgICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICAgICAgZ2FwOiAyNHB4OwogICAgICAgIH0KICAgICAgICAKICAgICAgICAuY29udHJvbHMgewogICAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICAgIGZsZXgtd3JhcDogd3JhcDsKICAgICAgICAgIGdhcDogMTJweDsKICAgICAgICAgIG1hcmdpbi1ib3R0b206IDhweDsKICAgICAgICB9CiAgICAgICAgCiAgICAgICAgLmNoYXJ0LWNvbnRhaW5lciB7CiAgICAgICAgICBmbGV4OiAxOwogICAgICAgICAgbWluLWhlaWdodDogNDAwcHg7CiAgICAgICAgfQogICAgICAgIAogICAgICAgIC5pbmZvIHsKICAgICAgICAgIGNvbG9yOiAke3AuYmRUaGVtZSgiaHNsKDIxNS40IDE2LjMlIDU2LjklKSIsImhzbCgyMTUgMjAuMiUgNTUuMSUpIil9OwogICAgICAgICAgZm9udC1zaXplOiAxMnB4OwogICAgICAgICAgZm9udC1mYW1pbHk6IC1hcHBsZS1zeXN0ZW0sIEJsaW5rTWFjU3lzdGVtRm9udCwgJ1NlZ29lIFVJJywgJ0dlaXN0IFNhbnMnLCBzYW5zLXNlcmlmOwogICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyOwogICAgICAgICAgbWFyZ2luLXRvcDogOHB4OwogICAgICAgIH0KICAgICAgYH0KICAgIDwvc3R5bGU+CiAgICA8ZGl2IGNsYXNzPSJkZW1vQm94Ij4KICAgICAgPGRpdiBjbGFzcz0iY29udHJvbHMiPgogICAgICAgIDxkZWVzLWJ1dHRvbi1ncm91cCBsYWJlbD0iRGF0YXNldDoiPgogICAgICAgICAgPGRlZXMtYnV0dG9uIHR5cGU9ImhpZ2hsaWdodGVkIj5TeXN0ZW0gVXNhZ2U8L2RlZXMtYnV0dG9uPgogICAgICAgICAgPGRlZXMtYnV0dG9uPk5ldHdvcmsgVHJhZmZpYzwvZGVlcy1idXR0b24+CiAgICAgICAgICA8ZGVlcy1idXR0b24+U2FsZXMgRGF0YTwvZGVlcy1idXR0b24+CiAgICAgICAgPC9kZWVzLWJ1dHRvbi1ncm91cD4KICAgICAgICAKICAgICAgICA8ZGVlcy1idXR0b24tZ3JvdXAgbGFiZWw9IlJlYWwtdGltZToiPgogICAgICAgICAgPGRlZXMtYnV0dG9uPlN0YXJ0IExpdmU8L2RlZXMtYnV0dG9uPgogICAgICAgICAgPGRlZXMtYnV0dG9uPlN0b3AgTGl2ZTwvZGVlcy1idXR0b24+CiAgICAgICAgPC9kZWVzLWJ1dHRvbi1ncm91cD4KICAgICAgICAKICAgICAgICA8ZGVlcy1idXR0b24tZ3JvdXAgbGFiZWw9IkFjdGlvbnM6Ij4KICAgICAgICAgIDxkZWVzLWJ1dHRvbj5TcGlrZSBWYWx1ZXM8L2RlZXMtYnV0dG9uPgogICAgICAgIDwvZGVlcy1idXR0b24tZ3JvdXA+CiAgICAgIDwvZGl2PgogICAgICAKICAgICAgPGRpdiBjbGFzcz0iY2hhcnQtY29udGFpbmVyIj4KICAgICAgICA8ZGVlcy1jaGFydC1hcmVhCiAgICAgICAgICBpZD0ibWFpbi1jaGFydCIKICAgICAgICAgIC5sYWJlbD0ke3Quc3lzdGVtLmxhYmVsfQogICAgICAgICAgLnNlcmllcz0ke3Quc3lzdGVtLnNlcmllc30KICAgICAgICAgIC55QXhpc0Zvcm1hdHRlcj0ke2Uuc3lzdGVtfQogICAgICAgID48L2RlZXMtY2hhcnQtYXJlYT4KICAgICAgPC9kaXY+CiAgICAgIAogICAgICA8ZGl2IGNsYXNzPSJjaGFydC1jb250YWluZXIiIHN0eWxlPSJtYXJnaW4tdG9wOiAyMHB4OyI+CiAgICAgICAgPGRlZXMtY2hhcnQtYXJlYQogICAgICAgICAgaWQ9ImNvbm5lY3Rpb25zLWNoYXJ0IgogICAgICAgICAgLmxhYmVsPSR7IkFjdGl2ZSBDb25uZWN0aW9ucyJ9CiAgICAgICAgICAuc2VyaWVzPSR7W3tuYW1lOiJDb25uZWN0aW9ucyIsZGF0YTpbXX1dfQogICAgICAgICAgLnlBeGlzRm9ybWF0dGVyPSR7YT0+YCR7YX1gfQogICAgICAgID48L2RlZXMtY2hhcnQtYXJlYT4KICAgICAgPC9kaXY+CiAgICAgIAogICAgICA8ZGl2IGNsYXNzPSJpbmZvIj4KICAgICAgICBSZWFsLXRpbWUgbW9uaXRvcmluZyB3aXRoIDItbWludXRlIHJvbGxpbmcgd2luZG93IOKAoiAKICAgICAgICBVcGRhdGVzIGV2ZXJ5IHNlY29uZCB3aXRoIHNtb290aCB2YWx1ZSB0cmFuc2l0aW9ucyDigKIgCiAgICAgICAgQ2xpY2sgJ1NwaWtlIFZhbHVlcycgdG8gc2ltdWxhdGUgbG9hZCBzcGlrZXMKICAgICAgPC9kaXY+CiAgICA8L2Rpdj4KICAgIDwvZGVlcy1kZW1vd3JhcHBlcj4KICBgfX0pO3ZhciBQZnQsSWZ0PWIoKCk9Pnt1ZSgpO1BmdD1bcC5kZWZhdWx0U3R5bGVzLFFgCiAgICAgIDpob3N0IHsKICAgICAgICBmb250LWZhbWlseTogLWFwcGxlLXN5c3RlbSwgQmxpbmtNYWNTeXN0ZW1Gb250LCAnU2Vnb2UgVUknLCAnUm9ib3RvJywgc2Fucy1zZXJpZjsKICAgICAgICBjb2xvcjogJHtwLmJkVGhlbWUoImhzbCgwIDAlIDMuOSUpIiwiaHNsKDAgMCUgOTglKSIpfTsKICAgICAgICBmb250LXdlaWdodDogNDAwOwogICAgICAgIGZvbnQtc2l6ZTogMTRweDsKICAgICAgfQogICAgICAubWFpbmJveCB7CiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICAgIHdpZHRoOiAxMDAlOwogICAgICAgIGhlaWdodDogNDAwcHg7CiAgICAgICAgYmFja2dyb3VuZDogJHtwLmJkVGhlbWUoImhzbCgwIDAlIDEwMCUpIiwiaHNsKDAgMCUgMy45JSkiKX07CiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHtwLmJkVGhlbWUoImhzbCgwIDAlIDg5LjglKSIsImhzbCgwIDAlIDE0LjklKSIpfTsKICAgICAgICBib3JkZXItcmFkaXVzOiA4cHg7CiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgICAgfQoKICAgICAgLmNoYXJ0VGl0bGUgewogICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgICB0b3A6IDA7CiAgICAgICAgbGVmdDogMDsKICAgICAgICB3aWR0aDogMTAwJTsKICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0OwogICAgICAgIHBhZGRpbmc6IDE2cHggMjRweDsKICAgICAgICB6LWluZGV4OiAxMDsKICAgICAgICBmb250LXNpemU6IDE0cHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDsKICAgICAgICBsZXR0ZXItc3BhY2luZzogLTAuMDFlbTsKICAgICAgICBjb2xvcjogJHtwLmJkVGhlbWUoImhzbCgwIDAlIDIwJSkiLCJoc2woMCAwJSA2My45JSkiKX07CiAgICAgIH0KICAgICAgLmNoYXJ0Q29udGFpbmVyIHsKICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgICAgdG9wOiAwcHg7CiAgICAgICAgbGVmdDogMHB4OwogICAgICAgIGJvdHRvbTogMHB4OwogICAgICAgIHJpZ2h0OiAwcHg7CiAgICAgICAgcGFkZGluZzogNDRweCAxNnB4IDE2cHggMHB4OwogICAgICAgIG92ZXJmbG93OiBoaWRkZW47CiAgICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7IC8qIEVuc3VyZSBjb250YWluZXIgZG9lc24ndCBvdmVycmlkZSBjaGFydCBiYWNrZ3JvdW5kICovCiAgICAgIH0KICAgICAgCiAgICAgIC8qIEFwZXhDaGFydHMgdGhlbWUgb3ZlcnJpZGVzICovCiAgICAgIC5hcGV4Y2hhcnRzLWNhbnZhcyB7CiAgICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQgIWltcG9ydGFudDsKICAgICAgfQogICAgICAKICAgICAgLmFwZXhjaGFydHMtaW5uZXIgewogICAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50ICFpbXBvcnRhbnQ7CiAgICAgIH0KICAgICAgCiAgICAgIC5hcGV4Y2hhcnRzLWdyYXBoaWNhbCB7CiAgICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQgIWltcG9ydGFudDsKICAgICAgfQogICAgYF19KTt2YXIgTmZ0LEZmdD1iKCgpPT57dWUoKTtOZnQ9dD0+d2AKICAgICAgICA8ZGl2IGNsYXNzPSJtYWluYm94Ij4KICAgICAgICAgIDxkaXYgY2xhc3M9ImNoYXJ0VGl0bGUiPiR7dC5sYWJlbH08L2Rpdj4KICAgICAgICAgIDxkaXYgY2xhc3M9ImNoYXJ0Q29udGFpbmVyIj48L2Rpdj4KICAgICAgICA8L2Rpdj4KICAgICAgYH0pO3ZhciBLaSxYMixoVj1iKCgpPT57S2k9e3h0ZXJtOiI1LjMuMCIseHRlcm1BZGRvbkZpdDoiMC44LjAiLHh0ZXJtQWRkb25TZWFyY2g6IjAuMTMuMCIsaGlnaGxpZ2h0SnM6IjExLjExLjEiLGFwZXhjaGFydHM6IjUuMy42Iix0aXB0YXA6IjIuMjMuMCIsZm9udGF3ZXNvbWU6IjcuMS4wIn0sWDI9Imh0dHBzOi8vY2RuLmpzZGVsaXZyLm5ldC9ucG0ifSk7dmFyIEwyLE9mdD1iKCgpPT57aFYoKTtMMj1jbGFzcyB0e3N0YXRpYyBpbnN0YW5jZTt4dGVybUxpYj1udWxsO3h0ZXJtRml0QWRkb25MaWI9bnVsbDt4dGVybVNlYXJjaEFkZG9uTGliPW51bGw7aGlnaGxpZ2h0SnNMaWI9bnVsbDthcGV4Q2hhcnRzTGliPW51bGw7dGlwdGFwTGliPW51bGw7eHRlcm1Mb2FkaW5nUHJvbWlzZT1udWxsO3h0ZXJtRml0QWRkb25Mb2FkaW5nUHJvbWlzZT1udWxsO3h0ZXJtU2VhcmNoQWRkb25Mb2FkaW5nUHJvbWlzZT1udWxsO2hpZ2hsaWdodEpzTG9hZGluZ1Byb21pc2U9bnVsbDthcGV4Q2hhcnRzTG9hZGluZ1Byb21pc2U9bnVsbDt0aXB0YXBMb2FkaW5nUHJvbWlzZT1udWxsO2NvbnN0cnVjdG9yKCl7fXN0YXRpYyBnZXRJbnN0YW5jZSgpe3JldHVybiB0Lmluc3RhbmNlfHwodC5pbnN0YW5jZT1uZXcgdCksdC5pbnN0YW5jZX1hc3luYyBsb2FkWHRlcm0oKXtyZXR1cm4gdGhpcy54dGVybUxpYj90aGlzLnh0ZXJtTGliOnRoaXMueHRlcm1Mb2FkaW5nUHJvbWlzZT90aGlzLnh0ZXJtTG9hZGluZ1Byb21pc2U6KHRoaXMueHRlcm1Mb2FkaW5nUHJvbWlzZT0oYXN5bmMoKT0+e2xldCBhPWF3YWl0IGltcG9ydChgJHtYMn0veHRlcm1AJHtLaS54dGVybX0vK2VzbWApO3JldHVybiBhd2FpdCB0aGlzLmluamVjdFh0ZXJtU3R5bGVzKCksdGhpcy54dGVybUxpYj17VGVybWluYWw6YS5UZXJtaW5hbH0sdGhpcy54dGVybUxpYn0pKCksdGhpcy54dGVybUxvYWRpbmdQcm9taXNlKX1hc3luYyBsb2FkWHRlcm1GaXRBZGRvbigpe3JldHVybiB0aGlzLnh0ZXJtRml0QWRkb25MaWI/dGhpcy54dGVybUZpdEFkZG9uTGliOnRoaXMueHRlcm1GaXRBZGRvbkxvYWRpbmdQcm9taXNlP3RoaXMueHRlcm1GaXRBZGRvbkxvYWRpbmdQcm9taXNlOih0aGlzLnh0ZXJtRml0QWRkb25Mb2FkaW5nUHJvbWlzZT0oYXN5bmMoKT0+e2xldCBhPWF3YWl0IGltcG9ydChgJHtYMn0veHRlcm0tYWRkb24tZml0QCR7S2kueHRlcm1BZGRvbkZpdH0vK2VzbWApO3JldHVybiB0aGlzLnh0ZXJtRml0QWRkb25MaWI9e0ZpdEFkZG9uOmEuRml0QWRkb259LHRoaXMueHRlcm1GaXRBZGRvbkxpYn0pKCksdGhpcy54dGVybUZpdEFkZG9uTG9hZGluZ1Byb21pc2UpfWFzeW5jIGxvYWRYdGVybVNlYXJjaEFkZG9uKCl7cmV0dXJuIHRoaXMueHRlcm1TZWFyY2hBZGRvbkxpYj90aGlzLnh0ZXJtU2VhcmNoQWRkb25MaWI6dGhpcy54dGVybVNlYXJjaEFkZG9uTG9hZGluZ1Byb21pc2U/dGhpcy54dGVybVNlYXJjaEFkZG9uTG9hZGluZ1Byb21pc2U6KHRoaXMueHRlcm1TZWFyY2hBZGRvbkxvYWRpbmdQcm9taXNlPShhc3luYygpPT57bGV0IGE9YXdhaXQgaW1wb3J0KGAke1gyfS94dGVybS1hZGRvbi1zZWFyY2hAJHtLaS54dGVybUFkZG9uU2VhcmNofS8rZXNtYCk7cmV0dXJuIHRoaXMueHRlcm1TZWFyY2hBZGRvbkxpYj17U2VhcmNoQWRkb246YS5TZWFyY2hBZGRvbn0sdGhpcy54dGVybVNlYXJjaEFkZG9uTGlifSkoKSx0aGlzLnh0ZXJtU2VhcmNoQWRkb25Mb2FkaW5nUHJvbWlzZSl9YXN5bmMgaW5qZWN0WHRlcm1TdHlsZXMoKXtsZXQgZT0ieHRlcm0tY2RuLXN0eWxlcyI7aWYoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoZSkpcmV0dXJuO2xldCBhPWAke1gyfS94dGVybUAke0tpLnh0ZXJtfS9jc3MveHRlcm0uY3NzYCxyPWF3YWl0KGF3YWl0IGZldGNoKGEpKS50ZXh0KCkscz1gCi8qIEZpeCB4dGVybS5qcyBXaWR0aENhY2hlIG1lYXN1cmVtZW50IGNvbnRhaW5lciBjYXVzaW5nIGhvcml6b250YWwgc2Nyb2xsYmFyICovCi8qIHh0ZXJtIGNyZWF0ZXMgdGhpcyBvbiBkb2N1bWVudC5ib2R5IC0gbW92ZSBpdCBvZmYtc2NyZWVuIGhvcml6b250YWxseSB0b28gKi8KYm9keSA+IGRpdltzdHlsZSo9InRvcDogLTUwMDAwcHgiXVtzdHlsZSo9IndpZHRoOiA1MDAwMHB4Il0gewogIGxlZnQ6IC01MDAwMHB4ICFpbXBvcnRhbnQ7Cn0KYCxuPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInN0eWxlIik7bi5pZD1lLG4udGV4dENvbnRlbnQ9citzLGRvY3VtZW50LmhlYWQuYXBwZW5kQ2hpbGQobil9YXN5bmMgbG9hZEhpZ2hsaWdodEpzKCl7cmV0dXJuIHRoaXMuaGlnaGxpZ2h0SnNMaWI/dGhpcy5oaWdobGlnaHRKc0xpYjp0aGlzLmhpZ2hsaWdodEpzTG9hZGluZ1Byb21pc2U/dGhpcy5oaWdobGlnaHRKc0xvYWRpbmdQcm9taXNlOih0aGlzLmhpZ2hsaWdodEpzTG9hZGluZ1Byb21pc2U9KGFzeW5jKCk9PntsZXQgYT1hd2FpdCBpbXBvcnQoYCR7WDJ9L2hpZ2hsaWdodC5qc0Ake0tpLmhpZ2hsaWdodEpzfS8rZXNtYCk7cmV0dXJuIHRoaXMuaGlnaGxpZ2h0SnNMaWI9YS5kZWZhdWx0LHRoaXMuaGlnaGxpZ2h0SnNMaWJ9KSgpLHRoaXMuaGlnaGxpZ2h0SnNMb2FkaW5nUHJvbWlzZSl9YXN5bmMgbG9hZEFwZXhDaGFydHMoKXtyZXR1cm4gdGhpcy5hcGV4Q2hhcnRzTGliP3RoaXMuYXBleENoYXJ0c0xpYjp0aGlzLmFwZXhDaGFydHNMb2FkaW5nUHJvbWlzZT90aGlzLmFwZXhDaGFydHNMb2FkaW5nUHJvbWlzZToodGhpcy5hcGV4Q2hhcnRzTG9hZGluZ1Byb21pc2U9KGFzeW5jKCk9PntsZXQgYT1hd2FpdCBpbXBvcnQoYCR7WDJ9L2FwZXhjaGFydHNAJHtLaS5hcGV4Y2hhcnRzfS8rZXNtYCk7cmV0dXJuIHRoaXMuYXBleENoYXJ0c0xpYj1hLmRlZmF1bHQsdGhpcy5hcGV4Q2hhcnRzTGlifSkoKSx0aGlzLmFwZXhDaGFydHNMb2FkaW5nUHJvbWlzZSl9YXN5bmMgbG9hZFRpcHRhcCgpe3JldHVybiB0aGlzLnRpcHRhcExpYj90aGlzLnRpcHRhcExpYjp0aGlzLnRpcHRhcExvYWRpbmdQcm9taXNlP3RoaXMudGlwdGFwTG9hZGluZ1Byb21pc2U6KHRoaXMudGlwdGFwTG9hZGluZ1Byb21pc2U9KGFzeW5jKCk9PntsZXQgZT1LaS50aXB0YXAsW2EsaSxyLHMsbixvXT1hd2FpdCBQcm9taXNlLmFsbChbaW1wb3J0KGAke1gyfS9AdGlwdGFwL2NvcmVAJHtlfS8rZXNtYCksaW1wb3J0KGAke1gyfS9AdGlwdGFwL3N0YXJ0ZXIta2l0QCR7ZX0vK2VzbWApLGltcG9ydChgJHtYMn0vQHRpcHRhcC9leHRlbnNpb24tdW5kZXJsaW5lQCR7ZX0vK2VzbWApLGltcG9ydChgJHtYMn0vQHRpcHRhcC9leHRlbnNpb24tdGV4dC1hbGlnbkAke2V9Lytlc21gKSxpbXBvcnQoYCR7WDJ9L0B0aXB0YXAvZXh0ZW5zaW9uLWxpbmtAJHtlfS8rZXNtYCksaW1wb3J0KGAke1gyfS9AdGlwdGFwL2V4dGVuc2lvbi10eXBvZ3JhcGh5QCR7ZX0vK2VzbWApXSk7cmV0dXJuIHRoaXMudGlwdGFwTGliPXtFZGl0b3I6YS5FZGl0b3IsU3RhcnRlcktpdDppLmRlZmF1bHR8fGkuU3RhcnRlcktpdCxVbmRlcmxpbmU6ci5kZWZhdWx0fHxyLlVuZGVybGluZSxUZXh0QWxpZ246cy5kZWZhdWx0fHxzLlRleHRBbGlnbixMaW5rOm4uZGVmYXVsdHx8bi5MaW5rLFR5cG9ncmFwaHk6by5kZWZhdWx0fHxvLlR5cG9ncmFwaHl9LHRoaXMudGlwdGFwTGlifSkoKSx0aGlzLnRpcHRhcExvYWRpbmdQcm9taXNlKX1hc3luYyBwcmVsb2FkQWxsKCl7YXdhaXQgUHJvbWlzZS5hbGwoW3RoaXMubG9hZFh0ZXJtKCksdGhpcy5sb2FkWHRlcm1GaXRBZGRvbigpLHRoaXMubG9hZFh0ZXJtU2VhcmNoQWRkb24oKSx0aGlzLmxvYWRIaWdobGlnaHRKcygpLHRoaXMubG9hZEFwZXhDaGFydHMoKSx0aGlzLmxvYWRUaXB0YXAoKV0pfWlzTG9hZGVkKGUpe3N3aXRjaChlKXtjYXNlInh0ZXJtIjpyZXR1cm4gdGhpcy54dGVybUxpYiE9PW51bGw7Y2FzZSJ4dGVybUZpdEFkZG9uIjpyZXR1cm4gdGhpcy54dGVybUZpdEFkZG9uTGliIT09bnVsbDtjYXNlInh0ZXJtU2VhcmNoQWRkb24iOnJldHVybiB0aGlzLnh0ZXJtU2VhcmNoQWRkb25MaWIhPT1udWxsO2Nhc2UiaGlnaGxpZ2h0SnMiOnJldHVybiB0aGlzLmhpZ2hsaWdodEpzTGliIT09bnVsbDtjYXNlImFwZXhDaGFydHMiOnJldHVybiB0aGlzLmFwZXhDaGFydHNMaWIhPT1udWxsO2Nhc2UidGlwdGFwIjpyZXR1cm4gdGhpcy50aXB0YXBMaWIhPT1udWxsO2RlZmF1bHQ6cmV0dXJuITF9fX19KTt2YXIgdW89YigoKT0+e09mdCgpO2hWKCl9KTt2YXIganIsbDIsUmZ0LGRWPWIoKCk9Pnt1ZSgpO1R0KCk7RWZ0KCk7SWZ0KCk7RmZ0KCk7dW8oKTtqcj1mdW5jdGlvbih0LGUsYSxpLHIscyl7ZnVuY3Rpb24gbih4KXtpZih4IT09dm9pZCAwJiZ0eXBlb2YgeCE9ImZ1bmN0aW9uIil0aHJvdyBuZXcgVHlwZUVycm9yKCJGdW5jdGlvbiBleHBlY3RlZCIpO3JldHVybiB4fWZvcih2YXIgbz1pLmtpbmQsZD1vPT09ImdldHRlciI/ImdldCI6bz09PSJzZXR0ZXIiPyJzZXQiOiJ2YWx1ZSIsYz0hZSYmdD9pLnN0YXRpYz90OnQucHJvdG90eXBlOm51bGwsaD1lfHwoYz9PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGMsaS5uYW1lKTp7fSksbCxmPSExLGc9YS5sZW5ndGgtMTtnPj0wO2ctLSl7dmFyIHk9e307Zm9yKHZhciB2IGluIGkpeVt2XT12PT09ImFjY2VzcyI/e306aVt2XTtmb3IodmFyIHYgaW4gaS5hY2Nlc3MpeS5hY2Nlc3Nbdl09aS5hY2Nlc3Nbdl07eS5hZGRJbml0aWFsaXplcj1mdW5jdGlvbih4KXtpZihmKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBhZGQgaW5pdGlhbGl6ZXJzIGFmdGVyIGRlY29yYXRpb24gaGFzIGNvbXBsZXRlZCIpO3MucHVzaChuKHh8fG51bGwpKX07dmFyIG09KDAsYVtnXSkobz09PSJhY2Nlc3NvciI/e2dldDpoLmdldCxzZXQ6aC5zZXR9OmhbZF0seSk7aWYobz09PSJhY2Nlc3NvciIpe2lmKG09PT12b2lkIDApY29udGludWU7aWYobT09PW51bGx8fHR5cGVvZiBtIT0ib2JqZWN0Iil0aHJvdyBuZXcgVHlwZUVycm9yKCJPYmplY3QgZXhwZWN0ZWQiKTsobD1uKG0uZ2V0KSkmJihoLmdldD1sKSwobD1uKG0uc2V0KSkmJihoLnNldD1sKSwobD1uKG0uaW5pdCkpJiZyLnVuc2hpZnQobCl9ZWxzZShsPW4obSkpJiYobz09PSJmaWVsZCI/ci51bnNoaWZ0KGwpOmhbZF09bCl9YyYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGMsaS5uYW1lLGgpLGY9ITB9LGwyPWZ1bmN0aW9uKHQsZSxhKXtmb3IodmFyIGk9YXJndW1lbnRzLmxlbmd0aD4yLHI9MDtyPGUubGVuZ3RoO3IrKylhPWk/ZVtyXS5jYWxsKHQsYSk6ZVtyXS5jYWxsKHQpO3JldHVybiBpP2E6dm9pZCAwfSxSZnQ9KCgpPT57bGV0IHQ9W3BlKCJkZWVzLWNoYXJ0LWFyZWEiKV0sZSxhPVtdLGkscj14ZSxzLG49W10sbz1bXSxkLGM9W10saD1bXSxsLGY9W10sZz1bXSx5LHY9W10sbT1bXSx4LE09W10sUz1bXSxGLF89W10saz1bXSxOLEw9W10sQT1bXSxxLEM9W10sej1bXSxFLFQ9W10sJD1bXTt2YXIgVj1jbGFzcyBleHRlbmRzIHJ7c3RhdGlje2k9dGhpc31zdGF0aWN7bGV0IFI9dHlwZW9mIFN5bWJvbD09ImZ1bmN0aW9uIiYmU3ltYm9sLm1ldGFkYXRhP09iamVjdC5jcmVhdGUocltTeW1ib2wubWV0YWRhdGFdPz9udWxsKTp2b2lkIDA7cz1bSigpXSxkPVtJKCldLGw9W0koe3R5cGU6QXJyYXl9KV0seT1bSSh7YXR0cmlidXRlOiExfSldLHg9W0koe3R5cGU6TnVtYmVyfSldLEY9W0koe3R5cGU6Qm9vbGVhbn0pXSxOPVtJKHt0eXBlOlN0cmluZ30pXSxxPVtJKHt0eXBlOk51bWJlcn0pXSxFPVtJKHt0eXBlOk51bWJlcn0pXSxqcih0aGlzLG51bGwscyx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImNoYXJ0IixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpVPT4iY2hhcnQiaW4gVSxnZXQ6VT0+VS5jaGFydCxzZXQ6KFUscmUpPT57VS5jaGFydD1yZX19LG1ldGFkYXRhOlJ9LG4sbyksanIodGhpcyxudWxsLGQse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJsYWJlbCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6VT0+ImxhYmVsImluIFUsZ2V0OlU9PlUubGFiZWwsc2V0OihVLHJlKT0+e1UubGFiZWw9cmV9fSxtZXRhZGF0YTpSfSxjLGgpLGpyKHRoaXMsbnVsbCxsLHtraW5kOiJhY2Nlc3NvciIsbmFtZToic2VyaWVzIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpVPT4ic2VyaWVzImluIFUsZ2V0OlU9PlUuc2VyaWVzLHNldDooVSxyZSk9PntVLnNlcmllcz1yZX19LG1ldGFkYXRhOlJ9LGYsZyksanIodGhpcyxudWxsLHkse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJ5QXhpc0Zvcm1hdHRlciIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6VT0+InlBeGlzRm9ybWF0dGVyImluIFUsZ2V0OlU9PlUueUF4aXNGb3JtYXR0ZXIsc2V0OihVLHJlKT0+e1UueUF4aXNGb3JtYXR0ZXI9cmV9fSxtZXRhZGF0YTpSfSx2LG0pLGpyKHRoaXMsbnVsbCx4LHtraW5kOiJhY2Nlc3NvciIsbmFtZToicm9sbGluZ1dpbmRvdyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6VT0+InJvbGxpbmdXaW5kb3ciaW4gVSxnZXQ6VT0+VS5yb2xsaW5nV2luZG93LHNldDooVSxyZSk9PntVLnJvbGxpbmdXaW5kb3c9cmV9fSxtZXRhZGF0YTpSfSxNLFMpLGpyKHRoaXMsbnVsbCxGLHtraW5kOiJhY2Nlc3NvciIsbmFtZToicmVhbHRpbWVNb2RlIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpVPT4icmVhbHRpbWVNb2RlImluIFUsZ2V0OlU9PlUucmVhbHRpbWVNb2RlLHNldDooVSxyZSk9PntVLnJlYWx0aW1lTW9kZT1yZX19LG1ldGFkYXRhOlJ9LF8sayksanIodGhpcyxudWxsLE4se2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJ5QXhpc1NjYWxpbmciLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOlU9PiJ5QXhpc1NjYWxpbmciaW4gVSxnZXQ6VT0+VS55QXhpc1NjYWxpbmcsc2V0OihVLHJlKT0+e1UueUF4aXNTY2FsaW5nPXJlfX0sbWV0YWRhdGE6Un0sTCxBKSxqcih0aGlzLG51bGwscSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InlBeGlzTWF4IixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpVPT4ieUF4aXNNYXgiaW4gVSxnZXQ6VT0+VS55QXhpc01heCxzZXQ6KFUscmUpPT57VS55QXhpc01heD1yZX19LG1ldGFkYXRhOlJ9LEMseiksanIodGhpcyxudWxsLEUse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJhdXRvU2Nyb2xsSW50ZXJ2YWwiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOlU9PiJhdXRvU2Nyb2xsSW50ZXJ2YWwiaW4gVSxnZXQ6VT0+VS5hdXRvU2Nyb2xsSW50ZXJ2YWwsc2V0OihVLHJlKT0+e1UuYXV0b1Njcm9sbEludGVydmFsPXJlfX0sbWV0YWRhdGE6Un0sVCwkKSxqcihudWxsLGU9e3ZhbHVlOml9LHQse2tpbmQ6ImNsYXNzIixuYW1lOmkubmFtZSxtZXRhZGF0YTpSfSxudWxsLGEpLFY9aT1lLnZhbHVlLFImJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShpLFN5bWJvbC5tZXRhZGF0YSx7ZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITAsdmFsdWU6Un0pfXN0YXRpYyBkZW1vPURmdDtzdGF0aWMgZGVtb0dyb3Vwcz1bIkNoYXJ0Il07I2U9bDIodGhpcyxuLHZvaWQgMCk7Z2V0IGNoYXJ0KCl7cmV0dXJuIHRoaXMuI2V9c2V0IGNoYXJ0KFIpe3RoaXMuI2U9Un0jdD0obDIodGhpcyxvKSxsMih0aGlzLGMsIlVudGl0bGVkIENoYXJ0IikpO2dldCBsYWJlbCgpe3JldHVybiB0aGlzLiN0fXNldCBsYWJlbChSKXt0aGlzLiN0PVJ9I2E9KGwyKHRoaXMsaCksbDIodGhpcyxmLFtdKSk7Z2V0IHNlcmllcygpe3JldHVybiB0aGlzLiNhfXNldCBzZXJpZXMoUil7dGhpcy4jYT1SfWdldCBjaGFydFNlcmllcygpe3JldHVybiB0aGlzLmludGVybmFsQ2hhcnREYXRhLmxlbmd0aD4wP3RoaXMuaW50ZXJuYWxDaGFydERhdGE6dGhpcy5zZXJpZXN9I2k9KGwyKHRoaXMsZyksbDIodGhpcyx2LFI9PmAke1J9IE1icHNgKSk7Z2V0IHlBeGlzRm9ybWF0dGVyKCl7cmV0dXJuIHRoaXMuI2l9c2V0IHlBeGlzRm9ybWF0dGVyKFIpe3RoaXMuI2k9Un0jcj0obDIodGhpcyxtKSxsMih0aGlzLE0sMCkpO2dldCByb2xsaW5nV2luZG93KCl7cmV0dXJuIHRoaXMuI3J9c2V0IHJvbGxpbmdXaW5kb3coUil7dGhpcy4jcj1SfSNzPShsMih0aGlzLFMpLGwyKHRoaXMsXywhMSkpO2dldCByZWFsdGltZU1vZGUoKXtyZXR1cm4gdGhpcy4jc31zZXQgcmVhbHRpbWVNb2RlKFIpe3RoaXMuI3M9Un0jbj0obDIodGhpcyxrKSxsMih0aGlzLEwsImR5bmFtaWMiKSk7Z2V0IHlBeGlzU2NhbGluZygpe3JldHVybiB0aGlzLiNufXNldCB5QXhpc1NjYWxpbmcoUil7dGhpcy4jbj1SfSNvPShsMih0aGlzLEEpLGwyKHRoaXMsQywxMDApKTtnZXQgeUF4aXNNYXgoKXtyZXR1cm4gdGhpcy4jb31zZXQgeUF4aXNNYXgoUil7dGhpcy4jbz1SfSNsPShsMih0aGlzLHopLGwyKHRoaXMsVCwxZTMpKTtnZXQgYXV0b1Njcm9sbEludGVydmFsKCl7cmV0dXJuIHRoaXMuI2x9c2V0IGF1dG9TY3JvbGxJbnRlcnZhbChSKXt0aGlzLiNsPVJ9cmVzaXplT2JzZXJ2ZXI9bDIodGhpcywkKTtyZXNpemVUaW1lb3V0O2ludGVybmFsQ2hhcnREYXRhPVtdO2F1dG9TY3JvbGxUaW1lcj1udWxsO0RFQlVHX1JFU0laRT0hMTtDSEFSVF9DT0xPUlM9e2Rhcms6WyJoc2woMjE3LjIgOTEuMiUgNTkuOCUpIiwiaHNsKDE3My40IDgwLjQlIDQwJSkiLCJoc2woMjgwLjMgODcuNCUgNjYuNyUpIiwiaHNsKDI0LjYgOTUlIDUzLjElKSJdLGxpZ2h0OlsiaHNsKDIyMi4yIDQ3LjQlIDUxLjIlKSIsImhzbCgxNDIuMSA3Ni4yJSAzNi4zJSkiLCJoc2woMjgwLjMgNDcuNyUgNTAuMiUpIiwiaHNsKDIwLjUgOTAuMiUgNDguMiUpIl19O2NvbnN0cnVjdG9yKCl7c3VwZXIoKSx2MS5zZXR1cCgpLHRoaXMucmVzaXplT2JzZXJ2ZXI9bmV3IFJlc2l6ZU9ic2VydmVyKFI9Pnt0aGlzLnJlc2l6ZVRpbWVvdXQmJmNsZWFyVGltZW91dCh0aGlzLnJlc2l6ZVRpbWVvdXQpLHRoaXMucmVzaXplVGltZW91dD13aW5kb3cuc2V0VGltZW91dCgoKT0+e2lmKHRoaXMuY2hhcnQpe2lmKHRoaXMuREVCVUdfUkVTSVpFJiZSLmxlbmd0aD4wKXtsZXQgVT1SWzBdO2NvbnNvbGUubG9nKCJEZWVzQ2hhcnRBcmVhIC0gUmVzaXplIGRldGVjdGVkOiIse3dpZHRoOlUuY29udGVudFJlY3Qud2lkdGgsaGVpZ2h0OlUuY29udGVudFJlY3QuaGVpZ2h0fSl9dGhpcy5yZXNpemVDaGFydCgpfX0sMTAwKX0pLHRoaXMucmVnaXN0ZXJHYXJiYWdlRnVuY3Rpb24oYXN5bmMoKT0+e2lmKHRoaXMucmVzaXplVGltZW91dCYmY2xlYXJUaW1lb3V0KHRoaXMucmVzaXplVGltZW91dCksdGhpcy5yZXNpemVPYnNlcnZlciYmdGhpcy5yZXNpemVPYnNlcnZlci5kaXNjb25uZWN0KCksdGhpcy5zdG9wQXV0b1Njcm9sbCgpLHRoaXMuY2hhcnQpdHJ5e3RoaXMuY2hhcnQuZGVzdHJveSgpLHRoaXMuY2hhcnQ9bnVsbH1jYXRjaChSKXtjb25zb2xlLmVycm9yKCJFcnJvciBkZXN0cm95aW5nIGNoYXJ0OiIsUil9fSl9YXN5bmMgY29ubmVjdGVkQ2FsbGJhY2soKXtzdXBlci5jb25uZWN0ZWRDYWxsYmFjaygpLHRoaXMuY2hhcnQmJihhd2FpdCBuZXcgUHJvbWlzZShSPT5yZXF1ZXN0QW5pbWF0aW9uRnJhbWUoUikpLGF3YWl0IHRoaXMucmVzaXplQ2hhcnQoKSl9c3RhdGljIHN0eWxlcz1QZnQ7cmVuZGVyKCl7cmV0dXJuIE5mdCh0aGlzKX1hc3luYyBmaXJzdFVwZGF0ZWQoKXthd2FpdCB0aGlzLmRvbXRvb2xzUHJvbWlzZTtsZXQgUj1hd2FpdCBMMi5nZXRJbnN0YW5jZSgpLmxvYWRBcGV4Q2hhcnRzKCk7YXdhaXQgbmV3IFByb21pc2Uob2U9PnJlcXVlc3RBbmltYXRpb25GcmFtZShvZSkpO2xldCBVPXRoaXMuc2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yKCIubWFpbmJveCIpLHJlPXRoaXMuc2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yKCIuY2hhcnRDb250YWluZXIiKTtpZighVXx8IXJlKXtjb25zb2xlLmVycm9yKCJDaGFydCBjb250YWluZXJzIG5vdCBmb3VuZCIpO3JldHVybn1sZXQgaj13aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZShyZSksbWU9cGFyc2VJbnQoai5wYWRkaW5nVG9wLDEwKSx3ZT1wYXJzZUludChqLnBhZGRpbmdCb3R0b20sMTApLEg9cGFyc2VJbnQoai5wYWRkaW5nTGVmdCwxMCksY2U9cGFyc2VJbnQoai5wYWRkaW5nUmlnaHQsMTApLGtlPVUuY2xpZW50V2lkdGgtSC1jZSxXPVUub2Zmc2V0SGVpZ2h0LW1lLXdlLEQ9dGhpcy5zZXJpZXMubGVuZ3RoPjA/dGhpcy5zZXJpZXM6W3tuYW1lOiJjcHUiLGRhdGE6W3t4OiIyMDI1LTAxLTE1VDAzOjAwOjAwIix5OjI1fSx7eDoiMjAyNS0wMS0xNVQwNzowMDowMCIseTozMH0se3g6IjIwMjUtMDEtMTVUMTE6MDA6MDAiLHk6MjB9LHt4OiIyMDI1LTAxLTE1VDE1OjAwOjAwIix5OjM1fSx7eDoiMjAyNS0wMS0xNVQxOTowMDowMCIseToyNX1dfSx7bmFtZToibWVtb3J5IixkYXRhOlt7eDoiMjAyNS0wMS0xNVQwMzowMDowMCIseToxMH0se3g6IjIwMjUtMDEtMTVUMDc6MDA6MDAiLHk6MTJ9LHt4OiIyMDI1LTAxLTE1VDExOjAwOjAwIix5OjEwfSx7eDoiMjAyNS0wMS0xNVQxNTowMDowMCIseTozMH0se3g6IjIwMjUtMDEtMTVUMTk6MDA6MDAiLHk6NDB9XX1dO3RoaXMuaW50ZXJuYWxDaGFydERhdGE9RDtsZXQgTz0hdGhpcy5nb0JyaWdodCxaPU8/ImRhcmsiOiJsaWdodCI7dmFyIFk9e3NlcmllczpELGNoYXJ0Ont3aWR0aDprZXx8MTAwLGhlaWdodDpXfHwxMDAsdHlwZToiYXJlYSIsYmFja2dyb3VuZDoidHJhbnNwYXJlbnQiLHRvb2xiYXI6e3Nob3c6ITF9LGFuaW1hdGlvbnM6e2VuYWJsZWQ6IXRoaXMucmVhbHRpbWVNb2RlLHNwZWVkOjQwMCxhbmltYXRlR3JhZHVhbGx5OntlbmFibGVkOiExLGRlbGF5OjB9LGR5bmFtaWNBbmltYXRpb246e2VuYWJsZWQ6IXRoaXMucmVhbHRpbWVNb2RlLHNwZWVkOjM1MH19LHpvb206e2VuYWJsZWQ6ITF9LHNlbGVjdGlvbjp7ZW5hYmxlZDohMX19LGRhdGFMYWJlbHM6e2VuYWJsZWQ6ITF9LHN0cm9rZTp7d2lkdGg6MixjdXJ2ZToic21vb3RoIn0seGF4aXM6e3R5cGU6ImRhdGV0aW1lIixsYWJlbHM6e2Zvcm1hdDoiSEg6bW06c3MiLGRhdGV0aW1lVVRDOiExLHN0eWxlOntjb2xvcnM6W08/ImhzbCgwIDAlIDYzLjklKSI6ImhzbCgwIDAlIDIwJSkiXSxmb250U2l6ZToiMTJweCIsZm9udEZhbWlseTonLWFwcGxlLXN5c3RlbSwgQmxpbmtNYWNTeXN0ZW1Gb250LCAiU2Vnb2UgVUkiLCBzYW5zLXNlcmlmJyxmb250V2VpZ2h0OiI0MDAifX0sYXhpc0JvcmRlcjp7c2hvdzohMX0sYXhpc1RpY2tzOntzaG93OiExfX0seWF4aXM6e21pbjowLG1heDp0aGlzLnlBeGlzU2NhbGluZz09PSJkeW5hbWljIj92b2lkIDA6dGhpcy55QXhpc01heCxsYWJlbHM6e2Zvcm1hdHRlcjp0aGlzLnlBeGlzRm9ybWF0dGVyLHN0eWxlOntjb2xvcnM6W08/ImhzbCgwIDAlIDYzLjklKSI6ImhzbCgwIDAlIDIwJSkiXSxmb250U2l6ZToiMTJweCIsZm9udEZhbWlseTonLWFwcGxlLXN5c3RlbSwgQmxpbmtNYWNTeXN0ZW1Gb250LCAiU2Vnb2UgVUkiLCBzYW5zLXNlcmlmJyxmb250V2VpZ2h0OiI0MDAifX0sYXhpc0JvcmRlcjp7c2hvdzohMX0sYXhpc1RpY2tzOntzaG93OiExfX0sdG9vbHRpcDp7c2hhcmVkOiEwLGludGVyc2VjdDohMSxmb2xsb3dDdXJzb3I6ITAseDp7Zm9ybWF0OiJkZC9NTS95eSBISDptbSJ9LGN1c3RvbTooe3NlcmllczpvZSxkYXRhUG9pbnRJbmRleDpnZSx3OmJlfSk9PntsZXQgQj1iZS5jb25maWcudGhlbWUubW9kZT09PSJkYXJrIixQPUI/ImhzbCgwIDAlIDklKSI6ImhzbCgwIDAlIDEwMCUpIixLPUI/ImhzbCgwIDAlIDk1JSkiOiJoc2woMCAwJSA5JSkiLGZlPUI/ImhzbCgwIDAlIDE0LjklKSI6ImhzbCgwIDAlIDg5LjglKSIsZGU9YmUuY29uZmlnLnlheGlzWzBdPy5sYWJlbHM/LmZvcm1hdHRlcnx8KGhlPT5oZS50b1N0cmluZygpKSxfZT1gPGRpdiBzdHlsZT0icGFkZGluZzogMTJweDsgYmFja2dyb3VuZDogJHtQfTsgY29sb3I6ICR7S307IGJvcmRlci1yYWRpdXM6IDZweDsgYm94LXNoYWRvdzogMCAycHggOHB4IDAgaHNsKDAgMCUgMCUgLyAke0I/IjAuMiI6IjAuMSJ9KTsgYm9yZGVyOiAxcHggc29saWQgJHtmZX07Zm9udC1mYW1pbHk6IC1hcHBsZS1zeXN0ZW0sIEJsaW5rTWFjU3lzdGVtRm9udCwgJ1NlZ29lIFVJJywgc2Fucy1zZXJpZjsgZm9udC1zaXplOiAxMnB4OyI+YDtyZXR1cm4gb2UuZm9yRWFjaCgoaGUsdGUpPT57bGV0IHplPWJlLmdsb2JhbHMuc2VyaWVzTmFtZXNbdGVdLEZlPWhlW2dlXSxXZT1iZS5nbG9iYWxzLmNvbG9yc1t0ZV0seWU9ZGUoRmUpO19lKz1gPGRpdiBzdHlsZT0iZGlzcGxheTogZmxleDsgYWxpZ24taXRlbXM6IGNlbnRlcjsgZ2FwOiA4cHg7IG1hcmdpbjogJHt0ZT4wPyI2cHgiOiIwIn0gMDsiPgogICAgICAgICAgICAgIDxzcGFuIHN0eWxlPSJkaXNwbGF5OiBpbmxpbmUtYmxvY2s7IHdpZHRoOiAxMHB4OyBoZWlnaHQ6IDEwcHg7IGJhY2tncm91bmQ6ICR7V2V9OyBib3JkZXItcmFkaXVzOiAycHg7Ij48L3NwYW4+CiAgICAgICAgICAgICAgPHNwYW4gc3R5bGU9ImZvbnQtd2VpZ2h0OiA1MDA7Ij4ke3plfTo8L3NwYW4+CiAgICAgICAgICAgICAgPHNwYW4gc3R5bGU9Im1hcmdpbi1sZWZ0OiBhdXRvOyBmb250LXdlaWdodDogNjAwOyI+JHt5ZX08L3NwYW4+CiAgICAgICAgICAgIDwvZGl2PmB9KSxfZSs9IjwvZGl2PiIsX2V9fSxncmlkOnt4YXhpczp7bGluZXM6e3Nob3c6ITF9fSx5YXhpczp7bGluZXM6e3Nob3c6ITB9fSxib3JkZXJDb2xvcjpPPyJoc2woMCAwJSAxNC45JSkiOiJoc2woMCAwJSA5NCUpIixzdHJva2VEYXNoQXJyYXk6MCxwYWRkaW5nOnt0b3A6MTAscmlnaHQ6MjAsYm90dG9tOjEwLGxlZnQ6MjB9fSxmaWxsOnt0eXBlOiJncmFkaWVudCIsZ3JhZGllbnQ6e3NoYWRlOk8/ImRhcmsiOiJsaWdodCIsdHlwZToidmVydGljYWwiLHNoYWRlSW50ZW5zaXR5Oi4xLG9wYWNpdHlGcm9tOk8/LjI6LjMsb3BhY2l0eVRvOjAsc3RvcHM6WzAsMTAwXX19LGNvbG9yczpPP3RoaXMuQ0hBUlRfQ09MT1JTLmRhcms6dGhpcy5DSEFSVF9DT0xPUlMubGlnaHQsdGhlbWU6e21vZGU6Wn19O3RyeXt0aGlzLmNoYXJ0PW5ldyBSKHRoaXMuc2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yKCIuY2hhcnRDb250YWluZXIiKSxZKSxhd2FpdCB0aGlzLmNoYXJ0LnJlbmRlcigpLGF3YWl0IG5ldyBQcm9taXNlKGdlPT5zZXRUaW1lb3V0KGdlLDEwMCkpLGF3YWl0IHRoaXMucmVzaXplQ2hhcnQoKTtsZXQgb2U9dGhpcy5zaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3IoIi5tYWluYm94Iik7b2UmJnRoaXMucmVzaXplT2JzZXJ2ZXImJih0aGlzLnJlc2l6ZU9ic2VydmVyLmRpc2Nvbm5lY3QoKSx0aGlzLnJlc2l6ZU9ic2VydmVyLm9ic2VydmUob2UpLHRoaXMuREVCVUdfUkVTSVpFJiZjb25zb2xlLmxvZygiRGVlc0NoYXJ0QXJlYSAtIFJlc2l6ZU9ic2VydmVyIGF0dGFjaGVkIHRvIG1haW5ib3giKSl9Y2F0Y2gob2Upe2NvbnNvbGUuZXJyb3IoIkZhaWxlZCB0byBpbml0aWFsaXplIGNoYXJ0OiIsb2UpfX1hc3luYyB1cGRhdGVkKFIpe3N1cGVyLnVwZGF0ZWQoUiksUi5oYXMoImdvQnJpZ2h0IikmJnRoaXMuY2hhcnQmJmF3YWl0IHRoaXMudXBkYXRlQ2hhcnRUaGVtZSgpLFIuaGFzKCJzZXJpZXMiKSYmdGhpcy5jaGFydCYmdGhpcy5zZXJpZXMubGVuZ3RoPjAmJmF3YWl0IHRoaXMudXBkYXRlU2VyaWVzKHRoaXMuc2VyaWVzKSxSLmhhcygieUF4aXNGb3JtYXR0ZXIiKSYmdGhpcy5jaGFydCYmYXdhaXQgdGhpcy5jaGFydC51cGRhdGVPcHRpb25zKHt5YXhpczp7bGFiZWxzOntmb3JtYXR0ZXI6dGhpcy55QXhpc0Zvcm1hdHRlcn19fSksUi5oYXMoInJlYWx0aW1lTW9kZSIpJiZ0aGlzLmNoYXJ0JiYoYXdhaXQgdGhpcy5jaGFydC51cGRhdGVPcHRpb25zKHtjaGFydDp7YW5pbWF0aW9uczp7ZW5hYmxlZDohdGhpcy5yZWFsdGltZU1vZGUsc3BlZWQ6NDAwLGFuaW1hdGVHcmFkdWFsbHk6e2VuYWJsZWQ6ITEsZGVsYXk6MH0sZHluYW1pY0FuaW1hdGlvbjp7ZW5hYmxlZDohdGhpcy5yZWFsdGltZU1vZGUsc3BlZWQ6MzUwfX19fSksdGhpcy5yZWFsdGltZU1vZGUmJnRoaXMucm9sbGluZ1dpbmRvdz4wJiZ0aGlzLmF1dG9TY3JvbGxJbnRlcnZhbD4wP3RoaXMuc3RhcnRBdXRvU2Nyb2xsKCk6dGhpcy5zdG9wQXV0b1Njcm9sbCgpKSxSLmhhcygiYXV0b1Njcm9sbEludGVydmFsIikmJnRoaXMuY2hhcnQmJih0aGlzLnN0b3BBdXRvU2Nyb2xsKCksdGhpcy5yZWFsdGltZU1vZGUmJnRoaXMucm9sbGluZ1dpbmRvdz4wJiZ0aGlzLmF1dG9TY3JvbGxJbnRlcnZhbD4wJiZ0aGlzLnN0YXJ0QXV0b1Njcm9sbCgpKSwoUi5oYXMoInlBeGlzU2NhbGluZyIpfHxSLmhhcygieUF4aXNNYXgiKSkmJnRoaXMuY2hhcnQmJmF3YWl0IHRoaXMuY2hhcnQudXBkYXRlT3B0aW9ucyh7eWF4aXM6e21pbjowLG1heDp0aGlzLnlBeGlzU2NhbGluZz09PSJkeW5hbWljIj92b2lkIDA6dGhpcy55QXhpc01heH19KX1hc3luYyB1cGRhdGVTZXJpZXMoUixVPSEwKXtpZih0aGlzLmNoYXJ0KXRyeXtpZih0aGlzLmludGVybmFsQ2hhcnREYXRhPVIsdGhpcy5yb2xsaW5nV2luZG93PjAmJnRoaXMucmVhbHRpbWVNb2RlKXtsZXQgaj1EYXRlLm5vdygpLXRoaXMucm9sbGluZ1dpbmRvdyxtZT1SLm1hcCh3ZT0+KHtuYW1lOndlLm5hbWUsZGF0YTp3ZS5kYXRhLmZpbHRlcihIPT50eXBlb2YgSD09Im9iamVjdCImJkghPT1udWxsJiYieCJpbiBIP25ldyBEYXRlKEgueCkuZ2V0VGltZSgpPmo6ITEpfSkpO2lmKG1lLnNvbWUod2U9PndlLmRhdGEubGVuZ3RoPjApKXtpZih0aGlzLnlBeGlzU2NhbGluZz09PSJkeW5hbWljIil7bGV0IHdlPW1lLmZsYXRNYXAoSD0+SC5kYXRhLm1hcChjZT0+Y2UueSkpO2lmKHdlLmxlbmd0aD4wKXtsZXQgSD1NYXRoLm1heCguLi53ZSksY2U9TWF0aC5jZWlsKEgqMS4xKTthd2FpdCB0aGlzLmNoYXJ0LnVwZGF0ZU9wdGlvbnMoe3lheGlzOnttaW46MCxtYXg6Y2V9fSwhMSwhMSl9fWF3YWl0IHRoaXMuY2hhcnQudXBkYXRlU2VyaWVzKG1lLCExKX19ZWxzZSBhd2FpdCB0aGlzLmNoYXJ0LnVwZGF0ZVNlcmllcyhSLFUpfWNhdGNoKHJlKXtjb25zb2xlLmVycm9yKCJGYWlsZWQgdG8gdXBkYXRlIGNoYXJ0IHNlcmllczoiLHJlKX19YXN5bmMgdXBkYXRlVGltZVdpbmRvdygpe2lmKCF0aGlzLmNoYXJ0fHx0aGlzLnJvbGxpbmdXaW5kb3c8PTApcmV0dXJuO2xldCBSPURhdGUubm93KCksVT1SLXRoaXMucm9sbGluZ1dpbmRvdzthd2FpdCB0aGlzLmNoYXJ0LnVwZGF0ZU9wdGlvbnMoe3hheGlzOnttaW46VSxtYXg6UixsYWJlbHM6e2Zvcm1hdDoiSEg6bW06c3MiLGRhdGV0aW1lVVRDOiExLHN0eWxlOntjb2xvcnM6W3RoaXMuZ29CcmlnaHQ/ImhzbCgwIDAlIDIwJSkiOiJoc2woMCAwJSA2My45JSkiXSxmb250U2l6ZToiMTJweCIsZm9udEZhbWlseTonLWFwcGxlLXN5c3RlbSwgQmxpbmtNYWNTeXN0ZW1Gb250LCAiU2Vnb2UgVUkiLCBzYW5zLXNlcmlmJyxmb250V2VpZ2h0OiI0MDAifX0sdGlja0Ftb3VudDo2fX0sITEsITEpfWFzeW5jIGFwcGVuZERhdGEoUil7dGhpcy5jaGFydCYmdGhpcy5jaGFydC5hcHBlbmREYXRhKFIpfWFzeW5jIHVwZGF0ZU9wdGlvbnMoUixVLHJlKXtpZih0aGlzLmNoYXJ0KXJldHVybiB0aGlzLmNoYXJ0LnVwZGF0ZU9wdGlvbnMoUixVLHJlKX1hc3luYyByZXNpemVDaGFydCgpe2lmKHRoaXMuY2hhcnQpe3RoaXMuREVCVUdfUkVTSVpFJiZjb25zb2xlLmxvZygiRGVlc0NoYXJ0QXJlYSAtIHJlc2l6ZUNoYXJ0IGNhbGxlZCIpO3RyeXtsZXQgUj10aGlzLnNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvcigiLm1haW5ib3giKSxVPXRoaXMuc2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yKCIuY2hhcnRDb250YWluZXIiKTtpZighUnx8IVUpcmV0dXJuO1Iub2Zmc2V0SGVpZ2h0O2xldCByZT13aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZShVKSxqPXBhcnNlSW50KHJlLnBhZGRpbmdUb3AsMTApLG1lPXBhcnNlSW50KHJlLnBhZGRpbmdCb3R0b20sMTApLHdlPXBhcnNlSW50KHJlLnBhZGRpbmdMZWZ0LDEwKSxIPXBhcnNlSW50KHJlLnBhZGRpbmdSaWdodCwxMCksY2U9Ui5jbGllbnRXaWR0aC13ZS1ILGtlPVIub2Zmc2V0SGVpZ2h0LWotbWU7Y2U+MCYma2U+MCYmKHRoaXMuREVCVUdfUkVTSVpFJiZjb25zb2xlLmxvZygiRGVlc0NoYXJ0QXJlYSAtIFVwZGF0aW5nIGNoYXJ0IGRpbWVuc2lvbnM6Iix7d2lkdGg6Y2UsaGVpZ2h0OmtlfSksYXdhaXQgdGhpcy5jaGFydC51cGRhdGVPcHRpb25zKHtjaGFydDp7d2lkdGg6Y2UsaGVpZ2h0OmtlfX0sITAsITEpKX1jYXRjaChSKXtjb25zb2xlLmVycm9yKCJGYWlsZWQgdG8gcmVzaXplIGNoYXJ0OiIsUil9fX1hc3luYyBmb3JjZVJlc2l6ZSgpe2F3YWl0IHRoaXMucmVzaXplQ2hhcnQoKX1zdGFydEF1dG9TY3JvbGwoKXt0aGlzLmF1dG9TY3JvbGxUaW1lcnx8KHRoaXMuYXV0b1Njcm9sbFRpbWVyPXdpbmRvdy5zZXRJbnRlcnZhbCgoKT0+e3RoaXMudXBkYXRlVGltZVdpbmRvdygpfSx0aGlzLmF1dG9TY3JvbGxJbnRlcnZhbCkpfXN0b3BBdXRvU2Nyb2xsKCl7dGhpcy5hdXRvU2Nyb2xsVGltZXImJih3aW5kb3cuY2xlYXJJbnRlcnZhbCh0aGlzLmF1dG9TY3JvbGxUaW1lciksdGhpcy5hdXRvU2Nyb2xsVGltZXI9bnVsbCl9YXN5bmMgdXBkYXRlQ2hhcnRUaGVtZSgpe2lmKCF0aGlzLmNoYXJ0KXJldHVybjtsZXQgUj0hdGhpcy5nb0JyaWdodCxVPVI/ImRhcmsiOiJsaWdodCI7YXdhaXQgdGhpcy5jaGFydC51cGRhdGVPcHRpb25zKHt0aGVtZTp7bW9kZTpVfSxjb2xvcnM6Uj90aGlzLkNIQVJUX0NPTE9SUy5kYXJrOnRoaXMuQ0hBUlRfQ09MT1JTLmxpZ2h0LHhheGlzOntsYWJlbHM6e3N0eWxlOntjb2xvcnM6W1I/ImhzbCgwIDAlIDYzLjklKSI6ImhzbCgwIDAlIDIwJSkiXX19fSx5YXhpczp7bGFiZWxzOntzdHlsZTp7Y29sb3JzOltSPyJoc2woMCAwJSA2My45JSkiOiJoc2woMCAwJSAyMCUpIl19fX0sZ3JpZDp7Ym9yZGVyQ29sb3I6Uj8iaHNsKDAgMCUgMTQuOSUpIjoiaHNsKDAgMCUgOTQlKSJ9LGZpbGw6e2dyYWRpZW50OntzaGFkZTpSPyJkYXJrIjoibGlnaHQiLG9wYWNpdHlGcm9tOlI/LjI6LjN9fX0pfXN0YXRpY3tsMihpLGEpfX07cmV0dXJuIFY9aX0pKCl9KTt2YXIgQmZ0PWIoKCk9PntkVigpfSk7dmFyIEhmdCxxZnQ9YigoKT0+e3VlKCk7eDEoKTtIZnQ9KCk9PndgCiAgICA8ZGVlcy1kZW1vd3JhcHBlciAucnVuQWZ0ZXJSZW5kZXI9JHthc3luYyB0PT57bGV0IGU9dC5xdWVyeVNlbGVjdG9yKCIjc3RydWN0dXJlZC1sb2ciKSxhPXQucXVlcnlTZWxlY3RvcigiI3Jhdy1sb2ciKSxpLHIscz1bIlNlcnZlciIsIkRhdGFiYXNlIiwiQVBJIiwiQXV0aCIsIkNhY2hlIiwiUXVldWUiLCJXZWJTb2NrZXQiLCJTY2hlZHVsZXIiXSxuPXtkZWJ1ZzpbIkxvYWRpbmcgbW9kdWxlOiB7e21vZHVsZX19IiwiQ2FjaGUgaGl0IGZvciBrZXk6IHt7a2V5fX0iLCJTUUwgcXVlcnkgZXhlY3V0ZWQgaW4ge3t0aW1lfX1tcyIsIlJlcXVlc3QgaGVhZGVyczoge3toZWFkZXJzfX0iLCJFbnZpcm9ubWVudCB2YXJpYWJsZSBsb2FkZWQ6IHt7dmFyfX0iXSxpbmZvOlsiUmVxdWVzdCByZWNlaXZlZDoge3ttZXRob2R9fSB7e3BhdGh9fSIsIlVzZXIge3t1c2VySWR9fSBhdXRoZW50aWNhdGVkIHN1Y2Nlc3NmdWxseSIsIlByb2Nlc3Npbmcgam9iIHt7am9iSWR9fSBmcm9tIHF1ZXVlIiwnU2NoZWR1bGVkIHRhc2sgInt7dGFza319IiBzdGFydGVkJywiV2ViU29ja2V0IGNvbm5lY3Rpb24gZXN0YWJsaXNoZWQgZnJvbSB7e2lwfX0iXSx3YXJuOlsiU2xvdyBxdWVyeSBkZXRlY3RlZDoge3txdWVyeX19ICh7e3RpbWV9fW1zKSIsIk1lbW9yeSB1c2FnZSBhdCB7e3BlcmNlbnR9fSUiLCJSYXRlIGxpbWl0IGFwcHJvYWNoaW5nIGZvciBJUCB7e2lwfX0iLCJEZXByZWNhdGVkIEFQSSBlbmRwb2ludCBjYWxsZWQ6IHt7ZW5kcG9pbnR9fSIsIkNlcnRpZmljYXRlIGV4cGlyZXMgaW4ge3tkYXlzfX0gZGF5cyJdLGVycm9yOlsiRGF0YWJhc2UgY29ubmVjdGlvbiBsb3N0OiB7e2Vycm9yfX0iLCJGYWlsZWQgdG8gcHJvY2VzcyByZXF1ZXN0OiB7e2Vycm9yfX0iLCJBdXRoZW50aWNhdGlvbiBmYWlsZWQgZm9yIHVzZXIge3t1c2VyfX0iLCJGaWxlIG5vdCBmb3VuZDoge3twYXRofX0iLCJTZXJ2aWNlIHVuYXZhaWxhYmxlOiB7e3NlcnZpY2V9fSJdLHN1Y2Nlc3M6WyJTZXJ2ZXIgc3RhcnRlZCBzdWNjZXNzZnVsbHkgb24gcG9ydCB7e3BvcnR9fSIsIkRhdGFiYXNlIG1pZ3JhdGlvbiBjb21wbGV0ZWQiLCJCYWNrdXAgY29tcGxldGVkOiB7e3NpemV9fSBNQiIsIlNTTCBjZXJ0aWZpY2F0ZSByZW5ld2VkIiwiSGVhbHRoIGNoZWNrIHBhc3NlZDogYWxsIHN5c3RlbXMgb3BlcmF0aW9uYWwiXX0sbz1bIlx4MUJbOTBtMjAyNC0wMS0xNVQxMDoyMzo0NS4xMjNaXHgxQlswbSBceDFCWzM2bUlORk9ceDFCWzBtICBbbmdpbnhdIEdFVCAvYXBpL2hlYWx0aCAyMDAgLSAybXMiLCJceDFCWzkwbTIwMjQtMDEtMTVUMTA6MjM6NDUuNDU2Wlx4MUJbMG0gXHgxQlszM21XQVJOXHgxQlswbSAgW3JlZGlzXSBDb25uZWN0aW9uIHBvb2wgcnVubmluZyBsb3c6IDMvMTAiLCJceDFCWzkwbTIwMjQtMDEtMTVUMTA6MjM6NDUuNzg5Wlx4MUJbMG0gXHgxQlszMW1FUlJPUlx4MUJbMG0gW21vbmdvZGJdIFF1ZXJ5IHRpbWVvdXQgYWZ0ZXIgMzAwMDBtcyIsIlx4MUJbOTBtMjAyNC0wMS0xNVQxMDoyMzo0Ni4wMTJaXHgxQlswbSBceDFCWzM2bUlORk9ceDFCWzBtICBbYXBwXSBQcm9jZXNzaW5nIGJhdGNoIGpvYiAje3tqb2JJZH19IiwiXHgxQls5MG0yMDI0LTAxLTE1VDEwOjIzOjQ2LjM0NVpceDFCWzBtIFx4MUJbMzJtT0tceDFCWzBtICAgIFtoZWFsdGhdIEFsbCBzZXJ2aWNlcyBoZWFsdGh5IiwiXHgxQls5MG0yMDI0LTAxLTE1VDEwOjIzOjQ2LjY3OFpceDFCWzBtIFx4MUJbMzZtSU5GT1x4MUJbMG0gIFtrYWZrYV0gTWVzc2FnZSBjb25zdW1lZCBmcm9tIHRvcGljOiBldmVudHMiLCJceDFCWzkwbTIwMjQtMDEtMTVUMTA6MjM6NDcuMDAxWlx4MUJbMG0gXHgxQlszNW1ERUJVR1x4MUJbMG0gW2dycGNdIFJlcXVlc3QgcmVjZWl2ZWQ6IEdldFVzZXIoaWQ9e3t1c2VySWR9fSkiLCJceDFCWzkwbTIwMjQtMDEtMTVUMTA6MjM6NDcuMjM0Wlx4MUJbMG0gXHgxQlszMW1FUlJPUlx4MUJbMG0gW2F1dGhdIFRva2VuIHZhbGlkYXRpb24gZmFpbGVkOiBleHBpcmVkIiwiXHgxQls5MG0yMDI0LTAxLTE1VDEwOjIzOjQ3LjU2N1pceDFCWzBtIFx4MUJbMzNtV0FSTlx4MUJbMG0gIFtyYXRlLWxpbWl0XSBJUCB7e2lwfX0gYXBwcm9hY2hpbmcgcmF0ZSBsaW1pdCIsIlx4MUJbOTBtMjAyNC0wMS0xNVQxMDoyMzo0Ny44OTBaXHgxQlswbSBceDFCWzM2bUlORk9ceDFCWzBtICBbd2Vic29ja2V0XSBDbGllbnQgY29ubmVjdGVkOiBzZXNzaW9uPXt7c2Vzc2lvbn19IixgXHgxQlszMW1FcnJvcjogQ29ubmVjdGlvbiByZWZ1c2VkXHgxQlswbQogICAgYXQgVGNwQ29ubmVjdGlvbi5jb25uZWN0ICgvYXBwL25vZGVfbW9kdWxlcy9wZy9saWIvY29ubmVjdGlvbi5qczoxMjoxNSkKICAgIGF0IFBvb2wuY29ubmVjdCAoL2FwcC9ub2RlX21vZHVsZXMvcGcvbGliL3Bvb2wuanM6NDU6MjMpCiAgICBhdCBhc3luYyBEYXRhYmFzZVNlcnZpY2UucXVlcnkgKC9hcHAvc3JjL2RiL3NlcnZpY2UudHM6ODk6MTIpYF0sZD0oKT0+e2xldCB2PVsiZGVidWciLCJpbmZvIiwid2FybiIsImVycm9yIiwic3VjY2VzcyJdLG09Wy4yLC41LC4xNSwuMSwuMDVdLHg9TWF0aC5yYW5kb20oKSxNPTAsUz0iaW5mbyI7Zm9yKGxldCBMPTA7TDxtLmxlbmd0aDtMKyspaWYoTSs9bVtMXSx4PE0pe1M9dltMXTticmVha31sZXQgRj1zW01hdGguZmxvb3IoTWF0aC5yYW5kb20oKSpzLmxlbmd0aCldLF89bltTXSxOPV9bTWF0aC5mbG9vcihNYXRoLnJhbmRvbSgpKl8ubGVuZ3RoKV0ucmVwbGFjZSgie3ttb2R1bGV9fSIsWyJleHByZXNzIiwibW9uZ29vc2UiLCJyZWRpcyIsInNvY2tldC5pbyJdW01hdGguZmxvb3IoTWF0aC5yYW5kb20oKSo0KV0pLnJlcGxhY2UoInt7a2V5fX0iLCJ1c2VyOiIrTWF0aC5mbG9vcihNYXRoLnJhbmRvbSgpKjFlMykpLnJlcGxhY2UoInt7dGltZX19IixTdHJpbmcoTWF0aC5mbG9vcihNYXRoLnJhbmRvbSgpKjUwMCkrNTApKS5yZXBsYWNlKCJ7e2hlYWRlcnN9fSIsIkNvbnRlbnQtVHlwZTogYXBwbGljYXRpb24vanNvbiwgQXV0aG9yaXphdGlvbjogQmVhcmVyIC4uLiIpLnJlcGxhY2UoInt7dmFyfX0iLFsiTk9ERV9FTlYiLCJEQVRBQkFTRV9VUkwiLCJBUElfS0VZIiwiUE9SVCJdW01hdGguZmxvb3IoTWF0aC5yYW5kb20oKSo0KV0pLnJlcGxhY2UoInt7bWV0aG9kfX0iLFsiR0VUIiwiUE9TVCIsIlBVVCIsIkRFTEVURSJdW01hdGguZmxvb3IoTWF0aC5yYW5kb20oKSo0KV0pLnJlcGxhY2UoInt7cGF0aH19IixbIi9hcGkvdXNlcnMiLCIvYXBpL2F1dGgvbG9naW4iLCIvYXBpL3Byb2R1Y3RzIiwiL2hlYWx0aCJdW01hdGguZmxvb3IoTWF0aC5yYW5kb20oKSo0KV0pLnJlcGxhY2UoInt7dXNlcklkfX0iLFN0cmluZyhNYXRoLmZsb29yKE1hdGgucmFuZG9tKCkqMWU0KSkpLnJlcGxhY2UoInt7am9iSWR9fSIsImpvYl8iK01hdGgucmFuZG9tKCkudG9TdHJpbmcoMzYpLnN1YnN0cmluZygyLDExKSkucmVwbGFjZSgie3t0YXNrfX0iLFsiY2xlYW51cCIsImJhY2t1cCIsInJlcG9ydC1nZW5lcmF0aW9uIiwiY2FjaGUtcmVmcmVzaCJdW01hdGguZmxvb3IoTWF0aC5yYW5kb20oKSo0KV0pLnJlcGxhY2UoInt7aXB9fSIsYDE5Mi4xNjguMS4ke01hdGguZmxvb3IoTWF0aC5yYW5kb20oKSoyNTUpfWApLnJlcGxhY2UoInt7cXVlcnl9fSIsIlNFTEVDVCAqIEZST00gdXNlcnMgV0hFUkUgLi4uIikucmVwbGFjZSgie3twZXJjZW50fX0iLFN0cmluZyhNYXRoLmZsb29yKE1hdGgucmFuZG9tKCkqMzApKzcwKSkucmVwbGFjZSgie3tlbmRwb2ludH19IiwiL2FwaS92MS9sZWdhY3kiKS5yZXBsYWNlKCJ7e2RheXN9fSIsU3RyaW5nKE1hdGguZmxvb3IoTWF0aC5yYW5kb20oKSozMCkrMSkpLnJlcGxhY2UoInt7ZXJyb3J9fSIsWyJFQ09OTlJFRlVTRUQiLCJFVElNRURPVVQiLCJFTk9URk9VTkQiXVtNYXRoLmZsb29yKE1hdGgucmFuZG9tKCkqMyldKS5yZXBsYWNlKCJ7e3VzZXJ9fSIsInVzZXJfIitNYXRoLmZsb29yKE1hdGgucmFuZG9tKCkqMWUzKSkucmVwbGFjZSgie3tzZXJ2aWNlfX0iLFsiUmVkaXMiLCJNb25nb0RCIiwiRWxhc3RpY1NlYXJjaCJdW01hdGguZmxvb3IoTWF0aC5yYW5kb20oKSozKV0pLnJlcGxhY2UoInt7cG9ydH19IixTdHJpbmcoM2UzK01hdGguZmxvb3IoTWF0aC5yYW5kb20oKSoxMCkpKS5yZXBsYWNlKCJ7e3NpemV9fSIsU3RyaW5nKE1hdGguZmxvb3IoTWF0aC5yYW5kb20oKSo1MDApKzEwMCkpO2UuYWRkTG9nKFMsTixGKX0sYz0oKT0+e2xldCB2PW9bTWF0aC5mbG9vcihNYXRoLnJhbmRvbSgpKm8ubGVuZ3RoKV0sbT1uZXcgRGF0ZSgpLnRvSVNPU3RyaW5nKCkseD12LnJlcGxhY2UoLzIwMjQtMDEtMTVUMTA6MjM6XGR7Mn1cLlxkezN9Wi9nLG0pLnJlcGxhY2UoInt7am9iSWR9fSIsU3RyaW5nKE1hdGguZmxvb3IoTWF0aC5yYW5kb20oKSoxZTQpKSkucmVwbGFjZSgie3t1c2VySWR9fSIsU3RyaW5nKE1hdGguZmxvb3IoTWF0aC5yYW5kb20oKSoxZTQpKSkucmVwbGFjZSgie3tpcH19IixgMTkyLjE2OC4xLiR7TWF0aC5mbG9vcihNYXRoLnJhbmRvbSgpKjI1NSl9YCkucmVwbGFjZSgie3tzZXNzaW9ufX0iLE1hdGgucmFuZG9tKCkudG9TdHJpbmcoMzYpLnN1YnN0cmluZygyLDExKSk7YS53cml0ZWxuUmF3KHgpfSxoPSgpPT57aWYoIWkpe2xldCB2PSgpPT57ZCgpO2xldCBtPU1hdGgucmFuZG9tKCkqMmUzKzUwMDtpPXdpbmRvdy5zZXRUaW1lb3V0KCgpPT57aSYmdigpfSxtKX07digpfX0sbD0oKT0+e2kmJih3aW5kb3cuY2xlYXJUaW1lb3V0KGkpLGk9bnVsbCl9LGY9KCk9PntpZighcil7bGV0IHY9KCk9PntjKCk7bGV0IG09TWF0aC5yYW5kb20oKSoxZTMrMjAwO3I9d2luZG93LnNldFRpbWVvdXQoKCk9PntyJiZ2KCl9LG0pfTt2KCl9fSxnPSgpPT57ciYmKHdpbmRvdy5jbGVhclRpbWVvdXQocikscj1udWxsKX07dC5xdWVyeVNlbGVjdG9yQWxsKCJkZWVzLWJ1dHRvbiIpLmZvckVhY2godj0+e3N3aXRjaCh2LnRleHRDb250ZW50Py50cmltKCkpe2Nhc2UiQWRkIFN0cnVjdHVyZWQgTG9nIjp2LmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIiwoKT0+ZCgpKTticmVhaztjYXNlIlN0YXJ0IFN0cnVjdHVyZWQiOnYuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLCgpPT5oKCkpO2JyZWFrO2Nhc2UiU3RvcCBTdHJ1Y3R1cmVkIjp2LmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIiwoKT0+bCgpKTticmVhaztjYXNlIkFkZCBEb2NrZXIgTG9nIjp2LmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIiwoKT0+YygpKTticmVhaztjYXNlIlN0YXJ0IERvY2tlciI6di5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsKCk9PmYoKSk7YnJlYWs7Y2FzZSJTdG9wIERvY2tlciI6di5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsKCk9PmcoKSk7YnJlYWt9fSl9fT4KICAgICAgPHN0eWxlPgogICAgICAgICR7UWAKICAgICAgICAgIC5kZW1vQm94IHsKICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICAgICAgICBiYWNrZ3JvdW5kOiAke3AuYmRUaGVtZSgiaHNsKDAgMCUgOTUlKSIsImhzbCgwIDAlIDUlKSIpfTsKICAgICAgICAgICAgaGVpZ2h0OiAxMDAlOwogICAgICAgICAgICB3aWR0aDogMTAwJTsKICAgICAgICAgICAgcGFkZGluZzogNDBweDsKICAgICAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDsKICAgICAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgICAgICAgZ2FwOiAyNHB4OwogICAgICAgICAgfQogICAgICAgICAgLnNlY3Rpb24gewogICAgICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICAgICAgICBnYXA6IDEycHg7CiAgICAgICAgICB9CiAgICAgICAgICAuc2VjdGlvbi10aXRsZSB7CiAgICAgICAgICAgIGNvbG9yOiAke3AuYmRUaGVtZSgiaHNsKDAgMCUgOSUpIiwiaHNsKDAgMCUgOTUlKSIpfTsKICAgICAgICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgICAgICAgICBmb250LXdlaWdodDogNjAwOwogICAgICAgICAgICBmb250LWZhbWlseTogJ0dlaXN0IFNhbnMnLCBzYW5zLXNlcmlmOwogICAgICAgICAgfQogICAgICAgICAgLnNlY3Rpb24tZGVzY3JpcHRpb24gewogICAgICAgICAgICBjb2xvcjogJHtwLmJkVGhlbWUoImhzbCgyMTUuNCAxNi4zJSA0Ni45JSkiLCJoc2woMjE1IDIwLjIlIDY1LjElKSIpfTsKICAgICAgICAgICAgZm9udC1zaXplOiAxMnB4OwogICAgICAgICAgICBmb250LWZhbWlseTogJ0dlaXN0IFNhbnMnLCBzYW5zLXNlcmlmOwogICAgICAgICAgfQogICAgICAgICAgLmNvbnRyb2xzIHsKICAgICAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICAgICAgZ2FwOiAxMHB4OwogICAgICAgICAgICBmbGV4LXdyYXA6IHdyYXA7CiAgICAgICAgICB9CiAgICAgICAgYH0KICAgICAgPC9zdHlsZT4KICAgIDxkaXYgY2xhc3M9ImRlbW9Cb3giPgogICAgICA8IS0tIFN0cnVjdHVyZWQgTG9ncyBTZWN0aW9uIC0tPgogICAgICA8ZGl2IGNsYXNzPSJzZWN0aW9uIj4KICAgICAgICA8ZGl2IGNsYXNzPSJzZWN0aW9uLXRpdGxlIj5TdHJ1Y3R1cmVkIExvZ3MgKElMb2dFbnRyeSk8L2Rpdj4KICAgICAgICA8ZGl2IGNsYXNzPSJzZWN0aW9uLWRlc2NyaXB0aW9uIj4KICAgICAgICAgIFN0cnVjdHVyZWQgbG9nIGVudHJpZXMgd2l0aCBsZXZlbCwgbWVzc2FnZSwgYW5kIHNvdXJjZS4gU3VwcG9ydHMgc2VhcmNoIGFuZCBrZXl3b3JkIGhpZ2hsaWdodGluZy4KICAgICAgICA8L2Rpdj4KICAgICAgICA8ZGl2IGNsYXNzPSJjb250cm9scyI+CiAgICAgICAgICA8ZGVlcy1idXR0b24+QWRkIFN0cnVjdHVyZWQgTG9nPC9kZWVzLWJ1dHRvbj4KICAgICAgICAgIDxkZWVzLWJ1dHRvbj5TdGFydCBTdHJ1Y3R1cmVkPC9kZWVzLWJ1dHRvbj4KICAgICAgICAgIDxkZWVzLWJ1dHRvbj5TdG9wIFN0cnVjdHVyZWQ8L2RlZXMtYnV0dG9uPgogICAgICAgIDwvZGl2PgogICAgICAgIDxkZWVzLWNoYXJ0LWxvZwogICAgICAgICAgaWQ9InN0cnVjdHVyZWQtbG9nIgogICAgICAgICAgLmxhYmVsPSR7IlByb2R1Y3Rpb24gU2VydmVyIExvZ3MifQogICAgICAgICAgLmhpZ2hsaWdodEtleXdvcmRzPSR7WyJlcnJvciIsImZhaWxlZCIsInRpbWVvdXQiXX0KICAgICAgICAgIC5zaG93TWV0cmljcz0keyEwfQogICAgICAgID48L2RlZXMtY2hhcnQtbG9nPgogICAgICA8L2Rpdj4KCiAgICAgIDwhLS0gUmF3IExvZ3MgU2VjdGlvbiAtLT4KICAgICAgPGRpdiBjbGFzcz0ic2VjdGlvbiI+CiAgICAgICAgPGRpdiBjbGFzcz0ic2VjdGlvbi10aXRsZSI+UmF3IExvZ3MgKERvY2tlci9Db250YWluZXIgU3R5bGUpPC9kaXY+CiAgICAgICAgPGRpdiBjbGFzcz0ic2VjdGlvbi1kZXNjcmlwdGlvbiI+CiAgICAgICAgICBSYXcgbG9nIG91dHB1dCB3aXRoIEFOU0kgZXNjYXBlIHNlcXVlbmNlcyBmb3IgcmVhbCBEb2NrZXIvY29udGFpbmVyIGxvZ3MuCiAgICAgICAgPC9kaXY+CiAgICAgICAgPGRpdiBjbGFzcz0iY29udHJvbHMiPgogICAgICAgICAgPGRlZXMtYnV0dG9uPkFkZCBEb2NrZXIgTG9nPC9kZWVzLWJ1dHRvbj4KICAgICAgICAgIDxkZWVzLWJ1dHRvbj5TdGFydCBEb2NrZXI8L2RlZXMtYnV0dG9uPgogICAgICAgICAgPGRlZXMtYnV0dG9uPlN0b3AgRG9ja2VyPC9kZWVzLWJ1dHRvbj4KICAgICAgICA8L2Rpdj4KICAgICAgICA8ZGVlcy1jaGFydC1sb2cKICAgICAgICAgIGlkPSJyYXctbG9nIgogICAgICAgICAgLmxhYmVsPSR7IkRvY2tlciBDb250YWluZXIgTG9ncyJ9CiAgICAgICAgICAubW9kZT0keyJyYXcifQogICAgICAgICAgLnNob3dNZXRyaWNzPSR7ITF9CiAgICAgICAgPjwvZGVlcy1jaGFydC1sb2c+CiAgICAgIDwvZGl2PgogICAgPC9kaXY+CiAgICA8L2RlZXMtZGVtb3dyYXBwZXI+CiAgYH0pO3ZhciB5aSxUMSxWZnQsamZ0PWIoKCk9Pnt1ZSgpO1R0KCk7cWZ0KCk7cWUoKTt1bygpO3lpPWZ1bmN0aW9uKHQsZSxhLGkscixzKXtmdW5jdGlvbiBuKHgpe2lmKHghPT12b2lkIDAmJnR5cGVvZiB4IT0iZnVuY3Rpb24iKXRocm93IG5ldyBUeXBlRXJyb3IoIkZ1bmN0aW9uIGV4cGVjdGVkIik7cmV0dXJuIHh9Zm9yKHZhciBvPWkua2luZCxkPW89PT0iZ2V0dGVyIj8iZ2V0IjpvPT09InNldHRlciI/InNldCI6InZhbHVlIixjPSFlJiZ0P2kuc3RhdGljP3Q6dC5wcm90b3R5cGU6bnVsbCxoPWV8fChjP09iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoYyxpLm5hbWUpOnt9KSxsLGY9ITEsZz1hLmxlbmd0aC0xO2c+PTA7Zy0tKXt2YXIgeT17fTtmb3IodmFyIHYgaW4gaSl5W3ZdPXY9PT0iYWNjZXNzIj97fTppW3ZdO2Zvcih2YXIgdiBpbiBpLmFjY2Vzcyl5LmFjY2Vzc1t2XT1pLmFjY2Vzc1t2XTt5LmFkZEluaXRpYWxpemVyPWZ1bmN0aW9uKHgpe2lmKGYpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGFkZCBpbml0aWFsaXplcnMgYWZ0ZXIgZGVjb3JhdGlvbiBoYXMgY29tcGxldGVkIik7cy5wdXNoKG4oeHx8bnVsbCkpfTt2YXIgbT0oMCxhW2ddKShvPT09ImFjY2Vzc29yIj97Z2V0OmguZ2V0LHNldDpoLnNldH06aFtkXSx5KTtpZihvPT09ImFjY2Vzc29yIil7aWYobT09PXZvaWQgMCljb250aW51ZTtpZihtPT09bnVsbHx8dHlwZW9mIG0hPSJvYmplY3QiKXRocm93IG5ldyBUeXBlRXJyb3IoIk9iamVjdCBleHBlY3RlZCIpOyhsPW4obS5nZXQpKSYmKGguZ2V0PWwpLChsPW4obS5zZXQpKSYmKGguc2V0PWwpLChsPW4obS5pbml0KSkmJnIudW5zaGlmdChsKX1lbHNlKGw9bihtKSkmJihvPT09ImZpZWxkIj9yLnVuc2hpZnQobCk6aFtkXT1sKX1jJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoYyxpLm5hbWUsaCksZj0hMH0sVDE9ZnVuY3Rpb24odCxlLGEpe2Zvcih2YXIgaT1hcmd1bWVudHMubGVuZ3RoPjIscj0wO3I8ZS5sZW5ndGg7cisrKWE9aT9lW3JdLmNhbGwodCxhKTplW3JdLmNhbGwodCk7cmV0dXJuIGk/YTp2b2lkIDB9LFZmdD0oKCk9PntsZXQgdD1bcGUoImRlZXMtY2hhcnQtbG9nIildLGUsYT1bXSxpLHI9eGUscyxuPVtdLG89W10sZCxjPVtdLGg9W10sbCxmPVtdLGc9W10seSx2PVtdLG09W10seCxNPVtdLFM9W10sRixfPVtdLGs9W10sTixMPVtdLEE9W10scSxDPVtdLHo9W10sRSxUPVtdLCQ9W10sVixSPVtdLFU9W10scmUsaj1bXSxtZT1bXTt2YXIgd2U9Y2xhc3MgZXh0ZW5kcyBye3N0YXRpY3tpPXRoaXN9c3RhdGlje2xldCBIPXR5cGVvZiBTeW1ib2w9PSJmdW5jdGlvbiImJlN5bWJvbC5tZXRhZGF0YT9PYmplY3QuY3JlYXRlKHJbU3ltYm9sLm1ldGFkYXRhXT8/bnVsbCk6dm9pZCAwO3M9W0koKV0sZD1bSSh7dHlwZTpTdHJpbmd9KV0sbD1bSSh7dHlwZTpBcnJheX0pXSx5PVtJKHt0eXBlOkJvb2xlYW59KV0seD1bSSh7dHlwZTpOdW1iZXJ9KV0sRj1bSSh7dHlwZTpBcnJheX0pXSxOPVtJKHt0eXBlOkJvb2xlYW59KV0scT1bSigpXSxFPVtKKCldLFY9W0ooKV0scmU9W0ooKV0seWkodGhpcyxudWxsLHMse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJsYWJlbCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6Y2U9PiJsYWJlbCJpbiBjZSxnZXQ6Y2U9PmNlLmxhYmVsLHNldDooY2Usa2UpPT57Y2UubGFiZWw9a2V9fSxtZXRhZGF0YTpIfSxuLG8pLHlpKHRoaXMsbnVsbCxkLHtraW5kOiJhY2Nlc3NvciIsbmFtZToibW9kZSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6Y2U9PiJtb2RlImluIGNlLGdldDpjZT0+Y2UubW9kZSxzZXQ6KGNlLGtlKT0+e2NlLm1vZGU9a2V9fSxtZXRhZGF0YTpIfSxjLGgpLHlpKHRoaXMsbnVsbCxsLHtraW5kOiJhY2Nlc3NvciIsbmFtZToibG9nRW50cmllcyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6Y2U9PiJsb2dFbnRyaWVzImluIGNlLGdldDpjZT0+Y2UubG9nRW50cmllcyxzZXQ6KGNlLGtlKT0+e2NlLmxvZ0VudHJpZXM9a2V9fSxtZXRhZGF0YTpIfSxmLGcpLHlpKHRoaXMsbnVsbCx5LHtraW5kOiJhY2Nlc3NvciIsbmFtZToiYXV0b1Njcm9sbCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6Y2U9PiJhdXRvU2Nyb2xsImluIGNlLGdldDpjZT0+Y2UuYXV0b1Njcm9sbCxzZXQ6KGNlLGtlKT0+e2NlLmF1dG9TY3JvbGw9a2V9fSxtZXRhZGF0YTpIfSx2LG0pLHlpKHRoaXMsbnVsbCx4LHtraW5kOiJhY2Nlc3NvciIsbmFtZToibWF4RW50cmllcyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6Y2U9PiJtYXhFbnRyaWVzImluIGNlLGdldDpjZT0+Y2UubWF4RW50cmllcyxzZXQ6KGNlLGtlKT0+e2NlLm1heEVudHJpZXM9a2V9fSxtZXRhZGF0YTpIfSxNLFMpLHlpKHRoaXMsbnVsbCxGLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiaGlnaGxpZ2h0S2V5d29yZHMiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmNlPT4iaGlnaGxpZ2h0S2V5d29yZHMiaW4gY2UsZ2V0OmNlPT5jZS5oaWdobGlnaHRLZXl3b3JkcyxzZXQ6KGNlLGtlKT0+e2NlLmhpZ2hsaWdodEtleXdvcmRzPWtlfX0sbWV0YWRhdGE6SH0sXyxrKSx5aSh0aGlzLG51bGwsTix7a2luZDoiYWNjZXNzb3IiLG5hbWU6InNob3dNZXRyaWNzIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpjZT0+InNob3dNZXRyaWNzImluIGNlLGdldDpjZT0+Y2Uuc2hvd01ldHJpY3Msc2V0OihjZSxrZSk9PntjZS5zaG93TWV0cmljcz1rZX19LG1ldGFkYXRhOkh9LEwsQSkseWkodGhpcyxudWxsLHEse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJzZWFyY2hRdWVyeSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6Y2U9PiJzZWFyY2hRdWVyeSJpbiBjZSxnZXQ6Y2U9PmNlLnNlYXJjaFF1ZXJ5LHNldDooY2Usa2UpPT57Y2Uuc2VhcmNoUXVlcnk9a2V9fSxtZXRhZGF0YTpIfSxDLHopLHlpKHRoaXMsbnVsbCxFLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiZmlsdGVyTW9kZSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6Y2U9PiJmaWx0ZXJNb2RlImluIGNlLGdldDpjZT0+Y2UuZmlsdGVyTW9kZSxzZXQ6KGNlLGtlKT0+e2NlLmZpbHRlck1vZGU9a2V9fSxtZXRhZGF0YTpIfSxULCQpLHlpKHRoaXMsbnVsbCxWLHtraW5kOiJhY2Nlc3NvciIsbmFtZToibWV0cmljcyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6Y2U9PiJtZXRyaWNzImluIGNlLGdldDpjZT0+Y2UubWV0cmljcyxzZXQ6KGNlLGtlKT0+e2NlLm1ldHJpY3M9a2V9fSxtZXRhZGF0YTpIfSxSLFUpLHlpKHRoaXMsbnVsbCxyZSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InRlcm1pbmFsUmVhZHkiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmNlPT4idGVybWluYWxSZWFkeSJpbiBjZSxnZXQ6Y2U9PmNlLnRlcm1pbmFsUmVhZHksc2V0OihjZSxrZSk9PntjZS50ZXJtaW5hbFJlYWR5PWtlfX0sbWV0YWRhdGE6SH0saixtZSkseWkobnVsbCxlPXt2YWx1ZTppfSx0LHtraW5kOiJjbGFzcyIsbmFtZTppLm5hbWUsbWV0YWRhdGE6SH0sbnVsbCxhKSx3ZT1pPWUudmFsdWUsSCYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGksU3ltYm9sLm1ldGFkYXRhLHtlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMCx2YWx1ZTpIfSl9c3RhdGljIGRlbW89SGZ0O3N0YXRpYyBkZW1vR3JvdXBzPVsiQ2hhcnQiLCJXb3Jrc3BhY2UiXTsjZT1UMSh0aGlzLG4sIlNlcnZlciBMb2dzIik7Z2V0IGxhYmVsKCl7cmV0dXJuIHRoaXMuI2V9c2V0IGxhYmVsKEgpe3RoaXMuI2U9SH0jdD0oVDEodGhpcyxvKSxUMSh0aGlzLGMsInN0cnVjdHVyZWQiKSk7Z2V0IG1vZGUoKXtyZXR1cm4gdGhpcy4jdH1zZXQgbW9kZShIKXt0aGlzLiN0PUh9I2E9KFQxKHRoaXMsaCksVDEodGhpcyxmLFtdKSk7Z2V0IGxvZ0VudHJpZXMoKXtyZXR1cm4gdGhpcy4jYX1zZXQgbG9nRW50cmllcyhIKXt0aGlzLiNhPUh9I2k9KFQxKHRoaXMsZyksVDEodGhpcyx2LCEwKSk7Z2V0IGF1dG9TY3JvbGwoKXtyZXR1cm4gdGhpcy4jaX1zZXQgYXV0b1Njcm9sbChIKXt0aGlzLiNpPUh9I3I9KFQxKHRoaXMsbSksVDEodGhpcyxNLDFlNCkpO2dldCBtYXhFbnRyaWVzKCl7cmV0dXJuIHRoaXMuI3J9c2V0IG1heEVudHJpZXMoSCl7dGhpcy4jcj1IfSNzPShUMSh0aGlzLFMpLFQxKHRoaXMsXyxbXSkpO2dldCBoaWdobGlnaHRLZXl3b3Jkcygpe3JldHVybiB0aGlzLiNzfXNldCBoaWdobGlnaHRLZXl3b3JkcyhIKXt0aGlzLiNzPUh9I249KFQxKHRoaXMsayksVDEodGhpcyxMLCEwKSk7Z2V0IHNob3dNZXRyaWNzKCl7cmV0dXJuIHRoaXMuI259c2V0IHNob3dNZXRyaWNzKEgpe3RoaXMuI249SH0jbz0oVDEodGhpcyxBKSxUMSh0aGlzLEMsIiIpKTtnZXQgc2VhcmNoUXVlcnkoKXtyZXR1cm4gdGhpcy4jb31zZXQgc2VhcmNoUXVlcnkoSCl7dGhpcy4jbz1IfSNsPShUMSh0aGlzLHopLFQxKHRoaXMsVCwhMSkpO2dldCBmaWx0ZXJNb2RlKCl7cmV0dXJuIHRoaXMuI2x9c2V0IGZpbHRlck1vZGUoSCl7dGhpcy4jbD1IfSNjPShUMSh0aGlzLCQpLFQxKHRoaXMsUix7ZGVidWc6MCxpbmZvOjAsd2FybjowLGVycm9yOjAsc3VjY2VzczowLHRvdGFsOjAscmF0ZTowfSkpO2dldCBtZXRyaWNzKCl7cmV0dXJuIHRoaXMuI2N9c2V0IG1ldHJpY3MoSCl7dGhpcy4jYz1IfSNkPShUMSh0aGlzLFUpLFQxKHRoaXMsaiwhMSkpO2dldCB0ZXJtaW5hbFJlYWR5KCl7cmV0dXJuIHRoaXMuI2R9c2V0IHRlcm1pbmFsUmVhZHkoSCl7dGhpcy4jZD1IfWxvZ0J1ZmZlcj0oVDEodGhpcyxtZSksW10pO3RyYWlsaW5nSGlkZGVuQ291bnQ9MDt0ZXJtaW5hbD1udWxsO2ZpdEFkZG9uPW51bGw7c2VhcmNoQWRkb249bnVsbDtyZXNpemVPYnNlcnZlcj1udWxsO3Rlcm1pbmFsVGhlbWVTdWJzY3JpcHRpb249bnVsbDtkb210b29sc0luc3RhbmNlPW51bGw7cmF0ZUJ1ZmZlcj1bXTtyYXRlSW50ZXJ2YWw9bnVsbDtzdGF0aWMgc3R5bGVzPVtDZSxwLmRlZmF1bHRTdHlsZXMsUWAKICAgICAgOmhvc3QgewogICAgICAgIGRpc3BsYXk6IGJsb2NrOwogICAgICAgIGZvbnQtZmFtaWx5OiAtYXBwbGUtc3lzdGVtLCBCbGlua01hY1N5c3RlbUZvbnQsICdTZWdvZSBVSScsIHNhbnMtc2VyaWY7CiAgICAgICAgY29sb3I6ICR7cC5iZFRoZW1lKCJoc2woMCAwJSAzLjklKSIsImhzbCgwIDAlIDk4JSkiKX07CiAgICAgIH0KCiAgICAgIC5tYWluYm94IHsKICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgICAgaGVpZ2h0OiA0MDBweDsKICAgICAgICBiYWNrZ3JvdW5kOiAke3AuYmRUaGVtZSgiaHNsKDAgMCUgMTAwJSkiLCJoc2woMCAwJSAzLjklKSIpfTsKICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAke3AuYmRUaGVtZSgiaHNsKDAgMCUgODkuOCUpIiwiaHNsKDAgMCUgMTQuOSUpIil9OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDhweDsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgICAgfQoKICAgICAgLmhlYWRlciB7CiAgICAgICAgYmFja2dyb3VuZDogJHtwLmJkVGhlbWUoImhzbCgwIDAlIDk3JSkiLCJoc2woMCAwJSA3JSkiKX07CiAgICAgICAgcGFkZGluZzogOHB4IDEycHg7CiAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICR7cC5iZFRoZW1lKCJoc2woMCAwJSA4OS44JSkiLCJoc2woMCAwJSAxNC45JSkiKX07CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGdhcDogMTJweDsKICAgICAgICBmbGV4LXNocmluazogMDsKICAgICAgICBmbGV4LXdyYXA6IHdyYXA7CiAgICAgIH0KCiAgICAgIC50aXRsZSB7CiAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDsKICAgICAgICBmb250LXNpemU6IDE0cHg7CiAgICAgICAgY29sb3I6ICR7cC5iZFRoZW1lKCJoc2woMCAwJSA5JSkiLCJoc2woMCAwJSA5NSUpIil9OwogICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7CiAgICAgIH0KCiAgICAgIC5zZWFyY2gtYm94IHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgZ2FwOiA0cHg7CiAgICAgICAgZmxleDogMTsKICAgICAgICBtaW4td2lkdGg6IDE1MHB4OwogICAgICAgIG1heC13aWR0aDogMzAwcHg7CiAgICAgIH0KCiAgICAgIC5zZWFyY2gtYm94IGlucHV0IHsKICAgICAgICBmbGV4OiAxOwogICAgICAgIHBhZGRpbmc6IDRweCA4cHg7CiAgICAgICAgZm9udC1zaXplOiAxMnB4OwogICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICR7cC5iZFRoZW1lKCJoc2woMCAwJSA4OS44JSkiLCJoc2woMCAwJSAxNC45JSkiKX07CiAgICAgICAgYm9yZGVyLXJhZGl1czogNHB4OwogICAgICAgIGJhY2tncm91bmQ6ICR7cC5iZFRoZW1lKCJoc2woMCAwJSAxMDAlKSIsImhzbCgwIDAlIDklKSIpfTsKICAgICAgICBjb2xvcjogJHtwLmJkVGhlbWUoImhzbCgwIDAlIDklKSIsImhzbCgwIDAlIDk1JSkiKX07CiAgICAgICAgb3V0bGluZTogbm9uZTsKICAgICAgfQoKICAgICAgLnNlYXJjaC1ib3ggaW5wdXQ6Zm9jdXMgewogICAgICAgIGJvcmRlci1jb2xvcjogJHtwLmJkVGhlbWUoImhzbCgyMjIuMiA0Ny40JSA1MS4yJSkiLCJoc2woMjE3LjIgOTEuMiUgNTkuOCUpIil9OwogICAgICB9CgogICAgICAuc2VhcmNoLWJveCBpbnB1dDo6cGxhY2Vob2xkZXIgewogICAgICAgIGNvbG9yOiAke3AuYmRUaGVtZSgiaHNsKDAgMCUgNjMuOSUpIiwiaHNsKDAgMCUgNDUuMSUpIil9OwogICAgICB9CgogICAgICAuc2VhcmNoLW5hdiB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBnYXA6IDJweDsKICAgICAgfQoKICAgICAgLnNlYXJjaC1uYXYgYnV0dG9uIHsKICAgICAgICBwYWRkaW5nOiA0cHggNnB4OwogICAgICAgIGZvbnQtc2l6ZTogMTFweDsKICAgICAgICBiYWNrZ3JvdW5kOiAke3AuYmRUaGVtZSgiaHNsKDAgMCUgMTAwJSkiLCJoc2woMCAwJSAxNC45JSkiKX07CiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHtwLmJkVGhlbWUoImhzbCgwIDAlIDg5LjglKSIsImhzbCgwIDAlIDE0LjklKSIpfTsKICAgICAgICBib3JkZXItcmFkaXVzOiAzcHg7CiAgICAgICAgY29sb3I6ICR7cC5iZFRoZW1lKCJoc2woMCAwJSA0NS4xJSkiLCJoc2woMCAwJSA2My45JSkiKX07CiAgICAgICAgY3Vyc29yOiBwb2ludGVyOwogICAgICAgIGxpbmUtaGVpZ2h0OiAxOwogICAgICB9CgogICAgICAuc2VhcmNoLW5hdiBidXR0b246aG92ZXIgewogICAgICAgIGJhY2tncm91bmQ6ICR7cC5iZFRoZW1lKCJoc2woMCAwJSA5NS4xJSkiLCJoc2woMCAwJSAyMCUpIil9OwogICAgICAgIGNvbG9yOiAke3AuYmRUaGVtZSgiaHNsKDAgMCUgMTUlKSIsImhzbCgwIDAlIDkzLjklKSIpfTsKICAgICAgfQoKICAgICAgLmZpbHRlci10b2dnbGUgewogICAgICAgIHBhZGRpbmc6IDRweCA4cHg7CiAgICAgICAgZm9udC1zaXplOiAxMXB4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7CiAgICAgICAgYmFja2dyb3VuZDogJHtwLmJkVGhlbWUoImhzbCgwIDAlIDEwMCUpIiwiaHNsKDAgMCUgMTQuOSUpIil9OwogICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICR7cC5iZFRoZW1lKCJoc2woMCAwJSA4OS44JSkiLCJoc2woMCAwJSAxNC45JSkiKX07CiAgICAgICAgYm9yZGVyLXJhZGl1czogNHB4OwogICAgICAgIGNvbG9yOiAke3AuYmRUaGVtZSgiaHNsKDAgMCUgNDUuMSUpIiwiaHNsKDAgMCUgNjMuOSUpIil9OwogICAgICAgIGN1cnNvcjogcG9pbnRlcjsKICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC4xNXM7CiAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDsKICAgICAgfQoKICAgICAgLmZpbHRlci10b2dnbGU6aG92ZXIgewogICAgICAgIGJhY2tncm91bmQ6ICR7cC5iZFRoZW1lKCJoc2woMCAwJSA5NS4xJSkiLCJoc2woMCAwJSAyMCUpIil9OwogICAgICAgIGNvbG9yOiAke3AuYmRUaGVtZSgiaHNsKDAgMCUgMTUlKSIsImhzbCgwIDAlIDkzLjklKSIpfTsKICAgICAgfQoKICAgICAgLmZpbHRlci10b2dnbGUuYWN0aXZlIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke3AuYmRUaGVtZSgiaHNsKDQ1IDkzJSA0NyUpIiwiaHNsKDQ1IDkzJSA0NyUpIil9OwogICAgICAgIGJvcmRlci1jb2xvcjogJHtwLmJkVGhlbWUoImhzbCg0NSA5MyUgNDclKSIsImhzbCg0NSA5MyUgNDclKSIpfTsKICAgICAgICBjb2xvcjogaHNsKDAgMCUgOSUpOwogICAgICB9CgogICAgICAuY29udHJvbHMgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgZ2FwOiA2cHg7CiAgICAgICAgbWFyZ2luLWxlZnQ6IGF1dG87CiAgICAgIH0KCiAgICAgIC5jb250cm9sLWJ1dHRvbiB7CiAgICAgICAgYmFja2dyb3VuZDogJHtwLmJkVGhlbWUoImhzbCgwIDAlIDEwMCUpIiwiaHNsKDAgMCUgMTQuOSUpIil9OwogICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICR7cC5iZFRoZW1lKCJoc2woMCAwJSA4OS44JSkiLCJoc2woMCAwJSAxNC45JSkiKX07CiAgICAgICAgYm9yZGVyLXJhZGl1czogNHB4OwogICAgICAgIHBhZGRpbmc6IDRweCAxMHB4OwogICAgICAgIGNvbG9yOiAke3AuYmRUaGVtZSgiaHNsKDAgMCUgNDUuMSUpIiwiaHNsKDAgMCUgNjMuOSUpIil9OwogICAgICAgIGN1cnNvcjogcG9pbnRlcjsKICAgICAgICBmb250LXNpemU6IDEycHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDsKICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC4xNXM7CiAgICAgIH0KCiAgICAgIC5jb250cm9sLWJ1dHRvbjpob3ZlciB7CiAgICAgICAgYmFja2dyb3VuZDogJHtwLmJkVGhlbWUoImhzbCgwIDAlIDk1LjElKSIsImhzbCgwIDAlIDIwJSkiKX07CiAgICAgICAgYm9yZGVyLWNvbG9yOiAke3AuYmRUaGVtZSgiaHNsKDAgMCUgNzkuOCUpIiwiaHNsKDAgMCUgMjUlKSIpfTsKICAgICAgICBjb2xvcjogJHtwLmJkVGhlbWUoImhzbCgwIDAlIDE1JSkiLCJoc2woMCAwJSA5My45JSkiKX07CiAgICAgIH0KCiAgICAgIC5jb250cm9sLWJ1dHRvbi5hY3RpdmUgewogICAgICAgIGJhY2tncm91bmQ6ICR7cC5iZFRoZW1lKCJoc2woMjIyLjIgNDcuNCUgNTEuMiUpIiwiaHNsKDIxNy4yIDkxLjIlIDU5LjglKSIpfTsKICAgICAgICBib3JkZXItY29sb3I6ICR7cC5iZFRoZW1lKCJoc2woMjIyLjIgNDcuNCUgNTEuMiUpIiwiaHNsKDIxNy4yIDkxLjIlIDU5LjglKSIpfTsKICAgICAgICBjb2xvcjogd2hpdGU7CiAgICAgIH0KCiAgICAgIC50ZXJtaW5hbC1jb250YWluZXIgewogICAgICAgIGZsZXg6IDE7CiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgICAgICBwYWRkaW5nOiA4cHg7CiAgICAgICAgYmFja2dyb3VuZDogJHtwLmJkVGhlbWUoImhzbCgwIDAlIDEwMCUpIiwiaHNsKDAgMCUgMy45JSkiKX07CiAgICAgIH0KCiAgICAgIC50ZXJtaW5hbC1jb250YWluZXIgLnh0ZXJtIHsKICAgICAgICBoZWlnaHQ6IDEwMCU7CiAgICAgIH0KCiAgICAgIC5sb2FkaW5nLXN0YXRlIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7CiAgICAgICAgaGVpZ2h0OiAxMDAlOwogICAgICAgIGNvbG9yOiAke3AuYmRUaGVtZSgiaHNsKDAgMCUgNDUuMSUpIiwiaHNsKDAgMCUgNjMuOSUpIil9OwogICAgICAgIGZvbnQtc3R5bGU6IGl0YWxpYzsKICAgICAgICBmb250LXNpemU6IDEzcHg7CiAgICAgIH0KCiAgICAgIC5tZXRyaWNzLWJhciB7CiAgICAgICAgYmFja2dyb3VuZDogJHtwLmJkVGhlbWUoImhzbCgwIDAlIDk3JSkiLCJoc2woMCAwJSA3JSkiKX07CiAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICR7cC5iZFRoZW1lKCJoc2woMCAwJSA4OS44JSkiLCJoc2woMCAwJSAxNC45JSkiKX07CiAgICAgICAgcGFkZGluZzogNnB4IDEycHg7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBnYXA6IDE2cHg7CiAgICAgICAgZm9udC1zaXplOiAxMXB4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7CiAgICAgICAgZmxleC1zaHJpbms6IDA7CiAgICAgIH0KCiAgICAgIC5tZXRyaWMgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBnYXA6IDRweDsKICAgICAgfQoKICAgICAgLm1ldHJpYzo6YmVmb3JlIHsKICAgICAgICBjb250ZW50OiAnJzsKICAgICAgICB3aWR0aDogOHB4OwogICAgICAgIGhlaWdodDogOHB4OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDUwJTsKICAgICAgfQoKICAgICAgLm1ldHJpYy5lcnJvcjo6YmVmb3JlIHsKICAgICAgICBiYWNrZ3JvdW5kOiBoc2woMCA4NC4yJSA2MC4yJSk7CiAgICAgIH0KCiAgICAgIC5tZXRyaWMud2Fybjo6YmVmb3JlIHsKICAgICAgICBiYWNrZ3JvdW5kOiBoc2woMjUgOTUlIDUzJSk7CiAgICAgIH0KCiAgICAgIC5tZXRyaWMuaW5mbzo6YmVmb3JlIHsKICAgICAgICBiYWNrZ3JvdW5kOiBoc2woMjIyLjIgNDcuNCUgNTEuMiUpOwogICAgICB9CgogICAgICAubWV0cmljLnN1Y2Nlc3M6OmJlZm9yZSB7CiAgICAgICAgYmFja2dyb3VuZDogaHNsKDE0Mi4xIDc2LjIlIDM2LjMlKTsKICAgICAgfQoKICAgICAgLm1ldHJpYy5kZWJ1Zzo6YmVmb3JlIHsKICAgICAgICBiYWNrZ3JvdW5kOiBoc2woMCAwJSA2My45JSk7CiAgICAgIH0KCiAgICAgIC5tZXRyaWMucmF0ZSB7CiAgICAgICAgbWFyZ2luLWxlZnQ6IGF1dG87CiAgICAgICAgY29sb3I6ICR7cC5iZFRoZW1lKCJoc2woMCAwJSA0NS4xJSkiLCJoc2woMCAwJSA2My45JSkiKX07CiAgICAgIH0KCiAgICAgIC5tZXRyaWMucmF0ZTo6YmVmb3JlIHsKICAgICAgICBkaXNwbGF5OiBub25lOwogICAgICB9CiAgICBgXTtjb25zdHJ1Y3Rvcigpe3N1cGVyKCksdjEuc2V0dXAoKX1yZW5kZXIoKXtyZXR1cm4gd2AKICAgICAgPGRpdiBjbGFzcz0ibWFpbmJveCI+CiAgICAgICAgPGRpdiBjbGFzcz0iaGVhZGVyIj4KICAgICAgICAgIDxkaXYgY2xhc3M9InRpdGxlIj4ke3RoaXMubGFiZWx9PC9kaXY+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJzZWFyY2gtYm94Ij4KICAgICAgICAgICAgPGlucHV0CiAgICAgICAgICAgICAgdHlwZT0idGV4dCIKICAgICAgICAgICAgICBwbGFjZWhvbGRlcj0iU2VhcmNoIGxvZ3MuLi4iCiAgICAgICAgICAgICAgLnZhbHVlPSR7dGhpcy5zZWFyY2hRdWVyeX0KICAgICAgICAgICAgICBAaW5wdXQ9JHtIPT50aGlzLmhhbmRsZVNlYXJjaElucHV0KEgpfQogICAgICAgICAgICAgIEBrZXlkb3duPSR7SD0+dGhpcy5oYW5kbGVTZWFyY2hLZXlkb3duKEgpfQogICAgICAgICAgICAvPgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJzZWFyY2gtbmF2Ij4KICAgICAgICAgICAgICA8YnV0dG9uIEBjbGljaz0keygpPT50aGlzLnNlYXJjaFByZXZpb3VzKCl9IHRpdGxlPSJQcmV2aW91cyBtYXRjaCI+4oaRPC9idXR0b24+CiAgICAgICAgICAgICAgPGJ1dHRvbiBAY2xpY2s9JHsoKT0+dGhpcy5zZWFyY2hOZXh0KCl9IHRpdGxlPSJOZXh0IG1hdGNoIj7ihpM8L2J1dHRvbj4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDxidXR0b24KICAgICAgICAgICAgICBjbGFzcz0iZmlsdGVyLXRvZ2dsZSAke3RoaXMuZmlsdGVyTW9kZT8iYWN0aXZlIjoiIn0iCiAgICAgICAgICAgICAgQGNsaWNrPSR7KCk9PnRoaXMudG9nZ2xlRmlsdGVyTW9kZSgpfQogICAgICAgICAgICAgIHRpdGxlPSIke3RoaXMuZmlsdGVyTW9kZT8iU3dpdGNoIHRvIGhpZ2hsaWdodCBtb2RlIjoiU3dpdGNoIHRvIGZpbHRlciBtb2RlIn0iCiAgICAgICAgICAgID4KICAgICAgICAgICAgICAke3RoaXMuZmlsdGVyTW9kZT8iRmlsdGVyIjoiSGlnaGxpZ2h0In0KICAgICAgICAgICAgPC9idXR0b24+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIDxkaXYgY2xhc3M9ImNvbnRyb2xzIj4KICAgICAgICAgICAgPGJ1dHRvbgogICAgICAgICAgICAgIGNsYXNzPSJjb250cm9sLWJ1dHRvbiAke3RoaXMuYXV0b1Njcm9sbD8iYWN0aXZlIjoiIn0iCiAgICAgICAgICAgICAgQGNsaWNrPSR7KCk9PnRoaXMudG9nZ2xlQXV0b1Njcm9sbCgpfQogICAgICAgICAgICA+CiAgICAgICAgICAgICAgQXV0byBTY3JvbGwKICAgICAgICAgICAgPC9idXR0b24+CiAgICAgICAgICAgIDxidXR0b24gY2xhc3M9ImNvbnRyb2wtYnV0dG9uIiBAY2xpY2s9JHsoKT0+dGhpcy5jbGVhckxvZ3MoKX0+CiAgICAgICAgICAgICAgQ2xlYXIKICAgICAgICAgICAgPC9idXR0b24+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICA8L2Rpdj4KCiAgICAgICAgPGRpdiBjbGFzcz0idGVybWluYWwtY29udGFpbmVyIj4KICAgICAgICAgICR7dGhpcy50ZXJtaW5hbFJlYWR5PyIiOndgPGRpdiBjbGFzcz0ibG9hZGluZy1zdGF0ZSI+TG9hZGluZyB0ZXJtaW5hbC4uLjwvZGl2PmB9CiAgICAgICAgPC9kaXY+CgogICAgICAgICR7dGhpcy5zaG93TWV0cmljcz93YAogICAgICAgICAgICAgIDxkaXYgY2xhc3M9Im1ldHJpY3MtYmFyIj4KICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJtZXRyaWMgZXJyb3IiPmVycm9yczogJHt0aGlzLm1ldHJpY3MuZXJyb3J9PC9zcGFuPgogICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9Im1ldHJpYyB3YXJuIj53YXJuczogJHt0aGlzLm1ldHJpY3Mud2Fybn08L3NwYW4+CiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0ibWV0cmljIGluZm8iPmluZm86ICR7dGhpcy5tZXRyaWNzLmluZm99PC9zcGFuPgogICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9Im1ldHJpYyBzdWNjZXNzIj5zdWNjZXNzOiAke3RoaXMubWV0cmljcy5zdWNjZXNzfTwvc3Bhbj4KICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJtZXRyaWMgZGVidWciPmRlYnVnOiAke3RoaXMubWV0cmljcy5kZWJ1Z308L3NwYW4+CiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0ibWV0cmljIHJhdGUiPiR7dGhpcy5tZXRyaWNzLnJhdGUudG9GaXhlZCgxKX0gbG9ncy9zZWM8L3NwYW4+CiAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIGA6IiJ9CiAgICAgIDwvZGl2PgogICAgYH1hc3luYyBmaXJzdFVwZGF0ZWQoKXtpZih0aGlzLmRvbXRvb2xzSW5zdGFuY2U9YXdhaXQgdGhpcy5kb210b29sc1Byb21pc2UsYXdhaXQgdGhpcy5pbml0aWFsaXplVGVybWluYWwoKSx0aGlzLmxvZ0VudHJpZXMubGVuZ3RoPjAmJnRoaXMubG9nQnVmZmVyLmxlbmd0aD09PTApe3RoaXMubG9nQnVmZmVyPVsuLi50aGlzLmxvZ0VudHJpZXNdO2ZvcihsZXQgSCBvZiB0aGlzLmxvZ0VudHJpZXMpdGhpcy51cGRhdGVNZXRyaWNzKEgubGV2ZWwpLHRoaXMud3JpdGVMb2dFbnRyeShIKX1lbHNlIGlmKHRoaXMubG9nRW50cmllcy5sZW5ndGg+MCYmdGhpcy5sb2dCdWZmZXIubGVuZ3RoPjApe2xldCBIPW5ldyBTZXQodGhpcy5sb2dCdWZmZXIubWFwKGNlPT5gJHtjZS50aW1lc3RhbXB9fCR7Y2UubWVzc2FnZX1gKSk7Zm9yKGxldCBjZSBvZiB0aGlzLmxvZ0VudHJpZXMpSC5oYXMoYCR7Y2UudGltZXN0YW1wfXwke2NlLm1lc3NhZ2V9YCl8fCh0aGlzLmxvZ0J1ZmZlci5wdXNoKGNlKSx0aGlzLnVwZGF0ZU1ldHJpY3MoY2UubGV2ZWwpLHRoaXMud3JpdGVMb2dFbnRyeShjZSkpfX1hc3luYyBpbml0aWFsaXplVGVybWluYWwoKXtsZXQgSD1MMi5nZXRJbnN0YW5jZSgpLFtjZSxrZSxXXT1hd2FpdCBQcm9taXNlLmFsbChbSC5sb2FkWHRlcm0oKSxILmxvYWRYdGVybUZpdEFkZG9uKCksSC5sb2FkWHRlcm1TZWFyY2hBZGRvbigpXSk7YXdhaXQgdGhpcy5pbmplY3RYdGVybVN0eWxlc0ludG9TaGFkb3coKSx0aGlzLnRlcm1pbmFsPW5ldyBjZS5UZXJtaW5hbCh7Y3Vyc29yQmxpbms6ITEsZGlzYWJsZVN0ZGluOiEwLGZvbnRTaXplOjEyLGZvbnRGYW1pbHk6IidTRiBNb25vJywgJ01vbmFjbycsICdDb25zb2xhcycsICdMaWJlcmF0aW9uIE1vbm8nLCAnQ291cmllciBOZXcnLCBtb25vc3BhY2UiLHRoZW1lOnRoaXMuZ2V0VGVybWluYWxUaGVtZSgpLHNjcm9sbGJhY2s6dGhpcy5tYXhFbnRyaWVzLGNvbnZlcnRFb2w6ITB9KSx0aGlzLmZpdEFkZG9uPW5ldyBrZS5GaXRBZGRvbix0aGlzLnNlYXJjaEFkZG9uPW5ldyBXLlNlYXJjaEFkZG9uLHRoaXMudGVybWluYWwubG9hZEFkZG9uKHRoaXMuZml0QWRkb24pLHRoaXMudGVybWluYWwubG9hZEFkZG9uKHRoaXMuc2VhcmNoQWRkb24pO2xldCBEPXRoaXMuc2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yKCIudGVybWluYWwtY29udGFpbmVyIik7dGhpcy50ZXJtaW5hbC5vcGVuKEQpLGF3YWl0IG5ldyBQcm9taXNlKE89PnJlcXVlc3RBbmltYXRpb25GcmFtZShPKSksdGhpcy5maXRBZGRvbi5maXQoKSx0aGlzLnJlc2l6ZU9ic2VydmVyPW5ldyBSZXNpemVPYnNlcnZlcigoKT0+e3RoaXMuZml0QWRkb24/LmZpdCgpfSksdGhpcy5yZXNpemVPYnNlcnZlci5vYnNlcnZlKEQpLHRoaXMudGVybWluYWxUaGVtZVN1YnNjcmlwdGlvbj10aGlzLmRvbXRvb2xzSW5zdGFuY2UudGhlbWVNYW5hZ2VyLnRoZW1lT2JzZXJ2YWJsZS5zdWJzY3JpYmUoKCk9Pnt0aGlzLnRlcm1pbmFsJiYodGhpcy50ZXJtaW5hbC5vcHRpb25zLnRoZW1lPXRoaXMuZ2V0VGVybWluYWxUaGVtZSgpKX0pLHRoaXMucmF0ZUludGVydmFsPXNldEludGVydmFsKCgpPT50aGlzLmNhbGN1bGF0ZVJhdGUoKSwxZTMpLHRoaXMudGVybWluYWxSZWFkeT0hMDtmb3IobGV0IE8gb2YgdGhpcy5sb2dCdWZmZXIpdGhpcy53cml0ZUxvZ0VudHJ5KE8pfXVwZGF0ZWQoSCl7aWYoc3VwZXIudXBkYXRlZChIKSxILmhhcygibG9nRW50cmllcyIpJiZ0aGlzLnRlcm1pbmFsUmVhZHkmJnRoaXMubG9nRW50cmllcy5sZW5ndGg+MCl7bGV0IGNlPUguZ2V0KCJsb2dFbnRyaWVzIil8fFtdLGtlPXRoaXMubG9nRW50cmllcztpZihjZS5sZW5ndGg9PT1rZS5sZW5ndGgmJmNlLmxlbmd0aD4wJiZjZVtjZS5sZW5ndGgtMV0udGltZXN0YW1wPT09a2Vba2UubGVuZ3RoLTFdLnRpbWVzdGFtcCYmY2VbY2UubGVuZ3RoLTFdLm1lc3NhZ2U9PT1rZVtrZS5sZW5ndGgtMV0ubWVzc2FnZSlyZXR1cm47aWYoa2UubGVuZ3RoPmNlLmxlbmd0aCYmY2UubGVuZ3RoPjAmJmNlW2NlLmxlbmd0aC0xXS50aW1lc3RhbXA9PT1rZVtjZS5sZW5ndGgtMV0udGltZXN0YW1wJiZjZVtjZS5sZW5ndGgtMV0ubWVzc2FnZT09PWtlW2NlLmxlbmd0aC0xXS5tZXNzYWdlKXtsZXQgVz1rZS5zbGljZShjZS5sZW5ndGgpO2ZvcihsZXQgRCBvZiBXKXRoaXMubG9nQnVmZmVyLnB1c2goRCksdGhpcy51cGRhdGVNZXRyaWNzKEQubGV2ZWwpLHRoaXMubG9nQnVmZmVyLmxlbmd0aD50aGlzLm1heEVudHJpZXMmJnRoaXMubG9nQnVmZmVyLnNoaWZ0KCksKCF0aGlzLmZpbHRlck1vZGV8fCF0aGlzLnNlYXJjaFF1ZXJ5fHx0aGlzLmVudHJ5TWF0Y2hlc0ZpbHRlcihEKSkmJnRoaXMud3JpdGVMb2dFbnRyeShEKTtyZXR1cm59dGhpcy5sb2dCdWZmZXI9Wy4uLmtlXSx0aGlzLnJlUmVuZGVyRmlsdGVyZWRMb2dzKCl9fWdldFRlcm1pbmFsVGhlbWUoKXtyZXR1cm4gdGhpcy5kb210b29sc0luc3RhbmNlPy50aGVtZU1hbmFnZXI/LmlzRGFya01vZGU/PyEwP3tiYWNrZ3JvdW5kOiIjMGEwYTBhIixmb3JlZ3JvdW5kOiIjZTBlMGUwIixjdXJzb3I6IiNlMGUwZTAiLHNlbGVjdGlvbkJhY2tncm91bmQ6IiM0MDQwNDAiLGJsYWNrOiIjMDAwMDAwIixyZWQ6IiNmZjU1NTUiLGdyZWVuOiIjNTBmYTdiIix5ZWxsb3c6IiNmMWZhOGMiLGJsdWU6IiM2MjcyYTQiLG1hZ2VudGE6IiNmZjc5YzYiLGN5YW46IiM4YmU5ZmQiLHdoaXRlOiIjZjhmOGYyIixicmlnaHRCbGFjazoiIzYyNzJhNCIsYnJpZ2h0UmVkOiIjZmY2ZTZlIixicmlnaHRHcmVlbjoiIzY5ZmY5NCIsYnJpZ2h0WWVsbG93OiIjZmZmZmE1IixicmlnaHRCbHVlOiIjZDZhY2ZmIixicmlnaHRNYWdlbnRhOiIjZmY5MmRmIixicmlnaHRDeWFuOiIjYTRmZmZmIixicmlnaHRXaGl0ZToiI2ZmZmZmZiJ9OntiYWNrZ3JvdW5kOiIjZmZmZmZmIixmb3JlZ3JvdW5kOiIjMzMzMzMzIixjdXJzb3I6IiMzMzMzMzMiLHNlbGVjdGlvbkJhY2tncm91bmQ6IiNhZGQ2ZmYiLGJsYWNrOiIjMDAwMDAwIixyZWQ6IiNjZDMxMzEiLGdyZWVuOiIjMDBiYzAwIix5ZWxsb3c6IiM5NDk4MDAiLGJsdWU6IiMwNDUxYTUiLG1hZ2VudGE6IiNiYzA1YmMiLGN5YW46IiMwNTk4YmMiLHdoaXRlOiIjNTU1NTU1IixicmlnaHRCbGFjazoiIzY2NjY2NiIsYnJpZ2h0UmVkOiIjY2QzMTMxIixicmlnaHRHcmVlbjoiIzE0Y2UxNCIsYnJpZ2h0WWVsbG93OiIjYjViYTAwIixicmlnaHRCbHVlOiIjMDQ1MWE1IixicmlnaHRNYWdlbnRhOiIjYmMwNWJjIixicmlnaHRDeWFuOiIjMDU5OGJjIixicmlnaHRXaGl0ZToiI2E1YTVhNSJ9fWFzeW5jIGluamVjdFh0ZXJtU3R5bGVzSW50b1NoYWRvdygpe2xldCBIPSJ4dGVybS1zaGFkb3ctc3R5bGVzIjtpZih0aGlzLnNoYWRvd1Jvb3QuZ2V0RWxlbWVudEJ5SWQoSCkpcmV0dXJuO2xldCBjZT1gJHtYMn0veHRlcm1AJHtLaS54dGVybX0vY3NzL3h0ZXJtLmNzc2AsVz1hd2FpdChhd2FpdCBmZXRjaChjZSkpLnRleHQoKSxEPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInN0eWxlIik7RC5pZD1ILEQudGV4dENvbnRlbnQ9Vyx0aGlzLnNoYWRvd1Jvb3QuYXBwZW5kQ2hpbGQoRCl9YWRkTG9nKEgsY2Usa2Upe2xldCBXPXt0aW1lc3RhbXA6bmV3IERhdGUoKS50b0lTT1N0cmluZygpLGxldmVsOkgsbWVzc2FnZTpjZSxzb3VyY2U6a2V9O3RoaXMubG9nQnVmZmVyLnB1c2goVyksdGhpcy5sb2dCdWZmZXIubGVuZ3RoPnRoaXMubWF4RW50cmllcyYmdGhpcy5sb2dCdWZmZXIuc2hpZnQoKSwhdGhpcy5maWx0ZXJNb2RlfHwhdGhpcy5zZWFyY2hRdWVyeT90aGlzLndyaXRlTG9nRW50cnkoVyk6dGhpcy5lbnRyeU1hdGNoZXNGaWx0ZXIoVyk/KHRoaXMudHJhaWxpbmdIaWRkZW5Db3VudD0wLHRoaXMud3JpdGVMb2dFbnRyeShXKSk6dGhpcy51cGRhdGVUcmFpbGluZ1BsYWNlaG9sZGVyKCksdGhpcy51cGRhdGVNZXRyaWNzKFcubGV2ZWwpfXVwZGF0ZUxvZyhIKXtpZihIKWZvcihsZXQgY2Ugb2YgSCl0aGlzLmxvZ0J1ZmZlci5wdXNoKGNlKSx0aGlzLmxvZ0J1ZmZlci5sZW5ndGg+dGhpcy5tYXhFbnRyaWVzJiZ0aGlzLmxvZ0J1ZmZlci5zaGlmdCgpLCF0aGlzLmZpbHRlck1vZGV8fCF0aGlzLnNlYXJjaFF1ZXJ5P3RoaXMud3JpdGVMb2dFbnRyeShjZSk6dGhpcy5lbnRyeU1hdGNoZXNGaWx0ZXIoY2UpPyh0aGlzLnRyYWlsaW5nSGlkZGVuQ291bnQ9MCx0aGlzLndyaXRlTG9nRW50cnkoY2UpKTp0aGlzLnVwZGF0ZVRyYWlsaW5nUGxhY2Vob2xkZXIoKSx0aGlzLnVwZGF0ZU1ldHJpY3MoY2UubGV2ZWwpfXVwZGF0ZVRyYWlsaW5nUGxhY2Vob2xkZXIoKXt0aGlzLnRlcm1pbmFsJiYodGhpcy50cmFpbGluZ0hpZGRlbkNvdW50PjAmJnRoaXMudGVybWluYWwud3JpdGUoIlx4MUJbMUFceDFCWzJLXHIiKSx0aGlzLnRyYWlsaW5nSGlkZGVuQ291bnQrKyx0aGlzLndyaXRlSGlkZGVuUGxhY2Vob2xkZXIodGhpcy50cmFpbGluZ0hpZGRlbkNvdW50KSx0aGlzLmF1dG9TY3JvbGwmJnRoaXMudGVybWluYWwuc2Nyb2xsVG9Cb3R0b20oKSl9ZW50cnlNYXRjaGVzRmlsdGVyKEgpe2lmKCF0aGlzLnNlYXJjaFF1ZXJ5KXJldHVybiEwO2xldCBjZT10aGlzLnNlYXJjaFF1ZXJ5LnRvTG93ZXJDYXNlKCk7cmV0dXJuIEgubWVzc2FnZS50b0xvd2VyQ2FzZSgpLmluY2x1ZGVzKGNlKXx8SC5sZXZlbC50b0xvd2VyQ2FzZSgpLmluY2x1ZGVzKGNlKXx8KEguc291cmNlPy50b0xvd2VyQ2FzZSgpLmluY2x1ZGVzKGNlKT8/ITEpfXdyaXRlTG9nRW50cnkoSCl7aWYoIXRoaXMudGVybWluYWwpcmV0dXJuO2xldCBjZT10aGlzLmZvcm1hdExvZ0VudHJ5KEgpO3RoaXMudGVybWluYWwud3JpdGVsbihjZSksdGhpcy5hdXRvU2Nyb2xsJiZ0aGlzLnRlcm1pbmFsLnNjcm9sbFRvQm90dG9tKCl9Zm9ybWF0TG9nRW50cnkoSCl7bGV0IGNlPXRoaXMuZm9ybWF0VGltZXN0YW1wKEgudGltZXN0YW1wKSxrZT17ZGVidWc6Ilx4MUJbOTBtIixpbmZvOiJceDFCWzM2bSIsd2FybjoiXHgxQlszM20iLGVycm9yOiJceDFCWzMxbSIsc3VjY2VzczoiXHgxQlszMm0ifSxXPSJceDFCWzBtIixEPSJceDFCWzJtIixPPWAke2tlW0gubGV2ZWxdfVske0gubGV2ZWwudG9VcHBlckNhc2UoKS5wYWRFbmQoNyl9XSR7V31gLFo9SC5zb3VyY2U/YCR7RH1bJHtILnNvdXJjZX1dJHtXfSBgOiIiLFk9dGhpcy5hcHBseUhpZ2hsaWdodHMoSC5tZXNzYWdlKTtyZXR1cm5gJHtEfSR7Y2V9JHtXfSAke099ICR7Wn0ke1l9YH1mb3JtYXRUaW1lc3RhbXAoSCl7cmV0dXJuIG5ldyBEYXRlKEgpLnRvTG9jYWxlVGltZVN0cmluZygiZW4tVVMiLHtob3VyMTI6ITEsaG91cjoiMi1kaWdpdCIsbWludXRlOiIyLWRpZ2l0IixzZWNvbmQ6IjItZGlnaXQiLGZyYWN0aW9uYWxTZWNvbmREaWdpdHM6M30pfWFwcGx5SGlnaGxpZ2h0cyhIKXtsZXQgY2U9Wy4uLnRoaXMuaGlnaGxpZ2h0S2V5d29yZHNdO2lmKHRoaXMuZmlsdGVyTW9kZSYmdGhpcy5zZWFyY2hRdWVyeSYmY2UucHVzaCh0aGlzLnNlYXJjaFF1ZXJ5KSxjZS5sZW5ndGg9PT0wKXJldHVybiBIO2xldCBrZT1IO2ZvcihsZXQgVyBvZiBjZSl7bGV0IEQ9Vy5yZXBsYWNlKC9bLiorP14ke30oKXxbXF1cXF0vZywiXFwkJiIpLE89bmV3IFJlZ0V4cChgKCR7RH0pYCwiZ2kiKTtrZT1rZS5yZXBsYWNlKE8sIlx4MUJbNDNtXHgxQlszMG0kMVx4MUJbMG0iKX1yZXR1cm4ga2V9d3JpdGVSYXcoSCl7dGhpcy50ZXJtaW5hbCYmKHRoaXMudGVybWluYWwud3JpdGUoSCksdGhpcy5yZWNvcmRMb2dFdmVudCgpLHRoaXMuYXV0b1Njcm9sbCYmdGhpcy50ZXJtaW5hbC5zY3JvbGxUb0JvdHRvbSgpKX13cml0ZWxuUmF3KEgpe3RoaXMudGVybWluYWwmJih0aGlzLnRlcm1pbmFsLndyaXRlbG4oSCksdGhpcy5yZWNvcmRMb2dFdmVudCgpLHRoaXMuYXV0b1Njcm9sbCYmdGhpcy50ZXJtaW5hbC5zY3JvbGxUb0JvdHRvbSgpKX1oYW5kbGVTZWFyY2hJbnB1dChIKXtsZXQga2U9SC50YXJnZXQudmFsdWUsVz10aGlzLnNlYXJjaFF1ZXJ5IT09a2U7dGhpcy5zZWFyY2hRdWVyeT1rZSx0aGlzLmZpbHRlck1vZGUmJlc/dGhpcy5yZVJlbmRlckZpbHRlcmVkTG9ncygpOnRoaXMuc2VhcmNoUXVlcnkmJnRoaXMuc2VhcmNoQWRkb24/LmZpbmROZXh0KHRoaXMuc2VhcmNoUXVlcnkpfWhhbmRsZVNlYXJjaEtleWRvd24oSCl7SC5rZXk9PT0iRW50ZXIiP0guc2hpZnRLZXk/dGhpcy5zZWFyY2hQcmV2aW91cygpOnRoaXMuc2VhcmNoTmV4dCgpOkgua2V5PT09IkVzY2FwZSImJih0aGlzLnNlYXJjaFF1ZXJ5PSIiLEgudGFyZ2V0LnZhbHVlPSIiKX1zZWFyY2goSCl7dGhpcy5zZWFyY2hRdWVyeT1ILHRoaXMuc2VhcmNoQWRkb24/LmZpbmROZXh0KEgpfXNlYXJjaE5leHQoKXt0aGlzLnNlYXJjaFF1ZXJ5JiZ0aGlzLnNlYXJjaEFkZG9uPy5maW5kTmV4dCh0aGlzLnNlYXJjaFF1ZXJ5KX1zZWFyY2hQcmV2aW91cygpe3RoaXMuc2VhcmNoUXVlcnkmJnRoaXMuc2VhcmNoQWRkb24/LmZpbmRQcmV2aW91cyh0aGlzLnNlYXJjaFF1ZXJ5KX10b2dnbGVBdXRvU2Nyb2xsKCl7dGhpcy5hdXRvU2Nyb2xsPSF0aGlzLmF1dG9TY3JvbGwsdGhpcy5hdXRvU2Nyb2xsJiZ0aGlzLnRlcm1pbmFsJiZ0aGlzLnRlcm1pbmFsLnNjcm9sbFRvQm90dG9tKCl9dG9nZ2xlRmlsdGVyTW9kZSgpe3RoaXMuZmlsdGVyTW9kZT0hdGhpcy5maWx0ZXJNb2RlLHRoaXMucmVSZW5kZXJGaWx0ZXJlZExvZ3MoKX1yZVJlbmRlckZpbHRlcmVkTG9ncygpe2lmKHRoaXMudGVybWluYWwpe2lmKHRoaXMudGVybWluYWwuY2xlYXIoKSx0aGlzLnRyYWlsaW5nSGlkZGVuQ291bnQ9MCwhdGhpcy5maWx0ZXJNb2RlfHwhdGhpcy5zZWFyY2hRdWVyeSlmb3IobGV0IEggb2YgdGhpcy5sb2dCdWZmZXIpe2xldCBjZT10aGlzLmZvcm1hdExvZ0VudHJ5KEgpO3RoaXMudGVybWluYWwud3JpdGVsbihjZSl9ZWxzZXtsZXQgSD0wO2ZvcihsZXQgY2Ugb2YgdGhpcy5sb2dCdWZmZXIpaWYodGhpcy5lbnRyeU1hdGNoZXNGaWx0ZXIoY2UpKXtIPjAmJih0aGlzLndyaXRlSGlkZGVuUGxhY2Vob2xkZXIoSCksSD0wKTtsZXQga2U9dGhpcy5mb3JtYXRMb2dFbnRyeShjZSk7dGhpcy50ZXJtaW5hbC53cml0ZWxuKGtlKX1lbHNlIEgrKztIPjAmJih0aGlzLndyaXRlSGlkZGVuUGxhY2Vob2xkZXIoSCksdGhpcy50cmFpbGluZ0hpZGRlbkNvdW50PUgpfXRoaXMuYXV0b1Njcm9sbCYmdGhpcy50ZXJtaW5hbC5zY3JvbGxUb0JvdHRvbSgpfX13cml0ZUhpZGRlblBsYWNlaG9sZGVyKEgpe2xldCBjZT0iXHgxQlsybSIsa2U9Ilx4MUJbMG0iLFc9SD09PTE/IlsxIGxvZyBsaW5lIGhpZGRlbiBieSBmaWx0ZXIgLi4uXSI6YFske0h9IGxvZyBsaW5lcyBoaWRkZW4gYnkgZmlsdGVyIC4uLl1gO3RoaXMudGVybWluYWw/LndyaXRlbG4oYCR7Y2V9JHtXfSR7a2V9YCl9Y2xlYXJMb2dzKCl7dGhpcy50ZXJtaW5hbD8uY2xlYXIoKSx0aGlzLmxvZ0J1ZmZlcj1bXSx0aGlzLnRyYWlsaW5nSGlkZGVuQ291bnQ9MCx0aGlzLnJlc2V0TWV0cmljcygpfXNjcm9sbFRvQm90dG9tKCl7dGhpcy50ZXJtaW5hbD8uc2Nyb2xsVG9Cb3R0b20oKX11cGRhdGVNZXRyaWNzKEgpe3RoaXMubWV0cmljcz17Li4udGhpcy5tZXRyaWNzLFtIXTp0aGlzLm1ldHJpY3NbSF0rMSx0b3RhbDp0aGlzLm1ldHJpY3MudG90YWwrMX0sdGhpcy5yZWNvcmRMb2dFdmVudCgpfXJlY29yZExvZ0V2ZW50KCl7dGhpcy5yYXRlQnVmZmVyLnB1c2goRGF0ZS5ub3coKSl9Y2FsY3VsYXRlUmF0ZSgpe2xldCBIPURhdGUubm93KCk7dGhpcy5yYXRlQnVmZmVyPXRoaXMucmF0ZUJ1ZmZlci5maWx0ZXIoa2U9Pkgta2U8MWU0KTtsZXQgY2U9dGhpcy5yYXRlQnVmZmVyLmxlbmd0aC8xMDtjZSE9PXRoaXMubWV0cmljcy5yYXRlJiYodGhpcy5tZXRyaWNzPXsuLi50aGlzLm1ldHJpY3MscmF0ZTpjZX0pfXJlc2V0TWV0cmljcygpe3RoaXMubWV0cmljcz17ZGVidWc6MCxpbmZvOjAsd2FybjowLGVycm9yOjAsc3VjY2VzczowLHRvdGFsOjAscmF0ZTowfSx0aGlzLnJhdGVCdWZmZXI9W119YXN5bmMgZGlzY29ubmVjdGVkQ2FsbGJhY2soKXthd2FpdCBzdXBlci5kaXNjb25uZWN0ZWRDYWxsYmFjaygpLHRoaXMucmVzaXplT2JzZXJ2ZXImJnRoaXMucmVzaXplT2JzZXJ2ZXIuZGlzY29ubmVjdCgpLHRoaXMudGVybWluYWxUaGVtZVN1YnNjcmlwdGlvbiYmdGhpcy50ZXJtaW5hbFRoZW1lU3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCksdGhpcy5yYXRlSW50ZXJ2YWwmJmNsZWFySW50ZXJ2YWwodGhpcy5yYXRlSW50ZXJ2YWwpLHRoaXMudGVybWluYWwmJnRoaXMudGVybWluYWwuZGlzcG9zZSgpfXN0YXRpY3tUMShpLGEpfX07cmV0dXJuIHdlPWl9KSgpfSk7dmFyIFVmdD1iKCgpPT57amZ0KCl9KTt2YXIgV2Z0PWIoKCk9PntCZnQoKTtVZnQoKX0pO3ZhciBHZnQsWWZ0PWIoKCk9Pnt1ZSgpO0dmdD0oKT0+d2AKICA8c3R5bGU+CiAgICAuZGVtb1dyYXBwZXIgewogICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94OwogICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgIHdpZHRoOiAxMDAlOwogICAgICBtaW4taGVpZ2h0OiAxMDB2aDsKICAgICAgcGFkZGluZzogNDhweDsKICAgICAgYmFja2dyb3VuZDogJHtwLmJkVGhlbWUoIiNmOGY5ZmEiLCIjMGEwYTBhIil9OwogICAgICBkaXNwbGF5OiBmbGV4OwogICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICBnYXA6IDMycHg7CiAgICB9CiAgICAKICAgIC5zZWN0aW9uIHsKICAgICAgbWF4LXdpZHRoOiA5MDBweDsKICAgICAgd2lkdGg6IDEwMCU7CiAgICAgIG1hcmdpbjogMCBhdXRvOwogICAgfQogICAgCiAgICAuc2VjdGlvbi10aXRsZSB7CiAgICAgIGZvbnQtc2l6ZTogMThweDsKICAgICAgZm9udC13ZWlnaHQ6IDYwMDsKICAgICAgbWFyZ2luLWJvdHRvbTogMTZweDsKICAgICAgY29sb3I6ICR7cC5iZFRoZW1lKCIjMDkwOTBiIiwiI2ZhZmFmYSIpfTsKICAgIH0KICAgIAogICAgLnNlY3Rpb24tZGVzY3JpcHRpb24gewogICAgICBmb250LXNpemU6IDE0cHg7CiAgICAgIGNvbG9yOiAke3AuYmRUaGVtZSgiIzcxNzE3YSIsIiNhMWExYWEiKX07CiAgICAgIG1hcmdpbi1ib3R0b206IDE2cHg7CiAgICB9CiAgPC9zdHlsZT4KICA8ZGl2IGNsYXNzPSJkZW1vV3JhcHBlciI+CiAgICA8ZGl2IGNsYXNzPSJzZWN0aW9uIj4KICAgICAgPGRpdiBjbGFzcz0ic2VjdGlvbi10aXRsZSI+VHlwZVNjcmlwdCBDb2RlIEV4YW1wbGU8L2Rpdj4KICAgICAgPGRpdiBjbGFzcz0ic2VjdGlvbi1kZXNjcmlwdGlvbiI+QSBjb21wcmVoZW5zaXZlIFR5cGVTY3JpcHQgY29kZSBleGFtcGxlIHdpdGggdmFyaW91cyBzeW50YXggaGlnaGxpZ2h0aW5nLjwvZGl2PgogICAgICA8ZGVlcy1kYXRhdmlldy1jb2RlYm94IHByb2dsYW5nPSJ0eXBlc2NyaXB0Ij4KaW50ZXJmYWNlIFVzZXIgewogIGlkOiBudW1iZXI7CiAgbmFtZTogc3RyaW5nOwogIGVtYWlsOiBzdHJpbmc7CiAgaXNBY3RpdmU6IGJvb2xlYW47Cn0KCmNsYXNzIFVzZXJTZXJ2aWNlIHsKICBwcml2YXRlIHVzZXJzOiBVc2VyW10gPSBbXTsKICAKICBjb25zdHJ1Y3Rvcihwcml2YXRlIGFwaVVybDogc3RyaW5nKSB7CiAgICBjb25zb2xlLmxvZygnVXNlclNlcnZpY2UgaW5pdGlhbGl6ZWQnKTsKICB9CiAgCiAgYXN5bmMgZ2V0VXNlcnMoKTogUHJvbWlzZTxVc2VyW10+IHsKICAgIHRyeSB7CiAgICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgZmV0Y2godGhpcy5hcGlVcmwpOwogICAgICBjb25zdCBkYXRhID0gYXdhaXQgcmVzcG9uc2UuanNvbigpOwogICAgICByZXR1cm4gZGF0YS51c2VyczsKICAgIH0gY2F0Y2ggKGVycm9yKSB7CiAgICAgIGNvbnNvbGUuZXJyb3IoJ0ZhaWxlZCB0byBmZXRjaCB1c2VyczonLCBlcnJvcik7CiAgICAgIHJldHVybiBbXTsKICAgIH0KICB9CiAgCiAgYWRkVXNlcih1c2VyOiBVc2VyKTogdm9pZCB7CiAgICB0aGlzLnVzZXJzLnB1c2godXNlcik7CiAgfQp9CgovLyBVc2FnZSBleGFtcGxlCmNvbnN0IHNlcnZpY2UgPSBuZXcgVXNlclNlcnZpY2UoJ2h0dHBzOi8vYXBpLmV4YW1wbGUuY29tL3VzZXJzJyk7CmNvbnN0IHVzZXJzID0gYXdhaXQgc2VydmljZS5nZXRVc2VycygpOwpjb25zb2xlLmxvZygnRm91bmQgdXNlcnM6JywgdXNlcnMubGVuZ3RoKTsKICAgICAgPC9kZWVzLWRhdGF2aWV3LWNvZGVib3g+CiAgICA8L2Rpdj4KICAgIAogICAgPGRpdiBjbGFzcz0ic2VjdGlvbiI+CiAgICAgIDxkaXYgY2xhc3M9InNlY3Rpb24tdGl0bGUiPkphdmFTY3JpcHQgRXhhbXBsZTwvZGl2PgogICAgICA8ZGl2IGNsYXNzPSJzZWN0aW9uLWRlc2NyaXB0aW9uIj5Nb2Rlcm4gSmF2YVNjcmlwdCB3aXRoIEVTNisgZmVhdHVyZXMuPC9kaXY+CiAgICAgIDxkZWVzLWRhdGF2aWV3LWNvZGVib3ggcHJvZ2xhbmc9ImphdmFzY3JpcHQiPgovLyBBcnJheSBtYW5pcHVsYXRpb24gZXhhbXBsZXMKY29uc3QgbnVtYmVycyA9IFsxLCAyLCAzLCA0LCA1XTsKY29uc3QgZG91YmxlZCA9IG51bWJlcnMubWFwKG4gPT4gbiAqIDIpOwpjb25zdCBmaWx0ZXJlZCA9IG51bWJlcnMuZmlsdGVyKG4gPT4gbiA+IDMpOwoKLy8gT2JqZWN0IGRlc3RydWN0dXJpbmcKY29uc3QgdXNlciA9IHsgbmFtZTogJ0pvaG4nLCBhZ2U6IDMwLCBjaXR5OiAnTmV3IFlvcmsnIH07CmNvbnN0IHsgbmFtZSwgYWdlIH0gPSB1c2VyOwoKLy8gUHJvbWlzZSBoYW5kbGluZwpjb25zdCBmZXRjaERhdGEgPSBhc3luYyAodXJsKSA9PiB7CiAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCBmZXRjaCh1cmwpOwogIHJldHVybiByZXNwb25zZS5qc29uKCk7Cn07CgovLyBNb2Rlcm4gc3ludGF4CmNvbnN0IGdyZWV0ID0gKG5hbWUgPSAnV29ybGQnKSA9PiBcYEhlbGxvLCBcJHtuYW1lfSFcYDsKY29uc29sZS5sb2coZ3JlZXQoJ1NoYWRDTicpKTsKICAgICAgPC9kZWVzLWRhdGF2aWV3LWNvZGVib3g+CiAgICA8L2Rpdj4KICAgIAogICAgPGRpdiBjbGFzcz0ic2VjdGlvbiI+CiAgICAgIDxkaXYgY2xhc3M9InNlY3Rpb24tdGl0bGUiPlB5dGhvbiBFeGFtcGxlPC9kaXY+CiAgICAgIDxkaXYgY2xhc3M9InNlY3Rpb24tZGVzY3JpcHRpb24iPlB5dGhvbiBjb2RlIHdpdGggY2xhc3NlcyBhbmQgdHlwZSBoaW50cy48L2Rpdj4KICAgICAgPGRlZXMtZGF0YXZpZXctY29kZWJveCBwcm9nbGFuZz0icHl0aG9uIj4KZnJvbSB0eXBpbmcgaW1wb3J0IExpc3QsIE9wdGlvbmFsCmltcG9ydCBhc3luY2lvCgpjbGFzcyBEYXRhUHJvY2Vzc29yOgogICAgIiIiQSBzaW1wbGUgZGF0YSBwcm9jZXNzb3IgY2xhc3MiIiIKICAgIAogICAgZGVmIF9faW5pdF9fKHNlbGYsIG5hbWU6IHN0cik6CiAgICAgICAgc2VsZi5uYW1lID0gbmFtZQogICAgICAgIHNlbGYuZGF0YTogTGlzdFtkaWN0XSA9IFtdCiAgICAKICAgIGFzeW5jIGRlZiBwcm9jZXNzX2RhdGEoc2VsZiwgaXRlbXM6IExpc3RbZGljdF0pIC0+IExpc3RbZGljdF06CiAgICAgICAgIiIiUHJvY2VzcyBkYXRhIGl0ZW1zIGFzeW5jaHJvbm91c2x5IiIiCiAgICAgICAgcmVzdWx0cyA9IFtdCiAgICAgICAgZm9yIGl0ZW0gaW4gaXRlbXM6CiAgICAgICAgICAgICMgU2ltdWxhdGUgYXN5bmMgcHJvY2Vzc2luZwogICAgICAgICAgICBhd2FpdCBhc3luY2lvLnNsZWVwKDAuMSkKICAgICAgICAgICAgcmVzdWx0cy5hcHBlbmQoewogICAgICAgICAgICAgICAgJ2lkJzogaXRlbS5nZXQoJ2lkJyksCiAgICAgICAgICAgICAgICAncHJvY2Vzc2VkJzogVHJ1ZSwKICAgICAgICAgICAgICAgICdwcm9jZXNzb3InOiBzZWxmLm5hbWUKICAgICAgICAgICAgfSkKICAgICAgICByZXR1cm4gcmVzdWx0cwogICAgCiAgICBkZWYgZ2V0X3N1bW1hcnkoc2VsZikgLT4gZGljdDoKICAgICAgICByZXR1cm4gewogICAgICAgICAgICAncHJvY2Vzc29yJzogc2VsZi5uYW1lLAogICAgICAgICAgICAnaXRlbXNfcHJvY2Vzc2VkJzogbGVuKHNlbGYuZGF0YSkKICAgICAgICB9CgojIFVzYWdlCnByb2Nlc3NvciA9IERhdGFQcm9jZXNzb3IoIk1haW4iKQpkYXRhID0gYXdhaXQgcHJvY2Vzc29yLnByb2Nlc3NfZGF0YShbeydpZCc6IDF9LCB7J2lkJzogMn1dKQogICAgICA8L2RlZXMtZGF0YXZpZXctY29kZWJveD4KICAgIDwvZGl2PgogICAgCiAgICA8ZGl2IGNsYXNzPSJzZWN0aW9uIj4KICAgICAgPGRpdiBjbGFzcz0ic2VjdGlvbi10aXRsZSI+Q1NTIEV4YW1wbGU8L2Rpdj4KICAgICAgPGRpdiBjbGFzcz0ic2VjdGlvbi1kZXNjcmlwdGlvbiI+TW9kZXJuIENTUyB3aXRoIGN1c3RvbSBwcm9wZXJ0aWVzIGFuZCBhbmltYXRpb25zLiBOb3RlIHRoZSBzaG9ydGVyIGxhbmd1YWdlIGxhYmVsLjwvZGl2PgogICAgICA8ZGVlcy1kYXRhdmlldy1jb2RlYm94IHByb2dsYW5nPSJjc3MiPgovKiBNb2Rlcm4gQ1NTIHdpdGggY3VzdG9tIHByb3BlcnRpZXMgKi8KOnJvb3QgewogIC0tcHJpbWFyeS1jb2xvcjogIzNiODJmNjsKICAtLXNlY29uZGFyeS1jb2xvcjogIzEwYjk4MTsKICAtLWJhY2tncm91bmQ6ICNmZmZmZmY7CiAgLS10ZXh0LWNvbG9yOiAjMDkwOTBiOwogIC0tYm9yZGVyLXJhZGl1czogNnB4Owp9CgouY2FyZCB7CiAgYmFja2dyb3VuZDogdmFyKC0tYmFja2dyb3VuZCk7CiAgYm9yZGVyOiAxcHggc29saWQgI2U1ZTdlYjsKICBib3JkZXItcmFkaXVzOiB2YXIoLS1ib3JkZXItcmFkaXVzKTsKICBwYWRkaW5nOiAyNHB4OwogIGJveC1zaGFkb3c6IDAgMXB4IDNweCByZ2JhKDAsIDAsIDAsIDAuMSk7CiAgdHJhbnNpdGlvbjogYWxsIDAuMnMgZWFzZTsKfQoKLmNhcmQ6aG92ZXIgewogIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtMnB4KTsKICBib3gtc2hhZG93OiAwIDRweCA2cHggcmdiYSgwLCAwLCAwLCAwLjEpOwp9CgpAa2V5ZnJhbWVzIGZhZGVJbiB7CiAgZnJvbSB7IG9wYWNpdHk6IDA7IHRyYW5zZm9ybTogdHJhbnNsYXRlWSgxMHB4KTsgfQogIHRvIHsgb3BhY2l0eTogMTsgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDApOyB9Cn0KICAgICAgPC9kZWVzLWRhdGF2aWV3LWNvZGVib3g+CiAgICA8L2Rpdj4KICAgIAogICAgPGRpdiBjbGFzcz0ic2VjdGlvbiI+CiAgICAgIDxkaXYgY2xhc3M9InNlY3Rpb24tdGl0bGUiPkpTT04gRXhhbXBsZTwvZGl2PgogICAgICA8ZGl2IGNsYXNzPSJzZWN0aW9uLWRlc2NyaXB0aW9uIj5KU09OIGNvbmZpZ3VyYXRpb24gd2l0aCBwcm9wZXIgZm9ybWF0dGluZy48L2Rpdj4KICAgICAgPGRlZXMtZGF0YXZpZXctY29kZWJveCBwcm9nbGFuZz0ianNvbiI+CnsKICAibmFtZSI6ICJAZGVzaWduLmVzdGF0ZS9kZWVzLWNhdGFsb2ciLAogICJ2ZXJzaW9uIjogIjEuMTAuNyIsCiAgImRlc2NyaXB0aW9uIjogIkEgY29tcHJlaGVuc2l2ZSBjYXRhbG9nIG9mIHdlYiBjb21wb25lbnRzIiwKICAibWFpbiI6ICJkaXN0X3RzX3dlYi9pbmRleC5qcyIsCiAgInR5cGUiOiAibW9kdWxlIiwKICAic2NyaXB0cyI6IHsKICAgICJidWlsZCI6ICJ0c2J1aWxkIHRzZm9sZGVycyAtLWFsbG93aW1wbGljaXRhbnkgJiYgdHNidW5kbGUgZWxlbWVudCAtLXByb2R1Y3Rpb24iLAogICAgIndhdGNoIjogInRzd2F0Y2ggZWxlbWVudCIsCiAgICAidGVzdCI6ICJ0c3Rlc3QgdGVzdC8gLS13ZWIgLS12ZXJib3NlIgogIH0sCiAgImRlcGVuZGVuY2llcyI6IHsKICAgICJAZGVzaWduLmVzdGF0ZS9kZWVzLWVsZW1lbnQiOiAiXjIuMC40NSIsCiAgICAiaGlnaGxpZ2h0LmpzIjogIl4xMS45LjAiCiAgfQp9CiAgICAgIDwvZGVlcy1kYXRhdmlldy1jb2RlYm94PgogICAgPC9kaXY+CiAgPC9kaXY+CmB9KTt2YXIgcFYsUzgsWmZ0LHVWPWIoKCk9PntZZnQoKTt1ZSgpO2RhKCk7dTMoKTtUdCgpO24yKCk7dW8oKTtwVj1mdW5jdGlvbih0LGUsYSxpLHIscyl7ZnVuY3Rpb24gbih4KXtpZih4IT09dm9pZCAwJiZ0eXBlb2YgeCE9ImZ1bmN0aW9uIil0aHJvdyBuZXcgVHlwZUVycm9yKCJGdW5jdGlvbiBleHBlY3RlZCIpO3JldHVybiB4fWZvcih2YXIgbz1pLmtpbmQsZD1vPT09ImdldHRlciI/ImdldCI6bz09PSJzZXR0ZXIiPyJzZXQiOiJ2YWx1ZSIsYz0hZSYmdD9pLnN0YXRpYz90OnQucHJvdG90eXBlOm51bGwsaD1lfHwoYz9PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGMsaS5uYW1lKTp7fSksbCxmPSExLGc9YS5sZW5ndGgtMTtnPj0wO2ctLSl7dmFyIHk9e307Zm9yKHZhciB2IGluIGkpeVt2XT12PT09ImFjY2VzcyI/e306aVt2XTtmb3IodmFyIHYgaW4gaS5hY2Nlc3MpeS5hY2Nlc3Nbdl09aS5hY2Nlc3Nbdl07eS5hZGRJbml0aWFsaXplcj1mdW5jdGlvbih4KXtpZihmKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBhZGQgaW5pdGlhbGl6ZXJzIGFmdGVyIGRlY29yYXRpb24gaGFzIGNvbXBsZXRlZCIpO3MucHVzaChuKHh8fG51bGwpKX07dmFyIG09KDAsYVtnXSkobz09PSJhY2Nlc3NvciI/e2dldDpoLmdldCxzZXQ6aC5zZXR9OmhbZF0seSk7aWYobz09PSJhY2Nlc3NvciIpe2lmKG09PT12b2lkIDApY29udGludWU7aWYobT09PW51bGx8fHR5cGVvZiBtIT0ib2JqZWN0Iil0aHJvdyBuZXcgVHlwZUVycm9yKCJPYmplY3QgZXhwZWN0ZWQiKTsobD1uKG0uZ2V0KSkmJihoLmdldD1sKSwobD1uKG0uc2V0KSkmJihoLnNldD1sKSwobD1uKG0uaW5pdCkpJiZyLnVuc2hpZnQobCl9ZWxzZShsPW4obSkpJiYobz09PSJmaWVsZCI/ci51bnNoaWZ0KGwpOmhbZF09bCl9YyYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGMsaS5uYW1lLGgpLGY9ITB9LFM4PWZ1bmN0aW9uKHQsZSxhKXtmb3IodmFyIGk9YXJndW1lbnRzLmxlbmd0aD4yLHI9MDtyPGUubGVuZ3RoO3IrKylhPWk/ZVtyXS5jYWxsKHQsYSk6ZVtyXS5jYWxsKHQpO3JldHVybiBpP2E6dm9pZCAwfSxaZnQ9KCgpPT57bGV0IHQ9W3BlKCJkZWVzLWRhdGF2aWV3LWNvZGVib3giKV0sZSxhPVtdLGkscj14ZSxzLG49W10sbz1bXSxkLGM9W10saD1bXTt2YXIgbD1jbGFzcyBleHRlbmRzIHJ7c3RhdGlje2k9dGhpc31zdGF0aWN7bGV0IGY9dHlwZW9mIFN5bWJvbD09ImZ1bmN0aW9uIiYmU3ltYm9sLm1ldGFkYXRhP09iamVjdC5jcmVhdGUocltTeW1ib2wubWV0YWRhdGFdPz9udWxsKTp2b2lkIDA7cz1bSSgpXSxkPVtJKHt0eXBlOlN0cmluZyxyZWZsZWN0OiEwfSldLHBWKHRoaXMsbnVsbCxzLHtraW5kOiJhY2Nlc3NvciIsbmFtZToicHJvZ0xhbmciLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmc9PiJwcm9nTGFuZyJpbiBnLGdldDpnPT5nLnByb2dMYW5nLHNldDooZyx5KT0+e2cucHJvZ0xhbmc9eX19LG1ldGFkYXRhOmZ9LG4sbykscFYodGhpcyxudWxsLGQse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJjb2RlVG9EaXNwbGF5IixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpnPT4iY29kZVRvRGlzcGxheSJpbiBnLGdldDpnPT5nLmNvZGVUb0Rpc3BsYXksc2V0OihnLHkpPT57Zy5jb2RlVG9EaXNwbGF5PXl9fSxtZXRhZGF0YTpmfSxjLGgpLHBWKG51bGwsZT17dmFsdWU6aX0sdCx7a2luZDoiY2xhc3MiLG5hbWU6aS5uYW1lLG1ldGFkYXRhOmZ9LG51bGwsYSksbD1pPWUudmFsdWUsZiYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGksU3ltYm9sLm1ldGFkYXRhLHtlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMCx2YWx1ZTpmfSl9c3RhdGljIGRlbW89R2Z0O3N0YXRpYyBkZW1vR3JvdXBzPVsiRGF0YSBWaWV3IiwiV29ya3NwYWNlIl07I2U9UzgodGhpcyxuLCJ0eXBlc2NyaXB0Iik7Z2V0IHByb2dMYW5nKCl7cmV0dXJuIHRoaXMuI2V9c2V0IHByb2dMYW5nKGYpe3RoaXMuI2U9Zn0jdD0oUzgodGhpcyxvKSxTOCh0aGlzLGMsIiIpKTtnZXQgY29kZVRvRGlzcGxheSgpe3JldHVybiB0aGlzLiN0fXNldCBjb2RlVG9EaXNwbGF5KGYpe3RoaXMuI3Q9Zn1jb25zdHJ1Y3Rvcigpe3N1cGVyKCl9cmVuZGVyKCl7cmV0dXJuIHdgCiAgICAgICR7djEuc3R5bGVzfQogICAgICA8c3R5bGU+CiAgICAgICAgOmhvc3QgewogICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICAgICAgZGlzcGxheTogYmxvY2s7CiAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0OwogICAgICAgICAgZm9udC1zaXplOiAxNnB4OwogICAgICAgICAgZm9udC1mYW1pbHk6ICR7SnR9OwogICAgICAgICAgaGVpZ2h0OiAxMDAlOwogICAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDsKICAgICAgICB9CiAgICAgICAgLm1haW5ib3ggewogICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICAgICAgY29sb3I6ICR7cC5iZFRoZW1lKCIjMDkwOTBiIiwiI2ZhZmFmYSIpfTsKICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICR7cC5iZFRoZW1lKCIjZTVlN2ViIiwiIzI3MjcyYSIpfTsKICAgICAgICAgIGJveC1zaGFkb3c6IDAgMXB4IDNweCByZ2JhKDAsIDAsIDAsIDAuMSksIDAgMXB4IDJweCByZ2JhKDAsIDAsIDAsIDAuMDYpOwogICAgICAgICAgYmFja2dyb3VuZDogJHtwLmJkVGhlbWUoIiNmZmZmZmYiLCIjMDkwOTBiIil9OwogICAgICAgICAgYm9yZGVyLXJhZGl1czogNnB4OwogICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICAgICAgaGVpZ2h0OiAxMDAlOwogICAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDsKICAgICAgICB9CgogICAgICAgIC5hcHBiYXIgewogICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICAgICAgY29sb3I6ICR7cC5iZFRoZW1lKCIjNzE3MTdhIiwiI2ExYTFhYSIpfTsKICAgICAgICAgIGJhY2tncm91bmQ6ICR7cC5iZFRoZW1lKCIjZjlmYWZiIiwiIzE4MTgxYiIpfTsKICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAke3AuYmRUaGVtZSgiI2U1ZTdlYiIsIiMyNzI3MmEiKX07CiAgICAgICAgICBoZWlnaHQ6IDMycHg7CiAgICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgICAgZm9udC1zaXplOiAxM3B4OwogICAgICAgICAgbGluZS1oZWlnaHQ6IDMycHg7CiAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgICBmbGV4LXNocmluazogMDsKICAgICAgICB9CgogICAgICAgIC5hcHBiYXIgLmZpbGVOYW1lIHsKICAgICAgICAgIGxpbmUtaGVpZ2h0OiBpbmhlcml0OwogICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICAgICAgZmxleDogMTsKICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjsKICAgICAgICB9CgogICAgICAgIC5ib3R0b21CYXIgewogICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICAgICAgY29sb3I6ICR7cC5iZFRoZW1lKCIjNzE3MTdhIiwiI2ExYTFhYSIpfTsKICAgICAgICAgIGJhY2tncm91bmQ6ICR7cC5iZFRoZW1lKCIjZjlmYWZiIiwiIzE4MTgxYiIpfTsKICAgICAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAke3AuYmRUaGVtZSgiI2U1ZTdlYiIsIiMyNzI3MmEiKX07CiAgICAgICAgICBoZWlnaHQ6IDI4cHg7CiAgICAgICAgICBmb250LXNpemU6IDEycHg7CiAgICAgICAgICBsaW5lLWhlaWdodDogMjhweDsKICAgICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kOwogICAgICAgICAgYWxpZ24taXRlbXM6IHN0cmV0Y2g7CiAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgICAgICAgZmxleC1zaHJpbms6IDA7CiAgICAgICAgfQoKICAgICAgICAuc3BhY2VzTGFiZWwgewogICAgICAgICAgcGFkZGluZzogMCAxNnB4OwogICAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgfQoKICAgICAgICAubGFuZ3VhZ2VMYWJlbCB7CiAgICAgICAgICBjb2xvcjogJHtwLmJkVGhlbWUoIiMzYjgyZjYiLCIjM2I4MmY2Iil9OwogICAgICAgICAgZm9udC1zaXplOiAxMnB4OwogICAgICAgICAgbGluZS1oZWlnaHQ6IDI4cHg7CiAgICAgICAgICBiYWNrZ3JvdW5kOiAke3AuYmRUaGVtZSgicmdiYSg1OSwgMTMwLCAyNDYsIDAuMSkiLCJyZ2JhKDU5LCAxMzAsIDI0NiwgMC4xKSIpfTsKICAgICAgICAgIHBhZGRpbmc6IDBweCAxNnB4OwogICAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDsKICAgICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIH0KCiAgICAgICAgLmhsanMta2V5d29yZCB7CiAgICAgICAgICBjb2xvcjogJHtwLmJkVGhlbWUoIiNkYzI2MjYiLCIjZjg3MTcxIil9OwogICAgICAgIH0KCiAgICAgICAgLmNvZGVncmlkIHsKICAgICAgICAgIGRpc3BsYXk6IGdyaWQ7CiAgICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDUwcHggYXV0bzsKICAgICAgICAgIG92ZXJmbG93OiBhdXRvOwogICAgICAgICAgZmxleDogMTsKICAgICAgICAgIG1pbi1oZWlnaHQ6IDA7CiAgICAgICAgfQoKICAgICAgICAubGluZU51bWJlcnMgewogICAgICAgICAgY29sb3I6ICR7cC5iZFRoZW1lKCIjNzE3MTdhIiwiIzUyNTI1YiIpfTsKICAgICAgICAgIHBhZGRpbmc6IDI0cHggMTZweCAwcHggMHB4OwogICAgICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7CiAgICAgICAgICBib3JkZXItcmlnaHQ6IDFweCBzb2xpZCAke3AuYmRUaGVtZSgiI2U1ZTdlYiIsIiMyNzI3MmEiKX07CiAgICAgICAgfQoKICAgICAgICAubGluZUNvdW50ZXI6bGFzdC1jaGlsZCB7CiAgICAgICAgICBvcGFjaXR5OiA1MCU7CiAgICAgICAgfQoKICAgICAgICBwcmUgewogICAgICAgICAgb3ZlcmZsb3cteDogYXV0bzsKICAgICAgICAgIG1hcmdpbjogMHB4OwogICAgICAgICAgcGFkZGluZzogMjRweCAyNHB4OwogICAgICAgIH0KCiAgICAgICAgY29kZSB7CiAgICAgICAgICBmb250LXdlaWdodDogNDAwOwogICAgICAgICAgcGFkZGluZzogMHB4OwogICAgICAgICAgbWFyZ2luOiAwcHg7CiAgICAgICAgfQoKICAgICAgICBjb2RlLAogICAgICAgIGNvZGUgKiwKICAgICAgICAubGluZU51bWJlcnMgewogICAgICAgICAgbGluZS1oZWlnaHQ6IDEuNGVtOwogICAgICAgICAgZm9udC13ZWlnaHQ6IDIwMDsKICAgICAgICAgIGZvbnQtZmFtaWx5OiAke1YwfTsKICAgICAgICB9CgogICAgICAgIC5obGpzLXN0cmluZyB7CiAgICAgICAgICBjb2xvcjogJHtwLmJkVGhlbWUoIiMwNTk2NjkiLCIjMTBiOTgxIil9OwogICAgICAgIH0KCiAgICAgICAgLmhsanMtYnVpbHRfaW4gewogICAgICAgICAgY29sb3I6ICR7cC5iZFRoZW1lKCIjOGI1Y2Y2IiwiI2E3OGJmYSIpfTsKICAgICAgICB9CgogICAgICAgIC5obGpzLWZ1bmN0aW9uIHsKICAgICAgICAgIGNvbG9yOiAke3AuYmRUaGVtZSgiIzNiODJmNiIsIiM2MGE1ZmEiKX07CiAgICAgICAgfQoKICAgICAgICAuaGxqcy1wYXJhbXMgewogICAgICAgICAgY29sb3I6ICR7cC5iZFRoZW1lKCIjMDg5MWIyIiwiIzA2YjZkNCIpfTsKICAgICAgICB9CgogICAgICAgIC5obGpzLWNvbW1lbnQgewogICAgICAgICAgY29sb3I6ICR7cC5iZFRoZW1lKCIjNzE3MTdhIiwiIzcxNzE3YSIpfTsKICAgICAgICB9CgogICAgICAgIC5obGpzLW51bWJlciB7CiAgICAgICAgICBjb2xvcjogJHtwLmJkVGhlbWUoIiNlYTU4MGMiLCIjZmI5MjNjIil9OwogICAgICAgIH0KCiAgICAgICAgLmhsanMtbGl0ZXJhbCB7CiAgICAgICAgICBjb2xvcjogJHtwLmJkVGhlbWUoIiNkYzI2MjYiLCIjZjg3MTcxIil9OwogICAgICAgIH0KCiAgICAgICAgLmhsanMtYXR0ciB7CiAgICAgICAgICBjb2xvcjogJHtwLmJkVGhlbWUoIiM4YjVjZjYiLCIjYTc4YmZhIil9OwogICAgICAgIH0KCiAgICAgICAgLmhsanMtdmFyaWFibGUgewogICAgICAgICAgY29sb3I6ICR7cC5iZFRoZW1lKCIjMDkwOTBiIiwiI2ZhZmFmYSIpfTsKICAgICAgICB9CiAgICAgIDwvc3R5bGU+CiAgICAgIDxkaXYKICAgICAgICBjbGFzcz0ibWFpbmJveCIKICAgICAgICBAY29udGV4dG1lbnU9IiR7Zj0+e1V0Lm9wZW5Db250ZXh0TWVudVdpdGhPcHRpb25zKGYsW3tuYW1lOiJBYm91dCIsaWNvbk5hbWU6ImNpcmNsZUluZm8iLGFjdGlvbjphc3luYygpPT5udWxsfV0pfX0iCiAgICAgID4KICAgICAgICA8ZGl2IGNsYXNzPSJhcHBiYXIiPgogICAgICAgICAgPGRpdiBjbGFzcz0iZmlsZU5hbWUiPmluZGV4LnRzPC9kaXY+CiAgICAgICAgPC9kaXY+CiAgICAgICAgPGRpdiBjbGFzcz0iY29kZWdyaWQiPgogICAgICAgICAgPGRpdiBjbGFzcz0ibGluZU51bWJlcnMiPgogICAgICAgICAgICAkeygoKT0+e2xldCBmPTA7cmV0dXJuIHRoaXMuY29kZVRvRGlzcGxheS5zcGxpdChgCmApLm1hcChnPT4oZisrLHdgPGRpdiBjbGFzcz0ibGluZUNvdW50ZXIiPiR7Zn08L2Rpdj5gKSl9KSgpfQogICAgICAgICAgPC9kaXY+CiAgICAgICAgICA8cHJlPjxjb2RlPjwvY29kZT48L3ByZT4KICAgICAgICA8L2Rpdj4KICAgICAgICA8ZGl2IGNsYXNzPSJib3R0b21CYXIiPgogICAgICAgICAgPGRpdiBjbGFzcz0ic3BhY2VzTGFiZWwiPlNwYWNlczogMjwvZGl2PgogICAgICAgICAgPGRpdiBjbGFzcz0ibGFuZ3VhZ2VMYWJlbCI+JHt0aGlzLnByb2dMYW5nfTwvZGl2PgogICAgICAgIDwvZGl2PgogICAgICA8L2Rpdj4KICAgIGB9Y29kZVRvRGlzcGxheVN0b3JlPShTOCh0aGlzLGgpLCIiKTtoaWdobGlnaHRKcz1udWxsO2FzeW5jIHVwZGF0ZWQoZil7c3VwZXIudXBkYXRlZChmKSxjb25zb2xlLmxvZygiaGlnaGxpZ2h0aW5nIG5vdyIpLGNvbnNvbGUubG9nKHRoaXMuY2hpbGROb2Rlcyk7bGV0IGc9W107dGhpcy5jaGlsZE5vZGVzLmZvckVhY2gobT0+e20ubm9kZU5hbWU9PT0iI3RleHQiJiZnLnB1c2gobSl9KSx0aGlzLmNvZGVUb0Rpc3BsYXkmJnRoaXMuY29kZVRvRGlzcGxheSE9PXRoaXMuY29kZVRvRGlzcGxheVN0b3JlJiYodGhpcy5jb2RlVG9EaXNwbGF5U3RvcmU9Sm8ubm9ybWFsaXplKHRoaXMuY29kZVRvRGlzcGxheSkudHJpbVN0YXJ0KCkpLGdbMF0mJmdbMF0ud2hvbGVUZXh0JiYhdGhpcy5jb2RlVG9EaXNwbGF5JiYodGhpcy5jb2RlVG9EaXNwbGF5U3RvcmU9Sm8ubm9ybWFsaXplKGdbMF0ud2hvbGVUZXh0KS50cmltU3RhcnQoKSx0aGlzLmNvZGVUb0Rpc3BsYXk9dGhpcy5jb2RlVG9EaXNwbGF5U3RvcmUpLGF3YWl0IE10LnNtYXJ0ZGVsYXkuZGVsYXlGb3IoMCksdGhpcy5oaWdobGlnaHRKc3x8KHRoaXMuaGlnaGxpZ2h0SnM9YXdhaXQgTDIuZ2V0SW5zdGFuY2UoKS5sb2FkSGlnaGxpZ2h0SnMoKSk7bGV0IHk9dGhpcy5zaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3IoImNvZGUiKSx2PXRoaXMuaGlnaGxpZ2h0SnMuaGlnaGxpZ2h0KHRoaXMuY29kZVRvRGlzcGxheVN0b3JlLHtsYW5ndWFnZTp0aGlzLnByb2dMYW5nLGlnbm9yZUlsbGVnYWxzOiEwfSk7eS5pbm5lckhUTUw9di52YWx1ZX1zdGF0aWN7UzgoaSxhKX19O3JldHVybiBsPWl9KSgpfSk7dmFyIFhmdD1iKCgpPT57dVYoKX0pO3ZhciBLZnQsUWZ0PWIoKCk9Pnt1ZSgpO0JpKCk7S2Z0PSgpPT53YCA8c3R5bGU+CiAgICAuZGVtbyB7CiAgICAgIGJhY2tncm91bmQ6ICR7cC5iZFRoZW1lKCIjZjVmNWY1IiwiIzBhMGEwYSIpfTsKICAgICAgZGlzcGxheTogYmxvY2s7CiAgICAgIGNvbnRlbnQ6ICcnOwogICAgICBwYWRkaW5nOiA0MHB4OwogICAgfQogICAgCiAgICAuZGVtby1ncmlkIHsKICAgICAgZGlzcGxheTogZ3JpZDsKICAgICAgZ2FwOiAyNHB4OwogICAgICBtYXgtd2lkdGg6IDgwMHB4OwogICAgICBtYXJnaW46IDAgYXV0bzsKICAgIH0KICAgIAogICAgLmRlbW8tc2VjdGlvbiB7CiAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgIGdhcDogMTZweDsKICAgIH0KICAgIAogICAgLmRlbW8tdGl0bGUgewogICAgICBmb250LXNpemU6IDE0cHg7CiAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7CiAgICAgIGNvbG9yOiAke3AuYmRUaGVtZSgiaHNsKDAgMCUgNDUuMSUpIiwiaHNsKDAgMCUgNjMuOSUpIil9OwogICAgICBtYXJnaW4tYm90dG9tOiA4cHg7CiAgICAgIGZvbnQtZmFtaWx5OiAtYXBwbGUtc3lzdGVtLCBCbGlua01hY1N5c3RlbUZvbnQsICdTZWdvZSBVSScsIHNhbnMtc2VyaWY7CiAgICB9CiAgICAKICAgIC5kZW1vLW5vdGUgewogICAgICBmb250LXNpemU6IDEycHg7CiAgICAgIGNvbG9yOiAke3AuYmRUaGVtZSgiaHNsKDAgMCUgNDUuMSUpIiwiaHNsKDAgMCUgNjMuOSUpIil9OwogICAgICBtYXJnaW4tYm90dG9tOiAyNHB4OwogICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7CiAgICAgIGZvbnQtc3R5bGU6IGl0YWxpYzsKICAgICAgZm9udC1mYW1pbHk6IC1hcHBsZS1zeXN0ZW0sIEJsaW5rTWFjU3lzdGVtRm9udCwgJ1NlZ29lIFVJJywgc2Fucy1zZXJpZjsKICAgIH0KICA8L3N0eWxlPgogIDxkaXYgY2xhc3M9ImRlbW8iPgogICAgPGRpdiBjbGFzcz0iZGVtby1ub3RlIj4KICAgICAgUmlnaHQtY2xpY2sgb24gYW55IGRldGFpbCByb3cgdG8gY29weSB0aGUgdmFsdWUsIGtleSwgb3Iga2V5OnZhbHVlIGNvbWJpbmF0aW9uCiAgICA8L2Rpdj4KICAgIDxkaXYgY2xhc3M9ImRlbW8tZ3JpZCI+CiAgICAgIDxkaXYgY2xhc3M9ImRlbW8tc2VjdGlvbiI+CiAgICAgICAgPGRpdiBjbGFzcz0iZGVtby10aXRsZSI+U2VydmljZSBIZWFsdGggU3RhdHVzPC9kaXY+CiAgICAgICAgPGRlZXMtZGF0YXZpZXctc3RhdHVzb2JqZWN0CiAgICAgICAgICAuc3RhdHVzT2JqZWN0PSR7e2lkOiIxIixuYW1lOiJBUEkgR2F0ZXdheSBTZXJ2aWNlIixjb21iaW5lZFN0YXR1czoib2siLGNvbWJpbmVkU3RhdHVzVGV4dDoiQWxsIHN5c3RlbXMgb3BlcmF0aW9uYWwiLGRldGFpbHM6W3tuYW1lOiJSZXNwb25zZSBUaW1lIix2YWx1ZToiNDVtcyAoYXZnKSIsc3RhdHVzOiJvayIsc3RhdHVzVGV4dDoiV2l0aGluIG5vcm1hbCByYW5nZSJ9LHtuYW1lOiJVcHRpbWUiLHZhbHVlOiI5OS45OSUgKDMwIGRheXMpIixzdGF0dXM6Im9rIixzdGF0dXNUZXh0OiJFeGNlbGxlbnQgdXB0aW1lIn0se25hbWU6IkFjdGl2ZSBDb25uZWN0aW9ucyIsdmFsdWU6IjEsMjM0IC8gMTAsMDAwIixzdGF0dXM6Im9rIixzdGF0dXNUZXh0OiJOb3JtYWwgbG9hZCJ9LHtuYW1lOiJTU0wgQ2VydGlmaWNhdGUiLHZhbHVlOiJWYWxpZCB1bnRpbCAyMDI0LTEyLTMxIixzdGF0dXM6Im9rIixzdGF0dXNUZXh0OiJDZXJ0aWZpY2F0ZSB2YWxpZCJ9XX19CiAgICAgICAgPgogICAgICAgIDwvZGVlcy1kYXRhdmlldy1zdGF0dXNvYmplY3Q+CiAgICAgIDwvZGl2PgogICAgICAKICAgICAgPGRpdiBjbGFzcz0iZGVtby1zZWN0aW9uIj4KICAgICAgICA8ZGl2IGNsYXNzPSJkZW1vLXRpdGxlIj5EYXRhYmFzZSBDbHVzdGVyIFN0YXR1czwvZGl2PgogICAgICAgIDxkZWVzLWRhdGF2aWV3LXN0YXR1c29iamVjdAogICAgICAgICAgLnN0YXR1c09iamVjdD0ke3tpZDoiMiIsbmFtZToiUG9zdGdyZVNRTCBDbHVzdGVyIixjb21iaW5lZFN0YXR1czoicGFydGx5X29rIixjb21iaW5lZFN0YXR1c1RleHQ6Ik1pbm9yIGlzc3VlcyBkZXRlY3RlZCIsZGV0YWlsczpbe25hbWU6IlByaW1hcnkgTm9kZSIsdmFsdWU6ImRiLXByaW1hcnktMDEgKGhlYWx0aHkpIixzdGF0dXM6Im9rIixzdGF0dXNUZXh0OiJPcGVyYXRpbmcgbm9ybWFsbHkifSx7bmFtZToiUmVwbGljYSBMYWciLHZhbHVlOiIyLjUgc2Vjb25kcyIsc3RhdHVzOiJwYXJ0bHlfb2siLHN0YXR1c1RleHQ6IlNsaWdodGx5IGVsZXZhdGVkIn0se25hbWU6IkRpc2sgVXNhZ2UiLHZhbHVlOiI3OCUgKDMxMkdCIC8gNDAwR0IpIixzdGF0dXM6InBhcnRseV9vayIsc3RhdHVzVGV4dDoiQXBwcm9hY2hpbmcgdGhyZXNob2xkIn0se25hbWU6IkNvbm5lY3Rpb24gUG9vbCIsdmFsdWU6Ijg5IC8gMTAwIGNvbm5lY3Rpb25zIixzdGF0dXM6Im9rIixzdGF0dXNUZXh0OiJXaXRoaW4gbGltaXRzIn1dfX0KICAgICAgICA+CiAgICAgICAgPC9kZWVzLWRhdGF2aWV3LXN0YXR1c29iamVjdD4KICAgICAgPC9kaXY+CiAgICAgIAogICAgICA8ZGl2IGNsYXNzPSJkZW1vLXNlY3Rpb24iPgogICAgICAgIDxkaXYgY2xhc3M9ImRlbW8tdGl0bGUiPkJ1aWxkIFBpcGVsaW5lIFN0YXR1czwvZGl2PgogICAgICAgIDxkZWVzLWRhdGF2aWV3LXN0YXR1c29iamVjdAogICAgICAgICAgLnN0YXR1c09iamVjdD0ke3tpZDoiMyIsbmFtZToiQ0kvQ0QgUGlwZWxpbmUiLGNvbWJpbmVkU3RhdHVzOiJub3Rfb2siLGNvbWJpbmVkU3RhdHVzVGV4dDoiQnVpbGQgZmFpbHVyZSIsZGV0YWlsczpbe25hbWU6Ikxhc3QgQnVpbGQiLHZhbHVlOiJCdWlsZCAjMTIzNCAtIEZhaWxlZCIsc3RhdHVzOiJub3Rfb2siLHN0YXR1c1RleHQ6IlRlc3QgZmFpbHVyZXMifSx7bmFtZToiRmFpbGVkIFRlc3RzIix2YWx1ZToiMyB0ZXN0cyBmYWlsZWQ6IGF1dGguc3BlYy50cywgdXNlci5zcGVjLnRzLCBhcGkuc3BlYy50cyIsc3RhdHVzOiJub3Rfb2siLHN0YXR1c1RleHQ6IlVuaXQgdGVzdCBmYWlsdXJlcyJ9LHtuYW1lOiJDb2RlIENvdmVyYWdlIix2YWx1ZToiODIuNSUgKHRhcmdldDogODUlKSIsc3RhdHVzOiJwYXJ0bHlfb2siLHN0YXR1c1RleHQ6IkJlbG93IHRhcmdldCJ9LHtuYW1lOiJCdWlsZCBEdXJhdGlvbiIsdmFsdWU6IjEybSAzNHMiLHN0YXR1czoib2siLHN0YXR1c1RleHQ6Ik5vcm1hbCBkdXJhdGlvbiJ9XX19CiAgICAgICAgPgogICAgICAgIDwvZGVlcy1kYXRhdmlldy1zdGF0dXNvYmplY3Q+CiAgICAgIDwvZGl2PgogICAgPC9kaXY+CiAgPC9kaXY+YH0pO3ZhciBKZnQsZlYsZW10LHRtdD1iKCgpPT57Z2koKTtzMigpO1FmdCgpO3VlKCk7QmkoKTtuMigpO3FlKCk7SmZ0PWZ1bmN0aW9uKHQsZSxhLGkscixzKXtmdW5jdGlvbiBuKHgpe2lmKHghPT12b2lkIDAmJnR5cGVvZiB4IT0iZnVuY3Rpb24iKXRocm93IG5ldyBUeXBlRXJyb3IoIkZ1bmN0aW9uIGV4cGVjdGVkIik7cmV0dXJuIHh9Zm9yKHZhciBvPWkua2luZCxkPW89PT0iZ2V0dGVyIj8iZ2V0IjpvPT09InNldHRlciI/InNldCI6InZhbHVlIixjPSFlJiZ0P2kuc3RhdGljP3Q6dC5wcm90b3R5cGU6bnVsbCxoPWV8fChjP09iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoYyxpLm5hbWUpOnt9KSxsLGY9ITEsZz1hLmxlbmd0aC0xO2c+PTA7Zy0tKXt2YXIgeT17fTtmb3IodmFyIHYgaW4gaSl5W3ZdPXY9PT0iYWNjZXNzIj97fTppW3ZdO2Zvcih2YXIgdiBpbiBpLmFjY2Vzcyl5LmFjY2Vzc1t2XT1pLmFjY2Vzc1t2XTt5LmFkZEluaXRpYWxpemVyPWZ1bmN0aW9uKHgpe2lmKGYpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGFkZCBpbml0aWFsaXplcnMgYWZ0ZXIgZGVjb3JhdGlvbiBoYXMgY29tcGxldGVkIik7cy5wdXNoKG4oeHx8bnVsbCkpfTt2YXIgbT0oMCxhW2ddKShvPT09ImFjY2Vzc29yIj97Z2V0OmguZ2V0LHNldDpoLnNldH06aFtkXSx5KTtpZihvPT09ImFjY2Vzc29yIil7aWYobT09PXZvaWQgMCljb250aW51ZTtpZihtPT09bnVsbHx8dHlwZW9mIG0hPSJvYmplY3QiKXRocm93IG5ldyBUeXBlRXJyb3IoIk9iamVjdCBleHBlY3RlZCIpOyhsPW4obS5nZXQpKSYmKGguZ2V0PWwpLChsPW4obS5zZXQpKSYmKGguc2V0PWwpLChsPW4obS5pbml0KSkmJnIudW5zaGlmdChsKX1lbHNlKGw9bihtKSkmJihvPT09ImZpZWxkIj9yLnVuc2hpZnQobCk6aFtkXT1sKX1jJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoYyxpLm5hbWUsaCksZj0hMH0sZlY9ZnVuY3Rpb24odCxlLGEpe2Zvcih2YXIgaT1hcmd1bWVudHMubGVuZ3RoPjIscj0wO3I8ZS5sZW5ndGg7cisrKWE9aT9lW3JdLmNhbGwodCxhKTplW3JdLmNhbGwodCk7cmV0dXJuIGk/YTp2b2lkIDB9LGVtdD0oKCk9PntsZXQgdD1bcGUoImRlZXMtZGF0YXZpZXctc3RhdHVzb2JqZWN0IildLGUsYT1bXSxpLHI9eGUscyxuPVtdLG89W107dmFyIGQ9Y2xhc3MgZXh0ZW5kcyBye3N0YXRpY3tpPXRoaXN9c3RhdGlje2xldCBjPXR5cGVvZiBTeW1ib2w9PSJmdW5jdGlvbiImJlN5bWJvbC5tZXRhZGF0YT9PYmplY3QuY3JlYXRlKHJbU3ltYm9sLm1ldGFkYXRhXT8/bnVsbCk6dm9pZCAwO3M9W0koe3R5cGU6T2JqZWN0fSldLEpmdCh0aGlzLG51bGwscyx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InN0YXR1c09iamVjdCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aD0+InN0YXR1c09iamVjdCJpbiBoLGdldDpoPT5oLnN0YXR1c09iamVjdCxzZXQ6KGgsbCk9PntoLnN0YXR1c09iamVjdD1sfX0sbWV0YWRhdGE6Y30sbixvKSxKZnQobnVsbCxlPXt2YWx1ZTppfSx0LHtraW5kOiJjbGFzcyIsbmFtZTppLm5hbWUsbWV0YWRhdGE6Y30sbnVsbCxhKSxkPWk9ZS52YWx1ZSxjJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoaSxTeW1ib2wubWV0YWRhdGEse2VudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwLHZhbHVlOmN9KX1zdGF0aWMgZGVtbz1LZnQ7c3RhdGljIGRlbW9Hcm91cHM9WyJEYXRhIFZpZXciXTsjZT1mVih0aGlzLG4sdm9pZCAwKTtnZXQgc3RhdHVzT2JqZWN0KCl7cmV0dXJuIHRoaXMuI2V9c2V0IHN0YXR1c09iamVjdChjKXt0aGlzLiNlPWN9c3RhdGljIHN0eWxlcz1bQ2UscC5kZWZhdWx0U3R5bGVzLFFgCiAgICAgIC8qIFRPRE86IE1pZ3JhdGUgaGFyZGNvZGVkIHZhbHVlcyB0byAtLWRlZXMtKiBDU1MgdmFyaWFibGVzICovCiAgICAgIDpob3N0IHsKICAgICAgICBmb250LWZhbWlseTogLWFwcGxlLXN5c3RlbSwgQmxpbmtNYWNTeXN0ZW1Gb250LCAnU2Vnb2UgVUknLCAnUm9ib3RvJywgc2Fucy1zZXJpZjsKICAgICAgfQoKICAgICAgLm1haW5ib3ggewogICAgICAgIGJvcmRlci1yYWRpdXM6IDhweDsKICAgICAgICBiYWNrZ3JvdW5kOiAke3AuYmRUaGVtZSgiaHNsKDAgMCUgMTAwJSkiLCJoc2woMCAwJSAzLjklKSIpfTsKICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAke3AuYmRUaGVtZSgiaHNsKDAgMCUgODkuOCUpIiwiaHNsKDAgMCUgMTQuOSUpIil9OwogICAgICAgIGJveC1zaGFkb3c6IDAgMXB4IDNweCAwIGhzbCgwIDAlIDAlIC8gMC4xKSwgMCAxcHggMnB4IC0xcHggaHNsKDAgMCUgMCUgLyAwLjEpOwogICAgICAgIG1pbi1oZWlnaHQ6IDQ4cHg7CiAgICAgICAgY29sb3I6ICR7cC5iZFRoZW1lKCJoc2woMCAwJSA5JSkiLCJoc2woMCAwJSA5OCUpIil9OwogICAgICAgIGN1cnNvcjogZGVmYXVsdDsKICAgICAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgICB9CgogICAgICAuaGVhZGluZyB7CiAgICAgICAgZGlzcGxheTogZ3JpZDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogNDhweCBhdXRvIDEwMHB4OwogICAgICAgIGhlaWdodDogNTZweDsKICAgICAgICBwYWRkaW5nOiAwIDE2cHg7CiAgICAgICAgYmFja2dyb3VuZDogJHtwLmJkVGhlbWUoImhzbCgwIDAlIDk3JSkiLCJoc2woMCAwJSA3JSkiKX07CiAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICR7cC5iZFRoZW1lKCJoc2woMCAwJSA4OS44JSkiLCJoc2woMCAwJSAxNC45JSkiKX07CiAgICAgIH0KCiAgICAgIGgxIHsKICAgICAgICBkaXNwbGF5OiBibG9jazsKICAgICAgICBtYXJnaW46IDBweDsKICAgICAgICBwYWRkaW5nOiAwcHggMTJweDsKICAgICAgICBmb250LXNpemU6IDE0cHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDsKICAgICAgICBsZXR0ZXItc3BhY2luZzogLTAuMDFlbTsKICAgICAgICBjb2xvcjogJHtwLmJkVGhlbWUoImhzbCgwIDAlIDE1JSkiLCJoc2woMCAwJSA5My45JSkiKX07CiAgICAgIH0KCiAgICAgIC5zdGF0dXNkb3QgewogICAgICAgIGhlaWdodDogMTBweDsKICAgICAgICB3aWR0aDogMTBweDsKICAgICAgICBib3JkZXItcmFkaXVzOiA1MCU7CiAgICAgICAgYmFja2dyb3VuZDogJHtwLmJkVGhlbWUoImhzbCgwIDAlIDYzLjklKSIsImhzbCgwIDAlIDQ1LjElKSIpfTsKICAgICAgICBtYXJnaW46IGF1dG87CiAgICAgICAgYm94LXNoYWRvdzogMCAwIDAgM3B4ICR7cC5iZFRoZW1lKCJoc2woMCAwJSA2My45JSAvIDAuMikiLCJoc2woMCAwJSA0NS4xJSAvIDAuMikiKX07CiAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuMnMgZWFzZTsKICAgICAgfQoKICAgICAgLmNvcHlNYWluIHsKICAgICAgICBmb250LXNpemU6IDEycHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDsKICAgICAgICBiYWNrZ3JvdW5kOiAke3AuYmRUaGVtZSgiaHNsKDAgMCUgMTAwJSkiLCJoc2woMCAwJSAxNC45JSkiKX07CiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHtwLmJkVGhlbWUoImhzbCgwIDAlIDg5LjglKSIsImhzbCgwIDAlIDE0LjklKSIpfTsKICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7CiAgICAgICAgcGFkZGluZzogNnB4IDEycHg7CiAgICAgICAgYm9yZGVyLXJhZGl1czogNnB4OwogICAgICAgIGNvbG9yOiAke3AuYmRUaGVtZSgiaHNsKDAgMCUgNDUuMSUpIiwiaHNsKDAgMCUgNjMuOSUpIil9OwogICAgICAgIHVzZXItc2VsZWN0OiBub25lOwogICAgICAgIGN1cnNvcjogcG9pbnRlcjsKICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC4xNXMgZWFzZTsKICAgICAgfQoKICAgICAgLmNvcHlNYWluOmhvdmVyIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke3AuYmRUaGVtZSgiaHNsKDAgMCUgOTUuMSUpIiwiaHNsKDAgMCUgMTQuOSUpIil9OwogICAgICAgIGJvcmRlci1jb2xvcjogJHtwLmJkVGhlbWUoImhzbCgwIDAlIDc5LjglKSIsImhzbCgwIDAlIDIwLjklKSIpfTsKICAgICAgICBjb2xvcjogJHtwLmJkVGhlbWUoImhzbCgwIDAlIDE1JSkiLCJoc2woMCAwJSA5My45JSkiKX07CiAgICAgIH0KCiAgICAgIC5jb3B5TWFpbjphY3RpdmUgewogICAgICAgIGJhY2tncm91bmQ6ICR7cC5iZFRoZW1lKCJoc2woMCAwJSA5MSUpIiwiaHNsKDAgMCUgMTQuOSUpIil9OwogICAgICAgIHRyYW5zZm9ybTogc2NhbGUoMC45OCk7CiAgICAgIH0KCiAgICAgIC5zdGF0dXNkb3Qub2sgewogICAgICAgIGJhY2tncm91bmQ6ICR7cC5iZFRoZW1lKCJoc2woMTQyLjEgNzYuMiUgMzYuMyUpIiwiaHNsKDE0Mi4xIDcwLjYlIDQ1LjMlKSIpfTsKICAgICAgICBib3gtc2hhZG93OiAwIDAgMCAzcHggJHtwLmJkVGhlbWUoImhzbCgxNDIuMSA3Ni4yJSAzNi4zJSAvIDAuMikiLCJoc2woMTQyLjEgNzAuNiUgNDUuMyUgLyAwLjIpIil9OwogICAgICB9CgogICAgICAuc3RhdHVzZG90Lm5vdF9vayB7CiAgICAgICAgYmFja2dyb3VuZDogJHtwLmJkVGhlbWUoImhzbCgwIDg0LjIlIDYwLjIlKSIsImhzbCgwIDcyLjIlIDUwLjYlKSIpfTsKICAgICAgICBib3gtc2hhZG93OiAwIDAgMCAzcHggJHtwLmJkVGhlbWUoImhzbCgwIDg0LjIlIDYwLjIlIC8gMC4yKSIsImhzbCgwIDcyLjIlIDUwLjYlIC8gMC4yKSIpfTsKICAgICAgfQoKICAgICAgLnN0YXR1c2RvdC5wYXJ0bHlfb2sgewogICAgICAgIGJhY2tncm91bmQ6ICR7cC5iZFRoZW1lKCJoc2woMjUgOTUlIDUzJSkiLCJoc2woMjUgOTUlIDYzJSkiKX07CiAgICAgICAgYm94LXNoYWRvdzogMCAwIDAgM3B4ICR7cC5iZFRoZW1lKCJoc2woMjUgOTUlIDUzJSAvIDAuMikiLCJoc2woMjUgOTUlIDYzJSAvIDAuMikiKX07CiAgICAgIH0KCiAgICAgIC5kZXRhaWwgewogICAgICAgIG1pbi1oZWlnaHQ6IDYwcHg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBkaXNwbGF5OiBncmlkOwogICAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogNDhweCBhdXRvOwogICAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAke3AuYmRUaGVtZSgiaHNsKDAgMCUgOTQlKSIsImhzbCgwIDAlIDE0LjklKSIpfTsKICAgICAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kLWNvbG9yIDAuMTVzIGVhc2U7CiAgICAgICAgcGFkZGluZy1yaWdodDogMTZweDsKICAgICAgICBjdXJzb3I6IGNvbnRleHQtbWVudTsKICAgICAgfQoKICAgICAgLmRldGFpbDpob3ZlciB7CiAgICAgICAgYmFja2dyb3VuZDogJHtwLmJkVGhlbWUoImhzbCgwIDAlIDk3JSkiLCJoc2woMCAwJSA3JSkiKX07CiAgICAgIH0KCiAgICAgIC5kZXRhaWw6YWN0aXZlIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke3AuYmRUaGVtZSgiaHNsKDAgMCUgOTUlKSIsImhzbCgwIDAlIDklKSIpfTsKICAgICAgfQoKICAgICAgLmRldGFpbCAuZGV0YWlsc1RleHQgewogICAgICAgIHBhZGRpbmc6IDEycHg7CiAgICAgICAgd29yZC1icmVhazogYnJlYWstYWxsOwogICAgICB9CgogICAgICAuZGV0YWlsIC5kZXRhaWxzVGV4dCAubGFiZWwgewogICAgICAgIGZvbnQtc2l6ZTogMTJweDsKICAgICAgICBmb250LXdlaWdodDogNTAwOwogICAgICAgIGNvbG9yOiAke3AuYmRUaGVtZSgiaHNsKDAgMCUgNDUuMSUpIiwiaHNsKDAgMCUgNjMuOSUpIil9CiAgICAgICAgbWFyZ2luLWJvdHRvbTogMnB4OwogICAgICAgIGxldHRlci1zcGFjaW5nOiAtMC4wMWVtOwogICAgICB9CgogICAgICAuZGV0YWlsIC5kZXRhaWxzVGV4dCAudmFsdWUgewogICAgICAgIGZvbnQtc2l6ZTogMTRweDsKICAgICAgICBmb250LWZhbWlseTogJ0ludGVsIE9uZSBNb25vJywgJ0dlaXN0IE1vbm8nLCBtb25vc3BhY2U7CiAgICAgICAgY29sb3I6ICR7cC5iZFRoZW1lKCJoc2woMCAwJSAxNSUpIiwiaHNsKDAgMCUgOTAlKSIpfTsKICAgICAgICBsaW5lLWhlaWdodDogMS41OwogICAgICB9CiAgICBgXTtyZW5kZXIoKXtyZXR1cm4gd2AKICAgICAgPGRpdiBjbGFzcz0ibWFpbmJveCI+CiAgICAgICAgPGRpdiBjbGFzcz0iaGVhZGluZyI+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJzdGF0dXNkb3QgJHt0aGlzLnN0YXR1c09iamVjdD8uY29tYmluZWRTdGF0dXN9Ij48L2Rpdj4KICAgICAgICAgIDxoMT4ke3RoaXMuc3RhdHVzT2JqZWN0Py5uYW1lfHwiTm8gc3RhdHVzIG9iamVjdCBhc3NpZ25lZCJ9PC9oMT4KICAgICAgICAgIDxkaXYgY2xhc3M9ImNvcHlNYWluIiBAY2xpY2s9JHt0aGlzLmhhbmRsZUNvcHlBc0pzb259PkNvcHkgSlNPTjwvZGl2PgogICAgICAgIDwvZGl2PgogICAgICAgICR7dGhpcy5zdGF0dXNPYmplY3Q/LmRldGFpbHM/Lm1hcChjPT53YAogICAgICAgICAgICA8ZGl2IAogICAgICAgICAgICAgIGNsYXNzPSJkZXRhaWwiCiAgICAgICAgICAgICAgQGNvbnRleHRtZW51PSR7aD0+e2gucHJldmVudERlZmF1bHQoKSxVdC5vcGVuQ29udGV4dE1lbnVXaXRoT3B0aW9ucyhoLFt7bmFtZToiQ29weSBWYWx1ZSIsaWNvbk5hbWU6Imx1Y2lkZTpjb3B5IixhY3Rpb246YXN5bmMoKT0+e2F3YWl0IHRoaXMuY29weVRvQ2xpcGJvYXJkKGMudmFsdWUsIlZhbHVlIil9fSx7bmFtZToiQ29weSBLZXkiLGljb25OYW1lOiJsdWNpZGU6a2V5IixhY3Rpb246YXN5bmMoKT0+e2F3YWl0IHRoaXMuY29weVRvQ2xpcGJvYXJkKGMubmFtZSwiS2V5Iil9fSx7bmFtZToiQ29weSBLZXk6VmFsdWUiLGljb25OYW1lOiJsdWNpZGU6Y29weS1wbHVzIixhY3Rpb246YXN5bmMoKT0+e2F3YWl0IHRoaXMuY29weVRvQ2xpcGJvYXJkKGAke2MubmFtZX06ICR7Yy52YWx1ZX1gLCJLZXk6VmFsdWUiKX19XSl9fQogICAgICAgICAgICA+CiAgICAgICAgICAgICAgPGRpdiBjbGFzcz0ic3RhdHVzZG90ICR7Yy5zdGF0dXN9Ij48L2Rpdj4KICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJkZXRhaWxzVGV4dCI+CiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJsYWJlbCI+JHtjLm5hbWV9PC9kaXY+CiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJ2YWx1ZSI+JHtjLnZhbHVlfTwvZGl2PgogICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIGApfQogICAgICA8L2Rpdj4KICAgIGB9YXN5bmMgZmlyc3RVcGRhdGVkKCl7fWFzeW5jIGNvcHlUb0NsaXBib2FyZChjLGg9IlRleHQiKXt0cnl7YXdhaXQgbmF2aWdhdG9yLmNsaXBib2FyZC53cml0ZVRleHQoYyksY29uc29sZS5sb2coYCR7aH0gY29waWVkIHRvIGNsaXBib2FyZGApfWNhdGNoKGwpe2NvbnNvbGUuZXJyb3IoYEZhaWxlZCB0byBjb3B5ICR7aH06YCxsKX19YXN5bmMgaGFuZGxlQ29weUFzSnNvbigpe2lmKHRoaXMuc3RhdHVzT2JqZWN0KXRyeXthd2FpdCBuYXZpZ2F0b3IuY2xpcGJvYXJkLndyaXRlVGV4dChKU09OLnN0cmluZ2lmeSh0aGlzLnN0YXR1c09iamVjdCxudWxsLDIpKTtsZXQgYz10aGlzLnNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvcigiLmNvcHlNYWluIiksaD1jLnRleHRDb250ZW50O2MudGV4dENvbnRlbnQ9IkNvcGllZCEiO2xldCBsPSF0aGlzLmdvQnJpZ2h0O2Muc3R5bGUuYmFja2dyb3VuZD1sPyJoc2woMTQyLjEgNzAuNiUgNDUuMyUgLyAwLjEpIjoiaHNsKDE0Mi4xIDc2LjIlIDM2LjMlIC8gMC4xKSIsYy5zdHlsZS5ib3JkZXJDb2xvcj1sPyJoc2woMTQyLjEgNzAuNiUgNDUuMyUpIjoiaHNsKDE0Mi4xIDc2LjIlIDM2LjMlKSIsYy5zdHlsZS5jb2xvcj1sPyJoc2woMTQyLjEgNzAuNiUgNDUuMyUpIjoiaHNsKDE0Mi4xIDc2LjIlIDM2LjMlKSIsc2V0VGltZW91dCgoKT0+e2MudGV4dENvbnRlbnQ9aCxjLnN0eWxlLmJhY2tncm91bmQ9IiIsYy5zdHlsZS5ib3JkZXJDb2xvcj0iIixjLnN0eWxlLmNvbG9yPSIifSwxNTAwKX1jYXRjaChjKXtjb25zb2xlLmVycm9yKCJGYWlsZWQgdG8gY29weToiLGMpfX1jb25zdHJ1Y3Rvcigpe3N1cGVyKC4uLmFyZ3VtZW50cyksZlYodGhpcyxvKX1zdGF0aWN7ZlYoaSxhKX19O3JldHVybiBkPWl9KSgpfSk7dmFyIGFtdD1iKCgpPT57dG10KCl9KTt2YXIgaW10PWIoKCk9PntYeCgpfSk7dmFyIHJtdD1iKCgpPT57WGZ0KCk7YW10KCk7dFYoKTtpbXQoKX0pO3ZhciBDOCxPcyxzbXQsUXg9YigoKT0+e3VlKCk7cWUoKTtEdCgpO0M4PWZ1bmN0aW9uKHQsZSxhLGkscixzKXtmdW5jdGlvbiBuKHgpe2lmKHghPT12b2lkIDAmJnR5cGVvZiB4IT0iZnVuY3Rpb24iKXRocm93IG5ldyBUeXBlRXJyb3IoIkZ1bmN0aW9uIGV4cGVjdGVkIik7cmV0dXJuIHh9Zm9yKHZhciBvPWkua2luZCxkPW89PT0iZ2V0dGVyIj8iZ2V0IjpvPT09InNldHRlciI/InNldCI6InZhbHVlIixjPSFlJiZ0P2kuc3RhdGljP3Q6dC5wcm90b3R5cGU6bnVsbCxoPWV8fChjP09iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoYyxpLm5hbWUpOnt9KSxsLGY9ITEsZz1hLmxlbmd0aC0xO2c+PTA7Zy0tKXt2YXIgeT17fTtmb3IodmFyIHYgaW4gaSl5W3ZdPXY9PT0iYWNjZXNzIj97fTppW3ZdO2Zvcih2YXIgdiBpbiBpLmFjY2Vzcyl5LmFjY2Vzc1t2XT1pLmFjY2Vzc1t2XTt5LmFkZEluaXRpYWxpemVyPWZ1bmN0aW9uKHgpe2lmKGYpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGFkZCBpbml0aWFsaXplcnMgYWZ0ZXIgZGVjb3JhdGlvbiBoYXMgY29tcGxldGVkIik7cy5wdXNoKG4oeHx8bnVsbCkpfTt2YXIgbT0oMCxhW2ddKShvPT09ImFjY2Vzc29yIj97Z2V0OmguZ2V0LHNldDpoLnNldH06aFtkXSx5KTtpZihvPT09ImFjY2Vzc29yIil7aWYobT09PXZvaWQgMCljb250aW51ZTtpZihtPT09bnVsbHx8dHlwZW9mIG0hPSJvYmplY3QiKXRocm93IG5ldyBUeXBlRXJyb3IoIk9iamVjdCBleHBlY3RlZCIpOyhsPW4obS5nZXQpKSYmKGguZ2V0PWwpLChsPW4obS5zZXQpKSYmKGguc2V0PWwpLChsPW4obS5pbml0KSkmJnIudW5zaGlmdChsKX1lbHNlKGw9bihtKSkmJihvPT09ImZpZWxkIj9yLnVuc2hpZnQobCk6aFtkXT1sKX1jJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoYyxpLm5hbWUsaCksZj0hMH0sT3M9ZnVuY3Rpb24odCxlLGEpe2Zvcih2YXIgaT1hcmd1bWVudHMubGVuZ3RoPjIscj0wO3I8ZS5sZW5ndGg7cisrKWE9aT9lW3JdLmNhbGwodCxhKTplW3JdLmNhbGwodCk7cmV0dXJuIGk/YTp2b2lkIDB9LHNtdD0oKCk9PntsZXQgdD1bcGUoImRlZXMtYWN0aW9uYmFyIildLGUsYT1bXSxpLHI9eGUscyxuPVtdLG89W10sZCxjPVtdLGg9W10sbCxmPVtdLGc9W10seSx2PVtdLG09W107dmFyIHg9Y2xhc3MgZXh0ZW5kcyBye3N0YXRpY3tpPXRoaXN9c3RhdGlje2xldCBNPXR5cGVvZiBTeW1ib2w9PSJmdW5jdGlvbiImJlN5bWJvbC5tZXRhZGF0YT9PYmplY3QuY3JlYXRlKHJbU3ltYm9sLm1ldGFkYXRhXT8/bnVsbCk6dm9pZCAwO3M9W0ooKV0sZD1bSigpXSxsPVtKKCldLHk9W0ooKV0sQzgodGhpcyxudWxsLHMse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJjdXJyZW50QmFyIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpTPT4iY3VycmVudEJhciJpbiBTLGdldDpTPT5TLmN1cnJlbnRCYXIsc2V0OihTLEYpPT57Uy5jdXJyZW50QmFyPUZ9fSxtZXRhZGF0YTpNfSxuLG8pLEM4KHRoaXMsbnVsbCxkLHtraW5kOiJhY2Nlc3NvciIsbmFtZToidGltZVJlbWFpbmluZyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6Uz0+InRpbWVSZW1haW5pbmciaW4gUyxnZXQ6Uz0+Uy50aW1lUmVtYWluaW5nLHNldDooUyxGKT0+e1MudGltZVJlbWFpbmluZz1GfX0sbWV0YWRhdGE6TX0sYyxoKSxDOCh0aGlzLG51bGwsbCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InByb2dyZXNzUGVyY2VudCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6Uz0+InByb2dyZXNzUGVyY2VudCJpbiBTLGdldDpTPT5TLnByb2dyZXNzUGVyY2VudCxzZXQ6KFMsRik9PntTLnByb2dyZXNzUGVyY2VudD1GfX0sbWV0YWRhdGE6TX0sZixnKSxDOCh0aGlzLG51bGwseSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImlzVmlzaWJsZSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6Uz0+ImlzVmlzaWJsZSJpbiBTLGdldDpTPT5TLmlzVmlzaWJsZSxzZXQ6KFMsRik9PntTLmlzVmlzaWJsZT1GfX0sbWV0YWRhdGE6TX0sdixtKSxDOChudWxsLGU9e3ZhbHVlOml9LHQse2tpbmQ6ImNsYXNzIixuYW1lOmkubmFtZSxtZXRhZGF0YTpNfSxudWxsLGEpLHg9aT1lLnZhbHVlLE0mJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShpLFN5bWJvbC5tZXRhZGF0YSx7ZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITAsdmFsdWU6TX0pfXN0YXRpYyBkZW1vR3JvdXBzPVsiRmVlZGJhY2siLCJPdmVybGF5Il07c3RhdGljIGRlbW89KCk9PntsZXQgTT1rPT5rLmN1cnJlbnRUYXJnZXQuY2xvc2VzdCgiLmRlbW8tY29udGFpbmVyIik/LnF1ZXJ5U2VsZWN0b3IoImRlZXMtYWN0aW9uYmFyIik7cmV0dXJuIHdgCiAgICAgIDxzdHlsZT4KICAgICAgICAuZGVtby1jb250YWluZXIgewogICAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgICAgICBoZWlnaHQ6IDMwMHB4OwogICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgIzMzMzsKICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDhweDsKICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47CiAgICAgICAgfQogICAgICAgIC5kZW1vLWNvbnRlbnQgewogICAgICAgICAgZmxleDogMTsKICAgICAgICAgIHBhZGRpbmc6IDE2cHg7CiAgICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgICAgZ2FwOiA4cHg7CiAgICAgICAgICBhbGlnbi1pdGVtczogZmxleC1zdGFydDsKICAgICAgICB9CiAgICAgIDwvc3R5bGU+CiAgICAgIDxkaXYgY2xhc3M9ImRlbW8tY29udGFpbmVyIj4KICAgICAgICA8ZGl2IGNsYXNzPSJkZW1vLWNvbnRlbnQiPgogICAgICAgICAgPGRlZXMtYnV0dG9uIEBjbGljaz0ke2FzeW5jIGs9PntsZXQgTj1NKGspO2lmKCFOKXJldHVybjtsZXQgTD1hd2FpdCBOLnNob3coe21lc3NhZ2U6IkZpbGUgY2hhbmdlZCBleHRlcm5hbGx5LiBSZWxvYWQ/Iix0eXBlOiJ3YXJuaW5nIixpY29uOiJsdWNpZGU6YWxlcnRUcmlhbmdsZSIsYWN0aW9uczpbe2lkOiJyZWxvYWQiLGxhYmVsOiJSZWxvYWQiLHByaW1hcnk6ITB9LHtpZDoiaWdub3JlIixsYWJlbDoiSWdub3JlIn1dLHRpbWVvdXQ6e2R1cmF0aW9uOjVlMyxkZWZhdWx0QWN0aW9uSWQ6InJlbG9hZCJ9LGRpc21pc3NpYmxlOiEwfSk7Y29uc29sZS5sb2coIkFjdGlvbiBiYXIgcmVzdWx0OiIsTCl9fT5XYXJuaW5nPC9kZWVzLWJ1dHRvbj4KICAgICAgICAgIDxkZWVzLWJ1dHRvbiBAY2xpY2s9JHthc3luYyBrPT57bGV0IE49TShrKTtpZighTilyZXR1cm47bGV0IEw9YXdhaXQgTi5zaG93KHttZXNzYWdlOiJQcm9jZXNzIGZhaWxlZCB3aXRoIGV4aXQgY29kZSAxIix0eXBlOiJlcnJvciIsaWNvbjoibHVjaWRlOnhDaXJjbGUiLGFjdGlvbnM6W3tpZDoicmV0cnkiLGxhYmVsOiJSZXRyeSIscHJpbWFyeTohMH0se2lkOiJkaXNtaXNzIixsYWJlbDoiRGlzbWlzcyJ9XSx0aW1lb3V0OntkdXJhdGlvbjoxZTQsZGVmYXVsdEFjdGlvbklkOiJkaXNtaXNzIn19KTtjb25zb2xlLmxvZygiRXJyb3IgYmFyIHJlc3VsdDoiLEwpfX0+RXJyb3I8L2RlZXMtYnV0dG9uPgogICAgICAgICAgPGRlZXMtYnV0dG9uIEBjbGljaz0ke2FzeW5jIGs9PntsZXQgTj1NKGspO2lmKCFOKXJldHVybjtsZXQgTD1hd2FpdCBOLnNob3coe21lc3NhZ2U6IlNhdmUgY2hhbmdlcyBiZWZvcmUgY2xvc2luZz8iLHR5cGU6InF1ZXN0aW9uIixpY29uOiJsdWNpZGU6aGVscENpcmNsZSIsYWN0aW9uczpbe2lkOiJzYXZlIixsYWJlbDoiU2F2ZSIscHJpbWFyeTohMH0se2lkOiJkaXNjYXJkIixsYWJlbDoiRGlzY2FyZCJ9LHtpZDoiY2FuY2VsIixsYWJlbDoiQ2FuY2VsIn1dfSk7Y29uc29sZS5sb2coIlF1ZXN0aW9uIGJhciByZXN1bHQ6IixMKX19PlF1ZXN0aW9uPC9kZWVzLWJ1dHRvbj4KICAgICAgICA8L2Rpdj4KICAgICAgICA8ZGVlcy1hY3Rpb25iYXI+PC9kZWVzLWFjdGlvbmJhcj4KICAgICAgPC9kaXY+CiAgICBgfTtxdWV1ZT1bXTsjZT1Pcyh0aGlzLG4sbnVsbCk7Z2V0IGN1cnJlbnRCYXIoKXtyZXR1cm4gdGhpcy4jZX1zZXQgY3VycmVudEJhcihNKXt0aGlzLiNlPU19I3Q9KE9zKHRoaXMsbyksT3ModGhpcyxjLDApKTtnZXQgdGltZVJlbWFpbmluZygpe3JldHVybiB0aGlzLiN0fXNldCB0aW1lUmVtYWluaW5nKE0pe3RoaXMuI3Q9TX0jYT0oT3ModGhpcyxoKSxPcyh0aGlzLGYsMTAwKSk7Z2V0IHByb2dyZXNzUGVyY2VudCgpe3JldHVybiB0aGlzLiNhfXNldCBwcm9ncmVzc1BlcmNlbnQoTSl7dGhpcy4jYT1NfSNpPShPcyh0aGlzLGcpLE9zKHRoaXMsdiwhMSkpO2dldCBpc1Zpc2libGUoKXtyZXR1cm4gdGhpcy4jaX1zZXQgaXNWaXNpYmxlKE0pe3RoaXMuI2k9TX10aW1lb3V0SW50ZXJ2YWw9KE9zKHRoaXMsbSksbnVsbCk7Y3VycmVudFJlc29sdmU9bnVsbDtzdGF0aWMgc3R5bGVzPVtDZSxwLmRlZmF1bHRTdHlsZXMsUWAKICAgICAgOmhvc3QgewogICAgICAgIGRpc3BsYXk6IGJsb2NrOwogICAgICB9CgogICAgICAuYWN0aW9uYmFyLWl0ZW0gewogICAgICAgIGRpc3BsYXk6IGdyaWQ7CiAgICAgICAgZ3JpZC10ZW1wbGF0ZS1yb3dzOiAwZnI7CiAgICAgICAgdHJhbnNpdGlvbjogZ3JpZC10ZW1wbGF0ZS1yb3dzIDAuMnMgZWFzZS1vdXQ7CiAgICAgICAgYmFja2dyb3VuZDogJHtwLmJkVGhlbWUoImhzbCgwIDAlIDk2JSkiLCJoc2woMCAwJSAxMiUpIil9OwogICAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAke3AuYmRUaGVtZSgiaHNsKDAgMCUgODglKSIsImhzbCgwIDAlIDIwJSkiKX07CiAgICAgIH0KCiAgICAgIDpob3N0KC52aXNpYmxlKSAuYWN0aW9uYmFyLWl0ZW0gewogICAgICAgIGdyaWQtdGVtcGxhdGUtcm93czogMWZyOwogICAgICB9CgogICAgICAuYWN0aW9uYmFyLWNvbnRlbnQgewogICAgICAgIG92ZXJmbG93OiBoaWRkZW47CiAgICAgICAgbWluLWhlaWdodDogMDsKICAgICAgICBvcGFjaXR5OiAwOwogICAgICAgIHRyYW5zaXRpb246IG9wYWNpdHkgMC4ycyBlYXNlLW91dDsKICAgICAgfQoKICAgICAgOmhvc3QoLnZpc2libGUpIC5hY3Rpb25iYXItY29udGVudCB7CiAgICAgICAgb3BhY2l0eTogMTsKICAgICAgfQoKICAgICAgLnByb2dyZXNzLWJhciB7CiAgICAgICAgaGVpZ2h0OiAzcHg7CiAgICAgICAgYmFja2dyb3VuZDogJHtwLmJkVGhlbWUoImhzbCgwIDAlIDkwJSkiLCJoc2woMCAwJSAxOCUpIil9OwogICAgICAgIG92ZXJmbG93OiBoaWRkZW47CiAgICAgIH0KCiAgICAgIC5wcm9ncmVzcy1iYXItZmlsbCB7CiAgICAgICAgaGVpZ2h0OiAxMDAlOwogICAgICAgIGJhY2tncm91bmQ6ICR7cC5iZFRoZW1lKCJoc2woMjEwIDEwMCUgNTAlKSIsImhzbCgyMTAgMTAwJSA2MCUpIil9OwogICAgICAgIHRyYW5zaXRpb246IHdpZHRoIDAuMXMgbGluZWFyOwogICAgICB9CgogICAgICAucHJvZ3Jlc3MtYmFyLWZpbGwud2FybmluZyB7CiAgICAgICAgYmFja2dyb3VuZDogJHtwLmJkVGhlbWUoImhzbCgzOCA5MiUgNTAlKSIsImhzbCgzOCA5MiUgNTUlKSIpfTsKICAgICAgfQoKICAgICAgLnByb2dyZXNzLWJhci1maWxsLmVycm9yIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke3AuYmRUaGVtZSgiaHNsKDAgNzAlIDUwJSkiLCJoc2woMCA3MCUgNTUlKSIpfTsKICAgICAgfQoKICAgICAgLnByb2dyZXNzLWJhci1maWxsLnF1ZXN0aW9uIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke3AuYmRUaGVtZSgiaHNsKDI3MCA3MCUgNTAlKSIsImhzbCgyNzAgNzAlIDYwJSkiKX07CiAgICAgIH0KCiAgICAgIC5jb250ZW50IHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgcGFkZGluZzogOHB4IDEycHg7CiAgICAgICAgZ2FwOiAxMnB4OwogICAgICAgIG1pbi1oZWlnaHQ6IDMycHg7CiAgICAgIH0KCiAgICAgIC5tZXNzYWdlLXNlY3Rpb24gewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBnYXA6IDhweDsKICAgICAgICBmbGV4OiAxOwogICAgICAgIG1pbi13aWR0aDogMDsKICAgICAgfQoKICAgICAgLm1lc3NhZ2UtaWNvbiB7CiAgICAgICAgZmxleC1zaHJpbms6IDA7CiAgICAgICAgY29sb3I6ICR7cC5iZFRoZW1lKCJoc2woMCAwJSA0MCUpIiwiaHNsKDAgMCUgNjAlKSIpfTsKICAgICAgfQoKICAgICAgLm1lc3NhZ2UtaWNvbi5pbmZvIHsKICAgICAgICBjb2xvcjogJHtwLmJkVGhlbWUoImhzbCgyMTAgMTAwJSA0NSUpIiwiaHNsKDIxMCAxMDAlIDYwJSkiKX07CiAgICAgIH0KCiAgICAgIC5tZXNzYWdlLWljb24ud2FybmluZyB7CiAgICAgICAgY29sb3I6ICR7cC5iZFRoZW1lKCJoc2woMzggOTIlIDQ1JSkiLCJoc2woMzggOTIlIDU1JSkiKX07CiAgICAgIH0KCiAgICAgIC5tZXNzYWdlLWljb24uZXJyb3IgewogICAgICAgIGNvbG9yOiAke3AuYmRUaGVtZSgiaHNsKDAgNzAlIDUwJSkiLCJoc2woMCA3MCUgNTUlKSIpfTsKICAgICAgfQoKICAgICAgLm1lc3NhZ2UtaWNvbi5xdWVzdGlvbiB7CiAgICAgICAgY29sb3I6ICR7cC5iZFRoZW1lKCJoc2woMjcwIDcwJSA1MCUpIiwiaHNsKDI3MCA3MCUgNjAlKSIpfTsKICAgICAgfQoKICAgICAgLm1lc3NhZ2UtdGV4dCB7CiAgICAgICAgZm9udC1zaXplOiAxM3B4OwogICAgICAgIGNvbG9yOiAke3AuYmRUaGVtZSgiaHNsKDAgMCUgMjAlKSIsImhzbCgwIDAlIDg1JSkiKX07CiAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDsKICAgICAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzOwogICAgICB9CgogICAgICAuYWN0aW9ucy1zZWN0aW9uIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgZ2FwOiA4cHg7CiAgICAgICAgZmxleC1zaHJpbms6IDA7CiAgICAgIH0KCiAgICAgIC5hY3Rpb24tYnV0dG9uIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgZ2FwOiA0cHg7CiAgICAgICAgcGFkZGluZzogNHB4IDEwcHg7CiAgICAgICAgYm9yZGVyLXJhZGl1czogNHB4OwogICAgICAgIGZvbnQtc2l6ZTogMTJweDsKICAgICAgICBmb250LXdlaWdodDogNTAwOwogICAgICAgIGN1cnNvcjogcG9pbnRlcjsKICAgICAgICBib3JkZXI6IDFweCBzb2xpZCB0cmFuc3BhcmVudDsKICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC4xNXMgZWFzZTsKICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwOwogICAgICB9CgogICAgICAuYWN0aW9uLWJ1dHRvbi5zZWNvbmRhcnkgewogICAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50OwogICAgICAgIGNvbG9yOiAke3AuYmRUaGVtZSgiaHNsKDAgMCUgMzAlKSIsImhzbCgwIDAlIDcwJSkiKX07CiAgICAgICAgYm9yZGVyLWNvbG9yOiAke3AuYmRUaGVtZSgiaHNsKDAgMCUgODAlKSIsImhzbCgwIDAlIDMwJSkiKX07CiAgICAgIH0KCiAgICAgIC5hY3Rpb24tYnV0dG9uLnNlY29uZGFyeTpob3ZlciB7CiAgICAgICAgYmFja2dyb3VuZDogJHtwLmJkVGhlbWUoImhzbCgwIDAlIDkyJSkiLCJoc2woMCAwJSAxOCUpIil9OwogICAgICB9CgogICAgICAuYWN0aW9uLWJ1dHRvbi5wcmltYXJ5IHsKICAgICAgICBiYWNrZ3JvdW5kOiAke3AuYmRUaGVtZSgiaHNsKDIxMCAxMDAlIDUwJSkiLCJoc2woMjEwIDEwMCUgNTUlKSIpfTsKICAgICAgICBjb2xvcjogd2hpdGU7CiAgICAgIH0KCiAgICAgIC5hY3Rpb24tYnV0dG9uLnByaW1hcnk6aG92ZXIgewogICAgICAgIGJhY2tncm91bmQ6ICR7cC5iZFRoZW1lKCJoc2woMjEwIDEwMCUgNDUlKSIsImhzbCgyMTAgMTAwJSA1MCUpIil9OwogICAgICB9CgogICAgICAuYWN0aW9uLWJ1dHRvbi5wcmltYXJ5Lndhcm5pbmcgewogICAgICAgIGJhY2tncm91bmQ6ICR7cC5iZFRoZW1lKCJoc2woMzggOTIlIDQ1JSkiLCJoc2woMzggOTIlIDUwJSkiKX07CiAgICAgIH0KCiAgICAgIC5hY3Rpb24tYnV0dG9uLnByaW1hcnkud2FybmluZzpob3ZlciB7CiAgICAgICAgYmFja2dyb3VuZDogJHtwLmJkVGhlbWUoImhzbCgzOCA5MiUgNDAlKSIsImhzbCgzOCA5MiUgNDUlKSIpfTsKICAgICAgfQoKICAgICAgLmFjdGlvbi1idXR0b24ucHJpbWFyeS5lcnJvciB7CiAgICAgICAgYmFja2dyb3VuZDogJHtwLmJkVGhlbWUoImhzbCgwIDcwJSA1MCUpIiwiaHNsKDAgNzAlIDU1JSkiKX07CiAgICAgIH0KCiAgICAgIC5hY3Rpb24tYnV0dG9uLnByaW1hcnkuZXJyb3I6aG92ZXIgewogICAgICAgIGJhY2tncm91bmQ6ICR7cC5iZFRoZW1lKCJoc2woMCA3MCUgNDUlKSIsImhzbCgwIDcwJSA1MCUpIil9OwogICAgICB9CgogICAgICAuYWN0aW9uLWJ1dHRvbi5wcmltYXJ5LnF1ZXN0aW9uIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke3AuYmRUaGVtZSgiaHNsKDI3MCA3MCUgNTAlKSIsImhzbCgyNzAgNzAlIDU1JSkiKX07CiAgICAgIH0KCiAgICAgIC5hY3Rpb24tYnV0dG9uLnByaW1hcnkucXVlc3Rpb246aG92ZXIgewogICAgICAgIGJhY2tncm91bmQ6ICR7cC5iZFRoZW1lKCJoc2woMjcwIDcwJSA0NSUpIiwiaHNsKDI3MCA3MCUgNTAlKSIpfTsKICAgICAgfQoKICAgICAgLmNvdW50ZG93biB7CiAgICAgICAgZm9udC1zaXplOiAxMXB4OwogICAgICAgIG9wYWNpdHk6IDAuODsKICAgICAgICBtYXJnaW4tbGVmdDogMnB4OwogICAgICB9CgogICAgICAuZGlzbWlzcy1idXR0b24gewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKICAgICAgICB3aWR0aDogMjBweDsKICAgICAgICBoZWlnaHQ6IDIwcHg7CiAgICAgICAgYm9yZGVyLXJhZGl1czogNHB4OwogICAgICAgIGN1cnNvcjogcG9pbnRlcjsKICAgICAgICBjb2xvcjogJHtwLmJkVGhlbWUoImhzbCgwIDAlIDUwJSkiLCJoc2woMCAwJSA1MCUpIil9OwogICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjE1cyBlYXNlOwogICAgICB9CgogICAgICAuZGlzbWlzcy1idXR0b246aG92ZXIgewogICAgICAgIGJhY2tncm91bmQ6ICR7cC5iZFRoZW1lKCJoc2woMCAwJSA4OCUpIiwiaHNsKDAgMCUgMjIlKSIpfTsKICAgICAgICBjb2xvcjogJHtwLmJkVGhlbWUoImhzbCgwIDAlIDMwJSkiLCJoc2woMCAwJSA3MCUpIil9OwogICAgICB9CiAgICBgXTtyZW5kZXIoKXtsZXQgTT10aGlzLmN1cnJlbnRCYXIsUz1NPy50eXBlfHwiaW5mbyIsRj1NPy50aW1lb3V0JiZ0aGlzLnRpbWVSZW1haW5pbmc+MDtyZXR1cm4gd2AKICAgICAgPGRpdiBjbGFzcz0iYWN0aW9uYmFyLWl0ZW0iPgogICAgICAgIDxkaXYgY2xhc3M9ImFjdGlvbmJhci1jb250ZW50Ij4KICAgICAgICAgICR7TT93YAogICAgICAgICAgICAke0Y/d2AKICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJwcm9ncmVzcy1iYXIiPgogICAgICAgICAgICAgICAgPGRpdgogICAgICAgICAgICAgICAgICBjbGFzcz0icHJvZ3Jlc3MtYmFyLWZpbGwgJHtTfSIKICAgICAgICAgICAgICAgICAgc3R5bGU9IndpZHRoOiAke3RoaXMucHJvZ3Jlc3NQZXJjZW50fSUiCiAgICAgICAgICAgICAgICA+PC9kaXY+CiAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIGA6IiJ9CiAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNvbnRlbnQiPgogICAgICAgICAgICAgIDxkaXYgY2xhc3M9Im1lc3NhZ2Utc2VjdGlvbiI+CiAgICAgICAgICAgICAgICAke00uaWNvbj93YAogICAgICAgICAgICAgICAgICA8ZGVlcy1pY29uCiAgICAgICAgICAgICAgICAgICAgY2xhc3M9Im1lc3NhZ2UtaWNvbiAke1N9IgogICAgICAgICAgICAgICAgICAgIC5pY29uPSR7TS5pY29ufQogICAgICAgICAgICAgICAgICAgIGljb25TaXplPSIxNiIKICAgICAgICAgICAgICAgICAgPjwvZGVlcy1pY29uPgogICAgICAgICAgICAgICAgYDoiIn0KICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJtZXNzYWdlLXRleHQiPiR7TS5tZXNzYWdlfTwvc3Bhbj4KICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJhY3Rpb25zLXNlY3Rpb24iPgogICAgICAgICAgICAgICAgJHtNLmFjdGlvbnMubWFwKF89PnRoaXMucmVuZGVyQWN0aW9uQnV0dG9uKF8sTSxGKSl9CiAgICAgICAgICAgICAgICAke00uZGlzbWlzc2libGU/d2AKICAgICAgICAgICAgICAgICAgPGRpdgogICAgICAgICAgICAgICAgICAgIGNsYXNzPSJkaXNtaXNzLWJ1dHRvbiIKICAgICAgICAgICAgICAgICAgICBAY2xpY2s9JHsoKT0+dGhpcy5oYW5kbGVEaXNtaXNzKCl9CiAgICAgICAgICAgICAgICAgICAgdGl0bGU9IkRpc21pc3MiCiAgICAgICAgICAgICAgICAgID4KICAgICAgICAgICAgICAgICAgICA8ZGVlcy1pY29uIC5pY29uPSR7Imx1Y2lkZTp4In0gaWNvblNpemU9IjE0Ij48L2RlZXMtaWNvbj4KICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICBgOiIifQogICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIGA6IiJ9CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGl2PgogICAgYH1yZW5kZXJBY3Rpb25CdXR0b24oTSxTLEYpe2xldCBfPU0ucHJpbWFyeSxrPVMudHlwZXx8ImluZm8iLE49Uy50aW1lb3V0Py5kZWZhdWx0QWN0aW9uSWQ9PT1NLmlkLEw9RiYmTixBPU1hdGguY2VpbCh0aGlzLnRpbWVSZW1haW5pbmcvMWUzKTtyZXR1cm4gd2AKICAgICAgPGJ1dHRvbgogICAgICAgIGNsYXNzPSJhY3Rpb24tYnV0dG9uICR7Xz9gcHJpbWFyeSAke2t9YDoic2Vjb25kYXJ5In0iCiAgICAgICAgQGNsaWNrPSR7KCk9PnRoaXMuaGFuZGxlQWN0aW9uKE0uaWQsITEpfQogICAgICA+CiAgICAgICAgJHtNLmljb24/d2AKICAgICAgICAgIDxkZWVzLWljb24gLmljb249JHtNLmljb259IGljb25TaXplPSIxMiI+PC9kZWVzLWljb24+CiAgICAgICAgYDoiIn0KICAgICAgICA8c3Bhbj4ke00ubGFiZWx9PC9zcGFuPgogICAgICAgICR7TD93YAogICAgICAgICAgPHNwYW4gY2xhc3M9ImNvdW50ZG93biI+KCR7QX1zKTwvc3Bhbj4KICAgICAgICBgOiIifQogICAgICA8L2J1dHRvbj4KICAgIGB9YXN5bmMgc2hvdyhNKXtyZXR1cm4gbmV3IFByb21pc2UoUz0+e3RoaXMucXVldWUucHVzaCh7b3B0aW9uczpNLHJlc29sdmU6U30pLHRoaXMuY3VycmVudEJhcnx8dGhpcy5wcm9jZXNzUXVldWUoKX0pfWRpc21pc3MoKXt0aGlzLmhhbmRsZURpc21pc3MoKX1jbGVhclF1ZXVlKCl7Zm9yKGxldCBNIG9mIHRoaXMucXVldWUpTS5yZXNvbHZlKHthY3Rpb25JZDoiZGlzbWlzc2VkIix0aW1lZE91dDohMX0pO3RoaXMucXVldWU9W119YXN5bmMgaGlkZUN1cnJlbnRCYXIoKXt0aGlzLmNsYXNzTGlzdC5yZW1vdmUoInZpc2libGUiKSx0aGlzLmlzVmlzaWJsZT0hMSxhd2FpdCBuZXcgUHJvbWlzZShNPT5zZXRUaW1lb3V0KE0sMjIwKSksdGhpcy5jdXJyZW50QmFyPW51bGwsdGhpcy5jdXJyZW50UmVzb2x2ZT1udWxsfWFzeW5jIHByb2Nlc3NRdWV1ZSgpe2lmKHRoaXMucXVldWUubGVuZ3RoPT09MCl7dGhpcy5oaWRlQ3VycmVudEJhcigpO3JldHVybn1sZXQgTT10aGlzLnF1ZXVlLnNoaWZ0KCk7dGhpcy5jdXJyZW50QmFyPU0ub3B0aW9ucyx0aGlzLmN1cnJlbnRSZXNvbHZlPU0ucmVzb2x2ZSx0aGlzLmlzVmlzaWJsZT0hMCxhd2FpdCB0aGlzLnVwZGF0ZUNvbXBsZXRlLHJlcXVlc3RBbmltYXRpb25GcmFtZSgoKT0+e3RoaXMuY2xhc3NMaXN0LmFkZCgidmlzaWJsZSIpfSksTS5vcHRpb25zLnRpbWVvdXQmJnRoaXMuc3RhcnRUaW1lb3V0KE0ub3B0aW9ucy50aW1lb3V0LmR1cmF0aW9uLE0ub3B0aW9ucy50aW1lb3V0LmRlZmF1bHRBY3Rpb25JZCl9c3RhcnRUaW1lb3V0KE0sUyl7dGhpcy50aW1lUmVtYWluaW5nPU0sdGhpcy5wcm9ncmVzc1BlcmNlbnQ9MTAwO2xldCBGPURhdGUubm93KCksXz01MDt0aGlzLnRpbWVvdXRJbnRlcnZhbD1zZXRJbnRlcnZhbCgoKT0+e2xldCBrPURhdGUubm93KCktRjt0aGlzLnRpbWVSZW1haW5pbmc9TWF0aC5tYXgoMCxNLWspLHRoaXMucHJvZ3Jlc3NQZXJjZW50PXRoaXMudGltZVJlbWFpbmluZy9NKjEwMCx0aGlzLnRpbWVSZW1haW5pbmc8PTAmJih0aGlzLmNsZWFyVGltZW91dEludGVydmFsKCksdGhpcy5oYW5kbGVBY3Rpb24oUywhMCkpfSxfKX1jbGVhclRpbWVvdXRJbnRlcnZhbCgpe3RoaXMudGltZW91dEludGVydmFsJiYoY2xlYXJJbnRlcnZhbCh0aGlzLnRpbWVvdXRJbnRlcnZhbCksdGhpcy50aW1lb3V0SW50ZXJ2YWw9bnVsbCl9aGFuZGxlQWN0aW9uKE0sUyl7dGhpcy5jbGVhclRpbWVvdXRJbnRlcnZhbCgpLHRoaXMuY3VycmVudFJlc29sdmUmJnRoaXMuY3VycmVudFJlc29sdmUoe2FjdGlvbklkOk0sdGltZWRPdXQ6U30pLHRoaXMucHJvY2Vzc1F1ZXVlKCl9aGFuZGxlRGlzbWlzcygpe3RoaXMuaGFuZGxlQWN0aW9uKCJkaXNtaXNzZWQiLCExKX1hc3luYyBkaXNjb25uZWN0ZWRDYWxsYmFjaygpe2F3YWl0IHN1cGVyLmRpc2Nvbm5lY3RlZENhbGxiYWNrKCksdGhpcy5jbGVhclRpbWVvdXRJbnRlcnZhbCgpfXN0YXRpY3tPcyhpLGEpfX07cmV0dXJuIHg9aX0pKCl9KTt2YXIgbm10PWIoKCk9Pnt9KTt2YXIgb210PWIoKCk9PntReCgpO25tdCgpfSk7dmFyIGxtdCxjbXQ9YigoKT0+e3VlKCk7bG10PSgpPT53YAogIDxkaXYgc3R5bGU9ImRpc3BsYXk6IGZsZXg7IGdhcDogOHB4OyBhbGlnbi1pdGVtczogY2VudGVyOyI+CiAgICA8ZGVlcy1iYWRnZSAudGV4dD0keyJEZWZhdWx0In0+PC9kZWVzLWJhZGdlPgogICAgPGRlZXMtYmFkZ2UgLnR5cGU9JHsicHJpbWFyeSJ9IC50ZXh0PSR7IlByaW1hcnkifT48L2RlZXMtYmFkZ2U+CiAgICA8ZGVlcy1iYWRnZSAudHlwZT0keyJzdWNjZXNzIn0gLnRleHQ9JHsiU3VjY2VzcyJ9PjwvZGVlcy1iYWRnZT4KICAgIDxkZWVzLWJhZGdlIC50eXBlPSR7Indhcm5pbmcifSAudGV4dD0keyJXYXJuaW5nIn0+PC9kZWVzLWJhZGdlPgogICAgPGRlZXMtYmFkZ2UgLnR5cGU9JHsiZXJyb3IifSAudGV4dD0keyJFcnJvciJ9PjwvZGVlcy1iYWRnZT4KICAgIDxkZWVzLWJhZGdlIC50eXBlPSR7InByaW1hcnkifSAucm91bmRlZD0keyEwfSAudGV4dD0keyJSb3VuZGVkIn0+PC9kZWVzLWJhZGdlPgogIDwvZGl2PgpgfSk7dmFyIEp4LHI0LGRtdCxobXQ9YigoKT0+e3VlKCk7VHQoKTtjbXQoKTtxZSgpO0p4PWZ1bmN0aW9uKHQsZSxhLGkscixzKXtmdW5jdGlvbiBuKHgpe2lmKHghPT12b2lkIDAmJnR5cGVvZiB4IT0iZnVuY3Rpb24iKXRocm93IG5ldyBUeXBlRXJyb3IoIkZ1bmN0aW9uIGV4cGVjdGVkIik7cmV0dXJuIHh9Zm9yKHZhciBvPWkua2luZCxkPW89PT0iZ2V0dGVyIj8iZ2V0IjpvPT09InNldHRlciI/InNldCI6InZhbHVlIixjPSFlJiZ0P2kuc3RhdGljP3Q6dC5wcm90b3R5cGU6bnVsbCxoPWV8fChjP09iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoYyxpLm5hbWUpOnt9KSxsLGY9ITEsZz1hLmxlbmd0aC0xO2c+PTA7Zy0tKXt2YXIgeT17fTtmb3IodmFyIHYgaW4gaSl5W3ZdPXY9PT0iYWNjZXNzIj97fTppW3ZdO2Zvcih2YXIgdiBpbiBpLmFjY2Vzcyl5LmFjY2Vzc1t2XT1pLmFjY2Vzc1t2XTt5LmFkZEluaXRpYWxpemVyPWZ1bmN0aW9uKHgpe2lmKGYpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGFkZCBpbml0aWFsaXplcnMgYWZ0ZXIgZGVjb3JhdGlvbiBoYXMgY29tcGxldGVkIik7cy5wdXNoKG4oeHx8bnVsbCkpfTt2YXIgbT0oMCxhW2ddKShvPT09ImFjY2Vzc29yIj97Z2V0OmguZ2V0LHNldDpoLnNldH06aFtkXSx5KTtpZihvPT09ImFjY2Vzc29yIil7aWYobT09PXZvaWQgMCljb250aW51ZTtpZihtPT09bnVsbHx8dHlwZW9mIG0hPSJvYmplY3QiKXRocm93IG5ldyBUeXBlRXJyb3IoIk9iamVjdCBleHBlY3RlZCIpOyhsPW4obS5nZXQpKSYmKGguZ2V0PWwpLChsPW4obS5zZXQpKSYmKGguc2V0PWwpLChsPW4obS5pbml0KSkmJnIudW5zaGlmdChsKX1lbHNlKGw9bihtKSkmJihvPT09ImZpZWxkIj9yLnVuc2hpZnQobCk6aFtkXT1sKX1jJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoYyxpLm5hbWUsaCksZj0hMH0scjQ9ZnVuY3Rpb24odCxlLGEpe2Zvcih2YXIgaT1hcmd1bWVudHMubGVuZ3RoPjIscj0wO3I8ZS5sZW5ndGg7cisrKWE9aT9lW3JdLmNhbGwodCxhKTplW3JdLmNhbGwodCk7cmV0dXJuIGk/YTp2b2lkIDB9LGRtdD0oKCk9PntsZXQgdD1bcGUoImRlZXMtYmFkZ2UiKV0sZSxhPVtdLGkscj14ZSxzLG49W10sbz1bXSxkLGM9W10saD1bXSxsLGY9W10sZz1bXTt2YXIgeT1jbGFzcyBleHRlbmRzIHJ7c3RhdGlje2k9dGhpc31zdGF0aWN7bGV0IHY9dHlwZW9mIFN5bWJvbD09ImZ1bmN0aW9uIiYmU3ltYm9sLm1ldGFkYXRhP09iamVjdC5jcmVhdGUocltTeW1ib2wubWV0YWRhdGFdPz9udWxsKTp2b2lkIDA7cz1bSSh7dHlwZTpTdHJpbmd9KV0sZD1bSSh7dHlwZTpTdHJpbmd9KV0sbD1bSSh7dHlwZTpCb29sZWFufSldLEp4KHRoaXMsbnVsbCxzLHtraW5kOiJhY2Nlc3NvciIsbmFtZToidHlwZSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6bT0+InR5cGUiaW4gbSxnZXQ6bT0+bS50eXBlLHNldDoobSx4KT0+e20udHlwZT14fX0sbWV0YWRhdGE6dn0sbixvKSxKeCh0aGlzLG51bGwsZCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InRleHQiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOm09PiJ0ZXh0ImluIG0sZ2V0Om09Pm0udGV4dCxzZXQ6KG0seCk9PnttLnRleHQ9eH19LG1ldGFkYXRhOnZ9LGMsaCksSngodGhpcyxudWxsLGwse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJyb3VuZGVkIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczptPT4icm91bmRlZCJpbiBtLGdldDptPT5tLnJvdW5kZWQsc2V0OihtLHgpPT57bS5yb3VuZGVkPXh9fSxtZXRhZGF0YTp2fSxmLGcpLEp4KG51bGwsZT17dmFsdWU6aX0sdCx7a2luZDoiY2xhc3MiLG5hbWU6aS5uYW1lLG1ldGFkYXRhOnZ9LG51bGwsYSkseT1pPWUudmFsdWUsdiYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGksU3ltYm9sLm1ldGFkYXRhLHtlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMCx2YWx1ZTp2fSl9c3RhdGljIGRlbW89bG10O3N0YXRpYyBkZW1vR3JvdXBzPVsiRmVlZGJhY2siXTsjZT1yNCh0aGlzLG4sImRlZmF1bHQiKTtnZXQgdHlwZSgpe3JldHVybiB0aGlzLiNlfXNldCB0eXBlKHYpe3RoaXMuI2U9dn0jdD0ocjQodGhpcyxvKSxyNCh0aGlzLGMsIiIpKTtnZXQgdGV4dCgpe3JldHVybiB0aGlzLiN0fXNldCB0ZXh0KHYpe3RoaXMuI3Q9dn0jYT0ocjQodGhpcyxoKSxyNCh0aGlzLGYsITEpKTtnZXQgcm91bmRlZCgpe3JldHVybiB0aGlzLiNhfXNldCByb3VuZGVkKHYpe3RoaXMuI2E9dn1jb25zdHJ1Y3Rvcigpe3N1cGVyKCkscjQodGhpcyxnKSx2MS5zZXR1cCgpfXN0YXRpYyBzdHlsZXM9W0NlLHAuZGVmYXVsdFN0eWxlcyxRYAogICAgICAvKiBUT0RPOiBNaWdyYXRlIGhhcmRjb2RlZCB2YWx1ZXMgdG8gLS1kZWVzLSogQ1NTIHZhcmlhYmxlcyAqLwogICAgICA6aG9zdCB7CiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrOwogICAgICB9CgogICAgICAuYmFkZ2UgewogICAgICAgIGRpc3BsYXk6IGlubGluZS1mbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7CiAgICAgICAgcGFkZGluZzogMnB4IDhweDsKICAgICAgICBmb250LXNpemU6IDEycHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDsKICAgICAgICBsaW5lLWhlaWdodDogMS41OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDRweDsKICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwOwogICAgICB9CgogICAgICAuYmFkZ2Uucm91bmRlZCB7CiAgICAgICAgYm9yZGVyLXJhZGl1czogMTJweDsKICAgICAgfQoKICAgICAgLmJhZGdlLmRlZmF1bHQgewogICAgICAgIGJhY2tncm91bmQ6ICR7cC5iZFRoZW1lKCIjZjVmNWY1IiwiIzMzMyIpfTsKICAgICAgICBjb2xvcjogJHtwLmJkVGhlbWUoIiM2NjYiLCIjY2NjIil9OwogICAgICB9CgogICAgICAuYmFkZ2UucHJpbWFyeSB7CiAgICAgICAgYmFja2dyb3VuZDogIzAwNTBiOTsKICAgICAgICBjb2xvcjogI2ZmZmZmZjsKICAgICAgfQoKICAgICAgLmJhZGdlLnN1Y2Nlc3MgewogICAgICAgIGJhY2tncm91bmQ6ICMyZTdkMzI7CiAgICAgICAgY29sb3I6ICNmZmZmZmY7CiAgICAgIH0KCiAgICAgIC5iYWRnZS53YXJuaW5nIHsKICAgICAgICBiYWNrZ3JvdW5kOiAjZWQ2YzAyOwogICAgICAgIGNvbG9yOiAjZmZmZmZmOwogICAgICB9CgogICAgICAuYmFkZ2UuZXJyb3IgewogICAgICAgIGJhY2tncm91bmQ6ICNlNDAwMmI7CiAgICAgICAgY29sb3I6ICNmZmZmZmY7CiAgICAgIH0KICAgIGBdO3JlbmRlcigpe3JldHVybiB3YAogICAgICA8ZGl2IGNsYXNzPSJiYWRnZSAke3RoaXMudHlwZX0gJHt0aGlzLnJvdW5kZWQ/InJvdW5kZWQiOiIifSI+CiAgICAgICAgJHt0aGlzLnRleHR9CiAgICAgIDwvZGl2PgogICAgYH1zdGF0aWN7cjQoaSxhKX19O3JldHVybiB5PWl9KSgpfSk7dmFyIHBtdD1iKCgpPT57aG10KCl9KTt2YXIgdW10LGZtdD1iKCgpPT57dWUoKTt1bXQ9KCk9PndgCiAgPGRlZXMtaGludD48L2RlZXMtaGludD4KYH0pO3ZhciBtbXQsbVYsZ210LGJtdD1iKCgpPT57dWUoKTtUdCgpO2ZtdCgpO3FlKCk7bW10PWZ1bmN0aW9uKHQsZSxhLGkscixzKXtmdW5jdGlvbiBuKHgpe2lmKHghPT12b2lkIDAmJnR5cGVvZiB4IT0iZnVuY3Rpb24iKXRocm93IG5ldyBUeXBlRXJyb3IoIkZ1bmN0aW9uIGV4cGVjdGVkIik7cmV0dXJuIHh9Zm9yKHZhciBvPWkua2luZCxkPW89PT0iZ2V0dGVyIj8iZ2V0IjpvPT09InNldHRlciI/InNldCI6InZhbHVlIixjPSFlJiZ0P2kuc3RhdGljP3Q6dC5wcm90b3R5cGU6bnVsbCxoPWV8fChjP09iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoYyxpLm5hbWUpOnt9KSxsLGY9ITEsZz1hLmxlbmd0aC0xO2c+PTA7Zy0tKXt2YXIgeT17fTtmb3IodmFyIHYgaW4gaSl5W3ZdPXY9PT0iYWNjZXNzIj97fTppW3ZdO2Zvcih2YXIgdiBpbiBpLmFjY2Vzcyl5LmFjY2Vzc1t2XT1pLmFjY2Vzc1t2XTt5LmFkZEluaXRpYWxpemVyPWZ1bmN0aW9uKHgpe2lmKGYpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGFkZCBpbml0aWFsaXplcnMgYWZ0ZXIgZGVjb3JhdGlvbiBoYXMgY29tcGxldGVkIik7cy5wdXNoKG4oeHx8bnVsbCkpfTt2YXIgbT0oMCxhW2ddKShvPT09ImFjY2Vzc29yIj97Z2V0OmguZ2V0LHNldDpoLnNldH06aFtkXSx5KTtpZihvPT09ImFjY2Vzc29yIil7aWYobT09PXZvaWQgMCljb250aW51ZTtpZihtPT09bnVsbHx8dHlwZW9mIG0hPSJvYmplY3QiKXRocm93IG5ldyBUeXBlRXJyb3IoIk9iamVjdCBleHBlY3RlZCIpOyhsPW4obS5nZXQpKSYmKGguZ2V0PWwpLChsPW4obS5zZXQpKSYmKGguc2V0PWwpLChsPW4obS5pbml0KSkmJnIudW5zaGlmdChsKX1lbHNlKGw9bihtKSkmJihvPT09ImZpZWxkIj9yLnVuc2hpZnQobCk6aFtkXT1sKX1jJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoYyxpLm5hbWUsaCksZj0hMH0sbVY9ZnVuY3Rpb24odCxlLGEpe2Zvcih2YXIgaT1hcmd1bWVudHMubGVuZ3RoPjIscj0wO3I8ZS5sZW5ndGg7cisrKWE9aT9lW3JdLmNhbGwodCxhKTplW3JdLmNhbGwodCk7cmV0dXJuIGk/YTp2b2lkIDB9LGdtdD0oKCk9PntsZXQgdD1bcGUoImRlZXMtaGludCIpXSxlLGE9W10saSxyPXhlLHMsbj1bXSxvPVtdO3ZhciBkPWNsYXNzIGV4dGVuZHMgcntzdGF0aWN7aT10aGlzfXN0YXRpY3tsZXQgYz10eXBlb2YgU3ltYm9sPT0iZnVuY3Rpb24iJiZTeW1ib2wubWV0YWRhdGE/T2JqZWN0LmNyZWF0ZShyW1N5bWJvbC5tZXRhZGF0YV0/P251bGwpOnZvaWQgMDtzPVtJKHt0eXBlOlN0cmluZ30pXSxtbXQodGhpcyxudWxsLHMse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJ0eXBlIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpoPT4idHlwZSJpbiBoLGdldDpoPT5oLnR5cGUsc2V0OihoLGwpPT57aC50eXBlPWx9fSxtZXRhZGF0YTpjfSxuLG8pLG1tdChudWxsLGU9e3ZhbHVlOml9LHQse2tpbmQ6ImNsYXNzIixuYW1lOmkubmFtZSxtZXRhZGF0YTpjfSxudWxsLGEpLGQ9aT1lLnZhbHVlLGMmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShpLFN5bWJvbC5tZXRhZGF0YSx7ZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITAsdmFsdWU6Y30pfXN0YXRpYyBkZW1vPXVtdDtzdGF0aWMgZGVtb0dyb3Vwcz1bIkZlZWRiYWNrIl07I2U9bVYodGhpcyxuLCJpbmZvIik7Z2V0IHR5cGUoKXtyZXR1cm4gdGhpcy4jZX1zZXQgdHlwZShjKXt0aGlzLiNlPWN9Y29uc3RydWN0b3IoKXtzdXBlcigpLG1WKHRoaXMsbyksdjEuc2V0dXAoKX1zdGF0aWMgc3R5bGVzPVtDZSxwLmRlZmF1bHRTdHlsZXMsUWAKICAgICAgLyogVE9ETzogTWlncmF0ZSBoYXJkY29kZWQgdmFsdWVzIHRvIC0tZGVlcy0qIENTUyB2YXJpYWJsZXMgKi8KICAgIGBdO3JlbmRlcigpe3JldHVybiB3YCA8ZGl2IGNsYXNzPSJtYWluYm94Ij48L2Rpdj4gYH1zdGF0aWN7bVYoaSxhKX19O3JldHVybiBkPWl9KSgpfSk7dmFyIHZtdD1iKCgpPT57Ym10KCl9KTt2YXIgeW10LHhtdD1iKCgpPT57dWUoKTtnVigpO3ltdD0oKT0+d2AKICAgIDxkZWVzLXByb2dyZXNzYmFyCiAgICAgIC5wZXJjZW50YWdlPSR7NTB9CiAgICA+PC9kZWVzLXByb2dyZXNzYmFyPgogIGB9KTt2YXIgd210LGJWLE1tdCxnVj1iKCgpPT57czIoKTtnaSgpO3htdCgpO3VlKCk7VHQoKTtxZSgpO3dtdD1mdW5jdGlvbih0LGUsYSxpLHIscyl7ZnVuY3Rpb24gbih4KXtpZih4IT09dm9pZCAwJiZ0eXBlb2YgeCE9ImZ1bmN0aW9uIil0aHJvdyBuZXcgVHlwZUVycm9yKCJGdW5jdGlvbiBleHBlY3RlZCIpO3JldHVybiB4fWZvcih2YXIgbz1pLmtpbmQsZD1vPT09ImdldHRlciI/ImdldCI6bz09PSJzZXR0ZXIiPyJzZXQiOiJ2YWx1ZSIsYz0hZSYmdD9pLnN0YXRpYz90OnQucHJvdG90eXBlOm51bGwsaD1lfHwoYz9PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGMsaS5uYW1lKTp7fSksbCxmPSExLGc9YS5sZW5ndGgtMTtnPj0wO2ctLSl7dmFyIHk9e307Zm9yKHZhciB2IGluIGkpeVt2XT12PT09ImFjY2VzcyI/e306aVt2XTtmb3IodmFyIHYgaW4gaS5hY2Nlc3MpeS5hY2Nlc3Nbdl09aS5hY2Nlc3Nbdl07eS5hZGRJbml0aWFsaXplcj1mdW5jdGlvbih4KXtpZihmKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBhZGQgaW5pdGlhbGl6ZXJzIGFmdGVyIGRlY29yYXRpb24gaGFzIGNvbXBsZXRlZCIpO3MucHVzaChuKHh8fG51bGwpKX07dmFyIG09KDAsYVtnXSkobz09PSJhY2Nlc3NvciI/e2dldDpoLmdldCxzZXQ6aC5zZXR9OmhbZF0seSk7aWYobz09PSJhY2Nlc3NvciIpe2lmKG09PT12b2lkIDApY29udGludWU7aWYobT09PW51bGx8fHR5cGVvZiBtIT0ib2JqZWN0Iil0aHJvdyBuZXcgVHlwZUVycm9yKCJPYmplY3QgZXhwZWN0ZWQiKTsobD1uKG0uZ2V0KSkmJihoLmdldD1sKSwobD1uKG0uc2V0KSkmJihoLnNldD1sKSwobD1uKG0uaW5pdCkpJiZyLnVuc2hpZnQobCl9ZWxzZShsPW4obSkpJiYobz09PSJmaWVsZCI/ci51bnNoaWZ0KGwpOmhbZF09bCl9YyYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGMsaS5uYW1lLGgpLGY9ITB9LGJWPWZ1bmN0aW9uKHQsZSxhKXtmb3IodmFyIGk9YXJndW1lbnRzLmxlbmd0aD4yLHI9MDtyPGUubGVuZ3RoO3IrKylhPWk/ZVtyXS5jYWxsKHQsYSk6ZVtyXS5jYWxsKHQpO3JldHVybiBpP2E6dm9pZCAwfSxNbXQ9KCgpPT57bGV0IHQ9W3BlKCJkZWVzLXByb2dyZXNzYmFyIildLGUsYT1bXSxpLHI9eGUscyxuPVtdLG89W107dmFyIGQ9Y2xhc3MgZXh0ZW5kcyBye3N0YXRpY3tpPXRoaXN9c3RhdGlje2xldCBjPXR5cGVvZiBTeW1ib2w9PSJmdW5jdGlvbiImJlN5bWJvbC5tZXRhZGF0YT9PYmplY3QuY3JlYXRlKHJbU3ltYm9sLm1ldGFkYXRhXT8/bnVsbCk6dm9pZCAwO3M9W0koe3R5cGU6TnVtYmVyfSldLHdtdCh0aGlzLG51bGwscyx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InBlcmNlbnRhZ2UiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmg9PiJwZXJjZW50YWdlImluIGgsZ2V0Omg9PmgucGVyY2VudGFnZSxzZXQ6KGgsbCk9PntoLnBlcmNlbnRhZ2U9bH19LG1ldGFkYXRhOmN9LG4sbyksd210KG51bGwsZT17dmFsdWU6aX0sdCx7a2luZDoiY2xhc3MiLG5hbWU6aS5uYW1lLG1ldGFkYXRhOmN9LG51bGwsYSksZD1pPWUudmFsdWUsYyYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGksU3ltYm9sLm1ldGFkYXRhLHtlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMCx2YWx1ZTpjfSl9c3RhdGljIGRlbW89eW10O3N0YXRpYyBkZW1vR3JvdXBzPVsiRmVlZGJhY2siXTsjZT1iVih0aGlzLG4sMCk7Z2V0IHBlcmNlbnRhZ2UoKXtyZXR1cm4gdGhpcy4jZX1zZXQgcGVyY2VudGFnZShjKXt0aGlzLiNlPWN9c3RhdGljIHN0eWxlcz1bQ2UscC5kZWZhdWx0U3R5bGVzLFFgCiAgICAgIC8qIFRPRE86IE1pZ3JhdGUgaGFyZGNvZGVkIHZhbHVlcyB0byAtLWRlZXMtKiBDU1MgdmFyaWFibGVzICovCiAgICAgIDpob3N0IHsKICAgICAgICBjb2xvcjogJHtwLmJkVGhlbWUoVTAudGV4dCxtaS50ZXh0KX07CiAgICAgIH0KICAgICAgLnByb2dyZXNzQmFyQ29udGFpbmVyIHsKICAgICAgICBwYWRkaW5nOiA4cHg7CiAgICAgICAgbWluLXdpZHRoOiAyMDBweDsKICAgICAgfQoKICAgICAgLnByb2dyZXNzQmFyIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke3AuYmRUaGVtZSgiI2VlZWVlYiIsIiM0NDQiKX07CiAgICAgICAgaGVpZ2h0OiA4cHg7CiAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgICAgYm9yZGVyLXJhZGl1czogNHB4OwogICAgICAgIGJvcmRlci10b3A6IDAuNXB4IHNvbGlkICR7cC5iZFRoZW1lKCJub25lIiwiIzU1NSIpfTsKICAgICAgfQoKICAgICAgLnByb2dyZXNzQmFyRmlsbCB7CiAgICAgICAgYmFja2dyb3VuZDogJHtwLmJkVGhlbWUobWkuYmx1ZUFjdGl2ZSxVMC5ibHVlQWN0aXZlKX07CiAgICAgICAgaGVpZ2h0OiA4cHg7CiAgICAgICAgbWFyZ2luLXRvcDogLTAuNXB4OwogICAgICAgIHRyYW5zaXRpb246IDAuMnMgd2lkdGg7CiAgICAgICAgYm9yZGVyLXJhZGl1czogNHB4OwogICAgICAgIHdpZHRoOiAwcHg7CiAgICAgICAgYm9yZGVyLXRvcDogMC41IHNvbGlkICR7cC5iZFRoZW1lKCJub25lIiwiIzM5OGZmZiIpfTsKICAgICAgfQoKICAgICAgLnByb2dyZXNzVGV4dCB7CiAgICAgICAgcGFkZGluZzogOHB4OwogICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjsKICAgICAgfQogICAgYF07cmVuZGVyKCl7cmV0dXJuIHdgCiAgICAgIDxkaXYgY2xhc3M9InByb2dyZXNzQmFyQ29udGFpbmVyIj4KICAgICAgICA8ZGl2IGNsYXNzPSJwcm9ncmVzc0JhciI+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJwcm9ncmVzc0JhckZpbGwiPjwvZGl2PgogICAgICAgICAgPGRpdiBjbGFzcz0icHJvZ3Jlc3NUZXh0Ij4KICAgICAgICAgICAgJHt0aGlzLnBlcmNlbnRhZ2V9JQogICAgICAgICAgPGRpdj4KICAgICAgICA8L2Rpdj4KICAgICAgPC9kaXY+CiAgICBgfWZpcnN0VXBkYXRlZChjKXtzdXBlci5maXJzdFVwZGF0ZWQoYyksdGhpcy51cGRhdGVDb21wbGV0ZS50aGVuKCgpPT57dGhpcy51cGRhdGVQZXJjZW50YWdlKCl9KX1hc3luYyB1cGRhdGVQZXJjZW50YWdlKCl7bGV0IGM9dGhpcy5zaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3IoIi5wcm9ncmVzc0JhckZpbGwiKTtjLnN0eWxlLndpZHRoPWAke3RoaXMucGVyY2VudGFnZX0lYH11cGRhdGVkKCl7dGhpcy51cGRhdGVQZXJjZW50YWdlKCl9Y29uc3RydWN0b3IoKXtzdXBlciguLi5hcmd1bWVudHMpLGJWKHRoaXMsbyl9c3RhdGlje2JWKGksYSl9fTtyZXR1cm4gZD1pfSkoKX0pO3ZhciB6bXQ9YigoKT0+e2dWKCl9KTt2YXIgZXcsczQsa210LFNtdD1iKCgpPT57dWUoKTtUdCgpO3FlKCk7ZXc9ZnVuY3Rpb24odCxlLGEsaSxyLHMpe2Z1bmN0aW9uIG4oeCl7aWYoeCE9PXZvaWQgMCYmdHlwZW9mIHghPSJmdW5jdGlvbiIpdGhyb3cgbmV3IFR5cGVFcnJvcigiRnVuY3Rpb24gZXhwZWN0ZWQiKTtyZXR1cm4geH1mb3IodmFyIG89aS5raW5kLGQ9bz09PSJnZXR0ZXIiPyJnZXQiOm89PT0ic2V0dGVyIj8ic2V0IjoidmFsdWUiLGM9IWUmJnQ/aS5zdGF0aWM/dDp0LnByb3RvdHlwZTpudWxsLGg9ZXx8KGM/T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihjLGkubmFtZSk6e30pLGwsZj0hMSxnPWEubGVuZ3RoLTE7Zz49MDtnLS0pe3ZhciB5PXt9O2Zvcih2YXIgdiBpbiBpKXlbdl09dj09PSJhY2Nlc3MiP3t9Omlbdl07Zm9yKHZhciB2IGluIGkuYWNjZXNzKXkuYWNjZXNzW3ZdPWkuYWNjZXNzW3ZdO3kuYWRkSW5pdGlhbGl6ZXI9ZnVuY3Rpb24oeCl7aWYoZil0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgYWRkIGluaXRpYWxpemVycyBhZnRlciBkZWNvcmF0aW9uIGhhcyBjb21wbGV0ZWQiKTtzLnB1c2gobih4fHxudWxsKSl9O3ZhciBtPSgwLGFbZ10pKG89PT0iYWNjZXNzb3IiP3tnZXQ6aC5nZXQsc2V0Omguc2V0fTpoW2RdLHkpO2lmKG89PT0iYWNjZXNzb3IiKXtpZihtPT09dm9pZCAwKWNvbnRpbnVlO2lmKG09PT1udWxsfHx0eXBlb2YgbSE9Im9iamVjdCIpdGhyb3cgbmV3IFR5cGVFcnJvcigiT2JqZWN0IGV4cGVjdGVkIik7KGw9bihtLmdldCkpJiYoaC5nZXQ9bCksKGw9bihtLnNldCkpJiYoaC5zZXQ9bCksKGw9bihtLmluaXQpKSYmci51bnNoaWZ0KGwpfWVsc2UobD1uKG0pKSYmKG89PT0iZmllbGQiP3IudW5zaGlmdChsKTpoW2RdPWwpfWMmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShjLGkubmFtZSxoKSxmPSEwfSxzND1mdW5jdGlvbih0LGUsYSl7Zm9yKHZhciBpPWFyZ3VtZW50cy5sZW5ndGg+MixyPTA7cjxlLmxlbmd0aDtyKyspYT1pP2Vbcl0uY2FsbCh0LGEpOmVbcl0uY2FsbCh0KTtyZXR1cm4gaT9hOnZvaWQgMH0sa210PSgoKT0+e2xldCB0PVtwZSgiZGVlcy1zcGlubmVyIildLGUsYT1bXSxpLHI9eGUscyxuPVtdLG89W10sZCxjPVtdLGg9W10sbCxmPVtdLGc9W107dmFyIHk9Y2xhc3MgZXh0ZW5kcyBye3N0YXRpY3tpPXRoaXN9c3RhdGlje2xldCB2PXR5cGVvZiBTeW1ib2w9PSJmdW5jdGlvbiImJlN5bWJvbC5tZXRhZGF0YT9PYmplY3QuY3JlYXRlKHJbU3ltYm9sLm1ldGFkYXRhXT8/bnVsbCk6dm9pZCAwO3M9W0koe3R5cGU6TnVtYmVyfSldLGQ9W0koe3R5cGU6U3RyaW5nfSldLGw9W0koKV0sZXcodGhpcyxudWxsLHMse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJzaXplIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczptPT4ic2l6ZSJpbiBtLGdldDptPT5tLnNpemUsc2V0OihtLHgpPT57bS5zaXplPXh9fSxtZXRhZGF0YTp2fSxuLG8pLGV3KHRoaXMsbnVsbCxkLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiYm53IixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczptPT4iYm53ImluIG0sZ2V0Om09Pm0uYm53LHNldDoobSx4KT0+e20uYm53PXh9fSxtZXRhZGF0YTp2fSxjLGgpLGV3KHRoaXMsbnVsbCxsLHtraW5kOiJhY2Nlc3NvciIsbmFtZToic3RhdHVzIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczptPT4ic3RhdHVzImluIG0sZ2V0Om09Pm0uc3RhdHVzLHNldDoobSx4KT0+e20uc3RhdHVzPXh9fSxtZXRhZGF0YTp2fSxmLGcpLGV3KG51bGwsZT17dmFsdWU6aX0sdCx7a2luZDoiY2xhc3MiLG5hbWU6aS5uYW1lLG1ldGFkYXRhOnZ9LG51bGwsYSkseT1pPWUudmFsdWUsdiYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGksU3ltYm9sLm1ldGFkYXRhLHtlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMCx2YWx1ZTp2fSl9c3RhdGljIGRlbW9Hcm91cHM9WyJGZWVkYmFjayJdO3N0YXRpYyBkZW1vPSgpPT53YAogICAgPGRlZXMtc3Bpbm5lcj48L2RlZXMtc3Bpbm5lcj4KICAgIDxkZWVzLXNwaW5uZXIgc3RhdHVzPSJzdWNjZXNzIj48L2RlZXMtc3Bpbm5lcj4KICAgIDxkZWVzLXNwaW5uZXIgc3RhdHVzPSJlcnJvciI+PC9kZWVzLXNwaW5uZXI+CiAgICA8ZGVlcy1zcGlubmVyIHNpemU9JHs2NH0gc3RhdHVzPSJzdWNjZXNzIj48L2RlZXMtc3Bpbm5lcj4KICAgIDxkZWVzLXNwaW5uZXIgLnNpemU9JHs2NH0gc3RhdHVzPSJlcnJvciI+PC9kZWVzLXNwaW5uZXI+CiAgYDsjZT1zNCh0aGlzLG4sMjApO2dldCBzaXplKCl7cmV0dXJuIHRoaXMuI2V9c2V0IHNpemUodil7dGhpcy4jZT12fSN0PShzNCh0aGlzLG8pLHM0KHRoaXMsYywhMSkpO2dldCBibncoKXtyZXR1cm4gdGhpcy4jdH1zZXQgYm53KHYpe3RoaXMuI3Q9dn0jYT0oczQodGhpcyxoKSxzNCh0aGlzLGYsIm5vcm1hbCIpKTtnZXQgc3RhdHVzKCl7cmV0dXJuIHRoaXMuI2F9c2V0IHN0YXR1cyh2KXt0aGlzLiNhPXZ9Y29uc3RydWN0b3IoKXtzdXBlcigpLHM0KHRoaXMsZyl9c3RhdGljIHN0eWxlcz1bQ2UscC5kZWZhdWx0U3R5bGVzLFFgCiAgICAgIC8qIFRPRE86IE1pZ3JhdGUgaGFyZGNvZGVkIHZhbHVlcyB0byAtLWRlZXMtKiBDU1MgdmFyaWFibGVzICovCiAgICAgIDpob3N0IHsKICAgICAgICBkaXNwbGF5OiBibG9jazsKICAgICAgfQoKICAgICAgI2xvYWRpbmcgewogICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgICB0cmFuc2l0aW9uOiBub25lOwogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7CiAgICAgICAgYWxpZ24tY29udGVudDogY2VudGVyOwogICAgICAgIGJhY2tncm91bmQ6ICM4YmMzNGEwMDsKICAgICAgICBib3JkZXI6IDNweCBzb2xpZCAke3AuYmRUaGVtZSgicmdiYSgwLCAwLCAwLCAwLjEpIiwicmdiYSgyNTUsIDI1NSwgMjU1LCAwLjMpIil9OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDUwJTsKICAgICAgICBib3JkZXItdG9wLWNvbG9yOiAke3AuYmRUaGVtZSgiIzMzMyIsIiNmZmYiKX07CiAgICAgICAgYW5pbWF0aW9uOiBzcGluIDFzIGVhc2UtaW4tb3V0IGluZmluaXRlOwogICAgICAgIC13ZWJraXQtYW5pbWF0aW9uOiBzcGluIDFzIGVhc2UtaW4tb3V0IGluZmluaXRlOwogICAgICB9CgogICAgICAjbG9hZGluZy5zdWNjZXNzIHsKICAgICAgICBib3JkZXI6IG5vbmU7CiAgICAgICAgYm9yZGVyLXJhZGl1czogNTAlOwogICAgICAgIGFuaW1hdGlvbjogbm9uZTsKICAgICAgICAtd2Via2l0LWFuaW1hdGlvbjogbm9uZTsKICAgICAgfQoKICAgICAgI2xvYWRpbmcuZXJyb3IgewogICAgICAgIGJvcmRlcjogbm9uZTsKICAgICAgICBib3JkZXItcmFkaXVzOiA1MCU7CiAgICAgICAgYW5pbWF0aW9uOiBub25lOwogICAgICAgIC13ZWJraXQtYW5pbWF0aW9uOiBub25lOwogICAgICB9CgogICAgICBAa2V5ZnJhbWVzIHNwaW4gewogICAgICAgIHRvIHsKICAgICAgICAgIC13ZWJraXQtdHJhbnNmb3JtOiByb3RhdGUoMzYwZGVnKTsKICAgICAgICB9CiAgICAgIH0KICAgICAgQC13ZWJraXQta2V5ZnJhbWVzIHNwaW4gewogICAgICAgIHRvIHsKICAgICAgICAgIC13ZWJraXQtdHJhbnNmb3JtOiByb3RhdGUoMzYwZGVnKTsKICAgICAgICB9CiAgICAgIH0KCiAgICAgIGRlZXMtaWNvbiB7CiAgICAgICAgcG9zaXRpb246IGFic29sdXRlOwogICAgICAgIGhlaWdodDogMTAwJTsKICAgICAgICB3aWR0aDogMTAwJTsKICAgICAgfQogICAgYF07cmVuZGVyKCl7cmV0dXJuIHdgCiAgICAgIDxzdHlsZT4KICAgICAgICAjbG9hZGluZyB7CiAgICAgICAgICB3aWR0aDogJHt0aGlzLnNpemV9cHg7CiAgICAgICAgICBoZWlnaHQ6ICR7dGhpcy5zaXplfXB4OwogICAgICAgIH0KICAgICAgICAjbG9hZGluZy5zdWNjZXNzIHsKICAgICAgICAgIGNvbG9yOiAke3AuYmRUaGVtZSh0aGlzLmJudz8iIzMzMyI6IiM4YmMzNGEiLHRoaXMuYm53PyIjZmZmIjoiIzhiYzM0YSIpfTsKICAgICAgICAgIAogICAgICAgIH0KICAgICAgICAjbG9hZGluZy5lcnJvciB7CiAgICAgICAgICBjb2xvcjogJHtwLmJkVGhlbWUodGhpcy5ibnc/IiMzMzMiOiIjZTY0YTE5Iix0aGlzLmJudz8iI2ZmZiI6IiNlNjRhMTkiKX07CiAgICAgICAgfQogICAgICAgIGRlZXMtaWNvbiB7CiAgICAgICAgICBmb250LXNpemU6ICR7dGhpcy5zaXplfXB4OwogICAgICAgIH0KICAgICAgPC9zdHlsZT4KICAgICAgPGRpdiBjbGFzcz0iJHt0aGlzLnN0YXR1c30iIGlkPSJsb2FkaW5nIj4KICAgICAgICAkeygoKT0+e2lmKHRoaXMuc3RhdHVzPT09InN1Y2Nlc3MiKXJldHVybiB3YDxkZWVzLWljb24gc3R5bGU9InRyYW5zZm9ybTogdHJhbnNsYXRlWCgxJSkgdHJhbnNsYXRlWSgzJSk7IiAuaWNvbj0keyJmYTpjaXJjbGUtY2hlY2sifT48L2RlZXMtaWNvbj5gO2lmKHRoaXMuc3RhdHVzPT09ImVycm9yIilyZXR1cm4gd2A8ZGVlcy1pY29uIC5pY29uPSR7ImZhOmNpcmNsZS14bWFyayJ9PjwvZGVlcy1pY29uPmB9KSgpfQogICAgICA8L2Rpdj4KICAgIGB9c3RhdGlje3M0KGksYSl9fTtyZXR1cm4geT1pfSkoKX0pO3ZhciBDbXQ9YigoKT0+e1NtdCgpfSk7dmFyIF9tdCxUbXQ9YigoKT0+e3VlKCk7dlYoKTtubygpO19tdD0oKT0+d2AKICAgIDxzdHlsZT4KICAgICAgLmRlbW8tY29udGFpbmVyIHsKICAgICAgICBwYWRkaW5nOiAzMnB4OwogICAgICAgIG1pbi1oZWlnaHQ6IDEwMHZoOwogICAgICAgIGJhY2tncm91bmQ6ICR7cC5iZFRoZW1lKCIjZjhmOWZhIiwiIzBhMGEwYSIpfTsKICAgICAgfQoKICAgICAgLmRlbW8tc2VjdGlvbiB7CiAgICAgICAgbWFyZ2luLWJvdHRvbTogNDhweDsKICAgICAgfQoKICAgICAgLmRlbW8tdGl0bGUgewogICAgICAgIGZvbnQtc2l6ZTogMjRweDsKICAgICAgICBmb250LXdlaWdodDogNjAwOwogICAgICAgIG1hcmdpbi1ib3R0b206IDE2cHg7CiAgICAgICAgY29sb3I6ICR7cC5iZFRoZW1lKCIjMzMzIiwiI2ZmZiIpfTsKICAgICAgfQoKICAgICAgLmRlbW8tZGVzY3JpcHRpb24gewogICAgICAgIGZvbnQtc2l6ZTogMTRweDsKICAgICAgICBjb2xvcjogJHtwLmJkVGhlbWUoIiM2NjYiLCIjYWFhIil9OwogICAgICAgIG1hcmdpbi1ib3R0b206IDI0cHg7CiAgICAgIH0KCiAgICAgIC5idXR0b24tZ3JpZCB7CiAgICAgICAgZGlzcGxheTogZ3JpZDsKICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdChhdXRvLWZpdCwgbWlubWF4KDIwMHB4LCAxZnIpKTsKICAgICAgICBnYXA6IDE2cHg7CiAgICAgICAgbWFyZ2luLWJvdHRvbTogMzJweDsKICAgICAgfQoKICAgICAgLnRoZW1lLXRvZ2dsZSB7CiAgICAgICAgcG9zaXRpb246IGZpeGVkOwogICAgICAgIHRvcDogMTZweDsKICAgICAgICByaWdodDogMTZweDsKICAgICAgICB6LWluZGV4OiAxMDA7CiAgICAgIH0KICAgIDwvc3R5bGU+CgogICAgPGRpdiBjbGFzcz0iZGVtby1jb250YWluZXIiPgogICAgICA8ZGVlcy1idXR0b24gY2xhc3M9InRoZW1lLXRvZ2dsZSIgQGNsaWNrZWQ9JHsoKT0+e2RvY3VtZW50LmJvZHkuY2xhc3NMaXN0LnRvZ2dsZSgiYnJpZ2h0Iil9fT5Ub2dnbGUgVGhlbWU8L2RlZXMtYnV0dG9uPgoKICAgICAgPGRpdiBjbGFzcz0iZGVtby1zZWN0aW9uIj4KICAgICAgICA8aDIgY2xhc3M9ImRlbW8tdGl0bGUiPlRvYXN0IFR5cGVzPC9oMj4KICAgICAgICA8cCBjbGFzcz0iZGVtby1kZXNjcmlwdGlvbiI+CiAgICAgICAgICBEaWZmZXJlbnQgdG9hc3QgdHlwZXMgZm9yIHZhcmlvdXMgbm90aWZpY2F0aW9uIHNjZW5hcmlvcy4gQ2xpY2sgYW55IGJ1dHRvbiB0byBzaG93IGEgdG9hc3QuCiAgICAgICAgPC9wPgogICAgICAgIDxkaXYgY2xhc3M9ImJ1dHRvbi1ncmlkIj4KICAgICAgICAgIDxkZWVzLWJ1dHRvbiBAY2xpY2tlZD0keygpPT57QnQuaW5mbygiVGhpcyBpcyBhbiBpbmZvcm1hdGlvbmFsIG1lc3NhZ2UiKX19PkluZm8gVG9hc3Q8L2RlZXMtYnV0dG9uPgogICAgICAgICAgCiAgICAgICAgICA8ZGVlcy1idXR0b24gdHlwZT0iaGlnaGxpZ2h0ZWQiIEBjbGlja2VkPSR7KCk9PntCdC5zdWNjZXNzKCJPcGVyYXRpb24gY29tcGxldGVkIHN1Y2Nlc3NmdWxseSEiKX19PlN1Y2Nlc3MgVG9hc3Q8L2RlZXMtYnV0dG9uPgogICAgICAgICAgCiAgICAgICAgICA8ZGVlcy1idXR0b24gQGNsaWNrZWQ9JHsoKT0+e0J0Lndhcm5pbmcoIlBsZWFzZSByZXZpZXcgYmVmb3JlIHByb2NlZWRpbmciKX19Pldhcm5pbmcgVG9hc3Q8L2RlZXMtYnV0dG9uPgogICAgICAgICAgCiAgICAgICAgICA8ZGVlcy1idXR0b24gQGNsaWNrZWQ9JHsoKT0+e0J0LmVycm9yKCJBbiBlcnJvciBvY2N1cnJlZCB3aGlsZSBwcm9jZXNzaW5nIil9fT5FcnJvciBUb2FzdDwvZGVlcy1idXR0b24+CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGl2PgoKICAgICAgPGRpdiBjbGFzcz0iZGVtby1zZWN0aW9uIj4KICAgICAgICA8aDIgY2xhc3M9ImRlbW8tdGl0bGUiPlRvYXN0IFBvc2l0aW9uczwvaDI+CiAgICAgICAgPHAgY2xhc3M9ImRlbW8tZGVzY3JpcHRpb24iPgogICAgICAgICAgVG9hc3RzIGNhbiBhcHBlYXIgaW4gZGlmZmVyZW50IHBvc2l0aW9ucyBvbiB0aGUgc2NyZWVuLgogICAgICAgIDwvcD4KICAgICAgICA8ZGl2IGNsYXNzPSJidXR0b24tZ3JpZCI+CiAgICAgICAgICA8ZGVlcy1idXR0b24gQGNsaWNrZWQ9JHsoKT0+e0J0LnNob3coe21lc3NhZ2U6IlRvcCBSaWdodCBQb3NpdGlvbiIsdHlwZToiaW5mbyIscG9zaXRpb246InRvcC1yaWdodCJ9KX19PlRvcCBSaWdodDwvZGVlcy1idXR0b24+CiAgICAgICAgICAKICAgICAgICAgIDxkZWVzLWJ1dHRvbiBAY2xpY2tlZD0keygpPT57QnQuc2hvdyh7bWVzc2FnZToiVG9wIExlZnQgUG9zaXRpb24iLHR5cGU6ImluZm8iLHBvc2l0aW9uOiJ0b3AtbGVmdCJ9KX19PlRvcCBMZWZ0PC9kZWVzLWJ1dHRvbj4KICAgICAgICAgIAogICAgICAgICAgPGRlZXMtYnV0dG9uIEBjbGlja2VkPSR7KCk9PntCdC5zaG93KHttZXNzYWdlOiJCb3R0b20gUmlnaHQgUG9zaXRpb24iLHR5cGU6ImluZm8iLHBvc2l0aW9uOiJib3R0b20tcmlnaHQifSl9fT5Cb3R0b20gUmlnaHQ8L2RlZXMtYnV0dG9uPgogICAgICAgICAgCiAgICAgICAgICA8ZGVlcy1idXR0b24gQGNsaWNrZWQ9JHsoKT0+e0J0LnNob3coe21lc3NhZ2U6IkJvdHRvbSBMZWZ0IFBvc2l0aW9uIix0eXBlOiJpbmZvIixwb3NpdGlvbjoiYm90dG9tLWxlZnQifSl9fT5Cb3R0b20gTGVmdDwvZGVlcy1idXR0b24+CiAgICAgICAgICAKICAgICAgICAgIDxkZWVzLWJ1dHRvbiBAY2xpY2tlZD0keygpPT57QnQuc2hvdyh7bWVzc2FnZToiVG9wIENlbnRlciBQb3NpdGlvbiIsdHlwZToiaW5mbyIscG9zaXRpb246InRvcC1jZW50ZXIifSl9fT5Ub3AgQ2VudGVyPC9kZWVzLWJ1dHRvbj4KICAgICAgICAgIAogICAgICAgICAgPGRlZXMtYnV0dG9uIEBjbGlja2VkPSR7KCk9PntCdC5zaG93KHttZXNzYWdlOiJCb3R0b20gQ2VudGVyIFBvc2l0aW9uIix0eXBlOiJpbmZvIixwb3NpdGlvbjoiYm90dG9tLWNlbnRlciJ9KX19PkJvdHRvbSBDZW50ZXI8L2RlZXMtYnV0dG9uPgogICAgICAgIDwvZGl2PgogICAgICA8L2Rpdj4KCiAgICAgIDxkaXYgY2xhc3M9ImRlbW8tc2VjdGlvbiI+CiAgICAgICAgPGgyIGNsYXNzPSJkZW1vLXRpdGxlIj5EdXJhdGlvbiBPcHRpb25zPC9oMj4KICAgICAgICA8cCBjbGFzcz0iZGVtby1kZXNjcmlwdGlvbiI+CiAgICAgICAgICBDb250cm9sIGhvdyBsb25nIHRvYXN0cyBzdGF5IHZpc2libGUuIER1cmF0aW9uIGluIG1pbGxpc2Vjb25kcy4KICAgICAgICA8L3A+CiAgICAgICAgPGRpdiBjbGFzcz0iYnV0dG9uLWdyaWQiPgogICAgICAgICAgPGRlZXMtYnV0dG9uIEBjbGlja2VkPSR7KCk9PntCdC5zaG93KHttZXNzYWdlOiJRdWljayB0b2FzdCAoMSBzZWNvbmQpIix0eXBlOiJpbmZvIixkdXJhdGlvbjoxZTN9KX19PjEgU2Vjb25kPC9kZWVzLWJ1dHRvbj4KICAgICAgICAgIAogICAgICAgICAgPGRlZXMtYnV0dG9uIEBjbGlja2VkPSR7KCk9PntCdC5zaG93KHttZXNzYWdlOiJTdGFuZGFyZCB0b2FzdCAoMyBzZWNvbmRzKSIsdHlwZToiaW5mbyIsZHVyYXRpb246M2UzfSl9fT4zIFNlY29uZHMgKERlZmF1bHQpPC9kZWVzLWJ1dHRvbj4KICAgICAgICAgIAogICAgICAgICAgPGRlZXMtYnV0dG9uIEBjbGlja2VkPSR7KCk9PntCdC5zaG93KHttZXNzYWdlOiJMb25nIHRvYXN0ICg1IHNlY29uZHMpIix0eXBlOiJpbmZvIixkdXJhdGlvbjo1ZTN9KX19PjUgU2Vjb25kczwvZGVlcy1idXR0b24+CiAgICAgICAgICAKICAgICAgICAgIDxkZWVzLWJ1dHRvbiBAY2xpY2tlZD0keygpPT57QnQuc2hvdyh7bWVzc2FnZToiTWFudWFsIGRpc21pc3Mgb25seSAoY2xpY2sgdG8gY2xvc2UpIix0eXBlOiJ3YXJuaW5nIixkdXJhdGlvbjowfSl9fT5ObyBBdXRvLURpc21pc3M8L2RlZXMtYnV0dG9uPgogICAgICAgIDwvZGl2PgogICAgICA8L2Rpdj4KCiAgICAgIDxkaXYgY2xhc3M9ImRlbW8tc2VjdGlvbiI+CiAgICAgICAgPGgyIGNsYXNzPSJkZW1vLXRpdGxlIj5NdWx0aXBsZSBUb2FzdHM8L2gyPgogICAgICAgIDxwIGNsYXNzPSJkZW1vLWRlc2NyaXB0aW9uIj4KICAgICAgICAgIE11bHRpcGxlIHRvYXN0cyBzdGFjayBhdXRvbWF0aWNhbGx5LiBUaGV5IG1haW50YWluIHRoZWlyIG9yZGVyIGFuZCBhbmltYXRlIHNtb290aGx5LgogICAgICAgIDwvcD4KICAgICAgICA8ZGl2IGNsYXNzPSJidXR0b24tZ3JpZCI+CiAgICAgICAgICA8ZGVlcy1idXR0b24gQGNsaWNrZWQ9JHsoKT0+e0J0LmluZm8oIkZpcnN0IG5vdGlmaWNhdGlvbiIpLHNldFRpbWVvdXQoKCk9PkJ0LnN1Y2Nlc3MoIlNlY29uZCBub3RpZmljYXRpb24iKSwyMDApLHNldFRpbWVvdXQoKCk9PkJ0Lndhcm5pbmcoIlRoaXJkIG5vdGlmaWNhdGlvbiIpLDQwMCksc2V0VGltZW91dCgoKT0+QnQuZXJyb3IoIkZvdXJ0aCBub3RpZmljYXRpb24iKSw2MDApfX0+U2hvdyBNdWx0aXBsZTwvZGVlcy1idXR0b24+CiAgICAgICAgICAKICAgICAgICAgIDxkZWVzLWJ1dHRvbiBAY2xpY2tlZD0keygpPT57Zm9yKGxldCB0PTE7dDw9NTt0Kyspc2V0VGltZW91dCgoKT0+e0J0LnNob3coe21lc3NhZ2U6YE5vdGlmaWNhdGlvbiAjJHt0fWAsdHlwZTp0JTI9PT0wPyJzdWNjZXNzIjoiaW5mbyIsZHVyYXRpb246MmUzK3QqNTAwfSl9LHQqMTAwKX19PlJhcGlkIEZpcmU8L2RlZXMtYnV0dG9uPgogICAgICAgIDwvZGl2PgogICAgICA8L2Rpdj4KCiAgICAgIDxkaXYgY2xhc3M9ImRlbW8tc2VjdGlvbiI+CiAgICAgICAgPGgyIGNsYXNzPSJkZW1vLXRpdGxlIj5SZWFsLVdvcmxkIEV4YW1wbGVzPC9oMj4KICAgICAgICA8cCBjbGFzcz0iZGVtby1kZXNjcmlwdGlvbiI+CiAgICAgICAgICBDb21tb24gdXNlIGNhc2VzIGZvciB0b2FzdCBub3RpZmljYXRpb25zIGluIGFwcGxpY2F0aW9ucy4KICAgICAgICA8L3A+CiAgICAgICAgPGRpdiBjbGFzcz0iYnV0dG9uLWdyaWQiPgogICAgICAgICAgPGRlZXMtYnV0dG9uIEBjbGlja2VkPSR7YXN5bmMoKT0+e2xldCB0PWF3YWl0IEJ0LnNob3coe21lc3NhZ2U6IlNhdmluZyBjaGFuZ2VzLi4uIix0eXBlOiJpbmZvIixkdXJhdGlvbjowfSk7c2V0VGltZW91dCgoKT0+e3QuZGlzbWlzcygpLEJ0LnN1Y2Nlc3MoIkNoYW5nZXMgc2F2ZWQgc3VjY2Vzc2Z1bGx5ISIpfSwyZTMpfX0+U2F2ZSBPcGVyYXRpb248L2RlZXMtYnV0dG9uPgogICAgICAgICAgCiAgICAgICAgICA8ZGVlcy1idXR0b24gQGNsaWNrZWQ9JHsoKT0+e0J0LmVycm9yKCJGYWlsZWQgdG8gY29ubmVjdCB0byBzZXJ2ZXIuIFBsZWFzZSBjaGVjayB5b3VyIGludGVybmV0IGNvbm5lY3Rpb24uIil9fT5OZXR3b3JrIEVycm9yPC9kZWVzLWJ1dHRvbj4KICAgICAgICAgIAogICAgICAgICAgPGRlZXMtYnV0dG9uIEBjbGlja2VkPSR7KCk9PntCdC53YXJuaW5nKCJZb3VyIHNlc3Npb24gd2lsbCBleHBpcmUgaW4gNSBtaW51dGVzIil9fT5TZXNzaW9uIFdhcm5pbmc8L2RlZXMtYnV0dG9uPgogICAgICAgICAgCiAgICAgICAgICA8ZGVlcy1idXR0b24gQGNsaWNrZWQ9JHsoKT0+e0J0LnN1Y2Nlc3MoIkZpbGUgdXBsb2FkZWQgc3VjY2Vzc2Z1bGx5ISIpfX0+VXBsb2FkIENvbXBsZXRlPC9kZWVzLWJ1dHRvbj4KICAgICAgICA8L2Rpdj4KICAgICAgPC9kaXY+CgogICAgICA8ZGl2IGNsYXNzPSJkZW1vLXNlY3Rpb24iPgogICAgICAgIDxoMiBjbGFzcz0iZGVtby10aXRsZSI+UHJvZ3JhbW1hdGljIENvbnRyb2w8L2gyPgogICAgICAgIDxwIGNsYXNzPSJkZW1vLWRlc2NyaXB0aW9uIj4KICAgICAgICAgIEFkdmFuY2VkIGNvbnRyb2wgb3ZlciB0b2FzdCBiZWhhdmlvci4KICAgICAgICA8L3A+CiAgICAgICAgPGRpdiBjbGFzcz0iYnV0dG9uLWdyaWQiPgogICAgICAgICAgPGRlZXMtYnV0dG9uIEBjbGlja2VkPSR7YXN5bmMoKT0+e2xldCB0PWF3YWl0IEJ0LnNob3coe21lc3NhZ2U6IlRoaXMgdG9hc3QgY2FuIGJlIGRpc21pc3NlZCBwcm9ncmFtbWF0aWNhbGx5Iix0eXBlOiJpbmZvIixkdXJhdGlvbjowfSk7c2V0VGltZW91dCgoKT0+e3QuZGlzbWlzcygpLEJ0LnN1Y2Nlc3MoIlRvYXN0IGRpc21pc3NlZCBhZnRlciAyIHNlY29uZHMiKX0sMmUzKX19PlByb2dyYW1tYXRpYyBEaXNtaXNzPC9kZWVzLWJ1dHRvbj4KICAgICAgICAgIAogICAgICAgICAgPGRlZXMtYnV0dG9uIEBjbGlja2VkPSR7KCk9PntCdC5pbmZvKCJJbmZvIG1lc3NhZ2UiLDJlMyksc2V0VGltZW91dCgoKT0+QnQuc3VjY2VzcygiU3VjY2VzcyBtZXNzYWdlIiwyZTMpLDUwMCksc2V0VGltZW91dCgoKT0+QnQud2FybmluZygiV2FybmluZyBtZXNzYWdlIiwyZTMpLDFlMyksc2V0VGltZW91dCgoKT0+QnQuZXJyb3IoIkVycm9yIG1lc3NhZ2UiLDJlMyksMTUwMCl9fT5Db252ZW5pZW5jZSBNZXRob2RzPC9kZWVzLWJ1dHRvbj4KICAgICAgICA8L2Rpdj4KICAgICAgPC9kaXY+CiAgICA8L2Rpdj4KICBgfSk7dmFyIF84LFJzLEJ0LHZWPWIoKCk9Pnt1ZSgpO1R0KCk7dWkoKTtUbXQoKTtkYSgpO3FlKCk7Xzg9ZnVuY3Rpb24odCxlLGEsaSxyLHMpe2Z1bmN0aW9uIG4oeCl7aWYoeCE9PXZvaWQgMCYmdHlwZW9mIHghPSJmdW5jdGlvbiIpdGhyb3cgbmV3IFR5cGVFcnJvcigiRnVuY3Rpb24gZXhwZWN0ZWQiKTtyZXR1cm4geH1mb3IodmFyIG89aS5raW5kLGQ9bz09PSJnZXR0ZXIiPyJnZXQiOm89PT0ic2V0dGVyIj8ic2V0IjoidmFsdWUiLGM9IWUmJnQ/aS5zdGF0aWM/dDp0LnByb3RvdHlwZTpudWxsLGg9ZXx8KGM/T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihjLGkubmFtZSk6e30pLGwsZj0hMSxnPWEubGVuZ3RoLTE7Zz49MDtnLS0pe3ZhciB5PXt9O2Zvcih2YXIgdiBpbiBpKXlbdl09dj09PSJhY2Nlc3MiP3t9Omlbdl07Zm9yKHZhciB2IGluIGkuYWNjZXNzKXkuYWNjZXNzW3ZdPWkuYWNjZXNzW3ZdO3kuYWRkSW5pdGlhbGl6ZXI9ZnVuY3Rpb24oeCl7aWYoZil0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgYWRkIGluaXRpYWxpemVycyBhZnRlciBkZWNvcmF0aW9uIGhhcyBjb21wbGV0ZWQiKTtzLnB1c2gobih4fHxudWxsKSl9O3ZhciBtPSgwLGFbZ10pKG89PT0iYWNjZXNzb3IiP3tnZXQ6aC5nZXQsc2V0Omguc2V0fTpoW2RdLHkpO2lmKG89PT0iYWNjZXNzb3IiKXtpZihtPT09dm9pZCAwKWNvbnRpbnVlO2lmKG09PT1udWxsfHx0eXBlb2YgbSE9Im9iamVjdCIpdGhyb3cgbmV3IFR5cGVFcnJvcigiT2JqZWN0IGV4cGVjdGVkIik7KGw9bihtLmdldCkpJiYoaC5nZXQ9bCksKGw9bihtLnNldCkpJiYoaC5zZXQ9bCksKGw9bihtLmluaXQpKSYmci51bnNoaWZ0KGwpfWVsc2UobD1uKG0pKSYmKG89PT0iZmllbGQiP3IudW5zaGlmdChsKTpoW2RdPWwpfWMmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShjLGkubmFtZSxoKSxmPSEwfSxScz1mdW5jdGlvbih0LGUsYSl7Zm9yKHZhciBpPWFyZ3VtZW50cy5sZW5ndGg+MixyPTA7cjxlLmxlbmd0aDtyKyspYT1pP2Vbcl0uY2FsbCh0LGEpOmVbcl0uY2FsbCh0KTtyZXR1cm4gaT9hOnZvaWQgMH0sQnQ9KCgpPT57bGV0IHQ9W3BlKCJkZWVzLXRvYXN0IildLGUsYT1bXSxpLHI9eGUscyxuPVtdLG89W10sZCxjPVtdLGg9W10sbCxmPVtdLGc9W10seSx2PVtdLG09W107dmFyIHg9Y2xhc3MgZXh0ZW5kcyBye3N0YXRpY3tpPXRoaXN9c3RhdGlje2xldCBNPXR5cGVvZiBTeW1ib2w9PSJmdW5jdGlvbiImJlN5bWJvbC5tZXRhZGF0YT9PYmplY3QuY3JlYXRlKHJbU3ltYm9sLm1ldGFkYXRhXT8/bnVsbCk6dm9pZCAwO3M9W0koe3R5cGU6U3RyaW5nfSldLGQ9W0koe3R5cGU6U3RyaW5nfSldLGw9W0koe3R5cGU6TnVtYmVyfSldLHk9W0koe3R5cGU6Qm9vbGVhbixyZWZsZWN0OiEwfSldLF84KHRoaXMsbnVsbCxzLHtraW5kOiJhY2Nlc3NvciIsbmFtZToibWVzc2FnZSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6Uz0+Im1lc3NhZ2UiaW4gUyxnZXQ6Uz0+Uy5tZXNzYWdlLHNldDooUyxGKT0+e1MubWVzc2FnZT1GfX0sbWV0YWRhdGE6TX0sbixvKSxfOCh0aGlzLG51bGwsZCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InR5cGUiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOlM9PiJ0eXBlImluIFMsZ2V0OlM9PlMudHlwZSxzZXQ6KFMsRik9PntTLnR5cGU9Rn19LG1ldGFkYXRhOk19LGMsaCksXzgodGhpcyxudWxsLGwse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJkdXJhdGlvbiIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6Uz0+ImR1cmF0aW9uImluIFMsZ2V0OlM9PlMuZHVyYXRpb24sc2V0OihTLEYpPT57Uy5kdXJhdGlvbj1GfX0sbWV0YWRhdGE6TX0sZixnKSxfOCh0aGlzLG51bGwseSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImlzVmlzaWJsZSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6Uz0+ImlzVmlzaWJsZSJpbiBTLGdldDpTPT5TLmlzVmlzaWJsZSxzZXQ6KFMsRik9PntTLmlzVmlzaWJsZT1GfX0sbWV0YWRhdGE6TX0sdixtKSxfOChudWxsLGU9e3ZhbHVlOml9LHQse2tpbmQ6ImNsYXNzIixuYW1lOmkubmFtZSxtZXRhZGF0YTpNfSxudWxsLGEpLHg9aT1lLnZhbHVlLE0mJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShpLFN5bWJvbC5tZXRhZGF0YSx7ZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITAsdmFsdWU6TX0pfXN0YXRpYyBkZW1vPV9tdDtzdGF0aWMgZGVtb0dyb3Vwcz1bIkZlZWRiYWNrIiwiT3ZlcmxheSJdO3N0YXRpYyB0b2FzdENvbnRhaW5lcnM9bmV3IE1hcDtzdGF0aWMgZ2V0T3JDcmVhdGVDb250YWluZXIoTSl7aWYoIXRoaXMudG9hc3RDb250YWluZXJzLmhhcyhNKSl7bGV0IFM9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7c3dpdGNoKFMuY2xhc3NOYW1lPWB0b2FzdC1jb250YWluZXIgdG9hc3QtY29udGFpbmVyLSR7TX1gLFMuc3R5bGUuY3NzVGV4dD1gCiAgICAgICAgcG9zaXRpb246IGZpeGVkOwogICAgICAgIHotaW5kZXg6ICR7cjIub3ZlcmxheS50b2FzdH07CiAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7CiAgICAgICAgcGFkZGluZzogMTZweDsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgICAgZ2FwOiA4cHg7CiAgICAgIGAsTSl7Y2FzZSJ0b3AtcmlnaHQiOlMuc3R5bGUudG9wPSIwIixTLnN0eWxlLnJpZ2h0PSIwIjticmVhaztjYXNlInRvcC1sZWZ0IjpTLnN0eWxlLnRvcD0iMCIsUy5zdHlsZS5sZWZ0PSIwIjticmVhaztjYXNlImJvdHRvbS1yaWdodCI6Uy5zdHlsZS5ib3R0b209IjAiLFMuc3R5bGUucmlnaHQ9IjAiO2JyZWFrO2Nhc2UiYm90dG9tLWxlZnQiOlMuc3R5bGUuYm90dG9tPSIwIixTLnN0eWxlLmxlZnQ9IjAiO2JyZWFrO2Nhc2UidG9wLWNlbnRlciI6Uy5zdHlsZS50b3A9IjAiLFMuc3R5bGUubGVmdD0iNTAlIixTLnN0eWxlLnRyYW5zZm9ybT0idHJhbnNsYXRlWCgtNTAlKSI7YnJlYWs7Y2FzZSJib3R0b20tY2VudGVyIjpTLnN0eWxlLmJvdHRvbT0iMCIsUy5zdHlsZS5sZWZ0PSI1MCUiLFMuc3R5bGUudHJhbnNmb3JtPSJ0cmFuc2xhdGVYKC01MCUpIjticmVha31kb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKFMpLHRoaXMudG9hc3RDb250YWluZXJzLnNldChNLFMpfXJldHVybiB0aGlzLnRvYXN0Q29udGFpbmVycy5nZXQoTSl9c3RhdGljIGFzeW5jIHNob3coTSl7bGV0IFM9dHlwZW9mIE09PSJzdHJpbmciP3ttZXNzYWdlOk19Ok0sRj1uZXcgeDtyZXR1cm4gRi5tZXNzYWdlPVMubWVzc2FnZSxGLnR5cGU9Uy50eXBlfHwiaW5mbyIsRi5kdXJhdGlvbj1TLmR1cmF0aW9ufHwzZTMsdGhpcy5nZXRPckNyZWF0ZUNvbnRhaW5lcihTLnBvc2l0aW9ufHwidG9wLXJpZ2h0IikuYXBwZW5kQ2hpbGQoRiksYXdhaXQgRi51cGRhdGVDb21wbGV0ZSxyZXF1ZXN0QW5pbWF0aW9uRnJhbWUoKCk9PntGLmlzVmlzaWJsZT0hMH0pLEYuZHVyYXRpb24+MCYmc2V0VGltZW91dCgoKT0+e0YuZGlzbWlzcygpfSxGLmR1cmF0aW9uKSxGfXN0YXRpYyBhc3luYyBjcmVhdGVBbmRTaG93KE0pe3JldHVybiB0aGlzLnNob3coTSl9c3RhdGljIGluZm8oTSxTKXtyZXR1cm4gdGhpcy5zaG93KHttZXNzYWdlOk0sdHlwZToiaW5mbyIsZHVyYXRpb246U30pfXN0YXRpYyBzdWNjZXNzKE0sUyl7cmV0dXJuIHRoaXMuc2hvdyh7bWVzc2FnZTpNLHR5cGU6InN1Y2Nlc3MiLGR1cmF0aW9uOlN9KX1zdGF0aWMgd2FybmluZyhNLFMpe3JldHVybiB0aGlzLnNob3coe21lc3NhZ2U6TSx0eXBlOiJ3YXJuaW5nIixkdXJhdGlvbjpTfSl9c3RhdGljIGVycm9yKE0sUyl7cmV0dXJuIHRoaXMuc2hvdyh7bWVzc2FnZTpNLHR5cGU6ImVycm9yIixkdXJhdGlvbjpTfSl9I2U9UnModGhpcyxuLCIiKTtnZXQgbWVzc2FnZSgpe3JldHVybiB0aGlzLiNlfXNldCBtZXNzYWdlKE0pe3RoaXMuI2U9TX0jdD0oUnModGhpcyxvKSxScyh0aGlzLGMsImluZm8iKSk7Z2V0IHR5cGUoKXtyZXR1cm4gdGhpcy4jdH1zZXQgdHlwZShNKXt0aGlzLiN0PU19I2E9KFJzKHRoaXMsaCksUnModGhpcyxmLDNlMykpO2dldCBkdXJhdGlvbigpe3JldHVybiB0aGlzLiNhfXNldCBkdXJhdGlvbihNKXt0aGlzLiNhPU19I2k9KFJzKHRoaXMsZyksUnModGhpcyx2LCExKSk7Z2V0IGlzVmlzaWJsZSgpe3JldHVybiB0aGlzLiNpfXNldCBpc1Zpc2libGUoTSl7dGhpcy4jaT1NfWNvbnN0cnVjdG9yKCl7c3VwZXIoKSxScyh0aGlzLG0pLHYxLnNldHVwKCl9c3RhdGljIHN0eWxlcz1bQ2UscC5kZWZhdWx0U3R5bGVzLFFgCiAgICAgIC8qIFRPRE86IE1pZ3JhdGUgaGFyZGNvZGVkIHZhbHVlcyB0byAtLWRlZXMtKiBDU1MgdmFyaWFibGVzICovCiAgICAgIDpob3N0IHsKICAgICAgICBkaXNwbGF5OiBibG9jazsKICAgICAgICBwb2ludGVyLWV2ZW50czogYXV0bzsKICAgICAgICBmb250LWZhbWlseTogJHtKdH07CiAgICAgICAgb3BhY2l0eTogMDsKICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTEwcHgpOwogICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjNzIGN1YmljLWJlemllcigwLjQsIDAsIDAuMiwgMSk7CiAgICAgIH0KCiAgICAgIDpob3N0KFtpc3Zpc2libGVdKSB7CiAgICAgICAgb3BhY2l0eTogMTsKICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMCk7CiAgICAgIH0KCiAgICAgIC50b2FzdCB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGdhcDogMTJweDsKICAgICAgICBwYWRkaW5nOiAxNnB4IDIwcHg7CiAgICAgICAgYm9yZGVyLXJhZGl1czogOHB4OwogICAgICAgIGJhY2tncm91bmQ6ICR7cC5iZFRoZW1lKCIjZmZmIiwiIzIyMiIpfTsKICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAke3AuYmRUaGVtZSgiI2UwZTBlMCIsIiMzMzMiKX07CiAgICAgICAgYm94LXNoYWRvdzogMCA0cHggMTJweCAke3AuYmRUaGVtZSgicmdiYSgwLDAsMCwwLjEpIiwicmdiYSgwLDAsMCwwLjMpIil9OwogICAgICAgIG1pbi13aWR0aDogMzAwcHg7CiAgICAgICAgbWF4LXdpZHRoOiA1MDBweDsKICAgICAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICAgIH0KCiAgICAgIC50b2FzdDpob3ZlciB7CiAgICAgICAgdHJhbnNmb3JtOiBzY2FsZSgxLjAyKTsKICAgICAgfQoKICAgICAgLmljb24gewogICAgICAgIGZsZXgtc2hyaW5rOiAwOwogICAgICAgIHdpZHRoOiAyMHB4OwogICAgICAgIGhlaWdodDogMjBweDsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7CiAgICAgIH0KCiAgICAgIC5pY29uIHN2ZyB7CiAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgICAgaGVpZ2h0OiAxMDAlOwogICAgICB9CgogICAgICAubWVzc2FnZSB7CiAgICAgICAgZmxleDogMTsKICAgICAgICBmb250LXNpemU6IDE0cHg7CiAgICAgICAgbGluZS1oZWlnaHQ6IDEuNTsKICAgICAgICBjb2xvcjogJHtwLmJkVGhlbWUoIiMzMzMiLCIjZmZmIil9OwogICAgICB9CgogICAgICAuY2xvc2UgewogICAgICAgIGZsZXgtc2hyaW5rOiAwOwogICAgICAgIHdpZHRoOiAxNnB4OwogICAgICAgIGhlaWdodDogMTZweDsKICAgICAgICBvcGFjaXR5OiAwLjU7CiAgICAgICAgY3Vyc29yOiBwb2ludGVyOwogICAgICAgIHRyYW5zaXRpb246IG9wYWNpdHkgMC4yczsKICAgICAgfQoKICAgICAgLmNsb3NlOmhvdmVyIHsKICAgICAgICBvcGFjaXR5OiAxOwogICAgICB9CgogICAgICAuY2xvc2Ugc3ZnIHsKICAgICAgICB3aWR0aDogMTAwJTsKICAgICAgICBoZWlnaHQ6IDEwMCU7CiAgICAgICAgZmlsbDogY3VycmVudENvbG9yOwogICAgICB9CgogICAgICAvKiBUeXBlLXNwZWNpZmljIHN0eWxlcyAqLwogICAgICA6aG9zdChbdHlwZT0iaW5mbyJdKSAuaWNvbiB7CiAgICAgICAgY29sb3I6ICMwMDg0ZmY7CiAgICAgIH0KCiAgICAgIDpob3N0KFt0eXBlPSJzdWNjZXNzIl0pIC5pY29uIHsKICAgICAgICBjb2xvcjogIzIyYzU1ZTsKICAgICAgfQoKICAgICAgOmhvc3QoW3R5cGU9Indhcm5pbmciXSkgLmljb24gewogICAgICAgIGNvbG9yOiAjZjU5ZTBiOwogICAgICB9CgogICAgICA6aG9zdChbdHlwZT0iZXJyb3IiXSkgLmljb24gewogICAgICAgIGNvbG9yOiAjZWY0NDQ0OwogICAgICB9CgogICAgICAvKiBQcm9ncmVzcyBiYXIgKi8KICAgICAgLnByb2dyZXNzIHsKICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgICAgYm90dG9tOiAwOwogICAgICAgIGxlZnQ6IDA7CiAgICAgICAgcmlnaHQ6IDA7CiAgICAgICAgaGVpZ2h0OiAzcHg7CiAgICAgICAgYmFja2dyb3VuZDogY3VycmVudENvbG9yOwogICAgICAgIG9wYWNpdHk6IDAuMjsKICAgICAgICBib3JkZXItcmFkaXVzOiAwIDAgOHB4IDhweDsKICAgICAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgICB9CgogICAgICAucHJvZ3Jlc3MtYmFyIHsKICAgICAgICBoZWlnaHQ6IDEwMCU7CiAgICAgICAgYmFja2dyb3VuZDogY3VycmVudENvbG9yOwogICAgICAgIG9wYWNpdHk6IDAuODsKICAgICAgICB0cmFuc2Zvcm0tb3JpZ2luOiBsZWZ0OwogICAgICAgIGFuaW1hdGlvbjogcHJvZ3Jlc3MgbGluZWFyIGZvcndhcmRzOwogICAgICB9CgogICAgICBAa2V5ZnJhbWVzIHByb2dyZXNzIHsKICAgICAgICBmcm9tIHsKICAgICAgICAgIHRyYW5zZm9ybTogc2NhbGVYKDEpOwogICAgICAgIH0KICAgICAgICB0byB7CiAgICAgICAgICB0cmFuc2Zvcm06IHNjYWxlWCgwKTsKICAgICAgICB9CiAgICAgIH0KICAgIGBdO3JlbmRlcigpe2xldCBNPXtpbmZvOndgPHN2ZyB2aWV3Qm94PSIwIDAgMjAgMjAiIGZpbGw9ImN1cnJlbnRDb2xvciI+CiAgICAgICAgPHBhdGggZmlsbC1ydWxlPSJldmVub2RkIiBkPSJNMTAgMThhOCA4IDAgMTAwLTE2IDggOCAwIDAwMCAxNnptMS0xMWExIDEgMCAxMC0yIDB2Mkg3YTEgMSAwIDEwMCAyaDJ2MmExIDEgMCAxMDIgMHYtMmgyYTEgMSAwIDEwMC0yaC0yVjd6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiLz4KICAgICAgPC9zdmc+YCxzdWNjZXNzOndgPHN2ZyB2aWV3Qm94PSIwIDAgMjAgMjAiIGZpbGw9ImN1cnJlbnRDb2xvciI+CiAgICAgICAgPHBhdGggZmlsbC1ydWxlPSJldmVub2RkIiBkPSJNMTAgMThhOCA4IDAgMTAwLTE2IDggOCAwIDAwMCAxNnptMy43MDctOS4yOTNhMSAxIDAgMDAtMS40MTQtMS40MTRMOSAxMC41ODYgNy43MDcgOS4yOTNhMSAxIDAgMDAtMS40MTQgMS40MTRsMiAyYTEgMSAwIDAwMS40MTQgMGw0LTR6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiLz4KICAgICAgPC9zdmc+YCx3YXJuaW5nOndgPHN2ZyB2aWV3Qm94PSIwIDAgMjAgMjAiIGZpbGw9ImN1cnJlbnRDb2xvciI+CiAgICAgICAgPHBhdGggZmlsbC1ydWxlPSJldmVub2RkIiBkPSJNOC4yNTcgMy4wOTljLjc2NS0xLjM2IDIuNzIyLTEuMzYgMy40ODYgMGw1LjU4IDkuOTJjLjc1IDEuMzM0LS4yMTMgMi45OC0xLjc0MiAyLjk4SDQuNDJjLTEuNTMgMC0yLjQ5My0xLjY0Ni0xLjc0My0yLjk4bDUuNTgtOS45MnpNMTEgMTNhMSAxIDAgMTEtMiAwIDEgMSAwIDAxMiAwem0tMS04YTEgMSAwIDAwLTEgMXYzYTEgMSAwIDAwMiAwVjZhMSAxIDAgMDAtMS0xeiIgY2xpcC1ydWxlPSJldmVub2RkIi8+CiAgICAgIDwvc3ZnPmAsZXJyb3I6d2A8c3ZnIHZpZXdCb3g9IjAgMCAyMCAyMCIgZmlsbD0iY3VycmVudENvbG9yIj4KICAgICAgICA8cGF0aCBmaWxsLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik0xMCAxOGE4IDggMCAxMDAtMTYgOCA4IDAgMDAwIDE2ek04LjcwNyA3LjI5M2ExIDEgMCAwMC0xLjQxNCAxLjQxNEw4LjU4NiAxMGwtMS4yOTMgMS4yOTNhMSAxIDAgMTAxLjQxNCAxLjQxNEwxMCAxMS40MTRsMS4yOTMgMS4yOTNhMSAxIDAgMDAxLjQxNC0xLjQxNEwxMS40MTQgMTBsMS4yOTMtMS4yOTNhMSAxIDAgMDAtMS40MTQtMS40MTRMMTAgOC41ODYgOC43MDcgNy4yOTN6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiLz4KICAgICAgPC9zdmc+YH07cmV0dXJuIHdgCiAgICAgIDxkaXYgY2xhc3M9InRvYXN0IiBAY2xpY2s9JHt0aGlzLmRpc21pc3N9PgogICAgICAgIDxkaXYgY2xhc3M9Imljb24iPgogICAgICAgICAgJHtNW3RoaXMudHlwZV19CiAgICAgICAgPC9kaXY+CiAgICAgICAgPGRpdiBjbGFzcz0ibWVzc2FnZSI+JHt0aGlzLm1lc3NhZ2V9PC9kaXY+CiAgICAgICAgPGRpdiBjbGFzcz0iY2xvc2UiPgogICAgICAgICAgPHN2ZyB2aWV3Qm94PSIwIDAgMTYgMTYiIGZpbGw9ImN1cnJlbnRDb2xvciI+CiAgICAgICAgICAgIDxwYXRoIGQ9Ik00LjY0NiA0LjY0NmEuNS41IDAgMCAxIC43MDggMEw4IDcuMjkzbDIuNjQ2LTIuNjQ3YS41LjUgMCAwIDEgLjcwOC43MDhMOC43MDcgOGwyLjY0NyAyLjY0NmEuNS41IDAgMCAxLS43MDguNzA4TDggOC43MDdsLTIuNjQ2IDIuNjQ3YS41LjUgMCAwIDEtLjcwOC0uNzA4TDcuMjkzIDggNC42NDYgNS4zNTRhLjUuNSAwIDAgMSAwLS43MDh6Ii8+CiAgICAgICAgICA8L3N2Zz4KICAgICAgICA8L2Rpdj4KICAgICAgICAke3RoaXMuZHVyYXRpb24+MD93YAogICAgICAgICAgPGRpdiBjbGFzcz0icHJvZ3Jlc3MiPgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJwcm9ncmVzcy1iYXIiIHN0eWxlPSJhbmltYXRpb24tZHVyYXRpb246ICR7dGhpcy5kdXJhdGlvbn1tcyI+PC9kaXY+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICBgOiIifQogICAgICA8L2Rpdj4KICAgIGB9YXN5bmMgZGlzbWlzcygpe3RoaXMuaXNWaXNpYmxlPSExLGF3YWl0IG5ldyBQcm9taXNlKFM9PnNldFRpbWVvdXQoUywzMDApKSx0aGlzLnJlbW92ZSgpO2xldCBNPXRoaXMucGFyZW50RWxlbWVudDtpZihNJiZNLmNoaWxkcmVuLmxlbmd0aD09PTApe00ucmVtb3ZlKCk7Zm9yKGxldFtTLEZdb2YgeC50b2FzdENvbnRhaW5lcnMuZW50cmllcygpKWlmKEY9PT1NKXt4LnRvYXN0Q29udGFpbmVycy5kZWxldGUoUyk7YnJlYWt9fX1maXJzdFVwZGF0ZWQoKXt0aGlzLnNldEF0dHJpYnV0ZSgidHlwZSIsdGhpcy50eXBlKX1zdGF0aWN7UnMoaSxhKX19O3JldHVybiB4PWl9KSgpfSk7dmFyIExtdD1iKCgpPT57dlYoKX0pO3ZhciAkbXQ9YigoKT0+e29tdCgpO3BtdCgpO3ZtdCgpO3ptdCgpO0NtdCgpO0xtdCgpfSk7dmFyIEFtdD1iKCgpPT57QWwoKX0pO3ZhciBEbXQ9YigoKT0+e0swKCl9KTt2YXIgRW10PWIoKCk9PntBbXQoKTtEbXQoKX0pO3ZhciBQbXQ9YigoKT0+e18xKCl9KTt2YXIgSW10PWIoKCk9PntfeCgpfSk7dmFyIE5tdD1iKCgpPT57UHEoKX0pO3ZhciBGbXQ9YigoKT0+e094KCl9KTt2YXIgT210PWIoKCk9PntXcSgpfSk7dmFyIFJtdCxCbXQ9YigoKT0+e3VlKCk7eDEoKTttMigpO0FsKCk7bG8oKTtLMCgpO1JtdD0oKT0+d2AKICA8ZGVlcy1kZW1vd3JhcHBlcj4KICAgIDxzdHlsZT4KICAgICAgJHtRYAogICAgICAgIC5kZW1vLWNvbnRhaW5lciB7CiAgICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgICAgIGdhcDogMjRweDsKICAgICAgICAgIHBhZGRpbmc6IDI0cHg7CiAgICAgICAgICBtYXgtd2lkdGg6IDEyMDBweDsKICAgICAgICAgIG1hcmdpbjogMCBhdXRvOwogICAgICAgIH0KICAgICAgICAKICAgICAgICBkZWVzLXBhbmVsIHsKICAgICAgICAgIG1hcmdpbi1ib3R0b206IDI0cHg7CiAgICAgICAgfQogICAgICAgIAogICAgICAgIGRlZXMtcGFuZWw6bGFzdC1jaGlsZCB7CiAgICAgICAgICBtYXJnaW4tYm90dG9tOiAwOwogICAgICAgIH0KICAgICAgICAKICAgICAgICAuZ3JpZC1sYXlvdXQgewogICAgICAgICAgZGlzcGxheTogZ3JpZDsKICAgICAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogMWZyIDFmcjsKICAgICAgICAgIGdhcDogMTZweDsKICAgICAgICB9CiAgICAgICAgCiAgICAgICAgQG1lZGlhIChtYXgtd2lkdGg6IDc2OHB4KSB7CiAgICAgICAgICAuZ3JpZC1sYXlvdXQgewogICAgICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDFmcjsKICAgICAgICAgIH0KICAgICAgICB9CiAgICAgICAgCiAgICAgICAgLm91dHB1dC1wcmV2aWV3IHsKICAgICAgICAgIG1hcmdpbi10b3A6IDE2cHg7CiAgICAgICAgICBwYWRkaW5nOiAxNnB4OwogICAgICAgICAgYmFja2dyb3VuZDogI2YzZjRmNjsKICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDRweDsKICAgICAgICAgIGZvbnQtc2l6ZTogMTJweDsKICAgICAgICAgIGNvbG9yOiAjMzc0MTUxOwogICAgICAgICAgd29yZC1icmVhazogYnJlYWstYWxsOwogICAgICAgICAgbWF4LWhlaWdodDogMjAwcHg7CiAgICAgICAgICBvdmVyZmxvdy15OiBhdXRvOwogICAgICAgIH0KICAgICAgICAKICAgICAgICBAbWVkaWEgKHByZWZlcnMtY29sb3Itc2NoZW1lOiBkYXJrKSB7CiAgICAgICAgICAub3V0cHV0LXByZXZpZXcgewogICAgICAgICAgICBiYWNrZ3JvdW5kOiAjMmMyYzJjOwogICAgICAgICAgICBjb2xvcjogI2U0ZTRlNzsKICAgICAgICAgIH0KICAgICAgICB9CiAgICAgICAgCiAgICAgICAgLmZlYXR1cmUtbm90ZSB7CiAgICAgICAgICBtYXJnaW4tdG9wOiAxMnB4OwogICAgICAgICAgcGFkZGluZzogMTJweDsKICAgICAgICAgIGJhY2tncm91bmQ6ICNlZmY2ZmY7CiAgICAgICAgICBib3JkZXItbGVmdDogM3B4IHNvbGlkICMzYjgyZjY7CiAgICAgICAgICBib3JkZXItcmFkaXVzOiA0cHg7CiAgICAgICAgICBmb250LXNpemU6IDEzcHg7CiAgICAgICAgICBjb2xvcjogIzFlNDBhZjsKICAgICAgICB9CiAgICAgICAgCiAgICAgICAgQG1lZGlhIChwcmVmZXJzLWNvbG9yLXNjaGVtZTogZGFyaykgewogICAgICAgICAgLmZlYXR1cmUtbm90ZSB7CiAgICAgICAgICAgIGJhY2tncm91bmQ6ICMxZTNhNWY7CiAgICAgICAgICAgIGNvbG9yOiAjOTNjNWZkOwogICAgICAgICAgfQogICAgICAgIH0KICAgICAgYH0KICAgIDwvc3R5bGU+CiAgICAKICAgIDxkaXYgY2xhc3M9ImRlbW8tY29udGFpbmVyIj4KICAgICAgPGRlZXMtcGFuZWwgLnRpdGxlPSR7IjEuIEJhc2ljIExpc3QgSW5wdXQifSAuc3VidGl0bGU9JHsiU2ltcGxlIGxpc3QgbWFuYWdlbWVudCB3aXRoIGFkZCwgZWRpdCwgYW5kIGRlbGV0ZSJ9PgogICAgICAgIDxkZWVzLWlucHV0LWxpc3QKICAgICAgICAgIC5sYWJlbD0keyJTaG9wcGluZyBMaXN0In0KICAgICAgICAgIC5wbGFjZWhvbGRlcj0keyJBZGQgaXRlbSB0byB5b3VyIGxpc3QuLi4ifQogICAgICAgICAgLnZhbHVlPSR7WyJNaWxrIiwiQnJlYWQiLCJFZ2dzIiwiQ2hlZXNlIl19CiAgICAgICAgICAuZGVzY3JpcHRpb249JHsiRG91YmxlLWNsaWNrIHRvIGVkaXQgaXRlbXMsIG9yIHVzZSB0aGUgZWRpdCBidXR0b24ifQogICAgICAgID48L2RlZXMtaW5wdXQtbGlzdD4KICAgICAgICA8ZGl2IGNsYXNzPSJmZWF0dXJlLW5vdGUiPgogICAgICAgICAg8J+SoSBEb3VibGUtY2xpY2sgYW55IGl0ZW0gdG8gcXVpY2tseSBlZGl0IGl0IGlubGluZQogICAgICAgIDwvZGl2PgogICAgICA8L2RlZXMtcGFuZWw+CgogICAgICA8ZGVlcy1wYW5lbCAudGl0bGU9JHsiMi4gU29ydGFibGUgTGlzdCJ9IC5zdWJ0aXRsZT0keyJEcmFnIGFuZCBkcm9wIHRvIHJlb3JkZXIgaXRlbXMifT4KICAgICAgICA8ZGVlcy1pbnB1dC1saXN0CiAgICAgICAgICAubGFiZWw9JHsiVGFzayBQcmlvcml0eSJ9CiAgICAgICAgICAucGxhY2Vob2xkZXI9JHsiQWRkIGEgdGFzay4uLiJ9CiAgICAgICAgICAuc29ydGFibGU9JHshMH0KICAgICAgICAgIC52YWx1ZT0ke1siUmV2aWV3IHB1bGwgcmVxdWVzdHMiLCJGaXggY3JpdGljYWwgYnVnIiwiVXBkYXRlIGRvY3VtZW50YXRpb24iLCJEZXBsb3kgdG8gcHJvZHVjdGlvbiIsIlRlYW0gc3RhbmR1cCBtZWV0aW5nIl19CiAgICAgICAgICAuZGVzY3JpcHRpb249JHsiRHJhZyBpdGVtcyB1c2luZyB0aGUgaGFuZGxlIHRvIHJlb3JkZXIgdGhlbSJ9CiAgICAgICAgPjwvZGVlcy1pbnB1dC1saXN0PgogICAgICAgIDxkaXYgY2xhc3M9ImZlYXR1cmUtbm90ZSI+CiAgICAgICAgICDwn5SEIERyYWcgdGhlIGdyaXAgaGFuZGxlIHRvIHJlb3JkZXIgdGFza3MgYnkgcHJpb3JpdHkKICAgICAgICA8L2Rpdj4KICAgICAgPC9kZWVzLXBhbmVsPgoKICAgICAgPGRlZXMtcGFuZWwgLnRpdGxlPSR7IjMuIFZhbGlkYXRpb24gJiBDb25zdHJhaW50cyJ9IC5zdWJ0aXRsZT0keyJMaXN0cyB3aXRoIG1pbmltdW0vbWF4aW11bSBpdGVtcyBhbmQgZHVwbGljYXRlIHByZXZlbnRpb24ifT4KICAgICAgICA8ZGl2IGNsYXNzPSJncmlkLWxheW91dCI+CiAgICAgICAgICA8ZGVlcy1pbnB1dC1saXN0CiAgICAgICAgICAgIC5sYWJlbD0keyJUZWFtIE1lbWJlcnMgKE1pbiAyLCBNYXggNSkifQogICAgICAgICAgICAucGxhY2Vob2xkZXI9JHsiQWRkIHRlYW0gbWVtYmVyLi4uIn0KICAgICAgICAgICAgLm1pbkl0ZW1zPSR7Mn0KICAgICAgICAgICAgLm1heEl0ZW1zPSR7NX0KICAgICAgICAgICAgLnZhbHVlPSR7WyJBbGljZSIsIkJvYiJdfQogICAgICAgICAgICAucmVxdWlyZWQ9JHshMH0KICAgICAgICAgICAgLmRlc2NyaXB0aW9uPSR7IkFkZCAyLTUgdGVhbSBtZW1iZXJzIn0KICAgICAgICAgID48L2RlZXMtaW5wdXQtbGlzdD4KICAgICAgICAgIAogICAgICAgICAgPGRlZXMtaW5wdXQtbGlzdAogICAgICAgICAgICAubGFiZWw9JHsiVW5pcXVlIFRhZ3MgKE5vIER1cGxpY2F0ZXMpIn0KICAgICAgICAgICAgLnBsYWNlaG9sZGVyPSR7IkFkZCB1bmlxdWUgdGFnLi4uIn0KICAgICAgICAgICAgLmFsbG93RHVwbGljYXRlcz0keyExfQogICAgICAgICAgICAudmFsdWU9JHtbImZyb250ZW5kIiwiYmFja2VuZCIsImRhdGFiYXNlIl19CiAgICAgICAgICAgIC5kZXNjcmlwdGlvbj0keyJEdXBsaWNhdGUgaXRlbXMgYXJlIG5vdCBhbGxvd2VkIn0KICAgICAgICAgID48L2RlZXMtaW5wdXQtbGlzdD4KICAgICAgICA8L2Rpdj4KICAgICAgPC9kZWVzLXBhbmVsPgoKICAgICAgPGRlZXMtcGFuZWwgLnRpdGxlPSR7IjQuIERlbGV0ZSBDb25maXJtYXRpb24ifSAuc3VidGl0bGU9JHsiUmVxdWlyZSBjb25maXJtYXRpb24gYmVmb3JlIGRlbGV0aW5nIGl0ZW1zIn0+CiAgICAgICAgPGRlZXMtaW5wdXQtbGlzdAogICAgICAgICAgLmxhYmVsPSR7IkltcG9ydGFudCBEb2N1bWVudHMifQogICAgICAgICAgLnBsYWNlaG9sZGVyPSR7IkFkZCBkb2N1bWVudCBuYW1lLi4uIn0KICAgICAgICAgIC5jb25maXJtRGVsZXRlPSR7ITB9CiAgICAgICAgICAudmFsdWU9JHtbIkNvbnRyYWN0XzIwMjQucGRmIiwiRmluYW5jaWFsX1JlcG9ydF9RMy54bHN4IiwiUHJvamVjdF9Qcm9wb3NhbC5kb2N4IiwiTWVldGluZ19Ob3Rlcy50eHQiXX0KICAgICAgICAgIC5kZXNjcmlwdGlvbj0keyJEZWxldGlvbiByZXF1aXJlcyBjb25maXJtYXRpb24gZm9yIHNhZmV0eSJ9CiAgICAgICAgPjwvZGVlcy1pbnB1dC1saXN0PgogICAgICA8L2RlZXMtcGFuZWw+CgogICAgICA8ZGVlcy1wYW5lbCAudGl0bGU9JHsiNS4gRGlzYWJsZWQgU3RhdGUifSAuc3VidGl0bGU9JHsiUmVhZC1vbmx5IGxpc3QgZGlzcGxheSJ9PgogICAgICAgIDxkZWVzLWlucHV0LWxpc3QKICAgICAgICAgIC5sYWJlbD0keyJTeXN0ZW0gRGVmYXVsdHMifQogICAgICAgICAgLnZhbHVlPSR7WyJEZWZhdWx0IFNldHRpbmcgMSIsIkRlZmF1bHQgU2V0dGluZyAyIiwiRGVmYXVsdCBTZXR0aW5nIDMiXX0KICAgICAgICAgIC5kaXNhYmxlZD0keyEwfQogICAgICAgICAgLmRlc2NyaXB0aW9uPSR7IlRoZXNlIGl0ZW1zIGNhbm5vdCBiZSBtb2RpZmllZCJ9CiAgICAgICAgPjwvZGVlcy1pbnB1dC1saXN0PgogICAgICA8L2RlZXMtcGFuZWw+CgogICAgICA8ZGVlcy1wYW5lbCAudGl0bGU9JHsiNi4gRm9ybSBJbnRlZ3JhdGlvbiJ9IC5zdWJ0aXRsZT0keyJMaXN0IGlucHV0IHdvcmtpbmcgd2l0aGluIGEgZm9ybSBjb250ZXh0In0+CiAgICAgICAgPGRlZXMtZm9ybT4KICAgICAgICAgIDxkZWVzLWlucHV0LXRleHQKICAgICAgICAgICAgLmxhYmVsPSR7IlJlY2lwZSBOYW1lIn0KICAgICAgICAgICAgLnBsYWNlaG9sZGVyPSR7Ik15IEFtYXppbmcgUmVjaXBlIn0KICAgICAgICAgICAgLnJlcXVpcmVkPSR7ITB9CiAgICAgICAgICAgIC5rZXk9JHsibmFtZSJ9CiAgICAgICAgICA+PC9kZWVzLWlucHV0LXRleHQ+CiAgICAgICAgICAKICAgICAgICAgIDxkaXYgY2xhc3M9ImdyaWQtbGF5b3V0Ij4KICAgICAgICAgICAgPGRlZXMtaW5wdXQtbGlzdAogICAgICAgICAgICAgIC5sYWJlbD0keyJJbmdyZWRpZW50cyJ9CiAgICAgICAgICAgICAgLnBsYWNlaG9sZGVyPSR7IkFkZCBpbmdyZWRpZW50Li4uIn0KICAgICAgICAgICAgICAucmVxdWlyZWQ9JHshMH0KICAgICAgICAgICAgICAubWluSXRlbXM9JHszfQogICAgICAgICAgICAgIC5rZXk9JHsiaW5ncmVkaWVudHMifQogICAgICAgICAgICAgIC5zb3J0YWJsZT0keyEwfQogICAgICAgICAgICAgIC52YWx1ZT0ke1siMiBjdXBzIGZsb3VyIiwiMSBjdXAgc3VnYXIiLCIzIGVnZ3MiXX0KICAgICAgICAgICAgICAuZGVzY3JpcHRpb249JHsiQWRkIGF0IGxlYXN0IDMgaW5ncmVkaWVudHMifQogICAgICAgICAgICA+PC9kZWVzLWlucHV0LWxpc3Q+CiAgICAgICAgICAgIAogICAgICAgICAgICA8ZGVlcy1pbnB1dC1saXN0CiAgICAgICAgICAgICAgLmxhYmVsPSR7Ikluc3RydWN0aW9ucyJ9CiAgICAgICAgICAgICAgLnBsYWNlaG9sZGVyPSR7IkFkZCBpbnN0cnVjdGlvbiBzdGVwLi4uIn0KICAgICAgICAgICAgICAucmVxdWlyZWQ9JHshMH0KICAgICAgICAgICAgICAubWluSXRlbXM9JHsyfQogICAgICAgICAgICAgIC5rZXk9JHsiaW5zdHJ1Y3Rpb25zIn0KICAgICAgICAgICAgICAuc29ydGFibGU9JHshMH0KICAgICAgICAgICAgICAudmFsdWU9JHtbIlByZWhlYXQgb3ZlbiB0byAzNTBceEIwRiIsIk1peCBkcnkgaW5ncmVkaWVudHMiXX0KICAgICAgICAgICAgICAuZGVzY3JpcHRpb249JHsiQWRkIGNvb2tpbmcgaW5zdHJ1Y3Rpb25zIGluIG9yZGVyIn0KICAgICAgICAgICAgPjwvZGVlcy1pbnB1dC1saXN0PgogICAgICAgICAgPC9kaXY+CiAgICAgICAgICAKICAgICAgICAgIDxkZWVzLWlucHV0LXRleHQKICAgICAgICAgICAgLmxhYmVsPSR7Ik5vdGVzIn0KICAgICAgICAgICAgLmlucHV0VHlwZT0keyJ0ZXh0YXJlYSJ9CiAgICAgICAgICAgIC5wbGFjZWhvbGRlcj0keyJBbnkgc3BlY2lhbCBub3RlcyBvciB0aXBzLi4uIn0KICAgICAgICAgICAgLmtleT0keyJub3RlcyJ9CiAgICAgICAgICA+PC9kZWVzLWlucHV0LXRleHQ+CiAgICAgICAgICAKICAgICAgICAgIDxkZWVzLWZvcm0tc3VibWl0IC50ZXh0PSR7IlNhdmUgUmVjaXBlIn0+PC9kZWVzLWZvcm0tc3VibWl0PgogICAgICAgIDwvZGVlcy1mb3JtPgogICAgICA8L2RlZXMtcGFuZWw+CgogICAgICA8ZGVlcy1wYW5lbCAudGl0bGU9JHsiNy4gSW50ZXJhY3RpdmUgRGVtbyJ9IC5zdWJ0aXRsZT0keyJCdWlsZCB5b3VyIG93biBmZWF0dXJlIGxpc3QgYW5kIHNlZSB0aGUgZGF0YSJ9PgogICAgICAgIDxkZWVzLWlucHV0LWxpc3QKICAgICAgICAgIGlkPSJpbnRlcmFjdGl2ZS1saXN0IgogICAgICAgICAgLmxhYmVsPSR7IlByb2R1Y3QgRmVhdHVyZXMifQogICAgICAgICAgLnBsYWNlaG9sZGVyPSR7IkFkZCBhIGZlYXR1cmUuLi4ifQogICAgICAgICAgLnNvcnRhYmxlPSR7ITB9CiAgICAgICAgICAuY29uZmlybURlbGV0ZT0keyExfQogICAgICAgICAgLmFsbG93RHVwbGljYXRlcz0keyExfQogICAgICAgICAgLm1heEl0ZW1zPSR7MTB9CiAgICAgICAgICBAY2hhbmdlPSR7dD0+e2xldCBlPWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoIiNsaXN0LWpzb24iKTtpZihlKXtsZXQgYT17aXRlbXM6dC5kZXRhaWwudmFsdWUsY291bnQ6dC5kZXRhaWwudmFsdWUubGVuZ3RoLHRpbWVzdGFtcDpuZXcgRGF0ZSgpLnRvSVNPU3RyaW5nKCl9O2UudGV4dENvbnRlbnQ9SlNPTi5zdHJpbmdpZnkoYSxudWxsLDIpfX19CiAgICAgICAgPjwvZGVlcy1pbnB1dC1saXN0PgogICAgICAgIAogICAgICAgIDxkaXYgY2xhc3M9Im91dHB1dC1wcmV2aWV3IiBpZD0ibGlzdC1qc29uIj4KICAgICAgICAgIHsKICAgICAgICAgICAgIml0ZW1zIjogW10sCiAgICAgICAgICAgICJjb3VudCI6IDAsCiAgICAgICAgICAgICJ0aW1lc3RhbXAiOiAiJHtuZXcgRGF0ZSgpLnRvSVNPU3RyaW5nKCl9IgogICAgICAgICAgfQogICAgICAgIDwvZGl2PgogICAgICAgIAogICAgICAgIDxkaXYgY2xhc3M9ImZlYXR1cmUtbm90ZSI+CiAgICAgICAgICDinKggQWRkLCBlZGl0LCByZW1vdmUsIGFuZCByZW9yZGVyIGl0ZW1zIHRvIHNlZSB0aGUgSlNPTiBvdXRwdXQgdXBkYXRlIGluIHJlYWwtdGltZQogICAgICAgIDwvZGl2PgogICAgICA8L2RlZXMtcGFuZWw+CgogICAgICA8ZGVlcy1wYW5lbCAudGl0bGU9JHsiOC4gQWR2YW5jZWQgQ29uZmlndXJhdGlvbiJ9IC5zdWJ0aXRsZT0keyJDb21iaW5lIGFsbCBmZWF0dXJlcyBmb3IgY29tcGxleCB1c2UgY2FzZXMifT4KICAgICAgICA8ZGVlcy1pbnB1dC1saXN0CiAgICAgICAgICAubGFiZWw9JHsiUHJvamVjdCBNaWxlc3RvbmVzIn0KICAgICAgICAgIC5wbGFjZWhvbGRlcj0keyJBZGQgbWlsZXN0b25lLi4uIn0KICAgICAgICAgIC52YWx1ZT0ke1siUHJvamVjdCBLaWNrb2ZmIC0gV2VlayAxIiwiUmVxdWlyZW1lbnRzIEdhdGhlcmluZyAtIFdlZWsgMi0zIiwiRGVzaWduIFBoYXNlIC0gV2VlayA0LTYiLCJEZXZlbG9wbWVudCBTcHJpbnQgMSAtIFdlZWsgNy05IiwiVGVzdGluZyAmIFFBIC0gV2VlayAxMC0xMSIsIkRlcGxveW1lbnQgLSBXZWVrIDEyIl19CiAgICAgICAgICAuc29ydGFibGU9JHshMH0KICAgICAgICAgIC5jb25maXJtRGVsZXRlPSR7ITB9CiAgICAgICAgICAuYWxsb3dEdXBsaWNhdGVzPSR7ITF9CiAgICAgICAgICAubWluSXRlbXM9JHszfQogICAgICAgICAgLm1heEl0ZW1zPSR7MTJ9CiAgICAgICAgICAucmVxdWlyZWQ9JHshMH0KICAgICAgICAgIC5kZXNjcmlwdGlvbj0keyJNYW5hZ2UgcHJvamVjdCBtaWxlc3RvbmVzICgzLTEyIGl0ZW1zLCBzb3J0YWJsZSwgbm8gZHVwbGljYXRlcykifQogICAgICAgID48L2RlZXMtaW5wdXQtbGlzdD4KICAgICAgPC9kZWVzLXBhbmVsPgoKICAgICAgPGRlZXMtcGFuZWwgLnRpdGxlPSR7IjkuIEVtcHR5IFN0YXRlIn0gLnN1YnRpdGxlPSR7IkhvdyB0aGUgY29tcG9uZW50IGxvb2tzIHdpdGggbm8gaXRlbXMifT4KICAgICAgICA8ZGVlcy1pbnB1dC1saXN0CiAgICAgICAgICAubGFiZWw9JHsiWW91ciBJZGVhcyJ9CiAgICAgICAgICAucGxhY2Vob2xkZXI9JHsiU2hhcmUgeW91ciBpZGVhcy4uLiJ9CiAgICAgICAgICAudmFsdWU9JHtbXX0KICAgICAgICAgIC5kZXNjcmlwdGlvbj0keyJTdGFydCBhZGRpbmcgaXRlbXMgdG8gYnVpbGQgeW91ciBsaXN0In0KICAgICAgICA+PC9kZWVzLWlucHV0LWxpc3Q+CiAgICAgIDwvZGVlcy1wYW5lbD4KICAgIDwvZGl2PgogIDwvZGVlcy1kZW1vd3JhcHBlcj4KYH0pO3ZhciBnMixJdCxIbXQscW10PWIoKCk9Pnt1ZSgpO18xKCk7RHQoKTtubygpO0JtdCgpO3FlKCk7ZzI9ZnVuY3Rpb24odCxlLGEsaSxyLHMpe2Z1bmN0aW9uIG4oeCl7aWYoeCE9PXZvaWQgMCYmdHlwZW9mIHghPSJmdW5jdGlvbiIpdGhyb3cgbmV3IFR5cGVFcnJvcigiRnVuY3Rpb24gZXhwZWN0ZWQiKTtyZXR1cm4geH1mb3IodmFyIG89aS5raW5kLGQ9bz09PSJnZXR0ZXIiPyJnZXQiOm89PT0ic2V0dGVyIj8ic2V0IjoidmFsdWUiLGM9IWUmJnQ/aS5zdGF0aWM/dDp0LnByb3RvdHlwZTpudWxsLGg9ZXx8KGM/T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihjLGkubmFtZSk6e30pLGwsZj0hMSxnPWEubGVuZ3RoLTE7Zz49MDtnLS0pe3ZhciB5PXt9O2Zvcih2YXIgdiBpbiBpKXlbdl09dj09PSJhY2Nlc3MiP3t9Omlbdl07Zm9yKHZhciB2IGluIGkuYWNjZXNzKXkuYWNjZXNzW3ZdPWkuYWNjZXNzW3ZdO3kuYWRkSW5pdGlhbGl6ZXI9ZnVuY3Rpb24oeCl7aWYoZil0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgYWRkIGluaXRpYWxpemVycyBhZnRlciBkZWNvcmF0aW9uIGhhcyBjb21wbGV0ZWQiKTtzLnB1c2gobih4fHxudWxsKSl9O3ZhciBtPSgwLGFbZ10pKG89PT0iYWNjZXNzb3IiP3tnZXQ6aC5nZXQsc2V0Omguc2V0fTpoW2RdLHkpO2lmKG89PT0iYWNjZXNzb3IiKXtpZihtPT09dm9pZCAwKWNvbnRpbnVlO2lmKG09PT1udWxsfHx0eXBlb2YgbSE9Im9iamVjdCIpdGhyb3cgbmV3IFR5cGVFcnJvcigiT2JqZWN0IGV4cGVjdGVkIik7KGw9bihtLmdldCkpJiYoaC5nZXQ9bCksKGw9bihtLnNldCkpJiYoaC5zZXQ9bCksKGw9bihtLmluaXQpKSYmci51bnNoaWZ0KGwpfWVsc2UobD1uKG0pKSYmKG89PT0iZmllbGQiP3IudW5zaGlmdChsKTpoW2RdPWwpfWMmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShjLGkubmFtZSxoKSxmPSEwfSxJdD1mdW5jdGlvbih0LGUsYSl7Zm9yKHZhciBpPWFyZ3VtZW50cy5sZW5ndGg+MixyPTA7cjxlLmxlbmd0aDtyKyspYT1pP2Vbcl0uY2FsbCh0LGEpOmVbcl0uY2FsbCh0KTtyZXR1cm4gaT9hOnZvaWQgMH0sSG10PSgoKT0+e2xldCB0PVtwZSgiZGVlcy1pbnB1dC1saXN0IildLGUsYT1bXSxpLHI9WGUscyxuPVtdLG89W10sZCxjPVtdLGg9W10sbCxmPVtdLGc9W10seSx2PVtdLG09W10seCxNPVtdLFM9W10sRixfPVtdLGs9W10sTixMPVtdLEE9W10scSxDPVtdLHo9W10sRSxUPVtdLCQ9W10sVixSPVtdLFU9W10scmUsaj1bXSxtZT1bXSx3ZSxIPVtdLGNlPVtdLGtlLFc9W10sRD1bXSxPLFo9W10sWT1bXSxvZSxnZT1bXSxiZT1bXSwkZSxCPVtdLFA9W10sSyxmZT1bXSxkZT1bXTt2YXIgX2U9Y2xhc3MgZXh0ZW5kcyBye3N0YXRpY3tpPXRoaXN9c3RhdGlje2xldCBoZT10eXBlb2YgU3ltYm9sPT0iZnVuY3Rpb24iJiZTeW1ib2wubWV0YWRhdGE/T2JqZWN0LmNyZWF0ZShyW1N5bWJvbC5tZXRhZGF0YV0/P251bGwpOnZvaWQgMDtzPVtJKHt0eXBlOkFycmF5fSldLGQ9W0koe3R5cGU6U3RyaW5nfSldLGw9W0koe3R5cGU6TnVtYmVyfSldLHk9W0koe3R5cGU6TnVtYmVyfSldLHg9W0koe3R5cGU6Qm9vbGVhbn0pXSxGPVtJKHt0eXBlOkJvb2xlYW59KV0sTj1bSSh7dHlwZTpCb29sZWFufSldLHE9W0koe3R5cGU6U3RyaW5nfSldLEU9W0ooKV0sVj1bSigpXSxyZT1bSigpXSx3ZT1bSigpXSxrZT1bSigpXSxPPVtKKCldLG9lPVtKKCldLCRlPVtKKCldLEs9W0ooKV0sZzIodGhpcyxudWxsLHMse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJ2YWx1ZSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6dGU9PiJ2YWx1ZSJpbiB0ZSxnZXQ6dGU9PnRlLnZhbHVlLHNldDoodGUsemUpPT57dGUudmFsdWU9emV9fSxtZXRhZGF0YTpoZX0sbixvKSxnMih0aGlzLG51bGwsZCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InBsYWNlaG9sZGVyIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczp0ZT0+InBsYWNlaG9sZGVyImluIHRlLGdldDp0ZT0+dGUucGxhY2Vob2xkZXIsc2V0Oih0ZSx6ZSk9Pnt0ZS5wbGFjZWhvbGRlcj16ZX19LG1ldGFkYXRhOmhlfSxjLGgpLGcyKHRoaXMsbnVsbCxsLHtraW5kOiJhY2Nlc3NvciIsbmFtZToibWF4SXRlbXMiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOnRlPT4ibWF4SXRlbXMiaW4gdGUsZ2V0OnRlPT50ZS5tYXhJdGVtcyxzZXQ6KHRlLHplKT0+e3RlLm1heEl0ZW1zPXplfX0sbWV0YWRhdGE6aGV9LGYsZyksZzIodGhpcyxudWxsLHkse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJtaW5JdGVtcyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6dGU9PiJtaW5JdGVtcyJpbiB0ZSxnZXQ6dGU9PnRlLm1pbkl0ZW1zLHNldDoodGUsemUpPT57dGUubWluSXRlbXM9emV9fSxtZXRhZGF0YTpoZX0sdixtKSxnMih0aGlzLG51bGwseCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImFsbG93RHVwbGljYXRlcyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6dGU9PiJhbGxvd0R1cGxpY2F0ZXMiaW4gdGUsZ2V0OnRlPT50ZS5hbGxvd0R1cGxpY2F0ZXMsc2V0Oih0ZSx6ZSk9Pnt0ZS5hbGxvd0R1cGxpY2F0ZXM9emV9fSxtZXRhZGF0YTpoZX0sTSxTKSxnMih0aGlzLG51bGwsRix7a2luZDoiYWNjZXNzb3IiLG5hbWU6InNvcnRhYmxlIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczp0ZT0+InNvcnRhYmxlImluIHRlLGdldDp0ZT0+dGUuc29ydGFibGUsc2V0Oih0ZSx6ZSk9Pnt0ZS5zb3J0YWJsZT16ZX19LG1ldGFkYXRhOmhlfSxfLGspLGcyKHRoaXMsbnVsbCxOLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiY29uZmlybURlbGV0ZSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6dGU9PiJjb25maXJtRGVsZXRlImluIHRlLGdldDp0ZT0+dGUuY29uZmlybURlbGV0ZSxzZXQ6KHRlLHplKT0+e3RlLmNvbmZpcm1EZWxldGU9emV9fSxtZXRhZGF0YTpoZX0sTCxBKSxnMih0aGlzLG51bGwscSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InZhbGlkYXRpb25UZXh0IixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczp0ZT0+InZhbGlkYXRpb25UZXh0ImluIHRlLGdldDp0ZT0+dGUudmFsaWRhdGlvblRleHQsc2V0Oih0ZSx6ZSk9Pnt0ZS52YWxpZGF0aW9uVGV4dD16ZX19LG1ldGFkYXRhOmhlfSxDLHopLGcyKHRoaXMsbnVsbCxFLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiaW5wdXRWYWx1ZSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6dGU9PiJpbnB1dFZhbHVlImluIHRlLGdldDp0ZT0+dGUuaW5wdXRWYWx1ZSxzZXQ6KHRlLHplKT0+e3RlLmlucHV0VmFsdWU9emV9fSxtZXRhZGF0YTpoZX0sVCwkKSxnMih0aGlzLG51bGwsVix7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImVkaXRpbmdJbmRleCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6dGU9PiJlZGl0aW5nSW5kZXgiaW4gdGUsZ2V0OnRlPT50ZS5lZGl0aW5nSW5kZXgsc2V0Oih0ZSx6ZSk9Pnt0ZS5lZGl0aW5nSW5kZXg9emV9fSxtZXRhZGF0YTpoZX0sUixVKSxnMih0aGlzLG51bGwscmUse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJlZGl0aW5nVmFsdWUiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOnRlPT4iZWRpdGluZ1ZhbHVlImluIHRlLGdldDp0ZT0+dGUuZWRpdGluZ1ZhbHVlLHNldDoodGUsemUpPT57dGUuZWRpdGluZ1ZhbHVlPXplfX0sbWV0YWRhdGE6aGV9LGosbWUpLGcyKHRoaXMsbnVsbCx3ZSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImRyYWdnZWRJbmRleCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6dGU9PiJkcmFnZ2VkSW5kZXgiaW4gdGUsZ2V0OnRlPT50ZS5kcmFnZ2VkSW5kZXgsc2V0Oih0ZSx6ZSk9Pnt0ZS5kcmFnZ2VkSW5kZXg9emV9fSxtZXRhZGF0YTpoZX0sSCxjZSksZzIodGhpcyxudWxsLGtlLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiZHJhZ092ZXJJbmRleCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6dGU9PiJkcmFnT3ZlckluZGV4ImluIHRlLGdldDp0ZT0+dGUuZHJhZ092ZXJJbmRleCxzZXQ6KHRlLHplKT0+e3RlLmRyYWdPdmVySW5kZXg9emV9fSxtZXRhZGF0YTpoZX0sVyxEKSxnMih0aGlzLG51bGwsTyx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImRyYWdTdGFydFkiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOnRlPT4iZHJhZ1N0YXJ0WSJpbiB0ZSxnZXQ6dGU9PnRlLmRyYWdTdGFydFksc2V0Oih0ZSx6ZSk9Pnt0ZS5kcmFnU3RhcnRZPXplfX0sbWV0YWRhdGE6aGV9LFosWSksZzIodGhpcyxudWxsLG9lLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiZHJhZ0N1cnJlbnRZIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczp0ZT0+ImRyYWdDdXJyZW50WSJpbiB0ZSxnZXQ6dGU9PnRlLmRyYWdDdXJyZW50WSxzZXQ6KHRlLHplKT0+e3RlLmRyYWdDdXJyZW50WT16ZX19LG1ldGFkYXRhOmhlfSxnZSxiZSksZzIodGhpcyxudWxsLCRlLHtraW5kOiJhY2Nlc3NvciIsbmFtZToidGFyZ2V0SW5kZXgiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOnRlPT4idGFyZ2V0SW5kZXgiaW4gdGUsZ2V0OnRlPT50ZS50YXJnZXRJbmRleCxzZXQ6KHRlLHplKT0+e3RlLnRhcmdldEluZGV4PXplfX0sbWV0YWRhdGE6aGV9LEIsUCksZzIodGhpcyxudWxsLEsse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJpdGVtSGVpZ2h0IixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczp0ZT0+Iml0ZW1IZWlnaHQiaW4gdGUsZ2V0OnRlPT50ZS5pdGVtSGVpZ2h0LHNldDoodGUsemUpPT57dGUuaXRlbUhlaWdodD16ZX19LG1ldGFkYXRhOmhlfSxmZSxkZSksZzIobnVsbCxlPXt2YWx1ZTppfSx0LHtraW5kOiJjbGFzcyIsbmFtZTppLm5hbWUsbWV0YWRhdGE6aGV9LG51bGwsYSksX2U9aT1lLnZhbHVlLGhlJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoaSxTeW1ib2wubWV0YWRhdGEse2VudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwLHZhbHVlOmhlfSl9c3RhdGljIGRlbW89Um10O3N0YXRpYyBkZW1vR3JvdXBzPVsiSW5wdXQiXTsjZT1JdCh0aGlzLG4sW10pO2dldCB2YWx1ZSgpe3JldHVybiB0aGlzLiNlfXNldCB2YWx1ZShoZSl7dGhpcy4jZT1oZX0jdD0oSXQodGhpcyxvKSxJdCh0aGlzLGMsIkFkZCBuZXcgaXRlbS4uLiIpKTtnZXQgcGxhY2Vob2xkZXIoKXtyZXR1cm4gdGhpcy4jdH1zZXQgcGxhY2Vob2xkZXIoaGUpe3RoaXMuI3Q9aGV9I2E9KEl0KHRoaXMsaCksSXQodGhpcyxmLDApKTtnZXQgbWF4SXRlbXMoKXtyZXR1cm4gdGhpcy4jYX1zZXQgbWF4SXRlbXMoaGUpe3RoaXMuI2E9aGV9I2k9KEl0KHRoaXMsZyksSXQodGhpcyx2LDApKTtnZXQgbWluSXRlbXMoKXtyZXR1cm4gdGhpcy4jaX1zZXQgbWluSXRlbXMoaGUpe3RoaXMuI2k9aGV9I3I9KEl0KHRoaXMsbSksSXQodGhpcyxNLCExKSk7Z2V0IGFsbG93RHVwbGljYXRlcygpe3JldHVybiB0aGlzLiNyfXNldCBhbGxvd0R1cGxpY2F0ZXMoaGUpe3RoaXMuI3I9aGV9I3M9KEl0KHRoaXMsUyksSXQodGhpcyxfLCExKSk7Z2V0IHNvcnRhYmxlKCl7cmV0dXJuIHRoaXMuI3N9c2V0IHNvcnRhYmxlKGhlKXt0aGlzLiNzPWhlfSNuPShJdCh0aGlzLGspLEl0KHRoaXMsTCwhMSkpO2dldCBjb25maXJtRGVsZXRlKCl7cmV0dXJuIHRoaXMuI259c2V0IGNvbmZpcm1EZWxldGUoaGUpe3RoaXMuI249aGV9I289KEl0KHRoaXMsQSksSXQodGhpcyxDLCIiKSk7Z2V0IHZhbGlkYXRpb25UZXh0KCl7cmV0dXJuIHRoaXMuI299c2V0IHZhbGlkYXRpb25UZXh0KGhlKXt0aGlzLiNvPWhlfSNsPShJdCh0aGlzLHopLEl0KHRoaXMsVCwiIikpO2dldCBpbnB1dFZhbHVlKCl7cmV0dXJuIHRoaXMuI2x9c2V0IGlucHV0VmFsdWUoaGUpe3RoaXMuI2w9aGV9I2M9KEl0KHRoaXMsJCksSXQodGhpcyxSLC0xKSk7Z2V0IGVkaXRpbmdJbmRleCgpe3JldHVybiB0aGlzLiNjfXNldCBlZGl0aW5nSW5kZXgoaGUpe3RoaXMuI2M9aGV9I2Q9KEl0KHRoaXMsVSksSXQodGhpcyxqLCIiKSk7Z2V0IGVkaXRpbmdWYWx1ZSgpe3JldHVybiB0aGlzLiNkfXNldCBlZGl0aW5nVmFsdWUoaGUpe3RoaXMuI2Q9aGV9I2g9KEl0KHRoaXMsbWUpLEl0KHRoaXMsSCwtMSkpO2dldCBkcmFnZ2VkSW5kZXgoKXtyZXR1cm4gdGhpcy4jaH1zZXQgZHJhZ2dlZEluZGV4KGhlKXt0aGlzLiNoPWhlfSNwPShJdCh0aGlzLGNlKSxJdCh0aGlzLFcsLTEpKTtnZXQgZHJhZ092ZXJJbmRleCgpe3JldHVybiB0aGlzLiNwfXNldCBkcmFnT3ZlckluZGV4KGhlKXt0aGlzLiNwPWhlfSN1PShJdCh0aGlzLEQpLEl0KHRoaXMsWiwwKSk7Z2V0IGRyYWdTdGFydFkoKXtyZXR1cm4gdGhpcy4jdX1zZXQgZHJhZ1N0YXJ0WShoZSl7dGhpcy4jdT1oZX0jZj0oSXQodGhpcyxZKSxJdCh0aGlzLGdlLDApKTtnZXQgZHJhZ0N1cnJlbnRZKCl7cmV0dXJuIHRoaXMuI2Z9c2V0IGRyYWdDdXJyZW50WShoZSl7dGhpcy4jZj1oZX0jbT0oSXQodGhpcyxiZSksSXQodGhpcyxCLC0xKSk7Z2V0IHRhcmdldEluZGV4KCl7cmV0dXJuIHRoaXMuI219c2V0IHRhcmdldEluZGV4KGhlKXt0aGlzLiNtPWhlfSNnPShJdCh0aGlzLFApLEl0KHRoaXMsZmUsMCkpO2dldCBpdGVtSGVpZ2h0KCl7cmV0dXJuIHRoaXMuI2d9c2V0IGl0ZW1IZWlnaHQoaGUpe3RoaXMuI2c9aGV9Ym91bmRIYW5kbGVHbG9iYWxEcmFnT3Zlcj0oSXQodGhpcyxkZSksbnVsbCk7Ym91bmRIYW5kbGVHbG9iYWxEcmFnRW5kPW51bGw7b3JpZ2luYWxJdGVtUmVjdHM9W107c3RhdGljIHN0eWxlcz1bQ2UsLi4uWGUuYmFzZVN0eWxlcyxwLmRlZmF1bHRTdHlsZXMsUWAKICAgICAgLyogVE9ETzogTWlncmF0ZSBoYXJkY29kZWQgdmFsdWVzIHRvIC0tZGVlcy0qIENTUyB2YXJpYWJsZXMgKi8KICAgICAgOmhvc3QgewogICAgICAgIGRpc3BsYXk6IGJsb2NrOwogICAgICAgIGZvbnQtZmFtaWx5OiAtYXBwbGUtc3lzdGVtLCBCbGlua01hY1N5c3RlbUZvbnQsICdTZWdvZSBVSScsICdSb2JvdG8nLCBzYW5zLXNlcmlmOwogICAgICB9CgogICAgICAuaW5wdXQtd3JhcHBlciB7CiAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgIH0KCiAgICAgIC5saXN0LWNvbnRhaW5lciB7CiAgICAgICAgYmFja2dyb3VuZDogJHtwLmJkVGhlbWUoImhzbCgwIDAlIDEwMCUpIiwiaHNsKDAgMCUgMy45JSkiKX07CiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHtwLmJkVGhlbWUoImhzbCgwIDAlIDg5LjglKSIsImhzbCgwIDAlIDE0LjklKSIpfTsKICAgICAgICBib3JkZXItcmFkaXVzOiA2cHg7CiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC4xNXMgZWFzZTsKICAgICAgfQoKICAgICAgLmxpc3QtY29udGFpbmVyOmhvdmVyOm5vdCguZGlzYWJsZWQpIHsKICAgICAgICBib3JkZXItY29sb3I6ICR7cC5iZFRoZW1lKCJoc2woMCAwJSA3OS44JSkiLCJoc2woMCAwJSAyMC45JSkiKX07CiAgICAgIH0KCiAgICAgIC5saXN0LWNvbnRhaW5lcjpmb2N1cy13aXRoaW4gewogICAgICAgIGJvcmRlci1jb2xvcjogJHtwLmJkVGhlbWUoImhzbCgyMjIuMiA0Ny40JSA1MS4yJSkiLCJoc2woMjE3LjIgOTEuMiUgNTkuOCUpIil9OwogICAgICAgIGJveC1zaGFkb3c6IDAgMCAwIDNweCAke3AuYmRUaGVtZSgiaHNsKDIyMi4yIDQ3LjQlIDUxLjIlIC8gMC4xKSIsImhzbCgyMTcuMiA5MS4yJSA1OS44JSAvIDAuMSkiKX07CiAgICAgIH0KCiAgICAgIC5saXN0LWNvbnRhaW5lci5kaXNhYmxlZCB7CiAgICAgICAgb3BhY2l0eTogMC42OwogICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7CiAgICAgIH0KCiAgICAgIC5saXN0LWl0ZW1zIHsKICAgICAgICBtYXgtaGVpZ2h0OiA0MDBweDsKICAgICAgICBvdmVyZmxvdy15OiBhdXRvOwogICAgICB9CgogICAgICAubGlzdC1pdGVtIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgZ2FwOiA4cHg7CiAgICAgICAgcGFkZGluZzogMTJweCAxNnB4OwogICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAke3AuYmRUaGVtZSgiaHNsKDAgMCUgODkuOCUpIiwiaHNsKDAgMCUgMTQuOSUpIil9OwogICAgICAgIGJhY2tncm91bmQ6ICR7cC5iZFRoZW1lKCJoc2woMCAwJSAxMDAlKSIsImhzbCgwIDAlIDMuOSUpIil9OwogICAgICAgIHRyYW5zaXRpb246IHRyYW5zZm9ybSAwLjJzIGVhc2UsIGJhY2tncm91bmQgMC4xNXMgZWFzZSwgYm94LXNoYWRvdyAwLjE1cyBlYXNlOwogICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgICBvdmVyZmxvdzogaGlkZGVuOyAvKiBQcmV2ZW50IGFuaW1hdGlvbiBmcm9tIGFmZmVjdGluZyBzY3JvbGwgYm91bmRzICovCiAgICAgIH0KCiAgICAgIC5saXN0LWl0ZW06bGFzdC1vZi10eXBlIHsKICAgICAgICBib3JkZXItYm90dG9tOiBub25lOwogICAgICB9CgogICAgICAubGlzdC1pdGVtczpub3QoLmlzLWRyYWdnaW5nKSAubGlzdC1pdGVtOmhvdmVyOm5vdCguZGlzYWJsZWQpIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke3AuYmRUaGVtZSgiaHNsKDAgMCUgOTcuNSUpIiwiaHNsKDAgMCUgNi45JSkiKX07CiAgICAgIH0KCiAgICAgIC8qIERyYWdnaW5nIGl0ZW0gLSBmb2xsb3dzIGN1cnNvciAqLwogICAgICAubGlzdC1pdGVtLmRyYWdnaW5nIHsKICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgICAgei1pbmRleDogMTAwOwogICAgICAgIGJhY2tncm91bmQ6ICR7cC5iZFRoZW1lKCJoc2woMjEwIDQwJSA5OCUpIiwiaHNsKDIxNSAyMC4yJSAxMiUpIil9OwogICAgICAgIGJveC1zaGFkb3c6IDAgNHB4IDEycHggJHtwLmJkVGhlbWUoInJnYmEoMCwgMCwgMCwgMC4xNSkiLCJyZ2JhKDAsIDAsIDAsIDAuNCkiKX07CiAgICAgICAgYm9yZGVyLXJhZGl1czogNnB4OwogICAgICAgIHRyYW5zaXRpb246IGJveC1zaGFkb3cgMC4xNXMgZWFzZSwgYmFja2dyb3VuZCAwLjE1cyBlYXNlOwogICAgICB9CgogICAgICAvKiBJdGVtcyB0aGF0IG5lZWQgdG8gbW92ZSB1cCB0byBtYWtlIHNwYWNlICovCiAgICAgIC5saXN0LWl0ZW0ubW92ZS11cCB7CiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKGNhbGMoLTEgKiB2YXIoLS1pdGVtLWhlaWdodCwgNDhweCkpKTsKICAgICAgfQoKICAgICAgLyogSXRlbXMgdGhhdCBuZWVkIHRvIG1vdmUgZG93biB0byBtYWtlIHNwYWNlICovCiAgICAgIC5saXN0LWl0ZW0ubW92ZS1kb3duIHsKICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkodmFyKC0taXRlbS1oZWlnaHQsIDQ4cHgpKTsKICAgICAgfQoKCiAgICAgIC5kcmFnLWhhbmRsZSB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGN1cnNvcjogbW92ZTsKICAgICAgICBjb2xvcjogJHtwLmJkVGhlbWUoImhzbCgwIDAlIDYzLjklKSIsImhzbCgwIDAlIDQ1LjElKSIpfTsKICAgICAgICB0cmFuc2l0aW9uOiBjb2xvciAwLjE1cyBlYXNlOwogICAgICB9CgogICAgICAuZHJhZy1oYW5kbGU6aG92ZXIgewogICAgICAgIGNvbG9yOiAke3AuYmRUaGVtZSgiaHNsKDAgMCUgNDUuMSUpIiwiaHNsKDAgMCUgNjMuOSUpIil9OwogICAgICB9CgogICAgICAuZHJhZy1oYW5kbGUgZGVlcy1pY29uIHsKICAgICAgICB3aWR0aDogMTZweDsKICAgICAgICBoZWlnaHQ6IDE2cHg7CiAgICAgIH0KCiAgICAgIC5pdGVtLWNvbnRlbnQgewogICAgICAgIGZsZXg6IDE7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIG1pbi13aWR0aDogMDsKICAgICAgfQoKICAgICAgLml0ZW0tdGV4dCB7CiAgICAgICAgZmxleDogMTsKICAgICAgICBjb2xvcjogJHtwLmJkVGhlbWUoImhzbCgwIDAlIDklKSIsImhzbCgwIDAlIDk1JSkiKX07CiAgICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgICAgIGxpbmUtaGVpZ2h0OiAyMHB4OwogICAgICAgIHdvcmQtYnJlYWs6IGJyZWFrLXdvcmQ7CiAgICAgIH0KCiAgICAgIC5pdGVtLWVkaXQtaW5wdXQgewogICAgICAgIGZsZXg6IDE7CiAgICAgICAgcGFkZGluZzogNHB4IDhweDsKICAgICAgICBmb250LXNpemU6IDE0cHg7CiAgICAgICAgZm9udC1mYW1pbHk6IGluaGVyaXQ7CiAgICAgICAgYmFja2dyb3VuZDogJHtwLmJkVGhlbWUoImhzbCgwIDAlIDEwMCUpIiwiaHNsKDAgMCUgOSUpIil9OwogICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICR7cC5iZFRoZW1lKCJoc2woMjIyLjIgNDcuNCUgNTEuMiUpIiwiaHNsKDIxNy4yIDkxLjIlIDU5LjglKSIpfTsKICAgICAgICBib3JkZXItcmFkaXVzOiA0cHg7CiAgICAgICAgb3V0bGluZTogbm9uZTsKICAgICAgICBjb2xvcjogJHtwLmJkVGhlbWUoImhzbCgwIDAlIDklKSIsImhzbCgwIDAlIDk1JSkiKX07CiAgICAgIH0KCiAgICAgIC5pdGVtLWFjdGlvbnMgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgZ2FwOiA0cHg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgfQoKICAgICAgLmFjdGlvbi1idXR0b24gewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKICAgICAgICB3aWR0aDogMjhweDsKICAgICAgICBoZWlnaHQ6IDI4cHg7CiAgICAgICAgYm9yZGVyLXJhZGl1czogNHB4OwogICAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50OwogICAgICAgIGJvcmRlcjogbm9uZTsKICAgICAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuMTVzIGVhc2U7CiAgICAgICAgY29sb3I6ICR7cC5iZFRoZW1lKCJoc2woMCAwJSA0NS4xJSkiLCJoc2woMCAwJSA2My45JSkiKX07CiAgICAgIH0KCiAgICAgIC5hY3Rpb24tYnV0dG9uOmhvdmVyIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke3AuYmRUaGVtZSgiaHNsKDAgMCUgOTUuMSUpIiwiaHNsKDAgMCUgMTQuOSUpIil9OwogICAgICAgIGNvbG9yOiAke3AuYmRUaGVtZSgiaHNsKDAgMCUgOSUpIiwiaHNsKDAgMCUgOTUlKSIpfTsKICAgICAgfQoKICAgICAgLmFjdGlvbi1idXR0b24uc2F2ZSB7CiAgICAgICAgY29sb3I6ICR7cC5iZFRoZW1lKCJoc2woMTQyLjEgNzYuMiUgMzYuMyUpIiwiaHNsKDE0Mi4xIDcwLjYlIDQ1LjMlKSIpfTsKICAgICAgfQoKICAgICAgLmFjdGlvbi1idXR0b24uc2F2ZTpob3ZlciB7CiAgICAgICAgYmFja2dyb3VuZDogJHtwLmJkVGhlbWUoImhzbCgxNDIuMSA3Ni4yJSAzNi4zJSAvIDAuMSkiLCJoc2woMTQyLjEgNzAuNiUgNDUuMyUgLyAwLjEpIil9OwogICAgICB9CgogICAgICAuYWN0aW9uLWJ1dHRvbi5jYW5jZWwgewogICAgICAgIGNvbG9yOiAke3AuYmRUaGVtZSgiaHNsKDAgNzIuMiUgNTAuNiUpIiwiaHNsKDAgNjIuOCUgNTAuNiUpIil9OwogICAgICB9CgogICAgICAuYWN0aW9uLWJ1dHRvbi5jYW5jZWw6aG92ZXIgewogICAgICAgIGJhY2tncm91bmQ6ICR7cC5iZFRoZW1lKCJoc2woMCA3Mi4yJSA1MC42JSAvIDAuMSkiLCJoc2woMCA2Mi44JSA1MC42JSAvIDAuMSkiKX07CiAgICAgIH0KCiAgICAgIC5hY3Rpb24tYnV0dG9uLmRlbGV0ZSB7CiAgICAgICAgY29sb3I6ICR7cC5iZFRoZW1lKCJoc2woMCA3Mi4yJSA1MC42JSkiLCJoc2woMCA2Mi44JSA1MC42JSkiKX07CiAgICAgIH0KCiAgICAgIC5hY3Rpb24tYnV0dG9uLmRlbGV0ZTpob3ZlciB7CiAgICAgICAgYmFja2dyb3VuZDogJHtwLmJkVGhlbWUoImhzbCgwIDcyLjIlIDUwLjYlIC8gMC4xKSIsImhzbCgwIDYyLjglIDUwLjYlIC8gMC4xKSIpfTsKICAgICAgfQoKICAgICAgLmFjdGlvbi1idXR0b24gZGVlcy1pY29uIHsKICAgICAgICB3aWR0aDogMTRweDsKICAgICAgICBoZWlnaHQ6IDE0cHg7CiAgICAgIH0KCiAgICAgIC5hZGQtaXRlbS1jb250YWluZXIgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgZ2FwOiA4cHg7CiAgICAgICAgcGFkZGluZzogMTJweCAxNnB4OwogICAgICAgIGJhY2tncm91bmQ6ICR7cC5iZFRoZW1lKCJoc2woMCAwJSA5Ny41JSkiLCJoc2woMCAwJSA2LjklKSIpfTsKICAgICAgICBib3JkZXItdG9wOiAxcHggc29saWQgJHtwLmJkVGhlbWUoImhzbCgwIDAlIDg5LjglKSIsImhzbCgwIDAlIDE0LjklKSIpfTsKICAgICAgfQoKICAgICAgLmFkZC1pbnB1dCB7CiAgICAgICAgZmxleDogMTsKICAgICAgICBwYWRkaW5nOiA4cHggMTJweDsKICAgICAgICBmb250LXNpemU6IDE0cHg7CiAgICAgICAgZm9udC1mYW1pbHk6IGluaGVyaXQ7CiAgICAgICAgYmFja2dyb3VuZDogJHtwLmJkVGhlbWUoImhzbCgwIDAlIDEwMCUpIiwiaHNsKDAgMCUgOSUpIil9OwogICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICR7cC5iZFRoZW1lKCJoc2woMCAwJSA4OS44JSkiLCJoc2woMCAwJSAxNC45JSkiKX07CiAgICAgICAgYm9yZGVyLXJhZGl1czogNHB4OwogICAgICAgIG91dGxpbmU6IG5vbmU7CiAgICAgICAgY29sb3I6ICR7cC5iZFRoZW1lKCJoc2woMCAwJSA5JSkiLCJoc2woMCAwJSA5NSUpIil9OwogICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjE1cyBlYXNlOwogICAgICB9CgogICAgICAuYWRkLWlucHV0OmZvY3VzIHsKICAgICAgICBib3JkZXItY29sb3I6ICR7cC5iZFRoZW1lKCJoc2woMjIyLjIgNDcuNCUgNTEuMiUpIiwiaHNsKDIxNy4yIDkxLjIlIDU5LjglKSIpfTsKICAgICAgICBib3gtc2hhZG93OiAwIDAgMCAzcHggJHtwLmJkVGhlbWUoImhzbCgyMjIuMiA0Ny40JSA1MS4yJSAvIDAuMSkiLCJoc2woMjE3LjIgOTEuMiUgNTkuOCUgLyAwLjEpIil9OwogICAgICB9CgogICAgICAuYWRkLWlucHV0OjpwbGFjZWhvbGRlciB7CiAgICAgICAgY29sb3I6ICR7cC5iZFRoZW1lKCJoc2woMCAwJSA2My45JSkiLCJoc2woMCAwJSA0NS4xJSkiKX07CiAgICAgIH0KCiAgICAgIC5hZGQtaW5wdXQ6ZGlzYWJsZWQgewogICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7CiAgICAgICAgb3BhY2l0eTogMC41OwogICAgICB9CgogICAgICAuYWRkLWJ1dHRvbiB7CiAgICAgICAgcGFkZGluZzogOHB4IDE2cHg7CiAgICAgIH0KCiAgICAgIC5lbXB0eS1zdGF0ZSB7CiAgICAgICAgcGFkZGluZzogMzJweCAxNnB4OwogICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjsKICAgICAgICBjb2xvcjogJHtwLmJkVGhlbWUoImhzbCgwIDAlIDYzLjklKSIsImhzbCgwIDAlIDQ1LjElKSIpfTsKICAgICAgICBmb250LXNpemU6IDE0cHg7CiAgICAgICAgZm9udC1zdHlsZTogaXRhbGljOwogICAgICB9CgogICAgICAudmFsaWRhdGlvbi1tZXNzYWdlIHsKICAgICAgICBjb2xvcjogJHtwLmJkVGhlbWUoImhzbCgwIDcyLjIlIDUwLjYlKSIsImhzbCgwIDYyLjglIDMwLjYlKSIpfTsKICAgICAgICBmb250LXNpemU6IDEzcHg7CiAgICAgICAgbWFyZ2luLXRvcDogNnB4OwogICAgICAgIGxpbmUtaGVpZ2h0OiAxLjU7CiAgICAgIH0KCiAgICAgIC5kZXNjcmlwdGlvbiB7CiAgICAgICAgY29sb3I6ICR7cC5iZFRoZW1lKCJoc2woMjE1LjQgMTYuMyUgNTYuOSUpIiwiaHNsKDIxNSAyMC4yJSA1NS4xJSkiKX07CiAgICAgICAgZm9udC1zaXplOiAxM3B4OwogICAgICAgIG1hcmdpbi10b3A6IDZweDsKICAgICAgICBsaW5lLWhlaWdodDogMS41OwogICAgICB9CgogICAgICAvKiBTY3JvbGxiYXIgc3R5bGluZyAqLwogICAgICAubGlzdC1pdGVtczo6LXdlYmtpdC1zY3JvbGxiYXIgewogICAgICAgIHdpZHRoOiA4cHg7CiAgICAgIH0KCiAgICAgIC5saXN0LWl0ZW1zOjotd2Via2l0LXNjcm9sbGJhci10cmFjayB7CiAgICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7CiAgICAgIH0KCiAgICAgIC5saXN0LWl0ZW1zOjotd2Via2l0LXNjcm9sbGJhci10aHVtYiB7CiAgICAgICAgYmFja2dyb3VuZDogJHtwLmJkVGhlbWUoImhzbCgwIDAlIDg5LjglKSIsImhzbCgwIDAlIDI0LjklKSIpfTsKICAgICAgICBib3JkZXItcmFkaXVzOiA0cHg7CiAgICAgIH0KCiAgICAgIC5saXN0LWl0ZW1zOjotd2Via2l0LXNjcm9sbGJhci10aHVtYjpob3ZlciB7CiAgICAgICAgYmFja2dyb3VuZDogJHtwLmJkVGhlbWUoImhzbCgwIDAlIDc5LjglKSIsImhzbCgwIDAlIDM0LjklKSIpfTsKICAgICAgfQoKICAgICAgLyogRGlzYWJsZSB0cmFuc2l0aW9ucyBkdXJpbmcgZHJvcCB0byBwcmV2ZW50IGZsYXNoICovCiAgICAgIC5saXN0LWl0ZW1zLmRyb3BwaW5nIC5saXN0LWl0ZW0gewogICAgICAgIHRyYW5zaXRpb246IG5vbmUgIWltcG9ydGFudDsKICAgICAgfQogICAgYF07cmVuZGVyKCl7cmV0dXJuIHdgCiAgICAgIDxkaXYgY2xhc3M9ImlucHV0LXdyYXBwZXIiPgogICAgICAgICR7dGhpcy5sYWJlbD93YDxkZWVzLWxhYmVsIC5sYWJlbD0ke3RoaXMubGFiZWx9IC5yZXF1aXJlZD0ke3RoaXMucmVxdWlyZWR9PjwvZGVlcy1sYWJlbD5gOiIifQogICAgICAgIAogICAgICAgIDxkaXYgY2xhc3M9Imxpc3QtY29udGFpbmVyICR7dGhpcy5kaXNhYmxlZD8iZGlzYWJsZWQiOiIifSI+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJsaXN0LWl0ZW1zIj4KICAgICAgICAgICAgJHt0aGlzLnZhbHVlLmxlbmd0aD4wP3RoaXMudmFsdWUubWFwKChoZSx0ZSk9PndgCiAgICAgICAgICAgICAgPGRpdgogICAgICAgICAgICAgICAgY2xhc3M9Imxpc3QtaXRlbSAke3RoaXMuZHJhZ2dlZEluZGV4PT09dGU/ImRyYWdnaW5nIjoiIn0iCiAgICAgICAgICAgICAgICBkcmFnZ2FibGU9IiR7dGhpcy5zb3J0YWJsZSYmIXRoaXMuZGlzYWJsZWR9IgogICAgICAgICAgICAgICAgQGRyYWdzdGFydD0ke3plPT50aGlzLmhhbmRsZURyYWdTdGFydCh6ZSx0ZSl9CiAgICAgICAgICAgICAgICBAZHJhZ2VuZD0ke3RoaXMuaGFuZGxlRHJhZ0VuZH0KICAgICAgICAgICAgICAgIEBkcmFnb3Zlcj0ke3plPT50aGlzLmhhbmRsZURyYWdPdmVyKHplLHRlKX0KICAgICAgICAgICAgICAgIEBkcm9wPSR7emU9PnRoaXMuaGFuZGxlRHJvcCh6ZSx0ZSl9CiAgICAgICAgICAgICAgPgogICAgICAgICAgICAgICAgJHt0aGlzLnNvcnRhYmxlJiYhdGhpcy5kaXNhYmxlZD93YAogICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJkcmFnLWhhbmRsZSI+CiAgICAgICAgICAgICAgICAgICAgPGRlZXMtaWNvbiAuaWNvbj0keyJsdWNpZGU6Z3JpcFZlcnRpY2FsIn0+PC9kZWVzLWljb24+CiAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgYDoiIn0KICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iaXRlbS1jb250ZW50Ij4KICAgICAgICAgICAgICAgICAgJHt0aGlzLmVkaXRpbmdJbmRleD09PXRlP3dgCiAgICAgICAgICAgICAgICAgICAgPGlucHV0CiAgICAgICAgICAgICAgICAgICAgICB0eXBlPSJ0ZXh0IgogICAgICAgICAgICAgICAgICAgICAgY2xhc3M9Iml0ZW0tZWRpdC1pbnB1dCIKICAgICAgICAgICAgICAgICAgICAgIC52YWx1ZT0ke3RoaXMuZWRpdGluZ1ZhbHVlfQogICAgICAgICAgICAgICAgICAgICAgQGlucHV0PSR7emU9PnRoaXMuZWRpdGluZ1ZhbHVlPXplLnRhcmdldC52YWx1ZX0KICAgICAgICAgICAgICAgICAgICAgIEBrZXlkb3duPSR7emU9PnRoaXMuaGFuZGxlRWRpdEtleURvd24oemUsdGUpfQogICAgICAgICAgICAgICAgICAgICAgQGJsdXI9JHsoKT0+dGhpcy5zYXZlRWRpdCh0ZSl9CiAgICAgICAgICAgICAgICAgICAgLz4KICAgICAgICAgICAgICAgICAgYDp3YAogICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9Iml0ZW0tdGV4dCIgQGRibGNsaWNrPSR7KCk9PiF0aGlzLmRpc2FibGVkJiZ0aGlzLnN0YXJ0RWRpdCh0ZSl9PgogICAgICAgICAgICAgICAgICAgICAgJHtoZX0KICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgYH0KICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJpdGVtLWFjdGlvbnMiPgogICAgICAgICAgICAgICAgICAke3RoaXMuZWRpdGluZ0luZGV4PT09dGU/d2AKICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIGNsYXNzPSJhY3Rpb24tYnV0dG9uIHNhdmUiIEBjbGljaz0keygpPT50aGlzLnNhdmVFZGl0KHRlKX0+CiAgICAgICAgICAgICAgICAgICAgICA8ZGVlcy1pY29uIC5pY29uPSR7Imx1Y2lkZTpjaGVjayJ9PjwvZGVlcy1pY29uPgogICAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPgogICAgICAgICAgICAgICAgICAgIDxidXR0b24gY2xhc3M9ImFjdGlvbi1idXR0b24gY2FuY2VsIiBAY2xpY2s9JHsoKT0+dGhpcy5jYW5jZWxFZGl0KCl9PgogICAgICAgICAgICAgICAgICAgICAgPGRlZXMtaWNvbiAuaWNvbj0keyJsdWNpZGU6eCJ9PjwvZGVlcy1pY29uPgogICAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPgogICAgICAgICAgICAgICAgICBgOndgCiAgICAgICAgICAgICAgICAgICAgJHt0aGlzLmRpc2FibGVkPyIiOndgCiAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIGNsYXNzPSJhY3Rpb24tYnV0dG9uIiBAY2xpY2s9JHsoKT0+dGhpcy5zdGFydEVkaXQodGUpfT4KICAgICAgICAgICAgICAgICAgICAgICAgPGRlZXMtaWNvbiAuaWNvbj0keyJsdWNpZGU6cGVuY2lsIn0+PC9kZWVzLWljb24+CiAgICAgICAgICAgICAgICAgICAgICA8L2J1dHRvbj4KICAgICAgICAgICAgICAgICAgICAgIDxidXR0b24gY2xhc3M9ImFjdGlvbi1idXR0b24gZGVsZXRlIiBAY2xpY2s9JHsoKT0+dGhpcy5yZW1vdmVJdGVtKHRlKX0+CiAgICAgICAgICAgICAgICAgICAgICAgIDxkZWVzLWljb24gLmljb249JHsibHVjaWRlOnRyYXNoMiJ9PjwvZGVlcy1pY29uPgogICAgICAgICAgICAgICAgICAgICAgPC9idXR0b24+CiAgICAgICAgICAgICAgICAgICAgYH0KICAgICAgICAgICAgICAgICAgYH0KICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICBgKTp3YAogICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImVtcHR5LXN0YXRlIj4KICAgICAgICAgICAgICAgIE5vIGl0ZW1zIGFkZGVkIHlldAogICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICBgfQogICAgICAgICAgPC9kaXY+CiAgICAgICAgICAKICAgICAgICAgICR7IXRoaXMuZGlzYWJsZWQmJighdGhpcy5tYXhJdGVtc3x8dGhpcy52YWx1ZS5sZW5ndGg8dGhpcy5tYXhJdGVtcyk/d2AKICAgICAgICAgICAgPGRpdiBjbGFzcz0iYWRkLWl0ZW0tY29udGFpbmVyIj4KICAgICAgICAgICAgICA8aW5wdXQKICAgICAgICAgICAgICAgIHR5cGU9InRleHQiCiAgICAgICAgICAgICAgICBjbGFzcz0iYWRkLWlucHV0IgogICAgICAgICAgICAgICAgLnBsYWNlaG9sZGVyPSR7dGhpcy5wbGFjZWhvbGRlcn0KICAgICAgICAgICAgICAgIC52YWx1ZT0ke3RoaXMuaW5wdXRWYWx1ZX0KICAgICAgICAgICAgICAgIEBpbnB1dD0ke3RoaXMuaGFuZGxlSW5wdXR9CiAgICAgICAgICAgICAgICBAa2V5ZG93bj0ke3RoaXMuaGFuZGxlQWRkS2V5RG93bn0KICAgICAgICAgICAgICAgID9kaXNhYmxlZD0ke3RoaXMuZGlzYWJsZWR9CiAgICAgICAgICAgICAgLz4KICAgICAgICAgICAgICA8ZGVlcy1idXR0b24KICAgICAgICAgICAgICAgIGNsYXNzPSJhZGQtYnV0dG9uIgogICAgICAgICAgICAgICAgQGNsaWNrPSR7dGhpcy5hZGRJdGVtfQogICAgICAgICAgICAgICAgP2Rpc2FibGVkPSR7IXRoaXMuaW5wdXRWYWx1ZS50cmltKCl9CiAgICAgICAgICAgICAgPgogICAgICAgICAgICAgICAgPGRlZXMtaWNvbiAuaWNvbj0keyJsdWNpZGU6cGx1cyJ9PjwvZGVlcy1pY29uPiBBZGQKICAgICAgICAgICAgICA8L2RlZXMtYnV0dG9uPgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIGA6IiJ9CiAgICAgICAgPC9kaXY+CgogICAgICAgICR7dGhpcy52YWxpZGF0aW9uVGV4dD93YAogICAgICAgICAgPGRpdiBjbGFzcz0idmFsaWRhdGlvbi1tZXNzYWdlIj4ke3RoaXMudmFsaWRhdGlvblRleHR9PC9kaXY+CiAgICAgICAgYDoiIn0KICAgICAgICAKICAgICAgICAke3RoaXMuZGVzY3JpcHRpb24/d2AKICAgICAgICAgIDxkaXYgY2xhc3M9ImRlc2NyaXB0aW9uIj4ke3RoaXMuZGVzY3JpcHRpb259PC9kaXY+CiAgICAgICAgYDoiIn0KICAgICAgPC9kaXY+CiAgICBgfWhhbmRsZUlucHV0KGhlKXt0aGlzLmlucHV0VmFsdWU9aGUudGFyZ2V0LnZhbHVlfWhhbmRsZUFkZEtleURvd24oaGUpe2hlLmtleT09PSJFbnRlciImJnRoaXMuaW5wdXRWYWx1ZS50cmltKCkmJihoZS5wcmV2ZW50RGVmYXVsdCgpLHRoaXMuYWRkSXRlbSgpKX1oYW5kbGVFZGl0S2V5RG93bihoZSx0ZSl7aGUua2V5PT09IkVudGVyIj8oaGUucHJldmVudERlZmF1bHQoKSx0aGlzLnNhdmVFZGl0KHRlKSk6aGUua2V5PT09IkVzY2FwZSImJihoZS5wcmV2ZW50RGVmYXVsdCgpLHRoaXMuY2FuY2VsRWRpdCgpKX1hZGRJdGVtKCl7bGV0IGhlPXRoaXMuaW5wdXRWYWx1ZS50cmltKCk7aWYoIWhlKXJldHVybjtpZighdGhpcy5hbGxvd0R1cGxpY2F0ZXMmJnRoaXMudmFsdWUuaW5jbHVkZXMoaGUpKXt0aGlzLnZhbGlkYXRpb25UZXh0PSJUaGlzIGl0ZW0gYWxyZWFkeSBleGlzdHMgaW4gdGhlIGxpc3QiLHNldFRpbWVvdXQoKCk9PnRoaXMudmFsaWRhdGlvblRleHQ9IiIsM2UzKTtyZXR1cm59aWYodGhpcy5tYXhJdGVtcyYmdGhpcy52YWx1ZS5sZW5ndGg+PXRoaXMubWF4SXRlbXMpe3RoaXMudmFsaWRhdGlvblRleHQ9YE1heGltdW0gJHt0aGlzLm1heEl0ZW1zfSBpdGVtcyBhbGxvd2VkYCxzZXRUaW1lb3V0KCgpPT50aGlzLnZhbGlkYXRpb25UZXh0PSIiLDNlMyk7cmV0dXJufXRoaXMudmFsdWU9Wy4uLnRoaXMudmFsdWUsaGVdLHRoaXMuaW5wdXRWYWx1ZT0iIix0aGlzLnZhbGlkYXRpb25UZXh0PSIiO2xldCB0ZT10aGlzLnNoYWRvd1Jvb3Q/LnF1ZXJ5U2VsZWN0b3IoIi5hZGQtaW5wdXQiKTt0ZSYmKHRlLnZhbHVlPSIiLHRlLmZvY3VzKCkpLHRoaXMuZW1pdENoYW5nZSgpfXN0YXJ0RWRpdChoZSl7dGhpcy5lZGl0aW5nSW5kZXg9aGUsdGhpcy5lZGl0aW5nVmFsdWU9dGhpcy52YWx1ZVtoZV0sdGhpcy51cGRhdGVDb21wbGV0ZS50aGVuKCgpPT57bGV0IHRlPXRoaXMuc2hhZG93Um9vdD8ucXVlcnlTZWxlY3RvcigiLml0ZW0tZWRpdC1pbnB1dCIpO3RlJiYodGUuZm9jdXMoKSx0ZS5zZWxlY3QoKSl9KX1zYXZlRWRpdChoZSl7bGV0IHRlPXRoaXMuZWRpdGluZ1ZhbHVlLnRyaW0oKTtpZighdGUpe3RoaXMuY2FuY2VsRWRpdCgpO3JldHVybn1pZighdGhpcy5hbGxvd0R1cGxpY2F0ZXMmJnRlIT09dGhpcy52YWx1ZVtoZV0mJnRoaXMudmFsdWUuaW5jbHVkZXModGUpKXt0aGlzLnZhbGlkYXRpb25UZXh0PSJUaGlzIGl0ZW0gYWxyZWFkeSBleGlzdHMgaW4gdGhlIGxpc3QiLHNldFRpbWVvdXQoKCk9PnRoaXMudmFsaWRhdGlvblRleHQ9IiIsM2UzKTtyZXR1cm59bGV0IHplPVsuLi50aGlzLnZhbHVlXTt6ZVtoZV09dGUsdGhpcy52YWx1ZT16ZSx0aGlzLmVkaXRpbmdJbmRleD0tMSx0aGlzLmVkaXRpbmdWYWx1ZT0iIix0aGlzLnZhbGlkYXRpb25UZXh0PSIiLHRoaXMuZW1pdENoYW5nZSgpfWNhbmNlbEVkaXQoKXt0aGlzLmVkaXRpbmdJbmRleD0tMSx0aGlzLmVkaXRpbmdWYWx1ZT0iIn1hc3luYyByZW1vdmVJdGVtKGhlKXt0aGlzLmNvbmZpcm1EZWxldGUmJiFhd2FpdCB0aGlzLnNob3dDb25maXJtRGlhbG9nKGBEZWxldGUgIiR7dGhpcy52YWx1ZVtoZV19Ij9gKXx8KHRoaXMudmFsdWU9dGhpcy52YWx1ZS5maWx0ZXIoKHRlLHplKT0+emUhPT1oZSksdGhpcy5lbWl0Q2hhbmdlKCkpfWFzeW5jIHNob3dDb25maXJtRGlhbG9nKGhlKXtyZXR1cm4gY29uZmlybShoZSl9aGFuZGxlRHJhZ1N0YXJ0KGhlLHRlKXtpZighdGhpcy5zb3J0YWJsZXx8dGhpcy5kaXNhYmxlZClyZXR1cm47dGhpcy5kcmFnZ2VkSW5kZXg9dGUsdGhpcy50YXJnZXRJbmRleD10ZSxoZS5kYXRhVHJhbnNmZXIuZWZmZWN0QWxsb3dlZD0ibW92ZSIsaGUuZGF0YVRyYW5zZmVyLnNldERhdGEoInRleHQvcGxhaW4iLHRlLnRvU3RyaW5nKCkpO2xldCB6ZT1uZXcgSW1hZ2U7emUuc3JjPSJkYXRhOmltYWdlL2dpZjtiYXNlNjQsUjBsR09EbGhBUUFCQUlBQUFBVUVCQUFBQUN3QUFBQUFBUUFCQUFBQ0FrUUJBRHM9IixoZS5kYXRhVHJhbnNmZXIuc2V0RHJhZ0ltYWdlKHplLDAsMCksdGhpcy5kcmFnU3RhcnRZPWhlLmNsaWVudFksdGhpcy5kcmFnQ3VycmVudFk9aGUuY2xpZW50WTtsZXQgRmU9dGhpcy5zaGFkb3dSb290Py5xdWVyeVNlbGVjdG9yKCIubGlzdC1pdGVtcyIpLFdlPUFycmF5LmZyb20oRmU/LnF1ZXJ5U2VsZWN0b3JBbGwoIi5saXN0LWl0ZW0iKXx8W10pO1dlW3RlXSYmKHRoaXMuaXRlbUhlaWdodD1XZVt0ZV0ub2Zmc2V0SGVpZ2h0KSx0aGlzLm9yaWdpbmFsSXRlbVJlY3RzPVdlLm1hcCh5ZT0+eWUuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkpLEZlPy5jbGFzc0xpc3QuYWRkKCJpcy1kcmFnZ2luZyIpLHRoaXMuYm91bmRIYW5kbGVHbG9iYWxEcmFnT3Zlcj10aGlzLmhhbmRsZUdsb2JhbERyYWdPdmVyLmJpbmQodGhpcyksdGhpcy5ib3VuZEhhbmRsZUdsb2JhbERyYWdFbmQ9dGhpcy5oYW5kbGVHbG9iYWxEcmFnRW5kLmJpbmQodGhpcyksZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigiZHJhZ292ZXIiLHRoaXMuYm91bmRIYW5kbGVHbG9iYWxEcmFnT3ZlciksZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigiZHJhZ2VuZCIsdGhpcy5ib3VuZEhhbmRsZUdsb2JhbERyYWdFbmQpfWhhbmRsZUdsb2JhbERyYWdPdmVyKGhlKXtpZihoZS5wcmV2ZW50RGVmYXVsdCgpLHRoaXMuZHJhZ2dlZEluZGV4PT09LTEpcmV0dXJuO3RoaXMuZHJhZ0N1cnJlbnRZPWhlLmNsaWVudFk7bGV0IHRlPXRoaXMuc2hhZG93Um9vdD8ucXVlcnlTZWxlY3RvcigiLmxpc3QtaXRlbXMiKTtpZighdGUpcmV0dXJuO2xldCB6ZT1BcnJheS5mcm9tKHRlLnF1ZXJ5U2VsZWN0b3JBbGwoIi5saXN0LWl0ZW0iKSksRmU9emVbdGhpcy5kcmFnZ2VkSW5kZXhdO2lmKCFGZSlyZXR1cm47bGV0IFdlPXRoaXMuZHJhZ0N1cnJlbnRZLXRoaXMuZHJhZ1N0YXJ0WTtGZS5zdHlsZS50cmFuc2Zvcm09YHRyYW5zbGF0ZVkoJHtXZX1weClgO2xldCB5ZT10aGlzLm9yaWdpbmFsSXRlbVJlY3RzW3RoaXMuZHJhZ2dlZEluZGV4XTtpZigheWUpcmV0dXJuO2xldCBlZT15ZS50b3AreWUuaGVpZ2h0LzIrV2UsYWU9dGhpcy5kcmFnZ2VkSW5kZXg7Zm9yKGxldCB2ZT0wO3ZlPHplLmxlbmd0aDt2ZSsrKXtpZih2ZT09PXRoaXMuZHJhZ2dlZEluZGV4KWNvbnRpbnVlO2xldCBQZT10aGlzLm9yaWdpbmFsSXRlbVJlY3RzW3ZlXTtpZighUGUpY29udGludWU7bGV0IFZlPVBlLnRvcCtQZS5oZWlnaHQvMjtpZih6ZVt2ZV0uY2xhc3NMaXN0LmNvbnRhaW5zKCJtb3ZlLXVwIik/VmUtPXRoaXMuaXRlbUhlaWdodDp6ZVt2ZV0uY2xhc3NMaXN0LmNvbnRhaW5zKCJtb3ZlLWRvd24iKSYmKFZlKz10aGlzLml0ZW1IZWlnaHQpLGVlPFZlJiZ2ZTx0aGlzLmRyYWdnZWRJbmRleCl7YWU9dmU7YnJlYWt9ZWxzZSBlZT5WZSYmdmU+dGhpcy5kcmFnZ2VkSW5kZXgmJihhZT12ZSl9YWUhPT10aGlzLnRhcmdldEluZGV4JiYodGhpcy50YXJnZXRJbmRleD1hZSx0aGlzLnVwZGF0ZUl0ZW1Qb3NpdGlvbnMoemUpKX11cGRhdGVJdGVtUG9zaXRpb25zKGhlKXtsZXQgdGU9dGhpcy5kcmFnZ2VkSW5kZXgsemU9dGhpcy50YXJnZXRJbmRleCxGZT10aGlzLnNoYWRvd1Jvb3Q/LnF1ZXJ5U2VsZWN0b3IoIi5saXN0LWl0ZW1zIik7RmUmJkZlLnN0eWxlLnNldFByb3BlcnR5KCItLWl0ZW0taGVpZ2h0IixgJHt0aGlzLml0ZW1IZWlnaHR9cHhgKSxoZS5mb3JFYWNoKChXZSx5ZSk9Pnt5ZSE9PXRlJiYoV2UuY2xhc3NMaXN0LnJlbW92ZSgibW92ZS11cCIsIm1vdmUtZG93biIpLFdlLnN0eWxlLnNldFByb3BlcnR5KCItLWl0ZW0taGVpZ2h0IixgJHt0aGlzLml0ZW1IZWlnaHR9cHhgKSx0ZTx6ZT95ZT50ZSYmeWU8PXplJiZXZS5jbGFzc0xpc3QuYWRkKCJtb3ZlLXVwIik6dGU+emUmJnllPj16ZSYmeWU8dGUmJldlLmNsYXNzTGlzdC5hZGQoIm1vdmUtZG93biIpKX0pfWhhbmRsZUdsb2JhbERyYWdFbmQoKXt0aGlzLmJvdW5kSGFuZGxlR2xvYmFsRHJhZ092ZXImJihkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCJkcmFnb3ZlciIsdGhpcy5ib3VuZEhhbmRsZUdsb2JhbERyYWdPdmVyKSx0aGlzLmJvdW5kSGFuZGxlR2xvYmFsRHJhZ092ZXI9bnVsbCksdGhpcy5ib3VuZEhhbmRsZUdsb2JhbERyYWdFbmQmJihkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCJkcmFnZW5kIix0aGlzLmJvdW5kSGFuZGxlR2xvYmFsRHJhZ0VuZCksdGhpcy5ib3VuZEhhbmRsZUdsb2JhbERyYWdFbmQ9bnVsbCk7bGV0IGhlPXRoaXMuc2hhZG93Um9vdD8ucXVlcnlTZWxlY3RvcigiLmxpc3QtaXRlbXMiKSx0ZT1oZT8ucXVlcnlTZWxlY3RvckFsbCgiLmxpc3QtaXRlbSIpLHplPXRlPy5bdGhpcy5kcmFnZ2VkSW5kZXhdO2lmKHRoaXMuZHJhZ2dlZEluZGV4PT09LTF8fHRoaXMudGFyZ2V0SW5kZXg9PT0tMXx8dGhpcy5kcmFnZ2VkSW5kZXg9PT10aGlzLnRhcmdldEluZGV4KXtpZih6ZSYmdGhpcy5kcmFnZ2VkSW5kZXghPT0tMSl7emUuc3R5bGUudHJhbnNpdGlvbj0idHJhbnNmb3JtIDAuMTVzIGVhc2UiLHplLnN0eWxlLnRyYW5zZm9ybT0idHJhbnNsYXRlWSgwKSI7bGV0IHZlPSExLFBlPSgpPT57dmV8fCh2ZT0hMCx6ZS5yZW1vdmVFdmVudExpc3RlbmVyKCJ0cmFuc2l0aW9uZW5kIixQZSksdGhpcy5jbGVhbnVwRHJhZ1N0YXRlKGhlLHRlKSl9O3plLmFkZEV2ZW50TGlzdGVuZXIoInRyYW5zaXRpb25lbmQiLFBlLHtvbmNlOiEwfSksc2V0VGltZW91dChQZSwyMDApfWVsc2UgdGhpcy5jbGVhbnVwRHJhZ1N0YXRlKGhlLHRlKTtyZXR1cm59bGV0IEZlPXRoaXMub3JpZ2luYWxJdGVtUmVjdHNbdGhpcy5kcmFnZ2VkSW5kZXhdLFdlPXRoaXMub3JpZ2luYWxJdGVtUmVjdHNbdGhpcy50YXJnZXRJbmRleF07aWYoIUZlfHwhV2V8fCF6ZSl7dGhpcy5jbGVhbnVwRHJhZ1N0YXRlKGhlLHRlKTtyZXR1cm59bGV0IHllO3RoaXMudGFyZ2V0SW5kZXg+dGhpcy5kcmFnZ2VkSW5kZXg/eWU9V2UuYm90dG9tLUZlLmJvdHRvbTp5ZT1XZS50b3AtRmUudG9wLHplLnN0eWxlLnRyYW5zaXRpb249InRyYW5zZm9ybSAwLjE1cyBlYXNlIix6ZS5zdHlsZS50cmFuc2Zvcm09YHRyYW5zbGF0ZVkoJHt5ZX1weClgO2xldCBlZT0hMSxhZT0oKT0+e2lmKGVlKXJldHVybjtlZT0hMCx6ZS5yZW1vdmVFdmVudExpc3RlbmVyKCJ0cmFuc2l0aW9uZW5kIixhZSksaGU/LmNsYXNzTGlzdC5hZGQoImRyb3BwaW5nIiksaGU/Lm9mZnNldEhlaWdodCx0ZT8uZm9yRWFjaChWZT0+e1ZlLmNsYXNzTGlzdC5yZW1vdmUoIm1vdmUtdXAiLCJtb3ZlLWRvd24iLCJkcmFnZ2luZyIpLFZlLnN0eWxlLnJlbW92ZVByb3BlcnR5KCJ0cmFuc2Zvcm0iKSxWZS5zdHlsZS5yZW1vdmVQcm9wZXJ0eSgidHJhbnNpdGlvbiIpfSk7bGV0IHZlPVsuLi50aGlzLnZhbHVlXSxbUGVdPXZlLnNwbGljZSh0aGlzLmRyYWdnZWRJbmRleCwxKTt2ZS5zcGxpY2UodGhpcy50YXJnZXRJbmRleCwwLFBlKSx0aGlzLnZhbHVlPXZlLHRoaXMuZW1pdENoYW5nZSgpLHRoaXMuZHJhZ2dlZEluZGV4PS0xLHRoaXMuZHJhZ092ZXJJbmRleD0tMSx0aGlzLnRhcmdldEluZGV4PS0xLHRoaXMuZHJhZ1N0YXJ0WT0wLHRoaXMuZHJhZ0N1cnJlbnRZPTAsdGhpcy5vcmlnaW5hbEl0ZW1SZWN0cz1bXSx0aGlzLnVwZGF0ZUNvbXBsZXRlLnRoZW4oKCk9PntsZXQgVmU9dGhpcy5zaGFkb3dSb290Py5xdWVyeVNlbGVjdG9yQWxsKCIubGlzdC1pdGVtIik7VmU/LmZvckVhY2goeHQ9Pnt4dC5zdHlsZS50cmFuc2l0aW9uPSJub25lIn0pLHRoaXMuc2hhZG93Um9vdD8ucXVlcnlTZWxlY3RvcigiLmxpc3QtaXRlbXMiKT8ub2Zmc2V0SGVpZ2h0LHJlcXVlc3RBbmltYXRpb25GcmFtZSgoKT0+e1ZlPy5mb3JFYWNoKHh0PT57eHQuc3R5bGUucmVtb3ZlUHJvcGVydHkoInRyYW5zaXRpb24iKX0pLGhlPy5jbGFzc0xpc3QucmVtb3ZlKCJkcm9wcGluZyIsImlzLWRyYWdnaW5nIil9KX0pfTt6ZS5hZGRFdmVudExpc3RlbmVyKCJ0cmFuc2l0aW9uZW5kIixhZSx7b25jZTohMH0pLHNldFRpbWVvdXQoYWUsMjAwKX1jbGVhbnVwRHJhZ1N0YXRlKGhlLHRlKXtoZT8uY2xhc3NMaXN0LmFkZCgiZHJvcHBpbmciKSxoZT8ub2Zmc2V0SGVpZ2h0LHRlPy5mb3JFYWNoKHplPT57emUuY2xhc3NMaXN0LnJlbW92ZSgibW92ZS11cCIsIm1vdmUtZG93biIsImRyYWdnaW5nIiksemUuc3R5bGUucmVtb3ZlUHJvcGVydHkoInRyYW5zZm9ybSIpLHplLnN0eWxlLnJlbW92ZVByb3BlcnR5KCJ0cmFuc2l0aW9uIil9KSx0aGlzLmRyYWdnZWRJbmRleD0tMSx0aGlzLmRyYWdPdmVySW5kZXg9LTEsdGhpcy50YXJnZXRJbmRleD0tMSx0aGlzLmRyYWdTdGFydFk9MCx0aGlzLmRyYWdDdXJyZW50WT0wLHRoaXMub3JpZ2luYWxJdGVtUmVjdHM9W10sdGhpcy51cGRhdGVDb21wbGV0ZS50aGVuKCgpPT57bGV0IHplPXRoaXMuc2hhZG93Um9vdD8ucXVlcnlTZWxlY3RvckFsbCgiLmxpc3QtaXRlbSIpO3plPy5mb3JFYWNoKEZlPT57RmUuc3R5bGUudHJhbnNpdGlvbj0ibm9uZSJ9KSx0aGlzLnNoYWRvd1Jvb3Q/LnF1ZXJ5U2VsZWN0b3IoIi5saXN0LWl0ZW1zIik/Lm9mZnNldEhlaWdodCxyZXF1ZXN0QW5pbWF0aW9uRnJhbWUoKCk9Pnt6ZT8uZm9yRWFjaChGZT0+e0ZlLnN0eWxlLnJlbW92ZVByb3BlcnR5KCJ0cmFuc2l0aW9uIil9KSxoZT8uY2xhc3NMaXN0LnJlbW92ZSgiZHJvcHBpbmciLCJpcy1kcmFnZ2luZyIpfSl9KX1oYW5kbGVEcmFnRW5kKCl7dGhpcy5oYW5kbGVHbG9iYWxEcmFnRW5kKCl9aGFuZGxlRHJhZ092ZXIoaGUsdGUpeyF0aGlzLnNvcnRhYmxlfHx0aGlzLmRpc2FibGVkfHwoaGUucHJldmVudERlZmF1bHQoKSxoZS5kYXRhVHJhbnNmZXIuZHJvcEVmZmVjdD0ibW92ZSIpfWhhbmRsZURyYWdMZWF2ZSgpe31oYW5kbGVEcm9wKGhlLHRlKXshdGhpcy5zb3J0YWJsZXx8dGhpcy5kaXNhYmxlZHx8aGUucHJldmVudERlZmF1bHQoKX1lbWl0Q2hhbmdlKCl7dGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBDdXN0b21FdmVudCgiY2hhbmdlIix7ZGV0YWlsOnt2YWx1ZTp0aGlzLnZhbHVlfSxidWJibGVzOiEwLGNvbXBvc2VkOiEwfSkpLHRoaXMuY2hhbmdlU3ViamVjdC5uZXh0KHRoaXMpfWdldFZhbHVlKCl7cmV0dXJuIHRoaXMudmFsdWV9c2V0VmFsdWUoaGUpe3RoaXMudmFsdWU9aGV8fFtdfWFzeW5jIHZhbGlkYXRlKCl7cmV0dXJuIHRoaXMucmVxdWlyZWQmJighdGhpcy52YWx1ZXx8dGhpcy52YWx1ZS5sZW5ndGg9PT0wKT8odGhpcy52YWxpZGF0aW9uVGV4dD0iQXQgbGVhc3Qgb25lIGl0ZW0gaXMgcmVxdWlyZWQiLCExKTp0aGlzLm1pbkl0ZW1zJiZ0aGlzLnZhbHVlLmxlbmd0aDx0aGlzLm1pbkl0ZW1zPyh0aGlzLnZhbGlkYXRpb25UZXh0PWBBdCBsZWFzdCAke3RoaXMubWluSXRlbXN9IGl0ZW1zIHJlcXVpcmVkYCwhMSk6KHRoaXMudmFsaWRhdGlvblRleHQ9IiIsITApfXN0YXRpY3tJdChpLGEpfX07cmV0dXJuIF9lPWl9KSgpfSk7dmFyIFZtdD1iKCgpPT57cW10KCl9KTt2YXIgam10PWIoKCk9PntHcSgpfSk7dmFyIFVtdD1iKCgpPT57WXEoKX0pO3ZhciBXbXQ9YigoKT0+e1JxKCl9KTt2YXIgR210PWIoKCk9PntJeCgpfSk7dmFyIFltdCxabXQ9YigoKT0+e3VlKCk7eDEoKTt5VigpO20yKCk7WW10PSgpPT53YAogIDxkZWVzLWRlbW93cmFwcGVyPgogICAgPHN0eWxlPgogICAgICAke1FgCiAgICAgICAgLmRlbW8tY29udGFpbmVyIHsKICAgICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICAgICAgZ2FwOiAyNHB4OwogICAgICAgICAgcGFkZGluZzogMjRweDsKICAgICAgICAgIG1heC13aWR0aDogMTIwMHB4OwogICAgICAgICAgbWFyZ2luOiAwIGF1dG87CiAgICAgICAgfQogICAgICAgIAogICAgICAgIGRlZXMtcGFuZWwgewogICAgICAgICAgbWFyZ2luLWJvdHRvbTogMjRweDsKICAgICAgICB9CiAgICAgICAgCiAgICAgICAgZGVlcy1wYW5lbDpsYXN0LWNoaWxkIHsKICAgICAgICAgIG1hcmdpbi1ib3R0b206IDA7CiAgICAgICAgfQogICAgICAgIAogICAgICAgIC5ncmlkLWxheW91dCB7CiAgICAgICAgICBkaXNwbGF5OiBncmlkOwogICAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAxZnIgMWZyOwogICAgICAgICAgZ2FwOiAxNnB4OwogICAgICAgIH0KICAgICAgICAKICAgICAgICBAbWVkaWEgKG1heC13aWR0aDogNzY4cHgpIHsKICAgICAgICAgIC5ncmlkLWxheW91dCB7CiAgICAgICAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogMWZyOwogICAgICAgICAgfQogICAgICAgIH0KICAgICAgICAKICAgICAgICAub3V0cHV0LXByZXZpZXcgewogICAgICAgICAgbWFyZ2luLXRvcDogMTZweDsKICAgICAgICAgIHBhZGRpbmc6IDE2cHg7CiAgICAgICAgICBiYWNrZ3JvdW5kOiAjZjNmNGY2OwogICAgICAgICAgYm9yZGVyLXJhZGl1czogNHB4OwogICAgICAgICAgZm9udC1zaXplOiAxMnB4OwogICAgICAgICAgY29sb3I6ICMzNzQxNTE7CiAgICAgICAgICB3b3JkLWJyZWFrOiBicmVhay1hbGw7CiAgICAgICAgICBtYXgtaGVpZ2h0OiAyMDBweDsKICAgICAgICAgIG92ZXJmbG93LXk6IGF1dG87CiAgICAgICAgfQogICAgICAgIAogICAgICAgIEBtZWRpYSAocHJlZmVycy1jb2xvci1zY2hlbWU6IGRhcmspIHsKICAgICAgICAgIC5vdXRwdXQtcHJldmlldyB7CiAgICAgICAgICAgIGJhY2tncm91bmQ6ICMyYzJjMmM7CiAgICAgICAgICAgIGNvbG9yOiAjZTRlNGU3OwogICAgICAgICAgfQogICAgICAgIH0KICAgICAgYH0KICAgIDwvc3R5bGU+CiAgICAKICAgIDxkaXYgY2xhc3M9ImRlbW8tY29udGFpbmVyIj4KICAgICAgPGRlZXMtcGFuZWwgLnRpdGxlPSR7IjEuIEJhc2ljIFJpY2ggVGV4dCBFZGl0b3IifSAuc3VidGl0bGU9JHsiQSBmdWxsLWZlYXR1cmVkIHJpY2ggdGV4dCBlZGl0b3Igd2l0aCBmb3JtYXR0aW5nIHRvb2xiYXIifT4KICAgICAgICA8ZGVlcy1pbnB1dC1yaWNodGV4dCAKICAgICAgICAgIC5sYWJlbD0keyJBcnRpY2xlIENvbnRlbnQifSAKICAgICAgICAgIC52YWx1ZT0keyc8aDE+V2VsY29tZSB0byB0aGUgUmljaCBUZXh0IEVkaXRvciE8L2gxPjxwPlRoaXMgaXMgYSBmZWF0dXJlLXJpY2ggZWRpdG9yIGJ1aWx0IHdpdGggVGlwVGFwLiBZb3UgY2FuOjwvcD48dWw+PGxpPjxzdHJvbmc+Rm9ybWF0IHRleHQ8L3N0cm9uZz4gd2l0aCA8ZW0+dmFyaW91czwvZW0+IDx1PnN0eWxlczwvdT48L2xpPjxsaT5DcmVhdGUgZGlmZmVyZW50IGhlYWRpbmcgbGV2ZWxzPC9saT48bGk+QWRkIDxhIGhyZWY9Imh0dHBzOi8vZXhhbXBsZS5jb20iPmxpbmtzPC9hPiB0byBleHRlcm5hbCByZXNvdXJjZXM8L2xpPjxsaT5Xcml0ZSA8Y29kZT5pbmxpbmUgY29kZTwvY29kZT4gb3IgY29kZSBibG9ja3M8L2xpPjwvdWw+PGJsb2NrcXVvdGU+PHA+VXNlIHRoZSB0b29sYmFyIGFib3ZlIHRvIGV4cGxvcmUgYWxsIHRoZSBmb3JtYXR0aW5nIG9wdGlvbnMgYXZhaWxhYmxlITwvcD48L2Jsb2NrcXVvdGU+PHA+U3RhcnQgdHlwaW5nIHRvIHNlZSB0aGUgbWFnaWMgaGFwcGVuLi4uPC9wPid9CiAgICAgICAgICAuZGVzY3JpcHRpb249JHsiVXNlIHRoZSB0b29sYmFyIHRvIGZvcm1hdCB5b3VyIGNvbnRlbnQgd2l0aCBoZWFkaW5ncywgbGlzdHMsIGxpbmtzLCBhbmQgbW9yZSJ9CiAgICAgICAgICAuc2hvd1dvcmRDb3VudD0keyEwfQogICAgICAgID48L2RlZXMtaW5wdXQtcmljaHRleHQ+CiAgICAgIDwvZGVlcy1wYW5lbD4KICAgICAgCiAgICAgIDxkZWVzLXBhbmVsIC50aXRsZT0keyIyLiBXaXRoIFBsYWNlaG9sZGVyIn0gLnN1YnRpdGxlPSR7IkVtcHR5IGVkaXRvciB3aXRoIHBsYWNlaG9sZGVyIHRleHQifT4KICAgICAgICA8ZGVlcy1pbnB1dC1yaWNodGV4dCAKICAgICAgICAgIC5sYWJlbD0keyJCbG9nIFBvc3QifSAKICAgICAgICAgIC5wbGFjZWhvbGRlcj0keyJTdGFydCB3cml0aW5nIHlvdXIgYmxvZyBwb3N0IGhlcmUuLi4ifQogICAgICAgICAgLnNob3dXb3JkQ291bnQ9JHshMH0KICAgICAgICA+PC9kZWVzLWlucHV0LXJpY2h0ZXh0PgogICAgICA8L2RlZXMtcGFuZWw+CiAgICAgIAogICAgICA8ZGVlcy1wYW5lbCAudGl0bGU9JHsiMy4gRGlmZmVyZW50IEhlaWdodHMifSAuc3VidGl0bGU9JHsiRWRpdG9ycyB3aXRoIGRpZmZlcmVudCBtaW5pbXVtIGhlaWdodHMgZm9yIHZhcmlvdXMgdXNlIGNhc2VzIn0+CiAgICAgICAgPGRpdiBjbGFzcz0iZ3JpZC1sYXlvdXQiPgogICAgICAgICAgPGRlZXMtaW5wdXQtcmljaHRleHQgCiAgICAgICAgICAgIC5sYWJlbD0keyJTaG9ydCBOb3RlIn0gCiAgICAgICAgICAgIC5taW5IZWlnaHQ9JHsxNTB9CiAgICAgICAgICAgIC5wbGFjZWhvbGRlcj0keyJRdWljayBub3RlLi4uIn0KICAgICAgICAgICAgLnNob3dXb3JkQ291bnQ9JHshMX0KICAgICAgICAgID48L2RlZXMtaW5wdXQtcmljaHRleHQ+CiAgICAgICAgICAKICAgICAgICAgIDxkZWVzLWlucHV0LXJpY2h0ZXh0IAogICAgICAgICAgICAubGFiZWw9JHsiRXh0ZW5kZWQgQ29udGVudCJ9IAogICAgICAgICAgICAubWluSGVpZ2h0PSR7MzAwfQogICAgICAgICAgICAucGxhY2Vob2xkZXI9JHsiV3JpdGUgeW91ciBleHRlbmRlZCBjb250ZW50IGhlcmUuLi4ifQogICAgICAgICAgICAuc2hvd1dvcmRDb3VudD0keyEwfQogICAgICAgICAgPjwvZGVlcy1pbnB1dC1yaWNodGV4dD4KICAgICAgICA8L2Rpdj4KICAgICAgPC9kZWVzLXBhbmVsPgogICAgICAKICAgICAgPGRlZXMtcGFuZWwgLnRpdGxlPSR7IjQuIENvZGUgRXhhbXBsZXMifSAuc3VidGl0bGU9JHsiRWRpdG9yIHByZS1maWxsZWQgd2l0aCBjb2RlIGV4YW1wbGVzIn0+CiAgICAgICAgPGRlZXMtaW5wdXQtcmljaHRleHQgCiAgICAgICAgICAubGFiZWw9JHsiVGVjaG5pY2FsIERvY3VtZW50YXRpb24ifSAKICAgICAgICAgIC52YWx1ZT0keyc8aDI+SW5zdGFsbGF0aW9uIEd1aWRlPC9oMj48cD5UbyBpbnN0YWxsIHRoZSBwYWNrYWdlLCBydW4gdGhlIGZvbGxvd2luZyBjb21tYW5kOjwvcD48cHJlPjxjb2RlPm5wbSBpbnN0YWxsIEBkZXNpZ24uZXN0YXRlL2RlZXMtY2F0YWxvZzwvY29kZT48L3ByZT48cD5UaGVuIGltcG9ydCB0aGUgY29tcG9uZW50IGluIHlvdXIgVHlwZVNjcmlwdCBmaWxlOjwvcD48cHJlPjxjb2RlPmltcG9ydCB7IERlZXNJbnB1dFJpY2h0ZXh0IH0gZnJvbSAiQGRlc2lnbi5lc3RhdGUvZGVlcy1jYXRhbG9nIjs8L2NvZGU+PC9wcmU+PHA+WW91IGNhbiBub3cgdXNlIHRoZSA8Y29kZT4mbHQ7ZGVlcy1pbnB1dC1yaWNodGV4dCZndDs8L2NvZGU+IGVsZW1lbnQgaW4geW91ciB0ZW1wbGF0ZXMuPC9wPid9CiAgICAgICAgICAubWluSGVpZ2h0PSR7MjUwfQogICAgICAgICAgLnNob3dXb3JkQ291bnQ9JHshMH0KICAgICAgICA+PC9kZWVzLWlucHV0LXJpY2h0ZXh0PgogICAgICA8L2RlZXMtcGFuZWw+CiAgICAgIAogICAgICA8ZGVlcy1wYW5lbCAudGl0bGU9JHsiNS4gRGlzYWJsZWQgU3RhdGUifSAuc3VidGl0bGU9JHsiUmVhZC1vbmx5IHJpY2ggdGV4dCBjb250ZW50In0+CiAgICAgICAgPGRlZXMtaW5wdXQtcmljaHRleHQgCiAgICAgICAgICAubGFiZWw9JHsiUHVibGlzaGVkIEFydGljbGUgKFJlYWQgT25seSkifSAKICAgICAgICAgIC52YWx1ZT0keyc8aDI+VGhlIEZ1dHVyZSBvZiBXZWIgQ29tcG9uZW50czwvaDI+PHA+V2ViIENvbXBvbmVudHMgaGF2ZSByZXZvbHV0aW9uaXplZCBob3cgd2UgYnVpbGQgbW9kZXJuIHdlYiBhcHBsaWNhdGlvbnMuLi48L3A+PGJsb2NrcXVvdGU+PHA+IlRoZSBmdXR1cmUgb2Ygd2ViIGRldmVsb3BtZW50IGxpZXMgaW4gcmV1c2FibGUsIGVuY2Fwc3VsYXRlZCBjb21wb25lbnRzLiI8L3A+PC9ibG9ja3F1b3RlPid9CiAgICAgICAgICAuZGlzYWJsZWQ9JHshMH0KICAgICAgICAgIC5zaG93V29yZENvdW50PSR7ITB9CiAgICAgICAgPjwvZGVlcy1pbnB1dC1yaWNodGV4dD4KICAgICAgPC9kZWVzLXBhbmVsPgogICAgICAKICAgICAgPGRlZXMtcGFuZWwgLnRpdGxlPSR7IjYuIEludGVyYWN0aXZlIERlbW8ifSAuc3VidGl0bGU9JHsiVHlwZSBpbiB0aGUgZWRpdG9yIGJlbG93IGFuZCBzZWUgdGhlIEhUTUwgb3V0cHV0In0+CiAgICAgICAgPGRlZXMtaW5wdXQtcmljaHRleHQgCiAgICAgICAgICBpZD0iaW50ZXJhY3RpdmUtZWRpdG9yIgogICAgICAgICAgLmxhYmVsPSR7IlRyeSBpdCB5b3Vyc2VsZiJ9IAogICAgICAgICAgLnBsYWNlaG9sZGVyPSR7IlR5cGUgc29tZXRoaW5nIGhlcmUuLi4ifQogICAgICAgICAgLnNob3dXb3JkQ291bnQ9JHshMH0KICAgICAgICAgIEBjaGFuZ2U9JHt0PT57bGV0IGU9ZG9jdW1lbnQucXVlcnlTZWxlY3RvcigiI291dHB1dC1wcmV2aWV3Iik7ZSYmKGUudGV4dENvbnRlbnQ9dC5kZXRhaWwudmFsdWUpfX0KICAgICAgICA+PC9kZWVzLWlucHV0LXJpY2h0ZXh0PgogICAgICAgIAogICAgICAgIDxkaXYgY2xhc3M9Im91dHB1dC1wcmV2aWV3IiBpZD0ib3V0cHV0LXByZXZpZXciPgogICAgICAgICAgPGVtPkhUTUwgb3V0cHV0IHdpbGwgYXBwZWFyIGhlcmUuLi48L2VtPgogICAgICAgIDwvZGl2PgogICAgICA8L2RlZXMtcGFuZWw+CiAgICA8L2Rpdj4KICA8L2RlZXMtZGVtb3dyYXBwZXI+CmB9KTt2YXIgWG10LEttdD1iKCgpPT57dWUoKTtfMSgpO1htdD1bLi4uWGUuYmFzZVN0eWxlcyxwLmRlZmF1bHRTdHlsZXMsUWAKICAgICAgOmhvc3QgewogICAgICAgIGRpc3BsYXk6IGJsb2NrOwogICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgICBmb250LWZhbWlseTogSW50ZXIsIC1hcHBsZS1zeXN0ZW0sIEJsaW5rTWFjU3lzdGVtRm9udCwgJ1NlZ29lIFVJJywgUm9ib3RvLCBzYW5zLXNlcmlmOwogICAgICB9CgogICAgICAuaW5wdXQtd3JhcHBlciB7CiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICB9CgogICAgICAubGFiZWwgewogICAgICAgIGRpc3BsYXk6IGJsb2NrOwogICAgICAgIG1hcmdpbi1ib3R0b206IDhweDsKICAgICAgICBmb250LXNpemU6IDE0cHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDsKICAgICAgICBjb2xvcjogJHtwLmJkVGhlbWUoImhzbCgwIDAlIDE1JSkiLCJoc2woMCAwJSA5My45JSkiKX07CiAgICAgIH0KCiAgICAgIC5lZGl0b3ItY29udGFpbmVyIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgICAgbWluLWhlaWdodDogJHtwLmJkVGhlbWUoIjIwMHB4IiwiMjAwcHgiKX07CiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHtwLmJkVGhlbWUoImhzbCgwIDAlIDg5LjglKSIsImhzbCgwIDAlIDE0LjklKSIpfTsKICAgICAgICBib3JkZXItcmFkaXVzOiA2cHg7CiAgICAgICAgYmFja2dyb3VuZDogJHtwLmJkVGhlbWUoImhzbCgwIDAlIDEwMCUpIiwiaHNsKDAgMCUgOSUpIil9OwogICAgICAgIG92ZXJmbG93OiBoaWRkZW47CiAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuMnMgY3ViaWMtYmV6aWVyKDAuNCwgMCwgMC4yLCAxKTsKICAgICAgfQoKICAgICAgLmVkaXRvci1jb250YWluZXI6aG92ZXIgewogICAgICAgIGJvcmRlci1jb2xvcjogJHtwLmJkVGhlbWUoImhzbCgwIDAlIDc5LjglKSIsImhzbCgwIDAlIDIwLjklKSIpfTsKICAgICAgfQoKICAgICAgLmVkaXRvci1jb250YWluZXIuZm9jdXNlZCB7CiAgICAgICAgYm9yZGVyLWNvbG9yOiAke3AuYmRUaGVtZSgiaHNsKDAgMCUgOSUpIiwiaHNsKDAgMCUgOTglKSIpfTsKICAgICAgICBib3gtc2hhZG93OiAwIDAgMCAycHggJHtwLmJkVGhlbWUoImhzbCgwIDAlIDklIC8gMC4wNSkiLCJoc2woMCAwJSA5OCUgLyAwLjA1KSIpfTsKICAgICAgfQoKICAgICAgLmVkaXRvci10b29sYmFyIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGZsZXgtd3JhcDogd3JhcDsKICAgICAgICBnYXA6IDRweDsKICAgICAgICBwYWRkaW5nOiA4cHggMTJweDsKICAgICAgICBiYWNrZ3JvdW5kOiAke3AuYmRUaGVtZSgiaHNsKDIxMCA0MCUgOTYuMSUpIiwiaHNsKDAgMCUgMTQuOSUpIil9OwogICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAke3AuYmRUaGVtZSgiaHNsKDAgMCUgODkuOCUpIiwiaHNsKDAgMCUgMTQuOSUpIil9OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICB9CgogICAgICAudG9vbGJhci1idXR0b24gewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKICAgICAgICB3aWR0aDogMzJweDsKICAgICAgICBoZWlnaHQ6IDMycHg7CiAgICAgICAgYm9yZGVyOiBub25lOwogICAgICAgIGJvcmRlci1yYWRpdXM6IDRweDsKICAgICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDsKICAgICAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7CiAgICAgICAgY29sb3I6ICR7cC5iZFRoZW1lKCJoc2woMjE1LjQgMTYuMyUgNDYuOSUpIiwiaHNsKDIxNSAyMC4yJSA2NS4xJSkiKX07CiAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuMTVzIGVhc2U7CiAgICAgICAgdXNlci1zZWxlY3Q6IG5vbmU7CiAgICAgIH0KCiAgICAgIC50b29sYmFyLWJ1dHRvbiBkZWVzLWljb24gewogICAgICAgIHdpZHRoOiAxNnB4OwogICAgICAgIGhlaWdodDogMTZweDsKICAgICAgfQoKICAgICAgLnRvb2xiYXItYnV0dG9uOmhvdmVyIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke3AuYmRUaGVtZSgiaHNsKDAgMCUgOTUuMSUpIiwiaHNsKDAgMCUgMTQuOSUpIil9OwogICAgICAgIGNvbG9yOiAke3AuYmRUaGVtZSgiaHNsKDAgMCUgOSUpIiwiaHNsKDAgMCUgOTUlKSIpfTsKICAgICAgfQoKICAgICAgLnRvb2xiYXItYnV0dG9uLmFjdGl2ZSB7CiAgICAgICAgYmFja2dyb3VuZDogJHtwLmJkVGhlbWUoImhzbCgwIDAlIDklKSIsImhzbCgwIDAlIDk4JSkiKX07CiAgICAgICAgY29sb3I6ICR7cC5iZFRoZW1lKCJoc2woMCAwJSAxMDAlKSIsImhzbCgwIDAlIDMuOSUpIil9OwogICAgICB9CgogICAgICAudG9vbGJhci1idXR0b246ZGlzYWJsZWQgewogICAgICAgIG9wYWNpdHk6IDAuNTsKICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkOwogICAgICB9CgogICAgICAudG9vbGJhci1kaXZpZGVyIHsKICAgICAgICB3aWR0aDogMXB4OwogICAgICAgIGhlaWdodDogMjRweDsKICAgICAgICBiYWNrZ3JvdW5kOiAke3AuYmRUaGVtZSgiaHNsKDAgMCUgODkuOCUpIiwiaHNsKDAgMCUgMTQuOSUpIil9OwogICAgICAgIG1hcmdpbjogMCA0cHg7CiAgICAgIH0KCiAgICAgIC5lZGl0b3ItY29udGVudCB7CiAgICAgICAgZmxleDogMTsKICAgICAgICBwYWRkaW5nOiAxNnB4OwogICAgICAgIG92ZXJmbG93LXk6IGF1dG87CiAgICAgICAgbWluLWhlaWdodDogdmFyKC0tbWluLWhlaWdodCwgMjAwcHgpOwogICAgICB9CgogICAgICAuZWRpdG9yLWNvbnRlbnQgLlByb3NlTWlycm9yIHsKICAgICAgICBvdXRsaW5lOiBub25lOwogICAgICAgIGxpbmUtaGVpZ2h0OiAxLjY7CiAgICAgICAgY29sb3I6ICR7cC5iZFRoZW1lKCJoc2woMCAwJSAzLjklKSIsImhzbCgwIDAlIDk4JSkiKX07CiAgICAgICAgbWluLWhlaWdodDogMTAwJTsKICAgICAgfQoKICAgICAgLmVkaXRvci1jb250ZW50IC5Qcm9zZU1pcnJvciBwIHsKICAgICAgICBtYXJnaW46IDAuNWVtIDA7CiAgICAgIH0KCiAgICAgIC5lZGl0b3ItY29udGVudCAuUHJvc2VNaXJyb3IgcDpmaXJzdC1jaGlsZCB7CiAgICAgICAgbWFyZ2luLXRvcDogMDsKICAgICAgfQoKICAgICAgLmVkaXRvci1jb250ZW50IC5Qcm9zZU1pcnJvciBwOmxhc3QtY2hpbGQgewogICAgICAgIG1hcmdpbi1ib3R0b206IDA7CiAgICAgIH0KCiAgICAgIC5lZGl0b3ItY29udGVudCAuUHJvc2VNaXJyb3IgaDEgewogICAgICAgIGZvbnQtc2l6ZTogMmVtOwogICAgICAgIGZvbnQtd2VpZ2h0OiBib2xkOwogICAgICAgIG1hcmdpbjogMWVtIDAgMC41ZW0gMDsKICAgICAgICBsaW5lLWhlaWdodDogMS4yOwogICAgICB9CgogICAgICAuZWRpdG9yLWNvbnRlbnQgLlByb3NlTWlycm9yIGgyIHsKICAgICAgICBmb250LXNpemU6IDEuNWVtOwogICAgICAgIGZvbnQtd2VpZ2h0OiBib2xkOwogICAgICAgIG1hcmdpbjogMWVtIDAgMC41ZW0gMDsKICAgICAgICBsaW5lLWhlaWdodDogMS4zOwogICAgICB9CgogICAgICAuZWRpdG9yLWNvbnRlbnQgLlByb3NlTWlycm9yIGgzIHsKICAgICAgICBmb250LXNpemU6IDEuMjVlbTsKICAgICAgICBmb250LXdlaWdodDogYm9sZDsKICAgICAgICBtYXJnaW46IDFlbSAwIDAuNWVtIDA7CiAgICAgICAgbGluZS1oZWlnaHQ6IDEuNDsKICAgICAgfQoKICAgICAgLmVkaXRvci1jb250ZW50IC5Qcm9zZU1pcnJvciB1bCwKICAgICAgLmVkaXRvci1jb250ZW50IC5Qcm9zZU1pcnJvciBvbCB7CiAgICAgICAgcGFkZGluZy1sZWZ0OiAxLjVlbTsKICAgICAgICBtYXJnaW46IDAuNWVtIDA7CiAgICAgIH0KCiAgICAgIC5lZGl0b3ItY29udGVudCAuUHJvc2VNaXJyb3IgbGkgewogICAgICAgIG1hcmdpbjogMC4yNWVtIDA7CiAgICAgIH0KCiAgICAgIC5lZGl0b3ItY29udGVudCAuUHJvc2VNaXJyb3IgYmxvY2txdW90ZSB7CiAgICAgICAgYm9yZGVyLWxlZnQ6IDRweCBzb2xpZCAke3AuYmRUaGVtZSgiaHNsKDAgMCUgODkuOCUpIiwiaHNsKDAgMCUgMTQuOSUpIil9OwogICAgICAgIG1hcmdpbjogMWVtIDA7CiAgICAgICAgcGFkZGluZy1sZWZ0OiAxZW07CiAgICAgICAgY29sb3I6ICR7cC5iZFRoZW1lKCJoc2woMjE1LjQgMTYuMyUgNDYuOSUpIiwiaHNsKDIxNSAyMC4yJSA2NS4xJSkiKX07CiAgICAgICAgZm9udC1zdHlsZTogaXRhbGljOwogICAgICB9CgogICAgICAuZWRpdG9yLWNvbnRlbnQgLlByb3NlTWlycm9yIGNvZGUgewogICAgICAgIGJhY2tncm91bmQ6ICR7cC5iZFRoZW1lKCJoc2woMCAwJSA5NS4xJSkiLCJoc2woMCAwJSAxNC45JSkiKX07CiAgICAgICAgYm9yZGVyLXJhZGl1czogM3B4OwogICAgICAgIHBhZGRpbmc6IDAuMmVtIDAuNGVtOwogICAgICAgIGZvbnQtZmFtaWx5OiAnSW50ZWwgT25lIE1vbm8nLCAnRmlyYSBDb2RlJywgJ1NGIE1vbm8nLCBNb25hY28sICdDYXNjYWRpYSBDb2RlJywgJ1JvYm90byBNb25vJywgQ29uc29sYXMsICdDb3VyaWVyIE5ldycsIG1vbm9zcGFjZTsKICAgICAgICBmb250LXNpemU6IDAuOWVtOwogICAgICAgIGNvbG9yOiAke3AuYmRUaGVtZSgiaHNsKDAgMCUgMTUlKSIsImhzbCgwIDAlIDkzLjklKSIpfTsKICAgICAgfQoKICAgICAgLmVkaXRvci1jb250ZW50IC5Qcm9zZU1pcnJvciBwcmUgewogICAgICAgIGJhY2tncm91bmQ6ICR7cC5iZFRoZW1lKCJoc2woMCAwJSAzLjklKSIsImhzbCgwIDAlIDk4JSkiKX07CiAgICAgICAgY29sb3I6ICR7cC5iZFRoZW1lKCJoc2woMCAwJSA5OCUpIiwiaHNsKDAgMCUgMy45JSkiKX07CiAgICAgICAgYm9yZGVyLXJhZGl1czogNnB4OwogICAgICAgIHBhZGRpbmc6IDFlbTsKICAgICAgICBtYXJnaW46IDFlbSAwOwogICAgICAgIG92ZXJmbG93LXg6IGF1dG87CiAgICAgIH0KCiAgICAgIC5lZGl0b3ItY29udGVudCAuUHJvc2VNaXJyb3IgcHJlIGNvZGUgewogICAgICAgIGJhY2tncm91bmQ6IG5vbmU7CiAgICAgICAgY29sb3I6IGluaGVyaXQ7CiAgICAgICAgcGFkZGluZzogMDsKICAgICAgICBib3JkZXItcmFkaXVzOiAwOwogICAgICB9CgogICAgICAuZWRpdG9yLWNvbnRlbnQgLlByb3NlTWlycm9yIGEgewogICAgICAgIGNvbG9yOiAke3AuYmRUaGVtZSgiaHNsKDIyMi4yIDQ3LjQlIDUxLjIlKSIsImhzbCgyMTcuMiA5MS4yJSA1OS44JSkiKX07CiAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7CiAgICAgICAgY3Vyc29yOiBwb2ludGVyOwogICAgICB9CgogICAgICAuZWRpdG9yLWNvbnRlbnQgLlByb3NlTWlycm9yIGE6aG92ZXIgewogICAgICAgIGNvbG9yOiAke3AuYmRUaGVtZSgiaHNsKDIyMi4yIDQ3LjQlIDQxLjIlKSIsImhzbCgyMTcuMiA5MS4yJSA2OS44JSkiKX07CiAgICAgIH0KCiAgICAgIC5lZGl0b3ItZm9vdGVyIHsKICAgICAgICBwYWRkaW5nOiA4cHggMTJweDsKICAgICAgICBiYWNrZ3JvdW5kOiAke3AuYmRUaGVtZSgiaHNsKDIxMCA0MCUgOTYuMSUpIiwiaHNsKDAgMCUgMTQuOSUpIil9OwogICAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAke3AuYmRUaGVtZSgiaHNsKDAgMCUgODkuOCUpIiwiaHNsKDAgMCUgMTQuOSUpIil9OwogICAgICAgIGZvbnQtc2l6ZTogMTJweDsKICAgICAgICBjb2xvcjogJHtwLmJkVGhlbWUoImhzbCgyMTUuNCAxNi4zJSA0Ni45JSkiLCJoc2woMjE1IDIwLjIlIDY1LjElKSIpfTsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICB9CgogICAgICAud29yZC1jb3VudCB7CiAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDsKICAgICAgfQoKICAgICAgLmxpbmstaW5wdXQgewogICAgICAgIGRpc3BsYXk6IG5vbmU7CiAgICAgICAgcG9zaXRpb246IGFic29sdXRlOwogICAgICAgIHRvcDogMTAwJTsKICAgICAgICBsZWZ0OiAwOwogICAgICAgIHJpZ2h0OiAwOwogICAgICAgIGJhY2tncm91bmQ6ICR7cC5iZFRoZW1lKCJoc2woMCAwJSAxMDAlKSIsImhzbCgwIDAlIDklKSIpfTsKICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAke3AuYmRUaGVtZSgiaHNsKDAgMCUgODkuOCUpIiwiaHNsKDAgMCUgMTQuOSUpIil9OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDZweDsKICAgICAgICBib3gtc2hhZG93OiAwIDRweCA2cHggLTFweCByZ2JhKDAsIDAsIDAsIDAuMSk7CiAgICAgICAgcGFkZGluZzogMTJweDsKICAgICAgICB6LWluZGV4OiAxMDAwOwogICAgICB9CgogICAgICAubGluay1pbnB1dC5zaG93IHsKICAgICAgICBkaXNwbGF5OiBibG9jazsKICAgICAgfQoKICAgICAgLmxpbmstaW5wdXQgaW5wdXQgewogICAgICAgIHdpZHRoOiAxMDAlOwogICAgICAgIHBhZGRpbmc6IDhweCAxMnB4OwogICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICR7cC5iZFRoZW1lKCJoc2woMCAwJSA4OS44JSkiLCJoc2woMCAwJSAxNC45JSkiKX07CiAgICAgICAgYm9yZGVyLXJhZGl1czogNnB4OwogICAgICAgIG91dGxpbmU6IG5vbmU7CiAgICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgICAgIGJhY2tncm91bmQ6ICR7cC5iZFRoZW1lKCJoc2woMCAwJSAxMDAlKSIsImhzbCgwIDAlIDklKSIpfTsKICAgICAgICBjb2xvcjogJHtwLmJkVGhlbWUoImhzbCgwIDAlIDMuOSUpIiwiaHNsKDAgMCUgOTglKSIpfTsKICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC4ycyBjdWJpYy1iZXppZXIoMC40LCAwLCAwLjIsIDEpOwogICAgICB9CgogICAgICAubGluay1pbnB1dCBpbnB1dDpmb2N1cyB7CiAgICAgICAgYm9yZGVyLWNvbG9yOiAke3AuYmRUaGVtZSgiaHNsKDAgMCUgOSUpIiwiaHNsKDAgMCUgOTglKSIpfTsKICAgICAgICBib3gtc2hhZG93OiAwIDAgMCAycHggJHtwLmJkVGhlbWUoImhzbCgwIDAlIDklIC8gMC4wNSkiLCJoc2woMCAwJSA5OCUgLyAwLjA1KSIpfTsKICAgICAgfQoKICAgICAgLmxpbmstaW5wdXQtYnV0dG9ucyB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBnYXA6IDhweDsKICAgICAgICBtYXJnaW4tdG9wOiA4cHg7CiAgICAgIH0KCiAgICAgIC5saW5rLWlucHV0LWJ1dHRvbnMgYnV0dG9uIHsKICAgICAgICBwYWRkaW5nOiA2cHggMTJweDsKICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAke3AuYmRUaGVtZSgiaHNsKDAgMCUgODkuOCUpIiwiaHNsKDAgMCUgMTQuOSUpIil9OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDRweDsKICAgICAgICBiYWNrZ3JvdW5kOiAke3AuYmRUaGVtZSgiaHNsKDAgMCUgMTAwJSkiLCJoc2woMCAwJSA5JSkiKX07CiAgICAgICAgY3Vyc29yOiBwb2ludGVyOwogICAgICAgIGZvbnQtc2l6ZTogMTJweDsKICAgICAgICBjb2xvcjogJHtwLmJkVGhlbWUoImhzbCgwIDAlIDQ1LjElKSIsImhzbCgwIDAlIDYzLjklKSIpfTsKICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC4xNXMgZWFzZTsKICAgICAgICBmb250LXdlaWdodDogNTAwOwogICAgICB9CgogICAgICAubGluay1pbnB1dC1idXR0b25zIGJ1dHRvbjpob3ZlciB7CiAgICAgICAgYmFja2dyb3VuZDogJHtwLmJkVGhlbWUoImhzbCgwIDAlIDk1LjElKSIsImhzbCgwIDAlIDE0LjklKSIpfTsKICAgICAgICBjb2xvcjogJHtwLmJkVGhlbWUoImhzbCgwIDAlIDklKSIsImhzbCgwIDAlIDk1JSkiKX07CiAgICAgIH0KCiAgICAgIC5saW5rLWlucHV0LWJ1dHRvbnMgYnV0dG9uLnByaW1hcnkgewogICAgICAgIGJhY2tncm91bmQ6ICR7cC5iZFRoZW1lKCJoc2woMCAwJSA5JSkiLCJoc2woMCAwJSA5OCUpIil9OwogICAgICAgIGNvbG9yOiAke3AuYmRUaGVtZSgiaHNsKDAgMCUgMTAwJSkiLCJoc2woMCAwJSAzLjklKSIpfTsKICAgICAgICBib3JkZXItY29sb3I6ICR7cC5iZFRoZW1lKCJoc2woMCAwJSA5JSkiLCJoc2woMCAwJSA5OCUpIil9OwogICAgICB9CgogICAgICAubGluay1pbnB1dC1idXR0b25zIGJ1dHRvbi5wcmltYXJ5OmhvdmVyIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke3AuYmRUaGVtZSgiaHNsKDAgMCUgMTUlKSIsImhzbCgwIDAlIDkzLjklKSIpfTsKICAgICAgICBib3JkZXItY29sb3I6ICR7cC5iZFRoZW1lKCJoc2woMCAwJSAxNSUpIiwiaHNsKDAgMCUgOTMuOSUpIil9OwogICAgICB9CgogICAgICAuZGVzY3JpcHRpb24gewogICAgICAgIG1hcmdpbi10b3A6IDhweDsKICAgICAgICBmb250LXNpemU6IDEycHg7CiAgICAgICAgY29sb3I6ICR7cC5iZFRoZW1lKCJoc2woMjE1LjQgMTYuMyUgNDYuOSUpIiwiaHNsKDIxNSAyMC4yJSA2NS4xJSkiKX07CiAgICAgICAgbGluZS1oZWlnaHQ6IDEuNDsKICAgICAgfQoKICAgICAgOmhvc3QoW2Rpc2FibGVkXSkgLmVkaXRvci1jb250YWluZXIgewogICAgICAgIG9wYWNpdHk6IDAuNjsKICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkOwogICAgICB9CgogICAgICA6aG9zdChbZGlzYWJsZWRdKSAudG9vbGJhci1idXR0b24sCiAgICAgIDpob3N0KFtkaXNhYmxlZF0pIC5lZGl0b3ItY29udGVudCB7CiAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7CiAgICAgIH0KICAgIGBdfSk7dmFyIFFtdCxKbXQ9YigoKT0+e3VlKCk7UW10PXQ9PndgCiAgICAgICAgPGRpdiBjbGFzcz0iaW5wdXQtd3JhcHBlciI+CiAgICAgICAgICAke3QubGFiZWw/d2A8bGFiZWwgY2xhc3M9ImxhYmVsIj4ke3QubGFiZWx9PC9sYWJlbD5gOiIifQogICAgICAgICAgPGRpdiBjbGFzcz0iZWRpdG9yLWNvbnRhaW5lciAke3QuZWRpdG9yPy5pc0ZvY3VzZWQ/ImZvY3VzZWQiOiIifSIgc3R5bGU9Ii0tbWluLWhlaWdodDogJHt0Lm1pbkhlaWdodH1weCI+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9ImVkaXRvci10b29sYmFyIj4KICAgICAgICAgICAgICAke3QucmVuZGVyVG9vbGJhcigpfQogICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImxpbmstaW5wdXQgJHt0LnNob3dMaW5rSW5wdXQ/InNob3ciOiIifSI+CiAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT0idXJsIiBwbGFjZWhvbGRlcj0iRW50ZXIgVVJMLi4uIiBAa2V5ZG93bj0ke3QuaGFuZGxlTGlua0lucHV0S2V5ZG93bn0gLz4KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImxpbmstaW5wdXQtYnV0dG9ucyI+CiAgICAgICAgICAgICAgICAgIDxidXR0b24gY2xhc3M9InByaW1hcnkiIEBjbGljaz0ke3Quc2F2ZUxpbmt9PlNhdmU8L2J1dHRvbj4KICAgICAgICAgICAgICAgICAgPGJ1dHRvbiBAY2xpY2s9JHt0LnJlbW92ZUxpbmt9PlJlbW92ZTwvYnV0dG9uPgogICAgICAgICAgICAgICAgICA8YnV0dG9uIEBjbGljaz0ke3QuaGlkZUxpbmtJbnB1dH0+Q2FuY2VsPC9idXR0b24+CiAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9ImVkaXRvci1jb250ZW50Ij48L2Rpdj4KICAgICAgICAgICAgJHt0LnNob3dXb3JkQ291bnQ/d2AKICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iZWRpdG9yLWZvb3RlciI+CiAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9IndvcmQtY291bnQiPiR7dC53b3JkQ291bnR9IHdvcmQke3Qud29yZENvdW50IT09MT8icyI6IiJ9PC9zcGFuPgogICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgIGA6IiJ9CiAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICR7dC5kZXNjcmlwdGlvbj93YDxkaXYgY2xhc3M9ImRlc2NyaXB0aW9uIj4ke3QuZGVzY3JpcHRpb259PC9kaXY+YDoiIn0KICAgICAgICA8L2Rpdj4KICAgICAgYH0pO3ZhciBuNCxHYSxlZ3QseVY9YigoKT0+e18xKCk7Wm10KCk7S210KCk7Sm10KCk7RHQoKTt1ZSgpO3VvKCk7bjQ9ZnVuY3Rpb24odCxlLGEsaSxyLHMpe2Z1bmN0aW9uIG4oeCl7aWYoeCE9PXZvaWQgMCYmdHlwZW9mIHghPSJmdW5jdGlvbiIpdGhyb3cgbmV3IFR5cGVFcnJvcigiRnVuY3Rpb24gZXhwZWN0ZWQiKTtyZXR1cm4geH1mb3IodmFyIG89aS5raW5kLGQ9bz09PSJnZXR0ZXIiPyJnZXQiOm89PT0ic2V0dGVyIj8ic2V0IjoidmFsdWUiLGM9IWUmJnQ/aS5zdGF0aWM/dDp0LnByb3RvdHlwZTpudWxsLGg9ZXx8KGM/T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihjLGkubmFtZSk6e30pLGwsZj0hMSxnPWEubGVuZ3RoLTE7Zz49MDtnLS0pe3ZhciB5PXt9O2Zvcih2YXIgdiBpbiBpKXlbdl09dj09PSJhY2Nlc3MiP3t9Omlbdl07Zm9yKHZhciB2IGluIGkuYWNjZXNzKXkuYWNjZXNzW3ZdPWkuYWNjZXNzW3ZdO3kuYWRkSW5pdGlhbGl6ZXI9ZnVuY3Rpb24oeCl7aWYoZil0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgYWRkIGluaXRpYWxpemVycyBhZnRlciBkZWNvcmF0aW9uIGhhcyBjb21wbGV0ZWQiKTtzLnB1c2gobih4fHxudWxsKSl9O3ZhciBtPSgwLGFbZ10pKG89PT0iYWNjZXNzb3IiP3tnZXQ6aC5nZXQsc2V0Omguc2V0fTpoW2RdLHkpO2lmKG89PT0iYWNjZXNzb3IiKXtpZihtPT09dm9pZCAwKWNvbnRpbnVlO2lmKG09PT1udWxsfHx0eXBlb2YgbSE9Im9iamVjdCIpdGhyb3cgbmV3IFR5cGVFcnJvcigiT2JqZWN0IGV4cGVjdGVkIik7KGw9bihtLmdldCkpJiYoaC5nZXQ9bCksKGw9bihtLnNldCkpJiYoaC5zZXQ9bCksKGw9bihtLmluaXQpKSYmci51bnNoaWZ0KGwpfWVsc2UobD1uKG0pKSYmKG89PT0iZmllbGQiP3IudW5zaGlmdChsKTpoW2RdPWwpfWMmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShjLGkubmFtZSxoKSxmPSEwfSxHYT1mdW5jdGlvbih0LGUsYSl7Zm9yKHZhciBpPWFyZ3VtZW50cy5sZW5ndGg+MixyPTA7cjxlLmxlbmd0aDtyKyspYT1pP2Vbcl0uY2FsbCh0LGEpOmVbcl0uY2FsbCh0KTtyZXR1cm4gaT9hOnZvaWQgMH0sZWd0PSgoKT0+e2xldCB0PVtwZSgiZGVlcy1pbnB1dC1yaWNodGV4dCIpXSxlLGE9W10saSxyPVhlLHMsbj1bXSxvPVtdLGQsYz1bXSxoPVtdLGwsZj1bXSxnPVtdLHksdj1bXSxtPVtdLHgsTT1bXSxTPVtdLEYsXz1bXSxrPVtdO3ZhciBOPWNsYXNzIGV4dGVuZHMgcntzdGF0aWN7aT10aGlzfXN0YXRpY3tsZXQgTD10eXBlb2YgU3ltYm9sPT0iZnVuY3Rpb24iJiZTeW1ib2wubWV0YWRhdGE/T2JqZWN0LmNyZWF0ZShyW1N5bWJvbC5tZXRhZGF0YV0/P251bGwpOnZvaWQgMDtzPVtJKHt0eXBlOlN0cmluZyxyZWZsZWN0OiEwfSldLGQ9W0koe3R5cGU6U3RyaW5nfSldLGw9W0koe3R5cGU6Qm9vbGVhbn0pXSx5PVtJKHt0eXBlOk51bWJlcn0pXSx4PVtKKCldLEY9W0ooKV0sbjQodGhpcyxudWxsLHMse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJ2YWx1ZSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6QT0+InZhbHVlImluIEEsZ2V0OkE9PkEudmFsdWUsc2V0OihBLHEpPT57QS52YWx1ZT1xfX0sbWV0YWRhdGE6TH0sbixvKSxuNCh0aGlzLG51bGwsZCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InBsYWNlaG9sZGVyIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpBPT4icGxhY2Vob2xkZXIiaW4gQSxnZXQ6QT0+QS5wbGFjZWhvbGRlcixzZXQ6KEEscSk9PntBLnBsYWNlaG9sZGVyPXF9fSxtZXRhZGF0YTpMfSxjLGgpLG40KHRoaXMsbnVsbCxsLHtraW5kOiJhY2Nlc3NvciIsbmFtZToic2hvd1dvcmRDb3VudCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6QT0+InNob3dXb3JkQ291bnQiaW4gQSxnZXQ6QT0+QS5zaG93V29yZENvdW50LHNldDooQSxxKT0+e0Euc2hvd1dvcmRDb3VudD1xfX0sbWV0YWRhdGE6TH0sZixnKSxuNCh0aGlzLG51bGwseSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6Im1pbkhlaWdodCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6QT0+Im1pbkhlaWdodCJpbiBBLGdldDpBPT5BLm1pbkhlaWdodCxzZXQ6KEEscSk9PntBLm1pbkhlaWdodD1xfX0sbWV0YWRhdGE6TH0sdixtKSxuNCh0aGlzLG51bGwseCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InNob3dMaW5rSW5wdXQiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOkE9PiJzaG93TGlua0lucHV0ImluIEEsZ2V0OkE9PkEuc2hvd0xpbmtJbnB1dCxzZXQ6KEEscSk9PntBLnNob3dMaW5rSW5wdXQ9cX19LG1ldGFkYXRhOkx9LE0sUyksbjQodGhpcyxudWxsLEYse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJ3b3JkQ291bnQiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOkE9PiJ3b3JkQ291bnQiaW4gQSxnZXQ6QT0+QS53b3JkQ291bnQsc2V0OihBLHEpPT57QS53b3JkQ291bnQ9cX19LG1ldGFkYXRhOkx9LF8sayksbjQobnVsbCxlPXt2YWx1ZTppfSx0LHtraW5kOiJjbGFzcyIsbmFtZTppLm5hbWUsbWV0YWRhdGE6TH0sbnVsbCxhKSxOPWk9ZS52YWx1ZSxMJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoaSxTeW1ib2wubWV0YWRhdGEse2VudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwLHZhbHVlOkx9KX1zdGF0aWMgZGVtbz1ZbXQ7c3RhdGljIGRlbW9Hcm91cHM9WyJJbnB1dCJdOyNlPUdhKHRoaXMsbiwiIik7Z2V0IHZhbHVlKCl7cmV0dXJuIHRoaXMuI2V9c2V0IHZhbHVlKEwpe3RoaXMuI2U9TH0jdD0oR2EodGhpcyxvKSxHYSh0aGlzLGMsIiIpKTtnZXQgcGxhY2Vob2xkZXIoKXtyZXR1cm4gdGhpcy4jdH1zZXQgcGxhY2Vob2xkZXIoTCl7dGhpcy4jdD1MfSNhPShHYSh0aGlzLGgpLEdhKHRoaXMsZiwhMCkpO2dldCBzaG93V29yZENvdW50KCl7cmV0dXJuIHRoaXMuI2F9c2V0IHNob3dXb3JkQ291bnQoTCl7dGhpcy4jYT1MfSNpPShHYSh0aGlzLGcpLEdhKHRoaXMsdiwyMDApKTtnZXQgbWluSGVpZ2h0KCl7cmV0dXJuIHRoaXMuI2l9c2V0IG1pbkhlaWdodChMKXt0aGlzLiNpPUx9I3I9KEdhKHRoaXMsbSksR2EodGhpcyxNLCExKSk7Z2V0IHNob3dMaW5rSW5wdXQoKXtyZXR1cm4gdGhpcy4jcn1zZXQgc2hvd0xpbmtJbnB1dChMKXt0aGlzLiNyPUx9I3M9KEdhKHRoaXMsUyksR2EodGhpcyxfLDApKTtnZXQgd29yZENvdW50KCl7cmV0dXJuIHRoaXMuI3N9c2V0IHdvcmRDb3VudChMKXt0aGlzLiNzPUx9ZWRpdG9yRWxlbWVudD1HYSh0aGlzLGspO2xpbmtJbnB1dEVsZW1lbnQ7dGlwdGFwQnVuZGxlPW51bGw7ZWRpdG9yO3N0YXRpYyBzdHlsZXM9WG10O3JlbmRlcigpe3JldHVybiBRbXQodGhpcyl9cmVuZGVyVG9vbGJhcigpe2xldCBMPXRoaXMuZ2V0VG9vbGJhckJ1dHRvbnMoKTtyZXR1cm4gd2AKICAgICAgJHtMLm1hcChBPT5BLmlzRGl2aWRlcj93YDxkaXYgY2xhc3M9InRvb2xiYXItZGl2aWRlciI+PC9kaXY+YDp3YAogICAgICAgICAgPGJ1dHRvbgogICAgICAgICAgICBjbGFzcz0idG9vbGJhci1idXR0b24gJHtBLmlzQWN0aXZlPy4oKT8iYWN0aXZlIjoiIn0iCiAgICAgICAgICAgIEBjbGljaz0ke0EuYWN0aW9ufQogICAgICAgICAgICB0aXRsZT0ke0EudGl0bGV9CiAgICAgICAgICAgID9kaXNhYmxlZD0ke3RoaXMuZGlzYWJsZWR8fCF0aGlzLmVkaXRvcn0KICAgICAgICAgID4KICAgICAgICAgICAgPGRlZXMtaWNvbiAuaWNvbj0ke0EuaWNvbn0+PC9kZWVzLWljb24+CiAgICAgICAgICA8L2J1dHRvbj4KICAgICAgICBgKX0KICAgIGB9Z2V0VG9vbGJhckJ1dHRvbnMoKXtyZXR1cm4gdGhpcy5lZGl0b3I/W3tuYW1lOiJib2xkIixpY29uOiJsdWNpZGU6Ym9sZCIsdGl0bGU6IkJvbGQgKEN0cmwrQikiLGFjdGlvbjooKT0+dGhpcy5lZGl0b3IuY2hhaW4oKS5mb2N1cygpLnRvZ2dsZUJvbGQoKS5ydW4oKSxpc0FjdGl2ZTooKT0+dGhpcy5lZGl0b3IuaXNBY3RpdmUoImJvbGQiKX0se25hbWU6Iml0YWxpYyIsaWNvbjoibHVjaWRlOml0YWxpYyIsdGl0bGU6Ikl0YWxpYyAoQ3RybCtJKSIsYWN0aW9uOigpPT50aGlzLmVkaXRvci5jaGFpbigpLmZvY3VzKCkudG9nZ2xlSXRhbGljKCkucnVuKCksaXNBY3RpdmU6KCk9PnRoaXMuZWRpdG9yLmlzQWN0aXZlKCJpdGFsaWMiKX0se25hbWU6InVuZGVybGluZSIsaWNvbjoibHVjaWRlOnVuZGVybGluZSIsdGl0bGU6IlVuZGVybGluZSAoQ3RybCtVKSIsYWN0aW9uOigpPT50aGlzLmVkaXRvci5jaGFpbigpLmZvY3VzKCkudG9nZ2xlVW5kZXJsaW5lKCkucnVuKCksaXNBY3RpdmU6KCk9PnRoaXMuZWRpdG9yLmlzQWN0aXZlKCJ1bmRlcmxpbmUiKX0se25hbWU6InN0cmlrZSIsaWNvbjoibHVjaWRlOnN0cmlrZXRocm91Z2giLHRpdGxlOiJTdHJpa2V0aHJvdWdoIixhY3Rpb246KCk9PnRoaXMuZWRpdG9yLmNoYWluKCkuZm9jdXMoKS50b2dnbGVTdHJpa2UoKS5ydW4oKSxpc0FjdGl2ZTooKT0+dGhpcy5lZGl0b3IuaXNBY3RpdmUoInN0cmlrZSIpfSx7bmFtZToiZGl2aWRlcjEiLHRpdGxlOiIiLGlzRGl2aWRlcjohMH0se25hbWU6ImgxIixpY29uOiJsdWNpZGU6aGVhZGluZzEiLHRpdGxlOiJIZWFkaW5nIDEiLGFjdGlvbjooKT0+dGhpcy5lZGl0b3IuY2hhaW4oKS5mb2N1cygpLnRvZ2dsZUhlYWRpbmcoe2xldmVsOjF9KS5ydW4oKSxpc0FjdGl2ZTooKT0+dGhpcy5lZGl0b3IuaXNBY3RpdmUoImhlYWRpbmciLHtsZXZlbDoxfSl9LHtuYW1lOiJoMiIsaWNvbjoibHVjaWRlOmhlYWRpbmcyIix0aXRsZToiSGVhZGluZyAyIixhY3Rpb246KCk9PnRoaXMuZWRpdG9yLmNoYWluKCkuZm9jdXMoKS50b2dnbGVIZWFkaW5nKHtsZXZlbDoyfSkucnVuKCksaXNBY3RpdmU6KCk9PnRoaXMuZWRpdG9yLmlzQWN0aXZlKCJoZWFkaW5nIix7bGV2ZWw6Mn0pfSx7bmFtZToiaDMiLGljb246Imx1Y2lkZTpoZWFkaW5nMyIsdGl0bGU6IkhlYWRpbmcgMyIsYWN0aW9uOigpPT50aGlzLmVkaXRvci5jaGFpbigpLmZvY3VzKCkudG9nZ2xlSGVhZGluZyh7bGV2ZWw6M30pLnJ1bigpLGlzQWN0aXZlOigpPT50aGlzLmVkaXRvci5pc0FjdGl2ZSgiaGVhZGluZyIse2xldmVsOjN9KX0se25hbWU6ImRpdmlkZXIyIix0aXRsZToiIixpc0RpdmlkZXI6ITB9LHtuYW1lOiJidWxsZXRMaXN0IixpY29uOiJsdWNpZGU6bGlzdCIsdGl0bGU6IkJ1bGxldCBMaXN0IixhY3Rpb246KCk9PnRoaXMuZWRpdG9yLmNoYWluKCkuZm9jdXMoKS50b2dnbGVCdWxsZXRMaXN0KCkucnVuKCksaXNBY3RpdmU6KCk9PnRoaXMuZWRpdG9yLmlzQWN0aXZlKCJidWxsZXRMaXN0Iil9LHtuYW1lOiJvcmRlcmVkTGlzdCIsaWNvbjoibHVjaWRlOmxpc3RPcmRlcmVkIix0aXRsZToiTnVtYmVyZWQgTGlzdCIsYWN0aW9uOigpPT50aGlzLmVkaXRvci5jaGFpbigpLmZvY3VzKCkudG9nZ2xlT3JkZXJlZExpc3QoKS5ydW4oKSxpc0FjdGl2ZTooKT0+dGhpcy5lZGl0b3IuaXNBY3RpdmUoIm9yZGVyZWRMaXN0Iil9LHtuYW1lOiJibG9ja3F1b3RlIixpY29uOiJsdWNpZGU6cXVvdGUiLHRpdGxlOiJRdW90ZSIsYWN0aW9uOigpPT50aGlzLmVkaXRvci5jaGFpbigpLmZvY3VzKCkudG9nZ2xlQmxvY2txdW90ZSgpLnJ1bigpLGlzQWN0aXZlOigpPT50aGlzLmVkaXRvci5pc0FjdGl2ZSgiYmxvY2txdW90ZSIpfSx7bmFtZToiY29kZSIsaWNvbjoibHVjaWRlOmNvZGUiLHRpdGxlOiJDb2RlIixhY3Rpb246KCk9PnRoaXMuZWRpdG9yLmNoYWluKCkuZm9jdXMoKS50b2dnbGVDb2RlKCkucnVuKCksaXNBY3RpdmU6KCk9PnRoaXMuZWRpdG9yLmlzQWN0aXZlKCJjb2RlIil9LHtuYW1lOiJjb2RlQmxvY2siLGljb246Imx1Y2lkZTpmaWxlQ29kZSIsdGl0bGU6IkNvZGUgQmxvY2siLGFjdGlvbjooKT0+dGhpcy5lZGl0b3IuY2hhaW4oKS5mb2N1cygpLnRvZ2dsZUNvZGVCbG9jaygpLnJ1bigpLGlzQWN0aXZlOigpPT50aGlzLmVkaXRvci5pc0FjdGl2ZSgiY29kZUJsb2NrIil9LHtuYW1lOiJkaXZpZGVyMyIsdGl0bGU6IiIsaXNEaXZpZGVyOiEwfSx7bmFtZToibGluayIsaWNvbjoibHVjaWRlOmxpbmsiLHRpdGxlOiJBZGQgTGluayIsYWN0aW9uOigpPT50aGlzLnRvZ2dsZUxpbmsoKSxpc0FjdGl2ZTooKT0+dGhpcy5lZGl0b3IuaXNBY3RpdmUoImxpbmsiKX0se25hbWU6ImFsaWduTGVmdCIsaWNvbjoibHVjaWRlOmFsaWduTGVmdCIsdGl0bGU6IkFsaWduIExlZnQiLGFjdGlvbjooKT0+dGhpcy5lZGl0b3IuY2hhaW4oKS5mb2N1cygpLnNldFRleHRBbGlnbigibGVmdCIpLnJ1bigpLGlzQWN0aXZlOigpPT50aGlzLmVkaXRvci5pc0FjdGl2ZSh7dGV4dEFsaWduOiJsZWZ0In0pfSx7bmFtZToiYWxpZ25DZW50ZXIiLGljb246Imx1Y2lkZTphbGlnbkNlbnRlciIsdGl0bGU6IkFsaWduIENlbnRlciIsYWN0aW9uOigpPT50aGlzLmVkaXRvci5jaGFpbigpLmZvY3VzKCkuc2V0VGV4dEFsaWduKCJjZW50ZXIiKS5ydW4oKSxpc0FjdGl2ZTooKT0+dGhpcy5lZGl0b3IuaXNBY3RpdmUoe3RleHRBbGlnbjoiY2VudGVyIn0pfSx7bmFtZToiYWxpZ25SaWdodCIsaWNvbjoibHVjaWRlOmFsaWduUmlnaHQiLHRpdGxlOiJBbGlnbiBSaWdodCIsYWN0aW9uOigpPT50aGlzLmVkaXRvci5jaGFpbigpLmZvY3VzKCkuc2V0VGV4dEFsaWduKCJyaWdodCIpLnJ1bigpLGlzQWN0aXZlOigpPT50aGlzLmVkaXRvci5pc0FjdGl2ZSh7dGV4dEFsaWduOiJyaWdodCJ9KX0se25hbWU6ImRpdmlkZXI0Iix0aXRsZToiIixpc0RpdmlkZXI6ITB9LHtuYW1lOiJ1bmRvIixpY29uOiJsdWNpZGU6dW5kbyIsdGl0bGU6IlVuZG8gKEN0cmwrWikiLGFjdGlvbjooKT0+dGhpcy5lZGl0b3IuY2hhaW4oKS5mb2N1cygpLnVuZG8oKS5ydW4oKX0se25hbWU6InJlZG8iLGljb246Imx1Y2lkZTpyZWRvIix0aXRsZToiUmVkbyAoQ3RybCtZKSIsYWN0aW9uOigpPT50aGlzLmVkaXRvci5jaGFpbigpLmZvY3VzKCkucmVkbygpLnJ1bigpfV06W119YXN5bmMgZmlyc3RVcGRhdGVkKCl7YXdhaXQgdGhpcy51cGRhdGVDb21wbGV0ZSx0aGlzLnRpcHRhcEJ1bmRsZT1hd2FpdCBMMi5nZXRJbnN0YW5jZSgpLmxvYWRUaXB0YXAoKSx0aGlzLmVkaXRvckVsZW1lbnQ9dGhpcy5zaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3IoIi5lZGl0b3ItY29udGVudCIpLHRoaXMubGlua0lucHV0RWxlbWVudD10aGlzLnNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvcigiLmxpbmstaW5wdXQgaW5wdXQiKSx0aGlzLmluaXRpYWxpemVFZGl0b3IoKX1pbml0aWFsaXplRWRpdG9yKCl7aWYodGhpcy5kaXNhYmxlZHx8IXRoaXMudGlwdGFwQnVuZGxlKXJldHVybjtsZXR7RWRpdG9yOkwsU3RhcnRlcktpdDpBLFVuZGVybGluZTpxLFRleHRBbGlnbjpDLExpbms6eixUeXBvZ3JhcGh5OkV9PXRoaXMudGlwdGFwQnVuZGxlO3RoaXMuZWRpdG9yPW5ldyBMKHtlbGVtZW50OnRoaXMuZWRpdG9yRWxlbWVudCxleHRlbnNpb25zOltBLmNvbmZpZ3VyZSh7aGVhZGluZzp7bGV2ZWxzOlsxLDIsM119fSkscS5jb25maWd1cmUoe30pLEMuY29uZmlndXJlKHt0eXBlczpbImhlYWRpbmciLCJwYXJhZ3JhcGgiXX0pLHouY29uZmlndXJlKHtvcGVuT25DbGljazohMSxIVE1MQXR0cmlidXRlczp7Y2xhc3M6ImVkaXRvci1saW5rIn19KSxFLmNvbmZpZ3VyZSh7fSldLGNvbnRlbnQ6dGhpcy52YWx1ZXx8KHRoaXMucGxhY2Vob2xkZXI/YDxwPiR7dGhpcy5wbGFjZWhvbGRlcn08L3A+YDoiIiksb25VcGRhdGU6KHtlZGl0b3I6VH0pPT57dGhpcy52YWx1ZT1ULmdldEhUTUwoKSx0aGlzLnVwZGF0ZVdvcmRDb3VudCgpLHRoaXMuZGlzcGF0Y2hFdmVudChuZXcgQ3VzdG9tRXZlbnQoImlucHV0Iix7ZGV0YWlsOnt2YWx1ZTp0aGlzLnZhbHVlfSxidWJibGVzOiEwLGNvbXBvc2VkOiEwfSkpLHRoaXMuZGlzcGF0Y2hFdmVudChuZXcgQ3VzdG9tRXZlbnQoImNoYW5nZSIse2RldGFpbDp7dmFsdWU6dGhpcy52YWx1ZX0sYnViYmxlczohMCxjb21wb3NlZDohMH0pKX0sb25TZWxlY3Rpb25VcGRhdGU6KCk9Pnt0aGlzLnJlcXVlc3RVcGRhdGUoKX0sb25Gb2N1czooKT0+e3RoaXMucmVxdWVzdFVwZGF0ZSgpfSxvbkJsdXI6KCk9Pnt0aGlzLnJlcXVlc3RVcGRhdGUoKX19KSx0aGlzLnVwZGF0ZVdvcmRDb3VudCgpfXVwZGF0ZVdvcmRDb3VudCgpe2lmKCF0aGlzLmVkaXRvcilyZXR1cm47bGV0IEw9dGhpcy5lZGl0b3IuZ2V0VGV4dCgpO3RoaXMud29yZENvdW50PUwudHJpbSgpP0wudHJpbSgpLnNwbGl0KC9ccysvKS5sZW5ndGg6MH10b2dnbGVMaW5rKCl7aWYodGhpcy5lZGl0b3IpaWYodGhpcy5lZGl0b3IuaXNBY3RpdmUoImxpbmsiKSl7bGV0IEw9dGhpcy5lZGl0b3IuZ2V0QXR0cmlidXRlcygibGluayIpLmhyZWY7dGhpcy5zaG93TGlua0lucHV0PSEwLHJlcXVlc3RBbmltYXRpb25GcmFtZSgoKT0+e3RoaXMubGlua0lucHV0RWxlbWVudCYmKHRoaXMubGlua0lucHV0RWxlbWVudC52YWx1ZT1MfHwiIix0aGlzLmxpbmtJbnB1dEVsZW1lbnQuZm9jdXMoKSx0aGlzLmxpbmtJbnB1dEVsZW1lbnQuc2VsZWN0KCkpfSl9ZWxzZSB0aGlzLnNob3dMaW5rSW5wdXQ9ITAscmVxdWVzdEFuaW1hdGlvbkZyYW1lKCgpPT57dGhpcy5saW5rSW5wdXRFbGVtZW50JiYodGhpcy5saW5rSW5wdXRFbGVtZW50LnZhbHVlPSIiLHRoaXMubGlua0lucHV0RWxlbWVudC5mb2N1cygpKX0pfXNhdmVMaW5rKCl7aWYoIXRoaXMuZWRpdG9yfHwhdGhpcy5saW5rSW5wdXRFbGVtZW50KXJldHVybjtsZXQgTD10aGlzLmxpbmtJbnB1dEVsZW1lbnQudmFsdWU7TCYmdGhpcy5lZGl0b3IuY2hhaW4oKS5mb2N1cygpLnNldExpbmsoe2hyZWY6TH0pLnJ1bigpLHRoaXMuaGlkZUxpbmtJbnB1dCgpfXJlbW92ZUxpbmsoKXt0aGlzLmVkaXRvciYmKHRoaXMuZWRpdG9yLmNoYWluKCkuZm9jdXMoKS51bnNldExpbmsoKS5ydW4oKSx0aGlzLmhpZGVMaW5rSW5wdXQoKSl9aGlkZUxpbmtJbnB1dCgpe3RoaXMuc2hvd0xpbmtJbnB1dD0hMSx0aGlzLmVkaXRvcj8uY29tbWFuZHMuZm9jdXMoKX1oYW5kbGVMaW5rSW5wdXRLZXlkb3duKEwpe0wua2V5PT09IkVudGVyIj8oTC5wcmV2ZW50RGVmYXVsdCgpLHRoaXMuc2F2ZUxpbmsoKSk6TC5rZXk9PT0iRXNjYXBlIiYmKEwucHJldmVudERlZmF1bHQoKSx0aGlzLmhpZGVMaW5rSW5wdXQoKSl9c2V0VmFsdWUoTCl7dGhpcy52YWx1ZT1MLHRoaXMuZWRpdG9yJiZMIT09dGhpcy5lZGl0b3IuZ2V0SFRNTCgpJiZ0aGlzLmVkaXRvci5jb21tYW5kcy5zZXRDb250ZW50KEwpfWdldFZhbHVlKCl7cmV0dXJuIHRoaXMudmFsdWV9Y2xlYXIoKXt0aGlzLnNldFZhbHVlKCIiKX1mb2N1cygpe3RoaXMuZWRpdG9yPy5jb21tYW5kcy5mb2N1cygpfWFzeW5jIGRpc2Nvbm5lY3RlZENhbGxiYWNrKCl7YXdhaXQgc3VwZXIuZGlzY29ubmVjdGVkQ2FsbGJhY2soKSx0aGlzLmVkaXRvciYmdGhpcy5lZGl0b3IuZGVzdHJveSgpfXN0YXRpY3tHYShpLGEpfX07cmV0dXJuIE49aX0pKCl9KTt2YXIgdGd0PWIoKCk9Pnt5VigpfSk7dmFyIGFndD1iKCgpPT57fSk7dmFyIGlndD1iKCgpPT57YWd0KCl9KTt2YXIgcmd0LHNndCxuZ3Q9YigoKT0+e3VlKCk7eDEoKTttMigpO3NndD0oKT0+dyhyZ3R8fChyZ3Q9eDQoW2AKICA8ZGVlcy1kZW1vd3JhcHBlcj4KICAgIDxzdHlsZT4KICAgICAgYCxgCiAgICA8L3N0eWxlPgogICAgCiAgICA8ZGl2IGNsYXNzPSJkZW1vLWNvbnRhaW5lciI+CiAgICAgIDxkZWVzLXBhbmVsIC50aXRsZT1gLCIgLnN1YnRpdGxlPSIsYD4KICAgICAgICA8ZGVlcy1pbnB1dC10YWdzCiAgICAgICAgICAubGFiZWw9YCxgCiAgICAgICAgICAucGxhY2Vob2xkZXI9YCxgCiAgICAgICAgICAudmFsdWU9YCxgCiAgICAgICAgICAuZGVzY3JpcHRpb249YCxgCiAgICAgICAgPjwvZGVlcy1pbnB1dC10YWdzPgogICAgICA8L2RlZXMtcGFuZWw+CgogICAgICA8ZGVlcy1wYW5lbCAudGl0bGU9YCwiIC5zdWJ0aXRsZT0iLGA+CiAgICAgICAgPGRlZXMtaW5wdXQtdGFncwogICAgICAgICAgLmxhYmVsPWAsYAogICAgICAgICAgLnBsYWNlaG9sZGVyPWAsYAogICAgICAgICAgLnN1Z2dlc3Rpb25zPWAsYAogICAgICAgICAgLnZhbHVlPWAsYAogICAgICAgICAgLmRlc2NyaXB0aW9uPWAsYAogICAgICAgID48L2RlZXMtaW5wdXQtdGFncz4KICAgICAgPC9kZWVzLXBhbmVsPgoKICAgICAgPGRlZXMtcGFuZWwgLnRpdGxlPWAsIiAuc3VidGl0bGU9IixgPgogICAgICAgIDxkaXYgY2xhc3M9ImdyaWQtbGF5b3V0Ij4KICAgICAgICAgIDxkZWVzLWlucHV0LXRhZ3MKICAgICAgICAgICAgLmxhYmVsPWAsYAogICAgICAgICAgICAucGxhY2Vob2xkZXI9YCxgCiAgICAgICAgICAgIC5tYXhUYWdzPWAsYAogICAgICAgICAgICAudmFsdWU9YCxgCiAgICAgICAgICAgIC5kZXNjcmlwdGlvbj1gLGAKICAgICAgICAgID48L2RlZXMtaW5wdXQtdGFncz4KICAgICAgICAgIAogICAgICAgICAgPGRlZXMtaW5wdXQtdGFncwogICAgICAgICAgICAubGFiZWw9YCxgCiAgICAgICAgICAgIC5wbGFjZWhvbGRlcj1gLGAKICAgICAgICAgICAgLm1heFRhZ3M9YCxgCiAgICAgICAgICAgIC5zdWdnZXN0aW9ucz1gLGAKICAgICAgICAgICAgLnZhbHVlPWAsYAogICAgICAgICAgICAuZGVzY3JpcHRpb249YCxgCiAgICAgICAgICA+PC9kZWVzLWlucHV0LXRhZ3M+CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGVlcy1wYW5lbD4KCiAgICAgIDxkZWVzLXBhbmVsIC50aXRsZT1gLCIgLnN1YnRpdGxlPSIsYD4KICAgICAgICA8ZGVlcy1pbnB1dC10YWdzCiAgICAgICAgICAubGFiZWw9YCxgCiAgICAgICAgICAucGxhY2Vob2xkZXI9YCxgCiAgICAgICAgICAucmVxdWlyZWQ9YCxgCiAgICAgICAgICAuZGVzY3JpcHRpb249YCxgCiAgICAgICAgPjwvZGVlcy1pbnB1dC10YWdzPgogICAgICA8L2RlZXMtcGFuZWw+CgogICAgICA8ZGVlcy1wYW5lbCAudGl0bGU9YCwiIC5zdWJ0aXRsZT0iLGA+CiAgICAgICAgPGRlZXMtaW5wdXQtdGFncwogICAgICAgICAgLmxhYmVsPWAsYAogICAgICAgICAgLnZhbHVlPWAsYAogICAgICAgICAgLmRpc2FibGVkPWAsYAogICAgICAgICAgLmRlc2NyaXB0aW9uPWAsYAogICAgICAgID48L2RlZXMtaW5wdXQtdGFncz4KICAgICAgPC9kZWVzLXBhbmVsPgoKICAgICAgPGRlZXMtcGFuZWwgLnRpdGxlPWAsIiAuc3VidGl0bGU9IixgPgogICAgICAgIDxkZWVzLWZvcm0+CiAgICAgICAgICA8ZGVlcy1pbnB1dC10ZXh0CiAgICAgICAgICAgIC5sYWJlbD1gLGAKICAgICAgICAgICAgLnBsYWNlaG9sZGVyPWAsYAogICAgICAgICAgICAucmVxdWlyZWQ9YCxgCiAgICAgICAgICAgIC5rZXk9YCxgCiAgICAgICAgICA+PC9kZWVzLWlucHV0LXRleHQ+CiAgICAgICAgICAKICAgICAgICAgIDxkaXYgY2xhc3M9ImdyaWQtbGF5b3V0Ij4KICAgICAgICAgICAgPGRlZXMtaW5wdXQtdGFncwogICAgICAgICAgICAgIC5sYWJlbD1gLGAKICAgICAgICAgICAgICAucGxhY2Vob2xkZXI9YCxgCiAgICAgICAgICAgICAgLnJlcXVpcmVkPWAsYAogICAgICAgICAgICAgIC5rZXk9YCxgCiAgICAgICAgICAgICAgLnN1Z2dlc3Rpb25zPWAsYAogICAgICAgICAgICA+PC9kZWVzLWlucHV0LXRhZ3M+CiAgICAgICAgICAgIAogICAgICAgICAgICA8ZGVlcy1pbnB1dC10YWdzCiAgICAgICAgICAgICAgLmxhYmVsPWAsYAogICAgICAgICAgICAgIC5wbGFjZWhvbGRlcj1gLGAKICAgICAgICAgICAgICAua2V5PWAsYAogICAgICAgICAgICAgIC5tYXhUYWdzPWAsYAogICAgICAgICAgICAgIC5zdWdnZXN0aW9ucz1gLGAKICAgICAgICAgICAgPjwvZGVlcy1pbnB1dC10YWdzPgogICAgICAgICAgPC9kaXY+CiAgICAgICAgICAKICAgICAgICAgIDxkZWVzLWlucHV0LXRleHQKICAgICAgICAgICAgLmxhYmVsPWAsYAogICAgICAgICAgICAuaW5wdXRUeXBlPWAsYAogICAgICAgICAgICAucGxhY2Vob2xkZXI9YCxgCiAgICAgICAgICAgIC5rZXk9YCxgCiAgICAgICAgICA+PC9kZWVzLWlucHV0LXRleHQ+CiAgICAgICAgICAKICAgICAgICAgIDxkZWVzLWZvcm0tc3VibWl0IC50ZXh0PWAsYD48L2RlZXMtZm9ybS1zdWJtaXQ+CiAgICAgICAgPC9kZWVzLWZvcm0+CiAgICAgIDwvZGVlcy1wYW5lbD4KCiAgICAgIDxkZWVzLXBhbmVsIC50aXRsZT1gLCIgLnN1YnRpdGxlPSIsYD4KICAgICAgICA8ZGVlcy1pbnB1dC10YWdzCiAgICAgICAgICBpZD0iaW50ZXJhY3RpdmUtdGFncyIKICAgICAgICAgIC5sYWJlbD1gLGAKICAgICAgICAgIC5wbGFjZWhvbGRlcj1gLGAKICAgICAgICAgIC5zdWdnZXN0aW9ucz1gLGAKICAgICAgICAgIEBjaGFuZ2U9YCxgCiAgICAgICAgPjwvZGVlcy1pbnB1dC10YWdzPgogICAgICAgIAogICAgICAgIDxkaXYgY2xhc3M9InRhZy1wcmV2aWV3IiBpZD0idGFncy1wcmV2aWV3Ij4KICAgICAgICAgIDxlbSBzdHlsZT0iY29sb3I6ICM5OTk7Ij5ObyB0YWdzIGFkZGVkIHlldC4uLjwvZW0+CiAgICAgICAgPC9kaXY+CiAgICAgICAgCiAgICAgICAgPGRpdiBjbGFzcz0ib3V0cHV0LXByZXZpZXciIGlkPSJ0YWdzLWpzb24iPgogICAgICAgICAgPGVtPkpTT04gb3V0cHV0IHdpbGwgYXBwZWFyIGhlcmUuLi48L2VtPgogICAgICAgIDwvZGl2PgogICAgICAgIAogICAgICAgIDxzY3JpcHQ+CiAgICAgICAgICAvLyBVcGRhdGUgSlNPTiBwcmV2aWV3CiAgICAgICAgICBjb25zdCB0YWdzSW5wdXQgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCcjaW50ZXJhY3RpdmUtdGFncycpOwogICAgICAgICAgdGFnc0lucHV0Py5hZGRFdmVudExpc3RlbmVyKCdjaGFuZ2UnLCAoZSkgPT4gewogICAgICAgICAgICBjb25zdCBqc29uUHJldmlldyA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJyN0YWdzLWpzb24nKTsKICAgICAgICAgICAgaWYgKGpzb25QcmV2aWV3KSB7CiAgICAgICAgICAgICAganNvblByZXZpZXcudGV4dENvbnRlbnQgPSBKU09OLnN0cmluZ2lmeShlLmRldGFpbC52YWx1ZSwgbnVsbCwgMik7CiAgICAgICAgICAgIH0KICAgICAgICAgIH0pOwogICAgICAgIDxcL3NjcmlwdD4KICAgICAgPC9kZWVzLXBhbmVsPgogICAgPC9kaXY+CiAgPC9kZWVzLWRlbW93cmFwcGVyPgpgXSkpLFFgCiAgICAgICAgLmRlbW8tY29udGFpbmVyIHsKICAgICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICAgICAgZ2FwOiAyNHB4OwogICAgICAgICAgcGFkZGluZzogMjRweDsKICAgICAgICAgIG1heC13aWR0aDogMTIwMHB4OwogICAgICAgICAgbWFyZ2luOiAwIGF1dG87CiAgICAgICAgfQogICAgICAgIAogICAgICAgIGRlZXMtcGFuZWwgewogICAgICAgICAgbWFyZ2luLWJvdHRvbTogMjRweDsKICAgICAgICB9CiAgICAgICAgCiAgICAgICAgZGVlcy1wYW5lbDpsYXN0LWNoaWxkIHsKICAgICAgICAgIG1hcmdpbi1ib3R0b206IDA7CiAgICAgICAgfQogICAgICAgIAogICAgICAgIC5ncmlkLWxheW91dCB7CiAgICAgICAgICBkaXNwbGF5OiBncmlkOwogICAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAxZnIgMWZyOwogICAgICAgICAgZ2FwOiAxNnB4OwogICAgICAgIH0KICAgICAgICAKICAgICAgICBAbWVkaWEgKG1heC13aWR0aDogNzY4cHgpIHsKICAgICAgICAgIC5ncmlkLWxheW91dCB7CiAgICAgICAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogMWZyOwogICAgICAgICAgfQogICAgICAgIH0KICAgICAgICAKICAgICAgICAub3V0cHV0LXByZXZpZXcgewogICAgICAgICAgbWFyZ2luLXRvcDogMTZweDsKICAgICAgICAgIHBhZGRpbmc6IDE2cHg7CiAgICAgICAgICBiYWNrZ3JvdW5kOiAjZjNmNGY2OwogICAgICAgICAgYm9yZGVyLXJhZGl1czogNHB4OwogICAgICAgICAgZm9udC1zaXplOiAxMnB4OwogICAgICAgICAgY29sb3I6ICMzNzQxNTE7CiAgICAgICAgICB3b3JkLWJyZWFrOiBicmVhay1hbGw7CiAgICAgICAgICBtYXgtaGVpZ2h0OiAyMDBweDsKICAgICAgICAgIG92ZXJmbG93LXk6IGF1dG87CiAgICAgICAgfQogICAgICAgIAogICAgICAgIEBtZWRpYSAocHJlZmVycy1jb2xvci1zY2hlbWU6IGRhcmspIHsKICAgICAgICAgIC5vdXRwdXQtcHJldmlldyB7CiAgICAgICAgICAgIGJhY2tncm91bmQ6ICMyYzJjMmM7CiAgICAgICAgICAgIGNvbG9yOiAjZTRlNGU3OwogICAgICAgICAgfQogICAgICAgIH0KICAgICAgICAKICAgICAgICAudGFnLXByZXZpZXcgewogICAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICAgIGZsZXgtd3JhcDogd3JhcDsKICAgICAgICAgIGdhcDogOHB4OwogICAgICAgICAgcGFkZGluZzogMTJweDsKICAgICAgICAgIGJhY2tncm91bmQ6ICNmOWZhZmI7CiAgICAgICAgICBib3JkZXItcmFkaXVzOiA0cHg7CiAgICAgICAgICBtaW4taGVpZ2h0OiA0MHB4OwogICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICB9CiAgICAgICAgCiAgICAgICAgQG1lZGlhIChwcmVmZXJzLWNvbG9yLXNjaGVtZTogZGFyaykgewogICAgICAgICAgLnRhZy1wcmV2aWV3IHsKICAgICAgICAgICAgYmFja2dyb3VuZDogIzFmMjkzNzsKICAgICAgICAgIH0KICAgICAgICB9CiAgICAgICAgCiAgICAgICAgLnRhZy1wcmV2aWV3LWl0ZW0gewogICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrOwogICAgICAgICAgcGFkZGluZzogNHB4IDEycHg7CiAgICAgICAgICBiYWNrZ3JvdW5kOiAjZTBlN2ZmOwogICAgICAgICAgY29sb3I6ICM0MzM4Y2E7CiAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMnB4OwogICAgICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgICAgIH0KICAgICAgICAKICAgICAgICBAbWVkaWEgKHByZWZlcnMtY29sb3Itc2NoZW1lOiBkYXJrKSB7CiAgICAgICAgICAudGFnLXByZXZpZXctaXRlbSB7CiAgICAgICAgICAgIGJhY2tncm91bmQ6ICMzMTJlODE7CiAgICAgICAgICAgIGNvbG9yOiAjYzdkMmZlOwogICAgICAgICAgfQogICAgICAgIH0KICAgICAgYCwiMS4gQmFzaWMgVGFncyBJbnB1dCIsIlNpbXBsZSB0YWcgaW5wdXQgd2l0aCBjb21tb24gcHJvZ3JhbW1pbmcgbGFuZ3VhZ2VzIiwiUHJvZ3JhbW1pbmcgTGFuZ3VhZ2VzIiwiQWRkIGEgbGFuZ3VhZ2UuLi4iLFsiSmF2YVNjcmlwdCIsIlR5cGVTY3JpcHQiLCJQeXRob24iLCJHbyJdLCJQcmVzcyBFbnRlciBvciBjb21tYSB0byBhZGQgdGFncyIsIjIuIFRhZ3Mgd2l0aCBTdWdnZXN0aW9ucyIsIkF1dG8tY29tcGxldGUgc3VnZ2VzdGlvbnMgZm9yIGZhc3RlciBpbnB1dCIsIlRlY2ggU3RhY2siLCJUeXBlIHRvIHNlZSBzdWdnZXN0aW9ucy4uLiIsWyJSZWFjdCIsIlZ1ZSIsIkFuZ3VsYXIiLCJTdmVsdGUiLCJMaXQiLCJOZXh0LmpzIiwiTnV4dCIsIlN2ZWx0ZUtpdCIsIk5vZGUuanMiLCJEZW5vIiwiQnVuIiwiRXhwcmVzcyIsIkZhc3RpZnkiLCJOZXN0LmpzIiwiS29hIiwiTW9uZ29EQiIsIlBvc3RncmVTUUwiLCJSZWRpcyIsIk15U1FMIiwiU1FMaXRlIiwiQ2Fzc2FuZHJhIiwiRG9ja2VyIiwiS3ViZXJuZXRlcyIsIkFXUyIsIkF6dXJlIiwiR0NQIiwiVmVyY2VsIiwiTmV0bGlmeSJdLFsiUmVhY3QiLCJOb2RlLmpzIiwiUG9zdGdyZVNRTCIsIkRvY2tlciJdLCJTdGFydCB0eXBpbmcgdG8gc2VlIHN1Z2dlc3Rpb25zIGZyb20gcG9wdWxhciB0ZWNobm9sb2dpZXMiLCIzLiBMaW1pdGVkIFRhZ3MiLCJSZXN0cmljdCB0aGUgbnVtYmVyIG9mIHRhZ3MgdXNlcnMgY2FuIGFkZCIsIlRvcCAzIFNraWxscyIsIkFkZCB1cCB0byAzIHNraWxscy4uLiIsMyxbIkRlc2lnbiIsIkRldmVsb3BtZW50Il0sIk1heGltdW0gMyB0YWdzIGFsbG93ZWQiLCJDYXRlZ29yaWVzIChNYXggNSkiLCJTZWxlY3QgY2F0ZWdvcmllcy4uLiIsNSxbIkJsb2ciLCJUdXRvcmlhbCIsIk5ld3MiLCJSZXZpZXciLCJHdWlkZSIsIkNhc2UgU3R1ZHkiLCJJbnRlcnZpZXciXSxbIlR1dG9yaWFsIiwiR3VpZGUiXSwiQ2hvb3NlIHVwIHRvIDUgY2F0ZWdvcmllcyIsIjQuIFJlcXVpcmVkICYgVmFsaWRhdGlvbiIsIlRhZ3MgaW5wdXQgd2l0aCB2YWxpZGF0aW9uIHJlcXVpcmVtZW50cyIsIlByb2plY3QgVGFncyIsIkFkZCBhdCBsZWFzdCBvbmUgdGFnLi4uIiwhMCwiVGhpcyBmaWVsZCBpcyByZXF1aXJlZCAtIGFkZCBhdCBsZWFzdCBvbmUgdGFnIiwiNS4gRGlzYWJsZWQgU3RhdGUiLCJSZWFkLW9ubHkgdGFncyBkaXNwbGF5IiwiU3lzdGVtIFRhZ3MiLFsiU3lzdGVtIiwiUHJvdGVjdGVkIiwiUmVhZC1Pbmx5IiwiQXJjaGl2ZSJdLCEwLCJUaGVzZSB0YWdzIGNhbm5vdCBiZSBtb2RpZmllZCIsIjYuIEZvcm0gSW50ZWdyYXRpb24iLCJUYWdzIGlucHV0IHdvcmtpbmcgd2l0aGluIGEgZm9ybSBjb250ZXh0IiwiUHJvamVjdCBOYW1lIiwiTXkgQXdlc29tZSBQcm9qZWN0IiwhMCwibmFtZSIsIlRlY2hub2xvZ2llcyBVc2VkIiwiQWRkIHRlY2hub2xvZ2llcy4uLiIsITAsInRlY2hub2xvZ2llcyIsWyJUeXBlU2NyaXB0IiwiSmF2YVNjcmlwdCIsIlB5dGhvbiIsIkdvIiwiUnVzdCIsIlJlYWN0IiwiVnVlIiwiQW5ndWxhciIsIlN2ZWx0ZSIsIk5vZGUuanMiLCJEZW5vIiwiRXhwcmVzcyIsIkZhc3RBUEkiXSwiUHJvamVjdCBUYWdzIiwiQWRkIGRlc2NyaXB0aXZlIHRhZ3MuLi4iLCJ0YWdzIiwxMCxbImZyb250ZW5kIiwiYmFja2VuZCIsImZ1bGxzdGFjayIsIm1vYmlsZSIsImRlc2t0b3AiLCJ3ZWIiLCJhcGkiLCJkYXRhYmFzZSIsImRldm9wcyIsInVpL3V4Iiwib3BlbnNvdXJjZSIsInNhYXMiLCJlbnRlcnByaXNlIiwic3RhcnR1cCJdLCJEZXNjcmlwdGlvbiIsInRleHRhcmVhIiwiRGVzY3JpYmUgeW91ciBwcm9qZWN0Li4uIiwiZGVzY3JpcHRpb24iLCJDcmVhdGUgUHJvamVjdCIsIjcuIEludGVyYWN0aXZlIERlbW8iLCJBZGQgdGFncyBhbmQgc2VlIHRoZW0gY29sbGVjdGVkIGluIHJlYWwtdGltZSIsIllvdXIgSW50ZXJlc3RzIiwiVHlwZSB5b3VyIGludGVyZXN0cy4uLiIsWyJNdXNpYyIsIk1vdmllcyIsIkJvb2tzIiwiVHJhdmVsIiwiUGhvdG9ncmFwaHkiLCJDb29raW5nIiwiR2FtaW5nIiwiU3BvcnRzIiwiQXJ0IiwiVGVjaG5vbG9neSIsIkZhc2hpb24iLCJGaXRuZXNzIiwiTmF0dXJlIiwiU2NpZW5jZSIsIkhpc3RvcnkiXSx0PT57bGV0IGU9ZG9jdW1lbnQucXVlcnlTZWxlY3RvcigiI3RhZ3MtcHJldmlldyIpLGE9dC5kZXRhaWwudmFsdWU7ZSYmKGEubGVuZ3RoPT09MD9lLmlubmVySFRNTD0nPGVtIHN0eWxlPSJjb2xvcjogIzk5OTsiPk5vIHRhZ3MgYWRkZWQgeWV0Li4uPC9lbT4nOmUuaW5uZXJIVE1MPWEubWFwKGk9PmA8c3BhbiBjbGFzcz0idGFnLXByZXZpZXctaXRlbSI+JHtpfTwvc3Bhbj5gKS5qb2luKCIiKSl9KX0pO3ZhciBCcywkMixvZ3QsbGd0PWIoKCk9Pnt1ZSgpO18xKCk7RHQoKTtuZ3QoKTtxZSgpO0JzPWZ1bmN0aW9uKHQsZSxhLGkscixzKXtmdW5jdGlvbiBuKHgpe2lmKHghPT12b2lkIDAmJnR5cGVvZiB4IT0iZnVuY3Rpb24iKXRocm93IG5ldyBUeXBlRXJyb3IoIkZ1bmN0aW9uIGV4cGVjdGVkIik7cmV0dXJuIHh9Zm9yKHZhciBvPWkua2luZCxkPW89PT0iZ2V0dGVyIj8iZ2V0IjpvPT09InNldHRlciI/InNldCI6InZhbHVlIixjPSFlJiZ0P2kuc3RhdGljP3Q6dC5wcm90b3R5cGU6bnVsbCxoPWV8fChjP09iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoYyxpLm5hbWUpOnt9KSxsLGY9ITEsZz1hLmxlbmd0aC0xO2c+PTA7Zy0tKXt2YXIgeT17fTtmb3IodmFyIHYgaW4gaSl5W3ZdPXY9PT0iYWNjZXNzIj97fTppW3ZdO2Zvcih2YXIgdiBpbiBpLmFjY2Vzcyl5LmFjY2Vzc1t2XT1pLmFjY2Vzc1t2XTt5LmFkZEluaXRpYWxpemVyPWZ1bmN0aW9uKHgpe2lmKGYpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGFkZCBpbml0aWFsaXplcnMgYWZ0ZXIgZGVjb3JhdGlvbiBoYXMgY29tcGxldGVkIik7cy5wdXNoKG4oeHx8bnVsbCkpfTt2YXIgbT0oMCxhW2ddKShvPT09ImFjY2Vzc29yIj97Z2V0OmguZ2V0LHNldDpoLnNldH06aFtkXSx5KTtpZihvPT09ImFjY2Vzc29yIil7aWYobT09PXZvaWQgMCljb250aW51ZTtpZihtPT09bnVsbHx8dHlwZW9mIG0hPSJvYmplY3QiKXRocm93IG5ldyBUeXBlRXJyb3IoIk9iamVjdCBleHBlY3RlZCIpOyhsPW4obS5nZXQpKSYmKGguZ2V0PWwpLChsPW4obS5zZXQpKSYmKGguc2V0PWwpLChsPW4obS5pbml0KSkmJnIudW5zaGlmdChsKX1lbHNlKGw9bihtKSkmJihvPT09ImZpZWxkIj9yLnVuc2hpZnQobCk6aFtkXT1sKX1jJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoYyxpLm5hbWUsaCksZj0hMH0sJDI9ZnVuY3Rpb24odCxlLGEpe2Zvcih2YXIgaT1hcmd1bWVudHMubGVuZ3RoPjIscj0wO3I8ZS5sZW5ndGg7cisrKWE9aT9lW3JdLmNhbGwodCxhKTplW3JdLmNhbGwodCk7cmV0dXJuIGk/YTp2b2lkIDB9LG9ndD0oKCk9PntsZXQgdD1bcGUoImRlZXMtaW5wdXQtdGFncyIpXSxlLGE9W10saSxyPVhlLHMsbj1bXSxvPVtdLGQsYz1bXSxoPVtdLGwsZj1bXSxnPVtdLHksdj1bXSxtPVtdLHgsTT1bXSxTPVtdLEYsXz1bXSxrPVtdLE4sTD1bXSxBPVtdLHEsQz1bXSx6PVtdO3ZhciBFPWNsYXNzIGV4dGVuZHMgcntzdGF0aWN7aT10aGlzfXN0YXRpY3tsZXQgVD10eXBlb2YgU3ltYm9sPT0iZnVuY3Rpb24iJiZTeW1ib2wubWV0YWRhdGE/T2JqZWN0LmNyZWF0ZShyW1N5bWJvbC5tZXRhZGF0YV0/P251bGwpOnZvaWQgMDtzPVtJKHt0eXBlOkFycmF5fSldLGQ9W0koe3R5cGU6U3RyaW5nfSldLGw9W0koe3R5cGU6TnVtYmVyfSldLHk9W0koe3R5cGU6QXJyYXl9KV0seD1bSigpXSxGPVtKKCldLE49W0ooKV0scT1bSSh7dHlwZTpTdHJpbmd9KV0sQnModGhpcyxudWxsLHMse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJ2YWx1ZSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6JD0+InZhbHVlImluICQsZ2V0OiQ9PiQudmFsdWUsc2V0OigkLFYpPT57JC52YWx1ZT1WfX0sbWV0YWRhdGE6VH0sbixvKSxCcyh0aGlzLG51bGwsZCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InBsYWNlaG9sZGVyIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczokPT4icGxhY2Vob2xkZXIiaW4gJCxnZXQ6JD0+JC5wbGFjZWhvbGRlcixzZXQ6KCQsVik9PnskLnBsYWNlaG9sZGVyPVZ9fSxtZXRhZGF0YTpUfSxjLGgpLEJzKHRoaXMsbnVsbCxsLHtraW5kOiJhY2Nlc3NvciIsbmFtZToibWF4VGFncyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6JD0+Im1heFRhZ3MiaW4gJCxnZXQ6JD0+JC5tYXhUYWdzLHNldDooJCxWKT0+eyQubWF4VGFncz1WfX0sbWV0YWRhdGE6VH0sZixnKSxCcyh0aGlzLG51bGwseSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InN1Z2dlc3Rpb25zIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczokPT4ic3VnZ2VzdGlvbnMiaW4gJCxnZXQ6JD0+JC5zdWdnZXN0aW9ucyxzZXQ6KCQsVik9PnskLnN1Z2dlc3Rpb25zPVZ9fSxtZXRhZGF0YTpUfSx2LG0pLEJzKHRoaXMsbnVsbCx4LHtraW5kOiJhY2Nlc3NvciIsbmFtZToiaW5wdXRWYWx1ZSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6JD0+ImlucHV0VmFsdWUiaW4gJCxnZXQ6JD0+JC5pbnB1dFZhbHVlLHNldDooJCxWKT0+eyQuaW5wdXRWYWx1ZT1WfX0sbWV0YWRhdGE6VH0sTSxTKSxCcyh0aGlzLG51bGwsRix7a2luZDoiYWNjZXNzb3IiLG5hbWU6InNob3dTdWdnZXN0aW9ucyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6JD0+InNob3dTdWdnZXN0aW9ucyJpbiAkLGdldDokPT4kLnNob3dTdWdnZXN0aW9ucyxzZXQ6KCQsVik9PnskLnNob3dTdWdnZXN0aW9ucz1WfX0sbWV0YWRhdGE6VH0sXyxrKSxCcyh0aGlzLG51bGwsTix7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImhpZ2hsaWdodGVkU3VnZ2VzdGlvbkluZGV4IixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczokPT4iaGlnaGxpZ2h0ZWRTdWdnZXN0aW9uSW5kZXgiaW4gJCxnZXQ6JD0+JC5oaWdobGlnaHRlZFN1Z2dlc3Rpb25JbmRleCxzZXQ6KCQsVik9PnskLmhpZ2hsaWdodGVkU3VnZ2VzdGlvbkluZGV4PVZ9fSxtZXRhZGF0YTpUfSxMLEEpLEJzKHRoaXMsbnVsbCxxLHtraW5kOiJhY2Nlc3NvciIsbmFtZToidmFsaWRhdGlvblRleHQiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOiQ9PiJ2YWxpZGF0aW9uVGV4dCJpbiAkLGdldDokPT4kLnZhbGlkYXRpb25UZXh0LHNldDooJCxWKT0+eyQudmFsaWRhdGlvblRleHQ9Vn19LG1ldGFkYXRhOlR9LEMseiksQnMobnVsbCxlPXt2YWx1ZTppfSx0LHtraW5kOiJjbGFzcyIsbmFtZTppLm5hbWUsbWV0YWRhdGE6VH0sbnVsbCxhKSxFPWk9ZS52YWx1ZSxUJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoaSxTeW1ib2wubWV0YWRhdGEse2VudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwLHZhbHVlOlR9KX1zdGF0aWMgZGVtbz1zZ3Q7c3RhdGljIGRlbW9Hcm91cHM9WyJJbnB1dCJdOyNlPSQyKHRoaXMsbixbXSk7Z2V0IHZhbHVlKCl7cmV0dXJuIHRoaXMuI2V9c2V0IHZhbHVlKFQpe3RoaXMuI2U9VH0jdD0oJDIodGhpcyxvKSwkMih0aGlzLGMsIkFkZCB0YWdzLi4uIikpO2dldCBwbGFjZWhvbGRlcigpe3JldHVybiB0aGlzLiN0fXNldCBwbGFjZWhvbGRlcihUKXt0aGlzLiN0PVR9I2E9KCQyKHRoaXMsaCksJDIodGhpcyxmLDApKTtnZXQgbWF4VGFncygpe3JldHVybiB0aGlzLiNhfXNldCBtYXhUYWdzKFQpe3RoaXMuI2E9VH0jaT0oJDIodGhpcyxnKSwkMih0aGlzLHYsW10pKTtnZXQgc3VnZ2VzdGlvbnMoKXtyZXR1cm4gdGhpcy4jaX1zZXQgc3VnZ2VzdGlvbnMoVCl7dGhpcy4jaT1UfSNyPSgkMih0aGlzLG0pLCQyKHRoaXMsTSwiIikpO2dldCBpbnB1dFZhbHVlKCl7cmV0dXJuIHRoaXMuI3J9c2V0IGlucHV0VmFsdWUoVCl7dGhpcy4jcj1UfSNzPSgkMih0aGlzLFMpLCQyKHRoaXMsXywhMSkpO2dldCBzaG93U3VnZ2VzdGlvbnMoKXtyZXR1cm4gdGhpcy4jc31zZXQgc2hvd1N1Z2dlc3Rpb25zKFQpe3RoaXMuI3M9VH0jbj0oJDIodGhpcyxrKSwkMih0aGlzLEwsLTEpKTtnZXQgaGlnaGxpZ2h0ZWRTdWdnZXN0aW9uSW5kZXgoKXtyZXR1cm4gdGhpcy4jbn1zZXQgaGlnaGxpZ2h0ZWRTdWdnZXN0aW9uSW5kZXgoVCl7dGhpcy4jbj1UfSNvPSgkMih0aGlzLEEpLCQyKHRoaXMsQywiIikpO2dldCB2YWxpZGF0aW9uVGV4dCgpe3JldHVybiB0aGlzLiNvfXNldCB2YWxpZGF0aW9uVGV4dChUKXt0aGlzLiNvPVR9c3RhdGljIHN0eWxlcz1bQ2UsLi4uWGUuYmFzZVN0eWxlcyxwLmRlZmF1bHRTdHlsZXMsUWAKICAgICAgLyogVE9ETzogTWlncmF0ZSBoYXJkY29kZWQgdmFsdWVzIHRvIC0tZGVlcy0qIENTUyB2YXJpYWJsZXMgKi8KICAgICAgOmhvc3QgewogICAgICAgIGRpc3BsYXk6IGJsb2NrOwogICAgICAgIGZvbnQtZmFtaWx5OiAtYXBwbGUtc3lzdGVtLCBCbGlua01hY1N5c3RlbUZvbnQsICdTZWdvZSBVSScsICdSb2JvdG8nLCBzYW5zLXNlcmlmOwogICAgICB9CgogICAgICAuaW5wdXQtd3JhcHBlciB7CiAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgIH0KCiAgICAgIC50YWdzLWNvbnRhaW5lciB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBmbGV4LXdyYXA6IHdyYXA7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBnYXA6IDZweDsKICAgICAgICBwYWRkaW5nOiA2cHggMTBweDsKICAgICAgICBtaW4taGVpZ2h0OiA0MHB4OwogICAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50OwogICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICR7cC5iZFRoZW1lKCJoc2woMCAwJSA4OS44JSkiLCJoc2woMCAwJSAxNC45JSkiKX07CiAgICAgICAgYm9yZGVyLXJhZGl1czogNnB4OwogICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjE1cyBlYXNlOwogICAgICAgIGN1cnNvcjogdGV4dDsKICAgICAgfQoKICAgICAgLnRhZ3MtY29udGFpbmVyOmhvdmVyOm5vdCguZGlzYWJsZWQpIHsKICAgICAgICBib3JkZXItY29sb3I6ICR7cC5iZFRoZW1lKCJoc2woMCAwJSA3OS44JSkiLCJoc2woMCAwJSAyMC45JSkiKX07CiAgICAgIH0KCiAgICAgIC50YWdzLWNvbnRhaW5lcjpmb2N1cy13aXRoaW4gewogICAgICAgIGJvcmRlci1jb2xvcjogJHtwLmJkVGhlbWUoImhzbCgyMjIuMiA0Ny40JSA1MS4yJSkiLCJoc2woMjE3LjIgOTEuMiUgNTkuOCUpIil9OwogICAgICAgIGJveC1zaGFkb3c6IDAgMCAwIDNweCAke3AuYmRUaGVtZSgiaHNsKDIyMi4yIDQ3LjQlIDUxLjIlIC8gMC4xKSIsImhzbCgyMTcuMiA5MS4yJSA1OS44JSAvIDAuMSkiKX07CiAgICAgIH0KCiAgICAgIC50YWdzLWNvbnRhaW5lci5kaXNhYmxlZCB7CiAgICAgICAgYmFja2dyb3VuZDogJHtwLmJkVGhlbWUoImhzbCgwIDAlIDk1LjElKSIsImhzbCgwIDAlIDE0LjklKSIpfTsKICAgICAgICBib3JkZXItY29sb3I6ICR7cC5iZFRoZW1lKCJoc2woMCAwJSA4OS44JSkiLCJoc2woMCAwJSAxNC45JSkiKX07CiAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDsKICAgICAgICBvcGFjaXR5OiAwLjU7CiAgICAgIH0KCiAgICAgIC50YWcgewogICAgICAgIGRpc3BsYXk6IGlubGluZS1mbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgZ2FwOiA0cHg7CiAgICAgICAgcGFkZGluZzogMnB4IDhweDsKICAgICAgICBiYWNrZ3JvdW5kOiAke3AuYmRUaGVtZSgiaHNsKDIxNSAyMC4yJSA2NS4xJSAvIDAuMikiLCJoc2woMjE1IDIwLjIlIDM1LjElIC8gMC4yKSIpfTsKICAgICAgICBjb2xvcjogJHtwLmJkVGhlbWUoImhzbCgyMTUuMyAyNSUgMjYuNyUpIiwiaHNsKDIxNy45IDEwLjYlIDc0LjklKSIpfTsKICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAke3AuYmRUaGVtZSgiaHNsKDIxNSAyMC4yJSA2NS4xJSAvIDAuMykiLCJoc2woMjE1IDIwLjIlIDM1LjElIC8gMC4zKSIpfTsKICAgICAgICBib3JkZXItcmFkaXVzOiA0cHg7CiAgICAgICAgZm9udC1zaXplOiAxM3B4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7CiAgICAgICAgbGluZS1oZWlnaHQ6IDE4cHg7CiAgICAgICAgdXNlci1zZWxlY3Q6IG5vbmU7CiAgICAgICAgYW5pbWF0aW9uOiB0YWdBcHBlYXIgMC4xNXMgY3ViaWMtYmV6aWVyKDAuNCwgMCwgMC4yLCAxKTsKICAgICAgfQoKICAgICAgQGtleWZyYW1lcyB0YWdBcHBlYXIgewogICAgICAgIGZyb20gewogICAgICAgICAgdHJhbnNmb3JtOiBzY2FsZSgwLjk1KTsKICAgICAgICAgIG9wYWNpdHk6IDA7CiAgICAgICAgfQogICAgICAgIHRvIHsKICAgICAgICAgIHRyYW5zZm9ybTogc2NhbGUoMSk7CiAgICAgICAgICBvcGFjaXR5OiAxOwogICAgICAgIH0KICAgICAgfQoKICAgICAgLnRhZy1yZW1vdmUgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKICAgICAgICB3aWR0aDogMTRweDsKICAgICAgICBoZWlnaHQ6IDE0cHg7CiAgICAgICAgbWFyZ2luLWxlZnQ6IDJweDsKICAgICAgICBib3JkZXItcmFkaXVzOiAzcHg7CiAgICAgICAgY3Vyc29yOiBwb2ludGVyOwogICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjE1cyBlYXNlOwogICAgICAgIGNvbG9yOiAke3AuYmRUaGVtZSgiaHNsKDIxNS4zIDI1JSA0Ni43JSkiLCJoc2woMjE3LjkgMTAuNiUgNTQuOSUpIil9OwogICAgICB9CgogICAgICAudGFnLXJlbW92ZTpob3ZlciB7CiAgICAgICAgYmFja2dyb3VuZDogJHtwLmJkVGhlbWUoImhzbCgwIDAlIDAlIC8gMC4wOCkiLCJoc2woMCAwJSAxMDAlIC8gMC4wOCkiKX07CiAgICAgICAgY29sb3I6ICR7cC5iZFRoZW1lKCJoc2woMjE1LjMgMjUlIDI2LjclKSIsImhzbCgyMTcuOSAxMC42JSA3NC45JSkiKX07CiAgICAgIH0KCiAgICAgIC50YWctcmVtb3ZlIGRlZXMtaWNvbiB7CiAgICAgICAgd2lkdGg6IDEwcHg7CiAgICAgICAgaGVpZ2h0OiAxMHB4OwogICAgICB9CgogICAgICAudGFnLWlucHV0IHsKICAgICAgICBmbGV4OiAxOwogICAgICAgIG1pbi13aWR0aDogMTIwcHg7CiAgICAgICAgYm9yZGVyOiBub25lOwogICAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50OwogICAgICAgIG91dGxpbmU6IG5vbmU7CiAgICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgICAgIGZvbnQtZmFtaWx5OiBpbmhlcml0OwogICAgICAgIGNvbG9yOiAke3AuYmRUaGVtZSgiaHNsKDAgMCUgOSUpIiwiaHNsKDAgMCUgOTUlKSIpfTsKICAgICAgICBwYWRkaW5nOiAycHggNHB4OwogICAgICAgIGxpbmUtaGVpZ2h0OiAyMHB4OwogICAgICB9CgogICAgICAudGFnLWlucHV0OjpwbGFjZWhvbGRlciB7CiAgICAgICAgY29sb3I6ICR7cC5iZFRoZW1lKCJoc2woMCAwJSA2My45JSkiLCJoc2woMCAwJSA0NS4xJSkiKX07CiAgICAgIH0KCiAgICAgIC50YWctaW5wdXQ6ZGlzYWJsZWQgewogICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7CiAgICAgIH0KCiAgICAgIC8qIFN1Z2dlc3Rpb25zIGRyb3Bkb3duICovCiAgICAgIC5zdWdnZXN0aW9ucy1jb250YWluZXIgewogICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgfQoKICAgICAgLnN1Z2dlc3Rpb25zLWRyb3Bkb3duIHsKICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgICAgdG9wOiAxMDAlOwogICAgICAgIGxlZnQ6IDA7CiAgICAgICAgcmlnaHQ6IDA7CiAgICAgICAgbWFyZ2luLXRvcDogNHB4OwogICAgICAgIGJhY2tncm91bmQ6ICR7cC5iZFRoZW1lKCJoc2woMCAwJSAxMDAlKSIsImhzbCgwIDAlIDMuOSUpIil9OwogICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICR7cC5iZFRoZW1lKCJoc2woMCAwJSA4OS44JSkiLCJoc2woMCAwJSAxNC45JSkiKX07CiAgICAgICAgYm9yZGVyLXJhZGl1czogNnB4OwogICAgICAgIGJveC1zaGFkb3c6IDAgNHB4IDZweCAtMXB4IGhzbCgwIDAlIDAlIC8gMC4xKSwgMCAycHggNHB4IC0ycHggaHNsKDAgMCUgMCUgLyAwLjEpOwogICAgICAgIG1heC1oZWlnaHQ6IDIwMHB4OwogICAgICAgIG92ZXJmbG93LXk6IGF1dG87CiAgICAgICAgei1pbmRleDogMTAwMDsKICAgICAgfQoKICAgICAgLnN1Z2dlc3Rpb24gewogICAgICAgIHBhZGRpbmc6IDZweCAxMHB4OwogICAgICAgIGN1cnNvcjogcG9pbnRlcjsKICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC4xNXMgZWFzZTsKICAgICAgICBmb250LXNpemU6IDE0cHg7CiAgICAgICAgY29sb3I6ICR7cC5iZFRoZW1lKCJoc2woMCAwJSAxNSUpIiwiaHNsKDAgMCUgOTAlKSIpfTsKICAgICAgfQoKICAgICAgLnN1Z2dlc3Rpb246aG92ZXIgewogICAgICAgIGJhY2tncm91bmQ6ICR7cC5iZFRoZW1lKCJoc2woMCAwJSA5NS4xJSkiLCJoc2woMCAwJSAxNC45JSkiKX07CiAgICAgIH0KCiAgICAgIC5zdWdnZXN0aW9uLmhpZ2hsaWdodGVkIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke3AuYmRUaGVtZSgiaHNsKDIxMCA0MCUgOTYuMSUpIiwiaHNsKDIxNSAyMC4yJSAxNi44JSkiKX07CiAgICAgICAgY29sb3I6ICR7cC5iZFRoZW1lKCJoc2woMCAwJSA5JSkiLCJoc2woMCAwJSA5NSUpIil9OwogICAgICB9CgogICAgICAvKiBWYWxpZGF0aW9uIHN0eWxlcyAqLwogICAgICAudmFsaWRhdGlvbi1tZXNzYWdlIHsKICAgICAgICBjb2xvcjogJHtwLmJkVGhlbWUoImhzbCgwIDcyLjIlIDUwLjYlKSIsImhzbCgwIDYyLjglIDMwLjYlKSIpfTsKICAgICAgICBmb250LXNpemU6IDEzcHg7CiAgICAgICAgbWFyZ2luLXRvcDogNnB4OwogICAgICAgIGxpbmUtaGVpZ2h0OiAxLjU7CiAgICAgIH0KCiAgICAgIC8qIERlc2NyaXB0aW9uIHN0eWxlcyAqLwogICAgICAuZGVzY3JpcHRpb24gewogICAgICAgIGNvbG9yOiAke3AuYmRUaGVtZSgiaHNsKDIxNS40IDE2LjMlIDU2LjklKSIsImhzbCgyMTUgMjAuMiUgNTUuMSUpIil9OwogICAgICAgIGZvbnQtc2l6ZTogMTNweDsKICAgICAgICBtYXJnaW4tdG9wOiA2cHg7CiAgICAgICAgbGluZS1oZWlnaHQ6IDEuNTsKICAgICAgfQoKICAgICAgLyogU2Nyb2xsYmFyIHN0eWxpbmcgKi8KICAgICAgLnN1Z2dlc3Rpb25zLWRyb3Bkb3duOjotd2Via2l0LXNjcm9sbGJhciB7CiAgICAgICAgd2lkdGg6IDhweDsKICAgICAgfQoKICAgICAgLnN1Z2dlc3Rpb25zLWRyb3Bkb3duOjotd2Via2l0LXNjcm9sbGJhci10cmFjayB7CiAgICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7CiAgICAgIH0KCiAgICAgIC5zdWdnZXN0aW9ucy1kcm9wZG93bjo6LXdlYmtpdC1zY3JvbGxiYXItdGh1bWIgewogICAgICAgIGJhY2tncm91bmQ6ICR7cC5iZFRoZW1lKCJoc2woMCAwJSA4OS44JSkiLCJoc2woMCAwJSAxNC45JSkiKX07CiAgICAgICAgYm9yZGVyLXJhZGl1czogNHB4OwogICAgICB9CgogICAgICAuc3VnZ2VzdGlvbnMtZHJvcGRvd246Oi13ZWJraXQtc2Nyb2xsYmFyLXRodW1iOmhvdmVyIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke3AuYmRUaGVtZSgiaHNsKDAgMCUgNzkuOCUpIiwiaHNsKDAgMCUgMjAuOSUpIil9OwogICAgICB9CiAgICBgXTtyZW5kZXIoKXtsZXQgVD10aGlzLnN1Z2dlc3Rpb25zLmZpbHRlcigkPT4hdGhpcy52YWx1ZS5pbmNsdWRlcygkKSYmJC50b0xvd2VyQ2FzZSgpLmluY2x1ZGVzKHRoaXMuaW5wdXRWYWx1ZS50b0xvd2VyQ2FzZSgpKSk7cmV0dXJuIHdgCiAgICAgIDxkaXYgY2xhc3M9ImlucHV0LXdyYXBwZXIiPgogICAgICAgICR7dGhpcy5sYWJlbD93YDxkZWVzLWxhYmVsIC5sYWJlbD0ke3RoaXMubGFiZWx9IC5yZXF1aXJlZD0ke3RoaXMucmVxdWlyZWR9PjwvZGVlcy1sYWJlbD5gOiIifQogICAgICAgIAogICAgICAgIDxkaXYgY2xhc3M9InN1Z2dlc3Rpb25zLWNvbnRhaW5lciI+CiAgICAgICAgICA8ZGl2CiAgICAgICAgICAgIGNsYXNzPSJ0YWdzLWNvbnRhaW5lciAke3RoaXMuZGlzYWJsZWQ/ImRpc2FibGVkIjoiIn0iCiAgICAgICAgICAgIEBjbGljaz0ke3RoaXMuaGFuZGxlQ29udGFpbmVyQ2xpY2t9CiAgICAgICAgICA+CiAgICAgICAgICAgICR7dGhpcy52YWx1ZS5tYXAoJD0+d2AKICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJ0YWciPgogICAgICAgICAgICAgICAgPHNwYW4+JHskfTwvc3Bhbj4KICAgICAgICAgICAgICAgICR7dGhpcy5kaXNhYmxlZD8iIjp3YAogICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJ0YWctcmVtb3ZlIiBAY2xpY2s9JHtWPT50aGlzLnJlbW92ZVRhZyhWLCQpfT4KICAgICAgICAgICAgICAgICAgICA8ZGVlcy1pY29uIC5pY29uPSR7Imx1Y2lkZTp4In0+PC9kZWVzLWljb24+CiAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgYH0KICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgYCl9CiAgICAgICAgICAgIAogICAgICAgICAgICAkeyF0aGlzLmRpc2FibGVkJiYoIXRoaXMubWF4VGFnc3x8dGhpcy52YWx1ZS5sZW5ndGg8dGhpcy5tYXhUYWdzKT93YAogICAgICAgICAgICAgIDxpbnB1dAogICAgICAgICAgICAgICAgdHlwZT0idGV4dCIKICAgICAgICAgICAgICAgIGNsYXNzPSJ0YWctaW5wdXQiCiAgICAgICAgICAgICAgICAucGxhY2Vob2xkZXI9JHt0aGlzLnBsYWNlaG9sZGVyfQogICAgICAgICAgICAgICAgLnZhbHVlPSR7dGhpcy5pbnB1dFZhbHVlfQogICAgICAgICAgICAgICAgQGlucHV0PSR7dGhpcy5oYW5kbGVJbnB1dH0KICAgICAgICAgICAgICAgIEBrZXlkb3duPSR7dGhpcy5oYW5kbGVLZXlEb3dufQogICAgICAgICAgICAgICAgQGZvY3VzPSR7dGhpcy5oYW5kbGVGb2N1c30KICAgICAgICAgICAgICAgIEBibHVyPSR7dGhpcy5oYW5kbGVCbHVyfQogICAgICAgICAgICAgICAgP2Rpc2FibGVkPSR7dGhpcy5kaXNhYmxlZH0KICAgICAgICAgICAgICAvPgogICAgICAgICAgICBgOiIifQogICAgICAgICAgPC9kaXY+CgogICAgICAgICAgJHt0aGlzLnNob3dTdWdnZXN0aW9ucyYmVC5sZW5ndGg+MD93YAogICAgICAgICAgICA8ZGl2IGNsYXNzPSJzdWdnZXN0aW9ucy1kcm9wZG93biI+CiAgICAgICAgICAgICAgJHtULm1hcCgoJCxWKT0+d2AKICAgICAgICAgICAgICAgIDxkaXYKICAgICAgICAgICAgICAgICAgY2xhc3M9InN1Z2dlc3Rpb24gJHtWPT09dGhpcy5oaWdobGlnaHRlZFN1Z2dlc3Rpb25JbmRleD8iaGlnaGxpZ2h0ZWQiOiIifSIKICAgICAgICAgICAgICAgICAgQG1vdXNlZG93bj0ke1I9PntSLnByZXZlbnREZWZhdWx0KCksdGhpcy5hZGRUYWcoJCl9fQogICAgICAgICAgICAgICAgICBAbW91c2VlbnRlcj0keygpPT50aGlzLmhpZ2hsaWdodGVkU3VnZ2VzdGlvbkluZGV4PVZ9CiAgICAgICAgICAgICAgICA+CiAgICAgICAgICAgICAgICAgICR7JH0KICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgIGApfQogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIGA6IiJ9CiAgICAgICAgPC9kaXY+CgogICAgICAgICR7dGhpcy52YWxpZGF0aW9uVGV4dD93YAogICAgICAgICAgPGRpdiBjbGFzcz0idmFsaWRhdGlvbi1tZXNzYWdlIj4ke3RoaXMudmFsaWRhdGlvblRleHR9PC9kaXY+CiAgICAgICAgYDoiIn0KICAgICAgICAKICAgICAgICAke3RoaXMuZGVzY3JpcHRpb24/d2AKICAgICAgICAgIDxkaXYgY2xhc3M9ImRlc2NyaXB0aW9uIj4ke3RoaXMuZGVzY3JpcHRpb259PC9kaXY+CiAgICAgICAgYDoiIn0KICAgICAgPC9kaXY+CiAgICBgfWhhbmRsZUNvbnRhaW5lckNsaWNrKFQpe2lmKHRoaXMuZGlzYWJsZWQpcmV0dXJuO2xldCAkPXRoaXMuc2hhZG93Um9vdD8ucXVlcnlTZWxlY3RvcigiLnRhZy1pbnB1dCIpOyQmJlQudGFyZ2V0IT09JCYmJC5mb2N1cygpfWhhbmRsZUlucHV0KFQpe2xldCAkPVQudGFyZ2V0O2lmKHRoaXMuaW5wdXRWYWx1ZT0kLnZhbHVlLHRoaXMuaW5wdXRWYWx1ZS5pbmNsdWRlcygiLCIpfHx0aGlzLmlucHV0VmFsdWUuaW5jbHVkZXMoIjsiKSl7bGV0IFY9dGhpcy5pbnB1dFZhbHVlLnJlcGxhY2UoL1ssO10vZywiIikudHJpbSgpO1YmJnRoaXMuYWRkVGFnKFYpfX1oYW5kbGVLZXlEb3duKFQpe2xldCAkPVQudGFyZ2V0O2lmKFQua2V5PT09IkVudGVyIilpZihULnByZXZlbnREZWZhdWx0KCksdGhpcy5oaWdobGlnaHRlZFN1Z2dlc3Rpb25JbmRleD49MCYmdGhpcy5zaG93U3VnZ2VzdGlvbnMpe2xldCBWPXRoaXMuc3VnZ2VzdGlvbnMuZmlsdGVyKFI9PiF0aGlzLnZhbHVlLmluY2x1ZGVzKFIpJiZSLnRvTG93ZXJDYXNlKCkuaW5jbHVkZXModGhpcy5pbnB1dFZhbHVlLnRvTG93ZXJDYXNlKCkpKTtWW3RoaXMuaGlnaGxpZ2h0ZWRTdWdnZXN0aW9uSW5kZXhdJiZ0aGlzLmFkZFRhZyhWW3RoaXMuaGlnaGxpZ2h0ZWRTdWdnZXN0aW9uSW5kZXhdKX1lbHNlIHRoaXMuaW5wdXRWYWx1ZS50cmltKCkmJnRoaXMuYWRkVGFnKHRoaXMuaW5wdXRWYWx1ZS50cmltKCkpO2Vsc2UgaWYoVC5rZXk9PT0iQmFja3NwYWNlIiYmIXRoaXMuaW5wdXRWYWx1ZSYmdGhpcy52YWx1ZS5sZW5ndGg+MCl0aGlzLnJlbW92ZVRhZyhULHRoaXMudmFsdWVbdGhpcy52YWx1ZS5sZW5ndGgtMV0pO2Vsc2UgaWYoVC5rZXk9PT0iQXJyb3dEb3duIiYmdGhpcy5zaG93U3VnZ2VzdGlvbnMpe1QucHJldmVudERlZmF1bHQoKTtsZXQgVj10aGlzLnN1Z2dlc3Rpb25zLmZpbHRlcihSPT4hdGhpcy52YWx1ZS5pbmNsdWRlcyhSKSYmUi50b0xvd2VyQ2FzZSgpLmluY2x1ZGVzKHRoaXMuaW5wdXRWYWx1ZS50b0xvd2VyQ2FzZSgpKSkubGVuZ3RoO3RoaXMuaGlnaGxpZ2h0ZWRTdWdnZXN0aW9uSW5kZXg9TWF0aC5taW4odGhpcy5oaWdobGlnaHRlZFN1Z2dlc3Rpb25JbmRleCsxLFYtMSl9ZWxzZSBULmtleT09PSJBcnJvd1VwIiYmdGhpcy5zaG93U3VnZ2VzdGlvbnM/KFQucHJldmVudERlZmF1bHQoKSx0aGlzLmhpZ2hsaWdodGVkU3VnZ2VzdGlvbkluZGV4PU1hdGgubWF4KHRoaXMuaGlnaGxpZ2h0ZWRTdWdnZXN0aW9uSW5kZXgtMSwwKSk6VC5rZXk9PT0iRXNjYXBlIiYmKHRoaXMuc2hvd1N1Z2dlc3Rpb25zPSExLHRoaXMuaGlnaGxpZ2h0ZWRTdWdnZXN0aW9uSW5kZXg9LTEpfWhhbmRsZUZvY3VzKCl7dGhpcy5zdWdnZXN0aW9ucy5sZW5ndGg+MCYmKHRoaXMuc2hvd1N1Z2dlc3Rpb25zPSEwKX1oYW5kbGVCbHVyKCl7c2V0VGltZW91dCgoKT0+e3RoaXMuc2hvd1N1Z2dlc3Rpb25zPSExLHRoaXMuaGlnaGxpZ2h0ZWRTdWdnZXN0aW9uSW5kZXg9LTF9LDIwMCl9YWRkVGFnKFQpe2lmKCFUfHx0aGlzLnZhbHVlLmluY2x1ZGVzKFQpfHx0aGlzLm1heFRhZ3MmJnRoaXMudmFsdWUubGVuZ3RoPj10aGlzLm1heFRhZ3MpcmV0dXJuO3RoaXMudmFsdWU9Wy4uLnRoaXMudmFsdWUsVF0sdGhpcy5pbnB1dFZhbHVlPSIiLHRoaXMuc2hvd1N1Z2dlc3Rpb25zPSExLHRoaXMuaGlnaGxpZ2h0ZWRTdWdnZXN0aW9uSW5kZXg9LTE7bGV0ICQ9dGhpcy5zaGFkb3dSb290Py5xdWVyeVNlbGVjdG9yKCIudGFnLWlucHV0Iik7JCYmKCQudmFsdWU9IiIpLHRoaXMuZW1pdENoYW5nZSgpfXJlbW92ZVRhZyhULCQpe1Quc3RvcFByb3BhZ2F0aW9uKCksdGhpcy52YWx1ZT10aGlzLnZhbHVlLmZpbHRlcihWPT5WIT09JCksdGhpcy5lbWl0Q2hhbmdlKCl9ZW1pdENoYW5nZSgpe3RoaXMuZGlzcGF0Y2hFdmVudChuZXcgQ3VzdG9tRXZlbnQoImNoYW5nZSIse2RldGFpbDp7dmFsdWU6dGhpcy52YWx1ZX0sYnViYmxlczohMCxjb21wb3NlZDohMH0pKSx0aGlzLmNoYW5nZVN1YmplY3QubmV4dCh0aGlzKX1nZXRWYWx1ZSgpe3JldHVybiB0aGlzLnZhbHVlfXNldFZhbHVlKFQpe3RoaXMudmFsdWU9VHx8W119YXN5bmMgdmFsaWRhdGUoKXtyZXR1cm4gdGhpcy5yZXF1aXJlZCYmKCF0aGlzLnZhbHVlfHx0aGlzLnZhbHVlLmxlbmd0aD09PTApPyh0aGlzLnZhbGlkYXRpb25UZXh0PSJBdCBsZWFzdCBvbmUgdGFnIGlzIHJlcXVpcmVkIiwhMSk6KHRoaXMudmFsaWRhdGlvblRleHQ9IiIsITApfWNvbnN0cnVjdG9yKCl7c3VwZXIoLi4uYXJndW1lbnRzKSwkMih0aGlzLHopfXN0YXRpY3skMihpLGEpfX07cmV0dXJuIEU9aX0pKCl9KTt2YXIgY2d0PWIoKCk9PntsZ3QoKX0pO3ZhciBkZ3Q9YigoKT0+e2xvKCl9KTt2YXIgaGd0PWIoKCk9PntYcSgpfSk7dmFyIHBndD1iKCgpPT57UXEoKX0pO3ZhciByVXQsc1V0LG5VdCxvVXQsbFV0LGNVdCxkVXQsdWd0LGZndD1iKCgpPT57dWUoKTt4MSgpO20yKCk7clV0PSgpPT57bGV0IHQ9RGF0ZS5ub3coKTtyZXR1cm5be2lkOmB0aXRsZS0ke3R9YCx0eXBlOiJoZWFkaW5nLTEiLGNvbnRlbnQ6IlN5c3RlbSBQZXJmb3JtYW5jZSBSZXBvcnQifSx7aWQ6YGRhdGUtJHt0KzF9YCx0eXBlOiJwYXJhZ3JhcGgiLGNvbnRlbnQ6YEdlbmVyYXRlZCBvbjogJHtuZXcgRGF0ZSgpLnRvTG9jYWxlU3RyaW5nKCl9YH0se2lkOmBzdW1tYXJ5LWhlYWRpbmctJHt0KzJ9YCx0eXBlOiJoZWFkaW5nLTIiLGNvbnRlbnQ6IkV4ZWN1dGl2ZSBTdW1tYXJ5In0se2lkOmBzdW1tYXJ5LSR7dCszfWAsdHlwZToicGFyYWdyYXBoIixjb250ZW50OiJUaGlzIHJlcG9ydCBwcm92aWRlcyBhbiBhbmFseXNpcyBvZiBzeXN0ZW0gcGVyZm9ybWFuY2UgbWV0cmljcyBvdmVyIHRoZSBsYXN0IDMwIGRheXMuIn0se2lkOmBtZXRyaWNzLWhlYWRpbmctJHt0KzR9YCx0eXBlOiJoZWFkaW5nLTIiLGNvbnRlbnQ6IktleSBNZXRyaWNzIn0se2lkOmBtZXRyaWNzLWxpc3QtJHt0KzV9YCx0eXBlOiJsaXN0Iixjb250ZW50OmBBdmVyYWdlIHJlc3BvbnNlIHRpbWU6IDEyNG1zClVwdGltZTogOTkuOTclCkNQVSB1dGlsaXphdGlvbjogNDUlCk1lbW9yeSB1c2FnZTogMi4zR0IgLyA4R0JgLG1ldGFkYXRhOntsaXN0VHlwZToiYnVsbGV0In19LHtpZDpgYW5hbHlzaXMtaGVhZGluZy0ke3QrNn1gLHR5cGU6ImhlYWRpbmctMiIsY29udGVudDoiUGVyZm9ybWFuY2UgQW5hbHlzaXMifSx7aWQ6YGFuYWx5c2lzLXF1b3RlLSR7dCs3fWAsdHlwZToicXVvdGUiLGNvbnRlbnQ6IlN5c3RlbSBwZXJmb3JtYW5jZSByZW1haW5zIHdpdGhpbiBhY2NlcHRhYmxlIHBhcmFtZXRlcnMgd2l0aCByb29tIGZvciBvcHRpbWl6YXRpb24gaW4gbWVtb3J5IG1hbmFnZW1lbnQuIn0se2lkOmBjb2RlLWhlYWRpbmctJHt0Kzh9YCx0eXBlOiJoZWFkaW5nLTMiLGNvbnRlbnQ6IlNhbXBsZSBRdWVyeSBQZXJmb3JtYW5jZSJ9LHtpZDpgY29kZS1ibG9jay0ke3QrOX1gLHR5cGU6ImNvZGUiLGNvbnRlbnQ6YFNFTEVDVCBBVkcocmVzcG9uc2VfdGltZSkgYXMgYXZnX3RpbWUsCiAgICAgICBDT1VOVCgqKSBhcyB0b3RhbF9yZXF1ZXN0cywKICAgICAgIERBVEUoY3JlYXRlZF9hdCkgYXMgZGF0ZQpGUk9NIHBlcmZvcm1hbmNlX2xvZ3MKV0hFUkUgY3JlYXRlZF9hdCA+PSBOT1coKSAtIElOVEVSVkFMIDMwIERBWQpHUk9VUCBCWSBEQVRFKGNyZWF0ZWRfYXQpCk9SREVSIEJZIGRhdGUgREVTQztgLG1ldGFkYXRhOntsYW5ndWFnZToic3FsIn19LHtpZDpgZGl2aWRlci0ke3QrMTB9YCx0eXBlOiJkaXZpZGVyIixjb250ZW50OiIifSx7aWQ6YGZvb3Rlci0ke3QrMTF9YCx0eXBlOiJwYXJhZ3JhcGgiLGNvbnRlbnQ6IlJlcG9ydCBnZW5lcmF0ZWQgYXV0b21hdGljYWxseSBieSBTeXN0ZW0gTW9uaXRvciB2Mi41LjAifV19LHNVdD0oKT0+e2xldCB0PURhdGUubm93KCk7cmV0dXJuW3tpZDpgcmVjaXBlLXRpdGxlLSR7dH1gLHR5cGU6ImhlYWRpbmctMSIsY29udGVudDoiQ2xhc3NpYyBNYXJnaGVyaXRhIFBpenphIn0se2lkOmByZWNpcGUtaW50cm8tJHt0KzF9YCx0eXBlOiJwYXJhZ3JhcGgiLGNvbnRlbnQ6IkEgdHJhZGl0aW9uYWwgSXRhbGlhbiBwaXp6YSB3aXRoIGZyZXNoIGJhc2lsLCBtb3p6YXJlbGxhLCBhbmQgdG9tYXRvIHNhdWNlLiJ9LHtpZDpgaW5ncmVkaWVudHMtaGVhZGluZy0ke3QrMn1gLHR5cGU6ImhlYWRpbmctMiIsY29udGVudDoiXHV7MUYzNTV9IEluZ3JlZGllbnRzIn0se2lkOmBkb3VnaC1oZWFkaW5nLSR7dCszfWAsdHlwZToiaGVhZGluZy0zIixjb250ZW50OiJGb3IgdGhlIERvdWdoOiJ9LHtpZDpgZG91Z2gtbGlzdC0ke3QrNH1gLHR5cGU6Imxpc3QiLGNvbnRlbnQ6YDUwMGcgdGlwbyAiMDAiIGZsb3VyCjMyNW1sIHdhcm0gd2F0ZXIKMTBnIHNhbHQKN2cgYWN0aXZlIGRyeSB5ZWFzdAoyIHRic3Agb2xpdmUgb2lsYCxtZXRhZGF0YTp7bGlzdFR5cGU6ImJ1bGxldCJ9fSx7aWQ6YHRvcHBpbmdzLWhlYWRpbmctJHt0KzV9YCx0eXBlOiJoZWFkaW5nLTMiLGNvbnRlbnQ6IkZvciB0aGUgVG9wcGluZ3M6In0se2lkOmB0b3BwaW5ncy1saXN0LSR7dCs2fWAsdHlwZToibGlzdCIsY29udGVudDpgNDAwZyBjYW5uZWQgU2FuIE1hcnphbm8gdG9tYXRvZXMKMjUwZyBmcmVzaCBtb3p6YXJlbGxhCkZyZXNoIGJhc2lsIGxlYXZlcwpFeHRyYSB2aXJnaW4gb2xpdmUgb2lsClNhbHQgYW5kIHBlcHBlciB0byB0YXN0ZWAsbWV0YWRhdGE6e2xpc3RUeXBlOiJidWxsZXQifX0se2lkOmBpbnN0cnVjdGlvbnMtaGVhZGluZy0ke3QrN31gLHR5cGU6ImhlYWRpbmctMiIsY29udGVudDoiXHV7MUY0Njh9XHUyMDBEXHV7MUYzNzN9IEluc3RydWN0aW9ucyJ9LHtpZDpgc3RlcHMtbGlzdC0ke3QrOH1gLHR5cGU6Imxpc3QiLGNvbnRlbnQ6YERpc3NvbHZlIHllYXN0IGluIHdhcm0gd2F0ZXIgYW5kIGxldCBzdGFuZCBmb3IgNSBtaW51dGVzCk1peCBmbG91ciBhbmQgc2FsdCwgY3JlYXRlIGEgd2VsbCBpbiBjZW50ZXIKQWRkIHllYXN0IG1peHR1cmUgYW5kIG9saXZlIG9pbApLbmVhZCBmb3IgMTAgbWludXRlcyB1bnRpbCBzbW9vdGgKTGV0IHJpc2UgZm9yIDEtMiBob3VycyB1bnRpbCBkb3VibGVkClB1bmNoIGRvd24gYW5kIGRpdmlkZSBpbnRvIHBvcnRpb25zClJvbGwgb3V0IGVhY2ggcG9ydGlvbiB0byAxMi1pbmNoIGNpcmNsZXMKVG9wIHdpdGggY3J1c2hlZCB0b21hdG9lcywgbW96emFyZWxsYSwgYW5kIGJhc2lsCkJha2UgYXQgNDc1XHhCMEYgKDI0NVx4QjBDKSBmb3IgMTAtMTIgbWludXRlc2AsbWV0YWRhdGE6e2xpc3RUeXBlOiJvcmRlcmVkIn19LHtpZDpgdGlwLSR7dCs5fWAsdHlwZToicXVvdGUiLGNvbnRlbnQ6IlBybyB0aXA6IEZvciBhbiBhdXRoZW50aWMgdGFzdGUsIHVzZSBhIHBpenphIHN0b25lIGFuZCBwcmVoZWF0IGl0IGluIHRoZSBvdmVuIGZvciBhdCBsZWFzdCAzMCBtaW51dGVzIGJlZm9yZSBiYWtpbmcuIn0se2lkOmBkaXZpZGVyLSR7dCsxMH1gLHR5cGU6ImRpdmlkZXIiLGNvbnRlbnQ6IiJ9LHtpZDpgc2VydmluZ3MtJHt0KzExfWAsdHlwZToicGFyYWdyYXBoIixjb250ZW50OiJTZXJ2aW5nczogNCBwaXp6YXMgfCBQcmVwIHRpbWU6IDIgaG91cnMgfCBDb29rIHRpbWU6IDEyIG1pbnV0ZXMifV19LG5VdD10PT57bGV0IGU9e307cmV0dXJuIGUuYmFzaWM9dC5xdWVyeVNlbGVjdG9yKCIjZWRpdG9yLWJhc2ljIiksZS5hcnRpY2xlPXQucXVlcnlTZWxlY3RvcigiI2VkaXRvci1hcnRpY2xlIiksZS5kcmFnRHJvcD10LnF1ZXJ5U2VsZWN0b3IoIiNlZGl0b3ItZHJhZ2Ryb3AiKSxlLnR1dG9yaWFsPXQucXVlcnlTZWxlY3RvcigiI2VkaXRvci10dXRvcmlhbCIpLGUubWVldGluZz10LnF1ZXJ5U2VsZWN0b3IoIiNlZGl0b3ItbWVldGluZyIpLGUucmVjaXBlPXQucXVlcnlTZWxlY3RvcigiI2VkaXRvci1yZWNpcGUiKSxlLnRlY2huaWNhbD10LnF1ZXJ5U2VsZWN0b3IoIiNlZGl0b3ItdGVjaG5pY2FsIiksZS5mb3JtSW50ZWdyYXRpb249dC5xdWVyeVNlbGVjdG9yKCIjZWRpdG9yLWZvcm0taW50ZWdyYXRpb24iKSxlLnByb2dyYW1tYXRpYz10LnF1ZXJ5U2VsZWN0b3IoIiNlZGl0b3ItcHJvZ3JhbW1hdGljIiksZS5leHBvcnREZW1vPXQucXVlcnlTZWxlY3RvcigiI2VkaXRvci1leHBvcnQiKSxlfSxvVXQ9KHQsZSk9PntsZXQgYT10LnF1ZXJ5U2VsZWN0b3IoIiNidG4tZ2VuZXJhdGUtcmVwb3J0IiksaT10LnF1ZXJ5U2VsZWN0b3IoIiNidG4tZ2VuZXJhdGUtcmVjaXBlIikscj10LnF1ZXJ5U2VsZWN0b3IoIiNidG4tY2xlYXItZWRpdG9yIik7YSYmYS5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsKCk9PntlLmltcG9ydEJsb2NrcyhyVXQoKSl9KSxpJiZpLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIiwoKT0+e2UuaW1wb3J0QmxvY2tzKHNVdCgpKX0pLHImJnIuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLCgpPT57ZS5pbXBvcnRCbG9ja3MoW10pfSl9LGxVdD0odCxlKT0+e2xldCBhPXQucXVlcnlTZWxlY3RvcigiI2J0bi1leHBvcnQtYmxvY2tzIiksaT10LnF1ZXJ5U2VsZWN0b3IoIiNidG4tZXhwb3J0LWh0bWwiKSxyPXQucXVlcnlTZWxlY3RvcigiI2J0bi1leHBvcnQtbWFya2Rvd24iKSxzPXQucXVlcnlTZWxlY3RvcigiI2J0bi1zYXZlLXN0YXRlIiksbj10LnF1ZXJ5U2VsZWN0b3IoIiNidG4tcmVzdG9yZS1zdGF0ZSIpLG89bnVsbDthJiZhLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIiwoKT0+e2xldCBkPWUuZXhwb3J0QmxvY2tzKCk7Y29uc29sZS5sb2coIkV4cG9ydGVkIGJsb2NrczoiLGQpLGFsZXJ0KGBFeHBvcnRlZCAke2QubGVuZ3RofSBibG9ja3MgdG8gY29uc29sZS4gQ2hlY2sgZGV2ZWxvcGVyIHRvb2xzLmApfSksaSYmaS5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsKCk9PntsZXQgZD1lLmV4cG9ydEFzSHRtbCgpO2NvbnNvbGUubG9nKCJIVE1MIEV4cG9ydDoiLGQpLGFsZXJ0KCJIVE1MIGV4cG9ydGVkIHRvIGNvbnNvbGUuIENoZWNrIGRldmVsb3BlciB0b29scy4iKX0pLHImJnIuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLCgpPT57bGV0IGQ9ZS5leHBvcnRBc01hcmtkb3duKCk7Y29uc29sZS5sb2coIk1hcmtkb3duIEV4cG9ydDoiLGQpLGFsZXJ0KCJNYXJrZG93biBleHBvcnRlZCB0byBjb25zb2xlLiBDaGVjayBkZXZlbG9wZXIgdG9vbHMuIil9KSxzJiZzLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIiwoKT0+e289ZS5leHBvcnRTdGF0ZSgpLGNvbnNvbGUubG9nKCJTYXZlZCBzdGF0ZToiLG8pLGFsZXJ0KCJFZGl0b3Igc3RhdGUgc2F2ZWQhIil9KSxuJiZuLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIiwoKT0+e28/KGUuaW1wb3J0U3RhdGUobyksYWxlcnQoIkVkaXRvciBzdGF0ZSByZXN0b3JlZCEiKSk6YWxlcnQoIk5vIHNhdmVkIHN0YXRlIGZvdW5kLiBTYXZlIHN0YXRlIGZpcnN0ISIpfSl9LGNVdD0odCxlLGEpPT57bGV0IGk9dC5xdWVyeVNlbGVjdG9yKCIjYnRuLXNob3ctaHRtbC1vdXRwdXQiKSxyPXQucXVlcnlTZWxlY3RvcigiI291dHB1dC1wcmV2aWV3LWh0bWwiKTtpJiZyJiZlJiZpLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIiwoKT0+e3IudGV4dENvbnRlbnQ9ZS5nZXRWYWx1ZSgpLHIuY2xhc3NMaXN0LmFkZCgidmlzaWJsZSIpfSk7bGV0IHM9dC5xdWVyeVNlbGVjdG9yKCIjYnRuLXNob3ctbWFya2Rvd24tb3V0cHV0Iiksbj10LnF1ZXJ5U2VsZWN0b3IoIiNvdXRwdXQtcHJldmlldy1tYXJrZG93biIpO3MmJm4mJmEmJnMuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLCgpPT57bi50ZXh0Q29udGVudD1hLmdldFZhbHVlKCksbi5jbGFzc0xpc3QuYWRkKCJ2aXNpYmxlIil9KX0sZFV0PXQ9Pnt0LmFydGljbGUmJnNldFRpbWVvdXQoKCk9PntsZXQgZT1be2lkOiJpbnRyby1oZWFkaW5nLSIrRGF0ZS5ub3coKSx0eXBlOiJoZWFkaW5nLTIiLGNvbnRlbnQ6IkludHJvZHVjdGlvbiB0byBNb2Rlcm4gV2ViIERldmVsb3BtZW50In0se2lkOiJpbnRyby1wYXJhLSIrRGF0ZS5ub3coKSx0eXBlOiJwYXJhZ3JhcGgiLGNvbnRlbnQ6Ik1vZGVybiB3ZWIgZGV2ZWxvcG1lbnQgaGFzIGV2b2x2ZWQgc2lnbmlmaWNhbnRseSBvdmVyIHRoZSBwYXN0IGRlY2FkZS4gSW4gdGhpcyBhcnRpY2xlLCB3ZSdsbCBleHBsb3JlIHRoZSBrZXkgdGVjaG5vbG9naWVzIGFuZCBiZXN0IHByYWN0aWNlcyB0aGF0IGRlZmluZSB3ZWIgZGV2ZWxvcG1lbnQgaW4gMjAyNC4ifSx7aWQ6InRlY2gtaGVhZGluZy0iK0RhdGUubm93KCksdHlwZToiaGVhZGluZy0zIixjb250ZW50OiJLZXkgVGVjaG5vbG9naWVzIn0se2lkOiJ0ZWNoLWxpc3QtIitEYXRlLm5vdygpLHR5cGU6Imxpc3QiLGNvbnRlbnQ6YFR5cGVTY3JpcHQgLSBUeXBlLXNhZmUgSmF2YVNjcmlwdCBkZXZlbG9wbWVudApXZWIgQ29tcG9uZW50cyAtIE5hdGl2ZSBjb21wb25lbnQgbW9kZWwKRVMgTW9kdWxlcyAtIE1vZGVybiBtb2R1bGUgc3lzdGVtCldlYkFzc2VtYmx5IC0gSGlnaC1wZXJmb3JtYW5jZSBjb21wdXRpbmdgLG1ldGFkYXRhOntsaXN0VHlwZToib3JkZXJlZCJ9fSx7aWQ6InF1b3RlLSIrRGF0ZS5ub3coKSx0eXBlOiJxdW90ZSIsY29udGVudDoiVGhlIGJlc3Qgd2F5IHRvIHByZWRpY3QgdGhlIGZ1dHVyZSBpcyB0byBpbnZlbnQgaXQuIC0gQWxhbiBLYXkifSx7aWQ6ImV4YW1wbGUtaGVhZGluZy0iK0RhdGUubm93KCksdHlwZToiaGVhZGluZy0zIixjb250ZW50OiJDb2RlIEV4YW1wbGUifSx7aWQ6ImNvZGUtZXhhbXBsZS0iK0RhdGUubm93KCksdHlwZToiY29kZSIsY29udGVudDpgY2xhc3MgTW9kZXJuV2ViQXBwIGV4dGVuZHMgSFRNTEVsZW1lbnQgewogIGNvbnN0cnVjdG9yKCkgewogICAgc3VwZXIoKTsKICAgIHRoaXMuYXR0YWNoU2hhZG93KHsgbW9kZTogJ29wZW4nIH0pOwogIH0KICAKICBjb25uZWN0ZWRDYWxsYmFjaygpIHsKICAgIHRoaXMucmVuZGVyKCk7CiAgfQp9YCxtZXRhZGF0YTp7bGFuZ3VhZ2U6ImphdmFzY3JpcHQifX1dO3QuYXJ0aWNsZS5pbXBvcnRCbG9ja3MoZSl9LDUwMCksdC5kcmFnRHJvcCYmc2V0VGltZW91dCgoKT0+e2xldCBlPVt7aWQ6ImRyYWctdGl0bGUtIitEYXRlLm5vdygpLHR5cGU6ImhlYWRpbmctMSIsY29udGVudDoiRHJhZyAmIERyb3AgRGVtbyJ9LHtpZDoiZHJhZy1pbnRyby0iK0RhdGUubm93KCksdHlwZToicGFyYWdyYXBoIixjb250ZW50OiJUaGlzIGVkaXRvciBkZW1vbnN0cmF0ZXMgZHJhZyBhbmQgZHJvcCBmdW5jdGlvbmFsaXR5LiBUcnkgZHJhZ2dpbmcgdGhlc2UgYmxvY2tzIGFyb3VuZCEifSx7aWQ6ImRyYWctaGVhZGluZy0iK0RhdGUubm93KCksdHlwZToiaGVhZGluZy0yIixjb250ZW50OiJIb3cgSXQgV29ya3MifSx7aWQ6ImRyYWctbGlzdC0iK0RhdGUubm93KCksdHlwZToibGlzdCIsY29udGVudDpgSG92ZXIgb3ZlciBhbnkgYmxvY2sgdG8gc2VlIHRoZSBkcmFnIGhhbmRsZQpDbGljayBhbmQgaG9sZCB0aGUgaGFuZGxlIHRvIHN0YXJ0IGRyYWdnaW5nCkRyYWcgdG8gcmVvcmRlciBibG9ja3MKUmVsZWFzZSB0byBkcm9wIGluIHRoZSBuZXcgcG9zaXRpb25gLG1ldGFkYXRhOntsaXN0VHlwZToib3JkZXJlZCJ9fSx7aWQ6ImRyYWctcXVvdGUtIitEYXRlLm5vdygpLHR5cGU6InF1b3RlIixjb250ZW50OiJUaGUgZHJhZyBhbmQgZHJvcCBmZWF0dXJlIG1ha2VzIGl0IGVhc3kgdG8gcmVvcmdhbml6ZSB5b3VyIGNvbnRlbnQgd2l0aG91dCBjdXR0aW5nIGFuZCBwYXN0aW5nLiJ9LHtpZDoiZHJhZy1kaXZpZGVyLSIrRGF0ZS5ub3coKSx0eXBlOiJkaXZpZGVyIixjb250ZW50OiIifSx7aWQ6ImRyYWctZm9vdGVyLSIrRGF0ZS5ub3coKSx0eXBlOiJwYXJhZ3JhcGgiLGNvbnRlbnQ6Ik5vdGU6IERpdmlkZXIgYmxvY2tzIGNhbm5vdCBiZSBkcmFnZ2VkLCBidXQgb3RoZXIgYmxvY2tzIGNhbiBiZSBtb3ZlZCBhcm91bmQgdGhlbS4ifV07dC5kcmFnRHJvcC5pbXBvcnRCbG9ja3MoZSl9LDYwMCl9LHVndD0oKT0+d2AKICA8ZGVlcy1kZW1vd3JhcHBlciAucnVuQWZ0ZXJSZW5kZXI9JHthc3luYyB0PT57YXdhaXQgbmV3IFByb21pc2UoYT0+c2V0VGltZW91dChhLDUwMCkpO2xldCBlPW5VdCh0KTtlLnByb2dyYW1tYXRpYyYmb1V0KHQsZS5wcm9ncmFtbWF0aWMpLGUuZXhwb3J0RGVtbyYmbFV0KHQsZS5leHBvcnREZW1vKSxjVXQodCxlLm1lZXRpbmcsZS5yZWNpcGUpLGRVdChlKSxjb25zb2xlLmxvZygiV1lTSVdZRyBEZW1vIGluaXRpYWxpemVkIHdpdGggZWRpdG9yczoiLE9iamVjdC5rZXlzKGUpKX19PgogIDxzdHlsZT4KICAgICR7UWAKICAgICAgLmRlbW8tY29udGFpbmVyIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgICAgZ2FwOiAzMnB4OwogICAgICAgIHBhZGRpbmc6IDI0cHg7CiAgICAgICAgbWF4LXdpZHRoOiAxMjAwcHg7CiAgICAgICAgbWFyZ2luOiAwIGF1dG87CiAgICAgIH0KICAgICAgCiAgICAgIGRlZXMtcGFuZWwgewogICAgICAgIG1hcmdpbi1ib3R0b206IDMycHg7CiAgICAgIH0KICAgICAgCiAgICAgIC5wYW5lbC1kZXNjcmlwdGlvbiB7CiAgICAgICAgbWFyZ2luLXRvcDogMDsKICAgICAgICBtYXJnaW4tYm90dG9tOiAyNHB4OwogICAgICAgIGNvbG9yOiAjNjY2OwogICAgICAgIGZvbnQtc2l6ZTogMTVweDsKICAgICAgICBsaW5lLWhlaWdodDogMS42OwogICAgICB9CiAgICAgIAogICAgICBAbWVkaWEgKHByZWZlcnMtY29sb3Itc2NoZW1lOiBkYXJrKSB7CiAgICAgICAgLnBhbmVsLWRlc2NyaXB0aW9uIHsKICAgICAgICAgIGNvbG9yOiAjOTk5OwogICAgICAgIH0KICAgICAgfQoKICAgICAgLmZlYXR1cmUtZ3JpZCB7CiAgICAgICAgZGlzcGxheTogZ3JpZDsKICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdChhdXRvLWZpdCwgbWlubWF4KDIwMHB4LCAxZnIpKTsKICAgICAgICBnYXA6IDE2cHg7CiAgICAgICAgbWFyZ2luLWJvdHRvbTogMjRweDsKICAgICAgfQoKICAgICAgLmZlYXR1cmUtaXRlbSB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGdhcDogOHB4OwogICAgICAgIGNvbG9yOiAjNTU1OwogICAgICAgIGZvbnQtc2l6ZTogMTRweDsKICAgICAgfQoKICAgICAgLmZlYXR1cmUtaWNvbiB7CiAgICAgICAgY29sb3I6ICMwMDY2Y2M7CiAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDsKICAgICAgfQoKICAgICAgQG1lZGlhIChwcmVmZXJzLWNvbG9yLXNjaGVtZTogZGFyaykgewogICAgICAgIC5mZWF0dXJlLWl0ZW0gewogICAgICAgICAgY29sb3I6ICNhYWE7CiAgICAgICAgfQogICAgICAgIC5mZWF0dXJlLWljb24gewogICAgICAgICAgY29sb3I6ICM0ZDk0ZmY7CiAgICAgICAgfQogICAgICB9CgogICAgICAuc2hvcnRjdXRzLWJveCB7CiAgICAgICAgYmFja2dyb3VuZDogcmdiYSgwLCAxMDIsIDIwNCwgMC4wNSk7CiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgcmdiYSgwLCAxMDIsIDIwNCwgMC4yKTsKICAgICAgICBib3JkZXItcmFkaXVzOiA4cHg7CiAgICAgICAgcGFkZGluZzogMTZweDsKICAgICAgICBtYXJnaW4tdG9wOiAxNnB4OwogICAgICB9CgogICAgICBAbWVkaWEgKHByZWZlcnMtY29sb3Itc2NoZW1lOiBkYXJrKSB7CiAgICAgICAgLnNob3J0Y3V0cy1ib3ggewogICAgICAgICAgYmFja2dyb3VuZDogcmdiYSg3NywgMTQ4LCAyNTUsIDAuMSk7CiAgICAgICAgICBib3JkZXItY29sb3I6IHJnYmEoNzcsIDE0OCwgMjU1LCAwLjMpOwogICAgICAgIH0KICAgICAgfQoKICAgICAgLnNob3J0Y3V0cy10aXRsZSB7CiAgICAgICAgbWFyZ2luOiAwIDAgMTJweCAwOwogICAgICAgIGZvbnQtc2l6ZTogMTRweDsKICAgICAgICBmb250LXdlaWdodDogNjAwOwogICAgICAgIGNvbG9yOiAjMDA2NmNjOwogICAgICB9CgogICAgICBAbWVkaWEgKHByZWZlcnMtY29sb3Itc2NoZW1lOiBkYXJrKSB7CiAgICAgICAgLnNob3J0Y3V0cy10aXRsZSB7CiAgICAgICAgICBjb2xvcjogIzRkOTRmZjsKICAgICAgICB9CiAgICAgIH0KCiAgICAgIC5zaG9ydGN1dHMtZ3JpZCB7CiAgICAgICAgZGlzcGxheTogZ3JpZDsKICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdChhdXRvLWZpbGwsIG1pbm1heCgxODBweCwgMWZyKSk7CiAgICAgICAgZ2FwOiA4cHg7CiAgICAgIH0KCiAgICAgIC5zaG9ydGN1dC1pdGVtIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgZ2FwOiA4cHg7CiAgICAgICAgZm9udC1zaXplOiAxM3B4OwogICAgICAgIGNvbG9yOiAjNTU1OwogICAgICB9CgogICAgICAuc2hvcnRjdXQta2V5IHsKICAgICAgICBiYWNrZ3JvdW5kOiAjZjBmMGYwOwogICAgICAgIHBhZGRpbmc6IDJweCA2cHg7CiAgICAgICAgYm9yZGVyLXJhZGl1czogNHB4OwogICAgICAgIGZvbnQtZmFtaWx5OiBtb25vc3BhY2U7CiAgICAgICAgZm9udC1zaXplOiAxMnB4OwogICAgICAgIGNvbG9yOiAjMzMzOwogICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7CiAgICAgIH0KCiAgICAgIEBtZWRpYSAocHJlZmVycy1jb2xvci1zY2hlbWU6IGRhcmspIHsKICAgICAgICAuc2hvcnRjdXQtaXRlbSB7CiAgICAgICAgICBjb2xvcjogI2JiYjsKICAgICAgICB9CiAgICAgICAgLnNob3J0Y3V0LWtleSB7CiAgICAgICAgICBiYWNrZ3JvdW5kOiAjMzMzOwogICAgICAgICAgY29sb3I6ICNkZGQ7CiAgICAgICAgfQogICAgICB9CgogICAgICAub3V0cHV0LWdyaWQgewogICAgICAgIGRpc3BsYXk6IGdyaWQ7CiAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoYXV0by1maXQsIG1pbm1heCgzMjBweCwgMWZyKSk7CiAgICAgICAgZ2FwOiAyNHB4OwogICAgICAgIG1hcmdpbi10b3A6IDI0cHg7CiAgICAgIH0KCiAgICAgIC5vdXRwdXQtY2FyZCB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICAgIGdhcDogMTJweDsKICAgICAgfQoKICAgICAgLm91dHB1dC1hY3Rpb25zIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7CiAgICAgIH0KCiAgICAgIC5vdXRwdXQtcHJldmlldyB7CiAgICAgICAgZGlzcGxheTogbm9uZTsKICAgICAgICBiYWNrZ3JvdW5kOiByZ2JhKDE1LCAyMywgNDIsIDAuMDQpOwogICAgICAgIGNvbG9yOiB2YXIoLS1kZWVzLWNvbG9yLXRleHQsICMwZjE3MmEpOwogICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIHJnYmEoMTUsIDIzLCA0MiwgMC4xKTsKICAgICAgICBib3JkZXItcmFkaXVzOiA4cHg7CiAgICAgICAgcGFkZGluZzogMTZweDsKICAgICAgICB3aGl0ZS1zcGFjZTogcHJlLXdyYXA7CiAgICAgICAgZm9udC1mYW1pbHk6ICdHZWlzdCBNb25vJywgJ0ZpcmEgQ29kZScsIG1vbm9zcGFjZTsKICAgICAgICBmb250LXNpemU6IDEzcHg7CiAgICAgICAgbWF4LWhlaWdodDogMjgwcHg7CiAgICAgICAgb3ZlcmZsb3c6IGF1dG87CiAgICAgIH0KCiAgICAgIDpob3N0KFt0aGVtZT0nZGFyayddKSAub3V0cHV0LXByZXZpZXcgewogICAgICAgIGJhY2tncm91bmQ6IHJnYmEoMjUwLCAyNTAsIDI1MCwgMC4wNik7CiAgICAgICAgYm9yZGVyLWNvbG9yOiByZ2JhKDI1MCwgMjUwLCAyNTAsIDAuMTUpOwogICAgICAgIGNvbG9yOiB2YXIoLS1kZWVzLWNvbG9yLXRleHQsICNmNGY0ZjUpOwogICAgICB9CgogICAgICAub3V0cHV0LXByZXZpZXcudmlzaWJsZSB7CiAgICAgICAgZGlzcGxheTogYmxvY2s7CiAgICAgIH0KCiAgICAgIEBtZWRpYSAobWF4LXdpZHRoOiA3NjhweCkgewogICAgICAgIC5vdXRwdXQtZ3JpZCB7CiAgICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDFmcjsKICAgICAgICB9CiAgICAgIH0KICAgICAgCiAgICAgIC50aXBzLWJveCB7CiAgICAgICAgbWFyZ2luLXRvcDogMTZweDsKICAgICAgICBwYWRkaW5nOiAxMnB4OwogICAgICAgIGJhY2tncm91bmQ6ICNmMGY4ZmY7CiAgICAgICAgYm9yZGVyLXJhZGl1czogOHB4OwogICAgICAgIGZvbnQtc2l6ZTogMTRweDsKICAgICAgICBsaW5lLWhlaWdodDogMS42OwogICAgICB9CiAgICAgIAogICAgICBAbWVkaWEgKHByZWZlcnMtY29sb3Itc2NoZW1lOiBkYXJrKSB7CiAgICAgICAgLnRpcHMtYm94IHsKICAgICAgICAgIGJhY2tncm91bmQ6IHJnYmEoNzcsIDE0OCwgMjU1LCAwLjEpOwogICAgICAgIH0KICAgICAgfQogICAgICAKICAgICAgLnRpcHMtYm94IHN0cm9uZyB7CiAgICAgICAgY29sb3I6ICMwMDY2Y2M7CiAgICAgIH0KICAgICAgCiAgICAgIEBtZWRpYSAocHJlZmVycy1jb2xvci1zY2hlbWU6IGRhcmspIHsKICAgICAgICAudGlwcy1ib3ggc3Ryb25nIHsKICAgICAgICAgIGNvbG9yOiAjNGQ5NGZmOwogICAgICAgIH0KICAgICAgfQogICAgICAKICAgICAgLnRpcHMtbGlzdCB7CiAgICAgICAgbWFyZ2luOiA4cHggMCAwIDA7CiAgICAgICAgcGFkZGluZy1sZWZ0OiAyNHB4OwogICAgICB9CiAgICAgIAogICAgICAudGlwcy1saXN0IGxpIHsKICAgICAgICBtYXJnaW46IDRweCAwOwogICAgICB9CiAgICAgIAogICAgICAuYnV0dG9uLWdyb3VwIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGdhcDogOHB4OwogICAgICAgIGZsZXgtd3JhcDogd3JhcDsKICAgICAgICBtYXJnaW4tdG9wOiAxNnB4OwogICAgICB9CiAgICAgIAogICAgICAuZGVtby1idXR0b24gewogICAgICAgIHBhZGRpbmc6IDhweCAxNnB4OwogICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICNkZGQ7CiAgICAgICAgYm9yZGVyLXJhZGl1czogNHB4OwogICAgICAgIGJhY2tncm91bmQ6ICNmOGY4Zjg7CiAgICAgICAgY3Vyc29yOiBwb2ludGVyOwogICAgICAgIGZvbnQtc2l6ZTogMTRweDsKICAgICAgICBmb250LWZhbWlseTogaW5oZXJpdDsKICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC4ycyBlYXNlOwogICAgICB9CiAgICAgIAogICAgICAuZGVtby1idXR0b246aG92ZXIgewogICAgICAgIGJhY2tncm91bmQ6ICNlOGU4ZTg7CiAgICAgICAgYm9yZGVyLWNvbG9yOiAjY2NjOwogICAgICB9CiAgICAgIAogICAgICAuZGVtby1idXR0b246YWN0aXZlIHsKICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMXB4KTsKICAgICAgfQogICAgICAKICAgICAgQG1lZGlhIChwcmVmZXJzLWNvbG9yLXNjaGVtZTogZGFyaykgewogICAgICAgIC5kZW1vLWJ1dHRvbiB7CiAgICAgICAgICBiYWNrZ3JvdW5kOiAjMzMzOwogICAgICAgICAgYm9yZGVyLWNvbG9yOiAjNTU1OwogICAgICAgICAgY29sb3I6ICNkZGQ7CiAgICAgICAgfQogICAgICAgIAogICAgICAgIC5kZW1vLWJ1dHRvbjpob3ZlciB7CiAgICAgICAgICBiYWNrZ3JvdW5kOiAjNDQ0OwogICAgICAgICAgYm9yZGVyLWNvbG9yOiAjNjY2OwogICAgICAgIH0KICAgICAgfQogICAgICAKICAgICAgLmV4cG9ydC1pbmZvLWdyaWQgewogICAgICAgIGRpc3BsYXk6IGdyaWQ7CiAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoYXV0by1maXQsIG1pbm1heCgyNTBweCwgMWZyKSk7CiAgICAgICAgZ2FwOiAxNnB4OwogICAgICAgIG1hcmdpbi1ib3R0b206IDI0cHg7CiAgICAgIH0KICAgICAgCiAgICAgIC5leHBvcnQtaW5mby1jYXJkIHsKICAgICAgICBwYWRkaW5nOiAxNnB4OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDhweDsKICAgICAgfQogICAgICAKICAgICAgLmV4cG9ydC1pbmZvLWNhcmQuYmxvY2tzIHsKICAgICAgICBiYWNrZ3JvdW5kOiByZ2JhKDAsIDEwMiwgMjA0LCAwLjEpOwogICAgICB9CiAgICAgIAogICAgICAuZXhwb3J0LWluZm8tY2FyZC5odG1sIHsKICAgICAgICBiYWNrZ3JvdW5kOiByZ2JhKDc2LCAxNzUsIDgwLCAwLjEpOwogICAgICB9CiAgICAgIAogICAgICAuZXhwb3J0LWluZm8tY2FyZC5tYXJrZG93biB7CiAgICAgICAgYmFja2dyb3VuZDogcmdiYSgyNTUsIDE1MiwgMCwgMC4xKTsKICAgICAgfQogICAgICAKICAgICAgLmV4cG9ydC1pbmZvLWNhcmQuc3RhdGUgewogICAgICAgIGJhY2tncm91bmQ6IHJnYmEoMTU2LCAzOSwgMTc2LCAwLjEpOwogICAgICB9CiAgICAgIAogICAgICAuZXhwb3J0LWluZm8tY2FyZCBzdHJvbmcgewogICAgICAgIGRpc3BsYXk6IGJsb2NrOwogICAgICAgIG1hcmdpbi1ib3R0b206IDhweDsKICAgICAgfQogICAgICAKICAgICAgLmV4cG9ydC1pbmZvLWNhcmQuYmxvY2tzIHN0cm9uZyB7CiAgICAgICAgY29sb3I6ICMwMDY2Y2M7CiAgICAgIH0KICAgICAgCiAgICAgIC5leHBvcnQtaW5mby1jYXJkLmh0bWwgc3Ryb25nIHsKICAgICAgICBjb2xvcjogIzRDQUY1MDsKICAgICAgfQogICAgICAKICAgICAgLmV4cG9ydC1pbmZvLWNhcmQubWFya2Rvd24gc3Ryb25nIHsKICAgICAgICBjb2xvcjogI0ZGOTgwMDsKICAgICAgfQogICAgICAKICAgICAgLmV4cG9ydC1pbmZvLWNhcmQuc3RhdGUgc3Ryb25nIHsKICAgICAgICBjb2xvcjogIzlDMjdCMDsKICAgICAgfQogICAgICAKICAgICAgLmV4cG9ydC1pbmZvLWNhcmQgcCB7CiAgICAgICAgbWFyZ2luOiAwOwogICAgICAgIGZvbnQtc2l6ZTogMTRweDsKICAgICAgICBsaW5lLWhlaWdodDogMS41OwogICAgICB9CiAgICBgfQogIDwvc3R5bGU+CiAgCiAgICA8ZGl2IGNsYXNzPSJkZW1vLWNvbnRhaW5lciI+CiAgICAgIDxkZWVzLXBhbmVsIC50aXRsZT0keyIxLiBcdXsxRjY4MH0gTW9kZXJuIFdZU0lXWUcgRWRpdG9yIn0+CiAgICAgICAgPHAgY2xhc3M9InBhbmVsLWRlc2NyaXB0aW9uIj4KICAgICAgICAgIEEgcG93ZXJmdWwgYmxvY2stYmFzZWQgZWRpdG9yIHdpdGggc2xhc2ggY29tbWFuZHMsIGtleWJvYXJkIHNob3J0Y3V0cywgYW5kIG11bHRpcGxlIG91dHB1dCBmb3JtYXRzLiAKICAgICAgICAgIFBlcmZlY3QgZm9yIGNvbnRlbnQgY3JlYXRpb24sIGJsb2cgcG9zdHMsIGRvY3VtZW50YXRpb24sIGFuZCBtb3JlLgogICAgICAgIDwvcD4KICAgICAgICAKICAgICAgICA8ZGl2IGNsYXNzPSJmZWF0dXJlLWdyaWQiPgogICAgICAgICAgPGRpdiBjbGFzcz0iZmVhdHVyZS1pdGVtIj4KICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImZlYXR1cmUtaWNvbiI+4pyTPC9zcGFuPgogICAgICAgICAgICA8c3Bhbj5TbGFzaCBjb21tYW5kcyAoLyk8L3NwYW4+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIDxkaXYgY2xhc3M9ImZlYXR1cmUtaXRlbSI+CiAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJmZWF0dXJlLWljb24iPuKckzwvc3Bhbj4KICAgICAgICAgICAgPHNwYW4+S2V5Ym9hcmQgc2hvcnRjdXRzPC9zcGFuPgogICAgICAgICAgPC9kaXY+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJmZWF0dXJlLWl0ZW0iPgogICAgICAgICAgICA8c3BhbiBjbGFzcz0iZmVhdHVyZS1pY29uIj7inJM8L3NwYW4+CiAgICAgICAgICAgIDxzcGFuPkJsb2NrLWJhc2VkIGVkaXRpbmc8L3NwYW4+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIDxkaXYgY2xhc3M9ImZlYXR1cmUtaXRlbSI+CiAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJmZWF0dXJlLWljb24iPuKckzwvc3Bhbj4KICAgICAgICAgICAgPHNwYW4+RHJhZyAmIGRyb3AgcmVvcmRlcmluZzwvc3Bhbj4KICAgICAgICAgIDwvZGl2PgogICAgICAgICAgPGRpdiBjbGFzcz0iZmVhdHVyZS1pdGVtIj4KICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImZlYXR1cmUtaWNvbiI+4pyTPC9zcGFuPgogICAgICAgICAgICA8c3Bhbj5IVE1MICYgTWFya2Rvd24gb3V0cHV0PC9zcGFuPgogICAgICAgICAgPC9kaXY+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJmZWF0dXJlLWl0ZW0iPgogICAgICAgICAgICA8c3BhbiBjbGFzcz0iZmVhdHVyZS1pY29uIj7inJM8L3NwYW4+CiAgICAgICAgICAgIDxzcGFuPkRhcmsgbW9kZSBzdXBwb3J0PC9zcGFuPgogICAgICAgICAgPC9kaXY+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJmZWF0dXJlLWl0ZW0iPgogICAgICAgICAgICA8c3BhbiBjbGFzcz0iZmVhdHVyZS1pY29uIj7inJM8L3NwYW4+CiAgICAgICAgICAgIDxzcGFuPk1vYmlsZSByZXNwb25zaXZlPC9zcGFuPgogICAgICAgICAgPC9kaXY+CiAgICAgICAgPC9kaXY+CiAgICAgICAgCiAgICAgICAgPGRlZXMtaW5wdXQtd3lzaXd5ZyAKICAgICAgICAgIGlkPSJlZGl0b3ItYmFzaWMiCiAgICAgICAgICBsYWJlbD0iUmljaCBUZXh0IEVkaXRvciIgCiAgICAgICAgICBkZXNjcmlwdGlvbj0iU3RhcnQgdHlwaW5nIG9yIHVzZSAnLycgdG8gaW5zZXJ0IGRpZmZlcmVudCBibG9jayB0eXBlcyIKICAgICAgICAgIG91dHB1dEZvcm1hdD0iaHRtbCIKICAgICAgICA+PC9kZWVzLWlucHV0LXd5c2l3eWc+CgogICAgICAgIDxkaXYgY2xhc3M9InNob3J0Y3V0cy1ib3giPgogICAgICAgICAgPGg0IGNsYXNzPSJzaG9ydGN1dHMtdGl0bGUiPuKMqO+4jyBLZXlib2FyZCBTaG9ydGN1dHM8L2g0PgogICAgICAgICAgPGRpdiBjbGFzcz0ic2hvcnRjdXRzLWdyaWQiPgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJzaG9ydGN1dC1pdGVtIj4KICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0ic2hvcnRjdXQta2V5Ij4vPC9zcGFuPiBTbGFzaCBjb21tYW5kcwogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0ic2hvcnRjdXQtaXRlbSI+CiAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9InNob3J0Y3V0LWtleSI+Izwvc3Bhbj4gSGVhZGluZyAxCiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJzaG9ydGN1dC1pdGVtIj4KICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0ic2hvcnRjdXQta2V5Ij4jIzwvc3Bhbj4gSGVhZGluZyAyCiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJzaG9ydGN1dC1pdGVtIj4KICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0ic2hvcnRjdXQta2V5Ij4jIyM8L3NwYW4+IEhlYWRpbmcgMwogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0ic2hvcnRjdXQtaXRlbSI+CiAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9InNob3J0Y3V0LWtleSI+Pjwvc3Bhbj4gUXVvdGUKICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9InNob3J0Y3V0LWl0ZW0iPgogICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJzaG9ydGN1dC1rZXkiPlxgXGBcYDwvc3Bhbj4gQ29kZSBibG9jawogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0ic2hvcnRjdXQtaXRlbSI+CiAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9InNob3J0Y3V0LWtleSI+Kjwvc3Bhbj4gb3IgPHNwYW4gY2xhc3M9InNob3J0Y3V0LWtleSI+LTwvc3Bhbj4gQnVsbGV0IGxpc3QKICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9InNob3J0Y3V0LWl0ZW0iPgogICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJzaG9ydGN1dC1rZXkiPjEuPC9zcGFuPiBOdW1iZXJlZCBsaXN0CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJzaG9ydGN1dC1pdGVtIj4KICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0ic2hvcnRjdXQta2V5Ij4tLS08L3NwYW4+IERpdmlkZXIKICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICA8L2Rpdj4KICAgICAgPC9kZWVzLXBhbmVsPgogICAgICAKICAgICAgPGRlZXMtcGFuZWwgLnRpdGxlPSR7IjIuIFx1ezFGNEREfSBCbG9nIFBvc3QgRXhhbXBsZSJ9PgogICAgICAgIDxwIGNsYXNzPSJwYW5lbC1kZXNjcmlwdGlvbiI+CiAgICAgICAgICBQZXJmZWN0IGZvciBjcmVhdGluZyByaWNoIGNvbnRlbnQgd2l0aCBtdWx0aXBsZSBibG9jayB0eXBlcy4gCiAgICAgICAgICBUaGUgZWRpdG9yIHByZXNlcnZlcyBmb3JtYXR0aW5nIGFuZCBwcm92aWRlcyBhIGNsZWFuIGVkaXRpbmcgZXhwZXJpZW5jZS4KICAgICAgICA8L3A+CiAgICAgICAgCiAgICAgICAgPGRlZXMtaW5wdXQtd3lzaXd5ZyAKICAgICAgICAgIGlkPSJlZGl0b3ItYXJ0aWNsZSIKICAgICAgICAgIGxhYmVsPSJCbG9nIFBvc3QgQ29udGVudCIgCiAgICAgICAgICBkZXNjcmlwdGlvbj0iV3JpdGUgeW91ciBhcnRpY2xlIHVzaW5nIHZhcmlvdXMgZm9ybWF0dGluZyBvcHRpb25zIgogICAgICAgICAgb3V0cHV0Rm9ybWF0PSJodG1sIgogICAgICAgID48L2RlZXMtaW5wdXQtd3lzaXd5Zz4KICAgICAgPC9kZWVzLXBhbmVsPgoKICAgICAgPGRlZXMtcGFuZWwgLnRpdGxlPSR7IjMuIFx1ezFGNTAwfSBEcmFnICYgRHJvcCBSZW9yZGVyaW5nIn0+CiAgICAgICAgPHAgY2xhc3M9InBhbmVsLWRlc2NyaXB0aW9uIj4KICAgICAgICAgIEVhc2lseSByZWFycmFuZ2UgeW91ciBjb250ZW50IGJsb2NrcyBieSBkcmFnZ2luZyB0aGVtLiAKICAgICAgICAgIEhvdmVyIG92ZXIgYW55IGJsb2NrIHRvIHJldmVhbCB0aGUgZHJhZyBoYW5kbGUgb24gdGhlIGxlZnQgc2lkZS4KICAgICAgICA8L3A+CiAgICAgICAgCiAgICAgICAgPGRlZXMtaW5wdXQtd3lzaXd5ZyAKICAgICAgICAgIGlkPSJlZGl0b3ItZHJhZ2Ryb3AiCiAgICAgICAgICBsYWJlbD0iRHJhZyAmIERyb3AgRGVtbyIgCiAgICAgICAgICBkZXNjcmlwdGlvbj0iVHJ5IGRyYWdnaW5nIGJsb2NrcyB0byByZW9yZGVyIHRoZW0gLSBob3ZlciB0byBzZWUgZHJhZyBoYW5kbGVzIgogICAgICAgID48L2RlZXMtaW5wdXQtd3lzaXd5Zz4KICAgICAgICAKICAgICAgICA8ZGl2IGNsYXNzPSJ0aXBzLWJveCI+CiAgICAgICAgICA8c3Ryb25nPvCfkqEgVGlwczo8L3N0cm9uZz4KICAgICAgICAgIDx1bCBjbGFzcz0idGlwcy1saXN0Ij4KICAgICAgICAgICAgPGxpPkhvdmVyIG92ZXIgYW55IGJsb2NrIHRvIHNlZSB0aGUgZHJhZyBoYW5kbGUgKOKLruKLrikgb24gdGhlIGxlZnQ8L2xpPgogICAgICAgICAgICA8bGk+Q2xpY2sgYW5kIGhvbGQgdGhlIGRyYWcgaGFuZGxlIHRvIHN0YXJ0IGRyYWdnaW5nPC9saT4KICAgICAgICAgICAgPGxpPkJsdWUgaW5kaWNhdG9ycyBzaG93IHdoZXJlIHRoZSBibG9jayB3aWxsIGJlIGRyb3BwZWQ8L2xpPgogICAgICAgICAgICA8bGk+RGl2aWRlciBibG9ja3MgY2Fubm90IGJlIGRyYWdnZWQ8L2xpPgogICAgICAgICAgICA8bGk+VGhlIGVkaXRvciBtYWludGFpbnMgZm9jdXMgb24gdGhlIG1vdmVkIGJsb2NrIGFmdGVyIGRyb3BwaW5nPC9saT4KICAgICAgICAgIDwvdWw+CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGVlcy1wYW5lbD4KCiAgICAgIDxkZWVzLXBhbmVsIC50aXRsZT0keyI0LiBcdXsxRjREQX0gVHV0b3JpYWwgJiBEb2N1bWVudGF0aW9uIn0+CiAgICAgICAgPHAgY2xhc3M9InBhbmVsLWRlc2NyaXB0aW9uIj4KICAgICAgICAgIENyZWF0ZSBjb21wcmVoZW5zaXZlIHR1dG9yaWFscyBhbmQgZG9jdW1lbnRhdGlvbiB3aXRoIGNvZGUgZXhhbXBsZXMsIGxpc3RzLCBhbmQgc3RydWN0dXJlZCBjb250ZW50LgogICAgICAgIDwvcD4KICAgICAgICAKICAgICAgICA8ZGVlcy1pbnB1dC13eXNpd3lnIAogICAgICAgICAgaWQ9ImVkaXRvci10dXRvcmlhbCIKICAgICAgICAgIGxhYmVsPSJHaXQgVHV0b3JpYWwiIAogICAgICAgICAgZGVzY3JpcHRpb249IlN0ZXAtYnktc3RlcCBndWlkZSB3aXRoIGNvbW1hbmRzIGFuZCBleHBsYW5hdGlvbnMiCiAgICAgICAgICBvdXRwdXRGb3JtYXQ9Im1hcmtkb3duIgogICAgICAgICAgdmFsdWU9IiMgR2l0IFR1dG9yaWFsIGZvciBCZWdpbm5lcnMKCkdpdCBpcyBhIGRpc3RyaWJ1dGVkIHZlcnNpb24gY29udHJvbCBzeXN0ZW0gdGhhdCBoZWxwcyB5b3UgdHJhY2sgY2hhbmdlcyBpbiB5b3VyIGNvZGUgb3ZlciB0aW1lLiBUaGlzIHR1dG9yaWFsIHdpbGwgZ3VpZGUgeW91IHRocm91Z2ggdGhlIGJhc2ljcy4KCiMjIFByZXJlcXVpc2l0ZXMKCkJlZm9yZSBzdGFydGluZywgZW5zdXJlIHlvdSBoYXZlOgoKLSBHaXQgaW5zdGFsbGVkIG9uIHlvdXIgc3lzdGVtCi0gQSB0ZXh0IGVkaXRvciBvciBJREUKLSBCYXNpYyBjb21tYW5kIGxpbmUga25vd2xlZGdlCgojIyBHZXR0aW5nIFN0YXJ0ZWQKCiMjIyAxLiBDb25maWd1cmUgR2l0CgpGaXJzdCwgc2V0IHVwIHlvdXIgaWRlbnRpdHk6CgpcYFxgXGBiYXNoCmdpdCBjb25maWcgLS1nbG9iYWwgdXNlci5uYW1lICZxdW90O1lvdXIgTmFtZSZxdW90OwpnaXQgY29uZmlnIC0tZ2xvYmFsIHVzZXIuZW1haWwgJnF1b3Q7eW91ci5lbWFpbEBleGFtcGxlLmNvbSZxdW90OwpcYFxgXGAKCiMjIyAyLiBJbml0aWFsaXplIGEgUmVwb3NpdG9yeQoKQ3JlYXRlIGEgbmV3IEdpdCByZXBvc2l0b3J5OgoKXGBcYFxgYmFzaApta2RpciBteS1wcm9qZWN0CmNkIG15LXByb2plY3QKZ2l0IGluaXQKXGBcYFxgCgojIyMgMy4gQmFzaWMgR2l0IFdvcmtmbG93CgojIyMjIEFkZGluZyBGaWxlcwoKQ3JlYXRlIGEgZmlsZSBhbmQgYWRkIGl0IHRvIHN0YWdpbmc6CgpcYFxgXGBiYXNoCmVjaG8gJnF1b3Q7IyBNeSBQcm9qZWN0JnF1b3Q7ID4gUkVBRE1FLm1kCmdpdCBhZGQgUkVBRE1FLm1kClxgXGBcYAoKIyMjIyBDb21taXR0aW5nIENoYW5nZXMKClxgXGBcYGJhc2gKZ2l0IGNvbW1pdCAtbSAmcXVvdDtJbml0aWFsIGNvbW1pdCZxdW90OwpcYFxgXGAKCj4gKipCZXN0IFByYWN0aWNlOioqIFdyaXRlIGNsZWFyLCBkZXNjcmlwdGl2ZSBjb21taXQgbWVzc2FnZXMgdGhhdCBleHBsYWluIHdoYXQgY2hhbmdlcyB3ZXJlIG1hZGUgYW5kIHdoeS4KCiMjIyA0LiBXb3JraW5nIHdpdGggQnJhbmNoZXMKCkJyYW5jaGVzIGFsbG93IHlvdSB0byB3b3JrIG9uIGZlYXR1cmVzIGluZGVwZW5kZW50bHk6CgpcYFxgXGBiYXNoCiMgQ3JlYXRlIGFuZCBzd2l0Y2ggdG8gYSBuZXcgYnJhbmNoCmdpdCBjaGVja291dCAtYiBmZWF0dXJlLWJyYW5jaAoKIyBNYWtlIGNoYW5nZXMgYW5kIGNvbW1pdApnaXQgYWRkIC4KZ2l0IGNvbW1pdCAtbSAmcXVvdDtBZGQgbmV3IGZlYXR1cmUmcXVvdDsKCiMgU3dpdGNoIGJhY2sgdG8gbWFpbgpnaXQgY2hlY2tvdXQgbWFpbgoKIyBNZXJnZSB0aGUgZmVhdHVyZQpnaXQgbWVyZ2UgZmVhdHVyZS1icmFuY2gKXGBcYFxgCgotLS0KCiMjIENvbW1vbiBDb21tYW5kcyBSZWZlcmVuY2UKCnwgQ29tbWFuZCB8IERlc2NyaXB0aW9uIHwKfC0tLS0tLS0tLXwtLS0tLS0tLS0tLS0tfAp8IFxgZ2l0IHN0YXR1c1xgIHwgQ2hlY2sgcmVwb3NpdG9yeSBzdGF0dXMgfAp8IFxgZ2l0IGxvZ1xgIHwgVmlldyBjb21taXQgaGlzdG9yeSB8CnwgXGBnaXQgZGlmZlxgIHwgU2hvdyBjaGFuZ2VzIHwKfCBcYGdpdCBwdWxsXGAgfCBGZXRjaCBhbmQgbWVyZ2UgY2hhbmdlcyB8CnwgXGBnaXQgcHVzaFxgIHwgVXBsb2FkIGNoYW5nZXMgdG8gcmVtb3RlIHwKCiMjIE5leHQgU3RlcHMKCjEuIExlYXJuIGFib3V0IHJlbW90ZSByZXBvc2l0b3JpZXMKMi4gRXhwbG9yZSBhZHZhbmNlZCBHaXQgZmVhdHVyZXMKMy4gUHJhY3RpY2Ugd2l0aCByZWFsIHByb2plY3RzCjQuIENvbnRyaWJ1dGUgdG8gb3BlbiBzb3VyY2UKCioqSGFwcHkgY29kaW5nISoqIPCfmoAiCiAgICAgICAgPjwvZGVlcy1pbnB1dC13eXNpd3lnPgogICAgICA8L2RlZXMtcGFuZWw+CgogICAgICA8ZGVlcy1wYW5lbCAudGl0bGU9JHsiNS4gXHV7MUY1MDR9IE91dHB1dCBGb3JtYXRzIn0+CiAgICAgICAgPHAgY2xhc3M9InBhbmVsLWRlc2NyaXB0aW9uIj4KICAgICAgICAgIENob29zZSBiZXR3ZWVuIEhUTUwgYW5kIE1hcmtkb3duIG91dHB1dCBmb3JtYXRzIGRlcGVuZGluZyBvbiB5b3VyIG5lZWRzLiAKICAgICAgICAgIFBlcmZlY3QgZm9yIHN0YXRpYyBzaXRlIGdlbmVyYXRvcnMsIGRvY3VtZW50YXRpb24gc3lzdGVtcywgb3IgYW55IGNvbnRlbnQgbWFuYWdlbWVudCB3b3JrZmxvdy4KICAgICAgICA8L3A+CiAgICAgICAgCiAgICAgICAgPGRpdiBjbGFzcz0ib3V0cHV0LWdyaWQiPgogICAgICAgICAgPGRpdiBjbGFzcz0ib3V0cHV0LWNhcmQiPgogICAgICAgICAgICA8ZGVlcy1pbnB1dC13eXNpd3lnIAogICAgICAgICAgICAgIGlkPSJlZGl0b3ItbWVldGluZyIKICAgICAgICAgICAgICBsYWJlbD0iTWVldGluZyBOb3RlcyIgCiAgICAgICAgICAgICAgZGVzY3JpcHRpb249IlN0cnVjdHVyZWQgbWVldGluZyBkb2N1bWVudGF0aW9uIgogICAgICAgICAgICAgIG91dHB1dEZvcm1hdD0iaHRtbCIKICAgICAgICAgICAgICB2YWx1ZT0iPGgyPlE0IFBsYW5uaW5nIE1lZXRpbmc8L2gyPjxwPjxzdHJvbmc+RGF0ZTo8L3N0cm9uZz4gRGVjZW1iZXIgMTUsIDIwMjQ8YnI+PHN0cm9uZz5BdHRlbmRlZXM6PC9zdHJvbmc+IFByb2R1Y3QgVGVhbSwgRW5naW5lZXJpbmcsIERlc2lnbjwvcD48aDM+QWdlbmRhIEl0ZW1zPC9oMz48b2w+PGxpPlJldmlldyBRMyBhY2hpZXZlbWVudHM8L2xpPjxsaT5TZXQgUTQgb2JqZWN0aXZlczwvbGk+PGxpPlJlc291cmNlIGFsbG9jYXRpb248L2xpPjxsaT5UaW1lbGluZSBkaXNjdXNzaW9uPC9saT48L29sPjxoMz5LZXkgRGVjaXNpb25zPC9oMz48dWw+PGxpPkxhdW5jaCBuZXcgZGFzaGJvYXJkIGZlYXR1cmUgYnkgZW5kIG9mIEphbnVhcnk8L2xpPjxsaT5JbmNyZWFzZSBlbmdpbmVlcmluZyB0ZWFtIGJ5IDIgZGV2ZWxvcGVyczwvbGk+PGxpPkltcGxlbWVudCB3ZWVrbHkgZGVzaWduIHJldmlld3M8L2xpPjwvdWw+PGJsb2NrcXVvdGU+JnF1b3Q7Rm9jdXMgb24gdXNlciBleHBlcmllbmNlIGltcHJvdmVtZW50cyBiYXNlZCBvbiBRMyBmZWVkYmFjayZxdW90OyAtIFByb2R1Y3QgTWFuYWdlcjwvYmxvY2txdW90ZT48aDM+QWN0aW9uIEl0ZW1zPC9oMz48dWw+PGxpPlNhcmFoOiBDcmVhdGUgZGV0YWlsZWQgcHJvamVjdCB0aW1lbGluZTwvbGk+PGxpPk1pa2U6IERyYWZ0IHRlY2huaWNhbCByZXF1aXJlbWVudHM8L2xpPjxsaT5MaXNhOiBTY2hlZHVsZSB1c2VyIHJlc2VhcmNoIHNlc3Npb25zPC9saT48L3VsPjxocj48cD5OZXh0IG1lZXRpbmc6IEphbnVhcnkgNSwgMjAyNTwvcD4iCiAgICAgICAgICAgID48L2RlZXMtaW5wdXQtd3lzaXd5Zz4KICAgICAgICAgICAgPGRpdiBjbGFzcz0ib3V0cHV0LWFjdGlvbnMiPgogICAgICAgICAgICAgIDxidXR0b24gaWQ9ImJ0bi1zaG93LWh0bWwtb3V0cHV0IiBjbGFzcz0iZGVtby1idXR0b24iPlNob3cgSFRNTCBPdXRwdXQ8L2J1dHRvbj4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDxwcmUgaWQ9Im91dHB1dC1wcmV2aWV3LWh0bWwiIGNsYXNzPSJvdXRwdXQtcHJldmlldyIgYXJpYS1saXZlPSJwb2xpdGUiPjwvcHJlPgogICAgICAgICAgPC9kaXY+CiAgICAgICAgICAKICAgICAgICAgIDxkaXYgY2xhc3M9Im91dHB1dC1jYXJkIj4KICAgICAgICAgICAgPGRlZXMtaW5wdXQtd3lzaXd5ZyAKICAgICAgICAgICAgICBpZD0iZWRpdG9yLXJlY2lwZSIKICAgICAgICAgICAgICBsYWJlbD0iUmVjaXBlIEJsb2cgUG9zdCIgCiAgICAgICAgICAgICAgZGVzY3JpcHRpb249IkZvb2QgYmxvZyB3aXRoIG1peGVkIGNvbnRlbnQiCiAgICAgICAgICAgICAgb3V0cHV0Rm9ybWF0PSJtYXJrZG93biIKICAgICAgICAgICAgICB2YWx1ZT0iIyBVbHRpbWF0ZSBDaG9jb2xhdGUgQ2hpcCBDb29raWVzCgpUaGVyZSdzIG5vdGhpbmcgcXVpdGUgbGlrZSB0aGUgc21lbGwgb2YgZnJlc2hseSBiYWtlZCBjaG9jb2xhdGUgY2hpcCBjb29raWVzLiBUaGlzIHJlY2lwZSBoYXMgYmVlbiBwZXJmZWN0ZWQgb3ZlciB5ZWFycyBvZiB0ZXN0aW5nIQoKIyMgSW5ncmVkaWVudHMKCi0gMsK8IGN1cHMgYWxsLXB1cnBvc2UgZmxvdXIKLSAxIHRzcCBiYWtpbmcgc29kYQotIDEgdHNwIHNhbHQKLSAxIGN1cCBidXR0ZXIsIHNvZnRlbmVkCi0gwr4gY3VwIGdyYW51bGF0ZWQgc3VnYXIKLSDCviBjdXAgcGFja2VkIGJyb3duIHN1Z2FyCi0gMiBsYXJnZSBlZ2dzCi0gMiB0c3AgdmFuaWxsYSBleHRyYWN0Ci0gMiBjdXBzIGNob2NvbGF0ZSBjaGlwcwoKIyMgSW5zdHJ1Y3Rpb25zCgojIyMgU3RlcCAxOiBQcmVwYXJhdGlvbgoKUHJlaGVhdCB5b3VyIG92ZW4gdG8gKiozNzXCsEYgKDE5MMKwQykqKi4gVGhpcyB0ZW1wZXJhdHVyZSBpcyBjcnVjaWFsIGZvciBhY2hpZXZpbmcgdGhlIHBlcmZlY3QgdGV4dHVyZS4KCiMjIyBTdGVwIDI6IE1peCBEcnkgSW5ncmVkaWVudHMKCkluIGEgbWVkaXVtIGJvd2wsIHdoaXNrIHRvZ2V0aGVyOgoKMS4gRmxvdXIKMi4gQmFraW5nIHNvZGEKMy4gU2FsdAoKIyMjIFN0ZXAgMzogQ3JlYW0gQnV0dGVyIGFuZCBTdWdhcnMKClxgXGBcYApDcmVhbSBidXR0ZXIgYW5kIHN1Z2FycyBmb3IgMy00IG1pbnV0ZXMKdW50aWwgbGlnaHQgYW5kIGZsdWZmeQpcYFxgXGAKCj4gKipQcm8gdGlwOioqIFJvb20gdGVtcGVyYXR1cmUgaW5ncmVkaWVudHMgbWl4IGJldHRlciBhbmQgY3JlYXRlIGEgbW9yZSB1bmlmb3JtIGRvdWdoLgoKIyMjIFN0ZXAgNDogQWRkIFdldCBJbmdyZWRpZW50cwoKQmVhdCBpbiBlZ2dzIG9uZSBhdCBhIHRpbWUsIHRoZW4gYWRkIHZhbmlsbGEgZXh0cmFjdC4KCiMjIyBTdGVwIDU6IENvbWJpbmUgYW5kIEJha2UKCkdyYWR1YWxseSBibGVuZCBpbiBmbG91ciBtaXh0dXJlLCB0aGVuIHN0aXIgaW4gY2hvY29sYXRlIGNoaXBzLiBEcm9wIHJvdW5kZWQgdGFibGVzcG9vbnMgb250byB1bmdyZWFzZWQgY29va2llIHNoZWV0cy4KCi0tLQoKKipCYWtpbmcgdGltZToqKiA5LTExIG1pbnV0ZXMgb3IgdW50aWwgZ29sZGVuIGJyb3duCgoqKllpZWxkOioqIEFib3V0IDUgZG96ZW4gY29va2llcyIKICAgICAgICAgICAgPjwvZGVlcy1pbnB1dC13eXNpd3lnPgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJvdXRwdXQtYWN0aW9ucyI+CiAgICAgICAgICAgICAgPGJ1dHRvbiBpZD0iYnRuLXNob3ctbWFya2Rvd24tb3V0cHV0IiBjbGFzcz0iZGVtby1idXR0b24iPlNob3cgTWFya2Rvd24gT3V0cHV0PC9idXR0b24+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8cHJlIGlkPSJvdXRwdXQtcHJldmlldy1tYXJrZG93biIgY2xhc3M9Im91dHB1dC1wcmV2aWV3IiBhcmlhLWxpdmU9InBvbGl0ZSI+PC9wcmU+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICA8L2Rpdj4KICAgICAgPC9kZWVzLXBhbmVsPgoKICAgICAgPGRlZXMtcGFuZWwgLnRpdGxlPSR7IjYuIFx1ezFGM0E4fSBBZHZhbmNlZCBFZGl0aW5nIn0+CiAgICAgICAgPHAgY2xhc3M9InBhbmVsLWRlc2NyaXB0aW9uIj4KICAgICAgICAgIENyZWF0ZSBjb21wbGV4IGRvY3VtZW50cyB3aXRoIG1peGVkIGNvbnRlbnQgdHlwZXMuIFRoZSBlZGl0b3IgaGFuZGxlcyBhbGwgZm9ybWF0dGluZyBzZWFtbGVzc2x5LgogICAgICAgIDwvcD4KICAgICAgICAKICAgICAgICA8ZGVlcy1pbnB1dC13eXNpd3lnIAogICAgICAgICAgaWQ9ImVkaXRvci10ZWNobmljYWwiCiAgICAgICAgICBsYWJlbD0iVGVjaG5pY2FsIERvY3VtZW50YXRpb24iIAogICAgICAgICAgZGVzY3JpcHRpb249IkNyZWF0ZSB0ZWNobmljYWwgZG9jcyB3aXRoIGNvZGUgZXhhbXBsZXMgYW5kIHN0cnVjdHVyZWQgY29udGVudCIKICAgICAgICAgIHZhbHVlPSI8aDE+QVBJIERvY3VtZW50YXRpb248L2gxPjxwPldlbGNvbWUgdG8gb3VyIEFQSSBkb2N1bWVudGF0aW9uLiBCZWxvdyB5b3UnbGwgZmluZCBleGFtcGxlcyBvZiBob3cgdG8gdXNlIG91ciBlbmRwb2ludHMuPC9wPjxoMj5BdXRoZW50aWNhdGlvbjwvaDI+PHA+QWxsIEFQSSByZXF1ZXN0cyByZXF1aXJlIGF1dGhlbnRpY2F0aW9uIHVzaW5nIGFuIEFQSSBrZXk6PC9wPjxwcmU+PGNvZGU+QXV0aG9yaXphdGlvbjogQmVhcmVyIFlPVVJfQVBJX0tFWTwvY29kZT48L3ByZT48aDI+RW5kcG9pbnRzPC9oMj48aDM+R0VUIC91c2VyczwvaDM+PHA+UmV0cmlldmUgYSBsaXN0IG9mIHVzZXJzIGZyb20gdGhlIHN5c3RlbS48L3A+PHByZT48Y29kZT5jdXJsIC1YIEdFVCBodHRwczovL2FwaS5leGFtcGxlLmNvbS91c2VycyBcXAogIC1IICZxdW90O0F1dGhvcml6YXRpb246IEJlYXJlciBZT1VSX0FQSV9LRVkmcXVvdDs8L2NvZGU+PC9wcmU+PGJsb2NrcXVvdGU+Tm90ZTogUmF0ZSBsaW1pdGluZyBhcHBsaWVzIHRvIGFsbCBlbmRwb2ludHMuIFlvdSBjYW4gbWFrZSB1cCB0byAxMDAgcmVxdWVzdHMgcGVyIG1pbnV0ZS48L2Jsb2NrcXVvdGU+PGgzPlBPU1QgL3VzZXJzPC9oMz48cD5DcmVhdGUgYSBuZXcgdXNlciBpbiB0aGUgc3lzdGVtLjwvcD48cHJlPjxjb2RlPnsKICAmcXVvdDtuYW1lJnF1b3Q7OiAmcXVvdDtKb2huIERvZSZxdW90OywKICAmcXVvdDtlbWFpbCZxdW90OzogJnF1b3Q7am9obkBleGFtcGxlLmNvbSZxdW90OywKICAmcXVvdDtyb2xlJnF1b3Q7OiAmcXVvdDt1c2VyJnF1b3Q7Cn08L2NvZGU+PC9wcmU+PGhyPjxwPkZvciBtb3JlIGluZm9ybWF0aW9uLCBwbGVhc2UgcmVmZXIgdG8gb3VyIGNvbXBsZXRlIGRvY3VtZW50YXRpb24uPC9wPiIKICAgICAgICAgIG91dHB1dEZvcm1hdD0iaHRtbCIKICAgICAgICA+PC9kZWVzLWlucHV0LXd5c2l3eWc+CiAgICAgIDwvZGVlcy1wYW5lbD4KCiAgICAgIDxkZWVzLXBhbmVsIC50aXRsZT0keyI3LiBcdTI2OTlcdUZFMEYgRm9ybSBJbnRlZ3JhdGlvbiJ9PgogICAgICAgIDxwIGNsYXNzPSJwYW5lbC1kZXNjcmlwdGlvbiI+CiAgICAgICAgICBTZWFtbGVzc2x5IGludGVncmF0ZXMgd2l0aCBkZWVzLWZvcm0gZm9yIGNvbXBsZXRlIGZvcm0gc29sdXRpb25zLiAKICAgICAgICAgIEFsbCBzdGFuZGFyZCBmb3JtIGZlYXR1cmVzIGxpa2UgdmFsaWRhdGlvbiwgcmVxdWlyZWQgZmllbGRzLCBhbmQgZGF0YSBiaW5kaW5nIHdvcmsgb3V0IG9mIHRoZSBib3guCiAgICAgICAgPC9wPgogICAgICAgIAogICAgICAgIDxkZWVzLWZvcm0+CiAgICAgICAgICA8ZGVlcy1pbnB1dC10ZXh0IAogICAgICAgICAgICBsYWJlbD0iQXJ0aWNsZSBUaXRsZSIgCiAgICAgICAgICAgIHJlcXVpcmVkPSJ0cnVlIgogICAgICAgICAgICB2YWx1ZT0iSG93IHRvIEJ1aWxkIE1vZGVybiBXZWIgQXBwbGljYXRpb25zIgogICAgICAgICAgPjwvZGVlcy1pbnB1dC10ZXh0PgogICAgICAgICAgCiAgICAgICAgICA8ZGVlcy1pbnB1dC13eXNpd3lnIAogICAgICAgICAgICBpZD0iZWRpdG9yLWZvcm0taW50ZWdyYXRpb24iCiAgICAgICAgICAgIGxhYmVsPSJBcnRpY2xlIENvbnRlbnQiIAogICAgICAgICAgICBkZXNjcmlwdGlvbj0iV3JpdGUgeW91ciBhcnRpY2xlIGNvbnRlbnQgaGVyZSIKICAgICAgICAgICAgcmVxdWlyZWQ9InRydWUiCiAgICAgICAgICAgIG91dHB1dEZvcm1hdD0ibWFya2Rvd24iCiAgICAgICAgICA+PC9kZWVzLWlucHV0LXd5c2l3eWc+CiAgICAgICAgICAKICAgICAgICAgIDxkZWVzLWlucHV0LXRhZ3MKICAgICAgICAgICAgbGFiZWw9IlRhZ3MiCiAgICAgICAgICAgIGRlc2NyaXB0aW9uPSJBZGQgcmVsZXZhbnQgdGFncyBmb3IgeW91ciBhcnRpY2xlIgogICAgICAgICAgPjwvZGVlcy1pbnB1dC10YWdzPgogICAgICAgIDwvZGVlcy1mb3JtPgogICAgICA8L2RlZXMtcGFuZWw+CgogICAgICA8ZGVlcy1wYW5lbCAudGl0bGU9JHsiOC4gXHV7MUY5RTl9IFByb2dyYW1tYXRpYyBCbG9jayBDcmVhdGlvbiJ9PgogICAgICAgIDxwIGNsYXNzPSJwYW5lbC1kZXNjcmlwdGlvbiI+CiAgICAgICAgICBDcmVhdGUgY29udGVudCBwcm9ncmFtbWF0aWNhbGx5IHVzaW5nIHRoZSBibG9jayBBUEkgZm9yIGR5bmFtaWMgZG9jdW1lbnQgZ2VuZXJhdGlvbi4KICAgICAgICA8L3A+CiAgICAgICAgCiAgICAgICAgPGRlZXMtaW5wdXQtd3lzaXd5ZwogICAgICAgICAgaWQ9ImVkaXRvci1wcm9ncmFtbWF0aWMiCiAgICAgICAgICBsYWJlbD0iUHJvZ3JhbW1hdGljYWxseSBHZW5lcmF0ZWQgQ29udGVudCIKICAgICAgICAgIGRlc2NyaXB0aW9uPSJUaGlzIGNvbnRlbnQgd2FzIGNyZWF0ZWQgdXNpbmcgdGhlIGltcG9ydEJsb2NrcyBBUEkiCiAgICAgICAgPjwvZGVlcy1pbnB1dC13eXNpd3lnPgogICAgICAgIAogICAgICAgIDxkaXYgY2xhc3M9ImJ1dHRvbi1ncm91cCI+CiAgICAgICAgICA8YnV0dG9uIGlkPSJidG4tZ2VuZXJhdGUtcmVwb3J0IiBjbGFzcz0iZGVtby1idXR0b24iPgogICAgICAgICAgICBHZW5lcmF0ZSBSZXBvcnQKICAgICAgICAgIDwvYnV0dG9uPgogICAgICAgICAgCiAgICAgICAgICA8YnV0dG9uIGlkPSJidG4tZ2VuZXJhdGUtcmVjaXBlIiBjbGFzcz0iZGVtby1idXR0b24iPgogICAgICAgICAgICBHZW5lcmF0ZSBSZWNpcGUKICAgICAgICAgIDwvYnV0dG9uPgogICAgICAgICAgCiAgICAgICAgICA8YnV0dG9uIGlkPSJidG4tY2xlYXItZWRpdG9yIiBjbGFzcz0iZGVtby1idXR0b24iPgogICAgICAgICAgICBDbGVhciBFZGl0b3IKICAgICAgICAgIDwvYnV0dG9uPgogICAgICAgIDwvZGl2PgogICAgICA8L2RlZXMtcGFuZWw+CgogICAgICA8ZGVlcy1wYW5lbCAudGl0bGU9JHsiOS4gXHV7MUY0RTR9IEV4cG9ydC9JbXBvcnQgRmVhdHVyZXMifT4KICAgICAgICA8cCBjbGFzcz0icGFuZWwtZGVzY3JpcHRpb24iPgogICAgICAgICAgVGhlIFdZU0lXWUcgZWRpdG9yIHByb3ZpZGVzIG11bHRpcGxlIGV4cG9ydCBmb3JtYXRzIGFuZCBsb3NzbGVzcyBzYXZlL3Jlc3RvcmUgY2FwYWJpbGl0aWVzIGZvciBtYXhpbXVtIGZsZXhpYmlsaXR5LgogICAgICAgIDwvcD4KICAgICAgICAKICAgICAgICA8ZGl2IGNsYXNzPSJleHBvcnQtaW5mby1ncmlkIj4KICAgICAgICAgIDxkaXYgY2xhc3M9ImV4cG9ydC1pbmZvLWNhcmQgYmxvY2tzIj4KICAgICAgICAgICAgPHN0cm9uZz5Mb3NzbGVzcyBCbG9ja3M8L3N0cm9uZz4KICAgICAgICAgICAgPHA+RXhwb3J0IGFuZCBpbXBvcnQgcmF3IGJsb2NrIHN0cnVjdHVyZSBmb3IgcGVyZmVjdCByb3VuZC10cmlwIGVkaXRpbmc8L3A+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIDxkaXYgY2xhc3M9ImV4cG9ydC1pbmZvLWNhcmQgaHRtbCI+CiAgICAgICAgICAgIDxzdHJvbmc+SFRNTCBFeHBvcnQ8L3N0cm9uZz4KICAgICAgICAgICAgPHA+R2V0IGNsZWFuLCBzZW1hbnRpYyBIVE1MIHJlZ2FyZGxlc3Mgb2Ygb3V0cHV0IGZvcm1hdCBzZXR0aW5nPC9wPgogICAgICAgICAgPC9kaXY+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJleHBvcnQtaW5mby1jYXJkIG1hcmtkb3duIj4KICAgICAgICAgICAgPHN0cm9uZz5NYXJrZG93biBFeHBvcnQ8L3N0cm9uZz4KICAgICAgICAgICAgPHA+RXhwb3J0IGFzIE1hcmtkb3duIGZvciBkb2NzLCBSRUFETUVzLCBhbmQgc3RhdGljIHNpdGVzPC9wPgogICAgICAgICAgPC9kaXY+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJleHBvcnQtaW5mby1jYXJkIHN0YXRlIj4KICAgICAgICAgICAgPHN0cm9uZz5TdGF0ZSBNYW5hZ2VtZW50PC9zdHJvbmc+CiAgICAgICAgICAgIDxwPlNhdmUgYW5kIHJlc3RvcmUgY29tcGxldGUgZWRpdG9yIHN0YXRlIGluY2x1ZGluZyBzZXR0aW5nczwvcD4KICAgICAgICAgIDwvZGl2PgogICAgICAgIDwvZGl2PgogICAgICAgIAogICAgICAgIDxkZWVzLWlucHV0LXd5c2l3eWcKICAgICAgICAgIGlkPSJlZGl0b3ItZXhwb3J0IgogICAgICAgICAgbGFiZWw9IkV4cG9ydCBEZW1vIEVkaXRvciIKICAgICAgICAgIGRlc2NyaXB0aW9uPSJUcnkgdGhlIGV4cG9ydCBidXR0b25zIGJlbG93IHRvIHNlZSBkaWZmZXJlbnQgb3V0cHV0IGZvcm1hdHMiCiAgICAgICAgICB2YWx1ZT0iPGgxPlNvZnR3YXJlIFJlbGVhc2UgTm90ZXM8L2gxPjxwPjxzdHJvbmc+VmVyc2lvbiAyLjUuMDwvc3Ryb25nPiAtIFJlbGVhc2VkIERlY2VtYmVyIDE1LCAyMDI0PC9wPjxoMj7wn46JIE5ldyBGZWF0dXJlczwvaDI+PHVsPjxsaT5BZGRlZCBkYXJrIG1vZGUgc3VwcG9ydCBhY3Jvc3MgYWxsIGNvbXBvbmVudHM8L2xpPjxsaT5JbXBsZW1lbnRlZCByZWFsLXRpbWUgY29sbGFib3JhdGlvbiBmZWF0dXJlczwvbGk+PGxpPk5ldyBkYXNoYm9hcmQgYW5hbHl0aWNzIHdpZGdldHM8L2xpPjxsaT5FeHBvcnQgZnVuY3Rpb25hbGl0eSBmb3IgYWxsIHJlcG9ydCB0eXBlczwvbGk+PC91bD48aDI+8J+QmyBCdWcgRml4ZXM8L2gyPjx1bD48bGk+Rml4ZWQgbWVtb3J5IGxlYWsgaW4gZGF0YSBwcm9jZXNzaW5nIG1vZHVsZTwvbGk+PGxpPlJlc29sdmVkIGF1dGhlbnRpY2F0aW9uIHRpbWVvdXQgaXNzdWVzPC9saT48bGk+Q29ycmVjdGVkIHRpbWV6b25lIGhhbmRsaW5nIGluIHNjaGVkdWxlZCB0YXNrczwvbGk+PC91bD48aDI+4pqhIFBlcmZvcm1hbmNlIEltcHJvdmVtZW50czwvaDI+PGJsb2NrcXVvdGU+UGFnZSBsb2FkIHRpbWVzIHJlZHVjZWQgYnkgNDAlIHRocm91Z2ggbGF6eSBsb2FkaW5nIGFuZCBjb2RlIHNwbGl0dGluZzwvYmxvY2txdW90ZT48aDI+8J+UpyBUZWNobmljYWwgRGV0YWlsczwvaDI+PHByZT48Y29kZT4vLyBOZXcgQVBJIGVuZHBvaW50IGZvciBiYXRjaCBvcGVyYXRpb25zClBPU1QgL2FwaS92Mi9iYXRjaAp7CiAgJnF1b3Q7b3BlcmF0aW9ucyZxdW90OzogWwogICAgeyAmcXVvdDttZXRob2QmcXVvdDs6ICZxdW90O0dFVCZxdW90OywgJnF1b3Q7cGF0aCZxdW90OzogJnF1b3Q7L3VzZXJzLzEyMyZxdW90OyB9LAogICAgeyAmcXVvdDttZXRob2QmcXVvdDs6ICZxdW90O1BVVCZxdW90OywgJnF1b3Q7cGF0aCZxdW90OzogJnF1b3Q7L3NldHRpbmdzJnF1b3Q7LCAmcXVvdDtib2R5JnF1b3Q7OiB7Li4ufSB9CiAgXQp9PC9jb2RlPjwvcHJlPjxoMj7wn5KhIE1pZ3JhdGlvbiBHdWlkZTwvaDI+PG9sPjxsaT5VcGRhdGUgeW91ciBkZXBlbmRlbmNpZXMgdG8gdGhlIGxhdGVzdCB2ZXJzaW9uczwvbGk+PGxpPlJ1biBkYXRhYmFzZSBtaWdyYXRpb25zOiA8Y29kZT5ucG0gcnVuIG1pZ3JhdGU8L2NvZGU+PC9saT48bGk+Q2xlYXIgY2FjaGU6IDxjb2RlPm5wbSBydW4gY2FjaGU6Y2xlYXI8L2NvZGU+PC9saT48bGk+UmVzdGFydCBhbGwgc2VydmljZXM8L2xpPjwvb2w+PGhyPjxwPkZvciBxdWVzdGlvbnMgb3IgaXNzdWVzLCBwbGVhc2UgY29udGFjdCB0aGUgZGV2ZWxvcG1lbnQgdGVhbSBvciBmaWxlIGEgdGlja2V0IGluIG91ciBpc3N1ZSB0cmFja2VyLjwvcD4iCiAgICAgICAgPjwvZGVlcy1pbnB1dC13eXNpd3lnPgogICAgICAgIAogICAgICAgIDxkaXYgY2xhc3M9ImJ1dHRvbi1ncm91cCI+CiAgICAgICAgICA8YnV0dG9uIGlkPSJidG4tZXhwb3J0LWJsb2NrcyIgY2xhc3M9ImRlbW8tYnV0dG9uIj4KICAgICAgICAgICAgRXhwb3J0IEJsb2NrcwogICAgICAgICAgPC9idXR0b24+CiAgICAgICAgICAKICAgICAgICAgIDxidXR0b24gaWQ9ImJ0bi1leHBvcnQtaHRtbCIgY2xhc3M9ImRlbW8tYnV0dG9uIj4KICAgICAgICAgICAgRXhwb3J0IGFzIEhUTUwKICAgICAgICAgIDwvYnV0dG9uPgogICAgICAgICAgCiAgICAgICAgICA8YnV0dG9uIGlkPSJidG4tZXhwb3J0LW1hcmtkb3duIiBjbGFzcz0iZGVtby1idXR0b24iPgogICAgICAgICAgICBFeHBvcnQgYXMgTWFya2Rvd24KICAgICAgICAgIDwvYnV0dG9uPgogICAgICAgICAgCiAgICAgICAgICA8YnV0dG9uIGlkPSJidG4tc2F2ZS1zdGF0ZSIgY2xhc3M9ImRlbW8tYnV0dG9uIj4KICAgICAgICAgICAgU2F2ZSBTdGF0ZQogICAgICAgICAgPC9idXR0b24+CiAgICAgICAgICAKICAgICAgICAgIDxidXR0b24gaWQ9ImJ0bi1yZXN0b3JlLXN0YXRlIiBjbGFzcz0iZGVtby1idXR0b24iPgogICAgICAgICAgICBSZXN0b3JlIFN0YXRlCiAgICAgICAgICA8L2J1dHRvbj4KICAgICAgICA8L2Rpdj4KICAgICAgPC9kZWVzLXBhbmVsPgogICAgPC9kaXY+CiAgPC9kZWVzLWRlbW93cmFwcGVyPgpgfSk7dmFyIEFhPWIoKCk9Pnt9KTt2YXIgVjEsbzQ9YigoKT0+e0FhKCk7VjE9Y2xhc3N7c3RhdGljIEhFQURJTkdfUEFUVEVSTlM9W3twYXR0ZXJuOi9eI1tcc1x1MDBBMF0kLyx0eXBlOiJoZWFkaW5nLTEifSx7cGF0dGVybjovXiMjW1xzXHUwMEEwXSQvLHR5cGU6ImhlYWRpbmctMiJ9LHtwYXR0ZXJuOi9eIyMjW1xzXHUwMEEwXSQvLHR5cGU6ImhlYWRpbmctMyJ9XTtzdGF0aWMgTElTVF9QQVRURVJOUz1be3BhdHRlcm46L15bKi1dW1xzXHUwMEEwXSQvLHR5cGU6ImJ1bGxldCJ9LHtwYXR0ZXJuOi9eKFxkKylcLltcc1x1MDBBMF0kLyx0eXBlOiJvcmRlcmVkIn0se3BhdHRlcm46L14oXGQrKVwpW1xzXHUwMEEwXSQvLHR5cGU6Im9yZGVyZWQifV07c3RhdGljIFFVT1RFX1BBVFRFUk49L14+W1xzXHUwMEEwXSQvO3N0YXRpYyBDT0RFX1BBVFRFUk49L15gYGAkLztzdGF0aWMgRElWSURFUl9QQVRURVJOUz1bIi0tLSIsIioqKiIsIl9fXyJdO3N0YXRpYyBjaGVja0hlYWRpbmdTaG9ydGN1dChlKXtmb3IobGV0e3BhdHRlcm46YSx0eXBlOml9b2YgdGhpcy5IRUFESU5HX1BBVFRFUk5TKWlmKGEudGVzdChlKSlyZXR1cm57dHlwZTppfTtyZXR1cm4gbnVsbH1zdGF0aWMgY2hlY2tMaXN0U2hvcnRjdXQoZSl7Zm9yKGxldHtwYXR0ZXJuOmEsdHlwZTppfW9mIHRoaXMuTElTVF9QQVRURVJOUylpZihhLnRlc3QoZSkpcmV0dXJue3R5cGU6Imxpc3QiLGxpc3RUeXBlOml9O3JldHVybiBudWxsfXN0YXRpYyBjaGVja1F1b3RlU2hvcnRjdXQoZSl7cmV0dXJuIHRoaXMuUVVPVEVfUEFUVEVSTi50ZXN0KGUpfXN0YXRpYyBjaGVja0NvZGVTaG9ydGN1dChlKXtyZXR1cm4gdGhpcy5DT0RFX1BBVFRFUk4udGVzdChlKX1zdGF0aWMgY2hlY2tEaXZpZGVyU2hvcnRjdXQoZSl7cmV0dXJuIHRoaXMuRElWSURFUl9QQVRURVJOUy5pbmNsdWRlcyhlKX1zdGF0aWMgZ2V0U2xhc2hNZW51SXRlbXMoKXtyZXR1cm5be3R5cGU6InBhcmFncmFwaCIsbGFiZWw6IlBhcmFncmFwaCIsaWNvbjoibHVjaWRlOnBpbGNyb3cifSx7dHlwZToiaGVhZGluZy0xIixsYWJlbDoiSGVhZGluZyAxIixpY29uOiJsdWNpZGU6aGVhZGluZzEifSx7dHlwZToiaGVhZGluZy0yIixsYWJlbDoiSGVhZGluZyAyIixpY29uOiJsdWNpZGU6aGVhZGluZzIifSx7dHlwZToiaGVhZGluZy0zIixsYWJlbDoiSGVhZGluZyAzIixpY29uOiJsdWNpZGU6aGVhZGluZzMifSx7dHlwZToicXVvdGUiLGxhYmVsOiJRdW90ZSIsaWNvbjoibHVjaWRlOnF1b3RlIn0se3R5cGU6ImNvZGUiLGxhYmVsOiJDb2RlIEJsb2NrIixpY29uOiJsdWNpZGU6ZmlsZUNvZGUifSx7dHlwZToibGlzdCIsbGFiZWw6IkJ1bGxldCBMaXN0IixpY29uOiJsdWNpZGU6bGlzdCJ9LHt0eXBlOiJpbWFnZSIsbGFiZWw6IkltYWdlIixpY29uOiJsdWNpZGU6aW1hZ2UifSx7dHlwZToiZGl2aWRlciIsbGFiZWw6IkRpdmlkZXIiLGljb246Imx1Y2lkZTptaW51cyJ9LHt0eXBlOiJ5b3V0dWJlIixsYWJlbDoiWW91VHViZSIsaWNvbjoibHVjaWRlOnlvdXR1YmUifSx7dHlwZToibWFya2Rvd24iLGxhYmVsOiJNYXJrZG93biIsaWNvbjoibHVjaWRlOmZpbGVUZXh0In0se3R5cGU6Imh0bWwiLGxhYmVsOiJIVE1MIixpY29uOiJsdWNpZGU6Y29kZSJ9LHt0eXBlOiJhdHRhY2htZW50IixsYWJlbDoiRmlsZSBBdHRhY2htZW50IixpY29uOiJsdWNpZGU6cGFwZXJjbGlwIn1dfXN0YXRpYyBnZW5lcmF0ZUJsb2NrSWQoKXtyZXR1cm5gYmxvY2stJHtEYXRlLm5vdygpfS0ke01hdGgucmFuZG9tKCkudG9TdHJpbmcoMzYpLnN1YnN0cmluZygyLDkpfWB9fX0pO3ZhciBJbCxRaSx0dyx4Vj1iKCgpPT57dWUoKTt1aSgpO0R0KCk7QWEoKTtvNCgpO3FlKCk7SWw9ZnVuY3Rpb24odCxlLGEsaSxyLHMpe2Z1bmN0aW9uIG4oeCl7aWYoeCE9PXZvaWQgMCYmdHlwZW9mIHghPSJmdW5jdGlvbiIpdGhyb3cgbmV3IFR5cGVFcnJvcigiRnVuY3Rpb24gZXhwZWN0ZWQiKTtyZXR1cm4geH1mb3IodmFyIG89aS5raW5kLGQ9bz09PSJnZXR0ZXIiPyJnZXQiOm89PT0ic2V0dGVyIj8ic2V0IjoidmFsdWUiLGM9IWUmJnQ/aS5zdGF0aWM/dDp0LnByb3RvdHlwZTpudWxsLGg9ZXx8KGM/T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihjLGkubmFtZSk6e30pLGwsZj0hMSxnPWEubGVuZ3RoLTE7Zz49MDtnLS0pe3ZhciB5PXt9O2Zvcih2YXIgdiBpbiBpKXlbdl09dj09PSJhY2Nlc3MiP3t9Omlbdl07Zm9yKHZhciB2IGluIGkuYWNjZXNzKXkuYWNjZXNzW3ZdPWkuYWNjZXNzW3ZdO3kuYWRkSW5pdGlhbGl6ZXI9ZnVuY3Rpb24oeCl7aWYoZil0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgYWRkIGluaXRpYWxpemVycyBhZnRlciBkZWNvcmF0aW9uIGhhcyBjb21wbGV0ZWQiKTtzLnB1c2gobih4fHxudWxsKSl9O3ZhciBtPSgwLGFbZ10pKG89PT0iYWNjZXNzb3IiP3tnZXQ6aC5nZXQsc2V0Omguc2V0fTpoW2RdLHkpO2lmKG89PT0iYWNjZXNzb3IiKXtpZihtPT09dm9pZCAwKWNvbnRpbnVlO2lmKG09PT1udWxsfHx0eXBlb2YgbSE9Im9iamVjdCIpdGhyb3cgbmV3IFR5cGVFcnJvcigiT2JqZWN0IGV4cGVjdGVkIik7KGw9bihtLmdldCkpJiYoaC5nZXQ9bCksKGw9bihtLnNldCkpJiYoaC5zZXQ9bCksKGw9bihtLmluaXQpKSYmci51bnNoaWZ0KGwpfWVsc2UobD1uKG0pKSYmKG89PT0iZmllbGQiP3IudW5zaGlmdChsKTpoW2RdPWwpfWMmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShjLGkubmFtZSxoKSxmPSEwfSxRaT1mdW5jdGlvbih0LGUsYSl7Zm9yKHZhciBpPWFyZ3VtZW50cy5sZW5ndGg+MixyPTA7cjxlLmxlbmd0aDtyKyspYT1pP2Vbcl0uY2FsbCh0LGEpOmVbcl0uY2FsbCh0KTtyZXR1cm4gaT9hOnZvaWQgMH0sdHc9KCgpPT57bGV0IHQ9W3BlKCJkZWVzLXNsYXNoLW1lbnUiKV0sZSxhPVtdLGkscj14ZSxzLG49W10sbz1bXSxkLGM9W10saD1bXSxsLGY9W10sZz1bXSx5LHY9W10sbT1bXSx4LE09W10sUz1bXTt2YXIgRj1jbGFzcyBleHRlbmRzIHJ7c3RhdGlje2k9dGhpc31zdGF0aWN7bGV0IF89dHlwZW9mIFN5bWJvbD09ImZ1bmN0aW9uIiYmU3ltYm9sLm1ldGFkYXRhP09iamVjdC5jcmVhdGUocltTeW1ib2wubWV0YWRhdGFdPz9udWxsKTp2b2lkIDA7cz1bSigpXSxkPVtKKCldLGw9W0ooKV0seT1bSigpXSx4PVtKKCldLElsKHRoaXMsbnVsbCxzLHtraW5kOiJhY2Nlc3NvciIsbmFtZToidmlzaWJsZSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6az0+InZpc2libGUiaW4gayxnZXQ6az0+ay52aXNpYmxlLHNldDooayxOKT0+e2sudmlzaWJsZT1OfX0sbWV0YWRhdGE6X30sbixvKSxJbCh0aGlzLG51bGwsZCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InBvc2l0aW9uIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczprPT4icG9zaXRpb24iaW4gayxnZXQ6az0+ay5wb3NpdGlvbixzZXQ6KGssTik9PntrLnBvc2l0aW9uPU59fSxtZXRhZGF0YTpffSxjLGgpLElsKHRoaXMsbnVsbCxsLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiZmlsdGVyIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczprPT4iZmlsdGVyImluIGssZ2V0Oms9PmsuZmlsdGVyLHNldDooayxOKT0+e2suZmlsdGVyPU59fSxtZXRhZGF0YTpffSxmLGcpLElsKHRoaXMsbnVsbCx5LHtraW5kOiJhY2Nlc3NvciIsbmFtZToic2VsZWN0ZWRJbmRleCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6az0+InNlbGVjdGVkSW5kZXgiaW4gayxnZXQ6az0+ay5zZWxlY3RlZEluZGV4LHNldDooayxOKT0+e2suc2VsZWN0ZWRJbmRleD1OfX0sbWV0YWRhdGE6X30sdixtKSxJbCh0aGlzLG51bGwseCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6Im1lbnVaSW5kZXgiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOms9PiJtZW51WkluZGV4ImluIGssZ2V0Oms9PmsubWVudVpJbmRleCxzZXQ6KGssTik9PntrLm1lbnVaSW5kZXg9Tn19LG1ldGFkYXRhOl99LE0sUyksSWwobnVsbCxlPXt2YWx1ZTppfSx0LHtraW5kOiJjbGFzcyIsbmFtZTppLm5hbWUsbWV0YWRhdGE6X30sbnVsbCxhKSxGPWk9ZS52YWx1ZSxfJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoaSxTeW1ib2wubWV0YWRhdGEse2VudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwLHZhbHVlOl99KX1zdGF0aWMgaW5zdGFuY2U7c3RhdGljIGdldEluc3RhbmNlKCl7cmV0dXJuIEYuaW5zdGFuY2V8fChGLmluc3RhbmNlPW5ldyBGLGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoRi5pbnN0YW5jZSkpLEYuaW5zdGFuY2V9I2U9UWkodGhpcyxuLCExKTtnZXQgdmlzaWJsZSgpe3JldHVybiB0aGlzLiNlfXNldCB2aXNpYmxlKF8pe3RoaXMuI2U9X30jdD0oUWkodGhpcyxvKSxRaSh0aGlzLGMse3g6MCx5OjB9KSk7Z2V0IHBvc2l0aW9uKCl7cmV0dXJuIHRoaXMuI3R9c2V0IHBvc2l0aW9uKF8pe3RoaXMuI3Q9X30jYT0oUWkodGhpcyxoKSxRaSh0aGlzLGYsIiIpKTtnZXQgZmlsdGVyKCl7cmV0dXJuIHRoaXMuI2F9c2V0IGZpbHRlcihfKXt0aGlzLiNhPV99I2k9KFFpKHRoaXMsZyksUWkodGhpcyx2LDApKTtnZXQgc2VsZWN0ZWRJbmRleCgpe3JldHVybiB0aGlzLiNpfXNldCBzZWxlY3RlZEluZGV4KF8pe3RoaXMuI2k9X30jcj0oUWkodGhpcyxtKSxRaSh0aGlzLE0sMWUzKSk7Z2V0IG1lbnVaSW5kZXgoKXtyZXR1cm4gdGhpcy4jcn1zZXQgbWVudVpJbmRleChfKXt0aGlzLiNyPV99Y2FsbGJhY2s9KFFpKHRoaXMsUyksbnVsbCk7c3RhdGljIHN0eWxlcz1bQ2UscC5kZWZhdWx0U3R5bGVzLFFgCiAgICAgIC8qIFRPRE86IE1pZ3JhdGUgaGFyZGNvZGVkIHZhbHVlcyB0byAtLWRlZXMtKiBDU1MgdmFyaWFibGVzICovCiAgICAgIDpob3N0IHsKICAgICAgICBwb3NpdGlvbjogZml4ZWQ7CiAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7CiAgICAgICAgdG9wOiAwOwogICAgICAgIGxlZnQ6IDA7CiAgICAgICAgd2lkdGg6IDA7CiAgICAgICAgaGVpZ2h0OiAwOwogICAgICB9CgogICAgICAuc2xhc2gtbWVudSB7CiAgICAgICAgcG9zaXRpb246IGZpeGVkOwogICAgICAgIGJhY2tncm91bmQ6ICR7cC5iZFRoZW1lKCIjZmZmZmZmIiwiIzA5MDkwYiIpfTsKICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAke3AuYmRUaGVtZSgiI2U1ZTdlYiIsIiMyNzI3MmEiKX07CiAgICAgICAgYm9yZGVyLXJhZGl1czogNHB4OwogICAgICAgIGJveC1zaGFkb3c6IDAgMXB4IDNweCByZ2JhKDAsIDAsIDAsIDAuMSksIDAgMXB4IDJweCByZ2JhKDAsIDAsIDAsIDAuMDYpOwogICAgICAgIHBhZGRpbmc6IDRweDsKICAgICAgICBtaW4td2lkdGg6IDIyMHB4OwogICAgICAgIG1heC1oZWlnaHQ6IDMwMHB4OwogICAgICAgIG92ZXJmbG93LXk6IGF1dG87CiAgICAgICAgcG9pbnRlci1ldmVudHM6IGF1dG87CiAgICAgICAgdXNlci1zZWxlY3Q6IG5vbmU7CiAgICAgICAgYW5pbWF0aW9uOiBmYWRlSW5TY2FsZSAwLjE1cyBlYXNlLW91dDsKICAgICAgfQoKICAgICAgQGtleWZyYW1lcyBmYWRlSW5TY2FsZSB7CiAgICAgICAgZnJvbSB7CiAgICAgICAgICBvcGFjaXR5OiAwOwogICAgICAgICAgdHJhbnNmb3JtOiBzY2FsZSgwLjk4KSB0cmFuc2xhdGVZKC0ycHgpOwogICAgICAgIH0KICAgICAgICB0byB7CiAgICAgICAgICBvcGFjaXR5OiAxOwogICAgICAgICAgdHJhbnNmb3JtOiBzY2FsZSgxKSB0cmFuc2xhdGVZKDApOwogICAgICAgIH0KICAgICAgfQoKICAgICAgLnNsYXNoLW1lbnUtaXRlbSB7CiAgICAgICAgcGFkZGluZzogOHB4IDEwcHg7CiAgICAgICAgY3Vyc29yOiBwb2ludGVyOwogICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjE1cyBlYXNlOwogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBnYXA6IDEycHg7CiAgICAgICAgYm9yZGVyLXJhZGl1czogM3B4OwogICAgICAgIGNvbG9yOiAke3AuYmRUaGVtZSgiIzA5MDkwYiIsIiNmYWZhZmEiKX07CiAgICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgICB9CgogICAgICAuc2xhc2gtbWVudS1pdGVtOmhvdmVyLAogICAgICAuc2xhc2gtbWVudS1pdGVtLnNlbGVjdGVkIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke3AuYmRUaGVtZSgiI2Y0ZjRmNSIsIiMyNzI3MmEiKX07CiAgICAgICAgY29sb3I6ICR7cC5iZFRoZW1lKCIjMDkwOTBiIiwiI2ZhZmFmYSIpfTsKICAgICAgfQoKICAgICAgLnNsYXNoLW1lbnUtaXRlbSAuaWNvbiB7CiAgICAgICAgd2lkdGg6IDIwcHg7CiAgICAgICAgaGVpZ2h0OiAyMHB4OwogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKICAgICAgICBjb2xvcjogJHtwLmJkVGhlbWUoIiM3MTcxN2EiLCIjYTFhMWFhIil9OwogICAgICB9CgogICAgICAuc2xhc2gtbWVudS1pdGVtOmhvdmVyIC5pY29uLAogICAgICAuc2xhc2gtbWVudS1pdGVtLnNlbGVjdGVkIC5pY29uIHsKICAgICAgICBjb2xvcjogJHtwLmJkVGhlbWUoIiMzYjgyZjYiLCIjM2I4MmY2Iil9OwogICAgICB9CiAgICBgXTtyZW5kZXIoKXtpZighdGhpcy52aXNpYmxlKXJldHVybiB3YGA7dGhpcy5zdHlsZS56SW5kZXg9dGhpcy5tZW51WkluZGV4LnRvU3RyaW5nKCk7bGV0IF89dGhpcy5nZXRGaWx0ZXJlZE1lbnVJdGVtcygpO3JldHVybiB3YAogICAgICA8ZGl2IAogICAgICAgIGNsYXNzPSJzbGFzaC1tZW51IiAKICAgICAgICBzdHlsZT0ibGVmdDogJHt0aGlzLnBvc2l0aW9uLnh9cHg7IHRvcDogJHt0aGlzLnBvc2l0aW9uLnl9cHg7IgogICAgICAgIHRhYmluZGV4PSItMSIKICAgICAgICBkYXRhLW1lbnUtdHlwZT0ic2xhc2giCiAgICAgID4KICAgICAgICAke18ubWFwKChrLE4pPT53YAogICAgICAgICAgPGRpdiAKICAgICAgICAgICAgY2xhc3M9InNsYXNoLW1lbnUtaXRlbSAke049PT10aGlzLnNlbGVjdGVkSW5kZXg/InNlbGVjdGVkIjoiIn0iCiAgICAgICAgICAgIGRhdGEtaXRlbS10eXBlPSIke2sudHlwZX0iCiAgICAgICAgICAgIGRhdGEtaXRlbS1pbmRleD0iJHtOfSIKICAgICAgICAgID4KICAgICAgICAgICAgPGRlZXMtaWNvbiBjbGFzcz0iaWNvbiIgLmljb249IiR7ay5pY29ufSIgaWNvblNpemU9IjE2Ij48L2RlZXMtaWNvbj4KICAgICAgICAgICAgPHNwYW4+JHtrLmxhYmVsfTwvc3Bhbj4KICAgICAgICAgIDwvZGl2PgogICAgICAgIGApfQogICAgICA8L2Rpdj4KICAgIGB9Z2V0RmlsdGVyZWRNZW51SXRlbXMoKXtyZXR1cm4gVjEuZ2V0U2xhc2hNZW51SXRlbXMoKS5maWx0ZXIoaz0+dGhpcy5maWx0ZXI9PT0iInx8ay5sYWJlbC50b0xvd2VyQ2FzZSgpLmluY2x1ZGVzKHRoaXMuZmlsdGVyLnRvTG93ZXJDYXNlKCkpKX1zZWxlY3RJdGVtKF8pe3RoaXMuY2FsbGJhY2smJnRoaXMuY2FsbGJhY2soXyksdGhpcy5oaWRlKCl9c2hvdyhfLGspe3RoaXMucG9zaXRpb249Xyx0aGlzLmNhbGxiYWNrPWssdGhpcy5maWx0ZXI9IiIsdGhpcy5zZWxlY3RlZEluZGV4PTAsdGhpcy5tZW51WkluZGV4PWgxLmdldE5leHRaSW5kZXgoKSxoMS5yZWdpc3Rlcih0aGlzLHRoaXMubWVudVpJbmRleCksdGhpcy5zdHlsZS56SW5kZXg9dGhpcy5tZW51WkluZGV4LnRvU3RyaW5nKCksdGhpcy52aXNpYmxlPSEwfWhpZGUoKXt0aGlzLnZpc2libGU9ITEsdGhpcy5jYWxsYmFjaz1udWxsLHRoaXMuZmlsdGVyPSIiLHRoaXMuc2VsZWN0ZWRJbmRleD0wLGgxLnVucmVnaXN0ZXIodGhpcyl9dXBkYXRlRmlsdGVyKF8pe3RoaXMuZmlsdGVyPV8sdGhpcy5zZWxlY3RlZEluZGV4PTB9bmF2aWdhdGUoXyl7bGV0IGs9dGhpcy5nZXRGaWx0ZXJlZE1lbnVJdGVtcygpO189PT0iZG93biI/dGhpcy5zZWxlY3RlZEluZGV4PSh0aGlzLnNlbGVjdGVkSW5kZXgrMSklay5sZW5ndGg6dGhpcy5zZWxlY3RlZEluZGV4PXRoaXMuc2VsZWN0ZWRJbmRleD09PTA/ay5sZW5ndGgtMTp0aGlzLnNlbGVjdGVkSW5kZXgtMX1zZWxlY3RDdXJyZW50KCl7bGV0IF89dGhpcy5nZXRGaWx0ZXJlZE1lbnVJdGVtcygpO19bdGhpcy5zZWxlY3RlZEluZGV4XSYmdGhpcy5zZWxlY3RJdGVtKF9bdGhpcy5zZWxlY3RlZEluZGV4XS50eXBlKX1maXJzdFVwZGF0ZWQoKXt0aGlzLnNoYWRvd1Jvb3Q/LmFkZEV2ZW50TGlzdGVuZXIoIm1vdXNlZG93biIsXz0+e2xldCBrPXRoaXMuc2hhZG93Um9vdD8ucXVlcnlTZWxlY3RvcigiLnNsYXNoLW1lbnUiKTtrJiZrLmNvbnRhaW5zKF8udGFyZ2V0KSYmKF8ucHJldmVudERlZmF1bHQoKSxfLnN0b3BQcm9wYWdhdGlvbigpKX0pLHRoaXMuc2hhZG93Um9vdD8uYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLF89PntsZXQgTj1fLnRhcmdldC5jbG9zZXN0KCIuc2xhc2gtbWVudS1pdGVtIik7aWYoTil7Xy5wcmV2ZW50RGVmYXVsdCgpLF8uc3RvcFByb3BhZ2F0aW9uKCk7bGV0IEw9Ti5nZXRBdHRyaWJ1dGUoImRhdGEtaXRlbS10eXBlIik7TCYmdGhpcy5zZWxlY3RJdGVtKEwpfX0pLHRoaXMuc2hhZG93Um9vdD8uYWRkRXZlbnRMaXN0ZW5lcigibW91c2VlbnRlciIsXz0+e2xldCBOPV8udGFyZ2V0LmNsb3Nlc3QoIi5zbGFzaC1tZW51LWl0ZW0iKTtpZihOKXtsZXQgTD1wYXJzZUludChOLmdldEF0dHJpYnV0ZSgiZGF0YS1pdGVtLWluZGV4Iil8fCIwIiwxMCk7dGhpcy5zZWxlY3RlZEluZGV4PUx9fSwhMCksdGhpcy5zaGFkb3dSb290Py5hZGRFdmVudExpc3RlbmVyKCJmb2N1cyIsXz0+e2xldCBrPXRoaXMuc2hhZG93Um9vdD8ucXVlcnlTZWxlY3RvcigiLnNsYXNoLW1lbnUiKTtrJiZrLmNvbnRhaW5zKF8udGFyZ2V0KSYmKF8ucHJldmVudERlZmF1bHQoKSxfLnN0b3BQcm9wYWdhdGlvbigpKX0sITApfXN0YXRpY3tRaShpLGEpfX07cmV0dXJuIEY9aX0pKCl9KTt2YXIgUmUsVXI9YigoKT0+e1JlPWNsYXNze3N0YXRpYyBnZXRTZWxlY3Rpb25JbmZvKC4uLmUpe2xldCBhPXdpbmRvdy5nZXRTZWxlY3Rpb24oKTtpZihjb25zb2xlLmxvZygiV3lzaXd5Z1NlbGVjdGlvbi5nZXRTZWxlY3Rpb25JbmZvIC0gc2VsZWN0aW9uOiIsYSwicmFuZ2VDb3VudDoiLGE/LnJhbmdlQ291bnQpLCFhKXJldHVybiBudWxsO2lmKCJnZXRDb21wb3NlZFJhbmdlcyJpbiBhJiZ0eXBlb2YgYS5nZXRDb21wb3NlZFJhbmdlcz09ImZ1bmN0aW9uIil7Y29uc29sZS5sb2coIlVzaW5nIGdldENvbXBvc2VkUmFuZ2VzIHdpdGgiLGUubGVuZ3RoLCJzaGFkb3cgcm9vdHMiKTt0cnl7bGV0IGk9YS5nZXRDb21wb3NlZFJhbmdlcyh7c2hhZG93Um9vdHM6ZX0pO2lmKGNvbnNvbGUubG9nKCJnZXRDb21wb3NlZFJhbmdlcyByZXR1cm5lZCIsaS5sZW5ndGgsInJhbmdlcyIpLGkubGVuZ3RoPjApe2xldCByPWlbMF07cmV0dXJue3N0YXJ0Q29udGFpbmVyOnIuc3RhcnRDb250YWluZXIsc3RhcnRPZmZzZXQ6ci5zdGFydE9mZnNldCxlbmRDb250YWluZXI6ci5lbmRDb250YWluZXIsZW5kT2Zmc2V0OnIuZW5kT2Zmc2V0LGNvbGxhcHNlZDpyLmNvbGxhcHNlZH19fWNhdGNoKGkpe2NvbnNvbGUud2FybigiZ2V0Q29tcG9zZWRSYW5nZXMgZmFpbGVkLCBmYWxsaW5nIGJhY2sgdG8gZ2V0UmFuZ2VBdDoiLGkpfX1lbHNlIGNvbnNvbGUubG9nKCJnZXRDb21wb3NlZFJhbmdlcyBub3QgYXZhaWxhYmxlLCB1c2luZyBmYWxsYmFjayIpO2lmKGEucmFuZ2VDb3VudD4wKXtsZXQgaT1hLmdldFJhbmdlQXQoMCk7cmV0dXJue3N0YXJ0Q29udGFpbmVyOmkuc3RhcnRDb250YWluZXIsc3RhcnRPZmZzZXQ6aS5zdGFydE9mZnNldCxlbmRDb250YWluZXI6aS5lbmRDb250YWluZXIsZW5kT2Zmc2V0OmkuZW5kT2Zmc2V0LGNvbGxhcHNlZDppLmNvbGxhcHNlZH19cmV0dXJuIG51bGx9c3RhdGljIGlzU2VsZWN0aW9uSW5FbGVtZW50KGUsYSl7bGV0IGk9YT90aGlzLmdldFNlbGVjdGlvbkluZm8oYSk6dGhpcy5nZXRTZWxlY3Rpb25JbmZvKCk7cmV0dXJuIGk/ZS5jb250YWlucyhpLnN0YXJ0Q29udGFpbmVyKXx8ZS5jb250YWlucyhpLmVuZENvbnRhaW5lcik6ITF9c3RhdGljIGdldFNlbGVjdGVkVGV4dCgpe2xldCBlPXdpbmRvdy5nZXRTZWxlY3Rpb24oKTtyZXR1cm4gZT9lLnRvU3RyaW5nKCk6IiJ9c3RhdGljIGNyZWF0ZVJhbmdlRnJvbUluZm8oZSl7bGV0IGE9ZG9jdW1lbnQuY3JlYXRlUmFuZ2UoKTtyZXR1cm4gYS5zZXRTdGFydChlLnN0YXJ0Q29udGFpbmVyLGUuc3RhcnRPZmZzZXQpLGEuc2V0RW5kKGUuZW5kQ29udGFpbmVyLGUuZW5kT2Zmc2V0KSxhfXN0YXRpYyBzZXRTZWxlY3Rpb25Gcm9tUmFuZ2UoZSl7bGV0IGE9d2luZG93LmdldFNlbGVjdGlvbigpO2EmJihhLnJlbW92ZUFsbFJhbmdlcygpLGEuYWRkUmFuZ2UoZSkpfXN0YXRpYyBnZXRDdXJzb3JQb3NpdGlvbkluRWxlbWVudChlLC4uLmEpe2xldCBpPWEubGVuZ3RoPjA/dGhpcy5nZXRTZWxlY3Rpb25JbmZvKC4uLmEpOnRoaXMuZ2V0U2VsZWN0aW9uSW5mbygpO2lmKCFpfHwhaS5jb2xsYXBzZWQpcmV0dXJuIG51bGw7dHJ5e2xldCByPWRvY3VtZW50LmNyZWF0ZVJhbmdlKCk7aWYoci5zZWxlY3ROb2RlQ29udGVudHMoZSksdGhpcy5jb250YWluc0Fjcm9zc1NoYWRvd0RPTShlLGkuc3RhcnRDb250YWluZXIpKXJldHVybiByLnNldEVuZChpLnN0YXJ0Q29udGFpbmVyLGkuc3RhcnRPZmZzZXQpLHIudG9TdHJpbmcoKS5sZW5ndGg7e2xldCBuPWUudGV4dENvbnRlbnR8fCIiLG89aS5zdGFydENvbnRhaW5lci50ZXh0Q29udGVudHx8IiI7cmV0dXJuIGkuc3RhcnRPZmZzZXQ9PT0wPzA6aS5zdGFydE9mZnNldD09PW8ubGVuZ3RoP24ubGVuZ3RoOihjb25zb2xlLndhcm4oIlNlbGVjdGlvbiBjb250YWluZXIgbm90IHdpdGhpbiBlbGVtZW50LCB1c2luZyB0ZXh0IG1hdGNoaW5nIGZhbGxiYWNrIiksaS5zdGFydE9mZnNldCl9fWNhdGNoKHIpe3JldHVybiBjb25zb2xlLndhcm4oIkZhaWxlZCB0byBnZXQgY3Vyc29yIHBvc2l0aW9uOiIsciksbnVsbH19c3RhdGljIGdldEN1cnNvclBvc2l0aW9uRnJvbVBvaW50KGUsYSxpLC4uLnIpe2lmKCJjYXJldFBvc2l0aW9uRnJvbVBvaW50ImluIGRvY3VtZW50JiZkb2N1bWVudC5jYXJldFBvc2l0aW9uRnJvbVBvaW50KXtsZXQgcz1udWxsO3RyeXtzPWRvY3VtZW50LmNhcmV0UG9zaXRpb25Gcm9tUG9pbnQoZSxhLC4uLnIpfWNhdGNoe3M9ZG9jdW1lbnQuY2FyZXRQb3NpdGlvbkZyb21Qb2ludChlLGEpfWlmKHMmJmkuY29udGFpbnMocy5vZmZzZXROb2RlKSlyZXR1cm4gdGhpcy5nZXRPZmZzZXRJbkVsZW1lbnQocy5vZmZzZXROb2RlLHMub2Zmc2V0LGkpfWlmKCJjYXJldFJhbmdlRnJvbVBvaW50ImluIGRvY3VtZW50KXtsZXQgcz1kb2N1bWVudC5jYXJldFJhbmdlRnJvbVBvaW50KGUsYSk7aWYocyYmaS5jb250YWlucyhzLnN0YXJ0Q29udGFpbmVyKSlyZXR1cm4gdGhpcy5nZXRPZmZzZXRJbkVsZW1lbnQocy5zdGFydENvbnRhaW5lcixzLnN0YXJ0T2Zmc2V0LGkpfXJldHVybiBudWxsfXN0YXRpYyBnZXRPZmZzZXRJbkVsZW1lbnQoZSxhLGkpe2xldCByPTAscz0hMSxuPWRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoaSxOb2RlRmlsdGVyLlNIT1dfVEVYVCxudWxsKSxvO2Zvcig7bz1uLm5leHROb2RlKCk7KWlmKG89PT1lKXtyKz1hLHM9ITA7YnJlYWt9ZWxzZSByKz1vLnRleHRDb250ZW50Py5sZW5ndGh8fDA7cmV0dXJuIHM/cjowfXN0YXRpYyBzZXRDdXJzb3JQb3NpdGlvbihlLGEpe2xldCBpPWRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZSxOb2RlRmlsdGVyLlNIT1dfVEVYVCxudWxsKSxyPTAscz1udWxsLG49MDtmb3IoO2kubmV4dE5vZGUoKTspe2xldCBvPWkuY3VycmVudE5vZGUsZD1vLnRleHRDb250ZW50Py5sZW5ndGh8fDA7aWYocitkPj1hKXtzPW8sbj1hLXI7YnJlYWt9cis9ZH1pZihzKXtsZXQgbz1kb2N1bWVudC5jcmVhdGVSYW5nZSgpO28uc2V0U3RhcnQocyxuKSxvLmNvbGxhcHNlKCEwKSx0aGlzLnNldFNlbGVjdGlvbkZyb21SYW5nZShvKX19c3RhdGljIGNvbnRhaW5zQWNyb3NzU2hhZG93RE9NKGUsYSl7aWYoIWV8fCFhKXJldHVybiExO2xldCBpPWE7Zm9yKDtpOyl7aWYoaT09PWUpcmV0dXJuITA7aWYoaS5ub2RlVHlwZT09PU5vZGUuRE9DVU1FTlRfRlJBR01FTlRfTk9ERSYmaS5ob3N0KXtsZXQgcj1pO2lmKHIuY29udGFpbnMoZSkpcmV0dXJuITE7aT1yLmhvc3R9ZWxzZSBpPWkucGFyZW50Tm9kZX1yZXR1cm4hMX19fSk7dmFyIEhzLHdWPWIoKCk9Pnt1ZSgpO1VyKCk7SHM9Y2xhc3N7c3RhdGljIGZvcm1hdEJ1dHRvbnM9W3tjb21tYW5kOiJib2xkIixpY29uOiJCIixsYWJlbDoiQm9sZCIsc2hvcnRjdXQ6Ilx1MjMxOEIifSx7Y29tbWFuZDoiaXRhbGljIixpY29uOiJJIixsYWJlbDoiSXRhbGljIixzaG9ydGN1dDoiXHUyMzE4SSJ9LHtjb21tYW5kOiJ1bmRlcmxpbmUiLGljb246IlUiLGxhYmVsOiJVbmRlcmxpbmUiLHNob3J0Y3V0OiJcdTIzMThVIn0se2NvbW1hbmQ6InN0cmlrZVRocm91Z2giLGljb246IlNcdTAzMzYiLGxhYmVsOiJTdHJpa2V0aHJvdWdoIn0se2NvbW1hbmQ6ImNvZGUiLGljb246InsgfSIsbGFiZWw6IklubGluZSBDb2RlIn0se2NvbW1hbmQ6ImxpbmsiLGljb246Ilx1ezFGNTE3fSIsbGFiZWw6IkxpbmsiLHNob3J0Y3V0OiJcdTIzMThLIn1dO3N0YXRpYyByZW5kZXJGb3JtYXR0aW5nTWVudShlLGEpe3JldHVybiB3YAogICAgICA8ZGl2IAogICAgICAgIGNsYXNzPSJmb3JtYXR0aW5nLW1lbnUiIAogICAgICAgIHN0eWxlPSJ0b3A6ICR7ZS55fXB4OyBsZWZ0OiAke2UueH1weDsiCiAgICAgICAgQG1vdXNlZG93bj0iJHtpPT57aS5wcmV2ZW50RGVmYXVsdCgpLGkuc3RvcFByb3BhZ2F0aW9uKCl9fSIKICAgICAgICBAY2xpY2s9IiR7aT0+aS5zdG9wUHJvcGFnYXRpb24oKX0iCiAgICAgID4KICAgICAgICAke3RoaXMuZm9ybWF0QnV0dG9ucy5tYXAoaT0+d2AKICAgICAgICAgIDxidXR0b24gCiAgICAgICAgICAgIGNsYXNzPSJmb3JtYXQtYnV0dG9uICR7aS5jb21tYW5kfSIKICAgICAgICAgICAgQGNsaWNrPSIkeygpPT5hKGkuY29tbWFuZCl9IgogICAgICAgICAgICB0aXRsZT0iJHtpLmxhYmVsfSR7aS5zaG9ydGN1dD9gICgke2kuc2hvcnRjdXR9KWA6IiJ9IgogICAgICAgICAgPgogICAgICAgICAgICA8c3BhbiBjbGFzcz0iJHtpLmNvbW1hbmQ9PT0iY29kZSI/ImNvZGUtaWNvbiI6IiJ9Ij4ke2kuaWNvbn08L3NwYW4+CiAgICAgICAgICA8L2J1dHRvbj4KICAgICAgICBgKX0KICAgICAgPC9kaXY+CiAgICBgfXN0YXRpYyBhcHBseUZvcm1hdChlLGEsaSxyKXtsZXQgcztpZihpKXM9aTtlbHNle2xldCBuPXdpbmRvdy5nZXRTZWxlY3Rpb24oKTtpZighbnx8bi5yYW5nZUNvdW50PT09MClyZXR1cm4hMTtzPW4uZ2V0UmFuZ2VBdCgwKX1zd2l0Y2goZSl7Y2FzZSJib2xkIjp0aGlzLndyYXBTZWxlY3Rpb24ocywic3Ryb25nIik7YnJlYWs7Y2FzZSJpdGFsaWMiOnRoaXMud3JhcFNlbGVjdGlvbihzLCJlbSIpO2JyZWFrO2Nhc2UidW5kZXJsaW5lIjp0aGlzLndyYXBTZWxlY3Rpb24ocywidSIpO2JyZWFrO2Nhc2Uic3RyaWtlVGhyb3VnaCI6dGhpcy53cmFwU2VsZWN0aW9uKHMsInMiKTticmVhaztjYXNlImNvZGUiOnRoaXMud3JhcFNlbGVjdGlvbihzLCJjb2RlIik7YnJlYWs7Y2FzZSJsaW5rIjppZighYSlyZXR1cm4hMTt0aGlzLndyYXBTZWxlY3Rpb25XaXRoTGluayhzLGEpO2JyZWFrfWlmKHImJnIubGVuZ3RoPjApUmUuc2V0U2VsZWN0aW9uRnJvbVJhbmdlKHMpO2Vsc2V7bGV0IG49d2luZG93LmdldFNlbGVjdGlvbigpO24mJihuLnJlbW92ZUFsbFJhbmdlcygpLG4uYWRkUmFuZ2UocykpfXJldHVybiEwfXN0YXRpYyB3cmFwU2VsZWN0aW9uKGUsYSl7bGV0IGk9d2luZG93LmdldFNlbGVjdGlvbigpO2lmKCFpKXJldHVybjtpZih0aGlzLnNlbGVjdGlvbkNvbnRhaW5zVGFnKGUsYSkpdGhpcy5yZW1vdmVUYWdGcm9tU2VsZWN0aW9uKGUsYSk7ZWxzZXtsZXQgcz1kb2N1bWVudC5jcmVhdGVFbGVtZW50KGEpO3RyeXtsZXQgbj1lLmV4dHJhY3RDb250ZW50cygpO3MuYXBwZW5kQ2hpbGQobiksZS5pbnNlcnROb2RlKHMpLGUuc2VsZWN0Tm9kZUNvbnRlbnRzKHMpLGkucmVtb3ZlQWxsUmFuZ2VzKCksaS5hZGRSYW5nZShlKX1jYXRjaChuKXtjb25zb2xlLmVycm9yKCJGYWlsZWQgdG8gd3JhcCBzZWxlY3Rpb246IixuKX19fXN0YXRpYyBzZWxlY3Rpb25Db250YWluc1RhZyhlLGEpe2xldCBpPWUuc3RhcnRDb250YWluZXI7Zm9yKDtpJiZpIT09ZS5jb21tb25BbmNlc3RvckNvbnRhaW5lci5vd25lckRvY3VtZW50Oyl7aWYoaS5ub2RlVHlwZT09PU5vZGUuRUxFTUVOVF9OT0RFJiZpLnRhZ05hbWUudG9Mb3dlckNhc2UoKT09PWEpcmV0dXJuITA7aT1pLnBhcmVudE5vZGV9Zm9yKGk9ZS5lbmRDb250YWluZXI7aSYmaSE9PWUuY29tbW9uQW5jZXN0b3JDb250YWluZXIub3duZXJEb2N1bWVudDspe2lmKGkubm9kZVR5cGU9PT1Ob2RlLkVMRU1FTlRfTk9ERSYmaS50YWdOYW1lLnRvTG93ZXJDYXNlKCk9PT1hKXJldHVybiEwO2k9aS5wYXJlbnROb2RlfWxldCByPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpLHM9ZS5jbG9uZUNvbnRlbnRzKCk7cmV0dXJuIHIuYXBwZW5kQ2hpbGQocyksci5nZXRFbGVtZW50c0J5VGFnTmFtZShhKS5sZW5ndGg+MH1zdGF0aWMgcmVtb3ZlVGFnRnJvbVNlbGVjdGlvbihlLGEpe2xldCBpPXdpbmRvdy5nZXRTZWxlY3Rpb24oKTtpZighaSlyZXR1cm47bGV0IHI9ZS5jbG9uZVJhbmdlKCkscz1lLnN0YXJ0Q29udGFpbmVyLG49bnVsbDtmb3IoO3MmJnMhPT1lLmNvbW1vbkFuY2VzdG9yQ29udGFpbmVyLm93bmVyRG9jdW1lbnQ7KXtpZihzLm5vZGVUeXBlPT09Tm9kZS5FTEVNRU5UX05PREUmJnMudGFnTmFtZS50b0xvd2VyQ2FzZSgpPT09YSl7bj1zO2JyZWFrfXM9cy5wYXJlbnROb2RlfWxldCBvPWUuZW5kQ29udGFpbmVyLGQ9bnVsbDtmb3IoO28mJm8hPT1lLmNvbW1vbkFuY2VzdG9yQ29udGFpbmVyLm93bmVyRG9jdW1lbnQ7KXtpZihvLm5vZGVUeXBlPT09Tm9kZS5FTEVNRU5UX05PREUmJm8udGFnTmFtZS50b0xvd2VyQ2FzZSgpPT09YSl7ZD1vO2JyZWFrfW89by5wYXJlbnROb2RlfW4mJnIuc2V0U3RhcnRCZWZvcmUobiksZCYmci5zZXRFbmRBZnRlcihkKTtsZXQgYz1yLmV4dHJhY3RDb250ZW50cygpLGg9dGhpcy5yZW1vdmVUYWdzRnJvbUZyYWdtZW50KGMsYSk7ci5pbnNlcnROb2RlKGgpO2xldCBsPVtdLGY9ZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihoLE5vZGVGaWx0ZXIuU0hPV19URVhULG51bGwpLGc7Zm9yKDtnPWYubmV4dE5vZGUoKTspbC5wdXNoKGcpO2lmKGwubGVuZ3RoPjApe2xldCB5PWRvY3VtZW50LmNyZWF0ZVJhbmdlKCk7eS5zZXRTdGFydChsWzBdLDApLHkuc2V0RW5kKGxbbC5sZW5ndGgtMV0sbFtsLmxlbmd0aC0xXS50ZXh0Q29udGVudD8ubGVuZ3RofHwwKSxpLnJlbW92ZUFsbFJhbmdlcygpLGkuYWRkUmFuZ2UoeSl9fXN0YXRpYyByZW1vdmVUYWdzRnJvbUZyYWdtZW50KGUsYSl7bGV0IGk9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7aS5hcHBlbmRDaGlsZChlKTtsZXQgcj1pLmdldEVsZW1lbnRzQnlUYWdOYW1lKGEpO0FycmF5LmZyb20ocikuZm9yRWFjaChvPT57bGV0IGQ9by5wYXJlbnROb2RlO2lmKGQpe2Zvcig7by5maXJzdENoaWxkOylkLmluc2VydEJlZm9yZShvLmZpcnN0Q2hpbGQsbyk7ZC5yZW1vdmVDaGlsZChvKX19KTtsZXQgbj1kb2N1bWVudC5jcmVhdGVEb2N1bWVudEZyYWdtZW50KCk7Zm9yKDtpLmZpcnN0Q2hpbGQ7KW4uYXBwZW5kQ2hpbGQoaS5maXJzdENoaWxkKTtyZXR1cm4gbn1zdGF0aWMgd3JhcFNlbGVjdGlvbldpdGhMaW5rKGUsYSl7bGV0IGk9d2luZG93LmdldFNlbGVjdGlvbigpO2lmKCFpKXJldHVybjt0aGlzLnNlbGVjdGlvbkNvbnRhaW5zVGFnKGUsImEiKSYmKHRoaXMucmVtb3ZlVGFnRnJvbVNlbGVjdGlvbihlLCJhIiksaS5yYW5nZUNvdW50PjAmJihlPWkuZ2V0UmFuZ2VBdCgwKSkpO2xldCByPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImEiKTtyLmhyZWY9YSxyLnRhcmdldD0iX2JsYW5rIixyLnJlbD0ibm9vcGVuZXIgbm9yZWZlcnJlciI7dHJ5e2xldCBzPWUuZXh0cmFjdENvbnRlbnRzKCk7ci5hcHBlbmRDaGlsZChzKSxlLmluc2VydE5vZGUociksZS5zZWxlY3ROb2RlQ29udGVudHMociksaS5yZW1vdmVBbGxSYW5nZXMoKSxpLmFkZFJhbmdlKGUpfWNhdGNoKHMpe2NvbnNvbGUuZXJyb3IoIkZhaWxlZCB0byBjcmVhdGUgbGluazoiLHMpfX1zdGF0aWMgZ2V0U2VsZWN0aW9uQ29vcmRpbmF0ZXMoLi4uZSl7bGV0IGE9UmUuZ2V0U2VsZWN0aW9uSW5mbyguLi5lKTtpZihjb25zb2xlLmxvZygiZ2V0U2VsZWN0aW9uQ29vcmRpbmF0ZXMgLSBzZWxlY3Rpb25JbmZvOiIsYSksIWEpcmV0dXJuIGNvbnNvbGUubG9nKCJObyBzZWxlY3Rpb24gaW5mbyBhdmFpbGFibGUiKSxudWxsO2xldCByPVJlLmNyZWF0ZVJhbmdlRnJvbUluZm8oYSkuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7aWYoY29uc29sZS5sb2coIlJhbmdlIHJlY3Q6IixyKSxyLndpZHRoPT09MCYmci5oZWlnaHQ9PT0wKXtpZihjb25zb2xlLmxvZygiUmVjdCB3aWR0aCBhbmQgaGVpZ2h0IGFyZSAwLCB0cnlpbmcgZGlmZmVyZW50IGFwcHJvYWNoIiksImNhcmV0UG9zaXRpb25Gcm9tUG9pbnQiaW4gZG9jdW1lbnQpe2xldCBuPXdpbmRvdy5nZXRTZWxlY3Rpb24oKTtpZihuJiZuLnJhbmdlQ291bnQ+MCl7bGV0IG89bi5nZXRSYW5nZUF0KDApLGQ9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgic3BhbiIpO2QudGV4dENvbnRlbnQ9Ilx1MjAwQiIsby5pbnNlcnROb2RlKGQpO2xldCBjPWQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7aWYoZC5yZW1vdmUoKSxjLndpZHRoPjB8fGMuaGVpZ2h0PjApe2xldCBoPXt4OmMubGVmdCx5Ok1hdGgubWF4KDQ1LGMudG9wLTQ1KX07cmV0dXJuIGNvbnNvbGUubG9nKCJVc2VkIHNwYW4gdHJpY2sgZm9yIGNvb3JkczoiLGgpLGh9fX1yZXR1cm4gbnVsbH1sZXQgcz17eDpyLmxlZnQrci53aWR0aC8yLHk6TWF0aC5tYXgoNDUsci50b3AtNDUpfTtyZXR1cm4gY29uc29sZS5sb2coIlJldHVybmluZyBjb29yZHM6IixzKSxzfX19KTt2YXIgYXcsbDQsaXcsTVY9YigoKT0+e3VlKCk7dWkoKTt3VigpO3FlKCk7YXc9ZnVuY3Rpb24odCxlLGEsaSxyLHMpe2Z1bmN0aW9uIG4oeCl7aWYoeCE9PXZvaWQgMCYmdHlwZW9mIHghPSJmdW5jdGlvbiIpdGhyb3cgbmV3IFR5cGVFcnJvcigiRnVuY3Rpb24gZXhwZWN0ZWQiKTtyZXR1cm4geH1mb3IodmFyIG89aS5raW5kLGQ9bz09PSJnZXR0ZXIiPyJnZXQiOm89PT0ic2V0dGVyIj8ic2V0IjoidmFsdWUiLGM9IWUmJnQ/aS5zdGF0aWM/dDp0LnByb3RvdHlwZTpudWxsLGg9ZXx8KGM/T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihjLGkubmFtZSk6e30pLGwsZj0hMSxnPWEubGVuZ3RoLTE7Zz49MDtnLS0pe3ZhciB5PXt9O2Zvcih2YXIgdiBpbiBpKXlbdl09dj09PSJhY2Nlc3MiP3t9Omlbdl07Zm9yKHZhciB2IGluIGkuYWNjZXNzKXkuYWNjZXNzW3ZdPWkuYWNjZXNzW3ZdO3kuYWRkSW5pdGlhbGl6ZXI9ZnVuY3Rpb24oeCl7aWYoZil0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgYWRkIGluaXRpYWxpemVycyBhZnRlciBkZWNvcmF0aW9uIGhhcyBjb21wbGV0ZWQiKTtzLnB1c2gobih4fHxudWxsKSl9O3ZhciBtPSgwLGFbZ10pKG89PT0iYWNjZXNzb3IiP3tnZXQ6aC5nZXQsc2V0Omguc2V0fTpoW2RdLHkpO2lmKG89PT0iYWNjZXNzb3IiKXtpZihtPT09dm9pZCAwKWNvbnRpbnVlO2lmKG09PT1udWxsfHx0eXBlb2YgbSE9Im9iamVjdCIpdGhyb3cgbmV3IFR5cGVFcnJvcigiT2JqZWN0IGV4cGVjdGVkIik7KGw9bihtLmdldCkpJiYoaC5nZXQ9bCksKGw9bihtLnNldCkpJiYoaC5zZXQ9bCksKGw9bihtLmluaXQpKSYmci51bnNoaWZ0KGwpfWVsc2UobD1uKG0pKSYmKG89PT0iZmllbGQiP3IudW5zaGlmdChsKTpoW2RdPWwpfWMmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShjLGkubmFtZSxoKSxmPSEwfSxsND1mdW5jdGlvbih0LGUsYSl7Zm9yKHZhciBpPWFyZ3VtZW50cy5sZW5ndGg+MixyPTA7cjxlLmxlbmd0aDtyKyspYT1pP2Vbcl0uY2FsbCh0LGEpOmVbcl0uY2FsbCh0KTtyZXR1cm4gaT9hOnZvaWQgMH0saXc9KCgpPT57bGV0IHQ9W3BlKCJkZWVzLWZvcm1hdHRpbmctbWVudSIpXSxlLGE9W10saSxyPXhlLHMsbj1bXSxvPVtdLGQsYz1bXSxoPVtdLGwsZj1bXSxnPVtdO3ZhciB5PWNsYXNzIGV4dGVuZHMgcntzdGF0aWN7aT10aGlzfXN0YXRpY3tsZXQgdj10eXBlb2YgU3ltYm9sPT0iZnVuY3Rpb24iJiZTeW1ib2wubWV0YWRhdGE/T2JqZWN0LmNyZWF0ZShyW1N5bWJvbC5tZXRhZGF0YV0/P251bGwpOnZvaWQgMDtzPVtKKCldLGQ9W0ooKV0sbD1bSigpXSxhdyh0aGlzLG51bGwscyx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InZpc2libGUiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOm09PiJ2aXNpYmxlImluIG0sZ2V0Om09Pm0udmlzaWJsZSxzZXQ6KG0seCk9PnttLnZpc2libGU9eH19LG1ldGFkYXRhOnZ9LG4sbyksYXcodGhpcyxudWxsLGQse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJwb3NpdGlvbiIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6bT0+InBvc2l0aW9uImluIG0sZ2V0Om09Pm0ucG9zaXRpb24sc2V0OihtLHgpPT57bS5wb3NpdGlvbj14fX0sbWV0YWRhdGE6dn0sYyxoKSxhdyh0aGlzLG51bGwsbCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6Im1lbnVaSW5kZXgiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOm09PiJtZW51WkluZGV4ImluIG0sZ2V0Om09Pm0ubWVudVpJbmRleCxzZXQ6KG0seCk9PnttLm1lbnVaSW5kZXg9eH19LG1ldGFkYXRhOnZ9LGYsZyksYXcobnVsbCxlPXt2YWx1ZTppfSx0LHtraW5kOiJjbGFzcyIsbmFtZTppLm5hbWUsbWV0YWRhdGE6dn0sbnVsbCxhKSx5PWk9ZS52YWx1ZSx2JiZPYmplY3QuZGVmaW5lUHJvcGVydHkoaSxTeW1ib2wubWV0YWRhdGEse2VudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwLHZhbHVlOnZ9KX1zdGF0aWMgaW5zdGFuY2U7c3RhdGljIGdldEluc3RhbmNlKCl7cmV0dXJuIHkuaW5zdGFuY2V8fCh5Lmluc3RhbmNlPW5ldyB5LGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoeS5pbnN0YW5jZSkpLHkuaW5zdGFuY2V9I2U9bDQodGhpcyxuLCExKTtnZXQgdmlzaWJsZSgpe3JldHVybiB0aGlzLiNlfXNldCB2aXNpYmxlKHYpe3RoaXMuI2U9dn0jdD0obDQodGhpcyxvKSxsNCh0aGlzLGMse3g6MCx5OjB9KSk7Z2V0IHBvc2l0aW9uKCl7cmV0dXJuIHRoaXMuI3R9c2V0IHBvc2l0aW9uKHYpe3RoaXMuI3Q9dn0jYT0obDQodGhpcyxoKSxsNCh0aGlzLGYsMWUzKSk7Z2V0IG1lbnVaSW5kZXgoKXtyZXR1cm4gdGhpcy4jYX1zZXQgbWVudVpJbmRleCh2KXt0aGlzLiNhPXZ9Y2FsbGJhY2s9KGw0KHRoaXMsZyksbnVsbCk7c3RhdGljIHN0eWxlcz1bQ2UscC5kZWZhdWx0U3R5bGVzLFFgCiAgICAgIC8qIFRPRE86IE1pZ3JhdGUgaGFyZGNvZGVkIHZhbHVlcyB0byAtLWRlZXMtKiBDU1MgdmFyaWFibGVzICovCiAgICAgIDpob3N0IHsKICAgICAgICBwb3NpdGlvbjogZml4ZWQ7CiAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7CiAgICAgICAgdG9wOiAwOwogICAgICAgIGxlZnQ6IDA7CiAgICAgICAgd2lkdGg6IDA7CiAgICAgICAgaGVpZ2h0OiAwOwogICAgICB9CgogICAgICAuZm9ybWF0dGluZy1tZW51IHsKICAgICAgICBwb3NpdGlvbjogZml4ZWQ7CiAgICAgICAgYmFja2dyb3VuZDogJHtwLmJkVGhlbWUoIiNmZmZmZmYiLCIjMjYyNjI2Iil9OwogICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICR7cC5iZFRoZW1lKCIjZTBlMGUwIiwiIzQwNDA0MCIpfTsKICAgICAgICBib3JkZXItcmFkaXVzOiA2cHg7CiAgICAgICAgYm94LXNoYWRvdzogMCAycHggMTZweCByZ2JhKDAsIDAsIDAsIDAuMTUpOwogICAgICAgIHBhZGRpbmc6IDRweDsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGdhcDogMnB4OwogICAgICAgIHBvaW50ZXItZXZlbnRzOiBhdXRvOwogICAgICAgIHVzZXItc2VsZWN0OiBub25lOwogICAgICAgIGFuaW1hdGlvbjogZmFkZUluU2NhbGUgMC4xNXMgZWFzZS1vdXQ7CiAgICAgIH0KCiAgICAgIEBrZXlmcmFtZXMgZmFkZUluU2NhbGUgewogICAgICAgIGZyb20gewogICAgICAgICAgb3BhY2l0eTogMDsKICAgICAgICAgIHRyYW5zZm9ybTogc2NhbGUoMC45NSkgdHJhbnNsYXRlWSg1cHgpOwogICAgICAgIH0KICAgICAgICB0byB7CiAgICAgICAgICBvcGFjaXR5OiAxOwogICAgICAgICAgdHJhbnNmb3JtOiBzY2FsZSgxKSB0cmFuc2xhdGVZKDApOwogICAgICAgIH0KICAgICAgfQoKICAgICAgLmZvcm1hdC1idXR0b24gewogICAgICAgIHdpZHRoOiAzMnB4OwogICAgICAgIGhlaWdodDogMzJweDsKICAgICAgICBib3JkZXI6IG5vbmU7CiAgICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7CiAgICAgICAgY3Vyc29yOiBwb2ludGVyOwogICAgICAgIGJvcmRlci1yYWRpdXM6IDRweDsKICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC4xNXMgZWFzZTsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7CiAgICAgICAgY29sb3I6ICR7cC5iZFRoZW1lKCIjMDAwMDAwIiwiI2UwZTBlMCIpfTsKICAgICAgICBmb250LXdlaWdodDogNjAwOwogICAgICAgIGZvbnQtc2l6ZTogMTRweDsKICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgIH0KCiAgICAgIC5mb3JtYXQtYnV0dG9uOmhvdmVyIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke3AuYmRUaGVtZSgiI2YwZjBmMCIsIiMzMzMzMzMiKX07CiAgICAgICAgY29sb3I6ICR7cC5iZFRoZW1lKCIjMDA2NmNjIiwiIzRkOTRmZiIpfTsKICAgICAgfQoKICAgICAgLmZvcm1hdC1idXR0b246YWN0aXZlIHsKICAgICAgICB0cmFuc2Zvcm06IHNjYWxlKDAuOTUpOwogICAgICB9CgogICAgICAuZm9ybWF0LWJ1dHRvbi5ib2xkIHsKICAgICAgICBmb250LXdlaWdodDogNzAwOwogICAgICB9CgogICAgICAuZm9ybWF0LWJ1dHRvbi5pdGFsaWMgewogICAgICAgIGZvbnQtc3R5bGU6IGl0YWxpYzsKICAgICAgfQoKICAgICAgLmZvcm1hdC1idXR0b24udW5kZXJsaW5lIHsKICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTsKICAgICAgfQoKICAgICAgLmZvcm1hdC1idXR0b24gLmNvZGUtaWNvbiB7CiAgICAgICAgZm9udC1mYW1pbHk6ICdTRiBNb25vJywgJ01vbmFjbycsICdJbmNvbnNvbGF0YScsICdGaXJhIENvZGUnLCBtb25vc3BhY2U7CiAgICAgICAgZm9udC1zaXplOiAxMnB4OwogICAgICB9CiAgICBgXTtyZW5kZXIoKXtyZXR1cm4gdGhpcy52aXNpYmxlPyh0aGlzLnN0eWxlLnpJbmRleD10aGlzLm1lbnVaSW5kZXgudG9TdHJpbmcoKSx3YAogICAgICA8ZGl2IAogICAgICAgIGNsYXNzPSJmb3JtYXR0aW5nLW1lbnUiIAogICAgICAgIHN0eWxlPSJsZWZ0OiAke3RoaXMucG9zaXRpb24ueH1weDsgdG9wOiAke3RoaXMucG9zaXRpb24ueX1weDsiCiAgICAgICAgdGFiaW5kZXg9Ii0xIgogICAgICAgIGRhdGEtbWVudS10eXBlPSJmb3JtYXR0aW5nIgogICAgICA+CiAgICAgICAgJHtIcy5mb3JtYXRCdXR0b25zLm1hcCh2PT53YAogICAgICAgICAgPGJ1dHRvbiAKICAgICAgICAgICAgY2xhc3M9ImZvcm1hdC1idXR0b24gJHt2LmNvbW1hbmR9IgogICAgICAgICAgICBkYXRhLWNvbW1hbmQ9IiR7di5jb21tYW5kfSIKICAgICAgICAgICAgdGl0bGU9IiR7di5sYWJlbH0ke3Yuc2hvcnRjdXQ/YCAoJHt2LnNob3J0Y3V0fSlgOiIifSIKICAgICAgICAgID4KICAgICAgICAgICAgPHNwYW4gY2xhc3M9IiR7di5jb21tYW5kPT09ImNvZGUiPyJjb2RlLWljb24iOiIifSI+JHt2Lmljb259PC9zcGFuPgogICAgICAgICAgPC9idXR0b24+CiAgICAgICAgYCl9CiAgICAgIDwvZGl2PgogICAgYCk6d2BgfWFwcGx5Rm9ybWF0KHYpe3RoaXMuY2FsbGJhY2smJnRoaXMuY2FsbGJhY2sodiksdj09PSJsaW5rIiYmdGhpcy5oaWRlKCl9c2hvdyh2LG0pe2NvbnNvbGUubG9nKCJGb3JtYXR0aW5nTWVudS5zaG93IGNhbGxlZDoiLHtwb3NpdGlvbjp2LHZpc2libGU6dGhpcy52aXNpYmxlfSksdGhpcy5wb3NpdGlvbj12LHRoaXMuY2FsbGJhY2s9bSx0aGlzLm1lbnVaSW5kZXg9aDEuZ2V0TmV4dFpJbmRleCgpLGgxLnJlZ2lzdGVyKHRoaXMsdGhpcy5tZW51WkluZGV4KSx0aGlzLnN0eWxlLnpJbmRleD10aGlzLm1lbnVaSW5kZXgudG9TdHJpbmcoKSx0aGlzLnZpc2libGU9ITB9aGlkZSgpe3RoaXMudmlzaWJsZT0hMSx0aGlzLmNhbGxiYWNrPW51bGwsaDEudW5yZWdpc3Rlcih0aGlzKX11cGRhdGVQb3NpdGlvbih2KXt0aGlzLnBvc2l0aW9uPXZ9Zmlyc3RVcGRhdGVkKCl7dGhpcy5zaGFkb3dSb290Py5hZGRFdmVudExpc3RlbmVyKCJtb3VzZWRvd24iLHY9PntsZXQgbT10aGlzLnNoYWRvd1Jvb3Q/LnF1ZXJ5U2VsZWN0b3IoIi5mb3JtYXR0aW5nLW1lbnUiKTttJiZtLmNvbnRhaW5zKHYudGFyZ2V0KSYmKHYucHJldmVudERlZmF1bHQoKSx2LnN0b3BQcm9wYWdhdGlvbigpKX0pLHRoaXMuc2hhZG93Um9vdD8uYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLHY9PntsZXQgeD12LnRhcmdldC5jbG9zZXN0KCIuZm9ybWF0LWJ1dHRvbiIpO2lmKHgpe3YucHJldmVudERlZmF1bHQoKSx2LnN0b3BQcm9wYWdhdGlvbigpO2xldCBNPXguZ2V0QXR0cmlidXRlKCJkYXRhLWNvbW1hbmQiKTtNJiZ0aGlzLmFwcGx5Rm9ybWF0KE0pfX0pLHRoaXMuc2hhZG93Um9vdD8uYWRkRXZlbnRMaXN0ZW5lcigiZm9jdXMiLHY9PntsZXQgbT10aGlzLnNoYWRvd1Jvb3Q/LnF1ZXJ5U2VsZWN0b3IoIi5mb3JtYXR0aW5nLW1lbnUiKTttJiZtLmNvbnRhaW5zKHYudGFyZ2V0KSYmKHYucHJldmVudERlZmF1bHQoKSx2LnN0b3BQcm9wYWdhdGlvbigpKX0sITApfXN0YXRpY3tsNChpLGEpfX07cmV0dXJuIHk9aX0pKCl9KTt2YXIgTmw9YigoKT0+e3VlKCk7QWEoKTt4VigpO01WKCl9KTt2YXIgVDgscnc9YigoKT0+e1Q4PVsiSmF2YVNjcmlwdCIsIlR5cGVTY3JpcHQiLCJQeXRob24iLCJKYXZhIiwiQysrIiwiQyMiLCJHbyIsIlJ1c3QiLCJIVE1MIiwiQ1NTIiwiU1FMIiwiU2hlbGwiLCJKU09OIiwiWUFNTCIsIk1hcmtkb3duIiwiUGxhaW4gVGV4dCJdfSk7dmFyIHpWLG1ndD1iKCgpPT57dWUoKTt6Vj1RYAogIDpob3N0IHsKICAgIGRpc3BsYXk6IGJsb2NrOwogICAgcG9zaXRpb246IHJlbGF0aXZlOwogIH0KCiAgLnd5c2l3eWctY29udGFpbmVyIHsKICAgIGJhY2tncm91bmQ6ICR7cC5iZFRoZW1lKCIjZmZmZmZmIiwiIzA5MDkwYiIpfTsKICAgIGJvcmRlcjogMXB4IHNvbGlkICR7cC5iZFRoZW1lKCIjZTVlN2ViIiwiIzI3MjcyYSIpfTsKICAgIGJvcmRlci1yYWRpdXM6IDZweDsKICAgIG1pbi1oZWlnaHQ6IDIwMHB4OwogICAgcGFkZGluZzogMjRweDsKICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgIHRyYW5zaXRpb246IGFsbCAwLjJzIGVhc2U7CiAgICBjb2xvcjogJHtwLmJkVGhlbWUoIiMwOTA5MGIiLCIjZmFmYWZhIil9OwogIH0KCiAgLnd5c2l3eWctY29udGFpbmVyOmhvdmVyIHsKICAgIGJvcmRlci1jb2xvcjogJHtwLmJkVGhlbWUoIiNkMWQ1ZGIiLCIjM2YzZjQ2Iil9OwogIH0KCiAgLnd5c2l3eWctY29udGFpbmVyOmZvY3VzLXdpdGhpbiB7CiAgICBvdXRsaW5lOiAycHggc29saWQgdHJhbnNwYXJlbnQ7CiAgICBvdXRsaW5lLW9mZnNldDogMnB4OwogICAgYm94LXNoYWRvdzogMCAwIDAgMnB4ICR7cC5iZFRoZW1lKCIjZjRmNGY1IiwiIzE4MTgxYiIpfSwgMCAwIDAgNHB4ICR7cC5iZFRoZW1lKCJyZ2JhKDU5LCAxMzAsIDI0NiwgMC41KSIsInJnYmEoNTksIDEzMCwgMjQ2LCAwLjUpIil9OwogICAgYm9yZGVyLWNvbG9yOiAke3AuYmRUaGVtZSgiIzNiODJmNiIsIiMzYjgyZjYiKX07CiAgfQoKICAvKiBWaXN1YWwgaGludCBmb3IgdGV4dCBzZWxlY3Rpb24gKi8KICAuZWRpdG9yLWNvbnRlbnQ6aG92ZXIgewogICAgY3Vyc29yOiB0ZXh0OwogIH0KCiAgLmVkaXRvci1jb250ZW50IHsKICAgIG91dGxpbmU6IG5vbmU7CiAgICBtaW4taGVpZ2h0OiAxNjBweDsKICAgIG1hcmdpbjogMCAtOHB4OwogICAgcGFkZGluZzogMCA4cHg7CiAgfQoKICAuYmxvY2sgewogICAgbWFyZ2luOiAwOwogICAgcGFkZGluZzogNHB4IDA7CiAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICB0cmFuc2l0aW9uOiBhbGwgMC4xNXMgZWFzZTsKICAgIG1pbi1oZWlnaHQ6IDEuNmVtOwogICAgY29sb3I6ICR7cC5iZFRoZW1lKCIjMDkwOTBiIiwiI2ZhZmFmYSIpfTsKICB9CgogIC8qIEZpcnN0IGFuZCBsYXN0IGJsb2NrcyBkb24ndCBuZWVkIGV4dHJhIHNwYWNpbmcgKi8KICAuYmxvY2std3JhcHBlcjpmaXJzdC1jaGlsZCAuYmxvY2sgewogICAgbWFyZ2luLXRvcDogMCAhaW1wb3J0YW50OwogIH0KCiAgLmJsb2NrLXdyYXBwZXI6bGFzdC1jaGlsZCAuYmxvY2sgewogICAgbWFyZ2luLWJvdHRvbTogMDsKICB9CgogIC5ibG9jay5zZWxlY3RlZCB7CiAgICBiYWNrZ3JvdW5kOiAke3AuYmRUaGVtZSgicmdiYSg1OSwgMTMwLCAyNDYsIDAuMDUpIiwicmdiYSg1OSwgMTMwLCAyNDYsIDAuMDUpIil9OwogICAgb3V0bGluZTogMnB4IHNvbGlkICR7cC5iZFRoZW1lKCJyZ2JhKDU5LCAxMzAsIDI0NiwgMC4yKSIsInJnYmEoNTksIDEzMCwgMjQ2LCAwLjIpIil9OwogICAgb3V0bGluZS1vZmZzZXQ6IC0ycHg7CiAgICBib3JkZXItcmFkaXVzOiA0cHg7CiAgICBtYXJnaW4tbGVmdDogLThweDsKICAgIG1hcmdpbi1yaWdodDogLThweDsKICAgIHBhZGRpbmctbGVmdDogOHB4OwogICAgcGFkZGluZy1yaWdodDogOHB4OwogIH0KCiAgLmJsb2NrW2NvbnRlbnRlZGl0YWJsZV0gewogICAgb3V0bGluZTogbm9uZTsKICB9CgogIC5ibG9jay5wYXJhZ3JhcGggewogICAgZm9udC1zaXplOiAxNnB4OwogICAgbGluZS1oZWlnaHQ6IDEuNjsKICAgIGZvbnQtd2VpZ2h0OiA0MDA7CiAgfQoKICAuYmxvY2sucGFyYWdyYXBoOmVtcHR5OjpiZWZvcmUgewogICAgY29udGVudDogIlR5cGUgJy8nIGZvciBjb21tYW5kcy4uLiI7CiAgICBjb2xvcjogJHtwLmJkVGhlbWUoIiM3MTcxN2EiLCIjNzE3MTdhIil9OwogICAgcG9pbnRlci1ldmVudHM6IG5vbmU7CiAgICBmb250LXNpemU6IDE2cHg7CiAgICBsaW5lLWhlaWdodDogMS42OwogICAgZm9udC13ZWlnaHQ6IDQwMDsKICB9CgogIC5ibG9jay5oZWFkaW5nLTEgewogICAgZm9udC1zaXplOiAzMnB4OwogICAgZm9udC13ZWlnaHQ6IDcwMDsKICAgIGxpbmUtaGVpZ2h0OiAxLjI7CiAgICBjb2xvcjogJHtwLmJkVGhlbWUoIiMwOTA5MGIiLCIjZmFmYWZhIil9OwogIH0KCiAgLmJsb2NrLmhlYWRpbmctMTplbXB0eTo6YmVmb3JlIHsKICAgIGNvbnRlbnQ6ICJIZWFkaW5nIDEiOwogICAgY29sb3I6ICR7cC5iZFRoZW1lKCIjNzE3MTdhIiwiIzcxNzE3YSIpfTsKICAgIHBvaW50ZXItZXZlbnRzOiBub25lOwogICAgZm9udC1zaXplOiAzMnB4OwogICAgbGluZS1oZWlnaHQ6IDEuMjsKICAgIGZvbnQtd2VpZ2h0OiA3MDA7CiAgfQoKICAuYmxvY2suaGVhZGluZy0yIHsKICAgIGZvbnQtc2l6ZTogMjRweDsKICAgIGZvbnQtd2VpZ2h0OiA2MDA7CiAgICBsaW5lLWhlaWdodDogMS4zOwogICAgY29sb3I6ICR7cC5iZFRoZW1lKCIjMDkwOTBiIiwiI2ZhZmFmYSIpfTsKICB9CgogIC5ibG9jay5oZWFkaW5nLTI6ZW1wdHk6OmJlZm9yZSB7CiAgICBjb250ZW50OiAiSGVhZGluZyAyIjsKICAgIGNvbG9yOiAke3AuYmRUaGVtZSgiIzcxNzE3YSIsIiM3MTcxN2EiKX07CiAgICBwb2ludGVyLWV2ZW50czogbm9uZTsKICAgIGZvbnQtc2l6ZTogMjRweDsKICAgIGxpbmUtaGVpZ2h0OiAxLjM7CiAgICBmb250LXdlaWdodDogNjAwOwogIH0KCiAgLmJsb2NrLmhlYWRpbmctMyB7CiAgICBmb250LXNpemU6IDIwcHg7CiAgICBmb250LXdlaWdodDogNjAwOwogICAgbGluZS1oZWlnaHQ6IDEuNDsKICAgIGNvbG9yOiAke3AuYmRUaGVtZSgiIzA5MDkwYiIsIiNmYWZhZmEiKX07CiAgfQoKICAuYmxvY2suaGVhZGluZy0zOmVtcHR5OjpiZWZvcmUgewogICAgY29udGVudDogIkhlYWRpbmcgMyI7CiAgICBjb2xvcjogJHtwLmJkVGhlbWUoIiM3MTcxN2EiLCIjNzE3MTdhIil9OwogICAgcG9pbnRlci1ldmVudHM6IG5vbmU7CiAgICBmb250LXNpemU6IDIwcHg7CiAgICBsaW5lLWhlaWdodDogMS40OwogICAgZm9udC13ZWlnaHQ6IDYwMDsKICB9CgogIC5ibG9jay5xdW90ZSB7CiAgICBib3JkZXItbGVmdDogMnB4IHNvbGlkICR7cC5iZFRoZW1lKCIjZTVlN2ViIiwiIzI3MjcyYSIpfTsKICAgIHBhZGRpbmctbGVmdDogMjBweDsKICAgIGZvbnQtc3R5bGU6IGl0YWxpYzsKICAgIGNvbG9yOiAke3AuYmRUaGVtZSgiIzcxNzE3YSIsIiNhMWExYWEiKX07CiAgICBtYXJnaW4tbGVmdDogMDsKICAgIG1hcmdpbi1yaWdodDogMDsKICAgIGxpbmUtaGVpZ2h0OiAxLjY7CiAgfQoKICAuYmxvY2sucXVvdGU6ZW1wdHk6OmJlZm9yZSB7CiAgICBjb250ZW50OiAiUXVvdGUiOwogICAgY29sb3I6ICR7cC5iZFRoZW1lKCIjNzE3MTdhIiwiIzcxNzE3YSIpfTsKICAgIHBvaW50ZXItZXZlbnRzOiBub25lOwogICAgZm9udC1zaXplOiAxNnB4OwogICAgbGluZS1oZWlnaHQ6IDEuNjsKICAgIGZvbnQtd2VpZ2h0OiA0MDA7CiAgICBmb250LXN0eWxlOiBpdGFsaWM7CiAgfQoKICAuY29kZS1ibG9jay1jb250YWluZXIgewogICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgbWFyZ2luOiAyMHB4IDA7CiAgfQoKICAuY29kZS1sYW5ndWFnZSB7CiAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICB0b3A6IDA7CiAgICByaWdodDogMDsKICAgIGJhY2tncm91bmQ6ICR7cC5iZFRoZW1lKCIjZjRmNGY1IiwiIzI3MjcyYSIpfTsKICAgIGNvbG9yOiAke3AuYmRUaGVtZSgiIzcxNzE3YSIsIiNhMWExYWEiKX07CiAgICBwYWRkaW5nOiA0cHggMTJweDsKICAgIGZvbnQtc2l6ZTogMTJweDsKICAgIGJvcmRlci1yYWRpdXM6IDAgNHB4IDAgNHB4OwogICAgZm9udC1mYW1pbHk6IC1hcHBsZS1zeXN0ZW0sIEJsaW5rTWFjU3lzdGVtRm9udCwgJ1NlZ29lIFVJJywgUm9ib3RvLCBzYW5zLXNlcmlmOwogICAgdGV4dC10cmFuc2Zvcm06IGxvd2VyY2FzZTsKICAgIHotaW5kZXg6IDE7CiAgfQoKICAuYmxvY2suY29kZSB7CiAgICBiYWNrZ3JvdW5kOiAke3AuYmRUaGVtZSgiI2Y0ZjRmNSIsIiMxODE4MWIiKX07CiAgICBib3JkZXI6IDFweCBzb2xpZCAke3AuYmRUaGVtZSgiI2U1ZTdlYiIsIiMyNzI3MmEiKX07CiAgICBib3JkZXItcmFkaXVzOiA0cHg7CiAgICBwYWRkaW5nOiAxNnB4OwogICAgcGFkZGluZy10b3A6IDMycHg7IC8qIE1ha2Ugcm9vbSBmb3IgbGFuZ3VhZ2UgaW5kaWNhdG9yICovCiAgICBmb250LWZhbWlseTogJ1NGIE1vbm8nLCAnTW9uYWNvJywgJ0luY29uc29sYXRhJywgJ0ZpcmEgQ29kZScsIG1vbm9zcGFjZTsKICAgIGZvbnQtc2l6ZTogMTRweDsKICAgIGxpbmUtaGVpZ2h0OiAxLjU7CiAgICB3aGl0ZS1zcGFjZTogcHJlLXdyYXA7CiAgICBjb2xvcjogJHtwLmJkVGhlbWUoIiMwOTA5MGIiLCIjZmFmYWZhIil9OwogICAgb3ZlcmZsb3cteDogYXV0bzsKICB9CgogIC5ibG9jay5jb2RlOmVtcHR5OjpiZWZvcmUgewogICAgY29udGVudDogIi8vIENvZGUgYmxvY2siOwogICAgY29sb3I6ICR7cC5iZFRoZW1lKCIjNzE3MTdhIiwiIzcxNzE3YSIpfTsKICAgIHBvaW50ZXItZXZlbnRzOiBub25lOwogICAgZm9udC1mYW1pbHk6ICdTRiBNb25vJywgJ01vbmFjbycsICdJbmNvbnNvbGF0YScsICdGaXJhIENvZGUnLCBtb25vc3BhY2U7CiAgICBmb250LXNpemU6IDE0cHg7CiAgICBsaW5lLWhlaWdodDogMS42OwogICAgZm9udC13ZWlnaHQ6IDQwMDsKICB9CgogIC5ibG9jay5saXN0IHsKICAgIHBhZGRpbmctbGVmdDogMDsKICB9CgogIC5ibG9jay5saXN0IHVsLAogIC5ibG9jay5saXN0IG9sIHsKICAgIG1hcmdpbjogMDsKICAgIHBhZGRpbmc6IDAgMCAwIDI0cHg7CiAgICBsaXN0LXN0eWxlLXBvc2l0aW9uOiBvdXRzaWRlOwogIH0KCiAgLmJsb2NrLmxpc3QgdWwgewogICAgbGlzdC1zdHlsZTogZGlzYzsKICB9CgogIC5ibG9jay5saXN0IG9sIHsKICAgIGxpc3Qtc3R5bGU6IGRlY2ltYWw7CiAgfQoKICAuYmxvY2subGlzdCBsaSB7CiAgICBtYXJnaW4tYm90dG9tOiA4cHg7CiAgICBsaW5lLWhlaWdodDogMS42OwogIH0KCiAgLmJsb2NrLmxpc3QgbGk6bGFzdC1jaGlsZCB7CiAgICBtYXJnaW4tYm90dG9tOiAwOwogIH0KCiAgLmJsb2NrLmRpdmlkZXIgewogICAgdGV4dC1hbGlnbjogY2VudGVyOwogICAgcGFkZGluZzogMjBweCAwOwogICAgY3Vyc29yOiBkZWZhdWx0OwogICAgcG9pbnRlci1ldmVudHM6IG5vbmU7CiAgfQoKICAuYmxvY2suZGl2aWRlciBociB7CiAgICBib3JkZXI6IG5vbmU7CiAgICBib3JkZXItdG9wOiAxcHggc29saWQgJHtwLmJkVGhlbWUoIiNlNWU3ZWIiLCIjMjcyNzJhIil9OwogICAgbWFyZ2luOiAwOwogIH0KCiAgLnNsYXNoLW1lbnUgewogICAgcG9zaXRpb246IGFic29sdXRlOwogICAgYmFja2dyb3VuZDogJHtwLmJkVGhlbWUoIiNmZmZmZmYiLCIjMDkwOTBiIil9OwogICAgYm9yZGVyOiAxcHggc29saWQgJHtwLmJkVGhlbWUoIiNlNWU3ZWIiLCIjMjcyNzJhIil9OwogICAgYm9yZGVyLXJhZGl1czogNHB4OwogICAgYm94LXNoYWRvdzogMCAxcHggM3B4IHJnYmEoMCwgMCwgMCwgMC4xKSwgMCAxcHggMnB4IHJnYmEoMCwgMCwgMCwgMC4wNik7CiAgICBwYWRkaW5nOiA0cHg7CiAgICB6LWluZGV4OiAxMDAwOwogICAgbWluLXdpZHRoOiAyMjBweDsKICAgIG1heC1oZWlnaHQ6IDMwMHB4OwogICAgb3ZlcmZsb3cteTogYXV0bzsKICAgIHBvaW50ZXItZXZlbnRzOiBhdXRvOwogICAgdXNlci1zZWxlY3Q6IG5vbmU7CiAgfQoKICAuc2xhc2gtbWVudS1pdGVtIHsKICAgIHBhZGRpbmc6IDhweCAxMHB4OwogICAgY3Vyc29yOiBwb2ludGVyOwogICAgdHJhbnNpdGlvbjogYWxsIDAuMTVzIGVhc2U7CiAgICBkaXNwbGF5OiBmbGV4OwogICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgIGdhcDogMTJweDsKICAgIGJvcmRlci1yYWRpdXM6IDNweDsKICAgIGNvbG9yOiAke3AuYmRUaGVtZSgiIzA5MDkwYiIsIiNmYWZhZmEiKX07CiAgICBmb250LXNpemU6IDE0cHg7CiAgfQoKICAuc2xhc2gtbWVudS1pdGVtOmhvdmVyLAogIC5zbGFzaC1tZW51LWl0ZW0uc2VsZWN0ZWQgewogICAgYmFja2dyb3VuZDogJHtwLmJkVGhlbWUoIiNmNGY0ZjUiLCIjMjcyNzJhIil9OwogICAgY29sb3I6ICR7cC5iZFRoZW1lKCIjMDkwOTBiIiwiI2ZhZmFmYSIpfTsKICB9CgogIC5zbGFzaC1tZW51LWl0ZW0gLmljb24gewogICAgd2lkdGg6IDI0cHg7CiAgICBoZWlnaHQ6IDI0cHg7CiAgICBkaXNwbGF5OiBmbGV4OwogICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOwogICAgZm9udC1zaXplOiAxNnB4OwogICAgY29sb3I6ICR7cC5iZFRoZW1lKCIjNzE3MTdhIiwiI2ExYTFhYSIpfTsKICAgIGZvbnQtd2VpZ2h0OiA2MDA7CiAgfQoKICAuc2xhc2gtbWVudS1pdGVtOmhvdmVyIC5pY29uLAogIC5zbGFzaC1tZW51LWl0ZW0uc2VsZWN0ZWQgLmljb24gewogICAgY29sb3I6ICR7cC5iZFRoZW1lKCIjM2I4MmY2IiwiIzNiODJmNiIpfTsKICB9CgogIC50b29sYmFyIHsKICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgIHRvcDogLTQwcHg7CiAgICBsZWZ0OiAwOwogICAgYmFja2dyb3VuZDogJHtwLmJkVGhlbWUoIiNmZmZmZmYiLCIjMDkwOTBiIil9OwogICAgYm9yZGVyOiAxcHggc29saWQgJHtwLmJkVGhlbWUoIiNlNWU3ZWIiLCIjMjcyNzJhIil9OwogICAgYm9yZGVyLXJhZGl1czogNHB4OwogICAgYm94LXNoYWRvdzogMCAxcHggM3B4IHJnYmEoMCwgMCwgMCwgMC4xKSwgMCAxcHggMnB4IHJnYmEoMCwgMCwgMCwgMC4wNik7CiAgICBwYWRkaW5nOiA0cHg7CiAgICBkaXNwbGF5OiBub25lOwogICAgZ2FwOiA0cHg7CiAgICB6LWluZGV4OiAxMDAwOwogIH0KCiAgLnRvb2xiYXIudmlzaWJsZSB7CiAgICBkaXNwbGF5OiBmbGV4OwogIH0KCiAgLnRvb2xiYXItYnV0dG9uIHsKICAgIHdpZHRoOiAzMnB4OwogICAgaGVpZ2h0OiAzMnB4OwogICAgYm9yZGVyOiBub25lOwogICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7CiAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICBib3JkZXItcmFkaXVzOiAzcHg7CiAgICB0cmFuc2l0aW9uOiBhbGwgMC4xNXMgZWFzZTsKICAgIGRpc3BsYXk6IGZsZXg7CiAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7CiAgICBjb2xvcjogJHtwLmJkVGhlbWUoIiMwOTA5MGIiLCIjZmFmYWZhIil9OwogIH0KCiAgLnRvb2xiYXItYnV0dG9uOmhvdmVyIHsKICAgIGJhY2tncm91bmQ6ICR7cC5iZFRoZW1lKCIjZjRmNGY1IiwiIzI3MjcyYSIpfTsKICAgIGNvbG9yOiAke3AuYmRUaGVtZSgiIzNiODJmNiIsIiMzYjgyZjYiKX07CiAgfQoKICAvKiBEcmFnIGFuZCBEcm9wIFN0eWxlcyAqLwogIC5ibG9jay13cmFwcGVyIHsKICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgIHRyYW5zaXRpb246IHRyYW5zZm9ybSAwLjNzIGVhc2UsIG9wYWNpdHkgMC4ycyBlYXNlOwogIH0KCiAgLyogRW5zdXJlIHByb3BlciBzcGFjaW5nIGNvbnRleHQgZm9yIGJsb2NrcyAqLwogIC5ibG9jay13cmFwcGVyICsgLmJsb2NrLXdyYXBwZXIgLmJsb2NrIHsKICAgIG1hcmdpbi10b3A6IDE2cHg7CiAgfQoKICAvKiBPdmVycmlkZSBmb3IgaGVhZGluZ3MgZm9sbG93aW5nIG90aGVyIGJsb2NrcyAqLwogIC5ibG9jay13cmFwcGVyICsgLmJsb2NrLXdyYXBwZXIgLmJsb2NrLmhlYWRpbmctMSwKICAuYmxvY2std3JhcHBlciArIC5ibG9jay13cmFwcGVyIC5ibG9jay5oZWFkaW5nLTIsCiAgLmJsb2NrLXdyYXBwZXIgKyAuYmxvY2std3JhcHBlciAuYmxvY2suaGVhZGluZy0zIHsKICAgIG1hcmdpbi10b3A6IDI0cHg7CiAgfQoKICAvKiBDb2RlIGFuZCBxdW90ZSBibG9ja3MgbmVlZCBjb25zaXN0ZW50IHNwYWNpbmcgKi8KICAuYmxvY2std3JhcHBlciArIC5ibG9jay13cmFwcGVyIC5ibG9jay5jb2RlLAogIC5ibG9jay13cmFwcGVyICsgLmJsb2NrLXdyYXBwZXIgLmJsb2NrLnF1b3RlIHsKICAgIG1hcmdpbi10b3A6IDIwcHg7CiAgfQoKICAuZHJhZy1oYW5kbGUgewogICAgcG9zaXRpb246IGFic29sdXRlOwogICAgbGVmdDogLTI4cHg7CiAgICB0b3A6IDUwJTsKICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTsKICAgIHdpZHRoOiAyNHB4OwogICAgaGVpZ2h0OiAyNHB4OwogICAgY3Vyc29yOiBncmFiOwogICAgb3BhY2l0eTogMDsKICAgIHRyYW5zaXRpb246IG9wYWNpdHkgMC4ycyBlYXNlOwogICAgZGlzcGxheTogZmxleDsKICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKICAgIGNvbG9yOiAke3AuYmRUaGVtZSgiIzcxNzE3YSIsIiM3MTcxN2EiKX07CiAgICBib3JkZXItcmFkaXVzOiA0cHg7CiAgfQoKICAuZHJhZy1oYW5kbGU6OmJlZm9yZSB7CiAgICBjb250ZW50OiAi4ouu4ouuIjsKICAgIGZvbnQtc2l6ZTogMTJweDsKICAgIGxldHRlci1zcGFjaW5nOiAtMnB4OwogIH0KCiAgLmJsb2NrLXdyYXBwZXI6aG92ZXIgLmRyYWctaGFuZGxlIHsKICAgIG9wYWNpdHk6IDE7CiAgfQoKICAuZHJhZy1oYW5kbGU6aG92ZXIgewogICAgY29sb3I6ICR7cC5iZFRoZW1lKCIjNzE3MTdhIiwiI2ExYTFhYSIpfTsKICAgIGJhY2tncm91bmQ6ICR7cC5iZFRoZW1lKCIjZjRmNGY1IiwiIzI3MjcyYSIpfTsKICB9CgogIC5kcmFnLWhhbmRsZTphY3RpdmUgewogICAgY3Vyc29yOiBncmFiYmluZzsKICAgIGJhY2tncm91bmQ6ICR7cC5iZFRoZW1lKCIjZTVlN2ViIiwiIzNmM2Y0NiIpfTsKICB9CgogIC5ibG9jay13cmFwcGVyLmRyYWdnaW5nIHsKICAgIG9wYWNpdHk6IDAuODsKICAgIHBvaW50ZXItZXZlbnRzOiBub25lOwogICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgei1pbmRleDogMjAwMTsKICAgIHRyYW5zaXRpb246IG5vbmUgIWltcG9ydGFudDsKICB9CgoKICAvKiBCbG9ja3MgdGhhdCBzaG91bGQgbW92ZSBvdXQgb2YgdGhlIHdheSAqLwogIC5ibG9jay13cmFwcGVyLm1vdmUtZG93biB7CiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkodmFyKC0tZHJhZy1vZmZzZXQsIDBweCkpOwogIH0KCiAgLmJsb2NrLXdyYXBwZXIubW92ZS11cCB7CiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoY2FsYygtMSAqIHZhcigtLWRyYWctb2Zmc2V0LCAwcHgpKSk7CiAgfQoKICAvKiBEcm9wIGluZGljYXRvciAqLwogIC5kcm9wLWluZGljYXRvciB7CiAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICBsZWZ0OiAwOwogICAgcmlnaHQ6IDA7CiAgICBiYWNrZ3JvdW5kOiAke3AuYmRUaGVtZSgicmdiYSg1OSwgMTMwLCAyNDYsIDAuMDUpIiwicmdiYSg1OSwgMTMwLCAyNDYsIDAuMDUpIil9OwogICAgYm9yZGVyOiAycHggZGFzaGVkICR7cC5iZFRoZW1lKCIjM2I4MmY2IiwiIzNiODJmNiIpfTsKICAgIGJvcmRlci1yYWRpdXM6IDRweDsKICAgIHRyYW5zaXRpb246IHRvcCAwLjJzIGVhc2UsIGhlaWdodCAwLjJzIGVhc2U7CiAgICBwb2ludGVyLWV2ZW50czogbm9uZTsKICAgIHotaW5kZXg6IDE5OTk7CiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94OwogIH0KCiAgLyogUmVtb3ZlIG9sZCBkcmFnLW92ZXIgc3R5bGVzICovCiAgLmJsb2NrLXdyYXBwZXIuZHJhZy1vdmVyLWJlZm9yZSwKICAuYmxvY2std3JhcHBlci5kcmFnLW92ZXItYWZ0ZXIgewogICAgLyogTm8gbG9uZ2VyIG5lZWRlZCwgdXNpbmcgZHJvcCBpbmRpY2F0b3IgaW5zdGVhZCAqLwogIH0KCiAgLmVkaXRvci1jb250ZW50LmRyYWdnaW5nICogewogICAgdXNlci1zZWxlY3Q6IG5vbmU7CiAgfQoKICAvKiBCbG9jayBTZXR0aW5ncyBCdXR0b24gLSBSZW1vdmVkIGluIGZhdm9yIG9mIGNvbnRleHQgbWVudSAqLwoKICAvKiBUZXh0IFNlbGVjdGlvbiBTdHlsZXMgKi8KICAuYmxvY2sgOjpzZWxlY3Rpb24gewogICAgYmFja2dyb3VuZDogJHtwLmJkVGhlbWUoInJnYmEoNTksIDEzMCwgMjQ2LCAwLjIpIiwicmdiYSg1OSwgMTMwLCAyNDYsIDAuMikiKX07CiAgICBjb2xvcjogaW5oZXJpdDsKICB9CgogIC8qIEZvcm1hdHRpbmcgTWVudSAqLwogIC5mb3JtYXR0aW5nLW1lbnUgewogICAgcG9zaXRpb246IGFic29sdXRlOwogICAgYmFja2dyb3VuZDogJHtwLmJkVGhlbWUoIiNmZmZmZmYiLCIjMDkwOTBiIil9OwogICAgYm9yZGVyOiAxcHggc29saWQgJHtwLmJkVGhlbWUoIiNlNWU3ZWIiLCIjMjcyNzJhIil9OwogICAgYm9yZGVyLXJhZGl1czogNHB4OwogICAgYm94LXNoYWRvdzogMCAxcHggM3B4IHJnYmEoMCwgMCwgMCwgMC4xKSwgMCAxcHggMnB4IHJnYmEoMCwgMCwgMCwgMC4wNik7CiAgICBwYWRkaW5nOiA0cHg7CiAgICBkaXNwbGF5OiBmbGV4OwogICAgZ2FwOiAycHg7CiAgICB6LWluZGV4OiAxMDAxOwogICAgYW5pbWF0aW9uOiBmYWRlSW5TY2FsZSAwLjE1cyBlYXNlLW91dDsKICB9CgogIEBrZXlmcmFtZXMgZmFkZUluU2NhbGUgewogICAgZnJvbSB7CiAgICAgIG9wYWNpdHk6IDA7CiAgICAgIHRyYW5zZm9ybTogc2NhbGUoMC45OCkgdHJhbnNsYXRlWSgycHgpOwogICAgfQogICAgdG8gewogICAgICBvcGFjaXR5OiAxOwogICAgICB0cmFuc2Zvcm06IHNjYWxlKDEpIHRyYW5zbGF0ZVkoMCk7CiAgICB9CiAgfQoKICAuZm9ybWF0LWJ1dHRvbiB7CiAgICB3aWR0aDogMzJweDsKICAgIGhlaWdodDogMzJweDsKICAgIGJvcmRlcjogbm9uZTsKICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50OwogICAgY3Vyc29yOiBwb2ludGVyOwogICAgYm9yZGVyLXJhZGl1czogM3B4OwogICAgdHJhbnNpdGlvbjogYWxsIDAuMTVzIGVhc2U7CiAgICBkaXNwbGF5OiBmbGV4OwogICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOwogICAgY29sb3I6ICR7cC5iZFRoZW1lKCIjMDkwOTBiIiwiI2ZhZmFmYSIpfTsKICAgIGZvbnQtd2VpZ2h0OiA2MDA7CiAgICBmb250LXNpemU6IDE0cHg7CiAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgfQoKICAuZm9ybWF0LWJ1dHRvbjpob3ZlciB7CiAgICBiYWNrZ3JvdW5kOiAke3AuYmRUaGVtZSgiI2Y0ZjRmNSIsIiMyNzI3MmEiKX07CiAgICBjb2xvcjogJHtwLmJkVGhlbWUoIiMzYjgyZjYiLCIjM2I4MmY2Iil9OwogIH0KCiAgLmZvcm1hdC1idXR0b246YWN0aXZlIHsKICAgIHRyYW5zZm9ybTogc2NhbGUoMC45NSk7CiAgfQoKICAuZm9ybWF0LWJ1dHRvbi5ib2xkIHsKICAgIGZvbnQtd2VpZ2h0OiA3MDA7CiAgfQoKICAuZm9ybWF0LWJ1dHRvbi5pdGFsaWMgewogICAgZm9udC1zdHlsZTogaXRhbGljOwogIH0KCiAgLmZvcm1hdC1idXR0b24udW5kZXJsaW5lIHsKICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lOwogIH0KCiAgLmZvcm1hdC1idXR0b24gLmNvZGUtaWNvbiB7CiAgICBmb250LWZhbWlseTogJ1NGIE1vbm8nLCAnTW9uYWNvJywgJ0luY29uc29sYXRhJywgJ0ZpcmEgQ29kZScsIG1vbm9zcGFjZTsKICAgIGZvbnQtc2l6ZTogMTJweDsKICB9CgogIC8qIEFwcGxpZWQgZm9ybWF0IHN0eWxlcyBpbiBjb250ZW50ICovCiAgLmJsb2NrIHN0cm9uZywKICAuYmxvY2sgYiB7CiAgICBmb250LXdlaWdodDogNjAwOwogICAgY29sb3I6ICR7cC5iZFRoZW1lKCIjMDkwOTBiIiwiI2ZhZmFmYSIpfTsKICB9CgogIC5ibG9jayBlbSwKICAuYmxvY2sgaSB7CiAgICBmb250LXN0eWxlOiBpdGFsaWM7CiAgfQoKICAuYmxvY2sgdSB7CiAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTsKICB9CgogIC5ibG9jayBzdHJpa2UsCiAgLmJsb2NrIHMgewogICAgdGV4dC1kZWNvcmF0aW9uOiBsaW5lLXRocm91Z2g7CiAgICBvcGFjaXR5OiAwLjc7CiAgfQoKICAuYmxvY2sgY29kZSB7CiAgICBiYWNrZ3JvdW5kOiAke3AuYmRUaGVtZSgiI2Y0ZjRmNSIsIiMyNzI3MmEiKX07CiAgICBwYWRkaW5nOiAycHggNnB4OwogICAgYm9yZGVyLXJhZGl1czogM3B4OwogICAgZm9udC1mYW1pbHk6ICdTRiBNb25vJywgJ01vbmFjbycsICdJbmNvbnNvbGF0YScsICdGaXJhIENvZGUnLCBtb25vc3BhY2U7CiAgICBmb250LXNpemU6IDAuOWVtOwogICAgY29sb3I6ICR7cC5iZFRoZW1lKCIjMDkwOTBiIiwiI2ZhZmFmYSIpfTsKICB9CgogIC5ibG9jayBhIHsKICAgIGNvbG9yOiAke3AuYmRUaGVtZSgiIzNiODJmNiIsIiMzYjgyZjYiKX07CiAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7CiAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgdHJhbnNwYXJlbnQ7CiAgICB0cmFuc2l0aW9uOiBib3JkZXItY29sb3IgMC4xNXMgZWFzZTsKICB9CgogIC5ibG9jayBhOmhvdmVyIHsKICAgIGJvcmRlci1ib3R0b20tY29sb3I6ICR7cC5iZFRoZW1lKCIjM2I4MmY2IiwiIzNiODJmNiIpfTsKICB9CmB9KTt2YXIgeGksa1Y9YigoKT0+e0FhKCk7eGk9Y2xhc3N7c3RhdGljIGVzY2FwZUh0bWwoZSl7bGV0IGE9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7cmV0dXJuIGEudGV4dENvbnRlbnQ9ZSxhLmlubmVySFRNTH1zdGF0aWMgZm9ybWF0RmlsZVNpemUoZSl7aWYoZT09PTApcmV0dXJuIjAgQnl0ZXMiO2xldCBhPTEwMjQsaT1bIkJ5dGVzIiwiS0IiLCJNQiIsIkdCIl0scj1NYXRoLmZsb29yKE1hdGgubG9nKGUpL01hdGgubG9nKGEpKTtyZXR1cm4gcGFyc2VGbG9hdCgoZS9NYXRoLnBvdyhhLHIpKS50b0ZpeGVkKDIpKSsiICIraVtyXX1zdGF0aWMgZ2V0SHRtbE91dHB1dChlKXtyZXR1cm4gZS5tYXAoYT0+e2xldCBpPWEuY29udGVudC5pbmNsdWRlcygiPCIpJiZhLmNvbnRlbnQuaW5jbHVkZXMoIj4iKT9hLmNvbnRlbnQ6dGhpcy5lc2NhcGVIdG1sKGEuY29udGVudCk7c3dpdGNoKGEudHlwZSl7Y2FzZSJwYXJhZ3JhcGgiOnJldHVybiBhLmNvbnRlbnQ/YDxwPiR7aX08L3A+YDoiIjtjYXNlImhlYWRpbmctMSI6cmV0dXJuYDxoMT4ke2l9PC9oMT5gO2Nhc2UiaGVhZGluZy0yIjpyZXR1cm5gPGgyPiR7aX08L2gyPmA7Y2FzZSJoZWFkaW5nLTMiOnJldHVybmA8aDM+JHtpfTwvaDM+YDtjYXNlInF1b3RlIjpyZXR1cm5gPGJsb2NrcXVvdGU+JHtpfTwvYmxvY2txdW90ZT5gO2Nhc2UiY29kZSI6cmV0dXJuYDxwcmU+PGNvZGU+JHt0aGlzLmVzY2FwZUh0bWwoYS5jb250ZW50KX08L2NvZGU+PC9wcmU+YDtjYXNlImxpc3QiOmxldCByPWEuY29udGVudC5zcGxpdChgCmApLmZpbHRlcihkPT5kLnRyaW0oKSk7aWYoci5sZW5ndGg+MCl7bGV0IGQ9YS5tZXRhZGF0YT8ubGlzdFR5cGU9PT0ib3JkZXJlZCI/Im9sIjoidWwiO3JldHVybmA8JHtkfT4ke3IubWFwKGM9PmA8bGk+JHtjfTwvbGk+YCkuam9pbigiIil9PC8ke2R9PmB9cmV0dXJuIiI7Y2FzZSJkaXZpZGVyIjpyZXR1cm4iPGhyPiI7Y2FzZSJpbWFnZSI6bGV0IHM9YS5tZXRhZGF0YT8udXJsO2lmKHMpe2xldCBkPXRoaXMuZXNjYXBlSHRtbChhLmNvbnRlbnR8fCJJbWFnZSIpO3JldHVybmA8aW1nIHNyYz0iJHtzfSIgYWx0PSIke2R9IiAvPmB9cmV0dXJuIiI7Y2FzZSJ5b3V0dWJlIjpsZXQgbj1hLm1ldGFkYXRhPy52aWRlb0lkO3JldHVybiBuP2A8aWZyYW1lIHdpZHRoPSI1NjAiIGhlaWdodD0iMzE1IiBzcmM9Imh0dHBzOi8vd3d3LnlvdXR1YmUuY29tL2VtYmVkLyR7bn0iIGZyYW1lYm9yZGVyPSIwIiBhbGxvdz0iYWNjZWxlcm9tZXRlcjsgYXV0b3BsYXk7IGNsaXBib2FyZC13cml0ZTsgZW5jcnlwdGVkLW1lZGlhOyBneXJvc2NvcGU7IHBpY3R1cmUtaW4tcGljdHVyZSIgYWxsb3dmdWxsc2NyZWVuPjwvaWZyYW1lPmA6IiI7Y2FzZSJtYXJrZG93biI6cmV0dXJuYDxkaXYgY2xhc3M9Im1hcmtkb3duLWNvbnRlbnQiPiR7dGhpcy5lc2NhcGVIdG1sKGEuY29udGVudCl9PC9kaXY+YDtjYXNlImh0bWwiOnJldHVybiBhLmNvbnRlbnQ7Y2FzZSJhdHRhY2htZW50IjpsZXQgbz1hLm1ldGFkYXRhPy5maWxlc3x8W107cmV0dXJuIG8ubGVuZ3RoPjA/YDxkaXYgY2xhc3M9ImF0dGFjaG1lbnRzIj4ke28ubWFwKGQ9PmA8ZGl2IGNsYXNzPSJhdHRhY2htZW50LWl0ZW0iIGRhdGEtZmlsZS1pZD0iJHtkLmlkfSI+CiAgICAgICAgICAgICAgICA8YSBocmVmPSIke2QuZGF0YX0iIGRvd25sb2FkPSIke2QubmFtZX0iPiR7dGhpcy5lc2NhcGVIdG1sKGQubmFtZSl9PC9hPgogICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImZpbGUtc2l6ZSI+KCR7dGhpcy5mb3JtYXRGaWxlU2l6ZShkLnNpemUpfSk8L3NwYW4+CiAgICAgICAgICAgICAgPC9kaXY+YCkuam9pbigiIil9PC9kaXY+YDoiIjtkZWZhdWx0OnJldHVybmA8cD4ke2l9PC9wPmB9fSkuZmlsdGVyKGE9PmEhPT0iIikuam9pbihgCmApfXN0YXRpYyBnZXRNYXJrZG93bk91dHB1dChlKXtyZXR1cm4gZS5tYXAoYT0+e3N3aXRjaChhLnR5cGUpe2Nhc2UicGFyYWdyYXBoIjpyZXR1cm4gYS5jb250ZW50O2Nhc2UiaGVhZGluZy0xIjpyZXR1cm5gIyAke2EuY29udGVudH1gO2Nhc2UiaGVhZGluZy0yIjpyZXR1cm5gIyMgJHthLmNvbnRlbnR9YDtjYXNlImhlYWRpbmctMyI6cmV0dXJuYCMjIyAke2EuY29udGVudH1gO2Nhc2UicXVvdGUiOnJldHVybmA+ICR7YS5jb250ZW50fWA7Y2FzZSJjb2RlIjpyZXR1cm5gXGBcYFxgCiR7YS5jb250ZW50fQpcYFxgXGBgO2Nhc2UibGlzdCI6bGV0IGk9YS5jb250ZW50LnNwbGl0KGAKYCkuZmlsdGVyKGM9PmMudHJpbSgpKTtyZXR1cm4gYS5tZXRhZGF0YT8ubGlzdFR5cGU9PT0ib3JkZXJlZCI/aS5tYXAoKGMsaCk9PmAke2grMX0uICR7Y31gKS5qb2luKGAKYCk6aS5tYXAoYz0+YC0gJHtjfWApLmpvaW4oYApgKTtjYXNlImRpdmlkZXIiOnJldHVybiItLS0iO2Nhc2UiaW1hZ2UiOmxldCByPWEubWV0YWRhdGE/LnVybCxzPWEuY29udGVudHx8IkltYWdlIjtyZXR1cm4gcj9gIVske3N9XSgke3J9KWA6IiI7Y2FzZSJ5b3V0dWJlIjpsZXQgbj1hLm1ldGFkYXRhPy52aWRlb0lkLG89YS5tZXRhZGF0YT8udXJsfHwobj9gaHR0cHM6Ly95b3V0dWJlLmNvbS93YXRjaD92PSR7bn1gOiIiKTtyZXR1cm4gbz9gW1lvdVR1YmUgVmlkZW9dKCR7b30pYDoiIjtjYXNlIm1hcmtkb3duIjpyZXR1cm4gYS5jb250ZW50O2Nhc2UiaHRtbCI6cmV0dXJuYDwhLS0gSFRNTCBCbG9jawoke2EuY29udGVudH0KLS0+YDtjYXNlImF0dGFjaG1lbnQiOmxldCBkPWEubWV0YWRhdGE/LmZpbGVzfHxbXTtyZXR1cm4gZC5sZW5ndGg+MD9kLm1hcChjPT5gLSBbJHtjLm5hbWV9XSgke2MuZGF0YX0pYCkuam9pbihgCmApOiIiO2RlZmF1bHQ6cmV0dXJuIGEuY29udGVudH19KS5maWx0ZXIoYT0+YSE9PSIiKS5qb2luKGAKCmApfXN0YXRpYyBwYXJzZUh0bWxUb0Jsb2NrcyhlKXtsZXQgaT1uZXcgRE9NUGFyc2VyKCkucGFyc2VGcm9tU3RyaW5nKGUsInRleHQvaHRtbCIpLHI9W10scz1uPT57aWYobi5ub2RlVHlwZT09PU5vZGUuVEVYVF9OT0RFJiZuLnRleHRDb250ZW50Py50cmltKCkpci5wdXNoKHtpZDpgYmxvY2stJHtEYXRlLm5vdygpfS0ke01hdGgucmFuZG9tKCkudG9TdHJpbmcoMzYpLnN1YnN0cmluZygyLDkpfWAsdHlwZToicGFyYWdyYXBoIixjb250ZW50Om4udGV4dENvbnRlbnQudHJpbSgpfSk7ZWxzZSBpZihuLm5vZGVUeXBlPT09Tm9kZS5FTEVNRU5UX05PREUpe2xldCBvPW4sZD1vLnRhZ05hbWUudG9Mb3dlckNhc2UoKTtzd2l0Y2goZCl7Y2FzZSJwIjpyLnB1c2goe2lkOmBibG9jay0ke0RhdGUubm93KCl9LSR7TWF0aC5yYW5kb20oKS50b1N0cmluZygzNikuc3Vic3RyaW5nKDIsOSl9YCx0eXBlOiJwYXJhZ3JhcGgiLGNvbnRlbnQ6by5pbm5lckhUTUx8fCIifSk7YnJlYWs7Y2FzZSJoMSI6ci5wdXNoKHtpZDpgYmxvY2stJHtEYXRlLm5vdygpfS0ke01hdGgucmFuZG9tKCkudG9TdHJpbmcoMzYpLnN1YnN0cmluZygyLDkpfWAsdHlwZToiaGVhZGluZy0xIixjb250ZW50Om8uaW5uZXJIVE1MfHwiIn0pO2JyZWFrO2Nhc2UiaDIiOnIucHVzaCh7aWQ6YGJsb2NrLSR7RGF0ZS5ub3coKX0tJHtNYXRoLnJhbmRvbSgpLnRvU3RyaW5nKDM2KS5zdWJzdHJpbmcoMiw5KX1gLHR5cGU6ImhlYWRpbmctMiIsY29udGVudDpvLmlubmVySFRNTHx8IiJ9KTticmVhaztjYXNlImgzIjpyLnB1c2goe2lkOmBibG9jay0ke0RhdGUubm93KCl9LSR7TWF0aC5yYW5kb20oKS50b1N0cmluZygzNikuc3Vic3RyaW5nKDIsOSl9YCx0eXBlOiJoZWFkaW5nLTMiLGNvbnRlbnQ6by5pbm5lckhUTUx8fCIifSk7YnJlYWs7Y2FzZSJibG9ja3F1b3RlIjpyLnB1c2goe2lkOmBibG9jay0ke0RhdGUubm93KCl9LSR7TWF0aC5yYW5kb20oKS50b1N0cmluZygzNikuc3Vic3RyaW5nKDIsOSl9YCx0eXBlOiJxdW90ZSIsY29udGVudDpvLmlubmVySFRNTHx8IiJ9KTticmVhaztjYXNlInByZSI6Y2FzZSJjb2RlIjpyLnB1c2goe2lkOmBibG9jay0ke0RhdGUubm93KCl9LSR7TWF0aC5yYW5kb20oKS50b1N0cmluZygzNikuc3Vic3RyaW5nKDIsOSl9YCx0eXBlOiJjb2RlIixjb250ZW50Om8udGV4dENvbnRlbnR8fCIifSk7YnJlYWs7Y2FzZSJ1bCI6Y2FzZSJvbCI6bGV0IGg9QXJyYXkuZnJvbShvLnF1ZXJ5U2VsZWN0b3JBbGwoImxpIikpLm1hcChmPT5mLmlubmVySFRNTHx8IiIpLmpvaW4oYApgKTtyLnB1c2goe2lkOmBibG9jay0ke0RhdGUubm93KCl9LSR7TWF0aC5yYW5kb20oKS50b1N0cmluZygzNikuc3Vic3RyaW5nKDIsOSl9YCx0eXBlOiJsaXN0Iixjb250ZW50OmgsbWV0YWRhdGE6e2xpc3RUeXBlOmQ9PT0ib2wiPyJvcmRlcmVkIjoiYnVsbGV0In19KTticmVhaztjYXNlImhyIjpyLnB1c2goe2lkOmBibG9jay0ke0RhdGUubm93KCl9LSR7TWF0aC5yYW5kb20oKS50b1N0cmluZygzNikuc3Vic3RyaW5nKDIsOSl9YCx0eXBlOiJkaXZpZGVyIixjb250ZW50OiIgIn0pO2JyZWFrO2Nhc2UiaW1nIjpsZXQgbD1vO3IucHVzaCh7aWQ6YGJsb2NrLSR7RGF0ZS5ub3coKX0tJHtNYXRoLnJhbmRvbSgpLnRvU3RyaW5nKDM2KS5zdWJzdHJpbmcoMiw5KX1gLHR5cGU6ImltYWdlIixjb250ZW50OmwuYWx0fHwiIixtZXRhZGF0YTp7dXJsOmwuc3JjfX0pO2JyZWFrO2RlZmF1bHQ6by5jaGlsZE5vZGVzLmZvckVhY2goZj0+cyhmKSl9fX07cmV0dXJuIGkuYm9keS5jaGlsZE5vZGVzLmZvckVhY2gobj0+cyhuKSkscn1zdGF0aWMgcGFyc2VNYXJrZG93blRvQmxvY2tzKGUpe2xldCBhPWUuc3BsaXQoYApgKSxpPVtdLHI9W107Zm9yKGxldCBzPTA7czxhLmxlbmd0aDtzKyspe2xldCBuPWFbc107aWYobi5zdGFydHNXaXRoKCIjICIpKWkucHVzaCh7aWQ6YGJsb2NrLSR7RGF0ZS5ub3coKX0tJHtNYXRoLnJhbmRvbSgpLnRvU3RyaW5nKDM2KS5zdWJzdHJpbmcoMiw5KX1gLHR5cGU6ImhlYWRpbmctMSIsY29udGVudDpuLnN1YnN0cmluZygyKX0pO2Vsc2UgaWYobi5zdGFydHNXaXRoKCIjIyAiKSlpLnB1c2goe2lkOmBibG9jay0ke0RhdGUubm93KCl9LSR7TWF0aC5yYW5kb20oKS50b1N0cmluZygzNikuc3Vic3RyaW5nKDIsOSl9YCx0eXBlOiJoZWFkaW5nLTIiLGNvbnRlbnQ6bi5zdWJzdHJpbmcoMyl9KTtlbHNlIGlmKG4uc3RhcnRzV2l0aCgiIyMjICIpKWkucHVzaCh7aWQ6YGJsb2NrLSR7RGF0ZS5ub3coKX0tJHtNYXRoLnJhbmRvbSgpLnRvU3RyaW5nKDM2KS5zdWJzdHJpbmcoMiw5KX1gLHR5cGU6ImhlYWRpbmctMyIsY29udGVudDpuLnN1YnN0cmluZyg0KX0pO2Vsc2UgaWYobi5zdGFydHNXaXRoKCI+ICIpKWkucHVzaCh7aWQ6YGJsb2NrLSR7RGF0ZS5ub3coKX0tJHtNYXRoLnJhbmRvbSgpLnRvU3RyaW5nKDM2KS5zdWJzdHJpbmcoMiw5KX1gLHR5cGU6InF1b3RlIixjb250ZW50Om4uc3Vic3RyaW5nKDIpfSk7ZWxzZSBpZihuLnN0YXJ0c1dpdGgoImBgYCIpKXtsZXQgbz1bXTtmb3IocysrO3M8YS5sZW5ndGgmJiFhW3NdLnN0YXJ0c1dpdGgoImBgYCIpOylvLnB1c2goYVtzXSkscysrO2kucHVzaCh7aWQ6YGJsb2NrLSR7RGF0ZS5ub3coKX0tJHtNYXRoLnJhbmRvbSgpLnRvU3RyaW5nKDM2KS5zdWJzdHJpbmcoMiw5KX1gLHR5cGU6ImNvZGUiLGNvbnRlbnQ6by5qb2luKGAKYCl9KX1lbHNlIGlmKG4ubWF0Y2goL14oXCp8LSkgLykpci5wdXNoKG4uc3Vic3RyaW5nKDIpKSwocz09PWEubGVuZ3RoLTF8fCFhW3MrMV0ubWF0Y2goL14oXCp8LSkgLykpJiYoaS5wdXNoKHtpZDpgYmxvY2stJHtEYXRlLm5vdygpfS0ke01hdGgucmFuZG9tKCkudG9TdHJpbmcoMzYpLnN1YnN0cmluZygyLDkpfWAsdHlwZToibGlzdCIsY29udGVudDpyLmpvaW4oYApgKSxtZXRhZGF0YTp7bGlzdFR5cGU6ImJ1bGxldCJ9fSkscj1bXSk7ZWxzZSBpZihuLm1hdGNoKC9eXGQrXC4gLykpci5wdXNoKG4ucmVwbGFjZSgvXlxkK1wuIC8sIiIpKSwocz09PWEubGVuZ3RoLTF8fCFhW3MrMV0ubWF0Y2goL15cZCtcLiAvKSkmJihpLnB1c2goe2lkOmBibG9jay0ke0RhdGUubm93KCl9LSR7TWF0aC5yYW5kb20oKS50b1N0cmluZygzNikuc3Vic3RyaW5nKDIsOSl9YCx0eXBlOiJsaXN0Iixjb250ZW50OnIuam9pbihgCmApLG1ldGFkYXRhOntsaXN0VHlwZToib3JkZXJlZCJ9fSkscj1bXSk7ZWxzZSBpZihuPT09Ii0tLSJ8fG49PT0iKioqInx8bj09PSJfX18iKWkucHVzaCh7aWQ6YGJsb2NrLSR7RGF0ZS5ub3coKX0tJHtNYXRoLnJhbmRvbSgpLnRvU3RyaW5nKDM2KS5zdWJzdHJpbmcoMiw5KX1gLHR5cGU6ImRpdmlkZXIiLGNvbnRlbnQ6IiAifSk7ZWxzZSBpZihuLm1hdGNoKC9eIVxbKFteXF1dKilcXVwoKFteXCldKylcKSQvKSl7bGV0IG89bi5tYXRjaCgvXiFcWyhbXlxdXSopXF1cKChbXlwpXSspXCkkLyk7byYmaS5wdXNoKHtpZDpgYmxvY2stJHtEYXRlLm5vdygpfS0ke01hdGgucmFuZG9tKCkudG9TdHJpbmcoMzYpLnN1YnN0cmluZygyLDkpfWAsdHlwZToiaW1hZ2UiLGNvbnRlbnQ6b1sxXXx8IiIsbWV0YWRhdGE6e3VybDpvWzJdfX0pfWVsc2Ugbi50cmltKCkmJmkucHVzaCh7aWQ6YGJsb2NrLSR7RGF0ZS5ub3coKX0tJHtNYXRoLnJhbmRvbSgpLnRvU3RyaW5nKDM2KS5zdWJzdHJpbmcoMiw5KX1gLHR5cGU6InBhcmFncmFwaCIsY29udGVudDpufSl9cmV0dXJuIGl9fX0pO3ZhciBBMixxcz1iKCgpPT57dWUoKTtBYSgpO2tWKCk7QTI9Y2xhc3N7c3RhdGljIHJlbmRlckxpc3RDb250ZW50KGUsYSl7bGV0IGk9ZS5zcGxpdChgCmApLmZpbHRlcihzPT5zLnRyaW0oKSk7aWYoaS5sZW5ndGg9PT0wKXJldHVybiIiO2xldCByPWE/Lmxpc3RUeXBlPT09Im9yZGVyZWQiPyJvbCI6InVsIjtyZXR1cm5gPCR7cn0+JHtpLm1hcChzPT5gPGxpPiR7c308L2xpPmApLmpvaW4oIiIpfTwvJHtyfT5gfXN0YXRpYyByZW5kZXJCbG9jayhlLGEsaSl7aWYoZS50eXBlPT09ImRpdmlkZXIiKXJldHVybiB3YAogICAgICAgIDxkaXYKICAgICAgICAgIGNsYXNzPSJibG9jayBkaXZpZGVyIgogICAgICAgICAgZGF0YS1ibG9jay1pZD0iJHtlLmlkfSIKICAgICAgICA+CiAgICAgICAgICA8aHI+CiAgICAgICAgPC9kaXY+CiAgICAgIGA7aWYoZS50eXBlPT09Imxpc3QiKXJldHVybiB3YAogICAgICAgIDxkaXYKICAgICAgICAgIGNsYXNzPSJibG9jayBsaXN0ICR7YT8ic2VsZWN0ZWQiOiIifSIKICAgICAgICAgIGRhdGEtYmxvY2staWQ9IiR7ZS5pZH0iCiAgICAgICAgICBjb250ZW50ZWRpdGFibGU9InRydWUiCiAgICAgICAgICBAaW5wdXQ9IiR7aS5vbklucHV0fSIKICAgICAgICAgIEBrZXlkb3duPSIke2kub25LZXlEb3dufSIKICAgICAgICAgIEBmb2N1cz0iJHtpLm9uRm9jdXN9IgogICAgICAgICAgQGJsdXI9IiR7aS5vbkJsdXJ9IgogICAgICAgICAgQGNvbXBvc2l0aW9uc3RhcnQ9IiR7aS5vbkNvbXBvc2l0aW9uU3RhcnR9IgogICAgICAgICAgQGNvbXBvc2l0aW9uZW5kPSIke2kub25Db21wb3NpdGlvbkVuZH0iCiAgICAgICAgICBAbW91c2V1cD0iJHtzPT57Y29uc29sZS5sb2coIkJsb2NrIG1vdXNldXAgZXZlbnQgZmlyZWQiKSxpLm9uTW91c2VVcCYmaS5vbk1vdXNlVXAocyl9fSIKICAgICAgICAgIC5pbm5lckhUTUw9IiR7dGhpcy5yZW5kZXJMaXN0Q29udGVudChlLmNvbnRlbnQsZS5tZXRhZGF0YSl9IgogICAgICAgID48L2Rpdj4KICAgICAgYDtpZihlLnR5cGU9PT0iY29kZSIpe2xldCBzPWUubWV0YWRhdGE/Lmxhbmd1YWdlfHwicGxhaW4gdGV4dCI7cmV0dXJuIHdgCiAgICAgICAgPGRpdiBjbGFzcz0iY29kZS1ibG9jay1jb250YWluZXIiPgogICAgICAgICAgPGRpdiBjbGFzcz0iY29kZS1sYW5ndWFnZSI+JHtzfTwvZGl2PgogICAgICAgICAgPGRpdgogICAgICAgICAgICBjbGFzcz0iYmxvY2sgJHtlLnR5cGV9ICR7YT8ic2VsZWN0ZWQiOiIifSIKICAgICAgICAgICAgY29udGVudGVkaXRhYmxlPSJ0cnVlIgogICAgICAgICAgICBAaW5wdXQ9IiR7aS5vbklucHV0fSIKICAgICAgICAgICAgQGtleWRvd249IiR7aS5vbktleURvd259IgogICAgICAgICAgICBAZm9jdXM9IiR7aS5vbkZvY3VzfSIKICAgICAgICAgICAgQGJsdXI9IiR7aS5vbkJsdXJ9IgogICAgICAgICAgICBAY29tcG9zaXRpb25zdGFydD0iJHtpLm9uQ29tcG9zaXRpb25TdGFydH0iCiAgICAgICAgICAgIEBjb21wb3NpdGlvbmVuZD0iJHtpLm9uQ29tcG9zaXRpb25FbmR9IgogICAgICAgICAgICBAbW91c2V1cD0iJHtuPT57Y29uc29sZS5sb2coIkJsb2NrIG1vdXNldXAgZXZlbnQgZmlyZWQiKSxpLm9uTW91c2VVcCYmaS5vbk1vdXNlVXAobil9fSIKICAgICAgICAgICAgLnRleHRDb250ZW50PSIke2UuY29udGVudHx8IiJ9IgogICAgICAgICAgPjwvZGl2PgogICAgICAgIDwvZGl2PgogICAgICBgfXJldHVybiB3YAogICAgICA8ZGl2CiAgICAgICAgY2xhc3M9ImJsb2NrICR7ZS50eXBlfSAke2E/InNlbGVjdGVkIjoiIn0iCiAgICAgICAgY29udGVudGVkaXRhYmxlPSJ0cnVlIgogICAgICAgIEBpbnB1dD0iJHtpLm9uSW5wdXR9IgogICAgICAgIEBrZXlkb3duPSIke2kub25LZXlEb3dufSIKICAgICAgICBAZm9jdXM9IiR7aS5vbkZvY3VzfSIKICAgICAgICBAYmx1cj0iJHtpLm9uQmx1cn0iCiAgICAgICAgQGNvbXBvc2l0aW9uc3RhcnQ9IiR7aS5vbkNvbXBvc2l0aW9uU3RhcnR9IgogICAgICAgIEBjb21wb3NpdGlvbmVuZD0iJHtpLm9uQ29tcG9zaXRpb25FbmR9IgogICAgICAgIEBtb3VzZXVwPSIke3M9Pntjb25zb2xlLmxvZygiQmxvY2sgbW91c2V1cCBldmVudCBmaXJlZCIpLGkub25Nb3VzZVVwJiZpLm9uTW91c2VVcChzKX19IgogICAgICAgIC5pbm5lckhUTUw9IiR7ZS5jb250ZW50fHwiIn0iCiAgICAgID48L2Rpdj4KICAgIGB9c3RhdGljIHNldEN1cnNvclRvRW5kKGUpe2xldCBhPXdpbmRvdy5nZXRTZWxlY3Rpb24oKTtpZighYSlyZXR1cm47bGV0IGk9ZG9jdW1lbnQuY3JlYXRlUmFuZ2UoKTtpZihlLmNoaWxkTm9kZXMubGVuZ3RoPT09MCl7bGV0IHI9ZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUoIlx1MjAwQiIpO2UuYXBwZW5kQ2hpbGQociksaS5zZXRTdGFydChyLDEpLGkuY29sbGFwc2UoITApfWVsc2V7bGV0IHI9dGhpcy5nZXRMYXN0Tm9kZShlKTtyLm5vZGVUeXBlPT09Tm9kZS5URVhUX05PREU/aS5zZXRTdGFydChyLHIudGV4dENvbnRlbnQ/Lmxlbmd0aHx8MCk6aS5zZXRTdGFydEFmdGVyKHIpLGkuY29sbGFwc2UoITApfWEucmVtb3ZlQWxsUmFuZ2VzKCksYS5hZGRSYW5nZShpKSxlLnRleHRDb250ZW50PT09Ilx1MjAwQiImJihlLnRleHRDb250ZW50PSIiKX1zdGF0aWMgc2V0Q3Vyc29yVG9TdGFydChlKXtsZXQgYT13aW5kb3cuZ2V0U2VsZWN0aW9uKCk7aWYoIWEpcmV0dXJuO2xldCBpPWRvY3VtZW50LmNyZWF0ZVJhbmdlKCk7aWYoZS5jaGlsZE5vZGVzLmxlbmd0aD09PTApaS5zZXRTdGFydChlLDApLGkuY29sbGFwc2UoITApO2Vsc2V7bGV0IHI9dGhpcy5nZXRGaXJzdE5vZGUoZSk7ci5ub2RlVHlwZT09PU5vZGUuVEVYVF9OT0RFP2kuc2V0U3RhcnQociwwKTppLnNldFN0YXJ0QmVmb3JlKHIpLGkuY29sbGFwc2UoITApfWEucmVtb3ZlQWxsUmFuZ2VzKCksYS5hZGRSYW5nZShpKX1zdGF0aWMgZ2V0TGFzdE5vZGUoZSl7aWYoZS5jaGlsZE5vZGVzLmxlbmd0aD09PTApcmV0dXJuIGU7bGV0IGE9ZS5jaGlsZE5vZGVzW2UuY2hpbGROb2Rlcy5sZW5ndGgtMV07cmV0dXJuIGEubm9kZVR5cGU9PT1Ob2RlLlRFWFRfTk9ERXx8YS5jaGlsZE5vZGVzLmxlbmd0aD09PTA/YTp0aGlzLmdldExhc3ROb2RlKGEpfXN0YXRpYyBnZXRGaXJzdE5vZGUoZSl7aWYoZS5jaGlsZE5vZGVzLmxlbmd0aD09PTApcmV0dXJuIGU7bGV0IGE9ZS5jaGlsZE5vZGVzWzBdO3JldHVybiBhLm5vZGVUeXBlPT09Tm9kZS5URVhUX05PREV8fGEuY2hpbGROb2Rlcy5sZW5ndGg9PT0wP2E6dGhpcy5nZXRGaXJzdE5vZGUoYSl9c3RhdGljIGZvY3VzTGlzdEl0ZW0oZSl7bGV0IGE9ZS5xdWVyeVNlbGVjdG9yKCJsaSIpO2lmKGEpe2EuZm9jdXMoKTtsZXQgaT1kb2N1bWVudC5jcmVhdGVSYW5nZSgpLHI9d2luZG93LmdldFNlbGVjdGlvbigpO2kuc2VsZWN0Tm9kZUNvbnRlbnRzKGEpLGkuY29sbGFwc2UoITApLHIucmVtb3ZlQWxsUmFuZ2VzKCksci5hZGRSYW5nZShpKX19fX0pO3ZhciBMOCxTVj1iKCgpPT57QWEoKTtObCgpO280KCk7cXMoKTtMOD1jbGFzc3tjb21wb25lbnQ7Y29uc3RydWN0b3IoZSl7dGhpcy5jb21wb25lbnQ9ZX1jcmVhdGVCbG9jayhlPSJwYXJhZ3JhcGgiLGE9IiIsaSl7cmV0dXJue2lkOlYxLmdlbmVyYXRlQmxvY2tJZCgpLHR5cGU6ZSxjb250ZW50OmEsLi4uaSYme21ldGFkYXRhOml9fX1hc3luYyBpbnNlcnRCbG9ja0FmdGVyKGUsYSxpPSEwKXtsZXQgcj10aGlzLmNvbXBvbmVudC5ibG9ja3Mscz1yLmZpbmRJbmRleChuPT5uLmlkPT09ZS5pZCk7aWYodGhpcy5jb21wb25lbnQuYmxvY2tzPVsuLi5yLnNsaWNlKDAscysxKSxhLC4uLnIuc2xpY2UocysxKV0sdGhpcy5jb21wb25lbnQuZWRpdG9yQ29udGVudFJlZil7bGV0IG49dGhpcy5jb21wb25lbnQuZWRpdG9yQ29udGVudFJlZi5xdWVyeVNlbGVjdG9yKGBbZGF0YS1ibG9jay1pZD0iJHtlLmlkfSJdYCk7aWYobil7bGV0IG89dGhpcy5jb21wb25lbnQuY3JlYXRlQmxvY2tFbGVtZW50KGEpO24uaW5zZXJ0QWRqYWNlbnRFbGVtZW50KCJhZnRlcmVuZCIsbyl9fXRoaXMuY29tcG9uZW50LnVwZGF0ZVZhbHVlKCksaSYmYS50eXBlIT09ImRpdmlkZXIiJiYoYXdhaXQgbmV3IFByb21pc2Uobj0+c2V0VGltZW91dChuLDApKSxhd2FpdCB0aGlzLmZvY3VzQmxvY2soYS5pZCwic3RhcnQiKSl9cmVtb3ZlQmxvY2soZSl7aWYodGhpcy5jb21wb25lbnQuc2F2ZVRvSGlzdG9yeSghMSksdGhpcy5jb21wb25lbnQuYmxvY2tzPXRoaXMuY29tcG9uZW50LmJsb2Nrcy5maWx0ZXIoYT0+YS5pZCE9PWUpLHRoaXMuY29tcG9uZW50LmVkaXRvckNvbnRlbnRSZWYpe2xldCBhPXRoaXMuY29tcG9uZW50LmVkaXRvckNvbnRlbnRSZWYucXVlcnlTZWxlY3RvcihgW2RhdGEtYmxvY2staWQ9IiR7ZX0iXWApO2EmJmEucmVtb3ZlKCl9dGhpcy5jb21wb25lbnQudXBkYXRlVmFsdWUoKX1maW5kQmxvY2soZSl7cmV0dXJuIHRoaXMuY29tcG9uZW50LmJsb2Nrcy5maW5kKGE9PmEuaWQ9PT1lKX1nZXRCbG9ja0luZGV4KGUpe3JldHVybiB0aGlzLmNvbXBvbmVudC5ibG9ja3MuZmluZEluZGV4KGE9PmEuaWQ9PT1lKX1hc3luYyBmb2N1c0Jsb2NrKGUsYT0ic3RhcnQiKXtsZXQgaT10aGlzLmNvbXBvbmVudC5zaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3IoYFtkYXRhLWJsb2NrLWlkPSIke2V9Il1gKTtpZihpKXtsZXQgcj1pLnF1ZXJ5U2VsZWN0b3IoImRlZXMtd3lzaXd5Zy1ibG9jayIpO3ImJihhd2FpdCBuZXcgUHJvbWlzZShzPT5yZXF1ZXN0QW5pbWF0aW9uRnJhbWUocykpLHIuZm9jdXNXaXRoQ3Vyc29yKGEpKX19dXBkYXRlQmxvY2tDb250ZW50KGUsYSl7bGV0IGk9dGhpcy5maW5kQmxvY2soZSk7aSYmKGkuY29udGVudD1hLHRoaXMuY29tcG9uZW50LnVwZGF0ZVZhbHVlKCkpfXRyYW5zZm9ybUJsb2NrKGUsYSxpKXtsZXQgcj10aGlzLmZpbmRCbG9jayhlKTtyJiYodGhpcy5jb21wb25lbnQuc2F2ZVRvSGlzdG9yeSghMSksci50eXBlPWEsci5jb250ZW50PSIiLGkmJihyLm1ldGFkYXRhPWkpLHRoaXMuY29tcG9uZW50LmVkaXRvckNvbnRlbnRSZWYmJnRoaXMuY29tcG9uZW50LnVwZGF0ZUJsb2NrRWxlbWVudChlKSx0aGlzLmNvbXBvbmVudC51cGRhdGVWYWx1ZSgpKX1tb3ZlQmxvY2soZSxhKXtsZXQgaT1bLi4udGhpcy5jb21wb25lbnQuYmxvY2tzXSxyPXRoaXMuZ2V0QmxvY2tJbmRleChlKTtpZihyPT09LTF8fGE8MHx8YT49aS5sZW5ndGgpcmV0dXJuO2xldFtzXT1pLnNwbGljZShyLDEpO2kuc3BsaWNlKGEsMCxzKSx0aGlzLmNvbXBvbmVudC5ibG9ja3M9aSx0aGlzLmNvbXBvbmVudC51cGRhdGVWYWx1ZSgpfWdldFByZXZpb3VzQmxvY2soZSl7bGV0IGE9dGhpcy5nZXRCbG9ja0luZGV4KGUpO3JldHVybiBhPjA/dGhpcy5jb21wb25lbnQuYmxvY2tzW2EtMV06bnVsbH1nZXROZXh0QmxvY2soZSl7bGV0IGE9dGhpcy5nZXRCbG9ja0luZGV4KGUpO3JldHVybiBhPHRoaXMuY29tcG9uZW50LmJsb2Nrcy5sZW5ndGgtMT90aGlzLmNvbXBvbmVudC5ibG9ja3NbYSsxXTpudWxsfX19KTt2YXIgTTEsWWE9YigoKT0+e00xPWNsYXNze3NldHVwKGUsYSxpKXt9Z2V0U3R5bGVzKCl7cmV0dXJuIiJ9fX0pO3ZhciB0MSxnZ3Q9YigoKT0+e3QxPWNsYXNze3N0YXRpYyBoYW5kbGVycz1uZXcgTWFwO3N0YXRpYyByZWdpc3RlcihlLGEpe3RoaXMuaGFuZGxlcnMuc2V0KGUsYSl9c3RhdGljIGdldEhhbmRsZXIoZSl7cmV0dXJuIHRoaXMuaGFuZGxlcnMuZ2V0KGUpfXN0YXRpYyBnZXRBbGxUeXBlcygpe3JldHVybiBBcnJheS5mcm9tKHRoaXMuaGFuZGxlcnMua2V5cygpKX19fSk7dmFyIGJndD1iKCgpPT57fSk7dmFyICQ4LHZndD1iKCgpPT57WWEoKTt1ZSgpO3FzKCk7VXIoKTskOD1jbGFzcyBleHRlbmRzIE0xe3R5cGU9InBhcmFncmFwaCI7bGFzdEtub3duQ3Vyc29yUG9zaXRpb249MDtsYXN0U2VsZWN0ZWRUZXh0PSIiO3NlbGVjdGlvbkhhbmRsZXI9bnVsbDtyZW5kZXIoZSxhKXtsZXQgaT1hPyIgc2VsZWN0ZWQiOiIiLHI9dGhpcy5nZXRQbGFjZWhvbGRlcigpO3JldHVybmAKICAgICAgPGRpdgogICAgICAgIGNsYXNzPSJibG9jayBwYXJhZ3JhcGgke2l9IgogICAgICAgIGNvbnRlbnRlZGl0YWJsZT0idHJ1ZSIKICAgICAgICBkYXRhLXBsYWNlaG9sZGVyPSIke3J9IgogICAgICAgIGRhdGEtYmxvY2staWQ9IiR7ZS5pZH0iCiAgICAgICAgZGF0YS1ibG9jay10eXBlPSIke2UudHlwZX0iCiAgICAgID48L2Rpdj4KICAgIGB9c2V0dXAoZSxhLGkpe2xldCByPWUucXVlcnlTZWxlY3RvcigiLmJsb2NrLnBhcmFncmFwaCIpO2lmKCFyKXtjb25zb2xlLmVycm9yKCJQYXJhZ3JhcGhCbG9ja0hhbmRsZXIuc2V0dXA6IE5vIHBhcmFncmFwaCBibG9jayBlbGVtZW50IGZvdW5kIik7cmV0dXJufWEuY29udGVudCYmIXIuaW5uZXJIVE1MJiYoci5pbm5lckhUTUw9YS5jb250ZW50KSxyLmFkZEV2ZW50TGlzdGVuZXIoImlucHV0IixzPT57aS5vbklucHV0KHMpO2xldCBuPXRoaXMuZ2V0Q3Vyc29yUG9zaXRpb24oZSk7biE9PW51bGwmJih0aGlzLmxhc3RLbm93bkN1cnNvclBvc2l0aW9uPW4pfSksci5hZGRFdmVudExpc3RlbmVyKCJrZXlkb3duIixzPT57bGV0IG49dGhpcy5nZXRDdXJzb3JQb3NpdGlvbihlKTtuIT09bnVsbCYmKHRoaXMubGFzdEtub3duQ3Vyc29yUG9zaXRpb249biksaS5vbktleURvd24ocyl9KSxyLmFkZEV2ZW50TGlzdGVuZXIoImZvY3VzIiwoKT0+e2kub25Gb2N1cygpfSksci5hZGRFdmVudExpc3RlbmVyKCJibHVyIiwoKT0+e2kub25CbHVyKCl9KSxyLmFkZEV2ZW50TGlzdGVuZXIoImNvbXBvc2l0aW9uc3RhcnQiLCgpPT57aS5vbkNvbXBvc2l0aW9uU3RhcnQoKX0pLHIuYWRkRXZlbnRMaXN0ZW5lcigiY29tcG9zaXRpb25lbmQiLCgpPT57aS5vbkNvbXBvc2l0aW9uRW5kKCl9KSxyLmFkZEV2ZW50TGlzdGVuZXIoIm1vdXNldXAiLHM9PntsZXQgbj10aGlzLmdldEN1cnNvclBvc2l0aW9uKGUpO24hPT1udWxsJiYodGhpcy5sYXN0S25vd25DdXJzb3JQb3NpdGlvbj1uKSxpLm9uTW91c2VVcD8uKHMpfSksci5hZGRFdmVudExpc3RlbmVyKCJjbGljayIscz0+e3NldFRpbWVvdXQoKCk9PntsZXQgbj10aGlzLmdldEN1cnNvclBvc2l0aW9uKGUpO24hPT1udWxsJiYodGhpcy5sYXN0S25vd25DdXJzb3JQb3NpdGlvbj1uKX0sMCl9KSxyLmFkZEV2ZW50TGlzdGVuZXIoImtleXVwIixzPT57bGV0IG49dGhpcy5nZXRDdXJzb3JQb3NpdGlvbihlKTtuIT09bnVsbCYmKHRoaXMubGFzdEtub3duQ3Vyc29yUG9zaXRpb249bil9KSx0aGlzLnNldHVwU2VsZWN0aW9uSGFuZGxlcihlLHIsYSl9c2V0dXBTZWxlY3Rpb25IYW5kbGVyKGUsYSxpKXtsZXQgcj0oKT0+e2xldCBuPXdpbmRvdy5nZXRTZWxlY3Rpb24oKTtpZighbnx8bi5yYW5nZUNvdW50PT09MClyZXR1cm47bGV0IG89bi50b1N0cmluZygpO2lmKG8ubGVuZ3RoPT09MCl7dGhpcy5sYXN0U2VsZWN0ZWRUZXh0JiYodGhpcy5sYXN0U2VsZWN0ZWRUZXh0PSIiLHRoaXMuZGlzcGF0Y2hTZWxlY3Rpb25FdmVudChlLHt0ZXh0OiIiLGJsb2NrSWQ6aS5pZCxoYXNTZWxlY3Rpb246ITF9KSk7cmV0dXJufWxldCBkPWEuZ2V0Um9vdE5vZGUoKS5ob3N0LGg9ZD8uY2xvc2VzdCgiZGVlcy1pbnB1dC13eXNpd3lnIik/LnNoYWRvd1Jvb3QsbD1kPy5zaGFkb3dSb290LGY9W107aCYmZi5wdXNoKGgpLGwmJmYucHVzaChsKTtsZXQgZz1SZS5nZXRTZWxlY3Rpb25JbmZvKC4uLmYpO2lmKCFnKXJldHVybjtsZXQgeT1SZS5jb250YWluc0Fjcm9zc1NoYWRvd0RPTShhLGcuc3RhcnRDb250YWluZXIpLHY9UmUuY29udGFpbnNBY3Jvc3NTaGFkb3dET00oYSxnLmVuZENvbnRhaW5lcik7aWYoeXx8dil7aWYobyE9PXRoaXMubGFzdFNlbGVjdGVkVGV4dCl7dGhpcy5sYXN0U2VsZWN0ZWRUZXh0PW87bGV0IG09UmUuY3JlYXRlUmFuZ2VGcm9tSW5mbyhnKSx4PW0uZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7dGhpcy5kaXNwYXRjaFNlbGVjdGlvbkV2ZW50KGUse3RleHQ6by50cmltKCksYmxvY2tJZDppLmlkLHJhbmdlOm0scmVjdDp4LGhhc1NlbGVjdGlvbjohMH0pfX1lbHNlIHRoaXMubGFzdFNlbGVjdGVkVGV4dCYmKHRoaXMubGFzdFNlbGVjdGVkVGV4dD0iIix0aGlzLmRpc3BhdGNoU2VsZWN0aW9uRXZlbnQoZSx7dGV4dDoiIixibG9ja0lkOmkuaWQsaGFzU2VsZWN0aW9uOiExfSkpfTtkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCJzZWxlY3Rpb25jaGFuZ2UiLHIpLHRoaXMuc2VsZWN0aW9uSGFuZGxlcj1yO2xldCBzPWUuY2xvc2VzdCgiZGVlcy13eXNpd3lnLWJsb2NrIik7aWYocyl7bGV0IG49cy5kaXNjb25uZWN0ZWRDYWxsYmFjaztzLmRpc2Nvbm5lY3RlZENhbGxiYWNrPWFzeW5jIGZ1bmN0aW9uKCl7dGhpcy5zZWxlY3Rpb25IYW5kbGVyJiYoZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcigic2VsZWN0aW9uY2hhbmdlIix0aGlzLnNlbGVjdGlvbkhhbmRsZXIpLHRoaXMuc2VsZWN0aW9uSGFuZGxlcj1udWxsKSxuJiZhd2FpdCBuLmNhbGwocyl9LmJpbmQodGhpcyl9fWRpc3BhdGNoU2VsZWN0aW9uRXZlbnQoZSxhKXtsZXQgaT1uZXcgQ3VzdG9tRXZlbnQoImJsb2NrLXRleHQtc2VsZWN0ZWQiLHtkZXRhaWw6YSxidWJibGVzOiEwLGNvbXBvc2VkOiEwfSk7ZS5kaXNwYXRjaEV2ZW50KGkpfWdldFN0eWxlcygpe3JldHVybmAKICAgICAgLyogUGFyYWdyYXBoIHNwZWNpZmljIHN0eWxlcyAqLwogICAgICAuYmxvY2sucGFyYWdyYXBoIHsKICAgICAgICBmb250LXNpemU6IDE2cHg7CiAgICAgICAgbGluZS1oZWlnaHQ6IDEuNjsKICAgICAgICBmb250LXdlaWdodDogNDAwOwogICAgICB9CiAgICBgfWdldFBsYWNlaG9sZGVyKCl7cmV0dXJuIlR5cGUgJy8nIGZvciBjb21tYW5kcy4uLiJ9Z2V0TGFzdFRleHROb2RlKGUpe2lmKGUubm9kZVR5cGU9PT1Ob2RlLlRFWFRfTk9ERSlyZXR1cm4gZTtmb3IobGV0IGE9ZS5jaGlsZE5vZGVzLmxlbmd0aC0xO2E+PTA7YS0tKXtsZXQgaT10aGlzLmdldExhc3RUZXh0Tm9kZShlLmNoaWxkTm9kZXNbYV0pO2lmKGkpcmV0dXJuIGl9cmV0dXJuIG51bGx9Z2V0Q3Vyc29yUG9zaXRpb24oZSxhKXtsZXQgaT1lLnF1ZXJ5U2VsZWN0b3IoIi5ibG9jay5wYXJhZ3JhcGgiKTtpZighaSlyZXR1cm4gbnVsbDtsZXQgbj1hPy5jb21wb25lbnQ/LmNsb3Nlc3QoImRlZXMtaW5wdXQtd3lzaXd5ZyIpPy5zaGFkb3dSb290LG89YT8uc2hhZG93Um9vdCxkPVtdO24mJmQucHVzaChuKSxvJiZkLnB1c2gobyk7bGV0IGM9UmUuZ2V0U2VsZWN0aW9uSW5mbyguLi5kKTtpZighY3x8IVJlLmNvbnRhaW5zQWNyb3NzU2hhZG93RE9NKGksYy5zdGFydENvbnRhaW5lcikpcmV0dXJuIG51bGw7bGV0IGg9ZG9jdW1lbnQuY3JlYXRlUmFuZ2UoKTtyZXR1cm4gaC5zZWxlY3ROb2RlQ29udGVudHMoaSksaC5zZXRFbmQoYy5zdGFydENvbnRhaW5lcixjLnN0YXJ0T2Zmc2V0KSxoLnRvU3RyaW5nKCkubGVuZ3RofWdldENvbnRlbnQoZSxhKXtsZXQgaT1lLnF1ZXJ5U2VsZWN0b3IoIi5ibG9jay5wYXJhZ3JhcGgiKTtyZXR1cm4gaSYmaS5pbm5lckhUTUx8fCIifXNldENvbnRlbnQoZSxhLGkpe2xldCByPWUucXVlcnlTZWxlY3RvcigiLmJsb2NrLnBhcmFncmFwaCIpO2lmKCFyKXJldHVybjtsZXQgcz1kb2N1bWVudC5hY3RpdmVFbGVtZW50PT09cnx8ZS5zaGFkb3dSb290Py5hY3RpdmVFbGVtZW50PT09cjtyLmlubmVySFRNTD1hLHMmJnIuZm9jdXMoKX1zZXRDdXJzb3JUb1N0YXJ0KGUsYSl7bGV0IGk9ZS5xdWVyeVNlbGVjdG9yKCIuYmxvY2sucGFyYWdyYXBoIik7aSYmQTIuc2V0Q3Vyc29yVG9TdGFydChpKX1zZXRDdXJzb3JUb0VuZChlLGEpe2xldCBpPWUucXVlcnlTZWxlY3RvcigiLmJsb2NrLnBhcmFncmFwaCIpO2kmJkEyLnNldEN1cnNvclRvRW5kKGkpfWZvY3VzKGUsYSl7bGV0IGk9ZS5xdWVyeVNlbGVjdG9yKCIuYmxvY2sucGFyYWdyYXBoIik7aSYmKGkuaGFzQXR0cmlidXRlKCJjb250ZW50ZWRpdGFibGUiKXx8aS5zZXRBdHRyaWJ1dGUoImNvbnRlbnRlZGl0YWJsZSIsInRydWUiKSxpLmZvY3VzKCksZG9jdW1lbnQuYWN0aXZlRWxlbWVudCE9PWkmJmUuc2hhZG93Um9vdD8uYWN0aXZlRWxlbWVudCE9PWkmJlByb21pc2UucmVzb2x2ZSgpLnRoZW4oKCk9PntpLmZvY3VzKCl9KSl9Zm9jdXNXaXRoQ3Vyc29yKGUsYT0iZW5kIixpKXtsZXQgcj1lLnF1ZXJ5U2VsZWN0b3IoIi5ibG9jay5wYXJhZ3JhcGgiKTtpZighcilyZXR1cm47aWYoci5oYXNBdHRyaWJ1dGUoImNvbnRlbnRlZGl0YWJsZSIpfHxyLnNldEF0dHJpYnV0ZSgiY29udGVudGVkaXRhYmxlIiwidHJ1ZSIpLGE9PT0iZW5kIiYmci50ZXh0Q29udGVudCYmci50ZXh0Q29udGVudC5sZW5ndGg+MCl7bGV0IG49d2luZG93LmdldFNlbGVjdGlvbigpO2lmKG4pe2xldCBvPWRvY3VtZW50LmNyZWF0ZVJhbmdlKCksZD10aGlzLmdldExhc3RUZXh0Tm9kZShyKXx8cjtkLm5vZGVUeXBlPT09Tm9kZS5URVhUX05PREU/KG8uc2V0U3RhcnQoZCxkLnRleHRDb250ZW50Py5sZW5ndGh8fDApLG8uc2V0RW5kKGQsZC50ZXh0Q29udGVudD8ubGVuZ3RofHwwKSk6KG8uc2VsZWN0Tm9kZUNvbnRlbnRzKGQpLG8uY29sbGFwc2UoITEpKSxuLnJlbW92ZUFsbFJhbmdlcygpLG4uYWRkUmFuZ2Uobyl9fXIuZm9jdXMoKTtsZXQgcz0oKT0+e2E9PT0ic3RhcnQiP3RoaXMuc2V0Q3Vyc29yVG9TdGFydChlLGkpOmE9PT0iZW5kIiYmKCFyLnRleHRDb250ZW50fHxyLnRleHRDb250ZW50Lmxlbmd0aD09PTApP3RoaXMuc2V0Q3Vyc29yVG9FbmQoZSxpKTp0eXBlb2YgYT09Im51bWJlciImJlJlLnNldEN1cnNvclBvc2l0aW9uKHIsYSl9O2RvY3VtZW50LmFjdGl2ZUVsZW1lbnQ9PT1yfHxlLnNoYWRvd1Jvb3Q/LmFjdGl2ZUVsZW1lbnQ9PT1yP3MoKTpQcm9taXNlLnJlc29sdmUoKS50aGVuKCgpPT57ZG9jdW1lbnQuYWN0aXZlRWxlbWVudD09PXJ8fGUuc2hhZG93Um9vdD8uYWN0aXZlRWxlbWVudD09PXI/cygpOnNldFRpbWVvdXQoKCk9PnsoZG9jdW1lbnQuYWN0aXZlRWxlbWVudD09PXJ8fGUuc2hhZG93Um9vdD8uYWN0aXZlRWxlbWVudD09PXIpJiZzKCl9LDEwKX0pfWdldFNwbGl0Q29udGVudChlLGEpe2xldCBpPWUucXVlcnlTZWxlY3RvcigiLmJsb2NrLnBhcmFncmFwaCIpO2lmKCFpKXJldHVybiBudWxsO2xldCBuPWE/LmNvbXBvbmVudD8uY2xvc2VzdCgiZGVlcy1pbnB1dC13eXNpd3lnIik/LnNoYWRvd1Jvb3Qsbz1hPy5zaGFkb3dSb290LGQ9W107biYmZC5wdXNoKG4pLG8mJmQucHVzaChvKTtsZXQgYz1SZS5nZXRTZWxlY3Rpb25JbmZvKC4uLmQpO2lmKCFjKXtpZih0aGlzLmxhc3RLbm93bkN1cnNvclBvc2l0aW9uIT09bnVsbCl7bGV0IE09aS50ZXh0Q29udGVudHx8IiIsUz1NYXRoLm1pbih0aGlzLmxhc3RLbm93bkN1cnNvclBvc2l0aW9uLE0ubGVuZ3RoKTtyZXR1cm57YmVmb3JlOk0uc3Vic3RyaW5nKDAsUyksYWZ0ZXI6TS5zdWJzdHJpbmcoUyl9fXJldHVybiBudWxsfWlmKCFSZS5jb250YWluc0Fjcm9zc1NoYWRvd0RPTShpLGMuc3RhcnRDb250YWluZXIpKXtpZih0aGlzLmxhc3RLbm93bkN1cnNvclBvc2l0aW9uIT09bnVsbCl7bGV0IE09aS50ZXh0Q29udGVudHx8IiIsUz1NYXRoLm1pbih0aGlzLmxhc3RLbm93bkN1cnNvclBvc2l0aW9uLE0ubGVuZ3RoKTtyZXR1cm57YmVmb3JlOk0uc3Vic3RyaW5nKDAsUyksYWZ0ZXI6TS5zdWJzdHJpbmcoUyl9fXJldHVybiBudWxsfWxldCBoPXRoaXMuZ2V0Q3Vyc29yUG9zaXRpb24oZSxhKTtpZihoPT09bnVsbHx8aD09PTApcmV0dXJue2JlZm9yZToiIixhZnRlcjppLmlubmVySFRNTH07bGV0IGw9ZG9jdW1lbnQuY3JlYXRlUmFuZ2UoKSxmPWRvY3VtZW50LmNyZWF0ZVJhbmdlKCk7bC5zZXRTdGFydChpLDApLGwuc2V0RW5kKGMuc3RhcnRDb250YWluZXIsYy5zdGFydE9mZnNldCksZi5zZXRTdGFydChjLnN0YXJ0Q29udGFpbmVyLGMuc3RhcnRPZmZzZXQpLGYuc2V0RW5kKGksaS5jaGlsZE5vZGVzLmxlbmd0aCk7bGV0IGc9bC5jbG9uZUNvbnRlbnRzKCkseT1mLmNsb25lQ29udGVudHMoKSx2PWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpO3YuYXBwZW5kQ2hpbGQoZyk7bGV0IG09di5pbm5lckhUTUw7di5pbm5lckhUTUw9IiIsdi5hcHBlbmRDaGlsZCh5KTtsZXQgeD12LmlubmVySFRNTDtyZXR1cm57YmVmb3JlOm0sYWZ0ZXI6eH19fX0pO3ZhciBjNCx5Z3Q9YigoKT0+e1lhKCk7dWUoKTtxcygpO1VyKCk7YzQ9Y2xhc3MgZXh0ZW5kcyBNMXt0eXBlO2xldmVsO2xhc3RLbm93bkN1cnNvclBvc2l0aW9uPTA7bGFzdFNlbGVjdGVkVGV4dD0iIjtzZWxlY3Rpb25IYW5kbGVyPW51bGw7Y29uc3RydWN0b3IoZSl7c3VwZXIoKSx0aGlzLnR5cGU9ZSx0aGlzLmxldmVsPXBhcnNlSW50KGUuc3BsaXQoIi0iKVsxXSl9cmVuZGVyKGUsYSl7bGV0IGk9YT8iIHNlbGVjdGVkIjoiIixyPXRoaXMuZ2V0UGxhY2Vob2xkZXIoKTtyZXR1cm5gCiAgICAgIDxkaXYKICAgICAgICBjbGFzcz0iYmxvY2sgaGVhZGluZy0ke3RoaXMubGV2ZWx9JHtpfSIKICAgICAgICBjb250ZW50ZWRpdGFibGU9InRydWUiCiAgICAgICAgZGF0YS1wbGFjZWhvbGRlcj0iJHtyfSIKICAgICAgICBkYXRhLWJsb2NrLWlkPSIke2UuaWR9IgogICAgICAgIGRhdGEtYmxvY2stdHlwZT0iJHtlLnR5cGV9IgogICAgICA+PC9kaXY+CiAgICBgfXNldHVwKGUsYSxpKXtsZXQgcj1lLnF1ZXJ5U2VsZWN0b3IoYC5ibG9jay5oZWFkaW5nLSR7dGhpcy5sZXZlbH1gKTtpZighcil7Y29uc29sZS5lcnJvcigiSGVhZGluZ0Jsb2NrSGFuZGxlci5zZXR1cDogTm8gaGVhZGluZyBibG9jayBlbGVtZW50IGZvdW5kIik7cmV0dXJufWEuY29udGVudCYmIXIuaW5uZXJIVE1MJiYoci5pbm5lckhUTUw9YS5jb250ZW50KSxyLmFkZEV2ZW50TGlzdGVuZXIoImlucHV0IixzPT57aS5vbklucHV0KHMpO2xldCBuPXRoaXMuZ2V0Q3Vyc29yUG9zaXRpb24oZSk7biE9PW51bGwmJih0aGlzLmxhc3RLbm93bkN1cnNvclBvc2l0aW9uPW4pfSksci5hZGRFdmVudExpc3RlbmVyKCJrZXlkb3duIixzPT57bGV0IG49dGhpcy5nZXRDdXJzb3JQb3NpdGlvbihlKTtuIT09bnVsbCYmKHRoaXMubGFzdEtub3duQ3Vyc29yUG9zaXRpb249biksaS5vbktleURvd24ocyl9KSxyLmFkZEV2ZW50TGlzdGVuZXIoImZvY3VzIiwoKT0+e2kub25Gb2N1cygpfSksci5hZGRFdmVudExpc3RlbmVyKCJibHVyIiwoKT0+e2kub25CbHVyKCl9KSxyLmFkZEV2ZW50TGlzdGVuZXIoImNvbXBvc2l0aW9uc3RhcnQiLCgpPT57aS5vbkNvbXBvc2l0aW9uU3RhcnQoKX0pLHIuYWRkRXZlbnRMaXN0ZW5lcigiY29tcG9zaXRpb25lbmQiLCgpPT57aS5vbkNvbXBvc2l0aW9uRW5kKCl9KSxyLmFkZEV2ZW50TGlzdGVuZXIoIm1vdXNldXAiLHM9PntsZXQgbj10aGlzLmdldEN1cnNvclBvc2l0aW9uKGUpO24hPT1udWxsJiYodGhpcy5sYXN0S25vd25DdXJzb3JQb3NpdGlvbj1uKSxpLm9uTW91c2VVcD8uKHMpfSksci5hZGRFdmVudExpc3RlbmVyKCJjbGljayIscz0+e3NldFRpbWVvdXQoKCk9PntsZXQgbj10aGlzLmdldEN1cnNvclBvc2l0aW9uKGUpO24hPT1udWxsJiYodGhpcy5sYXN0S25vd25DdXJzb3JQb3NpdGlvbj1uKX0sMCl9KSxyLmFkZEV2ZW50TGlzdGVuZXIoImtleXVwIixzPT57bGV0IG49dGhpcy5nZXRDdXJzb3JQb3NpdGlvbihlKTtuIT09bnVsbCYmKHRoaXMubGFzdEtub3duQ3Vyc29yUG9zaXRpb249bil9KSx0aGlzLnNldHVwU2VsZWN0aW9uSGFuZGxlcihlLHIsYSl9c2V0dXBTZWxlY3Rpb25IYW5kbGVyKGUsYSxpKXtsZXQgcj0oKT0+e2xldCBuPXdpbmRvdy5nZXRTZWxlY3Rpb24oKTtpZighbnx8bi5yYW5nZUNvdW50PT09MClyZXR1cm47bGV0IG89bi50b1N0cmluZygpO2lmKG8ubGVuZ3RoPT09MCl7dGhpcy5sYXN0U2VsZWN0ZWRUZXh0JiYodGhpcy5sYXN0U2VsZWN0ZWRUZXh0PSIiLHRoaXMuZGlzcGF0Y2hTZWxlY3Rpb25FdmVudChlLHt0ZXh0OiIiLGJsb2NrSWQ6aS5pZCxoYXNTZWxlY3Rpb246ITF9KSk7cmV0dXJufWxldCBkPWEuZ2V0Um9vdE5vZGUoKS5ob3N0LGg9ZD8uY2xvc2VzdCgiZGVlcy1pbnB1dC13eXNpd3lnIik/LnNoYWRvd1Jvb3QsbD1kPy5zaGFkb3dSb290LGY9W107aCYmZi5wdXNoKGgpLGwmJmYucHVzaChsKTtsZXQgZz1SZS5nZXRTZWxlY3Rpb25JbmZvKC4uLmYpO2lmKCFnKXJldHVybjtsZXQgeT1SZS5jb250YWluc0Fjcm9zc1NoYWRvd0RPTShhLGcuc3RhcnRDb250YWluZXIpLHY9UmUuY29udGFpbnNBY3Jvc3NTaGFkb3dET00oYSxnLmVuZENvbnRhaW5lcik7aWYoeXx8dil7aWYobyE9PXRoaXMubGFzdFNlbGVjdGVkVGV4dCl7dGhpcy5sYXN0U2VsZWN0ZWRUZXh0PW87bGV0IG09UmUuY3JlYXRlUmFuZ2VGcm9tSW5mbyhnKSx4PW0uZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7dGhpcy5kaXNwYXRjaFNlbGVjdGlvbkV2ZW50KGUse3RleHQ6by50cmltKCksYmxvY2tJZDppLmlkLHJhbmdlOm0scmVjdDp4LGhhc1NlbGVjdGlvbjohMH0pfX1lbHNlIHRoaXMubGFzdFNlbGVjdGVkVGV4dCYmKHRoaXMubGFzdFNlbGVjdGVkVGV4dD0iIix0aGlzLmRpc3BhdGNoU2VsZWN0aW9uRXZlbnQoZSx7dGV4dDoiIixibG9ja0lkOmkuaWQsaGFzU2VsZWN0aW9uOiExfSkpfTtkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCJzZWxlY3Rpb25jaGFuZ2UiLHIpLHRoaXMuc2VsZWN0aW9uSGFuZGxlcj1yO2xldCBzPWEuZ2V0Um9vdE5vZGUoKS5ob3N0O2lmKHMpe2xldCBuPXMuZGlzY29ubmVjdGVkQ2FsbGJhY2s7cy5kaXNjb25uZWN0ZWRDYWxsYmFjaz1hc3luYyBmdW5jdGlvbigpe3RoaXMuc2VsZWN0aW9uSGFuZGxlciYmKGRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoInNlbGVjdGlvbmNoYW5nZSIsdGhpcy5zZWxlY3Rpb25IYW5kbGVyKSx0aGlzLnNlbGVjdGlvbkhhbmRsZXI9bnVsbCksbiYmYXdhaXQgbi5jYWxsKHMpfS5iaW5kKHRoaXMpfX1kaXNwYXRjaFNlbGVjdGlvbkV2ZW50KGUsYSl7bGV0IGk9bmV3IEN1c3RvbUV2ZW50KCJibG9jay10ZXh0LXNlbGVjdGVkIix7ZGV0YWlsOmEsYnViYmxlczohMCxjb21wb3NlZDohMH0pO2UuZGlzcGF0Y2hFdmVudChpKX1nZXRTdHlsZXMoKXtyZXR1cm5gCiAgICAgIC5ibG9jay5oZWFkaW5nLTEgewogICAgICAgIGZvbnQtc2l6ZTogMzJweDsKICAgICAgICBmb250LXdlaWdodDogNzAwOwogICAgICAgIGxpbmUtaGVpZ2h0OiAxLjI7CiAgICAgICAgbWFyZ2luOiAyNHB4IDAgOHB4IDA7CiAgICAgICAgY29sb3I6ICR7cC5iZFRoZW1lKCIjMDAwMDAwIiwiI2ZmZmZmZiIpfTsKICAgICAgfQoKICAgICAgLmJsb2NrLmhlYWRpbmctMiB7CiAgICAgICAgZm9udC1zaXplOiAyNHB4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7CiAgICAgICAgbGluZS1oZWlnaHQ6IDEuMzsKICAgICAgICBtYXJnaW46IDIwcHggMCA2cHggMDsKICAgICAgICBjb2xvcjogJHtwLmJkVGhlbWUoIiMwMDAwMDAiLCIjZmZmZmZmIil9OwogICAgICB9CgogICAgICAuYmxvY2suaGVhZGluZy0zIHsKICAgICAgICBmb250LXNpemU6IDIwcHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDsKICAgICAgICBsaW5lLWhlaWdodDogMS40OwogICAgICAgIG1hcmdpbjogMTZweCAwIDRweCAwOwogICAgICAgIGNvbG9yOiAke3AuYmRUaGVtZSgiIzAwMDAwMCIsIiNmZmZmZmYiKX07CiAgICAgIH0KICAgIGB9Z2V0UGxhY2Vob2xkZXIoKXtzd2l0Y2godGhpcy5sZXZlbCl7Y2FzZSAxOnJldHVybiJIZWFkaW5nIDEiO2Nhc2UgMjpyZXR1cm4iSGVhZGluZyAyIjtjYXNlIDM6cmV0dXJuIkhlYWRpbmcgMyI7ZGVmYXVsdDpyZXR1cm4iSGVhZGluZyJ9fWdldExhc3RUZXh0Tm9kZShlKXtpZihlLm5vZGVUeXBlPT09Tm9kZS5URVhUX05PREUpcmV0dXJuIGU7Zm9yKGxldCBhPWUuY2hpbGROb2Rlcy5sZW5ndGgtMTthPj0wO2EtLSl7bGV0IGk9dGhpcy5nZXRMYXN0VGV4dE5vZGUoZS5jaGlsZE5vZGVzW2FdKTtpZihpKXJldHVybiBpfXJldHVybiBudWxsfWdldEN1cnNvclBvc2l0aW9uKGUsYSl7bGV0IGk9ZS5xdWVyeVNlbGVjdG9yKGAuYmxvY2suaGVhZGluZy0ke3RoaXMubGV2ZWx9YCk7aWYoIWkpcmV0dXJuIG51bGw7bGV0IG49YT8uY29tcG9uZW50Py5jbG9zZXN0KCJkZWVzLWlucHV0LXd5c2l3eWciKT8uc2hhZG93Um9vdCxvPWE/LnNoYWRvd1Jvb3QsZD1bXTtuJiZkLnB1c2gobiksbyYmZC5wdXNoKG8pO2xldCBjPVJlLmdldFNlbGVjdGlvbkluZm8oLi4uZCk7aWYoIWN8fCFSZS5jb250YWluc0Fjcm9zc1NoYWRvd0RPTShpLGMuc3RhcnRDb250YWluZXIpKXJldHVybiBudWxsO2xldCBoPWRvY3VtZW50LmNyZWF0ZVJhbmdlKCk7cmV0dXJuIGguc2VsZWN0Tm9kZUNvbnRlbnRzKGkpLGguc2V0RW5kKGMuc3RhcnRDb250YWluZXIsYy5zdGFydE9mZnNldCksaC50b1N0cmluZygpLmxlbmd0aH1nZXRDb250ZW50KGUsYSl7bGV0IGk9ZS5xdWVyeVNlbGVjdG9yKGAuYmxvY2suaGVhZGluZy0ke3RoaXMubGV2ZWx9YCk7cmV0dXJuIGkmJmkuaW5uZXJIVE1MfHwiIn1zZXRDb250ZW50KGUsYSxpKXtsZXQgcj1lLnF1ZXJ5U2VsZWN0b3IoYC5ibG9jay5oZWFkaW5nLSR7dGhpcy5sZXZlbH1gKTtpZighcilyZXR1cm47bGV0IHM9ZG9jdW1lbnQuYWN0aXZlRWxlbWVudD09PXJ8fGUuc2hhZG93Um9vdD8uYWN0aXZlRWxlbWVudD09PXI7ci5pbm5lckhUTUw9YSxzJiZyLmZvY3VzKCl9c2V0Q3Vyc29yVG9TdGFydChlLGEpe2xldCBpPWUucXVlcnlTZWxlY3RvcihgLmJsb2NrLmhlYWRpbmctJHt0aGlzLmxldmVsfWApO2kmJkEyLnNldEN1cnNvclRvU3RhcnQoaSl9c2V0Q3Vyc29yVG9FbmQoZSxhKXtsZXQgaT1lLnF1ZXJ5U2VsZWN0b3IoYC5ibG9jay5oZWFkaW5nLSR7dGhpcy5sZXZlbH1gKTtpJiZBMi5zZXRDdXJzb3JUb0VuZChpKX1mb2N1cyhlLGEpe2xldCBpPWUucXVlcnlTZWxlY3RvcihgLmJsb2NrLmhlYWRpbmctJHt0aGlzLmxldmVsfWApO2kmJihpLmhhc0F0dHJpYnV0ZSgiY29udGVudGVkaXRhYmxlIil8fGkuc2V0QXR0cmlidXRlKCJjb250ZW50ZWRpdGFibGUiLCJ0cnVlIiksaS5mb2N1cygpLGRvY3VtZW50LmFjdGl2ZUVsZW1lbnQhPT1pJiZlLnNoYWRvd1Jvb3Q/LmFjdGl2ZUVsZW1lbnQhPT1pJiZQcm9taXNlLnJlc29sdmUoKS50aGVuKCgpPT57aS5mb2N1cygpfSkpfWZvY3VzV2l0aEN1cnNvcihlLGE9ImVuZCIsaSl7bGV0IHI9ZS5xdWVyeVNlbGVjdG9yKGAuYmxvY2suaGVhZGluZy0ke3RoaXMubGV2ZWx9YCk7aWYoIXIpcmV0dXJuO2lmKHIuaGFzQXR0cmlidXRlKCJjb250ZW50ZWRpdGFibGUiKXx8ci5zZXRBdHRyaWJ1dGUoImNvbnRlbnRlZGl0YWJsZSIsInRydWUiKSxhPT09ImVuZCImJnIudGV4dENvbnRlbnQmJnIudGV4dENvbnRlbnQubGVuZ3RoPjApe2xldCBuPXdpbmRvdy5nZXRTZWxlY3Rpb24oKTtpZihuKXtsZXQgbz1kb2N1bWVudC5jcmVhdGVSYW5nZSgpLGQ9dGhpcy5nZXRMYXN0VGV4dE5vZGUocil8fHI7ZC5ub2RlVHlwZT09PU5vZGUuVEVYVF9OT0RFPyhvLnNldFN0YXJ0KGQsZC50ZXh0Q29udGVudD8ubGVuZ3RofHwwKSxvLnNldEVuZChkLGQudGV4dENvbnRlbnQ/Lmxlbmd0aHx8MCkpOihvLnNlbGVjdE5vZGVDb250ZW50cyhkKSxvLmNvbGxhcHNlKCExKSksbi5yZW1vdmVBbGxSYW5nZXMoKSxuLmFkZFJhbmdlKG8pfX1yLmZvY3VzKCk7bGV0IHM9KCk9PnthPT09InN0YXJ0Ij90aGlzLnNldEN1cnNvclRvU3RhcnQoZSxpKTphPT09ImVuZCImJighci50ZXh0Q29udGVudHx8ci50ZXh0Q29udGVudC5sZW5ndGg9PT0wKT90aGlzLnNldEN1cnNvclRvRW5kKGUsaSk6dHlwZW9mIGE9PSJudW1iZXIiJiZSZS5zZXRDdXJzb3JQb3NpdGlvbihyLGEpfTtkb2N1bWVudC5hY3RpdmVFbGVtZW50PT09cnx8ZS5zaGFkb3dSb290Py5hY3RpdmVFbGVtZW50PT09cj9zKCk6UHJvbWlzZS5yZXNvbHZlKCkudGhlbigoKT0+e2RvY3VtZW50LmFjdGl2ZUVsZW1lbnQ9PT1yfHxlLnNoYWRvd1Jvb3Q/LmFjdGl2ZUVsZW1lbnQ9PT1yP3MoKTpzZXRUaW1lb3V0KCgpPT57KGRvY3VtZW50LmFjdGl2ZUVsZW1lbnQ9PT1yfHxlLnNoYWRvd1Jvb3Q/LmFjdGl2ZUVsZW1lbnQ9PT1yKSYmcygpfSwxMCl9KX1nZXRTcGxpdENvbnRlbnQoZSxhKXtsZXQgaT1lLnF1ZXJ5U2VsZWN0b3IoYC5ibG9jay5oZWFkaW5nLSR7dGhpcy5sZXZlbH1gKTtpZighaSlyZXR1cm4gbnVsbDtsZXQgbj1hPy5jb21wb25lbnQ/LmNsb3Nlc3QoImRlZXMtaW5wdXQtd3lzaXd5ZyIpPy5zaGFkb3dSb290LG89YT8uc2hhZG93Um9vdCxkPVtdO24mJmQucHVzaChuKSxvJiZkLnB1c2gobyk7bGV0IGM9UmUuZ2V0U2VsZWN0aW9uSW5mbyguLi5kKTtpZighYyl7aWYodGhpcy5sYXN0S25vd25DdXJzb3JQb3NpdGlvbiE9PW51bGwpe2xldCBNPWkudGV4dENvbnRlbnR8fCIiLFM9TWF0aC5taW4odGhpcy5sYXN0S25vd25DdXJzb3JQb3NpdGlvbixNLmxlbmd0aCk7cmV0dXJue2JlZm9yZTpNLnN1YnN0cmluZygwLFMpLGFmdGVyOk0uc3Vic3RyaW5nKFMpfX1yZXR1cm4gbnVsbH1pZighUmUuY29udGFpbnNBY3Jvc3NTaGFkb3dET00oaSxjLnN0YXJ0Q29udGFpbmVyKSl7aWYodGhpcy5sYXN0S25vd25DdXJzb3JQb3NpdGlvbiE9PW51bGwpe2xldCBNPWkudGV4dENvbnRlbnR8fCIiLFM9TWF0aC5taW4odGhpcy5sYXN0S25vd25DdXJzb3JQb3NpdGlvbixNLmxlbmd0aCk7cmV0dXJue2JlZm9yZTpNLnN1YnN0cmluZygwLFMpLGFmdGVyOk0uc3Vic3RyaW5nKFMpfX1yZXR1cm4gbnVsbH1sZXQgaD10aGlzLmdldEN1cnNvclBvc2l0aW9uKGUsYSk7aWYoaD09PW51bGx8fGg9PT0wKXJldHVybntiZWZvcmU6IiIsYWZ0ZXI6aS5pbm5lckhUTUx9O2xldCBsPWRvY3VtZW50LmNyZWF0ZVJhbmdlKCksZj1kb2N1bWVudC5jcmVhdGVSYW5nZSgpO2wuc2V0U3RhcnQoaSwwKSxsLnNldEVuZChjLnN0YXJ0Q29udGFpbmVyLGMuc3RhcnRPZmZzZXQpLGYuc2V0U3RhcnQoYy5zdGFydENvbnRhaW5lcixjLnN0YXJ0T2Zmc2V0KSxmLnNldEVuZChpLGkuY2hpbGROb2Rlcy5sZW5ndGgpO2xldCBnPWwuY2xvbmVDb250ZW50cygpLHk9Zi5jbG9uZUNvbnRlbnRzKCksdj1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTt2LmFwcGVuZENoaWxkKGcpO2xldCBtPXYuaW5uZXJIVE1MO3YuaW5uZXJIVE1MPSIiLHYuYXBwZW5kQ2hpbGQoeSk7bGV0IHg9di5pbm5lckhUTUw7cmV0dXJue2JlZm9yZTptLGFmdGVyOnh9fX19KTt2YXIgQTgseGd0PWIoKCk9PntZYSgpO3VlKCk7cXMoKTtVcigpO0E4PWNsYXNzIGV4dGVuZHMgTTF7dHlwZT0icXVvdGUiO2xhc3RLbm93bkN1cnNvclBvc2l0aW9uPTA7bGFzdFNlbGVjdGVkVGV4dD0iIjtzZWxlY3Rpb25IYW5kbGVyPW51bGw7cmVuZGVyKGUsYSl7bGV0IGk9YT8iIHNlbGVjdGVkIjoiIixyPXRoaXMuZ2V0UGxhY2Vob2xkZXIoKTtyZXR1cm5gCiAgICAgIDxkaXYKICAgICAgICBjbGFzcz0iYmxvY2sgcXVvdGUke2l9IgogICAgICAgIGNvbnRlbnRlZGl0YWJsZT0idHJ1ZSIKICAgICAgICBkYXRhLXBsYWNlaG9sZGVyPSIke3J9IgogICAgICAgIGRhdGEtYmxvY2staWQ9IiR7ZS5pZH0iCiAgICAgICAgZGF0YS1ibG9jay10eXBlPSIke2UudHlwZX0iCiAgICAgID48L2Rpdj4KICAgIGB9c2V0dXAoZSxhLGkpe2xldCByPWUucXVlcnlTZWxlY3RvcigiLmJsb2NrLnF1b3RlIik7aWYoIXIpe2NvbnNvbGUuZXJyb3IoIlF1b3RlQmxvY2tIYW5kbGVyLnNldHVwOiBObyBxdW90ZSBibG9jayBlbGVtZW50IGZvdW5kIik7cmV0dXJufWEuY29udGVudCYmIXIuaW5uZXJIVE1MJiYoci5pbm5lckhUTUw9YS5jb250ZW50KSxyLmFkZEV2ZW50TGlzdGVuZXIoImlucHV0IixzPT57aS5vbklucHV0KHMpO2xldCBuPXRoaXMuZ2V0Q3Vyc29yUG9zaXRpb24oZSk7biE9PW51bGwmJih0aGlzLmxhc3RLbm93bkN1cnNvclBvc2l0aW9uPW4pfSksci5hZGRFdmVudExpc3RlbmVyKCJrZXlkb3duIixzPT57bGV0IG49dGhpcy5nZXRDdXJzb3JQb3NpdGlvbihlKTtuIT09bnVsbCYmKHRoaXMubGFzdEtub3duQ3Vyc29yUG9zaXRpb249biksaS5vbktleURvd24ocyl9KSxyLmFkZEV2ZW50TGlzdGVuZXIoImZvY3VzIiwoKT0+e2kub25Gb2N1cygpfSksci5hZGRFdmVudExpc3RlbmVyKCJibHVyIiwoKT0+e2kub25CbHVyKCl9KSxyLmFkZEV2ZW50TGlzdGVuZXIoImNvbXBvc2l0aW9uc3RhcnQiLCgpPT57aS5vbkNvbXBvc2l0aW9uU3RhcnQoKX0pLHIuYWRkRXZlbnRMaXN0ZW5lcigiY29tcG9zaXRpb25lbmQiLCgpPT57aS5vbkNvbXBvc2l0aW9uRW5kKCl9KSxyLmFkZEV2ZW50TGlzdGVuZXIoIm1vdXNldXAiLHM9PntsZXQgbj10aGlzLmdldEN1cnNvclBvc2l0aW9uKGUpO24hPT1udWxsJiYodGhpcy5sYXN0S25vd25DdXJzb3JQb3NpdGlvbj1uKSxpLm9uTW91c2VVcD8uKHMpfSksci5hZGRFdmVudExpc3RlbmVyKCJjbGljayIscz0+e3NldFRpbWVvdXQoKCk9PntsZXQgbj10aGlzLmdldEN1cnNvclBvc2l0aW9uKGUpO24hPT1udWxsJiYodGhpcy5sYXN0S25vd25DdXJzb3JQb3NpdGlvbj1uKX0sMCl9KSxyLmFkZEV2ZW50TGlzdGVuZXIoImtleXVwIixzPT57bGV0IG49dGhpcy5nZXRDdXJzb3JQb3NpdGlvbihlKTtuIT09bnVsbCYmKHRoaXMubGFzdEtub3duQ3Vyc29yUG9zaXRpb249bil9KSx0aGlzLnNldHVwU2VsZWN0aW9uSGFuZGxlcihlLHIsYSl9c2V0dXBTZWxlY3Rpb25IYW5kbGVyKGUsYSxpKXtsZXQgcj0oKT0+e2xldCBuPXdpbmRvdy5nZXRTZWxlY3Rpb24oKTtpZighbnx8bi5yYW5nZUNvdW50PT09MClyZXR1cm47bGV0IG89bi50b1N0cmluZygpO2lmKG8ubGVuZ3RoPT09MCl7dGhpcy5sYXN0U2VsZWN0ZWRUZXh0JiYodGhpcy5sYXN0U2VsZWN0ZWRUZXh0PSIiLHRoaXMuZGlzcGF0Y2hTZWxlY3Rpb25FdmVudChlLHt0ZXh0OiIiLGJsb2NrSWQ6aS5pZCxoYXNTZWxlY3Rpb246ITF9KSk7cmV0dXJufWxldCBkPWEuZ2V0Um9vdE5vZGUoKS5ob3N0LGg9ZD8uY2xvc2VzdCgiZGVlcy1pbnB1dC13eXNpd3lnIik/LnNoYWRvd1Jvb3QsbD1kPy5zaGFkb3dSb290LGY9W107aCYmZi5wdXNoKGgpLGwmJmYucHVzaChsKTtsZXQgZz1SZS5nZXRTZWxlY3Rpb25JbmZvKC4uLmYpO2lmKCFnKXJldHVybjtsZXQgeT1SZS5jb250YWluc0Fjcm9zc1NoYWRvd0RPTShhLGcuc3RhcnRDb250YWluZXIpLHY9UmUuY29udGFpbnNBY3Jvc3NTaGFkb3dET00oYSxnLmVuZENvbnRhaW5lcik7aWYoeXx8dil7aWYobyE9PXRoaXMubGFzdFNlbGVjdGVkVGV4dCl7dGhpcy5sYXN0U2VsZWN0ZWRUZXh0PW87bGV0IG09UmUuY3JlYXRlUmFuZ2VGcm9tSW5mbyhnKSx4PW0uZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7dGhpcy5kaXNwYXRjaFNlbGVjdGlvbkV2ZW50KGUse3RleHQ6by50cmltKCksYmxvY2tJZDppLmlkLHJhbmdlOm0scmVjdDp4LGhhc1NlbGVjdGlvbjohMH0pfX1lbHNlIHRoaXMubGFzdFNlbGVjdGVkVGV4dCYmKHRoaXMubGFzdFNlbGVjdGVkVGV4dD0iIix0aGlzLmRpc3BhdGNoU2VsZWN0aW9uRXZlbnQoZSx7dGV4dDoiIixibG9ja0lkOmkuaWQsaGFzU2VsZWN0aW9uOiExfSkpfTtkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCJzZWxlY3Rpb25jaGFuZ2UiLHIpLHRoaXMuc2VsZWN0aW9uSGFuZGxlcj1yO2xldCBzPWEuZ2V0Um9vdE5vZGUoKS5ob3N0O2lmKHMpe2xldCBuPXMuZGlzY29ubmVjdGVkQ2FsbGJhY2s7cy5kaXNjb25uZWN0ZWRDYWxsYmFjaz1hc3luYyBmdW5jdGlvbigpe3RoaXMuc2VsZWN0aW9uSGFuZGxlciYmKGRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoInNlbGVjdGlvbmNoYW5nZSIsdGhpcy5zZWxlY3Rpb25IYW5kbGVyKSx0aGlzLnNlbGVjdGlvbkhhbmRsZXI9bnVsbCksbiYmYXdhaXQgbi5jYWxsKHMpfS5iaW5kKHRoaXMpfX1kaXNwYXRjaFNlbGVjdGlvbkV2ZW50KGUsYSl7bGV0IGk9bmV3IEN1c3RvbUV2ZW50KCJibG9jay10ZXh0LXNlbGVjdGVkIix7ZGV0YWlsOmEsYnViYmxlczohMCxjb21wb3NlZDohMH0pO2UuZGlzcGF0Y2hFdmVudChpKX1nZXRTdHlsZXMoKXtyZXR1cm5gCiAgICAgIC8qIFF1b3RlIHNwZWNpZmljIHN0eWxlcyAqLwogICAgICAuYmxvY2sucXVvdGUgewogICAgICAgIGJvcmRlci1sZWZ0OiAzcHggc29saWQgJHtwLmJkVGhlbWUoIiMwMDY2Y2MiLCIjNGQ5NGZmIil9OwogICAgICAgIHBhZGRpbmctbGVmdDogMjBweDsKICAgICAgICBjb2xvcjogJHtwLmJkVGhlbWUoIiM1NTUiLCIjYjBiMGIwIil9OwogICAgICAgIGZvbnQtc3R5bGU6IGl0YWxpYzsKICAgICAgICBsaW5lLWhlaWdodDogMS42OwogICAgICAgIG1hcmdpbjogMTZweCAwOwogICAgICB9CiAgICBgfWdldFBsYWNlaG9sZGVyKCl7cmV0dXJuIkFkZCBhIHF1b3RlLi4uIn1nZXRDdXJzb3JQb3NpdGlvbihlLGEpe2xldCBpPWUucXVlcnlTZWxlY3RvcigiLmJsb2NrLnF1b3RlIik7aWYoIWkpcmV0dXJuIG51bGw7bGV0IG49YT8uY29tcG9uZW50Py5jbG9zZXN0KCJkZWVzLWlucHV0LXd5c2l3eWciKT8uc2hhZG93Um9vdCxvPWE/LnNoYWRvd1Jvb3QsZD1bXTtuJiZkLnB1c2gobiksbyYmZC5wdXNoKG8pO2xldCBjPVJlLmdldFNlbGVjdGlvbkluZm8oLi4uZCk7aWYoIWN8fCFSZS5jb250YWluc0Fjcm9zc1NoYWRvd0RPTShpLGMuc3RhcnRDb250YWluZXIpKXJldHVybiBudWxsO2xldCBoPWRvY3VtZW50LmNyZWF0ZVJhbmdlKCk7cmV0dXJuIGguc2VsZWN0Tm9kZUNvbnRlbnRzKGkpLGguc2V0RW5kKGMuc3RhcnRDb250YWluZXIsYy5zdGFydE9mZnNldCksaC50b1N0cmluZygpLmxlbmd0aH1nZXRDb250ZW50KGUsYSl7bGV0IGk9ZS5xdWVyeVNlbGVjdG9yKCIuYmxvY2sucXVvdGUiKTtyZXR1cm4gaSYmaS5pbm5lckhUTUx8fCIifXNldENvbnRlbnQoZSxhLGkpe2xldCByPWUucXVlcnlTZWxlY3RvcigiLmJsb2NrLnF1b3RlIik7aWYoIXIpcmV0dXJuO2xldCBzPWRvY3VtZW50LmFjdGl2ZUVsZW1lbnQ9PT1yfHxlLnNoYWRvd1Jvb3Q/LmFjdGl2ZUVsZW1lbnQ9PT1yO3IuaW5uZXJIVE1MPWEscyYmci5mb2N1cygpfXNldEN1cnNvclRvU3RhcnQoZSxhKXtsZXQgaT1lLnF1ZXJ5U2VsZWN0b3IoIi5ibG9jay5xdW90ZSIpO2kmJkEyLnNldEN1cnNvclRvU3RhcnQoaSl9c2V0Q3Vyc29yVG9FbmQoZSxhKXtsZXQgaT1lLnF1ZXJ5U2VsZWN0b3IoIi5ibG9jay5xdW90ZSIpO2kmJkEyLnNldEN1cnNvclRvRW5kKGkpfWZvY3VzKGUsYSl7bGV0IGk9ZS5xdWVyeVNlbGVjdG9yKCIuYmxvY2sucXVvdGUiKTtpJiYoaS5oYXNBdHRyaWJ1dGUoImNvbnRlbnRlZGl0YWJsZSIpfHxpLnNldEF0dHJpYnV0ZSgiY29udGVudGVkaXRhYmxlIiwidHJ1ZSIpLGkuZm9jdXMoKSxkb2N1bWVudC5hY3RpdmVFbGVtZW50IT09aSYmZS5zaGFkb3dSb290Py5hY3RpdmVFbGVtZW50IT09aSYmUHJvbWlzZS5yZXNvbHZlKCkudGhlbigoKT0+e2kuZm9jdXMoKX0pKX1mb2N1c1dpdGhDdXJzb3IoZSxhPSJlbmQiLGkpe2xldCByPWUucXVlcnlTZWxlY3RvcigiLmJsb2NrLnF1b3RlIik7aWYoIXIpcmV0dXJuO3IuaGFzQXR0cmlidXRlKCJjb250ZW50ZWRpdGFibGUiKXx8ci5zZXRBdHRyaWJ1dGUoImNvbnRlbnRlZGl0YWJsZSIsInRydWUiKSxyLmZvY3VzKCk7bGV0IHM9KCk9PnthPT09InN0YXJ0Ij90aGlzLnNldEN1cnNvclRvU3RhcnQoZSxpKTphPT09ImVuZCI/dGhpcy5zZXRDdXJzb3JUb0VuZChlLGkpOnR5cGVvZiBhPT0ibnVtYmVyIiYmUmUuc2V0Q3Vyc29yUG9zaXRpb24ocixhKX07ZG9jdW1lbnQuYWN0aXZlRWxlbWVudD09PXJ8fGUuc2hhZG93Um9vdD8uYWN0aXZlRWxlbWVudD09PXI/cygpOlByb21pc2UucmVzb2x2ZSgpLnRoZW4oKCk9PnsoZG9jdW1lbnQuYWN0aXZlRWxlbWVudD09PXJ8fGUuc2hhZG93Um9vdD8uYWN0aXZlRWxlbWVudD09PXIpJiZzKCl9KX1nZXRTcGxpdENvbnRlbnQoZSxhKXtsZXQgaT1lLnF1ZXJ5U2VsZWN0b3IoIi5ibG9jay5xdW90ZSIpO2lmKCFpKXJldHVybiBudWxsO2xldCBuPWE/LmNvbXBvbmVudD8uY2xvc2VzdCgiZGVlcy1pbnB1dC13eXNpd3lnIik/LnNoYWRvd1Jvb3Qsbz1hPy5zaGFkb3dSb290LGQ9W107biYmZC5wdXNoKG4pLG8mJmQucHVzaChvKTtsZXQgYz1SZS5nZXRTZWxlY3Rpb25JbmZvKC4uLmQpO2lmKCFjKXtpZih0aGlzLmxhc3RLbm93bkN1cnNvclBvc2l0aW9uIT09bnVsbCl7bGV0IE09aS50ZXh0Q29udGVudHx8IiIsUz1NYXRoLm1pbih0aGlzLmxhc3RLbm93bkN1cnNvclBvc2l0aW9uLE0ubGVuZ3RoKTtyZXR1cm57YmVmb3JlOk0uc3Vic3RyaW5nKDAsUyksYWZ0ZXI6TS5zdWJzdHJpbmcoUyl9fXJldHVybiBudWxsfWlmKCFSZS5jb250YWluc0Fjcm9zc1NoYWRvd0RPTShpLGMuc3RhcnRDb250YWluZXIpKXtpZih0aGlzLmxhc3RLbm93bkN1cnNvclBvc2l0aW9uIT09bnVsbCl7bGV0IE09aS50ZXh0Q29udGVudHx8IiIsUz1NYXRoLm1pbih0aGlzLmxhc3RLbm93bkN1cnNvclBvc2l0aW9uLE0ubGVuZ3RoKTtyZXR1cm57YmVmb3JlOk0uc3Vic3RyaW5nKDAsUyksYWZ0ZXI6TS5zdWJzdHJpbmcoUyl9fXJldHVybiBudWxsfWxldCBoPXRoaXMuZ2V0Q3Vyc29yUG9zaXRpb24oZSxhKTtpZihoPT09bnVsbHx8aD09PTApcmV0dXJue2JlZm9yZToiIixhZnRlcjppLmlubmVySFRNTH07bGV0IGw9ZG9jdW1lbnQuY3JlYXRlUmFuZ2UoKSxmPWRvY3VtZW50LmNyZWF0ZVJhbmdlKCk7bC5zZXRTdGFydChpLDApLGwuc2V0RW5kKGMuc3RhcnRDb250YWluZXIsYy5zdGFydE9mZnNldCksZi5zZXRTdGFydChjLnN0YXJ0Q29udGFpbmVyLGMuc3RhcnRPZmZzZXQpLGYuc2V0RW5kKGksaS5jaGlsZE5vZGVzLmxlbmd0aCk7bGV0IGc9bC5jbG9uZUNvbnRlbnRzKCkseT1mLmNsb25lQ29udGVudHMoKSx2PWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpO3YuYXBwZW5kQ2hpbGQoZyk7bGV0IG09di5pbm5lckhUTUw7di5pbm5lckhUTUw9IiIsdi5hcHBlbmRDaGlsZCh5KTtsZXQgeD12LmlubmVySFRNTDtyZXR1cm57YmVmb3JlOm0sYWZ0ZXI6eH19fX0pO3ZhciBEOCx3Z3Q9YigoKT0+e1lhKCk7dWUoKTtVcigpO2RhKCk7cncoKTt1bygpO0Q4PWNsYXNzIGV4dGVuZHMgTTF7dHlwZT0iY29kZSI7aGlnaGxpZ2h0VGltZXI9bnVsbDtoaWdobGlnaHRKcz1udWxsO3JlbmRlcihlLGEpe2xldCBpPWUubWV0YWRhdGE/Lmxhbmd1YWdlfHwidHlwZXNjcmlwdCIscj1lLmNvbnRlbnR8fCIiLHM9ci5zcGxpdChgCmApLmxlbmd0aCxuPSIiO2ZvcihsZXQgZD0xO2Q8PXM7ZCsrKW4rPWA8ZGl2IGNsYXNzPSJsaW5lLW51bWJlciI+JHtkfTwvZGl2PmA7bGV0IG89VDgubWFwKGQ9PntsZXQgYz1kLnRvTG93ZXJDYXNlKCk7cmV0dXJuYDxvcHRpb24gdmFsdWU9IiR7Y30iICR7Yz09PWk/InNlbGVjdGVkIjoiIn0+JHtkfTwvb3B0aW9uPmB9KS5qb2luKCIiKTtyZXR1cm5gCiAgICAgIDxkaXYgY2xhc3M9ImNvZGUtYmxvY2stY29udGFpbmVyJHthPyIgc2VsZWN0ZWQiOiIifSIgZGF0YS1sYW5ndWFnZT0iJHtpfSI+CiAgICAgICAgPGRpdiBjbGFzcz0iY29kZS1oZWFkZXIiPgogICAgICAgICAgPHNlbGVjdCBjbGFzcz0ibGFuZ3VhZ2Utc2VsZWN0b3IiIGRhdGEtYmxvY2staWQ9IiR7ZS5pZH0iPgogICAgICAgICAgICAke299CiAgICAgICAgICA8L3NlbGVjdD4KICAgICAgICAgIDxidXR0b24gY2xhc3M9ImNvcHktYnV0dG9uIiB0aXRsZT0iQ29weSBjb2RlIj4KICAgICAgICAgICAgPHN2ZyBjbGFzcz0iY29weS1pY29uIiB3aWR0aD0iMTYiIGhlaWdodD0iMTYiIHZpZXdCb3g9IjAgMCAxNiAxNiIgZmlsbD0iY3VycmVudENvbG9yIj4KICAgICAgICAgICAgICA8cGF0aCBkPSJNMCA2Ljc1QzAgNS43ODQuNzg0IDUgMS43NSA1aDEuNWEuNzUuNzUgMCAwMTAgMS41aC0xLjVhLjI1LjI1IDAgMDAtLjI1LjI1djcuNWMwIC4xMzguMTEyLjI1LjI1LjI1aDcuNWEuMjUuMjUgMCAwMC4yNS0uMjV2LTEuNWEuNzUuNzUgMCAwMTEuNSAwdjEuNUExLjc1IDEuNzUgMCAwMTkuMjUgMTZoLTcuNUExLjc1IDEuNzUgMCAwMTAgMTQuMjV2LTcuNXoiPjwvcGF0aD4KICAgICAgICAgICAgICA8cGF0aCBkPSJNNSAxLjc1QzUgLjc4NCA1Ljc4NCAwIDYuNzUgMGg3LjVDMTUuMjE2IDAgMTYgLjc4NCAxNiAxLjc1djcuNUExLjc1IDEuNzUgMCAwMTE0LjI1IDExaC03LjVBMS43NSAxLjc1IDAgMDE1IDkuMjV2LTcuNXptMS43NS0uMjVhLjI1LjI1IDAgMDAtLjI1LjI1djcuNWMwIC4xMzguMTEyLjI1LjI1LjI1aDcuNWEuMjUuMjUgMCAwMC4yNS0uMjV2LTcuNWEuMjUuMjUgMCAwMC0uMjUtLjI1aC03LjV6Ij48L3BhdGg+CiAgICAgICAgICAgIDwvc3ZnPgogICAgICAgICAgICA8c3BhbiBjbGFzcz0iY29weS10ZXh0Ij5Db3B5PC9zcGFuPgogICAgICAgICAgPC9idXR0b24+CiAgICAgICAgPC9kaXY+CiAgICAgICAgPGRpdiBjbGFzcz0iY29kZS1ib2R5Ij4KICAgICAgICAgIDxkaXYgY2xhc3M9ImxpbmUtbnVtYmVycyI+JHtufTwvZGl2PgogICAgICAgICAgPGRpdiBjbGFzcz0iY29kZS1jb250ZW50Ij4KICAgICAgICAgICAgPHByZSBjbGFzcz0iY29kZS1wcmUiPjxjb2RlIGNsYXNzPSJjb2RlLWVkaXRvciIgCiAgICAgICAgICAgICAgICAgY29udGVudGVkaXRhYmxlPSJ0cnVlIgogICAgICAgICAgICAgICAgIGRhdGEtYmxvY2staWQ9IiR7ZS5pZH0iCiAgICAgICAgICAgICAgICAgZGF0YS1ibG9jay10eXBlPSIke2UudHlwZX0iCiAgICAgICAgICAgICAgICAgc3BlbGxjaGVjaz0iZmFsc2UiPiR7dGhpcy5lc2NhcGVIdG1sKHIpfTwvY29kZT48L3ByZT4KICAgICAgICAgIDwvZGl2PgogICAgICAgIDwvZGl2PgogICAgICA8L2Rpdj4KICAgIGB9c2V0dXAoZSxhLGkpe2xldCByPWUucXVlcnlTZWxlY3RvcigiLmNvZGUtZWRpdG9yIikscz1lLnF1ZXJ5U2VsZWN0b3IoIi5jb2RlLWJsb2NrLWNvbnRhaW5lciIpLG49ZS5xdWVyeVNlbGVjdG9yKCIuY29weS1idXR0b24iKSxvPWUucXVlcnlTZWxlY3RvcigiLmxhbmd1YWdlLXNlbGVjdG9yIik7aWYoIXJ8fCFzKXJldHVybjtvJiZvLmFkZEV2ZW50TGlzdGVuZXIoImNoYW5nZSIsYz0+e2xldCBoPWMudGFyZ2V0LnZhbHVlO2EubWV0YWRhdGE9ey4uLmEubWV0YWRhdGEsbGFuZ3VhZ2U6aH0scy5zZXRBdHRyaWJ1dGUoImRhdGEtbGFuZ3VhZ2UiLGgpLGEuY29udGVudCYmZG9jdW1lbnQuYWN0aXZlRWxlbWVudCE9PXImJnRoaXMuYXBwbHlIaWdobGlnaHRpbmcoZSxhKSxpLm9uSW5wdXQmJmkub25JbnB1dChuZXcgSW5wdXRFdmVudCgiaW5wdXQiKSl9KSxuJiZuLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIixhc3luYygpPT57bGV0IGM9ci50ZXh0Q29udGVudHx8IiI7dHJ5e2F3YWl0IG5hdmlnYXRvci5jbGlwYm9hcmQud3JpdGVUZXh0KGMpO2xldCBoPW4ucXVlcnlTZWxlY3RvcigiLmNvcHktdGV4dCIpLGw9aC50ZXh0Q29udGVudDtoLnRleHRDb250ZW50PSJDb3BpZWQhIixuLmNsYXNzTGlzdC5hZGQoImNvcGllZCIpLHNldFRpbWVvdXQoKCk9PntoLnRleHRDb250ZW50PWwsbi5jbGFzc0xpc3QucmVtb3ZlKCJjb3BpZWQiKX0sMmUzKX1jYXRjaChoKXtjb25zb2xlLmVycm9yKCJGYWlsZWQgdG8gY29weToiLGgpO2xldCBsPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInRleHRhcmVhIik7bC52YWx1ZT1jLGwuc3R5bGUucG9zaXRpb249ImZpeGVkIixsLnN0eWxlLm9wYWNpdHk9IjAiLGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQobCksbC5zZWxlY3QoKTt0cnl7ZG9jdW1lbnQuZXhlY0NvbW1hbmQoImNvcHkiKTtsZXQgZj1uLnF1ZXJ5U2VsZWN0b3IoIi5jb3B5LXRleHQiKSxnPWYudGV4dENvbnRlbnQ7Zi50ZXh0Q29udGVudD0iQ29waWVkISIsbi5jbGFzc0xpc3QuYWRkKCJjb3BpZWQiKSxzZXRUaW1lb3V0KCgpPT57Zi50ZXh0Q29udGVudD1nLG4uY2xhc3NMaXN0LnJlbW92ZSgiY29waWVkIil9LDJlMyl9Y2F0Y2goZil7Y29uc29sZS5lcnJvcigiRmFsbGJhY2sgY29weSBmYWlsZWQ6IixmKX1kb2N1bWVudC5ib2R5LnJlbW92ZUNoaWxkKGwpfX0pO2xldCBkPSExO3IuYWRkRXZlbnRMaXN0ZW5lcigiZm9jdXMiLCgpPT57ZD0hMCxzLmNsYXNzTGlzdC5hZGQoImVkaXRpbmciKTtsZXQgYz1yLnRleHRDb250ZW50fHwiIjtyLnRleHRDb250ZW50PWMscmVxdWVzdEFuaW1hdGlvbkZyYW1lKCgpPT57bGV0IGg9ZG9jdW1lbnQuY3JlYXRlUmFuZ2UoKSxsPXdpbmRvdy5nZXRTZWxlY3Rpb24oKTtyLmZpcnN0Q2hpbGQmJihoLnNldFN0YXJ0KHIuZmlyc3RDaGlsZCwwKSxoLmNvbGxhcHNlKCEwKSxsPy5yZW1vdmVBbGxSYW5nZXMoKSxsPy5hZGRSYW5nZShoKSl9KSxpLm9uRm9jdXMoKX0pLHIuYWRkRXZlbnRMaXN0ZW5lcigiYmx1ciIsKCk9PntkPSExLHMuY2xhc3NMaXN0LnJlbW92ZSgiZWRpdGluZyIpLHRoaXMuYXBwbHlIaWdobGlnaHRpbmcoZSxhKSxpLm9uQmx1cigpfSksci5hZGRFdmVudExpc3RlbmVyKCJpbnB1dCIsYz0+e2kub25JbnB1dChjKSx0aGlzLnVwZGF0ZUxpbmVOdW1iZXJzKGUpLGNsZWFyVGltZW91dCh0aGlzLmhpZ2hsaWdodFRpbWVyKX0pLHIuYWRkRXZlbnRMaXN0ZW5lcigia2V5ZG93biIsYz0+e2lmKGMua2V5PT09IlRhYiIpe2MucHJldmVudERlZmF1bHQoKTtsZXQgaD13aW5kb3cuZ2V0U2VsZWN0aW9uKCk7aWYoaCYmaC5yYW5nZUNvdW50PjApe2xldCBsPWguZ2V0UmFuZ2VBdCgwKSxmPWRvY3VtZW50LmNyZWF0ZVRleHROb2RlKCIgICIpO2wuaW5zZXJ0Tm9kZShmKSxsLnNldFN0YXJ0QWZ0ZXIoZiksbC5zZXRFbmRBZnRlcihmKSxoLnJlbW92ZUFsbFJhbmdlcygpLGguYWRkUmFuZ2UobCksaS5vbklucHV0KG5ldyBJbnB1dEV2ZW50KCJpbnB1dCIpKSx0aGlzLnVwZGF0ZUxpbmVOdW1iZXJzKGUpfXJldHVybn1pZihbIkFycm93TGVmdCIsIkFycm93UmlnaHQiLCJBcnJvd1VwIiwiQXJyb3dEb3duIl0uaW5jbHVkZXMoYy5rZXkpKXtsZXQgaD10aGlzLmdldEN1cnNvclBvc2l0aW9uKGUpLGw9ci50ZXh0Q29udGVudD8ubGVuZ3RofHwwO2lmKGMua2V5PT09IkFycm93TGVmdCImJmg9PT0wfHxjLmtleT09PSJBcnJvd1JpZ2h0IiYmaD09PWwpe2kub25LZXlEb3duKGMpO3JldHVybn1pZihjLmtleT09PSJBcnJvd1VwInx8Yy5rZXk9PT0iQXJyb3dEb3duIil7bGV0IGY9KHIudGV4dENvbnRlbnR8fCIiKS5zcGxpdChgCmApLGc9dGhpcy5nZXRDdXJyZW50TGluZUluZGV4KHIpO2lmKGMua2V5PT09IkFycm93VXAiJiZnPT09MHx8Yy5rZXk9PT0iQXJyb3dEb3duIiYmZz09PWYubGVuZ3RoLTEpe2kub25LZXlEb3duKGMpO3JldHVybn19fWkub25LZXlEb3duKGMpfSksci5hZGRFdmVudExpc3RlbmVyKCJwYXN0ZSIsYz0+e2MucHJldmVudERlZmF1bHQoKTtsZXQgaD1jLmNsaXBib2FyZERhdGE/LmdldERhdGEoInRleHQvcGxhaW4iKTtpZihoKXtsZXQgbD13aW5kb3cuZ2V0U2VsZWN0aW9uKCk7aWYobCYmbC5yYW5nZUNvdW50PjApe2xldCBmPWwuZ2V0UmFuZ2VBdCgwKTtmLmRlbGV0ZUNvbnRlbnRzKCk7bGV0IGc9ZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUoaCk7Zi5pbnNlcnROb2RlKGcpLGYuc2V0U3RhcnRBZnRlcihnKSxmLnNldEVuZEFmdGVyKGcpLGwucmVtb3ZlQWxsUmFuZ2VzKCksbC5hZGRSYW5nZShmKSxpLm9uSW5wdXQobmV3IElucHV0RXZlbnQoImlucHV0IikpLHRoaXMudXBkYXRlTGluZU51bWJlcnMoZSl9fX0pLHIuYWRkRXZlbnRMaXN0ZW5lcigiY29tcG9zaXRpb25zdGFydCIsKCk9Pmkub25Db21wb3NpdGlvblN0YXJ0KCkpLHIuYWRkRXZlbnRMaXN0ZW5lcigiY29tcG9zaXRpb25lbmQiLCgpPT5pLm9uQ29tcG9zaXRpb25FbmQoKSksYS5jb250ZW50JiZkb2N1bWVudC5hY3RpdmVFbGVtZW50IT09ciYmcmVxdWVzdEFuaW1hdGlvbkZyYW1lKCgpPT57dGhpcy5hcHBseUhpZ2hsaWdodGluZyhlLGEpfSl9dXBkYXRlTGluZU51bWJlcnMoZSl7bGV0IGE9ZS5xdWVyeVNlbGVjdG9yKCIuY29kZS1lZGl0b3IiKSxpPWUucXVlcnlTZWxlY3RvcigiLmxpbmUtbnVtYmVycyIpO2lmKCFhfHwhaSlyZXR1cm47bGV0IG49KGEudGV4dENvbnRlbnR8fCIiKS5zcGxpdChgCmApLmxlbmd0aHx8MSxvPSIiO2ZvcihsZXQgZD0xO2Q8PW47ZCsrKW8rPWA8ZGl2IGNsYXNzPSJsaW5lLW51bWJlciI+JHtkfTwvZGl2PmA7aS5pbm5lckhUTUw9b31nZXRDdXJyZW50TGluZUluZGV4KGUpe2xldCBhPXdpbmRvdy5nZXRTZWxlY3Rpb24oKTtpZighYXx8YS5yYW5nZUNvdW50PT09MClyZXR1cm4gMDtsZXQgaT1hLmdldFJhbmdlQXQoMCkscj1pLmNsb25lUmFuZ2UoKTtyZXR1cm4gci5zZWxlY3ROb2RlQ29udGVudHMoZSksci5zZXRFbmQoaS5zdGFydENvbnRhaW5lcixpLnN0YXJ0T2Zmc2V0KSxyLnRvU3RyaW5nKCkuc3BsaXQoYApgKS5sZW5ndGgtMX1hc3luYyBhcHBseUhpZ2hsaWdodGluZyhlLGEpe2xldCBpPWUucXVlcnlTZWxlY3RvcigiLmNvZGUtZWRpdG9yIik7aWYoIWkpcmV0dXJuO3RoaXMuaGlnaGxpZ2h0SnN8fCh0aGlzLmhpZ2hsaWdodEpzPWF3YWl0IEwyLmdldEluc3RhbmNlKCkubG9hZEhpZ2hsaWdodEpzKCkpO2xldCByPXRoaXMuZ2V0Q3Vyc29yUG9zaXRpb24oZSkscz1pLnRleHRDb250ZW50fHwiIixuPWEubWV0YWRhdGE/Lmxhbmd1YWdlfHwidHlwZXNjcmlwdCI7dHJ5e2xldCBvPXRoaXMuaGlnaGxpZ2h0SnMuaGlnaGxpZ2h0KHMse2xhbmd1YWdlOm4saWdub3JlSWxsZWdhbHM6ITB9KTtvLnZhbHVlJiYoaS5pbm5lckhUTUw9by52YWx1ZSxkb2N1bWVudC5hY3RpdmVFbGVtZW50PT09aSYmciE9PW51bGwmJnJlcXVlc3RBbmltYXRpb25GcmFtZSgoKT0+e1JlLnNldEN1cnNvclBvc2l0aW9uKGkscil9KSl9Y2F0Y2gobyl7Y29uc29sZS53YXJuKCJTeW50YXggaGlnaGxpZ2h0aW5nIGZhaWxlZDoiLG8pfX1lc2NhcGVIdG1sKGUpe2xldCBhPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpO3JldHVybiBhLnRleHRDb250ZW50PWUsYS5pbm5lckhUTUx9Z2V0Q29udGVudChlKXtyZXR1cm4gZS5xdWVyeVNlbGVjdG9yKCIuY29kZS1lZGl0b3IiKT8udGV4dENvbnRlbnR8fCIifXNldENvbnRlbnQoZSxhKXtsZXQgaT1lLnF1ZXJ5U2VsZWN0b3IoIi5jb2RlLWVkaXRvciIpO2lmKGkmJihpLnRleHRDb250ZW50PWEsdGhpcy51cGRhdGVMaW5lTnVtYmVycyhlKSxkb2N1bWVudC5hY3RpdmVFbGVtZW50IT09aSkpe2xldCByPXtpZDppLmRhdGFzZXQuYmxvY2tJZHx8IiIsdHlwZToiY29kZSIsY29udGVudDphLG1ldGFkYXRhOntsYW5ndWFnZTplLnF1ZXJ5U2VsZWN0b3IoIi5jb2RlLWJsb2NrLWNvbnRhaW5lciIpPy5nZXRBdHRyaWJ1dGUoImRhdGEtbGFuZ3VhZ2UiKXx8InR5cGVzY3JpcHQifX07dGhpcy5hcHBseUhpZ2hsaWdodGluZyhlLHIpfX1nZXRDdXJzb3JQb3NpdGlvbihlKXtsZXQgYT1lLnF1ZXJ5U2VsZWN0b3IoIi5jb2RlLWVkaXRvciIpO2lmKCFhKXJldHVybiBudWxsO2xldCBpPXdpbmRvdy5nZXRTZWxlY3Rpb24oKTtpZighaXx8aS5yYW5nZUNvdW50PT09MClyZXR1cm4gbnVsbDtsZXQgcj1pLmdldFJhbmdlQXQoMCk7aWYoIWEuY29udGFpbnMoci5zdGFydENvbnRhaW5lcikpcmV0dXJuIG51bGw7bGV0IHM9ZG9jdW1lbnQuY3JlYXRlUmFuZ2UoKTtyZXR1cm4gcy5zZWxlY3ROb2RlQ29udGVudHMoYSkscy5zZXRFbmQoci5zdGFydENvbnRhaW5lcixyLnN0YXJ0T2Zmc2V0KSxzLnRvU3RyaW5nKCkubGVuZ3RofXNldEN1cnNvclRvU3RhcnQoZSl7bGV0IGE9ZS5xdWVyeVNlbGVjdG9yKCIuY29kZS1lZGl0b3IiKTthJiZSZS5zZXRDdXJzb3JQb3NpdGlvbihhLDApfXNldEN1cnNvclRvRW5kKGUpe2xldCBhPWUucXVlcnlTZWxlY3RvcigiLmNvZGUtZWRpdG9yIik7aWYoYSl7bGV0IGk9YS50ZXh0Q29udGVudD8ubGVuZ3RofHwwO1JlLnNldEN1cnNvclBvc2l0aW9uKGEsaSl9fWZvY3VzKGUpe2UucXVlcnlTZWxlY3RvcigiLmNvZGUtZWRpdG9yIik/LmZvY3VzKCl9Zm9jdXNXaXRoQ3Vyc29yKGUsYT0iZW5kIil7bGV0IGk9ZS5xdWVyeVNlbGVjdG9yKCIuY29kZS1lZGl0b3IiKTtpJiYoaS5mb2N1cygpLHJlcXVlc3RBbmltYXRpb25GcmFtZSgoKT0+e2E9PT0ic3RhcnQiP3RoaXMuc2V0Q3Vyc29yVG9TdGFydChlKTphPT09ImVuZCI/dGhpcy5zZXRDdXJzb3JUb0VuZChlKTp0eXBlb2YgYT09Im51bWJlciImJlJlLnNldEN1cnNvclBvc2l0aW9uKGksYSl9KSl9Z2V0U3BsaXRDb250ZW50KGUpe2xldCBhPXRoaXMuZ2V0Q3Vyc29yUG9zaXRpb24oZSk7aWYoYT09PW51bGwpcmV0dXJuIG51bGw7bGV0IGk9dGhpcy5nZXRDb250ZW50KGUpO3JldHVybntiZWZvcmU6aS5zdWJzdHJpbmcoMCxhKSxhZnRlcjppLnN1YnN0cmluZyhhKX19Z2V0U3R5bGVzKCl7cmV0dXJuYAogICAgICAvKiBDb2RlIEJsb2NrIENvbnRhaW5lciAtIE1pbmltYWxpc3Qgc2hhZGNuIHN0eWxlICovCiAgICAgIC5jb2RlLWJsb2NrLWNvbnRhaW5lciB7CiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICAgIG1hcmdpbjogMTJweCAwOwogICAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50OwogICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICR7cC5iZFRoZW1lKCIjZTVlN2ViIiwiIzM3NDE1MSIpfTsKICAgICAgICBib3JkZXItcmFkaXVzOiA2cHg7CiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC4xNXMgZWFzZTsKICAgICAgfQogICAgICAKICAgICAgLmNvZGUtYmxvY2stY29udGFpbmVyLnNlbGVjdGVkIHsKICAgICAgICBib3JkZXItY29sb3I6ICR7cC5iZFRoZW1lKCIjOWNhM2FmIiwiIzZiNzI4MCIpfTsKICAgICAgfQogICAgICAKICAgICAgLmNvZGUtYmxvY2stY29udGFpbmVyLmVkaXRpbmcgewogICAgICAgIGJvcmRlci1jb2xvcjogJHtwLmJkVGhlbWUoIiM2YjcyODAiLCIjOWNhM2FmIil9OwogICAgICAgIGJhY2tncm91bmQ6ICR7cC5iZFRoZW1lKCIjZmFmYWZhIiwiIzBhMGEwYSIpfTsKICAgICAgfQogICAgICAKICAgICAgLyogSGVhZGVyIC0gU2ltcGxpZmllZCAqLwogICAgICAuY29kZS1oZWFkZXIgewogICAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50OwogICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAke3AuYmRUaGVtZSgiI2U1ZTdlYiIsIiMzNzQxNTEiKX07CiAgICAgICAgcGFkZGluZzogOHB4IDEycHg7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgfQogICAgICAKICAgICAgLmxhbmd1YWdlLXNlbGVjdG9yIHsKICAgICAgICBmb250LXNpemU6IDEycHg7CiAgICAgICAgY29sb3I6ICR7cC5iZFRoZW1lKCIjNmI3MjgwIiwiIzljYTNhZiIpfTsKICAgICAgICBmb250LXdlaWdodDogNTAwOwogICAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7CiAgICAgICAgbGV0dGVyLXNwYWNpbmc6IDAuMDVlbTsKICAgICAgICBmb250LWZhbWlseTogJHtKdH07CiAgICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7CiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgdHJhbnNwYXJlbnQ7CiAgICAgICAgYm9yZGVyLXJhZGl1czogNHB4OwogICAgICAgIHBhZGRpbmc6IDRweCA4cHg7CiAgICAgICAgY3Vyc29yOiBwb2ludGVyOwogICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjE1cyBlYXNlOwogICAgICAgIG91dGxpbmU6IG5vbmU7CiAgICAgIH0KICAgICAgCiAgICAgIC5sYW5ndWFnZS1zZWxlY3Rvcjpob3ZlciB7CiAgICAgICAgYmFja2dyb3VuZDogJHtwLmJkVGhlbWUoIiNmOWZhZmIiLCIjMWYyOTM3Iil9OwogICAgICAgIGJvcmRlci1jb2xvcjogJHtwLmJkVGhlbWUoIiNlNWU3ZWIiLCIjMzc0MTUxIil9OwogICAgICAgIGNvbG9yOiAke3AuYmRUaGVtZSgiIzM3NDE1MSIsIiNlNWU3ZWIiKX07CiAgICAgIH0KICAgICAgCiAgICAgIC5sYW5ndWFnZS1zZWxlY3Rvcjpmb2N1cyB7CiAgICAgICAgYm9yZGVyLWNvbG9yOiAke3AuYmRUaGVtZSgiIzljYTNhZiIsIiM2YjcyODAiKX07CiAgICAgIH0KICAgICAgCiAgICAgIC8qIENvcHkgQnV0dG9uIC0gTWluaW1hbCAqLwogICAgICAuY29weS1idXR0b24gewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBnYXA6IDRweDsKICAgICAgICBwYWRkaW5nOiA0cHggOHB4OwogICAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50OwogICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIHRyYW5zcGFyZW50OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDRweDsKICAgICAgICBjb2xvcjogJHtwLmJkVGhlbWUoIiM2YjcyODAiLCIjOWNhM2FmIil9OwogICAgICAgIGZvbnQtc2l6ZTogMTJweDsKICAgICAgICBmb250LWZhbWlseTogJHtKdH07CiAgICAgICAgY3Vyc29yOiBwb2ludGVyOwogICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjE1cyBlYXNlOwogICAgICAgIG91dGxpbmU6IG5vbmU7CiAgICAgIH0KICAgICAgCiAgICAgIC5jb3B5LWJ1dHRvbjpob3ZlciB7CiAgICAgICAgYmFja2dyb3VuZDogJHtwLmJkVGhlbWUoIiNmOWZhZmIiLCIjMWYyOTM3Iil9OwogICAgICAgIGJvcmRlci1jb2xvcjogJHtwLmJkVGhlbWUoIiNlNWU3ZWIiLCIjMzc0MTUxIil9OwogICAgICAgIGNvbG9yOiAke3AuYmRUaGVtZSgiIzM3NDE1MSIsIiNlNWU3ZWIiKX07CiAgICAgIH0KICAgICAgCiAgICAgIC5jb3B5LWJ1dHRvbjphY3RpdmUgewogICAgICAgIHRyYW5zZm9ybTogc2NhbGUoMC45OCk7CiAgICAgIH0KICAgICAgCiAgICAgIC5jb3B5LWJ1dHRvbi5jb3BpZWQgewogICAgICAgIGNvbG9yOiAke3AuYmRUaGVtZSgiIzA1OTY2OSIsIiMxMGI5ODEiKX07CiAgICAgIH0KICAgICAgCiAgICAgIC5jb3B5LWljb24gewogICAgICAgIGZsZXgtc2hyaW5rOiAwOwogICAgICAgIG9wYWNpdHk6IDAuNzsKICAgICAgfQogICAgICAKICAgICAgLmNvcHktYnV0dG9uOmhvdmVyIC5jb3B5LWljb24gewogICAgICAgIG9wYWNpdHk6IDE7CiAgICAgIH0KICAgICAgCiAgICAgIC5jb3B5LXRleHQgewogICAgICAgIG1pbi13aWR0aDogNDBweDsKICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7CiAgICAgIH0KICAgICAgCiAgICAgIC8qIENvZGUgQm9keSAqLwogICAgICAuY29kZS1ib2R5IHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgICBiYWNrZ3JvdW5kOiAke3AuYmRUaGVtZSgiI2ZhZmFmYSIsIiMwYTBhMGEiKX07CiAgICAgIH0KICAgICAgCiAgICAgIC8qIExpbmUgTnVtYmVycyAtIFN1YnRsZSAqLwogICAgICAubGluZS1udW1iZXJzIHsKICAgICAgICBmbGV4LXNocmluazogMDsKICAgICAgICBwYWRkaW5nOiAxMnB4IDA7CiAgICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7CiAgICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7CiAgICAgICAgdXNlci1zZWxlY3Q6IG5vbmU7CiAgICAgICAgbWluLXdpZHRoOiA0MHB4OwogICAgICAgIGJvcmRlci1yaWdodDogMXB4IHNvbGlkICR7cC5iZFRoZW1lKCIjZTVlN2ViIiwiIzM3NDE1MSIpfTsKICAgICAgfQogICAgICAKICAgICAgLmxpbmUtbnVtYmVyIHsKICAgICAgICBwYWRkaW5nOiAwIDEycHggMCA4cHg7CiAgICAgICAgY29sb3I6ICR7cC5iZFRoZW1lKCIjOWNhM2FmIiwiIzRiNTU2MyIpfTsKICAgICAgICBmb250LWZhbWlseTogJHtWMH07CiAgICAgICAgZm9udC1zaXplOiAxM3B4OwogICAgICAgIGxpbmUtaGVpZ2h0OiAyMHB4OwogICAgICAgIGhlaWdodDogMjBweDsKICAgICAgfQogICAgICAKICAgICAgLyogQ29kZSBDb250ZW50ICovCiAgICAgIC5jb2RlLWNvbnRlbnQgewogICAgICAgIGZsZXg6IDE7CiAgICAgICAgb3ZlcmZsb3cteDogYXV0bzsKICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgIH0KICAgICAgCiAgICAgIC5jb2RlLXByZSB7CiAgICAgICAgbWFyZ2luOiAwOwogICAgICAgIHBhZGRpbmc6IDA7CiAgICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7CiAgICAgIH0KICAgICAgCiAgICAgIC5jb2RlLWVkaXRvciB7CiAgICAgICAgZGlzcGxheTogYmxvY2s7CiAgICAgICAgcGFkZGluZzogMTJweCAxNnB4OwogICAgICAgIG1hcmdpbjogMDsKICAgICAgICBmb250LWZhbWlseTogJHtWMH07CiAgICAgICAgZm9udC1zaXplOiAxM3B4OwogICAgICAgIGxpbmUtaGVpZ2h0OiAyMHB4OwogICAgICAgIGNvbG9yOiAke3AuYmRUaGVtZSgiIzExMTgyNyIsIiNmOWZhZmIiKX07CiAgICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7CiAgICAgICAgYm9yZGVyOiBub25lOwogICAgICAgIG91dGxpbmU6IG5vbmU7CiAgICAgICAgd2hpdGUtc3BhY2U6IHByZS13cmFwOwogICAgICAgIHdvcmQtd3JhcDogYnJlYWstd29yZDsKICAgICAgICBtaW4taGVpZ2h0OiA2MHB4OwogICAgICAgIG92ZXJmbG93OiB2aXNpYmxlOwogICAgICB9CiAgICAgIAogICAgICAvKiBQbGFjZWhvbGRlciAqLwogICAgICAuY29kZS1lZGl0b3I6ZW1wdHk6OmJlZm9yZSB7CiAgICAgICAgY29udGVudDogIi8vIFR5cGUgb3IgcGFzdGUgY29kZSBoZXJlLi4uIjsKICAgICAgICBjb2xvcjogJHtwLmJkVGhlbWUoIiM5Y2EzYWYiLCIjNGI1NTYzIil9OwogICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lOwogICAgICB9CiAgICAgIAogICAgICAvKiBXaGVuIGVkaXRpbmcgKGZvY3VzZWQpLCBzaG93IGdyZXkgdGV4dCB3aXRob3V0IGhpZ2hsaWdodGluZyAqLwogICAgICAuY29kZS1ibG9jay1jb250YWluZXIuZWRpdGluZyAuY29kZS1lZGl0b3IgewogICAgICAgIGNvbG9yOiAke3AuYmRUaGVtZSgiIzZiNzI4MCIsIiM5Y2EzYWYiKX0gIWltcG9ydGFudDsKICAgICAgfQogICAgICAKICAgICAgLmNvZGUtYmxvY2stY29udGFpbmVyLmVkaXRpbmcgLmNvZGUtZWRpdG9yICogewogICAgICAgIGNvbG9yOiBpbmhlcml0ICFpbXBvcnRhbnQ7CiAgICAgIH0KICAgICAgCiAgICAgIC8qIFN5bnRheCBIaWdobGlnaHRpbmcgLSBNdXRlZCBjb2xvcnMgKi8KICAgICAgLmNvZGUtZWRpdG9yIC5obGpzLWtleXdvcmQgewogICAgICAgIGNvbG9yOiAke3AuYmRUaGVtZSgiI2RjMjYyNiIsIiNmODcxNzEiKX07CiAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDsKICAgICAgfQogICAgICAKICAgICAgLmNvZGUtZWRpdG9yIC5obGpzLXN0cmluZyB7CiAgICAgICAgY29sb3I6ICR7cC5iZFRoZW1lKCIjMDU5NjY5IiwiIzEwYjk4MSIpfTsKICAgICAgfQogICAgICAKICAgICAgLmNvZGUtZWRpdG9yIC5obGpzLW51bWJlciB7CiAgICAgICAgY29sb3I6ICR7cC5iZFRoZW1lKCIjN2MzYWVkIiwiI2E3OGJmYSIpfTsKICAgICAgfQogICAgICAKICAgICAgLmNvZGUtZWRpdG9yIC5obGpzLWZ1bmN0aW9uIHsKICAgICAgICBjb2xvcjogJHtwLmJkVGhlbWUoIiMyNTYzZWIiLCIjNjBhNWZhIil9OwogICAgICB9CiAgICAgIAogICAgICAuY29kZS1lZGl0b3IgLmhsanMtY29tbWVudCB7CiAgICAgICAgY29sb3I6ICR7cC5iZFRoZW1lKCIjNmI3MjgwIiwiIzZiNzI4MCIpfTsKICAgICAgICBmb250LXN0eWxlOiBpdGFsaWM7CiAgICAgIH0KICAgICAgCiAgICAgIC5jb2RlLWVkaXRvciAuaGxqcy12YXJpYWJsZSwKICAgICAgLmNvZGUtZWRpdG9yIC5obGpzLWF0dHIgewogICAgICAgIGNvbG9yOiAke3AuYmRUaGVtZSgiI2VhNTgwYyIsIiNmYjkyM2MiKX07CiAgICAgIH0KICAgICAgCiAgICAgIC5jb2RlLWVkaXRvciAuaGxqcy1jbGFzcywKICAgICAgLmNvZGUtZWRpdG9yIC5obGpzLXRpdGxlIHsKICAgICAgICBjb2xvcjogJHtwLmJkVGhlbWUoIiMyNTYzZWIiLCIjNjBhNWZhIil9OwogICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7CiAgICAgIH0KICAgICAgCiAgICAgIC5jb2RlLWVkaXRvciAuaGxqcy1wYXJhbXMgewogICAgICAgIGNvbG9yOiAke3AuYmRUaGVtZSgiIzM3NDE1MSIsIiNlNWU3ZWIiKX07CiAgICAgIH0KICAgICAgCiAgICAgIC5jb2RlLWVkaXRvciAuaGxqcy1idWlsdF9pbiB7CiAgICAgICAgY29sb3I6ICR7cC5iZFRoZW1lKCIjN2MzYWVkIiwiI2E3OGJmYSIpfTsKICAgICAgfQogICAgICAKICAgICAgLmNvZGUtZWRpdG9yIC5obGpzLWxpdGVyYWwgewogICAgICAgIGNvbG9yOiAke3AuYmRUaGVtZSgiIzdjM2FlZCIsIiNhNzhiZmEiKX07CiAgICAgIH0KICAgICAgCiAgICAgIC5jb2RlLWVkaXRvciAuaGxqcy1tZXRhIHsKICAgICAgICBjb2xvcjogJHtwLmJkVGhlbWUoIiM2YjcyODAiLCIjOWNhM2FmIil9OwogICAgICB9CiAgICAgIAogICAgICAuY29kZS1lZGl0b3IgLmhsanMtcHVuY3R1YXRpb24gewogICAgICAgIGNvbG9yOiAke3AuYmRUaGVtZSgiIzM3NDE1MSIsIiNkMWQ1ZGIiKX07CiAgICAgIH0KICAgICAgCiAgICAgIC5jb2RlLWVkaXRvciAuaGxqcy10YWcgewogICAgICAgIGNvbG9yOiAke3AuYmRUaGVtZSgiI2RjMjYyNiIsIiNmODcxNzEiKX07CiAgICAgIH0KICAgICAgCiAgICAgIC5jb2RlLWVkaXRvciAuaGxqcy1hdHRyaWJ1dGUgewogICAgICAgIGNvbG9yOiAke3AuYmRUaGVtZSgiIzI1NjNlYiIsIiM2MGE1ZmEiKX07CiAgICAgIH0KICAgICAgCiAgICAgIC5jb2RlLWVkaXRvciAuaGxqcy1zZWxlY3Rvci10YWcgewogICAgICAgIGNvbG9yOiAke3AuYmRUaGVtZSgiI2RjMjYyNiIsIiNmODcxNzEiKX07CiAgICAgIH0KICAgICAgCiAgICAgIC5jb2RlLWVkaXRvciAuaGxqcy1zZWxlY3Rvci1jbGFzcyB7CiAgICAgICAgY29sb3I6ICR7cC5iZFRoZW1lKCIjMjU2M2ViIiwiIzYwYTVmYSIpfTsKICAgICAgfQogICAgICAKICAgICAgLmNvZGUtZWRpdG9yIC5obGpzLXNlbGVjdG9yLWlkIHsKICAgICAgICBjb2xvcjogJHtwLmJkVGhlbWUoIiM3YzNhZWQiLCIjYTc4YmZhIil9OwogICAgICB9CiAgICAgIAogICAgICAvKiBTZWxlY3Rpb24gKi8KICAgICAgLmNvZGUtZWRpdG9yOjpzZWxlY3Rpb24sCiAgICAgIC5jb2RlLWVkaXRvciAqOjpzZWxlY3Rpb24gewogICAgICAgIGJhY2tncm91bmQ6ICR7cC5iZFRoZW1lKCJyZ2JhKDk5LCAxMDIsIDI0MSwgMC4yKSIsInJnYmEoOTksIDEwMiwgMjQxLCAwLjMpIil9OwogICAgICB9CiAgICAgIAogICAgICAvKiBTY3JvbGxiYXIgc3R5bGluZyAtIE1pbmltYWwgKi8KICAgICAgLmNvZGUtY29udGVudDo6LXdlYmtpdC1zY3JvbGxiYXIgewogICAgICAgIGhlaWdodDogNnB4OwogICAgICB9CiAgICAgIAogICAgICAuY29kZS1jb250ZW50Ojotd2Via2l0LXNjcm9sbGJhci10cmFjayB7CiAgICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7CiAgICAgIH0KICAgICAgCiAgICAgIC5jb2RlLWNvbnRlbnQ6Oi13ZWJraXQtc2Nyb2xsYmFyLXRodW1iIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke3AuYmRUaGVtZSgiI2QxZDVkYiIsIiM0YjU1NjMiKX07CiAgICAgICAgYm9yZGVyLXJhZGl1czogM3B4OwogICAgICB9CiAgICAgIAogICAgICAuY29kZS1jb250ZW50Ojotd2Via2l0LXNjcm9sbGJhci10aHVtYjpob3ZlciB7CiAgICAgICAgYmFja2dyb3VuZDogJHtwLmJkVGhlbWUoIiM5Y2EzYWYiLCIjNmI3MjgwIil9OwogICAgICB9CiAgICBgfX19KTt2YXIgRTgsTWd0PWIoKCk9PntZYSgpO3VlKCk7cXMoKTtVcigpO0U4PWNsYXNzIGV4dGVuZHMgTTF7dHlwZT0ibGlzdCI7bGFzdEtub3duQ3Vyc29yUG9zaXRpb249MDtsYXN0U2VsZWN0ZWRUZXh0PSIiO3NlbGVjdGlvbkhhbmRsZXI9bnVsbDtyZW5kZXIoZSxhKXtsZXQgaT1hPyIgc2VsZWN0ZWQiOiIiLHM9KGUubWV0YWRhdGE/Lmxpc3RUeXBlfHwidW5vcmRlcmVkIik9PT0ib3JkZXJlZCI/Im9sIjoidWwiLG49dGhpcy5yZW5kZXJMaXN0Q29udGVudChlLmNvbnRlbnQsZS5tZXRhZGF0YSk7cmV0dXJuYAogICAgICA8ZGl2CiAgICAgICAgY2xhc3M9ImJsb2NrIGxpc3Qke2l9IgogICAgICAgIGNvbnRlbnRlZGl0YWJsZT0idHJ1ZSIKICAgICAgICBkYXRhLWJsb2NrLWlkPSIke2UuaWR9IgogICAgICAgIGRhdGEtYmxvY2stdHlwZT0iJHtlLnR5cGV9IgogICAgICA+JHtufTwvZGl2PgogICAgYH1yZW5kZXJMaXN0Q29udGVudChlLGEpe2lmKCFlKXJldHVybiI8dWw+PGxpPjwvbGk+PC91bD4iO2xldCByPShhPy5saXN0VHlwZXx8InVub3JkZXJlZCIpPT09Im9yZGVyZWQiPyJvbCI6InVsIixzPWUuc3BsaXQoYApgKS5maWx0ZXIobz0+by50cmltKCkpO2lmKHMubGVuZ3RoPT09MClyZXR1cm5gPCR7cn0+PGxpPjwvbGk+PC8ke3J9PmA7bGV0IG49cy5tYXAobz0+YDxsaT4ke299PC9saT5gKS5qb2luKCIiKTtyZXR1cm5gPCR7cn0+JHtufTwvJHtyfT5gfXNldHVwKGUsYSxpKXtsZXQgcj1lLnF1ZXJ5U2VsZWN0b3IoIi5ibG9jay5saXN0Iik7aWYoIXIpe2NvbnNvbGUuZXJyb3IoIkxpc3RCbG9ja0hhbmRsZXIuc2V0dXA6IE5vIGxpc3QgYmxvY2sgZWxlbWVudCBmb3VuZCIpO3JldHVybn1hLmNvbnRlbnQmJiFyLmlubmVySFRNTCYmKHIuaW5uZXJIVE1MPXRoaXMucmVuZGVyTGlzdENvbnRlbnQoYS5jb250ZW50LGEubWV0YWRhdGEpKSxyLmFkZEV2ZW50TGlzdGVuZXIoImlucHV0IixzPT57aS5vbklucHV0KHMpO2xldCBuPXRoaXMuZ2V0Q3Vyc29yUG9zaXRpb24oZSk7biE9PW51bGwmJih0aGlzLmxhc3RLbm93bkN1cnNvclBvc2l0aW9uPW4pfSksci5hZGRFdmVudExpc3RlbmVyKCJrZXlkb3duIixzPT57bGV0IG49dGhpcy5nZXRDdXJzb3JQb3NpdGlvbihlKTtpZihuIT09bnVsbCYmKHRoaXMubGFzdEtub3duQ3Vyc29yUG9zaXRpb249bikscy5rZXk9PT0iRW50ZXIiJiYhcy5zaGlmdEtleSl7bGV0IG89d2luZG93LmdldFNlbGVjdGlvbigpO2lmKG8mJm8ucmFuZ2VDb3VudD4wKXtsZXQgYz1vLmdldFJhbmdlQXQoMCkuc3RhcnRDb250YWluZXIucGFyZW50RWxlbWVudD8uY2xvc2VzdCgibGkiKTtpZihjJiZjLnRleHRDb250ZW50PT09IiIpe3MucHJldmVudERlZmF1bHQoKSxpLm9uS2V5RG93bihzKTtyZXR1cm59fX1pLm9uS2V5RG93bihzKX0pLHIuYWRkRXZlbnRMaXN0ZW5lcigiZm9jdXMiLCgpPT57aS5vbkZvY3VzKCl9KSxyLmFkZEV2ZW50TGlzdGVuZXIoImJsdXIiLCgpPT57aS5vbkJsdXIoKX0pLHIuYWRkRXZlbnRMaXN0ZW5lcigiY29tcG9zaXRpb25zdGFydCIsKCk9PntpLm9uQ29tcG9zaXRpb25TdGFydCgpfSksci5hZGRFdmVudExpc3RlbmVyKCJjb21wb3NpdGlvbmVuZCIsKCk9PntpLm9uQ29tcG9zaXRpb25FbmQoKX0pLHIuYWRkRXZlbnRMaXN0ZW5lcigibW91c2V1cCIscz0+e2xldCBuPXRoaXMuZ2V0Q3Vyc29yUG9zaXRpb24oZSk7biE9PW51bGwmJih0aGlzLmxhc3RLbm93bkN1cnNvclBvc2l0aW9uPW4pLGkub25Nb3VzZVVwPy4ocyl9KSxyLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIixzPT57c2V0VGltZW91dCgoKT0+e2xldCBuPXRoaXMuZ2V0Q3Vyc29yUG9zaXRpb24oZSk7biE9PW51bGwmJih0aGlzLmxhc3RLbm93bkN1cnNvclBvc2l0aW9uPW4pfSwwKX0pLHIuYWRkRXZlbnRMaXN0ZW5lcigia2V5dXAiLHM9PntsZXQgbj10aGlzLmdldEN1cnNvclBvc2l0aW9uKGUpO24hPT1udWxsJiYodGhpcy5sYXN0S25vd25DdXJzb3JQb3NpdGlvbj1uKX0pLHRoaXMuc2V0dXBTZWxlY3Rpb25IYW5kbGVyKGUscixhKX1zZXR1cFNlbGVjdGlvbkhhbmRsZXIoZSxhLGkpe2xldCByPSgpPT57bGV0IG49d2luZG93LmdldFNlbGVjdGlvbigpO2lmKCFufHxuLnJhbmdlQ291bnQ9PT0wKXJldHVybjtsZXQgbz1uLnRvU3RyaW5nKCk7aWYoby5sZW5ndGg9PT0wKXt0aGlzLmxhc3RTZWxlY3RlZFRleHQmJih0aGlzLmxhc3RTZWxlY3RlZFRleHQ9IiIsdGhpcy5kaXNwYXRjaFNlbGVjdGlvbkV2ZW50KGUse3RleHQ6IiIsYmxvY2tJZDppLmlkLGhhc1NlbGVjdGlvbjohMX0pKTtyZXR1cm59bGV0IGQ9YS5nZXRSb290Tm9kZSgpLmhvc3QsaD1kPy5jbG9zZXN0KCJkZWVzLWlucHV0LXd5c2l3eWciKT8uc2hhZG93Um9vdCxsPWQ/LnNoYWRvd1Jvb3QsZj1bXTtoJiZmLnB1c2goaCksbCYmZi5wdXNoKGwpO2xldCBnPVJlLmdldFNlbGVjdGlvbkluZm8oLi4uZik7aWYoIWcpcmV0dXJuO2xldCB5PVJlLmNvbnRhaW5zQWNyb3NzU2hhZG93RE9NKGEsZy5zdGFydENvbnRhaW5lciksdj1SZS5jb250YWluc0Fjcm9zc1NoYWRvd0RPTShhLGcuZW5kQ29udGFpbmVyKTtpZih5fHx2KXtpZihvIT09dGhpcy5sYXN0U2VsZWN0ZWRUZXh0KXt0aGlzLmxhc3RTZWxlY3RlZFRleHQ9bztsZXQgbT1SZS5jcmVhdGVSYW5nZUZyb21JbmZvKGcpLHg9bS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTt0aGlzLmRpc3BhdGNoU2VsZWN0aW9uRXZlbnQoZSx7dGV4dDpvLnRyaW0oKSxibG9ja0lkOmkuaWQscmFuZ2U6bSxyZWN0OngsaGFzU2VsZWN0aW9uOiEwfSl9fWVsc2UgdGhpcy5sYXN0U2VsZWN0ZWRUZXh0JiYodGhpcy5sYXN0U2VsZWN0ZWRUZXh0PSIiLHRoaXMuZGlzcGF0Y2hTZWxlY3Rpb25FdmVudChlLHt0ZXh0OiIiLGJsb2NrSWQ6aS5pZCxoYXNTZWxlY3Rpb246ITF9KSl9O2RvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoInNlbGVjdGlvbmNoYW5nZSIsciksdGhpcy5zZWxlY3Rpb25IYW5kbGVyPXI7bGV0IHM9YS5nZXRSb290Tm9kZSgpLmhvc3Q7aWYocyl7bGV0IG49cy5kaXNjb25uZWN0ZWRDYWxsYmFjaztzLmRpc2Nvbm5lY3RlZENhbGxiYWNrPWFzeW5jIGZ1bmN0aW9uKCl7dGhpcy5zZWxlY3Rpb25IYW5kbGVyJiYoZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcigic2VsZWN0aW9uY2hhbmdlIix0aGlzLnNlbGVjdGlvbkhhbmRsZXIpLHRoaXMuc2VsZWN0aW9uSGFuZGxlcj1udWxsKSxuJiZhd2FpdCBuLmNhbGwocyl9LmJpbmQodGhpcyl9fWRpc3BhdGNoU2VsZWN0aW9uRXZlbnQoZSxhKXtsZXQgaT1uZXcgQ3VzdG9tRXZlbnQoImJsb2NrLXRleHQtc2VsZWN0ZWQiLHtkZXRhaWw6YSxidWJibGVzOiEwLGNvbXBvc2VkOiEwfSk7ZS5kaXNwYXRjaEV2ZW50KGkpfWdldFN0eWxlcygpe3JldHVybmAKICAgICAgLyogTGlzdCBzcGVjaWZpYyBzdHlsZXMgKi8KICAgICAgLmJsb2NrLmxpc3QgewogICAgICAgIHBhZGRpbmc6IDA7CiAgICAgIH0KICAgICAgCiAgICAgIC5ibG9jay5saXN0IHVsLAogICAgICAuYmxvY2subGlzdCBvbCB7CiAgICAgICAgbWFyZ2luOiAwOwogICAgICAgIHBhZGRpbmctbGVmdDogMjRweDsKICAgICAgfQogICAgICAKICAgICAgLmJsb2NrLmxpc3QgbGkgewogICAgICAgIG1hcmdpbjogNHB4IDA7CiAgICAgICAgbGluZS1oZWlnaHQ6IDEuNjsKICAgICAgfQogICAgICAKICAgICAgLmJsb2NrLmxpc3QgbGk6bGFzdC1jaGlsZCB7CiAgICAgICAgbWFyZ2luLWJvdHRvbTogMDsKICAgICAgfQogICAgYH1nZXRQbGFjZWhvbGRlcigpe3JldHVybiIifWdldEN1cnNvclBvc2l0aW9uKGUsYSl7bGV0IGk9ZS5xdWVyeVNlbGVjdG9yKCIuYmxvY2subGlzdCIpO2lmKCFpKXJldHVybiBudWxsO2xldCBuPWE/LmNvbXBvbmVudD8uY2xvc2VzdCgiZGVlcy1pbnB1dC13eXNpd3lnIik/LnNoYWRvd1Jvb3Qsbz1hPy5zaGFkb3dSb290LGQ9W107biYmZC5wdXNoKG4pLG8mJmQucHVzaChvKTtsZXQgYz1SZS5nZXRTZWxlY3Rpb25JbmZvKC4uLmQpO2lmKCFjfHwhUmUuY29udGFpbnNBY3Jvc3NTaGFkb3dET00oaSxjLnN0YXJ0Q29udGFpbmVyKSlyZXR1cm4gbnVsbDtsZXQgaD1kb2N1bWVudC5jcmVhdGVSYW5nZSgpO3JldHVybiBoLnNlbGVjdE5vZGVDb250ZW50cyhpKSxoLnNldEVuZChjLnN0YXJ0Q29udGFpbmVyLGMuc3RhcnRPZmZzZXQpLGgudG9TdHJpbmcoKS5sZW5ndGh9Z2V0Q29udGVudChlLGEpe2xldCBpPWUucXVlcnlTZWxlY3RvcigiLmJsb2NrLmxpc3QiKTtpZighaSlyZXR1cm4iIjtsZXQgcj1pLnF1ZXJ5U2VsZWN0b3JBbGwoImxpIik7cmV0dXJuIEFycmF5LmZyb20ocikubWFwKG49Pm4udGV4dENvbnRlbnR8fCIiKS5qb2luKGAKYCl9c2V0Q29udGVudChlLGEsaSl7bGV0IHI9ZS5xdWVyeVNlbGVjdG9yKCIuYmxvY2subGlzdCIpO2lmKCFyKXJldHVybjtsZXQgcz1kb2N1bWVudC5hY3RpdmVFbGVtZW50PT09cnx8ZS5zaGFkb3dSb290Py5hY3RpdmVFbGVtZW50PT09cixvPXIucXVlcnlTZWxlY3RvcigidWwsIG9sIik/LnRhZ05hbWU9PT0iT0wiO3IuaW5uZXJIVE1MPXRoaXMucmVuZGVyTGlzdENvbnRlbnQoYSx7bGlzdFR5cGU6bz8ib3JkZXJlZCI6InVub3JkZXJlZCJ9KSxzJiZyLmZvY3VzKCl9c2V0Q3Vyc29yVG9TdGFydChlLGEpe2xldCBpPWUucXVlcnlTZWxlY3RvcigiLmJsb2NrLmxpc3QiKTtpZighaSlyZXR1cm47bGV0IHI9aS5xdWVyeVNlbGVjdG9yKCJsaSIpO2lmKHIpe2xldCBzPXRoaXMuZ2V0Rmlyc3RUZXh0Tm9kZShyKTtpZihzKXtsZXQgbj1kb2N1bWVudC5jcmVhdGVSYW5nZSgpLG89d2luZG93LmdldFNlbGVjdGlvbigpO24uc2V0U3RhcnQocywwKSxuLnNldEVuZChzLDApLG8/LnJlbW92ZUFsbFJhbmdlcygpLG8/LmFkZFJhbmdlKG4pfX19c2V0Q3Vyc29yVG9FbmQoZSxhKXtsZXQgaT1lLnF1ZXJ5U2VsZWN0b3IoIi5ibG9jay5saXN0Iik7aWYoIWkpcmV0dXJuO2xldCByPWkucXVlcnlTZWxlY3RvcigibGk6bGFzdC1jaGlsZCIpO2lmKHIpe2xldCBzPXRoaXMuZ2V0TGFzdFRleHROb2RlKHIpO2lmKHMpe2xldCBuPWRvY3VtZW50LmNyZWF0ZVJhbmdlKCksbz13aW5kb3cuZ2V0U2VsZWN0aW9uKCksZD1zLnRleHRDb250ZW50Py5sZW5ndGh8fDA7bi5zZXRTdGFydChzLGQpLG4uc2V0RW5kKHMsZCksbz8ucmVtb3ZlQWxsUmFuZ2VzKCksbz8uYWRkUmFuZ2Uobil9fX1nZXRGaXJzdFRleHROb2RlKGUpe2lmKGUubm9kZVR5cGU9PT1Ob2RlLlRFWFRfTk9ERSlyZXR1cm4gZTtmb3IobGV0IGE9MDthPGUuY2hpbGROb2Rlcy5sZW5ndGg7YSsrKXtsZXQgaT10aGlzLmdldEZpcnN0VGV4dE5vZGUoZS5jaGlsZE5vZGVzW2FdKTtpZihpKXJldHVybiBpfXJldHVybiBudWxsfWdldExhc3RUZXh0Tm9kZShlKXtpZihlLm5vZGVUeXBlPT09Tm9kZS5URVhUX05PREUpcmV0dXJuIGU7Zm9yKGxldCBhPWUuY2hpbGROb2Rlcy5sZW5ndGgtMTthPj0wO2EtLSl7bGV0IGk9dGhpcy5nZXRMYXN0VGV4dE5vZGUoZS5jaGlsZE5vZGVzW2FdKTtpZihpKXJldHVybiBpfXJldHVybiBudWxsfWZvY3VzKGUsYSl7bGV0IGk9ZS5xdWVyeVNlbGVjdG9yKCIuYmxvY2subGlzdCIpO2kmJihpLmhhc0F0dHJpYnV0ZSgiY29udGVudGVkaXRhYmxlIil8fGkuc2V0QXR0cmlidXRlKCJjb250ZW50ZWRpdGFibGUiLCJ0cnVlIiksaS5mb2N1cygpLGRvY3VtZW50LmFjdGl2ZUVsZW1lbnQhPT1pJiZlLnNoYWRvd1Jvb3Q/LmFjdGl2ZUVsZW1lbnQhPT1pJiZQcm9taXNlLnJlc29sdmUoKS50aGVuKCgpPT57aS5mb2N1cygpfSkpfWZvY3VzV2l0aEN1cnNvcihlLGE9ImVuZCIsaSl7bGV0IHI9ZS5xdWVyeVNlbGVjdG9yKCIuYmxvY2subGlzdCIpO2lmKCFyKXJldHVybjtyLmhhc0F0dHJpYnV0ZSgiY29udGVudGVkaXRhYmxlIil8fHIuc2V0QXR0cmlidXRlKCJjb250ZW50ZWRpdGFibGUiLCJ0cnVlIiksci5mb2N1cygpO2xldCBzPSgpPT57YT09PSJzdGFydCI/dGhpcy5zZXRDdXJzb3JUb1N0YXJ0KGUsaSk6YT09PSJlbmQiP3RoaXMuc2V0Q3Vyc29yVG9FbmQoZSxpKTp0eXBlb2YgYT09Im51bWJlciImJnRoaXMuc2V0Q3Vyc29yVG9FbmQoZSxpKX07ZG9jdW1lbnQuYWN0aXZlRWxlbWVudD09PXJ8fGUuc2hhZG93Um9vdD8uYWN0aXZlRWxlbWVudD09PXI/cygpOlByb21pc2UucmVzb2x2ZSgpLnRoZW4oKCk9PnsoZG9jdW1lbnQuYWN0aXZlRWxlbWVudD09PXJ8fGUuc2hhZG93Um9vdD8uYWN0aXZlRWxlbWVudD09PXIpJiZzKCl9KX1nZXRTcGxpdENvbnRlbnQoZSxhKXtyZXR1cm4gZS5xdWVyeVNlbGVjdG9yKCIuYmxvY2subGlzdCIpLG51bGx9fX0pO3ZhciBQOCx6Z3Q9YigoKT0+e1lhKCk7dWUoKTtQOD1jbGFzcyBleHRlbmRzIE0xe3R5cGU9ImltYWdlIjtyZW5kZXIoZSxhKXtsZXQgaT1lLm1ldGFkYXRhPy51cmwscj1lLmNvbnRlbnR8fCJJbWFnZSIscz1lLm1ldGFkYXRhPy5sb2FkaW5nO3JldHVybmAKICAgICAgPGRpdiBjbGFzcz0iaW1hZ2UtYmxvY2stY29udGFpbmVyJHthPyIgc2VsZWN0ZWQiOiIifSIgCiAgICAgICAgICAgZGF0YS1ibG9jay1pZD0iJHtlLmlkfSIKICAgICAgICAgICBkYXRhLWhhcy1pbWFnZT0iJHshIWl9IgogICAgICAgICAgIHRhYmluZGV4PSIwIj4KICAgICAgICAke3M/dGhpcy5yZW5kZXJMb2FkaW5nKCk6aT90aGlzLnJlbmRlckltYWdlKGkscik6dGhpcy5yZW5kZXJQbGFjZWhvbGRlcigpfQogICAgICAgIDxpbnB1dCB0eXBlPSJmaWxlIiAKICAgICAgICAgICAgICAgY2xhc3M9ImltYWdlLWZpbGUtaW5wdXQiIAogICAgICAgICAgICAgICBhY2NlcHQ9ImltYWdlLyoiIAogICAgICAgICAgICAgICBzdHlsZT0iZGlzcGxheTogbm9uZTsiIC8+CiAgICAgIDwvZGl2PgogICAgYH1yZW5kZXJQbGFjZWhvbGRlcigpe3JldHVybmAKICAgICAgPGRpdiBjbGFzcz0iaW1hZ2UtdXBsb2FkLXBsYWNlaG9sZGVyIiBzdHlsZT0iY3Vyc29yOiBwb2ludGVyOyI+CiAgICAgICAgPGRpdiBjbGFzcz0idXBsb2FkLWljb24iIHN0eWxlPSJwb2ludGVyLWV2ZW50czogbm9uZTsiPgogICAgICAgICAgPHN2ZyB3aWR0aD0iNDgiIGhlaWdodD0iNDgiIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0ibm9uZSIgc3Ryb2tlPSJjdXJyZW50Q29sb3IiIHN0cm9rZS13aWR0aD0iMS41Ij4KICAgICAgICAgICAgPHJlY3QgeD0iMyIgeT0iMyIgd2lkdGg9IjE4IiBoZWlnaHQ9IjE4IiByeD0iMiIgcnk9IjIiLz4KICAgICAgICAgICAgPGNpcmNsZSBjeD0iOC41IiBjeT0iOC41IiByPSIxLjUiLz4KICAgICAgICAgICAgPHBvbHlsaW5lIHBvaW50cz0iMjEgMTUgMTYgMTAgNSAyMSIvPgogICAgICAgICAgPC9zdmc+CiAgICAgICAgPC9kaXY+CiAgICAgICAgPGRpdiBjbGFzcz0idXBsb2FkLXRleHQiIHN0eWxlPSJwb2ludGVyLWV2ZW50czogbm9uZTsiPkNsaWNrIHRvIHVwbG9hZCBhbiBpbWFnZTwvZGl2PgogICAgICAgIDxkaXYgY2xhc3M9InVwbG9hZC1oaW50IiBzdHlsZT0icG9pbnRlci1ldmVudHM6IG5vbmU7Ij5vciBkcmFnIGFuZCBkcm9wPC9kaXY+CiAgICAgIDwvZGl2PgogICAgYH1yZW5kZXJJbWFnZShlLGEpe3JldHVybmAKICAgICAgPGRpdiBjbGFzcz0iaW1hZ2UtY29udGFpbmVyIj4KICAgICAgICA8aW1nIHNyYz0iJHtlfSIgYWx0PSIke3RoaXMuZXNjYXBlSHRtbChhKX0iIC8+CiAgICAgIDwvZGl2PgogICAgYH1yZW5kZXJMb2FkaW5nKCl7cmV0dXJuYAogICAgICA8ZGl2IGNsYXNzPSJpbWFnZS1sb2FkaW5nIj4KICAgICAgICA8ZGl2IGNsYXNzPSJsb2FkaW5nLXNwaW5uZXIiPjwvZGl2PgogICAgICAgIDxkaXYgY2xhc3M9ImxvYWRpbmctdGV4dCI+VXBsb2FkaW5nIGltYWdlLi4uPC9kaXY+CiAgICAgIDwvZGl2PgogICAgYH1zZXR1cChlLGEsaSl7bGV0IHI9ZS5xdWVyeVNlbGVjdG9yKCIuaW1hZ2UtYmxvY2stY29udGFpbmVyIikscz1lLnF1ZXJ5U2VsZWN0b3IoIi5pbWFnZS1maWxlLWlucHV0Iik7aWYoIXIpe2NvbnNvbGUuZXJyb3IoIkltYWdlQmxvY2tIYW5kbGVyOiBDb3VsZCBub3QgZmluZCBjb250YWluZXIiKTtyZXR1cm59aWYoIXMpe2NvbnNvbGUuZXJyb3IoIkltYWdlQmxvY2tIYW5kbGVyOiBDb3VsZCBub3QgZmluZCBmaWxlIGlucHV0Iik7cmV0dXJufWxldCBuPXIucXVlcnlTZWxlY3RvcigiLmltYWdlLXVwbG9hZC1wbGFjZWhvbGRlciIpO24mJm4uYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLG89PntvLnByZXZlbnREZWZhdWx0KCksby5zdG9wUHJvcGFnYXRpb24oKSxjb25zb2xlLmxvZygiSW1hZ2VCbG9ja0hhbmRsZXI6IFBsYWNlaG9sZGVyIGNsaWNrZWQsIG9wZW5pbmcgZmlsZSBzZWxlY3RvciIpLHMuY2xpY2soKX0pLHIuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLCgpPT57aS5vbkZvY3VzKCl9KSxzLmFkZEV2ZW50TGlzdGVuZXIoImNoYW5nZSIsYXN5bmMgbz0+e2xldCBjPW8udGFyZ2V0LmZpbGVzPy5bMF07YyYmKGNvbnNvbGUubG9nKCJJbWFnZUJsb2NrSGFuZGxlcjogRmlsZSBzZWxlY3RlZDoiLGMubmFtZSksYXdhaXQgdGhpcy5oYW5kbGVGaWxlVXBsb2FkKGMsYSxpKSl9KSxyLmFkZEV2ZW50TGlzdGVuZXIoImRyYWdvdmVyIixvPT57by5wcmV2ZW50RGVmYXVsdCgpLG8uc3RvcFByb3BhZ2F0aW9uKCksYS5tZXRhZGF0YT8udXJsfHxyLmNsYXNzTGlzdC5hZGQoImRyYWctb3ZlciIpfSksci5hZGRFdmVudExpc3RlbmVyKCJkcmFnbGVhdmUiLG89PntvLnByZXZlbnREZWZhdWx0KCksby5zdG9wUHJvcGFnYXRpb24oKSxyLmNsYXNzTGlzdC5yZW1vdmUoImRyYWctb3ZlciIpfSksci5hZGRFdmVudExpc3RlbmVyKCJkcm9wIixhc3luYyBvPT57by5wcmV2ZW50RGVmYXVsdCgpLG8uc3RvcFByb3BhZ2F0aW9uKCksci5jbGFzc0xpc3QucmVtb3ZlKCJkcmFnLW92ZXIiKTtsZXQgZD1vLmRhdGFUcmFuc2Zlcj8uZmlsZXNbMF07ZCYmZC50eXBlLnN0YXJ0c1dpdGgoImltYWdlLyIpJiYhYS5tZXRhZGF0YT8udXJsJiZhd2FpdCB0aGlzLmhhbmRsZUZpbGVVcGxvYWQoZCxhLGkpfSksci5hZGRFdmVudExpc3RlbmVyKCJmb2N1cyIsKCk9Pmkub25Gb2N1cygpKSxyLmFkZEV2ZW50TGlzdGVuZXIoImJsdXIiLCgpPT5pLm9uQmx1cigpKSxyLmFkZEV2ZW50TGlzdGVuZXIoImtleWRvd24iLG89PntpZigoby5rZXk9PT0iRGVsZXRlInx8by5rZXk9PT0iQmFja3NwYWNlIikmJmEubWV0YWRhdGE/LnVybCl7YS5tZXRhZGF0YS51cmw9dm9pZCAwLGEubWV0YWRhdGEubG9hZGluZz0hMSxhLmNvbnRlbnQ9IiIsaS5vbklucHV0KG5ldyBJbnB1dEV2ZW50KCJpbnB1dCIpKTtyZXR1cm59aS5vbktleURvd24obyl9KX1hc3luYyBoYW5kbGVGaWxlVXBsb2FkKGUsYSxpKXtpZihjb25zb2xlLmxvZygiSW1hZ2VCbG9ja0hhbmRsZXI6IFN0YXJ0aW5nIGZpbGUgdXBsb2FkIix7ZmlsZU5hbWU6ZS5uYW1lLGZpbGVTaXplOmUuc2l6ZSxibG9ja0lkOmEuaWR9KSwhZS50eXBlLnN0YXJ0c1dpdGgoImltYWdlLyIpKXtjb25zb2xlLmVycm9yKCJJbnZhbGlkIGZpbGUgdHlwZToiLGUudHlwZSk7cmV0dXJufWxldCByPTEwKjEwMjQqMTAyNDtpZihlLnNpemU+cil7Y29uc29sZS5lcnJvcigiRmlsZSB0b28gbGFyZ2UuIE1heGltdW0gc2l6ZSBpcyAxME1CIik7cmV0dXJufWEubWV0YWRhdGF8fChhLm1ldGFkYXRhPXt9KSxhLm1ldGFkYXRhLmxvYWRpbmc9ITAsYS5tZXRhZGF0YS5maWxlTmFtZT1lLm5hbWUsYS5tZXRhZGF0YS5maWxlU2l6ZT1lLnNpemUsYS5tZXRhZGF0YS5taW1lVHlwZT1lLnR5cGUsY29uc29sZS5sb2coIkltYWdlQmxvY2tIYW5kbGVyOiBTZXQgbG9hZGluZyBzdGF0ZSwgcmVxdWVzdGluZyB1cGRhdGUiKSxpLm9uUmVxdWVzdFVwZGF0ZT8uKCk7dHJ5e2xldCBzPWF3YWl0IHRoaXMuZmlsZVRvRGF0YVVybChlKTthLm1ldGFkYXRhLnVybD1zLGEubWV0YWRhdGEubG9hZGluZz0hMTtsZXQgbj1lLm5hbWUucmVwbGFjZSgvXC5bXi8uXSskLywiIik7YS5jb250ZW50PW4sY29uc29sZS5sb2coIkltYWdlQmxvY2tIYW5kbGVyOiBVcGxvYWQgY29tcGxldGUsIHJlcXVlc3RpbmcgdXBkYXRlIix7aGFzVXJsOiEhYS5tZXRhZGF0YS51cmwsdXJsTGVuZ3RoOnMubGVuZ3RoLGFsdFRleHQ6YS5jb250ZW50fSksaS5vblJlcXVlc3RVcGRhdGU/LigpfWNhdGNoKHMpe2NvbnNvbGUuZXJyb3IoIkZhaWxlZCB0byB1cGxvYWQgaW1hZ2U6IixzKSxhLm1ldGFkYXRhLmxvYWRpbmc9ITEsaS5vblJlcXVlc3RVcGRhdGU/LigpfX1maWxlVG9EYXRhVXJsKGUpe3JldHVybiBuZXcgUHJvbWlzZSgoYSxpKT0+e2xldCByPW5ldyBGaWxlUmVhZGVyO3Iub25sb2FkPXM9PntsZXQgbj1zLnRhcmdldD8ucmVzdWx0O3R5cGVvZiBuPT0ic3RyaW5nIj9hKG4pOmkobmV3IEVycm9yKCJGYWlsZWQgdG8gcmVhZCBmaWxlIikpfSxyLm9uZXJyb3I9aSxyLnJlYWRBc0RhdGFVUkwoZSl9KX1lc2NhcGVIdG1sKGUpe2xldCBhPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpO3JldHVybiBhLnRleHRDb250ZW50PWUsYS5pbm5lckhUTUx9Z2V0Q29udGVudChlKXtyZXR1cm4gdGhpcy5nZXRCbG9ja0Zyb21FbGVtZW50KGUpPy5jb250ZW50fHwiIn1zZXRDb250ZW50KGUsYSl7bGV0IGk9dGhpcy5nZXRCbG9ja0Zyb21FbGVtZW50KGUpO2kmJihpLmNvbnRlbnQ9YSl9Z2V0QmxvY2tGcm9tRWxlbWVudChlKXtsZXQgaT1lLnF1ZXJ5U2VsZWN0b3IoIi5pbWFnZS1ibG9jay1jb250YWluZXIiKT8uZ2V0QXR0cmlidXRlKCJkYXRhLWJsb2NrLWlkIik7cmV0dXJuIGk/e2lkOmksdHlwZToiaW1hZ2UiLGNvbnRlbnQ6IiIsbWV0YWRhdGE6e319Om51bGx9Z2V0Q3Vyc29yUG9zaXRpb24oZSl7cmV0dXJuIG51bGx9c2V0Q3Vyc29yVG9TdGFydChlKXt0aGlzLmZvY3VzKGUpfXNldEN1cnNvclRvRW5kKGUpe3RoaXMuZm9jdXMoZSl9Zm9jdXMoZSl7ZS5xdWVyeVNlbGVjdG9yKCIuaW1hZ2UtYmxvY2stY29udGFpbmVyIik/LmZvY3VzKCl9Zm9jdXNXaXRoQ3Vyc29yKGUsYT0iZW5kIil7dGhpcy5mb2N1cyhlKX1nZXRTcGxpdENvbnRlbnQoZSl7cmV0dXJuIG51bGx9Z2V0U3R5bGVzKCl7cmV0dXJuYAogICAgICAvKiBJbWFnZSBCbG9jayBDb250YWluZXIgKi8KICAgICAgLmltYWdlLWJsb2NrLWNvbnRhaW5lciB7CiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICAgIG1hcmdpbjogMTJweCAwOwogICAgICAgIGJvcmRlci1yYWRpdXM6IDZweDsKICAgICAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjE1cyBlYXNlOwogICAgICAgIG91dGxpbmU6IG5vbmU7CiAgICAgICAgY3Vyc29yOiBwb2ludGVyOwogICAgICB9CiAgICAgIAogICAgICAuaW1hZ2UtYmxvY2stY29udGFpbmVyLnNlbGVjdGVkIHsKICAgICAgICBib3gtc2hhZG93OiAwIDAgMCAycHggJHtwLmJkVGhlbWUoIiM2MzY2ZjEiLCIjODE4Y2Y4Iil9OwogICAgICB9CiAgICAgIAogICAgICAvKiBVcGxvYWQgUGxhY2Vob2xkZXIgKi8KICAgICAgLmltYWdlLXVwbG9hZC1wbGFjZWhvbGRlciB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7CiAgICAgICAgcGFkZGluZzogNDhweCAyNHB4OwogICAgICAgIGJvcmRlcjogMnB4IGRhc2hlZCAke3AuYmRUaGVtZSgiI2U1ZTdlYiIsIiMzNzQxNTEiKX07CiAgICAgICAgYm9yZGVyLXJhZGl1czogNnB4OwogICAgICAgIGJhY2tncm91bmQ6ICR7cC5iZFRoZW1lKCIjZmFmYWZhIiwiIzBhMGEwYSIpfTsKICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC4xNXMgZWFzZTsKICAgICAgfQogICAgICAKICAgICAgLmltYWdlLWJsb2NrLWNvbnRhaW5lcjpob3ZlciAuaW1hZ2UtdXBsb2FkLXBsYWNlaG9sZGVyIHsKICAgICAgICBib3JkZXItY29sb3I6ICR7cC5iZFRoZW1lKCIjOWNhM2FmIiwiIzZiNzI4MCIpfTsKICAgICAgICBiYWNrZ3JvdW5kOiAke3AuYmRUaGVtZSgiI2Y5ZmFmYiIsIiMxMTE4MjciKX07CiAgICAgIH0KICAgICAgCiAgICAgIC5pbWFnZS1ibG9jay1jb250YWluZXIuZHJhZy1vdmVyIC5pbWFnZS11cGxvYWQtcGxhY2Vob2xkZXIgewogICAgICAgIGJvcmRlci1jb2xvcjogJHtwLmJkVGhlbWUoIiM2MzY2ZjEiLCIjODE4Y2Y4Iil9OwogICAgICAgIGJhY2tncm91bmQ6ICR7cC5iZFRoZW1lKCIjZWZmNmZmIiwiIzFlMWI0YiIpfTsKICAgICAgfQogICAgICAKICAgICAgLnVwbG9hZC1pY29uIHsKICAgICAgICBtYXJnaW4tYm90dG9tOiAxMnB4OwogICAgICAgIGNvbG9yOiAke3AuYmRUaGVtZSgiIzljYTNhZiIsIiM0YjU1NjMiKX07CiAgICAgIH0KICAgICAgCiAgICAgIC51cGxvYWQtdGV4dCB7CiAgICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7CiAgICAgICAgY29sb3I6ICR7cC5iZFRoZW1lKCIjMzc0MTUxIiwiI2U1ZTdlYiIpfTsKICAgICAgICBtYXJnaW4tYm90dG9tOiA0cHg7CiAgICAgIH0KICAgICAgCiAgICAgIC51cGxvYWQtaGludCB7CiAgICAgICAgZm9udC1zaXplOiAxMnB4OwogICAgICAgIGNvbG9yOiAke3AuYmRUaGVtZSgiIzljYTNhZiIsIiM2YjcyODAiKX07CiAgICAgIH0KICAgICAgCiAgICAgIC8qIEltYWdlIENvbnRhaW5lciAqLwogICAgICAuaW1hZ2UtY29udGFpbmVyIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgbWluLWhlaWdodDogMjAwcHg7CiAgICAgICAgYmFja2dyb3VuZDogJHtwLmJkVGhlbWUoIiNmOWZhZmIiLCIjMTExODI3Iil9OwogICAgICB9CiAgICAgIAogICAgICAuaW1hZ2UtY29udGFpbmVyIGltZyB7CiAgICAgICAgbWF4LXdpZHRoOiAxMDAlOwogICAgICAgIGhlaWdodDogYXV0bzsKICAgICAgICBkaXNwbGF5OiBibG9jazsKICAgICAgICBib3JkZXItcmFkaXVzOiA0cHg7CiAgICAgIH0KICAgICAgCiAgICAgIC8qIExvYWRpbmcgU3RhdGUgKi8KICAgICAgLmltYWdlLWxvYWRpbmcgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOwogICAgICAgIHBhZGRpbmc6IDQ4cHggMjRweDsKICAgICAgICBiYWNrZ3JvdW5kOiAke3AuYmRUaGVtZSgiI2ZhZmFmYSIsIiMwYTBhMGEiKX07CiAgICAgIH0KICAgICAgCiAgICAgIC5sb2FkaW5nLXNwaW5uZXIgewogICAgICAgIHdpZHRoOiAzMnB4OwogICAgICAgIGhlaWdodDogMzJweDsKICAgICAgICBib3JkZXI6IDNweCBzb2xpZCAke3AuYmRUaGVtZSgiI2U1ZTdlYiIsIiMzNzQxNTEiKX07CiAgICAgICAgYm9yZGVyLXRvcC1jb2xvcjogJHtwLmJkVGhlbWUoIiM2MzY2ZjEiLCIjODE4Y2Y4Iil9OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDUwJTsKICAgICAgICBhbmltYXRpb246IHNwaW4gMC44cyBsaW5lYXIgaW5maW5pdGU7CiAgICAgICAgbWFyZ2luLWJvdHRvbTogMTJweDsKICAgICAgfQogICAgICAKICAgICAgQGtleWZyYW1lcyBzcGluIHsKICAgICAgICB0byB7IHRyYW5zZm9ybTogcm90YXRlKDM2MGRlZyk7IH0KICAgICAgfQogICAgICAKICAgICAgLmxvYWRpbmctdGV4dCB7CiAgICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgICAgIGNvbG9yOiAke3AuYmRUaGVtZSgiIzZiNzI4MCIsIiM5Y2EzYWYiKX07CiAgICAgIH0KICAgICAgCiAgICAgIC8qIEZpbGUgaW5wdXQgaGlkZGVuICovCiAgICAgIC5pbWFnZS1maWxlLWlucHV0IHsKICAgICAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7CiAgICAgIH0KICAgIGB9fX0pO3ZhciBJOCxrZ3Q9YigoKT0+e1lhKCk7dWUoKTtJOD1jbGFzcyBleHRlbmRzIE0xe3R5cGU9InlvdXR1YmUiO3JlbmRlcihlLGEpe2xldCBpPWUubWV0YWRhdGE/LnZpZGVvSWQscj1lLm1ldGFkYXRhPy51cmx8fCIiO3JldHVybmAKICAgICAgPGRpdiBjbGFzcz0ieW91dHViZS1ibG9jay1jb250YWluZXIke2E/IiBzZWxlY3RlZCI6IiJ9IiAKICAgICAgICAgICBkYXRhLWJsb2NrLWlkPSIke2UuaWR9IgogICAgICAgICAgIGRhdGEtaGFzLXZpZGVvPSIkeyEhaX0iPgogICAgICAgICR7aT90aGlzLnJlbmRlclZpZGVvKGkpOnRoaXMucmVuZGVyUGxhY2Vob2xkZXIocil9CiAgICAgIDwvZGl2PgogICAgYH1yZW5kZXJQbGFjZWhvbGRlcihlKXtyZXR1cm5gCiAgICAgIDxkaXYgY2xhc3M9InlvdXR1YmUtcGxhY2Vob2xkZXIiPgogICAgICAgIDxkaXYgY2xhc3M9InBsYWNlaG9sZGVyLWljb24iPgogICAgICAgICAgPHN2ZyB3aWR0aD0iNDgiIGhlaWdodD0iNDgiIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0iY3VycmVudENvbG9yIj4KICAgICAgICAgICAgPHBhdGggZD0iTTE5LjYxNSAzLjE4NGMtMy42MDQtLjI0Ni0xMS42MzEtLjI0NS0xNS4yMyAwLTMuODk3LjI2Ni00LjM1NiAyLjYyLTQuMzg1IDguODE2LjAyOSA2LjE4NS40ODQgOC41NDkgNC4zODUgOC44MTYgMy42LjI0NSAxMS42MjYuMjQ2IDE1LjIzIDAgMy44OTctLjI2NiA0LjM1Ni0yLjYyIDQuMzg1LTguODE2LS4wMjktNi4xODUtLjQ4NC04LjU0OS00LjM4NS04LjgxNnptLTEwLjYxNSAxMi44MTZ2LThsOCAzLjk5My04IDQuMDA3eiIvPgogICAgICAgICAgPC9zdmc+CiAgICAgICAgPC9kaXY+CiAgICAgICAgPGRpdiBjbGFzcz0icGxhY2Vob2xkZXItdGV4dCI+RW50ZXIgWW91VHViZSBVUkw8L2Rpdj4KICAgICAgICA8aW5wdXQgdHlwZT0idXJsIiAKICAgICAgICAgICAgICAgY2xhc3M9InlvdXR1YmUtdXJsLWlucHV0IiAKICAgICAgICAgICAgICAgcGxhY2Vob2xkZXI9Imh0dHBzOi8veW91dHViZS5jb20vd2F0Y2g/dj0uLi4iIAogICAgICAgICAgICAgICB2YWx1ZT0iJHt0aGlzLmVzY2FwZUh0bWwoZSl9IiAvPgogICAgICAgIDxidXR0b24gY2xhc3M9InlvdXR1YmUtZW1iZWQtYnRuIj5FbWJlZCBWaWRlbzwvYnV0dG9uPgogICAgICA8L2Rpdj4KICAgIGB9cmVuZGVyVmlkZW8oZSl7cmV0dXJuYAogICAgICA8ZGl2IGNsYXNzPSJ5b3V0dWJlLWNvbnRhaW5lciI+CiAgICAgICAgPGlmcmFtZSAKICAgICAgICAgIHNyYz0iaHR0cHM6Ly93d3cueW91dHViZS5jb20vZW1iZWQvJHtlfSIKICAgICAgICAgIGZyYW1lYm9yZGVyPSIwIgogICAgICAgICAgYWxsb3c9ImFjY2VsZXJvbWV0ZXI7IGF1dG9wbGF5OyBjbGlwYm9hcmQtd3JpdGU7IGVuY3J5cHRlZC1tZWRpYTsgZ3lyb3Njb3BlOyBwaWN0dXJlLWluLXBpY3R1cmUiCiAgICAgICAgICBhbGxvd2Z1bGxzY3JlZW4KICAgICAgICA+PC9pZnJhbWU+CiAgICAgIDwvZGl2PgogICAgYH1zZXR1cChlLGEsaSl7bGV0IHI9ZS5xdWVyeVNlbGVjdG9yKCIueW91dHViZS1ibG9jay1jb250YWluZXIiKTtpZighcilyZXR1cm47aWYoYS5tZXRhZGF0YT8udmlkZW9JZCl7ci5zZXRBdHRyaWJ1dGUoInRhYmluZGV4IiwiMCIpLHIuYWRkRXZlbnRMaXN0ZW5lcigiZm9jdXMiLCgpPT5pLm9uRm9jdXMoKSksci5hZGRFdmVudExpc3RlbmVyKCJibHVyIiwoKT0+aS5vbkJsdXIoKSksci5hZGRFdmVudExpc3RlbmVyKCJrZXlkb3duIixvPT57KG8ua2V5PT09IkRlbGV0ZSJ8fG8ua2V5PT09IkJhY2tzcGFjZSIpJiZvLnByZXZlbnREZWZhdWx0KCksaS5vbktleURvd24obyl9KTtyZXR1cm59bGV0IHM9ZS5xdWVyeVNlbGVjdG9yKCIueW91dHViZS11cmwtaW5wdXQiKSxuPWUucXVlcnlTZWxlY3RvcigiLnlvdXR1YmUtZW1iZWQtYnRuIik7IXN8fCFufHwocy5hZGRFdmVudExpc3RlbmVyKCJmb2N1cyIsKCk9Pmkub25Gb2N1cygpKSxzLmFkZEV2ZW50TGlzdGVuZXIoImJsdXIiLCgpPT5pLm9uQmx1cigpKSxuLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIiwoKT0+e3RoaXMuZW1iZWRWaWRlbyhzLnZhbHVlLGEsaSl9KSxzLmFkZEV2ZW50TGlzdGVuZXIoImtleWRvd24iLG89PntvLmtleT09PSJFbnRlciI/KG8ucHJldmVudERlZmF1bHQoKSx0aGlzLmVtYmVkVmlkZW8ocy52YWx1ZSxhLGkpKTpvLmtleT09PSJFc2NhcGUiJiYoby5wcmV2ZW50RGVmYXVsdCgpLHMuYmx1cigpKX0pLHMuYWRkRXZlbnRMaXN0ZW5lcigicGFzdGUiLG89PntzZXRUaW1lb3V0KCgpPT57bGV0IGQ9cy52YWx1ZTt0aGlzLmV4dHJhY3RZb3VUdWJlVmlkZW9JZChkKSYmdGhpcy5lbWJlZFZpZGVvKGQsYSxpKX0sMCl9KSxzLmFkZEV2ZW50TGlzdGVuZXIoImlucHV0IiwoKT0+e2EubWV0YWRhdGF8fChhLm1ldGFkYXRhPXt9KSxhLm1ldGFkYXRhLnVybD1zLnZhbHVlfSkpfWVtYmVkVmlkZW8oZSxhLGkpe2xldCByPXRoaXMuZXh0cmFjdFlvdVR1YmVWaWRlb0lkKGUpO2lmKCFyKXtjb25zb2xlLmVycm9yKCJJbnZhbGlkIFlvdVR1YmUgVVJMIik7cmV0dXJufWEubWV0YWRhdGF8fChhLm1ldGFkYXRhPXt9KSxhLm1ldGFkYXRhLnZpZGVvSWQ9cixhLm1ldGFkYXRhLnVybD1lLGEuY29udGVudD1gWW91VHViZSBWaWRlbzogJHtyfWAsaS5vblJlcXVlc3RVcGRhdGU/LigpfWV4dHJhY3RZb3VUdWJlVmlkZW9JZChlKXtsZXQgYT1bLyg/OnlvdXR1YmVcLmNvbVwvKD86W15cL10rXC8uK1wvfCg/OnZ8ZSg/Om1iZWQpPylcL3wuKls/Jl12PSl8eW91dHVcLmJlXC8pKFteIiY/XC8gXXsxMX0pLywveW91dHViZVwuY29tXC9lbWJlZFwvKFteIiY/XC8gXXsxMX0pLywveW91dHViZVwuY29tXC93YXRjaFw/dj0oW14iJj9cLyBdezExfSkvLC95b3V0dVwuYmVcLyhbXiImP1wvIF17MTF9KS9dO2ZvcihsZXQgaSBvZiBhKXtsZXQgcj1lLm1hdGNoKGkpO2lmKHIpcmV0dXJuIHJbMV19cmV0dXJuIG51bGx9ZXNjYXBlSHRtbChlKXtsZXQgYT1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTtyZXR1cm4gYS50ZXh0Q29udGVudD1lLGEuaW5uZXJIVE1MfWdldENvbnRlbnQoZSl7cmV0dXJuIHRoaXMuZ2V0QmxvY2tGcm9tRWxlbWVudChlKT8uY29udGVudHx8IiJ9c2V0Q29udGVudChlLGEpe2xldCBpPXRoaXMuZ2V0QmxvY2tGcm9tRWxlbWVudChlKTtpJiYoaS5jb250ZW50PWEpfWdldEJsb2NrRnJvbUVsZW1lbnQoZSl7bGV0IGk9ZS5xdWVyeVNlbGVjdG9yKCIueW91dHViZS1ibG9jay1jb250YWluZXIiKT8uZ2V0QXR0cmlidXRlKCJkYXRhLWJsb2NrLWlkIik7cmV0dXJuIGk/e2lkOmksdHlwZToieW91dHViZSIsY29udGVudDoiIixtZXRhZGF0YTp7fX06bnVsbH1nZXRDdXJzb3JQb3NpdGlvbihlKXtyZXR1cm4gbnVsbH1zZXRDdXJzb3JUb1N0YXJ0KGUpe3RoaXMuZm9jdXMoZSl9c2V0Q3Vyc29yVG9FbmQoZSl7dGhpcy5mb2N1cyhlKX1mb2N1cyhlKXtsZXQgYT1lLnF1ZXJ5U2VsZWN0b3IoIi55b3V0dWJlLWJsb2NrLWNvbnRhaW5lciIpLGk9ZS5xdWVyeVNlbGVjdG9yKCIueW91dHViZS11cmwtaW5wdXQiKTtpP2kuZm9jdXMoKTphJiZhLmZvY3VzKCl9Zm9jdXNXaXRoQ3Vyc29yKGUsYT0iZW5kIil7dGhpcy5mb2N1cyhlKX1nZXRTcGxpdENvbnRlbnQoZSl7cmV0dXJuIG51bGx9Z2V0U3R5bGVzKCl7cmV0dXJuYAogICAgICAvKiBZb3VUdWJlIEJsb2NrIENvbnRhaW5lciAqLwogICAgICAueW91dHViZS1ibG9jay1jb250YWluZXIgewogICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgICBtYXJnaW46IDEycHggMDsKICAgICAgICBib3JkZXItcmFkaXVzOiA2cHg7CiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC4xNXMgZWFzZTsKICAgICAgICBvdXRsaW5lOiBub25lOwogICAgICB9CiAgICAgIAogICAgICAueW91dHViZS1ibG9jay1jb250YWluZXIuc2VsZWN0ZWQgewogICAgICAgIGJveC1zaGFkb3c6IDAgMCAwIDJweCAke3AuYmRUaGVtZSgiIzYzNjZmMSIsIiM4MThjZjgiKX07CiAgICAgIH0KICAgICAgCiAgICAgIC8qIFlvdVR1YmUgUGxhY2Vob2xkZXIgKi8KICAgICAgLnlvdXR1YmUtcGxhY2Vob2xkZXIgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOwogICAgICAgIHBhZGRpbmc6IDMycHggMjRweDsKICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAke3AuYmRUaGVtZSgiI2U1ZTdlYiIsIiMzNzQxNTEiKX07CiAgICAgICAgYm9yZGVyLXJhZGl1czogNnB4OwogICAgICAgIGJhY2tncm91bmQ6ICR7cC5iZFRoZW1lKCIjZmFmYWZhIiwiIzBhMGEwYSIpfTsKICAgICAgICBnYXA6IDEycHg7CiAgICAgIH0KICAgICAgCiAgICAgIC5wbGFjZWhvbGRlci1pY29uIHsKICAgICAgICBjb2xvcjogJHtwLmJkVGhlbWUoIiNkYzI2MjYiLCIjZWY0NDQ0Iil9OwogICAgICAgIG9wYWNpdHk6IDAuODsKICAgICAgfQogICAgICAKICAgICAgLnBsYWNlaG9sZGVyLXRleHQgewogICAgICAgIGZvbnQtc2l6ZTogMTRweDsKICAgICAgICBmb250LXdlaWdodDogNTAwOwogICAgICAgIGNvbG9yOiAke3AuYmRUaGVtZSgiIzM3NDE1MSIsIiNlNWU3ZWIiKX07CiAgICAgIH0KICAgICAgCiAgICAgIC55b3V0dWJlLXVybC1pbnB1dCB7CiAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgICAgbWF4LXdpZHRoOiA0MDBweDsKICAgICAgICBwYWRkaW5nOiA4cHggMTJweDsKICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAke3AuYmRUaGVtZSgiI2U1ZTdlYiIsIiMzNzQxNTEiKX07CiAgICAgICAgYm9yZGVyLXJhZGl1czogNHB4OwogICAgICAgIGJhY2tncm91bmQ6ICR7cC5iZFRoZW1lKCIjZmZmZmZmIiwiIzExMTgyNyIpfTsKICAgICAgICBjb2xvcjogJHtwLmJkVGhlbWUoIiMxMTE4MjciLCIjZjlmYWZiIil9OwogICAgICAgIGZvbnQtc2l6ZTogMTNweDsKICAgICAgICBmb250LWZhbWlseTogLWFwcGxlLXN5c3RlbSwgQmxpbmtNYWNTeXN0ZW1Gb250LCAnU2Vnb2UgVUknLCBzYW5zLXNlcmlmOwogICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjE1cyBlYXNlOwogICAgICAgIG91dGxpbmU6IG5vbmU7CiAgICAgIH0KICAgICAgCiAgICAgIC55b3V0dWJlLXVybC1pbnB1dDpmb2N1cyB7CiAgICAgICAgYm9yZGVyLWNvbG9yOiAke3AuYmRUaGVtZSgiIzZiNzI4MCIsIiM5Y2EzYWYiKX07CiAgICAgICAgYmFja2dyb3VuZDogJHtwLmJkVGhlbWUoIiNmZmZmZmYiLCIjMWYyOTM3Iil9OwogICAgICB9CiAgICAgIAogICAgICAueW91dHViZS11cmwtaW5wdXQ6OnBsYWNlaG9sZGVyIHsKICAgICAgICBjb2xvcjogJHtwLmJkVGhlbWUoIiM5Y2EzYWYiLCIjNGI1NTYzIil9OwogICAgICB9CiAgICAgIAogICAgICAueW91dHViZS1lbWJlZC1idG4gewogICAgICAgIHBhZGRpbmc6IDZweCAxNnB4OwogICAgICAgIGJhY2tncm91bmQ6ICR7cC5iZFRoZW1lKCIjMTExODI3IiwiI2Y5ZmFmYiIpfTsKICAgICAgICBjb2xvcjogJHtwLmJkVGhlbWUoIiNmOWZhZmIiLCIjMTExODI3Iil9OwogICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIHRyYW5zcGFyZW50OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDRweDsKICAgICAgICBmb250LXNpemU6IDEzcHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDsKICAgICAgICBmb250LWZhbWlseTogLWFwcGxlLXN5c3RlbSwgQmxpbmtNYWNTeXN0ZW1Gb250LCAnU2Vnb2UgVUknLCBzYW5zLXNlcmlmOwogICAgICAgIGN1cnNvcjogcG9pbnRlcjsKICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC4xNXMgZWFzZTsKICAgICAgICBvdXRsaW5lOiBub25lOwogICAgICB9CiAgICAgIAogICAgICAueW91dHViZS1lbWJlZC1idG46aG92ZXIgewogICAgICAgIGJhY2tncm91bmQ6ICR7cC5iZFRoZW1lKCIjMzc0MTUxIiwiI2U1ZTdlYiIpfTsKICAgICAgfQogICAgICAKICAgICAgLnlvdXR1YmUtZW1iZWQtYnRuOmFjdGl2ZSB7CiAgICAgICAgdHJhbnNmb3JtOiBzY2FsZSgwLjk4KTsKICAgICAgfQogICAgICAKICAgICAgLyogWW91VHViZSBDb250YWluZXIgKi8KICAgICAgLnlvdXR1YmUtY29udGFpbmVyIHsKICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgICAgcGFkZGluZy1ib3R0b206IDU2LjI1JTsgLyogMTY6OSBhc3BlY3QgcmF0aW8gKi8KICAgICAgICBiYWNrZ3JvdW5kOiAke3AuYmRUaGVtZSgiIzAwMDAwMCIsIiMwMDAwMDAiKX07CiAgICAgIH0KICAgICAgCiAgICAgIC55b3V0dWJlLWNvbnRhaW5lciBpZnJhbWUgewogICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgICB0b3A6IDA7CiAgICAgICAgbGVmdDogMDsKICAgICAgICB3aWR0aDogMTAwJTsKICAgICAgICBoZWlnaHQ6IDEwMCU7CiAgICAgICAgYm9yZGVyOiAwOwogICAgICAgIGJvcmRlci1yYWRpdXM6IDZweDsKICAgICAgfQogICAgYH19fSk7dmFyIE44LFNndD1iKCgpPT57WWEoKTt1ZSgpO044PWNsYXNzIGV4dGVuZHMgTTF7dHlwZT0iYXR0YWNobWVudCI7cmVuZGVyKGUsYSl7bGV0IGk9ZS5tZXRhZGF0YT8uZmlsZXN8fFtdO3JldHVybmAKICAgICAgPGRpdiBjbGFzcz0iYXR0YWNobWVudC1ibG9jay1jb250YWluZXIke2E/IiBzZWxlY3RlZCI6IiJ9IiAKICAgICAgICAgICBkYXRhLWJsb2NrLWlkPSIke2UuaWR9IgogICAgICAgICAgIHRhYmluZGV4PSIwIj4KICAgICAgICA8ZGl2IGNsYXNzPSJhdHRhY2htZW50LWhlYWRlciI+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJhdHRhY2htZW50LWljb24iPlx1ezFGNENFfTwvZGl2PgogICAgICAgICAgPGRpdiBjbGFzcz0iYXR0YWNobWVudC10aXRsZSI+RmlsZSBBdHRhY2htZW50czwvZGl2PgogICAgICAgIDwvZGl2PgogICAgICAgIDxkaXYgY2xhc3M9ImF0dGFjaG1lbnQtbGlzdCI+CiAgICAgICAgICAke2kubGVuZ3RoPjA/dGhpcy5yZW5kZXJGaWxlcyhpKTp0aGlzLnJlbmRlclBsYWNlaG9sZGVyKCl9CiAgICAgICAgPC9kaXY+CiAgICAgICAgPGlucHV0IHR5cGU9ImZpbGUiIAogICAgICAgICAgICAgICBjbGFzcz0iYXR0YWNobWVudC1maWxlLWlucHV0IiAKICAgICAgICAgICAgICAgbXVsdGlwbGUgCiAgICAgICAgICAgICAgIHN0eWxlPSJkaXNwbGF5OiBub25lOyIgLz4KICAgICAgICAke2kubGVuZ3RoPjA/JzxidXR0b24gY2xhc3M9ImFkZC1tb3JlLWZpbGVzIj5BZGQgTW9yZSBGaWxlczwvYnV0dG9uPic6IiJ9CiAgICAgIDwvZGl2PgogICAgYH1yZW5kZXJQbGFjZWhvbGRlcigpe3JldHVybmAKICAgICAgPGRpdiBjbGFzcz0iYXR0YWNobWVudC1wbGFjZWhvbGRlciI+CiAgICAgICAgPGRpdiBjbGFzcz0icGxhY2Vob2xkZXItdGV4dCI+Q2xpY2sgdG8gYWRkIGZpbGVzPC9kaXY+CiAgICAgICAgPGRpdiBjbGFzcz0icGxhY2Vob2xkZXItaGludCI+b3IgZHJhZyBhbmQgZHJvcDwvZGl2PgogICAgICA8L2Rpdj4KICAgIGB9cmVuZGVyRmlsZXMoZSl7cmV0dXJuIGUubWFwKGE9PmAKICAgICAgPGRpdiBjbGFzcz0iYXR0YWNobWVudC1pdGVtIiBkYXRhLWZpbGUtaWQ9IiR7YS5pZH0iPgogICAgICAgIDxkaXYgY2xhc3M9ImZpbGUtaWNvbiI+JHt0aGlzLmdldEZpbGVJY29uKGEudHlwZSl9PC9kaXY+CiAgICAgICAgPGRpdiBjbGFzcz0iZmlsZS1pbmZvIj4KICAgICAgICAgIDxkaXYgY2xhc3M9ImZpbGUtbmFtZSI+JHt0aGlzLmVzY2FwZUh0bWwoYS5uYW1lKX08L2Rpdj4KICAgICAgICAgIDxkaXYgY2xhc3M9ImZpbGUtc2l6ZSI+JHt0aGlzLmZvcm1hdEZpbGVTaXplKGEuc2l6ZSl9PC9kaXY+CiAgICAgICAgPC9kaXY+CiAgICAgICAgPGJ1dHRvbiBjbGFzcz0icmVtb3ZlLWZpbGUiIGRhdGEtZmlsZS1pZD0iJHthLmlkfSI+XHhENzwvYnV0dG9uPgogICAgICA8L2Rpdj4KICAgIGApLmpvaW4oIiIpfXNldHVwKGUsYSxpKXtsZXQgcj1lLnF1ZXJ5U2VsZWN0b3IoIi5hdHRhY2htZW50LWJsb2NrLWNvbnRhaW5lciIpLHM9ZS5xdWVyeVNlbGVjdG9yKCIuYXR0YWNobWVudC1maWxlLWlucHV0Iik7aWYoIXJ8fCFzKXtjb25zb2xlLmVycm9yKCJBdHRhY2htZW50QmxvY2tIYW5kbGVyOiBDb3VsZCBub3QgZmluZCByZXF1aXJlZCBlbGVtZW50cyIpO3JldHVybn1hLm1ldGFkYXRhfHwoYS5tZXRhZGF0YT17fSksYS5tZXRhZGF0YS5maWxlc3x8KGEubWV0YWRhdGEuZmlsZXM9W10pO2xldCBuPXIucXVlcnlTZWxlY3RvcigiLmF0dGFjaG1lbnQtcGxhY2Vob2xkZXIiKTtuJiZuLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIixkPT57ZC5wcmV2ZW50RGVmYXVsdCgpLGQuc3RvcFByb3BhZ2F0aW9uKCkscy5jbGljaygpfSk7bGV0IG89ci5xdWVyeVNlbGVjdG9yKCIuYWRkLW1vcmUtZmlsZXMiKTtvJiZvLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIixkPT57ZC5wcmV2ZW50RGVmYXVsdCgpLGQuc3RvcFByb3BhZ2F0aW9uKCkscy5jbGljaygpfSkscy5hZGRFdmVudExpc3RlbmVyKCJjaGFuZ2UiLGFzeW5jIGQ9PntsZXQgYz1kLnRhcmdldCxoPWMuZmlsZXM7aCYmaC5sZW5ndGg+MCYmKGF3YWl0IHRoaXMuaGFuZGxlRmlsZUF0dGFjaG1lbnRzKGgsYSxpKSxjLnZhbHVlPSIiKX0pLHIuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLGQ9PntsZXQgYz1kLnRhcmdldDtpZihjLmNsYXNzTGlzdC5jb250YWlucygicmVtb3ZlLWZpbGUiKSl7ZC5wcmV2ZW50RGVmYXVsdCgpLGQuc3RvcFByb3BhZ2F0aW9uKCk7bGV0IGg9Yy5nZXRBdHRyaWJ1dGUoImRhdGEtZmlsZS1pZCIpO2gmJnRoaXMucmVtb3ZlRmlsZShoLGEsaSl9fSksci5hZGRFdmVudExpc3RlbmVyKCJkcmFnb3ZlciIsZD0+e2QucHJldmVudERlZmF1bHQoKSxkLnN0b3BQcm9wYWdhdGlvbigpLHIuY2xhc3NMaXN0LmFkZCgiZHJhZy1vdmVyIil9KSxyLmFkZEV2ZW50TGlzdGVuZXIoImRyYWdsZWF2ZSIsZD0+e2QucHJldmVudERlZmF1bHQoKSxkLnN0b3BQcm9wYWdhdGlvbigpLHIuY2xhc3NMaXN0LnJlbW92ZSgiZHJhZy1vdmVyIil9KSxyLmFkZEV2ZW50TGlzdGVuZXIoImRyb3AiLGFzeW5jIGQ9PntkLnByZXZlbnREZWZhdWx0KCksZC5zdG9wUHJvcGFnYXRpb24oKSxyLmNsYXNzTGlzdC5yZW1vdmUoImRyYWctb3ZlciIpO2xldCBjPWQuZGF0YVRyYW5zZmVyPy5maWxlcztjJiZjLmxlbmd0aD4wJiZhd2FpdCB0aGlzLmhhbmRsZUZpbGVBdHRhY2htZW50cyhjLGEsaSl9KSxyLmFkZEV2ZW50TGlzdGVuZXIoImZvY3VzIiwoKT0+aS5vbkZvY3VzKCkpLHIuYWRkRXZlbnRMaXN0ZW5lcigiYmx1ciIsKCk9Pmkub25CbHVyKCkpLHIuYWRkRXZlbnRMaXN0ZW5lcigia2V5ZG93biIsZD0+e2lmKChkLmtleT09PSJEZWxldGUifHxkLmtleT09PSJCYWNrc3BhY2UiKSYmZG9jdW1lbnQuYWN0aXZlRWxlbWVudD09PXImJmEubWV0YWRhdGE/LmZpbGVzPy5sZW5ndGg+MCl7ZC5wcmV2ZW50RGVmYXVsdCgpLGEubWV0YWRhdGEuZmlsZXM9W10saS5vblJlcXVlc3RVcGRhdGU/LigpO3JldHVybn1pLm9uS2V5RG93bihkKX0pfWFzeW5jIGhhbmRsZUZpbGVBdHRhY2htZW50cyhlLGEsaSl7YS5tZXRhZGF0YXx8KGEubWV0YWRhdGE9e30pLGEubWV0YWRhdGEuZmlsZXN8fChhLm1ldGFkYXRhLmZpbGVzPVtdKTtmb3IobGV0IHIgb2YgQXJyYXkuZnJvbShlKSl0cnl7bGV0IHM9YXdhaXQgdGhpcy5maWxlVG9EYXRhVXJsKHIpLG49e2lkOnRoaXMuZ2VuZXJhdGVJZCgpLG5hbWU6ci5uYW1lLHNpemU6ci5zaXplLHR5cGU6ci50eXBlLGRhdGE6c307YS5tZXRhZGF0YS5maWxlcy5wdXNoKG4pfWNhdGNoKHMpe2NvbnNvbGUuZXJyb3IoIkZhaWxlZCB0byBhdHRhY2ggZmlsZToiLHIubmFtZSxzKX1hLmNvbnRlbnQ9YCR7YS5tZXRhZGF0YS5maWxlcy5sZW5ndGh9IGZpbGUke2EubWV0YWRhdGEuZmlsZXMubGVuZ3RoIT09MT8icyI6IiJ9IGF0dGFjaGVkYCxpLm9uUmVxdWVzdFVwZGF0ZT8uKCl9cmVtb3ZlRmlsZShlLGEsaSl7YS5tZXRhZGF0YT8uZmlsZXMmJihhLm1ldGFkYXRhLmZpbGVzPWEubWV0YWRhdGEuZmlsZXMuZmlsdGVyKHI9PnIuaWQhPT1lKSxhLmNvbnRlbnQ9YS5tZXRhZGF0YS5maWxlcy5sZW5ndGg+MD9gJHthLm1ldGFkYXRhLmZpbGVzLmxlbmd0aH0gZmlsZSR7YS5tZXRhZGF0YS5maWxlcy5sZW5ndGghPT0xPyJzIjoiIn0gYXR0YWNoZWRgOiIiLGkub25SZXF1ZXN0VXBkYXRlPy4oKSl9ZmlsZVRvRGF0YVVybChlKXtyZXR1cm4gbmV3IFByb21pc2UoKGEsaSk9PntsZXQgcj1uZXcgRmlsZVJlYWRlcjtyLm9ubG9hZD1zPT57bGV0IG49cy50YXJnZXQ/LnJlc3VsdDt0eXBlb2Ygbj09InN0cmluZyI/YShuKTppKG5ldyBFcnJvcigiRmFpbGVkIHRvIHJlYWQgZmlsZSIpKX0sci5vbmVycm9yPWksci5yZWFkQXNEYXRhVVJMKGUpfSl9Z2V0RmlsZUljb24oZSl7cmV0dXJuIGUuc3RhcnRzV2l0aCgiaW1hZ2UvIik/Ilx1ezFGNUJDfVx1RkUwRiI6ZS5zdGFydHNXaXRoKCJ2aWRlby8iKT8iXHV7MUYzQTV9IjplLnN0YXJ0c1dpdGgoImF1ZGlvLyIpPyJcdXsxRjNCNX0iOmUuaW5jbHVkZXMoInBkZiIpPyJcdXsxRjRDNH0iOmUuaW5jbHVkZXMoInppcCIpfHxlLmluY2x1ZGVzKCJyYXIiKXx8ZS5pbmNsdWRlcygidGFyIik/Ilx1ezFGNUM0fVx1RkUwRiI6ZS5pbmNsdWRlcygic2hlZXQiKT8iXHV7MUY0Q0F9IjplLmluY2x1ZGVzKCJkb2N1bWVudCIpfHxlLmluY2x1ZGVzKCJtc3dvcmQiKT8iXHV7MUY0RER9IjplLmluY2x1ZGVzKCJwcmVzZW50YXRpb24iKT8iXHV7MUY0Q0J9IjplLmluY2x1ZGVzKCJ0ZXh0Iik/Ilx1ezFGNEMzfSI6Ilx1ezFGNEMxfSJ9Zm9ybWF0RmlsZVNpemUoZSl7aWYoZT09PTApcmV0dXJuIjAgQnl0ZXMiO2xldCBhPTEwMjQsaT1bIkJ5dGVzIiwiS0IiLCJNQiIsIkdCIl0scj1NYXRoLmZsb29yKE1hdGgubG9nKGUpL01hdGgubG9nKGEpKTtyZXR1cm4gcGFyc2VGbG9hdCgoZS9NYXRoLnBvdyhhLHIpKS50b0ZpeGVkKDIpKSsiICIraVtyXX1nZW5lcmF0ZUlkKCl7cmV0dXJuYGZpbGUtJHtEYXRlLm5vdygpfS0ke01hdGgucmFuZG9tKCkudG9TdHJpbmcoMzYpLnN1YnN0cigyLDkpfWB9ZXNjYXBlSHRtbChlKXtsZXQgYT1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTtyZXR1cm4gYS50ZXh0Q29udGVudD1lLGEuaW5uZXJIVE1MfWdldENvbnRlbnQoZSl7cmV0dXJuIHRoaXMuZ2V0QmxvY2tGcm9tRWxlbWVudChlKT8uY29udGVudHx8IiJ9c2V0Q29udGVudChlLGEpe2xldCBpPXRoaXMuZ2V0QmxvY2tGcm9tRWxlbWVudChlKTtpJiYoaS5jb250ZW50PWEpfWdldEJsb2NrRnJvbUVsZW1lbnQoZSl7bGV0IGk9ZS5xdWVyeVNlbGVjdG9yKCIuYXR0YWNobWVudC1ibG9jay1jb250YWluZXIiKT8uZ2V0QXR0cmlidXRlKCJkYXRhLWJsb2NrLWlkIik7cmV0dXJuIGk/e2lkOmksdHlwZToiYXR0YWNobWVudCIsY29udGVudDoiIixtZXRhZGF0YTp7fX06bnVsbH1nZXRDdXJzb3JQb3NpdGlvbihlKXtyZXR1cm4gbnVsbH1zZXRDdXJzb3JUb1N0YXJ0KGUpe3RoaXMuZm9jdXMoZSl9c2V0Q3Vyc29yVG9FbmQoZSl7dGhpcy5mb2N1cyhlKX1mb2N1cyhlKXtlLnF1ZXJ5U2VsZWN0b3IoIi5hdHRhY2htZW50LWJsb2NrLWNvbnRhaW5lciIpPy5mb2N1cygpfWZvY3VzV2l0aEN1cnNvcihlLGE9ImVuZCIpe3RoaXMuZm9jdXMoZSl9Z2V0U3BsaXRDb250ZW50KGUpe3JldHVybiBudWxsfWdldFN0eWxlcygpe3JldHVybmAKICAgICAgLyogQXR0YWNobWVudCBCbG9jayBDb250YWluZXIgKi8KICAgICAgLmF0dGFjaG1lbnQtYmxvY2stY29udGFpbmVyIHsKICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgICAgbWFyZ2luOiAxMnB4IDA7CiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHtwLmJkVGhlbWUoIiNlNWU3ZWIiLCIjMzc0MTUxIil9OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDZweDsKICAgICAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjE1cyBlYXNlOwogICAgICAgIG91dGxpbmU6IG5vbmU7CiAgICAgICAgYmFja2dyb3VuZDogJHtwLmJkVGhlbWUoIiNmZmZmZmYiLCIjMTExODI3Iil9OwogICAgICB9CiAgICAgIAogICAgICAuYXR0YWNobWVudC1ibG9jay1jb250YWluZXIuc2VsZWN0ZWQgewogICAgICAgIGJvcmRlci1jb2xvcjogJHtwLmJkVGhlbWUoIiM5Y2EzYWYiLCIjNmI3MjgwIil9OwogICAgICB9CiAgICAgIAogICAgICAuYXR0YWNobWVudC1ibG9jay1jb250YWluZXIuZHJhZy1vdmVyIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke3AuYmRUaGVtZSgiI2Y5ZmFmYiIsIiMxZjI5MzciKX07CiAgICAgICAgYm9yZGVyLWNvbG9yOiAke3AuYmRUaGVtZSgiIzYzNjZmMSIsIiM4MThjZjgiKX07CiAgICAgIH0KICAgICAgCiAgICAgIC8qIEhlYWRlciAqLwogICAgICAuYXR0YWNobWVudC1oZWFkZXIgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBnYXA6IDhweDsKICAgICAgICBwYWRkaW5nOiAxMnB4IDE2cHg7CiAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICR7cC5iZFRoZW1lKCIjZTVlN2ViIiwiIzM3NDE1MSIpfTsKICAgICAgICBiYWNrZ3JvdW5kOiAke3AuYmRUaGVtZSgiI2Y5ZmFmYiIsIiMwYTBhMGEiKX07CiAgICAgIH0KICAgICAgCiAgICAgIC5hdHRhY2htZW50LWljb24gewogICAgICAgIGZvbnQtc2l6ZTogMThweDsKICAgICAgICBvcGFjaXR5OiAwLjg7CiAgICAgIH0KICAgICAgCiAgICAgIC5hdHRhY2htZW50LXRpdGxlIHsKICAgICAgICBmb250LXNpemU6IDE0cHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDsKICAgICAgICBjb2xvcjogJHtwLmJkVGhlbWUoIiMzNzQxNTEiLCIjZTVlN2ViIil9OwogICAgICB9CiAgICAgIAogICAgICAvKiBGaWxlIExpc3QgKi8KICAgICAgLmF0dGFjaG1lbnQtbGlzdCB7CiAgICAgICAgcGFkZGluZzogOHB4OwogICAgICAgIG1pbi1oZWlnaHQ6IDgwcHg7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICAgIGdhcDogNHB4OwogICAgICB9CiAgICAgIAogICAgICAvKiBQbGFjZWhvbGRlciAqLwogICAgICAuYXR0YWNobWVudC1wbGFjZWhvbGRlciB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7CiAgICAgICAgcGFkZGluZzogMjRweDsKICAgICAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuMTVzIGVhc2U7CiAgICAgIH0KICAgICAgCiAgICAgIC5hdHRhY2htZW50LXBsYWNlaG9sZGVyOmhvdmVyIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke3AuYmRUaGVtZSgiI2Y5ZmFmYiIsIiMxZjI5MzciKX07CiAgICAgIH0KICAgICAgCiAgICAgIC5wbGFjZWhvbGRlci10ZXh0IHsKICAgICAgICBmb250LXNpemU6IDE0cHg7CiAgICAgICAgY29sb3I6ICR7cC5iZFRoZW1lKCIjNmI3MjgwIiwiIzljYTNhZiIpfTsKICAgICAgICBtYXJnaW4tYm90dG9tOiA0cHg7CiAgICAgIH0KICAgICAgCiAgICAgIC5wbGFjZWhvbGRlci1oaW50IHsKICAgICAgICBmb250LXNpemU6IDEycHg7CiAgICAgICAgY29sb3I6ICR7cC5iZFRoZW1lKCIjOWNhM2FmIiwiIzZiNzI4MCIpfTsKICAgICAgfQogICAgICAKICAgICAgLyogRmlsZSBJdGVtcyAqLwogICAgICAuYXR0YWNobWVudC1pdGVtIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgZ2FwOiAxMnB4OwogICAgICAgIHBhZGRpbmc6IDhweCAxMnB4OwogICAgICAgIGJhY2tncm91bmQ6ICR7cC5iZFRoZW1lKCIjZjlmYWZiIiwiIzFmMjkzNyIpfTsKICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAke3AuYmRUaGVtZSgiI2U1ZTdlYiIsIiMzNzQxNTEiKX07CiAgICAgICAgYm9yZGVyLXJhZGl1czogNHB4OwogICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjE1cyBlYXNlOwogICAgICB9CiAgICAgIAogICAgICAuYXR0YWNobWVudC1pdGVtOmhvdmVyIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke3AuYmRUaGVtZSgiI2YzZjRmNiIsIiMzNzQxNTEiKX07CiAgICAgIH0KICAgICAgCiAgICAgIC5maWxlLWljb24gewogICAgICAgIGZvbnQtc2l6ZTogMjBweDsKICAgICAgICBmbGV4LXNocmluazogMDsKICAgICAgfQogICAgICAKICAgICAgLmZpbGUtaW5mbyB7CiAgICAgICAgZmxleDogMTsKICAgICAgICBtaW4td2lkdGg6IDA7CiAgICAgIH0KICAgICAgCiAgICAgIC5maWxlLW5hbWUgewogICAgICAgIGZvbnQtc2l6ZTogMTNweDsKICAgICAgICBmb250LXdlaWdodDogNTAwOwogICAgICAgIGNvbG9yOiAke3AuYmRUaGVtZSgiIzExMTgyNyIsIiNmOWZhZmIiKX07CiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpczsKICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwOwogICAgICB9CiAgICAgIAogICAgICAuZmlsZS1zaXplIHsKICAgICAgICBmb250LXNpemU6IDExcHg7CiAgICAgICAgY29sb3I6ICR7cC5iZFRoZW1lKCIjNmI3MjgwIiwiIzljYTNhZiIpfTsKICAgICAgICBtYXJnaW4tdG9wOiAycHg7CiAgICAgIH0KICAgICAgCiAgICAgIC5yZW1vdmUtZmlsZSB7CiAgICAgICAgZmxleC1zaHJpbms6IDA7CiAgICAgICAgd2lkdGg6IDI0cHg7CiAgICAgICAgaGVpZ2h0OiAyNHB4OwogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKICAgICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDsKICAgICAgICBib3JkZXI6IDFweCBzb2xpZCB0cmFuc3BhcmVudDsKICAgICAgICBib3JkZXItcmFkaXVzOiA0cHg7CiAgICAgICAgY29sb3I6ICR7cC5iZFRoZW1lKCIjNmI3MjgwIiwiIzljYTNhZiIpfTsKICAgICAgICBmb250LXNpemU6IDE4cHg7CiAgICAgICAgbGluZS1oZWlnaHQ6IDE7CiAgICAgICAgY3Vyc29yOiBwb2ludGVyOwogICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjE1cyBlYXNlOwogICAgICAgIHBhZGRpbmc6IDA7CiAgICAgIH0KICAgICAgCiAgICAgIC5yZW1vdmUtZmlsZTpob3ZlciB7CiAgICAgICAgYmFja2dyb3VuZDogJHtwLmJkVGhlbWUoIiNmZWUyZTIiLCIjOTkxYjFiIil9OwogICAgICAgIGJvcmRlci1jb2xvcjogJHtwLmJkVGhlbWUoIiNmY2E1YTUiLCIjZGMyNjI2Iil9OwogICAgICAgIGNvbG9yOiAke3AuYmRUaGVtZSgiI2RjMjYyNiIsIiNmY2E1YTUiKX07CiAgICAgIH0KICAgICAgCiAgICAgIC8qIEFkZCBNb3JlIEZpbGVzIEJ1dHRvbiAqLwogICAgICAuYWRkLW1vcmUtZmlsZXMgewogICAgICAgIG1hcmdpbjogOHB4OwogICAgICAgIHBhZGRpbmc6IDZweCAxMnB4OwogICAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50OwogICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICR7cC5iZFRoZW1lKCIjZTVlN2ViIiwiIzM3NDE1MSIpfTsKICAgICAgICBib3JkZXItcmFkaXVzOiA0cHg7CiAgICAgICAgZm9udC1zaXplOiAxM3B4OwogICAgICAgIGNvbG9yOiAke3AuYmRUaGVtZSgiIzM3NDE1MSIsIiNlNWU3ZWIiKX07CiAgICAgICAgY3Vyc29yOiBwb2ludGVyOwogICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjE1cyBlYXNlOwogICAgICAgIGZvbnQtZmFtaWx5OiAtYXBwbGUtc3lzdGVtLCBCbGlua01hY1N5c3RlbUZvbnQsICdTZWdvZSBVSScsIHNhbnMtc2VyaWY7CiAgICAgIH0KICAgICAgCiAgICAgIC5hZGQtbW9yZS1maWxlczpob3ZlciB7CiAgICAgICAgYmFja2dyb3VuZDogJHtwLmJkVGhlbWUoIiNmOWZhZmIiLCIjMWYyOTM3Iil9OwogICAgICAgIGJvcmRlci1jb2xvcjogJHtwLmJkVGhlbWUoIiNkMWQ1ZGIiLCIjNGI1NTYzIil9OwogICAgICB9CiAgICAgIAogICAgICAvKiBIaWRkZW4gZmlsZSBpbnB1dCAqLwogICAgICAuYXR0YWNobWVudC1maWxlLWlucHV0IHsKICAgICAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7CiAgICAgIH0KICAgIGB9fX0pO3ZhciBGOCxDZ3Q9YigoKT0+e1lhKCk7dWUoKTtGOD1jbGFzcyBleHRlbmRzIE0xe3R5cGU9ImRpdmlkZXIiO3JlbmRlcihlLGEpe3JldHVybmAKICAgICAgPGRpdiBjbGFzcz0iYmxvY2sgZGl2aWRlciR7YT8iIHNlbGVjdGVkIjoiIn0iIGRhdGEtYmxvY2staWQ9IiR7ZS5pZH0iIGRhdGEtYmxvY2stdHlwZT0iJHtlLnR5cGV9IiB0YWJpbmRleD0iMCI+CiAgICAgICAgPGhyPgogICAgICA8L2Rpdj4KICAgIGB9c2V0dXAoZSxhLGkpe2xldCByPWUucXVlcnlTZWxlY3RvcigiLmJsb2NrLmRpdmlkZXIiKTtyJiYoci5hZGRFdmVudExpc3RlbmVyKCJjbGljayIscz0+e3Muc3RvcFByb3BhZ2F0aW9uKCksci5mb2N1cygpLGkub25Gb2N1cz8uKCl9KSxyLmFkZEV2ZW50TGlzdGVuZXIoImZvY3VzIiwoKT0+e2kub25Gb2N1cz8uKCl9KSxyLmFkZEV2ZW50TGlzdGVuZXIoImJsdXIiLCgpPT57aS5vbkJsdXI/LigpfSksci5hZGRFdmVudExpc3RlbmVyKCJrZXlkb3duIixzPT57KHMua2V5PT09IkJhY2tzcGFjZSJ8fHMua2V5PT09IkRlbGV0ZSIpJiZzLnByZXZlbnREZWZhdWx0KCksaS5vbktleURvd24/LihzKX0pKX1nZXRTdHlsZXMoKXtyZXR1cm5gCiAgICAgIC5ibG9jay5kaXZpZGVyIHsKICAgICAgICBwYWRkaW5nOiA4cHggMDsKICAgICAgICBtYXJnaW46IDE2cHggMDsKICAgICAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICAgIGJvcmRlci1yYWRpdXM6IDRweDsKICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC4xNXMgZWFzZTsKICAgICAgfQoKICAgICAgLmJsb2NrLmRpdmlkZXI6Zm9jdXMgewogICAgICAgIG91dGxpbmU6IG5vbmU7CiAgICAgIH0KCiAgICAgIC5ibG9jay5kaXZpZGVyLnNlbGVjdGVkIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke3AuYmRUaGVtZSgicmdiYSgwLCAxMDIsIDIwNCwgMC4wNSkiLCJyZ2JhKDc3LCAxNDgsIDI1NSwgMC4wOCkiKX07CiAgICAgICAgYm94LXNoYWRvdzogaW5zZXQgMCAwIDAgMnB4ICR7cC5iZFRoZW1lKCJyZ2JhKDAsIDEwMiwgMjA0LCAwLjIpIiwicmdiYSg3NywgMTQ4LCAyNTUsIDAuMikiKX07CiAgICAgIH0KCiAgICAgIC5ibG9jay5kaXZpZGVyIGhyIHsKICAgICAgICBib3JkZXI6IG5vbmU7CiAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICR7cC5iZFRoZW1lKCIjZTBlMGUwIiwiIzMzMyIpfTsKICAgICAgICBtYXJnaW46IDA7CiAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7CiAgICAgIH0KICAgIGB9fX0pO3ZhciBPOCxfZ3Q9YigoKT0+e1lhKCk7dWUoKTtPOD1jbGFzcyBleHRlbmRzIE0xe3R5cGU9Im1hcmtkb3duIjtyZW5kZXIoZSxhKXtsZXQgaT1lLm1ldGFkYXRhPy5pc0VkaXRNb2RlPz8hMCxyPWUuY29udGVudHx8IiI7cmV0dXJuYAogICAgICA8ZGl2IGNsYXNzPSJtYXJrZG93bi1ibG9jay1jb250YWluZXIke2E/IiBzZWxlY3RlZCI6IiJ9IiAKICAgICAgICAgICBkYXRhLWJsb2NrLWlkPSIke2UuaWR9IgogICAgICAgICAgIGRhdGEtZWRpdC1tb2RlPSIke2l9Ij4KICAgICAgICA8ZGl2IGNsYXNzPSJtYXJrZG93bi1oZWFkZXIiPgogICAgICAgICAgPGRpdiBjbGFzcz0ibWFya2Rvd24taWNvbiI+TVx1MjE5MzwvZGl2PgogICAgICAgICAgPGRpdiBjbGFzcz0ibWFya2Rvd24tdGl0bGUiPk1hcmtkb3duPC9kaXY+CiAgICAgICAgICA8YnV0dG9uIGNsYXNzPSJtYXJrZG93bi10b2dnbGUtbW9kZSIgdGl0bGU9IiR7aT8iUHJldmlldyI6IkVkaXQifSI+CiAgICAgICAgICAgICR7aT8iXHV7MUY0NDF9XHVGRTBGIjoiXHUyNzBGXHVGRTBGIn0KICAgICAgICAgIDwvYnV0dG9uPgogICAgICAgIDwvZGl2PgogICAgICAgIDxkaXYgY2xhc3M9Im1hcmtkb3duLWNvbnRlbnQiPgogICAgICAgICAgJHtpP3RoaXMucmVuZGVyRWRpdG9yKHIpOnRoaXMucmVuZGVyUHJldmlldyhyKX0KICAgICAgICA8L2Rpdj4KICAgICAgPC9kaXY+CiAgICBgfXJlbmRlckVkaXRvcihlKXtyZXR1cm5gCiAgICAgIDx0ZXh0YXJlYSBjbGFzcz0ibWFya2Rvd24tZWRpdG9yIiAKICAgICAgICAgICAgICAgIHBsYWNlaG9sZGVyPSJFbnRlciBtYXJrZG93biBjb250ZW50Li4uIgogICAgICAgICAgICAgICAgc3BlbGxjaGVjaz0iZmFsc2UiPiR7dGhpcy5lc2NhcGVIdG1sKGUpfTwvdGV4dGFyZWE+CiAgICBgfXJlbmRlclByZXZpZXcoZSl7cmV0dXJuYAogICAgICA8ZGl2IGNsYXNzPSJtYXJrZG93bi1wcmV2aWV3Ij4KICAgICAgICAke3RoaXMucGFyc2VNYXJrZG93bihlKXx8JzxkaXYgY2xhc3M9InByZXZpZXctZW1wdHkiPk5vIGNvbnRlbnQgdG8gcHJldmlldzwvZGl2Pid9CiAgICAgIDwvZGl2PgogICAgYH1zZXR1cChlLGEsaSl7bGV0IHI9ZS5xdWVyeVNlbGVjdG9yKCIubWFya2Rvd24tYmxvY2stY29udGFpbmVyIikscz1lLnF1ZXJ5U2VsZWN0b3IoIi5tYXJrZG93bi10b2dnbGUtbW9kZSIpO2lmKCFyfHwhcyl7Y29uc29sZS5lcnJvcigiTWFya2Rvd25CbG9ja0hhbmRsZXI6IENvdWxkIG5vdCBmaW5kIHJlcXVpcmVkIGVsZW1lbnRzIik7cmV0dXJufWEubWV0YWRhdGF8fChhLm1ldGFkYXRhPXt9KSxhLm1ldGFkYXRhLmlzRWRpdE1vZGU9PT12b2lkIDAmJihhLm1ldGFkYXRhLmlzRWRpdE1vZGU9ITApLHMuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLG49PntpZihuLnByZXZlbnREZWZhdWx0KCksbi5zdG9wUHJvcGFnYXRpb24oKSxhLm1ldGFkYXRhLmlzRWRpdE1vZGUpe2xldCBvPXIucXVlcnlTZWxlY3RvcigiLm1hcmtkb3duLWVkaXRvciIpO28mJihhLmNvbnRlbnQ9by52YWx1ZSl9YS5tZXRhZGF0YS5pc0VkaXRNb2RlPSFhLm1ldGFkYXRhLmlzRWRpdE1vZGUsaS5vblJlcXVlc3RVcGRhdGU/LigpfSksYS5tZXRhZGF0YS5pc0VkaXRNb2RlP3RoaXMuc2V0dXBFZGl0b3IoZSxhLGkpOnRoaXMuc2V0dXBQcmV2aWV3KGUsYSxpKX1zZXR1cEVkaXRvcihlLGEsaSl7bGV0IHI9ZS5xdWVyeVNlbGVjdG9yKCIubWFya2Rvd24tZWRpdG9yIik7ciYmKHIuYWRkRXZlbnRMaXN0ZW5lcigiZm9jdXMiLCgpPT5pLm9uRm9jdXMoKSksci5hZGRFdmVudExpc3RlbmVyKCJibHVyIiwoKT0+aS5vbkJsdXIoKSksci5hZGRFdmVudExpc3RlbmVyKCJpbnB1dCIsKCk9PnthLmNvbnRlbnQ9ci52YWx1ZX0pLHIuYWRkRXZlbnRMaXN0ZW5lcigia2V5ZG93biIscz0+e2lmKHMua2V5PT09IlRhYiIpe3MucHJldmVudERlZmF1bHQoKTtsZXQgbj1yLnNlbGVjdGlvblN0YXJ0LG89ci5zZWxlY3Rpb25FbmQsZD1yLnZhbHVlO2lmKHMuc2hpZnRLZXkpe2xldCBsPWQuc3Vic3RyaW5nKDAsbikubGFzdEluZGV4T2YoYApgKSsxLGY9ZC5zdWJzdHJpbmcobCxuKTtmLnN0YXJ0c1dpdGgoIiAgIikmJihyLnZhbHVlPWQuc3Vic3RyaW5nKDAsbCkrZi5zdWJzdHJpbmcoMikrZC5zdWJzdHJpbmcobiksci5zZWxlY3Rpb25TdGFydD1yLnNlbGVjdGlvbkVuZD1uLTIpfWVsc2Ugci52YWx1ZT1kLnN1YnN0cmluZygwLG4pKyIgICIrZC5zdWJzdHJpbmcobyksci5zZWxlY3Rpb25TdGFydD1yLnNlbGVjdGlvbkVuZD1uKzI7YS5jb250ZW50PXIudmFsdWU7cmV0dXJufWlmKChzLmN0cmxLZXl8fHMubWV0YUtleSkmJnMua2V5PT09ImIiKXtzLnByZXZlbnREZWZhdWx0KCksdGhpcy53cmFwU2VsZWN0aW9uKHIsIioqIiwiKioiKSxhLmNvbnRlbnQ9ci52YWx1ZTtyZXR1cm59aWYoKHMuY3RybEtleXx8cy5tZXRhS2V5KSYmcy5rZXk9PT0iaSIpe3MucHJldmVudERlZmF1bHQoKSx0aGlzLndyYXBTZWxlY3Rpb24ociwiXyIsIl8iKSxhLmNvbnRlbnQ9ci52YWx1ZTtyZXR1cm59aWYoKHMuY3RybEtleXx8cy5tZXRhS2V5KSYmcy5rZXk9PT0iayIpe3MucHJldmVudERlZmF1bHQoKSx0aGlzLmluc2VydExpbmsociksYS5jb250ZW50PXIudmFsdWU7cmV0dXJufWkub25LZXlEb3duKHMpfSksdGhpcy5hdXRvUmVzaXplKHIpLHIuYWRkRXZlbnRMaXN0ZW5lcigiaW5wdXQiLCgpPT50aGlzLmF1dG9SZXNpemUocikpKX1zZXR1cFByZXZpZXcoZSxhLGkpe2xldCByPWUucXVlcnlTZWxlY3RvcigiLm1hcmtkb3duLWJsb2NrLWNvbnRhaW5lciIpLHM9ZS5xdWVyeVNlbGVjdG9yKCIubWFya2Rvd24tcHJldmlldyIpOyFyfHwhc3x8KHMuc2V0QXR0cmlidXRlKCJ0YWJpbmRleCIsIjAiKSxzLmFkZEV2ZW50TGlzdGVuZXIoImZvY3VzIiwoKT0+aS5vbkZvY3VzKCkpLHMuYWRkRXZlbnRMaXN0ZW5lcigiYmx1ciIsKCk9Pmkub25CbHVyKCkpLHMuYWRkRXZlbnRMaXN0ZW5lcigia2V5ZG93biIsbj0+e2lmKG4ua2V5PT09IkVudGVyIiYmIW4uc2hpZnRLZXkpe24ucHJldmVudERlZmF1bHQoKSxhLm1ldGFkYXRhLmlzRWRpdE1vZGU9ITAsaS5vblJlcXVlc3RVcGRhdGU/LigpO3JldHVybn1pLm9uS2V5RG93bihuKX0pKX13cmFwU2VsZWN0aW9uKGUsYSxpKXtsZXQgcj1lLnNlbGVjdGlvblN0YXJ0LHM9ZS5zZWxlY3Rpb25FbmQsbj1lLnZhbHVlLnN1YnN0cmluZyhyLHMpLG89YSsobnx8InRleHQiKStpO2UudmFsdWU9ZS52YWx1ZS5zdWJzdHJpbmcoMCxyKStvK2UudmFsdWUuc3Vic3RyaW5nKHMpLG4/KGUuc2VsZWN0aW9uU3RhcnQ9cixlLnNlbGVjdGlvbkVuZD1yK28ubGVuZ3RoKTooZS5zZWxlY3Rpb25TdGFydD1yK2EubGVuZ3RoLGUuc2VsZWN0aW9uRW5kPXIrYS5sZW5ndGgrNCksZS5mb2N1cygpfWluc2VydExpbmsoZSl7bGV0IGE9ZS5zZWxlY3Rpb25TdGFydCxpPWUuc2VsZWN0aW9uRW5kLHM9ZS52YWx1ZS5zdWJzdHJpbmcoYSxpKXx8ImxpbmsgdGV4dCIsbj1gWyR7c31dKHVybClgO2UudmFsdWU9ZS52YWx1ZS5zdWJzdHJpbmcoMCxhKStuK2UudmFsdWUuc3Vic3RyaW5nKGkpLGUuc2VsZWN0aW9uU3RhcnQ9YStzLmxlbmd0aCszLGUuc2VsZWN0aW9uRW5kPWErcy5sZW5ndGgrNixlLmZvY3VzKCl9YXV0b1Jlc2l6ZShlKXtlLnN0eWxlLmhlaWdodD0iYXV0byIsZS5zdHlsZS5oZWlnaHQ9ZS5zY3JvbGxIZWlnaHQrInB4In1wYXJzZU1hcmtkb3duKGUpe2xldCBhPXRoaXMuZXNjYXBlSHRtbChlKTtyZXR1cm4gYT1hLnJlcGxhY2UoL14jIyMgKC4rKSQvZ20sIjxoMz4kMTwvaDM+IiksYT1hLnJlcGxhY2UoL14jIyAoLispJC9nbSwiPGgyPiQxPC9oMj4iKSxhPWEucmVwbGFjZSgvXiMgKC4rKSQvZ20sIjxoMT4kMTwvaDE+IiksYT1hLnJlcGxhY2UoL1wqXCooLis/KVwqXCovZywiPHN0cm9uZz4kMTwvc3Ryb25nPiIpLGE9YS5yZXBsYWNlKC9fXyguKz8pX18vZywiPHN0cm9uZz4kMTwvc3Ryb25nPiIpLGE9YS5yZXBsYWNlKC9cKiguKz8pXCovZywiPGVtPiQxPC9lbT4iKSxhPWEucmVwbGFjZSgvXyguKz8pXy9nLCI8ZW0+JDE8L2VtPiIpLGE9YS5yZXBsYWNlKC9gYGAoW1xzXFNdKj8pYGBgL2csIjxwcmU+PGNvZGU+JDE8L2NvZGU+PC9wcmU+IiksYT1hLnJlcGxhY2UoL2AoLis/KWAvZywiPGNvZGU+JDE8L2NvZGU+IiksYT1hLnJlcGxhY2UoL1xbKFteXF1dKylcXVwoKFteKV0rKVwpL2csJzxhIGhyZWY9IiQyIj4kMTwvYT4nKSxhPWEucmVwbGFjZSgvXlwqICguKykkL2dtLCI8bGk+JDE8L2xpPiIpLGE9YS5yZXBsYWNlKC9eLSAoLispJC9nbSwiPGxpPiQxPC9saT4iKSxhPWEucmVwbGFjZSgvXlxkK1wuICguKykkL2dtLCI8bGk+JDE8L2xpPiIpLGE9YS5yZXBsYWNlKC8oPGxpPi4qPFwvbGk+XG4/KSsvZyxpPT4iPHVsPiIraSsiPC91bD4iKSxhPWEucmVwbGFjZSgvXG5cbi9nLCI8L3A+PHA+IiksYT0iPHA+IithKyI8L3A+IixhPWEucmVwbGFjZSgvPHA+PFwvcD4vZywiIiksYT1hLnJlcGxhY2UoLzxwPig8aFsxLTNdPikvZywiJDEiKSxhPWEucmVwbGFjZSgvKDxcL2hbMS0zXT4pPFwvcD4vZywiJDEiKSxhPWEucmVwbGFjZSgvPHA+KDx1bD4pL2csIiQxIiksYT1hLnJlcGxhY2UoLyg8XC91bD4pPFwvcD4vZywiJDEiKSxhPWEucmVwbGFjZSgvPHA+KDxwcmU+KS9nLCIkMSIpLGE9YS5yZXBsYWNlKC8oPFwvcHJlPik8XC9wPi9nLCIkMSIpLGF9ZXNjYXBlSHRtbChlKXtsZXQgYT1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTtyZXR1cm4gYS50ZXh0Q29udGVudD1lLGEuaW5uZXJIVE1MfWdldENvbnRlbnQoZSl7bGV0IGE9ZS5xdWVyeVNlbGVjdG9yKCIubWFya2Rvd24tZWRpdG9yIik7aWYoYSlyZXR1cm4gYS52YWx1ZTtsZXQgcj1lLnF1ZXJ5U2VsZWN0b3IoIi5tYXJrZG93bi1ibG9jay1jb250YWluZXIiKT8uZ2V0QXR0cmlidXRlKCJkYXRhLWJsb2NrLWlkIik7cmV0dXJuIiJ9c2V0Q29udGVudChlLGEpe2xldCBpPWUucXVlcnlTZWxlY3RvcigiLm1hcmtkb3duLWVkaXRvciIpO2kmJihpLnZhbHVlPWEsdGhpcy5hdXRvUmVzaXplKGkpKX1nZXRDdXJzb3JQb3NpdGlvbihlKXtsZXQgYT1lLnF1ZXJ5U2VsZWN0b3IoIi5tYXJrZG93bi1lZGl0b3IiKTtyZXR1cm4gYT9hLnNlbGVjdGlvblN0YXJ0Om51bGx9c2V0Q3Vyc29yVG9TdGFydChlKXtsZXQgYT1lLnF1ZXJ5U2VsZWN0b3IoIi5tYXJrZG93bi1lZGl0b3IiKTthPyhhLnNlbGVjdGlvblN0YXJ0PWEuc2VsZWN0aW9uRW5kPTAsYS5mb2N1cygpKTp0aGlzLmZvY3VzKGUpfXNldEN1cnNvclRvRW5kKGUpe2xldCBhPWUucXVlcnlTZWxlY3RvcigiLm1hcmtkb3duLWVkaXRvciIpO2lmKGEpe2xldCBpPWEudmFsdWUubGVuZ3RoO2Euc2VsZWN0aW9uU3RhcnQ9YS5zZWxlY3Rpb25FbmQ9aSxhLmZvY3VzKCl9ZWxzZSB0aGlzLmZvY3VzKGUpfWZvY3VzKGUpe2xldCBhPWUucXVlcnlTZWxlY3RvcigiLm1hcmtkb3duLWVkaXRvciIpO2E/YS5mb2N1cygpOmUucXVlcnlTZWxlY3RvcigiLm1hcmtkb3duLXByZXZpZXciKT8uZm9jdXMoKX1mb2N1c1dpdGhDdXJzb3IoZSxhPSJlbmQiKXtsZXQgaT1lLnF1ZXJ5U2VsZWN0b3IoIi5tYXJrZG93bi1lZGl0b3IiKTtpP2E9PT0ic3RhcnQiP3RoaXMuc2V0Q3Vyc29yVG9TdGFydChlKTphPT09ImVuZCI/dGhpcy5zZXRDdXJzb3JUb0VuZChlKTp0eXBlb2YgYT09Im51bWJlciImJihpLnNlbGVjdGlvblN0YXJ0PWkuc2VsZWN0aW9uRW5kPWEsaS5mb2N1cygpKTp0aGlzLmZvY3VzKGUpfWdldFNwbGl0Q29udGVudChlKXtsZXQgYT1lLnF1ZXJ5U2VsZWN0b3IoIi5tYXJrZG93bi1lZGl0b3IiKTtpZighYSlyZXR1cm4gbnVsbDtsZXQgaT1hLnNlbGVjdGlvblN0YXJ0O3JldHVybntiZWZvcmU6YS52YWx1ZS5zdWJzdHJpbmcoMCxpKSxhZnRlcjphLnZhbHVlLnN1YnN0cmluZyhpKX19Z2V0U3R5bGVzKCl7cmV0dXJuYAogICAgICAvKiBNYXJrZG93biBCbG9jayBDb250YWluZXIgKi8KICAgICAgLm1hcmtkb3duLWJsb2NrLWNvbnRhaW5lciB7CiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICAgIG1hcmdpbjogMTJweCAwOwogICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICR7cC5iZFRoZW1lKCIjZTVlN2ViIiwiIzM3NDE1MSIpfTsKICAgICAgICBib3JkZXItcmFkaXVzOiA2cHg7CiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC4xNXMgZWFzZTsKICAgICAgICBiYWNrZ3JvdW5kOiAke3AuYmRUaGVtZSgiI2ZmZmZmZiIsIiMxMTE4MjciKX07CiAgICAgIH0KICAgICAgCiAgICAgIC5tYXJrZG93bi1ibG9jay1jb250YWluZXIuc2VsZWN0ZWQgewogICAgICAgIGJvcmRlci1jb2xvcjogJHtwLmJkVGhlbWUoIiM5Y2EzYWYiLCIjNmI3MjgwIil9OwogICAgICB9CiAgICAgIAogICAgICAvKiBIZWFkZXIgKi8KICAgICAgLm1hcmtkb3duLWhlYWRlciB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGdhcDogOHB4OwogICAgICAgIHBhZGRpbmc6IDhweCAxMnB4OwogICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAke3AuYmRUaGVtZSgiI2U1ZTdlYiIsIiMzNzQxNTEiKX07CiAgICAgICAgYmFja2dyb3VuZDogJHtwLmJkVGhlbWUoIiNmOWZhZmIiLCIjMGEwYTBhIil9OwogICAgICB9CiAgICAgIAogICAgICAubWFya2Rvd24taWNvbiB7CiAgICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7CiAgICAgICAgb3BhY2l0eTogMC44OwogICAgICB9CiAgICAgIAogICAgICAubWFya2Rvd24tdGl0bGUgewogICAgICAgIGZsZXg6IDE7CiAgICAgICAgZm9udC1zaXplOiAxM3B4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7CiAgICAgICAgY29sb3I6ICR7cC5iZFRoZW1lKCIjMzc0MTUxIiwiI2U1ZTdlYiIpfTsKICAgICAgfQogICAgICAKICAgICAgLm1hcmtkb3duLXRvZ2dsZS1tb2RlIHsKICAgICAgICBwYWRkaW5nOiA0cHggOHB4OwogICAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50OwogICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICR7cC5iZFRoZW1lKCIjZTVlN2ViIiwiIzM3NDE1MSIpfTsKICAgICAgICBib3JkZXItcmFkaXVzOiA0cHg7CiAgICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgICAgIGN1cnNvcjogcG9pbnRlcjsKICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC4xNXMgZWFzZTsKICAgICAgfQogICAgICAKICAgICAgLm1hcmtkb3duLXRvZ2dsZS1tb2RlOmhvdmVyIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke3AuYmRUaGVtZSgiI2YzZjRmNiIsIiMxZjI5MzciKX07CiAgICAgICAgYm9yZGVyLWNvbG9yOiAke3AuYmRUaGVtZSgiI2QxZDVkYiIsIiM0YjU1NjMiKX07CiAgICAgIH0KICAgICAgCiAgICAgIC8qIENvbnRlbnQgKi8KICAgICAgLm1hcmtkb3duLWNvbnRlbnQgewogICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgICBtaW4taGVpZ2h0OiAxMjBweDsKICAgICAgfQogICAgICAKICAgICAgLyogRWRpdG9yICovCiAgICAgIC5tYXJrZG93bi1lZGl0b3IgewogICAgICAgIHdpZHRoOiAxMDAlOwogICAgICAgIG1pbi1oZWlnaHQ6IDEyMHB4OwogICAgICAgIHBhZGRpbmc6IDEycHg7CiAgICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7CiAgICAgICAgYm9yZGVyOiBub25lOwogICAgICAgIG91dGxpbmU6IG5vbmU7CiAgICAgICAgcmVzaXplOiBub25lOwogICAgICAgIGZvbnQtZmFtaWx5OiAnTW9uYWNvJywgJ0NvbnNvbGFzJywgJ0NvdXJpZXIgTmV3JywgbW9ub3NwYWNlOwogICAgICAgIGZvbnQtc2l6ZTogMTNweDsKICAgICAgICBsaW5lLWhlaWdodDogMS42OwogICAgICAgIGNvbG9yOiAke3AuYmRUaGVtZSgiIzFmMjkzNyIsIiNmM2Y0ZjYiKX07CiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgICAgfQogICAgICAKICAgICAgLm1hcmtkb3duLWVkaXRvcjo6cGxhY2Vob2xkZXIgewogICAgICAgIGNvbG9yOiAke3AuYmRUaGVtZSgiIzljYTNhZiIsIiM2YjcyODAiKX07CiAgICAgIH0KICAgICAgCiAgICAgIC8qIFByZXZpZXcgKi8KICAgICAgLm1hcmtkb3duLXByZXZpZXcgewogICAgICAgIHBhZGRpbmc6IDEycHg7CiAgICAgICAgbWluLWhlaWdodDogOTZweDsKICAgICAgICBvdXRsaW5lOiBub25lOwogICAgICAgIGZvbnQtc2l6ZTogMTRweDsKICAgICAgICBsaW5lLWhlaWdodDogMS42OwogICAgICAgIGNvbG9yOiAke3AuYmRUaGVtZSgiIzFmMjkzNyIsIiNmM2Y0ZjYiKX07CiAgICAgIH0KICAgICAgCiAgICAgIC5wcmV2aWV3LWVtcHR5IHsKICAgICAgICBjb2xvcjogJHtwLmJkVGhlbWUoIiM5Y2EzYWYiLCIjNmI3MjgwIil9OwogICAgICAgIGZvbnQtc3R5bGU6IGl0YWxpYzsKICAgICAgfQogICAgICAKICAgICAgLyogTWFya2Rvd24gcHJldmlldyBzdHlsZXMgKi8KICAgICAgLm1hcmtkb3duLXByZXZpZXcgaDEgewogICAgICAgIGZvbnQtc2l6ZTogMjRweDsKICAgICAgICBmb250LXdlaWdodDogNjAwOwogICAgICAgIG1hcmdpbjogMTZweCAwIDhweCAwOwogICAgICAgIGNvbG9yOiAke3AuYmRUaGVtZSgiIzExMTgyNyIsIiNmOWZhZmIiKX07CiAgICAgIH0KICAgICAgCiAgICAgIC5tYXJrZG93bi1wcmV2aWV3IGgyIHsKICAgICAgICBmb250LXNpemU6IDIwcHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDsKICAgICAgICBtYXJnaW46IDE0cHggMCA2cHggMDsKICAgICAgICBjb2xvcjogJHtwLmJkVGhlbWUoIiMxMTE4MjciLCIjZjlmYWZiIil9OwogICAgICB9CiAgICAgIAogICAgICAubWFya2Rvd24tcHJldmlldyBoMyB7CiAgICAgICAgZm9udC1zaXplOiAxOHB4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7CiAgICAgICAgbWFyZ2luOiAxMnB4IDAgNHB4IDA7CiAgICAgICAgY29sb3I6ICR7cC5iZFRoZW1lKCIjMTExODI3IiwiI2Y5ZmFmYiIpfTsKICAgICAgfQogICAgICAKICAgICAgLm1hcmtkb3duLXByZXZpZXcgcCB7CiAgICAgICAgbWFyZ2luOiA4cHggMDsKICAgICAgfQogICAgICAKICAgICAgLm1hcmtkb3duLXByZXZpZXcgdWwsCiAgICAgIC5tYXJrZG93bi1wcmV2aWV3IG9sIHsKICAgICAgICBtYXJnaW46IDhweCAwOwogICAgICAgIHBhZGRpbmctbGVmdDogMjRweDsKICAgICAgfQogICAgICAKICAgICAgLm1hcmtkb3duLXByZXZpZXcgbGkgewogICAgICAgIG1hcmdpbjogNHB4IDA7CiAgICAgIH0KICAgICAgCiAgICAgIC5tYXJrZG93bi1wcmV2aWV3IGNvZGUgewogICAgICAgIGJhY2tncm91bmQ6ICR7cC5iZFRoZW1lKCIjZjNmNGY2IiwiIzFmMjkzNyIpfTsKICAgICAgICBwYWRkaW5nOiAycHggNHB4OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDNweDsKICAgICAgICBmb250LWZhbWlseTogJ01vbmFjbycsICdDb25zb2xhcycsICdDb3VyaWVyIE5ldycsIG1vbm9zcGFjZTsKICAgICAgICBmb250LXNpemU6IDAuOWVtOwogICAgICB9CiAgICAgIAogICAgICAubWFya2Rvd24tcHJldmlldyBwcmUgewogICAgICAgIGJhY2tncm91bmQ6ICR7cC5iZFRoZW1lKCIjZjNmNGY2IiwiIzFmMjkzNyIpfTsKICAgICAgICBwYWRkaW5nOiAxMnB4OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDRweDsKICAgICAgICBvdmVyZmxvdy14OiBhdXRvOwogICAgICAgIG1hcmdpbjogOHB4IDA7CiAgICAgIH0KICAgICAgCiAgICAgIC5tYXJrZG93bi1wcmV2aWV3IHByZSBjb2RlIHsKICAgICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDsKICAgICAgICBwYWRkaW5nOiAwOwogICAgICB9CiAgICAgIAogICAgICAubWFya2Rvd24tcHJldmlldyBzdHJvbmcgewogICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7CiAgICAgICAgY29sb3I6ICR7cC5iZFRoZW1lKCIjMTExODI3IiwiI2Y5ZmFmYiIpfTsKICAgICAgfQogICAgICAKICAgICAgLm1hcmtkb3duLXByZXZpZXcgZW0gewogICAgICAgIGZvbnQtc3R5bGU6IGl0YWxpYzsKICAgICAgfQogICAgICAKICAgICAgLm1hcmtkb3duLXByZXZpZXcgYSB7CiAgICAgICAgY29sb3I6ICR7cC5iZFRoZW1lKCIjM2I4MmY2IiwiIzYwYTVmYSIpfTsKICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7CiAgICAgIH0KICAgICAgCiAgICAgIC5tYXJrZG93bi1wcmV2aWV3IGE6aG92ZXIgewogICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lOwogICAgICB9CiAgICAgIAogICAgICAubWFya2Rvd24tcHJldmlldyBibG9ja3F1b3RlIHsKICAgICAgICBib3JkZXItbGVmdDogM3B4IHNvbGlkICR7cC5iZFRoZW1lKCIjZTVlN2ViIiwiIzM3NDE1MSIpfTsKICAgICAgICBwYWRkaW5nLWxlZnQ6IDEycHg7CiAgICAgICAgbWFyZ2luOiA4cHggMDsKICAgICAgICBjb2xvcjogJHtwLmJkVGhlbWUoIiM2YjcyODAiLCIjOWNhM2FmIil9OwogICAgICB9CiAgICBgfX19KTt2YXIgUjgsVGd0PWIoKCk9PntZYSgpO3VlKCk7Ujg9Y2xhc3MgZXh0ZW5kcyBNMXt0eXBlPSJodG1sIjtyZW5kZXIoZSxhKXtsZXQgaT1lLm1ldGFkYXRhPy5pc0VkaXRNb2RlPz8hMCxyPWUuY29udGVudHx8IiI7cmV0dXJuYAogICAgICA8ZGl2IGNsYXNzPSJodG1sLWJsb2NrLWNvbnRhaW5lciR7YT8iIHNlbGVjdGVkIjoiIn0iIAogICAgICAgICAgIGRhdGEtYmxvY2staWQ9IiR7ZS5pZH0iCiAgICAgICAgICAgZGF0YS1lZGl0LW1vZGU9IiR7aX0iPgogICAgICAgIDxkaXYgY2xhc3M9Imh0bWwtaGVhZGVyIj4KICAgICAgICAgIDxkaXYgY2xhc3M9Imh0bWwtaWNvbiI+Jmx0Oy8mZ3Q7PC9kaXY+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJodG1sLXRpdGxlIj5IVE1MPC9kaXY+CiAgICAgICAgICA8YnV0dG9uIGNsYXNzPSJodG1sLXRvZ2dsZS1tb2RlIiB0aXRsZT0iJHtpPyJQcmV2aWV3IjoiRWRpdCJ9Ij4KICAgICAgICAgICAgJHtpPyJcdXsxRjQ0MX1cdUZFMEYiOiJcdTI3MEZcdUZFMEYifQogICAgICAgICAgPC9idXR0b24+CiAgICAgICAgPC9kaXY+CiAgICAgICAgPGRpdiBjbGFzcz0iaHRtbC1jb250ZW50Ij4KICAgICAgICAgICR7aT90aGlzLnJlbmRlckVkaXRvcihyKTp0aGlzLnJlbmRlclByZXZpZXcocil9CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGl2PgogICAgYH1yZW5kZXJFZGl0b3IoZSl7cmV0dXJuYAogICAgICA8dGV4dGFyZWEgY2xhc3M9Imh0bWwtZWRpdG9yIiAKICAgICAgICAgICAgICAgIHBsYWNlaG9sZGVyPSJFbnRlciBIVE1MIGNvbnRlbnQuLi4iCiAgICAgICAgICAgICAgICBzcGVsbGNoZWNrPSJmYWxzZSI+JHt0aGlzLmVzY2FwZUh0bWwoZSl9PC90ZXh0YXJlYT4KICAgIGB9cmVuZGVyUHJldmlldyhlKXtyZXR1cm5gCiAgICAgIDxkaXYgY2xhc3M9Imh0bWwtcHJldmlldyI+CiAgICAgICAgJHtlfHwnPGRpdiBjbGFzcz0icHJldmlldy1lbXB0eSI+Tm8gY29udGVudCB0byBwcmV2aWV3PC9kaXY+J30KICAgICAgPC9kaXY+CiAgICBgfXNldHVwKGUsYSxpKXtsZXQgcj1lLnF1ZXJ5U2VsZWN0b3IoIi5odG1sLWJsb2NrLWNvbnRhaW5lciIpLHM9ZS5xdWVyeVNlbGVjdG9yKCIuaHRtbC10b2dnbGUtbW9kZSIpO2lmKCFyfHwhcyl7Y29uc29sZS5lcnJvcigiSHRtbEJsb2NrSGFuZGxlcjogQ291bGQgbm90IGZpbmQgcmVxdWlyZWQgZWxlbWVudHMiKTtyZXR1cm59YS5tZXRhZGF0YXx8KGEubWV0YWRhdGE9e30pLGEubWV0YWRhdGEuaXNFZGl0TW9kZT09PXZvaWQgMCYmKGEubWV0YWRhdGEuaXNFZGl0TW9kZT0hMCkscy5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsbj0+e2lmKG4ucHJldmVudERlZmF1bHQoKSxuLnN0b3BQcm9wYWdhdGlvbigpLGEubWV0YWRhdGEuaXNFZGl0TW9kZSl7bGV0IG89ci5xdWVyeVNlbGVjdG9yKCIuaHRtbC1lZGl0b3IiKTtvJiYoYS5jb250ZW50PW8udmFsdWUpfWEubWV0YWRhdGEuaXNFZGl0TW9kZT0hYS5tZXRhZGF0YS5pc0VkaXRNb2RlLGkub25SZXF1ZXN0VXBkYXRlPy4oKX0pLGEubWV0YWRhdGEuaXNFZGl0TW9kZT90aGlzLnNldHVwRWRpdG9yKGUsYSxpKTp0aGlzLnNldHVwUHJldmlldyhlLGEsaSl9c2V0dXBFZGl0b3IoZSxhLGkpe2xldCByPWUucXVlcnlTZWxlY3RvcigiLmh0bWwtZWRpdG9yIik7ciYmKHIuYWRkRXZlbnRMaXN0ZW5lcigiZm9jdXMiLCgpPT5pLm9uRm9jdXMoKSksci5hZGRFdmVudExpc3RlbmVyKCJibHVyIiwoKT0+aS5vbkJsdXIoKSksci5hZGRFdmVudExpc3RlbmVyKCJpbnB1dCIsKCk9PnthLmNvbnRlbnQ9ci52YWx1ZSx0aGlzLnZhbGlkYXRlSHRtbChyLnZhbHVlKX0pLHIuYWRkRXZlbnRMaXN0ZW5lcigia2V5ZG93biIscz0+e2lmKHMua2V5PT09IlRhYiIpe3MucHJldmVudERlZmF1bHQoKTtsZXQgbj1yLnNlbGVjdGlvblN0YXJ0LG89ci5zZWxlY3Rpb25FbmQsZD1yLnZhbHVlO2lmKHMuc2hpZnRLZXkpe2xldCBsPWQuc3Vic3RyaW5nKDAsbikubGFzdEluZGV4T2YoYApgKSsxLGY9ZC5zdWJzdHJpbmcobCxuKTtmLnN0YXJ0c1dpdGgoIiAgIikmJihyLnZhbHVlPWQuc3Vic3RyaW5nKDAsbCkrZi5zdWJzdHJpbmcoMikrZC5zdWJzdHJpbmcobiksci5zZWxlY3Rpb25TdGFydD1yLnNlbGVjdGlvbkVuZD1uLTIpfWVsc2Ugci52YWx1ZT1kLnN1YnN0cmluZygwLG4pKyIgICIrZC5zdWJzdHJpbmcobyksci5zZWxlY3Rpb25TdGFydD1yLnNlbGVjdGlvbkVuZD1uKzI7YS5jb250ZW50PXIudmFsdWU7cmV0dXJufWlmKChzLmN0cmxLZXl8fHMubWV0YUtleSkmJnMua2V5PT09Ii8iKXtzLnByZXZlbnREZWZhdWx0KCksdGhpcy5hdXRvQ2xvc2VUYWcociksYS5jb250ZW50PXIudmFsdWU7cmV0dXJufWkub25LZXlEb3duKHMpfSksdGhpcy5hdXRvUmVzaXplKHIpLHIuYWRkRXZlbnRMaXN0ZW5lcigiaW5wdXQiLCgpPT50aGlzLmF1dG9SZXNpemUocikpKX1zZXR1cFByZXZpZXcoZSxhLGkpe2xldCByPWUucXVlcnlTZWxlY3RvcigiLmh0bWwtYmxvY2stY29udGFpbmVyIikscz1lLnF1ZXJ5U2VsZWN0b3IoIi5odG1sLXByZXZpZXciKTshcnx8IXN8fChzLnNldEF0dHJpYnV0ZSgidGFiaW5kZXgiLCIwIikscy5hZGRFdmVudExpc3RlbmVyKCJmb2N1cyIsKCk9Pmkub25Gb2N1cygpKSxzLmFkZEV2ZW50TGlzdGVuZXIoImJsdXIiLCgpPT5pLm9uQmx1cigpKSxzLmFkZEV2ZW50TGlzdGVuZXIoImtleWRvd24iLG49PntpZihuLmtleT09PSJFbnRlciImJiFuLnNoaWZ0S2V5KXtuLnByZXZlbnREZWZhdWx0KCksYS5tZXRhZGF0YS5pc0VkaXRNb2RlPSEwLGkub25SZXF1ZXN0VXBkYXRlPy4oKTtyZXR1cm59aS5vbktleURvd24obil9KSx0aGlzLnNhbmRib3hDb250ZW50KHMpKX1hdXRvQ2xvc2VUYWcoZSl7bGV0IGE9ZS5zZWxlY3Rpb25TdGFydCxpPWUudmFsdWUscj1hO2Zvcig7cj4wJiZpW3ItMV0hPT0iPCI7KXItLTtpZihyPjApe2xldCBuPWkuc3Vic3RyaW5nKHIsYSkubWF0Y2goL14oXHcrKS8pO2lmKG4pe2xldCBkPWA8LyR7blsxXX0+YDtlLnZhbHVlPWkuc3Vic3RyaW5nKDAsYSkrIj4iK2QraS5zdWJzdHJpbmcoYSksZS5zZWxlY3Rpb25TdGFydD1lLnNlbGVjdGlvbkVuZD1hKzF9fX1hdXRvUmVzaXplKGUpe2Uuc3R5bGUuaGVpZ2h0PSJhdXRvIixlLnN0eWxlLmhlaWdodD1lLnNjcm9sbEhlaWdodCsicHgifXZhbGlkYXRlSHRtbChlKXtsZXQgYT1bXSxpPS88XC8/KFthLXpBLVpdW2EtekEtWjAtOV0qKVxiW14+XSo+L2cscjtmb3IoOyhyPWkuZXhlYyhlKSkhPT1udWxsOyl7bGV0IHM9clswXS5zdGFydHNXaXRoKCI8LyIpLG49clsxXS50b0xvd2VyQ2FzZSgpO2lmKHMpe2lmKGEubGVuZ3RoPT09MHx8YVthLmxlbmd0aC0xXSE9PW4pcmV0dXJuIGNvbnNvbGUud2FybihgTWlzbWF0Y2hlZCBjbG9zaW5nIHRhZzogJHtufWApLCExO2EucG9wKCl9ZWxzZSByWzBdLmVuZHNXaXRoKCIvPiIpfHxhLnB1c2gobil9cmV0dXJuIGEubGVuZ3RoPjA/KGNvbnNvbGUud2FybihgVW5jbG9zZWQgdGFnczogJHthLmpvaW4oIiwgIil9YCksITEpOiEwfXNhbmRib3hDb250ZW50KGUpe2UucXVlcnlTZWxlY3RvckFsbCgic2NyaXB0IikuZm9yRWFjaChzPT5zLnJlbW92ZSgpKSxlLnF1ZXJ5U2VsZWN0b3JBbGwoIioiKS5mb3JFYWNoKHM9PntBcnJheS5mcm9tKHMuYXR0cmlidXRlcykuZm9yRWFjaChuPT57bi5uYW1lLnN0YXJ0c1dpdGgoIm9uIikmJnMucmVtb3ZlQXR0cmlidXRlKG4ubmFtZSl9KX0pLGUucXVlcnlTZWxlY3RvckFsbCgiZm9ybSIpLmZvckVhY2gocz0+e3MuYWRkRXZlbnRMaXN0ZW5lcigic3VibWl0IixuPT57bi5wcmV2ZW50RGVmYXVsdCgpLG4uc3RvcFByb3BhZ2F0aW9uKCl9KX0pfWVzY2FwZUh0bWwoZSl7bGV0IGE9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7cmV0dXJuIGEudGV4dENvbnRlbnQ9ZSxhLmlubmVySFRNTH1nZXRDb250ZW50KGUpe2xldCBhPWUucXVlcnlTZWxlY3RvcigiLmh0bWwtZWRpdG9yIik7aWYoYSlyZXR1cm4gYS52YWx1ZTtsZXQgcj1lLnF1ZXJ5U2VsZWN0b3IoIi5odG1sLWJsb2NrLWNvbnRhaW5lciIpPy5nZXRBdHRyaWJ1dGUoImRhdGEtYmxvY2staWQiKTtyZXR1cm4iIn1zZXRDb250ZW50KGUsYSl7bGV0IGk9ZS5xdWVyeVNlbGVjdG9yKCIuaHRtbC1lZGl0b3IiKTtpJiYoaS52YWx1ZT1hLHRoaXMuYXV0b1Jlc2l6ZShpKSl9Z2V0Q3Vyc29yUG9zaXRpb24oZSl7bGV0IGE9ZS5xdWVyeVNlbGVjdG9yKCIuaHRtbC1lZGl0b3IiKTtyZXR1cm4gYT9hLnNlbGVjdGlvblN0YXJ0Om51bGx9c2V0Q3Vyc29yVG9TdGFydChlKXtsZXQgYT1lLnF1ZXJ5U2VsZWN0b3IoIi5odG1sLWVkaXRvciIpO2E/KGEuc2VsZWN0aW9uU3RhcnQ9YS5zZWxlY3Rpb25FbmQ9MCxhLmZvY3VzKCkpOnRoaXMuZm9jdXMoZSl9c2V0Q3Vyc29yVG9FbmQoZSl7bGV0IGE9ZS5xdWVyeVNlbGVjdG9yKCIuaHRtbC1lZGl0b3IiKTtpZihhKXtsZXQgaT1hLnZhbHVlLmxlbmd0aDthLnNlbGVjdGlvblN0YXJ0PWEuc2VsZWN0aW9uRW5kPWksYS5mb2N1cygpfWVsc2UgdGhpcy5mb2N1cyhlKX1mb2N1cyhlKXtsZXQgYT1lLnF1ZXJ5U2VsZWN0b3IoIi5odG1sLWVkaXRvciIpO2E/YS5mb2N1cygpOmUucXVlcnlTZWxlY3RvcigiLmh0bWwtcHJldmlldyIpPy5mb2N1cygpfWZvY3VzV2l0aEN1cnNvcihlLGE9ImVuZCIpe2xldCBpPWUucXVlcnlTZWxlY3RvcigiLmh0bWwtZWRpdG9yIik7aT9hPT09InN0YXJ0Ij90aGlzLnNldEN1cnNvclRvU3RhcnQoZSk6YT09PSJlbmQiP3RoaXMuc2V0Q3Vyc29yVG9FbmQoZSk6dHlwZW9mIGE9PSJudW1iZXIiJiYoaS5zZWxlY3Rpb25TdGFydD1pLnNlbGVjdGlvbkVuZD1hLGkuZm9jdXMoKSk6dGhpcy5mb2N1cyhlKX1nZXRTcGxpdENvbnRlbnQoZSl7bGV0IGE9ZS5xdWVyeVNlbGVjdG9yKCIuaHRtbC1lZGl0b3IiKTtpZighYSlyZXR1cm4gbnVsbDtsZXQgaT1hLnNlbGVjdGlvblN0YXJ0O3JldHVybntiZWZvcmU6YS52YWx1ZS5zdWJzdHJpbmcoMCxpKSxhZnRlcjphLnZhbHVlLnN1YnN0cmluZyhpKX19Z2V0U3R5bGVzKCl7cmV0dXJuYAogICAgICAvKiBIVE1MIEJsb2NrIENvbnRhaW5lciAqLwogICAgICAuaHRtbC1ibG9jay1jb250YWluZXIgewogICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgICBtYXJnaW46IDEycHggMDsKICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAke3AuYmRUaGVtZSgiI2U1ZTdlYiIsIiMzNzQxNTEiKX07CiAgICAgICAgYm9yZGVyLXJhZGl1czogNnB4OwogICAgICAgIG92ZXJmbG93OiBoaWRkZW47CiAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuMTVzIGVhc2U7CiAgICAgICAgYmFja2dyb3VuZDogJHtwLmJkVGhlbWUoIiNmZmZmZmYiLCIjMTExODI3Iil9OwogICAgICB9CiAgICAgIAogICAgICAuaHRtbC1ibG9jay1jb250YWluZXIuc2VsZWN0ZWQgewogICAgICAgIGJvcmRlci1jb2xvcjogJHtwLmJkVGhlbWUoIiM5Y2EzYWYiLCIjNmI3MjgwIil9OwogICAgICB9CiAgICAgIAogICAgICAvKiBIZWFkZXIgKi8KICAgICAgLmh0bWwtaGVhZGVyIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgZ2FwOiA4cHg7CiAgICAgICAgcGFkZGluZzogOHB4IDEycHg7CiAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICR7cC5iZFRoZW1lKCIjZTVlN2ViIiwiIzM3NDE1MSIpfTsKICAgICAgICBiYWNrZ3JvdW5kOiAke3AuYmRUaGVtZSgiI2Y5ZmFmYiIsIiMwYTBhMGEiKX07CiAgICAgIH0KICAgICAgCiAgICAgIC5odG1sLWljb24gewogICAgICAgIGZvbnQtc2l6ZTogMTRweDsKICAgICAgICBmb250LXdlaWdodDogNjAwOwogICAgICAgIG9wYWNpdHk6IDAuODsKICAgICAgICBmb250LWZhbWlseTogJ01vbmFjbycsICdDb25zb2xhcycsICdDb3VyaWVyIE5ldycsIG1vbm9zcGFjZTsKICAgICAgfQogICAgICAKICAgICAgLmh0bWwtdGl0bGUgewogICAgICAgIGZsZXg6IDE7CiAgICAgICAgZm9udC1zaXplOiAxM3B4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7CiAgICAgICAgY29sb3I6ICR7cC5iZFRoZW1lKCIjMzc0MTUxIiwiI2U1ZTdlYiIpfTsKICAgICAgfQogICAgICAKICAgICAgLmh0bWwtdG9nZ2xlLW1vZGUgewogICAgICAgIHBhZGRpbmc6IDRweCA4cHg7CiAgICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7CiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHtwLmJkVGhlbWUoIiNlNWU3ZWIiLCIjMzc0MTUxIil9OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDRweDsKICAgICAgICBmb250LXNpemU6IDE0cHg7CiAgICAgICAgY3Vyc29yOiBwb2ludGVyOwogICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjE1cyBlYXNlOwogICAgICB9CiAgICAgIAogICAgICAuaHRtbC10b2dnbGUtbW9kZTpob3ZlciB7CiAgICAgICAgYmFja2dyb3VuZDogJHtwLmJkVGhlbWUoIiNmM2Y0ZjYiLCIjMWYyOTM3Iil9OwogICAgICAgIGJvcmRlci1jb2xvcjogJHtwLmJkVGhlbWUoIiNkMWQ1ZGIiLCIjNGI1NTYzIil9OwogICAgICB9CiAgICAgIAogICAgICAvKiBDb250ZW50ICovCiAgICAgIC5odG1sLWNvbnRlbnQgewogICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgICBtaW4taGVpZ2h0OiAxMjBweDsKICAgICAgfQogICAgICAKICAgICAgLyogRWRpdG9yICovCiAgICAgIC5odG1sLWVkaXRvciB7CiAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgICAgbWluLWhlaWdodDogMTIwcHg7CiAgICAgICAgcGFkZGluZzogMTJweDsKICAgICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDsKICAgICAgICBib3JkZXI6IG5vbmU7CiAgICAgICAgb3V0bGluZTogbm9uZTsKICAgICAgICByZXNpemU6IG5vbmU7CiAgICAgICAgZm9udC1mYW1pbHk6ICdNb25hY28nLCAnQ29uc29sYXMnLCAnQ291cmllciBOZXcnLCBtb25vc3BhY2U7CiAgICAgICAgZm9udC1zaXplOiAxM3B4OwogICAgICAgIGxpbmUtaGVpZ2h0OiAxLjY7CiAgICAgICAgY29sb3I6ICR7cC5iZFRoZW1lKCIjMWYyOTM3IiwiI2YzZjRmNiIpfTsKICAgICAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgICB9CiAgICAgIAogICAgICAuaHRtbC1lZGl0b3I6OnBsYWNlaG9sZGVyIHsKICAgICAgICBjb2xvcjogJHtwLmJkVGhlbWUoIiM5Y2EzYWYiLCIjNmI3MjgwIil9OwogICAgICB9CiAgICAgIAogICAgICAvKiBQcmV2aWV3ICovCiAgICAgIC5odG1sLXByZXZpZXcgewogICAgICAgIHBhZGRpbmc6IDEycHg7CiAgICAgICAgbWluLWhlaWdodDogOTZweDsKICAgICAgICBvdXRsaW5lOiBub25lOwogICAgICAgIGZvbnQtc2l6ZTogMTRweDsKICAgICAgICBsaW5lLWhlaWdodDogMS42OwogICAgICAgIGNvbG9yOiAke3AuYmRUaGVtZSgiIzFmMjkzNyIsIiNmM2Y0ZjYiKX07CiAgICAgIH0KICAgICAgCiAgICAgIC5wcmV2aWV3LWVtcHR5IHsKICAgICAgICBjb2xvcjogJHtwLmJkVGhlbWUoIiM5Y2EzYWYiLCIjNmI3MjgwIil9OwogICAgICAgIGZvbnQtc3R5bGU6IGl0YWxpYzsKICAgICAgfQogICAgICAKICAgICAgLyogU2FuZGJveGVkIEhUTUwgcHJldmlldyBzdHlsZXMgKi8KICAgICAgLmh0bWwtcHJldmlldyAqIHsKICAgICAgICBtYXgtd2lkdGg6IDEwMCU7CiAgICAgIH0KICAgICAgCiAgICAgIC5odG1sLXByZXZpZXcgaW1nIHsKICAgICAgICBoZWlnaHQ6IGF1dG87CiAgICAgIH0KICAgICAgCiAgICAgIC5odG1sLXByZXZpZXcgYSB7CiAgICAgICAgY29sb3I6ICR7cC5iZFRoZW1lKCIjM2I4MmY2IiwiIzYwYTVmYSIpfTsKICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7CiAgICAgIH0KICAgICAgCiAgICAgIC5odG1sLXByZXZpZXcgYTpob3ZlciB7CiAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7CiAgICAgIH0KICAgICAgCiAgICAgIC5odG1sLXByZXZpZXcgdGFibGUgewogICAgICAgIGJvcmRlci1jb2xsYXBzZTogY29sbGFwc2U7CiAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgICAgbWFyZ2luOiA4cHggMDsKICAgICAgfQogICAgICAKICAgICAgLmh0bWwtcHJldmlldyB0aCwKICAgICAgLmh0bWwtcHJldmlldyB0ZCB7CiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHtwLmJkVGhlbWUoIiNlNWU3ZWIiLCIjMzc0MTUxIil9OwogICAgICAgIHBhZGRpbmc6IDhweDsKICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0OwogICAgICB9CiAgICAgIAogICAgICAuaHRtbC1wcmV2aWV3IHRoIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke3AuYmRUaGVtZSgiI2Y5ZmFmYiIsIiMxZjI5MzciKX07CiAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDsKICAgICAgfQogICAgICAKICAgICAgLmh0bWwtcHJldmlldyBwcmUgewogICAgICAgIGJhY2tncm91bmQ6ICR7cC5iZFRoZW1lKCIjZjNmNGY2IiwiIzFmMjkzNyIpfTsKICAgICAgICBwYWRkaW5nOiAxMnB4OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDRweDsKICAgICAgICBvdmVyZmxvdy14OiBhdXRvOwogICAgICAgIG1hcmdpbjogOHB4IDA7CiAgICAgIH0KICAgICAgCiAgICAgIC5odG1sLXByZXZpZXcgY29kZSB7CiAgICAgICAgYmFja2dyb3VuZDogJHtwLmJkVGhlbWUoIiNmM2Y0ZjYiLCIjMWYyOTM3Iil9OwogICAgICAgIHBhZGRpbmc6IDJweCA0cHg7CiAgICAgICAgYm9yZGVyLXJhZGl1czogM3B4OwogICAgICAgIGZvbnQtZmFtaWx5OiAnTW9uYWNvJywgJ0NvbnNvbGFzJywgJ0NvdXJpZXIgTmV3JywgbW9ub3NwYWNlOwogICAgICAgIGZvbnQtc2l6ZTogMC45ZW07CiAgICAgIH0KICAgICAgCiAgICAgIC5odG1sLXByZXZpZXcgcHJlIGNvZGUgewogICAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50OwogICAgICAgIHBhZGRpbmc6IDA7CiAgICAgIH0KICAgIGB9fX0pO3ZhciBDVj1iKCgpPT57WWEoKTtnZ3QoKTtiZ3QoKTt2Z3QoKTt5Z3QoKTt4Z3QoKTt3Z3QoKTtNZ3QoKTt6Z3QoKTtrZ3QoKTtTZ3QoKTtDZ3QoKTtfZ3QoKTtUZ3QoKX0pO2Z1bmN0aW9uIExndCgpe3QxLnJlZ2lzdGVyKCJkaXZpZGVyIixuZXcgRjgpLHQxLnJlZ2lzdGVyKCJwYXJhZ3JhcGgiLG5ldyAkOCksdDEucmVnaXN0ZXIoImhlYWRpbmctMSIsbmV3IGM0KCJoZWFkaW5nLTEiKSksdDEucmVnaXN0ZXIoImhlYWRpbmctMiIsbmV3IGM0KCJoZWFkaW5nLTIiKSksdDEucmVnaXN0ZXIoImhlYWRpbmctMyIsbmV3IGM0KCJoZWFkaW5nLTMiKSksdDEucmVnaXN0ZXIoInF1b3RlIixuZXcgQTgpLHQxLnJlZ2lzdGVyKCJjb2RlIixuZXcgRDgpLHQxLnJlZ2lzdGVyKCJsaXN0IixuZXcgRTgpLHQxLnJlZ2lzdGVyKCJpbWFnZSIsbmV3IFA4KSx0MS5yZWdpc3RlcigieW91dHViZSIsbmV3IEk4KSx0MS5yZWdpc3RlcigiYXR0YWNobWVudCIsbmV3IE44KSx0MS5yZWdpc3RlcigibWFya2Rvd24iLG5ldyBPOCksdDEucmVnaXN0ZXIoImh0bWwiLG5ldyBSOCl9dmFyIF9WPWIoKCk9PntDVigpO0xndCgpfSk7dmFyIEI4LFRWPWIoKCk9Pnt1ZSgpO0cwKCk7QWEoKTtvNCgpO3J3KCk7Qjg9Y2xhc3N7c3RhdGljIGFzeW5jIHNob3dMYW5ndWFnZVNlbGVjdGlvbk1vZGFsKCl7cmV0dXJuIG5ldyBQcm9taXNlKGU9PntsZXQgYT1udWxsO28xLmNyZWF0ZUFuZFNob3coe2hlYWRpbmc6IlNlbGVjdCBQcm9ncmFtbWluZyBMYW5ndWFnZSIsY29udGVudDp3YAogICAgICAgICAgPHN0eWxlPgogICAgICAgICAgICAubGFuZ3VhZ2UtY29udGFpbmVyIHsKICAgICAgICAgICAgICBwYWRkaW5nOiAxNnB4OwogICAgICAgICAgICAgIG1heC1oZWlnaHQ6IDQwMHB4OwogICAgICAgICAgICAgIG92ZXJmbG93LXk6IGF1dG87CiAgICAgICAgICAgIH0KICAgICAgICAgICAgLmxhbmd1YWdlLWdyaWQgewogICAgICAgICAgICAgIGRpc3BsYXk6IGdyaWQ7CiAgICAgICAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoYXV0by1maWxsLCBtaW5tYXgoMTIwcHgsIDFmcikpOwogICAgICAgICAgICAgIGdhcDogOHB4OwogICAgICAgICAgICB9CiAgICAgICAgICAgIC5sYW5ndWFnZS1idXR0b24gewogICAgICAgICAgICAgIHBhZGRpbmc6IDEycHggOHB4OwogICAgICAgICAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50OwogICAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICR7cC5iZFRoZW1lKCIjZTVlN2ViIiwiIzM3NDE1MSIpfTsKICAgICAgICAgICAgICBib3JkZXItcmFkaXVzOiA2cHg7CiAgICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyOwogICAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjsKICAgICAgICAgICAgICBmb250LXNpemU6IDEzcHg7CiAgICAgICAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDsKICAgICAgICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC4xNXMgZWFzZTsKICAgICAgICAgICAgICBjb2xvcjogJHtwLmJkVGhlbWUoIiMzNzQxNTEiLCIjZTVlN2ViIil9OwogICAgICAgICAgICB9CiAgICAgICAgICAgIC5sYW5ndWFnZS1idXR0b246aG92ZXIgewogICAgICAgICAgICAgIGJhY2tncm91bmQ6ICR7cC5iZFRoZW1lKCIjZjlmYWZiIiwiIzFmMjkzNyIpfTsKICAgICAgICAgICAgICBib3JkZXItY29sb3I6ICR7cC5iZFRoZW1lKCIjZDFkNWRiIiwiIzRiNTU2MyIpfTsKICAgICAgICAgICAgfQogICAgICAgICAgICAubGFuZ3VhZ2UtYnV0dG9uLnNlbGVjdGVkIHsKICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAke3AuYmRUaGVtZSgiI2YzZjRmNiIsIiMzNzQxNTEiKX07CiAgICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAke3AuYmRUaGVtZSgiIzljYTNhZiIsIiM2YjcyODAiKX07CiAgICAgICAgICAgICAgY29sb3I6ICR7cC5iZFRoZW1lKCIjMTExODI3IiwiI2Y5ZmFmYiIpfTsKICAgICAgICAgICAgfQogICAgICAgICAgPC9zdHlsZT4KICAgICAgICAgIDxkaXYgY2xhc3M9Imxhbmd1YWdlLWNvbnRhaW5lciI+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9Imxhbmd1YWdlLWdyaWQiPgogICAgICAgICAgICAgICR7dGhpcy5nZXRMYW5ndWFnZXMoKS5tYXAoaT0+d2AKICAgICAgICAgICAgICAgIDxkaXYgCiAgICAgICAgICAgICAgICAgIGNsYXNzPSJsYW5ndWFnZS1idXR0b24gJHthPT09aS50b0xvd2VyQ2FzZSgpPyJzZWxlY3RlZCI6IiJ9IiAKICAgICAgICAgICAgICAgICAgQGNsaWNrPSIkeygpPT57YT1pLnRvTG93ZXJDYXNlKCk7bGV0IHI9ZG9jdW1lbnQucXVlcnlTZWxlY3RvcigiZGVlcy1tb2RhbCIpO3ImJnR5cGVvZiByLmRlc3Ryb3k9PSJmdW5jdGlvbiImJnIuZGVzdHJveSgpLGUoYSl9fSI+CiAgICAgICAgICAgICAgICAgICR7aX0KICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgIGApfQogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIDwvZGl2PgogICAgICAgIGAsbWVudU9wdGlvbnM6W3tuYW1lOiJDYW5jZWwiLGFjdGlvbjphc3luYyBpPT57aS5kZXN0cm95KCksZShudWxsKX19XX0pfSl9c3RhdGljIGFzeW5jIHNob3dCbG9ja1NldHRpbmdzTW9kYWwoZSxhKXtsZXQgaT13YAogICAgICA8c3R5bGU+CiAgICAgICAgLnNldHRpbmdzLWNvbnRhaW5lciB7CiAgICAgICAgICBwYWRkaW5nOiAxNnB4OwogICAgICAgIH0KICAgICAgICAuc2V0dGluZ3Mtc2VjdGlvbiB7CiAgICAgICAgICBtYXJnaW4tYm90dG9tOiAyNHB4OwogICAgICAgIH0KICAgICAgICAuc2V0dGluZ3Mtc2VjdGlvbjpsYXN0LWNoaWxkIHsKICAgICAgICAgIG1hcmdpbi1ib3R0b206IDA7CiAgICAgICAgfQogICAgICAgIC5zZXR0aW5ncy1sYWJlbCB7CiAgICAgICAgICBmb250LXdlaWdodDogNTAwOwogICAgICAgICAgbWFyZ2luLWJvdHRvbTogOHB4OwogICAgICAgICAgY29sb3I6ICR7cC5iZFRoZW1lKCIjNmI3MjgwIiwiIzljYTNhZiIpfTsKICAgICAgICAgIGZvbnQtc2l6ZTogMTJweDsKICAgICAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7CiAgICAgICAgICBsZXR0ZXItc3BhY2luZzogMC4wNWVtOwogICAgICAgIH0KICAgICAgICAuYmxvY2stdHlwZS1ncmlkIHsKICAgICAgICAgIGRpc3BsYXk6IGdyaWQ7CiAgICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdChhdXRvLWZpbGwsIG1pbm1heCgxNjBweCwgMWZyKSk7CiAgICAgICAgICBnYXA6IDhweDsKICAgICAgICB9CiAgICAgICAgLmJsb2NrLXR5cGUtYnV0dG9uIHsKICAgICAgICAgIHBhZGRpbmc6IDEycHg7CiAgICAgICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDsKICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICR7cC5iZFRoZW1lKCIjZTVlN2ViIiwiIzM3NDE1MSIpfTsKICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDZweDsKICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjsKICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7CiAgICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC4xNXMgZWFzZTsKICAgICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgICAgZ2FwOiA4cHg7CiAgICAgICAgICBmb250LXNpemU6IDEzcHg7CiAgICAgICAgICBjb2xvcjogJHtwLmJkVGhlbWUoIiMzNzQxNTEiLCIjZTVlN2ViIil9OwogICAgICAgIH0KICAgICAgICAuYmxvY2stdHlwZS1idXR0b246aG92ZXIgewogICAgICAgICAgYmFja2dyb3VuZDogJHtwLmJkVGhlbWUoIiNmOWZhZmIiLCIjMWYyOTM3Iil9OwogICAgICAgICAgYm9yZGVyLWNvbG9yOiAke3AuYmRUaGVtZSgiI2QxZDVkYiIsIiM0YjU1NjMiKX07CiAgICAgICAgfQogICAgICAgIC5ibG9jay10eXBlLWJ1dHRvbi5zZWxlY3RlZCB7CiAgICAgICAgICBiYWNrZ3JvdW5kOiAke3AuYmRUaGVtZSgiI2YzZjRmNiIsIiMzNzQxNTEiKX07CiAgICAgICAgICBib3JkZXItY29sb3I6ICR7cC5iZFRoZW1lKCIjOWNhM2FmIiwiIzZiNzI4MCIpfTsKICAgICAgICAgIGNvbG9yOiAke3AuYmRUaGVtZSgiIzExMTgyNyIsIiNmOWZhZmIiKX07CiAgICAgICAgfQogICAgICAgIC5ibG9jay10eXBlLWljb24gewogICAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDsKICAgICAgICAgIGZvbnQtc2l6ZTogMTZweDsKICAgICAgICAgIHdpZHRoOiAyMHB4OwogICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyOwogICAgICAgICAgZmxleC1zaHJpbms6IDA7CiAgICAgICAgICBvcGFjaXR5OiAwLjc7CiAgICAgICAgfQogICAgICA8L3N0eWxlPgogICAgICA8ZGl2IGNsYXNzPSJzZXR0aW5ncy1jb250YWluZXIiPgogICAgICAgICR7dGhpcy5nZXRCbG9ja1R5cGVTZWxlY3RvcihlLGEpfQogICAgICAgICR7ZS50eXBlPT09ImNvZGUiP3RoaXMuZ2V0Q29kZUJsb2NrU2V0dGluZ3MoZSxhKToiIn0KICAgICAgPC9kaXY+CiAgICBgO28xLmNyZWF0ZUFuZFNob3coe2hlYWRpbmc6IkJsb2NrIFNldHRpbmdzIixjb250ZW50OmksbWVudU9wdGlvbnM6W3tuYW1lOiJEb25lIixhY3Rpb246YXN5bmMgcj0+e3IuZGVzdHJveSgpfX1dfSl9c3RhdGljIGdldENvZGVCbG9ja1NldHRpbmdzKGUsYSl7bGV0IGk9ZS5tZXRhZGF0YT8ubGFuZ3VhZ2V8fCJqYXZhc2NyaXB0IjtyZXR1cm4gd2AKICAgICAgPHN0eWxlPgogICAgICAgIC5sYW5ndWFnZS1ncmlkIHsKICAgICAgICAgIGRpc3BsYXk6IGdyaWQ7CiAgICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdChhdXRvLWZpbGwsIG1pbm1heCgxMDBweCwgMWZyKSk7CiAgICAgICAgICBnYXA6IDZweDsKICAgICAgICB9CiAgICAgICAgLmxhbmd1YWdlLWJ1dHRvbiB7CiAgICAgICAgICBwYWRkaW5nOiA4cHggNHB4OwogICAgICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7CiAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAke3AuYmRUaGVtZSgiI2U1ZTdlYiIsIiMzNzQxNTEiKX07CiAgICAgICAgICBib3JkZXItcmFkaXVzOiA0cHg7CiAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7CiAgICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC4xNXMgZWFzZTsKICAgICAgICAgIGZvbnQtc2l6ZTogMTJweDsKICAgICAgICAgIGNvbG9yOiAke3AuYmRUaGVtZSgiIzM3NDE1MSIsIiNlNWU3ZWIiKX07CiAgICAgICAgfQogICAgICAgIC5sYW5ndWFnZS1idXR0b246aG92ZXIgewogICAgICAgICAgYmFja2dyb3VuZDogJHtwLmJkVGhlbWUoIiNmOWZhZmIiLCIjMWYyOTM3Iil9OwogICAgICAgICAgYm9yZGVyLWNvbG9yOiAke3AuYmRUaGVtZSgiI2QxZDVkYiIsIiM0YjU1NjMiKX07CiAgICAgICAgfQogICAgICAgIC5sYW5ndWFnZS1idXR0b24uc2VsZWN0ZWQgewogICAgICAgICAgYmFja2dyb3VuZDogJHtwLmJkVGhlbWUoIiNmM2Y0ZjYiLCIjMzc0MTUxIil9OwogICAgICAgICAgYm9yZGVyLWNvbG9yOiAke3AuYmRUaGVtZSgiIzljYTNhZiIsIiM2YjcyODAiKX07CiAgICAgICAgICBjb2xvcjogJHtwLmJkVGhlbWUoIiMxMTE4MjciLCIjZjlmYWZiIil9OwogICAgICAgIH0KICAgICAgPC9zdHlsZT4KICAgICAgPGRpdiBjbGFzcz0ic2V0dGluZ3Mtc2VjdGlvbiI+CiAgICAgICAgPGRpdiBjbGFzcz0ic2V0dGluZ3MtbGFiZWwiPlByb2dyYW1taW5nIExhbmd1YWdlPC9kaXY+CiAgICAgICAgPGRpdiBjbGFzcz0ibGFuZ3VhZ2UtZ3JpZCI+CiAgICAgICAgICAke3RoaXMuZ2V0TGFuZ3VhZ2VzKCkubWFwKHI9PndgCiAgICAgICAgICAgIDxkaXYgCiAgICAgICAgICAgICAgY2xhc3M9Imxhbmd1YWdlLWJ1dHRvbiAke2k9PT1yLnRvTG93ZXJDYXNlKCk/InNlbGVjdGVkIjoiIn0iIAogICAgICAgICAgICAgIEBjbGljaz0iJHsoKT0+e2UubWV0YWRhdGF8fChlLm1ldGFkYXRhPXt9KSxlLm1ldGFkYXRhLmxhbmd1YWdlPXIudG9Mb3dlckNhc2UoKSxhKGUpO2xldCBzPWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoImRlZXMtbW9kYWwiKTtzJiZ0eXBlb2Ygcy5kZXN0cm95PT0iZnVuY3Rpb24iJiZzLmRlc3Ryb3koKX19IgogICAgICAgICAgICAgIGRhdGEtbGFuZz0iJHtyfSIKICAgICAgICAgICAgPiR7cn08L2Rpdj4KICAgICAgICAgIGApfQogICAgICAgIDwvZGl2PgogICAgICA8L2Rpdj4KICAgIGB9c3RhdGljIGdldExhbmd1YWdlcygpe3JldHVyblsuLi5UOF19c3RhdGljIGdldEJsb2NrVHlwZVNlbGVjdG9yKGUsYSl7bGV0IGk9VjEuZ2V0U2xhc2hNZW51SXRlbXMoKS5maWx0ZXIocj0+ci50eXBlIT09ImRpdmlkZXIiKTtyZXR1cm4gd2AKICAgICAgPGRpdiBjbGFzcz0ic2V0dGluZ3Mtc2VjdGlvbiI+CiAgICAgICAgPGRpdiBjbGFzcz0ic2V0dGluZ3MtbGFiZWwiPkJsb2NrIFR5cGU8L2Rpdj4KICAgICAgICA8ZGl2IGNsYXNzPSJibG9jay10eXBlLWdyaWQiPgogICAgICAgICAgJHtpLm1hcChyPT53YAogICAgICAgICAgICA8ZGl2IAogICAgICAgICAgICAgIGNsYXNzPSJibG9jay10eXBlLWJ1dHRvbiAke2UudHlwZT09PXIudHlwZT8ic2VsZWN0ZWQiOiIifSIKICAgICAgICAgICAgICBAY2xpY2s9IiR7YXN5bmMgcz0+e2xldCBuPXMuY3VycmVudFRhcmdldCxvPWUudHlwZTtpZihlLnR5cGU9ci50eXBlLG89PT0iY29kZSImJmUudHlwZSE9PSJjb2RlIilkZWxldGUgZS5tZXRhZGF0YT8ubGFuZ3VhZ2U7ZWxzZSBpZihvPT09Imxpc3QiJiZlLnR5cGUhPT0ibGlzdCIpZGVsZXRlIGUubWV0YWRhdGE/Lmxpc3RUeXBlO2Vsc2UgaWYoZS50eXBlPT09Imxpc3QiJiYhZS5tZXRhZGF0YT8ubGlzdFR5cGUpZS5tZXRhZGF0YT17bGlzdFR5cGU6ImJ1bGxldCJ9O2Vsc2UgaWYoZS50eXBlPT09ImNvZGUiJiYhZS5tZXRhZGF0YT8ubGFuZ3VhZ2Upe2xldCBjPWF3YWl0IHRoaXMuc2hvd0xhbmd1YWdlU2VsZWN0aW9uTW9kYWwoKTtpZihjKWUubWV0YWRhdGE9e2xhbmd1YWdlOmN9O2Vsc2V7ZS50eXBlPW87cmV0dXJufX1hKGUpO2xldCBkPWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoImRlZXMtbW9kYWwiKTtkJiZ0eXBlb2YgZC5kZXN0cm95PT0iZnVuY3Rpb24iJiZkLmRlc3Ryb3koKX19IgogICAgICAgICAgICA+CiAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImJsb2NrLXR5cGUtaWNvbiI+JHtyLmljb259PC9zcGFuPgogICAgICAgICAgICAgIDxzcGFuPiR7ci5sYWJlbH08L3NwYW4+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgYCl9CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGl2PgogICAgYH19fSk7dmFyIEg4LCRndD1iKCgpPT57QWEoKTtObCgpO280KCk7cXMoKTtTVigpO1RWKCk7SDg9Y2xhc3N7Y29tcG9uZW50O3NhdmVUaW1lb3V0PW51bGw7Y29uc3RydWN0b3IoZSl7dGhpcy5jb21wb25lbnQ9ZX1oYW5kbGVCbG9ja0lucHV0KGUsYSl7aWYodGhpcy5jb21wb25lbnQuaXNDb21wb3NpbmcpcmV0dXJuO2xldCBpPWUudGFyZ2V0LHI9aS50ZXh0Q29udGVudHx8IiIscz10aGlzLmRldGVjdEJsb2NrVHlwZUludGVudChyKTtpZihzJiZzLnR5cGUhPT1hLnR5cGUpe2UucHJldmVudERlZmF1bHQoKSx0aGlzLmhhbmRsZUJsb2NrVHJhbnNmb3JtYXRpb24oYSxzLGkpO3JldHVybn10aGlzLmhhbmRsZVNsYXNoQ29tbWFuZChyLGkpLHRoaXMuc2NoZWR1bGVBdXRvU2F2ZSgpfXVwZGF0ZUJsb2NrQ29udGVudChlLGEpe2xldCByPWEuY2xvc2VzdCgiLmJsb2NrLXdyYXBwZXIiKT8ucXVlcnlTZWxlY3RvcigiZGVlcy13eXNpd3lnLWJsb2NrIik7aWYocil7bGV0IHM9ci5nZXRDb250ZW50KCk7aWYoZS5jb250ZW50IT09cyYmKGUuY29udGVudD1zKSxlLnR5cGU9PT0ibGlzdCIpe2xldCBuPWEucXVlcnlTZWxlY3Rvcigib2wsIHVsIik7biYmKGUubWV0YWRhdGE9e2xpc3RUeXBlOm4udGFnTmFtZS50b0xvd2VyQ2FzZSgpPT09Im9sIj8ib3JkZXJlZCI6ImJ1bGxldCJ9KX19ZWxzZSBpZihlLnR5cGU9PT0ibGlzdCIpe2xldCBzPWEucXVlcnlTZWxlY3RvckFsbCgibGkiKTtlLmNvbnRlbnQ9QXJyYXkuZnJvbShzKS5tYXAobz0+by5pbm5lckhUTUx8fCIiKS5qb2luKGAKYCk7bGV0IG49YS5xdWVyeVNlbGVjdG9yKCJvbCwgdWwiKTtuJiYoZS5tZXRhZGF0YT17bGlzdFR5cGU6bi50YWdOYW1lLnRvTG93ZXJDYXNlKCk9PT0ib2wiPyJvcmRlcmVkIjoiYnVsbGV0In0pfWVsc2UgZS50eXBlPT09ImNvZGUiP2UuY29udGVudD1hLnRleHRDb250ZW50fHwiIjplLmNvbnRlbnQ9YS5pbm5lckhUTUx8fCIifWRldGVjdEJsb2NrVHlwZUludGVudChlKXtsZXQgYT1WMS5jaGVja0hlYWRpbmdTaG9ydGN1dChlKTtpZihhKXJldHVybiBhO2xldCBpPVYxLmNoZWNrTGlzdFNob3J0Y3V0KGUpO3JldHVybiBpfHwoVjEuY2hlY2tRdW90ZVNob3J0Y3V0KGUpP3t0eXBlOiJxdW90ZSJ9OlYxLmNoZWNrQ29kZVNob3J0Y3V0KGUpP3t0eXBlOiJjb2RlIn06VjEuY2hlY2tEaXZpZGVyU2hvcnRjdXQoZSk/e3R5cGU6ImRpdmlkZXIifTpudWxsKX1hc3luYyBoYW5kbGVCbG9ja1RyYW5zZm9ybWF0aW9uKGUsYSxpKXtsZXQgcj10aGlzLmNvbXBvbmVudC5ibG9ja09wZXJhdGlvbnM7aWYoYS50eXBlPT09Imxpc3QiKXtlLnR5cGU9Imxpc3QiLGUuY29udGVudD0iIixlLm1ldGFkYXRhPXtsaXN0VHlwZTphLmxpc3RUeXBlfTtsZXQgcz1hLmxpc3RUeXBlPT09Im9yZGVyZWQiPyJvbCI6InVsIjtpLmlubmVySFRNTD1gPCR7c30+PGxpPjwvbGk+PC8ke3N9PmAsdGhpcy5jb21wb25lbnQudXBkYXRlVmFsdWUoKSx0aGlzLmNvbXBvbmVudC5lZGl0b3JDb250ZW50UmVmJiZ0aGlzLmNvbXBvbmVudC51cGRhdGVCbG9ja0VsZW1lbnQoZS5pZCksc2V0VGltZW91dCgoKT0+e0EyLmZvY3VzTGlzdEl0ZW0oaSl9LDApfWVsc2UgaWYoYS50eXBlPT09ImRpdmlkZXIiKXtlLnR5cGU9ImRpdmlkZXIiLGUuY29udGVudD0iICIsdGhpcy5jb21wb25lbnQuZWRpdG9yQ29udGVudFJlZiYmdGhpcy5jb21wb25lbnQudXBkYXRlQmxvY2tFbGVtZW50KGUuaWQpO2xldCBzPXIuY3JlYXRlQmxvY2soKTtyLmluc2VydEJsb2NrQWZ0ZXIoZSxzKSx0aGlzLmNvbXBvbmVudC51cGRhdGVWYWx1ZSgpfWVsc2UgaWYoYS50eXBlPT09ImNvZGUiKXtsZXQgcz1hd2FpdCBCOC5zaG93TGFuZ3VhZ2VTZWxlY3Rpb25Nb2RhbCgpO3MmJihlLnR5cGU9ImNvZGUiLGUuY29udGVudD0iIixlLm1ldGFkYXRhPXtsYW5ndWFnZTpzfSxpLnRleHRDb250ZW50PSIiLHRoaXMuY29tcG9uZW50LnVwZGF0ZVZhbHVlKCksdGhpcy5jb21wb25lbnQuZWRpdG9yQ29udGVudFJlZiYmdGhpcy5jb21wb25lbnQudXBkYXRlQmxvY2tFbGVtZW50KGUuaWQpLHNldFRpbWVvdXQoYXN5bmMoKT0+e2F3YWl0IHIuZm9jdXNCbG9jayhlLmlkLCJzdGFydCIpfSw1MCkpfWVsc2UgZS50eXBlPWEudHlwZSxlLmNvbnRlbnQ9IiIsaS50ZXh0Q29udGVudD0iIix0aGlzLmNvbXBvbmVudC51cGRhdGVWYWx1ZSgpLHRoaXMuY29tcG9uZW50LmVkaXRvckNvbnRlbnRSZWYmJnRoaXMuY29tcG9uZW50LnVwZGF0ZUJsb2NrRWxlbWVudChlLmlkKSxzZXRUaW1lb3V0KGFzeW5jKCk9Pnthd2FpdCByLmZvY3VzQmxvY2soZS5pZCwic3RhcnQiKX0sNTApfWhhbmRsZVNsYXNoQ29tbWFuZChlLGEpe2xldCBpPXRoaXMuY29tcG9uZW50LnNsYXNoTWVudSxyPWkmJmkudmlzaWJsZTtpZihlPT09Ii8ifHxlLnN0YXJ0c1dpdGgoIi8iKSYmcil7aWYoIXImJmU9PT0iLyIpe2xldCBzPXRoaXMuZ2V0Q2FyZXRDb29yZGluYXRlcyhhKTtpLnNob3coe3g6cy5sZWZ0LHk6cy5ib3R0b20rNH0sbj0+e3RoaXMuY29tcG9uZW50Lmluc2VydEJsb2NrKG4pfSkscmVxdWVzdEFuaW1hdGlvbkZyYW1lKCgpPT57ZG9jdW1lbnQuYWN0aXZlRWxlbWVudCE9PWEmJmEuZm9jdXMoKX0pfWkmJmkudXBkYXRlRmlsdGVyKGUuc2xpY2UoMSkpfWVsc2UgZS5zdGFydHNXaXRoKCIvIil8fHRoaXMuY29tcG9uZW50LmNsb3NlU2xhc2hNZW51KCl9Z2V0Q2FyZXRDb29yZGluYXRlcyhlKXtsZXQgYT13aW5kb3cuZ2V0U2VsZWN0aW9uKCk7aWYoYSYmYS5yYW5nZUNvdW50PjApe2xldCByPWEuZ2V0UmFuZ2VBdCgwKS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtpZihyLndpZHRoPjB8fHIuaGVpZ2h0PjApcmV0dXJuIHJ9cmV0dXJuIGUuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCl9c2NoZWR1bGVBdXRvU2F2ZSgpe3RoaXMuc2F2ZVRpbWVvdXQmJmNsZWFyVGltZW91dCh0aGlzLnNhdmVUaW1lb3V0KSwhKHRoaXMuY29tcG9uZW50LnNsYXNoTWVudSYmdGhpcy5jb21wb25lbnQuc2xhc2hNZW51LnZpc2libGUpJiYodGhpcy5zYXZlVGltZW91dD1zZXRUaW1lb3V0KCgpPT57dGhpcy5zeW5jQWxsQmxvY2tDb250ZW50KCksdGhpcy5jb21wb25lbnQudXBkYXRlVmFsdWUoKX0sMmUzKSl9c3luY0FsbEJsb2NrQ29udGVudCgpe3RoaXMuY29tcG9uZW50LmJsb2Nrcy5mb3JFYWNoKGU9PntsZXQgaT10aGlzLmNvbXBvbmVudC5zaGFkb3dSb290Py5xdWVyeVNlbGVjdG9yKGBbZGF0YS1ibG9jay1pZD0iJHtlLmlkfSJdYCk/LnF1ZXJ5U2VsZWN0b3IoImRlZXMtd3lzaXd5Zy1ibG9jayIpO2lmKGkmJmkuZ2V0Q29udGVudCl7bGV0IHI9aS5nZXRDb250ZW50KCk7ZS5jb250ZW50IT09ciYmKGUuY29udGVudD1yKX19KX1kZXN0cm95KCl7dGhpcy5zYXZlVGltZW91dCYmY2xlYXJUaW1lb3V0KHRoaXMuc2F2ZVRpbWVvdXQpfX19KTt2YXIgcTgsQWd0PWIoKCk9PntBYSgpO05sKCk7VXIoKTtxOD1jbGFzc3tjb21wb25lbnQ7Y29uc3RydWN0b3IoZSl7dGhpcy5jb21wb25lbnQ9ZX1hc3luYyBoYW5kbGVCbG9ja0tleURvd24oZSxhKXtpZih0aGlzLmNvbXBvbmVudC5zbGFzaE1lbnUudmlzaWJsZSYmdGhpcy5pc1NsYXNoTWVudUtleShlLmtleSkpe3RoaXMuY29tcG9uZW50LmhhbmRsZVNsYXNoTWVudUtleWJvYXJkKGUpO3JldHVybn1pZighdGhpcy5oYW5kbGVGb3JtYXR0aW5nU2hvcnRjdXRzKGUpKXN3aXRjaChlLmtleSl7Y2FzZSJUYWIiOnRoaXMuaGFuZGxlVGFiKGUsYSk7YnJlYWs7Y2FzZSJFbnRlciI6YXdhaXQgdGhpcy5oYW5kbGVFbnRlcihlLGEpO2JyZWFrO2Nhc2UiQmFja3NwYWNlIjphd2FpdCB0aGlzLmhhbmRsZUJhY2tzcGFjZShlLGEpO2JyZWFrO2Nhc2UiRGVsZXRlIjphd2FpdCB0aGlzLmhhbmRsZURlbGV0ZShlLGEpO2JyZWFrO2Nhc2UiQXJyb3dVcCI6YXdhaXQgdGhpcy5oYW5kbGVBcnJvd1VwKGUsYSk7YnJlYWs7Y2FzZSJBcnJvd0Rvd24iOmF3YWl0IHRoaXMuaGFuZGxlQXJyb3dEb3duKGUsYSk7YnJlYWs7Y2FzZSJBcnJvd0xlZnQiOmF3YWl0IHRoaXMuaGFuZGxlQXJyb3dMZWZ0KGUsYSk7YnJlYWs7Y2FzZSJBcnJvd1JpZ2h0Ijphd2FpdCB0aGlzLmhhbmRsZUFycm93UmlnaHQoZSxhKTticmVha319aXNTbGFzaE1lbnVLZXkoZSl7cmV0dXJuWyJBcnJvd0Rvd24iLCJBcnJvd1VwIiwiRW50ZXIiLCJFc2NhcGUiXS5pbmNsdWRlcyhlKX1oYW5kbGVGb3JtYXR0aW5nU2hvcnRjdXRzKGUpe2lmKCEoZS5tZXRhS2V5fHxlLmN0cmxLZXkpKXJldHVybiExO3N3aXRjaChlLmtleS50b0xvd2VyQ2FzZSgpKXtjYXNlImIiOnJldHVybiBlLnByZXZlbnREZWZhdWx0KCksUHJvbWlzZS5yZXNvbHZlKCkudGhlbigoKT0+dGhpcy5jb21wb25lbnQuYXBwbHlGb3JtYXQoImJvbGQiKSksITA7Y2FzZSJpIjpyZXR1cm4gZS5wcmV2ZW50RGVmYXVsdCgpLFByb21pc2UucmVzb2x2ZSgpLnRoZW4oKCk9PnRoaXMuY29tcG9uZW50LmFwcGx5Rm9ybWF0KCJpdGFsaWMiKSksITA7Y2FzZSJ1IjpyZXR1cm4gZS5wcmV2ZW50RGVmYXVsdCgpLFByb21pc2UucmVzb2x2ZSgpLnRoZW4oKCk9PnRoaXMuY29tcG9uZW50LmFwcGx5Rm9ybWF0KCJ1bmRlcmxpbmUiKSksITA7Y2FzZSJrIjpyZXR1cm4gZS5wcmV2ZW50RGVmYXVsdCgpLFByb21pc2UucmVzb2x2ZSgpLnRoZW4oKCk9PnRoaXMuY29tcG9uZW50LmFwcGx5Rm9ybWF0KCJsaW5rIikpLCEwfXJldHVybiExfWhhbmRsZVRhYihlLGEpe2EudHlwZSE9PSJjb2RlIiYmYS50eXBlPT09Imxpc3QiJiZlLnByZXZlbnREZWZhdWx0KCl9YXN5bmMgaGFuZGxlRW50ZXIoZSxhKXtsZXQgaT10aGlzLmNvbXBvbmVudC5ibG9ja09wZXJhdGlvbnM7aWYoWyJkaXZpZGVyIiwiaW1hZ2UiLCJ5b3V0dWJlIiwiYXR0YWNobWVudCJdLmluY2x1ZGVzKGEudHlwZSkpe2UucHJldmVudERlZmF1bHQoKTtsZXQgcz1pLmNyZWF0ZUJsb2NrKCk7YXdhaXQgaS5pbnNlcnRCbG9ja0FmdGVyKGEscyk7cmV0dXJufWlmKGEudHlwZT09PSJjb2RlIil7aWYoZS5zaGlmdEtleSl7ZS5wcmV2ZW50RGVmYXVsdCgpO2xldCBzPWkuY3JlYXRlQmxvY2soKTthd2FpdCBpLmluc2VydEJsb2NrQWZ0ZXIoYSxzKX1yZXR1cm59aWYoIWUuc2hpZnRLZXkpaWYoYS50eXBlPT09Imxpc3QiKWF3YWl0IHRoaXMuaGFuZGxlRW50ZXJJbkxpc3QoZSxhKTtlbHNle2UucHJldmVudERlZmF1bHQoKTtsZXQgbj10aGlzLmNvbXBvbmVudC5zaGFkb3dSb290Py5xdWVyeVNlbGVjdG9yKGBbZGF0YS1ibG9jay1pZD0iJHthLmlkfSJdYCk/LnF1ZXJ5U2VsZWN0b3IoImRlZXMtd3lzaXd5Zy1ibG9jayIpO2lmKG4mJm4uZ2V0U3BsaXRDb250ZW50KXtsZXQgbz1uLmdldFNwbGl0Q29udGVudCgpO2lmKG8pe24uc2V0Q29udGVudChvLmJlZm9yZSksYS5jb250ZW50PW8uYmVmb3JlO2xldCBkPWkuY3JlYXRlQmxvY2soInBhcmFncmFwaCIsby5hZnRlcik7YXdhaXQgaS5pbnNlcnRCbG9ja0FmdGVyKGEsZCksdGhpcy5jb21wb25lbnQudXBkYXRlVmFsdWUoKX1lbHNle2xldCBkPWkuY3JlYXRlQmxvY2soKTthd2FpdCBpLmluc2VydEJsb2NrQWZ0ZXIoYSxkKX19ZWxzZXtsZXQgbz1pLmNyZWF0ZUJsb2NrKCk7YXdhaXQgaS5pbnNlcnRCbG9ja0FmdGVyKGEsbyl9fX1hc3luYyBoYW5kbGVFbnRlckluTGlzdChlLGEpe2xldCBpPXdpbmRvdy5nZXRTZWxlY3Rpb24oKTtpZihpJiZpLnJhbmdlQ291bnQ+MCl7bGV0IHM9aS5nZXRSYW5nZUF0KDApLnN0YXJ0Q29udGFpbmVyLnBhcmVudEVsZW1lbnQ/LmNsb3Nlc3QoImxpIik7aWYocyYmcy50ZXh0Q29udGVudD09PSIiKXtlLnByZXZlbnREZWZhdWx0KCk7bGV0IG49dGhpcy5jb21wb25lbnQuYmxvY2tPcGVyYXRpb25zLG89bi5jcmVhdGVCbG9jaygpO2F3YWl0IG4uaW5zZXJ0QmxvY2tBZnRlcihhLG8pfX19YXN5bmMgaGFuZGxlQmFja3NwYWNlKGUsYSl7bGV0IGk9dGhpcy5jb21wb25lbnQuYmxvY2tPcGVyYXRpb25zO2lmKFsiZGl2aWRlciIsImltYWdlIiwieW91dHViZSIsImF0dGFjaG1lbnQiXS5pbmNsdWRlcyhhLnR5cGUpKXtpZihlLnByZXZlbnREZWZhdWx0KCksdGhpcy5jb21wb25lbnQuYmxvY2tzLmxlbmd0aD09PTEpe3RoaXMuY29tcG9uZW50LnNhdmVUb0hpc3RvcnkoITEpLGkucmVtb3ZlQmxvY2soYS5pZCk7bGV0IHk9aS5jcmVhdGVCbG9jaygicGFyYWdyYXBoIiwiIik7dGhpcy5jb21wb25lbnQuYmxvY2tzPVt5XSx0aGlzLmNvbXBvbmVudC5yZW5kZXJCbG9ja3NQcm9ncmFtbWF0aWNhbGx5KCksYXdhaXQgaS5mb2N1c0Jsb2NrKHkuaWQsInN0YXJ0IiksdGhpcy5jb21wb25lbnQudXBkYXRlVmFsdWUoKTtyZXR1cm59dGhpcy5jb21wb25lbnQuc2F2ZVRvSGlzdG9yeSghMSk7bGV0IGY9aS5nZXRQcmV2aW91c0Jsb2NrKGEuaWQpLGc9aS5nZXROZXh0QmxvY2soYS5pZCk7aS5yZW1vdmVCbG9jayhhLmlkKSxmJiZmLnR5cGUhPT0iZGl2aWRlciImJmYudHlwZSE9PSJpbWFnZSI/YXdhaXQgaS5mb2N1c0Jsb2NrKGYuaWQsImVuZCIpOmcmJmcudHlwZSE9PSJkaXZpZGVyIiYmZy50eXBlIT09ImltYWdlIj9hd2FpdCBpLmZvY3VzQmxvY2soZy5pZCwic3RhcnQiKTpmP2F3YWl0IGkuZm9jdXNCbG9jayhmLmlkKTpnJiZhd2FpdCBpLmZvY3VzQmxvY2soZy5pZCk7cmV0dXJufWxldCBuPXRoaXMuY29tcG9uZW50LnNoYWRvd1Jvb3Q/LnF1ZXJ5U2VsZWN0b3IoYFtkYXRhLWJsb2NrLWlkPSIke2EuaWR9Il1gKT8ucXVlcnlTZWxlY3RvcigiZGVlcy13eXNpd3lnLWJsb2NrIik7aWYoIW58fCFuLnNoYWRvd1Jvb3QpcmV0dXJuO2xldCBvPWEudHlwZT09PSJjb2RlIj9uLnNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvcigiLmNvZGUtZWRpdG9yIik6bi5zaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3IoIi5ibG9jayIpO2lmKCFvKXJldHVybjtsZXQgZD1uLmNsb3Nlc3QoImRlZXMtaW5wdXQtd3lzaXd5ZyIpLGM9W107ZD8uc2hhZG93Um9vdCYmYy5wdXNoKGQuc2hhZG93Um9vdCksYy5wdXNoKG4uc2hhZG93Um9vdCk7bGV0IGg9UmUuZ2V0Q3Vyc29yUG9zaXRpb25JbkVsZW1lbnQobywuLi5jKSxsPW4uZ2V0Q29udGVudD9uLmdldENvbnRlbnQoKTpvLnRleHRDb250ZW50O2lmKGg9PT0wKXtlLnByZXZlbnREZWZhdWx0KCk7bGV0IGY9aS5nZXRQcmV2aW91c0Jsb2NrKGEuaWQpO2lmKGYpe2lmKFsiZGl2aWRlciIsImltYWdlIiwieW91dHViZSIsImF0dGFjaG1lbnQiXS5pbmNsdWRlcyhmLnR5cGUpKXthd2FpdCBpLmZvY3VzQmxvY2soZi5pZCk7cmV0dXJufWlmKHRoaXMuY29tcG9uZW50LnNhdmVUb0hpc3RvcnkoITEpLGYudHlwZT09PSJjb2RlIiYmYS50eXBlIT09ImNvZGUiKXthLmNvbnRlbnQ9PT0iIiYmKGkucmVtb3ZlQmxvY2soYS5pZCksYXdhaXQgaS5mb2N1c0Jsb2NrKGYuaWQsImVuZCIpKTtyZXR1cm59aWYoYS50eXBlPT09ImNvZGUiJiZmLnR5cGUhPT0iY29kZSIpe2xldCBGPW4uZ2V0Q29udGVudD9uLmdldENvbnRlbnQoKTphLmNvbnRlbnQ7KEY9PT0iInx8Ri50cmltKCk9PT0iIikmJihpLnJlbW92ZUJsb2NrKGEuaWQpLGF3YWl0IGkuZm9jdXNCbG9jayhmLmlkLCJlbmQiKSk7cmV0dXJufWxldCB2PXRoaXMuY29tcG9uZW50LnNoYWRvd1Jvb3Q/LnF1ZXJ5U2VsZWN0b3IoYFtkYXRhLWJsb2NrLWlkPSIke2YuaWR9Il1gKT8ucXVlcnlTZWxlY3RvcigiZGVlcy13eXNpd3lnLWJsb2NrIiksbT12Py5nZXRDb250ZW50KCl8fGYuY29udGVudHx8IiIseD1uLmdldENvbnRlbnQoKXx8YS5jb250ZW50fHwiIixNPSIiO2YudHlwZT09PSJjb2RlIiYmYS50eXBlPT09ImNvZGUifHxmLnR5cGU9PT0ibGlzdCImJmEudHlwZT09PSJsaXN0Ij9NPW0rKG0mJng/YApgOiIiKSt4Ok09bSsobSYmeD8iICI6IiIpK3g7bGV0IFM9bS5sZW5ndGg7aS51cGRhdGVCbG9ja0NvbnRlbnQoZi5pZCxNKSx2JiZ2LnNldENvbnRlbnQoTSksaS5yZW1vdmVCbG9jayhhLmlkKSxhd2FpdCBpLmZvY3VzQmxvY2soZi5pZCxTKX19ZWxzZSBpZih0aGlzLmNvbXBvbmVudC5ibG9ja3MubGVuZ3RoPjEpe2xldCBmPW4uZ2V0Q29udGVudD9uLmdldENvbnRlbnQoKTphLmNvbnRlbnQ7aWYoZj09PSIifHxmLnRyaW0oKT09PSIiKXtlLnByZXZlbnREZWZhdWx0KCk7bGV0IGc9aS5nZXRQcmV2aW91c0Jsb2NrKGEuaWQpO2cmJihpLnJlbW92ZUJsb2NrKGEuaWQpLGcudHlwZSE9PSJkaXZpZGVyIiYmYXdhaXQgaS5mb2N1c0Jsb2NrKGcuaWQsImVuZCIpKX19fWFzeW5jIGhhbmRsZURlbGV0ZShlLGEpe2xldCBpPXRoaXMuY29tcG9uZW50LmJsb2NrT3BlcmF0aW9ucztpZihbImRpdmlkZXIiLCJpbWFnZSIsInlvdXR1YmUiLCJhdHRhY2htZW50Il0uaW5jbHVkZXMoYS50eXBlKSl7aWYoZS5wcmV2ZW50RGVmYXVsdCgpLHRoaXMuY29tcG9uZW50LmJsb2Nrcy5sZW5ndGg9PT0xKXt0aGlzLmNvbXBvbmVudC5zYXZlVG9IaXN0b3J5KCExKSxpLnJlbW92ZUJsb2NrKGEuaWQpO2xldCB2PWkuY3JlYXRlQmxvY2soInBhcmFncmFwaCIsIiIpO3RoaXMuY29tcG9uZW50LmJsb2Nrcz1bdl0sdGhpcy5jb21wb25lbnQucmVuZGVyQmxvY2tzUHJvZ3JhbW1hdGljYWxseSgpLGF3YWl0IGkuZm9jdXNCbG9jayh2LmlkLCJzdGFydCIpLHRoaXMuY29tcG9uZW50LnVwZGF0ZVZhbHVlKCk7cmV0dXJufXRoaXMuY29tcG9uZW50LnNhdmVUb0hpc3RvcnkoITEpO2xldCBmPWkuZ2V0UHJldmlvdXNCbG9jayhhLmlkKSxnPWkuZ2V0TmV4dEJsb2NrKGEuaWQpO2kucmVtb3ZlQmxvY2soYS5pZCk7bGV0IHk9WyJkaXZpZGVyIiwiaW1hZ2UiLCJ5b3V0dWJlIiwiYXR0YWNobWVudCJdO2cmJiF5LmluY2x1ZGVzKGcudHlwZSk/YXdhaXQgaS5mb2N1c0Jsb2NrKGcuaWQsInN0YXJ0Iik6ZiYmIXkuaW5jbHVkZXMoZi50eXBlKT9hd2FpdCBpLmZvY3VzQmxvY2soZi5pZCwiZW5kIik6Zz9hd2FpdCBpLmZvY3VzQmxvY2soZy5pZCk6ZiYmYXdhaXQgaS5mb2N1c0Jsb2NrKGYuaWQpO3JldHVybn1sZXQgbj10aGlzLmNvbXBvbmVudC5zaGFkb3dSb290Py5xdWVyeVNlbGVjdG9yKGBbZGF0YS1ibG9jay1pZD0iJHthLmlkfSJdYCk/LnF1ZXJ5U2VsZWN0b3IoImRlZXMtd3lzaXd5Zy1ibG9jayIpO2lmKCFufHwhbi5zaGFkb3dSb290KXJldHVybjtsZXQgbz1hLnR5cGU9PT0iY29kZSI/bi5zaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3IoIi5jb2RlLWVkaXRvciIpOm4uc2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yKCIuYmxvY2siKTtpZighbylyZXR1cm47bGV0IGQ9bi5jbG9zZXN0KCJkZWVzLWlucHV0LXd5c2l3eWciKSxjPVtdO2Q/LnNoYWRvd1Jvb3QmJmMucHVzaChkLnNoYWRvd1Jvb3QpLGMucHVzaChuLnNoYWRvd1Jvb3QpO2xldCBoPVJlLmdldEN1cnNvclBvc2l0aW9uSW5FbGVtZW50KG8sLi4uYyksbD1vLnRleHRDb250ZW50Py5sZW5ndGh8fDA7aWYoaD09PWwpe2xldCBmPWkuZ2V0TmV4dEJsb2NrKGEuaWQpO2lmKGYmJlsiZGl2aWRlciIsImltYWdlIiwieW91dHViZSIsImF0dGFjaG1lbnQiXS5pbmNsdWRlcyhmLnR5cGUpKXtlLnByZXZlbnREZWZhdWx0KCksYXdhaXQgaS5mb2N1c0Jsb2NrKGYuaWQpO3JldHVybn19fWFzeW5jIGhhbmRsZUFycm93VXAoZSxhKXtsZXQgaT1bImRpdmlkZXIiLCJpbWFnZSIsInlvdXR1YmUiLCJhdHRhY2htZW50Il07aWYoaS5pbmNsdWRlcyhhLnR5cGUpKXtlLnByZXZlbnREZWZhdWx0KCk7bGV0IGg9dGhpcy5jb21wb25lbnQuYmxvY2tPcGVyYXRpb25zLGw9aC5nZXRQcmV2aW91c0Jsb2NrKGEuaWQpO2wmJmF3YWl0IGguZm9jdXNCbG9jayhsLmlkLGkuaW5jbHVkZXMobC50eXBlKT92b2lkIDA6ImVuZCIpO3JldHVybn1sZXQgcz10aGlzLmNvbXBvbmVudC5zaGFkb3dSb290Py5xdWVyeVNlbGVjdG9yKGBbZGF0YS1ibG9jay1pZD0iJHthLmlkfSJdYCk/LnF1ZXJ5U2VsZWN0b3IoImRlZXMtd3lzaXd5Zy1ibG9jayIpO2lmKCFzfHwhcy5zaGFkb3dSb290KXJldHVybjtsZXQgbj1hLnR5cGU9PT0iY29kZSI/cy5zaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3IoIi5jb2RlLWVkaXRvciIpOnMuc2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yKCIuYmxvY2siKTtpZighbilyZXR1cm47bGV0IG89cy5jbG9zZXN0KCJkZWVzLWlucHV0LXd5c2l3eWciKSxkPVtdO28/LnNoYWRvd1Jvb3QmJmQucHVzaChvLnNoYWRvd1Jvb3QpLGQucHVzaChzLnNoYWRvd1Jvb3QpO2xldCBjPVJlLmdldFNlbGVjdGlvbkluZm8oLi4uZCk7aWYoISghY3x8IWMuY29sbGFwc2VkKSYmdGhpcy5pc09uRmlyc3RMaW5lKGMsbiwuLi5kKSl7ZS5wcmV2ZW50RGVmYXVsdCgpO2xldCBoPXRoaXMuY29tcG9uZW50LmJsb2NrT3BlcmF0aW9ucyxsPWguZ2V0UHJldmlvdXNCbG9jayhhLmlkKTtpZihsKXtsZXQgZj1bImRpdmlkZXIiLCJpbWFnZSIsInlvdXR1YmUiLCJhdHRhY2htZW50Il07YXdhaXQgaC5mb2N1c0Jsb2NrKGwuaWQsZi5pbmNsdWRlcyhsLnR5cGUpP3ZvaWQgMDoiZW5kIil9fX1hc3luYyBoYW5kbGVBcnJvd0Rvd24oZSxhKXtpZihbImRpdmlkZXIiLCJpbWFnZSIsInlvdXR1YmUiLCJhdHRhY2htZW50Il0uaW5jbHVkZXMoYS50eXBlKSl7ZS5wcmV2ZW50RGVmYXVsdCgpO2xldCBoPXRoaXMuY29tcG9uZW50LmJsb2NrT3BlcmF0aW9ucyxsPWguZ2V0TmV4dEJsb2NrKGEuaWQpO2lmKGwpe2xldCBmPVsiZGl2aWRlciIsImltYWdlIiwieW91dHViZSIsImF0dGFjaG1lbnQiXTthd2FpdCBoLmZvY3VzQmxvY2sobC5pZCxmLmluY2x1ZGVzKGwudHlwZSk/dm9pZCAwOiJzdGFydCIpfXJldHVybn1sZXQgcz10aGlzLmNvbXBvbmVudC5zaGFkb3dSb290Py5xdWVyeVNlbGVjdG9yKGBbZGF0YS1ibG9jay1pZD0iJHthLmlkfSJdYCk/LnF1ZXJ5U2VsZWN0b3IoImRlZXMtd3lzaXd5Zy1ibG9jayIpO2lmKCFzfHwhcy5zaGFkb3dSb290KXJldHVybjtsZXQgbj1hLnR5cGU9PT0iY29kZSI/cy5zaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3IoIi5jb2RlLWVkaXRvciIpOnMuc2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yKCIuYmxvY2siKTtpZighbilyZXR1cm47bGV0IG89cy5jbG9zZXN0KCJkZWVzLWlucHV0LXd5c2l3eWciKSxkPVtdO28/LnNoYWRvd1Jvb3QmJmQucHVzaChvLnNoYWRvd1Jvb3QpLGQucHVzaChzLnNoYWRvd1Jvb3QpO2xldCBjPVJlLmdldFNlbGVjdGlvbkluZm8oLi4uZCk7aWYoISghY3x8IWMuY29sbGFwc2VkKSYmdGhpcy5pc09uTGFzdExpbmUoYyxuLC4uLmQpKXtlLnByZXZlbnREZWZhdWx0KCk7bGV0IGg9dGhpcy5jb21wb25lbnQuYmxvY2tPcGVyYXRpb25zLGw9aC5nZXROZXh0QmxvY2soYS5pZCk7aWYobCl7bGV0IGY9WyJkaXZpZGVyIiwiaW1hZ2UiLCJ5b3V0dWJlIiwiYXR0YWNobWVudCJdO2F3YWl0IGguZm9jdXNCbG9jayhsLmlkLGYuaW5jbHVkZXMobC50eXBlKT92b2lkIDA6InN0YXJ0Iil9fX1nZXRMYXN0VGV4dE5vZGUoZSl7aWYoZS5ub2RlVHlwZT09PU5vZGUuVEVYVF9OT0RFKXJldHVybiBlO2ZvcihsZXQgYT1lLmNoaWxkTm9kZXMubGVuZ3RoLTE7YT49MDthLS0pe2xldCBpPXRoaXMuZ2V0TGFzdFRleHROb2RlKGUuY2hpbGROb2Rlc1thXSk7aWYoaSlyZXR1cm4gaX1yZXR1cm4gbnVsbH1hc3luYyBoYW5kbGVBcnJvd0xlZnQoZSxhKXtpZihbImRpdmlkZXIiLCJpbWFnZSIsInlvdXR1YmUiLCJhdHRhY2htZW50Il0uaW5jbHVkZXMoYS50eXBlKSl7ZS5wcmV2ZW50RGVmYXVsdCgpO2xldCBsPXRoaXMuY29tcG9uZW50LmJsb2NrT3BlcmF0aW9ucyxmPWwuZ2V0UHJldmlvdXNCbG9jayhhLmlkKTtpZihmKXtsZXQgZz1bImRpdmlkZXIiLCJpbWFnZSIsInlvdXR1YmUiLCJhdHRhY2htZW50Il07YXdhaXQgbC5mb2N1c0Jsb2NrKGYuaWQsZy5pbmNsdWRlcyhmLnR5cGUpP3ZvaWQgMDoiZW5kIil9cmV0dXJufWxldCBzPXRoaXMuY29tcG9uZW50LnNoYWRvd1Jvb3Q/LnF1ZXJ5U2VsZWN0b3IoYFtkYXRhLWJsb2NrLWlkPSIke2EuaWR9Il1gKT8ucXVlcnlTZWxlY3RvcigiZGVlcy13eXNpd3lnLWJsb2NrIik7aWYoIXN8fCFzLnNoYWRvd1Jvb3QpcmV0dXJuO2xldCBuPWEudHlwZT09PSJjb2RlIj9zLnNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvcigiLmNvZGUtZWRpdG9yIik6cy5zaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3IoIi5ibG9jayIpO2lmKCFuKXJldHVybjtsZXQgbz1zLmNsb3Nlc3QoImRlZXMtaW5wdXQtd3lzaXd5ZyIpLGQ9W107bz8uc2hhZG93Um9vdCYmZC5wdXNoKG8uc2hhZG93Um9vdCksZC5wdXNoKHMuc2hhZG93Um9vdCk7bGV0IGM9UmUuZ2V0U2VsZWN0aW9uSW5mbyguLi5kKTtpZighY3x8IWMuY29sbGFwc2VkKXJldHVybjtpZihSZS5nZXRDdXJzb3JQb3NpdGlvbkluRWxlbWVudChuLC4uLmQpPT09MCl7bGV0IGw9dGhpcy5jb21wb25lbnQuYmxvY2tPcGVyYXRpb25zLGY9bC5nZXRQcmV2aW91c0Jsb2NrKGEuaWQpO2lmKGYpe2UucHJldmVudERlZmF1bHQoKTtsZXQgeT1bImRpdmlkZXIiLCJpbWFnZSIsInlvdXR1YmUiLCJhdHRhY2htZW50Il0uaW5jbHVkZXMoZi50eXBlKT92b2lkIDA6ImVuZCI7YXdhaXQgbC5mb2N1c0Jsb2NrKGYuaWQseSl9fX1hc3luYyBoYW5kbGVBcnJvd1JpZ2h0KGUsYSl7aWYoWyJkaXZpZGVyIiwiaW1hZ2UiLCJ5b3V0dWJlIiwiYXR0YWNobWVudCJdLmluY2x1ZGVzKGEudHlwZSkpe2UucHJldmVudERlZmF1bHQoKTtsZXQgZj10aGlzLmNvbXBvbmVudC5ibG9ja09wZXJhdGlvbnMsZz1mLmdldE5leHRCbG9jayhhLmlkKTtpZihnKXtsZXQgeT1bImRpdmlkZXIiLCJpbWFnZSIsInlvdXR1YmUiLCJhdHRhY2htZW50Il07YXdhaXQgZi5mb2N1c0Jsb2NrKGcuaWQseS5pbmNsdWRlcyhnLnR5cGUpP3ZvaWQgMDoic3RhcnQiKX1yZXR1cm59bGV0IHM9dGhpcy5jb21wb25lbnQuc2hhZG93Um9vdD8ucXVlcnlTZWxlY3RvcihgW2RhdGEtYmxvY2staWQ9IiR7YS5pZH0iXWApPy5xdWVyeVNlbGVjdG9yKCJkZWVzLXd5c2l3eWctYmxvY2siKTtpZighc3x8IXMuc2hhZG93Um9vdClyZXR1cm47bGV0IG49YS50eXBlPT09ImNvZGUiP3Muc2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yKCIuY29kZS1lZGl0b3IiKTpzLnNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvcigiLmJsb2NrIik7aWYoIW4pcmV0dXJuO2xldCBvPXMuY2xvc2VzdCgiZGVlcy1pbnB1dC13eXNpd3lnIiksZD1bXTtvPy5zaGFkb3dSb290JiZkLnB1c2goby5zaGFkb3dSb290KSxkLnB1c2gocy5zaGFkb3dSb290KTtsZXQgYz1SZS5nZXRTZWxlY3Rpb25JbmZvKC4uLmQpO2lmKCFjfHwhYy5jb2xsYXBzZWQpcmV0dXJuO2xldCBoPVJlLmdldEN1cnNvclBvc2l0aW9uSW5FbGVtZW50KG4sLi4uZCksbD1uLnRleHRDb250ZW50Py5sZW5ndGh8fDA7aWYoaD09PWwpe2xldCBmPXRoaXMuY29tcG9uZW50LmJsb2NrT3BlcmF0aW9ucyxnPWYuZ2V0TmV4dEJsb2NrKGEuaWQpO2lmKGcpe2UucHJldmVudERlZmF1bHQoKTtsZXQgeT1bImRpdmlkZXIiLCJpbWFnZSIsInlvdXR1YmUiLCJhdHRhY2htZW50Il07YXdhaXQgZi5mb2N1c0Jsb2NrKGcuaWQseS5pbmNsdWRlcyhnLnR5cGUpP3ZvaWQgMDoic3RhcnQiKX19fWlzT25GaXJzdExpbmUoZSxhLC4uLmkpe3RyeXtsZXQgcj1SZS5jcmVhdGVSYW5nZUZyb21JbmZvKGUpLHM9ci5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKSxuPXIuY29tbW9uQW5jZXN0b3JDb250YWluZXI7bi5ub2RlVHlwZT09PU5vZGUuVEVYVF9OT0RFJiYobj1uLnBhcmVudEVsZW1lbnQpO2xldCBvPW4uZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCksZD1zLnRvcC1vLnRvcDw1O3JldHVybiBuLnRleHRDb250ZW50JiYhbi50ZXh0Q29udGVudC5pbmNsdWRlcyhgCmApP1JlLmdldEN1cnNvclBvc2l0aW9uSW5FbGVtZW50KG4sLi4uaSk9PT0wOmR9Y2F0Y2gocil7cmV0dXJuIGNvbnNvbGUud2FybigiRXJyb3IgY2hlY2tpbmcgZmlyc3QgbGluZToiLHIpLGUuc3RhcnRPZmZzZXQ9PT0wfX1pc09uTGFzdExpbmUoZSxhLC4uLmkpe3RyeXtsZXQgcj1SZS5jcmVhdGVSYW5nZUZyb21JbmZvKGUpLHM9ci5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKSxuPXIuY29tbW9uQW5jZXN0b3JDb250YWluZXI7bi5ub2RlVHlwZT09PU5vZGUuVEVYVF9OT0RFJiYobj1uLnBhcmVudEVsZW1lbnQpO2xldCBkPW4uZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkuYm90dG9tLXMuYm90dG9tPDU7aWYobi50ZXh0Q29udGVudCYmIW4udGV4dENvbnRlbnQuaW5jbHVkZXMoYApgKSl7bGV0IGM9YS50ZXh0Q29udGVudD8ubGVuZ3RofHwwO3JldHVybiBSZS5nZXRDdXJzb3JQb3NpdGlvbkluRWxlbWVudChhLC4uLmkpPT09Y31yZXR1cm4gZH1jYXRjaChyKXtjb25zb2xlLndhcm4oIkVycm9yIGNoZWNraW5nIGxhc3QgbGluZToiLHIpO2xldCBzPWEudGV4dENvbnRlbnQ/Lmxlbmd0aHx8MDtyZXR1cm4gUmUuZ2V0Q3Vyc29yUG9zaXRpb25JbkVsZW1lbnQoYSwuLi5pKT09PXN9fX19KTt2YXIgVjgsRGd0PWIoKCk9PntBYSgpO05sKCk7Vjg9Y2xhc3N7Y29tcG9uZW50O2RyYWdnZWRCbG9ja0lkPW51bGw7ZHJhZ092ZXJCbG9ja0lkPW51bGw7ZHJhZ092ZXJQb3NpdGlvbj1udWxsO2Ryb3BJbmRpY2F0b3I9bnVsbDtpbml0aWFsTW91c2VZPTA7aW5pdGlhbEJsb2NrWT0wO2RyYWdnZWRCbG9ja0VsZW1lbnQ9bnVsbDtkcmFnZ2VkQmxvY2tIZWlnaHQ9MDtkcmFnZ2VkQmxvY2tDb250ZW50SGVpZ2h0PTA7ZHJhZ2dlZEJsb2NrTWFyZ2luVG9wPTA7bGFzdFVwZGF0ZVRpbWU9MDt1cGRhdGVUaHJvdHRsZT04MDtjb25zdHJ1Y3RvcihlKXt0aGlzLmNvbXBvbmVudD1lfWdldCBkcmFnU3RhdGUoKXtyZXR1cm57ZHJhZ2dlZEJsb2NrSWQ6dGhpcy5kcmFnZ2VkQmxvY2tJZCxkcmFnT3ZlckJsb2NrSWQ6dGhpcy5kcmFnT3ZlckJsb2NrSWQsZHJhZ092ZXJQb3NpdGlvbjp0aGlzLmRyYWdPdmVyUG9zaXRpb259fWhhbmRsZURyYWdTdGFydChlLGEpe2lmKCFlLmRhdGFUcmFuc2ZlcilyZXR1cm47dGhpcy5kcmFnZ2VkQmxvY2tJZD1hLmlkLGUuZGF0YVRyYW5zZmVyLmVmZmVjdEFsbG93ZWQ9Im1vdmUiLGUuZGF0YVRyYW5zZmVyLnNldERhdGEoInRleHQvcGxhaW4iLGEuaWQpO2xldCBpPW5ldyBJbWFnZTtpZihpLnNyYz0iZGF0YTppbWFnZS9naWY7YmFzZTY0LFIwbEdPRGxoQVFBQkFJQUFBQVVFQkFBQUFDd0FBQUFBQVFBQkFBQUNBa1FCQURzPSIsZS5kYXRhVHJhbnNmZXIuc2V0RHJhZ0ltYWdlKGksMCwwKSx0aGlzLmluaXRpYWxNb3VzZVk9ZS5jbGllbnRZLHRoaXMuZHJhZ2dlZEJsb2NrRWxlbWVudD10aGlzLmNvbXBvbmVudC5lZGl0b3JDb250ZW50UmVmLnF1ZXJ5U2VsZWN0b3IoYFtkYXRhLWJsb2NrLWlkPSIke2EuaWR9Il1gKSx0aGlzLmRyYWdnZWRCbG9ja0VsZW1lbnQpe2xldCByPXRoaXMuZHJhZ2dlZEJsb2NrRWxlbWVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTt0aGlzLmluaXRpYWxCbG9ja1k9ci50b3A7bGV0IHM9dGhpcy5kcmFnZ2VkQmxvY2tFbGVtZW50LnF1ZXJ5U2VsZWN0b3IoIi5ibG9jayIpO2lmKHMpe2xldCBuPXMuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCksbz13aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZShzKTt0aGlzLmRyYWdnZWRCbG9ja01hcmdpblRvcD1wYXJzZUludChvLm1hcmdpblRvcCl8fDAsdGhpcy5kcmFnZ2VkQmxvY2tDb250ZW50SGVpZ2h0PW4uaGVpZ2h0fXRoaXMuZHJhZ2dlZEJsb2NrSGVpZ2h0PXIuaGVpZ2h0LGNvbnNvbGUubG9nKCJEcmFnIG1lYXN1cmVtZW50czoiLHt3cmFwcGVySGVpZ2h0OnIuaGVpZ2h0LG1hcmdpblRvcDp0aGlzLmRyYWdnZWRCbG9ja01hcmdpblRvcCxkcm9wSW5kaWNhdG9ySGVpZ2h0OnRoaXMuZHJhZ2dlZEJsb2NrSGVpZ2h0LGNvbnRlbnRIZWlnaHQ6dGhpcy5kcmFnZ2VkQmxvY2tDb250ZW50SGVpZ2h0LGJsb2NrSWQ6YS5pZH0pLHRoaXMuY3JlYXRlRHJvcEluZGljYXRvcigpLGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoImRyYWdvdmVyIix0aGlzLmhhbmRsZUdsb2JhbERyYWdPdmVyKSxkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCJkcmFnZW5kIix0aGlzLmhhbmRsZUdsb2JhbERyYWdFbmQpfXRoaXMuY29tcG9uZW50LmRyYWdnZWRCbG9ja0lkPXRoaXMuZHJhZ2dlZEJsb2NrSWQsc2V0VGltZW91dCgoKT0+e3RoaXMuZHJhZ2dlZEJsb2NrRWxlbWVudCYmdGhpcy5kcmFnZ2VkQmxvY2tFbGVtZW50LmNsYXNzTGlzdC5hZGQoImRyYWdnaW5nIiksdGhpcy5jb21wb25lbnQuZWRpdG9yQ29udGVudFJlZiYmdGhpcy5jb21wb25lbnQuZWRpdG9yQ29udGVudFJlZi5jbGFzc0xpc3QuYWRkKCJkcmFnZ2luZyIpfSwxMCl9aGFuZGxlRHJhZ0VuZCgpe3RoaXMuY29tcG9uZW50LmVkaXRvckNvbnRlbnRSZWYucXVlcnlTZWxlY3RvckFsbCgiLmJsb2NrLXdyYXBwZXIiKS5mb3JFYWNoKGE9PnthLmNsYXNzTGlzdC5yZW1vdmUoImRyYWdnaW5nIiwibW92ZS11cCIsIm1vdmUtZG93biIpLGEuc3R5bGUucmVtb3ZlUHJvcGVydHkoIi0tZHJhZy1vZmZzZXQiKSxhLnN0eWxlLnJlbW92ZVByb3BlcnR5KCJ0cmFuc2Zvcm0iKX0pLHRoaXMuY29tcG9uZW50LmVkaXRvckNvbnRlbnRSZWYmJnRoaXMuY29tcG9uZW50LmVkaXRvckNvbnRlbnRSZWYuY2xhc3NMaXN0LnJlbW92ZSgiZHJhZ2dpbmciKSx0aGlzLmRyYWdnZWRCbG9ja0lkPW51bGwsdGhpcy5kcmFnT3ZlckJsb2NrSWQ9bnVsbCx0aGlzLmRyYWdPdmVyUG9zaXRpb249bnVsbCx0aGlzLmRyYWdnZWRCbG9ja0VsZW1lbnQ9bnVsbCx0aGlzLmRyYWdnZWRCbG9ja0hlaWdodD0wLHRoaXMuZHJhZ2dlZEJsb2NrQ29udGVudEhlaWdodD0wLHRoaXMuZHJhZ2dlZEJsb2NrTWFyZ2luVG9wPTAsdGhpcy5pbml0aWFsQmxvY2tZPTAsdGhpcy5jb21wb25lbnQuZHJhZ2dlZEJsb2NrSWQ9bnVsbCx0aGlzLmNvbXBvbmVudC5kcmFnT3ZlckJsb2NrSWQ9bnVsbCx0aGlzLmNvbXBvbmVudC5kcmFnT3ZlclBvc2l0aW9uPW51bGx9aGFuZGxlRHJhZ092ZXIoZSxhKXtpZihlLnByZXZlbnREZWZhdWx0KCksIWUuZGF0YVRyYW5zZmVyfHwhdGhpcy5kcmFnZ2VkQmxvY2tJZHx8dGhpcy5kcmFnZ2VkQmxvY2tJZD09PWEuaWQpcmV0dXJuO2UuZGF0YVRyYW5zZmVyLmRyb3BFZmZlY3Q9Im1vdmUiO2xldCBpPWUuY3VycmVudFRhcmdldC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKSxyPWkudG9wK2kuaGVpZ2h0LzI7dGhpcy5kcmFnT3ZlckJsb2NrSWQ9YS5pZCx0aGlzLmRyYWdPdmVyUG9zaXRpb249ZS5jbGllbnRZPHI/ImJlZm9yZSI6ImFmdGVyIix0aGlzLmNvbXBvbmVudC5kcmFnT3ZlckJsb2NrSWQ9dGhpcy5kcmFnT3ZlckJsb2NrSWQsdGhpcy5jb21wb25lbnQuZHJhZ092ZXJQb3NpdGlvbj10aGlzLmRyYWdPdmVyUG9zaXRpb259aGFuZGxlRHJhZ0xlYXZlKGUpe3RoaXMuZHJhZ092ZXJCbG9ja0lkPT09ZS5pZCYmKHRoaXMuZHJhZ092ZXJCbG9ja0lkPW51bGwsdGhpcy5kcmFnT3ZlclBvc2l0aW9uPW51bGwsdGhpcy5jb21wb25lbnQuZHJhZ092ZXJCbG9ja0lkPW51bGwsdGhpcy5jb21wb25lbnQuZHJhZ092ZXJQb3NpdGlvbj1udWxsKX1oYW5kbGVEcm9wKGUsYSl7ZS5wcmV2ZW50RGVmYXVsdCgpLCEoIXRoaXMuZHJhZ2dlZEJsb2NrSWR8fHRoaXMuZHJhZ2dlZEJsb2NrSWQ9PT1hLmlkKSYmdGhpcy5jb21wb25lbnQuaGFuZGxlRHJvcChlLGEpfWlzRHJhZ2dpbmcoZSl7cmV0dXJuIHRoaXMuZHJhZ2dlZEJsb2NrSWQ9PT1lfWlzRHJhZ092ZXIoZSl7cmV0dXJuIHRoaXMuZHJhZ092ZXJCbG9ja0lkPT09ZX1nZXREcmFnT3ZlckNsYXNzZXMoZSl7cmV0dXJuIHRoaXMuaXNEcmFnT3ZlcihlKT90aGlzLmRyYWdPdmVyUG9zaXRpb249PT0iYmVmb3JlIj8iZHJhZy1vdmVyLWJlZm9yZSI6ImRyYWctb3Zlci1hZnRlciI6IiJ9Y3JlYXRlRHJvcEluZGljYXRvcigpe3RoaXMuZHJvcEluZGljYXRvcj1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKSx0aGlzLmRyb3BJbmRpY2F0b3IuY2xhc3NOYW1lPSJkcm9wLWluZGljYXRvciIsdGhpcy5kcm9wSW5kaWNhdG9yLnN0eWxlLmRpc3BsYXk9Im5vbmUiLHRoaXMuY29tcG9uZW50LmVkaXRvckNvbnRlbnRSZWYuYXBwZW5kQ2hpbGQodGhpcy5kcm9wSW5kaWNhdG9yKX1oYW5kbGVHbG9iYWxEcmFnT3Zlcj1lPT57aWYoZS5wcmV2ZW50RGVmYXVsdCgpLCF0aGlzLmRyYWdnZWRCbG9ja0VsZW1lbnQpcmV0dXJuO2xldCBhPWUuY2xpZW50WS10aGlzLmluaXRpYWxNb3VzZVk7dGhpcy5kcmFnZ2VkQmxvY2tFbGVtZW50LnN0eWxlLnRyYW5zZm9ybT1gdHJhbnNsYXRlWSgke2F9cHgpYDtsZXQgaT1EYXRlLm5vdygpO2ktdGhpcy5sYXN0VXBkYXRlVGltZTx0aGlzLnVwZGF0ZVRocm90dGxlfHwodGhpcy5sYXN0VXBkYXRlVGltZT1pLHRoaXMudXBkYXRlQmxvY2tQb3NpdGlvbnMoZS5jbGllbnRZKSl9O3VwZGF0ZUJsb2NrUG9zaXRpb25zKGUpe2xldCBhPUFycmF5LmZyb20odGhpcy5jb21wb25lbnQuZWRpdG9yQ29udGVudFJlZi5xdWVyeVNlbGVjdG9yQWxsKCIuYmxvY2std3JhcHBlciIpKSxpPWEuZmluZEluZGV4KHM9PnMuZ2V0QXR0cmlidXRlKCJkYXRhLWJsb2NrLWlkIik9PT10aGlzLmRyYWdnZWRCbG9ja0lkKTtpZihpPT09LTEpcmV0dXJuO2EuZm9yRWFjaChzPT57cy5nZXRBdHRyaWJ1dGUoImRhdGEtYmxvY2staWQiKSE9PXRoaXMuZHJhZ2dlZEJsb2NrSWQmJihzLmNsYXNzTGlzdC5yZW1vdmUoIm1vdmUtdXAiLCJtb3ZlLWRvd24iKSxzLnN0eWxlLnJlbW92ZVByb3BlcnR5KCItLWRyYWctb2Zmc2V0IikpfSk7bGV0IHI9YS5sZW5ndGg7Zm9yKGxldCBzPTA7czxhLmxlbmd0aDtzKyspe2lmKHM9PT1pKWNvbnRpbnVlO2xldCBvPWFbc10uZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCksZD1vLnRvcDtpZihlPGQrby5oZWlnaHQqLjUpe3I9czticmVha319Zm9yKGxldCBzPTA7czxhLmxlbmd0aDtzKyspe2lmKHM9PT1pKWNvbnRpbnVlO2xldCBuPWFbc107aTxyP3M+aSYmczxyJiYobi5jbGFzc0xpc3QuYWRkKCJtb3ZlLXVwIiksbi5zdHlsZS5zZXRQcm9wZXJ0eSgiLS1kcmFnLW9mZnNldCIsYCR7dGhpcy5kcmFnZ2VkQmxvY2tIZWlnaHR9cHhgKSk6aT5yJiZzPj1yJiZzPGkmJihuLmNsYXNzTGlzdC5hZGQoIm1vdmUtZG93biIpLG4uc3R5bGUuc2V0UHJvcGVydHkoIi0tZHJhZy1vZmZzZXQiLGAke3RoaXMuZHJhZ2dlZEJsb2NrSGVpZ2h0fXB4YCkpfXRoaXMudXBkYXRlRHJvcEluZGljYXRvcihhLHIsaSl9dXBkYXRlRHJvcEluZGljYXRvcihlLGEsaSl7aWYoIXRoaXMuZHJvcEluZGljYXRvcnx8IXRoaXMuZHJhZ2dlZEJsb2NrRWxlbWVudClyZXR1cm47dGhpcy5kcm9wSW5kaWNhdG9yLnN0eWxlLmRpc3BsYXk9ImJsb2NrIjtsZXQgcj10aGlzLmNvbXBvbmVudC5lZGl0b3JDb250ZW50UmVmLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLHM9MCxuPVtdO2ZvcihsZXQgYz0wO2M8ZS5sZW5ndGg7YysrKXtpZihjPT09aSljb250aW51ZTtsZXQgaD1lW2NdLGw9aC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKSxmPWwudG9wLXIudG9wLGc9bC5ib3R0b20tci50b3AseT13aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZShoKS50cmFuc2Zvcm07aWYoeSYmeSE9PSJub25lIil7bGV0IG09bmV3IERPTU1hdHJpeCh5KS5tNDI7Zis9bSxnKz1tfW4ucHVzaCh7aW5kZXg6Yyx0b3A6Zixib3R0b206Z30pfW4uc29ydCgoYyxoKT0+Yy50b3AtaC50b3ApO2xldCBvPWE7YT5pJiZvLS07bGV0IGQ9MTY7aWYodGhpcy5kcmFnZ2VkQmxvY2tFbGVtZW50KXtsZXQgYz10aGlzLmNvbXBvbmVudC5ibG9ja3MuZmluZChoPT5oLmlkPT09dGhpcy5kcmFnZ2VkQmxvY2tJZCk7aWYoYyl7bGV0IGg9Yy50eXBlO2g9PT0iaGVhZGluZy0xInx8aD09PSJoZWFkaW5nLTIifHxoPT09ImhlYWRpbmctMyI/ZD0yNDooaD09PSJjb2RlInx8aD09PSJxdW90ZSIpJiYoZD0yMCl9fWlmKG89PT0wKXM9MDtlbHNlIGlmKG8+PW4ubGVuZ3RoKXtsZXQgYz1uW24ubGVuZ3RoLTFdO2MmJihzPWMuYm90dG9tLHMrPWQpfWVsc2V7bGV0IGM9bltvLTFdO2MmJihzPWMuYm90dG9tLHMrPWQpfXRoaXMuZHJvcEluZGljYXRvci5zdHlsZS5oZWlnaHQ9YCR7dGhpcy5kcmFnZ2VkQmxvY2tIZWlnaHR9cHhgLHRoaXMuZHJvcEluZGljYXRvci5zdHlsZS50b3A9YCR7TWF0aC5tYXgoMCxzKX1weGAsY29uc29sZS5sb2coIkRyb3AgaW5kaWNhdG9yIHVwZGF0ZToiLHt0YXJnZXRJbmRleDphLGFkanVzdGVkVGFyZ2V0SW5kZXg6byxkcmFnZ2VkSW5kZXg6aSx0b3BQb3NpdGlvbjpzLGhlaWdodDp0aGlzLmRyYWdnZWRCbG9ja0hlaWdodCxibG9ja01hcmdpbjpkLHZpc3VhbEJsb2NrczpuLm1hcChjPT4oe2luZGV4OmMuaW5kZXgsdG9wOmMudG9wLGJvdHRvbTpjLmJvdHRvbX0pKX0pfWhhbmRsZUdsb2JhbERyYWdFbmQ9KCk9Pntkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCJkcmFnb3ZlciIsdGhpcy5oYW5kbGVHbG9iYWxEcmFnT3ZlciksZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcigiZHJhZ2VuZCIsdGhpcy5oYW5kbGVHbG9iYWxEcmFnRW5kKSx0aGlzLmRyb3BJbmRpY2F0b3ImJih0aGlzLmRyb3BJbmRpY2F0b3IucmVtb3ZlKCksdGhpcy5kcm9wSW5kaWNhdG9yPW51bGwpLHRoaXMuZHJhZ2dlZEJsb2NrSWQ/cmVxdWVzdEFuaW1hdGlvbkZyYW1lKCgpPT57dGhpcy5wZXJmb3JtRHJvcCgpLHRoaXMuaGFuZGxlRHJhZ0VuZCgpfSk6dGhpcy5oYW5kbGVEcmFnRW5kKCl9O3BlcmZvcm1Ecm9wKCl7aWYoIXRoaXMuZHJhZ2dlZEJsb2NrSWQpcmV0dXJuO2xldCBlPUFycmF5LmZyb20odGhpcy5jb21wb25lbnQuZWRpdG9yQ29udGVudFJlZi5xdWVyeVNlbGVjdG9yQWxsKCIuYmxvY2std3JhcHBlciIpKTtpZighZS5maW5kKGg9PmguZ2V0QXR0cmlidXRlKCJkYXRhLWJsb2NrLWlkIik9PT10aGlzLmRyYWdnZWRCbG9ja0lkKSlyZXR1cm47bGV0IGk9ZS5tYXAoaD0+e2xldCBsPWguZ2V0QXR0cmlidXRlKCJkYXRhLWJsb2NrLWlkIiksZj1oLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLGc9Zi50b3ArZi5oZWlnaHQvMjtyZXR1cm57aWQ6bCxjZW50ZXJZOmcsZWxlbWVudDpofX0pO2kuc29ydCgoaCxsKT0+aC5jZW50ZXJZLWwuY2VudGVyWSk7bGV0IHI9aS5tYXAoaD0+aC5pZCkuZmlsdGVyKGg9PmghPT1udWxsKSxzPVsuLi50aGlzLmNvbXBvbmVudC5ibG9ja3NdLG49cy5maW5kKGg9PmguaWQ9PT10aGlzLmRyYWdnZWRCbG9ja0lkKTtpZighbilyZXR1cm47bGV0IG89cy5tYXAoaD0+aC5pZCk7aWYoISFyLmV2ZXJ5KChoLGwpPT5oPT09b1tsXSkpcmV0dXJuO2xldCBjPXIubWFwKGg9PnMuZmluZChsPT5sLmlkPT09aCkpLmZpbHRlcihCb29sZWFuKTt0aGlzLmNvbXBvbmVudC5ibG9ja3M9Yyx0aGlzLmNvbXBvbmVudC5yZW5kZXJCbG9ja3NQcm9ncmFtbWF0aWNhbGx5KCksdGhpcy5jb21wb25lbnQudXBkYXRlVmFsdWUoKSxzZXRUaW1lb3V0KCgpPT57bi50eXBlIT09ImRpdmlkZXIiJiZ0aGlzLmNvbXBvbmVudC5ibG9ja09wZXJhdGlvbnMuZm9jdXNCbG9jayhuLmlkKX0sMTAwKX19fSk7dmFyIGo4LEVndD1iKCgpPT57QWEoKTtqOD1jbGFzc3toaXN0b3J5PVtdO2N1cnJlbnRJbmRleD0tMTttYXhIaXN0b3J5U2l6ZT01MDtsYXN0U2F2ZVRpbWU9MDtzYXZlRGVib3VuY2VNcz01MDA7Y29uc3RydWN0b3IoKXt0aGlzLmhpc3Rvcnk9W10sdGhpcy5jdXJyZW50SW5kZXg9LTF9c2F2ZVN0YXRlKGUsYSxpKXtsZXQgcj1EYXRlLm5vdygpO2lmKHItdGhpcy5sYXN0U2F2ZVRpbWU8dGhpcy5zYXZlRGVib3VuY2VNcyYmdGhpcy5jdXJyZW50SW5kZXg+PTApe3RoaXMuaGlzdG9yeVt0aGlzLmN1cnJlbnRJbmRleF09e2Jsb2Nrczp0aGlzLmNsb25lQmxvY2tzKGUpLHNlbGVjdGVkQmxvY2tJZDphLGN1cnNvclBvc2l0aW9uOmk/ey4uLml9OnZvaWQgMCx0aW1lc3RhbXA6cn07cmV0dXJufXRoaXMuY3VycmVudEluZGV4PHRoaXMuaGlzdG9yeS5sZW5ndGgtMSYmKHRoaXMuaGlzdG9yeT10aGlzLmhpc3Rvcnkuc2xpY2UoMCx0aGlzLmN1cnJlbnRJbmRleCsxKSk7bGV0IHM9e2Jsb2Nrczp0aGlzLmNsb25lQmxvY2tzKGUpLHNlbGVjdGVkQmxvY2tJZDphLGN1cnNvclBvc2l0aW9uOmk/ey4uLml9OnZvaWQgMCx0aW1lc3RhbXA6cn07dGhpcy5oaXN0b3J5LnB1c2gocyksdGhpcy5jdXJyZW50SW5kZXgrKyx0aGlzLmhpc3RvcnkubGVuZ3RoPnRoaXMubWF4SGlzdG9yeVNpemUmJih0aGlzLmhpc3Rvcnkuc2hpZnQoKSx0aGlzLmN1cnJlbnRJbmRleC0tKSx0aGlzLmxhc3RTYXZlVGltZT1yfXNhdmVDaGVja3BvaW50KGUsYSxpKXt0aGlzLmxhc3RTYXZlVGltZT0wLHRoaXMuc2F2ZVN0YXRlKGUsYSxpKX11bmRvKCl7cmV0dXJuIHRoaXMuY2FuVW5kbygpPyh0aGlzLmN1cnJlbnRJbmRleC0tLHRoaXMuY2xvbmVTdGF0ZSh0aGlzLmhpc3RvcnlbdGhpcy5jdXJyZW50SW5kZXhdKSk6bnVsbH1yZWRvKCl7cmV0dXJuIHRoaXMuY2FuUmVkbygpPyh0aGlzLmN1cnJlbnRJbmRleCsrLHRoaXMuY2xvbmVTdGF0ZSh0aGlzLmhpc3RvcnlbdGhpcy5jdXJyZW50SW5kZXhdKSk6bnVsbH1jYW5VbmRvKCl7cmV0dXJuIHRoaXMuY3VycmVudEluZGV4PjB9Y2FuUmVkbygpe3JldHVybiB0aGlzLmN1cnJlbnRJbmRleDx0aGlzLmhpc3RvcnkubGVuZ3RoLTF9Z2V0Q3VycmVudFN0YXRlKCl7cmV0dXJuIHRoaXMuY3VycmVudEluZGV4Pj0wJiZ0aGlzLmN1cnJlbnRJbmRleDx0aGlzLmhpc3RvcnkubGVuZ3RoP3RoaXMuY2xvbmVTdGF0ZSh0aGlzLmhpc3RvcnlbdGhpcy5jdXJyZW50SW5kZXhdKTpudWxsfWNsZWFyKCl7dGhpcy5oaXN0b3J5PVtdLHRoaXMuY3VycmVudEluZGV4PS0xLHRoaXMubGFzdFNhdmVUaW1lPTB9Y2xvbmVCbG9ja3MoZSl7cmV0dXJuIGUubWFwKGE9Pih7Li4uYSxtZXRhZGF0YTphLm1ldGFkYXRhP3suLi5hLm1ldGFkYXRhfTp2b2lkIDB9KSl9Y2xvbmVTdGF0ZShlKXtyZXR1cm57YmxvY2tzOnRoaXMuY2xvbmVCbG9ja3MoZS5ibG9ja3MpLHNlbGVjdGVkQmxvY2tJZDplLnNlbGVjdGVkQmxvY2tJZCxjdXJzb3JQb3NpdGlvbjplLmN1cnNvclBvc2l0aW9uP3suLi5lLmN1cnNvclBvc2l0aW9ufTp2b2lkIDAsdGltZXN0YW1wOmUudGltZXN0YW1wfX1nZXRIaXN0b3J5SW5mbygpe3JldHVybntzaXplOnRoaXMuaGlzdG9yeS5sZW5ndGgsY3VycmVudEluZGV4OnRoaXMuY3VycmVudEluZGV4LGNhblVuZG86dGhpcy5jYW5VbmRvKCksY2FuUmVkbzp0aGlzLmNhblJlZG8oKX19fX0pO3ZhciBVOCxWcyxQZ3QsSWd0PWIoKCk9Pnt1ZSgpO0FhKCk7cXMoKTtVcigpO0NWKCk7X1YoKTtvNCgpO24yKCk7cWUoKTtVOD1mdW5jdGlvbih0LGUsYSxpLHIscyl7ZnVuY3Rpb24gbih4KXtpZih4IT09dm9pZCAwJiZ0eXBlb2YgeCE9ImZ1bmN0aW9uIil0aHJvdyBuZXcgVHlwZUVycm9yKCJGdW5jdGlvbiBleHBlY3RlZCIpO3JldHVybiB4fWZvcih2YXIgbz1pLmtpbmQsZD1vPT09ImdldHRlciI/ImdldCI6bz09PSJzZXR0ZXIiPyJzZXQiOiJ2YWx1ZSIsYz0hZSYmdD9pLnN0YXRpYz90OnQucHJvdG90eXBlOm51bGwsaD1lfHwoYz9PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGMsaS5uYW1lKTp7fSksbCxmPSExLGc9YS5sZW5ndGgtMTtnPj0wO2ctLSl7dmFyIHk9e307Zm9yKHZhciB2IGluIGkpeVt2XT12PT09ImFjY2VzcyI/e306aVt2XTtmb3IodmFyIHYgaW4gaS5hY2Nlc3MpeS5hY2Nlc3Nbdl09aS5hY2Nlc3Nbdl07eS5hZGRJbml0aWFsaXplcj1mdW5jdGlvbih4KXtpZihmKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBhZGQgaW5pdGlhbGl6ZXJzIGFmdGVyIGRlY29yYXRpb24gaGFzIGNvbXBsZXRlZCIpO3MucHVzaChuKHh8fG51bGwpKX07dmFyIG09KDAsYVtnXSkobz09PSJhY2Nlc3NvciI/e2dldDpoLmdldCxzZXQ6aC5zZXR9OmhbZF0seSk7aWYobz09PSJhY2Nlc3NvciIpe2lmKG09PT12b2lkIDApY29udGludWU7aWYobT09PW51bGx8fHR5cGVvZiBtIT0ib2JqZWN0Iil0aHJvdyBuZXcgVHlwZUVycm9yKCJPYmplY3QgZXhwZWN0ZWQiKTsobD1uKG0uZ2V0KSkmJihoLmdldD1sKSwobD1uKG0uc2V0KSkmJihoLnNldD1sKSwobD1uKG0uaW5pdCkpJiZyLnVuc2hpZnQobCl9ZWxzZShsPW4obSkpJiYobz09PSJmaWVsZCI/ci51bnNoaWZ0KGwpOmhbZF09bCl9YyYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGMsaS5uYW1lLGgpLGY9ITB9LFZzPWZ1bmN0aW9uKHQsZSxhKXtmb3IodmFyIGk9YXJndW1lbnRzLmxlbmd0aD4yLHI9MDtyPGUubGVuZ3RoO3IrKylhPWk/ZVtyXS5jYWxsKHQsYSk6ZVtyXS5jYWxsKHQpO3JldHVybiBpP2E6dm9pZCAwfSxQZ3Q9KCgpPT57bGV0IHQ9W3BlKCJkZWVzLXd5c2l3eWctYmxvY2siKV0sZSxhPVtdLGkscj14ZSxzLG49W10sbz1bXSxkLGM9W10saD1bXSxsLGY9W10sZz1bXSx5LHY9W10sbT1bXTt2YXIgeD1jbGFzcyBleHRlbmRzIHJ7c3RhdGlje2k9dGhpc31zdGF0aWN7bGV0IE09dHlwZW9mIFN5bWJvbD09ImZ1bmN0aW9uIiYmU3ltYm9sLm1ldGFkYXRhP09iamVjdC5jcmVhdGUocltTeW1ib2wubWV0YWRhdGFdPz9udWxsKTp2b2lkIDA7cz1bSSh7dHlwZTpPYmplY3R9KV0sZD1bSSh7dHlwZTpCb29sZWFufSldLGw9W0koe3R5cGU6T2JqZWN0fSldLHk9W0koe3R5cGU6T2JqZWN0fSldLFU4KHRoaXMsbnVsbCxzLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiYmxvY2siLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOlM9PiJibG9jayJpbiBTLGdldDpTPT5TLmJsb2NrLHNldDooUyxGKT0+e1MuYmxvY2s9Rn19LG1ldGFkYXRhOk19LG4sbyksVTgodGhpcyxudWxsLGQse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJpc1NlbGVjdGVkIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpTPT4iaXNTZWxlY3RlZCJpbiBTLGdldDpTPT5TLmlzU2VsZWN0ZWQsc2V0OihTLEYpPT57Uy5pc1NlbGVjdGVkPUZ9fSxtZXRhZGF0YTpNfSxjLGgpLFU4KHRoaXMsbnVsbCxsLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiaGFuZGxlcnMiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOlM9PiJoYW5kbGVycyJpbiBTLGdldDpTPT5TLmhhbmRsZXJzLHNldDooUyxGKT0+e1MuaGFuZGxlcnM9Rn19LG1ldGFkYXRhOk19LGYsZyksVTgodGhpcyxudWxsLHkse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJ3eXNpd3lnQ29tcG9uZW50IixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpTPT4id3lzaXd5Z0NvbXBvbmVudCJpbiBTLGdldDpTPT5TLnd5c2l3eWdDb21wb25lbnQsc2V0OihTLEYpPT57Uy53eXNpd3lnQ29tcG9uZW50PUZ9fSxtZXRhZGF0YTpNfSx2LG0pLFU4KG51bGwsZT17dmFsdWU6aX0sdCx7a2luZDoiY2xhc3MiLG5hbWU6aS5uYW1lLG1ldGFkYXRhOk19LG51bGwsYSkseD1pPWUudmFsdWUsTSYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGksU3ltYm9sLm1ldGFkYXRhLHtlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMCx2YWx1ZTpNfSl9YXN5bmMgZGlzY29ubmVjdGVkQ2FsbGJhY2soKXthd2FpdCBzdXBlci5kaXNjb25uZWN0ZWRDYWxsYmFjaygpLHRoaXMuX3NlbGVjdGlvbkhhbmRsZXImJmRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoInNlbGVjdGlvbmNoYW5nZSIsdGhpcy5fc2VsZWN0aW9uSGFuZGxlcil9I2U9VnModGhpcyxuLHZvaWQgMCk7Z2V0IGJsb2NrKCl7cmV0dXJuIHRoaXMuI2V9c2V0IGJsb2NrKE0pe3RoaXMuI2U9TX0jdD0oVnModGhpcyxvKSxWcyh0aGlzLGMsITEpKTtnZXQgaXNTZWxlY3RlZCgpe3JldHVybiB0aGlzLiN0fXNldCBpc1NlbGVjdGVkKE0pe3RoaXMuI3Q9TX0jYT0oVnModGhpcyxoKSxWcyh0aGlzLGYsdm9pZCAwKSk7Z2V0IGhhbmRsZXJzKCl7cmV0dXJuIHRoaXMuI2F9c2V0IGhhbmRsZXJzKE0pe3RoaXMuI2E9TX0jaT0oVnModGhpcyxnKSxWcyh0aGlzLHYsdm9pZCAwKSk7Z2V0IHd5c2l3eWdDb21wb25lbnQoKXtyZXR1cm4gdGhpcy4jaX1zZXQgd3lzaXd5Z0NvbXBvbmVudChNKXt0aGlzLiNpPU19YmxvY2tFbGVtZW50PShWcyh0aGlzLG0pLG51bGwpO2NvbnRlbnRJbml0aWFsaXplZD0hMTtsYXN0S25vd25DdXJzb3JQb3NpdGlvbj0wO2xhc3RTZWxlY3RlZFRleHQ9IiI7aGFuZGxlclN0eWxlc0luamVjdGVkPSExO3N0YXRpYyBOT05fRURJVEFCTEVfVFlQRVM9WyJpbWFnZSIsImRpdmlkZXIiLCJ5b3V0dWJlIl07aW5qZWN0SGFuZGxlclN0eWxlcygpe2lmKHRoaXMuaGFuZGxlclN0eWxlc0luamVjdGVkKXJldHVybjt0aGlzLmhhbmRsZXJTdHlsZXNJbmplY3RlZD0hMDtsZXQgTT0iIixTPXQxLmdldEFsbFR5cGVzKCk7Zm9yKGxldCBGIG9mIFMpe2xldCBfPXQxLmdldEhhbmRsZXIoRik7XyYmKE0rPV8uZ2V0U3R5bGVzKCkpfWlmKE0pe2xldCBGPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInN0eWxlIik7Ri50ZXh0Q29udGVudD1NLHRoaXMuc2hhZG93Um9vdD8uYXBwZW5kQ2hpbGQoRil9fXN0YXRpYyBzdHlsZXM9W0NlLHAuZGVmYXVsdFN0eWxlcyxRYAogICAgICAvKiBUT0RPOiBNaWdyYXRlIGhhcmRjb2RlZCB2YWx1ZXMgdG8gLS1kZWVzLSogQ1NTIHZhcmlhYmxlcyAqLwogICAgICA6aG9zdCB7CiAgICAgICAgZGlzcGxheTogYmxvY2s7CiAgICAgIH0KCiAgICAgIC5ibG9jayB7CiAgICAgICAgcGFkZGluZzogNHB4IDA7CiAgICAgICAgbWluLWhlaWdodDogMS42ZW07CiAgICAgICAgb3V0bGluZTogbm9uZTsKICAgICAgICB3aWR0aDogMTAwJTsKICAgICAgICB3b3JkLXdyYXA6IGJyZWFrLXdvcmQ7CiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjE1cyBlYXNlOwogICAgICAgIGNvbG9yOiAke3AuYmRUaGVtZSgiIzAwMDAwMCIsIiNlMGUwZTAiKX07CiAgICAgIH0KCiAgICAgIC5ibG9jazplbXB0eTpub3QoOmZvY3VzKTo6YmVmb3JlIHsKICAgICAgICBjb250ZW50OiBhdHRyKGRhdGEtcGxhY2Vob2xkZXIpOwogICAgICAgIGNvbG9yOiAke3AuYmRUaGVtZSgiIzk5OSIsIiM2NjYiKX07CiAgICAgICAgcG9zaXRpb246IGFic29sdXRlOwogICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lOwogICAgICB9CgogICAgICAvKiBCbG9jay1zcGVjaWZpYyBzdHlsZXMgbW92ZWQgdG8gaGFuZGxlcnMgKi8KCgogICAgICAvKiBGb3JtYXR0aW5nIHN0eWxlcyAqLwogICAgICAuYmxvY2sgOmlzKGIsIHN0cm9uZykgewogICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7CiAgICAgICAgY29sb3I6ICR7cC5iZFRoZW1lKCIjMDAwMDAwIiwiI2ZmZmZmZiIpfTsKICAgICAgfQoKICAgICAgLmJsb2NrIDppcyhpLCBlbSkgewogICAgICAgIGZvbnQtc3R5bGU6IGl0YWxpYzsKICAgICAgfQoKICAgICAgLmJsb2NrIHUgewogICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lOwogICAgICB9CgogICAgICAuYmxvY2sgcyB7CiAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBsaW5lLXRocm91Z2g7CiAgICAgIH0KCiAgICAgIC5ibG9jayBjb2RlIHsKICAgICAgICBmb250LWZhbWlseTogJ1NGIE1vbm8nLCAnTW9uYWNvJywgJ0luY29uc29sYXRhJywgJ0ZpcmEgQ29kZScsIG1vbm9zcGFjZTsKICAgICAgICBmb250LXNpemU6IDAuOWVtOwogICAgICAgIGJhY2tncm91bmQ6ICR7cC5iZFRoZW1lKCJyZ2JhKDAsIDAsIDAsIDAuMDYpIiwicmdiYSgyNTUsIDI1NSwgMjU1LCAwLjEpIil9OwogICAgICAgIHBhZGRpbmc6IDJweCA2cHg7CiAgICAgICAgYm9yZGVyLXJhZGl1czogM3B4OwogICAgICAgIGNvbG9yOiAke3AuYmRUaGVtZSgiI2QxNCIsIiNmZjZiNmIiKX07CiAgICAgIH0KCiAgICAgIC5ibG9jayBhIHsKICAgICAgICBjb2xvcjogJHtwLmJkVGhlbWUoIiMwMDY2Y2MiLCIjNGQ5NGZmIil9OwogICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTsKICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgdHJhbnNwYXJlbnQ7CiAgICAgICAgdHJhbnNpdGlvbjogYm9yZGVyLWNvbG9yIDAuMTVzIGVhc2U7CiAgICAgICAgY3Vyc29yOiBwb2ludGVyOwogICAgICB9CgogICAgICAuYmxvY2sgYTpob3ZlciB7CiAgICAgICAgYm9yZGVyLWJvdHRvbS1jb2xvcjogJHtwLmJkVGhlbWUoIiMwMDY2Y2MiLCIjNGQ5NGZmIil9OwogICAgICB9CgogICAgICAvKiBDb2RlIGJsb2NrIGNvbnRhaW5lciBhbmQgbGFuZ3VhZ2Ugc3R5bGVzIG1vdmVkIHRvIGhhbmRsZXIgKi8KCiAgICAgIC8qIFNlbGVjdGlvbiBzdHlsZXMgKi8KICAgICAgLmJsb2NrIDo6c2VsZWN0aW9uIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke3AuYmRUaGVtZSgicmdiYSgwLCAxMDIsIDIwNCwgMC4zKSIsInJnYmEoNzcsIDE0OCwgMjU1LCAwLjMpIil9OwogICAgICAgIGNvbG9yOiBpbmhlcml0OwogICAgICB9CgoKICAgICAgLyogU3RyaWtlIHRocm91Z2ggKi8KICAgICAgLmJsb2NrIDppcyhzLCBzdHJpa2UpIHsKICAgICAgICB0ZXh0LWRlY29yYXRpb246IGxpbmUtdGhyb3VnaDsKICAgICAgICBvcGFjaXR5OiAwLjc7CiAgICAgIH0KCgogICAgICAvKiBCbG9jayBtYXJnaW4gYWRqdXN0bWVudHMgYmFzZWQgb24gdHlwZSAqLwogICAgICA6aG9zdC1jb250ZXh0KC5ibG9jay13cmFwcGVyOmZpcnN0LWNoaWxkKSAuYmxvY2sgewogICAgICAgIG1hcmdpbi10b3A6IDAgIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgOmhvc3QtY29udGV4dCguYmxvY2std3JhcHBlcjpsYXN0LWNoaWxkKSAuYmxvY2sgewogICAgICAgIG1hcmdpbi1ib3R0b206IDA7CiAgICAgIH0KCiAgICAgIC8qIFNlbGVjdGVkIHN0YXRlICovCiAgICAgIC5ibG9jay5zZWxlY3RlZCB7CiAgICAgICAgYmFja2dyb3VuZDogJHtwLmJkVGhlbWUoInJnYmEoMCwgMTAyLCAyMDQsIDAuMDUpIiwicmdiYSg3NywgMTQ4LCAyNTUsIDAuMDgpIil9OwogICAgICAgIGJveC1zaGFkb3c6IGluc2V0IDAgMCAwIDJweCAke3AuYmRUaGVtZSgicmdiYSgwLCAxMDIsIDIwNCwgMC4yKSIsInJnYmEoNzcsIDE0OCwgMjU1LCAwLjIpIil9OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDRweDsKICAgICAgICBtYXJnaW4tbGVmdDogLThweDsKICAgICAgICBtYXJnaW4tcmlnaHQ6IC04cHg7CiAgICAgICAgcGFkZGluZy1sZWZ0OiA4cHg7CiAgICAgICAgcGFkZGluZy1yaWdodDogOHB4OwogICAgICB9CgoKCgogICAgYF07c2hvdWxkVXBkYXRlKE0pe2lmKE0uaGFzKCJpc1NlbGVjdGVkIikmJnRoaXMuYmxvY2spe2xldCBTPW51bGwsXz1gLmJsb2NrLiR7dGhpcy5ibG9jay50eXBlfWA7cmV0dXJuIFM9dGhpcy5zaGFkb3dSb290Py5xdWVyeVNlbGVjdG9yKF8pLFMmJih0aGlzLmlzU2VsZWN0ZWQ/Uy5jbGFzc0xpc3QuYWRkKCJzZWxlY3RlZCIpOlMuY2xhc3NMaXN0LnJlbW92ZSgic2VsZWN0ZWQiKSksITF9aWYoTS5oYXMoImJsb2NrIikmJnRoaXMuYmxvY2spe2xldCBTPU0uZ2V0KCJibG9jayIpO2lmKFMmJlMuaWQmJlMudHlwZSYmUy5pZD09PXRoaXMuYmxvY2suaWQmJlMudHlwZT09PXRoaXMuYmxvY2sudHlwZSlyZXR1cm4hMX1yZXR1cm4hdGhpcy5ibG9ja0VsZW1lbnR8fHRoaXMuYmxvY2s/LnR5cGUhPT10aGlzLmJsb2NrRWxlbWVudC5kYXRhc2V0LmJsb2NrVHlwZX1maXJzdFVwZGF0ZWQoKXt0aGlzLmNvbnRlbnRJbml0aWFsaXplZD0hMCx0aGlzLmluamVjdEhhbmRsZXJTdHlsZXMoKTtsZXQgTT10aGlzLnNoYWRvd1Jvb3Q/LnF1ZXJ5U2VsZWN0b3IoIi53eXNpd3lnLWJsb2NrLWNvbnRhaW5lciIpO2lmKE0mJnRoaXMuYmxvY2smJihNLmlubmVySFRNTD10aGlzLnJlbmRlckJsb2NrQ29udGVudCgpKSx0aGlzLmJsb2NrKXtsZXQgRj10MS5nZXRIYW5kbGVyKHRoaXMuYmxvY2sudHlwZSk7aWYoRil7bGV0IF89dGhpcy5zaGFkb3dSb290Py5xdWVyeVNlbGVjdG9yKCIud3lzaXd5Zy1ibG9jay1jb250YWluZXIiKTtfJiZGLnNldHVwKF8sdGhpcy5ibG9jayx0aGlzLmhhbmRsZXJzKTtyZXR1cm59fWxldCBTPXRoaXMuc2hhZG93Um9vdD8ucXVlcnlTZWxlY3RvcigiLmJsb2NrIik7aWYoUyl7Uy5zZXRBdHRyaWJ1dGUoImRhdGEtYmxvY2staWQiLHRoaXMuYmxvY2suaWQpLFMuc2V0QXR0cmlidXRlKCJkYXRhLWJsb2NrLXR5cGUiLHRoaXMuYmxvY2sudHlwZSksUy5hZGRFdmVudExpc3RlbmVyKCJpbnB1dCIsXz0+e3RoaXMuaGFuZGxlcnM/Lm9uSW5wdXQ/LihfKTtsZXQgaz10aGlzLmdldEN1cnNvclBvc2l0aW9uKFMpO2shPT1udWxsJiYodGhpcy5sYXN0S25vd25DdXJzb3JQb3NpdGlvbj1rKX0pLFMuYWRkRXZlbnRMaXN0ZW5lcigia2V5ZG93biIsXz0+e2xldCBrPXRoaXMuZ2V0Q3Vyc29yUG9zaXRpb24oUyk7ayE9PW51bGwmJih0aGlzLmxhc3RLbm93bkN1cnNvclBvc2l0aW9uPWspLHRoaXMuaGFuZGxlcnM/Lm9uS2V5RG93bj8uKF8pfSksUy5hZGRFdmVudExpc3RlbmVyKCJmb2N1cyIsKCk9Pnt0aGlzLmhhbmRsZXJzPy5vbkZvY3VzPy4oKX0pLFMuYWRkRXZlbnRMaXN0ZW5lcigiYmx1ciIsKCk9Pnt0aGlzLmhhbmRsZXJzPy5vbkJsdXI/LigpfSksUy5hZGRFdmVudExpc3RlbmVyKCJjb21wb3NpdGlvbnN0YXJ0IiwoKT0+e3RoaXMuaGFuZGxlcnM/Lm9uQ29tcG9zaXRpb25TdGFydD8uKCl9KSxTLmFkZEV2ZW50TGlzdGVuZXIoImNvbXBvc2l0aW9uZW5kIiwoKT0+e3RoaXMuaGFuZGxlcnM/Lm9uQ29tcG9zaXRpb25FbmQ/LigpfSksUy5hZGRFdmVudExpc3RlbmVyKCJtb3VzZXVwIixfPT57bGV0IGs9dGhpcy5nZXRDdXJzb3JQb3NpdGlvbihTKTtrIT09bnVsbCYmKHRoaXMubGFzdEtub3duQ3Vyc29yUG9zaXRpb249ayksdGhpcy5oYW5kbGVycz8ub25Nb3VzZVVwPy4oXyl9KSxTLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIiwoKT0+e3NldFRpbWVvdXQoKCk9PntsZXQgXz10aGlzLmdldEN1cnNvclBvc2l0aW9uKFMpO18hPT1udWxsJiYodGhpcy5sYXN0S25vd25DdXJzb3JQb3NpdGlvbj1fKX0sMCl9KTtsZXQgRj0oKT0+e2xldCBfPXdpbmRvdy5nZXRTZWxlY3Rpb24oKTtpZighX3x8Xy5yYW5nZUNvdW50PT09MClyZXR1cm47bGV0IGs9Xy50b1N0cmluZygpO2lmKGsubGVuZ3RoPT09MCl7dGhpcy5sYXN0U2VsZWN0ZWRUZXh0JiYodGhpcy5sYXN0U2VsZWN0ZWRUZXh0PSIiLHRoaXMuZGlzcGF0Y2hFdmVudChuZXcgQ3VzdG9tRXZlbnQoImJsb2NrLXRleHQtc2VsZWN0ZWQiLHtkZXRhaWw6e3RleHQ6IiIsYmxvY2tJZDp0aGlzLmJsb2NrLmlkLGhhc1NlbGVjdGlvbjohMX0sYnViYmxlczohMCxjb21wb3NlZDohMH0pKSk7cmV0dXJufWxldCBOPXRoaXMuc2hhZG93Um9vdD8ucXVlcnlTZWxlY3RvcigiLmJsb2NrIik7aWYoIU4pcmV0dXJuO2xldCBBPXRoaXMuY2xvc2VzdCgiZGVlcy1pbnB1dC13eXNpd3lnIik/LnNoYWRvd1Jvb3QscT1bXTtBJiZxLnB1c2goQSksdGhpcy5zaGFkb3dSb290JiZxLnB1c2godGhpcy5zaGFkb3dSb290KTtsZXQgQz1SZS5nZXRTZWxlY3Rpb25JbmZvKC4uLnEpO2lmKCFDKXJldHVybjtsZXQgej1SZS5jb250YWluc0Fjcm9zc1NoYWRvd0RPTShOLEMuc3RhcnRDb250YWluZXIpLEU9UmUuY29udGFpbnNBY3Jvc3NTaGFkb3dET00oTixDLmVuZENvbnRhaW5lcik7aWYoenx8RSl7aWYoayE9PXRoaXMubGFzdFNlbGVjdGVkVGV4dCl7dGhpcy5sYXN0U2VsZWN0ZWRUZXh0PWs7bGV0IFQ9UmUuY3JlYXRlUmFuZ2VGcm9tSW5mbyhDKSwkPVQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7dGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBDdXN0b21FdmVudCgiYmxvY2stdGV4dC1zZWxlY3RlZCIse2RldGFpbDp7dGV4dDprLnRyaW0oKSxibG9ja0lkOnRoaXMuYmxvY2suaWQscmFuZ2U6VCxyZWN0OiQsaGFzU2VsZWN0aW9uOiEwfSxidWJibGVzOiEwLGNvbXBvc2VkOiEwfSkpfX1lbHNlIHRoaXMubGFzdFNlbGVjdGVkVGV4dCYmKHRoaXMubGFzdFNlbGVjdGVkVGV4dD0iIix0aGlzLmRpc3BhdGNoRXZlbnQobmV3IEN1c3RvbUV2ZW50KCJibG9jay10ZXh0LXNlbGVjdGVkIix7ZGV0YWlsOnt0ZXh0OiIiLGJsb2NrSWQ6dGhpcy5ibG9jay5pZCxoYXNTZWxlY3Rpb246ITF9LGJ1YmJsZXM6ITAsY29tcG9zZWQ6ITB9KSkpfTtkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCJzZWxlY3Rpb25jaGFuZ2UiLEYpLHRoaXMuX3NlbGVjdGlvbkhhbmRsZXI9RixTLmFkZEV2ZW50TGlzdGVuZXIoImtleXVwIiwoKT0+e2xldCBfPXRoaXMuZ2V0Q3Vyc29yUG9zaXRpb24oUyk7XyE9PW51bGwmJih0aGlzLmxhc3RLbm93bkN1cnNvclBvc2l0aW9uPV8pfSksdGhpcy5ibG9jay5jb250ZW50JiYoUy5pbm5lckhUTUw9dGhpcy5ibG9jay5jb250ZW50KX10aGlzLmJsb2NrRWxlbWVudD1TfXJlbmRlcigpe3JldHVybiB0aGlzLmJsb2NrP1NzYDxkaXYgY2xhc3M9Ind5c2l3eWctYmxvY2stY29udGFpbmVyIj48L2Rpdj5gOlNzYGB9cmVuZGVyQmxvY2tDb250ZW50KCl7aWYoIXRoaXMuYmxvY2spcmV0dXJuIiI7bGV0IE09dDEuZ2V0SGFuZGxlcih0aGlzLmJsb2NrLnR5cGUpO2lmKE0pcmV0dXJuIE0ucmVuZGVyKHRoaXMuYmxvY2ssdGhpcy5pc1NlbGVjdGVkKTtsZXQgUz10aGlzLmlzU2VsZWN0ZWQ/IiBzZWxlY3RlZCI6IiI7cmV0dXJuYAogICAgICA8ZGl2CiAgICAgICAgY2xhc3M9ImJsb2NrICR7dGhpcy5ibG9jay50eXBlfSR7U30iCiAgICAgICAgY29udGVudGVkaXRhYmxlPSJ0cnVlIgogICAgICA+PC9kaXY+CiAgICBgfWZvY3VzKCl7bGV0IE09dDEuZ2V0SGFuZGxlcih0aGlzLmJsb2NrLnR5cGUpO2lmKE0mJk0uZm9jdXMpe2xldCBGPXRoaXMuc2hhZG93Um9vdD8ucXVlcnlTZWxlY3RvcigiLnd5c2l3eWctYmxvY2stY29udGFpbmVyIiksXz17c2hhZG93Um9vdDp0aGlzLnNoYWRvd1Jvb3QsY29tcG9uZW50OnRoaXN9O3JldHVybiBNLmZvY3VzKEYsXyl9aWYodGhpcy5ibG9jayYmeC5OT05fRURJVEFCTEVfVFlQRVMuaW5jbHVkZXModGhpcy5ibG9jay50eXBlKSl7bGV0IEY9dGhpcy5zaGFkb3dSb290Py5xdWVyeVNlbGVjdG9yKGAuYmxvY2suJHt0aGlzLmJsb2NrLnR5cGV9YCk7RiYmRi5mb2N1cygpO3JldHVybn1sZXQgUz10aGlzLnNoYWRvd1Jvb3Q/LnF1ZXJ5U2VsZWN0b3IoIi5ibG9jayIpO1MmJihTLmhhc0F0dHJpYnV0ZSgiY29udGVudGVkaXRhYmxlIil8fFMuc2V0QXR0cmlidXRlKCJjb250ZW50ZWRpdGFibGUiLCJ0cnVlIiksUy5mb2N1cygpLGRvY3VtZW50LmFjdGl2ZUVsZW1lbnQhPT1TJiZ0aGlzLnNoYWRvd1Jvb3Q/LmFjdGl2ZUVsZW1lbnQhPT1TJiZQcm9taXNlLnJlc29sdmUoKS50aGVuKCgpPT57Uy5mb2N1cygpfSkpfWZvY3VzV2l0aEN1cnNvcihNPSJlbmQiKXtsZXQgUz10MS5nZXRIYW5kbGVyKHRoaXMuYmxvY2sudHlwZSk7aWYoUyYmUy5mb2N1c1dpdGhDdXJzb3Ipe2xldCBrPXRoaXMuc2hhZG93Um9vdD8ucXVlcnlTZWxlY3RvcigiLnd5c2l3eWctYmxvY2stY29udGFpbmVyIiksTj17c2hhZG93Um9vdDp0aGlzLnNoYWRvd1Jvb3QsY29tcG9uZW50OnRoaXN9O3JldHVybiBTLmZvY3VzV2l0aEN1cnNvcihrLE0sTil9aWYodGhpcy5ibG9jayYmeC5OT05fRURJVEFCTEVfVFlQRVMuaW5jbHVkZXModGhpcy5ibG9jay50eXBlKSl7dGhpcy5mb2N1cygpO3JldHVybn1sZXQgRj10aGlzLnNoYWRvd1Jvb3Q/LnF1ZXJ5U2VsZWN0b3IoIi5ibG9jayIpO2lmKCFGKXJldHVybjtGLmhhc0F0dHJpYnV0ZSgiY29udGVudGVkaXRhYmxlIil8fEYuc2V0QXR0cmlidXRlKCJjb250ZW50ZWRpdGFibGUiLCJ0cnVlIiksRi5mb2N1cygpO2xldCBfPSgpPT57TT09PSJzdGFydCI/dGhpcy5zZXRDdXJzb3JUb1N0YXJ0KCk6TT09PSJlbmQiP3RoaXMuc2V0Q3Vyc29yVG9FbmQoKTp0eXBlb2YgTT09Im51bWJlciImJlJlLnNldEN1cnNvclBvc2l0aW9uKEYsTSl9O2RvY3VtZW50LmFjdGl2ZUVsZW1lbnQ9PT1GfHx0aGlzLnNoYWRvd1Jvb3Q/LmFjdGl2ZUVsZW1lbnQ9PT1GP18oKTpQcm9taXNlLnJlc29sdmUoKS50aGVuKCgpPT57KGRvY3VtZW50LmFjdGl2ZUVsZW1lbnQ9PT1GfHx0aGlzLnNoYWRvd1Jvb3Q/LmFjdGl2ZUVsZW1lbnQ9PT1GKSYmXygpfSl9Z2V0Q3Vyc29yUG9zaXRpb24oTSl7bGV0IFM9dDEuZ2V0SGFuZGxlcih0aGlzLmJsb2NrLnR5cGUpO2lmKFMmJlMuZ2V0Q3Vyc29yUG9zaXRpb24pe2xldCBxPXtzaGFkb3dSb290OnRoaXMuc2hhZG93Um9vdCxjb21wb25lbnQ6dGhpc307cmV0dXJuIFMuZ2V0Q3Vyc29yUG9zaXRpb24oTSxxKX1sZXQgXz10aGlzLmNsb3Nlc3QoImRlZXMtaW5wdXQtd3lzaXd5ZyIpPy5zaGFkb3dSb290LGs9W107XyYmay5wdXNoKF8pLHRoaXMuc2hhZG93Um9vdCYmay5wdXNoKHRoaXMuc2hhZG93Um9vdCk7bGV0IE49UmUuZ2V0U2VsZWN0aW9uSW5mbyguLi5rKTtpZihjb25zb2xlLmxvZygiZ2V0Q3Vyc29yUG9zaXRpb246IFNlbGVjdGlvbiBpbmZvIGZyb20gc2hhZG93IERPTXM6Iix7c2VsZWN0aW9uSW5mbzpOLHNoYWRvd1Jvb3RzQ291bnQ6ay5sZW5ndGh9KSwhTilyZXR1cm4gY29uc29sZS5sb2coImdldEN1cnNvclBvc2l0aW9uOiBObyBzZWxlY3Rpb24gZm91bmQiKSxudWxsO2lmKGNvbnNvbGUubG9nKCJnZXRDdXJzb3JQb3NpdGlvbjogUmFuZ2UgaW5mbzoiLHtzdGFydENvbnRhaW5lcjpOLnN0YXJ0Q29udGFpbmVyLHN0YXJ0T2Zmc2V0Ok4uc3RhcnRPZmZzZXQsY29sbGFwc2VkOk4uY29sbGFwc2VkLHN0YXJ0Q29udGFpbmVyVGV4dDpOLnN0YXJ0Q29udGFpbmVyLnRleHRDb250ZW50fSksIU0uY29udGFpbnMoTi5zdGFydENvbnRhaW5lcikpcmV0dXJuIGNvbnNvbGUubG9nKCJnZXRDdXJzb3JQb3NpdGlvbjogUmFuZ2Ugbm90IGluIGVsZW1lbnQiKSxudWxsO2xldCBMPWRvY3VtZW50LmNyZWF0ZVJhbmdlKCk7TC5zZWxlY3ROb2RlQ29udGVudHMoTSksTC5zZXRFbmQoTi5zdGFydENvbnRhaW5lcixOLnN0YXJ0T2Zmc2V0KTtsZXQgQT1MLnRvU3RyaW5nKCkubGVuZ3RoO3JldHVybiBjb25zb2xlLmxvZygiZ2V0Q3Vyc29yUG9zaXRpb246IENhbGN1bGF0ZWQgcG9zaXRpb246Iix7cG9zaXRpb246QSxwcmVDYXJldFRleHQ6TC50b1N0cmluZygpLGVsZW1lbnRUZXh0Ok0udGV4dENvbnRlbnQsZWxlbWVudFRleHRMZW5ndGg6TS50ZXh0Q29udGVudD8ubGVuZ3RofSksQX1nZXRDb250ZW50KCl7bGV0IE09dDEuZ2V0SGFuZGxlcih0aGlzLmJsb2NrLnR5cGUpO2lmKE0mJk0uZ2V0Q29udGVudCl7bGV0IF89dGhpcy5zaGFkb3dSb290Py5xdWVyeVNlbGVjdG9yKCIud3lzaXd5Zy1ibG9jay1jb250YWluZXIiKSxrPXtzaGFkb3dSb290OnRoaXMuc2hhZG93Um9vdCxjb21wb25lbnQ6dGhpc307cmV0dXJuIE0uZ2V0Q29udGVudChfLGspfWxldCBTPXRoaXMuc2hhZG93Um9vdD8ucXVlcnlTZWxlY3RvcigiLmJsb2NrIik7aWYoIVMpcmV0dXJuIiI7bGV0IEY9Uy5pbm5lckhUTUx8fCIiO3JldHVybiBjb25zb2xlLmxvZygiR2V0dGluZyBjb250ZW50IGZyb20gYmxvY2s6IixGKSxGfXNldENvbnRlbnQoTSl7bGV0IFM9dDEuZ2V0SGFuZGxlcih0aGlzLmJsb2NrLnR5cGUpO2lmKFMmJlMuc2V0Q29udGVudCl7bGV0IGs9dGhpcy5zaGFkb3dSb290Py5xdWVyeVNlbGVjdG9yKCIud3lzaXd5Zy1ibG9jay1jb250YWluZXIiKSxOPXtzaGFkb3dSb290OnRoaXMuc2hhZG93Um9vdCxjb21wb25lbnQ6dGhpc307cmV0dXJuIFMuc2V0Q29udGVudChrLE0sTil9bGV0IEY9dGhpcy5zaGFkb3dSb290Py5xdWVyeVNlbGVjdG9yKCIuYmxvY2siKTtpZighRilyZXR1cm47bGV0IF89ZG9jdW1lbnQuYWN0aXZlRWxlbWVudD09PUZ8fHRoaXMuc2hhZG93Um9vdD8uYWN0aXZlRWxlbWVudD09PUY7Ri5pbm5lckhUTUw9TSxfJiZGLmZvY3VzKCl9c2V0Q3Vyc29yVG9TdGFydCgpe2xldCBNPXQxLmdldEhhbmRsZXIodGhpcy5ibG9jay50eXBlKTtpZihNJiZNLnNldEN1cnNvclRvU3RhcnQpe2xldCBGPXRoaXMuc2hhZG93Um9vdD8ucXVlcnlTZWxlY3RvcigiLnd5c2l3eWctYmxvY2stY29udGFpbmVyIiksXz17c2hhZG93Um9vdDp0aGlzLnNoYWRvd1Jvb3QsY29tcG9uZW50OnRoaXN9O3JldHVybiBNLnNldEN1cnNvclRvU3RhcnQoRixfKX1sZXQgUz10aGlzLnNoYWRvd1Jvb3Q/LnF1ZXJ5U2VsZWN0b3IoIi5ibG9jayIpO1MmJkEyLnNldEN1cnNvclRvU3RhcnQoUyl9c2V0Q3Vyc29yVG9FbmQoKXtsZXQgTT10MS5nZXRIYW5kbGVyKHRoaXMuYmxvY2sudHlwZSk7aWYoTSYmTS5zZXRDdXJzb3JUb0VuZCl7bGV0IEY9dGhpcy5zaGFkb3dSb290Py5xdWVyeVNlbGVjdG9yKCIud3lzaXd5Zy1ibG9jay1jb250YWluZXIiKSxfPXtzaGFkb3dSb290OnRoaXMuc2hhZG93Um9vdCxjb21wb25lbnQ6dGhpc307cmV0dXJuIE0uc2V0Q3Vyc29yVG9FbmQoRixfKX1sZXQgUz10aGlzLnNoYWRvd1Jvb3Q/LnF1ZXJ5U2VsZWN0b3IoIi5ibG9jayIpO1MmJkEyLnNldEN1cnNvclRvRW5kKFMpfWdldENvbnRleHRNZW51SXRlbXMoKXtpZighdGhpcy5ibG9ja3x8dGhpcy5ibG9jay50eXBlPT09ImRpdmlkZXIiKXJldHVybltdO2xldCBNPVYxLmdldFNsYXNoTWVudUl0ZW1zKCksUz10aGlzLmJsb2NrLnR5cGUsRj10aGlzLnd5c2l3eWdDb21wb25lbnQsXz10aGlzLmJsb2NrLmlkLE49W3tuYW1lOiJDaGFuZ2UgVHlwZSIsaWNvbk5hbWU6InR5cGUiLHN1Ym1lbnU6TS5maWx0ZXIoTD0+TC50eXBlIT09UyYmTC50eXBlIT09ImRpdmlkZXIiKS5tYXAoTD0+KHtuYW1lOkwubGFiZWwsaWNvbk5hbWU6TC5pY29uLnJlcGxhY2UoImx1Y2lkZToiLCIiKSxhY3Rpb246YXN5bmMoKT0+e2lmKEYmJkYuYmxvY2tPcGVyYXRpb25zKXtsZXQgQT1GLmJsb2Nrcy5maW5kKHE9PnEuaWQ9PT1fKTtBJiYoQS50eXBlPUwudHlwZSxBLmNvbnRlbnQ9QS5jb250ZW50fHwiIixMLnR5cGU9PT0iY29kZSI/QS5tZXRhZGF0YT17bGFuZ3VhZ2U6InR5cGVzY3JpcHQifTpMLnR5cGU9PT0ibGlzdCI/QS5tZXRhZGF0YT17bGlzdFR5cGU6ImJ1bGxldCJ9OkwudHlwZT09PSJpbWFnZSI/KEEuY29udGVudD0iIixBLm1ldGFkYXRhPXt1cmw6IiIsbG9hZGluZzohMX0pOkwudHlwZT09PSJ5b3V0dWJlIj8oQS5jb250ZW50PSIiLEEubWV0YWRhdGE9e3ZpZGVvSWQ6IiIsdXJsOiIifSk6TC50eXBlPT09Im1hcmtkb3duIj9BLm1ldGFkYXRhPXtzaG93UHJldmlldzohMX06TC50eXBlPT09Imh0bWwiP0EubWV0YWRhdGE9e3Nob3dQcmV2aWV3OiExfTpMLnR5cGU9PT0iYXR0YWNobWVudCImJihBLmNvbnRlbnQ9IiIsQS5tZXRhZGF0YT17ZmlsZXM6W119KSxGLnVwZGF0ZUJsb2NrRWxlbWVudChfKSxGLnVwZGF0ZVZhbHVlKCkscmVxdWVzdEFuaW1hdGlvbkZyYW1lKCgpPT57Ri5ibG9ja09wZXJhdGlvbnMuZm9jdXNCbG9jayhfKX0pKX19fSkpfV07cmV0dXJuWyJpbWFnZSIsImRpdmlkZXIiLCJ5b3V0dWJlIiwiYXR0YWNobWVudCJdLmluY2x1ZGVzKHRoaXMuYmxvY2sudHlwZSl8fE4ucHVzaCh7ZGl2aWRlcjohMH0se25hbWU6IkN1dCIsaWNvbk5hbWU6InNjaXNzb3JzIixzaG9ydGN1dDoiQ21kK1giLGFjdGlvbjphc3luYygpPT57ZG9jdW1lbnQuZXhlY0NvbW1hbmQoImN1dCIpfX0se25hbWU6IkNvcHkiLGljb25OYW1lOiJjb3B5IixzaG9ydGN1dDoiQ21kK0MiLGFjdGlvbjphc3luYygpPT57ZG9jdW1lbnQuZXhlY0NvbW1hbmQoImNvcHkiKX19LHtuYW1lOiJQYXN0ZSIsaWNvbk5hbWU6ImNsaXBib2FyZCIsc2hvcnRjdXQ6IkNtZCtWIixhY3Rpb246YXN5bmMoKT0+e2RvY3VtZW50LmV4ZWNDb21tYW5kKCJwYXN0ZSIpfX0pLE4ucHVzaCh7ZGl2aWRlcjohMH0se25hbWU6IkRlbGV0ZSBCbG9jayIsaWNvbk5hbWU6InRyYXNoMiIsYWN0aW9uOmFzeW5jKCk9PntGJiZGLmJsb2NrT3BlcmF0aW9ucyYmRi5ibG9ja09wZXJhdGlvbnMuZGVsZXRlQmxvY2soXyl9fSksTn1nZXRTcGxpdENvbnRlbnQoKXtjb25zb2xlLmxvZygiZ2V0U3BsaXRDb250ZW50OiBTdGFydGluZy4uLiIpO2xldCBNPXQxLmdldEhhbmRsZXIodGhpcy5ibG9jay50eXBlKTtpZihjb25zb2xlLmxvZygiZ2V0U3BsaXRDb250ZW50OiBDaGVja2luZyBmb3IgaGFuZGxlciIse2Jsb2NrVHlwZTp0aGlzLmJsb2NrLnR5cGUsaGFzSGFuZGxlcjohIU0saGFzU3BsaXRNZXRob2Q6ISEoTSYmTS5nZXRTcGxpdENvbnRlbnQpfSksTSYmTS5nZXRTcGxpdENvbnRlbnQpe2xldCBWPXRoaXMuc2hhZG93Um9vdD8ucXVlcnlTZWxlY3RvcigiLnd5c2l3eWctYmxvY2stY29udGFpbmVyIik7Y29uc29sZS5sb2coImdldFNwbGl0Q29udGVudDogRm91bmQgY29udGFpbmVyIix7Y29udGFpbmVyOiEhVixjb250YWluZXJIVE1MOlY/LmlubmVySFRNTD8uc3Vic3RyaW5nKDAsMTAwKX0pO2xldCBSPXtzaGFkb3dSb290OnRoaXMuc2hhZG93Um9vdCxjb21wb25lbnQ6dGhpc307cmV0dXJuIE0uZ2V0U3BsaXRDb250ZW50KFYsUil9bGV0IFM9dGhpcy5zaGFkb3dSb290Py5xdWVyeVNlbGVjdG9yKCIuYmxvY2siKTtpZighUylyZXR1cm4gY29uc29sZS5sb2coImdldFNwbGl0Q29udGVudDogTm8gZWRpdGFibGUgZWxlbWVudCBmb3VuZCIpLG51bGw7Y29uc29sZS5sb2coImdldFNwbGl0Q29udGVudDogRWxlbWVudCBpbmZvOiIse2Jsb2NrVHlwZTp0aGlzLmJsb2NrLnR5cGUsaW5uZXJIVE1MOlMuaW5uZXJIVE1MLHRleHRDb250ZW50OlMudGV4dENvbnRlbnQsdGV4dExlbmd0aDpTLnRleHRDb250ZW50Py5sZW5ndGh9KTtsZXQgXz10aGlzLmNsb3Nlc3QoImRlZXMtaW5wdXQtd3lzaXd5ZyIpPy5zaGFkb3dSb290LGs9W107XyYmay5wdXNoKF8pLHRoaXMuc2hhZG93Um9vdCYmay5wdXNoKHRoaXMuc2hhZG93Um9vdCk7bGV0IE49UmUuZ2V0U2VsZWN0aW9uSW5mbyguLi5rKTtpZihjb25zb2xlLmxvZygiZ2V0U3BsaXRDb250ZW50OiBTZWxlY3Rpb24gaW5mbyBmcm9tIHNoYWRvdyBET01zOiIse3NlbGVjdGlvbkluZm86TixzaGFkb3dSb290c0NvdW50OmsubGVuZ3RofSksIU4pe2lmKGNvbnNvbGUubG9nKCJnZXRTcGxpdENvbnRlbnQ6IE5vIHNlbGVjdGlvbiwgdXNpbmcgbGFzdCBrbm93biBwb3NpdGlvbjoiLHRoaXMubGFzdEtub3duQ3Vyc29yUG9zaXRpb24pLHRoaXMubGFzdEtub3duQ3Vyc29yUG9zaXRpb24hPT1udWxsKXtsZXQgVj1TLnRleHRDb250ZW50fHwiIixSPU1hdGgubWluKHRoaXMubGFzdEtub3duQ3Vyc29yUG9zaXRpb24sVi5sZW5ndGgpO3JldHVybiBjb25zb2xlLmxvZygiZ2V0U3BsaXRDb250ZW50OiBTcGxpdHRpbmcgd2l0aCBsYXN0IGtub3duIHBvc2l0aW9uOiIse3BvczpSLGZ1bGxUZXh0TGVuZ3RoOlYubGVuZ3RoLGJlZm9yZTpWLnN1YnN0cmluZygwLFIpLGFmdGVyOlYuc3Vic3RyaW5nKFIpfSkse2JlZm9yZTpWLnN1YnN0cmluZygwLFIpLGFmdGVyOlYuc3Vic3RyaW5nKFIpfX1yZXR1cm4gbnVsbH1pZihjb25zb2xlLmxvZygiZ2V0U3BsaXRDb250ZW50OiBTZWxlY3Rpb24gcmFuZ2U6Iix7c3RhcnRDb250YWluZXI6Ti5zdGFydENvbnRhaW5lcixzdGFydE9mZnNldDpOLnN0YXJ0T2Zmc2V0LHN0YXJ0Q29udGFpbmVySW5FbGVtZW50OlMuY29udGFpbnMoTi5zdGFydENvbnRhaW5lcil9KSwhUmUuY29udGFpbnNBY3Jvc3NTaGFkb3dET00oUyxOLnN0YXJ0Q29udGFpbmVyKSl7aWYoY29uc29sZS5sb2coImdldFNwbGl0Q29udGVudDogU2VsZWN0aW9uIG5vdCBpbiB0aGlzIGJsb2NrLCB1c2luZyBsYXN0IGtub3duIHBvc2l0aW9uOiIsdGhpcy5sYXN0S25vd25DdXJzb3JQb3NpdGlvbiksdGhpcy5sYXN0S25vd25DdXJzb3JQb3NpdGlvbiE9PW51bGwpe2xldCBWPVMudGV4dENvbnRlbnR8fCIiLFI9TWF0aC5taW4odGhpcy5sYXN0S25vd25DdXJzb3JQb3NpdGlvbixWLmxlbmd0aCk7cmV0dXJue2JlZm9yZTpWLnN1YnN0cmluZygwLFIpLGFmdGVyOlYuc3Vic3RyaW5nKFIpfX1yZXR1cm4gbnVsbH1sZXQgTD10aGlzLmdldEN1cnNvclBvc2l0aW9uKFMpO2lmKGNvbnNvbGUubG9nKCJnZXRTcGxpdENvbnRlbnQ6IEN1cnNvciBwb3NpdGlvbiBmb3IgSFRNTCBzcGxpdDoiLEwpLEw9PT1udWxsfHxMPT09MClyZXR1cm4gY29uc29sZS5sb2coImdldFNwbGl0Q29udGVudDogQ3Vyc29yIGF0IHN0YXJ0IG9yIG51bGwsIG1vdmluZyBhbGwgY29udGVudCIpLHtiZWZvcmU6IiIsYWZ0ZXI6Uy5pbm5lckhUTUx9O2xldCBBPWRvY3VtZW50LmNyZWF0ZVJhbmdlKCkscT1kb2N1bWVudC5jcmVhdGVSYW5nZSgpO0Euc2V0U3RhcnQoUywwKSxBLnNldEVuZChOLnN0YXJ0Q29udGFpbmVyLE4uc3RhcnRPZmZzZXQpLHEuc2V0U3RhcnQoTi5zdGFydENvbnRhaW5lcixOLnN0YXJ0T2Zmc2V0KSxxLnNldEVuZChTLFMuY2hpbGROb2Rlcy5sZW5ndGgpO2xldCBDPUEuY2xvbmVDb250ZW50cygpLHo9cS5jbG9uZUNvbnRlbnRzKCksRT1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTtFLmFwcGVuZENoaWxkKEMpO2xldCBUPUUuaW5uZXJIVE1MO0UuaW5uZXJIVE1MPSIiLEUuYXBwZW5kQ2hpbGQoeik7bGV0ICQ9RS5pbm5lckhUTUw7cmV0dXJuIGNvbnNvbGUubG9nKCJnZXRTcGxpdENvbnRlbnQ6IEZpbmFsIHNwbGl0IHJlc3VsdDoiLHtjdXJzb3JQb3M6TCxiZWZvcmVIdG1sOlQsYmVmb3JlTGVuZ3RoOlQubGVuZ3RoLGJlZm9yZUh0bWxQcmV2aWV3OlQuc3Vic3RyaW5nKDAsMTAwKSsoVC5sZW5ndGg+MTAwPyIuLi4iOiIiKSxhZnRlckh0bWw6JCxhZnRlckxlbmd0aDokLmxlbmd0aCxhZnRlckh0bWxQcmV2aWV3OiQuc3Vic3RyaW5nKDAsMTAwKSsoJC5sZW5ndGg+MTAwPyIuLi4iOiIiKX0pLHtiZWZvcmU6VCxhZnRlcjokfX1zdGF0aWN7VnMoaSxhKX19O3JldHVybiB4PWl9KSgpfSk7dmFyIExWPWIoKCk9PnskVigpO0FhKCk7TmwoKTtydygpO21ndCgpO2tWKCk7bzQoKTt3VigpO1VyKCk7cXMoKTtTVigpO19WKCk7JGd0KCk7QWd0KCk7RGd0KCk7VFYoKTtFZ3QoKTt4VigpO01WKCk7SWd0KCl9KTt2YXIgZm8sbWEsQVYsJFY9YigoKT0+e18xKCk7Zmd0KCk7RzAoKTt1ZSgpO0xWKCk7cWUoKTtmbz1mdW5jdGlvbih0LGUsYSxpLHIscyl7ZnVuY3Rpb24gbih4KXtpZih4IT09dm9pZCAwJiZ0eXBlb2YgeCE9ImZ1bmN0aW9uIil0aHJvdyBuZXcgVHlwZUVycm9yKCJGdW5jdGlvbiBleHBlY3RlZCIpO3JldHVybiB4fWZvcih2YXIgbz1pLmtpbmQsZD1vPT09ImdldHRlciI/ImdldCI6bz09PSJzZXR0ZXIiPyJzZXQiOiJ2YWx1ZSIsYz0hZSYmdD9pLnN0YXRpYz90OnQucHJvdG90eXBlOm51bGwsaD1lfHwoYz9PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGMsaS5uYW1lKTp7fSksbCxmPSExLGc9YS5sZW5ndGgtMTtnPj0wO2ctLSl7dmFyIHk9e307Zm9yKHZhciB2IGluIGkpeVt2XT12PT09ImFjY2VzcyI/e306aVt2XTtmb3IodmFyIHYgaW4gaS5hY2Nlc3MpeS5hY2Nlc3Nbdl09aS5hY2Nlc3Nbdl07eS5hZGRJbml0aWFsaXplcj1mdW5jdGlvbih4KXtpZihmKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBhZGQgaW5pdGlhbGl6ZXJzIGFmdGVyIGRlY29yYXRpb24gaGFzIGNvbXBsZXRlZCIpO3MucHVzaChuKHh8fG51bGwpKX07dmFyIG09KDAsYVtnXSkobz09PSJhY2Nlc3NvciI/e2dldDpoLmdldCxzZXQ6aC5zZXR9OmhbZF0seSk7aWYobz09PSJhY2Nlc3NvciIpe2lmKG09PT12b2lkIDApY29udGludWU7aWYobT09PW51bGx8fHR5cGVvZiBtIT0ib2JqZWN0Iil0aHJvdyBuZXcgVHlwZUVycm9yKCJPYmplY3QgZXhwZWN0ZWQiKTsobD1uKG0uZ2V0KSkmJihoLmdldD1sKSwobD1uKG0uc2V0KSkmJihoLnNldD1sKSwobD1uKG0uaW5pdCkpJiZyLnVuc2hpZnQobCl9ZWxzZShsPW4obSkpJiYobz09PSJmaWVsZCI/ci51bnNoaWZ0KGwpOmhbZF09bCl9YyYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGMsaS5uYW1lLGgpLGY9ITB9LG1hPWZ1bmN0aW9uKHQsZSxhKXtmb3IodmFyIGk9YXJndW1lbnRzLmxlbmd0aD4yLHI9MDtyPGUubGVuZ3RoO3IrKylhPWk/ZVtyXS5jYWxsKHQsYSk6ZVtyXS5jYWxsKHQpO3JldHVybiBpP2E6dm9pZCAwfSxBVj0oKCk9PntsZXQgdD1bcGUoImRlZXMtaW5wdXQtd3lzaXd5ZyIpXSxlLGE9W10saSxyPVhlLHMsbj1bXSxvPVtdLGQsYz1bXSxoPVtdLGwsZj1bXSxnPVtdLHksdj1bXSxtPVtdLHgsTT1bXSxTPVtdLEYsXz1bXSxrPVtdLE4sTD1bXSxBPVtdO3ZhciBxPWNsYXNzIGV4dGVuZHMgcntzdGF0aWN7aT10aGlzfXN0YXRpY3tsZXQgQz10eXBlb2YgU3ltYm9sPT0iZnVuY3Rpb24iJiZTeW1ib2wubWV0YWRhdGE/T2JqZWN0LmNyZWF0ZShyW1N5bWJvbC5tZXRhZGF0YV0/P251bGwpOnZvaWQgMDtzPVtJKHt0eXBlOlN0cmluZ30pXSxkPVtJKHt0eXBlOlN0cmluZ30pXSxsPVtKKCldLHk9W0ooKV0seD1bSigpXSxGPVtKKCldLE49W0ooKV0sZm8odGhpcyxudWxsLHMse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJ2YWx1ZSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6ej0+InZhbHVlImluIHosZ2V0Ono9PnoudmFsdWUsc2V0Oih6LEUpPT57ei52YWx1ZT1FfX0sbWV0YWRhdGE6Q30sbixvKSxmbyh0aGlzLG51bGwsZCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6Im91dHB1dEZvcm1hdCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6ej0+Im91dHB1dEZvcm1hdCJpbiB6LGdldDp6PT56Lm91dHB1dEZvcm1hdCxzZXQ6KHosRSk9Pnt6Lm91dHB1dEZvcm1hdD1FfX0sbWV0YWRhdGE6Q30sYyxoKSxmbyh0aGlzLG51bGwsbCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImJsb2NrcyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6ej0+ImJsb2NrcyJpbiB6LGdldDp6PT56LmJsb2NrcyxzZXQ6KHosRSk9Pnt6LmJsb2Nrcz1FfX0sbWV0YWRhdGE6Q30sZixnKSxmbyh0aGlzLG51bGwseSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImRyYWdnZWRCbG9ja0lkIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczp6PT4iZHJhZ2dlZEJsb2NrSWQiaW4geixnZXQ6ej0+ei5kcmFnZ2VkQmxvY2tJZCxzZXQ6KHosRSk9Pnt6LmRyYWdnZWRCbG9ja0lkPUV9fSxtZXRhZGF0YTpDfSx2LG0pLGZvKHRoaXMsbnVsbCx4LHtraW5kOiJhY2Nlc3NvciIsbmFtZToiZHJhZ092ZXJCbG9ja0lkIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczp6PT4iZHJhZ092ZXJCbG9ja0lkImluIHosZ2V0Ono9PnouZHJhZ092ZXJCbG9ja0lkLHNldDooeixFKT0+e3ouZHJhZ092ZXJCbG9ja0lkPUV9fSxtZXRhZGF0YTpDfSxNLFMpLGZvKHRoaXMsbnVsbCxGLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiZHJhZ092ZXJQb3NpdGlvbiIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6ej0+ImRyYWdPdmVyUG9zaXRpb24iaW4geixnZXQ6ej0+ei5kcmFnT3ZlclBvc2l0aW9uLHNldDooeixFKT0+e3ouZHJhZ092ZXJQb3NpdGlvbj1FfX0sbWV0YWRhdGE6Q30sXyxrKSxmbyh0aGlzLG51bGwsTix7a2luZDoiYWNjZXNzb3IiLG5hbWU6InNlbGVjdGVkVGV4dCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6ej0+InNlbGVjdGVkVGV4dCJpbiB6LGdldDp6PT56LnNlbGVjdGVkVGV4dCxzZXQ6KHosRSk9Pnt6LnNlbGVjdGVkVGV4dD1FfX0sbWV0YWRhdGE6Q30sTCxBKSxmbyhudWxsLGU9e3ZhbHVlOml9LHQse2tpbmQ6ImNsYXNzIixuYW1lOmkubmFtZSxtZXRhZGF0YTpDfSxudWxsLGEpLHE9aT1lLnZhbHVlLEMmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShpLFN5bWJvbC5tZXRhZGF0YSx7ZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITAsdmFsdWU6Q30pfXN0YXRpYyBkZW1vPXVndDtzdGF0aWMgZGVtb0dyb3Vwcz1bIklucHV0IiwiV29ya3NwYWNlIl07I2U9bWEodGhpcyxuLCIiKTtnZXQgdmFsdWUoKXtyZXR1cm4gdGhpcy4jZX1zZXQgdmFsdWUoQyl7dGhpcy4jZT1DfSN0PShtYSh0aGlzLG8pLG1hKHRoaXMsYywiaHRtbCIpKTtnZXQgb3V0cHV0Rm9ybWF0KCl7cmV0dXJuIHRoaXMuI3R9c2V0IG91dHB1dEZvcm1hdChDKXt0aGlzLiN0PUN9I2E9KG1hKHRoaXMsaCksbWEodGhpcyxmLFt7aWQ6VjEuZ2VuZXJhdGVCbG9ja0lkKCksdHlwZToicGFyYWdyYXBoIixjb250ZW50OiIifV0pKTtnZXQgYmxvY2tzKCl7cmV0dXJuIHRoaXMuI2F9c2V0IGJsb2NrcyhDKXt0aGlzLiNhPUN9c2VsZWN0ZWRCbG9ja0lkPShtYSh0aGlzLGcpLG51bGwpO3NsYXNoTWVudT10dy5nZXRJbnN0YW5jZSgpOyNpPW1hKHRoaXMsdixudWxsKTtnZXQgZHJhZ2dlZEJsb2NrSWQoKXtyZXR1cm4gdGhpcy4jaX1zZXQgZHJhZ2dlZEJsb2NrSWQoQyl7dGhpcy4jaT1DfSNyPShtYSh0aGlzLG0pLG1hKHRoaXMsTSxudWxsKSk7Z2V0IGRyYWdPdmVyQmxvY2tJZCgpe3JldHVybiB0aGlzLiNyfXNldCBkcmFnT3ZlckJsb2NrSWQoQyl7dGhpcy4jcj1DfSNzPShtYSh0aGlzLFMpLG1hKHRoaXMsXyxudWxsKSk7Z2V0IGRyYWdPdmVyUG9zaXRpb24oKXtyZXR1cm4gdGhpcy4jc31zZXQgZHJhZ092ZXJQb3NpdGlvbihDKXt0aGlzLiNzPUN9Zm9ybWF0dGluZ01lbnU9KG1hKHRoaXMsayksaXcuZ2V0SW5zdGFuY2UoKSk7I249bWEodGhpcyxMLCIiKTtnZXQgc2VsZWN0ZWRUZXh0KCl7cmV0dXJuIHRoaXMuI259c2V0IHNlbGVjdGVkVGV4dChDKXt0aGlzLiNuPUN9ZWRpdG9yQ29udGVudFJlZj1tYSh0aGlzLEEpO2lzQ29tcG9zaW5nPSExO2Jsb2NrT3BlcmF0aW9ucztpbnB1dEhhbmRsZXI7a2V5Ym9hcmRIYW5kbGVyO2RyYWdEcm9wSGFuZGxlcjtoaXN0b3J5O3N0YXRpYyBzdHlsZXM9W0NlLC4uLlhlLmJhc2VTdHlsZXMscC5kZWZhdWx0U3R5bGVzLHpWXTtjb25zdHJ1Y3Rvcigpe3N1cGVyKCksdGhpcy5ibG9ja09wZXJhdGlvbnM9bmV3IEw4KHRoaXMpLHRoaXMuaW5wdXRIYW5kbGVyPW5ldyBIOCh0aGlzKSx0aGlzLmtleWJvYXJkSGFuZGxlcj1uZXcgcTgodGhpcyksdGhpcy5kcmFnRHJvcEhhbmRsZXI9bmV3IFY4KHRoaXMpLHRoaXMuaGlzdG9yeT1uZXcgajh9YXN5bmMgY29ubmVjdGVkQ2FsbGJhY2soKXthd2FpdCBzdXBlci5jb25uZWN0ZWRDYWxsYmFjaygpfWFzeW5jIGRpc2Nvbm5lY3RlZENhbGxiYWNrKCl7YXdhaXQgc3VwZXIuZGlzY29ubmVjdGVkQ2FsbGJhY2soKSx0aGlzLmlucHV0SGFuZGxlcj8uZGVzdHJveSgpLHRoaXMuYmx1clRpbWVvdXQmJihjbGVhclRpbWVvdXQodGhpcy5ibHVyVGltZW91dCksdGhpcy5ibHVyVGltZW91dD1udWxsKX1hc3luYyBmaXJzdFVwZGF0ZWQoKXtpZih0aGlzLnZhbHVlJiZ0aGlzLnZhbHVlLnRyaW0oKS5sZW5ndGg+MCl7bGV0IEM9dGhpcy5vdXRwdXRGb3JtYXQ9PT0iaHRtbCI/eGkucGFyc2VIdG1sVG9CbG9ja3ModGhpcy52YWx1ZSk6eGkucGFyc2VNYXJrZG93blRvQmxvY2tzKHRoaXMudmFsdWUpO0MubGVuZ3RoPjAmJih0aGlzLmJsb2Nrcz1DKX10aGlzLnVwZGF0ZVZhbHVlKCksdGhpcy5lZGl0b3JDb250ZW50UmVmPXRoaXMuc2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yKCIuZWRpdG9yLWNvbnRlbnQiKSx0aGlzLmVkaXRvckNvbnRlbnRSZWYmJnRoaXMuZWRpdG9yQ29udGVudFJlZi5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsQz0+dGhpcy5oYW5kbGVFZGl0b3JDbGljayhDKSksdGhpcy5hZGRFdmVudExpc3RlbmVyKCJibG9jay10ZXh0LXNlbGVjdGVkIixDPT57aWYoIXRoaXMuc2xhc2hNZW51LnZpc2libGUmJkMuZGV0YWlsLmhhc1NlbGVjdGlvbiYmQy5kZXRhaWwudGV4dC5sZW5ndGg+MCYmKHRoaXMuc2VsZWN0ZWRUZXh0PUMuZGV0YWlsLnRleHQsQy5kZXRhaWwucmVjdCkpe2xldCB6PXt4OkMuZGV0YWlsLnJlY3QubGVmdCtDLmRldGFpbC5yZWN0LndpZHRoLzIseTpNYXRoLm1heCg0NSxDLmRldGFpbC5yZWN0LnRvcC00NSl9O3RoaXMuZm9ybWF0dGluZ01lbnUuc2hvdyh6LGFzeW5jIEU9PmF3YWl0IHRoaXMuYXBwbHlGb3JtYXQoRSkpfX0pLGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoIm1vdXNlZG93biIsQz0+e2xldCB6PXRoaXMuZm9ybWF0dGluZ01lbnUuc2hhZG93Um9vdD8ucXVlcnlTZWxlY3RvcigiLmZvcm1hdHRpbmctbWVudSIpO2lmKHomJnouY29udGFpbnMoQy50YXJnZXQpKXJldHVybjtsZXQgRT13aW5kb3cuZ2V0U2VsZWN0aW9uKCk7RSYmRS50b1N0cmluZygpLnRyaW0oKS5sZW5ndGg+MHx8dGhpcy5mb3JtYXR0aW5nTWVudS52aXNpYmxlJiZ0aGlzLmhpZGVGb3JtYXR0aW5nTWVudSgpfSksdGhpcy5hZGRFdmVudExpc3RlbmVyKCJrZXlkb3duIixDPT57bGV0IHo9Qy50YXJnZXQ7IXRoaXMuY29udGFpbnMoeikmJiF0aGlzLnNoYWRvd1Jvb3Q/LmNvbnRhaW5zKHopfHwoKEMubWV0YUtleXx8Qy5jdHJsS2V5KSYmIUMuc2hpZnRLZXkmJkMua2V5PT09InoiPyhDLnByZXZlbnREZWZhdWx0KCksdGhpcy51bmRvKCkpOihDLm1ldGFLZXl8fEMuY3RybEtleSkmJkMuc2hpZnRLZXkmJkMua2V5PT09InoiJiYoQy5wcmV2ZW50RGVmYXVsdCgpLHRoaXMucmVkbygpKSl9KSx0aGlzLmhpc3Rvcnkuc2F2ZVN0YXRlKHRoaXMuYmxvY2tzLHRoaXMuc2VsZWN0ZWRCbG9ja0lkKSx0aGlzLnJlbmRlckJsb2Nrc1Byb2dyYW1tYXRpY2FsbHkoKX1yZW5kZXJCbG9ja3NQcm9ncmFtbWF0aWNhbGx5KCl7dGhpcy5lZGl0b3JDb250ZW50UmVmJiYodGhpcy5lZGl0b3JDb250ZW50UmVmLmlubmVySFRNTD0iIix0aGlzLmJsb2Nrcy5mb3JFYWNoKEM9PntsZXQgej10aGlzLmNyZWF0ZUJsb2NrRWxlbWVudChDKTt0aGlzLmVkaXRvckNvbnRlbnRSZWYuYXBwZW5kQ2hpbGQoeil9KSl9Y3JlYXRlQmxvY2tFbGVtZW50KEMpe2xldCB6PWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpO2lmKHouY2xhc3NOYW1lPSJibG9jay13cmFwcGVyIix6LnNldEF0dHJpYnV0ZSgiZGF0YS1ibG9jay1pZCIsQy5pZCksQy50eXBlIT09ImRpdmlkZXIiKXtsZXQgVD1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTtULmNsYXNzTmFtZT0iZHJhZy1oYW5kbGUiLFQuZHJhZ2dhYmxlPSEwLFQuYWRkRXZlbnRMaXN0ZW5lcigiZHJhZ3N0YXJ0IiwkPT50aGlzLmRyYWdEcm9wSGFuZGxlci5oYW5kbGVEcmFnU3RhcnQoJCxDKSksei5hcHBlbmRDaGlsZChUKX1sZXQgRT1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkZWVzLXd5c2l3eWctYmxvY2siKTtyZXR1cm4gRS5ibG9jaz1DLEUuaXNTZWxlY3RlZD10aGlzLnNlbGVjdGVkQmxvY2tJZD09PUMuaWQsRS53eXNpd3lnQ29tcG9uZW50PXRoaXMsRS5oYW5kbGVycz17b25JbnB1dDpUPT50aGlzLmlucHV0SGFuZGxlci5oYW5kbGVCbG9ja0lucHV0KFQsQyksb25LZXlEb3duOlQ9PnRoaXMua2V5Ym9hcmRIYW5kbGVyLmhhbmRsZUJsb2NrS2V5RG93bihULEMpLG9uRm9jdXM6KCk9PnRoaXMuaGFuZGxlQmxvY2tGb2N1cyhDKSxvbkJsdXI6KCk9PnRoaXMuaGFuZGxlQmxvY2tCbHVyKEMpLG9uQ29tcG9zaXRpb25TdGFydDooKT0+dGhpcy5pc0NvbXBvc2luZz0hMCxvbkNvbXBvc2l0aW9uRW5kOigpPT50aGlzLmlzQ29tcG9zaW5nPSExLG9uTW91c2VVcDpUPT50aGlzLmhhbmRsZVRleHRTZWxlY3Rpb24oVCksb25SZXF1ZXN0VXBkYXRlOigpPT50aGlzLnVwZGF0ZUJsb2NrRWxlbWVudChDLmlkKX0sei5hcHBlbmRDaGlsZChFKSx6LmFkZEV2ZW50TGlzdGVuZXIoImRyYWdvdmVyIixUPT50aGlzLmRyYWdEcm9wSGFuZGxlci5oYW5kbGVEcmFnT3ZlcihULEMpKSx6LmFkZEV2ZW50TGlzdGVuZXIoImRyb3AiLFQ9PnRoaXMuZHJhZ0Ryb3BIYW5kbGVyLmhhbmRsZURyb3AoVCxDKSksei5hZGRFdmVudExpc3RlbmVyKCJkcmFnbGVhdmUiLCgpPT50aGlzLmRyYWdEcm9wSGFuZGxlci5oYW5kbGVEcmFnTGVhdmUoQykpLHp9dXBkYXRlQmxvY2tFbGVtZW50KEMpe2xldCB6PXRoaXMuYmxvY2tzLmZpbmQoJD0+JC5pZD09PUMpO2lmKCF6KXJldHVybjtsZXQgRT10aGlzLmVkaXRvckNvbnRlbnRSZWYucXVlcnlTZWxlY3RvcihgW2RhdGEtYmxvY2staWQ9IiR7Q30iXWApO2lmKCFFKXJldHVybjtsZXQgVD10aGlzLmNyZWF0ZUJsb2NrRWxlbWVudCh6KTtFLnJlcGxhY2VXaXRoKFQpfXJlbmRlcigpe3JldHVybiBTc2AKICAgICAgPGRlZXMtbGFiZWwKICAgICAgICAubGFiZWw9IiR7dGhpcy5sYWJlbH0iCiAgICAgICAgLmRlc2NyaXB0aW9uPSIke3RoaXMuZGVzY3JpcHRpb259IgogICAgICAgIC5yZXF1aXJlZD0iJHt0aGlzLnJlcXVpcmVkfSIKICAgICAgPjwvZGVlcy1sYWJlbD4KICAgICAgPGRpdiBjbGFzcz0id3lzaXd5Zy1jb250YWluZXIiPgogICAgICAgIDxkaXYgCiAgICAgICAgICBjbGFzcz0iZWRpdG9yLWNvbnRlbnQgJHt0aGlzLmRyYWdnZWRCbG9ja0lkPyJkcmFnZ2luZyI6IiJ9IgogICAgICAgICAgaWQ9ImVkaXRvci1jb250ZW50IgogICAgICAgID4KICAgICAgICAgIDwhLS0gQmxvY2tzIHdpbGwgYmUgcmVuZGVyZWQgcHJvZ3JhbW1hdGljYWxseSAtLT4KICAgICAgICA8L2Rpdj4KICAgICAgPC9kaXY+CiAgICBgfWhhbmRsZVNsYXNoTWVudUtleWJvYXJkKEMpe3N3aXRjaChDLmtleSl7Y2FzZSJBcnJvd0Rvd24iOkMucHJldmVudERlZmF1bHQoKSx0aGlzLnNsYXNoTWVudS5uYXZpZ2F0ZSgiZG93biIpO2JyZWFrO2Nhc2UiQXJyb3dVcCI6Qy5wcmV2ZW50RGVmYXVsdCgpLHRoaXMuc2xhc2hNZW51Lm5hdmlnYXRlKCJ1cCIpO2JyZWFrO2Nhc2UiRW50ZXIiOkMucHJldmVudERlZmF1bHQoKSx0aGlzLnNsYXNoTWVudS5zZWxlY3RDdXJyZW50KCk7YnJlYWs7Y2FzZSJFc2NhcGUiOkMucHJldmVudERlZmF1bHQoKSx0aGlzLmNsb3NlU2xhc2hNZW51KCEwKTticmVha319Y2xvc2VTbGFzaE1lbnUoQz0hMSl7aWYoQyYmdGhpcy5zZWxlY3RlZEJsb2NrSWQpe2xldCB6PXRoaXMuYmxvY2tzLmZpbmQoRT0+RS5pZD09PXRoaXMuc2VsZWN0ZWRCbG9ja0lkKTtpZih6KXtsZXQgVD10aGlzLnNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvcihgW2RhdGEtYmxvY2staWQ9IiR7ei5pZH0iXWApPy5xdWVyeVNlbGVjdG9yKCJkZWVzLXd5c2l3eWctYmxvY2siKTtpZihUKXtsZXQgJD1ULmdldENvbnRlbnQoKTtpZigkLnN0YXJ0c1dpdGgoIi8iKSl7bGV0IFY9JC5yZXBsYWNlKC9eXC9bXlxzXSpccyovLCIiKS50cmltKCk7VC5zZXRDb250ZW50KFYpLHouY29udGVudD1WLHJlcXVlc3RBbmltYXRpb25GcmFtZSgoKT0+e1QuZm9jdXNXaXRoQ3Vyc29yKDApfSl9fX19dGhpcy5zbGFzaE1lbnUuaGlkZSgpfWhhbmRsZUJsb2NrRm9jdXMoQyl7dGhpcy5ibHVyVGltZW91dCYmKGNsZWFyVGltZW91dCh0aGlzLmJsdXJUaW1lb3V0KSx0aGlzLmJsdXJUaW1lb3V0PW51bGwpO2xldCB6PXRoaXMuc2VsZWN0ZWRCbG9ja0lkO2lmKHRoaXMuc2VsZWN0ZWRCbG9ja0lkPUMuaWQseiE9PUMuaWQpe2lmKHope2xldCBWPXRoaXMuc2hhZG93Um9vdD8ucXVlcnlTZWxlY3RvcihgW2RhdGEtYmxvY2staWQ9IiR7en0iXWApPy5xdWVyeVNlbGVjdG9yKCJkZWVzLXd5c2l3eWctYmxvY2siKTtWJiYoVi5pc1NlbGVjdGVkPSExKX1sZXQgVD10aGlzLnNoYWRvd1Jvb3Q/LnF1ZXJ5U2VsZWN0b3IoYFtkYXRhLWJsb2NrLWlkPSIke0MuaWR9Il1gKT8ucXVlcnlTZWxlY3RvcigiZGVlcy13eXNpd3lnLWJsb2NrIik7VCYmKFQuaXNTZWxlY3RlZD0hMCl9fWJsdXJUaW1lb3V0PW51bGw7aGFuZGxlQmxvY2tCbHVyKEMpe2lmKHRoaXMuYmx1clRpbWVvdXQmJmNsZWFyVGltZW91dCh0aGlzLmJsdXJUaW1lb3V0KSx0aGlzLnNsYXNoTWVudS52aXNpYmxlKXJldHVybjtsZXQgRT10aGlzLnNoYWRvd1Jvb3Q/LnF1ZXJ5U2VsZWN0b3IoYFtkYXRhLWJsb2NrLWlkPSIke0MuaWR9Il1gKT8ucXVlcnlTZWxlY3RvcigiZGVlcy13eXNpd3lnLWJsb2NrIik7aWYoRSYmRS5nZXRDb250ZW50KXtsZXQgVD1FLmdldENvbnRlbnQoKTtDLmNvbnRlbnQhPT1UJiYoQy5jb250ZW50PVQpfXRoaXMuYmx1clRpbWVvdXQ9c2V0VGltZW91dCgoKT0+e3RoaXMuc2hhZG93Um9vdD8uYWN0aXZlRWxlbWVudD8uY2xhc3NMaXN0LmNvbnRhaW5zKCJibG9jayIpfHx0aGlzLnVwZGF0ZVZhbHVlKCl9LDEwMCl9aGFuZGxlRWRpdG9yQ2xpY2soQyl7bGV0IHo9Qy50YXJnZXQ7aWYodGhpcy5zbGFzaE1lbnUudmlzaWJsZSYmdGhpcy5jbG9zZVNsYXNoTWVudSghMCksei5jbGFzc0xpc3QuY29udGFpbnMoImVkaXRvci1jb250ZW50Iikpe2xldCBFPXRoaXMuYmxvY2tzW3RoaXMuYmxvY2tzLmxlbmd0aC0xXTt0aGlzLmJsb2NrT3BlcmF0aW9ucy5mb2N1c0Jsb2NrKEUuaWQsRS50eXBlPT09ImRpdmlkZXIifHxFLnR5cGU9PT0iaW1hZ2UiP3ZvaWQgMDoiZW5kIil9fWNyZWF0ZU5ld0Jsb2NrKEM9InBhcmFncmFwaCIsej0iIixFKXtyZXR1cm57aWQ6VjEuZ2VuZXJhdGVCbG9ja0lkKCksdHlwZTpDLGNvbnRlbnQ6eiwuLi5FJiZ7bWV0YWRhdGE6RX19fWFzeW5jIGluc2VydEJsb2NrQWZ0ZXIoQyx6LEU9ITApe2xldCBUPXRoaXMuYmxvY2tzLmZpbmRJbmRleChWPT5WLmlkPT09Qy5pZCk7dGhpcy5ibG9ja3M9Wy4uLnRoaXMuYmxvY2tzLnNsaWNlKDAsVCsxKSx6LC4uLnRoaXMuYmxvY2tzLnNsaWNlKFQrMSldO2xldCAkPXRoaXMuZWRpdG9yQ29udGVudFJlZi5xdWVyeVNlbGVjdG9yKGBbZGF0YS1ibG9jay1pZD0iJHtDLmlkfSJdYCk7aWYoJCl7bGV0IFY9dGhpcy5jcmVhdGVCbG9ja0VsZW1lbnQoeik7JC5pbnNlcnRBZGphY2VudEVsZW1lbnQoImFmdGVyZW5kIixWKX10aGlzLnVwZGF0ZVZhbHVlKCksRSYmei50eXBlIT09ImRpdmlkZXIiJiYoYXdhaXQgbmV3IFByb21pc2UoVj0+c2V0VGltZW91dChWLDApKSxhd2FpdCB0aGlzLmJsb2NrT3BlcmF0aW9ucy5mb2N1c0Jsb2NrKHouaWQsInN0YXJ0IikpfWFzeW5jIGluc2VydEJsb2NrKEMpe2xldCB6PXRoaXMuYmxvY2tzLmZpbmQoJD0+JC5pZD09PXRoaXMuc2VsZWN0ZWRCbG9ja0lkKTtpZigheil7dGhpcy5jbG9zZVNsYXNoTWVudSgpO3JldHVybn1sZXQgVD10aGlzLnNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvcihgW2RhdGEtYmxvY2staWQ9IiR7ei5pZH0iXWApPy5xdWVyeVNlbGVjdG9yKCJkZWVzLXd5c2l3eWctYmxvY2siKTtpZihUKXtsZXQgJD1ULmdldENvbnRlbnQoKTtpZigkLnN0YXJ0c1dpdGgoIi8iKSl7bGV0IFY9JC5yZXBsYWNlKC9eXC9bXlxzXSpccyovLCIiKS50cmltKCk7VC5zZXRDb250ZW50KFYpLHouY29udGVudD1WfX1pZih0aGlzLmNsb3NlU2xhc2hNZW51KCExKSxDPT09ImNvZGUiJiYoei5tZXRhZGF0YT17bGFuZ3VhZ2U6InR5cGVzY3JpcHQifSksei50eXBlPUMsei5jb250ZW50PXouY29udGVudHx8IiIsQz09PSJkaXZpZGVyIil7ei5jb250ZW50PSIgIjtsZXQgJD10aGlzLmNyZWF0ZU5ld0Jsb2NrKCk7dGhpcy5pbnNlcnRCbG9ja0FmdGVyKHosJCl9ZWxzZSBDPT09Imxpc3QiPyh6Lm1ldGFkYXRhPXtsaXN0VHlwZToiYnVsbGV0In0sei5jb250ZW50PSIiKTpDPT09ImltYWdlIj8oei5jb250ZW50PSIiLHoubWV0YWRhdGE9e3VybDoiIixsb2FkaW5nOiExfSk6Qz09PSJ5b3V0dWJlIj8oei5jb250ZW50PSIiLHoubWV0YWRhdGE9e3ZpZGVvSWQ6IiIsdXJsOiIifSk6Qz09PSJtYXJrZG93biI/ei5tZXRhZGF0YT17c2hvd1ByZXZpZXc6ITF9OkM9PT0iaHRtbCI/ei5tZXRhZGF0YT17c2hvd1ByZXZpZXc6ITF9OkM9PT0iYXR0YWNobWVudCI/KHouY29udGVudD0iIix6Lm1ldGFkYXRhPXtmaWxlczpbXX0pOnouY29udGVudD16LmNvbnRlbnR8fCIiO3RoaXMudXBkYXRlQmxvY2tFbGVtZW50KHouaWQpLHRoaXMudXBkYXRlVmFsdWUoKSxhd2FpdCBuZXcgUHJvbWlzZSgkPT5zZXRUaW1lb3V0KCQsMCkpLEM9PT0ibGlzdCI/KHRoaXMuYmxvY2tPcGVyYXRpb25zLmZvY3VzQmxvY2soei5pZCwic3RhcnQiKSxyZXF1ZXN0QW5pbWF0aW9uRnJhbWUoKCk9PntsZXQgVj10aGlzLnNoYWRvd1Jvb3Q/LnF1ZXJ5U2VsZWN0b3IoYFtkYXRhLWJsb2NrLWlkPSIke3ouaWR9Il1gKT8ucXVlcnlTZWxlY3RvcigiZGVlcy13eXNpd3lnLWJsb2NrIik7ViYmVi5mb2N1c0xpc3RJdGVtKCl9KSk6QyE9PSJkaXZpZGVyIiYmQyE9PSJpbWFnZSImJkMhPT0ieW91dHViZSImJkMhPT0ibWFya2Rvd24iJiZDIT09Imh0bWwiJiZDIT09ImF0dGFjaG1lbnQiP3RoaXMuYmxvY2tPcGVyYXRpb25zLmZvY3VzQmxvY2soei5pZCwic3RhcnQiKTooQz09PSJpbWFnZSJ8fEM9PT0ieW91dHViZSJ8fEM9PT0ibWFya2Rvd24ifHxDPT09Imh0bWwifHxDPT09ImF0dGFjaG1lbnQiKSYmdGhpcy5ibG9ja09wZXJhdGlvbnMuZm9jdXNCbG9jayh6LmlkKX11cGRhdGVWYWx1ZSgpe3RoaXMub3V0cHV0Rm9ybWF0PT09Imh0bWwiP3RoaXMudmFsdWU9eGkuZ2V0SHRtbE91dHB1dCh0aGlzLmJsb2Nrcyk6dGhpcy52YWx1ZT14aS5nZXRNYXJrZG93bk91dHB1dCh0aGlzLmJsb2NrcyksdGhpcy5jaGFuZ2VTdWJqZWN0Lm5leHQodGhpcy52YWx1ZSksdGhpcy5zYXZlVG9IaXN0b3J5KCEwKX1nZXRWYWx1ZSgpe3JldHVybiB0aGlzLnZhbHVlfXNldFZhbHVlKEMpe3RoaXMudmFsdWU9Qyx0aGlzLm91dHB1dEZvcm1hdD09PSJodG1sIj90aGlzLmJsb2Nrcz14aS5wYXJzZUh0bWxUb0Jsb2NrcyhDKTp0aGlzLmJsb2Nrcz14aS5wYXJzZU1hcmtkb3duVG9CbG9ja3MoQyksdGhpcy5ibG9ja3MubGVuZ3RoPT09MCYmKHRoaXMuYmxvY2tzPVt7aWQ6VjEuZ2VuZXJhdGVCbG9ja0lkKCksdHlwZToicGFyYWdyYXBoIixjb250ZW50OiIifV0pLHRoaXMuY2hhbmdlU3ViamVjdC5uZXh0KHRoaXMudmFsdWUpLHRoaXMuZWRpdG9yQ29udGVudFJlZiYmdGhpcy5yZW5kZXJCbG9ja3NQcm9ncmFtbWF0aWNhbGx5KCl9ZXhwb3J0QmxvY2tzKCl7cmV0dXJuIEpTT04ucGFyc2UoSlNPTi5zdHJpbmdpZnkodGhpcy5ibG9ja3MpKX1pbXBvcnRCbG9ja3MoQyl7dGhpcy5ibG9ja3M9SlNPTi5wYXJzZShKU09OLnN0cmluZ2lmeShDKSksdGhpcy51cGRhdGVWYWx1ZSgpLHRoaXMuZWRpdG9yQ29udGVudFJlZiYmdGhpcy5yZW5kZXJCbG9ja3NQcm9ncmFtbWF0aWNhbGx5KCl9ZXhwb3J0QXNIdG1sKCl7cmV0dXJuIHhpLmdldEh0bWxPdXRwdXQodGhpcy5ibG9ja3MpfWV4cG9ydEFzTWFya2Rvd24oKXtyZXR1cm4geGkuZ2V0TWFya2Rvd25PdXRwdXQodGhpcy5ibG9ja3MpfWV4cG9ydFN0YXRlKCl7cmV0dXJue2Jsb2Nrczp0aGlzLmV4cG9ydEJsb2NrcygpLG91dHB1dEZvcm1hdDp0aGlzLm91dHB1dEZvcm1hdH19aW1wb3J0U3RhdGUoQyl7Qy5vdXRwdXRGb3JtYXQmJih0aGlzLm91dHB1dEZvcm1hdD1DLm91dHB1dEZvcm1hdCksdGhpcy5pbXBvcnRCbG9ja3MoQy5ibG9ja3MpfWhhbmRsZURyYWdFbmQoKXtpZih0aGlzLmRyYWdnZWRCbG9ja0lkKXtsZXQgej10aGlzLmVkaXRvckNvbnRlbnRSZWYucXVlcnlTZWxlY3RvcihgW2RhdGEtYmxvY2staWQ9IiR7dGhpcy5kcmFnZ2VkQmxvY2tJZH0iXWApO3omJnouY2xhc3NMaXN0LnJlbW92ZSgiZHJhZ2dpbmciKX10aGlzLmVkaXRvckNvbnRlbnRSZWYucXVlcnlTZWxlY3RvckFsbCgiLmJsb2NrLXdyYXBwZXIiKS5mb3JFYWNoKHo9Pnt6LmNsYXNzTGlzdC5yZW1vdmUoImRyYWctb3Zlci1iZWZvcmUiLCJkcmFnLW92ZXItYWZ0ZXIiKX0pLHRoaXMuZWRpdG9yQ29udGVudFJlZi5jbGFzc0xpc3QucmVtb3ZlKCJkcmFnZ2luZyIpLHRoaXMuZHJhZ2dlZEJsb2NrSWQ9bnVsbCx0aGlzLmRyYWdPdmVyQmxvY2tJZD1udWxsLHRoaXMuZHJhZ092ZXJQb3NpdGlvbj1udWxsfWhhbmRsZURyb3AoQyx6KXtpZihDLnByZXZlbnREZWZhdWx0KCksIXRoaXMuZHJhZ2dlZEJsb2NrSWR8fHRoaXMuZHJhZ2dlZEJsb2NrSWQ9PT16LmlkKXJldHVybjtsZXQgRT10aGlzLmJsb2Nrcy5maW5kSW5kZXgoUj0+Ui5pZD09PXRoaXMuZHJhZ2dlZEJsb2NrSWQpLFQ9dGhpcy5ibG9ja3MuZmluZEluZGV4KFI9PlIuaWQ9PT16LmlkKTtpZihFPT09LTF8fFQ9PT0tMSlyZXR1cm47bGV0WyRdPXRoaXMuYmxvY2tzLnNwbGljZShFLDEpLFY9VDt0aGlzLmRyYWdPdmVyUG9zaXRpb249PT0iYWZ0ZXIiP1Y9RTxUP1Q6VCsxOlY9RTxUP1QtMTpULHRoaXMuYmxvY2tzLnNwbGljZShWLDAsJCksdGhpcy5yZW5kZXJCbG9ja3NQcm9ncmFtbWF0aWNhbGx5KCksdGhpcy51cGRhdGVWYWx1ZSgpLHRoaXMuaGFuZGxlRHJhZ0VuZCgpLHNldFRpbWVvdXQoKCk9PntsZXQgUj10aGlzLnNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvcihgW2RhdGEtYmxvY2staWQ9IiR7JC5pZH0iXSAuYmxvY2tgKTtSJiYkLnR5cGUhPT0iZGl2aWRlciImJlIuZm9jdXMoKX0sMTAwKX1oYW5kbGVUZXh0U2VsZWN0aW9uKEMpe3RoaXMuc2xhc2hNZW51LnZpc2libGV9dXBkYXRlRm9ybWF0dGluZ01lbnVQb3NpdGlvbigpe2xldCBDPVtdO3RoaXMuc2hhZG93Um9vdCYmQy5wdXNoKHRoaXMuc2hhZG93Um9vdCksdGhpcy5zaGFkb3dSb290Py5xdWVyeVNlbGVjdG9yQWxsKCIuYmxvY2std3JhcHBlciIpPy5mb3JFYWNoKFQ9PntsZXQgJD1ULnF1ZXJ5U2VsZWN0b3IoImRlZXMtd3lzaXd5Zy1ibG9jayIpOyQ/LnNoYWRvd1Jvb3QmJkMucHVzaCgkLnNoYWRvd1Jvb3QpfSk7bGV0IEU9SHMuZ2V0U2VsZWN0aW9uQ29vcmRpbmF0ZXMoLi4uQyk7RSYmdGhpcy5mb3JtYXR0aW5nTWVudS5zaG93KHt4OkUueCx5OkUueX0sYXN5bmMgVD0+YXdhaXQgdGhpcy5hcHBseUZvcm1hdChUKSl9aGlkZUZvcm1hdHRpbmdNZW51KCl7dGhpcy5mb3JtYXR0aW5nTWVudS5oaWRlKCksdGhpcy5zZWxlY3RlZFRleHQ9IiJ9YXN5bmMgYXBwbHlGb3JtYXQoQyl7bGV0IHo9W107dGhpcy5zaGFkb3dSb290JiZ6LnB1c2godGhpcy5zaGFkb3dSb290KSx0aGlzLnNoYWRvd1Jvb3Q/LnF1ZXJ5U2VsZWN0b3JBbGwoIi5ibG9jay13cmFwcGVyIik/LmZvckVhY2gocmU9PntsZXQgaj1yZS5xdWVyeVNlbGVjdG9yKCJkZWVzLXd5c2l3eWctYmxvY2siKTtqPy5zaGFkb3dSb290JiZ6LnB1c2goai5zaGFkb3dSb290KX0pO2xldCBUPVJlLmdldFNlbGVjdGlvbkluZm8oLi4ueik7aWYoIVQpcmV0dXJuO2xldCAkLFYsUj10aGlzLnNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvckFsbCgiLmJsb2NrLXdyYXBwZXIiKTtmb3IobGV0IHJlPTA7cmU8Ui5sZW5ndGg7cmUrKyl7bGV0IGo9UltyZV0sbWU9ai5xdWVyeVNlbGVjdG9yKCJkZWVzLXd5c2l3eWctYmxvY2siKTtpZihtZT8uc2hhZG93Um9vdCl7bGV0IHdlPW1lLnNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvcigiLmJsb2NrIik7aWYod2UmJih3ZS5jb250YWlucyhULnN0YXJ0Q29udGFpbmVyKXx8d2UuY29udGFpbnMoVC5lbmRDb250YWluZXIpKSl7bGV0IEg9ai5nZXRBdHRyaWJ1dGUoImRhdGEtYmxvY2staWQiKTskPXRoaXMuYmxvY2tzLmZpbmQoY2U9PmNlLmlkPT09SCksVj1tZTticmVha319fWlmKCEkfHwhVilyZXR1cm47bGV0IFU9UmUuY3JlYXRlUmFuZ2VGcm9tSW5mbyhUKTtpZihDPT09ImxpbmsiKXtsZXQgcmU9YXdhaXQgdGhpcy5zaG93TGlua0RpYWxvZygpO2lmKCFyZSl7Vi5mb2N1cygpO3JldHVybn1Icy5hcHBseUZvcm1hdChDLHJlLFUseil9ZWxzZSBIcy5hcHBseUZvcm1hdChDLHZvaWQgMCxVLHopO2F3YWl0IG5ldyBQcm9taXNlKHJlPT5zZXRUaW1lb3V0KHJlLDEwKSksJC5jb250ZW50PVYuZ2V0Q29udGVudCgpLHRoaXMudXBkYXRlVmFsdWUoKSxWLmZvY3VzKCksQz09PSJsaW5rIj90aGlzLmhpZGVGb3JtYXR0aW5nTWVudSgpOnRoaXMuc2VsZWN0ZWRUZXh0PSIifWFzeW5jIHNob3dMaW5rRGlhbG9nKCl7cmV0dXJuIG5ldyBQcm9taXNlKEM9PntsZXQgej1udWxsO28xLmNyZWF0ZUFuZFNob3coe2hlYWRpbmc6IkFkZCBMaW5rIixjb250ZW50OlNzYAogICAgICAgICAgPHN0eWxlPgogICAgICAgICAgICAubGluay1pbnB1dCB7CiAgICAgICAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgICAgICAgICAgcGFkZGluZzogMTJweDsKICAgICAgICAgICAgICBmb250LXNpemU6IDE2cHg7CiAgICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tZGVlcy1jb2xvci1saW5lLWJyaWdodCk7CiAgICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogNHB4OwogICAgICAgICAgICAgIGJhY2tncm91bmQ6IHZhcigtLWRlZXMtY29sb3ItaW5wdXQpOwogICAgICAgICAgICAgIGNvbG9yOiB2YXIoLS1kZWVzLWNvbG9yLXRleHQpOwogICAgICAgICAgICAgIG1hcmdpbjogMTZweCAwOwogICAgICAgICAgICB9CiAgICAgICAgICAgIC5saW5rLWlucHV0OmZvY3VzIHsKICAgICAgICAgICAgICBvdXRsaW5lOiBub25lOwogICAgICAgICAgICAgIGJvcmRlci1jb2xvcjogdmFyKC0tZGVlcy1jb2xvci1wcmltYXJ5KTsKICAgICAgICAgICAgfQogICAgICAgICAgPC9zdHlsZT4KICAgICAgICAgIDxpbnB1dCAKICAgICAgICAgICAgY2xhc3M9ImxpbmstaW5wdXQiIAogICAgICAgICAgICB0eXBlPSJ1cmwiIAogICAgICAgICAgICBwbGFjZWhvbGRlcj0iaHR0cHM6Ly9leGFtcGxlLmNvbSIgCiAgICAgICAgICAgIEBrZXlkb3duPSIke0U9PntpZihFLmtleT09PSJFbnRlciIpe2xldCBUPUUudGFyZ2V0O3o9VC52YWx1ZTtsZXQgJD1ULmNsb3Nlc3QoImRlZXMtbW9kYWwiKTtpZigkKXtsZXQgVj0kLnNoYWRvd1Jvb3Q/LnF1ZXJ5U2VsZWN0b3IoIi5ib3R0b21CdXR0b246bGFzdC1jaGlsZCIpO1YmJlYuY2xpY2soKX19fX0iCiAgICAgICAgICAgIEBpbnB1dD0iJHtFPT57ej1FLnRhcmdldC52YWx1ZX19IgogICAgICAgICAgLz4KICAgICAgICBgLG1lbnVPcHRpb25zOlt7bmFtZToiQ2FuY2VsIixhY3Rpb246YXN5bmMgRT0+e0UuZGVzdHJveSgpLEMobnVsbCl9fSx7bmFtZToiQWRkIExpbmsiLGFjdGlvbjphc3luYyBFPT57RS5kZXN0cm95KCksQyh6KX19XX0pLHNldFRpbWVvdXQoKCk9PntsZXQgRT1kb2N1bWVudC5xdWVyeVNlbGVjdG9yKCJkZWVzLW1vZGFsIC5saW5rLWlucHV0Iik7RSYmRS5mb2N1cygpfSwxMDApfSl9dW5kbygpe2xldCBDPXRoaXMuaGlzdG9yeS51bmRvKCk7QyYmdGhpcy5yZXN0b3JlU3RhdGUoQyl9cmVkbygpe2xldCBDPXRoaXMuaGlzdG9yeS5yZWRvKCk7QyYmdGhpcy5yZXN0b3JlU3RhdGUoQyl9cmVzdG9yZVN0YXRlKEMpe3RoaXMuYmxvY2tzPUMuYmxvY2tzLHRoaXMuc2VsZWN0ZWRCbG9ja0lkPUMuc2VsZWN0ZWRCbG9ja0lkLHRoaXMucmVuZGVyQmxvY2tzUHJvZ3JhbW1hdGljYWxseSgpLEMuY3Vyc29yUG9zaXRpb24/c2V0VGltZW91dCgoKT0+e2xldCBFPXRoaXMuc2hhZG93Um9vdD8ucXVlcnlTZWxlY3RvcihgW2RhdGEtYmxvY2staWQ9IiR7Qy5jdXJzb3JQb3NpdGlvbi5ibG9ja0lkfSJdYCk/LnF1ZXJ5U2VsZWN0b3IoImRlZXMtd3lzaXd5Zy1ibG9jayIpO0UmJkUuZm9jdXNXaXRoQ3Vyc29yKEMuY3Vyc29yUG9zaXRpb24ub2Zmc2V0KX0sNTApOkMuc2VsZWN0ZWRCbG9ja0lkJiZzZXRUaW1lb3V0KCgpPT57dGhpcy5ibG9ja09wZXJhdGlvbnMuZm9jdXNCbG9jayhDLnNlbGVjdGVkQmxvY2tJZCl9LDUwKSx0aGlzLnVwZGF0ZVZhbHVlKCl9c2F2ZVRvSGlzdG9yeShDPSEwKXtsZXQgejtpZih0aGlzLnNlbGVjdGVkQmxvY2tJZCl7bGV0IFQ9dGhpcy5zaGFkb3dSb290Py5xdWVyeVNlbGVjdG9yKGBbZGF0YS1ibG9jay1pZD0iJHt0aGlzLnNlbGVjdGVkQmxvY2tJZH0iXWApPy5xdWVyeVNlbGVjdG9yKCJkZWVzLXd5c2l3eWctYmxvY2siKTtpZihUJiZ0eXBlb2YgVC5nZXRDdXJzb3JQb3NpdGlvbj09ImZ1bmN0aW9uIil7bGV0ICQ9VC5zaGFkb3dSb290Py5xdWVyeVNlbGVjdG9yKCIuYmxvY2siKTtpZigkKXtsZXQgVj1ULmdldEN1cnNvclBvc2l0aW9uKCQpO1YhPT1udWxsJiYoej17YmxvY2tJZDp0aGlzLnNlbGVjdGVkQmxvY2tJZCxvZmZzZXQ6Vn0pfX19Qz90aGlzLmhpc3Rvcnkuc2F2ZVN0YXRlKHRoaXMuYmxvY2tzLHRoaXMuc2VsZWN0ZWRCbG9ja0lkLHopOnRoaXMuaGlzdG9yeS5zYXZlQ2hlY2twb2ludCh0aGlzLmJsb2Nrcyx0aGlzLnNlbGVjdGVkQmxvY2tJZCx6KX1zdGF0aWN7bWEoaSxhKX19O3JldHVybiBxPWl9KSgpfSk7dmFyIE5ndD1iKCgpPT57JFYoKTtMVigpfSk7dmFyIHN3LEZndD1iKCgpPT57c3c9Y2xhc3N7b3B0aW9ucztjYW52YXM7Y3R4O2ltZztvdmVybGF5Q2FudmFzO292ZXJsYXlDdHg7Y3JvcFg9MDtjcm9wWT0wO2Nyb3BTaXplPTIwMDttaW5Dcm9wU2l6ZT01MDtpc0RyYWdnaW5nPSExO2lzUmVzaXppbmc9ITE7ZHJhZ1N0YXJ0WD0wO2RyYWdTdGFydFk9MDtyZXNpemVIYW5kbGU9IiI7aW1hZ2VTY2FsZT0xO2ltYWdlT2Zmc2V0WD0wO2ltYWdlT2Zmc2V0WT0wO2NvbnN0cnVjdG9yKGUpe3RoaXMub3B0aW9ucz17bWluU2l6ZTo1MCxvdXRwdXRTaXplOjgwMCxvdXRwdXRRdWFsaXR5Oi45NSwuLi5lfSx0aGlzLmNhbnZhcz1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJjYW52YXMiKSx0aGlzLmN0eD10aGlzLmNhbnZhcy5nZXRDb250ZXh0KCIyZCIpLHRoaXMub3ZlcmxheUNhbnZhcz1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJjYW52YXMiKSx0aGlzLm92ZXJsYXlDdHg9dGhpcy5vdmVybGF5Q2FudmFzLmdldENvbnRleHQoIjJkIiksdGhpcy5pbWc9bmV3IEltYWdlfWFzeW5jIGluaXRpYWxpemUoKXthd2FpdCB0aGlzLmxvYWRJbWFnZSgpLHRoaXMuc2V0dXBDYW52YXNlcygpLHRoaXMuc2V0dXBFdmVudExpc3RlbmVycygpLHRoaXMucmVuZGVyKCl9YXN5bmMgbG9hZEltYWdlKCl7cmV0dXJuIG5ldyBQcm9taXNlKChlLGEpPT57dGhpcy5pbWcub25sb2FkPSgpPT5lKCksdGhpcy5pbWcub25lcnJvcj1hLHRoaXMuaW1nLnNyYz10aGlzLm9wdGlvbnMuaW1hZ2V9KX1zZXR1cENhbnZhc2VzKCl7bGV0IGU9dGhpcy5vcHRpb25zLmNvbnRhaW5lcixhPU1hdGgubWluKGUuY2xpZW50V2lkdGgsZS5jbGllbnRIZWlnaHQpO3RoaXMuY2FudmFzLndpZHRoPWEsdGhpcy5jYW52YXMuaGVpZ2h0PWEsdGhpcy5jYW52YXMuc3R5bGUud2lkdGg9IjEwMCUiLHRoaXMuY2FudmFzLnN0eWxlLmhlaWdodD0iMTAwJSIsdGhpcy5jYW52YXMuc3R5bGUucG9zaXRpb249ImFic29sdXRlIix0aGlzLmNhbnZhcy5zdHlsZS50b3A9IjAiLHRoaXMuY2FudmFzLnN0eWxlLmxlZnQ9IjAiLHRoaXMub3ZlcmxheUNhbnZhcy53aWR0aD1hLHRoaXMub3ZlcmxheUNhbnZhcy5oZWlnaHQ9YSx0aGlzLm92ZXJsYXlDYW52YXMuc3R5bGUud2lkdGg9IjEwMCUiLHRoaXMub3ZlcmxheUNhbnZhcy5zdHlsZS5oZWlnaHQ9IjEwMCUiLHRoaXMub3ZlcmxheUNhbnZhcy5zdHlsZS5wb3NpdGlvbj0iYWJzb2x1dGUiLHRoaXMub3ZlcmxheUNhbnZhcy5zdHlsZS50b3A9IjAiLHRoaXMub3ZlcmxheUNhbnZhcy5zdHlsZS5sZWZ0PSIwIix0aGlzLm92ZXJsYXlDYW52YXMuc3R5bGUuY3Vyc29yPSJtb3ZlIixlLmFwcGVuZENoaWxkKHRoaXMuY2FudmFzKSxlLmFwcGVuZENoaWxkKHRoaXMub3ZlcmxheUNhbnZhcyk7bGV0IGk9TWF0aC5taW4oYS90aGlzLmltZy53aWR0aCxhL3RoaXMuaW1nLmhlaWdodCk7dGhpcy5pbWFnZVNjYWxlPWksdGhpcy5pbWFnZU9mZnNldFg9KGEtdGhpcy5pbWcud2lkdGgqaSkvMix0aGlzLmltYWdlT2Zmc2V0WT0oYS10aGlzLmltZy5oZWlnaHQqaSkvMjtsZXQgcj10aGlzLmltZy53aWR0aCppLHM9dGhpcy5pbWcuaGVpZ2h0Kmksbj1NYXRoLm1pbihyLHMsYSouOCk7dGhpcy5jcm9wU2l6ZT1uKi44LHRoaXMuY3JvcFg9KGEtdGhpcy5jcm9wU2l6ZSkvMix0aGlzLmNyb3BZPShhLXRoaXMuY3JvcFNpemUpLzJ9c2V0dXBFdmVudExpc3RlbmVycygpe3RoaXMub3ZlcmxheUNhbnZhcy5hZGRFdmVudExpc3RlbmVyKCJtb3VzZWRvd24iLHRoaXMuaGFuZGxlTW91c2VEb3duLmJpbmQodGhpcykpLHRoaXMub3ZlcmxheUNhbnZhcy5hZGRFdmVudExpc3RlbmVyKCJtb3VzZW1vdmUiLHRoaXMuaGFuZGxlTW91c2VNb3ZlLmJpbmQodGhpcykpLHRoaXMub3ZlcmxheUNhbnZhcy5hZGRFdmVudExpc3RlbmVyKCJtb3VzZXVwIix0aGlzLmhhbmRsZU1vdXNlVXAuYmluZCh0aGlzKSksdGhpcy5vdmVybGF5Q2FudmFzLmFkZEV2ZW50TGlzdGVuZXIoIm1vdXNlbGVhdmUiLHRoaXMuaGFuZGxlTW91c2VVcC5iaW5kKHRoaXMpKSx0aGlzLm92ZXJsYXlDYW52YXMuYWRkRXZlbnRMaXN0ZW5lcigidG91Y2hzdGFydCIsdGhpcy5oYW5kbGVUb3VjaFN0YXJ0LmJpbmQodGhpcykpLHRoaXMub3ZlcmxheUNhbnZhcy5hZGRFdmVudExpc3RlbmVyKCJ0b3VjaG1vdmUiLHRoaXMuaGFuZGxlVG91Y2hNb3ZlLmJpbmQodGhpcykpLHRoaXMub3ZlcmxheUNhbnZhcy5hZGRFdmVudExpc3RlbmVyKCJ0b3VjaGVuZCIsdGhpcy5oYW5kbGVUb3VjaEVuZC5iaW5kKHRoaXMpKX1oYW5kbGVNb3VzZURvd24oZSl7bGV0IGE9dGhpcy5vdmVybGF5Q2FudmFzLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLGk9KGUuY2xpZW50WC1hLmxlZnQpKih0aGlzLm92ZXJsYXlDYW52YXMud2lkdGgvYS53aWR0aCkscj0oZS5jbGllbnRZLWEudG9wKSoodGhpcy5vdmVybGF5Q2FudmFzLmhlaWdodC9hLmhlaWdodCkscz10aGlzLmdldFJlc2l6ZUhhbmRsZShpLHIpO3M/KHRoaXMuaXNSZXNpemluZz0hMCx0aGlzLnJlc2l6ZUhhbmRsZT1zKTp0aGlzLmlzSW5zaWRlQ3JvcEFyZWEoaSxyKSYmKHRoaXMuaXNEcmFnZ2luZz0hMCksdGhpcy5kcmFnU3RhcnRYPWksdGhpcy5kcmFnU3RhcnRZPXJ9aGFuZGxlTW91c2VNb3ZlKGUpe2xldCBhPXRoaXMub3ZlcmxheUNhbnZhcy5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKSxpPShlLmNsaWVudFgtYS5sZWZ0KSoodGhpcy5vdmVybGF5Q2FudmFzLndpZHRoL2Eud2lkdGgpLHI9KGUuY2xpZW50WS1hLnRvcCkqKHRoaXMub3ZlcmxheUNhbnZhcy5oZWlnaHQvYS5oZWlnaHQpLHM9dGhpcy5nZXRSZXNpemVIYW5kbGUoaSxyKTtpZihzP3RoaXMub3ZlcmxheUNhbnZhcy5zdHlsZS5jdXJzb3I9dGhpcy5nZXRSZXNpemVDdXJzb3Iocyk6dGhpcy5pc0luc2lkZUNyb3BBcmVhKGkscik/dGhpcy5vdmVybGF5Q2FudmFzLnN0eWxlLmN1cnNvcj0ibW92ZSI6dGhpcy5vdmVybGF5Q2FudmFzLnN0eWxlLmN1cnNvcj0iZGVmYXVsdCIsdGhpcy5pc0RyYWdnaW5nKXtsZXQgbj1pLXRoaXMuZHJhZ1N0YXJ0WCxvPXItdGhpcy5kcmFnU3RhcnRZLGQ9dGhpcy5pbWFnZU9mZnNldFgsYz10aGlzLmltYWdlT2Zmc2V0WCt0aGlzLmltZy53aWR0aCp0aGlzLmltYWdlU2NhbGUtdGhpcy5jcm9wU2l6ZSxoPXRoaXMuaW1hZ2VPZmZzZXRZLGw9dGhpcy5pbWFnZU9mZnNldFkrdGhpcy5pbWcuaGVpZ2h0KnRoaXMuaW1hZ2VTY2FsZS10aGlzLmNyb3BTaXplO3RoaXMuY3JvcFg9TWF0aC5tYXgoZCxNYXRoLm1pbihjLHRoaXMuY3JvcFgrbikpLHRoaXMuY3JvcFk9TWF0aC5tYXgoaCxNYXRoLm1pbihsLHRoaXMuY3JvcFkrbykpLHRoaXMuZHJhZ1N0YXJ0WD1pLHRoaXMuZHJhZ1N0YXJ0WT1yLHRoaXMucmVuZGVyKCl9dGhpcy5pc1Jlc2l6aW5nJiYodGhpcy5oYW5kbGVSZXNpemUoaSxyKSx0aGlzLmRyYWdTdGFydFg9aSx0aGlzLmRyYWdTdGFydFk9cix0aGlzLnJlbmRlcigpKX1oYW5kbGVNb3VzZVVwKCl7dGhpcy5pc0RyYWdnaW5nPSExLHRoaXMuaXNSZXNpemluZz0hMSx0aGlzLnJlc2l6ZUhhbmRsZT0iIn1oYW5kbGVUb3VjaFN0YXJ0KGUpe2UucHJldmVudERlZmF1bHQoKTtsZXQgYT1lLnRvdWNoZXNbMF0saT1uZXcgTW91c2VFdmVudCgibW91c2Vkb3duIix7Y2xpZW50WDphLmNsaWVudFgsY2xpZW50WTphLmNsaWVudFl9KTt0aGlzLmhhbmRsZU1vdXNlRG93bihpKX1oYW5kbGVUb3VjaE1vdmUoZSl7ZS5wcmV2ZW50RGVmYXVsdCgpO2xldCBhPWUudG91Y2hlc1swXSxpPW5ldyBNb3VzZUV2ZW50KCJtb3VzZW1vdmUiLHtjbGllbnRYOmEuY2xpZW50WCxjbGllbnRZOmEuY2xpZW50WX0pO3RoaXMuaGFuZGxlTW91c2VNb3ZlKGkpfWhhbmRsZVRvdWNoRW5kKGUpe2UucHJldmVudERlZmF1bHQoKSx0aGlzLmhhbmRsZU1vdXNlVXAoKX1nZXRSZXNpemVIYW5kbGUoZSxhKXtsZXQgcj17bnc6e3g6dGhpcy5jcm9wWCx5OnRoaXMuY3JvcFl9LG5lOnt4OnRoaXMuY3JvcFgrdGhpcy5jcm9wU2l6ZSx5OnRoaXMuY3JvcFl9LHN3Ont4OnRoaXMuY3JvcFgseTp0aGlzLmNyb3BZK3RoaXMuY3JvcFNpemV9LHNlOnt4OnRoaXMuY3JvcFgrdGhpcy5jcm9wU2l6ZSx5OnRoaXMuY3JvcFkrdGhpcy5jcm9wU2l6ZX19O2ZvcihsZXRbcyxuXW9mIE9iamVjdC5lbnRyaWVzKHIpKWlmKE1hdGguYWJzKGUtbi54KTwyMCYmTWF0aC5hYnMoYS1uLnkpPDIwKXJldHVybiBzO3JldHVybiIifWdldFJlc2l6ZUN1cnNvcihlKXtyZXR1cm57bnc6Im53LXJlc2l6ZSIsbmU6Im5lLXJlc2l6ZSIsc3c6InN3LXJlc2l6ZSIsc2U6InNlLXJlc2l6ZSJ9W2VdfHwiZGVmYXVsdCJ9aXNJbnNpZGVDcm9wQXJlYShlLGEpe3JldHVybiBlPj10aGlzLmNyb3BYJiZlPD10aGlzLmNyb3BYK3RoaXMuY3JvcFNpemUmJmE+PXRoaXMuY3JvcFkmJmE8PXRoaXMuY3JvcFkrdGhpcy5jcm9wU2l6ZX1oYW5kbGVSZXNpemUoZSxhKXtsZXQgaT1lLXRoaXMuZHJhZ1N0YXJ0WCxyPWEtdGhpcy5kcmFnU3RhcnRZLHM9dGhpcy5pbWFnZU9mZnNldFgsbj10aGlzLmltYWdlT2Zmc2V0WSxvPXRoaXMuaW1hZ2VPZmZzZXRYK3RoaXMuaW1nLndpZHRoKnRoaXMuaW1hZ2VTY2FsZSxkPXRoaXMuaW1hZ2VPZmZzZXRZK3RoaXMuaW1nLmhlaWdodCp0aGlzLmltYWdlU2NhbGU7c3dpdGNoKHRoaXMucmVzaXplSGFuZGxlKXtjYXNlInNlIjp0aGlzLmNyb3BTaXplPU1hdGgubWF4KHRoaXMubWluQ3JvcFNpemUsTWF0aC5taW4odGhpcy5jcm9wU2l6ZStNYXRoLm1heChpLHIpLE1hdGgubWluKG8tdGhpcy5jcm9wWCxkLXRoaXMuY3JvcFkpKSk7YnJlYWs7Y2FzZSJudyI6bGV0IGM9TWF0aC5tYXgodGhpcy5taW5Dcm9wU2l6ZSx0aGlzLmNyb3BTaXplLU1hdGgubWF4KGkscikpLGg9dGhpcy5jcm9wU2l6ZS1jLGw9dGhpcy5jcm9wWCtoLGY9dGhpcy5jcm9wWStoO2w+PXMmJmY+PW4mJih0aGlzLmNyb3BYPWwsdGhpcy5jcm9wWT1mLHRoaXMuY3JvcFNpemU9Yyk7YnJlYWs7Y2FzZSJuZSI6bGV0IGc9TWF0aC5tYXgoaSwtcikseT1NYXRoLm1heCh0aGlzLm1pbkNyb3BTaXplLHRoaXMuY3JvcFNpemUrZyksdj15LXRoaXMuY3JvcFNpemUsbT10aGlzLmNyb3BZLXY7bT49biYmdGhpcy5jcm9wWCt5PD1vJiYodGhpcy5jcm9wWT1tLHRoaXMuY3JvcFNpemU9eSk7YnJlYWs7Y2FzZSJzdyI6bGV0IHg9TWF0aC5tYXgoLWksciksTT1NYXRoLm1heCh0aGlzLm1pbkNyb3BTaXplLHRoaXMuY3JvcFNpemUreCksUz1NLXRoaXMuY3JvcFNpemUsRj10aGlzLmNyb3BYLVM7Rj49cyYmdGhpcy5jcm9wWStNPD1kJiYodGhpcy5jcm9wWD1GLHRoaXMuY3JvcFNpemU9TSk7YnJlYWt9fXJlbmRlcigpe3RoaXMuY3R4LmNsZWFyUmVjdCgwLDAsdGhpcy5jYW52YXMud2lkdGgsdGhpcy5jYW52YXMuaGVpZ2h0KSx0aGlzLm92ZXJsYXlDdHguY2xlYXJSZWN0KDAsMCx0aGlzLm92ZXJsYXlDYW52YXMud2lkdGgsdGhpcy5vdmVybGF5Q2FudmFzLmhlaWdodCksdGhpcy5jdHguZmlsbFN0eWxlPSIjMDAwMDAwIix0aGlzLmN0eC5maWxsUmVjdCgwLDAsdGhpcy5jYW52YXMud2lkdGgsdGhpcy5jYW52YXMuaGVpZ2h0KSx0aGlzLmN0eC5kcmF3SW1hZ2UodGhpcy5pbWcsdGhpcy5pbWFnZU9mZnNldFgsdGhpcy5pbWFnZU9mZnNldFksdGhpcy5pbWcud2lkdGgqdGhpcy5pbWFnZVNjYWxlLHRoaXMuaW1nLmhlaWdodCp0aGlzLmltYWdlU2NhbGUpLHRoaXMub3ZlcmxheUN0eC5maWxsU3R5bGU9InJnYmEoMCwgMCwgMCwgMC41KSIsdGhpcy5vdmVybGF5Q3R4LmZpbGxSZWN0KHRoaXMuaW1hZ2VPZmZzZXRYLHRoaXMuaW1hZ2VPZmZzZXRZLHRoaXMuaW1nLndpZHRoKnRoaXMuaW1hZ2VTY2FsZSx0aGlzLmltZy5oZWlnaHQqdGhpcy5pbWFnZVNjYWxlKSx0aGlzLm92ZXJsYXlDdHguc2F2ZSgpLHRoaXMub3B0aW9ucy5zaGFwZT09PSJyb3VuZCI/KHRoaXMub3ZlcmxheUN0eC5iZWdpblBhdGgoKSx0aGlzLm92ZXJsYXlDdHguYXJjKHRoaXMuY3JvcFgrdGhpcy5jcm9wU2l6ZS8yLHRoaXMuY3JvcFkrdGhpcy5jcm9wU2l6ZS8yLHRoaXMuY3JvcFNpemUvMiwwLE1hdGguUEkqMiksdGhpcy5vdmVybGF5Q3R4LmNsaXAoKSk6KHRoaXMub3ZlcmxheUN0eC5iZWdpblBhdGgoKSx0aGlzLm92ZXJsYXlDdHgucmVjdCh0aGlzLmNyb3BYLHRoaXMuY3JvcFksdGhpcy5jcm9wU2l6ZSx0aGlzLmNyb3BTaXplKSx0aGlzLm92ZXJsYXlDdHguY2xpcCgpKSx0aGlzLm92ZXJsYXlDdHguY2xlYXJSZWN0KDAsMCx0aGlzLm92ZXJsYXlDYW52YXMud2lkdGgsdGhpcy5vdmVybGF5Q2FudmFzLmhlaWdodCksdGhpcy5vdmVybGF5Q3R4LnJlc3RvcmUoKSx0aGlzLm92ZXJsYXlDdHguc3Ryb2tlU3R5bGU9IndoaXRlIix0aGlzLm92ZXJsYXlDdHgubGluZVdpZHRoPTIsdGhpcy5vcHRpb25zLnNoYXBlPT09InJvdW5kIj8odGhpcy5vdmVybGF5Q3R4LmJlZ2luUGF0aCgpLHRoaXMub3ZlcmxheUN0eC5hcmModGhpcy5jcm9wWCt0aGlzLmNyb3BTaXplLzIsdGhpcy5jcm9wWSt0aGlzLmNyb3BTaXplLzIsdGhpcy5jcm9wU2l6ZS8yLDAsTWF0aC5QSSoyKSx0aGlzLm92ZXJsYXlDdHguc3Ryb2tlKCkpOnRoaXMub3ZlcmxheUN0eC5zdHJva2VSZWN0KHRoaXMuY3JvcFgsdGhpcy5jcm9wWSx0aGlzLmNyb3BTaXplLHRoaXMuY3JvcFNpemUpLHRoaXMuZHJhd1Jlc2l6ZUhhbmRsZXMoKX1kcmF3UmVzaXplSGFuZGxlcygpe2xldCBhPVt7eDp0aGlzLmNyb3BYLHk6dGhpcy5jcm9wWX0se3g6dGhpcy5jcm9wWCt0aGlzLmNyb3BTaXplLHk6dGhpcy5jcm9wWX0se3g6dGhpcy5jcm9wWCx5OnRoaXMuY3JvcFkrdGhpcy5jcm9wU2l6ZX0se3g6dGhpcy5jcm9wWCt0aGlzLmNyb3BTaXplLHk6dGhpcy5jcm9wWSt0aGlzLmNyb3BTaXplfV07dGhpcy5vdmVybGF5Q3R4LmZpbGxTdHlsZT0id2hpdGUiLGEuZm9yRWFjaChpPT57dGhpcy5vdmVybGF5Q3R4LmJlZ2luUGF0aCgpLHRoaXMub3ZlcmxheUN0eC5hcmMoaS54LGkueSw4LDAsTWF0aC5QSSoyKSx0aGlzLm92ZXJsYXlDdHguZmlsbCgpfSl9YXN5bmMgZ2V0Q3JvcHBlZEltYWdlKCl7bGV0IGU9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiY2FudmFzIiksYT1lLmdldENvbnRleHQoIjJkIiksaT0xL3RoaXMuaW1hZ2VTY2FsZSxyPXRoaXMuY3JvcFNpemUqaSxzPXRoaXMub3B0aW9ucy5vdXRwdXRTaXplO3M+ciYmY29uc29sZS5pbmZvKGBQcm9maWxlIHBpY3R1cmU6IFVwc2NhbGluZyBmcm9tICR7TWF0aC5yb3VuZChyKX1weCB0byAke3N9cHhgKSxlLndpZHRoPXMsZS5oZWlnaHQ9cztsZXQgbj0odGhpcy5jcm9wWC10aGlzLmltYWdlT2Zmc2V0WCkqaSxvPSh0aGlzLmNyb3BZLXRoaXMuaW1hZ2VPZmZzZXRZKSppLGQ9dGhpcy5jcm9wU2l6ZSppO3RoaXMub3B0aW9ucy5zaGFwZT09PSJyb3VuZCImJihhLmJlZ2luUGF0aCgpLGEuYXJjKHMvMixzLzIscy8yLDAsTWF0aC5QSSoyKSxhLmNsaXAoKSksYS5pbWFnZVNtb290aGluZ0VuYWJsZWQ9ITAsYS5pbWFnZVNtb290aGluZ1F1YWxpdHk9ImhpZ2giLGEuZHJhd0ltYWdlKHRoaXMuaW1nLG4sbyxkLGQsMCwwLHMscyk7bGV0IGg9dGhpcy5vcHRpb25zLmltYWdlLmluY2x1ZGVzKCJpbWFnZS9wbmciKT8iaW1hZ2UvcG5nIjoiaW1hZ2UvanBlZyI7cmV0dXJuIGUudG9EYXRhVVJMKGgsdGhpcy5vcHRpb25zLm91dHB1dFF1YWxpdHkpfWRlc3Ryb3koKXt0aGlzLmNhbnZhcy5yZW1vdmUoKSx0aGlzLm92ZXJsYXlDYW52YXMucmVtb3ZlKCl9fX0pO3ZhciBtbyxnYSxEVixPZ3Q9YigoKT0+e3VlKCk7Z2koKTtkYSgpO3VpKCk7RHQoKTtubygpO0xzKCk7THMoKTtGZ3QoKTtxZSgpO21vPWZ1bmN0aW9uKHQsZSxhLGkscixzKXtmdW5jdGlvbiBuKHgpe2lmKHghPT12b2lkIDAmJnR5cGVvZiB4IT0iZnVuY3Rpb24iKXRocm93IG5ldyBUeXBlRXJyb3IoIkZ1bmN0aW9uIGV4cGVjdGVkIik7cmV0dXJuIHh9Zm9yKHZhciBvPWkua2luZCxkPW89PT0iZ2V0dGVyIj8iZ2V0IjpvPT09InNldHRlciI/InNldCI6InZhbHVlIixjPSFlJiZ0P2kuc3RhdGljP3Q6dC5wcm90b3R5cGU6bnVsbCxoPWV8fChjP09iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoYyxpLm5hbWUpOnt9KSxsLGY9ITEsZz1hLmxlbmd0aC0xO2c+PTA7Zy0tKXt2YXIgeT17fTtmb3IodmFyIHYgaW4gaSl5W3ZdPXY9PT0iYWNjZXNzIj97fTppW3ZdO2Zvcih2YXIgdiBpbiBpLmFjY2Vzcyl5LmFjY2Vzc1t2XT1pLmFjY2Vzc1t2XTt5LmFkZEluaXRpYWxpemVyPWZ1bmN0aW9uKHgpe2lmKGYpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGFkZCBpbml0aWFsaXplcnMgYWZ0ZXIgZGVjb3JhdGlvbiBoYXMgY29tcGxldGVkIik7cy5wdXNoKG4oeHx8bnVsbCkpfTt2YXIgbT0oMCxhW2ddKShvPT09ImFjY2Vzc29yIj97Z2V0OmguZ2V0LHNldDpoLnNldH06aFtkXSx5KTtpZihvPT09ImFjY2Vzc29yIil7aWYobT09PXZvaWQgMCljb250aW51ZTtpZihtPT09bnVsbHx8dHlwZW9mIG0hPSJvYmplY3QiKXRocm93IG5ldyBUeXBlRXJyb3IoIk9iamVjdCBleHBlY3RlZCIpOyhsPW4obS5nZXQpKSYmKGguZ2V0PWwpLChsPW4obS5zZXQpKSYmKGguc2V0PWwpLChsPW4obS5pbml0KSkmJnIudW5zaGlmdChsKX1lbHNlKGw9bihtKSkmJihvPT09ImZpZWxkIj9yLnVuc2hpZnQobCk6aFtkXT1sKX1jJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoYyxpLm5hbWUsaCksZj0hMH0sZ2E9ZnVuY3Rpb24odCxlLGEpe2Zvcih2YXIgaT1hcmd1bWVudHMubGVuZ3RoPjIscj0wO3I8ZS5sZW5ndGg7cisrKWE9aT9lW3JdLmNhbGwodCxhKTplW3JdLmNhbGwodCk7cmV0dXJuIGk/YTp2b2lkIDB9LERWPSgoKT0+e2xldCB0PVtwZSgiZGVlcy1wcm9maWxlcGljdHVyZS1tb2RhbCIpXSxlLGE9W10saSxyPXhlLHMsbj1bXSxvPVtdLGQsYz1bXSxoPVtdLGwsZj1bXSxnPVtdLHksdj1bXSxtPVtdLHgsTT1bXSxTPVtdLEYsXz1bXSxrPVtdLE4sTD1bXSxBPVtdO3ZhciBxPWNsYXNzIGV4dGVuZHMgcntzdGF0aWN7aT10aGlzfXN0YXRpY3tsZXQgQz10eXBlb2YgU3ltYm9sPT0iZnVuY3Rpb24iJiZTeW1ib2wubWV0YWRhdGE/T2JqZWN0LmNyZWF0ZShyW1N5bWJvbC5tZXRhZGF0YV0/P251bGwpOnZvaWQgMDtzPVtJKHt0eXBlOlN0cmluZ30pXSxkPVtJKHt0eXBlOlN0cmluZ30pXSxsPVtJKHt0eXBlOk51bWJlcn0pXSx5PVtJKHt0eXBlOk51bWJlcn0pXSx4PVtKKCldLEY9W0ooKV0sTj1bSigpXSxtbyh0aGlzLG51bGwscyx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImluaXRpYWxJbWFnZSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6ej0+ImluaXRpYWxJbWFnZSJpbiB6LGdldDp6PT56LmluaXRpYWxJbWFnZSxzZXQ6KHosRSk9Pnt6LmluaXRpYWxJbWFnZT1FfX0sbWV0YWRhdGE6Q30sbixvKSxtbyh0aGlzLG51bGwsZCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InNoYXBlIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczp6PT4ic2hhcGUiaW4geixnZXQ6ej0+ei5zaGFwZSxzZXQ6KHosRSk9Pnt6LnNoYXBlPUV9fSxtZXRhZGF0YTpDfSxjLGgpLG1vKHRoaXMsbnVsbCxsLHtraW5kOiJhY2Nlc3NvciIsbmFtZToib3V0cHV0U2l6ZSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6ej0+Im91dHB1dFNpemUiaW4geixnZXQ6ej0+ei5vdXRwdXRTaXplLHNldDooeixFKT0+e3oub3V0cHV0U2l6ZT1FfX0sbWV0YWRhdGE6Q30sZixnKSxtbyh0aGlzLG51bGwseSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6Im91dHB1dFF1YWxpdHkiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOno9PiJvdXRwdXRRdWFsaXR5ImluIHosZ2V0Ono9Pnoub3V0cHV0UXVhbGl0eSxzZXQ6KHosRSk9Pnt6Lm91dHB1dFF1YWxpdHk9RX19LG1ldGFkYXRhOkN9LHYsbSksbW8odGhpcyxudWxsLHgse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJjdXJyZW50U3RlcCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6ej0+ImN1cnJlbnRTdGVwImluIHosZ2V0Ono9PnouY3VycmVudFN0ZXAsc2V0Oih6LEUpPT57ei5jdXJyZW50U3RlcD1FfX0sbWV0YWRhdGE6Q30sTSxTKSxtbyh0aGlzLG51bGwsRix7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImNyb3BwZWRJbWFnZSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6ej0+ImNyb3BwZWRJbWFnZSJpbiB6LGdldDp6PT56LmNyb3BwZWRJbWFnZSxzZXQ6KHosRSk9Pnt6LmNyb3BwZWRJbWFnZT1FfX0sbWV0YWRhdGE6Q30sXyxrKSxtbyh0aGlzLG51bGwsTix7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImlzUHJvY2Vzc2luZyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6ej0+ImlzUHJvY2Vzc2luZyJpbiB6LGdldDp6PT56LmlzUHJvY2Vzc2luZyxzZXQ6KHosRSk9Pnt6LmlzUHJvY2Vzc2luZz1FfX0sbWV0YWRhdGE6Q30sTCxBKSxtbyhudWxsLGU9e3ZhbHVlOml9LHQse2tpbmQ6ImNsYXNzIixuYW1lOmkubmFtZSxtZXRhZGF0YTpDfSxudWxsLGEpLHE9aT1lLnZhbHVlLEMmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShpLFN5bWJvbC5tZXRhZGF0YSx7ZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITAsdmFsdWU6Q30pfSNlPWdhKHRoaXMsbiwiIik7Z2V0IGluaXRpYWxJbWFnZSgpe3JldHVybiB0aGlzLiNlfXNldCBpbml0aWFsSW1hZ2UoQyl7dGhpcy4jZT1DfSN0PShnYSh0aGlzLG8pLGdhKHRoaXMsYywicm91bmQiKSk7Z2V0IHNoYXBlKCl7cmV0dXJuIHRoaXMuI3R9c2V0IHNoYXBlKEMpe3RoaXMuI3Q9Q30jYT0oZ2EodGhpcyxoKSxnYSh0aGlzLGYsODAwKSk7Z2V0IG91dHB1dFNpemUoKXtyZXR1cm4gdGhpcy4jYX1zZXQgb3V0cHV0U2l6ZShDKXt0aGlzLiNhPUN9I2k9KGdhKHRoaXMsZyksZ2EodGhpcyx2LC45NSkpO2dldCBvdXRwdXRRdWFsaXR5KCl7cmV0dXJuIHRoaXMuI2l9c2V0IG91dHB1dFF1YWxpdHkoQyl7dGhpcy4jaT1DfSNyPShnYSh0aGlzLG0pLGdhKHRoaXMsTSwiY3JvcCIpKTtnZXQgY3VycmVudFN0ZXAoKXtyZXR1cm4gdGhpcy4jcn1zZXQgY3VycmVudFN0ZXAoQyl7dGhpcy4jcj1DfSNzPShnYSh0aGlzLFMpLGdhKHRoaXMsXywiIikpO2dldCBjcm9wcGVkSW1hZ2UoKXtyZXR1cm4gdGhpcy4jc31zZXQgY3JvcHBlZEltYWdlKEMpe3RoaXMuI3M9Q30jbj0oZ2EodGhpcyxrKSxnYSh0aGlzLEwsITEpKTtnZXQgaXNQcm9jZXNzaW5nKCl7cmV0dXJuIHRoaXMuI259c2V0IGlzUHJvY2Vzc2luZyhDKXt0aGlzLiNuPUN9Y3JvcHBlcj0oZ2EodGhpcyxBKSxudWxsKTt3aW5kb3dMYXllcjt6SW5kZXg9MDtzdGF0aWMgc3R5bGVzPVtDZSxwLmRlZmF1bHRTdHlsZXMsUWAKICAgICAgLyogVE9ETzogTWlncmF0ZSBoYXJkY29kZWQgdmFsdWVzIHRvIC0tZGVlcy0qIENTUyB2YXJpYWJsZXMgKi8KICAgICAgOmhvc3QgewogICAgICAgIGZvbnQtZmFtaWx5OiAke0p0fTsKICAgICAgICBjb2xvcjogJHtwLmJkVGhlbWUoIiMzMzMiLCIjZmZmIil9OwogICAgICAgIHBvc2l0aW9uOiBmaXhlZDsKICAgICAgICB0b3A6IDA7CiAgICAgICAgbGVmdDogMDsKICAgICAgICByaWdodDogMDsKICAgICAgICBib3R0b206IDA7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOwogICAgICAgIHotaW5kZXg6IHZhcigtLXotaW5kZXgpOwogICAgICB9CgogICAgICAubW9kYWwtY29udGFpbmVyIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke3AuYmRUaGVtZSgiI2ZmZmZmZiIsIiMwYTBhMGEiKX07CiAgICAgICAgYm9yZGVyLXJhZGl1czogMTJweDsKICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAke3AuYmRUaGVtZSgicmdiYSgwLCAwLCAwLCAwLjA4KSIsInJnYmEoMjU1LCAyNTUsIDI1NSwgMC4wOCkiKX07CiAgICAgICAgYm94LXNoYWRvdzogJHtwLmJkVGhlbWUoIjAgMjBweCAyNXB4IC01cHggcmdiYSgwLCAwLCAwLCAwLjEpLCAwIDEwcHggMTBweCAtNXB4IHJnYmEoMCwgMCwgMCwgMC4wNCkiLCIwIDIwcHggMjVweCAtNXB4IHJnYmEoMCwgMCwgMCwgMC4zKSwgMCAxMHB4IDEwcHggLTVweCByZ2JhKDAsIDAsIDAsIDAuMikiKX07CiAgICAgICAgd2lkdGg6IDQ4MHB4OwogICAgICAgIG1heC13aWR0aDogY2FsYygxMDB2dyAtIDMycHgpOwogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgxMHB4KSBzY2FsZSgwLjk4KTsKICAgICAgICBvcGFjaXR5OiAwOwogICAgICAgIGFuaW1hdGlvbjogbW9kYWxTaG93IDAuMjVzIGN1YmljLWJlemllcigwLjQsIDAsIDAuMiwgMSkgZm9yd2FyZHM7CiAgICAgIH0KCiAgICAgIEBrZXlmcmFtZXMgbW9kYWxTaG93IHsKICAgICAgICB0byB7CiAgICAgICAgICBvcGFjaXR5OiAxOwogICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDBweCkgc2NhbGUoMSk7CiAgICAgICAgfQogICAgICB9CgogICAgICAubW9kYWwtaGVhZGVyIHsKICAgICAgICBoZWlnaHQ6IDUycHg7CiAgICAgICAgcGFkZGluZzogMCAyMHB4OwogICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAke3AuYmRUaGVtZSgicmdiYSgwLCAwLCAwLCAwLjA2KSIsInJnYmEoMjU1LCAyNTUsIDI1NSwgMC4wNikiKX07CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOwogICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgICBmbGV4LXNocmluazogMDsKICAgICAgfQoKICAgICAgLm1vZGFsLXRpdGxlIHsKICAgICAgICBmb250LXNpemU6IDE1cHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDsKICAgICAgICBjb2xvcjogJHtwLmJkVGhlbWUoIiMwOTA5MGIiLCIjZmFmYWZhIil9OwogICAgICAgIGxldHRlci1zcGFjaW5nOiAtMC4wMWVtOwogICAgICB9CgogICAgICAuY2xvc2UtYnV0dG9uIHsKICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgICAgcmlnaHQ6IDEwcHg7CiAgICAgICAgdG9wOiA1MCU7CiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpOwogICAgICAgIHdpZHRoOiAzMnB4OwogICAgICAgIGhlaWdodDogMzJweDsKICAgICAgICBib3JkZXI6IG5vbmU7CiAgICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7CiAgICAgICAgY3Vyc29yOiBwb2ludGVyOwogICAgICAgIGJvcmRlci1yYWRpdXM6IDhweDsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7CiAgICAgICAgY29sb3I6ICR7cC5iZFRoZW1lKCIjNzE3MTdhIiwiIzcxNzE3YSIpfTsKICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC4xNXMgZWFzZTsKICAgICAgfQoKICAgICAgLmNsb3NlLWJ1dHRvbjpob3ZlciB7CiAgICAgICAgYmFja2dyb3VuZDogJHtwLmJkVGhlbWUoInJnYmEoMCwgMCwgMCwgMC4wNSkiLCJyZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMDUpIil9OwogICAgICAgIGNvbG9yOiAke3AuYmRUaGVtZSgiIzA5MDkwYiIsIiNmYWZhZmEiKX07CiAgICAgIH0KCiAgICAgIC5jbG9zZS1idXR0b246YWN0aXZlIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke3AuYmRUaGVtZSgicmdiYSgwLCAwLCAwLCAwLjA4KSIsInJnYmEoMjU1LCAyNTUsIDI1NSwgMC4wOCkiKX07CiAgICAgIH0KCiAgICAgIC5tb2RhbC1ib2R5IHsKICAgICAgICBmbGV4OiAxOwogICAgICAgIHBhZGRpbmc6IDI0cHg7CiAgICAgICAgb3ZlcmZsb3cteTogYXV0bzsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBnYXA6IDIwcHg7CiAgICAgIH0KCiAgICAgIC5jcm9wcGVyLWNvbnRhaW5lciB7CiAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgICAgbWF4LXdpZHRoOiAzNjBweDsKICAgICAgICBhc3BlY3QtcmF0aW86IDE7CiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICAgIGJhY2tncm91bmQ6ICR7cC5iZFRoZW1lKCIjMDAwMDAwIiwiIzAwMDAwMCIpfTsKICAgICAgICBib3JkZXItcmFkaXVzOiAxMnB4OwogICAgICAgIG92ZXJmbG93OiBoaWRkZW47CiAgICAgICAgYm94LXNoYWRvdzogJHtwLmJkVGhlbWUoImluc2V0IDAgMnB4IDRweCByZ2JhKDAsIDAsIDAsIDAuMDYpIiwiaW5zZXQgMCAycHggNHB4IHJnYmEoMCwgMCwgMCwgMC4yKSIpfTsKICAgICAgfQoKICAgICAgLnByZXZpZXctY29udGFpbmVyIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBnYXA6IDIwcHg7CiAgICAgIH0KCiAgICAgIC5wcmV2aWV3LWltYWdlIHsKICAgICAgICB3aWR0aDogMTgwcHg7CiAgICAgICAgaGVpZ2h0OiAxODBweDsKICAgICAgICBvYmplY3QtZml0OiBjb3ZlcjsKICAgICAgICBib3JkZXI6IDRweCBzb2xpZCAke3AuYmRUaGVtZSgiI2ZmZmZmZiIsIiMxODE4MWIiKX07CiAgICAgICAgYm94LXNoYWRvdzogJHtwLmJkVGhlbWUoIjAgMTBweCAxNXB4IC0zcHggcmdiYSgwLCAwLCAwLCAwLjEpLCAwIDRweCA2cHggLTJweCByZ2JhKDAsIDAsIDAsIDAuMDUpIiwiMCAxMHB4IDE1cHggLTNweCByZ2JhKDAsIDAsIDAsIDAuMyksIDAgNHB4IDZweCAtMnB4IHJnYmEoMCwgMCwgMCwgMC4yKSIpfTsKICAgICAgfQoKICAgICAgLnByZXZpZXctaW1hZ2Uucm91bmQgewogICAgICAgIGJvcmRlci1yYWRpdXM6IDUwJTsKICAgICAgfQoKICAgICAgLnByZXZpZXctaW1hZ2Uuc3F1YXJlIHsKICAgICAgICBib3JkZXItcmFkaXVzOiAxNnB4OwogICAgICB9CgogICAgICAuc3VjY2Vzcy1tZXNzYWdlIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgZ2FwOiAxMHB4OwogICAgICAgIHBhZGRpbmc6IDEwcHggMjBweDsKICAgICAgICBiYWNrZ3JvdW5kOiAke3AuYmRUaGVtZSgiIzEwYjk4MSIsIiMxMGI5ODEiKX07CiAgICAgICAgY29sb3I6IHdoaXRlOwogICAgICAgIGJvcmRlci1yYWRpdXM6IDEwMHB4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7CiAgICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgICAgIGFuaW1hdGlvbjogc3VjY2Vzc1B1bHNlIDAuNHMgZWFzZS1vdXQ7CiAgICAgIH0KCiAgICAgIEBrZXlmcmFtZXMgc3VjY2Vzc1B1bHNlIHsKICAgICAgICAwJSB7IHRyYW5zZm9ybTogc2NhbGUoMC45KTsgb3BhY2l0eTogMDsgfQogICAgICAgIDUwJSB7IHRyYW5zZm9ybTogc2NhbGUoMS4wMik7IH0KICAgICAgICAxMDAlIHsgdHJhbnNmb3JtOiBzY2FsZSgxKTsgb3BhY2l0eTogMTsgfQogICAgICB9CgogICAgICAubW9kYWwtZm9vdGVyIHsKICAgICAgICBwYWRkaW5nOiAyMHB4IDI0cHg7CiAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICR7cC5iZFRoZW1lKCJyZ2JhKDAsIDAsIDAsIDAuMDYpIiwicmdiYSgyNTUsIDI1NSwgMjU1LCAwLjA2KSIpfTsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGdhcDogMTBweDsKICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kOwogICAgICB9CgogICAgICAuaW5zdHJ1Y3Rpb25zIHsKICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7CiAgICAgICAgY29sb3I6ICR7cC5iZFRoZW1lKCIjNzE3MTdhIiwiI2ExYTFhYSIpfTsKICAgICAgICBmb250LXNpemU6IDEzcHg7CiAgICAgICAgbGluZS1oZWlnaHQ6IDEuNTsKICAgICAgICBtYXgtd2lkdGg6IDMyMHB4OwogICAgICB9CgogICAgICAubG9hZGluZy1zcGlubmVyIHsKICAgICAgICB3aWR0aDogNDBweDsKICAgICAgICBoZWlnaHQ6IDQwcHg7CiAgICAgICAgYm9yZGVyOiAzcHggc29saWQgJHtwLmJkVGhlbWUoInJnYmEoMCwgMCwgMCwgMC4xKSIsInJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xKSIpfTsKICAgICAgICBib3JkZXItdG9wLWNvbG9yOiAke3AuYmRUaGVtZSgiIzNiODJmNiIsIiM2MGE1ZmEiKX07CiAgICAgICAgYm9yZGVyLXJhZGl1czogNTAlOwogICAgICAgIGFuaW1hdGlvbjogc3BpbiAwLjZzIGxpbmVhciBpbmZpbml0ZTsKICAgICAgfQoKICAgICAgQGtleWZyYW1lcyBzcGluIHsKICAgICAgICB0byB7CiAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgzNjBkZWcpOwogICAgICAgIH0KICAgICAgfQoKICAgICAgQG1lZGlhIChtYXgtd2lkdGg6IDc2OHB4KSB7CiAgICAgICAgLm1vZGFsLWNvbnRhaW5lciB7CiAgICAgICAgICB3aWR0aDogY2FsYygxMDB2dyAtIDMycHgpOwogICAgICAgICAgbWFyZ2luOiAxNnB4OwogICAgICAgIH0KICAgICAgICAKICAgICAgICAubW9kYWwtYm9keSB7CiAgICAgICAgICBwYWRkaW5nOiAyNHB4OwogICAgICAgIH0KICAgICAgfQogICAgYF07YXN5bmMgY29ubmVjdGVkQ2FsbGJhY2soKXtzdXBlci5jb25uZWN0ZWRDYWxsYmFjaygpLHRoaXMud2luZG93TGF5ZXI9YXdhaXQgZmkuY3JlYXRlQW5kU2hvdyh7Ymx1cjohMH0pLHRoaXMud2luZG93TGF5ZXIuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLCgpPT50aGlzLmNsb3NlKCkpLHRoaXMuekluZGV4PWgxLmdldE5leHRaSW5kZXgoKSx0aGlzLnN0eWxlLnNldFByb3BlcnR5KCItLXotaW5kZXgiLHRoaXMuekluZGV4LnRvU3RyaW5nKCkpLGgxLnJlZ2lzdGVyKHRoaXMsdGhpcy56SW5kZXgpfWFzeW5jIGRpc2Nvbm5lY3RlZENhbGxiYWNrKCl7c3VwZXIuZGlzY29ubmVjdGVkQ2FsbGJhY2soKSx0aGlzLmNyb3BwZXImJnRoaXMuY3JvcHBlci5kZXN0cm95KCksdGhpcy53aW5kb3dMYXllciYmYXdhaXQgdGhpcy53aW5kb3dMYXllci5kZXN0cm95KCksaDEudW5yZWdpc3Rlcih0aGlzKX1yZW5kZXIoKXtyZXR1cm4gd2AKICAgICAgPGRpdiBjbGFzcz0ibW9kYWwtY29udGFpbmVyIiBAY2xpY2s9JHtDPT5DLnN0b3BQcm9wYWdhdGlvbigpfT4KICAgICAgICA8ZGl2IGNsYXNzPSJtb2RhbC1oZWFkZXIiPgogICAgICAgICAgPGgzIGNsYXNzPSJtb2RhbC10aXRsZSI+CiAgICAgICAgICAgICR7dGhpcy5jdXJyZW50U3RlcD09PSJjcm9wIj8iQWRqdXN0IEltYWdlIjoiU3VjY2VzcyJ9CiAgICAgICAgICA8L2gzPgogICAgICAgICAgPGJ1dHRvbiBjbGFzcz0iY2xvc2UtYnV0dG9uIiBAY2xpY2s9JHt0aGlzLmNsb3NlfSB0aXRsZT0iQ2xvc2UiPgogICAgICAgICAgICA8ZGVlcy1pY29uIGljb249Imx1Y2lkZTp4IiBpY29uU2l6ZT0iMTYiPjwvZGVlcy1pY29uPgogICAgICAgICAgPC9idXR0b24+CiAgICAgICAgPC9kaXY+CiAgICAgICAgCiAgICAgICAgPGRpdiBjbGFzcz0ibW9kYWwtYm9keSI+CiAgICAgICAgICAke3RoaXMuY3VycmVudFN0ZXA9PT0iY3JvcCI/d2AKICAgICAgICAgICAgPGRpdiBjbGFzcz0iaW5zdHJ1Y3Rpb25zIj4KICAgICAgICAgICAgICBQb3NpdGlvbiBhbmQgcmVzaXplIHRoZSBzcXVhcmUgdG8gc2VsZWN0IHlvdXIgcHJvZmlsZSBhcmVhCiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJjcm9wcGVyLWNvbnRhaW5lciIgaWQ9ImNyb3BwZXJDb250YWluZXIiPjwvZGl2PgogICAgICAgICAgYDp3YAogICAgICAgICAgICA8ZGl2IGNsYXNzPSJwcmV2aWV3LWNvbnRhaW5lciI+CiAgICAgICAgICAgICAgJHt0aGlzLmlzUHJvY2Vzc2luZz93YAogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0ibG9hZGluZy1zcGlubmVyIj48L2Rpdj4KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9Imluc3RydWN0aW9ucyI+U2F2aW5nLi4uPC9kaXY+CiAgICAgICAgICAgICAgYDp3YAogICAgICAgICAgICAgICAgPGltZyAKICAgICAgICAgICAgICAgICAgY2xhc3M9InByZXZpZXctaW1hZ2UgJHt0aGlzLnNoYXBlfSIgCiAgICAgICAgICAgICAgICAgIHNyYz0iJHt0aGlzLmNyb3BwZWRJbWFnZX0iIAogICAgICAgICAgICAgICAgICBhbHQ9IkNyb3BwZWQgcHJldmlldyIKICAgICAgICAgICAgICAgIC8+CiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJzdWNjZXNzLW1lc3NhZ2UiPgogICAgICAgICAgICAgICAgICA8ZGVlcy1pY29uIGljb249Imx1Y2lkZTpjaGVjayIgaWNvblNpemU9IjE2Ij48L2RlZXMtaWNvbj4KICAgICAgICAgICAgICAgICAgPHNwYW4+TG9va2luZyBnb29kITwvc3Bhbj4KICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgIGB9CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgYH0KICAgICAgICA8L2Rpdj4KICAgICAgICAKICAgICAgICA8ZGl2IGNsYXNzPSJtb2RhbC1mb290ZXIiPgogICAgICAgICAgJHt0aGlzLmN1cnJlbnRTdGVwPT09ImNyb3AiP3dgCiAgICAgICAgICAgIDxkZWVzLWJ1dHRvbiB0eXBlPSJkZXN0cnVjdGl2ZSIgc2l6ZT0ic20iIEBjbGljaz0ke3RoaXMuY2xvc2V9PgogICAgICAgICAgICAgIENhbmNlbAogICAgICAgICAgICA8L2RlZXMtYnV0dG9uPgogICAgICAgICAgICA8ZGVlcy1idXR0b24gdHlwZT0iZGVmYXVsdCIgc2l6ZT0ic20iIEBjbGljaz0ke3RoaXMuaGFuZGxlQ3JvcH0+CiAgICAgICAgICAgICAgU2F2ZQogICAgICAgICAgICA8L2RlZXMtYnV0dG9uPgogICAgICAgICAgYDoiIn0KICAgICAgICA8L2Rpdj4KICAgICAgPC9kaXY+CiAgICBgfWFzeW5jIGZpcnN0VXBkYXRlZCgpe3RoaXMuY3VycmVudFN0ZXA9PT0iY3JvcCImJmF3YWl0IHRoaXMuaW5pdGlhbGl6ZUNyb3BwZXIoKX1hc3luYyBpbml0aWFsaXplQ3JvcHBlcigpe2F3YWl0IHRoaXMudXBkYXRlQ29tcGxldGU7bGV0IEM9dGhpcy5zaGFkb3dSb290LmdldEVsZW1lbnRCeUlkKCJjcm9wcGVyQ29udGFpbmVyIik7QyYmKHRoaXMuY3JvcHBlcj1uZXcgc3coe2NvbnRhaW5lcjpDLGltYWdlOnRoaXMuaW5pdGlhbEltYWdlLHNoYXBlOnRoaXMuc2hhcGUsYXNwZWN0UmF0aW86MSxvdXRwdXRTaXplOnRoaXMub3V0cHV0U2l6ZSxvdXRwdXRRdWFsaXR5OnRoaXMub3V0cHV0UXVhbGl0eX0pLGF3YWl0IHRoaXMuY3JvcHBlci5pbml0aWFsaXplKCkpfWFzeW5jIGhhbmRsZUNyb3AoKXtpZih0aGlzLmNyb3BwZXIpdHJ5e3RoaXMuaXNQcm9jZXNzaW5nPSEwLHRoaXMuY3VycmVudFN0ZXA9InByZXZpZXciLGF3YWl0IHRoaXMudXBkYXRlQ29tcGxldGU7bGV0IEM9YXdhaXQgdGhpcy5jcm9wcGVyLmdldENyb3BwZWRJbWFnZSgpO3RoaXMuY3JvcHBlZEltYWdlPUMsYXdhaXQgbmV3IFByb21pc2Uoej0+c2V0VGltZW91dCh6LDgwMCkpLHRoaXMuaXNQcm9jZXNzaW5nPSExLHRoaXMuZGlzcGF0Y2hFdmVudChuZXcgQ3VzdG9tRXZlbnQoInNhdmUiLHtkZXRhaWw6e2Nyb3BwZWRJbWFnZTp0aGlzLmNyb3BwZWRJbWFnZX0sYnViYmxlczohMCxjb21wb3NlZDohMH0pKSxzZXRUaW1lb3V0KCgpPT57dGhpcy5jbG9zZSgpfSwxNTAwKX1jYXRjaChDKXtjb25zb2xlLmVycm9yKCJFcnJvciBjcm9wcGluZyBpbWFnZToiLEMpLHRoaXMuaXNQcm9jZXNzaW5nPSExfX1jbG9zZSgpe3RoaXMucmVtb3ZlKCl9c3RhdGlje2dhKGksYSl9fTtyZXR1cm4gcT1pfSkoKX0pO3ZhciBSZ3QsQmd0PWIoKCk9Pnt1ZSgpO3gxKCk7bTIoKTtFVigpO1JndD0oKT0+d2AKICA8c3R5bGU+CiAgICAke1FgCiAgICAgIC5kZW1vLWNvbnRhaW5lciB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICAgIGdhcDogMjRweDsKICAgICAgICBwYWRkaW5nOiAyNHB4OwogICAgICAgIG1heC13aWR0aDogMTIwMHB4OwogICAgICAgIG1hcmdpbjogMCBhdXRvOwogICAgICB9CiAgICAgIAogICAgICBkZWVzLXBhbmVsIHsKICAgICAgICBtYXJnaW4tYm90dG9tOiAyNHB4OwogICAgICB9CiAgICAgIAogICAgICAuZGVtby1yb3cgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgZ2FwOiA0OHB4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgZmxleC13cmFwOiB3cmFwOwogICAgICB9CiAgICAgIAogICAgICAuZGVtby1vdXRwdXQgewogICAgICAgIG1hcmdpbi10b3A6IDE2cHg7CiAgICAgICAgcGFkZGluZzogMTJweDsKICAgICAgICBiYWNrZ3JvdW5kOiByZ2JhKDAsIDEwNSwgMjQyLCAwLjEpOwogICAgICAgIGJvcmRlci1yYWRpdXM6IDRweDsKICAgICAgICBmb250LXNpemU6IDE0cHg7CiAgICAgICAgZm9udC1mYW1pbHk6IG1vbm9zcGFjZTsKICAgICAgICB3b3JkLWJyZWFrOiBicmVhay1hbGw7CiAgICAgICAgbWF4LWhlaWdodDogMTAwcHg7CiAgICAgICAgb3ZlcmZsb3cteTogYXV0bzsKICAgICAgfQogICAgICAKICAgICAgLmZlYXR1cmUtbGlzdCB7CiAgICAgICAgbWFyZ2luLXRvcDogMTZweDsKICAgICAgICBwYWRkaW5nLWxlZnQ6IDIwcHg7CiAgICAgIH0KICAgICAgCiAgICAgIC5mZWF0dXJlLWxpc3QgbGkgewogICAgICAgIG1hcmdpbi1ib3R0b206IDhweDsKICAgICAgfQogICAgYH0KICA8L3N0eWxlPgogIAogIDxkaXYgY2xhc3M9ImRlbW8tY29udGFpbmVyIj4KICAgIDxkZWVzLWRlbW93cmFwcGVyIC5ydW5BZnRlclJlbmRlcj0ke2FzeW5jIHQ9PntsZXQgZT10LnF1ZXJ5U2VsZWN0b3IoJ2RlZXMtaW5wdXQtcHJvZmlsZXBpY3R1cmVbc2hhcGU9InJvdW5kIl0nKTtlJiZlLmFkZEV2ZW50TGlzdGVuZXIoImNoYW5nZSIsYT0+e2xldCBpPWEudGFyZ2V0O2NvbnNvbGUubG9nKCJSb3VuZCBwcm9maWxlIHBpY3R1cmUgY2hhbmdlZDoiLGkudmFsdWU/LnN1YnN0cmluZygwLDUwKSsiLi4uIil9KX19PgogICAgICA8ZGVlcy1wYW5lbCAudGl0bGU9JHsiUHJvZmlsZSBQaWN0dXJlIElucHV0In0gLnN1YnRpdGxlPSR7IkJhc2ljIHVzYWdlIHdpdGggcm91bmQgYW5kIHNxdWFyZSBzaGFwZXMifT4KICAgICAgICA8ZGl2IGNsYXNzPSJkZW1vLXJvdyI+CiAgICAgICAgICA8ZGVlcy1pbnB1dC1wcm9maWxlcGljdHVyZQogICAgICAgICAgICBsYWJlbD0iUHJvZmlsZSBQaWN0dXJlIChSb3VuZCkiCiAgICAgICAgICAgIGRlc2NyaXB0aW9uPSJDbGljayB0byB1cGxvYWQgb3IgZHJhZyAmIGRyb3AgYW4gaW1hZ2UiCiAgICAgICAgICAgIHNoYXBlPSJyb3VuZCIKICAgICAgICAgICAgc2l6ZT0iMTIwIgogICAgICAgICAgPjwvZGVlcy1pbnB1dC1wcm9maWxlcGljdHVyZT4KICAgICAgICAgIAogICAgICAgICAgPGRlZXMtaW5wdXQtcHJvZmlsZXBpY3R1cmUKICAgICAgICAgICAgbGFiZWw9IlByb2ZpbGUgUGljdHVyZSAoU3F1YXJlKSIKICAgICAgICAgICAgZGVzY3JpcHRpb249IlN1cHBvcnRzIEpQRUcsIFBORywgYW5kIFdlYlAgZm9ybWF0cyIKICAgICAgICAgICAgc2hhcGU9InNxdWFyZSIKICAgICAgICAgICAgc2l6ZT0iMTIwIgogICAgICAgICAgPjwvZGVlcy1pbnB1dC1wcm9maWxlcGljdHVyZT4KICAgICAgICA8L2Rpdj4KICAgICAgPC9kZWVzLXBhbmVsPgogICAgPC9kZWVzLWRlbW93cmFwcGVyPgoKICAgIDxkZWVzLWRlbW93cmFwcGVyIC5ydW5BZnRlclJlbmRlcj0ke2FzeW5jIHQ9Pnt0LnF1ZXJ5U2VsZWN0b3JBbGwoImRlZXMtaW5wdXQtcHJvZmlsZXBpY3R1cmUiKS5mb3JFYWNoKGE9PnthLmFkZEV2ZW50TGlzdGVuZXIoImNoYW5nZSIsaT0+e2xldCByPWkudGFyZ2V0O2NvbnNvbGUubG9nKGBQcm9maWxlIChzaXplICR7ci5zaXplfSkgY2hhbmdlZGApfSl9KX19PgogICAgICA8ZGVlcy1wYW5lbCAudGl0bGU9JHsiU2l6ZSBWYXJpYXRpb25zIn0gLnN1YnRpdGxlPSR7IlByb2ZpbGUgcGljdHVyZXMgaW4gZGlmZmVyZW50IHNpemVzIn0+CiAgICAgICAgPGRpdiBjbGFzcz0iZGVtby1yb3ciPgogICAgICAgICAgPGRlZXMtaW5wdXQtcHJvZmlsZXBpY3R1cmUKICAgICAgICAgICAgbGFiZWw9IlNtYWxsICg4MHB4KSIKICAgICAgICAgICAgc2hhcGU9InJvdW5kIgogICAgICAgICAgICBzaXplPSI4MCIKICAgICAgICAgID48L2RlZXMtaW5wdXQtcHJvZmlsZXBpY3R1cmU+CiAgICAgICAgICAKICAgICAgICAgIDxkZWVzLWlucHV0LXByb2ZpbGVwaWN0dXJlCiAgICAgICAgICAgIGxhYmVsPSJNZWRpdW0gKDEyMHB4KSIKICAgICAgICAgICAgc2hhcGU9InJvdW5kIgogICAgICAgICAgICBzaXplPSIxMjAiCiAgICAgICAgICA+PC9kZWVzLWlucHV0LXByb2ZpbGVwaWN0dXJlPgogICAgICAgICAgCiAgICAgICAgICA8ZGVlcy1pbnB1dC1wcm9maWxlcGljdHVyZQogICAgICAgICAgICBsYWJlbD0iTGFyZ2UgKDE2MHB4KSIKICAgICAgICAgICAgc2hhcGU9InJvdW5kIgogICAgICAgICAgICBzaXplPSIxNjAiCiAgICAgICAgICA+PC9kZWVzLWlucHV0LXByb2ZpbGVwaWN0dXJlPgogICAgICAgIDwvZGl2PgogICAgICA8L2RlZXMtcGFuZWw+CiAgICA8L2RlZXMtZGVtb3dyYXBwZXI+CgogICAgPGRlZXMtZGVtb3dyYXBwZXIgLnJ1bkFmdGVyUmVuZGVyPSR7YXN5bmMgdD0+e2xldCBlPSJkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUIzYVdSMGFEMGlNakF3SWlCb1pXbG5hSFE5SWpJd01DSWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklqNEtJQ0E4WkdWbWN6NEtJQ0FnSUR4c2FXNWxZWEpIY21Ga2FXVnVkQ0JwWkQwaVozSmhaR2xsYm5RaUlIZ3hQU0l3SlNJZ2VURTlJakFsSWlCNE1qMGlNVEF3SlNJZ2VUSTlJakV3TUNVaVBnb2dJQ0FnSUNBOGMzUnZjQ0J2Wm1aelpYUTlJakFsSWlCemRHOXdMV052Ykc5eVBTSWpOalkzWldWaElpQXZQZ29nSUNBZ0lDQThjM1J2Y0NCdlptWnpaWFE5SWpFd01DVWlJSE4wYjNBdFkyOXNiM0k5SWlNM05qUmlZVElpSUM4K0NpQWdJQ0E4TDJ4cGJtVmhja2R5WVdScFpXNTBQZ29nSUR3dlpHVm1jejRLSUNBOGNtVmpkQ0IzYVdSMGFEMGlNakF3SWlCb1pXbG5hSFE5SWpJd01DSWdabWxzYkQwaWRYSnNLQ05uY21Ga2FXVnVkQ2tpSUM4K0NpQWdQSFJsZUhRZ2VEMGlOVEFsSWlCNVBTSTFNQ1VpSUdSdmJXbHVZVzUwTFdKaGMyVnNhVzVsUFNKdGFXUmtiR1VpSUhSbGVIUXRZVzVqYUc5eVBTSnRhV1JrYkdVaUlHWnZiblF0Wm1GdGFXeDVQU0pCY21saGJDSWdabTl1ZEMxemFYcGxQU0k0TUNJZ1ptbHNiRDBpZDJocGRHVWlQa3BFUEM5MFpYaDBQZ284TDNOMlp6ND0iLGE9dC5xdWVyeVNlbGVjdG9yKCIjcHJlZmlsbGVkLXByb2ZpbGUiKTthJiYoYS52YWx1ZT1lLGEuYWRkRXZlbnRMaXN0ZW5lcigiY2hhbmdlIixpPT57bGV0IHI9aS50YXJnZXQscz10LnF1ZXJ5U2VsZWN0b3IoIiNwcmVmaWxsZWQtb3V0cHV0Iik7cyYmKHMudGV4dENvbnRlbnQ9ci52YWx1ZT9gSW1hZ2UgZGF0YTogJHtyLnZhbHVlLnN1YnN0cmluZygwLDgwKX0uLi5gOiJObyBpbWFnZSBzZWxlY3RlZCIpfSkpfX0+CiAgICAgIDxkZWVzLXBhbmVsIC50aXRsZT0keyJQcmUtZmlsbGVkIGFuZCBWYWx1ZSBCaW5kaW5nIn0gLnN1YnRpdGxlPSR7IlByb2ZpbGUgcGljdHVyZSB3aXRoIGluaXRpYWwgdmFsdWUgYW5kIGNoYW5nZSB0cmFja2luZyJ9PgogICAgICAgIDxkZWVzLWlucHV0LXByb2ZpbGVwaWN0dXJlCiAgICAgICAgICBpZD0icHJlZmlsbGVkLXByb2ZpbGUiCiAgICAgICAgICBsYWJlbD0iRWRpdCBFeGlzdGluZyBQcm9maWxlIgogICAgICAgICAgZGVzY3JpcHRpb249IkNsaWNrIHRoZSBlZGl0IGJ1dHRvbiB0byBjaGFuZ2Ugb3IgZGVsZXRlIHRvIHJlbW92ZSIKICAgICAgICAgIHNoYXBlPSJyb3VuZCIKICAgICAgICAgIHNpemU9IjE1MCIKICAgICAgICA+PC9kZWVzLWlucHV0LXByb2ZpbGVwaWN0dXJlPgogICAgICAgIAogICAgICAgIDxkaXYgaWQ9InByZWZpbGxlZC1vdXRwdXQiIGNsYXNzPSJkZW1vLW91dHB1dCI+CiAgICAgICAgICBJbWFnZSBkYXRhIHdpbGwgYXBwZWFyIGhlcmUgd2hlbiBjaGFuZ2VkCiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGVlcy1wYW5lbD4KICAgIDwvZGVlcy1kZW1vd3JhcHBlcj4KCiAgICA8ZGVlcy1kZW1vd3JhcHBlciAucnVuQWZ0ZXJSZW5kZXI9JHthc3luYyB0PT57bGV0IGU9dC5xdWVyeVNlbGVjdG9yKCIjZGlzYWJsZWQtcHJvZmlsZSIpO2UmJihlLnZhbHVlPSJkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUIzYVdSMGFEMGlNakF3SWlCb1pXbG5hSFE5SWpJd01DSWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklqNEtJQ0E4Y21WamRDQjNhV1IwYUQwaU1qQXdJaUJvWldsbmFIUTlJakl3TUNJZ1ptbHNiRDBpSTJOalkyTmpZeUlnTHo0S0lDQThkR1Y0ZENCNFBTSTFNQ1VpSUhrOUlqVXdKU0lnWkc5dGFXNWhiblF0WW1GelpXeHBibVU5SW0xcFpHUnNaU0lnZEdWNGRDMWhibU5vYjNJOUltMXBaR1JzWlNJZ1ptOXVkQzFtWVcxcGJIazlJa0Z5YVdGc0lpQm1iMjUwTFhOcGVtVTlJall3SWlCbWFXeHNQU0ozYUdsMFpTSStUa0U4TDNSbGVIUStDand2YzNablBnPT0iKX19PgogICAgICA8ZGVlcy1wYW5lbCAudGl0bGU9JHsiRm9ybSBTdGF0ZXMifSAuc3VidGl0bGU9JHsiRGlmZmVyZW50IHN0YXRlcyBhbmQgY29uZmlndXJhdGlvbnMifT4KICAgICAgICA8ZGl2IGNsYXNzPSJkZW1vLXJvdyI+CiAgICAgICAgICA8ZGVlcy1pbnB1dC1wcm9maWxlcGljdHVyZQogICAgICAgICAgICBsYWJlbD0iUmVxdWlyZWQgRmllbGQiCiAgICAgICAgICAgIGRlc2NyaXB0aW9uPSJUaGlzIGZpZWxkIGlzIHJlcXVpcmVkIgogICAgICAgICAgICBzaGFwZT0icm91bmQiCiAgICAgICAgICAgIC5yZXF1aXJlZD0keyEwfQogICAgICAgICAgPjwvZGVlcy1pbnB1dC1wcm9maWxlcGljdHVyZT4KICAgICAgICAgIAogICAgICAgICAgPGRlZXMtaW5wdXQtcHJvZmlsZXBpY3R1cmUKICAgICAgICAgICAgaWQ9ImRpc2FibGVkLXByb2ZpbGUiCiAgICAgICAgICAgIGxhYmVsPSJEaXNhYmxlZCBTdGF0ZSIKICAgICAgICAgICAgZGVzY3JpcHRpb249IkNhbm5vdCBiZSBlZGl0ZWQiCiAgICAgICAgICAgIHNoYXBlPSJzcXVhcmUiCiAgICAgICAgICAgIC5kaXNhYmxlZD0keyEwfQogICAgICAgICAgPjwvZGVlcy1pbnB1dC1wcm9maWxlcGljdHVyZT4KICAgICAgICAgIAogICAgICAgICAgPGRlZXMtaW5wdXQtcHJvZmlsZXBpY3R1cmUKICAgICAgICAgICAgbGFiZWw9IlVwbG9hZCBPbmx5IgogICAgICAgICAgICBkZXNjcmlwdGlvbj0iRGVsZXRlIG5vdCBhbGxvd2VkIgogICAgICAgICAgICBzaGFwZT0icm91bmQiCiAgICAgICAgICAgIC5hbGxvd0RlbGV0ZT0keyExfQogICAgICAgICAgPjwvZGVlcy1pbnB1dC1wcm9maWxlcGljdHVyZT4KICAgICAgICA8L2Rpdj4KICAgICAgPC9kZWVzLXBhbmVsPgogICAgPC9kZWVzLWRlbW93cmFwcGVyPgoKICAgIDxkZWVzLWRlbW93cmFwcGVyPgogICAgICA8ZGVlcy1wYW5lbCAudGl0bGU9JHsiRmVhdHVyZXMifSAuc3VidGl0bGU9JHsiQ29tcGxldGUgZmVhdHVyZSBzZXQgb2YgdGhlIHByb2ZpbGUgcGljdHVyZSBpbnB1dCJ9PgogICAgICAgIDx1bCBjbGFzcz0iZmVhdHVyZS1saXN0Ij4KICAgICAgICAgIDxsaT48c3Ryb25nPkltYWdlIFVwbG9hZDo8L3N0cm9uZz4gQ2xpY2sgdG8gdXBsb2FkIG9yIGRyYWcgJiBkcm9wIGltYWdlczwvbGk+CiAgICAgICAgICA8bGk+PHN0cm9uZz5JbWFnZSBDcm9wcGluZzo8L3N0cm9uZz4gSW50ZXJhY3RpdmUgY3JvcCB0b29sIHdpdGggcmVzaXplIGhhbmRsZXM8L2xpPgogICAgICAgICAgPGxpPjxzdHJvbmc+U2hhcGUgU3VwcG9ydDo8L3N0cm9uZz4gUm91bmQgb3Igc3F1YXJlIHByb2ZpbGUgcGljdHVyZXM8L2xpPgogICAgICAgICAgPGxpPjxzdHJvbmc+U2l6ZSBDdXN0b21pemF0aW9uOjwvc3Ryb25nPiBBZGp1c3RhYmxlIGRpbWVuc2lvbnM8L2xpPgogICAgICAgICAgPGxpPjxzdHJvbmc+UHJldmlldyAmIEVkaXQ6PC9zdHJvbmc+IEhvdmVyIG92ZXJsYXkgd2l0aCBlZGl0IGFuZCBkZWxldGUgb3B0aW9uczwvbGk+CiAgICAgICAgICA8bGk+PHN0cm9uZz5GaWxlIFZhbGlkYXRpb246PC9zdHJvbmc+IEZvcm1hdCBhbmQgc2l6ZSByZXN0cmljdGlvbnM8L2xpPgogICAgICAgICAgPGxpPjxzdHJvbmc+UmVzcG9uc2l2ZSBEZXNpZ246PC9zdHJvbmc+IFdvcmtzIG9uIGRlc2t0b3AgYW5kIG1vYmlsZSBkZXZpY2VzPC9saT4KICAgICAgICAgIDxsaT48c3Ryb25nPkZvcm0gSW50ZWdyYXRpb246PC9zdHJvbmc+IFN0YW5kYXJkIGZvcm0gdmFsdWUgYmluZGluZyBhbmQgdmFsaWRhdGlvbjwvbGk+CiAgICAgICAgICA8bGk+PHN0cm9uZz5BY2Nlc3NpYmlsaXR5Ojwvc3Ryb25nPiBLZXlib2FyZCBuYXZpZ2F0aW9uIGFuZCBzY3JlZW4gcmVhZGVyIHN1cHBvcnQ8L2xpPgogICAgICAgICAgPGxpPjxzdHJvbmc+Wi1JbmRleCBNYW5hZ2VtZW50Ojwvc3Ryb25nPiBQcm9wZXIgbW9kYWwgc3RhY2tpbmcgd2l0aCByZWdpc3RyeTwvbGk+CiAgICAgICAgPC91bD4KICAgICAgICAKICAgICAgICA8ZGl2IHN0eWxlPSJtYXJnaW4tdG9wOiAyNHB4OyI+CiAgICAgICAgICA8c3Ryb25nPlN1cHBvcnRlZCBGb3JtYXRzOjwvc3Ryb25nPiBKUEVHLCBQTkcsIFdlYlA8YnI+CiAgICAgICAgICA8c3Ryb25nPk1heCBGaWxlIFNpemU6PC9zdHJvbmc+IDVNQiAoY29uZmlndXJhYmxlKTxicj4KICAgICAgICAgIDxzdHJvbmc+T3V0cHV0IEZvcm1hdDo8L3N0cm9uZz4gQmFzZTY0IGVuY29kZWQgSlBFRwogICAgICAgIDwvZGl2PgogICAgICA8L2RlZXMtcGFuZWw+CiAgICA8L2RlZXMtZGVtb3dyYXBwZXI+CiAgPC9kaXY+CmB9KTt2YXIgRGEscDEsSGd0LEVWPWIoKCk9Pnt1ZSgpO18xKCk7RHQoKTtUbCgpO09ndCgpO0JndCgpO3FlKCk7RGE9ZnVuY3Rpb24odCxlLGEsaSxyLHMpe2Z1bmN0aW9uIG4oeCl7aWYoeCE9PXZvaWQgMCYmdHlwZW9mIHghPSJmdW5jdGlvbiIpdGhyb3cgbmV3IFR5cGVFcnJvcigiRnVuY3Rpb24gZXhwZWN0ZWQiKTtyZXR1cm4geH1mb3IodmFyIG89aS5raW5kLGQ9bz09PSJnZXR0ZXIiPyJnZXQiOm89PT0ic2V0dGVyIj8ic2V0IjoidmFsdWUiLGM9IWUmJnQ/aS5zdGF0aWM/dDp0LnByb3RvdHlwZTpudWxsLGg9ZXx8KGM/T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihjLGkubmFtZSk6e30pLGwsZj0hMSxnPWEubGVuZ3RoLTE7Zz49MDtnLS0pe3ZhciB5PXt9O2Zvcih2YXIgdiBpbiBpKXlbdl09dj09PSJhY2Nlc3MiP3t9Omlbdl07Zm9yKHZhciB2IGluIGkuYWNjZXNzKXkuYWNjZXNzW3ZdPWkuYWNjZXNzW3ZdO3kuYWRkSW5pdGlhbGl6ZXI9ZnVuY3Rpb24oeCl7aWYoZil0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgYWRkIGluaXRpYWxpemVycyBhZnRlciBkZWNvcmF0aW9uIGhhcyBjb21wbGV0ZWQiKTtzLnB1c2gobih4fHxudWxsKSl9O3ZhciBtPSgwLGFbZ10pKG89PT0iYWNjZXNzb3IiP3tnZXQ6aC5nZXQsc2V0Omguc2V0fTpoW2RdLHkpO2lmKG89PT0iYWNjZXNzb3IiKXtpZihtPT09dm9pZCAwKWNvbnRpbnVlO2lmKG09PT1udWxsfHx0eXBlb2YgbSE9Im9iamVjdCIpdGhyb3cgbmV3IFR5cGVFcnJvcigiT2JqZWN0IGV4cGVjdGVkIik7KGw9bihtLmdldCkpJiYoaC5nZXQ9bCksKGw9bihtLnNldCkpJiYoaC5zZXQ9bCksKGw9bihtLmluaXQpKSYmci51bnNoaWZ0KGwpfWVsc2UobD1uKG0pKSYmKG89PT0iZmllbGQiP3IudW5zaGlmdChsKTpoW2RdPWwpfWMmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShjLGkubmFtZSxoKSxmPSEwfSxwMT1mdW5jdGlvbih0LGUsYSl7Zm9yKHZhciBpPWFyZ3VtZW50cy5sZW5ndGg+MixyPTA7cjxlLmxlbmd0aDtyKyspYT1pP2Vbcl0uY2FsbCh0LGEpOmVbcl0uY2FsbCh0KTtyZXR1cm4gaT9hOnZvaWQgMH0sSGd0PSgoKT0+e2xldCB0PVtwZSgiZGVlcy1pbnB1dC1wcm9maWxlcGljdHVyZSIpXSxlLGE9W10saSxyPVhlLHMsbj1bXSxvPVtdLGQsYz1bXSxoPVtdLGwsZj1bXSxnPVtdLHksdj1bXSxtPVtdLHgsTT1bXSxTPVtdLEYsXz1bXSxrPVtdLE4sTD1bXSxBPVtdLHEsQz1bXSx6PVtdLEUsVD1bXSwkPVtdLFYsUj1bXSxVPVtdLHJlLGo9W10sbWU9W10sd2UsSD1bXSxjZT1bXSxrZSxXPVtdLEQ9W107dmFyIE89Y2xhc3MgZXh0ZW5kcyBye3N0YXRpY3tpPXRoaXN9c3RhdGlje2xldCBaPXR5cGVvZiBTeW1ib2w9PSJmdW5jdGlvbiImJlN5bWJvbC5tZXRhZGF0YT9PYmplY3QuY3JlYXRlKHJbU3ltYm9sLm1ldGFkYXRhXT8/bnVsbCk6dm9pZCAwO3M9W0koe3R5cGU6U3RyaW5nfSldLGQ9W0koe3R5cGU6U3RyaW5nfSldLGw9W0koe3R5cGU6TnVtYmVyfSldLHk9W0koe3R5cGU6U3RyaW5nfSldLHg9W0koe3R5cGU6Qm9vbGVhbn0pXSxGPVtJKHt0eXBlOkJvb2xlYW59KV0sTj1bSSh7dHlwZTpOdW1iZXJ9KV0scT1bSSh7dHlwZTpBcnJheX0pXSxFPVtJKHt0eXBlOk51bWJlcn0pXSxWPVtJKHt0eXBlOk51bWJlcn0pXSxyZT1bSigpXSx3ZT1bSigpXSxrZT1bSigpXSxEYSh0aGlzLG51bGwscyx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InZhbHVlIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpZPT4idmFsdWUiaW4gWSxnZXQ6WT0+WS52YWx1ZSxzZXQ6KFksb2UpPT57WS52YWx1ZT1vZX19LG1ldGFkYXRhOlp9LG4sbyksRGEodGhpcyxudWxsLGQse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJzaGFwZSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6WT0+InNoYXBlImluIFksZ2V0Olk9Plkuc2hhcGUsc2V0OihZLG9lKT0+e1kuc2hhcGU9b2V9fSxtZXRhZGF0YTpafSxjLGgpLERhKHRoaXMsbnVsbCxsLHtraW5kOiJhY2Nlc3NvciIsbmFtZToic2l6ZSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6WT0+InNpemUiaW4gWSxnZXQ6WT0+WS5zaXplLHNldDooWSxvZSk9PntZLnNpemU9b2V9fSxtZXRhZGF0YTpafSxmLGcpLERhKHRoaXMsbnVsbCx5LHtraW5kOiJhY2Nlc3NvciIsbmFtZToicGxhY2Vob2xkZXIiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOlk9PiJwbGFjZWhvbGRlciJpbiBZLGdldDpZPT5ZLnBsYWNlaG9sZGVyLHNldDooWSxvZSk9PntZLnBsYWNlaG9sZGVyPW9lfX0sbWV0YWRhdGE6Wn0sdixtKSxEYSh0aGlzLG51bGwseCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImFsbG93VXBsb2FkIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpZPT4iYWxsb3dVcGxvYWQiaW4gWSxnZXQ6WT0+WS5hbGxvd1VwbG9hZCxzZXQ6KFksb2UpPT57WS5hbGxvd1VwbG9hZD1vZX19LG1ldGFkYXRhOlp9LE0sUyksRGEodGhpcyxudWxsLEYse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJhbGxvd0RlbGV0ZSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6WT0+ImFsbG93RGVsZXRlImluIFksZ2V0Olk9PlkuYWxsb3dEZWxldGUsc2V0OihZLG9lKT0+e1kuYWxsb3dEZWxldGU9b2V9fSxtZXRhZGF0YTpafSxfLGspLERhKHRoaXMsbnVsbCxOLHtraW5kOiJhY2Nlc3NvciIsbmFtZToibWF4RmlsZVNpemUiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOlk9PiJtYXhGaWxlU2l6ZSJpbiBZLGdldDpZPT5ZLm1heEZpbGVTaXplLHNldDooWSxvZSk9PntZLm1heEZpbGVTaXplPW9lfX0sbWV0YWRhdGE6Wn0sTCxBKSxEYSh0aGlzLG51bGwscSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImFjY2VwdGVkRm9ybWF0cyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6WT0+ImFjY2VwdGVkRm9ybWF0cyJpbiBZLGdldDpZPT5ZLmFjY2VwdGVkRm9ybWF0cyxzZXQ6KFksb2UpPT57WS5hY2NlcHRlZEZvcm1hdHM9b2V9fSxtZXRhZGF0YTpafSxDLHopLERhKHRoaXMsbnVsbCxFLHtraW5kOiJhY2Nlc3NvciIsbmFtZToib3V0cHV0U2l6ZSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6WT0+Im91dHB1dFNpemUiaW4gWSxnZXQ6WT0+WS5vdXRwdXRTaXplLHNldDooWSxvZSk9PntZLm91dHB1dFNpemU9b2V9fSxtZXRhZGF0YTpafSxULCQpLERhKHRoaXMsbnVsbCxWLHtraW5kOiJhY2Nlc3NvciIsbmFtZToib3V0cHV0UXVhbGl0eSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6WT0+Im91dHB1dFF1YWxpdHkiaW4gWSxnZXQ6WT0+WS5vdXRwdXRRdWFsaXR5LHNldDooWSxvZSk9PntZLm91dHB1dFF1YWxpdHk9b2V9fSxtZXRhZGF0YTpafSxSLFUpLERhKHRoaXMsbnVsbCxyZSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImlzSG92ZXJlZCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6WT0+ImlzSG92ZXJlZCJpbiBZLGdldDpZPT5ZLmlzSG92ZXJlZCxzZXQ6KFksb2UpPT57WS5pc0hvdmVyZWQ9b2V9fSxtZXRhZGF0YTpafSxqLG1lKSxEYSh0aGlzLG51bGwsd2Use2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJpc0RyYWdnaW5nIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpZPT4iaXNEcmFnZ2luZyJpbiBZLGdldDpZPT5ZLmlzRHJhZ2dpbmcsc2V0OihZLG9lKT0+e1kuaXNEcmFnZ2luZz1vZX19LG1ldGFkYXRhOlp9LEgsY2UpLERhKHRoaXMsbnVsbCxrZSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImlzTG9hZGluZyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6WT0+ImlzTG9hZGluZyJpbiBZLGdldDpZPT5ZLmlzTG9hZGluZyxzZXQ6KFksb2UpPT57WS5pc0xvYWRpbmc9b2V9fSxtZXRhZGF0YTpafSxXLEQpLERhKG51bGwsZT17dmFsdWU6aX0sdCx7a2luZDoiY2xhc3MiLG5hbWU6aS5uYW1lLG1ldGFkYXRhOlp9LG51bGwsYSksTz1pPWUudmFsdWUsWiYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGksU3ltYm9sLm1ldGFkYXRhLHtlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMCx2YWx1ZTpafSl9c3RhdGljIGRlbW89Umd0O3N0YXRpYyBkZW1vR3JvdXBzPVsiSW5wdXQiXTsjZT1wMSh0aGlzLG4sIiIpO2dldCB2YWx1ZSgpe3JldHVybiB0aGlzLiNlfXNldCB2YWx1ZShaKXt0aGlzLiNlPVp9I3Q9KHAxKHRoaXMsbykscDEodGhpcyxjLCJyb3VuZCIpKTtnZXQgc2hhcGUoKXtyZXR1cm4gdGhpcy4jdH1zZXQgc2hhcGUoWil7dGhpcy4jdD1afSNhPShwMSh0aGlzLGgpLHAxKHRoaXMsZiwxMjApKTtnZXQgc2l6ZSgpe3JldHVybiB0aGlzLiNhfXNldCBzaXplKFope3RoaXMuI2E9Wn0jaT0ocDEodGhpcyxnKSxwMSh0aGlzLHYsIiIpKTtnZXQgcGxhY2Vob2xkZXIoKXtyZXR1cm4gdGhpcy4jaX1zZXQgcGxhY2Vob2xkZXIoWil7dGhpcy4jaT1afSNyPShwMSh0aGlzLG0pLHAxKHRoaXMsTSwhMCkpO2dldCBhbGxvd1VwbG9hZCgpe3JldHVybiB0aGlzLiNyfXNldCBhbGxvd1VwbG9hZChaKXt0aGlzLiNyPVp9I3M9KHAxKHRoaXMsUykscDEodGhpcyxfLCEwKSk7Z2V0IGFsbG93RGVsZXRlKCl7cmV0dXJuIHRoaXMuI3N9c2V0IGFsbG93RGVsZXRlKFope3RoaXMuI3M9Wn0jbj0ocDEodGhpcyxrKSxwMSh0aGlzLEwsNSoxMDI0KjEwMjQpKTtnZXQgbWF4RmlsZVNpemUoKXtyZXR1cm4gdGhpcy4jbn1zZXQgbWF4RmlsZVNpemUoWil7dGhpcy4jbj1afSNvPShwMSh0aGlzLEEpLHAxKHRoaXMsQyxbImltYWdlL2pwZWciLCJpbWFnZS9wbmciLCJpbWFnZS93ZWJwIl0pKTtnZXQgYWNjZXB0ZWRGb3JtYXRzKCl7cmV0dXJuIHRoaXMuI299c2V0IGFjY2VwdGVkRm9ybWF0cyhaKXt0aGlzLiNvPVp9I2w9KHAxKHRoaXMseikscDEodGhpcyxULDgwMCkpO2dldCBvdXRwdXRTaXplKCl7cmV0dXJuIHRoaXMuI2x9c2V0IG91dHB1dFNpemUoWil7dGhpcy4jbD1afSNjPShwMSh0aGlzLCQpLHAxKHRoaXMsUiwuOTUpKTtnZXQgb3V0cHV0UXVhbGl0eSgpe3JldHVybiB0aGlzLiNjfXNldCBvdXRwdXRRdWFsaXR5KFope3RoaXMuI2M9Wn0jZD0ocDEodGhpcyxVKSxwMSh0aGlzLGosITEpKTtnZXQgaXNIb3ZlcmVkKCl7cmV0dXJuIHRoaXMuI2R9c2V0IGlzSG92ZXJlZChaKXt0aGlzLiNkPVp9I2g9KHAxKHRoaXMsbWUpLHAxKHRoaXMsSCwhMSkpO2dldCBpc0RyYWdnaW5nKCl7cmV0dXJuIHRoaXMuI2h9c2V0IGlzRHJhZ2dpbmcoWil7dGhpcy4jaD1afSNwPShwMSh0aGlzLGNlKSxwMSh0aGlzLFcsITEpKTtnZXQgaXNMb2FkaW5nKCl7cmV0dXJuIHRoaXMuI3B9c2V0IGlzTG9hZGluZyhaKXt0aGlzLiNwPVp9bW9kYWxJbnN0YW5jZT0ocDEodGhpcyxEKSxudWxsKTtzdGF0aWMgc3R5bGVzPVtDZSwuLi5YZS5iYXNlU3R5bGVzLHAuZGVmYXVsdFN0eWxlcyxRYAogICAgICAvKiBUT0RPOiBNaWdyYXRlIGhhcmRjb2RlZCB2YWx1ZXMgdG8gLS1kZWVzLSogQ1NTIHZhcmlhYmxlcyAqLwogICAgICA6aG9zdCB7CiAgICAgICAgZGlzcGxheTogYmxvY2s7CiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICB9CgogICAgICAuaW5wdXQtd3JhcHBlciB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICAgIGdhcDogMTZweDsKICAgICAgfQoKICAgICAgLnByb2ZpbGUtY29udGFpbmVyIHsKICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrOwogICAgICAgIGN1cnNvcjogcG9pbnRlcjsKICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC4zcyBlYXNlOwogICAgICB9CgogICAgICAucHJvZmlsZS1jb250YWluZXI6aG92ZXIgewogICAgICAgIHRyYW5zZm9ybTogc2NhbGUoMS4wMik7CiAgICAgIH0KCiAgICAgIC5wcm9maWxlLXBpY3R1cmUgewogICAgICAgIHdpZHRoOiB2YXIoLS1zaXplLCAxMjBweCk7CiAgICAgICAgaGVpZ2h0OiB2YXIoLS1zaXplLCAxMjBweCk7CiAgICAgICAgYmFja2dyb3VuZDogJHtwLmJkVGhlbWUoIiNmNWY1ZjUiLCIjMTgxODFiIil9OwogICAgICAgIGJvcmRlcjogM3B4IHNvbGlkICR7cC5iZFRoZW1lKCIjZTVlN2ViIiwiIzI3MjcyYSIpfTsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7CiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuM3MgZWFzZTsKICAgICAgfQoKICAgICAgLnByb2ZpbGUtcGljdHVyZS5yb3VuZCB7CiAgICAgICAgYm9yZGVyLXJhZGl1czogNTAlOwogICAgICB9CgogICAgICAucHJvZmlsZS1waWN0dXJlLnNxdWFyZSB7CiAgICAgICAgYm9yZGVyLXJhZGl1czogMTJweDsKICAgICAgfQoKICAgICAgLnByb2ZpbGUtcGljdHVyZS5kcmFnZ2luZyB7CiAgICAgICAgYm9yZGVyLWNvbG9yOiAke3AuYmRUaGVtZSgiIzNiODJmNiIsIiM2MGE1ZmEiKX07CiAgICAgICAgYm94LXNoYWRvdzogMCAwIDAgNHB4ICR7cC5iZFRoZW1lKCJyZ2JhKDU5LCAxMzAsIDI0NiwgMC4xNSkiLCJyZ2JhKDk2LCAxNjUsIDI1MCwgMC4xNSkiKX07CiAgICAgIH0KCiAgICAgIC5wcm9maWxlLXBpY3R1cmU6aG92ZXIgewogICAgICAgIGJvcmRlci1jb2xvcjogJHtwLmJkVGhlbWUoIiNkNGQ0ZDgiLCIjM2YzZjQ2Iil9OwogICAgICB9CgogICAgICAucHJvZmlsZS1waWN0dXJlOmRpc2FibGVkIHsKICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkOwogICAgICAgIG9wYWNpdHk6IDAuNTsKICAgICAgfQoKICAgICAgLnByb2ZpbGUtaW1hZ2UgewogICAgICAgIHdpZHRoOiAxMDAlOwogICAgICAgIGhlaWdodDogMTAwJTsKICAgICAgICBvYmplY3QtZml0OiBjb3ZlcjsKICAgICAgfQoKICAgICAgLnBsYWNlaG9sZGVyLWljb24gewogICAgICAgIGNvbG9yOiAke3AuYmRUaGVtZSgiIzcxNzE3YSIsIiNhMWExYWEiKX07CiAgICAgIH0KCiAgICAgIC5vdmVybGF5IHsKICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgICAgdG9wOiAwOwogICAgICAgIGxlZnQ6IDA7CiAgICAgICAgcmlnaHQ6IDA7CiAgICAgICAgYm90dG9tOiAwOwogICAgICAgIGJhY2tncm91bmQ6IHJnYmEoMCwgMCwgMCwgMC42KTsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7CiAgICAgICAgb3BhY2l0eTogMDsKICAgICAgICB0cmFuc2l0aW9uOiBvcGFjaXR5IDAuM3MgZWFzZTsKICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTsKICAgICAgfQoKICAgICAgLnByb2ZpbGUtY29udGFpbmVyOmhvdmVyIC5vdmVybGF5IHsKICAgICAgICBvcGFjaXR5OiAxOwogICAgICB9CgogICAgICAub3ZlcmxheS1jb250ZW50IHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGdhcDogMTJweDsKICAgICAgfQoKICAgICAgLm92ZXJsYXktYnV0dG9uIHsKICAgICAgICB3aWR0aDogNDBweDsKICAgICAgICBoZWlnaHQ6IDQwcHg7CiAgICAgICAgYm9yZGVyLXJhZGl1czogNTAlOwogICAgICAgIGJhY2tncm91bmQ6ICR7cC5iZFRoZW1lKCJyZ2JhKDI1NSwgMjU1LCAyNTUsIDAuOTUpIiwicmdiYSgzOSwgMzksIDQyLCAwLjk1KSIpfTsKICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAke3AuYmRUaGVtZSgicmdiYSgwLCAwLCAwLCAwLjEpIiwicmdiYSgyNTUsIDI1NSwgMjU1LCAwLjEpIil9OwogICAgICAgIGNvbG9yOiAke3AuYmRUaGVtZSgiIzA5MDkwYiIsIiNmYWZhZmEiKX07CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOwogICAgICAgIGN1cnNvcjogcG9pbnRlcjsKICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC4ycyBlYXNlOwogICAgICAgIHBvaW50ZXItZXZlbnRzOiBhdXRvOwogICAgICAgIGJveC1zaGFkb3c6IDAgMnB4IDRweCByZ2JhKDAsIDAsIDAsIDAuMSk7CiAgICAgIH0KCiAgICAgIC5vdmVybGF5LWJ1dHRvbjpob3ZlciB7CiAgICAgICAgYmFja2dyb3VuZDogJHtwLmJkVGhlbWUoIiNmZmZmZmYiLCIjM2YzZjQ2Iil9OwogICAgICAgIHRyYW5zZm9ybTogc2NhbGUoMS4xKTsKICAgICAgICBib3gtc2hhZG93OiAwIDRweCA4cHggcmdiYSgwLCAwLCAwLCAwLjE1KTsKICAgICAgfQoKICAgICAgLm92ZXJsYXktYnV0dG9uLmRlbGV0ZSB7CiAgICAgICAgYmFja2dyb3VuZDogJHtwLmJkVGhlbWUoInJnYmEoMjM5LCA2OCwgNjgsIDAuOSkiLCJyZ2JhKDIyMCwgMzgsIDM4LCAwLjkpIil9OwogICAgICAgIGNvbG9yOiB3aGl0ZTsKICAgICAgICBib3JkZXItY29sb3I6IHRyYW5zcGFyZW50OwogICAgICB9CgogICAgICAub3ZlcmxheS1idXR0b24uZGVsZXRlOmhvdmVyIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke3AuYmRUaGVtZSgiI2VmNDQ0NCIsIiNkYzI2MjYiKX07CiAgICAgIH0KCiAgICAgIC5kcm9wLXpvbmUtdGV4dCB7CiAgICAgICAgcG9zaXRpb246IGFic29sdXRlOwogICAgICAgIHRvcDogNTAlOwogICAgICAgIGxlZnQ6IDUwJTsKICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlLCAtNTAlKTsKICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7CiAgICAgICAgY29sb3I6IHdoaXRlOwogICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7CiAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7CiAgICAgIH0KCiAgICAgIC5oaWRkZW4taW5wdXQgewogICAgICAgIGRpc3BsYXk6IG5vbmU7CiAgICAgIH0KCiAgICAgIC8qIExvYWRpbmcgYW5pbWF0aW9uICovCiAgICAgIC5sb2FkaW5nLW92ZXJsYXkgewogICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgICB0b3A6IDA7CiAgICAgICAgbGVmdDogMDsKICAgICAgICByaWdodDogMDsKICAgICAgICBib3R0b206IDA7CiAgICAgICAgYmFja2dyb3VuZDogJHtwLmJkVGhlbWUoInJnYmEoMjU1LCAyNTUsIDI1NSwgMC44KSIsInJnYmEoMCwgMCwgMCwgMC44KSIpfTsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7CiAgICAgICAgYm9yZGVyLXJhZGl1czogaW5oZXJpdDsKICAgICAgICBvcGFjaXR5OiAwOwogICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lOwogICAgICAgIHRyYW5zaXRpb246IG9wYWNpdHkgMC4ycyBlYXNlOwogICAgICB9CgogICAgICAubG9hZGluZy1vdmVybGF5LnNob3cgewogICAgICAgIG9wYWNpdHk6IDE7CiAgICAgICAgcG9pbnRlci1ldmVudHM6IGF1dG87CiAgICAgIH0KCiAgICAgIC5sb2FkaW5nLXNwaW5uZXIgewogICAgICAgIHdpZHRoOiA0MHB4OwogICAgICAgIGhlaWdodDogNDBweDsKICAgICAgICBib3JkZXI6IDNweCBzb2xpZCAke3AuYmRUaGVtZSgicmdiYSgwLCAwLCAwLCAwLjEpIiwicmdiYSgyNTUsIDI1NSwgMjU1LCAwLjEpIil9OwogICAgICAgIGJvcmRlci10b3AtY29sb3I6ICR7cC5iZFRoZW1lKCIjM2I4MmY2IiwiIzYwYTVmYSIpfTsKICAgICAgICBib3JkZXItcmFkaXVzOiA1MCU7CiAgICAgICAgYW5pbWF0aW9uOiBzcGluIDAuNnMgbGluZWFyIGluZmluaXRlOwogICAgICB9CgogICAgICBAa2V5ZnJhbWVzIHNwaW4gewogICAgICAgIHRvIHsKICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDM2MGRlZyk7CiAgICAgICAgfQogICAgICB9CgogICAgICBAa2V5ZnJhbWVzIHB1bHNlIHsKICAgICAgICAwJSB7CiAgICAgICAgICB0cmFuc2Zvcm06IHNjYWxlKDEpOwogICAgICAgICAgb3BhY2l0eTogMTsKICAgICAgICB9CiAgICAgICAgNTAlIHsKICAgICAgICAgIHRyYW5zZm9ybTogc2NhbGUoMS4wNSk7CiAgICAgICAgICBvcGFjaXR5OiAwLjg7CiAgICAgICAgfQogICAgICAgIDEwMCUgewogICAgICAgICAgdHJhbnNmb3JtOiBzY2FsZSgxKTsKICAgICAgICAgIG9wYWNpdHk6IDE7CiAgICAgICAgfQogICAgICB9CgogICAgICAucHJvZmlsZS1waWN0dXJlLmNsaWNraW5nIHsKICAgICAgICBhbmltYXRpb246IHB1bHNlIDAuM3MgZWFzZS1vdXQ7CiAgICAgIH0KICAgIGBdO3JlbmRlcigpe3JldHVybiB3YAogICAgICA8ZGl2IGNsYXNzPSJpbnB1dC13cmFwcGVyIj4KICAgICAgICA8ZGVlcy1sYWJlbCAubGFiZWw9JHt0aGlzLmxhYmVsfSAuZGVzY3JpcHRpb249JHt0aGlzLmRlc2NyaXB0aW9ufSAucmVxdWlyZWQ9JHt0aGlzLnJlcXVpcmVkfT48L2RlZXMtbGFiZWw+CiAgICAgICAgCiAgICAgICAgPGRpdiAKICAgICAgICAgIGNsYXNzPSJwcm9maWxlLWNvbnRhaW5lciIKICAgICAgICAgIEBjbGljaz0ke3RoaXMuaGFuZGxlQ2xpY2t9CiAgICAgICAgICBAZHJhZ292ZXI9JHt0aGlzLmhhbmRsZURyYWdPdmVyfQogICAgICAgICAgQGRyYWdsZWF2ZT0ke3RoaXMuaGFuZGxlRHJhZ0xlYXZlfQogICAgICAgICAgQGRyb3A9JHt0aGlzLmhhbmRsZURyb3B9CiAgICAgICAgICBzdHlsZT0iLS1zaXplOiAke3RoaXMuc2l6ZX1weCIKICAgICAgICA+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJwcm9maWxlLXBpY3R1cmUgJHt0aGlzLnNoYXBlfSAke3RoaXMuaXNEcmFnZ2luZz8iZHJhZ2dpbmciOiIifSAke3RoaXMuaXNMb2FkaW5nJiYhdGhpcy52YWx1ZT8iY2xpY2tpbmciOiIifSI+CiAgICAgICAgICAgICR7dGhpcy52YWx1ZT93YAogICAgICAgICAgICAgIDxpbWcgY2xhc3M9InByb2ZpbGUtaW1hZ2UiIHNyYz0iJHt0aGlzLnZhbHVlfSIgYWx0PSJQcm9maWxlIHBpY3R1cmUiIC8+CiAgICAgICAgICAgIGA6d2AKICAgICAgICAgICAgICA8ZGVlcy1pY29uIGNsYXNzPSJwbGFjZWhvbGRlci1pY29uIiBpY29uPSJsdWNpZGU6dXNlciIgaWNvblNpemU9IiR7dGhpcy5zaXplKi41fSI+PC9kZWVzLWljb24+CiAgICAgICAgICAgIGB9CiAgICAgICAgICAgIAogICAgICAgICAgICAke3RoaXMuaXNEcmFnZ2luZz93YAogICAgICAgICAgICAgIDxkaXYgY2xhc3M9Im92ZXJsYXkiIHN0eWxlPSJvcGFjaXR5OiAxIj4KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImRyb3Atem9uZS10ZXh0Ij4KICAgICAgICAgICAgICAgICAgRHJvcCBpbWFnZSBoZXJlCiAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgYDoiIn0KICAgICAgICAgICAgCiAgICAgICAgICAgICR7dGhpcy52YWx1ZSYmIXRoaXMuZGlzYWJsZWQ/d2AKICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJvdmVybGF5Ij4KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9Im92ZXJsYXktY29udGVudCI+CiAgICAgICAgICAgICAgICAgICR7dGhpcy5hbGxvd1VwbG9hZD93YAogICAgICAgICAgICAgICAgICAgIDxidXR0b24gY2xhc3M9Im92ZXJsYXktYnV0dG9uIiBAY2xpY2s9JHtaPT57Wi5zdG9wUHJvcGFnYXRpb24oKSx0aGlzLm9wZW5Nb2RhbCgpfX0gdGl0bGU9IkNoYW5nZSBwaWN0dXJlIj4KICAgICAgICAgICAgICAgICAgICAgIDxkZWVzLWljb24gaWNvbj0ibHVjaWRlOnBlbmNpbCIgaWNvblNpemU9IjIwIj48L2RlZXMtaWNvbj4KICAgICAgICAgICAgICAgICAgICA8L2J1dHRvbj4KICAgICAgICAgICAgICAgICAgYDoiIn0KICAgICAgICAgICAgICAgICAgJHt0aGlzLmFsbG93RGVsZXRlP3dgCiAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz0ib3ZlcmxheS1idXR0b24gZGVsZXRlIiBAY2xpY2s9JHtaPT57Wi5zdG9wUHJvcGFnYXRpb24oKSx0aGlzLmRlbGV0ZVBpY3R1cmUoKX19IHRpdGxlPSJEZWxldGUgcGljdHVyZSI+CiAgICAgICAgICAgICAgICAgICAgICA8ZGVlcy1pY29uIGljb249Imx1Y2lkZTp0cmFzaDIiIGljb25TaXplPSIyMCI+PC9kZWVzLWljb24+CiAgICAgICAgICAgICAgICAgICAgPC9idXR0b24+CiAgICAgICAgICAgICAgICAgIGA6IiJ9CiAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgYDoiIn0KICAgICAgICAgICAgCiAgICAgICAgICAgICR7dGhpcy5pc0xvYWRpbmcmJiF0aGlzLnZhbHVlP3dgCiAgICAgICAgICAgICAgPGRpdiBjbGFzcz0ibG9hZGluZy1vdmVybGF5IHNob3ciPgogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0ibG9hZGluZy1zcGlubmVyIj48L2Rpdj4KICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgYDoiIn0KICAgICAgICAgIDwvZGl2PgogICAgICAgIDwvZGl2PgogICAgICAgIAogICAgICAgIDxpbnB1dAogICAgICAgICAgdHlwZT0iZmlsZSIKICAgICAgICAgIGNsYXNzPSJoaWRkZW4taW5wdXQiCiAgICAgICAgICBhY2NlcHQ9IiR7dGhpcy5hY2NlcHRlZEZvcm1hdHMuam9pbigiLCIpfSIKICAgICAgICAgIEBjaGFuZ2U9JHt0aGlzLmhhbmRsZUZpbGVTZWxlY3R9CiAgICAgICAgLz4KICAgICAgPC9kaXY+CiAgICBgfWhhbmRsZUNsaWNrKCl7aWYoISh0aGlzLmRpc2FibGVkfHwhdGhpcy5hbGxvd1VwbG9hZCkmJiF0aGlzLnZhbHVlKXt0aGlzLmlzTG9hZGluZz0hMDtsZXQgWj10aGlzLnNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvcigiLmhpZGRlbi1pbnB1dCIpLFk9KCk9PntzZXRUaW1lb3V0KCgpPT57KCFaLmZpbGVzfHxaLmZpbGVzLmxlbmd0aD09PTApJiYodGhpcy5pc0xvYWRpbmc9ITEpLHdpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyKCJmb2N1cyIsWSl9LDMwMCl9O3dpbmRvdy5hZGRFdmVudExpc3RlbmVyKCJmb2N1cyIsWSksWi5jbGljaygpfX1oYW5kbGVGaWxlU2VsZWN0KFope2xldCBZPVoudGFyZ2V0LG9lPVkuZmlsZXM/LlswXTt0aGlzLmlzTG9hZGluZz0hMSxvZSYmdGhpcy5wcm9jZXNzRmlsZShvZSksWS52YWx1ZT0iIn1oYW5kbGVEcmFnT3ZlcihaKXtaLnByZXZlbnREZWZhdWx0KCksIXRoaXMuZGlzYWJsZWQmJnRoaXMuYWxsb3dVcGxvYWQmJih0aGlzLmlzRHJhZ2dpbmc9ITApfWhhbmRsZURyYWdMZWF2ZSgpe3RoaXMuaXNEcmFnZ2luZz0hMX1oYW5kbGVEcm9wKFope2lmKFoucHJldmVudERlZmF1bHQoKSx0aGlzLmlzRHJhZ2dpbmc9ITEsdGhpcy5kaXNhYmxlZHx8IXRoaXMuYWxsb3dVcGxvYWQpcmV0dXJuO2xldCBZPVouZGF0YVRyYW5zZmVyPy5maWxlc1swXTtZJiZ0aGlzLnByb2Nlc3NGaWxlKFkpfWFzeW5jIHByb2Nlc3NGaWxlKFope2lmKCF0aGlzLmFjY2VwdGVkRm9ybWF0cy5pbmNsdWRlcyhaLnR5cGUpKXtjb25zb2xlLmVycm9yKCJJbnZhbGlkIGZpbGUgdHlwZToiLFoudHlwZSk7cmV0dXJufWlmKFouc2l6ZT50aGlzLm1heEZpbGVTaXplKXtjb25zb2xlLmVycm9yKCJGaWxlIHRvbyBsYXJnZToiLFouc2l6ZSk7cmV0dXJufWxldCBZPW5ldyBGaWxlUmVhZGVyO1kub25sb2FkPWFzeW5jIG9lPT57bGV0IGdlPW9lLnRhcmdldD8ucmVzdWx0O2F3YWl0IHRoaXMub3Blbk1vZGFsKGdlKX0sWS5yZWFkQXNEYXRhVVJMKFopfWFzeW5jIG9wZW5Nb2RhbChaKXtsZXQgWT1afHx0aGlzLnZhbHVlO2lmKCFZKXt0aGlzLnNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvcigiLmhpZGRlbi1pbnB1dCIpLmNsaWNrKCk7cmV0dXJufXRoaXMubW9kYWxJbnN0YW5jZT1uZXcgRFYsdGhpcy5tb2RhbEluc3RhbmNlLnNoYXBlPXRoaXMuc2hhcGUsdGhpcy5tb2RhbEluc3RhbmNlLmluaXRpYWxJbWFnZT1ZLHRoaXMubW9kYWxJbnN0YW5jZS5vdXRwdXRTaXplPXRoaXMub3V0cHV0U2l6ZSx0aGlzLm1vZGFsSW5zdGFuY2Uub3V0cHV0UXVhbGl0eT10aGlzLm91dHB1dFF1YWxpdHksdGhpcy5tb2RhbEluc3RhbmNlLmFkZEV2ZW50TGlzdGVuZXIoInNhdmUiLG9lPT57dGhpcy52YWx1ZT1vZS5kZXRhaWwuY3JvcHBlZEltYWdlLHRoaXMuY2hhbmdlU3ViamVjdC5uZXh0KHRoaXMpfSksZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZCh0aGlzLm1vZGFsSW5zdGFuY2UpfWRlbGV0ZVBpY3R1cmUoKXt0aGlzLnZhbHVlPSIiLHRoaXMuY2hhbmdlU3ViamVjdC5uZXh0KHRoaXMpfWdldFZhbHVlKCl7cmV0dXJuIHRoaXMudmFsdWV9c2V0VmFsdWUoWil7dGhpcy52YWx1ZT1afXN0YXRpY3twMShpLGEpfX07cmV0dXJuIE89aX0pKCl9KTt2YXIgcWd0PWIoKCk9PntQbXQoKTtJbXQoKTtObXQoKTtOcSgpO0ZtdCgpO0hxKCk7T210KCk7Vm10KCk7am10KCk7VW10KCk7V210KCk7R210KCk7dGd0KCk7aWd0KCk7Y2d0KCk7ZGd0KCk7aGd0KCk7cGd0KCk7Tmd0KCk7RVYoKX0pO3ZhciBWZ3Qsamd0PWIoKCk9Pnt1ZSgpO1ZndD0oKT0+d2AKICA8c3R5bGU+CiAgICAuZGVtb0NvbnRhaW5lciB7CiAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgIGdhcDogMzJweDsKICAgICAgcGFkZGluZzogNDhweDsKICAgICAgYmFja2dyb3VuZDogJHtwLmJkVGhlbWUoIiNmOGY5ZmEiLCIjMGEwYTBhIil9OwogICAgICBtaW4taGVpZ2h0OiAxMDB2aDsKICAgIH0KICAgIAogICAgLnNlY3Rpb24gewogICAgICBiYWNrZ3JvdW5kOiAke3AuYmRUaGVtZSgiI2ZmZmZmZiIsIiMxODE4MWIiKX07CiAgICAgIGJvcmRlcjogMXB4IHNvbGlkICR7cC5iZFRoZW1lKCIjZTVlN2ViIiwiIzI3MjcyYSIpfTsKICAgICAgYm9yZGVyLXJhZGl1czogOHB4OwogICAgICBwYWRkaW5nOiAyNHB4OwogICAgICBib3gtc2hhZG93OiAwIDFweCAzcHggcmdiYSgwLCAwLCAwLCAwLjEpOwogICAgfQogICAgCiAgICAuc2VjdGlvbi10aXRsZSB7CiAgICAgIGZvbnQtc2l6ZTogMThweDsKICAgICAgZm9udC13ZWlnaHQ6IDYwMDsKICAgICAgbWFyZ2luLWJvdHRvbTogMTZweDsKICAgICAgY29sb3I6ICR7cC5iZFRoZW1lKCIjMDkwOTBiIiwiI2ZhZmFmYSIpfTsKICAgIH0KICAgIAogICAgLnNlY3Rpb24tZGVzY3JpcHRpb24gewogICAgICBmb250LXNpemU6IDE0cHg7CiAgICAgIGNvbG9yOiAke3AuYmRUaGVtZSgiIzcxNzE3YSIsIiNhMWExYWEiKX07CiAgICAgIG1hcmdpbi1ib3R0b206IDE2cHg7CiAgICB9CiAgPC9zdHlsZT4KICA8ZGl2IGNsYXNzPSJkZW1vQ29udGFpbmVyIj4KICAgIDxkaXYgY2xhc3M9InNlY3Rpb24iPgogICAgICA8ZGl2IGNsYXNzPSJzZWN0aW9uLXRpdGxlIj5Ob24tU2VsZWN0YWJsZSBDaGlwczwvZGl2PgogICAgICA8ZGl2IGNsYXNzPSJzZWN0aW9uLWRlc2NyaXB0aW9uIj5CYXNpYyBjaGlwcyB3aXRob3V0IHNlbGVjdGlvbiBjYXBhYmlsaXR5LiBVc2UgZm9yIGRpc3BsYXktb25seSB0YWdzLjwvZGl2PgogICAgICA8ZGVlcy1jaGlwcwogICAgICAgIHNlbGVjdGlvbk1vZGU9Im5vbmUiCiAgICAgICAgLnNlbGVjdGFibGVDaGlwcz0ke1t7a2V5OiJzdGF0dXMiLHZhbHVlOiJBY3RpdmUifSx7a2V5OiJ0aWVyIix2YWx1ZToiUHJlbWl1bSJ9LHtrZXk6InJlZ2lvbiIsdmFsdWU6IkVVLVdlc3QifSx7a2V5OiJ0eXBlIix2YWx1ZToiRW50ZXJwcmlzZSJ9XX0KICAgICAgPjwvZGVlcy1jaGlwcz4KICAgIDwvZGl2PgogICAgCiAgICA8ZGl2IGNsYXNzPSJzZWN0aW9uIj4KICAgICAgPGRpdiBjbGFzcz0ic2VjdGlvbi10aXRsZSI+U2luZ2xlIFNlbGVjdGlvbiBDaGlwczwvZGl2PgogICAgICA8ZGl2IGNsYXNzPSJzZWN0aW9uLWRlc2NyaXB0aW9uIj5DbGljayB0byBzZWxlY3Qgb25lIGNoaXAgYXQgYSB0aW1lLiBVc2VmdWwgZm9yIGZpbHRlcnMgYW5kIG9wdGlvbnMuPC9kaXY+CiAgICAgIDxkZWVzLWNoaXBzCiAgICAgICAgc2VsZWN0aW9uTW9kZT0ic2luZ2xlIgogICAgICAgIC5zZWxlY3RhYmxlQ2hpcHM9JHtbe2tleToiYWxsIix2YWx1ZToiQWxsIFByb2plY3RzIn0se2tleToiYWN0aXZlIix2YWx1ZToiQWN0aXZlIn0se2tleToiYXJjaGl2ZWQiLHZhbHVlOiJBcmNoaXZlZCJ9LHtrZXk6ImRyYWZ0cyIsdmFsdWU6IkRyYWZ0cyJ9XX0KICAgICAgPjwvZGVlcy1jaGlwcz4KICAgIDwvZGl2PgogICAgCiAgICA8ZGl2IGNsYXNzPSJzZWN0aW9uIj4KICAgICAgPGRpdiBjbGFzcz0ic2VjdGlvbi10aXRsZSI+TXVsdGlwbGUgU2VsZWN0aW9uIENoaXBzPC9kaXY+CiAgICAgIDxkaXYgY2xhc3M9InNlY3Rpb24tZGVzY3JpcHRpb24iPlNlbGVjdCBtdWx0aXBsZSBjaGlwcyBzaW11bHRhbmVvdXNseS4gR3JlYXQgZm9yIHRhZyBzZWxlY3Rpb24uPC9kaXY+CiAgICAgIDxkZWVzLWNoaXBzCiAgICAgICAgc2VsZWN0aW9uTW9kZT0ibXVsdGlwbGUiCiAgICAgICAgLnNlbGVjdGFibGVDaGlwcz0ke1t7a2V5OiJqcyIsdmFsdWU6IkphdmFTY3JpcHQifSx7a2V5OiJ0cyIsdmFsdWU6IlR5cGVTY3JpcHQifSx7a2V5OiJyZWFjdCIsdmFsdWU6IlJlYWN0In0se2tleToidnVlIix2YWx1ZToiVnVlIn0se2tleToiYW5ndWxhciIsdmFsdWU6IkFuZ3VsYXIifSx7a2V5OiJub2RlIix2YWx1ZToiTm9kZS5qcyJ9XX0KICAgICAgPjwvZGVlcy1jaGlwcz4KICAgIDwvZGl2PgogICAgCiAgICA8ZGl2IGNsYXNzPSJzZWN0aW9uIj4KICAgICAgPGRpdiBjbGFzcz0ic2VjdGlvbi10aXRsZSI+UmVtb3ZhYmxlIENoaXBzIHdpdGggS2V5czwvZGl2PgogICAgICA8ZGl2IGNsYXNzPSJzZWN0aW9uLWRlc2NyaXB0aW9uIj5DaGlwcyB3aXRoIHJlbW92ZSBidXR0b25zIGFuZCBrZXktdmFsdWUgcGFpcnMuIFBlcmZlY3QgZm9yIGR5bmFtaWMgbGlzdHMuPC9kaXY+CiAgICAgIDxkZWVzLWNoaXBzCiAgICAgICAgc2VsZWN0aW9uTW9kZT0ic2luZ2xlIgogICAgICAgIGNoaXBzQXJlUmVtb3ZhYmxlCiAgICAgICAgLnNlbGVjdGFibGVDaGlwcz0ke1t7a2V5OiJlbnYiLHZhbHVlOiJQcm9kdWN0aW9uIn0se2tleToidmVyc2lvbiIsdmFsdWU6IjIuNC4xIn0se2tleToiYnJhbmNoIix2YWx1ZToibWFpbiJ9LHtrZXk6ImF1dGhvciIsdmFsdWU6IkpvaG4gRG9lIn1dfQogICAgICA+PC9kZWVzLWNoaXBzPgogICAgPC9kaXY+CiAgICAKICAgIDxkaXYgY2xhc3M9InNlY3Rpb24iPgogICAgICA8ZGl2IGNsYXNzPSJzZWN0aW9uLXRpdGxlIj5NaXhlZCBDb250ZW50IEV4YW1wbGU8L2Rpdj4KICAgICAgPGRpdiBjbGFzcz0ic2VjdGlvbi1kZXNjcmlwdGlvbiI+Q29tYmluaW5nIGRpZmZlcmVudCBjaGlwIHR5cGVzIGZvciBjb21wbGV4IFVJcy48L2Rpdj4KICAgICAgPGRlZXMtY2hpcHMKICAgICAgICBzZWxlY3Rpb25Nb2RlPSJtdWx0aXBsZSIKICAgICAgICBjaGlwc0FyZVJlbW92YWJsZQogICAgICAgIC5zZWxlY3RhYmxlQ2hpcHM9JHtbe2tleToicHJpb3JpdHkiLHZhbHVlOiJIaWdoIn0se2tleToic3RhdHVzIix2YWx1ZToiSW4gUHJvZ3Jlc3MifSx7a2V5OiJidWciLHZhbHVlOiJCdWcifSx7a2V5OiJmZWF0dXJlIix2YWx1ZToiRmVhdHVyZSJ9LHtrZXk6InNwcmludCIsdmFsdWU6IlNwcmludCAyMyJ9LHtrZXk6ImFzc2lnbmVlIix2YWx1ZToiQWxpY2UifV19CiAgICAgID48L2RlZXMtY2hpcHM+CiAgICA8L2Rpdj4KICA8L2Rpdj4KYH0pO3ZhciBGbCxKaSxVZ3QsV2d0PWIoKCk9Pnt1ZSgpO1R0KCk7amd0KCk7cWUoKTtGbD1mdW5jdGlvbih0LGUsYSxpLHIscyl7ZnVuY3Rpb24gbih4KXtpZih4IT09dm9pZCAwJiZ0eXBlb2YgeCE9ImZ1bmN0aW9uIil0aHJvdyBuZXcgVHlwZUVycm9yKCJGdW5jdGlvbiBleHBlY3RlZCIpO3JldHVybiB4fWZvcih2YXIgbz1pLmtpbmQsZD1vPT09ImdldHRlciI/ImdldCI6bz09PSJzZXR0ZXIiPyJzZXQiOiJ2YWx1ZSIsYz0hZSYmdD9pLnN0YXRpYz90OnQucHJvdG90eXBlOm51bGwsaD1lfHwoYz9PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGMsaS5uYW1lKTp7fSksbCxmPSExLGc9YS5sZW5ndGgtMTtnPj0wO2ctLSl7dmFyIHk9e307Zm9yKHZhciB2IGluIGkpeVt2XT12PT09ImFjY2VzcyI/e306aVt2XTtmb3IodmFyIHYgaW4gaS5hY2Nlc3MpeS5hY2Nlc3Nbdl09aS5hY2Nlc3Nbdl07eS5hZGRJbml0aWFsaXplcj1mdW5jdGlvbih4KXtpZihmKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBhZGQgaW5pdGlhbGl6ZXJzIGFmdGVyIGRlY29yYXRpb24gaGFzIGNvbXBsZXRlZCIpO3MucHVzaChuKHh8fG51bGwpKX07dmFyIG09KDAsYVtnXSkobz09PSJhY2Nlc3NvciI/e2dldDpoLmdldCxzZXQ6aC5zZXR9OmhbZF0seSk7aWYobz09PSJhY2Nlc3NvciIpe2lmKG09PT12b2lkIDApY29udGludWU7aWYobT09PW51bGx8fHR5cGVvZiBtIT0ib2JqZWN0Iil0aHJvdyBuZXcgVHlwZUVycm9yKCJPYmplY3QgZXhwZWN0ZWQiKTsobD1uKG0uZ2V0KSkmJihoLmdldD1sKSwobD1uKG0uc2V0KSkmJihoLnNldD1sKSwobD1uKG0uaW5pdCkpJiZyLnVuc2hpZnQobCl9ZWxzZShsPW4obSkpJiYobz09PSJmaWVsZCI/ci51bnNoaWZ0KGwpOmhbZF09bCl9YyYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGMsaS5uYW1lLGgpLGY9ITB9LEppPWZ1bmN0aW9uKHQsZSxhKXtmb3IodmFyIGk9YXJndW1lbnRzLmxlbmd0aD4yLHI9MDtyPGUubGVuZ3RoO3IrKylhPWk/ZVtyXS5jYWxsKHQsYSk6ZVtyXS5jYWxsKHQpO3JldHVybiBpP2E6dm9pZCAwfSxVZ3Q9KCgpPT57bGV0IHQ9W3BlKCJkZWVzLWNoaXBzIildLGUsYT1bXSxpLHI9eGUscyxuPVtdLG89W10sZCxjPVtdLGg9W10sbCxmPVtdLGc9W10seSx2PVtdLG09W10seCxNPVtdLFM9W107dmFyIEY9Y2xhc3MgZXh0ZW5kcyBye3N0YXRpY3tpPXRoaXN9c3RhdGlje2xldCBfPXR5cGVvZiBTeW1ib2w9PSJmdW5jdGlvbiImJlN5bWJvbC5tZXRhZGF0YT9PYmplY3QuY3JlYXRlKHJbU3ltYm9sLm1ldGFkYXRhXT8/bnVsbCk6dm9pZCAwO3M9W0koKV0sZD1bSSh7dHlwZTpCb29sZWFufSldLGw9W0koe3R5cGU6QXJyYXl9KV0seT1bSSgpXSx4PVtJKHt0eXBlOkFycmF5fSldLEZsKHRoaXMsbnVsbCxzLHtraW5kOiJhY2Nlc3NvciIsbmFtZToic2VsZWN0aW9uTW9kZSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6az0+InNlbGVjdGlvbk1vZGUiaW4gayxnZXQ6az0+ay5zZWxlY3Rpb25Nb2RlLHNldDooayxOKT0+e2suc2VsZWN0aW9uTW9kZT1OfX0sbWV0YWRhdGE6X30sbixvKSxGbCh0aGlzLG51bGwsZCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImNoaXBzQXJlUmVtb3ZhYmxlIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczprPT4iY2hpcHNBcmVSZW1vdmFibGUiaW4gayxnZXQ6az0+ay5jaGlwc0FyZVJlbW92YWJsZSxzZXQ6KGssTik9PntrLmNoaXBzQXJlUmVtb3ZhYmxlPU59fSxtZXRhZGF0YTpffSxjLGgpLEZsKHRoaXMsbnVsbCxsLHtraW5kOiJhY2Nlc3NvciIsbmFtZToic2VsZWN0YWJsZUNoaXBzIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczprPT4ic2VsZWN0YWJsZUNoaXBzImluIGssZ2V0Oms9Pmsuc2VsZWN0YWJsZUNoaXBzLHNldDooayxOKT0+e2suc2VsZWN0YWJsZUNoaXBzPU59fSxtZXRhZGF0YTpffSxmLGcpLEZsKHRoaXMsbnVsbCx5LHtraW5kOiJhY2Nlc3NvciIsbmFtZToic2VsZWN0ZWRDaGlwIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczprPT4ic2VsZWN0ZWRDaGlwImluIGssZ2V0Oms9Pmsuc2VsZWN0ZWRDaGlwLHNldDooayxOKT0+e2suc2VsZWN0ZWRDaGlwPU59fSxtZXRhZGF0YTpffSx2LG0pLEZsKHRoaXMsbnVsbCx4LHtraW5kOiJhY2Nlc3NvciIsbmFtZToic2VsZWN0ZWRDaGlwcyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6az0+InNlbGVjdGVkQ2hpcHMiaW4gayxnZXQ6az0+ay5zZWxlY3RlZENoaXBzLHNldDooayxOKT0+e2suc2VsZWN0ZWRDaGlwcz1OfX0sbWV0YWRhdGE6X30sTSxTKSxGbChudWxsLGU9e3ZhbHVlOml9LHQse2tpbmQ6ImNsYXNzIixuYW1lOmkubmFtZSxtZXRhZGF0YTpffSxudWxsLGEpLEY9aT1lLnZhbHVlLF8mJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShpLFN5bWJvbC5tZXRhZGF0YSx7ZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITAsdmFsdWU6X30pfXN0YXRpYyBkZW1vPVZndDtzdGF0aWMgZGVtb0dyb3Vwcz1bIkxheW91dCJdOyNlPUppKHRoaXMsbiwic2luZ2xlIik7Z2V0IHNlbGVjdGlvbk1vZGUoKXtyZXR1cm4gdGhpcy4jZX1zZXQgc2VsZWN0aW9uTW9kZShfKXt0aGlzLiNlPV99I3Q9KEppKHRoaXMsbyksSmkodGhpcyxjLCExKSk7Z2V0IGNoaXBzQXJlUmVtb3ZhYmxlKCl7cmV0dXJuIHRoaXMuI3R9c2V0IGNoaXBzQXJlUmVtb3ZhYmxlKF8pe3RoaXMuI3Q9X30jYT0oSmkodGhpcyxoKSxKaSh0aGlzLGYsW10pKTtnZXQgc2VsZWN0YWJsZUNoaXBzKCl7cmV0dXJuIHRoaXMuI2F9c2V0IHNlbGVjdGFibGVDaGlwcyhfKXt0aGlzLiNhPV99I2k9KEppKHRoaXMsZyksSmkodGhpcyx2LG51bGwpKTtnZXQgc2VsZWN0ZWRDaGlwKCl7cmV0dXJuIHRoaXMuI2l9c2V0IHNlbGVjdGVkQ2hpcChfKXt0aGlzLiNpPV99I3I9KEppKHRoaXMsbSksSmkodGhpcyxNLFtdKSk7Z2V0IHNlbGVjdGVkQ2hpcHMoKXtyZXR1cm4gdGhpcy4jcn1zZXQgc2VsZWN0ZWRDaGlwcyhfKXt0aGlzLiNyPV99Y29uc3RydWN0b3IoKXtzdXBlcigpLEppKHRoaXMsUyl9c3RhdGljIHN0eWxlcz1bQ2UscC5kZWZhdWx0U3R5bGVzLFFgCiAgICAgIC8qIFRPRE86IE1pZ3JhdGUgaGFyZGNvZGVkIHZhbHVlcyB0byAtLWRlZXMtKiBDU1MgdmFyaWFibGVzICovCiAgICAgIDpob3N0IHsKICAgICAgICBkaXNwbGF5OiBibG9jazsKICAgICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94OwogICAgICB9CgogICAgICAubWFpbmJveCB7CiAgICAgICAgdXNlci1zZWxlY3Q6IG5vbmU7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBmbGV4LXdyYXA6IHdyYXA7CiAgICAgICAgZ2FwOiA4cHg7CiAgICAgIH0KCiAgICAgIC5jaGlwIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke3AuYmRUaGVtZSgiI2Y0ZjRmNSIsIiMyNzI3MmEiKX07CiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHtwLmJkVGhlbWUoIiNlNWU3ZWIiLCIjM2YzZjQ2Iil9OwogICAgICAgIGRpc3BsYXk6IGlubGluZS1mbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgaGVpZ2h0OiAzMnB4OwogICAgICAgIHBhZGRpbmc6IDBweCAxMnB4OwogICAgICAgIGZvbnQtc2l6ZTogMTRweDsKICAgICAgICBmb250LXdlaWdodDogNTAwOwogICAgICAgIGNvbG9yOiAke3AuYmRUaGVtZSgiIzA5MDkwYiIsIiNmYWZhZmEiKX07CiAgICAgICAgYm9yZGVyLXJhZGl1czogNnB4OwogICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuMTVzIGVhc2U7CiAgICAgICAgYm94LXNoYWRvdzogMCAxcHggMnB4IDAgcmdiYSgwLCAwLCAwLCAwLjA1KTsKICAgICAgfQoKICAgICAgLmNoaXA6aG92ZXIgewogICAgICAgIGJhY2tncm91bmQ6ICR7cC5iZFRoZW1lKCIjZTVlN2ViIiwiIzNmM2Y0NiIpfTsKICAgICAgICBib3JkZXItY29sb3I6ICR7cC5iZFRoZW1lKCIjZDFkNWRiIiwiIzUyNTI1YiIpfTsKICAgICAgfQoKICAgICAgLmNoaXA6YWN0aXZlIHsKICAgICAgICB0cmFuc2Zvcm06IHNjYWxlKDAuOTgpOwogICAgICB9CgogICAgICAuY2hpcC5zZWxlY3RlZCB7CiAgICAgICAgYmFja2dyb3VuZDogJHtwLmJkVGhlbWUoIiMzYjgyZjYiLCIjM2I4MmY2Iil9OwogICAgICAgIGJvcmRlci1jb2xvcjogJHtwLmJkVGhlbWUoIiMzYjgyZjYiLCIjM2I4MmY2Iil9OwogICAgICAgIGNvbG9yOiAjZmZmZmZmOwogICAgICB9CgogICAgICAuY2hpcC5zZWxlY3RlZDpob3ZlciB7CiAgICAgICAgYmFja2dyb3VuZDogJHtwLmJkVGhlbWUoIiMyNTYzZWIiLCIjMjU2M2ViIil9OwogICAgICAgIGJvcmRlci1jb2xvcjogJHtwLmJkVGhlbWUoIiMyNTYzZWIiLCIjMjU2M2ViIil9OwogICAgICB9CgogICAgICAuY2hpcEtleSB7CiAgICAgICAgYmFja2dyb3VuZDogJHtwLmJkVGhlbWUoInJnYmEoMCwgMCwgMCwgMC4wNikiLCJyZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMSkiKX07CiAgICAgICAgaGVpZ2h0OiAyMHB4OwogICAgICAgIGxpbmUtaGVpZ2h0OiAyMHB4OwogICAgICAgIGRpc3BsYXk6IGlubGluZS1mbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgbWFyZ2luLWxlZnQ6IC04cHg7CiAgICAgICAgcGFkZGluZzogMHB4IDhweDsKICAgICAgICBtYXJnaW4tcmlnaHQ6IDhweDsKICAgICAgICBib3JkZXItcmFkaXVzOiA0cHg7CiAgICAgICAgZm9udC1zaXplOiAxMnB4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7CiAgICAgICAgY29sb3I6ICR7cC5iZFRoZW1lKCIjNzE3MTdhIiwiI2ExYTFhYSIpfTsKICAgICAgfQoKICAgICAgLmNoaXAuc2VsZWN0ZWQgLmNoaXBLZXkgewogICAgICAgIGJhY2tncm91bmQ6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4yKTsKICAgICAgICBjb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjkpOwogICAgICB9CgogICAgICBkZWVzLWljb24gewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKICAgICAgICB3aWR0aDogMTZweDsKICAgICAgICBoZWlnaHQ6IDE2cHg7CiAgICAgICAgbWFyZ2luLWxlZnQ6IDhweDsKICAgICAgICBtYXJnaW4tcmlnaHQ6IC02cHg7CiAgICAgICAgYm9yZGVyLXJhZGl1czogM3B4OwogICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjE1cyBlYXNlOwogICAgICAgIGNvbG9yOiAke3AuYmRUaGVtZSgiIzcxNzE3YSIsIiNhMWExYWEiKX07CiAgICAgIH0KCiAgICAgIC5jaGlwLnNlbGVjdGVkIGRlZXMtaWNvbiB7CiAgICAgICAgY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC44KTsKICAgICAgfQoKICAgICAgZGVlcy1pY29uOmhvdmVyIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke3AuYmRUaGVtZSgicmdiYSgwLCAwLCAwLCAwLjEpIiwicmdiYSgyNTUsIDI1NSwgMjU1LCAwLjEpIil9OwogICAgICAgIGNvbG9yOiAke3AuYmRUaGVtZSgiI2VmNDQ0NCIsIiNlZjQ0NDQiKX07CiAgICAgIH0KCiAgICAgIC5jaGlwLnNlbGVjdGVkIGRlZXMtaWNvbjpob3ZlciB7CiAgICAgICAgYmFja2dyb3VuZDogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjIpOwogICAgICAgIGNvbG9yOiAjZmZmZmZmOwogICAgICB9CiAgICBgXTtyZW5kZXIoKXtyZXR1cm4gd2AKICAgICAgPGRpdiBjbGFzcz0ibWFpbmJveCI+CiAgICAgICAgJHt0aGlzLnNlbGVjdGFibGVDaGlwcy5tYXAoXz0+d2AKICAgICAgICAgICAgPGRpdgogICAgICAgICAgICAgIEBjbGljaz0keygpPT50aGlzLnNlbGVjdENoaXAoXyl9CiAgICAgICAgICAgICAgY2xhc3M9ImNoaXAgJHt0aGlzLmlzU2VsZWN0ZWQoXyk/InNlbGVjdGVkIjoiIn0iCiAgICAgICAgICAgID4KICAgICAgICAgICAgICAke18ua2V5P3dgPGRpdiBjbGFzcz0iY2hpcEtleSI+JHtfLmtleX08L2Rpdj5gOndgYH0gJHtfLnZhbHVlfQogICAgICAgICAgICAgICR7dGhpcy5jaGlwc0FyZVJlbW92YWJsZT93YAogICAgICAgICAgICAgICAgICAgIDxkZWVzLWljb24KICAgICAgICAgICAgICAgICAgICAgIEBjbGljaz0ke2s9PntrLnN0b3BQcm9wYWdhdGlvbigpLHRoaXMucmVtb3ZlQ2hpcChfKX19CiAgICAgICAgICAgICAgICAgICAgICAuaWNvbj0keyJmYTp4bWFyayJ9CiAgICAgICAgICAgICAgICAgICAgPjwvZGVlcy1pY29uPgogICAgICAgICAgICAgICAgICBgOndgYH0KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICBgKX0KICAgICAgPC9kaXY+CiAgICBgfWFzeW5jIGZpcnN0VXBkYXRlZCgpe31pc1NlbGVjdGVkKF8pe3JldHVybiB0aGlzLnNlbGVjdGlvbk1vZGU9PT0ic2luZ2xlIj90aGlzLnNlbGVjdGVkQ2hpcD90aGlzLmlzU2FtZUNoaXAodGhpcy5zZWxlY3RlZENoaXAsXyk6ITE6dGhpcy5zZWxlY3RlZENoaXBzLnNvbWUoaz0+dGhpcy5pc1NhbWVDaGlwKGssXykpfWlzU2FtZUNoaXAoXyxrKXtyZXR1cm4oXy5rZXkmJmsua2V5fHxfLnZhbHVlPT09ay52YWx1ZSkmJl8ua2V5PT09ay5rZXl9YXN5bmMgc2VsZWN0Q2hpcChfKXt0aGlzLnNlbGVjdGlvbk1vZGUhPT0ibm9uZSImJih0aGlzLnNlbGVjdGlvbk1vZGU9PT0ic2luZ2xlIj90aGlzLmlzU2VsZWN0ZWQoXyk/KHRoaXMuc2VsZWN0ZWRDaGlwPW51bGwsdGhpcy5zZWxlY3RlZENoaXBzPVtdKToodGhpcy5zZWxlY3RlZENoaXA9Xyx0aGlzLnNlbGVjdGVkQ2hpcHM9W19dKTp0aGlzLnNlbGVjdGlvbk1vZGU9PT0ibXVsdGlwbGUiJiYodGhpcy5pc1NlbGVjdGVkKF8pP3RoaXMuc2VsZWN0ZWRDaGlwcz10aGlzLnNlbGVjdGVkQ2hpcHMuZmlsdGVyKGs9PiF0aGlzLmlzU2FtZUNoaXAoayxfKSk6dGhpcy5zZWxlY3RlZENoaXBzPVsuLi50aGlzLnNlbGVjdGVkQ2hpcHMsX10sdGhpcy5yZXF1ZXN0VXBkYXRlKCkpLGNvbnNvbGUubG9nKHRoaXMuc2VsZWN0ZWRDaGlwcykpfXJlbW92ZUNoaXAoXyl7dGhpcy5zZWxlY3RhYmxlQ2hpcHM9dGhpcy5zZWxlY3RhYmxlQ2hpcHMuZmlsdGVyKGs9PiF0aGlzLmlzU2FtZUNoaXAoayxfKSksdGhpcy5zZWxlY3RlZENoaXBzPXRoaXMuc2VsZWN0ZWRDaGlwcy5maWx0ZXIoaz0+IXRoaXMuaXNTYW1lQ2hpcChrLF8pKSx0aGlzLnNlbGVjdGVkQ2hpcCYmdGhpcy5pc1NhbWVDaGlwKHRoaXMuc2VsZWN0ZWRDaGlwLF8pJiYodGhpcy5zZWxlY3RlZENoaXA9bnVsbCksdGhpcy5yZXF1ZXN0VXBkYXRlKCl9c3RhdGlje0ppKGksYSl9fTtyZXR1cm4gRj1pfSkoKX0pO3ZhciBHZ3Q9YigoKT0+e1dndCgpfSk7dmFyIFlndCxaZ3Q9YigoKT0+e3VlKCk7eDEoKTtZZ3Q9KCk9PndgCiAgICA8ZGVlcy1kZW1vd3JhcHBlciAucnVuQWZ0ZXJSZW5kZXI9JHthc3luYyB0PT57bGV0IGU9dC5xdWVyeVNlbGVjdG9yKCIjZGFzaGJvYXJkR3JpZCIpLGE9W3tpZDoibWV0cmljczEiLHg6MCx5OjAsdzozLGg6Mix0aXRsZToiUmV2ZW51ZSIsaWNvbjoibHVjaWRlOmRvbGxhclNpZ24iLGNvbnRlbnQ6d2AKICAgICAgICAgICAgPGRpdiBzdHlsZT0icGFkZGluZzogMjBweDsiPgogICAgICAgICAgICAgIDxkaXYgc3R5bGU9ImZvbnQtc2l6ZTogMzJweDsgZm9udC13ZWlnaHQ6IDcwMDsgY29sb3I6ICR7cC5iZFRoZW1lKCIjMDkwOTBiIiwiI2ZhZmFmYSIpfTsiPiQxMjQsNTYzPC9kaXY+CiAgICAgICAgICAgICAgPGRpdiBzdHlsZT0iY29sb3I6ICMyMmM1NWU7IGZvbnQtc2l6ZTogMTRweDsgbWFyZ2luLXRvcDogOHB4OyI+4oaRIDEyLjUlIGZyb20gbGFzdCBtb250aDwvZGl2PgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIGB9LHtpZDoibWV0cmljczIiLHg6Myx5OjAsdzozLGg6Mix0aXRsZToiVXNlcnMiLGljb246Imx1Y2lkZTp1c2VycyIsY29udGVudDp3YAogICAgICAgICAgICA8ZGl2IHN0eWxlPSJwYWRkaW5nOiAyMHB4OyI+CiAgICAgICAgICAgICAgPGRpdiBzdHlsZT0iZm9udC1zaXplOiAzMnB4OyBmb250LXdlaWdodDogNzAwOyBjb2xvcjogJHtwLmJkVGhlbWUoIiMwOTA5MGIiLCIjZmFmYWZhIil9OyI+OCwyMzQ8L2Rpdj4KICAgICAgICAgICAgICA8ZGl2IHN0eWxlPSJjb2xvcjogIzNiODJmNjsgZm9udC1zaXplOiAxNHB4OyBtYXJnaW4tdG9wOiA4cHg7Ij7ihpEgNS4yJSBmcm9tIGxhc3Qgd2VlazwvZGl2PgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIGB9LHtpZDoiY2hhcnQxIix4OjYseTowLHc6NixoOjQsdGl0bGU6IkFuYWx5dGljcyIsaWNvbjoibHVjaWRlOmxpbmVDaGFydCIsY29udGVudDp3YAogICAgICAgICAgICA8ZGl2IHN0eWxlPSJwYWRkaW5nOiAyMHB4OyBoZWlnaHQ6IDEwMCU7IGRpc3BsYXk6IGZsZXg7IGFsaWduLWl0ZW1zOiBjZW50ZXI7IGp1c3RpZnktY29udGVudDogY2VudGVyOyI+CiAgICAgICAgICAgICAgPGRpdiBzdHlsZT0idGV4dC1hbGlnbjogY2VudGVyOyBjb2xvcjogIzcxNzE3YTsiPgogICAgICAgICAgICAgICAgPGRlZXMtaWNvbiAuaWNvbj0keyJsdWNpZGU6bGluZUNoYXJ0In0gc3R5bGU9ImZvbnQtc2l6ZTogNDhweDsgbWFyZ2luLWJvdHRvbTogMTZweDsiPjwvZGVlcy1pY29uPgogICAgICAgICAgICAgICAgPGRpdj5DaGFydCB2aXN1YWxpemF0aW9uIGFyZWE8L2Rpdj4KICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICBgfV07ZS53aWRnZXRzPWEubWFwKHg9Pih7Li4ueH0pKSxlLmNlbGxIZWlnaHQ9ODAsZS5tYXJnaW49e3RvcDoxMCxyaWdodDoxMCxib3R0b206MTAsbGVmdDoxMH0sZS5lbmFibGVBbmltYXRpb249ITAsZS5zaG93R3JpZExpbmVzPSExO2xldCBpPWUuZ2V0TGF5b3V0KCkubWFwKHg9Pih7Li4ueH0pKSxyPWUud2lkZ2V0cy5tYXAoKHgsTSk9Pih7aWQ6eC5pZCx4OjAseTpNPT09MD8wOmUud2lkZ2V0cy5zbGljZSgwLE0pLnJlZHVjZSgoUyxGKT0+UytGLmgsMCksdzplLmNvbHVtbnMsaDp4Lmh9KSk7ZS5sYXlvdXRzPXtiYXNlOmksbW9iaWxlOnJ9O2xldCBzPXQucXVlcnlTZWxlY3RvcigiI2Rhc2hib2FyZExheW91dFN0YXR1cyIpLG49KCk9PntsZXQgeD1lLmdldExheW91dCgpO3MudGV4dENvbnRlbnQ9YEFjdGl2ZSBicmVha3BvaW50OiAke2UuYWN0aXZlQnJlYWtwb2ludH0gXHUyMDIyIFRpbGVzOiAke3gubGVuZ3RofWB9LG89d2luZG93Lm1hdGNoTWVkaWEoIihtYXgtd2lkdGg6IDc2OHB4KSIpLGQ9KCk9PntsZXQgeD1vLm1hdGNoZXM/Im1vYmlsZSI6ImJhc2UiO2UuYXBwbHlCcmVha3BvaW50TGF5b3V0KHgpLG4oKX07dHlwZW9mIG8uYWRkRXZlbnRMaXN0ZW5lcj09ImZ1bmN0aW9uIj9vLmFkZEV2ZW50TGlzdGVuZXIoImNoYW5nZSIsZCk6by5hZGRMaXN0ZW5lcj8uKGQpLGQoKTtsZXQgYz00O3QucXVlcnlTZWxlY3RvckFsbCgiZGVlcy1idXR0b24iKS5mb3JFYWNoKHg9Pntzd2l0Y2goeC50ZXh0Q29udGVudD8udHJpbSgpKXtjYXNlIlRvZ2dsZSBBbmltYXRpb24iOnguYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLCgpPT57ZS5lbmFibGVBbmltYXRpb249IWUuZW5hYmxlQW5pbWF0aW9ufSk7YnJlYWs7Y2FzZSJUb2dnbGUgR3JpZCBMaW5lcyI6eC5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsKCk9PntlLnNob3dHcmlkTGluZXM9IWUuc2hvd0dyaWRMaW5lc30pO2JyZWFrO2Nhc2UiQWRkIFdpZGdldCI6eC5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsKCk9PntsZXQgUz17aWQ6YHdpZGdldCR7YysrfWAseDowLHk6MCx3OjMsaDoyLGF1dG9Qb3NpdGlvbjohMCx0aXRsZTpgV2lkZ2V0ICR7Yy0xfWAsaWNvbjoibHVjaWRlOnBhY2thZ2UiLGNvbnRlbnQ6d2AKICAgICAgICAgICAgICAgICAgPGRpdiBzdHlsZT0icGFkZGluZzogMjBweDsgdGV4dC1hbGlnbjogY2VudGVyOyI+CiAgICAgICAgICAgICAgICAgICAgPGRpdiBzdHlsZT0iY29sb3I6ICM3MTcxN2E7Ij5OZXcgd2lkZ2V0IGNvbnRlbnQ8L2Rpdj4KICAgICAgICAgICAgICAgICAgICA8ZGl2IHN0eWxlPSJtYXJnaW4tdG9wOiA4cHg7IGZvbnQtc2l6ZTogMjRweDsgZm9udC13ZWlnaHQ6IDYwMDsgY29sb3I6ICR7cC5iZFRoZW1lKCIjMDkwOTBiIiwiI2ZhZmFmYSIpfTsiPiR7TWF0aC5mbG9vcihNYXRoLnJhbmRvbSgpKjFlMyl9PC9kaXY+CiAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgYH07ZS5hZGRXaWRnZXQoUywhMCl9KTticmVhaztjYXNlIkNvbXBhY3QgR3JpZCI6eC5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsKCk9PntlLmNvbXBhY3QoKX0pO2JyZWFrO2Nhc2UiVG9nZ2xlIEVkaXQgTW9kZSI6eC5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsKCk9PntlLmVkaXRhYmxlPSFlLmVkaXRhYmxlLHgudGV4dENvbnRlbnQ9ZS5lZGl0YWJsZT8iTG9jayBHcmlkIjoiVW5sb2NrIEdyaWQifSk7YnJlYWs7Y2FzZSJSZXNldCBMYXlvdXQiOnguYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLCgpPT57ZS5hcHBseUJyZWFrcG9pbnRMYXlvdXQoZS5hY3RpdmVCcmVha3BvaW50KX0pO2JyZWFrO2RlZmF1bHQ6YnJlYWt9fSk7bGV0IGw9bnVsbCxmPTAsZz0oeCxNKT0+e2xldCBTPWUuZ2V0TGF5b3V0KCk7Y29uc29sZS5ncm91cChgXHV7MUY1MDR9ICR7eH0gW0V2ZW50ICMkeysrZn1dYCksY29uc29sZS5sb2coIlRpbWVzdGFtcDoiLG5ldyBEYXRlKCkudG9JU09TdHJpbmcoKSksY29uc29sZS5sb2coIkdyaWQgQ29uZmlndXJhdGlvbjoiLHtjb2x1bW5zOmUuY29sdW1ucyxjZWxsSGVpZ2h0OmUuY2VsbEhlaWdodCxtYXJnaW46ZS5tYXJnaW4sZWRpdGFibGU6ZS5lZGl0YWJsZSxhY3RpdmVCcmVha3BvaW50OmUuYWN0aXZlQnJlYWtwb2ludH0pLGNvbnNvbGUubG9nKCJDdXJyZW50IExheW91dDoiLFMpLGNvbnNvbGUubG9nKCJXaWRnZXQgQ291bnQ6IixTLmxlbmd0aCksY29uc29sZS5sb2coIkdyaWQgQm91bmRzOiIse3RvdGFsV2lkZ2V0czplLndpZGdldHMubGVuZ3RoLG1heFk6TWF0aC5tYXgoLi4uUy5tYXAoRj0+Ri55K0YuaCkpLG9jY3VwaWVkOlMubWFwKEY9PmAke0YuaWR9OiAoJHtGLnh9LCR7Ri55fSkgJHtGLnd9eCR7Ri5ofWApLmpvaW4oIiwgIil9KSxNJiZjb25zb2xlLmxvZygiRXZlbnQgRGV0YWlsczoiLE0pLGNvbnNvbGUuZ3JvdXBFbmQoKX0seT1uZXcgTXV0YXRpb25PYnNlcnZlcigoKT0+e2xldCB4PWUuc2hhZG93Um9vdD8ucXVlcnlTZWxlY3RvcigiLnBsYWNlaG9sZGVyIik7aWYoeCl7bGV0IE09e2xlZnQ6eC5zdHlsZS5sZWZ0LHRvcDp4LnN0eWxlLnRvcCx3aWR0aDp4LnN0eWxlLndpZHRoLGhlaWdodDp4LnN0eWxlLmhlaWdodH07aWYoSlNPTi5zdHJpbmdpZnkoTSkhPT1KU09OLnN0cmluZ2lmeShsKSl7Y29uc29sZS5ncm91cCgiXHV7MUY0Q0R9IFBsYWNlaG9sZGVyIFBvc2l0aW9uIENoYW5nZWQiKSxjb25zb2xlLmxvZygiUHJldmlvdXM6IixsKSxjb25zb2xlLmxvZygiQ3VycmVudDoiLE0pO2xldCBTPWUuc2hhZG93Um9vdD8ucXVlcnlTZWxlY3RvcigiLmdyaWQtY29udGFpbmVyIik7UyYmY29uc29sZS5sb2coIkdyaWQgQ29udGFpbmVyIERpbWVuc2lvbnM6Iix7d2lkdGg6Uy5jbGllbnRXaWR0aCxoZWlnaHQ6Uy5jbGllbnRIZWlnaHR9KSxjb25zb2xlLmdyb3VwRW5kKCksbD1NfX19KTtlLnNoYWRvd1Jvb3QmJnkub2JzZXJ2ZShlLnNoYWRvd1Jvb3Qse2NoaWxkTGlzdDohMCxzdWJ0cmVlOiEwLGF0dHJpYnV0ZXM6ITAsYXR0cmlidXRlRmlsdGVyOlsic3R5bGUiXX0pLGcoIkluaXRpYWwgR3JpZCBTdGF0ZSIpLGUuYWRkRXZlbnRMaXN0ZW5lcigid2lkZ2V0LW1vdmUiLHg9PntnKCJXaWRnZXQgTW92ZSIse3dpZGdldDp4LmRldGFpbC53aWRnZXQsZGlzcGxhY2VkOnguZGV0YWlsLmRpc3BsYWNlZCxzd2FwcGVkV2l0aDp4LmRldGFpbC5zd2FwcGVkV2l0aH0pfSksZS5hZGRFdmVudExpc3RlbmVyKCJ3aWRnZXQtcmVzaXplIix4PT57ZygiV2lkZ2V0IFJlc2l6ZSIse3dpZGdldDp4LmRldGFpbC53aWRnZXQsZGlzcGxhY2VkOnguZGV0YWlsLmRpc3BsYWNlZCxzd2FwcGVkV2l0aDp4LmRldGFpbC5zd2FwcGVkV2l0aH0pfSksZS5hZGRFdmVudExpc3RlbmVyKCJ3aWRnZXQtcmVtb3ZlIix4PT57ZygiV2lkZ2V0IFJlbW92ZSIse3JlbW92ZWRXaWRnZXQ6eC5kZXRhaWwud2lkZ2V0fSksbigpfSksZS5hZGRFdmVudExpc3RlbmVyKCJsYXlvdXQtY2hhbmdlIiwoKT0+e2coIkxheW91dCBDaGFuZ2UiKSxuKCl9KSxlLmFkZEV2ZW50TGlzdGVuZXIoInBvaW50ZXJkb3duIix4PT57bGV0IE09eC50YXJnZXQuY2xvc2VzdCgiLndpZGdldC1oZWFkZXIiKSxTPXgudGFyZ2V0LmNsb3Nlc3QoIi5yZXNpemUtaGFuZGxlIik7aWYoTXx8Uyl7Y29uc29sZS5ncm91cChgXHV7MUYzQUZ9IEludGVyYWN0aW9uIFN0YXJ0ZWQ6ICR7TT8iRHJhZyI6IlJlc2l6ZSJ9YCksY29uc29sZS5sb2coIlRhcmdldCBXaWRnZXQ6Iix4LnRhcmdldC5jbG9zZXN0KCIud2lkZ2V0Iik/LmdldEF0dHJpYnV0ZSgiZGF0YS13aWRnZXQtaWQiKSksY29uc29sZS5sb2coIlBvaW50ZXIgUG9zaXRpb246Iix7eDp4LmNsaWVudFgseTp4LmNsaWVudFl9KSxjb25zb2xlLmdyb3VwRW5kKCk7bGV0IEY9az0+e2xldCBOPXgudGFyZ2V0LmNsb3Nlc3QoIi53aWRnZXQiKTtOJiZjb25zb2xlLmxvZygiXHUyMTk0XHVGRTBGIFBvaW50ZXIgTW92ZToiLHt3aWRnZXRJZDpOLmdldEF0dHJpYnV0ZSgiZGF0YS13aWRnZXQtaWQiKSxwb3NpdGlvbjp7eDprLmNsaWVudFgseTprLmNsaWVudFl9LGRlbHRhOnt4OmsuY2xpZW50WC14LmNsaWVudFgseTprLmNsaWVudFkteC5jbGllbnRZfX0pfSxfPSgpPT57Y29uc29sZS5ncm91cCgiXHV7MUYzQzF9IEludGVyYWN0aW9uIEVuZGVkIiksZygiRmluYWwgU3RhdGUgQWZ0ZXIgSW50ZXJhY3Rpb24iKSxjb25zb2xlLmdyb3VwRW5kKCksZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcigicG9pbnRlcm1vdmUiLEYpLGRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoInBvaW50ZXJ1cCIsXyl9O2RvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoInBvaW50ZXJtb3ZlIixGKSxkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCJwb2ludGVydXAiLF8pfX0pO2xldCB2PWUuYWRkV2lkZ2V0LmJpbmQoZSk7ZS5hZGRXaWRnZXQ9KHgsTSk9Pntjb25zb2xlLmdyb3VwKCJcdTI3OTUgQWRkaW5nIFdpZGdldCIpLGNvbnNvbGUubG9nKCJOZXcgV2lkZ2V0OiIseCksY29uc29sZS5sb2coIkF1dG8gUG9zaXRpb246IixNKTtsZXQgUz12KHgsTSk7cmV0dXJuIGcoIkFmdGVyIFdpZGdldCBBZGRlZCIpLGNvbnNvbGUuZ3JvdXBFbmQoKSxTfTtsZXQgbT1lLmNvbXBhY3QuYmluZChlKTtlLmNvbXBhY3Q9eD0+e2NvbnNvbGUuZ3JvdXAoIlx1ezFGNURDfVx1RkUwRiBDb21wYWN0aW5nIEdyaWQiKSxjb25zb2xlLmxvZygiRGlyZWN0aW9uOiIseHx8InZlcnRpY2FsIiksZygiQmVmb3JlIENvbXBhY3QiKTtsZXQgTT1tKHgpO3JldHVybiBnKCJBZnRlciBDb21wYWN0IiksY29uc29sZS5ncm91cEVuZCgpLE19LG4oKX19PgogICAgICA8c3R5bGU+CiAgICAgICAgJHtRYAogICAgICAgICAgLmRlbW9Cb3ggewogICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgICAgICAgIGJhY2tncm91bmQ6ICR7cC5iZFRoZW1lKCIjZjRmNGY1IiwiIzA5MDkwYiIpfTsKICAgICAgICAgICAgaGVpZ2h0OiAxMDAlOwogICAgICAgICAgICB3aWR0aDogMTAwJTsKICAgICAgICAgICAgcGFkZGluZzogNDBweDsKICAgICAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDsKICAgICAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgICAgICAgZ2FwOiAyNHB4OwogICAgICAgICAgfQoKICAgICAgICAgIC5kZW1vLWNvbnRyb2xzIHsKICAgICAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICAgICAgZmxleC13cmFwOiB3cmFwOwogICAgICAgICAgICBnYXA6IDEycHg7CiAgICAgICAgICB9CgogICAgICAgICAgLmRlbW8tY29udHJvbHMgZGVlcy1idXR0b24gewogICAgICAgICAgICBmbGV4LXNocmluazogMDsKICAgICAgICAgIH0KCiAgICAgICAgICAuZ3JpZC1jb250YWluZXItd3JhcHBlciB7CiAgICAgICAgICAgIGZsZXg6IDE7CiAgICAgICAgICAgIG1pbi1oZWlnaHQ6IDYwMHB4OwogICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgICAgICB9CgogICAgICAgICAgLmluZm8gewogICAgICAgICAgICBjb2xvcjogJHtwLmJkVGhlbWUoIiM3MTcxN2EiLCIjNzE3MTdhIil9OwogICAgICAgICAgICBmb250LXNpemU6IDEycHg7CiAgICAgICAgICAgIGZvbnQtZmFtaWx5OiAnR2Vpc3QgU2FucycsIHNhbnMtc2VyaWY7CiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjsKICAgICAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgICAgICAgZ2FwOiA2cHg7CiAgICAgICAgICB9CgogICAgICAgICAgI2Rhc2hib2FyZExheW91dFN0YXR1cyB7CiAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7CiAgICAgICAgICAgIGNvbG9yOiAke3AuYmRUaGVtZSgiIzNiODJmNiIsIiM2MGE1ZmEiKX07CiAgICAgICAgICB9CiAgICAgICAgYH0KICAgICAgPC9zdHlsZT4KICAgICAgPGRpdiBjbGFzcz0iZGVtb0JveCI+CiAgICAgICAgPGRpdiBjbGFzcz0iZGVtby1jb250cm9scyI+CiAgICAgICAgICA8ZGVlcy1idXR0b24tZ3JvdXAgbGFiZWw9IkFuaW1hdGlvbjoiPgogICAgICAgICAgICA8ZGVlcy1idXR0b24+VG9nZ2xlIEFuaW1hdGlvbjwvZGVlcy1idXR0b24+CiAgICAgICAgICA8L2RlZXMtYnV0dG9uLWdyb3VwPgoKICAgICAgICAgIDxkZWVzLWJ1dHRvbi1ncm91cCBsYWJlbD0iRGlzcGxheToiPgogICAgICAgICAgICA8ZGVlcy1idXR0b24+VG9nZ2xlIEdyaWQgTGluZXM8L2RlZXMtYnV0dG9uPgogICAgICAgICAgPC9kZWVzLWJ1dHRvbi1ncm91cD4KCiAgICAgICAgICA8ZGVlcy1idXR0b24tZ3JvdXAgbGFiZWw9IkFjdGlvbnM6Ij4KICAgICAgICAgICAgPGRlZXMtYnV0dG9uPkFkZCBXaWRnZXQ8L2RlZXMtYnV0dG9uPgogICAgICAgICAgICA8ZGVlcy1idXR0b24+Q29tcGFjdCBHcmlkPC9kZWVzLWJ1dHRvbj4KICAgICAgICAgICAgPGRlZXMtYnV0dG9uPlJlc2V0IExheW91dDwvZGVlcy1idXR0b24+CiAgICAgICAgICA8L2RlZXMtYnV0dG9uLWdyb3VwPgoKICAgICAgICAgIDxkZWVzLWJ1dHRvbi1ncm91cCBsYWJlbD0iTW9kZToiPgogICAgICAgICAgICA8ZGVlcy1idXR0b24+VG9nZ2xlIEVkaXQgTW9kZTwvZGVlcy1idXR0b24+CiAgICAgICAgICA8L2RlZXMtYnV0dG9uLWdyb3VwPgogICAgICAgIDwvZGl2PgoKICAgICAgICA8ZGl2IGNsYXNzPSJncmlkLWNvbnRhaW5lci13cmFwcGVyIj4KICAgICAgICAgIDxkZWVzLWRhc2hib2FyZGdyaWQgaWQ9ImRhc2hib2FyZEdyaWQiPjwvZGVlcy1kYXNoYm9hcmRncmlkPgogICAgICAgIDwvZGl2PgoKICAgICAgICA8ZGl2IGNsYXNzPSJpbmZvIj4KICAgICAgICAgIDxkaXY+RHJhZyB0byByZXBvc2l0aW9uLCByZXNpemUgZnJvbSBoYW5kbGVzLCBvciByaWdodC1jbGljayBhIGhlYWRlciB0byBkZWxldGUgYSB0aWxlLjwvZGl2PgogICAgICAgICAgPGRpdiBpZD0iZGFzaGJvYXJkTGF5b3V0U3RhdHVzIj48L2Rpdj4KICAgICAgICA8L2Rpdj4KICAgICAgPC9kaXY+CiAgICA8L2RlZXMtZGVtb3dyYXBwZXI+CiAgYH0pO3ZhciBYZ3QsS2d0PWIoKCk9Pnt1ZSgpO1hndD1bcC5kZWZhdWx0U3R5bGVzLFFgCiAgICAgIDpob3N0IHsKICAgICAgICBkaXNwbGF5OiBibG9jazsKICAgICAgICB3aWR0aDogMTAwJTsKICAgICAgICBoZWlnaHQ6IDEwMCU7CiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICB9CgogICAgICAuZ3JpZC1jb250YWluZXIgewogICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgICB3aWR0aDogMTAwJTsKICAgICAgICBtaW4taGVpZ2h0OiA0MDBweDsKICAgICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94OwogICAgICB9CgogICAgICAuZ3JpZC13aWRnZXQgewogICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgICB3aWxsLWNoYW5nZTogYXV0bzsKICAgICAgfQogICAgICAKICAgICAgOmhvc3QoW2VuYWJsZWFuaW1hdGlvbl0pIC5ncmlkLXdpZGdldCB7CiAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuM3MgY3ViaWMtYmV6aWVyKDAuNCwgMCwgMC4yLCAxKTsKICAgICAgfQoKICAgICAgLmdyaWQtd2lkZ2V0LmRyYWdnaW5nIHsKICAgICAgICB6LWluZGV4OiAxMDAwOwogICAgICAgIHRyYW5zaXRpb246IG5vbmUgIWltcG9ydGFudDsKICAgICAgICBvcGFjaXR5OiAwLjg7CiAgICAgICAgY3Vyc29yOiBncmFiYmluZzsKICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTsKICAgICAgICB3aWxsLWNoYW5nZTogdHJhbnNmb3JtOwogICAgICB9CiAgICAgIAogICAgICAuZ3JpZC13aWRnZXQucGxhY2Vob2xkZXIgewogICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lOwogICAgICAgIHotaW5kZXg6IDE7CiAgICAgIH0KICAgICAgCiAgICAgIC5ncmlkLXdpZGdldC5wbGFjZWhvbGRlciAud2lkZ2V0LWNvbnRlbnQgewogICAgICAgIGJhY2tncm91bmQ6ICR7cC5iZFRoZW1lKCJyZ2JhKDU5LCAxMzAsIDI0NiwgMC4xKSIsInJnYmEoNTksIDEzMCwgMjQ2LCAwLjEpIil9OwogICAgICAgIGJvcmRlcjogMnB4IGRhc2hlZCAke3AuYmRUaGVtZSgiIzNiODJmNiIsIiMzYjgyZjYiKX07CiAgICAgICAgYm94LXNoYWRvdzogbm9uZTsKICAgICAgfQoKICAgICAgLmdyaWQtd2lkZ2V0LnJlc2l6aW5nIHsKICAgICAgICB0cmFuc2l0aW9uOiBub25lICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC53aWRnZXQtY29udGVudCB7CiAgICAgICAgcG9zaXRpb246IGFic29sdXRlOwogICAgICAgIGxlZnQ6IDA7CiAgICAgICAgcmlnaHQ6IDA7CiAgICAgICAgdG9wOiAwOwogICAgICAgIGJvdHRvbTogMDsKICAgICAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgICAgIGJhY2tncm91bmQ6ICR7cC5iZFRoZW1lKCIjZmZmZmZmIiwiIzA5MDkwYiIpfTsKICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAke3AuYmRUaGVtZSgiI2U1ZTdlYiIsIiMyNzI3MmEiKX07CiAgICAgICAgYm9yZGVyLXJhZGl1czogOHB4OwogICAgICAgIGJveC1zaGFkb3c6ICR7cC5iZFRoZW1lKCIwIDFweCAzcHggcmdiYSgwLCAwLCAwLCAwLjEpIiwiMCAxcHggM3B4IHJnYmEoMCwgMCwgMCwgMC4zKSIpfTsKICAgICAgICB0cmFuc2l0aW9uOiBib3gtc2hhZG93IDAuMnMgZWFzZTsKICAgICAgfQoKICAgICAgLmdyaWQtd2lkZ2V0OmhvdmVyIC53aWRnZXQtY29udGVudCB7CiAgICAgICAgYm94LXNoYWRvdzogJHtwLmJkVGhlbWUoIjAgNHB4IDEycHggcmdiYSgwLCAwLCAwLCAwLjE1KSIsIjAgNHB4IDEycHggcmdiYSgwLCAwLCAwLCAwLjQpIil9OwogICAgICB9CgogICAgICAuZ3JpZC13aWRnZXQuZHJhZ2dpbmcgLndpZGdldC1jb250ZW50IHsKICAgICAgICBib3gtc2hhZG93OiAke3AuYmRUaGVtZSgiMCAxNnB4IDQ4cHggcmdiYSgwLCAwLCAwLCAwLjI1KSIsIjAgMTZweCA0OHB4IHJnYmEoMCwgMCwgMCwgMC42KSIpfTsKICAgICAgICB0cmFuc2Zvcm06IHNjYWxlKDEuMDUpOwogICAgICB9CgogICAgICAud2lkZ2V0LWhlYWRlciB7CiAgICAgICAgcGFkZGluZzogMTJweCAxNnB4OwogICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAke3AuYmRUaGVtZSgiI2U1ZTdlYiIsIiMyNzI3MmEiKX07CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGdhcDogOHB4OwogICAgICAgIGZvbnQtc2l6ZTogMTRweDsKICAgICAgICBmb250LXdlaWdodDogNjAwOwogICAgICAgIGNvbG9yOiAke3AuYmRUaGVtZSgiIzA5MDkwYiIsIiNmYWZhZmEiKX07CiAgICAgICAgYmFja2dyb3VuZDogJHtwLmJkVGhlbWUoIiNmOWZhZmIiLCIjMGEwYTBhIil9OwogICAgICAgIGN1cnNvcjogZ3JhYjsKICAgICAgICB1c2VyLXNlbGVjdDogbm9uZTsKICAgICAgfQogICAgICAKICAgICAgLndpZGdldC1oZWFkZXI6aG92ZXIgewogICAgICAgIGJhY2tncm91bmQ6ICR7cC5iZFRoZW1lKCIjZjRmNGY1IiwiIzE4MTgxYiIpfTsKICAgICAgfQogICAgICAKICAgICAgLndpZGdldC1oZWFkZXI6YWN0aXZlIHsKICAgICAgICBjdXJzb3I6IGdyYWJiaW5nOwogICAgICB9CgogICAgICAud2lkZ2V0LWhlYWRlci5sb2NrZWQgewogICAgICAgIGN1cnNvcjogZGVmYXVsdDsKICAgICAgfQogICAgICAKICAgICAgLndpZGdldC1oZWFkZXIubG9ja2VkOmhvdmVyIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke3AuYmRUaGVtZSgiI2Y5ZmFmYiIsIiMwYTBhMGEiKX07CiAgICAgIH0KCiAgICAgIC53aWRnZXQtaGVhZGVyIGRlZXMtaWNvbiB7CiAgICAgICAgZm9udC1zaXplOiAxNnB4OwogICAgICAgIGNvbG9yOiAke3AuYmRUaGVtZSgiIzcxNzE3YSIsIiM3MTcxN2EiKX07CiAgICAgIH0KCiAgICAgIC53aWRnZXQtYm9keSB7CiAgICAgICAgcG9zaXRpb246IGFic29sdXRlOwogICAgICAgIHRvcDogMDsKICAgICAgICBsZWZ0OiAwOwogICAgICAgIHJpZ2h0OiAwOwogICAgICAgIGJvdHRvbTogMDsKICAgICAgICBvdmVyZmxvdzogYXV0bzsKICAgICAgICBjb2xvcjogJHtwLmJkVGhlbWUoIiMwOTA5MGIiLCIjZmFmYWZhIil9OwogICAgICB9CgogICAgICAud2lkZ2V0LWJvZHkuaGFzLWhlYWRlciB7CiAgICAgICAgdG9wOiA0NXB4OwogICAgICB9CgogICAgICAucmVzaXplLWhhbmRsZSB7CiAgICAgICAgcG9zaXRpb246IGFic29sdXRlOwogICAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50OwogICAgICAgIHotaW5kZXg6IDEwOwogICAgICB9CgogICAgICAucmVzaXplLWhhbmRsZTpob3ZlciB7CiAgICAgICAgYmFja2dyb3VuZDogJHtwLmJkVGhlbWUoIiMzYjgyZjYiLCIjM2I4MmY2Iil9OwogICAgICAgIG9wYWNpdHk6IDAuMzsKICAgICAgfQoKICAgICAgLnJlc2l6ZS1oYW5kbGUtZSB7CiAgICAgICAgY3Vyc29yOiBldy1yZXNpemU7CiAgICAgICAgd2lkdGg6IDEycHg7CiAgICAgICAgcmlnaHQ6IC02cHg7CiAgICAgICAgdG9wOiAxMCU7CiAgICAgICAgaGVpZ2h0OiA4MCU7CiAgICAgIH0KCiAgICAgIC5yZXNpemUtaGFuZGxlLXMgewogICAgICAgIGN1cnNvcjogbnMtcmVzaXplOwogICAgICAgIGhlaWdodDogMTJweDsKICAgICAgICB3aWR0aDogODAlOwogICAgICAgIGJvdHRvbTogLTZweDsKICAgICAgICBsZWZ0OiAxMCU7CiAgICAgIH0KCiAgICAgIC5yZXNpemUtaGFuZGxlLXNlIHsKICAgICAgICBjdXJzb3I6IHNlLXJlc2l6ZTsKICAgICAgICB3aWR0aDogMjBweDsKICAgICAgICBoZWlnaHQ6IDIwcHg7CiAgICAgICAgcmlnaHQ6IC0ycHg7CiAgICAgICAgYm90dG9tOiAtMnB4OwogICAgICAgIG9wYWNpdHk6IDA7CiAgICAgICAgdHJhbnNpdGlvbjogb3BhY2l0eSAwLjJzIGVhc2U7CiAgICAgIH0KICAgICAgCiAgICAgIC5yZXNpemUtaGFuZGxlLXNlOjphZnRlciB7CiAgICAgICAgY29udGVudDogJyc7CiAgICAgICAgcG9zaXRpb246IGFic29sdXRlOwogICAgICAgIHJpZ2h0OiA0cHg7CiAgICAgICAgYm90dG9tOiA0cHg7CiAgICAgICAgd2lkdGg6IDZweDsKICAgICAgICBoZWlnaHQ6IDZweDsKICAgICAgICBib3JkZXItcmlnaHQ6IDJweCBzb2xpZCAke3AuYmRUaGVtZSgiIzcxNzE3YSIsIiM3MTcxN2EiKX07CiAgICAgICAgYm9yZGVyLWJvdHRvbTogMnB4IHNvbGlkICR7cC5iZFRoZW1lKCIjNzE3MTdhIiwiIzcxNzE3YSIpfTsKICAgICAgfQoKICAgICAgLmdyaWQtd2lkZ2V0OmhvdmVyIC5yZXNpemUtaGFuZGxlLXNlIHsKICAgICAgICBvcGFjaXR5OiAwLjc7CiAgICAgIH0KCiAgICAgIC5yZXNpemUtaGFuZGxlLXNlOmhvdmVyIHsKICAgICAgICBvcGFjaXR5OiAxICFpbXBvcnRhbnQ7CiAgICAgIH0KICAgICAgCiAgICAgIC5yZXNpemUtaGFuZGxlLXNlOmhvdmVyOjphZnRlciB7CiAgICAgICAgYm9yZGVyLWNvbG9yOiAke3AuYmRUaGVtZSgiIzNiODJmNiIsIiMzYjgyZjYiKX07CiAgICAgIH0KCiAgICAgIC5ncmlkLXBsYWNlaG9sZGVyIHsKICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgICAgYmFja2dyb3VuZDogJHtwLmJkVGhlbWUoIiMzYjgyZjYiLCIjM2I4MmY2Iil9OwogICAgICAgIG9wYWNpdHk6IDAuMTsKICAgICAgICBib3JkZXItcmFkaXVzOiA4cHg7CiAgICAgICAgYm9yZGVyOiAycHggZGFzaGVkICR7cC5iZFRoZW1lKCIjM2I4MmY2IiwiIzNiODJmNiIpfTsKICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC4ycyBlYXNlOwogICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lOwogICAgICB9CgogICAgICAuZW1wdHktc3RhdGUgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOwogICAgICAgIGhlaWdodDogNDAwcHg7CiAgICAgICAgY29sb3I6ICR7cC5iZFRoZW1lKCIjNzE3MTdhIiwiIzcxNzE3YSIpfTsKICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7CiAgICAgICAgcGFkZGluZzogMzJweDsKICAgICAgfQoKICAgICAgLmVtcHR5LXN0YXRlIGRlZXMtaWNvbiB7CiAgICAgICAgZm9udC1zaXplOiA0OHB4OwogICAgICAgIG1hcmdpbi1ib3R0b206IDE2cHg7CiAgICAgICAgb3BhY2l0eTogMC41OwogICAgICB9CiAgICAgIAogICAgICAuZ3JpZC1saW5lcyB7CiAgICAgICAgcG9zaXRpb246IGFic29sdXRlOwogICAgICAgIHRvcDogMDsKICAgICAgICBsZWZ0OiAwOwogICAgICAgIHJpZ2h0OiAwOwogICAgICAgIGJvdHRvbTogMDsKICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTsKICAgICAgICB6LWluZGV4OiAtMTsKICAgICAgfQogICAgICAKICAgICAgLmdyaWQtbGluZS12ZXJ0aWNhbCB7CiAgICAgICAgcG9zaXRpb246IGFic29sdXRlOwogICAgICAgIHRvcDogMDsKICAgICAgICBib3R0b206IDA7CiAgICAgICAgd2lkdGg6IDFweDsKICAgICAgICBiYWNrZ3JvdW5kOiAke3AuYmRUaGVtZSgiI2U1ZTdlYiIsIiMyNzI3MmEiKX07CiAgICAgICAgb3BhY2l0eTogMC4zOwogICAgICB9CiAgICAgIAogICAgICAuZ3JpZC1saW5lLWhvcml6b250YWwgewogICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgICBsZWZ0OiAwOwogICAgICAgIHJpZ2h0OiAwOwogICAgICAgIGhlaWdodDogMXB4OwogICAgICAgIGJhY2tncm91bmQ6ICR7cC5iZFRoZW1lKCIjZTVlN2ViIiwiIzI3MjcyYSIpfTsKICAgICAgICBvcGFjaXR5OiAwLjM7CiAgICAgIH0KICBgXX0pO3ZhciBDbDIsUFYsZWJ0LHRidCxRZ3QsVzgsSmd0LGhVdCxwVXQsSVYsZ28sYWJ0LGlidCxyYnQ9YigoKT0+e0NsMj0xMCxQVj10PT57aWYodHlwZW9mIHQ9PSJudW1iZXIiKXJldHVybntob3Jpem9udGFsOnQsdmVydGljYWw6dCx0b3A6dCxyaWdodDp0LGJvdHRvbTp0LGxlZnQ6dH07bGV0IGU9e3RvcDp0LnRvcD8/MTAscmlnaHQ6dC5yaWdodD8/MTAsYm90dG9tOnQuYm90dG9tPz8xMCxsZWZ0OnQubGVmdD8/MTB9O3JldHVybnsuLi5lLGhvcml6b250YWw6KGUubGVmdCtlLnJpZ2h0KS8yLHZlcnRpY2FsOihlLnRvcCtlLmJvdHRvbSkvMn19LGVidD0odCxlLGEsaSxyKT0+e2xldCBzPWEuaG9yaXpvbnRhbCooZSsxKSxuPU1hdGgubWF4KHQtcywwKSxvPWU+MD9uL2U6MCxkPXI9PT0iYXV0byI/bzppO3JldHVybntjb250YWluZXJXaWR0aDp0LGNlbGxXaWR0aFB4Om8sbWFyZ2luSG9yaXpvbnRhbFB4OmEuaG9yaXpvbnRhbCxjZWxsSGVpZ2h0UHg6ZCxtYXJnaW5WZXJ0aWNhbFB4OmEudmVydGljYWx9fSx0YnQ9KHQsZSxhKT0+e2lmKHQubGVuZ3RoPT09MClyZXR1cm4gMDtsZXQgaT1NYXRoLm1heCguLi50Lm1hcChyPT5yLnkrci5oKSwwKTtyZXR1cm4gaSphKyhpKzEpKmUudmVydGljYWx9LFFndD0odCxlLGEsaSxyKT0+ZTx0LngrdC53JiZlK2k+dC54JiZhPHQueSt0LmgmJmErcj50LnksVzg9KHQsZSxhLGkscj1lLncscz1lLmgpPT50LmZpbHRlcihuPT5uLmlkPT09ZS5pZD8hMTpRZ3QobixhLGkscixzKSksSmd0PSh0LGUsYSxpKT0+VzgodCxlLGEsaSkubGVuZ3RoPjAsaFV0PXQ9Pih7Li4udH0pLHBVdD10PT50Lm1hcChoVXQpLElWPSh0LGUsYSxpKT0+e2ZvcihsZXQgcz0wO3M8MjAwO3MrKylmb3IobGV0IG49MDtuPD1pLWU7bisrKWlmKCF0LnNvbWUoZD0+UWd0KGQsbixzLGUsYSkpKXJldHVybnt4Om4seTpzfTtyZXR1cm57eDowLHk6dC5yZWR1Y2UoKHMsbik9Pk1hdGgubWF4KHMsbi55K24uaCksMCl9fSxnbz0odCxlLGEsaSxyKT0+e2xldCBzPXBVdCh0KSxuPXMuZmluZChmPT5mLmlkPT09ZSksbz10LmZpbmQoZj0+Zi5pZD09PWUpO2lmKCFufHwhbylyZXR1cm4gbnVsbDtsZXQgZD17eDphLngseTphLnksdzphLnc/P24udyxoOmEuaD8/bi5ofTtuLng9ZC54LG4ueT1kLnksbi53PWQudyxuLmg9ZC5oO2xldCBjPVc4KHMsbixkLngsZC55LGQudyxkLmgpO2lmKGMubGVuZ3RoPT09MClyZXR1cm57d2lkZ2V0czpzLG1vdmVkV2lkZ2V0czpbbi5pZF19O2lmKGMubGVuZ3RoPT09MSl7bGV0IGY9Y1swXTtpZighZi5sb2NrZWQmJiFmLm5vTW92ZSYmZi53PT09bi53JiZmLmg9PT1uLmgpe2xldCBnPXMuZmluZCh5PT55LmlkPT09Zi5pZCk7aWYoZyl7bGV0IHk9byx2PXt4OmcueCx5OmcueX07aWYoZy54PXkueCxnLnk9eS55LFc4KHMsbixuLngsbi55LG4udyxuLmgpLmxlbmd0aD09PTAmJlc4KHMsZyxnLngsZy55LGcudyxnLmgpLmxlbmd0aD09PTApcmV0dXJue3dpZGdldHM6cyxtb3ZlZFdpZGdldHM6W24uaWQsZy5pZF0sc3dhcHBlZFdpdGg6Zy5pZH07Zy54PXYueCxnLnk9di55fX19bGV0IGg9bmV3IFNldChbbi5pZF0pO2ZvcihsZXQgZiBvZiBjKXtpZihmLmxvY2tlZHx8Zi5ub01vdmUpcmV0dXJuIG51bGw7bGV0IGc9cy5maW5kKG09Pm0uaWQ9PT1mLmlkKTtpZighZyljb250aW51ZTtsZXQgeT1zLmZpbHRlcihtPT5tLmlkIT09Zi5pZCksdj1JVih5LGcudyxnLmgsaSk7Zy54PXYueCxnLnk9di55LGguYWRkKGcuaWQpfXJldHVybiBXOChzLG4sbi54LG4ueSxuLncsbi5oKS5sZW5ndGg+MD9udWxsOnt3aWRnZXRzOnMsbW92ZWRXaWRnZXRzOkFycmF5LmZyb20oaCl9fSxhYnQ9KHQsZT0idmVydGljYWwiKT0+e2xldCBhPVsuLi50XS5zb3J0KChpLHIpPT5lPT09InZlcnRpY2FsIj9pLnkhPT1yLnk/aS55LXIueTppLngtci54OmkueCE9PXIueD9pLngtci54OmkueS1yLnkpO2ZvcihsZXQgaSBvZiBhKWlmKCEoaS5sb2NrZWR8fGkubm9Nb3ZlKSlpZihlPT09InZlcnRpY2FsIilmb3IoO2kueT4wJiYhSmd0KHQsaSxpLngsaS55LTEpOylpLnktPTE7ZWxzZSBmb3IoO2kueD4wJiYhSmd0KHQsaSxpLngtMSxpLnkpOylpLngtPTF9LGlidD0odCxlKT0+dC5tYXAoYT0+e2xldCBpPWUuZmluZChyPT5yLmlkPT09YS5pZCk7cmV0dXJuIGk/ey4uLmEsLi4uaX06YX0pfSk7dmFyIHNidCxuYnQsb2J0PWIoKCk9PntzYnQ9KHtwb2ludGVyOnQsY29udGFpbmVyUmVjdDplLG1ldHJpY3M6YSxjb2x1bW5zOmksd2lkZ2V0OnIscnRsOnMsZHJhZ09mZnNldFg6bj0wLGRyYWdPZmZzZXRZOm89MH0pPT57bGV0IGQ9dC5jbGllbnRYLWUubGVmdC1uLGM9dC5jbGllbnRZLWUudG9wLW8saD1hLm1hcmdpbkhvcml6b250YWxQeCxsPWEubWFyZ2luVmVydGljYWxQeCxmPWEuY2VsbFdpZHRoUHgsZz1hLmNlbGxIZWlnaHRQeCx5PShfLGssTik9Pk1hdGgubWF4KGssTWF0aC5taW4oTixfKSksdj15KGQtaCwwLGUud2lkdGgtaCksbT15KGMtbCwwLE51bWJlci5QT1NJVElWRV9JTkZJTklUWSkseD1mK2gsTT1nK2wsUz1NYXRoLnJvdW5kKHYveCk7cyYmKFM9aS1yLnctUyksUz15KFMsMCxpLXIudyk7bGV0IEY9eShNYXRoLnJvdW5kKG0vTSksMCxOdW1iZXIuTUFYX1NBRkVfSU5URUdFUik7cmV0dXJue3g6Uyx5OkZ9fSxuYnQ9KHtwb2ludGVyOnQsY29udGFpbmVyUmVjdDplLG1ldHJpY3M6YSxzdGFydFdpZHRoOmksc3RhcnRIZWlnaHQ6cixzdGFydFBvaW50ZXI6cyxoYW5kbGVyOm4sd2lkZ2V0Om8sY29sdW1uczpkfSk9PntsZXQgYz10LmNsaWVudFgtcy5jbGllbnRYLGg9dC5jbGllbnRZLXMuY2xpZW50WSxsPWksZj1yLGc9YS5jZWxsV2lkdGhQeCthLm1hcmdpbkhvcml6b250YWxQeCx5PWEuY2VsbEhlaWdodFB4K2EubWFyZ2luVmVydGljYWxQeDtpZihuLmluY2x1ZGVzKCJlIikpe2xldCB4PU1hdGgucm91bmQoYy9nKTtsPWkreH1pZihuLmluY2x1ZGVzKCJzIikpe2xldCB4PU1hdGgucm91bmQoaC95KTtmPXIreH1sZXQgdj1NYXRoLm1heChvLm1pbld8fDEsTWF0aC5taW4obCxvLm1heFd8fGQtby54KSksbT1NYXRoLm1heChvLm1pbkh8fDEsTWF0aC5taW4oZixvLm1heEh8fE51bWJlci5NQVhfU0FGRV9JTlRFR0VSKSk7cmV0dXJue3dpZHRoOnYsaGVpZ2h0Om19fX0pO3ZhciBsYnQsY2J0PWIoKCk9PntuMigpO3MyKCk7bGJ0PSh7d2lkZ2V0OnQsaG9zdDplLGV2ZW50OmF9KT0+e2xldCBpPVt7bmFtZToiRGVsZXRlIHRpbGUiLGljb25OYW1lOiJsdWNpZGU6dHJhc2gyIixhY3Rpb246YXN5bmMoKT0+KGUucmVtb3ZlV2lkZ2V0KHQuaWQpLG51bGwpfV07VXQub3BlbkNvbnRleHRNZW51V2l0aE9wdGlvbnMoYSxpKX19KTt2YXIgSzIsR3QsZGJ0LGhidD1iKCgpPT57dWUoKTtEdCgpO24yKCk7Wmd0KCk7S2d0KCk7cmJ0KCk7b2J0KCk7Y2J0KCk7SzI9ZnVuY3Rpb24odCxlLGEsaSxyLHMpe2Z1bmN0aW9uIG4oeCl7aWYoeCE9PXZvaWQgMCYmdHlwZW9mIHghPSJmdW5jdGlvbiIpdGhyb3cgbmV3IFR5cGVFcnJvcigiRnVuY3Rpb24gZXhwZWN0ZWQiKTtyZXR1cm4geH1mb3IodmFyIG89aS5raW5kLGQ9bz09PSJnZXR0ZXIiPyJnZXQiOm89PT0ic2V0dGVyIj8ic2V0IjoidmFsdWUiLGM9IWUmJnQ/aS5zdGF0aWM/dDp0LnByb3RvdHlwZTpudWxsLGg9ZXx8KGM/T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihjLGkubmFtZSk6e30pLGwsZj0hMSxnPWEubGVuZ3RoLTE7Zz49MDtnLS0pe3ZhciB5PXt9O2Zvcih2YXIgdiBpbiBpKXlbdl09dj09PSJhY2Nlc3MiP3t9Omlbdl07Zm9yKHZhciB2IGluIGkuYWNjZXNzKXkuYWNjZXNzW3ZdPWkuYWNjZXNzW3ZdO3kuYWRkSW5pdGlhbGl6ZXI9ZnVuY3Rpb24oeCl7aWYoZil0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgYWRkIGluaXRpYWxpemVycyBhZnRlciBkZWNvcmF0aW9uIGhhcyBjb21wbGV0ZWQiKTtzLnB1c2gobih4fHxudWxsKSl9O3ZhciBtPSgwLGFbZ10pKG89PT0iYWNjZXNzb3IiP3tnZXQ6aC5nZXQsc2V0Omguc2V0fTpoW2RdLHkpO2lmKG89PT0iYWNjZXNzb3IiKXtpZihtPT09dm9pZCAwKWNvbnRpbnVlO2lmKG09PT1udWxsfHx0eXBlb2YgbSE9Im9iamVjdCIpdGhyb3cgbmV3IFR5cGVFcnJvcigiT2JqZWN0IGV4cGVjdGVkIik7KGw9bihtLmdldCkpJiYoaC5nZXQ9bCksKGw9bihtLnNldCkpJiYoaC5zZXQ9bCksKGw9bihtLmluaXQpKSYmci51bnNoaWZ0KGwpfWVsc2UobD1uKG0pKSYmKG89PT0iZmllbGQiP3IudW5zaGlmdChsKTpoW2RdPWwpfWMmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShjLGkubmFtZSxoKSxmPSEwfSxHdD1mdW5jdGlvbih0LGUsYSl7Zm9yKHZhciBpPWFyZ3VtZW50cy5sZW5ndGg+MixyPTA7cjxlLmxlbmd0aDtyKyspYT1pP2Vbcl0uY2FsbCh0LGEpOmVbcl0uY2FsbCh0KTtyZXR1cm4gaT9hOnZvaWQgMH0sZGJ0PSgoKT0+e2xldCB0PVtwZSgiZGVlcy1kYXNoYm9hcmRncmlkIildLGUsYT1bXSxpLHI9eGUscyxuPVtdLG89W10sZCxjPVtdLGg9W10sbCxmPVtdLGc9W10seSx2PVtdLG09W10seCxNPVtdLFM9W10sRixfPVtdLGs9W10sTixMPVtdLEE9W10scSxDPVtdLHo9W10sRSxUPVtdLCQ9W10sVixSPVtdLFU9W10scmUsaj1bXSxtZT1bXSx3ZSxIPVtdLGNlPVtdLGtlLFc9W10sRD1bXSxPLFo9W10sWT1bXSxvZSxnZT1bXSxiZT1bXTt2YXIgJGU9Y2xhc3MgZXh0ZW5kcyBye3N0YXRpY3tpPXRoaXN9c3RhdGlje2xldCBCPXR5cGVvZiBTeW1ib2w9PSJmdW5jdGlvbiImJlN5bWJvbC5tZXRhZGF0YT9PYmplY3QuY3JlYXRlKHJbU3ltYm9sLm1ldGFkYXRhXT8/bnVsbCk6dm9pZCAwO3M9W0koe3R5cGU6QXJyYXl9KV0sZD1bSSh7dHlwZTpOdW1iZXJ9KV0sbD1bSSh7dHlwZTpPYmplY3R9KV0seT1bSSh7dHlwZTpOdW1iZXJ9KV0seD1bSSh7dHlwZTpCb29sZWFufSldLEY9W0koe3R5cGU6Qm9vbGVhbixyZWZsZWN0OiEwfSldLE49W0koe3R5cGU6U3RyaW5nfSldLHE9W0koe3R5cGU6Qm9vbGVhbn0pXSxFPVtJKHt0eXBlOkJvb2xlYW59KV0sVj1bSSh7YXR0cmlidXRlOiExfSldLHJlPVtJKHt0eXBlOlN0cmluZ30pXSx3ZT1bSigpXSxrZT1bSigpXSxPPVtKKCldLG9lPVtKKCldLEsyKHRoaXMsbnVsbCxzLHtraW5kOiJhY2Nlc3NvciIsbmFtZToid2lkZ2V0cyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6UD0+IndpZGdldHMiaW4gUCxnZXQ6UD0+UC53aWRnZXRzLHNldDooUCxLKT0+e1Aud2lkZ2V0cz1LfX0sbWV0YWRhdGE6Qn0sbixvKSxLMih0aGlzLG51bGwsZCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImNlbGxIZWlnaHQiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOlA9PiJjZWxsSGVpZ2h0ImluIFAsZ2V0OlA9PlAuY2VsbEhlaWdodCxzZXQ6KFAsSyk9PntQLmNlbGxIZWlnaHQ9S319LG1ldGFkYXRhOkJ9LGMsaCksSzIodGhpcyxudWxsLGwse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJtYXJnaW4iLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOlA9PiJtYXJnaW4iaW4gUCxnZXQ6UD0+UC5tYXJnaW4sc2V0OihQLEspPT57UC5tYXJnaW49S319LG1ldGFkYXRhOkJ9LGYsZyksSzIodGhpcyxudWxsLHkse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJjb2x1bW5zIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpQPT4iY29sdW1ucyJpbiBQLGdldDpQPT5QLmNvbHVtbnMsc2V0OihQLEspPT57UC5jb2x1bW5zPUt9fSxtZXRhZGF0YTpCfSx2LG0pLEsyKHRoaXMsbnVsbCx4LHtraW5kOiJhY2Nlc3NvciIsbmFtZToiZWRpdGFibGUiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOlA9PiJlZGl0YWJsZSJpbiBQLGdldDpQPT5QLmVkaXRhYmxlLHNldDooUCxLKT0+e1AuZWRpdGFibGU9S319LG1ldGFkYXRhOkJ9LE0sUyksSzIodGhpcyxudWxsLEYse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJlbmFibGVBbmltYXRpb24iLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOlA9PiJlbmFibGVBbmltYXRpb24iaW4gUCxnZXQ6UD0+UC5lbmFibGVBbmltYXRpb24sc2V0OihQLEspPT57UC5lbmFibGVBbmltYXRpb249S319LG1ldGFkYXRhOkJ9LF8sayksSzIodGhpcyxudWxsLE4se2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJjZWxsSGVpZ2h0VW5pdCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6UD0+ImNlbGxIZWlnaHRVbml0ImluIFAsZ2V0OlA9PlAuY2VsbEhlaWdodFVuaXQsc2V0OihQLEspPT57UC5jZWxsSGVpZ2h0VW5pdD1LfX0sbWV0YWRhdGE6Qn0sTCxBKSxLMih0aGlzLG51bGwscSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InJ0bCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6UD0+InJ0bCJpbiBQLGdldDpQPT5QLnJ0bCxzZXQ6KFAsSyk9PntQLnJ0bD1LfX0sbWV0YWRhdGE6Qn0sQyx6KSxLMih0aGlzLG51bGwsRSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InNob3dHcmlkTGluZXMiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOlA9PiJzaG93R3JpZExpbmVzImluIFAsZ2V0OlA9PlAuc2hvd0dyaWRMaW5lcyxzZXQ6KFAsSyk9PntQLnNob3dHcmlkTGluZXM9S319LG1ldGFkYXRhOkJ9LFQsJCksSzIodGhpcyxudWxsLFYse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJsYXlvdXRzIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpQPT4ibGF5b3V0cyJpbiBQLGdldDpQPT5QLmxheW91dHMsc2V0OihQLEspPT57UC5sYXlvdXRzPUt9fSxtZXRhZGF0YTpCfSxSLFUpLEsyKHRoaXMsbnVsbCxyZSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImFjdGl2ZUJyZWFrcG9pbnQiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOlA9PiJhY3RpdmVCcmVha3BvaW50ImluIFAsZ2V0OlA9PlAuYWN0aXZlQnJlYWtwb2ludCxzZXQ6KFAsSyk9PntQLmFjdGl2ZUJyZWFrcG9pbnQ9S319LG1ldGFkYXRhOkJ9LGosbWUpLEsyKHRoaXMsbnVsbCx3ZSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InBsYWNlaG9sZGVyUG9zaXRpb24iLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOlA9PiJwbGFjZWhvbGRlclBvc2l0aW9uImluIFAsZ2V0OlA9PlAucGxhY2Vob2xkZXJQb3NpdGlvbixzZXQ6KFAsSyk9PntQLnBsYWNlaG9sZGVyUG9zaXRpb249S319LG1ldGFkYXRhOkJ9LEgsY2UpLEsyKHRoaXMsbnVsbCxrZSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6Im1ldHJpY3MiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOlA9PiJtZXRyaWNzImluIFAsZ2V0OlA9PlAubWV0cmljcyxzZXQ6KFAsSyk9PntQLm1ldHJpY3M9S319LG1ldGFkYXRhOkJ9LFcsRCksSzIodGhpcyxudWxsLE8se2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJyZXNvbHZlZE1hcmdpbnMiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOlA9PiJyZXNvbHZlZE1hcmdpbnMiaW4gUCxnZXQ6UD0+UC5yZXNvbHZlZE1hcmdpbnMsc2V0OihQLEspPT57UC5yZXNvbHZlZE1hcmdpbnM9S319LG1ldGFkYXRhOkJ9LFosWSksSzIodGhpcyxudWxsLG9lLHtraW5kOiJhY2Nlc3NvciIsbmFtZToicHJldmlld1dpZGdldHMiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOlA9PiJwcmV2aWV3V2lkZ2V0cyJpbiBQLGdldDpQPT5QLnByZXZpZXdXaWRnZXRzLHNldDooUCxLKT0+e1AucHJldmlld1dpZGdldHM9S319LG1ldGFkYXRhOkJ9LGdlLGJlKSxLMihudWxsLGU9e3ZhbHVlOml9LHQse2tpbmQ6ImNsYXNzIixuYW1lOmkubmFtZSxtZXRhZGF0YTpCfSxudWxsLGEpLCRlPWk9ZS52YWx1ZSxCJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoaSxTeW1ib2wubWV0YWRhdGEse2VudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwLHZhbHVlOkJ9KX1zdGF0aWMgZGVtbz1ZZ3Q7c3RhdGljIGRlbW9Hcm91cHM9WyJMYXlvdXQiXTtzdGF0aWMgc3R5bGVzPVhndDsjZT1HdCh0aGlzLG4sW10pO2dldCB3aWRnZXRzKCl7cmV0dXJuIHRoaXMuI2V9c2V0IHdpZGdldHMoQil7dGhpcy4jZT1CfSN0PShHdCh0aGlzLG8pLEd0KHRoaXMsYyw4MCkpO2dldCBjZWxsSGVpZ2h0KCl7cmV0dXJuIHRoaXMuI3R9c2V0IGNlbGxIZWlnaHQoQil7dGhpcy4jdD1CfSNhPShHdCh0aGlzLGgpLEd0KHRoaXMsZiwxMCkpO2dldCBtYXJnaW4oKXtyZXR1cm4gdGhpcy4jYX1zZXQgbWFyZ2luKEIpe3RoaXMuI2E9Qn0jaT0oR3QodGhpcyxnKSxHdCh0aGlzLHYsMTIpKTtnZXQgY29sdW1ucygpe3JldHVybiB0aGlzLiNpfXNldCBjb2x1bW5zKEIpe3RoaXMuI2k9Qn0jcj0oR3QodGhpcyxtKSxHdCh0aGlzLE0sITApKTtnZXQgZWRpdGFibGUoKXtyZXR1cm4gdGhpcy4jcn1zZXQgZWRpdGFibGUoQil7dGhpcy4jcj1CfSNzPShHdCh0aGlzLFMpLEd0KHRoaXMsXywhMCkpO2dldCBlbmFibGVBbmltYXRpb24oKXtyZXR1cm4gdGhpcy4jc31zZXQgZW5hYmxlQW5pbWF0aW9uKEIpe3RoaXMuI3M9Qn0jbj0oR3QodGhpcyxrKSxHdCh0aGlzLEwsInB4IikpO2dldCBjZWxsSGVpZ2h0VW5pdCgpe3JldHVybiB0aGlzLiNufXNldCBjZWxsSGVpZ2h0VW5pdChCKXt0aGlzLiNuPUJ9I289KEd0KHRoaXMsQSksR3QodGhpcyxDLCExKSk7Z2V0IHJ0bCgpe3JldHVybiB0aGlzLiNvfXNldCBydGwoQil7dGhpcy4jbz1CfSNsPShHdCh0aGlzLHopLEd0KHRoaXMsVCwhMSkpO2dldCBzaG93R3JpZExpbmVzKCl7cmV0dXJuIHRoaXMuI2x9c2V0IHNob3dHcmlkTGluZXMoQil7dGhpcy4jbD1CfSNjPShHdCh0aGlzLCQpLEd0KHRoaXMsUix2b2lkIDApKTtnZXQgbGF5b3V0cygpe3JldHVybiB0aGlzLiNjfXNldCBsYXlvdXRzKEIpe3RoaXMuI2M9Qn0jZD0oR3QodGhpcyxVKSxHdCh0aGlzLGosImJhc2UiKSk7Z2V0IGFjdGl2ZUJyZWFrcG9pbnQoKXtyZXR1cm4gdGhpcy4jZH1zZXQgYWN0aXZlQnJlYWtwb2ludChCKXt0aGlzLiNkPUJ9I2g9KEd0KHRoaXMsbWUpLEd0KHRoaXMsSCxudWxsKSk7Z2V0IHBsYWNlaG9sZGVyUG9zaXRpb24oKXtyZXR1cm4gdGhpcy4jaH1zZXQgcGxhY2Vob2xkZXJQb3NpdGlvbihCKXt0aGlzLiNoPUJ9I3A9KEd0KHRoaXMsY2UpLEd0KHRoaXMsVyxudWxsKSk7Z2V0IG1ldHJpY3MoKXtyZXR1cm4gdGhpcy4jcH1zZXQgbWV0cmljcyhCKXt0aGlzLiNwPUJ9I3U9KEd0KHRoaXMsRCksR3QodGhpcyxaLG51bGwpKTtnZXQgcmVzb2x2ZWRNYXJnaW5zKCl7cmV0dXJuIHRoaXMuI3V9c2V0IHJlc29sdmVkTWFyZ2lucyhCKXt0aGlzLiN1PUJ9I2Y9KEd0KHRoaXMsWSksR3QodGhpcyxnZSxudWxsKSk7Z2V0IHByZXZpZXdXaWRnZXRzKCl7cmV0dXJuIHRoaXMuI2Z9c2V0IHByZXZpZXdXaWRnZXRzKEIpe3RoaXMuI2Y9Qn1jb250YWluZXJCb3VuZHM9KEd0KHRoaXMsYmUpLG51bGwpO2RyYWdTdGF0ZT1udWxsO3Jlc2l6ZVN0YXRlPW51bGw7cmVzaXplT2JzZXJ2ZXI7aW50ZXJhY3Rpb25BY3RpdmU9ITE7YXN5bmMgY29ubmVjdGVkQ2FsbGJhY2soKXthd2FpdCBzdXBlci5jb25uZWN0ZWRDYWxsYmFjaygpLHRoaXMuY29tcHV0ZU1ldHJpY3MoKSx0aGlzLm9ic2VydmVSZXNpemUoKX1hc3luYyBkaXNjb25uZWN0ZWRDYWxsYmFjaygpe2F3YWl0IHN1cGVyLmRpc2Nvbm5lY3RlZENhbGxiYWNrKCksdGhpcy5kaXNjb25uZWN0UmVzaXplT2JzZXJ2ZXIoKSx0aGlzLnJlbGVhc2VQb2ludGVyRXZlbnRzKCl9dXBkYXRlZChCKXsoQi5oYXMoIm1hcmdpbiIpfHxCLmhhcygiY29sdW1ucyIpfHxCLmhhcygiY2VsbEhlaWdodCIpfHxCLmhhcygiY2VsbEhlaWdodFVuaXQiKSkmJnRoaXMuY29tcHV0ZU1ldHJpY3MoKSxCLmhhcygid2lkZ2V0cyIpJiYhdGhpcy5pbnRlcmFjdGlvbkFjdGl2ZSYmdGhpcy5ub3RpZnlMYXlvdXRDaGFuZ2UoKX1yZW5kZXIoKXtsZXQgQj10aGlzLndpZGdldHM7aWYoQi5sZW5ndGg9PT0wKXJldHVybiB3YAogICAgICAgIDxkaXYgY2xhc3M9ImVtcHR5LXN0YXRlIj4KICAgICAgICAgIDxkZWVzLWljb24gLmljb249JHsibHVjaWRlOmxheW91dEdyaWQifT48L2RlZXMtaWNvbj4KICAgICAgICAgIDxkaXY+Tm8gd2lkZ2V0cyBjb25maWd1cmVkPC9kaXY+CiAgICAgICAgICA8ZGl2IHN0eWxlPSJmb250LXNpemU6IDE0cHg7IG1hcmdpbi10b3A6IDhweDsiPkFkZCB3aWRnZXRzIHRvIHBvcHVsYXRlIHRoZSBkYXNoYm9hcmQ8L2Rpdj4KICAgICAgICA8L2Rpdj4KICAgICAgYDtsZXQgUD10aGlzLmVuc3VyZU1ldHJpY3MoKSxLPXRoaXMucmVzb2x2ZWRNYXJnaW5zPz9QVih0aGlzLm1hcmdpbiksZmU9UC5jZWxsSGVpZ2h0UHgsZGU9dGhpcy5wcmV2aWV3V2lkZ2V0cz8/dGhpcy53aWRnZXRzLF9lPXRidChkZSxLLGZlKSxoZT10aGlzLnByZXZpZXdXaWRnZXRzP25ldyBNYXAodGhpcy5wcmV2aWV3V2lkZ2V0cy5tYXAodGU9Plt0ZS5pZCx0ZV0pKTpudWxsO3JldHVybiB3YAogICAgICA8ZGl2IGNsYXNzPSJncmlkLWNvbnRhaW5lciIgc3R5bGU9ImhlaWdodDogJHtfZX1weDsiPgogICAgICAgICR7dGhpcy5zaG93R3JpZExpbmVzP3RoaXMucmVuZGVyR3JpZExpbmVzKFAsX2UpOm51bGx9CiAgICAgICAgJHtCLm1hcCh0ZT0+dGhpcy5yZW5kZXJXaWRnZXQodGUsUCxLLGhlKSl9CiAgICAgICAgJHt0aGlzLnBsYWNlaG9sZGVyUG9zaXRpb24/dGhpcy5yZW5kZXJQbGFjZWhvbGRlcihQLEspOm51bGx9CiAgICAgIDwvZGl2PgogICAgYH1yZW5kZXJHcmlkTGluZXMoQixQKXtsZXQgSz1bXSxmZT1bXSxkZT1CLmNlbGxXaWR0aFB4K0IubWFyZ2luSG9yaXpvbnRhbFB4LF9lPUIuY2VsbEhlaWdodFB4K0IubWFyZ2luVmVydGljYWxQeDtmb3IobGV0IHRlPTA7dGU8PXRoaXMuY29sdW1uczt0ZSsrKXtsZXQgemU9dGUqZGUrQi5tYXJnaW5Ib3Jpem9udGFsUHgsRmU9dGhpcy5weFRvUGVyY2VudCh6ZSxCLmNvbnRhaW5lcldpZHRoKTtLLnB1c2god2A8ZGl2IGNsYXNzPSJncmlkLWxpbmUtdmVydGljYWwiIHN0eWxlPSJsZWZ0OiAke0ZlfSU7Ij48L2Rpdj5gKX1sZXQgaGU9TWF0aC5jZWlsKFAvX2UpO2ZvcihsZXQgdGU9MDt0ZTw9aGU7dGUrKyl7bGV0IHplPXRlKl9lO2ZlLnB1c2god2A8ZGl2IGNsYXNzPSJncmlkLWxpbmUtaG9yaXpvbnRhbCIgc3R5bGU9InRvcDogJHt6ZX1weDsiPjwvZGl2PmApfXJldHVybiB3YAogICAgICA8ZGl2IGNsYXNzPSJncmlkLWxpbmVzIj4KICAgICAgICAke0t9CiAgICAgICAgJHtmZX0KICAgICAgPC9kaXY+CiAgICBgfXJlbmRlcldpZGdldChCLFAsSyxmZSl7bGV0IGRlPXRoaXMuZHJhZ1N0YXRlPy53aWRnZXRJZD09PUIuaWQsX2U9dGhpcy5yZXNpemVTdGF0ZT8ud2lkZ2V0SWQ9PT1CLmlkLGhlPUIubG9ja2VkfHwhdGhpcy5lZGl0YWJsZSx0ZT1mZT8uZ2V0KEIuaWQpPz9udWxsLHplPWRlP0I6dGU/P0IsRmU9dGhpcy5jb21wdXRlV2lkZ2V0UmVjdCh6ZSxQLEspLFdlPXRoaXMucnRsPyJyaWdodCI6ImxlZnQiLHllPXRoaXMucHhUb1BlcmNlbnQoRmUubGVmdCxQLmNvbnRhaW5lcldpZHRoKSxlZT10aGlzLnB4VG9QZXJjZW50KEZlLndpZHRoLFAuY29udGFpbmVyV2lkdGgpLGFlPSIiO2lmKGRlJiZ0aGlzLmRyYWdTdGF0ZT8uY3VycmVudFBvaW50ZXIpe2xldCB2ZT10aGlzLmRyYWdTdGF0ZS5jdXJyZW50UG9pbnRlcixQZT10aGlzLmNvbnRhaW5lckJvdW5kcz8/dGhpcy5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKSxWZT12ZS5jbGllbnRYLVBlLmxlZnQtdGhpcy5kcmFnU3RhdGUub2Zmc2V0WC1GZS5sZWZ0LHh0PXZlLmNsaWVudFktUGUudG9wLXRoaXMuZHJhZ1N0YXRlLm9mZnNldFktRmUudG9wO2FlPWB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgke1ZlfXB4LCAke3h0fXB4KTtgfXJldHVybiB3YAogICAgICA8ZGl2CiAgICAgICAgY2xhc3M9ImdyaWQtd2lkZ2V0ICR7ZGU/ImRyYWdnaW5nIjoiIn0gJHtfZT8icmVzaXppbmciOiIifSIKICAgICAgICBzdHlsZT0iCiAgICAgICAgICAke1dlfTogJHt5ZX0lOwogICAgICAgICAgdG9wOiAke0ZlLnRvcH1weDsKICAgICAgICAgIHdpZHRoOiAke2VlfSU7CiAgICAgICAgICBoZWlnaHQ6ICR7RmUuaGVpZ2h0fXB4OwogICAgICAgICAgJHthZX0KICAgICAgICAiCiAgICAgICAgZGF0YS13aWRnZXQtaWQ9JHtCLmlkfQogICAgICA+CiAgICAgICAgPGRpdiBjbGFzcz0id2lkZ2V0LWNvbnRlbnQiPgogICAgICAgICAgJHtCLnRpdGxlP3dgCiAgICAgICAgICAgICAgICA8ZGl2CiAgICAgICAgICAgICAgICAgIGNsYXNzPSJ3aWRnZXQtaGVhZGVyICR7aGU/ImxvY2tlZCI6IiJ9IgogICAgICAgICAgICAgICAgICBAcG9pbnRlcmRvd249JHshaGUmJiFCLm5vTW92ZT92ZT0+dGhpcy5zdGFydERyYWcodmUsQik6bnVsbH0KICAgICAgICAgICAgICAgICAgQGNvbnRleHRtZW51PSR7dmU9PnRoaXMuaGFuZGxlV2lkZ2V0Q29udGV4dE1lbnUodmUsQil9CiAgICAgICAgICAgICAgICAgIHRhYmluZGV4PSR7IWhlJiYhQi5ub01vdmU/MDotMX0KICAgICAgICAgICAgICAgICAgQGtleWRvd249JHt2ZT0+dGhpcy5oYW5kbGVIZWFkZXJLZXlkb3duKHZlLEIpfQogICAgICAgICAgICAgICAgPgogICAgICAgICAgICAgICAgICAke0IuaWNvbj93YDxkZWVzLWljb24gLmljb249JHtCLmljb259PjwvZGVlcy1pY29uPmA6bnVsbH0KICAgICAgICAgICAgICAgICAgJHtCLnRpdGxlfQogICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgYDpudWxsfQogICAgICAgICAgPGRpdiBjbGFzcz0id2lkZ2V0LWJvZHkgJHtCLnRpdGxlPyJoYXMtaGVhZGVyIjoiIn0iPgogICAgICAgICAgICAke0IuY29udGVudH0KICAgICAgICAgIDwvZGl2PgogICAgICAgICAgJHshaGUmJiFCLm5vUmVzaXplP3dgCiAgICAgICAgICAgICAgICA8ZGl2CiAgICAgICAgICAgICAgICAgIGNsYXNzPSJyZXNpemUtaGFuZGxlIHJlc2l6ZS1oYW5kbGUtZSIKICAgICAgICAgICAgICAgICAgQHBvaW50ZXJkb3duPSR7dmU9PnRoaXMuc3RhcnRSZXNpemUodmUsQiwiZSIpfQogICAgICAgICAgICAgICAgPjwvZGl2PgogICAgICAgICAgICAgICAgPGRpdgogICAgICAgICAgICAgICAgICBjbGFzcz0icmVzaXplLWhhbmRsZSByZXNpemUtaGFuZGxlLXMiCiAgICAgICAgICAgICAgICAgIEBwb2ludGVyZG93bj0ke3ZlPT50aGlzLnN0YXJ0UmVzaXplKHZlLEIsInMiKX0KICAgICAgICAgICAgICAgID48L2Rpdj4KICAgICAgICAgICAgICAgIDxkaXYKICAgICAgICAgICAgICAgICAgY2xhc3M9InJlc2l6ZS1oYW5kbGUgcmVzaXplLWhhbmRsZS1zZSIKICAgICAgICAgICAgICAgICAgQHBvaW50ZXJkb3duPSR7dmU9PnRoaXMuc3RhcnRSZXNpemUodmUsQiwic2UiKX0KICAgICAgICAgICAgICAgID48L2Rpdj4KICAgICAgICAgICAgICBgOm51bGx9CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGl2PgogICAgYH1yZW5kZXJQbGFjZWhvbGRlcihCLFApe2lmKCF0aGlzLnBsYWNlaG9sZGVyUG9zaXRpb24pcmV0dXJuIHdgYDtsZXQgSz10aGlzLmNvbXB1dGVXaWRnZXRSZWN0KHRoaXMucGxhY2Vob2xkZXJQb3NpdGlvbixCLFApLGZlPXRoaXMucnRsPyJyaWdodCI6ImxlZnQiLGRlPXRoaXMucHhUb1BlcmNlbnQoSy5sZWZ0LEIuY29udGFpbmVyV2lkdGgpLF9lPXRoaXMucHhUb1BlcmNlbnQoSy53aWR0aCxCLmNvbnRhaW5lcldpZHRoKTtyZXR1cm4gd2AKICAgICAgPGRpdgogICAgICAgIGNsYXNzPSJncmlkLXdpZGdldCBwbGFjZWhvbGRlciIKICAgICAgICBzdHlsZT0iCiAgICAgICAgICAke2ZlfTogJHtkZX0lOwogICAgICAgICAgdG9wOiAke0sudG9wfXB4OwogICAgICAgICAgd2lkdGg6ICR7X2V9JTsKICAgICAgICAgIGhlaWdodDogJHtLLmhlaWdodH1weDsKICAgICAgICAiCiAgICAgID4KICAgICAgICA8ZGl2IGNsYXNzPSJ3aWRnZXQtY29udGVudCI+PC9kaXY+CiAgICAgIDwvZGl2PgogICAgYH1zdGFydERyYWcoQixQKXtpZighdGhpcy5lZGl0YWJsZXx8UC5ub01vdmV8fFAubG9ja2VkKXJldHVybjtCLnByZXZlbnREZWZhdWx0KCksQi5zdG9wUHJvcGFnYXRpb24oKTtsZXQgSz1CLmN1cnJlbnRUYXJnZXQuY2xvc2VzdCgiLmdyaWQtd2lkZ2V0Iik7aWYoIUspcmV0dXJuO2xldCBmZT1LLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO3RoaXMuY29udGFpbmVyQm91bmRzPXRoaXMuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCksdGhpcy5lbnN1cmVNZXRyaWNzKCksdGhpcy5kcmFnU3RhdGU9e3dpZGdldElkOlAuaWQscG9pbnRlcklkOkIucG9pbnRlcklkLG9mZnNldFg6Qi5jbGllbnRYLWZlLmxlZnQsb2Zmc2V0WTpCLmNsaWVudFktZmUudG9wLHN0YXJ0OntpZDpQLmlkLHg6UC54LHk6UC55LHc6UC53LGg6UC5ofSxwcmV2aW91c1Bvc2l0aW9uOntpZDpQLmlkLHg6UC54LHk6UC55LHc6UC53LGg6UC5ofSxjdXJyZW50UG9pbnRlcjp7Y2xpZW50WDpCLmNsaWVudFgsY2xpZW50WTpCLmNsaWVudFl9LGxhc3RQbGFjZW1lbnQ6bnVsbH0sdGhpcy5pbnRlcmFjdGlvbkFjdGl2ZT0hMCxCLmN1cnJlbnRUYXJnZXQuc2V0UG9pbnRlckNhcHR1cmUoQi5wb2ludGVySWQpLGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoInBvaW50ZXJtb3ZlIix0aGlzLmhhbmRsZURyYWdNb3ZlKSxkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCJwb2ludGVydXAiLHRoaXMuaGFuZGxlRHJhZ0VuZCksdGhpcy5wbGFjZWhvbGRlclBvc2l0aW9uPXtpZDpQLmlkLHg6UC54LHk6UC55LHc6UC53LGg6UC5ofX1oYW5kbGVEcmFnTW92ZT1CPT57aWYoIXRoaXMuZHJhZ1N0YXRlKXJldHVybjtsZXQgUD10aGlzLmVuc3VyZU1ldHJpY3MoKSxLPXRoaXMud2lkZ2V0cyxmZT1LLmZpbmQodGU9PnRlLmlkPT09dGhpcy5kcmFnU3RhdGUud2lkZ2V0SWQpO2lmKCFmZSlyZXR1cm47Qi5wcmV2ZW50RGVmYXVsdCgpO2xldCBkZT10aGlzLmRyYWdTdGF0ZS5wcmV2aW91c1Bvc2l0aW9uLF9lPXNidCh7cG9pbnRlcjp7Y2xpZW50WDpCLmNsaWVudFgsY2xpZW50WTpCLmNsaWVudFl9LGNvbnRhaW5lclJlY3Q6dGhpcy5jb250YWluZXJCb3VuZHM/P3RoaXMuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCksbWV0cmljczpQLGNvbHVtbnM6dGhpcy5jb2x1bW5zLHdpZGdldDpmZSxydGw6dGhpcy5ydGwsZHJhZ09mZnNldFg6dGhpcy5kcmFnU3RhdGUub2Zmc2V0WCxkcmFnT2Zmc2V0WTp0aGlzLmRyYWdTdGF0ZS5vZmZzZXRZfSksaGU9Z28oSyxmZS5pZCx7eDpfZS54LHk6X2UueX0sdGhpcy5jb2x1bW5zLGRlKTtpZihoZSl7bGV0IHRlPWhlLndpZGdldHMuZmluZChGZT0+RmUuaWQ9PT1mZS5pZCk7dGhpcy5kcmFnU3RhdGU9ey4uLnRoaXMuZHJhZ1N0YXRlLGN1cnJlbnRQb2ludGVyOntjbGllbnRYOkIuY2xpZW50WCxjbGllbnRZOkIuY2xpZW50WX0sbGFzdFBsYWNlbWVudDpoZSxwcmV2aW91c1Bvc2l0aW9uOnRlP3tpZDp0ZS5pZCx4OnRlLngseTp0ZS55LHc6dGUudyxoOnRlLmh9OntpZDpmZS5pZCx4Ol9lLngseTpfZS55LHc6ZmUudyxoOmZlLmh9fSx0aGlzLnByZXZpZXdXaWRnZXRzPWhlLndpZGdldHM7bGV0IHplPWhlLndpZGdldHMuZmluZChGZT0+RmUuaWQ9PT1mZS5pZCk7emU/dGhpcy5wbGFjZWhvbGRlclBvc2l0aW9uPXtpZDp6ZS5pZCx4OnplLngseTp6ZS55LHc6emUudyxoOnplLmh9OnRoaXMucGxhY2Vob2xkZXJQb3NpdGlvbj17aWQ6ZmUuaWQseDpfZS54LHk6X2UueSx3OmZlLncsaDpmZS5ofX1lbHNlIHRoaXMucHJldmlld1dpZGdldHM9bnVsbCx0aGlzLnBsYWNlaG9sZGVyUG9zaXRpb249bnVsbDt0aGlzLnJlcXVlc3RVcGRhdGUoKX07aGFuZGxlRHJhZ0VuZD1CPT57bGV0IFA9dGhpcy5kcmFnU3RhdGU7aWYoIVB8fEIucG9pbnRlcklkIT09UC5wb2ludGVySWQpcmV0dXJuO2xldCBLPXRoaXMud2lkZ2V0czt0aGlzLnByZXZpZXdXaWRnZXRzPW51bGw7bGV0IGZlPXRoaXMucGxhY2Vob2xkZXJQb3NpdGlvbj8/UC5zdGFydCxkZT1nbyhLLFAud2lkZ2V0SWQse3g6ZmUueCx5OmZlLnl9LHRoaXMuY29sdW1ucyxQLnByZXZpb3VzUG9zaXRpb24pO2lmKGRlKXtsZXQgX2U9ZGUud2lkZ2V0cy5maW5kKGhlPT5oZS5pZD09PVAud2lkZ2V0SWQpO19lJiYoZGUud2lkZ2V0cy5zb21lKHRlPT50ZS5pZD09PVAud2lkZ2V0SWQ/ITE6X2UueDx0ZS54K3RlLncmJl9lLngrX2Uudz50ZS54JiZfZS55PHRlLnkrdGUuaCYmX2UueStfZS5oPnRlLnkpP3RoaXMud2lkZ2V0cz10aGlzLndpZGdldHMubWFwKHRlPT50ZS5pZD09PVAud2lkZ2V0SWQ/ey4uLnRlLHg6UC5zdGFydC54LHk6UC5zdGFydC55fTp0ZSk6dGhpcy5jb21taXRQbGFjZW1lbnQoZGUsUC53aWRnZXRJZCwid2lkZ2V0LW1vdmUiKSl9ZWxzZSB0aGlzLndpZGdldHM9dGhpcy53aWRnZXRzLm1hcChfZT0+X2UuaWQ9PT1QLndpZGdldElkP3suLi5fZSx4OlAuc3RhcnQueCx5OlAuc3RhcnQueX06X2UpO3RoaXMucGxhY2Vob2xkZXJQb3NpdGlvbj1udWxsLHRoaXMuZHJhZ1N0YXRlPW51bGwsdGhpcy5pbnRlcmFjdGlvbkFjdGl2ZT0hMSx0aGlzLnJlbGVhc2VQb2ludGVyRXZlbnRzKCl9O3N0YXJ0UmVzaXplKEIsUCxLKXshdGhpcy5lZGl0YWJsZXx8UC5ub1Jlc2l6ZXx8UC5sb2NrZWR8fChCLnByZXZlbnREZWZhdWx0KCksQi5zdG9wUHJvcGFnYXRpb24oKSx0aGlzLmVuc3VyZU1ldHJpY3MoKSx0aGlzLnJlc2l6ZVN0YXRlPXt3aWRnZXRJZDpQLmlkLHBvaW50ZXJJZDpCLnBvaW50ZXJJZCxoYW5kbGVyOkssc3RhcnRQb2ludGVyOntjbGllbnRYOkIuY2xpZW50WCxjbGllbnRZOkIuY2xpZW50WX0sc3RhcnQ6e2lkOlAuaWQseDpQLngseTpQLnksdzpQLncsaDpQLmh9LHN0YXJ0V2lkdGg6UC53LHN0YXJ0SGVpZ2h0OlAuaCxsYXN0UGxhY2VtZW50Om51bGx9LHRoaXMuaW50ZXJhY3Rpb25BY3RpdmU9ITAsQi5jdXJyZW50VGFyZ2V0LnNldFBvaW50ZXJDYXB0dXJlKEIucG9pbnRlcklkKSxkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCJwb2ludGVybW92ZSIsdGhpcy5oYW5kbGVSZXNpemVNb3ZlKSxkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCJwb2ludGVydXAiLHRoaXMuaGFuZGxlUmVzaXplRW5kKSx0aGlzLnBsYWNlaG9sZGVyUG9zaXRpb249e2lkOlAuaWQseDpQLngseTpQLnksdzpQLncsaDpQLmh9KX1oYW5kbGVSZXNpemVNb3ZlPUI9PntpZighdGhpcy5yZXNpemVTdGF0ZSlyZXR1cm47bGV0IFA9dGhpcy5lbnN1cmVNZXRyaWNzKCksSz10aGlzLndpZGdldHMsZmU9Sy5maW5kKGhlPT5oZS5pZD09PXRoaXMucmVzaXplU3RhdGUud2lkZ2V0SWQpO2lmKCFmZSlyZXR1cm47Qi5wcmV2ZW50RGVmYXVsdCgpO2xldCBkZT1uYnQoe3BvaW50ZXI6e2NsaWVudFg6Qi5jbGllbnRYLGNsaWVudFk6Qi5jbGllbnRZfSxjb250YWluZXJSZWN0OnRoaXMuY29udGFpbmVyQm91bmRzPz90aGlzLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLG1ldHJpY3M6UCxzdGFydFdpZHRoOnRoaXMucmVzaXplU3RhdGUuc3RhcnRXaWR0aCxzdGFydEhlaWdodDp0aGlzLnJlc2l6ZVN0YXRlLnN0YXJ0SGVpZ2h0LHN0YXJ0UG9pbnRlcjp0aGlzLnJlc2l6ZVN0YXRlLnN0YXJ0UG9pbnRlcixoYW5kbGVyOnRoaXMucmVzaXplU3RhdGUuaGFuZGxlcix3aWRnZXQ6ZmUsY29sdW1uczp0aGlzLmNvbHVtbnN9KSxfZT1nbyhLLGZlLmlkLHt4OmZlLngseTpmZS55LHc6ZGUud2lkdGgsaDpkZS5oZWlnaHR9LHRoaXMuY29sdW1ucyx0aGlzLnJlc2l6ZVN0YXRlLnN0YXJ0KTtpZihfZSl7dGhpcy5yZXNpemVTdGF0ZT17Li4udGhpcy5yZXNpemVTdGF0ZSxsYXN0UGxhY2VtZW50Ol9lfSx0aGlzLnByZXZpZXdXaWRnZXRzPV9lLndpZGdldHM7bGV0IGhlPV9lLndpZGdldHMuZmluZCh0ZT0+dGUuaWQ9PT1mZS5pZCk7aGU/dGhpcy5wbGFjZWhvbGRlclBvc2l0aW9uPXtpZDpoZS5pZCx4OmhlLngseTpoZS55LHc6aGUudyxoOmhlLmh9OnRoaXMucGxhY2Vob2xkZXJQb3NpdGlvbj17aWQ6ZmUuaWQseDpmZS54LHk6ZmUueSx3OmRlLndpZHRoLGg6ZGUuaGVpZ2h0fX1lbHNlIHRoaXMucHJldmlld1dpZGdldHM9bnVsbCx0aGlzLnBsYWNlaG9sZGVyUG9zaXRpb249bnVsbDt0aGlzLnJlcXVlc3RVcGRhdGUoKX07aGFuZGxlUmVzaXplRW5kPUI9PntsZXQgUD10aGlzLnJlc2l6ZVN0YXRlO2lmKCFQfHxCLnBvaW50ZXJJZCE9PVAucG9pbnRlcklkKXJldHVybjtsZXQgSz10aGlzLndpZGdldHM7dGhpcy5wcmV2aWV3V2lkZ2V0cz1udWxsO2xldCBmZT1QLmxhc3RQbGFjZW1lbnQ/P2dvKEssUC53aWRnZXRJZCx7eDp0aGlzLnBsYWNlaG9sZGVyUG9zaXRpb24/Lng/P1Auc3RhcnQueCx5OnRoaXMucGxhY2Vob2xkZXJQb3NpdGlvbj8ueT8/UC5zdGFydC55LHc6dGhpcy5wbGFjZWhvbGRlclBvc2l0aW9uPy53Pz9QLnN0YXJ0LncsaDp0aGlzLnBsYWNlaG9sZGVyUG9zaXRpb24/Lmg/P1Auc3RhcnQuaH0sdGhpcy5jb2x1bW5zLFAuc3RhcnQpO2ZlP3RoaXMuY29tbWl0UGxhY2VtZW50KGZlLFAud2lkZ2V0SWQsIndpZGdldC1yZXNpemUiKTp0aGlzLndpZGdldHM9dGhpcy53aWRnZXRzLm1hcChkZT0+ZGUuaWQ9PT1QLndpZGdldElkP3suLi5kZSx3OlAuc3RhcnQudyxoOlAuc3RhcnQuaH06ZGUpLHRoaXMucGxhY2Vob2xkZXJQb3NpdGlvbj1udWxsLHRoaXMucmVzaXplU3RhdGU9bnVsbCx0aGlzLmludGVyYWN0aW9uQWN0aXZlPSExLHRoaXMucmVsZWFzZVBvaW50ZXJFdmVudHMoKX07aGFuZGxlSGVhZGVyS2V5ZG93bihCLFApe2lmKCF0aGlzLmVkaXRhYmxlfHxQLm5vTW92ZXx8UC5sb2NrZWQpcmV0dXJuO2xldCBLPUIua2V5LGZlPUIuc2hpZnRLZXksZGU9bnVsbDtpZihmZSYmWyJBcnJvd0xlZnQiLCJBcnJvd1JpZ2h0IiwiQXJyb3dVcCIsIkFycm93RG93biJdLmluY2x1ZGVzKEspKXtCLnByZXZlbnREZWZhdWx0KCk7bGV0IEZlPUs9PT0iQXJyb3dSaWdodCJ8fEs9PT0iQXJyb3dEb3duIj8xOi0xO2lmKEs9PT0iQXJyb3dMZWZ0Inx8Sz09PSJBcnJvd1JpZ2h0Iil7bGV0IFdlPVAubWF4Vz8/dGhpcy5jb2x1bW5zLVAueCx5ZT1NYXRoLm1heChQLm1pblc/PzEsTWF0aC5taW4oV2UsUC53K0ZlKSk7ZGU9Z28odGhpcy53aWRnZXRzLFAuaWQse3g6UC54LHk6UC55LHc6eWUsaDpQLmh9LHRoaXMuY29sdW1ucyl9ZWxzZXtsZXQgV2U9UC5tYXhIPz9OdW1iZXIuUE9TSVRJVkVfSU5GSU5JVFkseWU9TWF0aC5tYXgoUC5taW5IPz8xLE1hdGgubWluKFdlLFAuaCtGZSkpO2RlPWdvKHRoaXMud2lkZ2V0cyxQLmlkLHt4OlAueCx5OlAueSx3OlAudyxoOnllfSx0aGlzLmNvbHVtbnMpfWRlJiZ0aGlzLmNvbW1pdFBsYWNlbWVudChkZSxQLmlkLCJ3aWRnZXQtcmVzaXplIik7cmV0dXJufWxldCBoZT17QXJyb3dMZWZ0OntkeDotMSxkeTowfSxBcnJvd1JpZ2h0OntkeDoxLGR5OjB9LEFycm93VXA6e2R4OjAsZHk6LTF9LEFycm93RG93bjp7ZHg6MCxkeToxfX1bS107aWYoIWhlKXJldHVybjtCLnByZXZlbnREZWZhdWx0KCk7bGV0IHRlPU1hdGgubWF4KDAsTWF0aC5taW4odGhpcy5jb2x1bW5zLVAudyxQLngraGUuZHgpKSx6ZT1NYXRoLm1heCgwLFAueStoZS5keSk7ZGU9Z28odGhpcy53aWRnZXRzLFAuaWQse3g6dGUseTp6ZX0sdGhpcy5jb2x1bW5zKSxkZSYmdGhpcy5jb21taXRQbGFjZW1lbnQoZGUsUC5pZCwid2lkZ2V0LW1vdmUiKX1oYW5kbGVXaWRnZXRDb250ZXh0TWVudShCLFApe0IucHJldmVudERlZmF1bHQoKSxCLnN0b3BQcm9wYWdhdGlvbigpLGxidCh7d2lkZ2V0OlAsaG9zdDp0aGlzLGV2ZW50OkJ9KX1jb21taXRQbGFjZW1lbnQoQixQLEspe3RoaXMucHJldmlld1dpZGdldHM9bnVsbCx0aGlzLndpZGdldHM9Qi53aWRnZXRzO2xldCBmZT10aGlzLndpZGdldHMuZmluZChkZT0+ZGUuaWQ9PT1QKTtmZSYmdGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBDdXN0b21FdmVudChLLHtkZXRhaWw6e3dpZGdldDpmZSxkaXNwbGFjZWQ6Qi5tb3ZlZFdpZGdldHMuZmlsdGVyKGRlPT5kZSE9PVApLHN3YXBwZWRXaXRoOkIuc3dhcHBlZFdpdGh9LGJ1YmJsZXM6ITAsY29tcG9zZWQ6ITB9KSl9cmVtb3ZlV2lkZ2V0KEIpe2xldCBQPXRoaXMud2lkZ2V0cy5maW5kKEs9PksuaWQ9PT1CKTtQJiYodGhpcy53aWRnZXRzPXRoaXMud2lkZ2V0cy5maWx0ZXIoSz0+Sy5pZCE9PUIpLHRoaXMuZGlzcGF0Y2hFdmVudChuZXcgQ3VzdG9tRXZlbnQoIndpZGdldC1yZW1vdmUiLHtkZXRhaWw6e3dpZGdldDpQfSxidWJibGVzOiEwLGNvbXBvc2VkOiEwfSkpKX11cGRhdGVXaWRnZXQoQixQKXt0aGlzLndpZGdldHM9dGhpcy53aWRnZXRzLm1hcChLPT5LLmlkPT09Qj97Li4uSywuLi5QfTpLKX1nZXRMYXlvdXQoKXtyZXR1cm4gdGhpcy53aWRnZXRzLm1hcCgoe2lkOkIseDpQLHk6Syx3OmZlLGg6ZGV9KT0+KHtpZDpCLHg6UCx5OkssdzpmZSxoOmRlfSkpfXNldExheW91dChCKXt0aGlzLndpZGdldHM9aWJ0KHRoaXMud2lkZ2V0cyxCKX1sb2NrR3JpZCgpe3RoaXMuZWRpdGFibGU9ITF9dW5sb2NrR3JpZCgpe3RoaXMuZWRpdGFibGU9ITB9YWRkV2lkZ2V0KEIsUD0hMSl7bGV0IEs9ey4uLkJ9O2lmKFB8fEsuYXV0b1Bvc2l0aW9uKXtsZXQgZmU9SVYodGhpcy53aWRnZXRzLEsudyxLLmgsdGhpcy5jb2x1bW5zKTtLLng9ZmUueCxLLnk9ZmUueX10aGlzLndpZGdldHM9Wy4uLnRoaXMud2lkZ2V0cyxLXX1jb21wYWN0KEI9InZlcnRpY2FsIil7bGV0IFA9dGhpcy53aWRnZXRzLm1hcChLPT4oey4uLkt9KSk7YWJ0KFAsQiksdGhpcy53aWRnZXRzPVB9YXBwbHlCcmVha3BvaW50TGF5b3V0KEIpe3RoaXMuYWN0aXZlQnJlYWtwb2ludD1CO2xldCBQPXRoaXMubGF5b3V0cz8uW0JdO1AmJnRoaXMuc2V0TGF5b3V0KFApfW5vdGlmeUxheW91dENoYW5nZSgpe3RoaXMuZGlzcGF0Y2hFdmVudChuZXcgQ3VzdG9tRXZlbnQoImxheW91dC1jaGFuZ2UiLHtkZXRhaWw6e2xheW91dDp0aGlzLmdldExheW91dCgpfSxidWJibGVzOiEwLGNvbXBvc2VkOiEwfSkpfWVuc3VyZU1ldHJpY3MoKXtyZXR1cm4gdGhpcy5tZXRyaWNzfHx0aGlzLmNvbXB1dGVNZXRyaWNzKCksdGhpcy5tZXRyaWNzfWNvbXB1dGVNZXRyaWNzKCl7aWYoIXRoaXMuaXNDb25uZWN0ZWQpcmV0dXJuO2xldCBCPXRoaXMuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7dGhpcy5jb250YWluZXJCb3VuZHM9QjtsZXQgUD1QVih0aGlzLm1hcmdpbik7dGhpcy5yZXNvbHZlZE1hcmdpbnM9UCx0aGlzLm1ldHJpY3M9ZWJ0KEIud2lkdGgsdGhpcy5jb2x1bW5zLFAsdGhpcy5jZWxsSGVpZ2h0LHRoaXMuY2VsbEhlaWdodFVuaXQpfW9ic2VydmVSZXNpemUoKXt0aGlzLnJlc2l6ZU9ic2VydmVyfHwodGhpcy5yZXNpemVPYnNlcnZlcj1uZXcgUmVzaXplT2JzZXJ2ZXIoKCk9Pnt0aGlzLmNvbXB1dGVNZXRyaWNzKCl9KSx0aGlzLnJlc2l6ZU9ic2VydmVyLm9ic2VydmUodGhpcykpfWRpc2Nvbm5lY3RSZXNpemVPYnNlcnZlcigpe3RoaXMucmVzaXplT2JzZXJ2ZXI/LmRpc2Nvbm5lY3QoKSx0aGlzLnJlc2l6ZU9ic2VydmVyPXZvaWQgMH1yZWxlYXNlUG9pbnRlckV2ZW50cygpe2RvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoInBvaW50ZXJtb3ZlIix0aGlzLmhhbmRsZURyYWdNb3ZlKSxkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCJwb2ludGVydXAiLHRoaXMuaGFuZGxlRHJhZ0VuZCksZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcigicG9pbnRlcm1vdmUiLHRoaXMuaGFuZGxlUmVzaXplTW92ZSksZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcigicG9pbnRlcnVwIix0aGlzLmhhbmRsZVJlc2l6ZUVuZCl9cHhUb1BlcmNlbnQoQixQKXtyZXR1cm4gUD9OdW1iZXIoKEIvUCoxMDApLnRvRml4ZWQoNCkpOjB9Y29tcHV0ZVdpZGdldFJlY3QoQixQLEspe2xldCBmZT1QLmNlbGxXaWR0aFB4LGRlPVAuY2VsbEhlaWdodFB4LF9lPUIueCooZmUrSy5ob3Jpem9udGFsKStLLmhvcml6b250YWwsaGU9Qi55KihkZStLLnZlcnRpY2FsKStLLnZlcnRpY2FsLHRlPUIudypmZStNYXRoLm1heCgwLEIudy0xKSpLLmhvcml6b250YWwsemU9Qi5oKmRlK01hdGgubWF4KDAsQi5oLTEpKksudmVydGljYWw7cmV0dXJue2xlZnQ6X2UsdG9wOmhlLHdpZHRoOnRlLGhlaWdodDp6ZX19c3RhdGlje0d0KGksYSl9fTtyZXR1cm4gJGU9aX0pKCl9KTt2YXIgcGJ0PWIoKCk9PntoYnQoKX0pO2Z1bmN0aW9uIHVidCgpe3JldHVybiB3YAogICAgPGRlZXMtaGVhZGluZyBsZXZlbD0iMSI+VGhpcyBpcyBhIEgxIGhlYWRpbmc8L2RlZXMtaGVhZGluZz4KICAgIDxkZWVzLWhlYWRpbmcgbGV2ZWw9IjIiPlRoaXMgaXMgYSBIMiBoZWFkaW5nPC9kZWVzLWhlYWRpbmc+CiAgICA8ZGVlcy1oZWFkaW5nIGxldmVsPSIzIj5UaGlzIGlzIGEgSDMgaGVhZGluZzwvZGVlcy1oZWFkaW5nPgogICAgPGRlZXMtaGVhZGluZyBsZXZlbD0iNCI+VGhpcyBpcyBhIEg0IGhlYWRpbmc8L2RlZXMtaGVhZGluZz4KICAgIDxkZWVzLWhlYWRpbmcgbGV2ZWw9IjUiPlRoaXMgaXMgYSBINSBoZWFkaW5nPC9kZWVzLWhlYWRpbmc+CiAgICA8ZGVlcy1oZWFkaW5nIGxldmVsPSI2Ij5UaGlzIGlzIGEgSDYgaGVhZGluZzwvZGVlcy1oZWFkaW5nPgogICAgPGRlZXMtaGVhZGluZyBsZXZlbD0iaHIiPlRoaXMgaXMgYW4gaHIgaGVhZGluZzwvZGVlcy1oZWFkaW5nPgogICAgPGRlZXMtaGVhZGluZyBsZXZlbD0iaHItc21hbGwiPlRoaXMgaXMgYW4gaHIgc21hbGwgaGVhZGluZzwvZGVlcy1oZWFkaW5nPgogIGB9dmFyIGZidD1iKCgpPT57dWUoKX0pO3ZhciBtYnQsTlYsZ2J0LGJidD1iKCgpPT57dWUoKTtmYnQoKTtkYSgpO3FlKCk7bWJ0PWZ1bmN0aW9uKHQsZSxhLGkscixzKXtmdW5jdGlvbiBuKHgpe2lmKHghPT12b2lkIDAmJnR5cGVvZiB4IT0iZnVuY3Rpb24iKXRocm93IG5ldyBUeXBlRXJyb3IoIkZ1bmN0aW9uIGV4cGVjdGVkIik7cmV0dXJuIHh9Zm9yKHZhciBvPWkua2luZCxkPW89PT0iZ2V0dGVyIj8iZ2V0IjpvPT09InNldHRlciI/InNldCI6InZhbHVlIixjPSFlJiZ0P2kuc3RhdGljP3Q6dC5wcm90b3R5cGU6bnVsbCxoPWV8fChjP09iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoYyxpLm5hbWUpOnt9KSxsLGY9ITEsZz1hLmxlbmd0aC0xO2c+PTA7Zy0tKXt2YXIgeT17fTtmb3IodmFyIHYgaW4gaSl5W3ZdPXY9PT0iYWNjZXNzIj97fTppW3ZdO2Zvcih2YXIgdiBpbiBpLmFjY2Vzcyl5LmFjY2Vzc1t2XT1pLmFjY2Vzc1t2XTt5LmFkZEluaXRpYWxpemVyPWZ1bmN0aW9uKHgpe2lmKGYpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGFkZCBpbml0aWFsaXplcnMgYWZ0ZXIgZGVjb3JhdGlvbiBoYXMgY29tcGxldGVkIik7cy5wdXNoKG4oeHx8bnVsbCkpfTt2YXIgbT0oMCxhW2ddKShvPT09ImFjY2Vzc29yIj97Z2V0OmguZ2V0LHNldDpoLnNldH06aFtkXSx5KTtpZihvPT09ImFjY2Vzc29yIil7aWYobT09PXZvaWQgMCljb250aW51ZTtpZihtPT09bnVsbHx8dHlwZW9mIG0hPSJvYmplY3QiKXRocm93IG5ldyBUeXBlRXJyb3IoIk9iamVjdCBleHBlY3RlZCIpOyhsPW4obS5nZXQpKSYmKGguZ2V0PWwpLChsPW4obS5zZXQpKSYmKGguc2V0PWwpLChsPW4obS5pbml0KSkmJnIudW5zaGlmdChsKX1lbHNlKGw9bihtKSkmJihvPT09ImZpZWxkIj9yLnVuc2hpZnQobCk6aFtkXT1sKX1jJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoYyxpLm5hbWUsaCksZj0hMH0sTlY9ZnVuY3Rpb24odCxlLGEpe2Zvcih2YXIgaT1hcmd1bWVudHMubGVuZ3RoPjIscj0wO3I8ZS5sZW5ndGg7cisrKWE9aT9lW3JdLmNhbGwodCxhKTplW3JdLmNhbGwodCk7cmV0dXJuIGk/YTp2b2lkIDB9LGdidD0oKCk9PntsZXQgdD1bcGUoImRlZXMtaGVhZGluZyIpXSxlLGE9W10saSxyPXhlLHMsbj1bXSxvPVtdO3ZhciBkPWNsYXNzIGV4dGVuZHMgcntzdGF0aWN7aT10aGlzfXN0YXRpY3tsZXQgYz10eXBlb2YgU3ltYm9sPT0iZnVuY3Rpb24iJiZTeW1ib2wubWV0YWRhdGE/T2JqZWN0LmNyZWF0ZShyW1N5bWJvbC5tZXRhZGF0YV0/P251bGwpOnZvaWQgMDtzPVtJKHt0eXBlOlN0cmluZyxyZWZsZWN0OiEwfSldLG1idCh0aGlzLG51bGwscyx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImxldmVsIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpoPT4ibGV2ZWwiaW4gaCxnZXQ6aD0+aC5sZXZlbCxzZXQ6KGgsbCk9PntoLmxldmVsPWx9fSxtZXRhZGF0YTpjfSxuLG8pLG1idChudWxsLGU9e3ZhbHVlOml9LHQse2tpbmQ6ImNsYXNzIixuYW1lOmkubmFtZSxtZXRhZGF0YTpjfSxudWxsLGEpLGQ9aT1lLnZhbHVlLGMmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShpLFN5bWJvbC5tZXRhZGF0YSx7ZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITAsdmFsdWU6Y30pfXN0YXRpYyBkZW1vPXVidDtzdGF0aWMgZGVtb0dyb3Vwcz1bIkxheW91dCJdOyNlPU5WKHRoaXMsbiwiMSIpO2dldCBsZXZlbCgpe3JldHVybiB0aGlzLiNlfXNldCBsZXZlbChjKXt0aGlzLiNlPWN9c3RhdGljIHN0eWxlcz1bQ2UscC5kZWZhdWx0U3R5bGVzLFFgCiAgICAgIC8qIFRPRE86IE1pZ3JhdGUgaGFyZGNvZGVkIHZhbHVlcyB0byAtLWRlZXMtKiBDU1MgdmFyaWFibGVzICovCiAgICAgIC8qIEhlYWRpbmcgc3R5bGVzICovCiAgICAgIGgxLCBoMiwgaDMsIGg0LCBoNSwgaDYgewogICAgICAgIG1hcmdpbjogMTZweCAwIDhweDsKICAgICAgICBmb250LXdlaWdodDogNjAwOwogICAgICAgIGNvbG9yOiAke3AuYmRUaGVtZSgiIzAwMCIsIiNmZmYiKX07CiAgICAgIH0KICAgICAgaDEgeyBmb250LXNpemU6IDMycHg7IGZvbnQtZmFtaWx5OiAke0Q5dH07IGxldHRlci1zcGFjaW5nOiAwLjAyNWVtO30KICAgICAgaDIgeyBmb250LXNpemU6IDI4cHg7IH0KICAgICAgaDMgeyBmb250LXNpemU6IDI0cHg7IH0KICAgICAgaDQgeyBmb250LXNpemU6IDIwcHg7IH0KICAgICAgaDUgeyBmb250LXNpemU6IDE2cHg7IH0KICAgICAgaDYgeyBmb250LXNpemU6IDE0cHg7IH0KICAgICAgLyogSG9yaXpvbnRhbCBydWxlIHN0eWxlIGhlYWRpbmcgKi8KICAgICAgLmhlYWRpbmctaHIgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7CiAgICAgICAgbWFyZ2luOiAxNnB4IDA7CiAgICAgICAgY29sb3I6ICR7cC5iZFRoZW1lKCIjMDAwIiwiI2ZmZiIpfTsKICAgICAgfQogICAgICAvKiBGYWRlIGxpbmVzIHRvd2FyZCBhbmQgYXdheSBmcm9tIHRleHQgZm9yIGhyIHN0eWxlICovCiAgICAgIC5oZWFkaW5nLWhyOjpiZWZvcmUgewogICAgICAgIGNvbnRlbnQ6ICcnOwogICAgICAgIGZsZXg6IDE7CiAgICAgICAgaGVpZ2h0OiAxcHg7CiAgICAgICAgLyogZmFkZSBpbiB0b3dhcmQgY2VudGVyICovCiAgICAgICAgYmFja2dyb3VuZDogJHtwLmJkVGhlbWUoImxpbmVhci1ncmFkaWVudCh0byByaWdodCwgdHJhbnNwYXJlbnQsICNjY2MpIiwibGluZWFyLWdyYWRpZW50KHRvIHJpZ2h0LCB0cmFuc3BhcmVudCwgIzMzMykiKX07CiAgICAgICAgbWFyZ2luOiAwIDhweDsKICAgICAgfQogICAgICAuaGVhZGluZy1ocjo6YWZ0ZXIgewogICAgICAgIGNvbnRlbnQ6ICcnOwogICAgICAgIGZsZXg6IDE7CiAgICAgICAgaGVpZ2h0OiAxcHg7CiAgICAgICAgLyogZmFkZSBvdXQgYXdheSBmcm9tIGNlbnRlciAqLwogICAgICAgIGJhY2tncm91bmQ6ICR7cC5iZFRoZW1lKCJsaW5lYXItZ3JhZGllbnQodG8gcmlnaHQsICNjY2MsIHRyYW5zcGFyZW50KSIsImxpbmVhci1ncmFkaWVudCh0byByaWdodCwgIzMzMywgdHJhbnNwYXJlbnQpIil9OwogICAgICAgIG1hcmdpbjogMCA4cHg7CiAgICAgIH0KICAgICAgLyogU21hbGwgaHIgdmFyaWFudCB3aXRoIHJlZHVjZWQgbWFyZ2lucyAqLwogICAgICAuaGVhZGluZy1oci5oZWFkaW5nLWhyLXNtYWxsIHsKICAgICAgICBtYXJnaW46IDhweCAwOwogICAgICAgIGZvbnQtc2l6ZTogMTJweDsKICAgICAgfQogICAgICAuaGVhZGluZy1oci5oZWFkaW5nLWhyLXNtYWxsOjpiZWZvcmUsCiAgICAgIC5oZWFkaW5nLWhyLmhlYWRpbmctaHItc21hbGw6OmFmdGVyIHsKICAgICAgICBtYXJnaW46IDAgOHB4OwogICAgICB9CiAgICBgXTtyZW5kZXIoKXtzd2l0Y2godGhpcy5sZXZlbCl7Y2FzZSIxIjpyZXR1cm4gd2A8aDE+PHNsb3Q+PC9zbG90PjwvaDE+YDtjYXNlIjIiOnJldHVybiB3YDxoMj48c2xvdD48L3Nsb3Q+PC9oMj5gO2Nhc2UiMyI6cmV0dXJuIHdgPGgzPjxzbG90Pjwvc2xvdD48L2gzPmA7Y2FzZSI0IjpyZXR1cm4gd2A8aDQ+PHNsb3Q+PC9zbG90PjwvaDQ+YDtjYXNlIjUiOnJldHVybiB3YDxoNT48c2xvdD48L3Nsb3Q+PC9oNT5gO2Nhc2UiNiI6cmV0dXJuIHdgPGg2PjxzbG90Pjwvc2xvdD48L2g2PmA7Y2FzZSJociI6cmV0dXJuIHdgPGRpdiBjbGFzcz0iaGVhZGluZy1ociI+PHNsb3Q+PC9zbG90PjwvZGl2PmA7Y2FzZSJoci1zbWFsbCI6cmV0dXJuIHdgPGRpdiBjbGFzcz0iaGVhZGluZy1ociBoZWFkaW5nLWhyLXNtYWxsIj48c2xvdD48L3Nsb3Q+PC9kaXY+YDtkZWZhdWx0OnJldHVybiB3YDxoMT48c2xvdD48L3Nsb3Q+PC9oMT5gfX1jb25zdHJ1Y3Rvcigpe3N1cGVyKC4uLmFyZ3VtZW50cyksTlYodGhpcyxvKX1zdGF0aWN7TlYoaSxhKX19O3JldHVybiBkPWl9KSgpfSk7dmFyIHZidD1iKCgpPT57YmJ0KCl9KTt2YXIgeWJ0PWIoKCk9PntUbCgpfSk7dmFyIHhidCx3YnQ9YigoKT0+e3VlKCk7eGJ0PSgpPT53YAogIDxkaXYgc3R5bGU9ImRpc3BsYXk6IGZsZXg7IGFsaWduLWl0ZW1zOiBjZW50ZXI7IGdhcDogMTZweDsiPgogICAgPCEtLSBTbWFsbCBzZXQgb2YgcGFnZXMgLS0+CiAgICA8ZGl2IHN0eWxlPSJkaXNwbGF5OiBmbGV4OyBmbGV4LWRpcmVjdGlvbjogY29sdW1uOyBnYXA6IDRweDsiPgogICAgICA8c3Bhbj41IHBhZ2VzLCBzdGFydGluZyBhdCAxOjwvc3Bhbj4KICAgICAgPGRlZXMtcGFnaW5hdGlvbgogICAgICAgIC50b3RhbD0kezV9CiAgICAgICAgLnBhZ2U9JHsxfQogICAgICAgIEBwYWdlLWNoYW5nZT0ke3Q9PmNvbnNvbGUubG9nKCJQYWdlIGNoYW5nZWQgdG8iLHQuZGV0YWlsLnBhZ2UpfQogICAgICA+PC9kZWVzLXBhZ2luYXRpb24+CiAgICA8L2Rpdj4KCiAgICA8IS0tIExhcmdlciBzZXQgb2YgcGFnZXMgLS0+CiAgICA8ZGl2IHN0eWxlPSJkaXNwbGF5OiBmbGV4OyBmbGV4LWRpcmVjdGlvbjogY29sdW1uOyBnYXA6IDRweDsiPgogICAgICA8c3Bhbj4xNSBwYWdlcywgc3RhcnRpbmcgYXQgODo8L3NwYW4+CiAgICAgIDxkZWVzLXBhZ2luYXRpb24KICAgICAgICAudG90YWw9JHsxNX0KICAgICAgICAucGFnZT0kezh9CiAgICAgICAgQHBhZ2UtY2hhbmdlPSR7dD0+Y29uc29sZS5sb2coIlBhZ2UgY2hhbmdlZCB0byIsdC5kZXRhaWwucGFnZSl9CiAgICAgID48L2RlZXMtcGFnaW5hdGlvbj4KICAgIDwvZGl2PgogIDwvZGl2PgpgfSk7dmFyIEZWLEc4LE1idCx6YnQ9YigoKT0+e3VlKCk7d2J0KCk7cWUoKTtGVj1mdW5jdGlvbih0LGUsYSxpLHIscyl7ZnVuY3Rpb24gbih4KXtpZih4IT09dm9pZCAwJiZ0eXBlb2YgeCE9ImZ1bmN0aW9uIil0aHJvdyBuZXcgVHlwZUVycm9yKCJGdW5jdGlvbiBleHBlY3RlZCIpO3JldHVybiB4fWZvcih2YXIgbz1pLmtpbmQsZD1vPT09ImdldHRlciI/ImdldCI6bz09PSJzZXR0ZXIiPyJzZXQiOiJ2YWx1ZSIsYz0hZSYmdD9pLnN0YXRpYz90OnQucHJvdG90eXBlOm51bGwsaD1lfHwoYz9PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGMsaS5uYW1lKTp7fSksbCxmPSExLGc9YS5sZW5ndGgtMTtnPj0wO2ctLSl7dmFyIHk9e307Zm9yKHZhciB2IGluIGkpeVt2XT12PT09ImFjY2VzcyI/e306aVt2XTtmb3IodmFyIHYgaW4gaS5hY2Nlc3MpeS5hY2Nlc3Nbdl09aS5hY2Nlc3Nbdl07eS5hZGRJbml0aWFsaXplcj1mdW5jdGlvbih4KXtpZihmKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBhZGQgaW5pdGlhbGl6ZXJzIGFmdGVyIGRlY29yYXRpb24gaGFzIGNvbXBsZXRlZCIpO3MucHVzaChuKHh8fG51bGwpKX07dmFyIG09KDAsYVtnXSkobz09PSJhY2Nlc3NvciI/e2dldDpoLmdldCxzZXQ6aC5zZXR9OmhbZF0seSk7aWYobz09PSJhY2Nlc3NvciIpe2lmKG09PT12b2lkIDApY29udGludWU7aWYobT09PW51bGx8fHR5cGVvZiBtIT0ib2JqZWN0Iil0aHJvdyBuZXcgVHlwZUVycm9yKCJPYmplY3QgZXhwZWN0ZWQiKTsobD1uKG0uZ2V0KSkmJihoLmdldD1sKSwobD1uKG0uc2V0KSkmJihoLnNldD1sKSwobD1uKG0uaW5pdCkpJiZyLnVuc2hpZnQobCl9ZWxzZShsPW4obSkpJiYobz09PSJmaWVsZCI/ci51bnNoaWZ0KGwpOmhbZF09bCl9YyYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGMsaS5uYW1lLGgpLGY9ITB9LEc4PWZ1bmN0aW9uKHQsZSxhKXtmb3IodmFyIGk9YXJndW1lbnRzLmxlbmd0aD4yLHI9MDtyPGUubGVuZ3RoO3IrKylhPWk/ZVtyXS5jYWxsKHQsYSk6ZVtyXS5jYWxsKHQpO3JldHVybiBpP2E6dm9pZCAwfSxNYnQ9KCgpPT57bGV0IHQ9W3BlKCJkZWVzLXBhZ2luYXRpb24iKV0sZSxhPVtdLGkscj14ZSxzLG49W10sbz1bXSxkLGM9W10saD1bXTt2YXIgbD1jbGFzcyBleHRlbmRzIHJ7c3RhdGlje2k9dGhpc31zdGF0aWN7bGV0IGY9dHlwZW9mIFN5bWJvbD09ImZ1bmN0aW9uIiYmU3ltYm9sLm1ldGFkYXRhP09iamVjdC5jcmVhdGUocltTeW1ib2wubWV0YWRhdGFdPz9udWxsKTp2b2lkIDA7cz1bSSh7dHlwZTpOdW1iZXIscmVmbGVjdDohMH0pXSxkPVtJKHt0eXBlOk51bWJlcixyZWZsZWN0OiEwfSldLEZWKHRoaXMsbnVsbCxzLHtraW5kOiJhY2Nlc3NvciIsbmFtZToicGFnZSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6Zz0+InBhZ2UiaW4gZyxnZXQ6Zz0+Zy5wYWdlLHNldDooZyx5KT0+e2cucGFnZT15fX0sbWV0YWRhdGE6Zn0sbixvKSxGVih0aGlzLG51bGwsZCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InRvdGFsIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpnPT4idG90YWwiaW4gZyxnZXQ6Zz0+Zy50b3RhbCxzZXQ6KGcseSk9PntnLnRvdGFsPXl9fSxtZXRhZGF0YTpmfSxjLGgpLEZWKG51bGwsZT17dmFsdWU6aX0sdCx7a2luZDoiY2xhc3MiLG5hbWU6aS5uYW1lLG1ldGFkYXRhOmZ9LG51bGwsYSksbD1pPWUudmFsdWUsZiYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGksU3ltYm9sLm1ldGFkYXRhLHtlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMCx2YWx1ZTpmfSl9c3RhdGljIGRlbW89eGJ0O3N0YXRpYyBkZW1vR3JvdXBzPVsiTGF5b3V0Il07I2U9RzgodGhpcyxuLDEpO2dldCBwYWdlKCl7cmV0dXJuIHRoaXMuI2V9c2V0IHBhZ2UoZil7dGhpcy4jZT1mfSN0PShHOCh0aGlzLG8pLEc4KHRoaXMsYywxKSk7Z2V0IHRvdGFsKCl7cmV0dXJuIHRoaXMuI3R9c2V0IHRvdGFsKGYpe3RoaXMuI3Q9Zn1zdGF0aWMgc3R5bGVzPVtDZSxwLmRlZmF1bHRTdHlsZXMsUWAKICAgICAgLyogVE9ETzogTWlncmF0ZSBoYXJkY29kZWQgdmFsdWVzIHRvIC0tZGVlcy0qIENTUyB2YXJpYWJsZXMgKi8KICAgICAgOmhvc3QgewogICAgICAgIGRpc3BsYXk6IGlubGluZS1mbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgIH0KICAgICAgYnV0dG9uIHsKICAgICAgICBiYWNrZ3JvdW5kOiBub25lOwogICAgICAgIGJvcmRlcjogbm9uZTsKICAgICAgICBtYXJnaW46IDAgMnB4OwogICAgICAgIHBhZGRpbmc6IDZweCAxMHB4OwogICAgICAgIGZvbnQtc2l6ZTogMTRweDsKICAgICAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICAgICAgY29sb3I6ICR7cC5iZFRoZW1lKCIjMzMzIiwiI2NjYyIpfTsKICAgICAgICBib3JkZXItcmFkaXVzOiAzcHg7CiAgICAgICAgdHJhbnNpdGlvbjogYmFja2dyb3VuZCAwLjJzOwogICAgICB9CiAgICAgIGJ1dHRvbjpob3Zlcjpub3QoOmRpc2FibGVkKSB7CiAgICAgICAgYmFja2dyb3VuZDogJHtwLmJkVGhlbWUoIiNlZWUiLCIjNDQ0Iil9OwogICAgICB9CiAgICAgIGJ1dHRvbjpkaXNhYmxlZCB7CiAgICAgICAgY3Vyc29yOiBkZWZhdWx0OwogICAgICAgIGNvbG9yOiAke3AuYmRUaGVtZSgiI2FhYSIsIiM2NjYiKX07CiAgICAgIH0KICAgICAgYnV0dG9uLmN1cnJlbnQgewogICAgICAgIGJhY2tncm91bmQ6ICMwMDUwYjk7CiAgICAgICAgY29sb3I6ICNmZmY7CiAgICAgICAgY3Vyc29yOiBkZWZhdWx0OwogICAgICB9CiAgICAgIHNwYW4uZWxsaXBzaXMgewogICAgICAgIG1hcmdpbjogMCA0cHg7CiAgICAgICAgY29sb3I6ICR7cC5iZFRoZW1lKCIjMzMzIiwiI2NjYyIpfTsKICAgICAgfQogICAgYF07Z2V0IHBhZ2VzKCl7bGV0IGY9W10sZz10aGlzLnRvdGFsLHk9dGhpcy5wYWdlO2lmKGc8PTcpZm9yKGxldCB2PTE7djw9Zzt2KyspZi5wdXNoKHYpO2Vsc2V7Zi5wdXNoKDEpLHk+NCYmZi5wdXNoKCIuLi4iKTtsZXQgdj1NYXRoLm1heCgyLHktMiksbT1NYXRoLm1pbihnLTEseSsyKTtmb3IobGV0IHg9djt4PD1tO3grKylmLnB1c2goeCk7eTxnLTMmJmYucHVzaCgiLi4uIiksZi5wdXNoKGcpfXJldHVybiBmfXJlbmRlcigpe3JldHVybiB3YAogICAgICA8YnV0dG9uCiAgICAgICAgQGNsaWNrPSR7KCk9PnRoaXMuY2hhbmdlUGFnZSh0aGlzLnBhZ2UtMSl9CiAgICAgICAgP2Rpc2FibGVkPSR7dGhpcy5wYWdlPD0xfQogICAgICAgIGFyaWEtbGFiZWw9IlByZXZpb3VzIHBhZ2UiCiAgICAgID4KICAgICAgICDigLkKICAgICAgPC9idXR0b24+CiAgICAgICR7dGhpcy5wYWdlcy5tYXAoZj0+Zj09PSIuLi4iP3dgPHNwYW4gY2xhc3M9ImVsbGlwc2lzIj7igKY8L3NwYW4+YDp3YAogICAgICAgICAgICAgIDxidXR0b24KICAgICAgICAgICAgICAgIGNsYXNzPSIke2Y9PT10aGlzLnBhZ2U/ImN1cnJlbnQiOiIifSIKICAgICAgICAgICAgICAgIEBjbGljaz0keygpPT50aGlzLmNoYW5nZVBhZ2UoZil9CiAgICAgICAgICAgICAgICA/ZGlzYWJsZWQ9JHtmPT09dGhpcy5wYWdlfQogICAgICAgICAgICAgICAgYXJpYS1sYWJlbD0iUGFnZSAke2Z9IgogICAgICAgICAgICAgID4KICAgICAgICAgICAgICAgICR7Zn0KICAgICAgICAgICAgICA8L2J1dHRvbj4KICAgICAgICAgICAgYCl9CiAgICAgIDxidXR0b24KICAgICAgICBAY2xpY2s9JHsoKT0+dGhpcy5jaGFuZ2VQYWdlKHRoaXMucGFnZSsxKX0KICAgICAgICA/ZGlzYWJsZWQ9JHt0aGlzLnBhZ2U+PXRoaXMudG90YWx9CiAgICAgICAgYXJpYS1sYWJlbD0iTmV4dCBwYWdlIgogICAgICA+CiAgICAgICAg4oC6CiAgICAgIDwvYnV0dG9uPgogICAgYH1jaGFuZ2VQYWdlKGYpe2Y8MXx8Zj50aGlzLnRvdGFsfHxmPT09dGhpcy5wYWdlfHwodGhpcy5wYWdlPWYsdGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBDdXN0b21FdmVudCgicGFnZS1jaGFuZ2UiLHtkZXRhaWw6e3BhZ2U6dGhpcy5wYWdlfSxidWJibGVzOiEwfSkpKX1jb25zdHJ1Y3Rvcigpe3N1cGVyKC4uLmFyZ3VtZW50cyksRzgodGhpcyxoKX1zdGF0aWN7RzgoaSxhKX19O3JldHVybiBsPWl9KSgpfSk7dmFyIGtidD1iKCgpPT57emJ0KCl9KTt2YXIgU2J0PWIoKCk9PnttMigpfSk7dmFyIENidCxfYnQ9YigoKT0+e3VlKCk7Q2J0PSgpPT53YAogIDxkZWVzLXN0ZXBwZXIKICAgIC5zdGVwcz0ke1t7dGl0bGU6IkFjY291bnQgU2V0dXAiLGNvbnRlbnQ6d2AKICAgICAgICAgIDxkZWVzLWZvcm0+CiAgICAgICAgICAgIDxkZWVzLWlucHV0LXRleHQga2V5PSJlbWFpbCIgbGFiZWw9IldvcmsgRW1haWwiIHJlcXVpcmVkPjwvZGVlcy1pbnB1dC10ZXh0PgogICAgICAgICAgICA8ZGVlcy1pbnB1dC10ZXh0IGtleT0icGFzc3dvcmQiIGxhYmVsPSJDcmVhdGUgUGFzc3dvcmQiIHR5cGU9InBhc3N3b3JkIiByZXF1aXJlZD48L2RlZXMtaW5wdXQtdGV4dD4KICAgICAgICAgICAgPGRlZXMtZm9ybS1zdWJtaXQ+Q29udGludWU8L2RlZXMtZm9ybS1zdWJtaXQ+CiAgICAgICAgICA8L2RlZXMtZm9ybT4KICAgICAgICBgLHZhbGlkYXRpb25GdW5jOmFzeW5jKHQsZSk9PntlLnF1ZXJ5U2VsZWN0b3IoImRlZXMtZm9ybSIpLmFkZEV2ZW50TGlzdGVuZXIoImZvcm1EYXRhIiwoKT0+dC5nb05leHQoKSx7b25jZTohMH0pfX0se3RpdGxlOiJQcm9maWxlIERldGFpbHMiLGNvbnRlbnQ6d2AKICAgICAgICAgIDxkZWVzLWZvcm0+CiAgICAgICAgICAgIDxkZWVzLWlucHV0LXRleHQga2V5PSJmaXJzdE5hbWUiIGxhYmVsPSJGaXJzdCBOYW1lIiByZXF1aXJlZD48L2RlZXMtaW5wdXQtdGV4dD4KICAgICAgICAgICAgPGRlZXMtaW5wdXQtdGV4dCBrZXk9Imxhc3ROYW1lIiBsYWJlbD0iTGFzdCBOYW1lIiByZXF1aXJlZD48L2RlZXMtaW5wdXQtdGV4dD4KICAgICAgICAgICAgPGRlZXMtZm9ybS1zdWJtaXQ+Q29udGludWU8L2RlZXMtZm9ybS1zdWJtaXQ+CiAgICAgICAgICA8L2RlZXMtZm9ybT4KICAgICAgICBgLHZhbGlkYXRpb25GdW5jOmFzeW5jKHQsZSk9PntlLnF1ZXJ5U2VsZWN0b3IoImRlZXMtZm9ybSIpLmFkZEV2ZW50TGlzdGVuZXIoImZvcm1EYXRhIiwoKT0+dC5nb05leHQoKSx7b25jZTohMH0pfX0se3RpdGxlOiJDb250YWN0IEluZm9ybWF0aW9uIixjb250ZW50OndgCiAgICAgICAgICA8ZGVlcy1mb3JtPgogICAgICAgICAgICA8ZGVlcy1pbnB1dC1waG9uZSBrZXk9InBob25lIiBsYWJlbD0iTW9iaWxlIE51bWJlciIgcmVxdWlyZWQ+PC9kZWVzLWlucHV0LXBob25lPgogICAgICAgICAgICA8ZGVlcy1pbnB1dC10ZXh0IGtleT0iY29tcGFueSIgbGFiZWw9IkNvbXBhbnkiPjwvZGVlcy1pbnB1dC10ZXh0PgogICAgICAgICAgICA8ZGVlcy1mb3JtLXN1Ym1pdD5Db250aW51ZTwvZGVlcy1mb3JtLXN1Ym1pdD4KICAgICAgICAgIDwvZGVlcy1mb3JtPgogICAgICAgIGAsdmFsaWRhdGlvbkZ1bmM6YXN5bmModCxlKT0+e2UucXVlcnlTZWxlY3RvcigiZGVlcy1mb3JtIikuYWRkRXZlbnRMaXN0ZW5lcigiZm9ybURhdGEiLCgpPT50LmdvTmV4dCgpLHtvbmNlOiEwfSl9fSx7dGl0bGU6IlRlYW0gU2l6ZSIsY29udGVudDp3YAogICAgICAgICAgPGRlZXMtZm9ybT4KICAgICAgICAgICAgPGRlZXMtaW5wdXQtZHJvcGRvd24KICAgICAgICAgICAgICBrZXk9InRlYW1TaXplIgogICAgICAgICAgICAgIGxhYmVsPSJIb3cgYmlnIGlzIHlvdXIgdGVhbT8iCiAgICAgICAgICAgICAgLm9wdGlvbnM9JHtbe2xhYmVsOiIxLTUiLHZhbHVlOiIxLTUifSx7bGFiZWw6IjYtMjAiLHZhbHVlOiI2LTIwIn0se2xhYmVsOiIyMS01MCIsdmFsdWU6IjIxLTUwIn0se2xhYmVsOiI1MSsiLHZhbHVlOiI1MSsifV19CiAgICAgICAgICAgICAgcmVxdWlyZWQKICAgICAgICAgICAgPjwvZGVlcy1pbnB1dC1kcm9wZG93bj4KICAgICAgICAgICAgPGRlZXMtZm9ybS1zdWJtaXQ+Q29udGludWU8L2RlZXMtZm9ybS1zdWJtaXQ+CiAgICAgICAgICA8L2RlZXMtZm9ybT4KICAgICAgICBgLHZhbGlkYXRpb25GdW5jOmFzeW5jKHQsZSk9PntlLnF1ZXJ5U2VsZWN0b3IoImRlZXMtZm9ybSIpLmFkZEV2ZW50TGlzdGVuZXIoImZvcm1EYXRhIiwoKT0+dC5nb05leHQoKSx7b25jZTohMH0pfX0se3RpdGxlOiJHb2FscyIsY29udGVudDp3YAogICAgICAgICAgPGRlZXMtZm9ybT4KICAgICAgICAgICAgPGRlZXMtaW5wdXQtbXVsdGl0b2dnbGUKICAgICAgICAgICAgICBrZXk9ImdvYWwiCiAgICAgICAgICAgICAgbGFiZWw9Ik1haW4gb2JqZWN0aXZlIgogICAgICAgICAgICAgIC5vcHRpb25zPSR7W3tsYWJlbDoiT25ib2FyZGluZyIsdmFsdWU6Im9uYm9hcmRpbmcifSx7bGFiZWw6IkFuYWx5dGljcyIsdmFsdWU6ImFuYWx5dGljcyJ9LHtsYWJlbDoiQXV0b21hdGlvbiIsdmFsdWU6ImF1dG9tYXRpb24ifV19CiAgICAgICAgICAgICAgcmVxdWlyZWQKICAgICAgICAgICAgPjwvZGVlcy1pbnB1dC1tdWx0aXRvZ2dsZT4KICAgICAgICAgICAgPGRlZXMtZm9ybS1zdWJtaXQ+Q29udGludWU8L2RlZXMtZm9ybS1zdWJtaXQ+CiAgICAgICAgICA8L2RlZXMtZm9ybT4KICAgICAgICBgLHZhbGlkYXRpb25GdW5jOmFzeW5jKHQsZSk9PntlLnF1ZXJ5U2VsZWN0b3IoImRlZXMtZm9ybSIpLmFkZEV2ZW50TGlzdGVuZXIoImZvcm1EYXRhIiwoKT0+dC5nb05leHQoKSx7b25jZTohMH0pfX0se3RpdGxlOiJCcmFuZCBQcmVmZXJlbmNlcyIsY29udGVudDp3YAogICAgICAgICAgPGRlZXMtZm9ybT4KICAgICAgICAgICAgPGRlZXMtaW5wdXQtdGV4dCBrZXk9ImJyYW5kQ29sb3IiIGxhYmVsPSJQcmltYXJ5IGJyYW5kIGNvbG9yIj48L2RlZXMtaW5wdXQtdGV4dD4KICAgICAgICAgICAgPGRlZXMtaW5wdXQtdGV4dCBrZXk9InRvbmUiIGxhYmVsPSJQcmVmZXJyZWQgdG9uZSAoZS5nLiBmcmllbmRseSwgZm9ybWFsKSI+PC9kZWVzLWlucHV0LXRleHQ+CiAgICAgICAgICAgIDxkZWVzLWZvcm0tc3VibWl0PkNvbnRpbnVlPC9kZWVzLWZvcm0tc3VibWl0PgogICAgICAgICAgPC9kZWVzLWZvcm0+CiAgICAgICAgYCx2YWxpZGF0aW9uRnVuYzphc3luYyh0LGUpPT57ZS5xdWVyeVNlbGVjdG9yKCJkZWVzLWZvcm0iKS5hZGRFdmVudExpc3RlbmVyKCJmb3JtRGF0YSIsKCk9PnQuZ29OZXh0KCkse29uY2U6ITB9KX19LHt0aXRsZToiSW50ZWdyYXRpb25zIixjb250ZW50OndgCiAgICAgICAgICA8ZGVlcy1mb3JtPgogICAgICAgICAgICA8ZGVlcy1pbnB1dC1saXN0CiAgICAgICAgICAgICAga2V5PSJpbnRlZ3JhdGlvbnMiCiAgICAgICAgICAgICAgbGFiZWw9IkludGVncmF0aW9ucyBpbiB1c2UiCiAgICAgICAgICAgICAgcGxhY2Vob2xkZXI9IkFkZCBpbnRlZ3JhdGlvbiIKICAgICAgICAgICAgPjwvZGVlcy1pbnB1dC1saXN0PgogICAgICAgICAgICA8ZGVlcy1mb3JtLXN1Ym1pdD5Db250aW51ZTwvZGVlcy1mb3JtLXN1Ym1pdD4KICAgICAgICAgIDwvZGVlcy1mb3JtPgogICAgICAgIGAsdmFsaWRhdGlvbkZ1bmM6YXN5bmModCxlKT0+e2UucXVlcnlTZWxlY3RvcigiZGVlcy1mb3JtIikuYWRkRXZlbnRMaXN0ZW5lcigiZm9ybURhdGEiLCgpPT50LmdvTmV4dCgpLHtvbmNlOiEwfSl9fSx7dGl0bGU6IlJldmlldyAmIExhdW5jaCIsY29udGVudDp3YAogICAgICAgICAgPGRlZXMtcGFuZWw+CiAgICAgICAgICAgIDxwPkFsbW9zdCB0aGVyZSEgUmV2aWV3IHlvdXIgc2VsZWN0aW9ucyBhbmQgbGF1bmNoIHdoZW5ldmVyIHlvdSdyZSByZWFkeS48L3A+CiAgICAgICAgICA8L2RlZXMtcGFuZWw+CiAgICAgICAgYH1dfQogID48L2RlZXMtc3RlcHBlcj4KYH0pO3ZhciBPVixZOCxUYnQsTGJ0PWIoKCk9PntzMigpO2dpKCk7dWUoKTtUdCgpO19idCgpO3FlKCk7T1Y9ZnVuY3Rpb24odCxlLGEsaSxyLHMpe2Z1bmN0aW9uIG4oeCl7aWYoeCE9PXZvaWQgMCYmdHlwZW9mIHghPSJmdW5jdGlvbiIpdGhyb3cgbmV3IFR5cGVFcnJvcigiRnVuY3Rpb24gZXhwZWN0ZWQiKTtyZXR1cm4geH1mb3IodmFyIG89aS5raW5kLGQ9bz09PSJnZXR0ZXIiPyJnZXQiOm89PT0ic2V0dGVyIj8ic2V0IjoidmFsdWUiLGM9IWUmJnQ/aS5zdGF0aWM/dDp0LnByb3RvdHlwZTpudWxsLGg9ZXx8KGM/T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihjLGkubmFtZSk6e30pLGwsZj0hMSxnPWEubGVuZ3RoLTE7Zz49MDtnLS0pe3ZhciB5PXt9O2Zvcih2YXIgdiBpbiBpKXlbdl09dj09PSJhY2Nlc3MiP3t9Omlbdl07Zm9yKHZhciB2IGluIGkuYWNjZXNzKXkuYWNjZXNzW3ZdPWkuYWNjZXNzW3ZdO3kuYWRkSW5pdGlhbGl6ZXI9ZnVuY3Rpb24oeCl7aWYoZil0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgYWRkIGluaXRpYWxpemVycyBhZnRlciBkZWNvcmF0aW9uIGhhcyBjb21wbGV0ZWQiKTtzLnB1c2gobih4fHxudWxsKSl9O3ZhciBtPSgwLGFbZ10pKG89PT0iYWNjZXNzb3IiP3tnZXQ6aC5nZXQsc2V0Omguc2V0fTpoW2RdLHkpO2lmKG89PT0iYWNjZXNzb3IiKXtpZihtPT09dm9pZCAwKWNvbnRpbnVlO2lmKG09PT1udWxsfHx0eXBlb2YgbSE9Im9iamVjdCIpdGhyb3cgbmV3IFR5cGVFcnJvcigiT2JqZWN0IGV4cGVjdGVkIik7KGw9bihtLmdldCkpJiYoaC5nZXQ9bCksKGw9bihtLnNldCkpJiYoaC5zZXQ9bCksKGw9bihtLmluaXQpKSYmci51bnNoaWZ0KGwpfWVsc2UobD1uKG0pKSYmKG89PT0iZmllbGQiP3IudW5zaGlmdChsKTpoW2RdPWwpfWMmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShjLGkubmFtZSxoKSxmPSEwfSxZOD1mdW5jdGlvbih0LGUsYSl7Zm9yKHZhciBpPWFyZ3VtZW50cy5sZW5ndGg+MixyPTA7cjxlLmxlbmd0aDtyKyspYT1pP2Vbcl0uY2FsbCh0LGEpOmVbcl0uY2FsbCh0KTtyZXR1cm4gaT9hOnZvaWQgMH0sVGJ0PSgoKT0+e2xldCB0PVtwZSgiZGVlcy1zdGVwcGVyIildLGUsYT1bXSxpLHI9eGUscyxuPVtdLG89W10sZCxjPVtdLGg9W107dmFyIGw9Y2xhc3MgZXh0ZW5kcyBye3N0YXRpY3tpPXRoaXN9c3RhdGlje2xldCBmPXR5cGVvZiBTeW1ib2w9PSJmdW5jdGlvbiImJlN5bWJvbC5tZXRhZGF0YT9PYmplY3QuY3JlYXRlKHJbU3ltYm9sLm1ldGFkYXRhXT8/bnVsbCk6dm9pZCAwO3M9W0koe3R5cGU6QXJyYXl9KV0sZD1bSSh7dHlwZTpPYmplY3R9KV0sT1YodGhpcyxudWxsLHMse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJzdGVwcyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6Zz0+InN0ZXBzImluIGcsZ2V0Omc9Pmcuc3RlcHMsc2V0OihnLHkpPT57Zy5zdGVwcz15fX0sbWV0YWRhdGE6Zn0sbixvKSxPVih0aGlzLG51bGwsZCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InNlbGVjdGVkU3RlcCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6Zz0+InNlbGVjdGVkU3RlcCJpbiBnLGdldDpnPT5nLnNlbGVjdGVkU3RlcCxzZXQ6KGcseSk9PntnLnNlbGVjdGVkU3RlcD15fX0sbWV0YWRhdGE6Zn0sYyxoKSxPVihudWxsLGU9e3ZhbHVlOml9LHQse2tpbmQ6ImNsYXNzIixuYW1lOmkubmFtZSxtZXRhZGF0YTpmfSxudWxsLGEpLGw9aT1lLnZhbHVlLGYmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShpLFN5bWJvbC5tZXRhZGF0YSx7ZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITAsdmFsdWU6Zn0pfXN0YXRpYyBkZW1vPUNidDtzdGF0aWMgZGVtb0dyb3Vwcz1bIkxheW91dCIsIkZvcm0iXTsjZT1ZOCh0aGlzLG4sW10pO2dldCBzdGVwcygpe3JldHVybiB0aGlzLiNlfXNldCBzdGVwcyhmKXt0aGlzLiNlPWZ9I3Q9KFk4KHRoaXMsbyksWTgodGhpcyxjLHZvaWQgMCkpO2dldCBzZWxlY3RlZFN0ZXAoKXtyZXR1cm4gdGhpcy4jdH1zZXQgc2VsZWN0ZWRTdGVwKGYpe3RoaXMuI3Q9Zn1jb25zdHJ1Y3Rvcigpe3N1cGVyKCl9c3RhdGljIHN0eWxlcz1bQ2UscC5kZWZhdWx0U3R5bGVzLFFgCiAgICAgIC8qIFRPRE86IE1pZ3JhdGUgaGFyZGNvZGVkIHZhbHVlcyB0byAtLWRlZXMtKiBDU1MgdmFyaWFibGVzICovCiAgICAgIDpob3N0IHsKICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgICAgaGVpZ2h0OiAxMDAlOwogICAgICB9CiAgICAgIC5zdGVwcGVyQ29udGFpbmVyIHsKICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgICAgaGVpZ2h0OiAxMDAlOwogICAgICAgIG92ZXJmbG93OiBoaWRkZW47CiAgICAgIH0KCiAgICAgIC5zdGVwIHsKICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7CiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgICAgICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMC43cyBjdWJpYy1iZXppZXIoMC44NywgMCwgMC4xMywgMSksIGJveC1zaGFkb3cgMC43cyBjdWJpYy1iZXppZXIoMC44NywgMCwgMC4xMywgMSksIGZpbHRlciAwLjdzIGN1YmljLWJlemllcigwLjg3LCAwLCAwLjEzLCAxKSwgYm9yZGVyIDAuN3MgY3ViaWMtYmV6aWVyKDAuODcsIDAsIDAuMTMsIDEpOwogICAgICAgIG1heC13aWR0aDogNTAwcHg7CiAgICAgICAgbWluLWhlaWdodDogMzAwcHg7CiAgICAgICAgYm9yZGVyLXJhZGl1czogMTJweDsKICAgICAgICBiYWNrZ3JvdW5kOiAke3AuYmRUaGVtZSgiI2ZmZmZmZiIsIiMwZjBmMTEiKX07CiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHtwLmJkVGhlbWUoIiNlMmU4ZjAiLCIjMjcyNzI5Iil9OwogICAgICAgIGNvbG9yOiAke3AuYmRUaGVtZSgiIzBmMTcyYSIsIiNmNWY1ZjUiKX07CiAgICAgICAgbWFyZ2luOiBhdXRvOwogICAgICAgIG1hcmdpbi1ib3R0b206IDIwcHg7CiAgICAgICAgZmlsdGVyOiBvcGFjaXR5KDAuNTUpIHNhdHVyYXRlKDAuODUpOwogICAgICAgIGJveC1zaGFkb3c6IDAgOHB4IDMycHggcmdiYSgwLCAwLCAwLCAwLjQpOwogICAgICAgIHVzZXItc2VsZWN0OiBub25lOwogICAgICB9CgogICAgICAuc3RlcC5zZWxlY3RlZCB7CiAgICAgICAgcG9pbnRlci1ldmVudHM6IGFsbDsKICAgICAgICBmaWx0ZXI6IG9wYWNpdHkoMSkgc2F0dXJhdGUoMSk7CiAgICAgICAgdXNlci1zZWxlY3Q6IGF1dG87CiAgICAgIH0KCiAgICAgIC5zdGVwLmhpZGRlblN0ZXAgewogICAgICAgIGZpbHRlcjogb3BhY2l0eSgwKTsKICAgICAgfQoKICAgICAgLnN0ZXAuZW50cmFuY2UgewogICAgICAgIHRyYW5zaXRpb246IHRyYW5zZm9ybSAwLjM1cyBlYXNlLCBib3gtc2hhZG93IDAuMzVzIGVhc2UsIGZpbHRlciAwLjM1cyBlYXNlLCBib3JkZXIgMC4zNXMgZWFzZTsKICAgICAgfQoKICAgICAgLnN0ZXAuZW50cmFuY2UuaGlkZGVuU3RlcCB7CiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDE2cHgpOwogICAgICB9CgogICAgICAuc3RlcDpsYXN0LWNoaWxkIHsKICAgICAgICBtYXJnaW4tYm90dG9tOiAxMDB2aDsKICAgICAgfQoKICAgICAgLnN0ZXAgLnN0ZXBDb3VudGVyIHsKICAgICAgICBjb2xvcjogJHtwLmJkVGhlbWUoIiM2NDc0OGIiLCIjYTFhMWFhIil9OwogICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgICB0b3A6IDEycHg7CiAgICAgICAgcmlnaHQ6IDEycHg7CiAgICAgICAgcGFkZGluZzogNnB4IDE0cHg7CiAgICAgICAgZm9udC1zaXplOiAxMnB4OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDk5OXB4OwogICAgICAgIGJhY2tncm91bmQ6ICR7cC5iZFRoZW1lKCJyZ2JhKDIyNiwgMjMyLCAyNDAsIDAuNSkiLCJyZ2JhKDYzLCA2MywgNzAsIDAuNDUpIil9OwogICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICR7cC5iZFRoZW1lKCJyZ2JhKDIyNiwgMjMyLCAyNDAsIDAuNykiLCJyZ2JhKDYzLCA2MywgNzAsIDAuNikiKX07CiAgICAgIH0KCiAgICAgIC5zdGVwIC5nb0JhY2sgewogICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgICB0b3A6IDEycHg7CiAgICAgICAgbGVmdDogMTJweDsKICAgICAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGdhcDogNnB4OwogICAgICAgIHBhZGRpbmc6IDZweCAxMnB4OwogICAgICAgIGZvbnQtc2l6ZTogMTJweDsKICAgICAgICBmb250LXdlaWdodDogNTAwOwogICAgICAgIGJvcmRlci1yYWRpdXM6IDk5OXB4OwogICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICR7cC5iZFRoZW1lKCJyZ2JhKDIyNiwgMjMyLCAyNDAsIDAuOSkiLCJyZ2JhKDYzLCA2MywgNzAsIDAuODUpIil9OwogICAgICAgIGJhY2tncm91bmQ6ICR7cC5iZFRoZW1lKCJyZ2JhKDI1NSwgMjU1LCAyNTUsIDAuOSkiLCJyZ2JhKDM5LCAzOSwgNDIsIDAuODUpIil9OwogICAgICAgIGNvbG9yOiAke3AuYmRUaGVtZSgiIzQ3NTU2OSIsIiNkNGQ0ZDgiKX07CiAgICAgICAgY3Vyc29yOiBwb2ludGVyOwogICAgICAgIHRyYW5zaXRpb246IGJvcmRlciAwLjJzIGVhc2UsIGNvbG9yIDAuMnMgZWFzZSwgYmFja2dyb3VuZCAwLjJzIGVhc2UsIHRyYW5zZm9ybSAwLjJzIGVhc2U7CiAgICAgIH0KCiAgICAgIC5zdGVwIC5nb0JhY2s6aG92ZXIgewogICAgICAgIGNvbG9yOiAke3AuYmRUaGVtZSgiIzBmMTcyYSIsIiNmYWZhZmEiKX07CiAgICAgICAgYm9yZGVyLWNvbG9yOiAke3AuYmRUaGVtZShtaS5ibHVlLG1pLmJsdWUpfTsKICAgICAgICBiYWNrZ3JvdW5kOiAke3AuYmRUaGVtZSgicmdiYSgyMjYsIDIzMiwgMjQwLCAwLjk1KSIsInJnYmEoNjMsIDYzLCA3MCwgMC43KSIpfTsKICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTJweCk7CiAgICAgIH0KCiAgICAgIC5zdGVwIC5nb0JhY2s6YWN0aXZlIHsKICAgICAgICBjb2xvcjogJHtwLmJkVGhlbWUoIiMwZjE3MmEiLCIjZmFmYWZhIil9OwogICAgICAgIGJvcmRlci1jb2xvcjogJHtwLmJkVGhlbWUobWkuYmx1ZUFjdGl2ZSxtaS5ibHVlQWN0aXZlKX07CiAgICAgICAgYmFja2dyb3VuZDogJHtwLmJkVGhlbWUoInJnYmEoMjI2LCAyMzIsIDI0MCwgMC44NSkiLCJyZ2JhKDYzLCA2MywgNzAsIDAuNikiKX07CiAgICAgIH0KCiAgICAgIC5zdGVwIC5nb0JhY2sgc3BhbiB7CiAgICAgICAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDAuMnMgZWFzZTsKICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7CiAgICAgIH0KCiAgICAgIC5zdGVwIC5nb0JhY2s6aG92ZXIgc3BhbiB7CiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC0ycHgpOwogICAgICB9CgogICAgICAuc3RlcCAudGl0bGUgewogICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjsKICAgICAgICBwYWRkaW5nLXRvcDogNjRweDsKICAgICAgICBmb250LWZhbWlseTogJ0dlaXN0IFNhbnMnLCBzYW5zLXNlcmlmOwogICAgICAgIGZvbnQtc2l6ZTogMjRweDsKICAgICAgICBmb250LXdlaWdodDogNjAwOwogICAgICAgIGxldHRlci1zcGFjaW5nOiAtMC4wMWVtOwogICAgICAgIGNvbG9yOiBpbmhlcml0OwogICAgICB9CgogICAgICAuc3RlcCAuY29udGVudCB7CiAgICAgICAgcGFkZGluZzogMzJweDsKICAgICAgfQogICAgYF07cmVuZGVyKCl7cmV0dXJuIHdgCiAgICAgIDxkaXYgY2xhc3M9InN0ZXBwZXJDb250YWluZXIiPgogICAgICAgICR7dGhpcy5zdGVwcy5tYXAoZj0+d2A8ZGl2CiAgICAgICAgICAgICAgY2xhc3M9InN0ZXAgJHtmPT09dGhpcy5zZWxlY3RlZFN0ZXA/InNlbGVjdGVkIjpudWxsfSAke3RoaXMuZ2V0SW5kZXhPZlN0ZXAoZik+dGhpcy5nZXRJbmRleE9mU3RlcCh0aGlzLnNlbGVjdGVkU3RlcCk/ImhpZGRlblN0ZXAiOiIifSAke3RoaXMuZ2V0SW5kZXhPZlN0ZXAoZik9PT0wPyJlbnRyYW5jZSI6IiJ9IgogICAgICAgICAgICA+CiAgICAgICAgICAgICAgJHt0aGlzLmdldEluZGV4T2ZTdGVwKGYpPjA/d2A8ZGl2IGNsYXNzPSJnb0JhY2siIEBjbGljaz0ke3RoaXMuZ29CYWNrfT48c3BhbiBzdHlsZT0iZm9udC1mYW1pbHk6IEludGVyIj48LTwvc3Bhbj4gZ28gdG8gcHJldmlvdXMgc3RlcDwvZGl2PmA6IiJ9CiAgICAgICAgICAgICAgPGRpdiBjbGFzcz0ic3RlcENvdW50ZXIiPgogICAgICAgICAgICAgICAgU3RlcCAke3RoaXMuc3RlcHMuZmluZEluZGV4KGc9Pmc9PT1mKSsxfSBvZgogICAgICAgICAgICAgICAgJHt0aGlzLnN0ZXBzLmxlbmd0aH0KICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJ0aXRsZSI+JHtmLnRpdGxlfTwvZGl2PgogICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNvbnRlbnQiPiR7Zi5jb250ZW50fTwvZGl2PgogICAgICAgICAgICA8L2Rpdj4gYCl9CiAgICAgIDwvZGl2PgogICAgYH1nZXRJbmRleE9mU3RlcD0oWTgodGhpcyxoKSxmPT50aGlzLnN0ZXBzLmZpbmRJbmRleChnPT5mPT09ZykpO2FzeW5jIGZpcnN0VXBkYXRlZCgpe2F3YWl0IHRoaXMuZG9tdG9vbHNQcm9taXNlLGF3YWl0IHRoaXMuZG9tdG9vbHMuY29udmVuaWVuY2Uuc21hcnRkZWxheS5kZWxheUZvcigwKSx0aGlzLnNlbGVjdGVkU3RlcD10aGlzLnN0ZXBzWzBdLHRoaXMuc2V0U2Nyb2xsU3RhdHVzKCksYXdhaXQgdGhpcy5kb210b29scy5jb252ZW5pZW5jZS5zbWFydGRlbGF5LmRlbGF5Rm9yKDM1MCksdGhpcy5zaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3IoIi5zdGVwLmVudHJhbmNlIik/LmNsYXNzTGlzdC5yZW1vdmUoImVudHJhbmNlIil9YXN5bmMgdXBkYXRlZCgpe3RoaXMuc2V0U2Nyb2xsU3RhdHVzKCl9c2Nyb2xsZXI7YXN5bmMgc2V0U2Nyb2xsU3RhdHVzKCl7bGV0IGY9dGhpcy5zaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3IoIi5zdGVwcGVyQ29udGFpbmVyIiksZz10aGlzLnNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvcigiLnN0ZXAiKSx5PXRoaXMuc2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yKCIuc2VsZWN0ZWQiKTtpZigheSlyZXR1cm47Zi5zdHlsZS5wYWRkaW5nVG9wfHwoZi5zdHlsZS5wYWRkaW5nVG9wPWAke2Yub2Zmc2V0SGVpZ2h0LzIteS5vZmZzZXRIZWlnaHQvMn1weGApLGNvbnNvbGUubG9nKCJTZXR0aW5nIHNjcm9sbCBzdGF0dXMiKSxjb25zb2xlLmxvZyh5KTtsZXQgdj15Lm9mZnNldFRvcC1mLm9mZnNldEhlaWdodC8yK3kub2Zmc2V0SGVpZ2h0LzI7Y29uc29sZS5sb2codik7bGV0IG09YXdhaXQgRzIuc2V0dXBEb21Ub29scygpO3RoaXMuc2Nyb2xsZXJ8fCh0aGlzLnNjcm9sbGVyPW5ldyBNdC5Td2VldFNjcm9sbCh7dmVydGljYWw6ITAsaG9yaXpvbnRhbDohMSxlYXNpbmc6ImVhc2VJbk91dEV4cG8iLGR1cmF0aW9uOjcwMH0sZikpLCF0aGlzLnNlbGVjdGVkU3RlcC52YWxpZGF0aW9uRnVuY0NhbGxlZCYmdGhpcy5zZWxlY3RlZFN0ZXAudmFsaWRhdGlvbkZ1bmMmJih0aGlzLnNlbGVjdGVkU3RlcC5hYm9ydENvbnRyb2xsZXI9bmV3IEFib3J0Q29udHJvbGxlcix0aGlzLnNlbGVjdGVkU3RlcC52YWxpZGF0aW9uRnVuY0NhbGxlZD0hMCxhd2FpdCB0aGlzLnNlbGVjdGVkU3RlcC52YWxpZGF0aW9uRnVuYyh0aGlzLHksdGhpcy5zZWxlY3RlZFN0ZXAuYWJvcnRDb250cm9sbGVyLnNpZ25hbCkpLHRoaXMuc2Nyb2xsZXIudG8odil9YXN5bmMgZ29CYWNrKCl7bGV0IGY9dGhpcy5zdGVwcy5maW5kSW5kZXgodj0+dj09PXRoaXMuc2VsZWN0ZWRTdGVwKTtpZihmPD0wKXJldHVybjt0aGlzLnNlbGVjdGVkU3RlcC5hYm9ydENvbnRyb2xsZXImJnRoaXMuc2VsZWN0ZWRTdGVwLmFib3J0Q29udHJvbGxlci5hYm9ydCgpO2xldCBnPXRoaXMuc3RlcHNbZl07Zy52YWxpZGF0aW9uRnVuY0NhbGxlZD0hMTtsZXQgeT10aGlzLnN0ZXBzW2YtMV07eS52YWxpZGF0aW9uRnVuY0NhbGxlZD0hMSx0aGlzLnNlbGVjdGVkU3RlcD15LGF3YWl0IHRoaXMuZG9tdG9vbHNQcm9taXNlLGF3YWl0IHRoaXMuZG9tdG9vbHMuY29udmVuaWVuY2Uuc21hcnRkZWxheS5kZWxheUZvcigxMDApLHRoaXMuc2VsZWN0ZWRTdGVwLm9uUmV0dXJuVG9TdGVwRnVuYz8uKHRoaXMsdGhpcy5zaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3IoIi5zZWxlY3RlZCIpKX1nb05leHQoKXtsZXQgZj10aGlzLnN0ZXBzLmZpbmRJbmRleCh2PT52PT09dGhpcy5zZWxlY3RlZFN0ZXApO2lmKGY8MHx8Zj49dGhpcy5zdGVwcy5sZW5ndGgtMSlyZXR1cm47dGhpcy5zZWxlY3RlZFN0ZXAuYWJvcnRDb250cm9sbGVyJiZ0aGlzLnNlbGVjdGVkU3RlcC5hYm9ydENvbnRyb2xsZXIuYWJvcnQoKTtsZXQgZz10aGlzLnN0ZXBzW2ZdO2cudmFsaWRhdGlvbkZ1bmNDYWxsZWQ9ITE7bGV0IHk9dGhpcy5zdGVwc1tmKzFdO3kudmFsaWRhdGlvbkZ1bmNDYWxsZWQ9ITEsdGhpcy5zZWxlY3RlZFN0ZXA9eX1zdGF0aWN7WTgoaSxhKX19O3JldHVybiBsPWl9KSgpfSk7dmFyICRidD1iKCgpPT57TGJ0KCl9KTt2YXIgQWJ0PWIoKCk9PntHZ3QoKTtwYnQoKTt2YnQoKTt5YnQoKTtrYnQoKTtTYnQoKTskYnQoKX0pO3ZhciBEYnQsRWJ0PWIoKCk9Pnt1ZSgpO0RidD0oKT0+d2AKICA8c3R5bGU+CiAgICAuZGVtby1jb250YWluZXIgewogICAgICBwYWRkaW5nOiA0OHB4OwogICAgICBiYWNrZ3JvdW5kOiAke3AuYmRUaGVtZSgiI2Y4ZjlmYSIsIiMwYTBhMGEiKX07CiAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgIGdhcDogMzJweDsKICAgIH0KCiAgICAuc2VjdGlvbiB7CiAgICAgIG1heC13aWR0aDogOTAwcHg7CiAgICAgIHdpZHRoOiAxMDAlOwogICAgICBtYXJnaW46IDAgYXV0bzsKICAgIH0KCiAgICAuc2VjdGlvbi10aXRsZSB7CiAgICAgIGZvbnQtc2l6ZTogMThweDsKICAgICAgZm9udC13ZWlnaHQ6IDYwMDsKICAgICAgbWFyZ2luLWJvdHRvbTogOHB4OwogICAgICBjb2xvcjogJHtwLmJkVGhlbWUoIiMwOTA5MGIiLCIjZmFmYWZhIil9OwogICAgfQoKICAgIC5zZWN0aW9uLWRlc2NyaXB0aW9uIHsKICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgICBjb2xvcjogJHtwLmJkVGhlbWUoIiM3MTcxN2EiLCIjYTFhMWFhIil9OwogICAgICBtYXJnaW4tYm90dG9tOiAxNnB4OwogICAgfQoKICAgIGRlZXMtaW1hZ2Utdmlld2VyIHsKICAgICAgaGVpZ2h0OiA0MDBweDsKICAgICAgYm9yZGVyOiAxcHggc29saWQgJHtwLmJkVGhlbWUoIiNlNWU3ZWIiLCIjMjcyNzJhIil9OwogICAgICBib3JkZXItcmFkaXVzOiA4cHg7CiAgICAgIG92ZXJmbG93OiBoaWRkZW47CiAgICB9CgogICAgLmNvbXBhY3QgewogICAgICBoZWlnaHQ6IDI1MHB4OwogICAgfQogIDwvc3R5bGU+CgogIDxkaXYgY2xhc3M9ImRlbW8tY29udGFpbmVyIj4KICAgIDxkaXYgY2xhc3M9InNlY3Rpb24iPgogICAgICA8ZGl2IGNsYXNzPSJzZWN0aW9uLXRpdGxlIj5KUEVHIEltYWdlIHdpdGggVG9vbGJhcjwvZGl2PgogICAgICA8ZGl2IGNsYXNzPSJzZWN0aW9uLWRlc2NyaXB0aW9uIj5BIGxhbmRzY2FwZSBwaG90byB3aXRoIHpvb20sIHBhbiwgZml0LCBhbmQgZG93bmxvYWQgY29udHJvbHMuPC9kaXY+CiAgICAgIDxkZWVzLWltYWdlLXZpZXdlcgogICAgICAgIHNyYz0iaHR0cHM6Ly9pbWFnZXMudW5zcGxhc2guY29tL3Bob3RvLTE1MDY3NDQwMzgxMzYtNDYyNzM4MzRiM2ZiP3c9MTIwMCIKICAgICAgICBhbHQ9Ik1vdW50YWluIGxhbmRzY2FwZSIKICAgICAgPjwvZGVlcy1pbWFnZS12aWV3ZXI+CiAgICA8L2Rpdj4KCiAgICA8ZGl2IGNsYXNzPSJzZWN0aW9uIj4KICAgICAgPGRpdiBjbGFzcz0ic2VjdGlvbi10aXRsZSI+UE5HIHdpdGggVHJhbnNwYXJlbmN5PC9kaXY+CiAgICAgIDxkaXYgY2xhc3M9InNlY3Rpb24tZGVzY3JpcHRpb24iPlRyYW5zcGFyZW50IFBORyBkaXNwbGF5ZWQgb24gYSBjaGVja2VyYm9hcmQgYmFja2dyb3VuZC48L2Rpdj4KICAgICAgPGRlZXMtaW1hZ2Utdmlld2VyCiAgICAgICAgc3JjPSJodHRwczovL3VwbG9hZC53aWtpbWVkaWEub3JnL3dpa2lwZWRpYS9jb21tb25zLzQvNDcvUE5HX3RyYW5zcGFyZW5jeV9kZW1vbnN0cmF0aW9uXzEucG5nIgogICAgICAgIGFsdD0iUE5HIHRyYW5zcGFyZW5jeSBkZW1vIgogICAgICA+PC9kZWVzLWltYWdlLXZpZXdlcj4KICAgIDwvZGl2PgoKICAgIDxkaXYgY2xhc3M9InNlY3Rpb24iPgogICAgICA8ZGl2IGNsYXNzPSJzZWN0aW9uLXRpdGxlIj5TVkcgSW1hZ2U8L2Rpdj4KICAgICAgPGRpdiBjbGFzcz0ic2VjdGlvbi1kZXNjcmlwdGlvbiI+U2NhbGFibGUgdmVjdG9yIGdyYXBoaWMuPC9kaXY+CiAgICAgIDxkZWVzLWltYWdlLXZpZXdlcgogICAgICAgIHNyYz0iaHR0cHM6Ly91cGxvYWQud2lraW1lZGlhLm9yZy93aWtpcGVkaWEvY29tbW9ucy8wLzAyL1NWR19sb2dvLnN2ZyIKICAgICAgICBhbHQ9IlNWRyBsb2dvIgogICAgICAgIGZpdD0iY29udGFpbiIKICAgICAgPjwvZGVlcy1pbWFnZS12aWV3ZXI+CiAgICA8L2Rpdj4KCiAgICA8ZGl2IGNsYXNzPSJzZWN0aW9uIj4KICAgICAgPGRpdiBjbGFzcz0ic2VjdGlvbi10aXRsZSI+Tm8gVG9vbGJhciBWYXJpYW50PC9kaXY+CiAgICAgIDxkaXYgY2xhc3M9InNlY3Rpb24tZGVzY3JpcHRpb24iPkltYWdlIHZpZXdlciB3aXRoIHRoZSB0b29sYmFyIGhpZGRlbi48L2Rpdj4KICAgICAgPGRlZXMtaW1hZ2Utdmlld2VyCiAgICAgICAgY2xhc3M9ImNvbXBhY3QiCiAgICAgICAgc3JjPSJodHRwczovL2ltYWdlcy51bnNwbGFzaC5jb20vcGhvdG8tMTQ2OTQ3NDk2ODAyOC01NjYyM2YwMmU0MmU/dz04MDAiCiAgICAgICAgYWx0PSJOYXR1cmUgc2NlbmUiCiAgICAgICAgLnNob3dUb29sYmFyPSR7ITF9CiAgICAgID48L2RlZXMtaW1hZ2Utdmlld2VyPgogICAgPC9kaXY+CiAgPC9kaXY+CmB9KTt2YXIgWmEsejEsUGJ0LFJWPWIoKCk9Pnt1ZSgpO0R0KCk7RWJ0KCk7WmE9ZnVuY3Rpb24odCxlLGEsaSxyLHMpe2Z1bmN0aW9uIG4oeCl7aWYoeCE9PXZvaWQgMCYmdHlwZW9mIHghPSJmdW5jdGlvbiIpdGhyb3cgbmV3IFR5cGVFcnJvcigiRnVuY3Rpb24gZXhwZWN0ZWQiKTtyZXR1cm4geH1mb3IodmFyIG89aS5raW5kLGQ9bz09PSJnZXR0ZXIiPyJnZXQiOm89PT0ic2V0dGVyIj8ic2V0IjoidmFsdWUiLGM9IWUmJnQ/aS5zdGF0aWM/dDp0LnByb3RvdHlwZTpudWxsLGg9ZXx8KGM/T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihjLGkubmFtZSk6e30pLGwsZj0hMSxnPWEubGVuZ3RoLTE7Zz49MDtnLS0pe3ZhciB5PXt9O2Zvcih2YXIgdiBpbiBpKXlbdl09dj09PSJhY2Nlc3MiP3t9Omlbdl07Zm9yKHZhciB2IGluIGkuYWNjZXNzKXkuYWNjZXNzW3ZdPWkuYWNjZXNzW3ZdO3kuYWRkSW5pdGlhbGl6ZXI9ZnVuY3Rpb24oeCl7aWYoZil0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgYWRkIGluaXRpYWxpemVycyBhZnRlciBkZWNvcmF0aW9uIGhhcyBjb21wbGV0ZWQiKTtzLnB1c2gobih4fHxudWxsKSl9O3ZhciBtPSgwLGFbZ10pKG89PT0iYWNjZXNzb3IiP3tnZXQ6aC5nZXQsc2V0Omguc2V0fTpoW2RdLHkpO2lmKG89PT0iYWNjZXNzb3IiKXtpZihtPT09dm9pZCAwKWNvbnRpbnVlO2lmKG09PT1udWxsfHx0eXBlb2YgbSE9Im9iamVjdCIpdGhyb3cgbmV3IFR5cGVFcnJvcigiT2JqZWN0IGV4cGVjdGVkIik7KGw9bihtLmdldCkpJiYoaC5nZXQ9bCksKGw9bihtLnNldCkpJiYoaC5zZXQ9bCksKGw9bihtLmluaXQpKSYmci51bnNoaWZ0KGwpfWVsc2UobD1uKG0pKSYmKG89PT0iZmllbGQiP3IudW5zaGlmdChsKTpoW2RdPWwpfWMmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShjLGkubmFtZSxoKSxmPSEwfSx6MT1mdW5jdGlvbih0LGUsYSl7Zm9yKHZhciBpPWFyZ3VtZW50cy5sZW5ndGg+MixyPTA7cjxlLmxlbmd0aDtyKyspYT1pP2Vbcl0uY2FsbCh0LGEpOmVbcl0uY2FsbCh0KTtyZXR1cm4gaT9hOnZvaWQgMH0sUGJ0PSgoKT0+e2xldCB0PVtwZSgiZGVlcy1pbWFnZS12aWV3ZXIiKV0sZSxhPVtdLGkscj14ZSxzLG49W10sbz1bXSxkLGM9W10saD1bXSxsLGY9W10sZz1bXSx5LHY9W10sbT1bXSx4LE09W10sUz1bXSxGLF89W10saz1bXSxOLEw9W10sQT1bXSxxLEM9W10sej1bXSxFLFQ9W10sJD1bXSxWLFI9W10sVT1bXSxyZSxqPVtdLG1lPVtdLHdlLEg9W10sY2U9W107dmFyIGtlPWNsYXNzIGV4dGVuZHMgcntzdGF0aWN7aT10aGlzfXN0YXRpY3tsZXQgVz10eXBlb2YgU3ltYm9sPT0iZnVuY3Rpb24iJiZTeW1ib2wubWV0YWRhdGE/T2JqZWN0LmNyZWF0ZShyW1N5bWJvbC5tZXRhZGF0YV0/P251bGwpOnZvaWQgMDtzPVtJKCldLGQ9W0koKV0sbD1bSSgpXSx5PVtJKHt0eXBlOkJvb2xlYW59KV0seD1bSigpXSxGPVtKKCldLE49W0ooKV0scT1bSigpXSxFPVtKKCldLFY9W0ooKV0scmU9W0ooKV0sd2U9W0ooKV0sWmEodGhpcyxudWxsLHMse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJzcmMiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOkQ9PiJzcmMiaW4gRCxnZXQ6RD0+RC5zcmMsc2V0OihELE8pPT57RC5zcmM9T319LG1ldGFkYXRhOld9LG4sbyksWmEodGhpcyxudWxsLGQse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJhbHQiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOkQ9PiJhbHQiaW4gRCxnZXQ6RD0+RC5hbHQsc2V0OihELE8pPT57RC5hbHQ9T319LG1ldGFkYXRhOld9LGMsaCksWmEodGhpcyxudWxsLGwse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJmaXQiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOkQ9PiJmaXQiaW4gRCxnZXQ6RD0+RC5maXQsc2V0OihELE8pPT57RC5maXQ9T319LG1ldGFkYXRhOld9LGYsZyksWmEodGhpcyxudWxsLHkse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJzaG93VG9vbGJhciIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6RD0+InNob3dUb29sYmFyImluIEQsZ2V0OkQ9PkQuc2hvd1Rvb2xiYXIsc2V0OihELE8pPT57RC5zaG93VG9vbGJhcj1PfX0sbWV0YWRhdGE6V30sdixtKSxaYSh0aGlzLG51bGwseCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6Inpvb20iLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOkQ9PiJ6b29tImluIEQsZ2V0OkQ9PkQuem9vbSxzZXQ6KEQsTyk9PntELnpvb209T319LG1ldGFkYXRhOld9LE0sUyksWmEodGhpcyxudWxsLEYse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJwYW5YIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpEPT4icGFuWCJpbiBELGdldDpEPT5ELnBhblgsc2V0OihELE8pPT57RC5wYW5YPU99fSxtZXRhZGF0YTpXfSxfLGspLFphKHRoaXMsbnVsbCxOLHtraW5kOiJhY2Nlc3NvciIsbmFtZToicGFuWSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6RD0+InBhblkiaW4gRCxnZXQ6RD0+RC5wYW5ZLHNldDooRCxPKT0+e0QucGFuWT1PfX0sbWV0YWRhdGE6V30sTCxBKSxaYSh0aGlzLG51bGwscSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImlzRHJhZ2dpbmciLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOkQ9PiJpc0RyYWdnaW5nImluIEQsZ2V0OkQ9PkQuaXNEcmFnZ2luZyxzZXQ6KEQsTyk9PntELmlzRHJhZ2dpbmc9T319LG1ldGFkYXRhOld9LEMseiksWmEodGhpcyxudWxsLEUse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJsb2FkaW5nIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpEPT4ibG9hZGluZyJpbiBELGdldDpEPT5ELmxvYWRpbmcsc2V0OihELE8pPT57RC5sb2FkaW5nPU99fSxtZXRhZGF0YTpXfSxULCQpLFphKHRoaXMsbnVsbCxWLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiZXJyb3IiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOkQ9PiJlcnJvciJpbiBELGdldDpEPT5ELmVycm9yLHNldDooRCxPKT0+e0QuZXJyb3I9T319LG1ldGFkYXRhOld9LFIsVSksWmEodGhpcyxudWxsLHJlLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiaW1hZ2VOYXR1cmFsV2lkdGgiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOkQ9PiJpbWFnZU5hdHVyYWxXaWR0aCJpbiBELGdldDpEPT5ELmltYWdlTmF0dXJhbFdpZHRoLHNldDooRCxPKT0+e0QuaW1hZ2VOYXR1cmFsV2lkdGg9T319LG1ldGFkYXRhOld9LGosbWUpLFphKHRoaXMsbnVsbCx3ZSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImltYWdlTmF0dXJhbEhlaWdodCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6RD0+ImltYWdlTmF0dXJhbEhlaWdodCJpbiBELGdldDpEPT5ELmltYWdlTmF0dXJhbEhlaWdodCxzZXQ6KEQsTyk9PntELmltYWdlTmF0dXJhbEhlaWdodD1PfX0sbWV0YWRhdGE6V30sSCxjZSksWmEobnVsbCxlPXt2YWx1ZTppfSx0LHtraW5kOiJjbGFzcyIsbmFtZTppLm5hbWUsbWV0YWRhdGE6V30sbnVsbCxhKSxrZT1pPWUudmFsdWUsVyYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGksU3ltYm9sLm1ldGFkYXRhLHtlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMCx2YWx1ZTpXfSl9c3RhdGljIGRlbW89RGJ0O3N0YXRpYyBkZW1vR3JvdXBzPVsiTWVkaWEiXTsjZT16MSh0aGlzLG4sIiIpO2dldCBzcmMoKXtyZXR1cm4gdGhpcy4jZX1zZXQgc3JjKFcpe3RoaXMuI2U9V30jdD0oejEodGhpcyxvKSx6MSh0aGlzLGMsIiIpKTtnZXQgYWx0KCl7cmV0dXJuIHRoaXMuI3R9c2V0IGFsdChXKXt0aGlzLiN0PVd9I2E9KHoxKHRoaXMsaCksejEodGhpcyxmLCJjb250YWluIikpO2dldCBmaXQoKXtyZXR1cm4gdGhpcy4jYX1zZXQgZml0KFcpe3RoaXMuI2E9V30jaT0oejEodGhpcyxnKSx6MSh0aGlzLHYsITApKTtnZXQgc2hvd1Rvb2xiYXIoKXtyZXR1cm4gdGhpcy4jaX1zZXQgc2hvd1Rvb2xiYXIoVyl7dGhpcy4jaT1XfSNyPSh6MSh0aGlzLG0pLHoxKHRoaXMsTSwxKSk7Z2V0IHpvb20oKXtyZXR1cm4gdGhpcy4jcn1zZXQgem9vbShXKXt0aGlzLiNyPVd9I3M9KHoxKHRoaXMsUyksejEodGhpcyxfLDApKTtnZXQgcGFuWCgpe3JldHVybiB0aGlzLiNzfXNldCBwYW5YKFcpe3RoaXMuI3M9V30jbj0oejEodGhpcyxrKSx6MSh0aGlzLEwsMCkpO2dldCBwYW5ZKCl7cmV0dXJuIHRoaXMuI259c2V0IHBhblkoVyl7dGhpcy4jbj1XfSNvPSh6MSh0aGlzLEEpLHoxKHRoaXMsQywhMSkpO2dldCBpc0RyYWdnaW5nKCl7cmV0dXJuIHRoaXMuI299c2V0IGlzRHJhZ2dpbmcoVyl7dGhpcy4jbz1XfSNsPSh6MSh0aGlzLHopLHoxKHRoaXMsVCwhMCkpO2dldCBsb2FkaW5nKCl7cmV0dXJuIHRoaXMuI2x9c2V0IGxvYWRpbmcoVyl7dGhpcy4jbD1XfSNjPSh6MSh0aGlzLCQpLHoxKHRoaXMsUiwiIikpO2dldCBlcnJvcigpe3JldHVybiB0aGlzLiNjfXNldCBlcnJvcihXKXt0aGlzLiNjPVd9I2Q9KHoxKHRoaXMsVSksejEodGhpcyxqLDApKTtnZXQgaW1hZ2VOYXR1cmFsV2lkdGgoKXtyZXR1cm4gdGhpcy4jZH1zZXQgaW1hZ2VOYXR1cmFsV2lkdGgoVyl7dGhpcy4jZD1XfSNoPSh6MSh0aGlzLG1lKSx6MSh0aGlzLEgsMCkpO2dldCBpbWFnZU5hdHVyYWxIZWlnaHQoKXtyZXR1cm4gdGhpcy4jaH1zZXQgaW1hZ2VOYXR1cmFsSGVpZ2h0KFcpe3RoaXMuI2g9V31kcmFnU3RhcnRYPSh6MSh0aGlzLGNlKSwwKTtkcmFnU3RhcnRZPTA7ZHJhZ1N0YXJ0UGFuWD0wO2RyYWdTdGFydFBhblk9MDtyZW5kZXIoKXtyZXR1cm4gd2AKICAgICAgPHN0eWxlPgogICAgICAgIDpob3N0IHsKICAgICAgICAgIGRpc3BsYXk6IGJsb2NrOwogICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgICAgICBoZWlnaHQ6IDEwMCU7CiAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgICAgICAgZm9udC1mYW1pbHk6IC1hcHBsZS1zeXN0ZW0sIEJsaW5rTWFjU3lzdGVtRm9udCwgJ1NlZ29lIFVJJywgUm9ib3RvLCBzYW5zLXNlcmlmOwogICAgICAgIH0KCiAgICAgICAgLnZpZXdlci1jb250YWluZXIgewogICAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgICAgICBoZWlnaHQ6IDEwMCU7CiAgICAgICAgICBiYWNrZ3JvdW5kOiAke3AuYmRUaGVtZSgiaHNsKDAgMCUgOTclKSIsImhzbCgyMTUgMjAlIDEwJSkiKX07CiAgICAgICAgfQoKICAgICAgICAudG9vbGJhciB7CiAgICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOwogICAgICAgICAgZ2FwOiAxNnB4OwogICAgICAgICAgcGFkZGluZzogMCAxNnB4OwogICAgICAgICAgaGVpZ2h0OiA0OHB4OwogICAgICAgICAgYmFja2dyb3VuZDogJHtwLmJkVGhlbWUoIiNmZmZmZmYiLCJoc2woMjE1IDIwJSAxNSUpIil9OwogICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICR7cC5iZFRoZW1lKCIjZTVlN2ViIiwiaHNsKDIxNyAyNSUgMjIlKSIpfTsKICAgICAgICAgIGZsZXgtc2hyaW5rOiAwOwogICAgICAgIH0KCiAgICAgICAgLnRvb2xiYXItZ3JvdXAgewogICAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgICBnYXA6IDRweDsKICAgICAgICB9CgogICAgICAgIC50b29sYmFyLWJ1dHRvbiB7CiAgICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOwogICAgICAgICAgd2lkdGg6IDMycHg7CiAgICAgICAgICBoZWlnaHQ6IDMycHg7CiAgICAgICAgICBib3JkZXI6IG5vbmU7CiAgICAgICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDsKICAgICAgICAgIGNvbG9yOiAke3AuYmRUaGVtZSgiaHNsKDIxNSAxNiUgNDUlKSIsImhzbCgyMTUgMTYlIDc1JSkiKX07CiAgICAgICAgICBib3JkZXItcmFkaXVzOiA2cHg7CiAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC4xNXMgZWFzZTsKICAgICAgICB9CgogICAgICAgIC50b29sYmFyLWJ1dHRvbiBkZWVzLWljb24gewogICAgICAgICAgZm9udC1zaXplOiAxNnB4OwogICAgICAgIH0KCiAgICAgICAgLnRvb2xiYXItYnV0dG9uOmhvdmVyIHsKICAgICAgICAgIGJhY2tncm91bmQ6ICR7cC5iZFRoZW1lKCJoc2woMjE0IDMxJSA5MiUpIiwiaHNsKDIxNyAyNSUgMjIlKSIpfTsKICAgICAgICAgIGNvbG9yOiAke3AuYmRUaGVtZSgiIzA5MDkwYiIsIiNmYWZhZmEiKX07CiAgICAgICAgfQoKICAgICAgICAudG9vbGJhci1idXR0b246YWN0aXZlIHsKICAgICAgICAgIGJhY2tncm91bmQ6ICR7cC5iZFRoZW1lKCIjZTVlN2ViIiwiIzNmM2Y0NiIpfTsKICAgICAgICB9CgogICAgICAgIC56b29tLWxldmVsIHsKICAgICAgICAgIGZvbnQtc2l6ZTogMTNweDsKICAgICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7CiAgICAgICAgICBtaW4td2lkdGg6IDQ4cHg7CiAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7CiAgICAgICAgICBjb2xvcjogJHtwLmJkVGhlbWUoImhzbCgyMTUgMTYlIDQ1JSkiLCJoc2woMjE1IDE2JSA3NSUpIil9OwogICAgICAgICAgY3Vyc29yOiBwb2ludGVyOwogICAgICAgIH0KCiAgICAgICAgLmltYWdlLWFyZWEgewogICAgICAgICAgZmxleDogMTsKICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47CiAgICAgICAgICBjdXJzb3I6ICR7dGhpcy56b29tPjE/dGhpcy5pc0RyYWdnaW5nPyJncmFiYmluZyI6ImdyYWIiOiJkZWZhdWx0In07CiAgICAgICAgfQoKICAgICAgICAuY2hlY2tlcmJvYXJkIHsKICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgICAgIGluc2V0OiAwOwogICAgICAgICAgYmFja2dyb3VuZC1pbWFnZToKICAgICAgICAgICAgbGluZWFyLWdyYWRpZW50KDQ1ZGVnLCAke3AuYmRUaGVtZSgiI2YwZjBmMCIsIiMxYTFhMWEiKX0gMjUlLCB0cmFuc3BhcmVudCAyNSUpLAogICAgICAgICAgICBsaW5lYXItZ3JhZGllbnQoLTQ1ZGVnLCAke3AuYmRUaGVtZSgiI2YwZjBmMCIsIiMxYTFhMWEiKX0gMjUlLCB0cmFuc3BhcmVudCAyNSUpLAogICAgICAgICAgICBsaW5lYXItZ3JhZGllbnQoNDVkZWcsIHRyYW5zcGFyZW50IDc1JSwgJHtwLmJkVGhlbWUoIiNmMGYwZjAiLCIjMWExYTFhIil9IDc1JSksCiAgICAgICAgICAgIGxpbmVhci1ncmFkaWVudCgtNDVkZWcsIHRyYW5zcGFyZW50IDc1JSwgJHtwLmJkVGhlbWUoIiNmMGYwZjAiLCIjMWExYTFhIil9IDc1JSk7CiAgICAgICAgICBiYWNrZ3JvdW5kLXNpemU6IDE2cHggMTZweDsKICAgICAgICAgIGJhY2tncm91bmQtcG9zaXRpb246IDAgMCwgMCA4cHgsIDhweCAtOHB4LCAtOHB4IDBweDsKICAgICAgICAgIG9wYWNpdHk6IDAuMzsKICAgICAgICB9CgogICAgICAgIC5pbWFnZS13cmFwcGVyIHsKICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgICAgIGluc2V0OiAwOwogICAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKCR7dGhpcy5wYW5YfXB4LCAke3RoaXMucGFuWX1weCkgc2NhbGUoJHt0aGlzLnpvb219KTsKICAgICAgICAgIHRyYW5zaXRpb246ICR7dGhpcy5pc0RyYWdnaW5nPyJub25lIjoidHJhbnNmb3JtIDAuMnMgZWFzZSJ9OwogICAgICAgICAgd2lsbC1jaGFuZ2U6IHRyYW5zZm9ybTsKICAgICAgICB9CgogICAgICAgIC5pbWFnZS13cmFwcGVyIGltZyB7CiAgICAgICAgICBtYXgtd2lkdGg6IDEwMCU7CiAgICAgICAgICBtYXgtaGVpZ2h0OiAxMDAlOwogICAgICAgICAgb2JqZWN0LWZpdDogJHt0aGlzLmZpdH07CiAgICAgICAgICB1c2VyLXNlbGVjdDogbm9uZTsKICAgICAgICAgIC13ZWJraXQtdXNlci1kcmFnOiBub25lOwogICAgICAgIH0KCiAgICAgICAgLmltYWdlLXdyYXBwZXIgaW1nLmFjdHVhbCB7CiAgICAgICAgICBtYXgtd2lkdGg6IG5vbmU7CiAgICAgICAgICBtYXgtaGVpZ2h0OiBub25lOwogICAgICAgICAgb2JqZWN0LWZpdDogbm9uZTsKICAgICAgICB9CgogICAgICAgIC5sb2FkaW5nLW92ZXJsYXkgewogICAgICAgICAgcG9zaXRpb246IGFic29sdXRlOwogICAgICAgICAgaW5zZXQ6IDA7CiAgICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOwogICAgICAgICAgYmFja2dyb3VuZDogJHtwLmJkVGhlbWUoInJnYmEoMjU1LDI1NSwyNTUsMC44KSIsInJnYmEoMCwwLDAsMC42KSIpfTsKICAgICAgICB9CgogICAgICAgIC5sb2FkaW5nLXNwaW5uZXIgewogICAgICAgICAgd2lkdGg6IDMycHg7CiAgICAgICAgICBoZWlnaHQ6IDMycHg7CiAgICAgICAgICBib3JkZXI6IDNweCBzb2xpZCAke3AuYmRUaGVtZSgiI2U1ZTdlYiIsIiMzZjNmNDYiKX07CiAgICAgICAgICBib3JkZXItdG9wLWNvbG9yOiAke3AuYmRUaGVtZSgiIzNiODJmNiIsIiM2MGE1ZmEiKX07CiAgICAgICAgICBib3JkZXItcmFkaXVzOiA1MCU7CiAgICAgICAgICBhbmltYXRpb246IHNwaW4gMC44cyBsaW5lYXIgaW5maW5pdGU7CiAgICAgICAgfQoKICAgICAgICBAa2V5ZnJhbWVzIHNwaW4gewogICAgICAgICAgdG8geyB0cmFuc2Zvcm06IHJvdGF0ZSgzNjBkZWcpOyB9CiAgICAgICAgfQoKICAgICAgICAuZXJyb3Itb3ZlcmxheSB7CiAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgICAgICBpbnNldDogMDsKICAgICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOwogICAgICAgICAgZ2FwOiA4cHg7CiAgICAgICAgICBjb2xvcjogJHtwLmJkVGhlbWUoIiM3MTcxN2EiLCIjYTFhMWFhIil9OwogICAgICAgIH0KCiAgICAgICAgLmVycm9yLW92ZXJsYXkgLmVycm9yLWljb24gewogICAgICAgICAgY29sb3I6ICR7cC5iZFRoZW1lKCIjZGMyNjI2IiwiI2Y4NzE3MSIpfTsKICAgICAgICAgIGZvbnQtc2l6ZTogMzJweDsKICAgICAgICB9CgogICAgICAgIC5lcnJvci10ZXh0IHsKICAgICAgICAgIGZvbnQtc2l6ZTogMTNweDsKICAgICAgICB9CgogICAgICAgIC5pbWFnZS1pbmZvIHsKICAgICAgICAgIGZvbnQtc2l6ZTogMTFweDsKICAgICAgICAgIGNvbG9yOiAke3AuYmRUaGVtZSgiI2ExYTFhYSIsIiM3MTcxN2EiKX07CiAgICAgICAgICBwYWRkaW5nOiAwIDRweDsKICAgICAgICB9CiAgICAgIDwvc3R5bGU+CgogICAgICA8ZGl2IGNsYXNzPSJ2aWV3ZXItY29udGFpbmVyIj4KICAgICAgICAke3RoaXMuc2hvd1Rvb2xiYXI/d2AKICAgICAgICAgIDxkaXYgY2xhc3M9InRvb2xiYXIiPgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJ0b29sYmFyLWdyb3VwIj4KICAgICAgICAgICAgICA8YnV0dG9uIGNsYXNzPSJ0b29sYmFyLWJ1dHRvbiIgQGNsaWNrPSR7dGhpcy56b29tT3V0fSB0aXRsZT0iWm9vbSBvdXQiPgogICAgICAgICAgICAgICAgPGRlZXMtaWNvbiBpY29uPSJsdWNpZGU6Wm9vbU91dCI+PC9kZWVzLWljb24+CiAgICAgICAgICAgICAgPC9idXR0b24+CiAgICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz0idG9vbGJhci1idXR0b24iIEBjbGljaz0ke3RoaXMucmVzZXRab29tfT4KICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJ6b29tLWxldmVsIj4ke01hdGgucm91bmQodGhpcy56b29tKjEwMCl9JTwvc3Bhbj4KICAgICAgICAgICAgICA8L2J1dHRvbj4KICAgICAgICAgICAgICA8YnV0dG9uIGNsYXNzPSJ0b29sYmFyLWJ1dHRvbiIgQGNsaWNrPSR7dGhpcy56b29tSW59IHRpdGxlPSJab29tIGluIj4KICAgICAgICAgICAgICAgIDxkZWVzLWljb24gaWNvbj0ibHVjaWRlOlpvb21JbiI+PC9kZWVzLWljb24+CiAgICAgICAgICAgICAgPC9idXR0b24+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJ0b29sYmFyLWdyb3VwIj4KICAgICAgICAgICAgICA8YnV0dG9uIGNsYXNzPSJ0b29sYmFyLWJ1dHRvbiIgQGNsaWNrPSR7dGhpcy5maXRUb1NjcmVlbn0gdGl0bGU9IkZpdCB0byBzY3JlZW4iPgogICAgICAgICAgICAgICAgPGRlZXMtaWNvbiBpY29uPSJsdWNpZGU6TWF4aW1pemUiPjwvZGVlcy1pY29uPgogICAgICAgICAgICAgIDwvYnV0dG9uPgogICAgICAgICAgICAgIDxidXR0b24gY2xhc3M9InRvb2xiYXItYnV0dG9uIiBAY2xpY2s9JHt0aGlzLmFjdHVhbFNpemV9IHRpdGxlPSJBY3R1YWwgc2l6ZSAoMTAwJSkiPgogICAgICAgICAgICAgICAgPGRlZXMtaWNvbiBpY29uPSJsdWNpZGU6U2NhbiI+PC9kZWVzLWljb24+CiAgICAgICAgICAgICAgPC9idXR0b24+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJ0b29sYmFyLWdyb3VwIj4KICAgICAgICAgICAgICA8YnV0dG9uIGNsYXNzPSJ0b29sYmFyLWJ1dHRvbiIgQGNsaWNrPSR7dGhpcy5kb3dubG9hZH0gdGl0bGU9IkRvd25sb2FkIj4KICAgICAgICAgICAgICAgIDxkZWVzLWljb24gaWNvbj0ibHVjaWRlOkRvd25sb2FkIj48L2RlZXMtaWNvbj4KICAgICAgICAgICAgICA8L2J1dHRvbj4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICR7dGhpcy5pbWFnZU5hdHVyYWxXaWR0aD4wP3dgCiAgICAgICAgICAgICAgPGRpdiBjbGFzcz0idG9vbGJhci1ncm91cCI+CiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iaW1hZ2UtaW5mbyI+JHt0aGlzLmltYWdlTmF0dXJhbFdpZHRofSB4ICR7dGhpcy5pbWFnZU5hdHVyYWxIZWlnaHR9PC9zcGFuPgogICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICBgOiIifQogICAgICAgICAgPC9kaXY+CiAgICAgICAgYDoiIn0KCiAgICAgICAgPGRpdgogICAgICAgICAgY2xhc3M9ImltYWdlLWFyZWEiCiAgICAgICAgICBAd2hlZWw9JHt0aGlzLmhhbmRsZVdoZWVsfQogICAgICAgICAgQG1vdXNlZG93bj0ke3RoaXMuaGFuZGxlTW91c2VEb3dufQogICAgICAgICAgQG1vdXNlbW92ZT0ke3RoaXMuaGFuZGxlTW91c2VNb3ZlfQogICAgICAgICAgQG1vdXNldXA9JHt0aGlzLmhhbmRsZU1vdXNlVXB9CiAgICAgICAgICBAbW91c2VsZWF2ZT0ke3RoaXMuaGFuZGxlTW91c2VVcH0KICAgICAgICAgIEBkYmxjbGljaz0ke3RoaXMuaGFuZGxlRG91YmxlQ2xpY2t9CiAgICAgICAgPgogICAgICAgICAgPGRpdiBjbGFzcz0iY2hlY2tlcmJvYXJkIj48L2Rpdj4KICAgICAgICAgIDxkaXYgY2xhc3M9ImltYWdlLXdyYXBwZXIiPgogICAgICAgICAgICAke3RoaXMuc3JjP3dgCiAgICAgICAgICAgICAgPGltZwogICAgICAgICAgICAgICAgY2xhc3M9IiR7dGhpcy5maXQ9PT0iYWN0dWFsIj8iYWN0dWFsIjoiIn0iCiAgICAgICAgICAgICAgICBzcmM9IiR7dGhpcy5zcmN9IgogICAgICAgICAgICAgICAgYWx0PSIke3RoaXMuYWx0fSIKICAgICAgICAgICAgICAgIEBsb2FkPSR7dGhpcy5oYW5kbGVJbWFnZUxvYWR9CiAgICAgICAgICAgICAgICBAZXJyb3I9JHt0aGlzLmhhbmRsZUltYWdlRXJyb3J9CiAgICAgICAgICAgICAgICBkcmFnZ2FibGU9ImZhbHNlIgogICAgICAgICAgICAgIC8+CiAgICAgICAgICAgIGA6IiJ9CiAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICR7dGhpcy5sb2FkaW5nJiZ0aGlzLnNyYz93YAogICAgICAgICAgICA8ZGl2IGNsYXNzPSJsb2FkaW5nLW92ZXJsYXkiPgogICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImxvYWRpbmctc3Bpbm5lciI+PC9kaXY+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgYDoiIn0KICAgICAgICAgICR7dGhpcy5lcnJvcj93YAogICAgICAgICAgICA8ZGl2IGNsYXNzPSJlcnJvci1vdmVybGF5Ij4KICAgICAgICAgICAgICA8ZGVlcy1pY29uIGNsYXNzPSJlcnJvci1pY29uIiBpY29uPSJsdWNpZGU6SW1hZ2VPZmYiPjwvZGVlcy1pY29uPgogICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlcnJvci10ZXh0Ij4ke3RoaXMuZXJyb3J9PC9zcGFuPgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIGA6IiJ9CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGl2PgogICAgYH16b29tSW4oKXt0aGlzLnpvb209TWF0aC5taW4oMTAsdGhpcy56b29tKjEuMjUpfXpvb21PdXQoKXt0aGlzLnpvb209TWF0aC5tYXgoLjEsdGhpcy56b29tLzEuMjUpLHRoaXMuem9vbTw9MSYmKHRoaXMucGFuWD0wLHRoaXMucGFuWT0wKX1yZXNldFpvb20oKXt0aGlzLnpvb209MSx0aGlzLnBhblg9MCx0aGlzLnBhblk9MH1maXRUb1NjcmVlbigpe3RoaXMuem9vbT0xLHRoaXMucGFuWD0wLHRoaXMucGFuWT0wLHRoaXMuZml0PSJjb250YWluIn1hY3R1YWxTaXplKCl7dGhpcy56b29tPTEsdGhpcy5wYW5YPTAsdGhpcy5wYW5ZPTAsdGhpcy5maXQ9ImFjdHVhbCJ9ZG93bmxvYWQoKXtpZighdGhpcy5zcmMpcmV0dXJuO2xldCBXPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImEiKTtXLmhyZWY9dGhpcy5zcmMsVy5kb3dubG9hZD10aGlzLnNyYy5zcGxpdCgiLyIpLnBvcCgpfHwiaW1hZ2UiLFcuY2xpY2soKX1oYW5kbGVJbWFnZUxvYWQoVyl7bGV0IEQ9Vy50YXJnZXQ7dGhpcy5sb2FkaW5nPSExLHRoaXMuZXJyb3I9IiIsdGhpcy5pbWFnZU5hdHVyYWxXaWR0aD1ELm5hdHVyYWxXaWR0aCx0aGlzLmltYWdlTmF0dXJhbEhlaWdodD1ELm5hdHVyYWxIZWlnaHR9aGFuZGxlSW1hZ2VFcnJvcigpe3RoaXMubG9hZGluZz0hMSx0aGlzLmVycm9yPSJGYWlsZWQgdG8gbG9hZCBpbWFnZSJ9aGFuZGxlV2hlZWwoVyl7Vy5wcmV2ZW50RGVmYXVsdCgpO2xldCBEPVcuZGVsdGFZPjA/Ljk6MS4xLE89TWF0aC5taW4oMTAsTWF0aC5tYXgoLjEsdGhpcy56b29tKkQpKTt0aGlzLnpvb209Tyx0aGlzLnpvb208PTEmJih0aGlzLnBhblg9MCx0aGlzLnBhblk9MCl9aGFuZGxlTW91c2VEb3duKFcpe3RoaXMuem9vbTw9MXx8KHRoaXMuaXNEcmFnZ2luZz0hMCx0aGlzLmRyYWdTdGFydFg9Vy5jbGllbnRYLHRoaXMuZHJhZ1N0YXJ0WT1XLmNsaWVudFksdGhpcy5kcmFnU3RhcnRQYW5YPXRoaXMucGFuWCx0aGlzLmRyYWdTdGFydFBhblk9dGhpcy5wYW5ZKX1oYW5kbGVNb3VzZU1vdmUoVyl7dGhpcy5pc0RyYWdnaW5nJiYodGhpcy5wYW5YPXRoaXMuZHJhZ1N0YXJ0UGFuWCsoVy5jbGllbnRYLXRoaXMuZHJhZ1N0YXJ0WCksdGhpcy5wYW5ZPXRoaXMuZHJhZ1N0YXJ0UGFuWSsoVy5jbGllbnRZLXRoaXMuZHJhZ1N0YXJ0WSkpfWhhbmRsZU1vdXNlVXAoKXt0aGlzLmlzRHJhZ2dpbmc9ITF9aGFuZGxlRG91YmxlQ2xpY2soKXt0aGlzLnpvb209PT0xP3RoaXMuem9vbT0yOih0aGlzLnpvb209MSx0aGlzLnBhblg9MCx0aGlzLnBhblk9MCl9dXBkYXRlZChXKXtzdXBlci51cGRhdGVkKFcpLFcuaGFzKCJzcmMiKSYmKHRoaXMubG9hZGluZz0hMCx0aGlzLmVycm9yPSIiLHRoaXMuem9vbT0xLHRoaXMucGFuWD0wLHRoaXMucGFuWT0wLHRoaXMuaW1hZ2VOYXR1cmFsV2lkdGg9MCx0aGlzLmltYWdlTmF0dXJhbEhlaWdodD0wKX1zdGF0aWN7ejEoaSxhKX19O3JldHVybiBrZT1pfSkoKX0pO3ZhciBJYnQ9YigoKT0+e1JWKCl9KTt2YXIgTmJ0LEZidD1iKCgpPT57dWUoKTtOYnQ9KCk9PndgCiAgPHN0eWxlPgogICAgLmRlbW8tY29udGFpbmVyIHsKICAgICAgcGFkZGluZzogNDhweDsKICAgICAgYmFja2dyb3VuZDogJHtwLmJkVGhlbWUoIiNmOGY5ZmEiLCIjMGEwYTBhIil9OwogICAgICBkaXNwbGF5OiBmbGV4OwogICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICBnYXA6IDMycHg7CiAgICB9CgogICAgLnNlY3Rpb24gewogICAgICBtYXgtd2lkdGg6IDYwMHB4OwogICAgICB3aWR0aDogMTAwJTsKICAgICAgbWFyZ2luOiAwIGF1dG87CiAgICB9CgogICAgLnNlY3Rpb24tdGl0bGUgewogICAgICBmb250LXNpemU6IDE4cHg7CiAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7CiAgICAgIG1hcmdpbi1ib3R0b206IDhweDsKICAgICAgY29sb3I6ICR7cC5iZFRoZW1lKCIjMDkwOTBiIiwiI2ZhZmFmYSIpfTsKICAgIH0KCiAgICAuc2VjdGlvbi1kZXNjcmlwdGlvbiB7CiAgICAgIGZvbnQtc2l6ZTogMTRweDsKICAgICAgY29sb3I6ICR7cC5iZFRoZW1lKCIjNzE3MTdhIiwiI2ExYTFhYSIpfTsKICAgICAgbWFyZ2luLWJvdHRvbTogMTZweDsKICAgIH0KCiAgICBkZWVzLWF1ZGlvLXZpZXdlciB7CiAgICAgIGhlaWdodDogMjAwcHg7CiAgICAgIGJvcmRlcjogMXB4IHNvbGlkICR7cC5iZFRoZW1lKCIjZTVlN2ViIiwiIzI3MjcyYSIpfTsKICAgICAgYm9yZGVyLXJhZGl1czogOHB4OwogICAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgfQogIDwvc3R5bGU+CgogIDxkaXYgY2xhc3M9ImRlbW8tY29udGFpbmVyIj4KICAgIDxkaXYgY2xhc3M9InNlY3Rpb24iPgogICAgICA8ZGl2IGNsYXNzPSJzZWN0aW9uLXRpdGxlIj5BdWRpbyB3aXRoIFdhdmVmb3JtPC9kaXY+CiAgICAgIDxkaXYgY2xhc3M9InNlY3Rpb24tZGVzY3JpcHRpb24iPkF1ZGlvIHBsYXllciB3aXRoIHdhdmVmb3JtIHZpc3VhbGl6YXRpb24gYW5kIGZ1bGwgdHJhbnNwb3J0IGNvbnRyb2xzLjwvZGl2PgogICAgICA8ZGVlcy1hdWRpby12aWV3ZXIKICAgICAgICBzcmM9Imh0dHBzOi8vd3d3LnNvdW5kaGVsaXguY29tL2V4YW1wbGVzL21wMy9Tb3VuZEhlbGl4LVNvbmctMS5tcDMiCiAgICAgICAgdGl0bGU9IlNvdW5kSGVsaXggU29uZyAxIgogICAgICAgIGFydGlzdD0iVC4gU2NodWVyZ2VyIgogICAgICA+PC9kZWVzLWF1ZGlvLXZpZXdlcj4KICAgIDwvZGl2PgoKICAgIDxkaXYgY2xhc3M9InNlY3Rpb24iPgogICAgICA8ZGl2IGNsYXNzPSJzZWN0aW9uLXRpdGxlIj5BdWRpbyB3aXRob3V0IFdhdmVmb3JtPC9kaXY+CiAgICAgIDxkaXYgY2xhc3M9InNlY3Rpb24tZGVzY3JpcHRpb24iPlNpbXBsZSBhdWRpbyBwbGF5ZXIgd2l0aCBhIHNlZWtiYXIgaW5zdGVhZCBvZiBhIHdhdmVmb3JtLjwvZGl2PgogICAgICA8ZGVlcy1hdWRpby12aWV3ZXIKICAgICAgICBzcmM9Imh0dHBzOi8vd3d3LnNvdW5kaGVsaXguY29tL2V4YW1wbGVzL21wMy9Tb3VuZEhlbGl4LVNvbmctMi5tcDMiCiAgICAgICAgdGl0bGU9IlNvdW5kSGVsaXggU29uZyAyIgogICAgICAgIC5zaG93V2F2ZWZvcm09JHshMX0KICAgICAgPjwvZGVlcy1hdWRpby12aWV3ZXI+CiAgICA8L2Rpdj4KCiAgICA8ZGl2IGNsYXNzPSJzZWN0aW9uIj4KICAgICAgPGRpdiBjbGFzcz0ic2VjdGlvbi10aXRsZSI+TWluaW1hbCBBdWRpbyBQbGF5ZXI8L2Rpdj4KICAgICAgPGRpdiBjbGFzcz0ic2VjdGlvbi1kZXNjcmlwdGlvbiI+Tm8gdGl0bGUgb3IgYXJ0aXN0IG1ldGFkYXRhIOKAlCBqdXN0IHRoZSBwbGF5ZXIuPC9kaXY+CiAgICAgIDxkZWVzLWF1ZGlvLXZpZXdlcgogICAgICAgIHNyYz0iaHR0cHM6Ly93d3cuc291bmRoZWxpeC5jb20vZXhhbXBsZXMvbXAzL1NvdW5kSGVsaXgtU29uZy0zLm1wMyIKICAgICAgPjwvZGVlcy1hdWRpby12aWV3ZXI+CiAgICA8L2Rpdj4KICA8L2Rpdj4KYH0pO3ZhciBRMixZdCxPYnQsQlY9YigoKT0+e3VlKCk7RHQoKTtGYnQoKTtRMj1mdW5jdGlvbih0LGUsYSxpLHIscyl7ZnVuY3Rpb24gbih4KXtpZih4IT09dm9pZCAwJiZ0eXBlb2YgeCE9ImZ1bmN0aW9uIil0aHJvdyBuZXcgVHlwZUVycm9yKCJGdW5jdGlvbiBleHBlY3RlZCIpO3JldHVybiB4fWZvcih2YXIgbz1pLmtpbmQsZD1vPT09ImdldHRlciI/ImdldCI6bz09PSJzZXR0ZXIiPyJzZXQiOiJ2YWx1ZSIsYz0hZSYmdD9pLnN0YXRpYz90OnQucHJvdG90eXBlOm51bGwsaD1lfHwoYz9PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGMsaS5uYW1lKTp7fSksbCxmPSExLGc9YS5sZW5ndGgtMTtnPj0wO2ctLSl7dmFyIHk9e307Zm9yKHZhciB2IGluIGkpeVt2XT12PT09ImFjY2VzcyI/e306aVt2XTtmb3IodmFyIHYgaW4gaS5hY2Nlc3MpeS5hY2Nlc3Nbdl09aS5hY2Nlc3Nbdl07eS5hZGRJbml0aWFsaXplcj1mdW5jdGlvbih4KXtpZihmKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBhZGQgaW5pdGlhbGl6ZXJzIGFmdGVyIGRlY29yYXRpb24gaGFzIGNvbXBsZXRlZCIpO3MucHVzaChuKHh8fG51bGwpKX07dmFyIG09KDAsYVtnXSkobz09PSJhY2Nlc3NvciI/e2dldDpoLmdldCxzZXQ6aC5zZXR9OmhbZF0seSk7aWYobz09PSJhY2Nlc3NvciIpe2lmKG09PT12b2lkIDApY29udGludWU7aWYobT09PW51bGx8fHR5cGVvZiBtIT0ib2JqZWN0Iil0aHJvdyBuZXcgVHlwZUVycm9yKCJPYmplY3QgZXhwZWN0ZWQiKTsobD1uKG0uZ2V0KSkmJihoLmdldD1sKSwobD1uKG0uc2V0KSkmJihoLnNldD1sKSwobD1uKG0uaW5pdCkpJiZyLnVuc2hpZnQobCl9ZWxzZShsPW4obSkpJiYobz09PSJmaWVsZCI/ci51bnNoaWZ0KGwpOmhbZF09bCl9YyYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGMsaS5uYW1lLGgpLGY9ITB9LFl0PWZ1bmN0aW9uKHQsZSxhKXtmb3IodmFyIGk9YXJndW1lbnRzLmxlbmd0aD4yLHI9MDtyPGUubGVuZ3RoO3IrKylhPWk/ZVtyXS5jYWxsKHQsYSk6ZVtyXS5jYWxsKHQpO3JldHVybiBpP2E6dm9pZCAwfSxPYnQ9KCgpPT57bGV0IHQ9W3BlKCJkZWVzLWF1ZGlvLXZpZXdlciIpXSxlLGE9W10saSxyPXhlLHMsbj1bXSxvPVtdLGQsYz1bXSxoPVtdLGwsZj1bXSxnPVtdLHksdj1bXSxtPVtdLHgsTT1bXSxTPVtdLEYsXz1bXSxrPVtdLE4sTD1bXSxBPVtdLHEsQz1bXSx6PVtdLEUsVD1bXSwkPVtdLFYsUj1bXSxVPVtdLHJlLGo9W10sbWU9W10sd2UsSD1bXSxjZT1bXSxrZSxXPVtdLEQ9W10sTyxaPVtdLFk9W10sb2UsZ2U9W10sYmU9W107dmFyICRlPWNsYXNzIGV4dGVuZHMgcntzdGF0aWN7aT10aGlzfXN0YXRpY3tsZXQgQj10eXBlb2YgU3ltYm9sPT0iZnVuY3Rpb24iJiZTeW1ib2wubWV0YWRhdGE/T2JqZWN0LmNyZWF0ZShyW1N5bWJvbC5tZXRhZGF0YV0/P251bGwpOnZvaWQgMDtzPVtJKCldLGQ9W0koKV0sbD1bSSgpXSx5PVtJKHt0eXBlOkJvb2xlYW59KV0seD1bSSh7dHlwZTpCb29sZWFufSldLEY9W0koe3R5cGU6Qm9vbGVhbn0pXSxOPVtKKCldLHE9W0ooKV0sRT1bSigpXSxWPVtKKCldLHJlPVtKKCldLHdlPVtKKCldLGtlPVtKKCldLE89W0ooKV0sb2U9W0ooKV0sUTIodGhpcyxudWxsLHMse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJzcmMiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOlA9PiJzcmMiaW4gUCxnZXQ6UD0+UC5zcmMsc2V0OihQLEspPT57UC5zcmM9S319LG1ldGFkYXRhOkJ9LG4sbyksUTIodGhpcyxudWxsLGQse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJ0aXRsZSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6UD0+InRpdGxlImluIFAsZ2V0OlA9PlAudGl0bGUsc2V0OihQLEspPT57UC50aXRsZT1LfX0sbWV0YWRhdGE6Qn0sYyxoKSxRMih0aGlzLG51bGwsbCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImFydGlzdCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6UD0+ImFydGlzdCJpbiBQLGdldDpQPT5QLmFydGlzdCxzZXQ6KFAsSyk9PntQLmFydGlzdD1LfX0sbWV0YWRhdGE6Qn0sZixnKSxRMih0aGlzLG51bGwseSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InNob3dXYXZlZm9ybSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6UD0+InNob3dXYXZlZm9ybSJpbiBQLGdldDpQPT5QLnNob3dXYXZlZm9ybSxzZXQ6KFAsSyk9PntQLnNob3dXYXZlZm9ybT1LfX0sbWV0YWRhdGE6Qn0sdixtKSxRMih0aGlzLG51bGwseCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImF1dG9wbGF5IixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpQPT4iYXV0b3BsYXkiaW4gUCxnZXQ6UD0+UC5hdXRvcGxheSxzZXQ6KFAsSyk9PntQLmF1dG9wbGF5PUt9fSxtZXRhZGF0YTpCfSxNLFMpLFEyKHRoaXMsbnVsbCxGLHtraW5kOiJhY2Nlc3NvciIsbmFtZToibG9vcCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6UD0+Imxvb3AiaW4gUCxnZXQ6UD0+UC5sb29wLHNldDooUCxLKT0+e1AubG9vcD1LfX0sbWV0YWRhdGE6Qn0sXyxrKSxRMih0aGlzLG51bGwsTix7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImlzUGxheWluZyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6UD0+ImlzUGxheWluZyJpbiBQLGdldDpQPT5QLmlzUGxheWluZyxzZXQ6KFAsSyk9PntQLmlzUGxheWluZz1LfX0sbWV0YWRhdGE6Qn0sTCxBKSxRMih0aGlzLG51bGwscSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImN1cnJlbnRUaW1lIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpQPT4iY3VycmVudFRpbWUiaW4gUCxnZXQ6UD0+UC5jdXJyZW50VGltZSxzZXQ6KFAsSyk9PntQLmN1cnJlbnRUaW1lPUt9fSxtZXRhZGF0YTpCfSxDLHopLFEyKHRoaXMsbnVsbCxFLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiZHVyYXRpb24iLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOlA9PiJkdXJhdGlvbiJpbiBQLGdldDpQPT5QLmR1cmF0aW9uLHNldDooUCxLKT0+e1AuZHVyYXRpb249S319LG1ldGFkYXRhOkJ9LFQsJCksUTIodGhpcyxudWxsLFYse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJ2b2x1bWUiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOlA9PiJ2b2x1bWUiaW4gUCxnZXQ6UD0+UC52b2x1bWUsc2V0OihQLEspPT57UC52b2x1bWU9S319LG1ldGFkYXRhOkJ9LFIsVSksUTIodGhpcyxudWxsLHJlLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiaXNNdXRlZCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6UD0+ImlzTXV0ZWQiaW4gUCxnZXQ6UD0+UC5pc011dGVkLHNldDooUCxLKT0+e1AuaXNNdXRlZD1LfX0sbWV0YWRhdGE6Qn0saixtZSksUTIodGhpcyxudWxsLHdlLHtraW5kOiJhY2Nlc3NvciIsbmFtZToibG9hZGluZyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6UD0+ImxvYWRpbmciaW4gUCxnZXQ6UD0+UC5sb2FkaW5nLHNldDooUCxLKT0+e1AubG9hZGluZz1LfX0sbWV0YWRhdGE6Qn0sSCxjZSksUTIodGhpcyxudWxsLGtlLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiZXJyb3IiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOlA9PiJlcnJvciJpbiBQLGdldDpQPT5QLmVycm9yLHNldDooUCxLKT0+e1AuZXJyb3I9S319LG1ldGFkYXRhOkJ9LFcsRCksUTIodGhpcyxudWxsLE8se2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJ3YXZlZm9ybURhdGEiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOlA9PiJ3YXZlZm9ybURhdGEiaW4gUCxnZXQ6UD0+UC53YXZlZm9ybURhdGEsc2V0OihQLEspPT57UC53YXZlZm9ybURhdGE9S319LG1ldGFkYXRhOkJ9LFosWSksUTIodGhpcyxudWxsLG9lLHtraW5kOiJhY2Nlc3NvciIsbmFtZToid2F2ZWZvcm1SZWFkeSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6UD0+IndhdmVmb3JtUmVhZHkiaW4gUCxnZXQ6UD0+UC53YXZlZm9ybVJlYWR5LHNldDooUCxLKT0+e1Aud2F2ZWZvcm1SZWFkeT1LfX0sbWV0YWRhdGE6Qn0sZ2UsYmUpLFEyKG51bGwsZT17dmFsdWU6aX0sdCx7a2luZDoiY2xhc3MiLG5hbWU6aS5uYW1lLG1ldGFkYXRhOkJ9LG51bGwsYSksJGU9aT1lLnZhbHVlLEImJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShpLFN5bWJvbC5tZXRhZGF0YSx7ZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITAsdmFsdWU6Qn0pfXN0YXRpYyBkZW1vPU5idDtzdGF0aWMgZGVtb0dyb3Vwcz1bIk1lZGlhIl07I2U9WXQodGhpcyxuLCIiKTtnZXQgc3JjKCl7cmV0dXJuIHRoaXMuI2V9c2V0IHNyYyhCKXt0aGlzLiNlPUJ9I3Q9KFl0KHRoaXMsbyksWXQodGhpcyxjLCIiKSk7Z2V0IHRpdGxlKCl7cmV0dXJuIHRoaXMuI3R9c2V0IHRpdGxlKEIpe3RoaXMuI3Q9Qn0jYT0oWXQodGhpcyxoKSxZdCh0aGlzLGYsIiIpKTtnZXQgYXJ0aXN0KCl7cmV0dXJuIHRoaXMuI2F9c2V0IGFydGlzdChCKXt0aGlzLiNhPUJ9I2k9KFl0KHRoaXMsZyksWXQodGhpcyx2LCEwKSk7Z2V0IHNob3dXYXZlZm9ybSgpe3JldHVybiB0aGlzLiNpfXNldCBzaG93V2F2ZWZvcm0oQil7dGhpcy4jaT1CfSNyPShZdCh0aGlzLG0pLFl0KHRoaXMsTSwhMSkpO2dldCBhdXRvcGxheSgpe3JldHVybiB0aGlzLiNyfXNldCBhdXRvcGxheShCKXt0aGlzLiNyPUJ9I3M9KFl0KHRoaXMsUyksWXQodGhpcyxfLCExKSk7Z2V0IGxvb3AoKXtyZXR1cm4gdGhpcy4jc31zZXQgbG9vcChCKXt0aGlzLiNzPUJ9I249KFl0KHRoaXMsayksWXQodGhpcyxMLCExKSk7Z2V0IGlzUGxheWluZygpe3JldHVybiB0aGlzLiNufXNldCBpc1BsYXlpbmcoQil7dGhpcy4jbj1CfSNvPShZdCh0aGlzLEEpLFl0KHRoaXMsQywwKSk7Z2V0IGN1cnJlbnRUaW1lKCl7cmV0dXJuIHRoaXMuI299c2V0IGN1cnJlbnRUaW1lKEIpe3RoaXMuI289Qn0jbD0oWXQodGhpcyx6KSxZdCh0aGlzLFQsMCkpO2dldCBkdXJhdGlvbigpe3JldHVybiB0aGlzLiNsfXNldCBkdXJhdGlvbihCKXt0aGlzLiNsPUJ9I2M9KFl0KHRoaXMsJCksWXQodGhpcyxSLDEpKTtnZXQgdm9sdW1lKCl7cmV0dXJuIHRoaXMuI2N9c2V0IHZvbHVtZShCKXt0aGlzLiNjPUJ9I2Q9KFl0KHRoaXMsVSksWXQodGhpcyxqLCExKSk7Z2V0IGlzTXV0ZWQoKXtyZXR1cm4gdGhpcy4jZH1zZXQgaXNNdXRlZChCKXt0aGlzLiNkPUJ9I2g9KFl0KHRoaXMsbWUpLFl0KHRoaXMsSCwhMSkpO2dldCBsb2FkaW5nKCl7cmV0dXJuIHRoaXMuI2h9c2V0IGxvYWRpbmcoQil7dGhpcy4jaD1CfSNwPShZdCh0aGlzLGNlKSxZdCh0aGlzLFcsIiIpKTtnZXQgZXJyb3IoKXtyZXR1cm4gdGhpcy4jcH1zZXQgZXJyb3IoQil7dGhpcy4jcD1CfSN1PShZdCh0aGlzLEQpLFl0KHRoaXMsWixbXSkpO2dldCB3YXZlZm9ybURhdGEoKXtyZXR1cm4gdGhpcy4jdX1zZXQgd2F2ZWZvcm1EYXRhKEIpe3RoaXMuI3U9Qn0jZj0oWXQodGhpcyxZKSxZdCh0aGlzLGdlLCExKSk7Z2V0IHdhdmVmb3JtUmVhZHkoKXtyZXR1cm4gdGhpcy4jZn1zZXQgd2F2ZWZvcm1SZWFkeShCKXt0aGlzLiNmPUJ9YXVkaW9FbGVtZW50PShZdCh0aGlzLGJlKSxudWxsKTtjYW52YXNFbGVtZW50PW51bGw7YW5pbUZyYW1lSWQ9MDt2b2x1bWVCZWZvcmVNdXRlPTE7cmVuZGVyKCl7bGV0IEI9dGhpcy50aXRsZSYmdGhpcy5hcnRpc3Q/YCR7dGhpcy50aXRsZX0gXHUyMDE0ICR7dGhpcy5hcnRpc3R9YDp0aGlzLnRpdGxlfHx0aGlzLmFydGlzdHx8IiI7cmV0dXJuIHdgCiAgICAgIDxzdHlsZT4KICAgICAgICA6aG9zdCB7CiAgICAgICAgICBkaXNwbGF5OiBibG9jazsKICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgICAgIHdpZHRoOiAxMDAlOwogICAgICAgICAgaGVpZ2h0OiAxMDAlOwogICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgICAgICAgIGZvbnQtZmFtaWx5OiAtYXBwbGUtc3lzdGVtLCBCbGlua01hY1N5c3RlbUZvbnQsICdTZWdvZSBVSScsIFJvYm90bywgc2Fucy1zZXJpZjsKICAgICAgICB9CgogICAgICAgIC52aWV3ZXItY29udGFpbmVyIHsKICAgICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICAgICAgaGVpZ2h0OiAxMDAlOwogICAgICAgICAgYmFja2dyb3VuZDogJHtwLmJkVGhlbWUoImhzbCgwIDAlIDk3JSkiLCJoc2woMjE1IDIwJSAxMCUpIil9OwogICAgICAgIH0KCiAgICAgICAgLnRvb2xiYXIgewogICAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgICBnYXA6IDE2cHg7CiAgICAgICAgICBwYWRkaW5nOiAwIDE2cHg7CiAgICAgICAgICBoZWlnaHQ6IDQ4cHg7CiAgICAgICAgICBiYWNrZ3JvdW5kOiAke3AuYmRUaGVtZSgiI2ZmZmZmZiIsImhzbCgyMTUgMjAlIDE1JSkiKX07CiAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHtwLmJkVGhlbWUoIiNlNWU3ZWIiLCJoc2woMjE3IDI1JSAyMiUpIil9OwogICAgICAgICAgZmxleC1zaHJpbms6IDA7CiAgICAgICAgfQoKICAgICAgICAudG9vbGJhci1ncm91cCB7CiAgICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICAgIGdhcDogNHB4OwogICAgICAgIH0KCiAgICAgICAgLnRvb2xiYXItZ3JvdXAtLWVuZCB7CiAgICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICAgIGdhcDogNHB4OwogICAgICAgICAgbWFyZ2luLWxlZnQ6IGF1dG87CiAgICAgICAgfQoKICAgICAgICAudG9vbGJhci1idXR0b24gewogICAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKICAgICAgICAgIHdpZHRoOiAzMnB4OwogICAgICAgICAgaGVpZ2h0OiAzMnB4OwogICAgICAgICAgYm9yZGVyOiBub25lOwogICAgICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7CiAgICAgICAgICBjb2xvcjogJHtwLmJkVGhlbWUoImhzbCgyMTUgMTYlIDQ1JSkiLCJoc2woMjE1IDE2JSA3NSUpIil9OwogICAgICAgICAgYm9yZGVyLXJhZGl1czogNnB4OwogICAgICAgICAgY3Vyc29yOiBwb2ludGVyOwogICAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuMTVzIGVhc2U7CiAgICAgICAgICBmbGV4LXNocmluazogMDsKICAgICAgICB9CgogICAgICAgIC50b29sYmFyLWJ1dHRvbiBkZWVzLWljb24gewogICAgICAgICAgZm9udC1zaXplOiAxNnB4OwogICAgICAgIH0KCiAgICAgICAgLnRvb2xiYXItYnV0dG9uOmhvdmVyIHsKICAgICAgICAgIGJhY2tncm91bmQ6ICR7cC5iZFRoZW1lKCJoc2woMjE0IDMxJSA5MiUpIiwiaHNsKDIxNyAyNSUgMjIlKSIpfTsKICAgICAgICAgIGNvbG9yOiAke3AuYmRUaGVtZSgiIzA5MDkwYiIsIiNmYWZhZmEiKX07CiAgICAgICAgfQoKICAgICAgICAudG9vbGJhci1idXR0b246YWN0aXZlIHsKICAgICAgICAgIGJhY2tncm91bmQ6ICR7cC5iZFRoZW1lKCIjZTVlN2ViIiwiIzNmM2Y0NiIpfTsKICAgICAgICB9CgogICAgICAgIC50b29sYmFyLWJ1dHRvbi5hY3RpdmUgewogICAgICAgICAgY29sb3I6ICR7cC5iZFRoZW1lKCJoc2woMjE3IDkxJSA2MCUpIiwiaHNsKDIxMyA5MyUgNjglKSIpfTsKICAgICAgICB9CgogICAgICAgIC50b29sYmFyLXRpdGxlIHsKICAgICAgICAgIGZvbnQtc2l6ZTogMTNweDsKICAgICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7CiAgICAgICAgICBjb2xvcjogJHtwLmJkVGhlbWUoImhzbCgyMTUgMTYlIDQ1JSkiLCJoc2woMjE1IDE2JSA3NSUpIil9OwogICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzOwogICAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDsKICAgICAgICAgIG1pbi13aWR0aDogMDsKICAgICAgICB9CgogICAgICAgIC50aW1lLWRpc3BsYXkgewogICAgICAgICAgZm9udC1zaXplOiAxM3B4OwogICAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDsKICAgICAgICAgIGZvbnQtdmFyaWFudC1udW1lcmljOiB0YWJ1bGFyLW51bXM7CiAgICAgICAgICBjb2xvcjogJHtwLmJkVGhlbWUoImhzbCgyMTUgMTYlIDQ1JSkiLCJoc2woMjE1IDE2JSA3NSUpIil9OwogICAgICAgICAgbWluLXdpZHRoOiA5MHB4OwogICAgICAgICAgZmxleC1zaHJpbms6IDA7CiAgICAgICAgfQoKICAgICAgICAudm9sdW1lLWdyb3VwIHsKICAgICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgICAgZ2FwOiA0cHg7CiAgICAgICAgfQoKICAgICAgICAudm9sdW1lLXNsaWRlciB7CiAgICAgICAgICB3aWR0aDogNzBweDsKICAgICAgICAgIGhlaWdodDogNHB4OwogICAgICAgICAgLXdlYmtpdC1hcHBlYXJhbmNlOiBub25lOwogICAgICAgICAgYXBwZWFyYW5jZTogbm9uZTsKICAgICAgICAgIGJhY2tncm91bmQ6ICR7cC5iZFRoZW1lKCJoc2woMjE0IDMxJSA5MSUpIiwiaHNsKDIxNyAyNSUgMjIlKSIpfTsKICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDJweDsKICAgICAgICAgIG91dGxpbmU6IG5vbmU7CiAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICAgICAgfQoKICAgICAgICAudm9sdW1lLXNsaWRlcjo6LXdlYmtpdC1zbGlkZXItdGh1bWIgewogICAgICAgICAgLXdlYmtpdC1hcHBlYXJhbmNlOiBub25lOwogICAgICAgICAgd2lkdGg6IDEycHg7CiAgICAgICAgICBoZWlnaHQ6IDEycHg7CiAgICAgICAgICBib3JkZXItcmFkaXVzOiA1MCU7CiAgICAgICAgICBiYWNrZ3JvdW5kOiAke3AuYmRUaGVtZSgiaHNsKDIxNyA5MSUgNjAlKSIsImhzbCgyMTMgOTMlIDY4JSkiKX07CiAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICAgICAgfQoKICAgICAgICAudm9sdW1lLXNsaWRlcjo6LW1vei1yYW5nZS10aHVtYiB7CiAgICAgICAgICB3aWR0aDogMTJweDsKICAgICAgICAgIGhlaWdodDogMTJweDsKICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDUwJTsKICAgICAgICAgIGJhY2tncm91bmQ6ICR7cC5iZFRoZW1lKCJoc2woMjE3IDkxJSA2MCUpIiwiaHNsKDIxMyA5MyUgNjglKSIpfTsKICAgICAgICAgIGJvcmRlcjogbm9uZTsKICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjsKICAgICAgICB9CgogICAgICAgIC5jb250ZW50LWFyZWEgewogICAgICAgICAgZmxleDogMTsKICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47CiAgICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOwogICAgICAgIH0KCiAgICAgICAgLndhdmVmb3JtLWNvbnRhaW5lciB7CiAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgICAgICBpbnNldDogMDsKICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjsKICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47CiAgICAgICAgfQoKICAgICAgICAud2F2ZWZvcm0tY29udGFpbmVyIGNhbnZhcyB7CiAgICAgICAgICB3aWR0aDogMTAwJTsKICAgICAgICAgIGhlaWdodDogMTAwJTsKICAgICAgICAgIGRpc3BsYXk6IGJsb2NrOwogICAgICAgIH0KCiAgICAgICAgLnNlZWtiYXItY29udGFpbmVyIHsKICAgICAgICAgIHdpZHRoOiA4MCU7CiAgICAgICAgICBtYXgtd2lkdGg6IDYwMHB4OwogICAgICAgICAgaGVpZ2h0OiA2cHg7CiAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICAgICAgICBib3JkZXItcmFkaXVzOiAzcHg7CiAgICAgICAgICBiYWNrZ3JvdW5kOiAke3AuYmRUaGVtZSgiaHNsKDIxNCAzMSUgOTElKSIsImhzbCgyMTcgMjUlIDIyJSkiKX07CiAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgICAgIH0KCiAgICAgICAgLnNlZWtiYXItZmlsbCB7CiAgICAgICAgICBoZWlnaHQ6IDEwMCU7CiAgICAgICAgICBiYWNrZ3JvdW5kOiAke3AuYmRUaGVtZSgiaHNsKDIxNyA5MSUgNjAlKSIsImhzbCgyMTMgOTMlIDY4JSkiKX07CiAgICAgICAgICBib3JkZXItcmFkaXVzOiAzcHg7CiAgICAgICAgICB0cmFuc2l0aW9uOiB3aWR0aCAwLjFzIGxpbmVhcjsKICAgICAgICB9CgogICAgICAgIC5lcnJvci1vdmVybGF5IHsKICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgICAgIGluc2V0OiAwOwogICAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7CiAgICAgICAgICBnYXA6IDhweDsKICAgICAgICAgIGNvbG9yOiAke3AuYmRUaGVtZSgiIzcxNzE3YSIsIiNhMWExYWEiKX07CiAgICAgICAgfQoKICAgICAgICAuZXJyb3Itb3ZlcmxheSAuZXJyb3ItaWNvbiB7CiAgICAgICAgICBjb2xvcjogJHtwLmJkVGhlbWUoIiNkYzI2MjYiLCIjZjg3MTcxIil9OwogICAgICAgICAgZm9udC1zaXplOiAzMnB4OwogICAgICAgIH0KCiAgICAgICAgLmVycm9yLXRleHQgewogICAgICAgICAgZm9udC1zaXplOiAxM3B4OwogICAgICAgIH0KCiAgICAgICAgLmxvYWRpbmctb3ZlcmxheSB7CiAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgICAgICBpbnNldDogMDsKICAgICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7CiAgICAgICAgfQoKICAgICAgICAubG9hZGluZy1zcGlubmVyIHsKICAgICAgICAgIHdpZHRoOiAzMnB4OwogICAgICAgICAgaGVpZ2h0OiAzMnB4OwogICAgICAgICAgYm9yZGVyOiAzcHggc29saWQgJHtwLmJkVGhlbWUoImhzbCgyMTQgMzElIDg2JSkiLCJoc2woMjE3IDI1JSAyOCUpIil9OwogICAgICAgICAgYm9yZGVyLXRvcC1jb2xvcjogJHtwLmJkVGhlbWUoImhzbCgyMTcgOTElIDYwJSkiLCJoc2woMjEzIDkzJSA2OCUpIil9OwogICAgICAgICAgYm9yZGVyLXJhZGl1czogNTAlOwogICAgICAgICAgYW5pbWF0aW9uOiBzcGluIDAuOHMgbGluZWFyIGluZmluaXRlOwogICAgICAgIH0KCiAgICAgICAgQGtleWZyYW1lcyBzcGluIHsKICAgICAgICAgIHRvIHsgdHJhbnNmb3JtOiByb3RhdGUoMzYwZGVnKTsgfQogICAgICAgIH0KICAgICAgPC9zdHlsZT4KCiAgICAgIDxkaXYgY2xhc3M9InZpZXdlci1jb250YWluZXIiPgogICAgICAgIDxkaXYgY2xhc3M9InRvb2xiYXIiPgogICAgICAgICAgPGRpdiBjbGFzcz0idG9vbGJhci1ncm91cCI+CiAgICAgICAgICAgIDxidXR0b24gY2xhc3M9InRvb2xiYXItYnV0dG9uIiBAY2xpY2s9JHt0aGlzLnRvZ2dsZVBsYXl9PgogICAgICAgICAgICAgIDxkZWVzLWljb24gaWNvbj0ibHVjaWRlOiR7dGhpcy5pc1BsYXlpbmc/IlBhdXNlIjoiUGxheSJ9Ij48L2RlZXMtaWNvbj4KICAgICAgICAgICAgPC9idXR0b24+CiAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJ0aW1lLWRpc3BsYXkiPgogICAgICAgICAgICAgICR7dGhpcy5mb3JtYXRUaW1lKHRoaXMuY3VycmVudFRpbWUpfSAvICR7dGhpcy5mb3JtYXRUaW1lKHRoaXMuZHVyYXRpb24pfQogICAgICAgICAgICA8L3NwYW4+CiAgICAgICAgICA8L2Rpdj4KCiAgICAgICAgICAke0I/d2AKICAgICAgICAgICAgPHNwYW4gY2xhc3M9InRvb2xiYXItdGl0bGUiPiR7Qn08L3NwYW4+CiAgICAgICAgICBgOiIifQoKICAgICAgICAgIDxkaXYgY2xhc3M9InRvb2xiYXItZ3JvdXAtLWVuZCI+CiAgICAgICAgICAgIDxidXR0b24KICAgICAgICAgICAgICBjbGFzcz0idG9vbGJhci1idXR0b24gJHt0aGlzLmxvb3A/ImFjdGl2ZSI6IiJ9IgogICAgICAgICAgICAgIEBjbGljaz0ke3RoaXMudG9nZ2xlTG9vcH0KICAgICAgICAgICAgICB0aXRsZT0iTG9vcCIKICAgICAgICAgICAgPgogICAgICAgICAgICAgIDxkZWVzLWljb24gaWNvbj0ibHVjaWRlOlJlcGVhdCI+PC9kZWVzLWljb24+CiAgICAgICAgICAgIDwvYnV0dG9uPgoKICAgICAgICAgICAgPGRpdiBjbGFzcz0idm9sdW1lLWdyb3VwIj4KICAgICAgICAgICAgICA8YnV0dG9uIGNsYXNzPSJ0b29sYmFyLWJ1dHRvbiIgQGNsaWNrPSR7dGhpcy50b2dnbGVNdXRlfSB0aXRsZT0iJHt0aGlzLmlzTXV0ZWQ/IlVubXV0ZSI6Ik11dGUifSI+CiAgICAgICAgICAgICAgICA8ZGVlcy1pY29uIGljb249Imx1Y2lkZToke3RoaXMuaXNNdXRlZHx8dGhpcy52b2x1bWU9PT0wPyJWb2x1bWVYIjp0aGlzLnZvbHVtZTwuNT8iVm9sdW1lMSI6IlZvbHVtZTIifSI+PC9kZWVzLWljb24+CiAgICAgICAgICAgICAgPC9idXR0b24+CiAgICAgICAgICAgICAgPGlucHV0CiAgICAgICAgICAgICAgICBjbGFzcz0idm9sdW1lLXNsaWRlciIKICAgICAgICAgICAgICAgIHR5cGU9InJhbmdlIgogICAgICAgICAgICAgICAgbWluPSIwIgogICAgICAgICAgICAgICAgbWF4PSIxIgogICAgICAgICAgICAgICAgc3RlcD0iMC4wMSIKICAgICAgICAgICAgICAgIC52YWx1ZT0ke1N0cmluZyh0aGlzLmlzTXV0ZWQ/MDp0aGlzLnZvbHVtZSl9CiAgICAgICAgICAgICAgICBAaW5wdXQ9JHt0aGlzLmhhbmRsZVZvbHVtZUNoYW5nZX0KICAgICAgICAgICAgICAvPgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIDwvZGl2PgogICAgICAgIDwvZGl2PgoKICAgICAgICA8ZGl2IGNsYXNzPSJjb250ZW50LWFyZWEiPgogICAgICAgICAgJHt0aGlzLmVycm9yP3dgCiAgICAgICAgICAgIDxkaXYgY2xhc3M9ImVycm9yLW92ZXJsYXkiPgogICAgICAgICAgICAgIDxkZWVzLWljb24gY2xhc3M9ImVycm9yLWljb24iIGljb249Imx1Y2lkZTpNdXNpY09mZiI+PC9kZWVzLWljb24+CiAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVycm9yLXRleHQiPiR7dGhpcy5lcnJvcn08L3NwYW4+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgYDp0aGlzLmxvYWRpbmc/d2AKICAgICAgICAgICAgPGRpdiBjbGFzcz0ibG9hZGluZy1vdmVybGF5Ij4KICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJsb2FkaW5nLXNwaW5uZXIiPjwvZGl2PgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIGA6dGhpcy5zaG93V2F2ZWZvcm0/d2AKICAgICAgICAgICAgPGRpdiBjbGFzcz0id2F2ZWZvcm0tY29udGFpbmVyIiBAY2xpY2s9JHt0aGlzLmhhbmRsZVdhdmVmb3JtQ2xpY2t9PgogICAgICAgICAgICAgIDxjYW52YXM+PC9jYW52YXM+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgYDp3YAogICAgICAgICAgICA8ZGl2IGNsYXNzPSJzZWVrYmFyLWNvbnRhaW5lciIgQGNsaWNrPSR7dGhpcy5oYW5kbGVTZWVrYmFyQ2xpY2t9PgogICAgICAgICAgICAgIDxkaXYgY2xhc3M9InNlZWtiYXItZmlsbCIgc3R5bGU9IndpZHRoOiAke3RoaXMuZHVyYXRpb24/dGhpcy5jdXJyZW50VGltZS90aGlzLmR1cmF0aW9uKjEwMDowfSUiPjwvZGl2PgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIGB9CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGl2PgogICAgYH1hc3luYyBjb25uZWN0ZWRDYWxsYmFjaygpe2F3YWl0IHN1cGVyLmNvbm5lY3RlZENhbGxiYWNrKCksdGhpcy5zcmMmJnRoaXMuaW5pdEF1ZGlvKCl9YXN5bmMgZGlzY29ubmVjdGVkQ2FsbGJhY2soKXthd2FpdCBzdXBlci5kaXNjb25uZWN0ZWRDYWxsYmFjaygpLHRoaXMuY2xlYW51cCgpfWFzeW5jIHVwZGF0ZWQoQil7c3VwZXIudXBkYXRlZChCKSxCLmhhcygic3JjIikmJnRoaXMuc3JjJiYodGhpcy5jbGVhbnVwKCksdGhpcy5pbml0QXVkaW8oKSksKEIuaGFzKCJ3YXZlZm9ybURhdGEiKXx8Qi5oYXMoImN1cnJlbnRUaW1lIikpJiZ0aGlzLmRyYXdXYXZlZm9ybSgpfXBsYXkoKXt0aGlzLmF1ZGlvRWxlbWVudD8ucGxheSgpfXBhdXNlKCl7dGhpcy5hdWRpb0VsZW1lbnQ/LnBhdXNlKCl9dG9nZ2xlUGxheSgpe3RoaXMuaXNQbGF5aW5nP3RoaXMucGF1c2UoKTp0aGlzLnBsYXkoKX1zZWVrKEIpe3RoaXMuYXVkaW9FbGVtZW50JiYodGhpcy5hdWRpb0VsZW1lbnQuY3VycmVudFRpbWU9Qil9c2V0Vm9sdW1lKEIpe3RoaXMudm9sdW1lPU1hdGgubWF4KDAsTWF0aC5taW4oMSxCKSksdGhpcy5hdWRpb0VsZW1lbnQmJih0aGlzLmF1ZGlvRWxlbWVudC52b2x1bWU9dGhpcy52b2x1bWUpLHRoaXMudm9sdW1lPjAmJih0aGlzLmlzTXV0ZWQ9ITEpfXRvZ2dsZU11dGUoKXt0aGlzLmlzTXV0ZWQ/KHRoaXMuaXNNdXRlZD0hMSx0aGlzLnZvbHVtZT10aGlzLnZvbHVtZUJlZm9yZU11dGV8fC41LHRoaXMuYXVkaW9FbGVtZW50JiYodGhpcy5hdWRpb0VsZW1lbnQudm9sdW1lPXRoaXMudm9sdW1lKSk6KHRoaXMudm9sdW1lQmVmb3JlTXV0ZT10aGlzLnZvbHVtZSx0aGlzLmlzTXV0ZWQ9ITAsdGhpcy5hdWRpb0VsZW1lbnQmJih0aGlzLmF1ZGlvRWxlbWVudC52b2x1bWU9MCkpfXRvZ2dsZUxvb3AoKXt0aGlzLmxvb3A9IXRoaXMubG9vcCx0aGlzLmF1ZGlvRWxlbWVudCYmKHRoaXMuYXVkaW9FbGVtZW50Lmxvb3A9dGhpcy5sb29wKX1pbml0QXVkaW8oKXt0aGlzLmF1ZGlvRWxlbWVudD1uZXcgQXVkaW8sdGhpcy5hdWRpb0VsZW1lbnQuY3Jvc3NPcmlnaW49ImFub255bW91cyIsdGhpcy5hdWRpb0VsZW1lbnQuc3JjPXRoaXMuc3JjLHRoaXMuYXVkaW9FbGVtZW50LnZvbHVtZT10aGlzLmlzTXV0ZWQ/MDp0aGlzLnZvbHVtZSx0aGlzLmF1ZGlvRWxlbWVudC5sb29wPXRoaXMubG9vcCx0aGlzLmF1ZGlvRWxlbWVudC5hZGRFdmVudExpc3RlbmVyKCJsb2FkZWRtZXRhZGF0YSIsKCk9Pnt0aGlzLmR1cmF0aW9uPXRoaXMuYXVkaW9FbGVtZW50LmR1cmF0aW9uLHRoaXMubG9hZGluZz0hMX0pLHRoaXMuYXVkaW9FbGVtZW50LmFkZEV2ZW50TGlzdGVuZXIoInBsYXkiLCgpPT57dGhpcy5pc1BsYXlpbmc9ITAsdGhpcy5zdGFydFRpbWVVcGRhdGUoKX0pLHRoaXMuYXVkaW9FbGVtZW50LmFkZEV2ZW50TGlzdGVuZXIoInBhdXNlIiwoKT0+e3RoaXMuaXNQbGF5aW5nPSExLHRoaXMuc3RvcFRpbWVVcGRhdGUoKX0pLHRoaXMuYXVkaW9FbGVtZW50LmFkZEV2ZW50TGlzdGVuZXIoImVuZGVkIiwoKT0+e3RoaXMuaXNQbGF5aW5nPSExLHRoaXMuc3RvcFRpbWVVcGRhdGUoKX0pLHRoaXMuYXVkaW9FbGVtZW50LmFkZEV2ZW50TGlzdGVuZXIoImVycm9yIiwoKT0+e3RoaXMuZXJyb3I9IkZhaWxlZCB0byBsb2FkIGF1ZGlvIix0aGlzLmxvYWRpbmc9ITF9KSx0aGlzLmF1ZGlvRWxlbWVudC5hZGRFdmVudExpc3RlbmVyKCJ0aW1ldXBkYXRlIiwoKT0+e3RoaXMuY3VycmVudFRpbWU9dGhpcy5hdWRpb0VsZW1lbnQuY3VycmVudFRpbWV9KSx0aGlzLmF1dG9wbGF5JiZ0aGlzLmF1ZGlvRWxlbWVudC5wbGF5KCkuY2F0Y2goKCk9Pnt9KSx0aGlzLnNob3dXYXZlZm9ybSYmdGhpcy5sb2FkV2F2ZWZvcm0oKX1hc3luYyBsb2FkV2F2ZWZvcm0oKXt0cnl7dGhpcy5sb2FkaW5nPSEwO2xldCBQPWF3YWl0KGF3YWl0IGZldGNoKHRoaXMuc3JjKSkuYXJyYXlCdWZmZXIoKSxLPW5ldyBBdWRpb0NvbnRleHQsZGU9KGF3YWl0IEsuZGVjb2RlQXVkaW9EYXRhKFApKS5nZXRDaGFubmVsRGF0YSgwKSxfZT0yMDAsaGU9TWF0aC5mbG9vcihkZS5sZW5ndGgvX2UpLHRlPVtdO2ZvcihsZXQgRmU9MDtGZTxfZTtGZSsrKXtsZXQgV2U9MDtmb3IobGV0IHllPTA7eWU8aGU7eWUrKylXZSs9TWF0aC5hYnMoZGVbRmUqaGUreWVdKTt0ZS5wdXNoKFdlL2hlKX1sZXQgemU9TWF0aC5tYXgoLi4udGUpO3RoaXMud2F2ZWZvcm1EYXRhPXRlLm1hcChGZT0+emU+MD9GZS96ZTowKSx0aGlzLndhdmVmb3JtUmVhZHk9ITAsdGhpcy5sb2FkaW5nPSExLGF3YWl0IEsuY2xvc2UoKX1jYXRjaHt0aGlzLndhdmVmb3JtUmVhZHk9ITEsdGhpcy5sb2FkaW5nPSExfX1kcmF3V2F2ZWZvcm0oKXtpZighdGhpcy5zaG93V2F2ZWZvcm18fCF0aGlzLndhdmVmb3JtUmVhZHkpcmV0dXJuO2xldCBCPXRoaXMuc2hhZG93Um9vdD8ucXVlcnlTZWxlY3RvcigiY2FudmFzIik7aWYoIUIpcmV0dXJuO3RoaXMuY2FudmFzRWxlbWVudD1CO2xldCBQPUIucGFyZW50RWxlbWVudCxLPXdpbmRvdy5kZXZpY2VQaXhlbFJhdGlvfHwxLGZlPVAuY2xpZW50V2lkdGgsZGU9UC5jbGllbnRIZWlnaHQ7Qi53aWR0aD1mZSpLLEIuaGVpZ2h0PWRlKks7bGV0IF9lPUIuZ2V0Q29udGV4dCgiMmQiKTtpZighX2UpcmV0dXJuO19lLnNjYWxlKEssSyksX2UuY2xlYXJSZWN0KDAsMCxmZSxkZSk7bGV0IGhlPXRoaXMud2F2ZWZvcm1EYXRhLmxlbmd0aDtpZihoZT09PTApcmV0dXJuO2xldCB0ZT1mZS9oZSx6ZT10aGlzLmR1cmF0aW9uPjA/dGhpcy5jdXJyZW50VGltZS90aGlzLmR1cmF0aW9uOjAsRmU9TWF0aC5mbG9vcih6ZSpoZSksV2U9ZG9jdW1lbnQuYm9keS5jbGFzc0xpc3QuY29udGFpbnMoInRoZW1lLWRhcmsiKXx8d2luZG93Lm1hdGNoTWVkaWEoIihwcmVmZXJzLWNvbG9yLXNjaGVtZTogZGFyaykiKS5tYXRjaGVzLHllPVdlPyJoc2woMjEzIDkzJSA2OCUpIjoiaHNsKDIxNyA5MSUgNjAlKSIsZWU9V2U/ImhzbCgyMTcgMjUlIDIyJSkiOiJoc2woMjE0IDMxJSA4NiUpIjtmb3IobGV0IGFlPTA7YWU8aGU7YWUrKyl7bGV0IHZlPXRoaXMud2F2ZWZvcm1EYXRhW2FlXSxQZT1NYXRoLm1heCgyLHZlKihkZS00KSksVmU9YWUqdGUseHQ9KGRlLVBlKS8yO19lLmZpbGxTdHlsZT1hZTxGZT95ZTplZSxfZS5maWxsUmVjdChWZSsuNSx4dCx0ZS0xLFBlKX19aGFuZGxlV2F2ZWZvcm1DbGljayhCKXtsZXQgUD1CLmN1cnJlbnRUYXJnZXQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCksSz0oQi5jbGllbnRYLVAubGVmdCkvUC53aWR0aDt0aGlzLnNlZWsoSyp0aGlzLmR1cmF0aW9uKX1oYW5kbGVTZWVrYmFyQ2xpY2soQil7bGV0IFA9Qi5jdXJyZW50VGFyZ2V0LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLEs9KEIuY2xpZW50WC1QLmxlZnQpL1Aud2lkdGg7dGhpcy5zZWVrKEsqdGhpcy5kdXJhdGlvbil9aGFuZGxlVm9sdW1lQ2hhbmdlKEIpe2xldCBQPXBhcnNlRmxvYXQoQi50YXJnZXQudmFsdWUpO3RoaXMuc2V0Vm9sdW1lKFApfXN0YXJ0VGltZVVwZGF0ZSgpe3RoaXMuc3RvcFRpbWVVcGRhdGUoKTtsZXQgQj0oKT0+e3RoaXMuYXVkaW9FbGVtZW50JiZ0aGlzLmlzUGxheWluZyYmKHRoaXMuY3VycmVudFRpbWU9dGhpcy5hdWRpb0VsZW1lbnQuY3VycmVudFRpbWUsdGhpcy5hbmltRnJhbWVJZD1yZXF1ZXN0QW5pbWF0aW9uRnJhbWUoQikpfTt0aGlzLmFuaW1GcmFtZUlkPXJlcXVlc3RBbmltYXRpb25GcmFtZShCKX1zdG9wVGltZVVwZGF0ZSgpe3RoaXMuYW5pbUZyYW1lSWQmJihjYW5jZWxBbmltYXRpb25GcmFtZSh0aGlzLmFuaW1GcmFtZUlkKSx0aGlzLmFuaW1GcmFtZUlkPTApfWZvcm1hdFRpbWUoQil7aWYoIWlzRmluaXRlKEIpfHxCPDApcmV0dXJuIjA6MDAiO2xldCBQPU1hdGguZmxvb3IoQi82MCksSz1NYXRoLmZsb29yKEIlNjApO3JldHVybmAke1B9OiR7Sy50b1N0cmluZygpLnBhZFN0YXJ0KDIsIjAiKX1gfWNsZWFudXAoKXt0aGlzLnN0b3BUaW1lVXBkYXRlKCksdGhpcy5hdWRpb0VsZW1lbnQmJih0aGlzLmF1ZGlvRWxlbWVudC5wYXVzZSgpLHRoaXMuYXVkaW9FbGVtZW50LnNyYz0iIix0aGlzLmF1ZGlvRWxlbWVudD1udWxsKSx0aGlzLmlzUGxheWluZz0hMSx0aGlzLmN1cnJlbnRUaW1lPTAsdGhpcy5kdXJhdGlvbj0wLHRoaXMud2F2ZWZvcm1EYXRhPVtdLHRoaXMud2F2ZWZvcm1SZWFkeT0hMX1zdGF0aWN7WXQoaSxhKX19O3JldHVybiAkZT1pfSkoKX0pO3ZhciBSYnQ9YigoKT0+e0JWKCl9KTt2YXIgQmJ0LEhidD1iKCgpPT57dWUoKTtCYnQ9KCk9PndgCiAgPHN0eWxlPgogICAgLmRlbW8tY29udGFpbmVyIHsKICAgICAgcGFkZGluZzogNDhweDsKICAgICAgYmFja2dyb3VuZDogJHtwLmJkVGhlbWUoIiNmOGY5ZmEiLCIjMGEwYTBhIil9OwogICAgICBkaXNwbGF5OiBmbGV4OwogICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICBnYXA6IDMycHg7CiAgICB9CgogICAgLnNlY3Rpb24gewogICAgICBtYXgtd2lkdGg6IDgwMHB4OwogICAgICB3aWR0aDogMTAwJTsKICAgICAgbWFyZ2luOiAwIGF1dG87CiAgICB9CgogICAgLnNlY3Rpb24tdGl0bGUgewogICAgICBmb250LXNpemU6IDE4cHg7CiAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7CiAgICAgIG1hcmdpbi1ib3R0b206IDhweDsKICAgICAgY29sb3I6ICR7cC5iZFRoZW1lKCIjMDkwOTBiIiwiI2ZhZmFmYSIpfTsKICAgIH0KCiAgICAuc2VjdGlvbi1kZXNjcmlwdGlvbiB7CiAgICAgIGZvbnQtc2l6ZTogMTRweDsKICAgICAgY29sb3I6ICR7cC5iZFRoZW1lKCIjNzE3MTdhIiwiI2ExYTFhYSIpfTsKICAgICAgbWFyZ2luLWJvdHRvbTogMTZweDsKICAgIH0KICA8L3N0eWxlPgoKICA8ZGl2IGNsYXNzPSJkZW1vLWNvbnRhaW5lciI+CiAgICA8ZGl2IGNsYXNzPSJzZWN0aW9uIj4KICAgICAgPGRpdiBjbGFzcz0ic2VjdGlvbi10aXRsZSI+VmlkZW8gd2l0aCBDdXN0b20gQ29udHJvbHM8L2Rpdj4KICAgICAgPGRpdiBjbGFzcz0ic2VjdGlvbi1kZXNjcmlwdGlvbiI+QSB2aWRlbyBwbGF5ZXIgd2l0aCBvdmVybGF5IGNvbnRyb2xzLCBzZWVraW5nLCBhbmQgdm9sdW1lIGFkanVzdG1lbnQuPC9kaXY+CiAgICAgIDxkZWVzLXZpZGVvLXZpZXdlcgogICAgICAgIHNyYz0iaHR0cHM6Ly9jb21tb25kYXRhc3RvcmFnZS5nb29nbGVhcGlzLmNvbS9ndHYtdmlkZW9zLWJ1Y2tldC9zYW1wbGUvQmlnQnVja0J1bm55Lm1wNCIKICAgICAgICBwb3N0ZXI9Imh0dHBzOi8vY29tbW9uZGF0YXN0b3JhZ2UuZ29vZ2xlYXBpcy5jb20vZ3R2LXZpZGVvcy1idWNrZXQvc2FtcGxlL2ltYWdlcy9CaWdCdWNrQnVubnkuanBnIgogICAgICA+PC9kZWVzLXZpZGVvLXZpZXdlcj4KICAgIDwvZGl2PgoKICAgIDxkaXYgY2xhc3M9InNlY3Rpb24iPgogICAgICA8ZGl2IGNsYXNzPSJzZWN0aW9uLXRpdGxlIj5BdXRvcGxheSBNdXRlZDwvZGl2PgogICAgICA8ZGl2IGNsYXNzPSJzZWN0aW9uLWRlc2NyaXB0aW9uIj5WaWRlbyB0aGF0IGF1dG9wbGF5cyBtdXRlZCwgY29tbW9ubHkgdXNlZCBmb3IgcHJldmlld3MuPC9kaXY+CiAgICAgIDxkZWVzLXZpZGVvLXZpZXdlcgogICAgICAgIHNyYz0iaHR0cHM6Ly9jb21tb25kYXRhc3RvcmFnZS5nb29nbGVhcGlzLmNvbS9ndHYtdmlkZW9zLWJ1Y2tldC9zYW1wbGUvRWxlcGhhbnRzRHJlYW0ubXA0IgogICAgICAgIHBvc3Rlcj0iaHR0cHM6Ly9jb21tb25kYXRhc3RvcmFnZS5nb29nbGVhcGlzLmNvbS9ndHYtdmlkZW9zLWJ1Y2tldC9zYW1wbGUvaW1hZ2VzL0VsZXBoYW50c0RyZWFtLmpwZyIKICAgICAgICAuYXV0b3BsYXk9JHshMH0KICAgICAgICAubXV0ZWQ9JHshMH0KICAgICAgPjwvZGVlcy12aWRlby12aWV3ZXI+CiAgICA8L2Rpdj4KCiAgICA8ZGl2IGNsYXNzPSJzZWN0aW9uIj4KICAgICAgPGRpdiBjbGFzcz0ic2VjdGlvbi10aXRsZSI+TmF0aXZlIENvbnRyb2xzPC9kaXY+CiAgICAgIDxkaXYgY2xhc3M9InNlY3Rpb24tZGVzY3JpcHRpb24iPlZpZGVvIHVzaW5nIGJyb3dzZXItbmF0aXZlIGNvbnRyb2xzIGluc3RlYWQgb2YgY3VzdG9tIG92ZXJsYXkuPC9kaXY+CiAgICAgIDxkZWVzLXZpZGVvLXZpZXdlcgogICAgICAgIHNyYz0iaHR0cHM6Ly9jb21tb25kYXRhc3RvcmFnZS5nb29nbGVhcGlzLmNvbS9ndHYtdmlkZW9zLWJ1Y2tldC9zYW1wbGUvRm9yQmlnZ2VyQmxhemVzLm1wNCIKICAgICAgICAuc2hvd0NvbnRyb2xzPSR7ITF9CiAgICAgID48L2RlZXMtdmlkZW8tdmlld2VyPgogICAgPC9kaXY+CiAgPC9kaXY+CmB9KTt2YXIgYmEsbDEscWJ0LEhWPWIoKCk9Pnt1ZSgpO0R0KCk7SGJ0KCk7YmE9ZnVuY3Rpb24odCxlLGEsaSxyLHMpe2Z1bmN0aW9uIG4oeCl7aWYoeCE9PXZvaWQgMCYmdHlwZW9mIHghPSJmdW5jdGlvbiIpdGhyb3cgbmV3IFR5cGVFcnJvcigiRnVuY3Rpb24gZXhwZWN0ZWQiKTtyZXR1cm4geH1mb3IodmFyIG89aS5raW5kLGQ9bz09PSJnZXR0ZXIiPyJnZXQiOm89PT0ic2V0dGVyIj8ic2V0IjoidmFsdWUiLGM9IWUmJnQ/aS5zdGF0aWM/dDp0LnByb3RvdHlwZTpudWxsLGg9ZXx8KGM/T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihjLGkubmFtZSk6e30pLGwsZj0hMSxnPWEubGVuZ3RoLTE7Zz49MDtnLS0pe3ZhciB5PXt9O2Zvcih2YXIgdiBpbiBpKXlbdl09dj09PSJhY2Nlc3MiP3t9Omlbdl07Zm9yKHZhciB2IGluIGkuYWNjZXNzKXkuYWNjZXNzW3ZdPWkuYWNjZXNzW3ZdO3kuYWRkSW5pdGlhbGl6ZXI9ZnVuY3Rpb24oeCl7aWYoZil0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgYWRkIGluaXRpYWxpemVycyBhZnRlciBkZWNvcmF0aW9uIGhhcyBjb21wbGV0ZWQiKTtzLnB1c2gobih4fHxudWxsKSl9O3ZhciBtPSgwLGFbZ10pKG89PT0iYWNjZXNzb3IiP3tnZXQ6aC5nZXQsc2V0Omguc2V0fTpoW2RdLHkpO2lmKG89PT0iYWNjZXNzb3IiKXtpZihtPT09dm9pZCAwKWNvbnRpbnVlO2lmKG09PT1udWxsfHx0eXBlb2YgbSE9Im9iamVjdCIpdGhyb3cgbmV3IFR5cGVFcnJvcigiT2JqZWN0IGV4cGVjdGVkIik7KGw9bihtLmdldCkpJiYoaC5nZXQ9bCksKGw9bihtLnNldCkpJiYoaC5zZXQ9bCksKGw9bihtLmluaXQpKSYmci51bnNoaWZ0KGwpfWVsc2UobD1uKG0pKSYmKG89PT0iZmllbGQiP3IudW5zaGlmdChsKTpoW2RdPWwpfWMmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShjLGkubmFtZSxoKSxmPSEwfSxsMT1mdW5jdGlvbih0LGUsYSl7Zm9yKHZhciBpPWFyZ3VtZW50cy5sZW5ndGg+MixyPTA7cjxlLmxlbmd0aDtyKyspYT1pP2Vbcl0uY2FsbCh0LGEpOmVbcl0uY2FsbCh0KTtyZXR1cm4gaT9hOnZvaWQgMH0scWJ0PSgoKT0+e2xldCB0PVtwZSgiZGVlcy12aWRlby12aWV3ZXIiKV0sZSxhPVtdLGkscj14ZSxzLG49W10sbz1bXSxkLGM9W10saD1bXSxsLGY9W10sZz1bXSx5LHY9W10sbT1bXSx4LE09W10sUz1bXSxGLF89W10saz1bXSxOLEw9W10sQT1bXSxxLEM9W10sej1bXSxFLFQ9W10sJD1bXSxWLFI9W10sVT1bXSxyZSxqPVtdLG1lPVtdLHdlLEg9W10sY2U9W10sa2UsVz1bXSxEPVtdLE8sWj1bXSxZPVtdO3ZhciBvZT1jbGFzcyBleHRlbmRzIHJ7c3RhdGlje2k9dGhpc31zdGF0aWN7bGV0IGdlPXR5cGVvZiBTeW1ib2w9PSJmdW5jdGlvbiImJlN5bWJvbC5tZXRhZGF0YT9PYmplY3QuY3JlYXRlKHJbU3ltYm9sLm1ldGFkYXRhXT8/bnVsbCk6dm9pZCAwO3M9W0koKV0sZD1bSSgpXSxsPVtJKHt0eXBlOkJvb2xlYW59KV0seT1bSSh7dHlwZTpCb29sZWFufSldLHg9W0koe3R5cGU6Qm9vbGVhbn0pXSxGPVtJKHt0eXBlOkJvb2xlYW59KV0sTj1bSigpXSxxPVtKKCldLEU9W0ooKV0sVj1bSigpXSxyZT1bSigpXSx3ZT1bSigpXSxrZT1bSigpXSxPPVtKKCldLGJhKHRoaXMsbnVsbCxzLHtraW5kOiJhY2Nlc3NvciIsbmFtZToic3JjIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpiZT0+InNyYyJpbiBiZSxnZXQ6YmU9PmJlLnNyYyxzZXQ6KGJlLCRlKT0+e2JlLnNyYz0kZX19LG1ldGFkYXRhOmdlfSxuLG8pLGJhKHRoaXMsbnVsbCxkLHtraW5kOiJhY2Nlc3NvciIsbmFtZToicG9zdGVyIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpiZT0+InBvc3RlciJpbiBiZSxnZXQ6YmU9PmJlLnBvc3RlcixzZXQ6KGJlLCRlKT0+e2JlLnBvc3Rlcj0kZX19LG1ldGFkYXRhOmdlfSxjLGgpLGJhKHRoaXMsbnVsbCxsLHtraW5kOiJhY2Nlc3NvciIsbmFtZToic2hvd0NvbnRyb2xzIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpiZT0+InNob3dDb250cm9scyJpbiBiZSxnZXQ6YmU9PmJlLnNob3dDb250cm9scyxzZXQ6KGJlLCRlKT0+e2JlLnNob3dDb250cm9scz0kZX19LG1ldGFkYXRhOmdlfSxmLGcpLGJhKHRoaXMsbnVsbCx5LHtraW5kOiJhY2Nlc3NvciIsbmFtZToiYXV0b3BsYXkiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmJlPT4iYXV0b3BsYXkiaW4gYmUsZ2V0OmJlPT5iZS5hdXRvcGxheSxzZXQ6KGJlLCRlKT0+e2JlLmF1dG9wbGF5PSRlfX0sbWV0YWRhdGE6Z2V9LHYsbSksYmEodGhpcyxudWxsLHgse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJsb29wIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpiZT0+Imxvb3AiaW4gYmUsZ2V0OmJlPT5iZS5sb29wLHNldDooYmUsJGUpPT57YmUubG9vcD0kZX19LG1ldGFkYXRhOmdlfSxNLFMpLGJhKHRoaXMsbnVsbCxGLHtraW5kOiJhY2Nlc3NvciIsbmFtZToibXV0ZWQiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmJlPT4ibXV0ZWQiaW4gYmUsZ2V0OmJlPT5iZS5tdXRlZCxzZXQ6KGJlLCRlKT0+e2JlLm11dGVkPSRlfX0sbWV0YWRhdGE6Z2V9LF8sayksYmEodGhpcyxudWxsLE4se2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJpc1BsYXlpbmciLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmJlPT4iaXNQbGF5aW5nImluIGJlLGdldDpiZT0+YmUuaXNQbGF5aW5nLHNldDooYmUsJGUpPT57YmUuaXNQbGF5aW5nPSRlfX0sbWV0YWRhdGE6Z2V9LEwsQSksYmEodGhpcyxudWxsLHEse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJjdXJyZW50VGltZSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6YmU9PiJjdXJyZW50VGltZSJpbiBiZSxnZXQ6YmU9PmJlLmN1cnJlbnRUaW1lLHNldDooYmUsJGUpPT57YmUuY3VycmVudFRpbWU9JGV9fSxtZXRhZGF0YTpnZX0sQyx6KSxiYSh0aGlzLG51bGwsRSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImR1cmF0aW9uIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpiZT0+ImR1cmF0aW9uImluIGJlLGdldDpiZT0+YmUuZHVyYXRpb24sc2V0OihiZSwkZSk9PntiZS5kdXJhdGlvbj0kZX19LG1ldGFkYXRhOmdlfSxULCQpLGJhKHRoaXMsbnVsbCxWLHtraW5kOiJhY2Nlc3NvciIsbmFtZToidm9sdW1lIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpiZT0+InZvbHVtZSJpbiBiZSxnZXQ6YmU9PmJlLnZvbHVtZSxzZXQ6KGJlLCRlKT0+e2JlLnZvbHVtZT0kZX19LG1ldGFkYXRhOmdlfSxSLFUpLGJhKHRoaXMsbnVsbCxyZSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImxvYWRpbmciLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmJlPT4ibG9hZGluZyJpbiBiZSxnZXQ6YmU9PmJlLmxvYWRpbmcsc2V0OihiZSwkZSk9PntiZS5sb2FkaW5nPSRlfX0sbWV0YWRhdGE6Z2V9LGosbWUpLGJhKHRoaXMsbnVsbCx3ZSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImVycm9yIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpiZT0+ImVycm9yImluIGJlLGdldDpiZT0+YmUuZXJyb3Isc2V0OihiZSwkZSk9PntiZS5lcnJvcj0kZX19LG1ldGFkYXRhOmdlfSxILGNlKSxiYSh0aGlzLG51bGwsa2Use2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJpc0Z1bGxzY3JlZW4iLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmJlPT4iaXNGdWxsc2NyZWVuImluIGJlLGdldDpiZT0+YmUuaXNGdWxsc2NyZWVuLHNldDooYmUsJGUpPT57YmUuaXNGdWxsc2NyZWVuPSRlfX0sbWV0YWRhdGE6Z2V9LFcsRCksYmEodGhpcyxudWxsLE8se2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJjb250cm9sc1Zpc2libGUiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmJlPT4iY29udHJvbHNWaXNpYmxlImluIGJlLGdldDpiZT0+YmUuY29udHJvbHNWaXNpYmxlLHNldDooYmUsJGUpPT57YmUuY29udHJvbHNWaXNpYmxlPSRlfX0sbWV0YWRhdGE6Z2V9LFosWSksYmEobnVsbCxlPXt2YWx1ZTppfSx0LHtraW5kOiJjbGFzcyIsbmFtZTppLm5hbWUsbWV0YWRhdGE6Z2V9LG51bGwsYSksb2U9aT1lLnZhbHVlLGdlJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoaSxTeW1ib2wubWV0YWRhdGEse2VudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwLHZhbHVlOmdlfSl9c3RhdGljIGRlbW89QmJ0O3N0YXRpYyBkZW1vR3JvdXBzPVsiTWVkaWEiXTsjZT1sMSh0aGlzLG4sIiIpO2dldCBzcmMoKXtyZXR1cm4gdGhpcy4jZX1zZXQgc3JjKGdlKXt0aGlzLiNlPWdlfSN0PShsMSh0aGlzLG8pLGwxKHRoaXMsYywiIikpO2dldCBwb3N0ZXIoKXtyZXR1cm4gdGhpcy4jdH1zZXQgcG9zdGVyKGdlKXt0aGlzLiN0PWdlfSNhPShsMSh0aGlzLGgpLGwxKHRoaXMsZiwhMCkpO2dldCBzaG93Q29udHJvbHMoKXtyZXR1cm4gdGhpcy4jYX1zZXQgc2hvd0NvbnRyb2xzKGdlKXt0aGlzLiNhPWdlfSNpPShsMSh0aGlzLGcpLGwxKHRoaXMsdiwhMSkpO2dldCBhdXRvcGxheSgpe3JldHVybiB0aGlzLiNpfXNldCBhdXRvcGxheShnZSl7dGhpcy4jaT1nZX0jcj0obDEodGhpcyxtKSxsMSh0aGlzLE0sITEpKTtnZXQgbG9vcCgpe3JldHVybiB0aGlzLiNyfXNldCBsb29wKGdlKXt0aGlzLiNyPWdlfSNzPShsMSh0aGlzLFMpLGwxKHRoaXMsXywhMSkpO2dldCBtdXRlZCgpe3JldHVybiB0aGlzLiNzfXNldCBtdXRlZChnZSl7dGhpcy4jcz1nZX0jbj0obDEodGhpcyxrKSxsMSh0aGlzLEwsITEpKTtnZXQgaXNQbGF5aW5nKCl7cmV0dXJuIHRoaXMuI259c2V0IGlzUGxheWluZyhnZSl7dGhpcy4jbj1nZX0jbz0obDEodGhpcyxBKSxsMSh0aGlzLEMsMCkpO2dldCBjdXJyZW50VGltZSgpe3JldHVybiB0aGlzLiNvfXNldCBjdXJyZW50VGltZShnZSl7dGhpcy4jbz1nZX0jbD0obDEodGhpcyx6KSxsMSh0aGlzLFQsMCkpO2dldCBkdXJhdGlvbigpe3JldHVybiB0aGlzLiNsfXNldCBkdXJhdGlvbihnZSl7dGhpcy4jbD1nZX0jYz0obDEodGhpcywkKSxsMSh0aGlzLFIsMSkpO2dldCB2b2x1bWUoKXtyZXR1cm4gdGhpcy4jY31zZXQgdm9sdW1lKGdlKXt0aGlzLiNjPWdlfSNkPShsMSh0aGlzLFUpLGwxKHRoaXMsaiwhMCkpO2dldCBsb2FkaW5nKCl7cmV0dXJuIHRoaXMuI2R9c2V0IGxvYWRpbmcoZ2Upe3RoaXMuI2Q9Z2V9I2g9KGwxKHRoaXMsbWUpLGwxKHRoaXMsSCwiIikpO2dldCBlcnJvcigpe3JldHVybiB0aGlzLiNofXNldCBlcnJvcihnZSl7dGhpcy4jaD1nZX0jcD0obDEodGhpcyxjZSksbDEodGhpcyxXLCExKSk7Z2V0IGlzRnVsbHNjcmVlbigpe3JldHVybiB0aGlzLiNwfXNldCBpc0Z1bGxzY3JlZW4oZ2Upe3RoaXMuI3A9Z2V9I3U9KGwxKHRoaXMsRCksbDEodGhpcyxaLCEwKSk7Z2V0IGNvbnRyb2xzVmlzaWJsZSgpe3JldHVybiB0aGlzLiN1fXNldCBjb250cm9sc1Zpc2libGUoZ2Upe3RoaXMuI3U9Z2V9aGlkZUNvbnRyb2xzVGltZXI9KGwxKHRoaXMsWSksbnVsbCk7dmlkZW9FbGVtZW50PW51bGw7cmVuZGVyKCl7cmV0dXJuIHdgCiAgICAgIDxzdHlsZT4KICAgICAgICA6aG9zdCB7CiAgICAgICAgICBkaXNwbGF5OiBibG9jazsKICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgICAgIGZvbnQtZmFtaWx5OiAtYXBwbGUtc3lzdGVtLCBCbGlua01hY1N5c3RlbUZvbnQsICdTZWdvZSBVSScsIFJvYm90bywgc2Fucy1zZXJpZjsKICAgICAgICB9CgogICAgICAgIC52aWRlby1jb250YWluZXIgewogICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgICAgICBhc3BlY3QtcmF0aW86IDE2IC8gOTsKICAgICAgICAgIGJhY2tncm91bmQ6ICMwMDAwMDA7CiAgICAgICAgICBib3JkZXItcmFkaXVzOiA4cHg7CiAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgICAgIH0KCiAgICAgICAgdmlkZW8gewogICAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgICAgICBoZWlnaHQ6IDEwMCU7CiAgICAgICAgICBvYmplY3QtZml0OiBjb250YWluOwogICAgICAgICAgZGlzcGxheTogYmxvY2s7CiAgICAgICAgfQoKICAgICAgICAub3ZlcmxheSB7CiAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgICAgICBpbnNldDogMDsKICAgICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICAgICAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDsKICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjsKICAgICAgICB9CgogICAgICAgIC5jZW50ZXItcGxheSB7CiAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgICAgICB0b3A6IDUwJTsKICAgICAgICAgIGxlZnQ6IDUwJTsKICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUsIC01MCUpOwogICAgICAgICAgd2lkdGg6IDY0cHg7CiAgICAgICAgICBoZWlnaHQ6IDY0cHg7CiAgICAgICAgICBib3JkZXItcmFkaXVzOiA1MCU7CiAgICAgICAgICBiYWNrZ3JvdW5kOiByZ2JhKDAsIDAsIDAsIDAuNik7CiAgICAgICAgICBjb2xvcjogI2ZmZmZmZjsKICAgICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7CiAgICAgICAgICB0cmFuc2l0aW9uOiBvcGFjaXR5IDAuMnMgZWFzZSwgdHJhbnNmb3JtIDAuMnMgZWFzZTsKICAgICAgICAgIG9wYWNpdHk6ICR7dGhpcy5pc1BsYXlpbmc/MDoxfTsKICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiAke3RoaXMuaXNQbGF5aW5nPyJub25lIjoiYXV0byJ9OwogICAgICAgIH0KCiAgICAgICAgLmNlbnRlci1wbGF5IGRlZXMtaWNvbiB7CiAgICAgICAgICBmb250LXNpemU6IDI4cHg7CiAgICAgICAgfQoKICAgICAgICAuY2VudGVyLXBsYXk6aG92ZXIgewogICAgICAgICAgYmFja2dyb3VuZDogcmdiYSgwLCAwLCAwLCAwLjgpOwogICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSwgLTUwJSkgc2NhbGUoMS4xKTsKICAgICAgICB9CgogICAgICAgIC5jb250cm9scy1iYXIgewogICAgICAgICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KHRyYW5zcGFyZW50LCByZ2JhKDAsIDAsIDAsIDAuNykpOwogICAgICAgICAgcGFkZGluZzogMjRweCAxMnB4IDEycHg7CiAgICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgICAgIGdhcDogOHB4OwogICAgICAgICAgb3BhY2l0eTogJHt0aGlzLmNvbnRyb2xzVmlzaWJsZXx8IXRoaXMuaXNQbGF5aW5nPzE6MH07CiAgICAgICAgICB0cmFuc2l0aW9uOiBvcGFjaXR5IDAuM3MgZWFzZTsKICAgICAgICB9CgogICAgICAgIC5zZWVrYmFyLXJvdyB7CiAgICAgICAgICB3aWR0aDogMTAwJTsKICAgICAgICAgIGhlaWdodDogNHB4OwogICAgICAgICAgYmFja2dyb3VuZDogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjMpOwogICAgICAgICAgYm9yZGVyLXJhZGl1czogMnB4OwogICAgICAgICAgY3Vyc29yOiBwb2ludGVyOwogICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICAgIH0KCiAgICAgICAgLnNlZWtiYXItcm93OmhvdmVyIHsKICAgICAgICAgIGhlaWdodDogNnB4OwogICAgICAgIH0KCiAgICAgICAgLnNlZWtiYXItcHJvZ3Jlc3MgewogICAgICAgICAgaGVpZ2h0OiAxMDAlOwogICAgICAgICAgYmFja2dyb3VuZDogJHtwLmJkVGhlbWUoIiMzYjgyZjYiLCIjNjBhNWZhIil9OwogICAgICAgICAgYm9yZGVyLXJhZGl1czogMnB4OwogICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7CiAgICAgICAgfQoKICAgICAgICAuY29udHJvbHMtcm93IHsKICAgICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgICAgZ2FwOiA4cHg7CiAgICAgICAgfQoKICAgICAgICAuY3RybC1idXR0b24gewogICAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKICAgICAgICAgIHdpZHRoOiAzMnB4OwogICAgICAgICAgaGVpZ2h0OiAzMnB4OwogICAgICAgICAgYm9yZGVyOiBub25lOwogICAgICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7CiAgICAgICAgICBjb2xvcjogI2ZmZmZmZjsKICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDZweDsKICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjsKICAgICAgICAgIHRyYW5zaXRpb246IGJhY2tncm91bmQgMC4xNXMgZWFzZTsKICAgICAgICAgIGZsZXgtc2hyaW5rOiAwOwogICAgICAgIH0KCiAgICAgICAgLmN0cmwtYnV0dG9uIGRlZXMtaWNvbiB7CiAgICAgICAgICBmb250LXNpemU6IDE2cHg7CiAgICAgICAgfQoKICAgICAgICAuY3RybC1idXR0b246aG92ZXIgewogICAgICAgICAgYmFja2dyb3VuZDogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjE1KTsKICAgICAgICB9CgogICAgICAgIC50aW1lLWRpc3BsYXkgewogICAgICAgICAgZm9udC1zaXplOiAxMnB4OwogICAgICAgICAgZm9udC12YXJpYW50LW51bWVyaWM6IHRhYnVsYXItbnVtczsKICAgICAgICAgIGNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuOCk7CiAgICAgICAgICB1c2VyLXNlbGVjdDogbm9uZTsKICAgICAgICAgIGZsZXgtc2hyaW5rOiAwOwogICAgICAgIH0KCiAgICAgICAgLnNwYWNlciB7CiAgICAgICAgICBmbGV4OiAxOwogICAgICAgIH0KCiAgICAgICAgLnZvbHVtZS1ncm91cCB7CiAgICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICAgIGdhcDogNHB4OwogICAgICAgIH0KCiAgICAgICAgLnZvbHVtZS1zbGlkZXIgewogICAgICAgICAgd2lkdGg6IDYwcHg7CiAgICAgICAgICBoZWlnaHQ6IDRweDsKICAgICAgICAgIC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTsKICAgICAgICAgIGFwcGVhcmFuY2U6IG5vbmU7CiAgICAgICAgICBiYWNrZ3JvdW5kOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMyk7CiAgICAgICAgICBib3JkZXItcmFkaXVzOiAycHg7CiAgICAgICAgICBvdXRsaW5lOiBub25lOwogICAgICAgICAgY3Vyc29yOiBwb2ludGVyOwogICAgICAgIH0KCiAgICAgICAgLnZvbHVtZS1zbGlkZXI6Oi13ZWJraXQtc2xpZGVyLXRodW1iIHsKICAgICAgICAgIC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTsKICAgICAgICAgIHdpZHRoOiAxMnB4OwogICAgICAgICAgaGVpZ2h0OiAxMnB4OwogICAgICAgICAgYm9yZGVyLXJhZGl1czogNTAlOwogICAgICAgICAgYmFja2dyb3VuZDogI2ZmZmZmZjsKICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjsKICAgICAgICB9CgogICAgICAgIC52b2x1bWUtc2xpZGVyOjotbW96LXJhbmdlLXRodW1iIHsKICAgICAgICAgIHdpZHRoOiAxMnB4OwogICAgICAgICAgaGVpZ2h0OiAxMnB4OwogICAgICAgICAgYm9yZGVyLXJhZGl1czogNTAlOwogICAgICAgICAgYmFja2dyb3VuZDogI2ZmZmZmZjsKICAgICAgICAgIGJvcmRlcjogbm9uZTsKICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjsKICAgICAgICB9CgogICAgICAgIC5sb2FkaW5nLW92ZXJsYXkgewogICAgICAgICAgcG9zaXRpb246IGFic29sdXRlOwogICAgICAgICAgaW5zZXQ6IDA7CiAgICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOwogICAgICAgICAgYmFja2dyb3VuZDogcmdiYSgwLCAwLCAwLCAwLjMpOwogICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7CiAgICAgICAgfQoKICAgICAgICAubG9hZGluZy1zcGlubmVyIHsKICAgICAgICAgIHdpZHRoOiA0MHB4OwogICAgICAgICAgaGVpZ2h0OiA0MHB4OwogICAgICAgICAgYm9yZGVyOiAzcHggc29saWQgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjMpOwogICAgICAgICAgYm9yZGVyLXRvcC1jb2xvcjogI2ZmZmZmZjsKICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDUwJTsKICAgICAgICAgIGFuaW1hdGlvbjogc3BpbiAwLjhzIGxpbmVhciBpbmZpbml0ZTsKICAgICAgICB9CgogICAgICAgIEBrZXlmcmFtZXMgc3BpbiB7CiAgICAgICAgICB0byB7IHRyYW5zZm9ybTogcm90YXRlKDM2MGRlZyk7IH0KICAgICAgICB9CgogICAgICAgIC5lcnJvci1vdmVybGF5IHsKICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgICAgIGluc2V0OiAwOwogICAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7CiAgICAgICAgICBnYXA6IDhweDsKICAgICAgICAgIGNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNyk7CiAgICAgICAgICBiYWNrZ3JvdW5kOiByZ2JhKDAsIDAsIDAsIDAuNik7CiAgICAgICAgfQoKICAgICAgICAuZXJyb3Itb3ZlcmxheSBkZWVzLWljb24gewogICAgICAgICAgY29sb3I6ICNmODcxNzE7CiAgICAgICAgICBmb250LXNpemU6IDMycHg7CiAgICAgICAgfQoKICAgICAgICAuZXJyb3ItdGV4dCB7CiAgICAgICAgICBmb250LXNpemU6IDEzcHg7CiAgICAgICAgfQogICAgICA8L3N0eWxlPgoKICAgICAgPGRpdgogICAgICAgIGNsYXNzPSJ2aWRlby1jb250YWluZXIiCiAgICAgICAgQG1vdXNlbW92ZT0ke3RoaXMuaGFuZGxlTW91c2VNb3ZlfQogICAgICAgIEBtb3VzZWxlYXZlPSR7dGhpcy5oYW5kbGVNb3VzZUxlYXZlfQogICAgICA+CiAgICAgICAgPHZpZGVvCiAgICAgICAgICAuc3JjPSR7dGhpcy5zcmN9CiAgICAgICAgICAucG9zdGVyPSR7dGhpcy5wb3N0ZXJ9CiAgICAgICAgICAubXV0ZWQ9JHt0aGlzLm11dGVkfQogICAgICAgICAgLmxvb3A9JHt0aGlzLmxvb3B9CiAgICAgICAgICA/YXV0b3BsYXk9JHt0aGlzLmF1dG9wbGF5fQogICAgICAgICAgP2NvbnRyb2xzPSR7IXRoaXMuc2hvd0NvbnRyb2xzfQogICAgICAgICAgcGxheXNpbmxpbmUKICAgICAgICAgIEBsb2FkZWRtZXRhZGF0YT0ke3RoaXMuaGFuZGxlTG9hZGVkTWV0YWRhdGF9CiAgICAgICAgICBAcGxheT0ke3RoaXMuaGFuZGxlUGxheX0KICAgICAgICAgIEBwYXVzZT0ke3RoaXMuaGFuZGxlUGF1c2V9CiAgICAgICAgICBAZW5kZWQ9JHt0aGlzLmhhbmRsZUVuZGVkfQogICAgICAgICAgQHRpbWV1cGRhdGU9JHt0aGlzLmhhbmRsZVRpbWVVcGRhdGV9CiAgICAgICAgICBAZXJyb3I9JHt0aGlzLmhhbmRsZUVycm9yfQogICAgICAgICAgQHdhaXRpbmc9JHsoKT0+e3RoaXMubG9hZGluZz0hMH19CiAgICAgICAgICBAY2FucGxheT0keygpPT57dGhpcy5sb2FkaW5nPSExfX0KICAgICAgICA+PC92aWRlbz4KCiAgICAgICAgJHt0aGlzLnNob3dDb250cm9scz93YAogICAgICAgICAgPGRpdiBjbGFzcz0ib3ZlcmxheSIgQGNsaWNrPSR7dGhpcy5oYW5kbGVPdmVybGF5Q2xpY2t9PgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJjZW50ZXItcGxheSI+CiAgICAgICAgICAgICAgPGRlZXMtaWNvbiBpY29uPSJsdWNpZGU6UGxheSI+PC9kZWVzLWljb24+CiAgICAgICAgICAgIDwvZGl2PgoKICAgICAgICAgICAgPGRpdiBjbGFzcz0iY29udHJvbHMtYmFyIiBAY2xpY2s9JHtnZT0+Z2Uuc3RvcFByb3BhZ2F0aW9uKCl9PgogICAgICAgICAgICAgIDxkaXYgY2xhc3M9InNlZWtiYXItcm93IiBAY2xpY2s9JHt0aGlzLmhhbmRsZVNlZWt9PgogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0ic2Vla2Jhci1wcm9ncmVzcyIgc3R5bGU9IndpZHRoOiAke3RoaXMuZHVyYXRpb24/dGhpcy5jdXJyZW50VGltZS90aGlzLmR1cmF0aW9uKjEwMDowfSUiPjwvZGl2PgogICAgICAgICAgICAgIDwvZGl2PgoKICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJjb250cm9scy1yb3ciPgogICAgICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz0iY3RybC1idXR0b24iIEBjbGljaz0ke3RoaXMudG9nZ2xlUGxheX0+CiAgICAgICAgICAgICAgICAgIDxkZWVzLWljb24gaWNvbj0ibHVjaWRlOiR7dGhpcy5pc1BsYXlpbmc/IlBhdXNlIjoiUGxheSJ9Ij48L2RlZXMtaWNvbj4KICAgICAgICAgICAgICAgIDwvYnV0dG9uPgoKICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJ0aW1lLWRpc3BsYXkiPgogICAgICAgICAgICAgICAgICAke3RoaXMuZm9ybWF0VGltZSh0aGlzLmN1cnJlbnRUaW1lKX0gLyAke3RoaXMuZm9ybWF0VGltZSh0aGlzLmR1cmF0aW9uKX0KICAgICAgICAgICAgICAgIDwvc3Bhbj4KCiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0ic3BhY2VyIj48L3NwYW4+CgogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0idm9sdW1lLWdyb3VwIj4KICAgICAgICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz0iY3RybC1idXR0b24iIEBjbGljaz0ke3RoaXMudG9nZ2xlTXV0ZX0+CiAgICAgICAgICAgICAgICAgICAgPGRlZXMtaWNvbiBpY29uPSJsdWNpZGU6JHt0aGlzLm11dGVkfHx0aGlzLnZvbHVtZT09PTA/IlZvbHVtZVgiOnRoaXMudm9sdW1lPC41PyJWb2x1bWUxIjoiVm9sdW1lMiJ9Ij48L2RlZXMtaWNvbj4KICAgICAgICAgICAgICAgICAgPC9idXR0b24+CiAgICAgICAgICAgICAgICAgIDxpbnB1dAogICAgICAgICAgICAgICAgICAgIGNsYXNzPSJ2b2x1bWUtc2xpZGVyIgogICAgICAgICAgICAgICAgICAgIHR5cGU9InJhbmdlIgogICAgICAgICAgICAgICAgICAgIG1pbj0iMCIKICAgICAgICAgICAgICAgICAgICBtYXg9IjEiCiAgICAgICAgICAgICAgICAgICAgc3RlcD0iMC4wMSIKICAgICAgICAgICAgICAgICAgICAudmFsdWU9JHtTdHJpbmcodGhpcy5tdXRlZD8wOnRoaXMudm9sdW1lKX0KICAgICAgICAgICAgICAgICAgICBAaW5wdXQ9JHt0aGlzLmhhbmRsZVZvbHVtZUNoYW5nZX0KICAgICAgICAgICAgICAgICAgLz4KICAgICAgICAgICAgICAgIDwvZGl2PgoKICAgICAgICAgICAgICAgIDxidXR0b24gY2xhc3M9ImN0cmwtYnV0dG9uIiBAY2xpY2s9JHt0aGlzLnRvZ2dsZUZ1bGxzY3JlZW59IHRpdGxlPSJGdWxsc2NyZWVuIj4KICAgICAgICAgICAgICAgICAgPGRlZXMtaWNvbiBpY29uPSJsdWNpZGU6JHt0aGlzLmlzRnVsbHNjcmVlbj8iTWluaW1pemUiOiJNYXhpbWl6ZSJ9Ij48L2RlZXMtaWNvbj4KICAgICAgICAgICAgICAgIDwvYnV0dG9uPgogICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIDwvZGl2PgogICAgICAgIGA6IiJ9CgogICAgICAgICR7dGhpcy5sb2FkaW5nJiYhdGhpcy5lcnJvcj93YAogICAgICAgICAgPGRpdiBjbGFzcz0ibG9hZGluZy1vdmVybGF5Ij4KICAgICAgICAgICAgPGRpdiBjbGFzcz0ibG9hZGluZy1zcGlubmVyIj48L2Rpdj4KICAgICAgICAgIDwvZGl2PgogICAgICAgIGA6IiJ9CgogICAgICAgICR7dGhpcy5lcnJvcj93YAogICAgICAgICAgPGRpdiBjbGFzcz0iZXJyb3Itb3ZlcmxheSI+CiAgICAgICAgICAgIDxkZWVzLWljb24gaWNvbj0ibHVjaWRlOlZpZGVvT2ZmIj48L2RlZXMtaWNvbj4KICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVycm9yLXRleHQiPiR7dGhpcy5lcnJvcn08L3NwYW4+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICBgOiIifQogICAgICA8L2Rpdj4KICAgIGB9YXN5bmMgZmlyc3RVcGRhdGVkKCl7dGhpcy52aWRlb0VsZW1lbnQ9dGhpcy5zaGFkb3dSb290Py5xdWVyeVNlbGVjdG9yKCJ2aWRlbyIpfHxudWxsLGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoImZ1bGxzY3JlZW5jaGFuZ2UiLHRoaXMuaGFuZGxlRnVsbHNjcmVlbkNoYW5nZSl9YXN5bmMgZGlzY29ubmVjdGVkQ2FsbGJhY2soKXthd2FpdCBzdXBlci5kaXNjb25uZWN0ZWRDYWxsYmFjaygpLGRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoImZ1bGxzY3JlZW5jaGFuZ2UiLHRoaXMuaGFuZGxlRnVsbHNjcmVlbkNoYW5nZSksdGhpcy5oaWRlQ29udHJvbHNUaW1lciYmY2xlYXJUaW1lb3V0KHRoaXMuaGlkZUNvbnRyb2xzVGltZXIpfXBsYXkoKXt0aGlzLnZpZGVvRWxlbWVudD8ucGxheSgpfXBhdXNlKCl7dGhpcy52aWRlb0VsZW1lbnQ/LnBhdXNlKCl9dG9nZ2xlUGxheSgpe3RoaXMuaXNQbGF5aW5nP3RoaXMucGF1c2UoKTp0aGlzLnBsYXkoKX1zZWVrKGdlKXt0aGlzLnZpZGVvRWxlbWVudCYmKHRoaXMudmlkZW9FbGVtZW50LmN1cnJlbnRUaW1lPWdlKX1zZXRWb2x1bWUoZ2Upe3RoaXMudm9sdW1lPU1hdGgubWF4KDAsTWF0aC5taW4oMSxnZSkpLHRoaXMudmlkZW9FbGVtZW50JiYodGhpcy52aWRlb0VsZW1lbnQudm9sdW1lPXRoaXMudm9sdW1lKX10b2dnbGVGdWxsc2NyZWVuKCl7bGV0IGdlPXRoaXMuc2hhZG93Um9vdD8ucXVlcnlTZWxlY3RvcigiLnZpZGVvLWNvbnRhaW5lciIpO2dlJiYodGhpcy5pc0Z1bGxzY3JlZW4/ZG9jdW1lbnQuZXhpdEZ1bGxzY3JlZW4/LigpOmdlLnJlcXVlc3RGdWxsc2NyZWVuPy4oKSl9aGFuZGxlTG9hZGVkTWV0YWRhdGEoKXt0aGlzLnZpZGVvRWxlbWVudCYmKHRoaXMuZHVyYXRpb249dGhpcy52aWRlb0VsZW1lbnQuZHVyYXRpb24sdGhpcy5sb2FkaW5nPSExKX1oYW5kbGVQbGF5KCl7dGhpcy5pc1BsYXlpbmc9ITAsdGhpcy5zY2hlZHVsZUhpZGVDb250cm9scygpfWhhbmRsZVBhdXNlKCl7dGhpcy5pc1BsYXlpbmc9ITEsdGhpcy5jb250cm9sc1Zpc2libGU9ITB9aGFuZGxlRW5kZWQoKXt0aGlzLmlzUGxheWluZz0hMSx0aGlzLmNvbnRyb2xzVmlzaWJsZT0hMH1oYW5kbGVUaW1lVXBkYXRlKCl7dGhpcy52aWRlb0VsZW1lbnQmJih0aGlzLmN1cnJlbnRUaW1lPXRoaXMudmlkZW9FbGVtZW50LmN1cnJlbnRUaW1lKX1oYW5kbGVFcnJvcigpe3RoaXMuZXJyb3I9IkZhaWxlZCB0byBsb2FkIHZpZGVvIix0aGlzLmxvYWRpbmc9ITF9aGFuZGxlT3ZlcmxheUNsaWNrKCl7dGhpcy50b2dnbGVQbGF5KCl9aGFuZGxlU2VlayhnZSl7bGV0IGJlPWdlLmN1cnJlbnRUYXJnZXQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCksJGU9KGdlLmNsaWVudFgtYmUubGVmdCkvYmUud2lkdGg7dGhpcy5zZWVrKCRlKnRoaXMuZHVyYXRpb24pfWhhbmRsZVZvbHVtZUNoYW5nZShnZSl7bGV0IGJlPXBhcnNlRmxvYXQoZ2UudGFyZ2V0LnZhbHVlKTt0aGlzLnNldFZvbHVtZShiZSksdGhpcy5tdXRlZD1iZT09PTB9dG9nZ2xlTXV0ZSgpe3RoaXMubXV0ZWQ9IXRoaXMubXV0ZWQsdGhpcy52aWRlb0VsZW1lbnQmJih0aGlzLnZpZGVvRWxlbWVudC5tdXRlZD10aGlzLm11dGVkKX1oYW5kbGVNb3VzZU1vdmUoKXt0aGlzLmNvbnRyb2xzVmlzaWJsZT0hMCx0aGlzLnNjaGVkdWxlSGlkZUNvbnRyb2xzKCl9aGFuZGxlTW91c2VMZWF2ZSgpe3RoaXMuaXNQbGF5aW5nJiYodGhpcy5jb250cm9sc1Zpc2libGU9ITEpfXNjaGVkdWxlSGlkZUNvbnRyb2xzKCl7dGhpcy5oaWRlQ29udHJvbHNUaW1lciYmY2xlYXJUaW1lb3V0KHRoaXMuaGlkZUNvbnRyb2xzVGltZXIpLHRoaXMuaXNQbGF5aW5nJiYodGhpcy5oaWRlQ29udHJvbHNUaW1lcj1zZXRUaW1lb3V0KCgpPT57dGhpcy5jb250cm9sc1Zpc2libGU9ITF9LDNlMykpfWhhbmRsZUZ1bGxzY3JlZW5DaGFuZ2U9KCk9Pnt0aGlzLmlzRnVsbHNjcmVlbj0hIWRvY3VtZW50LmZ1bGxzY3JlZW5FbGVtZW50fTtmb3JtYXRUaW1lKGdlKXtpZighaXNGaW5pdGUoZ2UpfHxnZTwwKXJldHVybiIwOjAwIjtsZXQgYmU9TWF0aC5mbG9vcihnZS82MCksJGU9TWF0aC5mbG9vcihnZSU2MCk7cmV0dXJuYCR7YmV9OiR7JGUudG9TdHJpbmcoKS5wYWRTdGFydCgyLCIwIil9YH1zdGF0aWN7bDEoaSxhKX19O3JldHVybiBvZT1pfSkoKX0pO3ZhciBWYnQ9YigoKT0+e0hWKCl9KTt2YXIgV3Isbnc9YigoKT0+e3VlKCk7V3I9Y2xhc3N7c3RhdGljIHBkZmpzTGliO3N0YXRpYyBpbml0aWFsaXplZD0hMTtzdGF0aWMgYXN5bmMgaW5pdGlhbGl6ZSgpe3RoaXMuaW5pdGlhbGl6ZWR8fCh0aGlzLnBkZmpzTGliPWF3YWl0IGltcG9ydCgiaHR0cHM6Ly9jZG4uanNkZWxpdnIubmV0L25wbS9wZGZqcy1kaXN0QDQuMC4zNzkvK2VzbSIpLHRoaXMucGRmanNMaWIuR2xvYmFsV29ya2VyT3B0aW9ucy53b3JrZXJTcmM9Imh0dHBzOi8vY2RuLmpzZGVsaXZyLm5ldC9ucG0vcGRmanMtZGlzdEA0LjAuMzc5L2J1aWxkL3BkZi53b3JrZXIubWpzIix0aGlzLmluaXRpYWxpemVkPSEwKX1zdGF0aWMgYXN5bmMgbG9hZERvY3VtZW50KGUpe3JldHVybiBhd2FpdCB0aGlzLmluaXRpYWxpemUoKSxhd2FpdCB0aGlzLnBkZmpzTGliLmdldERvY3VtZW50KGUpLnByb21pc2V9c3RhdGljIHJlbGVhc2VEb2N1bWVudChlKXt9fX0pO3ZhciBqYnQsVWJ0PWIoKCk9Pnt1ZSgpO2pidD1bcC5kZWZhdWx0U3R5bGVzLFFgCiAgICA6aG9zdCB7CiAgICAgIGRpc3BsYXk6IGJsb2NrOwogICAgICB3aWR0aDogMTAwJTsKICAgICAgaGVpZ2h0OiA2MDBweDsKICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICBmb250LWZhbWlseTogJ0dlaXN0IFNhbnMnLCBzYW5zLXNlcmlmOwogICAgICBjb250YWluOiBsYXlvdXQgc3R5bGU7CiAgICB9CgogICAgLnBkZi12aWV3ZXIgewogICAgICB3aWR0aDogMTAwJTsKICAgICAgaGVpZ2h0OiAxMDAlOwogICAgICBkaXNwbGF5OiBmbGV4OwogICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICBiYWNrZ3JvdW5kOiAke3AuYmRUaGVtZSgiaHNsKDAgMCUgOTclKSIsImhzbCgyMTUgMjAlIDEwJSkiKX07CiAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgIH0KCiAgICAudG9vbGJhciB7CiAgICAgIGhlaWdodDogNDhweDsKICAgICAgYmFja2dyb3VuZDogJHtwLmJkVGhlbWUoImhzbCgwIDAlIDEwMCUpIiwiaHNsKDIxNSAyMCUgMTUlKSIpfTsKICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICR7cC5iZFRoZW1lKCJoc2woMjE0IDMxJSA5MSUpIiwiaHNsKDIxNyAyNSUgMjIlKSIpfTsKICAgICAgZGlzcGxheTogZmxleDsKICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgcGFkZGluZzogMCAxNnB4OwogICAgICBnYXA6IDE2cHg7CiAgICAgIGZsZXgtc2hyaW5rOiAwOwogICAgfQoKICAgIC50b29sYmFyLWdyb3VwIHsKICAgICAgZGlzcGxheTogZmxleDsKICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgZ2FwOiA0cHg7CiAgICB9CgogICAgLnRvb2xiYXItZ3JvdXAtLWVuZCB7CiAgICAgIG1hcmdpbi1sZWZ0OiBhdXRvOwogICAgfQoKICAgIC50b29sYmFyLWJ1dHRvbiB7CiAgICAgIHdpZHRoOiAzMnB4OwogICAgICBoZWlnaHQ6IDMycHg7CiAgICAgIGJvcmRlci1yYWRpdXM6IDZweDsKICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7CiAgICAgIGJvcmRlcjogbm9uZTsKICAgICAgY3Vyc29yOiBwb2ludGVyOwogICAgICBkaXNwbGF5OiBmbGV4OwogICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKICAgICAgdHJhbnNpdGlvbjogYmFja2dyb3VuZCAwLjE1cyBlYXNlOwogICAgICBjb2xvcjogJHtwLmJkVGhlbWUoImhzbCgyMTUgMTYlIDQ1JSkiLCJoc2woMjE1IDE2JSA3NSUpIil9OwogICAgfQoKICAgIC50b29sYmFyLWJ1dHRvbjpob3Zlcjpub3QoOmRpc2FibGVkKSB7CiAgICAgIGJhY2tncm91bmQ6ICR7cC5iZFRoZW1lKCJoc2woMjE0IDMxJSA5MiUpIiwiaHNsKDIxNyAyNSUgMjIlKSIpfTsKICAgIH0KCiAgICAudG9vbGJhci1idXR0b246ZGlzYWJsZWQgewogICAgICBvcGFjaXR5OiAwLjQ7CiAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7CiAgICB9CgogICAgLnRvb2xiYXItYnV0dG9uIGRlZXMtaWNvbiB7CiAgICAgIGZvbnQtc2l6ZTogMTZweDsKICAgIH0KCiAgICAucGFnZS1pbmZvIHsKICAgICAgZGlzcGxheTogZmxleDsKICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgZ2FwOiA4cHg7CiAgICAgIHBhZGRpbmc6IDAgOHB4OwogICAgICBmb250LXNpemU6IDE0cHg7CiAgICAgIGNvbG9yOiAke3AuYmRUaGVtZSgiaHNsKDIxNSAxNiUgNDUlKSIsImhzbCgyMTUgMTYlIDc1JSkiKX07CiAgICB9CgogICAgLnBhZ2UtaW5wdXQgewogICAgICB3aWR0aDogNDhweDsKICAgICAgaGVpZ2h0OiAyOHB4OwogICAgICBib3JkZXItcmFkaXVzOiA0cHg7CiAgICAgIGJvcmRlcjogMXB4IHNvbGlkICR7cC5iZFRoZW1lKCJoc2woMjE0IDMxJSA4NiUpIiwiaHNsKDIxNyAyNSUgMjglKSIpfTsKICAgICAgYmFja2dyb3VuZDogJHtwLmJkVGhlbWUoImhzbCgwIDAlIDEwMCUpIiwiaHNsKDIxNSAyMCUgMTIlKSIpfTsKICAgICAgY29sb3I6ICR7cC5iZFRoZW1lKCJoc2woMjIyIDQ3JSAxMSUpIiwiaHNsKDIxMCAyMCUgOTYlKSIpfTsKICAgICAgdGV4dC1hbGlnbjogY2VudGVyOwogICAgICBmb250LXNpemU6IDE0cHg7CiAgICAgIGZvbnQtZmFtaWx5OiBpbmhlcml0OwogICAgICBvdXRsaW5lOiBub25lOwogICAgfQoKICAgIC5wYWdlLWlucHV0OmZvY3VzIHsKICAgICAgYm9yZGVyLWNvbG9yOiAke3AuYmRUaGVtZSgiaHNsKDIxNyA5MSUgNjAlKSIsImhzbCgyMTMgOTMlIDY4JSkiKX07CiAgICB9CgogICAgLnBhZ2Utc2VwYXJhdG9yIHsKICAgICAgY29sb3I6ICR7cC5iZFRoZW1lKCJoc2woMjE1IDE2JSA2MCUpIiwiaHNsKDIxNSAxNiUgNTAlKSIpfTsKICAgIH0KCiAgICAuem9vbS1sZXZlbCB7CiAgICAgIGZvbnQtc2l6ZTogMTNweDsKICAgICAgZm9udC13ZWlnaHQ6IDUwMDsKICAgICAgbWluLXdpZHRoOiA0OHB4OwogICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7CiAgICB9CgogICAgLnZpZXdlci1jb250YWluZXIgewogICAgICBmbGV4OiAxOwogICAgICBkaXNwbGF5OiBmbGV4OwogICAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgIG1pbi1oZWlnaHQ6IDA7CiAgICB9CgogICAgLnNpZGViYXIgewogICAgICB3aWR0aDogMjAwcHg7CiAgICAgIGJhY2tncm91bmQ6ICR7cC5iZFRoZW1lKCJoc2woMCAwJSAxMDAlKSIsImhzbCgyMTUgMjAlIDE1JSkiKX07CiAgICAgIGJvcmRlci1yaWdodDogMXB4IHNvbGlkICR7cC5iZFRoZW1lKCJoc2woMjE0IDMxJSA5MSUpIiwiaHNsKDIxNyAyNSUgMjIlKSIpfTsKICAgICAgZGlzcGxheTogZmxleDsKICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgaGVpZ2h0OiAxMDAlOwogICAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgfQoKICAgIC5zaWRlYmFyLWhlYWRlciB7CiAgICAgIGhlaWdodDogNDBweDsKICAgICAgcGFkZGluZzogMCAxMnB4OwogICAgICBkaXNwbGF5OiBmbGV4OwogICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47CiAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAke3AuYmRUaGVtZSgiaHNsKDIxNCAzMSUgOTElKSIsImhzbCgyMTcgMjUlIDIyJSkiKX07CiAgICAgIGZvbnQtc2l6ZTogMTNweDsKICAgICAgZm9udC13ZWlnaHQ6IDYwMDsKICAgICAgY29sb3I6ICR7cC5iZFRoZW1lKCJoc2woMjE1IDE2JSA0NSUpIiwiaHNsKDIxNSAxNiUgNzUlKSIpfTsKICAgIH0KCiAgICAuc2lkZWJhci1jbG9zZSB7CiAgICAgIHdpZHRoOiAyNHB4OwogICAgICBoZWlnaHQ6IDI0cHg7CiAgICAgIGJvcmRlci1yYWRpdXM6IDRweDsKICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7CiAgICAgIGJvcmRlcjogbm9uZTsKICAgICAgY3Vyc29yOiBwb2ludGVyOwogICAgICBkaXNwbGF5OiBmbGV4OwogICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKICAgICAgY29sb3I6ICR7cC5iZFRoZW1lKCJoc2woMjE1IDE2JSA0NSUpIiwiaHNsKDIxNSAxNiUgNzUlKSIpfTsKICAgICAgdHJhbnNpdGlvbjogYmFja2dyb3VuZCAwLjE1cyBlYXNlOwogICAgfQoKICAgIC5zaWRlYmFyLWNsb3NlOmhvdmVyIHsKICAgICAgYmFja2dyb3VuZDogJHtwLmJkVGhlbWUoImhzbCgyMTQgMzElIDkyJSkiLCJoc2woMjE3IDI1JSAyMiUpIil9OwogICAgfQoKICAgIC5zaWRlYmFyLWNsb3NlIGRlZXMtaWNvbiB7CiAgICAgIGZvbnQtc2l6ZTogMTRweDsKICAgIH0KCiAgICAuc2lkZWJhci1jb250ZW50IHsKICAgICAgZmxleDogMTsKICAgICAgb3ZlcmZsb3cteTogYXV0bzsKICAgICAgb3ZlcmZsb3cteDogaGlkZGVuOwogICAgICBwYWRkaW5nOiAxMnB4OwogICAgICBkaXNwbGF5OiBibG9jazsKICAgICAgb3ZlcnNjcm9sbC1iZWhhdmlvcjogY29udGFpbjsKICAgICAgbWluLWhlaWdodDogMDsKICAgIH0KCiAgICAudGh1bWJuYWlsIHsKICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICBib3JkZXItcmFkaXVzOiA4cHg7CiAgICAgIG92ZXJmbG93OiBoaWRkZW47CiAgICAgIGN1cnNvcjogcG9pbnRlcjsKICAgICAgYm9yZGVyOiAycHggc29saWQgdHJhbnNwYXJlbnQ7CiAgICAgIHRyYW5zaXRpb246IGJvcmRlci1jb2xvciAwLjE1cyBlYXNlOwogICAgICBiYWNrZ3JvdW5kOiAke3AuYmRUaGVtZSgiaHNsKDAgMCUgOTUlKSIsImhzbCgyMTUgMjAlIDE4JSkiKX07CiAgICAgIGRpc3BsYXk6IGJsb2NrOwogICAgICB3aWR0aDogMTAwJTsKICAgICAgbWFyZ2luLWJvdHRvbTogMTJweDsKICAgICAgLyogRGVmYXVsdCBBNCBhc3BlY3QgcmF0aW8gKDI5N21tIC8gMjEwbW0g4omIIDEuNDE0KSAqLwogICAgICBtaW4taGVpZ2h0OiBjYWxjKDE3NnB4ICogMS40MTQpOwogICAgfQoKICAgIC50aHVtYm5haWw6bGFzdC1jaGlsZCB7CiAgICAgIG1hcmdpbi1ib3R0b206IDA7CiAgICB9CgogICAgLnRodW1ibmFpbDpob3ZlciB7CiAgICAgIGJvcmRlci1jb2xvcjogJHtwLmJkVGhlbWUoImhzbCgyMTQgMzElIDg2JSkiLCJoc2woMjE3IDI1JSAzNSUpIil9OwogICAgfQoKICAgIC50aHVtYm5haWwuYWN0aXZlIHsKICAgICAgYm9yZGVyLWNvbG9yOiAke3AuYmRUaGVtZSgiaHNsKDIxNyA5MSUgNjAlKSIsImhzbCgyMTMgOTMlIDY4JSkiKX07CiAgICB9CgogICAgLnRodW1ibmFpbC1jYW52YXMgewogICAgICBkaXNwbGF5OiBibG9jazsKICAgICAgd2lkdGg6IDEwMCU7CiAgICAgIGhlaWdodDogYXV0bzsKICAgICAgaW1hZ2UtcmVuZGVyaW5nOiAtd2Via2l0LW9wdGltaXplLWNvbnRyYXN0OwogICAgICBpbWFnZS1yZW5kZXJpbmc6IGNyaXNwLWVkZ2VzOwogICAgfQoKICAgIC50aHVtYm5haWwtbnVtYmVyIHsKICAgICAgcG9zaXRpb246IGFic29sdXRlOwogICAgICBib3R0b206IDRweDsKICAgICAgcmlnaHQ6IDRweDsKICAgICAgYmFja2dyb3VuZDogJHtwLmJkVGhlbWUoInJnYmEoMCwgMCwgMCwgMC43KSIsInJnYmEoMCwgMCwgMCwgMC44KSIpfTsKICAgICAgY29sb3I6IHdoaXRlOwogICAgICBmb250LXNpemU6IDExcHg7CiAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7CiAgICAgIHBhZGRpbmc6IDJweCA2cHg7CiAgICAgIGJvcmRlci1yYWRpdXM6IDRweDsKICAgIH0KCiAgICAudmlld2VyLW1haW4gewogICAgICBmbGV4OiAxOwogICAgICBvdmVyZmxvdy15OiBhdXRvOwogICAgICBvdmVyZmxvdy14OiBoaWRkZW47CiAgICAgIHBhZGRpbmc6IDIwcHg7CiAgICAgIHNjcm9sbC1iZWhhdmlvcjogc21vb3RoOwogICAgICBvdmVyc2Nyb2xsLWJlaGF2aW9yOiBjb250YWluOwogICAgICBtaW4taGVpZ2h0OiAwOwogICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICB9CgogICAgLmxvYWRpbmctY29udGFpbmVyIHsKICAgICAgZGlzcGxheTogZmxleDsKICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7CiAgICAgIGhlaWdodDogMTAwJTsKICAgICAgZ2FwOiAxNnB4OwogICAgICBjb2xvcjogJHtwLmJkVGhlbWUoImhzbCgyMTUgMTYlIDQ1JSkiLCJoc2woMjE1IDE2JSA3NSUpIil9OwogICAgfQoKICAgIC5sb2FkaW5nLXNwaW5uZXIgewogICAgICB3aWR0aDogMzJweDsKICAgICAgaGVpZ2h0OiAzMnB4OwogICAgICBib3JkZXItcmFkaXVzOiA1MCU7CiAgICAgIGJvcmRlcjogM3B4IHNvbGlkICR7cC5iZFRoZW1lKCJoc2woMjE0IDMxJSA4NiUpIiwiaHNsKDIxNyAyNSUgMjglKSIpfTsKICAgICAgYm9yZGVyLXRvcC1jb2xvcjogJHtwLmJkVGhlbWUoImhzbCgyMTcgOTElIDYwJSkiLCJoc2woMjEzIDkzJSA2OCUpIil9OwogICAgICBhbmltYXRpb246IHNwaW4gMC44cyBsaW5lYXIgaW5maW5pdGU7CiAgICB9CgogICAgQGtleWZyYW1lcyBzcGluIHsKICAgICAgdG8gewogICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDM2MGRlZyk7CiAgICAgIH0KICAgIH0KCiAgICAubG9hZGluZy10ZXh0IHsKICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgICBmb250LXdlaWdodDogNTAwOwogICAgfQoKICAgIC5wYWdlcy1jb250YWluZXIgewogICAgICBkaXNwbGF5OiBmbGV4OwogICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICBnYXA6IDIwcHg7CiAgICB9CgogICAgLnBhZ2Utd3JhcHBlciB7CiAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOwogICAgICB3aWR0aDogMTAwJTsKICAgIH0KCiAgICAuY2FudmFzLWNvbnRhaW5lciB7CiAgICAgIGJhY2tncm91bmQ6IHdoaXRlOwogICAgICBib3gtc2hhZG93OiAwIDJweCAxMnB4ICR7cC5iZFRoZW1lKCJyZ2JhKDAsIDAsIDAsIDAuMSkiLCJyZ2JhKDAsIDAsIDAsIDAuMykiKX07CiAgICAgIGJvcmRlci1yYWRpdXM6IDRweDsKICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrOwogICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICB9CgogICAgLnBhZ2UtY2FudmFzIHsKICAgICAgZGlzcGxheTogYmxvY2s7CiAgICAgIGltYWdlLXJlbmRlcmluZzogLXdlYmtpdC1vcHRpbWl6ZS1jb250cmFzdDsKICAgICAgaW1hZ2UtcmVuZGVyaW5nOiBjcmlzcC1lZGdlczsKICAgIH0KCiAgICAvKiBUZXh0IGxheWVyIGZvciBzZWxlY3Rpb24gKi8KICAgIC50ZXh0LWxheWVyIHsKICAgICAgcG9zaXRpb246IGFic29sdXRlOwogICAgICBpbnNldDogMDsKICAgICAgb3ZlcmZsb3c6IHZpc2libGU7CiAgICAgIGxpbmUtaGVpZ2h0OiAxOwogICAgICB0ZXh0LXNpemUtYWRqdXN0OiBub25lOwogICAgICBmb3JjZWQtY29sb3ItYWRqdXN0OiBub25lOwogICAgICB0cmFuc2Zvcm0tb3JpZ2luOiAwIDA7CiAgICAgIHotaW5kZXg6IDE7CiAgICAgIHVzZXItc2VsZWN0OiB0ZXh0OwogICAgICAtd2Via2l0LXVzZXItc2VsZWN0OiB0ZXh0OwogICAgfQoKICAgIC50ZXh0LWxheWVyIHNwYW4sCiAgICAudGV4dC1sYXllciBiciB7CiAgICAgIGNvbG9yOiB0cmFuc3BhcmVudDsKICAgICAgcG9zaXRpb246IGFic29sdXRlOwogICAgICB3aGl0ZS1zcGFjZTogcHJlOwogICAgICBjdXJzb3I6IHRleHQ7CiAgICAgIHRyYW5zZm9ybS1vcmlnaW46IDAlIDAlOwogICAgICB1c2VyLXNlbGVjdDogdGV4dDsKICAgICAgLXdlYmtpdC11c2VyLXNlbGVjdDogdGV4dDsKICAgIH0KCiAgICAudGV4dC1sYXllciA6OnNlbGVjdGlvbiB7CiAgICAgIGJhY2tncm91bmQ6IHJnYmEoMCwgMTAwLCAyMDAsIDAuMyk7CiAgICB9CgogICAgLnRleHQtbGF5ZXIgYnI6OnNlbGVjdGlvbiB7CiAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50OwogICAgfQoKICAgIC50ZXh0LWxheWVyIC5lbmRPZkNvbnRlbnQgewogICAgICBkaXNwbGF5OiBibG9jazsKICAgICAgcG9zaXRpb246IGFic29sdXRlOwogICAgICBpbnNldDogMTAwJSAwIDA7CiAgICAgIHotaW5kZXg6IDA7CiAgICAgIGN1cnNvcjogZGVmYXVsdDsKICAgICAgdXNlci1zZWxlY3Q6IG5vbmU7CiAgICB9CgogICAgLnRleHQtbGF5ZXIuc2VsZWN0aW5nIC5lbmRPZkNvbnRlbnQgewogICAgICB0b3A6IDA7CiAgICB9CgogICAgLnBkZi12aWV3ZXIud2l0aC1zaWRlYmFyIC52aWV3ZXItbWFpbiB7CiAgICAgIG1hcmdpbi1sZWZ0OiAwOwogICAgfQogIGBdfSk7dmFyIFdidCxHYnQ9YigoKT0+e3VlKCk7V2J0PSgpPT53YAogIDxzdHlsZT4KICAgIC5kZW1vLWNvbnRhaW5lciB7CiAgICAgIHBhZGRpbmc6IDQwcHg7CiAgICAgIGJhY2tncm91bmQ6ICNmNWY1ZjU7CiAgICB9CgogICAgLmRlbW8tc2VjdGlvbiB7CiAgICAgIG1hcmdpbi1ib3R0b206IDQwcHg7CiAgICB9CgogICAgaDMgewogICAgICBtYXJnaW4tYm90dG9tOiAyMHB4OwogICAgICBmb250LXNpemU6IDE4cHg7CiAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7CiAgICB9CgogICAgZGVlcy1wZGYtdmlld2VyIHsKICAgICAgYm9yZGVyOiAxcHggc29saWQgI2RkZDsKICAgICAgYm9yZGVyLXJhZGl1czogOHB4OwogICAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgfQoKICAgIC52aWV3ZXItdGFsbCB7CiAgICAgIGhlaWdodDogODAwcHg7CiAgICB9CgogICAgLnZpZXdlci1jb21wYWN0IHsKICAgICAgaGVpZ2h0OiA1MDBweDsKICAgIH0KICA8L3N0eWxlPgoKICA8ZGl2IGNsYXNzPSJkZW1vLWNvbnRhaW5lciI+CiAgICA8ZGl2IGNsYXNzPSJkZW1vLXNlY3Rpb24iPgogICAgICA8aDM+RnVsbCBGZWF0dXJlZCBQREYgVmlld2VyIHdpdGggVG9vbGJhcjwvaDM+CiAgICAgIDxkZWVzLXBkZi12aWV3ZXIKICAgICAgICBjbGFzcz0idmlld2VyLXRhbGwiCiAgICAgICAgcGRmVXJsPSJodHRwczovL3Jhdy5naXRodWJ1c2VyY29udGVudC5jb20vbW96aWxsYS9wZGYuanMvYmEyZWRlYWUvd2ViL2NvbXByZXNzZWQudHJhY2Vtb25rZXktcGxkaS0wOS5wZGYiCiAgICAgICAgc2hvd1Rvb2xiYXI9InRydWUiCiAgICAgICAgc2hvd1NpZGViYXI9ImZhbHNlIgogICAgICAgIGluaXRpYWxab29tPSJwYWdlLWZpdCIKICAgICAgPjwvZGVlcy1wZGYtdmlld2VyPgogICAgPC9kaXY+CgogICAgPGRpdiBjbGFzcz0iZGVtby1zZWN0aW9uIj4KICAgICAgPGgzPlBERiBWaWV3ZXIgd2l0aCBTaWRlYmFyIE5hdmlnYXRpb248L2gzPgogICAgICA8ZGVlcy1wZGYtdmlld2VyCiAgICAgICAgY2xhc3M9InZpZXdlci10YWxsIgogICAgICAgIHBkZlVybD0iaHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL21vemlsbGEvcGRmLmpzL2JhMmVkZWFlL3dlYi9jb21wcmVzc2VkLnRyYWNlbW9ua2V5LXBsZGktMDkucGRmIgogICAgICAgIHNob3dUb29sYmFyPSJ0cnVlIgogICAgICAgIHNob3dTaWRlYmFyPSJ0cnVlIgogICAgICAgIGluaXRpYWxab29tPSJwYWdlLXdpZHRoIgogICAgICA+PC9kZWVzLXBkZi12aWV3ZXI+CiAgICA8L2Rpdj4KCiAgICA8ZGl2IGNsYXNzPSJkZW1vLXNlY3Rpb24iPgogICAgICA8aDM+Q29tcGFjdCBWaWV3ZXIgd2l0aG91dCBDb250cm9sczwvaDM+CiAgICAgIDxkZWVzLXBkZi12aWV3ZXIKICAgICAgICBjbGFzcz0idmlld2VyLWNvbXBhY3QiCiAgICAgICAgcGRmVXJsPSJodHRwczovL3Jhdy5naXRodWJ1c2VyY29udGVudC5jb20vbW96aWxsYS9wZGYuanMvYmEyZWRlYWUvZXhhbXBsZXMvbGVhcm5pbmcvaGVsbG93b3JsZC5wZGYiCiAgICAgICAgc2hvd1Rvb2xiYXI9ImZhbHNlIgogICAgICAgIHNob3dTaWRlYmFyPSJmYWxzZSIKICAgICAgICBpbml0aWFsWm9vbT0iYXV0byIKICAgICAgPjwvZGVlcy1wZGYtdmlld2VyPgogICAgPC9kaXY+CiAgPC9kaXY+CmB9KTt2YXIgWGEsazEsWWJ0LHFWPWIoKCk9Pnt1ZSgpO253KCk7VWJ0KCk7R2J0KCk7RHQoKTtYYT1mdW5jdGlvbih0LGUsYSxpLHIscyl7ZnVuY3Rpb24gbih4KXtpZih4IT09dm9pZCAwJiZ0eXBlb2YgeCE9ImZ1bmN0aW9uIil0aHJvdyBuZXcgVHlwZUVycm9yKCJGdW5jdGlvbiBleHBlY3RlZCIpO3JldHVybiB4fWZvcih2YXIgbz1pLmtpbmQsZD1vPT09ImdldHRlciI/ImdldCI6bz09PSJzZXR0ZXIiPyJzZXQiOiJ2YWx1ZSIsYz0hZSYmdD9pLnN0YXRpYz90OnQucHJvdG90eXBlOm51bGwsaD1lfHwoYz9PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGMsaS5uYW1lKTp7fSksbCxmPSExLGc9YS5sZW5ndGgtMTtnPj0wO2ctLSl7dmFyIHk9e307Zm9yKHZhciB2IGluIGkpeVt2XT12PT09ImFjY2VzcyI/e306aVt2XTtmb3IodmFyIHYgaW4gaS5hY2Nlc3MpeS5hY2Nlc3Nbdl09aS5hY2Nlc3Nbdl07eS5hZGRJbml0aWFsaXplcj1mdW5jdGlvbih4KXtpZihmKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBhZGQgaW5pdGlhbGl6ZXJzIGFmdGVyIGRlY29yYXRpb24gaGFzIGNvbXBsZXRlZCIpO3MucHVzaChuKHh8fG51bGwpKX07dmFyIG09KDAsYVtnXSkobz09PSJhY2Nlc3NvciI/e2dldDpoLmdldCxzZXQ6aC5zZXR9OmhbZF0seSk7aWYobz09PSJhY2Nlc3NvciIpe2lmKG09PT12b2lkIDApY29udGludWU7aWYobT09PW51bGx8fHR5cGVvZiBtIT0ib2JqZWN0Iil0aHJvdyBuZXcgVHlwZUVycm9yKCJPYmplY3QgZXhwZWN0ZWQiKTsobD1uKG0uZ2V0KSkmJihoLmdldD1sKSwobD1uKG0uc2V0KSkmJihoLnNldD1sKSwobD1uKG0uaW5pdCkpJiZyLnVuc2hpZnQobCl9ZWxzZShsPW4obSkpJiYobz09PSJmaWVsZCI/ci51bnNoaWZ0KGwpOmhbZF09bCl9YyYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGMsaS5uYW1lLGgpLGY9ITB9LGsxPWZ1bmN0aW9uKHQsZSxhKXtmb3IodmFyIGk9YXJndW1lbnRzLmxlbmd0aD4yLHI9MDtyPGUubGVuZ3RoO3IrKylhPWk/ZVtyXS5jYWxsKHQsYSk6ZVtyXS5jYWxsKHQpO3JldHVybiBpP2E6dm9pZCAwfSxZYnQ9KCgpPT57bGV0IHQ9W3BlKCJkZWVzLXBkZi12aWV3ZXIiKV0sZSxhPVtdLGkscj14ZSxzLG49W10sbz1bXSxkLGM9W10saD1bXSxsLGY9W10sZz1bXSx5LHY9W10sbT1bXSx4LE09W10sUz1bXSxGLF89W10saz1bXSxOLEw9W10sQT1bXSxxLEM9W10sej1bXSxFLFQ9W10sJD1bXSxWLFI9W10sVT1bXSxyZSxqPVtdLG1lPVtdLHdlLEg9W10sY2U9W107dmFyIGtlPWNsYXNzIGV4dGVuZHMgcntzdGF0aWN7aT10aGlzfXN0YXRpY3tsZXQgVz10eXBlb2YgU3ltYm9sPT0iZnVuY3Rpb24iJiZTeW1ib2wubWV0YWRhdGE/T2JqZWN0LmNyZWF0ZShyW1N5bWJvbC5tZXRhZGF0YV0/P251bGwpOnZvaWQgMDtzPVtJKHt0eXBlOlN0cmluZ30pXSxkPVtJKHt0eXBlOk51bWJlcn0pXSxsPVtJKHt0eXBlOlN0cmluZ30pXSx5PVtJKHt0eXBlOkJvb2xlYW59KV0seD1bSSh7dHlwZTpCb29sZWFufSldLEY9W0koe3R5cGU6TnVtYmVyfSldLE49W0koe3R5cGU6TnVtYmVyfSldLHE9W0koe3R5cGU6TnVtYmVyfSldLEU9W0koe3R5cGU6Qm9vbGVhbn0pXSxWPVtJKHt0eXBlOlN0cmluZ30pXSxyZT1bSSh7dHlwZTpBcnJheX0pXSx3ZT1bSSh7dHlwZTpBcnJheX0pXSxYYSh0aGlzLG51bGwscyx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InBkZlVybCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6RD0+InBkZlVybCJpbiBELGdldDpEPT5ELnBkZlVybCxzZXQ6KEQsTyk9PntELnBkZlVybD1PfX0sbWV0YWRhdGE6V30sbixvKSxYYSh0aGlzLG51bGwsZCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImluaXRpYWxQYWdlIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpEPT4iaW5pdGlhbFBhZ2UiaW4gRCxnZXQ6RD0+RC5pbml0aWFsUGFnZSxzZXQ6KEQsTyk9PntELmluaXRpYWxQYWdlPU99fSxtZXRhZGF0YTpXfSxjLGgpLFhhKHRoaXMsbnVsbCxsLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiaW5pdGlhbFpvb20iLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOkQ9PiJpbml0aWFsWm9vbSJpbiBELGdldDpEPT5ELmluaXRpYWxab29tLHNldDooRCxPKT0+e0QuaW5pdGlhbFpvb209T319LG1ldGFkYXRhOld9LGYsZyksWGEodGhpcyxudWxsLHkse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJzaG93VG9vbGJhciIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6RD0+InNob3dUb29sYmFyImluIEQsZ2V0OkQ9PkQuc2hvd1Rvb2xiYXIsc2V0OihELE8pPT57RC5zaG93VG9vbGJhcj1PfX0sbWV0YWRhdGE6V30sdixtKSxYYSh0aGlzLG51bGwseCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InNob3dTaWRlYmFyIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpEPT4ic2hvd1NpZGViYXIiaW4gRCxnZXQ6RD0+RC5zaG93U2lkZWJhcixzZXQ6KEQsTyk9PntELnNob3dTaWRlYmFyPU99fSxtZXRhZGF0YTpXfSxNLFMpLFhhKHRoaXMsbnVsbCxGLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiY3VycmVudFBhZ2UiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOkQ9PiJjdXJyZW50UGFnZSJpbiBELGdldDpEPT5ELmN1cnJlbnRQYWdlLHNldDooRCxPKT0+e0QuY3VycmVudFBhZ2U9T319LG1ldGFkYXRhOld9LF8sayksWGEodGhpcyxudWxsLE4se2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJ0b3RhbFBhZ2VzIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpEPT4idG90YWxQYWdlcyJpbiBELGdldDpEPT5ELnRvdGFsUGFnZXMsc2V0OihELE8pPT57RC50b3RhbFBhZ2VzPU99fSxtZXRhZGF0YTpXfSxMLEEpLFhhKHRoaXMsbnVsbCxxLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiY3VycmVudFpvb20iLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOkQ9PiJjdXJyZW50Wm9vbSJpbiBELGdldDpEPT5ELmN1cnJlbnRab29tLHNldDooRCxPKT0+e0QuY3VycmVudFpvb209T319LG1ldGFkYXRhOld9LEMseiksWGEodGhpcyxudWxsLEUse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJsb2FkaW5nIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpEPT4ibG9hZGluZyJpbiBELGdldDpEPT5ELmxvYWRpbmcsc2V0OihELE8pPT57RC5sb2FkaW5nPU99fSxtZXRhZGF0YTpXfSxULCQpLFhhKHRoaXMsbnVsbCxWLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiZG9jdW1lbnRJZCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6RD0+ImRvY3VtZW50SWQiaW4gRCxnZXQ6RD0+RC5kb2N1bWVudElkLHNldDooRCxPKT0+e0QuZG9jdW1lbnRJZD1PfX0sbWV0YWRhdGE6V30sUixVKSxYYSh0aGlzLG51bGwscmUse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJ0aHVtYm5haWxEYXRhIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpEPT4idGh1bWJuYWlsRGF0YSJpbiBELGdldDpEPT5ELnRodW1ibmFpbERhdGEsc2V0OihELE8pPT57RC50aHVtYm5haWxEYXRhPU99fSxtZXRhZGF0YTpXfSxqLG1lKSxYYSh0aGlzLG51bGwsd2Use2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJwYWdlRGF0YSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6RD0+InBhZ2VEYXRhImluIEQsZ2V0OkQ9PkQucGFnZURhdGEsc2V0OihELE8pPT57RC5wYWdlRGF0YT1PfX0sbWV0YWRhdGE6V30sSCxjZSksWGEobnVsbCxlPXt2YWx1ZTppfSx0LHtraW5kOiJjbGFzcyIsbmFtZTppLm5hbWUsbWV0YWRhdGE6V30sbnVsbCxhKSxrZT1pPWUudmFsdWUsVyYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGksU3ltYm9sLm1ldGFkYXRhLHtlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMCx2YWx1ZTpXfSl9c3RhdGljIGRlbW89V2J0O3N0YXRpYyBkZW1vR3JvdXBzPVsiTWVkaWEiLCJQREYiXTtzdGF0aWMgc3R5bGVzPWpidDsjZT1rMSh0aGlzLG4sIiIpO2dldCBwZGZVcmwoKXtyZXR1cm4gdGhpcy4jZX1zZXQgcGRmVXJsKFcpe3RoaXMuI2U9V30jdD0oazEodGhpcyxvKSxrMSh0aGlzLGMsMSkpO2dldCBpbml0aWFsUGFnZSgpe3JldHVybiB0aGlzLiN0fXNldCBpbml0aWFsUGFnZShXKXt0aGlzLiN0PVd9I2E9KGsxKHRoaXMsaCksazEodGhpcyxmLCJhdXRvIikpO2dldCBpbml0aWFsWm9vbSgpe3JldHVybiB0aGlzLiNhfXNldCBpbml0aWFsWm9vbShXKXt0aGlzLiNhPVd9I2k9KGsxKHRoaXMsZyksazEodGhpcyx2LCEwKSk7Z2V0IHNob3dUb29sYmFyKCl7cmV0dXJuIHRoaXMuI2l9c2V0IHNob3dUb29sYmFyKFcpe3RoaXMuI2k9V30jcj0oazEodGhpcyxtKSxrMSh0aGlzLE0sITEpKTtnZXQgc2hvd1NpZGViYXIoKXtyZXR1cm4gdGhpcy4jcn1zZXQgc2hvd1NpZGViYXIoVyl7dGhpcy4jcj1XfSNzPShrMSh0aGlzLFMpLGsxKHRoaXMsXywxKSk7Z2V0IGN1cnJlbnRQYWdlKCl7cmV0dXJuIHRoaXMuI3N9c2V0IGN1cnJlbnRQYWdlKFcpe3RoaXMuI3M9V30jbj0oazEodGhpcyxrKSxrMSh0aGlzLEwsMSkpO2dldCB0b3RhbFBhZ2VzKCl7cmV0dXJuIHRoaXMuI259c2V0IHRvdGFsUGFnZXMoVyl7dGhpcy4jbj1XfSNvPShrMSh0aGlzLEEpLGsxKHRoaXMsQywxKSk7Z2V0IGN1cnJlbnRab29tKCl7cmV0dXJuIHRoaXMuI299c2V0IGN1cnJlbnRab29tKFcpe3RoaXMuI289V30jbD0oazEodGhpcyx6KSxrMSh0aGlzLFQsITEpKTtnZXQgbG9hZGluZygpe3JldHVybiB0aGlzLiNsfXNldCBsb2FkaW5nKFcpe3RoaXMuI2w9V30jYz0oazEodGhpcywkKSxrMSh0aGlzLFIsIiIpKTtnZXQgZG9jdW1lbnRJZCgpe3JldHVybiB0aGlzLiNjfXNldCBkb2N1bWVudElkKFcpe3RoaXMuI2M9V30jZD0oazEodGhpcyxVKSxrMSh0aGlzLGosW10pKTtnZXQgdGh1bWJuYWlsRGF0YSgpe3JldHVybiB0aGlzLiNkfXNldCB0aHVtYm5haWxEYXRhKFcpe3RoaXMuI2Q9V30jaD0oazEodGhpcyxtZSksazEodGhpcyxILFtdKSk7Z2V0IHBhZ2VEYXRhKCl7cmV0dXJuIHRoaXMuI2h9c2V0IHBhZ2VEYXRhKFcpe3RoaXMuI2g9V31wZGZEb2N1bWVudD1rMSh0aGlzLGNlKTtyZW5kZXJTdGF0ZT0iaWRsZSI7cmVuZGVyQWJvcnRDb250cm9sbGVyPW51bGw7cGFnZVJlbmRlcmluZz0hMTtwYWdlTnVtUGVuZGluZz1udWxsO2N1cnJlbnRSZW5kZXJUYXNrPW51bGw7Y3VycmVudFJlbmRlclByb21pc2U9bnVsbDt0aHVtYm5haWxSZW5kZXJUYXNrcz1bXTtwYWdlUmVuZGVyVGFza3M9bmV3IE1hcDt0ZXh0TGF5ZXJSZW5kZXJUYXNrcz1uZXcgTWFwO2NhbnZhcztjdHg7dmlld2VyTWFpbj1udWxsO3Jlc2l6ZU9ic2VydmVyO2ludGVyc2VjdGlvbk9ic2VydmVyO3Njcm9sbFRocm90dGxlVGltZW91dDt2aWV3cG9ydERpbWVuc2lvbnM9e3dpZHRoOjAsaGVpZ2h0OjB9O3ZpZXdwb3J0TW9kZT0iYXV0byI7TUFOVUFMX01JTl9aT09NPS41O01BTlVBTF9NQVhfWk9PTT0zO0FCU09MVVRFX01JTl9aT09NPS4xO0FCU09MVVRFX01BWF9aT09NPTQ7UEFHRV9HQVA9MjA7UkVOREVSX0JVRkZFUj0zO2NvbnN0cnVjdG9yKCl7c3VwZXIoKX1yZW5kZXIoKXtyZXR1cm4gd2AKICAgICAgPGRpdiBjbGFzcz0icGRmLXZpZXdlciAke3RoaXMuc2hvd1NpZGViYXI/IndpdGgtc2lkZWJhciI6IiJ9Ij4KICAgICAgICAke3RoaXMuc2hvd1Rvb2xiYXI/d2AKICAgICAgICAgIDxkaXYgY2xhc3M9InRvb2xiYXIiPgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJ0b29sYmFyLWdyb3VwIj4KICAgICAgICAgICAgICA8YnV0dG9uCiAgICAgICAgICAgICAgICBjbGFzcz0idG9vbGJhci1idXR0b24iCiAgICAgICAgICAgICAgICBAY2xpY2s9JHt0aGlzLnByZXZpb3VzUGFnZX0KICAgICAgICAgICAgICAgID9kaXNhYmxlZD0ke3RoaXMuY3VycmVudFBhZ2U8PTF9CiAgICAgICAgICAgICAgPgogICAgICAgICAgICAgICAgPGRlZXMtaWNvbiBpY29uPSJsdWNpZGU6Q2hldnJvbkxlZnQiPjwvZGVlcy1pY29uPgogICAgICAgICAgICAgIDwvYnV0dG9uPgogICAgICAgICAgICAgIDxkaXYgY2xhc3M9InBhZ2UtaW5mbyI+CiAgICAgICAgICAgICAgICA8aW5wdXQKICAgICAgICAgICAgICAgICAgdHlwZT0ibnVtYmVyIgogICAgICAgICAgICAgICAgICBtaW49IjEiCiAgICAgICAgICAgICAgICAgIG1heD0iJHt0aGlzLnRvdGFsUGFnZXN9IgogICAgICAgICAgICAgICAgICAudmFsdWU9JHtTdHJpbmcodGhpcy5jdXJyZW50UGFnZSl9CiAgICAgICAgICAgICAgICAgIEBjaGFuZ2U9JHt0aGlzLmhhbmRsZVBhZ2VJbnB1dH0KICAgICAgICAgICAgICAgICAgY2xhc3M9InBhZ2UtaW5wdXQiCiAgICAgICAgICAgICAgICAvPgogICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9InBhZ2Utc2VwYXJhdG9yIj4vPC9zcGFuPgogICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9InBhZ2UtdG90YWwiPiR7dGhpcy50b3RhbFBhZ2VzfTwvc3Bhbj4KICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICA8YnV0dG9uCiAgICAgICAgICAgICAgICBjbGFzcz0idG9vbGJhci1idXR0b24iCiAgICAgICAgICAgICAgICBAY2xpY2s9JHt0aGlzLm5leHRQYWdlfQogICAgICAgICAgICAgICAgP2Rpc2FibGVkPSR7dGhpcy5jdXJyZW50UGFnZT49dGhpcy50b3RhbFBhZ2VzfQogICAgICAgICAgICAgID4KICAgICAgICAgICAgICAgIDxkZWVzLWljb24gaWNvbj0ibHVjaWRlOkNoZXZyb25SaWdodCI+PC9kZWVzLWljb24+CiAgICAgICAgICAgICAgPC9idXR0b24+CiAgICAgICAgICAgIDwvZGl2PgoKICAgICAgICAgICAgPGRpdiBjbGFzcz0idG9vbGJhci1ncm91cCI+CiAgICAgICAgICAgICAgPGJ1dHRvbgogICAgICAgICAgICAgICAgY2xhc3M9InRvb2xiYXItYnV0dG9uIgogICAgICAgICAgICAgICAgQGNsaWNrPSR7dGhpcy56b29tT3V0fQogICAgICAgICAgICAgICAgP2Rpc2FibGVkPSR7IXRoaXMuY2FuWm9vbU91dH0KICAgICAgICAgICAgICA+CiAgICAgICAgICAgICAgICA8ZGVlcy1pY29uIGljb249Imx1Y2lkZTpab29tT3V0Ij48L2RlZXMtaWNvbj4KICAgICAgICAgICAgICA8L2J1dHRvbj4KICAgICAgICAgICAgICA8YnV0dG9uCiAgICAgICAgICAgICAgICBjbGFzcz0idG9vbGJhci1idXR0b24iCiAgICAgICAgICAgICAgICBAY2xpY2s9JHt0aGlzLnJlc2V0Wm9vbX0KICAgICAgICAgICAgICA+CiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iem9vbS1sZXZlbCI+JHtNYXRoLnJvdW5kKHRoaXMuY3VycmVudFpvb20qMTAwKX0lPC9zcGFuPgogICAgICAgICAgICAgIDwvYnV0dG9uPgogICAgICAgICAgICAgIDxidXR0b24KICAgICAgICAgICAgICAgIGNsYXNzPSJ0b29sYmFyLWJ1dHRvbiIKICAgICAgICAgICAgICAgIEBjbGljaz0ke3RoaXMuem9vbUlufQogICAgICAgICAgICAgICAgP2Rpc2FibGVkPSR7IXRoaXMuY2FuWm9vbUlufQogICAgICAgICAgICAgID4KICAgICAgICAgICAgICAgIDxkZWVzLWljb24gaWNvbj0ibHVjaWRlOlpvb21JbiI+PC9kZWVzLWljb24+CiAgICAgICAgICAgICAgPC9idXR0b24+CiAgICAgICAgICAgIDwvZGl2PgoKICAgICAgICAgICAgPGRpdiBjbGFzcz0idG9vbGJhci1ncm91cCI+CiAgICAgICAgICAgICAgPGJ1dHRvbgogICAgICAgICAgICAgICAgY2xhc3M9InRvb2xiYXItYnV0dG9uIgogICAgICAgICAgICAgICAgQGNsaWNrPSR7dGhpcy5maXRUb1BhZ2V9CiAgICAgICAgICAgICAgICB0aXRsZT0iRml0IHRvIHBhZ2UiCiAgICAgICAgICAgICAgPgogICAgICAgICAgICAgICAgPGRlZXMtaWNvbiBpY29uPSJsdWNpZGU6TWF4aW1pemUiPjwvZGVlcy1pY29uPgogICAgICAgICAgICAgIDwvYnV0dG9uPgogICAgICAgICAgICAgIDxidXR0b24KICAgICAgICAgICAgICAgIGNsYXNzPSJ0b29sYmFyLWJ1dHRvbiIKICAgICAgICAgICAgICAgIEBjbGljaz0ke3RoaXMuZml0VG9XaWR0aH0KICAgICAgICAgICAgICAgIHRpdGxlPSJGaXQgdG8gd2lkdGgiCiAgICAgICAgICAgICAgPgogICAgICAgICAgICAgICAgPGRlZXMtaWNvbiBpY29uPSJsdWNpZGU6QXJyb3dMZWZ0UmlnaHQiPjwvZGVlcy1pY29uPgogICAgICAgICAgICAgIDwvYnV0dG9uPgogICAgICAgICAgICA8L2Rpdj4KCiAgICAgICAgICAgIDxkaXYgY2xhc3M9InRvb2xiYXItZ3JvdXAgdG9vbGJhci1ncm91cC0tZW5kIj4KICAgICAgICAgICAgICA8YnV0dG9uCiAgICAgICAgICAgICAgICBjbGFzcz0idG9vbGJhci1idXR0b24iCiAgICAgICAgICAgICAgICBAY2xpY2s9JHsoKT0+dGhpcy5zaG93U2lkZWJhcj0hdGhpcy5zaG93U2lkZWJhcn0KICAgICAgICAgICAgICAgIHRpdGxlPSIke3RoaXMuc2hvd1NpZGViYXI/IkhpZGUgdGh1bWJuYWlscyI6IlNob3cgdGh1bWJuYWlscyJ9IgogICAgICAgICAgICAgID4KICAgICAgICAgICAgICAgIDxkZWVzLWljb24gaWNvbj0iJHt0aGlzLnNob3dTaWRlYmFyPyJsdWNpZGU6U2lkZWJhckNsb3NlIjoibHVjaWRlOlNpZGViYXIifSI+PC9kZWVzLWljb24+CiAgICAgICAgICAgICAgPC9idXR0b24+CiAgICAgICAgICAgICAgPGJ1dHRvbgogICAgICAgICAgICAgICAgY2xhc3M9InRvb2xiYXItYnV0dG9uIgogICAgICAgICAgICAgICAgQGNsaWNrPSR7dGhpcy5kb3dubG9hZFBkZn0KICAgICAgICAgICAgICAgIHRpdGxlPSJEb3dubG9hZCIKICAgICAgICAgICAgICA+CiAgICAgICAgICAgICAgICA8ZGVlcy1pY29uIGljb249Imx1Y2lkZTpEb3dubG9hZCI+PC9kZWVzLWljb24+CiAgICAgICAgICAgICAgPC9idXR0b24+CiAgICAgICAgICAgICAgPGJ1dHRvbgogICAgICAgICAgICAgICAgY2xhc3M9InRvb2xiYXItYnV0dG9uIgogICAgICAgICAgICAgICAgQGNsaWNrPSR7dGhpcy5wcmludFBkZn0KICAgICAgICAgICAgICAgIHRpdGxlPSJQcmludCIKICAgICAgICAgICAgICA+CiAgICAgICAgICAgICAgICA8ZGVlcy1pY29uIGljb249Imx1Y2lkZTpQcmludGVyIj48L2RlZXMtaWNvbj4KICAgICAgICAgICAgICA8L2J1dHRvbj4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICBgOiIifQoKICAgICAgICA8ZGl2IGNsYXNzPSJ2aWV3ZXItY29udGFpbmVyIj4KICAgICAgICAgICR7dGhpcy5zaG93U2lkZWJhcj93YAogICAgICAgICAgICA8ZGl2IGNsYXNzPSJzaWRlYmFyIj4KICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJzaWRlYmFyLWhlYWRlciI+CiAgICAgICAgICAgICAgICA8c3Bhbj5QYWdlczwvc3Bhbj4KICAgICAgICAgICAgICAgIDxidXR0b24KICAgICAgICAgICAgICAgICAgY2xhc3M9InNpZGViYXItY2xvc2UiCiAgICAgICAgICAgICAgICAgIEBjbGljaz0keygpPT50aGlzLnNob3dTaWRlYmFyPSExfQogICAgICAgICAgICAgICAgPgogICAgICAgICAgICAgICAgICA8ZGVlcy1pY29uIGljb249Imx1Y2lkZTpYIj48L2RlZXMtaWNvbj4KICAgICAgICAgICAgICAgIDwvYnV0dG9uPgogICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgIDxkaXYgY2xhc3M9InNpZGViYXItY29udGVudCI+CiAgICAgICAgICAgICAgICAke1ZhLmtleWVkKHRoaXMuZG9jdW1lbnRJZCx3YAogICAgICAgICAgICAgICAgICAke1ZhLnJlcGVhdCh0aGlzLnRodW1ibmFpbERhdGEsVz0+Vy5wYWdlLFc9PndgCiAgICAgICAgICAgICAgICAgICAgICA8ZGl2CiAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPSJ0aHVtYm5haWwgJHt0aGlzLmN1cnJlbnRQYWdlPT09Vy5wYWdlPyJhY3RpdmUiOiIifSIKICAgICAgICAgICAgICAgICAgICAgICAgZGF0YS1wYWdlPSIke1cucGFnZX0iCiAgICAgICAgICAgICAgICAgICAgICAgIEBjbGljaz0ke3RoaXMuaGFuZGxlVGh1bWJuYWlsQ2xpY2t9CiAgICAgICAgICAgICAgICAgICAgICA+CiAgICAgICAgICAgICAgICAgICAgICAgIDxjYW52YXMgY2xhc3M9InRodW1ibmFpbC1jYW52YXMiIGRhdGEtcGFnZT0iJHtXLnBhZ2V9Ij48L2NhbnZhcz4KICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9InRodW1ibmFpbC1udW1iZXIiPiR7Vy5wYWdlfTwvc3Bhbj4KICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgIGApfQogICAgICAgICAgICAgICAgYCl9CiAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgYDoiIn0KCiAgICAgICAgICA8ZGl2IGNsYXNzPSJ2aWV3ZXItbWFpbiIgQHNjcm9sbD0ke3RoaXMuaGFuZGxlU2Nyb2xsfT4KICAgICAgICAgICAgJHt0aGlzLmxvYWRpbmc/d2AKICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJsb2FkaW5nLWNvbnRhaW5lciI+CiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJsb2FkaW5nLXNwaW5uZXIiPjwvZGl2PgogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0ibG9hZGluZy10ZXh0Ij5Mb2FkaW5nIFBERi4uLjwvZGl2PgogICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICBgOndgCiAgICAgICAgICAgICAgPGRpdiBjbGFzcz0icGFnZXMtY29udGFpbmVyIj4KICAgICAgICAgICAgICAgICR7VmEucmVwZWF0KHRoaXMucGFnZURhdGEsVz0+Vy5wYWdlLFc9PndgCiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0icGFnZS13cmFwcGVyIiBkYXRhLXBhZ2U9IiR7Vy5wYWdlfSI+CiAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJjYW52YXMtY29udGFpbmVyIj4KICAgICAgICAgICAgICAgICAgICAgICAgPGNhbnZhcyBjbGFzcz0icGFnZS1jYW52YXMiIGRhdGEtcGFnZT0iJHtXLnBhZ2V9Ij48L2NhbnZhcz4KICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0idGV4dC1sYXllciIgZGF0YS1wYWdlPSIke1cucGFnZX0iPjwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgIGApfQogICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICBgfQogICAgICAgICAgPC9kaXY+CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGl2PgogICAgYH1hc3luYyBjb25uZWN0ZWRDYWxsYmFjaygpe2F3YWl0IHN1cGVyLmNvbm5lY3RlZENhbGxiYWNrKCksYXdhaXQgdGhpcy51cGRhdGVDb21wbGV0ZSx0aGlzLmVuc3VyZVZpZXdlclJlZnMoKSx0aGlzLnBkZlVybCYmKHRoaXMuZG9jdW1lbnRJZD1gJHt0aGlzLnBkZlVybH0tJHtEYXRlLm5vdygpfS0ke01hdGgucmFuZG9tKCl9YCxhd2FpdCB0aGlzLmxvYWRQZGYoKSl9YXN5bmMgZGlzY29ubmVjdGVkQ2FsbGJhY2soKXthd2FpdCBzdXBlci5kaXNjb25uZWN0ZWRDYWxsYmFjaygpLHRoaXMucmVzaXplT2JzZXJ2ZXI/LmRpc2Nvbm5lY3QoKSx0aGlzLnJlc2l6ZU9ic2VydmVyPXZvaWQgMCx0aGlzLmludGVyc2VjdGlvbk9ic2VydmVyPy5kaXNjb25uZWN0KCksdGhpcy5pbnRlcnNlY3Rpb25PYnNlcnZlcj12b2lkIDAsdGhpcy5zY3JvbGxUaHJvdHRsZVRpbWVvdXQmJihjbGVhclRpbWVvdXQodGhpcy5zY3JvbGxUaHJvdHRsZVRpbWVvdXQpLHRoaXMuc2Nyb2xsVGhyb3R0bGVUaW1lb3V0PXZvaWQgMCksdGhpcy5yZW5kZXJTdGF0ZT0iZGlzcG9zZWQiLGF3YWl0IHRoaXMuY2xlYW51cERvY3VtZW50KCksdGhpcy5jYW52YXM9dm9pZCAwLHRoaXMuY3R4PXZvaWQgMH1hc3luYyB1cGRhdGVkKFcpe2lmKHN1cGVyLnVwZGF0ZWQoVyksVy5oYXMoInBkZlVybCIpJiZ0aGlzLnBkZlVybCl7bGV0IEQ9Vy5nZXQoInBkZlVybCIpO0QmJldyLnJlbGVhc2VEb2N1bWVudChEKSx0aGlzLmRvY3VtZW50SWQ9YCR7dGhpcy5wZGZVcmx9LSR7RGF0ZS5ub3coKX0tJHtNYXRoLnJhbmRvbSgpfWAsYXdhaXQgdGhpcy5sb2FkUGRmKCl9Vy5oYXMoInNob3dTaWRlYmFyIikmJnRoaXMuc2hvd1NpZGViYXImJnRoaXMucGRmRG9jdW1lbnQmJihhd2FpdCBuZXcgUHJvbWlzZShEPT5yZXF1ZXN0QW5pbWF0aW9uRnJhbWUoRCkpLHRoaXMudGh1bWJuYWlsRGF0YS5mb3JFYWNoKEQ9PkQucmVuZGVyZWQ9ITEpLGF3YWl0IHRoaXMucmVuZGVyVGh1bWJuYWlscygpLHRoaXMuc2V0dXBJbnRlcnNlY3Rpb25PYnNlcnZlcigpLHRoaXMuc2Nyb2xsVGh1bWJuYWlsSW50b1ZpZXcodGhpcy5jdXJyZW50UGFnZSkpfWFzeW5jIGxvYWRQZGYoKXt0aGlzLmxvYWRpbmc9ITAsdGhpcy5yZW5kZXJTdGF0ZT0ibG9hZGluZyI7dHJ5e2F3YWl0IHRoaXMuY2xlYW51cERvY3VtZW50KCksdGhpcy5yZW5kZXJBYm9ydENvbnRyb2xsZXI9bmV3IEFib3J0Q29udHJvbGxlcjtsZXQgVz10aGlzLnJlbmRlckFib3J0Q29udHJvbGxlci5zaWduYWw7aWYodGhpcy5wZGZEb2N1bWVudD1hd2FpdCBXci5sb2FkRG9jdW1lbnQodGhpcy5wZGZVcmwpLFcuYWJvcnRlZHx8KHRoaXMudG90YWxQYWdlcz10aGlzLnBkZkRvY3VtZW50Lm51bVBhZ2VzLHRoaXMuY3VycmVudFBhZ2U9dGhpcy5pbml0aWFsUGFnZSx0aGlzLnJlc29sdmVJbml0aWFsVmlld3BvcnRNb2RlKCksdGhpcy50aHVtYm5haWxEYXRhPUFycmF5LmZyb20oe2xlbmd0aDp0aGlzLnRvdGFsUGFnZXN9LChELE8pPT4oe3BhZ2U6TysxLHJlbmRlcmVkOiExfSkpLHRoaXMucGFnZURhdGE9QXJyYXkuZnJvbSh7bGVuZ3RoOnRoaXMudG90YWxQYWdlc30sKEQsTyk9Pih7cGFnZTpPKzEscmVuZGVyZWQ6ITEscmVuZGVyaW5nOiExLHRleHRMYXllclJlbmRlcmVkOiExfSkpLHRoaXMubG9hZGluZz0hMSxhd2FpdCB0aGlzLnVwZGF0ZUNvbXBsZXRlLHRoaXMuZW5zdXJlVmlld2VyUmVmcygpLHRoaXMuc2V0dXBJbnRlcnNlY3Rpb25PYnNlcnZlcigpLGF3YWl0IG5ldyBQcm9taXNlKEQ9PnJlcXVlc3RBbmltYXRpb25GcmFtZShEKSksVy5hYm9ydGVkKXx8KHRoaXMucmVuZGVyU3RhdGU9InJlbmRlcmluZy1tYWluIixhd2FpdCB0aGlzLnJlbmRlclZpc2libGVQYWdlcygpLFcuYWJvcnRlZCl8fCh0aGlzLmluaXRpYWxQYWdlPjEmJmF3YWl0IHRoaXMuc2Nyb2xsVG9QYWdlKHRoaXMuaW5pdGlhbFBhZ2UsITEpLHRoaXMuc2hvd1NpZGViYXImJihhd2FpdCB0aGlzLnVwZGF0ZUNvbXBsZXRlLGF3YWl0IG5ldyBQcm9taXNlKEQ9PnJlcXVlc3RBbmltYXRpb25GcmFtZShEKSksVy5hYm9ydGVkfHwoYXdhaXQgdGhpcy5yZW5kZXJUaHVtYm5haWxzKCksVy5hYm9ydGVkKSkpKXJldHVybjt0aGlzLnJlbmRlclN0YXRlPSJyZW5kZXJlZCJ9Y2F0Y2goVyl7Y29uc29sZS5lcnJvcigiRXJyb3IgbG9hZGluZyBQREY6IixXKSx0aGlzLmxvYWRpbmc9ITEsdGhpcy5yZW5kZXJTdGF0ZT0iZXJyb3IifX1zZXR1cEludGVyc2VjdGlvbk9ic2VydmVyKCl7dGhpcy5pbnRlcnNlY3Rpb25PYnNlcnZlciYmdGhpcy5pbnRlcnNlY3Rpb25PYnNlcnZlci5kaXNjb25uZWN0KCksdGhpcy5pbnRlcnNlY3Rpb25PYnNlcnZlcj1uZXcgSW50ZXJzZWN0aW9uT2JzZXJ2ZXIoRD0+e2ZvcihsZXQgTyBvZiBEKXtsZXQgWj1PLnRhcmdldCxZPXBhcnNlSW50KFouZGF0YXNldC5wYWdlfHwiMSIpO08uaXNJbnRlcnNlY3RpbmcmJnRoaXMucmVuZGVyUGFnZUlmTmVlZGVkKFkpfX0se3Jvb3Q6dGhpcy52aWV3ZXJNYWluLHJvb3RNYXJnaW46YCR7dGhpcy5SRU5ERVJfQlVGRkVSKjEwMH1weCAwcHhgLHRocmVzaG9sZDouMDF9KTtsZXQgVz10aGlzLnNoYWRvd1Jvb3Q/LnF1ZXJ5U2VsZWN0b3JBbGwoIi5wYWdlLXdyYXBwZXIiKTtXJiZXLmZvckVhY2goRD0+e3RoaXMuaW50ZXJzZWN0aW9uT2JzZXJ2ZXI/Lm9ic2VydmUoRCl9KX1hc3luYyByZW5kZXJWaXNpYmxlUGFnZXMoKXtpZighdGhpcy52aWV3ZXJNYWluKXJldHVybjtsZXQgVz10aGlzLnZpZXdlck1haW4uY2xpZW50SGVpZ2h0O2ZvcihsZXQgRCBvZiB0aGlzLnBhZ2VEYXRhKXtsZXQgTz10aGlzLnNoYWRvd1Jvb3Q/LnF1ZXJ5U2VsZWN0b3IoYC5wYWdlLXdyYXBwZXJbZGF0YS1wYWdlPSIke0QucGFnZX0iXWApO2lmKCFPKWNvbnRpbnVlO2xldCBaPU8uZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCksWT10aGlzLnZpZXdlck1haW4uZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCksb2U9Wi50b3AtWS50b3AsZ2U9b2UrWi5oZWlnaHQsYmU9dGhpcy5SRU5ERVJfQlVGRkVSKlc7Z2U+PS1iZSYmb2U8PVcrYmUmJmF3YWl0IHRoaXMucmVuZGVyUGFnZUlmTmVlZGVkKEQucGFnZSl9fWFzeW5jIHJlbmRlclBhZ2VJZk5lZWRlZChXKXtsZXQgRD10aGlzLnBhZ2VEYXRhLmZpbmQoTz0+Ty5wYWdlPT09Vyk7aWYoISghRHx8RC5yZW5kZXJlZHx8RC5yZW5kZXJpbmcpKXtELnJlbmRlcmluZz0hMDt0cnl7bGV0IE89dGhpcy5zaGFkb3dSb290Py5xdWVyeVNlbGVjdG9yKGAucGFnZS1jYW52YXNbZGF0YS1wYWdlPSIke1d9Il1gKTtpZighTyl7RC5yZW5kZXJpbmc9ITE7cmV0dXJufWxldCBaPWF3YWl0IHRoaXMucGRmRG9jdW1lbnQuZ2V0UGFnZShXKSxZPXRoaXMuY29tcHV0ZVZpZXdwb3J0KFopLG9lPXdpbmRvdy5kZXZpY2VQaXhlbFJhdGlvfHwxO08ud2lkdGg9TWF0aC5mbG9vcihZLndpZHRoKm9lKSxPLmhlaWdodD1NYXRoLmZsb29yKFkuaGVpZ2h0Km9lKSxPLnN0eWxlLndpZHRoPWAke1kud2lkdGh9cHhgLE8uc3R5bGUuaGVpZ2h0PWAke1kuaGVpZ2h0fXB4YDtsZXQgZ2U9Ty5nZXRDb250ZXh0KCIyZCIpO2lmKCFnZSl7Wi5jbGVhbnVwPy4oKSxELnJlbmRlcmluZz0hMTtyZXR1cm59Z2Uuc2NhbGUob2Usb2UpO2xldCBiZT17Y2FudmFzQ29udGV4dDpnZSx2aWV3cG9ydDpZfSwkZT1aLnJlbmRlcihiZSk7dGhpcy5wYWdlUmVuZGVyVGFza3Muc2V0KFcsJGUpLGF3YWl0ICRlLnByb21pc2UsWi5jbGVhbnVwPy4oKSxELnJlbmRlcmVkPSEwLEQucmVuZGVyaW5nPSExLHRoaXMucGFnZVJlbmRlclRhc2tzLmRlbGV0ZShXKSxhd2FpdCB0aGlzLnJlbmRlclRleHRMYXllcihXKSx0aGlzLnJlcXVlc3RVcGRhdGUoInBhZ2VEYXRhIil9Y2F0Y2goTyl7Tz8ubmFtZSE9PSJSZW5kZXJpbmdDYW5jZWxsZWRFeGNlcHRpb24iJiZjb25zb2xlLmVycm9yKGBFcnJvciByZW5kZXJpbmcgcGFnZSAke1d9OmAsTyksRC5yZW5kZXJpbmc9ITEsdGhpcy5wYWdlUmVuZGVyVGFza3MuZGVsZXRlKFcpfX19YXN5bmMgcmVuZGVyVGV4dExheWVyKFcpe2xldCBEPXRoaXMucGFnZURhdGEuZmluZChPPT5PLnBhZ2U9PT1XKTtpZighKCFEfHxELnRleHRMYXllclJlbmRlcmVkKSl0cnl7bGV0IE89dGhpcy5zaGFkb3dSb290Py5xdWVyeVNlbGVjdG9yKGAudGV4dC1sYXllcltkYXRhLXBhZ2U9IiR7V30iXWApO2lmKCFPKXJldHVybjtPLmlubmVySFRNTD0iIjtsZXQgWj1hd2FpdCB0aGlzLnBkZkRvY3VtZW50LmdldFBhZ2UoVyksWT1hd2FpdCBaLmdldFRleHRDb250ZW50KCksb2U9dGhpcy5jb21wdXRlVmlld3BvcnQoWiksZ2U9YXdhaXQgaW1wb3J0KCJodHRwczovL2Nkbi5qc2RlbGl2ci5uZXQvbnBtL3BkZmpzLWRpc3RANC4wLjM3OS8rZXNtIik7Ty5zdHlsZS53aWR0aD1gJHtvZS53aWR0aH1weGAsTy5zdHlsZS5oZWlnaHQ9YCR7b2UuaGVpZ2h0fXB4YCxPLnN0eWxlLnNldFByb3BlcnR5KCItLXNjYWxlLWZhY3RvciIsU3RyaW5nKG9lLnNjYWxlKSk7bGV0IGJlPWdlLnJlbmRlclRleHRMYXllcih7dGV4dENvbnRlbnRTb3VyY2U6WSxjb250YWluZXI6Tyx2aWV3cG9ydDpvZX0pO3RoaXMudGV4dExheWVyUmVuZGVyVGFza3Muc2V0KFcsYmUpLGF3YWl0IGJlLnByb21pc2U7bGV0ICRlPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpOyRlLmNsYXNzTmFtZT0iZW5kT2ZDb250ZW50IixPLmFwcGVuZENoaWxkKCRlKTtsZXQgQj0hMSxQPW51bGwsSz0wLGZlPShoZSx0ZSk9PntsZXQgemU9QXJyYXkuZnJvbShPLnF1ZXJ5U2VsZWN0b3JBbGwoInNwYW4iKSk7Zm9yKGxldCBGZSBvZiB6ZSl7bGV0IFdlPUZlLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO2lmKGhlPj1XZS5sZWZ0JiZoZTw9V2UucmlnaHQmJnRlPj1XZS50b3AmJnRlPD1XZS5ib3R0b20pe2xldCB5ZT1GZS5maXJzdENoaWxkO2lmKHllJiZ5ZS5ub2RlVHlwZT09PU5vZGUuVEVYVF9OT0RFKXtsZXQgZWU9eWUudGV4dENvbnRlbnR8fCIiLGFlPVdlLndpZHRoL2VlLmxlbmd0aCx2ZT1oZS1XZS5sZWZ0LFBlPU1hdGgubWluKE1hdGgucm91bmQodmUvYWUpLGVlLmxlbmd0aCk7cmV0dXJue25vZGU6eWUsb2Zmc2V0OlBlfX19fXJldHVybiBudWxsfSxkZT0oKT0+e0ImJihCPSExLFA9bnVsbCxPLmNsYXNzTGlzdC5yZW1vdmUoInNlbGVjdGluZyIpKSxkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCJtb3VzZXVwIixkZSksZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcigibW91c2Vtb3ZlIixfZSl9LF9lPWhlPT57aWYoIUJ8fCFQKXJldHVybjtoZS5wcmV2ZW50RGVmYXVsdCgpO2xldCB0ZT1mZShoZS5jbGllbnRYLGhlLmNsaWVudFkpO2lmKHRlKXtsZXQgemU9d2luZG93LmdldFNlbGVjdGlvbigpO2lmKHplKXRyeXt6ZS5zZXRCYXNlQW5kRXh0ZW50KFAsSyx0ZS5ub2RlLHRlLm9mZnNldCl9Y2F0Y2h7fX19O08uYWRkRXZlbnRMaXN0ZW5lcigibW91c2Vkb3duIixoZT0+e2lmKGhlLmJ1dHRvbiE9PTApcmV0dXJuO2xldCB0ZT1mZShoZS5jbGllbnRYLGhlLmNsaWVudFkpO3RlJiYoaGUucHJldmVudERlZmF1bHQoKSxCPSEwLFA9dGUubm9kZSxLPXRlLm9mZnNldCxPLmNsYXNzTGlzdC5hZGQoInNlbGVjdGluZyIpLHdpbmRvdy5nZXRTZWxlY3Rpb24oKT8ucmVtb3ZlQWxsUmFuZ2VzKCksZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigibW91c2Vtb3ZlIixfZSksZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigibW91c2V1cCIsZGUpKX0pLEQudGV4dExheWVyUmVuZGVyZWQ9ITAsWi5jbGVhbnVwPy4oKSx0aGlzLnRleHRMYXllclJlbmRlclRhc2tzLmRlbGV0ZShXKX1jYXRjaChPKXtPPy5uYW1lIT09IlJlbmRlcmluZ0NhbmNlbGxlZEV4Y2VwdGlvbiImJmNvbnNvbGUuZXJyb3IoYEVycm9yIHJlbmRlcmluZyB0ZXh0IGxheWVyIGZvciBwYWdlICR7V306YCxPKSx0aGlzLnRleHRMYXllclJlbmRlclRhc2tzLmRlbGV0ZShXKX19aGFuZGxlU2Nyb2xsPSgpPT57dGhpcy5zY3JvbGxUaHJvdHRsZVRpbWVvdXQmJmNsZWFyVGltZW91dCh0aGlzLnNjcm9sbFRocm90dGxlVGltZW91dCksdGhpcy5zY3JvbGxUaHJvdHRsZVRpbWVvdXQ9d2luZG93LnNldFRpbWVvdXQoKCk9Pnt0aGlzLnVwZGF0ZUN1cnJlbnRQYWdlKCksdGhpcy5yZW5kZXJWaXNpYmxlUGFnZXMoKX0sNTApfTt1cGRhdGVDdXJyZW50UGFnZSgpe2lmKCF0aGlzLnZpZXdlck1haW4pcmV0dXJuO2xldCBXPXRoaXMudmlld2VyTWFpbi5zY3JvbGxUb3AsRD10aGlzLnZpZXdlck1haW4uY2xpZW50SGVpZ2h0LE89VytELzI7Zm9yKGxldCBaPTA7Wjx0aGlzLnBhZ2VEYXRhLmxlbmd0aDtaKyspe2xldCBZPXRoaXMuc2hhZG93Um9vdD8ucXVlcnlTZWxlY3RvcihgLnBhZ2Utd3JhcHBlcltkYXRhLXBhZ2U9IiR7WisxfSJdYCk7aWYoIVkpY29udGludWU7bGV0IG9lPVkuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCksZ2U9dGhpcy52aWV3ZXJNYWluLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLGJlPW9lLnRvcC1nZS50b3ArVywkZT1iZStvZS5oZWlnaHQ7aWYoTz49YmUmJk88PSRlKXt0aGlzLmN1cnJlbnRQYWdlIT09WisxJiYodGhpcy5jdXJyZW50UGFnZT1aKzEsdGhpcy5zaG93U2lkZWJhciYmdGhpcy5zY3JvbGxUaHVtYm5haWxJbnRvVmlldyhaKzEpKTticmVha319fXNjcm9sbFRodW1ibmFpbEludG9WaWV3KFcpe2xldCBEPXRoaXMuc2hhZG93Um9vdD8ucXVlcnlTZWxlY3RvcihgLnRodW1ibmFpbFtkYXRhLXBhZ2U9IiR7V30iXWApLE89dGhpcy5zaGFkb3dSb290Py5xdWVyeVNlbGVjdG9yKCIuc2lkZWJhci1jb250ZW50Iik7aWYoRCYmTyl7bGV0IFo9RC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKSxZPU8uZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCksb2U9Wi50b3A8WS50b3AsZ2U9Wi5ib3R0b20+WS5ib3R0b207aWYob2V8fGdlKXtsZXQgYmU9RC5vZmZzZXRUb3AsJGU9RC5vZmZzZXRIZWlnaHQsQj1PLmNsaWVudEhlaWdodCxQPWJlLUIvMiskZS8yO08uc2Nyb2xsVG8oe3RvcDpNYXRoLm1heCgwLFApLGJlaGF2aW9yOiJzbW9vdGgifSl9fX1hc3luYyBzY3JvbGxUb1BhZ2UoVyxEPSEwKXthd2FpdCB0aGlzLnVwZGF0ZUNvbXBsZXRlO2xldCBPPXRoaXMuc2hhZG93Um9vdD8ucXVlcnlTZWxlY3RvcihgLnBhZ2Utd3JhcHBlcltkYXRhLXBhZ2U9IiR7V30iXWApO2lmKE8mJnRoaXMudmlld2VyTWFpbil7bGV0IFo9Ty5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKSxZPXRoaXMudmlld2VyTWFpbi5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKSxnZT10aGlzLnZpZXdlck1haW4uc2Nyb2xsVG9wKyhaLnRvcC1ZLnRvcCktdGhpcy52aWV3ZXJNYWluLmNsaWVudFRvcDtEP3RoaXMudmlld2VyTWFpbi5zY3JvbGxUbyh7dG9wOmdlLGJlaGF2aW9yOiJzbW9vdGgifSk6dGhpcy52aWV3ZXJNYWluLnNjcm9sbFRvcD1nZSx0aGlzLmN1cnJlbnRQYWdlPVcsdGhpcy5zaG93U2lkZWJhciYmdGhpcy5zY3JvbGxUaHVtYm5haWxJbnRvVmlldyhXKSxhd2FpdCB0aGlzLnJlbmRlclBhZ2VJZk5lZWRlZChXKX19YXN5bmMgcmVuZGVyVGh1bWJuYWlscygpe2lmKCF0aGlzLnBkZkRvY3VtZW50fHx0aGlzLnRodW1ibmFpbERhdGEubGVuZ3RoPjAmJnRoaXMudGh1bWJuYWlsRGF0YS5ldmVyeShEPT5ELnJlbmRlcmVkKXx8dGhpcy5yZW5kZXJBYm9ydENvbnRyb2xsZXI/LnNpZ25hbC5hYm9ydGVkKXJldHVybjtsZXQgVz10aGlzLnJlbmRlckFib3J0Q29udHJvbGxlcj8uc2lnbmFsO3RoaXMucmVuZGVyU3RhdGU9InJlbmRlcmluZy10aHVtYnMiO2ZvcihsZXQgRCBvZiB0aGlzLnRodW1ibmFpbFJlbmRlclRhc2tzKXRyeXtELmNhbmNlbCgpfWNhdGNoe310aGlzLnRodW1ibmFpbFJlbmRlclRhc2tzPVtdO3RyeXthd2FpdCB0aGlzLnVwZGF0ZUNvbXBsZXRlO2xldCBEPXRoaXMuc2hhZG93Um9vdD8ucXVlcnlTZWxlY3RvckFsbCgiLnRodW1ibmFpbCIpLE89dGhpcy5zaGFkb3dSb290Py5xdWVyeVNlbGVjdG9yQWxsKCIudGh1bWJuYWlsLWNhbnZhcyIpLFo9dGhpcy5zaGFkb3dSb290Py5xdWVyeVNlbGVjdG9yKCIuc2lkZWJhci1jb250ZW50IiksWT13aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZShaKSxnZT0yMDAtKHBhcnNlRmxvYXQoWS5wYWRkaW5nTGVmdCkrcGFyc2VGbG9hdChZLnBhZGRpbmdSaWdodCkpLTQ7Zm9yKGxldCBiZSBvZiBBcnJheS5mcm9tKE8pKXtsZXQgJGU9YmUuZ2V0Q29udGV4dCgiMmQiKTskZSYmJGUuY2xlYXJSZWN0KDAsMCxiZS53aWR0aCxiZS5oZWlnaHQpfWZvcihsZXQgYmU9MDtiZTxPLmxlbmd0aDtiZSsrKXtpZihXPy5hYm9ydGVkKXJldHVybjtsZXQgJGU9T1tiZV0sQj1EW2JlXSxQPXBhcnNlSW50KCRlLmRhdGFzZXQucGFnZXx8IjEiKSxLPWF3YWl0IHRoaXMucGRmRG9jdW1lbnQuZ2V0UGFnZShQKSxmZT1LLmdldFZpZXdwb3J0KHtzY2FsZToxfSksZGU9Z2UvZmUud2lkdGgsX2U9Sy5nZXRWaWV3cG9ydCh7c2NhbGU6ZGV9KSxoZT13aW5kb3cuZGV2aWNlUGl4ZWxSYXRpb3x8MTskZS53aWR0aD1NYXRoLmZsb29yKF9lLndpZHRoKmhlKSwkZS5oZWlnaHQ9TWF0aC5mbG9vcihfZS5oZWlnaHQqaGUpLCRlLnN0eWxlLndpZHRoPWAke19lLndpZHRofXB4YCwkZS5zdHlsZS5oZWlnaHQ9YCR7X2UuaGVpZ2h0fXB4YCxCLnN0eWxlLmhlaWdodD1gJHtfZS5oZWlnaHR9cHhgLEIuc3R5bGUubWluSGVpZ2h0PWAke19lLmhlaWdodH1weGA7bGV0IHRlPSRlLmdldENvbnRleHQoIjJkIik7aWYoIXRlKXtLLmNsZWFudXA/LigpO2NvbnRpbnVlfXRlLnNjYWxlKGhlLGhlKTtsZXQgemU9e2NhbnZhc0NvbnRleHQ6dGUsdmlld3BvcnQ6X2V9LEZlPUsucmVuZGVyKHplKTt0aGlzLnRodW1ibmFpbFJlbmRlclRhc2tzLnB1c2goRmUpLGF3YWl0IEZlLnByb21pc2UsSy5jbGVhbnVwPy4oKTtsZXQgV2U9dGhpcy50aHVtYm5haWxEYXRhLmZpbmQoeWU9PnllLnBhZ2U9PT1QKTtXZSYmKFdlLnJlbmRlcmVkPSEwKX10aGlzLnJlcXVlc3RVcGRhdGUoInRodW1ibmFpbERhdGEiKX1jYXRjaChEKXtEPy5uYW1lIT09IlJlbmRlcmluZ0NhbmNlbGxlZEV4Y2VwdGlvbiImJmNvbnNvbGUuZXJyb3IoIkVycm9yIHJlbmRlcmluZyB0aHVtYm5haWxzOiIsRCl9ZmluYWxseXt0aGlzLnRodW1ibmFpbFJlbmRlclRhc2tzPVtdfX1wcmV2aW91c1BhZ2UoKXt0aGlzLmN1cnJlbnRQYWdlPjEmJnRoaXMuc2Nyb2xsVG9QYWdlKHRoaXMuY3VycmVudFBhZ2UtMSl9bmV4dFBhZ2UoKXt0aGlzLmN1cnJlbnRQYWdlPHRoaXMudG90YWxQYWdlcyYmdGhpcy5zY3JvbGxUb1BhZ2UodGhpcy5jdXJyZW50UGFnZSsxKX1oYW5kbGVUaHVtYm5haWxDbGljayhXKXtsZXQgRD1XLmN1cnJlbnRUYXJnZXQsTz1wYXJzZUludChELmRhdGFzZXQucGFnZXx8IjEiKTt0aGlzLnNjcm9sbFRvUGFnZShPKX1oYW5kbGVQYWdlSW5wdXQoVyl7bGV0IEQ9Vy50YXJnZXQsTz1wYXJzZUludChELnZhbHVlKTt0aGlzLnNjcm9sbFRvUGFnZShPKX16b29tSW4oKXtsZXQgVz1NYXRoLm1pbih0aGlzLk1BTlVBTF9NQVhfWk9PTSx0aGlzLmN1cnJlbnRab29tKjEuMik7dGhpcy52aWV3cG9ydE1vZGU9ImN1c3RvbSIsVyE9PXRoaXMuY3VycmVudFpvb20mJih0aGlzLmN1cnJlbnRab29tPVcsdGhpcy5yZVJlbmRlckFsbFBhZ2VzKCkpfXpvb21PdXQoKXtsZXQgVz1NYXRoLm1heCh0aGlzLk1BTlVBTF9NSU5fWk9PTSx0aGlzLmN1cnJlbnRab29tLzEuMik7dGhpcy52aWV3cG9ydE1vZGU9ImN1c3RvbSIsVyE9PXRoaXMuY3VycmVudFpvb20mJih0aGlzLmN1cnJlbnRab29tPVcsdGhpcy5yZVJlbmRlckFsbFBhZ2VzKCkpfXJlc2V0Wm9vbSgpe3RoaXMudmlld3BvcnRNb2RlPSJjdXN0b20iLHRoaXMuY3VycmVudFpvb209MSx0aGlzLnJlUmVuZGVyQWxsUGFnZXMoKX1maXRUb1BhZ2UoKXt0aGlzLnZpZXdwb3J0TW9kZT0icGFnZS1maXQiLHRoaXMucmVSZW5kZXJBbGxQYWdlcygpfWZpdFRvV2lkdGgoKXt0aGlzLnZpZXdwb3J0TW9kZT0icGFnZS13aWR0aCIsdGhpcy5yZVJlbmRlckFsbFBhZ2VzKCl9cmVSZW5kZXJBbGxQYWdlcygpe3RoaXMucGFnZURhdGEuZm9yRWFjaChXPT57Vy5yZW5kZXJlZD0hMSxXLnJlbmRlcmluZz0hMSxXLnRleHRMYXllclJlbmRlcmVkPSExfSksdGhpcy5wYWdlUmVuZGVyVGFza3MuZm9yRWFjaChXPT57dHJ5e1cuY2FuY2VsKCl9Y2F0Y2h7fX0pLHRoaXMucGFnZVJlbmRlclRhc2tzLmNsZWFyKCksdGhpcy50ZXh0TGF5ZXJSZW5kZXJUYXNrcy5mb3JFYWNoKFc9Pnt0cnl7Vy5jYW5jZWw/LigpfWNhdGNoe319KSx0aGlzLnRleHRMYXllclJlbmRlclRhc2tzLmNsZWFyKCksdGhpcy5yZXF1ZXN0VXBkYXRlKCksdGhpcy51cGRhdGVDb21wbGV0ZS50aGVuKCgpPT57dGhpcy5yZW5kZXJWaXNpYmxlUGFnZXMoKX0pfWFzeW5jIGRvd25sb2FkUGRmKCl7aWYodGhpcy5wZGZEb2N1bWVudCl0cnl7bGV0IFc9YXdhaXQgdGhpcy5wZGZEb2N1bWVudC5nZXREYXRhKCksRD1uZXcgQmxvYihbVy5idWZmZXJdLHt0eXBlOiJhcHBsaWNhdGlvbi9wZGYifSksTz1VUkwuY3JlYXRlT2JqZWN0VVJMKEQpLFo9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiYSIpO1ouaHJlZj1PLFouZG93bmxvYWQ9dGhpcy5wZGZVcmwmJnRoaXMucGRmVXJsLnNwbGl0KCIvIikucG9wKCl8fCJkb2N1bWVudC5wZGYiLFouY2xpY2soKSxzZXRUaW1lb3V0KCgpPT5VUkwucmV2b2tlT2JqZWN0VVJMKE8pLDFlMyl9Y2F0Y2goVyl7Y29uc29sZS5lcnJvcigiRXJyb3IgZG93bmxvYWRpbmcgUERGOiIsVyl9fWFzeW5jIHByaW50UGRmKCl7aWYodGhpcy5wZGZEb2N1bWVudCl0cnl7bGV0IFc9YXdhaXQgdGhpcy5wZGZEb2N1bWVudC5nZXREYXRhKCksRD1uZXcgQmxvYihbVy5idWZmZXJdLHt0eXBlOiJhcHBsaWNhdGlvbi9wZGYifSksTz1VUkwuY3JlYXRlT2JqZWN0VVJMKEQpLFo9YAogICAgICAgIDwhRE9DVFlQRSBodG1sPgogICAgICAgIDxodG1sPgogICAgICAgIDxoZWFkPgogICAgICAgICAgPHRpdGxlPlByaW50IFBERjwvdGl0bGU+CiAgICAgICAgICA8c3R5bGU+CiAgICAgICAgICAgICogeyBtYXJnaW46IDA7IHBhZGRpbmc6IDA7IH0KICAgICAgICAgICAgaHRtbCwgYm9keSB7IHdpZHRoOiAxMDAlOyBoZWlnaHQ6IDEwMCU7IG92ZXJmbG93OiBoaWRkZW47IH0KICAgICAgICAgICAgaWZyYW1lIHsgd2lkdGg6IDEwMCU7IGhlaWdodDogMTAwJTsgYm9yZGVyOiBub25lOyB9CiAgICAgICAgICAgIEBtZWRpYSBwcmludCB7CiAgICAgICAgICAgICAgaHRtbCwgYm9keSwgaWZyYW1lIHsgd2lkdGg6IDEwMCU7IGhlaWdodDogMTAwJTsgfQogICAgICAgICAgICB9CiAgICAgICAgICA8L3N0eWxlPgogICAgICAgIDwvaGVhZD4KICAgICAgICA8Ym9keT4KICAgICAgICAgIDxpZnJhbWUgc3JjPSIke099IiB0eXBlPSJhcHBsaWNhdGlvbi9wZGYiPjwvaWZyYW1lPgogICAgICAgICAgPHNjcmlwdD4KICAgICAgICAgICAgd2luZG93Lm9ubG9hZCA9IGZ1bmN0aW9uKCkgewogICAgICAgICAgICAgIHNldFRpbWVvdXQoZnVuY3Rpb24oKSB7CiAgICAgICAgICAgICAgICB3aW5kb3cuZm9jdXMoKTsKICAgICAgICAgICAgICAgIHdpbmRvdy5wcmludCgpOwogICAgICAgICAgICAgIH0sIDUwMCk7CiAgICAgICAgICAgIH07CiAgICAgICAgICAgIHdpbmRvdy5vbmFmdGVycHJpbnQgPSBmdW5jdGlvbigpIHsKICAgICAgICAgICAgICB3aW5kb3cuY2xvc2UoKTsKICAgICAgICAgICAgfTsKICAgICAgICAgICAgLy8gU2FmZXR5IGNsb3NlIGFmdGVyIDIgbWludXRlcwogICAgICAgICAgICBzZXRUaW1lb3V0KGZ1bmN0aW9uKCkgeyB3aW5kb3cuY2xvc2UoKTsgfSwgMTIwMDAwKTsKICAgICAgICAgIDxcL3NjcmlwdD4KICAgICAgICA8L2JvZHk+CiAgICAgICAgPC9odG1sPgogICAgICBgLFk9bmV3IEJsb2IoW1pdLHt0eXBlOiJ0ZXh0L2h0bWwifSksb2U9VVJMLmNyZWF0ZU9iamVjdFVSTChZKSxnZT13aW5kb3cub3BlbihvZSwiX2JsYW5rIiwid2lkdGg9ODAwLGhlaWdodD02MDAiKTtpZihnZSl7bGV0IGJlPXNldEludGVydmFsKCgpPT57Z2UuY2xvc2VkJiYoY2xlYXJJbnRlcnZhbChiZSksVVJMLnJldm9rZU9iamVjdFVSTChPKSxVUkwucmV2b2tlT2JqZWN0VVJMKG9lKSl9LDUwMCk7c2V0VGltZW91dCgoKT0+e2NsZWFySW50ZXJ2YWwoYmUpLFVSTC5yZXZva2VPYmplY3RVUkwoTyksVVJMLnJldm9rZU9iamVjdFVSTChvZSl9LDEyZTQpfWVsc2Ugd2luZG93Lm9wZW4oTywiX2JsYW5rIiksc2V0VGltZW91dCgoKT0+VVJMLnJldm9rZU9iamVjdFVSTChPKSw2ZTQpLFVSTC5yZXZva2VPYmplY3RVUkwob2UpfWNhdGNoKFcpe2NvbnNvbGUuZXJyb3IoIkVycm9yIHByaW50aW5nIFBERjoiLFcpfX1nZXRDb250ZXh0TWVudUl0ZW1zKCl7bGV0IFc9W10sTz13aW5kb3cuZ2V0U2VsZWN0aW9uKCk/LnRvU3RyaW5nKCl8fCIiO3JldHVybiBPJiYoVy5wdXNoKHtuYW1lOiJDb3B5IixpY29uTmFtZToibHVjaWRlOkNvcHkiLGFjdGlvbjphc3luYygpPT57YXdhaXQgbmF2aWdhdG9yLmNsaXBib2FyZC53cml0ZVRleHQoTyl9fSksVy5wdXNoKHtkaXZpZGVyOiEwfSkpLFcucHVzaCh7bmFtZToiRG93bmxvYWQgUERGIixpY29uTmFtZToibHVjaWRlOkRvd25sb2FkIixhY3Rpb246YXN5bmMoKT0+e2F3YWl0IHRoaXMuZG93bmxvYWRQZGYoKX19LHtuYW1lOiJQcmludCBQREYiLGljb25OYW1lOiJsdWNpZGU6UHJpbnRlciIsYWN0aW9uOmFzeW5jKCk9Pnthd2FpdCB0aGlzLnByaW50UGRmKCl9fSksV31nZXQgY2FuWm9vbUluKCl7cmV0dXJuIHRoaXMudmlld3BvcnRNb2RlIT09ImN1c3RvbSJ8fHRoaXMuY3VycmVudFpvb208dGhpcy5NQU5VQUxfTUFYX1pPT019Z2V0IGNhblpvb21PdXQoKXtyZXR1cm4gdGhpcy52aWV3cG9ydE1vZGUhPT0iY3VzdG9tInx8dGhpcy5jdXJyZW50Wm9vbT50aGlzLk1BTlVBTF9NSU5fWk9PTX1lbnN1cmVWaWV3ZXJSZWZzKCl7dGhpcy52aWV3ZXJNYWlufHwodGhpcy52aWV3ZXJNYWluPXRoaXMuc2hhZG93Um9vdD8ucXVlcnlTZWxlY3RvcigiLnZpZXdlci1tYWluIikpLHRoaXMudmlld2VyTWFpbiYmIXRoaXMucmVzaXplT2JzZXJ2ZXImJih0aGlzLnJlc2l6ZU9ic2VydmVyPW5ldyBSZXNpemVPYnNlcnZlcigoKT0+e3RoaXMubWVhc3VyZVZpZXdwb3J0RGltZW5zaW9ucygpLHRoaXMucGRmRG9jdW1lbnQmJnRoaXMucmVSZW5kZXJBbGxQYWdlcygpfSksdGhpcy5yZXNpemVPYnNlcnZlci5vYnNlcnZlKHRoaXMudmlld2VyTWFpbiksdGhpcy5tZWFzdXJlVmlld3BvcnREaW1lbnNpb25zKCksdGhpcy52aWV3ZXJNYWluLmFkZEV2ZW50TGlzdGVuZXIoIndoZWVsIixXPT57bGV0IEQ9Vy5jdXJyZW50VGFyZ2V0LE89RC5zY3JvbGxUb3AsWj1ELnNjcm9sbEhlaWdodCxZPUQuY2xpZW50SGVpZ2h0LG9lPVcuZGVsdGFZLGdlPU89PT0wLGJlPU1hdGguYWJzKE8rWS1aKTwxO29lPDAmJiFnZXx8b2U+MCYmIWJlP1cuc3RvcFByb3BhZ2F0aW9uKCk6KG9lPDAmJmdlfHxvZT4wJiZiZSkmJihXLnByZXZlbnREZWZhdWx0KCksVy5zdG9wUHJvcGFnYXRpb24oKSl9LHtwYXNzaXZlOiExfSkpfW1lYXN1cmVWaWV3cG9ydERpbWVuc2lvbnMoKXtpZighdGhpcy52aWV3ZXJNYWluKXt0aGlzLnZpZXdwb3J0RGltZW5zaW9ucz17d2lkdGg6MCxoZWlnaHQ6MH07cmV0dXJufWxldCBXPWdldENvbXB1dGVkU3R5bGUodGhpcy52aWV3ZXJNYWluKSxEPXBhcnNlRmxvYXQoVy5wYWRkaW5nTGVmdHx8IjAiKStwYXJzZUZsb2F0KFcucGFkZGluZ1JpZ2h0fHwiMCIpLE89cGFyc2VGbG9hdChXLnBhZGRpbmdUb3B8fCIwIikrcGFyc2VGbG9hdChXLnBhZGRpbmdCb3R0b218fCIwIiksWj1NYXRoLm1heCh0aGlzLnZpZXdlck1haW4uY2xpZW50V2lkdGgtRCwwKSxZPU1hdGgubWF4KHRoaXMudmlld2VyTWFpbi5jbGllbnRIZWlnaHQtTywwKTt0aGlzLnZpZXdwb3J0RGltZW5zaW9ucz17d2lkdGg6WixoZWlnaHQ6WX19cmVzb2x2ZUluaXRpYWxWaWV3cG9ydE1vZGUoKXt0eXBlb2YgdGhpcy5pbml0aWFsWm9vbT09Im51bWJlciI/KHRoaXMudmlld3BvcnRNb2RlPSJjdXN0b20iLHRoaXMuY3VycmVudFpvb209dGhpcy5ub3JtYWxpemVab29tKHRoaXMuaW5pdGlhbFpvb20sITApKTp0aGlzLmluaXRpYWxab29tPT09InBhZ2Utd2lkdGgiP3RoaXMudmlld3BvcnRNb2RlPSJwYWdlLXdpZHRoIjp0aGlzLmluaXRpYWxab29tPT09InBhZ2UtZml0Inx8dGhpcy5pbml0aWFsWm9vbT09PSJhdXRvIj90aGlzLnZpZXdwb3J0TW9kZT0icGFnZS1maXQiOnRoaXMudmlld3BvcnRNb2RlPSJhdXRvIix0aGlzLnZpZXdwb3J0TW9kZSE9PSJjdXN0b20iJiYodGhpcy5jdXJyZW50Wm9vbT0xKX1jb21wdXRlVmlld3BvcnQoVyl7dGhpcy5tZWFzdXJlVmlld3BvcnREaW1lbnNpb25zKCk7bGV0IEQ9Vy5nZXRWaWV3cG9ydCh7c2NhbGU6MX0pLE87c3dpdGNoKHRoaXMudmlld3BvcnRNb2RlKXtjYXNlInBhZ2Utd2lkdGgiOntPPSh0aGlzLnZpZXdwb3J0RGltZW5zaW9ucy53aWR0aHx8RC53aWR0aCkvRC53aWR0aDticmVha31jYXNlInBhZ2UtZml0IjpjYXNlImF1dG8iOntsZXQgWT10aGlzLnZpZXdwb3J0RGltZW5zaW9ucy53aWR0aHx8RC53aWR0aCxvZT10aGlzLnZpZXdwb3J0RGltZW5zaW9ucy5oZWlnaHR8fEQuaGVpZ2h0LGdlPVkvRC53aWR0aCxiZT1vZS9ELmhlaWdodDtPPU1hdGgubWluKGdlLGJlKTticmVha31kZWZhdWx0OntPPXRoaXMubm9ybWFsaXplWm9vbSh0aGlzLmN1cnJlbnRab29tfHwxLCExKTticmVha319KCFOdW1iZXIuaXNGaW5pdGUoTyl8fE88PTApJiYoTz0xKTtsZXQgWj10aGlzLnZpZXdwb3J0TW9kZT09PSJjdXN0b20iP3RoaXMubm9ybWFsaXplWm9vbShPLCEwKTp0aGlzLm5vcm1hbGl6ZVpvb20oTywhMSk7cmV0dXJuIHRoaXMudmlld3BvcnRNb2RlIT09ImN1c3RvbSImJih0aGlzLmN1cnJlbnRab29tPVopLFcuZ2V0Vmlld3BvcnQoe3NjYWxlOlp9KX1ub3JtYWxpemVab29tKFcsRCl7bGV0IE89RD90aGlzLk1BTlVBTF9NSU5fWk9PTTp0aGlzLkFCU09MVVRFX01JTl9aT09NLFo9RD90aGlzLk1BTlVBTF9NQVhfWk9PTTp0aGlzLkFCU09MVVRFX01BWF9aT09NO3JldHVybiBNYXRoLm1pbihNYXRoLm1heChXLE8pLFopfWFzeW5jIGNsZWFudXBEb2N1bWVudCgpe2lmKHRoaXMucmVuZGVyQWJvcnRDb250cm9sbGVyJiYodGhpcy5yZW5kZXJBYm9ydENvbnRyb2xsZXIuYWJvcnQoKSx0aGlzLnJlbmRlckFib3J0Q29udHJvbGxlcj1udWxsKSx0aGlzLmN1cnJlbnRSZW5kZXJQcm9taXNlKXt0cnl7YXdhaXQgdGhpcy5jdXJyZW50UmVuZGVyUHJvbWlzZX1jYXRjaHt9dGhpcy5jdXJyZW50UmVuZGVyUHJvbWlzZT1udWxsfXRoaXMuY3VycmVudFJlbmRlclRhc2s9bnVsbCx0aGlzLnBhZ2VSZW5kZXJUYXNrcy5mb3JFYWNoKFc9Pnt0cnl7Vy5jYW5jZWwoKX1jYXRjaHt9fSksdGhpcy5wYWdlUmVuZGVyVGFza3MuY2xlYXIoKSx0aGlzLnRleHRMYXllclJlbmRlclRhc2tzLmZvckVhY2goVz0+e3RyeXtXLmNhbmNlbD8uKCl9Y2F0Y2h7fX0pLHRoaXMudGV4dExheWVyUmVuZGVyVGFza3MuY2xlYXIoKTtmb3IobGV0IFcgb2YgdGhpcy50aHVtYm5haWxSZW5kZXJUYXNrc3x8W10pdHJ5e1cuY2FuY2VsKCl9Y2F0Y2h7fWlmKHRoaXMudGh1bWJuYWlsUmVuZGVyVGFza3M9W10sdGhpcy5yZW5kZXJTdGF0ZT0iaWRsZSIsdGhpcy5wYWdlUmVuZGVyaW5nPSExLHRoaXMucGFnZU51bVBlbmRpbmc9bnVsbCx0aGlzLnRodW1ibmFpbERhdGE9W10sdGhpcy5wYWdlRGF0YT1bXSx0aGlzLmRvY3VtZW50SWQ9IiIsdGhpcy5jYW52YXMmJnRoaXMuY3R4JiZ0aGlzLmN0eC5jbGVhclJlY3QoMCwwLHRoaXMuY2FudmFzLndpZHRoLHRoaXMuY2FudmFzLmhlaWdodCksdGhpcy5wZGZEb2N1bWVudCl0cnl7dGhpcy5wZGZEb2N1bWVudC5kZXN0cm95KCl9Y2F0Y2goVyl7Y29uc29sZS5lcnJvcigiRXJyb3IgZGVzdHJveWluZyBQREYgZG9jdW1lbnQ6IixXKX10aGlzLnBkZkRvY3VtZW50PW51bGwsdGhpcy5yZXF1ZXN0VXBkYXRlKCl9c3RhdGlje2sxKGksYSl9fTtyZXR1cm4ga2U9aX0pKCl9KTt2YXIgWmJ0LFhidD1iKCgpPT57dWUoKTtaYnQ9KCk9PndgCiAgPHN0eWxlPgogICAgLmRlbW8tY29udGFpbmVyIHsKICAgICAgcGFkZGluZzogNDhweDsKICAgICAgYmFja2dyb3VuZDogJHtwLmJkVGhlbWUoIiNmOGY5ZmEiLCIjMGEwYTBhIil9OwogICAgICBkaXNwbGF5OiBmbGV4OwogICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICBnYXA6IDQwcHg7CiAgICB9CgogICAgLnNlY3Rpb24gewogICAgICBtYXgtd2lkdGg6IDkwMHB4OwogICAgICB3aWR0aDogMTAwJTsKICAgICAgbWFyZ2luOiAwIGF1dG87CiAgICB9CgogICAgLnNlY3Rpb24tdGl0bGUgewogICAgICBmb250LXNpemU6IDE4cHg7CiAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7CiAgICAgIG1hcmdpbi1ib3R0b206IDhweDsKICAgICAgY29sb3I6ICR7cC5iZFRoZW1lKCIjMDkwOTBiIiwiI2ZhZmFmYSIpfTsKICAgIH0KCiAgICAuc2VjdGlvbi1kZXNjcmlwdGlvbiB7CiAgICAgIGZvbnQtc2l6ZTogMTRweDsKICAgICAgY29sb3I6ICR7cC5iZFRoZW1lKCIjNzE3MTdhIiwiI2ExYTFhYSIpfTsKICAgICAgbWFyZ2luLWJvdHRvbTogMTZweDsKICAgIH0KCiAgICAucHJldmlldy1pbWFnZSB7CiAgICAgIGhlaWdodDogNDAwcHg7CiAgICB9CgogICAgLnByZXZpZXctcGRmIHsKICAgICAgaGVpZ2h0OiA2MDBweDsKICAgIH0KICA8L3N0eWxlPgoKICA8ZGl2IGNsYXNzPSJkZW1vLWNvbnRhaW5lciI+CiAgICA8ZGl2IGNsYXNzPSJzZWN0aW9uIj4KICAgICAgPGRpdiBjbGFzcz0ic2VjdGlvbi10aXRsZSI+SW1hZ2UgUHJldmlldyAoVVJMKTwvZGl2PgogICAgICA8ZGl2IGNsYXNzPSJzZWN0aW9uLWRlc2NyaXB0aW9uIj5BdXRvLWRldGVjdHMgaW1hZ2UgZnJvbSBVUkwgZXh0ZW5zaW9uIGFuZCByZW5kZXJzIHdpdGggdGhlIGltYWdlIHZpZXdlci48L2Rpdj4KICAgICAgPGRlZXMtcHJldmlldwogICAgICAgIGNsYXNzPSJwcmV2aWV3LWltYWdlIgogICAgICAgIHVybD0iaHR0cHM6Ly9pbWFnZXMudW5zcGxhc2guY29tL3Bob3RvLTE1MDY3NDQwMzgxMzYtNDYyNzM4MzRiM2ZiP3c9MTIwMCIKICAgICAgICBmaWxlbmFtZT0ibGFuZHNjYXBlLmpwZyIKICAgICAgPjwvZGVlcy1wcmV2aWV3PgogICAgPC9kaXY+CgogICAgPGRpdiBjbGFzcz0ic2VjdGlvbiI+CiAgICAgIDxkaXYgY2xhc3M9InNlY3Rpb24tdGl0bGUiPlBERiBQcmV2aWV3IChVUkwpPC9kaXY+CiAgICAgIDxkaXYgY2xhc3M9InNlY3Rpb24tZGVzY3JpcHRpb24iPkF1dG8tZGV0ZWN0cyBQREYgYW5kIGRpc3BsYXlzIHdpdGggdGhlIFBERiB2aWV3ZXIgaW5jbHVkaW5nIHRvb2xiYXIuPC9kaXY+CiAgICAgIDxkZWVzLXByZXZpZXcKICAgICAgICBjbGFzcz0icHJldmlldy1wZGYiCiAgICAgICAgdXJsPSJodHRwczovL3Jhdy5naXRodWJ1c2VyY29udGVudC5jb20vbW96aWxsYS9wZGYuanMvYmEyZWRlYWUvd2ViL2NvbXByZXNzZWQudHJhY2Vtb25rZXktcGxkaS0wOS5wZGYiCiAgICAgICAgZmlsZW5hbWU9InJlc2VhcmNoLXBhcGVyLnBkZiIKICAgICAgPjwvZGVlcy1wcmV2aWV3PgogICAgPC9kaXY+CgogICAgPGRpdiBjbGFzcz0ic2VjdGlvbiI+CiAgICAgIDxkaXYgY2xhc3M9InNlY3Rpb24tdGl0bGUiPkNvZGUgUHJldmlldyAoVGV4dCBDb250ZW50KTwvZGl2PgogICAgICA8ZGl2IGNsYXNzPSJzZWN0aW9uLWRlc2NyaXB0aW9uIj5UeXBlU2NyaXB0IGNvZGUgZGlzcGxheWVkIHdpdGggc3ludGF4IGhpZ2hsaWdodGluZyB2aWEgdGhlIGNvZGVib3guPC9kaXY+CiAgICAgIDxkZWVzLXByZXZpZXcKICAgICAgICBmaWxlbmFtZT0iZXhhbXBsZS50cyIKICAgICAgICBsYW5ndWFnZT0idHlwZXNjcmlwdCIKICAgICAgICAudGV4dENvbnRlbnQ9JHtgaW1wb3J0IHsgaHRtbCwgY3NzIH0gZnJvbSAnbGl0JzsKCmV4cG9ydCBjbGFzcyBNeUNvbXBvbmVudCBleHRlbmRzIExpdEVsZW1lbnQgewogIHN0YXRpYyBzdHlsZXMgPSBjc3NcYAogICAgOmhvc3QgewogICAgICBkaXNwbGF5OiBibG9jazsKICAgICAgcGFkZGluZzogMTZweDsKICAgIH0KICBcYDsKCiAgcmVuZGVyKCkgewogICAgcmV0dXJuIGh0bWxcYDxoMT5IZWxsbyBXb3JsZDwvaDE+XGA7CiAgfQp9YH0KICAgICAgPjwvZGVlcy1wcmV2aWV3PgogICAgPC9kaXY+CgogICAgPGRpdiBjbGFzcz0ic2VjdGlvbiI+CiAgICAgIDxkaXYgY2xhc3M9InNlY3Rpb24tdGl0bGUiPkF1ZGlvIFByZXZpZXcgKFVSTCk8L2Rpdj4KICAgICAgPGRpdiBjbGFzcz0ic2VjdGlvbi1kZXNjcmlwdGlvbiI+QXVkaW8gZmlsZSBkZXRlY3RlZCBieSBleHRlbnNpb24sIHNob3duIHdpdGggd2F2ZWZvcm0gcGxheWVyLjwvZGl2PgogICAgICA8ZGVlcy1wcmV2aWV3CiAgICAgICAgdXJsPSJodHRwczovL3d3dy5zb3VuZGhlbGl4LmNvbS9leGFtcGxlcy9tcDMvU291bmRIZWxpeC1Tb25nLTEubXAzIgogICAgICAgIGZpbGVuYW1lPSJzb25nLm1wMyIKICAgICAgPjwvZGVlcy1wcmV2aWV3PgogICAgPC9kaXY+CgogICAgPGRpdiBjbGFzcz0ic2VjdGlvbiI+CiAgICAgIDxkaXYgY2xhc3M9InNlY3Rpb24tdGl0bGUiPlZpZGVvIFByZXZpZXcgKFVSTCk8L2Rpdj4KICAgICAgPGRpdiBjbGFzcz0ic2VjdGlvbi1kZXNjcmlwdGlvbiI+VmlkZW8gZmlsZSBkZXRlY3RlZCBmcm9tIFVSTCwgcmVuZGVyZWQgd2l0aCBjdXN0b20gdmlkZW8gY29udHJvbHMuPC9kaXY+CiAgICAgIDxkZWVzLXByZXZpZXcKICAgICAgICB1cmw9Imh0dHBzOi8vY29tbW9uZGF0YXN0b3JhZ2UuZ29vZ2xlYXBpcy5jb20vZ3R2LXZpZGVvcy1idWNrZXQvc2FtcGxlL0JpZ0J1Y2tCdW5ueS5tcDQiCiAgICAgICAgZmlsZW5hbWU9ImJpZy1idWNrLWJ1bm55Lm1wNCIKICAgICAgPjwvZGVlcy1wcmV2aWV3PgogICAgPC9kaXY+CgogICAgPGRpdiBjbGFzcz0ic2VjdGlvbiI+CiAgICAgIDxkaXYgY2xhc3M9InNlY3Rpb24tdGl0bGUiPkV4cGxpY2l0IFR5cGUgT3ZlcnJpZGU8L2Rpdj4KICAgICAgPGRpdiBjbGFzcz0ic2VjdGlvbi1kZXNjcmlwdGlvbiI+Rm9yY2UgY29udGVudCB0eXBlIHRvICd0ZXh0JyBldmVuIHRob3VnaCB0aGUgVVJMIGhhcyBubyBleHRlbnNpb24uPC9kaXY+CiAgICAgIDxkZWVzLXByZXZpZXcKICAgICAgICBjb250ZW50VHlwZT0idGV4dCIKICAgICAgICAudGV4dENvbnRlbnQ9JHtgVGhpcyBpcyBwbGFpbiB0ZXh0IGNvbnRlbnQuCkl0IHByZXNlcnZlcyB3aGl0ZXNwYWNlIGFuZCBsaW5lIGJyZWFrcy4KClVzZWZ1bCBmb3IgbG9nIGZpbGVzLCBSRUFETUVzLCBldGMuYH0KICAgICAgICBmaWxlbmFtZT0ibm90ZXMudHh0IgogICAgICA+PC9kZWVzLXByZXZpZXc+CiAgICA8L2Rpdj4KCiAgICA8ZGl2IGNsYXNzPSJzZWN0aW9uIj4KICAgICAgPGRpdiBjbGFzcz0ic2VjdGlvbi10aXRsZSI+VW5rbm93biBUeXBlPC9kaXY+CiAgICAgIDxkaXYgY2xhc3M9InNlY3Rpb24tZGVzY3JpcHRpb24iPldoZW4gY29udGVudCB0eXBlIGNhbm5vdCBiZSBkZXRlY3RlZCwgc2hvd3MgYSBwbGFjZWhvbGRlci48L2Rpdj4KICAgICAgPGRlZXMtcHJldmlldwogICAgICAgIGZpbGVuYW1lPSJkYXRhLmJpbiIKICAgICAgICBjb250ZW50VHlwZT0idW5rbm93biIKICAgICAgPjwvZGVlcy1wcmV2aWV3PgogICAgPC9kaXY+CiAgPC9kaXY+CmB9KTt2YXIgRDIsSHQsS2J0LHVVdCxmVXQsbVV0LFFidCxKYnQ9YigoKT0+e3VlKCk7UlYoKTtCVigpO0hWKCk7dVYoKTtxVigpO0R0KCk7WGJ0KCk7RDI9ZnVuY3Rpb24odCxlLGEsaSxyLHMpe2Z1bmN0aW9uIG4oeCl7aWYoeCE9PXZvaWQgMCYmdHlwZW9mIHghPSJmdW5jdGlvbiIpdGhyb3cgbmV3IFR5cGVFcnJvcigiRnVuY3Rpb24gZXhwZWN0ZWQiKTtyZXR1cm4geH1mb3IodmFyIG89aS5raW5kLGQ9bz09PSJnZXR0ZXIiPyJnZXQiOm89PT0ic2V0dGVyIj8ic2V0IjoidmFsdWUiLGM9IWUmJnQ/aS5zdGF0aWM/dDp0LnByb3RvdHlwZTpudWxsLGg9ZXx8KGM/T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihjLGkubmFtZSk6e30pLGwsZj0hMSxnPWEubGVuZ3RoLTE7Zz49MDtnLS0pe3ZhciB5PXt9O2Zvcih2YXIgdiBpbiBpKXlbdl09dj09PSJhY2Nlc3MiP3t9Omlbdl07Zm9yKHZhciB2IGluIGkuYWNjZXNzKXkuYWNjZXNzW3ZdPWkuYWNjZXNzW3ZdO3kuYWRkSW5pdGlhbGl6ZXI9ZnVuY3Rpb24oeCl7aWYoZil0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgYWRkIGluaXRpYWxpemVycyBhZnRlciBkZWNvcmF0aW9uIGhhcyBjb21wbGV0ZWQiKTtzLnB1c2gobih4fHxudWxsKSl9O3ZhciBtPSgwLGFbZ10pKG89PT0iYWNjZXNzb3IiP3tnZXQ6aC5nZXQsc2V0Omguc2V0fTpoW2RdLHkpO2lmKG89PT0iYWNjZXNzb3IiKXtpZihtPT09dm9pZCAwKWNvbnRpbnVlO2lmKG09PT1udWxsfHx0eXBlb2YgbSE9Im9iamVjdCIpdGhyb3cgbmV3IFR5cGVFcnJvcigiT2JqZWN0IGV4cGVjdGVkIik7KGw9bihtLmdldCkpJiYoaC5nZXQ9bCksKGw9bihtLnNldCkpJiYoaC5zZXQ9bCksKGw9bihtLmluaXQpKSYmci51bnNoaWZ0KGwpfWVsc2UobD1uKG0pKSYmKG89PT0iZmllbGQiP3IudW5zaGlmdChsKTpoW2RdPWwpfWMmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShjLGkubmFtZSxoKSxmPSEwfSxIdD1mdW5jdGlvbih0LGUsYSl7Zm9yKHZhciBpPWFyZ3VtZW50cy5sZW5ndGg+MixyPTA7cjxlLmxlbmd0aDtyKyspYT1pP2Vbcl0uY2FsbCh0LGEpOmVbcl0uY2FsbCh0KTtyZXR1cm4gaT9hOnZvaWQgMH0sS2J0PXtqcGc6ImltYWdlIixqcGVnOiJpbWFnZSIscG5nOiJpbWFnZSIsZ2lmOiJpbWFnZSIsd2VicDoiaW1hZ2UiLHN2ZzoiaW1hZ2UiLGJtcDoiaW1hZ2UiLGF2aWY6ImltYWdlIixpY286ImltYWdlIixwZGY6InBkZiIsbXAzOiJhdWRpbyIsd2F2OiJhdWRpbyIsb2dnOiJhdWRpbyIsZmxhYzoiYXVkaW8iLGFhYzoiYXVkaW8iLG00YToiYXVkaW8iLG9wdXM6ImF1ZGlvIix3ZWJhOiJhdWRpbyIsbXA0OiJ2aWRlbyIsd2VibToidmlkZW8iLG1vdjoidmlkZW8iLGF2aToidmlkZW8iLG1rdjoidmlkZW8iLG9ndjoidmlkZW8iLHRzOiJjb2RlIixqczoiY29kZSIsanN4OiJjb2RlIix0c3g6ImNvZGUiLGpzb246ImNvZGUiLGh0bWw6ImNvZGUiLGNzczoiY29kZSIsc2NzczoiY29kZSIsbGVzczoiY29kZSIscHk6ImNvZGUiLGphdmE6ImNvZGUiLGdvOiJjb2RlIixyczoiY29kZSIseWFtbDoiY29kZSIseW1sOiJjb2RlIix4bWw6ImNvZGUiLHNxbDoiY29kZSIsc2g6ImNvZGUiLGJhc2g6ImNvZGUiLHpzaDoiY29kZSIsbWQ6ImNvZGUiLGM6ImNvZGUiLGNwcDoiY29kZSIsaDoiY29kZSIsaHBwOiJjb2RlIixyYjoiY29kZSIscGhwOiJjb2RlIixzd2lmdDoiY29kZSIsa3Q6ImNvZGUiLHR4dDoidGV4dCIsbG9nOiJ0ZXh0Iixjc3Y6InRleHQiLGVudjoidGV4dCJ9LHVVdD17ImltYWdlLyI6ImltYWdlIiwiYXVkaW8vIjoiYXVkaW8iLCJ2aWRlby8iOiJ2aWRlbyIsImFwcGxpY2F0aW9uL3BkZiI6InBkZiJ9LGZVdD17dHM6InR5cGVzY3JpcHQiLHRzeDoidHlwZXNjcmlwdCIsanM6ImphdmFzY3JpcHQiLGpzeDoiamF2YXNjcmlwdCIsanNvbjoianNvbiIsaHRtbDoieG1sIix4bWw6InhtbCIsY3NzOiJjc3MiLHNjc3M6InNjc3MiLGxlc3M6Imxlc3MiLHB5OiJweXRob24iLGphdmE6ImphdmEiLGdvOiJnbyIscnM6InJ1c3QiLHlhbWw6InlhbWwiLHltbDoieWFtbCIsc3FsOiJzcWwiLHNoOiJiYXNoIixiYXNoOiJiYXNoIix6c2g6ImJhc2giLGM6ImMiLGNwcDoiY3BwIixoOiJjIixocHA6ImNwcCIscmI6InJ1YnkiLHBocDoicGhwIixzd2lmdDoic3dpZnQiLGt0OiJrb3RsaW4iLG1kOiJtYXJrZG93biJ9LG1VdD17aW1hZ2U6Imx1Y2lkZTpJbWFnZSIscGRmOiJsdWNpZGU6RmlsZVRleHQiLGF1ZGlvOiJsdWNpZGU6TXVzaWMiLHZpZGVvOiJsdWNpZGU6VmlkZW8iLGNvZGU6Imx1Y2lkZTpDb2RlIix0ZXh0OiJsdWNpZGU6RmlsZVRleHQiLHVua25vd246Imx1Y2lkZTpGaWxlIn0sUWJ0PSgoKT0+e2xldCB0PVtwZSgiZGVlcy1wcmV2aWV3IildLGUsYT1bXSxpLHI9eGUscyxuPVtdLG89W10sZCxjPVtdLGg9W10sbCxmPVtdLGc9W10seSx2PVtdLG09W10seCxNPVtdLFM9W10sRixfPVtdLGs9W10sTixMPVtdLEE9W10scSxDPVtdLHo9W10sRSxUPVtdLCQ9W10sVixSPVtdLFU9W10scmUsaj1bXSxtZT1bXSx3ZSxIPVtdLGNlPVtdLGtlLFc9W10sRD1bXSxPLFo9W10sWT1bXSxvZSxnZT1bXSxiZT1bXSwkZSxCPVtdLFA9W107dmFyIEs9Y2xhc3MgZXh0ZW5kcyBye3N0YXRpY3tpPXRoaXN9c3RhdGlje2xldCBmZT10eXBlb2YgU3ltYm9sPT0iZnVuY3Rpb24iJiZTeW1ib2wubWV0YWRhdGE/T2JqZWN0LmNyZWF0ZShyW1N5bWJvbC5tZXRhZGF0YV0/P251bGwpOnZvaWQgMDtzPVtJKCldLGQ9W0koe2F0dHJpYnV0ZTohMX0pXSxsPVtJKCldLHk9W0koKV0seD1bSSgpXSxGPVtJKCldLE49W0koKV0scT1bSSgpXSxFPVtJKHt0eXBlOkJvb2xlYW59KV0sVj1bSSh7dHlwZTpCb29sZWFufSldLHJlPVtKKCldLHdlPVtKKCldLGtlPVtKKCldLE89W0ooKV0sb2U9W0ooKV0sJGU9W0ooKV0sRDIodGhpcyxudWxsLHMse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJ1cmwiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmRlPT4idXJsImluIGRlLGdldDpkZT0+ZGUudXJsLHNldDooZGUsX2UpPT57ZGUudXJsPV9lfX0sbWV0YWRhdGE6ZmV9LG4sbyksRDIodGhpcyxudWxsLGQse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJmaWxlIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpkZT0+ImZpbGUiaW4gZGUsZ2V0OmRlPT5kZS5maWxlLHNldDooZGUsX2UpPT57ZGUuZmlsZT1fZX19LG1ldGFkYXRhOmZlfSxjLGgpLEQyKHRoaXMsbnVsbCxsLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiYmFzZTY0IixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpkZT0+ImJhc2U2NCJpbiBkZSxnZXQ6ZGU9PmRlLmJhc2U2NCxzZXQ6KGRlLF9lKT0+e2RlLmJhc2U2ND1fZX19LG1ldGFkYXRhOmZlfSxmLGcpLEQyKHRoaXMsbnVsbCx5LHtraW5kOiJhY2Nlc3NvciIsbmFtZToidGV4dENvbnRlbnQiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmRlPT4idGV4dENvbnRlbnQiaW4gZGUsZ2V0OmRlPT5kZS50ZXh0Q29udGVudCxzZXQ6KGRlLF9lKT0+e2RlLnRleHRDb250ZW50PV9lfX0sbWV0YWRhdGE6ZmV9LHYsbSksRDIodGhpcyxudWxsLHgse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJjb250ZW50VHlwZSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6ZGU9PiJjb250ZW50VHlwZSJpbiBkZSxnZXQ6ZGU9PmRlLmNvbnRlbnRUeXBlLHNldDooZGUsX2UpPT57ZGUuY29udGVudFR5cGU9X2V9fSxtZXRhZGF0YTpmZX0sTSxTKSxEMih0aGlzLG51bGwsRix7a2luZDoiYWNjZXNzb3IiLG5hbWU6Imxhbmd1YWdlIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpkZT0+Imxhbmd1YWdlImluIGRlLGdldDpkZT0+ZGUubGFuZ3VhZ2Usc2V0OihkZSxfZSk9PntkZS5sYW5ndWFnZT1fZX19LG1ldGFkYXRhOmZlfSxfLGspLEQyKHRoaXMsbnVsbCxOLHtraW5kOiJhY2Nlc3NvciIsbmFtZToibWltZVR5cGUiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmRlPT4ibWltZVR5cGUiaW4gZGUsZ2V0OmRlPT5kZS5taW1lVHlwZSxzZXQ6KGRlLF9lKT0+e2RlLm1pbWVUeXBlPV9lfX0sbWV0YWRhdGE6ZmV9LEwsQSksRDIodGhpcyxudWxsLHEse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJmaWxlbmFtZSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6ZGU9PiJmaWxlbmFtZSJpbiBkZSxnZXQ6ZGU9PmRlLmZpbGVuYW1lLHNldDooZGUsX2UpPT57ZGUuZmlsZW5hbWU9X2V9fSxtZXRhZGF0YTpmZX0sQyx6KSxEMih0aGlzLG51bGwsRSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InNob3dUb29sYmFyIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpkZT0+InNob3dUb29sYmFyImluIGRlLGdldDpkZT0+ZGUuc2hvd1Rvb2xiYXIsc2V0OihkZSxfZSk9PntkZS5zaG93VG9vbGJhcj1fZX19LG1ldGFkYXRhOmZlfSxULCQpLEQyKHRoaXMsbnVsbCxWLHtraW5kOiJhY2Nlc3NvciIsbmFtZToic2hvd0ZpbGVuYW1lIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpkZT0+InNob3dGaWxlbmFtZSJpbiBkZSxnZXQ6ZGU9PmRlLnNob3dGaWxlbmFtZSxzZXQ6KGRlLF9lKT0+e2RlLnNob3dGaWxlbmFtZT1fZX19LG1ldGFkYXRhOmZlfSxSLFUpLEQyKHRoaXMsbnVsbCxyZSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InJlc29sdmVkVHlwZSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6ZGU9PiJyZXNvbHZlZFR5cGUiaW4gZGUsZ2V0OmRlPT5kZS5yZXNvbHZlZFR5cGUsc2V0OihkZSxfZSk9PntkZS5yZXNvbHZlZFR5cGU9X2V9fSxtZXRhZGF0YTpmZX0saixtZSksRDIodGhpcyxudWxsLHdlLHtraW5kOiJhY2Nlc3NvciIsbmFtZToicmVzb2x2ZWRTcmMiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmRlPT4icmVzb2x2ZWRTcmMiaW4gZGUsZ2V0OmRlPT5kZS5yZXNvbHZlZFNyYyxzZXQ6KGRlLF9lKT0+e2RlLnJlc29sdmVkU3JjPV9lfX0sbWV0YWRhdGE6ZmV9LEgsY2UpLEQyKHRoaXMsbnVsbCxrZSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InJlc29sdmVkVGV4dCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6ZGU9PiJyZXNvbHZlZFRleHQiaW4gZGUsZ2V0OmRlPT5kZS5yZXNvbHZlZFRleHQsc2V0OihkZSxfZSk9PntkZS5yZXNvbHZlZFRleHQ9X2V9fSxtZXRhZGF0YTpmZX0sVyxEKSxEMih0aGlzLG51bGwsTyx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InJlc29sdmVkTGFuZyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6ZGU9PiJyZXNvbHZlZExhbmciaW4gZGUsZ2V0OmRlPT5kZS5yZXNvbHZlZExhbmcsc2V0OihkZSxfZSk9PntkZS5yZXNvbHZlZExhbmc9X2V9fSxtZXRhZGF0YTpmZX0sWixZKSxEMih0aGlzLG51bGwsb2Use2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJsb2FkaW5nIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpkZT0+ImxvYWRpbmciaW4gZGUsZ2V0OmRlPT5kZS5sb2FkaW5nLHNldDooZGUsX2UpPT57ZGUubG9hZGluZz1fZX19LG1ldGFkYXRhOmZlfSxnZSxiZSksRDIodGhpcyxudWxsLCRlLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiZXJyb3IiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmRlPT4iZXJyb3IiaW4gZGUsZ2V0OmRlPT5kZS5lcnJvcixzZXQ6KGRlLF9lKT0+e2RlLmVycm9yPV9lfX0sbWV0YWRhdGE6ZmV9LEIsUCksRDIobnVsbCxlPXt2YWx1ZTppfSx0LHtraW5kOiJjbGFzcyIsbmFtZTppLm5hbWUsbWV0YWRhdGE6ZmV9LG51bGwsYSksSz1pPWUudmFsdWUsZmUmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShpLFN5bWJvbC5tZXRhZGF0YSx7ZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITAsdmFsdWU6ZmV9KX1zdGF0aWMgZGVtbz1aYnQ7c3RhdGljIGRlbW9Hcm91cHM9WyJNZWRpYSIsIkRhdGEgVmlldyJdOyNlPUh0KHRoaXMsbiwiIik7Z2V0IHVybCgpe3JldHVybiB0aGlzLiNlfXNldCB1cmwoZmUpe3RoaXMuI2U9ZmV9I3Q9KEh0KHRoaXMsbyksSHQodGhpcyxjLHZvaWQgMCkpO2dldCBmaWxlKCl7cmV0dXJuIHRoaXMuI3R9c2V0IGZpbGUoZmUpe3RoaXMuI3Q9ZmV9I2E9KEh0KHRoaXMsaCksSHQodGhpcyxmLCIiKSk7Z2V0IGJhc2U2NCgpe3JldHVybiB0aGlzLiNhfXNldCBiYXNlNjQoZmUpe3RoaXMuI2E9ZmV9I2k9KEh0KHRoaXMsZyksSHQodGhpcyx2LCIiKSk7Z2V0IHRleHRDb250ZW50KCl7cmV0dXJuIHRoaXMuI2l9c2V0IHRleHRDb250ZW50KGZlKXt0aGlzLiNpPWZlfSNyPShIdCh0aGlzLG0pLEh0KHRoaXMsTSx2b2lkIDApKTtnZXQgY29udGVudFR5cGUoKXtyZXR1cm4gdGhpcy4jcn1zZXQgY29udGVudFR5cGUoZmUpe3RoaXMuI3I9ZmV9I3M9KEh0KHRoaXMsUyksSHQodGhpcyxfLCIiKSk7Z2V0IGxhbmd1YWdlKCl7cmV0dXJuIHRoaXMuI3N9c2V0IGxhbmd1YWdlKGZlKXt0aGlzLiNzPWZlfSNuPShIdCh0aGlzLGspLEh0KHRoaXMsTCwiIikpO2dldCBtaW1lVHlwZSgpe3JldHVybiB0aGlzLiNufXNldCBtaW1lVHlwZShmZSl7dGhpcy4jbj1mZX0jbz0oSHQodGhpcyxBKSxIdCh0aGlzLEMsIiIpKTtnZXQgZmlsZW5hbWUoKXtyZXR1cm4gdGhpcy4jb31zZXQgZmlsZW5hbWUoZmUpe3RoaXMuI289ZmV9I2w9KEh0KHRoaXMseiksSHQodGhpcyxULCEwKSk7Z2V0IHNob3dUb29sYmFyKCl7cmV0dXJuIHRoaXMuI2x9c2V0IHNob3dUb29sYmFyKGZlKXt0aGlzLiNsPWZlfSNjPShIdCh0aGlzLCQpLEh0KHRoaXMsUiwhMCkpO2dldCBzaG93RmlsZW5hbWUoKXtyZXR1cm4gdGhpcy4jY31zZXQgc2hvd0ZpbGVuYW1lKGZlKXt0aGlzLiNjPWZlfSNkPShIdCh0aGlzLFUpLEh0KHRoaXMsaiwidW5rbm93biIpKTtnZXQgcmVzb2x2ZWRUeXBlKCl7cmV0dXJuIHRoaXMuI2R9c2V0IHJlc29sdmVkVHlwZShmZSl7dGhpcy4jZD1mZX0jaD0oSHQodGhpcyxtZSksSHQodGhpcyxILCIiKSk7Z2V0IHJlc29sdmVkU3JjKCl7cmV0dXJuIHRoaXMuI2h9c2V0IHJlc29sdmVkU3JjKGZlKXt0aGlzLiNoPWZlfSNwPShIdCh0aGlzLGNlKSxIdCh0aGlzLFcsIiIpKTtnZXQgcmVzb2x2ZWRUZXh0KCl7cmV0dXJuIHRoaXMuI3B9c2V0IHJlc29sdmVkVGV4dChmZSl7dGhpcy4jcD1mZX0jdT0oSHQodGhpcyxEKSxIdCh0aGlzLFosInRleHQiKSk7Z2V0IHJlc29sdmVkTGFuZygpe3JldHVybiB0aGlzLiN1fXNldCByZXNvbHZlZExhbmcoZmUpe3RoaXMuI3U9ZmV9I2Y9KEh0KHRoaXMsWSksSHQodGhpcyxnZSwhMSkpO2dldCBsb2FkaW5nKCl7cmV0dXJuIHRoaXMuI2Z9c2V0IGxvYWRpbmcoZmUpe3RoaXMuI2Y9ZmV9I209KEh0KHRoaXMsYmUpLEh0KHRoaXMsQiwiIikpO2dldCBlcnJvcigpe3JldHVybiB0aGlzLiNtfXNldCBlcnJvcihmZSl7dGhpcy4jbT1mZX1vYmplY3RVcmw9KEh0KHRoaXMsUCksIiIpO3JlbmRlcigpe2xldCBmZT10aGlzLmZpbGVuYW1lfHx0aGlzLmZpbGU/Lm5hbWV8fHRoaXMuZ2V0RmlsZW5hbWVGcm9tVXJsKCl8fCIiO3JldHVybiB3YAogICAgICA8c3R5bGU+CiAgICAgICAgOmhvc3QgewogICAgICAgICAgZGlzcGxheTogYmxvY2s7CiAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgICAgICBmb250LWZhbWlseTogLWFwcGxlLXN5c3RlbSwgQmxpbmtNYWNTeXN0ZW1Gb250LCAnU2Vnb2UgVUknLCBSb2JvdG8sIHNhbnMtc2VyaWY7CiAgICAgICAgfQoKICAgICAgICAucHJldmlldy1jb250YWluZXIgewogICAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgICAgICBoZWlnaHQ6IDEwMCU7CiAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAke3AuYmRUaGVtZSgiI2U1ZTdlYiIsIiMyNzI3MmEiKX07CiAgICAgICAgICBib3JkZXItcmFkaXVzOiA4cHg7CiAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgICAgICAgYmFja2dyb3VuZDogJHtwLmJkVGhlbWUoIiNmZmZmZmYiLCIjMDkwOTBiIil9OwogICAgICAgIH0KCiAgICAgICAgLmhlYWRlci1iYXIgewogICAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgICBnYXA6IDhweDsKICAgICAgICAgIHBhZGRpbmc6IDAgMTZweDsKICAgICAgICAgIGhlaWdodDogNDBweDsKICAgICAgICAgIGJhY2tncm91bmQ6ICR7cC5iZFRoZW1lKCIjZjlmYWZiIiwiaHNsKDIxNSAyMCUgMTUlKSIpfTsKICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAke3AuYmRUaGVtZSgiI2U1ZTdlYiIsImhzbCgyMTcgMjUlIDIyJSkiKX07CiAgICAgICAgICBmbGV4LXNocmluazogMDsKICAgICAgICB9CgogICAgICAgIC5oZWFkZXItaWNvbiB7CiAgICAgICAgICBjb2xvcjogJHtwLmJkVGhlbWUoImhzbCgyMTUgMTYlIDQ1JSkiLCJoc2woMjE1IDE2JSA3NSUpIil9OwogICAgICAgICAgZmxleC1zaHJpbms6IDA7CiAgICAgICAgICBmb250LXNpemU6IDE2cHg7CiAgICAgICAgfQoKICAgICAgICAuaGVhZGVyLWZpbGVuYW1lIHsKICAgICAgICAgIGZvbnQtc2l6ZTogMTNweDsKICAgICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7CiAgICAgICAgICBjb2xvcjogJHtwLmJkVGhlbWUoIiMwOTA5MGIiLCIjZmFmYWZhIil9OwogICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzOwogICAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDsKICAgICAgICAgIGZsZXg6IDE7CiAgICAgICAgfQoKICAgICAgICAuaGVhZGVyLWJhZGdlIHsKICAgICAgICAgIGZvbnQtc2l6ZTogMTFweDsKICAgICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7CiAgICAgICAgICBwYWRkaW5nOiAycHggOHB4OwogICAgICAgICAgYm9yZGVyLXJhZGl1czogNHB4OwogICAgICAgICAgYmFja2dyb3VuZDogJHtwLmJkVGhlbWUoInJnYmEoNTksIDEzMCwgMjQ2LCAwLjEpIiwicmdiYSg1OSwgMTMwLCAyNDYsIDAuMTUpIil9OwogICAgICAgICAgY29sb3I6ICR7cC5iZFRoZW1lKCIjM2I4MmY2IiwiIzYwYTVmYSIpfTsKICAgICAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7CiAgICAgICAgICBmbGV4LXNocmluazogMDsKICAgICAgICB9CgogICAgICAgIC5jb250ZW50LWFyZWEgewogICAgICAgICAgZmxleDogMTsKICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47CiAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgICAgICBtaW4taGVpZ2h0OiAyMDBweDsKICAgICAgICB9CgogICAgICAgIC5jb250ZW50LWFyZWEgPiAqIHsKICAgICAgICAgIHdpZHRoOiAxMDAlOwogICAgICAgICAgaGVpZ2h0OiAxMDAlOwogICAgICAgIH0KCiAgICAgICAgZGVlcy1pbWFnZS12aWV3ZXIgewogICAgICAgICAgZGlzcGxheTogYmxvY2s7CiAgICAgICAgICBoZWlnaHQ6IDEwMCU7CiAgICAgICAgfQoKICAgICAgICBkZWVzLXBkZi12aWV3ZXIgewogICAgICAgICAgZGlzcGxheTogYmxvY2s7CiAgICAgICAgICBoZWlnaHQ6IDEwMCU7CiAgICAgICAgfQoKICAgICAgICBkZWVzLXZpZGVvLXZpZXdlciB7CiAgICAgICAgICBkaXNwbGF5OiBibG9jazsKICAgICAgICB9CgogICAgICAgIGRlZXMtYXVkaW8tdmlld2VyIHsKICAgICAgICAgIGRpc3BsYXk6IGJsb2NrOwogICAgICAgICAgaGVpZ2h0OiAxMDAlOwogICAgICAgIH0KCiAgICAgICAgZGVlcy1kYXRhdmlldy1jb2RlYm94IHsKICAgICAgICAgIGRpc3BsYXk6IGJsb2NrOwogICAgICAgIH0KCiAgICAgICAgLnRleHQtdmlld2VyIHsKICAgICAgICAgIG1hcmdpbjogMDsKICAgICAgICAgIHBhZGRpbmc6IDE2cHg7CiAgICAgICAgICBmb250LWZhbWlseTogdWktbW9ub3NwYWNlLCBTRk1vbm8tUmVndWxhciwgTWVubG8sIE1vbmFjbywgQ29uc29sYXMsIG1vbm9zcGFjZTsKICAgICAgICAgIGZvbnQtc2l6ZTogMTNweDsKICAgICAgICAgIGxpbmUtaGVpZ2h0OiAxLjU7CiAgICAgICAgICBjb2xvcjogJHtwLmJkVGhlbWUoIiMwOTA5MGIiLCIjZmFmYWZhIil9OwogICAgICAgICAgd2hpdGUtc3BhY2U6IHByZS13cmFwOwogICAgICAgICAgd29yZC13cmFwOiBicmVhay13b3JkOwogICAgICAgICAgb3ZlcmZsb3c6IGF1dG87CiAgICAgICAgICBoZWlnaHQ6IDEwMCU7CiAgICAgICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94OwogICAgICAgIH0KCiAgICAgICAgLnBsYWNlaG9sZGVyIHsKICAgICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOwogICAgICAgICAgZ2FwOiAxMnB4OwogICAgICAgICAgaGVpZ2h0OiAxMDAlOwogICAgICAgICAgbWluLWhlaWdodDogMjAwcHg7CiAgICAgICAgICBjb2xvcjogJHtwLmJkVGhlbWUoIiNhMWExYWEiLCIjNzE3MTdhIil9OwogICAgICAgIH0KCiAgICAgICAgLnBsYWNlaG9sZGVyIGRlZXMtaWNvbiB7CiAgICAgICAgICBvcGFjaXR5OiAwLjU7CiAgICAgICAgICBmb250LXNpemU6IDMycHg7CiAgICAgICAgfQoKICAgICAgICAucGxhY2Vob2xkZXItdGV4dCB7CiAgICAgICAgICBmb250LXNpemU6IDE0cHg7CiAgICAgICAgfQoKICAgICAgICAubG9hZGluZy1jb250YWluZXIgewogICAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKICAgICAgICAgIGhlaWdodDogMTAwJTsKICAgICAgICAgIG1pbi1oZWlnaHQ6IDIwMHB4OwogICAgICAgIH0KCiAgICAgICAgLmxvYWRpbmctc3Bpbm5lciB7CiAgICAgICAgICB3aWR0aDogMzJweDsKICAgICAgICAgIGhlaWdodDogMzJweDsKICAgICAgICAgIGJvcmRlcjogM3B4IHNvbGlkICR7cC5iZFRoZW1lKCIjZTVlN2ViIiwiIzNmM2Y0NiIpfTsKICAgICAgICAgIGJvcmRlci10b3AtY29sb3I6ICR7cC5iZFRoZW1lKCIjM2I4MmY2IiwiIzYwYTVmYSIpfTsKICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDUwJTsKICAgICAgICAgIGFuaW1hdGlvbjogc3BpbiAwLjhzIGxpbmVhciBpbmZpbml0ZTsKICAgICAgICB9CgogICAgICAgIEBrZXlmcmFtZXMgc3BpbiB7CiAgICAgICAgICB0byB7IHRyYW5zZm9ybTogcm90YXRlKDM2MGRlZyk7IH0KICAgICAgICB9CgogICAgICAgIC5lcnJvci1jb250YWluZXIgewogICAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7CiAgICAgICAgICBnYXA6IDhweDsKICAgICAgICAgIGhlaWdodDogMTAwJTsKICAgICAgICAgIG1pbi1oZWlnaHQ6IDIwMHB4OwogICAgICAgICAgY29sb3I6ICR7cC5iZFRoZW1lKCIjZGMyNjI2IiwiI2Y4NzE3MSIpfTsKICAgICAgICB9CgogICAgICAgIC5lcnJvci1jb250YWluZXIgZGVlcy1pY29uIHsKICAgICAgICAgIGZvbnQtc2l6ZTogMzJweDsKICAgICAgICB9CgogICAgICAgIC5lcnJvci10ZXh0IHsKICAgICAgICAgIGZvbnQtc2l6ZTogMTNweDsKICAgICAgICB9CiAgICAgIDwvc3R5bGU+CgogICAgICA8ZGl2IGNsYXNzPSJwcmV2aWV3LWNvbnRhaW5lciI+CiAgICAgICAgJHt0aGlzLnNob3dGaWxlbmFtZSYmZmU/d2AKICAgICAgICAgIDxkaXYgY2xhc3M9ImhlYWRlci1iYXIiPgogICAgICAgICAgICA8ZGVlcy1pY29uIGNsYXNzPSJoZWFkZXItaWNvbiIgaWNvbj0iJHttVXRbdGhpcy5yZXNvbHZlZFR5cGVdfSI+PC9kZWVzLWljb24+CiAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJoZWFkZXItZmlsZW5hbWUiPiR7ZmV9PC9zcGFuPgogICAgICAgICAgICA8c3BhbiBjbGFzcz0iaGVhZGVyLWJhZGdlIj4ke3RoaXMucmVzb2x2ZWRUeXBlfTwvc3Bhbj4KICAgICAgICAgIDwvZGl2PgogICAgICAgIGA6IiJ9CgogICAgICAgIDxkaXYgY2xhc3M9ImNvbnRlbnQtYXJlYSI+CiAgICAgICAgICAke3RoaXMuZXJyb3I/d2AKICAgICAgICAgICAgPGRpdiBjbGFzcz0iZXJyb3ItY29udGFpbmVyIj4KICAgICAgICAgICAgICA8ZGVlcy1pY29uIGljb249Imx1Y2lkZTpBbGVydFRyaWFuZ2xlIj48L2RlZXMtaWNvbj4KICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZXJyb3ItdGV4dCI+JHt0aGlzLmVycm9yfTwvc3Bhbj4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICBgOnRoaXMubG9hZGluZz93YAogICAgICAgICAgICA8ZGl2IGNsYXNzPSJsb2FkaW5nLWNvbnRhaW5lciI+CiAgICAgICAgICAgICAgPGRpdiBjbGFzcz0ibG9hZGluZy1zcGlubmVyIj48L2Rpdj4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICBgOnRoaXMucmVuZGVyQ29udGVudCgpfQogICAgICAgIDwvZGl2PgogICAgICA8L2Rpdj4KICAgIGB9cmVuZGVyQ29udGVudCgpe3N3aXRjaCh0aGlzLnJlc29sdmVkVHlwZSl7Y2FzZSJpbWFnZSI6cmV0dXJuIHdgCiAgICAgICAgICA8ZGVlcy1pbWFnZS12aWV3ZXIKICAgICAgICAgICAgLnNyYz0ke3RoaXMucmVzb2x2ZWRTcmN9CiAgICAgICAgICAgIC5zaG93VG9vbGJhcj0ke3RoaXMuc2hvd1Rvb2xiYXJ9CiAgICAgICAgICAgIGFsdD0iJHt0aGlzLmZpbGVuYW1lfHwiIn0iCiAgICAgICAgICA+PC9kZWVzLWltYWdlLXZpZXdlcj4KICAgICAgICBgO2Nhc2UicGRmIjpyZXR1cm4gd2AKICAgICAgICAgIDxkZWVzLXBkZi12aWV3ZXIKICAgICAgICAgICAgLnBkZlVybD0ke3RoaXMucmVzb2x2ZWRTcmN9CiAgICAgICAgICAgIC5zaG93VG9vbGJhcj0ke3RoaXMuc2hvd1Rvb2xiYXJ9CiAgICAgICAgICAgIGluaXRpYWxab29tPSJwYWdlLWZpdCIKICAgICAgICAgID48L2RlZXMtcGRmLXZpZXdlcj4KICAgICAgICBgO2Nhc2UiYXVkaW8iOnJldHVybiB3YAogICAgICAgICAgPGRlZXMtYXVkaW8tdmlld2VyCiAgICAgICAgICAgIC5zcmM9JHt0aGlzLnJlc29sdmVkU3JjfQogICAgICAgICAgICAudGl0bGU9JHt0aGlzLmZpbGVuYW1lfHx0aGlzLmZpbGU/Lm5hbWV8fCIifQogICAgICAgICAgPjwvZGVlcy1hdWRpby12aWV3ZXI+CiAgICAgICAgYDtjYXNlInZpZGVvIjpyZXR1cm4gd2AKICAgICAgICAgIDxkZWVzLXZpZGVvLXZpZXdlcgogICAgICAgICAgICAuc3JjPSR7dGhpcy5yZXNvbHZlZFNyY30KICAgICAgICAgID48L2RlZXMtdmlkZW8tdmlld2VyPgogICAgICAgIGA7Y2FzZSJjb2RlIjpyZXR1cm4gd2AKICAgICAgICAgIDxkZWVzLWRhdGF2aWV3LWNvZGVib3gKICAgICAgICAgICAgLnByb2dMYW5nPSR7dGhpcy5yZXNvbHZlZExhbmd9CiAgICAgICAgICAgIC5jb2RlVG9EaXNwbGF5PSR7dGhpcy5yZXNvbHZlZFRleHR9CiAgICAgICAgICA+PC9kZWVzLWRhdGF2aWV3LWNvZGVib3g+CiAgICAgICAgYDtjYXNlInRleHQiOnJldHVybiB3YDxwcmUgY2xhc3M9InRleHQtdmlld2VyIj4ke3RoaXMucmVzb2x2ZWRUZXh0fTwvcHJlPmA7ZGVmYXVsdDpyZXR1cm4gd2AKICAgICAgICAgIDxkaXYgY2xhc3M9InBsYWNlaG9sZGVyIj4KICAgICAgICAgICAgPGRlZXMtaWNvbiBpY29uPSJsdWNpZGU6RmlsZVF1ZXN0aW9uIj48L2RlZXMtaWNvbj4KICAgICAgICAgICAgPHNwYW4gY2xhc3M9InBsYWNlaG9sZGVyLXRleHQiPlByZXZpZXcgbm90IGF2YWlsYWJsZTwvc3Bhbj4KICAgICAgICAgIDwvZGl2PgogICAgICAgIGB9fWFzeW5jIHVwZGF0ZWQoZmUpe3N1cGVyLnVwZGF0ZWQoZmUpLFsidXJsIiwiZmlsZSIsImJhc2U2NCIsInRleHRDb250ZW50IiwiY29udGVudFR5cGUiLCJsYW5ndWFnZSIsIm1pbWVUeXBlIiwiZmlsZW5hbWUiXS5zb21lKGhlPT5mZS5oYXMoaGUpKSYmYXdhaXQgdGhpcy5yZXNvbHZlQ29udGVudCgpfWFzeW5jIGRpc2Nvbm5lY3RlZENhbGxiYWNrKCl7YXdhaXQgc3VwZXIuZGlzY29ubmVjdGVkQ2FsbGJhY2soKSx0aGlzLnJldm9rZU9iamVjdFVybCgpfWFzeW5jIHJlc29sdmVDb250ZW50KCl7dGhpcy5lcnJvcj0iIix0aGlzLnJldm9rZU9iamVjdFVybCgpLHRoaXMucmVzb2x2ZWRUeXBlPXRoaXMuZGV0ZWN0VHlwZSgpO3RyeXtpZih0aGlzLnVybCl7aWYodGhpcy5yZXNvbHZlZFNyYz10aGlzLnVybCx0aGlzLnJlc29sdmVkVHlwZT09PSJjb2RlInx8dGhpcy5yZXNvbHZlZFR5cGU9PT0idGV4dCIpaWYodGhpcy50ZXh0Q29udGVudCl0aGlzLnJlc29sdmVkVGV4dD10aGlzLnRleHRDb250ZW50O2Vsc2V7dGhpcy5sb2FkaW5nPSEwO2xldCBmZT1hd2FpdCBmZXRjaCh0aGlzLnVybCk7dGhpcy5yZXNvbHZlZFRleHQ9YXdhaXQgZmUudGV4dCgpLHRoaXMubG9hZGluZz0hMX19ZWxzZSBpZih0aGlzLmZpbGUpdGhpcy5vYmplY3RVcmw9VVJMLmNyZWF0ZU9iamVjdFVSTCh0aGlzLmZpbGUpLHRoaXMucmVzb2x2ZWRTcmM9dGhpcy5vYmplY3RVcmwsKHRoaXMucmVzb2x2ZWRUeXBlPT09ImNvZGUifHx0aGlzLnJlc29sdmVkVHlwZT09PSJ0ZXh0IikmJih0aGlzLmxvYWRpbmc9ITAsdGhpcy5yZXNvbHZlZFRleHQ9YXdhaXQgdGhpcy5maWxlLnRleHQoKSx0aGlzLmxvYWRpbmc9ITEpO2Vsc2UgaWYodGhpcy5iYXNlNjQpe2xldCBmZT10aGlzLm1pbWVUeXBlfHwiYXBwbGljYXRpb24vb2N0ZXQtc3RyZWFtIjt0aGlzLnJlc29sdmVkU3JjPWBkYXRhOiR7ZmV9O2Jhc2U2NCwke3RoaXMuYmFzZTY0fWB9ZWxzZSB0aGlzLnRleHRDb250ZW50JiYodGhpcy5yZXNvbHZlZFRleHQ9dGhpcy50ZXh0Q29udGVudCl9Y2F0Y2h7dGhpcy5lcnJvcj0iRmFpbGVkIHRvIGxvYWQgY29udGVudCIsdGhpcy5sb2FkaW5nPSExfXRoaXMucmVzb2x2ZWRMYW5nPXRoaXMucmVzb2x2ZUxhbmd1YWdlKCl9ZGV0ZWN0VHlwZSgpe2lmKHRoaXMuY29udGVudFR5cGUpcmV0dXJuIHRoaXMuY29udGVudFR5cGU7bGV0IGZlPXRoaXMubWltZVR5cGV8fHRoaXMuZmlsZT8udHlwZXx8IiI7aWYoZmUpe2lmKGZlPT09ImFwcGxpY2F0aW9uL3BkZiIpcmV0dXJuInBkZiI7Zm9yKGxldFtfZSxoZV1vZiBPYmplY3QuZW50cmllcyh1VXQpKWlmKGZlLnN0YXJ0c1dpdGgoX2UpKXJldHVybiBoZTtpZihmZS5zdGFydHNXaXRoKCJ0ZXh0LyIpKXJldHVybiJ0ZXh0In1sZXQgZGU9dGhpcy5nZXRFeHRlbnNpb24oKTtyZXR1cm4gZGUmJktidFtkZV0/S2J0W2RlXTp0aGlzLnRleHRDb250ZW50P3RoaXMubGFuZ3VhZ2U/ImNvZGUiOiJ0ZXh0IjoidW5rbm93biJ9Z2V0RXh0ZW5zaW9uKCl7bGV0IGZlPXRoaXMuZmlsZW5hbWV8fHRoaXMuZmlsZT8ubmFtZXx8IiI7aWYoZmUpe2xldCBkZT1mZS5zcGxpdCgiLiIpO2lmKGRlLmxlbmd0aD4xKXJldHVybiBkZS5wb3AoKS50b0xvd2VyQ2FzZSgpfWlmKHRoaXMudXJsKXRyeXtsZXQgX2U9bmV3IFVSTCh0aGlzLnVybCwiaHR0cHM6Ly9wbGFjZWhvbGRlci5jb20iKS5wYXRobmFtZS5zcGxpdCgiLiIpO2lmKF9lLmxlbmd0aD4xKXJldHVybiBfZS5wb3AoKS50b0xvd2VyQ2FzZSgpfWNhdGNoe31yZXR1cm4iIn1nZXRGaWxlbmFtZUZyb21VcmwoKXtpZighdGhpcy51cmwpcmV0dXJuIiI7dHJ5e3JldHVybiBuZXcgVVJMKHRoaXMudXJsLCJodHRwczovL3BsYWNlaG9sZGVyLmNvbSIpLnBhdGhuYW1lLnNwbGl0KCIvIikucG9wKCl8fCIifWNhdGNoe3JldHVybiIifX1yZXNvbHZlTGFuZ3VhZ2UoKXtpZih0aGlzLmxhbmd1YWdlKXJldHVybiB0aGlzLmxhbmd1YWdlO2xldCBmZT10aGlzLmdldEV4dGVuc2lvbigpO3JldHVybiBmVXRbZmVdfHwidGV4dCJ9cmV2b2tlT2JqZWN0VXJsKCl7dGhpcy5vYmplY3RVcmwmJihVUkwucmV2b2tlT2JqZWN0VVJMKHRoaXMub2JqZWN0VXJsKSx0aGlzLm9iamVjdFVybD0iIil9c3RhdGlje0h0KGksYSl9fTtyZXR1cm4gSz1pfSkoKX0pO3ZhciBldnQ9YigoKT0+e0pidCgpfSk7dmFyIHR2dCxWVixhdnQsaXZ0PWIoKCk9Pnt1ZSgpO2MyKCk7bjIoKTtEdCgpO3R2dD1mdW5jdGlvbih0LGUsYSxpLHIscyl7ZnVuY3Rpb24gbih4KXtpZih4IT09dm9pZCAwJiZ0eXBlb2YgeCE9ImZ1bmN0aW9uIil0aHJvdyBuZXcgVHlwZUVycm9yKCJGdW5jdGlvbiBleHBlY3RlZCIpO3JldHVybiB4fWZvcih2YXIgbz1pLmtpbmQsZD1vPT09ImdldHRlciI/ImdldCI6bz09PSJzZXR0ZXIiPyJzZXQiOiJ2YWx1ZSIsYz0hZSYmdD9pLnN0YXRpYz90OnQucHJvdG90eXBlOm51bGwsaD1lfHwoYz9PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGMsaS5uYW1lKTp7fSksbCxmPSExLGc9YS5sZW5ndGgtMTtnPj0wO2ctLSl7dmFyIHk9e307Zm9yKHZhciB2IGluIGkpeVt2XT12PT09ImFjY2VzcyI/e306aVt2XTtmb3IodmFyIHYgaW4gaS5hY2Nlc3MpeS5hY2Nlc3Nbdl09aS5hY2Nlc3Nbdl07eS5hZGRJbml0aWFsaXplcj1mdW5jdGlvbih4KXtpZihmKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBhZGQgaW5pdGlhbGl6ZXJzIGFmdGVyIGRlY29yYXRpb24gaGFzIGNvbXBsZXRlZCIpO3MucHVzaChuKHh8fG51bGwpKX07dmFyIG09KDAsYVtnXSkobz09PSJhY2Nlc3NvciI/e2dldDpoLmdldCxzZXQ6aC5zZXR9OmhbZF0seSk7aWYobz09PSJhY2Nlc3NvciIpe2lmKG09PT12b2lkIDApY29udGludWU7aWYobT09PW51bGx8fHR5cGVvZiBtIT0ib2JqZWN0Iil0aHJvdyBuZXcgVHlwZUVycm9yKCJPYmplY3QgZXhwZWN0ZWQiKTsobD1uKG0uZ2V0KSkmJihoLmdldD1sKSwobD1uKG0uc2V0KSkmJihoLnNldD1sKSwobD1uKG0uaW5pdCkpJiZyLnVuc2hpZnQobCl9ZWxzZShsPW4obSkpJiYobz09PSJmaWVsZCI/ci51bnNoaWZ0KGwpOmhbZF09bCl9YyYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGMsaS5uYW1lLGgpLGY9ITB9LFZWPWZ1bmN0aW9uKHQsZSxhKXtmb3IodmFyIGk9YXJndW1lbnRzLmxlbmd0aD4yLHI9MDtyPGUubGVuZ3RoO3IrKylhPWk/ZVtyXS5jYWxsKHQsYSk6ZVtyXS5jYWxsKHQpO3JldHVybiBpP2E6dm9pZCAwfSxhdnQ9KCgpPT57bGV0IHQ9W3BlKCJkZWVzLXBkZiIpXSxlLGE9W10saSxyPXhlLHMsbj1bXSxvPVtdO3ZhciBkPWNsYXNzIGV4dGVuZHMgcntzdGF0aWN7aT10aGlzfXN0YXRpY3tsZXQgYz10eXBlb2YgU3ltYm9sPT0iZnVuY3Rpb24iJiZTeW1ib2wubWV0YWRhdGE/T2JqZWN0LmNyZWF0ZShyW1N5bWJvbC5tZXRhZGF0YV0/P251bGwpOnZvaWQgMDtzPVtJKCldLHR2dCh0aGlzLG51bGwscyx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InBkZlVybCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aD0+InBkZlVybCJpbiBoLGdldDpoPT5oLnBkZlVybCxzZXQ6KGgsbCk9PntoLnBkZlVybD1sfX0sbWV0YWRhdGE6Y30sbixvKSx0dnQobnVsbCxlPXt2YWx1ZTppfSx0LHtraW5kOiJjbGFzcyIsbmFtZTppLm5hbWUsbWV0YWRhdGE6Y30sbnVsbCxhKSxkPWk9ZS52YWx1ZSxjJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoaSxTeW1ib2wubWV0YWRhdGEse2VudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwLHZhbHVlOmN9KX1zdGF0aWMgZGVtbz0oKT0+d2AgPGRlZXMtcGRmPjwvZGVlcy1wZGY+IGA7c3RhdGljIGRlbW9Hcm91cHM9WyJNZWRpYSIsIlBERiJdOyNlPVZWKHRoaXMsbiwiaHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL21vemlsbGEvcGRmLmpzL2JhMmVkZWFlL2V4YW1wbGVzL2xlYXJuaW5nL2hlbGxvd29ybGQucGRmIik7Z2V0IHBkZlVybCgpe3JldHVybiB0aGlzLiNlfXNldCBwZGZVcmwoYyl7dGhpcy4jZT1jfWNvbnN0cnVjdG9yKCl7c3VwZXIoKSxWVih0aGlzLG8pfXJlbmRlcigpe3JldHVybiB3YAogICAgICA8c3R5bGU+CiAgICAgICAgOmhvc3QgewogICAgICAgICAgZm9udC1mYW1pbHk6ICdHZWlzdCBTYW5zJywgc2Fucy1zZXJpZjsKICAgICAgICAgIGRpc3BsYXk6IGJsb2NrOwogICAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDsKICAgICAgICAgIG1heC13aWR0aDogODAwcHg7CiAgICAgICAgfQogICAgICAgIDpob3N0KFtoaWRkZW5dKSB7CiAgICAgICAgICBkaXNwbGF5OiBub25lOwogICAgICAgIH0KCiAgICAgICAgI3BkZmNhbnZhcyB7CiAgICAgICAgICBib3gtc2hhZG93OiAwcHggMHB4IDVweCAjY2NjOwogICAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICAgICAgfQogICAgICA8L3N0eWxlPgogICAgICA8Y2FudmFzCiAgICAgICAgaWQ9InBkZmNhbnZhcyIKICAgICAgICAuaGVpZ2h0PSR7MH0KICAgICAgICAud2lkdGg9JHswfQoKICAgICAgPjwvY2FudmFzPgogICAgYH1zdGF0aWMgcGRmSnNSZWFkeTtzdGF0aWMgcGRmanNMaWI7YXN5bmMgY29ubmVjdGVkQ2FsbGJhY2soKXtpZihzdXBlci5jb25uZWN0ZWRDYWxsYmFjaygpLCFkLnBkZkpzUmVhZHkpe2xldCBjPXJ0LnBsdWdpbnMuc21hcnRwcm9taXNlLmRlZmVyKCk7ZC5wZGZKc1JlYWR5PWMucHJvbWlzZSxkLnBkZmpzTGliPWF3YWl0IGltcG9ydCgiaHR0cHM6Ly9jZG4uanNkZWxpdnIubmV0L25wbS9wZGZqcy1kaXN0QDQuMC4zNzkvK2VzbSIpLGQucGRmanNMaWIuR2xvYmFsV29ya2VyT3B0aW9ucy53b3JrZXJTcmM9Imh0dHBzOi8vY2RuLmpzZGVsaXZyLm5ldC9ucG0vcGRmanMtZGlzdEA0LjAuMzc5L2J1aWxkL3BkZi53b3JrZXIubWpzIixjLnJlc29sdmUoKX1hd2FpdCBkLnBkZkpzUmVhZHksdGhpcy5kaXNwbGF5Q29udGVudCgpfWFzeW5jIGRpc3BsYXlDb250ZW50KCl7YXdhaXQgZC5wZGZKc1JlYWR5LGQucGRmanNMaWIuZ2V0RG9jdW1lbnQodGhpcy5wZGZVcmwpLnByb21pc2UudGhlbihoPT57Y29uc29sZS5sb2coIlBERiBsb2FkZWQiKSxoLmdldFBhZ2UoMSkudGhlbihmPT57Y29uc29sZS5sb2coIlBhZ2UgbG9hZGVkIik7bGV0IHk9Zi5nZXRWaWV3cG9ydCh7c2NhbGU6MTB9KSx2PXRoaXMuc2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yKCIjcGRmY2FudmFzIiksbT12LmdldENvbnRleHQoIjJkIik7di5oZWlnaHQ9eS5oZWlnaHQsdi53aWR0aD15LndpZHRoO2xldCB4PXtjYW52YXNDb250ZXh0Om0sdmlld3BvcnQ6eX07Zi5yZW5kZXIoeCkucHJvbWlzZS50aGVuKGZ1bmN0aW9uKCl7Y29uc29sZS5sb2coIlBhZ2UgcmVuZGVyZWQiKX0pfSl9LGg9Pntjb25zb2xlLmVycm9yKGgpfSl9Z2V0Q29udGV4dE1lbnVJdGVtcygpe3JldHVyblt7bmFtZToiT3BlbiBQREYgaW4gTmV3IFRhYiIsaWNvbk5hbWU6Imx1Y2lkZTpFeHRlcm5hbExpbmsiLGFjdGlvbjphc3luYygpPT57d2luZG93Lm9wZW4odGhpcy5wZGZVcmwsIl9ibGFuayIpfX0se2RpdmlkZXI6ITB9LHtuYW1lOiJDb3B5IFBERiBVUkwiLGljb25OYW1lOiJsdWNpZGU6Q29weSIsYWN0aW9uOmFzeW5jKCk9Pnthd2FpdCBuYXZpZ2F0b3IuY2xpcGJvYXJkLndyaXRlVGV4dCh0aGlzLnBkZlVybCl9fSx7bmFtZToiRG93bmxvYWQgUERGIixpY29uTmFtZToibHVjaWRlOkRvd25sb2FkIixhY3Rpb246YXN5bmMoKT0+e2xldCBjPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImEiKTtjLmhyZWY9dGhpcy5wZGZVcmwsYy5kb3dubG9hZD10aGlzLnBkZlVybC5zcGxpdCgiLyIpLnBvcCgpfHwiZG9jdW1lbnQucGRmIixjLmNsaWNrKCl9fV19c3RhdGlje1ZWKGksYSl9fTtyZXR1cm4gZD1pfSkoKX0pO3ZhciBydnQ9YigoKT0+e2l2dCgpfSk7dmFyIEoyLGpzPWIoKCk9Pnt1ZSgpO0oyPVtwLmRlZmF1bHRTdHlsZXMsUWAKICAgIDpob3N0IHsKICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrOwogICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICB9CgogICAgLnRpbGUtY29udGFpbmVyIHsKICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICB3aWR0aDogMjAwcHg7CiAgICAgIGhlaWdodDogMjYwcHg7CiAgICAgIGJhY2tncm91bmQ6ICR7cC5iZFRoZW1lKCJoc2woMCAwJSA5OCUpIiwiaHNsKDIxNSAyMCUgMTQlKSIpfTsKICAgICAgYm9yZGVyLXJhZGl1czogNHB4OwogICAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMC4ycyBlYXNlLCBib3gtc2hhZG93IDAuMnMgZWFzZTsKICAgICAgYm94LXNoYWRvdzogMCAxcHggM3B4ICR7cC5iZFRoZW1lKCJyZ2JhKDAsIDAsIDAsIDAuMTIpIiwicmdiYSgwLCAwLCAwLCAwLjI0KSIpfTsKICAgIH0KCiAgICAudGlsZS1jb250YWluZXIuY2xpY2thYmxlIHsKICAgICAgY3Vyc29yOiBwb2ludGVyOwogICAgfQoKICAgIC50aWxlLWNvbnRhaW5lci5jbGlja2FibGU6aG92ZXIgewogICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTJweCk7CiAgICAgIGJveC1zaGFkb3c6IDAgOHB4IDI0cHggJHtwLmJkVGhlbWUoInJnYmEoMCwgMCwgMCwgMC4xMikiLCJyZ2JhKDAsIDAsIDAsIDAuMykiKX07CiAgICB9CgogICAgLnRpbGUtY29udGFpbmVyLmNsaWNrYWJsZTpob3ZlciAudGlsZS1vdmVybGF5IHsKICAgICAgb3BhY2l0eTogMTsKICAgIH0KCiAgICAudGlsZS1jb250ZW50IHsKICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICB3aWR0aDogMTAwJTsKICAgICAgaGVpZ2h0OiAxMDAlOwogICAgICBkaXNwbGF5OiBmbGV4OwogICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDsKICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgIH0KCiAgICAudGlsZS1vdmVybGF5IHsKICAgICAgcG9zaXRpb246IGFic29sdXRlOwogICAgICB0b3A6IDA7CiAgICAgIGxlZnQ6IDA7CiAgICAgIHJpZ2h0OiAwOwogICAgICBib3R0b206IDA7CiAgICAgIGJhY2tncm91bmQ6ICR7cC5iZFRoZW1lKCJyZ2JhKDAsIDAsIDAsIDAuNykiLCJyZ2JhKDAsIDAsIDAsIDAuOCkiKX07CiAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOwogICAgICBnYXA6IDhweDsKICAgICAgb3BhY2l0eTogMDsKICAgICAgdHJhbnNpdGlvbjogb3BhY2l0eSAwLjJzIGVhc2U7CiAgICAgIHotaW5kZXg6IDIwOwogICAgfQoKICAgIC50aWxlLW92ZXJsYXkgZGVlcy1pY29uIHsKICAgICAgZm9udC1zaXplOiAyNHB4OwogICAgICBjb2xvcjogd2hpdGU7CiAgICB9CgogICAgLnRpbGUtb3ZlcmxheSBzcGFuIHsKICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgICBmb250LXdlaWdodDogNTAwOwogICAgICBjb2xvcjogd2hpdGU7CiAgICB9CgogICAgLnRpbGUtaW5mbyB7CiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgYm90dG9tOiA4cHg7CiAgICAgIGxlZnQ6IDhweDsKICAgICAgcmlnaHQ6IDhweDsKICAgICAgcGFkZGluZzogNnB4IDEwcHg7CiAgICAgIGJhY2tncm91bmQ6ICR7cC5iZFRoZW1lKCJoc2woMCAwJSAxMDAlIC8gMC45MikiLCJoc2woMjE1IDIwJSAxMiUgLyAwLjkyKSIpfTsKICAgICAgYm9yZGVyLXJhZGl1czogNnB4OwogICAgICBkaXNwbGF5OiBmbGV4OwogICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICBnYXA6IDZweDsKICAgICAgZm9udC1zaXplOiAxMnB4OwogICAgICBjb2xvcjogJHtwLmJkVGhlbWUoImhzbCgyMTUgMTYlIDQ1JSkiLCJoc2woMjE1IDE2JSA3NSUpIil9OwogICAgICBiYWNrZHJvcC1maWx0ZXI6IGJsdXIoMTJweCk7CiAgICAgIGJveC1zaGFkb3c6IDAgMnB4IDhweCByZ2JhKDAsIDAsIDAsIDAuMSk7CiAgICAgIHotaW5kZXg6IDEwOwogICAgfQoKICAgIC50aWxlLWluZm8gZGVlcy1pY29uIHsKICAgICAgZm9udC1zaXplOiAxM3B4OwogICAgICBjb2xvcjogJHtwLmJkVGhlbWUoImhzbCgyMTcgOTElIDYwJSkiLCJoc2woMjEzIDkzJSA2OCUpIil9OwogICAgfQoKICAgIC50aWxlLWluZm8tdGV4dCB7CiAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7CiAgICAgIGZvbnQtc2l6ZTogMTFweDsKICAgIH0KCiAgICAudGlsZS1iYWRnZSB7CiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgdG9wOiA4cHg7CiAgICAgIGxlZnQ6IDhweDsKICAgICAgcmlnaHQ6IDhweDsKICAgICAgcGFkZGluZzogNXB4IDhweDsKICAgICAgYmFja2dyb3VuZDogJHtwLmJkVGhlbWUoImhzbCgwIDAlIDAlIC8gMC43KSIsImhzbCgwIDAlIDEwMCUgLyAwLjkpIil9OwogICAgICBjb2xvcjogJHtwLmJkVGhlbWUoIndoaXRlIiwiaHNsKDIxNSAyMCUgMTIlKSIpfTsKICAgICAgYm9yZGVyLXJhZGl1czogNHB4OwogICAgICBmb250LXNpemU6IDExcHg7CiAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7CiAgICAgIHRleHQtYWxpZ246IGNlbnRlcjsKICAgICAgYmFja2Ryb3AtZmlsdGVyOiBibHVyKDEycHgpOwogICAgICB6LWluZGV4OiAxNTsKICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7CiAgICAgIGFuaW1hdGlvbjogZmFkZUluIDAuMnMgZWFzZTsKICAgIH0KCiAgICAudGlsZS1iYWRnZS1jb3JuZXIgewogICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgIGJvdHRvbTogOHB4OwogICAgICByaWdodDogOHB4OwogICAgICBwYWRkaW5nOiAzcHggOHB4OwogICAgICBiYWNrZ3JvdW5kOiAke3AuYmRUaGVtZSgiaHNsKDAgMCUgMCUgLyAwLjYpIiwiaHNsKDAgMCUgMTAwJSAvIDAuODUpIil9OwogICAgICBjb2xvcjogJHtwLmJkVGhlbWUoIndoaXRlIiwiaHNsKDIxNSAyMCUgMTIlKSIpfTsKICAgICAgYm9yZGVyLXJhZGl1czogNHB4OwogICAgICBmb250LXNpemU6IDEwcHg7CiAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7CiAgICAgIGZvbnQtdmFyaWFudC1udW1lcmljOiB0YWJ1bGFyLW51bXM7CiAgICAgIGJhY2tkcm9wLWZpbHRlcjogYmx1cig4cHgpOwogICAgICB6LWluZGV4OiAxMDsKICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7CiAgICB9CgogICAgLnRpbGUtYmFkZ2UtdG9wcmlnaHQgewogICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgIHRvcDogOHB4OwogICAgICByaWdodDogOHB4OwogICAgICBwYWRkaW5nOiAzcHggOHB4OwogICAgICBiYWNrZ3JvdW5kOiAke3AuYmRUaGVtZSgiaHNsKDAgMCUgMCUgLyAwLjYpIiwiaHNsKDAgMCUgMTAwJSAvIDAuODUpIil9OwogICAgICBjb2xvcjogJHtwLmJkVGhlbWUoIndoaXRlIiwiaHNsKDIxNSAyMCUgMTIlKSIpfTsKICAgICAgYm9yZGVyLXJhZGl1czogNHB4OwogICAgICBmb250LXNpemU6IDEwcHg7CiAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7CiAgICAgIGJhY2tkcm9wLWZpbHRlcjogYmx1cig4cHgpOwogICAgICB6LWluZGV4OiAxNTsKICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7CiAgICB9CgogICAgLyogU2hpZnQgYm90dG9tIGJhZGdlcyB1cCB3aGVuIGxhYmVsIGlzIHByZXNlbnQgKi8KICAgIC50aWxlLWNvbnRhaW5lcjpoYXMoLnRpbGUtbGFiZWwpIC50aWxlLWJhZGdlLWNvcm5lciB7CiAgICAgIGJvdHRvbTogMzNweDsKICAgIH0KCiAgICAudGlsZS1jb250YWluZXI6aGFzKC50aWxlLWxhYmVsKSAudGlsZS1pbmZvIHsKICAgICAgYm90dG9tOiAzM3B4OwogICAgfQoKICAgIC50aWxlLWxvYWRpbmcsCiAgICAudGlsZS1lcnJvciB7CiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgdG9wOiAwOwogICAgICBsZWZ0OiAwOwogICAgICByaWdodDogMDsKICAgICAgYm90dG9tOiAwOwogICAgICBkaXNwbGF5OiBmbGV4OwogICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKICAgICAgZ2FwOiAxMnB4OwogICAgICBjb2xvcjogJHtwLmJkVGhlbWUoImhzbCgyMTUgMTYlIDQ1JSkiLCJoc2woMjE1IDE2JSA3NSUpIil9OwogICAgfQoKICAgIC50aWxlLWxvYWRpbmcgewogICAgICBiYWNrZ3JvdW5kOiAke3AuYmRUaGVtZSgiaHNsKDAgMCUgOTklKSIsImhzbCgyMTUgMjAlIDE0JSkiKX07CiAgICB9CgogICAgLnRpbGUtZXJyb3IgewogICAgICBiYWNrZ3JvdW5kOiAke3AuYmRUaGVtZSgiaHNsKDAgNzIlIDk4JSkiLCJoc2woMCA2MiUgMjAlKSIpfTsKICAgICAgY29sb3I6ICR7cC5iZFRoZW1lKCJoc2woMCA3MiUgNDAlKSIsImhzbCgwIDcwJSA2OCUpIil9OwogICAgfQoKICAgIC50aWxlLWVycm9yIGRlZXMtaWNvbiB7CiAgICAgIGZvbnQtc2l6ZTogMzJweDsKICAgIH0KCiAgICAudGlsZS1zcGlubmVyIHsKICAgICAgd2lkdGg6IDI0cHg7CiAgICAgIGhlaWdodDogMjRweDsKICAgICAgYm9yZGVyLXJhZGl1czogNTAlOwogICAgICBib3JkZXI6IDJweCBzb2xpZCAke3AuYmRUaGVtZSgiaHNsKDIxNCAzMSUgODYlKSIsImhzbCgyMTcgMjUlIDI4JSkiKX07CiAgICAgIGJvcmRlci10b3AtY29sb3I6ICR7cC5iZFRoZW1lKCJoc2woMjE3IDkxJSA2MCUpIiwiaHNsKDIxMyA5MyUgNjglKSIpfTsKICAgICAgYW5pbWF0aW9uOiBzcGluIDAuOHMgbGluZWFyIGluZmluaXRlOwogICAgfQoKICAgIC50aWxlLWxvYWRpbmctdGV4dCwKICAgIC50aWxlLWVycm9yLXRleHQgewogICAgICBmb250LXNpemU6IDEzcHg7CiAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7CiAgICB9CgogICAgLnRpbGUtbGFiZWwgewogICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgIGJvdHRvbTogMDsKICAgICAgbGVmdDogMDsKICAgICAgcmlnaHQ6IDA7CiAgICAgIHBhZGRpbmc6IDZweCAxMHB4OwogICAgICBiYWNrZ3JvdW5kOiAke3AuYmRUaGVtZSgiaHNsKDAgMCUgMTAwJSAvIDAuOTUpIiwiaHNsKDIxNSAyMCUgMTIlIC8gMC45NSkiKX07CiAgICAgIGZvbnQtc2l6ZTogMTFweDsKICAgICAgZm9udC13ZWlnaHQ6IDUwMDsKICAgICAgY29sb3I6ICR7cC5iZFRoZW1lKCJoc2woMjE1IDE2JSAzNSUpIiwiaHNsKDIxNSAxNiUgNzUlKSIpfTsKICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDsKICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7CiAgICAgIHotaW5kZXg6IDEwOwogICAgICBiYWNrZHJvcC1maWx0ZXI6IGJsdXIoMTJweCk7CiAgICB9CgogICAgQGtleWZyYW1lcyBzcGluIHsKICAgICAgdG8gewogICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDM2MGRlZyk7CiAgICAgIH0KICAgIH0KCiAgICBAa2V5ZnJhbWVzIGZhZGVJbiB7CiAgICAgIGZyb20gewogICAgICAgIG9wYWNpdHk6IDA7CiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC00cHgpOwogICAgICB9CiAgICAgIHRvIHsKICAgICAgICBvcGFjaXR5OiAxOwogICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgwKTsKICAgICAgfQogICAgfQoKICAgIC8qIFNpemUgdmFyaWFudHMgKi8KICAgIDpob3N0KFtzaXplPSJzbWFsbCJdKSAudGlsZS1jb250YWluZXIgewogICAgICB3aWR0aDogMTUwcHg7CiAgICAgIGhlaWdodDogMTk1cHg7CiAgICB9CgogICAgOmhvc3QoW3NpemU9ImxhcmdlIl0pIC50aWxlLWNvbnRhaW5lciB7CiAgICAgIHdpZHRoOiAyNTBweDsKICAgICAgaGVpZ2h0OiAzMjVweDsKICAgIH0KCiAgICAvKiBHcmlkIG9wdGltaXphdGlvbnMgKi8KICAgIDpob3N0KFtncmlkLW1vZGVdKSAudGlsZS1jb250YWluZXIgewogICAgICB3aWxsLWNoYW5nZTogYXV0bzsKICAgIH0KICBgXX0pO3ZhciBaOCxHcix2YSxibz1iKCgpPT57dWUoKTtqcygpO0R0KCk7Wjg9ZnVuY3Rpb24odCxlLGEsaSxyLHMpe2Z1bmN0aW9uIG4oeCl7aWYoeCE9PXZvaWQgMCYmdHlwZW9mIHghPSJmdW5jdGlvbiIpdGhyb3cgbmV3IFR5cGVFcnJvcigiRnVuY3Rpb24gZXhwZWN0ZWQiKTtyZXR1cm4geH1mb3IodmFyIG89aS5raW5kLGQ9bz09PSJnZXR0ZXIiPyJnZXQiOm89PT0ic2V0dGVyIj8ic2V0IjoidmFsdWUiLGM9IWUmJnQ/aS5zdGF0aWM/dDp0LnByb3RvdHlwZTpudWxsLGg9ZXx8KGM/T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihjLGkubmFtZSk6e30pLGwsZj0hMSxnPWEubGVuZ3RoLTE7Zz49MDtnLS0pe3ZhciB5PXt9O2Zvcih2YXIgdiBpbiBpKXlbdl09dj09PSJhY2Nlc3MiP3t9Omlbdl07Zm9yKHZhciB2IGluIGkuYWNjZXNzKXkuYWNjZXNzW3ZdPWkuYWNjZXNzW3ZdO3kuYWRkSW5pdGlhbGl6ZXI9ZnVuY3Rpb24oeCl7aWYoZil0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgYWRkIGluaXRpYWxpemVycyBhZnRlciBkZWNvcmF0aW9uIGhhcyBjb21wbGV0ZWQiKTtzLnB1c2gobih4fHxudWxsKSl9O3ZhciBtPSgwLGFbZ10pKG89PT0iYWNjZXNzb3IiP3tnZXQ6aC5nZXQsc2V0Omguc2V0fTpoW2RdLHkpO2lmKG89PT0iYWNjZXNzb3IiKXtpZihtPT09dm9pZCAwKWNvbnRpbnVlO2lmKG09PT1udWxsfHx0eXBlb2YgbSE9Im9iamVjdCIpdGhyb3cgbmV3IFR5cGVFcnJvcigiT2JqZWN0IGV4cGVjdGVkIik7KGw9bihtLmdldCkpJiYoaC5nZXQ9bCksKGw9bihtLnNldCkpJiYoaC5zZXQ9bCksKGw9bihtLmluaXQpKSYmci51bnNoaWZ0KGwpfWVsc2UobD1uKG0pKSYmKG89PT0iZmllbGQiP3IudW5zaGlmdChsKTpoW2RdPWwpfWMmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShjLGkubmFtZSxoKSxmPSEwfSxHcj1mdW5jdGlvbih0LGUsYSl7Zm9yKHZhciBpPWFyZ3VtZW50cy5sZW5ndGg+MixyPTA7cjxlLmxlbmd0aDtyKyspYT1pP2Vbcl0uY2FsbCh0LGEpOmVbcl0uY2FsbCh0KTtyZXR1cm4gaT9hOnZvaWQgMH0sdmE9KCgpPT57bGV0IHQ9eGUsZSxhPVtdLGk9W10scixzPVtdLG49W10sbyxkPVtdLGM9W10saCxsPVtdLGY9W10sZyx5PVtdLHY9W107cmV0dXJuIGNsYXNzIGV4dGVuZHMgdHtzdGF0aWN7bGV0IHg9dHlwZW9mIFN5bWJvbD09ImZ1bmN0aW9uIiYmU3ltYm9sLm1ldGFkYXRhP09iamVjdC5jcmVhdGUodFtTeW1ib2wubWV0YWRhdGFdPz9udWxsKTp2b2lkIDA7ZT1bSSh7dHlwZTpCb29sZWFufSldLHI9W0koe3R5cGU6Qm9vbGVhbn0pXSxvPVtJKHt0eXBlOkJvb2xlYW59KV0saD1bSSh7dHlwZTpTdHJpbmcscmVmbGVjdDohMH0pXSxnPVtJKHt0eXBlOlN0cmluZ30pXSxaOCh0aGlzLG51bGwsZSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImNsaWNrYWJsZSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6TT0+ImNsaWNrYWJsZSJpbiBNLGdldDpNPT5NLmNsaWNrYWJsZSxzZXQ6KE0sUyk9PntNLmNsaWNrYWJsZT1TfX0sbWV0YWRhdGE6eH0sYSxpKSxaOCh0aGlzLG51bGwscix7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImxvYWRpbmciLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOk09PiJsb2FkaW5nImluIE0sZ2V0Ok09Pk0ubG9hZGluZyxzZXQ6KE0sUyk9PntNLmxvYWRpbmc9U319LG1ldGFkYXRhOnh9LHMsbiksWjgodGhpcyxudWxsLG8se2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJlcnJvciIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6TT0+ImVycm9yImluIE0sZ2V0Ok09Pk0uZXJyb3Isc2V0OihNLFMpPT57TS5lcnJvcj1TfX0sbWV0YWRhdGE6eH0sZCxjKSxaOCh0aGlzLG51bGwsaCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InNpemUiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOk09PiJzaXplImluIE0sZ2V0Ok09Pk0uc2l6ZSxzZXQ6KE0sUyk9PntNLnNpemU9U319LG1ldGFkYXRhOnh9LGwsZiksWjgodGhpcyxudWxsLGcse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJsYWJlbCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6TT0+ImxhYmVsImluIE0sZ2V0Ok09Pk0ubGFiZWwsc2V0OihNLFMpPT57TS5sYWJlbD1TfX0sbWV0YWRhdGE6eH0seSx2KSx4JiZPYmplY3QuZGVmaW5lUHJvcGVydHkodGhpcyxTeW1ib2wubWV0YWRhdGEse2VudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwLHZhbHVlOnh9KX1zdGF0aWMgc3R5bGVzPUoyOyNlPUdyKHRoaXMsYSwhMCk7Z2V0IGNsaWNrYWJsZSgpe3JldHVybiB0aGlzLiNlfXNldCBjbGlja2FibGUoeCl7dGhpcy4jZT14fSN0PShHcih0aGlzLGkpLEdyKHRoaXMscywhMSkpO2dldCBsb2FkaW5nKCl7cmV0dXJuIHRoaXMuI3R9c2V0IGxvYWRpbmcoeCl7dGhpcy4jdD14fSNhPShHcih0aGlzLG4pLEdyKHRoaXMsZCwhMSkpO2dldCBlcnJvcigpe3JldHVybiB0aGlzLiNhfXNldCBlcnJvcih4KXt0aGlzLiNhPXh9I2k9KEdyKHRoaXMsYyksR3IodGhpcyxsLCJkZWZhdWx0IikpO2dldCBzaXplKCl7cmV0dXJuIHRoaXMuI2l9c2V0IHNpemUoeCl7dGhpcy4jaT14fSNyPShHcih0aGlzLGYpLEdyKHRoaXMseSwiIikpO2dldCBsYWJlbCgpe3JldHVybiB0aGlzLiNyfXNldCBsYWJlbCh4KXt0aGlzLiNyPXh9b2JzZXJ2ZXI9R3IodGhpcyx2KTtfdmlzaWJsZT0hMTtnZXQgaXNWaXNpYmxlKCl7cmV0dXJuIHRoaXMuX3Zpc2libGV9cmVuZGVyKCl7cmV0dXJuIHdgCiAgICAgIDxkaXYKICAgICAgICBjbGFzcz0idGlsZS1jb250YWluZXIgJHt0aGlzLmNsaWNrYWJsZT8iY2xpY2thYmxlIjoiIn0gJHt0aGlzLmxvYWRpbmc/ImxvYWRpbmciOiIifSAke3RoaXMuZXJyb3I/ImVycm9yIjoiIn0iCiAgICAgICAgQGNsaWNrPSR7dGhpcy5oYW5kbGVUaWxlQ2xpY2t9CiAgICAgICAgQG1vdXNlZW50ZXI9JHt0aGlzLm9uVGlsZU1vdXNlRW50ZXJ9CiAgICAgICAgQG1vdXNlbGVhdmU9JHt0aGlzLm9uVGlsZU1vdXNlTGVhdmV9CiAgICAgICAgQG1vdXNlbW92ZT0ke3RoaXMub25UaWxlTW91c2VNb3ZlfQogICAgICA+CiAgICAgICAgJHt0aGlzLmxvYWRpbmc/d2AKICAgICAgICAgIDxkaXYgY2xhc3M9InRpbGUtbG9hZGluZyI+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9InRpbGUtc3Bpbm5lciI+PC9kaXY+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9InRpbGUtbG9hZGluZy10ZXh0Ij5Mb2FkaW5nLi4uPC9kaXY+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICBgOiIifQoKICAgICAgICAke3RoaXMuZXJyb3I/d2AKICAgICAgICAgIDxkaXYgY2xhc3M9InRpbGUtZXJyb3IiPgogICAgICAgICAgICA8ZGVlcy1pY29uIGljb249Imx1Y2lkZTpBbGVydFRyaWFuZ2xlIj48L2RlZXMtaWNvbj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0idGlsZS1lcnJvci10ZXh0Ij5GYWlsZWQgdG8gbG9hZDwvZGl2PgogICAgICAgICAgPC9kaXY+CiAgICAgICAgYDoiIn0KCiAgICAgICAgJHshdGhpcy5sb2FkaW5nJiYhdGhpcy5lcnJvcj90aGlzLnJlbmRlclRpbGVDb250ZW50KCk6IiJ9CgogICAgICAgICR7dGhpcy5sYWJlbD93YAogICAgICAgICAgPGRpdiBjbGFzcz0idGlsZS1sYWJlbCI+JHt0aGlzLmxhYmVsfTwvZGl2PgogICAgICAgIGA6IiJ9CiAgICAgIDwvZGl2PgogICAgYH1hc3luYyBjb25uZWN0ZWRDYWxsYmFjaygpe2F3YWl0IHN1cGVyLmNvbm5lY3RlZENhbGxiYWNrKCksdGhpcy5zZXR1cEludGVyc2VjdGlvbk9ic2VydmVyKCl9YXN5bmMgZGlzY29ubmVjdGVkQ2FsbGJhY2soKXthd2FpdCBzdXBlci5kaXNjb25uZWN0ZWRDYWxsYmFjaygpLHRoaXMub2JzZXJ2ZXImJih0aGlzLm9ic2VydmVyLmRpc2Nvbm5lY3QoKSx0aGlzLm9ic2VydmVyPXZvaWQgMCl9c2V0dXBJbnRlcnNlY3Rpb25PYnNlcnZlcigpe3RoaXMub2JzZXJ2ZXI9bmV3IEludGVyc2VjdGlvbk9ic2VydmVyKHg9Pntmb3IobGV0IE0gb2YgeCl7bGV0IFM9dGhpcy5fdmlzaWJsZTt0aGlzLl92aXNpYmxlPU0uaXNJbnRlcnNlY3RpbmcsdGhpcy5fdmlzaWJsZSYmIVMmJnRoaXMub25CZWNhbWVWaXNpYmxlKCl9fSx7cm9vdDpudWxsLHJvb3RNYXJnaW46IjIwMHB4Iix0aHJlc2hvbGQ6LjAxfSksdGhpcy5vYnNlcnZlci5vYnNlcnZlKHRoaXMpfW9uQmVjYW1lVmlzaWJsZSgpe31vblRpbGVNb3VzZUVudGVyKCl7fW9uVGlsZU1vdXNlTGVhdmUoKXt9b25UaWxlTW91c2VNb3ZlKHgpe31oYW5kbGVUaWxlQ2xpY2soKXt0aGlzLmNsaWNrYWJsZSYmdGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBDdXN0b21FdmVudCgidGlsZS1jbGljayIse2RldGFpbDp0aGlzLmdldFRpbGVDbGlja0RldGFpbCgpLGJ1YmJsZXM6ITAsY29tcG9zZWQ6ITB9KSl9Z2V0VGlsZUNsaWNrRGV0YWlsKCl7cmV0dXJue319fX0pKCl9KTt2YXIgT2wsalY9YigoKT0+e09sPWNsYXNze3N0YXRpYyBwb29sPVtdO3N0YXRpYyBtYXhQb29sU2l6ZT0yMDtzdGF0aWMgTUlOX0NBTlZBU19TSVpFPTI1NjtzdGF0aWMgTUFYX0NBTlZBU19TSVpFPTQwOTY7c3RhdGljIGFjcXVpcmUoZSxhKXtsZXQgaT10aGlzLnBvb2wuZmluZChvPT4hby5pblVzZSYmby5jYW52YXMud2lkdGg+PWUmJm8uY2FudmFzLmhlaWdodD49YSYmby5jYW52YXMud2lkdGg8PWUqMS41JiZvLmNhbnZhcy5oZWlnaHQ8PWEqMS41KTtpZihpKXJldHVybiBpLmluVXNlPSEwLGkubGFzdFVzZWQ9RGF0ZS5ub3coKSxpLmNhbnZhcy53aWR0aD1lLGkuY2FudmFzLmhlaWdodD1hLGkuY3R4LmNsZWFyUmVjdCgwLDAsZSxhKSxpO2lmKHRoaXMucG9vbC5sZW5ndGg8dGhpcy5tYXhQb29sU2l6ZSl7bGV0IG89ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiY2FudmFzIiksZD1vLmdldENvbnRleHQoIjJkIix7YWxwaGE6ITAsZGVzeW5jaHJvbml6ZWQ6ITB9KTtvLndpZHRoPU1hdGgubWluKE1hdGgubWF4KGUsdGhpcy5NSU5fQ0FOVkFTX1NJWkUpLHRoaXMuTUFYX0NBTlZBU19TSVpFKSxvLmhlaWdodD1NYXRoLm1pbihNYXRoLm1heChhLHRoaXMuTUlOX0NBTlZBU19TSVpFKSx0aGlzLk1BWF9DQU5WQVNfU0laRSk7bGV0IGM9e2NhbnZhczpvLGN0eDpkLGluVXNlOiEwLGxhc3RVc2VkOkRhdGUubm93KCl9O3JldHVybiB0aGlzLnBvb2wucHVzaChjKSxjfWxldCByPXRoaXMucG9vbC5maWx0ZXIobz0+IW8uaW5Vc2UpLnNvcnQoKG8sZCk9Pm8ubGFzdFVzZWQtZC5sYXN0VXNlZClbMF07aWYocilyZXR1cm4gci5jYW52YXMud2lkdGg9ZSxyLmNhbnZhcy5oZWlnaHQ9YSxyLmN0eC5jbGVhclJlY3QoMCwwLGUsYSksci5pblVzZT0hMCxyLmxhc3RVc2VkPURhdGUubm93KCkscjtsZXQgcz1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJjYW52YXMiKSxuPXMuZ2V0Q29udGV4dCgiMmQiKTtyZXR1cm4gcy53aWR0aD1lLHMuaGVpZ2h0PWEse2NhbnZhczpzLGN0eDpuLGluVXNlOiEwLGxhc3RVc2VkOkRhdGUubm93KCl9fXN0YXRpYyByZWxlYXNlKGUpe3RoaXMucG9vbC5pbmNsdWRlcyhlKSYmKGUuaW5Vc2U9ITEsZS5jdHguY2xlYXJSZWN0KDAsMCxlLmNhbnZhcy53aWR0aCxlLmNhbnZhcy5oZWlnaHQpKX1zdGF0aWMgcmVsZWFzZUFsbCgpe2ZvcihsZXQgZSBvZiB0aGlzLnBvb2wpZS5pblVzZT0hMSxlLmN0eC5jbGVhclJlY3QoMCwwLGUuY2FudmFzLndpZHRoLGUuY2FudmFzLmhlaWdodCl9c3RhdGljIGRlc3Ryb3koKXtmb3IobGV0IGUgb2YgdGhpcy5wb29sKWUuY2FudmFzLndpZHRoPTAsZS5jYW52YXMuaGVpZ2h0PTA7dGhpcy5wb29sPVtdfXN0YXRpYyBnZXRTdGF0cygpe3JldHVybntwb29sU2l6ZTp0aGlzLnBvb2wubGVuZ3RoLG1heFBvb2xTaXplOnRoaXMubWF4UG9vbFNpemUsaW5Vc2U6dGhpcy5wb29sLmZpbHRlcihlPT5lLmluVXNlKS5sZW5ndGgsYXZhaWxhYmxlOnRoaXMucG9vbC5maWx0ZXIoZT0+IWUuaW5Vc2UpLmxlbmd0aH19c3RhdGljIGFkanVzdFBvb2xTaXplKGUpe2lmKGU8dGhpcy5wb29sLmxlbmd0aCl7bGV0IGE9dGhpcy5wb29sLmxlbmd0aC1lLGk9dGhpcy5wb29sLmZpbHRlcihyPT4hci5pblVzZSkuc2xpY2UoMCxhKTtmb3IobGV0IHIgb2YgaSl7bGV0IHM9dGhpcy5wb29sLmluZGV4T2Yocik7cz4tMSYmdGhpcy5wb29sLnNwbGljZShzLDEpfX10aGlzLm1heFBvb2xTaXplPWV9fX0pO2Z1bmN0aW9uIGdVdCh0LGUpe2xldCBhO3JldHVybiBmdW5jdGlvbiguLi5yKXtsZXQgcz0oKT0+e2NsZWFyVGltZW91dChhKSx0KC4uLnIpfTtjbGVhclRpbWVvdXQoYSksYT13aW5kb3cuc2V0VGltZW91dChzLGUpfX1mdW5jdGlvbiBiVXQodCxlKXtsZXQgYTtyZXR1cm4gZnVuY3Rpb24oLi4ucil7YXx8KHQuYXBwbHkodGhpcyxyKSxhPSEwLHNldFRpbWVvdXQoKCk9PmE9ITEsZSkpfX1mdW5jdGlvbiB2VXQodCl7aWYodD09PTApcmV0dXJuIjAgQnl0ZXMiO2xldCBlPTEwMjQsYT1bIkJ5dGVzIiwiS0IiLCJNQiIsIkdCIl0saT1NYXRoLmZsb29yKE1hdGgubG9nKHQpL01hdGgubG9nKGUpKTtyZXR1cm4gTWF0aC5yb3VuZCh0L01hdGgucG93KGUsaSkqMTAwKS8xMDArIiAiK2FbaV19ZnVuY3Rpb24geVV0KHQsZT0wKXtsZXQgYT10LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO3JldHVybiBhLnRvcD49LWUmJmEubGVmdD49LWUmJmEuYm90dG9tPD0od2luZG93LmlubmVySGVpZ2h0fHxkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuY2xpZW50SGVpZ2h0KStlJiZhLnJpZ2h0PD0od2luZG93LmlubmVyV2lkdGh8fGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5jbGllbnRXaWR0aCkrZX12YXIgUmwsVVY9YigoKT0+e1JsPWNsYXNze3N0YXRpYyBtYXJrcz1uZXcgTWFwO3N0YXRpYyBtZWFzdXJlcz1bXTtzdGF0aWMgbWFyayhlKXt0aGlzLm1hcmtzLnNldChlLHBlcmZvcm1hbmNlLm5vdygpKX1zdGF0aWMgbWVhc3VyZShlLGEpe2xldCBpPXRoaXMubWFya3MuZ2V0KGEpO2lmKGkpe2xldCByPXBlcmZvcm1hbmNlLm5vdygpLWk7cmV0dXJuIHRoaXMubWVhc3VyZXMucHVzaCh7bmFtZTplLGR1cmF0aW9uOnJ9KSx0aGlzLm1hcmtzLmRlbGV0ZShhKSxyfXJldHVybiAwfXN0YXRpYyBnZXRSZXBvcnQoKXtsZXQgZT17bWVhc3VyZXM6Wy4uLnRoaXMubWVhc3VyZXNdLGF2ZXJhZ2VzOnt9fSxhPW5ldyBNYXA7Zm9yKGxldCBpIG9mIHRoaXMubWVhc3VyZXMpYS5oYXMoaS5uYW1lKXx8YS5zZXQoaS5uYW1lLFtdKSxhLmdldChpLm5hbWUpLnB1c2goaS5kdXJhdGlvbik7Zm9yKGxldFtpLHJdb2YgYSllLmF2ZXJhZ2VzW2ldPXIucmVkdWNlKChzLG4pPT5zK24sMCkvci5sZW5ndGg7cmV0dXJuIGV9c3RhdGljIGNsZWFyKCl7dGhpcy5tYXJrcy5jbGVhcigpLHRoaXMubWVhc3VyZXM9W119fX0pO3ZhciBzdnQsbnZ0PWIoKCk9Pnt1ZSgpO3N2dD1RYAogIC5wcmV2aWV3LXN0YWNrIHsKICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgIHdpZHRoOiAxMDAlOwogICAgaGVpZ2h0OiAxMDAlOwogICAgZGlzcGxheTogZmxleDsKICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7CiAgICBvdmVyZmxvdzogaGlkZGVuOwogIH0KCiAgLnByZXZpZXctc3RhY2subm9uLWE0IHsKICAgIHBhZGRpbmc6IDEycHg7CiAgfQoKICAucHJldmlldy1jYW52YXMgewogICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgYmFja2dyb3VuZDogd2hpdGU7CiAgICBkaXNwbGF5OiBibG9jazsKICAgIG1heC13aWR0aDogMTAwJTsKICAgIG1heC1oZWlnaHQ6IDEwMCU7CiAgICB3aWR0aDogYXV0bzsKICAgIGhlaWdodDogYXV0bzsKICAgIG9iamVjdC1maXQ6IGNvbnRhaW47CiAgICBpbWFnZS1yZW5kZXJpbmc6IGF1dG87CiAgICAtd2Via2l0LWZvbnQtc21vb3RoaW5nOiBhbnRpYWxpYXNlZDsKICAgIGJveC1zaGFkb3c6IDAgMXB4IDNweCAke3AuYmRUaGVtZSgicmdiYSgwLCAwLCAwLCAwLjEpIiwicmdiYSgwLCAwLCAwLCAwLjMpIil9OwogIH0KCiAgLm5vbi1hNCAucHJldmlldy1jYW52YXMgewogICAgYm9yZGVyOiAxcHggc29saWQgJHtwLmJkVGhlbWUoImhzbCgyMTQgMzElIDkyJSkiLCJoc2woMjE3IDI1JSAyNCUpIil9OwogICAgYm9yZGVyLXJhZGl1czogNHB4OwogIH0KCiAgLyogR3JpZCBvcHRpbWl6YXRpb25zICovCiAgOmhvc3QoW2dyaWQtbW9kZV0pIC5wcmV2aWV3LWNhbnZhcyB7CiAgICBpbWFnZS1yZW5kZXJpbmc6IC13ZWJraXQtb3B0aW1pemUtY29udHJhc3Q7CiAgICBpbWFnZS1yZW5kZXJpbmc6IGNyaXNwLWVkZ2VzOwogIH0KYH0pO3ZhciBvdnQsbHZ0PWIoKCk9Pnt1ZSgpO292dD0oKT0+e2xldCB0PVsiaHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL21vemlsbGEvcGRmLmpzL2JhMmVkZWFlL2V4YW1wbGVzL2xlYXJuaW5nL2hlbGxvd29ybGQucGRmIiwiaHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL21vemlsbGEvcGRmLmpzL2JhMmVkZWFlL3dlYi9jb21wcmVzc2VkLnRyYWNlbW9ua2V5LXBsZGktMDkucGRmIl07cmV0dXJuIHdgCiAgICA8c3R5bGU+CiAgICAgIC5kZW1vLWNvbnRhaW5lciB7CiAgICAgICAgcGFkZGluZzogNDBweDsKICAgICAgICBiYWNrZ3JvdW5kOiAjZjVmNWY1OwogICAgICB9CgogICAgICAuZGVtby1zZWN0aW9uIHsKICAgICAgICBtYXJnaW4tYm90dG9tOiA2MHB4OwogICAgICB9CgogICAgICBoMyB7CiAgICAgICAgbWFyZ2luLWJvdHRvbTogMjBweDsKICAgICAgICBmb250LXNpemU6IDE4cHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDsKICAgICAgfQoKICAgICAgLnByZXZpZXctZ3JpZCB7CiAgICAgICAgZGlzcGxheTogZ3JpZDsKICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdChhdXRvLWZpbGwsIG1pbm1heCgyMDBweCwgMWZyKSk7CiAgICAgICAgZ2FwOiAyNHB4OwogICAgICB9CgogICAgICAucHJldmlldy1yb3cgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgZ2FwOiAyNHB4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgbWFyZ2luLWJvdHRvbTogMjBweDsKICAgICAgfQoKICAgICAgLnByZXZpZXctbGFiZWwgewogICAgICAgIGZvbnQtc2l6ZTogMTRweDsKICAgICAgICBmb250LXdlaWdodDogNTAwOwogICAgICAgIG1pbi13aWR0aDogMTAwcHg7CiAgICAgIH0KICAgIDwvc3R5bGU+CgogICAgPGRpdiBjbGFzcz0iZGVtby1jb250YWluZXIiPgogICAgICA8ZGl2IGNsYXNzPSJkZW1vLXNlY3Rpb24iPgogICAgICAgIDxoMz5TaW5nbGUgUERGIFRpbGU8L2gzPgogICAgICAgIDxkZWVzLXRpbGUtcGRmCiAgICAgICAgICBwZGZVcmw9Imh0dHBzOi8vcmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbS9tb3ppbGxhL3BkZi5qcy9iYTJlZGVhZS93ZWIvY29tcHJlc3NlZC50cmFjZW1vbmtleS1wbGRpLTA5LnBkZiIKICAgICAgICAgIGNsaWNrYWJsZT0idHJ1ZSIKICAgICAgICA+PC9kZWVzLXRpbGUtcGRmPgogICAgICA8L2Rpdj4KCiAgICAgIDxkaXYgY2xhc3M9ImRlbW8tc2VjdGlvbiI+CiAgICAgICAgPGgzPkRpZmZlcmVudCBTaXplczwvaDM+CiAgICAgICAgPGRpdiBjbGFzcz0icHJldmlldy1yb3ciPgogICAgICAgICAgPGRpdiBjbGFzcz0icHJldmlldy1sYWJlbCI+U21hbGw6PC9kaXY+CiAgICAgICAgICA8ZGVlcy10aWxlLXBkZgogICAgICAgICAgICBzaXplPSJzbWFsbCIKICAgICAgICAgICAgcGRmVXJsPSJodHRwczovL3Jhdy5naXRodWJ1c2VyY29udGVudC5jb20vbW96aWxsYS9wZGYuanMvYmEyZWRlYWUvZXhhbXBsZXMvbGVhcm5pbmcvaGVsbG93b3JsZC5wZGYiCiAgICAgICAgICAgIGNsaWNrYWJsZT0idHJ1ZSIKICAgICAgICAgID48L2RlZXMtdGlsZS1wZGY+CiAgICAgICAgPC9kaXY+CgogICAgICAgIDxkaXYgY2xhc3M9InByZXZpZXctcm93Ij4KICAgICAgICAgIDxkaXYgY2xhc3M9InByZXZpZXctbGFiZWwiPkRlZmF1bHQ6PC9kaXY+CiAgICAgICAgICA8ZGVlcy10aWxlLXBkZgogICAgICAgICAgICBwZGZVcmw9Imh0dHBzOi8vcmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbS9tb3ppbGxhL3BkZi5qcy9iYTJlZGVhZS9leGFtcGxlcy9sZWFybmluZy9oZWxsb3dvcmxkLnBkZiIKICAgICAgICAgICAgY2xpY2thYmxlPSJ0cnVlIgogICAgICAgICAgPjwvZGVlcy10aWxlLXBkZj4KICAgICAgICA8L2Rpdj4KCiAgICAgICAgPGRpdiBjbGFzcz0icHJldmlldy1yb3ciPgogICAgICAgICAgPGRpdiBjbGFzcz0icHJldmlldy1sYWJlbCI+TGFyZ2U6PC9kaXY+CiAgICAgICAgICA8ZGVlcy10aWxlLXBkZgogICAgICAgICAgICBzaXplPSJsYXJnZSIKICAgICAgICAgICAgcGRmVXJsPSJodHRwczovL3Jhdy5naXRodWJ1c2VyY29udGVudC5jb20vbW96aWxsYS9wZGYuanMvYmEyZWRlYWUvZXhhbXBsZXMvbGVhcm5pbmcvaGVsbG93b3JsZC5wZGYiCiAgICAgICAgICAgIGNsaWNrYWJsZT0idHJ1ZSIKICAgICAgICAgID48L2RlZXMtdGlsZS1wZGY+CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGl2PgoKICAgICAgPGRpdiBjbGFzcz0iZGVtby1zZWN0aW9uIj4KICAgICAgICA8aDM+V2l0aCBMYWJlbDwvaDM+CiAgICAgICAgPGRlZXMtdGlsZS1wZGYKICAgICAgICAgIHBkZlVybD0iaHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL21vemlsbGEvcGRmLmpzL2JhMmVkZWFlL3dlYi9jb21wcmVzc2VkLnRyYWNlbW9ua2V5LXBsZGktMDkucGRmIgogICAgICAgICAgY2xpY2thYmxlPSJ0cnVlIgogICAgICAgICAgbGFiZWw9IlJlc2VhcmNoIFBhcGVyLnBkZiIKICAgICAgICA+PC9kZWVzLXRpbGUtcGRmPgogICAgICA8L2Rpdj4KCiAgICAgIDxkaXYgY2xhc3M9ImRlbW8tc2VjdGlvbiI+CiAgICAgICAgPGgzPk5vbi1DbGlja2FibGU8L2gzPgogICAgICAgIDxkZWVzLXRpbGUtcGRmCiAgICAgICAgICBwZGZVcmw9Imh0dHBzOi8vcmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbS9tb3ppbGxhL3BkZi5qcy9iYTJlZGVhZS9leGFtcGxlcy9sZWFybmluZy9oZWxsb3dvcmxkLnBkZiIKICAgICAgICAgIGNsaWNrYWJsZT0iZmFsc2UiCiAgICAgICAgPjwvZGVlcy10aWxlLXBkZj4KICAgICAgPC9kaXY+CgogICAgICA8ZGl2IGNsYXNzPSJkZW1vLXNlY3Rpb24iPgogICAgICAgIDxoMz5HcmlkIC0gMjAgUERGcyB3aXRoIExhenkgTG9hZGluZzwvaDM+CiAgICAgICAgPGRpdiBjbGFzcz0icHJldmlldy1ncmlkIj4KICAgICAgICAgICR7KGE9PntsZXQgaT1bXTtmb3IobGV0IHI9MDtyPGE7cisrKXtsZXQgcz10W3IldC5sZW5ndGhdO2kucHVzaCh3YAogICAgICAgIDxkZWVzLXRpbGUtcGRmCiAgICAgICAgICBwZGZVcmw9IiR7c30iCiAgICAgICAgICBjbGlja2FibGU9InRydWUiCiAgICAgICAgICBncmlkLW1vZGUKICAgICAgICAgIEB0aWxlLWNsaWNrPSR7bj0+e2NvbnNvbGUubG9nKCJQREYgVGlsZSBjbGlja2VkOiIsbi5kZXRhaWwpLGFsZXJ0KGBQREYgY2xpY2tlZDogJHtuLmRldGFpbC5wYWdlQ291bnR9IHBhZ2VzYCl9fQogICAgICAgID48L2RlZXMtdGlsZS1wZGY+CiAgICAgIGApfXJldHVybiBpfSkoMjApfQogICAgICAgIDwvZGl2PgogICAgICA8L2Rpdj4KICAgIDwvZGl2PgogIGB9fSk7dmFyIGQ0LEthLG93LFdWPWIoKCk9Pnt1ZSgpO2JvKCk7anMoKTtudygpO2pWKCk7VVYoKTtudnQoKTtsdnQoKTtkND1mdW5jdGlvbih0LGUsYSxpLHIscyl7ZnVuY3Rpb24gbih4KXtpZih4IT09dm9pZCAwJiZ0eXBlb2YgeCE9ImZ1bmN0aW9uIil0aHJvdyBuZXcgVHlwZUVycm9yKCJGdW5jdGlvbiBleHBlY3RlZCIpO3JldHVybiB4fWZvcih2YXIgbz1pLmtpbmQsZD1vPT09ImdldHRlciI/ImdldCI6bz09PSJzZXR0ZXIiPyJzZXQiOiJ2YWx1ZSIsYz0hZSYmdD9pLnN0YXRpYz90OnQucHJvdG90eXBlOm51bGwsaD1lfHwoYz9PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGMsaS5uYW1lKTp7fSksbCxmPSExLGc9YS5sZW5ndGgtMTtnPj0wO2ctLSl7dmFyIHk9e307Zm9yKHZhciB2IGluIGkpeVt2XT12PT09ImFjY2VzcyI/e306aVt2XTtmb3IodmFyIHYgaW4gaS5hY2Nlc3MpeS5hY2Nlc3Nbdl09aS5hY2Nlc3Nbdl07eS5hZGRJbml0aWFsaXplcj1mdW5jdGlvbih4KXtpZihmKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBhZGQgaW5pdGlhbGl6ZXJzIGFmdGVyIGRlY29yYXRpb24gaGFzIGNvbXBsZXRlZCIpO3MucHVzaChuKHh8fG51bGwpKX07dmFyIG09KDAsYVtnXSkobz09PSJhY2Nlc3NvciI/e2dldDpoLmdldCxzZXQ6aC5zZXR9OmhbZF0seSk7aWYobz09PSJhY2Nlc3NvciIpe2lmKG09PT12b2lkIDApY29udGludWU7aWYobT09PW51bGx8fHR5cGVvZiBtIT0ib2JqZWN0Iil0aHJvdyBuZXcgVHlwZUVycm9yKCJPYmplY3QgZXhwZWN0ZWQiKTsobD1uKG0uZ2V0KSkmJihoLmdldD1sKSwobD1uKG0uc2V0KSkmJihoLnNldD1sKSwobD1uKG0uaW5pdCkpJiZyLnVuc2hpZnQobCl9ZWxzZShsPW4obSkpJiYobz09PSJmaWVsZCI/ci51bnNoaWZ0KGwpOmhbZF09bCl9YyYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGMsaS5uYW1lLGgpLGY9ITB9LEthPWZ1bmN0aW9uKHQsZSxhKXtmb3IodmFyIGk9YXJndW1lbnRzLmxlbmd0aD4yLHI9MDtyPGUubGVuZ3RoO3IrKylhPWk/ZVtyXS5jYWxsKHQsYSk6ZVtyXS5jYWxsKHQpO3JldHVybiBpP2E6dm9pZCAwfSxvdz0oKCk9PntsZXQgdD1bcGUoImRlZXMtdGlsZS1wZGYiKV0sZSxhPVtdLGkscj12YSxzLG49W10sbz1bXSxkLGM9W10saD1bXSxsLGY9W10sZz1bXSx5LHY9W10sbT1bXSx4LE09W10sUz1bXSxGLF89W10saz1bXTt2YXIgTj1jbGFzcyBleHRlbmRzIHJ7c3RhdGlje2k9dGhpc31zdGF0aWN7bGV0IEw9dHlwZW9mIFN5bWJvbD09ImZ1bmN0aW9uIiYmU3ltYm9sLm1ldGFkYXRhP09iamVjdC5jcmVhdGUocltTeW1ib2wubWV0YWRhdGFdPz9udWxsKTp2b2lkIDA7cz1bSSh7dHlwZTpTdHJpbmd9KV0sZD1bSSh7dHlwZTpOdW1iZXJ9KV0sbD1bSSh7dHlwZTpOdW1iZXJ9KV0seT1bSSh7dHlwZTpCb29sZWFufSldLHg9W0koe3R5cGU6Qm9vbGVhbn0pXSxGPVtJKHt0eXBlOkJvb2xlYW59KV0sZDQodGhpcyxudWxsLHMse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJwZGZVcmwiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOkE9PiJwZGZVcmwiaW4gQSxnZXQ6QT0+QS5wZGZVcmwsc2V0OihBLHEpPT57QS5wZGZVcmw9cX19LG1ldGFkYXRhOkx9LG4sbyksZDQodGhpcyxudWxsLGQse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJjdXJyZW50UHJldmlld1BhZ2UiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOkE9PiJjdXJyZW50UHJldmlld1BhZ2UiaW4gQSxnZXQ6QT0+QS5jdXJyZW50UHJldmlld1BhZ2Usc2V0OihBLHEpPT57QS5jdXJyZW50UHJldmlld1BhZ2U9cX19LG1ldGFkYXRhOkx9LGMsaCksZDQodGhpcyxudWxsLGwse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJwYWdlQ291bnQiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOkE9PiJwYWdlQ291bnQiaW4gQSxnZXQ6QT0+QS5wYWdlQ291bnQsc2V0OihBLHEpPT57QS5wYWdlQ291bnQ9cX19LG1ldGFkYXRhOkx9LGYsZyksZDQodGhpcyxudWxsLHkse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJyZW5kZXJlZCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6QT0+InJlbmRlcmVkImluIEEsZ2V0OkE9PkEucmVuZGVyZWQsc2V0OihBLHEpPT57QS5yZW5kZXJlZD1xfX0sbWV0YWRhdGE6TH0sdixtKSxkNCh0aGlzLG51bGwseCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImlzSG92ZXJpbmciLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOkE9PiJpc0hvdmVyaW5nImluIEEsZ2V0OkE9PkEuaXNIb3ZlcmluZyxzZXQ6KEEscSk9PntBLmlzSG92ZXJpbmc9cX19LG1ldGFkYXRhOkx9LE0sUyksZDQodGhpcyxudWxsLEYse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJpc0E0Rm9ybWF0IixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpBPT4iaXNBNEZvcm1hdCJpbiBBLGdldDpBPT5BLmlzQTRGb3JtYXQsc2V0OihBLHEpPT57QS5pc0E0Rm9ybWF0PXF9fSxtZXRhZGF0YTpMfSxfLGspLGQ0KG51bGwsZT17dmFsdWU6aX0sdCx7a2luZDoiY2xhc3MiLG5hbWU6aS5uYW1lLG1ldGFkYXRhOkx9LG51bGwsYSksTj1pPWUudmFsdWUsTCYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGksU3ltYm9sLm1ldGFkYXRhLHtlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMCx2YWx1ZTpMfSl9c3RhdGljIGRlbW89b3Z0O3N0YXRpYyBkZW1vR3JvdXBzPVsiTWVkaWEiLCJQREYiXTtzdGF0aWMgc3R5bGVzPVsuLi5KMixzdnRdOyNlPUthKHRoaXMsbiwiIik7Z2V0IHBkZlVybCgpe3JldHVybiB0aGlzLiNlfXNldCBwZGZVcmwoTCl7dGhpcy4jZT1MfSN0PShLYSh0aGlzLG8pLEthKHRoaXMsYywxKSk7Z2V0IGN1cnJlbnRQcmV2aWV3UGFnZSgpe3JldHVybiB0aGlzLiN0fXNldCBjdXJyZW50UHJldmlld1BhZ2UoTCl7dGhpcy4jdD1MfSNhPShLYSh0aGlzLGgpLEthKHRoaXMsZiwwKSk7Z2V0IHBhZ2VDb3VudCgpe3JldHVybiB0aGlzLiNhfXNldCBwYWdlQ291bnQoTCl7dGhpcy4jYT1MfSNpPShLYSh0aGlzLGcpLEthKHRoaXMsdiwhMSkpO2dldCByZW5kZXJlZCgpe3JldHVybiB0aGlzLiNpfXNldCByZW5kZXJlZChMKXt0aGlzLiNpPUx9I3I9KEthKHRoaXMsbSksS2EodGhpcyxNLCExKSk7Z2V0IGlzSG92ZXJpbmcoKXtyZXR1cm4gdGhpcy4jcn1zZXQgaXNIb3ZlcmluZyhMKXt0aGlzLiNyPUx9I3M9KEthKHRoaXMsUyksS2EodGhpcyxfLCEwKSk7Z2V0IGlzQTRGb3JtYXQoKXtyZXR1cm4gdGhpcy4jc31zZXQgaXNBNEZvcm1hdChMKXt0aGlzLiNzPUx9cmVuZGVyUGFnZXNUYXNrPShLYSh0aGlzLGspLG51bGwpO3JlbmRlclBhZ2VzUXVldWVkPSExO3BkZkRvY3VtZW50O2NhbnZhc2VzPVtdO3Jlc2l6ZU9ic2VydmVyO3N0YWNrRWxlbWVudD1udWxsO2xvYWRlZFBkZlVybD1udWxsO3JlbmRlclRpbGVDb250ZW50KCl7cmV0dXJuIHdgCiAgICAgIDxkaXYgY2xhc3M9InByZXZpZXctc3RhY2sgJHt0aGlzLmlzQTRGb3JtYXQ/IiI6Im5vbi1hNCJ9Ij4KICAgICAgICA8Y2FudmFzCiAgICAgICAgICBjbGFzcz0icHJldmlldy1jYW52YXMiCiAgICAgICAgICBkYXRhLXBhZ2U9IiR7dGhpcy5jdXJyZW50UHJldmlld1BhZ2V9IgogICAgICAgID48L2NhbnZhcz4KICAgICAgPC9kaXY+CgogICAgICAke3RoaXMucGFnZUNvdW50PjEmJnRoaXMuaXNIb3ZlcmluZz93YAogICAgICAgIDxkaXYgY2xhc3M9InRpbGUtYmFkZ2UiPgogICAgICAgICAgUGFnZSAke3RoaXMuY3VycmVudFByZXZpZXdQYWdlfSBvZiAke3RoaXMucGFnZUNvdW50fQogICAgICAgIDwvZGl2PgogICAgICBgOiIifQoKICAgICAgJHt0aGlzLnBhZ2VDb3VudD4wJiYhdGhpcy5pc0hvdmVyaW5nP3dgCiAgICAgICAgPGRpdiBjbGFzcz0idGlsZS1iYWRnZS1jb3JuZXIiPgogICAgICAgICAgJHt0aGlzLnBhZ2VDb3VudH0gcGFnZSR7dGhpcy5wYWdlQ291bnQ+MT8icyI6IiJ9CiAgICAgICAgPC9kaXY+CiAgICAgIGA6IiJ9CgogICAgICAke3RoaXMuY2xpY2thYmxlP3dgCiAgICAgICAgPGRpdiBjbGFzcz0idGlsZS1vdmVybGF5Ij4KICAgICAgICAgIDxkZWVzLWljb24gaWNvbj0ibHVjaWRlOkV5ZSI+PC9kZWVzLWljb24+CiAgICAgICAgICA8c3Bhbj5WaWV3IFBERjwvc3Bhbj4KICAgICAgICA8L2Rpdj4KICAgICAgYDoiIn0KICAgIGB9Z2V0VGlsZUNsaWNrRGV0YWlsKCl7cmV0dXJue3BkZlVybDp0aGlzLnBkZlVybCxwYWdlQ291bnQ6dGhpcy5wYWdlQ291bnR9fW9uQmVjYW1lVmlzaWJsZSgpeyF0aGlzLnJlbmRlcmVkJiZ0aGlzLnBkZlVybCYmdGhpcy5sb2FkQW5kUmVuZGVyUHJldmlldygpfW9uVGlsZU1vdXNlRW50ZXIoKXt0aGlzLmlzSG92ZXJpbmc9ITB9b25UaWxlTW91c2VMZWF2ZSgpe3RoaXMuaXNIb3ZlcmluZz0hMSx0aGlzLmN1cnJlbnRQcmV2aWV3UGFnZSE9PTEmJih0aGlzLmN1cnJlbnRQcmV2aWV3UGFnZT0xLHRoaXMuc2NoZWR1bGVSZW5kZXJQYWdlcygpKX1vblRpbGVNb3VzZU1vdmUoTCl7aWYoIXRoaXMuaXNIb3ZlcmluZ3x8dGhpcy5wYWdlQ291bnQ8PTEpcmV0dXJuO2xldCBBPXRoaXMuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkscT1MLmNsaWVudFgtQS5sZWZ0LEM9QS53aWR0aCx6PU1hdGgubWF4KDAsTWF0aC5taW4oMSxxL0MpKSxFPU1hdGguY2VpbCh6KnRoaXMucGFnZUNvdW50KXx8MTtFIT09dGhpcy5jdXJyZW50UHJldmlld1BhZ2UmJih0aGlzLmN1cnJlbnRQcmV2aWV3UGFnZT1FLHRoaXMuc2NoZWR1bGVSZW5kZXJQYWdlcygpKX1hc3luYyBjb25uZWN0ZWRDYWxsYmFjaygpe2F3YWl0IHN1cGVyLmNvbm5lY3RlZENhbGxiYWNrKCksYXdhaXQgdGhpcy51cGRhdGVDb21wbGV0ZSx0aGlzLmNhY2hlRWxlbWVudHMoKSx0aGlzLnNldHVwUmVzaXplT2JzZXJ2ZXIoKX1hc3luYyBkaXNjb25uZWN0ZWRDYWxsYmFjaygpe2F3YWl0IHN1cGVyLmRpc2Nvbm5lY3RlZENhbGxiYWNrKCksdGhpcy5jbGVhbnVwKCksdGhpcy5yZXNpemVPYnNlcnZlcj8uZGlzY29ubmVjdCgpLHRoaXMucmVzaXplT2JzZXJ2ZXI9dm9pZCAwfWFzeW5jIGxvYWRBbmRSZW5kZXJQcmV2aWV3KCl7aWYoISh0aGlzLnJlbmRlcmVkfHx0aGlzLmxvYWRpbmcpKXt0aGlzLmxvYWRpbmc9ITAsdGhpcy5lcnJvcj0hMSxSbC5tYXJrKGBwcmV2aWV3LWxvYWQtJHt0aGlzLnBkZlVybH1gKTt0cnl7dGhpcy5wZGZEb2N1bWVudD1hd2FpdCBXci5sb2FkRG9jdW1lbnQodGhpcy5wZGZVcmwpLHRoaXMucGFnZUNvdW50PXRoaXMucGRmRG9jdW1lbnQubnVtUGFnZXMsdGhpcy5jdXJyZW50UHJldmlld1BhZ2U9MSx0aGlzLmxvYWRlZFBkZlVybD10aGlzLnBkZlVybCx0aGlzLmxvYWRpbmc9ITEsYXdhaXQgdGhpcy51cGRhdGVDb21wbGV0ZSx0aGlzLmNhY2hlRWxlbWVudHMoKSxhd2FpdCB0aGlzLnNjaGVkdWxlUmVuZGVyUGFnZXMoKSx0aGlzLnJlbmRlcmVkPSEwO2xldCBMPVJsLm1lYXN1cmUoYHByZXZpZXctcmVuZGVyLSR7dGhpcy5wZGZVcmx9YCxgcHJldmlldy1sb2FkLSR7dGhpcy5wZGZVcmx9YCk7Y29uc29sZS5sb2coYFBERiB0aWxlIHJlbmRlcmVkIGluICR7TH1tc2ApfWNhdGNoKEwpe2NvbnNvbGUuZXJyb3IoIkZhaWxlZCB0byBsb2FkIFBERiB0aWxlOiIsTCksdGhpcy5lcnJvcj0hMCx0aGlzLmxvYWRpbmc9ITF9fX1zY2hlZHVsZVJlbmRlclBhZ2VzKCl7cmV0dXJuIHRoaXMucGRmRG9jdW1lbnQ/dGhpcy5yZW5kZXJQYWdlc1Rhc2s/KHRoaXMucmVuZGVyUGFnZXNRdWV1ZWQ9ITAsdGhpcy5yZW5kZXJQYWdlc1Rhc2spOih0aGlzLnJlbmRlclBhZ2VzVGFzaz0oYXN5bmMoKT0+e3RyeXthd2FpdCB0aGlzLnBlcmZvcm1SZW5kZXJQYWdlcygpfWNhdGNoKEwpe2NvbnNvbGUuZXJyb3IoIkZhaWxlZCB0byByZW5kZXIgUERGIHRpbGUgcGFnZXM6IixMKX19KSgpLmZpbmFsbHkoKCk9Pnt0aGlzLnJlbmRlclBhZ2VzVGFzaz1udWxsLHRoaXMucmVuZGVyUGFnZXNRdWV1ZWQmJih0aGlzLnJlbmRlclBhZ2VzUXVldWVkPSExLHRoaXMuc2NoZWR1bGVSZW5kZXJQYWdlcygpKX0pLHRoaXMucmVuZGVyUGFnZXNUYXNrKTpQcm9taXNlLnJlc29sdmUoKX1hc3luYyBwZXJmb3JtUmVuZGVyUGFnZXMoKXtpZighdGhpcy5wZGZEb2N1bWVudClyZXR1cm47YXdhaXQgbmV3IFByb21pc2UoQz0+cmVxdWVzdEFuaW1hdGlvbkZyYW1lKEMpKTtsZXQgTD10aGlzLnNoYWRvd1Jvb3Q/LnF1ZXJ5U2VsZWN0b3IoIi5wcmV2aWV3LWNhbnZhcyIpO2lmKCFMKXJldHVybjt0aGlzLmNsZWFyQ2FudmFzZXMoKSx0aGlzLmNhY2hlRWxlbWVudHMoKTtsZXR7YXZhaWxhYmxlV2lkdGg6QSxhdmFpbGFibGVIZWlnaHQ6cX09dGhpcy5nZXRBdmFpbGFibGVTaXplKCk7dHJ5e2xldCBDPXRoaXMuY3VycmVudFByZXZpZXdQYWdlLHo9YXdhaXQgdGhpcy5wZGZEb2N1bWVudC5nZXRQYWdlKEMpLEU9ei5nZXRWaWV3cG9ydCh7c2NhbGU6MX0pLFQ9RS5oZWlnaHQvRS53aWR0aCwkPTEuNDE0LFY9LjcwNyxSPTEuMjk0LFU9Ljc3MyxyZT0uMDUsaj1NYXRoLmFicyhULSQpPCQqcmUsbWU9TWF0aC5hYnMoVC1WKTxWKnJlLHdlPU1hdGguYWJzKFQtUik8UipyZSxIPU1hdGguYWJzKFQtVSk8VSpyZTt0aGlzLmlzQTRGb3JtYXQ9anx8bWV8fHdlfHxIO2xldCBjZT10aGlzLmlzQTRGb3JtYXQ/QTpBLTI0LGtlPXRoaXMuaXNBNEZvcm1hdD9xOnEtMjQsVz1jZT4wP2NlL0Uud2lkdGg6MCxEPWtlPjA/a2UvRS5oZWlnaHQ6MCxPPU1hdGgubWluKFd8fC41LER8fFd8fC41KSxaPU1hdGgubWluKE8qMiwzKTtpZighTnVtYmVyLmlzRmluaXRlKFopfHxaPD0wKXt6LmNsZWFudXA/LigpO3JldHVybn1sZXQgWT16LmdldFZpZXdwb3J0KHtzY2FsZTpafSksb2U9T2wuYWNxdWlyZShZLndpZHRoLFkuaGVpZ2h0KTt0aGlzLmNhbnZhc2VzLnB1c2gob2UpO2xldCBnZT17Y2FudmFzQ29udGV4dDpvZS5jdHgsdmlld3BvcnQ6WX07YXdhaXQgei5yZW5kZXIoZ2UpLnByb21pc2UsTC53aWR0aD1ZLndpZHRoLEwuaGVpZ2h0PVkuaGVpZ2h0O2xldCBiZT1jZSwkZT1ZLmhlaWdodC9ZLndpZHRoKmNlO2lmKCRlPmtlKXtsZXQgUD1rZSxLPVkud2lkdGgvWS5oZWlnaHQqa2U7TC5zdHlsZS53aWR0aD1gJHtLfXB4YCxMLnN0eWxlLmhlaWdodD1gJHtQfXB4YH1lbHNlIEwuc3R5bGUud2lkdGg9YCR7YmV9cHhgLEwuc3R5bGUuaGVpZ2h0PWAkeyRlfXB4YDtsZXQgQj1MLmdldENvbnRleHQoIjJkIik7QiYmKEIuaW1hZ2VTbW9vdGhpbmdFbmFibGVkPSEwLEIuaW1hZ2VTbW9vdGhpbmdRdWFsaXR5PSJoaWdoIixCLmRyYXdJbWFnZShvZS5jYW52YXMsMCwwKSksei5jbGVhbnVwKCl9Y2F0Y2goQyl7Y29uc29sZS5lcnJvcihgRmFpbGVkIHRvIHJlbmRlciBwYWdlICR7dGhpcy5jdXJyZW50UHJldmlld1BhZ2V9OmAsQyl9fWNsZWFyQ2FudmFzZXMoKXtmb3IobGV0IEwgb2YgdGhpcy5jYW52YXNlcylPbC5yZWxlYXNlKEwpO3RoaXMuY2FudmFzZXM9W119Y2xlYW51cCgpe3RoaXMuY2xlYXJDYW52YXNlcygpLHRoaXMucGRmRG9jdW1lbnQmJihXci5yZWxlYXNlRG9jdW1lbnQodGhpcy5sb2FkZWRQZGZVcmw/P3RoaXMucGRmVXJsKSx0aGlzLnBkZkRvY3VtZW50PW51bGwpLHRoaXMucmVuZGVyUGFnZXNRdWV1ZWQ9ITEsdGhpcy5wYWdlQ291bnQ9MCx0aGlzLmN1cnJlbnRQcmV2aWV3UGFnZT0xLHRoaXMuaXNIb3ZlcmluZz0hMSx0aGlzLmlzQTRGb3JtYXQ9ITAsdGhpcy5zdGFja0VsZW1lbnQ9bnVsbCx0aGlzLmxvYWRlZFBkZlVybD1udWxsLHRoaXMucmVuZGVyZWQ9ITEsdGhpcy5sb2FkaW5nPSExLHRoaXMuZXJyb3I9ITF9YXN5bmMgdXBkYXRlZChMKXtpZihzdXBlci51cGRhdGVkKEwpLEwuaGFzKCJwZGZVcmwiKSYmdGhpcy5wZGZVcmwpe2xldCBBPUwuZ2V0KCJwZGZVcmwiKTtBJiZXci5yZWxlYXNlRG9jdW1lbnQoQSksdGhpcy5jbGVhbnVwKCksdGhpcy5yZW5kZXJlZD0hMSx0aGlzLmN1cnJlbnRQcmV2aWV3UGFnZT0xO2xldCBxPXRoaXMuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7cS50b3A8d2luZG93LmlubmVySGVpZ2h0JiZxLmJvdHRvbT4wJiZ0aGlzLmxvYWRBbmRSZW5kZXJQcmV2aWV3KCl9TC5oYXMoImN1cnJlbnRQcmV2aWV3UGFnZSIpJiZ0aGlzLnJlbmRlcmVkJiZhd2FpdCB0aGlzLnNjaGVkdWxlUmVuZGVyUGFnZXMoKX1nZXRDb250ZXh0TWVudUl0ZW1zKCl7bGV0IEw9W107cmV0dXJuIHRoaXMuY2xpY2thYmxlJiYoTC5wdXNoKHtuYW1lOiJWaWV3IFBERiIsaWNvbk5hbWU6Imx1Y2lkZTpFeWUiLGFjdGlvbjphc3luYygpPT57dGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBDdXN0b21FdmVudCgidGlsZS1jbGljayIse2RldGFpbDp0aGlzLmdldFRpbGVDbGlja0RldGFpbCgpLGJ1YmJsZXM6ITAsY29tcG9zZWQ6ITB9KSl9fSksTC5wdXNoKHtkaXZpZGVyOiEwfSkpLEwucHVzaCh7bmFtZToiT3BlbiBQREYgaW4gTmV3IFRhYiIsaWNvbk5hbWU6Imx1Y2lkZTpFeHRlcm5hbExpbmsiLGFjdGlvbjphc3luYygpPT57d2luZG93Lm9wZW4odGhpcy5wZGZVcmwsIl9ibGFuayIpfX0se2RpdmlkZXI6ITB9LHtuYW1lOiJDb3B5IFBERiBVUkwiLGljb25OYW1lOiJsdWNpZGU6Q29weSIsYWN0aW9uOmFzeW5jKCk9Pnthd2FpdCBuYXZpZ2F0b3IuY2xpcGJvYXJkLndyaXRlVGV4dCh0aGlzLnBkZlVybCl9fSx7bmFtZToiRG93bmxvYWQgUERGIixpY29uTmFtZToibHVjaWRlOkRvd25sb2FkIixhY3Rpb246YXN5bmMoKT0+e2xldCBBPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImEiKTtBLmhyZWY9dGhpcy5wZGZVcmwsQS5kb3dubG9hZD10aGlzLnBkZlVybC5zcGxpdCgiLyIpLnBvcCgpfHwiZG9jdW1lbnQucGRmIixBLmNsaWNrKCl9fSksdGhpcy5wYWdlQ291bnQ+MCYmTC5wdXNoKHtkaXZpZGVyOiEwfSx7bmFtZTpgJHt0aGlzLnBhZ2VDb3VudH0gcGFnZSR7dGhpcy5wYWdlQ291bnQ+MT8icyI6IiJ9YCxpY29uTmFtZToibHVjaWRlOkZpbGVUZXh0IixkaXNhYmxlZDohMCxhY3Rpb246YXN5bmMoKT0+e319KSxMfWNhY2hlRWxlbWVudHMoKXt0aGlzLnN0YWNrRWxlbWVudHx8KHRoaXMuc3RhY2tFbGVtZW50PXRoaXMuc2hhZG93Um9vdD8ucXVlcnlTZWxlY3RvcigiLnByZXZpZXctc3RhY2siKSl9c2V0dXBSZXNpemVPYnNlcnZlcigpe3RoaXMucmVzaXplT2JzZXJ2ZXJ8fCh0aGlzLnJlc2l6ZU9ic2VydmVyPW5ldyBSZXNpemVPYnNlcnZlcigoKT0+e3RoaXMucmVuZGVyZWQmJnRoaXMucGRmRG9jdW1lbnQmJiF0aGlzLmxvYWRpbmcmJnRoaXMuc2NoZWR1bGVSZW5kZXJQYWdlcygpfSksdGhpcy5yZXNpemVPYnNlcnZlci5vYnNlcnZlKHRoaXMpKX1nZXRBdmFpbGFibGVTaXplKCl7aWYodGhpcy5zdGFja0VsZW1lbnR8fCh0aGlzLnN0YWNrRWxlbWVudD10aGlzLnNoYWRvd1Jvb3Q/LnF1ZXJ5U2VsZWN0b3IoIi5wcmV2aWV3LXN0YWNrIikpLCF0aGlzLnN0YWNrRWxlbWVudClyZXR1cm57YXZhaWxhYmxlV2lkdGg6MjAwLGF2YWlsYWJsZUhlaWdodDoyNjB9O2xldCBMPXRoaXMuc3RhY2tFbGVtZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLEE9TWF0aC5tYXgoTC53aWR0aCwwKXx8MjAwLHE9TWF0aC5tYXgoTC5oZWlnaHQsMCl8fDI2MDtyZXR1cm57YXZhaWxhYmxlV2lkdGg6QSxhdmFpbGFibGVIZWlnaHQ6cX19c3RhdGlje0thKGksYSl9fTtyZXR1cm4gTj1pfSkoKX0pO3ZhciB4VXQsd1V0LGN2dCxkdnQ9YigoKT0+e3VlKCk7V1YoKTt4VXQ9ZnVuY3Rpb24odCxlLGEsaSxyLHMpe2Z1bmN0aW9uIG4oeCl7aWYoeCE9PXZvaWQgMCYmdHlwZW9mIHghPSJmdW5jdGlvbiIpdGhyb3cgbmV3IFR5cGVFcnJvcigiRnVuY3Rpb24gZXhwZWN0ZWQiKTtyZXR1cm4geH1mb3IodmFyIG89aS5raW5kLGQ9bz09PSJnZXR0ZXIiPyJnZXQiOm89PT0ic2V0dGVyIj8ic2V0IjoidmFsdWUiLGM9IWUmJnQ/aS5zdGF0aWM/dDp0LnByb3RvdHlwZTpudWxsLGg9ZXx8KGM/T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihjLGkubmFtZSk6e30pLGwsZj0hMSxnPWEubGVuZ3RoLTE7Zz49MDtnLS0pe3ZhciB5PXt9O2Zvcih2YXIgdiBpbiBpKXlbdl09dj09PSJhY2Nlc3MiP3t9Omlbdl07Zm9yKHZhciB2IGluIGkuYWNjZXNzKXkuYWNjZXNzW3ZdPWkuYWNjZXNzW3ZdO3kuYWRkSW5pdGlhbGl6ZXI9ZnVuY3Rpb24oeCl7aWYoZil0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgYWRkIGluaXRpYWxpemVycyBhZnRlciBkZWNvcmF0aW9uIGhhcyBjb21wbGV0ZWQiKTtzLnB1c2gobih4fHxudWxsKSl9O3ZhciBtPSgwLGFbZ10pKG89PT0iYWNjZXNzb3IiP3tnZXQ6aC5nZXQsc2V0Omguc2V0fTpoW2RdLHkpO2lmKG89PT0iYWNjZXNzb3IiKXtpZihtPT09dm9pZCAwKWNvbnRpbnVlO2lmKG09PT1udWxsfHx0eXBlb2YgbSE9Im9iamVjdCIpdGhyb3cgbmV3IFR5cGVFcnJvcigiT2JqZWN0IGV4cGVjdGVkIik7KGw9bihtLmdldCkpJiYoaC5nZXQ9bCksKGw9bihtLnNldCkpJiYoaC5zZXQ9bCksKGw9bihtLmluaXQpKSYmci51bnNoaWZ0KGwpfWVsc2UobD1uKG0pKSYmKG89PT0iZmllbGQiP3IudW5zaGlmdChsKTpoW2RdPWwpfWMmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShjLGkubmFtZSxoKSxmPSEwfSx3VXQ9ZnVuY3Rpb24odCxlLGEpe2Zvcih2YXIgaT1hcmd1bWVudHMubGVuZ3RoPjIscj0wO3I8ZS5sZW5ndGg7cisrKWE9aT9lW3JdLmNhbGwodCxhKTplW3JdLmNhbGwodCk7cmV0dXJuIGk/YTp2b2lkIDB9LGN2dD0oKCk9PntsZXQgdD1bcGUoImRlZXMtcGRmLXByZXZpZXciKV0sZSxhPVtdLGkscj1vdzt2YXIgcz1jbGFzcyBleHRlbmRzIHJ7c3RhdGlje2k9dGhpc31zdGF0aWN7bGV0IG49dHlwZW9mIFN5bWJvbD09ImZ1bmN0aW9uIiYmU3ltYm9sLm1ldGFkYXRhP09iamVjdC5jcmVhdGUocltTeW1ib2wubWV0YWRhdGFdPz9udWxsKTp2b2lkIDA7eFV0KG51bGwsZT17dmFsdWU6aX0sdCx7a2luZDoiY2xhc3MiLG5hbWU6aS5uYW1lLG1ldGFkYXRhOm59LG51bGwsYSkscz1pPWUudmFsdWUsbiYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGksU3ltYm9sLm1ldGFkYXRhLHtlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMCx2YWx1ZTpufSl9c3RhdGljIGRlbW9Hcm91cHM9W107Y29ubmVjdGVkQ2FsbGJhY2soKXtyZXR1cm4gY29uc29sZS53YXJuKCJbZGVlcy1wZGYtcHJldmlld10gaXMgZGVwcmVjYXRlZC4gVXNlIDxkZWVzLXRpbGUtcGRmPiBpbnN0ZWFkLiBUaGlzIGNvbXBvbmVudCB3aWxsIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgcmVsZWFzZS4iKSxzdXBlci5jb25uZWN0ZWRDYWxsYmFjaygpfXN0YXRpY3t3VXQoaSxhKX19O3JldHVybiBzPWl9KSgpfSk7dmFyIGh2dD1iKCgpPT57ZHZ0KCl9KTt2YXIgcHZ0PWIoKCk9PntqVigpO253KCk7VVYoKX0pO3ZhciB1dnQ9YigoKT0+e3FWKCl9KTt2YXIgZnZ0PWIoKCk9PntibygpO2pzKCl9KTt2YXIgbXZ0PWIoKCk9PntXVigpfSk7dmFyIGd2dCxidnQ9YigoKT0+e3VlKCk7Z3Z0PSgpPT53YAogIDxzdHlsZT4KICAgIC5kZW1vLWNvbnRhaW5lciB7CiAgICAgIHBhZGRpbmc6IDQwcHg7CiAgICAgIGJhY2tncm91bmQ6ICNmNWY1ZjU7CiAgICB9CiAgICAuZGVtby1zZWN0aW9uIHsKICAgICAgbWFyZ2luLWJvdHRvbTogNjBweDsKICAgIH0KICAgIGgzIHsKICAgICAgbWFyZ2luLWJvdHRvbTogMjBweDsKICAgICAgZm9udC1zaXplOiAxOHB4OwogICAgICBmb250LXdlaWdodDogNjAwOwogICAgfQogICAgLnRpbGUtcm93IHsKICAgICAgZGlzcGxheTogZmxleDsKICAgICAgZ2FwOiAyNHB4OwogICAgICBmbGV4LXdyYXA6IHdyYXA7CiAgICAgIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0OwogICAgfQogIDwvc3R5bGU+CgogIDxkaXYgY2xhc3M9ImRlbW8tY29udGFpbmVyIj4KICAgIDxkaXYgY2xhc3M9ImRlbW8tc2VjdGlvbiI+CiAgICAgIDxoMz5JbWFnZSBUaWxlczwvaDM+CiAgICAgIDxkaXYgY2xhc3M9InRpbGUtcm93Ij4KICAgICAgICA8ZGVlcy10aWxlLWltYWdlCiAgICAgICAgICBzcmM9Imh0dHBzOi8vcGljc3VtLnBob3Rvcy84MDAvNjAwIgogICAgICAgICAgYWx0PSJMYW5kc2NhcGUgcGhvdG8iCiAgICAgICAgICBsYWJlbD0ibGFuZHNjYXBlLmpwZyIKICAgICAgICAgIEB0aWxlLWNsaWNrPSR7dD0+Y29uc29sZS5sb2coIkltYWdlIGNsaWNrZWQ6Iix0LmRldGFpbCl9CiAgICAgICAgPjwvZGVlcy10aWxlLWltYWdlPgoKICAgICAgICA8ZGVlcy10aWxlLWltYWdlCiAgICAgICAgICBzcmM9Imh0dHBzOi8vcGljc3VtLnBob3Rvcy80MDAvNDAwIgogICAgICAgICAgYWx0PSJTcXVhcmUgcGhvdG8iCiAgICAgICAgICBsYWJlbD0ic3F1YXJlLnBuZyIKICAgICAgICA+PC9kZWVzLXRpbGUtaW1hZ2U+CgogICAgICAgIDxkZWVzLXRpbGUtaW1hZ2UKICAgICAgICAgIHNyYz0iaHR0cHM6Ly9waWNzdW0ucGhvdG9zLzMwMC85MDAiCiAgICAgICAgICBhbHQ9IlBvcnRyYWl0IHBob3RvIgogICAgICAgICAgbGFiZWw9InBvcnRyYWl0LndlYnAiCiAgICAgICAgPjwvZGVlcy10aWxlLWltYWdlPgogICAgICA8L2Rpdj4KICAgIDwvZGl2PgoKICAgIDxkaXYgY2xhc3M9ImRlbW8tc2VjdGlvbiI+CiAgICAgIDxoMz5TaXplIFZhcmlhbnRzPC9oMz4KICAgICAgPGRpdiBjbGFzcz0idGlsZS1yb3ciPgogICAgICAgIDxkZWVzLXRpbGUtaW1hZ2UKICAgICAgICAgIHNpemU9InNtYWxsIgogICAgICAgICAgc3JjPSJodHRwczovL3BpY3N1bS5waG90b3MvMjAwLzIwMCIKICAgICAgICAgIGFsdD0iU21hbGwiCiAgICAgICAgICBsYWJlbD0ic21hbGwuanBnIgogICAgICAgID48L2RlZXMtdGlsZS1pbWFnZT4KCiAgICAgICAgPGRlZXMtdGlsZS1pbWFnZQogICAgICAgICAgc3JjPSJodHRwczovL3BpY3N1bS5waG90b3MvNjAwLzQwMCIKICAgICAgICAgIGFsdD0iRGVmYXVsdCIKICAgICAgICAgIGxhYmVsPSJkZWZhdWx0LmpwZyIKICAgICAgICA+PC9kZWVzLXRpbGUtaW1hZ2U+CgogICAgICAgIDxkZWVzLXRpbGUtaW1hZ2UKICAgICAgICAgIHNpemU9ImxhcmdlIgogICAgICAgICAgc3JjPSJodHRwczovL3BpY3N1bS5waG90b3MvMTIwMC84MDAiCiAgICAgICAgICBhbHQ9IkxhcmdlIgogICAgICAgICAgbGFiZWw9ImxhcmdlLmpwZyIKICAgICAgICA+PC9kZWVzLXRpbGUtaW1hZ2U+CiAgICAgIDwvZGl2PgogICAgPC9kaXY+CgogICAgPGRpdiBjbGFzcz0iZGVtby1zZWN0aW9uIj4KICAgICAgPGgzPkVycm9yIFN0YXRlIChicm9rZW4gVVJMKTwvaDM+CiAgICAgIDxkZWVzLXRpbGUtaW1hZ2UKICAgICAgICBzcmM9Imh0dHBzOi8vaW52YWxpZC11cmwtdGhhdC1kb2VzLW5vdC1leGlzdC5leGFtcGxlL2ltYWdlLnBuZyIKICAgICAgICBhbHQ9IkJyb2tlbiIKICAgICAgICBsYWJlbD0iYnJva2VuLnBuZyIKICAgICAgPjwvZGVlcy10aWxlLWltYWdlPgogICAgPC9kaXY+CiAgPC9kaXY+CmB9KTt2YXIgQmwsZXIsdnZ0LHl2dD1iKCgpPT57dWUoKTtibygpO2pzKCk7YnZ0KCk7Qmw9ZnVuY3Rpb24odCxlLGEsaSxyLHMpe2Z1bmN0aW9uIG4oeCl7aWYoeCE9PXZvaWQgMCYmdHlwZW9mIHghPSJmdW5jdGlvbiIpdGhyb3cgbmV3IFR5cGVFcnJvcigiRnVuY3Rpb24gZXhwZWN0ZWQiKTtyZXR1cm4geH1mb3IodmFyIG89aS5raW5kLGQ9bz09PSJnZXR0ZXIiPyJnZXQiOm89PT0ic2V0dGVyIj8ic2V0IjoidmFsdWUiLGM9IWUmJnQ/aS5zdGF0aWM/dDp0LnByb3RvdHlwZTpudWxsLGg9ZXx8KGM/T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihjLGkubmFtZSk6e30pLGwsZj0hMSxnPWEubGVuZ3RoLTE7Zz49MDtnLS0pe3ZhciB5PXt9O2Zvcih2YXIgdiBpbiBpKXlbdl09dj09PSJhY2Nlc3MiP3t9Omlbdl07Zm9yKHZhciB2IGluIGkuYWNjZXNzKXkuYWNjZXNzW3ZdPWkuYWNjZXNzW3ZdO3kuYWRkSW5pdGlhbGl6ZXI9ZnVuY3Rpb24oeCl7aWYoZil0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgYWRkIGluaXRpYWxpemVycyBhZnRlciBkZWNvcmF0aW9uIGhhcyBjb21wbGV0ZWQiKTtzLnB1c2gobih4fHxudWxsKSl9O3ZhciBtPSgwLGFbZ10pKG89PT0iYWNjZXNzb3IiP3tnZXQ6aC5nZXQsc2V0Omguc2V0fTpoW2RdLHkpO2lmKG89PT0iYWNjZXNzb3IiKXtpZihtPT09dm9pZCAwKWNvbnRpbnVlO2lmKG09PT1udWxsfHx0eXBlb2YgbSE9Im9iamVjdCIpdGhyb3cgbmV3IFR5cGVFcnJvcigiT2JqZWN0IGV4cGVjdGVkIik7KGw9bihtLmdldCkpJiYoaC5nZXQ9bCksKGw9bihtLnNldCkpJiYoaC5zZXQ9bCksKGw9bihtLmluaXQpKSYmci51bnNoaWZ0KGwpfWVsc2UobD1uKG0pKSYmKG89PT0iZmllbGQiP3IudW5zaGlmdChsKTpoW2RdPWwpfWMmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShjLGkubmFtZSxoKSxmPSEwfSxlcj1mdW5jdGlvbih0LGUsYSl7Zm9yKHZhciBpPWFyZ3VtZW50cy5sZW5ndGg+MixyPTA7cjxlLmxlbmd0aDtyKyspYT1pP2Vbcl0uY2FsbCh0LGEpOmVbcl0uY2FsbCh0KTtyZXR1cm4gaT9hOnZvaWQgMH0sdnZ0PSgoKT0+e2xldCB0PVtwZSgiZGVlcy10aWxlLWltYWdlIildLGUsYT1bXSxpLHI9dmEscyxuPVtdLG89W10sZCxjPVtdLGg9W10sbCxmPVtdLGc9W10seSx2PVtdLG09W10seCxNPVtdLFM9W107dmFyIEY9Y2xhc3MgZXh0ZW5kcyBye3N0YXRpY3tpPXRoaXN9c3RhdGlje2xldCBfPXR5cGVvZiBTeW1ib2w9PSJmdW5jdGlvbiImJlN5bWJvbC5tZXRhZGF0YT9PYmplY3QuY3JlYXRlKHJbU3ltYm9sLm1ldGFkYXRhXT8/bnVsbCk6dm9pZCAwO3M9W0koe3R5cGU6U3RyaW5nfSldLGQ9W0koe3R5cGU6U3RyaW5nfSldLGw9W0ooKV0seT1bSigpXSx4PVtKKCldLEJsKHRoaXMsbnVsbCxzLHtraW5kOiJhY2Nlc3NvciIsbmFtZToic3JjIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczprPT4ic3JjImluIGssZ2V0Oms9Pmsuc3JjLHNldDooayxOKT0+e2suc3JjPU59fSxtZXRhZGF0YTpffSxuLG8pLEJsKHRoaXMsbnVsbCxkLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiYWx0IixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczprPT4iYWx0ImluIGssZ2V0Oms9PmsuYWx0LHNldDooayxOKT0+e2suYWx0PU59fSxtZXRhZGF0YTpffSxjLGgpLEJsKHRoaXMsbnVsbCxsLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiaW1hZ2VMb2FkZWQiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOms9PiJpbWFnZUxvYWRlZCJpbiBrLGdldDprPT5rLmltYWdlTG9hZGVkLHNldDooayxOKT0+e2suaW1hZ2VMb2FkZWQ9Tn19LG1ldGFkYXRhOl99LGYsZyksQmwodGhpcyxudWxsLHkse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJpbWFnZVdpZHRoIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczprPT4iaW1hZ2VXaWR0aCJpbiBrLGdldDprPT5rLmltYWdlV2lkdGgsc2V0OihrLE4pPT57ay5pbWFnZVdpZHRoPU59fSxtZXRhZGF0YTpffSx2LG0pLEJsKHRoaXMsbnVsbCx4LHtraW5kOiJhY2Nlc3NvciIsbmFtZToiaW1hZ2VIZWlnaHQiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOms9PiJpbWFnZUhlaWdodCJpbiBrLGdldDprPT5rLmltYWdlSGVpZ2h0LHNldDooayxOKT0+e2suaW1hZ2VIZWlnaHQ9Tn19LG1ldGFkYXRhOl99LE0sUyksQmwobnVsbCxlPXt2YWx1ZTppfSx0LHtraW5kOiJjbGFzcyIsbmFtZTppLm5hbWUsbWV0YWRhdGE6X30sbnVsbCxhKSxGPWk9ZS52YWx1ZSxfJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoaSxTeW1ib2wubWV0YWRhdGEse2VudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwLHZhbHVlOl99KX1zdGF0aWMgZGVtbz1ndnQ7c3RhdGljIGRlbW9Hcm91cHM9WyJNZWRpYSJdO3N0YXRpYyBzdHlsZXM9Wy4uLkoyLFFgCiAgICAgIC5pbWFnZS13cmFwcGVyIHsKICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgICAgaGVpZ2h0OiAxMDAlOwogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKICAgICAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgICAgIGJhY2tncm91bmQ6ICR7cC5iZFRoZW1lKCJyZXBlYXRpbmctY29uaWMtZ3JhZGllbnQoI2U4ZThlOCAwJSAyNSUsIHdoaXRlIDAlIDUwJSkgNTAlIC8gMTZweCAxNnB4IiwicmVwZWF0aW5nLWNvbmljLWdyYWRpZW50KGhzbCgyMTUgMjAlIDE4JSkgMCUgMjUlLCBoc2woMjE1IDIwJSAxNCUpIDAlIDUwJSkgNTAlIC8gMTZweCAxNnB4Iil9OwogICAgICB9CgogICAgICAuaW1hZ2Utd3JhcHBlciBpbWcgewogICAgICAgIHdpZHRoOiAxMDAlOwogICAgICAgIGhlaWdodDogMTAwJTsKICAgICAgICBvYmplY3QtZml0OiBjb3ZlcjsKICAgICAgICBkaXNwbGF5OiBibG9jazsKICAgICAgICB0cmFuc2l0aW9uOiBvcGFjaXR5IDAuM3MgZWFzZTsKICAgICAgfQoKICAgICAgLmltYWdlLXdyYXBwZXIgaW1nLmxvYWRlZCB7CiAgICAgICAgb3BhY2l0eTogMTsKICAgICAgfQoKICAgICAgLmltYWdlLXdyYXBwZXIgaW1nLmxvYWRpbmcgewogICAgICAgIG9wYWNpdHk6IDA7CiAgICAgIH0KCiAgICAgIC50aWxlLWJhZGdlLXRvcHJpZ2h0LmRpbWVuc2lvbi1iYWRnZSB7CiAgICAgICAgb3BhY2l0eTogMDsKICAgICAgICB0cmFuc2l0aW9uOiBvcGFjaXR5IDAuMnMgZWFzZTsKICAgICAgfQoKICAgICAgLnRpbGUtY29udGFpbmVyLmNsaWNrYWJsZTpob3ZlciAudGlsZS1iYWRnZS10b3ByaWdodC5kaW1lbnNpb24tYmFkZ2UgewogICAgICAgIG9wYWNpdHk6IDE7CiAgICAgIH0KICAgIGBdOyNlPWVyKHRoaXMsbiwiIik7Z2V0IHNyYygpe3JldHVybiB0aGlzLiNlfXNldCBzcmMoXyl7dGhpcy4jZT1ffSN0PShlcih0aGlzLG8pLGVyKHRoaXMsYywiIikpO2dldCBhbHQoKXtyZXR1cm4gdGhpcy4jdH1zZXQgYWx0KF8pe3RoaXMuI3Q9X30jYT0oZXIodGhpcyxoKSxlcih0aGlzLGYsITEpKTtnZXQgaW1hZ2VMb2FkZWQoKXtyZXR1cm4gdGhpcy4jYX1zZXQgaW1hZ2VMb2FkZWQoXyl7dGhpcy4jYT1ffSNpPShlcih0aGlzLGcpLGVyKHRoaXMsdiwwKSk7Z2V0IGltYWdlV2lkdGgoKXtyZXR1cm4gdGhpcy4jaX1zZXQgaW1hZ2VXaWR0aChfKXt0aGlzLiNpPV99I3I9KGVyKHRoaXMsbSksZXIodGhpcyxNLDApKTtnZXQgaW1hZ2VIZWlnaHQoKXtyZXR1cm4gdGhpcy4jcn1zZXQgaW1hZ2VIZWlnaHQoXyl7dGhpcy4jcj1ffWhhc1N0YXJ0ZWRMb2FkaW5nPShlcih0aGlzLFMpLCExKTtyZW5kZXJUaWxlQ29udGVudCgpe3JldHVybiB3YAogICAgICA8ZGl2IGNsYXNzPSJpbWFnZS13cmFwcGVyIj4KICAgICAgICAke3RoaXMuaGFzU3RhcnRlZExvYWRpbmc/d2AKICAgICAgICAgIDxpbWcKICAgICAgICAgICAgY2xhc3M9IiR7dGhpcy5pbWFnZUxvYWRlZD8ibG9hZGVkIjoibG9hZGluZyJ9IgogICAgICAgICAgICBzcmM9IiR7dGhpcy5zcmN9IgogICAgICAgICAgICBhbHQ9IiR7dGhpcy5hbHR9IgogICAgICAgICAgICBAbG9hZD0ke3RoaXMuaGFuZGxlSW1hZ2VMb2FkfQogICAgICAgICAgICBAZXJyb3I9JHt0aGlzLmhhbmRsZUltYWdlRXJyb3J9CiAgICAgICAgICAvPgogICAgICAgIGA6IiJ9CiAgICAgIDwvZGl2PgoKICAgICAgJHt0aGlzLmltYWdlV2lkdGg+MCYmdGhpcy5pbWFnZUhlaWdodD4wP3dgCiAgICAgICAgPGRpdiBjbGFzcz0idGlsZS1iYWRnZS10b3ByaWdodCBkaW1lbnNpb24tYmFkZ2UiPgogICAgICAgICAgJHt0aGlzLmltYWdlV2lkdGh9IMOXICR7dGhpcy5pbWFnZUhlaWdodH0KICAgICAgICA8L2Rpdj4KICAgICAgYDoiIn0KCiAgICAgICR7dGhpcy5pbWFnZUxvYWRlZD93YAogICAgICAgIDxkaXYgY2xhc3M9InRpbGUtaW5mbyI+CiAgICAgICAgICA8ZGVlcy1pY29uIGljb249Imx1Y2lkZTpJbWFnZSI+PC9kZWVzLWljb24+CiAgICAgICAgICA8c3BhbiBjbGFzcz0idGlsZS1pbmZvLXRleHQiPiR7dGhpcy5pbWFnZVdpZHRofSDDlyAke3RoaXMuaW1hZ2VIZWlnaHR9PC9zcGFuPgogICAgICAgIDwvZGl2PgogICAgICBgOiIifQoKICAgICAgJHt0aGlzLmNsaWNrYWJsZT93YAogICAgICAgIDxkaXYgY2xhc3M9InRpbGUtb3ZlcmxheSI+CiAgICAgICAgICA8ZGVlcy1pY29uIGljb249Imx1Y2lkZTpFeWUiPjwvZGVlcy1pY29uPgogICAgICAgICAgPHNwYW4+VmlldyBJbWFnZTwvc3Bhbj4KICAgICAgICA8L2Rpdj4KICAgICAgYDoiIn0KICAgIGB9Z2V0VGlsZUNsaWNrRGV0YWlsKCl7cmV0dXJue3NyYzp0aGlzLnNyYyxhbHQ6dGhpcy5hbHQsd2lkdGg6dGhpcy5pbWFnZVdpZHRoLGhlaWdodDp0aGlzLmltYWdlSGVpZ2h0fX1vbkJlY2FtZVZpc2libGUoKXshdGhpcy5oYXNTdGFydGVkTG9hZGluZyYmdGhpcy5zcmMmJih0aGlzLmhhc1N0YXJ0ZWRMb2FkaW5nPSEwLHRoaXMubG9hZGluZz0hMCx0aGlzLnJlcXVlc3RVcGRhdGUoKSl9aGFuZGxlSW1hZ2VMb2FkKF8pe2xldCBrPV8udGFyZ2V0O3RoaXMuaW1hZ2VXaWR0aD1rLm5hdHVyYWxXaWR0aCx0aGlzLmltYWdlSGVpZ2h0PWsubmF0dXJhbEhlaWdodCx0aGlzLmltYWdlTG9hZGVkPSEwLHRoaXMubG9hZGluZz0hMX1oYW5kbGVJbWFnZUVycm9yKCl7dGhpcy5lcnJvcj0hMCx0aGlzLmxvYWRpbmc9ITF9YXN5bmMgdXBkYXRlZChfKXtzdXBlci51cGRhdGVkKF8pLF8uaGFzKCJzcmMiKSYmdGhpcy5zcmMmJnRoaXMuaXNWaXNpYmxlJiYodGhpcy5oYXNTdGFydGVkTG9hZGluZz0hMCx0aGlzLmltYWdlTG9hZGVkPSExLHRoaXMubG9hZGluZz0hMCl9c3RhdGlje2VyKGksYSl9fTtyZXR1cm4gRj1pfSkoKX0pO3ZhciB4dnQ9YigoKT0+e3l2dCgpfSk7dmFyIHd2dCxNdnQ9YigoKT0+e3VlKCk7d3Z0PSgpPT53YAogIDxzdHlsZT4KICAgIC5kZW1vLWNvbnRhaW5lciB7CiAgICAgIHBhZGRpbmc6IDQwcHg7CiAgICAgIGJhY2tncm91bmQ6ICNmNWY1ZjU7CiAgICB9CiAgICAuZGVtby1zZWN0aW9uIHsKICAgICAgbWFyZ2luLWJvdHRvbTogNjBweDsKICAgIH0KICAgIGgzIHsKICAgICAgbWFyZ2luLWJvdHRvbTogMjBweDsKICAgICAgZm9udC1zaXplOiAxOHB4OwogICAgICBmb250LXdlaWdodDogNjAwOwogICAgfQogICAgLnRpbGUtcm93IHsKICAgICAgZGlzcGxheTogZmxleDsKICAgICAgZ2FwOiAyNHB4OwogICAgICBmbGV4LXdyYXA6IHdyYXA7CiAgICAgIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0OwogICAgfQogIDwvc3R5bGU+CgogIDxkaXYgY2xhc3M9ImRlbW8tY29udGFpbmVyIj4KICAgIDxkaXYgY2xhc3M9ImRlbW8tc2VjdGlvbiI+CiAgICAgIDxoMz5BdWRpbyBUaWxlczwvaDM+CiAgICAgIDxkaXYgY2xhc3M9InRpbGUtcm93Ij4KICAgICAgICA8ZGVlcy10aWxlLWF1ZGlvCiAgICAgICAgICBzcmM9Imh0dHBzOi8vd3d3LnNvdW5kaGVsaXguY29tL2V4YW1wbGVzL21wMy9Tb3VuZEhlbGl4LVNvbmctMS5tcDMiCiAgICAgICAgICB0aXRsZT0iU291bmRIZWxpeCBTb25nIDEiCiAgICAgICAgICBhcnRpc3Q9IlQuIFNjaHVlcmdlciIKICAgICAgICAgIGxhYmVsPSJzb3VuZGhlbGl4LTEubXAzIgogICAgICAgICAgQHRpbGUtY2xpY2s9JHt0PT5jb25zb2xlLmxvZygiQXVkaW8gY2xpY2tlZDoiLHQuZGV0YWlsKX0KICAgICAgICA+PC9kZWVzLXRpbGUtYXVkaW8+CgogICAgICAgIDxkZWVzLXRpbGUtYXVkaW8KICAgICAgICAgIHNyYz0iaHR0cHM6Ly93d3cuc291bmRoZWxpeC5jb20vZXhhbXBsZXMvbXAzL1NvdW5kSGVsaXgtU29uZy0yLm1wMyIKICAgICAgICAgIHRpdGxlPSJTb3VuZEhlbGl4IFNvbmcgMiIKICAgICAgICAgIGFydGlzdD0iVC4gU2NodWVyZ2VyIgogICAgICAgICAgbGFiZWw9InNvdW5kaGVsaXgtMi5tcDMiCiAgICAgICAgPjwvZGVlcy10aWxlLWF1ZGlvPgoKICAgICAgICA8ZGVlcy10aWxlLWF1ZGlvCiAgICAgICAgICBzcmM9Imh0dHBzOi8vd3d3LnNvdW5kaGVsaXguY29tL2V4YW1wbGVzL21wMy9Tb3VuZEhlbGl4LVNvbmctMy5tcDMiCiAgICAgICAgICB0aXRsZT0iU291bmRIZWxpeCBTb25nIDMiCiAgICAgICAgICBsYWJlbD0ic291bmRoZWxpeC0zLm1wMyIKICAgICAgICA+PC9kZWVzLXRpbGUtYXVkaW8+CiAgICAgIDwvZGl2PgogICAgPC9kaXY+CgogICAgPGRpdiBjbGFzcz0iZGVtby1zZWN0aW9uIj4KICAgICAgPGgzPlNpemUgVmFyaWFudHM8L2gzPgogICAgICA8ZGl2IGNsYXNzPSJ0aWxlLXJvdyI+CiAgICAgICAgPGRlZXMtdGlsZS1hdWRpbwogICAgICAgICAgc2l6ZT0ic21hbGwiCiAgICAgICAgICBzcmM9Imh0dHBzOi8vd3d3LnNvdW5kaGVsaXguY29tL2V4YW1wbGVzL21wMy9Tb3VuZEhlbGl4LVNvbmctMS5tcDMiCiAgICAgICAgICB0aXRsZT0iU21hbGwiCiAgICAgICAgICBsYWJlbD0ic21hbGwubXAzIgogICAgICAgID48L2RlZXMtdGlsZS1hdWRpbz4KCiAgICAgICAgPGRlZXMtdGlsZS1hdWRpbwogICAgICAgICAgc3JjPSJodHRwczovL3d3dy5zb3VuZGhlbGl4LmNvbS9leGFtcGxlcy9tcDMvU291bmRIZWxpeC1Tb25nLTEubXAzIgogICAgICAgICAgdGl0bGU9IkRlZmF1bHQiCiAgICAgICAgICBsYWJlbD0iZGVmYXVsdC5tcDMiCiAgICAgICAgPjwvZGVlcy10aWxlLWF1ZGlvPgoKICAgICAgICA8ZGVlcy10aWxlLWF1ZGlvCiAgICAgICAgICBzaXplPSJsYXJnZSIKICAgICAgICAgIHNyYz0iaHR0cHM6Ly93d3cuc291bmRoZWxpeC5jb20vZXhhbXBsZXMvbXAzL1NvdW5kSGVsaXgtU29uZy0xLm1wMyIKICAgICAgICAgIHRpdGxlPSJMYXJnZSIKICAgICAgICAgIGxhYmVsPSJsYXJnZS5tcDMiCiAgICAgICAgPjwvZGVlcy10aWxlLWF1ZGlvPgogICAgICA8L2Rpdj4KICAgIDwvZGl2PgogIDwvZGl2PgpgfSk7dmFyIHZvLHlhLHp2dCxrdnQ9YigoKT0+e3VlKCk7Ym8oKTtqcygpO012dCgpO3ZvPWZ1bmN0aW9uKHQsZSxhLGkscixzKXtmdW5jdGlvbiBuKHgpe2lmKHghPT12b2lkIDAmJnR5cGVvZiB4IT0iZnVuY3Rpb24iKXRocm93IG5ldyBUeXBlRXJyb3IoIkZ1bmN0aW9uIGV4cGVjdGVkIik7cmV0dXJuIHh9Zm9yKHZhciBvPWkua2luZCxkPW89PT0iZ2V0dGVyIj8iZ2V0IjpvPT09InNldHRlciI/InNldCI6InZhbHVlIixjPSFlJiZ0P2kuc3RhdGljP3Q6dC5wcm90b3R5cGU6bnVsbCxoPWV8fChjP09iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoYyxpLm5hbWUpOnt9KSxsLGY9ITEsZz1hLmxlbmd0aC0xO2c+PTA7Zy0tKXt2YXIgeT17fTtmb3IodmFyIHYgaW4gaSl5W3ZdPXY9PT0iYWNjZXNzIj97fTppW3ZdO2Zvcih2YXIgdiBpbiBpLmFjY2Vzcyl5LmFjY2Vzc1t2XT1pLmFjY2Vzc1t2XTt5LmFkZEluaXRpYWxpemVyPWZ1bmN0aW9uKHgpe2lmKGYpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGFkZCBpbml0aWFsaXplcnMgYWZ0ZXIgZGVjb3JhdGlvbiBoYXMgY29tcGxldGVkIik7cy5wdXNoKG4oeHx8bnVsbCkpfTt2YXIgbT0oMCxhW2ddKShvPT09ImFjY2Vzc29yIj97Z2V0OmguZ2V0LHNldDpoLnNldH06aFtkXSx5KTtpZihvPT09ImFjY2Vzc29yIil7aWYobT09PXZvaWQgMCljb250aW51ZTtpZihtPT09bnVsbHx8dHlwZW9mIG0hPSJvYmplY3QiKXRocm93IG5ldyBUeXBlRXJyb3IoIk9iamVjdCBleHBlY3RlZCIpOyhsPW4obS5nZXQpKSYmKGguZ2V0PWwpLChsPW4obS5zZXQpKSYmKGguc2V0PWwpLChsPW4obS5pbml0KSkmJnIudW5zaGlmdChsKX1lbHNlKGw9bihtKSkmJihvPT09ImZpZWxkIj9yLnVuc2hpZnQobCk6aFtkXT1sKX1jJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoYyxpLm5hbWUsaCksZj0hMH0seWE9ZnVuY3Rpb24odCxlLGEpe2Zvcih2YXIgaT1hcmd1bWVudHMubGVuZ3RoPjIscj0wO3I8ZS5sZW5ndGg7cisrKWE9aT9lW3JdLmNhbGwodCxhKTplW3JdLmNhbGwodCk7cmV0dXJuIGk/YTp2b2lkIDB9LHp2dD0oKCk9PntsZXQgdD1bcGUoImRlZXMtdGlsZS1hdWRpbyIpXSxlLGE9W10saSxyPXZhLHMsbj1bXSxvPVtdLGQsYz1bXSxoPVtdLGwsZj1bXSxnPVtdLHksdj1bXSxtPVtdLHgsTT1bXSxTPVtdLEYsXz1bXSxrPVtdLE4sTD1bXSxBPVtdO3ZhciBxPWNsYXNzIGV4dGVuZHMgcntzdGF0aWN7aT10aGlzfXN0YXRpY3tsZXQgQz10eXBlb2YgU3ltYm9sPT0iZnVuY3Rpb24iJiZTeW1ib2wubWV0YWRhdGE/T2JqZWN0LmNyZWF0ZShyW1N5bWJvbC5tZXRhZGF0YV0/P251bGwpOnZvaWQgMDtzPVtJKHt0eXBlOlN0cmluZ30pXSxkPVtJKHt0eXBlOlN0cmluZ30pXSxsPVtJKHt0eXBlOlN0cmluZ30pXSx5PVtKKCldLHg9W0ooKV0sRj1bSigpXSxOPVtKKCldLHZvKHRoaXMsbnVsbCxzLHtraW5kOiJhY2Nlc3NvciIsbmFtZToic3JjIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczp6PT4ic3JjImluIHosZ2V0Ono9Pnouc3JjLHNldDooeixFKT0+e3ouc3JjPUV9fSxtZXRhZGF0YTpDfSxuLG8pLHZvKHRoaXMsbnVsbCxkLHtraW5kOiJhY2Nlc3NvciIsbmFtZToidGl0bGUiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOno9PiJ0aXRsZSJpbiB6LGdldDp6PT56LnRpdGxlLHNldDooeixFKT0+e3oudGl0bGU9RX19LG1ldGFkYXRhOkN9LGMsaCksdm8odGhpcyxudWxsLGwse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJhcnRpc3QiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOno9PiJhcnRpc3QiaW4geixnZXQ6ej0+ei5hcnRpc3Qsc2V0Oih6LEUpPT57ei5hcnRpc3Q9RX19LG1ldGFkYXRhOkN9LGYsZyksdm8odGhpcyxudWxsLHkse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJkdXJhdGlvbiIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6ej0+ImR1cmF0aW9uImluIHosZ2V0Ono9PnouZHVyYXRpb24sc2V0Oih6LEUpPT57ei5kdXJhdGlvbj1FfX0sbWV0YWRhdGE6Q30sdixtKSx2byh0aGlzLG51bGwseCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6IndhdmVmb3JtRGF0YSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6ej0+IndhdmVmb3JtRGF0YSJpbiB6LGdldDp6PT56LndhdmVmb3JtRGF0YSxzZXQ6KHosRSk9Pnt6LndhdmVmb3JtRGF0YT1FfX0sbWV0YWRhdGE6Q30sTSxTKSx2byh0aGlzLG51bGwsRix7a2luZDoiYWNjZXNzb3IiLG5hbWU6IndhdmVmb3JtUmVhZHkiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOno9PiJ3YXZlZm9ybVJlYWR5ImluIHosZ2V0Ono9Pnoud2F2ZWZvcm1SZWFkeSxzZXQ6KHosRSk9Pnt6LndhdmVmb3JtUmVhZHk9RX19LG1ldGFkYXRhOkN9LF8sayksdm8odGhpcyxudWxsLE4se2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJpc1ByZXZpZXdQbGF5aW5nIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczp6PT4iaXNQcmV2aWV3UGxheWluZyJpbiB6LGdldDp6PT56LmlzUHJldmlld1BsYXlpbmcsc2V0Oih6LEUpPT57ei5pc1ByZXZpZXdQbGF5aW5nPUV9fSxtZXRhZGF0YTpDfSxMLEEpLHZvKG51bGwsZT17dmFsdWU6aX0sdCx7a2luZDoiY2xhc3MiLG5hbWU6aS5uYW1lLG1ldGFkYXRhOkN9LG51bGwsYSkscT1pPWUudmFsdWUsQyYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGksU3ltYm9sLm1ldGFkYXRhLHtlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMCx2YWx1ZTpDfSl9c3RhdGljIGRlbW89d3Z0O3N0YXRpYyBkZW1vR3JvdXBzPVsiTWVkaWEiXTtzdGF0aWMgc3R5bGVzPVsuLi5KMixRYAogICAgICAuYXVkaW8tY29udGVudCB7CiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICAgIHdpZHRoOiAxMDAlOwogICAgICAgIGhlaWdodDogMTAwJTsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKICAgICAgICBnYXA6IDE2cHg7CiAgICAgICAgYmFja2dyb3VuZDogJHtwLmJkVGhlbWUoImxpbmVhci1ncmFkaWVudCgxMzVkZWcsIGhzbCgyNTAgNDAlIDk2JSksIGhzbCgyODAgMzAlIDk0JSkpIiwibGluZWFyLWdyYWRpZW50KDEzNWRlZywgaHNsKDI1MCAzMCUgMTYlKSwgaHNsKDI4MCAyNSUgMTQlKSkiKX07CiAgICAgIH0KCiAgICAgIC5tdXNpYy1pY29uIHsKICAgICAgICBmb250LXNpemU6IDQ4cHg7CiAgICAgICAgY29sb3I6ICR7cC5iZFRoZW1lKCJoc2woMjUwIDYwJSA2NSUpIiwiaHNsKDI1MCA2MCUgNzAlKSIpfTsKICAgICAgICBvcGFjaXR5OiAwLjg7CiAgICAgIH0KCiAgICAgIC5hdWRpby10aXRsZSB7CiAgICAgICAgZm9udC1zaXplOiAxMnB4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7CiAgICAgICAgY29sb3I6ICR7cC5iZFRoZW1lKCJoc2woMjUwIDIwJSAzNSUpIiwiaHNsKDI1MCAyMCUgODAlKSIpfTsKICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7CiAgICAgICAgcGFkZGluZzogMCAxNnB4OwogICAgICAgIG1heC13aWR0aDogMTAwJTsKICAgICAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzOwogICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7CiAgICAgIH0KCiAgICAgIC5hdWRpby1hcnRpc3QgewogICAgICAgIGZvbnQtc2l6ZTogMTFweDsKICAgICAgICBmb250LXdlaWdodDogNDAwOwogICAgICAgIGNvbG9yOiAke3AuYmRUaGVtZSgiaHNsKDI1MCAxNSUgNTAlKSIsImhzbCgyNTAgMTUlIDY1JSkiKX07CiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyOwogICAgICAgIHBhZGRpbmc6IDAgMTZweDsKICAgICAgICBtYXJnaW4tdG9wOiAtMTJweDsKICAgICAgICBtYXgtd2lkdGg6IDEwMCU7CiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpczsKICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwOwogICAgICB9CgogICAgICAud2F2ZWZvcm0tY29udGFpbmVyIHsKICAgICAgICB3aWR0aDogY2FsYygxMDAlIC0gMzJweCk7CiAgICAgICAgaGVpZ2h0OiA0MHB4OwogICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgICB9CgogICAgICAud2F2ZWZvcm0tY29udGFpbmVyIGNhbnZhcyB7CiAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgICAgaGVpZ2h0OiAxMDAlOwogICAgICAgIGRpc3BsYXk6IGJsb2NrOwogICAgICB9CgoKICAgICAgLnBsYXktb3ZlcmxheSB7CiAgICAgICAgcG9zaXRpb246IGFic29sdXRlOwogICAgICAgIHRvcDogMDsKICAgICAgICBsZWZ0OiAwOwogICAgICAgIHJpZ2h0OiAwOwogICAgICAgIGJvdHRvbTogMDsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7CiAgICAgICAgb3BhY2l0eTogMDsKICAgICAgICB0cmFuc2l0aW9uOiBvcGFjaXR5IDAuMnMgZWFzZTsKICAgICAgICB6LWluZGV4OiAxODsKICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTsKICAgICAgfQoKICAgICAgLnRpbGUtY29udGFpbmVyLmNsaWNrYWJsZTpob3ZlciAucGxheS1vdmVybGF5IHsKICAgICAgICBvcGFjaXR5OiAxOwogICAgICB9CgogICAgICAucGxheS1jaXJjbGUgewogICAgICAgIHdpZHRoOiA0OHB4OwogICAgICAgIGhlaWdodDogNDhweDsKICAgICAgICBib3JkZXItcmFkaXVzOiA1MCU7CiAgICAgICAgYmFja2dyb3VuZDogcmdiYSgwLCAwLCAwLCAwLjYpOwogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKICAgICAgICBiYWNrZHJvcC1maWx0ZXI6IGJsdXIoOHB4KTsKICAgICAgfQoKICAgICAgLnBsYXktY2lyY2xlIGRlZXMtaWNvbiB7CiAgICAgICAgZm9udC1zaXplOiAyMHB4OwogICAgICAgIGNvbG9yOiB3aGl0ZTsKICAgICAgfQogICAgYF07I2U9eWEodGhpcyxuLCIiKTtnZXQgc3JjKCl7cmV0dXJuIHRoaXMuI2V9c2V0IHNyYyhDKXt0aGlzLiNlPUN9I3Q9KHlhKHRoaXMsbykseWEodGhpcyxjLCIiKSk7Z2V0IHRpdGxlKCl7cmV0dXJuIHRoaXMuI3R9c2V0IHRpdGxlKEMpe3RoaXMuI3Q9Q30jYT0oeWEodGhpcyxoKSx5YSh0aGlzLGYsIiIpKTtnZXQgYXJ0aXN0KCl7cmV0dXJuIHRoaXMuI2F9c2V0IGFydGlzdChDKXt0aGlzLiNhPUN9I2k9KHlhKHRoaXMsZykseWEodGhpcyx2LDApKTtnZXQgZHVyYXRpb24oKXtyZXR1cm4gdGhpcy4jaX1zZXQgZHVyYXRpb24oQyl7dGhpcy4jaT1DfSNyPSh5YSh0aGlzLG0pLHlhKHRoaXMsTSxbXSkpO2dldCB3YXZlZm9ybURhdGEoKXtyZXR1cm4gdGhpcy4jcn1zZXQgd2F2ZWZvcm1EYXRhKEMpe3RoaXMuI3I9Q30jcz0oeWEodGhpcyxTKSx5YSh0aGlzLF8sITEpKTtnZXQgd2F2ZWZvcm1SZWFkeSgpe3JldHVybiB0aGlzLiNzfXNldCB3YXZlZm9ybVJlYWR5KEMpe3RoaXMuI3M9Q30jbj0oeWEodGhpcyxrKSx5YSh0aGlzLEwsITEpKTtnZXQgaXNQcmV2aWV3UGxheWluZygpe3JldHVybiB0aGlzLiNufXNldCBpc1ByZXZpZXdQbGF5aW5nKEMpe3RoaXMuI249Q31hdWRpb0VsZW1lbnQ9KHlhKHRoaXMsQSksbnVsbCk7cHJldmlld1RpbWVvdXQ9bnVsbDtoYXNMb2FkZWRXYXZlZm9ybT0hMTtyZW5kZXJUaWxlQ29udGVudCgpe3JldHVybiB3YAogICAgICA8ZGl2IGNsYXNzPSJhdWRpby1jb250ZW50Ij4KICAgICAgICA8ZGVlcy1pY29uIGNsYXNzPSJtdXNpYy1pY29uIiBpY29uPSJsdWNpZGU6TXVzaWMiPjwvZGVlcy1pY29uPgoKICAgICAgICAke3RoaXMudGl0bGU/d2A8ZGl2IGNsYXNzPSJhdWRpby10aXRsZSI+JHt0aGlzLnRpdGxlfTwvZGl2PmA6IiJ9CiAgICAgICAgJHt0aGlzLmFydGlzdD93YDxkaXYgY2xhc3M9ImF1ZGlvLWFydGlzdCI+JHt0aGlzLmFydGlzdH08L2Rpdj5gOiIifQoKICAgICAgICAke3RoaXMud2F2ZWZvcm1SZWFkeT93YAogICAgICAgICAgPGRpdiBjbGFzcz0id2F2ZWZvcm0tY29udGFpbmVyIj4KICAgICAgICAgICAgPGNhbnZhcz48L2NhbnZhcz4KICAgICAgICAgIDwvZGl2PgogICAgICAgIGA6IiJ9CiAgICAgIDwvZGl2PgoKICAgICAgJHt0aGlzLmR1cmF0aW9uPjA/d2AKICAgICAgICA8ZGl2IGNsYXNzPSJ0aWxlLWJhZGdlLWNvcm5lciI+JHt0aGlzLmZvcm1hdFRpbWUodGhpcy5kdXJhdGlvbil9PC9kaXY+CiAgICAgIGA6IiJ9CgogICAgICA8ZGl2IGNsYXNzPSJwbGF5LW92ZXJsYXkiPgogICAgICAgIDxkaXYgY2xhc3M9InBsYXktY2lyY2xlIj4KICAgICAgICAgIDxkZWVzLWljb24gaWNvbj0ibHVjaWRlOlBsYXkiPjwvZGVlcy1pY29uPgogICAgICAgIDwvZGl2PgogICAgICA8L2Rpdj4KCiAgICAgICR7dGhpcy5jbGlja2FibGU/d2AKICAgICAgICA8ZGl2IGNsYXNzPSJ0aWxlLW92ZXJsYXkiPgogICAgICAgICAgPGRlZXMtaWNvbiBpY29uPSJsdWNpZGU6SGVhZHBob25lcyI+PC9kZWVzLWljb24+CiAgICAgICAgICA8c3Bhbj5QbGF5IEF1ZGlvPC9zcGFuPgogICAgICAgIDwvZGl2PgogICAgICBgOiIifQogICAgYH1nZXRUaWxlQ2xpY2tEZXRhaWwoKXtyZXR1cm57c3JjOnRoaXMuc3JjLHRpdGxlOnRoaXMudGl0bGUsYXJ0aXN0OnRoaXMuYXJ0aXN0LGR1cmF0aW9uOnRoaXMuZHVyYXRpb259fW9uQmVjYW1lVmlzaWJsZSgpeyF0aGlzLmhhc0xvYWRlZFdhdmVmb3JtJiZ0aGlzLnNyYyYmKHRoaXMuaGFzTG9hZGVkV2F2ZWZvcm09ITAsdGhpcy5sb2FkQXVkaW9NZXRhKCkpfWFzeW5jIGxvYWRBdWRpb01ldGEoKXt0aGlzLmxvYWRpbmc9ITA7dHJ5e2xldCBDPW5ldyBBdWRpbztDLmNyb3NzT3JpZ2luPSJhbm9ueW1vdXMiLEMucHJlbG9hZD0ibWV0YWRhdGEiLGF3YWl0IG5ldyBQcm9taXNlKCh6LEUpPT57Qy5hZGRFdmVudExpc3RlbmVyKCJsb2FkZWRtZXRhZGF0YSIsKCk9Pnt0aGlzLmR1cmF0aW9uPUMuZHVyYXRpb24seigpfSx7b25jZTohMH0pLEMuYWRkRXZlbnRMaXN0ZW5lcigiZXJyb3IiLCgpPT5FKG5ldyBFcnJvcigiRmFpbGVkIHRvIGxvYWQgYXVkaW8iKSkse29uY2U6ITB9KSxDLnNyYz10aGlzLnNyY30pLGF3YWl0IHRoaXMubG9hZFdhdmVmb3JtKCksdGhpcy5sb2FkaW5nPSExfWNhdGNoe3RoaXMubG9hZGluZz0hMX19YXN5bmMgbG9hZFdhdmVmb3JtKCl7dHJ5e2xldCB6PWF3YWl0KGF3YWl0IGZldGNoKHRoaXMuc3JjKSkuYXJyYXlCdWZmZXIoKSxFPW5ldyBBdWRpb0NvbnRleHQsJD0oYXdhaXQgRS5kZWNvZGVBdWRpb0RhdGEoeikpLmdldENoYW5uZWxEYXRhKDApLFY9ODAsUj1NYXRoLmZsb29yKCQubGVuZ3RoL1YpLFU9W107Zm9yKGxldCBqPTA7ajxWO2orKyl7bGV0IG1lPTA7Zm9yKGxldCB3ZT0wO3dlPFI7d2UrKyltZSs9TWF0aC5hYnMoJFtqKlIrd2VdKTtVLnB1c2gobWUvUil9bGV0IHJlPU1hdGgubWF4KC4uLlUpO3RoaXMud2F2ZWZvcm1EYXRhPVUubWFwKGo9PnJlPjA/ai9yZTowKSx0aGlzLndhdmVmb3JtUmVhZHk9ITAsYXdhaXQgRS5jbG9zZSgpLGF3YWl0IHRoaXMudXBkYXRlQ29tcGxldGUsdGhpcy5kcmF3V2F2ZWZvcm0oKX1jYXRjaHt0aGlzLndhdmVmb3JtUmVhZHk9ITF9fWRyYXdXYXZlZm9ybSgpe2lmKCF0aGlzLndhdmVmb3JtUmVhZHkpcmV0dXJuO2xldCBDPXRoaXMuc2hhZG93Um9vdD8ucXVlcnlTZWxlY3RvcigiLndhdmVmb3JtLWNvbnRhaW5lciBjYW52YXMiKTtpZighQylyZXR1cm47bGV0IHo9Qy5wYXJlbnRFbGVtZW50LEU9d2luZG93LmRldmljZVBpeGVsUmF0aW98fDEsVD16LmNsaWVudFdpZHRoLCQ9ei5jbGllbnRIZWlnaHQ7Qy53aWR0aD1UKkUsQy5oZWlnaHQ9JCpFO2xldCBWPUMuZ2V0Q29udGV4dCgiMmQiKTtpZighVilyZXR1cm47Vi5zY2FsZShFLEUpLFYuY2xlYXJSZWN0KDAsMCxULCQpO2xldCBSPXRoaXMud2F2ZWZvcm1EYXRhLmxlbmd0aDtpZihSPT09MClyZXR1cm47bGV0IFU9VC9SLGo9ZG9jdW1lbnQuYm9keS5jbGFzc0xpc3QuY29udGFpbnMoInRoZW1lLWRhcmsiKXx8d2luZG93Lm1hdGNoTWVkaWEoIihwcmVmZXJzLWNvbG9yLXNjaGVtZTogZGFyaykiKS5tYXRjaGVzPyJoc2woMjUwIDUwJSA2MCUpIjoiaHNsKDI1MCA1MCUgNzAlKSI7Vi5maWxsU3R5bGU9ajtmb3IobGV0IG1lPTA7bWU8UjttZSsrKXtsZXQgd2U9dGhpcy53YXZlZm9ybURhdGFbbWVdLEg9TWF0aC5tYXgoMix3ZSooJC00KSksY2U9bWUqVSxrZT0oJC1IKS8yO1YuZmlsbFJlY3QoY2UrLjUsa2UsVS0xLEgpfX1hc3luYyB1cGRhdGVkKEMpe3N1cGVyLnVwZGF0ZWQoQyksQy5oYXMoInNyYyIpJiZ0aGlzLnNyYyYmdGhpcy5pc1Zpc2libGUmJih0aGlzLmhhc0xvYWRlZFdhdmVmb3JtPSEwLHRoaXMud2F2ZWZvcm1SZWFkeT0hMSx0aGlzLmR1cmF0aW9uPTAsdGhpcy5sb2FkQXVkaW9NZXRhKCkpLEMuaGFzKCJ3YXZlZm9ybVJlYWR5IikmJnRoaXMud2F2ZWZvcm1SZWFkeSYmKGF3YWl0IHRoaXMudXBkYXRlQ29tcGxldGUsdGhpcy5kcmF3V2F2ZWZvcm0oKSl9YXN5bmMgZGlzY29ubmVjdGVkQ2FsbGJhY2soKXthd2FpdCBzdXBlci5kaXNjb25uZWN0ZWRDYWxsYmFjaygpLHRoaXMucHJldmlld1RpbWVvdXQmJmNsZWFyVGltZW91dCh0aGlzLnByZXZpZXdUaW1lb3V0KSx0aGlzLmF1ZGlvRWxlbWVudCYmKHRoaXMuYXVkaW9FbGVtZW50LnBhdXNlKCksdGhpcy5hdWRpb0VsZW1lbnQuc3JjPSIiLHRoaXMuYXVkaW9FbGVtZW50PW51bGwpfWZvcm1hdFRpbWUoQyl7aWYoIWlzRmluaXRlKEMpfHxDPDApcmV0dXJuIjA6MDAiO2xldCB6PU1hdGguZmxvb3IoQy82MCksRT1NYXRoLmZsb29yKEMlNjApO3JldHVybmAke3p9OiR7RS50b1N0cmluZygpLnBhZFN0YXJ0KDIsIjAiKX1gfXN0YXRpY3t5YShpLGEpfX07cmV0dXJuIHE9aX0pKCl9KTt2YXIgU3Z0PWIoKCk9PntrdnQoKX0pO3ZhciBDdnQsX3Z0PWIoKCk9Pnt1ZSgpO0N2dD0oKT0+d2AKICA8c3R5bGU+CiAgICAuZGVtby1jb250YWluZXIgewogICAgICBwYWRkaW5nOiA0MHB4OwogICAgICBiYWNrZ3JvdW5kOiAjZjVmNWY1OwogICAgfQogICAgLmRlbW8tc2VjdGlvbiB7CiAgICAgIG1hcmdpbi1ib3R0b206IDYwcHg7CiAgICB9CiAgICBoMyB7CiAgICAgIG1hcmdpbi1ib3R0b206IDIwcHg7CiAgICAgIGZvbnQtc2l6ZTogMThweDsKICAgICAgZm9udC13ZWlnaHQ6IDYwMDsKICAgIH0KICAgIC50aWxlLXJvdyB7CiAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgIGdhcDogMjRweDsKICAgICAgZmxleC13cmFwOiB3cmFwOwogICAgICBhbGlnbi1pdGVtczogZmxleC1zdGFydDsKICAgIH0KICA8L3N0eWxlPgoKICA8ZGl2IGNsYXNzPSJkZW1vLWNvbnRhaW5lciI+CiAgICA8ZGl2IGNsYXNzPSJkZW1vLXNlY3Rpb24iPgogICAgICA8aDM+VmlkZW8gVGlsZXM8L2gzPgogICAgICA8ZGl2IGNsYXNzPSJ0aWxlLXJvdyI+CiAgICAgICAgPGRlZXMtdGlsZS12aWRlbwogICAgICAgICAgc3JjPSJodHRwczovL3d3dy53M3NjaG9vbHMuY29tL2h0bWwvbW92X2JiYi5tcDQiCiAgICAgICAgICBsYWJlbD0iYnVubnkubXA0IgogICAgICAgICAgQHRpbGUtY2xpY2s9JHt0PT5jb25zb2xlLmxvZygiVmlkZW8gY2xpY2tlZDoiLHQuZGV0YWlsKX0KICAgICAgICA+PC9kZWVzLXRpbGUtdmlkZW8+CgogICAgICAgIDxkZWVzLXRpbGUtdmlkZW8KICAgICAgICAgIHNyYz0iaHR0cHM6Ly93d3cudzNzY2hvb2xzLmNvbS9odG1sL21vdmllLm1wNCIKICAgICAgICAgIHBvc3Rlcj0iaHR0cHM6Ly9waWNzdW0ucGhvdG9zLzQwMC8zMDAiCiAgICAgICAgICBsYWJlbD0ibW92aWUubXA0IgogICAgICAgID48L2RlZXMtdGlsZS12aWRlbz4KCiAgICAgICAgPGRlZXMtdGlsZS12aWRlbwogICAgICAgICAgc3JjPSJodHRwczovL3d3dy53M3NjaG9vbHMuY29tL2h0bWwvbW92X2JiYi5tcDQiCiAgICAgICAgICBsYWJlbD0iYW5vdGhlci12aWRlby5tcDQiCiAgICAgICAgPjwvZGVlcy10aWxlLXZpZGVvPgogICAgICA8L2Rpdj4KICAgIDwvZGl2PgoKICAgIDxkaXYgY2xhc3M9ImRlbW8tc2VjdGlvbiI+CiAgICAgIDxoMz5TaXplIFZhcmlhbnRzPC9oMz4KICAgICAgPGRpdiBjbGFzcz0idGlsZS1yb3ciPgogICAgICAgIDxkZWVzLXRpbGUtdmlkZW8KICAgICAgICAgIHNpemU9InNtYWxsIgogICAgICAgICAgc3JjPSJodHRwczovL3d3dy53M3NjaG9vbHMuY29tL2h0bWwvbW92X2JiYi5tcDQiCiAgICAgICAgICBsYWJlbD0ic21hbGwubXA0IgogICAgICAgID48L2RlZXMtdGlsZS12aWRlbz4KCiAgICAgICAgPGRlZXMtdGlsZS12aWRlbwogICAgICAgICAgc3JjPSJodHRwczovL3d3dy53M3NjaG9vbHMuY29tL2h0bWwvbW92X2JiYi5tcDQiCiAgICAgICAgICBsYWJlbD0iZGVmYXVsdC5tcDQiCiAgICAgICAgPjwvZGVlcy10aWxlLXZpZGVvPgoKICAgICAgICA8ZGVlcy10aWxlLXZpZGVvCiAgICAgICAgICBzaXplPSJsYXJnZSIKICAgICAgICAgIHNyYz0iaHR0cHM6Ly93d3cudzNzY2hvb2xzLmNvbS9odG1sL21vdl9iYmIubXA0IgogICAgICAgICAgbGFiZWw9ImxhcmdlLm1wNCIKICAgICAgICA+PC9kZWVzLXRpbGUtdmlkZW8+CiAgICAgIDwvZGl2PgogICAgPC9kaXY+CgogICAgPGRpdiBjbGFzcz0iZGVtby1zZWN0aW9uIj4KICAgICAgPGgzPldpdGggUG9zdGVyIEltYWdlPC9oMz4KICAgICAgPGRlZXMtdGlsZS12aWRlbwogICAgICAgIHNyYz0iaHR0cHM6Ly93d3cudzNzY2hvb2xzLmNvbS9odG1sL21vdmllLm1wNCIKICAgICAgICBwb3N0ZXI9Imh0dHBzOi8vcGljc3VtLnBob3Rvcy82MDAvNDAwIgogICAgICAgIGxhYmVsPSJwb3N0ZXItdmlkZW8ubXA0IgogICAgICA+PC9kZWVzLXRpbGUtdmlkZW8+CiAgICA8L2Rpdj4KICA8L2Rpdj4KYH0pO3ZhciBIbCx0cixUdnQsTHZ0PWIoKCk9Pnt1ZSgpO2JvKCk7anMoKTtfdnQoKTtIbD1mdW5jdGlvbih0LGUsYSxpLHIscyl7ZnVuY3Rpb24gbih4KXtpZih4IT09dm9pZCAwJiZ0eXBlb2YgeCE9ImZ1bmN0aW9uIil0aHJvdyBuZXcgVHlwZUVycm9yKCJGdW5jdGlvbiBleHBlY3RlZCIpO3JldHVybiB4fWZvcih2YXIgbz1pLmtpbmQsZD1vPT09ImdldHRlciI/ImdldCI6bz09PSJzZXR0ZXIiPyJzZXQiOiJ2YWx1ZSIsYz0hZSYmdD9pLnN0YXRpYz90OnQucHJvdG90eXBlOm51bGwsaD1lfHwoYz9PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGMsaS5uYW1lKTp7fSksbCxmPSExLGc9YS5sZW5ndGgtMTtnPj0wO2ctLSl7dmFyIHk9e307Zm9yKHZhciB2IGluIGkpeVt2XT12PT09ImFjY2VzcyI/e306aVt2XTtmb3IodmFyIHYgaW4gaS5hY2Nlc3MpeS5hY2Nlc3Nbdl09aS5hY2Nlc3Nbdl07eS5hZGRJbml0aWFsaXplcj1mdW5jdGlvbih4KXtpZihmKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBhZGQgaW5pdGlhbGl6ZXJzIGFmdGVyIGRlY29yYXRpb24gaGFzIGNvbXBsZXRlZCIpO3MucHVzaChuKHh8fG51bGwpKX07dmFyIG09KDAsYVtnXSkobz09PSJhY2Nlc3NvciI/e2dldDpoLmdldCxzZXQ6aC5zZXR9OmhbZF0seSk7aWYobz09PSJhY2Nlc3NvciIpe2lmKG09PT12b2lkIDApY29udGludWU7aWYobT09PW51bGx8fHR5cGVvZiBtIT0ib2JqZWN0Iil0aHJvdyBuZXcgVHlwZUVycm9yKCJPYmplY3QgZXhwZWN0ZWQiKTsobD1uKG0uZ2V0KSkmJihoLmdldD1sKSwobD1uKG0uc2V0KSkmJihoLnNldD1sKSwobD1uKG0uaW5pdCkpJiZyLnVuc2hpZnQobCl9ZWxzZShsPW4obSkpJiYobz09PSJmaWVsZCI/ci51bnNoaWZ0KGwpOmhbZF09bCl9YyYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGMsaS5uYW1lLGgpLGY9ITB9LHRyPWZ1bmN0aW9uKHQsZSxhKXtmb3IodmFyIGk9YXJndW1lbnRzLmxlbmd0aD4yLHI9MDtyPGUubGVuZ3RoO3IrKylhPWk/ZVtyXS5jYWxsKHQsYSk6ZVtyXS5jYWxsKHQpO3JldHVybiBpP2E6dm9pZCAwfSxUdnQ9KCgpPT57bGV0IHQ9W3BlKCJkZWVzLXRpbGUtdmlkZW8iKV0sZSxhPVtdLGkscj12YSxzLG49W10sbz1bXSxkLGM9W10saD1bXSxsLGY9W10sZz1bXSx5LHY9W10sbT1bXSx4LE09W10sUz1bXTt2YXIgRj1jbGFzcyBleHRlbmRzIHJ7c3RhdGlje2k9dGhpc31zdGF0aWN7bGV0IF89dHlwZW9mIFN5bWJvbD09ImZ1bmN0aW9uIiYmU3ltYm9sLm1ldGFkYXRhP09iamVjdC5jcmVhdGUocltTeW1ib2wubWV0YWRhdGFdPz9udWxsKTp2b2lkIDA7cz1bSSh7dHlwZTpTdHJpbmd9KV0sZD1bSSh7dHlwZTpTdHJpbmd9KV0sbD1bSigpXSx5PVtKKCldLHg9W0ooKV0sSGwodGhpcyxudWxsLHMse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJzcmMiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOms9PiJzcmMiaW4gayxnZXQ6az0+ay5zcmMsc2V0OihrLE4pPT57ay5zcmM9Tn19LG1ldGFkYXRhOl99LG4sbyksSGwodGhpcyxudWxsLGQse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJwb3N0ZXIiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOms9PiJwb3N0ZXIiaW4gayxnZXQ6az0+ay5wb3N0ZXIsc2V0OihrLE4pPT57ay5wb3N0ZXI9Tn19LG1ldGFkYXRhOl99LGMsaCksSGwodGhpcyxudWxsLGwse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJkdXJhdGlvbiIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6az0+ImR1cmF0aW9uImluIGssZ2V0Oms9PmsuZHVyYXRpb24sc2V0OihrLE4pPT57ay5kdXJhdGlvbj1OfX0sbWV0YWRhdGE6X30sZixnKSxIbCh0aGlzLG51bGwseSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InRodW1ibmFpbENhcHR1cmVkIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczprPT4idGh1bWJuYWlsQ2FwdHVyZWQiaW4gayxnZXQ6az0+ay50aHVtYm5haWxDYXB0dXJlZCxzZXQ6KGssTik9PntrLnRodW1ibmFpbENhcHR1cmVkPU59fSxtZXRhZGF0YTpffSx2LG0pLEhsKHRoaXMsbnVsbCx4LHtraW5kOiJhY2Nlc3NvciIsbmFtZToiaXNIb3ZlcmluZyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6az0+ImlzSG92ZXJpbmciaW4gayxnZXQ6az0+ay5pc0hvdmVyaW5nLHNldDooayxOKT0+e2suaXNIb3ZlcmluZz1OfX0sbWV0YWRhdGE6X30sTSxTKSxIbChudWxsLGU9e3ZhbHVlOml9LHQse2tpbmQ6ImNsYXNzIixuYW1lOmkubmFtZSxtZXRhZGF0YTpffSxudWxsLGEpLEY9aT1lLnZhbHVlLF8mJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShpLFN5bWJvbC5tZXRhZGF0YSx7ZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITAsdmFsdWU6X30pfXN0YXRpYyBkZW1vPUN2dDtzdGF0aWMgZGVtb0dyb3Vwcz1bIk1lZGlhIl07c3RhdGljIHN0eWxlcz1bLi4uSjIsUWAKICAgICAgLnZpZGVvLXdyYXBwZXIgewogICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgICB3aWR0aDogMTAwJTsKICAgICAgICBoZWlnaHQ6IDEwMCU7CiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgICAgICBiYWNrZ3JvdW5kOiAjMDAwOwogICAgICB9CgogICAgICAudmlkZW8td3JhcHBlciB2aWRlbyB7CiAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgICAgaGVpZ2h0OiAxMDAlOwogICAgICAgIG9iamVjdC1maXQ6IGNvdmVyOwogICAgICAgIGRpc3BsYXk6IGJsb2NrOwogICAgICB9CgogICAgICAudmlkZW8td3JhcHBlciBjYW52YXMgewogICAgICAgIHdpZHRoOiAxMDAlOwogICAgICAgIGhlaWdodDogMTAwJTsKICAgICAgICBvYmplY3QtZml0OiBjb3ZlcjsKICAgICAgICBkaXNwbGF5OiBibG9jazsKICAgICAgfQoKICAgICAgLnBvc3Rlci1pbWFnZSB7CiAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgICAgaGVpZ2h0OiAxMDAlOwogICAgICAgIG9iamVjdC1maXQ6IGNvdmVyOwogICAgICAgIGRpc3BsYXk6IGJsb2NrOwogICAgICB9CgoKICAgICAgLnBsYXktb3ZlcmxheSB7CiAgICAgICAgcG9zaXRpb246IGFic29sdXRlOwogICAgICAgIHRvcDogNTAlOwogICAgICAgIGxlZnQ6IDUwJTsKICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlLCAtNTAlKTsKICAgICAgICB3aWR0aDogNDhweDsKICAgICAgICBoZWlnaHQ6IDQ4cHg7CiAgICAgICAgYm9yZGVyLXJhZGl1czogNTAlOwogICAgICAgIGJhY2tncm91bmQ6IHJnYmEoMCwgMCwgMCwgMC42KTsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7CiAgICAgICAgei1pbmRleDogMTU7CiAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7CiAgICAgICAgdHJhbnNpdGlvbjogb3BhY2l0eSAwLjJzIGVhc2U7CiAgICAgIH0KCiAgICAgIC5wbGF5LW92ZXJsYXkgZGVlcy1pY29uIHsKICAgICAgICBmb250LXNpemU6IDIwcHg7CiAgICAgICAgY29sb3I6IHdoaXRlOwogICAgICB9CgogICAgICAudGlsZS1jb250YWluZXIuY2xpY2thYmxlOmhvdmVyIC5wbGF5LW92ZXJsYXkgewogICAgICAgIG9wYWNpdHk6IDA7CiAgICAgIH0KCiAgICAgIC52aWRlby1ob3Zlci1wcmV2aWV3IHsKICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgICAgdG9wOiAwOwogICAgICAgIGxlZnQ6IDA7CiAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgICAgaGVpZ2h0OiAxMDAlOwogICAgICAgIG9iamVjdC1maXQ6IGNvdmVyOwogICAgICAgIHotaW5kZXg6IDU7CiAgICAgICAgb3BhY2l0eTogMDsKICAgICAgICB0cmFuc2l0aW9uOiBvcGFjaXR5IDAuM3MgZWFzZTsKICAgICAgfQoKICAgICAgLnZpZGVvLWhvdmVyLXByZXZpZXcuYWN0aXZlIHsKICAgICAgICBvcGFjaXR5OiAxOwogICAgICB9CiAgICBgXTsjZT10cih0aGlzLG4sIiIpO2dldCBzcmMoKXtyZXR1cm4gdGhpcy4jZX1zZXQgc3JjKF8pe3RoaXMuI2U9X30jdD0odHIodGhpcyxvKSx0cih0aGlzLGMsIiIpKTtnZXQgcG9zdGVyKCl7cmV0dXJuIHRoaXMuI3R9c2V0IHBvc3RlcihfKXt0aGlzLiN0PV99I2E9KHRyKHRoaXMsaCksdHIodGhpcyxmLDApKTtnZXQgZHVyYXRpb24oKXtyZXR1cm4gdGhpcy4jYX1zZXQgZHVyYXRpb24oXyl7dGhpcy4jYT1ffSNpPSh0cih0aGlzLGcpLHRyKHRoaXMsdiwhMSkpO2dldCB0aHVtYm5haWxDYXB0dXJlZCgpe3JldHVybiB0aGlzLiNpfXNldCB0aHVtYm5haWxDYXB0dXJlZChfKXt0aGlzLiNpPV99I3I9KHRyKHRoaXMsbSksdHIodGhpcyxNLCExKSk7Z2V0IGlzSG92ZXJpbmcoKXtyZXR1cm4gdGhpcy4jcn1zZXQgaXNIb3ZlcmluZyhfKXt0aGlzLiNyPV99dGh1bWJuYWlsQ2FudmFzPSh0cih0aGlzLFMpLG51bGwpO2hvdmVyVmlkZW89bnVsbDtoYXNTdGFydGVkTG9hZGluZz0hMTtyZW5kZXJUaWxlQ29udGVudCgpe3JldHVybiB3YAogICAgICA8ZGl2IGNsYXNzPSJ2aWRlby13cmFwcGVyIj4KICAgICAgICAke3RoaXMucG9zdGVyP3dgCiAgICAgICAgICA8aW1nIGNsYXNzPSJwb3N0ZXItaW1hZ2UiIHNyYz0iJHt0aGlzLnBvc3Rlcn0iIGFsdD0iIiAvPgogICAgICAgIGA6dGhpcy50aHVtYm5haWxDYXB0dXJlZD93YAogICAgICAgICAgPGNhbnZhcz48L2NhbnZhcz4KICAgICAgICBgOndgCiAgICAgICAgICA8ZGl2IHN0eWxlPSJ3aWR0aDogMTAwJTsgaGVpZ2h0OiAxMDAlOyBiYWNrZ3JvdW5kOiAjMDAwOyI+PC9kaXY+CiAgICAgICAgYH0KCiAgICAgICAgJHt0aGlzLmlzSG92ZXJpbmcmJnRoaXMuc3JjP3dgCiAgICAgICAgICA8dmlkZW8KICAgICAgICAgICAgY2xhc3M9InZpZGVvLWhvdmVyLXByZXZpZXcgJHt0aGlzLmlzSG92ZXJpbmc/ImFjdGl2ZSI6IiJ9IgogICAgICAgICAgICAuc3JjPSR7dGhpcy5zcmN9CiAgICAgICAgICAgIG11dGVkCiAgICAgICAgICAgIHBsYXlzaW5saW5lCiAgICAgICAgICAgIEBsb2FkZWRkYXRhPSR7dGhpcy5oYW5kbGVIb3ZlclZpZGVvTG9hZGVkfQogICAgICAgICAgPjwvdmlkZW8+CiAgICAgICAgYDoiIn0KICAgICAgPC9kaXY+CgogICAgICAke3RoaXMuZHVyYXRpb24+MD93YAogICAgICAgIDxkaXYgY2xhc3M9InRpbGUtYmFkZ2UtY29ybmVyIj4ke3RoaXMuZm9ybWF0VGltZSh0aGlzLmR1cmF0aW9uKX08L2Rpdj4KICAgICAgYDoiIn0KCiAgICAgICR7dGhpcy5pc0hvdmVyaW5nPyIiOndgCiAgICAgICAgPGRpdiBjbGFzcz0icGxheS1vdmVybGF5Ij4KICAgICAgICAgIDxkZWVzLWljb24gaWNvbj0ibHVjaWRlOlBsYXkiPjwvZGVlcy1pY29uPgogICAgICAgIDwvZGl2PgogICAgICBgfQoKICAgICAgJHt0aGlzLmNsaWNrYWJsZT93YAogICAgICAgIDxkaXYgY2xhc3M9InRpbGUtb3ZlcmxheSI+CiAgICAgICAgICA8ZGVlcy1pY29uIGljb249Imx1Y2lkZTpQbGF5Ij48L2RlZXMtaWNvbj4KICAgICAgICAgIDxzcGFuPlBsYXkgVmlkZW88L3NwYW4+CiAgICAgICAgPC9kaXY+CiAgICAgIGA6IiJ9CiAgICBgfWdldFRpbGVDbGlja0RldGFpbCgpe3JldHVybntzcmM6dGhpcy5zcmMscG9zdGVyOnRoaXMucG9zdGVyLGR1cmF0aW9uOnRoaXMuZHVyYXRpb259fW9uQmVjYW1lVmlzaWJsZSgpeyF0aGlzLmhhc1N0YXJ0ZWRMb2FkaW5nJiZ0aGlzLnNyYyYmKHRoaXMuaGFzU3RhcnRlZExvYWRpbmc9ITAsdGhpcy5jYXB0dXJlRmlyc3RGcmFtZSgpKX1hc3luYyBjYXB0dXJlRmlyc3RGcmFtZSgpe2lmKHRoaXMucG9zdGVyKXt0aGlzLmxvYWREdXJhdGlvbigpO3JldHVybn10aGlzLmxvYWRpbmc9ITA7dHJ5e2xldCBfPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInZpZGVvIik7Xy5jcm9zc09yaWdpbj0iYW5vbnltb3VzIixfLm11dGVkPSEwLF8ucHJlbG9hZD0ibWV0YWRhdGEiLGF3YWl0IG5ldyBQcm9taXNlKChrLE4pPT57Xy5hZGRFdmVudExpc3RlbmVyKCJsb2FkZWRkYXRhIiwoKT0+e3RoaXMuZHVyYXRpb249Xy5kdXJhdGlvbixfLmN1cnJlbnRUaW1lPS4xLF8uYWRkRXZlbnRMaXN0ZW5lcigic2Vla2VkIiwoKT0+e2xldCBMPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImNhbnZhcyIpO0wud2lkdGg9Xy52aWRlb1dpZHRoLEwuaGVpZ2h0PV8udmlkZW9IZWlnaHQ7bGV0IEE9TC5nZXRDb250ZXh0KCIyZCIpO0EmJihBLmRyYXdJbWFnZShfLDAsMCksdGhpcy50aHVtYm5haWxDYW52YXM9TCx0aGlzLnRodW1ibmFpbENhcHR1cmVkPSEwKSxfLnNyYz0iIixfLmxvYWQoKSxrKCl9LHtvbmNlOiEwfSl9LHtvbmNlOiEwfSksXy5hZGRFdmVudExpc3RlbmVyKCJlcnJvciIsKCk9Pk4obmV3IEVycm9yKCJGYWlsZWQgdG8gbG9hZCB2aWRlbyIpKSx7b25jZTohMH0pLF8uc3JjPXRoaXMuc3JjfSksdGhpcy5sb2FkaW5nPSExLGF3YWl0IHRoaXMudXBkYXRlQ29tcGxldGUsdGhpcy5jb3B5VGh1bWJuYWlsVG9DYW52YXMoKX1jYXRjaHt0aGlzLmxvYWRpbmc9ITEsdGhpcy5sb2FkRHVyYXRpb24oKX19bG9hZER1cmF0aW9uKCl7bGV0IF89ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgidmlkZW8iKTtfLnByZWxvYWQ9Im1ldGFkYXRhIixfLmFkZEV2ZW50TGlzdGVuZXIoImxvYWRlZG1ldGFkYXRhIiwoKT0+e3RoaXMuZHVyYXRpb249Xy5kdXJhdGlvbixfLnNyYz0iIixfLmxvYWQoKX0pLF8uc3JjPXRoaXMuc3JjfWNvcHlUaHVtYm5haWxUb0NhbnZhcygpe2lmKCF0aGlzLnRodW1ibmFpbENhbnZhcylyZXR1cm47bGV0IF89dGhpcy5zaGFkb3dSb290Py5xdWVyeVNlbGVjdG9yKCIudmlkZW8td3JhcHBlciBjYW52YXMiKTtpZighXylyZXR1cm47Xy53aWR0aD10aGlzLnRodW1ibmFpbENhbnZhcy53aWR0aCxfLmhlaWdodD10aGlzLnRodW1ibmFpbENhbnZhcy5oZWlnaHQ7bGV0IGs9Xy5nZXRDb250ZXh0KCIyZCIpO2smJmsuZHJhd0ltYWdlKHRoaXMudGh1bWJuYWlsQ2FudmFzLDAsMCl9b25UaWxlTW91c2VFbnRlcigpe3RoaXMuaXNIb3ZlcmluZz0hMH1vblRpbGVNb3VzZUxlYXZlKCl7dGhpcy5pc0hvdmVyaW5nPSExLHRoaXMuaG92ZXJWaWRlbz1udWxsfWhhbmRsZUhvdmVyVmlkZW9Mb2FkZWQoXyl7dGhpcy5ob3ZlclZpZGVvPV8udGFyZ2V0LHRoaXMuaG92ZXJWaWRlby5wbGF5KCkuY2F0Y2goKCk9Pnt9KX1hc3luYyB1cGRhdGVkKF8pe3N1cGVyLnVwZGF0ZWQoXyksXy5oYXMoInNyYyIpJiZ0aGlzLnNyYyYmdGhpcy5pc1Zpc2libGUmJih0aGlzLmhhc1N0YXJ0ZWRMb2FkaW5nPSEwLHRoaXMudGh1bWJuYWlsQ2FwdHVyZWQ9ITEsdGhpcy5kdXJhdGlvbj0wLHRoaXMuY2FwdHVyZUZpcnN0RnJhbWUoKSksXy5oYXMoInRodW1ibmFpbENhcHR1cmVkIikmJnRoaXMudGh1bWJuYWlsQ2FwdHVyZWQmJihhd2FpdCB0aGlzLnVwZGF0ZUNvbXBsZXRlLHRoaXMuY29weVRodW1ibmFpbFRvQ2FudmFzKCkpfWFzeW5jIGRpc2Nvbm5lY3RlZENhbGxiYWNrKCl7YXdhaXQgc3VwZXIuZGlzY29ubmVjdGVkQ2FsbGJhY2soKSx0aGlzLmhvdmVyVmlkZW8mJih0aGlzLmhvdmVyVmlkZW8ucGF1c2UoKSx0aGlzLmhvdmVyVmlkZW8uc3JjPSIiLHRoaXMuaG92ZXJWaWRlbz1udWxsKSx0aGlzLnRodW1ibmFpbENhbnZhcz1udWxsfWZvcm1hdFRpbWUoXyl7aWYoIWlzRmluaXRlKF8pfHxfPDApcmV0dXJuIjA6MDAiO2xldCBrPU1hdGguZmxvb3IoXy82MCksTj1NYXRoLmZsb29yKF8lNjApO3JldHVybmAke2t9OiR7Ti50b1N0cmluZygpLnBhZFN0YXJ0KDIsIjAiKX1gfXN0YXRpY3t0cihpLGEpfX07cmV0dXJuIEY9aX0pKCl9KTt2YXIgJHZ0PWIoKCk9PntMdnQoKX0pO3ZhciBBdnQsRHZ0PWIoKCk9Pnt1ZSgpO0F2dD0oKT0+e2xldCB0PWBpbXBvcnQgeyBodG1sIH0gZnJvbSAnbGl0JzsKCmV4cG9ydCBjbGFzcyBNeUNvbXBvbmVudCB7CiAgcHJpdmF0ZSBpdGVtczogc3RyaW5nW10gPSBbXTsKCiAgcmVuZGVyKCkgewogICAgcmV0dXJuIGh0bWxcYAogICAgICA8ZGl2IGNsYXNzPSJjb250YWluZXIiPgogICAgICAgIFwke3RoaXMuaXRlbXMubWFwKGl0ZW0gPT4gaHRtbFxgCiAgICAgICAgICA8c3Bhbj5cJHtpdGVtfTwvc3Bhbj4KICAgICAgICBcYCl9CiAgICAgIDwvZGl2PgogICAgXGA7CiAgfQp9YCxlPWBNZWV0aW5nIE5vdGVzIC0gUTQgUGxhbm5pbmcKRGF0ZTogSmFudWFyeSAxNSwgMjAyNgpBdHRlbmRlZXM6IEFsaWNlLCBCb2IsIENoYXJsaWUKCktleSBEZWNpc2lvbnM6CjEuIExhdW5jaCBuZXcgZmVhdHVyZSBieSBNYXJjaAoyLiBIaXJlIDIgbW9yZSBlbmdpbmVlcnMKMy4gTWlncmF0ZSB0byBuZXcgQ0kvQ0QgcGlwZWxpbmUKNC4gVXBkYXRlIGRlc2lnbiBzeXN0ZW0gdG8gdjMKCkFjdGlvbiBJdGVtczoKLSBBbGljZTogRHJhZnQgUFJEIGJ5IG5leHQgd2VlawotIEJvYjogU2V0IHVwIGludGVydmlldyBwaXBlbGluZQotIENoYXJsaWU6IEV2YWx1YXRlIEplbmtpbnMgdnMgR2l0SHViIEFjdGlvbnNgO3JldHVybiB3YAogICAgPHN0eWxlPgogICAgICAuZGVtby1jb250YWluZXIgewogICAgICAgIHBhZGRpbmc6IDQwcHg7CiAgICAgICAgYmFja2dyb3VuZDogI2Y1ZjVmNTsKICAgICAgfQogICAgICAuZGVtby1zZWN0aW9uIHsKICAgICAgICBtYXJnaW4tYm90dG9tOiA2MHB4OwogICAgICB9CiAgICAgIGgzIHsKICAgICAgICBtYXJnaW4tYm90dG9tOiAyMHB4OwogICAgICAgIGZvbnQtc2l6ZTogMThweDsKICAgICAgICBmb250LXdlaWdodDogNjAwOwogICAgICB9CiAgICAgIC50aWxlLXJvdyB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBnYXA6IDI0cHg7CiAgICAgICAgZmxleC13cmFwOiB3cmFwOwogICAgICAgIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0OwogICAgICB9CiAgICA8L3N0eWxlPgoKICAgIDxkaXYgY2xhc3M9ImRlbW8tY29udGFpbmVyIj4KICAgICAgPGRpdiBjbGFzcz0iZGVtby1zZWN0aW9uIj4KICAgICAgICA8aDM+Tm90ZSBUaWxlczwvaDM+CiAgICAgICAgPGRpdiBjbGFzcz0idGlsZS1yb3ciPgogICAgICAgICAgPGRlZXMtdGlsZS1ub3RlCiAgICAgICAgICAgIHRpdGxlPSJjb21wb25lbnQudHMiCiAgICAgICAgICAgIC5jb250ZW50PSR7dH0KICAgICAgICAgICAgbGFuZ3VhZ2U9InR5cGVzY3JpcHQiCiAgICAgICAgICAgIGxhYmVsPSJjb21wb25lbnQudHMiCiAgICAgICAgICAgIEB0aWxlLWNsaWNrPSR7aT0+Y29uc29sZS5sb2coIk5vdGUgY2xpY2tlZDoiLGkuZGV0YWlsKX0KICAgICAgICAgID48L2RlZXMtdGlsZS1ub3RlPgoKICAgICAgICAgIDxkZWVzLXRpbGUtbm90ZQogICAgICAgICAgICB0aXRsZT0iTWVldGluZyBOb3RlcyIKICAgICAgICAgICAgLmNvbnRlbnQ9JHtlfQogICAgICAgICAgICBsYWJlbD0ibWVldGluZy1ub3Rlcy50eHQiCiAgICAgICAgICA+PC9kZWVzLXRpbGUtbm90ZT4KCiAgICAgICAgICA8ZGVlcy10aWxlLW5vdGUKICAgICAgICAgICAgdGl0bGU9InBhY2thZ2UuanNvbiIKICAgICAgICAgICAgLmNvbnRlbnQ9JHtgewogICJuYW1lIjogIkBkZXNpZ24uZXN0YXRlL2RlZXMtY2F0YWxvZyIsCiAgInZlcnNpb24iOiAiMy4zOC4wIiwKICAiZGVzY3JpcHRpb24iOiAiRGVzaWduIGNvbXBvbmVudCBjYXRhbG9nIiwKICAiZGVwZW5kZW5jaWVzIjogewogICAgIkBkZXNpZ24uZXN0YXRlL2RlZXMtZWxlbWVudCI6ICJeMi4wLjAiLAogICAgImxpdCI6ICJeMy4xLjAiCiAgfSwKICAic2NyaXB0cyI6IHsKICAgICJidWlsZCI6ICJ0c2J1aWxkIiwKICAgICJ0ZXN0IjogInRzdGVzdCIKICB9Cn1gfQogICAgICAgICAgICBsYW5ndWFnZT0ianNvbiIKICAgICAgICAgICAgbGFiZWw9InBhY2thZ2UuanNvbiIKICAgICAgICAgID48L2RlZXMtdGlsZS1ub3RlPgogICAgICAgIDwvZGl2PgogICAgICA8L2Rpdj4KCiAgICAgIDxkaXYgY2xhc3M9ImRlbW8tc2VjdGlvbiI+CiAgICAgICAgPGgzPlNpemUgVmFyaWFudHM8L2gzPgogICAgICAgIDxkaXYgY2xhc3M9InRpbGUtcm93Ij4KICAgICAgICAgIDxkZWVzLXRpbGUtbm90ZQogICAgICAgICAgICBzaXplPSJzbWFsbCIKICAgICAgICAgICAgdGl0bGU9InNtYWxsLnRzIgogICAgICAgICAgICAuY29udGVudD0ke3R9CiAgICAgICAgICAgIGxhbmd1YWdlPSJ0cyIKICAgICAgICAgICAgbGFiZWw9InNtYWxsLnRzIgogICAgICAgICAgPjwvZGVlcy10aWxlLW5vdGU+CgogICAgICAgICAgPGRlZXMtdGlsZS1ub3RlCiAgICAgICAgICAgIHRpdGxlPSJkZWZhdWx0LnRzIgogICAgICAgICAgICAuY29udGVudD0ke3R9CiAgICAgICAgICAgIGxhbmd1YWdlPSJ0cyIKICAgICAgICAgICAgbGFiZWw9ImRlZmF1bHQudHMiCiAgICAgICAgICA+PC9kZWVzLXRpbGUtbm90ZT4KCiAgICAgICAgICA8ZGVlcy10aWxlLW5vdGUKICAgICAgICAgICAgc2l6ZT0ibGFyZ2UiCiAgICAgICAgICAgIHRpdGxlPSJsYXJnZS50cyIKICAgICAgICAgICAgLmNvbnRlbnQ9JHt0fQogICAgICAgICAgICBsYW5ndWFnZT0idHMiCiAgICAgICAgICAgIGxhYmVsPSJsYXJnZS50cyIKICAgICAgICAgID48L2RlZXMtdGlsZS1ub3RlPgogICAgICAgIDwvZGl2PgogICAgICA8L2Rpdj4KCiAgICAgIDxkaXYgY2xhc3M9ImRlbW8tc2VjdGlvbiI+CiAgICAgICAgPGgzPldpdGhvdXQgVGl0bGU8L2gzPgogICAgICAgIDxkZWVzLXRpbGUtbm90ZQogICAgICAgICAgLmNvbnRlbnQ9JHtlfQogICAgICAgICAgbGFiZWw9InVudGl0bGVkLnR4dCIKICAgICAgICA+PC9kZWVzLXRpbGUtbm90ZT4KICAgICAgPC9kaXY+CiAgICA8L2Rpdj4KICBgfX0pO3ZhciBYOCxVcyxFdnQsUHZ0PWIoKCk9Pnt1ZSgpO2JvKCk7anMoKTtEdnQoKTtYOD1mdW5jdGlvbih0LGUsYSxpLHIscyl7ZnVuY3Rpb24gbih4KXtpZih4IT09dm9pZCAwJiZ0eXBlb2YgeCE9ImZ1bmN0aW9uIil0aHJvdyBuZXcgVHlwZUVycm9yKCJGdW5jdGlvbiBleHBlY3RlZCIpO3JldHVybiB4fWZvcih2YXIgbz1pLmtpbmQsZD1vPT09ImdldHRlciI/ImdldCI6bz09PSJzZXR0ZXIiPyJzZXQiOiJ2YWx1ZSIsYz0hZSYmdD9pLnN0YXRpYz90OnQucHJvdG90eXBlOm51bGwsaD1lfHwoYz9PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGMsaS5uYW1lKTp7fSksbCxmPSExLGc9YS5sZW5ndGgtMTtnPj0wO2ctLSl7dmFyIHk9e307Zm9yKHZhciB2IGluIGkpeVt2XT12PT09ImFjY2VzcyI/e306aVt2XTtmb3IodmFyIHYgaW4gaS5hY2Nlc3MpeS5hY2Nlc3Nbdl09aS5hY2Nlc3Nbdl07eS5hZGRJbml0aWFsaXplcj1mdW5jdGlvbih4KXtpZihmKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBhZGQgaW5pdGlhbGl6ZXJzIGFmdGVyIGRlY29yYXRpb24gaGFzIGNvbXBsZXRlZCIpO3MucHVzaChuKHh8fG51bGwpKX07dmFyIG09KDAsYVtnXSkobz09PSJhY2Nlc3NvciI/e2dldDpoLmdldCxzZXQ6aC5zZXR9OmhbZF0seSk7aWYobz09PSJhY2Nlc3NvciIpe2lmKG09PT12b2lkIDApY29udGludWU7aWYobT09PW51bGx8fHR5cGVvZiBtIT0ib2JqZWN0Iil0aHJvdyBuZXcgVHlwZUVycm9yKCJPYmplY3QgZXhwZWN0ZWQiKTsobD1uKG0uZ2V0KSkmJihoLmdldD1sKSwobD1uKG0uc2V0KSkmJihoLnNldD1sKSwobD1uKG0uaW5pdCkpJiZyLnVuc2hpZnQobCl9ZWxzZShsPW4obSkpJiYobz09PSJmaWVsZCI/ci51bnNoaWZ0KGwpOmhbZF09bCl9YyYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGMsaS5uYW1lLGgpLGY9ITB9LFVzPWZ1bmN0aW9uKHQsZSxhKXtmb3IodmFyIGk9YXJndW1lbnRzLmxlbmd0aD4yLHI9MDtyPGUubGVuZ3RoO3IrKylhPWk/ZVtyXS5jYWxsKHQsYSk6ZVtyXS5jYWxsKHQpO3JldHVybiBpP2E6dm9pZCAwfSxFdnQ9KCgpPT57bGV0IHQ9W3BlKCJkZWVzLXRpbGUtbm90ZSIpXSxlLGE9W10saSxyPXZhLHMsbj1bXSxvPVtdLGQsYz1bXSxoPVtdLGwsZj1bXSxnPVtdLHksdj1bXSxtPVtdO3ZhciB4PWNsYXNzIGV4dGVuZHMgcntzdGF0aWN7aT10aGlzfXN0YXRpY3tsZXQgTT10eXBlb2YgU3ltYm9sPT0iZnVuY3Rpb24iJiZTeW1ib2wubWV0YWRhdGE/T2JqZWN0LmNyZWF0ZShyW1N5bWJvbC5tZXRhZGF0YV0/P251bGwpOnZvaWQgMDtzPVtJKHt0eXBlOlN0cmluZ30pXSxkPVtJKHt0eXBlOlN0cmluZ30pXSxsPVtJKHt0eXBlOlN0cmluZ30pXSx5PVtKKCldLFg4KHRoaXMsbnVsbCxzLHtraW5kOiJhY2Nlc3NvciIsbmFtZToidGl0bGUiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOlM9PiJ0aXRsZSJpbiBTLGdldDpTPT5TLnRpdGxlLHNldDooUyxGKT0+e1MudGl0bGU9Rn19LG1ldGFkYXRhOk19LG4sbyksWDgodGhpcyxudWxsLGQse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJjb250ZW50IixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpTPT4iY29udGVudCJpbiBTLGdldDpTPT5TLmNvbnRlbnQsc2V0OihTLEYpPT57Uy5jb250ZW50PUZ9fSxtZXRhZGF0YTpNfSxjLGgpLFg4KHRoaXMsbnVsbCxsLHtraW5kOiJhY2Nlc3NvciIsbmFtZToibGFuZ3VhZ2UiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOlM9PiJsYW5ndWFnZSJpbiBTLGdldDpTPT5TLmxhbmd1YWdlLHNldDooUyxGKT0+e1MubGFuZ3VhZ2U9Rn19LG1ldGFkYXRhOk19LGYsZyksWDgodGhpcyxudWxsLHkse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJpc0hvdmVyaW5nIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpTPT4iaXNIb3ZlcmluZyJpbiBTLGdldDpTPT5TLmlzSG92ZXJpbmcsc2V0OihTLEYpPT57Uy5pc0hvdmVyaW5nPUZ9fSxtZXRhZGF0YTpNfSx2LG0pLFg4KG51bGwsZT17dmFsdWU6aX0sdCx7a2luZDoiY2xhc3MiLG5hbWU6aS5uYW1lLG1ldGFkYXRhOk19LG51bGwsYSkseD1pPWUudmFsdWUsTSYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGksU3ltYm9sLm1ldGFkYXRhLHtlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMCx2YWx1ZTpNfSl9c3RhdGljIGRlbW89QXZ0O3N0YXRpYyBkZW1vR3JvdXBzPVsiTWVkaWEiXTtzdGF0aWMgc3R5bGVzPVsuLi5KMixRYAogICAgICAubm90ZS1jb250ZW50IHsKICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgICAgaGVpZ2h0OiAxMDAlOwogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgICBiYWNrZ3JvdW5kOiAke3AuYmRUaGVtZSgiI2ZmZmZmZiIsImhzbCg2MCA1JSA5NiUpIil9OwogICAgICAgIG92ZXJmbG93OiBoaWRkZW47CiAgICAgIH0KCiAgICAgIC5ub3RlLWhlYWRlciB7CiAgICAgICAgcGFkZGluZzogMTJweCAxNHB4IDhweDsKICAgICAgICBmbGV4LXNocmluazogMDsKICAgICAgfQoKICAgICAgLm5vdGUtdGl0bGUgewogICAgICAgIGZvbnQtc2l6ZTogMTJweDsKICAgICAgICBmb250LXdlaWdodDogNzAwOwogICAgICAgIGNvbG9yOiAke3AuYmRUaGVtZSgiaHNsKDIxNSAyMCUgMjAlKSIsImhzbCgyMTUgMjAlIDIwJSkiKX07CiAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDsKICAgICAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzOwogICAgICAgIGxpbmUtaGVpZ2h0OiAxLjM7CiAgICAgIH0KCiAgICAgIC5ub3RlLWJvZHkgewogICAgICAgIGZsZXg6IDE7CiAgICAgICAgcGFkZGluZzogMCAxNHB4IDE0cHg7CiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICAgIG92ZXJmbG93OiBoaWRkZW47CiAgICAgIH0KCiAgICAgIC5ub3RlLXRleHQgewogICAgICAgIGZvbnQtZmFtaWx5OiB1aS1tb25vc3BhY2UsIFNGTW9uby1SZWd1bGFyLCBNZW5sbywgTW9uYWNvLCBDb25zb2xhcywgbW9ub3NwYWNlOwogICAgICAgIGZvbnQtc2l6ZTogMTBweDsKICAgICAgICBsaW5lLWhlaWdodDogMS41OwogICAgICAgIGNvbG9yOiAke3AuYmRUaGVtZSgiaHNsKDIxNSAxMCUgNDAlKSIsImhzbCgyMTUgMTAlIDM1JSkiKX07CiAgICAgICAgd2hpdGUtc3BhY2U6IHByZS13cmFwOwogICAgICAgIHdvcmQtd3JhcDogYnJlYWstd29yZDsKICAgICAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgICAgIG1hcmdpbjogMDsKICAgICAgfQoKICAgICAgLm5vdGUtZmFkZSB7CiAgICAgICAgcG9zaXRpb246IGFic29sdXRlOwogICAgICAgIGJvdHRvbTogMDsKICAgICAgICBsZWZ0OiAwOwogICAgICAgIHJpZ2h0OiAwOwogICAgICAgIGhlaWdodDogNjBweDsKICAgICAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoCiAgICAgICAgICB0cmFuc3BhcmVudCwKICAgICAgICAgICR7cC5iZFRoZW1lKCIjZmZmZmZmIiwiaHNsKDYwIDUlIDk2JSkiKX0KICAgICAgICApOwogICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lOwogICAgICB9CgogICAgICAudGlsZS1iYWRnZS10b3ByaWdodC5ub3RlLWxhbmd1YWdlIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke3AuYmRUaGVtZSgiaHNsKDIxNSAyMCUgOTIlKSIsImhzbCgyMTUgMjAlIDg4JSkiKX07CiAgICAgICAgY29sb3I6ICR7cC5iZFRoZW1lKCJoc2woMjE1IDE2JSA1MCUpIiwiaHNsKDIxNSAxNiUgNDAlKSIpfTsKICAgICAgICBmb250LXNpemU6IDlweDsKICAgICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlOwogICAgICAgIHotaW5kZXg6IDU7CiAgICAgIH0KCiAgICAgIC5ub3RlLWxpbmVzIHsKICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgICAgdG9wOiAwOwogICAgICAgIGxlZnQ6IDA7CiAgICAgICAgYm90dG9tOiAwOwogICAgICAgIHdpZHRoOiAzNHB4OwogICAgICAgIGJvcmRlci1yaWdodDogMXB4IHNvbGlkICR7cC5iZFRoZW1lKCJoc2woMCA3MCUgODUlKSIsImhzbCgwIDUwJSA4MCUpIil9OwogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgICBwYWRkaW5nLXRvcDogMTJweDsKICAgICAgfQoKICAgICAgLmxpbmUtbnVtYmVyIHsKICAgICAgICBmb250LWZhbWlseTogdWktbW9ub3NwYWNlLCBTRk1vbm8tUmVndWxhciwgTWVubG8sIE1vbmFjbywgQ29uc29sYXMsIG1vbm9zcGFjZTsKICAgICAgICBmb250LXNpemU6IDlweDsKICAgICAgICBsaW5lLWhlaWdodDogMTVweDsgLyogbWF0Y2hlcyAxMHB4ICogMS41IGxpbmUtaGVpZ2h0ICovCiAgICAgICAgY29sb3I6ICR7cC5iZFRoZW1lKCJoc2woMjE1IDEwJSA3NSUpIiwiaHNsKDIxNSAxMCUgNzAlKSIpfTsKICAgICAgICB0ZXh0LWFsaWduOiByaWdodDsKICAgICAgICBwYWRkaW5nLXJpZ2h0OiA2cHg7CiAgICAgIH0KCiAgICBgXTsjZT1Vcyh0aGlzLG4sIiIpO2dldCB0aXRsZSgpe3JldHVybiB0aGlzLiNlfXNldCB0aXRsZShNKXt0aGlzLiNlPU19I3Q9KFVzKHRoaXMsbyksVXModGhpcyxjLCIiKSk7Z2V0IGNvbnRlbnQoKXtyZXR1cm4gdGhpcy4jdH1zZXQgY29udGVudChNKXt0aGlzLiN0PU19I2E9KFVzKHRoaXMsaCksVXModGhpcyxmLCIiKSk7Z2V0IGxhbmd1YWdlKCl7cmV0dXJuIHRoaXMuI2F9c2V0IGxhbmd1YWdlKE0pe3RoaXMuI2E9TX0jaT0oVXModGhpcyxnKSxVcyh0aGlzLHYsITEpKTtnZXQgaXNIb3ZlcmluZygpe3JldHVybiB0aGlzLiNpfXNldCBpc0hvdmVyaW5nKE0pe3RoaXMuI2k9TX1ub3RlQm9keUVsZW1lbnQ9KFVzKHRoaXMsbSksbnVsbCk7cmVuZGVyVGlsZUNvbnRlbnQoKXtsZXQgTT10aGlzLmNvbnRlbnQuc3BsaXQoYApgKTtyZXR1cm4gd2AKICAgICAgPGRpdiBjbGFzcz0ibm90ZS1jb250ZW50Ij4KICAgICAgICAke3RoaXMubGFuZ3VhZ2U/d2AKICAgICAgICAgIDxkaXYgY2xhc3M9InRpbGUtYmFkZ2UtdG9wcmlnaHQgbm90ZS1sYW5ndWFnZSI+JHt0aGlzLmxhbmd1YWdlfTwvZGl2PgogICAgICAgIGA6IiJ9CgogICAgICAgICR7dGhpcy50aXRsZT93YAogICAgICAgICAgPGRpdiBjbGFzcz0ibm90ZS1oZWFkZXIiPgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJub3RlLXRpdGxlIj4ke3RoaXMudGl0bGV9PC9kaXY+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICBgOiIifQoKICAgICAgICA8ZGl2IGNsYXNzPSJub3RlLWJvZHkiPgogICAgICAgICAgPHByZSBjbGFzcz0ibm90ZS10ZXh0Ij4ke00uam9pbihgCmApfTwvcHJlPgogICAgICAgICAgJHt0aGlzLmlzSG92ZXJpbmc/IiI6d2A8ZGl2IGNsYXNzPSJub3RlLWZhZGUiPjwvZGl2PmB9CiAgICAgICAgPC9kaXY+CgogICAgICAgICR7dGhpcy5pc0hvdmVyaW5nJiZNLmxlbmd0aD4xMj93YAogICAgICAgICAgPGRpdiBjbGFzcz0idGlsZS1iYWRnZS1jb3JuZXIiPgogICAgICAgICAgICBMaW5lICR7dGhpcy5nZXRWaXNpYmxlTGluZVJhbmdlKE0ubGVuZ3RoKX0KICAgICAgICAgIDwvZGl2PgogICAgICAgIGA6IiJ9CiAgICAgIDwvZGl2PgoKICAgICAgJHt0aGlzLmNsaWNrYWJsZT93YAogICAgICAgIDxkaXYgY2xhc3M9InRpbGUtb3ZlcmxheSI+CiAgICAgICAgICA8ZGVlcy1pY29uIGljb249Imx1Y2lkZTpGaWxlVGV4dCI+PC9kZWVzLWljb24+CiAgICAgICAgICA8c3Bhbj5PcGVuIE5vdGU8L3NwYW4+CiAgICAgICAgPC9kaXY+CiAgICAgIGA6IiJ9CiAgICBgfWdldFRpbGVDbGlja0RldGFpbCgpe3JldHVybnt0aXRsZTp0aGlzLnRpdGxlLGNvbnRlbnQ6dGhpcy5jb250ZW50LGxhbmd1YWdlOnRoaXMubGFuZ3VhZ2V9fW9uVGlsZU1vdXNlRW50ZXIoKXt0aGlzLmlzSG92ZXJpbmc9ITAsdGhpcy5ub3RlQm9keUVsZW1lbnR8fCh0aGlzLm5vdGVCb2R5RWxlbWVudD10aGlzLnNoYWRvd1Jvb3Q/LnF1ZXJ5U2VsZWN0b3IoIi5ub3RlLWJvZHkiKSl9b25UaWxlTW91c2VMZWF2ZSgpe3RoaXMuaXNIb3ZlcmluZz0hMSx0aGlzLm5vdGVCb2R5RWxlbWVudCYmKHRoaXMubm90ZUJvZHlFbGVtZW50LnNjcm9sbFRvcD0wKX1vblRpbGVNb3VzZU1vdmUoTSl7aWYoIXRoaXMuaXNIb3ZlcmluZ3x8IXRoaXMubm90ZUJvZHlFbGVtZW50fHx0aGlzLmNvbnRlbnQuc3BsaXQoYApgKS5sZW5ndGg8PTEyKXJldHVybjtsZXQgRj10aGlzLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLF89TS5jbGllbnRYLUYubGVmdCxrPU1hdGgubWF4KDAsTWF0aC5taW4oMSxfL0Yud2lkdGgpKSxOPXRoaXMubm90ZUJvZHlFbGVtZW50LnNjcm9sbEhlaWdodC10aGlzLm5vdGVCb2R5RWxlbWVudC5jbGllbnRIZWlnaHQ7dGhpcy5ub3RlQm9keUVsZW1lbnQuc2Nyb2xsVG9wPWsqTn1nZXRWaXNpYmxlTGluZVJhbmdlKE0pe2lmKCF0aGlzLm5vdGVCb2R5RWxlbWVudClyZXR1cm5gMVx1MjAxMzEyIG9mICR7TX1gO2xldCBTPTE1LEY9TWF0aC5mbG9vcih0aGlzLm5vdGVCb2R5RWxlbWVudC5zY3JvbGxUb3AvUykrMSxfPU1hdGguZmxvb3IodGhpcy5ub3RlQm9keUVsZW1lbnQuY2xpZW50SGVpZ2h0L1MpLGs9TWF0aC5taW4oRitfLTEsTSk7cmV0dXJuYCR7Rn1cdTIwMTMke2t9IG9mICR7TX1gfXN0YXRpY3tVcyhpLGEpfX07cmV0dXJuIHg9aX0pKCl9KTt2YXIgSXZ0PWIoKCk9PntQdnQoKX0pO3ZhciBOdnQsRnZ0PWIoKCk9Pnt1ZSgpO052dD0oKT0+e2xldCB0PVt7dHlwZToiaW1hZ2UiLG5hbWU6InN1bnNldC5qcGciLHRodW1ibmFpbFNyYzoiaHR0cHM6Ly9waWNzdW0ucGhvdG9zLzIwMC8yMDA/cmFuZG9tPTEifSx7dHlwZToiaW1hZ2UiLG5hbWU6Im1vdW50YWluLmpwZyIsdGh1bWJuYWlsU3JjOiJodHRwczovL3BpY3N1bS5waG90b3MvMjAwLzIwMD9yYW5kb209MiJ9LHt0eXBlOiJpbWFnZSIsbmFtZToib2NlYW4uanBnIix0aHVtYm5haWxTcmM6Imh0dHBzOi8vcGljc3VtLnBob3Rvcy8yMDAvMjAwP3JhbmRvbT0zIn0se3R5cGU6ImltYWdlIixuYW1lOiJmb3Jlc3QuanBnIix0aHVtYm5haWxTcmM6Imh0dHBzOi8vcGljc3VtLnBob3Rvcy8yMDAvMjAwP3JhbmRvbT00In0se3R5cGU6ImltYWdlIixuYW1lOiJjaXR5LmpwZyIsdGh1bWJuYWlsU3JjOiJodHRwczovL3BpY3N1bS5waG90b3MvMjAwLzIwMD9yYW5kb209NSJ9LHt0eXBlOiJpbWFnZSIsbmFtZToiZGVzZXJ0LmpwZyIsdGh1bWJuYWlsU3JjOiJodHRwczovL3BpY3N1bS5waG90b3MvMjAwLzIwMD9yYW5kb209NiJ9XTtyZXR1cm4gd2AKICAgIDxzdHlsZT4KICAgICAgLmRlbW8tY29udGFpbmVyIHsKICAgICAgICBwYWRkaW5nOiA0MHB4OwogICAgICAgIGJhY2tncm91bmQ6ICNmNWY1ZjU7CiAgICAgIH0KICAgICAgLmRlbW8tc2VjdGlvbiB7CiAgICAgICAgbWFyZ2luLWJvdHRvbTogNjBweDsKICAgICAgfQogICAgICBoMyB7CiAgICAgICAgbWFyZ2luLWJvdHRvbTogMjBweDsKICAgICAgICBmb250LXNpemU6IDE4cHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDsKICAgICAgfQogICAgICAudGlsZS1yb3cgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgZ2FwOiAyNHB4OwogICAgICAgIGZsZXgtd3JhcDogd3JhcDsKICAgICAgICBhbGlnbi1pdGVtczogZmxleC1zdGFydDsKICAgICAgfQogICAgPC9zdHlsZT4KCiAgICA8ZGl2IGNsYXNzPSJkZW1vLWNvbnRhaW5lciI+CiAgICAgIDxkaXYgY2xhc3M9ImRlbW8tc2VjdGlvbiI+CiAgICAgICAgPGgzPkZvbGRlciBUaWxlczwvaDM+CiAgICAgICAgPGRpdiBjbGFzcz0idGlsZS1yb3ciPgogICAgICAgICAgPGRlZXMtdGlsZS1mb2xkZXIKICAgICAgICAgICAgbmFtZT0iUGhvdG9zIgogICAgICAgICAgICAuaXRlbXM9JHt0fQogICAgICAgICAgICBsYWJlbD0iNiBwaG90b3MiCiAgICAgICAgICAgIEB0aWxlLWNsaWNrPSR7cz0+Y29uc29sZS5sb2coIkZvbGRlciBjbGlja2VkOiIscy5kZXRhaWwpfQogICAgICAgICAgPjwvZGVlcy10aWxlLWZvbGRlcj4KCiAgICAgICAgICA8ZGVlcy10aWxlLWZvbGRlcgogICAgICAgICAgICBuYW1lPSJteS1wcm9qZWN0IgogICAgICAgICAgICAuaXRlbXM9JHtbe3R5cGU6Im5vdGUiLG5hbWU6IlJFQURNRS5tZCJ9LHt0eXBlOiJub3RlIixuYW1lOiJwYWNrYWdlLmpzb24ifSx7dHlwZToiZm9sZGVyIixuYW1lOiJzcmMifSx7dHlwZToiZm9sZGVyIixuYW1lOiJ0ZXN0In0se3R5cGU6Im5vdGUiLG5hbWU6InRzY29uZmlnLmpzb24ifSx7dHlwZToicGRmIixuYW1lOiJkb2NzLnBkZiJ9LHt0eXBlOiJpbWFnZSIsbmFtZToibG9nby5wbmciLHRodW1ibmFpbFNyYzoiaHR0cHM6Ly9waWNzdW0ucGhvdG9zLzEwMC8xMDA/cmFuZG9tPTEwIn1dfQogICAgICAgICAgICBsYWJlbD0iUHJvamVjdCBmaWxlcyIKICAgICAgICAgID48L2RlZXMtdGlsZS1mb2xkZXI+CgogICAgICAgICAgPGRlZXMtdGlsZS1mb2xkZXIKICAgICAgICAgICAgbmFtZT0iTWVkaWEgQXNzZXRzIgogICAgICAgICAgICAuaXRlbXM9JHtbe3R5cGU6InZpZGVvIixuYW1lOiJpbnRyby5tcDQifSx7dHlwZToiYXVkaW8iLG5hbWU6ImJhY2tncm91bmQubXAzIn0se3R5cGU6ImltYWdlIixuYW1lOiJ0aHVtYm5haWwuanBnIix0aHVtYm5haWxTcmM6Imh0dHBzOi8vcGljc3VtLnBob3Rvcy8yMDAvMjAwP3JhbmRvbT0yMCJ9LHt0eXBlOiJwZGYiLG5hbWU6InN0b3J5Ym9hcmQucGRmIn1dfQogICAgICAgICAgICBsYWJlbD0iTWl4ZWQgbWVkaWEiCiAgICAgICAgICA+PC9kZWVzLXRpbGUtZm9sZGVyPgogICAgICAgIDwvZGl2PgogICAgICA8L2Rpdj4KCiAgICAgIDxkaXYgY2xhc3M9ImRlbW8tc2VjdGlvbiI+CiAgICAgICAgPGgzPkVkZ2UgQ2FzZXM8L2gzPgogICAgICAgIDxkaXYgY2xhc3M9InRpbGUtcm93Ij4KICAgICAgICAgIDxkZWVzLXRpbGUtZm9sZGVyCiAgICAgICAgICAgIG5hbWU9IkVtcHR5IEZvbGRlciIKICAgICAgICAgICAgLml0ZW1zPSR7W119CiAgICAgICAgICA+PC9kZWVzLXRpbGUtZm9sZGVyPgoKICAgICAgICAgIDxkZWVzLXRpbGUtZm9sZGVyCiAgICAgICAgICAgIG5hbWU9IlNpbmdsZSBJdGVtIgogICAgICAgICAgICAuaXRlbXM9JHtbe3R5cGU6InBkZiIsbmFtZToicmVwb3J0LnBkZiJ9XX0KICAgICAgICAgID48L2RlZXMtdGlsZS1mb2xkZXI+CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGl2PgoKICAgICAgPGRpdiBjbGFzcz0iZGVtby1zZWN0aW9uIj4KICAgICAgICA8aDM+U2l6ZSBWYXJpYW50czwvaDM+CiAgICAgICAgPGRpdiBjbGFzcz0idGlsZS1yb3ciPgogICAgICAgICAgPGRlZXMtdGlsZS1mb2xkZXIKICAgICAgICAgICAgc2l6ZT0ic21hbGwiCiAgICAgICAgICAgIG5hbWU9IlNtYWxsIgogICAgICAgICAgICAuaXRlbXM9JHt0fQogICAgICAgICAgPjwvZGVlcy10aWxlLWZvbGRlcj4KCiAgICAgICAgICA8ZGVlcy10aWxlLWZvbGRlcgogICAgICAgICAgICBuYW1lPSJEZWZhdWx0IgogICAgICAgICAgICAuaXRlbXM9JHt0fQogICAgICAgICAgPjwvZGVlcy10aWxlLWZvbGRlcj4KCiAgICAgICAgICA8ZGVlcy10aWxlLWZvbGRlcgogICAgICAgICAgICBzaXplPSJsYXJnZSIKICAgICAgICAgICAgbmFtZT0iTGFyZ2UiCiAgICAgICAgICAgIC5pdGVtcz0ke3R9CiAgICAgICAgICA+PC9kZWVzLXRpbGUtZm9sZGVyPgogICAgICAgIDwvZGl2PgogICAgICA8L2Rpdj4KICAgIDwvZGl2PgogIGB9fSk7dmFyIEdWLEs4LE92dCxSdnQsQnZ0PWIoKCk9Pnt1ZSgpO2JvKCk7anMoKTtGdnQoKTtHVj1mdW5jdGlvbih0LGUsYSxpLHIscyl7ZnVuY3Rpb24gbih4KXtpZih4IT09dm9pZCAwJiZ0eXBlb2YgeCE9ImZ1bmN0aW9uIil0aHJvdyBuZXcgVHlwZUVycm9yKCJGdW5jdGlvbiBleHBlY3RlZCIpO3JldHVybiB4fWZvcih2YXIgbz1pLmtpbmQsZD1vPT09ImdldHRlciI/ImdldCI6bz09PSJzZXR0ZXIiPyJzZXQiOiJ2YWx1ZSIsYz0hZSYmdD9pLnN0YXRpYz90OnQucHJvdG90eXBlOm51bGwsaD1lfHwoYz9PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGMsaS5uYW1lKTp7fSksbCxmPSExLGc9YS5sZW5ndGgtMTtnPj0wO2ctLSl7dmFyIHk9e307Zm9yKHZhciB2IGluIGkpeVt2XT12PT09ImFjY2VzcyI/e306aVt2XTtmb3IodmFyIHYgaW4gaS5hY2Nlc3MpeS5hY2Nlc3Nbdl09aS5hY2Nlc3Nbdl07eS5hZGRJbml0aWFsaXplcj1mdW5jdGlvbih4KXtpZihmKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBhZGQgaW5pdGlhbGl6ZXJzIGFmdGVyIGRlY29yYXRpb24gaGFzIGNvbXBsZXRlZCIpO3MucHVzaChuKHh8fG51bGwpKX07dmFyIG09KDAsYVtnXSkobz09PSJhY2Nlc3NvciI/e2dldDpoLmdldCxzZXQ6aC5zZXR9OmhbZF0seSk7aWYobz09PSJhY2Nlc3NvciIpe2lmKG09PT12b2lkIDApY29udGludWU7aWYobT09PW51bGx8fHR5cGVvZiBtIT0ib2JqZWN0Iil0aHJvdyBuZXcgVHlwZUVycm9yKCJPYmplY3QgZXhwZWN0ZWQiKTsobD1uKG0uZ2V0KSkmJihoLmdldD1sKSwobD1uKG0uc2V0KSkmJihoLnNldD1sKSwobD1uKG0uaW5pdCkpJiZyLnVuc2hpZnQobCl9ZWxzZShsPW4obSkpJiYobz09PSJmaWVsZCI/ci51bnNoaWZ0KGwpOmhbZF09bCl9YyYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGMsaS5uYW1lLGgpLGY9ITB9LEs4PWZ1bmN0aW9uKHQsZSxhKXtmb3IodmFyIGk9YXJndW1lbnRzLmxlbmd0aD4yLHI9MDtyPGUubGVuZ3RoO3IrKylhPWk/ZVtyXS5jYWxsKHQsYSk6ZVtyXS5jYWxsKHQpO3JldHVybiBpP2E6dm9pZCAwfSxPdnQ9e3BkZjoibHVjaWRlOkZpbGVUZXh0IixpbWFnZToibHVjaWRlOkltYWdlIixhdWRpbzoibHVjaWRlOk11c2ljIix2aWRlbzoibHVjaWRlOlZpZGVvIixub3RlOiJsdWNpZGU6RmlsZUNvZGUiLGZvbGRlcjoibHVjaWRlOkZvbGRlciIsdW5rbm93bjoibHVjaWRlOkZpbGUifSxSdnQ9KCgpPT57bGV0IHQ9W3BlKCJkZWVzLXRpbGUtZm9sZGVyIildLGUsYT1bXSxpLHI9dmEscyxuPVtdLG89W10sZCxjPVtdLGg9W107dmFyIGw9Y2xhc3MgZXh0ZW5kcyBye3N0YXRpY3tpPXRoaXN9c3RhdGlje2xldCBmPXR5cGVvZiBTeW1ib2w9PSJmdW5jdGlvbiImJlN5bWJvbC5tZXRhZGF0YT9PYmplY3QuY3JlYXRlKHJbU3ltYm9sLm1ldGFkYXRhXT8/bnVsbCk6dm9pZCAwO3M9W0koe3R5cGU6U3RyaW5nfSldLGQ9W0koe2F0dHJpYnV0ZTohMX0pXSxHVih0aGlzLG51bGwscyx7a2luZDoiYWNjZXNzb3IiLG5hbWU6Im5hbWUiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmc9PiJuYW1lImluIGcsZ2V0Omc9PmcubmFtZSxzZXQ6KGcseSk9PntnLm5hbWU9eX19LG1ldGFkYXRhOmZ9LG4sbyksR1YodGhpcyxudWxsLGQse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJpdGVtcyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6Zz0+Iml0ZW1zImluIGcsZ2V0Omc9PmcuaXRlbXMsc2V0OihnLHkpPT57Zy5pdGVtcz15fX0sbWV0YWRhdGE6Zn0sYyxoKSxHVihudWxsLGU9e3ZhbHVlOml9LHQse2tpbmQ6ImNsYXNzIixuYW1lOmkubmFtZSxtZXRhZGF0YTpmfSxudWxsLGEpLGw9aT1lLnZhbHVlLGYmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShpLFN5bWJvbC5tZXRhZGF0YSx7ZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITAsdmFsdWU6Zn0pfXN0YXRpYyBkZW1vPU52dDtzdGF0aWMgZGVtb0dyb3Vwcz1bIk1lZGlhIl07c3RhdGljIHN0eWxlcz1bLi4uSjIsUWAKICAgICAgLmZvbGRlci1jb250ZW50IHsKICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgICAgaGVpZ2h0OiAxMDAlOwogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgICBiYWNrZ3JvdW5kOiAke3AuYmRUaGVtZSgiaHNsKDQwIDMwJSA5NyUpIiwiaHNsKDIxNSAyMCUgMTQlKSIpfTsKICAgICAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgICB9CgogICAgICAuZm9sZGVyLWhlYWRlciB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGdhcDogOHB4OwogICAgICAgIHBhZGRpbmc6IDEycHggMTRweCA4cHg7CiAgICAgICAgZmxleC1zaHJpbms6IDA7CiAgICAgIH0KCiAgICAgIC5mb2xkZXItaWNvbiB7CiAgICAgICAgZm9udC1zaXplOiAxOHB4OwogICAgICAgIGNvbG9yOiAke3AuYmRUaGVtZSgiaHNsKDQwIDgwJSA1MCUpIiwiaHNsKDQwIDcwJSA2MCUpIil9OwogICAgICB9CgogICAgICAuZm9sZGVyLW5hbWUgewogICAgICAgIGZvbnQtc2l6ZTogMTJweDsKICAgICAgICBmb250LXdlaWdodDogNzAwOwogICAgICAgIGNvbG9yOiAke3AuYmRUaGVtZSgiaHNsKDIxNSAyMCUgMjAlKSIsImhzbCgyMTUgMTYlIDgwJSkiKX07CiAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDsKICAgICAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzOwogICAgICAgIGZsZXg6IDE7CiAgICAgIH0KCiAgICAgIC5wcmV2aWV3LWdyaWQgewogICAgICAgIGZsZXg6IDE7CiAgICAgICAgZGlzcGxheTogZ3JpZDsKICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDFmciAxZnI7CiAgICAgICAgZ3JpZC10ZW1wbGF0ZS1yb3dzOiAxZnIgMWZyOwogICAgICAgIGdhcDogNHB4OwogICAgICAgIHBhZGRpbmc6IDAgMTRweCAxNHB4OwogICAgICAgIG1pbi1oZWlnaHQ6IDA7CiAgICAgIH0KCiAgICAgIC5ncmlkLWNlbGwgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKICAgICAgICBib3JkZXItcmFkaXVzOiA0cHg7CiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgICAgICBiYWNrZ3JvdW5kOiAke3AuYmRUaGVtZSgiaHNsKDIxNSAyMCUgOTQlKSIsImhzbCgyMTUgMjAlIDE4JSkiKX07CiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICB9CgogICAgICAuZ3JpZC1jZWxsIGltZyB7CiAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgICAgaGVpZ2h0OiAxMDAlOwogICAgICAgIG9iamVjdC1maXQ6IGNvdmVyOwogICAgICAgIGRpc3BsYXk6IGJsb2NrOwogICAgICB9CgogICAgICAuZ3JpZC1jZWxsIGRlZXMtaWNvbiB7CiAgICAgICAgZm9udC1zaXplOiAyMHB4OwogICAgICAgIGNvbG9yOiAke3AuYmRUaGVtZSgiaHNsKDIxNSAxNiUgNjAlKSIsImhzbCgyMTUgMTYlIDU1JSkiKX07CiAgICAgIH0KCiAgICAgIC5ncmlkLWNlbGwtZW1wdHkgewogICAgICAgIGJhY2tncm91bmQ6ICR7cC5iZFRoZW1lKCJoc2woMjE1IDE1JSA5NiUpIiwiaHNsKDIxNSAyMCUgMTYlKSIpfTsKICAgICAgfQoKICAgIGBdOyNlPUs4KHRoaXMsbiwiIik7Z2V0IG5hbWUoKXtyZXR1cm4gdGhpcy4jZX1zZXQgbmFtZShmKXt0aGlzLiNlPWZ9I3Q9KEs4KHRoaXMsbyksSzgodGhpcyxjLFtdKSk7Z2V0IGl0ZW1zKCl7cmV0dXJuIHRoaXMuI3R9c2V0IGl0ZW1zKGYpe3RoaXMuI3Q9Zn1yZW5kZXJUaWxlQ29udGVudCgpe2xldCBmPXRoaXMuaXRlbXMuc2xpY2UoMCw0KSxnPTQtZi5sZW5ndGg7cmV0dXJuIHdgCiAgICAgIDxkaXYgY2xhc3M9ImZvbGRlci1jb250ZW50Ij4KICAgICAgICA8ZGl2IGNsYXNzPSJmb2xkZXItaGVhZGVyIj4KICAgICAgICAgIDxkZWVzLWljb24gY2xhc3M9ImZvbGRlci1pY29uIiBpY29uPSJsdWNpZGU6Rm9sZGVyIj48L2RlZXMtaWNvbj4KICAgICAgICAgIDxkaXYgY2xhc3M9ImZvbGRlci1uYW1lIj4ke3RoaXMubmFtZXx8IlVudGl0bGVkIEZvbGRlciJ9PC9kaXY+CiAgICAgICAgPC9kaXY+CgogICAgICAgIDxkaXYgY2xhc3M9InByZXZpZXctZ3JpZCI+CiAgICAgICAgICAke2YubWFwKHk9PndgCiAgICAgICAgICAgIDxkaXYgY2xhc3M9ImdyaWQtY2VsbCI+CiAgICAgICAgICAgICAgJHt5LnRodW1ibmFpbFNyYz93YAogICAgICAgICAgICAgICAgPGltZyBzcmM9IiR7eS50aHVtYm5haWxTcmN9IiBhbHQ9IiR7eS5uYW1lfSIgLz4KICAgICAgICAgICAgICBgOndgCiAgICAgICAgICAgICAgICA8ZGVlcy1pY29uIGljb249IiR7T3Z0W3kudHlwZV18fE92dC51bmtub3dufSI+PC9kZWVzLWljb24+CiAgICAgICAgICAgICAgYH0KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICBgKX0KICAgICAgICAgICR7QXJyYXkuZnJvbSh7bGVuZ3RoOmd9KS5tYXAoKCk9PndgCiAgICAgICAgICAgIDxkaXYgY2xhc3M9ImdyaWQtY2VsbCBncmlkLWNlbGwtZW1wdHkiPjwvZGl2PgogICAgICAgICAgYCl9CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGl2PgoKICAgICAgPGRpdiBjbGFzcz0idGlsZS1iYWRnZS1jb3JuZXIiPgogICAgICAgICR7dGhpcy5pdGVtcy5sZW5ndGh9IGl0ZW0ke3RoaXMuaXRlbXMubGVuZ3RoIT09MT8icyI6IiJ9CiAgICAgIDwvZGl2PgoKICAgICAgJHt0aGlzLmNsaWNrYWJsZT93YAogICAgICAgIDxkaXYgY2xhc3M9InRpbGUtb3ZlcmxheSI+CiAgICAgICAgICA8ZGVlcy1pY29uIGljb249Imx1Y2lkZTpGb2xkZXJPcGVuIj48L2RlZXMtaWNvbj4KICAgICAgICAgIDxzcGFuPk9wZW4gRm9sZGVyPC9zcGFuPgogICAgICAgIDwvZGl2PgogICAgICBgOiIifQogICAgYH1nZXRUaWxlQ2xpY2tEZXRhaWwoKXtyZXR1cm57bmFtZTp0aGlzLm5hbWUsaXRlbUNvdW50OnRoaXMuaXRlbXMubGVuZ3RoLGl0ZW1zOnRoaXMuaXRlbXN9fWNvbnN0cnVjdG9yKCl7c3VwZXIoLi4uYXJndW1lbnRzKSxLOCh0aGlzLGgpfXN0YXRpY3tLOChpLGEpfX07cmV0dXJuIGw9aX0pKCl9KTt2YXIgSHZ0PWIoKCk9PntCdnQoKX0pO3ZhciBxdnQ9YigoKT0+e0lidCgpO1JidCgpO1ZidCgpO2V2dCgpO3J2dCgpO2h2dCgpO3B2dCgpO3V2dCgpO2Z2dCgpO212dCgpO3h2dCgpO1N2dCgpOyR2dCgpO0l2dCgpO0h2dCgpfSk7dmFyIFZ2dD1iKCgpPT57bjIoKX0pO3ZhciBqdnQ9YigoKT0+e0cwKCl9KTt2YXIgVXZ0LFd2dD1iKCgpPT57dWUoKTtVdnQ9KCk9PndgCiAgICA8c3R5bGU+CiAgICAgIC5yZWYxIHsKICAgICAgICBtYXJnaW46IDIwcHg7CiAgICAgICAgd2lkdGg6IDEwcHg7CiAgICAgICAgaGVpZ2h0OiAxMHB4OwogICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJlZDsKICAgICAgfQogICAgPC9zdHlsZT4KICAgIDxkaXYgY2xhc3M9InJlZjEiPjwvZGl2PgogICAgPGRlZXMtc3BlZWNoYnViYmxlIC50ZXh0PSR7YAogICAgICAqKlRoaXMgaXMgYSBsb25nZXIgbWFya2Rvd24gdGV4dCB0aGF0ICBjYW4gYmUgdXNlZCB0aGUgd3JpdGUqKiAgCiAgICAgIGEgbG9uZ2VyIGRlc2NyaXB0aW9uIGFib3V0IHdoYXRzIGdvaW5nIG9uIHRoZSBhcHAgIAogIAogICAgICAqKlRoaXMgaXMgYSBzdWJoZWFkZXIqKgogICAgICBhbmQgYW5vdGhlciB0ZXh0CiAgICAKICAgIGB9PjwvZGVlcy1zcGVlY2hidWJibGU+CiAgYH0pO3ZhciBxbCxhcixHdnQsWXZ0PWIoKCk9PntnaSgpO3MyKCk7V3Z0KCk7dWUoKTtMcygpO3FlKCk7cWw9ZnVuY3Rpb24odCxlLGEsaSxyLHMpe2Z1bmN0aW9uIG4oeCl7aWYoeCE9PXZvaWQgMCYmdHlwZW9mIHghPSJmdW5jdGlvbiIpdGhyb3cgbmV3IFR5cGVFcnJvcigiRnVuY3Rpb24gZXhwZWN0ZWQiKTtyZXR1cm4geH1mb3IodmFyIG89aS5raW5kLGQ9bz09PSJnZXR0ZXIiPyJnZXQiOm89PT0ic2V0dGVyIj8ic2V0IjoidmFsdWUiLGM9IWUmJnQ/aS5zdGF0aWM/dDp0LnByb3RvdHlwZTpudWxsLGg9ZXx8KGM/T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihjLGkubmFtZSk6e30pLGwsZj0hMSxnPWEubGVuZ3RoLTE7Zz49MDtnLS0pe3ZhciB5PXt9O2Zvcih2YXIgdiBpbiBpKXlbdl09dj09PSJhY2Nlc3MiP3t9Omlbdl07Zm9yKHZhciB2IGluIGkuYWNjZXNzKXkuYWNjZXNzW3ZdPWkuYWNjZXNzW3ZdO3kuYWRkSW5pdGlhbGl6ZXI9ZnVuY3Rpb24oeCl7aWYoZil0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgYWRkIGluaXRpYWxpemVycyBhZnRlciBkZWNvcmF0aW9uIGhhcyBjb21wbGV0ZWQiKTtzLnB1c2gobih4fHxudWxsKSl9O3ZhciBtPSgwLGFbZ10pKG89PT0iYWNjZXNzb3IiP3tnZXQ6aC5nZXQsc2V0Omguc2V0fTpoW2RdLHkpO2lmKG89PT0iYWNjZXNzb3IiKXtpZihtPT09dm9pZCAwKWNvbnRpbnVlO2lmKG09PT1udWxsfHx0eXBlb2YgbSE9Im9iamVjdCIpdGhyb3cgbmV3IFR5cGVFcnJvcigiT2JqZWN0IGV4cGVjdGVkIik7KGw9bihtLmdldCkpJiYoaC5nZXQ9bCksKGw9bihtLnNldCkpJiYoaC5zZXQ9bCksKGw9bihtLmluaXQpKSYmci51bnNoaWZ0KGwpfWVsc2UobD1uKG0pKSYmKG89PT0iZmllbGQiP3IudW5zaGlmdChsKTpoW2RdPWwpfWMmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShjLGkubmFtZSxoKSxmPSEwfSxhcj1mdW5jdGlvbih0LGUsYSl7Zm9yKHZhciBpPWFyZ3VtZW50cy5sZW5ndGg+MixyPTA7cjxlLmxlbmd0aDtyKyspYT1pP2Vbcl0uY2FsbCh0LGEpOmVbcl0uY2FsbCh0KTtyZXR1cm4gaT9hOnZvaWQgMH0sR3Z0PSgoKT0+e2xldCB0PVtwZSgiZGVlcy1zcGVlY2hidWJibGUiKV0sZSxhPVtdLGkscj14ZSxzLG49W10sbz1bXSxkLGM9W10saD1bXSxsLGY9W10sZz1bXSx5LHY9W10sbT1bXSx4LE09W10sUz1bXTt2YXIgRj1jbGFzcyBleHRlbmRzIHJ7c3RhdGlje2k9dGhpc31zdGF0aWN7bGV0IF89dHlwZW9mIFN5bWJvbD09ImZ1bmN0aW9uIiYmU3ltYm9sLm1ldGFkYXRhP09iamVjdC5jcmVhdGUocltTeW1ib2wubWV0YWRhdGFdPz9udWxsKTp2b2lkIDA7cz1bSSh7dHlwZTpPYmplY3R9KV0sZD1bSSh7dHlwZTpTdHJpbmcscmVmbGVjdDohMH0pXSxsPVtJKHt0eXBlOkJvb2xlYW59KV0seT1bSSh7dHlwZTpCb29sZWFufSldLHg9W0koe3R5cGU6U3RyaW5nfSldLHFsKHRoaXMsbnVsbCxzLHtraW5kOiJhY2Nlc3NvciIsbmFtZToicmVmZmVkRWxlbWVudCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6az0+InJlZmZlZEVsZW1lbnQiaW4gayxnZXQ6az0+ay5yZWZmZWRFbGVtZW50LHNldDooayxOKT0+e2sucmVmZmVkRWxlbWVudD1OfX0sbWV0YWRhdGE6X30sbixvKSxxbCh0aGlzLG51bGwsZCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InRleHQiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOms9PiJ0ZXh0ImluIGssZ2V0Oms9PmsudGV4dCxzZXQ6KGssTik9PntrLnRleHQ9Tn19LG1ldGFkYXRhOl99LGMsaCkscWwodGhpcyxudWxsLGwse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJ3YXZlIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczprPT4id2F2ZSJpbiBrLGdldDprPT5rLndhdmUsc2V0OihrLE4pPT57ay53YXZlPU59fSxtZXRhZGF0YTpffSxmLGcpLHFsKHRoaXMsbnVsbCx5LHtraW5kOiJhY2Nlc3NvciIsbmFtZToibWFuaWZlc3RlZCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6az0+Im1hbmlmZXN0ZWQiaW4gayxnZXQ6az0+ay5tYW5pZmVzdGVkLHNldDooayxOKT0+e2subWFuaWZlc3RlZD1OfX0sbWV0YWRhdGE6X30sdixtKSxxbCh0aGlzLG51bGwseCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InN0YXR1cyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6az0+InN0YXR1cyJpbiBrLGdldDprPT5rLnN0YXR1cyxzZXQ6KGssTik9PntrLnN0YXR1cz1OfX0sbWV0YWRhdGE6X30sTSxTKSxxbChudWxsLGU9e3ZhbHVlOml9LHQse2tpbmQ6ImNsYXNzIixuYW1lOmkubmFtZSxtZXRhZGF0YTpffSxudWxsLGEpLEY9aT1lLnZhbHVlLF8mJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShpLFN5bWJvbC5tZXRhZGF0YSx7ZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITAsdmFsdWU6X30pfXN0YXRpYyBkZW1vPVV2dDtzdGF0aWMgZGVtb0dyb3Vwcz1bIk92ZXJsYXkiXTtzdGF0aWMgYXN5bmMgY3JlYXRlQW5kU2hvdyhfLGspe2xldCBOPWF3YWl0IGZpLmNyZWF0ZUFuZFNob3coe2JsdXI6ITF9KSxMPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRlZXMtc3BlZWNoYnViYmxlIik7cmV0dXJuIEwud2luZG93TGF5ZXI9TixMLnJlZmZlZEVsZW1lbnQ9XyxMLnRleHQ9ayxMLm1hbmlmZXN0ZWQ9ITAsTi5hcHBlbmRDaGlsZChMKSxOLnN0eWxlLnBvaW50ZXJFdmVudHM9Im5vbmUiLE4uc2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yKCIud2luZG93T3ZlcmxheSIpLnN0eWxlLnBvaW50ZXJFdmVudHM9Im5vbmUiLEx9I2U9YXIodGhpcyxuLHZvaWQgMCk7Z2V0IHJlZmZlZEVsZW1lbnQoKXtyZXR1cm4gdGhpcy4jZX1zZXQgcmVmZmVkRWxlbWVudChfKXt0aGlzLiNlPV99I3Q9KGFyKHRoaXMsbyksYXIodGhpcyxjLHZvaWQgMCkpO2dldCB0ZXh0KCl7cmV0dXJuIHRoaXMuI3R9c2V0IHRleHQoXyl7dGhpcy4jdD1ffSNhPShhcih0aGlzLGgpLGFyKHRoaXMsZiwhMSkpO2dldCB3YXZlKCl7cmV0dXJuIHRoaXMuI2F9c2V0IHdhdmUoXyl7dGhpcy4jYT1ffSNpPShhcih0aGlzLGcpLGFyKHRoaXMsdiwhMSkpO2dldCBtYW5pZmVzdGVkKCl7cmV0dXJuIHRoaXMuI2l9c2V0IG1hbmlmZXN0ZWQoXyl7dGhpcy4jaT1ffSNyPShhcih0aGlzLG0pLGFyKHRoaXMsTSwibm9ybWFsIikpO2dldCBzdGF0dXMoKXtyZXR1cm4gdGhpcy4jcn1zZXQgc3RhdHVzKF8pe3RoaXMuI3I9X313aW5kb3dMYXllcj1hcih0aGlzLFMpO2NvbnN0cnVjdG9yKCl7c3VwZXIoKX1zdGF0aWMgc3R5bGVzPVtDZSxwLmRlZmF1bHRTdHlsZXMsUWAKICAgICAgLyogVE9ETzogTWlncmF0ZSBoYXJkY29kZWQgdmFsdWVzIHRvIC0tZGVlcy0qIENTUyB2YXJpYWJsZXMgKi8KICAgICAgOmhvc3QgewogICAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7CiAgICAgICAgY29sb3I6ICR7cC5iZFRoZW1lKCIjMzMzIiwiI2ZmZiIpfTsKICAgICAgICB1c2VyLXNlbGVjdDogbm9uZTsKICAgICAgfQoKICAgICAgLm1haW5jb250YWluZXIgewogICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgICB3aWxsLWNoYW5nZTogdHJhbnNmb3JtOwogICAgICAgIHRyYW5zaXRpb246IHRyYW5zZm9ybSAwLjJzOwogICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgwcHgpOwogICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjJzOwogICAgICAgIG1hcmdpbi1sZWZ0OiAwcHg7CiAgICAgICAgZmlsdGVyOiBkcm9wLXNoYWRvdygwcHggMHB4IDJweCByZ2JhKDAsIDAsIDAsIDAuMikpOwogICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lOwogICAgICAgIG9wYWNpdHk6IDA7CiAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuMnM7CiAgICAgIH0KCiAgICAgIC5hcnJvdyB7CiAgICAgICAgcG9zaXRpb246IGFic29sdXRlOwogICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDQ1ZGVnKTsKICAgICAgICBiYWNrZ3JvdW5kOiAke3AuYmRUaGVtZSgiI2ZmZiIsIiMzMzMiKX07CiAgICAgICAgaGVpZ2h0OiAxNXB4OwogICAgICAgIHdpZHRoOiAxNXB4OwogICAgICAgIGxlZnQ6IDJweDsKICAgICAgICB0b3A6IDEycHg7CiAgICAgICAgYm9yZGVyLXJhZGl1czogM3B4OwogICAgICB9CgogICAgICAuc3BlZWNoYnViYmxlIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke3AuYmRUaGVtZSgiI2ZmZiIsIiMzMzMiKX07CiAgICAgICAgcGFkZGluZzogMHB4IDE2cHg7CiAgICAgICAgYm9yZGVyLXJhZGl1czogM3B4OwogICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgICBtaW4td2lkdGg6IDI0MHB4OwogICAgICAgIGZvbnQtc2l6ZTogMTJweDsKICAgICAgICB0b3A6IDBweDsKICAgICAgICBsZWZ0OiA4cHg7CiAgICAgIH0KCiAgICAgIC53YXZlIHsKICAgICAgICBhbmltYXRpb24tbmFtZTogd2F2ZS1hbmltYXRpb247IC8qIFJlZmVycyB0byB0aGUgbmFtZSBvZiB5b3VyIEBrZXlmcmFtZXMgZWxlbWVudCBiZWxvdyAqLwogICAgICAgIGFuaW1hdGlvbi1kdXJhdGlvbjogMi41czsgLyogQ2hhbmdlIHRvIHNwZWVkIHVwIG9yIHNsb3cgZG93biAqLwogICAgICAgIGFuaW1hdGlvbi1pdGVyYXRpb24tY291bnQ6IGluZmluaXRlOyAvKiBOZXZlciBzdG9wIHdhdmluZyA6KSAqLwogICAgICAgIHRyYW5zZm9ybS1vcmlnaW46IDcwJSA3MCU7IC8qIFBpdm90IGFyb3VuZCB0aGUgYm90dG9tLWxlZnQgcGFsbSAqLwogICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jazsKICAgICAgfQoKICAgICAgQGtleWZyYW1lcyB3YXZlLWFuaW1hdGlvbiB7CiAgICAgICAgMCUgewogICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoMGRlZyk7CiAgICAgICAgfQogICAgICAgIDEwJSB7CiAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgxNGRlZyk7CiAgICAgICAgfSAvKiBUaGUgZm9sbG93aW5nIGZpdmUgdmFsdWVzIGNhbiBiZSBwbGF5ZWQgd2l0aCB0byBtYWtlIHRoZSB3YXZpbmcgbW9yZSBvciBsZXNzIGV4dHJlbWUgKi8KICAgICAgICAyMCUgewogICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoLThkZWcpOwogICAgICAgIH0KICAgICAgICAzMCUgewogICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoMTRkZWcpOwogICAgICAgIH0KICAgICAgICA0MCUgewogICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoLTRkZWcpOwogICAgICAgIH0KICAgICAgICA1MCUgewogICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoMTBkZWcpOwogICAgICAgIH0KICAgICAgICA2MCUgewogICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoMGRlZyk7CiAgICAgICAgfSAvKiBSZXNldCBmb3IgdGhlIGxhc3QgaGFsZiB0byBwYXVzZSAqLwogICAgICAgIDEwMCUgewogICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoMGRlZyk7CiAgICAgICAgfQogICAgICB9CiAgICBgXTtyZW5kZXIoKXtyZXR1cm4gd2AKICAgICAgJHt0aGlzLm1hbmlmZXN0ZWQ/d2AKICAgICAgICAgICAgPGRpdiBjbGFzcz0ibWFpbmNvbnRhaW5lciIgQGNsaWNrPSR7dGhpcy5oYW5kbGVDbGlja30+CiAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iYXJyb3ciPjwvZGl2PgogICAgICAgICAgICAgIDxkaXYgY2xhc3M9InNwZWVjaGJ1YmJsZSI+CiAgICAgICAgICAgICAgICAke3RoaXMud2F2ZT93YDxzcGFuIGNsYXNzPSJ3YXZlIj7wn5GLPC9zcGFuPmA6d2BgfQogICAgICAgICAgICAgICAgJHtWYS5yZXNvbHZlKHRoaXMuZ2V0SHRtbCgpKX0KICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICBgOndgYH0KICAgIGB9YXN5bmMgaGFuZGxlQ2xpY2soKXtjb25zb2xlLmxvZygic3BlZWNoYnViYmxlIGdvdCBjbGlja2VkLiIpfWFzeW5jIGZpcnN0VXBkYXRlZCgpe2lmKHRoaXMucmVmZmVkRWxlbWVudHx8KHRoaXMucmVmZmVkRWxlbWVudD10aGlzLnByZXZpb3VzRWxlbWVudFNpYmxpbmcpLHRoaXMubWFuaWZlc3RlZClhd2FpdCB0aGlzLnVwZGF0ZVBvc2l0aW9uKCksdGhpcy5zaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3IoIi5tYWluY29udGFpbmVyIikuc3R5bGUub3BhY2l0eT0iMSI7ZWxzZXtsZXQgXzt0aGlzLnJlZmZlZEVsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigibW91c2VlbnRlciIsYXN5bmMoKT0+e189YXdhaXQgRi5jcmVhdGVBbmRTaG93KHRoaXMucmVmZmVkRWxlbWVudCx0aGlzLnRleHQpfSksdGhpcy5yZWZmZWRFbGVtZW50LmFkZEV2ZW50TGlzdGVuZXIoIm1vdXNlbGVhdmUiLCgpPT57Xy5kZXN0cm95KCl9KX19YXN5bmMgdXBkYXRlUG9zaXRpb24oKXtsZXQgXz10aGlzLnJlZmZlZEVsZW1lbnQsaz1fLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO3RoaXMuc3R5bGUucG9zaXRpb249ImZpeGVkIix0aGlzLnN0eWxlLnRvcD1gJHtrLnRvcC0xM31weGAsdGhpcy5zdHlsZS5sZWZ0PWAke2subGVmdCtfLmNsaWVudFdpZHRoKzR9cHhgLGsucmlnaHQ+MjUwJiYodGhpcy5zdHlsZS53aWR0aD0iMjUwcHgiKX1hc3luYyBnZXRIdG1sKCl7aWYoIXRoaXMudGV4dClyZXR1cm4iIjtsZXQgXz1ydC5wbHVnaW5zLnNtYXJ0c3RyaW5nLm5vcm1hbGl6ZS5zdGFuZGFyZCh0aGlzLnRleHQpLGs9YXdhaXQgcnQucGx1Z2lucy5zbWFydG1hcmtkb3duLlNtYXJ0TWFya2Rvd24uZWFzeU1hcmtkb3duVG9IdG1sKF8pO3JldHVybiBnNShrKX1hc3luYyBzaG93KCl7fWFzeW5jIGRlc3Ryb3koKXt0aGlzLnNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvcigiLm1haW5jb250YWluZXIiKS5zdHlsZS5vcGFjaXR5PSIwIix0aGlzLndpbmRvd0xheWVyLmRlc3Ryb3koKX1zdGF0aWN7YXIoaSxhKX19O3JldHVybiBGPWl9KSgpfSk7dmFyIFp2dD1iKCgpPT57WXZ0KCl9KTt2YXIgWHZ0PWIoKCk9PntMcygpfSk7dmFyIEt2dD1iKCgpPT57VnZ0KCk7anZ0KCk7WnZ0KCk7WHZ0KCl9KTt2YXIgUXZ0PWIoKCk9Pnt9KTt2YXIgSnZ0PWIoKCk9PntRdnQoKX0pO3ZhciBleXQsbHcsY3csWVYsdHl0LGR3LGh3LHB3LHV3PWIoKCk9PntleXQ9Imh0dHBzOi8vc3RhY2tibGl0ei5jb20iLGx3PSJjb2RlIixjdz0iZXJyb3IiLFlWPSJlcnJvcl9kZXNjcmlwdGlvbiIsdHl0PSJfX3djX2FwaV9iY19fIixkdz0iX193Y19hcGlfdG9rZW5zX18iLGh3PSJfX3djX2FwaV92ZXJpZmllcl9fIixwdz0iX193Y19hcGlfcG9wdXBfXyJ9KTt2YXIgaDQsWlY9YigoKT0+e2g0PWNsYXNze19idXM9bmV3IEV2ZW50VGFyZ2V0O2xpc3RlbihlKXtmdW5jdGlvbiBhKGkpe2UoaS5kYXRhKX1yZXR1cm4gdGhpcy5fYnVzLmFkZEV2ZW50TGlzdGVuZXIoIm1lc3NhZ2UiLGEpLCgpPT50aGlzLl9idXMucmVtb3ZlRXZlbnRMaXN0ZW5lcigibWVzc2FnZSIsYSl9ZmlyZUV2ZW50KGUpe3RoaXMuX2J1cy5kaXNwYXRjaEV2ZW50KG5ldyBNZXNzYWdlRXZlbnQoIm1lc3NhZ2UiLHtkYXRhOmV9KSl9fX0pO2Z1bmN0aW9uIGZ3KCl7bG9jYWxTdG9yYWdlLnJlbW92ZUl0ZW0oZHcpfWZ1bmN0aW9uIG55dCh0KXtyZXR1cm4gaXl0Lmxpc3Rlbih0KX1mdW5jdGlvbiBNVXQoKXtsZXQgdD1sb2NhbFN0b3JhZ2UuZ2V0SXRlbShkdyk7aWYoIXQpcmV0dXJuIG51bGw7dHJ5e3JldHVybiBKU09OLnBhcnNlKHQpfWNhdGNoe3JldHVybiBudWxsfX1mdW5jdGlvbiB6VXQodCl7bG9jYWxTdG9yYWdlLnNldEl0ZW0oZHcsSlNPTi5zdHJpbmdpZnkodCkpfWZ1bmN0aW9uIHJ5dCh7Y3JlYXRlZF9hdDp0LGV4cGlyZXNfaW46ZX0pe3JldHVybih0K2UpKjFlM31mdW5jdGlvbiBzeXQodCl7aWYodHlwZW9mIHQhPSJvYmplY3QifHwhdCl0aHJvdyBuZXcgRXJyb3IoIkludmFsaWQgVG9rZW4gUmVzcG9uc2UiKTtpZih0eXBlb2YgdC5hY2Nlc3NfdG9rZW4hPSJzdHJpbmcifHx0eXBlb2YgdC5yZWZyZXNoX3Rva2VuIT0ic3RyaW5nInx8dHlwZW9mIHQuY3JlYXRlZF9hdCE9Im51bWJlciJ8fHR5cGVvZiB0LmV4cGlyZXNfaW4hPSJudW1iZXIiKXRocm93IG5ldyBFcnJvcigiSW52YWxpZCBUb2tlbiBSZXNwb25zZSIpfWZ1bmN0aW9uIGtVdCh0KXtyZXR1cm4gbmV3IFByb21pc2UoZT0+c2V0VGltZW91dChlLHQpKX1mdW5jdGlvbiBTVXQodCl7aXl0LmZpcmVFdmVudCh0KX12YXIgYXl0LGl5dCxWbCxYVj1iKCgpPT57dXcoKTtaVigpO2F5dD1uZXcgRXJyb3I7YXl0LnN0YWNrPSIiO2l5dD1uZXcgaDQsVmw9Y2xhc3MgdHtvcmlnaW47cmVmcmVzaDthY2Nlc3M7ZXhwaXJlcztfcmV2b2tlZD1uZXcgQWJvcnRDb250cm9sbGVyO2NvbnN0cnVjdG9yKGUsYSxpLHIpe3RoaXMub3JpZ2luPWUsdGhpcy5yZWZyZXNoPWEsdGhpcy5hY2Nlc3M9aSx0aGlzLmV4cGlyZXM9cn1hc3luYyBhY3RpdmF0ZShlKXtpZih0aGlzLl9yZXZva2VkLnNpZ25hbC5hYm9ydGVkKXRocm93IG5ldyBFcnJvcigiVG9rZW4gcmV2b2tlZCIpO3JldHVybiB0aGlzLmV4cGlyZXM8RGF0ZS5ub3coKSYmIWF3YWl0IHRoaXMuX2ZldGNoTmV3QWNjZXNzVG9rZW4oKT8hMToodGhpcy5fc3luYygpLHRoaXMuX3N0YXJ0UmVmcmVzaFRva2Vuc0xvb3AoZSksITApfWFzeW5jIHJldm9rZShlLGEpe3RoaXMuX3Jldm9rZWQuYWJvcnQoKTt0cnl7aWYoIShhd2FpdCBmZXRjaChgJHt0aGlzLm9yaWdpbn0vb2F1dGgvcmV2b2tlYCx7bWV0aG9kOiJQT1NUIixoZWFkZXJzOnsiQ29udGVudC1UeXBlIjoiYXBwbGljYXRpb24veC13d3ctZm9ybS11cmxlbmNvZGVkIn0sYm9keTpuZXcgVVJMU2VhcmNoUGFyYW1zKHt0b2tlbjp0aGlzLnJlZnJlc2gsdG9rZW5fdHlwZV9oaW50OiJyZWZyZXNoX3Rva2VuIixjbGllbnRfaWQ6ZX0pLG1vZGU6ImNvcnMifSkpLm9rKXRocm93IG5ldyBFcnJvcigiRmFpbGVkIHRvIGxvZ291dCIpfWNhdGNoKGkpe2lmKCFhKXRocm93IGl9ZncoKX1zdGF0aWMgZnJvbVN0b3JhZ2UoKXtsZXQgZT1NVXQoKTtyZXR1cm4gZT9uZXcgdChlLm9yaWdpbixlLnJlZnJlc2gsZS5hY2Nlc3MsZS5leHBpcmVzKTpudWxsfXN0YXRpYyBhc3luYyBmcm9tQXV0aENvZGUoe2VkaXRvck9yaWdpbjplLGNsaWVudElkOmEsY29kZVZlcmlmaWVyOmksYXV0aENvZGU6cixyZWRpcmVjdFVyaTpzfSl7bGV0IG49YXdhaXQgZmV0Y2goYCR7ZX0vb2F1dGgvdG9rZW5gLHttZXRob2Q6IlBPU1QiLGhlYWRlcnM6eyJDb250ZW50LVR5cGUiOiJhcHBsaWNhdGlvbi94LXd3dy1mb3JtLXVybGVuY29kZWQifSxib2R5Om5ldyBVUkxTZWFyY2hQYXJhbXMoe2NsaWVudF9pZDphLGNvZGU6cixjb2RlX3ZlcmlmaWVyOmksZ3JhbnRfdHlwZToiYXV0aG9yaXphdGlvbl9jb2RlIixyZWRpcmVjdF91cmk6c30pLG1vZGU6ImNvcnMifSk7aWYoIW4ub2spdGhyb3cgbmV3IEVycm9yKGBGYWlsZWQgdG8gZmV0Y2ggdG9rZW46ICR7bi5zdGF0dXN9YCk7bGV0IG89YXdhaXQgbi5qc29uKCk7c3l0KG8pO2xldHthY2Nlc3NfdG9rZW46ZCxyZWZyZXNoX3Rva2VuOmN9PW8saD1yeXQobyk7cmV0dXJuIG5ldyB0KGUsYyxkLGgpfWFzeW5jIF9mZXRjaE5ld0FjY2Vzc1Rva2VuKCl7dHJ5e2xldCBlPWF3YWl0IGZldGNoKGAke3RoaXMub3JpZ2lufS9vYXV0aC90b2tlbmAse21ldGhvZDoiUE9TVCIsaGVhZGVyczp7IkNvbnRlbnQtVHlwZSI6ImFwcGxpY2F0aW9uL3gtd3d3LWZvcm0tdXJsZW5jb2RlZCJ9LGJvZHk6bmV3IFVSTFNlYXJjaFBhcmFtcyh7Z3JhbnRfdHlwZToicmVmcmVzaF90b2tlbiIscmVmcmVzaF90b2tlbjp0aGlzLnJlZnJlc2h9KSxtb2RlOiJjb3JzIixzaWduYWw6dGhpcy5fcmV2b2tlZC5zaWduYWx9KTtpZighZS5vayl0aHJvdyBheXQ7bGV0IGE9YXdhaXQgZS5qc29uKCk7c3l0KGEpO2xldHthY2Nlc3NfdG9rZW46aSxyZWZyZXNoX3Rva2VuOnJ9PWEscz1yeXQoYSk7cmV0dXJuIHRoaXMuYWNjZXNzPWksdGhpcy5leHBpcmVzPXMsdGhpcy5yZWZyZXNoPXIsITB9Y2F0Y2h7cmV0dXJuIGZ3KCksITF9fV9zeW5jKCl7elV0KHRoaXMpLFNVdCh0aGlzLmFjY2Vzcyl9YXN5bmMgX3N0YXJ0UmVmcmVzaFRva2Vuc0xvb3AoZSl7Zm9yKDs7KXtsZXQgYT10aGlzLmV4cGlyZXMtRGF0ZS5ub3coKS0xZTM7aWYoYXdhaXQga1V0KE1hdGgubWF4KGEsMWUzKSksdGhpcy5fcmV2b2tlZC5zaWduYWwuYWJvcnRlZClyZXR1cm47aWYoIXRoaXMuX2ZldGNoTmV3QWNjZXNzVG9rZW4oKSl7ZSgpO3JldHVybn10aGlzLl9zeW5jKCl9fX19KTt2YXIgS1YsbXcsV3MsUVY9YigoKT0+e3V3KCk7S1Y9e30sbXc9bnVsbCxXcz17Z2V0IGVkaXRvck9yaWdpbigpe3JldHVybiBtdz09bnVsbCYmKG13PW5ldyBVUkwoZ2xvYmFsVGhpcy5XRUJDT05UQUlORVJfQVBJX0lGUkFNRV9VUkw/P2V5dCkub3JpZ2luKSxtd30sc2V0IGVkaXRvck9yaWdpbih0KXttdz1uZXcgVVJMKHQpLm9yaWdpbn0sc2V0UXVlcnlQYXJhbSh0LGUpe0tWW3RdPWV9LGdldCB1cmwoKXtsZXQgdD1uZXcgVVJMKHRoaXMuZWRpdG9yT3JpZ2luKTt0LnBhdGhuYW1lPSIvaGVhZGxlc3MiO2ZvcihsZXQgZSBpbiBLVil0LnNlYXJjaFBhcmFtcy5zZXQoZSxLVltlXSk7cmV0dXJuIHQuc2VhcmNoUGFyYW1zLnNldCgidmVyc2lvbiIsIjEuNi4xIiksdH19fSk7YXN5bmMgZnVuY3Rpb24gb3l0KHQpe2xldCBlPW5ldyBUZXh0RW5jb2RlcigpLmVuY29kZSh0KSxhPW5ldyBVaW50OEFycmF5KGF3YWl0IGNyeXB0by5zdWJ0bGUuZGlnZXN0KCJTSEEtMjU2IixlKSk7cmV0dXJuIGJ0b2EoYS5yZWR1Y2UoKGkscik9PmkrU3RyaW5nLmZyb21Db2RlUG9pbnQociksIiIpKS5yZXBsYWNlKC9cKy9nLCItIikucmVwbGFjZSgvXC8vZywiXyIpLnJlcGxhY2UoLz0rJC8sIiIpfWZ1bmN0aW9uIGx5dCgpe2xldCB0PW5ldyBVaW50OEFycmF5KDk2KTtjcnlwdG8uZ2V0UmFuZG9tVmFsdWVzKHQpO2xldCBlPSIiO2ZvcihsZXQgYT0wO2E8MzI7KythKWUrPUNVdCh0WzMqYSswXSx0WzMqYSsxXSx0WzMqYSsyXSk7cmV0dXJuIGV9ZnVuY3Rpb24gQ1V0KHQsZSxhKXtsZXQgaT10Pj4yLHI9KHQmMyk8PDR8ZT4+NCxzPWUmMTV8KGEmMTkyKT4+MixuPWEmNjM7cmV0dXJuW2kscixzLG5dLm1hcChfVXQpLmpvaW4oIiIpfWZ1bmN0aW9uIF9VdCh0KXtsZXQgZTtyZXR1cm4gdDwyNj9lPXQrNjU6dDw1Mj9lPXQtMjYrOTc6dDw2Mj9lPXQtNTIrNDg6ZT10PT09NjI/MzA6NDUsU3RyaW5nLmZyb21DaGFyQ29kZShlKX12YXIgY3l0PWIoKCk9Pnt9KTtmdW5jdGlvbiBkeXQoKXtsZXQgdCxlO2Z1bmN0aW9uIGEoKXtlPW5ldyBQcm9taXNlKGk9PnQ9aSl9cmV0dXJuIGEoKSx7Z2V0IHByb21pc2UoKXtyZXR1cm4gZX0scmVzb2x2ZShpKXtyZXR1cm4gdChpKX0scmVzZXQ6YX19dmFyIGh5dD1iKCgpPT57fSk7ZnVuY3Rpb24gUTgodCl7YnQuYnJvYWRjYXN0Q2hhbm5lbCYmKGJ0LmJyb2FkY2FzdENoYW5uZWwucG9zdE1lc3NhZ2UodCksbG9jYWxTdG9yYWdlLmdldEl0ZW0ocHcpPT09InRydWUiJiZ0LnR5cGUhPT0iYXV0aC1sb2dvdXQiJiYobG9jYWxTdG9yYWdlLnJlbW92ZUl0ZW0ocHcpLHNldFRpbWVvdXQoKCk9Pnt3aW5kb3cuY2xvc2UoKX0pKSl9ZnVuY3Rpb24gSlYoKXtwNC5maXJlRXZlbnQoKSxROCh7dHlwZToiYXV0aC1sb2dvdXQifSl9ZnVuY3Rpb24gdXl0KCl7cmV0dXJuIHdpbmRvdy5sb2NhdGlvbi5ocmVmfWFzeW5jIGZ1bmN0aW9uIGZ5dCgpe2xldCB0PWx5dCgpO2xvY2FsU3RvcmFnZS5zZXRJdGVtKGh3LHQpO2xldCBlPWF3YWl0IG95dCh0KSxhPW5ldyBVUkwoIi9vYXV0aC9hdXRob3JpemUiLGJ0LmVkaXRvck9yaWdpbikse3NlYXJjaFBhcmFtczppfT1hO3JldHVybiBpLmFwcGVuZCgicmVzcG9uc2VfdHlwZSIsImNvZGUiKSxpLmFwcGVuZCgiY2xpZW50X2lkIixidC5jbGllbnRJZCksaS5hcHBlbmQoInJlZGlyZWN0X3VyaSIsdXl0KCkpLGkuYXBwZW5kKCJzY29wZSIsYnQub2F1dGhTY29wZSksaS5hcHBlbmQoImNvZGVfY2hhbGxlbmdlIixlKSxpLmFwcGVuZCgiY29kZV9jaGFsbGVuZ2VfbWV0aG9kIiwiUzI1NiIpLGEudG9TdHJpbmcoKX1mdW5jdGlvbiBlaih0KXtpZighdCl0aHJvdyBuZXcgRXJyb3IoIk9vcHMhIFRva2VucyBpcyBub3QgZGVmaW5lZCB3aGVuIGl0IGFsd2F5cyBzaG91bGQgYmUuIil9dmFyIGJ0LHB5dCxwNCxteXQsdGo9YigoKT0+e1hWKCk7dXcoKTtRVigpO2N5dCgpO2h5dCgpO1pWKCk7YnQ9e2luaXRpYWxpemVkOiExLGJvb3RDYWxsZWQ6ITEsYXV0aENvbXBsZXRlOmR5dCgpLGNsaWVudElkOiIiLG9hdXRoU2NvcGU6IiIsYnJvYWRjYXN0Q2hhbm5lbDpudWxsLGdldCBlZGl0b3JPcmlnaW4oKXtyZXR1cm4gV3MuZWRpdG9yT3JpZ2lufSx0b2tlbnM6bnVsbH0scHl0PW5ldyBoNCxwND1uZXcgaDQ7bXl0PXtpbml0KHtlZGl0b3JPcmlnaW46dCxjbGllbnRJZDplLHNjb3BlOmF9KXtpZihidC5pbml0aWFsaXplZCl0aHJvdyBuZXcgRXJyb3IoIkluaXQgc2hvdWxkIG9ubHkgYmUgY2FsbGVkIG9uY2UiKTtpZighMCYmYnQuYm9vdENhbGxlZCl0aHJvdyBuZXcgRXJyb3IoImBhdXRoLmluaXRgIHNob3VsZCBhbHdheXMgYmUgY2FsbGVkIGJlZm9yZSBgV2ViQ29udGFpbmVyLmJvb3RgIik7YnQuaW5pdGlhbGl6ZWQ9ITAsYnQudG9rZW5zPVZsLmZyb21TdG9yYWdlKCksYnQuY2xpZW50SWQ9ZSxidC5vYXV0aFNjb3BlPWEsYnQuYnJvYWRjYXN0Q2hhbm5lbD1uZXcgQnJvYWRjYXN0Q2hhbm5lbCh0eXQpLFdzLnNldFF1ZXJ5UGFyYW0oImNsaWVudF9pZCIsZSksdCYmKFdzLmVkaXRvck9yaWdpbj1uZXcgVVJMKHQpLm9yaWdpbikscDQubGlzdGVuKCgpPT5idC5hdXRoQ29tcGxldGUucmVzZXQoKSksYnQuYnJvYWRjYXN0Q2hhbm5lbC5hZGRFdmVudExpc3RlbmVyKCJtZXNzYWdlIixyKTthc3luYyBmdW5jdGlvbiByKGQpe2xldCBjPWQuZGF0YTtpZihjLnR5cGU9PT0iYXV0aC1jb21wbGV0ZSIpe2J0LnRva2Vucz1WbC5mcm9tU3RvcmFnZSgpLGF3YWl0IGJ0LnRva2Vucy5hY3RpdmF0ZShKViksYnQuYXV0aENvbXBsZXRlLnJlc29sdmUoKTtyZXR1cm59aWYoYy50eXBlPT09ImF1dGgtZmFpbGVkIil7cHl0LmZpcmVFdmVudChjKTtyZXR1cm59aWYoYy50eXBlPT09ImF1dGgtbG9nb3V0Iil7cDQuZmlyZUV2ZW50KCk7cmV0dXJufX1pZihidC50b2tlbnMpe2xldCBkPWJ0LnRva2VucztpZihkLm9yaWdpbj09PWJ0LmVkaXRvck9yaWdpbilyZXR1cm4oYXN5bmMoKT0+e2lmKCFhd2FpdCBkLmFjdGl2YXRlKEpWKSl7aWYoYnQudG9rZW5zIT09ZClyZXR1cm47cDQuZmlyZUV2ZW50KCk7cmV0dXJufWJ0LmF1dGhDb21wbGV0ZS5yZXNvbHZlKCl9KSgpLHtzdGF0dXM6ImF1dGhvcml6ZWQifTtmdygpLGJ0LnRva2Vucz1udWxsfWxldCBzPW5ldyBVUkwod2luZG93LmxvY2F0aW9uLmhyZWYpLHtzZWFyY2hQYXJhbXM6bn09cyxvPSgpPT53aW5kb3cuaGlzdG9yeS5yZXBsYWNlU3RhdGUoe30sZG9jdW1lbnQudGl0bGUscyk7aWYobi5oYXMoY3cpKXtsZXQgZD1uLmdldChjdyksYz1uLmdldChZVik7cmV0dXJuIG4uZGVsZXRlKGN3KSxuLmRlbGV0ZShZViksbygpLFE4KHt0eXBlOiJhdXRoLWZhaWxlZCIsZXJyb3I6ZCxkZXNjcmlwdGlvbjpjfSkse3N0YXR1czoiYXV0aC1mYWlsZWQiLGVycm9yOmQsZGVzY3JpcHRpb246Y319aWYobi5oYXMobHcpKXtsZXQgZD1uLmdldChsdyksYz1idC5lZGl0b3JPcmlnaW47bi5kZWxldGUobHcpLG8oKTtsZXQgaD1sb2NhbFN0b3JhZ2UuZ2V0SXRlbShodyk7cmV0dXJuIGg/KGxvY2FsU3RvcmFnZS5yZW1vdmVJdGVtKGh3KSxWbC5mcm9tQXV0aENvZGUoe2VkaXRvck9yaWdpbjpjLGNsaWVudElkOmJ0LmNsaWVudElkLGF1dGhDb2RlOmQsY29kZVZlcmlmaWVyOmgscmVkaXJlY3RVcmk6dXl0KCl9KS50aGVuKGFzeW5jIGw9PntpZihidC50b2tlbnM9bCxlaihidC50b2tlbnMpLCFhd2FpdCBidC50b2tlbnMuYWN0aXZhdGUoSlYpKXRocm93IG5ldyBFcnJvcjtidC5hdXRoQ29tcGxldGUucmVzb2x2ZSgpLFE4KHt0eXBlOiJhdXRoLWNvbXBsZXRlIn0pfSkuY2F0Y2gobD0+e2NvbnNvbGUuZXJyb3IobCkscDQuZmlyZUV2ZW50KCksUTgoe3R5cGU6ImF1dGgtbG9nb3V0In0pfSkse3N0YXR1czoiYXV0aG9yaXplZCJ9KTp7c3RhdHVzOiJuZWVkLWF1dGgifX1yZXR1cm57c3RhdHVzOiJuZWVkLWF1dGgifX0sYXN5bmMgc3RhcnRBdXRoRmxvdyh7cG9wdXA6dH09e30pe2lmKCFidC5pbml0aWFsaXplZCl0aHJvdyBuZXcgRXJyb3IoImF1dGguaW5pdCBtdXN0IGJlIGNhbGxlZCBmaXJzdCIpO2lmKHQpe2xvY2FsU3RvcmFnZS5zZXRJdGVtKHB3LCJ0cnVlIik7bGV0IGU9NTAwLGE9NjIwLGk9d2luZG93LnNjcmVlbkxlZnQrKHdpbmRvdy5vdXRlcldpZHRoLWEpLzIscj13aW5kb3cuc2NyZWVuVG9wKyh3aW5kb3cub3V0ZXJIZWlnaHQtZSkvMjt3aW5kb3cub3Blbihhd2FpdCBmeXQoKSwiX2JsYW5rIixgcG9wdXAsd2lkdGg9JHthfSxoZWlnaHQ9JHtlfSxsZWZ0PSR7aX0sdG9wPSR7cn1gKX1lbHNlIHdpbmRvdy5sb2NhdGlvbi5ocmVmPWF3YWl0IGZ5dCgpfSxhc3luYyBsb2dvdXQoe2lnbm9yZVJldm9rZUVycm9yOnR9PXt9KXthd2FpdCBidC50b2tlbnM/LnJldm9rZShidC5jbGllbnRJZCx0Pz8hMSkscDQuZmlyZUV2ZW50KCksUTgoe3R5cGU6ImF1dGgtbG9nb3V0In0pfSxsb2dnZWRJbigpe3JldHVybiBidC5hdXRoQ29tcGxldGUucHJvbWlzZX0sb24odCxlKXtzd2l0Y2godCl7Y2FzZSJhdXRoLWZhaWxlZCI6cmV0dXJuIHB5dC5saXN0ZW4oZSk7Y2FzZSJsb2dnZWQtb3V0IjpyZXR1cm4gcDQubGlzdGVuKGUpO2RlZmF1bHQ6dGhyb3cgbmV3IEVycm9yKGBVbnN1cHBvcnRlZCBldmVudCB0eXBlICcke3R9Jy5gKX19fX0pO3ZhciBHcyxndz1iKCgpPT57KGZ1bmN0aW9uKHQpe3QuVW5jYXVnaHRFeGNlcHRpb249IlBSRVZJRVdfVU5DQVVHSFRfRVhDRVBUSU9OIix0LlVuaGFuZGxlZFJlamVjdGlvbj0iUFJFVklFV19VTkhBTkRMRURfUkVKRUNUSU9OIix0LkNvbnNvbGVFcnJvcj0iUFJFVklFV19DT05TT0xFX0VSUk9SIn0pKEdzfHwoR3M9e30pKX0pO2Z1bmN0aW9uIHNqKHQsZT1zZWxmKXtlLmFkZEV2ZW50TGlzdGVuZXIoIm1lc3NhZ2UiLGZ1bmN0aW9uIGEoaSl7aWYoIWl8fCFpLmRhdGEpcmV0dXJuO2xldHtpZDpyLHR5cGU6cyxwYXRoOm59PU9iamVjdC5hc3NpZ24oe3BhdGg6W119LGkuZGF0YSksbz0oaS5kYXRhLmFyZ3VtZW50TGlzdHx8W10pLm1hcCh1NCksZDt0cnl7bGV0IGM9bi5zbGljZSgwLC0xKS5yZWR1Y2UoKGwsZik9PmxbZl0sdCksaD1uLnJlZHVjZSgobCxmKT0+bFtmXSx0KTtzd2l0Y2gocyl7Y2FzZSAwOmQ9aDticmVhaztjYXNlIDE6Y1tuLnNsaWNlKC0xKVswXV09dTQoaS5kYXRhLnZhbHVlKSxkPSEwO2JyZWFrO2Nhc2UgMjpkPWguYXBwbHkoYyxvKTticmVhaztjYXNlIDM6e2xldCBsPW5ldyBoKC4uLm8pO2Q9a3l0KGwpfWJyZWFrO2Nhc2UgNDp7bGV0e3BvcnQxOmwscG9ydDI6Zn09bmV3IE1lc3NhZ2VDaGFubmVsO3NqKHQsZiksZD16eXQobCxbbF0pfWJyZWFrO2Nhc2UgNTpkPXZvaWQgMDticmVha319Y2F0Y2goYyl7ZD17dmFsdWU6YyxbaWpdOjB9fVByb21pc2UucmVzb2x2ZShkKS5jYXRjaChjPT4oe3ZhbHVlOmMsW2lqXTowfSkpLnRoZW4oYz0+e2xldFtoLGxdPW9qKGMpO2UucG9zdE1lc3NhZ2UoT2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LGgpLHtpZDpyfSksbCkscz09PTUmJihlLnJlbW92ZUV2ZW50TGlzdGVuZXIoIm1lc3NhZ2UiLGEpLHl5dChlKSl9KX0pLGUuc3RhcnQmJmUuc3RhcnQoKX1mdW5jdGlvbiBEVXQodCl7cmV0dXJuIHQuY29uc3RydWN0b3IubmFtZT09PSJNZXNzYWdlUG9ydCJ9ZnVuY3Rpb24geXl0KHQpe0RVdCh0KSYmdC5jbG9zZSgpfWZ1bmN0aW9uIHh5dCh0LGUpe3JldHVybiBuaih0LFtdLGUpfWZ1bmN0aW9uIGJ3KHQpe2lmKHQpdGhyb3cgbmV3IEVycm9yKCJQcm94eSBoYXMgYmVlbiByZWxlYXNlZCBhbmQgaXMgbm90IHVzZWFibGUiKX1mdW5jdGlvbiBuaih0LGU9W10sYT1mdW5jdGlvbigpe30pe2xldCBpPSExLHI9bmV3IFByb3h5KGEse2dldChzLG4pe2lmKGJ3KGkpLG49PT1ieXQpcmV0dXJuKCk9PmpsKHQse3R5cGU6NSxwYXRoOmUubWFwKG89Pm8udG9TdHJpbmcoKSl9KS50aGVuKCgpPT57eXl0KHQpLGk9ITB9KTtpZihuPT09InRoZW4iKXtpZihlLmxlbmd0aD09PTApcmV0dXJue3RoZW46KCk9PnJ9O2xldCBvPWpsKHQse3R5cGU6MCxwYXRoOmUubWFwKGQ9PmQudG9TdHJpbmcoKSl9KS50aGVuKHU0KTtyZXR1cm4gby50aGVuLmJpbmQobyl9cmV0dXJuIG5qKHQsWy4uLmUsbl0pfSxzZXQocyxuLG8pe2J3KGkpO2xldFtkLGNdPW9qKG8pO3JldHVybiBqbCh0LHt0eXBlOjEscGF0aDpbLi4uZSxuXS5tYXAoaD0+aC50b1N0cmluZygpKSx2YWx1ZTpkfSxjKS50aGVuKHU0KX0sYXBwbHkocyxuLG8pe2J3KGkpO2xldCBkPWVbZS5sZW5ndGgtMV07aWYoZD09PWd5dClyZXR1cm4gamwodCx7dHlwZTo0fSkudGhlbih1NCk7aWYoZD09PSJiaW5kIilyZXR1cm4gbmoodCxlLnNsaWNlKDAsLTEpKTtsZXRbYyxoXT13eXQobyk7cmV0dXJuIGpsKHQse3R5cGU6MixwYXRoOmUubWFwKGw9PmwudG9TdHJpbmcoKSksYXJndW1lbnRMaXN0OmN9LGgpLnRoZW4odTQpfSxjb25zdHJ1Y3QocyxuKXtidyhpKTtsZXRbbyxkXT13eXQobik7cmV0dXJuIGpsKHQse3R5cGU6MyxwYXRoOmUubWFwKGM9PmMudG9TdHJpbmcoKSksYXJndW1lbnRMaXN0Om99LGQpLnRoZW4odTQpfX0pO3JldHVybiByfWZ1bmN0aW9uIEVVdCh0KXtyZXR1cm4gQXJyYXkucHJvdG90eXBlLmNvbmNhdC5hcHBseShbXSx0KX1mdW5jdGlvbiB3eXQodCl7bGV0IGU9dC5tYXAob2opO3JldHVybltlLm1hcChhPT5hWzBdKSxFVXQoZS5tYXAoYT0+YVsxXSkpXX1mdW5jdGlvbiB6eXQodCxlKXtyZXR1cm4gTXl0LnNldCh0LGUpLHR9ZnVuY3Rpb24ga3l0KHQpe3JldHVybiBPYmplY3QuYXNzaWduKHQse1thal06ITB9KX1mdW5jdGlvbiBQVXQodCxlPXNlbGYsYT0iKiIpe3JldHVybntwb3N0TWVzc2FnZTooaSxyKT0+dC5wb3N0TWVzc2FnZShpLGEsciksYWRkRXZlbnRMaXN0ZW5lcjplLmFkZEV2ZW50TGlzdGVuZXIuYmluZChlKSxyZW1vdmVFdmVudExpc3RlbmVyOmUucmVtb3ZlRXZlbnRMaXN0ZW5lci5iaW5kKGUpfX1mdW5jdGlvbiBvaih0KXtmb3IobGV0W2UsYV1vZiByailpZihhLmNhbkhhbmRsZSh0KSl7bGV0W2kscl09YS5zZXJpYWxpemUodCk7cmV0dXJuW3t0eXBlOjMsbmFtZTplLHZhbHVlOml9LHJdfXJldHVyblt7dHlwZTowLHZhbHVlOnR9LE15dC5nZXQodCl8fFtdXX1mdW5jdGlvbiB1NCh0KXtzd2l0Y2godC50eXBlKXtjYXNlIDM6cmV0dXJuIHJqLmdldCh0Lm5hbWUpLmRlc2VyaWFsaXplKHQudmFsdWUpO2Nhc2UgMDpyZXR1cm4gdC52YWx1ZX19ZnVuY3Rpb24gamwodCxlLGEpe3JldHVybiBuZXcgUHJvbWlzZShpPT57bGV0IHI9SVV0KCk7dC5hZGRFdmVudExpc3RlbmVyKCJtZXNzYWdlIixmdW5jdGlvbiBzKG4peyFuLmRhdGF8fCFuLmRhdGEuaWR8fG4uZGF0YS5pZCE9PXJ8fCh0LnJlbW92ZUV2ZW50TGlzdGVuZXIoIm1lc3NhZ2UiLHMpLGkobi5kYXRhKSl9KSx0LnN0YXJ0JiZ0LnN0YXJ0KCksdC5wb3N0TWVzc2FnZShPYmplY3QuYXNzaWduKHtpZDpyfSxlKSxhKX0pfWZ1bmN0aW9uIElVdCgpe3JldHVybiBuZXcgQXJyYXkoNCkuZmlsbCgwKS5tYXAoKCk9Pk1hdGguZmxvb3IoTWF0aC5yYW5kb20oKSpOdW1iZXIuTUFYX1NBRkVfSU5URUdFUikudG9TdHJpbmcoMTYpKS5qb2luKCItIil9dmFyIFRVdCxMVXQsd2ksYWosZ3l0LGJ5dCxpaix2eXQsJFV0LEFVdCxyaixNeXQsU3l0PWIoKCk9PntUVXQ9T2JqZWN0LmRlZmluZVByb3BlcnR5LExVdD0odCxlKT0+e2Zvcih2YXIgYSBpbiBlKVRVdCh0LGEse2dldDplW2FdLGVudW1lcmFibGU6ITB9KX0sd2k9e307TFV0KHdpLHtjcmVhdGVFbmRwb2ludDooKT0+Z3l0LGV4cG9zZTooKT0+c2oscHJveHk6KCk9Pmt5dCxwcm94eU1hcmtlcjooKT0+YWoscmVsZWFzZVByb3h5OigpPT5ieXQsdHJhbnNmZXI6KCk9Pnp5dCx0cmFuc2ZlckhhbmRsZXJzOigpPT5yaix3aW5kb3dFbmRwb2ludDooKT0+UFV0LHdyYXA6KCk9Pnh5dH0pO2FqPVN5bWJvbCgiQ29tbGluay5wcm94eSIpLGd5dD1TeW1ib2woIkNvbWxpbmsuZW5kcG9pbnQiKSxieXQ9U3ltYm9sKCJDb21saW5rLnJlbGVhc2VQcm94eSIpLGlqPVN5bWJvbCgiQ29tbGluay50aHJvd24iKSx2eXQ9dD0+dHlwZW9mIHQ9PSJvYmplY3QiJiZ0IT09bnVsbHx8dHlwZW9mIHQ9PSJmdW5jdGlvbiIsJFV0PXtjYW5IYW5kbGU6dD0+dnl0KHQpJiZ0W2FqXSxzZXJpYWxpemUodCl7bGV0e3BvcnQxOmUscG9ydDI6YX09bmV3IE1lc3NhZ2VDaGFubmVsO3JldHVybiBzaih0LGUpLFthLFthXV19LGRlc2VyaWFsaXplKHQpe3JldHVybiB0LnN0YXJ0KCkseHl0KHQpfX0sQVV0PXtjYW5IYW5kbGU6dD0+dnl0KHQpJiZpaiBpbiB0LHNlcmlhbGl6ZSh7dmFsdWU6dH0pe2xldCBlO3JldHVybiB0IGluc3RhbmNlb2YgRXJyb3I/ZT17aXNFcnJvcjohMCx2YWx1ZTp7bWVzc2FnZTp0Lm1lc3NhZ2UsbmFtZTp0Lm5hbWUsc3RhY2s6dC5zdGFja319OmU9e2lzRXJyb3I6ITEsdmFsdWU6dH0sW2UsW11dfSxkZXNlcmlhbGl6ZSh0KXt0aHJvdyB0LmlzRXJyb3I/T2JqZWN0LmFzc2lnbihuZXcgRXJyb3IodC52YWx1ZS5tZXNzYWdlKSx0LnZhbHVlKTp0LnZhbHVlfX0scmo9bmV3IE1hcChbWyJwcm94eSIsJFV0XSxbInRocm93IixBVXRdXSk7TXl0PW5ldyBXZWFrTWFwfSk7dmFyIEN5dD1iKCgpPT57fSk7ZnVuY3Rpb24gbGoodCl7cmV0dXJuISh0PT1udWxsfHx0eXBlb2YgdCE9Im9iamVjdCJ8fCEoInR5cGUiaW4gdCl8fCFOVXQuaW5jbHVkZXModC50eXBlKSl9dmFyIE5VdCxfeXQ9YigoKT0+e2d3KCk7TlV0PVtHcy5Db25zb2xlRXJyb3IsR3MuVW5jYXVnaHRFeGNlcHRpb24sR3MuVW5oYW5kbGVkUmVqZWN0aW9uXX0pO3ZhciBjaj1iKCgpPT57Q3l0KCk7Z3coKTtfeXQoKX0pO2Z1bmN0aW9uIGY0KHQpe2xldCBlPU9iamVjdC5jcmVhdGUobnVsbCk7cmV0dXJuIHQ/T2JqZWN0LmFzc2lnbihlLHQpOmV9dmFyIFR5dD1iKCgpPT57fSk7ZnVuY3Rpb24gZGoodCl7bGV0IGU9e2Q6e319O2ZvcihsZXQgYSBvZiBPYmplY3Qua2V5cyh0KSl7bGV0IGk9dFthXTtpZigiZmlsZSJpbiBpKXtpZigic3ltbGluayJpbiBpLmZpbGUpe2UuZFthXT17Zjp7bDppLmZpbGUuc3ltbGlua319O2NvbnRpbnVlfWxldCBzPWkuZmlsZS5jb250ZW50cyxuPXR5cGVvZiBzPT0ic3RyaW5nIj9zOkZVdC5kZWNvZGUocyksbz10eXBlb2Ygcz09InN0cmluZyI/e306e2I6ITB9O2UuZFthXT17Zjp7YzpuLC4uLm99fTtjb250aW51ZX1sZXQgcj1kaihpLmRpcmVjdG9yeSk7ZS5kW2FdPXJ9cmV0dXJuIGV9ZnVuY3Rpb24gaGoodCl7bGV0IGU9ZjQoKTtpZigiZiJpbiB0KXRocm93IG5ldyBFcnJvcigiSXQgaXMgbm90IHBvc3NpYmxlIHRvIGV4cG9ydCBhIHNpbmdsZSBmaWxlIGluIHRoZSBKU09OIGZvcm1hdC4iKTtpZigiZCJpbiB0KWZvcihsZXQgYSBvZiBPYmplY3Qua2V5cyh0LmQpKXtsZXQgaT10LmRbYV07ImQiaW4gaT9lW2FdPWY0KHtkaXJlY3Rvcnk6aGooaSl9KToiZiJpbiBpJiYoImMiaW4gaS5mP2VbYV09ZjQoe2ZpbGU6ZjQoe2NvbnRlbnRzOmkuZi5iP09VdChpLmYuYyk6aS5mLmN9KX0pOiJsImluIGkuZiYmKGVbYV09ZjQoe2ZpbGU6ZjQoe3N5bWxpbms6aS5mLmx9KX0pKSl9cmV0dXJuIGV9ZnVuY3Rpb24gT1V0KHQpe2xldCBlPW5ldyBVaW50OEFycmF5KHQubGVuZ3RoKTtmb3IobGV0IGE9MDthPHQubGVuZ3RoO2ErKyllW2FdPXRbYV0uY2hhckNvZGVBdCgwKTtyZXR1cm4gZX12YXIgRlV0LEx5dD1iKCgpPT57VHl0KCk7RlV0PW5ldyBUZXh0RGVjb2RlcigibGF0aW4xIil9KTtmdW5jdGlvbiBKZDIodCl7aWYoYnQuYm9vdENhbGxlZCl0aHJvdyBuZXcgRXJyb3IoImBjb25maWd1cmVBUElLZXlgIHNob3VsZCBhbHdheXMgYmUgY2FsbGVkIGJlZm9yZSBgV2ViQ29udGFpbmVyLmJvb3RgIik7V3Muc2V0UXVlcnlQYXJhbSgiY2xpZW50X2lkIix0KX1hc3luYyBmdW5jdGlvbiBxVXQodCl7bGV0e3NlcnZlclByb21pc2U6ZX09VlV0KHQpLGk9YXdhaXQoYXdhaXQgZSkuYnVpbGQoe2hvc3Q6d2luZG93LmxvY2F0aW9uLmhvc3QsdmVyc2lvbjoiMS42LjEiLHdvcmtkaXJOYW1lOnQud29ya2Rpck5hbWUsZm9yd2FyZFByZXZpZXdFcnJvcnM6dC5mb3J3YXJkUHJldmlld0Vycm9yc30pLFtyLHMsbl09YXdhaXQgUHJvbWlzZS5hbGwoW2kuZnMoKSxpLnByZXZpZXdTY3JpcHQoKSxpLnJ1bnRpbWVJbmZvKCldKTtyZXR1cm4gbmV3IEo4KGkscixzLG4pfWZ1bmN0aW9uIGJqKHQpe2lmKHQhPW51bGwpcmV0dXJuIGU9PntlIGluc3RhbmNlb2YgVWludDhBcnJheT90KCR5dC5kZWNvZGUoZSkpOmU9PW51bGwmJnQobnVsbCl9fWZ1bmN0aW9uIHh3KHQpe2lmKHQhPW51bGwpcmV0dXJuIHdpLnByb3h5KHQpfWZ1bmN0aW9uIFZVdCh0KXtpZih5dyE9bnVsbClyZXR1cm4gdC5jb2VwIT09cGouY29lcCYmKGNvbnNvbGUud2FybihgQXR0ZW1wdGluZyB0byBib290IFdlYkNvbnRhaW5lciB3aXRoICdjb2VwOiAke3QuY29lcH0nYCksY29uc29sZS53YXJuKGBGaXJzdCBib290IGhhZCAnY29lcDogJHtwai5jb2VwfScsIG5ldyBzZXR0aW5ncyB3aWxsIG5vdCB0YWtlIGVmZmVjdCFgKSkse3NlcnZlclByb21pc2U6eXd9O3QuY29lcCYmV3Muc2V0UXVlcnlQYXJhbSgiY29lcCIsdC5jb2VwKSx0LmV4cGVyaW1lbnRhbE5vZGUmJldzLnNldFF1ZXJ5UGFyYW0oImV4cGVyaW1lbnRhbF9ub2RlIiwiMSIpO2xldCBlPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImlmcmFtZSIpO2Uuc3R5bGUuZGlzcGxheT0ibm9uZSIsZS5zZXRBdHRyaWJ1dGUoImFsbG93IiwiY3Jvc3Mtb3JpZ2luLWlzb2xhdGVkIik7bGV0IGE9V3MudXJsO2Uuc3JjPWEudG9TdHJpbmcoKTtsZXR7b3JpZ2luOml9PWE7cmV0dXJuIHBqPXsuLi50fSx5dz1uZXcgUHJvbWlzZShyPT57bGV0IHM9bj0+e2lmKG4ub3JpZ2luIT09aSlyZXR1cm47bGV0e2RhdGE6b309bjtpZihvLnR5cGU9PT0iaW5pdCIpe3Iod2kud3JhcChuLnBvcnRzWzBdKSk7cmV0dXJufWlmKG8udHlwZT09PSJ3YXJuaW5nIil7Y29uc29sZVtvLmxldmVsXS5jYWxsKGNvbnNvbGUsby5tZXNzYWdlKTtyZXR1cm59fTt3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigibWVzc2FnZSIscyl9KSxkb2N1bWVudC5ib2R5Lmluc2VydEJlZm9yZShlLG51bGwpLHtzZXJ2ZXJQcm9taXNlOnl3fX1mdW5jdGlvbiBqVXQodCl7cmV0dXJuIHR5cGVvZiB0WzBdPT0ic3RyaW5nIn1mdW5jdGlvbiBVVXQodCl7cmV0dXJuIHRbMF1pbnN0YW5jZW9mIFVpbnQ4QXJyYXl9ZnVuY3Rpb24gV1V0KCl7bGV0IHQ9bnVsbDtyZXR1cm57c3RyZWFtOm5ldyBSZWFkYWJsZVN0cmVhbSh7c3RhcnQoaSl7dD1pfX0pLHB1c2g6aT0+e2khPW51bGw/dD8uZW5xdWV1ZShpKToodD8uY2xvc2UoKSx0PW51bGwpfX19ZnVuY3Rpb24gR1V0KHQpe2xldCBlPSExLGE9KCk9Pnt9O3JldHVybntzdWJzY3JpYmUocil7cmV0dXJuIHIudGhlbihzPT57YT1zLGUmJmEoKX0pLCgpPT57ZT0hMCxhKCl9fSxsaXN0ZW5lcjooKC4uLnIpPT57ZXx8dCguLi5yKX0pfX12YXIgUWQyLHZ3LHl3LHBqLCR5dCxSVXQsSjgsQlV0LEhVdCx1aixmaixtaixnaixBeXQ9YigoKT0+e3RqKCk7Z3coKTtTeXQoKTt0aigpO1hWKCk7UVYoKTtjaigpO0x5dCgpO2NqKCk7UWQyPW15dCx2dz1udWxsLHl3PW51bGwscGo9e30sJHl0PW5ldyBUZXh0RGVjb2RlcixSVXQ9bmV3IFRleHRFbmNvZGVyLEo4PWNsYXNzIHR7X2luc3RhbmNlO19ydW50aW1lSW5mbztmcztzdGF0aWMgX2luc3RhbmNlPW51bGw7c3RhdGljIF90ZWFyZG93blByb21pc2U9bnVsbDtfdG9ybkRvd249ITE7X3Vuc3Vic2NyaWJlRnJvbVRva2VuQ2hhbmdlZExpc3RlbmVyPSgpPT57fTtjb25zdHJ1Y3RvcihlLGEsaSxyKXt0aGlzLl9pbnN0YW5jZT1lLHRoaXMuX3J1bnRpbWVJbmZvPXIsdGhpcy5mcz1uZXcgZ2ooYSksYnQuaW5pdGlhbGl6ZWQmJih0aGlzLl91bnN1YnNjcmliZUZyb21Ub2tlbkNoYW5nZWRMaXN0ZW5lcj1ueXQocz0+e3RoaXMuX2luc3RhbmNlLnNldENyZWRlbnRpYWxzKHthY2Nlc3NUb2tlbjpzLGVkaXRvck9yaWdpbjpidC5lZGl0b3JPcmlnaW59KX0pLChhc3luYygpPT57YXdhaXQgYnQuYXV0aENvbXBsZXRlLnByb21pc2UsIXRoaXMuX3Rvcm5Eb3duJiYoZWooYnQudG9rZW5zKSxhd2FpdCB0aGlzLl9pbnN0YW5jZS5zZXRDcmVkZW50aWFscyh7YWNjZXNzVG9rZW46YnQudG9rZW5zLmFjY2VzcyxlZGl0b3JPcmlnaW46YnQuZWRpdG9yT3JpZ2lufSkpfSkoKS5jYXRjaChzPT57Y29uc29sZS5lcnJvcihzKX0pKX1hc3luYyBzcGF3bihlLGEsaSl7bGV0IHI9W107QXJyYXkuaXNBcnJheShhKT9yPWE6aT1hO2xldCBzLG49bmV3IFJlYWRhYmxlU3RyZWFtO2lmKGk/Lm91dHB1dCE9PSExKXtsZXQgdj1XVXQoKTtzPXYucHVzaCxuPXYuc3RyZWFtfWxldCBvLGQsYyxoLGw9eHcoYmoocykpLGY9eHcoYmoobykpLGc9eHcoYmooYykpLHk9YXdhaXQgdGhpcy5faW5zdGFuY2UucnVuKHtjb21tYW5kOmUsYXJnczpyLGN3ZDppPy5jd2QsZW52Omk/LmVudix0ZXJtaW5hbDppPy50ZXJtaW5hbH0sZixnLGwpO3JldHVybiBuZXcgbWooeSxuLGQsaCl9YXN5bmMgZXhwb3J0KGUsYSl7bGV0IGk9e2Zvcm1hdDphPy5mb3JtYXQ/PyJqc29uIixpbmNsdWRlczphPy5pbmNsdWRlcyxleGNsdWRlczphPy5leGNsdWRlcyxleHRlcm5hbDohMH0scj1hd2FpdCB0aGlzLl9pbnN0YW5jZS5zZXJpYWxpemUoZSxpKTtpZihpLmZvcm1hdD09PSJqc29uIil7bGV0IHM9SlNPTi5wYXJzZSgkeXQuZGVjb2RlKHIpKTtyZXR1cm4gaGoocyl9cmV0dXJuIHJ9b24oZSxhKXtpZihlPT09InByZXZpZXctbWVzc2FnZSIpe2xldCBzPWE7YT0obj0+e2xqKG4pJiZzKG4pfSl9bGV0e2xpc3RlbmVyOmksc3Vic2NyaWJlOnJ9PUdVdChhKTtyZXR1cm4gcih0aGlzLl9pbnN0YW5jZS5vbihlLHdpLnByb3h5KGkpKSl9bW91bnQoZSxhKXtsZXQgaT1lIGluc3RhbmNlb2YgVWludDhBcnJheT9lOmUgaW5zdGFuY2VvZiBBcnJheUJ1ZmZlcj9uZXcgVWludDhBcnJheShlKTpSVXQuZW5jb2RlKEpTT04uc3RyaW5naWZ5KGRqKGUpKSk7cmV0dXJuIHRoaXMuX2luc3RhbmNlLmxvYWRGaWxlcyh3aS50cmFuc2ZlcihpLFtpLmJ1ZmZlcl0pLHttb3VudFBvaW50czphPy5tb3VudFBvaW50fSl9c2V0UHJldmlld1NjcmlwdChlLGEpe3JldHVybiB0aGlzLl9pbnN0YW5jZS5zZXRQcmV2aWV3U2NyaXB0KGUsYSl9Z2V0IHBhdGgoKXtyZXR1cm4gdGhpcy5fcnVudGltZUluZm8ucGF0aH1nZXQgd29ya2Rpcigpe3JldHVybiB0aGlzLl9ydW50aW1lSW5mby5jd2R9dGVhcmRvd24oKXtpZih0aGlzLl90b3JuRG93bil0aHJvdyBuZXcgRXJyb3IoIldlYkNvbnRhaW5lciBhbHJlYWR5IHRvcm4gZG93biIpO3RoaXMuX3Rvcm5Eb3duPSEwLHRoaXMuX3Vuc3Vic2NyaWJlRnJvbVRva2VuQ2hhbmdlZExpc3RlbmVyKCk7bGV0IGU9YXN5bmMoKT0+e3RyeXthd2FpdCB0aGlzLmZzLl90ZWFyZG93bigpLGF3YWl0IHRoaXMuX2luc3RhbmNlLnRlYXJkb3duKCl9ZmluYWxseXt0aGlzLl9pbnN0YW5jZVt3aS5yZWxlYXNlUHJveHldKCksdC5faW5zdGFuY2U9PT10aGlzJiYodC5faW5zdGFuY2U9bnVsbCl9fTt0Ll90ZWFyZG93blByb21pc2U9ZSgpfXN0YXRpYyBhc3luYyBib290KGU9e30pe2F3YWl0IHRoaXMuX3RlYXJkb3duUHJvbWlzZSx0Ll90ZWFyZG93blByb21pc2U9bnVsbDtsZXR7d29ya2Rpck5hbWU6YX09ZTtpZih3aW5kb3cuY3Jvc3NPcmlnaW5Jc29sYXRlZCYmZS5jb2VwPT09Im5vbmUiJiZjb25zb2xlLndhcm4oYEEgQ3Jvc3MtT3JpZ2luLUVtYmVkZGVyLVBvbGljeSBoZWFkZXIgaXMgcmVxdWlyZWQgaW4gY3Jvc3Mgb3JpZ2luIGlzb2xhdGVkIGVudmlyb25tZW50cy4KU2V0IHRoZSAnY29lcCcgb3B0aW9uIHRvICdyZXF1aXJlLWNvcnAnLmApLGE/LmluY2x1ZGVzKCIvIil8fGE9PT0iLi4ifHxhPT09Ii4iKXRocm93IG5ldyBFcnJvcigid29ya2Rpck5hbWUgc2hvdWxkIGJlIGEgdmFsaWQgZm9sZGVyIG5hbWUiKTtmb3IoYnQuYm9vdENhbGxlZD0hMDt2dzspYXdhaXQgdnc7aWYodC5faW5zdGFuY2UpdGhyb3cgbmV3IEVycm9yKCJPbmx5IGEgc2luZ2xlIFdlYkNvbnRhaW5lciBpbnN0YW5jZSBjYW4gYmUgYm9vdGVkIik7bGV0IGk9cVV0KGUpO3Z3PWkuY2F0Y2goKCk9Pnt9KTt0cnl7bGV0IHI9YXdhaXQgaTtyZXR1cm4gdC5faW5zdGFuY2U9cixyfWZpbmFsbHl7dnc9bnVsbH19fTtCVXQ9MSxIVXQ9Mix1aj1jbGFzc3tuYW1lO190eXBlO2NvbnN0cnVjdG9yKGUsYSl7dGhpcy5uYW1lPWUsdGhpcy5fdHlwZT1hfWlzRmlsZSgpe3JldHVybiB0aGlzLl90eXBlPT09QlV0fWlzRGlyZWN0b3J5KCl7cmV0dXJuIHRoaXMuX3R5cGU9PT1IVXR9fSxmaj1jbGFzc3tfYXBpQ2xpZW50O19wYXRoO19vcHRpb25zO19saXN0ZW5lcjtfd3JhcHBlZExpc3RlbmVyO193YXRjaGVyO19jbG9zZWQ9ITE7Y29uc3RydWN0b3IoZSxhLGkscil7dGhpcy5fYXBpQ2xpZW50PWUsdGhpcy5fcGF0aD1hLHRoaXMuX29wdGlvbnM9aSx0aGlzLl9saXN0ZW5lcj1yLHRoaXMuX2FwaUNsaWVudC5fd2F0Y2hlcnMuYWRkKHRoaXMpLHRoaXMuX3dyYXBwZWRMaXN0ZW5lcj0ocyxuKT0+e3RoaXMuX2xpc3RlbmVyJiYhdGhpcy5fY2xvc2VkJiZ0aGlzLl9saXN0ZW5lcihzLG4pfSx0aGlzLl9hcGlDbGllbnQuX2ZzLndhdGNoKHRoaXMuX3BhdGgsdGhpcy5fb3B0aW9ucyx4dyh0aGlzLl93cmFwcGVkTGlzdGVuZXIpKS50aGVuKHM9PntpZih0aGlzLl93YXRjaGVyPXMsdGhpcy5fY2xvc2VkKXJldHVybiB0aGlzLl90ZWFyZG93bigpfSkuY2F0Y2goY29uc29sZS5lcnJvcil9YXN5bmMgY2xvc2UoKXt0aGlzLl9jbG9zZWR8fCh0aGlzLl9jbG9zZWQ9ITAsdGhpcy5fYXBpQ2xpZW50Ll93YXRjaGVycy5kZWxldGUodGhpcyksYXdhaXQgdGhpcy5fdGVhcmRvd24oKSl9YXN5bmMgX3RlYXJkb3duKCl7YXdhaXQgdGhpcy5fd2F0Y2hlcj8uY2xvc2UoKS5maW5hbGx5KCgpPT57dGhpcy5fd2F0Y2hlcj8uW3dpLnJlbGVhc2VQcm94eV0oKX0pfX0sbWo9Y2xhc3N7b3V0cHV0O2lucHV0O2V4aXQ7X3Byb2Nlc3M7c3Rkb3V0O3N0ZGVycjtjb25zdHJ1Y3RvcihlLGEsaSxyKXt0aGlzLm91dHB1dD1hLHRoaXMuX3Byb2Nlc3M9ZSx0aGlzLmlucHV0PW5ldyBXcml0YWJsZVN0cmVhbSh7d3JpdGU6cz0+e3RoaXMuX2dldFByb2Nlc3MoKT8ud3JpdGUocykuY2F0Y2goKCk9Pnt9KX19KSx0aGlzLmV4aXQ9dGhpcy5fb25FeGl0KCksdGhpcy5zdGRvdXQ9aSx0aGlzLnN0ZGVycj1yfWtpbGwoKXt0aGlzLl9wcm9jZXNzPy5raWxsKCl9cmVzaXplKGUpe3RoaXMuX2dldFByb2Nlc3MoKT8ucmVzaXplKGUpfWFzeW5jIF9vbkV4aXQoKXt0cnl7cmV0dXJuIGF3YWl0IHRoaXMuX3Byb2Nlc3Mub25FeGl0fWZpbmFsbHl7dGhpcy5fcHJvY2Vzcz8uW3dpLnJlbGVhc2VQcm94eV0oKSx0aGlzLl9wcm9jZXNzPW51bGx9fV9nZXRQcm9jZXNzKCl7cmV0dXJuIHRoaXMuX3Byb2Nlc3M9PW51bGwmJmNvbnNvbGUud2FybigiVGhpcyBwcm9jZXNzIGFscmVhZHkgZXhpdGVkIiksdGhpcy5fcHJvY2Vzc319LGdqPWNsYXNze19mcztfd2F0Y2hlcnM9bmV3IFNldChbXSk7Y29uc3RydWN0b3IoZSl7dGhpcy5fZnM9ZX1ybSguLi5lKXtyZXR1cm4gdGhpcy5fZnMucm0oLi4uZSl9YXN5bmMgcmVhZEZpbGUoZSxhKXtyZXR1cm4gYXdhaXQgdGhpcy5fZnMucmVhZEZpbGUoZSxhKX1hc3luYyByZW5hbWUoZSxhKXtyZXR1cm4gYXdhaXQgdGhpcy5fZnMucmVuYW1lKGUsYSl9YXN5bmMgd3JpdGVGaWxlKGUsYSxpKXtpZihhIGluc3RhbmNlb2YgVWludDhBcnJheSl7bGV0IHI9YS5idWZmZXIuc2xpY2UoYS5ieXRlT2Zmc2V0LGEuYnl0ZU9mZnNldCthLmJ5dGVMZW5ndGgpO2E9d2kudHJhbnNmZXIobmV3IFVpbnQ4QXJyYXkociksW3JdKX1hd2FpdCB0aGlzLl9mcy53cml0ZUZpbGUoZSxhLGkpfWFzeW5jIHJlYWRkaXIoZSxhKXtsZXQgaT1hd2FpdCB0aGlzLl9mcy5yZWFkZGlyKGUsYSk7cmV0dXJuIGpVdChpKXx8VVV0KGkpP2k6aS5tYXAocz0+bmV3IHVqKHMubmFtZSxzWyJTeW1ib2wodHlwZSkiXSkpfWFzeW5jIG1rZGlyKGUsYSl7cmV0dXJuIGF3YWl0IHRoaXMuX2ZzLm1rZGlyKGUsYSl9d2F0Y2goZSxhLGkpe3JldHVybiB0eXBlb2YgYT09ImZ1bmN0aW9uIiYmKGk9YSxhPW51bGwpLG5ldyBmaih0aGlzLGUsYSxpKX1hc3luYyBfdGVhcmRvd24oKXt0aGlzLl9mc1t3aS5yZWxlYXNlUHJveHldKCksYXdhaXQgUHJvbWlzZS5hbGwoWy4uLnRoaXMuX3dhdGNoZXJzXS5tYXAoZT0+ZS5jbG9zZSgpKSl9fX0pO3ZhciBtNCxEeXQ9YigoKT0+e0F5dCgpO200PWNsYXNzIHR7c3RhdGljIHNoYXJlZENvbnRhaW5lcj1udWxsO3N0YXRpYyBib290UHJvbWlzZT1udWxsO19yZWFkeT0hMTt0eXBlPSJ3ZWJjb250YWluZXIiO2dldCByZWFkeSgpe3JldHVybiB0aGlzLl9yZWFkeX1nZXQgY29udGFpbmVyKCl7cmV0dXJuIHQuc2hhcmVkQ29udGFpbmVyfWFzeW5jIGluaXQoKXtpZighKHRoaXMuX3JlYWR5JiZ0LnNoYXJlZENvbnRhaW5lcikpe2lmKHQuYm9vdFByb21pc2Upe2F3YWl0IHQuYm9vdFByb21pc2UsdGhpcy5fcmVhZHk9ITA7cmV0dXJufWlmKHQuc2hhcmVkQ29udGFpbmVyKXt0aGlzLl9yZWFkeT0hMDtyZXR1cm59aWYodHlwZW9mIFNoYXJlZEFycmF5QnVmZmVyPiJ1Iil0aHJvdyBuZXcgRXJyb3IoYFdlYkNvbnRhaW5lciByZXF1aXJlcyBTaGFyZWRBcnJheUJ1ZmZlciB3aGljaCBpcyBub3QgYXZhaWxhYmxlLiBFbnN1cmUgeW91ciBzZXJ2ZXIgc2VuZHMgdGhlc2UgaGVhZGVyczoKICBDcm9zcy1PcmlnaW4tT3BlbmVyLVBvbGljeTogc2FtZS1vcmlnaW4KICBDcm9zcy1PcmlnaW4tRW1iZWRkZXItUG9saWN5OiByZXF1aXJlLWNvcnBgKTt0LmJvb3RQcm9taXNlPUo4LmJvb3QoKTt0cnl7dC5zaGFyZWRDb250YWluZXI9YXdhaXQgdC5ib290UHJvbWlzZSx0aGlzLl9yZWFkeT0hMH1jYXRjaChlKXt0aHJvdyB0LmJvb3RQcm9taXNlPW51bGwsZX19fWFzeW5jIGRlc3Ryb3koKXt0LnNoYXJlZENvbnRhaW5lciYmKHQuc2hhcmVkQ29udGFpbmVyLnRlYXJkb3duKCksdC5zaGFyZWRDb250YWluZXI9bnVsbCx0LmJvb3RQcm9taXNlPW51bGwsdGhpcy5fcmVhZHk9ITEpfWFzeW5jIHJlYWRGaWxlKGUpe3JldHVybiB0aGlzLmVuc3VyZVJlYWR5KCksYXdhaXQgdGhpcy5jb250YWluZXIuZnMucmVhZEZpbGUoZSwidXRmLTgiKX1hc3luYyB3cml0ZUZpbGUoZSxhKXt0aGlzLmVuc3VyZVJlYWR5KCksYXdhaXQgdGhpcy5jb250YWluZXIuZnMud3JpdGVGaWxlKGUsYSwidXRmLTgiKX1hc3luYyByZWFkRGlyKGUpe3JldHVybiB0aGlzLmVuc3VyZVJlYWR5KCksKGF3YWl0IHRoaXMuY29udGFpbmVyLmZzLnJlYWRkaXIoZSx7d2l0aEZpbGVUeXBlczohMH0pKS5tYXAoaT0+KHt0eXBlOmkuaXNEaXJlY3RvcnkoKT8iZGlyZWN0b3J5IjoiZmlsZSIsbmFtZTppLm5hbWUscGF0aDplPT09Ii8iP2AvJHtpLm5hbWV9YDpgJHtlfS8ke2kubmFtZX1gfSkpfWFzeW5jIG1rZGlyKGUpe3RoaXMuZW5zdXJlUmVhZHkoKSxhd2FpdCB0aGlzLmNvbnRhaW5lci5mcy5ta2RpcihlLHtyZWN1cnNpdmU6ITB9KX1hc3luYyBybShlLGEpe3RoaXMuZW5zdXJlUmVhZHkoKSxhd2FpdCB0aGlzLmNvbnRhaW5lci5mcy5ybShlLHtyZWN1cnNpdmU6YT8ucmVjdXJzaXZlPz8hMX0pfWFzeW5jIGV4aXN0cyhlKXt0aGlzLmVuc3VyZVJlYWR5KCk7dHJ5e3JldHVybiBhd2FpdCB0aGlzLmNvbnRhaW5lci5mcy5yZWFkRmlsZShlKSwhMH1jYXRjaHt0cnl7cmV0dXJuIGF3YWl0IHRoaXMuY29udGFpbmVyLmZzLnJlYWRkaXIoZSksITB9Y2F0Y2h7cmV0dXJuITF9fX13YXRjaChlLGEsaSl7dGhpcy5lbnN1cmVSZWFkeSgpO2xldCByPXRoaXMuY29udGFpbmVyLmZzLndhdGNoKGUse3JlY3Vyc2l2ZTppPy5yZWN1cnNpdmU/PyExfSxhKTtyZXR1cm57c3RvcDooKT0+ci5jbG9zZSgpfX1hc3luYyBzcGF3bihlLGE9W10pe3RoaXMuZW5zdXJlUmVhZHkoKTtsZXQgaT1hd2FpdCB0aGlzLmNvbnRhaW5lci5zcGF3bihlLGEpO3JldHVybntvdXRwdXQ6aS5vdXRwdXQsaW5wdXQ6aS5pbnB1dCxleGl0OmkuZXhpdCxraWxsOigpPT5pLmtpbGwoKX19YXN5bmMgbW91bnQoZSl7dGhpcy5lbnN1cmVSZWFkeSgpLGF3YWl0IHRoaXMuY29udGFpbmVyLm1vdW50KGUpfWdldENvbnRhaW5lcigpe3JldHVybiB0aGlzLmVuc3VyZVJlYWR5KCksdGhpcy5jb250YWluZXJ9ZW5zdXJlUmVhZHkoKXtpZighdGhpcy5fcmVhZHl8fCF0aGlzLmNvbnRhaW5lcil0aHJvdyBuZXcgRXJyb3IoIldlYkNvbnRhaW5lckVudmlyb25tZW50IG5vdCBpbml0aWFsaXplZC4gQ2FsbCBpbml0KCkgZmlyc3QuIil9fX0pO3ZhciBFeXQ9YigoKT0+e0R5dCgpfSk7dmFyIHd3PWIoKCk9PntKdnQoKTtFeXQoKX0pO3ZhciBQeXQ9YigoKT0+e0ZxKCl9KTt2YXIgZWQsdmo9YigoKT0+e2VkPWNsYXNze3RhYnM9bmV3IE1hcDt0YWJDb3VudGVyPTA7eHRlcm1CdW5kbGU9bnVsbDt4dGVybUZpdEFkZG9uQnVuZGxlPW51bGw7c2V0WHRlcm1Nb2R1bGVzKGUsYSl7dGhpcy54dGVybUJ1bmRsZT1lLHRoaXMueHRlcm1GaXRBZGRvbkJ1bmRsZT1hfWdlbmVyYXRlVGFiSWQoKXtyZXR1cm4gdGhpcy50YWJDb3VudGVyKyssYHRlcm1pbmFsLSR7dGhpcy50YWJDb3VudGVyfS0ke0RhdGUubm93KCl9YH1nZXREZWZhdWx0TGFiZWwoZSxhKXtzd2l0Y2goZSl7Y2FzZSJzaGVsbCI6cmV0dXJuImJhc2giO2Nhc2Uic2NyaXB0IjpyZXR1cm4gYT8uc2NyaXB0TmFtZXx8InNjcmlwdCI7Y2FzZSJwYWNrYWdlLXVwZGF0ZSI6cmV0dXJuIGE/LnBhY2thZ2VOYW1lP2B1cGRhdGUgJHthLnBhY2thZ2VOYW1lfWA6InVwZGF0ZSI7Y2FzZSJjdXN0b20iOnJldHVybiBhPy5jb21tYW5kfHwicHJvY2VzcyI7ZGVmYXVsdDpyZXR1cm4idGVybWluYWwifX1nZXREZWZhdWx0SWNvbihlKXtzd2l0Y2goZSl7Y2FzZSJzaGVsbCI6cmV0dXJuImx1Y2lkZTp0ZXJtaW5hbCI7Y2FzZSJzY3JpcHQiOnJldHVybiJsdWNpZGU6cGxheSI7Y2FzZSJwYWNrYWdlLXVwZGF0ZSI6cmV0dXJuImx1Y2lkZTpwYWNrYWdlQ2hlY2siO2Nhc2UiY3VzdG9tIjpyZXR1cm4ibHVjaWRlOmNvZGUiO2RlZmF1bHQ6cmV0dXJuImx1Y2lkZTp0ZXJtaW5hbCJ9fWdldFRlcm1pbmFsVGhlbWUoZSl7cmV0dXJuIGU/e2JhY2tncm91bmQ6IiNmZmZmZmYiLGZvcmVncm91bmQ6IiMzMzMzMzMiLGN1cnNvcjoiIzMzMzMzMyIsY3Vyc29yQWNjZW50OiIjZmZmZmZmIixzZWxlY3Rpb246InJnYmEoMCwgMCwgMCwgMC4yKSIsYmxhY2s6IiMwMDAwMDAiLHJlZDoiI2NkMzEzMSIsZ3JlZW46IiMwMGJjMDAiLHllbGxvdzoiIzk0OTgwMCIsYmx1ZToiIzA0NTFhNSIsbWFnZW50YToiI2JjMDViYyIsY3lhbjoiIzA1OThiYyIsd2hpdGU6IiM1NTU1NTUiLGJyaWdodEJsYWNrOiIjNjY2NjY2IixicmlnaHRSZWQ6IiNjZDMxMzEiLGJyaWdodEdyZWVuOiIjMTRjZTE0IixicmlnaHRZZWxsb3c6IiNiNWJhMDAiLGJyaWdodEJsdWU6IiMwNDUxYTUiLGJyaWdodE1hZ2VudGE6IiNiYzA1YmMiLGJyaWdodEN5YW46IiMwNTk4YmMiLGJyaWdodFdoaXRlOiIjYTVhNWE1In06e2JhY2tncm91bmQ6IiMwMDAwMDAiLGZvcmVncm91bmQ6IiNmZmZmZmYiLGN1cnNvcjoiI2ZmZmZmZiIsY3Vyc29yQWNjZW50OiIjMDAwMDAwIixzZWxlY3Rpb246InJnYmEoMjU1LCAyNTUsIDI1NSwgMC4yKSJ9fWNyZWF0ZVRhYihlLGEpe2lmKCF0aGlzLnh0ZXJtQnVuZGxlfHwhdGhpcy54dGVybUZpdEFkZG9uQnVuZGxlKXRocm93IG5ldyBFcnJvcigiVGVybWluYWxUYWJNYW5hZ2VyOiB4dGVybSBtb2R1bGVzIG5vdCBpbml0aWFsaXplZC4gQ2FsbCBzZXRYdGVybU1vZHVsZXMoKSBmaXJzdC4iKTtsZXQgaT10aGlzLmdlbmVyYXRlVGFiSWQoKSxyPWUudHlwZSxzPW5ldyB0aGlzLnh0ZXJtQnVuZGxlLlRlcm1pbmFsKHtjb252ZXJ0RW9sOiEwLGN1cnNvckJsaW5rOiEwLHRoZW1lOnRoaXMuZ2V0VGVybWluYWxUaGVtZShhKSxmb250RmFtaWx5OidNZW5sbywgTW9uYWNvLCAiQ291cmllciBOZXciLCBtb25vc3BhY2UnLGZvbnRTaXplOjEzLGxpbmVIZWlnaHQ6MS4yfSksbj1uZXcgdGhpcy54dGVybUZpdEFkZG9uQnVuZGxlLkZpdEFkZG9uO3MubG9hZEFkZG9uKG4pO2xldCBvPXtpZDppLGxhYmVsOmUubGFiZWx8fHRoaXMuZ2V0RGVmYXVsdExhYmVsKHIsZS5tZXRhZGF0YSksaWNvbk5hbWU6ZS5pY29uTmFtZXx8dGhpcy5nZXREZWZhdWx0SWNvbihyKSx0eXBlOnIsY2xvc2VhYmxlOmUuY2xvc2VhYmxlPz9yIT09InNoZWxsIix0ZXJtaW5hbDpzLGZpdEFkZG9uOm4scHJvY2VzczpudWxsLGlucHV0V3JpdGVyOm51bGwsZXhpdGVkOiExLGV4aXRDb2RlOm51bGwsY3JlYXRlZEF0OkRhdGUubm93KCksbWV0YWRhdGE6ZS5tZXRhZGF0YX07cmV0dXJuIHRoaXMudGFicy5zZXQoaSxvKSxvfWdldFRhYihlKXtyZXR1cm4gdGhpcy50YWJzLmdldChlKX1nZXRBbGxUYWJzKCl7cmV0dXJuIEFycmF5LmZyb20odGhpcy50YWJzLnZhbHVlcygpKS5zb3J0KChlLGEpPT5lLmNyZWF0ZWRBdC1hLmNyZWF0ZWRBdCl9Z2V0VGFiQ291bnQoKXtyZXR1cm4gdGhpcy50YWJzLnNpemV9aGFzVGFiKGUpe3JldHVybiB0aGlzLnRhYnMuaGFzKGUpfWNsb3NlVGFiKGUpe2xldCBhPXRoaXMudGFicy5nZXQoZSk7aWYoIWEpcmV0dXJuITE7aWYoYS5wcm9jZXNzJiYhYS5leGl0ZWQpdHJ5e2EucHJvY2Vzcy5raWxsKCl9Y2F0Y2goaSl7Y29uc29sZS53YXJuKCJGYWlsZWQgdG8ga2lsbCBwcm9jZXNzOiIsaSl9dHJ5e2EudGVybWluYWwuZGlzcG9zZSgpfWNhdGNoKGkpe2NvbnNvbGUud2FybigiRmFpbGVkIHRvIGRpc3Bvc2UgdGVybWluYWw6IixpKX1yZXR1cm4gdGhpcy50YWJzLmRlbGV0ZShlKSwhMH1yZW5hbWVUYWIoZSxhKXtsZXQgaT10aGlzLnRhYnMuZ2V0KGUpO3JldHVybiBpPyhpLmxhYmVsPWEsITApOiExfW1hcmtUYWJFeGl0ZWQoZSxhKXtsZXQgaT10aGlzLnRhYnMuZ2V0KGUpO2kmJihpLmV4aXRlZD0hMCxpLmV4aXRDb2RlPWEpfXNldFRhYlByb2Nlc3MoZSxhLGkpe2xldCByPXRoaXMudGFicy5nZXQoZSk7ciYmKHIucHJvY2Vzcz1hLHIuaW5wdXRXcml0ZXI9aSl9dXBkYXRlQWxsVGhlbWVzKGUpe2xldCBhPXRoaXMuZ2V0VGVybWluYWxUaGVtZShlKTtmb3IobGV0IGkgb2YgdGhpcy50YWJzLnZhbHVlcygpKWkudGVybWluYWwub3B0aW9ucy50aGVtZT1hfWRpc3Bvc2VBbGwoKXtmb3IobGV0W2Vdb2YgdGhpcy50YWJzKXRoaXMuY2xvc2VUYWIoZSk7dGhpcy50YWJzLmNsZWFyKCl9fX0pO3ZhciBJeXQ9e307R2UoSXl0LHtEZWVzV29ya3NwYWNlVGVybWluYWw6KCk9PnlqfSk7dmFyIHlvLHhhLHlqLHRkPWIoKCk9Pnt1ZSgpO1R0KCk7cWUoKTt3dygpO0R0KCk7UXgoKTt2aigpO3VvKCk7eW89ZnVuY3Rpb24odCxlLGEsaSxyLHMpe2Z1bmN0aW9uIG4oeCl7aWYoeCE9PXZvaWQgMCYmdHlwZW9mIHghPSJmdW5jdGlvbiIpdGhyb3cgbmV3IFR5cGVFcnJvcigiRnVuY3Rpb24gZXhwZWN0ZWQiKTtyZXR1cm4geH1mb3IodmFyIG89aS5raW5kLGQ9bz09PSJnZXR0ZXIiPyJnZXQiOm89PT0ic2V0dGVyIj8ic2V0IjoidmFsdWUiLGM9IWUmJnQ/aS5zdGF0aWM/dDp0LnByb3RvdHlwZTpudWxsLGg9ZXx8KGM/T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihjLGkubmFtZSk6e30pLGwsZj0hMSxnPWEubGVuZ3RoLTE7Zz49MDtnLS0pe3ZhciB5PXt9O2Zvcih2YXIgdiBpbiBpKXlbdl09dj09PSJhY2Nlc3MiP3t9Omlbdl07Zm9yKHZhciB2IGluIGkuYWNjZXNzKXkuYWNjZXNzW3ZdPWkuYWNjZXNzW3ZdO3kuYWRkSW5pdGlhbGl6ZXI9ZnVuY3Rpb24oeCl7aWYoZil0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgYWRkIGluaXRpYWxpemVycyBhZnRlciBkZWNvcmF0aW9uIGhhcyBjb21wbGV0ZWQiKTtzLnB1c2gobih4fHxudWxsKSl9O3ZhciBtPSgwLGFbZ10pKG89PT0iYWNjZXNzb3IiP3tnZXQ6aC5nZXQsc2V0Omguc2V0fTpoW2RdLHkpO2lmKG89PT0iYWNjZXNzb3IiKXtpZihtPT09dm9pZCAwKWNvbnRpbnVlO2lmKG09PT1udWxsfHx0eXBlb2YgbSE9Im9iamVjdCIpdGhyb3cgbmV3IFR5cGVFcnJvcigiT2JqZWN0IGV4cGVjdGVkIik7KGw9bihtLmdldCkpJiYoaC5nZXQ9bCksKGw9bihtLnNldCkpJiYoaC5zZXQ9bCksKGw9bihtLmluaXQpKSYmci51bnNoaWZ0KGwpfWVsc2UobD1uKG0pKSYmKG89PT0iZmllbGQiP3IudW5zaGlmdChsKTpoW2RdPWwpfWMmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShjLGkubmFtZSxoKSxmPSEwfSx4YT1mdW5jdGlvbih0LGUsYSl7Zm9yKHZhciBpPWFyZ3VtZW50cy5sZW5ndGg+MixyPTA7cjxlLmxlbmd0aDtyKyspYT1pP2Vbcl0uY2FsbCh0LGEpOmVbcl0uY2FsbCh0KTtyZXR1cm4gaT9hOnZvaWQgMH0seWo9KCgpPT57bGV0IHQ9W3BlKCJkZWVzLXdvcmtzcGFjZS10ZXJtaW5hbCIpXSxlLGE9W10saSxyPXhlLHMsbj1bXSxvPVtdLGQsYz1bXSxoPVtdLGwsZj1bXSxnPVtdLHksdj1bXSxtPVtdLHgsTT1bXSxTPVtdLEYsXz1bXSxrPVtdLE4sTD1bXSxBPVtdO3ZhciBxPWNsYXNzIGV4dGVuZHMgcntzdGF0aWN7aT10aGlzfXN0YXRpY3tsZXQgQz10eXBlb2YgU3ltYm9sPT0iZnVuY3Rpb24iJiZTeW1ib2wubWV0YWRhdGE/T2JqZWN0LmNyZWF0ZShyW1N5bWJvbC5tZXRhZGF0YV0/P251bGwpOnZvaWQgMDtzPVtJKHt0eXBlOk9iamVjdH0pXSxkPVtJKCldLGw9W0koKV0seT1bSSh7dHlwZTpOdW1iZXJ9KV0seD1bSSh7dHlwZTpCb29sZWFufSldLEY9W0ooKV0sTj1bSigpXSx5byh0aGlzLG51bGwscyx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImV4ZWN1dGlvbkVudmlyb25tZW50IixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczp6PT4iZXhlY3V0aW9uRW52aXJvbm1lbnQiaW4geixnZXQ6ej0+ei5leGVjdXRpb25FbnZpcm9ubWVudCxzZXQ6KHosRSk9Pnt6LmV4ZWN1dGlvbkVudmlyb25tZW50PUV9fSxtZXRhZGF0YTpDfSxuLG8pLHlvKHRoaXMsbnVsbCxkLHtraW5kOiJhY2Nlc3NvciIsbmFtZToic2V0dXBDb21tYW5kIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczp6PT4ic2V0dXBDb21tYW5kImluIHosZ2V0Ono9Pnouc2V0dXBDb21tYW5kLHNldDooeixFKT0+e3ouc2V0dXBDb21tYW5kPUV9fSxtZXRhZGF0YTpDfSxjLGgpLHlvKHRoaXMsbnVsbCxsLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiZW52aXJvbm1lbnRWYXJpYWJsZXMiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOno9PiJlbnZpcm9ubWVudFZhcmlhYmxlcyJpbiB6LGdldDp6PT56LmVudmlyb25tZW50VmFyaWFibGVzLHNldDooeixFKT0+e3ouZW52aXJvbm1lbnRWYXJpYWJsZXM9RX19LG1ldGFkYXRhOkN9LGYsZykseW8odGhpcyxudWxsLHkse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJ0YWJCYXJXaWR0aCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6ej0+InRhYkJhcldpZHRoImluIHosZ2V0Ono9PnoudGFiQmFyV2lkdGgsc2V0Oih6LEUpPT57ei50YWJCYXJXaWR0aD1FfX0sbWV0YWRhdGE6Q30sdixtKSx5byh0aGlzLG51bGwseCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InNob3dUYWJCYXIiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOno9PiJzaG93VGFiQmFyImluIHosZ2V0Ono9Pnouc2hvd1RhYkJhcixzZXQ6KHosRSk9Pnt6LnNob3dUYWJCYXI9RX19LG1ldGFkYXRhOkN9LE0sUykseW8odGhpcyxudWxsLEYse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJ0YWJzIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczp6PT4idGFicyJpbiB6LGdldDp6PT56LnRhYnMsc2V0Oih6LEUpPT57ei50YWJzPUV9fSxtZXRhZGF0YTpDfSxfLGspLHlvKHRoaXMsbnVsbCxOLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiYWN0aXZlVGFiSWQiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOno9PiJhY3RpdmVUYWJJZCJpbiB6LGdldDp6PT56LmFjdGl2ZVRhYklkLHNldDooeixFKT0+e3ouYWN0aXZlVGFiSWQ9RX19LG1ldGFkYXRhOkN9LEwsQSkseW8obnVsbCxlPXt2YWx1ZTppfSx0LHtraW5kOiJjbGFzcyIsbmFtZTppLm5hbWUsbWV0YWRhdGE6Q30sbnVsbCxhKSxxPWk9ZS52YWx1ZSxDJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoaSxTeW1ib2wubWV0YWRhdGEse2VudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwLHZhbHVlOkN9KX1zdGF0aWMgZGVtbz0oKT0+e2xldCBDPW5ldyBtNDtyZXR1cm4gd2A8ZGVlcy13b3Jrc3BhY2UtdGVybWluYWwgLmV4ZWN1dGlvbkVudmlyb25tZW50PSR7Q30+PC9kZWVzLXdvcmtzcGFjZS10ZXJtaW5hbD5gfTtzdGF0aWMgZGVtb0dyb3Vwcz1bIldvcmtzcGFjZSJdO3Jlc2l6ZU9ic2VydmVyO3RhYk1hbmFnZXI7I2U9eGEodGhpcyxuLG51bGwpO2dldCBleGVjdXRpb25FbnZpcm9ubWVudCgpe3JldHVybiB0aGlzLiNlfXNldCBleGVjdXRpb25FbnZpcm9ubWVudChDKXt0aGlzLiNlPUN9I3Q9KHhhKHRoaXMsbykseGEodGhpcyxjLCIiKSk7Z2V0IHNldHVwQ29tbWFuZCgpe3JldHVybiB0aGlzLiN0fXNldCBzZXR1cENvbW1hbmQoQyl7dGhpcy4jdD1DfSNhPSh4YSh0aGlzLGgpLHhhKHRoaXMsZix7fSkpO2dldCBlbnZpcm9ubWVudFZhcmlhYmxlcygpe3JldHVybiB0aGlzLiNhfXNldCBlbnZpcm9ubWVudFZhcmlhYmxlcyhDKXt0aGlzLiNhPUN9I2k9KHhhKHRoaXMsZykseGEodGhpcyx2LDE2MCkpO2dldCB0YWJCYXJXaWR0aCgpe3JldHVybiB0aGlzLiNpfXNldCB0YWJCYXJXaWR0aChDKXt0aGlzLiNpPUN9I3I9KHhhKHRoaXMsbSkseGEodGhpcyxNLCEwKSk7Z2V0IHNob3dUYWJCYXIoKXtyZXR1cm4gdGhpcy4jcn1zZXQgc2hvd1RhYkJhcihDKXt0aGlzLiNyPUN9I3M9KHhhKHRoaXMsUykseGEodGhpcyxfLFtdKSk7Z2V0IHRhYnMoKXtyZXR1cm4gdGhpcy4jc31zZXQgdGFicyhDKXt0aGlzLiNzPUN9I249KHhhKHRoaXMsaykseGEodGhpcyxMLG51bGwpKTtnZXQgYWN0aXZlVGFiSWQoKXtyZXR1cm4gdGhpcy4jbn1zZXQgYWN0aXZlVGFiSWQoQyl7dGhpcy4jbj1DfXRlcm1pbmFsVGhlbWVTdWJzY3JpcHRpb249KHhhKHRoaXMsQSksbnVsbCk7aXNCcmlnaHQ9ITE7dGVybWluYWxBY3Rpb25iYXI9bnVsbDtlbnZpcm9ubWVudERlZmVycmVkPW5ldyBNdC5zbWFydHByb21pc2UuRGVmZXJyZWQ7ZW52aXJvbm1lbnRQcm9taXNlPXRoaXMuZW52aXJvbm1lbnREZWZlcnJlZC5wcm9taXNlO2NvbnN0cnVjdG9yKCl7c3VwZXIoKSx0aGlzLnRhYk1hbmFnZXI9bmV3IGVkLHRoaXMucmVzaXplT2JzZXJ2ZXI9bmV3IFJlc2l6ZU9ic2VydmVyKCgpPT57dGhpcy5oYW5kbGVSZXNpemUoKX0pfXN0YXRpYyBzdHlsZXM9W0NlLHAuZGVmYXVsdFN0eWxlcyxRYAogICAgICA6aG9zdCB7CiAgICAgICAgYmFja2dyb3VuZDogJHtwLmJkVGhlbWUoIiNmZmZmZmYiLCIjMDAwMDAwIil9OwogICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgICBoZWlnaHQ6IDEwMCU7CiAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93OwogICAgICB9CgogICAgICAqIHsKICAgICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94OwogICAgICB9CgogICAgICAudGVybWluYWwtY29udGFpbmVyIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7CiAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgICAgaGVpZ2h0OiAxMDAlOwogICAgICB9CgogICAgICAudGVybWluYWwtY29udGVudCB7CiAgICAgICAgZmxleDogMTsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgICAgICBiYWNrZ3JvdW5kOiAke3AuYmRUaGVtZSgiI2ZmZmZmZiIsIiMwMDAwMDAiKX07CiAgICAgIH0KCiAgICAgICNhY3RpdmUtdGVybWluYWwtY29udGFpbmVyIHsKICAgICAgICBmbGV4OiAxOwogICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgICBtaW4taGVpZ2h0OiAwOwogICAgICAgIG1hcmdpbjogMjBweDsKICAgICAgfQoKICAgICAgLnRlcm1pbmFsLWNvbnRlbnQgZGVlcy1hY3Rpb25iYXIgewogICAgICAgIGZsZXgtc2hyaW5rOiAwOwogICAgICB9CgogICAgICAvKiBUYWIgYmFyIG9uIHRoZSByaWdodCBzaWRlICovCiAgICAgIC50YWItYmFyIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgICAgYmFja2dyb3VuZDogJHtwLmJkVGhlbWUoImhzbCgwIDAlIDk2JSkiLCJoc2woMCAwJSA3JSkiKX07CiAgICAgICAgYm9yZGVyLWxlZnQ6IDFweCBzb2xpZCAke3AuYmRUaGVtZSgiaHNsKDAgMCUgODUlKSIsImhzbCgwIDAlIDE1JSkiKX07CiAgICAgICAgZmxleC1zaHJpbms6IDA7CiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgICAgfQoKICAgICAgLnRhYi1iYXItaGVhZGVyIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuOwogICAgICAgIHBhZGRpbmc6IDhweCAxMHB4OwogICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAke3AuYmRUaGVtZSgiaHNsKDAgMCUgODglKSIsImhzbCgwIDAlIDEyJSkiKX07CiAgICAgICAgZm9udC1zaXplOiAxMXB4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7CiAgICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTsKICAgICAgICBsZXR0ZXItc3BhY2luZzogMC41cHg7CiAgICAgICAgY29sb3I6ICR7cC5iZFRoZW1lKCJoc2woMCAwJSA0NSUpIiwiaHNsKDAgMCUgNTUlKSIpfTsKICAgICAgfQoKICAgICAgLnRhYi1iYXItdGl0bGUgewogICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7CiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpczsKICAgICAgfQoKICAgICAgLnRhYi1iYXItYWN0aW9ucyB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBnYXA6IDJweDsKICAgICAgfQoKICAgICAgLnRhYi1hY3Rpb24gewogICAgICAgIHdpZHRoOiAyMnB4OwogICAgICAgIGhlaWdodDogMjJweDsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7CiAgICAgICAgYm9yZGVyLXJhZGl1czogNHB4OwogICAgICAgIGN1cnNvcjogcG9pbnRlcjsKICAgICAgICBjb2xvcjogJHtwLmJkVGhlbWUoImhzbCgwIDAlIDUwJSkiLCJoc2woMCAwJSA2MCUpIil9OwogICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjE1cyBlYXNlOwogICAgICB9CgogICAgICAudGFiLWFjdGlvbjpob3ZlciB7CiAgICAgICAgYmFja2dyb3VuZDogJHtwLmJkVGhlbWUoImhzbCgwIDAlIDg4JSkiLCJoc2woMCAwJSAxNSUpIil9OwogICAgICAgIGNvbG9yOiAke3AuYmRUaGVtZSgiaHNsKDAgMCUgMzAlKSIsImhzbCgwIDAlIDgwJSkiKX07CiAgICAgIH0KCiAgICAgIC50YWItbGlzdCB7CiAgICAgICAgZmxleDogMTsKICAgICAgICBvdmVyZmxvdy15OiBhdXRvOwogICAgICAgIHBhZGRpbmc6IDRweDsKICAgICAgfQoKICAgICAgLnRlcm1pbmFsLXRhYiB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGdhcDogOHB4OwogICAgICAgIHBhZGRpbmc6IDhweCAxMHB4OwogICAgICAgIG1hcmdpbi1ib3R0b206IDJweDsKICAgICAgICBib3JkZXItcmFkaXVzOiA2cHg7CiAgICAgICAgY3Vyc29yOiBwb2ludGVyOwogICAgICAgIGZvbnQtc2l6ZTogMTJweDsKICAgICAgICBjb2xvcjogJHtwLmJkVGhlbWUoImhzbCgwIDAlIDQ1JSkiLCJoc2woMCAwJSA2MCUpIil9OwogICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjE1cyBlYXNlOwogICAgICB9CgogICAgICAudGVybWluYWwtdGFiOmhvdmVyIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke3AuYmRUaGVtZSgiaHNsKDAgMCUgOTAlKSIsImhzbCgwIDAlIDEyJSkiKX07CiAgICAgICAgY29sb3I6ICR7cC5iZFRoZW1lKCJoc2woMCAwJSAyNSUpIiwiaHNsKDAgMCUgODAlKSIpfTsKICAgICAgfQoKICAgICAgLnRlcm1pbmFsLXRhYi5hY3RpdmUgewogICAgICAgIGJhY2tncm91bmQ6ICR7cC5iZFRoZW1lKCJoc2woMjEwIDEwMCUgOTUlKSIsImhzbCgyMTAgMzAlIDE1JSkiKX07CiAgICAgICAgY29sb3I6ICR7cC5iZFRoZW1lKCJoc2woMjEwIDEwMCUgNDAlKSIsImhzbCgyMTAgMTAwJSA3MCUpIil9OwogICAgICB9CgogICAgICAudGVybWluYWwtdGFiLmV4aXRlZCB7CiAgICAgICAgb3BhY2l0eTogMC43OwogICAgICB9CgogICAgICAudGFiLWljb24gewogICAgICAgIGZsZXgtc2hyaW5rOiAwOwogICAgICB9CgogICAgICAudGFiLWljb24ucnVubmluZyB7CiAgICAgICAgY29sb3I6ICR7cC5iZFRoZW1lKCJoc2woMTQyIDcwJSA0MCUpIiwiaHNsKDE0MiA3MCUgNTUlKSIpfTsKICAgICAgfQoKICAgICAgLnRhYi1sYWJlbCB7CiAgICAgICAgZmxleDogMTsKICAgICAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzOwogICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7CiAgICAgIH0KCiAgICAgIC5leGl0LWJhZGdlIHsKICAgICAgICBmb250LXNpemU6IDEwcHg7CiAgICAgICAgcGFkZGluZzogMXB4IDVweDsKICAgICAgICBib3JkZXItcmFkaXVzOiA4cHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDsKICAgICAgICBmbGV4LXNocmluazogMDsKICAgICAgfQoKICAgICAgLmV4aXQtYmFkZ2Uuc3VjY2VzcyB7CiAgICAgICAgYmFja2dyb3VuZDogJHtwLmJkVGhlbWUoImhzbCgxNDIgNzAlIDkwJSkiLCJoc2woMTQyIDMwJSAyMCUpIil9OwogICAgICAgIGNvbG9yOiAke3AuYmRUaGVtZSgiaHNsKDE0MiA3MCUgMzUlKSIsImhzbCgxNDIgNzAlIDYwJSkiKX07CiAgICAgIH0KCiAgICAgIC5leGl0LWJhZGdlLmVycm9yIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke3AuYmRUaGVtZSgiaHNsKDAgNzAlIDkzJSkiLCJoc2woMCAzMCUgMjAlKSIpfTsKICAgICAgICBjb2xvcjogJHtwLmJkVGhlbWUoImhzbCgwIDcwJSA0NSUpIiwiaHNsKDAgNzAlIDYwJSkiKX07CiAgICAgIH0KCiAgICAgIC50YWItY2xvc2UgewogICAgICAgIHdpZHRoOiAxOHB4OwogICAgICAgIGhlaWdodDogMThweDsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7CiAgICAgICAgYm9yZGVyLXJhZGl1czogNHB4OwogICAgICAgIG9wYWNpdHk6IDA7CiAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuMTVzIGVhc2U7CiAgICAgICAgZmxleC1zaHJpbms6IDA7CiAgICAgIH0KCiAgICAgIC50ZXJtaW5hbC10YWI6aG92ZXIgLnRhYi1jbG9zZSB7CiAgICAgICAgb3BhY2l0eTogMC42OwogICAgICB9CgogICAgICAudGFiLWNsb3NlOmhvdmVyIHsKICAgICAgICBvcGFjaXR5OiAxICFpbXBvcnRhbnQ7CiAgICAgICAgYmFja2dyb3VuZDogJHtwLmJkVGhlbWUoImhzbCgwIDAlIDg1JSkiLCJoc2woMCAwJSAyNSUpIil9OwogICAgICAgIGNvbG9yOiAke3AuYmRUaGVtZSgiaHNsKDAgNzAlIDUwJSkiLCJoc2woMCA3MCUgNjAlKSIpfTsKICAgICAgfQoKICAgICAgLmVtcHR5LXN0YXRlIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKICAgICAgICBoZWlnaHQ6IDEwMCU7CiAgICAgICAgY29sb3I6ICR7cC5iZFRoZW1lKCJoc2woMCAwJSA1MCUpIiwiaHNsKDAgMCUgNTAlKSIpfTsKICAgICAgICBmb250LXNpemU6IDEzcHg7CiAgICAgICAgZ2FwOiA4cHg7CiAgICAgIH0KCiAgICAgIC8qIHh0ZXJtLmpzIHN0eWxlcyAqLwogICAgICAueHRlcm0gewogICAgICAgIGZvbnQtZmVhdHVyZS1zZXR0aW5nczogJ2xpZ2EnIDA7CiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICAgIHVzZXItc2VsZWN0OiBub25lOwogICAgICAgIC1tcy11c2VyLXNlbGVjdDogbm9uZTsKICAgICAgICAtd2Via2l0LXVzZXItc2VsZWN0OiBub25lOwogICAgICB9CgogICAgICAueHRlcm0uZm9jdXMsCiAgICAgIC54dGVybTpmb2N1cyB7CiAgICAgICAgb3V0bGluZTogbm9uZTsKICAgICAgfQoKICAgICAgLnh0ZXJtIC54dGVybS1oZWxwZXJzIHsKICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgICAgdG9wOiAwOwogICAgICAgIHotaW5kZXg6IDU7CiAgICAgIH0KCiAgICAgIC54dGVybSAueHRlcm0taGVscGVyLXRleHRhcmVhIHsKICAgICAgICBwYWRkaW5nOiAwOwogICAgICAgIGJvcmRlcjogMDsKICAgICAgICBtYXJnaW46IDA7CiAgICAgICAgcG9zaXRpb246IGFic29sdXRlOwogICAgICAgIG9wYWNpdHk6IDA7CiAgICAgICAgbGVmdDogLTk5OTllbTsKICAgICAgICB0b3A6IDA7CiAgICAgICAgd2lkdGg6IDA7CiAgICAgICAgaGVpZ2h0OiAwOwogICAgICAgIHotaW5kZXg6IC01OwogICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7CiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgICAgICByZXNpemU6IG5vbmU7CiAgICAgIH0KCiAgICAgIC54dGVybSAuY29tcG9zaXRpb24tdmlldyB7CiAgICAgICAgYmFja2dyb3VuZDogJHtwLmJkVGhlbWUoIiNmZmZmZmYiLCIjMDAwMDAwIil9OwogICAgICAgIGNvbG9yOiAke3AuYmRUaGVtZSgiIzMzMzMzMyIsIiNmZmZmZmYiKX07CiAgICAgICAgZGlzcGxheTogbm9uZTsKICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDsKICAgICAgICB6LWluZGV4OiAxOwogICAgICB9CgogICAgICAueHRlcm0gLmNvbXBvc2l0aW9uLXZpZXcuYWN0aXZlIHsKICAgICAgICBkaXNwbGF5OiBibG9jazsKICAgICAgfQoKICAgICAgLnh0ZXJtIC54dGVybS12aWV3cG9ydCB7CiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHtwLmJkVGhlbWUoIiNmZmZmZmYiLCIjMDAwMDAwIil9OwogICAgICAgIG92ZXJmbG93LXk6IHNjcm9sbDsKICAgICAgICBjdXJzb3I6IGRlZmF1bHQ7CiAgICAgICAgcG9zaXRpb246IGFic29sdXRlOwogICAgICAgIHJpZ2h0OiAwOwogICAgICAgIGxlZnQ6IDA7CiAgICAgICAgdG9wOiAwOwogICAgICAgIGJvdHRvbTogMDsKICAgICAgfQoKICAgICAgLnh0ZXJtIC54dGVybS1zY3JlZW4gewogICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgfQoKICAgICAgLnh0ZXJtIC54dGVybS1zY3JlZW4gY2FudmFzIHsKICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgICAgbGVmdDogMDsKICAgICAgICB0b3A6IDA7CiAgICAgIH0KCiAgICAgIC54dGVybSAueHRlcm0tc2Nyb2xsLWFyZWEgewogICAgICAgIHZpc2liaWxpdHk6IGhpZGRlbjsKICAgICAgfQoKICAgICAgLnh0ZXJtLWNoYXItbWVhc3VyZS1lbGVtZW50IHsKICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7CiAgICAgICAgdmlzaWJpbGl0eTogaGlkZGVuOwogICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgICB0b3A6IDA7CiAgICAgICAgbGVmdDogLTk5OTllbTsKICAgICAgICBsaW5lLWhlaWdodDogbm9ybWFsOwogICAgICB9CgogICAgICAueHRlcm0gewogICAgICAgIGN1cnNvcjogdGV4dDsKICAgICAgfQoKICAgICAgLnh0ZXJtLmVuYWJsZS1tb3VzZS1ldmVudHMgewogICAgICAgIGN1cnNvcjogZGVmYXVsdDsKICAgICAgfQoKICAgICAgLnh0ZXJtLnh0ZXJtLWN1cnNvci1wb2ludGVyIHsKICAgICAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICAgIH0KCiAgICAgIC54dGVybS5jb2x1bW4tc2VsZWN0LmZvY3VzIHsKICAgICAgICBjdXJzb3I6IGNyb3NzaGFpcjsKICAgICAgfQoKICAgICAgLnh0ZXJtIC54dGVybS1hY2Nlc3NpYmlsaXR5LAogICAgICAueHRlcm0gLnh0ZXJtLW1lc3NhZ2UgewogICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgICBsZWZ0OiAwOwogICAgICAgIHRvcDogMDsKICAgICAgICBib3R0b206IDA7CiAgICAgICAgcmlnaHQ6IDA7CiAgICAgICAgei1pbmRleDogMTA7CiAgICAgICAgY29sb3I6IHRyYW5zcGFyZW50OwogICAgICB9CgogICAgICAueHRlcm0gLmxpdmUtcmVnaW9uIHsKICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgICAgbGVmdDogLTk5OTlweDsKICAgICAgICB3aWR0aDogMXB4OwogICAgICAgIGhlaWdodDogMXB4OwogICAgICAgIG92ZXJmbG93OiBoaWRkZW47CiAgICAgIH0KCiAgICAgIC54dGVybS1kaW0gewogICAgICAgIG9wYWNpdHk6IDAuNTsKICAgICAgfQoKICAgICAgLnh0ZXJtLXVuZGVybGluZSB7CiAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7CiAgICAgIH0KICAgIGBdO3JlbmRlcigpe2xldCBDPXRoaXMuYWN0aXZlVGFiSWQ/dGhpcy50YWJNYW5hZ2VyLmdldFRhYih0aGlzLmFjdGl2ZVRhYklkKTpudWxsO3JldHVybiB3YAogICAgICA8ZGl2IGNsYXNzPSJ0ZXJtaW5hbC1jb250YWluZXIiPgogICAgICAgIDwhLS0gTWFpbiB0ZXJtaW5hbCBhcmVhIC0tPgogICAgICAgIDxkaXYgY2xhc3M9InRlcm1pbmFsLWNvbnRlbnQiPgogICAgICAgICAgJHtDP3dgCiAgICAgICAgICAgIDxkaXYgaWQ9ImFjdGl2ZS10ZXJtaW5hbC1jb250YWluZXIiPjwvZGl2PgogICAgICAgICAgYDp3YAogICAgICAgICAgICA8ZGl2IGNsYXNzPSJlbXB0eS1zdGF0ZSI+CiAgICAgICAgICAgICAgPGRlZXMtaWNvbiAuaWNvbj0keyJsdWNpZGU6dGVybWluYWwifSBpY29uU2l6ZT0iMzIiPjwvZGVlcy1pY29uPgogICAgICAgICAgICAgIDxzcGFuPk5vIHRlcm1pbmFsIG9wZW48L3NwYW4+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgYH0KICAgICAgICAgIDxkZWVzLWFjdGlvbmJhcj48L2RlZXMtYWN0aW9uYmFyPgogICAgICAgIDwvZGl2PgoKICAgICAgICA8IS0tIFZlcnRpY2FsIHRhYiBiYXIgb24gdGhlIHJpZ2h0IC0tPgogICAgICAgICR7dGhpcy5zaG93VGFiQmFyP3dgCiAgICAgICAgICA8ZGl2IGNsYXNzPSJ0YWItYmFyIiBzdHlsZT0id2lkdGg6ICR7dGhpcy50YWJCYXJXaWR0aH1weCI+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9InRhYi1iYXItaGVhZGVyIj4KICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0idGFiLWJhci10aXRsZSI+VGVybWluYWxzPC9zcGFuPgogICAgICAgICAgICAgIDxkaXYgY2xhc3M9InRhYi1iYXItYWN0aW9ucyI+CiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJ0YWItYWN0aW9uIiBAY2xpY2s9JHt0aGlzLmhhbmRsZUFkZFRhYn0gdGl0bGU9Ik5ldyBUZXJtaW5hbCI+CiAgICAgICAgICAgICAgICAgIDxkZWVzLWljb24gLmljb249JHsibHVjaWRlOnBsdXMifSBpY29uU2l6ZT0iMTQiPjwvZGVlcy1pY29uPgogICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDwvZGl2PgoKICAgICAgICAgICAgPGRpdiBjbGFzcz0idGFiLWxpc3QiPgogICAgICAgICAgICAgICR7dGhpcy50YWJzLm1hcCh6PT53YAogICAgICAgICAgICAgICAgPGRpdgogICAgICAgICAgICAgICAgICBjbGFzcz0idGVybWluYWwtdGFiICR7ei5pZD09PXRoaXMuYWN0aXZlVGFiSWQ/ImFjdGl2ZSI6IiJ9ICR7ei5leGl0ZWQ/ImV4aXRlZCI6IiJ9IgogICAgICAgICAgICAgICAgICBAY2xpY2s9JHsoKT0+dGhpcy5zd2l0Y2hUb1RhYih6LmlkKX0KICAgICAgICAgICAgICAgID4KICAgICAgICAgICAgICAgICAgPGRlZXMtaWNvbgogICAgICAgICAgICAgICAgICAgIC5pY29uPSR7ei5pY29uTmFtZX0KICAgICAgICAgICAgICAgICAgICBpY29uU2l6ZT0iMTQiCiAgICAgICAgICAgICAgICAgICAgY2xhc3M9InRhYi1pY29uICR7ei5wcm9jZXNzJiYhei5leGl0ZWQ/InJ1bm5pbmciOiIifSIKICAgICAgICAgICAgICAgICAgPjwvZGVlcy1pY29uPgogICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0idGFiLWxhYmVsIj4ke3oubGFiZWx9PC9zcGFuPgogICAgICAgICAgICAgICAgICAke3ouZXhpdGVkP3dgCiAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImV4aXQtYmFkZ2UgJHt6LmV4aXRDb2RlPT09MD8ic3VjY2VzcyI6ImVycm9yIn0iPgogICAgICAgICAgICAgICAgICAgICAgJHt6LmV4aXRDb2RlfQogICAgICAgICAgICAgICAgICAgIDwvc3Bhbj4KICAgICAgICAgICAgICAgICAgYDoiIn0KICAgICAgICAgICAgICAgICAgJHt6LmNsb3NlYWJsZT93YAogICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJ0YWItY2xvc2UiIEBjbGljaz0ke0U9PnRoaXMuaGFuZGxlVGFiQ2xvc2UoRSx6LmlkKX0+CiAgICAgICAgICAgICAgICAgICAgICA8ZGVlcy1pY29uIC5pY29uPSR7Imx1Y2lkZTp4In0gaWNvblNpemU9IjEyIj48L2RlZXMtaWNvbj4KICAgICAgICAgICAgICAgICAgICA8L3NwYW4+CiAgICAgICAgICAgICAgICAgIGA6IiJ9CiAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICBgKX0KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICBgOiIifQogICAgICA8L2Rpdj4KICAgIGB9YXN5bmMgZmlyc3RVcGRhdGVkKCl7bGV0IEM9YXdhaXQgdGhpcy5kb210b29sc1Byb21pc2U7dGhpcy5pc0JyaWdodD1DLnRoZW1lTWFuYWdlci5nb0JyaWdodEJvb2xlYW4sdGhpcy50ZXJtaW5hbFRoZW1lU3Vic2NyaXB0aW9uPUMudGhlbWVNYW5hZ2VyLnRoZW1lT2JzZXJ2YWJsZS5zdWJzY3JpYmUoJD0+e3RoaXMuaXNCcmlnaHQ9JCx0aGlzLnRhYk1hbmFnZXIudXBkYXRlQWxsVGhlbWVzKCQpfSk7bGV0IHo9TDIuZ2V0SW5zdGFuY2UoKSxbRSxUXT1hd2FpdCBQcm9taXNlLmFsbChbei5sb2FkWHRlcm0oKSx6LmxvYWRYdGVybUZpdEFkZG9uKCldKTt0aGlzLnRhYk1hbmFnZXIuc2V0WHRlcm1Nb2R1bGVzKEUsVCksYXdhaXQgdGhpcy5jcmVhdGVTaGVsbFRhYigpfWFzeW5jIGNvbm5lY3RlZENhbGxiYWNrKCl7YXdhaXQgc3VwZXIuY29ubmVjdGVkQ2FsbGJhY2soKX1hc3luYyBkaXNjb25uZWN0ZWRDYWxsYmFjaygpe2xldCBDPXRoaXMuc2hhZG93Um9vdD8uZ2V0RWxlbWVudEJ5SWQoImFjdGl2ZS10ZXJtaW5hbC1jb250YWluZXIiKTtDJiZ0aGlzLnJlc2l6ZU9ic2VydmVyLnVub2JzZXJ2ZShDKSx0aGlzLnRlcm1pbmFsVGhlbWVTdWJzY3JpcHRpb24mJih0aGlzLnRlcm1pbmFsVGhlbWVTdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKSx0aGlzLnRlcm1pbmFsVGhlbWVTdWJzY3JpcHRpb249bnVsbCksdGhpcy50YWJNYW5hZ2VyLmRpc3Bvc2VBbGwoKSxhd2FpdCBzdXBlci5kaXNjb25uZWN0ZWRDYWxsYmFjaygpfWFzeW5jIGhhbmRsZUFkZFRhYigpe2F3YWl0IHRoaXMuY3JlYXRlU2hlbGxUYWIoKX1oYW5kbGVUYWJDbG9zZShDLHope0Muc3RvcFByb3BhZ2F0aW9uKCksdGhpcy5jbG9zZVRhYih6KX1zd2l0Y2hUb1RhYihDKXtpZihDPT09dGhpcy5hY3RpdmVUYWJJZClyZXR1cm47bGV0IHo9dGhpcy50YWJNYW5hZ2VyLmdldFRhYihDKTtpZigheilyZXR1cm47bGV0IEU9dGhpcy5hY3RpdmVUYWJJZDt0aGlzLmFjdGl2ZVRhYklkJiZ0aGlzLmRldGFjaEFjdGl2ZVRlcm1pbmFsKCksdGhpcy5hY3RpdmVUYWJJZD1DLHRoaXMudGFicz10aGlzLnRhYk1hbmFnZXIuZ2V0QWxsVGFicygpLHRoaXMudXBkYXRlQ29tcGxldGUudGhlbigoKT0+e3RoaXMuYXR0YWNoVGVybWluYWxUb0NvbnRhaW5lcih6KSx0aGlzLmRpc3BhdGNoRXZlbnQobmV3IEN1c3RvbUV2ZW50KCJ0YWItc3dpdGNoZWQiLHtidWJibGVzOiEwLGNvbXBvc2VkOiEwLGRldGFpbDp7dGFiSWQ6QyxwcmV2aW91c1RhYklkOkV9fSkpfSl9ZGV0YWNoQWN0aXZlVGVybWluYWwoKXtsZXQgQz10aGlzLnNoYWRvd1Jvb3Q/LmdldEVsZW1lbnRCeUlkKCJhY3RpdmUtdGVybWluYWwtY29udGFpbmVyIik7QyYmKEMuaW5uZXJIVE1MPSIiKX1hdHRhY2hUZXJtaW5hbFRvQ29udGFpbmVyKEMpe2xldCB6PXRoaXMuc2hhZG93Um9vdD8uZ2V0RWxlbWVudEJ5SWQoImFjdGl2ZS10ZXJtaW5hbC1jb250YWluZXIiKTt6JiYodGhpcy5yZXNpemVPYnNlcnZlci5vYnNlcnZlKHopLHouaW5uZXJIVE1MPSIiLEMudGVybWluYWwub3Blbih6KSxDLmZpdEFkZG9uLmZpdCgpLEMudGVybWluYWwuZm9jdXMoKSl9aGFuZGxlUmVzaXplKCl7aWYodGhpcy5hY3RpdmVUYWJJZCl7bGV0IEM9dGhpcy50YWJNYW5hZ2VyLmdldFRhYih0aGlzLmFjdGl2ZVRhYklkKTtDJiZDLmZpdEFkZG9uLmZpdCgpfX1hc3luYyBzcGF3blByb2Nlc3NGb3JUYWIoQyx6LEU9W10pe2lmKCF0aGlzLmV4ZWN1dGlvbkVudmlyb25tZW50KXtDLnRlcm1pbmFsLndyaXRlKCJceDFCWzMxbSIpLEMudGVybWluYWwud3JpdGUoYFx1Mjc0QyBObyBleGVjdXRpb24gZW52aXJvbm1lbnQgYXZhaWxhYmxlLlxyCmApLEMudGVybWluYWwud3JpdGUoIlx4MUJbMG0iKTtyZXR1cm59dHJ5e3RoaXMuZXhlY3V0aW9uRW52aXJvbm1lbnQucmVhZHl8fChDLnRlcm1pbmFsLndyaXRlKGBJbml0aWFsaXppbmcgZW52aXJvbm1lbnQuLi5ccgpgKSxhd2FpdCB0aGlzLmV4ZWN1dGlvbkVudmlyb25tZW50LmluaXQoKSk7bGV0IFQ9YXdhaXQgdGhpcy5leGVjdXRpb25FbnZpcm9ubWVudC5zcGF3bih6LEUpO1Qub3V0cHV0LnBpcGVUbyhuZXcgV3JpdGFibGVTdHJlYW0oe3dyaXRlOlY9PntDLnRlcm1pbmFsLndyaXRlKFYpfX0pKTtsZXQgJD1ULmlucHV0LmdldFdyaXRlcigpO0MudGVybWluYWwub25EYXRhKFY9PnskLndyaXRlKFYpfSksdGhpcy50YWJNYW5hZ2VyLnNldFRhYlByb2Nlc3MoQy5pZCxULCQpLHRoaXMudGFicz10aGlzLnRhYk1hbmFnZXIuZ2V0QWxsVGFicygpLFQuZXhpdC50aGVuKFY9Pnt0aGlzLmhhbmRsZVByb2Nlc3NFeGl0KEMuaWQsVil9KX1jYXRjaChUKXtDLnRlcm1pbmFsLndyaXRlKCJceDFCWzMxbSIpLEMudGVybWluYWwud3JpdGUoYFx1Mjc0QyBGYWlsZWQgdG8gc3Bhd24gcHJvY2VzczogJHtUfVxyCmApLEMudGVybWluYWwud3JpdGUoIlx4MUJbMG0iKSxjb25zb2xlLmVycm9yKCJGYWlsZWQgdG8gc3Bhd24gcHJvY2VzczoiLFQpfX1oYW5kbGVQcm9jZXNzRXhpdChDLHope2xldCBFPXRoaXMudGFiTWFuYWdlci5nZXRUYWIoQyk7aWYoIUUpcmV0dXJuO3RoaXMudGFiTWFuYWdlci5tYXJrVGFiRXhpdGVkKEMseik7bGV0IFQ9ej09PTA/YFxyClx4MUJbMzJtW1Byb2Nlc3MgY29tcGxldGVkIHN1Y2Nlc3NmdWxseV1ceDFCWzBtXHIKYDpgXHIKXHgxQlszMW1bUHJvY2VzcyBleGl0ZWQgd2l0aCBjb2RlICR7en1dXHgxQlswbVxyCmA7RS50ZXJtaW5hbC53cml0ZShUKSx0aGlzLnRhYnM9dGhpcy50YWJNYW5hZ2VyLmdldEFsbFRhYnMoKSx0aGlzLmRpc3BhdGNoRXZlbnQobmV3IEN1c3RvbUV2ZW50KCJwcm9jZXNzLWNvbXBsZXRlIix7YnViYmxlczohMCxjb21wb3NlZDohMCxkZXRhaWw6e3RhYklkOkMsZXhpdENvZGU6en19KSksRS5jbG9zZWFibGUmJnRoaXMuc2hvd0V4aXRlZFRhYkFjdGlvbmJhcihDLEUubGFiZWwseil9YXN5bmMgc2hvd0V4aXRlZFRhYkFjdGlvbmJhcihDLHosRSl7bGV0IFQ9RT09PTA7KGF3YWl0IHRoaXMuc2hvd0FjdGlvbmJhcih7bWVzc2FnZTpUP2AiJHt6fSIgY29tcGxldGVkLiBDbG9zZSB0YWI/YDpgIiR7en0iIGV4aXRlZCAoY29kZSAke0V9KS4gQ2xvc2UgdGFiP2AsdHlwZTpUPyJpbmZvIjoid2FybmluZyIsaWNvbjpUPyJsdWNpZGU6Y2hlY2tDaXJjbGUiOiJsdWNpZGU6YWxlcnRUcmlhbmdsZSIsYWN0aW9uczpbe2lkOiJjbG9zZSIsbGFiZWw6IkNsb3NlIFRhYiIscHJpbWFyeTohMH0se2lkOiJrZWVwIixsYWJlbDoiS2VlcCBPcGVuIn1dLHRpbWVvdXQ6e2R1cmF0aW9uOjFlNCxkZWZhdWx0QWN0aW9uSWQ6ImNsb3NlIn0sZGlzbWlzc2libGU6ITB9KSkuYWN0aW9uSWQ9PT0iY2xvc2UiJiZ0aGlzLmNsb3NlVGFiKEMpfWFzeW5jIGNyZWF0ZVNoZWxsVGFiKEMpe2xldCB6PXRoaXMudGFiTWFuYWdlci5jcmVhdGVUYWIoe3R5cGU6InNoZWxsIixsYWJlbDpDfHxgYmFzaCAke3RoaXMudGFiTWFuYWdlci5nZXRUYWJDb3VudCgpKzF9YCxjbG9zZWFibGU6dGhpcy50YWJNYW5hZ2VyLmdldFRhYkNvdW50KCk+MH0sdGhpcy5pc0JyaWdodCk7cmV0dXJuIHRoaXMudGFicz10aGlzLnRhYk1hbmFnZXIuZ2V0QWxsVGFicygpLHRoaXMuc3dpdGNoVG9UYWIoei5pZCksYXdhaXQgdGhpcy51cGRhdGVDb21wbGV0ZSxhd2FpdCB0aGlzLnNwYXduUHJvY2Vzc0ZvclRhYih6LCJqc2giKSx0aGlzLnRhYk1hbmFnZXIuZ2V0VGFiQ291bnQoKT09PTEmJnRoaXMuc2V0dXBDb21tYW5kJiYoYXdhaXQgdGhpcy53YWl0Rm9yUHJvbXB0KHoudGVybWluYWwsIn4vIiksei5pbnB1dFdyaXRlciYmei5pbnB1dFdyaXRlci53cml0ZSh0aGlzLnNldHVwQ29tbWFuZCkpLHRoaXMuZGlzcGF0Y2hFdmVudChuZXcgQ3VzdG9tRXZlbnQoInRhYi1jcmVhdGVkIix7YnViYmxlczohMCxjb21wb3NlZDohMCxkZXRhaWw6e3RhYklkOnouaWR9fSkpLHouaWR9YXN5bmMgY3JlYXRlUHJvY2Vzc1RhYihDKXtsZXQgej10aGlzLnRhYk1hbmFnZXIuY3JlYXRlVGFiKEMsdGhpcy5pc0JyaWdodCk7cmV0dXJuIHRoaXMudGFicz10aGlzLnRhYk1hbmFnZXIuZ2V0QWxsVGFicygpLEMuc3dpdGNoVG9UYWIhPT0hMSYmdGhpcy5zd2l0Y2hUb1RhYih6LmlkKSxhd2FpdCB0aGlzLnVwZGF0ZUNvbXBsZXRlLEMuY29tbWFuZCYmYXdhaXQgdGhpcy5zcGF3blByb2Nlc3NGb3JUYWIoeixDLmNvbW1hbmQsQy5hcmdzKSx0aGlzLmRpc3BhdGNoRXZlbnQobmV3IEN1c3RvbUV2ZW50KCJ0YWItY3JlYXRlZCIse2J1YmJsZXM6ITAsY29tcG9zZWQ6ITAsZGV0YWlsOnt0YWJJZDp6LmlkfX0pKSx6LmlkfWdldEFjdGl2ZVRhYigpe3JldHVybiB0aGlzLmFjdGl2ZVRhYklkJiZ0aGlzLnRhYk1hbmFnZXIuZ2V0VGFiKHRoaXMuYWN0aXZlVGFiSWQpfHxudWxsfWdldFRhYnMoKXtyZXR1cm4gdGhpcy50YWJNYW5hZ2VyLmdldEFsbFRhYnMoKX1zZWxlY3RUYWIoQyl7cmV0dXJuIHRoaXMudGFiTWFuYWdlci5oYXNUYWIoQyk/KHRoaXMuc3dpdGNoVG9UYWIoQyksITApOiExfWNsb3NlVGFiKEMpe2xldCB6PXRoaXMudGFiTWFuYWdlci5nZXRUYWIoQyk7aWYoIXp8fCF6LmNsb3NlYWJsZSlyZXR1cm4hMTtpZihDPT09dGhpcy5hY3RpdmVUYWJJZCl7bGV0IEU9dGhpcy50YWJNYW5hZ2VyLmdldEFsbFRhYnMoKSxUPUUuZmluZEluZGV4KFY9PlYuaWQ9PT1DKSwkPUVbVCsxXXx8RVtULTFdOyQ/dGhpcy5zd2l0Y2hUb1RhYigkLmlkKToodGhpcy5hY3RpdmVUYWJJZD1udWxsLHRoaXMuZGV0YWNoQWN0aXZlVGVybWluYWwoKSl9cmV0dXJuIHRoaXMudGFiTWFuYWdlci5jbG9zZVRhYihDKSx0aGlzLnRhYnM9dGhpcy50YWJNYW5hZ2VyLmdldEFsbFRhYnMoKSx0aGlzLmRpc3BhdGNoRXZlbnQobmV3IEN1c3RvbUV2ZW50KCJ0YWItY2xvc2VkIix7YnViYmxlczohMCxjb21wb3NlZDohMCxkZXRhaWw6e3RhYklkOkN9fSkpLCEwfXdyaXRlVG9UYWIoQyx6KXtsZXQgRT10aGlzLnRhYk1hbmFnZXIuZ2V0VGFiKEMpO3JldHVybiBFPyhFLnRlcm1pbmFsLndyaXRlKHopLCEwKTohMX1zZW5kSW5wdXRUb1RhYihDLHope2xldCBFPXRoaXMudGFiTWFuYWdlci5nZXRUYWIoQyk7cmV0dXJuIUV8fCFFLmlucHV0V3JpdGVyPyExOihFLmlucHV0V3JpdGVyLndyaXRlKHopLCEwKX1hc3luYyBzaG93QWN0aW9uYmFyKEMpe3JldHVybiB0aGlzLnRlcm1pbmFsQWN0aW9uYmFyfHwodGhpcy50ZXJtaW5hbEFjdGlvbmJhcj10aGlzLnNoYWRvd1Jvb3Q/LnF1ZXJ5U2VsZWN0b3IoImRlZXMtYWN0aW9uYmFyIikpLHRoaXMudGVybWluYWxBY3Rpb25iYXI/LnNob3coQyl9YXN5bmMgd2FpdEZvclByb21wdChDLHope3JldHVybiBuZXcgUHJvbWlzZShFPT57bGV0IFQ9KCk9PntsZXQgJD1DLmJ1ZmZlci5hY3RpdmU7Zm9yKGxldCBWPTA7VjwkLmxlbmd0aDtWKyspe2xldCBSPSQuZ2V0TGluZShWKTtpZihSJiZSLnRyYW5zbGF0ZVRvU3RyaW5nKCkuaW5jbHVkZXMoeikpe3NldFRpbWVvdXQoKCk9PntFKCl9LDEwMCk7cmV0dXJufX1zZXRUaW1lb3V0KFQsMTAwKX07VCgpfSl9YXN5bmMgc2V0RW52aXJvbm1lbnRWYXJpYWJsZXMoQyl7aWYoIXRoaXMuZXhlY3V0aW9uRW52aXJvbm1lbnQpdGhyb3cgbmV3IEVycm9yKCJObyBleGVjdXRpb24gZW52aXJvbm1lbnQgYXZhaWxhYmxlIik7bGV0IHo9IiI7Zm9yKGxldCBFIGluIEMpeis9YGV4cG9ydCAke0V9PSIke0NbRV19IgpgO2F3YWl0IHRoaXMuZXhlY3V0aW9uRW52aXJvbm1lbnQud3JpdGVGaWxlKCIvc291cmNlLmVudiIseil9Z2V0RXhlY3V0aW9uRW52aXJvbm1lbnQoKXtyZXR1cm4gdGhpcy5leGVjdXRpb25FbnZpcm9ubWVudH1zdGF0aWN7eGEoaSxhKX19O3JldHVybiBxPWl9KSgpfSk7dmFyIHhqLHdqLFpVdCxYVXQsS1V0LE55dCxGeXQ9YigoKT0+e3VlKCk7QWwoKTtsbygpO194KCk7T3goKTtJeCgpO0swKCk7WHgoKTt4aj1mdW5jdGlvbih0LGUsYSxpLHIscyl7ZnVuY3Rpb24gbih4KXtpZih4IT09dm9pZCAwJiZ0eXBlb2YgeCE9ImZ1bmN0aW9uIil0aHJvdyBuZXcgVHlwZUVycm9yKCJGdW5jdGlvbiBleHBlY3RlZCIpO3JldHVybiB4fWZvcih2YXIgbz1pLmtpbmQsZD1vPT09ImdldHRlciI/ImdldCI6bz09PSJzZXR0ZXIiPyJzZXQiOiJ2YWx1ZSIsYz0hZSYmdD9pLnN0YXRpYz90OnQucHJvdG90eXBlOm51bGwsaD1lfHwoYz9PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGMsaS5uYW1lKTp7fSksbCxmPSExLGc9YS5sZW5ndGgtMTtnPj0wO2ctLSl7dmFyIHk9e307Zm9yKHZhciB2IGluIGkpeVt2XT12PT09ImFjY2VzcyI/e306aVt2XTtmb3IodmFyIHYgaW4gaS5hY2Nlc3MpeS5hY2Nlc3Nbdl09aS5hY2Nlc3Nbdl07eS5hZGRJbml0aWFsaXplcj1mdW5jdGlvbih4KXtpZihmKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBhZGQgaW5pdGlhbGl6ZXJzIGFmdGVyIGRlY29yYXRpb24gaGFzIGNvbXBsZXRlZCIpO3MucHVzaChuKHh8fG51bGwpKX07dmFyIG09KDAsYVtnXSkobz09PSJhY2Nlc3NvciI/e2dldDpoLmdldCxzZXQ6aC5zZXR9OmhbZF0seSk7aWYobz09PSJhY2Nlc3NvciIpe2lmKG09PT12b2lkIDApY29udGludWU7aWYobT09PW51bGx8fHR5cGVvZiBtIT0ib2JqZWN0Iil0aHJvdyBuZXcgVHlwZUVycm9yKCJPYmplY3QgZXhwZWN0ZWQiKTsobD1uKG0uZ2V0KSkmJihoLmdldD1sKSwobD1uKG0uc2V0KSkmJihoLnNldD1sKSwobD1uKG0uaW5pdCkpJiZyLnVuc2hpZnQobCl9ZWxzZShsPW4obSkpJiYobz09PSJmaWVsZCI/ci51bnNoaWZ0KGwpOmhbZF09bCl9YyYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGMsaS5uYW1lLGgpLGY9ITB9LHdqPWZ1bmN0aW9uKHQsZSxhKXtmb3IodmFyIGk9YXJndW1lbnRzLmxlbmd0aD4yLHI9MDtyPGUubGVuZ3RoO3IrKylhPWk/ZVtyXS5jYWxsKHQsYSk6ZVtyXS5jYWxsKHQpO3JldHVybiBpP2E6dm9pZCAwfSxaVXQ9KCgpPT57bGV0IHQ9W3BlKCJkZW1vLXZpZXctZGFzaGJvYXJkIildLGUsYT1bXSxpLHI9eGU7dmFyIHM9Y2xhc3MgZXh0ZW5kcyBye3N0YXRpY3tpPXRoaXN9c3RhdGlje2xldCBuPXR5cGVvZiBTeW1ib2w9PSJmdW5jdGlvbiImJlN5bWJvbC5tZXRhZGF0YT9PYmplY3QuY3JlYXRlKHJbU3ltYm9sLm1ldGFkYXRhXT8/bnVsbCk6dm9pZCAwO3hqKG51bGwsZT17dmFsdWU6aX0sdCx7a2luZDoiY2xhc3MiLG5hbWU6aS5uYW1lLG1ldGFkYXRhOm59LG51bGwsYSkscz1pPWUudmFsdWUsbiYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGksU3ltYm9sLm1ldGFkYXRhLHtlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMCx2YWx1ZTpufSl9c3RhdGljIHN0eWxlcz1bcC5kZWZhdWx0U3R5bGVzLFFgCiAgICAgIDpob3N0IHsKICAgICAgICBkaXNwbGF5OiBibG9jazsKICAgICAgICBwYWRkaW5nOiA0MHB4OwogICAgICB9CiAgICAgIGgxIHsKICAgICAgICBtYXJnaW46IDAgMCAyMHB4IDA7CiAgICAgICAgY29sb3I6ICR7cC5iZFRoZW1lKCIjMDAwIiwiI2ZmZiIpfTsKICAgICAgfQogICAgICBkZWVzLXN0YXRzZ3JpZCB7CiAgICAgICAgbWFyZ2luLXRvcDogMjBweDsKICAgICAgfQogICAgYF07c3RhdHNUaWxlcz1be2lkOiJ1c2VycyIsdGl0bGU6IkFjdGl2ZSBVc2VycyIsdmFsdWU6MTIzNCx0eXBlOiJudW1iZXIiLGljb246ImZhVXNlcnMiLGRlc2NyaXB0aW9uOiIrMTUlIGZyb20gbGFzdCB3ZWVrIixjb2xvcjoiIzIyYzU1ZSJ9LHtpZDoicGFnZXZpZXdzIix0aXRsZToiUGFnZSBWaWV3cyIsdmFsdWU6NTY3MDAsdHlwZToibnVtYmVyIixpY29uOiJmYUV5ZSIsZGVzY3JpcHRpb246IjU2LjdrIHRvdGFsIHZpZXdzIixjb2xvcjoiIzNiODJmNiJ9LHtpZDoidXB0aW1lIix0aXRsZToiU3lzdGVtIFVwdGltZSIsdmFsdWU6ODksdW5pdDoiJSIsdHlwZToiZ2F1Z2UiLGljb246ImZhU2VydmVyIixkZXNjcmlwdGlvbjoiTGFzdCAzMCBkYXlzIixjb2xvcjoiIzEwYjk4MSIsZ2F1Z2VPcHRpb25zOnttaW46MCxtYXg6MTAwLHRocmVzaG9sZHM6W3t2YWx1ZTo4MCxjb2xvcjoiI2VmNDQ0NCJ9LHt2YWx1ZTo5MCxjb2xvcjoiI2Y1OWUwYiJ9LHt2YWx1ZToxMDAsY29sb3I6IiMxMGI5ODEifV19fSx7aWQ6InJlc3BvbnNlIix0aXRsZToiQXZnIFJlc3BvbnNlIFRpbWUiLHZhbHVlOjMuMix1bml0OiJzIix0eXBlOiJudW1iZXIiLGljb246ImZhQ2xvY2siLGRlc2NyaXB0aW9uOiItMC41cyBpbXByb3ZlbWVudCIsY29sb3I6IiNmNTllMGIifSx7aWQ6InJldmVudWUiLHRpdGxlOiJNb250aGx5IFJldmVudWUiLHZhbHVlOjQ4NTIwLHVuaXQ6IiQiLHR5cGU6InRyZW5kIixpY29uOiJmYURvbGxhclNpZ24iLGRlc2NyaXB0aW9uOiIrOC4yJSBncm93dGgiLGNvbG9yOiIjMjJjNTVlIix0cmVuZERhdGE6WzM1ZTMsMzhlMywzNzUwMCw0MWUzLDM5ODAwLDQyZTMsNDQxMDAsNDMyMDAsNDU2MDAsNDcxMDAsNDY4MDAsNDg1MjBdfSx7aWQ6InRyYWZmaWMiLHRpdGxlOiJUcmFmZmljIFRyZW5kIix2YWx1ZToxNjgwLHR5cGU6InRyZW5kIixpY29uOiJmYUNoYXJ0TGluZSIsZGVzY3JpcHRpb246Ikxhc3QgNyBkYXlzIixjb2xvcjoiIzNiODJmNiIsdHJlbmREYXRhOlsxMjAwLDEzNTAsMTEwMCwxNDUwLDE2MDAsMTU1MCwxNjgwXX1dO3JlbmRlcigpe3JldHVybiB3YAogICAgICA8aDE+RGFzaGJvYXJkPC9oMT4KICAgICAgPHA+V2VsY29tZSB0byB5b3VyIGFwcGxpY2F0aW9uIGRhc2hib2FyZC4gSGVyZSdzIGFuIG92ZXJ2aWV3IG9mIHlvdXIgbWV0cmljczo8L3A+CiAgICAgIDxkZWVzLXN0YXRzZ3JpZAogICAgICAgIC50aWxlcz0ke3RoaXMuc3RhdHNUaWxlc30KICAgICAgICBAdGlsZS1hY3Rpb249JHtuPT57Y29uc29sZS5sb2coIlRpbGUgYWN0aW9uOiIsbi5kZXRhaWwpfX0KICAgICAgPjwvZGVlcy1zdGF0c2dyaWQ+CiAgICBgfXN0YXRpY3t3aihpLGEpfX07cmV0dXJuIHM9aX0pKCksWFV0PSgoKT0+e2xldCB0PVtwZSgiZGVtby12aWV3LWFuYWx5dGljcyIpXSxlLGE9W10saSxyPXhlO3ZhciBzPWNsYXNzIGV4dGVuZHMgcntzdGF0aWN7aT10aGlzfXN0YXRpY3tsZXQgbj10eXBlb2YgU3ltYm9sPT0iZnVuY3Rpb24iJiZTeW1ib2wubWV0YWRhdGE/T2JqZWN0LmNyZWF0ZShyW1N5bWJvbC5tZXRhZGF0YV0/P251bGwpOnZvaWQgMDt4aihudWxsLGU9e3ZhbHVlOml9LHQse2tpbmQ6ImNsYXNzIixuYW1lOmkubmFtZSxtZXRhZGF0YTpufSxudWxsLGEpLHM9aT1lLnZhbHVlLG4mJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShpLFN5bWJvbC5tZXRhZGF0YSx7ZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITAsdmFsdWU6bn0pfXN0YXRpYyBzdHlsZXM9W3AuZGVmYXVsdFN0eWxlcyxRYAogICAgICA6aG9zdCB7CiAgICAgICAgZGlzcGxheTogYmxvY2s7CiAgICAgICAgcGFkZGluZzogNDBweDsKICAgICAgfQogICAgICBoMSB7CiAgICAgICAgbWFyZ2luOiAwIDAgMjBweCAwOwogICAgICAgIGNvbG9yOiAke3AuYmRUaGVtZSgiIzAwMCIsIiNmZmYiKX07CiAgICAgIH0KICAgIGBdO3JlbmRlcigpe3JldHVybiB3YAogICAgICA8aDE+QW5hbHl0aWNzPC9oMT4KICAgICAgPHA+VGhpcyBpcyB0aGUgYW5hbHl0aWNzIHZpZXcuIFlvdSBjYW4gYWRkIGNoYXJ0cyBhbmQgbWV0cmljcyBoZXJlLjwvcD4KICAgIGB9c3RhdGlje3dqKGksYSl9fTtyZXR1cm4gcz1pfSkoKSxLVXQ9KCgpPT57bGV0IHQ9W3BlKCJkZW1vLXZpZXctc2V0dGluZ3MiKV0sZSxhPVtdLGkscj14ZTt2YXIgcz1jbGFzcyBleHRlbmRzIHJ7c3RhdGlje2k9dGhpc31zdGF0aWN7bGV0IG49dHlwZW9mIFN5bWJvbD09ImZ1bmN0aW9uIiYmU3ltYm9sLm1ldGFkYXRhP09iamVjdC5jcmVhdGUocltTeW1ib2wubWV0YWRhdGFdPz9udWxsKTp2b2lkIDA7eGoobnVsbCxlPXt2YWx1ZTppfSx0LHtraW5kOiJjbGFzcyIsbmFtZTppLm5hbWUsbWV0YWRhdGE6bn0sbnVsbCxhKSxzPWk9ZS52YWx1ZSxuJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoaSxTeW1ib2wubWV0YWRhdGEse2VudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwLHZhbHVlOm59KX1zdGF0aWMgc3R5bGVzPVtwLmRlZmF1bHRTdHlsZXMsUWAKICAgICAgOmhvc3QgewogICAgICAgIGRpc3BsYXk6IGJsb2NrOwogICAgICAgIHBhZGRpbmc6IDQwcHg7CiAgICAgIH0KICAgICAgaDEgewogICAgICAgIG1hcmdpbjogMCAwIDIwcHggMDsKICAgICAgICBjb2xvcjogJHtwLmJkVGhlbWUoIiMwMDAiLCIjZmZmIil9OwogICAgICB9CiAgICAgIC5zZXR0aW5ncy1zZWN0aW9uIHsKICAgICAgICBtYXJnaW4tdG9wOiAzMHB4OwogICAgICB9CiAgICAgIC5zZXR0aW5ncy1zZWN0aW9uIGgyIHsKICAgICAgICBmb250LXNpemU6IDE4cHg7CiAgICAgICAgbWFyZ2luOiAwIDAgMTVweCAwOwogICAgICAgIGNvbG9yOiAke3AuYmRUaGVtZSgiIzMzMyIsIiNjY2MiKX07CiAgICAgIH0KICAgICAgLmhvcml6b250YWwtZm9ybS1zZWN0aW9uIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke3AuYmRUaGVtZSgiI2Y1ZjVmNSIsIiMxYTFhMWEiKX07CiAgICAgICAgcGFkZGluZzogMjBweDsKICAgICAgICBib3JkZXItcmFkaXVzOiA4cHg7CiAgICAgICAgbWFyZ2luOiAxNXB4IDA7CiAgICAgIH0KICAgIGBdO3JlbmRlcigpe3JldHVybiB3YAogICAgICA8aDE+U2V0dGluZ3M8L2gxPgogICAgICA8cD5Db25maWd1cmUgeW91ciBhcHBsaWNhdGlvbiBzZXR0aW5ncyBiZWxvdzo8L3A+CiAgICAgIAogICAgICA8ZGl2IGNsYXNzPSJzZXR0aW5ncy1zZWN0aW9uIj4KICAgICAgICA8aDI+R2VuZXJhbCBTZXR0aW5nczwvaDI+CiAgICAgICAgPGRlZXMtZm9ybT4KICAgICAgICAgIDxkZWVzLWlucHV0LXRleHQga2V5PSJhcHBOYW1lIiBsYWJlbD0iQXBwbGljYXRpb24gTmFtZSIgdmFsdWU9Ik15IEFwcCI+PC9kZWVzLWlucHV0LXRleHQ+CiAgICAgICAgICA8ZGVlcy1pbnB1dC10ZXh0IGtleT0iYXBpRW5kcG9pbnQiIGxhYmVsPSJBUEkgRW5kcG9pbnQiIHZhbHVlPSJodHRwczovL2FwaS5leGFtcGxlLmNvbSI+PC9kZWVzLWlucHV0LXRleHQ+CiAgICAgICAgICA8ZGVlcy1pbnB1dC1kcm9wZG93bgogICAgICAgICAgICBrZXk9ImVudmlyb25tZW50IgogICAgICAgICAgICBsYWJlbD0iRW52aXJvbm1lbnQiCiAgICAgICAgICAgIC5vcHRpb25zPSR7W3tvcHRpb246IkRldmVsb3BtZW50IixrZXk6ImRldiJ9LHtvcHRpb246IlN0YWdpbmciLGtleToic3RhZ2luZyJ9LHtvcHRpb246IlByb2R1Y3Rpb24iLGtleToicHJvZCJ9XX0KICAgICAgICAgICAgLnNlbGVjdGVkT3B0aW9uPSR7e29wdGlvbjoiUHJvZHVjdGlvbiIsa2V5OiJwcm9kIn19CiAgICAgICAgICA+PC9kZWVzLWlucHV0LWRyb3Bkb3duPgogICAgICAgICAgPGRlZXMtaW5wdXQtY2hlY2tib3gga2V5PSJlbmFibGVOb3RpZmljYXRpb25zIiBsYWJlbD0iRW5hYmxlIE5vdGlmaWNhdGlvbnMiIHZhbHVlPSJ0cnVlIj48L2RlZXMtaW5wdXQtY2hlY2tib3g+CiAgICAgICAgICA8ZGVlcy1pbnB1dC1jaGVja2JveCBrZXk9ImVuYWJsZUFuYWx5dGljcyIgbGFiZWw9IkVuYWJsZSBBbmFseXRpY3MiIHZhbHVlPSJmYWxzZSI+PC9kZWVzLWlucHV0LWNoZWNrYm94PgogICAgICAgICAgPGRlZXMtZm9ybS1zdWJtaXQ+U2F2ZSBHZW5lcmFsIFNldHRpbmdzPC9kZWVzLWZvcm0tc3VibWl0PgogICAgICAgIDwvZGVlcy1mb3JtPgogICAgICA8L2Rpdj4KICAgICAgCiAgICAgIDxkaXYgY2xhc3M9InNldHRpbmdzLXNlY3Rpb24iPgogICAgICAgIDxoMj5EaXNwbGF5IFByZWZlcmVuY2VzPC9oMj4KICAgICAgICA8ZGl2IGNsYXNzPSJob3Jpem9udGFsLWZvcm0tc2VjdGlvbiI+CiAgICAgICAgICA8cCBzdHlsZT0ibWFyZ2luLXRvcDogMDsgbWFyZ2luLWJvdHRvbTogMTZweDsiPlF1aWNrIGRpc3BsYXkgc2V0dGluZ3MgdXNpbmcgaG9yaXpvbnRhbCBsYXlvdXQ6PC9wPgogICAgICAgICAgPGRlZXMtZm9ybSBob3Jpem9udGFsLWxheW91dD4KICAgICAgICAgICAgPGRlZXMtaW5wdXQtZHJvcGRvd24KICAgICAgICAgICAgICBrZXk9InRoZW1lIgogICAgICAgICAgICAgIGxhYmVsPSJUaGVtZSIKICAgICAgICAgICAgICAuZW5hYmxlU2VhcmNoPSR7ITF9CiAgICAgICAgICAgICAgLm9wdGlvbnM9JHtbe29wdGlvbjoiTGlnaHQiLGtleToibGlnaHQifSx7b3B0aW9uOiJEYXJrIixrZXk6ImRhcmsifSx7b3B0aW9uOiJBdXRvIixrZXk6ImF1dG8ifV19CiAgICAgICAgICAgICAgLnNlbGVjdGVkT3B0aW9uPSR7e29wdGlvbjoiRGFyayIsa2V5OiJkYXJrIn19CiAgICAgICAgICAgID48L2RlZXMtaW5wdXQtZHJvcGRvd24+CiAgICAgICAgICAgIDxkZWVzLWlucHV0LWRyb3Bkb3duCiAgICAgICAgICAgICAga2V5PSJsYW5ndWFnZSIKICAgICAgICAgICAgICBsYWJlbD0iTGFuZ3VhZ2UiCiAgICAgICAgICAgICAgLmVuYWJsZVNlYXJjaD0keyExfQogICAgICAgICAgICAgIC5vcHRpb25zPSR7W3tvcHRpb246IkVuZ2xpc2giLGtleToiZW4ifSx7b3B0aW9uOiJHZXJtYW4iLGtleToiZGUifSx7b3B0aW9uOiJTcGFuaXNoIixrZXk6ImVzIn0se29wdGlvbjoiRnJlbmNoIixrZXk6ImZyIn1dfQogICAgICAgICAgICAgIC5zZWxlY3RlZE9wdGlvbj0ke3tvcHRpb246IkVuZ2xpc2giLGtleToiZW4ifX0KICAgICAgICAgICAgPjwvZGVlcy1pbnB1dC1kcm9wZG93bj4KICAgICAgICAgICAgPGRlZXMtaW5wdXQtY2hlY2tib3gga2V5PSJjb21wYWN0TW9kZSIgbGFiZWw9IkNvbXBhY3QgTW9kZSI+PC9kZWVzLWlucHV0LWNoZWNrYm94PgogICAgICAgICAgPC9kZWVzLWZvcm0+CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGl2PgogICAgICAKICAgICAgPGRpdiBjbGFzcz0ic2V0dGluZ3Mtc2VjdGlvbiI+CiAgICAgICAgPGgyPk5vdGlmaWNhdGlvbiBTZXR0aW5nczwvaDI+CiAgICAgICAgPGRlZXMtZm9ybT4KICAgICAgICAgIDxkZWVzLWlucHV0LXJhZGlvZ3JvdXAKICAgICAgICAgICAgLmxhYmVsPSR7IkVtYWlsIEZyZXF1ZW5jeSJ9CiAgICAgICAgICAgIC5vcHRpb25zPSR7WyJSZWFsLXRpbWUiLCJEYWlseSBEaWdlc3QiLCJXZWVrbHkgU3VtbWFyeSIsIk5ldmVyIl19CiAgICAgICAgICAgIC5zZWxlY3RlZE9wdGlvbj0keyJSZWFsLXRpbWUifQogICAgICAgICAgICAua2V5PSR7ImVtYWlsRnJlcXVlbmN5In0KICAgICAgICAgID48L2RlZXMtaW5wdXQtcmFkaW9ncm91cD4KICAgICAgICAgIDxkZWVzLWlucHV0LWNoZWNrYm94IGtleT0icHVzaE5vdGlmaWNhdGlvbnMiIGxhYmVsPSJFbmFibGUgUHVzaCBOb3RpZmljYXRpb25zIiB2YWx1ZT0idHJ1ZSI+PC9kZWVzLWlucHV0LWNoZWNrYm94PgogICAgICAgICAgPGRlZXMtaW5wdXQtY2hlY2tib3gga2V5PSJzb3VuZEFsZXJ0cyIgbGFiZWw9IlBsYXkgU291bmQgZm9yIEFsZXJ0cyIgdmFsdWU9InRydWUiPjwvZGVlcy1pbnB1dC1jaGVja2JveD4KICAgICAgICAgIDxkZWVzLWZvcm0tc3VibWl0PlVwZGF0ZSBOb3RpZmljYXRpb25zPC9kZWVzLWZvcm0tc3VibWl0PgogICAgICAgIDwvZGVlcy1mb3JtPgogICAgICA8L2Rpdj4KICAgIGB9c3RhdGlje3dqKGksYSl9fTtyZXR1cm4gcz1pfSkoKSxOeXQ9KCk9PndgCiAgPHN0eWxlPgogICAgYm9keSB7CiAgICAgIG1hcmdpbjogMDsKICAgICAgcGFkZGluZzogMDsKICAgIH0KICAgIC5kZW1vLWNvbnRhaW5lciB7CiAgICAgIHdpZHRoOiAxMDAlOwogICAgICBoZWlnaHQ6IDEwMCU7CiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgdG9wOiAwOwogICAgICBsZWZ0OiAwOwogICAgfQogIDwvc3R5bGU+CiAgPGRpdiBjbGFzcz0iZGVtby1jb250YWluZXIiPgogICAgPGRlZXMtc2ltcGxlLWFwcGRhc2gKICAgICAgbmFtZT0iTXkgQXBwbGljYXRpb24iCiAgICAgIHRlcm1pbmFsU2V0dXBDb21tYW5kPSJlY2hvICdXZWxjb21lIHRvIHRoZSB0ZXJtaW5hbCEnIgogICAgICAudmlld1RhYnM9JHtbe25hbWU6IkRhc2hib2FyZCIsaWNvbk5hbWU6Imx1Y2lkZTpob21lIixlbGVtZW50OlpVdH0se25hbWU6IkFuYWx5dGljcyIsaWNvbk5hbWU6Imx1Y2lkZTpsaW5lQ2hhcnQiLGVsZW1lbnQ6WFV0fSx7bmFtZToiU2V0dGluZ3MiLGljb25OYW1lOiJsdWNpZGU6c2V0dGluZ3MiLGVsZW1lbnQ6S1V0fV19CiAgICAgIEBsb2dvdXQ9JHsoKT0+e2NvbnNvbGUubG9nKCJMb2dvdXQgZXZlbnQgdHJpZ2dlcmVkIiksYWxlcnQoIkxvZ291dCBjbGlja2VkISIpfX0KICAgICAgQHZpZXctc2VsZWN0PSR7dD0+e2NvbnNvbGUubG9nKCJWaWV3IHNlbGVjdGVkOiIsdC5kZXRhaWwudmlldy5uYW1lKX19CiAgICA+PC9kZWVzLXNpbXBsZS1hcHBkYXNoPgogIDwvZGl2PgpgfSk7dmFyIGFkLFlzLE95dCxSeXQ9YigoKT0+e0Z5dCgpO3VlKCk7RHQoKTtxZSgpO2FkPWZ1bmN0aW9uKHQsZSxhLGkscixzKXtmdW5jdGlvbiBuKHgpe2lmKHghPT12b2lkIDAmJnR5cGVvZiB4IT0iZnVuY3Rpb24iKXRocm93IG5ldyBUeXBlRXJyb3IoIkZ1bmN0aW9uIGV4cGVjdGVkIik7cmV0dXJuIHh9Zm9yKHZhciBvPWkua2luZCxkPW89PT0iZ2V0dGVyIj8iZ2V0IjpvPT09InNldHRlciI/InNldCI6InZhbHVlIixjPSFlJiZ0P2kuc3RhdGljP3Q6dC5wcm90b3R5cGU6bnVsbCxoPWV8fChjP09iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoYyxpLm5hbWUpOnt9KSxsLGY9ITEsZz1hLmxlbmd0aC0xO2c+PTA7Zy0tKXt2YXIgeT17fTtmb3IodmFyIHYgaW4gaSl5W3ZdPXY9PT0iYWNjZXNzIj97fTppW3ZdO2Zvcih2YXIgdiBpbiBpLmFjY2Vzcyl5LmFjY2Vzc1t2XT1pLmFjY2Vzc1t2XTt5LmFkZEluaXRpYWxpemVyPWZ1bmN0aW9uKHgpe2lmKGYpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGFkZCBpbml0aWFsaXplcnMgYWZ0ZXIgZGVjb3JhdGlvbiBoYXMgY29tcGxldGVkIik7cy5wdXNoKG4oeHx8bnVsbCkpfTt2YXIgbT0oMCxhW2ddKShvPT09ImFjY2Vzc29yIj97Z2V0OmguZ2V0LHNldDpoLnNldH06aFtkXSx5KTtpZihvPT09ImFjY2Vzc29yIil7aWYobT09PXZvaWQgMCljb250aW51ZTtpZihtPT09bnVsbHx8dHlwZW9mIG0hPSJvYmplY3QiKXRocm93IG5ldyBUeXBlRXJyb3IoIk9iamVjdCBleHBlY3RlZCIpOyhsPW4obS5nZXQpKSYmKGguZ2V0PWwpLChsPW4obS5zZXQpKSYmKGguc2V0PWwpLChsPW4obS5pbml0KSkmJnIudW5zaGlmdChsKX1lbHNlKGw9bihtKSkmJihvPT09ImZpZWxkIj9yLnVuc2hpZnQobCk6aFtkXT1sKX1jJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoYyxpLm5hbWUsaCksZj0hMH0sWXM9ZnVuY3Rpb24odCxlLGEpe2Zvcih2YXIgaT1hcmd1bWVudHMubGVuZ3RoPjIscj0wO3I8ZS5sZW5ndGg7cisrKWE9aT9lW3JdLmNhbGwodCxhKTplW3JdLmNhbGwodCk7cmV0dXJuIGk/YTp2b2lkIDB9LE95dD0oKCk9PntsZXQgdD1bcGUoImRlZXMtc2ltcGxlLWFwcGRhc2giKV0sZSxhPVtdLGkscj14ZSxzLG49W10sbz1bXSxkLGM9W10saD1bXSxsLGY9W10sZz1bXSx5LHY9W10sbT1bXTt2YXIgeD1jbGFzcyBleHRlbmRzIHJ7c3RhdGlje2k9dGhpc31zdGF0aWN7bGV0IE09dHlwZW9mIFN5bWJvbD09ImZ1bmN0aW9uIiYmU3ltYm9sLm1ldGFkYXRhP09iamVjdC5jcmVhdGUocltTeW1ib2wubWV0YWRhdGFdPz9udWxsKTp2b2lkIDA7cz1bSSgpXSxkPVtJKHt0eXBlOkFycmF5fSldLGw9W0koe3R5cGU6U3RyaW5nfSldLHk9W0ooKV0sYWQodGhpcyxudWxsLHMse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJuYW1lIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpTPT4ibmFtZSJpbiBTLGdldDpTPT5TLm5hbWUsc2V0OihTLEYpPT57Uy5uYW1lPUZ9fSxtZXRhZGF0YTpNfSxuLG8pLGFkKHRoaXMsbnVsbCxkLHtraW5kOiJhY2Nlc3NvciIsbmFtZToidmlld1RhYnMiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOlM9PiJ2aWV3VGFicyJpbiBTLGdldDpTPT5TLnZpZXdUYWJzLHNldDooUyxGKT0+e1Mudmlld1RhYnM9Rn19LG1ldGFkYXRhOk19LGMsaCksYWQodGhpcyxudWxsLGwse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJ0ZXJtaW5hbFNldHVwQ29tbWFuZCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6Uz0+InRlcm1pbmFsU2V0dXBDb21tYW5kImluIFMsZ2V0OlM9PlMudGVybWluYWxTZXR1cENvbW1hbmQsc2V0OihTLEYpPT57Uy50ZXJtaW5hbFNldHVwQ29tbWFuZD1GfX0sbWV0YWRhdGE6TX0sZixnKSxhZCh0aGlzLG51bGwseSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InNlbGVjdGVkVmlldyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6Uz0+InNlbGVjdGVkVmlldyJpbiBTLGdldDpTPT5TLnNlbGVjdGVkVmlldyxzZXQ6KFMsRik9PntTLnNlbGVjdGVkVmlldz1GfX0sbWV0YWRhdGE6TX0sdixtKSxhZChudWxsLGU9e3ZhbHVlOml9LHQse2tpbmQ6ImNsYXNzIixuYW1lOmkubmFtZSxtZXRhZGF0YTpNfSxudWxsLGEpLHg9aT1lLnZhbHVlLE0mJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShpLFN5bWJvbC5tZXRhZGF0YSx7ZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITAsdmFsdWU6TX0pfXN0YXRpYyBkZW1vPU55dDtzdGF0aWMgZGVtb0dyb3Vwcz1bIlNpbXBsZSJdOyNlPVlzKHRoaXMsbiwiQXBwbGljYXRpb24gRGFzaGJvYXJkIik7Z2V0IG5hbWUoKXtyZXR1cm4gdGhpcy4jZX1zZXQgbmFtZShNKXt0aGlzLiNlPU19I3Q9KFlzKHRoaXMsbyksWXModGhpcyxjLFtdKSk7Z2V0IHZpZXdUYWJzKCl7cmV0dXJuIHRoaXMuI3R9c2V0IHZpZXdUYWJzKE0pe3RoaXMuI3Q9TX0jYT0oWXModGhpcyxoKSxZcyh0aGlzLGYsJ2VjaG8gIlRlcm1pbmFsIHJlYWR5IicpKTtnZXQgdGVybWluYWxTZXR1cENvbW1hbmQoKXtyZXR1cm4gdGhpcy4jYX1zZXQgdGVybWluYWxTZXR1cENvbW1hbmQoTSl7dGhpcy4jYT1NfSNpPShZcyh0aGlzLGcpLFlzKHRoaXMsdix2b2lkIDApKTtnZXQgc2VsZWN0ZWRWaWV3KCl7cmV0dXJuIHRoaXMuI2l9c2V0IHNlbGVjdGVkVmlldyhNKXt0aGlzLiNpPU19c3RhdGljIHN0eWxlcz1bQ2UscC5kZWZhdWx0U3R5bGVzLFFgCiAgICAgIC8qIFRPRE86IE1pZ3JhdGUgaGFyZGNvZGVkIHZhbHVlcyB0byAtLWRlZXMtKiBDU1MgdmFyaWFibGVzICovCiAgICAgIDpob3N0IHsKICAgICAgICBjb2xvcjogJHtwLmJkVGhlbWUoImhzbCgwIDAlIDE1JSkiLCJoc2woMCAwJSA5MCUpIil9OwogICAgICAgIHVzZXItc2VsZWN0OiBub25lOwogICAgICAgIGRpc3BsYXk6IGJsb2NrOwogICAgICAgIG92ZXJmbG93OiBoaWRkZW47CiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICAgIGhlaWdodDogMTAwJTsKICAgICAgICB3aWR0aDogMTAwJTsKICAgICAgfQoKICAgICAgLm1haW5jb250YWluZXIgewogICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgICB0b3A6IDBweDsKICAgICAgICBsZWZ0OiAwcHg7CiAgICAgICAgcmlnaHQ6IDBweDsKICAgICAgICBib3R0b206IDBweDsKICAgICAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgICB9CgogICAgICAuYXBwYmFyIHsKICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgICAgdG9wOiAwcHg7CiAgICAgICAgbGVmdDogMHB4OwogICAgICAgIGhlaWdodDogY2FsYygxMDAlIC0gMjRweCk7CiAgICAgICAgd2lkdGg6IDI0MHB4OwogICAgICAgIGJhY2tncm91bmQ6ICR7cC5iZFRoZW1lKCJoc2woMCAwJSA5OSUpIiwiaHNsKDAgMCUgNyUpIil9OwogICAgICAgIGJvcmRlci1yaWdodDogMXB4IHNvbGlkICR7cC5iZFRoZW1lKCJoc2woMCAwJSA5MSUpIiwiaHNsKDAgMCUgMTMlKSIpfTsKICAgICAgICBmb250LXNpemU6IDEzcHg7CiAgICAgICAgZm9udC1mYW1pbHk6ICdHZWlzdCBTYW5zJywgc2Fucy1zZXJpZjsKICAgICAgICB6LWluZGV4OiAyOwogICAgICAgIGRpc3BsYXk6IGdyaWQ7CiAgICAgICAgZ3JpZC10ZW1wbGF0ZS1yb3dzOiBhdXRvIDFmciBtaW4tY29udGVudDsKICAgICAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgICB9CgogICAgICAuc2lkZWJhci1oZWFkZXIgewogICAgICAgIHBhZGRpbmc6IDIwcHggMTZweDsKICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHtwLmJkVGhlbWUoImhzbCgwIDAlIDkxJSkiLCJoc2woMCAwJSAxMyUpIil9OwogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBnYXA6IDEycHg7CiAgICAgIH0KCiAgICAgIC5oZWFkZXItaWNvbi13cmFwcGVyIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7CiAgICAgICAgd2lkdGg6IDM2cHg7CiAgICAgICAgaGVpZ2h0OiAzNnB4OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDEwcHg7CiAgICAgICAgYmFja2dyb3VuZDogJHtwLmJkVGhlbWUoImxpbmVhci1ncmFkaWVudCgxMzVkZWcsIGhzbCgyMTUgMjAlIDk1JSkgMCUsIGhzbCgyMTUgMjAlIDkwJSkgMTAwJSkiLCJsaW5lYXItZ3JhZGllbnQoMTM1ZGVnLCBoc2woMjE1IDIwJSAxOCUpIDAlLCBoc2woMjE1IDIwJSAxNCUpIDEwMCUpIil9OwogICAgICAgIGJveC1zaGFkb3c6ICR7cC5iZFRoZW1lKCIwIDFweCAycHggcmdiKDAgMCAwIC8gMC4wNSksIGluc2V0IDAgMXB4IDAgcmdiKDI1NSAyNTUgMjU1IC8gMC41KSIsIjAgMXB4IDJweCByZ2IoMCAwIDAgLyAwLjIpLCBpbnNldCAwIDFweCAwIHJnYigyNTUgMjU1IDI1NSAvIDAuMDUpIil9OwogICAgICB9CgogICAgICAuaGVhZGVyLWljb24td3JhcHBlciBkZWVzLWljb24gewogICAgICAgIGZvbnQtc2l6ZTogMThweDsKICAgICAgICBjb2xvcjogJHtwLmJkVGhlbWUoImhzbCgyMTUgMjAlIDQwJSkiLCJoc2woMjE1IDIwJSA3MCUpIil9OwogICAgICB9CgogICAgICAuYXBwTmFtZSB7CiAgICAgICAgZm9udC1zaXplOiAxNXB4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7CiAgICAgICAgY29sb3I6ICR7cC5iZFRoZW1lKCJoc2woMCAwJSA5JSkiLCJoc2woMCAwJSA5OCUpIil9OwogICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7CiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpczsKICAgICAgICBsZXR0ZXItc3BhY2luZzogLTAuMDJlbTsKICAgICAgfQoKICAgICAgLnZpZXdUYWJzLWNvbnRhaW5lciB7CiAgICAgICAgb3ZlcmZsb3cteTogYXV0bzsKICAgICAgICBwYWRkaW5nOiAxMnB4IDhweDsKICAgICAgICBzY3JvbGxiYXItd2lkdGg6IHRoaW47CiAgICAgICAgc2Nyb2xsYmFyLWNvbG9yOiAke3AuYmRUaGVtZSgiaHNsKDAgMCUgODUlKSIsImhzbCgwIDAlIDIwJSkiKX0gdHJhbnNwYXJlbnQ7CiAgICAgIH0KCiAgICAgIC52aWV3VGFicy1jb250YWluZXI6Oi13ZWJraXQtc2Nyb2xsYmFyIHsKICAgICAgICB3aWR0aDogNnB4OwogICAgICB9CgogICAgICAudmlld1RhYnMtY29udGFpbmVyOjotd2Via2l0LXNjcm9sbGJhci10cmFjayB7CiAgICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7CiAgICAgIH0KCiAgICAgIC52aWV3VGFicy1jb250YWluZXI6Oi13ZWJraXQtc2Nyb2xsYmFyLXRodW1iIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke3AuYmRUaGVtZSgiaHNsKDAgMCUgODUlKSIsImhzbCgwIDAlIDIwJSkiKX07CiAgICAgICAgYm9yZGVyLXJhZGl1czogM3B4OwogICAgICB9CgogICAgICAudmlld1RhYnMtY29udGFpbmVyOjotd2Via2l0LXNjcm9sbGJhci10aHVtYjpob3ZlciB7CiAgICAgICAgYmFja2dyb3VuZDogJHtwLmJkVGhlbWUoImhzbCgwIDAlIDc1JSkiLCJoc2woMCAwJSAzMCUpIil9OwogICAgICB9CgogICAgICAuc2VjdGlvbi1sYWJlbCB7CiAgICAgICAgZm9udC1zaXplOiAxMXB4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7CiAgICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTsKICAgICAgICBsZXR0ZXItc3BhY2luZzogMC4wNWVtOwogICAgICAgIGNvbG9yOiAke3AuYmRUaGVtZSgiaHNsKDAgMCUgNTAlKSIsImhzbCgwIDAlIDUwJSkiKX07CiAgICAgICAgcGFkZGluZzogOHB4IDEycHggOHB4OwogICAgICAgIG1hcmdpbi1ib3R0b206IDRweDsKICAgICAgfQoKICAgICAgLnZpZXdUYWJzIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgICAgZ2FwOiAycHg7CiAgICAgIH0KCiAgICAgIC52aWV3VGFiIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgZ2FwOiAxMHB4OwogICAgICAgIHBhZGRpbmc6IDEwcHggMTJweDsKICAgICAgICBjdXJzb3I6IGRlZmF1bHQ7CiAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuMTVzIGVhc2U7CiAgICAgICAgY29sb3I6ICR7cC5iZFRoZW1lKCJoc2woMCAwJSA0MCUpIiwiaHNsKDAgMCUgNjUlKSIpfTsKICAgICAgICB1c2VyLXNlbGVjdDogbm9uZTsKICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgICAgYm9yZGVyLXJhZGl1czogOHB4OwogICAgICB9CgogICAgICAudmlld1RhYjpob3ZlciB7CiAgICAgICAgYmFja2dyb3VuZDogJHtwLmJkVGhlbWUoImhzbCgwIDAlIDAlIC8gMC4wNCkiLCJoc2woMCAwJSAxMDAlIC8gMC4wNSkiKX07CiAgICAgICAgY29sb3I6ICR7cC5iZFRoZW1lKCJoc2woMCAwJSAxNSUpIiwiaHNsKDAgMCUgOTAlKSIpfTsKICAgICAgfQoKICAgICAgLnZpZXdUYWI6YWN0aXZlIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke3AuYmRUaGVtZSgiaHNsKDAgMCUgMCUgLyAwLjA2KSIsImhzbCgwIDAlIDEwMCUgLyAwLjA3KSIpfTsKICAgICAgICB0cmFuc2Zvcm06IHNjYWxlKDAuOTkpOwogICAgICB9CgogICAgICAudmlld1RhYi5zZWxlY3RlZCB7CiAgICAgICAgYmFja2dyb3VuZDogJHtwLmJkVGhlbWUoImhzbCgyMTUgMjUlIDk1JSkiLCJoc2woMjE1IDIwJSAxNSUpIil9OwogICAgICAgIGNvbG9yOiAke3AuYmRUaGVtZSgiaHNsKDIxNSAyNSUgMzAlKSIsImhzbCgyMTUgMjUlIDg1JSkiKX07CiAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDsKICAgICAgfQoKICAgICAgLnZpZXdUYWIuc2VsZWN0ZWQ6OmJlZm9yZSB7CiAgICAgICAgY29udGVudDogJyc7CiAgICAgICAgcG9zaXRpb246IGFic29sdXRlOwogICAgICAgIGxlZnQ6IDA7CiAgICAgICAgdG9wOiA4cHg7CiAgICAgICAgYm90dG9tOiA4cHg7CiAgICAgICAgd2lkdGg6IDNweDsKICAgICAgICBib3JkZXItcmFkaXVzOiAwIDJweCAycHggMDsKICAgICAgICBiYWNrZ3JvdW5kOiAke3AuYmRUaGVtZSgiaHNsKDIxNSA3MCUgNTAlKSIsImhzbCgyMTUgNzAlIDYwJSkiKX07CiAgICAgIH0KCiAgICAgIC52aWV3VGFiIGRlZXMtaWNvbiB7CiAgICAgICAgZm9udC1zaXplOiAxNnB4OwogICAgICAgIG9wYWNpdHk6IDAuNTU7CiAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuMTVzIGVhc2U7CiAgICAgIH0KCiAgICAgIC52aWV3VGFiOmhvdmVyIGRlZXMtaWNvbiB7CiAgICAgICAgb3BhY2l0eTogMC43NTsKICAgICAgfQoKICAgICAgLnZpZXdUYWIuc2VsZWN0ZWQgZGVlcy1pY29uIHsKICAgICAgICBvcGFjaXR5OiAwLjk7CiAgICAgICAgY29sb3I6ICR7cC5iZFRoZW1lKCJoc2woMjE1IDcwJSA0NSUpIiwiaHNsKDIxNSA3MCUgNjUlKSIpfTsKICAgICAgfQoKICAgICAgLnZpZXdUYWIgc3BhbiB7CiAgICAgICAgZmxleDogMTsKICAgICAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzOwogICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7CiAgICAgIH0KCiAgICAgIC5hcHBBY3Rpb25zIHsKICAgICAgICBwYWRkaW5nOiAxMnB4IDhweDsKICAgICAgICBib3JkZXItdG9wOiAxcHggc29saWQgJHtwLmJkVGhlbWUoImhzbCgwIDAlIDkxJSkiLCJoc2woMCAwJSAxMyUpIil9OwogICAgICB9CgogICAgICAuYWN0aW9uIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgZ2FwOiAxMHB4OwogICAgICAgIHBhZGRpbmc6IDEwcHggMTJweDsKICAgICAgICBib3JkZXItcmFkaXVzOiA4cHg7CiAgICAgICAgY3Vyc29yOiBkZWZhdWx0OwogICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjE1cyBlYXNlOwogICAgICAgIGNvbG9yOiAke3AuYmRUaGVtZSgiaHNsKDAgMCUgNDAlKSIsImhzbCgwIDAlIDY1JSkiKX07CiAgICAgIH0KCiAgICAgIC5hY3Rpb246aG92ZXIgewogICAgICAgIGJhY2tncm91bmQ6ICR7cC5iZFRoZW1lKCJoc2woMCA4NCUgNjAlIC8gMC4wOCkiLCJoc2woMCA4NCUgNjAlIC8gMC4xMikiKX07CiAgICAgICAgY29sb3I6ICR7cC5iZFRoZW1lKCJoc2woMCA4NCUgNDUlKSIsImhzbCgwIDg0JSA2NSUpIil9OwogICAgICB9CgogICAgICAuYWN0aW9uIGRlZXMtaWNvbiB7CiAgICAgICAgZm9udC1zaXplOiAxNnB4OwogICAgICAgIG9wYWNpdHk6IDAuNjsKICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC4xNXMgZWFzZTsKICAgICAgfQoKICAgICAgLmFjdGlvbjpob3ZlciBkZWVzLWljb24gewogICAgICAgIG9wYWNpdHk6IDAuOTsKICAgICAgICBjb2xvcjogJHtwLmJkVGhlbWUoImhzbCgwIDg0JSA0NSUpIiwiaHNsKDAgODQlIDY1JSkiKX07CiAgICAgIH0KCiAgICAgIC5hcHBjb250ZW50IHsKICAgICAgICB6LWluZGV4OiAxOwogICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgICB0b3A6IDBweDsKICAgICAgICByaWdodDogMHB4OwogICAgICAgIGhlaWdodDogY2FsYygxMDAlIC0gMjRweCk7CiAgICAgICAgYm90dG9tOiAyNHB4OwogICAgICAgIHdpZHRoOiBjYWxjKDEwMCUgLSAyNDBweCk7CiAgICAgICAgb3ZlcmZsb3c6IGF1dG87CiAgICAgICAgYmFja2dyb3VuZDogJHtwLmJkVGhlbWUoImhzbCgwIDAlIDk3JSkiLCJoc2woMCAwJSA1JSkiKX07CiAgICAgICAgb3ZlcnNjcm9sbC1iZWhhdmlvcjogY29udGFpbjsKICAgICAgfQoKICAgICAgLmNvbnRyb2xiYXIgewogICAgICAgIGNvbG9yOiAjZmZmOwogICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgICBib3R0b206IDBweDsKICAgICAgICBsZWZ0OiAwcHg7CiAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgICAgaGVpZ2h0OiAyNHB4OwogICAgICAgIGJhY2tncm91bmQ6ICR7cC5iZFRoZW1lKCJoc2woMjIwIDEzJSAxOCUpIiwiaHNsKDIyMCAxMyUgMTIlKSIpfTsKICAgICAgICB6LWluZGV4OiAyOwogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7CiAgICAgICAgZm9udC1zaXplOiAxMXB4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7CiAgICAgICAgbGV0dGVyLXNwYWNpbmc6IDAuMDFlbTsKICAgICAgfQoKICAgICAgLmNvbnRyb2wgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBnYXA6IDZweDsKICAgICAgICBwYWRkaW5nOiAwIDEycHg7CiAgICAgICAgaGVpZ2h0OiAxMDAlOwogICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7CiAgICAgICAgY3Vyc29yOiBkZWZhdWx0OwogICAgICAgIGNvbG9yOiBoc2woMCAwJSA3MCUpOwogICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjE1cyBlYXNlOwogICAgICAgIGJvcmRlci1sZWZ0OiAxcHggc29saWQgaHNsKDAgMCUgMTAwJSAvIDAuMDgpOwogICAgICB9CgogICAgICAuY29udHJvbDpmaXJzdC1jaGlsZCB7CiAgICAgICAgYm9yZGVyLWxlZnQ6IG5vbmU7CiAgICAgIH0KCiAgICAgIC5jb250cm9sOmhvdmVyIHsKICAgICAgICBiYWNrZ3JvdW5kOiBoc2woMCAwJSAxMDAlIC8gMC4wNik7CiAgICAgICAgY29sb3I6IGhzbCgwIDAlIDk1JSk7CiAgICAgIH0KCiAgICAgIC5jb250cm9sIGRlZXMtaWNvbiB7CiAgICAgICAgZm9udC1zaXplOiAxM3B4OwogICAgICB9CgogICAgICAuY29udHJvbC5zdGF0dXMtY29ubmVjdGVkIGRlZXMtaWNvbiB7CiAgICAgICAgY29sb3I6IGhzbCgxNDIgNzAlIDUwJSk7CiAgICAgIH0KCiAgICAgIC5jb250cm9sLnN0YXR1cy10ZXJtaW5hbCBkZWVzLWljb24gewogICAgICAgIGNvbG9yOiBoc2woNDUgOTAlIDU1JSk7CiAgICAgIH0KICAgIGBdO3JlbmRlcigpe3JldHVybiB3YAogICAgICA8ZGl2IGNsYXNzPSJtYWluY29udGFpbmVyIj4KICAgICAgICA8ZGl2IGNsYXNzPSJhcHBiYXIiPgogICAgICAgICAgPGRpdiBjbGFzcz0ic2lkZWJhci1oZWFkZXIiPgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJoZWFkZXItaWNvbi13cmFwcGVyIj4KICAgICAgICAgICAgICA8ZGVlcy1pY29uIC5pY29uPSIkeyJsdWNpZGU6bGF5b3V0R3JpZCJ9Ij48L2RlZXMtaWNvbj4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9ImFwcE5hbWUiPiR7dGhpcy5uYW1lfTwvZGl2PgogICAgICAgICAgPC9kaXY+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJ2aWV3VGFicy1jb250YWluZXIiPgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJzZWN0aW9uLWxhYmVsIj5OYXZpZ2F0aW9uPC9kaXY+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9InZpZXdUYWJzIj4KICAgICAgICAgICAgICAke3RoaXMudmlld1RhYnMubWFwKE09PndgCiAgICAgICAgICAgICAgICAgIDxkaXYKICAgICAgICAgICAgICAgICAgICBjbGFzcz0idmlld1RhYiAke3RoaXMuc2VsZWN0ZWRWaWV3PT09TT8ic2VsZWN0ZWQiOiIifSIKICAgICAgICAgICAgICAgICAgICBAY2xpY2s9JHsoKT0+dGhpcy5sb2FkVmlldyhNKX0KICAgICAgICAgICAgICAgICAgPgogICAgICAgICAgICAgICAgICAgICR7TS5pY29uTmFtZT93YAogICAgICAgICAgICAgICAgICAgICAgPGRlZXMtaWNvbiAuaWNvbj0iJHtNLmljb25OYW1lLmluY2x1ZGVzKCI6Iik/TS5pY29uTmFtZTpgbHVjaWRlOiR7TS5pY29uTmFtZX1gfSI+PC9kZWVzLWljb24+CiAgICAgICAgICAgICAgICAgICAgYDp3YAogICAgICAgICAgICAgICAgICAgICAgPGRlZXMtaWNvbiAuaWNvbj0iJHsibHVjaWRlOmZpbGUifSI+PC9kZWVzLWljb24+CiAgICAgICAgICAgICAgICAgICAgYH0KICAgICAgICAgICAgICAgICAgICA8c3Bhbj4ke00ubmFtZX08L3NwYW4+CiAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgYCl9CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgPC9kaXY+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJhcHBBY3Rpb25zIj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0iYWN0aW9uIiBAY2xpY2s9JHsoKT0+e3RoaXMuZGlzcGF0Y2hFdmVudChuZXcgQ3VzdG9tRXZlbnQoImxvZ291dCIse2J1YmJsZXM6ITAsY29tcG9zZWQ6ITB9KSl9fT4KICAgICAgICAgICAgICA8ZGVlcy1pY29uIC5pY29uPSIkeyJsdWNpZGU6bG9nT3V0In0iPjwvZGVlcy1pY29uPgogICAgICAgICAgICAgIDxzcGFuPlNpZ24gb3V0PC9zcGFuPgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIDwvZGl2PgogICAgICAgIDwvZGl2PgogICAgICAgIDxkaXYgY2xhc3M9ImFwcGNvbnRlbnQiPgogICAgICAgICAgPCEtLSBDb250ZW50IGdvZXMgaGVyZSAtLT4KICAgICAgICA8L2Rpdj4KICAgICAgICA8ZGl2IGNsYXNzPSJjb250cm9sYmFyIj4KICAgICAgICAgIDxkaXYgY2xhc3M9ImNvbnRyb2wgc3RhdHVzLWNvbm5lY3RlZCI+CiAgICAgICAgICAgIDxkZWVzLWljb24gLmljb249IiR7Imx1Y2lkZTp3aWZpIn0iPjwvZGVlcy1pY29uPgogICAgICAgICAgICA8c3Bhbj5Db25uZWN0ZWQ8L3NwYW4+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIDxkaXYgY2xhc3M9ImNvbnRyb2wgc3RhdHVzLXRlcm1pbmFsIiBAY2xpY2s9JHt0aGlzLmxhdW5jaFRlcm1pbmFsfT4KICAgICAgICAgICAgPGRlZXMtaWNvbiAuaWNvbj0iJHsibHVjaWRlOnRlcm1pbmFsIn0iPjwvZGVlcy1pY29uPgogICAgICAgICAgICA8c3Bhbj5UZXJtaW5hbDwvc3Bhbj4KICAgICAgICAgIDwvZGl2PgogICAgICAgIDwvZGl2PgogICAgICA8L2Rpdj4KICAgIGB9YXN5bmMgZmlyc3RVcGRhdGVkKE0pe2xldCBTPWF3YWl0IHRoaXMuZG9tdG9vbHNQcm9taXNlO2lmKHN1cGVyLmZpcnN0VXBkYXRlZChNKSx0aGlzLnZpZXdUYWJzJiZ0aGlzLnZpZXdUYWJzLmxlbmd0aD4wKXtsZXQgRj10aGlzLnNlbGVjdGVkVmlld3x8dGhpcy52aWV3VGFic1swXTthd2FpdCB0aGlzLmxvYWRWaWV3KEYpfX1jdXJyZW50VGVybWluYWw9WXModGhpcyxtKTthc3luYyBsYXVuY2hUZXJtaW5hbCgpe2xldCBNPWF3YWl0IHRoaXMuZG9tdG9vbHNQcm9taXNlO2lmKHRoaXMuY3VycmVudFRlcm1pbmFsKXthd2FpdCB0aGlzLmNsb3NlVGVybWluYWwoKTtyZXR1cm59bGV0IFM9dGhpcy5zaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3IoIi5tYWluY29udGFpbmVyIikse0RlZXNXb3Jrc3BhY2VUZXJtaW5hbDpGfT1hd2FpdCBQcm9taXNlLnJlc29sdmUoKS50aGVuKCgpPT4odGQoKSxJeXQpKSxfPW5ldyBGO3JldHVybiBfLnNldHVwQ29tbWFuZD10aGlzLnRlcm1pbmFsU2V0dXBDb21tYW5kLHRoaXMuY3VycmVudFRlcm1pbmFsPV8sUy5hcHBlbmRDaGlsZChfKSxfLnN0eWxlLnBvc2l0aW9uPSJhYnNvbHV0ZSIsXy5zdHlsZS56SW5kZXg9IjEwIixfLnN0eWxlLnRvcD0iMHB4IixfLnN0eWxlLmxlZnQ9IjI0MHB4IixfLnN0eWxlLnJpZ2h0PSIwcHgiLF8uc3R5bGUuYm90dG9tPSIyNHB4IixfLnN0eWxlLm9wYWNpdHk9IjAiLF8uc3R5bGUudHJhbnNmb3JtPSJ0cmFuc2xhdGVZKDhweCkgc2NhbGUoMC45OSkiLF8uc3R5bGUudHJhbnNpdGlvbj0iYWxsIDAuMjVzIGN1YmljLWJlemllcigwLjQsIDAsIDAuMiwgMSkiLF8uc3R5bGUuYm94U2hhZG93PSIwIDI1cHggNTBweCAtMTJweCByZ2IoMCAwIDAgLyAwLjUpLCAwIDAgMCAxcHggcmdiKDI1NSAyNTUgMjU1IC8gMC4wNSkiLF8uc3R5bGUubWF4V2lkdGg9YGNhbGMoJHtTLmNsaWVudFdpZHRofXB4IC0yNDBweClgLF8uc3R5bGUubWF4SGVpZ2h0PWBjYWxjKCR7Uy5jbGllbnRIZWlnaHR9cHggLSAyNHB4KWAsXy5hZGRFdmVudExpc3RlbmVyKCJjbG9zZSIsKCk9PnRoaXMuY2xvc2VUZXJtaW5hbCgpKSxhd2FpdCBNLmNvbnZlbmllbmNlLnNtYXJ0ZGVsYXkuZGVsYXlGb3IoMCksXy5zdHlsZS5vcGFjaXR5PSIxIixfLnN0eWxlLnRyYW5zZm9ybT0idHJhbnNsYXRlWSgwKSBzY2FsZSgxKSIsX31hc3luYyBjbG9zZVRlcm1pbmFsKCl7bGV0IE09YXdhaXQgdGhpcy5kb210b29sc1Byb21pc2U7dGhpcy5jdXJyZW50VGVybWluYWwmJih0aGlzLmN1cnJlbnRUZXJtaW5hbC5zdHlsZS5vcGFjaXR5PSIwIix0aGlzLmN1cnJlbnRUZXJtaW5hbC5zdHlsZS50cmFuc2Zvcm09InRyYW5zbGF0ZVkoOHB4KSBzY2FsZSgwLjk5KSIsYXdhaXQgTS5jb252ZW5pZW5jZS5zbWFydGRlbGF5LmRlbGF5Rm9yKDI1MCksdGhpcy5jdXJyZW50VGVybWluYWwucmVtb3ZlKCksdGhpcy5jdXJyZW50VGVybWluYWw9bnVsbCl9Y3VycmVudFZpZXc7YXN5bmMgbG9hZFZpZXcoTSl7bGV0IFM9dGhpcy5zaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3IoIi5hcHBjb250ZW50IiksRj1uZXcgTS5lbGVtZW50O3RoaXMuY3VycmVudFZpZXcmJnRoaXMuY3VycmVudFZpZXcucmVtb3ZlKCksUy5hcHBlbmRDaGlsZChGKSx0aGlzLmN1cnJlbnRWaWV3PUYsdGhpcy5zZWxlY3RlZFZpZXc9TSx0aGlzLmRpc3BhdGNoRXZlbnQobmV3IEN1c3RvbUV2ZW50KCJ2aWV3LXNlbGVjdCIse2RldGFpbDp7dmlldzpNfSxidWJibGVzOiEwLGNvbXBvc2VkOiEwfSkpfXN0YXRpY3tZcyhpLGEpfX07cmV0dXJuIHg9aX0pKCl9KTt2YXIgQnl0PWIoKCk9PntSeXQoKX0pO3ZhciBIeXQscXl0PWIoKCk9Pnt1ZSgpO0h5dD0oKT0+d2AKICA8c3R5bGU+CiAgICBib2R5IHsKICAgICAgbWFyZ2luOiAwOwogICAgICBwYWRkaW5nOiAwOwogICAgfQogICAgLmRlbW8tY29udGFpbmVyIHsKICAgICAgd2lkdGg6IDEwMCU7CiAgICAgIGhlaWdodDogMTAwJTsKICAgICAgcG9zaXRpb246IGFic29sdXRlOwogICAgICB0b3A6IDA7CiAgICAgIGxlZnQ6IDA7CiAgICB9CiAgPC9zdHlsZT4KICA8ZGl2IGNsYXNzPSJkZW1vLWNvbnRhaW5lciI+CiAgICA8ZGVlcy1zaW1wbGUtbG9naW4gCiAgICAgIG5hbWU9Ik15IEFwcGxpY2F0aW9uIgogICAgICBAbG9naW49JHt0PT57Y29uc29sZS5sb2coIkxvZ2luIGV2ZW50IHJlY2VpdmVkOiIsdC5kZXRhaWwpO2xldCBlPXQuZGV0YWlsPy5kYXRhfHx0LmRldGFpbDtlPy51c2VybmFtZSYmZT8ucGFzc3dvcmQ/YWxlcnQoYExvZ2luIGF0dGVtcHRlZCB3aXRoOgpVc2VybmFtZTogJHtlLnVzZXJuYW1lfQpQYXNzd29yZDogJHtlLnBhc3N3b3JkfWApOmNvbnNvbGUuZXJyb3IoIkludmFsaWQgbG9naW4gZGF0YSBzdHJ1Y3R1cmU6Iix0LmRldGFpbCl9fQogICAgPgogICAgICA8ZGl2IHN0eWxlPSJwYWRkaW5nOiA0MHB4OyB0ZXh0LWFsaWduOiBjZW50ZXI7Ij4KICAgICAgICA8aDE+V2VsY29tZSE8L2gxPgogICAgICAgIDxwPlRoaXMgaXMgdGhlIHNsb3R0ZWQgY29udGVudCB0aGF0IGFwcGVhcnMgYWZ0ZXIgbG9naW4uPC9wPgogICAgICA8L2Rpdj4KICAgIDwvZGVlcy1zaW1wbGUtbG9naW4+CiAgPC9kaXY+CmB9KTt2YXIgVnl0LE1qLGp5dCxVeXQ9YigoKT0+e3F5dCgpO3VlKCk7cWUoKTtWeXQ9ZnVuY3Rpb24odCxlLGEsaSxyLHMpe2Z1bmN0aW9uIG4oeCl7aWYoeCE9PXZvaWQgMCYmdHlwZW9mIHghPSJmdW5jdGlvbiIpdGhyb3cgbmV3IFR5cGVFcnJvcigiRnVuY3Rpb24gZXhwZWN0ZWQiKTtyZXR1cm4geH1mb3IodmFyIG89aS5raW5kLGQ9bz09PSJnZXR0ZXIiPyJnZXQiOm89PT0ic2V0dGVyIj8ic2V0IjoidmFsdWUiLGM9IWUmJnQ/aS5zdGF0aWM/dDp0LnByb3RvdHlwZTpudWxsLGg9ZXx8KGM/T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihjLGkubmFtZSk6e30pLGwsZj0hMSxnPWEubGVuZ3RoLTE7Zz49MDtnLS0pe3ZhciB5PXt9O2Zvcih2YXIgdiBpbiBpKXlbdl09dj09PSJhY2Nlc3MiP3t9Omlbdl07Zm9yKHZhciB2IGluIGkuYWNjZXNzKXkuYWNjZXNzW3ZdPWkuYWNjZXNzW3ZdO3kuYWRkSW5pdGlhbGl6ZXI9ZnVuY3Rpb24oeCl7aWYoZil0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgYWRkIGluaXRpYWxpemVycyBhZnRlciBkZWNvcmF0aW9uIGhhcyBjb21wbGV0ZWQiKTtzLnB1c2gobih4fHxudWxsKSl9O3ZhciBtPSgwLGFbZ10pKG89PT0iYWNjZXNzb3IiP3tnZXQ6aC5nZXQsc2V0Omguc2V0fTpoW2RdLHkpO2lmKG89PT0iYWNjZXNzb3IiKXtpZihtPT09dm9pZCAwKWNvbnRpbnVlO2lmKG09PT1udWxsfHx0eXBlb2YgbSE9Im9iamVjdCIpdGhyb3cgbmV3IFR5cGVFcnJvcigiT2JqZWN0IGV4cGVjdGVkIik7KGw9bihtLmdldCkpJiYoaC5nZXQ9bCksKGw9bihtLnNldCkpJiYoaC5zZXQ9bCksKGw9bihtLmluaXQpKSYmci51bnNoaWZ0KGwpfWVsc2UobD1uKG0pKSYmKG89PT0iZmllbGQiP3IudW5zaGlmdChsKTpoW2RdPWwpfWMmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShjLGkubmFtZSxoKSxmPSEwfSxNaj1mdW5jdGlvbih0LGUsYSl7Zm9yKHZhciBpPWFyZ3VtZW50cy5sZW5ndGg+MixyPTA7cjxlLmxlbmd0aDtyKyspYT1pP2Vbcl0uY2FsbCh0LGEpOmVbcl0uY2FsbCh0KTtyZXR1cm4gaT9hOnZvaWQgMH0sanl0PSgoKT0+e2xldCB0PVtwZSgiZGVlcy1zaW1wbGUtbG9naW4iKV0sZSxhPVtdLGkscj14ZSxzLG49W10sbz1bXTt2YXIgZD1jbGFzcyBleHRlbmRzIHJ7c3RhdGlje2k9dGhpc31zdGF0aWN7bGV0IGM9dHlwZW9mIFN5bWJvbD09ImZ1bmN0aW9uIiYmU3ltYm9sLm1ldGFkYXRhP09iamVjdC5jcmVhdGUocltTeW1ib2wubWV0YWRhdGFdPz9udWxsKTp2b2lkIDA7cz1bSSgpXSxWeXQodGhpcyxudWxsLHMse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJuYW1lIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpoPT4ibmFtZSJpbiBoLGdldDpoPT5oLm5hbWUsc2V0OihoLGwpPT57aC5uYW1lPWx9fSxtZXRhZGF0YTpjfSxuLG8pLFZ5dChudWxsLGU9e3ZhbHVlOml9LHQse2tpbmQ6ImNsYXNzIixuYW1lOmkubmFtZSxtZXRhZGF0YTpjfSxudWxsLGEpLGQ9aT1lLnZhbHVlLGMmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShpLFN5bWJvbC5tZXRhZGF0YSx7ZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITAsdmFsdWU6Y30pfXN0YXRpYyBkZW1vPUh5dDtzdGF0aWMgZGVtb0dyb3Vwcz1bIlNpbXBsZSJdOyNlPU1qKHRoaXMsbiwiQXBwbGljYXRpb24iKTtnZXQgbmFtZSgpe3JldHVybiB0aGlzLiNlfXNldCBuYW1lKGMpe3RoaXMuI2U9Y31zdGF0aWMgc3R5bGVzPVtDZSxwLmRlZmF1bHRTdHlsZXMsUWAKICAgICAgLyogVE9ETzogTWlncmF0ZSBoYXJkY29kZWQgdmFsdWVzIHRvIC0tZGVlcy0qIENTUyB2YXJpYWJsZXMgKi8KICAgICAgOmhvc3QgewogICAgICAgIGNvbG9yOiAke3AuYmRUaGVtZSgiaHNsKDAgMCUgMy45JSkiLCJoc2woMCAwJSA5OCUpIil9OwogICAgICAgIHVzZXItc2VsZWN0OiBub25lOwogICAgICAgIGRpc3BsYXk6IGJsb2NrOwogICAgICAgIHdpZHRoOiAxMDAlOwogICAgICAgIGhlaWdodDogMTAwJTsKICAgICAgICBmb250LWZhbWlseTogJ0dlaXN0IFNhbnMnLCBzYW5zLXNlcmlmOwogICAgICB9CgogICAgICAubG9naW5Db250YWluZXIgewogICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgICAgaGVpZ2h0OiAxMDAlOwogICAgICAgIHRvcDogMDsKICAgICAgICBsZWZ0OiAwOwogICAgICAgIGJhY2tncm91bmQ6ICR7cC5iZFRoZW1lKCJoc2woMCAwJSAxMDAlKSIsImhzbCgwIDAlIDMuOSUpIil9OwogICAgICB9CgogICAgICAuc2xvdENvbnRhaW5lciB7CiAgICAgICAgcG9zaXRpb246IGFic29sdXRlOwogICAgICAgIHdpZHRoOiAxMDAlOwogICAgICAgIGhlaWdodDogMTAwJTsKICAgICAgICB0b3A6IDA7CiAgICAgICAgbGVmdDogMDsKICAgICAgICBvcGFjaXR5OiAwOwogICAgICAgIHRyYW5zaXRpb246IG9wYWNpdHkgMC4ycyBlYXNlLCB0cmFuc2Zvcm0gMC4ycyBlYXNlOwogICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lOwogICAgICB9CgogICAgICAubG9naW4gewogICAgICAgIHdpZHRoOiAxMDAlOwogICAgICAgIG1heC13aWR0aDogMzYwcHg7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICAgIGdhcDogMjRweDsKICAgICAgfQoKICAgICAgLmxvZ2luLWhlYWRlciB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICAgIGdhcDogOHB4OwogICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjsKICAgICAgfQoKICAgICAgLmhlYWRlciB7CiAgICAgICAgZm9udC1zaXplOiAyNHB4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7CiAgICAgICAgbGV0dGVyLXNwYWNpbmc6IC0wLjAyNWVtOwogICAgICAgIGNvbG9yOiAke3AuYmRUaGVtZSgiaHNsKDAgMCUgOSUpIiwiaHNsKDAgMCUgOTglKSIpfTsKICAgICAgfQoKICAgICAgLnN1YmhlYWRlciB7CiAgICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgICAgIGNvbG9yOiAke3AuYmRUaGVtZSgiaHNsKDAgMCUgNDUuMSUpIiwiaHNsKDAgMCUgNjMuOSUpIil9OwogICAgICB9CgogICAgICAubG9naW4tY2FyZCB7CiAgICAgICAgYmFja2dyb3VuZDogJHtwLmJkVGhlbWUoImhzbCgwIDAlIDEwMCUpIiwiaHNsKDAgMCUgOSUpIil9OwogICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICR7cC5iZFRoZW1lKCJoc2woMCAwJSA4OS44JSkiLCJoc2woMCAwJSAxNC45JSkiKX07CiAgICAgICAgYm9yZGVyLXJhZGl1czogOHB4OwogICAgICAgIHBhZGRpbmc6IDI0cHg7CiAgICAgIH0KCiAgICAgIC5sb2dpbi1jYXJkIGRlZXMtZm9ybSB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICAgIGdhcDogMTZweDsKICAgICAgfQoKICAgICAgLmxvZ2luLWNhcmQgZGVlcy1pbnB1dC10ZXh0IHsKICAgICAgICB3aWR0aDogMTAwJTsKICAgICAgfQoKICAgICAgLmxvZ2luLWNhcmQgZGVlcy1mb3JtLXN1Ym1pdCB7CiAgICAgICAgbWFyZ2luLXRvcDogOHB4OwogICAgICAgIHdpZHRoOiAxMDAlOwogICAgICB9CiAgICBgXTtyZW5kZXIoKXtyZXR1cm4gd2AKICAgICAgPGRpdiBjbGFzcz0ibG9naW5Db250YWluZXIiPgogICAgICAgIDxkaXYgY2xhc3M9ImxvZ2luIj4KICAgICAgICAgIDxkaXYgY2xhc3M9ImxvZ2luLWhlYWRlciI+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9ImhlYWRlciI+U2lnbiBpbjwvZGl2PgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJzdWJoZWFkZXIiPkVudGVyIHlvdXIgY3JlZGVudGlhbHMgdG8gYWNjZXNzICR7dGhpcy5uYW1lfTwvZGl2PgogICAgICAgICAgPC9kaXY+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJsb2dpbi1jYXJkIj4KICAgICAgICAgICAgPGRlZXMtZm9ybT4KICAgICAgICAgICAgICA8ZGVlcy1pbnB1dC10ZXh0IGtleT0idXNlcm5hbWUiIGxhYmVsPSJVc2VybmFtZSIgcmVxdWlyZWQ+PC9kZWVzLWlucHV0LXRleHQ+CiAgICAgICAgICAgICAgPGRlZXMtaW5wdXQtdGV4dCBrZXk9InBhc3N3b3JkIiBsYWJlbD0iUGFzc3dvcmQiIGlzUGFzc3dvcmRCb29sIHJlcXVpcmVkPjwvZGVlcy1pbnB1dC10ZXh0PgogICAgICAgICAgICAgIDxkZWVzLWZvcm0tc3VibWl0PlNpZ24gaW48L2RlZXMtZm9ybS1zdWJtaXQ+CiAgICAgICAgICAgIDwvZGVlcy1mb3JtPgogICAgICAgICAgPC9kaXY+CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGl2PgogICAgICA8ZGl2IGNsYXNzPSJzbG90Q29udGFpbmVyIj4KICAgICAgICA8c2xvdD48L3Nsb3Q+CiAgICAgIDwvZGl2PgogICAgYH1hc3luYyBmaXJzdFVwZGF0ZWQoYyl7c3VwZXIuZmlyc3RVcGRhdGVkKGMpO2xldCBoPXRoaXMuc2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yKCJkZWVzLWZvcm0iKTtoJiZoLmFkZEV2ZW50TGlzdGVuZXIoImZvcm1EYXRhIixsPT57dGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBDdXN0b21FdmVudCgibG9naW4iLHtkZXRhaWw6bC5kZXRhaWwsYnViYmxlczohMCxjb21wb3NlZDohMH0pKX0pfWFzeW5jIHN3aXRjaFRvU2xvdHRlZENvbnRlbnQoKXtsZXQgYz1hd2FpdCB0aGlzLmRvbXRvb2xzUHJvbWlzZSxoPXRoaXMuc2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yKCIubG9naW4iKSxsPXRoaXMuc2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yKCIubG9naW5Db250YWluZXIiKSxmPXRoaXMuc2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yKCIuc2xvdENvbnRhaW5lciIpO2guc3R5bGUub3BhY2l0eT0iMCIsaC5zdHlsZS50cmFuc2Zvcm09InRyYW5zbGF0ZVkoMjBweCkiLGwuc3R5bGUucG9pbnRlckV2ZW50cz0ibm9uZSIsZi5zdHlsZS50cmFuc2Zvcm09InRyYW5zbGF0ZVkoMjBweCkiLGF3YWl0IGMuY29udmVuaWVuY2Uuc21hcnRkZWxheS5kZWxheUZvcigzMDApLGYuc3R5bGUub3BhY2l0eT0iMSIsZi5zdHlsZS50cmFuc2Zvcm09InRyYW5zbGF0ZVkoMHB4KSIsYXdhaXQgYy5jb252ZW5pZW5jZS5zbWFydGRlbGF5LmRlbGF5Rm9yKDMwMCksZi5zdHlsZS5wb2ludGVyRXZlbnRzPSJhbGwifWNvbnN0cnVjdG9yKCl7c3VwZXIoLi4uYXJndW1lbnRzKSxNaih0aGlzLG8pfXN0YXRpY3tNaihpLGEpfX07cmV0dXJuIGQ9aX0pKCl9KTt2YXIgV3l0PWIoKCk9PntVeXQoKX0pO3ZhciBHeXQ9YigoKT0+e1B5dCgpO0J5dCgpO1d5dCgpfSk7dmFyIFl5dD1iKCgpPT57RHQoKX0pO3ZhciBaeXQsWHl0PWIoKCk9Pnt1ZSgpO1p5dD0oKT0+d2AKICAgIDxzdHlsZT4KICAgICAgLmRlbW9XcmFwcGVyIHsKICAgICAgICBkaXNwbGF5OiBibG9jazsKICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgCiAgICAgICAgYmFja2dyb3VuZDogIzg4ODg4ODsKICAgICAgfQogICAgICAubG9ncyB7CiAgICAgICAgcGFkZGluZzogMTZweDsKICAgICAgICB3aWR0aDogNjAwcHg7CiAgICAgICAgY29sb3I6ICNmZmY7CiAgICAgICAgZm9udC1mYW1pbHk6IG1vbm9zcGFjZTsKICAgICAgfQogICAgICAubG9ncyBkaXYgewogICAgICAgIG1hcmdpbjogNHB4IDA7CiAgICAgIH0KICAgIDwvc3R5bGU+CiAgICA8ZGl2IGNsYXNzPSJkZW1vV3JhcHBlciI+CiAgICAgIDxkZWVzLXNlYXJjaGJhcgogICAgICAgIEBzZWFyY2gtY2hhbmdlZD0ke2E9PntsZXQgcj1hLnRhcmdldC5jbG9zZXN0KCIuZGVtb1dyYXBwZXIiKT8ucXVlcnlTZWxlY3RvcigiI2NoYW5nZWQiKTtyJiYoci50ZXh0Q29udGVudD1gc2VhcmNoLWNoYW5nZWQ6ICR7YS5kZXRhaWwudmFsdWV9YCl9fQogICAgICAgIEBzZWFyY2gtc3VibWl0PSR7YT0+e2xldCByPWEudGFyZ2V0LmNsb3Nlc3QoIi5kZW1vV3JhcHBlciIpPy5xdWVyeVNlbGVjdG9yKCIjc3VibWl0dGVkIik7ciYmKHIudGV4dENvbnRlbnQ9YHNlYXJjaC1zdWJtaXQ6ICR7YS5kZXRhaWwudmFsdWV9YCl9fQogICAgICA+PC9kZWVzLXNlYXJjaGJhcj4KICAgICAgPGRpdiBjbGFzcz0ibG9ncyI+CiAgICAgICAgPGRpdiBpZD0iY2hhbmdlZCI+c2VhcmNoLWNoYW5nZWQ6PC9kaXY+CiAgICAgICAgPGRpdiBpZD0ic3VibWl0dGVkIj5zZWFyY2gtc3VibWl0OjwvZGl2PgogICAgICA8L2Rpdj4KICAgIDwvZGl2PgogIGB9KTt2YXIgS3l0LHpqLFF5dCxKeXQ9YigoKT0+e3VlKCk7Z2koKTtYeXQoKTtxZSgpO0t5dD1mdW5jdGlvbih0LGUsYSxpLHIscyl7ZnVuY3Rpb24gbih4KXtpZih4IT09dm9pZCAwJiZ0eXBlb2YgeCE9ImZ1bmN0aW9uIil0aHJvdyBuZXcgVHlwZUVycm9yKCJGdW5jdGlvbiBleHBlY3RlZCIpO3JldHVybiB4fWZvcih2YXIgbz1pLmtpbmQsZD1vPT09ImdldHRlciI/ImdldCI6bz09PSJzZXR0ZXIiPyJzZXQiOiJ2YWx1ZSIsYz0hZSYmdD9pLnN0YXRpYz90OnQucHJvdG90eXBlOm51bGwsaD1lfHwoYz9PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGMsaS5uYW1lKTp7fSksbCxmPSExLGc9YS5sZW5ndGgtMTtnPj0wO2ctLSl7dmFyIHk9e307Zm9yKHZhciB2IGluIGkpeVt2XT12PT09ImFjY2VzcyI/e306aVt2XTtmb3IodmFyIHYgaW4gaS5hY2Nlc3MpeS5hY2Nlc3Nbdl09aS5hY2Nlc3Nbdl07eS5hZGRJbml0aWFsaXplcj1mdW5jdGlvbih4KXtpZihmKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBhZGQgaW5pdGlhbGl6ZXJzIGFmdGVyIGRlY29yYXRpb24gaGFzIGNvbXBsZXRlZCIpO3MucHVzaChuKHh8fG51bGwpKX07dmFyIG09KDAsYVtnXSkobz09PSJhY2Nlc3NvciI/e2dldDpoLmdldCxzZXQ6aC5zZXR9OmhbZF0seSk7aWYobz09PSJhY2Nlc3NvciIpe2lmKG09PT12b2lkIDApY29udGludWU7aWYobT09PW51bGx8fHR5cGVvZiBtIT0ib2JqZWN0Iil0aHJvdyBuZXcgVHlwZUVycm9yKCJPYmplY3QgZXhwZWN0ZWQiKTsobD1uKG0uZ2V0KSkmJihoLmdldD1sKSwobD1uKG0uc2V0KSkmJihoLnNldD1sKSwobD1uKG0uaW5pdCkpJiZyLnVuc2hpZnQobCl9ZWxzZShsPW4obSkpJiYobz09PSJmaWVsZCI/ci51bnNoaWZ0KGwpOmhbZF09bCl9YyYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGMsaS5uYW1lLGgpLGY9ITB9LHpqPWZ1bmN0aW9uKHQsZSxhKXtmb3IodmFyIGk9YXJndW1lbnRzLmxlbmd0aD4yLHI9MDtyPGUubGVuZ3RoO3IrKylhPWk/ZVtyXS5jYWxsKHQsYSk6ZVtyXS5jYWxsKHQpO3JldHVybiBpP2E6dm9pZCAwfSxReXQ9KCgpPT57bGV0IHQ9W3BlKCJkZWVzLXNlYXJjaGJhciIpXSxlLGE9W10saSxyPXhlLHMsbj1bXSxvPVtdO3ZhciBkPWNsYXNzIGV4dGVuZHMgcntzdGF0aWN7aT10aGlzfXN0YXRpY3tsZXQgYz10eXBlb2YgU3ltYm9sPT0iZnVuY3Rpb24iJiZTeW1ib2wubWV0YWRhdGE/T2JqZWN0LmNyZWF0ZShyW1N5bWJvbC5tZXRhZGF0YV0/P251bGwpOnZvaWQgMDtzPVtJKCldLEt5dCh0aGlzLG51bGwscyx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImZpbHRlcnMiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmg9PiJmaWx0ZXJzImluIGgsZ2V0Omg9PmguZmlsdGVycyxzZXQ6KGgsbCk9PntoLmZpbHRlcnM9bH19LG1ldGFkYXRhOmN9LG4sbyksS3l0KG51bGwsZT17dmFsdWU6aX0sdCx7a2luZDoiY2xhc3MiLG5hbWU6aS5uYW1lLG1ldGFkYXRhOmN9LG51bGwsYSksZD1pPWUudmFsdWUsYyYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGksU3ltYm9sLm1ldGFkYXRhLHtlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMCx2YWx1ZTpjfSl9c3RhdGljIGRlbW89Wnl0O3N0YXRpYyBkZW1vR3JvdXBzPVsiVXRpbGl0eSJdO3N0YXRpYyBzdHlsZXM9W0NlLHAuZGVmYXVsdFN0eWxlcyxRYAogICAgICAvKiBUT0RPOiBNaWdyYXRlIGhhcmRjb2RlZCB2YWx1ZXMgdG8gLS1kZWVzLSogQ1NTIHZhcmlhYmxlcyAqLwogICAgICA6aG9zdCB7CiAgICAgICAgcGFkZGluZzogNDBweDsKICAgICAgICBmb250LWZhbWlseTogRGVlcyBTYW5zOwogICAgICAgIGRpc3BsYXk6IGJsb2NrOwogICAgICAgIGJhY2tncm91bmQ6ICR7cC5iZFRoZW1lKCIjZWVlZWViIiwiIzAwMDAwMCIpfTsKICAgICAgfQoKICAgICAgLnNlYXJjaGJveENvbnRhaW5lciB7CiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICAgIG1hcmdpbjogYXV0bzsKICAgICAgICBtYXgtd2lkdGg6IDgwMHB4OwogICAgICAgIGJhY2tncm91bmQ6ICR7cC5iZFRoZW1lKCIjMDAwMDAwMTUiLCIjZmZmZmZmMTUiKX07CiAgICAgICAgLS1ib3hIZWlnaHQ6IDYwcHg7CiAgICAgICAgaGVpZ2h0OiB2YXIoLS1ib3hIZWlnaHQpOwogICAgICAgIGJvcmRlci1yYWRpdXM6IHZhcigtLWJveEhlaWdodCk7CiAgICAgICAgZGlzcGxheTogZ3JpZDsKICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDFmciAxNDBweDsKICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAke3AuYmRUaGVtZSgiIzAwMDAwMDE1IiwiI2ZmZmZmZjIwIil9OwogICAgICB9CgogICAgICBpbnB1dCB7CiAgICAgICAgaGVpZ2h0OiAxMDAlOwogICAgICAgIHdpZHRoOiAxMDAlOwogICAgICAgIGJvcmRlcjogbm9uZTsKICAgICAgICBiYWNrZ3JvdW5kOiBub25lOwogICAgICAgIGNvbG9yOiAke3AuYmRUaGVtZSgiIzAwMDAwMCIsIiNlZWVlZWIiKX07CiAgICAgICAgcGFkZGluZy1sZWZ0OiAyNXB4OwogICAgICAgIG1hcmdpbi1yaWdodDogLThweDsKICAgICAgICBvdXRsaW5lOiBub25lOwogICAgICAgIGZvbnQtc2l6ZTogMTZweDsKICAgICAgfQoKICAgICAgLnNlYXJjaEJ1dHRvbiB7CiAgICAgICAgLS1idXR0b25QYWRkaW5nOiA4cHg7CiAgICAgICAgYmFja2dyb3VuZDogJHtwLmJkVGhlbWUoIiNlZWVlZWIiLCIjMDAwMDAwIil9OwogICAgICAgIGNvbG9yOiAke3AuYmRUaGVtZSgiIzAwMDAwMCIsIiNlZWVlZWIiKX07CiAgICAgICAgbGluZS1oZWlnaHQ6IGNhbGModmFyKC0tYm94SGVpZ2h0KSAtICh2YXIoLS1idXR0b25QYWRkaW5nKSAqIDIpKTsKICAgICAgICBib3JkZXItcmFkaXVzOiB2YXIoLS1ib3hIZWlnaHQpOwogICAgICAgIHRyYW5zZm9ybTogc2NhbGUoMSkgOwogICAgICAgIHRyYW5zZm9ybS1vcmlnaW46IDUwJSA1MCU7CiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyOwogICAgICAgIAogICAgICAgIHRyYW5zaXRpb246IHRyYW5zZm9ybSAwLjFzLCBiYWNrZ3JvdW5kIDAuMXM7CiAgICAgICAgbWFyZ2luLXJpZ2h0OiB2YXIoLS1idXR0b25QYWRkaW5nKTsKICAgICAgICB1c2VyLXNlbGVjdDogbm9uZTsKICAgICAgfQoKICAgICAgLnNlYXJjaEJ1dHRvbjpob3ZlciB7CiAgICAgICAgY29sb3I6ICNmZmY7CiAgICAgICAgYmFja2dyb3VuZDogJHtwLmJkVGhlbWUoVTAuYmx1ZSxtaS5ibHVlKX07CiAgICAgIH0KCiAgICAgIC5zZWFyY2hCdXR0b246YWN0aXZlIHsKICAgICAgICBjb2xvcjogI2ZmZjsKICAgICAgICBiYWNrZ3JvdW5kOiAke3AuYmRUaGVtZShVMC5ibHVlQWN0aXZlLG1pLmJsdWVBY3RpdmUpfTsKICAgICAgICB0cmFuc2Zvcm06IHNjYWxlKDAuOTgpOwogICAgICB9CgogICAgICAuZmlsdGVycyB7CiAgICAgICAgbWFyZ2luOiBhdXRvOwogICAgICAgIG1heC13aWR0aDogODAwcHg7CiAgICAgIH0KICAgIGBdOyNlPXpqKHRoaXMsbixbXSk7Z2V0IGZpbHRlcnMoKXtyZXR1cm4gdGhpcy4jZX1zZXQgZmlsdGVycyhjKXt0aGlzLiNlPWN9c2VhcmNoSW5wdXQ9emoodGhpcyxvKTtzZWFyY2hCdXR0b247Y29uc3RydWN0b3IoKXtzdXBlcigpfXJlbmRlcigpe3JldHVybiB3YAogICAgICA8ZGl2IGNsYXNzPSJzZWFyY2hib3hDb250YWluZXIiPgogICAgICAgIDxpbnB1dCB0eXBlPSJ0ZXh0IiBwbGFjZWhvbGRlcj0iWW91ciBTa2lsbHMgKGUuZy4gVHlwZVNjcmlwdCwgUnVzdCwgUHJvamVjdG1hbmFnZW1lbnQpIiAvPgogICAgICAgIDxkaXYgY2xhc3M9InNlYXJjaEJ1dHRvbiI+U2VhcmNoIC0+PC9kaXY+CiAgICAgIDwvZGl2PgogICAgICAke3RoaXMuZmlsdGVycy5sZW5ndGg+MD93YAogICAgICAgIDxkaXYgY2xhc3M9ImZpbHRlcnMiPgogICAgICAgIDxkZWVzLWhlYWRpbmcgbGV2ZWw9ImhyLXNtYWxsIj5GaWx0ZXJzPC9kZWVzLWhlYWRpbmc+CiAgICAgICAgPGRlZXMtaW5wdXQtZHJvcGRvd24gLmxhYmVsPSR7ImxvY2F0aW9uIn0+PC9kZWVzLWlucHV0LWRyb3Bkb3duPgogICAgICA8L2Rpdj4gIAogICAgICBgOndgYH0KICAgIGB9Zmlyc3RVcGRhdGVkKCl7dGhpcy5zZWFyY2hJbnB1dC5hZGRFdmVudExpc3RlbmVyKCJpbnB1dCIsKCk9Pnt0aGlzLmRpc3BhdGNoRXZlbnQobmV3IEN1c3RvbUV2ZW50KCJzZWFyY2gtY2hhbmdlZCIse2J1YmJsZXM6ITAsY29tcG9zZWQ6ITAsZGV0YWlsOnt2YWx1ZTp0aGlzLnNlYXJjaElucHV0LnZhbHVlfX0pKX0pLHRoaXMuc2VhcmNoSW5wdXQuYWRkRXZlbnRMaXN0ZW5lcigia2V5ZG93biIsYz0+e2Mua2V5PT09IkVudGVyIiYmdGhpcy5fZGlzcGF0Y2hTdWJtaXQoKX0pLHRoaXMuc2VhcmNoQnV0dG9uLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIiwoKT0+dGhpcy5fZGlzcGF0Y2hTdWJtaXQoKSl9X2Rpc3BhdGNoU3VibWl0KCl7dGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBDdXN0b21FdmVudCgic2VhcmNoLXN1Ym1pdCIse2J1YmJsZXM6ITAsY29tcG9zZWQ6ITAsZGV0YWlsOnt2YWx1ZTp0aGlzLnNlYXJjaElucHV0LnZhbHVlfX0pKX1zdGF0aWN7emooaSxhKX19O3JldHVybiBkPWl9KSgpfSk7dmFyIGV4dD1iKCgpPT57Snl0KCl9KTt2YXIgdHh0LGF4dD1iKCgpPT57dWUoKTt0eHQ9KCk9PndgCiAgPHN0eWxlPgogICAgLmRlbW8tY29udGFpbmVyIHsKICAgICAgZGlzcGxheTogZmxleDsKICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgZ2FwOiAzMnB4OwogICAgICBwYWRkaW5nOiA0OHB4OwogICAgICBiYWNrZ3JvdW5kOiAke3AuYmRUaGVtZSgiI2Y4ZjlmYSIsIiMwYTBhMGEiKX07CiAgICAgIG1pbi1oZWlnaHQ6IDEwMHZoOwogICAgfQoKICAgIC5zZWN0aW9uIHsKICAgICAgYmFja2dyb3VuZDogJHtwLmJkVGhlbWUoIiNmZmZmZmYiLCIjMTgxODFiIil9OwogICAgICBib3JkZXI6IDFweCBzb2xpZCAke3AuYmRUaGVtZSgiI2U1ZTdlYiIsIiMyNzI3MmEiKX07CiAgICAgIGJvcmRlci1yYWRpdXM6IDhweDsKICAgICAgcGFkZGluZzogMjRweDsKICAgIH0KCiAgICAuc2VjdGlvbi10aXRsZSB7CiAgICAgIGZvbnQtc2l6ZTogMThweDsKICAgICAgZm9udC13ZWlnaHQ6IDYwMDsKICAgICAgbWFyZ2luLWJvdHRvbTogMTZweDsKICAgICAgY29sb3I6ICR7cC5iZFRoZW1lKCIjMDkwOTBiIiwiI2ZhZmFmYSIpfTsKICAgIH0KCiAgICAuc2VjdGlvbi1kZXNjcmlwdGlvbiB7CiAgICAgIGZvbnQtc2l6ZTogMTRweDsKICAgICAgY29sb3I6ICR7cC5iZFRoZW1lKCIjNzE3MTdhIiwiI2ExYTFhYSIpfTsKICAgICAgbWFyZ2luLWJvdHRvbTogMjRweDsKICAgIH0KCiAgICAudG9rZW4tZ3JpZCB7CiAgICAgIGRpc3BsYXk6IGdyaWQ7CiAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KGF1dG8tZmlsbCwgbWlubWF4KDIwMHB4LCAxZnIpKTsKICAgICAgZ2FwOiAxNnB4OwogICAgfQoKICAgIC50b2tlbi1pdGVtIHsKICAgICAgYmFja2dyb3VuZDogJHtwLmJkVGhlbWUoIiNmNGY0ZjUiLCIjMjcyNzJhIil9OwogICAgICBib3JkZXItcmFkaXVzOiA2cHg7CiAgICAgIHBhZGRpbmc6IDE2cHg7CiAgICB9CgogICAgLnRva2VuLW5hbWUgewogICAgICBmb250LWZhbWlseTogJ0ludGVsIE9uZSBNb25vJywgbW9ub3NwYWNlOwogICAgICBmb250LXNpemU6IDEycHg7CiAgICAgIGNvbG9yOiAke3AuYmRUaGVtZSgiIzcxNzE3YSIsIiNhMWExYWEiKX07CiAgICAgIG1hcmdpbi1ib3R0b206IDhweDsKICAgIH0KCiAgICAudG9rZW4tdmFsdWUgewogICAgICBmb250LXNpemU6IDE0cHg7CiAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7CiAgICAgIGNvbG9yOiAke3AuYmRUaGVtZSgiIzA5MDkwYiIsIiNmYWZhZmEiKX07CiAgICB9CgogICAgLnNwYWNpbmctZGVtbyB7CiAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgIGFsaWduLWl0ZW1zOiBmbGV4LWVuZDsKICAgICAgZ2FwOiA4cHg7CiAgICAgIGZsZXgtd3JhcDogd3JhcDsKICAgIH0KCiAgICAuc3BhY2luZy1ib3ggewogICAgICBiYWNrZ3JvdW5kOiAke3AuYmRUaGVtZSgiIzNiODJmNiIsIiMzYjgyZjYiKX07CiAgICAgIGJvcmRlci1yYWRpdXM6IDRweDsKICAgIH0KCiAgICAucmFkaXVzLWRlbW8gewogICAgICBkaXNwbGF5OiBmbGV4OwogICAgICBnYXA6IDE2cHg7CiAgICAgIGZsZXgtd3JhcDogd3JhcDsKICAgIH0KCiAgICAucmFkaXVzLWJveCB7CiAgICAgIHdpZHRoOiA2MHB4OwogICAgICBoZWlnaHQ6IDYwcHg7CiAgICAgIGJhY2tncm91bmQ6ICR7cC5iZFRoZW1lKCIjM2I4MmY2IiwiIzNiODJmNiIpfTsKICAgICAgZGlzcGxheTogZmxleDsKICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7CiAgICAgIGNvbG9yOiB3aGl0ZTsKICAgICAgZm9udC1zaXplOiAxMXB4OwogICAgICBmb250LXdlaWdodDogNTAwOwogICAgfQoKICAgIC5zaGFkb3ctZGVtbyB7CiAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgIGdhcDogMjRweDsKICAgICAgZmxleC13cmFwOiB3cmFwOwogICAgfQoKICAgIC5zaGFkb3ctYm94IHsKICAgICAgd2lkdGg6IDEwMHB4OwogICAgICBoZWlnaHQ6IDEwMHB4OwogICAgICBiYWNrZ3JvdW5kOiAke3AuYmRUaGVtZSgiI2ZmZmZmZiIsIiMyNzI3MmEiKX07CiAgICAgIGJvcmRlci1yYWRpdXM6IDhweDsKICAgICAgZGlzcGxheTogZmxleDsKICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7CiAgICAgIGZvbnQtc2l6ZTogMTJweDsKICAgICAgZm9udC13ZWlnaHQ6IDUwMDsKICAgICAgY29sb3I6ICR7cC5iZFRoZW1lKCIjNzE3MTdhIiwiI2ExYTFhYSIpfTsKICAgIH0KCiAgICAuaGVpZ2h0LWRlbW8gewogICAgICBkaXNwbGF5OiBmbGV4OwogICAgICBnYXA6IDE2cHg7CiAgICAgIGFsaWduLWl0ZW1zOiBmbGV4LWVuZDsKICAgICAgZmxleC13cmFwOiB3cmFwOwogICAgfQoKICAgIC5oZWlnaHQtYm94IHsKICAgICAgYmFja2dyb3VuZDogJHtwLmJkVGhlbWUoIiMzYjgyZjYiLCIjM2I4MmY2Iil9OwogICAgICB3aWR0aDogMTIwcHg7CiAgICAgIGJvcmRlci1yYWRpdXM6IDZweDsKICAgICAgZGlzcGxheTogZmxleDsKICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7CiAgICAgIGNvbG9yOiB3aGl0ZTsKICAgICAgZm9udC1zaXplOiAxMnB4OwogICAgICBmb250LXdlaWdodDogNTAwOwogICAgfQogIDwvc3R5bGU+CiAgPGRpdiBjbGFzcz0iZGVtby1jb250YWluZXIiPgogICAgPGRlZXMtdGhlbWU+CiAgICAgIDxkaXYgY2xhc3M9InNlY3Rpb24iPgogICAgICAgIDxkaXYgY2xhc3M9InNlY3Rpb24tdGl0bGUiPlNwYWNpbmcgU2NhbGU8L2Rpdj4KICAgICAgICA8ZGl2IGNsYXNzPSJzZWN0aW9uLWRlc2NyaXB0aW9uIj4KICAgICAgICAgIENTUyB2YXJpYWJsZXM6IC0tZGVlcy1zcGFjaW5nLXhzIHRocm91Z2ggLS1kZWVzLXNwYWNpbmctM3hsCiAgICAgICAgPC9kaXY+CiAgICAgICAgPGRpdiBjbGFzcz0ic3BhY2luZy1kZW1vIj4KICAgICAgICAgIDxkaXY+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9InNwYWNpbmctYm94IiBzdHlsZT0id2lkdGg6IHZhcigtLWRlZXMtc3BhY2luZy14cyk7IGhlaWdodDogdmFyKC0tZGVlcy1zcGFjaW5nLXhzKTsiPjwvZGl2PgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJ0b2tlbi1uYW1lIj54cyAoNHB4KTwvZGl2PgogICAgICAgICAgPC9kaXY+CiAgICAgICAgICA8ZGl2PgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJzcGFjaW5nLWJveCIgc3R5bGU9IndpZHRoOiB2YXIoLS1kZWVzLXNwYWNpbmctc20pOyBoZWlnaHQ6IHZhcigtLWRlZXMtc3BhY2luZy1zbSk7Ij48L2Rpdj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0idG9rZW4tbmFtZSI+c20gKDhweCk8L2Rpdj4KICAgICAgICAgIDwvZGl2PgogICAgICAgICAgPGRpdj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0ic3BhY2luZy1ib3giIHN0eWxlPSJ3aWR0aDogdmFyKC0tZGVlcy1zcGFjaW5nLW1kKTsgaGVpZ2h0OiB2YXIoLS1kZWVzLXNwYWNpbmctbWQpOyI+PC9kaXY+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9InRva2VuLW5hbWUiPm1kICgxMnB4KTwvZGl2PgogICAgICAgICAgPC9kaXY+CiAgICAgICAgICA8ZGl2PgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJzcGFjaW5nLWJveCIgc3R5bGU9IndpZHRoOiB2YXIoLS1kZWVzLXNwYWNpbmctbGcpOyBoZWlnaHQ6IHZhcigtLWRlZXMtc3BhY2luZy1sZyk7Ij48L2Rpdj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0idG9rZW4tbmFtZSI+bGcgKDE2cHgpPC9kaXY+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIDxkaXY+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9InNwYWNpbmctYm94IiBzdHlsZT0id2lkdGg6IHZhcigtLWRlZXMtc3BhY2luZy14bCk7IGhlaWdodDogdmFyKC0tZGVlcy1zcGFjaW5nLXhsKTsiPjwvZGl2PgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJ0b2tlbi1uYW1lIj54bCAoMjRweCk8L2Rpdj4KICAgICAgICAgIDwvZGl2PgogICAgICAgICAgPGRpdj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0ic3BhY2luZy1ib3giIHN0eWxlPSJ3aWR0aDogdmFyKC0tZGVlcy1zcGFjaW5nLTJ4bCk7IGhlaWdodDogdmFyKC0tZGVlcy1zcGFjaW5nLTJ4bCk7Ij48L2Rpdj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0idG9rZW4tbmFtZSI+MnhsICgzMnB4KTwvZGl2PgogICAgICAgICAgPC9kaXY+CiAgICAgICAgICA8ZGl2PgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJzcGFjaW5nLWJveCIgc3R5bGU9IndpZHRoOiB2YXIoLS1kZWVzLXNwYWNpbmctM3hsKTsgaGVpZ2h0OiB2YXIoLS1kZWVzLXNwYWNpbmctM3hsKTsiPjwvZGl2PgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJ0b2tlbi1uYW1lIj4zeGwgKDQ4cHgpPC9kaXY+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICA8L2Rpdj4KICAgICAgPC9kaXY+CgogICAgICA8ZGl2IGNsYXNzPSJzZWN0aW9uIj4KICAgICAgICA8ZGl2IGNsYXNzPSJzZWN0aW9uLXRpdGxlIj5Cb3JkZXIgUmFkaXVzIFNjYWxlPC9kaXY+CiAgICAgICAgPGRpdiBjbGFzcz0ic2VjdGlvbi1kZXNjcmlwdGlvbiI+CiAgICAgICAgICBDU1MgdmFyaWFibGVzOiAtLWRlZXMtcmFkaXVzLXhzIHRocm91Z2ggLS1kZWVzLXJhZGl1cy1mdWxsCiAgICAgICAgPC9kaXY+CiAgICAgICAgPGRpdiBjbGFzcz0icmFkaXVzLWRlbW8iPgogICAgICAgICAgPGRpdj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0icmFkaXVzLWJveCIgc3R5bGU9ImJvcmRlci1yYWRpdXM6IHZhcigtLWRlZXMtcmFkaXVzLXhzKTsiPnhzPC9kaXY+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9InRva2VuLW5hbWUiPjJweDwvZGl2PgogICAgICAgICAgPC9kaXY+CiAgICAgICAgICA8ZGl2PgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJyYWRpdXMtYm94IiBzdHlsZT0iYm9yZGVyLXJhZGl1czogdmFyKC0tZGVlcy1yYWRpdXMtc20pOyI+c208L2Rpdj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0idG9rZW4tbmFtZSI+NHB4PC9kaXY+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIDxkaXY+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9InJhZGl1cy1ib3giIHN0eWxlPSJib3JkZXItcmFkaXVzOiB2YXIoLS1kZWVzLXJhZGl1cy1tZCk7Ij5tZDwvZGl2PgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJ0b2tlbi1uYW1lIj42cHg8L2Rpdj4KICAgICAgICAgIDwvZGl2PgogICAgICAgICAgPGRpdj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0icmFkaXVzLWJveCIgc3R5bGU9ImJvcmRlci1yYWRpdXM6IHZhcigtLWRlZXMtcmFkaXVzLWxnKTsiPmxnPC9kaXY+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9InRva2VuLW5hbWUiPjhweDwvZGl2PgogICAgICAgICAgPC9kaXY+CiAgICAgICAgICA8ZGl2PgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJyYWRpdXMtYm94IiBzdHlsZT0iYm9yZGVyLXJhZGl1czogdmFyKC0tZGVlcy1yYWRpdXMteGwpOyI+eGw8L2Rpdj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0idG9rZW4tbmFtZSI+MTJweDwvZGl2PgogICAgICAgICAgPC9kaXY+CiAgICAgICAgICA8ZGl2PgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJyYWRpdXMtYm94IiBzdHlsZT0iYm9yZGVyLXJhZGl1czogdmFyKC0tZGVlcy1yYWRpdXMtZnVsbCk7Ij5mdWxsPC9kaXY+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9InRva2VuLW5hbWUiPjk5OXB4PC9kaXY+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICA8L2Rpdj4KICAgICAgPC9kaXY+CgogICAgICA8ZGl2IGNsYXNzPSJzZWN0aW9uIj4KICAgICAgICA8ZGl2IGNsYXNzPSJzZWN0aW9uLXRpdGxlIj5TaGFkb3cgRWxldmF0aW9uIFNjYWxlPC9kaXY+CiAgICAgICAgPGRpdiBjbGFzcz0ic2VjdGlvbi1kZXNjcmlwdGlvbiI+CiAgICAgICAgICBDU1MgdmFyaWFibGVzOiAtLWRlZXMtc2hhZG93LXhzIHRocm91Z2ggLS1kZWVzLXNoYWRvdy1sZwogICAgICAgIDwvZGl2PgogICAgICAgIDxkaXYgY2xhc3M9InNoYWRvdy1kZW1vIj4KICAgICAgICAgIDxkaXY+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9InNoYWRvdy1ib3giIHN0eWxlPSJib3gtc2hhZG93OiB2YXIoLS1kZWVzLXNoYWRvdy14cyk7Ij54czwvZGl2PgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJ0b2tlbi1uYW1lIj5taW5pbWFsPC9kaXY+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIDxkaXY+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9InNoYWRvdy1ib3giIHN0eWxlPSJib3gtc2hhZG93OiB2YXIoLS1kZWVzLXNoYWRvdy1zbSk7Ij5zbTwvZGl2PgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJ0b2tlbi1uYW1lIj5zdWJ0bGU8L2Rpdj4KICAgICAgICAgIDwvZGl2PgogICAgICAgICAgPGRpdj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0ic2hhZG93LWJveCIgc3R5bGU9ImJveC1zaGFkb3c6IHZhcigtLWRlZXMtc2hhZG93LW1kKTsiPm1kPC9kaXY+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9InRva2VuLW5hbWUiPm1lZGl1bTwvZGl2PgogICAgICAgICAgPC9kaXY+CiAgICAgICAgICA8ZGl2PgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJzaGFkb3ctYm94IiBzdHlsZT0iYm94LXNoYWRvdzogdmFyKC0tZGVlcy1zaGFkb3ctbGcpOyI+bGc8L2Rpdj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0idG9rZW4tbmFtZSI+cHJvbWluZW50PC9kaXY+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICA8L2Rpdj4KICAgICAgPC9kaXY+CgogICAgICA8ZGl2IGNsYXNzPSJzZWN0aW9uIj4KICAgICAgICA8ZGl2IGNsYXNzPSJzZWN0aW9uLXRpdGxlIj5Db250cm9sIEhlaWdodCBTY2FsZTwvZGl2PgogICAgICAgIDxkaXYgY2xhc3M9InNlY3Rpb24tZGVzY3JpcHRpb24iPgogICAgICAgICAgQ1NTIHZhcmlhYmxlczogLS1kZWVzLWNvbnRyb2wtaGVpZ2h0LXNtIHRocm91Z2ggLS1kZWVzLWNvbnRyb2wtaGVpZ2h0LXhsCiAgICAgICAgPC9kaXY+CiAgICAgICAgPGRpdiBjbGFzcz0iaGVpZ2h0LWRlbW8iPgogICAgICAgICAgPGRpdj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0iaGVpZ2h0LWJveCIgc3R5bGU9ImhlaWdodDogdmFyKC0tZGVlcy1jb250cm9sLWhlaWdodC1zbSk7Ij5zbTwvZGl2PgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJ0b2tlbi1uYW1lIj4zMnB4PC9kaXY+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIDxkaXY+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9ImhlaWdodC1ib3giIHN0eWxlPSJoZWlnaHQ6IHZhcigtLWRlZXMtY29udHJvbC1oZWlnaHQtbWQpOyI+bWQ8L2Rpdj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0idG9rZW4tbmFtZSI+MzZweDwvZGl2PgogICAgICAgICAgPC9kaXY+CiAgICAgICAgICA8ZGl2PgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJoZWlnaHQtYm94IiBzdHlsZT0iaGVpZ2h0OiB2YXIoLS1kZWVzLWNvbnRyb2wtaGVpZ2h0LWxnKTsiPmxnPC9kaXY+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9InRva2VuLW5hbWUiPjQwcHg8L2Rpdj4KICAgICAgICAgIDwvZGl2PgogICAgICAgICAgPGRpdj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0iaGVpZ2h0LWJveCIgc3R5bGU9ImhlaWdodDogdmFyKC0tZGVlcy1jb250cm9sLWhlaWdodC14bCk7Ij54bDwvZGl2PgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJ0b2tlbi1uYW1lIj40OHB4PC9kaXY+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICA8L2Rpdj4KICAgICAgPC9kaXY+CgogICAgICA8ZGl2IGNsYXNzPSJzZWN0aW9uIj4KICAgICAgICA8ZGl2IGNsYXNzPSJzZWN0aW9uLXRpdGxlIj5UcmFuc2l0aW9uIER1cmF0aW9uczwvZGl2PgogICAgICAgIDxkaXYgY2xhc3M9InNlY3Rpb24tZGVzY3JpcHRpb24iPgogICAgICAgICAgQ1NTIHZhcmlhYmxlczogLS1kZWVzLXRyYW5zaXRpb24tZmFzdCB0aHJvdWdoIC0tZGVlcy10cmFuc2l0aW9uLXNsb3dlcgogICAgICAgIDwvZGl2PgogICAgICAgIDxkaXYgY2xhc3M9InRva2VuLWdyaWQiPgogICAgICAgICAgPGRpdiBjbGFzcz0idG9rZW4taXRlbSI+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9InRva2VuLW5hbWUiPi0tZGVlcy10cmFuc2l0aW9uLWZhc3Q8L2Rpdj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0idG9rZW4tdmFsdWUiPjAuMXM8L2Rpdj4KICAgICAgICAgIDwvZGl2PgogICAgICAgICAgPGRpdiBjbGFzcz0idG9rZW4taXRlbSI+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9InRva2VuLW5hbWUiPi0tZGVlcy10cmFuc2l0aW9uLWRlZmF1bHQ8L2Rpdj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0idG9rZW4tdmFsdWUiPjAuMTVzPC9kaXY+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIDxkaXYgY2xhc3M9InRva2VuLWl0ZW0iPgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJ0b2tlbi1uYW1lIj4tLWRlZXMtdHJhbnNpdGlvbi1zbG93PC9kaXY+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9InRva2VuLXZhbHVlIj4wLjJzPC9kaXY+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIDxkaXYgY2xhc3M9InRva2VuLWl0ZW0iPgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJ0b2tlbi1uYW1lIj4tLWRlZXMtdHJhbnNpdGlvbi1zbG93ZXI8L2Rpdj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0idG9rZW4tdmFsdWUiPjAuM3M8L2Rpdj4KICAgICAgICAgIDwvZGl2PgogICAgICAgIDwvZGl2PgogICAgICA8L2Rpdj4KICAgIDwvZGVlcy10aGVtZT4KICA8L2Rpdj4KYH0pO3ZhciBVbCxpcixpeHQscnh0PWIoKCk9Pnt1ZSgpO3FlKCk7YXh0KCk7VWw9ZnVuY3Rpb24odCxlLGEsaSxyLHMpe2Z1bmN0aW9uIG4oeCl7aWYoeCE9PXZvaWQgMCYmdHlwZW9mIHghPSJmdW5jdGlvbiIpdGhyb3cgbmV3IFR5cGVFcnJvcigiRnVuY3Rpb24gZXhwZWN0ZWQiKTtyZXR1cm4geH1mb3IodmFyIG89aS5raW5kLGQ9bz09PSJnZXR0ZXIiPyJnZXQiOm89PT0ic2V0dGVyIj8ic2V0IjoidmFsdWUiLGM9IWUmJnQ/aS5zdGF0aWM/dDp0LnByb3RvdHlwZTpudWxsLGg9ZXx8KGM/T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihjLGkubmFtZSk6e30pLGwsZj0hMSxnPWEubGVuZ3RoLTE7Zz49MDtnLS0pe3ZhciB5PXt9O2Zvcih2YXIgdiBpbiBpKXlbdl09dj09PSJhY2Nlc3MiP3t9Omlbdl07Zm9yKHZhciB2IGluIGkuYWNjZXNzKXkuYWNjZXNzW3ZdPWkuYWNjZXNzW3ZdO3kuYWRkSW5pdGlhbGl6ZXI9ZnVuY3Rpb24oeCl7aWYoZil0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgYWRkIGluaXRpYWxpemVycyBhZnRlciBkZWNvcmF0aW9uIGhhcyBjb21wbGV0ZWQiKTtzLnB1c2gobih4fHxudWxsKSl9O3ZhciBtPSgwLGFbZ10pKG89PT0iYWNjZXNzb3IiP3tnZXQ6aC5nZXQsc2V0Omguc2V0fTpoW2RdLHkpO2lmKG89PT0iYWNjZXNzb3IiKXtpZihtPT09dm9pZCAwKWNvbnRpbnVlO2lmKG09PT1udWxsfHx0eXBlb2YgbSE9Im9iamVjdCIpdGhyb3cgbmV3IFR5cGVFcnJvcigiT2JqZWN0IGV4cGVjdGVkIik7KGw9bihtLmdldCkpJiYoaC5nZXQ9bCksKGw9bihtLnNldCkpJiYoaC5zZXQ9bCksKGw9bihtLmluaXQpKSYmci51bnNoaWZ0KGwpfWVsc2UobD1uKG0pKSYmKG89PT0iZmllbGQiP3IudW5zaGlmdChsKTpoW2RdPWwpfWMmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShjLGkubmFtZSxoKSxmPSEwfSxpcj1mdW5jdGlvbih0LGUsYSl7Zm9yKHZhciBpPWFyZ3VtZW50cy5sZW5ndGg+MixyPTA7cjxlLmxlbmd0aDtyKyspYT1pP2Vbcl0uY2FsbCh0LGEpOmVbcl0uY2FsbCh0KTtyZXR1cm4gaT9hOnZvaWQgMH0saXh0PSgoKT0+e2xldCB0PVtwZSgiZGVlcy10aGVtZSIpXSxlLGE9W10saSxyPXhlLHMsbj1bXSxvPVtdLGQsYz1bXSxoPVtdLGwsZj1bXSxnPVtdLHksdj1bXSxtPVtdLHgsTT1bXSxTPVtdO3ZhciBGPWNsYXNzIGV4dGVuZHMgcntzdGF0aWN7aT10aGlzfXN0YXRpY3tsZXQgXz10eXBlb2YgU3ltYm9sPT0iZnVuY3Rpb24iJiZTeW1ib2wubWV0YWRhdGE/T2JqZWN0LmNyZWF0ZShyW1N5bWJvbC5tZXRhZGF0YV0/P251bGwpOnZvaWQgMDtzPVtJKHt0eXBlOk9iamVjdH0pXSxkPVtJKHt0eXBlOk9iamVjdH0pXSxsPVtJKHt0eXBlOk9iamVjdH0pXSx5PVtJKHt0eXBlOk9iamVjdH0pXSx4PVtJKHt0eXBlOk9iamVjdH0pXSxVbCh0aGlzLG51bGwscyx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImN1c3RvbVNwYWNpbmciLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOms9PiJjdXN0b21TcGFjaW5nImluIGssZ2V0Oms9PmsuY3VzdG9tU3BhY2luZyxzZXQ6KGssTik9PntrLmN1c3RvbVNwYWNpbmc9Tn19LG1ldGFkYXRhOl99LG4sbyksVWwodGhpcyxudWxsLGQse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJjdXN0b21SYWRpdXMiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOms9PiJjdXN0b21SYWRpdXMiaW4gayxnZXQ6az0+ay5jdXN0b21SYWRpdXMsc2V0OihrLE4pPT57ay5jdXN0b21SYWRpdXM9Tn19LG1ldGFkYXRhOl99LGMsaCksVWwodGhpcyxudWxsLGwse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJjdXN0b21TaGFkb3dzIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczprPT4iY3VzdG9tU2hhZG93cyJpbiBrLGdldDprPT5rLmN1c3RvbVNoYWRvd3Msc2V0OihrLE4pPT57ay5jdXN0b21TaGFkb3dzPU59fSxtZXRhZGF0YTpffSxmLGcpLFVsKHRoaXMsbnVsbCx5LHtraW5kOiJhY2Nlc3NvciIsbmFtZToiY3VzdG9tVHJhbnNpdGlvbnMiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOms9PiJjdXN0b21UcmFuc2l0aW9ucyJpbiBrLGdldDprPT5rLmN1c3RvbVRyYW5zaXRpb25zLHNldDooayxOKT0+e2suY3VzdG9tVHJhbnNpdGlvbnM9Tn19LG1ldGFkYXRhOl99LHYsbSksVWwodGhpcyxudWxsLHgse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJjdXN0b21Db250cm9sSGVpZ2h0cyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6az0+ImN1c3RvbUNvbnRyb2xIZWlnaHRzImluIGssZ2V0Oms9PmsuY3VzdG9tQ29udHJvbEhlaWdodHMsc2V0OihrLE4pPT57ay5jdXN0b21Db250cm9sSGVpZ2h0cz1OfX0sbWV0YWRhdGE6X30sTSxTKSxVbChudWxsLGU9e3ZhbHVlOml9LHQse2tpbmQ6ImNsYXNzIixuYW1lOmkubmFtZSxtZXRhZGF0YTpffSxudWxsLGEpLEY9aT1lLnZhbHVlLF8mJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShpLFN5bWJvbC5tZXRhZGF0YSx7ZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITAsdmFsdWU6X30pfXN0YXRpYyBkZW1vPXR4dDtzdGF0aWMgZGVtb0dyb3Vwcz1bIlV0aWxpdHkiXTsjZT1pcih0aGlzLG4sbnVsbCk7Z2V0IGN1c3RvbVNwYWNpbmcoKXtyZXR1cm4gdGhpcy4jZX1zZXQgY3VzdG9tU3BhY2luZyhfKXt0aGlzLiNlPV99I3Q9KGlyKHRoaXMsbyksaXIodGhpcyxjLG51bGwpKTtnZXQgY3VzdG9tUmFkaXVzKCl7cmV0dXJuIHRoaXMuI3R9c2V0IGN1c3RvbVJhZGl1cyhfKXt0aGlzLiN0PV99I2E9KGlyKHRoaXMsaCksaXIodGhpcyxmLG51bGwpKTtnZXQgY3VzdG9tU2hhZG93cygpe3JldHVybiB0aGlzLiNhfXNldCBjdXN0b21TaGFkb3dzKF8pe3RoaXMuI2E9X30jaT0oaXIodGhpcyxnKSxpcih0aGlzLHYsbnVsbCkpO2dldCBjdXN0b21UcmFuc2l0aW9ucygpe3JldHVybiB0aGlzLiNpfXNldCBjdXN0b21UcmFuc2l0aW9ucyhfKXt0aGlzLiNpPV99I3I9KGlyKHRoaXMsbSksaXIodGhpcyxNLG51bGwpKTtnZXQgY3VzdG9tQ29udHJvbEhlaWdodHMoKXtyZXR1cm4gdGhpcy4jcn1zZXQgY3VzdG9tQ29udHJvbEhlaWdodHMoXyl7dGhpcy4jcj1ffXN0YXRpYyBzdHlsZXM9W0NlLHAuZGVmYXVsdFN0eWxlcyxRYAogICAgICA6aG9zdCB7CiAgICAgICAgZGlzcGxheTogY29udGVudHM7CiAgICAgIH0KICAgIGBdO3JlbmRlcigpe3JldHVybiB3YAogICAgICA8c3R5bGU+CiAgICAgICAgJHt0aGlzLmdlbmVyYXRlQ3VzdG9tU3R5bGVzKCl9CiAgICAgIDwvc3R5bGU+CiAgICAgIDxzbG90Pjwvc2xvdD4KICAgIGB9Z2VuZXJhdGVDdXN0b21TdHlsZXMoKXtsZXQgXz1bIjpob3N0IHsiXTtpZih0aGlzLmN1c3RvbVNwYWNpbmcpZm9yKGxldFtrLE5db2YgT2JqZWN0LmVudHJpZXModGhpcy5jdXN0b21TcGFjaW5nKSlOJiZfLnB1c2goYCAgLS1kZWVzLXNwYWNpbmctJHtrfTogJHtOfTtgKTtpZih0aGlzLmN1c3RvbVJhZGl1cylmb3IobGV0W2ssTl1vZiBPYmplY3QuZW50cmllcyh0aGlzLmN1c3RvbVJhZGl1cykpTiYmXy5wdXNoKGAgIC0tZGVlcy1yYWRpdXMtJHtrfTogJHtOfTtgKTtpZih0aGlzLmN1c3RvbVNoYWRvd3MpZm9yKGxldFtrLE5db2YgT2JqZWN0LmVudHJpZXModGhpcy5jdXN0b21TaGFkb3dzKSlOJiZfLnB1c2goYCAgLS1kZWVzLXNoYWRvdy0ke2t9OiAke059O2ApO2lmKHRoaXMuY3VzdG9tVHJhbnNpdGlvbnMpe2ZvcihsZXRbayxOXW9mIE9iamVjdC5lbnRyaWVzKHRoaXMuY3VzdG9tVHJhbnNpdGlvbnMpKWlmKE4pe2xldCBMPWs9PT0iZGVmYXVsdCI/ImRlZmF1bHQiOms7Xy5wdXNoKGAgIC0tZGVlcy10cmFuc2l0aW9uLSR7TH06ICR7Tn07YCl9fWlmKHRoaXMuY3VzdG9tQ29udHJvbEhlaWdodHMpZm9yKGxldFtrLE5db2YgT2JqZWN0LmVudHJpZXModGhpcy5jdXN0b21Db250cm9sSGVpZ2h0cykpTiYmXy5wdXNoKGAgIC0tZGVlcy1jb250cm9sLWhlaWdodC0ke2t9OiAke059O2ApO3JldHVybiBfLnB1c2goIn0iKSxfLmpvaW4oYApgKX1zZXRTcGFjaW5nKF8sayl7dGhpcy5jdXN0b21TcGFjaW5nPXsuLi50aGlzLmN1c3RvbVNwYWNpbmcsW19dOmt9fXNldFJhZGl1cyhfLGspe3RoaXMuY3VzdG9tUmFkaXVzPXsuLi50aGlzLmN1c3RvbVJhZGl1cyxbX106a319c2V0U2hhZG93KF8sayl7dGhpcy5jdXN0b21TaGFkb3dzPXsuLi50aGlzLmN1c3RvbVNoYWRvd3MsW19dOmt9fXNldFRyYW5zaXRpb24oXyxrKXt0aGlzLmN1c3RvbVRyYW5zaXRpb25zPXsuLi50aGlzLmN1c3RvbVRyYW5zaXRpb25zLFtfXTprfX1zZXRDb250cm9sSGVpZ2h0KF8sayl7dGhpcy5jdXN0b21Db250cm9sSGVpZ2h0cz17Li4udGhpcy5jdXN0b21Db250cm9sSGVpZ2h0cyxbX106a319Z2V0VGhlbWUoKXtyZXR1cm57Y29sb3JzOlFuLmNvbG9ycyxzcGFjaW5nOnsuLi5Rbi5zcGFjaW5nLC4uLnRoaXMuY3VzdG9tU3BhY2luZ30scmFkaXVzOnsuLi5Rbi5yYWRpdXMsLi4udGhpcy5jdXN0b21SYWRpdXN9LHNoYWRvd3M6ey4uLlFuLnNoYWRvd3MsLi4udGhpcy5jdXN0b21TaGFkb3dzfSx0cmFuc2l0aW9uczp7Li4uUW4udHJhbnNpdGlvbnMsLi4udGhpcy5jdXN0b21UcmFuc2l0aW9uc30sY29udHJvbEhlaWdodHM6ey4uLlFuLmNvbnRyb2xIZWlnaHRzLC4uLnRoaXMuY3VzdG9tQ29udHJvbEhlaWdodHN9fX1yZXNldFRvRGVmYXVsdHMoKXt0aGlzLmN1c3RvbVNwYWNpbmc9bnVsbCx0aGlzLmN1c3RvbVJhZGl1cz1udWxsLHRoaXMuY3VzdG9tU2hhZG93cz1udWxsLHRoaXMuY3VzdG9tVHJhbnNpdGlvbnM9bnVsbCx0aGlzLmN1c3RvbUNvbnRyb2xIZWlnaHRzPW51bGx9YXBwbHlUaGVtZShfKXtfLnNwYWNpbmcmJih0aGlzLmN1c3RvbVNwYWNpbmc9Xy5zcGFjaW5nKSxfLnJhZGl1cyYmKHRoaXMuY3VzdG9tUmFkaXVzPV8ucmFkaXVzKSxfLnNoYWRvd3MmJih0aGlzLmN1c3RvbVNoYWRvd3M9Xy5zaGFkb3dzKSxfLnRyYW5zaXRpb25zJiYodGhpcy5jdXN0b21UcmFuc2l0aW9ucz1fLnRyYW5zaXRpb25zKSxfLmNvbnRyb2xIZWlnaHRzJiYodGhpcy5jdXN0b21Db250cm9sSGVpZ2h0cz1fLmNvbnRyb2xIZWlnaHRzKX1jb25zdHJ1Y3Rvcigpe3N1cGVyKC4uLmFyZ3VtZW50cyksaXIodGhpcyxTKX1zdGF0aWN7aXIoaSxhKX19O3JldHVybiBGPWl9KSgpfSk7dmFyIHN4dD1iKCgpPT57cnh0KCl9KTt2YXIgbnh0LG94dD1iKCgpPT57dWUoKTtraigpO254dD1hc3luYygpPT57bGV0IHQ9YXdhaXQgTXcuY3JlYXRlQW5kU2hvdygpO3NldFRpbWVvdXQoYXN5bmMoKT0+e2F3YWl0IHQuZGVzdHJveSgpfSwxZTQpfX0pO3ZhciBTaixpZCxNdyxraj1iKCgpPT57dWUoKTtveHQoKTtMcygpO3VlKCk7cWUoKTtTaj1mdW5jdGlvbih0LGUsYSxpLHIscyl7ZnVuY3Rpb24gbih4KXtpZih4IT09dm9pZCAwJiZ0eXBlb2YgeCE9ImZ1bmN0aW9uIil0aHJvdyBuZXcgVHlwZUVycm9yKCJGdW5jdGlvbiBleHBlY3RlZCIpO3JldHVybiB4fWZvcih2YXIgbz1pLmtpbmQsZD1vPT09ImdldHRlciI/ImdldCI6bz09PSJzZXR0ZXIiPyJzZXQiOiJ2YWx1ZSIsYz0hZSYmdD9pLnN0YXRpYz90OnQucHJvdG90eXBlOm51bGwsaD1lfHwoYz9PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGMsaS5uYW1lKTp7fSksbCxmPSExLGc9YS5sZW5ndGgtMTtnPj0wO2ctLSl7dmFyIHk9e307Zm9yKHZhciB2IGluIGkpeVt2XT12PT09ImFjY2VzcyI/e306aVt2XTtmb3IodmFyIHYgaW4gaS5hY2Nlc3MpeS5hY2Nlc3Nbdl09aS5hY2Nlc3Nbdl07eS5hZGRJbml0aWFsaXplcj1mdW5jdGlvbih4KXtpZihmKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBhZGQgaW5pdGlhbGl6ZXJzIGFmdGVyIGRlY29yYXRpb24gaGFzIGNvbXBsZXRlZCIpO3MucHVzaChuKHh8fG51bGwpKX07dmFyIG09KDAsYVtnXSkobz09PSJhY2Nlc3NvciI/e2dldDpoLmdldCxzZXQ6aC5zZXR9OmhbZF0seSk7aWYobz09PSJhY2Nlc3NvciIpe2lmKG09PT12b2lkIDApY29udGludWU7aWYobT09PW51bGx8fHR5cGVvZiBtIT0ib2JqZWN0Iil0aHJvdyBuZXcgVHlwZUVycm9yKCJPYmplY3QgZXhwZWN0ZWQiKTsobD1uKG0uZ2V0KSkmJihoLmdldD1sKSwobD1uKG0uc2V0KSkmJihoLnNldD1sKSwobD1uKG0uaW5pdCkpJiZyLnVuc2hpZnQobCl9ZWxzZShsPW4obSkpJiYobz09PSJmaWVsZCI/ci51bnNoaWZ0KGwpOmhbZF09bCl9YyYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGMsaS5uYW1lLGgpLGY9ITB9LGlkPWZ1bmN0aW9uKHQsZSxhKXtmb3IodmFyIGk9YXJndW1lbnRzLmxlbmd0aD4yLHI9MDtyPGUubGVuZ3RoO3IrKylhPWk/ZVtyXS5jYWxsKHQsYSk6ZVtyXS5jYWxsKHQpO3JldHVybiBpP2E6dm9pZCAwfSxNdz0oKCk9PntsZXQgdD1bcGUoImRlZXMtdXBkYXRlciIpXSxlLGE9W10saSxyPXhlLHMsbj1bXSxvPVtdLGQsYz1bXSxoPVtdO3ZhciBsPWNsYXNzIGV4dGVuZHMgcntzdGF0aWN7aT10aGlzfXN0YXRpY3tsZXQgZj10eXBlb2YgU3ltYm9sPT0iZnVuY3Rpb24iJiZTeW1ib2wubWV0YWRhdGE/T2JqZWN0LmNyZWF0ZShyW1N5bWJvbC5tZXRhZGF0YV0/P251bGwpOnZvaWQgMDtzPVtJKHt0eXBlOlN0cmluZ30pXSxkPVtJKHt0eXBlOlN0cmluZ30pXSxTaih0aGlzLG51bGwscyx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImN1cnJlbnRWZXJzaW9uIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpnPT4iY3VycmVudFZlcnNpb24iaW4gZyxnZXQ6Zz0+Zy5jdXJyZW50VmVyc2lvbixzZXQ6KGcseSk9PntnLmN1cnJlbnRWZXJzaW9uPXl9fSxtZXRhZGF0YTpmfSxuLG8pLFNqKHRoaXMsbnVsbCxkLHtraW5kOiJhY2Nlc3NvciIsbmFtZToidXBkYXRlZFZlcnNpb24iLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmc9PiJ1cGRhdGVkVmVyc2lvbiJpbiBnLGdldDpnPT5nLnVwZGF0ZWRWZXJzaW9uLHNldDooZyx5KT0+e2cudXBkYXRlZFZlcnNpb249eX19LG1ldGFkYXRhOmZ9LGMsaCksU2oobnVsbCxlPXt2YWx1ZTppfSx0LHtraW5kOiJjbGFzcyIsbmFtZTppLm5hbWUsbWV0YWRhdGE6Zn0sbnVsbCxhKSxsPWk9ZS52YWx1ZSxmJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoaSxTeW1ib2wubWV0YWRhdGEse2VudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwLHZhbHVlOmZ9KX1zdGF0aWMgZGVtbz1ueHQ7c3RhdGljIGRlbW9Hcm91cHM9WyJVdGlsaXR5Il07c3RhdGljIGFzeW5jIGNyZWF0ZUFuZFNob3coKXtsZXQgZj1uZXcgbDtyZXR1cm4gZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChmKSxmfSNlPWlkKHRoaXMsbix2b2lkIDApO2dldCBjdXJyZW50VmVyc2lvbigpe3JldHVybiB0aGlzLiNlfXNldCBjdXJyZW50VmVyc2lvbihmKXt0aGlzLiNlPWZ9I3Q9KGlkKHRoaXMsbyksaWQodGhpcyxjLHZvaWQgMCkpO2dldCB1cGRhdGVkVmVyc2lvbigpe3JldHVybiB0aGlzLiN0fXNldCB1cGRhdGVkVmVyc2lvbihmKXt0aGlzLiN0PWZ9Y29uc3RydWN0b3IoKXtzdXBlcigpLGlkKHRoaXMsaCkscnQuZWxlbWVudEJhc2ljLnNldHVwKCl9c3RhdGljIHN0eWxlcz1bQ2UscC5kZWZhdWx0U3R5bGVzLFFgCiAgICAgIC8qIFRPRE86IE1pZ3JhdGUgaGFyZGNvZGVkIHZhbHVlcyB0byAtLWRlZXMtKiBDU1MgdmFyaWFibGVzICovCiAgICAgIC5tb2RhbENvbnRhaW5lciB7CiAgICAgICAgd2lsbC1jaGFuZ2U6IHRyYW5zZm9ybTsKICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgICAgYmFja2dyb3VuZDogJHtwLmJkVGhlbWUoIiNlZWVlZWIiLCIjMjIyIil9OwogICAgICAgIG1heC13aWR0aDogODAwcHg7CiAgICAgICAgYm9yZGVyLXJhZGl1czogOHB4OwogICAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAke3AuYmRUaGVtZSgiI2VlZWVlYiIsIiMzMzMiKX07CiAgICAgIH0KCiAgICAgIC5oZWFkaW5nQ29udGFpbmVyIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgcGFkZGluZzogNDBweCA0MHB4OwogICAgICB9CgogICAgICBoMSB7CiAgICAgICAgbWFyZ2luOiBub25lOwogICAgICAgIGZvbnQtc2l6ZTogMjBweDsKICAgICAgICBjb2xvcjogJHtwLmJkVGhlbWUoIiMzMzMiLCIjZmZmIil9OwogICAgICAgIG1hcmdpbi1sZWZ0OiAyMHB4OwogICAgICAgIGZvbnQtd2VpZ2h0OiBub3JtYWw7CiAgICAgIH0KCiAgICAgIC5idXR0b25Db250YWluZXIgewogICAgICAgIGRpc3BsYXk6IGdyaWQ7CiAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiA1MCUgNTAlOwogICAgICB9CiAgICBgXTtyZW5kZXIoKXtyZXR1cm4gd2AKICAgICAgPGRlZXMtd2luZG93bGF5ZXIKICAgICAgICBAY2xpY2tlZD0iJHt0aGlzLndpbmRvd0xheWVyQ2xpY2tlZH0iCiAgICAgICAgLm9wdGlvbnM9JHt7Ymx1cjohMH19CiAgICAgID4KICAgICAgICA8ZGl2IGNsYXNzPSJtb2RhbENvbnRhaW5lciI+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJoZWFkaW5nQ29udGFpbmVyIj4KICAgICAgICAgICAgPGRlZXMtc3Bpbm5lciAuc2l6ZT0kezYwfT48L2RlZXMtc3Bpbm5lcj4KICAgICAgICAgICAgPGgxPlVwZGF0aW5nIHRoZSBhcHBsaWNhdGlvbi4uLjwvaDE+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIDxkaXYgY2xhc3M9InByb2dyZXNzIj4KICAgICAgICAgICAgPGRlZXMtcHJvZ3Jlc3NiYXIgLnByb2dyZXNzPSR7LjV9PjwvZGVlcy1wcm9ncmVzc2Jhcj4KICAgICAgICAgIDwvZGl2PgogICAgICAgICAgPGRpdiBjbGFzcz0iYnV0dG9uQ29udGFpbmVyIj4KICAgICAgICAgICAgPGRlZXMtYnV0dG9uPk1vcmUgaW5mbzwvZGVlcy1idXR0b24+CiAgICAgICAgICAgIDxkZWVzLWJ1dHRvbj5DaGFuZ2Vsb2c8L2RlZXMtYnV0dG9uPgogICAgICAgICAgPC9kaXY+CiAgICAgICAgPC9kaXY+IDwvZGVlcy13aW5kb3dsYXllcgogICAgICA+PgogICAgYH1hc3luYyBkZXN0cm95KCl7dGhpcy5wYXJlbnRFbGVtZW50LnJlbW92ZUNoaWxkKHRoaXMpfXdpbmRvd0xheWVyQ2xpY2tlZCgpe31zdGF0aWN7aWQoaSxhKX19O3JldHVybiBsPWl9KSgpfSk7dmFyIGx4dD1iKCgpPT57a2ooKX0pO3ZhciBjeHQ9YigoKT0+e1NxKCl9KTt2YXIgZHh0PWIoKCk9PntZeXQoKTtleHQoKTtzeHQoKTtseHQoKTtjeHQoKX0pO3ZhciBnNCxRYSxoeHQsenc9YigoKT0+e3VlKCk7VHQoKTtxZSgpO0R0KCk7bjIoKTtuMigpO0cwKCk7bG8oKTtsbygpO2c0PWZ1bmN0aW9uKHQsZSxhLGkscixzKXtmdW5jdGlvbiBuKHgpe2lmKHghPT12b2lkIDAmJnR5cGVvZiB4IT0iZnVuY3Rpb24iKXRocm93IG5ldyBUeXBlRXJyb3IoIkZ1bmN0aW9uIGV4cGVjdGVkIik7cmV0dXJuIHh9Zm9yKHZhciBvPWkua2luZCxkPW89PT0iZ2V0dGVyIj8iZ2V0IjpvPT09InNldHRlciI/InNldCI6InZhbHVlIixjPSFlJiZ0P2kuc3RhdGljP3Q6dC5wcm90b3R5cGU6bnVsbCxoPWV8fChjP09iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoYyxpLm5hbWUpOnt9KSxsLGY9ITEsZz1hLmxlbmd0aC0xO2c+PTA7Zy0tKXt2YXIgeT17fTtmb3IodmFyIHYgaW4gaSl5W3ZdPXY9PT0iYWNjZXNzIj97fTppW3ZdO2Zvcih2YXIgdiBpbiBpLmFjY2Vzcyl5LmFjY2Vzc1t2XT1pLmFjY2Vzc1t2XTt5LmFkZEluaXRpYWxpemVyPWZ1bmN0aW9uKHgpe2lmKGYpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGFkZCBpbml0aWFsaXplcnMgYWZ0ZXIgZGVjb3JhdGlvbiBoYXMgY29tcGxldGVkIik7cy5wdXNoKG4oeHx8bnVsbCkpfTt2YXIgbT0oMCxhW2ddKShvPT09ImFjY2Vzc29yIj97Z2V0OmguZ2V0LHNldDpoLnNldH06aFtkXSx5KTtpZihvPT09ImFjY2Vzc29yIil7aWYobT09PXZvaWQgMCljb250aW51ZTtpZihtPT09bnVsbHx8dHlwZW9mIG0hPSJvYmplY3QiKXRocm93IG5ldyBUeXBlRXJyb3IoIk9iamVjdCBleHBlY3RlZCIpOyhsPW4obS5nZXQpKSYmKGguZ2V0PWwpLChsPW4obS5zZXQpKSYmKGguc2V0PWwpLChsPW4obS5pbml0KSkmJnIudW5zaGlmdChsKX1lbHNlKGw9bihtKSkmJihvPT09ImZpZWxkIj9yLnVuc2hpZnQobCk6aFtkXT1sKX1jJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoYyxpLm5hbWUsaCksZj0hMH0sUWE9ZnVuY3Rpb24odCxlLGEpe2Zvcih2YXIgaT1hcmd1bWVudHMubGVuZ3RoPjIscj0wO3I8ZS5sZW5ndGg7cisrKWE9aT9lW3JdLmNhbGwodCxhKTplW3JdLmNhbGwodCk7cmV0dXJuIGk/YTp2b2lkIDB9LGh4dD0oKCk9PntsZXQgdD1bcGUoImRlZXMtd29ya3NwYWNlLWZpbGV0cmVlIildLGUsYT1bXSxpLHI9eGUscyxuPVtdLG89W10sZCxjPVtdLGg9W10sbCxmPVtdLGc9W10seSx2PVtdLG09W10seCxNPVtdLFM9W10sRixfPVtdLGs9W107dmFyIE49Y2xhc3MgZXh0ZW5kcyBye3N0YXRpY3tpPXRoaXN9c3RhdGlje2xldCBMPXR5cGVvZiBTeW1ib2w9PSJmdW5jdGlvbiImJlN5bWJvbC5tZXRhZGF0YT9PYmplY3QuY3JlYXRlKHJbU3ltYm9sLm1ldGFkYXRhXT8/bnVsbCk6dm9pZCAwO3M9W0koe3R5cGU6T2JqZWN0fSldLGQ9W0koe3R5cGU6U3RyaW5nfSldLGw9W0koe3R5cGU6U3RyaW5nfSldLHk9W0ooKV0seD1bSigpXSxGPVtKKCldLGc0KHRoaXMsbnVsbCxzLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiZXhlY3V0aW9uRW52aXJvbm1lbnQiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOkE9PiJleGVjdXRpb25FbnZpcm9ubWVudCJpbiBBLGdldDpBPT5BLmV4ZWN1dGlvbkVudmlyb25tZW50LHNldDooQSxxKT0+e0EuZXhlY3V0aW9uRW52aXJvbm1lbnQ9cX19LG1ldGFkYXRhOkx9LG4sbyksZzQodGhpcyxudWxsLGQse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJyb290UGF0aCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6QT0+InJvb3RQYXRoImluIEEsZ2V0OkE9PkEucm9vdFBhdGgsc2V0OihBLHEpPT57QS5yb290UGF0aD1xfX0sbWV0YWRhdGE6TH0sYyxoKSxnNCh0aGlzLG51bGwsbCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InNlbGVjdGVkUGF0aCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6QT0+InNlbGVjdGVkUGF0aCJpbiBBLGdldDpBPT5BLnNlbGVjdGVkUGF0aCxzZXQ6KEEscSk9PntBLnNlbGVjdGVkUGF0aD1xfX0sbWV0YWRhdGE6TH0sZixnKSxnNCh0aGlzLG51bGwseSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InRyZWVEYXRhIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpBPT4idHJlZURhdGEiaW4gQSxnZXQ6QT0+QS50cmVlRGF0YSxzZXQ6KEEscSk9PntBLnRyZWVEYXRhPXF9fSxtZXRhZGF0YTpMfSx2LG0pLGc0KHRoaXMsbnVsbCx4LHtraW5kOiJhY2Nlc3NvciIsbmFtZToiaXNMb2FkaW5nIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpBPT4iaXNMb2FkaW5nImluIEEsZ2V0OkE9PkEuaXNMb2FkaW5nLHNldDooQSxxKT0+e0EuaXNMb2FkaW5nPXF9fSxtZXRhZGF0YTpMfSxNLFMpLGc0KHRoaXMsbnVsbCxGLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiZXJyb3JNZXNzYWdlIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpBPT4iZXJyb3JNZXNzYWdlImluIEEsZ2V0OkE9PkEuZXJyb3JNZXNzYWdlLHNldDooQSxxKT0+e0EuZXJyb3JNZXNzYWdlPXF9fSxtZXRhZGF0YTpMfSxfLGspLGc0KG51bGwsZT17dmFsdWU6aX0sdCx7a2luZDoiY2xhc3MiLG5hbWU6aS5uYW1lLG1ldGFkYXRhOkx9LG51bGwsYSksTj1pPWUudmFsdWUsTCYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGksU3ltYm9sLm1ldGFkYXRhLHtlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMCx2YWx1ZTpMfSl9c3RhdGljIGRlbW89KCk9PndgCiAgICA8ZGl2IHN0eWxlPSJ3aWR0aDogMzAwcHg7IGhlaWdodDogNDAwcHg7IHBvc2l0aW9uOiByZWxhdGl2ZTsiPgogICAgICA8ZGVlcy13b3Jrc3BhY2UtZmlsZXRyZWU+PC9kZWVzLXdvcmtzcGFjZS1maWxldHJlZT4KICAgIDwvZGl2PgogIGA7c3RhdGljIGRlbW9Hcm91cHM9WyJXb3Jrc3BhY2UiXTsjZT1RYSh0aGlzLG4sbnVsbCk7Z2V0IGV4ZWN1dGlvbkVudmlyb25tZW50KCl7cmV0dXJuIHRoaXMuI2V9c2V0IGV4ZWN1dGlvbkVudmlyb25tZW50KEwpe3RoaXMuI2U9TH0jdD0oUWEodGhpcyxvKSxRYSh0aGlzLGMsIi8iKSk7Z2V0IHJvb3RQYXRoKCl7cmV0dXJuIHRoaXMuI3R9c2V0IHJvb3RQYXRoKEwpe3RoaXMuI3Q9TH0jYT0oUWEodGhpcyxoKSxRYSh0aGlzLGYsIiIpKTtnZXQgc2VsZWN0ZWRQYXRoKCl7cmV0dXJuIHRoaXMuI2F9c2V0IHNlbGVjdGVkUGF0aChMKXt0aGlzLiNhPUx9I2k9KFFhKHRoaXMsZyksUWEodGhpcyx2LFtdKSk7Z2V0IHRyZWVEYXRhKCl7cmV0dXJuIHRoaXMuI2l9c2V0IHRyZWVEYXRhKEwpe3RoaXMuI2k9TH0jcj0oUWEodGhpcyxtKSxRYSh0aGlzLE0sITEpKTtnZXQgaXNMb2FkaW5nKCl7cmV0dXJuIHRoaXMuI3J9c2V0IGlzTG9hZGluZyhMKXt0aGlzLiNyPUx9I3M9KFFhKHRoaXMsUyksUWEodGhpcyxfLCIiKSk7Z2V0IGVycm9yTWVzc2FnZSgpe3JldHVybiB0aGlzLiNzfXNldCBlcnJvck1lc3NhZ2UoTCl7dGhpcy4jcz1MfWV4cGFuZGVkUGF0aHM9KFFhKHRoaXMsayksbmV3IFNldCk7bG9hZFRyZWVTdGFydGVkPSExO2NsaXBib2FyZFBhdGg9bnVsbDtjbGlwYm9hcmRPcGVyYXRpb249bnVsbDtmaWxlV2F0Y2hlcj1udWxsO3JlZnJlc2hEZWJvdW5jZVRpbWVvdXQ9bnVsbDtsYXN0RXhlY3V0aW9uRW52aXJvbm1lbnQ9bnVsbDtzdGF0aWMgc3R5bGVzPVtDZSxwLmRlZmF1bHRTdHlsZXMsUWAKICAgICAgOmhvc3QgewogICAgICAgIGRpc3BsYXk6IGJsb2NrOwogICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgICB0b3A6IDA7CiAgICAgICAgbGVmdDogMDsKICAgICAgICByaWdodDogMDsKICAgICAgICBib3R0b206IDA7CiAgICAgICAgb3ZlcmZsb3c6IGF1dG87CiAgICAgICAgYmFja2dyb3VuZDogJHtwLmJkVGhlbWUoImhzbCgwIDAlIDk4JSkiLCJoc2woMCAwJSA5JSkiKX07CiAgICAgICAgZm9udC1mYW1pbHk6IC1hcHBsZS1zeXN0ZW0sIEJsaW5rTWFjU3lzdGVtRm9udCwgJ1NlZ29lIFVJJywgUm9ib3RvLCBzYW5zLXNlcmlmOwogICAgICAgIGZvbnQtc2l6ZTogMTNweDsKICAgICAgfQoKICAgICAgLnRyZWUtY29udGFpbmVyIHsKICAgICAgICBwYWRkaW5nOiA4cHggMDsKICAgICAgfQoKICAgICAgLnRyZWUtaXRlbSB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIHBhZGRpbmc6IDRweCA4cHg7CiAgICAgICAgY3Vyc29yOiBwb2ludGVyOwogICAgICAgIHVzZXItc2VsZWN0OiBub25lOwogICAgICAgIGJvcmRlci1yYWRpdXM6IDRweDsKICAgICAgICBtYXJnaW46IDFweCA0cHg7CiAgICAgICAgdHJhbnNpdGlvbjogYmFja2dyb3VuZCAwLjFzIGVhc2U7CiAgICAgIH0KCiAgICAgIC50cmVlLWl0ZW06aG92ZXIgewogICAgICAgIGJhY2tncm91bmQ6ICR7cC5iZFRoZW1lKCJoc2woMCAwJSA5MyUpIiwiaHNsKDAgMCUgMTQlKSIpfTsKICAgICAgfQoKICAgICAgLnRyZWUtaXRlbS5zZWxlY3RlZCB7CiAgICAgICAgYmFja2dyb3VuZDogJHtwLmJkVGhlbWUoImhzbCgyMTAgMTAwJSA5NSUpIiwiaHNsKDIxMCA1MCUgMjAlKSIpfTsKICAgICAgICBjb2xvcjogJHtwLmJkVGhlbWUoImhzbCgyMTAgMTAwJSA0MCUpIiwiaHNsKDIxMCAxMDAlIDcwJSkiKX07CiAgICAgIH0KCiAgICAgIC50cmVlLWl0ZW0uc2VsZWN0ZWQ6aG92ZXIgewogICAgICAgIGJhY2tncm91bmQ6ICR7cC5iZFRoZW1lKCJoc2woMjEwIDEwMCUgOTIlKSIsImhzbCgyMTAgNTAlIDI1JSkiKX07CiAgICAgIH0KCiAgICAgIC5pbmRlbnQgewogICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jazsKICAgICAgICB3aWR0aDogMTZweDsKICAgICAgICBmbGV4LXNocmluazogMDsKICAgICAgfQoKICAgICAgLmV4cGFuZC1pY29uIHsKICAgICAgICB3aWR0aDogMTZweDsKICAgICAgICBoZWlnaHQ6IDE2cHg7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOwogICAgICAgIGZsZXgtc2hyaW5rOiAwOwogICAgICAgIGNvbG9yOiAke3AuYmRUaGVtZSgiaHNsKDAgMCUgNTAlKSIsImhzbCgwIDAlIDYwJSkiKX07CiAgICAgICAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDAuMTVzIGVhc2U7CiAgICAgIH0KCiAgICAgIC5leHBhbmQtaWNvbi5leHBhbmRlZCB7CiAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoOTBkZWcpOwogICAgICB9CgogICAgICAuZXhwYW5kLWljb24uaGlkZGVuIHsKICAgICAgICB2aXNpYmlsaXR5OiBoaWRkZW47CiAgICAgIH0KCiAgICAgIC5maWxlLWljb24gewogICAgICAgIHdpZHRoOiAxNnB4OwogICAgICAgIGhlaWdodDogMTZweDsKICAgICAgICBtYXJnaW4tcmlnaHQ6IDZweDsKICAgICAgICBmbGV4LXNocmluazogMDsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7CiAgICAgIH0KCiAgICAgIC5maWxlLWljb24gZGVlcy1pY29uIHsKICAgICAgICB3aWR0aDogMTZweDsKICAgICAgICBoZWlnaHQ6IDE2cHg7CiAgICAgIH0KCiAgICAgIC5maWxlLWljb24uZm9sZGVyIHsKICAgICAgICBjb2xvcjogJHtwLmJkVGhlbWUoImhzbCg0NSA4MCUgNDUlKSIsImhzbCg0NSA3MCUgNTUlKSIpfTsKICAgICAgfQoKICAgICAgLmZpbGUtaWNvbi5maWxlIHsKICAgICAgICBjb2xvcjogJHtwLmJkVGhlbWUoImhzbCgwIDAlIDUwJSkiLCJoc2woMCAwJSA2MCUpIil9OwogICAgICB9CgogICAgICAuZmlsZS1pY29uLnR5cGVzY3JpcHQgewogICAgICAgIGNvbG9yOiBoc2woMjExIDYwJSA0OCUpOwogICAgICB9CgogICAgICAuZmlsZS1pY29uLmphdmFzY3JpcHQgewogICAgICAgIGNvbG9yOiBoc2woNTMgOTMlIDU0JSk7CiAgICAgIH0KCiAgICAgIC5maWxlLWljb24uanNvbiB7CiAgICAgICAgY29sb3I6IGhzbCg0NSA4MCUgNTAlKTsKICAgICAgfQoKICAgICAgLmZpbGUtaWNvbi5odG1sIHsKICAgICAgICBjb2xvcjogaHNsKDE0IDc3JSA1MiUpOwogICAgICB9CgogICAgICAuZmlsZS1pY29uLmNzcyB7CiAgICAgICAgY29sb3I6IGhzbCgyMjggNzclIDU5JSk7CiAgICAgIH0KCiAgICAgIC5maWxlLWljb24ubWFya2Rvd24gewogICAgICAgIGNvbG9yOiBoc2woMCAwJSA1MCUpOwogICAgICB9CgogICAgICAuZmlsZS1uYW1lIHsKICAgICAgICBmbGV4OiAxOwogICAgICAgIG92ZXJmbG93OiBoaWRkZW47CiAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7CiAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDsKICAgICAgICBjb2xvcjogJHtwLmJkVGhlbWUoImhzbCgwIDAlIDIwJSkiLCJoc2woMCAwJSA4NSUpIil9OwogICAgICB9CgogICAgICAubG9hZGluZyB7CiAgICAgICAgcGFkZGluZzogMTZweDsKICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7CiAgICAgICAgY29sb3I6ICR7cC5iZFRoZW1lKCJoc2woMCAwJSA1MCUpIiwiaHNsKDAgMCUgNjAlKSIpfTsKICAgICAgfQoKICAgICAgLmVycm9yIHsKICAgICAgICBwYWRkaW5nOiAxNnB4OwogICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjsKICAgICAgICBjb2xvcjogaHNsKDAgNzAlIDUwJSk7CiAgICAgIH0KCiAgICAgIC5lbXB0eSB7CiAgICAgICAgcGFkZGluZzogMTZweDsKICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7CiAgICAgICAgY29sb3I6ICR7cC5iZFRoZW1lKCJoc2woMCAwJSA1MCUpIiwiaHNsKDAgMCUgNjAlKSIpfTsKICAgICAgICBmb250LXN0eWxlOiBpdGFsaWM7CiAgICAgIH0KCiAgICAgIC5maWxldHJlZS10b29sYmFyIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuOwogICAgICAgIGhlaWdodDogMzZweDsKICAgICAgICBwYWRkaW5nOiAwIDEycHg7CiAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICR7cC5iZFRoZW1lKCJoc2woMCAwJSA4NSUpIiwiaHNsKDAgMCUgMTUlKSIpfTsKICAgICAgICBiYWNrZ3JvdW5kOiAke3AuYmRUaGVtZSgiaHNsKDAgMCUgOTYlKSIsImhzbCgwIDAlIDglKSIpfTsKICAgICAgICBwb3NpdGlvbjogc3RpY2t5OwogICAgICAgIHRvcDogMDsKICAgICAgICB6LWluZGV4OiAxOwogICAgICB9CgogICAgICAudG9vbGJhci10aXRsZSB7CiAgICAgICAgZm9udC1zaXplOiAxMXB4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7CiAgICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTsKICAgICAgICBsZXR0ZXItc3BhY2luZzogMC41cHg7CiAgICAgICAgY29sb3I6ICR7cC5iZFRoZW1lKCJoc2woMCAwJSA0MCUpIiwiaHNsKDAgMCUgNjAlKSIpfTsKICAgICAgfQoKICAgICAgLnRvb2xiYXItYWN0aW9ucyB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBnYXA6IDRweDsKICAgICAgfQoKICAgICAgLnRvb2xiYXItYnV0dG9uIHsKICAgICAgICBwYWRkaW5nOiA0cHg7CiAgICAgICAgYm9yZGVyLXJhZGl1czogNHB4OwogICAgICAgIGN1cnNvcjogcG9pbnRlcjsKICAgICAgICBvcGFjaXR5OiAwLjc7CiAgICAgICAgdHJhbnNpdGlvbjogb3BhY2l0eSAwLjE1cywgYmFja2dyb3VuZCAwLjE1czsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7CiAgICAgICAgY29sb3I6ICR7cC5iZFRoZW1lKCJoc2woMCAwJSAzMCUpIiwiaHNsKDAgMCUgNzAlKSIpfTsKICAgICAgfQoKICAgICAgLnRvb2xiYXItYnV0dG9uOmhvdmVyIHsKICAgICAgICBvcGFjaXR5OiAxOwogICAgICAgIGJhY2tncm91bmQ6ICR7cC5iZFRoZW1lKCJoc2woMCAwJSAwJSAvIDAuMDgpIiwiaHNsKDAgMCUgMTAwJSAvIDAuMSkiKX07CiAgICAgIH0KICAgIGBdO3JlbmRlcigpe3JldHVybiB0aGlzLmV4ZWN1dGlvbkVudmlyb25tZW50P3RoaXMuaXNMb2FkaW5nP3dgCiAgICAgICAgPGRpdiBjbGFzcz0ibG9hZGluZyI+CiAgICAgICAgICBMb2FkaW5nIGZpbGVzLi4uCiAgICAgICAgPC9kaXY+CiAgICAgIGA6dGhpcy5lcnJvck1lc3NhZ2U/d2AKICAgICAgICA8ZGl2IGNsYXNzPSJlcnJvciI+CiAgICAgICAgICAke3RoaXMuZXJyb3JNZXNzYWdlfQogICAgICAgIDwvZGl2PgogICAgICBgOndgCiAgICAgIDxkaXYgY2xhc3M9ImZpbGV0cmVlLXRvb2xiYXIiPgogICAgICAgIDxzcGFuIGNsYXNzPSJ0b29sYmFyLXRpdGxlIj5FeHBsb3Jlcjwvc3Bhbj4KICAgICAgICA8ZGl2IGNsYXNzPSJ0b29sYmFyLWFjdGlvbnMiPgogICAgICAgICAgPGRpdiBjbGFzcz0idG9vbGJhci1idXR0b24iIEBjbGljaz0keygpPT50aGlzLmNyZWF0ZU5ld0ZpbGUoIi8iKX0gdGl0bGU9Ik5ldyBGaWxlIj4KICAgICAgICAgICAgPGRlZXMtaWNvbiAuaWNvbj0keyJsdWNpZGU6ZmlsZVBsdXMifSBpY29uU2l6ZT0iMTYiPjwvZGVlcy1pY29uPgogICAgICAgICAgPC9kaXY+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJ0b29sYmFyLWJ1dHRvbiIgQGNsaWNrPSR7KCk9PnRoaXMuY3JlYXRlTmV3Rm9sZGVyKCIvIil9IHRpdGxlPSJOZXcgRm9sZGVyIj4KICAgICAgICAgICAgPGRlZXMtaWNvbiAuaWNvbj0keyJsdWNpZGU6Zm9sZGVyUGx1cyJ9IGljb25TaXplPSIxNiI+PC9kZWVzLWljb24+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICA8L2Rpdj4KICAgICAgPC9kaXY+CiAgICAgICR7dGhpcy50cmVlRGF0YS5sZW5ndGg9PT0wP3dgPGRpdiBjbGFzcz0iZW1wdHkiPk5vIGZpbGVzIGZvdW5kLjwvZGl2PmA6d2AKICAgICAgICAgICAgPGRpdiBjbGFzcz0idHJlZS1jb250YWluZXIiIEBjb250ZXh0bWVudT0ke3RoaXMuaGFuZGxlRW1wdHlTcGFjZUNvbnRleHRNZW51fT4KICAgICAgICAgICAgICAke3RoaXMucmVuZGVyVHJlZSh0aGlzLnRyZWVEYXRhKX0KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICBgfQogICAgYDp3YAogICAgICAgIDxkaXYgY2xhc3M9ImVtcHR5Ij4KICAgICAgICAgIE5vIGV4ZWN1dGlvbiBlbnZpcm9ubWVudCBwcm92aWRlZC4KICAgICAgICA8L2Rpdj4KICAgICAgYH1yZW5kZXJUcmVlKEwpe3JldHVybiBMLm1hcChBPT50aGlzLnJlbmRlck5vZGUoQSkpfXJlbmRlck5vZGUoTCl7bGV0IEE9TC50eXBlPT09ImRpcmVjdG9yeSIscT10aGlzLmV4cGFuZGVkUGF0aHMuaGFzKEwucGF0aCksQz1MLnBhdGg9PT10aGlzLnNlbGVjdGVkUGF0aCx6PXRoaXMuZ2V0RmlsZUljb25DbGFzcyhMKTtyZXR1cm4gd2AKICAgICAgPGRpdgogICAgICAgIGNsYXNzPSJ0cmVlLWl0ZW0gJHtDPyJzZWxlY3RlZCI6IiJ9IgogICAgICAgIHN0eWxlPSJwYWRkaW5nLWxlZnQ6ICR7OCtMLmxldmVsKjE2fXB4IgogICAgICAgIEBjbGljaz0ke0U9PnRoaXMuaGFuZGxlSXRlbUNsaWNrKEUsTCl9CiAgICAgICAgQGNvbnRleHRtZW51PSR7RT0+dGhpcy5oYW5kbGVDb250ZXh0TWVudShFLEwpfQogICAgICA+CiAgICAgICAgPHNwYW4gY2xhc3M9ImV4cGFuZC1pY29uICR7cT8iZXhwYW5kZWQiOiIifSAke0E/IiI6ImhpZGRlbiJ9Ij4KICAgICAgICAgIDxkZWVzLWljb24gLmljb249JHsibHVjaWRlOmNoZXZyb25SaWdodCJ9IGljb25TaXplPSIxMiI+PC9kZWVzLWljb24+CiAgICAgICAgPC9zcGFuPgogICAgICAgIDxzcGFuIGNsYXNzPSJmaWxlLWljb24gJHt6fSI+CiAgICAgICAgICA8ZGVlcy1pY29uIC5pY29uPSR7dGhpcy5nZXRGaWxlSWNvbihMKX0gaWNvblNpemU9IjE2Ij48L2RlZXMtaWNvbj4KICAgICAgICA8L3NwYW4+CiAgICAgICAgPHNwYW4gY2xhc3M9ImZpbGUtbmFtZSI+JHtMLm5hbWV9PC9zcGFuPgogICAgICA8L2Rpdj4KICAgICAgJHtBJiZxJiZMLmNoaWxkcmVuP3RoaXMucmVuZGVyVHJlZShMLmNoaWxkcmVuKToiIn0KICAgIGB9Z2V0RmlsZUljb24oTCl7aWYoTC50eXBlPT09ImRpcmVjdG9yeSIpcmV0dXJuIHRoaXMuZXhwYW5kZWRQYXRocy5oYXMoTC5wYXRoKT8ibHVjaWRlOmZvbGRlck9wZW4iOiJsdWNpZGU6Zm9sZGVyIjtzd2l0Y2goTC5uYW1lLnNwbGl0KCIuIikucG9wKCk/LnRvTG93ZXJDYXNlKCkpe2Nhc2UidHMiOmNhc2UidHN4IjpyZXR1cm4ibHVjaWRlOmZpbGVDb2RlIjtjYXNlImpzIjpjYXNlImpzeCI6cmV0dXJuImx1Y2lkZTpmaWxlQ29kZSI7Y2FzZSJqc29uIjpyZXR1cm4ibHVjaWRlOmZpbGVKc29uIjtjYXNlImh0bWwiOnJldHVybiJsdWNpZGU6ZmlsZUNvZGUiO2Nhc2UiY3NzIjpjYXNlInNjc3MiOmNhc2UibGVzcyI6cmV0dXJuImx1Y2lkZTpmaWxlQ29kZSI7Y2FzZSJtZCI6cmV0dXJuImx1Y2lkZTpmaWxlVGV4dCI7Y2FzZSJwbmciOmNhc2UianBnIjpjYXNlImpwZWciOmNhc2UiZ2lmIjpjYXNlInN2ZyI6cmV0dXJuImx1Y2lkZTppbWFnZSI7ZGVmYXVsdDpyZXR1cm4ibHVjaWRlOmZpbGUifX1nZXRGaWxlSWNvbkNsYXNzKEwpe2lmKEwudHlwZT09PSJkaXJlY3RvcnkiKXJldHVybiJmb2xkZXIiO3N3aXRjaChMLm5hbWUuc3BsaXQoIi4iKS5wb3AoKT8udG9Mb3dlckNhc2UoKSl7Y2FzZSJ0cyI6Y2FzZSJ0c3giOnJldHVybiJ0eXBlc2NyaXB0IjtjYXNlImpzIjpjYXNlImpzeCI6cmV0dXJuImphdmFzY3JpcHQiO2Nhc2UianNvbiI6cmV0dXJuImpzb24iO2Nhc2UiaHRtbCI6cmV0dXJuImh0bWwiO2Nhc2UiY3NzIjpjYXNlInNjc3MiOmNhc2UibGVzcyI6cmV0dXJuImNzcyI7Y2FzZSJtZCI6cmV0dXJuIm1hcmtkb3duIjtkZWZhdWx0OnJldHVybiJmaWxlIn19YXN5bmMgaGFuZGxlSXRlbUNsaWNrKEwsQSl7TC5zdG9wUHJvcGFnYXRpb24oKSxBLnR5cGU9PT0iZGlyZWN0b3J5Ij9hd2FpdCB0aGlzLnRvZ2dsZURpcmVjdG9yeShBKToodGhpcy5zZWxlY3RlZFBhdGg9QS5wYXRoLHRoaXMuZGlzcGF0Y2hFdmVudChuZXcgQ3VzdG9tRXZlbnQoImZpbGUtc2VsZWN0Iix7ZGV0YWlsOntwYXRoOkEucGF0aCxuYW1lOkEubmFtZX0sYnViYmxlczohMCxjb21wb3NlZDohMH0pKSl9YXN5bmMgdG9nZ2xlRGlyZWN0b3J5KEwpe3RoaXMuZXhwYW5kZWRQYXRocy5oYXMoTC5wYXRoKT90aGlzLmV4cGFuZGVkUGF0aHMuZGVsZXRlKEwucGF0aCk6KHRoaXMuZXhwYW5kZWRQYXRocy5hZGQoTC5wYXRoKSwoIUwuY2hpbGRyZW58fEwuY2hpbGRyZW4ubGVuZ3RoPT09MCkmJmF3YWl0IHRoaXMubG9hZERpcmVjdG9yeUNvbnRlbnRzKEwpKSx0aGlzLnJlcXVlc3RVcGRhdGUoKX1hc3luYyBsb2FkRGlyZWN0b3J5Q29udGVudHMoTCl7aWYodGhpcy5leGVjdXRpb25FbnZpcm9ubWVudCl0cnl7bGV0IEE9YXdhaXQgdGhpcy5leGVjdXRpb25FbnZpcm9ubWVudC5yZWFkRGlyKEwucGF0aCk7TC5jaGlsZHJlbj10aGlzLnNvcnRFbnRyaWVzKEEpLm1hcChxPT4oey4uLnEsbGV2ZWw6TC5sZXZlbCsxLGV4cGFuZGVkOiExLGNoaWxkcmVuOnEudHlwZT09PSJkaXJlY3RvcnkiP1tdOnZvaWQgMH0pKX1jYXRjaChBKXtjb25zb2xlLmVycm9yKGBGYWlsZWQgdG8gbG9hZCBkaXJlY3RvcnkgJHtMLnBhdGh9OmAsQSl9fWFzeW5jIGhhbmRsZUNvbnRleHRNZW51KEwsQSl7TC5wcmV2ZW50RGVmYXVsdCgpLEwuc3RvcFByb3BhZ2F0aW9uKCk7bGV0IHE9W107QS50eXBlPT09ImRpcmVjdG9yeSImJnEucHVzaCh7bmFtZToiTmV3IEZpbGUiLGljb25OYW1lOiJmaWxlUGx1cyIsYWN0aW9uOmFzeW5jKCk9PnRoaXMuY3JlYXRlTmV3RmlsZShBLnBhdGgpfSx7bmFtZToiTmV3IEZvbGRlciIsaWNvbk5hbWU6ImZvbGRlclBsdXMiLGFjdGlvbjphc3luYygpPT50aGlzLmNyZWF0ZU5ld0ZvbGRlcihBLnBhdGgpfSx7ZGl2aWRlcjohMH0pLHEucHVzaCh7bmFtZToiUmVuYW1lIixpY29uTmFtZToicGVuY2lsIixhY3Rpb246YXN5bmMoKT0+dGhpcy5yZW5hbWVJdGVtKEEpfSx7bmFtZToiRHVwbGljYXRlIixpY29uTmFtZToiZmlsZXMiLGFjdGlvbjphc3luYygpPT50aGlzLmR1cGxpY2F0ZUl0ZW0oQSl9LHtuYW1lOiJDb3B5IixpY29uTmFtZToiY29weSIsYWN0aW9uOmFzeW5jKCk9PnRoaXMuY29weUl0ZW0oQSl9KSxBLnR5cGU9PT0iZGlyZWN0b3J5IiYmdGhpcy5jbGlwYm9hcmRQYXRoJiZxLnB1c2goe25hbWU6IlBhc3RlIixpY29uTmFtZToiY2xpcGJvYXJkIixhY3Rpb246YXN5bmMoKT0+dGhpcy5wYXN0ZUl0ZW0oQS5wYXRoKX0pLHEucHVzaCh7ZGl2aWRlcjohMH0se25hbWU6IkRlbGV0ZSIsaWNvbk5hbWU6InRyYXNoMiIsYWN0aW9uOmFzeW5jKCk9PnRoaXMuZGVsZXRlSXRlbShBKX0pLGF3YWl0IFV0Lm9wZW5Db250ZXh0TWVudVdpdGhPcHRpb25zKEwscSl9YXN5bmMgaGFuZGxlRW1wdHlTcGFjZUNvbnRleHRNZW51KEwpe2lmKEwudGFyZ2V0LmNsb3Nlc3QoIi50cmVlLWl0ZW0iKSlyZXR1cm47TC5wcmV2ZW50RGVmYXVsdCgpLEwuc3RvcFByb3BhZ2F0aW9uKCk7bGV0IHE9W3tuYW1lOiJOZXcgRmlsZSIsaWNvbk5hbWU6ImZpbGVQbHVzIixhY3Rpb246YXN5bmMoKT0+dGhpcy5jcmVhdGVOZXdGaWxlKCIvIil9LHtuYW1lOiJOZXcgRm9sZGVyIixpY29uTmFtZToiZm9sZGVyUGx1cyIsYWN0aW9uOmFzeW5jKCk9PnRoaXMuY3JlYXRlTmV3Rm9sZGVyKCIvIil9XTt0aGlzLmNsaXBib2FyZFBhdGgmJnEucHVzaCh7ZGl2aWRlcjohMH0se25hbWU6IlBhc3RlIixpY29uTmFtZToiY2xpcGJvYXJkIixhY3Rpb246YXN5bmMoKT0+dGhpcy5wYXN0ZUl0ZW0oIi8iKX0pLGF3YWl0IFV0Lm9wZW5Db250ZXh0TWVudVdpdGhPcHRpb25zKEwscSl9YXN5bmMgc2hvd0lucHV0TW9kYWwoTCl7cmV0dXJuIG5ldyBQcm9taXNlKGFzeW5jIEE9PntsZXQgcT1hd2FpdCBvMS5jcmVhdGVBbmRTaG93KHtoZWFkaW5nOkwuaGVhZGluZyx3aWR0aDoic21hbGwiLGNvbnRlbnQ6d2AKICAgICAgICAgIDxkZWVzLWlucHV0LXRleHQKICAgICAgICAgICAgLmxhYmVsPSR7TC5sYWJlbH0KICAgICAgICAgICAgLnZhbHVlPSR7TC52YWx1ZXx8IiJ9CiAgICAgICAgICA+PC9kZWVzLWlucHV0LXRleHQ+CiAgICAgICAgYCxtZW51T3B0aW9uczpbe25hbWU6IkNhbmNlbCIsYWN0aW9uOmFzeW5jIHo9Pnthd2FpdCB6LmRlc3Ryb3koKSxBKG51bGwpfX0se25hbWU6TC5idXR0b25OYW1lfHwiQ3JlYXRlIixhY3Rpb246YXN5bmMgej0+e2xldCAkPXouc2hhZG93Um9vdD8ucXVlcnlTZWxlY3RvcigiLm1vZGFsIC5jb250ZW50Iik/LnF1ZXJ5U2VsZWN0b3IoImRlZXMtaW5wdXQtdGV4dCIpPy52YWx1ZT8udHJpbSgpfHwiIjthd2FpdCB6LmRlc3Ryb3koKSxBKCR8fG51bGwpfX1dfSk7YXdhaXQgcS51cGRhdGVDb21wbGV0ZTtsZXQgQz1xLnNoYWRvd1Jvb3Q/LnF1ZXJ5U2VsZWN0b3IoIi5tb2RhbCAuY29udGVudCIpO2lmKEMpe2xldCB6PUMucXVlcnlTZWxlY3RvcigiZGVlcy1pbnB1dC10ZXh0Iik7eiYmKGF3YWl0IHoudXBkYXRlQ29tcGxldGUsei5mb2N1cygpKX19KX1hc3luYyBjcmVhdGVOZXdGaWxlKEwpe2xldCBBPWF3YWl0IHRoaXMuc2hvd0lucHV0TW9kYWwoe2hlYWRpbmc6Ik5ldyBGaWxlIixsYWJlbDoiRmlsZSBuYW1lIn0pO2lmKCFBfHwhdGhpcy5leGVjdXRpb25FbnZpcm9ubWVudClyZXR1cm47bGV0IHE9TD09PSIvIj9gLyR7QX1gOmAke0x9LyR7QX1gO3RyeXthd2FpdCB0aGlzLmV4ZWN1dGlvbkVudmlyb25tZW50LndyaXRlRmlsZShxLCIiKSxhd2FpdCB0aGlzLnJlZnJlc2goKSx0aGlzLmRpc3BhdGNoRXZlbnQobmV3IEN1c3RvbUV2ZW50KCJmaWxlLWNyZWF0ZWQiLHtkZXRhaWw6e3BhdGg6cX0sYnViYmxlczohMCxjb21wb3NlZDohMH0pKX1jYXRjaChDKXtjb25zb2xlLmVycm9yKCJGYWlsZWQgdG8gY3JlYXRlIGZpbGU6IixDKX19YXN5bmMgY3JlYXRlTmV3Rm9sZGVyKEwpe2xldCBBPWF3YWl0IHRoaXMuc2hvd0lucHV0TW9kYWwoe2hlYWRpbmc6Ik5ldyBGb2xkZXIiLGxhYmVsOiJGb2xkZXIgbmFtZSJ9KTtpZighQXx8IXRoaXMuZXhlY3V0aW9uRW52aXJvbm1lbnQpcmV0dXJuO2xldCBxPUw9PT0iLyI/YC8ke0F9YDpgJHtMfS8ke0F9YDt0cnl7YXdhaXQgdGhpcy5leGVjdXRpb25FbnZpcm9ubWVudC5ta2RpcihxKSxhd2FpdCB0aGlzLnJlZnJlc2goKSx0aGlzLmRpc3BhdGNoRXZlbnQobmV3IEN1c3RvbUV2ZW50KCJmb2xkZXItY3JlYXRlZCIse2RldGFpbDp7cGF0aDpxfSxidWJibGVzOiEwLGNvbXBvc2VkOiEwfSkpfWNhdGNoKEMpe2NvbnNvbGUuZXJyb3IoIkZhaWxlZCB0byBjcmVhdGUgZm9sZGVyOiIsQyl9fWFzeW5jIGRlbGV0ZUl0ZW0oTCl7aWYoISghdGhpcy5leGVjdXRpb25FbnZpcm9ubWVudHx8IWNvbmZpcm0oYERlbGV0ZSAke0wubmFtZX0/YCkpKXRyeXthd2FpdCB0aGlzLmV4ZWN1dGlvbkVudmlyb25tZW50LnJtKEwucGF0aCx7cmVjdXJzaXZlOkwudHlwZT09PSJkaXJlY3RvcnkifSksYXdhaXQgdGhpcy5yZWZyZXNoKCksdGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBDdXN0b21FdmVudCgiaXRlbS1kZWxldGVkIix7ZGV0YWlsOntwYXRoOkwucGF0aCx0eXBlOkwudHlwZX0sYnViYmxlczohMCxjb21wb3NlZDohMH0pKX1jYXRjaChxKXtjb25zb2xlLmVycm9yKCJGYWlsZWQgdG8gZGVsZXRlIGl0ZW06IixxKX19YXN5bmMgcmVuYW1lSXRlbShMKXtpZighdGhpcy5leGVjdXRpb25FbnZpcm9ubWVudClyZXR1cm47bGV0IEE9YXdhaXQgdGhpcy5zaG93SW5wdXRNb2RhbCh7aGVhZGluZzoiUmVuYW1lIixsYWJlbDoiTmV3IG5hbWUiLHZhbHVlOkwubmFtZSxidXR0b25OYW1lOiJSZW5hbWUifSk7aWYoIUF8fEE9PT1MLm5hbWUpcmV0dXJuO2xldCBxPUwucGF0aC5zdWJzdHJpbmcoMCxMLnBhdGgubGFzdEluZGV4T2YoIi8iKSl8fCIvIixDPXE9PT0iLyI/YC8ke0F9YDpgJHtxfS8ke0F9YDt0cnl7aWYoTC50eXBlPT09ImZpbGUiKXtsZXQgej1hd2FpdCB0aGlzLmV4ZWN1dGlvbkVudmlyb25tZW50LnJlYWRGaWxlKEwucGF0aCk7YXdhaXQgdGhpcy5leGVjdXRpb25FbnZpcm9ubWVudC53cml0ZUZpbGUoQyx6KSxhd2FpdCB0aGlzLmV4ZWN1dGlvbkVudmlyb25tZW50LnJtKEwucGF0aCl9ZWxzZSBhd2FpdCB0aGlzLmNvcHlEaXJlY3RvcnlDb250ZW50cyhMLnBhdGgsQyksYXdhaXQgdGhpcy5leGVjdXRpb25FbnZpcm9ubWVudC5ybShMLnBhdGgse3JlY3Vyc2l2ZTohMH0pO2F3YWl0IHRoaXMucmVmcmVzaCgpLHRoaXMuZGlzcGF0Y2hFdmVudChuZXcgQ3VzdG9tRXZlbnQoIml0ZW0tcmVuYW1lZCIse2RldGFpbDp7b2xkUGF0aDpMLnBhdGgsbmV3UGF0aDpDLHR5cGU6TC50eXBlfSxidWJibGVzOiEwLGNvbXBvc2VkOiEwfSkpfWNhdGNoKHope2NvbnNvbGUuZXJyb3IoIkZhaWxlZCB0byByZW5hbWUgaXRlbToiLHopfX1hc3luYyBkdXBsaWNhdGVJdGVtKEwpe2lmKCF0aGlzLmV4ZWN1dGlvbkVudmlyb25tZW50KXJldHVybjtsZXQgQT1MLnBhdGguc3Vic3RyaW5nKDAsTC5wYXRoLmxhc3RJbmRleE9mKCIvIikpfHwiLyIscTtpZihMLnR5cGU9PT0iZmlsZSIpe2xldCB6PUwubmFtZS5sYXN0SW5kZXhPZigiLiIpO2lmKHo+MCl7bGV0IEU9TC5uYW1lLnN1YnN0cmluZygwLHopLFQ9TC5uYW1lLnN1YnN0cmluZyh6KTtxPWAke0V9X2NvcHkke1R9YH1lbHNlIHE9YCR7TC5uYW1lfV9jb3B5YH1lbHNlIHE9YCR7TC5uYW1lfV9jb3B5YDtsZXQgQz1BPT09Ii8iP2AvJHtxfWA6YCR7QX0vJHtxfWA7dHJ5e2lmKEwudHlwZT09PSJmaWxlIil7bGV0IHo9YXdhaXQgdGhpcy5leGVjdXRpb25FbnZpcm9ubWVudC5yZWFkRmlsZShMLnBhdGgpO2F3YWl0IHRoaXMuZXhlY3V0aW9uRW52aXJvbm1lbnQud3JpdGVGaWxlKEMseil9ZWxzZSBhd2FpdCB0aGlzLmNvcHlEaXJlY3RvcnlDb250ZW50cyhMLnBhdGgsQyk7YXdhaXQgdGhpcy5yZWZyZXNoKCksdGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBDdXN0b21FdmVudCgiaXRlbS1kdXBsaWNhdGVkIix7ZGV0YWlsOntzb3VyY2VQYXRoOkwucGF0aCxuZXdQYXRoOkMsdHlwZTpMLnR5cGV9LGJ1YmJsZXM6ITAsY29tcG9zZWQ6ITB9KSl9Y2F0Y2goeil7Y29uc29sZS5lcnJvcigiRmFpbGVkIHRvIGR1cGxpY2F0ZSBpdGVtOiIseil9fWFzeW5jIGNvcHlJdGVtKEwpe3RoaXMuY2xpcGJvYXJkUGF0aD1MLnBhdGgsdGhpcy5jbGlwYm9hcmRPcGVyYXRpb249ImNvcHkifWFzeW5jIHBhc3RlSXRlbShMKXtpZighdGhpcy5leGVjdXRpb25FbnZpcm9ubWVudHx8IXRoaXMuY2xpcGJvYXJkUGF0aClyZXR1cm47bGV0IEE9dGhpcy5jbGlwYm9hcmRQYXRoLnNwbGl0KCIvIikucG9wKCl8fCJwYXN0ZWQiLHE9TD09PSIvIj9gLyR7QX1gOmAke0x9LyR7QX1gO3RyeXtpZighYXdhaXQgdGhpcy5leGVjdXRpb25FbnZpcm9ubWVudC5leGlzdHModGhpcy5jbGlwYm9hcmRQYXRoKSl7Y29uc29sZS5lcnJvcigiU291cmNlIGZpbGUgbm8gbG9uZ2VyIGV4aXN0cyIpLHRoaXMuY2xpcGJvYXJkUGF0aD1udWxsLHRoaXMuY2xpcGJvYXJkT3BlcmF0aW9uPW51bGw7cmV0dXJufXRyeXtsZXQgQz1hd2FpdCB0aGlzLmV4ZWN1dGlvbkVudmlyb25tZW50LnJlYWRGaWxlKHRoaXMuY2xpcGJvYXJkUGF0aCk7YXdhaXQgdGhpcy5leGVjdXRpb25FbnZpcm9ubWVudC53cml0ZUZpbGUocSxDKX1jYXRjaHthd2FpdCB0aGlzLmNvcHlEaXJlY3RvcnlDb250ZW50cyh0aGlzLmNsaXBib2FyZFBhdGgscSl9YXdhaXQgdGhpcy5yZWZyZXNoKCksdGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBDdXN0b21FdmVudCgiaXRlbS1wYXN0ZWQiLHtkZXRhaWw6e3NvdXJjZVBhdGg6dGhpcy5jbGlwYm9hcmRQYXRoLHRhcmdldFBhdGg6cX0sYnViYmxlczohMCxjb21wb3NlZDohMH0pKSx0aGlzLmNsaXBib2FyZFBhdGg9bnVsbCx0aGlzLmNsaXBib2FyZE9wZXJhdGlvbj1udWxsfWNhdGNoKEMpe2NvbnNvbGUuZXJyb3IoIkZhaWxlZCB0byBwYXN0ZSBpdGVtOiIsQyl9fWFzeW5jIGNvcHlEaXJlY3RvcnlDb250ZW50cyhMLEEpe2lmKCF0aGlzLmV4ZWN1dGlvbkVudmlyb25tZW50KXJldHVybjthd2FpdCB0aGlzLmV4ZWN1dGlvbkVudmlyb25tZW50Lm1rZGlyKEEpO2xldCBxPWF3YWl0IHRoaXMuZXhlY3V0aW9uRW52aXJvbm1lbnQucmVhZERpcihMKTtmb3IobGV0IEMgb2YgcSl7bGV0IHo9TD09PSIvIj9gLyR7Qy5uYW1lfWA6YCR7TH0vJHtDLm5hbWV9YCxFPUE9PT0iLyI/YC8ke0MubmFtZX1gOmAke0F9LyR7Qy5uYW1lfWA7aWYoQy50eXBlPT09ImRpcmVjdG9yeSIpYXdhaXQgdGhpcy5jb3B5RGlyZWN0b3J5Q29udGVudHMoeixFKTtlbHNle2xldCBUPWF3YWl0IHRoaXMuZXhlY3V0aW9uRW52aXJvbm1lbnQucmVhZEZpbGUoeik7YXdhaXQgdGhpcy5leGVjdXRpb25FbnZpcm9ubWVudC53cml0ZUZpbGUoRSxUKX19fWFzeW5jIGZpcnN0VXBkYXRlZCgpe2F3YWl0IHRoaXMubG9hZFRyZWUoKX1hc3luYyB1cGRhdGVkKEwpe0wuaGFzKCJleGVjdXRpb25FbnZpcm9ubWVudCIpJiYodGhpcy5sYXN0RXhlY3V0aW9uRW52aXJvbm1lbnQhPT10aGlzLmV4ZWN1dGlvbkVudmlyb25tZW50JiYodGhpcy5zdG9wRmlsZVdhdGNoZXIoKSx0aGlzLmxhc3RFeGVjdXRpb25FbnZpcm9ubWVudD10aGlzLmV4ZWN1dGlvbkVudmlyb25tZW50KSx0aGlzLmV4ZWN1dGlvbkVudmlyb25tZW50JiYoYXdhaXQgdGhpcy5sb2FkVHJlZSgpLHRoaXMuc3RhcnRGaWxlV2F0Y2hlcigpKSl9YXN5bmMgZGlzY29ubmVjdGVkQ2FsbGJhY2soKXthd2FpdCBzdXBlci5kaXNjb25uZWN0ZWRDYWxsYmFjaygpLHRoaXMuc3RvcEZpbGVXYXRjaGVyKCksdGhpcy5yZWZyZXNoRGVib3VuY2VUaW1lb3V0JiYoY2xlYXJUaW1lb3V0KHRoaXMucmVmcmVzaERlYm91bmNlVGltZW91dCksdGhpcy5yZWZyZXNoRGVib3VuY2VUaW1lb3V0PW51bGwpfXN0YXJ0RmlsZVdhdGNoZXIoKXtpZighKCF0aGlzLmV4ZWN1dGlvbkVudmlyb25tZW50fHx0aGlzLmZpbGVXYXRjaGVyKSl0cnl7dGhpcy5maWxlV2F0Y2hlcj10aGlzLmV4ZWN1dGlvbkVudmlyb25tZW50LndhdGNoKCIvIiwoTCxBKT0+e3RoaXMucmVmcmVzaERlYm91bmNlVGltZW91dCYmY2xlYXJUaW1lb3V0KHRoaXMucmVmcmVzaERlYm91bmNlVGltZW91dCksdGhpcy5yZWZyZXNoRGVib3VuY2VUaW1lb3V0PXNldFRpbWVvdXQoKCk9Pnt0aGlzLnJlZnJlc2goKX0sMzAwKX0se3JlY3Vyc2l2ZTohMH0pfWNhdGNoKEwpe2NvbnNvbGUud2FybigiRmlsZSB3YXRjaGluZyBub3Qgc3VwcG9ydGVkOiIsTCl9fXN0b3BGaWxlV2F0Y2hlcigpe3RoaXMuZmlsZVdhdGNoZXImJih0aGlzLmZpbGVXYXRjaGVyLnN0b3AoKSx0aGlzLmZpbGVXYXRjaGVyPW51bGwpfWFzeW5jIGxvYWRUcmVlKCl7aWYodGhpcy5leGVjdXRpb25FbnZpcm9ubWVudCYmIXRoaXMubG9hZFRyZWVTdGFydGVkKXt0aGlzLmxvYWRUcmVlU3RhcnRlZD0hMCx0aGlzLmlzTG9hZGluZz0hMCx0aGlzLmVycm9yTWVzc2FnZT0iIjt0cnl7dGhpcy5leGVjdXRpb25FbnZpcm9ubWVudC5yZWFkeXx8YXdhaXQgdGhpcy5leGVjdXRpb25FbnZpcm9ubWVudC5pbml0KCk7bGV0IEw9YXdhaXQgdGhpcy5leGVjdXRpb25FbnZpcm9ubWVudC5yZWFkRGlyKHRoaXMucm9vdFBhdGgpO3RoaXMudHJlZURhdGE9dGhpcy5zb3J0RW50cmllcyhMKS5tYXAoQT0+KHsuLi5BLGxldmVsOjAsZXhwYW5kZWQ6ITEsY2hpbGRyZW46QS50eXBlPT09ImRpcmVjdG9yeSI/W106dm9pZCAwfSkpfWNhdGNoKEwpe3RoaXMuZXJyb3JNZXNzYWdlPWBGYWlsZWQgdG8gbG9hZCBmaWxlczogJHtMfWAsY29uc29sZS5lcnJvcigiRmFpbGVkIHRvIGxvYWQgZmlsZSB0cmVlOiIsTCksdGhpcy5sb2FkVHJlZVN0YXJ0ZWQ9ITF9ZmluYWxseXt0aGlzLmlzTG9hZGluZz0hMX19fXNvcnRFbnRyaWVzKEwpe3JldHVybiBMLnNvcnQoKEEscSk9PkEudHlwZSE9PXEudHlwZT9BLnR5cGU9PT0iZGlyZWN0b3J5Ij8tMToxOkEubmFtZS5sb2NhbGVDb21wYXJlKHEubmFtZSkpfWFzeW5jIHJlZnJlc2goKXt0aGlzLmV4cGFuZGVkUGF0aHMuY2xlYXIoKSx0aGlzLmxvYWRUcmVlU3RhcnRlZD0hMSxhd2FpdCB0aGlzLmxvYWRUcmVlKCl9c2VsZWN0RmlsZShMKXt0aGlzLnNlbGVjdGVkUGF0aD1MfXN0YXRpY3tRYShpLGEpfX07cmV0dXJuIE49aX0pKCl9KTt2YXIgQ2oscmQscHh0LF9qPWIoKCk9Pnt1ZSgpO3FlKCk7dW8oKTtDaj1mdW5jdGlvbih0LGUsYSxpLHIscyl7ZnVuY3Rpb24gbih4KXtpZih4IT09dm9pZCAwJiZ0eXBlb2YgeCE9ImZ1bmN0aW9uIil0aHJvdyBuZXcgVHlwZUVycm9yKCJGdW5jdGlvbiBleHBlY3RlZCIpO3JldHVybiB4fWZvcih2YXIgbz1pLmtpbmQsZD1vPT09ImdldHRlciI/ImdldCI6bz09PSJzZXR0ZXIiPyJzZXQiOiJ2YWx1ZSIsYz0hZSYmdD9pLnN0YXRpYz90OnQucHJvdG90eXBlOm51bGwsaD1lfHwoYz9PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGMsaS5uYW1lKTp7fSksbCxmPSExLGc9YS5sZW5ndGgtMTtnPj0wO2ctLSl7dmFyIHk9e307Zm9yKHZhciB2IGluIGkpeVt2XT12PT09ImFjY2VzcyI/e306aVt2XTtmb3IodmFyIHYgaW4gaS5hY2Nlc3MpeS5hY2Nlc3Nbdl09aS5hY2Nlc3Nbdl07eS5hZGRJbml0aWFsaXplcj1mdW5jdGlvbih4KXtpZihmKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBhZGQgaW5pdGlhbGl6ZXJzIGFmdGVyIGRlY29yYXRpb24gaGFzIGNvbXBsZXRlZCIpO3MucHVzaChuKHh8fG51bGwpKX07dmFyIG09KDAsYVtnXSkobz09PSJhY2Nlc3NvciI/e2dldDpoLmdldCxzZXQ6aC5zZXR9OmhbZF0seSk7aWYobz09PSJhY2Nlc3NvciIpe2lmKG09PT12b2lkIDApY29udGludWU7aWYobT09PW51bGx8fHR5cGVvZiBtIT0ib2JqZWN0Iil0aHJvdyBuZXcgVHlwZUVycm9yKCJPYmplY3QgZXhwZWN0ZWQiKTsobD1uKG0uZ2V0KSkmJihoLmdldD1sKSwobD1uKG0uc2V0KSkmJihoLnNldD1sKSwobD1uKG0uaW5pdCkpJiZyLnVuc2hpZnQobCl9ZWxzZShsPW4obSkpJiYobz09PSJmaWVsZCI/ci51bnNoaWZ0KGwpOmhbZF09bCl9YyYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGMsaS5uYW1lLGgpLGY9ITB9LHJkPWZ1bmN0aW9uKHQsZSxhKXtmb3IodmFyIGk9YXJndW1lbnRzLmxlbmd0aD4yLHI9MDtyPGUubGVuZ3RoO3IrKylhPWk/ZVtyXS5jYWxsKHQsYSk6ZVtyXS5jYWxsKHQpO3JldHVybiBpP2E6dm9pZCAwfSxweHQ9KCgpPT57bGV0IHQ9W3BlKCJkZWVzLXdvcmtzcGFjZS10ZXJtaW5hbC1wcmV2aWV3IildLGUsYT1bXSxpLHI9eGUscyxuPVtdLG89W10sZCxjPVtdLGg9W107dmFyIGw9Y2xhc3MgZXh0ZW5kcyBye3N0YXRpY3tpPXRoaXN9c3RhdGlje2xldCBmPXR5cGVvZiBTeW1ib2w9PSJmdW5jdGlvbiImJlN5bWJvbC5tZXRhZGF0YT9PYmplY3QuY3JlYXRlKHJbU3ltYm9sLm1ldGFkYXRhXT8/bnVsbCk6dm9pZCAwO3M9W0koe3R5cGU6U3RyaW5nfSldLGQ9W0koe3R5cGU6QXJyYXl9KV0sQ2oodGhpcyxudWxsLHMse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJjb21tYW5kIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpnPT4iY29tbWFuZCJpbiBnLGdldDpnPT5nLmNvbW1hbmQsc2V0OihnLHkpPT57Zy5jb21tYW5kPXl9fSxtZXRhZGF0YTpmfSxuLG8pLENqKHRoaXMsbnVsbCxkLHtraW5kOiJhY2Nlc3NvciIsbmFtZToibGluZXMiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmc9PiJsaW5lcyJpbiBnLGdldDpnPT5nLmxpbmVzLHNldDooZyx5KT0+e2cubGluZXM9eX19LG1ldGFkYXRhOmZ9LGMsaCksQ2oobnVsbCxlPXt2YWx1ZTppfSx0LHtraW5kOiJjbGFzcyIsbmFtZTppLm5hbWUsbWV0YWRhdGE6Zn0sbnVsbCxhKSxsPWk9ZS52YWx1ZSxmJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoaSxTeW1ib2wubWV0YWRhdGEse2VudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwLHZhbHVlOmZ9KX1zdGF0aWMgZGVtbz0oKT0+d2AKICAgIDxkZWVzLXdvcmtzcGFjZS10ZXJtaW5hbC1wcmV2aWV3CiAgICAgIC5jb21tYW5kPSR7InBucG0gaW5zdGFsbCJ9CiAgICAgIC5saW5lcz0ke1siUGFja2FnZXM6ICs0MiIsIlByb2dyZXNzOiByZXNvbHZlZCAxNDIsIHJldXNlZCAxNDAsIGRvd25sb2FkZWQgMiwgYWRkZWQgNDIsIGRvbmUiLCIiLCJkZXBlbmRlbmNpZXM6IiwiKyBAcHVzaC5yb2Nrcy9zbWFydHByb21pc2UgNC4yLjMiLCIrIHR5cGVzY3JpcHQgNS4zLjMiLCIiLCJEb25lIGluIDIuM3MiXX0KICAgID48L2RlZXMtd29ya3NwYWNlLXRlcm1pbmFsLXByZXZpZXc+CiAgYDtzdGF0aWMgZGVtb0dyb3Vwcz1bIldvcmtzcGFjZSJdOyNlPXJkKHRoaXMsbiwiIik7Z2V0IGNvbW1hbmQoKXtyZXR1cm4gdGhpcy4jZX1zZXQgY29tbWFuZChmKXt0aGlzLiNlPWZ9I3Q9KHJkKHRoaXMsbykscmQodGhpcyxjLFtdKSk7Z2V0IGxpbmVzKCl7cmV0dXJuIHRoaXMuI3R9c2V0IGxpbmVzKGYpe3RoaXMuI3Q9Zn10ZXJtaW5hbD0ocmQodGhpcyxoKSxudWxsKTtmaXRBZGRvbj1udWxsO2xhc3RMaW5lQ291bnQ9MDtyZXNpemVPYnNlcnZlcj1udWxsO3Rlcm1pbmFsVGhlbWVTdWJzY3JpcHRpb249bnVsbDtzdGF0aWMgc3R5bGVzPVtDZSxwLmRlZmF1bHRTdHlsZXMsUWAKICAgICAgOmhvc3QgewogICAgICAgIGRpc3BsYXk6IGJsb2NrOwogICAgICAgIGhlaWdodDogMjAwcHg7CiAgICAgIH0KCiAgICAgIC50ZXJtaW5hbC1wcmV2aWV3IHsKICAgICAgICBoZWlnaHQ6IDEwMCU7CiAgICAgICAgYm9yZGVyLXJhZGl1czogOHB4OwogICAgICAgIG92ZXJmbG93OiBoaWRkZW47CiAgICAgICAgYmFja2dyb3VuZDogJHtwLmJkVGhlbWUoIiNmZmZmZmYiLCIjMDAwMDAwIil9OwogICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICR7cC5iZFRoZW1lKCJoc2woMCAwJSA4NSUpIiwiaHNsKDAgMCUgMjAlKSIpfTsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgIH0KCiAgICAgIC50ZXJtaW5hbC1oZWFkZXIgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBnYXA6IDhweDsKICAgICAgICBwYWRkaW5nOiA4cHggMTJweDsKICAgICAgICBiYWNrZ3JvdW5kOiAke3AuYmRUaGVtZSgiaHNsKDAgMCUgOTYlKSIsImhzbCgwIDAlIDEwJSkiKX07CiAgICAgICAgZm9udC1zaXplOiAxMnB4OwogICAgICAgIGZvbnQtZmFtaWx5OiAnU0YgTW9ubycsICdNb25hY28nLCAnSW5jb25zb2xhdGEnLCAnRmlyYSBDb2RlJywgbW9ub3NwYWNlOwogICAgICAgIGNvbG9yOiAke3AuYmRUaGVtZSgiaHNsKDAgMCUgNDAlKSIsImhzbCgwIDAlIDYwJSkiKX07CiAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICR7cC5iZFRoZW1lKCJoc2woMCAwJSA4NSUpIiwiaHNsKDAgMCUgMjAlKSIpfTsKICAgICAgICBmbGV4LXNocmluazogMDsKICAgICAgfQoKICAgICAgLnRlcm1pbmFsLWhlYWRlci1pY29uIHsKICAgICAgICBjb2xvcjogJHtwLmJkVGhlbWUoImhzbCgwIDAlIDUwJSkiLCJoc2woMCAwJSA1MCUpIil9OwogICAgICB9CgogICAgICAudGVybWluYWwtaGVhZGVyLWNvbW1hbmQgewogICAgICAgIGNvbG9yOiAke3AuYmRUaGVtZSgiaHNsKDAgMCUgMjAlKSIsImhzbCgwIDAlIDgwJSkiKX07CiAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDsKICAgICAgfQoKICAgICAgLnRlcm1pbmFsLWNvbnRhaW5lciB7CiAgICAgICAgZmxleDogMTsKICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgICAgcGFkZGluZzogOHB4OwogICAgICB9CgogICAgICAjeHRlcm0tY29udGFpbmVyIHsKICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgICAgdG9wOiA4cHg7CiAgICAgICAgbGVmdDogOHB4OwogICAgICAgIHJpZ2h0OiA4cHg7CiAgICAgICAgYm90dG9tOiA4cHg7CiAgICAgIH0KCiAgICAgIC8qIHh0ZXJtLmpzIHN0eWxlcyAqLwogICAgICAueHRlcm0gewogICAgICAgIGZvbnQtZmVhdHVyZS1zZXR0aW5nczogJ2xpZ2EnIDA7CiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICAgIHVzZXItc2VsZWN0OiBub25lOwogICAgICAgIC1tcy11c2VyLXNlbGVjdDogbm9uZTsKICAgICAgICAtd2Via2l0LXVzZXItc2VsZWN0OiBub25lOwogICAgICB9CgogICAgICAueHRlcm0uZm9jdXMsCiAgICAgIC54dGVybTpmb2N1cyB7CiAgICAgICAgb3V0bGluZTogbm9uZTsKICAgICAgfQoKICAgICAgLnh0ZXJtIC54dGVybS1oZWxwZXJzIHsKICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgICAgdG9wOiAwOwogICAgICAgIHotaW5kZXg6IDU7CiAgICAgIH0KCiAgICAgIC54dGVybSAueHRlcm0taGVscGVyLXRleHRhcmVhIHsKICAgICAgICBwYWRkaW5nOiAwOwogICAgICAgIGJvcmRlcjogMDsKICAgICAgICBtYXJnaW46IDA7CiAgICAgICAgcG9zaXRpb246IGFic29sdXRlOwogICAgICAgIG9wYWNpdHk6IDA7CiAgICAgICAgbGVmdDogLTk5OTllbTsKICAgICAgICB0b3A6IDA7CiAgICAgICAgd2lkdGg6IDA7CiAgICAgICAgaGVpZ2h0OiAwOwogICAgICAgIHotaW5kZXg6IC01OwogICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7CiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgICAgICByZXNpemU6IG5vbmU7CiAgICAgIH0KCiAgICAgIC54dGVybSAuY29tcG9zaXRpb24tdmlldyB7CiAgICAgICAgYmFja2dyb3VuZDogJHtwLmJkVGhlbWUoIiNmZmZmZmYiLCIjMDAwMDAwIil9OwogICAgICAgIGNvbG9yOiAke3AuYmRUaGVtZSgiIzMzMzMzMyIsIiNmZmZmZmYiKX07CiAgICAgICAgZGlzcGxheTogbm9uZTsKICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDsKICAgICAgICB6LWluZGV4OiAxOwogICAgICB9CgogICAgICAueHRlcm0gLmNvbXBvc2l0aW9uLXZpZXcuYWN0aXZlIHsKICAgICAgICBkaXNwbGF5OiBibG9jazsKICAgICAgfQoKICAgICAgLnh0ZXJtIC54dGVybS12aWV3cG9ydCB7CiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHtwLmJkVGhlbWUoIiNmZmZmZmYiLCIjMDAwMDAwIil9OwogICAgICAgIG92ZXJmbG93LXk6IHNjcm9sbDsKICAgICAgICBjdXJzb3I6IGRlZmF1bHQ7CiAgICAgICAgcG9zaXRpb246IGFic29sdXRlOwogICAgICAgIHJpZ2h0OiAwOwogICAgICAgIGxlZnQ6IDA7CiAgICAgICAgdG9wOiAwOwogICAgICAgIGJvdHRvbTogMDsKICAgICAgfQoKICAgICAgLnh0ZXJtIC54dGVybS1zY3JlZW4gewogICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgfQoKICAgICAgLnh0ZXJtIC54dGVybS1zY3JlZW4gY2FudmFzIHsKICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgICAgbGVmdDogMDsKICAgICAgICB0b3A6IDA7CiAgICAgIH0KCiAgICAgIC54dGVybSAueHRlcm0tc2Nyb2xsLWFyZWEgewogICAgICAgIHZpc2liaWxpdHk6IGhpZGRlbjsKICAgICAgfQoKICAgICAgLnh0ZXJtLWNoYXItbWVhc3VyZS1lbGVtZW50IHsKICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7CiAgICAgICAgdmlzaWJpbGl0eTogaGlkZGVuOwogICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgICB0b3A6IDA7CiAgICAgICAgbGVmdDogLTk5OTllbTsKICAgICAgICBsaW5lLWhlaWdodDogbm9ybWFsOwogICAgICB9CgogICAgICAueHRlcm0gewogICAgICAgIGN1cnNvcjogdGV4dDsKICAgICAgfQoKICAgICAgLnh0ZXJtLmVuYWJsZS1tb3VzZS1ldmVudHMgewogICAgICAgIGN1cnNvcjogZGVmYXVsdDsKICAgICAgfQoKICAgICAgLnh0ZXJtLnh0ZXJtLWN1cnNvci1wb2ludGVyIHsKICAgICAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICAgIH0KCiAgICAgIC54dGVybS5jb2x1bW4tc2VsZWN0LmZvY3VzIHsKICAgICAgICBjdXJzb3I6IGNyb3NzaGFpcjsKICAgICAgfQoKICAgICAgLnh0ZXJtIC54dGVybS1hY2Nlc3NpYmlsaXR5LAogICAgICAueHRlcm0gLnh0ZXJtLW1lc3NhZ2UgewogICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgICBsZWZ0OiAwOwogICAgICAgIHRvcDogMDsKICAgICAgICBib3R0b206IDA7CiAgICAgICAgcmlnaHQ6IDA7CiAgICAgICAgei1pbmRleDogMTA7CiAgICAgICAgY29sb3I6IHRyYW5zcGFyZW50OwogICAgICB9CgogICAgICAueHRlcm0gLmxpdmUtcmVnaW9uIHsKICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgICAgbGVmdDogLTk5OTlweDsKICAgICAgICB3aWR0aDogMXB4OwogICAgICAgIGhlaWdodDogMXB4OwogICAgICAgIG92ZXJmbG93OiBoaWRkZW47CiAgICAgIH0KCiAgICAgIC54dGVybS1kaW0gewogICAgICAgIG9wYWNpdHk6IDAuNTsKICAgICAgfQoKICAgICAgLnh0ZXJtLXVuZGVybGluZSB7CiAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7CiAgICAgIH0KCiAgICAgIC8qIEN1c3RvbSBzY3JvbGxiYXIgZm9yIHh0ZXJtIHZpZXdwb3J0ICovCiAgICAgIC54dGVybSAueHRlcm0tdmlld3BvcnQ6Oi13ZWJraXQtc2Nyb2xsYmFyIHsKICAgICAgICB3aWR0aDogOHB4OwogICAgICB9CgogICAgICAueHRlcm0gLnh0ZXJtLXZpZXdwb3J0Ojotd2Via2l0LXNjcm9sbGJhci10cmFjayB7CiAgICAgICAgYmFja2dyb3VuZDogJHtwLmJkVGhlbWUoImhzbCgwIDAlIDk2JSkiLCJoc2woMCAwJSA4JSkiKX07CiAgICAgIH0KCiAgICAgIC54dGVybSAueHRlcm0tdmlld3BvcnQ6Oi13ZWJraXQtc2Nyb2xsYmFyLXRodW1iIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke3AuYmRUaGVtZSgiaHNsKDAgMCUgODAlKSIsImhzbCgwIDAlIDI1JSkiKX07CiAgICAgICAgYm9yZGVyLXJhZGl1czogNHB4OwogICAgICB9CgogICAgICAueHRlcm0gLnh0ZXJtLXZpZXdwb3J0Ojotd2Via2l0LXNjcm9sbGJhci10aHVtYjpob3ZlciB7CiAgICAgICAgYmFja2dyb3VuZDogJHtwLmJkVGhlbWUoImhzbCgwIDAlIDcwJSkiLCJoc2woMCAwJSAzNSUpIil9OwogICAgICB9CiAgICBgXTtyZW5kZXIoKXtyZXR1cm4gd2AKICAgICAgPGRpdiBjbGFzcz0idGVybWluYWwtcHJldmlldyI+CiAgICAgICAgPGRpdiBjbGFzcz0idGVybWluYWwtaGVhZGVyIj4KICAgICAgICAgIDxzcGFuIGNsYXNzPSJ0ZXJtaW5hbC1oZWFkZXItaWNvbiI+JDwvc3Bhbj4KICAgICAgICAgIDxzcGFuIGNsYXNzPSJ0ZXJtaW5hbC1oZWFkZXItY29tbWFuZCI+JHt0aGlzLmNvbW1hbmR8fCJXYWl0aW5nLi4uIn08L3NwYW4+CiAgICAgICAgPC9kaXY+CiAgICAgICAgPGRpdiBjbGFzcz0idGVybWluYWwtY29udGFpbmVyIj4KICAgICAgICAgIDxkaXYgaWQ9Inh0ZXJtLWNvbnRhaW5lciI+PC9kaXY+CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGl2PgogICAgYH1nZXRUZXJtaW5hbFRoZW1lKGYpe3JldHVybiBmP3tiYWNrZ3JvdW5kOiIjZmZmZmZmIixmb3JlZ3JvdW5kOiIjMzMzMzMzIixjdXJzb3I6IiMzMzMzMzMiLGN1cnNvckFjY2VudDoiI2ZmZmZmZiIsc2VsZWN0aW9uQmFja2dyb3VuZDoicmdiYSgwLCAwLCAwLCAwLjIpIn06e2JhY2tncm91bmQ6IiMwMDAwMDAiLGZvcmVncm91bmQ6IiNjY2NjY2MiLGN1cnNvcjoiI2NjY2NjYyIsY3Vyc29yQWNjZW50OiIjMDAwMDAwIixzZWxlY3Rpb25CYWNrZ3JvdW5kOiJyZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMikifX1hc3luYyBmaXJzdFVwZGF0ZWQoZil7c3VwZXIuZmlyc3RVcGRhdGVkKGYpO2xldCBnPXRoaXMuc2hhZG93Um9vdD8uZ2V0RWxlbWVudEJ5SWQoInh0ZXJtLWNvbnRhaW5lciIpO2lmKCFnKXJldHVybjtsZXQgeT1hd2FpdCB0aGlzLmRvbXRvb2xzUHJvbWlzZSx2PXkudGhlbWVNYW5hZ2VyLmdvQnJpZ2h0Qm9vbGVhbixtPUwyLmdldEluc3RhbmNlKCksW3gsTV09YXdhaXQgUHJvbWlzZS5hbGwoW20ubG9hZFh0ZXJtKCksbS5sb2FkWHRlcm1GaXRBZGRvbigpXSk7dGhpcy50ZXJtaW5hbD1uZXcgeC5UZXJtaW5hbCh7Y29udmVydEVvbDohMCxjdXJzb3JCbGluazohMSxkaXNhYmxlU3RkaW46ITAsZm9udFNpemU6MTIsZm9udEZhbWlseToiJ1NGIE1vbm8nLCAnTW9uYWNvJywgJ0luY29uc29sYXRhJywgJ0ZpcmEgQ29kZScsIG1vbm9zcGFjZSIsdGhlbWU6dGhpcy5nZXRUZXJtaW5hbFRoZW1lKHYpLHNjcm9sbGJhY2s6MWUzfSksdGhpcy50ZXJtaW5hbFRoZW1lU3Vic2NyaXB0aW9uPXkudGhlbWVNYW5hZ2VyLnRoZW1lT2JzZXJ2YWJsZS5zdWJzY3JpYmUoUz0+e3RoaXMudGVybWluYWwmJih0aGlzLnRlcm1pbmFsLm9wdGlvbnMudGhlbWU9dGhpcy5nZXRUZXJtaW5hbFRoZW1lKFMpKX0pLHRoaXMuZml0QWRkb249bmV3IE0uRml0QWRkb24sdGhpcy50ZXJtaW5hbC5sb2FkQWRkb24odGhpcy5maXRBZGRvbiksdGhpcy50ZXJtaW5hbC5vcGVuKGcpLHRoaXMuZml0QWRkb24uZml0KCksdGhpcy5yZXNpemVPYnNlcnZlcj1uZXcgUmVzaXplT2JzZXJ2ZXIoKCk9Pnt0aGlzLmZpdEFkZG9uJiZ0aGlzLmZpdEFkZG9uLmZpdCgpfSksdGhpcy5yZXNpemVPYnNlcnZlci5vYnNlcnZlKGcpLHRoaXMud3JpdGVOZXdMaW5lcygpfWFzeW5jIHVwZGF0ZWQoZil7c3VwZXIudXBkYXRlZChmKSxmLmhhcygibGluZXMiKSYmdGhpcy53cml0ZU5ld0xpbmVzKCl9d3JpdGVOZXdMaW5lcygpe2lmKCF0aGlzLnRlcm1pbmFsKXJldHVybjtsZXQgZj10aGlzLmxpbmVzLnNsaWNlKHRoaXMubGFzdExpbmVDb3VudCk7Zm9yKGxldCBnIG9mIGYpdGhpcy50ZXJtaW5hbC53cml0ZWxuKGcpO3RoaXMubGFzdExpbmVDb3VudD10aGlzLmxpbmVzLmxlbmd0aH1hc3luYyBkaXNjb25uZWN0ZWRDYWxsYmFjaygpe3RoaXMucmVzaXplT2JzZXJ2ZXImJih0aGlzLnJlc2l6ZU9ic2VydmVyLmRpc2Nvbm5lY3QoKSx0aGlzLnJlc2l6ZU9ic2VydmVyPW51bGwpLHRoaXMudGVybWluYWxUaGVtZVN1YnNjcmlwdGlvbiYmKHRoaXMudGVybWluYWxUaGVtZVN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpLHRoaXMudGVybWluYWxUaGVtZVN1YnNjcmlwdGlvbj1udWxsKSx0aGlzLnRlcm1pbmFsJiYodGhpcy50ZXJtaW5hbC5kaXNwb3NlKCksdGhpcy50ZXJtaW5hbD1udWxsKSxhd2FpdCBzdXBlci5kaXNjb25uZWN0ZWRDYWxsYmFjaygpfWFkZExpbmUoZil7dGhpcy5saW5lcz1bLi4udGhpcy5saW5lcyxmXX1jbGVhcigpe3RoaXMubGluZXM9W10sdGhpcy5sYXN0TGluZUNvdW50PTAsdGhpcy50ZXJtaW5hbCYmdGhpcy50ZXJtaW5hbC5jbGVhcigpfXN0YXRpY3tyZChpLGEpfX07cmV0dXJuIGw9aX0pKCl9KTt2YXIgV2wscnIsdXh0LFRqPWIoKCk9Pnt1ZSgpO3FlKCk7RHQoKTtuMigpO1dsPWZ1bmN0aW9uKHQsZSxhLGkscixzKXtmdW5jdGlvbiBuKHgpe2lmKHghPT12b2lkIDAmJnR5cGVvZiB4IT0iZnVuY3Rpb24iKXRocm93IG5ldyBUeXBlRXJyb3IoIkZ1bmN0aW9uIGV4cGVjdGVkIik7cmV0dXJuIHh9Zm9yKHZhciBvPWkua2luZCxkPW89PT0iZ2V0dGVyIj8iZ2V0IjpvPT09InNldHRlciI/InNldCI6InZhbHVlIixjPSFlJiZ0P2kuc3RhdGljP3Q6dC5wcm90b3R5cGU6bnVsbCxoPWV8fChjP09iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoYyxpLm5hbWUpOnt9KSxsLGY9ITEsZz1hLmxlbmd0aC0xO2c+PTA7Zy0tKXt2YXIgeT17fTtmb3IodmFyIHYgaW4gaSl5W3ZdPXY9PT0iYWNjZXNzIj97fTppW3ZdO2Zvcih2YXIgdiBpbiBpLmFjY2Vzcyl5LmFjY2Vzc1t2XT1pLmFjY2Vzc1t2XTt5LmFkZEluaXRpYWxpemVyPWZ1bmN0aW9uKHgpe2lmKGYpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGFkZCBpbml0aWFsaXplcnMgYWZ0ZXIgZGVjb3JhdGlvbiBoYXMgY29tcGxldGVkIik7cy5wdXNoKG4oeHx8bnVsbCkpfTt2YXIgbT0oMCxhW2ddKShvPT09ImFjY2Vzc29yIj97Z2V0OmguZ2V0LHNldDpoLnNldH06aFtkXSx5KTtpZihvPT09ImFjY2Vzc29yIil7aWYobT09PXZvaWQgMCljb250aW51ZTtpZihtPT09bnVsbHx8dHlwZW9mIG0hPSJvYmplY3QiKXRocm93IG5ldyBUeXBlRXJyb3IoIk9iamVjdCBleHBlY3RlZCIpOyhsPW4obS5nZXQpKSYmKGguZ2V0PWwpLChsPW4obS5zZXQpKSYmKGguc2V0PWwpLChsPW4obS5pbml0KSkmJnIudW5zaGlmdChsKX1lbHNlKGw9bihtKSkmJihvPT09ImZpZWxkIj9yLnVuc2hpZnQobCk6aFtkXT1sKX1jJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoYyxpLm5hbWUsaCksZj0hMH0scnI9ZnVuY3Rpb24odCxlLGEpe2Zvcih2YXIgaT1hcmd1bWVudHMubGVuZ3RoPjIscj0wO3I8ZS5sZW5ndGg7cisrKWE9aT9lW3JdLmNhbGwodCxhKTplW3JdLmNhbGwodCk7cmV0dXJuIGk/YTp2b2lkIDB9LHV4dD0oKCk9PntsZXQgdD1bcGUoImRlZXMtd29ya3NwYWNlLWJvdHRvbWJhciIpXSxlLGE9W10saSxyPXhlLHMsbj1bXSxvPVtdLGQsYz1bXSxoPVtdLGwsZj1bXSxnPVtdLHksdj1bXSxtPVtdLHgsTT1bXSxTPVtdO3ZhciBGPWNsYXNzIGV4dGVuZHMgcntzdGF0aWN7aT10aGlzfXN0YXRpY3tsZXQgXz10eXBlb2YgU3ltYm9sPT0iZnVuY3Rpb24iJiZTeW1ib2wubWV0YWRhdGE/T2JqZWN0LmNyZWF0ZShyW1N5bWJvbC5tZXRhZGF0YV0/P251bGwpOnZvaWQgMDtzPVtJKHt0eXBlOk9iamVjdH0pXSxkPVtKKCldLGw9W0ooKV0seT1bSigpXSx4PVtKKCldLFdsKHRoaXMsbnVsbCxzLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiZXhlY3V0aW9uRW52aXJvbm1lbnQiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOms9PiJleGVjdXRpb25FbnZpcm9ubWVudCJpbiBrLGdldDprPT5rLmV4ZWN1dGlvbkVudmlyb25tZW50LHNldDooayxOKT0+e2suZXhlY3V0aW9uRW52aXJvbm1lbnQ9Tn19LG1ldGFkYXRhOl99LG4sbyksV2wodGhpcyxudWxsLGQse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJzY3JpcHRzIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczprPT4ic2NyaXB0cyJpbiBrLGdldDprPT5rLnNjcmlwdHMsc2V0OihrLE4pPT57ay5zY3JpcHRzPU59fSxtZXRhZGF0YTpffSxjLGgpLFdsKHRoaXMsbnVsbCxsLHtraW5kOiJhY2Nlc3NvciIsbmFtZToicGFja2FnZVN0YXR1cyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6az0+InBhY2thZ2VTdGF0dXMiaW4gayxnZXQ6az0+ay5wYWNrYWdlU3RhdHVzLHNldDooayxOKT0+e2sucGFja2FnZVN0YXR1cz1OfX0sbWV0YWRhdGE6X30sZixnKSxXbCh0aGlzLG51bGwseSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6Im91dGRhdGVkUGFja2FnZXMiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOms9PiJvdXRkYXRlZFBhY2thZ2VzImluIGssZ2V0Oms9Pmsub3V0ZGF0ZWRQYWNrYWdlcyxzZXQ6KGssTik9PntrLm91dGRhdGVkUGFja2FnZXM9Tn19LG1ldGFkYXRhOl99LHYsbSksV2wodGhpcyxudWxsLHgse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJpc0NoZWNraW5nUGFja2FnZXMiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOms9PiJpc0NoZWNraW5nUGFja2FnZXMiaW4gayxnZXQ6az0+ay5pc0NoZWNraW5nUGFja2FnZXMsc2V0OihrLE4pPT57ay5pc0NoZWNraW5nUGFja2FnZXM9Tn19LG1ldGFkYXRhOl99LE0sUyksV2wobnVsbCxlPXt2YWx1ZTppfSx0LHtraW5kOiJjbGFzcyIsbmFtZTppLm5hbWUsbWV0YWRhdGE6X30sbnVsbCxhKSxGPWk9ZS52YWx1ZSxfJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoaSxTeW1ib2wubWV0YWRhdGEse2VudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwLHZhbHVlOl99KX0jZT1ycih0aGlzLG4sbnVsbCk7Z2V0IGV4ZWN1dGlvbkVudmlyb25tZW50KCl7cmV0dXJuIHRoaXMuI2V9c2V0IGV4ZWN1dGlvbkVudmlyb25tZW50KF8pe3RoaXMuI2U9X30jdD0ocnIodGhpcyxvKSxycih0aGlzLGMse30pKTtnZXQgc2NyaXB0cygpe3JldHVybiB0aGlzLiN0fXNldCBzY3JpcHRzKF8pe3RoaXMuI3Q9X30jYT0ocnIodGhpcyxoKSxycih0aGlzLGYsImlkbGUiKSk7Z2V0IHBhY2thZ2VTdGF0dXMoKXtyZXR1cm4gdGhpcy4jYX1zZXQgcGFja2FnZVN0YXR1cyhfKXt0aGlzLiNhPV99I2k9KHJyKHRoaXMsZykscnIodGhpcyx2LFtdKSk7Z2V0IG91dGRhdGVkUGFja2FnZXMoKXtyZXR1cm4gdGhpcy4jaX1zZXQgb3V0ZGF0ZWRQYWNrYWdlcyhfKXt0aGlzLiNpPV99I3I9KHJyKHRoaXMsbSkscnIodGhpcyxNLCExKSk7Z2V0IGlzQ2hlY2tpbmdQYWNrYWdlcygpe3JldHVybiB0aGlzLiNyfXNldCBpc0NoZWNraW5nUGFja2FnZXMoXyl7dGhpcy4jcj1ffXBlbmRpbmdQYWNrYWdlVXBkYXRlPShycih0aGlzLFMpLCExKTtoYW5kbGVQcm9jZXNzQ29tcGxldGU9Xz0+e3RoaXMucGVuZGluZ1BhY2thZ2VVcGRhdGUmJih0aGlzLnBlbmRpbmdQYWNrYWdlVXBkYXRlPSExLHNldFRpbWVvdXQoKCk9PnRoaXMuY2hlY2tQYWNrYWdlcygpLDUwMCkpfTtzdGF0aWMgc3R5bGVzPVtDZSxwLmRlZmF1bHRTdHlsZXMsUWAKICAgICAgOmhvc3QgewogICAgICAgIGRpc3BsYXk6IGJsb2NrOwogICAgICAgIGhlaWdodDogMjRweDsKICAgICAgICBmbGV4LXNocmluazogMDsKICAgICAgfQoKICAgICAgLmJvdHRvbS1iYXIgewogICAgICAgIGhlaWdodDogMjRweDsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgcGFkZGluZzogMCA4cHg7CiAgICAgICAgZ2FwOiA0cHg7CiAgICAgICAgYmFja2dyb3VuZDogJHtwLmJkVGhlbWUoImhzbCgwIDAlIDk0JSkiLCJoc2woMCAwJSA2JSkiKX07CiAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICR7cC5iZFRoZW1lKCJoc2woMCAwJSA4NSUpIiwiaHNsKDAgMCUgMTUlKSIpfTsKICAgICAgICBmb250LXNpemU6IDExcHg7CiAgICAgICAgY29sb3I6ICR7cC5iZFRoZW1lKCJoc2woMCAwJSA0MCUpIiwiaHNsKDAgMCUgNjAlKSIpfTsKICAgICAgfQoKICAgICAgLndpZGdldCB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGdhcDogNHB4OwogICAgICAgIHBhZGRpbmc6IDJweCA2cHg7CiAgICAgICAgYm9yZGVyLXJhZGl1czogM3B4OwogICAgICAgIGN1cnNvcjogcG9pbnRlcjsKICAgICAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kIDAuMTVzIGVhc2UsIGNvbG9yIDAuMTVzIGVhc2U7CiAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDsKICAgICAgfQoKICAgICAgLndpZGdldDpob3ZlciB7CiAgICAgICAgYmFja2dyb3VuZDogJHtwLmJkVGhlbWUoImhzbCgwIDAlIDg4JSkiLCJoc2woMCAwJSAxMiUpIil9OwogICAgICAgIGNvbG9yOiAke3AuYmRUaGVtZSgiaHNsKDAgMCUgMjAlKSIsImhzbCgwIDAlIDgwJSkiKX07CiAgICAgIH0KCiAgICAgIC53aWRnZXQgZGVlcy1pY29uIHsKICAgICAgICBmbGV4LXNocmluazogMDsKICAgICAgfQoKICAgICAgLndpZGdldC1zZXBhcmF0b3IgewogICAgICAgIHdpZHRoOiAxcHg7CiAgICAgICAgaGVpZ2h0OiAxNHB4OwogICAgICAgIGJhY2tncm91bmQ6ICR7cC5iZFRoZW1lKCJoc2woMCAwJSA4MCUpIiwiaHNsKDAgMCUgMjAlKSIpfTsKICAgICAgICBtYXJnaW46IDAgNHB4OwogICAgICB9CgogICAgICAud2lkZ2V0LnJ1bm5pbmcgewogICAgICAgIGNvbG9yOiAke3AuYmRUaGVtZSgiaHNsKDIxMCAxMDAlIDQ1JSkiLCJoc2woMjEwIDEwMCUgNjAlKSIpfTsKICAgICAgfQoKICAgICAgLndpZGdldC51cC10by1kYXRlIHsKICAgICAgICBjb2xvcjogJHtwLmJkVGhlbWUoImhzbCgxNDIgNzAlIDM1JSkiLCJoc2woMTQyIDcwJSA1MCUpIil9OwogICAgICB9CgogICAgICAud2lkZ2V0LnVwZGF0ZXMtYXZhaWxhYmxlIHsKICAgICAgICBjb2xvcjogJHtwLmJkVGhlbWUoImhzbCgzOCA5MiUgNDUlKSIsImhzbCgzOCA5MiUgNTUlKSIpfTsKICAgICAgfQoKICAgICAgLndpZGdldC5lcnJvciB7CiAgICAgICAgY29sb3I6ICR7cC5iZFRoZW1lKCJoc2woMCA3MCUgNTAlKSIsImhzbCgwIDcwJSA2MCUpIil9OwogICAgICB9CgogICAgICBAa2V5ZnJhbWVzIHNwaW4gewogICAgICAgIGZyb20geyB0cmFuc2Zvcm06IHJvdGF0ZSgwZGVnKTsgfQogICAgICAgIHRvIHsgdHJhbnNmb3JtOiByb3RhdGUoMzYwZGVnKTsgfQogICAgICB9CgogICAgICAuc3Bpbm5pbmcgewogICAgICAgIGFuaW1hdGlvbjogc3BpbiAxcyBsaW5lYXIgaW5maW5pdGU7CiAgICAgIH0KCiAgICAgIC5zcGFjZXIgewogICAgICAgIGZsZXg6IDE7CiAgICAgIH0KICAgIGBdO3JlbmRlcigpe3JldHVybiB3YAogICAgICA8ZGl2IGNsYXNzPSJib3R0b20tYmFyIj4KICAgICAgICA8IS0tIFNjcmlwdCBSdW5uZXIgV2lkZ2V0IC0tPgogICAgICAgIDxkaXYKICAgICAgICAgIGNsYXNzPSJ3aWRnZXQiCiAgICAgICAgICBAY2xpY2s9JHt0aGlzLmhhbmRsZVNjcmlwdENsaWNrfQogICAgICAgICAgdGl0bGU9IlJ1biBzY3JpcHQiCiAgICAgICAgPgogICAgICAgICAgPGRlZXMtaWNvbgogICAgICAgICAgICAuaWNvbj0keyJsdWNpZGU6cGxheSJ9CiAgICAgICAgICAgIGljb25TaXplPSIxMiIKICAgICAgICAgID48L2RlZXMtaWNvbj4KICAgICAgICAgIDxzcGFuPlNjcmlwdHM8L3NwYW4+CiAgICAgICAgPC9kaXY+CgogICAgICAgIDxkaXYgY2xhc3M9IndpZGdldC1zZXBhcmF0b3IiPjwvZGl2PgoKICAgICAgICA8IS0tIFBhY2thZ2UgQ2hlY2tlciBXaWRnZXQgLS0+CiAgICAgICAgPGRpdgogICAgICAgICAgY2xhc3M9IndpZGdldCAke3RoaXMuZ2V0UGFja2FnZVN0YXR1c0NsYXNzKCl9IgogICAgICAgICAgQGNsaWNrPSR7dGhpcy5oYW5kbGVQYWNrYWdlQ2xpY2t9CiAgICAgICAgICB0aXRsZT0iJHt0aGlzLmdldFBhY2thZ2VUb29sdGlwKCl9IgogICAgICAgID4KICAgICAgICAgIDxkZWVzLWljb24KICAgICAgICAgICAgLmljb249JHt0aGlzLmdldFBhY2thZ2VJY29uKCl9CiAgICAgICAgICAgIGljb25TaXplPSIxMiIKICAgICAgICAgICAgY2xhc3M9IiR7dGhpcy5pc0NoZWNraW5nUGFja2FnZXM/InNwaW5uaW5nIjoiIn0iCiAgICAgICAgICA+PC9kZWVzLWljb24+CiAgICAgICAgICA8c3Bhbj4ke3RoaXMuZ2V0UGFja2FnZVN0YXR1c1RleHQoKX08L3NwYW4+CiAgICAgICAgPC9kaXY+CgogICAgICAgIDxkaXYgY2xhc3M9InNwYWNlciI+PC9kaXY+CgogICAgICAgIDwhLS0gRnV0dXJlIHdpZGdldHMgY2FuIGJlIGFkZGVkIGhlcmUgLS0+CiAgICAgIDwvZGl2PgogICAgYH1hc3luYyBjb25uZWN0ZWRDYWxsYmFjaygpe2F3YWl0IHN1cGVyLmNvbm5lY3RlZENhbGxiYWNrKCksd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoInByb2Nlc3MtY29tcGxldGUiLHRoaXMuaGFuZGxlUHJvY2Vzc0NvbXBsZXRlKX1hc3luYyBkaXNjb25uZWN0ZWRDYWxsYmFjaygpe2F3YWl0IHN1cGVyLmRpc2Nvbm5lY3RlZENhbGxiYWNrKCksd2luZG93LnJlbW92ZUV2ZW50TGlzdGVuZXIoInByb2Nlc3MtY29tcGxldGUiLHRoaXMuaGFuZGxlUHJvY2Vzc0NvbXBsZXRlKX1hc3luYyBmaXJzdFVwZGF0ZWQoKXthd2FpdCB0aGlzLmxvYWRTY3JpcHRzKCksYXdhaXQgdGhpcy5jaGVja1BhY2thZ2VzKCl9YXN5bmMgdXBkYXRlZChfKXtfLmhhcygiZXhlY3V0aW9uRW52aXJvbm1lbnQiKSYmdGhpcy5leGVjdXRpb25FbnZpcm9ubWVudCYmKGF3YWl0IHRoaXMubG9hZFNjcmlwdHMoKSxhd2FpdCB0aGlzLmNoZWNrUGFja2FnZXMoKSl9YXN5bmMgbG9hZFNjcmlwdHMoKXtpZih0aGlzLmV4ZWN1dGlvbkVudmlyb25tZW50KXRyeXtpZighYXdhaXQgdGhpcy5leGVjdXRpb25FbnZpcm9ubWVudC5leGlzdHMoIi9wYWNrYWdlLmpzb24iKSl7dGhpcy5zY3JpcHRzPXt9O3JldHVybn1sZXQgaz1hd2FpdCB0aGlzLmV4ZWN1dGlvbkVudmlyb25tZW50LnJlYWRGaWxlKCIvcGFja2FnZS5qc29uIiksTj1KU09OLnBhcnNlKGspO3RoaXMuc2NyaXB0cz1OLnNjcmlwdHN8fHt9fWNhdGNoKF8pe2NvbnNvbGUud2FybigiRmFpbGVkIHRvIGxvYWQgc2NyaXB0cyBmcm9tIHBhY2thZ2UuanNvbjoiLF8pLHRoaXMuc2NyaXB0cz17fX19YXN5bmMgaGFuZGxlU2NyaXB0Q2xpY2soXyl7Xy5zdG9wUHJvcGFnYXRpb24oKTtsZXQgaz1PYmplY3Qua2V5cyh0aGlzLnNjcmlwdHMpO2lmKGsubGVuZ3RoPT09MClyZXR1cm47bGV0IE49ay5tYXAoTD0+KHtuYW1lOkwsaWNvbk5hbWU6Imx1Y2lkZTp0ZXJtaW5hbCIsYWN0aW9uOmFzeW5jKCk9Pnthd2FpdCB0aGlzLnJ1blNjcmlwdChMKX19KSk7YXdhaXQgVXQub3BlbkNvbnRleHRNZW51V2l0aE9wdGlvbnMoXyxOKX1hc3luYyBydW5TY3JpcHQoXyl7aWYoIXRoaXMuZXhlY3V0aW9uRW52aXJvbm1lbnQpcmV0dXJuO2xldCBrPXt0eXBlOiJzY3JpcHQiLGxhYmVsOl8sY29tbWFuZDoicG5wbSIsYXJnczpbInJ1biIsX10sbWV0YWRhdGE6e3NjcmlwdE5hbWU6X319O3RoaXMuZGlzcGF0Y2hFdmVudChuZXcgQ3VzdG9tRXZlbnQoInJ1bi1wcm9jZXNzIix7YnViYmxlczohMCxjb21wb3NlZDohMCxkZXRhaWw6a30pKX1hc3luYyBjaGVja1BhY2thZ2VzKCl7aWYoIXRoaXMuZXhlY3V0aW9uRW52aXJvbm1lbnQpe3RoaXMucGFja2FnZVN0YXR1cz0iaWRsZSI7cmV0dXJufXRyeXtpZighYXdhaXQgdGhpcy5leGVjdXRpb25FbnZpcm9ubWVudC5leGlzdHMoIi9wYWNrYWdlLmpzb24iKSl7dGhpcy5wYWNrYWdlU3RhdHVzPSJpZGxlIjtyZXR1cm59dGhpcy5wYWNrYWdlU3RhdHVzPSJjaGVja2luZyIsdGhpcy5pc0NoZWNraW5nUGFja2FnZXM9ITA7bGV0IGs9YXdhaXQgdGhpcy5leGVjdXRpb25FbnZpcm9ubWVudC5zcGF3bigicG5wbSIsWyJvdXRkYXRlZCIsIi0tanNvbiJdKSxOPSIiLEw9ay5vdXRwdXQuZ2V0UmVhZGVyKCk7KGFzeW5jKCk9Pnt0cnl7Zm9yKDs7KXtsZXR7ZG9uZTpDLHZhbHVlOnp9PWF3YWl0IEwucmVhZCgpO2lmKEMpYnJlYWs7Tis9en19Y2F0Y2h7fX0pKCk7bGV0IHE9YXdhaXQgUHJvbWlzZS5yYWNlKFtrLmV4aXQsbmV3IFByb21pc2UoQz0+c2V0VGltZW91dCgoKT0+QygtMSksMWU0KSldKTt0cnl7YXdhaXQgTC5jYW5jZWwoKX1jYXRjaHt9aWYocT09PS0xKXtjb25zb2xlLndhcm4oIlBhY2thZ2UgY2hlY2sgdGltZWQgb3V0IiksdGhpcy5wYWNrYWdlU3RhdHVzPSJlcnJvciI7cmV0dXJufWlmKHE9PT0wKXRoaXMucGFja2FnZVN0YXR1cz0idXAtdG8tZGF0ZSIsdGhpcy5vdXRkYXRlZFBhY2thZ2VzPVtdO2Vsc2UgdHJ5e2xldCBDPUpTT04ucGFyc2UoTik7dGhpcy5vdXRkYXRlZFBhY2thZ2VzPXRoaXMucGFyc2VPdXRkYXRlZFBhY2thZ2VzKEMpLHRoaXMucGFja2FnZVN0YXR1cz10aGlzLm91dGRhdGVkUGFja2FnZXMubGVuZ3RoPjA/InVwZGF0ZXMtYXZhaWxhYmxlIjoidXAtdG8tZGF0ZSJ9Y2F0Y2h7dGhpcy5wYWNrYWdlU3RhdHVzPSJ1cGRhdGVzLWF2YWlsYWJsZSIsdGhpcy5vdXRkYXRlZFBhY2thZ2VzPVtdfX1jYXRjaChfKXtjb25zb2xlLndhcm4oIkZhaWxlZCB0byBjaGVjayBmb3IgcGFja2FnZSB1cGRhdGVzOiIsXyksdGhpcy5wYWNrYWdlU3RhdHVzPSJlcnJvciJ9ZmluYWxseXt0aGlzLmlzQ2hlY2tpbmdQYWNrYWdlcz0hMX19cGFyc2VPdXRkYXRlZFBhY2thZ2VzKF8pe2xldCBrPVtdO2lmKHR5cGVvZiBfPT0ib2JqZWN0IiYmXyE9PW51bGwpZm9yKGxldFtOLExdb2YgT2JqZWN0LmVudHJpZXMoXykpe2xldCBBPUw7ay5wdXNoKHtuYW1lOk4sY3VycmVudDpBLmN1cnJlbnR8fCJ1bmtub3duIix3YW50ZWQ6QS53YW50ZWR8fEEuY3VycmVudHx8InVua25vd24iLGxhdGVzdDpBLmxhdGVzdHx8QS53YW50ZWR8fCJ1bmtub3duIix0eXBlOkEuZGVwZW5kZW5jeVR5cGU9PT0iZGV2RGVwZW5kZW5jaWVzIj8iZGV2RGVwZW5kZW5jaWVzIjoiZGVwZW5kZW5jaWVzIn0pfXJldHVybiBrfWFzeW5jIGhhbmRsZVBhY2thZ2VDbGljayhfKXtfLnN0b3BQcm9wYWdhdGlvbigpO2xldCBrPVtdO2lmKGsucHVzaCh7bmFtZTp0aGlzLmlzQ2hlY2tpbmdQYWNrYWdlcz8iQ2hlY2tpbmcuLi4iOiJDaGVjayBmb3IgdXBkYXRlcyIsaWNvbk5hbWU6Imx1Y2lkZTpyZWZyZXNoQ3ciLGFjdGlvbjphc3luYygpPT57aWYodGhpcy5pc0NoZWNraW5nUGFja2FnZXMpcmV0dXJuO2xldCBOPXt0eXBlOiJwYWNrYWdlLXVwZGF0ZSIsbGFiZWw6ImNoZWNrIHBhY2thZ2VzIixjb21tYW5kOiJwbnBtIixhcmdzOlsib3V0ZGF0ZWQiXX07dGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBDdXN0b21FdmVudCgicnVuLXByb2Nlc3MiLHtidWJibGVzOiEwLGNvbXBvc2VkOiEwLGRldGFpbDpOfSkpLHNldFRpbWVvdXQoKCk9PnRoaXMuY2hlY2tQYWNrYWdlcygpLDNlMyl9fSksdGhpcy5vdXRkYXRlZFBhY2thZ2VzLmxlbmd0aD4wKXtrLnB1c2goe2RpdmlkZXI6ITB9KTtsZXQgTj10aGlzLm91dGRhdGVkUGFja2FnZXMuc2xpY2UoMCwxMCk7Zm9yKGxldCBMIG9mIE4pay5wdXNoKHtuYW1lOmAke0wubmFtZX06ICR7TC5jdXJyZW50fSBcdTIxOTIgJHtMLmxhdGVzdH1gLGljb25OYW1lOiJsdWNpZGU6cGFja2FnZSIsYWN0aW9uOmFzeW5jKCk9Pnthd2FpdCB0aGlzLnVwZGF0ZVBhY2thZ2UoTC5uYW1lKX19KTt0aGlzLm91dGRhdGVkUGFja2FnZXMubGVuZ3RoPjEwJiZrLnB1c2goe25hbWU6YC4uLiBhbmQgJHt0aGlzLm91dGRhdGVkUGFja2FnZXMubGVuZ3RoLTEwfSBtb3JlYCxpY29uTmFtZToibHVjaWRlOm1vcmVIb3Jpem9udGFsIixhY3Rpb246YXN5bmMoKT0+e319KSxrLnB1c2goe2RpdmlkZXI6ITB9KSxrLnB1c2goe25hbWU6IlVwZGF0ZSBhbGwgcGFja2FnZXMiLGljb25OYW1lOiJsdWNpZGU6YXJyb3dVcENpcmNsZSIsYWN0aW9uOmFzeW5jKCk9Pnthd2FpdCB0aGlzLnVwZGF0ZUFsbFBhY2thZ2VzKCl9fSl9YXdhaXQgVXQub3BlbkNvbnRleHRNZW51V2l0aE9wdGlvbnMoXyxrKX1hc3luYyB1cGRhdGVQYWNrYWdlKF8pe2lmKCF0aGlzLmV4ZWN1dGlvbkVudmlyb25tZW50KXJldHVybjt0aGlzLnBlbmRpbmdQYWNrYWdlVXBkYXRlPSEwO2xldCBrPXt0eXBlOiJwYWNrYWdlLXVwZGF0ZSIsbGFiZWw6YHVwZGF0ZSAke199YCxjb21tYW5kOiJwbnBtIixhcmdzOlsidXBkYXRlIiwiLS1sYXRlc3QiLF9dLG1ldGFkYXRhOntwYWNrYWdlTmFtZTpffX07dGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBDdXN0b21FdmVudCgicnVuLXByb2Nlc3MiLHtidWJibGVzOiEwLGNvbXBvc2VkOiEwLGRldGFpbDprfSkpfWFzeW5jIHVwZGF0ZUFsbFBhY2thZ2VzKCl7aWYoIXRoaXMuZXhlY3V0aW9uRW52aXJvbm1lbnQpcmV0dXJuO3RoaXMucGVuZGluZ1BhY2thZ2VVcGRhdGU9ITA7bGV0IF89e3R5cGU6InBhY2thZ2UtdXBkYXRlIixsYWJlbDoidXBkYXRlIGFsbCIsY29tbWFuZDoicG5wbSIsYXJnczpbInVwZGF0ZSIsIi0tbGF0ZXN0Il19O3RoaXMuZGlzcGF0Y2hFdmVudChuZXcgQ3VzdG9tRXZlbnQoInJ1bi1wcm9jZXNzIix7YnViYmxlczohMCxjb21wb3NlZDohMCxkZXRhaWw6X30pKX1nZXRQYWNrYWdlU3RhdHVzQ2xhc3MoKXtyZXR1cm4gdGhpcy5pc0NoZWNraW5nUGFja2FnZXM/IiI6dGhpcy5wYWNrYWdlU3RhdHVzfWdldFBhY2thZ2VJY29uKCl7aWYodGhpcy5pc0NoZWNraW5nUGFja2FnZXMpcmV0dXJuImx1Y2lkZTpsb2FkZXIyIjtzd2l0Y2godGhpcy5wYWNrYWdlU3RhdHVzKXtjYXNlInVwLXRvLWRhdGUiOnJldHVybiJsdWNpZGU6Y2hlY2tDaXJjbGUiO2Nhc2UidXBkYXRlcy1hdmFpbGFibGUiOnJldHVybiJsdWNpZGU6YWxlcnRDaXJjbGUiO2Nhc2UiZXJyb3IiOnJldHVybiJsdWNpZGU6eENpcmNsZSI7ZGVmYXVsdDpyZXR1cm4ibHVjaWRlOnBhY2thZ2UifX1nZXRQYWNrYWdlU3RhdHVzVGV4dCgpe2lmKHRoaXMuaXNDaGVja2luZ1BhY2thZ2VzKXJldHVybiJDaGVja2luZy4uLiI7c3dpdGNoKHRoaXMucGFja2FnZVN0YXR1cyl7Y2FzZSJ1cC10by1kYXRlIjpyZXR1cm4iVXAgdG8gZGF0ZSI7Y2FzZSJ1cGRhdGVzLWF2YWlsYWJsZSI6cmV0dXJuYCR7dGhpcy5vdXRkYXRlZFBhY2thZ2VzLmxlbmd0aH0gdXBkYXRlJHt0aGlzLm91dGRhdGVkUGFja2FnZXMubGVuZ3RoIT09MT8icyI6IiJ9YDtjYXNlImVycm9yIjpyZXR1cm4iQ2hlY2sgZmFpbGVkIjtkZWZhdWx0OnJldHVybiJQYWNrYWdlcyJ9fWdldFBhY2thZ2VUb29sdGlwKCl7aWYodGhpcy5pc0NoZWNraW5nUGFja2FnZXMpcmV0dXJuIkNoZWNraW5nIGZvciBwYWNrYWdlIHVwZGF0ZXMuLi4iO3N3aXRjaCh0aGlzLnBhY2thZ2VTdGF0dXMpe2Nhc2UidXAtdG8tZGF0ZSI6cmV0dXJuIkFsbCBwYWNrYWdlcyBhcmUgdXAgdG8gZGF0ZSI7Y2FzZSJ1cGRhdGVzLWF2YWlsYWJsZSI6cmV0dXJuYCR7dGhpcy5vdXRkYXRlZFBhY2thZ2VzLmxlbmd0aH0gcGFja2FnZSB1cGRhdGUke3RoaXMub3V0ZGF0ZWRQYWNrYWdlcy5sZW5ndGghPT0xPyJzIjoiIn0gYXZhaWxhYmxlYDtjYXNlImVycm9yIjpyZXR1cm4iRmFpbGVkIHRvIGNoZWNrIGZvciB1cGRhdGVzLiBDbGljayB0byByZXRyeS4iO2RlZmF1bHQ6cmV0dXJuIkNsaWNrIHRvIGNoZWNrIGZvciBwYWNrYWdlIHVwZGF0ZXMifX1hc3luYyByZWZyZXNoUGFja2FnZVN0YXR1cygpe2F3YWl0IHRoaXMuY2hlY2tQYWNrYWdlcygpfWFzeW5jIHJlZnJlc2hTY3JpcHRzKCl7YXdhaXQgdGhpcy5sb2FkU2NyaXB0cygpfXN0YXRpY3tycihpLGEpfX07cmV0dXJuIEY9aX0pKCl9KTt2YXIgc2QsTGo9YigoKT0+e3NkPWNsYXNze2xvYWRlZExpYnM9bmV3IFNldDtub3RGb3VuZFBhY2thZ2VzPW5ldyBTZXQ7bW9uYWNvSW5zdGFuY2U9bnVsbDtleGVjdXRpb25FbnZpcm9ubWVudD1udWxsO2ZpbGVDYWNoZT1uZXcgTWFwO2FkZGVkRXh0cmFMaWJzPW5ldyBNYXA7Z2V0IHRzQXBpKCl7cmV0dXJuIHRoaXMubW9uYWNvSW5zdGFuY2U/dGhpcy5tb25hY29JbnN0YW5jZS5sYW5ndWFnZXMudHlwZXNjcmlwdDpudWxsfWFzeW5jIGluaXQoZSxhKXt0aGlzLm1vbmFjb0luc3RhbmNlPWUsdGhpcy5leGVjdXRpb25FbnZpcm9ubWVudD1hLHRoaXMuY29uZmlndXJlQ29tcGlsZXJPcHRpb25zKCksYXdhaXQgdGhpcy5sb2FkQWxsUHJvamVjdEZpbGVzKCl9YXN5bmMgbG9hZEFsbFByb2plY3RGaWxlcygpe3RoaXMuZXhlY3V0aW9uRW52aXJvbm1lbnQmJmF3YWl0IHRoaXMubG9hZEZpbGVzRnJvbURpcmVjdG9yeSgiLyIpfWFzeW5jIGxvYWRGaWxlc0Zyb21EaXJlY3RvcnkoZSl7aWYodGhpcy5leGVjdXRpb25FbnZpcm9ubWVudCl0cnl7bGV0IGE9YXdhaXQgdGhpcy5leGVjdXRpb25FbnZpcm9ubWVudC5yZWFkRGlyKGUpO2ZvcihsZXQgaSBvZiBhKXtsZXQgcj1lPT09Ii8iP2AvJHtpLm5hbWV9YDpgJHtlfS8ke2kubmFtZX1gO2lmKGkubmFtZSE9PSJub2RlX21vZHVsZXMiKXtpZihpLnR5cGU9PT0iZGlyZWN0b3J5Iilhd2FpdCB0aGlzLmxvYWRGaWxlc0Zyb21EaXJlY3Rvcnkocik7ZWxzZSBpZihpLnR5cGU9PT0iZmlsZSIpe2xldCBzPWkubmFtZS5zcGxpdCgiLiIpLnBvcCgpPy50b0xvd2VyQ2FzZSgpO2lmKHM9PT0idHMifHxzPT09InRzeCJ8fHM9PT0ianMifHxzPT09ImpzeCIpdHJ5e2xldCBuPWF3YWl0IHRoaXMuZXhlY3V0aW9uRW52aXJvbm1lbnQucmVhZEZpbGUocik7dGhpcy5hZGRGaWxlTW9kZWwocixuKX1jYXRjaHt9fX19fWNhdGNoe319Y29uZmlndXJlQ29tcGlsZXJPcHRpb25zKCl7bGV0IGU9dGhpcy50c0FwaTtlJiYoZS50eXBlc2NyaXB0RGVmYXVsdHMuc2V0Q29tcGlsZXJPcHRpb25zKHt0YXJnZXQ6ZS5TY3JpcHRUYXJnZXQuRVMyMDIwLG1vZHVsZTplLk1vZHVsZUtpbmQuRVNOZXh0LG1vZHVsZVJlc29sdXRpb246ZS5Nb2R1bGVSZXNvbHV0aW9uS2luZC5CdW5kbGVyPz9lLk1vZHVsZVJlc29sdXRpb25LaW5kLk5vZGVKcyxhbGxvd1N5bnRoZXRpY0RlZmF1bHRJbXBvcnRzOiEwLGVzTW9kdWxlSW50ZXJvcDohMCxzdHJpY3Q6ITAsbm9FbWl0OiEwLGFsbG93SnM6ITAsY2hlY2tKczohMSxhbGxvd05vblRzRXh0ZW5zaW9uczohMCxsaWI6WyJlczIwMjAiLCJkb20iLCJkb20uaXRlcmFibGUiXSxiYXNlVXJsOiIvIixhbGxvd0ltcG9ydGluZ1RzRXh0ZW5zaW9uczohMCxyZXNvbHZlSnNvbk1vZHVsZTohMH0pLGUudHlwZXNjcmlwdERlZmF1bHRzLnNldERpYWdub3N0aWNzT3B0aW9ucyh7bm9TZW1hbnRpY1ZhbGlkYXRpb246ITEsbm9TeW50YXhWYWxpZGF0aW9uOiExfSksZS50eXBlc2NyaXB0RGVmYXVsdHMuc2V0RWFnZXJNb2RlbFN5bmMoITApKX1wYXJzZUltcG9ydHMoZSl7bGV0IGE9W10saT0vaW1wb3J0XHMrKD86W1x3Knt9XHMsXStmcm9tXHMrKT9bJyJdKFteJyJdKylbJyJdL2cscjtmb3IoOyhyPWkuZXhlYyhlKSkhPT1udWxsOyl7bGV0IG49clsxXTtpZighbi5zdGFydHNXaXRoKCIuIikmJiFuLnN0YXJ0c1dpdGgoIi8iKSl7bGV0IG89bi5zdGFydHNXaXRoKCJAIik/bi5zcGxpdCgiLyIpLnNsaWNlKDAsMikuam9pbigiLyIpOm4uc3BsaXQoIi8iKVswXTthLnB1c2gobyl9fWxldCBzPS9yZXF1aXJlXHMqXChccypbJyJdKFteJyJdKylbJyJdXHMqXCkvZztmb3IoOyhyPXMuZXhlYyhlKSkhPT1udWxsOyl7bGV0IG49clsxXTtpZighbi5zdGFydHNXaXRoKCIuIikmJiFuLnN0YXJ0c1dpdGgoIi8iKSl7bGV0IG89bi5zdGFydHNXaXRoKCJAIik/bi5zcGxpdCgiLyIpLnNsaWNlKDAsMikuam9pbigiLyIpOm4uc3BsaXQoIi8iKVswXTthLnB1c2gobyl9fXJldHVyblsuLi5uZXcgU2V0KGEpXX1hc3luYyBsb2FkVHlwZXNGb3JQYWNrYWdlKGUpe2lmKCEoIXRoaXMubW9uYWNvSW5zdGFuY2V8fCF0aGlzLmV4ZWN1dGlvbkVudmlyb25tZW50KSYmIXRoaXMubG9hZGVkTGlicy5oYXMoZSkmJiF0aGlzLm5vdEZvdW5kUGFja2FnZXMuaGFzKGUpKXRyeXtsZXQgYT1hd2FpdCB0aGlzLnRyeUxvYWRQYWNrYWdlVHlwZXMoZSk7YXx8KGE9YXdhaXQgdGhpcy50cnlMb2FkQXRUeXBlc1BhY2thZ2UoZSkpLGE/dGhpcy5sb2FkZWRMaWJzLmFkZChlKTp0aGlzLm5vdEZvdW5kUGFja2FnZXMuYWRkKGUpfWNhdGNoKGEpe2NvbnNvbGUud2FybihgRmFpbGVkIHRvIGxvYWQgdHlwZXMgZm9yICR7ZX06YCxhKX19YXN5bmMgdHJ5TG9hZFBhY2thZ2VUeXBlcyhlKXtsZXQgYT10aGlzLnRzQXBpO2lmKCF0aGlzLmV4ZWN1dGlvbkVudmlyb25tZW50fHwhYSlyZXR1cm4hMTtsZXQgaT1gL25vZGVfbW9kdWxlcy8ke2V9YDt0cnl7bGV0IHI9YCR7aX0vcGFja2FnZS5qc29uYDtpZihhd2FpdCB0aGlzLmV4ZWN1dGlvbkVudmlyb25tZW50LmV4aXN0cyhyKSl7bGV0IG89YXdhaXQgdGhpcy5leGVjdXRpb25FbnZpcm9ubWVudC5yZWFkRmlsZShyKSxkPUpTT04ucGFyc2Uobyk7aWYoYS50eXBlc2NyaXB0RGVmYXVsdHMuYWRkRXh0cmFMaWIobyxgZmlsZTovLyR7cn1gKSxkLnR5cGVzfHxkLnR5cGluZ3MpcmV0dXJuIGF3YWl0IHRoaXMubG9hZEFsbER0c0ZpbGVzRnJvbVBhY2thZ2UoaSksITB9bGV0IG49W2Ake2l9L2luZGV4LmQudHNgLGAke2l9L2Rpc3QvaW5kZXguZC50c2AsYCR7aX0vbGliL2luZGV4LmQudHNgXTtmb3IobGV0IG8gb2YgbilpZihhd2FpdCB0aGlzLmV4ZWN1dGlvbkVudmlyb25tZW50LmV4aXN0cyhvKSlyZXR1cm4gYXdhaXQgdGhpcy5sb2FkQWxsRHRzRmlsZXNGcm9tUGFja2FnZShpKSwhMDtyZXR1cm4hMX1jYXRjaChyKXtyZXR1cm4gY29uc29sZS5lcnJvcihgRmFpbGVkIHRvIGxvYWQgcGFja2FnZSB0eXBlcyBmb3IgJHtlfTpgLHIpLCExfX1hc3luYyBsb2FkQWxsRHRzRmlsZXNGcm9tUGFja2FnZShlKXtsZXQgYT10aGlzLnRzQXBpOyF0aGlzLmV4ZWN1dGlvbkVudmlyb25tZW50fHwhYXx8YXdhaXQgdGhpcy5sb2FkRHRzRmlsZXNGcm9tRGlyZWN0b3J5KGUpfWFzeW5jIGxvYWREdHNGaWxlc0Zyb21EaXJlY3RvcnkoZSl7bGV0IGE9dGhpcy50c0FwaTtpZighKCF0aGlzLmV4ZWN1dGlvbkVudmlyb25tZW50fHwhYSkpdHJ5e2xldCBpPWF3YWl0IHRoaXMuZXhlY3V0aW9uRW52aXJvbm1lbnQucmVhZERpcihlKTtmb3IobGV0IHIgb2YgaSl7bGV0IHM9ZT09PSIvIj9gLyR7ci5uYW1lfWA6YCR7ZX0vJHtyLm5hbWV9YDtpZihyLm5hbWUhPT0ibm9kZV9tb2R1bGVzIil7aWYoci50eXBlPT09ImRpcmVjdG9yeSIpYXdhaXQgdGhpcy5sb2FkRHRzRmlsZXNGcm9tRGlyZWN0b3J5KHMpO2Vsc2UgaWYoci50eXBlPT09ImZpbGUiJiZyLm5hbWUuZW5kc1dpdGgoIi5kLnRzIikpdHJ5e2xldCBuPWF3YWl0IHRoaXMuZXhlY3V0aW9uRW52aXJvbm1lbnQucmVhZEZpbGUocyk7YS50eXBlc2NyaXB0RGVmYXVsdHMuYWRkRXh0cmFMaWIobixgZmlsZTovLyR7c31gKX1jYXRjaHt9fX19Y2F0Y2h7fX1hc3luYyB0cnlMb2FkQXRUeXBlc1BhY2thZ2UoZSl7aWYoIXRoaXMuZXhlY3V0aW9uRW52aXJvbm1lbnQpcmV0dXJuITE7bGV0IGk9YC9ub2RlX21vZHVsZXMvJHtlLnN0YXJ0c1dpdGgoIkAiKT9gQHR5cGVzLyR7ZS5zbGljZSgxKS5yZXBsYWNlKCIvIiwiX18iKX1gOmBAdHlwZXMvJHtlfWB9YDt0cnl7bGV0IHI9YCR7aX0vaW5kZXguZC50c2A7cmV0dXJuIGF3YWl0IHRoaXMuZXhlY3V0aW9uRW52aXJvbm1lbnQuZXhpc3RzKHIpPyhhd2FpdCB0aGlzLmxvYWRBbGxEdHNGaWxlc0Zyb21QYWNrYWdlKGkpLCEwKTohMX1jYXRjaHtyZXR1cm4hMX19YXN5bmMgcHJvY2Vzc0NvbnRlbnRDaGFuZ2UoZSl7bGV0IGE9dGhpcy5wYXJzZUltcG9ydHMoZSk7Zm9yKGxldCBpIG9mIGEpdGhpcy5sb2FkZWRMaWJzLmhhcyhpKXx8YXdhaXQgdGhpcy5sb2FkVHlwZXNGb3JQYWNrYWdlKGkpfWFzeW5jIHNjYW5BbmRMb2FkTmV3UGFja2FnZVR5cGVzKCl7aWYodGhpcy5leGVjdXRpb25FbnZpcm9ubWVudCl7dGhpcy5ub3RGb3VuZFBhY2thZ2VzLmNsZWFyKCk7dHJ5e2lmKCFhd2FpdCB0aGlzLmV4ZWN1dGlvbkVudmlyb25tZW50LmV4aXN0cygiL25vZGVfbW9kdWxlcyIpKXJldHVybjtsZXQgZT1hd2FpdCB0aGlzLmV4ZWN1dGlvbkVudmlyb25tZW50LnJlYWREaXIoIi9ub2RlX21vZHVsZXMiKTtmb3IobGV0IGEgb2YgZSlpZihhLnR5cGU9PT0iZGlyZWN0b3J5IilpZihhLm5hbWUuc3RhcnRzV2l0aCgiQCIpKXRyeXtsZXQgaT1gL25vZGVfbW9kdWxlcy8ke2EubmFtZX1gLHI9YXdhaXQgdGhpcy5leGVjdXRpb25FbnZpcm9ubWVudC5yZWFkRGlyKGkpO2ZvcihsZXQgcyBvZiByKWlmKHMudHlwZT09PSJkaXJlY3RvcnkiKXtsZXQgbj1gJHthLm5hbWV9LyR7cy5uYW1lfWA7YXdhaXQgdGhpcy5sb2FkVHlwZXNGb3JQYWNrYWdlKG4pfX1jYXRjaHt9ZWxzZSBhLm5hbWUuc3RhcnRzV2l0aCgiLiIpfHxhd2FpdCB0aGlzLmxvYWRUeXBlc0ZvclBhY2thZ2UoYS5uYW1lKX1jYXRjaChlKXtjb25zb2xlLndhcm4oIkZhaWxlZCB0byBzY2FuIG5vZGVfbW9kdWxlczoiLGUpfX19YWRkRmlsZU1vZGVsKGUsYSl7aWYoIXRoaXMubW9uYWNvSW5zdGFuY2UpcmV0dXJuO3RoaXMuZmlsZUNhY2hlLnNldChlLGEpO2xldCBpPXRoaXMubW9uYWNvSW5zdGFuY2UuVXJpLnBhcnNlKGBmaWxlOi8vJHtlfWApLHI9dGhpcy5tb25hY29JbnN0YW5jZS5lZGl0b3IuZ2V0TW9kZWwoaSk7aWYocilyLmdldFZhbHVlKCkhPT1hJiZyLnNldFZhbHVlKGEpO2Vsc2V7bGV0IHM9dGhpcy5nZXRMYW5ndWFnZUZyb21QYXRoKGUpO3RoaXMubW9uYWNvSW5zdGFuY2UuZWRpdG9yLmNyZWF0ZU1vZGVsKGEscyxpKX10aGlzLmFkZEZpbGVBc0V4dHJhTGliKGUsYSl9YWRkRmlsZUFzRXh0cmFMaWIoZSxhKXtsZXQgaT10aGlzLnRzQXBpO2lmKCFpKXJldHVybjtsZXQgcj10aGlzLmFkZGVkRXh0cmFMaWJzLmdldChlKTtyJiZyLmRpc3Bvc2UoKTtsZXQgcz1gZmlsZTovLyR7ZX1gLG49aS50eXBlc2NyaXB0RGVmYXVsdHMuYWRkRXh0cmFMaWIoYSxzKTtpZih0aGlzLmFkZGVkRXh0cmFMaWJzLnNldChlLG4pLGUuZW5kc1dpdGgoIi50cyIpJiYhZS5lbmRzV2l0aCgiLmQudHMiKSl7bGV0IG89ZS5yZXBsYWNlKC9cLnRzJC8sIi5qcyIpLGQ9YGZpbGU6Ly8ke299YCxjPWkudHlwZXNjcmlwdERlZmF1bHRzLmFkZEV4dHJhTGliKGEsZCk7dGhpcy5hZGRlZEV4dHJhTGlicy5zZXQobyxjKSx0aGlzLmZpbGVDYWNoZS5zZXQobyxhKX1lbHNlIGlmKGUuZW5kc1dpdGgoIi50c3giKSl7bGV0IG89ZS5yZXBsYWNlKC9cLnRzeCQvLCIuanN4IiksZD1gZmlsZTovLyR7b31gLGM9aS50eXBlc2NyaXB0RGVmYXVsdHMuYWRkRXh0cmFMaWIoYSxkKTt0aGlzLmFkZGVkRXh0cmFMaWJzLnNldChvLGMpLHRoaXMuZmlsZUNhY2hlLnNldChvLGEpfX1nZXRGaWxlQ29udGVudChlKXtyZXR1cm4gdGhpcy5maWxlQ2FjaGUuZ2V0KGUpfWdldExhbmd1YWdlRnJvbVBhdGgoZSl7c3dpdGNoKGUuc3BsaXQoIi4iKS5wb3AoKT8udG9Mb3dlckNhc2UoKSl7Y2FzZSJ0cyI6Y2FzZSJ0c3giOnJldHVybiJ0eXBlc2NyaXB0IjtjYXNlImpzIjpjYXNlImpzeCI6cmV0dXJuImphdmFzY3JpcHQiO2Nhc2UianNvbiI6cmV0dXJuImpzb24iO2RlZmF1bHQ6cmV0dXJuInBsYWludGV4dCJ9fX19KTt2YXIgYjQsSmEsZnh0LCRqPWIoKCk9Pnt1ZSgpO1R0KCk7RXEoKTtxZSgpO25vKCk7YjQ9ZnVuY3Rpb24odCxlLGEsaSxyLHMpe2Z1bmN0aW9uIG4oeCl7aWYoeCE9PXZvaWQgMCYmdHlwZW9mIHghPSJmdW5jdGlvbiIpdGhyb3cgbmV3IFR5cGVFcnJvcigiRnVuY3Rpb24gZXhwZWN0ZWQiKTtyZXR1cm4geH1mb3IodmFyIG89aS5raW5kLGQ9bz09PSJnZXR0ZXIiPyJnZXQiOm89PT0ic2V0dGVyIj8ic2V0IjoidmFsdWUiLGM9IWUmJnQ/aS5zdGF0aWM/dDp0LnByb3RvdHlwZTpudWxsLGg9ZXx8KGM/T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihjLGkubmFtZSk6e30pLGwsZj0hMSxnPWEubGVuZ3RoLTE7Zz49MDtnLS0pe3ZhciB5PXt9O2Zvcih2YXIgdiBpbiBpKXlbdl09dj09PSJhY2Nlc3MiP3t9Omlbdl07Zm9yKHZhciB2IGluIGkuYWNjZXNzKXkuYWNjZXNzW3ZdPWkuYWNjZXNzW3ZdO3kuYWRkSW5pdGlhbGl6ZXI9ZnVuY3Rpb24oeCl7aWYoZil0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgYWRkIGluaXRpYWxpemVycyBhZnRlciBkZWNvcmF0aW9uIGhhcyBjb21wbGV0ZWQiKTtzLnB1c2gobih4fHxudWxsKSl9O3ZhciBtPSgwLGFbZ10pKG89PT0iYWNjZXNzb3IiP3tnZXQ6aC5nZXQsc2V0Omguc2V0fTpoW2RdLHkpO2lmKG89PT0iYWNjZXNzb3IiKXtpZihtPT09dm9pZCAwKWNvbnRpbnVlO2lmKG09PT1udWxsfHx0eXBlb2YgbSE9Im9iamVjdCIpdGhyb3cgbmV3IFR5cGVFcnJvcigiT2JqZWN0IGV4cGVjdGVkIik7KGw9bihtLmdldCkpJiYoaC5nZXQ9bCksKGw9bihtLnNldCkpJiYoaC5zZXQ9bCksKGw9bihtLmluaXQpKSYmci51bnNoaWZ0KGwpfWVsc2UobD1uKG0pKSYmKG89PT0iZmllbGQiP3IudW5zaGlmdChsKTpoW2RdPWwpfWMmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShjLGkubmFtZSxoKSxmPSEwfSxKYT1mdW5jdGlvbih0LGUsYSl7Zm9yKHZhciBpPWFyZ3VtZW50cy5sZW5ndGg+MixyPTA7cjxlLmxlbmd0aDtyKyspYT1pP2Vbcl0uY2FsbCh0LGEpOmVbcl0uY2FsbCh0KTtyZXR1cm4gaT9hOnZvaWQgMH0sZnh0PSgoKT0+e2xldCB0PVtwZSgiZGVlcy13b3Jrc3BhY2UtZGlmZi1lZGl0b3IiKV0sZSxhPVtdLGkscj14ZSxzLG49W10sbz1bXSxkLGM9W10saD1bXSxsLGY9W10sZz1bXSx5LHY9W10sbT1bXSx4LE09W10sUz1bXSxGLF89W10saz1bXTt2YXIgTj1jbGFzcyBleHRlbmRzIHJ7c3RhdGlje2k9dGhpc31zdGF0aWN7bGV0IEw9dHlwZW9mIFN5bWJvbD09ImZ1bmN0aW9uIiYmU3ltYm9sLm1ldGFkYXRhP09iamVjdC5jcmVhdGUocltTeW1ib2wubWV0YWRhdGFdPz9udWxsKTp2b2lkIDA7cz1bSSh7dHlwZTpTdHJpbmd9KV0sZD1bSSh7dHlwZTpTdHJpbmd9KV0sbD1bSSh7dHlwZTpTdHJpbmd9KV0seT1bSSh7dHlwZTpTdHJpbmd9KV0seD1bSSh7dHlwZTpTdHJpbmd9KV0sRj1bSSh7dHlwZTpTdHJpbmd9KV0sYjQodGhpcyxudWxsLHMse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJvcmlnaW5hbENvbnRlbnQiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOkE9PiJvcmlnaW5hbENvbnRlbnQiaW4gQSxnZXQ6QT0+QS5vcmlnaW5hbENvbnRlbnQsc2V0OihBLHEpPT57QS5vcmlnaW5hbENvbnRlbnQ9cX19LG1ldGFkYXRhOkx9LG4sbyksYjQodGhpcyxudWxsLGQse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJtb2RpZmllZENvbnRlbnQiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOkE9PiJtb2RpZmllZENvbnRlbnQiaW4gQSxnZXQ6QT0+QS5tb2RpZmllZENvbnRlbnQsc2V0OihBLHEpPT57QS5tb2RpZmllZENvbnRlbnQ9cX19LG1ldGFkYXRhOkx9LGMsaCksYjQodGhpcyxudWxsLGwse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJvcmlnaW5hbExhYmVsIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpBPT4ib3JpZ2luYWxMYWJlbCJpbiBBLGdldDpBPT5BLm9yaWdpbmFsTGFiZWwsc2V0OihBLHEpPT57QS5vcmlnaW5hbExhYmVsPXF9fSxtZXRhZGF0YTpMfSxmLGcpLGI0KHRoaXMsbnVsbCx5LHtraW5kOiJhY2Nlc3NvciIsbmFtZToibW9kaWZpZWRMYWJlbCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6QT0+Im1vZGlmaWVkTGFiZWwiaW4gQSxnZXQ6QT0+QS5tb2RpZmllZExhYmVsLHNldDooQSxxKT0+e0EubW9kaWZpZWRMYWJlbD1xfX0sbWV0YWRhdGE6TH0sdixtKSxiNCh0aGlzLG51bGwseCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6Imxhbmd1YWdlIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpBPT4ibGFuZ3VhZ2UiaW4gQSxnZXQ6QT0+QS5sYW5ndWFnZSxzZXQ6KEEscSk9PntBLmxhbmd1YWdlPXF9fSxtZXRhZGF0YTpMfSxNLFMpLGI0KHRoaXMsbnVsbCxGLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiZmlsZVBhdGgiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOkE9PiJmaWxlUGF0aCJpbiBBLGdldDpBPT5BLmZpbGVQYXRoLHNldDooQSxxKT0+e0EuZmlsZVBhdGg9cX19LG1ldGFkYXRhOkx9LF8sayksYjQobnVsbCxlPXt2YWx1ZTppfSx0LHtraW5kOiJjbGFzcyIsbmFtZTppLm5hbWUsbWV0YWRhdGE6TH0sbnVsbCxhKSxOPWk9ZS52YWx1ZSxMJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoaSxTeW1ib2wubWV0YWRhdGEse2VudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwLHZhbHVlOkx9KX1zdGF0aWMgZGVtbz0oKT0+d2AKICAgIDxkZWVzLXdvcmtzcGFjZS1kaWZmLWVkaXRvcgogICAgICAub3JpZ2luYWxDb250ZW50PSR7YGZ1bmN0aW9uIGhlbGxvKCkgewogIGNvbnNvbGUubG9nKCJIZWxsbyIpOwp9YH0KICAgICAgLm1vZGlmaWVkQ29udGVudD0ke2BmdW5jdGlvbiBoZWxsbygpIHsKICBjb25zb2xlLmxvZygiSGVsbG8gV29ybGQhIik7CiAgcmV0dXJuIHRydWU7Cn1gfQogICAgICAubGFuZ3VhZ2U9JHsidHlwZXNjcmlwdCJ9CiAgICAgIC5maWxlUGF0aD0keyIvZGVtby9leGFtcGxlLnRzIn0KICAgID48L2RlZXMtd29ya3NwYWNlLWRpZmYtZWRpdG9yPgogIGA7c3RhdGljIGRlbW9Hcm91cHM9WyJXb3Jrc3BhY2UiXTtkaWZmRWRpdG9yRGVmZXJyZWQ9TXQuc21hcnRwcm9taXNlLmRlZmVyKCk7I2U9SmEodGhpcyxuLCIiKTtnZXQgb3JpZ2luYWxDb250ZW50KCl7cmV0dXJuIHRoaXMuI2V9c2V0IG9yaWdpbmFsQ29udGVudChMKXt0aGlzLiNlPUx9I3Q9KEphKHRoaXMsbyksSmEodGhpcyxjLCIiKSk7Z2V0IG1vZGlmaWVkQ29udGVudCgpe3JldHVybiB0aGlzLiN0fXNldCBtb2RpZmllZENvbnRlbnQoTCl7dGhpcy4jdD1MfSNhPShKYSh0aGlzLGgpLEphKHRoaXMsZiwiRGlzayBWZXJzaW9uIikpO2dldCBvcmlnaW5hbExhYmVsKCl7cmV0dXJuIHRoaXMuI2F9c2V0IG9yaWdpbmFsTGFiZWwoTCl7dGhpcy4jYT1MfSNpPShKYSh0aGlzLGcpLEphKHRoaXMsdiwiTG9jYWwgVmVyc2lvbiIpKTtnZXQgbW9kaWZpZWRMYWJlbCgpe3JldHVybiB0aGlzLiNpfXNldCBtb2RpZmllZExhYmVsKEwpe3RoaXMuI2k9TH0jcj0oSmEodGhpcyxtKSxKYSh0aGlzLE0sInR5cGVzY3JpcHQiKSk7Z2V0IGxhbmd1YWdlKCl7cmV0dXJuIHRoaXMuI3J9c2V0IGxhbmd1YWdlKEwpe3RoaXMuI3I9TH0jcz0oSmEodGhpcyxTKSxKYSh0aGlzLF8sIiIpKTtnZXQgZmlsZVBhdGgoKXtyZXR1cm4gdGhpcy4jc31zZXQgZmlsZVBhdGgoTCl7dGhpcy4jcz1MfWRpZmZFZGl0b3I9KEphKHRoaXMsayksbnVsbCk7bW9uYWNvVGhlbWVTdWJzY3JpcHRpb249bnVsbDtvcmlnaW5hbE1vZGVsPW51bGw7bW9kaWZpZWRNb2RlbD1udWxsO2NvbnN0cnVjdG9yKCl7c3VwZXIoKSxHMi5zZXR1cERvbVRvb2xzKCl9c3RhdGljIHN0eWxlcz1bQ2UscC5kZWZhdWx0U3R5bGVzLFFgCiAgICAgIDpob3N0IHsKICAgICAgICBkaXNwbGF5OiBibG9jazsKICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgICAgdG9wOiAwOwogICAgICAgIGxlZnQ6IDA7CiAgICAgICAgcmlnaHQ6IDA7CiAgICAgICAgYm90dG9tOiAwOwogICAgICB9CgogICAgICAqIHsKICAgICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94OwogICAgICB9CgogICAgICAuZGlmZi13cmFwcGVyIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgICAgaGVpZ2h0OiAxMDAlOwogICAgICAgIHdpZHRoOiAxMDAlOwogICAgICB9CgogICAgICAuZGlmZi10b29sYmFyIHsKICAgICAgICBoZWlnaHQ6IDQ4cHg7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjsKICAgICAgICBwYWRkaW5nOiAwIDE2cHg7CiAgICAgICAgYmFja2dyb3VuZDogJHtwLmJkVGhlbWUoImhzbCgwIDAlIDk2JSkiLCJoc2woMCAwJSAxMiUpIil9OwogICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAke3AuYmRUaGVtZSgiaHNsKDAgMCUgODUlKSIsImhzbCgwIDAlIDIwJSkiKX07CiAgICAgICAgZmxleC1zaHJpbms6IDA7CiAgICAgIH0KCiAgICAgIC5kaWZmLWluZm8gewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBnYXA6IDEycHg7CiAgICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgICAgIGNvbG9yOiAke3AuYmRUaGVtZSgiaHNsKDAgMCUgMzAlKSIsImhzbCgwIDAlIDgwJSkiKX07CiAgICAgIH0KCiAgICAgIC5kaWZmLWZpbGVuYW1lIHsKICAgICAgICBmb250LXdlaWdodDogNjAwOwogICAgICAgIGNvbG9yOiAke3AuYmRUaGVtZSgiaHNsKDAgMCUgMjAlKSIsImhzbCgwIDAlIDkwJSkiKX07CiAgICAgIH0KCiAgICAgIC5kaWZmLWxhYmVscyB7CiAgICAgICAgZm9udC1zaXplOiAxMnB4OwogICAgICAgIGNvbG9yOiAke3AuYmRUaGVtZSgiaHNsKDAgMCUgNTAlKSIsImhzbCgwIDAlIDYwJSkiKX07CiAgICAgIH0KCiAgICAgIC5kaWZmLWFjdGlvbnMgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBnYXA6IDhweDsKICAgICAgfQoKICAgICAgLmRpZmYtY29udGFpbmVyIHsKICAgICAgICBmbGV4OiAxOwogICAgICAgIG1pbi1oZWlnaHQ6IDA7CiAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgIH0KCiAgICAgIC5uYXYtYnV0dG9ucyB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBnYXA6IDRweDsKICAgICAgfQoKICAgICAgLmFjdGlvbi1idXR0b25zIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGdhcDogOHB4OwogICAgICAgIG1hcmdpbi1sZWZ0OiAxNnB4OwogICAgICB9CiAgICBgXTtyZW5kZXIoKXtsZXQgTD10aGlzLmZpbGVQYXRoLnNwbGl0KCIvIikucG9wKCl8fCJmaWxlIjtyZXR1cm4gd2AKICAgICAgPGRpdiBjbGFzcz0iZGlmZi13cmFwcGVyIj4KICAgICAgICA8ZGl2IGNsYXNzPSJkaWZmLXRvb2xiYXIiPgogICAgICAgICAgPGRpdiBjbGFzcz0iZGlmZi1pbmZvIj4KICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImRpZmYtZmlsZW5hbWUiPiR7TH08L3NwYW4+CiAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJkaWZmLWxhYmVscyI+JHt0aGlzLm9yaWdpbmFsTGFiZWx9IOKGlCAke3RoaXMubW9kaWZpZWRMYWJlbH08L3NwYW4+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIDxkaXYgY2xhc3M9ImRpZmYtYWN0aW9ucyI+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9Im5hdi1idXR0b25zIj4KICAgICAgICAgICAgICA8ZGVlcy1idXR0b24KICAgICAgICAgICAgICAgIHR5cGU9Im91dGxpbmUiCiAgICAgICAgICAgICAgICBAY2xpY2s9JHt0aGlzLmdvVG9QcmV2aW91c0RpZmZ9CiAgICAgICAgICAgICAgPlByZXZpb3VzPC9kZWVzLWJ1dHRvbj4KICAgICAgICAgICAgICA8ZGVlcy1idXR0b24KICAgICAgICAgICAgICAgIHR5cGU9Im91dGxpbmUiCiAgICAgICAgICAgICAgICBAY2xpY2s9JHt0aGlzLmdvVG9OZXh0RGlmZn0KICAgICAgICAgICAgICA+TmV4dDwvZGVlcy1idXR0b24+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJhY3Rpb24tYnV0dG9ucyI+CiAgICAgICAgICAgICAgPGRlZXMtYnV0dG9uCiAgICAgICAgICAgICAgICB0eXBlPSJoaWdobGlnaHRlZCIKICAgICAgICAgICAgICAgIEBjbGljaz0ke3RoaXMuYWNjZXB0TG9jYWx9CiAgICAgICAgICAgICAgPlVzZSBMb2NhbDwvZGVlcy1idXR0b24+CiAgICAgICAgICAgICAgPGRlZXMtYnV0dG9uCiAgICAgICAgICAgICAgICB0eXBlPSJvdXRsaW5lIgogICAgICAgICAgICAgICAgQGNsaWNrPSR7dGhpcy5hY2NlcHREaXNrfQogICAgICAgICAgICAgID5Vc2UgRGlzazwvZGVlcy1idXR0b24+CiAgICAgICAgICAgICAgPGRlZXMtYnV0dG9uCiAgICAgICAgICAgICAgICB0eXBlPSJvdXRsaW5lIgogICAgICAgICAgICAgICAgQGNsaWNrPSR7dGhpcy5jbG9zZX0KICAgICAgICAgICAgICA+Q2xvc2U8L2RlZXMtYnV0dG9uPgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIDwvZGl2PgogICAgICAgIDwvZGl2PgogICAgICAgIDxkaXYgY2xhc3M9ImRpZmYtY29udGFpbmVyIj48L2Rpdj4KICAgICAgPC9kaXY+CiAgICBgfWFzeW5jIGZpcnN0VXBkYXRlZCgpe2F3YWl0IHN1cGVyLmZpcnN0VXBkYXRlZChuZXcgTWFwKSxhd2FpdCB0aGlzLmluaXREaWZmRWRpdG9yKCl9YXN5bmMgaW5pdERpZmZFZGl0b3IoKXtsZXQgTD10aGlzLnNoYWRvd1Jvb3Q/LnF1ZXJ5U2VsZWN0b3IoIi5kaWZmLWNvbnRhaW5lciIpO2lmKCFMKXJldHVybjtsZXQgQT1gaHR0cHM6Ly9jZG4uanNkZWxpdnIubmV0L25wbS9tb25hY28tZWRpdG9yQCR7THh9YCxxPXdpbmRvdy5tb25hY287cXx8KGF3YWl0IG5ldyBQcm9taXNlKFU9PntsZXQgcmU9c2V0SW50ZXJ2YWwoKCk9Pnt3aW5kb3cubW9uYWNvJiYoY2xlYXJJbnRlcnZhbChyZSksVSgpKX0sMTAwKX0pLHE9d2luZG93Lm1vbmFjbyk7bGV0IEM9YXdhaXQgdGhpcy5kb210b29sc1Byb21pc2UsRT1DLnRoZW1lTWFuYWdlci5nb0JyaWdodEJvb2xlYW4/InZzIjoidnMtZGFyayIsVD1EYXRlLm5vdygpLCQ9cS5VcmkucGFyc2UoYGRpZmY6Ly9vcmlnaW5hbC8ke1R9JHt0aGlzLmZpbGVQYXRofWApLFY9cS5VcmkucGFyc2UoYGRpZmY6Ly9tb2RpZmllZC8ke1R9JHt0aGlzLmZpbGVQYXRofWApO3RoaXMub3JpZ2luYWxNb2RlbD1xLmVkaXRvci5jcmVhdGVNb2RlbCh0aGlzLm9yaWdpbmFsQ29udGVudCx0aGlzLmxhbmd1YWdlLCQpLHRoaXMubW9kaWZpZWRNb2RlbD1xLmVkaXRvci5jcmVhdGVNb2RlbCh0aGlzLm1vZGlmaWVkQ29udGVudCx0aGlzLmxhbmd1YWdlLFYpLHRoaXMuZGlmZkVkaXRvcj1xLmVkaXRvci5jcmVhdGVEaWZmRWRpdG9yKEwse2F1dG9tYXRpY0xheW91dDohMCxyZWFkT25seTohMSxvcmlnaW5hbEVkaXRhYmxlOiExLHJlbmRlclNpZGVCeVNpZGU6ITAsaWdub3JlVHJpbVdoaXRlc3BhY2U6ITEsZm9udFNpemU6MTQsbWluaW1hcDp7ZW5hYmxlZDohMX19KSxxLmVkaXRvci5zZXRUaGVtZShFKSx0aGlzLmRpZmZFZGl0b3Iuc2V0TW9kZWwoe29yaWdpbmFsOnRoaXMub3JpZ2luYWxNb2RlbCxtb2RpZmllZDp0aGlzLm1vZGlmaWVkTW9kZWx9KSx0aGlzLm1vbmFjb1RoZW1lU3Vic2NyaXB0aW9uPUMudGhlbWVNYW5hZ2VyLnRoZW1lT2JzZXJ2YWJsZS5zdWJzY3JpYmUoVT0+e2xldCByZT1VPyJ2cyI6InZzLWRhcmsiO3EuZWRpdG9yLnNldFRoZW1lKHJlKX0pO2xldCBSPSJtb25hY28tZGlmZi1lZGl0b3ItY3NzIjtpZighdGhpcy5zaGFkb3dSb290Py5nZXRFbGVtZW50QnlJZChSKSl7bGV0IHJlPWF3YWl0KGF3YWl0IGZldGNoKGAke0F9L21pbi92cy9lZGl0b3IvZWRpdG9yLm1haW4uY3NzYCkpLnRleHQoKSxqPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInN0eWxlIik7ai5pZD1SLGoudGV4dENvbnRlbnQ9cmUsdGhpcy5zaGFkb3dSb290Py5hcHBlbmQoail9c2V0VGltZW91dCgoKT0+e3RyeXt0aGlzLmRpZmZFZGl0b3I/LnJldmVhbEZpcnN0RGlmZigpfWNhdGNoe319LDEwMCksdGhpcy5kaWZmRWRpdG9yRGVmZXJyZWQucmVzb2x2ZSh0aGlzLmRpZmZFZGl0b3IpfWdvVG9OZXh0RGlmZigpe3RyeXt0aGlzLmRpZmZFZGl0b3I/LmdvVG9EaWZmKCJuZXh0Iil9Y2F0Y2h7fX1nb1RvUHJldmlvdXNEaWZmKCl7dHJ5e3RoaXMuZGlmZkVkaXRvcj8uZ29Ub0RpZmYoInByZXZpb3VzIil9Y2F0Y2h7fX1hY2NlcHRMb2NhbCgpe2xldCBMPXRoaXMuZGlmZkVkaXRvcj8uZ2V0TW9kaWZpZWRFZGl0b3IoKS5nZXRWYWx1ZSgpfHx0aGlzLm1vZGlmaWVkQ29udGVudDt0aGlzLmRpc3BhdGNoRXZlbnQobmV3IEN1c3RvbUV2ZW50KCJkaWZmLXJlc29sdmVkIix7ZGV0YWlsOnthY3Rpb246InVzZS1sb2NhbCIsY29udGVudDpMfSxidWJibGVzOiEwLGNvbXBvc2VkOiEwfSkpfWFjY2VwdERpc2soKXt0aGlzLmRpc3BhdGNoRXZlbnQobmV3IEN1c3RvbUV2ZW50KCJkaWZmLXJlc29sdmVkIix7ZGV0YWlsOnthY3Rpb246InVzZS1kaXNrIixjb250ZW50OnRoaXMub3JpZ2luYWxDb250ZW50fSxidWJibGVzOiEwLGNvbXBvc2VkOiEwfSkpfWNsb3NlKCl7dGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBDdXN0b21FdmVudCgiZGlmZi1jbG9zZWQiLHtidWJibGVzOiEwLGNvbXBvc2VkOiEwfSkpfWFzeW5jIGRpc2Nvbm5lY3RlZENhbGxiYWNrKCl7YXdhaXQgc3VwZXIuZGlzY29ubmVjdGVkQ2FsbGJhY2soKSx0aGlzLm1vbmFjb1RoZW1lU3Vic2NyaXB0aW9uJiYodGhpcy5tb25hY29UaGVtZVN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpLHRoaXMubW9uYWNvVGhlbWVTdWJzY3JpcHRpb249bnVsbCksdGhpcy5vcmlnaW5hbE1vZGVsJiYodGhpcy5vcmlnaW5hbE1vZGVsLmRpc3Bvc2UoKSx0aGlzLm9yaWdpbmFsTW9kZWw9bnVsbCksdGhpcy5tb2RpZmllZE1vZGVsJiYodGhpcy5tb2RpZmllZE1vZGVsLmRpc3Bvc2UoKSx0aGlzLm1vZGlmaWVkTW9kZWw9bnVsbCksdGhpcy5kaWZmRWRpdG9yJiYodGhpcy5kaWZmRWRpdG9yLmRpc3Bvc2UoKSx0aGlzLmRpZmZFZGl0b3I9bnVsbCl9c3RhdGlje0phKGksYSl9fTtyZXR1cm4gTj1pfSkoKX0pO3ZhciBMMSx1dCxteHQsZ3h0PWIoKCk9Pnt1ZSgpO1R0KCk7cWUoKTt3dygpO1owKCk7encoKTt6dygpO3RkKCk7dGQoKTtfaigpO1RqKCk7RHQoKTtaMCgpO0xqKCk7bjIoKTt4MSgpO1F4KCk7JGooKTtMMT1mdW5jdGlvbih0LGUsYSxpLHIscyl7ZnVuY3Rpb24gbih4KXtpZih4IT09dm9pZCAwJiZ0eXBlb2YgeCE9ImZ1bmN0aW9uIil0aHJvdyBuZXcgVHlwZUVycm9yKCJGdW5jdGlvbiBleHBlY3RlZCIpO3JldHVybiB4fWZvcih2YXIgbz1pLmtpbmQsZD1vPT09ImdldHRlciI/ImdldCI6bz09PSJzZXR0ZXIiPyJzZXQiOiJ2YWx1ZSIsYz0hZSYmdD9pLnN0YXRpYz90OnQucHJvdG90eXBlOm51bGwsaD1lfHwoYz9PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGMsaS5uYW1lKTp7fSksbCxmPSExLGc9YS5sZW5ndGgtMTtnPj0wO2ctLSl7dmFyIHk9e307Zm9yKHZhciB2IGluIGkpeVt2XT12PT09ImFjY2VzcyI/e306aVt2XTtmb3IodmFyIHYgaW4gaS5hY2Nlc3MpeS5hY2Nlc3Nbdl09aS5hY2Nlc3Nbdl07eS5hZGRJbml0aWFsaXplcj1mdW5jdGlvbih4KXtpZihmKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBhZGQgaW5pdGlhbGl6ZXJzIGFmdGVyIGRlY29yYXRpb24gaGFzIGNvbXBsZXRlZCIpO3MucHVzaChuKHh8fG51bGwpKX07dmFyIG09KDAsYVtnXSkobz09PSJhY2Nlc3NvciI/e2dldDpoLmdldCxzZXQ6aC5zZXR9OmhbZF0seSk7aWYobz09PSJhY2Nlc3NvciIpe2lmKG09PT12b2lkIDApY29udGludWU7aWYobT09PW51bGx8fHR5cGVvZiBtIT0ib2JqZWN0Iil0aHJvdyBuZXcgVHlwZUVycm9yKCJPYmplY3QgZXhwZWN0ZWQiKTsobD1uKG0uZ2V0KSkmJihoLmdldD1sKSwobD1uKG0uc2V0KSkmJihoLnNldD1sKSwobD1uKG0uaW5pdCkpJiZyLnVuc2hpZnQobCl9ZWxzZShsPW4obSkpJiYobz09PSJmaWVsZCI/ci51bnNoaWZ0KGwpOmhbZF09bCl9YyYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGMsaS5uYW1lLGgpLGY9ITB9LHV0PWZ1bmN0aW9uKHQsZSxhKXtmb3IodmFyIGk9YXJndW1lbnRzLmxlbmd0aD4yLHI9MDtyPGUubGVuZ3RoO3IrKylhPWk/ZVtyXS5jYWxsKHQsYSk6ZVtyXS5jYWxsKHQpO3JldHVybiBpP2E6dm9pZCAwfSxteHQ9KCgpPT57bGV0IHQ9W3BlKCJkZWVzLXdvcmtzcGFjZSIpXSxlLGE9W10saSxyPXhlLHMsbj1bXSxvPVtdLGQsYz1bXSxoPVtdLGwsZj1bXSxnPVtdLHksdj1bXSxtPVtdLHgsTT1bXSxTPVtdLEYsXz1bXSxrPVtdLE4sTD1bXSxBPVtdLHEsQz1bXSx6PVtdLEUsVD1bXSwkPVtdLFYsUj1bXSxVPVtdLHJlLGo9W10sbWU9W10sd2UsSD1bXSxjZT1bXSxrZSxXPVtdLEQ9W10sTyxaPVtdLFk9W10sb2UsZ2U9W10sYmU9W10sJGUsQj1bXSxQPVtdLEssZmU9W10sZGU9W10sX2UsaGU9W10sdGU9W10semUsRmU9W10sV2U9W10seWUsZWU9W10sYWU9W10sdmUsUGU9W10sVmU9W10seHQsb3Q9W10sTHQ9W107dmFyIFp0PWNsYXNzIGV4dGVuZHMgcntzdGF0aWN7aT10aGlzfXN0YXRpY3tsZXQgaWU9dHlwZW9mIFN5bWJvbD09ImZ1bmN0aW9uIiYmU3ltYm9sLm1ldGFkYXRhP09iamVjdC5jcmVhdGUocltTeW1ib2wubWV0YWRhdGFdPz9udWxsKTp2b2lkIDA7cz1bSSh7dHlwZTpPYmplY3R9KV0sZD1bSSh7YXR0cmlidXRlOiExfSldLGw9W0koe3R5cGU6Qm9vbGVhbn0pXSx5PVtJKHt0eXBlOkJvb2xlYW59KV0seD1bSSh7dHlwZTpOdW1iZXJ9KV0sRj1bSSh7dHlwZTpOdW1iZXJ9KV0sTj1bSigpXSxxPVtKKCldLEU9W0ooKV0sVj1bSigpXSxyZT1bSigpXSx3ZT1bSigpXSxrZT1bSigpXSxPPVtKKCldLG9lPVtKKCldLCRlPVtKKCldLEs9W0ooKV0sX2U9W0ooKV0semU9W0ooKV0seWU9W0ooKV0sdmU9W0ooKV0seHQ9W0ooKV0sTDEodGhpcyxudWxsLHMse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJleGVjdXRpb25FbnZpcm9ubWVudCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6c2U9PiJleGVjdXRpb25FbnZpcm9ubWVudCJpbiBzZSxnZXQ6c2U9PnNlLmV4ZWN1dGlvbkVudmlyb25tZW50LHNldDooc2UsVGUpPT57c2UuZXhlY3V0aW9uRW52aXJvbm1lbnQ9VGV9fSxtZXRhZGF0YTppZX0sbixvKSxMMSh0aGlzLG51bGwsZCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImluaXRpYWxpemF0aW9uUHJvbWlzZSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6c2U9PiJpbml0aWFsaXphdGlvblByb21pc2UiaW4gc2UsZ2V0OnNlPT5zZS5pbml0aWFsaXphdGlvblByb21pc2Usc2V0OihzZSxUZSk9PntzZS5pbml0aWFsaXphdGlvblByb21pc2U9VGV9fSxtZXRhZGF0YTppZX0sYyxoKSxMMSh0aGlzLG51bGwsbCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InNob3dGaWxlVHJlZSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6c2U9PiJzaG93RmlsZVRyZWUiaW4gc2UsZ2V0OnNlPT5zZS5zaG93RmlsZVRyZWUsc2V0OihzZSxUZSk9PntzZS5zaG93RmlsZVRyZWU9VGV9fSxtZXRhZGF0YTppZX0sZixnKSxMMSh0aGlzLG51bGwseSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InNob3dUZXJtaW5hbCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6c2U9PiJzaG93VGVybWluYWwiaW4gc2UsZ2V0OnNlPT5zZS5zaG93VGVybWluYWwsc2V0OihzZSxUZSk9PntzZS5zaG93VGVybWluYWw9VGV9fSxtZXRhZGF0YTppZX0sdixtKSxMMSh0aGlzLG51bGwseCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImZpbGVUcmVlV2lkdGgiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOnNlPT4iZmlsZVRyZWVXaWR0aCJpbiBzZSxnZXQ6c2U9PnNlLmZpbGVUcmVlV2lkdGgsc2V0OihzZSxUZSk9PntzZS5maWxlVHJlZVdpZHRoPVRlfX0sbWV0YWRhdGE6aWV9LE0sUyksTDEodGhpcyxudWxsLEYse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJ0ZXJtaW5hbEhlaWdodCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6c2U9PiJ0ZXJtaW5hbEhlaWdodCJpbiBzZSxnZXQ6c2U9PnNlLnRlcm1pbmFsSGVpZ2h0LHNldDooc2UsVGUpPT57c2UudGVybWluYWxIZWlnaHQ9VGV9fSxtZXRhZGF0YTppZX0sXyxrKSxMMSh0aGlzLG51bGwsTix7a2luZDoiYWNjZXNzb3IiLG5hbWU6Im9wZW5GaWxlcyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6c2U9PiJvcGVuRmlsZXMiaW4gc2UsZ2V0OnNlPT5zZS5vcGVuRmlsZXMsc2V0OihzZSxUZSk9PntzZS5vcGVuRmlsZXM9VGV9fSxtZXRhZGF0YTppZX0sTCxBKSxMMSh0aGlzLG51bGwscSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImFjdGl2ZUZpbGVQYXRoIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpzZT0+ImFjdGl2ZUZpbGVQYXRoImluIHNlLGdldDpzZT0+c2UuYWN0aXZlRmlsZVBhdGgsc2V0OihzZSxUZSk9PntzZS5hY3RpdmVGaWxlUGF0aD1UZX19LG1ldGFkYXRhOmllfSxDLHopLEwxKHRoaXMsbnVsbCxFLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiaXNUZXJtaW5hbENvbGxhcHNlZCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6c2U9PiJpc1Rlcm1pbmFsQ29sbGFwc2VkImluIHNlLGdldDpzZT0+c2UuaXNUZXJtaW5hbENvbGxhcHNlZCxzZXQ6KHNlLFRlKT0+e3NlLmlzVGVybWluYWxDb2xsYXBzZWQ9VGV9fSxtZXRhZGF0YTppZX0sVCwkKSxMMSh0aGlzLG51bGwsVix7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImlzRmlsZVRyZWVDb2xsYXBzZWQiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOnNlPT4iaXNGaWxlVHJlZUNvbGxhcHNlZCJpbiBzZSxnZXQ6c2U9PnNlLmlzRmlsZVRyZWVDb2xsYXBzZWQsc2V0OihzZSxUZSk9PntzZS5pc0ZpbGVUcmVlQ29sbGFwc2VkPVRlfX0sbWV0YWRhdGE6aWV9LFIsVSksTDEodGhpcyxudWxsLHJlLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiaXNJbml0aWFsaXppbmciLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOnNlPT4iaXNJbml0aWFsaXppbmciaW4gc2UsZ2V0OnNlPT5zZS5pc0luaXRpYWxpemluZyxzZXQ6KHNlLFRlKT0+e3NlLmlzSW5pdGlhbGl6aW5nPVRlfX0sbWV0YWRhdGE6aWV9LGosbWUpLEwxKHRoaXMsbnVsbCx3ZSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImFjdGl2ZUJvdHRvbVBhbmVsIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpzZT0+ImFjdGl2ZUJvdHRvbVBhbmVsImluIHNlLGdldDpzZT0+c2UuYWN0aXZlQm90dG9tUGFuZWwsc2V0OihzZSxUZSk9PntzZS5hY3RpdmVCb3R0b21QYW5lbD1UZX19LG1ldGFkYXRhOmllfSxILGNlKSxMMSh0aGlzLG51bGwsa2Use2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJkaWFnbm9zdGljTWFya2VycyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6c2U9PiJkaWFnbm9zdGljTWFya2VycyJpbiBzZSxnZXQ6c2U9PnNlLmRpYWdub3N0aWNNYXJrZXJzLHNldDooc2UsVGUpPT57c2UuZGlhZ25vc3RpY01hcmtlcnM9VGV9fSxtZXRhZGF0YTppZX0sVyxEKSxMMSh0aGlzLG51bGwsTyx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImF1dG9TYXZlIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpzZT0+ImF1dG9TYXZlImluIHNlLGdldDpzZT0+c2UuYXV0b1NhdmUsc2V0OihzZSxUZSk9PntzZS5hdXRvU2F2ZT1UZX19LG1ldGFkYXRhOmllfSxaLFkpLEwxKHRoaXMsbnVsbCxvZSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImluaXRDb21tYW5kIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpzZT0+ImluaXRDb21tYW5kImluIHNlLGdldDpzZT0+c2UuaW5pdENvbW1hbmQsc2V0OihzZSxUZSk9PntzZS5pbml0Q29tbWFuZD1UZX19LG1ldGFkYXRhOmllfSxnZSxiZSksTDEodGhpcyxudWxsLCRlLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiaW5pdE91dHB1dCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6c2U9PiJpbml0T3V0cHV0ImluIHNlLGdldDpzZT0+c2UuaW5pdE91dHB1dCxzZXQ6KHNlLFRlKT0+e3NlLmluaXRPdXRwdXQ9VGV9fSxtZXRhZGF0YTppZX0sQixQKSxMMSh0aGlzLG51bGwsSyx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImN1cnJlbnRGaWxlVHJlZVdpZHRoIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpzZT0+ImN1cnJlbnRGaWxlVHJlZVdpZHRoImluIHNlLGdldDpzZT0+c2UuY3VycmVudEZpbGVUcmVlV2lkdGgsc2V0OihzZSxUZSk9PntzZS5jdXJyZW50RmlsZVRyZWVXaWR0aD1UZX19LG1ldGFkYXRhOmllfSxmZSxkZSksTDEodGhpcyxudWxsLF9lLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiY3VycmVudFRlcm1pbmFsSGVpZ2h0IixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpzZT0+ImN1cnJlbnRUZXJtaW5hbEhlaWdodCJpbiBzZSxnZXQ6c2U9PnNlLmN1cnJlbnRUZXJtaW5hbEhlaWdodCxzZXQ6KHNlLFRlKT0+e3NlLmN1cnJlbnRUZXJtaW5hbEhlaWdodD1UZX19LG1ldGFkYXRhOmllfSxoZSx0ZSksTDEodGhpcyxudWxsLHplLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiaXNEcmFnZ2luZ0ZpbGVUcmVlIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpzZT0+ImlzRHJhZ2dpbmdGaWxlVHJlZSJpbiBzZSxnZXQ6c2U9PnNlLmlzRHJhZ2dpbmdGaWxlVHJlZSxzZXQ6KHNlLFRlKT0+e3NlLmlzRHJhZ2dpbmdGaWxlVHJlZT1UZX19LG1ldGFkYXRhOmllfSxGZSxXZSksTDEodGhpcyxudWxsLHllLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiaXNEcmFnZ2luZ1Rlcm1pbmFsIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpzZT0+ImlzRHJhZ2dpbmdUZXJtaW5hbCJpbiBzZSxnZXQ6c2U9PnNlLmlzRHJhZ2dpbmdUZXJtaW5hbCxzZXQ6KHNlLFRlKT0+e3NlLmlzRHJhZ2dpbmdUZXJtaW5hbD1UZX19LG1ldGFkYXRhOmllfSxlZSxhZSksTDEodGhpcyxudWxsLHZlLHtraW5kOiJhY2Nlc3NvciIsbmFtZToic2hvd0RpZmZWaWV3IixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpzZT0+InNob3dEaWZmVmlldyJpbiBzZSxnZXQ6c2U9PnNlLnNob3dEaWZmVmlldyxzZXQ6KHNlLFRlKT0+e3NlLnNob3dEaWZmVmlldz1UZX19LG1ldGFkYXRhOmllfSxQZSxWZSksTDEodGhpcyxudWxsLHh0LHtraW5kOiJhY2Nlc3NvciIsbmFtZToiZGlmZlZpZXdDb25maWciLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOnNlPT4iZGlmZlZpZXdDb25maWciaW4gc2UsZ2V0OnNlPT5zZS5kaWZmVmlld0NvbmZpZyxzZXQ6KHNlLFRlKT0+e3NlLmRpZmZWaWV3Q29uZmlnPVRlfX0sbWV0YWRhdGE6aWV9LG90LEx0KSxMMShudWxsLGU9e3ZhbHVlOml9LHQse2tpbmQ6ImNsYXNzIixuYW1lOmkubmFtZSxtZXRhZGF0YTppZX0sbnVsbCxhKSxadD1pPWUudmFsdWUsaWUmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShpLFN5bWJvbC5tZXRhZGF0YSx7ZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITAsdmFsdWU6aWV9KX1zdGF0aWMgZGVtbz0oKT0+e2xldCBpZT1uZXcgbTQsc2U9KGFzeW5jKCk9Pnthd2FpdCBpZS5pbml0KCk7bGV0IGN0PXsicGFja2FnZS5qc29uIjp7ZmlsZTp7Y29udGVudHM6SlNPTi5zdHJpbmdpZnkoe25hbWU6ImRlbW8tcHJvamVjdCIsdmVyc2lvbjoiMS4wLjAiLHR5cGU6Im1vZHVsZSIsc2NyaXB0czp7YnVpbGQ6InRzYyIsZGV2OiJ0c2MgLS13YXRjaCJ9LGRlcGVuZGVuY2llczp7IkBwdXNoLnJvY2tzL3NtYXJ0cHJvbWlzZSI6Il40LjIuMyJ9LGRldkRlcGVuZGVuY2llczp7IkB0eXBlcy9ub2RlIjoiXjIyLjAuMCIsdHlwZXNjcmlwdDoiXjUuMC4wIn19LG51bGwsMil9fSwibnBtZXh0cmEuanNvbiI6e2ZpbGU6e2NvbnRlbnRzOkpTT04uc3RyaW5naWZ5KHtkZWVzRWRpdG9yV29ya3NwYWNlOntvbkluaXQ6InBucG0gaW5zdGFsbCJ9fSxudWxsLDIpfX0sInRzY29uZmlnLmpzb24iOntmaWxlOntjb250ZW50czpKU09OLnN0cmluZ2lmeSh7Y29tcGlsZXJPcHRpb25zOnt0YXJnZXQ6IkVTMjAyMiIsbW9kdWxlOiJOb2RlTmV4dCIsbW9kdWxlUmVzb2x1dGlvbjoiTm9kZU5leHQiLHN0cmljdDohMCxvdXREaXI6Ii4vZGlzdCIscm9vdERpcjoiLi9zcmMiLGRlY2xhcmF0aW9uOiEwfSxpbmNsdWRlOlsic3JjLyoqLyoiXX0sbnVsbCwyKX19LHNyYzp7ZGlyZWN0b3J5OnsiaW5kZXgudHMiOntmaWxlOntjb250ZW50czpgLy8gTWFpbiBlbnRyeSBwb2ludAppbXBvcnQgeyBncmVldCwgZm9ybWF0TmFtZSB9IGZyb20gJy4vdXRpbHMuanMnOwoKY29uc3QgbmFtZSA9IGZvcm1hdE5hbWUoJ1dvcmxkJyk7CmNvbnNvbGUubG9nKGdyZWV0KG5hbWUpKTsKCi8vIEV4YW1wbGUgYXN5bmMgZnVuY3Rpb24KYXN5bmMgZnVuY3Rpb24gbWFpbigpIHsKICBjb25zdCByZXN1bHQgPSBhd2FpdCBQcm9taXNlLnJlc29sdmUoJ0hlbGxvIGZyb20gYXN5bmMhJyk7CiAgY29uc29sZS5sb2cocmVzdWx0KTsKfQoKbWFpbigpOwpgfX0sInV0aWxzLnRzIjp7ZmlsZTp7Y29udGVudHM6YC8vIFV0aWxpdHkgZnVuY3Rpb25zCgpleHBvcnQgaW50ZXJmYWNlIElVc2VyIHsKICBmaXJzdE5hbWU6IHN0cmluZzsKICBsYXN0TmFtZTogc3RyaW5nOwp9CgpleHBvcnQgZnVuY3Rpb24gZ3JlZXQobmFtZTogc3RyaW5nKTogc3RyaW5nIHsKICByZXR1cm4gXGBIZWxsbywgXCR7bmFtZX0hXGA7Cn0KCmV4cG9ydCBmdW5jdGlvbiBmb3JtYXROYW1lKG5hbWU6IHN0cmluZyk6IHN0cmluZyB7CiAgcmV0dXJuIG5hbWUudHJpbSgpLnRvVXBwZXJDYXNlKCk7Cn0KCmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVVc2VyKGZpcnN0TmFtZTogc3RyaW5nLCBsYXN0TmFtZTogc3RyaW5nKTogSVVzZXIgewogIHJldHVybiB7IGZpcnN0TmFtZSwgbGFzdE5hbWUgfTsKfQpgfX0sImltcG9ydHRlc3QudHMiOntmaWxlOntjb250ZW50czpgLy8gVGVzdCBucG0gcGFja2FnZSBpbXBvcnRzCmltcG9ydCAqIGFzIHNtYXJ0cHJvbWlzZSBmcm9tICdAcHVzaC5yb2Nrcy9zbWFydHByb21pc2UnOwoKLy8gVGhpcyBzaG91bGQgaGF2ZSBJbnRlbGxpU2Vuc2Ugc2hvd2luZyBkZWZlcigpIG1ldGhvZApjb25zdCBkZWZlcnJlZCA9IHNtYXJ0cHJvbWlzZS5kZWZlcjxzdHJpbmc+KCk7CgovLyBUZXN0IHVzaW5nIHRoZSBkZWZlcnJlZCBwcm9taXNlCmFzeW5jIGZ1bmN0aW9uIHRlc3RTbWFydFByb21pc2UoKSB7CiAgc2V0VGltZW91dCgoKSA9PiB7CiAgICBkZWZlcnJlZC5yZXNvbHZlKCdIZWxsbyBmcm9tIHNtYXJ0cHJvbWlzZSEnKTsKICB9LCAxMDApOwoKICBjb25zdCByZXN1bHQgPSBhd2FpdCBkZWZlcnJlZC5wcm9taXNlOwogIGNvbnNvbGUubG9nKHJlc3VsdCk7Cn0KCnRlc3RTbWFydFByb21pc2UoKTsKYH19fX19O2F3YWl0IGllLm1vdW50KGN0KX0pKCksVGU9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7VGUuc3R5bGUuY3NzVGV4dD0icG9zaXRpb246IGFic29sdXRlOyB0b3A6IDA7IGxlZnQ6IDA7IGhlaWdodDogMTAwJTsgd2lkdGg6IDEwMCU7IG92ZXJmbG93OiBoaWRkZW47IjtsZXQgbHQ9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGVlcy13b3Jrc3BhY2UiKTtyZXR1cm4gbHQuZXhlY3V0aW9uRW52aXJvbm1lbnQ9aWUsbHQuaW5pdGlhbGl6YXRpb25Qcm9taXNlPXNlLFRlLmFwcGVuZENoaWxkKGx0KSx3YAogICAgICA8ZGVlcy1kZW1vd3JhcHBlcj4KICAgICAgICAke1RlfQogICAgICA8L2RlZXMtZGVtb3dyYXBwZXI+CiAgICBgfTtzdGF0aWMgZGVtb0dyb3Vwcz1bIldvcmtzcGFjZSJdOyNlPXV0KHRoaXMsbixudWxsKTtnZXQgZXhlY3V0aW9uRW52aXJvbm1lbnQoKXtyZXR1cm4gdGhpcy4jZX1zZXQgZXhlY3V0aW9uRW52aXJvbm1lbnQoaWUpe3RoaXMuI2U9aWV9I3Q9KHV0KHRoaXMsbyksdXQodGhpcyxjLG51bGwpKTtnZXQgaW5pdGlhbGl6YXRpb25Qcm9taXNlKCl7cmV0dXJuIHRoaXMuI3R9c2V0IGluaXRpYWxpemF0aW9uUHJvbWlzZShpZSl7dGhpcy4jdD1pZX0jYT0odXQodGhpcyxoKSx1dCh0aGlzLGYsITApKTtnZXQgc2hvd0ZpbGVUcmVlKCl7cmV0dXJuIHRoaXMuI2F9c2V0IHNob3dGaWxlVHJlZShpZSl7dGhpcy4jYT1pZX0jaT0odXQodGhpcyxnKSx1dCh0aGlzLHYsITApKTtnZXQgc2hvd1Rlcm1pbmFsKCl7cmV0dXJuIHRoaXMuI2l9c2V0IHNob3dUZXJtaW5hbChpZSl7dGhpcy4jaT1pZX0jcj0odXQodGhpcyxtKSx1dCh0aGlzLE0sMjUwKSk7Z2V0IGZpbGVUcmVlV2lkdGgoKXtyZXR1cm4gdGhpcy4jcn1zZXQgZmlsZVRyZWVXaWR0aChpZSl7dGhpcy4jcj1pZX0jcz0odXQodGhpcyxTKSx1dCh0aGlzLF8sMjAwKSk7Z2V0IHRlcm1pbmFsSGVpZ2h0KCl7cmV0dXJuIHRoaXMuI3N9c2V0IHRlcm1pbmFsSGVpZ2h0KGllKXt0aGlzLiNzPWllfSNuPSh1dCh0aGlzLGspLHV0KHRoaXMsTCxbXSkpO2dldCBvcGVuRmlsZXMoKXtyZXR1cm4gdGhpcy4jbn1zZXQgb3BlbkZpbGVzKGllKXt0aGlzLiNuPWllfSNvPSh1dCh0aGlzLEEpLHV0KHRoaXMsQywiIikpO2dldCBhY3RpdmVGaWxlUGF0aCgpe3JldHVybiB0aGlzLiNvfXNldCBhY3RpdmVGaWxlUGF0aChpZSl7dGhpcy4jbz1pZX0jbD0odXQodGhpcyx6KSx1dCh0aGlzLFQsITEpKTtnZXQgaXNUZXJtaW5hbENvbGxhcHNlZCgpe3JldHVybiB0aGlzLiNsfXNldCBpc1Rlcm1pbmFsQ29sbGFwc2VkKGllKXt0aGlzLiNsPWllfSNjPSh1dCh0aGlzLCQpLHV0KHRoaXMsUiwhMSkpO2dldCBpc0ZpbGVUcmVlQ29sbGFwc2VkKCl7cmV0dXJuIHRoaXMuI2N9c2V0IGlzRmlsZVRyZWVDb2xsYXBzZWQoaWUpe3RoaXMuI2M9aWV9I2Q9KHV0KHRoaXMsVSksdXQodGhpcyxqLCEwKSk7Z2V0IGlzSW5pdGlhbGl6aW5nKCl7cmV0dXJuIHRoaXMuI2R9c2V0IGlzSW5pdGlhbGl6aW5nKGllKXt0aGlzLiNkPWllfSNoPSh1dCh0aGlzLG1lKSx1dCh0aGlzLEgsInRlcm1pbmFsIikpO2dldCBhY3RpdmVCb3R0b21QYW5lbCgpe3JldHVybiB0aGlzLiNofXNldCBhY3RpdmVCb3R0b21QYW5lbChpZSl7dGhpcy4jaD1pZX0jcD0odXQodGhpcyxjZSksdXQodGhpcyxXLFtdKSk7Z2V0IGRpYWdub3N0aWNNYXJrZXJzKCl7cmV0dXJuIHRoaXMuI3B9c2V0IGRpYWdub3N0aWNNYXJrZXJzKGllKXt0aGlzLiNwPWllfWVkaXRvckVsZW1lbnQ9KHV0KHRoaXMsRCksbnVsbCk7aW5pdGlhbGl6YXRpb25TdGFydGVkPSExO2ludGVsbGlTZW5zZU1hbmFnZXI9bnVsbDtpbnRlbGxpU2Vuc2VJbml0aWFsaXplZD0hMTtub2RlTW9kdWxlc1dhdGNoZXI9bnVsbDtub2RlTW9kdWxlc0RlYm91bmNlVGltZW91dD1udWxsO2ludGVsbGlTZW5zZURlYm91bmNlVGltZW91dD1udWxsO29wZW5GaWxlV2F0Y2hlcnM9bmV3IE1hcDtmaWxlQ2hhbmdlRGVib3VuY2U9bmV3IE1hcDthY3Rpb25iYXJFbGVtZW50PW51bGw7I3U9dXQodGhpcyxaLCExKTtnZXQgYXV0b1NhdmUoKXtyZXR1cm4gdGhpcy4jdX1zZXQgYXV0b1NhdmUoaWUpe3RoaXMuI3U9aWV9YXV0b1NhdmVJbnRlcnZhbD0odXQodGhpcyxZKSxudWxsKTsjZj11dCh0aGlzLGdlLCIiKTtnZXQgaW5pdENvbW1hbmQoKXtyZXR1cm4gdGhpcy4jZn1zZXQgaW5pdENvbW1hbmQoaWUpe3RoaXMuI2Y9aWV9I209KHV0KHRoaXMsYmUpLHV0KHRoaXMsQixbXSkpO2dldCBpbml0T3V0cHV0KCl7cmV0dXJuIHRoaXMuI219c2V0IGluaXRPdXRwdXQoaWUpe3RoaXMuI209aWV9I2c9KHV0KHRoaXMsUCksdXQodGhpcyxmZSwyNTApKTtnZXQgY3VycmVudEZpbGVUcmVlV2lkdGgoKXtyZXR1cm4gdGhpcy4jZ31zZXQgY3VycmVudEZpbGVUcmVlV2lkdGgoaWUpe3RoaXMuI2c9aWV9I2I9KHV0KHRoaXMsZGUpLHV0KHRoaXMsaGUsMjAwKSk7Z2V0IGN1cnJlbnRUZXJtaW5hbEhlaWdodCgpe3JldHVybiB0aGlzLiNifXNldCBjdXJyZW50VGVybWluYWxIZWlnaHQoaWUpe3RoaXMuI2I9aWV9I3Y9KHV0KHRoaXMsdGUpLHV0KHRoaXMsRmUsITEpKTtnZXQgaXNEcmFnZ2luZ0ZpbGVUcmVlKCl7cmV0dXJuIHRoaXMuI3Z9c2V0IGlzRHJhZ2dpbmdGaWxlVHJlZShpZSl7dGhpcy4jdj1pZX0jeT0odXQodGhpcyxXZSksdXQodGhpcyxlZSwhMSkpO2dldCBpc0RyYWdnaW5nVGVybWluYWwoKXtyZXR1cm4gdGhpcy4jeX1zZXQgaXNEcmFnZ2luZ1Rlcm1pbmFsKGllKXt0aGlzLiN5PWllfSN4PSh1dCh0aGlzLGFlKSx1dCh0aGlzLFBlLCExKSk7Z2V0IHNob3dEaWZmVmlldygpe3JldHVybiB0aGlzLiN4fXNldCBzaG93RGlmZlZpZXcoaWUpe3RoaXMuI3g9aWV9I3c9KHV0KHRoaXMsVmUpLHV0KHRoaXMsb3QsbnVsbCkpO2dldCBkaWZmVmlld0NvbmZpZygpe3JldHVybiB0aGlzLiN3fXNldCBkaWZmVmlld0NvbmZpZyhpZSl7dGhpcy4jdz1pZX1rZXlkb3duSGFuZGxlcj0odXQodGhpcyxMdCksaWU9PnsoaWUubWV0YUtleXx8aWUuY3RybEtleSkmJmllLmtleT09PSJzIiYmIWllLnNoaWZ0S2V5JiYoaWUucHJldmVudERlZmF1bHQoKSx0aGlzLnNhdmVBY3RpdmVGaWxlKCkpLChpZS5tZXRhS2V5fHxpZS5jdHJsS2V5KSYmaWUuc2hpZnRLZXkmJmllLmtleS50b0xvd2VyQ2FzZSgpPT09InMiJiYoaWUucHJldmVudERlZmF1bHQoKSx0aGlzLnNhdmVBbGxGaWxlcygpKX0pO2hhbmRsZUZpbGVUcmVlTW91c2VEb3duPWllPT57aWUucHJldmVudERlZmF1bHQoKSx0aGlzLmlzRHJhZ2dpbmdGaWxlVHJlZT0hMCxkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCJtb3VzZW1vdmUiLHRoaXMuaGFuZGxlRmlsZVRyZWVNb3VzZU1vdmUpLGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoIm1vdXNldXAiLHRoaXMuaGFuZGxlRmlsZVRyZWVNb3VzZVVwKX07aGFuZGxlRmlsZVRyZWVNb3VzZU1vdmU9aWU9PntpZighdGhpcy5pc0RyYWdnaW5nRmlsZVRyZWUpcmV0dXJuO2xldCBzZT10aGlzLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLFRlPWllLmNsaWVudFgtc2UubGVmdCxsdD0xNTAsY3Q9c2Uud2lkdGgqLjUsbTE9TWF0aC5tYXgobHQsTWF0aC5taW4oY3QsVGUpKTt0aGlzLmN1cnJlbnRGaWxlVHJlZVdpZHRoPW0xfTtoYW5kbGVGaWxlVHJlZU1vdXNlVXA9KCk9Pnt0aGlzLmlzRHJhZ2dpbmdGaWxlVHJlZT0hMSxkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCJtb3VzZW1vdmUiLHRoaXMuaGFuZGxlRmlsZVRyZWVNb3VzZU1vdmUpLGRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoIm1vdXNldXAiLHRoaXMuaGFuZGxlRmlsZVRyZWVNb3VzZVVwKSx3aW5kb3cuZGlzcGF0Y2hFdmVudChuZXcgRXZlbnQoInJlc2l6ZSIpKX07aGFuZGxlVGVybWluYWxNb3VzZURvd249aWU9PntpZS5wcmV2ZW50RGVmYXVsdCgpLHRoaXMuaXNEcmFnZ2luZ1Rlcm1pbmFsPSEwLGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoIm1vdXNlbW92ZSIsdGhpcy5oYW5kbGVUZXJtaW5hbE1vdXNlTW92ZSksZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigibW91c2V1cCIsdGhpcy5oYW5kbGVUZXJtaW5hbE1vdXNlVXApfTtoYW5kbGVUZXJtaW5hbE1vdXNlTW92ZT1pZT0+e2lmKCF0aGlzLmlzRHJhZ2dpbmdUZXJtaW5hbClyZXR1cm47bGV0IHNlPXRoaXMuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCksVGU9aWUuY2xpZW50WS1zZS50b3AsbHQ9c2UuaGVpZ2h0LVRlLGN0PTEwMCxtMT1zZS5oZWlnaHQqLjcsZWk9TWF0aC5tYXgoY3QsTWF0aC5taW4obTEsbHQpKTt0aGlzLmN1cnJlbnRUZXJtaW5hbEhlaWdodD1laX07aGFuZGxlVGVybWluYWxNb3VzZVVwPSgpPT57dGhpcy5pc0RyYWdnaW5nVGVybWluYWw9ITEsZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcigibW91c2Vtb3ZlIix0aGlzLmhhbmRsZVRlcm1pbmFsTW91c2VNb3ZlKSxkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCJtb3VzZXVwIix0aGlzLmhhbmRsZVRlcm1pbmFsTW91c2VVcCksd2luZG93LmRpc3BhdGNoRXZlbnQobmV3IEV2ZW50KCJyZXNpemUiKSl9O3N0YXRpYyBzdHlsZXM9W0NlLHAuZGVmYXVsdFN0eWxlcyxRYAogICAgICA6aG9zdCB7CiAgICAgICAgZGlzcGxheTogYmxvY2s7CiAgICAgICAgcG9zaXRpb246IGFic29sdXRlOwogICAgICAgIHRvcDogMDsKICAgICAgICBsZWZ0OiAwOwogICAgICAgIHJpZ2h0OiAwOwogICAgICAgIGJvdHRvbTogMDsKICAgICAgICBiYWNrZ3JvdW5kOiAke3AuYmRUaGVtZSgiaHNsKDAgMCUgOTYlKSIsImhzbCgwIDAlIDclKSIpfTsKICAgICAgICBmb250LWZhbWlseTogLWFwcGxlLXN5c3RlbSwgQmxpbmtNYWNTeXN0ZW1Gb250LCAnU2Vnb2UgVUknLCBSb2JvdG8sIHNhbnMtc2VyaWY7CiAgICAgIH0KCiAgICAgIC53b3Jrc3BhY2Utb3V0ZXIgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgICBoZWlnaHQ6IDEwMCU7CiAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgIH0KCiAgICAgIC53b3Jrc3BhY2UtY29udGFpbmVyIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7CiAgICAgICAgZmxleDogMTsKICAgICAgICBtaW4taGVpZ2h0OiAwOwogICAgICAgIHdpZHRoOiAxMDAlOwogICAgICB9CgogICAgICAuZWRpdG9yLWFyZWEgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgICBmbGV4OiAxOwogICAgICAgIG1pbi13aWR0aDogMDsKICAgICAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgICB9CgogICAgICAuZmlsZXRyZWUtcGFuZWwgewogICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgICAgIGZsZXgtc2hyaW5rOiAwOwogICAgICB9CgogICAgICAuZmlsZXRyZWUtcGFuZWwuY29sbGFwc2VkIHsKICAgICAgICB3aWR0aDogMCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAuZWRpdG9yLXBhbmVsIHsKICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICAgIG92ZXJmbG93OiBoaWRkZW47CiAgICAgICAgYmFja2dyb3VuZDogJHtwLmJkVGhlbWUoImhzbCgwIDAlIDEwMCUpIiwiaHNsKDAgMCUgOSUpIil9OwogICAgICAgIGZsZXg6IDE7CiAgICAgICAgbWluLXdpZHRoOiAyMDBweDsKICAgICAgfQoKICAgICAgLnRlcm1pbmFsLXBhbmVsIHsKICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICR7cC5iZFRoZW1lKCJoc2woMCAwJSA4NSUpIiwiaHNsKDAgMCUgMTUlKSIpfTsKICAgICAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgICAgIGZsZXgtc2hyaW5rOiAwOwogICAgICB9CgogICAgICAudGVybWluYWwtcGFuZWwuY29sbGFwc2VkIHsKICAgICAgICBoZWlnaHQ6IDMycHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLnBhbmVsLWhlYWRlciB7CiAgICAgICAgaGVpZ2h0OiAzMnB4OwogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47CiAgICAgICAgcGFkZGluZzogMCA4cHg7CiAgICAgICAgYmFja2dyb3VuZDogJHtwLmJkVGhlbWUoImhzbCgwIDAlIDk1JSkiLCJoc2woMCAwJSA4JSkiKX07CiAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICR7cC5iZFRoZW1lKCJoc2woMCAwJSA4NSUpIiwiaHNsKDAgMCUgMTUlKSIpfTsKICAgICAgICBmb250LXNpemU6IDEycHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDsKICAgICAgICBjb2xvcjogJHtwLmJkVGhlbWUoImhzbCgwIDAlIDQwJSkiLCJoc2woMCAwJSA2MCUpIil9OwogICAgICB9CgogICAgICAucGFuZWwtaGVhZGVyLXRpdGxlIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgZ2FwOiA2cHg7CiAgICAgIH0KCiAgICAgIC5wYW5lbC1oZWFkZXItYWN0aW9ucyB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGdhcDogNHB4OwogICAgICB9CgogICAgICAucGFuZWwtYWN0aW9uIHsKICAgICAgICB3aWR0aDogMjRweDsKICAgICAgICBoZWlnaHQ6IDI0cHg7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOwogICAgICAgIGJvcmRlci1yYWRpdXM6IDRweDsKICAgICAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICAgICAgY29sb3I6ICR7cC5iZFRoZW1lKCJoc2woMCAwJSA1MCUpIiwiaHNsKDAgMCUgNjAlKSIpfTsKICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC4xNXMgZWFzZTsKICAgICAgfQoKICAgICAgLnBhbmVsLWFjdGlvbjpob3ZlciB7CiAgICAgICAgYmFja2dyb3VuZDogJHtwLmJkVGhlbWUoImhzbCgwIDAlIDg4JSkiLCJoc2woMCAwJSAxOCUpIil9OwogICAgICAgIGNvbG9yOiAke3AuYmRUaGVtZSgiaHNsKDAgMCUgMzAlKSIsImhzbCgwIDAlIDgwJSkiKX07CiAgICAgIH0KCiAgICAgIC50YWJzLWJhciB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogc3RyZXRjaDsKICAgICAgICBoZWlnaHQ6IDM2cHg7CiAgICAgICAgYmFja2dyb3VuZDogJHtwLmJkVGhlbWUoImhzbCgwIDAlIDk2JSkiLCJoc2woMCAwJSA4JSkiKX07CiAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICR7cC5iZFRoZW1lKCJoc2woMCAwJSA4NSUpIiwiaHNsKDAgMCUgMTUlKSIpfTsKICAgICAgICBvdmVyZmxvdy14OiBhdXRvOwogICAgICB9CgogICAgICAudGFiIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgZ2FwOiA2cHg7CiAgICAgICAgcGFkZGluZzogMCAxMnB4OwogICAgICAgIG1pbi13aWR0aDogMTIwcHg7CiAgICAgICAgbWF4LXdpZHRoOiAyMDBweDsKICAgICAgICBib3JkZXItcmlnaHQ6IDFweCBzb2xpZCAke3AuYmRUaGVtZSgiaHNsKDAgMCUgODglKSIsImhzbCgwIDAlIDEyJSkiKX07CiAgICAgICAgY3Vyc29yOiBwb2ludGVyOwogICAgICAgIGZvbnQtc2l6ZTogMTJweDsKICAgICAgICBjb2xvcjogJHtwLmJkVGhlbWUoImhzbCgwIDAlIDUwJSkiLCJoc2woMCAwJSA2MCUpIil9OwogICAgICAgIGJhY2tncm91bmQ6ICR7cC5iZFRoZW1lKCJoc2woMCAwJSA5NCUpIiwiaHNsKDAgMCUgMTAlKSIpfTsKICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC4xNXMgZWFzZTsKICAgICAgfQoKICAgICAgLnRhYjpob3ZlciB7CiAgICAgICAgYmFja2dyb3VuZDogJHtwLmJkVGhlbWUoImhzbCgwIDAlIDkyJSkiLCJoc2woMCAwJSAxMiUpIil9OwogICAgICB9CgogICAgICAudGFiLmFjdGl2ZSB7CiAgICAgICAgYmFja2dyb3VuZDogJHtwLmJkVGhlbWUoImhzbCgwIDAlIDEwMCUpIiwiaHNsKDAgMCUgOSUpIil9OwogICAgICAgIGNvbG9yOiAke3AuYmRUaGVtZSgiaHNsKDAgMCUgMjAlKSIsImhzbCgwIDAlIDkwJSkiKX07CiAgICAgICAgYm9yZGVyLWJvdHRvbTogMnB4IHNvbGlkICR7cC5iZFRoZW1lKCJoc2woMjEwIDEwMCUgNTAlKSIsImhzbCgyMTAgMTAwJSA2MCUpIil9OwogICAgICB9CgogICAgICAudGFiLW5hbWUgewogICAgICAgIGZsZXg6IDE7CiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpczsKICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwOwogICAgICB9CgogICAgICAudGFiLWNsb3NlIHsKICAgICAgICB3aWR0aDogMTZweDsKICAgICAgICBoZWlnaHQ6IDE2cHg7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOwogICAgICAgIGJvcmRlci1yYWRpdXM6IDRweDsKICAgICAgICBvcGFjaXR5OiAwOwogICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjE1cyBlYXNlOwogICAgICB9CgogICAgICAudGFiOmhvdmVyIC50YWItY2xvc2UgewogICAgICAgIG9wYWNpdHk6IDE7CiAgICAgIH0KCiAgICAgIC50YWItY2xvc2U6aG92ZXIgewogICAgICAgIGJhY2tncm91bmQ6ICR7cC5iZFRoZW1lKCJoc2woMCAwJSA4NSUpIiwiaHNsKDAgMCUgMjUlKSIpfTsKICAgICAgfQoKICAgICAgLnRhYi1tb2RpZmllZCB7CiAgICAgICAgd2lkdGg6IDhweDsKICAgICAgICBoZWlnaHQ6IDhweDsKICAgICAgICBib3JkZXItcmFkaXVzOiA1MCU7CiAgICAgICAgYmFja2dyb3VuZDogJHtwLmJkVGhlbWUoImhzbCgwIDAlIDUwJSkiLCJoc2woMCAwJSA2MCUpIil9OwogICAgICB9CgogICAgICAudGFicy1jb250YWluZXIgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgZmxleDogMTsKICAgICAgICBvdmVyZmxvdy14OiBhdXRvOwogICAgICB9CgogICAgICAuZWRpdG9yLW1lbnUtYnV0dG9uIHsKICAgICAgICBwYWRkaW5nOiA2cHggOHB4OwogICAgICAgIG1hcmdpbi1yaWdodDogNHB4OwogICAgICAgIG1hcmdpbi1sZWZ0OiBhdXRvOwogICAgICAgIGJvcmRlci1yYWRpdXM6IDRweDsKICAgICAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICAgICAgb3BhY2l0eTogMC42OwogICAgICAgIHRyYW5zaXRpb246IG9wYWNpdHkgMC4xNXMsIGJhY2tncm91bmQgMC4xNXM7CiAgICAgICAgZmxleC1zaHJpbms6IDA7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOwogICAgICB9CgogICAgICAuZWRpdG9yLW1lbnUtYnV0dG9uOmhvdmVyIHsKICAgICAgICBvcGFjaXR5OiAxOwogICAgICAgIGJhY2tncm91bmQ6ICR7cC5iZFRoZW1lKCJoc2woMCAwJSAwJSAvIDAuMDgpIiwiaHNsKDAgMCUgMTAwJSAvIDAuMSkiKX07CiAgICAgIH0KCiAgICAgIC5lZGl0b3ItY29udGVudCB7CiAgICAgICAgZmxleDogMTsKICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgIH0KCiAgICAgIC50ZXJtaW5hbC1jb250ZW50IHsKICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgICAgdG9wOiAzMnB4OwogICAgICAgIGxlZnQ6IDA7CiAgICAgICAgcmlnaHQ6IDA7CiAgICAgICAgYm90dG9tOiAwOwogICAgICB9CgogICAgICAucHJvYmxlbXMtY29udGVudCB7CiAgICAgICAgcG9zaXRpb246IGFic29sdXRlOwogICAgICAgIHRvcDogMzJweDsKICAgICAgICBsZWZ0OiAwOwogICAgICAgIHJpZ2h0OiAwOwogICAgICAgIGJvdHRvbTogMDsKICAgICAgICBvdmVyZmxvdy15OiBhdXRvOwogICAgICAgIGJhY2tncm91bmQ6ICR7cC5iZFRoZW1lKCJoc2woMCAwJSAxMDAlKSIsImhzbCgwIDAlIDklKSIpfTsKICAgICAgfQoKICAgICAgLnBhbmVsLXRhYnMgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBnYXA6IDA7CiAgICAgIH0KCiAgICAgIC5wYW5lbC10YWIgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBnYXA6IDZweDsKICAgICAgICBwYWRkaW5nOiAwIDEycHg7CiAgICAgICAgaGVpZ2h0OiAzMnB4OwogICAgICAgIGN1cnNvcjogcG9pbnRlcjsKICAgICAgICBmb250LXNpemU6IDEycHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDsKICAgICAgICBjb2xvcjogJHtwLmJkVGhlbWUoImhzbCgwIDAlIDUwJSkiLCJoc2woMCAwJSA1NSUpIil9OwogICAgICAgIGJvcmRlci1ib3R0b206IDJweCBzb2xpZCB0cmFuc3BhcmVudDsKICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC4xNXMgZWFzZTsKICAgICAgfQoKICAgICAgLnBhbmVsLXRhYjpob3ZlciB7CiAgICAgICAgY29sb3I6ICR7cC5iZFRoZW1lKCJoc2woMCAwJSAzMCUpIiwiaHNsKDAgMCUgNzUlKSIpfTsKICAgICAgICBiYWNrZ3JvdW5kOiAke3AuYmRUaGVtZSgiaHNsKDAgMCUgOTAlKSIsImhzbCgwIDAlIDEyJSkiKX07CiAgICAgIH0KCiAgICAgIC5wYW5lbC10YWIuYWN0aXZlIHsKICAgICAgICBjb2xvcjogJHtwLmJkVGhlbWUoImhzbCgwIDAlIDIwJSkiLCJoc2woMCAwJSA5MCUpIil9OwogICAgICAgIGJvcmRlci1ib3R0b20tY29sb3I6ICR7cC5iZFRoZW1lKCJoc2woMjEwIDEwMCUgNTAlKSIsImhzbCgyMTAgMTAwJSA2MCUpIil9OwogICAgICB9CgogICAgICAucGFuZWwtdGFiLWJhZGdlIHsKICAgICAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOwogICAgICAgIG1pbi13aWR0aDogMThweDsKICAgICAgICBoZWlnaHQ6IDE4cHg7CiAgICAgICAgcGFkZGluZzogMCA1cHg7CiAgICAgICAgYm9yZGVyLXJhZGl1czogOXB4OwogICAgICAgIGZvbnQtc2l6ZTogMTFweDsKICAgICAgICBmb250LXdlaWdodDogNjAwOwogICAgICAgIGJhY2tncm91bmQ6ICR7cC5iZFRoZW1lKCJoc2woMCA3MCUgNTAlKSIsImhzbCgwIDcwJSA0NSUpIil9OwogICAgICAgIGNvbG9yOiB3aGl0ZTsKICAgICAgfQoKICAgICAgLnBhbmVsLXRhYi1iYWRnZS53YXJuaW5nIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke3AuYmRUaGVtZSgiaHNsKDQwIDcwJSA1MCUpIiwiaHNsKDQwIDcwJSA0NSUpIil9OwogICAgICB9CgogICAgICAucGFuZWwtdGFiLWJhZGdlLm5vbmUgewogICAgICAgIGRpc3BsYXk6IG5vbmU7CiAgICAgIH0KCiAgICAgIC5wcm9ibGVtcy1saXN0IHsKICAgICAgICBwYWRkaW5nOiA0cHggMDsKICAgICAgfQoKICAgICAgLnByb2JsZW0taXRlbSB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogZmxleC1zdGFydDsKICAgICAgICBnYXA6IDhweDsKICAgICAgICBwYWRkaW5nOiA2cHggMTJweDsKICAgICAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICAgICAgZm9udC1zaXplOiAxMnB4OwogICAgICAgIGxpbmUtaGVpZ2h0OiAxLjQ7CiAgICAgICAgY29sb3I6ICR7cC5iZFRoZW1lKCJoc2woMCAwJSAzMCUpIiwiaHNsKDAgMCUgODAlKSIpfTsKICAgICAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kIDAuMXMgZWFzZTsKICAgICAgfQoKICAgICAgLnByb2JsZW0taXRlbTpob3ZlciB7CiAgICAgICAgYmFja2dyb3VuZDogJHtwLmJkVGhlbWUoImhzbCgwIDAlIDk1JSkiLCJoc2woMCAwJSAxNSUpIil9OwogICAgICB9CgogICAgICAucHJvYmxlbS1pY29uIHsKICAgICAgICBmbGV4LXNocmluazogMDsKICAgICAgICBtYXJnaW4tdG9wOiAycHg7CiAgICAgIH0KCiAgICAgIC5wcm9ibGVtLWljb24uZXJyb3IgewogICAgICAgIGNvbG9yOiAke3AuYmRUaGVtZSgiaHNsKDAgNzAlIDUwJSkiLCJoc2woMCA3MCUgNjAlKSIpfTsKICAgICAgfQoKICAgICAgLnByb2JsZW0taWNvbi53YXJuaW5nIHsKICAgICAgICBjb2xvcjogJHtwLmJkVGhlbWUoImhzbCg0MCA3MCUgNTAlKSIsImhzbCg0MCA3MCUgNjAlKSIpfTsKICAgICAgfQoKICAgICAgLnByb2JsZW0tZGV0YWlscyB7CiAgICAgICAgZmxleDogMTsKICAgICAgICBtaW4td2lkdGg6IDA7CiAgICAgIH0KCiAgICAgIC5wcm9ibGVtLW1lc3NhZ2UgewogICAgICAgIHdvcmQtYnJlYWs6IGJyZWFrLXdvcmQ7CiAgICAgIH0KCiAgICAgIC5wcm9ibGVtLWxvY2F0aW9uIHsKICAgICAgICBtYXJnaW4tdG9wOiAycHg7CiAgICAgICAgZm9udC1zaXplOiAxMXB4OwogICAgICAgIGNvbG9yOiAke3AuYmRUaGVtZSgiaHNsKDAgMCUgNTAlKSIsImhzbCgwIDAlIDU1JSkiKX07CiAgICAgIH0KCiAgICAgIC5wcm9ibGVtcy1lbXB0eSB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7CiAgICAgICAgaGVpZ2h0OiAxMDAlOwogICAgICAgIGNvbG9yOiAke3AuYmRUaGVtZSgiaHNsKDAgMCUgNTUlKSIsImhzbCgwIDAlIDUwJSkiKX07CiAgICAgICAgZm9udC1zaXplOiAxM3B4OwogICAgICAgIGdhcDogOHB4OwogICAgICB9CgogICAgICAuZW1wdHktc3RhdGUgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOwogICAgICAgIGhlaWdodDogMTAwJTsKICAgICAgICBjb2xvcjogJHtwLmJkVGhlbWUoImhzbCgwIDAlIDUwJSkiLCJoc2woMCAwJSA1MCUpIil9OwogICAgICAgIGZvbnQtc2l6ZTogMTRweDsKICAgICAgICBnYXA6IDhweDsKICAgICAgfQoKICAgICAgLmVtcHR5LXN0YXRlIGRlZXMtaWNvbiB7CiAgICAgICAgd2lkdGg6IDQ4cHg7CiAgICAgICAgaGVpZ2h0OiA0OHB4OwogICAgICAgIG9wYWNpdHk6IDAuNTsKICAgICAgfQoKICAgICAgQGtleWZyYW1lcyBzcGluIHsKICAgICAgICBmcm9tIHsgdHJhbnNmb3JtOiByb3RhdGUoMGRlZyk7IH0KICAgICAgICB0byB7IHRyYW5zZm9ybTogcm90YXRlKDM2MGRlZyk7IH0KICAgICAgfQoKICAgICAgLmluaXRpYWxpemluZyB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7CiAgICAgICAgaGVpZ2h0OiAxMDAlOwogICAgICAgIGNvbG9yOiAke3AuYmRUaGVtZSgiaHNsKDAgMCUgNTAlKSIsImhzbCgwIDAlIDYwJSkiKX07CiAgICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgICAgIGdhcDogMTJweDsKICAgICAgfQoKICAgICAgLmluaXRpYWxpemluZyBkZWVzLWljb24gewogICAgICAgIGFuaW1hdGlvbjogc3BpbiAxcyBsaW5lYXIgaW5maW5pdGU7CiAgICAgIH0KCiAgICAgIC5pbml0aWFsaXppbmcgZGVlcy13b3Jrc3BhY2UtdGVybWluYWwtcHJldmlldyB7CiAgICAgICAgbWFyZ2luLXRvcDogMjRweDsKICAgICAgICB3aWR0aDogODAlOwogICAgICAgIG1heC13aWR0aDogNjAwcHg7CiAgICAgICAgaGVpZ2h0OiAyMDBweDsKICAgICAgfQoKICAgICAgZGVlcy13b3Jrc3BhY2UtZmlsZXRyZWUgewogICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgICB0b3A6IDA7CiAgICAgICAgbGVmdDogMDsKICAgICAgICByaWdodDogMDsKICAgICAgICBib3R0b206IDA7CiAgICAgIH0KCiAgICAgIGRlZXMtd29ya3NwYWNlLW1vbmFjbyB7CiAgICAgICAgcG9zaXRpb246IGFic29sdXRlOwogICAgICAgIHRvcDogMDsKICAgICAgICBsZWZ0OiAwOwogICAgICAgIHJpZ2h0OiAwOwogICAgICAgIGJvdHRvbTogMDsKICAgICAgfQoKICAgICAgZGVlcy13b3Jrc3BhY2UtdGVybWluYWwgewogICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgICB0b3A6IDA7CiAgICAgICAgbGVmdDogMDsKICAgICAgICByaWdodDogMDsKICAgICAgICBib3R0b206IDA7CiAgICAgIH0KCiAgICAgIC8qIFJlc2l6ZSBoYW5kbGVzICovCiAgICAgIC5yZXNpemUtaGFuZGxlLXZlcnRpY2FsIHsKICAgICAgICB3aWR0aDogNnB4OwogICAgICAgIGN1cnNvcjogY29sLXJlc2l6ZTsKICAgICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDsKICAgICAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kIDAuMTVzIGVhc2U7CiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICAgIGZsZXgtc2hyaW5rOiAwOwogICAgICAgIHotaW5kZXg6IDEwOwogICAgICB9CgogICAgICAucmVzaXplLWhhbmRsZS12ZXJ0aWNhbDpob3ZlciwKICAgICAgLnJlc2l6ZS1oYW5kbGUtdmVydGljYWwuZHJhZ2dpbmcgewogICAgICAgIGJhY2tncm91bmQ6ICR7cC5iZFRoZW1lKCIjM2I4MmY2IiwiIzU4YTZmZiIpfTsKICAgICAgfQoKICAgICAgLnJlc2l6ZS1oYW5kbGUtdmVydGljYWw6OmFmdGVyIHsKICAgICAgICBjb250ZW50OiAnJzsKICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgICAgdG9wOiA1MCU7CiAgICAgICAgbGVmdDogNTAlOwogICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUsIC01MCUpOwogICAgICAgIHdpZHRoOiAycHg7CiAgICAgICAgaGVpZ2h0OiAzMnB4OwogICAgICAgIGJhY2tncm91bmQ6ICR7cC5iZFRoZW1lKCIjOWNhM2FmIiwiIzZlNzY4MSIpfTsKICAgICAgICBib3JkZXItcmFkaXVzOiAxcHg7CiAgICAgICAgb3BhY2l0eTogMDsKICAgICAgICB0cmFuc2l0aW9uOiBvcGFjaXR5IDAuMTVzIGVhc2U7CiAgICAgIH0KCiAgICAgIC5yZXNpemUtaGFuZGxlLXZlcnRpY2FsOmhvdmVyOjphZnRlciwKICAgICAgLnJlc2l6ZS1oYW5kbGUtdmVydGljYWwuZHJhZ2dpbmc6OmFmdGVyIHsKICAgICAgICBvcGFjaXR5OiAxOwogICAgICAgIGJhY2tncm91bmQ6ICR7cC5iZFRoZW1lKCIjZmZmZmZmIiwiI2ZmZmZmZiIpfTsKICAgICAgfQoKICAgICAgLnJlc2l6ZS1oYW5kbGUtaG9yaXpvbnRhbCB7CiAgICAgICAgaGVpZ2h0OiA2cHg7CiAgICAgICAgY3Vyc29yOiByb3ctcmVzaXplOwogICAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50OwogICAgICAgIHRyYW5zaXRpb246IGJhY2tncm91bmQgMC4xNXMgZWFzZTsKICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgICAgZmxleC1zaHJpbms6IDA7CiAgICAgICAgei1pbmRleDogMTA7CiAgICAgIH0KCiAgICAgIC5yZXNpemUtaGFuZGxlLWhvcml6b250YWw6aG92ZXIsCiAgICAgIC5yZXNpemUtaGFuZGxlLWhvcml6b250YWwuZHJhZ2dpbmcgewogICAgICAgIGJhY2tncm91bmQ6ICR7cC5iZFRoZW1lKCIjM2I4MmY2IiwiIzU4YTZmZiIpfTsKICAgICAgfQoKICAgICAgLnJlc2l6ZS1oYW5kbGUtaG9yaXpvbnRhbDo6YWZ0ZXIgewogICAgICAgIGNvbnRlbnQ6ICcnOwogICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgICB0b3A6IDUwJTsKICAgICAgICBsZWZ0OiA1MCU7CiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSwgLTUwJSk7CiAgICAgICAgd2lkdGg6IDMycHg7CiAgICAgICAgaGVpZ2h0OiAycHg7CiAgICAgICAgYmFja2dyb3VuZDogJHtwLmJkVGhlbWUoIiM5Y2EzYWYiLCIjNmU3NjgxIil9OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDFweDsKICAgICAgICBvcGFjaXR5OiAwOwogICAgICAgIHRyYW5zaXRpb246IG9wYWNpdHkgMC4xNXMgZWFzZTsKICAgICAgfQoKICAgICAgLnJlc2l6ZS1oYW5kbGUtaG9yaXpvbnRhbDpob3Zlcjo6YWZ0ZXIsCiAgICAgIC5yZXNpemUtaGFuZGxlLWhvcml6b250YWwuZHJhZ2dpbmc6OmFmdGVyIHsKICAgICAgICBvcGFjaXR5OiAxOwogICAgICAgIGJhY2tncm91bmQ6ICR7cC5iZFRoZW1lKCIjZmZmZmZmIiwiI2ZmZmZmZiIpfTsKICAgICAgfQoKICAgICAgLyogUHJldmVudCB0ZXh0IHNlbGVjdGlvbiB3aGlsZSBkcmFnZ2luZyAqLwogICAgICAud29ya3NwYWNlLWNvbnRhaW5lci5kcmFnZ2luZyB7CiAgICAgICAgdXNlci1zZWxlY3Q6IG5vbmU7CiAgICAgIH0KCiAgICAgIC53b3Jrc3BhY2UtY29udGFpbmVyLmRyYWdnaW5nIC5maWxldHJlZS1wYW5lbCwKICAgICAgLndvcmtzcGFjZS1jb250YWluZXIuZHJhZ2dpbmcgLmVkaXRvci1wYW5lbCwKICAgICAgLndvcmtzcGFjZS1jb250YWluZXIuZHJhZ2dpbmcgLnRlcm1pbmFsLXBhbmVsIHsKICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTsKICAgICAgfQoKICAgIGBdO3JlbmRlcigpe2xldCBpZT1bIndvcmtzcGFjZS1jb250YWluZXIiLHRoaXMuaXNEcmFnZ2luZ0ZpbGVUcmVlfHx0aGlzLmlzRHJhZ2dpbmdUZXJtaW5hbD8iZHJhZ2dpbmciOiIiXS5maWx0ZXIoQm9vbGVhbikuam9pbigiICIpO3JldHVybiB0aGlzLmlzSW5pdGlhbGl6aW5nP3dgCiAgICAgICAgPGRpdiBjbGFzcz0iaW5pdGlhbGl6aW5nIj4KICAgICAgICAgIDxkZWVzLWljb24gLmljb249JHsibHVjaWRlOmxvYWRlcjIifSBpY29uU2l6ZT0iMzIiPjwvZGVlcy1pY29uPgogICAgICAgICAgPHNwYW4+SW5pdGlhbGl6aW5nIHdvcmtzcGFjZS4uLjwvc3Bhbj4KICAgICAgICAgIDxkZWVzLXdvcmtzcGFjZS10ZXJtaW5hbC1wcmV2aWV3CiAgICAgICAgICAgIC5jb21tYW5kPSR7dGhpcy5pbml0Q29tbWFuZHx8IiJ9CiAgICAgICAgICAgIC5saW5lcz0ke3RoaXMuaW5pdE91dHB1dH0KICAgICAgICAgID48L2RlZXMtd29ya3NwYWNlLXRlcm1pbmFsLXByZXZpZXc+CiAgICAgICAgPC9kaXY+CiAgICAgIGA6d2AKICAgICAgPGRpdiBjbGFzcz0id29ya3NwYWNlLW91dGVyIj4KICAgICAgICA8ZGl2IGNsYXNzPSIke2llfSI+CiAgICAgICAgICA8IS0tIEZpbGV0cmVlIHBhbmVsIChmdWxsIGhlaWdodCkgLS0+CiAgICAgICAgICAke3RoaXMuc2hvd0ZpbGVUcmVlP3dgCiAgICAgICAgICAgIDxkaXYKICAgICAgICAgICAgICBjbGFzcz0iZmlsZXRyZWUtcGFuZWwgJHt0aGlzLmlzRmlsZVRyZWVDb2xsYXBzZWQ/ImNvbGxhcHNlZCI6IiJ9IgogICAgICAgICAgICAgIHN0eWxlPSJ3aWR0aDogJHt0aGlzLmlzRmlsZVRyZWVDb2xsYXBzZWQ/MDp0aGlzLmN1cnJlbnRGaWxlVHJlZVdpZHRofXB4IgogICAgICAgICAgICA+CiAgICAgICAgICAgICAgPGRlZXMtd29ya3NwYWNlLWZpbGV0cmVlCiAgICAgICAgICAgICAgICAuZXhlY3V0aW9uRW52aXJvbm1lbnQ9JHt0aGlzLmV4ZWN1dGlvbkVudmlyb25tZW50fQogICAgICAgICAgICAgICAgLnNlbGVjdGVkUGF0aD0ke3RoaXMuYWN0aXZlRmlsZVBhdGh9CiAgICAgICAgICAgICAgICBAZmlsZS1zZWxlY3Q9JHt0aGlzLmhhbmRsZUZpbGVTZWxlY3R9CiAgICAgICAgICAgICAgPjwvZGVlcy13b3Jrc3BhY2UtZmlsZXRyZWU+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAke3RoaXMuaXNGaWxlVHJlZUNvbGxhcHNlZD8iIjp3YAogICAgICAgICAgICAgIDxkaXYKICAgICAgICAgICAgICAgIGNsYXNzPSJyZXNpemUtaGFuZGxlLXZlcnRpY2FsICR7dGhpcy5pc0RyYWdnaW5nRmlsZVRyZWU/ImRyYWdnaW5nIjoiIn0iCiAgICAgICAgICAgICAgICBAbW91c2Vkb3duPSR7dGhpcy5oYW5kbGVGaWxlVHJlZU1vdXNlRG93bn0KICAgICAgICAgICAgICA+PC9kaXY+CiAgICAgICAgICAgIGB9CiAgICAgICAgICBgOiIifQoKICAgICAgICAgIDwhLS0gRWRpdG9yICsgVGVybWluYWwgYXJlYSAtLT4KICAgICAgICAgIDxkaXYgY2xhc3M9ImVkaXRvci1hcmVhIj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0iZWRpdG9yLXBhbmVsIj4KICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJ0YWJzLWJhciI+CiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJ0YWJzLWNvbnRhaW5lciI+CiAgICAgICAgICAgICAgICAgICR7dGhpcy5vcGVuRmlsZXMubWFwKHNlPT53YAogICAgICAgICAgICAgICAgICAgIDxkaXYKICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPSJ0YWIgJHtzZS5wYXRoPT09dGhpcy5hY3RpdmVGaWxlUGF0aD8iYWN0aXZlIjoiIn0iCiAgICAgICAgICAgICAgICAgICAgICBAY2xpY2s9JHsoKT0+dGhpcy5hY3RpdmF0ZUZpbGUoc2UucGF0aCl9CiAgICAgICAgICAgICAgICAgICAgPgogICAgICAgICAgICAgICAgICAgICAgJHtzZS5tb2RpZmllZD93YDxzcGFuIGNsYXNzPSJ0YWItbW9kaWZpZWQiPjwvc3Bhbj5gOiIifQogICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9InRhYi1uYW1lIj4ke3NlLm5hbWV9PC9zcGFuPgogICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9InRhYi1jbG9zZSIgQGNsaWNrPSR7VGU9PnRoaXMuY2xvc2VGaWxlKFRlLHNlLnBhdGgpfT4KICAgICAgICAgICAgICAgICAgICAgICAgPGRlZXMtaWNvbiAuaWNvbj0keyJsdWNpZGU6eCJ9IGljb25TaXplPSIxMiI+PC9kZWVzLWljb24+CiAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+CiAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgIGApfQogICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJlZGl0b3ItbWVudS1idXR0b24iIEBjbGljaz0ke3RoaXMuc2hvd0VkaXRvck1lbnV9IHRpdGxlPSJFZGl0b3Igb3B0aW9ucyI+CiAgICAgICAgICAgICAgICAgIDxkZWVzLWljb24gLmljb249JHsibHVjaWRlOm1vcmVWZXJ0aWNhbCJ9IGljb25TaXplPSIxNiI+PC9kZWVzLWljb24+CiAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJlZGl0b3ItY29udGVudCI+CiAgICAgICAgICAgICAgICAke3RoaXMuc2hvd0RpZmZWaWV3JiZ0aGlzLmRpZmZWaWV3Q29uZmlnP3dgCiAgICAgICAgICAgICAgICAgIDxkZWVzLXdvcmtzcGFjZS1kaWZmLWVkaXRvcgogICAgICAgICAgICAgICAgICAgIC5maWxlUGF0aD0ke3RoaXMuZGlmZlZpZXdDb25maWcuZmlsZVBhdGh9CiAgICAgICAgICAgICAgICAgICAgLm9yaWdpbmFsQ29udGVudD0ke3RoaXMuZGlmZlZpZXdDb25maWcub3JpZ2luYWxDb250ZW50fQogICAgICAgICAgICAgICAgICAgIC5tb2RpZmllZENvbnRlbnQ9JHt0aGlzLmRpZmZWaWV3Q29uZmlnLm1vZGlmaWVkQ29udGVudH0KICAgICAgICAgICAgICAgICAgICAubGFuZ3VhZ2U9JHt0aGlzLmRpZmZWaWV3Q29uZmlnLmxhbmd1YWdlfQogICAgICAgICAgICAgICAgICAgIEBkaWZmLXJlc29sdmVkPSR7dGhpcy5oYW5kbGVEaWZmUmVzb2x2ZWR9CiAgICAgICAgICAgICAgICAgICAgQGRpZmYtY2xvc2VkPSR7KCk9Pnt0aGlzLnNob3dEaWZmVmlldz0hMSx0aGlzLmRpZmZWaWV3Q29uZmlnPW51bGx9fQogICAgICAgICAgICAgICAgICA+PC9kZWVzLXdvcmtzcGFjZS1kaWZmLWVkaXRvcj4KICAgICAgICAgICAgICAgIGA6dGhpcy5vcGVuRmlsZXMubGVuZ3RoPT09MD93YAogICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJlbXB0eS1zdGF0ZSI+CiAgICAgICAgICAgICAgICAgICAgPGRlZXMtaWNvbiAuaWNvbj0keyJsdWNpZGU6ZmlsZUNvZGUifSBpY29uU2l6ZT0iNDgiPjwvZGVlcy1pY29uPgogICAgICAgICAgICAgICAgICAgIDxzcGFuPlNlbGVjdCBhIGZpbGUgdG8gZWRpdDwvc3Bhbj4KICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICBgOndgCiAgICAgICAgICAgICAgICAgIDxkZWVzLXdvcmtzcGFjZS1tb25hY28KICAgICAgICAgICAgICAgICAgICAuZmlsZVBhdGg9JHt0aGlzLmFjdGl2ZUZpbGVQYXRofQogICAgICAgICAgICAgICAgICAgIC5jb250ZW50PSR7dGhpcy5nZXRBY3RpdmVGaWxlQ29udGVudCgpfQogICAgICAgICAgICAgICAgICAgIC5sYW5ndWFnZT0ke3RoaXMuZ2V0TGFuZ3VhZ2VGcm9tUGF0aCh0aGlzLmFjdGl2ZUZpbGVQYXRoKX0KICAgICAgICAgICAgICAgICAgICBAY29udGVudC1jaGFuZ2U9JHt0aGlzLmhhbmRsZUNvbnRlbnRDaGFuZ2V9CiAgICAgICAgICAgICAgICAgID48L2RlZXMtd29ya3NwYWNlLW1vbmFjbz4KICAgICAgICAgICAgICAgIGB9CiAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgPGRlZXMtYWN0aW9uYmFyPjwvZGVlcy1hY3Rpb25iYXI+CiAgICAgICAgICAgIDwvZGl2PgoKICAgICAgICAgICAgPCEtLSBIb3Jpem9udGFsIHJlc2l6ZSBoYW5kbGUgZm9yIHRlcm1pbmFsIC0tPgogICAgICAgICAgICAke3RoaXMuc2hvd1Rlcm1pbmFsJiYhdGhpcy5pc1Rlcm1pbmFsQ29sbGFwc2VkP3dgCiAgICAgICAgICAgICAgPGRpdgogICAgICAgICAgICAgICAgY2xhc3M9InJlc2l6ZS1oYW5kbGUtaG9yaXpvbnRhbCAke3RoaXMuaXNEcmFnZ2luZ1Rlcm1pbmFsPyJkcmFnZ2luZyI6IiJ9IgogICAgICAgICAgICAgICAgQG1vdXNlZG93bj0ke3RoaXMuaGFuZGxlVGVybWluYWxNb3VzZURvd259CiAgICAgICAgICAgICAgPjwvZGl2PgogICAgICAgICAgICBgOiIifQoKICAgICAgICAgICAgPCEtLSBUZXJtaW5hbCBwYW5lbCAtLT4KICAgICAgICAgICAgJHt0aGlzLnNob3dUZXJtaW5hbD93YAogICAgICAgICAgICAgIDxkaXYKICAgICAgICAgICAgICAgIGNsYXNzPSJ0ZXJtaW5hbC1wYW5lbCAke3RoaXMuaXNUZXJtaW5hbENvbGxhcHNlZD8iY29sbGFwc2VkIjoiIn0iCiAgICAgICAgICAgICAgICBzdHlsZT0iaGVpZ2h0OiAke3RoaXMuaXNUZXJtaW5hbENvbGxhcHNlZD8zMjp0aGlzLmN1cnJlbnRUZXJtaW5hbEhlaWdodH1weCIKICAgICAgICAgICAgICA+CiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJwYW5lbC1oZWFkZXIiPgogICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJwYW5lbC10YWJzIj4KICAgICAgICAgICAgICAgICAgICA8ZGl2CiAgICAgICAgICAgICAgICAgICAgICBjbGFzcz0icGFuZWwtdGFiICR7dGhpcy5hY3RpdmVCb3R0b21QYW5lbD09PSJ0ZXJtaW5hbCI/ImFjdGl2ZSI6IiJ9IgogICAgICAgICAgICAgICAgICAgICAgQGNsaWNrPSR7KCk9PnRoaXMuYWN0aXZlQm90dG9tUGFuZWw9InRlcm1pbmFsIn0KICAgICAgICAgICAgICAgICAgICA+CiAgICAgICAgICAgICAgICAgICAgICA8ZGVlcy1pY29uIC5pY29uPSR7Imx1Y2lkZTp0ZXJtaW5hbCJ9IGljb25TaXplPSIxNCI+PC9kZWVzLWljb24+CiAgICAgICAgICAgICAgICAgICAgICBUZXJtaW5hbAogICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgIDxkaXYKICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPSJwYW5lbC10YWIgJHt0aGlzLmFjdGl2ZUJvdHRvbVBhbmVsPT09InByb2JsZW1zIj8iYWN0aXZlIjoiIn0iCiAgICAgICAgICAgICAgICAgICAgICBAY2xpY2s9JHsoKT0+dGhpcy5hY3RpdmVCb3R0b21QYW5lbD0icHJvYmxlbXMifQogICAgICAgICAgICAgICAgICAgID4KICAgICAgICAgICAgICAgICAgICAgIDxkZWVzLWljb24gLmljb249JHsibHVjaWRlOmNpcmNsZUFsZXJ0In0gaWNvblNpemU9IjE0Ij48L2RlZXMtaWNvbj4KICAgICAgICAgICAgICAgICAgICAgIFByb2JsZW1zCiAgICAgICAgICAgICAgICAgICAgICAke3RoaXMuZGlhZ25vc3RpY01hcmtlcnMubGVuZ3RoPjA/d2AKICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9InBhbmVsLXRhYi1iYWRnZSAke3RoaXMuZ2V0RXJyb3JDb3VudCgpPT09MD8id2FybmluZyI6IiJ9Ij4ke3RoaXMuZGlhZ25vc3RpY01hcmtlcnMubGVuZ3RofTwvc3Bhbj4KICAgICAgICAgICAgICAgICAgICAgIGA6IiJ9CiAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJwYW5lbC1oZWFkZXItYWN0aW9ucyI+CiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0icGFuZWwtYWN0aW9uIiBAY2xpY2s9JHt0aGlzLnRvZ2dsZVRlcm1pbmFsfT4KICAgICAgICAgICAgICAgICAgICAgIDxkZWVzLWljb24KICAgICAgICAgICAgICAgICAgICAgICAgLmljb249JHt0aGlzLmlzVGVybWluYWxDb2xsYXBzZWQ/Imx1Y2lkZTpjaGV2cm9uVXAiOiJsdWNpZGU6Y2hldnJvbkRvd24ifQogICAgICAgICAgICAgICAgICAgICAgICBpY29uU2l6ZT0iMTQiCiAgICAgICAgICAgICAgICAgICAgICA+PC9kZWVzLWljb24+CiAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJ0ZXJtaW5hbC1jb250ZW50IiBzdHlsZT0iZGlzcGxheTogJHt0aGlzLmFjdGl2ZUJvdHRvbVBhbmVsPT09InRlcm1pbmFsIj8iYmxvY2siOiJub25lIn0iPgogICAgICAgICAgICAgICAgICA8ZGVlcy13b3Jrc3BhY2UtdGVybWluYWwKICAgICAgICAgICAgICAgICAgICAuZXhlY3V0aW9uRW52aXJvbm1lbnQ9JHt0aGlzLmV4ZWN1dGlvbkVudmlyb25tZW50fQogICAgICAgICAgICAgICAgICAgIC5zZXR1cENvbW1hbmQ9JHsiIn0KICAgICAgICAgICAgICAgICAgPjwvZGVlcy13b3Jrc3BhY2UtdGVybWluYWw+CiAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InByb2JsZW1zLWNvbnRlbnQiIHN0eWxlPSJkaXNwbGF5OiAke3RoaXMuYWN0aXZlQm90dG9tUGFuZWw9PT0icHJvYmxlbXMiPyJibG9jayI6Im5vbmUifSI+CiAgICAgICAgICAgICAgICAgICR7dGhpcy5yZW5kZXJQcm9ibGVtc1BhbmVsKCl9CiAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgYDoiIn0KICAgICAgICAgIDwvZGl2PgogICAgICAgIDwvZGl2PgoKICAgICAgICA8IS0tIEJvdHRvbSBCYXIgKGZ1bGwgd2lkdGgpIC0tPgogICAgICAgIDxkZWVzLXdvcmtzcGFjZS1ib3R0b21iYXIKICAgICAgICAgIC5leGVjdXRpb25FbnZpcm9ubWVudD0ke3RoaXMuZXhlY3V0aW9uRW52aXJvbm1lbnR9CiAgICAgICAgICBAcnVuLXByb2Nlc3M9JHt0aGlzLmhhbmRsZVJ1blByb2Nlc3N9CiAgICAgICAgPjwvZGVlcy13b3Jrc3BhY2UtYm90dG9tYmFyPgogICAgICA8L2Rpdj4KICAgIGB9YXN5bmMgY29ubmVjdGVkQ2FsbGJhY2soKXthd2FpdCBzdXBlci5jb25uZWN0ZWRDYWxsYmFjaygpLGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoImtleWRvd24iLHRoaXMua2V5ZG93bkhhbmRsZXIpfWFzeW5jIGRpc2Nvbm5lY3RlZENhbGxiYWNrKCl7YXdhaXQgc3VwZXIuZGlzY29ubmVjdGVkQ2FsbGJhY2soKSxkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCJrZXlkb3duIix0aGlzLmtleWRvd25IYW5kbGVyKSxkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCJtb3VzZW1vdmUiLHRoaXMuaGFuZGxlRmlsZVRyZWVNb3VzZU1vdmUpLGRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoIm1vdXNldXAiLHRoaXMuaGFuZGxlRmlsZVRyZWVNb3VzZVVwKSxkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCJtb3VzZW1vdmUiLHRoaXMuaGFuZGxlVGVybWluYWxNb3VzZU1vdmUpLGRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoIm1vdXNldXAiLHRoaXMuaGFuZGxlVGVybWluYWxNb3VzZVVwKSx0aGlzLmF1dG9TYXZlSW50ZXJ2YWwmJihjbGVhckludGVydmFsKHRoaXMuYXV0b1NhdmVJbnRlcnZhbCksdGhpcy5hdXRvU2F2ZUludGVydmFsPW51bGwpLHRoaXMuc3RvcE5vZGVNb2R1bGVzV2F0Y2hlcigpLHRoaXMuc3RvcEFsbEZpbGVXYXRjaGVycygpfWFzeW5jIGZpcnN0VXBkYXRlZCgpe3RoaXMuY3VycmVudEZpbGVUcmVlV2lkdGg9dGhpcy5maWxlVHJlZVdpZHRoLHRoaXMuY3VycmVudFRlcm1pbmFsSGVpZ2h0PXRoaXMudGVybWluYWxIZWlnaHQsdGhpcy5leGVjdXRpb25FbnZpcm9ubWVudCYmYXdhaXQgdGhpcy5pbml0aWFsaXplV29ya3NwYWNlKCl9YXN5bmMgdXBkYXRlZChpZSl7aWUuaGFzKCJleGVjdXRpb25FbnZpcm9ubWVudCIpJiZ0aGlzLmV4ZWN1dGlvbkVudmlyb25tZW50JiZhd2FpdCB0aGlzLmluaXRpYWxpemVXb3Jrc3BhY2UoKSx0aGlzLmFjdGlvbmJhckVsZW1lbnR8fCh0aGlzLmFjdGlvbmJhckVsZW1lbnQ9dGhpcy5zaGFkb3dSb290Py5xdWVyeVNlbGVjdG9yKCIuZWRpdG9yLXBhbmVsIGRlZXMtYWN0aW9uYmFyIikpfWFzeW5jIGluaXRpYWxpemVXb3Jrc3BhY2UoKXtpZih0aGlzLmV4ZWN1dGlvbkVudmlyb25tZW50JiYhdGhpcy5pbml0aWFsaXphdGlvblN0YXJ0ZWQpe3RoaXMuaW5pdGlhbGl6YXRpb25TdGFydGVkPSEwLHRoaXMuaXNJbml0aWFsaXppbmc9ITA7dHJ5e3RoaXMuaW5pdGlhbGl6YXRpb25Qcm9taXNlP2F3YWl0IHRoaXMuaW5pdGlhbGl6YXRpb25Qcm9taXNlOnRoaXMuZXhlY3V0aW9uRW52aXJvbm1lbnQucmVhZHl8fGF3YWl0IHRoaXMuZXhlY3V0aW9uRW52aXJvbm1lbnQuaW5pdCgpLGF3YWl0IHRoaXMuZXhlY3V0ZU9uSW5pdENvbW1hbmQoKX1jYXRjaChpZSl7Y29uc29sZS5lcnJvcigiRmFpbGVkIHRvIGluaXRpYWxpemUgd29ya3NwYWNlOiIsaWUpLHRoaXMuaW5pdGlhbGl6YXRpb25TdGFydGVkPSExfWZpbmFsbHl7dGhpcy5pc0luaXRpYWxpemluZz0hMX19fWFzeW5jIGV4ZWN1dGVPbkluaXRDb21tYW5kKCl7aWYodGhpcy5leGVjdXRpb25FbnZpcm9ubWVudCl0cnl7aWYoYXdhaXQgdGhpcy5leGVjdXRpb25FbnZpcm9ubWVudC5leGlzdHMoIi9ucG1leHRyYS5qc29uIikpe2xldCBpZT1hd2FpdCB0aGlzLmV4ZWN1dGlvbkVudmlyb25tZW50LnJlYWRGaWxlKCIvbnBtZXh0cmEuanNvbiIpLFRlPUpTT04ucGFyc2UoaWUpPy5kZWVzRWRpdG9yV29ya3NwYWNlPy5vbkluaXQ7aWYoVGUmJnR5cGVvZiBUZT09InN0cmluZyIpe2NvbnNvbGUubG9nKCJFeGVjdXRpbmcgb25Jbml0IGNvbW1hbmQ6IixUZSksdGhpcy5pbml0Q29tbWFuZD1UZSx0aGlzLmluaXRPdXRwdXQ9W107bGV0W2x0LC4uLmN0XT1UZS5zcGxpdCgiICIpLG0xPWF3YWl0IHRoaXMuZXhlY3V0aW9uRW52aXJvbm1lbnQuc3Bhd24obHQsY3QpO20xLm91dHB1dC5waXBlVG8obmV3IFdyaXRhYmxlU3RyZWFtKHt3cml0ZTpRcj0+e2xldCBKcj1Rci5zcGxpdChgCmApO2ZvcihsZXQgSWUgb2YgSnIpSWUmJih0aGlzLmluaXRPdXRwdXQ9Wy4uLnRoaXMuaW5pdE91dHB1dCxJZV0pfX0pKTtsZXQgZWk9YXdhaXQgbTEuZXhpdDtjb25zb2xlLmxvZygib25Jbml0IGNvbW1hbmQgY29tcGxldGVkIHdpdGggZXhpdCBjb2RlOiIsZWkpLHRoaXMuaW5pdE91dHB1dD1bLi4udGhpcy5pbml0T3V0cHV0LCIiLGBDb21tYW5kIGNvbXBsZXRlZCB3aXRoIGV4aXQgY29kZTogJHtlaX1gXX19fWNhdGNoKGllKXtjb25zb2xlLndhcm4oIkZhaWxlZCB0byBleGVjdXRlIG9uSW5pdCBjb21tYW5kOiIsaWUpfX1hc3luYyBpbml0aWFsaXplSW50ZWxsaVNlbnNlKCl7aWYoIXRoaXMuZXhlY3V0aW9uRW52aXJvbm1lbnR8fHRoaXMuaW50ZWxsaVNlbnNlSW5pdGlhbGl6ZWQpcmV0dXJuO2xldCBpZT13aW5kb3cubW9uYWNvO2lmKGllfHwoYXdhaXQgbmV3IFByb21pc2Uoc2U9PnNldFRpbWVvdXQoc2UsMTAwKSksaWU9d2luZG93Lm1vbmFjbyksIWllKXtjb25zb2xlLndhcm4oIk1vbmFjbyBub3QgeWV0IGxvYWRlZCwgSW50ZWxsaVNlbnNlIHdpbGwgYmUgaW5pdGlhbGl6ZWQgbGF0ZXIiKTtyZXR1cm59dGhpcy5pbnRlbGxpU2Vuc2VJbml0aWFsaXplZD0hMCx0aGlzLmludGVsbGlTZW5zZU1hbmFnZXI9bmV3IHNkLGF3YWl0IHRoaXMuaW50ZWxsaVNlbnNlTWFuYWdlci5pbml0KGllLHRoaXMuZXhlY3V0aW9uRW52aXJvbm1lbnQpLHRoaXMuc2V0dXBNYXJrZXJMaXN0ZW5lcigpLHRoaXMuc3RhcnROb2RlTW9kdWxlc1dhdGNoZXIoKSxhd2FpdCB0aGlzLmludGVsbGlTZW5zZU1hbmFnZXIuc2NhbkFuZExvYWROZXdQYWNrYWdlVHlwZXMoKX1zdGFydE5vZGVNb2R1bGVzV2F0Y2hlcigpe2lmKCEoIXRoaXMuZXhlY3V0aW9uRW52aXJvbm1lbnR8fHRoaXMubm9kZU1vZHVsZXNXYXRjaGVyKSl0cnl7dGhpcy5ub2RlTW9kdWxlc1dhdGNoZXI9dGhpcy5leGVjdXRpb25FbnZpcm9ubWVudC53YXRjaCgiL25vZGVfbW9kdWxlcyIsKGllLHNlKT0+e3RoaXMubm9kZU1vZHVsZXNEZWJvdW5jZVRpbWVvdXQmJmNsZWFyVGltZW91dCh0aGlzLm5vZGVNb2R1bGVzRGVib3VuY2VUaW1lb3V0KSx0aGlzLm5vZGVNb2R1bGVzRGVib3VuY2VUaW1lb3V0PXNldFRpbWVvdXQoYXN5bmMoKT0+e3RoaXMuaW50ZWxsaVNlbnNlTWFuYWdlciYmYXdhaXQgdGhpcy5pbnRlbGxpU2Vuc2VNYW5hZ2VyLnNjYW5BbmRMb2FkTmV3UGFja2FnZVR5cGVzKCl9LDJlMyl9LHtyZWN1cnNpdmU6ITB9KX1jYXRjaChpZSl7Y29uc29sZS53YXJuKCJDb3VsZCBub3Qgd2F0Y2ggbm9kZV9tb2R1bGVzOiIsaWUpfX1zdG9wTm9kZU1vZHVsZXNXYXRjaGVyKCl7dGhpcy5ub2RlTW9kdWxlc1dhdGNoZXImJih0aGlzLm5vZGVNb2R1bGVzV2F0Y2hlci5zdG9wKCksdGhpcy5ub2RlTW9kdWxlc1dhdGNoZXI9bnVsbCksdGhpcy5ub2RlTW9kdWxlc0RlYm91bmNlVGltZW91dCYmKGNsZWFyVGltZW91dCh0aGlzLm5vZGVNb2R1bGVzRGVib3VuY2VUaW1lb3V0KSx0aGlzLm5vZGVNb2R1bGVzRGVib3VuY2VUaW1lb3V0PW51bGwpfXN0YXJ0V2F0Y2hpbmdGaWxlKGllKXtpZighKCF0aGlzLmV4ZWN1dGlvbkVudmlyb25tZW50fHx0aGlzLm9wZW5GaWxlV2F0Y2hlcnMuaGFzKGllKSkpdHJ5e2xldCBzZT10aGlzLmV4ZWN1dGlvbkVudmlyb25tZW50LndhdGNoKGllLChUZSxsdCk9PntsZXQgY3Q9dGhpcy5maWxlQ2hhbmdlRGVib3VuY2UuZ2V0KGllKTtjdCYmY2xlYXJUaW1lb3V0KGN0KTtsZXQgbTE9c2V0VGltZW91dCgoKT0+e3RoaXMuaGFuZGxlRXh0ZXJuYWxGaWxlQ2hhbmdlKGllKSx0aGlzLmZpbGVDaGFuZ2VEZWJvdW5jZS5kZWxldGUoaWUpfSwzMDApO3RoaXMuZmlsZUNoYW5nZURlYm91bmNlLnNldChpZSxtMSl9KTt0aGlzLm9wZW5GaWxlV2F0Y2hlcnMuc2V0KGllLHNlKX1jYXRjaChzZSl7Y29uc29sZS53YXJuKGBDb3VsZCBub3Qgd2F0Y2ggZmlsZSAke2llfTpgLHNlKX19c3RvcFdhdGNoaW5nRmlsZShpZSl7bGV0IHNlPXRoaXMub3BlbkZpbGVXYXRjaGVycy5nZXQoaWUpO3NlJiYoc2Uuc3RvcCgpLHRoaXMub3BlbkZpbGVXYXRjaGVycy5kZWxldGUoaWUpKTtsZXQgVGU9dGhpcy5maWxlQ2hhbmdlRGVib3VuY2UuZ2V0KGllKTtUZSYmKGNsZWFyVGltZW91dChUZSksdGhpcy5maWxlQ2hhbmdlRGVib3VuY2UuZGVsZXRlKGllKSl9c3RvcEFsbEZpbGVXYXRjaGVycygpe2ZvcihsZXQgaWUgb2YgdGhpcy5vcGVuRmlsZVdhdGNoZXJzLnZhbHVlcygpKWllLnN0b3AoKTt0aGlzLm9wZW5GaWxlV2F0Y2hlcnMuY2xlYXIoKTtmb3IobGV0IGllIG9mIHRoaXMuZmlsZUNoYW5nZURlYm91bmNlLnZhbHVlcygpKWNsZWFyVGltZW91dChpZSk7dGhpcy5maWxlQ2hhbmdlRGVib3VuY2UuY2xlYXIoKX1hc3luYyBoYW5kbGVFeHRlcm5hbEZpbGVDaGFuZ2UoaWUpe2xldCBzZT10aGlzLm9wZW5GaWxlcy5maW5kKFRlPT5UZS5wYXRoPT09aWUpO2lmKCEoIXNlfHwhdGhpcy5leGVjdXRpb25FbnZpcm9ubWVudCkpdHJ5e2xldCBUZT1hd2FpdCB0aGlzLmV4ZWN1dGlvbkVudmlyb25tZW50LnJlYWRGaWxlKGllKTtpZihUZT09PXNlLmNvbnRlbnQpcmV0dXJuO2lmKHNlLm1vZGlmaWVkKXtsZXQgbHQ9YXdhaXQgdGhpcy5hY3Rpb25iYXJFbGVtZW50Py5zaG93KHttZXNzYWdlOmAiJHtzZS5uYW1lfSIgY2hhbmdlZCBvbiBkaXNrLiBXaGF0IGRvIHlvdSB3YW50IHRvIGRvP2AsdHlwZToicXVlc3Rpb24iLGljb246Imx1Y2lkZTpnaXRNZXJnZSIsYWN0aW9uczpbe2lkOiJsb2FkLWRpc2siLGxhYmVsOiJMb2FkIGZyb20gRGlzayIscHJpbWFyeTohMH0se2lkOiJzYXZlLWxvY2FsIixsYWJlbDoiU2F2ZSBMb2NhbCB0byBEaXNrIn0se2lkOiJjb21wYXJlIixsYWJlbDoiQ29tcGFyZSJ9XSx0aW1lb3V0OntkdXJhdGlvbjoxNWUzLGRlZmF1bHRBY3Rpb25JZDoibG9hZC1kaXNrIn0sZGlzbWlzc2libGU6ITB9KTtsdD8uYWN0aW9uSWQ9PT0ibG9hZC1kaXNrIj9hd2FpdCB0aGlzLnVwZGF0ZUZpbGVDb250ZW50KGllLFRlLCExKTpsdD8uYWN0aW9uSWQ9PT0ic2F2ZS1sb2NhbCI/KGF3YWl0IHRoaXMuZXhlY3V0aW9uRW52aXJvbm1lbnQud3JpdGVGaWxlKGllLHNlLmNvbnRlbnQpLHRoaXMub3BlbkZpbGVzPXRoaXMub3BlbkZpbGVzLm1hcChjdD0+Y3QucGF0aD09PWllP3suLi5jdCxtb2RpZmllZDohMX06Y3QpKTpsdD8uYWN0aW9uSWQ9PT0iY29tcGFyZSImJnRoaXMub3BlbkRpZmZWaWV3KGllLHNlLmNvbnRlbnQsVGUpfWVsc2UgYXdhaXQgdGhpcy51cGRhdGVGaWxlQ29udGVudChpZSxUZSwhMCl9Y2F0Y2goVGUpe2NvbnNvbGUud2FybihgRmFpbGVkIHRvIGhhbmRsZSBleHRlcm5hbCBjaGFuZ2UgZm9yICR7aWV9OmAsVGUpfX1hc3luYyB1cGRhdGVGaWxlQ29udGVudChpZSxzZSxUZSl7aWYodGhpcy5vcGVuRmlsZXM9dGhpcy5vcGVuRmlsZXMubWFwKGx0PT5sdC5wYXRoPT09aWU/ey4uLmx0LGNvbnRlbnQ6c2UsbW9kaWZpZWQ6ITF9Omx0KSxpZT09PXRoaXMuYWN0aXZlRmlsZVBhdGgpe2xldCBsdD10aGlzLnNoYWRvd1Jvb3Q/LnF1ZXJ5U2VsZWN0b3IoImRlZXMtd29ya3NwYWNlLW1vbmFjbyIpO2x0JiZhd2FpdCBsdC5zZXRDb250ZW50RXh0ZXJuYWwoc2UsVGUpfX1vcGVuRGlmZlZpZXcoaWUsc2UsVGUpe3RoaXMuZGlmZlZpZXdDb25maWc9e2ZpbGVQYXRoOmllLG9yaWdpbmFsQ29udGVudDpUZSxtb2RpZmllZENvbnRlbnQ6c2UsbGFuZ3VhZ2U6dGhpcy5nZXRMYW5ndWFnZUZyb21QYXRoKGllKX0sdGhpcy5zaG93RGlmZlZpZXc9ITB9YXN5bmMgaGFuZGxlRGlmZlJlc29sdmVkKGllKXtsZXR7YWN0aW9uOnNlLGNvbnRlbnQ6VGV9PWllLmRldGFpbCxsdD10aGlzLmRpZmZWaWV3Q29uZmlnPy5maWxlUGF0aDtpZighbHR8fCF0aGlzLmV4ZWN1dGlvbkVudmlyb25tZW50KXt0aGlzLnNob3dEaWZmVmlldz0hMSx0aGlzLmRpZmZWaWV3Q29uZmlnPW51bGw7cmV0dXJufWlmKHNlPT09InVzZS1sb2NhbCIpe2lmKGF3YWl0IHRoaXMuZXhlY3V0aW9uRW52aXJvbm1lbnQud3JpdGVGaWxlKGx0LFRlKSx0aGlzLm9wZW5GaWxlcz10aGlzLm9wZW5GaWxlcy5tYXAoY3Q9PmN0LnBhdGg9PT1sdD97Li4uY3QsY29udGVudDpUZSxtb2RpZmllZDohMX06Y3QpLGx0PT09dGhpcy5hY3RpdmVGaWxlUGF0aCl7bGV0IGN0PXRoaXMuc2hhZG93Um9vdD8ucXVlcnlTZWxlY3RvcigiZGVlcy13b3Jrc3BhY2UtbW9uYWNvIik7Y3QmJmF3YWl0IGN0LnNldENvbnRlbnRFeHRlcm5hbChUZSwhMSl9fWVsc2Ugc2U9PT0idXNlLWRpc2siJiZhd2FpdCB0aGlzLnVwZGF0ZUZpbGVDb250ZW50KGx0LFRlLCExKTt0aGlzLnNob3dEaWZmVmlldz0hMSx0aGlzLmRpZmZWaWV3Q29uZmlnPW51bGx9YXN5bmMgaGFuZGxlRmlsZVNlbGVjdChpZSl7bGV0e3BhdGg6c2UsbmFtZTpUZX09aWUuZGV0YWlsO2F3YWl0IHRoaXMub3BlbkZpbGUoc2UsVGUpfWFzeW5jIG9wZW5GaWxlKGllLHNlKXtpZih0aGlzLm9wZW5GaWxlcy5maW5kKGx0PT5sdC5wYXRoPT09aWUpKXt0aGlzLmFjdGl2ZUZpbGVQYXRoPWllO3JldHVybn1pZih0aGlzLmV4ZWN1dGlvbkVudmlyb25tZW50KXRyeXtsZXQgbHQ9YXdhaXQgdGhpcy5leGVjdXRpb25FbnZpcm9ubWVudC5yZWFkRmlsZShpZSk7aWYodGhpcy5vcGVuRmlsZXM9Wy4uLnRoaXMub3BlbkZpbGVzLHtwYXRoOmllLG5hbWU6c2UsY29udGVudDpsdCxtb2RpZmllZDohMX1dLHRoaXMuYWN0aXZlRmlsZVBhdGg9aWUsdGhpcy5zdGFydFdhdGNoaW5nRmlsZShpZSksIXRoaXMuaW50ZWxsaVNlbnNlSW5pdGlhbGl6ZWQpe2F3YWl0IHRoaXMudXBkYXRlQ29tcGxldGUsYXdhaXQgbmV3IFByb21pc2UobTE9PnNldFRpbWVvdXQobTEsNTAwKSksYXdhaXQgdGhpcy5pbml0aWFsaXplSW50ZWxsaVNlbnNlKCk7bGV0IGN0PXRoaXMuZ2V0TGFuZ3VhZ2VGcm9tUGF0aChpZSk7dGhpcy5pbnRlbGxpU2Vuc2VNYW5hZ2VyJiYoY3Q9PT0idHlwZXNjcmlwdCJ8fGN0PT09ImphdmFzY3JpcHQiKSYmYXdhaXQgdGhpcy5pbnRlbGxpU2Vuc2VNYW5hZ2VyLnByb2Nlc3NDb250ZW50Q2hhbmdlKGx0KX19Y2F0Y2gobHQpe2NvbnNvbGUuZXJyb3IoYEZhaWxlZCB0byBvcGVuIGZpbGUgJHtpZX06YCxsdCl9fWFjdGl2YXRlRmlsZShpZSl7dGhpcy5hY3RpdmVGaWxlUGF0aD1pZX1jbG9zZUZpbGUoaWUsc2Upe2llLnN0b3BQcm9wYWdhdGlvbigpO2xldCBUZT10aGlzLm9wZW5GaWxlcy5maW5kSW5kZXgoY3Q9PmN0LnBhdGg9PT1zZSk7aWYoVGU9PT0tMSlyZXR1cm47bGV0IGx0PXRoaXMub3BlbkZpbGVzW1RlXTtpZighKGx0Lm1vZGlmaWVkJiYhY29uZmlybShgJHtsdC5uYW1lfSBoYXMgdW5zYXZlZCBjaGFuZ2VzLiBDbG9zZSBhbnl3YXk/YCkpJiYodGhpcy5zdG9wV2F0Y2hpbmdGaWxlKHNlKSx0aGlzLm9wZW5GaWxlcz10aGlzLm9wZW5GaWxlcy5maWx0ZXIoY3Q9PmN0LnBhdGghPT1zZSksdGhpcy5hY3RpdmVGaWxlUGF0aD09PXNlKSlpZih0aGlzLm9wZW5GaWxlcy5sZW5ndGg+MCl7bGV0IGN0PU1hdGgubWluKFRlLHRoaXMub3BlbkZpbGVzLmxlbmd0aC0xKTt0aGlzLmFjdGl2ZUZpbGVQYXRoPXRoaXMub3BlbkZpbGVzW2N0XS5wYXRofWVsc2UgdGhpcy5hY3RpdmVGaWxlUGF0aD0iIn1nZXRBY3RpdmVGaWxlQ29udGVudCgpe3JldHVybiB0aGlzLm9wZW5GaWxlcy5maW5kKHNlPT5zZS5wYXRoPT09dGhpcy5hY3RpdmVGaWxlUGF0aCk/LmNvbnRlbnR8fCIifWhhbmRsZUNvbnRlbnRDaGFuZ2UoaWUpe2xldCBzZT1pZS5kZXRhaWwsVGU9dGhpcy5vcGVuRmlsZXMuZmluZEluZGV4KGN0PT5jdC5wYXRoPT09dGhpcy5hY3RpdmVGaWxlUGF0aCk7aWYoVGU9PT0tMSlyZXR1cm47bGV0IGx0PXRoaXMub3BlbkZpbGVzW1RlXTtpZihsdC5jb250ZW50IT09c2Upe3RoaXMub3BlbkZpbGVzPVsuLi50aGlzLm9wZW5GaWxlcy5zbGljZSgwLFRlKSx7Li4ubHQsY29udGVudDpzZSxtb2RpZmllZDohMH0sLi4udGhpcy5vcGVuRmlsZXMuc2xpY2UoVGUrMSldO2xldCBjdD10aGlzLmdldExhbmd1YWdlRnJvbVBhdGgodGhpcy5hY3RpdmVGaWxlUGF0aCk7dGhpcy5pbnRlbGxpU2Vuc2VNYW5hZ2VyJiYoY3Q9PT0idHlwZXNjcmlwdCJ8fGN0PT09ImphdmFzY3JpcHQiKSYmKHRoaXMuaW50ZWxsaVNlbnNlRGVib3VuY2VUaW1lb3V0JiZjbGVhclRpbWVvdXQodGhpcy5pbnRlbGxpU2Vuc2VEZWJvdW5jZVRpbWVvdXQpLHRoaXMuaW50ZWxsaVNlbnNlRGVib3VuY2VUaW1lb3V0PXNldFRpbWVvdXQoKCk9Pnt0aGlzLmludGVsbGlTZW5zZU1hbmFnZXI/LnByb2Nlc3NDb250ZW50Q2hhbmdlKHNlKX0sNTAwKSl9fWdldExhbmd1YWdlRnJvbVBhdGgoaWUpe2xldCBzZT1pZS5zcGxpdCgiLiIpLnBvcCgpPy50b0xvd2VyQ2FzZSgpO3JldHVybnt0czoidHlwZXNjcmlwdCIsdHN4OiJ0eXBlc2NyaXB0IixqczoiamF2YXNjcmlwdCIsanN4OiJqYXZhc2NyaXB0Iixqc29uOiJqc29uIixodG1sOiJodG1sIixjc3M6ImNzcyIsc2Nzczoic2NzcyIsbGVzczoibGVzcyIsbWQ6Im1hcmtkb3duIix5YW1sOiJ5YW1sIix5bWw6InlhbWwiLHhtbDoieG1sIixzcWw6InNxbCIscHk6InB5dGhvbiIsc2g6InNoZWxsIixiYXNoOiJzaGVsbCJ9W3NlfHwiIl18fCJwbGFpbnRleHQifXRvZ2dsZVRlcm1pbmFsKCl7dGhpcy5pc1Rlcm1pbmFsQ29sbGFwc2VkPSF0aGlzLmlzVGVybWluYWxDb2xsYXBzZWR9YXN5bmMgc2F2ZUFjdGl2ZUZpbGUoKXtsZXQgaWU9dGhpcy5vcGVuRmlsZXMuZmluZChzZT0+c2UucGF0aD09PXRoaXMuYWN0aXZlRmlsZVBhdGgpO2lmKCEoIWllfHwhdGhpcy5leGVjdXRpb25FbnZpcm9ubWVudCkpdHJ5e2F3YWl0IHRoaXMuZXhlY3V0aW9uRW52aXJvbm1lbnQud3JpdGVGaWxlKGllLnBhdGgsaWUuY29udGVudCksdGhpcy5vcGVuRmlsZXM9dGhpcy5vcGVuRmlsZXMubWFwKHNlPT5zZS5wYXRoPT09aWUucGF0aD97Li4uc2UsbW9kaWZpZWQ6ITF9OnNlKSx0aGlzLmludGVsbGlTZW5zZU1hbmFnZXImJnRoaXMuaW50ZWxsaVNlbnNlTWFuYWdlci5hZGRGaWxlTW9kZWwoaWUucGF0aCxpZS5jb250ZW50KX1jYXRjaChzZSl7Y29uc29sZS5lcnJvcigiRmFpbGVkIHRvIHNhdmUgZmlsZToiLHNlKX19YXN5bmMgc2F2ZUFsbEZpbGVzKCl7aWYodGhpcy5leGVjdXRpb25FbnZpcm9ubWVudCl7Zm9yKGxldCBpZSBvZiB0aGlzLm9wZW5GaWxlcy5maWx0ZXIoc2U9PnNlLm1vZGlmaWVkKSl0cnl7YXdhaXQgdGhpcy5leGVjdXRpb25FbnZpcm9ubWVudC53cml0ZUZpbGUoaWUucGF0aCxpZS5jb250ZW50KSx0aGlzLmludGVsbGlTZW5zZU1hbmFnZXImJnRoaXMuaW50ZWxsaVNlbnNlTWFuYWdlci5hZGRGaWxlTW9kZWwoaWUucGF0aCxpZS5jb250ZW50KX1jYXRjaChzZSl7Y29uc29sZS5lcnJvcihgRmFpbGVkIHRvIHNhdmUgJHtpZS5wYXRofTpgLHNlKX10aGlzLm9wZW5GaWxlcz10aGlzLm9wZW5GaWxlcy5tYXAoaWU9Pih7Li4uaWUsbW9kaWZpZWQ6ITF9KSl9fWFzeW5jIHNob3dFZGl0b3JNZW51KGllKXtpZS5zdG9wUHJvcGFnYXRpb24oKTtsZXQgc2U9W3tuYW1lOnRoaXMuYXV0b1NhdmU/Ilx1MjcxMyBBdXRvIFNhdmUiOiJBdXRvIFNhdmUiLGljb25OYW1lOiJsdWNpZGU6c2F2ZSIsYWN0aW9uOmFzeW5jKCk9PnRoaXMudG9nZ2xlQXV0b1NhdmUoKX0se2RpdmlkZXI6ITB9LHtuYW1lOiJTYXZlIixpY29uTmFtZToibHVjaWRlOnNhdmUiLGFjdGlvbjphc3luYygpPT50aGlzLnNhdmVBY3RpdmVGaWxlKCl9LHtuYW1lOiJTYXZlIEFsbCIsaWNvbk5hbWU6Imx1Y2lkZTpzYXZlIixhY3Rpb246YXN5bmMoKT0+dGhpcy5zYXZlQWxsRmlsZXMoKX1dO2F3YWl0IFV0Lm9wZW5Db250ZXh0TWVudVdpdGhPcHRpb25zKGllLHNlKX10b2dnbGVBdXRvU2F2ZSgpe3RoaXMuYXV0b1NhdmU9IXRoaXMuYXV0b1NhdmUsdGhpcy5hdXRvU2F2ZT90aGlzLmF1dG9TYXZlSW50ZXJ2YWw9c2V0SW50ZXJ2YWwoKCk9Pnt0aGlzLm9wZW5GaWxlcy5zb21lKHNlPT5zZS5tb2RpZmllZCkmJnRoaXMuc2F2ZUFsbEZpbGVzKCl9LDJlMyk6dGhpcy5hdXRvU2F2ZUludGVydmFsJiYoY2xlYXJJbnRlcnZhbCh0aGlzLmF1dG9TYXZlSW50ZXJ2YWwpLHRoaXMuYXV0b1NhdmVJbnRlcnZhbD1udWxsKX1nZXRFcnJvckNvdW50KCl7cmV0dXJuIHRoaXMuZGlhZ25vc3RpY01hcmtlcnMuZmlsdGVyKGllPT5pZS5zZXZlcml0eT09PTgpLmxlbmd0aH1yZW5kZXJQcm9ibGVtc1BhbmVsKCl7cmV0dXJuIHRoaXMuZGlhZ25vc3RpY01hcmtlcnMubGVuZ3RoPT09MD93YAogICAgICAgIDxkaXYgY2xhc3M9InByb2JsZW1zLWVtcHR5Ij4KICAgICAgICAgIDxkZWVzLWljb24gLmljb249JHsibHVjaWRlOmNoZWNrQ2lyY2xlIn0gaWNvblNpemU9IjI0Ij48L2RlZXMtaWNvbj4KICAgICAgICAgIDxzcGFuPk5vIHByb2JsZW1zIGRldGVjdGVkPC9zcGFuPgogICAgICAgIDwvZGl2PgogICAgICBgOndgCiAgICAgIDxkaXYgY2xhc3M9InByb2JsZW1zLWxpc3QiPgogICAgICAgICR7dGhpcy5kaWFnbm9zdGljTWFya2Vycy5tYXAoaWU9PndgCiAgICAgICAgICA8ZGl2IGNsYXNzPSJwcm9ibGVtLWl0ZW0iIEBjbGljaz0keygpPT50aGlzLm5hdmlnYXRlVG9Qcm9ibGVtKGllKX0+CiAgICAgICAgICAgIDxkZWVzLWljb24KICAgICAgICAgICAgICBjbGFzcz0icHJvYmxlbS1pY29uICR7aWUuc2V2ZXJpdHk9PT04PyJlcnJvciI6Indhcm5pbmcifSIKICAgICAgICAgICAgICAuaWNvbj0ke2llLnNldmVyaXR5PT09OD8ibHVjaWRlOmNpcmNsZVgiOiJsdWNpZGU6dHJpYW5nbGVBbGVydCJ9CiAgICAgICAgICAgICAgaWNvblNpemU9IjE0IgogICAgICAgICAgICA+PC9kZWVzLWljb24+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9InByb2JsZW0tZGV0YWlscyI+CiAgICAgICAgICAgICAgPGRpdiBjbGFzcz0icHJvYmxlbS1tZXNzYWdlIj4ke2llLm1lc3NhZ2V9PC9kaXY+CiAgICAgICAgICAgICAgPGRpdiBjbGFzcz0icHJvYmxlbS1sb2NhdGlvbiI+CiAgICAgICAgICAgICAgICAke2llLnJlc291cmNlLnBhdGguc3BsaXQoIi8iKS5wb3AoKX0gKCR7aWUuc3RhcnRMaW5lTnVtYmVyfSwgJHtpZS5zdGFydENvbHVtbn0pCiAgICAgICAgICAgICAgICAke2llLnNvdXJjZT9gWyR7aWUuc291cmNlfV1gOiIifQogICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIDwvZGl2PgogICAgICAgIGApfQogICAgICA8L2Rpdj4KICAgIGB9YXN5bmMgbmF2aWdhdGVUb1Byb2JsZW0oaWUpe2xldCBzZT1pZS5yZXNvdXJjZS5wYXRoLFRlPXNlLnNwbGl0KCIvIikucG9wKCl8fCIiO3RoaXMub3BlbkZpbGVzLmZpbmQobTE9Pm0xLnBhdGg9PT1zZSk/dGhpcy5hY3RpdmVGaWxlUGF0aD1zZTphd2FpdCB0aGlzLm9wZW5GaWxlKHNlLFRlKSxhd2FpdCB0aGlzLnVwZGF0ZUNvbXBsZXRlO2xldCBjdD10aGlzLnNoYWRvd1Jvb3Q/LnF1ZXJ5U2VsZWN0b3IoImRlZXMtd29ya3NwYWNlLW1vbmFjbyIpO2lmKGN0KXtsZXQgbTE9YXdhaXQgY3QuZWRpdG9yRGVmZXJyZWQucHJvbWlzZTttMS5yZXZlYWxMaW5lSW5DZW50ZXIoaWUuc3RhcnRMaW5lTnVtYmVyKSxtMS5zZXRQb3NpdGlvbih7bGluZU51bWJlcjppZS5zdGFydExpbmVOdW1iZXIsY29sdW1uOmllLnN0YXJ0Q29sdW1ufSksbTEuZm9jdXMoKX19c2V0dXBNYXJrZXJMaXN0ZW5lcigpe2xldCBpZT13aW5kb3cubW9uYWNvO2llJiYoaWUuZWRpdG9yLm9uRGlkQ2hhbmdlTWFya2VycyhzZT0+e3RoaXMudXBkYXRlRGlhZ25vc3RpY01hcmtlcnMoKX0pLHRoaXMudXBkYXRlRGlhZ25vc3RpY01hcmtlcnMoKSl9dXBkYXRlRGlhZ25vc3RpY01hcmtlcnMoKXtsZXQgaWU9d2luZG93Lm1vbmFjbztpZighaWUpcmV0dXJuO2xldCBzZT1pZS5lZGl0b3IuZ2V0TW9kZWxNYXJrZXJzKHt9KTt0aGlzLmRpYWdub3N0aWNNYXJrZXJzPXNlLm1hcChUZT0+KHttZXNzYWdlOlRlLm1lc3NhZ2Usc2V2ZXJpdHk6VGUuc2V2ZXJpdHksc3RhcnRMaW5lTnVtYmVyOlRlLnN0YXJ0TGluZU51bWJlcixzdGFydENvbHVtbjpUZS5zdGFydENvbHVtbixlbmRMaW5lTnVtYmVyOlRlLmVuZExpbmVOdW1iZXIsZW5kQ29sdW1uOlRlLmVuZENvbHVtbixzb3VyY2U6VGUuc291cmNlLHJlc291cmNlOntwYXRoOlRlLnJlc291cmNlLnBhdGh9fSkpfWFzeW5jIGhhbmRsZVJ1blByb2Nlc3MoaWUpe2xldCBzZT1pZS5kZXRhaWwsVGU9dGhpcy5zaGFkb3dSb290Py5xdWVyeVNlbGVjdG9yKCJkZWVzLXdvcmtzcGFjZS10ZXJtaW5hbCIpO2lmKCFUZSl7Y29uc29sZS53YXJuKCJUZXJtaW5hbCBjb21wb25lbnQgbm90IGZvdW5kIik7cmV0dXJufXRoaXMuaXNUZXJtaW5hbENvbGxhcHNlZCYmKHRoaXMuaXNUZXJtaW5hbENvbGxhcHNlZD0hMSksdGhpcy5hY3RpdmVCb3R0b21QYW5lbD0idGVybWluYWwiLGF3YWl0IHRoaXMudXBkYXRlQ29tcGxldGUsYXdhaXQgVGUuY3JlYXRlUHJvY2Vzc1RhYih7dHlwZTpzZS50eXBlLGxhYmVsOnNlLmxhYmVsLGNvbW1hbmQ6c2UuY29tbWFuZCxhcmdzOnNlLmFyZ3MsbWV0YWRhdGE6c2UubWV0YWRhdGEsc3dpdGNoVG9UYWI6ITB9KX1zZXRGaWxlVHJlZVdpZHRoKGllKXtsZXQgVGU9dGhpcy5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS53aWR0aCouNTt0aGlzLmN1cnJlbnRGaWxlVHJlZVdpZHRoPU1hdGgubWF4KDE1MCxNYXRoLm1pbihUZSxpZSkpLHdpbmRvdy5kaXNwYXRjaEV2ZW50KG5ldyBFdmVudCgicmVzaXplIikpfXNldFRlcm1pbmFsSGVpZ2h0KGllKXtsZXQgVGU9dGhpcy5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS5oZWlnaHQqLjc7dGhpcy5jdXJyZW50VGVybWluYWxIZWlnaHQ9TWF0aC5tYXgoMTAwLE1hdGgubWluKFRlLGllKSksd2luZG93LmRpc3BhdGNoRXZlbnQobmV3IEV2ZW50KCJyZXNpemUiKSl9cmVzZXRMYXlvdXQoKXt0aGlzLmN1cnJlbnRGaWxlVHJlZVdpZHRoPXRoaXMuZmlsZVRyZWVXaWR0aCx0aGlzLmN1cnJlbnRUZXJtaW5hbEhlaWdodD10aGlzLnRlcm1pbmFsSGVpZ2h0LHdpbmRvdy5kaXNwYXRjaEV2ZW50KG5ldyBFdmVudCgicmVzaXplIikpfXN0YXRpY3t1dChpLGEpfX07cmV0dXJuIFp0PWl9KSgpfSk7dmFyIGJ4dD1iKCgpPT57Z3h0KCk7TGooKX0pO3ZhciB2eHQ9YigoKT0+e1owKCl9KTt2YXIgeXh0PWIoKCk9Pnt6dygpfSk7dmFyIHh4dD1iKCgpPT57fSk7dmFyIHd4dD1iKCgpPT57dGQoKTt4eHQoKTt2aigpfSk7dmFyIE14dD1iKCgpPT57X2ooKX0pO3ZhciBuZCxacyxuOTIsenh0LGt4dD1iKCgpPT57dWUoKTtxZSgpO1owKCk7bmQ9ZnVuY3Rpb24odCxlLGEsaSxyLHMpe2Z1bmN0aW9uIG4oeCl7aWYoeCE9PXZvaWQgMCYmdHlwZW9mIHghPSJmdW5jdGlvbiIpdGhyb3cgbmV3IFR5cGVFcnJvcigiRnVuY3Rpb24gZXhwZWN0ZWQiKTtyZXR1cm4geH1mb3IodmFyIG89aS5raW5kLGQ9bz09PSJnZXR0ZXIiPyJnZXQiOm89PT0ic2V0dGVyIj8ic2V0IjoidmFsdWUiLGM9IWUmJnQ/aS5zdGF0aWM/dDp0LnByb3RvdHlwZTpudWxsLGg9ZXx8KGM/T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihjLGkubmFtZSk6e30pLGwsZj0hMSxnPWEubGVuZ3RoLTE7Zz49MDtnLS0pe3ZhciB5PXt9O2Zvcih2YXIgdiBpbiBpKXlbdl09dj09PSJhY2Nlc3MiP3t9Omlbdl07Zm9yKHZhciB2IGluIGkuYWNjZXNzKXkuYWNjZXNzW3ZdPWkuYWNjZXNzW3ZdO3kuYWRkSW5pdGlhbGl6ZXI9ZnVuY3Rpb24oeCl7aWYoZil0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgYWRkIGluaXRpYWxpemVycyBhZnRlciBkZWNvcmF0aW9uIGhhcyBjb21wbGV0ZWQiKTtzLnB1c2gobih4fHxudWxsKSl9O3ZhciBtPSgwLGFbZ10pKG89PT0iYWNjZXNzb3IiP3tnZXQ6aC5nZXQsc2V0Omguc2V0fTpoW2RdLHkpO2lmKG89PT0iYWNjZXNzb3IiKXtpZihtPT09dm9pZCAwKWNvbnRpbnVlO2lmKG09PT1udWxsfHx0eXBlb2YgbSE9Im9iamVjdCIpdGhyb3cgbmV3IFR5cGVFcnJvcigiT2JqZWN0IGV4cGVjdGVkIik7KGw9bihtLmdldCkpJiYoaC5nZXQ9bCksKGw9bihtLnNldCkpJiYoaC5zZXQ9bCksKGw9bihtLmluaXQpKSYmci51bnNoaWZ0KGwpfWVsc2UobD1uKG0pKSYmKG89PT0iZmllbGQiP3IudW5zaGlmdChsKTpoW2RdPWwpfWMmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShjLGkubmFtZSxoKSxmPSEwfSxacz1mdW5jdGlvbih0LGUsYSl7Zm9yKHZhciBpPWFyZ3VtZW50cy5sZW5ndGg+MixyPTA7cjxlLmxlbmd0aDtyKyspYT1pP2Vbcl0uY2FsbCh0LGEpOmVbcl0uY2FsbCh0KTtyZXR1cm4gaT9hOnZvaWQgMH0sbjkyPXJ0LnBsdWdpbnMuc21hcnRwcm9taXNlLmRlZmVyKCksenh0PSgoKT0+e2xldCB0PVtwZSgiZGVlcy13b3Jrc3BhY2UtbWFya2Rvd24iKV0sZSxhPVtdLGkscj14ZSxzLG49W10sbz1bXSxkLGM9W10saD1bXSxsLGY9W10sZz1bXSx5LHY9W10sbT1bXTt2YXIgeD1jbGFzcyBleHRlbmRzIHJ7c3RhdGlje2k9dGhpc31zdGF0aWN7bGV0IE09dHlwZW9mIFN5bWJvbD09ImZ1bmN0aW9uIiYmU3ltYm9sLm1ldGFkYXRhP09iamVjdC5jcmVhdGUocltTeW1ib2wubWV0YWRhdGFdPz9udWxsKTp2b2lkIDA7cz1bSSh7dHlwZTpOdW1iZXJ9KV0sZD1bSSh7dHlwZTpOdW1iZXJ9KV0sbD1bSigpXSx5PVtKKCldLG5kKHRoaXMsbnVsbCxzLHtraW5kOiJhY2Nlc3NvciIsbmFtZToic3BsaXRSYXRpbyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6Uz0+InNwbGl0UmF0aW8iaW4gUyxnZXQ6Uz0+Uy5zcGxpdFJhdGlvLHNldDooUyxGKT0+e1Muc3BsaXRSYXRpbz1GfX0sbWV0YWRhdGE6TX0sbixvKSxuZCh0aGlzLG51bGwsZCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6Im1pblBhbmVsU2l6ZSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6Uz0+Im1pblBhbmVsU2l6ZSJpbiBTLGdldDpTPT5TLm1pblBhbmVsU2l6ZSxzZXQ6KFMsRik9PntTLm1pblBhbmVsU2l6ZT1GfX0sbWV0YWRhdGE6TX0sYyxoKSxuZCh0aGlzLG51bGwsbCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImN1cnJlbnRTcGxpdFJhdGlvIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpTPT4iY3VycmVudFNwbGl0UmF0aW8iaW4gUyxnZXQ6Uz0+Uy5jdXJyZW50U3BsaXRSYXRpbyxzZXQ6KFMsRik9PntTLmN1cnJlbnRTcGxpdFJhdGlvPUZ9fSxtZXRhZGF0YTpNfSxmLGcpLG5kKHRoaXMsbnVsbCx5LHtraW5kOiJhY2Nlc3NvciIsbmFtZToiaXNEcmFnZ2luZyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6Uz0+ImlzRHJhZ2dpbmciaW4gUyxnZXQ6Uz0+Uy5pc0RyYWdnaW5nLHNldDooUyxGKT0+e1MuaXNEcmFnZ2luZz1GfX0sbWV0YWRhdGE6TX0sdixtKSxuZChudWxsLGU9e3ZhbHVlOml9LHQse2tpbmQ6ImNsYXNzIixuYW1lOmkubmFtZSxtZXRhZGF0YTpNfSxudWxsLGEpLHg9aT1lLnZhbHVlLE0mJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShpLFN5bWJvbC5tZXRhZGF0YSx7ZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITAsdmFsdWU6TX0pfXN0YXRpYyBkZW1vPSgpPT53YDxkZWVzLXdvcmtzcGFjZS1tYXJrZG93bj48L2RlZXMtd29ya3NwYWNlLW1hcmtkb3duPmA7c3RhdGljIGRlbW9Hcm91cHM9WyJXb3Jrc3BhY2UiXTtzdGF0aWMgc3R5bGVzPVtDZSxwLmRlZmF1bHRTdHlsZXMsUWAKICAgICAgOmhvc3QgewogICAgICAgIGRpc3BsYXk6IGJsb2NrOwogICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgICB3aWR0aDogMTAwJTsKICAgICAgICBoZWlnaHQ6IDEwMCU7CiAgICAgIH0KCiAgICAgIC5zcGxpdENvbnRhaW5lciB7CiAgICAgICAgcG9zaXRpb246IGFic29sdXRlOwogICAgICAgIGhlaWdodDogMTAwJTsKICAgICAgICB3aWR0aDogMTAwJTsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7CiAgICAgIH0KCiAgICAgIC5lZGl0b3JDb250YWluZXIgewogICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgICBoZWlnaHQ6IDEwMCU7CiAgICAgICAgbWluLXdpZHRoOiAxMDBweDsKICAgICAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgICB9CgogICAgICAucmVzaXplSGFuZGxlIHsKICAgICAgICB3aWR0aDogNnB4OwogICAgICAgIGhlaWdodDogMTAwJTsKICAgICAgICBiYWNrZ3JvdW5kOiAke3AuYmRUaGVtZSgiI2U1ZTdlYiIsIiMzMDM2M2QiKX07CiAgICAgICAgY3Vyc29yOiBjb2wtcmVzaXplOwogICAgICAgIGZsZXgtc2hyaW5rOiAwOwogICAgICAgIHRyYW5zaXRpb246IGJhY2tncm91bmQgMC4xNXMgZWFzZTsKICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgIH0KCiAgICAgIC5yZXNpemVIYW5kbGU6aG92ZXIsCiAgICAgIC5yZXNpemVIYW5kbGUuZHJhZ2dpbmcgewogICAgICAgIGJhY2tncm91bmQ6ICR7cC5iZFRoZW1lKCIjM2I4MmY2IiwiIzU4YTZmZiIpfTsKICAgICAgfQoKICAgICAgLnJlc2l6ZUhhbmRsZTo6YWZ0ZXIgewogICAgICAgIGNvbnRlbnQ6ICcnOwogICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgICB0b3A6IDUwJTsKICAgICAgICBsZWZ0OiA1MCU7CiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSwgLTUwJSk7CiAgICAgICAgd2lkdGg6IDJweDsKICAgICAgICBoZWlnaHQ6IDMycHg7CiAgICAgICAgYmFja2dyb3VuZDogJHtwLmJkVGhlbWUoIiM5Y2EzYWYiLCIjNmU3NjgxIil9OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDFweDsKICAgICAgICBvcGFjaXR5OiAwLjY7CiAgICAgIH0KCiAgICAgIC5yZXNpemVIYW5kbGU6aG92ZXI6OmFmdGVyLAogICAgICAucmVzaXplSGFuZGxlLmRyYWdnaW5nOjphZnRlciB7CiAgICAgICAgYmFja2dyb3VuZDogJHtwLmJkVGhlbWUoIiNmZmZmZmYiLCIjZmZmZmZmIil9OwogICAgICAgIG9wYWNpdHk6IDE7CiAgICAgIH0KCiAgICAgIC5vdXRsZXRDb250YWluZXIgewogICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgICBoZWlnaHQ6IDEwMCU7CiAgICAgICAgbWluLXdpZHRoOiAxMDBweDsKICAgICAgICBiYWNrZ3JvdW5kOiAke3AuYmRUaGVtZSgiI2ZmZmZmZiIsIiMwZDExMTciKX07CiAgICAgICAgY29sb3I6ICR7cC5iZFRoZW1lKCIjMjQyOTJmIiwiI2U2ZWRmMyIpfTsKICAgICAgICBmb250LWZhbWlseTogLWFwcGxlLXN5c3RlbSwgQmxpbmtNYWNTeXN0ZW1Gb250LCAnU2Vnb2UgVUknLCAnTm90byBTYW5zJywgSGVsdmV0aWNhLCBBcmlhbCwgc2Fucy1zZXJpZjsKICAgICAgICBwYWRkaW5nOiAyMHB4OwogICAgICAgIG92ZXJmbG93LXk6IGF1dG87CiAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDsKICAgICAgfQoKICAgICAgLyogUHJldmVudCB0ZXh0IHNlbGVjdGlvbiB3aGlsZSBkcmFnZ2luZyAqLwogICAgICAuc3BsaXRDb250YWluZXIuZHJhZ2dpbmcgewogICAgICAgIHVzZXItc2VsZWN0OiBub25lOwogICAgICB9CgogICAgICAuc3BsaXRDb250YWluZXIuZHJhZ2dpbmcgLmVkaXRvckNvbnRhaW5lciwKICAgICAgLnNwbGl0Q29udGFpbmVyLmRyYWdnaW5nIC5vdXRsZXRDb250YWluZXIgewogICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lOwogICAgICB9CiAgICBgXTsjZT1acyh0aGlzLG4sNTApO2dldCBzcGxpdFJhdGlvKCl7cmV0dXJuIHRoaXMuI2V9c2V0IHNwbGl0UmF0aW8oTSl7dGhpcy4jZT1NfSN0PShacyh0aGlzLG8pLFpzKHRoaXMsYywxMCkpO2dldCBtaW5QYW5lbFNpemUoKXtyZXR1cm4gdGhpcy4jdH1zZXQgbWluUGFuZWxTaXplKE0pe3RoaXMuI3Q9TX0jYT0oWnModGhpcyxoKSxacyh0aGlzLGYsNTApKTtnZXQgY3VycmVudFNwbGl0UmF0aW8oKXtyZXR1cm4gdGhpcy4jYX1zZXQgY3VycmVudFNwbGl0UmF0aW8oTSl7dGhpcy4jYT1NfSNpPShacyh0aGlzLGcpLFpzKHRoaXMsdiwhMSkpO2dldCBpc0RyYWdnaW5nKCl7cmV0dXJuIHRoaXMuI2l9c2V0IGlzRHJhZ2dpbmcoTSl7dGhpcy4jaT1NfXJlc2l6ZUhhbmRsZUVsZW1lbnQ9WnModGhpcyxtKTtjb250YWluZXJFbGVtZW50O3JlbmRlcigpe3JldHVybiB3YAogICAgICA8ZGl2IGNsYXNzPSJzcGxpdENvbnRhaW5lciAke3RoaXMuaXNEcmFnZ2luZz8iZHJhZ2dpbmciOiIifSI+CiAgICAgICAgPGRpdiBjbGFzcz0iZWRpdG9yQ29udGFpbmVyIiBzdHlsZT0id2lkdGg6ICR7dGhpcy5jdXJyZW50U3BsaXRSYXRpb30lIj4KICAgICAgICAgIDxkZWVzLXdvcmtzcGFjZS1tb25hY28KICAgICAgICAgICAgLmxhbmd1YWdlPSR7Im1hcmtkb3duIn0KICAgICAgICAgICAgLmNvbnRlbnQ9JHtgIyBhIHRlc3QgY29udGVudAoKVGhpcyBpcyB0ZXN0IGNvbnRlbnQgdGhhdCBpcyBvZiBsb25nZXIgZm9ybSBhbiBob3BlZnVsbHkgc3RhcnRzIHRvIHdyYXAgd2hlbiBJIG5lZWQgaXQuIEFuZCB5ZXMsIGl0IGRvZXMgcGVyZmVjdGx5LiBuaWNlLgoKVGVzdCB8IEhlbGxvCi0tLSB8IC0tLQpZZWFoIHwgU28gZ29vZAoKVGhpcyBpcyByZWFsIGFzc2V0IEkgdGhpbmsuIFdoeSB3b3VsZCB3ZSB3YW50IHRvIGxlYXZlIHRoYXQgb24gdGhlIHRhYmxlPyBDYW4geW91IHRlbGwgbXkgdGhhdD8KCldoeSBhcmUgd2UgaGVyZT8KCkRvIHlvdSBrbm93PwoKPiBub3RlOgpUaGVyZSBpcyBzb21ldGhpbmcgZ29pbmcgb24uCgpcYFxgXGB0eXBlc2NyaXB0CmNvbnN0IGhlbGxvID0gJ3llcycKXGBcYFxgCmB9CiAgICAgICAgICAgIHdvcmRXcmFwPSJib3VuZGVkIgogICAgICAgICAgPjwvZGVlcy13b3Jrc3BhY2UtbW9uYWNvPgogICAgICAgIDwvZGl2PgogICAgICAgIDxkaXYKICAgICAgICAgIGNsYXNzPSJyZXNpemVIYW5kbGUgJHt0aGlzLmlzRHJhZ2dpbmc/ImRyYWdnaW5nIjoiIn0iCiAgICAgICAgICBAbW91c2Vkb3duPSR7dGhpcy5oYW5kbGVNb3VzZURvd259CiAgICAgICAgPjwvZGl2PgogICAgICAgIDxkaXYgY2xhc3M9Im91dGxldENvbnRhaW5lciIgc3R5bGU9IndpZHRoOiAkezEwMC10aGlzLmN1cnJlbnRTcGxpdFJhdGlvfSUiPgogICAgICAgICAgPGRlZXMtd29ya3NwYWNlLW1hcmtkb3dub3V0bGV0PjwvZGVlcy13b3Jrc3BhY2UtbWFya2Rvd25vdXRsZXQ+CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGl2PgogICAgYH1hc3luYyBmaXJzdFVwZGF0ZWQoTSl7YXdhaXQgc3VwZXIuZmlyc3RVcGRhdGVkKE0pLHRoaXMuY3VycmVudFNwbGl0UmF0aW89dGhpcy5zcGxpdFJhdGlvLHRoaXMuY29udGFpbmVyRWxlbWVudD10aGlzLnNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvcigiLnNwbGl0Q29udGFpbmVyIiksdGhpcy5yZXNpemVIYW5kbGVFbGVtZW50PXRoaXMuc2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yKCIucmVzaXplSGFuZGxlIik7bGV0IFM9dGhpcy5zaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3IoImRlZXMtd29ya3NwYWNlLW1vbmFjbyIpLEY9dGhpcy5zaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3IoImRlZXMtd29ya3NwYWNlLW1hcmtkb3dub3V0bGV0Iiksaz1hd2FpdCBuZXcgcnQucGx1Z2lucy5zbWFydG1hcmtkb3duLlNtYXJ0TWFya2Rvd24oKS5nZXRNZFBhcnNlZFJlc3VsdEZyb21NYXJrZG93bigibG9hZGluZy4uLiIpO1MuY29udGVudFN1YmplY3Quc3Vic2NyaWJlKGFzeW5jIE49Pnthd2FpdCBrLnVwZGF0ZUZyb21NYXJrZG93blN0cmluZyhOKTtsZXQgTD1rLmh0bWw7Ri51cGRhdGVIdG1sVGV4dChMKX0pfWhhbmRsZU1vdXNlRG93bj1NPT57TS5wcmV2ZW50RGVmYXVsdCgpLHRoaXMuaXNEcmFnZ2luZz0hMCxkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCJtb3VzZW1vdmUiLHRoaXMuaGFuZGxlTW91c2VNb3ZlKSxkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCJtb3VzZXVwIix0aGlzLmhhbmRsZU1vdXNlVXApfTtoYW5kbGVNb3VzZU1vdmU9TT0+e2lmKCF0aGlzLmlzRHJhZ2dpbmd8fCF0aGlzLmNvbnRhaW5lckVsZW1lbnQpcmV0dXJuO2xldCBTPXRoaXMuY29udGFpbmVyRWxlbWVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKSxGPVMud2lkdGgsaz0oTS5jbGllbnRYLVMubGVmdCkvRioxMDA7az1NYXRoLm1heCh0aGlzLm1pblBhbmVsU2l6ZSxNYXRoLm1pbigxMDAtdGhpcy5taW5QYW5lbFNpemUsaykpLHRoaXMuY3VycmVudFNwbGl0UmF0aW89a307aGFuZGxlTW91c2VVcD0oKT0+e3RoaXMuaXNEcmFnZ2luZz0hMSxkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCJtb3VzZW1vdmUiLHRoaXMuaGFuZGxlTW91c2VNb3ZlKSxkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCJtb3VzZXVwIix0aGlzLmhhbmRsZU1vdXNlVXApLHRoaXMuc2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yKCJkZWVzLXdvcmtzcGFjZS1tb25hY28iKSYmd2luZG93LmRpc3BhdGNoRXZlbnQobmV3IEV2ZW50KCJyZXNpemUiKSl9O2FzeW5jIGRpc2Nvbm5lY3RlZENhbGxiYWNrKCl7YXdhaXQgc3VwZXIuZGlzY29ubmVjdGVkQ2FsbGJhY2soKSxkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCJtb3VzZW1vdmUiLHRoaXMuaGFuZGxlTW91c2VNb3ZlKSxkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCJtb3VzZXVwIix0aGlzLmhhbmRsZU1vdXNlVXApfXNldFNwbGl0UmF0aW8oTSl7dGhpcy5jdXJyZW50U3BsaXRSYXRpbz1NYXRoLm1heCh0aGlzLm1pblBhbmVsU2l6ZSxNYXRoLm1pbigxMDAtdGhpcy5taW5QYW5lbFNpemUsTSkpfXJlc2V0U3BsaXRSYXRpbygpe3RoaXMuY3VycmVudFNwbGl0UmF0aW89dGhpcy5zcGxpdFJhdGlvfXN0YXRpY3tacyhpLGEpfX07cmV0dXJuIHg9aX0pKCl9KTt2YXIgU3h0PWIoKCk9PntreHQoKX0pO3ZhciBDeHQsX3h0PWIoKCk9Pnt1ZSgpO3gxKCk7bTIoKTtDeHQ9KCk9PndgCiAgPGRlZXMtZGVtb3dyYXBwZXI+CiAgICA8c3R5bGU+CiAgICAgICR7UWAKICAgICAgICAuZGVtby1jb250YWluZXIgewogICAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgICAgICBnYXA6IDI0cHg7CiAgICAgICAgICBwYWRkaW5nOiAyNHB4OwogICAgICAgICAgbWF4LXdpZHRoOiA5MDBweDsKICAgICAgICAgIG1hcmdpbjogMCBhdXRvOwogICAgICAgIH0KICAgICAgYH0KICAgIDwvc3R5bGU+CgogICAgPGRpdiBjbGFzcz0iZGVtby1jb250YWluZXIiPgogICAgICA8IS0tIERlbW8gMTogSGVhZGluZ3MgLS0+CiAgICAgIDxkZWVzLXBhbmVsCiAgICAgICAgLnRpdGxlPSR7IkhlYWRpbmdzIn0KICAgICAgICAuc3VidGl0bGU9JHsiQWxsIGhlYWRpbmcgbGV2ZWxzIGZyb20gSDEgdG8gSDYifQogICAgICAgIC5ydW5BZnRlclJlbmRlcj0ke2FzeW5jIHQ9Pnthd2FpdCB0LnF1ZXJ5U2VsZWN0b3IoImRlZXMtd29ya3NwYWNlLW1hcmtkb3dub3V0bGV0Iik/LnVwZGF0ZUh0bWxUZXh0KGAKICAgICAgICAgICAgPGgxPkhlYWRpbmcgTGV2ZWwgMTwvaDE+CiAgICAgICAgICAgIDxoMj5IZWFkaW5nIExldmVsIDI8L2gyPgogICAgICAgICAgICA8aDM+SGVhZGluZyBMZXZlbCAzPC9oMz4KICAgICAgICAgICAgPGg0PkhlYWRpbmcgTGV2ZWwgNDwvaDQ+CiAgICAgICAgICAgIDxoNT5IZWFkaW5nIExldmVsIDU8L2g1PgogICAgICAgICAgICA8aDY+SGVhZGluZyBMZXZlbCA2PC9oNj4KICAgICAgICAgIGApfX0KICAgICAgPgogICAgICAgIDxkZWVzLXdvcmtzcGFjZS1tYXJrZG93bm91dGxldD48L2RlZXMtd29ya3NwYWNlLW1hcmtkb3dub3V0bGV0PgogICAgICA8L2RlZXMtcGFuZWw+CgogICAgICA8IS0tIERlbW8gMjogVGV4dCBGb3JtYXR0aW5nIC0tPgogICAgICA8ZGVlcy1wYW5lbAogICAgICAgIC50aXRsZT0keyJUZXh0IEZvcm1hdHRpbmcifQogICAgICAgIC5zdWJ0aXRsZT0keyJCb2xkLCBpdGFsaWMsIGxpbmtzLCBjb2RlLCBhbmQga2V5Ym9hcmQgaW5wdXQifQogICAgICAgIC5ydW5BZnRlclJlbmRlcj0ke2FzeW5jIHQ9Pnthd2FpdCB0LnF1ZXJ5U2VsZWN0b3IoImRlZXMtd29ya3NwYWNlLW1hcmtkb3dub3V0bGV0Iik/LnVwZGF0ZUh0bWxUZXh0KGAKICAgICAgICAgICAgPHA+VGhpcyBpcyBhIHBhcmFncmFwaCB3aXRoIDxzdHJvbmc+Ym9sZCB0ZXh0PC9zdHJvbmc+IGFuZCA8ZW0+aXRhbGljIHRleHQ8L2VtPi48L3A+CiAgICAgICAgICAgIDxwPllvdSBjYW4gYWxzbyB1c2UgPHN0cm9uZz48ZW0+Ym9sZCBpdGFsaWM8L2VtPjwvc3Ryb25nPiBmb3IgZW1waGFzaXMuPC9wPgogICAgICAgICAgICA8cD5IZXJlJ3MgYSA8YSBocmVmPSIjIj5saW5rIGV4YW1wbGU8L2E+IGFuZCBzb21lIDxjb2RlPmlubGluZSBjb2RlPC9jb2RlPi48L3A+CiAgICAgICAgICAgIDxwPlByZXNzIDxrYmQ+Q3RybDwva2JkPiArIDxrYmQ+Qzwva2JkPiB0byBjb3B5IHRleHQuPC9wPgogICAgICAgICAgICA8aHI+CiAgICAgICAgICAgIDxwPkFib3ZlIGlzIGEgaG9yaXpvbnRhbCBydWxlIHNlcGFyYXRvci48L3A+CiAgICAgICAgICBgKX19CiAgICAgID4KICAgICAgICA8ZGVlcy13b3Jrc3BhY2UtbWFya2Rvd25vdXRsZXQ+PC9kZWVzLXdvcmtzcGFjZS1tYXJrZG93bm91dGxldD4KICAgICAgPC9kZWVzLXBhbmVsPgoKICAgICAgPCEtLSBEZW1vIDM6IExpc3RzIC0tPgogICAgICA8ZGVlcy1wYW5lbAogICAgICAgIC50aXRsZT0keyJMaXN0cyJ9CiAgICAgICAgLnN1YnRpdGxlPSR7Ik9yZGVyZWQsIHVub3JkZXJlZCwgYW5kIHRhc2sgbGlzdHMifQogICAgICAgIC5ydW5BZnRlclJlbmRlcj0ke2FzeW5jIHQ9Pnthd2FpdCB0LnF1ZXJ5U2VsZWN0b3IoImRlZXMtd29ya3NwYWNlLW1hcmtkb3dub3V0bGV0Iik/LnVwZGF0ZUh0bWxUZXh0KGAKICAgICAgICAgICAgPGgzPlVub3JkZXJlZCBMaXN0PC9oMz4KICAgICAgICAgICAgPHVsPgogICAgICAgICAgICAgIDxsaT5GaXJzdCBpdGVtPC9saT4KICAgICAgICAgICAgICA8bGk+U2Vjb25kIGl0ZW0KICAgICAgICAgICAgICAgIDx1bD4KICAgICAgICAgICAgICAgICAgPGxpPk5lc3RlZCBpdGVtIDE8L2xpPgogICAgICAgICAgICAgICAgICA8bGk+TmVzdGVkIGl0ZW0gMjwvbGk+CiAgICAgICAgICAgICAgICA8L3VsPgogICAgICAgICAgICAgIDwvbGk+CiAgICAgICAgICAgICAgPGxpPlRoaXJkIGl0ZW08L2xpPgogICAgICAgICAgICA8L3VsPgoKICAgICAgICAgICAgPGgzPk9yZGVyZWQgTGlzdDwvaDM+CiAgICAgICAgICAgIDxvbD4KICAgICAgICAgICAgICA8bGk+U3RlcCBvbmU8L2xpPgogICAgICAgICAgICAgIDxsaT5TdGVwIHR3bzwvbGk+CiAgICAgICAgICAgICAgPGxpPlN0ZXAgdGhyZWU8L2xpPgogICAgICAgICAgICA8L29sPgoKICAgICAgICAgICAgPGgzPlRhc2sgTGlzdDwvaDM+CiAgICAgICAgICAgIDx1bD4KICAgICAgICAgICAgICA8bGkgY2xhc3M9InRhc2stbGlzdC1pdGVtIj48aW5wdXQgdHlwZT0iY2hlY2tib3giIGNoZWNrZWQgZGlzYWJsZWQ+IENvbXBsZXRlZCB0YXNrPC9saT4KICAgICAgICAgICAgICA8bGkgY2xhc3M9InRhc2stbGlzdC1pdGVtIj48aW5wdXQgdHlwZT0iY2hlY2tib3giIGRpc2FibGVkPiBQZW5kaW5nIHRhc2s8L2xpPgogICAgICAgICAgICAgIDxsaSBjbGFzcz0idGFzay1saXN0LWl0ZW0iPjxpbnB1dCB0eXBlPSJjaGVja2JveCIgZGlzYWJsZWQ+IEFub3RoZXIgdGFzazwvbGk+CiAgICAgICAgICAgIDwvdWw+CiAgICAgICAgICBgKX19CiAgICAgID4KICAgICAgICA8ZGVlcy13b3Jrc3BhY2UtbWFya2Rvd25vdXRsZXQ+PC9kZWVzLXdvcmtzcGFjZS1tYXJrZG93bm91dGxldD4KICAgICAgPC9kZWVzLXBhbmVsPgoKICAgICAgPCEtLSBEZW1vIDQ6IENvZGUgQmxvY2tzIC0tPgogICAgICA8ZGVlcy1wYW5lbAogICAgICAgIC50aXRsZT0keyJDb2RlIEJsb2NrcyJ9CiAgICAgICAgLnN1YnRpdGxlPSR7IlN5bnRheCBoaWdobGlnaHRlZCBjb2RlIGV4YW1wbGVzIn0KICAgICAgICAucnVuQWZ0ZXJSZW5kZXI9JHthc3luYyB0PT57YXdhaXQgdC5xdWVyeVNlbGVjdG9yKCJkZWVzLXdvcmtzcGFjZS1tYXJrZG93bm91dGxldCIpPy51cGRhdGVIdG1sVGV4dChgCiAgICAgICAgICAgIDxwPklubGluZSBjb2RlOiA8Y29kZT5jb25zdCBncmVldGluZyA9ICJIZWxsbywgV29ybGQhIjs8L2NvZGU+PC9wPgoKICAgICAgICAgICAgPGgzPlR5cGVTY3JpcHQgRXhhbXBsZTwvaDM+CiAgICAgICAgICAgIDxwcmU+PGNvZGU+PHNwYW4gY2xhc3M9ImhsanMta2V5d29yZCI+aW1wb3J0PC9zcGFuPiB7IGh0bWwsIGNzcyB9IDxzcGFuIGNsYXNzPSJobGpzLWtleXdvcmQiPmZyb208L3NwYW4+IDxzcGFuIGNsYXNzPSJobGpzLXN0cmluZyI+J0BkZXNpZ24uZXN0YXRlL2RlZXMtZWxlbWVudCc8L3NwYW4+OwoKPHNwYW4gY2xhc3M9ImhsanMta2V5d29yZCI+aW50ZXJmYWNlPC9zcGFuPiA8c3BhbiBjbGFzcz0iaGxqcy10aXRsZSI+SVVzZXI8L3NwYW4+IHsKICA8c3BhbiBjbGFzcz0iaGxqcy1hdHRyIj5uYW1lPC9zcGFuPjogPHNwYW4gY2xhc3M9ImhsanMtYnVpbHRfaW4iPnN0cmluZzwvc3Bhbj47CiAgPHNwYW4gY2xhc3M9ImhsanMtYXR0ciI+ZW1haWw8L3NwYW4+OiA8c3BhbiBjbGFzcz0iaGxqcy1idWlsdF9pbiI+c3RyaW5nPC9zcGFuPjsKICA8c3BhbiBjbGFzcz0iaGxqcy1hdHRyIj5hZ2U8L3NwYW4+PzogPHNwYW4gY2xhc3M9ImhsanMtYnVpbHRfaW4iPm51bWJlcjwvc3Bhbj47Cn0KCjxzcGFuIGNsYXNzPSJobGpzLWtleXdvcmQiPmNvbnN0PC9zcGFuPiA8c3BhbiBjbGFzcz0iaGxqcy10aXRsZSI+Z2V0VXNlcjwvc3Bhbj4gPSA8c3BhbiBjbGFzcz0iaGxqcy1rZXl3b3JkIj5hc3luYzwvc3Bhbj4gKDxzcGFuIGNsYXNzPSJobGpzLWF0dHIiPmlkPC9zcGFuPjogPHNwYW4gY2xhc3M9ImhsanMtYnVpbHRfaW4iPnN0cmluZzwvc3Bhbj4pOiA8c3BhbiBjbGFzcz0iaGxqcy1idWlsdF9pbiI+UHJvbWlzZTwvc3Bhbj4mbHQ7SVVzZXImZ3Q7ID0mZ3Q7IHsKICA8c3BhbiBjbGFzcz0iaGxqcy1rZXl3b3JkIj5jb25zdDwvc3Bhbj4gcmVzcG9uc2UgPSA8c3BhbiBjbGFzcz0iaGxqcy1rZXl3b3JkIj5hd2FpdDwvc3Bhbj4gZmV0Y2goXGAvYXBpL3VzZXJzL1wke2lkfVxgKTsKICA8c3BhbiBjbGFzcz0iaGxqcy1rZXl3b3JkIj5yZXR1cm48L3NwYW4+IHJlc3BvbnNlLmpzb24oKTsKfTs8L2NvZGU+PC9wcmU+CgogICAgICAgICAgICA8aDM+SlNPTiBFeGFtcGxlPC9oMz4KICAgICAgICAgICAgPHByZT48Y29kZT57CiAgPHNwYW4gY2xhc3M9ImhsanMtYXR0ciI+Im5hbWUiPC9zcGFuPjogPHNwYW4gY2xhc3M9ImhsanMtc3RyaW5nIj4iZGVlcy1jYXRhbG9nIjwvc3Bhbj4sCiAgPHNwYW4gY2xhc3M9ImhsanMtYXR0ciI+InZlcnNpb24iPC9zcGFuPjogPHNwYW4gY2xhc3M9ImhsanMtc3RyaW5nIj4iMy4wLjAiPC9zcGFuPiwKICA8c3BhbiBjbGFzcz0iaGxqcy1hdHRyIj4iZGVwZW5kZW5jaWVzIjwvc3Bhbj46IHsKICAgIDxzcGFuIGNsYXNzPSJobGpzLWF0dHIiPiJAZGVzaWduLmVzdGF0ZS9kZWVzLWVsZW1lbnQiPC9zcGFuPjogPHNwYW4gY2xhc3M9ImhsanMtc3RyaW5nIj4iXjIuMC4wIjwvc3Bhbj4KICB9Cn08L2NvZGU+PC9wcmU+CiAgICAgICAgICBgKX19CiAgICAgID4KICAgICAgICA8ZGVlcy13b3Jrc3BhY2UtbWFya2Rvd25vdXRsZXQ+PC9kZWVzLXdvcmtzcGFjZS1tYXJrZG93bm91dGxldD4KICAgICAgPC9kZWVzLXBhbmVsPgoKICAgICAgPCEtLSBEZW1vIDU6IFRhYmxlcyAtLT4KICAgICAgPGRlZXMtcGFuZWwKICAgICAgICAudGl0bGU9JHsiVGFibGVzIn0KICAgICAgICAuc3VidGl0bGU9JHsiU3R5bGVkIHRhYmxlcyB3aXRoIGFsdGVybmF0aW5nIHJvd3MifQogICAgICAgIC5ydW5BZnRlclJlbmRlcj0ke2FzeW5jIHQ9Pnthd2FpdCB0LnF1ZXJ5U2VsZWN0b3IoImRlZXMtd29ya3NwYWNlLW1hcmtkb3dub3V0bGV0Iik/LnVwZGF0ZUh0bWxUZXh0KGAKICAgICAgICAgICAgPHRhYmxlPgogICAgICAgICAgICAgIDx0aGVhZD4KICAgICAgICAgICAgICAgIDx0cj4KICAgICAgICAgICAgICAgICAgPHRoPkZlYXR1cmU8L3RoPgogICAgICAgICAgICAgICAgICA8dGg+U3RhdHVzPC90aD4KICAgICAgICAgICAgICAgICAgPHRoPlByaW9yaXR5PC90aD4KICAgICAgICAgICAgICAgIDwvdHI+CiAgICAgICAgICAgICAgPC90aGVhZD4KICAgICAgICAgICAgICA8dGJvZHk+CiAgICAgICAgICAgICAgICA8dHI+CiAgICAgICAgICAgICAgICAgIDx0ZD5EYXJrIG1vZGUgc3VwcG9ydDwvdGQ+CiAgICAgICAgICAgICAgICAgIDx0ZD5Db21wbGV0ZWQ8L3RkPgogICAgICAgICAgICAgICAgICA8dGQ+SGlnaDwvdGQ+CiAgICAgICAgICAgICAgICA8L3RyPgogICAgICAgICAgICAgICAgPHRyPgogICAgICAgICAgICAgICAgICA8dGQ+UmVzcG9uc2l2ZSBkZXNpZ248L3RkPgogICAgICAgICAgICAgICAgICA8dGQ+SW4gUHJvZ3Jlc3M8L3RkPgogICAgICAgICAgICAgICAgICA8dGQ+TWVkaXVtPC90ZD4KICAgICAgICAgICAgICAgIDwvdHI+CiAgICAgICAgICAgICAgICA8dHI+CiAgICAgICAgICAgICAgICAgIDx0ZD5BY2Nlc3NpYmlsaXR5PC90ZD4KICAgICAgICAgICAgICAgICAgPHRkPlBsYW5uZWQ8L3RkPgogICAgICAgICAgICAgICAgICA8dGQ+SGlnaDwvdGQ+CiAgICAgICAgICAgICAgICA8L3RyPgogICAgICAgICAgICAgICAgPHRyPgogICAgICAgICAgICAgICAgICA8dGQ+RG9jdW1lbnRhdGlvbjwvdGQ+CiAgICAgICAgICAgICAgICAgIDx0ZD5JbiBQcm9ncmVzczwvdGQ+CiAgICAgICAgICAgICAgICAgIDx0ZD5Mb3c8L3RkPgogICAgICAgICAgICAgICAgPC90cj4KICAgICAgICAgICAgICA8L3Rib2R5PgogICAgICAgICAgICA8L3RhYmxlPgogICAgICAgICAgYCl9fQogICAgICA+CiAgICAgICAgPGRlZXMtd29ya3NwYWNlLW1hcmtkb3dub3V0bGV0PjwvZGVlcy13b3Jrc3BhY2UtbWFya2Rvd25vdXRsZXQ+CiAgICAgIDwvZGVlcy1wYW5lbD4KCiAgICAgIDwhLS0gRGVtbyA2OiBCbG9ja3F1b3RlcyAmIEFsZXJ0cyAtLT4KICAgICAgPGRlZXMtcGFuZWwKICAgICAgICAudGl0bGU9JHsiQmxvY2txdW90ZXMgJiBBbGVydHMifQogICAgICAgIC5zdWJ0aXRsZT0keyJRdW90ZXMgYW5kIEdpdEh1Yi1zdHlsZSBhbGVydHMifQogICAgICAgIC5ydW5BZnRlclJlbmRlcj0ke2FzeW5jIHQ9Pnthd2FpdCB0LnF1ZXJ5U2VsZWN0b3IoImRlZXMtd29ya3NwYWNlLW1hcmtkb3dub3V0bGV0Iik/LnVwZGF0ZUh0bWxUZXh0KGAKICAgICAgICAgICAgPGJsb2NrcXVvdGU+CiAgICAgICAgICAgICAgPHA+VGhpcyBpcyBhIHN0YW5kYXJkIGJsb2NrcXVvdGUuIEl0J3MgZ3JlYXQgZm9yIGhpZ2hsaWdodGluZyBpbXBvcnRhbnQgaW5mb3JtYXRpb24gb3IgcXVvdGVzIGZyb20gb3RoZXIgc291cmNlcy48L3A+CiAgICAgICAgICAgIDwvYmxvY2txdW90ZT4KCiAgICAgICAgICAgIDxkaXYgY2xhc3M9Im1hcmtkb3duLWFsZXJ0IG1hcmtkb3duLWFsZXJ0LW5vdGUiPgogICAgICAgICAgICAgIDxwPjxzdHJvbmc+Tm90ZTo8L3N0cm9uZz4gVGhpcyBpcyBhbiBpbmZvcm1hdGlvbmFsIG5vdGUgdG8gZHJhdyBhdHRlbnRpb24gdG8gaW1wb3J0YW50IGRldGFpbHMuPC9wPgogICAgICAgICAgICA8L2Rpdj4KCiAgICAgICAgICAgIDxkaXYgY2xhc3M9Im1hcmtkb3duLWFsZXJ0IG1hcmtkb3duLWFsZXJ0LXRpcCI+CiAgICAgICAgICAgICAgPHA+PHN0cm9uZz5UaXA6PC9zdHJvbmc+IEhlcmUncyBhIGhlbHBmdWwgdGlwIHRvIGltcHJvdmUgeW91ciB3b3JrZmxvdy48L3A+CiAgICAgICAgICAgIDwvZGl2PgoKICAgICAgICAgICAgPGRpdiBjbGFzcz0ibWFya2Rvd24tYWxlcnQgbWFya2Rvd24tYWxlcnQtaW1wb3J0YW50Ij4KICAgICAgICAgICAgICA8cD48c3Ryb25nPkltcG9ydGFudDo8L3N0cm9uZz4gVGhpcyBpbmZvcm1hdGlvbiBpcyBjcnVjaWFsIGZvciB1bmRlcnN0YW5kaW5nIHRoZSB0b3BpYy48L3A+CiAgICAgICAgICAgIDwvZGl2PgoKICAgICAgICAgICAgPGRpdiBjbGFzcz0ibWFya2Rvd24tYWxlcnQgbWFya2Rvd24tYWxlcnQtd2FybmluZyI+CiAgICAgICAgICAgICAgPHA+PHN0cm9uZz5XYXJuaW5nOjwvc3Ryb25nPiBCZSBjYXJlZnVsIHdoZW4gcGVyZm9ybWluZyB0aGlzIGFjdGlvbi48L3A+CiAgICAgICAgICAgIDwvZGl2PgoKICAgICAgICAgICAgPGRpdiBjbGFzcz0ibWFya2Rvd24tYWxlcnQgbWFya2Rvd24tYWxlcnQtY2F1dGlvbiI+CiAgICAgICAgICAgICAgPHA+PHN0cm9uZz5DYXV0aW9uOjwvc3Ryb25nPiBUaGlzIGFjdGlvbiBtYXkgaGF2ZSB1bmludGVuZGVkIGNvbnNlcXVlbmNlcy48L3A+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgYCl9fQogICAgICA+CiAgICAgICAgPGRlZXMtd29ya3NwYWNlLW1hcmtkb3dub3V0bGV0PjwvZGVlcy13b3Jrc3BhY2UtbWFya2Rvd25vdXRsZXQ+CiAgICAgIDwvZGVlcy1wYW5lbD4KCiAgICAgIDwhLS0gRGVtbyA3OiBGdWxsIERvY3VtZW50IC0tPgogICAgICA8ZGVlcy1wYW5lbAogICAgICAgIC50aXRsZT0keyJGdWxsIERvY3VtZW50In0KICAgICAgICAuc3VidGl0bGU9JHsiQSBjb21wbGV0ZSBtYXJrZG93biBkb2N1bWVudCBleGFtcGxlIn0KICAgICAgICAucnVuQWZ0ZXJSZW5kZXI9JHthc3luYyB0PT57YXdhaXQgdC5xdWVyeVNlbGVjdG9yKCJkZWVzLXdvcmtzcGFjZS1tYXJrZG93bm91dGxldCIpPy51cGRhdGVIdG1sVGV4dChgCiAgICAgICAgICAgIDxoMT5HZXR0aW5nIFN0YXJ0ZWQgR3VpZGU8L2gxPgogICAgICAgICAgICA8cD5XZWxjb21lIHRvIHRoZSA8c3Ryb25nPmRlZXMtY2F0YWxvZzwvc3Ryb25nPiBjb21wb25lbnQgbGlicmFyeS4gVGhpcyBndWlkZSB3aWxsIGhlbHAgeW91IGdldCB1cCBhbmQgcnVubmluZyBxdWlja2x5LjwvcD4KCiAgICAgICAgICAgIDxoMj5JbnN0YWxsYXRpb248L2gyPgogICAgICAgICAgICA8cD5JbnN0YWxsIHRoZSBwYWNrYWdlIHVzaW5nIHlvdXIgcHJlZmVycmVkIHBhY2thZ2UgbWFuYWdlcjo8L3A+CiAgICAgICAgICAgIDxwcmU+PGNvZGU+PHNwYW4gY2xhc3M9ImhsanMtY29tbWVudCI+IyBVc2luZyBwbnBtIChyZWNvbW1lbmRlZCk8L3NwYW4+CnBucG0gYWRkIEBkZXNpZ24uZXN0YXRlL2RlZXMtY2F0YWxvZwoKPHNwYW4gY2xhc3M9ImhsanMtY29tbWVudCI+IyBVc2luZyBucG08L3NwYW4+Cm5wbSBpbnN0YWxsIEBkZXNpZ24uZXN0YXRlL2RlZXMtY2F0YWxvZzwvY29kZT48L3ByZT4KCiAgICAgICAgICAgIDxoMj5CYXNpYyBVc2FnZTwvaDI+CiAgICAgICAgICAgIDxwPkltcG9ydCBhbmQgdXNlIGNvbXBvbmVudHMgaW4geW91ciBUeXBlU2NyaXB0IGZpbGVzOjwvcD4KICAgICAgICAgICAgPHByZT48Y29kZT48c3BhbiBjbGFzcz0iaGxqcy1rZXl3b3JkIj5pbXBvcnQ8L3NwYW4+IHsgRGVlc0J1dHRvbiB9IDxzcGFuIGNsYXNzPSJobGpzLWtleXdvcmQiPmZyb208L3NwYW4+IDxzcGFuIGNsYXNzPSJobGpzLXN0cmluZyI+J0BkZXNpZ24uZXN0YXRlL2RlZXMtY2F0YWxvZyc8L3NwYW4+OwoKPHNwYW4gY2xhc3M9ImhsanMtY29tbWVudCI+Ly8gVXNlIGluIHlvdXIgdGVtcGxhdGVzPC9zcGFuPgpodG1sXGAmbHQ7ZGVlcy1idXR0b24mZ3Q7Q2xpY2sgbWUmbHQ7L2RlZXMtYnV0dG9uJmd0O1xgPC9jb2RlPjwvcHJlPgoKICAgICAgICAgICAgPGRpdiBjbGFzcz0ibWFya2Rvd24tYWxlcnQgbWFya2Rvd24tYWxlcnQtdGlwIj4KICAgICAgICAgICAgICA8cD48c3Ryb25nPlRpcDo8L3N0cm9uZz4gQ2hlY2sgdGhlIGRlbW8gc2hvd2Nhc2UgZm9yIGxpdmUgZXhhbXBsZXMgb2YgYWxsIGNvbXBvbmVudHMuPC9wPgogICAgICAgICAgICA8L2Rpdj4KCiAgICAgICAgICAgIDxoMj5BdmFpbGFibGUgQ29tcG9uZW50czwvaDI+CiAgICAgICAgICAgIDx0YWJsZT4KICAgICAgICAgICAgICA8dGhlYWQ+CiAgICAgICAgICAgICAgICA8dHI+CiAgICAgICAgICAgICAgICAgIDx0aD5Db21wb25lbnQ8L3RoPgogICAgICAgICAgICAgICAgICA8dGg+RGVzY3JpcHRpb248L3RoPgogICAgICAgICAgICAgICAgPC90cj4KICAgICAgICAgICAgICA8L3RoZWFkPgogICAgICAgICAgICAgIDx0Ym9keT4KICAgICAgICAgICAgICAgIDx0cj4KICAgICAgICAgICAgICAgICAgPHRkPjxjb2RlPmRlZXMtYnV0dG9uPC9jb2RlPjwvdGQ+CiAgICAgICAgICAgICAgICAgIDx0ZD5QcmltYXJ5IGJ1dHRvbiBjb21wb25lbnQ8L3RkPgogICAgICAgICAgICAgICAgPC90cj4KICAgICAgICAgICAgICAgIDx0cj4KICAgICAgICAgICAgICAgICAgPHRkPjxjb2RlPmRlZXMtaW5wdXQtdGV4dDwvY29kZT48L3RkPgogICAgICAgICAgICAgICAgICA8dGQ+VGV4dCBpbnB1dCBmaWVsZDwvdGQ+CiAgICAgICAgICAgICAgICA8L3RyPgogICAgICAgICAgICAgICAgPHRyPgogICAgICAgICAgICAgICAgICA8dGQ+PGNvZGU+ZGVlcy10YWJsZTwvY29kZT48L3RkPgogICAgICAgICAgICAgICAgICA8dGQ+RGF0YSB0YWJsZSB3aXRoIHNvcnRpbmc8L3RkPgogICAgICAgICAgICAgICAgPC90cj4KICAgICAgICAgICAgICAgIDx0cj4KICAgICAgICAgICAgICAgICAgPHRkPjxjb2RlPmRlZXMtbW9kYWw8L2NvZGU+PC90ZD4KICAgICAgICAgICAgICAgICAgPHRkPk1vZGFsIGRpYWxvZzwvdGQ+CiAgICAgICAgICAgICAgICA8L3RyPgogICAgICAgICAgICAgIDwvdGJvZHk+CiAgICAgICAgICAgIDwvdGFibGU+CgogICAgICAgICAgICA8aDI+TmV4dCBTdGVwczwvaDI+CiAgICAgICAgICAgIDx1bD4KICAgICAgICAgICAgICA8bGk+RXhwbG9yZSB0aGUgPGEgaHJlZj0iIyI+Y29tcG9uZW50IGRvY3VtZW50YXRpb248L2E+PC9saT4KICAgICAgICAgICAgICA8bGk+Q2hlY2sgb3V0IHRoZSA8YSBocmVmPSIjIj50aGVtaW5nIGd1aWRlPC9hPjwvbGk+CiAgICAgICAgICAgICAgPGxpPkpvaW4gb3VyIDxhIGhyZWY9IiMiPmNvbW11bml0eSBEaXNjb3JkPC9hPjwvbGk+CiAgICAgICAgICAgIDwvdWw+CgogICAgICAgICAgICA8YmxvY2txdW90ZT4KICAgICAgICAgICAgICA8cD4iVGhlIGJlc3QgY29tcG9uZW50IGxpYnJhcnkgaXMgb25lIHRoYXQgZ2V0cyBvdXQgb2YgeW91ciB3YXkuIiBcdTIwMTQgRGVzaWduIFN5c3RlbXMgVGVhbTwvcD4KICAgICAgICAgICAgPC9ibG9ja3F1b3RlPgogICAgICAgICAgYCl9fQogICAgICA+CiAgICAgICAgPGRlZXMtd29ya3NwYWNlLW1hcmtkb3dub3V0bGV0PjwvZGVlcy13b3Jrc3BhY2UtbWFya2Rvd25vdXRsZXQ+CiAgICAgIDwvZGVlcy1wYW5lbD4KICAgIDwvZGl2PgogIDwvZGVlcy1kZW1vd3JhcHBlcj4KYH0pO3ZhciBRVXQsSlV0LFR4dCxMeHQ9YigoKT0+e3VlKCk7cWUoKTtfeHQoKTtRVXQ9ZnVuY3Rpb24odCxlLGEsaSxyLHMpe2Z1bmN0aW9uIG4oeCl7aWYoeCE9PXZvaWQgMCYmdHlwZW9mIHghPSJmdW5jdGlvbiIpdGhyb3cgbmV3IFR5cGVFcnJvcigiRnVuY3Rpb24gZXhwZWN0ZWQiKTtyZXR1cm4geH1mb3IodmFyIG89aS5raW5kLGQ9bz09PSJnZXR0ZXIiPyJnZXQiOm89PT0ic2V0dGVyIj8ic2V0IjoidmFsdWUiLGM9IWUmJnQ/aS5zdGF0aWM/dDp0LnByb3RvdHlwZTpudWxsLGg9ZXx8KGM/T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihjLGkubmFtZSk6e30pLGwsZj0hMSxnPWEubGVuZ3RoLTE7Zz49MDtnLS0pe3ZhciB5PXt9O2Zvcih2YXIgdiBpbiBpKXlbdl09dj09PSJhY2Nlc3MiP3t9Omlbdl07Zm9yKHZhciB2IGluIGkuYWNjZXNzKXkuYWNjZXNzW3ZdPWkuYWNjZXNzW3ZdO3kuYWRkSW5pdGlhbGl6ZXI9ZnVuY3Rpb24oeCl7aWYoZil0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgYWRkIGluaXRpYWxpemVycyBhZnRlciBkZWNvcmF0aW9uIGhhcyBjb21wbGV0ZWQiKTtzLnB1c2gobih4fHxudWxsKSl9O3ZhciBtPSgwLGFbZ10pKG89PT0iYWNjZXNzb3IiP3tnZXQ6aC5nZXQsc2V0Omguc2V0fTpoW2RdLHkpO2lmKG89PT0iYWNjZXNzb3IiKXtpZihtPT09dm9pZCAwKWNvbnRpbnVlO2lmKG09PT1udWxsfHx0eXBlb2YgbSE9Im9iamVjdCIpdGhyb3cgbmV3IFR5cGVFcnJvcigiT2JqZWN0IGV4cGVjdGVkIik7KGw9bihtLmdldCkpJiYoaC5nZXQ9bCksKGw9bihtLnNldCkpJiYoaC5zZXQ9bCksKGw9bihtLmluaXQpKSYmci51bnNoaWZ0KGwpfWVsc2UobD1uKG0pKSYmKG89PT0iZmllbGQiP3IudW5zaGlmdChsKTpoW2RdPWwpfWMmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShjLGkubmFtZSxoKSxmPSEwfSxKVXQ9ZnVuY3Rpb24odCxlLGEpe2Zvcih2YXIgaT1hcmd1bWVudHMubGVuZ3RoPjIscj0wO3I8ZS5sZW5ndGg7cisrKWE9aT9lW3JdLmNhbGwodCxhKTplW3JdLmNhbGwodCk7cmV0dXJuIGk/YTp2b2lkIDB9LFR4dD0oKCk9PntsZXQgdD1bcGUoImRlZXMtd29ya3NwYWNlLW1hcmtkb3dub3V0bGV0IildLGUsYT1bXSxpLHI9eGU7dmFyIHM9Y2xhc3MgZXh0ZW5kcyBye3N0YXRpY3tpPXRoaXN9c3RhdGlje2xldCBuPXR5cGVvZiBTeW1ib2w9PSJmdW5jdGlvbiImJlN5bWJvbC5tZXRhZGF0YT9PYmplY3QuY3JlYXRlKHJbU3ltYm9sLm1ldGFkYXRhXT8/bnVsbCk6dm9pZCAwO1FVdChudWxsLGU9e3ZhbHVlOml9LHQse2tpbmQ6ImNsYXNzIixuYW1lOmkubmFtZSxtZXRhZGF0YTpufSxudWxsLGEpLHM9aT1lLnZhbHVlLG4mJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShpLFN5bWJvbC5tZXRhZGF0YSx7ZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITAsdmFsdWU6bn0pfXN0YXRpYyBkZW1vPUN4dDtzdGF0aWMgZGVtb0dyb3Vwcz1bIldvcmtzcGFjZSJdO3N0YXRpYyBzdHlsZXM9W0NlLHAuZGVmYXVsdFN0eWxlcyxRYAogICAgICA6aG9zdCB7CiAgICAgICAgZGlzcGxheTogYmxvY2s7CiAgICAgICAgZm9udC1mYW1pbHk6IC1hcHBsZS1zeXN0ZW0sIEJsaW5rTWFjU3lzdGVtRm9udCwgJ1NlZ29lIFVJJywgJ05vdG8gU2FucycsIEhlbHZldGljYSwgQXJpYWwsIHNhbnMtc2VyaWY7CiAgICAgICAgZm9udC1zaXplOiAxNnB4OwogICAgICAgIGxpbmUtaGVpZ2h0OiAxLjY7CiAgICAgICAgY29sb3I6ICR7cC5iZFRoZW1lKCIjMjQyOTJmIiwiI2U2ZWRmMyIpfTsKICAgICAgfQoKICAgICAgLm91dGxldCB7CiAgICAgICAgd29yZC13cmFwOiBicmVhay13b3JkOwogICAgICB9CgogICAgICAvKiBIZWFkaW5ncyAqLwogICAgICBoMSwgaDIsIGgzLCBoNCwgaDUsIGg2IHsKICAgICAgICBtYXJnaW4tdG9wOiAyNHB4OwogICAgICAgIG1hcmdpbi1ib3R0b206IDE2cHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDsKICAgICAgICBsaW5lLWhlaWdodDogMS4yNTsKICAgICAgICBjb2xvcjogJHtwLmJkVGhlbWUoIiMxZjIzMjgiLCIjZjBmNmZjIil9OwogICAgICB9CgogICAgICBoMSB7CiAgICAgICAgZm9udC1zaXplOiAyZW07CiAgICAgICAgcGFkZGluZy1ib3R0b206IDAuM2VtOwogICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAke3AuYmRUaGVtZSgiI2QxZDllMCIsIiMzMDM2M2QiKX07CiAgICAgIH0KCiAgICAgIGgyIHsKICAgICAgICBmb250LXNpemU6IDEuNWVtOwogICAgICAgIHBhZGRpbmctYm90dG9tOiAwLjNlbTsKICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHtwLmJkVGhlbWUoIiNkMWQ5ZTAiLCIjMzAzNjNkIil9OwogICAgICB9CgogICAgICBoMyB7CiAgICAgICAgZm9udC1zaXplOiAxLjI1ZW07CiAgICAgIH0KCiAgICAgIGg0IHsKICAgICAgICBmb250LXNpemU6IDFlbTsKICAgICAgfQoKICAgICAgaDUgewogICAgICAgIGZvbnQtc2l6ZTogMC44NzVlbTsKICAgICAgfQoKICAgICAgaDYgewogICAgICAgIGZvbnQtc2l6ZTogMC44NWVtOwogICAgICAgIGNvbG9yOiAke3AuYmRUaGVtZSgiIzY1NmQ3NiIsIiM4Yjk0OWUiKX07CiAgICAgIH0KCiAgICAgIC8qIFBhcmFncmFwaHMgYW5kIHRleHQgKi8KICAgICAgcCB7CiAgICAgICAgbWFyZ2luLXRvcDogMDsKICAgICAgICBtYXJnaW4tYm90dG9tOiAxNnB4OwogICAgICB9CgogICAgICAvKiBMaW5rcyAqLwogICAgICBhIHsKICAgICAgICBjb2xvcjogJHtwLmJkVGhlbWUoIiMwOTY5ZGEiLCIjNThhNmZmIil9OwogICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTsKICAgICAgfQoKICAgICAgYTpob3ZlciB7CiAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7CiAgICAgIH0KCiAgICAgIC8qIFN0cm9uZyBhbmQgZW1waGFzaXMgKi8KICAgICAgc3Ryb25nIHsKICAgICAgICBmb250LXdlaWdodDogNjAwOwogICAgICAgIGNvbG9yOiAke3AuYmRUaGVtZSgiIzFmMjMyOCIsIiNmMGY2ZmMiKX07CiAgICAgIH0KCiAgICAgIGVtIHsKICAgICAgICBmb250LXN0eWxlOiBpdGFsaWM7CiAgICAgIH0KCiAgICAgIC8qIExpc3RzICovCiAgICAgIHVsLCBvbCB7CiAgICAgICAgbWFyZ2luLXRvcDogMDsKICAgICAgICBtYXJnaW4tYm90dG9tOiAxNnB4OwogICAgICAgIHBhZGRpbmctbGVmdDogMmVtOwogICAgICB9CgogICAgICBsaSB7CiAgICAgICAgbWFyZ2luLXRvcDogNHB4OwogICAgICB9CgogICAgICBsaSArIGxpIHsKICAgICAgICBtYXJnaW4tdG9wOiA0cHg7CiAgICAgIH0KCiAgICAgIHVsIHVsLCB1bCBvbCwgb2wgdWwsIG9sIG9sIHsKICAgICAgICBtYXJnaW4tdG9wOiAwOwogICAgICAgIG1hcmdpbi1ib3R0b206IDA7CiAgICAgIH0KCiAgICAgIC8qIEJsb2NrcXVvdGVzICovCiAgICAgIGJsb2NrcXVvdGUgewogICAgICAgIG1hcmdpbjogMCAwIDE2cHggMDsKICAgICAgICBwYWRkaW5nOiAwIDFlbTsKICAgICAgICBjb2xvcjogJHtwLmJkVGhlbWUoIiM2NTZkNzYiLCIjOGI5NDllIil9OwogICAgICAgIGJvcmRlci1sZWZ0OiA0cHggc29saWQgJHtwLmJkVGhlbWUoIiNkMWQ5ZTAiLCIjMzAzNjNkIil9OwogICAgICB9CgogICAgICBibG9ja3F1b3RlID4gOmZpcnN0LWNoaWxkIHsKICAgICAgICBtYXJnaW4tdG9wOiAwOwogICAgICB9CgogICAgICBibG9ja3F1b3RlID4gOmxhc3QtY2hpbGQgewogICAgICAgIG1hcmdpbi1ib3R0b206IDA7CiAgICAgIH0KCiAgICAgIC8qIElubGluZSBjb2RlICovCiAgICAgIGNvZGUgewogICAgICAgIHBhZGRpbmc6IDAuMmVtIDAuNGVtOwogICAgICAgIG1hcmdpbjogMDsKICAgICAgICBmb250LXNpemU6IDg1JTsKICAgICAgICBmb250LWZhbWlseTogdWktbW9ub3NwYWNlLCBTRk1vbm8tUmVndWxhciwgJ1NGIE1vbm8nLCBNZW5sbywgQ29uc29sYXMsICdMaWJlcmF0aW9uIE1vbm8nLCBtb25vc3BhY2U7CiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHtwLmJkVGhlbWUoInJnYmEoMTc1LCAxODQsIDE5MywgMC4yKSIsInJnYmEoMTEwLCAxMTgsIDEyOSwgMC40KSIpfTsKICAgICAgICBib3JkZXItcmFkaXVzOiA2cHg7CiAgICAgICAgd2hpdGUtc3BhY2U6IGJyZWFrLXNwYWNlczsKICAgICAgfQoKICAgICAgLyogQ29kZSBibG9ja3MgKi8KICAgICAgcHJlIHsKICAgICAgICBtYXJnaW4tdG9wOiAwOwogICAgICAgIG1hcmdpbi1ib3R0b206IDE2cHg7CiAgICAgICAgcGFkZGluZzogMTZweDsKICAgICAgICBvdmVyZmxvdzogYXV0bzsKICAgICAgICBmb250LXNpemU6IDg1JTsKICAgICAgICBsaW5lLWhlaWdodDogMS40NTsKICAgICAgICBmb250LWZhbWlseTogdWktbW9ub3NwYWNlLCBTRk1vbm8tUmVndWxhciwgJ1NGIE1vbm8nLCBNZW5sbywgQ29uc29sYXMsICdMaWJlcmF0aW9uIE1vbm8nLCBtb25vc3BhY2U7CiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHtwLmJkVGhlbWUoIiNmNmY4ZmEiLCIjMTYxYjIyIil9OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDZweDsKICAgICAgICB3b3JkLXdyYXA6IG5vcm1hbDsKICAgICAgfQoKICAgICAgcHJlIGNvZGUgewogICAgICAgIGRpc3BsYXk6IGJsb2NrOwogICAgICAgIHBhZGRpbmc6IDA7CiAgICAgICAgbWFyZ2luOiAwOwogICAgICAgIG92ZXJmbG93OiB2aXNpYmxlOwogICAgICAgIGxpbmUtaGVpZ2h0OiBpbmhlcml0OwogICAgICAgIHdvcmQtd3JhcDogbm9ybWFsOwogICAgICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50OwogICAgICAgIGJvcmRlcjogMDsKICAgICAgICBmb250LXNpemU6IDEwMCU7CiAgICAgICAgd2hpdGUtc3BhY2U6IHByZTsKICAgICAgfQoKICAgICAgLyogVGFibGVzICovCiAgICAgIHRhYmxlIHsKICAgICAgICB3aWR0aDogbWF4LWNvbnRlbnQ7CiAgICAgICAgbWF4LXdpZHRoOiAxMDAlOwogICAgICAgIG1hcmdpbi10b3A6IDA7CiAgICAgICAgbWFyZ2luLWJvdHRvbTogMTZweDsKICAgICAgICBib3JkZXItc3BhY2luZzogMDsKICAgICAgICBib3JkZXItY29sbGFwc2U6IGNvbGxhcHNlOwogICAgICAgIG92ZXJmbG93OiBhdXRvOwogICAgICAgIGRpc3BsYXk6IGJsb2NrOwogICAgICB9CgogICAgICB0YWJsZSB0aCB7CiAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDsKICAgICAgICBwYWRkaW5nOiA2cHggMTNweDsKICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAke3AuYmRUaGVtZSgiI2QxZDllMCIsIiMzMDM2M2QiKX07CiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHtwLmJkVGhlbWUoIiNmNmY4ZmEiLCIjMTYxYjIyIil9OwogICAgICAgIGNvbG9yOiAke3AuYmRUaGVtZSgiIzFmMjMyOCIsIiNlNmVkZjMiKX07CiAgICAgIH0KCiAgICAgIHRhYmxlIHRkIHsKICAgICAgICBwYWRkaW5nOiA2cHggMTNweDsKICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAke3AuYmRUaGVtZSgiI2QxZDllMCIsIiMzMDM2M2QiKX07CiAgICAgICAgY29sb3I6ICR7cC5iZFRoZW1lKCIjMWYyMzI4IiwiI2U2ZWRmMyIpfTsKICAgICAgfQoKICAgICAgdGFibGUgdHIgewogICAgICAgIGJhY2tncm91bmQtY29sb3I6ICR7cC5iZFRoZW1lKCIjZmZmZmZmIiwiIzBkMTExNyIpfTsKICAgICAgICBib3JkZXItdG9wOiAxcHggc29saWQgJHtwLmJkVGhlbWUoIiNkMWQ5ZTAiLCIjMjEyNjJkIil9OwogICAgICB9CgogICAgICB0YWJsZSB0cjpudGgtY2hpbGQoMm4pIHsKICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAke3AuYmRUaGVtZSgiI2Y2ZjhmYSIsIiMxNjFiMjIiKX07CiAgICAgIH0KCiAgICAgIC8qIEhvcml6b250YWwgcnVsZXMgKi8KICAgICAgaHIgewogICAgICAgIGhlaWdodDogNHB4OwogICAgICAgIHBhZGRpbmc6IDA7CiAgICAgICAgbWFyZ2luOiAyNHB4IDA7CiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHtwLmJkVGhlbWUoIiNkMWQ5ZTAiLCIjMzAzNjNkIil9OwogICAgICAgIGJvcmRlcjogMDsKICAgICAgICBib3JkZXItcmFkaXVzOiAycHg7CiAgICAgIH0KCiAgICAgIC8qIEltYWdlcyAqLwogICAgICBpbWcgewogICAgICAgIG1heC13aWR0aDogMTAwJTsKICAgICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDZweDsKICAgICAgfQoKICAgICAgLyogVGFzayBsaXN0cyAqLwogICAgICAudGFzay1saXN0LWl0ZW0gewogICAgICAgIGxpc3Qtc3R5bGUtdHlwZTogbm9uZTsKICAgICAgfQoKICAgICAgLnRhc2stbGlzdC1pdGVtIGlucHV0IHsKICAgICAgICBtYXJnaW46IDAgMC4yZW0gMC4yNWVtIC0xLjRlbTsKICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlOwogICAgICB9CgogICAgICAvKiBEZWZpbml0aW9uIGxpc3RzICovCiAgICAgIGRsIHsKICAgICAgICBwYWRkaW5nOiAwOwogICAgICB9CgogICAgICBkbCBkdCB7CiAgICAgICAgcGFkZGluZzogMDsKICAgICAgICBtYXJnaW4tdG9wOiAxNnB4OwogICAgICAgIGZvbnQtc2l6ZTogMWVtOwogICAgICAgIGZvbnQtc3R5bGU6IGl0YWxpYzsKICAgICAgICBmb250LXdlaWdodDogNjAwOwogICAgICB9CgogICAgICBkbCBkZCB7CiAgICAgICAgcGFkZGluZzogMCAxNnB4OwogICAgICAgIG1hcmdpbi1ib3R0b206IDE2cHg7CiAgICAgIH0KCiAgICAgIC8qIEtleWJvYXJkIGlucHV0ICovCiAgICAgIGtiZCB7CiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrOwogICAgICAgIHBhZGRpbmc6IDNweCA1cHg7CiAgICAgICAgZm9udC1zaXplOiAxMXB4OwogICAgICAgIGZvbnQtZmFtaWx5OiB1aS1tb25vc3BhY2UsIFNGTW9uby1SZWd1bGFyLCAnU0YgTW9ubycsIE1lbmxvLCBDb25zb2xhcywgJ0xpYmVyYXRpb24gTW9ubycsIG1vbm9zcGFjZTsKICAgICAgICBsaW5lLWhlaWdodDogMTBweDsKICAgICAgICBjb2xvcjogJHtwLmJkVGhlbWUoIiMxZjIzMjgiLCIjZTZlZGYzIil9OwogICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7CiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHtwLmJkVGhlbWUoIiNmNmY4ZmEiLCIjMTYxYjIyIil9OwogICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICR7cC5iZFRoZW1lKCIjZDFkOWUwIiwiIzMwMzYzZCIpfTsKICAgICAgICBib3JkZXItcmFkaXVzOiA2cHg7CiAgICAgICAgYm94LXNoYWRvdzogaW5zZXQgMCAtMXB4IDAgJHtwLmJkVGhlbWUoIiNkMWQ5ZTAiLCIjMzAzNjNkIil9OwogICAgICB9CgogICAgICAvKiBGb290bm90ZXMgKi8KICAgICAgLmZvb3Rub3RlcyB7CiAgICAgICAgZm9udC1zaXplOiAxMnB4OwogICAgICAgIGNvbG9yOiAke3AuYmRUaGVtZSgiIzY1NmQ3NiIsIiM4Yjk0OWUiKX07CiAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICR7cC5iZFRoZW1lKCIjZDFkOWUwIiwiIzMwMzYzZCIpfTsKICAgICAgICBwYWRkaW5nLXRvcDogMTZweDsKICAgICAgICBtYXJnaW4tdG9wOiAzMnB4OwogICAgICB9CgogICAgICAvKiBBbGVydHMvQWRtb25pdGlvbnMgKi8KICAgICAgLm1hcmtkb3duLWFsZXJ0IHsKICAgICAgICBwYWRkaW5nOiA4cHggMTZweDsKICAgICAgICBtYXJnaW4tYm90dG9tOiAxNnB4OwogICAgICAgIGJvcmRlci1sZWZ0OiA0cHggc29saWQ7CiAgICAgICAgYm9yZGVyLXJhZGl1czogNnB4OwogICAgICB9CgogICAgICAubWFya2Rvd24tYWxlcnQtbm90ZSB7CiAgICAgICAgYm9yZGVyLWNvbG9yOiAke3AuYmRUaGVtZSgiIzA5NjlkYSIsIiM1OGE2ZmYiKX07CiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHtwLmJkVGhlbWUoInJnYmEoOSwgMTA1LCAyMTgsIDAuMSkiLCJyZ2JhKDU2LCAxMzksIDI1MywgMC4xKSIpfTsKICAgICAgfQoKICAgICAgLm1hcmtkb3duLWFsZXJ0LXdhcm5pbmcgewogICAgICAgIGJvcmRlci1jb2xvcjogJHtwLmJkVGhlbWUoIiNiZjg3MDAiLCIjZDI5OTIyIil9OwogICAgICAgIGJhY2tncm91bmQtY29sb3I6ICR7cC5iZFRoZW1lKCJyZ2JhKDE5MSwgMTM1LCAwLCAwLjEpIiwicmdiYSgxODcsIDEyOCwgOSwgMC4xKSIpfTsKICAgICAgfQoKICAgICAgLm1hcmtkb3duLWFsZXJ0LWltcG9ydGFudCB7CiAgICAgICAgYm9yZGVyLWNvbG9yOiAke3AuYmRUaGVtZSgiIzgyNTBkZiIsIiNhMzcxZjciKX07CiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHtwLmJkVGhlbWUoInJnYmEoMTMwLCA4MCwgMjIzLCAwLjEpIiwicmdiYSgxNjMsIDExMywgMjQ3LCAwLjEpIil9OwogICAgICB9CgogICAgICAubWFya2Rvd24tYWxlcnQtY2F1dGlvbiB7CiAgICAgICAgYm9yZGVyLWNvbG9yOiAke3AuYmRUaGVtZSgiI2NmMjIyZSIsIiNmODUxNDkiKX07CiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHtwLmJkVGhlbWUoInJnYmEoMjA3LCAzNCwgNDYsIDAuMSkiLCJyZ2JhKDI0OCwgODEsIDczLCAwLjEpIil9OwogICAgICB9CgogICAgICAubWFya2Rvd24tYWxlcnQtdGlwIHsKICAgICAgICBib3JkZXItY29sb3I6ICR7cC5iZFRoZW1lKCIjMWE3ZjM3IiwiIzNmYjk1MCIpfTsKICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAke3AuYmRUaGVtZSgicmdiYSgyNiwgMTI3LCA1NSwgMC4xKSIsInJnYmEoNDYsIDE2MCwgNjcsIDAuMSkiKX07CiAgICAgIH0KCiAgICAgIC8qIFN5bnRheCBoaWdobGlnaHRpbmcgZm9yIGNvZGUgYmxvY2tzICovCiAgICAgIC5obGpzLWNvbW1lbnQsCiAgICAgIC5obGpzLXF1b3RlIHsKICAgICAgICBjb2xvcjogJHtwLmJkVGhlbWUoIiM2YTczN2QiLCIjOGI5NDllIil9OwogICAgICB9CgogICAgICAuaGxqcy1rZXl3b3JkLAogICAgICAuaGxqcy1zZWxlY3Rvci10YWcsCiAgICAgIC5obGpzLWFkZGl0aW9uIHsKICAgICAgICBjb2xvcjogJHtwLmJkVGhlbWUoIiNkNzNhNDkiLCIjZmY3YjcyIil9OwogICAgICB9CgogICAgICAuaGxqcy1udW1iZXIsCiAgICAgIC5obGpzLXN0cmluZywKICAgICAgLmhsanMtbWV0YSAuaGxqcy1tZXRhLXN0cmluZywKICAgICAgLmhsanMtbGl0ZXJhbCwKICAgICAgLmhsanMtZG9jdGFnLAogICAgICAuaGxqcy1yZWdleHAgewogICAgICAgIGNvbG9yOiAke3AuYmRUaGVtZSgiIzAzMmY2MiIsIiNhNWQ2ZmYiKX07CiAgICAgIH0KCiAgICAgIC5obGpzLXRpdGxlLAogICAgICAuaGxqcy1zZWN0aW9uLAogICAgICAuaGxqcy1uYW1lLAogICAgICAuaGxqcy1zZWxlY3Rvci1pZCwKICAgICAgLmhsanMtc2VsZWN0b3ItY2xhc3MgewogICAgICAgIGNvbG9yOiAke3AuYmRUaGVtZSgiIzZmNDJjMSIsIiNkMmE4ZmYiKX07CiAgICAgIH0KCiAgICAgIC5obGpzLWF0dHJpYnV0ZSwKICAgICAgLmhsanMtYXR0ciwKICAgICAgLmhsanMtdmFyaWFibGUsCiAgICAgIC5obGpzLXRlbXBsYXRlLXZhcmlhYmxlLAogICAgICAuaGxqcy1jbGFzcyAuaGxqcy10aXRsZSwKICAgICAgLmhsanMtdHlwZSB7CiAgICAgICAgY29sb3I6ICR7cC5iZFRoZW1lKCIjMDA1Y2M1IiwiIzc5YzBmZiIpfTsKICAgICAgfQoKICAgICAgLmhsanMtc3ltYm9sLAogICAgICAuaGxqcy1idWxsZXQsCiAgICAgIC5obGpzLXN1YnN0LAogICAgICAuaGxqcy1tZXRhLAogICAgICAuaGxqcy1tZXRhIC5obGpzLWtleXdvcmQsCiAgICAgIC5obGpzLXNlbGVjdG9yLWF0dHIsCiAgICAgIC5obGpzLXNlbGVjdG9yLXBzZXVkbywKICAgICAgLmhsanMtbGluayB7CiAgICAgICAgY29sb3I6ICR7cC5iZFRoZW1lKCIjZTM2MjA5IiwiI2ZmYTY1NyIpfTsKICAgICAgfQoKICAgICAgLmhsanMtYnVpbHRfaW4sCiAgICAgIC5obGpzLWRlbGV0aW9uIHsKICAgICAgICBjb2xvcjogJHtwLmJkVGhlbWUoIiNiMzFkMjgiLCIjZmZhMTk4Iil9OwogICAgICB9CgogICAgICAuaGxqcy1mb3JtdWxhIHsKICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAke3AuYmRUaGVtZSgiI2Y2ZjhmYSIsIiMxNjFiMjIiKX07CiAgICAgIH0KCiAgICAgIC5obGpzLWVtcGhhc2lzIHsKICAgICAgICBmb250LXN0eWxlOiBpdGFsaWM7CiAgICAgIH0KCiAgICAgIC5obGpzLXN0cm9uZyB7CiAgICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7CiAgICAgIH0KICAgIGBdO291dGxldDtyZW5kZXIoKXtyZXR1cm4gd2AKICAgICAgPGRpdiBjbGFzcz0ib3V0bGV0Ij4KICAgICAgICA8aDE+TWFya2Rvd24gUHJldmlldzwvaDE+CiAgICAgICAgPHA+Q29udGVudCB3aWxsIGFwcGVhciBoZXJlIHdoZW4gbWFya2Rvd24gaXMgcGFyc2VkLjwvcD4KICAgICAgPC9kaXY+CiAgICBgfWFzeW5jIGZpcnN0VXBkYXRlZChuKXthd2FpdCBzdXBlci5maXJzdFVwZGF0ZWQobiksdGhpcy5vdXRsZXQ9dGhpcy5zaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3IoIi5vdXRsZXQiKX1hc3luYyB1cGRhdGVIdG1sVGV4dChuKXthd2FpdCB0aGlzLnVwZGF0ZUNvbXBsZXRlLHRoaXMub3V0bGV0fHwodGhpcy5vdXRsZXQ9dGhpcy5zaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3IoIi5vdXRsZXQiKSksdGhpcy5vdXRsZXQuaW5uZXJIVE1MPW59c3RhdGlje0pVdChpLGEpfX07cmV0dXJuIHM9aX0pKCl9KTt2YXIgJHh0PWIoKCk9PntMeHQoKX0pO3ZhciBBeHQ9YigoKT0+e1RqKCl9KTt2YXIgRHh0PWIoKCk9PnskaigpfSk7dmFyIEV4dD1iKCgpPT57Ynh0KCk7dnh0KCk7eXh0KCk7d3h0KCk7TXh0KCk7U3h0KCk7JHh0KCk7QXh0KCk7RHh0KCl9KTt2YXIgUHh0PWIoKCk9Pnt9KTt2YXIgSXh0PWIoKCk9PntQeHQoKX0pO3ZhciBOeHQ9YigoKT0+e3VlKCl9KTt2YXIgRnh0PWIoKCk9PntOeHQoKX0pO3ZhciBPeHQ9YigoKT0+e3VpKCk7cWUoKTt4ZnQoKTtBZnQoKTtXZnQoKTtybXQoKTskbXQoKTtFbXQoKTtxZ3QoKTtBYnQoKTtxdnQoKTtLdnQoKTt3dygpO0d5dCgpO2R4dCgpO0V4dCgpO0l4dCgpO0Z4dCgpfSk7dmFyIFJ4dCxCeHQ9YigoKT0+e1J4dD17bmFtZToiQGRlc2lnbi5lc3RhdGUvZGVlcy1jYXRhbG9nIix2ZXJzaW9uOiIzLjQzLjMiLGRlc2NyaXB0aW9uOiJBIGNvbXByZWhlbnNpdmUgbGlicmFyeSB0aGF0IHByb3ZpZGVzIGR5bmFtaWMgd2ViIGNvbXBvbmVudHMgZm9yIGJ1aWxkaW5nIHNvcGhpc3RpY2F0ZWQgYW5kIG1vZGVybiB3ZWIgYXBwbGljYXRpb25zIHVzaW5nIEphdmFTY3JpcHQgYW5kIFR5cGVTY3JpcHQuIn19KTt2YXIgc3I9e307R2Uoc3Ise0NhbnZhc1Bvb2w6KCk9Pk9sLERlZXNBY3Rpb25iYXI6KCk9PnNtdCxEZWVzQXBwdWk6KCk9PmNmdCxEZWVzQXBwdWlBY3Rpdml0eWxvZzooKT0+Yzl0LERlZXNBcHB1aUJhcjooKT0+azl0LERlZXNBcHB1aUJvdHRvbWJhcjooKT0+VDl0LERlZXNBcHB1aU1haW5jb250ZW50OigpPT5sZnQsRGVlc0FwcHVpTWFpbm1lbnU6KCk9PnRmdCxEZWVzQXBwdWlQcm9maWxlRHJvcGRvd246KCk9Pno5dCxEZWVzQXBwdWlTZWNvbmRhcnltZW51OigpPT5yZnQsRGVlc0FwcHVpVGFiczooKT0+b2Z0LERlZXNBdWRpb1ZpZXdlcjooKT0+T2J0LERlZXNCYWRnZTooKT0+ZG10LERlZXNCdXR0b246KCk9Plp1dCxEZWVzQnV0dG9uRXhpdDooKT0+emZ0LERlZXNCdXR0b25Hcm91cDooKT0+VGZ0LERlZXNDaGFydEFyZWE6KCk9PlJmdCxEZWVzQ2hhcnRMb2c6KCk9PlZmdCxEZWVzQ2hpcHM6KCk9PlVndCxEZWVzQ29udGV4dG1lbnU6KCk9PlV0LERlZXNEYXNoYm9hcmRncmlkOigpPT5kYnQsRGVlc0RhdGF2aWV3Q29kZWJveDooKT0+WmZ0LERlZXNEYXRhdmlld1N0YXR1c29iamVjdDooKT0+ZW10LERlZXNGb3JtOigpPT5XdXQsRGVlc0Zvcm1TdWJtaXQ6KCk9Pk54LERlZXNGb3JtYXR0aW5nTWVudTooKT0+aXcsRGVlc0hlYWRpbmc6KCk9PmdidCxEZWVzSGludDooKT0+Z210LERlZXNJY29uOigpPT5pOXQsRGVlc0ltYWdlVmlld2VyOigpPT5QYnQsRGVlc0lucHV0QmFzZTooKT0+WGUsRGVlc0lucHV0Q2hlY2tib3g6KCk9PkN4LERlZXNJbnB1dENvZGU6KCk9PiR4LERlZXNJbnB1dERhdGVwaWNrZXI6KCk9PkF4LERlZXNJbnB1dERyb3Bkb3duOigpPT5GeCxEZWVzSW5wdXRGaWxldXBsb2FkOigpPT5SeCxEZWVzSW5wdXRJYmFuOigpPT5xeCxEZWVzSW5wdXRMaXN0OigpPT5IbXQsRGVlc0lucHV0TXVsdGl0b2dnbGU6KCk9PlZ4LERlZXNJbnB1dFBob25lOigpPT5VeCxEZWVzSW5wdXRQcm9maWxlUGljdHVyZTooKT0+SGd0LERlZXNJbnB1dFF1YW50aXR5U2VsZWN0b3I6KCk9PkV4LERlZXNJbnB1dFJhZGlvZ3JvdXA6KCk9PlB4LERlZXNJbnB1dFJpY2h0ZXh0OigpPT5lZ3QsRGVlc0lucHV0VGFnczooKT0+b2d0LERlZXNJbnB1dFRleHQ6KCk9PkR4LERlZXNJbnB1dFRvZ2dsZTooKT0+V3gsRGVlc0lucHV0VHlwZWxpc3Q6KCk9Pkd4LERlZXNJbnB1dFd5c2l3eWc6KCk9PkFWLERlZXNMYWJlbDooKT0+Vjl0LERlZXNNb2JpbGVuYXZpZ2F0aW9uOigpPT5iZnQsRGVlc01vZGFsOigpPT5vMSxEZWVzUGFnaW5hdGlvbjooKT0+TWJ0LERlZXNQYW5lbDooKT0+RTl0LERlZXNQZGY6KCk9PmF2dCxEZWVzUGRmUHJldmlldzooKT0+Y3Z0LERlZXNQZGZWaWV3ZXI6KCk9PllidCxEZWVzUHJldmlldzooKT0+UWJ0LERlZXNQcm9ncmVzc2JhcjooKT0+TW10LERlZXNTZWFyY2hiYXI6KCk9PlF5dCxEZWVzU2hvcHBpbmdQcm9kdWN0Y2FyZDooKT0+dHV0LERlZXNTaW1wbGVBcHBEYXNoOigpPT5PeXQsRGVlc1NpbXBsZUxvZ2luOigpPT5qeXQsRGVlc1NsYXNoTWVudTooKT0+dHcsRGVlc1NwZWVjaGJ1YmJsZTooKT0+R3Z0LERlZXNTcGlubmVyOigpPT5rbXQsRGVlc1N0YXRzR3JpZDooKT0+WHV0LERlZXNTdGVwcGVyOigpPT5UYnQsRGVlc1RhYmxlOigpPT5aeCxEZWVzVGhlbWU6KCk9Pml4dCxEZWVzVGlsZUF1ZGlvOigpPT56dnQsRGVlc1RpbGVCYXNlOigpPT52YSxEZWVzVGlsZUZvbGRlcjooKT0+UnZ0LERlZXNUaWxlSW1hZ2U6KCk9PnZ2dCxEZWVzVGlsZU5vdGU6KCk9PkV2dCxEZWVzVGlsZVBkZjooKT0+b3csRGVlc1RpbGVWaWRlbzooKT0+VHZ0LERlZXNUb2FzdDooKT0+QnQsRGVlc1VwZGF0ZXI6KCk9Pk13LERlZXNWaWRlb1ZpZXdlcjooKT0+cWJ0LERlZXNXaW5kb3dDb250cm9sczooKT0+TTl0LERlZXNXaW5kb3dMYXllcjooKT0+ZmksRGVlc1dvcmtzcGFjZTooKT0+bXh0LERlZXNXb3Jrc3BhY2VCb3R0b21iYXI6KCk9PnV4dCxEZWVzV29ya3NwYWNlRGlmZkVkaXRvcjooKT0+Znh0LERlZXNXb3Jrc3BhY2VGaWxldHJlZTooKT0+aHh0LERlZXNXb3Jrc3BhY2VNYXJrZG93bjooKT0+enh0LERlZXNXb3Jrc3BhY2VNYXJrZG93bm91dGxldDooKT0+VHh0LERlZXNXb3Jrc3BhY2VNb25hY286KCk9Pmo5dCxEZWVzV29ya3NwYWNlVGVybWluYWw6KCk9PnlqLERlZXNXb3Jrc3BhY2VUZXJtaW5hbFByZXZpZXc6KCk9PnB4dCxEZWVzV3lzaXd5Z0Jsb2NrOigpPT5QZ3QsUFJPR1JBTU1JTkdfTEFOR1VBR0VTOigpPT5UOCxQZGZNYW5hZ2VyOigpPT5XcixQZXJmb3JtYW5jZU1vbml0b3I6KCk9PlJsLFRlcm1pbmFsVGFiTWFuYWdlcjooKT0+ZWQsVHlwZVNjcmlwdEludGVsbGlTZW5zZU1hbmFnZXI6KCk9PnNkLFZpZXdSZWdpc3RyeTooKT0+ejgsV2ViQ29udGFpbmVyRW52aXJvbm1lbnQ6KCk9Pm00LFd5c2l3eWdCbG9ja09wZXJhdGlvbnM6KCk9Pkw4LFd5c2l3eWdCbG9ja3M6KCk9PkEyLFd5c2l3eWdDb252ZXJ0ZXJzOigpPT54aSxXeXNpd3lnRHJhZ0Ryb3BIYW5kbGVyOigpPT5WOCxXeXNpd3lnRm9ybWF0dGluZzooKT0+SHMsV3lzaXd5Z0hpc3Rvcnk6KCk9Pmo4LFd5c2l3eWdJbnB1dEhhbmRsZXI6KCk9Pkg4LFd5c2l3eWdLZXlib2FyZEhhbmRsZXI6KCk9PnE4LFd5c2l3eWdNb2RhbE1hbmFnZXI6KCk9PkI4LFd5c2l3eWdTZWxlY3Rpb246KCk9PlJlLFd5c2l3eWdTaG9ydGN1dHM6KCk9PlYxLFpJbmRleFJlZ2lzdHJ5OigpPT5nZixjb2xvcnM6KCk9PlcwLGNvbW1pdGluZm86KCk9PlJ4dCxjb21wb25lbnRaSW5kZXg6KCk9PldCdCxkZWJvdW5jZTooKT0+Z1V0LGZvcm1hdEZpbGVTaXplOigpPT52VXQsZ2V0WkluZGV4OigpPT5VQnQsaWNvbnM6KCk9Pnp4LGlzSW5WaWV3cG9ydDooKT0+eVV0LHJlZ2lzdGVyQWxsQmxvY2tIYW5kbGVyczooKT0+TGd0LHRoZW1lRGVmYXVsdFN0eWxlczooKT0+Q2UsdGhlbWVEZWZhdWx0czooKT0+UW4sdGhyb3R0bGU6KCk9PmJVdCx0aWxlQmFzZVN0eWxlczooKT0+SjIsd3lzaXd5Z1N0eWxlczooKT0+elYsekluZGV4TGF5ZXJzOigpPT5yMix6SW5kZXhSZWdpc3RyeTooKT0+aDF9KTt2YXIgSHh0PWIoKCk9PntPeHQoKTtnaSgpO0J4dCgpfSk7dmFyIHUxLG5yPWIoKCk9Pnt1ZSgpO0h4dCgpO3UxPXJ0fSk7dmFyIFlyPWIoKCk9PntDYygpfSk7dmFyIHF4dD1iKCgpPT57fSk7dmFyIFZ4dD1iKCgpPT57fSk7dmFyIGp4dD1iKCgpPT57fSk7dmFyIFV4dD1iKCgpPT57fSk7dmFyIFd4dD1iKCgpPT57fSk7dmFyIEd4dD1iKCgpPT57fSk7dmFyIFl4dD17fTt2YXIgWnI9YigoKT0+e3F4dCgpO1Z4dCgpO2p4dCgpO1V4dCgpO1d4dCgpO0d4dCgpfSk7dmFyIFp4dD1iKCgpPT57WXIoKTtacigpfSk7dmFyIFh4dD1iKCgpPT57WXIoKTtacigpfSk7dmFyIEt4dD1iKCgpPT57WXIoKTtacigpfSk7dmFyIFF4dD1iKCgpPT57WXIoKTtacigpfSk7dmFyIEp4dD1iKCgpPT57WXIoKTtacigpfSk7dmFyIGV3dD1iKCgpPT57WXIoKTtacigpfSk7dmFyIHR3dD1iKCgpPT57WXIoKTtacigpfSk7dmFyIGF3dD1iKCgpPT57WXIoKTtacigpfSk7dmFyIGl3dD17fTt2YXIgcnd0PWIoKCk9PntaeHQoKTtYeHQoKTtLeHQoKTtReHQoKTtKeHQoKTtld3QoKTt0d3QoKTthd3QoKX0pO3ZhciBBaj1iKCgpPT57WXIoKTtacigpO3J3dCgpfSk7dmFyIGt3LG9yLE50LGt0LE1pLGVhLHN3dCxvZCx0YSxud3Qsb3d0LGx3dCx4byxTdyxjd3QsZHd0LGh3dCxwd3QsdXd0LGZ3dCxtd3QsZ3d0LGJ3dCx2NCx2d3QsSHUyLFhzPWIoYXN5bmMoKT0+e25yKCk7QWooKTtrdz1uZXcgdTEucGx1Z2lucy5zbWFydHN0YXRlLlNtYXJ0c3RhdGUsb3I9YXdhaXQga3cuZ2V0U3RhdGVQYXJ0KCJsb2dpbiIse2lkZW50aXR5Om51bGwsaXNMb2dnZWRJbjohMX0sInBlcnNpc3RlbnQiKSxOdD1hd2FpdCBrdy5nZXRTdGF0ZVBhcnQoImNvbm5lY3Rpb25zIix7Y29ubmVjdGlvbnM6W10sYWN0aXZlQ29ubmVjdGlvbklkOm51bGx9LCJzb2Z0Iiksa3Q9YXdhaXQga3cuZ2V0U3RhdGVQYXJ0KCJkYXRhIix7cHJvamVjdHM6W10sZ3JvdXBzOltdLHNlY3JldHM6W10scGlwZWxpbmVzOltdLHBpcGVsaW5lSm9iczpbXSxjdXJyZW50Sm9iTG9nOiIifSwic29mdCIpLE1pPWF3YWl0IGt3LmdldFN0YXRlUGFydCgidWkiLHthY3RpdmVWaWV3OiJvdmVydmlldyIsYXV0b1JlZnJlc2g6ITAscmVmcmVzaEludGVydmFsOjNlNH0pLGVhPSgpPT4oe2lkZW50aXR5Om9yLmdldFN0YXRlKCkuaWRlbnRpdHl9KSxzd3Q9b3IuY3JlYXRlQWN0aW9uKGFzeW5jKHQsZSk9Pnt0cnl7bGV0IGk9YXdhaXQgbmV3IHUxLnBsdWdpbnMudHlwZWRyZXF1ZXN0LlR5cGVkUmVxdWVzdCgiL3R5cGVkcmVxdWVzdCIsImFkbWluTG9naW4iKS5maXJlKHt1c2VybmFtZTplLnVzZXJuYW1lLHBhc3N3b3JkOmUucGFzc3dvcmR9KTtyZXR1cm57aWRlbnRpdHk6aS5pZGVudGl0eXx8bnVsbCxpc0xvZ2dlZEluOiEhaS5pZGVudGl0eX19Y2F0Y2goYSl7cmV0dXJuIGNvbnNvbGUuZXJyb3IoIkxvZ2luIGZhaWxlZDoiLGEpLHtpZGVudGl0eTpudWxsLGlzTG9nZ2VkSW46ITF9fX0pLG9kPW9yLmNyZWF0ZUFjdGlvbihhc3luYyB0PT57bGV0IGU9ZWEoKTt0cnl7ZS5pZGVudGl0eSYmYXdhaXQgbmV3IHUxLnBsdWdpbnMudHlwZWRyZXF1ZXN0LlR5cGVkUmVxdWVzdCgiL3R5cGVkcmVxdWVzdCIsImFkbWluTG9nb3V0IikuZmlyZSh7aWRlbnRpdHk6ZS5pZGVudGl0eX0pfWNhdGNoKGEpe2NvbnNvbGUuZXJyb3IoIkxvZ291dCBlcnJvcjoiLGEpfXJldHVybntpZGVudGl0eTpudWxsLGlzTG9nZ2VkSW46ITF9fSksdGE9TnQuY3JlYXRlQWN0aW9uKGFzeW5jIHQ9PntsZXQgZT1lYSgpO3RyeXtsZXQgaT1hd2FpdCBuZXcgdTEucGx1Z2lucy50eXBlZHJlcXVlc3QuVHlwZWRSZXF1ZXN0KCIvdHlwZWRyZXF1ZXN0IiwiZ2V0Q29ubmVjdGlvbnMiKS5maXJlKHtpZGVudGl0eTplLmlkZW50aXR5fSk7cmV0dXJuey4uLnQuZ2V0U3RhdGUoKSxjb25uZWN0aW9uczppLmNvbm5lY3Rpb25zfX1jYXRjaChhKXtyZXR1cm4gY29uc29sZS5lcnJvcigiRmFpbGVkIHRvIGZldGNoIGNvbm5lY3Rpb25zOiIsYSksdC5nZXRTdGF0ZSgpfX0pLG53dD1OdC5jcmVhdGVBY3Rpb24oYXN5bmModCxlKT0+e2xldCBhPWVhKCk7dHJ5e2F3YWl0IG5ldyB1MS5wbHVnaW5zLnR5cGVkcmVxdWVzdC5UeXBlZFJlcXVlc3QoIi90eXBlZHJlcXVlc3QiLCJjcmVhdGVDb25uZWN0aW9uIikuZmlyZSh7aWRlbnRpdHk6YS5pZGVudGl0eSwuLi5lfSk7bGV0IHM9YXdhaXQgbmV3IHUxLnBsdWdpbnMudHlwZWRyZXF1ZXN0LlR5cGVkUmVxdWVzdCgiL3R5cGVkcmVxdWVzdCIsImdldENvbm5lY3Rpb25zIikuZmlyZSh7aWRlbnRpdHk6YS5pZGVudGl0eX0pO3JldHVybnsuLi50LmdldFN0YXRlKCksY29ubmVjdGlvbnM6cy5jb25uZWN0aW9uc319Y2F0Y2goaSl7cmV0dXJuIGNvbnNvbGUuZXJyb3IoIkZhaWxlZCB0byBjcmVhdGUgY29ubmVjdGlvbjoiLGkpLHQuZ2V0U3RhdGUoKX19KSxvd3Q9TnQuY3JlYXRlQWN0aW9uKGFzeW5jKHQsZSk9PntsZXQgYT1lYSgpO3RyeXtsZXQgcj1hd2FpdCBuZXcgdTEucGx1Z2lucy50eXBlZHJlcXVlc3QuVHlwZWRSZXF1ZXN0KCIvdHlwZWRyZXF1ZXN0IiwidGVzdENvbm5lY3Rpb24iKS5maXJlKHtpZGVudGl0eTphLmlkZW50aXR5LGNvbm5lY3Rpb25JZDplLmNvbm5lY3Rpb25JZH0pLG49YXdhaXQgbmV3IHUxLnBsdWdpbnMudHlwZWRyZXF1ZXN0LlR5cGVkUmVxdWVzdCgiL3R5cGVkcmVxdWVzdCIsImdldENvbm5lY3Rpb25zIikuZmlyZSh7aWRlbnRpdHk6YS5pZGVudGl0eX0pO3JldHVybnsuLi50LmdldFN0YXRlKCksY29ubmVjdGlvbnM6bi5jb25uZWN0aW9uc319Y2F0Y2goaSl7cmV0dXJuIGNvbnNvbGUuZXJyb3IoIkZhaWxlZCB0byB0ZXN0IGNvbm5lY3Rpb246IixpKSx0LmdldFN0YXRlKCl9fSksbHd0PU50LmNyZWF0ZUFjdGlvbihhc3luYyh0LGUpPT57bGV0IGE9ZWEoKTt0cnl7YXdhaXQgbmV3IHUxLnBsdWdpbnMudHlwZWRyZXF1ZXN0LlR5cGVkUmVxdWVzdCgiL3R5cGVkcmVxdWVzdCIsImRlbGV0ZUNvbm5lY3Rpb24iKS5maXJlKHtpZGVudGl0eTphLmlkZW50aXR5LGNvbm5lY3Rpb25JZDplLmNvbm5lY3Rpb25JZH0pO2xldCByPXQuZ2V0U3RhdGUoKTtyZXR1cm57Li4ucixjb25uZWN0aW9uczpyLmNvbm5lY3Rpb25zLmZpbHRlcihzPT5zLmlkIT09ZS5jb25uZWN0aW9uSWQpLGFjdGl2ZUNvbm5lY3Rpb25JZDpyLmFjdGl2ZUNvbm5lY3Rpb25JZD09PWUuY29ubmVjdGlvbklkP251bGw6ci5hY3RpdmVDb25uZWN0aW9uSWR9fWNhdGNoKGkpe3JldHVybiBjb25zb2xlLmVycm9yKCJGYWlsZWQgdG8gZGVsZXRlIGNvbm5lY3Rpb246IixpKSx0LmdldFN0YXRlKCl9fSkseG89a3QuY3JlYXRlQWN0aW9uKGFzeW5jKHQsZSk9PntsZXQgYT1lYSgpO3RyeXtsZXQgcj1hd2FpdCBuZXcgdTEucGx1Z2lucy50eXBlZHJlcXVlc3QuVHlwZWRSZXF1ZXN0KCIvdHlwZWRyZXF1ZXN0IiwiZ2V0UHJvamVjdHMiKS5maXJlKHtpZGVudGl0eTphLmlkZW50aXR5LGNvbm5lY3Rpb25JZDplLmNvbm5lY3Rpb25JZCxzZWFyY2g6ZS5zZWFyY2h9KTtyZXR1cm57Li4udC5nZXRTdGF0ZSgpLHByb2plY3RzOnIucHJvamVjdHN9fWNhdGNoKGkpe3JldHVybiBjb25zb2xlLmVycm9yKCJGYWlsZWQgdG8gZmV0Y2ggcHJvamVjdHM6IixpKSx0LmdldFN0YXRlKCl9fSksU3c9a3QuY3JlYXRlQWN0aW9uKGFzeW5jKHQsZSk9PntsZXQgYT1lYSgpO3RyeXtsZXQgcj1hd2FpdCBuZXcgdTEucGx1Z2lucy50eXBlZHJlcXVlc3QuVHlwZWRSZXF1ZXN0KCIvdHlwZWRyZXF1ZXN0IiwiZ2V0R3JvdXBzIikuZmlyZSh7aWRlbnRpdHk6YS5pZGVudGl0eSxjb25uZWN0aW9uSWQ6ZS5jb25uZWN0aW9uSWQsc2VhcmNoOmUuc2VhcmNofSk7cmV0dXJuey4uLnQuZ2V0U3RhdGUoKSxncm91cHM6ci5ncm91cHN9fWNhdGNoKGkpe3JldHVybiBjb25zb2xlLmVycm9yKCJGYWlsZWQgdG8gZmV0Y2ggZ3JvdXBzOiIsaSksdC5nZXRTdGF0ZSgpfX0pLGN3dD1rdC5jcmVhdGVBY3Rpb24oYXN5bmModCxlKT0+e2xldCBhPWVhKCk7dHJ5e2xldCByPWF3YWl0IG5ldyB1MS5wbHVnaW5zLnR5cGVkcmVxdWVzdC5UeXBlZFJlcXVlc3QoIi90eXBlZHJlcXVlc3QiLCJnZXRTZWNyZXRzIikuZmlyZSh7aWRlbnRpdHk6YS5pZGVudGl0eSxjb25uZWN0aW9uSWQ6ZS5jb25uZWN0aW9uSWQsc2NvcGU6ZS5zY29wZSxzY29wZUlkOmUuc2NvcGVJZH0pO3JldHVybnsuLi50LmdldFN0YXRlKCksc2VjcmV0czpyLnNlY3JldHN9fWNhdGNoKGkpe3JldHVybiBjb25zb2xlLmVycm9yKCJGYWlsZWQgdG8gZmV0Y2ggc2VjcmV0czoiLGkpLHQuZ2V0U3RhdGUoKX19KSxkd3Q9a3QuY3JlYXRlQWN0aW9uKGFzeW5jKHQsZSk9PntsZXQgYT1lYSgpO3RyeXthd2FpdCBuZXcgdTEucGx1Z2lucy50eXBlZHJlcXVlc3QuVHlwZWRSZXF1ZXN0KCIvdHlwZWRyZXF1ZXN0IiwiY3JlYXRlU2VjcmV0IikuZmlyZSh7aWRlbnRpdHk6YS5pZGVudGl0eSwuLi5lfSk7bGV0IHM9YXdhaXQgbmV3IHUxLnBsdWdpbnMudHlwZWRyZXF1ZXN0LlR5cGVkUmVxdWVzdCgiL3R5cGVkcmVxdWVzdCIsImdldFNlY3JldHMiKS5maXJlKHtpZGVudGl0eTphLmlkZW50aXR5LGNvbm5lY3Rpb25JZDplLmNvbm5lY3Rpb25JZCxzY29wZTplLnNjb3BlLHNjb3BlSWQ6ZS5zY29wZUlkfSk7cmV0dXJuey4uLnQuZ2V0U3RhdGUoKSxzZWNyZXRzOnMuc2VjcmV0c319Y2F0Y2goaSl7cmV0dXJuIGNvbnNvbGUuZXJyb3IoIkZhaWxlZCB0byBjcmVhdGUgc2VjcmV0OiIsaSksdC5nZXRTdGF0ZSgpfX0pLGh3dD1rdC5jcmVhdGVBY3Rpb24oYXN5bmModCxlKT0+e2xldCBhPWVhKCk7dHJ5e2F3YWl0IG5ldyB1MS5wbHVnaW5zLnR5cGVkcmVxdWVzdC5UeXBlZFJlcXVlc3QoIi90eXBlZHJlcXVlc3QiLCJ1cGRhdGVTZWNyZXQiKS5maXJlKHtpZGVudGl0eTphLmlkZW50aXR5LC4uLmV9KTtsZXQgcz1hd2FpdCBuZXcgdTEucGx1Z2lucy50eXBlZHJlcXVlc3QuVHlwZWRSZXF1ZXN0KCIvdHlwZWRyZXF1ZXN0IiwiZ2V0U2VjcmV0cyIpLmZpcmUoe2lkZW50aXR5OmEuaWRlbnRpdHksY29ubmVjdGlvbklkOmUuY29ubmVjdGlvbklkLHNjb3BlOmUuc2NvcGUsc2NvcGVJZDplLnNjb3BlSWR9KTtyZXR1cm57Li4udC5nZXRTdGF0ZSgpLHNlY3JldHM6cy5zZWNyZXRzfX1jYXRjaChpKXtyZXR1cm4gY29uc29sZS5lcnJvcigiRmFpbGVkIHRvIHVwZGF0ZSBzZWNyZXQ6IixpKSx0LmdldFN0YXRlKCl9fSkscHd0PWt0LmNyZWF0ZUFjdGlvbihhc3luYyh0LGUpPT57bGV0IGE9ZWEoKTt0cnl7YXdhaXQgbmV3IHUxLnBsdWdpbnMudHlwZWRyZXF1ZXN0LlR5cGVkUmVxdWVzdCgiL3R5cGVkcmVxdWVzdCIsImRlbGV0ZVNlY3JldCIpLmZpcmUoe2lkZW50aXR5OmEuaWRlbnRpdHksLi4uZX0pO2xldCByPXQuZ2V0U3RhdGUoKTtyZXR1cm57Li4ucixzZWNyZXRzOnIuc2VjcmV0cy5maWx0ZXIocz0+cy5rZXkhPT1lLmtleSl9fWNhdGNoKGkpe3JldHVybiBjb25zb2xlLmVycm9yKCJGYWlsZWQgdG8gZGVsZXRlIHNlY3JldDoiLGkpLHQuZ2V0U3RhdGUoKX19KSx1d3Q9a3QuY3JlYXRlQWN0aW9uKGFzeW5jKHQsZSk9PntsZXQgYT1lYSgpO3RyeXtsZXQgcj1hd2FpdCBuZXcgdTEucGx1Z2lucy50eXBlZHJlcXVlc3QuVHlwZWRSZXF1ZXN0KCIvdHlwZWRyZXF1ZXN0IiwiZ2V0UGlwZWxpbmVzIikuZmlyZSh7aWRlbnRpdHk6YS5pZGVudGl0eSxjb25uZWN0aW9uSWQ6ZS5jb25uZWN0aW9uSWQscHJvamVjdElkOmUucHJvamVjdElkfSk7cmV0dXJuey4uLnQuZ2V0U3RhdGUoKSxwaXBlbGluZXM6ci5waXBlbGluZXN9fWNhdGNoKGkpe3JldHVybiBjb25zb2xlLmVycm9yKCJGYWlsZWQgdG8gZmV0Y2ggcGlwZWxpbmVzOiIsaSksdC5nZXRTdGF0ZSgpfX0pLGZ3dD1rdC5jcmVhdGVBY3Rpb24oYXN5bmModCxlKT0+e2xldCBhPWVhKCk7dHJ5e2xldCByPWF3YWl0IG5ldyB1MS5wbHVnaW5zLnR5cGVkcmVxdWVzdC5UeXBlZFJlcXVlc3QoIi90eXBlZHJlcXVlc3QiLCJnZXRQaXBlbGluZUpvYnMiKS5maXJlKHtpZGVudGl0eTphLmlkZW50aXR5LGNvbm5lY3Rpb25JZDplLmNvbm5lY3Rpb25JZCxwcm9qZWN0SWQ6ZS5wcm9qZWN0SWQscGlwZWxpbmVJZDplLnBpcGVsaW5lSWR9KTtyZXR1cm57Li4udC5nZXRTdGF0ZSgpLHBpcGVsaW5lSm9iczpyLmpvYnN9fWNhdGNoKGkpe3JldHVybiBjb25zb2xlLmVycm9yKCJGYWlsZWQgdG8gZmV0Y2ggcGlwZWxpbmUgam9iczoiLGkpLHQuZ2V0U3RhdGUoKX19KSxtd3Q9a3QuY3JlYXRlQWN0aW9uKGFzeW5jKHQsZSk9PntsZXQgYT1lYSgpO3RyeXthd2FpdCBuZXcgdTEucGx1Z2lucy50eXBlZHJlcXVlc3QuVHlwZWRSZXF1ZXN0KCIvdHlwZWRyZXF1ZXN0IiwicmV0cnlQaXBlbGluZSIpLmZpcmUoe2lkZW50aXR5OmEuaWRlbnRpdHksLi4uZX0pO2xldCBzPWF3YWl0IG5ldyB1MS5wbHVnaW5zLnR5cGVkcmVxdWVzdC5UeXBlZFJlcXVlc3QoIi90eXBlZHJlcXVlc3QiLCJnZXRQaXBlbGluZXMiKS5maXJlKHtpZGVudGl0eTphLmlkZW50aXR5LGNvbm5lY3Rpb25JZDplLmNvbm5lY3Rpb25JZCxwcm9qZWN0SWQ6ZS5wcm9qZWN0SWR9KTtyZXR1cm57Li4udC5nZXRTdGF0ZSgpLHBpcGVsaW5lczpzLnBpcGVsaW5lc319Y2F0Y2goaSl7cmV0dXJuIGNvbnNvbGUuZXJyb3IoIkZhaWxlZCB0byByZXRyeSBwaXBlbGluZToiLGkpLHQuZ2V0U3RhdGUoKX19KSxnd3Q9a3QuY3JlYXRlQWN0aW9uKGFzeW5jKHQsZSk9PntsZXQgYT1lYSgpO3RyeXthd2FpdCBuZXcgdTEucGx1Z2lucy50eXBlZHJlcXVlc3QuVHlwZWRSZXF1ZXN0KCIvdHlwZWRyZXF1ZXN0IiwiY2FuY2VsUGlwZWxpbmUiKS5maXJlKHtpZGVudGl0eTphLmlkZW50aXR5LC4uLmV9KTtsZXQgcz1hd2FpdCBuZXcgdTEucGx1Z2lucy50eXBlZHJlcXVlc3QuVHlwZWRSZXF1ZXN0KCIvdHlwZWRyZXF1ZXN0IiwiZ2V0UGlwZWxpbmVzIikuZmlyZSh7aWRlbnRpdHk6YS5pZGVudGl0eSxjb25uZWN0aW9uSWQ6ZS5jb25uZWN0aW9uSWQscHJvamVjdElkOmUucHJvamVjdElkfSk7cmV0dXJuey4uLnQuZ2V0U3RhdGUoKSxwaXBlbGluZXM6cy5waXBlbGluZXN9fWNhdGNoKGkpe3JldHVybiBjb25zb2xlLmVycm9yKCJGYWlsZWQgdG8gY2FuY2VsIHBpcGVsaW5lOiIsaSksdC5nZXRTdGF0ZSgpfX0pLGJ3dD1rdC5jcmVhdGVBY3Rpb24oYXN5bmModCxlKT0+e2xldCBhPWVhKCk7dHJ5e2xldCByPWF3YWl0IG5ldyB1MS5wbHVnaW5zLnR5cGVkcmVxdWVzdC5UeXBlZFJlcXVlc3QoIi90eXBlZHJlcXVlc3QiLCJnZXRKb2JMb2ciKS5maXJlKHtpZGVudGl0eTphLmlkZW50aXR5LC4uLmV9KTtyZXR1cm57Li4udC5nZXRTdGF0ZSgpLGN1cnJlbnRKb2JMb2c6ci5sb2d9fWNhdGNoKGkpe3JldHVybiBjb25zb2xlLmVycm9yKCJGYWlsZWQgdG8gZmV0Y2ggam9iIGxvZzoiLGkpLHQuZ2V0U3RhdGUoKX19KSx2ND1NaS5jcmVhdGVBY3Rpb24oYXN5bmModCxlKT0+KHsuLi50LmdldFN0YXRlKCksYWN0aXZlVmlldzplLnZpZXd9KSksdnd0PU1pLmNyZWF0ZUFjdGlvbihhc3luYyB0PT57bGV0IGU9dC5nZXRTdGF0ZSgpO3JldHVybnsuLi5lLGF1dG9SZWZyZXNoOiFlLmF1dG9SZWZyZXNofX0pLEh1Mj1NaS5jcmVhdGVBY3Rpb24oYXN5bmModCxlKT0+KHsuLi50LmdldFN0YXRlKCkscmVmcmVzaEludGVydmFsOmUuaW50ZXJ2YWx9KSl9KTt2YXIgRWEseXd0PWIoKCk9Pnt1ZSgpO0VhPVFgCiAgOmhvc3QgewogICAgZGlzcGxheTogYmxvY2s7CiAgICBtYXJnaW46IGF1dG87CiAgICBtYXgtd2lkdGg6IDEyODBweDsKICAgIHBhZGRpbmc6IDE2cHggMTZweDsKICAgIGNvbG9yOiAjZmZmOwogICAgYm94LXNpemluZzogYm9yZGVyLWJveDsKICB9CiAgLnZpZXctdGl0bGUgewogICAgZm9udC1zaXplOiAyNHB4OwogICAgZm9udC13ZWlnaHQ6IDYwMDsKICAgIG1hcmdpbi1ib3R0b206IDI0cHg7CiAgfQogIC52aWV3LWRlc2NyaXB0aW9uIHsKICAgIGZvbnQtc2l6ZTogMTRweDsKICAgIGNvbG9yOiAjOTk5OwogICAgbWFyZ2luLWJvdHRvbTogMjRweDsKICB9CiAgLnRvb2xiYXIgewogICAgZGlzcGxheTogZmxleDsKICAgIGdhcDogMTZweDsKICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICBtYXJnaW4tYm90dG9tOiAyNHB4OwogICAgZmxleC13cmFwOiB3cmFwOwogIH0KYH0pO3ZhciBNbz1iKCgpPT57eXd0KCl9KTt2YXIga3d0PXt9O0dlKGt3dCx7R2l0b3BzVmlld092ZXJ2aWV3OigpPT5Rc30pO3ZhciB4d3Qsd3d0LE13dCx6d3QsS3MsRGosRWosUXMsUGo9Yihhc3luYygpPT57bnIoKTthd2FpdCBYcygpO01vKCk7dWUoKTt6d3Q9W3BlKCJnaXRvcHMtdmlldy1vdmVydmlldyIpXTtRcz1jbGFzcyBleHRlbmRzKE13dD14ZSx3d3Q9W0ooKV0seHd0PVtKKCldLE13dCl7Y29uc3RydWN0b3IoKXtzdXBlcigpO1J0KHRoaXMsRGosamUoS3MsOCx0aGlzLHtjb25uZWN0aW9uczpbXSxhY3RpdmVDb25uZWN0aW9uSWQ6bnVsbH0pKSxqZShLcywxMSx0aGlzKTtSdCh0aGlzLEVqLGplKEtzLDEyLHRoaXMse3Byb2plY3RzOltdLGdyb3VwczpbXSxzZWNyZXRzOltdLHBpcGVsaW5lczpbXSxwaXBlbGluZUpvYnM6W10sY3VycmVudEpvYkxvZzoiIn0pKSxqZShLcywxNSx0aGlzKTthMSh0aGlzLCJfYXV0b1JlZnJlc2hIYW5kbGVyIik7bGV0IGE9TnQuc2VsZWN0KHI9PnIpLnN1YnNjcmliZShyPT57dGhpcy5jb25uZWN0aW9uc1N0YXRlPXJ9KTt0aGlzLnJ4U3Vic2NyaXB0aW9ucy5wdXNoKGEpO2xldCBpPWt0LnNlbGVjdChyPT5yKS5zdWJzY3JpYmUocj0+e3RoaXMuZGF0YVN0YXRlPXJ9KTt0aGlzLnJ4U3Vic2NyaXB0aW9ucy5wdXNoKGkpLHRoaXMuX2F1dG9SZWZyZXNoSGFuZGxlcj0oKT0+dGhpcy5oYW5kbGVBdXRvUmVmcmVzaCgpLGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoImdpdG9wcy1hdXRvLXJlZnJlc2giLHRoaXMuX2F1dG9SZWZyZXNoSGFuZGxlcil9ZGlzY29ubmVjdGVkQ2FsbGJhY2soKXtzdXBlci5kaXNjb25uZWN0ZWRDYWxsYmFjaygpLGRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoImdpdG9wcy1hdXRvLXJlZnJlc2giLHRoaXMuX2F1dG9SZWZyZXNoSGFuZGxlcil9aGFuZGxlQXV0b1JlZnJlc2goKXtOdC5kaXNwYXRjaEFjdGlvbih0YSxudWxsKX1yZW5kZXIoKXtsZXQgYT10aGlzLmNvbm5lY3Rpb25zU3RhdGUuY29ubmVjdGlvbnMubGVuZ3RoLGk9dGhpcy5kYXRhU3RhdGUucHJvamVjdHMubGVuZ3RoLHI9dGhpcy5kYXRhU3RhdGUuZ3JvdXBzLmxlbmd0aCxzPXRoaXMuZGF0YVN0YXRlLnBpcGVsaW5lcy5sZW5ndGgsbj10aGlzLmRhdGFTdGF0ZS5waXBlbGluZXMuZmlsdGVyKGQ9PmQuc3RhdHVzPT09ImZhaWxlZCIpLmxlbmd0aCxvPVt7aWQ6ImNvbm5lY3Rpb25zIix0aXRsZToiQ29ubmVjdGlvbnMiLHZhbHVlOmEsdHlwZToibnVtYmVyIixpY29uOiJsdWNpZGU6cGx1ZyIsY29sb3I6IiMwMGFjZmYifSx7aWQ6InByb2plY3RzIix0aXRsZToiUHJvamVjdHMiLHZhbHVlOmksdHlwZToibnVtYmVyIixpY29uOiJsdWNpZGU6Zm9sZGVyR2l0MiIsY29sb3I6IiMwMGFjZmYifSx7aWQ6Imdyb3VwcyIsdGl0bGU6Ikdyb3VwcyIsdmFsdWU6cix0eXBlOiJudW1iZXIiLGljb246Imx1Y2lkZTp1c2VycyIsY29sb3I6IiMwMGFjZmYifSx7aWQ6InBpcGVsaW5lcyIsdGl0bGU6IlBpcGVsaW5lcyIsdmFsdWU6cyx0eXBlOiJudW1iZXIiLGljb246Imx1Y2lkZTpwbGF5Iixjb2xvcjoiIzAwYWNmZiJ9LHtpZDoiZmFpbGVkIix0aXRsZToiRmFpbGVkIFBpcGVsaW5lcyIsdmFsdWU6bix0eXBlOiJudW1iZXIiLGljb246Imx1Y2lkZTp0cmlhbmdsZUFsZXJ0Iixjb2xvcjpuPjA/IiNmZjQ0NDQiOiIjMDBmZjg4In1dO3JldHVybiB3YAogICAgICA8ZGl2IGNsYXNzPSJ2aWV3LXRpdGxlIj5PdmVydmlldzwvZGl2PgogICAgICA8ZGl2IGNsYXNzPSJ2aWV3LWRlc2NyaXB0aW9uIj5HaXRPcHMgZGFzaGJvYXJkIC0gbWFuYWdlIHlvdXIgR2l0ZWEgYW5kIEdpdExhYiBpbnN0YW5jZXM8L2Rpdj4KICAgICAgPGRlZXMtc3RhdHNncmlkIC50aWxlcz0ke299PjwvZGVlcy1zdGF0c2dyaWQ+CiAgICBgfX07S3M9STIoTXd0KSxEaj1uZXcgV2Vha01hcCxFaj1uZXcgV2Vha01hcCx2dChLcyw0LCJjb25uZWN0aW9uc1N0YXRlIix3d3QsUXMsRGopLHZ0KEtzLDQsImRhdGFTdGF0ZSIseHd0LFFzLEVqKSxRcz12dChLcywwLCJHaXRvcHNWaWV3T3ZlcnZpZXciLHp3dCxRcyksYTEoUXMsInN0eWxlcyIsW3AuZGVmYXVsdFN0eWxlcyxFYV0pLGplKEtzLDEsUXMpfSk7dmFyIFR3dD17fTtHZShUd3Qse0dpdG9wc1ZpZXdDb25uZWN0aW9uczooKT0+em99KTt2YXIgU3d0LEN3dCxfd3QsWWwsSWosem8sTmo9Yihhc3luYygpPT57bnIoKTthd2FpdCBYcygpO01vKCk7dWUoKTtfd3Q9W3BlKCJnaXRvcHMtdmlldy1jb25uZWN0aW9ucyIpXTt6bz1jbGFzcyBleHRlbmRzKEN3dD14ZSxTd3Q9W0ooKV0sQ3d0KXtjb25zdHJ1Y3Rvcigpe3N1cGVyKCk7UnQodGhpcyxJaixqZShZbCw4LHRoaXMse2Nvbm5lY3Rpb25zOltdLGFjdGl2ZUNvbm5lY3Rpb25JZDpudWxsfSkpLGplKFlsLDExLHRoaXMpO2ExKHRoaXMsIl9hdXRvUmVmcmVzaEhhbmRsZXIiKTtsZXQgYT1OdC5zZWxlY3QoaT0+aSkuc3Vic2NyaWJlKGk9Pnt0aGlzLmNvbm5lY3Rpb25zU3RhdGU9aX0pO3RoaXMucnhTdWJzY3JpcHRpb25zLnB1c2goYSksdGhpcy5fYXV0b1JlZnJlc2hIYW5kbGVyPSgpPT50aGlzLmhhbmRsZUF1dG9SZWZyZXNoKCksZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigiZ2l0b3BzLWF1dG8tcmVmcmVzaCIsdGhpcy5fYXV0b1JlZnJlc2hIYW5kbGVyKX1kaXNjb25uZWN0ZWRDYWxsYmFjaygpe3N1cGVyLmRpc2Nvbm5lY3RlZENhbGxiYWNrKCksZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcigiZ2l0b3BzLWF1dG8tcmVmcmVzaCIsdGhpcy5fYXV0b1JlZnJlc2hIYW5kbGVyKX1oYW5kbGVBdXRvUmVmcmVzaCgpe3RoaXMucmVmcmVzaCgpfXJlbmRlcigpe3JldHVybiB3YAogICAgICA8ZGl2IGNsYXNzPSJ2aWV3LXRpdGxlIj5Db25uZWN0aW9uczwvZGl2PgogICAgICA8ZGl2IGNsYXNzPSJ2aWV3LWRlc2NyaXB0aW9uIj5NYW5hZ2UgeW91ciBHaXRlYSBhbmQgR2l0TGFiIHByb3ZpZGVyIGNvbm5lY3Rpb25zPC9kaXY+CiAgICAgIDxkaXYgY2xhc3M9InRvb2xiYXIiPgogICAgICAgIDxkZWVzLWJ1dHRvbiBAY2xpY2s9JHsoKT0+dGhpcy5hZGRDb25uZWN0aW9uKCl9PkFkZCBDb25uZWN0aW9uPC9kZWVzLWJ1dHRvbj4KICAgICAgICA8ZGVlcy1idXR0b24gQGNsaWNrPSR7KCk9PnRoaXMucmVmcmVzaCgpfT5SZWZyZXNoPC9kZWVzLWJ1dHRvbj4KICAgICAgPC9kaXY+CiAgICAgIDxkZWVzLXRhYmxlCiAgICAgICAgLmhlYWRpbmcxPSR7IlByb3ZpZGVyIENvbm5lY3Rpb25zIn0KICAgICAgICAuaGVhZGluZzI9JHsiQ29uZmlndXJlIGNvbm5lY3Rpb25zIHRvIEdpdGVhIGFuZCBHaXRMYWIgaW5zdGFuY2VzIn0KICAgICAgICAuZGF0YT0ke3RoaXMuY29ubmVjdGlvbnNTdGF0ZS5jb25uZWN0aW9uc30KICAgICAgICAuZGlzcGxheUZ1bmN0aW9uPSR7YT0+KHtOYW1lOmEubmFtZSxUeXBlOmEucHJvdmlkZXJUeXBlLFVSTDphLmJhc2VVcmwsU3RhdHVzOmEuc3RhdHVzLENyZWF0ZWQ6bmV3IERhdGUoYS5jcmVhdGVkQXQpLnRvTG9jYWxlRGF0ZVN0cmluZygpfSl9CiAgICAgICAgLmRhdGFBY3Rpb25zPSR7W3tuYW1lOiJUZXN0IixpY29uTmFtZToibHVjaWRlOnBsdWciLGFjdGlvbjphc3luYyBhPT57YXdhaXQgTnQuZGlzcGF0Y2hBY3Rpb24ob3d0LHtjb25uZWN0aW9uSWQ6YS5pZH0pfX0se25hbWU6IkRlbGV0ZSIsaWNvbk5hbWU6Imx1Y2lkZTp0cmFzaDIiLGFjdGlvbjphc3luYyBhPT57bGV0IGk9YXdhaXQgc3IuRGVlc01vZGFsLmNyZWF0ZUFuZFNob3coe2hlYWRpbmc6IkRlbGV0ZSBDb25uZWN0aW9uIixjb250ZW50OndgPHAgc3R5bGU9ImNvbG9yOiAjZmZmOyI+QXJlIHlvdSBzdXJlIHlvdSB3YW50IHRvIGRlbGV0ZSBjb25uZWN0aW9uICIke2EubmFtZX0iPzwvcD5gLG1lbnVPcHRpb25zOlt7bmFtZToiQ2FuY2VsIixhY3Rpb246YXN5bmMgcj0+e3IuZGVzdHJveSgpfX0se25hbWU6IkRlbGV0ZSIsYWN0aW9uOmFzeW5jIHI9Pnthd2FpdCBOdC5kaXNwYXRjaEFjdGlvbihsd3Qse2Nvbm5lY3Rpb25JZDphLmlkfSksci5kZXN0cm95KCl9fV19KX19XX0KICAgICAgPjwvZGVlcy10YWJsZT4KICAgIGB9YXN5bmMgZmlyc3RVcGRhdGVkKCl7YXdhaXQgdGhpcy5yZWZyZXNoKCl9YXN5bmMgcmVmcmVzaCgpe2F3YWl0IE50LmRpc3BhdGNoQWN0aW9uKHRhLG51bGwpfWFzeW5jIGFkZENvbm5lY3Rpb24oKXthd2FpdCBzci5EZWVzTW9kYWwuY3JlYXRlQW5kU2hvdyh7aGVhZGluZzoiQWRkIENvbm5lY3Rpb24iLGNvbnRlbnQ6d2AKICAgICAgICA8c3R5bGU+CiAgICAgICAgICAuZm9ybS1yb3cgeyBtYXJnaW4tYm90dG9tOiAxNnB4OyB9CiAgICAgICAgPC9zdHlsZT4KICAgICAgICA8ZGl2IGNsYXNzPSJmb3JtLXJvdyI+CiAgICAgICAgICA8ZGVlcy1pbnB1dC10ZXh0IC5sYWJlbD0keyJOYW1lIn0gLmtleT0keyJuYW1lIn0+PC9kZWVzLWlucHV0LXRleHQ+CiAgICAgICAgPC9kaXY+CiAgICAgICAgPGRpdiBjbGFzcz0iZm9ybS1yb3ciPgogICAgICAgICAgPGRlZXMtaW5wdXQtZHJvcGRvd24KICAgICAgICAgICAgLmxhYmVsPSR7IlByb3ZpZGVyIFR5cGUifQogICAgICAgICAgICAua2V5PSR7InByb3ZpZGVyVHlwZSJ9CiAgICAgICAgICAgIC5vcHRpb25zPSR7W3tvcHRpb246ImdpdGVhIixrZXk6ImdpdGVhIn0se29wdGlvbjoiZ2l0bGFiIixrZXk6ImdpdGxhYiJ9XX0KICAgICAgICAgICAgLnNlbGVjdGVkT3B0aW9uPSR7e29wdGlvbjoiZ2l0ZWEiLGtleToiZ2l0ZWEifX0KICAgICAgICAgID48L2RlZXMtaW5wdXQtZHJvcGRvd24+CiAgICAgICAgPC9kaXY+CiAgICAgICAgPGRpdiBjbGFzcz0iZm9ybS1yb3ciPgogICAgICAgICAgPGRlZXMtaW5wdXQtdGV4dCAubGFiZWw9JHsiQmFzZSBVUkwifSAua2V5PSR7ImJhc2VVcmwifT48L2RlZXMtaW5wdXQtdGV4dD4KICAgICAgICA8L2Rpdj4KICAgICAgICA8ZGl2IGNsYXNzPSJmb3JtLXJvdyI+CiAgICAgICAgICA8ZGVlcy1pbnB1dC10ZXh0IC5sYWJlbD0keyJBUEkgVG9rZW4ifSAua2V5PSR7InRva2VuIn0gdHlwZT0icGFzc3dvcmQiPjwvZGVlcy1pbnB1dC10ZXh0PgogICAgICAgIDwvZGl2PgogICAgICBgLG1lbnVPcHRpb25zOlt7bmFtZToiQ2FuY2VsIixhY3Rpb246YXN5bmMgYT0+e2EuZGVzdHJveSgpfX0se25hbWU6IkFkZCIsYWN0aW9uOmFzeW5jIGE9PntsZXQgaT1hLnNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvckFsbCgiZGVlcy1pbnB1dC10ZXh0LCBkZWVzLWlucHV0LWRyb3Bkb3duIikscj17fTtmb3IobGV0IHMgb2YgaSlzLmtleT09PSJwcm92aWRlclR5cGUiP3Jbcy5rZXldPXMuc2VsZWN0ZWRPcHRpb24/LmtleXx8ImdpdGVhIjpyW3Mua2V5XT1zLnZhbHVlfHwiIjthd2FpdCBOdC5kaXNwYXRjaEFjdGlvbihud3Qse25hbWU6ci5uYW1lLHByb3ZpZGVyVHlwZTpyLnByb3ZpZGVyVHlwZSxiYXNlVXJsOnIuYmFzZVVybCx0b2tlbjpyLnRva2VufSksYS5kZXN0cm95KCl9fV19KX19O1lsPUkyKEN3dCksSWo9bmV3IFdlYWtNYXAsdnQoWWwsNCwiY29ubmVjdGlvbnNTdGF0ZSIsU3d0LHpvLElqKSx6bz12dChZbCwwLCJHaXRvcHNWaWV3Q29ubmVjdGlvbnMiLF93dCx6byksYTEoem8sInN0eWxlcyIsW3AuZGVmYXVsdFN0eWxlcyxFYV0pLGplKFlsLDEsem8pfSk7dmFyIFB3dD17fTtHZShQd3Qse0dpdG9wc1ZpZXdQcm9qZWN0czooKT0+WHJ9KTt2YXIgTHd0LCR3dCxBd3QsRHd0LEV3dCx6aSxGaixPaixSaixYcixCaj1iKGFzeW5jKCk9PntucigpO2F3YWl0IFhzKCk7TW8oKTt1ZSgpO0V3dD1bcGUoImdpdG9wcy12aWV3LXByb2plY3RzIildO1hyPWNsYXNzIGV4dGVuZHMoRHd0PXhlLEF3dD1bSigpXSwkd3Q9W0ooKV0sTHd0PVtKKCldLER3dCl7Y29uc3RydWN0b3IoKXtzdXBlcigpO1J0KHRoaXMsRmosamUoemksOCx0aGlzLHtjb25uZWN0aW9uczpbXSxhY3RpdmVDb25uZWN0aW9uSWQ6bnVsbH0pKSxqZSh6aSwxMSx0aGlzKTtSdCh0aGlzLE9qLGplKHppLDEyLHRoaXMse3Byb2plY3RzOltdLGdyb3VwczpbXSxzZWNyZXRzOltdLHBpcGVsaW5lczpbXSxwaXBlbGluZUpvYnM6W10sY3VycmVudEpvYkxvZzoiIn0pKSxqZSh6aSwxNSx0aGlzKTtSdCh0aGlzLFJqLGplKHppLDE2LHRoaXMsIiIpKSxqZSh6aSwxOSx0aGlzKTthMSh0aGlzLCJfYXV0b1JlZnJlc2hIYW5kbGVyIik7bGV0IGE9TnQuc2VsZWN0KHI9PnIpLnN1YnNjcmliZShyPT57dGhpcy5jb25uZWN0aW9uc1N0YXRlPXJ9KTt0aGlzLnJ4U3Vic2NyaXB0aW9ucy5wdXNoKGEpO2xldCBpPWt0LnNlbGVjdChyPT5yKS5zdWJzY3JpYmUocj0+e3RoaXMuZGF0YVN0YXRlPXJ9KTt0aGlzLnJ4U3Vic2NyaXB0aW9ucy5wdXNoKGkpLHRoaXMuX2F1dG9SZWZyZXNoSGFuZGxlcj0oKT0+dGhpcy5oYW5kbGVBdXRvUmVmcmVzaCgpLGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoImdpdG9wcy1hdXRvLXJlZnJlc2giLHRoaXMuX2F1dG9SZWZyZXNoSGFuZGxlcil9ZGlzY29ubmVjdGVkQ2FsbGJhY2soKXtzdXBlci5kaXNjb25uZWN0ZWRDYWxsYmFjaygpLGRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoImdpdG9wcy1hdXRvLXJlZnJlc2giLHRoaXMuX2F1dG9SZWZyZXNoSGFuZGxlcil9aGFuZGxlQXV0b1JlZnJlc2goKXt0aGlzLmxvYWRQcm9qZWN0cygpfXJlbmRlcigpe2xldCBhPXRoaXMuY29ubmVjdGlvbnNTdGF0ZS5jb25uZWN0aW9ucy5tYXAoaT0+KHtvcHRpb246YCR7aS5uYW1lfSAoJHtpLnByb3ZpZGVyVHlwZX0pYCxrZXk6aS5pZH0pKTtyZXR1cm4gd2AKICAgICAgPGRpdiBjbGFzcz0idmlldy10aXRsZSI+UHJvamVjdHM8L2Rpdj4KICAgICAgPGRpdiBjbGFzcz0idmlldy1kZXNjcmlwdGlvbiI+QnJvd3NlIHByb2plY3RzIGZyb20geW91ciBjb25uZWN0ZWQgcHJvdmlkZXJzPC9kaXY+CiAgICAgIDxkaXYgY2xhc3M9InRvb2xiYXIiPgogICAgICAgIDxkZWVzLWlucHV0LWRyb3Bkb3duCiAgICAgICAgICAubGFiZWw9JHsiQ29ubmVjdGlvbiJ9CiAgICAgICAgICAub3B0aW9ucz0ke2F9CiAgICAgICAgICAuc2VsZWN0ZWRPcHRpb249JHthLmZpbmQoaT0+aS5rZXk9PT10aGlzLnNlbGVjdGVkQ29ubmVjdGlvbklkKXx8YVswXX0KICAgICAgICAgIEBzZWxlY3RlZE9wdGlvbj0ke2k9Pnt0aGlzLnNlbGVjdGVkQ29ubmVjdGlvbklkPWkuZGV0YWlsLmtleSx0aGlzLmxvYWRQcm9qZWN0cygpfX0KICAgICAgICA+PC9kZWVzLWlucHV0LWRyb3Bkb3duPgogICAgICAgIDxkZWVzLWJ1dHRvbiBAY2xpY2s9JHsoKT0+dGhpcy5sb2FkUHJvamVjdHMoKX0+UmVmcmVzaDwvZGVlcy1idXR0b24+CiAgICAgIDwvZGl2PgogICAgICA8ZGVlcy10YWJsZQogICAgICAgIC5oZWFkaW5nMT0keyJQcm9qZWN0cyJ9CiAgICAgICAgLmhlYWRpbmcyPSR7IlJlcG9zaXRvcmllcyBmcm9tIHRoZSBzZWxlY3RlZCBjb25uZWN0aW9uIn0KICAgICAgICAuZGF0YT0ke3RoaXMuZGF0YVN0YXRlLnByb2plY3RzfQogICAgICAgIC5kaXNwbGF5RnVuY3Rpb249JHtpPT4oe05hbWU6aS5uYW1lLFBhdGg6aS5mdWxsUGF0aCxWaXNpYmlsaXR5OmkudmlzaWJpbGl0eSxCcmFuY2g6aS5kZWZhdWx0QnJhbmNoLCJMYXN0IEFjdGl2aXR5IjppLmxhc3RBY3Rpdml0eT9uZXcgRGF0ZShpLmxhc3RBY3Rpdml0eSkudG9Mb2NhbGVEYXRlU3RyaW5nKCk6Ii0ifSl9CiAgICAgICAgLmRhdGFBY3Rpb25zPSR7W3tuYW1lOiJWaWV3IFNlY3JldHMiLGljb25OYW1lOiJsdWNpZGU6a2V5IixhY3Rpb246YXN5bmMgaT0+e01pLmRpc3BhdGNoQWN0aW9uKHY0LHt2aWV3OiJzZWNyZXRzIn0pfX0se25hbWU6IlZpZXcgUGlwZWxpbmVzIixpY29uTmFtZToibHVjaWRlOnBsYXkiLGFjdGlvbjphc3luYyBpPT57TWkuZGlzcGF0Y2hBY3Rpb24odjQse3ZpZXc6InBpcGVsaW5lcyJ9KX19XX0KICAgICAgPjwvZGVlcy10YWJsZT4KICAgIGB9YXN5bmMgZmlyc3RVcGRhdGVkKCl7YXdhaXQgTnQuZGlzcGF0Y2hBY3Rpb24odGEsbnVsbCk7bGV0IGE9TnQuZ2V0U3RhdGUoKS5jb25uZWN0aW9uczthLmxlbmd0aD4wJiYhdGhpcy5zZWxlY3RlZENvbm5lY3Rpb25JZCYmKHRoaXMuc2VsZWN0ZWRDb25uZWN0aW9uSWQ9YVswXS5pZCxhd2FpdCB0aGlzLmxvYWRQcm9qZWN0cygpKX1hc3luYyBsb2FkUHJvamVjdHMoKXt0aGlzLnNlbGVjdGVkQ29ubmVjdGlvbklkJiZhd2FpdCBrdC5kaXNwYXRjaEFjdGlvbih4byx7Y29ubmVjdGlvbklkOnRoaXMuc2VsZWN0ZWRDb25uZWN0aW9uSWR9KX19O3ppPUkyKER3dCksRmo9bmV3IFdlYWtNYXAsT2o9bmV3IFdlYWtNYXAsUmo9bmV3IFdlYWtNYXAsdnQoemksNCwiY29ubmVjdGlvbnNTdGF0ZSIsQXd0LFhyLEZqKSx2dCh6aSw0LCJkYXRhU3RhdGUiLCR3dCxYcixPaiksdnQoemksNCwic2VsZWN0ZWRDb25uZWN0aW9uSWQiLEx3dCxYcixSaiksWHI9dnQoemksMCwiR2l0b3BzVmlld1Byb2plY3RzIixFd3QsWHIpLGExKFhyLCJzdHlsZXMiLFtwLmRlZmF1bHRTdHlsZXMsRWFdKSxqZSh6aSwxLFhyKX0pO3ZhciBCd3Q9e307R2UoQnd0LHtHaXRvcHNWaWV3R3JvdXBzOigpPT5Lcn0pO3ZhciBJd3QsTnd0LEZ3dCxPd3QsUnd0LGtpLEhqLHFqLFZqLEtyLGpqPWIoYXN5bmMoKT0+e25yKCk7YXdhaXQgWHMoKTtNbygpO3VlKCk7Und0PVtwZSgiZ2l0b3BzLXZpZXctZ3JvdXBzIildO0tyPWNsYXNzIGV4dGVuZHMoT3d0PXhlLEZ3dD1bSigpXSxOd3Q9W0ooKV0sSXd0PVtKKCldLE93dCl7Y29uc3RydWN0b3IoKXtzdXBlcigpO1J0KHRoaXMsSGosamUoa2ksOCx0aGlzLHtjb25uZWN0aW9uczpbXSxhY3RpdmVDb25uZWN0aW9uSWQ6bnVsbH0pKSxqZShraSwxMSx0aGlzKTtSdCh0aGlzLHFqLGplKGtpLDEyLHRoaXMse3Byb2plY3RzOltdLGdyb3VwczpbXSxzZWNyZXRzOltdLHBpcGVsaW5lczpbXSxwaXBlbGluZUpvYnM6W10sY3VycmVudEpvYkxvZzoiIn0pKSxqZShraSwxNSx0aGlzKTtSdCh0aGlzLFZqLGplKGtpLDE2LHRoaXMsIiIpKSxqZShraSwxOSx0aGlzKTthMSh0aGlzLCJfYXV0b1JlZnJlc2hIYW5kbGVyIik7bGV0IGE9TnQuc2VsZWN0KHI9PnIpLnN1YnNjcmliZShyPT57dGhpcy5jb25uZWN0aW9uc1N0YXRlPXJ9KTt0aGlzLnJ4U3Vic2NyaXB0aW9ucy5wdXNoKGEpO2xldCBpPWt0LnNlbGVjdChyPT5yKS5zdWJzY3JpYmUocj0+e3RoaXMuZGF0YVN0YXRlPXJ9KTt0aGlzLnJ4U3Vic2NyaXB0aW9ucy5wdXNoKGkpLHRoaXMuX2F1dG9SZWZyZXNoSGFuZGxlcj0oKT0+dGhpcy5oYW5kbGVBdXRvUmVmcmVzaCgpLGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoImdpdG9wcy1hdXRvLXJlZnJlc2giLHRoaXMuX2F1dG9SZWZyZXNoSGFuZGxlcil9ZGlzY29ubmVjdGVkQ2FsbGJhY2soKXtzdXBlci5kaXNjb25uZWN0ZWRDYWxsYmFjaygpLGRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoImdpdG9wcy1hdXRvLXJlZnJlc2giLHRoaXMuX2F1dG9SZWZyZXNoSGFuZGxlcil9aGFuZGxlQXV0b1JlZnJlc2goKXt0aGlzLmxvYWRHcm91cHMoKX1yZW5kZXIoKXtsZXQgYT10aGlzLmNvbm5lY3Rpb25zU3RhdGUuY29ubmVjdGlvbnMubWFwKGk9Pih7b3B0aW9uOmAke2kubmFtZX0gKCR7aS5wcm92aWRlclR5cGV9KWAsa2V5OmkuaWR9KSk7cmV0dXJuIHdgCiAgICAgIDxkaXYgY2xhc3M9InZpZXctdGl0bGUiPkdyb3VwczwvZGl2PgogICAgICA8ZGl2IGNsYXNzPSJ2aWV3LWRlc2NyaXB0aW9uIj5Ccm93c2Ugb3JnYW5pemF0aW9ucyBhbmQgZ3JvdXBzIGZyb20geW91ciBjb25uZWN0ZWQgcHJvdmlkZXJzPC9kaXY+CiAgICAgIDxkaXYgY2xhc3M9InRvb2xiYXIiPgogICAgICAgIDxkZWVzLWlucHV0LWRyb3Bkb3duCiAgICAgICAgICAubGFiZWw9JHsiQ29ubmVjdGlvbiJ9CiAgICAgICAgICAub3B0aW9ucz0ke2F9CiAgICAgICAgICAuc2VsZWN0ZWRPcHRpb249JHthLmZpbmQoaT0+aS5rZXk9PT10aGlzLnNlbGVjdGVkQ29ubmVjdGlvbklkKXx8YVswXX0KICAgICAgICAgIEBzZWxlY3RlZE9wdGlvbj0ke2k9Pnt0aGlzLnNlbGVjdGVkQ29ubmVjdGlvbklkPWkuZGV0YWlsLmtleSx0aGlzLmxvYWRHcm91cHMoKX19CiAgICAgICAgPjwvZGVlcy1pbnB1dC1kcm9wZG93bj4KICAgICAgICA8ZGVlcy1idXR0b24gQGNsaWNrPSR7KCk9PnRoaXMubG9hZEdyb3VwcygpfT5SZWZyZXNoPC9kZWVzLWJ1dHRvbj4KICAgICAgPC9kaXY+CiAgICAgIDxkZWVzLXRhYmxlCiAgICAgICAgLmhlYWRpbmcxPSR7Ikdyb3VwcyAvIE9yZ2FuaXphdGlvbnMifQogICAgICAgIC5oZWFkaW5nMj0keyJHcm91cHMgZnJvbSB0aGUgc2VsZWN0ZWQgY29ubmVjdGlvbiJ9CiAgICAgICAgLmRhdGE9JHt0aGlzLmRhdGFTdGF0ZS5ncm91cHN9CiAgICAgICAgLmRpc3BsYXlGdW5jdGlvbj0ke2k9Pih7TmFtZTppLm5hbWUsUGF0aDppLmZ1bGxQYXRoLFZpc2liaWxpdHk6aS52aXNpYmlsaXR5LFByb2plY3RzOlN0cmluZyhpLnByb2plY3RDb3VudCl9KX0KICAgICAgICAuZGF0YUFjdGlvbnM9JHtbe25hbWU6IlZpZXcgU2VjcmV0cyIsaWNvbk5hbWU6Imx1Y2lkZTprZXkiLGFjdGlvbjphc3luYyBpPT57TWkuZGlzcGF0Y2hBY3Rpb24odjQse3ZpZXc6InNlY3JldHMifSl9fV19CiAgICAgID48L2RlZXMtdGFibGU+CiAgICBgfWFzeW5jIGZpcnN0VXBkYXRlZCgpe2F3YWl0IE50LmRpc3BhdGNoQWN0aW9uKHRhLG51bGwpO2xldCBhPU50LmdldFN0YXRlKCkuY29ubmVjdGlvbnM7YS5sZW5ndGg+MCYmIXRoaXMuc2VsZWN0ZWRDb25uZWN0aW9uSWQmJih0aGlzLnNlbGVjdGVkQ29ubmVjdGlvbklkPWFbMF0uaWQsYXdhaXQgdGhpcy5sb2FkR3JvdXBzKCkpfWFzeW5jIGxvYWRHcm91cHMoKXt0aGlzLnNlbGVjdGVkQ29ubmVjdGlvbklkJiZhd2FpdCBrdC5kaXNwYXRjaEFjdGlvbihTdyx7Y29ubmVjdGlvbklkOnRoaXMuc2VsZWN0ZWRDb25uZWN0aW9uSWR9KX19O2tpPUkyKE93dCksSGo9bmV3IFdlYWtNYXAscWo9bmV3IFdlYWtNYXAsVmo9bmV3IFdlYWtNYXAsdnQoa2ksNCwiY29ubmVjdGlvbnNTdGF0ZSIsRnd0LEtyLEhqKSx2dChraSw0LCJkYXRhU3RhdGUiLE53dCxLcixxaiksdnQoa2ksNCwic2VsZWN0ZWRDb25uZWN0aW9uSWQiLEl3dCxLcixWaiksS3I9dnQoa2ksMCwiR2l0b3BzVmlld0dyb3VwcyIsUnd0LEtyKSxhMShLciwic3R5bGVzIixbcC5kZWZhdWx0U3R5bGVzLEVhXSksamUoa2ksMSxLcil9KTt2YXIgWXd0PXt9O0dlKFl3dCx7R2l0b3BzVmlld1NlY3JldHM6KCk9PlNpfSk7dmFyIEh3dCxxd3QsVnd0LGp3dCxVd3QsV3d0LEd3dCxiMixVaixXaixHaixZaixaaixTaSxYaj1iKGFzeW5jKCk9PntucigpO2F3YWl0IFhzKCk7TW8oKTt1ZSgpO0d3dD1bcGUoImdpdG9wcy12aWV3LXNlY3JldHMiKV07U2k9Y2xhc3MgZXh0ZW5kcyhXd3Q9eGUsVXd0PVtKKCldLGp3dD1bSigpXSxWd3Q9W0ooKV0scXd0PVtKKCldLEh3dD1bSigpXSxXd3Qpe2NvbnN0cnVjdG9yKCl7c3VwZXIoKTtSdCh0aGlzLFVqLGplKGIyLDgsdGhpcyx7Y29ubmVjdGlvbnM6W10sYWN0aXZlQ29ubmVjdGlvbklkOm51bGx9KSksamUoYjIsMTEsdGhpcyk7UnQodGhpcyxXaixqZShiMiwxMix0aGlzLHtwcm9qZWN0czpbXSxncm91cHM6W10sc2VjcmV0czpbXSxwaXBlbGluZXM6W10scGlwZWxpbmVKb2JzOltdLGN1cnJlbnRKb2JMb2c6IiJ9KSksamUoYjIsMTUsdGhpcyk7UnQodGhpcyxHaixqZShiMiwxNix0aGlzLCIiKSksamUoYjIsMTksdGhpcyk7UnQodGhpcyxZaixqZShiMiwyMCx0aGlzLCJwcm9qZWN0IikpLGplKGIyLDIzLHRoaXMpO1J0KHRoaXMsWmosamUoYjIsMjQsdGhpcywiIikpLGplKGIyLDI3LHRoaXMpO2ExKHRoaXMsIl9hdXRvUmVmcmVzaEhhbmRsZXIiKTtsZXQgYT1OdC5zZWxlY3Qocj0+cikuc3Vic2NyaWJlKHI9Pnt0aGlzLmNvbm5lY3Rpb25zU3RhdGU9cn0pO3RoaXMucnhTdWJzY3JpcHRpb25zLnB1c2goYSk7bGV0IGk9a3Quc2VsZWN0KHI9PnIpLnN1YnNjcmliZShyPT57dGhpcy5kYXRhU3RhdGU9cn0pO3RoaXMucnhTdWJzY3JpcHRpb25zLnB1c2goaSksdGhpcy5fYXV0b1JlZnJlc2hIYW5kbGVyPSgpPT50aGlzLmhhbmRsZUF1dG9SZWZyZXNoKCksZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigiZ2l0b3BzLWF1dG8tcmVmcmVzaCIsdGhpcy5fYXV0b1JlZnJlc2hIYW5kbGVyKX1kaXNjb25uZWN0ZWRDYWxsYmFjaygpe3N1cGVyLmRpc2Nvbm5lY3RlZENhbGxiYWNrKCksZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcigiZ2l0b3BzLWF1dG8tcmVmcmVzaCIsdGhpcy5fYXV0b1JlZnJlc2hIYW5kbGVyKX1oYW5kbGVBdXRvUmVmcmVzaCgpe3RoaXMubG9hZFNlY3JldHMoKX1yZW5kZXIoKXtsZXQgYT10aGlzLmNvbm5lY3Rpb25zU3RhdGUuY29ubmVjdGlvbnMubWFwKHM9Pih7b3B0aW9uOmAke3MubmFtZX0gKCR7cy5wcm92aWRlclR5cGV9KWAsa2V5OnMuaWR9KSksaT1be29wdGlvbjoiUHJvamVjdCIsa2V5OiJwcm9qZWN0In0se29wdGlvbjoiR3JvdXAiLGtleToiZ3JvdXAifV0scj10aGlzLnNlbGVjdGVkU2NvcGU9PT0icHJvamVjdCI/dGhpcy5kYXRhU3RhdGUucHJvamVjdHMubWFwKHM9Pih7b3B0aW9uOnMuZnVsbFBhdGh8fHMubmFtZSxrZXk6cy5pZH0pKTp0aGlzLmRhdGFTdGF0ZS5ncm91cHMubWFwKHM9Pih7b3B0aW9uOnMuZnVsbFBhdGh8fHMubmFtZSxrZXk6cy5pZH0pKTtyZXR1cm4gd2AKICAgICAgPGRpdiBjbGFzcz0idmlldy10aXRsZSI+U2VjcmV0czwvZGl2PgogICAgICA8ZGl2IGNsYXNzPSJ2aWV3LWRlc2NyaXB0aW9uIj5NYW5hZ2UgQ0kvQ0Qgc2VjcmV0cyBhbmQgdmFyaWFibGVzPC9kaXY+CiAgICAgIDxkaXYgY2xhc3M9InRvb2xiYXIiPgogICAgICAgIDxkZWVzLWlucHV0LWRyb3Bkb3duCiAgICAgICAgICAubGFiZWw9JHsiQ29ubmVjdGlvbiJ9CiAgICAgICAgICAub3B0aW9ucz0ke2F9CiAgICAgICAgICAuc2VsZWN0ZWRPcHRpb249JHthLmZpbmQocz0+cy5rZXk9PT10aGlzLnNlbGVjdGVkQ29ubmVjdGlvbklkKXx8YVswXX0KICAgICAgICAgIEBzZWxlY3RlZE9wdGlvbj0ke3M9Pnt0aGlzLnNlbGVjdGVkQ29ubmVjdGlvbklkPXMuZGV0YWlsLmtleSx0aGlzLmxvYWRFbnRpdGllcygpfX0KICAgICAgICA+PC9kZWVzLWlucHV0LWRyb3Bkb3duPgogICAgICAgIDxkZWVzLWlucHV0LWRyb3Bkb3duCiAgICAgICAgICAubGFiZWw9JHsiU2NvcGUifQogICAgICAgICAgLm9wdGlvbnM9JHtpfQogICAgICAgICAgLnNlbGVjdGVkT3B0aW9uPSR7aS5maW5kKHM9PnMua2V5PT09dGhpcy5zZWxlY3RlZFNjb3BlKX0KICAgICAgICAgIEBzZWxlY3RlZE9wdGlvbj0ke3M9Pnt0aGlzLnNlbGVjdGVkU2NvcGU9cy5kZXRhaWwua2V5LHRoaXMubG9hZEVudGl0aWVzKCl9fQogICAgICAgID48L2RlZXMtaW5wdXQtZHJvcGRvd24+CiAgICAgICAgPGRlZXMtaW5wdXQtZHJvcGRvd24KICAgICAgICAgIC5sYWJlbD0ke3RoaXMuc2VsZWN0ZWRTY29wZT09PSJwcm9qZWN0Ij8iUHJvamVjdCI6Ikdyb3VwIn0KICAgICAgICAgIC5vcHRpb25zPSR7cn0KICAgICAgICAgIC5zZWxlY3RlZE9wdGlvbj0ke3IuZmluZChzPT5zLmtleT09PXRoaXMuc2VsZWN0ZWRTY29wZUlkKXx8clswXX0KICAgICAgICAgIEBzZWxlY3RlZE9wdGlvbj0ke3M9Pnt0aGlzLnNlbGVjdGVkU2NvcGVJZD1zLmRldGFpbC5rZXksdGhpcy5sb2FkU2VjcmV0cygpfX0KICAgICAgICA+PC9kZWVzLWlucHV0LWRyb3Bkb3duPgogICAgICAgIDxkZWVzLWJ1dHRvbiBAY2xpY2s9JHsoKT0+dGhpcy5hZGRTZWNyZXQoKX0+QWRkIFNlY3JldDwvZGVlcy1idXR0b24+CiAgICAgICAgPGRlZXMtYnV0dG9uIEBjbGljaz0keygpPT50aGlzLmxvYWRTZWNyZXRzKCl9PlJlZnJlc2g8L2RlZXMtYnV0dG9uPgogICAgICA8L2Rpdj4KICAgICAgPGRlZXMtdGFibGUKICAgICAgICAuaGVhZGluZzE9JHsiU2VjcmV0cyJ9CiAgICAgICAgLmhlYWRpbmcyPSR7IkNJL0NEIHZhcmlhYmxlcyBmb3IgdGhlIHNlbGVjdGVkIGVudGl0eSJ9CiAgICAgICAgLmRhdGE9JHt0aGlzLmRhdGFTdGF0ZS5zZWNyZXRzfQogICAgICAgIC5kaXNwbGF5RnVuY3Rpb249JHtzPT4oe0tleTpzLmtleSxWYWx1ZTpzLm1hc2tlZD8iKioqKioqIjpzLnZhbHVlLFByb3RlY3RlZDpzLnByb3RlY3RlZD8iWWVzIjoiTm8iLEVudmlyb25tZW50OnMuZW52aXJvbm1lbnR8fCIqIn0pfQogICAgICAgIC5kYXRhQWN0aW9ucz0ke1t7bmFtZToiRWRpdCIsaWNvbk5hbWU6Imx1Y2lkZTplZGl0IixhY3Rpb246YXN5bmMgcz0+e2F3YWl0IHRoaXMuZWRpdFNlY3JldChzKX19LHtuYW1lOiJEZWxldGUiLGljb25OYW1lOiJsdWNpZGU6dHJhc2gyIixhY3Rpb246YXN5bmMgcz0+e2F3YWl0IGt0LmRpc3BhdGNoQWN0aW9uKHB3dCx7Y29ubmVjdGlvbklkOnRoaXMuc2VsZWN0ZWRDb25uZWN0aW9uSWQsc2NvcGU6dGhpcy5zZWxlY3RlZFNjb3BlLHNjb3BlSWQ6dGhpcy5zZWxlY3RlZFNjb3BlSWQsa2V5OnMua2V5fSl9fV19CiAgICAgID48L2RlZXMtdGFibGU+CiAgICBgfWFzeW5jIGZpcnN0VXBkYXRlZCgpe2F3YWl0IE50LmRpc3BhdGNoQWN0aW9uKHRhLG51bGwpO2xldCBhPU50LmdldFN0YXRlKCkuY29ubmVjdGlvbnM7YS5sZW5ndGg+MCYmIXRoaXMuc2VsZWN0ZWRDb25uZWN0aW9uSWQmJih0aGlzLnNlbGVjdGVkQ29ubmVjdGlvbklkPWFbMF0uaWQsYXdhaXQgdGhpcy5sb2FkRW50aXRpZXMoKSl9YXN5bmMgbG9hZEVudGl0aWVzKCl7dGhpcy5zZWxlY3RlZENvbm5lY3Rpb25JZCYmKHRoaXMuc2VsZWN0ZWRTY29wZT09PSJwcm9qZWN0Ij9hd2FpdCBrdC5kaXNwYXRjaEFjdGlvbih4byx7Y29ubmVjdGlvbklkOnRoaXMuc2VsZWN0ZWRDb25uZWN0aW9uSWR9KTphd2FpdCBrdC5kaXNwYXRjaEFjdGlvbihTdyx7Y29ubmVjdGlvbklkOnRoaXMuc2VsZWN0ZWRDb25uZWN0aW9uSWR9KSl9YXN5bmMgbG9hZFNlY3JldHMoKXshdGhpcy5zZWxlY3RlZENvbm5lY3Rpb25JZHx8IXRoaXMuc2VsZWN0ZWRTY29wZUlkfHxhd2FpdCBrdC5kaXNwYXRjaEFjdGlvbihjd3Qse2Nvbm5lY3Rpb25JZDp0aGlzLnNlbGVjdGVkQ29ubmVjdGlvbklkLHNjb3BlOnRoaXMuc2VsZWN0ZWRTY29wZSxzY29wZUlkOnRoaXMuc2VsZWN0ZWRTY29wZUlkfSl9YXN5bmMgYWRkU2VjcmV0KCl7YXdhaXQgc3IuRGVlc01vZGFsLmNyZWF0ZUFuZFNob3coe2hlYWRpbmc6IkFkZCBTZWNyZXQiLGNvbnRlbnQ6d2AKICAgICAgICA8c3R5bGU+LmZvcm0tcm93IHsgbWFyZ2luLWJvdHRvbTogMTZweDsgfTwvc3R5bGU+CiAgICAgICAgPGRpdiBjbGFzcz0iZm9ybS1yb3ciPgogICAgICAgICAgPGRlZXMtaW5wdXQtdGV4dCAubGFiZWw9JHsiS2V5In0gLmtleT0keyJrZXkifT48L2RlZXMtaW5wdXQtdGV4dD4KICAgICAgICA8L2Rpdj4KICAgICAgICA8ZGl2IGNsYXNzPSJmb3JtLXJvdyI+CiAgICAgICAgICA8ZGVlcy1pbnB1dC10ZXh0IC5sYWJlbD0keyJWYWx1ZSJ9IC5rZXk9JHsidmFsdWUifSB0eXBlPSJwYXNzd29yZCI+PC9kZWVzLWlucHV0LXRleHQ+CiAgICAgICAgPC9kaXY+CiAgICAgIGAsbWVudU9wdGlvbnM6W3tuYW1lOiJDYW5jZWwiLGFjdGlvbjphc3luYyBhPT57YS5kZXN0cm95KCl9fSx7bmFtZToiQ3JlYXRlIixhY3Rpb246YXN5bmMgYT0+e2xldCBpPWEuc2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yQWxsKCJkZWVzLWlucHV0LXRleHQiKSxyPXt9O2ZvcihsZXQgcyBvZiBpKXJbcy5rZXldPXMudmFsdWV8fCIiO2F3YWl0IGt0LmRpc3BhdGNoQWN0aW9uKGR3dCx7Y29ubmVjdGlvbklkOnRoaXMuc2VsZWN0ZWRDb25uZWN0aW9uSWQsc2NvcGU6dGhpcy5zZWxlY3RlZFNjb3BlLHNjb3BlSWQ6dGhpcy5zZWxlY3RlZFNjb3BlSWQsa2V5OnIua2V5LHZhbHVlOnIudmFsdWV9KSxhLmRlc3Ryb3koKX19XX0pfWFzeW5jIGVkaXRTZWNyZXQoYSl7YXdhaXQgc3IuRGVlc01vZGFsLmNyZWF0ZUFuZFNob3coe2hlYWRpbmc6YEVkaXQgU2VjcmV0OiAke2Eua2V5fWAsY29udGVudDp3YAogICAgICAgIDxzdHlsZT4uZm9ybS1yb3cgeyBtYXJnaW4tYm90dG9tOiAxNnB4OyB9PC9zdHlsZT4KICAgICAgICA8ZGl2IGNsYXNzPSJmb3JtLXJvdyI+CiAgICAgICAgICA8ZGVlcy1pbnB1dC10ZXh0IC5sYWJlbD0keyJWYWx1ZSJ9IC5rZXk9JHsidmFsdWUifSB0eXBlPSJwYXNzd29yZCI+PC9kZWVzLWlucHV0LXRleHQ+CiAgICAgICAgPC9kaXY+CiAgICAgIGAsbWVudU9wdGlvbnM6W3tuYW1lOiJDYW5jZWwiLGFjdGlvbjphc3luYyBpPT57aS5kZXN0cm95KCl9fSx7bmFtZToiVXBkYXRlIixhY3Rpb246YXN5bmMgaT0+e2xldCByPWkuc2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yKCJkZWVzLWlucHV0LXRleHQiKTthd2FpdCBrdC5kaXNwYXRjaEFjdGlvbihod3Qse2Nvbm5lY3Rpb25JZDp0aGlzLnNlbGVjdGVkQ29ubmVjdGlvbklkLHNjb3BlOnRoaXMuc2VsZWN0ZWRTY29wZSxzY29wZUlkOnRoaXMuc2VsZWN0ZWRTY29wZUlkLGtleTphLmtleSx2YWx1ZTpyPy52YWx1ZXx8IiJ9KSxpLmRlc3Ryb3koKX19XX0pfX07YjI9STIoV3d0KSxVaj1uZXcgV2Vha01hcCxXaj1uZXcgV2Vha01hcCxHaj1uZXcgV2Vha01hcCxZaj1uZXcgV2Vha01hcCxaaj1uZXcgV2Vha01hcCx2dChiMiw0LCJjb25uZWN0aW9uc1N0YXRlIixVd3QsU2ksVWopLHZ0KGIyLDQsImRhdGFTdGF0ZSIsand0LFNpLFdqKSx2dChiMiw0LCJzZWxlY3RlZENvbm5lY3Rpb25JZCIsVnd0LFNpLEdqKSx2dChiMiw0LCJzZWxlY3RlZFNjb3BlIixxd3QsU2ksWWopLHZ0KGIyLDQsInNlbGVjdGVkU2NvcGVJZCIsSHd0LFNpLFpqKSxTaT12dChiMiwwLCJHaXRvcHNWaWV3U2VjcmV0cyIsR3d0LFNpKSxhMShTaSwic3R5bGVzIixbcC5kZWZhdWx0U3R5bGVzLEVhXSksamUoYjIsMSxTaSl9KTt2YXIgdE10PXt9O0dlKHRNdCx7R2l0b3BzVmlld1BpcGVsaW5lczooKT0+bHJ9KTt2YXIgWnd0LFh3dCxLd3QsUXd0LEp3dCxlTXQsd2EsS2osUWosSmosZVUsbHIsdFU9Yihhc3luYygpPT57bnIoKTthd2FpdCBYcygpO01vKCk7dWUoKTtlTXQ9W3BlKCJnaXRvcHMtdmlldy1waXBlbGluZXMiKV07bHI9Y2xhc3MgZXh0ZW5kcyhKd3Q9eGUsUXd0PVtKKCldLEt3dD1bSigpXSxYd3Q9W0ooKV0sWnd0PVtKKCldLEp3dCl7Y29uc3RydWN0b3IoKXtzdXBlcigpO1J0KHRoaXMsS2osamUod2EsOCx0aGlzLHtjb25uZWN0aW9uczpbXSxhY3RpdmVDb25uZWN0aW9uSWQ6bnVsbH0pKSxqZSh3YSwxMSx0aGlzKTtSdCh0aGlzLFFqLGplKHdhLDEyLHRoaXMse3Byb2plY3RzOltdLGdyb3VwczpbXSxzZWNyZXRzOltdLHBpcGVsaW5lczpbXSxwaXBlbGluZUpvYnM6W10sY3VycmVudEpvYkxvZzoiIn0pKSxqZSh3YSwxNSx0aGlzKTtSdCh0aGlzLEpqLGplKHdhLDE2LHRoaXMsIiIpKSxqZSh3YSwxOSx0aGlzKTtSdCh0aGlzLGVVLGplKHdhLDIwLHRoaXMsIiIpKSxqZSh3YSwyMyx0aGlzKTthMSh0aGlzLCJfYXV0b1JlZnJlc2hIYW5kbGVyIik7bGV0IGE9TnQuc2VsZWN0KHI9PnIpLnN1YnNjcmliZShyPT57dGhpcy5jb25uZWN0aW9uc1N0YXRlPXJ9KTt0aGlzLnJ4U3Vic2NyaXB0aW9ucy5wdXNoKGEpO2xldCBpPWt0LnNlbGVjdChyPT5yKS5zdWJzY3JpYmUocj0+e3RoaXMuZGF0YVN0YXRlPXJ9KTt0aGlzLnJ4U3Vic2NyaXB0aW9ucy5wdXNoKGkpLHRoaXMuX2F1dG9SZWZyZXNoSGFuZGxlcj0oKT0+dGhpcy5oYW5kbGVBdXRvUmVmcmVzaCgpLGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoImdpdG9wcy1hdXRvLXJlZnJlc2giLHRoaXMuX2F1dG9SZWZyZXNoSGFuZGxlcil9ZGlzY29ubmVjdGVkQ2FsbGJhY2soKXtzdXBlci5kaXNjb25uZWN0ZWRDYWxsYmFjaygpLGRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoImdpdG9wcy1hdXRvLXJlZnJlc2giLHRoaXMuX2F1dG9SZWZyZXNoSGFuZGxlcil9aGFuZGxlQXV0b1JlZnJlc2goKXt0aGlzLmxvYWRQaXBlbGluZXMoKX1yZW5kZXIoKXtsZXQgYT10aGlzLmNvbm5lY3Rpb25zU3RhdGUuY29ubmVjdGlvbnMubWFwKHI9Pih7b3B0aW9uOmAke3IubmFtZX0gKCR7ci5wcm92aWRlclR5cGV9KWAsa2V5OnIuaWR9KSksaT10aGlzLmRhdGFTdGF0ZS5wcm9qZWN0cy5tYXAocj0+KHtvcHRpb246ci5mdWxsUGF0aHx8ci5uYW1lLGtleTpyLmlkfSkpO3JldHVybiB3YAogICAgICA8ZGl2IGNsYXNzPSJ2aWV3LXRpdGxlIj5QaXBlbGluZXM8L2Rpdj4KICAgICAgPGRpdiBjbGFzcz0idmlldy1kZXNjcmlwdGlvbiI+VmlldyBhbmQgbWFuYWdlIENJL0NEIHBpcGVsaW5lczwvZGl2PgogICAgICA8ZGl2IGNsYXNzPSJ0b29sYmFyIj4KICAgICAgICA8ZGVlcy1pbnB1dC1kcm9wZG93bgogICAgICAgICAgLmxhYmVsPSR7IkNvbm5lY3Rpb24ifQogICAgICAgICAgLm9wdGlvbnM9JHthfQogICAgICAgICAgLnNlbGVjdGVkT3B0aW9uPSR7YS5maW5kKHI9PnIua2V5PT09dGhpcy5zZWxlY3RlZENvbm5lY3Rpb25JZCl8fGFbMF19CiAgICAgICAgICBAc2VsZWN0ZWRPcHRpb249JHtyPT57dGhpcy5zZWxlY3RlZENvbm5lY3Rpb25JZD1yLmRldGFpbC5rZXksdGhpcy5sb2FkUHJvamVjdHMoKX19CiAgICAgICAgPjwvZGVlcy1pbnB1dC1kcm9wZG93bj4KICAgICAgICA8ZGVlcy1pbnB1dC1kcm9wZG93bgogICAgICAgICAgLmxhYmVsPSR7IlByb2plY3QifQogICAgICAgICAgLm9wdGlvbnM9JHtpfQogICAgICAgICAgLnNlbGVjdGVkT3B0aW9uPSR7aS5maW5kKHI9PnIua2V5PT09dGhpcy5zZWxlY3RlZFByb2plY3RJZCl8fGlbMF19CiAgICAgICAgICBAc2VsZWN0ZWRPcHRpb249JHtyPT57dGhpcy5zZWxlY3RlZFByb2plY3RJZD1yLmRldGFpbC5rZXksdGhpcy5sb2FkUGlwZWxpbmVzKCl9fQogICAgICAgID48L2RlZXMtaW5wdXQtZHJvcGRvd24+CiAgICAgICAgPGRlZXMtYnV0dG9uIEBjbGljaz0keygpPT50aGlzLmxvYWRQaXBlbGluZXMoKX0+UmVmcmVzaDwvZGVlcy1idXR0b24+CiAgICAgIDwvZGl2PgogICAgICA8ZGVlcy10YWJsZQogICAgICAgIC5oZWFkaW5nMT0keyJDSS9DRCBQaXBlbGluZXMifQogICAgICAgIC5oZWFkaW5nMj0keyJQaXBlbGluZSBydW5zIGZvciB0aGUgc2VsZWN0ZWQgcHJvamVjdCJ9CiAgICAgICAgLmRhdGE9JHt0aGlzLmRhdGFTdGF0ZS5waXBlbGluZXN9CiAgICAgICAgLmRpc3BsYXlGdW5jdGlvbj0ke3I9Pih7SUQ6ci5pZCxTdGF0dXM6ci5zdGF0dXMsUmVmOnIucmVmLER1cmF0aW9uOnIuZHVyYXRpb24/YCR7TWF0aC5yb3VuZChyLmR1cmF0aW9uKX1zYDoiLSIsU291cmNlOnIuc291cmNlLENyZWF0ZWQ6ci5jcmVhdGVkQXQ/bmV3IERhdGUoci5jcmVhdGVkQXQpLnRvTG9jYWxlU3RyaW5nKCk6Ii0ifSl9CiAgICAgICAgLmRhdGFBY3Rpb25zPSR7W3tuYW1lOiJWaWV3IEpvYnMiLGljb25OYW1lOiJsdWNpZGU6bGlzdCIsYWN0aW9uOmFzeW5jIHI9Pnthd2FpdCB0aGlzLnZpZXdKb2JzKHIpfX0se25hbWU6IlJldHJ5IixpY29uTmFtZToibHVjaWRlOnJlZnJlc2gtY3ciLGFjdGlvbjphc3luYyByPT57YXdhaXQga3QuZGlzcGF0Y2hBY3Rpb24obXd0LHtjb25uZWN0aW9uSWQ6dGhpcy5zZWxlY3RlZENvbm5lY3Rpb25JZCxwcm9qZWN0SWQ6dGhpcy5zZWxlY3RlZFByb2plY3RJZCxwaXBlbGluZUlkOnIuaWR9KX19LHtuYW1lOiJDYW5jZWwiLGljb25OYW1lOiJsdWNpZGU6eC1jaXJjbGUiLGFjdGlvbjphc3luYyByPT57YXdhaXQga3QuZGlzcGF0Y2hBY3Rpb24oZ3d0LHtjb25uZWN0aW9uSWQ6dGhpcy5zZWxlY3RlZENvbm5lY3Rpb25JZCxwcm9qZWN0SWQ6dGhpcy5zZWxlY3RlZFByb2plY3RJZCxwaXBlbGluZUlkOnIuaWR9KX19XX0KICAgICAgPjwvZGVlcy10YWJsZT4KICAgIGB9YXN5bmMgZmlyc3RVcGRhdGVkKCl7YXdhaXQgTnQuZGlzcGF0Y2hBY3Rpb24odGEsbnVsbCk7bGV0IGE9TnQuZ2V0U3RhdGUoKS5jb25uZWN0aW9uczthLmxlbmd0aD4wJiYhdGhpcy5zZWxlY3RlZENvbm5lY3Rpb25JZCYmKHRoaXMuc2VsZWN0ZWRDb25uZWN0aW9uSWQ9YVswXS5pZCxhd2FpdCB0aGlzLmxvYWRQcm9qZWN0cygpKX1hc3luYyBsb2FkUHJvamVjdHMoKXt0aGlzLnNlbGVjdGVkQ29ubmVjdGlvbklkJiZhd2FpdCBrdC5kaXNwYXRjaEFjdGlvbih4byx7Y29ubmVjdGlvbklkOnRoaXMuc2VsZWN0ZWRDb25uZWN0aW9uSWR9KX1hc3luYyBsb2FkUGlwZWxpbmVzKCl7IXRoaXMuc2VsZWN0ZWRDb25uZWN0aW9uSWR8fCF0aGlzLnNlbGVjdGVkUHJvamVjdElkfHxhd2FpdCBrdC5kaXNwYXRjaEFjdGlvbih1d3Qse2Nvbm5lY3Rpb25JZDp0aGlzLnNlbGVjdGVkQ29ubmVjdGlvbklkLHByb2plY3RJZDp0aGlzLnNlbGVjdGVkUHJvamVjdElkfSl9YXN5bmMgdmlld0pvYnMoYSl7YXdhaXQga3QuZGlzcGF0Y2hBY3Rpb24oZnd0LHtjb25uZWN0aW9uSWQ6dGhpcy5zZWxlY3RlZENvbm5lY3Rpb25JZCxwcm9qZWN0SWQ6dGhpcy5zZWxlY3RlZFByb2plY3RJZCxwaXBlbGluZUlkOmEuaWR9KTtsZXQgaT1rdC5nZXRTdGF0ZSgpLnBpcGVsaW5lSm9iczthd2FpdCBzci5EZWVzTW9kYWwuY3JlYXRlQW5kU2hvdyh7aGVhZGluZzpgUGlwZWxpbmUgIyR7YS5pZH0gLSBKb2JzYCxjb250ZW50OndgCiAgICAgICAgPHN0eWxlPgogICAgICAgICAgLmpvYnMtbGlzdCB7IGNvbG9yOiAjZmZmOyB9CiAgICAgICAgICAuam9iLWl0ZW0geyBkaXNwbGF5OiBmbGV4OyBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47IHBhZGRpbmc6IDhweCAwOyBib3JkZXItYm90dG9tOiAxcHggc29saWQgIzMzMzsgfQogICAgICAgICAgLmpvYi1uYW1lIHsgZm9udC13ZWlnaHQ6IDYwMDsgfQogICAgICAgICAgLmpvYi1zdGF0dXMgeyB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlOyBmb250LXNpemU6IDEycHg7IH0KICAgICAgICA8L3N0eWxlPgogICAgICAgIDxkaXYgY2xhc3M9ImpvYnMtbGlzdCI+CiAgICAgICAgICAke2kubWFwKHI9PndgCiAgICAgICAgICAgIDxkaXYgY2xhc3M9ImpvYi1pdGVtIj4KICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iam9iLW5hbWUiPiR7ci5uYW1lfSAoJHtyLnN0YWdlfSk8L3NwYW4+CiAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImpvYi1zdGF0dXMiPiR7ci5zdGF0dXN9IC0gJHtyLmR1cmF0aW9uP2Ake01hdGgucm91bmQoci5kdXJhdGlvbil9c2A6Ii0ifTwvc3Bhbj4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICBgKX0KICAgICAgICAgICR7aS5sZW5ndGg9PT0wP3dgPHA+Tm8gam9icyBmb3VuZC48L3A+YDoiIn0KICAgICAgICA8L2Rpdj4KICAgICAgYCxtZW51T3B0aW9uczpbe25hbWU6IkNsb3NlIixhY3Rpb246YXN5bmMgcj0+e3IuZGVzdHJveSgpfX1dfSl9fTt3YT1JMihKd3QpLEtqPW5ldyBXZWFrTWFwLFFqPW5ldyBXZWFrTWFwLEpqPW5ldyBXZWFrTWFwLGVVPW5ldyBXZWFrTWFwLHZ0KHdhLDQsImNvbm5lY3Rpb25zU3RhdGUiLFF3dCxscixLaiksdnQod2EsNCwiZGF0YVN0YXRlIixLd3QsbHIsUWopLHZ0KHdhLDQsInNlbGVjdGVkQ29ubmVjdGlvbklkIixYd3QsbHIsSmopLHZ0KHdhLDQsInNlbGVjdGVkUHJvamVjdElkIixad3QsbHIsZVUpLGxyPXZ0KHdhLDAsIkdpdG9wc1ZpZXdQaXBlbGluZXMiLGVNdCxsciksYTEobHIsInN0eWxlcyIsW3AuZGVmYXVsdFN0eWxlcyxFYSxRYAogICAgICAuc3RhdHVzLWJhZGdlIHsKICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7CiAgICAgICAgcGFkZGluZzogMnB4IDhweDsKICAgICAgICBib3JkZXItcmFkaXVzOiA0cHg7CiAgICAgICAgZm9udC1zaXplOiAxMnB4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7CiAgICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTsKICAgICAgfQogICAgICAuc3RhdHVzLXN1Y2Nlc3MgeyBiYWNrZ3JvdW5kOiAjMWEzYTFhOyBjb2xvcjogIzAwZmY4ODsgfQogICAgICAuc3RhdHVzLWZhaWxlZCB7IGJhY2tncm91bmQ6ICMzYTFhMWE7IGNvbG9yOiAjZmY0NDQ0OyB9CiAgICAgIC5zdGF0dXMtcnVubmluZyB7IGJhY2tncm91bmQ6ICMxYTJhM2E7IGNvbG9yOiAjMDBhY2ZmOyB9CiAgICAgIC5zdGF0dXMtcGVuZGluZyB7IGJhY2tncm91bmQ6ICMzYTNhMWE7IGNvbG9yOiAjZmZhYTAwOyB9CiAgICAgIC5zdGF0dXMtY2FuY2VsZWQgeyBiYWNrZ3JvdW5kOiAjMmEyYTJhOyBjb2xvcjogIzk5OTsgfQogICAgYF0pLGplKHdhLDEsbHIpfSk7dmFyIGNNdD17fTtHZShjTXQse0dpdG9wc1ZpZXdCdWlsZGxvZzooKT0+Q2l9KTt2YXIgYU10LGlNdCxyTXQsc010LG5NdCxvTXQsbE10LHYyLGFVLGlVLHJVLHNVLG5VLENpLG9VPWIoYXN5bmMoKT0+e25yKCk7YXdhaXQgWHMoKTtNbygpO3VlKCk7bE10PVtwZSgiZ2l0b3BzLXZpZXctYnVpbGRsb2ciKV07Q2k9Y2xhc3MgZXh0ZW5kcyhvTXQ9eGUsbk10PVtKKCldLHNNdD1bSigpXSxyTXQ9W0ooKV0saU10PVtKKCldLGFNdD1bSigpXSxvTXQpe2NvbnN0cnVjdG9yKCl7c3VwZXIoKTtSdCh0aGlzLGFVLGplKHYyLDgsdGhpcyx7Y29ubmVjdGlvbnM6W10sYWN0aXZlQ29ubmVjdGlvbklkOm51bGx9KSksamUodjIsMTEsdGhpcyk7UnQodGhpcyxpVSxqZSh2MiwxMix0aGlzLHtwcm9qZWN0czpbXSxncm91cHM6W10sc2VjcmV0czpbXSxwaXBlbGluZXM6W10scGlwZWxpbmVKb2JzOltdLGN1cnJlbnRKb2JMb2c6IiJ9KSksamUodjIsMTUsdGhpcyk7UnQodGhpcyxyVSxqZSh2MiwxNix0aGlzLCIiKSksamUodjIsMTksdGhpcyk7UnQodGhpcyxzVSxqZSh2MiwyMCx0aGlzLCIiKSksamUodjIsMjMsdGhpcyk7UnQodGhpcyxuVSxqZSh2MiwyNCx0aGlzLCIiKSksamUodjIsMjcsdGhpcyk7YTEodGhpcywiX2F1dG9SZWZyZXNoSGFuZGxlciIpO2xldCBhPU50LnNlbGVjdChyPT5yKS5zdWJzY3JpYmUocj0+e3RoaXMuY29ubmVjdGlvbnNTdGF0ZT1yfSk7dGhpcy5yeFN1YnNjcmlwdGlvbnMucHVzaChhKTtsZXQgaT1rdC5zZWxlY3Qocj0+cikuc3Vic2NyaWJlKHI9Pnt0aGlzLmRhdGFTdGF0ZT1yfSk7dGhpcy5yeFN1YnNjcmlwdGlvbnMucHVzaChpKSx0aGlzLl9hdXRvUmVmcmVzaEhhbmRsZXI9KCk9PnRoaXMuaGFuZGxlQXV0b1JlZnJlc2goKSxkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCJnaXRvcHMtYXV0by1yZWZyZXNoIix0aGlzLl9hdXRvUmVmcmVzaEhhbmRsZXIpfWRpc2Nvbm5lY3RlZENhbGxiYWNrKCl7c3VwZXIuZGlzY29ubmVjdGVkQ2FsbGJhY2soKSxkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCJnaXRvcHMtYXV0by1yZWZyZXNoIix0aGlzLl9hdXRvUmVmcmVzaEhhbmRsZXIpfWhhbmRsZUF1dG9SZWZyZXNoKCl7dGhpcy5mZXRjaExvZygpfXJlbmRlcigpe2xldCBhPXRoaXMuY29ubmVjdGlvbnNTdGF0ZS5jb25uZWN0aW9ucy5tYXAocz0+KHtvcHRpb246YCR7cy5uYW1lfSAoJHtzLnByb3ZpZGVyVHlwZX0pYCxrZXk6cy5pZH0pKSxpPXRoaXMuZGF0YVN0YXRlLnByb2plY3RzLm1hcChzPT4oe29wdGlvbjpzLmZ1bGxQYXRofHxzLm5hbWUsa2V5OnMuaWR9KSkscj10aGlzLmRhdGFTdGF0ZS5waXBlbGluZUpvYnMubWFwKHM9Pih7b3B0aW9uOmAke3MubmFtZX0gKCR7cy5zdGF0dXN9KWAsa2V5OnMuaWR9KSk7cmV0dXJuIHdgCiAgICAgIDxkaXYgY2xhc3M9InZpZXctdGl0bGUiPkJ1aWxkIExvZzwvZGl2PgogICAgICA8ZGl2IGNsYXNzPSJ2aWV3LWRlc2NyaXB0aW9uIj5WaWV3IHJhdyBidWlsZCBsb2dzIGZvciBDSS9DRCBqb2JzPC9kaXY+CiAgICAgIDxkaXYgY2xhc3M9InRvb2xiYXIiPgogICAgICAgIDxkZWVzLWlucHV0LWRyb3Bkb3duCiAgICAgICAgICAubGFiZWw9JHsiQ29ubmVjdGlvbiJ9CiAgICAgICAgICAub3B0aW9ucz0ke2F9CiAgICAgICAgICAuc2VsZWN0ZWRPcHRpb249JHthLmZpbmQocz0+cy5rZXk9PT10aGlzLnNlbGVjdGVkQ29ubmVjdGlvbklkKXx8YVswXX0KICAgICAgICAgIEBzZWxlY3RlZE9wdGlvbj0ke3M9Pnt0aGlzLnNlbGVjdGVkQ29ubmVjdGlvbklkPXMuZGV0YWlsLmtleSx0aGlzLmxvYWRQcm9qZWN0cygpfX0KICAgICAgICA+PC9kZWVzLWlucHV0LWRyb3Bkb3duPgogICAgICAgIDxkZWVzLWlucHV0LWRyb3Bkb3duCiAgICAgICAgICAubGFiZWw9JHsiUHJvamVjdCJ9CiAgICAgICAgICAub3B0aW9ucz0ke2l9CiAgICAgICAgICAuc2VsZWN0ZWRPcHRpb249JHtpLmZpbmQocz0+cy5rZXk9PT10aGlzLnNlbGVjdGVkUHJvamVjdElkKXx8aVswXX0KICAgICAgICAgIEBzZWxlY3RlZE9wdGlvbj0ke3M9Pnt0aGlzLnNlbGVjdGVkUHJvamVjdElkPXMuZGV0YWlsLmtleX19CiAgICAgICAgPjwvZGVlcy1pbnB1dC1kcm9wZG93bj4KICAgICAgICA8ZGVlcy1pbnB1dC1kcm9wZG93bgogICAgICAgICAgLmxhYmVsPSR7IkpvYiJ9CiAgICAgICAgICAub3B0aW9ucz0ke3J9CiAgICAgICAgICAuc2VsZWN0ZWRPcHRpb249JHtyLmZpbmQocz0+cy5rZXk9PT10aGlzLnNlbGVjdGVkSm9iSWQpfHxyWzBdfQogICAgICAgICAgQHNlbGVjdGVkT3B0aW9uPSR7cz0+e3RoaXMuc2VsZWN0ZWRKb2JJZD1zLmRldGFpbC5rZXl9fQogICAgICAgID48L2RlZXMtaW5wdXQtZHJvcGRvd24+CiAgICAgICAgPGRlZXMtYnV0dG9uIEBjbGljaz0keygpPT50aGlzLmZldGNoTG9nKCl9PkZldGNoIExvZzwvZGVlcy1idXR0b24+CiAgICAgICAgPGRlZXMtYnV0dG9uIEBjbGljaz0keygpPT50aGlzLmZldGNoTG9nKCl9PlJlZnJlc2g8L2RlZXMtYnV0dG9uPgogICAgICA8L2Rpdj4KICAgICAgJHt0aGlzLnNlbGVjdGVkSm9iSWQ/d2AKICAgICAgICA8ZGl2IGNsYXNzPSJqb2ItbWV0YSI+CiAgICAgICAgICA8c3BhbiBjbGFzcz0iam9iLW1ldGEtaXRlbSI+Sm9iOiA8c3Ryb25nPiR7dGhpcy5zZWxlY3RlZEpvYklkfTwvc3Ryb25nPjwvc3Bhbj4KICAgICAgICAgIDxzcGFuIGNsYXNzPSJqb2ItbWV0YS1pdGVtIj5Qcm9qZWN0OiA8c3Ryb25nPiR7dGhpcy5zZWxlY3RlZFByb2plY3RJZH08L3N0cm9uZz48L3NwYW4+CiAgICAgICAgPC9kaXY+CiAgICAgIGA6IiJ9CiAgICAgIDxkaXYgY2xhc3M9ImxvZy1jb250YWluZXIiPgogICAgICAgICR7dGhpcy5kYXRhU3RhdGUuY3VycmVudEpvYkxvZz90aGlzLmRhdGFTdGF0ZS5jdXJyZW50Sm9iTG9nOndgPGRpdiBjbGFzcz0ibG9nLWVtcHR5Ij5TZWxlY3QgYSBjb25uZWN0aW9uLCBwcm9qZWN0LCBhbmQgam9iLCB0aGVuIGNsaWNrICJGZXRjaCBMb2ciIHRvIHZpZXcgYnVpbGQgb3V0cHV0LjwvZGl2PmB9CiAgICAgIDwvZGl2PgogICAgYH1hc3luYyBmaXJzdFVwZGF0ZWQoKXthd2FpdCBOdC5kaXNwYXRjaEFjdGlvbih0YSxudWxsKTtsZXQgYT1OdC5nZXRTdGF0ZSgpLmNvbm5lY3Rpb25zO2EubGVuZ3RoPjAmJiF0aGlzLnNlbGVjdGVkQ29ubmVjdGlvbklkJiYodGhpcy5zZWxlY3RlZENvbm5lY3Rpb25JZD1hWzBdLmlkLGF3YWl0IHRoaXMubG9hZFByb2plY3RzKCkpfWFzeW5jIGxvYWRQcm9qZWN0cygpe3RoaXMuc2VsZWN0ZWRDb25uZWN0aW9uSWQmJmF3YWl0IGt0LmRpc3BhdGNoQWN0aW9uKHhvLHtjb25uZWN0aW9uSWQ6dGhpcy5zZWxlY3RlZENvbm5lY3Rpb25JZH0pfWFzeW5jIGZldGNoTG9nKCl7IXRoaXMuc2VsZWN0ZWRDb25uZWN0aW9uSWR8fCF0aGlzLnNlbGVjdGVkUHJvamVjdElkfHwhdGhpcy5zZWxlY3RlZEpvYklkfHxhd2FpdCBrdC5kaXNwYXRjaEFjdGlvbihid3Qse2Nvbm5lY3Rpb25JZDp0aGlzLnNlbGVjdGVkQ29ubmVjdGlvbklkLHByb2plY3RJZDp0aGlzLnNlbGVjdGVkUHJvamVjdElkLGpvYklkOnRoaXMuc2VsZWN0ZWRKb2JJZH0pfX07djI9STIob010KSxhVT1uZXcgV2Vha01hcCxpVT1uZXcgV2Vha01hcCxyVT1uZXcgV2Vha01hcCxzVT1uZXcgV2Vha01hcCxuVT1uZXcgV2Vha01hcCx2dCh2Miw0LCJjb25uZWN0aW9uc1N0YXRlIixuTXQsQ2ksYVUpLHZ0KHYyLDQsImRhdGFTdGF0ZSIsc010LENpLGlVKSx2dCh2Miw0LCJzZWxlY3RlZENvbm5lY3Rpb25JZCIsck10LENpLHJVKSx2dCh2Miw0LCJzZWxlY3RlZFByb2plY3RJZCIsaU10LENpLHNVKSx2dCh2Miw0LCJzZWxlY3RlZEpvYklkIixhTXQsQ2ksblUpLENpPXZ0KHYyLDAsIkdpdG9wc1ZpZXdCdWlsZGxvZyIsbE10LENpKSxhMShDaSwic3R5bGVzIixbcC5kZWZhdWx0U3R5bGVzLEVhLFFgCiAgICAgIC5sb2ctY29udGFpbmVyIHsKICAgICAgICBiYWNrZ3JvdW5kOiAjMGQwZDBkOwogICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICMzMzM7CiAgICAgICAgYm9yZGVyLXJhZGl1czogOHB4OwogICAgICAgIHBhZGRpbmc6IDE2cHg7CiAgICAgICAgZm9udC1mYW1pbHk6ICdGaXJhIENvZGUnLCAnQ291cmllciBOZXcnLCBtb25vc3BhY2U7CiAgICAgICAgZm9udC1zaXplOiAxM3B4OwogICAgICAgIGxpbmUtaGVpZ2h0OiAxLjY7CiAgICAgICAgY29sb3I6ICNjY2M7CiAgICAgICAgbWF4LWhlaWdodDogNjAwcHg7CiAgICAgICAgb3ZlcmZsb3cteTogYXV0bzsKICAgICAgICB3aGl0ZS1zcGFjZTogcHJlLXdyYXA7CiAgICAgICAgd29yZC1icmVhazogYnJlYWstYWxsOwogICAgICB9CiAgICAgIC5sb2ctZW1wdHkgewogICAgICAgIGNvbG9yOiAjNjY2OwogICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjsKICAgICAgICBwYWRkaW5nOiA0MHB4OwogICAgICB9CiAgICAgIC5qb2ItbWV0YSB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBnYXA6IDE2cHg7CiAgICAgICAgbWFyZ2luLWJvdHRvbTogMTZweDsKICAgICAgICBwYWRkaW5nOiAxMnB4OwogICAgICAgIGJhY2tncm91bmQ6ICMxYTFhMmU7CiAgICAgICAgYm9yZGVyLXJhZGl1czogOHB4OwogICAgICAgIGZvbnQtc2l6ZTogMTRweDsKICAgICAgfQogICAgICAuam9iLW1ldGEtaXRlbSB7CiAgICAgICAgY29sb3I6ICM5OTk7CiAgICAgIH0KICAgICAgLmpvYi1tZXRhLWl0ZW0gc3Ryb25nIHsKICAgICAgICBjb2xvcjogI2ZmZjsKICAgICAgfQogICAgYF0pLGplKHYyLDEsQ2kpfSk7bnIoKTthd2FpdCBYcygpO0FqKCk7dWUoKTt2YXIgZE10LGhNdCxwTXQsdU10LEpzLGxVLGNVO3VNdD1bcGUoImdpdG9wcy1kYXNoYm9hcmQiKV07dmFyIGtvPWNsYXNzIGV4dGVuZHMocE10PXhlLGhNdD1bSigpXSxkTXQ9W0ooKV0scE10KXtjb25zdHJ1Y3Rvcigpe3N1cGVyKCk7UnQodGhpcyxsVSxqZShKcyw4LHRoaXMse2lkZW50aXR5Om51bGwsaXNMb2dnZWRJbjohMX0pKSxqZShKcywxMSx0aGlzKTtSdCh0aGlzLGNVLGplKEpzLDEyLHRoaXMse2FjdGl2ZVZpZXc6Im92ZXJ2aWV3IixhdXRvUmVmcmVzaDohMCxyZWZyZXNoSW50ZXJ2YWw6M2U0fSkpLGplKEpzLDE1LHRoaXMpO2ExKHRoaXMsInZpZXdUYWJzIixbe25hbWU6Ik92ZXJ2aWV3IixpY29uTmFtZToibHVjaWRlOmxheW91dERhc2hib2FyZCIsZWxlbWVudDooYXN5bmMoKT0+KGF3YWl0IFBqKCkudGhlbigoKT0+a3d0KSkuR2l0b3BzVmlld092ZXJ2aWV3KSgpfSx7bmFtZToiQ29ubmVjdGlvbnMiLGljb25OYW1lOiJsdWNpZGU6cGx1ZyIsZWxlbWVudDooYXN5bmMoKT0+KGF3YWl0IE5qKCkudGhlbigoKT0+VHd0KSkuR2l0b3BzVmlld0Nvbm5lY3Rpb25zKSgpfSx7bmFtZToiUHJvamVjdHMiLGljb25OYW1lOiJsdWNpZGU6Zm9sZGVyR2l0MiIsZWxlbWVudDooYXN5bmMoKT0+KGF3YWl0IEJqKCkudGhlbigoKT0+UHd0KSkuR2l0b3BzVmlld1Byb2plY3RzKSgpfSx7bmFtZToiR3JvdXBzIixpY29uTmFtZToibHVjaWRlOnVzZXJzIixlbGVtZW50Oihhc3luYygpPT4oYXdhaXQgamooKS50aGVuKCgpPT5Cd3QpKS5HaXRvcHNWaWV3R3JvdXBzKSgpfSx7bmFtZToiU2VjcmV0cyIsaWNvbk5hbWU6Imx1Y2lkZTprZXkiLGVsZW1lbnQ6KGFzeW5jKCk9Pihhd2FpdCBYaigpLnRoZW4oKCk9Pll3dCkpLkdpdG9wc1ZpZXdTZWNyZXRzKSgpfSx7bmFtZToiUGlwZWxpbmVzIixpY29uTmFtZToibHVjaWRlOnBsYXkiLGVsZW1lbnQ6KGFzeW5jKCk9Pihhd2FpdCB0VSgpLnRoZW4oKCk9PnRNdCkpLkdpdG9wc1ZpZXdQaXBlbGluZXMpKCl9LHtuYW1lOiJCdWlsZCBMb2ciLGljb25OYW1lOiJsdWNpZGU6c2Nyb2xsVGV4dCIsZWxlbWVudDooYXN5bmMoKT0+KGF3YWl0IG9VKCkudGhlbigoKT0+Y010KSkuR2l0b3BzVmlld0J1aWxkbG9nKSgpfV0pO2ExKHRoaXMsInJlc29sdmVkVmlld1RhYnMiLFtdKTthMSh0aGlzLCJhdXRvUmVmcmVzaFRpbWVyIixudWxsKTthMSh0aGlzLCJ3cyIsbnVsbCk7YTEodGhpcywid3NSZWNvbm5lY3RUaW1lciIsbnVsbCk7YTEodGhpcywid3NJbnRlbnRpb25hbENsb3NlIiwhMSk7ZG9jdW1lbnQudGl0bGU9IkdpdE9wcyI7bGV0IGE9b3Iuc2VsZWN0KHI9PnIpLnN1YnNjcmliZShyPT57dGhpcy5sb2dpblN0YXRlPXIsci5pc0xvZ2dlZEluPyhOdC5kaXNwYXRjaEFjdGlvbih0YSxudWxsKSx0aGlzLmNvbm5lY3RXZWJTb2NrZXQoKSk6dGhpcy5kaXNjb25uZWN0V2ViU29ja2V0KCksdGhpcy5tYW5hZ2VBdXRvUmVmcmVzaFRpbWVyKCl9KTt0aGlzLnJ4U3Vic2NyaXB0aW9ucy5wdXNoKGEpO2xldCBpPU1pLnNlbGVjdChyPT5yKS5zdWJzY3JpYmUocj0+e3RoaXMudWlTdGF0ZT1yLHRoaXMuc3luY0FwcGRhc2hWaWV3KHIuYWN0aXZlVmlldyksdGhpcy5tYW5hZ2VBdXRvUmVmcmVzaFRpbWVyKCl9KTt0aGlzLnJ4U3Vic2NyaXB0aW9ucy5wdXNoKGkpfXJlbmRlcigpe3JldHVybiB3YAogICAgICA8ZGl2IGNsYXNzPSJtYWluY29udGFpbmVyIj4KICAgICAgICA8ZGVlcy1zaW1wbGUtbG9naW4gbmFtZT0iR2l0T3BzIj4KICAgICAgICAgIDxkZWVzLXNpbXBsZS1hcHBkYXNoCiAgICAgICAgICAgIG5hbWU9IkdpdE9wcyIKICAgICAgICAgICAgLnZpZXdUYWJzPSR7dGhpcy5yZXNvbHZlZFZpZXdUYWJzfQogICAgICAgICAgPgogICAgICAgICAgPC9kZWVzLXNpbXBsZS1hcHBkYXNoPgogICAgICAgIDwvZGVlcy1zaW1wbGUtbG9naW4+CiAgICAgIDwvZGl2PgogICAgICAke3RoaXMubG9naW5TdGF0ZS5pc0xvZ2dlZEluP3dgCiAgICAgICAgPGRpdgogICAgICAgICAgY2xhc3M9ImF1dG8tcmVmcmVzaC10b2dnbGUiCiAgICAgICAgICBAY2xpY2s9JHsoKT0+TWkuZGlzcGF0Y2hBY3Rpb24odnd0LG51bGwpfQogICAgICAgID4KICAgICAgICAgIDxzcGFuIGNsYXNzPSJhdXRvLXJlZnJlc2gtZG90ICR7dGhpcy51aVN0YXRlLmF1dG9SZWZyZXNoPyJhY3RpdmUiOiIifSI+PC9zcGFuPgogICAgICAgICAgQXV0by1SZWZyZXNoOiAke3RoaXMudWlTdGF0ZS5hdXRvUmVmcmVzaD8iT04iOiJPRkYifQogICAgICAgIDwvZGl2PgogICAgICBgOiIifQogICAgYH1hc3luYyBmaXJzdFVwZGF0ZWQoKXt0aGlzLnJlc29sdmVkVmlld1RhYnM9YXdhaXQgUHJvbWlzZS5hbGwodGhpcy52aWV3VGFicy5tYXAoYXN5bmMgcz0+KHtuYW1lOnMubmFtZSxpY29uTmFtZTpzLmljb25OYW1lLGVsZW1lbnQ6YXdhaXQgcy5lbGVtZW50fSkpKSx0aGlzLnJlcXVlc3RVcGRhdGUoKSxhd2FpdCB0aGlzLnVwZGF0ZUNvbXBsZXRlO2xldCBhPXRoaXMuc2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yKCJkZWVzLXNpbXBsZS1sb2dpbiIpO2EmJmEuYWRkRXZlbnRMaXN0ZW5lcigibG9naW4iLHM9Pnt0aGlzLmxvZ2luKHMuZGV0YWlsLmRhdGEudXNlcm5hbWUscy5kZXRhaWwuZGF0YS5wYXNzd29yZCl9KTtsZXQgaT10aGlzLnNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvcigiZGVlcy1zaW1wbGUtYXBwZGFzaCIpO2lmKGkmJihpLmFkZEV2ZW50TGlzdGVuZXIoInZpZXctc2VsZWN0IixzPT57bGV0IG49cy5kZXRhaWwudmlldy5uYW1lLnRvTG93ZXJDYXNlKCk7TWkuZGlzcGF0Y2hBY3Rpb24odjQse3ZpZXc6bn0pfSksaS5hZGRFdmVudExpc3RlbmVyKCJsb2dvdXQiLGFzeW5jKCk9Pnthd2FpdCBvci5kaXNwYXRjaEFjdGlvbihvZCxudWxsKX0pKSxpJiZ0aGlzLnJlc29sdmVkVmlld1RhYnMubGVuZ3RoPjApe2xldCBzPXRoaXMucmVzb2x2ZWRWaWV3VGFicy5maW5kKG49Pm4ubmFtZS50b0xvd2VyQ2FzZSgpPT09dGhpcy51aVN0YXRlLmFjdGl2ZVZpZXcpfHx0aGlzLnJlc29sdmVkVmlld1RhYnNbMF07YXdhaXQgaS5sb2FkVmlldyhzKX1sZXQgcj1vci5nZXRTdGF0ZSgpO2lmKHIuaWRlbnRpdHk/Lmp3dClpZihyLmlkZW50aXR5LmV4cGlyZXNBdD5EYXRlLm5vdygpKXRyeXsoYXdhaXQgbmV3IHUxLnBsdWdpbnMudHlwZWRyZXF1ZXN0LlR5cGVkUmVxdWVzdCgiL3R5cGVkcmVxdWVzdCIsInZlcmlmeUlkZW50aXR5IikuZmlyZSh7aWRlbnRpdHk6ci5pZGVudGl0eX0pKS52YWxpZD8odGhpcy5sb2dpblN0YXRlPXIsYSYmYXdhaXQgYS5zd2l0Y2hUb1Nsb3R0ZWRDb250ZW50KCkpOmF3YWl0IG9yLmRpc3BhdGNoQWN0aW9uKG9kLG51bGwpfWNhdGNoKHMpe2NvbnNvbGUud2FybigiU3RvcmVkIHNlc3Npb24gaW52YWxpZCwgcmV0dXJuaW5nIHRvIGxvZ2luOiIscyksYXdhaXQgb3IuZGlzcGF0Y2hBY3Rpb24ob2QsbnVsbCl9ZWxzZSBhd2FpdCBvci5kaXNwYXRjaEFjdGlvbihvZCxudWxsKX1kaXNjb25uZWN0ZWRDYWxsYmFjaygpe3N1cGVyLmRpc2Nvbm5lY3RlZENhbGxiYWNrKCksdGhpcy5jbGVhckF1dG9SZWZyZXNoVGltZXIoKSx0aGlzLmRpc2Nvbm5lY3RXZWJTb2NrZXQoKX1tYW5hZ2VBdXRvUmVmcmVzaFRpbWVyKCl7dGhpcy5jbGVhckF1dG9SZWZyZXNoVGltZXIoKTtsZXR7YXV0b1JlZnJlc2g6YSxyZWZyZXNoSW50ZXJ2YWw6aX09dGhpcy51aVN0YXRlO2EmJnRoaXMubG9naW5TdGF0ZS5pc0xvZ2dlZEluJiYodGhpcy5hdXRvUmVmcmVzaFRpbWVyPXNldEludGVydmFsKCgpPT57ZG9jdW1lbnQuZGlzcGF0Y2hFdmVudChuZXcgQ3VzdG9tRXZlbnQoImdpdG9wcy1hdXRvLXJlZnJlc2giKSl9LGkpKX1jbGVhckF1dG9SZWZyZXNoVGltZXIoKXt0aGlzLmF1dG9SZWZyZXNoVGltZXImJihjbGVhckludGVydmFsKHRoaXMuYXV0b1JlZnJlc2hUaW1lciksdGhpcy5hdXRvUmVmcmVzaFRpbWVyPW51bGwpfWNvbm5lY3RXZWJTb2NrZXQoKXtpZih0aGlzLndzKXJldHVybjtsZXQgaT1gJHtsb2NhdGlvbi5wcm90b2NvbD09PSJodHRwczoiPyJ3c3M6Ijoid3M6In0vLyR7bG9jYXRpb24uaG9zdH1gO3RyeXt0aGlzLndzSW50ZW50aW9uYWxDbG9zZT0hMSx0aGlzLndzPW5ldyBXZWJTb2NrZXQoaSksdGhpcy53cy5hZGRFdmVudExpc3RlbmVyKCJtZXNzYWdlIixyPT57dHJ5e2xldCBzPUpTT04ucGFyc2Uoci5kYXRhKTsocz8ubWV0aG9kPT09IndlYmhvb2tOb3RpZmljYXRpb24ifHxzPy50eXBlPT09IndlYmhvb2tFdmVudCIpJiYoY29uc29sZS5sb2coIldlYmhvb2sgZXZlbnQgcmVjZWl2ZWQ6IixzKSxkb2N1bWVudC5kaXNwYXRjaEV2ZW50KG5ldyBDdXN0b21FdmVudCgiZ2l0b3BzLWF1dG8tcmVmcmVzaCIpKSl9Y2F0Y2h7fX0pLHRoaXMud3MuYWRkRXZlbnRMaXN0ZW5lcigiY2xvc2UiLCgpPT57dGhpcy53cz1udWxsLCF0aGlzLndzSW50ZW50aW9uYWxDbG9zZSYmdGhpcy5sb2dpblN0YXRlLmlzTG9nZ2VkSW4mJih0aGlzLndzUmVjb25uZWN0VGltZXI9c2V0VGltZW91dCgoKT0+e3RoaXMuY29ubmVjdFdlYlNvY2tldCgpfSw1ZTMpKX0pLHRoaXMud3MuYWRkRXZlbnRMaXN0ZW5lcigiZXJyb3IiLCgpPT57fSl9Y2F0Y2gocil7Y29uc29sZS53YXJuKCJXZWJTb2NrZXQgY29ubmVjdGlvbiBmYWlsZWQ6IixyKX19ZGlzY29ubmVjdFdlYlNvY2tldCgpe3RoaXMud3NJbnRlbnRpb25hbENsb3NlPSEwLHRoaXMud3NSZWNvbm5lY3RUaW1lciYmKGNsZWFyVGltZW91dCh0aGlzLndzUmVjb25uZWN0VGltZXIpLHRoaXMud3NSZWNvbm5lY3RUaW1lcj1udWxsKSx0aGlzLndzJiYodGhpcy53cy5jbG9zZSgpLHRoaXMud3M9bnVsbCl9YXN5bmMgbG9naW4oYSxpKXtsZXQgcj1hd2FpdCB0aGlzLmRvbXRvb2xzUHJvbWlzZSxzPXRoaXMuc2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yKCJkZWVzLXNpbXBsZS1sb2dpbiIpLG49cz8uc2hhZG93Um9vdD8ucXVlcnlTZWxlY3RvcigiZGVlcy1mb3JtIik7biYmbi5zZXRTdGF0dXMoInBlbmRpbmciLCJMb2dnaW5nIGluLi4uIiksKGF3YWl0IG9yLmRpc3BhdGNoQWN0aW9uKHN3dCx7dXNlcm5hbWU6YSxwYXNzd29yZDppfSkpLmlkZW50aXR5PyhuJiZuLnNldFN0YXR1cygic3VjY2VzcyIsIkxvZ2dlZCBpbiEiKSxzJiZhd2FpdCBzLnN3aXRjaFRvU2xvdHRlZENvbnRlbnQoKSk6biYmKG4uc2V0U3RhdHVzKCJlcnJvciIsIkxvZ2luIGZhaWxlZCEiKSxhd2FpdCByLmNvbnZlbmllbmNlLnNtYXJ0ZGVsYXkuZGVsYXlGb3IoMmUzKSxuLnJlc2V0KCkpfXN5bmNBcHBkYXNoVmlldyhhKXtsZXQgaT10aGlzLnNoYWRvd1Jvb3Q/LnF1ZXJ5U2VsZWN0b3IoImRlZXMtc2ltcGxlLWFwcGRhc2giKTtpZighaXx8dGhpcy5yZXNvbHZlZFZpZXdUYWJzLmxlbmd0aD09PTApcmV0dXJuO2xldCByPXRoaXMucmVzb2x2ZWRWaWV3VGFicy5maW5kKHM9PnMubmFtZS50b0xvd2VyQ2FzZSgpPT09YSk7ciYmaS5sb2FkVmlldyhyKX19O0pzPUkyKHBNdCksbFU9bmV3IFdlYWtNYXAsY1U9bmV3IFdlYWtNYXAsdnQoSnMsNCwibG9naW5TdGF0ZSIsaE10LGtvLGxVKSx2dChKcyw0LCJ1aVN0YXRlIixkTXQsa28sY1UpLGtvPXZ0KEpzLDAsIkdpdG9wc0Rhc2hib2FyZCIsdU10LGtvKSxhMShrbywic3R5bGVzIixbcC5kZWZhdWx0U3R5bGVzLFFgCiAgICAgIDpob3N0IHsKICAgICAgICBkaXNwbGF5OiBibG9jazsKICAgICAgICB3aWR0aDogMTAwJTsKICAgICAgICBoZWlnaHQ6IDEwMCU7CiAgICAgIH0KICAgICAgLm1haW5jb250YWluZXIgewogICAgICAgIHdpZHRoOiAxMDAlOwogICAgICAgIGhlaWdodDogMTAwdmg7CiAgICAgIH0KICAgICAgLmF1dG8tcmVmcmVzaC10b2dnbGUgewogICAgICAgIHBvc2l0aW9uOiBmaXhlZDsKICAgICAgICBib3R0b206IDE2cHg7CiAgICAgICAgcmlnaHQ6IDE2cHg7CiAgICAgICAgei1pbmRleDogMTAwMDsKICAgICAgICBiYWNrZ3JvdW5kOiByZ2JhKDMwLCAzMCwgNTAsIDAuOSk7CiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjEpOwogICAgICAgIGJvcmRlci1yYWRpdXM6IDhweDsKICAgICAgICBwYWRkaW5nOiA4cHggMTRweDsKICAgICAgICBjb2xvcjogI2NjYzsKICAgICAgICBmb250LXNpemU6IDEycHg7CiAgICAgICAgY3Vyc29yOiBwb2ludGVyOwogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBnYXA6IDhweDsKICAgICAgICBiYWNrZHJvcC1maWx0ZXI6IGJsdXIoOHB4KTsKICAgICAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kIDAuMnM7CiAgICAgIH0KICAgICAgLmF1dG8tcmVmcmVzaC10b2dnbGU6aG92ZXIgewogICAgICAgIGJhY2tncm91bmQ6IHJnYmEoNDAsIDQwLCA3MCwgMC45NSk7CiAgICAgIH0KICAgICAgLmF1dG8tcmVmcmVzaC1kb3QgewogICAgICAgIHdpZHRoOiA4cHg7CiAgICAgICAgaGVpZ2h0OiA4cHg7CiAgICAgICAgYm9yZGVyLXJhZGl1czogNTAlOwogICAgICAgIGJhY2tncm91bmQ6ICM2NjY7CiAgICAgIH0KICAgICAgLmF1dG8tcmVmcmVzaC1kb3QuYWN0aXZlIHsKICAgICAgICBiYWNrZ3JvdW5kOiAjMDBmZjg4OwogICAgICB9CiAgICBgXSksamUoSnMsMSxrbyk7YXdhaXQgUGooKTthd2FpdCBOaigpO2F3YWl0IEJqKCk7YXdhaXQgamooKTthd2FpdCBYaigpO2F3YWl0IHRVKCk7YXdhaXQgb1UoKTtucigpO3VlKCk7eDUucmVuZGVyKHdgCiAgPGdpdG9wcy1kYXNoYm9hcmQ+PC9naXRvcHMtZGFzaGJvYXJkPgpgLGRvY3VtZW50LmJvZHkpOwovKiEgQnVuZGxlZCBsaWNlbnNlIGluZm9ybWF0aW9uOgoKQGxpdC9yZWFjdGl2ZS1lbGVtZW50L2Nzcy10YWcuanM6CiAgKCoqCiAgICogQGxpY2Vuc2UKICAgKiBDb3B5cmlnaHQgMjAxOSBHb29nbGUgTExDCiAgICogU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEJTRC0zLUNsYXVzZQogICAqKQoKQGxpdC9yZWFjdGl2ZS1lbGVtZW50L3JlYWN0aXZlLWVsZW1lbnQuanM6CmxpdC1odG1sL2xpdC1odG1sLmpzOgpsaXQtZWxlbWVudC9saXQtZWxlbWVudC5qczoKQGxpdC9yZWFjdGl2ZS1lbGVtZW50L2RlY29yYXRvcnMvcHJvcGVydHkuanM6CmxpdC1odG1sL2RpcmVjdGl2ZS5qczoKbGl0LWh0bWwvZGlyZWN0aXZlcy91bnNhZmUtaHRtbC5qczoKQGxpdC9yZWFjdGl2ZS1lbGVtZW50L2RlY29yYXRvcnMvY3VzdG9tLWVsZW1lbnQuanM6CkBsaXQvcmVhY3RpdmUtZWxlbWVudC9kZWNvcmF0b3JzL3N0YXRlLmpzOgpAbGl0L3JlYWN0aXZlLWVsZW1lbnQvZGVjb3JhdG9ycy9ldmVudC1vcHRpb25zLmpzOgpAbGl0L3JlYWN0aXZlLWVsZW1lbnQvZGVjb3JhdG9ycy9iYXNlLmpzOgpAbGl0L3JlYWN0aXZlLWVsZW1lbnQvZGVjb3JhdG9ycy9xdWVyeS5qczoKQGxpdC9yZWFjdGl2ZS1lbGVtZW50L2RlY29yYXRvcnMvcXVlcnktYWxsLmpzOgpAbGl0L3JlYWN0aXZlLWVsZW1lbnQvZGVjb3JhdG9ycy9xdWVyeS1hc3luYy5qczoKQGxpdC9yZWFjdGl2ZS1lbGVtZW50L2RlY29yYXRvcnMvcXVlcnktYXNzaWduZWQtbm9kZXMuanM6CmxpdC1odG1sL2FzeW5jLWRpcmVjdGl2ZS5qczoKbGl0LWh0bWwvZGlyZWN0aXZlcy91bnRpbC5qczoKbGl0LWh0bWwvZGlyZWN0aXZlcy9hc3luYy1yZXBsYWNlLmpzOgpsaXQtaHRtbC9kaXJlY3RpdmVzL2FzeW5jLWFwcGVuZC5qczoKbGl0LWh0bWwvZGlyZWN0aXZlcy9yZXBlYXQuanM6CiAgKCoqCiAgICogQGxpY2Vuc2UKICAgKiBDb3B5cmlnaHQgMjAxNyBHb29nbGUgTExDCiAgICogU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEJTRC0zLUNsYXVzZQogICAqKQoKbGl0LWh0bWwvaXMtc2VydmVyLmpzOgogICgqKgogICAqIEBsaWNlbnNlCiAgICogQ29weXJpZ2h0IDIwMjIgR29vZ2xlIExMQwogICAqIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBCU0QtMy1DbGF1c2UKICAgKikKCnN3ZWV0LXNjcm9sbC9zd2VldC1zY3JvbGwuanM6CiAgKCohIEBwcmVzZXJ2ZSBzd2VldC1zY3JvbGwgdjQuMC4wIC0gdHN1eW9zaGl3YWRhIHwgTUlUIExpY2Vuc2UgKikKICAoKiEgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKICAgICAgQ29weXJpZ2h0IChjKSBNaWNyb3NvZnQgQ29ycG9yYXRpb24uIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgICAgIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOyB5b3UgbWF5IG5vdCB1c2UKICAgICAgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUKICAgICAgTGljZW5zZSBhdCBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKICAKICAgICAgVEhJUyBDT0RFIElTIFBST1ZJREVEIE9OIEFOICpBUyBJUyogQkFTSVMsIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWQogICAgICBLSU5ELCBFSVRIRVIgRVhQUkVTUyBPUiBJTVBMSUVELCBJTkNMVURJTkcgV0lUSE9VVCBMSU1JVEFUSU9OIEFOWSBJTVBMSUVECiAgICAgIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBUSVRMRSwgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UsCiAgICAgIE1FUkNIQU5UQUJMSVRZIE9SIE5PTi1JTkZSSU5HRU1FTlQuCiAgCiAgICAgIFNlZSB0aGUgQXBhY2hlIFZlcnNpb24gMi4wIExpY2Vuc2UgZm9yIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucwogICAgICBhbmQgbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCiAgICAgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqICopCgpsaXQtaHRtbC9zdGF0aWMuanM6CmxpdC1odG1sL2RpcmVjdGl2ZS1oZWxwZXJzLmpzOgogICgqKgogICAqIEBsaWNlbnNlCiAgICogQ29weXJpZ2h0IDIwMjAgR29vZ2xlIExMQwogICAqIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBCU0QtMy1DbGF1c2UKICAgKikKCkBsaXQvcmVhY3RpdmUtZWxlbWVudC9kZWNvcmF0b3JzL3F1ZXJ5LWFzc2lnbmVkLWVsZW1lbnRzLmpzOgpsaXQtaHRtbC9kaXJlY3RpdmVzL3ByaXZhdGUtYXN5bmMtaGVscGVycy5qczoKbGl0LWh0bWwvZGlyZWN0aXZlcy9rZXllZC5qczoKICAoKioKICAgKiBAbGljZW5zZQogICAqIENvcHlyaWdodCAyMDIxIEdvb2dsZSBMTEMKICAgKiBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQlNELTMtQ2xhdXNlCiAgICopCgpAZm9ydGF3ZXNvbWUvZm9udGF3ZXNvbWUtc3ZnLWNvcmUvaW5kZXgubWpzOgpAZm9ydGF3ZXNvbWUvZnJlZS1icmFuZHMtc3ZnLWljb25zL2luZGV4Lm1qczoKQGZvcnRhd2Vzb21lL2ZyZWUtcmVndWxhci1zdmctaWNvbnMvaW5kZXgubWpzOgpAZm9ydGF3ZXNvbWUvZnJlZS1zb2xpZC1zdmctaWNvbnMvaW5kZXgubWpzOgogICgqIQogICAqIEZvbnQgQXdlc29tZSBGcmVlIDcuMi4wIGJ5IEBmb250YXdlc29tZSAtIGh0dHBzOi8vZm9udGF3ZXNvbWUuY29tCiAgICogTGljZW5zZSAtIGh0dHBzOi8vZm9udGF3ZXNvbWUuY29tL2xpY2Vuc2UvZnJlZSAoSWNvbnM6IENDIEJZIDQuMCwgRm9udHM6IFNJTCBPRkwgMS4xLCBDb2RlOiBNSVQgTGljZW5zZSkKICAgKiBDb3B5cmlnaHQgMjAyNiBGb250aWNvbnMsIEluYy4KICAgKikKCmx1Y2lkZS9kaXN0L2Nqcy9sdWNpZGUuanM6CiAgKCoqCiAgICogQGxpY2Vuc2UgbHVjaWRlIHYwLjU2NC4wIC0gSVNDCiAgICoKICAgKiBUaGlzIHNvdXJjZSBjb2RlIGlzIGxpY2Vuc2VkIHVuZGVyIHRoZSBJU0MgbGljZW5zZS4KICAgKiBTZWUgdGhlIExJQ0VOU0UgZmlsZSBpbiB0aGUgcm9vdCBkaXJlY3Rvcnkgb2YgdGhpcyBzb3VyY2UgdHJlZS4KICAgKikKCmliYW50b29scy9qc25leHQvaWJhbnRvb2xzLmpzOgogICgqIQogICAqIEBsaWNlbnNlCiAgICogQ29weXJpZ2h0IFNhxaFhIEpvdmFuacSHCiAgICogTGljZW5zZWQgdW5kZXIgdGhlIE1vemlsbGEgUHVibGljIExpY2Vuc2UsIFZlcnNpb24gMi4wIG9yIHRoZSBNSVQgbGljZW5zZSwKICAgKiBhdCB5b3VyIG9wdGlvbi4gVGhpcyBmaWxlIG1heSBub3QgYmUgY29waWVkLCBtb2RpZmllZCwgb3IgZGlzdHJpYnV0ZWQKICAgKiBleGNlcHQgYWNjb3JkaW5nIHRvIHRob3NlIHRlcm1zLgogICAqIFNQRFgtRmlsZUNvcHlyaWdodFRleHQ6IFNhxaFhIEpvdmFuacSHCiAgICogU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IE1JVCBvciBNUEwvMi4wCiAgICopCiAgKCoqCiAgICogVmFsaWRhdGlvbiwgZXh0cmFjdGlvbiBhbmQgY3JlYXRpb24gb2YgSUJBTiwgQkJBTiwgQklDL1NXSUZUIG51bWJlcnMgcGx1cyBzb21lIG90aGVyIGhlbHBmdWwgc3R1ZmYKICAgKiBAcGFja2FnZSBEb2N1bWVudGF0aW9uCiAgICogQGF1dGhvciBTYcWhYSBKb3ZhbmnEhwogICAqIEBtb2R1bGUgaWJhbnRvb2xzCiAgICogQHZlcnNpb24gNC41LjEKICAgKiBAbGljZW5zZSBNSVQgb3IgTVBMLTIuMAogICAqIEBwcmVmZXJyZWQKICAgKikKKi8KLy8jIHNvdXJjZU1hcHBpbmdVUkw9YnVuZGxlLTE3NzE5NjIwNTY3OTguanMubWFwCg==" }, { "path": "index.html", diff --git a/ts_interfaces/requests/index.ts b/ts_interfaces/requests/index.ts index 2b48a76..e00c0ae 100644 --- a/ts_interfaces/requests/index.ts +++ b/ts_interfaces/requests/index.ts @@ -5,3 +5,4 @@ export * from './groups.ts'; export * from './secrets.ts'; export * from './pipelines.ts'; export * from './logs.ts'; +export * from './webhook.ts'; diff --git a/ts_interfaces/requests/webhook.ts b/ts_interfaces/requests/webhook.ts new file mode 100644 index 0000000..0e2fbef --- /dev/null +++ b/ts_interfaces/requests/webhook.ts @@ -0,0 +1,18 @@ +import * as plugins from '../plugins.ts'; +import * as data from '../data/index.ts'; + +export interface IReq_WebhookNotification extends plugins.typedrequestInterfaces.implementsTR< + plugins.typedrequestInterfaces.ITypedRequest, + IReq_WebhookNotification +> { + method: 'webhookNotification'; + request: { + connectionId: string; + provider: string; + event: string; + timestamp: number; + }; + response: { + ok: boolean; + }; +} diff --git a/ts_web/00_commitinfo_data.ts b/ts_web/00_commitinfo_data.ts index 5f20a63..0dde4d7 100644 --- a/ts_web/00_commitinfo_data.ts +++ b/ts_web/00_commitinfo_data.ts @@ -3,6 +3,6 @@ */ export const commitinfo = { name: '@serve.zone/gitops', - version: '2.5.0', + version: '2.6.0', description: 'GitOps management app for Gitea and GitLab - manage secrets, browse projects, view CI pipelines, and stream build logs' } diff --git a/ts_web/appstate.ts b/ts_web/appstate.ts index 10292c8..49f6e64 100644 --- a/ts_web/appstate.ts +++ b/ts_web/appstate.ts @@ -543,3 +543,9 @@ export const toggleAutoRefreshAction = uiStatePart.createAction(async (statePart const state = statePartArg.getState(); return { ...state, autoRefresh: !state.autoRefresh }; }); + +export const setRefreshIntervalAction = uiStatePart.createAction<{ interval: number }>( + async (statePartArg, dataArg) => { + return { ...statePartArg.getState(), refreshInterval: dataArg.interval }; + }, +); diff --git a/ts_web/elements/gitops-dashboard.ts b/ts_web/elements/gitops-dashboard.ts index 9c55df7..9225dd3 100644 --- a/ts_web/elements/gitops-dashboard.ts +++ b/ts_web/elements/gitops-dashboard.ts @@ -43,6 +43,14 @@ export class GitopsDashboard extends DeesElement { private resolvedViewTabs: Array<{ name: string; iconName: string; element: any }> = []; + // Auto-refresh timer + private autoRefreshTimer: ReturnType | null = null; + + // WebSocket client + private ws: WebSocket | null = null; + private wsReconnectTimer: ReturnType | null = null; + private wsIntentionalClose = false; + constructor() { super(); document.title = 'GitOps'; @@ -53,7 +61,11 @@ export class GitopsDashboard extends DeesElement { this.loginState = loginState; if (loginState.isLoggedIn) { appstate.connectionsStatePart.dispatchAction(appstate.fetchConnectionsAction, null); + this.connectWebSocket(); + } else { + this.disconnectWebSocket(); } + this.manageAutoRefreshTimer(); }); this.rxSubscriptions.push(loginSubscription); @@ -62,6 +74,7 @@ export class GitopsDashboard extends DeesElement { .subscribe((uiState) => { this.uiState = uiState; this.syncAppdashView(uiState.activeView); + this.manageAutoRefreshTimer(); }); this.rxSubscriptions.push(uiSubscription); } @@ -78,6 +91,36 @@ export class GitopsDashboard extends DeesElement { width: 100%; height: 100vh; } + .auto-refresh-toggle { + position: fixed; + bottom: 16px; + right: 16px; + z-index: 1000; + background: rgba(30, 30, 50, 0.9); + border: 1px solid rgba(255, 255, 255, 0.1); + border-radius: 8px; + padding: 8px 14px; + color: #ccc; + font-size: 12px; + cursor: pointer; + display: flex; + align-items: center; + gap: 8px; + backdrop-filter: blur(8px); + transition: background 0.2s; + } + .auto-refresh-toggle:hover { + background: rgba(40, 40, 70, 0.95); + } + .auto-refresh-dot { + width: 8px; + height: 8px; + border-radius: 50%; + background: #666; + } + .auto-refresh-dot.active { + background: #00ff88; + } `, ]; @@ -92,6 +135,15 @@ export class GitopsDashboard extends DeesElement { + ${this.loginState.isLoggedIn ? html` +
    appstate.uiStatePart.dispatchAction(appstate.toggleAutoRefreshAction, null)} + > + + Auto-Refresh: ${this.uiState.autoRefresh ? 'ON' : 'OFF'} +
    + ` : ''} `; } @@ -160,6 +212,93 @@ export class GitopsDashboard extends DeesElement { } } + public override disconnectedCallback() { + super.disconnectedCallback(); + this.clearAutoRefreshTimer(); + this.disconnectWebSocket(); + } + + // ============================================================================ + // Auto-refresh timer management + // ============================================================================ + + private manageAutoRefreshTimer(): void { + this.clearAutoRefreshTimer(); + const { autoRefresh, refreshInterval } = this.uiState; + if (autoRefresh && this.loginState.isLoggedIn) { + this.autoRefreshTimer = setInterval(() => { + document.dispatchEvent(new CustomEvent('gitops-auto-refresh')); + }, refreshInterval); + } + } + + private clearAutoRefreshTimer(): void { + if (this.autoRefreshTimer) { + clearInterval(this.autoRefreshTimer); + this.autoRefreshTimer = null; + } + } + + // ============================================================================ + // WebSocket client for webhook push notifications + // ============================================================================ + + private connectWebSocket(): void { + if (this.ws) return; + + const protocol = location.protocol === 'https:' ? 'wss:' : 'ws:'; + const wsUrl = `${protocol}//${location.host}`; + + try { + this.wsIntentionalClose = false; + this.ws = new WebSocket(wsUrl); + + this.ws.addEventListener('message', (event) => { + try { + const data = JSON.parse(event.data); + // TypedSocket wraps messages; look for webhookNotification method + if (data?.method === 'webhookNotification' || data?.type === 'webhookEvent') { + console.log('Webhook event received:', data); + document.dispatchEvent(new CustomEvent('gitops-auto-refresh')); + } + } catch { + // Not JSON, ignore + } + }); + + this.ws.addEventListener('close', () => { + this.ws = null; + if (!this.wsIntentionalClose && this.loginState.isLoggedIn) { + this.wsReconnectTimer = setTimeout(() => { + this.connectWebSocket(); + }, 5000); + } + }); + + this.ws.addEventListener('error', () => { + // Will trigger close event + }); + } catch (err) { + console.warn('WebSocket connection failed:', err); + } + } + + private disconnectWebSocket(): void { + this.wsIntentionalClose = true; + if (this.wsReconnectTimer) { + clearTimeout(this.wsReconnectTimer); + this.wsReconnectTimer = null; + } + if (this.ws) { + this.ws.close(); + this.ws = null; + } + } + + // ============================================================================ + // Login + // ============================================================================ + private async login(username: string, password: string) { const domtools = await this.domtoolsPromise; const simpleLogin = this.shadowRoot!.querySelector('dees-simple-login') as any; diff --git a/ts_web/elements/views/buildlog/index.ts b/ts_web/elements/views/buildlog/index.ts index e5dcab5..8647a55 100644 --- a/ts_web/elements/views/buildlog/index.ts +++ b/ts_web/elements/views/buildlog/index.ts @@ -38,6 +38,8 @@ export class GitopsViewBuildlog extends DeesElement { @state() accessor selectedJobId: string = ''; + private _autoRefreshHandler: () => void; + constructor() { super(); const connSub = appstate.connectionsStatePart @@ -49,6 +51,18 @@ export class GitopsViewBuildlog extends DeesElement { .select((s) => s) .subscribe((s) => { this.dataState = s; }); this.rxSubscriptions.push(dataSub); + + this._autoRefreshHandler = () => this.handleAutoRefresh(); + document.addEventListener('gitops-auto-refresh', this._autoRefreshHandler); + } + + public override disconnectedCallback() { + super.disconnectedCallback(); + document.removeEventListener('gitops-auto-refresh', this._autoRefreshHandler); + } + + private handleAutoRefresh(): void { + this.fetchLog(); } public static styles = [ diff --git a/ts_web/elements/views/connections/index.ts b/ts_web/elements/views/connections/index.ts index 2e0121a..3614c4e 100644 --- a/ts_web/elements/views/connections/index.ts +++ b/ts_web/elements/views/connections/index.ts @@ -19,12 +19,26 @@ export class GitopsViewConnections extends DeesElement { activeConnectionId: null, }; + private _autoRefreshHandler: () => void; + constructor() { super(); const sub = appstate.connectionsStatePart .select((s) => s) .subscribe((s) => { this.connectionsState = s; }); this.rxSubscriptions.push(sub); + + this._autoRefreshHandler = () => this.handleAutoRefresh(); + document.addEventListener('gitops-auto-refresh', this._autoRefreshHandler); + } + + public override disconnectedCallback() { + super.disconnectedCallback(); + document.removeEventListener('gitops-auto-refresh', this._autoRefreshHandler); + } + + private handleAutoRefresh(): void { + this.refresh(); } public static styles = [ diff --git a/ts_web/elements/views/groups/index.ts b/ts_web/elements/views/groups/index.ts index 34fee99..0ce90e7 100644 --- a/ts_web/elements/views/groups/index.ts +++ b/ts_web/elements/views/groups/index.ts @@ -32,6 +32,8 @@ export class GitopsViewGroups extends DeesElement { @state() accessor selectedConnectionId: string = ''; + private _autoRefreshHandler: () => void; + constructor() { super(); const connSub = appstate.connectionsStatePart @@ -43,6 +45,18 @@ export class GitopsViewGroups extends DeesElement { .select((s) => s) .subscribe((s) => { this.dataState = s; }); this.rxSubscriptions.push(dataSub); + + this._autoRefreshHandler = () => this.handleAutoRefresh(); + document.addEventListener('gitops-auto-refresh', this._autoRefreshHandler); + } + + public override disconnectedCallback() { + super.disconnectedCallback(); + document.removeEventListener('gitops-auto-refresh', this._autoRefreshHandler); + } + + private handleAutoRefresh(): void { + this.loadGroups(); } public static styles = [ diff --git a/ts_web/elements/views/overview/index.ts b/ts_web/elements/views/overview/index.ts index b6290dd..9cad8e0 100644 --- a/ts_web/elements/views/overview/index.ts +++ b/ts_web/elements/views/overview/index.ts @@ -30,6 +30,8 @@ export class GitopsViewOverview extends DeesElement { currentJobLog: '', }; + private _autoRefreshHandler: () => void; + constructor() { super(); const connSub = appstate.connectionsStatePart @@ -41,6 +43,18 @@ export class GitopsViewOverview extends DeesElement { .select((s) => s) .subscribe((s) => { this.dataState = s; }); this.rxSubscriptions.push(dataSub); + + this._autoRefreshHandler = () => this.handleAutoRefresh(); + document.addEventListener('gitops-auto-refresh', this._autoRefreshHandler); + } + + public override disconnectedCallback() { + super.disconnectedCallback(); + document.removeEventListener('gitops-auto-refresh', this._autoRefreshHandler); + } + + private handleAutoRefresh(): void { + appstate.connectionsStatePart.dispatchAction(appstate.fetchConnectionsAction, null); } public static styles = [ diff --git a/ts_web/elements/views/pipelines/index.ts b/ts_web/elements/views/pipelines/index.ts index ec47465..1bf625d 100644 --- a/ts_web/elements/views/pipelines/index.ts +++ b/ts_web/elements/views/pipelines/index.ts @@ -35,6 +35,8 @@ export class GitopsViewPipelines extends DeesElement { @state() accessor selectedProjectId: string = ''; + private _autoRefreshHandler: () => void; + constructor() { super(); const connSub = appstate.connectionsStatePart @@ -46,6 +48,18 @@ export class GitopsViewPipelines extends DeesElement { .select((s) => s) .subscribe((s) => { this.dataState = s; }); this.rxSubscriptions.push(dataSub); + + this._autoRefreshHandler = () => this.handleAutoRefresh(); + document.addEventListener('gitops-auto-refresh', this._autoRefreshHandler); + } + + public override disconnectedCallback() { + super.disconnectedCallback(); + document.removeEventListener('gitops-auto-refresh', this._autoRefreshHandler); + } + + private handleAutoRefresh(): void { + this.loadPipelines(); } public static styles = [ diff --git a/ts_web/elements/views/projects/index.ts b/ts_web/elements/views/projects/index.ts index 22b986d..788cd08 100644 --- a/ts_web/elements/views/projects/index.ts +++ b/ts_web/elements/views/projects/index.ts @@ -32,6 +32,8 @@ export class GitopsViewProjects extends DeesElement { @state() accessor selectedConnectionId: string = ''; + private _autoRefreshHandler: () => void; + constructor() { super(); const connSub = appstate.connectionsStatePart @@ -43,6 +45,18 @@ export class GitopsViewProjects extends DeesElement { .select((s) => s) .subscribe((s) => { this.dataState = s; }); this.rxSubscriptions.push(dataSub); + + this._autoRefreshHandler = () => this.handleAutoRefresh(); + document.addEventListener('gitops-auto-refresh', this._autoRefreshHandler); + } + + public override disconnectedCallback() { + super.disconnectedCallback(); + document.removeEventListener('gitops-auto-refresh', this._autoRefreshHandler); + } + + private handleAutoRefresh(): void { + this.loadProjects(); } public static styles = [ diff --git a/ts_web/elements/views/secrets/index.ts b/ts_web/elements/views/secrets/index.ts index 77143c3..2de5b68 100644 --- a/ts_web/elements/views/secrets/index.ts +++ b/ts_web/elements/views/secrets/index.ts @@ -38,6 +38,8 @@ export class GitopsViewSecrets extends DeesElement { @state() accessor selectedScopeId: string = ''; + private _autoRefreshHandler: () => void; + constructor() { super(); const connSub = appstate.connectionsStatePart @@ -49,6 +51,18 @@ export class GitopsViewSecrets extends DeesElement { .select((s) => s) .subscribe((s) => { this.dataState = s; }); this.rxSubscriptions.push(dataSub); + + this._autoRefreshHandler = () => this.handleAutoRefresh(); + document.addEventListener('gitops-auto-refresh', this._autoRefreshHandler); + } + + public override disconnectedCallback() { + super.disconnectedCallback(); + document.removeEventListener('gitops-auto-refresh', this._autoRefreshHandler); + } + + private handleAutoRefresh(): void { + this.loadSecrets(); } public static styles = [